From 649b33d7783cf3021928534b7ae127e0a89e8807 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 21 Jun 2016 22:39:54 -0400 Subject: Renames keyboard folder to keyboards, adds couple of tmk's fixes (#432) * fixes from tmk's repo * rename keyboard to keyboards --- keyboards/alps64/Makefile | 70 + keyboards/alps64/alps64.c | 43 + keyboards/alps64/alps64.h | 40 + keyboards/alps64/config.h | 75 + keyboards/alps64/keymaps/default/compiled.hex | 1373 +++++++++++++++ keyboards/alps64/keymaps/default/keymap.c | 12 + keyboards/alps64/led.c | 34 + keyboards/alps64/matrix.c | 197 +++ keyboards/arrow_pad/Makefile | 74 + keyboards/arrow_pad/README.md | 24 + keyboards/arrow_pad/arrow_pad.c | 114 ++ keyboards/arrow_pad/arrow_pad.h | 18 + keyboards/arrow_pad/config.h | 158 ++ keyboards/arrow_pad/keymaps/default/compiled.hex | 1490 ++++++++++++++++ keyboards/arrow_pad/keymaps/default/keymap.c | 163 ++ keyboards/arrow_pad/keymaps/pad_21/Makefile | 17 + keyboards/arrow_pad/keymaps/pad_21/compiled.hex | 893 ++++++++++ keyboards/arrow_pad/keymaps/pad_21/config.h | 158 ++ keyboards/arrow_pad/keymaps/pad_21/keymap.c | 160 ++ keyboards/arrow_pad/keymaps/pad_24/Makefile | 17 + keyboards/arrow_pad/keymaps/pad_24/compiled.hex | 935 +++++++++++ keyboards/arrow_pad/keymaps/pad_24/config.h | 158 ++ keyboards/arrow_pad/keymaps/pad_24/keymap.c | 163 ++ keyboards/atomic/Makefile | 73 + keyboards/atomic/README.md | 25 + keyboards/atomic/atomic.c | 325 ++++ keyboards/atomic/atomic.h | 49 + keyboards/atomic/config.h | 158 ++ keyboards/atomic/keymaps/abienz.c | 36 + keyboards/atomic/keymaps/default/compiled.hex | 1118 ++++++++++++ keyboards/atomic/keymaps/default/keymap.c | 234 +++ keyboards/atomic/keymaps/michelle.c | 183 ++ keyboards/atomic/keymaps/pvc/Makefile | 15 + keyboards/atomic/keymaps/pvc/compiled.hex | 1700 +++++++++++++++++++ keyboards/atomic/keymaps/pvc/config.h | 166 ++ keyboards/atomic/keymaps/pvc/keymap.c | 578 +++++++ keyboards/atreus/Makefile | 87 + keyboards/atreus/README.md | 186 ++ keyboards/atreus/atreus.c | 29 + keyboards/atreus/atreus.h | 28 + keyboards/atreus/config.h | 88 + keyboards/atreus/keymaps/default/compiled.hex | 1328 +++++++++++++++ keyboards/atreus/keymaps/default/keymap.c | 51 + keyboards/atreus/keymaps/gerb/compiled.hex | 1339 +++++++++++++++ keyboards/atreus/keymaps/gerb/keymap.c | 66 + keyboards/bantam44/Makefile | 72 + keyboards/bantam44/README.md | 24 + keyboards/bantam44/bantam44.c | 25 + keyboards/bantam44/bantam44.h | 29 + keyboards/bantam44/config.h | 82 + keyboards/bantam44/keymaps/default/compiled.hex | 1398 +++++++++++++++ keyboards/bantam44/keymaps/default/keymap.c | 30 + keyboards/clueboard1/Makefile | 72 + keyboards/clueboard1/clueboard1.c | 19 + keyboards/clueboard1/clueboard1.h | 52 + keyboards/clueboard1/config.h | 95 ++ keyboards/clueboard1/keymaps/default/compiled.hex | 1192 +++++++++++++ keyboards/clueboard1/keymaps/default/keymap.c | 184 ++ keyboards/clueboard1/led.c | 32 + keyboards/clueboard2/Makefile | 77 + keyboards/clueboard2/backlight.c | 41 + keyboards/clueboard2/clueboard2.c | 40 + keyboards/clueboard2/clueboard2.h | 57 + keyboards/clueboard2/config.h | 99 ++ keyboards/clueboard2/keymaps/default/compiled.hex | 1246 ++++++++++++++ keyboards/clueboard2/keymaps/default/keymap.c | 183 ++ keyboards/clueboard2/keymaps/max/Makefile | 11 + keyboards/clueboard2/keymaps/max/compiled.hex | 1536 +++++++++++++++++ keyboards/clueboard2/keymaps/max/keymap.c | 147 ++ keyboards/clueboard2/keymaps/skully/compiled.hex | 1246 ++++++++++++++ keyboards/clueboard2/keymaps/skully/keymap.c | 108 ++ keyboards/clueboard2/led.c | 36 + keyboards/cluepad/Makefile | 74 + keyboards/cluepad/backlight.c | 54 + keyboards/cluepad/cluepad.c | 35 + keyboards/cluepad/cluepad.h | 41 + keyboards/cluepad/config.h | 101 ++ keyboards/cluepad/keymaps/default/compiled.hex | 1123 +++++++++++++ keyboards/cluepad/keymaps/default/keymap.c | 122 ++ keyboards/ergodox_ez/190hotfix.sh | 19 + keyboards/ergodox_ez/Makefile | 86 + keyboards/ergodox_ez/config.h | 90 + keyboards/ergodox_ez/ergodox_ez.c | 100 ++ keyboards/ergodox_ez/ergodox_ez.h | 127 ++ keyboards/ergodox_ez/i2cmaster.h | 178 ++ keyboards/ergodox_ez/keymaps/ab/compiled.hex | 1147 +++++++++++++ .../ergodox_ez/keymaps/ab/keyboard-layout.json | 385 +++++ .../ergodox_ez/keymaps/ab/keyboard-layout.png | Bin 0 -> 79440 bytes keyboards/ergodox_ez/keymaps/ab/keymap.c | 140 ++ keyboards/ergodox_ez/keymaps/ab/readme.md | 21 + .../ergodox_ez/keymaps/adnw_k_o_y/compiled.hex | 1133 +++++++++++++ keyboards/ergodox_ez/keymaps/adnw_k_o_y/keymap.c | 185 ++ keyboards/ergodox_ez/keymaps/adnw_k_o_y/readme.md | 7 + keyboards/ergodox_ez/keymaps/alexjj/compiled.hex | 1172 +++++++++++++ keyboards/ergodox_ez/keymaps/alexjj/keymap.c | 238 +++ keyboards/ergodox_ez/keymaps/alexjj/readme.md | 179 ++ keyboards/ergodox_ez/keymaps/alexjj/rl-layout.jpg | Bin 0 -> 833107 bytes keyboards/ergodox_ez/keymaps/algernon/.gitignore | 1 + keyboards/ergodox_ez/keymaps/algernon/COPYING | 674 ++++++++ keyboards/ergodox_ez/keymaps/algernon/Makefile | 8 + keyboards/ergodox_ez/keymaps/algernon/config.h | 29 + .../keymaps/algernon/images/base-layer.png | Bin 0 -> 96845 bytes .../keymaps/algernon/images/emacs-layer.png | Bin 0 -> 114267 bytes .../keymaps/algernon/images/experimental-layer.png | Bin 0 -> 96956 bytes .../keymaps/algernon/images/hun-layer.png | Bin 0 -> 78720 bytes .../keymaps/algernon/images/one-handed-layer.png | Bin 0 -> 85970 bytes .../keymaps/algernon/images/steno-layer.png | Bin 0 -> 65146 bytes keyboards/ergodox_ez/keymaps/algernon/keymap.c | 1172 +++++++++++++ keyboards/ergodox_ez/keymaps/algernon/readme.md | 158 ++ .../ergodox_ez/keymaps/algernon/tools/max-focused | 5 + .../ergodox_ez/keymaps/andrew_osx/compiled.hex | 1158 +++++++++++++ keyboards/ergodox_ez/keymaps/andrew_osx/keymap.c | 187 +++ keyboards/ergodox_ez/keymaps/bepo/README.md | 34 + keyboards/ergodox_ez/keymaps/bepo/bepo.png | Bin 0 -> 79747 bytes keyboards/ergodox_ez/keymaps/bepo/compiled.hex | 1190 +++++++++++++ keyboards/ergodox_ez/keymaps/bepo/keymap.c | 311 ++++ .../ergodox_ez/keymaps/coderkun_neo2/Makefile | 1 + .../ergodox_ez/keymaps/coderkun_neo2/compiled.hex | 1195 +++++++++++++ .../ergodox_ez/keymaps/coderkun_neo2/keymap.c | 274 +++ .../ergodox_ez/keymaps/coderkun_neo2/readme.md | 31 + keyboards/ergodox_ez/keymaps/colemak/compiled.hex | 1158 +++++++++++++ keyboards/ergodox_ez/keymaps/colemak/keymap.c | 184 ++ keyboards/ergodox_ez/keymaps/colemak/readme.md | 4 + .../keymaps/colemak_osx_pc_no/compiled.hex | 1179 +++++++++++++ .../keymaps/colemak_osx_pc_no/keyboard-layout.png | Bin 0 -> 103158 bytes .../ergodox_ez/keymaps/colemak_osx_pc_no/keymap.c | 264 +++ .../ergodox_ez/keymaps/colemak_osx_pc_no/readme.md | 23 + .../ergodox_ez/keymaps/csharp_dev/compiled.hex | 1159 +++++++++++++ .../ergodox_ez/keymaps/csharp_dev/csharp_dev.png | Bin 0 -> 97642 bytes .../keymaps/csharp_dev/csharp_dev_legend.png | Bin 0 -> 387797 bytes keyboards/ergodox_ez/keymaps/csharp_dev/keymap.c | 239 +++ keyboards/ergodox_ez/keymaps/csharp_dev/readme.md | 47 + keyboards/ergodox_ez/keymaps/dave/compiled.hex | 1169 +++++++++++++ keyboards/ergodox_ez/keymaps/dave/keymap.c | 199 +++ keyboards/ergodox_ez/keymaps/dave/readme.md | 38 + keyboards/ergodox_ez/keymaps/default/compiled.hex | 1153 +++++++++++++ keyboards/ergodox_ez/keymaps/default/default.png | Bin 0 -> 193672 bytes .../ergodox_ez/keymaps/default/default_highres.png | Bin 0 -> 1459389 bytes keyboards/ergodox_ez/keymaps/default/keymap.c | 182 ++ keyboards/ergodox_ez/keymaps/default/readme.md | 10 + .../ergodox_ez/keymaps/default_osx/compiled.hex | 1158 +++++++++++++ .../keymaps/default_osx/default_osx_highres.png | Bin 0 -> 772418 bytes keyboards/ergodox_ez/keymaps/default_osx/keymap.c | 187 +++ keyboards/ergodox_ez/keymaps/default_osx/readme.md | 8 + .../ergodox_ez/keymaps/dragon788/compiled.hex | 1169 +++++++++++++ keyboards/ergodox_ez/keymaps/dragon788/keymap.c | 229 +++ keyboards/ergodox_ez/keymaps/dvorak/compiled.hex | 1158 +++++++++++++ keyboards/ergodox_ez/keymaps/dvorak/dvorak.png | Bin 0 -> 87314 bytes keyboards/ergodox_ez/keymaps/dvorak/keymap.c | 184 ++ .../keymaps/dvorak_intl_squisher/README.md | 29 + .../keymaps/dvorak_intl_squisher/compiled.hex | 1158 +++++++++++++ .../dvorak_intl_squisher/keyboard-layout0.png | Bin 0 -> 73585 bytes .../dvorak_intl_squisher/keyboard-layout1.png | Bin 0 -> 59122 bytes .../dvorak_intl_squisher/keyboard-layout2.png | Bin 0 -> 53319 bytes .../keymaps/dvorak_intl_squisher/keymap.c | 185 ++ .../ergodox_ez/keymaps/dvorak_spanish/README.md | 99 ++ .../ergodox_ez/keymaps/dvorak_spanish/compiled.hex | 1149 +++++++++++++ .../ergodox_ez/keymaps/dvorak_spanish/keymap.c | 284 ++++ .../ergodox_ez/keymaps/emacs_osx_dk/compiled.hex | 1158 +++++++++++++ .../keymaps/emacs_osx_dk/default_highres.png | Bin 0 -> 142146 bytes keyboards/ergodox_ez/keymaps/emacs_osx_dk/keymap.c | 184 ++ .../ergodox_ez/keymaps/emacs_osx_dk/readme.md | 10 + .../ergodox_ez/keymaps/erez_experimental/Makefile | 9 + .../keymaps/erez_experimental/compiled.hex | 1080 ++++++++++++ .../ergodox_ez/keymaps/erez_experimental/config.h | 12 + .../ergodox_ez/keymaps/erez_experimental/keymap.c | 199 +++ .../ergodox_ez/keymaps/erez_experimental/readme.md | 51 + .../ergodox_ez/keymaps/german-kinergo/compiled.hex | 1158 +++++++++++++ .../ergodox_ez/keymaps/german-kinergo/keymap.c | 210 +++ .../keymaps/german-kinergo/layout-code.png | Bin 0 -> 55386 bytes .../keymaps/german-kinergo/layout-media.png | Bin 0 -> 67634 bytes .../ergodox_ez/keymaps/german-kinergo/layout.png | Bin 0 -> 71175 bytes .../ergodox_ez/keymaps/german-kinergo/readme.md | 35 + .../keymaps/german-manuneo/compile_keymap.py | 710 ++++++++ .../ergodox_ez/keymaps/german-manuneo/compiled.hex | 1274 ++++++++++++++ .../ergodox_ez/keymaps/german-manuneo/keymap.c | 783 +++++++++ .../ergodox_ez/keymaps/german-manuneo/keymap.md | 188 +++ keyboards/ergodox_ez/keymaps/german/compiled.hex | 1158 +++++++++++++ keyboards/ergodox_ez/keymaps/german/keymap.c | 185 ++ keyboards/ergodox_ez/keymaps/j3rn/compiled.hex | 1158 +++++++++++++ keyboards/ergodox_ez/keymaps/j3rn/keymap.c | 187 +++ keyboards/ergodox_ez/keymaps/j3rn/readme.md | 29 + keyboards/ergodox_ez/keymaps/jack/compiled.hex | 1158 +++++++++++++ keyboards/ergodox_ez/keymaps/jack/keymap.c | 118 ++ keyboards/ergodox_ez/keymaps/jacobono/README.md | 34 + keyboards/ergodox_ez/keymaps/jacobono/compiled.hex | 1179 +++++++++++++ .../keymaps/jacobono/img/colemak-default-layer.png | Bin 0 -> 70434 bytes .../keymaps/jacobono/img/number-dpad-layer.png | Bin 0 -> 46225 bytes .../keymaps/jacobono/img/symbol-layer.png | Bin 0 -> 49615 bytes keyboards/ergodox_ez/keymaps/jacobono/keymap.c | 273 +++ keyboards/ergodox_ez/keymaps/jgarr/compiled.hex | 1158 +++++++++++++ keyboards/ergodox_ez/keymaps/jgarr/keymap.c | 184 ++ keyboards/ergodox_ez/keymaps/kastyle/compiled.hex | 1158 +++++++++++++ keyboards/ergodox_ez/keymaps/kastyle/keymap.c | 184 ++ .../ergodox_ez/keymaps/kines-ish/compiled.hex | 1158 +++++++++++++ keyboards/ergodox_ez/keymaps/kines-ish/keymap.c | 184 ++ keyboards/ergodox_ez/keymaps/kines-ish/readme.md | 19 + .../ergodox_ez/keymaps/mpiechotka/compiled.hex | 1181 +++++++++++++ keyboards/ergodox_ez/keymaps/mpiechotka/keymap.c | 276 +++ keyboards/ergodox_ez/keymaps/mpiechotka/readme.md | 6 + keyboards/ergodox_ez/keymaps/msc/compiled.hex | 1158 +++++++++++++ .../ergodox_ez/keymaps/msc/img/code_layer.png | Bin 0 -> 71266 bytes .../ergodox_ez/keymaps/msc/img/main_layer.png | Bin 0 -> 90624 bytes .../ergodox_ez/keymaps/msc/img/media_layer.png | Bin 0 -> 75750 bytes keyboards/ergodox_ez/keymaps/msc/keymap.c | 184 ++ keyboards/ergodox_ez/keymaps/msc/readme.md | 32 + keyboards/ergodox_ez/keymaps/naps62/README.md | 29 + keyboards/ergodox_ez/keymaps/naps62/compiled.hex | 1158 +++++++++++++ keyboards/ergodox_ez/keymaps/naps62/keymap.c | 187 +++ keyboards/ergodox_ez/keymaps/ordinary/compiled.hex | 1182 +++++++++++++ keyboards/ergodox_ez/keymaps/ordinary/keymap.c | 454 +++++ .../ergodox_ez/keymaps/ordinary/ordinary-base.png | Bin 0 -> 99605 bytes .../ergodox_ez/keymaps/ordinary/ordinary-base.txt | 27 + .../ergodox_ez/keymaps/ordinary/ordinary-media.png | Bin 0 -> 124144 bytes .../ergodox_ez/keymaps/ordinary/ordinary-media.txt | 27 + .../keymaps/ordinary/ordinary-special.png | Bin 0 -> 63065 bytes .../keymaps/ordinary/ordinary-special.txt | 27 + .../keymaps/ordinary/ordinary-symbol.png | Bin 0 -> 103735 bytes .../keymaps/ordinary/ordinary-symbol.txt | 27 + keyboards/ergodox_ez/keymaps/ordinary/readme.md | 103 ++ keyboards/ergodox_ez/keymaps/osx_de/compiled.hex | 1216 ++++++++++++++ keyboards/ergodox_ez/keymaps/osx_de/keymap.c | 364 ++++ .../ergodox_ez/keymaps/osx_de/osx_de_highres.png | Bin 0 -> 298446 bytes keyboards/ergodox_ez/keymaps/osx_de/readme.md | 41 + .../keymaps/osx_de_adnw_koy/compiled.hex | 1152 +++++++++++++ .../ergodox_ez/keymaps/osx_de_adnw_koy/keymap.c | 174 ++ .../osx_de_adnw_koy/osx_de_adnw_koy_highres.png | Bin 0 -> 183892 bytes .../keymaps/osx_de_experimental/compiled.hex | 1228 ++++++++++++++ .../keymaps/osx_de_experimental/keymap.c | 597 +++++++ .../osx_de_experimental_highres.png | Bin 0 -> 303904 bytes .../keymaps/osx_de_experimental/readme.md | 22 + keyboards/ergodox_ez/keymaps/osx_fr/compiled.hex | 1158 +++++++++++++ keyboards/ergodox_ez/keymaps/osx_fr/keymap.c | 187 +++ .../keymaps/osx_kinesis_pnut/compiled.hex | 1158 +++++++++++++ .../ergodox_ez/keymaps/osx_kinesis_pnut/keymap.c | 191 +++ keyboards/ergodox_ez/keymaps/plover/compiled.hex | 1169 +++++++++++++ keyboards/ergodox_ez/keymaps/plover/keymap.c | 228 +++ keyboards/ergodox_ez/keymaps/plums/compiled.hex | 1165 +++++++++++++ keyboards/ergodox_ez/keymaps/plums/keymap.c | 229 +++ keyboards/ergodox_ez/keymaps/plums/plums.png | Bin 0 -> 223300 bytes keyboards/ergodox_ez/keymaps/plums/readme.md | 11 + .../keymaps/romanzolotarev-norman-osx/compiled.hex | 1098 ++++++++++++ .../keymaps/romanzolotarev-norman-osx/keymap.c | 46 + .../keymaps/romanzolotarev-norman-osx/readme.md | 28 + .../romanzolotarev-norman-osx.png | Bin 0 -> 96954 bytes .../compiled.hex | 1169 +++++++++++++ .../romanzolotarev-norman-plover-osx-hjkl/keymap.c | 134 ++ .../readme.md | 50 + .../romanzolotarev-norman-plover-osx-hjkl.png | Bin 0 -> 130692 bytes .../romanzolotarev-norman-plover-osx/compiled.hex | 1169 +++++++++++++ .../romanzolotarev-norman-plover-osx/keymap.c | 134 ++ .../romanzolotarev-norman-plover-osx/readme.md | 50 + .../romanzolotarev-norman-plover-osx.png | Bin 0 -> 130464 bytes .../romanzolotarev-norman-qwerty-osx/compiled.hex | 1120 +++++++++++++ .../romanzolotarev-norman-qwerty-osx/keymap.c | 74 + .../romanzolotarev-norman-qwerty-osx/readme.md | 34 + .../romanzolotarev-norman-qwerty-osx.png | Bin 0 -> 100627 bytes keyboards/ergodox_ez/keymaps/sneako/README.md | 6 + keyboards/ergodox_ez/keymaps/sneako/compiled.hex | 1158 +++++++++++++ keyboards/ergodox_ez/keymaps/sneako/keymap.c | 187 +++ .../ergodox_ez/keymaps/software_neo2/compiled.hex | 1147 +++++++++++++ .../ergodox_ez/keymaps/software_neo2/keymap.c | 139 ++ keyboards/ergodox_ez/keymaps/supercoder/README.md | 29 + .../ergodox_ez/keymaps/supercoder/compiled.hex | 1122 +++++++++++++ .../ergodox_ez/keymaps/supercoder/config_user.h | 9 + .../keymaps/supercoder/images/layout.png | Bin 0 -> 65607 bytes .../keymaps/supercoder/images/supercoder_2000.jpg | Bin 0 -> 75444 bytes keyboards/ergodox_ez/keymaps/supercoder/keymap.c | 75 + .../ergodox_ez/keymaps/supercoder/makefile.mk | 6 + .../ergodox_ez/keymaps/techtomas/compiled.hex | 1169 +++++++++++++ keyboards/ergodox_ez/keymaps/techtomas/keymap.c | 231 +++ keyboards/ergodox_ez/keymaps/techtomas/readme.md | 57 + keyboards/ergodox_ez/keymaps/tm2030/README.md | 136 ++ keyboards/ergodox_ez/keymaps/tm2030/compiled.hex | 1224 ++++++++++++++ keyboards/ergodox_ez/keymaps/tm2030/keymap.c | 242 +++ .../ergodox_ez/keymaps/tonyabra_osx/compiled.hex | 1158 +++++++++++++ keyboards/ergodox_ez/keymaps/tonyabra_osx/keymap.c | 184 ++ .../ergodox_ez/keymaps/tonyabra_osx/readme.md | 5 + .../ergodox_ez/keymaps/townk_osx/compiled.hex | 1171 +++++++++++++ keyboards/ergodox_ez/keymaps/townk_osx/config.h | 92 + keyboards/ergodox_ez/keymaps/townk_osx/keymap.c | 285 ++++ keyboards/ergodox_ez/keymaps/townk_osx/makefile.mk | 4 + keyboards/ergodox_ez/keymaps/townk_osx/readme.md | 77 + .../keymaps/townk_osx/townk_osx_base.png | Bin 0 -> 785859 bytes .../ergodox_ez/keymaps/townk_osx/townk_osx_fn.png | Bin 0 -> 390041 bytes .../keymaps/townk_osx/townk_osx_keypad.png | Bin 0 -> 424425 bytes keyboards/ergodox_ez/keymaps/twey/compiled.hex | 1178 +++++++++++++ keyboards/ergodox_ez/keymaps/twey/keymap.c | 221 +++ keyboards/ergodox_ez/keymaps/twey/readme.md | 17 + .../keymaps/workman_osx_mdw/compiled.hex | 1213 +++++++++++++ .../ergodox_ez/keymaps/workman_osx_mdw/keymap.c | 366 ++++ .../ergodox_ez/keymaps/zweihander-osx/compiled.hex | 1173 +++++++++++++ .../ergodox_ez/keymaps/zweihander-osx/keymap.c | 233 +++ .../keymaps/zweihander-osx/readme.markdown | 45 + keyboards/ergodox_ez/matrix.c | 363 ++++ keyboards/ergodox_ez/readme.md | 45 + keyboards/ergodox_ez/twimaster.c | 208 +++ keyboards/ergodox_ez/util/compile_keymap.py | 710 ++++++++ keyboards/ergodox_ez/util/readme.md | 3 + keyboards/gh60/Makefile | 74 + keyboards/gh60/README.md | 60 + keyboards/gh60/config.h | 161 ++ keyboards/gh60/gh60.c | 68 + keyboards/gh60/gh60.h | 81 + keyboards/gh60/gh60revc.jpg | Bin 0 -> 1424987 bytes keyboards/gh60/keymaps/default/compiled.hex | 1019 +++++++++++ keyboards/gh60/keymaps/default/keymap.c | 69 + keyboards/gh60/pinout.txt | 18 + keyboards/hhkb/Makefile | 86 + keyboards/hhkb/README.md | 180 ++ keyboards/hhkb/config.h | 71 + keyboards/hhkb/hhkb.c | 29 + keyboards/hhkb/hhkb.h | 30 + keyboards/hhkb/hhkb_avr.h | 167 ++ keyboards/hhkb/keymaps/default/compiled.hex | 1381 +++++++++++++++ keyboards/hhkb/keymaps/default/keymap.c | 78 + keyboards/hhkb/keymaps/lxol/compiled.hex | 1421 ++++++++++++++++ keyboards/hhkb/keymaps/lxol/keymap.c | 208 +++ keyboards/hhkb/matrix.c | 204 +++ keyboards/jd45/Makefile | 71 + keyboards/jd45/config.h | 80 + keyboards/jd45/jd45.c | 81 + keyboards/jd45/jd45.h | 13 + keyboards/jd45/keymaps/default/compiled.hex | 1113 ++++++++++++ keyboards/jd45/keymaps/default/keymap.c | 31 + keyboards/jd45/keymaps/justin/compiled.hex | 1153 +++++++++++++ keyboards/jd45/keymaps/justin/keymap.c | 101 ++ keyboards/kc60/Makefile | 76 + keyboards/kc60/README.md | 27 + keyboards/kc60/config.h | 162 ++ keyboards/kc60/kc60.c | 111 ++ keyboards/kc60/kc60.h | 36 + keyboards/kc60/keymaps/default/compiled.hex | 1451 ++++++++++++++++ keyboards/kc60/keymaps/default/keymap.c | 24 + keyboards/kc60/keymaps/sgoodwin/compiled.hex | 1469 ++++++++++++++++ keyboards/kc60/keymaps/sgoodwin/keymap.c | 42 + keyboards/kc60/keymaps/stanleylai/Makefile | 25 + keyboards/kc60/keymaps/stanleylai/README.md | 26 + keyboards/kc60/keymaps/stanleylai/base_layer.png | Bin 0 -> 35164 bytes keyboards/kc60/keymaps/stanleylai/compiled.hex | 1773 ++++++++++++++++++++ keyboards/kc60/keymaps/stanleylai/config.h | 3 + keyboards/kc60/keymaps/stanleylai/keymap.c | 151 ++ keyboards/kc60/keymaps/stanleylai/rgb_layer.png | Bin 0 -> 19192 bytes keyboards/kc60/keymaps/ws2812/Makefile | 25 + keyboards/kc60/keymaps/ws2812/README.md | 21 + keyboards/kc60/keymaps/ws2812/compiled.hex | 1764 +++++++++++++++++++ keyboards/kc60/keymaps/ws2812/config.h | 10 + keyboards/kc60/keymaps/ws2812/keymap.c | 161 ++ keyboards/kc60/keymaps/ws2812/ws2812_example.jpg | Bin 0 -> 226362 bytes .../kc60/keymaps/ws2812/ws2812_underside-lit.jpg | Bin 0 -> 205067 bytes keyboards/kc60/keymaps/ws2812/ws2812_underside.jpg | Bin 0 -> 354124 bytes keyboards/kc60/keymaps/ws2812/ws2812_wiring.jpg | Bin 0 -> 347989 bytes keyboards/phantom/Makefile | 74 + keyboards/phantom/config.h | 91 + keyboards/phantom/keymaps/default/compiled.hex | 1496 +++++++++++++++++ keyboards/phantom/keymaps/default/keymap.c | 169 ++ keyboards/phantom/led.c | 43 + keyboards/phantom/phantom.c | 25 + keyboards/phantom/phantom.h | 46 + keyboards/phantom/pinout.jpg | Bin 0 -> 86118 bytes keyboards/phantom/pinout.txt | 1 + keyboards/planck/.gitignore | 1 + keyboards/planck/Makefile | 73 + keyboards/planck/README.md | 31 + keyboards/planck/config.h | 89 + keyboards/planck/keymaps/.gitignore | 1 + keyboards/planck/keymaps/README.md | 23 + keyboards/planck/keymaps/alexey/Makefile | 25 + keyboards/planck/keymaps/alexey/compiled.hex | 1444 ++++++++++++++++ keyboards/planck/keymaps/alexey/keymap.c | 51 + keyboards/planck/keymaps/angerthosenear/Makefile | 25 + .../planck/keymaps/angerthosenear/compiled.hex | 1449 ++++++++++++++++ keyboards/planck/keymaps/angerthosenear/keymap.c | 39 + keyboards/planck/keymaps/austin/Makefile | 25 + keyboards/planck/keymaps/austin/compiled.hex | 1449 ++++++++++++++++ keyboards/planck/keymaps/austin/keymap.c | 39 + keyboards/planck/keymaps/basic/Makefile | 25 + keyboards/planck/keymaps/basic/README.md | 2 + keyboards/planck/keymaps/basic/compiled.hex | 970 +++++++++++ keyboards/planck/keymaps/basic/keymap.c | 94 ++ keyboards/planck/keymaps/bone2planck/Makefile | 25 + keyboards/planck/keymaps/bone2planck/compiled.hex | 1450 ++++++++++++++++ keyboards/planck/keymaps/bone2planck/keymap.c | 112 ++ keyboards/planck/keymaps/brandon/Makefile | 25 + keyboards/planck/keymaps/brandon/compiled.hex | 1456 ++++++++++++++++ keyboards/planck/keymaps/brandon/keymap.c | 134 ++ keyboards/planck/keymaps/cbbrowne/.gitignore | 1 + keyboards/planck/keymaps/cbbrowne/Makefile | 25 + keyboards/planck/keymaps/cbbrowne/config.h | 15 + keyboards/planck/keymaps/cbbrowne/keymap.c | 173 ++ keyboards/planck/keymaps/cbbrowne/readme.md | 64 + keyboards/planck/keymaps/charlie/Makefile | 25 + keyboards/planck/keymaps/charlie/compiled.hex | 1445 ++++++++++++++++ keyboards/planck/keymaps/charlie/keymap.c | 54 + keyboards/planck/keymaps/daniel/Makefile | 25 + keyboards/planck/keymaps/daniel/compiled.hex | 1448 ++++++++++++++++ keyboards/planck/keymaps/daniel/keymap.c | 37 + keyboards/planck/keymaps/david/Makefile | 25 + keyboards/planck/keymaps/david/compiled.hex | 1449 ++++++++++++++++ keyboards/planck/keymaps/david/keymap.c | 38 + keyboards/planck/keymaps/default/Makefile | 25 + keyboards/planck/keymaps/default/README.md | 2 + keyboards/planck/keymaps/default/compiled.hex | 1621 ++++++++++++++++++ keyboards/planck/keymaps/default/keymap.c | 316 ++++ keyboards/planck/keymaps/dzobert/Makefile | 25 + keyboards/planck/keymaps/dzobert/compiled.hex | 1449 ++++++++++++++++ keyboards/planck/keymaps/dzobert/keymap.c | 38 + keyboards/planck/keymaps/experimental/Makefile | 25 + keyboards/planck/keymaps/experimental/README.md | 2 + keyboards/planck/keymaps/experimental/compiled.hex | 1669 ++++++++++++++++++ keyboards/planck/keymaps/experimental/config.h | 8 + keyboards/planck/keymaps/experimental/keymap.c | 346 ++++ keyboards/planck/keymaps/gabriel/Makefile | 25 + keyboards/planck/keymaps/gabriel/compiled.hex | 1450 ++++++++++++++++ keyboards/planck/keymaps/gabriel/keymap.c | 108 ++ keyboards/planck/keymaps/jacob/Keyboard Layout.PNG | Bin 0 -> 17292 bytes keyboards/planck/keymaps/jacob/Makefile | 25 + keyboards/planck/keymaps/jacob/compiled.hex | 1444 ++++++++++++++++ keyboards/planck/keymaps/jacob/keymap.c | 56 + keyboards/planck/keymaps/jacob/readme.md | 1 + keyboards/planck/keymaps/joe/Makefile | 25 + keyboards/planck/keymaps/joe/compiled.hex | 1479 ++++++++++++++++ keyboards/planck/keymaps/joe/keymap.c | 89 + keyboards/planck/keymaps/kyle/Makefile | 25 + keyboards/planck/keymaps/kyle/compiled.hex | 1449 ++++++++++++++++ keyboards/planck/keymaps/kyle/keymap.c | 38 + keyboards/planck/keymaps/leo/Makefile | 25 + keyboards/planck/keymaps/leo/compiled.hex | 1454 ++++++++++++++++ keyboards/planck/keymaps/leo/keymap.c | 35 + keyboards/planck/keymaps/lucas/Makefile | 25 + keyboards/planck/keymaps/lucas/compiled.hex | 1480 ++++++++++++++++ keyboards/planck/keymaps/lucas/keymap.c | 164 ++ keyboards/planck/keymaps/lukas/Makefile | 25 + keyboards/planck/keymaps/lukas/compiled.hex | 1446 ++++++++++++++++ keyboards/planck/keymaps/lukas/keymap.c | 64 + keyboards/planck/keymaps/max/Makefile | 25 + keyboards/planck/keymaps/max/compiled.hex | 1449 ++++++++++++++++ keyboards/planck/keymaps/max/keymap.c | 38 + keyboards/planck/keymaps/mollat/Makefile | 25 + keyboards/planck/keymaps/mollat/compiled.hex | 1495 +++++++++++++++++ keyboards/planck/keymaps/mollat/keymap.c | 149 ++ keyboards/planck/keymaps/nico/Makefile | 25 + keyboards/planck/keymaps/nico/compiled.hex | 1456 ++++++++++++++++ keyboards/planck/keymaps/nico/keymap.c | 69 + keyboards/planck/keymaps/pete/Makefile | 15 + keyboards/planck/keymaps/pete/README.md | 14 + keyboards/planck/keymaps/pete/compiled.hex | 1143 +++++++++++++ keyboards/planck/keymaps/pete/keymap.c | 225 +++ keyboards/planck/keymaps/pvc/Makefile | 24 + keyboards/planck/keymaps/pvc/compiled.hex | 1635 ++++++++++++++++++ keyboards/planck/keymaps/pvc/config.h | 89 + keyboards/planck/keymaps/pvc/keymap.c | 478 ++++++ keyboards/planck/keymaps/tak3over/Makefile | 25 + keyboards/planck/keymaps/tak3over/compiled.hex | 1456 ++++++++++++++++ keyboards/planck/keymaps/tak3over/keymap.c | 130 ++ keyboards/planck/keymaps/unicode/Makefile | 11 + keyboards/planck/keymaps/unicode/compiled.hex | 1206 +++++++++++++ keyboards/planck/keymaps/unicode/keymap.c | 326 ++++ keyboards/planck/keymaps/yang/Makefile | 9 + keyboards/planck/keymaps/yang/WS2812-wiring.jpg | Bin 0 -> 290495 bytes keyboards/planck/keymaps/yang/compiled.hex | 1318 +++++++++++++++ keyboards/planck/keymaps/yang/keymap.c | 146 ++ .../keymaps/yang/planck-with-rgb-underglow.jpg | Bin 0 -> 343033 bytes .../old_keymap_files/common_keymaps/keymap_brett.c | 42 + .../common_keymaps/keymap_dotcom.c | 34 + .../old_keymap_files/common_keymaps/keymap_jack.c | 50 + .../old_keymap_files/common_keymaps/keymap_joe.c | 83 + .../common_keymaps/keymap_matthew.c | 70 + .../old_keymap_files/common_keymaps/keymap_mitch.c | 49 + .../common_keymaps/keymap_nathan.c | 153 ++ .../old_keymap_files/common_keymaps/keymap_paul.c | 49 + .../common_keymaps/keymap_peasant.c | 51 + .../old_keymap_files/common_keymaps/keymap_reed.c | 74 + .../old_keymap_files/common_keymaps/keymap_sean.c | 53 + .../old_keymap_files/common_keymaps/keymap_shane.c | 98 ++ .../old_keymap_files/common_keymaps/keymap_simon.c | 44 + .../old_keymap_files/common_keymaps/keymap_tim.c | 44 + .../old_keymap_files/common_keymaps/keymap_wilba.c | 56 + keyboards/planck/old_keymap_files/keymap_common.c | 30 + keyboards/planck/old_keymap_files/keymap_common.h | 129 ++ keyboards/planck/planck.c | 302 ++++ keyboards/planck/planck.h | 55 + keyboards/preonic/Makefile | 73 + keyboards/preonic/README.md | 25 + keyboards/preonic/config.h | 89 + keyboards/preonic/keymaps/default/Makefile | 25 + keyboards/preonic/keymaps/default/README.md | 1 + keyboards/preonic/keymaps/default/compiled.hex | 1609 ++++++++++++++++++ keyboards/preonic/keymaps/default/keymap.c | 278 +++ keyboards/preonic/preonic.c | 97 ++ keyboards/preonic/preonic.h | 41 + keyboards/retro_refit/Makefile | 74 + keyboards/retro_refit/README.md | 24 + keyboards/retro_refit/config.h | 123 ++ keyboards/retro_refit/keymaps/default/compiled.hex | 1423 ++++++++++++++++ keyboards/retro_refit/keymaps/default/keymap.c | 33 + keyboards/retro_refit/retro_refit.c | 68 + keyboards/retro_refit/retro_refit.h | 45 + keyboards/satan/Makefile | 73 + keyboards/satan/backlight.c | 24 + keyboards/satan/config.h | 92 + keyboards/satan/controller.jpg | Bin 0 -> 140199 bytes keyboards/satan/keymaps/default/compiled.hex | 1543 +++++++++++++++++ keyboards/satan/keymaps/default/keymap.c | 162 ++ keyboards/satan/led.c | 36 + keyboards/satan/pinout.txt | 1 + keyboards/satan/power.jpg | Bin 0 -> 433947 bytes keyboards/satan/satan.c | 94 ++ keyboards/satan/satan.h | 42 + keyboards/sixkeyboard/Makefile | 75 + keyboards/sixkeyboard/README.md | 18 + keyboards/sixkeyboard/config.h | 115 ++ keyboards/sixkeyboard/keymaps/default/compiled.hex | 760 +++++++++ keyboards/sixkeyboard/keymaps/default/keymap.c | 39 + keyboards/sixkeyboard/matrix.c | 120 ++ keyboards/sixkeyboard/sixkeyboard.c | 52 + keyboards/sixkeyboard/sixkeyboard.h | 22 + 517 files changed, 172730 insertions(+) create mode 100644 keyboards/alps64/Makefile create mode 100644 keyboards/alps64/alps64.c create mode 100644 keyboards/alps64/alps64.h create mode 100644 keyboards/alps64/config.h create mode 100644 keyboards/alps64/keymaps/default/compiled.hex create mode 100644 keyboards/alps64/keymaps/default/keymap.c create mode 100644 keyboards/alps64/led.c create mode 100644 keyboards/alps64/matrix.c create mode 100644 keyboards/arrow_pad/Makefile create mode 100644 keyboards/arrow_pad/README.md create mode 100644 keyboards/arrow_pad/arrow_pad.c create mode 100644 keyboards/arrow_pad/arrow_pad.h create mode 100644 keyboards/arrow_pad/config.h create mode 100644 keyboards/arrow_pad/keymaps/default/compiled.hex create mode 100644 keyboards/arrow_pad/keymaps/default/keymap.c create mode 100644 keyboards/arrow_pad/keymaps/pad_21/Makefile create mode 100644 keyboards/arrow_pad/keymaps/pad_21/compiled.hex create mode 100644 keyboards/arrow_pad/keymaps/pad_21/config.h create mode 100644 keyboards/arrow_pad/keymaps/pad_21/keymap.c create mode 100644 keyboards/arrow_pad/keymaps/pad_24/Makefile create mode 100644 keyboards/arrow_pad/keymaps/pad_24/compiled.hex create mode 100644 keyboards/arrow_pad/keymaps/pad_24/config.h create mode 100644 keyboards/arrow_pad/keymaps/pad_24/keymap.c create mode 100644 keyboards/atomic/Makefile create mode 100644 keyboards/atomic/README.md create mode 100644 keyboards/atomic/atomic.c create mode 100644 keyboards/atomic/atomic.h create mode 100644 keyboards/atomic/config.h create mode 100644 keyboards/atomic/keymaps/abienz.c create mode 100644 keyboards/atomic/keymaps/default/compiled.hex create mode 100644 keyboards/atomic/keymaps/default/keymap.c create mode 100644 keyboards/atomic/keymaps/michelle.c create mode 100644 keyboards/atomic/keymaps/pvc/Makefile create mode 100644 keyboards/atomic/keymaps/pvc/compiled.hex create mode 100644 keyboards/atomic/keymaps/pvc/config.h create mode 100644 keyboards/atomic/keymaps/pvc/keymap.c create mode 100644 keyboards/atreus/Makefile create mode 100644 keyboards/atreus/README.md create mode 100644 keyboards/atreus/atreus.c create mode 100644 keyboards/atreus/atreus.h create mode 100644 keyboards/atreus/config.h create mode 100644 keyboards/atreus/keymaps/default/compiled.hex create mode 100644 keyboards/atreus/keymaps/default/keymap.c create mode 100644 keyboards/atreus/keymaps/gerb/compiled.hex create mode 100644 keyboards/atreus/keymaps/gerb/keymap.c create mode 100644 keyboards/bantam44/Makefile create mode 100644 keyboards/bantam44/README.md create mode 100644 keyboards/bantam44/bantam44.c create mode 100644 keyboards/bantam44/bantam44.h create mode 100644 keyboards/bantam44/config.h create mode 100644 keyboards/bantam44/keymaps/default/compiled.hex create mode 100644 keyboards/bantam44/keymaps/default/keymap.c create mode 100644 keyboards/clueboard1/Makefile create mode 100644 keyboards/clueboard1/clueboard1.c create mode 100644 keyboards/clueboard1/clueboard1.h create mode 100644 keyboards/clueboard1/config.h create mode 100644 keyboards/clueboard1/keymaps/default/compiled.hex create mode 100644 keyboards/clueboard1/keymaps/default/keymap.c create mode 100644 keyboards/clueboard1/led.c create mode 100644 keyboards/clueboard2/Makefile create mode 100644 keyboards/clueboard2/backlight.c create mode 100644 keyboards/clueboard2/clueboard2.c create mode 100644 keyboards/clueboard2/clueboard2.h create mode 100644 keyboards/clueboard2/config.h create mode 100644 keyboards/clueboard2/keymaps/default/compiled.hex create mode 100644 keyboards/clueboard2/keymaps/default/keymap.c create mode 100644 keyboards/clueboard2/keymaps/max/Makefile create mode 100644 keyboards/clueboard2/keymaps/max/compiled.hex create mode 100644 keyboards/clueboard2/keymaps/max/keymap.c create mode 100644 keyboards/clueboard2/keymaps/skully/compiled.hex create mode 100644 keyboards/clueboard2/keymaps/skully/keymap.c create mode 100644 keyboards/clueboard2/led.c create mode 100644 keyboards/cluepad/Makefile create mode 100644 keyboards/cluepad/backlight.c create mode 100644 keyboards/cluepad/cluepad.c create mode 100644 keyboards/cluepad/cluepad.h create mode 100644 keyboards/cluepad/config.h create mode 100644 keyboards/cluepad/keymaps/default/compiled.hex create mode 100644 keyboards/cluepad/keymaps/default/keymap.c create mode 100755 keyboards/ergodox_ez/190hotfix.sh create mode 100644 keyboards/ergodox_ez/Makefile create mode 100644 keyboards/ergodox_ez/config.h create mode 100644 keyboards/ergodox_ez/ergodox_ez.c create mode 100644 keyboards/ergodox_ez/ergodox_ez.h create mode 100644 keyboards/ergodox_ez/i2cmaster.h create mode 100644 keyboards/ergodox_ez/keymaps/ab/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/ab/keyboard-layout.json create mode 100644 keyboards/ergodox_ez/keymaps/ab/keyboard-layout.png create mode 100644 keyboards/ergodox_ez/keymaps/ab/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/ab/readme.md create mode 100644 keyboards/ergodox_ez/keymaps/adnw_k_o_y/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/adnw_k_o_y/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/adnw_k_o_y/readme.md create mode 100644 keyboards/ergodox_ez/keymaps/alexjj/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/alexjj/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/alexjj/readme.md create mode 100644 keyboards/ergodox_ez/keymaps/alexjj/rl-layout.jpg create mode 100644 keyboards/ergodox_ez/keymaps/algernon/.gitignore create mode 100644 keyboards/ergodox_ez/keymaps/algernon/COPYING create mode 100644 keyboards/ergodox_ez/keymaps/algernon/Makefile create mode 100644 keyboards/ergodox_ez/keymaps/algernon/config.h create mode 100644 keyboards/ergodox_ez/keymaps/algernon/images/base-layer.png create mode 100644 keyboards/ergodox_ez/keymaps/algernon/images/emacs-layer.png create mode 100644 keyboards/ergodox_ez/keymaps/algernon/images/experimental-layer.png create mode 100644 keyboards/ergodox_ez/keymaps/algernon/images/hun-layer.png create mode 100644 keyboards/ergodox_ez/keymaps/algernon/images/one-handed-layer.png create mode 100644 keyboards/ergodox_ez/keymaps/algernon/images/steno-layer.png create mode 100644 keyboards/ergodox_ez/keymaps/algernon/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/algernon/readme.md create mode 100755 keyboards/ergodox_ez/keymaps/algernon/tools/max-focused create mode 100644 keyboards/ergodox_ez/keymaps/andrew_osx/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/andrew_osx/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/bepo/README.md create mode 100644 keyboards/ergodox_ez/keymaps/bepo/bepo.png create mode 100644 keyboards/ergodox_ez/keymaps/bepo/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/bepo/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/coderkun_neo2/Makefile create mode 100644 keyboards/ergodox_ez/keymaps/coderkun_neo2/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/coderkun_neo2/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/coderkun_neo2/readme.md create mode 100644 keyboards/ergodox_ez/keymaps/colemak/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/colemak/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/colemak/readme.md create mode 100644 keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/keyboard-layout.png create mode 100644 keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/readme.md create mode 100644 keyboards/ergodox_ez/keymaps/csharp_dev/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/csharp_dev/csharp_dev.png create mode 100644 keyboards/ergodox_ez/keymaps/csharp_dev/csharp_dev_legend.png create mode 100644 keyboards/ergodox_ez/keymaps/csharp_dev/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/csharp_dev/readme.md create mode 100644 keyboards/ergodox_ez/keymaps/dave/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/dave/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/dave/readme.md create mode 100644 keyboards/ergodox_ez/keymaps/default/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/default/default.png create mode 100644 keyboards/ergodox_ez/keymaps/default/default_highres.png create mode 100644 keyboards/ergodox_ez/keymaps/default/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/default/readme.md create mode 100644 keyboards/ergodox_ez/keymaps/default_osx/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/default_osx/default_osx_highres.png create mode 100644 keyboards/ergodox_ez/keymaps/default_osx/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/default_osx/readme.md create mode 100644 keyboards/ergodox_ez/keymaps/dragon788/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/dragon788/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/dvorak/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/dvorak/dvorak.png create mode 100644 keyboards/ergodox_ez/keymaps/dvorak/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/README.md create mode 100644 keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout0.png create mode 100644 keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout1.png create mode 100644 keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout2.png create mode 100644 keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/dvorak_spanish/README.md create mode 100644 keyboards/ergodox_ez/keymaps/dvorak_spanish/compiled.hex create mode 100755 keyboards/ergodox_ez/keymaps/dvorak_spanish/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/emacs_osx_dk/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/emacs_osx_dk/default_highres.png create mode 100644 keyboards/ergodox_ez/keymaps/emacs_osx_dk/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/emacs_osx_dk/readme.md create mode 100644 keyboards/ergodox_ez/keymaps/erez_experimental/Makefile create mode 100644 keyboards/ergodox_ez/keymaps/erez_experimental/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/erez_experimental/config.h create mode 100644 keyboards/ergodox_ez/keymaps/erez_experimental/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/erez_experimental/readme.md create mode 100644 keyboards/ergodox_ez/keymaps/german-kinergo/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/german-kinergo/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/german-kinergo/layout-code.png create mode 100644 keyboards/ergodox_ez/keymaps/german-kinergo/layout-media.png create mode 100644 keyboards/ergodox_ez/keymaps/german-kinergo/layout.png create mode 100644 keyboards/ergodox_ez/keymaps/german-kinergo/readme.md create mode 100644 keyboards/ergodox_ez/keymaps/german-manuneo/compile_keymap.py create mode 100644 keyboards/ergodox_ez/keymaps/german-manuneo/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/german-manuneo/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/german-manuneo/keymap.md create mode 100644 keyboards/ergodox_ez/keymaps/german/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/german/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/j3rn/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/j3rn/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/j3rn/readme.md create mode 100644 keyboards/ergodox_ez/keymaps/jack/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/jack/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/jacobono/README.md create mode 100644 keyboards/ergodox_ez/keymaps/jacobono/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/jacobono/img/colemak-default-layer.png create mode 100644 keyboards/ergodox_ez/keymaps/jacobono/img/number-dpad-layer.png create mode 100644 keyboards/ergodox_ez/keymaps/jacobono/img/symbol-layer.png create mode 100644 keyboards/ergodox_ez/keymaps/jacobono/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/jgarr/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/jgarr/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/kastyle/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/kastyle/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/kines-ish/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/kines-ish/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/kines-ish/readme.md create mode 100644 keyboards/ergodox_ez/keymaps/mpiechotka/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/mpiechotka/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/mpiechotka/readme.md create mode 100644 keyboards/ergodox_ez/keymaps/msc/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/msc/img/code_layer.png create mode 100644 keyboards/ergodox_ez/keymaps/msc/img/main_layer.png create mode 100644 keyboards/ergodox_ez/keymaps/msc/img/media_layer.png create mode 100644 keyboards/ergodox_ez/keymaps/msc/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/msc/readme.md create mode 100644 keyboards/ergodox_ez/keymaps/naps62/README.md create mode 100644 keyboards/ergodox_ez/keymaps/naps62/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/naps62/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/ordinary/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/ordinary/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/ordinary/ordinary-base.png create mode 100644 keyboards/ergodox_ez/keymaps/ordinary/ordinary-base.txt create mode 100644 keyboards/ergodox_ez/keymaps/ordinary/ordinary-media.png create mode 100644 keyboards/ergodox_ez/keymaps/ordinary/ordinary-media.txt create mode 100644 keyboards/ergodox_ez/keymaps/ordinary/ordinary-special.png create mode 100644 keyboards/ergodox_ez/keymaps/ordinary/ordinary-special.txt create mode 100644 keyboards/ergodox_ez/keymaps/ordinary/ordinary-symbol.png create mode 100644 keyboards/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt create mode 100644 keyboards/ergodox_ez/keymaps/ordinary/readme.md create mode 100644 keyboards/ergodox_ez/keymaps/osx_de/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/osx_de/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/osx_de/osx_de_highres.png create mode 100644 keyboards/ergodox_ez/keymaps/osx_de/readme.md create mode 100644 keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png create mode 100644 keyboards/ergodox_ez/keymaps/osx_de_experimental/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/osx_de_experimental/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png create mode 100644 keyboards/ergodox_ez/keymaps/osx_de_experimental/readme.md create mode 100644 keyboards/ergodox_ez/keymaps/osx_fr/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/osx_fr/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/osx_kinesis_pnut/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/osx_kinesis_pnut/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/plover/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/plover/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/plums/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/plums/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/plums/plums.png create mode 100644 keyboards/ergodox_ez/keymaps/plums/readme.md create mode 100644 keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/readme.md create mode 100644 keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.png create mode 100644 keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md create mode 100644 keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.png create mode 100644 keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/readme.md create mode 100644 keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/romanzolotarev-norman-plover-osx.png create mode 100644 keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/readme.md create mode 100644 keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.png create mode 100644 keyboards/ergodox_ez/keymaps/sneako/README.md create mode 100644 keyboards/ergodox_ez/keymaps/sneako/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/sneako/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/software_neo2/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/software_neo2/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/supercoder/README.md create mode 100644 keyboards/ergodox_ez/keymaps/supercoder/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/supercoder/config_user.h create mode 100644 keyboards/ergodox_ez/keymaps/supercoder/images/layout.png create mode 100644 keyboards/ergodox_ez/keymaps/supercoder/images/supercoder_2000.jpg create mode 100644 keyboards/ergodox_ez/keymaps/supercoder/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/supercoder/makefile.mk create mode 100644 keyboards/ergodox_ez/keymaps/techtomas/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/techtomas/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/techtomas/readme.md create mode 100644 keyboards/ergodox_ez/keymaps/tm2030/README.md create mode 100644 keyboards/ergodox_ez/keymaps/tm2030/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/tm2030/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/tonyabra_osx/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/tonyabra_osx/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/tonyabra_osx/readme.md create mode 100644 keyboards/ergodox_ez/keymaps/townk_osx/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/townk_osx/config.h create mode 100644 keyboards/ergodox_ez/keymaps/townk_osx/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/townk_osx/makefile.mk create mode 100644 keyboards/ergodox_ez/keymaps/townk_osx/readme.md create mode 100644 keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_base.png create mode 100644 keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_fn.png create mode 100644 keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_keypad.png create mode 100644 keyboards/ergodox_ez/keymaps/twey/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/twey/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/twey/readme.md create mode 100644 keyboards/ergodox_ez/keymaps/workman_osx_mdw/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/workman_osx_mdw/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/zweihander-osx/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/zweihander-osx/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/zweihander-osx/readme.markdown create mode 100644 keyboards/ergodox_ez/matrix.c create mode 100644 keyboards/ergodox_ez/readme.md create mode 100644 keyboards/ergodox_ez/twimaster.c create mode 100644 keyboards/ergodox_ez/util/compile_keymap.py create mode 100644 keyboards/ergodox_ez/util/readme.md create mode 100644 keyboards/gh60/Makefile create mode 100644 keyboards/gh60/README.md create mode 100644 keyboards/gh60/config.h create mode 100644 keyboards/gh60/gh60.c create mode 100644 keyboards/gh60/gh60.h create mode 100644 keyboards/gh60/gh60revc.jpg create mode 100644 keyboards/gh60/keymaps/default/compiled.hex create mode 100644 keyboards/gh60/keymaps/default/keymap.c create mode 100644 keyboards/gh60/pinout.txt create mode 100644 keyboards/hhkb/Makefile create mode 100644 keyboards/hhkb/README.md create mode 100644 keyboards/hhkb/config.h create mode 100644 keyboards/hhkb/hhkb.c create mode 100644 keyboards/hhkb/hhkb.h create mode 100644 keyboards/hhkb/hhkb_avr.h create mode 100644 keyboards/hhkb/keymaps/default/compiled.hex create mode 100644 keyboards/hhkb/keymaps/default/keymap.c create mode 100644 keyboards/hhkb/keymaps/lxol/compiled.hex create mode 100644 keyboards/hhkb/keymaps/lxol/keymap.c create mode 100644 keyboards/hhkb/matrix.c create mode 100644 keyboards/jd45/Makefile create mode 100644 keyboards/jd45/config.h create mode 100644 keyboards/jd45/jd45.c create mode 100644 keyboards/jd45/jd45.h create mode 100644 keyboards/jd45/keymaps/default/compiled.hex create mode 100644 keyboards/jd45/keymaps/default/keymap.c create mode 100644 keyboards/jd45/keymaps/justin/compiled.hex create mode 100644 keyboards/jd45/keymaps/justin/keymap.c create mode 100644 keyboards/kc60/Makefile create mode 100644 keyboards/kc60/README.md create mode 100644 keyboards/kc60/config.h create mode 100644 keyboards/kc60/kc60.c create mode 100644 keyboards/kc60/kc60.h create mode 100644 keyboards/kc60/keymaps/default/compiled.hex create mode 100644 keyboards/kc60/keymaps/default/keymap.c create mode 100644 keyboards/kc60/keymaps/sgoodwin/compiled.hex create mode 100644 keyboards/kc60/keymaps/sgoodwin/keymap.c create mode 100644 keyboards/kc60/keymaps/stanleylai/Makefile create mode 100644 keyboards/kc60/keymaps/stanleylai/README.md create mode 100644 keyboards/kc60/keymaps/stanleylai/base_layer.png create mode 100644 keyboards/kc60/keymaps/stanleylai/compiled.hex create mode 100644 keyboards/kc60/keymaps/stanleylai/config.h create mode 100644 keyboards/kc60/keymaps/stanleylai/keymap.c create mode 100644 keyboards/kc60/keymaps/stanleylai/rgb_layer.png create mode 100644 keyboards/kc60/keymaps/ws2812/Makefile create mode 100644 keyboards/kc60/keymaps/ws2812/README.md create mode 100644 keyboards/kc60/keymaps/ws2812/compiled.hex create mode 100644 keyboards/kc60/keymaps/ws2812/config.h create mode 100644 keyboards/kc60/keymaps/ws2812/keymap.c create mode 100644 keyboards/kc60/keymaps/ws2812/ws2812_example.jpg create mode 100644 keyboards/kc60/keymaps/ws2812/ws2812_underside-lit.jpg create mode 100644 keyboards/kc60/keymaps/ws2812/ws2812_underside.jpg create mode 100644 keyboards/kc60/keymaps/ws2812/ws2812_wiring.jpg create mode 100644 keyboards/phantom/Makefile create mode 100644 keyboards/phantom/config.h create mode 100644 keyboards/phantom/keymaps/default/compiled.hex create mode 100644 keyboards/phantom/keymaps/default/keymap.c create mode 100644 keyboards/phantom/led.c create mode 100644 keyboards/phantom/phantom.c create mode 100644 keyboards/phantom/phantom.h create mode 100644 keyboards/phantom/pinout.jpg create mode 100644 keyboards/phantom/pinout.txt create mode 100644 keyboards/planck/.gitignore create mode 100644 keyboards/planck/Makefile create mode 100644 keyboards/planck/README.md create mode 100644 keyboards/planck/config.h create mode 100644 keyboards/planck/keymaps/.gitignore create mode 100644 keyboards/planck/keymaps/README.md create mode 100644 keyboards/planck/keymaps/alexey/Makefile create mode 100644 keyboards/planck/keymaps/alexey/compiled.hex create mode 100644 keyboards/planck/keymaps/alexey/keymap.c create mode 100644 keyboards/planck/keymaps/angerthosenear/Makefile create mode 100644 keyboards/planck/keymaps/angerthosenear/compiled.hex create mode 100644 keyboards/planck/keymaps/angerthosenear/keymap.c create mode 100644 keyboards/planck/keymaps/austin/Makefile create mode 100644 keyboards/planck/keymaps/austin/compiled.hex create mode 100644 keyboards/planck/keymaps/austin/keymap.c create mode 100644 keyboards/planck/keymaps/basic/Makefile create mode 100644 keyboards/planck/keymaps/basic/README.md create mode 100644 keyboards/planck/keymaps/basic/compiled.hex create mode 100644 keyboards/planck/keymaps/basic/keymap.c create mode 100644 keyboards/planck/keymaps/bone2planck/Makefile create mode 100644 keyboards/planck/keymaps/bone2planck/compiled.hex create mode 100644 keyboards/planck/keymaps/bone2planck/keymap.c create mode 100644 keyboards/planck/keymaps/brandon/Makefile create mode 100644 keyboards/planck/keymaps/brandon/compiled.hex create mode 100644 keyboards/planck/keymaps/brandon/keymap.c create mode 100644 keyboards/planck/keymaps/cbbrowne/.gitignore create mode 100644 keyboards/planck/keymaps/cbbrowne/Makefile create mode 100644 keyboards/planck/keymaps/cbbrowne/config.h create mode 100644 keyboards/planck/keymaps/cbbrowne/keymap.c create mode 100644 keyboards/planck/keymaps/cbbrowne/readme.md create mode 100644 keyboards/planck/keymaps/charlie/Makefile create mode 100644 keyboards/planck/keymaps/charlie/compiled.hex create mode 100644 keyboards/planck/keymaps/charlie/keymap.c create mode 100644 keyboards/planck/keymaps/daniel/Makefile create mode 100644 keyboards/planck/keymaps/daniel/compiled.hex create mode 100644 keyboards/planck/keymaps/daniel/keymap.c create mode 100644 keyboards/planck/keymaps/david/Makefile create mode 100644 keyboards/planck/keymaps/david/compiled.hex create mode 100644 keyboards/planck/keymaps/david/keymap.c create mode 100644 keyboards/planck/keymaps/default/Makefile create mode 100644 keyboards/planck/keymaps/default/README.md create mode 100644 keyboards/planck/keymaps/default/compiled.hex create mode 100644 keyboards/planck/keymaps/default/keymap.c create mode 100644 keyboards/planck/keymaps/dzobert/Makefile create mode 100644 keyboards/planck/keymaps/dzobert/compiled.hex create mode 100644 keyboards/planck/keymaps/dzobert/keymap.c create mode 100644 keyboards/planck/keymaps/experimental/Makefile create mode 100644 keyboards/planck/keymaps/experimental/README.md create mode 100644 keyboards/planck/keymaps/experimental/compiled.hex create mode 100644 keyboards/planck/keymaps/experimental/config.h create mode 100644 keyboards/planck/keymaps/experimental/keymap.c create mode 100644 keyboards/planck/keymaps/gabriel/Makefile create mode 100644 keyboards/planck/keymaps/gabriel/compiled.hex create mode 100644 keyboards/planck/keymaps/gabriel/keymap.c create mode 100644 keyboards/planck/keymaps/jacob/Keyboard Layout.PNG create mode 100644 keyboards/planck/keymaps/jacob/Makefile create mode 100644 keyboards/planck/keymaps/jacob/compiled.hex create mode 100644 keyboards/planck/keymaps/jacob/keymap.c create mode 100644 keyboards/planck/keymaps/jacob/readme.md create mode 100644 keyboards/planck/keymaps/joe/Makefile create mode 100644 keyboards/planck/keymaps/joe/compiled.hex create mode 100644 keyboards/planck/keymaps/joe/keymap.c create mode 100644 keyboards/planck/keymaps/kyle/Makefile create mode 100644 keyboards/planck/keymaps/kyle/compiled.hex create mode 100644 keyboards/planck/keymaps/kyle/keymap.c create mode 100644 keyboards/planck/keymaps/leo/Makefile create mode 100644 keyboards/planck/keymaps/leo/compiled.hex create mode 100644 keyboards/planck/keymaps/leo/keymap.c create mode 100644 keyboards/planck/keymaps/lucas/Makefile create mode 100644 keyboards/planck/keymaps/lucas/compiled.hex create mode 100644 keyboards/planck/keymaps/lucas/keymap.c create mode 100644 keyboards/planck/keymaps/lukas/Makefile create mode 100644 keyboards/planck/keymaps/lukas/compiled.hex create mode 100644 keyboards/planck/keymaps/lukas/keymap.c create mode 100644 keyboards/planck/keymaps/max/Makefile create mode 100644 keyboards/planck/keymaps/max/compiled.hex create mode 100644 keyboards/planck/keymaps/max/keymap.c create mode 100644 keyboards/planck/keymaps/mollat/Makefile create mode 100644 keyboards/planck/keymaps/mollat/compiled.hex create mode 100644 keyboards/planck/keymaps/mollat/keymap.c create mode 100644 keyboards/planck/keymaps/nico/Makefile create mode 100644 keyboards/planck/keymaps/nico/compiled.hex create mode 100644 keyboards/planck/keymaps/nico/keymap.c create mode 100644 keyboards/planck/keymaps/pete/Makefile create mode 100644 keyboards/planck/keymaps/pete/README.md create mode 100644 keyboards/planck/keymaps/pete/compiled.hex create mode 100644 keyboards/planck/keymaps/pete/keymap.c create mode 100644 keyboards/planck/keymaps/pvc/Makefile create mode 100644 keyboards/planck/keymaps/pvc/compiled.hex create mode 100644 keyboards/planck/keymaps/pvc/config.h create mode 100644 keyboards/planck/keymaps/pvc/keymap.c create mode 100644 keyboards/planck/keymaps/tak3over/Makefile create mode 100644 keyboards/planck/keymaps/tak3over/compiled.hex create mode 100644 keyboards/planck/keymaps/tak3over/keymap.c create mode 100644 keyboards/planck/keymaps/unicode/Makefile create mode 100644 keyboards/planck/keymaps/unicode/compiled.hex create mode 100644 keyboards/planck/keymaps/unicode/keymap.c create mode 100644 keyboards/planck/keymaps/yang/Makefile create mode 100644 keyboards/planck/keymaps/yang/WS2812-wiring.jpg create mode 100644 keyboards/planck/keymaps/yang/compiled.hex create mode 100644 keyboards/planck/keymaps/yang/keymap.c create mode 100644 keyboards/planck/keymaps/yang/planck-with-rgb-underglow.jpg create mode 100644 keyboards/planck/old_keymap_files/common_keymaps/keymap_brett.c create mode 100644 keyboards/planck/old_keymap_files/common_keymaps/keymap_dotcom.c create mode 100644 keyboards/planck/old_keymap_files/common_keymaps/keymap_jack.c create mode 100644 keyboards/planck/old_keymap_files/common_keymaps/keymap_joe.c create mode 100644 keyboards/planck/old_keymap_files/common_keymaps/keymap_matthew.c create mode 100644 keyboards/planck/old_keymap_files/common_keymaps/keymap_mitch.c create mode 100644 keyboards/planck/old_keymap_files/common_keymaps/keymap_nathan.c create mode 100644 keyboards/planck/old_keymap_files/common_keymaps/keymap_paul.c create mode 100644 keyboards/planck/old_keymap_files/common_keymaps/keymap_peasant.c create mode 100644 keyboards/planck/old_keymap_files/common_keymaps/keymap_reed.c create mode 100644 keyboards/planck/old_keymap_files/common_keymaps/keymap_sean.c create mode 100644 keyboards/planck/old_keymap_files/common_keymaps/keymap_shane.c create mode 100644 keyboards/planck/old_keymap_files/common_keymaps/keymap_simon.c create mode 100644 keyboards/planck/old_keymap_files/common_keymaps/keymap_tim.c create mode 100644 keyboards/planck/old_keymap_files/common_keymaps/keymap_wilba.c create mode 100644 keyboards/planck/old_keymap_files/keymap_common.c create mode 100644 keyboards/planck/old_keymap_files/keymap_common.h create mode 100644 keyboards/planck/planck.c create mode 100644 keyboards/planck/planck.h create mode 100644 keyboards/preonic/Makefile create mode 100644 keyboards/preonic/README.md create mode 100644 keyboards/preonic/config.h create mode 100644 keyboards/preonic/keymaps/default/Makefile create mode 100644 keyboards/preonic/keymaps/default/README.md create mode 100644 keyboards/preonic/keymaps/default/compiled.hex create mode 100644 keyboards/preonic/keymaps/default/keymap.c create mode 100644 keyboards/preonic/preonic.c create mode 100644 keyboards/preonic/preonic.h create mode 100644 keyboards/retro_refit/Makefile create mode 100644 keyboards/retro_refit/README.md create mode 100644 keyboards/retro_refit/config.h create mode 100644 keyboards/retro_refit/keymaps/default/compiled.hex create mode 100644 keyboards/retro_refit/keymaps/default/keymap.c create mode 100644 keyboards/retro_refit/retro_refit.c create mode 100644 keyboards/retro_refit/retro_refit.h create mode 100644 keyboards/satan/Makefile create mode 100644 keyboards/satan/backlight.c create mode 100644 keyboards/satan/config.h create mode 100644 keyboards/satan/controller.jpg create mode 100644 keyboards/satan/keymaps/default/compiled.hex create mode 100644 keyboards/satan/keymaps/default/keymap.c create mode 100644 keyboards/satan/led.c create mode 100644 keyboards/satan/pinout.txt create mode 100644 keyboards/satan/power.jpg create mode 100644 keyboards/satan/satan.c create mode 100644 keyboards/satan/satan.h create mode 100644 keyboards/sixkeyboard/Makefile create mode 100644 keyboards/sixkeyboard/README.md create mode 100644 keyboards/sixkeyboard/config.h create mode 100644 keyboards/sixkeyboard/keymaps/default/compiled.hex create mode 100644 keyboards/sixkeyboard/keymaps/default/keymap.c create mode 100644 keyboards/sixkeyboard/matrix.c create mode 100644 keyboards/sixkeyboard/sixkeyboard.c create mode 100644 keyboards/sixkeyboard/sixkeyboard.h (limited to 'keyboards') diff --git a/keyboards/alps64/Makefile b/keyboards/alps64/Makefile new file mode 100644 index 000000000..d8325e6c8 --- /dev/null +++ b/keyboards/alps64/Makefile @@ -0,0 +1,70 @@ + + +# Target file name (without extension). + +# project specific files +SRC = led.c + +# MCU name +MCU = atmega32u2 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= yes # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +#NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA + +ifndef QUANTUM_DIR + include ../../Makefile +endif \ No newline at end of file diff --git a/keyboards/alps64/alps64.c b/keyboards/alps64/alps64.c new file mode 100644 index 000000000..dde10c11e --- /dev/null +++ b/keyboards/alps64/alps64.c @@ -0,0 +1,43 @@ +/* +Copyright 2012,2013 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include "quantum.h" + +#define LED_ON() do { DDRC |= (1<<5); PORTC |= (1<<5); } while (0) +#define LED_OFF() do { DDRC &= ~(1<<5); PORTC &= ~(1<<5); } while (0) +#define LED_TGL() do { DDRC |= (1<<5); PINC |= (1<<5); } while (0) + +__attribute__ ((weak)) +void matrix_init_user(void) { + +} + +__attribute__ ((weak)) +void matrix_scan_user(void) { + +} + +void matrix_init_kb(void) { + LED_ON(); + _delay_ms(500); + LED_OFF(); + + matrix_init_user(); +} + +void matrix_scan_kb(void) { + matrix_scan_user(); +} diff --git a/keyboards/alps64/alps64.h b/keyboards/alps64/alps64.h new file mode 100644 index 000000000..f265c3358 --- /dev/null +++ b/keyboards/alps64/alps64.h @@ -0,0 +1,40 @@ +/* +Copyright 2012,2013 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#ifndef ALPS64_H +#define ALPS64_H + +#include "quantum.h" + +/* Alps64 keymap definition macro */ +#define KEYMAP( \ + K36, K37, K46, K47, K56, K57, K66, K67, K76, K77, K06, K07, K17, K26, K27, \ + K34, K35, K44, K45, K54, K55, K64, K65, K75, K05, K15, K16, K25, K24, \ + K32, K33, K43, K52, K53, K63, K73, K74, K03, K04, K13, K14, K23, \ + K31, K41, K42, K51, K61, K62, K71, K72, K01, K02, K11, K12, K21, K22, \ + K30, K40, K50, K60, K70, K00, K10, K20 \ +) { \ + { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07 }, \ + { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17 }, \ + { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27 }, \ + { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37 }, \ + { KC_##K40, KC_##K41, KC_##K42, KC_##K43, KC_##K44, KC_##K45, KC_##K46, KC_##K47 }, \ + { KC_##K50, KC_##K51, KC_##K52, KC_##K53, KC_##K54, KC_##K55, KC_##K56, KC_##K57 }, \ + { KC_##K60, KC_##K61, KC_##K62, KC_##K63, KC_##K64, KC_##K65, KC_##K66, KC_##K67 }, \ + { KC_##K70, KC_##K71, KC_##K72, KC_##K73, KC_##K74, KC_##K75, KC_##K76, KC_##K77 } \ +} + +#endif diff --git a/keyboards/alps64/config.h b/keyboards/alps64/config.h new file mode 100644 index 000000000..858a82ecd --- /dev/null +++ b/keyboards/alps64/config.h @@ -0,0 +1,75 @@ +/* +Copyright 2015 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6464 +#define DEVICE_VER 0x0001 +#define MANUFACTURER TMK +#define PRODUCT Alps64 +#define DESCRIPTION TMK keyboard firmware for Alps64 + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 8 + +#define MATRIX_COL_PINS { B0, B1, B2, B3, B4, B5, B6, B7 } +#define MATRIX_ROW_PINS { D0, D1, D2, D3, D4, D5, D6, C2 } +#define UNUSED_PINS + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + + + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/alps64/keymaps/default/compiled.hex b/keyboards/alps64/keymaps/default/compiled.hex new file mode 100644 index 000000000..ef43410f2 --- /dev/null +++ b/keyboards/alps64/keymaps/default/compiled.hex @@ -0,0 +1,1373 @@ +:100000000C940B060C944F060C944F060C944F0660 +:100010000C944F060C944F060C944F060C944F060C +:100020000C944F060C944F060C944F060C94D5106C +:100030000C9483110C94E81E0C944F060C944F06FC +:100040000C944F060C944F060C944F060C94501FC2 +:100050000C944F060C944F060C944F060C944F06CC +:100060000C944F060C944F060C944F060C944F06BC +:100070000C944F06F01112120013121200135712B3 +:100080007A120013CF12E2120C160C163B163B1616 +:100090007A169A16CA17CA17A516CA1755175517EA +:1000A000BB17CA17CA17C4176217621762176217FD +:1000B0006217621762176217621762176217621778 +:1000C00062176217621762177217801787178E17E9 +:1000D0009817E600100036000E000F0012002700EF +:1000E0002D00E700370038003300340013002F00E4 +:1000F0002E00E400E5002900280031003000320025 +:100100002A00E000E100390004002B001400350053 +:100110001E00E30064001D0016001A0008001F0006 +:100120002000E2001B000700090015001700210055 +:1001300022002C00060019000A001C0018002300F1 +:1001400024006500050011000B000D000C002500C7 +:1001500026000A44454255473A20656E61626C6547 +:10016000642E0A005374617465206F6620726F7785 +:100170002025583A2025303136620A0048756D61D5 +:100180006E2D7265616461626C65206D6174726967 +:10019000782073746174653A0D0A004465626F7566 +:1001A0006E63696E672064656C61792072656D614C +:1001B000696E696E673A2025580A005B735D004BD3 +:1001C0006579626F6172642073746172742E0A00C3 +:1001D0005B525D005B445D005B435D000E034100CC +:1001E0006C007000730036003400000008035400F7 +:1001F0004D004B00000004030904090274000401CF +:1002000000A0FA0904000001030101000921110105 +:100210000001223F000705810308000A09040100CC +:100220000103010200092111010001224D0007050F +:10023000820308000A0904020001030000000921EA +:10024000110100012236000705830308000A090492 +:100250000300020300000009211101000122200017 +:100260000705840320000107050403200001120193 +:10027000100100000008EDFE6464010001020001AD +:100280000631FF0974A1010975150025FF95207538 +:100290000881020976150025FF952075089102C096 +:1002A00005010980A101850216010026B7001A0187 +:1002B000002AB700751095018100C0050C0901A145 +:1002C000018503160100269C021A01002A9C027572 +:1002D0001095018100C005010902A1010901A100D9 +:1002E00005091901290515002501950575018102EA +:1002F0009501750381010501093009311581257FBB +:1003000095027508810609381581257F95017508C4 +:100310008106050C0A38021581257F950175088133 +:1003200006C0C005010906A101050719E029E71566 +:100330000025019508750181029501750881010567 +:10034000081901290595057501910295017503911B +:10035000010507190029FF150025FF95067508817D +:1003600000C00A002530325820006B6579626F6149 +:1003700072645F7265706F72743A20004B657962C7 +:100380006F617264204C4544732073746174653AE4 +:100390002025780A00646F6E652E0A00626F6F6711 +:1003A0006D61676963207363616E3A202E2E2E2083 +:1003B00000290A002575002F002575005D280025FD +:1003C00064002000256400200025640020002564CE +:1003D000007C0025303258006D6F7573656B657950 +:1003E000205B62746E7C782079207620685D2872AC +:1003F00065702F61636C293A205B006D6B5F7768D5 +:1004000065656C5F74696D655F746F5F6D617820A1 +:100410003D2025640A006D6B5F776865656C5F6DD4 +:1004200061785F7370656564203D2025640A006D06 +:100430006B5F74696D655F746F5F6D6178203D20DF +:1004400025640A006D6B5F6D61785F73706565642C +:10045000203D2025640A006D6B5F696E74657276BD +:10046000616C203D2025640A006D6B5F64656C61E2 +:1004700079203D2025640A006D6B5F776865656CA7 +:100480005F74696D655F746F5F6D6178203D2025D5 +:10049000640A006D6B5F776865656C5F6D61785F9E +:1004A0007370656564203D2025640A006D6B5F7480 +:1004B000696D655F746F5F6D6178203D2025640A0A +:1004C000006D6B5F6D61785F7370656564203D20C2 +:1004D00025640A006D6B5F696E74657276616C20CD +:1004E0003D2025640A006D6B5F64656C6179203D79 +:1004F0002025640A000A00257500363A20776865D1 +:10050000656C5F74696D655F746F5F6D61783A20CB +:10051000000A00257500353A20776865656C5F6DC7 +:1005200061785F73706565643A20000A0025750084 +:10053000343A2074696D655F746F5F6D61783A203D +:10054000000A00257500333A206D61785F7370658D +:1005500065643A20000A00257500323A20696E74FD +:10056000657276616C286D73293A20000A00257542 +:1005700000313A2064656C6179282A31306D732925 +:100580003A20000A092D2056616C756573202D0AEA +:10059000004D3E004D25643E20003F0073657420F1 +:1005A00064656661756C740A00433E200077686577 +:1005B00072652064656C74613A20637572736F7242 +:1005C0003D25642C20776865656C3D25640A53657C +:1005D0006520687474703A2F2F656E2E77696B6989 +:1005E00070656469612E6F72672F77696B692F4D33 +:1005F0006F7573655F6B6579730A000A092D204D6D +:100600006F7573656B6579202D0A4553432F713AD9 +:1006100009717569740A313A0964656C6179282A2F +:1006200031306D73290A323A09696E7465727661E8 +:100630006C286D73290A333A096D61785F737065B0 +:1006400065640A343A0974696D655F746F5F6D6142 +:10065000780A353A09776865656C5F6D61785F7314 +:10066000706565640A363A09776865656C5F746918 +:100670006D655F746F5F6D61780A0A703A09707218 +:10068000696E742076616C7565730A643A097365E6 +:10069000742064656661756C74730A75703A092B11 +:1006A000310A646F776E3A092D310A706775703AB6 +:1006B000092B31300A7067646F776E3A092D31303B +:1006C0000A0A7370656564203D2064656C7461205E +:1006D0002A206D61785F7370656564202A20287216 +:1006E0006570656174202F2074696D655F746F5F3C +:1006F0006D6178290A003F004D3E2000433E2000F6 +:100700004C25640A0074696D65725F636F756E7461 +:100710003A202530346C580A006B6579626F61723B +:10072000645F69646C653A2025580A006B657962DC +:100730006F6172645F70726F746F636F6C3A2025C3 +:10074000580A00686F73745F6B6579626F617264D9 +:100750005F6C65647328293A2025580A000A092D20 +:1007600020537461747573202D0A004743433A2067 +:10077000342E392E32204156522D4C4942433A20D4 +:10078000312E382E31204156525F415243483A2093 +:1007900061767233350A004F5054494F4E533A2018 +:1007A0004C55464120424F4F544D41474943204DFF +:1007B0004F5553454B45592045585452414B455987 +:1007C00020434F4E534F4C4520434F4D4D414E44D7 +:1007D00020343039360A004255494C443A203136EB +:1007E00037313865662D6469727479202832333A5E +:1007F00030373A3132204A756E202039203230317C +:1008000036290A005649443A20307846454544285E +:10081000544D4B29205049443A20307836343634F0 +:1008200028416C7073363429205645523A2030786E +:10083000303030310A00444553433A20544D4B2068 +:100840006B6579626F617264206669726D7761723F +:100850006520666F7220416C707336340A000A0995 +:100860002D2056657273696F6E202D0A000A092DBE +:1008700020436F6E736F6C65202D0A4553432F71B3 +:100880003A09717569740A6D3A096D6F7573656B14 +:1008900065790A000A092D204D61676963202D0AD8 +:1008A000443A094465627567204D657373616765F5 +:1008B00020546F67676C650A583A094D6174726914 +:1008C00078204465627567204D6F646520546F67BA +:1008D000676C65202D2053686F77206B6579707287 +:1008E000657373657320696E206D61747269782019 +:1008F000677269640A4B3A094B6579626F61726489 +:1009000020446562756720546F67676C65202D20F1 +:1009100053686F77206B65797072657373207265A9 +:10092000706F72740A4D3A094465627567204D6FA5 +:1009300075736520546F67676C650A563A0956658A +:100940007273696F6E0A533A095374617475730A4E +:10095000433A09416374697661746520436F6E732D +:100960006F6C65204D6F64650A46312D4631303A13 +:100970000953776974636820746F204C61796572DC +:1009800020302D392028463130203D204C30290A96 +:10099000302D393A0953776974636820746F204C9D +:1009A0006179657220302D390A4553433A095377EE +:1009B0006974636820746F204C61796572203020FF +:1009C00028616C7465726E617465206B6579203185 +:1009D000290A47524156453A09537769746368209A +:1009E000746F204C6179657220302028616C7465C9 +:1009F000726E617465206B65792032290A50415509 +:100A000053453A094A756D7020746F20426F6F74B8 +:100A10006C6F6164657220285265736574290A459C +:100A20003A095072696E7420454550524F4D20531B +:100A3000657474696E67730A000A002575002E6E6E +:100A40006B726F3A20000A002575002E7377617073 +:100A50005F6261636B736C6173685F6261636B7328 +:100A6000706163653A20000A002575002E73776176 +:100A7000705F67726176655F6573633A20000A0094 +:100A80002575002E6E6F5F6775693A20000A002594 +:100A900075002E737761705F72616C745F72677539 +:100AA000693A20000A002575002E737761705F6C2B +:100AB000616C745F6C6775693A20000A00257500E7 +:100AC0002E636170736C6F636B5F746F5F636F6EC7 +:100AD00074726F6C3A20000A002575002E737761DE +:100AE000705F636F6E74726F6C5F636170736C6F55 +:100AF000636B3A20000A0025303258006B65796D2F +:100B000061705F636F6E6669672E7261773A20006D +:100B10000A002575002E6D6F7573653A20000A0076 +:100B20002575002E6B6579626F6172643A20000A48 +:100B3000002575002E6D61747269783A20000A00F4 +:100B40002575002E656E61626C653A20000A0025ED +:100B50003032580064656275675F636F6E666967FF +:100B60002E7261773A20000A00257500646566617F +:100B7000756C745F6C617965723A20003F000A6D94 +:100B80006F7573653A206F66660A000A6D6F75733C +:100B9000653A206F6E0A000A6B6579626F61726454 +:100BA0003A206F66660A000A6B6579626F6172644B +:100BB0003A206F6E0A000A6D61747269783A206F8C +:100BC00066660A000A6D61747269783A206F6E0A6F +:100BD000000A64656275673A206F66660A000A64F7 +:100BE000656275673A206F6E0A000A0A4A756D7071 +:100BF000696E6720746F20626F6F746C6F616465DB +:100C0000722E2E2E2000433E20006565636F6E66B7 +:100C100069673A0A000011241FBECFEFD4E0DEBF9F +:100C2000CDBF04B603FE24C08091E8019091E90194 +:100C3000A091EA01B091EB018730904BA740B04BF7 +:100C4000B9F41092E8011092E9011092EA011092B1 +:100C5000EB0114BE84B7877F84BF88E10FB6F89498 +:100C600080936000109260000FBEE0E0F8E3099509 +:100C700011E0A0E0B1E0E2E6F5E502C005900D92DA +:100C8000A234B107D9F711E0A2E4B1E001C01D928E +:100C9000A83EB107E1F70E942D0E0C94AF2A0C94E8 +:100CA0000000FF93EF93E0914201F09143013097F0 +:100CB00009F00995EF91FF910895FC01859180302D +:100CC00011F0EFDFFBCF0895FF27E0E230E247FFAE +:100CD0000CC0419597FF09C0EDE260957095809535 +:100CE0009095611D711D811D911D27FF02C02195E9 +:100CF00030E350E2AA27660F771F881F991FAA1FAB +:100D0000A41710F0A41B63955A95A9F7AA3008F010 +:100D1000A95FA05DAF93F3956115710581059105FC +:100D200041F7ED3211F4EF93F395F21718F43F9376 +:100D3000F395FBCF8F91B5DFFA95E1F70895E9912F +:100D4000F9918591803021F0853219F0AADFF9CF31 +:100D5000089520E0E89455915532C1F3503311F4D1 +:100D6000689455915A3348F4505390F3220F022E51 +:100D7000220F220F200D250FF4CF0EF4219589911B +:100D80009991533619F3533729F1533559F1BC0171 +:100D900088279927E8945C3621F489919991689481 +:100DA0005591543639F446EF7EF077FF0DC08FEF42 +:100DB0009FEF0AC055374AE039F0583540E121F03D +:100DC000523642E009F00895FF93EF937DDFEF91F3 +:100DD000FF91B7CFFF93EF93FC0181918030B9F37E +:100DE00060DFFBCFFF93EF9368DFF1CFDF93CF930B +:100DF000CDB7DEB72596A3DFCF91DF91089581FFB0 +:100E000003C03D9A459A08953D98459808950895E0 +:100E100008953D9A459A2FEF89E698E12150804048 +:100E20009040E1F700C000003D9845980C940707FA +:100E30000C94080781E0089581E008950C941C0744 +:100E400008950F931F93CF93DF938C01FC01C08112 +:100E5000D181CE010E94411DBE010E94D107EC014B +:100E6000B8010E941E07882309F48DC0F801828111 +:100E7000882309F44AC080914F0181111FC0C431F9 +:100E8000F0E5DF0709F051C00E94200781E0809360 +:100E90004F010E941A1F90934E0180934D011092B2 +:100EA0004601109248011092470110924A01109297 +:100EB000490110924C0110924B0165C080914D0187 +:100EC00090914E010E94261F883C910570F48091FC +:100ED0004601E82FF0E0EE0FFF1FE95BFE4FD183E4 +:100EE000C0838F5F809346014EC0C43880E5D80729 +:100EF00021F0C538D04501F13AC0F801828188233C +:100F000041F01092440182E01EC0C438E0E5DE07E3 +:100F100059F580914401811106C086E20E94B01407 +:100F200086E20E94781582E01CC0C438F0E5DF0735 +:100F300041F3C538D045D9F4F8018281882331F0D6 +:100F40001092450180E20E94C7151DC080914501A5 +:100F5000811106C087E20E94B01487E20E947815D2 +:100F600080E20E94CE150FC0C538D04529F381E03C +:100F70008093440180934501C801DF91CF911F9177 +:100F80000F910C941A0780E0DF91CF911F910F9180 +:100F900008950C9409070C94180780E090E00895D8 +:100FA0000895E82FF0E083E0EE0FFF1F8A95E1F748 +:100FB000E70FF11D93E0EE0FFF1F9A95E1F7E60FA3 +:100FC000F11DEE0FFF1FEE52FF4F85919491089592 +:100FD000880F991FFC01EE5AF04085919491089575 +:100FE000880F991FFC01EE52FF4F8591949108954F +:100FF0000F931F93CF93DF93EC01811520E39207AA +:1010000050F5C11580E2D80708F0C3C0CB3BD1052D +:1010100090F4C83AD10508F06AC0C53AD10508F085 +:101020005BC0C430D10508F0D4C1219709F0CEC10E +:1010300001E010E00EC2CF3FD10511F008F0C9C1A8 +:10104000C03FD10508F0A2C0CE01805E910908978B +:1010500008F4BFC1BBC1C13090E5D90709F4A2C0F3 +:1010600020F5C0318FE4D80770F4C11590E4D9079A +:1010700008F094C0C11521E3D20708F0A7C1DD270D +:101080008E01106CE6C1C115D04509F09FC10E94C8 +:1010900035188FEF94E32CE0815090402040E1F729 +:1010A00000C000000E94751FD4C1C11597E5D90783 +:1010B00058F4C03121E5D20708F020C1C43180E5E1 +:1010C000D80708F479C082C1CE01905781159041AC +:1010D00008F07CC1DF7077C1C53AD10509F47BC146 +:1010E000C63AD10509F07AC102E810E4B2C1C83AA3 +:1010F000D10509F476C1C93AD10509F475C1CA3AD6 +:10110000D10509F474C1CB3AD10509F473C1CC3AC5 +:10111000D10509F472C1CD3AD10509F471C1C03BC2 +:10112000D10509F470C1CE3AD10509F46FC1CF3AA7 +:10113000D10509F46EC1C13BD10509F46DC1C23BB3 +:10114000D10509F46CC1C33BD10509F46BC1C43BA3 +:10115000D10509F46AC1C53BD10509F469C1C63B93 +:10116000D10509F468C1C73BD10509F467C1C83B83 +:10117000D10509F466C1C93BD10509F465C1CA3B73 +:10118000D10509F464C100E014E463C18E01106567 +:1011900060C1CE019F700E94F0075CC1DF708E01BC +:1011A000106A57C182E591E00E945D068091C901F5 +:1011B00081608093C9014DC10E941B21811102C031 +:1011C0000E9401210E94382190E09093E8018093D1 +:1011D000E701C23080E5D80721F48091E701816002 +:1011E00086C0C43090E5D90721F48091E701826080 +:1011F0007EC0C63020E5D20721F48091E7018460EB +:1012000076C0C83080E5D80719F48091E70127C07F +:10121000CA3090E5D90721F48091E701806167C069 +:10122000CC3020E5D20721F48091E70180625FC0D5 +:10123000CE3080E5D80721F48091E701806457C063 +:10124000C03190E5D90721F48091E70180684FC053 +:10125000C23120E5D20729F48091E70184608860DB +:1012600046C0C33080E5D80721F48091E7018E7F26 +:101270003EC0C53090E5D90721F48091E7018D7F0C +:1012800036C0C73020E5D20721F48091E7018B7F7B +:101290002EC0C93080E5D80719F48091E70126C037 +:1012A000CB3090E5D90721F48091E7018F7E1FC0F4 +:1012B000CD3020E5D20721F48091E7018F7D17C062 +:1012C000CF3080E5D80721F48091E7018F7B0FC0F4 +:1012D000C13190E5D90721F48091E7018F7707C0EC +:1012E000C331D04531F48091E7018B7F877F8093B4 +:1012F000E7018091E7010E943C21ABC08D2F992727 +:101300008F70992781309105D9F49E01237033277E +:1013100002C0880F991F2A95E2F79C688E0144E06D +:10132000000F111F4A95E1F700271370802B912BB6 +:1013300053E0CC0FDD1F5A95E1F7C076DD272FC0B3 +:101340008230910531F4DC2FCC278E01016F106AB9 +:1013500080C08330910569F4CE018370992701E044 +:1013600010E002C0000F111F8A95E2F7C8019C68C7 +:101370000FC084309105B9F4CE018370992701E044 +:1013800010E002C0000F111F8A95E2F7C8019A68A9 +:1013900023E0CC0FDD1F2A95E1F7C07ED7708C01CA +:1013A0000C2B1D2B56C08530910531F4DC2FCC273A +:1013B0008E01046F106A4DC0069709F04AC0CF71C4 +:1013C000DD27DC2FCC278E01106243C000E010E047 +:1013D00040C08E013EC001E810E43BC003E810E4C9 +:1013E00038C002EE14E435C009EE14E432C00AEE4F +:1013F00014E42FC005EB14E42CC006EB14E429C060 +:1014000007EB14E426C00CEC14E423C00DEC14E448 +:1014100020C003E815E41DC00AE815E41AC002E97B +:1014200015E417C004E915E414C001E216E411C084 +:1014300003E216E40EC004E216E40BC005E216E473 +:1014400008C006E216E405C007E216E402C00AE29C +:1014500016E4C801DF91CF911F910F910895E82FF5 +:10146000F0E083E0EE0FFF1F8A95E1F7E70FF11D33 +:1014700093E0EE0FFF1F9A95E1F7E60FF11DEE0FD7 +:10148000FF1FEE52FF4F85919491803E9105E0F44D +:10149000803C910558F58133910509F46FC048F4FB +:1014A0008932910509F463C08A32910509F46DC04F +:1014B00072C089339105E9F082389105D1F0853306 +:1014C000910509F44DC067C0833E910581F138F460 +:1014D000803E9105B9F0823E9105D9F05CC0863E10 +:1014E000910561F1873E9105A1F155C00E94E80781 +:1014F00008952091E70120FD02C021FF4CC080EE3D +:1015000090E049C08091E70180FFF9CF89E390E046 +:1015100042C08091E70182FF0EC08091E70184FF05 +:1015200003C080E090E037C083EE90E034C080914B +:10153000E70182FFF2CF82EE90E02DC08091E701BB +:1015400083FF0BC08091E70184FDEBCF87EE90E035 +:1015500022C08091E70183FFF5CF86EE90E01BC0AB +:101560008091E70185FF07C089E290E014C0809177 +:10157000E70185FFF9CF85E390E00DC08091E70199 +:1015800086FF07C08AE290E006C08091E70186FFEF +:10159000F9CF81E390E00E94F8070895E82FF0E08A +:1015A000E45EFE4F8081E82FEF70F0E082958F704F +:1015B00021E030E0A90102C0440F551F8A95E2F7EF +:1015C00040A308950F931F93CF93DF93C7E0D0E01C +:1015D00001E010E0FE01E45EFE4F8081E82FEF7035 +:1015E000F0E021A182958F70A80102C0440F551F21 +:1015F0008A95E2F7CA01822B81A38C2F0E94CE0A22 +:10160000219740F787E090E061E070E0FC01EC5E3C +:10161000FE4F2081E22FEF70F0E042A122952F7063 +:10162000DB0102C0AA0FBB1F2A95E2F79D01242B04 +:1016300022A3019758F7DF91CF911F910F910C943E +:10164000C907EF92FF920F931F93CF93DF9308E5A3 +:1016500011E0C7E0EE24E394F12CD5E08C2F0E943A +:10166000CE0A87E090E040E0FC01EC5EFE4F508146 +:10167000E52FEF70F0E020A130E052955F7002C0DE +:10168000359527955A95E2F720FD07C09701082E5A +:1016900001C0220F0A94EAF7422B019728F7F801BC +:1016A00082918F01841719F04083D09300018C2F11 +:1016B0000E94CE0AC15090F68091000187FD32C091 +:1016C0009091C90190FF10C0282F332727FD309536 +:1016D0003F938F938BE991E09F938F930E94F6063F +:1016E0000F900F900F900F90809100018150809388 +:1016F000000187FD07C08FE99FE00197F1F700C067 +:10170000000010C080E090E0FC01E85AFE4FDC01D0 +:10171000A05BBE4F17962C9127830197883FEFEF70 +:101720009E0791F70E94CB0781E0DF91CF911F9137 +:101730000F91FF90EF900895E82FF0E0E85AFE4FE8 +:10174000808108950F931F93CF93DF938091C901F8 +:1017500080FF04C08CE791E00E945D06C0E0D0E00D +:1017600004E611E08091C90180FF15C0FE01E85A2E +:10177000FE4F808190E00E94951E9F938F93DF9390 +:10178000CF931F930F930E94F6060F900F900F9028 +:101790000F900F900F902196C830D10519F7DF9167 +:1017A000CF911F910F9108950F931F93CF9300E650 +:1017B00011E0C0E0F80182918F0190E00E94771E55 +:1017C000C80FF1E008351F07A9F78C2FCF911F91A3 +:1017D0000F91089580916B0108959FB7F89410922E +:1017E00062019FBF9091DE01943009F057C0909143 +:1017F000E9009F703091EC00232F217030FD20E82C +:10180000922B24E02093E9002091EB0020FF43C0BD +:101810002091EE0027FF3FC020916001222321F09C +:101820002091E80025FF37C01092600126E030913A +:10183000E80035FD15C03091DE01343061F530919E +:10184000EB0035FD28C0215021F481E08093600138 +:1018500022C0EFE9FFE03197F1F700C00000E7CFC9 +:101860008093F1008091E80085FD0AC08091E80036 +:1018700080FFFCCF8091E8008E778093E80006C05F +:101880008FB7F89421E0209362018FBF9F709093EF +:10189000E90080E008959F709093E9008FEF08952C +:1018A000CF93DF9300D01F92CDB7DEB79C0180911C +:1018B000DE01843019F593E099833B832A8390936A +:1018C000E9008FEF9091E800815095FD06C095EDFD +:1018D0009A95F1F700008111F5CF8091E80085FF1E +:1018E0000DC040E050E063E070E0CE0101960E9440 +:1018F000E30E8091E8008E778093E8000F900F90C0 +:101900000F90DF91CF910895CF93DF9300D01F9276 +:10191000CDB7DEB72091DE01243021F522E0298306 +:101920009B838A8383E08093E9008FEF9091E800A6 +:10193000815095FD06C095ED9A95F1F70000811153 +:10194000F5CF8091E80085FF0DC040E050E063E0F6 +:1019500070E0CE0101960E94E30E8091E8008E7740 +:101960008093E8000F900F900F90DF91CF91089532 +:101970002091DE012430F1F422E02093E9002FEFE2 +:101980003091E800215035FD06C035ED3A95F1F76C +:1019900000002111F5CF2091E80025FF0BC040E0A9 +:1019A00050E065E070E00E94E30E8091E8008E77E1 +:1019B0008093E8000895CF93DF932091DE012430D7 +:1019C00039F521E02093E9002FEF3091E800215014 +:1019D00035FD06C035ED3A95F1F700002111F5CF40 +:1019E0002091E80025FF14C0EC0140E050E068E0E1 +:1019F00070E00E94E30E8091E8008E778093E8000B +:101A000088E0FE01A3E6B1E001900D928A95E1F72E +:101A1000DF91CF91089588ED91E00E945D0680915D +:101A2000DD01811109C00E9472100E94C5108091D1 +:101A3000E20084608093E200089584ED91E00E94CA +:101A40005D061092DD01089580ED91E00C945D0635 +:101A5000209161012F5F822F62E30E943F2A992328 +:101A600019F0209361010895109261018091620143 +:101A7000882371F18091DE01843041F58091E90085 +:101A80008F702091EC00922F917020FD90E8892BAF +:101A900094E09093E9009091EB0090FF14C0909136 +:101AA000EE0097FF10C09091E80095FF03C01092E0 +:101AB000F100F9CF9091E80090FF05C09091E80007 +:101AC0009E779093E8008F708093E90010926201F6 +:101AD000089542E061EC81E00E94EC0F42E061EC8D +:101AE00082E00E94EC0F42E061EC83E00E94EC0F88 +:101AF00042E261EC84E00C94EC0F8091E0018330D1 +:101B000009F453C030F4813071F0823009F48CC094 +:101B100008958A3009F478C08B3009F45EC08930AA +:101B200009F09AC020C08091DF01813A09F094C089 +:101B30008091E800877F8093E8008091E301909195 +:101B4000E401892B21F468E083E691E003C060E0C2 +:101B500080E090E070E00E942E0F8091E8008B778B +:101B60008093E80008958091DF01813209F074C00C +:101B70008091E3019091E401892B09F06DC080917F +:101B8000E800877F8093E8008091E80082FD05C02F +:101B90008091DE018111F8CF5FC08091F1008093C8 +:101BA0006B018091E8008B7753C08091DF01813A0F +:101BB00009F052C08091E3019091E401892B09F072 +:101BC0004BC08091E800877F8093E8008091E80017 +:101BD00080FFFCCF80910B0136C08091DF01813204 +:101BE000D9F58091E3019091E401892BA9F58091C9 +:101BF000E800877F8093E8000E9421108091E10136 +:101C000080930B010C9435188091DF01813221F50E +:101C10008091E800877F8093E8000E9421108091E6 +:101C2000E20180936C0108958091DF01813AA1F473 +:101C30008091E800877F8093E8008091E80080FF32 +:101C4000FCCF80916C018093F1008091E8008E7749 +:101C50008093E8000C942110089584B7877F84BF97 +:101C600088E10FB6F89480936000109260000FBE78 +:101C700090E080E80FB6F894809361009093610043 +:101C80000FBE0E94C5130E9472100E94C510809161 +:101C9000E20084608093E2008DEE9BE00E94721E61 +:101CA00078940E9418130E94C71381E091E00E946B +:101CB00033138FEB91E00E945D068091DE01853049 +:101CC00089F48BEB91E00E945D060E94AF1E80912B +:101CD000DC01882391F30E94DA1E882371F30E94AD +:101CE000CD0EEBCF0E94EB13E8CF292F3327233003 +:101CF0003105C9F064F42130310581F0223031051D +:101D000009F043C084E790E02AEF31E042C021327D +:101D10003105F1F02232310541F137C082E190E026 +:101D20002EE632E036C099278130910541F08230AD +:101D3000910541F0892B49F5E6EFF1E005C0ECEEA5 +:101D4000F1E002C0ECEDF1E0849190E09F0121C050 +:101D50006430D8F4E62FF0E0EE0FFF1FE05DFE4F99 +:101D60002081318189E090E014C0643070F470E02B +:101D7000FB01EE0FFF1FE85DFE4F20813181FB016B +:101D8000EC5DFE4F808190E004C080E090E020E0B8 +:101D900030E0FA0131832083089584E089BD86E034 +:101DA00089BD09B400FEFDCF8091D8008F7D80935E +:101DB000D8008091E00082608093E0008091E00094 +:101DC00081FDFCCF0895CF92DF92EF92FF920F93A7 +:101DD0001F93CF93DF93EC018B016A010E944010A7 +:101DE000811133C0C114D10439F0F6018081918191 +:101DF000081B190BC80FD91FE12CF12C0115110577 +:101E000019F18091E80085FD16C08091E8008E7779 +:101E10008093E800C114D10449F0F60180819181DA +:101E2000E80EF91EF182E08285E00FC00E944010AA +:101E3000882321F30AC089918093F1000150110990 +:101E4000FFEFEF1AFF0ADACF80E0DF91CF911F9109 +:101E50000F91FF90EF90DF90CF9008952091E501D2 +:101E60003091E6012617370748F06115710539F4FE +:101E70002091E8002E772093E80001C0B90140E0EE +:101E80006115710591F12091DE01222309F440C012 +:101E9000253009F43FC02091E80023FD3DC020918A +:101EA000E80022FD2FC02091E80020FFE9CF20911B +:101EB000F20030E0FC01CF016115710559F02830C6 +:101EC000310540F481918093F100615071092F5FD9 +:101ED0003F4FF1CF41E02830310509F040E020913B +:101EE000E8002E772093E800CBCF4111CCCF0AC079 +:101EF0008091DE01882361F0853061F08091E800F7 +:101F000083FD0AC08091E80082FFF2CF80E008954F +:101F100082E0089583E0089581E008952091E5012D +:101F20003091E6012617370748F06115710539F43D +:101F30002091E8002E772093E80001C0B901FC0150 +:101F400020E06115710579F18091DE01882309F4A3 +:101F50003DC0853009F43CC08091E80083FD3AC063 +:101F60008091E80082FD2CC08091E80080FFE9CFDD +:101F70008091F20090E06115710559F0883091056B +:101F800040F424912093F10031966150710901963B +:101F9000F2CF21E0089709F020E08091E8008E77E9 +:101FA0008093E800CECF2111CFCF0AC08091DE010F +:101FB000882361F0853061F08091E80083FD0AC0DC +:101FC0008091E80082FFF2CF80E0089582E00895DA +:101FD00083E0089581E00895982F953058F5909307 +:101FE000E900981739F07091EC002091ED005091C4 +:101FF000F00003C0242F762F50E021FF19C030914C +:10200000EB003E7F3093EB003091ED003D7F30934D +:10201000ED003091EB0031603093EB007093EC00F9 +:102020002093ED005093F0002091EE0027FF07C0B1 +:102030009F5FD3CF8F708093E90081E0089580E0A7 +:1020400008958091DF0187FF11C08091E80082FD33 +:1020500005C08091DE018111F8CF11C08091E800A8 +:102060008B770BC08091DE01882349F08091E800D6 +:1020700080FFF8CF8091E8008E778093E800089584 +:102080002091E4003091E50095E64091EC00842F2A +:10209000817040FF22C08091E80080FD1CC08091CB +:1020A000DE01882391F0853091F08091EB0085FD71 +:1020B00010C04091E4005091E5004217530729F306 +:1020C0009A01915011F784E0089582E0089583E029 +:1020D000089581E0089580E008954091E80042FF6E +:1020E000DECF08950E94CF100E94D210E0EEF0E003 +:1020F000808181608083E8EDF0E080818F7780834C +:1021000019BCE3E6F0E08081816080831092DD01FC +:1021100008950E94CF100E94D2108091D8008F772E +:102120008093D8008091D80080688093D8008091F7 +:10213000D8008F7D8093D80084E089BD86E089BD7A +:1021400009B400FEFDCF1092DE011092DA01109268 +:10215000DC011092DB0142E060E080E00E94EC0FC5 +:102160008091E1008E7F8093E1008091E2008160A8 +:102170008093E2008091E20088608093E200809189 +:10218000E0008E7F8093E0000895E3E6F0E0808138 +:102190008E7F808381E08093DD010C948910109202 +:1021A000E20008951092E10008951F920F920FB679 +:1021B0000F9211242F933F934F935F936F937F93CD +:1021C0008F939F93AF93BF93EF93FF938091E10021 +:1021D00082FF0BC08091E20082FF07C08091E10086 +:1021E0008B7F8093E1000E94280D8091E10080FFA9 +:1021F00018C08091E20080FF14C08091E2008E7FC1 +:102200008093E2008091E20080618093E2008091FF +:10221000D80080628093D80019BC1092DE010E9421 +:102220001D0D8091E10084FF30C08091E20084FFA9 +:102230002CC084E089BD86E089BD09B400FEFDCFD5 +:102240008091D8008F7D8093D8008091E1008F7EAF +:102250008093E1008091E2008F7E8093E200809184 +:10226000E20081608093E2008091DA01882311F01E +:1022700084E007C08091E30087FD02C081E001C0D7 +:1022800083E08093DE010E940B0D8091E10083FFCB +:1022900029C08091E20083FF25C08091E100877F03 +:1022A0008093E10082E08093DE011092DA01809158 +:1022B000E1008E7F8093E1008091E2008E7F809329 +:1022C000E2008091E20080618093E20042E060E001 +:1022D00080E00E94EC0F8091F00088608093F00015 +:1022E0000E94240DFF91EF91BF91AF919F918F912B +:1022F0007F916F915F914F913F912F910F900FBE02 +:102300000F901F9018951F920F920FB60F921124E5 +:102310002F933F934F935F936F937F938F939F93ED +:10232000AF93BF93CF93DF93EF93FF93C091E900F7 +:10233000CF708091EC00D82FD17080FDD0E8109242 +:10234000E9008091F000877F8093F00078940E94EC +:10235000C7111092E9008091F00088608093F0002E +:10236000CD2BCF70C093E900FF91EF91DF91CF911A +:10237000BF91AF919F918F917F916F915F914F919D +:102380003F912F910F900FBE0F901F9018951F93A4 +:10239000CF93DF93CDB7DEB7AA970FB6F894DEBF21 +:1023A0000FBECDBFEFEDF1E088E08E0F9091F10010 +:1023B00091938E13FBCF0E947D0D8091E80083FFE7 +:1023C0001FC18091DF019091E001492F50E04A3018 +:1023D000510508F015C1FA01E65CFF4F0C945F2A25 +:1023E000803881F0823809F00BC18091E3018F7051 +:1023F0008093E9008091EB0085FB882780F910929B +:10240000E90006C08091DB019091DC0191118260AE +:102410009091E800977F9093E8008093F1001092EC +:10242000F100C8C0282F2D7F09F0EAC0882319F0D9 +:10243000823061F0E5C08091E101813009F0E0C0B7 +:10244000933009F080E08093DC012BC08091E101A2 +:10245000811127C08091E3018F7009F4D1C080936E +:10246000E9002091EB0020FF1CC0933021F4809103 +:10247000EB00806214C09091EB0090619093EB00B0 +:1024800021E030E0A90102C0440F551F8A95E2F710 +:102490004093EA001092EA008091EB0088608093FC +:1024A000EB001092E9008091E800877F86C08111DF +:1024B000A7C01091E1011F778091E3008078812B04 +:1024C0008093E3008091E800877F8093E8000E947A +:1024D00021108091E80080FFFCCF8091E3008068AC +:1024E0008093E300111102C082E001C083E0809379 +:1024F000DE0186C08058823008F082C08091E10100 +:102500009091E2018C3D53E0950779F583E08A8351 +:102510008AE289834FB7F894DE01139620E03EE00B +:1025200051E2E32FF0E050935700E49120FF03C005 +:10253000E295EF703F5FEF708E2F90E0EA3010F081 +:10254000C79601C0C0968D939D932F5F243149F7A4 +:102550004FBF8091E800877F8093E8006AE270E0D7 +:10256000CE0101960E942E0F14C0AE014F5F5F4F47 +:102570006091E3010E94750EBC01009709F440C010 +:102580009091E800977F9093E80089819A810E945A +:102590008E0F8091E8008B778093E80031C08038FF +:1025A00079F58091E800877F8093E8008091DA01D7 +:1025B0008093F1008091E8008E778093E8000E947C +:1025C00021101EC081111CC09091E1019230C0F415 +:1025D0008091E800877F8093E8009093DA010E9461 +:1025E00021108091DA01811106C08091E30087FDFE +:1025F00002C081E001C084E08093DE010E94690D89 +:102600008091E80083FF0AC08091E800877F809373 +:10261000E8008091EB0080628093EB00AA960FB6F1 +:10262000F894DEBF0FBECDBFDF91CF911F9108950B +:10263000CF938091DE018823A1F0C091E900CF7093 +:102640009091EC00892F817090FD80E8C82B10924A +:10265000E9008091E80083FD0E94C711CF70C0930C +:10266000E900CF91089590937201809371010895CC +:10267000E0917101F0917201309721F00190F081A9 +:10268000E02D099480E00895EF92FF920F931F933D +:10269000CF93DF93E0917101F09172013097B1F126 +:1026A0008C010280F381E02D09958091C90182FFA0 +:1026B0002DC080FF04C08AE693E00E945D06E80119 +:1026C00018E084E6E82E83E0F82E8091C90180FFAF +:1026D0000BC088811F928F93FF92EF920E94F606A3 +:1026E0000F900F900F900F90115021961111EDCF78 +:1026F0008091C90180FF0AC082E693E0DF91CF910B +:102700001F910F91FF90EF900C945D06DF91CF9198 +:102710001F910F91FF90EF900895E0917101F0915A +:102720007201309721F00480F581E02D099408951D +:1027300020916F01309170018217930771F090938F +:10274000700180936F01E0917101F09172013097F7 +:1027500021F00680F781E02D0994089520916D0104 +:1027600030916E018217930771F090936E01809300 +:102770006D01E0917101F0917201309721F00084B8 +:10278000F185E02D0994089508950C94C4130E94D6 +:10279000111F0E94E20A0C94D31FCF93DF931F9264 +:1027A000CDB7DEB79091C90192FF10C090FF0EC067 +:1027B0001F928F932CE733E03F932F9389830E94DE +:1027C000F6060F900F900F900F9089810F90DF9178 +:1027D000CF910C94FF069F92AF92BF92CF92DF925F +:1027E000EF92FF920F931F93CF93DF9300D000D00F +:1027F00000D0CDB7DEB70E94210B07E010E0AA247D +:10280000A394B12C902E802F0E949C0B98012C58E1 +:102810003E4F6901F901F080F826A1F40150110939 +:1028200088F78FEF89838A831B820E941A1F816039 +:10283000782F9D838C8349815A816B818D810E9481 +:1028400082142FC09091C90191FF04C08E830E9411 +:10285000A20B8E8127E030E0A501022E01C0440FBB +:102860000A94EAF7E42E4F21C1F029839A828E213F +:1028700091E009F490E09B830E941A1F8160782FF9 +:102880009D838C8349815A816B818D810E94821442 +:10289000F6018081E826E08204C021503109E0F68B +:1028A000BDCF0E944123109173010E943813181765 +:1028B000B9F00E9438138093730126960FB6F894EE +:1028C000DEBF0FBECDBFDF91CF911F910F91FF9063 +:1028D000EF90DF90CF90BF90AF909F900C94CD136E +:1028E00026960FB6F894DEBF0FBECDBFDF91CF9115 +:1028F0001F910F91FF90EF90DF90CF90BF90AF901E +:102900009F900895CF93DF93CDB7DEB72B970FB687 +:10291000F894DEBF0FBECDBF4F83588769877A8793 +:102920008B87DE01119686E0FD0111928A95E9F709 +:1029300085E0FE01379601900D928A95E1F7498175 +:102940005A816B817C818D819E810E94E21A2B9637 +:102950000FB6F894DEBF0FBECDBFDF91CF910895C3 +:10296000CF93882309F4C2C0C82F823859F40E943B +:10297000381381FDBBC089E30E94C01D0E94431E25 +:1029800089E30CC0833879F40E94381380FDAEC00F +:1029900083E50E94C01D0E94431E83E50E94DD1D49 +:1029A000CF910C94431E843859F40E94381382FD51 +:1029B0009DC087E40E94C01D0E94431E87E4EECFA5 +:1029C0008CEF8C0F813A48F48C2F0E94AF27811135 +:1029D0008DC08C2F0E94C01DE3CF80E28C0F883009 +:1029E00048F4C77081E001C0880FCA95EAF70E94D9 +:1029F000FC1DD6CF8BE58C0F833078F4C53A29F0D7 +:102A0000C63A31F083E890E005C081E890E002C06A +:102A100082E890E0CF910C94981388E58C0F833175 +:102A200008F064C0C83A39F1C93A41F1CA3A49F1EB +:102A3000CB3A51F1CC3A59F1CD3A61F1C03B69F151 +:102A4000CE3A71F1CF3A79F1C13B81F1C23B89F1C4 +:102A5000C33B91F1C43B99F1C53BA1F1C63BA9F140 +:102A6000C73BB1F1C83BB9F1C93BC1F1CA3BC9F1A0 +:102A700080E090E038C082EE90E035C089EE90E0D2 +:102A800032C08AEE90E02FC085EB90E02CC086EB40 +:102A900090E029C087EB90E026C08CEC90E023C04A +:102AA0008DEC90E020C083E891E01DC08AE891E0C1 +:102AB0001AC082E991E017C084E991E014C081E274 +:102AC00092E011C083E292E00EC084E292E00BC07B +:102AD00085E292E008C086E292E005C087E292E0DB +:102AE00002C08AE292E0CF910C94AE13CF91089588 +:102AF000882309F44BC0823859F40E94381381FFAF +:102B000045C089E30E94C01D0E94431E89E30CC09A +:102B1000833871F40E94381380FF38C083E50E9427 +:102B2000C01D0E94431E83E50E94DD1D0C94431EC0 +:102B3000843859F40E94381382FF28C087E40E9429 +:102B4000C01D0E94431E87E4EFCF9CEF980F913A7F +:102B500058F390E2980F983050F4877091E001C0DC +:102B6000990F8A95EAF7892F0E94021EDFCF9BE515 +:102B7000980F933020F480E090E00C949813885ADA +:102B8000833120F480E090E00C94AE130895882304 +:102B900021F00E94FC1D0C94431E0895882321F00F +:102BA0000E94021E0C94431E08957F928F929F9262 +:102BB000AF92BF92CF92DF92EF92FF920F931F934B +:102BC000CF93DF931F92CDB7DEB77C01C62E772E51 +:102BD000FC01058102950F70128111110E94191ECE +:102BE0000E94B91D882379F0112369F080E28C0DD1 +:102BF000883048F082E00E94A21D0E94B91D91E039 +:102C0000D82ED92601C0D12CE72DE295EF70F0E047 +:102C1000EC5BFF4F0C945F2A872D807F072D0F7090 +:102C2000882311F00295007F112389F0002309F415 +:102C300098C180E28C0D883020F4802F0E94FC1D0A +:102C400003C0802F0E940C1E0E94431E8AC18C2D3F +:102C50000E947815002309F49DC180E28C0D883014 +:102C600020F4802F0E94021E03C0802F0E94121E9B +:102C70000E94431E8FC1872D807F972D9F708032C9 +:102C800011F4892F03C0892F8295807FCC2021F0F9 +:102C9000F1E0CF16A1F01DC0112339F0002319F186 +:102CA000013009F50E942C1E75C1002319F0013076 +:102CB00009F470C189830E942F1E898110C11123DC +:102CC00021F0063008F066C10EC0053008F062C180 +:102CD00006C1112359F0002331F0F701958190FFCF +:102CE00040C19F7095830E94C71554C1002309F409 +:102CF000F6C03DC1872D86958695837090E000973C +:102D000019F0019761F046C1112321F08C2D972D08 +:102D1000937002C080E090E00E9498133BC11123A1 +:102D200021F08C2D972D937002C080E090E00E94DE +:102D3000AE1330C18C2D112319F00E94C72102C09F +:102D40000E942F220E94B42225C1872D837009F092 +:102D500052C011111FC18C2D829586958770880FE6 +:102D6000880F9C2D9F70892E912CA12CB12C082EA0 +:102D700004C0880C991CAA1CBB1C0A94D2F7C4FE80 +:102D800014C00FE010E020E030E0B901A80104C059 +:102D9000440F551F661F771F8A95D2F7CB01BA01E2 +:102DA000609570958095909503C060E070E0CB01D0 +:102DB000272D26952695237030E02230310569F0C5 +:102DC0002330310589F0682979298A299B29213006 +:102DD000310571F00E942E1CDDC0682979298A29ED +:102DE0009B290E944A1CD6C00E942E1CC501B4011A +:102DF0000E94121CCFC0112319F0872D817001C0D1 +:102E00008695882309F4C6C08C2D82958695877097 +:102E1000880F880F9C2D9F70892E912CA12CB12C8E +:102E2000082E04C0880C991CAA1CBB1C0A94D2F75B +:102E3000C4FE14C00FE010E020E030E0B901A801AA +:102E400004C0440F551F661F771F8A95D2F7CB0128 +:102E5000BA01609570958095909503C060E070E030 +:102E6000CB01272D269526952370422F50E0423026 +:102E7000510569F04330510589F0682979298A297B +:102E80009B294130510571F00E94081D83C06829BB +:102E900079298A299B290E94241D7CC00E94081D33 +:102EA000C501B4010E94EC1C75C08C2D90E0FC01A2 +:102EB000E05EF109E531F10508F04FC0EC5AFF4F33 +:102EC0000C945F2A0C2D0F70872D8F71112321F028 +:102ED0000E94851C802F07CF0E94A61C802F0E9475 +:102EE000CE1558C0112341F0053008F053C0872D8E +:102EF0008F710E94CB1C4EC0063008F04BC0F7CF3C +:102F0000112339F0872D8F710E94851C43C0112336 +:102F1000C9F3872D8F710E94A61C3CC0112329F094 +:102F2000872D8F710E94701C35C00E94661C32C0B4 +:102F3000112351F0172D1F71812F0E94851C63E012 +:102F4000812F0E94991D26C081E00E94A21D02309F +:102F500008F182E00E94A21D1DC0112331F0002360 +:102F600089F28C2D0E94B01415C0002391F28C2D93 +:102F70000E9478150FC0472D4F706C2DC7010E941D +:102F8000CD070E948A1B06C0472D4F706C2DC701CC +:102F90000E94D007DD20F9F00E94951D80FD1BC026 +:102FA000F70112820E948F1D0E94851CC7010E949A +:102FB000FA170E948F1D0F90DF91CF911F910F91F3 +:102FC000FF90EF90DF90CF90BF90AF909F908F9049 +:102FD0007F900C94A61C0F90DF91CF911F910F91C1 +:102FE000FF90EF90DF90CF90BF90AF909F908F9029 +:102FF0007F9008950F931F93CF93DF93EC01888107 +:1030000099812B813C81232BB9F09F3F11F48F3F95 +:1030100099F0CE010E942107882371F0688179819F +:103020008A810E948B1D8C010E94401D0E94071CFA +:10303000B801CE010E94D515DF91CF911F910F915C +:1030400008950E94191E0E94291E0E94EE1D0E94D2 +:10305000431E0E94E9230E94B42280E090E00E9477 +:10306000981380E090E00C94AE130E94091E0C941B +:1030700021180E94801D292F22952F7030E02C30BE +:1030800031054CF42A3031056CF4225031092230DC +:103090003105A8F407C02C30310569F02F30310517 +:1030A00051F00DC0803F69F018F4803E40F409C033 +:1030B000843F29F406C093FB882780F9089580E0B7 +:1030C000089581E00895CF93DF9300D000D01F9240 +:1030D000CDB7DEB70F900F900F900F900F90DF914C +:1030E000CF910895CF93DF9300D000D000D0CDB71B +:1030F000DEB726960FB6F894DEBF0FBECDBFDF91C8 +:10310000CF910895CF93DF93C0917C0180917D0191 +:10311000C817A1F0D0E0CE0166E070E00E942E2A30 +:10312000FC01E258FE4F40815181628173818481AC +:1031300095810E9472182196C770E8CFDF91CF91D8 +:1031400008954091AE015091AF016091B00170912E +:10315000B1018091B2019091B3010C947218CF9398 +:10316000DF938091B30182958F7009F05CC08091EC +:10317000B001882309F457C020917C01D0917D01D2 +:103180004091AE01C091AF01E091B101F091B20167 +:103190002D1709F448C030E0309709F440C0CF3F04 +:1031A00011F44F3FE1F1C90166E070E00E942E2A60 +:1031B000DC01A258BE4F11968C911197C8132FC0F5 +:1031C0008C9148132CC012968C911297811127C0B4 +:1031D00013968D919C9114978E179F0708F4019771 +:1031E0008E1B9F0B883C9105D0F48091B3018F70AA +:1031F00080618093B301C90166E070E00E942E2ACD +:10320000FC01ED57FE4F90819F70906190838EEA94 +:1032100091E00E94FA17DF91CF910C9482182F5FF2 +:103220003F4F2770B5CFDF91CF910895BF92CF92D6 +:10323000DF92EF92FF920F931F93CF93DF93CDB75F +:10324000DEB761970FB6F894DEBF0FBECDBF8C011D +:1032500085E0F801DE011D9601900D928A95E1F757 +:10326000D8014C9111962C9111971296EC901297CF +:103270001396CD90DC9014975091AE016091AF0100 +:103280008091B1019091B201009709F46EC16F3F36 +:1032900019F45F3F09F469C1B090B001BB2009F493 +:1032A000C3C03091B301C816D90628F0F601E81B57 +:1032B000F90BCF0104C0809590958C0D9D1DFF24C6 +:1032C000F394883C910588F0F12C307F09F0CBC055 +:1032D0007C2DD98AC88A522F6E2D89890E94631845 +:1032E0008EEA91E00E94FA17B4C0832F807F09F024 +:1032F00049C0621314C0541312C0E11010C03F70D3 +:1033000030613093B3010E94A1188EEA91E00E94CF +:10331000FA178091B301D80115968C9331C0CD284E +:1033200031F12F3F11F44F3F11F1FE2CE1101FC07E +:10333000E0917C0130917D01E31709F45CC0F0E07D +:10334000CF0166E070E00E942E2ADC01A258BE4F39 +:1033500011968C911197281307C08C91481304C0C3 +:1033600012968C91811103C03196E770E5CFFE2C47 +:10337000EE2009F416C18091B30181608093B301FE +:10338000F12C0FC1621308C0541306C0E11004C031 +:103390008091B301D801C1C04D872E878D859E8550 +:1033A0000E9439188823E1F1EE20D1F12091B30178 +:1033B000822F82958F7090E0029774F08091AE0119 +:1033C0009091AF0198878F831986DB86CA862C87F8 +:1033D000CE0107960E94FA1786E0F801AEEAB1E046 +:1033E00001900D928A95E1F70E94AF180E94A118F2 +:1033F000FF24F394D6C04D872E878D859E850E942D +:10340000801D292F22952F7030E0223031050CF0DD +:10341000BCC09F7009F0B6C0805E883008F4C1C09F +:10342000C8010E94FA17E4CFC816D90608F453C0A1 +:10343000F601E81BF90BCF01883C910508F450C058 +:10344000F12C7C2DD98AC88A522F6E2D89890E9431 +:103450006318EEEAF1E086E0DF011D928A95E9F754 +:103460000E94A1189EC0621314C0541312C0E11030 +:1034700010C08091B301F8018583C8010E94FA173A +:1034800086E0EEEAF1E0DF011D928A95E9F7FB2C78 +:1034900088C04D872E878D859E850E943918882388 +:1034A00009F4BECFEE2009F4BBCF2091B301822FE7 +:1034B00082958F7090E002970CF48ECF8091AE01D0 +:1034C0009091AF019A8389831B82DD82CC822E8307 +:1034D000CE0101967FCF809590958C0D9D1DACCF30 +:1034E000FE2CEE2009F49CCF62132EC054132CC086 +:1034F0002091B30120FD1FC0822F82958F70D9F0DB +:10350000D80115962C9315978F3049F08F5F982F1F +:103510009295907F822F8F70892B15968C93C8017E +:103520000E94FA1786E0F801AEEAB1E001900D9230 +:103530008A95E1F795CF86E0F801AEEAB1E0019017 +:103540000D928A95E1F72DC04D872E878D859E853A +:103550000E943918811140CF8091B301816080931E +:10356000B301C8010E94FA171CC0EE2009F458CF1D +:103570004D872E878D859E850E943918882309F4F2 +:103580004FCF2ACF811148CF0CC0243031050CF029 +:1035900047CF9F7009F440CFF8019581907F09F0E3 +:1035A0003BCF8F2D61960FB6F894DEBF0FBECDBF17 +:1035B000DF91CF911F910F91FF90EF90DF90CF900F +:1035C000BF900895CF93DF93CDB7DEB72C970FB69A +:1035D000F894DEBF0FBECDBF4F83588769877A87C7 +:1035E0008B879C87CE0107960E941619882371F05D +:1035F0008F8198852A853B85232B09F43FC09F3F07 +:1036000009F068C08F3F09F065C038C086E0FE0150 +:103610003796DE01119601900D928A95E1F76F8140 +:103620007885EA85FB85309749F17F3F11F46F3F3C +:1036300029F180917D0190E09C012F5F3F4F277021 +:10364000332740917C0150E02417350709F44BC023 +:1036500069837A83FD83EC8366E070E00E942E2A02 +:10366000DC01A258BE4F96E0FE01319601900D920A +:103670009A95E1F720937D010E94821880917C0148 +:1036800090917D018917E9F190E066E070E00E9479 +:103690002E2A82589E4F0E941619882391F18091FC +:1036A0007C0190E066E070E00E942E2AFC01E25866 +:1036B000FE4F4081518162817381848195810E9496 +:1036C000721880917C0190E0019687709927809311 +:1036D0007C01D4CF4F81588569857A858B859C85FF +:1036E0000E947218CBCF0E94351810927D01109263 +:1036F0007C01EEEAF1E086E0DF011D928A95E9F7B0 +:10370000BDCF2C960FB6F894DEBF0FBECDBFDF91B4 +:10371000CF910895EF92FF920F931F93CF93DF9372 +:103720008C01009709F46CC0F12CEE24E394E801BD +:103730002196F8018491843740F4843008F051C018 +:10374000813081F0823019F15BC0853709F444C0C3 +:10375000A8F19CE7980F903708F052C08F770E942D +:10376000781541C00E5F1F4FFE01C49180E28C0F9F +:10377000883048F4C7708E2D01C0880FCA95EAF7CB +:103780000E941C1E14C08C2F0E94B0142DC00E5F0E +:103790001F4FFE01C49180E28C0F883058F4C7702F +:1037A0008E2D01C0880FCA95EAF70E94221E0E9442 +:1037B000431E1AC08C2F0E94781516C00E5F1F4F33 +:1037C000FE01C491CC2381F08FE99FE00197F1F7CE +:1037D00000C00000C150F6CF0E5F1F4FFE01F490F5 +:1037E00003C00E94B0148E018F2D882309F49FCF4F +:1037F000EFE9FFE03197F1F700C000008150F5CF0D +:10380000DF91CF911F910F91FF90EF900895089550 +:103810006093B8017093B9018093BA019093BB0192 +:103820000C9421180F931F930091B8011091B901C6 +:103830002091BA013091BB01DC01CB01802B912B8F +:10384000A22BB32B8093B8019093B901A093BA0136 +:10385000B093BB011F910F910C9421180F931F93EC +:103860000091B8011091B9012091BA013091BB01CA +:10387000DC01CB0180239123A223B3238093B801E1 +:103880009093B901A093BA01B093BB011F910F911E +:103890000C9421180F931F930091B8011091B90156 +:1038A0002091BA013091BB01DC01CB018027912727 +:1038B000A227B3278093B8019093B901A093BA01CE +:1038C000B093BB011F910F910C9421181092B40179 +:1038D0001092B5011092B6011092B7010C94211804 +:1038E00041E050E060E070E004C0440F551F661FE7 +:1038F000771F8A95D2F74093B4015093B501609336 +:10390000B6017093B7010C94211841E050E060E0DB +:1039100070E004C0440F551F661F771F8A95D2F7C9 +:103920008091B4019091B501A091B601B091B70119 +:10393000482B592B6A2B7B2B4093B4015093B50134 +:103940006093B6017093B7010C94211841E050E0E8 +:1039500060E070E004C0440F551F661F771F8A9512 +:10396000D2F740955095609570958091B4019091F3 +:10397000B501A091B601B091B701482359236A233C +:103980007B234093B4015093B5016093B6017093CB +:10399000B7010C94211841E050E060E070E004C0F1 +:1039A000440F551F661F771F8A95D2F78091B40187 +:1039B0009091B501A091B601B091B7014827592760 +:1039C0006A277B274093B4015093B5016093B601F9 +:1039D0007093B7010C9421180F931F930091B401B9 +:1039E0001091B5012091B6013091B701DC01CB01F6 +:1039F000802B912BA22BB32B8093B4019093B50114 +:103A0000A093B601B093B7011F910F910C942118A8 +:103A10000F931F930091B4011091B5012091B6014D +:103A20003091B701DC01CB0180239123A223B32382 +:103A30008093B4019093B501A093B601B093B70100 +:103A40001F910F910C9421180F931F930091B401B3 +:103A50001091B5012091B6013091B701DC01CB0185 +:103A600080279127A227B3278093B4019093B501B3 +:103A7000A093B601B093B7011F910F910C94211838 +:103A80000895CF92DF92EF92FF920F931F93CF93FF +:103A9000DF938C01C090B801D090B901E090BA01D9 +:103AA000F090BB018091B4019091B501A091B60155 +:103AB000B091B701C82AD92AEA2AFB2ACFE1D0E07F +:103AC000D701C6010C2E04C0B695A795979587958A +:103AD0000A94D2F780FF06C0B8018C2F0E942F0AEB +:103AE000019721F4219760F780E001C08C2FDF91CE +:103AF000CF911F910F91FF90EF90DF90CF9008959D +:103B0000CF93DF93EC010E94411DBE010E942F0A5A +:103B1000DF91CF910895CB010E94801D089580917F +:103B2000BC0185958595859508958091BC01877028 +:103B30000895982F990F990F990F692B6093BC01E5 +:103B40000C94851C2091BC01809582238093BC013C +:103B5000982F977069F430E0482F552747FD50950E +:103B60002417350729F08595859585950C94A61C15 +:103B700008959091BC01977081E009F480E0089568 +:103B800020910C0130910D01F90132969FEF40E038 +:103B90005191581789F09F3F19F4511101C0942F8A +:103BA0004F5F4630A9F79F3F39F0F901E90FF11D4A +:103BB00097FDFA9582830895089520910C01309124 +:103BC0000D01F9013296285F3F4F9081981301C093 +:103BD00010823196E217F307C1F7089581E090E073 +:103BE000E0910C01F0910D01E80FF91F1082019690 +:103BF00088309105A9F708959091C801892B809389 +:103C0000C801089580959091C80189238093C801C7 +:103C100008951092C80108959091C701892B80934F +:103C2000C701089580959091C70189238093C701AA +:103C300008951092C70108959091C601892B809331 +:103C4000C601089580959091C60189238093C6018D +:103C500008951092C60108958093BD0108951092B1 +:103C6000BD01089580910C0190910D01FC013196E8 +:103C70009C01285F3F4F80E0919191118F5FE21787 +:103C8000F307D1F70895E0910C01F0910D018091B7 +:103C9000C8018083E0910C01F0910D019081809129 +:103CA000C701892B8083E0910C01F0910D01908177 +:103CB0008091C601892B80838091BD01882361F0AA +:103CC000E0910C01F0910D019081892B80830E947D +:103CD000321E81111092BD0180910C0190910D0155 +:103CE0000C9444139093430180934201089520E083 +:103CF000009739F0AC0141505109842395232F5F7F +:103D0000F7CF822F08958295982F9C7C292F269596 +:103D10002695982F9373990F990F922B892F8A7A52 +:103D200086959575990F892B08951F93CF93DF93EF +:103D30001F92CDB7DEB799830E94831E182F9981F9 +:103D4000892F0E94831E212F30E0322F2227A901C4 +:103D5000482BCA010F90DF91CF911F910895809158 +:103D6000DE01843021F11092CA0120E488E190E064 +:103D70000FB6F894A895809360000FBE2093600062 +:103D800080E00E94FF0683B7817F846083BF83B792 +:103D9000816083BF7894889583B78E7F83BF88E1E5 +:103DA0000FB6F89480936000109260000FBE0895E3 +:103DB000089508950E94D81E0E94210B0E94D91ECA +:103DC0000E94D40B91E0811101C090E0892F0895E9 +:103DD0001F920F920FB60F9211248F939F93AF9360 +:103DE000BF938091CA01811113C08091CB01909142 +:103DF000CC01A091CD01B091CE014196A11DB11D84 +:103E00008093CB019093CC01A093CD01B093CE01D0 +:103E1000BF91AF919F918F910F900FBE0F901F9008 +:103E2000189582E084BD93E095BD9AEF97BD80938D +:103E30006E0008952FB7F8948091CB019091CC013A +:103E4000A091CD01B091CE012FBF0895CF92DF9206 +:103E5000EF92FF920F931F932FB7F8944091CB01ED +:103E60005091CC016091CD017091CE012FBF6A01BC +:103E70007B01EE24FF248C0120E030E0C016D10647 +:103E8000E206F30610F4415051099A01281B390B40 +:103E9000C9011F910F91FF90EF90DF90CF9008958F +:103EA0001F920F920FB60F9211248F939F93AF938F +:103EB000BF938091CB019091CC01A091CD01B091A5 +:103EC000CE010196A11DB11D8093CB019093CC0131 +:103ED000A093CD01B093CE01BF91AF919F918F91EF +:103EE0000F900FBE0F901F9018950E947210F894BB +:103EF0002FEF87EA91E6215080409040E1F700C023 +:103F0000000087E090EBDC018093E8019093E901E9 +:103F1000A093EA01B093EB019CE088E10FB6F8941E +:103F2000A895809360000FBE90936000FFCFEF9242 +:103F3000FF920F931F93CF93DF93D82FC7E08C2F5F +:103F40000E949C0B07E010E0E82EF12CC701002E28 +:103F500002C0959587950A94E2F780FF09C0602F0B +:103F60007C2F80E00E94D107D81302C081E006C0F8 +:103F70000150110958F7C15010F780E0DF91CF913F +:103F80001F910F91FF90EF900895CF93C82F8CE26F +:103F90000E94971F882321F08C2FCF910C94971F9C +:103FA00080E0CF910895CF930E941B21811102C020 +:103FB0000E9401218CE993E00E945D06C5E6C15094 +:103FC00049F00E94210B8FE39CE90197F1F700C0B3 +:103FD0000000F5CF85E993E00E945D0689E20E942A +:103FE000C51F81110CC18AE20E94C51F81110E9468 +:103FF000012185E00E94C51F81110E94751F0E944A +:1040000026218093C90187E00E94C51F8823A9F15A +:104010008BE10E94C51F882351F08091C90181FB6B +:10402000222720F991E0922790FB81F90EC08EE0C3 +:104030000E94C51F882361F08091C90182FB22275D +:1040400020F991E0922790FB82F98093C90115C075 +:1040500080E10E94C51F9091C901882341F093FB24 +:10406000222720F981E0822780FB93F904C0892F61 +:10407000809580FB90F99093C9018091C9010E94BD +:104080002A210E9438218093E70180EE0E94C51FFB +:10409000882341F08091E701982F909590FB80F95B +:1040A0008093E70189E30E94C51F882359F080911E +:1040B000E70181FB222720F991E0922790FB81F90B +:1040C0008093E70182EE0E94C51F882359F08091FA +:1040D000E70182FB222720F991E0922790FB82F9E9 +:1040E0008093E70186EE0E94C51F882359F08091D6 +:1040F000E70183FB222720F991E0922790FB83F9C7 +:104100008093E70183EE0E94C51F882359F08091B8 +:10411000E70184FB222720F991E0922790FB84F9A4 +:104120008093E70185E30E94C51F882359F08091A1 +:10413000E70185FB222720F991E0922790FB85F982 +:104140008093E70181E30E94C51F882359F0809185 +:10415000E70186FB222720F991E0922790FB86F960 +:104160008093E70181E10E94C51F882359F0809167 +:10417000E70187FB222720F991E0922790FB87F93E +:104180008093E7018091E7010E943C2187E20E9431 +:10419000C51FC82F8EE10E94C51F8111C2608FE12B +:1041A0000E94C51F8111C46080E20E94C51F811159 +:1041B000C86081E20E94C51F8111C06182E20E9435 +:1041C000C51F8111C06283E20E94C51F8111C064B6 +:1041D00084E20E94C51F882311F0C06802C0CC236E +:1041E00029F08C2F0E9433216C2F03C00E942F21B5 +:1041F000682F70E080E090E0CF910C94081CCF9184 +:1042000008956DEE7EEF80E090E00E94992A60E0D4 +:1042100082E090E00E94872A60E083E090E00E94C4 +:10422000872A60E084E090E00E94872A60E085E0D1 +:1042300090E00C94872A80E090E00E94812A21E09F +:104240008D3E9E4F09F020E0822F089582E090E09D +:104250000C94792A682F82E090E00C94872A83E0FE +:1042600090E00C94792A682F83E090E00C94872AE0 +:1042700084E090E00C94792A682F84E090E00C941C +:10428000872A8091D10180FF0CC08091110190E0BC +:1042900065E070E00E942E2A959587959595879503 +:1042A0002EC081FF0AC08091110190E065E070E0AE +:1042B0000E942E2A9595879522C082FF08C0809182 +:1042C000110190E065E070E00E942E2A18C0209154 +:1042D000D2012223D1F030911001231780F7809171 +:1042E000110190E065E070E00E942E2A622F70E0DC +:1042F0000E942E2A632F70E00E944B2ACB01803847 +:10430000910530F4009731F0089585E090E008952C +:104310008FE7089581E008958091D10180FF08C062 +:1043200060910F0170E0759567957595679523C04D +:1043300081FF06C060910F0170E0759567951BC005 +:1043400082FF04C060910F0170E012C06091D20141 +:104350006623D1F020910E016217A0F780910F0122 +:1043600070E090E00E942E2A622F70E00E944B2A9B +:104370006038710528F46115710521F0862F0895C4 +:104380008FE7089581E0089561E070E0F4CF803F09 +:1043900021F40E944121819504C0813F29F40E94AB +:1043A00041218093D5010895823F21F40E9441214B +:1043B000819504C0833F29F40E9441218093D40158 +:1043C0000895893F19F40E948C2105C08A3F31F479 +:1043D0000E948C2181958093D60108958B3F21F412 +:1043E0000E948C21819504C08C3F29F40E948C216D +:1043F0008093D7010895843F21F48091D301816097 +:1044000017C0853F21F48091D301826011C0863F9F +:1044100021F48091D30184600BC0873F21F4809107 +:10442000D301886005C0883F31F48091D301806159 +:104430008093D30108958D3F21F48091D101816053 +:104440000BC08E3F21F48091D101826005C08F3F67 +:1044500029F48091D10184608093D1010895803F37 +:1044600039F48091D50187FF6CC01092D50169C0E5 +:10447000813F29F48091D5011816BCF362C0909158 +:10448000D401823F29F497FF5CC01092D40159C037 +:10449000833F19F41916CCF354C0893F41F480913D +:1044A000D60118160CF04DC01092D6014AC08A3FB2 +:1044B00029F48091D60187FF44C0F6CF8B3F39F4B1 +:1044C0008091D70187FF3DC01092D7013AC08C3F41 +:1044D00029F48091D7011816BCF333C0843F21F42E +:1044E0008091D3018E7F17C0853F21F48091D30145 +:1044F0008D7F11C0863F21F48091D3018B7F0BC04B +:10450000873F21F48091D301877F05C0883F31F434 +:104510008091D3018F7E8093D30113C08D3F21F40E +:104520008091D1018E7F0BC08E3F21F48091D1010B +:104530008D7F05C08F3F29F48091D1018B7F8093BF +:10454000D1018091D40181110EC08091D5018111DA +:104550000AC08091D601811106C08091D7018111D6 +:1045600002C01092D20108958091C90183FF7EC0DC +:1045700088ED93E00E945D068091D3011F928F9396 +:1045800083ED93E09F938F930E94F60681ED93E075 +:104590000E945D068091D401282F332727FD309596 +:1045A0003F938F938EEC93E09F938F930E94F60638 +:1045B0008CEC93E00E945D068091D501282F332773 +:1045C00027FD30953F938F9389EC93E09F938F93D2 +:1045D0000E94F60687EC93E00E945D068091D6016A +:1045E000282F332727FD30953F938F9384EC93E05A +:1045F0009F938F930E94F60682EC93E00E945D06E3 +:104600008091D701282F332727FD30953F938F9333 +:104610008FEB93E09F938F930E94F6068CEB93E0D1 +:104620000E945D068091D2011F928F9389EB93E0E7 +:104630009F938F930E94F60687EB93E00E945D069E +:104640008091D1011F928F9384EB93E09F938F937E +:104650000E94F60681EB93E00E945D068DB79EB73F +:104660004C960FB6F8949EBF0FBE8DBF83ED91E0C0 +:104670000E948D130E941A1F9093D0018093CF0146 +:1046800008951F93CF93DF938091CF019091D00134 +:104690000E94261FFC012091D201222329F0909133 +:1046A0001201892F90E007C08091130190E06AE029 +:1046B00070E00E942E2AE817F90708F486C080915E +:1046C000D401C091D501D091D6011091D7018111AB +:1046D00007C0C11176C0D11174C0111172C075C06C +:1046E0002F3F19F02F5F2093D201181624F40E9457 +:1046F00041218093D4018091D40187FF05C00E949D +:10470000412181958093D4011C1624F40E944121FB +:104710008093D5018091D50187FF05C00E9441217A +:1047200081958093D5016091D401662339F1C091C0 +:10473000D501CC2319F1772767FD7095872F972F27 +:104740000E94372923E333E343E35FE30E949B297D +:104750000E9404296093D4016C2F772767FD709520 +:10476000872F972F0E94372923E333E343E35FE347 +:104770000E949B290E9404296093D5011D1624F4F0 +:104780000E948C218093D6018091D60187FF05C0BD +:104790000E948C2181958093D601111624F40E94E9 +:1047A0008C218093D7018091D70187FF05C00E949B +:1047B0008C2181958093D701DF91CF911F910C942B +:1047C000B4222F3F09F08ECF96CFDF91CF911F916A +:1047D0000895E3EDF1E085E0DF011D928A95E9F7A8 +:1047E0001092D2011092D10108958BEF95E00E94B2 +:1047F0005D061F9281E08F931F9285E08F938DEA73 +:1048000095E09F938F930E94F6060F900F900F9064 +:104810000F900F900F9008958330E9F128F48130C4 +:1048200061F0823009F10895853009F462C008F41E +:1048300049C0863009F474C0089580911301262F71 +:1048400030E0280F311D2F3F310524F4680F6093AD +:10485000130103C08FEF80931301809113011F9206 +:104860008F9386EE94E072C080911201262F30E083 +:10487000280F311D2F3F310524F4680F609312017A +:1048800003C08FEF80931201809112011F928F93CA +:1048900084ED94E05BC080911101262F30E0280F59 +:1048A000311D2F3F310524F4680F6093110103C0BF +:1048B0008FEF80931101809111011F928F9381ECF2 +:1048C00094E044C080911001262F30E0280F311D64 +:1048D0002F3F310524F4680F6093100103C08FEF60 +:1048E00080931001809110011F928F938CEA94E0C5 +:1048F0002DC080910F01262F30E0280F311D2F3F52 +:10490000310524F4680F60930F0103C08FEF80938B +:104910000F0180910F011F928F9383E994E016C0DD +:1049200080910E01262F30E0280F311D2F3F3105D9 +:1049300024F4680F60930E0103C08FEF80930E0183 +:1049400080910E011F928F9388E794E09F938F933D +:104950000E94F6060F900F900F900F9008958330ED +:1049600081F128F4813059F08230D1F008958530FA +:1049700009F449C0B8F1863009F456C00895809111 +:104980001301681720F4861B8093130102C0109254 +:104990001301809113011F928F9389E694E054C014 +:1049A00080911201681720F4861B8093120102C0C7 +:1049B00010921201809112011F928F9387E594E06B +:1049C00043C080911101681720F4861B8093110168 +:1049D00002C010921101809111011F928F9384E403 +:1049E00094E032C080911001681720F4861B8093F8 +:1049F000100102C010921001809110011F928F933C +:104A00008FE294E021C080910F01681720F4861B8B +:104A100080930F0102C010920F0180910F011F922D +:104A20008F9386E194E010C080910E01681720F406 +:104A3000861B80930E0102C010920E0180910E0120 +:104A40001F928F938BEF93E09F938F930E94F606B4 +:104A50000F900F900F900F900895CF93C82F1F9233 +:104A60008F9380E097E09F938F930E94F60681E0FA +:104A700090E0A0E0B0E0BC01CD0104C0660F771F5C +:104A8000881F991FCA95D2F70E94081C0F900F909B +:104A90000F900F90CF910C943518CF938732B0F5CB +:104AA0008E3108F04AC28E3009F4C4C100F5873057 +:104AB00009F48DC1A8F4863009F045C28091C9017E +:104AC000817F8E7F8093C9018DE698E00E945D060C +:104AD00086E09CE00E945D0681E08093D90175C16B +:104AE000883009F43FC08B3009F46BC12CC2863189 +:104AF00009F4E6C120F4803109F4B0C124C289313F +:104B000009F4C7C18B3109F481C11DC2883309F48E +:104B100058C150F4893209F412C2853309F40FC226 +:104B2000873209F40CC20FC2833409F408C228F496 +:104B30008A3308F408C2895303C2883409F003C2D7 +:104B40000E9435188AEE9BE00E945D069FEF23EDE0 +:104B500080E3915020408040E1F700C000000E94B7 +:104B6000751F33C18AE09CE00E945D068CE69BE0E5 +:104B70000E945D060E942F211F928F9389E69BE081 +:104B80009F938F930E94F60687E69BE00E945D0646 +:104B90000E942621C82F84E59BE00E945D061F929B +:104BA000CF938FE49BE09F938F930E94F6068DE452 +:104BB0009BE00E945D0683E49BE00E945D068C2FD3 +:104BC00081701F928F9380E49BE09F938F930E944C +:104BD000F6068EE39BE00E945D0684E39BE00E9464 +:104BE0005D06C1FB882780F91F928F9381E39BE0CC +:104BF0009F938F930E94F6068FE29BE00E945D06D2 +:104C000083E29BE00E945D06C2FB882780F91F9229 +:104C10008F9380E29BE09F938F930E94F6068EE134 +:104C20009BE00E945D0685E19BE00E945D06C3FB60 +:104C3000CC27C0F91F92CF9382E19BE09F938F9383 +:104C40000E94F60680E19BE00E945D060E943821EA +:104C5000C82F8CEF9AE00E945D061F92CF9387EFDA +:104C60009AE09F938F930E94F60685EF9AE00E9448 +:104C70005D068CED9AE00E945D068C2F81701F927C +:104C80008F9389ED9AE09F938F930E94F6068DB7DC +:104C90009EB780960FB6F8949EBF0FBE8DBF87ED6E +:104CA0009AE00E945D0680EC9AE00E945D06C1FBDE +:104CB000882780F91F928F938DEB9AE09F938F93B3 +:104CC0000E94F6068BEB9AE00E945D0689EA9AE064 +:104CD0000E945D06C2FB882780F91F928F9386EAA7 +:104CE0009AE09F938F930E94F60684EA9AE00E94CE +:104CF0005D0682E99AE00E945D06C3FB882780F981 +:104D00001F928F938FE89AE09F938F930E94F606ED +:104D10008DE89AE00E945D0683E89AE00E945D06B5 +:104D2000C4FB882780F91F928F9380E89AE09F93B5 +:104D30008F930E94F6068EE79AE00E945D068CE64D +:104D40009AE00E945D06C5FB882780F91F928F9329 +:104D500089E69AE09F938F930E94F60687E69AE091 +:104D60000E945D068BE49AE00E945D06C6FB8827E0 +:104D700080F91F928F9388E49AE09F938F930E940B +:104D8000F60686E49AE00E945D068EE39AE00E94B1 +:104D90005D06C7FBCC27C0F91F92CF938BE39AE047 +:104DA0009F938F930E94F60689E39AE00E945D0626 +:104DB0008DB79EB74C960FB6F8949EBF0FBE8DBFB1 +:104DC00004C084E998E00E945D06C1E0C1C0809102 +:104DD000C901C82FC095C170C0FB80F98093C9017B +:104DE000CC2349F08EED9BE00E945D068091C901C5 +:104DF0008660886048C081ED9BE00E945D068091DE +:104E0000C901897F877F8093C901DFCF9091C90154 +:104E100091FBCC27C0F981E0C827892FC0FB81F91D +:104E20008093C901CC2319F084EC9BE027C086EB6A +:104E30009BE0C9CF9091C90192FBCC27C0F981E0DA +:104E4000C827892FC0FB82F98093C901CC2319F0B0 +:104E500087EA9BE013C087E99BE0B5CF9091C90139 +:104E600093FBCC27C0F981E0C827892FC0FB83F9C9 +:104E70008093C901CC2351F08BE89BE00E945D0632 +:104E80008091C90181608093C90162C08EE79BE077 +:104E90009ACF8EE598E00E945D0686E398E00E9436 +:104EA0005D0684E098E00E945D0687ED97E00E9431 +:104EB0005D0687E997E00E945D068BE697E083CF69 +:104EC0008DE597E00E945D060E9438131F928F9334 +:104ED00083E497E09F938F930E94F60680910B01E5 +:104EE0001F928F938CE297E09F938F930E94F60618 +:104EF00080916C011F928F9389E197E09F938F932C +:104F00000E94F6068091CB019091CC01A091CD0139 +:104F1000B091CE01BF93AF939F938F9385E097E0BD +:104F20009F938F930E94F6068DB79EB742960FB659 +:104F3000F8949EBF0FBE8DBF48CF8D5101C080E059 +:104F40000E942D2542CF8CE79BE00E945D06C0E0C9 +:104F50008C2FCF91089580E0089580E00895CF933D +:104F6000C82F8091D901813071F020F0823009F48E +:104F70004BC042C1E0910C01F0910D018081823261 +:104F800009F03CC107C0E0910C01F0910D01808156 +:104F9000823261F48C2F0E94AB27811104C08C2FC8 +:104FA0000E944D252FC081E090E02CC08C2F0E94E4 +:104FB000AD27811126C0C431E1F070F4CB3081F00F +:104FC000C031D1F40E94F52388EF96E00E945D067F +:104FD00082E08093D90115C0C93259F0C83361F419 +:104FE0008DE698E00E945D068CEF96E00E945D06DB +:104FF00008C01092D90104C186EF96E00E945D06B8 +:10500000FFC081E08170FEC0C43228F5CE3108F0C7 +:10501000C1C0CB30A1F1D0F4C73009F0D3C08EE1CC +:105020008093130182E3809312018AE0809311013F +:1050300084E18093100188E080930F0188E28093DF +:105040000E018CE995E00E945D06BFC0C33149F1B5 +:10505000C431C1F0B7C0CB3409F4A9C028F4C932B7 +:1050600089F0C83361F0AEC0C13509F49EC0C235C5 +:1050700009F499C0CE3409F0A5C06AE09EC00E9430 +:10508000F523A3C08091D801882319F01092D8018C +:105090009CC089EA95E00E945D0681E08093D90179 +:1050A000B1C083E895E00E945D0681E795E00E942B +:1050B0005D06809113011F928F938EE695E09F937A +:1050C0008F930E94F6068CE695E00E945D068AE5C5 +:1050D00095E00E945D06809112011F928F9387E5F3 +:1050E00095E09F938F930E94F60685E595E00E94D8 +:1050F0005D0686E495E00E945D06809111011F9295 +:105100008F9383E495E09F938F930E94F60681E44A +:1051100095E00E945D0680E395E00E945D06809127 +:1051200010011F928F938DE295E09F938F930E94C1 +:10513000F6068BE295E00E945D0686E195E00E940E +:105140005D0680910F011F928F9383E195E09F93FD +:105150008F930E94F60681E195E00E945D068AEF3A +:1051600094E00E945D0680910E011F928F9387EF5D +:1051700094E09F938F930E94F60685EF94E00E943F +:105180005D068DB79EB748960FB6F8949EBF0FBECA +:105190008DBF1BC0CE51EC2FF0E0E85CFE4F80814C +:1051A0008093D80112C061E003C061E006C06AE0EC +:1051B0008091D8010E940C2408C08091D8010E94DF +:1051C000AF2403C08AE995E013C08091D8018823F9 +:1051D00069F01F928F9384E995E09F938F930E94CB +:1051E000F6060F900F900F900F9004C081E995E0A4 +:1051F0000E945D0681E006C01092D90180E002C0E5 +:1052000080E000CFCF91089504D06894B1118DC093 +:10521000089570D088F09F5790F0B92F9927B75113 +:10522000A0F0D1F0660F771F881F991F1AF0BA956A +:10523000C9F712C0B13081F077D0B1E0089574C0E1 +:10524000672F782F8827B85F39F0B93FCCF3869560 +:1052500077956795B395D9F73EF4909580957095BD +:1052600061957F4F8F4F9F4F0895E89409C097FB3A +:105270003EF490958095709561957F4F8F4F9F4F2D +:105280009923A9F0F92F96E9BB279395F695879571 +:1052900077956795B795F111F8CFFAF4BB0F11F434 +:1052A00060FF1BC06F5F7F4F8F4F9F4F16C08823DB +:1052B00011F096E911C0772321F09EE8872F762F11 +:1052C00005C0662371F096E8862F70E060E02AF052 +:1052D0009A95660F771F881FDAF7880F969587953E +:1052E00097F9089557FD9058440F551F59F05F3FA7 +:1052F00071F04795880F97FB991F61F09F3F79F0F8 +:1053000087950895121613061406551FF2CF469579 +:10531000F1DF08C0161617061806991FF1CF8695FB +:105320007105610508940895E894BB2766277727DF +:10533000CB0197F908950AD080C071D028F076D0BB +:1053400018F0952309F062C067C0EFCFCBDFA8F358 +:105350009923D9F35523C9F3950F50E0551FAA2778 +:10536000EE27FF27BB2700240894679520F4E20F5F +:10537000F31FB41F0A1E220F331F441FAA1F669576 +:10538000A9F7779530F4F30FB41F0A1E121E08F424 +:105390006395330F441FAA1F221F769599F78795AF +:1053A00020F4B40F0A1E121E631F440FAA1F221FEF +:1053B000331F8695A9F7862F712D602D11249F57D5 +:1053C00050408AF0E1F088234AF0EE0FFF1FBB1F28 +:1053D000661F771F881F91505040A9F79E3F5105C7 +:1053E00070F014C0A2CF5F3FECF3983EDCF38695DB +:1053F00077956795B795F795E7959F5FC1F7FE2B72 +:10540000880F911D9695879597F9089597F99F674D +:1054100080E870E060E008959FEF80EC089500243C +:105420000A941616170618060906089500240A9409 +:1054300012161306140605060895092E0394000C8F +:1054400011F4882352F0BB0F40F4BF2B11F460FF1E +:1054500004C06F5F7F4F8F4F9F4F089500245527E3 +:1054600004C0080E591F880F991F009729F07695E0 +:105470006795B8F37105B9F7802D952F0895991B9D +:1054800079E004C0991F961708F0961B881F7A953B +:10549000C9F78095089597FB072E16F4009407D05E +:1054A00077FD09D00E94652A07FC05D03EF490954F +:1054B00081959F4F0895709561957F4F0895EE0FE8 +:1054C000FF1F0590F491E02D0994AA1BBB1B51E12D +:1054D00007C0AA1FBB1FA617B70710F0A61BB70B64 +:1054E000881F991F5A95A9F780959095BC01CD0109 +:1054F0000895F999FECF92BD81BDF89A992780B59C +:105500000895A8E1B0E042E050E00C94A12A262FD3 +:10551000F999FECF92BD81BDF89A019700B40216A9 +:1055200039F01FBA20BD0FB6F894FA9AF99A0FBE57 +:1055300008950196272F0E94882A0C94872ADC015F +:10554000CB01FC01F999FECF06C0F2BDE1BDF89A8E +:10555000319600B40D9241505040B8F70895F89438 +:02556000FFCF7B +:10556200FFEA0BDB0CB80C840C500C01BE012808BE +:10557200140A321E0313233343536373091929395F +:10558200495969263F4D36202303D602A0028002E4 +:105592000C0225023E025702010203040506070817 +:0255A2000900FE +:00000001FF diff --git a/keyboards/alps64/keymaps/default/keymap.c b/keyboards/alps64/keymaps/default/keymap.c new file mode 100644 index 000000000..2c45dc7f3 --- /dev/null +++ b/keyboards/alps64/keymaps/default/keymap.c @@ -0,0 +1,12 @@ +#include "alps64.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: qwerty */ + KEYMAP( \ + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, NUHS, BSPC, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ + CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT,ENT, \ + LSFT,NUBS,Z, X, C, V, B, N, M, COMM,DOT, SLSH,RSFT,ESC, \ + LCTL,LGUI,LALT, SPC, APP, RALT,RGUI,RCTL), +}; +const uint16_t PROGMEM fn_actions[] = {}; diff --git a/keyboards/alps64/led.c b/keyboards/alps64/led.c new file mode 100644 index 000000000..d20c51aab --- /dev/null +++ b/keyboards/alps64/led.c @@ -0,0 +1,34 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include +#include "stdint.h" +#include "led.h" + + +void led_set(uint8_t usb_led) +{ + if (usb_led & (1< + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +/* + * scan matrix + */ +#include +#include +#include +#include +#include "print.h" +#include "debug.h" +#include "util.h" +#include "matrix.h" + + +#ifndef DEBOUNCE +# define DEBOUNCE 5 +#endif +static uint8_t debouncing = DEBOUNCE; + +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; +static matrix_row_t matrix_debouncing[MATRIX_ROWS]; + +static matrix_row_t read_cols(void); +static void init_cols(void); +static void unselect_rows(void); +static void select_row(uint8_t row); + + +inline +uint8_t matrix_rows(void) +{ + return MATRIX_ROWS; +} + +inline +uint8_t matrix_cols(void) +{ + return MATRIX_COLS; +} + +void matrix_init(void) +{ + // initialize row and col + unselect_rows(); + init_cols(); + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + matrix_debouncing[i] = 0; + } + + //debug + debug_matrix = true; + LED_ON(); + _delay_ms(500); + LED_OFF(); +} + +uint8_t matrix_scan(void) +{ + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + select_row(i); + _delay_us(30); // without this wait read unstable value. + matrix_row_t cols = read_cols(); + if (matrix_debouncing[i] != cols) { + matrix_debouncing[i] = cols; + if (debouncing) { + debug("bounce!: "); debug_hex(debouncing); debug("\n"); + } + debouncing = DEBOUNCE; + } + unselect_rows(); + } + + if (debouncing) { + if (--debouncing) { + _delay_ms(1); + } else { + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = matrix_debouncing[i]; + } + } + } + + return 1; +} + +inline +bool matrix_is_on(uint8_t row, uint8_t col) +{ + return (matrix[row] & ((matrix_row_t)1<.c` in the keymaps folder, and see keymap document (you can find in top README.md) and existent keymap files. + +To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: +``` +$ make KEYMAP=[default|jack|] +``` +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. \ No newline at end of file diff --git a/keyboards/arrow_pad/arrow_pad.c b/keyboards/arrow_pad/arrow_pad.c new file mode 100644 index 000000000..f29c2c53f --- /dev/null +++ b/keyboards/arrow_pad/arrow_pad.c @@ -0,0 +1,114 @@ +#include "arrow_pad.h" + +__attribute__ ((weak)) +void matrix_init_user(void) { + // leave this function blank - it can be defined in a keymap file +}; + +__attribute__ ((weak)) +void matrix_scan_user(void) { + // leave this function blank - it can be defined in a keymap file +} + +__attribute__ ((weak)) +bool process_action_user(keyrecord_t *record) { + // leave this function blank - it can be defined in a keymap file + return true; +} + +__attribute__ ((weak)) +void led_set_user(uint8_t usb_led) { + // leave this function blank - it can be defined in a keymap file +} + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + +#ifdef BACKLIGHT_ENABLE + backlight_init_ports(); +#endif + + matrix_init_user(); +} + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +} + +bool process_action_kb(keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + return process_action_user(record); +} + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + + led_set_user(usb_led); +} + +#ifdef BACKLIGHT_ENABLE +#define CHANNEL OCR1C + +void backlight_init_ports() +{ + + // Setup PB7 as output and output low. + DDRB |= (1<<7); + PORTB &= ~(1<<7); + + // Use full 16-bit resolution. + ICR1 = 0xFFFF; + + // I could write a wall of text here to explain... but TL;DW + // Go read the ATmega32u4 datasheet. + // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on + + // Pin PB7 = OCR1C (Timer 1, Channel C) + // Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0 + // (i.e. start high, go low when counter matches.) + // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0 + // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1 + + TCCR1A = _BV(COM1C1) | _BV(WGM11); // = 0b00001010; + TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; + + backlight_init(); +} + +void backlight_set(uint8_t level) +{ + if ( level == 0 ) + { + // Turn off PWM control on PB7, revert to output low. + TCCR1A &= ~(_BV(COM1C1)); + CHANNEL = 0x0; + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + } + else if ( level == BACKLIGHT_LEVELS ) + { + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + // Turn on PWM control of PB7 + TCCR1A |= _BV(COM1C1); + // Set the brightness + CHANNEL = 0xFFFF; + } + else + { + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + // Turn on PWM control of PB7 + TCCR1A |= _BV(COM1C1); + // Set the brightness + CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); + } +} + +#endif \ No newline at end of file diff --git a/keyboards/arrow_pad/arrow_pad.h b/keyboards/arrow_pad/arrow_pad.h new file mode 100644 index 000000000..b3fb578e8 --- /dev/null +++ b/keyboards/arrow_pad/arrow_pad.h @@ -0,0 +1,18 @@ +#ifndef ARROW_PAD_H +#define ARROW_PAD_H + +#include "matrix.h" +#include "keymap.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif +#include +#include + +void matrix_init_user(void); +void matrix_scan_user(void); +bool process_action_user(keyrecord_t *record); +void led_set_user(uint8_t usb_led); +void backlight_init_ports(void); + +#endif diff --git a/keyboards/arrow_pad/config.h b/keyboards/arrow_pad/config.h new file mode 100644 index 000000000..9e85f3ccf --- /dev/null +++ b/keyboards/arrow_pad/config.h @@ -0,0 +1,158 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x4096 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Nobody +#define PRODUCT GoldPad +#define DESCRIPTION A custom keyboard + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 4 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { F0, F1, F4, F5, F6, F7 } +#define MATRIX_COL_PINS { B0, B1, B2, B3 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +//#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +//#define LOCKING_RESYNC_ENABLE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/arrow_pad/keymaps/default/compiled.hex b/keyboards/arrow_pad/keymaps/default/compiled.hex new file mode 100644 index 000000000..789eb4c3f --- /dev/null +++ b/keyboards/arrow_pad/keymaps/default/compiled.hex @@ -0,0 +1,1490 @@ +:100000000C94E8060C942C070C942C070C942C07E9 +:100010000C942C070C942C070C942C070C942C0794 +:100020000C942C070C942C070C94DE120C94B01337 +:100030000C9458210C942C070C942C070C942C072E +:100040000C942C070C942C070C942C070C942C0764 +:100050000C942C070C94C0210C942C070C942C07A6 +:100060000C942C070C942C070C942C070C942C0744 +:100070000C942C070C942C070C942C070C942C0734 +:100080000C942C070C942C070C942C070C942C0724 +:100090000C942C070C942C070C942C070C942C0714 +:1000A0000C942C070C942C070C942C071D143F1453 +:1000B0002D153F142D158414A7142D15FC140F15A0 +:1000C000E817E8171718171856187618CC19CC190E +:1000D0008118CC19311931199819A119CC19C619DF +:1000E0003E193E193E193E193E193E193E193E1958 +:1000F0003E193E193E193E193E193E193E193E1948 +:100100004E195C1963196A197419F1A2028A00D296 +:1001100000D000D100C801C802C829002B0031005E +:10012000C00053005400550056005F00600061009D +:1001300067005C005D005E00570059005A005B00DC +:100140000000620000006300580029002B002C0012 +:100150000100C10019011C011D014A0052004B00A1 +:10016000E2005000C5004F00E0004D0051004E007D +:1001700000002A0000004C00C600C200C300C400FA +:100180000100C100010001000100010001000100A7 +:100190000100010001000100010001000100010057 +:1001A000000000500000010001000A44454255478C +:1001B0003A20656E61626C65642E0A005374617446 +:1001C00065206F6620726F772025583A20253031E0 +:1001D00036620A0048756D616E2D726561646162F8 +:1001E0006C65206D61747269782073746174653A0E +:1001F0000D0A004465626F756E63696E6720646501 +:100200006C61792072656D61696E696E673A20254F +:10021000580A005B735D004B6579626F6172642000 +:1002200073746172742E0A005B575D005B535D004E +:100230005B525D005B445D005B435D001003470063 +:100240006F006C00640050006100640000000E0349 +:100250004E006F0062006F0064007900000004032C +:10026000090409028D00050100A0FA09040000013B +:1002700003010100092111010001223F000705814E +:100280000308000A09040100010301020009211109 +:10029000010001224D000705820308000A0904023B +:1002A00000010300000009211101000122360007AE +:1002B00005830308000A0904030002030000000983 +:1002C00021110100012220000705840320000107FD +:1002D00005040320000109040400010300000009D3 +:1002E00021110100012239000705850310000112C8 +:1002F00001100100000008EDFE964001000102001F +:100300000105010906A101050719E029E7150025E6 +:1003100001950875018102050819012905950575E2 +:1003200001910295017503910105071900297715BF +:10033000002501957875018102C00631FF0974A17D +:10034000010975150025FF952075088102097615AC +:100350000025FF952075089102C005010980A101C3 +:10036000850216010026B7001A01002AB700751091 +:1003700095018100C0050C0901A10185031601004A +:10038000269C021A01002A9C02751095018100C06A +:1003900005010902A1010901A100050919012905A9 +:1003A00015002501950575018102950175038101EF +:1003B0000501093009311581257F950275088106EF +:1003C00009381581257F950175088106050C0A38C5 +:1003D000021581257F950175088106C0C0050109B8 +:1003E00006A101050719E029E71500250195087503 +:1003F00001810295017508810105081901290595FA +:1004000005750191029501750391010507190029F0 +:10041000FF150025FF950675088100C00A002530EC +:10042000325820006B6579626F6172645F7265702B +:100430006F72743A20004B6579626F617264204C70 +:100440004544732073746174653A2025780A00640A +:10045000656C5F6B65795F6269743A2063616E27D2 +:10046000742064656C3A20253032580A0061646457 +:100470005F6B65795F6269743A2063616E277420EF +:100480006164643A20253032580A00646F6E652E2C +:100490000A00626F6F676D61676963207363616EE5 +:1004A0003A202E2E2E2000290A002575002F002527 +:1004B00075005D28002564002000256400200025CB +:1004C000640020002564007C0025303258006D6FE8 +:1004D0007573656B6579205B62746E7C782079201A +:1004E0007620685D287265702F61636C293A205B05 +:1004F000006D6B5F776865656C5F74696D655F74CF +:100500006F5F6D6178203D2025640A006D6B5F7719 +:100510006865656C5F6D61785F7370656564203DCB +:100520002025640A006D6B5F74696D655F746F5F91 +:100530006D6178203D2025640A006D6B5F6D6178E8 +:100540005F7370656564203D2025640A006D6B5FF4 +:10055000696E74657276616C203D2025640A006DB9 +:100560006B5F64656C6179203D2025640A006D6BCA +:100570005F776865656C5F74696D655F746F5F6DEB +:100580006178203D2025640A006D6B5F77686565A2 +:100590006C5F6D61785F7370656564203D202564D4 +:1005A0000A006D6B5F74696D655F746F5F6D617874 +:1005B000203D2025640A006D6B5F6D61785F73706C +:1005C000656564203D2025640A006D6B5F696E746B +:1005D000657276616C203D2025640A006D6B5F6456 +:1005E000656C6179203D2025640A000A00257500AC +:1005F000363A20776865656C5F74696D655F746F06 +:100600005F6D61783A20000A00257500353A207741 +:100610006865656C5F6D61785F73706565643A20CD +:10062000000A00257500343A2074696D655F746FA7 +:100630005F6D61783A20000A00257500333A206D1D +:1006400061785F73706565643A20000A0025750063 +:10065000323A20696E74657276616C286D73293A3E +:1006600020000A00257500313A2064656C61792804 +:100670002A31306D73293A20000A092D2056616C09 +:10068000756573202D0A004D3E004D25643E200007 +:100690003F007365742064656661756C740A00437D +:1006A0003E200077686572652064656C74613A204D +:1006B000637572736F723D25642C20776865656C75 +:1006C0003D25640A53656520687474703A2F2F6560 +:1006D0006E2E77696B6970656469612E6F72672F22 +:1006E00077696B692F4D6F7573655F6B6579730AF9 +:1006F000000A092D204D6F7573656B6579202D0AF1 +:100700004553432F713A09717569740A313A096486 +:10071000656C6179282A31306D73290A323A09698A +:100720006E74657276616C286D73290A333A096DAF +:1007300061785F73706565640A343A0974696D6540 +:100740005F746F5F6D61780A353A09776865656C2B +:100750005F6D61785F73706565640A363A09776822 +:1007600065656C5F74696D655F746F5F6D61780A54 +:100770000A703A097072696E742076616C756573DF +:100780000A643A097365742064656661756C7473F4 +:100790000A75703A092B310A646F776E3A092D3168 +:1007A0000A706775703A092B31300A7067646F7789 +:1007B0006E3A092D31300A0A7370656564203D2058 +:1007C00064656C7461202A206D61785F7370656563 +:1007D00064202A2028726570656174202F20746956 +:1007E0006D655F746F5F6D6178290A003F004D3E53 +:1007F0002000433E20004C25640A0074696D657238 +:100800005F636F756E743A202530346C580A006B44 +:100810006579626F6172645F6E6B726F3A20255802 +:100820000A006B6579626F6172645F69646C653A36 +:100830002025580A006B6579626F6172645F70727F +:100840006F746F636F6C3A2025580A00686F737479 +:100850005F6B6579626F6172645F6C656473282990 +:100860003A2025580A000A092D20537461747573C3 +:10087000202D0A004743433A20342E392E3220419E +:1008800056522D4C4942433A20312E382E312041C8 +:1008900056525F415243483A20617672350A004F02 +:1008A0005054494F4E533A204C55464120424F4FE9 +:1008B000544D41474943204D4F5553454B455920D1 +:1008C00045585452414B455920434F4E534F4C4588 +:1008D00020434F4D4D414E44204E4B524F20353119 +:1008E000320A004255494C443A2031363731386596 +:1008F000662D6469727479202832333A30373A327F +:1009000039204A756E2020392032303136290A00CC +:100910005649443A20307846454544284E6F626F28 +:10092000647929205049443A2030783430393628C7 +:10093000476F6C6450616429205645523A203078E4 +:10094000303030310A00444553433A20412063752A +:1009500073746F6D206B6579626F6172640A000A4F +:10096000092D2056657273696F6E202D0A000A09E1 +:100970002D20436F6E736F6C65202D0A4553432FF6 +:10098000713A09717569740A6D3A096D6F7573650D +:100990006B65790A000A092D204D61676963202D76 +:1009A0000A443A094465627567204D65737361674F +:1009B0006520546F67676C650A583A094D61747217 +:1009C0006978204465627567204D6F646520546FB7 +:1009D00067676C65202D2053686F77206B65797091 +:1009E00072657373657320696E206D6174726978C6 +:1009F00020677269640A4B3A094B6579626F6172CC +:100A00006420446562756720546F67676C65202DAC +:100A10002053686F77206B657970726573732072ED +:100A200065706F72740A4D3A094465627567204DAE +:100A30006F75736520546F67676C650A563A09567F +:100A4000657273696F6E0A533A09537461747573F2 +:100A50000A433A09416374697661746520436F6E95 +:100A6000736F6C65204D6F64650A46312D463130D9 +:100A70003A0953776974636820746F204C61796513 +:100A80007220302D392028463130203D204C30292D +:100A90000A302D393A0953776974636820746F20DE +:100AA0004C6179657220302D390A4553433A095318 +:100AB000776974636820746F204C617965722030A7 +:100AC0002028616C7465726E617465206B65792095 +:100AD00031290A47524156453A0953776974636888 +:100AE00020746F204C6179657220302028616C740D +:100AF00065726E617465206B65792032290A5041F8 +:100B00005553453A094A756D7020746F20426F6FD6 +:100B1000746C6F6164657220285265736574290A6C +:100B2000453A095072696E7420454550524F4D2028 +:100B300053657474696E67730A4E3A094E4B524F8F +:100B400020546F67676C650A000A002575002E6CDB +:100B50006576656C3A20000A002575002E656E6189 +:100B6000626C653A20000A002530325800626163E9 +:100B70006B6C696768745F636F6E6669672E72611C +:100B8000773A20000A002575002E6E6B726F3A20AE +:100B9000000A002575002E737761705F6261636BD8 +:100BA000736C6173685F6261636B73706163653AF4 +:100BB00020000A002575002E737761705F677261EF +:100BC00076655F6573633A20000A002575002E6E16 +:100BD0006F5F6775693A20000A002575002E7377EC +:100BE00061705F72616C745F726775693A20000AA8 +:100BF000002575002E737761705F6C616C745F6C9B +:100C00006775693A20000A002575002E63617073CC +:100C10006C6F636B5F746F5F636F6E74726F6C3A4F +:100C200020000A002575002E737761705F636F6E78 +:100C300074726F6C5F636170736C6F636B3A2000EA +:100C40000A0025303258006B65796D61705F636F03 +:100C50006E6669672E7261773A20000A002575007A +:100C60002E6D6F7573653A20000A002575002E6B96 +:100C70006579626F6172643A20000A002575002E62 +:100C80006D61747269783A20000A002575002E653E +:100C90006E61626C653A20000A00253032580064AB +:100CA000656275675F636F6E6669672E7261773A1A +:100CB00020000A0025750064656661756C745F6CC0 +:100CC000617965723A20003F004E4B524F3A206FD7 +:100CD00066660A004E4B524F3A206F6E0A000A6D4C +:100CE0006F7573653A206F66660A000A6D6F7573DB +:100CF000653A206F6E0A000A6B6579626F617264F3 +:100D00003A206F66660A000A6B6579626F617264E9 +:100D10003A206F6E0A000A6D61747269783A206F2A +:100D200066660A000A6D61747269783A206F6E0A0D +:100D3000000A64656275673A206F66660A000A6495 +:100D4000656275673A206F6E0A000A0A4A756D700F +:100D5000696E6720746F20626F6F746C6F61646579 +:100D6000722E2E2E2000433E20006565636F6E6656 +:100D700069673A0A006261636B6C69676874207323 +:100D80007465703A2025750A006261636B6C69674F +:100D9000687420746F67676C653A2025750A006275 +:100DA00061636B6C69676874206465637265617305 +:100DB000653A2025750A006261636B6C6967687427 +:100DC00020696E6372656173653A2025750A0000BB +:100DD00011241FBECFEFDAE0DEBFCDBF04B603FEA5 +:100DE00024C08091EF019091F001A091F101B091A8 +:100DF000F2018730904BA740B04BB9F41092EF014D +:100E00001092F0011092F1011092F20114BE84B719 +:100E1000877F84BF88E10FB6F894809360001092BA +:100E200060000FBEE0E0FFE3099511E0A0E0B1E053 +:100E3000E2EBFCE502C005900D92A234B107D9F7B0 +:100E400011E0A2E4B1E001C01D92AF3EB107E1F7AD +:100E50000E9418100C94572E0C940000FF93EF93EF +:100E6000E0914201F0914301309709F00995EF912B +:100E7000FF910895FC018591803011F0EFDFFBCFE9 +:100E80000895FF27E0E230E247FF0CC0419597FF4D +:100E900009C0EDE26095709580959095611D711D7A +:100EA000811D911D27FF02C0219530E350E2AA2742 +:100EB000660F771F881F991FAA1FA41710F0A41B85 +:100EC00063955A95A9F7AA3008F0A95FA05DAF9382 +:100ED000F395611571058105910541F7ED3211F426 +:100EE000EF93F395F21718F43F93F395FBCF8F919F +:100EF000B5DFFA95E1F70895E991F9918591803090 +:100F000021F0853219F0AADFF9CF089520E0E894A6 +:100F100055915532C1F3503311F4689455915A33B9 +:100F200048F4505390F3220F022E220F220F200D6F +:100F3000250FF4CF0EF4219589919991533619F329 +:100F4000533729F1533559F1BC0188279927E89483 +:100F50005C3621F48991999168945591543639F40D +:100F600046EF7EF077FF0DC08FEF9FEF0AC0553739 +:100F70004AE039F0583540E121F0523642E009F0BC +:100F80000895FF93EF937DDFEF91FF91B7CFFF932C +:100F9000EF93FC0181918030B9F360DFFBCFFF93C9 +:100FA000EF9368DFF1CFDF93CF93CDB7DEB7259610 +:100FB000A3DFCF91DF9108950895089581E008950A +:100FC0000C94DD070C94DE070C948B08279A2F985D +:100FD0008FEF9FEF90938700809386008AE0809345 +:100FE000800089E1809381000C94E22B0E94E60747 +:100FF0000C94DC07282F81110BC080918000877F23 +:101000008093800010928D0010928C002F9808958C +:101010002F9880918000886080938000233019F49D +:101020008FEF9FEF0FC083E090E0821B9109880F44 +:10103000991F2FEF3FEFA90102C0569547958A955A +:10104000E2F7CA0190938D0080938C000895089573 +:10105000CF93DF93EC016130F1F018F06230E9F1E9 +:1010600055C08A81882309F451C080EE0E94DC16A5 +:101070008D81807F803129F486E00E94DC1686E035 +:1010800006C0803231F48BE10E94DC168BE10E94B5 +:101090007B1780EE1FC08A818823C1F08D818295E5 +:1010A0008F7090E003971CF482E00E94A3178D815B +:1010B000807F803219F481E00E94A3178D81807FA8 +:1010C000803321F588E50E94DC1620C083E00E9471 +:1010D000AA1788E50E947B1719C08A81882399F096 +:1010E0008D8182958F7090E002971CF481E00E94C0 +:1010F000A3178D8182958F7090E002973CF084E079 +:101100000E94A31703C085E00E94AA1780E090E028 +:10111000DF91CF91089581FF03C0569A5E9A02C075 +:1011200056985E9880FF05C03F9A88B18F6788B94E +:1011300008953F984798089581E008950C949C087D +:1011400008950F931F93CF93DF938C01FC01C0810F +:10115000D181CE010E94301FBE010E944D09EC01D9 +:10116000B8010E949E08882309F48DC0F80182818D +:10117000882309F44AC080914F0181111FC0C431F6 +:10118000F0E5DF0709F051C00E94A00881E08093DC +:101190004F010E948A2190934E0180934D0110923D +:1011A0004601109248011092470110924A01109294 +:1011B000490110924C0110924B0165C080914D0184 +:1011C00090914E010E949621883C910570F4809187 +:1011D0004601E82FF0E0EE0FFF1FE95BFE4FD183E1 +:1011E000C0838F5F809346014EC0C43880E5D80726 +:1011F00021F0C538D04501F13AC0F8018281882339 +:1012000041F01092440182E01EC0C438E0E5DE07E0 +:1012100059F580914401811106C086E20E94DC16D6 +:1012200086E20E947B1782E01CC0C438F0E5DF072D +:1012300041F3C538D045D9F4F8018281882331F0D3 +:101240001092450180E20E94A3171DC080914501C4 +:10125000811106C087E20E94DC1687E20E947B179C +:1012600080E20E94AA170FC0C538D04529F381E05B +:101270008093440180934501C801DF91CF911F9174 +:101280000F910C94E20780E0DF91CF911F910F91B5 +:1012900008950C94F6070C94E007E72FF0E096E031 +:1012A000899FE00DF11D1124EE0FFF1FEE0FFF1FB0 +:1012B000E60FF11DEE0FFF1FE65EFE4F8591949144 +:1012C0000895880F991FFC01E657F040859194918D +:1012D0000895880F991FFC01E65FFE4F8591949158 +:1012E00008950F931F93CF93DF93EC01811521E3B2 +:1012F0009207A0F5C11580E3D80708F0D7C0C83E13 +:10130000D105D8F4C03ED10508F007C2C83AD105CE +:1013100078F4C53AD10508F06AC0C130D10509F4A6 +:1013200063C008F4F7C1C430D10508F0F6C1F2C1BA +:10133000CB3BD10508F466C0EDC1C11590E2D907D9 +:1013400008F0AFC0C11521E0D20708F0E6C1C03FE8 +:10135000D10508F4DFC18E0110651FC2C03880E5D9 +:10136000D80700F5C03790E5D90708F0A3C0C1152C +:1013700020E5D20709F4ACC050F4CE01905480317E +:101380009F4008F0C7C1DF708E01106A06C2C130ED +:1013900080E5D80709F4AAC0C43190E5D90708F45C +:1013A000AFC0B8C1C33820E5D20709F48EC050F4ED +:1013B000C13890E5D90709F482C008F083C000E085 +:1013C00011EDEBC1C03181E5D80708F4A3C1C11507 +:1013D00097E5D90708F436C1CE01905781159041A1 +:1013E00008F098C1DF7093C101E010E0D6C1C53AA2 +:1013F000D10509F494C1C63AD10509F093C102E8B8 +:1014000010E4CBC1C83AD10509F48FC1C93AD1055E +:1014100009F48EC1CA3AD10509F48DC1CB3AD10580 +:1014200009F48CC1CC3AD10509F48BC1CD3AD10570 +:1014300009F48AC1C03BD10509F489C1CE3AD1056E +:1014400009F488C1CF3AD10509F487C1C13BD10560 +:1014500009F486C1C23BD10509F485C1C33BD1055E +:1014600009F484C1C43BD10509F483C1C53BD1054E +:1014700009F482C1C63BD10509F481C1C73BD1053E +:1014800009F480C1C83BD10509F47FC1C93BD1052E +:1014900009F47EC1CA3BD10509F47DC100E014E422 +:1014A0007CC1CE019F700E94690978C1DD278E0141 +:1014B000106C73C1CF70DD278E01146D6EC100E01A +:1014C00010ED6BC100E012ED68C100E013ED65C1E5 +:1014D0000E94371A8FEF94E32CE081509040204017 +:1014E000E1F700C000000E94E52157C18AEA91E0BF +:1014F0000E943A078091CF0181608093CF014DC156 +:101500000E949723811102C00E9478230E94B42375 +:1015100090E09093EE018093ED01C23080E5D80712 +:1015200021F48091ED01816086C0C43090E5D90737 +:1015300021F48091ED0182607EC0C63020E5D207A3 +:1015400021F48091ED01846076C0C83080E5D80731 +:1015500019F48091ED0127C0CA3090E5D90721F434 +:101560008091ED01806167C0CC3020E5D20721F485 +:101570008091ED0180625FC0CE3080E5D80721F414 +:101580008091ED01806457C0C03190E5D90721F406 +:101590008091ED0180684FC0C23120E5D20729F467 +:1015A0008091ED018460886046C0C33080E5D80733 +:1015B00021F48091ED018E7F3EC0C53090E5D907C2 +:1015C00021F48091ED018D7F36C0C73020E5D20730 +:1015D00021F48091ED018B7F2EC0C93080E5D807C2 +:1015E00019F48091ED0126C0CB3090E5D90721F4A4 +:1015F0008091ED018F7E1FC0CD3020E5D20721F410 +:101600008091ED018F7D17C0CF3080E5D80721F4A0 +:101610008091ED018F7B0FC0C13190E5D90721F496 +:101620008091ED018F7707C0C331D04531F48091AF +:10163000ED018B7F877F8093ED018091ED010E940A +:10164000B823ABC08D2F99278F70992781309105D2 +:10165000D9F49E012370332702C0880F991F2A9561 +:10166000E2F79C688E0144E0000F111F4A95E1F7F4 +:1016700000271370802B912B53E0CC0FDD1F5A9560 +:10168000E1F7C076DD272FC08230910531F4DC2FE1 +:10169000CC278E01016F106A80C08330910569F4F8 +:1016A000CE018370992701E010E002C0000F111FE6 +:1016B0008A95E2F7C8019C680FC084309105B9F49F +:1016C000CE018370992701E010E002C0000F111FC6 +:1016D0008A95E2F7C8019A6823E0CC0FDD1F2A95AE +:1016E000E1F7C07ED7708C010C2B1D2B56C08530C6 +:1016F000910531F4DC2FCC278E01046F106A4DC0A8 +:10170000069709F04AC0CF71DD27DC2FCC278E0168 +:10171000106243C000E010E040C08E013EC001E80E +:1017200010E43BC003E810E438C002EE14E435C016 +:1017300009EE14E432C00AEE14E42FC005EB14E401 +:101740002CC006EB14E429C007EB14E426C00CEC13 +:1017500014E423C00DEC14E420C003E815E41DC01C +:101760000AE815E41AC002E915E417C004E915E413 +:1017700014C001E216E411C003E216E40EC004E254 +:1017800016E40BC005E216E408C006E216E405C044 +:1017900007E216E402C00AE216E4C801DF91CF9125 +:1017A0001F910F910895E72FF0E096E0899FE00DDB +:1017B000F11D1124EE0FFF1FEE0FFF1FE60FF11DAD +:1017C000EE0FFF1FE65EFE4F85919491803E9105DE +:1017D000E0F4803C910558F58133910509F46FC020 +:1017E00048F48932910509F463C08A32910509F4FD +:1017F0006DC072C089339105E9F082389105D1F04E +:101800008533910509F44DC067C0833E910581F190 +:1018100038F4803E9105B9F0823E9105D9F05CC064 +:10182000863E910561F1873E9105A1F155C00E9468 +:10183000610908952091ED0120FD02C021FF4CC0F7 +:1018400080EE90E049C08091ED0180FFF9CF89E3FF +:1018500090E042C08091ED0182FF0EC08091ED01C9 +:1018600084FF03C080E090E037C083EE90E034C096 +:101870008091ED0182FFF2CF82EE90E02DC0809149 +:10188000ED0183FF0BC08091ED0184FDEBCF87EE6E +:1018900090E022C08091ED0183FFF5CF86EE90E0CD +:1018A0001BC08091ED0185FF07C089E290E014C064 +:1018B0008091ED0185FFF9CF85E390E00DC0809127 +:1018C000ED0186FF07C08AE290E006C08091ED013D +:1018D00086FFF9CF81E390E00E94710908950C948E +:1018E000E407E82FF0E0EB5EFE4F8081E82FEF7019 +:1018F000F0E082958F7021E030E0A90102C0440F32 +:10190000551F8A95E2F740A308950F931F93CF9335 +:10191000DF9385B7806885BF85B7806885BFC3E0E2 +:10192000D0E001E010E0FE01EB5EFE4F8081E82F89 +:10193000EF70F0E021A182958F70A80102C0440FE2 +:10194000551F8A95E2F7CA01822B81A38C2F0E9432 +:10195000710C219740F785E090E061E070E0FC01B8 +:10196000E75EFE4F2081E22FEF70F0E042A122956A +:101970002F70DB0102C0AA0FBB1F2A95E2F79D0161 +:10198000242B22A3019758F7DF91CF911F910F913C +:101990000C944909EF92FF920F931F93CF93DF931B +:1019A00004E511E0C3E0EE24E394F12CD5E08C2FA4 +:1019B0000E94710C85E090E040E0FC01E75EFE4F84 +:1019C0005081E52FEF70F0E020A130E052955F707C +:1019D00002C0359527955A95E2F720FD07C097017B +:1019E000082E01C0220F0A94EAF7422B019728F72C +:1019F000F80182918F01841719F04083D093000180 +:101A00008C2F0E94710CC15090F68091000187FDCF +:101A100032C09091CF0190FF10C0282F332727FDAF +:101A200030953F938F9383EF91E09F938F930E9424 +:101A3000D3070F900F900F900F908091000181506D +:101A40008093000187FD07C08FE99FE00197F1F7C0 +:101A500000C0000010C08091530180935701809115 +:101A600052018093560180915101809355018091DC +:101A70005001809354010E944B0981E0DF91CF9186 +:101A80001F910F91FF90EF90089591E001C0990F81 +:101A90008A95EAF723E030E080E061E070E0F90148 +:101AA000EC5AFE4F4081492339F0AB01022E01C0B0 +:101AB000440F0A94EAF7842B2150310980F70895E6 +:101AC0000F931F93CF93DF938091CF0180FF04C0CA +:101AD00084ED91E00E943A07C0E0D0E00CEB11E009 +:101AE0008091CF0180FF14C08C2F0E94450D90E0A3 +:101AF0000E94F4209F938F93DF93CF931F930F93B4 +:101B00000E94D3070F900F900F900F900F900F909F +:101B10002196C630D10521F7DF91CF911F910F910A +:101B20000895CF93DF93C5E0D0E08C2F0E94450D40 +:101B300090E00E94D220D80FC150B8F78D2FDF91CE +:101B4000CF91089580916B0108959FB7F8941092FA +:101B50005A019FBF9091E401943009F057C09091D1 +:101B6000E9009F703091EC00232F217030FD20E8B8 +:101B7000922B24E02093E9002091EB0020FF43C04A +:101B80002091EE0027FF3FC020915801222321F031 +:101B90002091E80025FF37C01092580126E03091CF +:101BA000E80035FD15C03091E401343061F5309125 +:101BB000EB0035FD28C0215021F481E080935801CD +:101BC00022C0EFE9FFE03197F1F700C00000E7CF56 +:101BD0008093F1008091E80085FD0AC08091E800C3 +:101BE00080FFFCCF8091E8008E778093E80006C0EC +:101BF0008FB7F89421E020935A018FBF9F70909384 +:101C0000E90080E008959F709093E9008FEF0895B8 +:101C1000CF93DF9300D01F92CDB7DEB79C018091A8 +:101C2000E401843019F593E099833B832A839093F0 +:101C3000E9008FEF9091E800815095FD06C095ED89 +:101C40009A95F1F700008111F5CF8091E80085FFAA +:101C50000DC040E050E063E070E0CE0101960E94CC +:101C6000CE108091E8008E778093E8000F900F905F +:101C70000F90DF91CF910895CF93DF9300D01F9203 +:101C8000CDB7DEB72091E401243021F522E029838D +:101C90009B838A8383E08093E9008FEF9091E80033 +:101CA000815095FD06C095ED9A95F1F700008111E0 +:101CB000F5CF8091E80085FF0DC040E050E063E083 +:101CC00070E0CE0101960E94CE108091E8008E77E0 +:101CD0008093E8000F900F900F90DF91CF910895BF +:101CE0002091E4012430F1F422E02093E9002FEF69 +:101CF0003091E800215035FD06C035ED3A95F1F7F9 +:101D000000002111F5CF2091E80025FF0BC040E035 +:101D100050E065E070E00E94CE108091E8008E7780 +:101D20008093E8000895CF93DF932091E40124305D +:101D300009F048C0EC0180910B018823E1F080910B +:101D40000C018823C1F085E08093E9008FEF90912A +:101D5000E800815095FD06C095E19A95F1F70000E5 +:101D60008111F5CF8091E80085FF2CC040E050E064 +:101D700060E170E017C081E08093E9008FEF9091FF +:101D8000E800815095FD06C095ED9A95F1F70000A9 +:101D90008111F5CF8091E80085FF14C040E050E04C +:101DA00068E070E0CE010E94CE108091E8008E774E +:101DB0008093E80080E1FE01ABE5B1E001900D9277 +:101DC0008A95E1F7DF91CF91089588E392E00E9430 +:101DD0003A078091E301811109C00E9463120E94B9 +:101DE000C0128091E20084608093E200089584E351 +:101DF00092E00E943A071092E301089580E392E096 +:101E00000C943A078CE292E00C943A0788E292E054 +:101E10000E943A070C944D21209159012F5F822F87 +:101E200062E30E94E72D992319F020935901089548 +:101E30001092590180915A01882371F18091E40137 +:101E4000843041F58091E9008F702091EC00922F51 +:101E5000917020FD90E8892B94E09093E900909197 +:101E6000EB0090FF14C09091EE0097FF10C090918E +:101E7000E80095FF03C01092F100F9CF9091E800BF +:101E800090FF05C09091E8009E779093E8008F70D6 +:101E90008093E90010925A01089542E061EC81E0DC +:101EA0000E94DD1142E061EC82E00E94DD1142E01F +:101EB00061EC83E00E94DD1142E261EC84E00E946B +:101EC000DD1142E161EC85E00C94DD118091E601C9 +:101ED000833009F455C030F4813071F0823009F458 +:101EE0008EC008958A3009F47AC08B3009F460C03E +:101EF000893009F09CC020C08091E501813A09F049 +:101F000096C08091E800877F8093E8008091E90186 +:101F10009091EA01892B21F460E18BE591E003C007 +:101F200060E080E090E070E00E9419118091E8008C +:101F30008B778093E80008958091E501813209F064 +:101F400076C08091E9019091EA01009719F0049719 +:101F500009F06DC08091E800877F8093E800809150 +:101F6000E80082FD05C08091E4018111F8CF5FC0D7 +:101F70008091F10080936B018091E8008B7753C0D2 +:101F80008091E501813A09F052C08091E901909178 +:101F9000EA01892B09F04BC08091E800877F80938C +:101FA000E8008091E80080FFFCCF80910B0136C0F3 +:101FB0008091E5018132D9F58091E9019091EA01A2 +:101FC000892BA9F58091E800877F8093E8000E9423 +:101FD00012128091E70180930B010C94371A8091C3 +:101FE000E501813221F58091E800877F8093E80048 +:101FF0000E9412128091E80180936C0108958091F3 +:10200000E501813AA1F48091E800877F8093E800A0 +:102010008091E80080FFFCCF80916C018093F100FB +:102020008091E8008E778093E8000C941212089556 +:1020300084B7877F84BF88E10FB6F89480936000EF +:10204000109260000FBE90E080E80FB6F894809385 +:102050006100909361000FBE0E94F2150E9463120E +:102060000E94C0128091E20084608093E20085EAC1 +:102070009DE00E94CD2078940E9445150E94F415A1 +:1020800081E091E00E94601587E192E00E943A07AA +:102090008091E401853089F483E192E00E943A075F +:1020A0000E940E218091E201882391F30E943C213D +:1020B000882371F30E94B810EBCF0E941E16E8CF60 +:1020C000292F332723303105C9F064F4213031053D +:1020D00081F02230310509F043C08DE890E022E61E +:1020E00032E042C021323105F1F02232310541F1B6 +:1020F00037C082E190E02FEE32E036C09927813080 +:10210000910541F08230910541F0892B49F5EEE5CA +:10211000F2E005C0EEE4F2E002C0ECE3F2E084910C +:1021200090E09F0121C06530D8F4E62FF0E0EE0F7B +:10213000FF1FE25DFE4F2081318189E090E014C0F5 +:10214000653070F470E0FB01EE0FFF1FEC5DFE4F99 +:1021500020813181FB01E15EFE4F808190E004C06F +:1021600080E090E020E030E0FA01318320830895A0 +:1021700080E189BD82E189BD09B400FEFDCF809177 +:10218000D8008F7D8093D8008091E000826080939A +:10219000E0008091E00081FDFCCF0895CF92DF92B6 +:1021A000EF92FF920F931F93CF93DF93EC018B017C +:1021B0006A010E943112811133C0C114D10439F077 +:1021C000F60180819181081B190BC80FD91FE12CE2 +:1021D000F12C0115110519F18091E80085FD16C05B +:1021E0008091E8008E778093E800C114D10449F013 +:1021F000F60180819181E80EF91EF182E08285E08E +:102200000FC00E943112882321F30AC08991809364 +:10221000F10001501109FFEFEF1AFF0ADACF80E059 +:10222000DF91CF911F910F91FF90EF90DF90CF90B2 +:1022300008952091EB013091EC012617370748F003 +:102240006115710539F42091E8002E772093E8009C +:1022500001C0B90140E061157105A9F12091E401C7 +:10226000222309F443C0253009F442C02091E8003C +:1022700023FD40C02091E80022FD32C02091E800FB +:1022800020FFE9CF4091F3002091F20030E0342BA1 +:10229000FC01CF016115710559F02830310540F47A +:1022A00081918093F100615071092F5F3F4FF1CF11 +:1022B00041E02830310509F040E02091E8002E7718 +:1022C0002093E800C8CF4111C9CF0AC08091E40132 +:1022D000882361F0853061F08091E80083FD0AC0B9 +:1022E0008091E80082FFF2CF80E0089582E00895B7 +:1022F00083E0089581E008952091EB013091EC0195 +:102300002617370748F06115710539F42091E80068 +:102310002E772093E80001C0B901FC0120E061158F +:10232000710591F18091E401882309F440C0853062 +:1023300009F43FC08091E80083FD3DC08091E80032 +:1023400082FD2FC08091E80080FFE9CF2091F3004B +:102350008091F20090E0922B6115710559F0883060 +:10236000910540F424912093F10031966150710958 +:102370000196F2CF21E0089709F020E08091E80073 +:102380008E778093E800CBCF2111CCCF0AC080910B +:10239000E401882361F0853061F08091E80083FDDD +:1023A0000AC08091E80082FFF2CF80E0089582E0C9 +:1023B000089583E0089581E00895982F973058F5A7 +:1023C0009093E900981739F07091EC002091ED009E +:1023D0005091F00003C0242F762F50E021FF19C048 +:1023E0003091EB003E7F3093EB003091ED003D7F6C +:1023F0003093ED003091EB0031603093EB0070933F +:10240000EC002093ED005093F0002091EE0027FFA8 +:1024100007C09F5FD3CF8F708093E90081E008955C +:1024200080E008958091E50187FF11C08091E80068 +:1024300082FD05C08091E4018111F8CF11C0809127 +:10244000E8008B770BC08091E401882349F08091EC +:10245000E80080FFF8CF8091E8008E778093E80055 +:1024600008952091E4003091E50095E64091EC005C +:10247000842F817040FF22C08091E80080FD1CC045 +:102480008091E401882391F0853091F08091EB00F8 +:1024900085FD10C04091E4005091E50042175307BC +:1024A00029F39A01915011F784E0089582E008958C +:1024B00083E0089581E0089580E008954091E80068 +:1024C00042FFDECF08950E94D1120E94D912E0EEA1 +:1024D000F0E0808181608083E8EDF0E080818F779B +:1024E000808319BCA7EDB0E08C918E7F8C938081A6 +:1024F0008F7E80831092E30108950F931F93CF93F3 +:10250000DF930E94D1120E94D912C8EDD0E08881D9 +:102510008F77888388818068888388818F7D88838E +:1025200019BC1092E4011092E0011092E2011092A5 +:10253000E10100EE10E0F80180818B7F80838881CB +:102540008160888342E060E080E00E94DD11E1EE7E +:10255000F0E080818E7F8083E2EEF0E08081816018 +:102560008083808188608083F80180818E7F808372 +:10257000888180618883DF91CF911F910F910895A9 +:10258000E8EDF0E080818F7E8083E7EDF0E08081F0 +:102590008160808384E082BF81E08093E3010C94BA +:1025A0007D12E8EDF0E080818E7F80831092E20062 +:1025B00008951092DA001092E10008951F920F9290 +:1025C0000FB60F9211242F933F934F935F936F9306 +:1025D0007F938F939F93AF93BF93EF93FF938091DC +:1025E000E10082FF0BC08091E20082FF07C0809172 +:1025F000E1008B7F8093E1000E940C0F8091DA0054 +:1026000080FF1FC08091D80080FF1BC08091DA003E +:102610008E7F8093DA008091D90080FF0DC080E129 +:1026200089BD82E189BD09B400FEFDCF81E08093C0 +:10263000E4010E94E50E05C019BC1092E4010E945D +:10264000F70E8091E10080FF19C08091E20080FFC9 +:1026500015C08091E2008E7F8093E2008091E200BD +:1026600080618093E2008091D80080628093D800DE +:1026700019BC85E08093E4010E94020F8091E10083 +:1026800084FF30C08091E20084FF2CC080E189BDCE +:1026900082E189BD09B400FEFDCF8091D8008F7D15 +:1026A0008093D8008091E1008F7E8093E10080913B +:1026B000E2008F7E8093E2008091E200816080934F +:1026C000E2008091E001882311F084E007C080914E +:1026D000E30087FD02C081E001C083E08093E40154 +:1026E0000E94060F8091E10083FF29C08091E200E3 +:1026F00083FF25C08091E100877F8093E10082E025 +:102700008093E4011092E0018091E1008E7F80933C +:10271000E1008091E2008E7F8093E2008091E200F0 +:1027200080618093E20042E060E080E00E94DD1181 +:102730008091F00088608093F0000E94FE0EFF916F +:10274000EF91BF91AF919F918F917F916F915F9129 +:102750004F913F912F910F900FBE0F901F901895A2 +:102760001F920F920FB60F9211242F933F934F9306 +:102770005F936F937F938F939F93AF93BF93CF9309 +:10278000DF93EF93FF93C091E900CF708091EC004D +:10279000D82FD17080FDD0E81092E9008091F00030 +:1027A000877F8093F00078940E94F4131092E900E0 +:1027B0008091F00088608093F000CD2BCF70C093A3 +:1027C000E900FF91EF91DF91CF91BF91AF919F9180 +:1027D0008F917F916F915F914F913F912F910F90CA +:1027E0000FBE0F901F9018951F93CF93DF93CDB717 +:1027F000DEB7AA970FB6F894DEBF0FBECDBFE5EEE9 +:10280000F1E088E08E0F9091F10091938E13FBCF51 +:102810000E94660F8091E80083FF1FC18091E5014F +:102820009091E601492F50E04A30510508F015C15A +:10283000FA01EA5AFF4F0C94072E803881F0823853 +:1028400009F00BC18091E9018F708093E9008091BC +:10285000EB0085FB882780F91092E90006C0809183 +:10286000E1019091E201911182609091E800977FDF +:102870009093E8008093F1001092F100C8C0282FD7 +:102880002D7F09F0EAC0882319F0823061F0E5C09D +:102890008091E701813009F0E0C0933009F080E0D9 +:1028A0008093E2012BC08091E701811127C08091C4 +:1028B000E9018F7009F4D1C08093E9002091EB0009 +:1028C00020FF1CC0933021F48091EB00806214C083 +:1028D0009091EB0090619093EB0021E030E0A90132 +:1028E00002C0440F551F8A95E2F74093EA00109208 +:1028F000EA008091EB0088608093EB001092E90081 +:102900008091E800877F86C08111A7C01091E70100 +:102910001F778091E3008078812B8093E300809182 +:10292000E800877F8093E8000E9412128091E800FF +:1029300080FFFCCF8091E30080688093E300111159 +:1029400002C082E001C083E08093E40186C0805829 +:10295000823008F082C08091E7019091E8018C3DBF +:1029600053E0950779F583E08A838AE289834FB73C +:10297000F894DE01139620E03EE051E2E32FF0E010 +:1029800050935700E49120FF03C0E295EF703F5F42 +:10299000EF708E2F90E0EA3010F0C79601C0C0961D +:1029A0008D939D932F5F243149F74FBF8091E800AD +:1029B000877F8093E8006AE270E0CE0101960E9472 +:1029C000191114C0AE014F5F5F4F6091E9010E9481 +:1029D0006010BC01009709F440C09091E800977F17 +:1029E0009093E80089819A810E947C118091E8008F +:1029F0008B778093E80031C0803879F58091E800CA +:102A0000877F8093E8008091E0018093F1008091BE +:102A1000E8008E778093E8000E9412121EC0811198 +:102A20001CC09091E7019230C0F48091E800877F4C +:102A30008093E8009093E0010E9412128091E001DF +:102A4000811106C08091E30087FD02C081E001C0D2 +:102A500084E08093E4010E944D0F8091E80083FFA1 +:102A60000AC08091E800877F8093E8008091EB00A6 +:102A700080628093EB00AA960FB6F894DEBF0FBE7B +:102A8000CDBFDF91CF911F910895CF938091E40145 +:102A90008823A1F0C091E900CF709091EC00892FBC +:102AA000817090FD80E8C82B1092E9008091E800C9 +:102AB00083FD0E94F413CF70C093E900CF91089575 +:102AC00090937201809371010895E0917101F091EA +:102AD0007201309721F00190F081E02D099480E09F +:102AE0000895EF92FF920F931F93CF93DF93E0919E +:102AF0007101F09172013097B1F18C010280F38184 +:102B0000E02D09958091CF0182FF2DC080FF04C088 +:102B100084E294E00E943A07E80110E18EE1E82E99 +:102B200084E0F82E8091CF0180FF0BC088811F9236 +:102B30008F93FF92EF920E94D3070F900F900F9008 +:102B40000F90115021961111EDCF8091CF0180FF90 +:102B50000AC08CE194E0DF91CF911F910F91FF901B +:102B6000EF900C943A07DF91CF911F910F91FF9056 +:102B7000EF900895E0917101F0917201309721F08A +:102B80000480F581E02D0994089520916F01309122 +:102B900070018217930771F09093700180936F0119 +:102BA000E0917101F0917201309721F00680F78178 +:102BB000E02D0994089520916D0130916E018217E6 +:102BC000930771F090936E0180936D01E091710114 +:102BD000F0917201309721F00084F185E02D099485 +:102BE000089508950C94F1150E9481210E94850C8E +:102BF0000E9443220E94E22B81E080930C01089501 +:102C0000CF93DF931F92CDB7DEB79091CF0192FFA4 +:102C100010C090FF0EC01F928F9326E334E03F93C5 +:102C20002F9389830E94D3070F900F900F900F90DE +:102C300089810F90DF91CF910C946F0CCF92DF922E +:102C4000EF92FF920F931F93CF93DF9300D000D0AA +:102C500000D0CDB7DEB70E94CA0C85E0E82EF12C7B +:102C60000E2D8E2D0E94450D97012C583E4F690167 +:102C7000F90110811827A9F4F1E0EF1AF10880F7A3 +:102C80008FEF89838A831B820E948A218160782F3B +:102C90009D838C8349815A816B818D810E94AE1600 +:102CA00032C09091CF0191FF04C08E830E94600DCD +:102CB0008E8113FD09C012FD0AC011FD0BC010FF6B +:102CC000DBCF90E011E008C093E018E005C092E08F +:102CD00014E002C091E012E099830A83812391E01D +:102CE00009F490E09B830E948A218160782F9D8364 +:102CF0008C8349815A816B818D810E94AE16F601C9 +:102D00008081182710830E94C225109173010E94B0 +:102D100065151817A1F00E9465158093730126961A +:102D20000FB6F894DEBF0FBECDBFDF91CF911F91DC +:102D30000F91FF90EF90DF90CF900C9400162696A5 +:102D40000FB6F894DEBF0FBECDBFDF91CF911F91BC +:102D50000F91FF90EF90DF90CF900895CF93DF9386 +:102D6000CDB7DEB72B970FB6F894DEBF0FBECDBF41 +:102D70004F83588769877A878B87DE01119686E0B3 +:102D8000FD0111928A95E9F785E0FE0137960190E1 +:102D90000D928A95E1F749815A816B817C818D8101 +:102DA0009E810E94D51C2B960FB6F894DEBF0FBEF5 +:102DB000CDBFDF91CF910895CF93882309F499C0B7 +:102DC000C82F8CEF8C0F813A48F48C2F0E948D2AEB +:102DD00081118FC08C2F0E94AF1F0CC080E28C0F1E +:102DE000883058F4C77081E001C0880FCA95EAF7AF +:102DF0000E945720CF910C949E208BE58C0F83303E +:102E000078F4C53A29F0C63A31F083E890E005C07D +:102E100081E890E002C082E890E0CF910C94C51563 +:102E200088E58C0F833108F064C0C83A39F1C93A9B +:102E300041F1CA3A49F1CB3A51F1CC3A59F1CD3A84 +:102E400061F1C03B69F1CE3A71F1CF3A79F1C13B02 +:102E500081F1C23B89F1C33B91F1C43B99F1C53B80 +:102E6000A1F1C63BA9F1C73BB1F1C83BB9F1C93BE0 +:102E7000C1F1CA3BC9F180E090E038C082EE90E039 +:102E800035C089EE90E032C08AEE90E02FC085EB2D +:102E900090E02CC086EB90E029C087EB90E026C044 +:102EA0008CEC90E023C08DEC90E020C083E891E0B2 +:102EB0001DC08AE891E01AC082E991E017C084E958 +:102EC00091E014C081E292E011C083E292E00EC072 +:102ED00084E292E00BC085E292E008C086E292E0D4 +:102EE00005C087E292E002C08AE292E0CF910C94A2 +:102EF000DB15CF910895882329F19CEF980F913A23 +:102F000018F40E9402200DC090E2980F983058F4F7 +:102F1000877091E001C0990F8A95EAF7892F0E9486 +:102F20005D200C949E209BE5980F933020F480E068 +:102F300090E00C94C515885A833120F480E090E02D +:102F40000C94DB150895882321F00E9457200C94DF +:102F50009E200895882321F00E945D200C949E20DD +:102F600008957F928F929F92AF92BF92CF92DF92FD +:102F7000EF92FF920F931F93CF93DF931F92CDB7E2 +:102F8000DEB77C01C62E772EFC01058102950F70FD +:102F9000128111110E9474200E94A81F882379F0C9 +:102FA000112369F080E28C0D883048F082E00E94A5 +:102FB000911F0E94A81F91E0D82ED92601C0D12CC4 +:102FC000E72DE295EF70F0E0E05AFF4F0C94072EEA +:102FD000872D807F072D0F70882311F00295007FC9 +:102FE000112389F0002309F499C180E28C0D883007 +:102FF00020F4802F0E94572003C0802F0E9467205A +:103000000E949E208BC18C2D0E947B17002309F407 +:10301000C3C180E28C0D883020F4802F0E945D2097 +:1030200003C0802F0E946D200E949E20B5C1872D75 +:10303000807F972D9F70803211F4892F03C0892FD4 +:103040008295807FCC2021F0F1E0CF16A1F01DC049 +:10305000112339F0002319F1013009F50E9487206E +:103060009BC1002319F0013009F496C189830E94A5 +:103070008A20898110C1112321F0063008F08CC10B +:103080000EC0053008F088C106C1112359F0002395 +:1030900031F0F701958190FF41C19F7095830E94A7 +:1030A000A3177AC1002309F4F6C03EC1872D869587 +:1030B0008695837090E0009719F0019761F06CC1DC +:1030C000112321F08C2D972D937002C080E090E0A9 +:1030D0000E94C51561C1112321F08C2D972D93708D +:1030E00002C080E090E00E94DB1556C18C2D1123B8 +:1030F00019F00E94482402C00E94B0240E94352585 +:103100004BC1872D837009F052C0111145C18C2D20 +:10311000829586958770880F880F9C2D9F70892EC9 +:10312000912CA12CB12C082E04C0880C991CAA1C2F +:10313000BB1C0A94D2F7C4FE14C00FE010E020E0DC +:1031400030E0B901A80104C0440F551F661F771F66 +:103150008A95D2F7CB01BA016095709580959095CC +:1031600003C060E070E0CB01272D269526952370E3 +:1031700030E02230310569F02330310589F06829CB +:1031800079298A299B292130310571F00E941D1E61 +:1031900003C1682979298A299B290E94391EFCC00C +:1031A0000E941D1EC501B4010E94011EF5C011231D +:1031B00019F0872D817001C08695882309F4ECC031 +:1031C0008C2D829586958770880F880F9C2D9F7017 +:1031D000892E912CA12CB12C082E04C0880C991C8E +:1031E000AA1CBB1C0A94D2F7C4FE14C00FE010E066 +:1031F00020E030E0B901A80104C0440F551F661F4C +:10320000771F8A95D2F7CB01BA01609570958095AA +:10321000909503C060E070E0CB01272D26952695A0 +:103220002370422F50E04230510569F04330510580 +:1032300089F0682979298A299B294130510571F043 +:103240000E94F71EA9C0682979298A299B290E9412 +:10325000131FA2C00E94F71EC501B4010E94DB1E0D +:103260009BC08C2D90E0FC01E05EF109E531F10599 +:1032700008F050C0E059FF4F0C94072E0C2D0F7032 +:10328000872D8F71112321F00E94741E802F07CF8C +:103290000E94951E802F0E94AA177EC0112341F024 +:1032A000053008F079C0872D8F710E94BA1E74C056 +:1032B000063008F071C0F7CF112339F0872D8F71D8 +:1032C0000E94741E69C01123C9F3872D8F710E945B +:1032D000951E62C0112329F0872D8F710E945F1EF9 +:1032E0005BC00E94551E58C0112351F0172D1F714D +:1032F000812F0E94741E63E0812F0E94881F4CC0A2 +:1033000081E00E94911F023008F446C082E00E94D2 +:10331000911F42C0112331F0002381F28C2D0E94B5 +:10332000DC163AC0002389F28C2D0E947B1734C032 +:10333000472D4F706C2DC7010E9428080E94791DEF +:103340002BC0111129C0472D4F7050E0423051055C +:10335000B9F04CF44115510581F041305105E1F4CB +:103360000E941D2C19C04330510569F044305105AD +:1033700099F48C2D0E94A82C0FC00E94F32B0CC036 +:103380000E944C2C09C00E94722C06C0472D4F7021 +:103390006C2DC7010E942708DD20F9F00E94841FD0 +:1033A00080FD1BC0F70112820E947E1F0E94741EC6 +:1033B000C7010E94FC190E947E1F0F90DF91CF91E0 +:1033C0001F910F91FF90EF90DF90CF90BF90AF9043 +:1033D0009F908F907F900C94951E0F90DF91CF91CE +:1033E0001F910F91FF90EF90DF90CF90BF90AF9023 +:1033F0009F908F907F9008950F931F93CF93DF93AB +:10340000EC01888199812B813C81232BB9F09F3F6E +:1034100011F48F3F99F0CE010E94A108882371F02A +:10342000688179818A810E947A1F8C010E942F1FF6 +:103430000E94F61DB801CE010E94B117DF91CF9115 +:103440001F910F9108950E9474200E9484200E9471 +:1034500049200E949E200E9468260E94352580E017 +:1034600090E00E94C51580E090E00C94DB150E946E +:1034700064200C94231A0E946F1F292F22952F700D +:1034800030E02C3031054CF42A3031056CF42250F8 +:10349000310922303105A8F407C02C30310569F01C +:1034A0002F30310551F00DC0803F69F018F4803E97 +:1034B00040F409C0843F29F406C093FB882780F9B3 +:1034C000089580E0089581E00895CF93DF9300D0C0 +:1034D00000D01F92CDB7DEB70F900F900F900F90D6 +:1034E0000F90DF91CF910895CF93DF9300D000D05C +:1034F00000D0CDB7DEB726960FB6F894DEBF0FBE6C +:10350000CDBFDF91CF9108951F93CF93DF93C091EB +:103510007A0116E080917B01C81799F0D0E01C9FDA +:10352000F0011D9FF00D1124E458FE4F40815181A0 +:1035300062817381848195810E94741A2196C7707B +:10354000E9CFDF91CF911F9108954091AC01509147 +:10355000AD016091AE017091AF018091B001909189 +:10356000B1010C94741A8091B10182958F7009F0A9 +:1035700054C08091AE01882309F44FC080917A0134 +:10358000A0917B016091AC017091AD014091AF01C0 +:103590005091B001B6E08A1709F43FC090E04115A0 +:1035A0005105C1F17F3F11F46F3FA1F1B89FF001C8 +:1035B000B99FF00D1124E458FE4F218172132AC0E7 +:1035C0002081621327C02281211124C023813481EC +:1035D0002417350710F421503109241B350B283CE2 +:1035E0003105C0F42091B1012F7020612093B10109 +:1035F00026E0289FF001299FF00D1124EF57FE4F80 +:1036000080818F70806180838CEA91E00E94FC1938 +:103610000C94841A01968770BECF0895CF92DF92E2 +:10362000EF92FF920F931F93CF93DF93CDB7DEB747 +:1036300062970FB6F894DEBF0FBECDBF8C0185E058 +:10364000F801DE011D9601900D928A95E1F7D801EF +:103650004C9111965C91119712966C91129713965A +:10366000CD90DC9014973091AC017091AD018091B8 +:10367000AF019091B001009709F46BC17F3F19F43D +:103680003F3F09F466C1E090AE01EE2009F4C0C0EE +:103690002091B101C816D90628F0F601E81BF90BF4 +:1036A000CF0104C0809590958C0D9D1DFF24F3944F +:1036B000883C910578F0F12C207F09F0C6C07C2D64 +:1036C000D98AC88A89890E94651A8CEA91E00E9489 +:1036D000FC19B1C0822F807F09F046C0751314C059 +:1036E000341312C0611110C02F7020612093B101FA +:1036F0000E94A51A8CEA91E00E94FC198091B10108 +:10370000D80115968C932EC0CD2819F15F3F11F486 +:103710004F3FF9F0F62E61111CC080917A01209183 +:103720007B0136E0821709F45AC090E0389FF0011F +:10373000399FF00D1124E458FE4F7181571306C0D4 +:103740007081471303C07281711103C001968770A5 +:10375000E9CFF62E662309F418C18091B10181608A +:103760008093B101F12C11C1751308C0341306C048 +:10377000611104C08091B101D801C3C04D875E873B +:103780008D859E856A8B0E943B1A6A898823E1F1A8 +:103790006623D1F12091B101822F82958F7090E044 +:1037A000029774F08091AC019091AD0198878F835E +:1037B0001986DB86CA862C87CE0107960E94FC19E3 +:1037C00086E0F801ACEAB1E001900D928A95E1F74C +:1037D0000E94B31A0E94A51AFF24F394D6C04D8705 +:1037E0005E878D859E850E946F1F292F22952F70E1 +:1037F00030E0223031050CF0BCC09F7009F0B6C03B +:10380000805E883008F4C1C0C8010E94FC19E4CF72 +:10381000C816D90608F453C0F601E81BF90BCF010E +:10382000883C910508F450C0F12C7C2DD98AC88AB7 +:1038300089890E94651AECEAF1E086E0DF011D92B9 +:103840008A95E9F70E94A51AA0C0751314C0341315 +:1038500012C0611110C08091B101F8018583C801C7 +:103860000E94FC1986E0ECEAF1E0DF011D928A95E6 +:10387000E9F7FE2C8AC04D875E878D859E856A8B11 +:103880000E943B1A6A89882309F4BECF662309F493 +:10389000BBCF2091B101822F82958F7090E002976B +:1038A0000CF48ECF8091AC019091AD019A83898305 +:1038B0001B82DD82CC822E83CE0101967FCF809544 +:1038C00090958C0D9D1DACCFF62E662309F49CCFF0 +:1038D00075132EC034132CC02091B10120FD1FC0E0 +:1038E000822F82958F70D9F0D80115962C93159759 +:1038F0008F3049F08F5F982F9295907F822F8F7035 +:10390000892B15968C93C8010E94FC1986E0F8015A +:10391000ACEAB1E001900D928A95E1F793CF86E091 +:10392000F801ACEAB1E001900D928A95E1F72DC063 +:103930004D875E878D859E850E943B1A811140CF01 +:103940008091B10181608093B101C8010E94FC198E +:103950001CC0662309F458CF4D875E878D859E85F0 +:103960000E943B1A882309F44FCF2ACF811148CFF8 +:103970000CC0243031050CF047CF9F7009F440CFC4 +:10398000F8019581907F09F03BCF8F2D62960FB69D +:10399000F894DEBF0FBECDBFDF91CF911F910F9185 +:1039A000FF90EF90DF90CF9008951F93CF93DF9318 +:1039B000CDB7DEB72C970FB6F894DEBF0FBECDBFE4 +:1039C0004F83588769877A878B879C87CE010796B4 +:1039D0000E940E1B882369F08F8198852A853B857C +:1039E000232BF1F19F3F09F063C08F3F09F060C0C6 +:1039F00037C086E0FE013796DE01119601900D92E8 +:103A00008A95E1F76F817885EA85FB85309741F1EA +:103A10007F3F11F46F3F21F120917B0130E0C9011C +:103A200001968770992740917A0150E08417950795 +:103A300009F447C069837A83FD83EC8396E0929F03 +:103A4000D001939FB00D1124A458BE4FFE013196B2 +:103A500001900D929A95E1F780937B010E94841A60 +:103A600016E080917A0190917B018917C1F1189F2E +:103A7000C001112484589E4F0E940E1B882379F1A7 +:103A8000E0917A011E9FF0011124E458FE4F40811D +:103A9000518162817381848195810E94741A809121 +:103AA0007A0190E001968770992780937A01D9CFA7 +:103AB0004F81588569857A858B859C850E94741A0B +:103AC000CFCF0E94371A10927B0110927A01ECEA54 +:103AD000F1E086E0DF011D928A95E9F7C1CF2C96CF +:103AE0000FB6F894DEBF0FBECDBFDF91CF911F910F +:103AF0000895EF92FF920F931F93CF93DF938C0162 +:103B0000009709F46CC0F12CEE24E394E8012196AF +:103B1000F8018491843740F4843008F051C081303A +:103B200081F0823019F15BC0853709F444C0A8F1F7 +:103B30009CE7980F903708F052C08F770E947B1750 +:103B400041C00E5F1F4FFE01C49180E28C0F883090 +:103B500048F4C7708E2D01C0880FCA95EAF70E94FD +:103B6000772014C08C2F0E94DC162DC00E5F1F4FD3 +:103B7000FE01C49180E28C0F883058F4C7708E2DFE +:103B800001C0880FCA95EAF70E947D200E949E20FE +:103B90001AC08C2F0E947B1716C00E5F1F4FFE01AC +:103BA000C491CC2381F08FE99FE00197F1F700C029 +:103BB0000000C150F6CF0E5F1F4FFE01F49003C00E +:103BC0000E94DC168E018F2D882309F49FCFEFE928 +:103BD000FFE03197F1F700C000008150F5CFDF9191 +:103BE000CF911F910F91FF90EF90089508956093EA +:103BF000B6017093B7018093B8019093B9010C940A +:103C0000231A0F931F930091B6011091B7012091D1 +:103C1000B8013091B901DC01CB01802B912BA22B93 +:103C2000B32B8093B6019093B701A093B801B093E2 +:103C3000B9011F910F910C94231A0F931F930091B8 +:103C4000B6011091B7012091B8013091B901DC01A2 +:103C5000CB0180239123A223B3238093B6019093B9 +:103C6000B701A093B801B093B9011F910F910C94C3 +:103C7000231A0F931F930091B6011091B701209161 +:103C8000B8013091B901DC01CB0180279127A2272F +:103C9000B3278093B6019093B701A093B801B09376 +:103CA000B9011F910F910C94231A1092B201109236 +:103CB000B3011092B4011092B5010C94231A41E0A3 +:103CC00050E060E070E004C0440F551F661F771F8E +:103CD0008A95D2F74093B2015093B3016093B40137 +:103CE0007093B5010C94231A41E050E060E070E05D +:103CF00004C0440F551F661F771F8A95D2F7809125 +:103D0000B2019091B301A091B401B091B501482BDB +:103D1000592B6A2B7B2B4093B2015093B3016093D4 +:103D2000B4017093B5010C94231A41E050E060E0B7 +:103D300070E004C0440F551F661F771F8A95D2F7A5 +:103D400040955095609570958091B2019091B30126 +:103D5000A091B401B091B501482359236A237B2374 +:103D60004093B2015093B3016093B4017093B501D5 +:103D70000C94231A41E050E060E070E004C0440F6E +:103D8000551F661F771F8A95D2F78091B2019091D7 +:103D9000B301A091B401B091B501482759276A2712 +:103DA0007B274093B2015093B3016093B4017093A9 +:103DB000B5010C94231A0F931F930091B201109137 +:103DC000B3012091B4013091B501DC01CB01802B0E +:103DD000912BA22BB32B8093B2019093B301A093AC +:103DE000B401B093B5011F910F910C94231A0F9356 +:103DF0001F930091B2011091B3012091B401309151 +:103E0000B501DC01CB0180239123A223B32380934E +:103E1000B2019093B301A093B401B093B5011F9187 +:103E20000F910C94231A0F931F930091B2011091DC +:103E3000B3012091B4013091B501DC01CB018027A1 +:103E40009127A227B3278093B2019093B301A09347 +:103E5000B401B093B5011F910F910C94231A0895EA +:103E6000CF92DF92EF92FF920F931F93CF93DF9346 +:103E70008C01C090B601D090B701E090B801F090ED +:103E8000B9018091B2019091B301A091B401B091B8 +:103E9000B501C82AD92AEA2AFB2ACFE1D0E0D70106 +:103EA000C6010C2E04C0B695A795979587950A94E0 +:103EB000D2F780FF06C0B8018C2F0E94D30B019768 +:103EC00021F4219760F780E001C08C2FDF91CF9122 +:103ED0001F910F91FF90EF90DF90CF900895CF93B7 +:103EE000DF93EC010E94301FBE010E94D30BDF91D3 +:103EF000CF910895CB010E946F1F08958091BA0160 +:103F000085958595859508958091BA018770089566 +:103F100098E0899F90011124262B2093BA010C94DC +:103F2000741E2091BA01809582238093BA01982F44 +:103F3000977069F430E0482F552747FD50952417B6 +:103F4000350729F08595859585950C94951E0895DE +:103F50009091BA01977081E009F480E00895909102 +:103F60000B01992321F090910C01911109C020912E +:103F70000D0130910E01F90132969FEF40E030C003 +:103F8000982F9695969596959F30A0F4E0910D0107 +:103F9000F0910E01E90FF11D877021E030E0A901D9 +:103FA00002C0440F551F8A95E2F7CA019181892BFF +:103FB000818308959091CF0190FF23C01F928F932A +:103FC0008DE694E09F938F930E94D3070F900F90FC +:103FD0000F900F9008959F3F39F04F5F4E3041F0A2 +:103FE00051915813F8CF0DC05111F7CF942FF5CF41 +:103FF0009F3F39F0F901E90FF11D97FDFA95828392 +:104000000895089590910B01992321F090910C014E +:10401000911109C020910D0130910E01F9013296E4 +:10402000205F3F4F30C0982F9695969596959F307C +:10403000A8F4E0910D01F0910E01E90FF11D8770D8 +:1040400021E030E0A90102C0440F551F8A95E2F734 +:10405000CA01809591818923818308959091CF0130 +:1040600090FF16C01F928F938FE494E09F938F93DD +:104070000E94D3070F900F900F900F9008953196E4 +:10408000E217F30729F090819813F9CF1082F7CF48 +:10409000089581E090E0E0910D01F0910E01E80FAC +:1040A000F91F1082019680319105A9F7089590912A +:1040B000CE01892B8093CE01089580959091CE01F9 +:1040C00089238093CE0108951092CE010895909196 +:1040D000CD01892B8093CD01089580959091CD01DC +:1040E00089238093CD0108951092CD010895909178 +:1040F000CC01892B8093CC01089580959091CC01BF +:1041000089238093CC0108951092CC010895809367 +:10411000BB0108951092BB01089580910D0190910B +:104120000E01FC0131969C01205F3F4F80E0919190 +:1041300091118F5FE217F307D1F70895E0910D0118 +:10414000F0910E018091CE018083E0910D01F091FC +:104150000E0190818091CD01892B8083E0910D012A +:10416000F0910E0190818091CC01892B8083809108 +:10417000BB01882361F0E0910D01F0910E01908167 +:10418000892B80830E948D2081111092BB01809128 +:104190000D0190910E010C94711590934301809341 +:1041A0004201089520E0009739F0AC0141505109D7 +:1041B000842395232F5FF7CF822F08958295982F20 +:1041C0009C7C392F36953695282F237344E0249F05 +:1041D000C0011124932F982B292F2A7A2695892FF5 +:1041E0008575880F822B08951F93CF93DF931F92BD +:1041F000CDB7DEB799830E94DE20182F9981892FD1 +:104200000E94DE20212F30E0322F2227A901482BE7 +:10421000CA010F90DF91CF911F9108958091E40121 +:10422000843039F11092D00120E488E190E00FB69B +:10423000F894A895809360000FBE2093600080E002 +:104240000E94FA0780E00E946F0C83B7817F846030 +:1042500083BF83B7816083BF7894889583B78E7F4F +:1042600083BF88E10FB6F8948093600010926000DD +:104270000FBE08950895089580E00E94FA070E94F5 +:104280003A210E94CA0C0E943B210E94910D91E0AC +:10429000811101C090E0892F08950E94371A80E0B3 +:1042A0000E94FA070E94E22B0E9465150C946F0C85 +:1042B0001F920F920FB60F9211248F939F93AF937B +:1042C000BF938091D001811113C08091D101909151 +:1042D000D201A091D301B091D4014196A11DB11D8D +:1042E0008093D1019093D201A093D301B093D401D4 +:1042F000BF91AF919F918F910F900FBE0F901F9024 +:10430000189582E084BD93E095BD9AEF97BD8093A8 +:104310006E0008952FB7F8948091D1019091D20149 +:10432000A091D301B091D4012FBF0895CF92DF9215 +:10433000EF92FF920F931F932FB7F8944091D10102 +:104340005091D2016091D3017091D4012FBF6A01C5 +:104350007B01EE24FF248C0120E030E0C016D10662 +:10436000E206F30610F4415051099A01281B390B5B +:10437000C9011F910F91FF90EF90DF90CF900895AA +:104380001F920F920FB60F9211248F939F93AF93AA +:10439000BF938091D1019091D201A091D301B091AE +:1043A000D4010196A11DB11D8093D1019093D2013A +:1043B000A093D301B093D401BF91AF919F918F91FE +:1043C0000F900FBE0F901F9018950E946312F894E3 +:1043D0002FEF87EA91E6215080409040E1F700C03E +:1043E000000087E090EBDC018093EF019093F001F7 +:1043F000A093F101B093F2019CE088E10FB6F8942C +:10440000A895809360000FBE90936000FFCFEF925D +:10441000FF920F931F93CF93DF93D82FC5E08C2F7C +:104420000E94450D03E010E0E82EF12CC701002E9C +:1044300002C0959587950A94E2F780FF09C0602F26 +:104440007C2F80E00E944D09D81302C081E006C095 +:104450000150110958F7C15010F780E0DF91CF915A +:104460001F910F91FF90EF900895CF93C82F8CE28A +:104470000E940722882321F08C2FCF910C940722D1 +:1044800080E0CF910895CF930E949723811102C0BD +:104490000E94782382E994E00E943A07C5E6C15061 +:1044A00049F00E94CA0C8FE39CE90197F1F700C024 +:1044B0000000F5CF8BE894E00E943A0789E20E9461 +:1044C0003522811113C18AE20E94352281110E9496 +:1044D000782385E00E94352281110E94E5210E9407 +:1044E000A2238093CF0187E00E9435228823A9F17F +:1044F0008BE10E943522882351F08091CF0181FB0E +:10450000222720F991E0922790FB81F90EC08EE0DE +:104510000E943522882361F08091CF0182FB2227FF +:1045200020F991E0922790FB82F98093CF0115C08A +:1045300080E10E9435229091CF01882341F093FBC6 +:10454000222720F981E0822780FB93F904C0892F7C +:10455000809580FB90F99093CF018091CF010E94CC +:10456000A6230E94B4238093ED0180EE0E943522A1 +:10457000882341F08091ED01982F909590FB80F970 +:104580008093ED0189E30E943522882359F08091C0 +:10459000ED0181FB222720F991E0922790FB81F920 +:1045A0008093ED0182EE0E943522882359F080919C +:1045B000ED0182FB222720F991E0922790FB82F9FE +:1045C0008093ED0186EE0E943522882359F0809178 +:1045D000ED0183FB222720F991E0922790FB83F9DC +:1045E0008093ED0183EE0E943522882359F080915B +:1045F000ED0184FB222720F991E0922790FB84F9BA +:104600008093ED0185E30E943522882359F0809143 +:10461000ED0185FB222720F991E0922790FB85F997 +:104620008093ED0181E30E943522882359F0809127 +:10463000ED0186FB222720F991E0922790FB86F975 +:104640008093ED0181E10E943522882359F0809109 +:10465000ED0187FB222720F991E0922790FB87F953 +:104660008093ED018091ED010E94B8238091ED01CE +:1046700087FB882780F980930C0187E20E9435220E +:10468000C82F8EE10E9435228111C2608FE10E9405 +:1046900035228111C46080E20E9435228111C860F8 +:1046A00081E20E9435228111C06182E20E9435229E +:1046B0008111C06283E20E9435228111C06484E2CC +:1046C0000E943522882311F0C06802C0CC2329F053 +:1046D0008C2F0E94AF236C2F03C00E94AB23682F46 +:1046E00070E080E090E0CF910C94F71DCF91089599 +:1046F0006DEE7EEF80E090E00E94412E60E082E06F +:1047000090E00E942F2E60E083E090E00E942F2E28 +:1047100060E084E090E00E942F2E60E085E090E071 +:104720000E942F2E60E086E090E00C942F2E80E017 +:1047300090E00E94292E21E08D3E9E4F09F020E05E +:10474000822F089582E090E00C94212E682F82E061 +:1047500090E00C942F2E83E090E00C94212E682F93 +:1047600083E090E00C942F2E84E090E00C94212EB6 +:10477000682F84E090E00C942F2E86E090E00C945B +:10478000212E682F86E090E00C942F2E8091D70187 +:1047900080FF0BC06091120185E0689FB001112479 +:1047A00075956795759567952BC081FF09C06091D8 +:1047B000120185E0689FB00111247595679520C0AE +:1047C00082FF07C06091120185E0689FB00111244B +:1047D00017C09091D8019923D1F0609111019617DB +:1047E00088F72091120185E0289F90011124929F63 +:1047F000A001939F500D112470E0CA010E94F32D77 +:104800006038710540F46115710539F002C065E04A +:1048100070E0862F08958FE7089581E008958091D4 +:10482000D70180FF08C06091100170E07595679511 +:104830007595679521C081FF06C06091100170E0F9 +:104840007595679519C082FF04C06091100170E0F2 +:1048500010C09091D8019923C1F060910F01961773 +:10486000A0F780911001899FC001112470E00E947F +:10487000F32D6038710528F46115710521F0862F3C +:1048800008958FE7089581E0089561E070E0F4CF26 +:10489000803F21F40E94C623819504C0813F29F402 +:1048A0000E94C6238093DB010895823F21F40E9479 +:1048B000C623819504C0833F29F40E94C6238093B8 +:1048C000DA010895893F19F40E940F2405C08A3F38 +:1048D00031F40E940F2481958093DC0108958B3F71 +:1048E00021F40E940F24819504C08C3F29F40E947A +:1048F0000F248093DD010895843F21F48091D90134 +:10490000816017C0853F21F48091D901826011C078 +:10491000863F21F48091D90184600BC0873F21F448 +:104920008091D901886005C0883F31F48091D90118 +:1049300080618093D90108958D3F21F48091D70142 +:1049400081600BC08E3F21F48091D701826005C049 +:104950008F3F29F48091D70184608093D701089517 +:10496000803F39F48091DB0187FF6CC01092DB013E +:1049700069C0813F29F48091DB011816BCF362C045 +:104980009091DA01823F29F497FF5CC01092DA011E +:1049900059C0833F19F41916CCF354C0893F41F430 +:1049A0008091DC0118160CF04DC01092DC014AC059 +:1049B0008A3F29F48091DC0187FF44C0F6CF8B3F0A +:1049C00039F48091DD0187FF3DC01092DD013AC0CE +:1049D0008C3F29F48091DD011816BCF333C0843F6D +:1049E00021F48091D9018E7F17C0853F21F48091F9 +:1049F000D9018D7F11C0863F21F48091D9018B7F31 +:104A00000BC0873F21F48091D901877F05C0883F83 +:104A100031F48091D9018F7E8093D90113C08D3FED +:104A200021F48091D7018E7F0BC08E3F21F48091BD +:104A3000D7018D7F05C08F3F29F48091D7018B7FEF +:104A40008093D7018091DA0181110EC08091DB0142 +:104A500081110AC08091DC01811106C08091DD01C5 +:104A6000811102C01092D80108958091CF0183FF77 +:104A70007EC08EEC94E00E943A078091D9011F928B +:104A80008F9389EC94E09F938F930E94D30787ECD8 +:104A900094E00E943A078091DA01282F332727FDFE +:104AA00030953F938F9384EC94E09F938F930E9473 +:104AB000D30782EC94E00E943A078091DB01282F13 +:104AC000332727FD30953F938F938FEB94E09F938F +:104AD0008F930E94D3078DEB94E00E943A07809158 +:104AE000DC01282F332727FD30953F938F938AEBE6 +:104AF00094E09F938F930E94D30788EB94E00E94E9 +:104B00003A078091DD01282F332727FD30953F9309 +:104B10008F9385EB94E09F938F930E94D30782EB52 +:104B200094E00E943A078091D8011F928F938FEAF8 +:104B300094E09F938F930E94D3078DEA94E00E94A4 +:104B40003A078091D7011F928F938AEA94E09F934E +:104B50008F930E94D30787EA94E00E943A078DB7AB +:104B60009EB74C960FB6F8949EBF0FBE8DBF89EDD1 +:104B700091E00E94BA150E948A219093D6018093F9 +:104B8000D50108951F93CF93DF938091D501909124 +:104B9000D6010E949621AC019091D801992321F071 +:104BA0002091130130E006C0209114018AE0289F73 +:104BB000900111244217530708F486C08091DA014E +:104BC000C091DB01D091DC011091DD01811107C0A2 +:104BD000C11176C0D11174C0111172C075C09F3F50 +:104BE00019F09F5F9093D801181624F40E94C623F1 +:104BF0008093DA018091DA0187FF05C00E94C62305 +:104C000081958093DA011C1624F40E94C6238093B8 +:104C1000DB018091DB0187FF05C00E94C6238195DF +:104C20008093DB016091DA01662339F1C091DB01E9 +:104C3000CC2319F1772767FD7095872F972F0E9456 +:104C4000F82C23E333E343E35FE30E945C2D0E94EF +:104C5000C52C6093DA016C2F772767FD7095872F3D +:104C6000972F0E94F82C23E333E343E35FE30E9492 +:104C70005C2D0E94C52C6093DB011D1624F40E945C +:104C80000F248093DC018091DC0187FF05C00E9426 +:104C90000F2481958093DC01111624F40E940F24C7 +:104CA0008093DD018091DD0187FF05C00E940F2404 +:104CB00081958093DD01DF91CF911F910C94352573 +:104CC0009F3F09F08ECF96CFDF91CF911F9108952E +:104CD000E9EDF1E085E0DF011D928A95E9F7109298 +:104CE000D8011092D701089581EF96E00E943A070B +:104CF0001F9281E08F931F9285E08F9383EA96E065 +:104D00009F938F930E94D3070F900F900F900F9057 +:104D10000F900F9008958330E9F128F4813061F00D +:104D2000823009F10895853009F462C008F449C061 +:104D3000863009F474C0089580911401262F30E064 +:104D4000280F311D2F3F310524F4680F60931401A3 +:104D500003C08FEF80931401809114011F928F93F1 +:104D60008CED95E072C080911301262F30E0280F62 +:104D7000311D2F3F310524F4680F6093130103C0E8 +:104D80008FEF80931301809113011F928F938AEC10 +:104D900095E05BC080911201262F30E0280F311D75 +:104DA0002F3F310524F4680F6093120103C08FEF89 +:104DB00080931201809112011F928F9387EB95E0EF +:104DC00044C080911101262F30E0280F311D2F3F64 +:104DD000310524F4680F6093110103C08FEF8093B5 +:104DE0001101809111011F928F9382EA95E02DC0ED +:104DF00080911001262F30E0280F311D2F3F310503 +:104E000024F4680F6093100103C08FEF80931001AA +:104E1000809110011F928F9389E895E016C08091D0 +:104E20000F01262F30E0280F311D2F3F310524F4CC +:104E3000680F60930F0103C08FEF80930F01809183 +:104E40000F011F928F938EE695E09F938F930E94A0 +:104E5000D3070F900F900F900F900895833081F13A +:104E600028F4813059F08230D1F00895853009F46A +:104E700049C0B8F1863009F456C0089580911401F4 +:104E8000681720F4861B8093140102C0109214014D +:104E9000809114011F928F938FE595E054C080910B +:104EA0001301681720F4861B8093130102C010922F +:104EB0001301809113011F928F938DE495E043C0FD +:104EC00080911201681720F4861B8093120102C0A2 +:104ED00010921201809112011F928F938AE395E044 +:104EE00032C080911101681720F4861B8093110154 +:104EF00002C010921101809111011F928F9385E2DF +:104F000095E021C080911001681720F4861B8093E2 +:104F1000100102C010921001809110011F928F9316 +:104F20008CE095E010C080910F01681720F4861B7B +:104F300080930F0102C010920F0180910F011F9208 +:104F40008F9381EF94E09F938F930E94D3070F90EC +:104F50000F900F900F900895CF93C82F1F928F93AB +:104F600086EF97E09F938F930E94D30781E090E0B4 +:104F7000A0E0B0E0BC01CD0104C0660F771F881F20 +:104F8000991FCA95D2F70E94F71D0F900F900F90AE +:104F90000F90CF910C94371ACF938B3109F40FC235 +:104FA00008F049C08E3009F41EC200F5873009F4BC +:104FB000E7C1A8F4863009F0A4C28091CF01817FB7 +:104FC0008E7F8093CF018EE699E00E943A0786E6B5 +:104FD0009DE00E943A0781E08093DF01CFC18830D5 +:104FE00009F45BC08B3009F4C5C18BC2813109F46F +:104FF00070C220F4803109F40AC283C2863109F4F8 +:1050000021C2893109F07DC28FE599E00E943A07FB +:1050100086E499E00E943A0780E199E00E943A070D +:1050200083EE98E00E943A078FE998E00E943A07E1 +:1050300084E798E0A1C1853309F45FC268F4873240 +:1050400009F45BC228F48E3108F45BC28D5156C25C +:10505000893209F452C255C2833438F48A3308F0D5 +:105060004AC2883309F486C14CC2833409F445C26C +:10507000883409F046C20E94371A8AE49DE00E94F3 +:105080003A079FEF23ED80E3915020408040E1F705 +:1050900000C000000E94E52171C18AE69DE00E94E7 +:1050A0003A0787EB9CE00E943A070E94AB231F92CD +:1050B0008F9384EB9CE09F938F930E94D30782EBA6 +:1050C0009CE00E943A070E94A223C82F8FE99CE02F +:1050D0000E943A071F92CF938AE99CE09F938F9397 +:1050E0000E94D30788E99CE00E943A078EE89CE082 +:1050F0000E943A078C2F81701F928F938BE89CE05F +:105100009F938F930E94D30789E89CE00E943A07FF +:105110008FE79CE00E943A07C1FB882780F91F9225 +:105120008F938CE79CE09F938F930E94D3078AE72D +:105130009CE00E943A078EE69CE00E943A07C2FB80 +:10514000882780F91F928F938BE69CE09F938F9323 +:105150000E94D30789E69CE00E943A0780E69CE023 +:105160000E943A07C3FBCC27C0F91F92CF938DE56D +:105170009CE09F938F930E94D3078BE59CE00E9455 +:105180003A070E94B423C82F87E49CE00E943A07A4 +:105190001F92CF9382E49CE09F938F930E94D3074A +:1051A00080E49CE00E943A0787E29CE00E943A0774 +:1051B0008C2F81701F928F9384E29CE09F938F933A +:1051C0000E94D3078DB79EB780960FB6F8949EBF06 +:1051D0000FBE8DBF82E29CE00E943A078BE09CE00C +:1051E0000E943A07C1FB882780F91F928F9388E0BD +:1051F0009CE09F938F930E94D30786E09CE00E94DF +:105200003A0784EF9BE00E943A07C2FB882780F9A7 +:105210001F928F9381EF9BE09F938F930E94D30700 +:105220008FEE9BE00E943A078DED9BE00E943A07CB +:10523000C3FB882780F91F928F938AED9BE09F9391 +:105240008F930E94D30788ED9BE00E943A078EEC73 +:105250009BE00E943A07C4FB882780F91F928F9336 +:105260008BEC9BE09F938F930E94D30789EC9BE08C +:105270000E943A0787EB9BE00E943A07C5FB88270C +:1052800080F91F928F9384EB9BE09F938F930E94F2 +:10529000D30782EB9BE00E943A0786E99BE00E94DD +:1052A0003A07C6FB882780F91F928F9383E99BE01A +:1052B0009F938F930E94D30781E99BE00E943A0756 +:1052C00089E89BE00E943A07C7FBCC27C0F91F92F0 +:1052D000CF9386E89BE09F938F930E94D30784E847 +:1052E0009BE00E943A070E94BD23C82F8DE69BE0F9 +:1052F0000E943A071F92CF9388E69BE09F938F937B +:105300000E94D3078DB79EB780960FB6F8949EBFC4 +:105310000FBE8DBF86E69BE00E943A078CE59BE0BE +:105320000E943A078C2F81701F928F9389E59BE032 +:105330009F938F930E94D30787E59BE00E943A07D3 +:105340008EE49BE00E943A07C6951F92CF938BE4B0 +:105350009BE09F938F930E94D30789E49BE00E9478 +:105360003A078DB79EB708960FB6F8949EBF0FBE4A +:105370008DBF04C085E999E00E943A07C1E0C6C02C +:105380008091CF01C82FC095C170C0FB80F9809378 +:10539000CF01CC2349F08EE39DE00E943A07809133 +:1053A000CF018660886048C081E39DE00E943A0793 +:1053B0008091CF01897F877F8093CF01DFCF90914C +:1053C000CF0191FBCC27C0F981E0C827892FC0FB12 +:1053D00081F98093CF01CC2319F084E29DE027C0AE +:1053E00086E19DE0C9CF9091CF0192FBCC27C0F917 +:1053F00081E0C827892FC0FB82F98093CF01CC239D +:1054000019F087E09DE013C087EF9CE0B5CF909145 +:10541000CF0193FBCC27C0F981E0C827892FC0FBBF +:1054200083F98093CF01CC2351F08BEE9CE00E9456 +:105430003A078091CF0181608093CF0167C08EEDE4 +:105440009CE09ACF86E698E00E943A070E94651594 +:105450001F928F938CE498E09F938F930E94D307C1 +:1054600080910B011F928F9385E398E09F938F9318 +:105470000E94D30780916C011F928F9382E298E083 +:105480009F938F930E94D30780910C011F928F935B +:105490008FE098E09F938F930E94D3078091D10172 +:1054A0009091D201A091D301B091D401BF93AF9359 +:1054B0009F938F938BEF97E09F938F930E94D307D7 +:1054C0008DB79EB746960FB6F8949EBF0FBE8DBFA0 +:1054D00055CF0E94371AC0910C0181E0C827C093B4 +:1054E0000C01CC2329F084ED9CE00E943A070EC009 +:1054F00089EC9CE041CF895301C080E00E94AC2739 +:105500003DCF87EC9CE00E943A07C0E08C2FCF9102 +:10551000089580E0089580E00895CF93C82F80918A +:10552000DF01813071F020F0823009F44BC042C1BC +:10553000E0910D01F0910E018081823209F03CC1B1 +:1055400007C0E0910D01F0910E018081823261F47B +:105550008C2F0E94892A811104C08C2F0E94CC2795 +:105560002FC081E090E02CC08C2F0E948B2A8111EB +:1055700026C0C431E1F070F4CB3081F0C031D1F4F9 +:105580000E9474268EEE97E00E943A0782E0809394 +:10559000DF0115C0C93259F0C83361F48EE699E0D5 +:1055A0000E943A0782EF97E00E943A0708C01092E3 +:1055B000DF0104C18CEE97E00E943A07FFC081E052 +:1055C0008170FEC0C43228F5CE3108F0C1C0CB30A6 +:1055D000A1F1D0F4C73009F0D3C08EE1809314015B +:1055E00082E3809313018AE08093120184E1809327 +:1055F000110188E08093100188E280930F0182E915 +:1056000096E00E943A07BFC0C33149F1C431C1F0EE +:10561000B7C0CB3409F4A9C028F4C93289F0C83323 +:1056200061F0AEC0C13509F49EC0C23509F499C01D +:10563000CE3409F0A5C06AE09EC00E947426A3C0C3 +:105640008091DE01882319F01092DE019CC08FE961 +:1056500096E00E943A0781E08093DF01B1C089E7BC +:1056600096E00E943A0787E696E00E943A0780910A +:1056700014011F928F9384E696E09F938F930E946C +:10568000D30782E696E00E943A0780E596E00E9402 +:105690003A07809113011F928F938DE496E09F93B8 +:1056A0008F930E94D3078BE496E00E943A078CE325 +:1056B00096E00E943A07809112011F928F9389E32E +:1056C00096E09F938F930E94D30787E396E00E9412 +:1056D0003A0786E296E00E943A07809111011F92F4 +:1056E0008F9383E296E09F938F930E94D30781E28A +:1056F00096E00E943A078CE096E00E943A0780917B +:1057000010011F928F9389E096E09F938F930E94E0 +:10571000D30787E096E00E943A0780EF95E00E9469 +:105720003A0780910F011F928F938DEE95E09F9322 +:105730008F930E94D3078BEE95E00E943A078DB7B6 +:105740009EB748960FB6F8949EBF0FBE8DBF1BC084 +:10575000CE51EC2FF0E0E85CFE4F80818093DE01BB +:1057600012C061E003C061E006C06AE08091DE0122 +:105770000E948B2608C08091DE010E942E2703C064 +:1057800080E996E013C08091DE01882369F01F92C2 +:105790008F938AE896E09F938F930E94D3070F9090 +:1057A0000F900F900F9004C087E896E00E943A0790 +:1057B00081E006C01092DF0180E002C080E000CFEF +:1057C000CF9108950E949723811102C00E947823EF +:1057D0000E94BD238093EE0180FF02C0869501C028 +:1057E00080E00C94FA078091EE01982F9695292F6E +:1057F00030E0233031054CF49F5F990F8170892B85 +:1058000081608093EE010E94C1238091CF0180FFCF +:105810000FC08091EE0186951F928F9387EB9DE0DC +:105820009F938F930E94D3070F900F900F900F902C +:105830008091EE0186950C94FA078091EE01982FE5 +:10584000969591F09158990F8170892B8093EE0174 +:105850008E7F91E009F490E08091EE0190FB80F959 +:105860008093EE010E94C1238091CF0180FF0FC081 +:105870008091EE0186951F928F938FE99DE09F9313 +:105880008F930E94D3070F900F900F900F908091ED +:10589000EE0186950C94FA078091EE01982F909571 +:1058A00090FB80F98093EE010E94C1238091CF018B +:1058B00080FF0FC08091EE0181701F928F9389E865 +:1058C0009DE09F938F930E94D3070F900F900F90AE +:1058D0000F908091EE0180FF02C0869501C080E0AC +:1058E0000C94FA079091EE01892F86958F5F8F7740 +:1058F0009170843028F4880F892B8093EE0102C0C8 +:105900009093EE018091EE018E7F91E009F490E09A +:105910008091EE0190FB80F98093EE010E94C123FB +:105920008091CF0180FF0FC08091EE0186951F927C +:105930008F9385E79DE09F938F930E94D3070F90ED +:105940000F900F900F908091EE0186950C94FA07BE +:105950002091EE01922F96958927982F990F822FEB +:105960008170892B8093EE018E7F91E009F490E0A5 +:105970008091EE0190FB80F98093EE010E94C1239B +:105980008091EE0186950C94FA0704D06894B111C9 +:105990008DC0089570D088F09F5790F0B92F992747 +:1059A000B751A0F0D1F0660F771F881F991F1AF02A +:1059B000BA95C9F712C0B13081F077D0B1E008953F +:1059C00074C0672F782F8827B85F39F0B93FCCF3C0 +:1059D000869577956795B395D9F73EF49095809520 +:1059E000709561957F4F8F4F9F4F0895E89409C040 +:1059F00097FB3EF490958095709561957F4F8F4F02 +:105A00009F4F9923A9F0F92F96E9BB279395F69517 +:105A1000879577956795B795F111F8CFFAF4BB0F95 +:105A200011F460FF1BC06F5F7F4F8F4F9F4F16C0F9 +:105A3000882311F096E911C0772321F09EE8872F83 +:105A4000762F05C0662371F096E8862F70E060E03F +:105A50002AF09A95660F771F881FDAF7880F9695B8 +:105A6000879597F9089557FD9058440F551F59F0A1 +:105A70005F3F71F04795880F97FB991F61F09F3F3B +:105A800079F087950895121613061406551FF2CF64 +:105A90004695F1DF08C0161617061806991FF1CFB4 +:105AA00086957105610508940895E894BB276627DB +:105AB0007727CB0197F908950BD078C069D028F0EB +:105AC0006ED018F0952309F05AC05FC01124EECFB4 +:105AD000CADFA0F3959FD1F3950F50E0551F629F49 +:105AE000F001729FBB27F00DB11D639FAA27F00D37 +:105AF000B11DAA1F649F6627B00DA11D661F829F5E +:105B00002227B00DA11D621F739FB00DA11D621F42 +:105B1000839FA00D611D221F749F3327A00D611D5F +:105B2000231F849F600D211D822F762F6A2F112441 +:105B30009F5750408AF0E1F088234AF0EE0FFF1F94 +:105B4000BB1F661F771F881F91505040A9F79E3FCB +:105B5000510570F014C0AACF5F3FECF3983EDCF320 +:105B6000869577956795B795F795E7959F5FC1F708 +:105B7000FE2B880F911D9695879597F9089597F9B3 +:105B80009F6780E870E060E008959FEF80EC0895E3 +:105B900000240A941616170618060906089500240C +:105BA0000A9412161306140605060895092E039486 +:105BB000000C11F4882352F0BB0F40F4BF2B11F4FA +:105BC00060FF04C06F5F7F4F8F4F9F4F0895991BF9 +:105BD00079E004C0991F961708F0961B881F7A95E4 +:105BE000C9F78095089597FB072E16F4009407D007 +:105BF00077FD09D00E940D2E07FC05D03EF490954C +:105C000081959F4F0895709561957F4F0895EE0F90 +:105C1000FF1F0590F491E02D0994AA1BBB1B51E1D5 +:105C200007C0AA1FBB1FA617B70710F0A61BB70B0C +:105C3000881F991F5A95A9F780959095BC01CD01B1 +:105C40000895F999FECF92BD81BDF89A992780B544 +:105C50000895A8E1B0E042E050E00C94492E262FD0 +:105C6000F999FECF92BD81BDF89A019700B4021652 +:105C700039F01FBA20BD0FB6F894FA9AF99A0FBE00 +:105C800008950196272F0E94302E0C942F2EDC01B0 +:105C9000CB01FC01F999FECF06C0F2BDE1BDF89A37 +:105CA000319600B40D9241505040B8F70895F894E1 +:025CB000FFCF24 +:105CB200FFA20D930E700E3C0E080E0101BC0128CE +:105CC20008140A321E031323330F1F4F5F6F7F3FE7 +:105CD2004D362039DD0390035A033A03010374025F +:105CE2008D02A602BF02DF020102030405060708B5 +:025CF2000900A7 +:00000001FF diff --git a/keyboards/arrow_pad/keymaps/default/keymap.c b/keyboards/arrow_pad/keymaps/default/keymap.c new file mode 100644 index 000000000..5647f75af --- /dev/null +++ b/keyboards/arrow_pad/keymaps/default/keymap.c @@ -0,0 +1,163 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "arrow_pad.h" +#include "led.h" + +// This is the 21-key keypad to 2x11 element matrix mapping +#define KEYMAP( \ + KM_ESC, KM_TAB, KM_BSL, KM_ARR, \ + KM_NUM, KM_FSL, KM_AST, KM_MIN, \ + KM___7, KM___8, KM___9, KM_EQU, \ + KM___4, KM___5, KM___6, KM_PLS, \ + KM___1, KM___2, KM___3, ___ENT, \ + KM___0, _____0, KM_DOT, KM_ENT \ +) { \ + { KM_ESC, KM_TAB, KM_BSL, KM_ARR }, \ + { KM_NUM, KM_FSL, KM_AST, KM_MIN }, \ + { KM___7, KM___8, KM___9, KM_EQU }, \ + { KM___4, KM___5, KM___6, KM_PLS }, \ + { KM___1, KM___2, KM___3, KC_NO }, \ + { KM___0, KC_NO, KM_DOT, KM_ENT } \ +} + +#define LAYER_BASE 0 +#define LAYER_EDIT 1 +#define LAYER_FUNCTION 2 + +#define MACRO_COPY_CUT 0 +#define MACRO_SHIFT_CONTROL 1 +#define MACRO_CONTROL_ALT 2 + +#define M_COPY KC_FN5 +#define M_SHFCT KC_FN6 +#define M_CTALT KC_FN7 + +#define SC_UNDO LCTL(KC_Z) +#define SC_REDO LCTL(KC_Y) +#define SC_CUT LCTL(KC_X) +#define SC_COPY LCTL(KC_C) +#define SC_PSTE LCTL(KC_V) +#define SC_SELA LCTL(KC_A) +#define SC_SAVE LCTL(KC_S) +#define SC_OPEN LCTL(KC_O) +#define SC_ACLS LALT(KC_F4) +#define SC_CCLS LCTL(KC_F4) + +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[LAYER_BASE] = KEYMAP( \ + KC_ESC, KC_TAB, KC_BSLS, KC_FN0, \ + KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ + KC_P7, KC_P8, KC_P9, KC_PEQL, \ + KC_P4, KC_P5, KC_P6, KC_PPLS, \ + KC_P1, KC_P2, KC_P3, XXXXXXX, \ + KC_P0, KC_PCMM, KC_PDOT, KC_PENT ), + +[LAYER_EDIT] = KEYMAP( \ + KC_ESC, KC_TAB, KC_SPC, _______, \ + KC_FN1, SC_PSTE, SC_REDO, SC_UNDO, \ + KC_HOME, KC_UP, KC_PGUP, KC_LALT, \ + KC_LEFT, M_COPY, KC_RGHT, KC_LCTL, \ + KC_END, KC_DOWN, KC_PGDN, XXXXXXX, \ + KC_BSPC, KC_PENT, KC_DEL, M_SHFCT), + +[LAYER_FUNCTION] = KEYMAP( \ + KC_FN2, KC_FN3, KC_FN4, _______, \ + KC_FN1, _______, _______, _______, \ + _______, _______, _______, _______, \ + _______, _______, _______, _______, \ + _______, _______, _______, XXXXXXX, \ + RESET, _______, _______, _______ ), + +}; + + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(LAYER_FUNCTION), + [1] = ACTION_LAYER_TOGGLE(LAYER_EDIT), + [2] = ACTION_BACKLIGHT_TOGGLE(), + [3] = ACTION_BACKLIGHT_INCREASE(), + [4] = ACTION_BACKLIGHT_DECREASE(), + [5] = ACTION_MACRO_TAP(MACRO_COPY_CUT), + [6] = ACTION_MACRO_TAP(MACRO_SHIFT_CONTROL), + [7] = ACTION_MACRO_TAP(MACRO_CONTROL_ALT), + +}; + + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) +{ +} + + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch (id) { + + case MACRO_COPY_CUT: + if (record->event.pressed) { + register_code(KC_LCTL); + if (record->tap.count == 1) { + register_code(KC_C); + unregister_code(KC_C); + } + else if (record->tap.count == 2) { + register_code(KC_X); + unregister_code(KC_X); + } + unregister_code(KC_LCTL); + } + break; + + case MACRO_SHIFT_CONTROL: + if (record->event.pressed) { + if (record->tap.count <= 2) register_mods(MOD_BIT(KC_LSFT)); + if (record->tap.count == 2) register_mods(MOD_BIT(KC_LCTL)); + if (record->tap.count == 3) register_code(KC_PENT);; + } + else { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_LCTL)); + unregister_code(KC_PENT); + } + break; + + case MACRO_CONTROL_ALT: + if (record->event.pressed) { + if (record->tap.count < 2) register_mods(MOD_BIT(KC_LCTL)); + if (record->tap.count >= 2) register_mods(MOD_BIT(KC_LALT)); + } + else { + unregister_mods(MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT)); + } + break; + } + + return MACRO_NONE; +} + +void led_set_user(uint8_t usb_led) +{ + if (usb_led & (1< + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x4097 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Nobody +#define PRODUCT Arrow Pad 21 +#define DESCRIPTION 21-Key QMK Assistant + +/* key matrix size */ +#define MATRIX_ROWS 2 +#define MATRIX_COLS 11 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { D3, D5 } +#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, B6, B5, B4, D7, D4 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +//#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +//#define LOCKING_RESYNC_ENABLE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/arrow_pad/keymaps/pad_21/keymap.c b/keyboards/arrow_pad/keymaps/pad_21/keymap.c new file mode 100644 index 000000000..28917a5d9 --- /dev/null +++ b/keyboards/arrow_pad/keymaps/pad_21/keymap.c @@ -0,0 +1,160 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "arrow_pad.h" +#include "led.h" + +// This is the 21-key keypad to 2x11 element matrix mapping +#define KEYMAP( \ + KM_ESC, KM_TAB, KM_BSL, KM_ARR, \ + KM_NUM, KM_FSL, KM_AST, KM_MIN, \ + KM___7, KM___8, KM___9, ___PLS, \ + KM___4, KM___5, KM___6, KM_PLS, \ + KM___1, KM___2, KM___3, ___ENT, \ + KM___0, _____0, KM_DOT, KM_ENT \ +) { \ + { KM_ESC, KM_TAB, KM_BSL, KM_ARR, KM___7, KM___8, KM___9, KM_PLS, KM___1, KM___2, KM___3, }, \ + { KM_NUM, KM_FSL, KM_AST, KM_MIN, KM___4, KM___5, KM___6, KM_ENT, KC_NO, KM___0, KM_DOT, }, \ +} + + +#define LAYER_BASE 0 +#define LAYER_EDIT 1 +#define LAYER_FUNCTION 2 + +#define MACRO_COPY_CUT 0 +#define MACRO_SHIFT_CONTROL 1 +#define MACRO_CONTROL_ALT 2 + +#define M_COPY KC_FN5 +#define M_SHFCT KC_FN6 +#define M_CTALT KC_FN7 + +#define SC_UNDO LCTL(KC_Z) +#define SC_REDO LCTL(KC_Y) +#define SC_CUT LCTL(KC_X) +#define SC_COPY LCTL(KC_C) +#define SC_PSTE LCTL(KC_V) +#define SC_SELA LCTL(KC_A) +#define SC_SAVE LCTL(KC_S) +#define SC_OPEN LCTL(KC_O) +#define SC_ACLS LALT(KC_F4) +#define SC_CCLS LCTL(KC_F4) + +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[LAYER_BASE] = KEYMAP( \ + KC_ESC, KC_TAB, KC_BSLS, KC_FN0, \ + KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ + KC_P7, KC_P8, KC_P9, XXXXXXX, \ + KC_P4, KC_P5, KC_P6, KC_PPLS, \ + KC_P1, KC_P2, KC_P3, XXXXXXX, \ + KC_P0, XXXXXXX, KC_PDOT, KC_PENT ), + +[LAYER_EDIT] = KEYMAP( \ + KC_ESC, KC_TAB, KC_SPC, _______, \ + KC_FN1, SC_PSTE, SC_REDO, SC_UNDO, \ + KC_HOME, KC_UP, KC_PGUP, XXXXXXX, \ + KC_LEFT, M_COPY, KC_RGHT, M_CTALT, \ + KC_END, KC_DOWN, KC_PGDN, XXXXXXX, \ + KC_BSPC, XXXXXXX, KC_DEL, M_SHFCT), + +[LAYER_FUNCTION] = KEYMAP( \ + KC_FN2, KC_FN3, KC_FN4, _______, \ + KC_FN1, _______, _______, _______, \ + _______, _______, _______, XXXXXXX, \ + _______, _______, _______, _______, \ + _______, _______, _______, XXXXXXX, \ + RESET, XXXXXXX, _______, _______ ), + +}; + + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(LAYER_FUNCTION), + [1] = ACTION_LAYER_TOGGLE(LAYER_EDIT), + [2] = ACTION_BACKLIGHT_TOGGLE(), + [3] = ACTION_BACKLIGHT_INCREASE(), + [4] = ACTION_BACKLIGHT_DECREASE(), + [5] = ACTION_MACRO_TAP(MACRO_COPY_CUT), + [6] = ACTION_MACRO_TAP(MACRO_SHIFT_CONTROL), + [7] = ACTION_MACRO_TAP(MACRO_CONTROL_ALT), + +}; + + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) +{ +} + + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch (id) { + + case MACRO_COPY_CUT: + if (record->event.pressed) { + register_code(KC_LCTL); + if (record->tap.count == 1) { + register_code(KC_C); + unregister_code(KC_C); + } + else if (record->tap.count == 2) { + register_code(KC_X); + unregister_code(KC_X); + } + unregister_code(KC_LCTL); + } + break; + + case MACRO_SHIFT_CONTROL: + if (record->event.pressed) { + if (record->tap.count <= 2) register_mods(MOD_BIT(KC_LSFT)); + if (record->tap.count == 2) register_mods(MOD_BIT(KC_LCTL)); + if (record->tap.count == 3) register_code(KC_PENT);; + } + else { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_LCTL)); + unregister_code(KC_PENT); + } + break; + + case MACRO_CONTROL_ALT: + if (record->event.pressed) { + if (record->tap.count < 2) register_mods(MOD_BIT(KC_LCTL)); + if (record->tap.count >= 2) register_mods(MOD_BIT(KC_LALT)); + } + else { + unregister_mods(MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT)); + } + break; + } + + return MACRO_NONE; +} + +void led_set_user(uint8_t usb_led) +{ + if (usb_led & (1< + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x4096 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Nobody +#define PRODUCT Arrow Pad 24 +#define DESCRIPTION 24-Key QMK Assistant + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 4 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { F0, F1, F4, F5, F6, F7 } +#define MATRIX_COL_PINS { B0, B1, B2, B3 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +//#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +//#define LOCKING_RESYNC_ENABLE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/arrow_pad/keymaps/pad_24/keymap.c b/keyboards/arrow_pad/keymaps/pad_24/keymap.c new file mode 100644 index 000000000..5647f75af --- /dev/null +++ b/keyboards/arrow_pad/keymaps/pad_24/keymap.c @@ -0,0 +1,163 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "arrow_pad.h" +#include "led.h" + +// This is the 21-key keypad to 2x11 element matrix mapping +#define KEYMAP( \ + KM_ESC, KM_TAB, KM_BSL, KM_ARR, \ + KM_NUM, KM_FSL, KM_AST, KM_MIN, \ + KM___7, KM___8, KM___9, KM_EQU, \ + KM___4, KM___5, KM___6, KM_PLS, \ + KM___1, KM___2, KM___3, ___ENT, \ + KM___0, _____0, KM_DOT, KM_ENT \ +) { \ + { KM_ESC, KM_TAB, KM_BSL, KM_ARR }, \ + { KM_NUM, KM_FSL, KM_AST, KM_MIN }, \ + { KM___7, KM___8, KM___9, KM_EQU }, \ + { KM___4, KM___5, KM___6, KM_PLS }, \ + { KM___1, KM___2, KM___3, KC_NO }, \ + { KM___0, KC_NO, KM_DOT, KM_ENT } \ +} + +#define LAYER_BASE 0 +#define LAYER_EDIT 1 +#define LAYER_FUNCTION 2 + +#define MACRO_COPY_CUT 0 +#define MACRO_SHIFT_CONTROL 1 +#define MACRO_CONTROL_ALT 2 + +#define M_COPY KC_FN5 +#define M_SHFCT KC_FN6 +#define M_CTALT KC_FN7 + +#define SC_UNDO LCTL(KC_Z) +#define SC_REDO LCTL(KC_Y) +#define SC_CUT LCTL(KC_X) +#define SC_COPY LCTL(KC_C) +#define SC_PSTE LCTL(KC_V) +#define SC_SELA LCTL(KC_A) +#define SC_SAVE LCTL(KC_S) +#define SC_OPEN LCTL(KC_O) +#define SC_ACLS LALT(KC_F4) +#define SC_CCLS LCTL(KC_F4) + +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[LAYER_BASE] = KEYMAP( \ + KC_ESC, KC_TAB, KC_BSLS, KC_FN0, \ + KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ + KC_P7, KC_P8, KC_P9, KC_PEQL, \ + KC_P4, KC_P5, KC_P6, KC_PPLS, \ + KC_P1, KC_P2, KC_P3, XXXXXXX, \ + KC_P0, KC_PCMM, KC_PDOT, KC_PENT ), + +[LAYER_EDIT] = KEYMAP( \ + KC_ESC, KC_TAB, KC_SPC, _______, \ + KC_FN1, SC_PSTE, SC_REDO, SC_UNDO, \ + KC_HOME, KC_UP, KC_PGUP, KC_LALT, \ + KC_LEFT, M_COPY, KC_RGHT, KC_LCTL, \ + KC_END, KC_DOWN, KC_PGDN, XXXXXXX, \ + KC_BSPC, KC_PENT, KC_DEL, M_SHFCT), + +[LAYER_FUNCTION] = KEYMAP( \ + KC_FN2, KC_FN3, KC_FN4, _______, \ + KC_FN1, _______, _______, _______, \ + _______, _______, _______, _______, \ + _______, _______, _______, _______, \ + _______, _______, _______, XXXXXXX, \ + RESET, _______, _______, _______ ), + +}; + + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(LAYER_FUNCTION), + [1] = ACTION_LAYER_TOGGLE(LAYER_EDIT), + [2] = ACTION_BACKLIGHT_TOGGLE(), + [3] = ACTION_BACKLIGHT_INCREASE(), + [4] = ACTION_BACKLIGHT_DECREASE(), + [5] = ACTION_MACRO_TAP(MACRO_COPY_CUT), + [6] = ACTION_MACRO_TAP(MACRO_SHIFT_CONTROL), + [7] = ACTION_MACRO_TAP(MACRO_CONTROL_ALT), + +}; + + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) +{ +} + + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch (id) { + + case MACRO_COPY_CUT: + if (record->event.pressed) { + register_code(KC_LCTL); + if (record->tap.count == 1) { + register_code(KC_C); + unregister_code(KC_C); + } + else if (record->tap.count == 2) { + register_code(KC_X); + unregister_code(KC_X); + } + unregister_code(KC_LCTL); + } + break; + + case MACRO_SHIFT_CONTROL: + if (record->event.pressed) { + if (record->tap.count <= 2) register_mods(MOD_BIT(KC_LSFT)); + if (record->tap.count == 2) register_mods(MOD_BIT(KC_LCTL)); + if (record->tap.count == 3) register_code(KC_PENT);; + } + else { + unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_LCTL)); + unregister_code(KC_PENT); + } + break; + + case MACRO_CONTROL_ALT: + if (record->event.pressed) { + if (record->tap.count < 2) register_mods(MOD_BIT(KC_LCTL)); + if (record->tap.count >= 2) register_mods(MOD_BIT(KC_LALT)); + } + else { + unregister_mods(MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT)); + } + break; + } + + return MACRO_NONE; +} + +void led_set_user(uint8_t usb_led) +{ + if (usb_led & (1<.c` and see keymap document (you can find in top README.md) and existent keymap files. + +To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: +``` +$ make KEYMAP=[default|jack|] +``` +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboards/atomic/atomic.c b/keyboards/atomic/atomic.c new file mode 100644 index 000000000..fa218a48f --- /dev/null +++ b/keyboards/atomic/atomic.c @@ -0,0 +1,325 @@ +#include "atomic.h" + +__attribute__ ((weak)) +void matrix_init_user(void) { + // leave this function blank - it can be defined in a keymap file +}; + +__attribute__ ((weak)) +void matrix_scan_user(void) { + // leave this function blank - it can be defined in a keymap file +} + +__attribute__ ((weak)) +bool process_action_user(keyrecord_t *record) { + // leave this function blank - it can be defined in a keymap file + return true; +} + +__attribute__ ((weak)) +void led_set_user(uint8_t usb_led) { + // leave this function blank - it can be defined in a keymap file +} + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + MCUCR |= (1<= BACKLIGHT_LEVELS ) + { + // Turn on PWM control of PB7 + TCCR1A |= _BV(COM1C1); + + // Set the brightness to max + CHANNEL = 0xFFFF; + } + else + { + // Turn on PWM control of PB7 + TCCR1A |= _BV(COM1C1); + + // Set the brightness + CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); + } + breathing_intensity_default(); +} + + +void breathing_enable(void) +{ + if (get_backlight_level() == 0) + { + breathing_index = 0; + } + else + { + // Set breathing_index to be at the midpoint (brightest point) + breathing_index = 0x20 << breath_speed; + } + + breathing_halt = BREATHING_NO_HALT; + + // Enable breathing interrupt + TIMSK1 |= _BV(OCIE1A); +} + +void breathing_pulse(void) +{ + if (get_backlight_level() == 0) + { + breathing_index = 0; + } + else + { + // Set breathing_index to be at the midpoint + 1 (brightest point) + breathing_index = 0x21 << breath_speed; + } + + breathing_halt = BREATHING_HALT_ON; + + // Enable breathing interrupt + TIMSK1 |= _BV(OCIE1A); +} + +void breathing_disable(void) +{ + // Disable breathing interrupt + TIMSK1 &= ~_BV(OCIE1A); + backlight_set(get_backlight_level()); +} + +void breathing_self_disable(void) +{ + if (get_backlight_level() == 0) + { + breathing_halt = BREATHING_HALT_OFF; + } + else + { + breathing_halt = BREATHING_HALT_ON; + } + + //backlight_set(get_backlight_level()); +} + +void breathing_toggle(void) +{ + if (!is_breathing()) + { + if (get_backlight_level() == 0) + { + breathing_index = 0; + } + else + { + // Set breathing_index to be at the midpoint + 1 (brightest point) + breathing_index = 0x21 << breath_speed; + } + + breathing_halt = BREATHING_NO_HALT; + } + + // Toggle breathing interrupt + TIMSK1 ^= _BV(OCIE1A); + + // Restore backlight level + if (!is_breathing()) + { + backlight_set(get_backlight_level()); + } +} + +bool is_breathing(void) +{ + return (TIMSK1 && _BV(OCIE1A)); +} + +void breathing_intensity_default(void) +{ + //breath_intensity = (uint8_t)((uint16_t)100 * (uint16_t)get_backlight_level() / (uint16_t)BACKLIGHT_LEVELS); + breath_intensity = ((BACKLIGHT_LEVELS - get_backlight_level()) * ((BACKLIGHT_LEVELS + 1) / 2)); +} + +void breathing_intensity_set(uint8_t value) +{ + breath_intensity = value; +} + +void breathing_speed_default(void) +{ + breath_speed = 4; +} + +void breathing_speed_set(uint8_t value) +{ + bool is_breathing_now = is_breathing(); + uint8_t old_breath_speed = breath_speed; + + if (is_breathing_now) + { + // Disable breathing interrupt + TIMSK1 &= ~_BV(OCIE1A); + } + + breath_speed = value; + + if (is_breathing_now) + { + // Adjust index to account for new speed + breathing_index = (( (uint8_t)( (breathing_index) >> old_breath_speed ) ) & 0x3F) << breath_speed; + + // Enable breathing interrupt + TIMSK1 |= _BV(OCIE1A); + } + +} + +void breathing_speed_inc(uint8_t value) +{ + if ((uint16_t)(breath_speed - value) > 10 ) + { + breathing_speed_set(0); + } + else + { + breathing_speed_set(breath_speed - value); + } +} + +void breathing_speed_dec(uint8_t value) +{ + if ((uint16_t)(breath_speed + value) > 10 ) + { + breathing_speed_set(10); + } + else + { + breathing_speed_set(breath_speed + value); + } +} + +void breathing_defaults(void) +{ + breathing_intensity_default(); + breathing_speed_default(); + breathing_halt = BREATHING_NO_HALT; +} + +/* Breathing Sleep LED brighness(PWM On period) table + * (64[steps] * 4[duration]) / 64[PWM periods/s] = 4 second breath cycle + * + * http://www.wolframalpha.com/input/?i=%28sin%28+x%2F64*pi%29**8+*+255%2C+x%3D0+to+63 + * (0..63).each {|x| p ((sin(x/64.0*PI)**8)*255).to_i } + */ +static const uint8_t breathing_table[64] PROGMEM = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 4, 6, 10, + 15, 23, 32, 44, 58, 74, 93, 113, 135, 157, 179, 199, 218, 233, 245, 252, +255, 252, 245, 233, 218, 199, 179, 157, 135, 113, 93, 74, 58, 44, 32, 23, + 15, 10, 6, 4, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +}; + +ISR(TIMER1_COMPA_vect) +{ + // CHANNEL = (pgm_read_byte(&breathing_table[ ( (uint8_t)( (breathing_index++) >> breath_speed ) ) & 0x3F ] )) * breath_intensity; + + + uint8_t local_index = ( (uint8_t)( (breathing_index++) >> breath_speed ) ) & 0x3F; + + if (((breathing_halt == BREATHING_HALT_ON) && (local_index == 0x20)) || ((breathing_halt == BREATHING_HALT_OFF) && (local_index == 0x3F))) + { + // Disable breathing interrupt + TIMSK1 &= ~_BV(OCIE1A); + } + + CHANNEL = (uint16_t)(((uint16_t)pgm_read_byte(&breathing_table[local_index]) * 257)) >> breath_intensity; + +} + + + +#endif \ No newline at end of file diff --git a/keyboards/atomic/atomic.h b/keyboards/atomic/atomic.h new file mode 100644 index 000000000..901761f51 --- /dev/null +++ b/keyboards/atomic/atomic.h @@ -0,0 +1,49 @@ +#ifndef ATOMIC_H +#define ATOMIC_H + +#include "quantum.h" +#include +#include +#include + +// This a shortcut to help you visually see your layout. +// The following is an example using the Planck MIT layout +// The first section contains all of the arguements +// The second converts the arguments into a two-dimensional array +#define KEYMAP_SEMI_STANDARD( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3C, K3D, K3E, \ + K40, K41, K43, K46, K4A, K4B, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KC_NO, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, KC_NO, K3C, K3D, K3E }, \ + { K40, K41, KC_NO, K43, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E } \ +} + +void matrix_init_user(void); +void matrix_scan_user(void); +bool process_action_user(keyrecord_t *record); +void led_set_user(uint8_t usb_led); +void backlight_init_ports(void); + +void breathing_enable(void); +void breathing_pulse(void); +void breathing_disable(void); +void breathing_self_disable(void); +void breathing_toggle(void); +bool is_breathing(void); + + +void breathing_defaults(void); +void breathing_intensity_default(void); +void breathing_speed_default(void); +void breathing_speed_set(uint8_t value); +void breathing_speed_inc(uint8_t value); +void breathing_speed_dec(uint8_t value); + + +#endif \ No newline at end of file diff --git a/keyboards/atomic/config.h b/keyboards/atomic/config.h new file mode 100644 index 000000000..bf9550e94 --- /dev/null +++ b/keyboards/atomic/config.h @@ -0,0 +1,158 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Ortholinear Keyboards +#define PRODUCT The Atomic Keyboard +#define DESCRIPTION A compact ortholinear keyboard + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { D0, D5, B5, B6, C6 } +#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7, D3, D2, D1 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +#define MAGIC_KEY_BOOTLOADER B +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/atomic/keymaps/abienz.c b/keyboards/atomic/keymaps/abienz.c new file mode 100644 index 000000000..589a64dc4 --- /dev/null +++ b/keyboards/atomic/keymaps/abienz.c @@ -0,0 +1,36 @@ +#include "atomic.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = { /* Colemak */ + { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NO }, + { KC_TAB, CM_Q, CM_W, CM_F, CM_P, CM_G, CM_J, CM_L, CM_U, CM_Y, CM_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL }, + { KC_BSPC, CM_A, CM_R, CM_S, CM_T, CM_D, CM_H, CM_N, CM_E, CM_I, CM_O, KC_QUOT, KC_ENT, KC_NO, KC_PGUP }, + { KC_LSFT, CM_Z, CM_X, CM_C, CM_V, CM_B, CM_K, CM_M, CM_COMM, CM_DOT, CM_SLSH, KC_RSFT, KC_NO, KC_UP, KC_PGDN }, + { KC_LCTL, KC_LGUI, KC_NO, KC_LALT, FUNC(1), KC_SPC, KC_NO, KC_RALT, FUNC(2), KC_RGUI, KC_NO, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, + }, + [1] = { /* function */ + { KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, KC_NO }, + { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS }, + { KC_TRNS, KC_TRNS, KC_TRNS, KC_SLEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS }, + { KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MPLY }, + { KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, FUNC(1), KC_TRNS, KC_NO, KC_TRNS, FUNC(2), KC_TRNS, KC_NO, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT }, + } +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(1), + [2] = ACTION_LAYER_MOMENTARY(1), + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + return MACRODOWN(TYPE(KC_T), END); + break; + } + return MACRO_NONE; +}; + diff --git a/keyboards/atomic/keymaps/default/compiled.hex b/keyboards/atomic/keymaps/default/compiled.hex new file mode 100644 index 000000000..b9bb143ea --- /dev/null +++ b/keyboards/atomic/keymaps/default/compiled.hex @@ -0,0 +1,1118 @@ +:100000000C942A030C946E030C946E030C946E03F0 +:100010000C946E030C946E030C946E030C946E039C +:100020000C946E030C946E030C946A0D0C943C0EAD +:100030000C94531B0C946E030C946E030C946E037F +:100040000C946E030C94D6030C946E030C946E0304 +:100050000C946E030C94BB1B0C946E030C946E03F7 +:100060000C946E030C946E030C946E030C946E034C +:100070000C946E030C946E030C946E030C946E033C +:100080000C946E030C946E030C946E030C946E032C +:100090000C946E030C946E030C946E030C946E031C +:1000A0000C946E030C946E030C946E03A90ECB0E8D +:1000B000B90FCB0EB90F100F330FB90F880F9B0F6D +:1000C00085128512B412B412F31213136914691451 +:1000D0001E136914CE13CE1335143E146914631421 +:1000E000DB13DB13DB13DB13DB13DB13DB13DB13A0 +:1000F000DB13DB13DB13DB13DB13DB13DB13DB1390 +:10010000EB13F91300140714111400000000000091 +:100110000000000000010204060A0F17202C3A4AD2 +:100120005D71879DB3C7DAE9F5FCFFFCF5E9DAC735 +:10013000B39D87715D4A3A2C20170F0A060402010D +:100140000000000000000000000035001E001F003D +:100150002000210022002300240025002600270083 +:100160002D002E002A002A002B0014001A0008007F +:10017000150017001C0018000C00120013002F00BF +:10018000300031004C00290004001600070009006F +:100190000A000B000D000E000F0033003400280091 +:1001A00028004B00E1001D001B000600190005009F +:1001B00011001000360037003800E500E50052005D +:1001C0004E000030E000E200E30004512C002C005F +:1001D0000351E700E600E4000551500051004F00D4 +:1001E00035001E001F0020002100220023002400F3 +:1001F0002500260027002D002E002A002A002B00B3 +:1002000014001A00090013000A000D000F00180066 +:100210001C0033002F00300031004C002900040086 +:1002200015001600170007000B00110008000C0055 +:1002300012003400280028004B00E1001D001B00C4 +:100240000600190005000E001000360037003800C7 +:10025000E500E50052004E000030E000E200E3005F +:1002600004512C002C000351E700E600E400055186 +:10027000500051004F0035001E001F0020002100DB +:100280002200230024002500260027002D002E0038 +:100290002A002A002B0034003600370013001C000F +:1002A00009000A00060015000F002F003000310081 +:1002B0004C00290004001200080018000C00070080 +:1002C0000B001700110016003800280028004B0012 +:1002D000E100330014000D000E001B0005001000AB +:1002E0001A0019001D00E500E50052004E00003024 +:1002F000E000E200E30004512C002C000351E70071 +:10030000E600E4000551500051004F0001003A00A2 +:100310003B003C003D003E003F00400041004200E9 +:100320004300440045000100010001001E021F02BD +:100330002002210222022302240225022602270291 +:10034000010001000100490001003A003B003C00AF +:100350003D003E003F002D022E022F0230023102EE +:100360000100010001000100400041004200430083 +:1003700044004500010001000100010001000100EE +:100380000100010001000100010001000100010065 +:100390000100010001000100010001000100010055 +:1003A000010001003A003B003C003D003E003F00E0 +:1003B00040004100420043004400450001000100AC +:1003C00001001E001F002000210022002300240045 +:1003D000250026002700010001000100490001005E +:1003E0003A003B003C003D003E003F002D002E0047 +:1003F0002F00300031000100010001000100400029 +:10040000410042004300440045000100010001009A +:1004100001000100010001000100010001000100D4 +:1004200001000100010001000100010001000100C4 +:10043000010001000100010053003A003B003C00B4 +:100440003D003E003F0040004100420043004400A8 +:100450004500010001004700680069006A006B0068 +:100460006C006D006E006F00700071007200730010 +:10047000480046003900F800F700F600F500FD00DE +:10048000FF00AB00AA00A900AE00010001000100BE +:10049000F900010001000052015202520100010066 +:1004A000010001000100010001000100F000FA005C +:1004B00001000100010001000100F400F40001004E +:1004C0000100010001000100F200F100F300280327 +:1004D0005400680065002000410074006F006D004A +:1004E0006900630020004B006500790062006F0026 +:1004F00061007200640000002C034F007200740061 +:1005000068006F006C0069006E0065006100720099 +:1005100020004B006500790062006F0061007200EE +:10052000640073000000040309040902540003017D +:1005300000A0FA09040000010301010009211101D2 +:1005400000012240000705810308000A0904010098 +:100550000103010200092111010001224D000705DC +:10056000820308000A0904020001030000000921B7 +:10057000110100012236000705830308000A120159 +:10058000100100000008EDFE6060010001020001A2 +:1005900005010980A101850216010026B7001A0194 +:1005A000002AB700751095018100C0050C0901A152 +:1005B000018503160100269C021A01002A9C02757F +:1005C0001095018100C005010902A1010901A100E6 +:1005D00005091901290515002501950575018102F7 +:1005E0009501750381010501093009311581257FC8 +:1005F00095027508810609381581257F95017508D2 +:100600008106050C0A38021581257F950175088140 +:1006100006C0C005010906A101050719E029E71573 +:100620000025019508750181029501750881010574 +:100630000819012905950575019102950175039128 +:10064000010507190029FF150026FF00950675080A +:100650008100C00011241FBECFEFDAE0DEBFCDBFA6 +:1006600004B603FE24C08091F0019091F101A091A5 +:10067000F201B091F3018730904BA740B04BB9F431 +:100680001092F0011092F1011092F2011092F30118 +:1006900014BE84B7877F84BF88E10FB6F894809337 +:1006A0006000109260000FBEE0E0F8E3099511E0F1 +:1006B000A0E0B1E0EEE7F5E402C005900D92A234AF +:1006C000B107D9F711E0A2E4B1E001C01D92A03F4B +:1006D000B107E1F70E94B40A0C94BD220C9400000B +:1006E0000895089581E0089508950C9471030C9481 +:1006F00072030C9474030E94332123E030E0281B22 +:100700003109220F209346010895282F2F988091B8 +:100710008000211108C0877F8093800010928D0097 +:1007200010928C001BC0886080938000233018F0EA +:100730008FEF9FEF0FC083E090E0821B9109880F3D +:10074000991F2FEF3FEFA90102C0569547958A9553 +:10075000E2F7CA0190938D0080938C000C947B0388 +:100760000E947B0384E0809345011092420108952A +:10077000279A2F988FEF9FEF9093870080938600A2 +:100780008AE08093800089E1809381000E949C2010 +:100790000C94B00385B7806885BF85B7806885BF36 +:1007A0000E94B8036E9A769A0C9470031F920F926F +:1007B0000FB60F9211242F933F938F939F93EF9334 +:1007C000FF93E0914301F0914401CF010196909392 +:1007D0004401809343010090450102C0F695E795DE +:1007E0000A94E2F7EF7380914201823019F4E0320B +:1007F00051F404C0813039F4EF3329F480916F0053 +:100800008D7F80936F00F0E0E65FFE4FE49121E082 +:1008100031E0E29FC001E39F900D1124009046015A +:1008200002C0969587950A94E2F790938D00809385 +:100830008C00FF91EF919F918F913F912F910F909D +:100840000FBE0F901F90189561110DC0FC018281A1 +:10085000882331F085EE0E9429110E94F32003C005 +:1008600085EE0E94F11180E090E0089581E0089506 +:100870000C94360408950F931F93CF93DF938C014C +:10088000FC01C081D181CE010E94CD19BE010E9420 +:100890006C07EC01B8010E943804882309F470C188 +:1008A000F8018281882309F45BC080915201811193 +:1008B0001FC0C431F0E7DF0709F00AC10E943A0403 +:1008C00081E0809352010E94851B90935101809397 +:1008D00050011092490110924B0110924A0110925E +:1008E0004D0110924C0110924F0110924E0148C1DF +:1008F00080915001909151010E94911B883C91057B +:1009000070F480914901E82FF0E0EE0FFF1FE65BE5 +:10091000FE4FD183C0838F5F8093490131C1C431C1 +:1009200020E7D20708F024C1C23080E7D80710F5CD +:10093000C11590E7D90709F0DAC0F8018281882350 +:1009400009F4BFC00E94D414FFEF24E38CE0F150FF +:1009500020408040E1F700C000000E94E01B10C171 +:10096000C431F0E7DF0708F0CFC0C23020E7D2077C +:1009700008F49BC0F8018281882309F4A2C00E9478 +:100980003A1C811102C00E941B1C0E944D1C90E069 +:100990009093E1018093E001C230F0E7DF0721F49A +:1009A0008091E00181607AC0C33020E7D20721F452 +:1009B0008091E001826072C0C43080E7D80721F4E2 +:1009C0008091E00184606AC0C53090E7D90719F4CE +:1009D0008091E00127C0C630E0E7DE0721F4809176 +:1009E000E00180615BC0C730F0E7DF0721F4809150 +:1009F000E001806253C0C83020E7D20721F4809123 +:100A0000E00180644BC0C93080E7D80721F48091B1 +:100A1000E001806843C0CA3090E7D90729F480918B +:100A2000E001846088603AC0CB30E0E7DE0721F463 +:100A30008091E0018E7F32C0CC30F0E7DF0721F4F7 +:100A40008091E0018D7F2AC0CD3020E7D20721F4CC +:100A50008091E0018B7F22C0CE3080E7D80719F467 +:100A60008091E0011AC08091E001CF3090E7D90772 +:100A700011F48F7E13C0C031E0E7DE0711F48F7DE3 +:100A80000DC0C131F0E7DF0711F48F7B07C0C23121 +:100A9000D04711F48F7702C08B7F877F8093E0016E +:100AA0008091E0010E94511C6BC0C11580E7D807FE +:100AB00041F0C130D047F1F081E08093470180934D +:100AC0004801C801DF91CF911F910F910C947703DA +:100AD000C43120E7D20708F04BC0C23080E7D80706 +:100AE00008F048CFC11590E7D90709F42BCFC130E2 +:100AF000D04711F7F8018281882319F38091CF0143 +:100B000081608093CF013CC0C333E0E7DE07A1F4EE +:100B1000F8018281882321F01092470182E017C0FA +:100B200080914701811106C086E20E94291186E268 +:100B30000E94F11182E019C0C433D04709F0BCCF44 +:100B4000F8018281882331F01092480180E20E94EE +:100B5000401216C080914801811106C087E20E94B0 +:100B6000291187E20E94F11180E20E94471208C019 +:100B7000C333F0E7DF0761F2C433D04709F39CCFFA +:100B800080E0DF91CF911F910F9108950C94CA03DB +:100B90000C9475032FE0729FF00111243BE4839FB6 +:100BA000E00DF11D1124E60FF11DEE0FFF1FE65BB6 +:100BB000FE4F859194910E947E07811540E5940730 +:100BC00008F047C0811520E4920708F013C1883E61 +:100BD000910520F5803E910508F07CC1883A910589 +:100BE00078F4853A910508F0A5C08130910509F4A3 +:100BF00071C108F42EC18430910508F06BC129C180 +:100C00008B3B910508F4A1C0803C910508F421C1FB +:100C1000FC01EE0FFF1FE653F040E6C0811530E205 +:100C2000930758F4811541E0940708F053C1803FC1 +:100C3000910508F40EC190650895811520E392078F +:100C400008F0D5C0FC01FF70EE0FFF1FE65BFE4F02 +:100C5000CBC0811535E5930708F043C0811544E505 +:100C6000940708F0DEC0811522E5920708F581158A +:100C700031E5930708F0C1C0482F437021E030E010 +:100C800002C0220F331F4A95E2F73C68AC0164E0D2 +:100C9000569547956A95E1F74370342B8F7086958A +:100CA000869540E2849FC0011124822B932B0895E6 +:100CB000282F26952695AC0143705527811593451D +:100CC00008F0A0C080E2289F9001112481E090E00C +:100CD00002C0880F991F4A95E2F7822B932B9C68DC +:100CE00008958F3240E7940790F48F3120E7920700 +:100CF00008F0A2C0811536E5930708F497C09C015F +:100D000030562115304108F0A4C09F7093C0803345 +:100D100020E7920709F497C008F492C0813340E7B6 +:100D2000940709F493C08233904709F092C080E0A1 +:100D300093ED0895853A910509F48EC0863A9105A0 +:100D400009F08DC082E890E40895883A910509F48D +:100D500089C0893A910509F488C08A3A910509F455 +:100D600087C08B3A910509F486C08C3A910509F445 +:100D700085C08D3A910509F484C0803B910509F442 +:100D800083C08E3A910509F482C08F3A910509F427 +:100D900081C0813B910509F480C0823B910509F433 +:100DA0007FC0833B910509F47EC0843B910509F423 +:100DB0007DC0853B910509F47CC0863B910509F413 +:100DC0007BC0873B910509F47AC0883B910509F403 +:100DD00079C0893B910509F478C08A3B910509F4F3 +:100DE00077C080E094E408958591949108959927BF +:100DF000906C08959F70906A0895982F8827816F4E +:100E0000906A089590E2299F9001112481E090E07A +:100E100002C0880F991F4A95E2F7822B932B9A689C +:100E20000895982F8827846F906A08958F71992765 +:100E3000982F8827906208958F519047946D089558 +:100E400080E091ED089580E090ED089580E092EDCE +:100E5000089580E090E0089581E890E4089583E8A3 +:100E600090E4089582EE94E4089589EE94E4089560 +:100E70008AEE94E4089585EB94E4089586EB94E477 +:100E8000089587EB94E408958CEC94E408958DEC38 +:100E900094E4089583E895E408958AE895E4089534 +:100EA00082E995E4089584E995E4089581E296E461 +:100EB000089583E296E4089584E296E4089585E235 +:100EC00096E4089586E296E4089587E296E408950C +:100ED0008AE296E4089508959FE0799FF001112435 +:100EE0009BE4899FE00DF11D1124E60FF11DEE0F2B +:100EF000FF1FE65BFE4F859194910895823891051E +:100F000049F1B0F48133910509F458C048F48932AD +:100F1000910509F44EC08A32910509F454C0089530 +:100F20008533910509F440C08933910599F00895FE +:100F3000833E910529F138F4803E910591F0823E7F +:100F40009105A1F00895863E9105F9F0873E91053F +:100F500031F108952091E00120FD3AC021FD38C013 +:100F600008958091E00180FD35C032C08091E0019C +:100F700082FF32C08091E00184FD30C083EE39C031 +:100F80008091E00182FD28C0F5CF8091E00183FFD0 +:100F900027C08091E00184FD21C087EE2AC08091A6 +:100FA000E00183FD1DC0F5CF8091E00185FD1AC0F1 +:100FB0001BC08091E00185FD17C014C08091E00145 +:100FC00086FD14C015C08091E00186FD11C00EC0E1 +:100FD00080EE0FC089E30DC082EE0BC080E009C037 +:100FE00086EE07C089E205C085E303C08AE201C03E +:100FF00081E390E008950C947903E82FF0E0ED5D33 +:10100000FE4F8081E82FEF70F0E082958F7021E035 +:1010100030E0A90102C0440F551F8A95E2F740A3B2 +:1010200008950F931F93CF93DF93C4E0D0E001E0C6 +:1010300010E0FE01ED5DFE4F8081E82FEF70F0E0E3 +:1010400021A182958F70A80102C0440F551F8A9577 +:10105000E2F7CA01822B81A38C2F0E94FD07219702 +:1010600040F78EE090E061E070E0FC01EC5EFE4F46 +:101070002081E22FEF70F0E042A122952F70DB017A +:1010800002C0AA0FBB1F2A95E2F79D01242B22A3C1 +:10109000019758F7DF91CF911F910F9108950F930A +:1010A0001F93CF93DF9385B7806885BF85B780682E +:1010B00085BFC4E0D0E001E010E0FE01ED5DFE4F31 +:1010C0008081E82FEF70F0E021A182958F70A80158 +:1010D00002C0440F551F8A95E2F7CA01822B81A3F3 +:1010E0008C2F0E94FD07219740F78EE090E061E091 +:1010F00070E0FC01EC5EFE4F2081E22FEF70F0E02B +:1011000042A122952F70DB0102C0AA0FBB1F2A95B6 +:10111000E2F79D01242B22A3019758F7DF91CF918D +:101120001F910F910C94C605EF92FF920F931F939E +:10113000CF93DF930DE511E0C4E0EE24E394F12CAE +:10114000D5E08C2F0E94FD078EE090E040E050E05B +:10115000FC01EC5EFE4F6081E62FEF70F0E020A115 +:1011600030E062956F7002C0359527956A95E2F779 +:1011700020FD09C09701082E02C0220F331F0A94D8 +:10118000E2F7422B532B019718F7F80192918291C5 +:101190008F018417950721F051834083D09300017C +:1011A0008C2F0E94FD07C15060F68091000187FDE1 +:1011B0001FC08150809300018F3F39F08FE99FE07D +:1011C0000197F1F700C0000013C080E090E0FC013F +:1011D000E35AFE4FDC01AD5ABE4F18962D913C915B +:1011E0001997318720870297863FEFEF9E0779F79F +:1011F0000E94C80581E0DF91CF911F910F91FF9070 +:10120000EF900895E82FF0E0EE0FFF1FE35AFE4F36 +:1012100080819181089508950F931F93CF9307E6DE +:1012200011E0C0E0F801929182918F010E94FE1AB4 +:10123000C80FF1E00D351F07A9F78C2FCF911F9133 +:101240000F91089580916F010895CF93DF9300D09F +:101250001F92CDB7DEB79C018091E601843019F56D +:1012600093E099833B832A839093E9008FEF9091D9 +:10127000E800815095FD06C095ED9A95F1F70000C4 +:101280008111F5CF8091E80085FF0DC040E050E06E +:1012900063E070E0CE0101960E945A0B8091E80055 +:1012A0008E778093E8000F900F900F90DF91CF9191 +:1012B0000895CF93DF9300D01F92CDB7DEB7209172 +:1012C000E601243021F522E029839B838A8383E091 +:1012D0008093E9008FEF9091E800815095FD06C062 +:1012E00095ED9A95F1F700008111F5CF8091E80016 +:1012F00085FF0DC040E050E063E070E0CE01019654 +:101300000E945A0B8091E8008E778093E8000F903E +:101310000F900F90DF91CF9108952091E601243036 +:10132000F1F422E02093E9002FEF3091E800215002 +:1013300035FD06C035ED3A95F1F700002111F5CFE6 +:101340002091E80025FF0BC040E050E065E070E030 +:101350000E945A0B8091E8008E778093E8000895F0 +:10136000CF93DF932091E601243039F521E02093DB +:10137000E9002FEF3091E800215035FD06C035ED32 +:101380003A95F1F700002111F5CF2091E80025FFF3 +:1013900014C0EC0140E050E068E070E00E945A0B9D +:1013A0008091E8008E778093E80088E0FE01A7E650 +:1013B000B1E001900D928A95E1F7DF91CF91089508 +:1013C0008091E501811109C00E94EF0C0E944C0D33 +:1013D0008091E20084608093E20008951092E5011C +:1013E0000895089508950C94481B42E061EC81E053 +:1013F0000E94690C42E061EC82E00E94690C42E0CC +:1014000061EC83E00C94690C8091E801833009F46D +:1014100053C030F4813071F0823009F48CC00895EB +:101420008A3009F478C08B3009F45EC0893009F045 +:101430009AC020C08091E701813A09F094C0809160 +:10144000E800877F8093E8008091EB019091EC01A8 +:10145000892B21F468E087E691E003C060E080E03A +:1014600090E070E00E94A50B8091E8008B7780935C +:10147000E80008958091E701813209F074C08091FD +:10148000EB019091EC01892B09F06DC08091E8008F +:10149000877F8093E8008091E80082FD05C08091FD +:1014A000E6018111F8CF5FC08091F10080936F0158 +:1014B0008091E8008B7753C08091E701813A09F071 +:1014C00052C08091EB019091EC01892B09F04BC047 +:1014D0008091E800877F8093E8008091E80080FF9A +:1014E000FCCF80910B0136C08091E7018132D9F5A4 +:1014F0008091EB019091EC01892BA9F58091E80096 +:10150000877F8093E8000E949E0C8091E901809380 +:101510000B010C94D4148091E701813221F5809164 +:10152000E800877F8093E8000E949E0C8091EA018A +:101530008093700108958091E701813AA1F4809130 +:10154000E800877F8093E8008091E80080FFFCCF6F +:10155000809170018093F1008091E8008E778093F4 +:10156000E8000C949E0C089584B7877F84BF88E1BF +:101570000FB6F89480936000109260000FBE80E870 +:1015800080936100109261000E9441100E94EF0C54 +:101590000E944C0D8091E20084608093E200789478 +:1015A0000E94D20F0E94431081E091E00E94ED0F53 +:1015B0008091E601853069F40E940A1B8091E40164 +:1015C0008823B1F30E94371B882391F30E94440BB8 +:1015D000EFCF0E944B10ECCF292F3327233031055A +:1015E000C9F064F42130310581F02230310509F071 +:1015F00043C084E590E02AE235E042C02132310563 +:10160000F1F02232310541F137C082E190E02EE75E +:1016100035E036C099278130910541F0823091053F +:1016200041F0892B49F5E6E2F5E005C0E8EFF4E08A +:1016300002C0EEECF4E0849190E09F0121C06330A1 +:10164000D8F4E62FF0E0EE0FFF1FEF5CFE4F208195 +:10165000318189E090E014C0633070F470E0FB01E8 +:10166000EE0FFF1FE55DFE4F20813181FB01E85D3C +:10167000FE4F808190E004C080E090E020E030E008 +:10168000FA0131832083089580E189BD82E189BD1B +:1016900009B400FEFDCF8091D8008F7D8093D800E3 +:1016A0008091E00082608093E0008091E00081FD05 +:1016B000FCCF0895CF92DF92EF92FF920F931F938A +:1016C000CF93DF93EC018B016A010E94BD0C811165 +:1016D00033C0C114D10439F0F60180819181081B17 +:1016E000190BC80FD91FE12CF12C0115110519F1A7 +:1016F0008091E80085FD16C08091E8008E77809388 +:10170000E800C114D10449F0F60180819181E80E0E +:10171000F91EF182E08285E00FC00E94BD0C882393 +:1017200021F30AC089918093F10001501109FFEF64 +:10173000EF1AFF0ADACF80E0DF91CF911F910F916E +:10174000FF90EF90DF90CF9008952091ED013091C0 +:10175000EE012617370748F06115710539F420911D +:10176000E8002E772093E80001C0B90140E0611540 +:101770007105A9F12091E601222309F443C0253027 +:1017800009F442C02091E80023FD40C02091E80008 +:1017900022FD32C02091E80020FFE9CF4091F30004 +:1017A0002091F20030E0342BFC01CF01611571056E +:1017B00059F02830310540F481918093F100615057 +:1017C00071092F5F3F4FF1CF41E02830310509F01B +:1017D00040E02091E8002E772093E800C8CF411127 +:1017E000C9CF0AC08091E601882361F0853061F09D +:1017F0008091E80083FD0AC08091E80082FFF2CF6B +:1018000080E0089582E0089583E0089581E00895DE +:101810002091ED013091EE012617370748F0611550 +:10182000710539F42091E8002E772093E80001C07B +:10183000B901FC0120E06115710591F18091E6018B +:10184000882309F440C0853009F43FC08091E80046 +:1018500083FD3DC08091E80082FD2FC08091E800AB +:1018600080FFE9CF2091F3008091F20090E0922B6D +:101870006115710559F08830910540F42491209349 +:10188000F1003196615071090196F2CF21E008977D +:1018900009F020E08091E8008E778093E800CBCFBC +:1018A0002111CCCF0AC08091E601882361F08530F8 +:1018B00061F08091E80083FD0AC08091E80082FF1A +:1018C000F2CF80E0089582E0089583E0089581E0FA +:1018D0000895982F973058F59093E900981739F0AC +:1018E0007091EC002091ED005091F00003C0242F86 +:1018F000762F50E021FF19C03091EB003E7F3093EE +:10190000EB003091ED003D7F3093ED003091EB0026 +:1019100031603093EB007093EC002093ED00509316 +:10192000F0002091EE0027FF07C09F5FD3CF8F709C +:101930008093E90081E0089580E008958091E701B7 +:1019400087FF11C08091E80082FD05C08091E6010B +:101950008111F8CF11C08091E8008B770BC0809186 +:10196000E601882349F08091E80080FFF8CF80915C +:10197000E8008E778093E80008952091E40030918C +:10198000E50095E64091EC00842F817040FF22C075 +:101990008091E80080FD1CC08091E601882391F0D1 +:1019A000853091F08091EB0085FD10C04091E400FE +:1019B0005091E5004217530729F39A01915011F70E +:1019C00084E0089582E0089583E0089581E0089519 +:1019D00080E008954091E80042FFDECF08950E9424 +:1019E0005D0D0E94650DE0EEF0E0808181608083F6 +:1019F000E8EDF0E080818F77808319BCA7EDB0E03F +:101A00008C918E7F8C9380818F7E80831092E501F4 +:101A100008950F931F93CF93DF930E945D0D0E9453 +:101A2000650DC8EDD0E088818F77888388818068D4 +:101A3000888388818F7D888319BC1092E60110927B +:101A4000E2011092E4011092E30100EE10E0F801CF +:101A500080818B7F808388818160888342E060E021 +:101A600080E00E94690CE1EEF0E080818E7F80834F +:101A7000E2EEF0E0808181608083808188608083F5 +:101A8000F80180818E7F8083888180618883DF91E7 +:101A9000CF911F910F910895E8EDF0E080818F7E46 +:101AA0008083E7EDF0E080818160808384E082BF05 +:101AB00081E08093E5010C94090DE8EDF0E0808170 +:101AC0008E7F80831092E20008951092DA001092C7 +:101AD000E10008951F920F920FB60F9211242F93D9 +:101AE0003F934F935F936F937F938F939F93AF93A6 +:101AF000BF93EF93FF938091E10082FF0BC0809131 +:101B0000E20082FF07C08091E1008B7F8093E100BB +:101B10000E94D10F8091DA0080FF1FC08091D80011 +:101B200080FF1BC08091DA008E7F8093DA00809165 +:101B3000D90080FF0DC080E189BD82E189BD09B473 +:101B400000FEFDCF81E08093E6010E94E00905C020 +:101B500019BC1092E6010E94EE098091E10080FF1D +:101B600019C08091E20080FF15C08091E2008E7F55 +:101B70008093E2008091E20080618093E200809196 +:101B8000D80080628093D80019BC85E08093E6017C +:101B90000E94F2098091E10084FF30C08091E20050 +:101BA00084FF2CC080E189BD82E189BD09B400FEBB +:101BB000FDCF8091D8008F7D8093D8008091E10087 +:101BC0008F7E8093E1008091E2008F7E8093E2001F +:101BD0008091E20081608093E2008091E20188239D +:101BE00011F084E007C08091E30087FD02C081E02E +:101BF00001C083E08093E6010E94F3098091E10037 +:101C000083FF29C08091E20083FF25C08091E1001D +:101C1000877F8093E10082E08093E6011092E201E9 +:101C20008091E1008E7F8093E1008091E2008E7FC1 +:101C30008093E2008091E20080618093E20042E0C4 +:101C400060E080E00E94690C8091F00088608093E1 +:101C5000F0000E94F109FF91EF91BF91AF919F9128 +:101C60008F917F916F915F914F913F912F910F9045 +:101C70000FBE0F901F9018951F920F920FB60F92E4 +:101C800011242F933F934F935F936F937F938F9381 +:101C90009F93AF93BF93CF93DF93EF93FF93C09145 +:101CA000E900CF708091EC00D82FD17080FDD0E892 +:101CB0001092E9008091F000877F8093F000789483 +:101CC0000E94800E1092E9008091F000886080935D +:101CD000F000CD2BCF70C093E900FF91EF91DF9121 +:101CE000CF91BF91AF919F918F917F916F915F91B4 +:101CF0004F913F912F910F900FBE0F901F9018950D +:101D00001F93CF93DF93CDB7DEB7AA970FB6F894A2 +:101D1000DEBF0FBECDBFE7EEF1E088E08E0F909101 +:101D2000F10091938E13FBCF0E94040A8091E8008A +:101D300083FF1FC18091E7019091E801492F50E096 +:101D40004A30510508F015C1FA01EA5AFF4F0C94C8 +:101D50006D22803881F0823809F00BC18091EB014F +:101D60008F708093E9008091EB0085FB882780F9D4 +:101D70001092E90006C08091E3019091E401911175 +:101D800082609091E800977F9093E8008093F10043 +:101D90001092F100C8C0282F2D7F09F0EAC08823D7 +:101DA00019F0823061F0E5C08091E901813009F0DD +:101DB000E0C0933009F080E08093E4012BC0809173 +:101DC000E901811127C08091EB018F7009F4D1C026 +:101DD0008093E9002091EB0020FF1CC0933021F498 +:101DE0008091EB00806214C09091EB009061909321 +:101DF000EB0021E030E0A90102C0440F551F8A9595 +:101E0000E2F74093EA001092EA008091EB008860CC +:101E10008093EB001092E9008091E800877F86C0F4 +:101E20008111A7C01091E9011F778091E3008078AC +:101E3000812B8093E3008091E800877F8093E80006 +:101E40000E949E0C8091E80080FFFCCF8091E3000F +:101E500080688093E300111102C082E001C083E03A +:101E60008093E60186C08058823008F082C080915D +:101E7000E9019091EA018C3D53E0950779F583E003 +:101E80008A838AE289834FB7F894DE01139620E0B3 +:101E90003EE051E2E32FF0E050935700E49120FF41 +:101EA00003C0E295EF703F5FEF708E2F90E0EA3055 +:101EB00010F0C79601C0C0968D939D932F5F24317B +:101EC00049F74FBF8091E800877F8093E8006AE27E +:101ED00070E0CE0101960E94A50B14C0AE014F5FC9 +:101EE0005F4F6091EB010E94EC0ABC01009709F47E +:101EF00040C09091E800977F9093E80089819A8193 +:101F00000E94080C8091E8008B778093E80031C034 +:101F1000803879F58091E800877F8093E800809190 +:101F2000E2018093F1008091E8008E778093E800D1 +:101F30000E949E0C1EC081111CC09091E90192303C +:101F4000C0F48091E800877F8093E8009093E201DD +:101F50000E949E0C8091E201811106C08091E300F5 +:101F600087FD02C081E001C084E08093E6010E9409 +:101F7000F5098091E80083FF0AC08091E800877F1F +:101F80008093E8008091EB0080628093EB00AA963A +:101F90000FB6F894DEBF0FBECDBFDF91CF911F917A +:101FA00008950895CF938091E6018823A1F0C09110 +:101FB000E900CF709091EC00892F817090FD80E84E +:101FC000C82B1092E9008091E80083FD0E94800EEA +:101FD000CF70C093E900CF910895909376018093DC +:101FE00075010895E0917501F0917601309721F027 +:101FF0000190F081E02D099480E00895E091750151 +:10200000F0917601309721F00280F381E02D099460 +:102010000895E0917501F0917601309721F00480E8 +:10202000F581E02D09940895209173013091740198 +:102030008217930771F09093740180937301E0917C +:102040007501F0917601309721F00680F781E02D3F +:1020500009940895209171013091720182179307BC +:1020600071F09093720180937101E0917501F0918C +:102070007601309721F00084F185E02D09940895D0 +:1020800008950C9440100E947C1B0E944F080E94EF +:10209000021C0C949C205F926F927F928F929F9271 +:1020A000AF92BF92CF92DF92EF92FF920F931F9366 +:1020B000CF93DF9300D000D01F92CDB7DEB70E9440 +:1020C000940892E8C92E91E0D92E04E010E0AA24E9 +:1020D000A394B12C502E802F0E9402094C01F601CE +:1020E000729062906F016826792661147104A1F4E0 +:1020F0000150110978F78FEF89838A831B820E9430 +:10210000851B8160782F9D838C8349815A816B81E7 +:102110008D810E94FB1038C08091CF0181FD0E940B +:102120000B092EE030E07501022E02C0EE0CFF1C00 +:102130000A94E2F7C70186219721892B09F12983A7 +:102140005A828E209F2091E0892809F490E09B8399 +:102150000E94851B8160782F9D838C8349815A81E1 +:102160006B818D810E94FB10000F111FF801E85850 +:10217000FE4F80819181E826F926F182E08204C039 +:102180002150310980F6B4CF0E94D91D10917701FA +:102190000E94F20F1817D1F00E94F20F809377017E +:1021A0000F900F900F900F900F90DF91CF911F9194 +:1021B0000F91FF90EF90DF90CF90BF90AF909F90E6 +:1021C0008F907F906F905F900C94FB070F900F9013 +:1021D0000F900F900F90DF91CF911F910F91FF9073 +:1021E000EF90DF90CF90BF90AF909F908F907F90B7 +:1021F0006F905F900895CF93DF93CDB7DEB72B97A5 +:102200000FB6F894DEBF0FBECDBF4F8358876987E6 +:102210007A878B87DE01119686E0FD0111928A95FF +:10222000E9F785E0FE01379601900D928A95E1F776 +:1022300049815A816B817C818D819E810E947217B8 +:102240002B960FB6F894DEBF0FBECDBFDF91CF91B6 +:102250000895CF93882309F4C2C0C82F823859F457 +:102260000E94F20F81FDBBC089E30E944C1A0E94BC +:10227000CF1A89E30CC0833879F40E94F20F80FDF5 +:10228000AEC083E50E944C1A0E94CF1A83E50E94DB +:10229000691ACF910C94CF1A843859F40E94F20F26 +:1022A00082FD9DC087E40E944C1A0E94CF1A87E4E9 +:1022B000EECF8CEF8C0F813A48F48C2F0E940420D3 +:1022C00081118DC08C2F0E944C1AE3CF80E28C0FBD +:1022D000883048F4C77081E001C0880FCA95EAF7DA +:1022E0000E94881AD6CF8BE58C0F833078F4C53ADC +:1022F00029F0C63A31F083E890E005C081E890E02B +:1023000002C082E890E0CF910C94141088E58C0F05 +:10231000833108F064C0C83A39F1C93A41F1CA3A88 +:1023200049F1CB3A51F1CC3A59F1CD3A61F1C03B88 +:1023300069F1CE3A71F1CF3A79F1C13B81F1C23BFB +:1023400089F1C33B91F1C43B99F1C53BA1F1C63B77 +:10235000A9F1C73BB1F1C83BB9F1C93BC1F1CA3BD7 +:10236000C9F180E090E038C082EE90E035C089EE9F +:1023700090E032C08AEE90E02FC085EB90E02CC058 +:1023800086EB90E029C087EB90E026C08CEC90E0D3 +:1023900023C08DEC90E020C083E891E01DC08AE866 +:1023A00091E01AC082E991E017C084E991E014C07D +:1023B00081E292E011C083E292E00EC084E292E0FA +:1023C0000BC085E292E008C086E292E005C087E299 +:1023D00092E002C08AE292E0CF910C942A10CF9151 +:1023E0000895882309F44BC0823859F40E94F20FF3 +:1023F00081FF45C089E30E944C1A0E94CF1A89E3ED +:102400000CC0833871F40E94F20F80FF38C083E55E +:102410000E944C1A0E94CF1A83E50E94691A0C94FC +:10242000CF1A843859F40E94F20F82FF28C087E443 +:102430000E944C1A0E94CF1A87E4EFCF9CEF980FAE +:10244000913A58F390E2980F983050F4877091E0E9 +:1024500001C0990F8A95EAF7892F0E948E1ADFCF63 +:102460009BE5980F933020F480E090E00C941410DA +:10247000885A833120F480E090E00C942A1008956B +:10248000882321F00E94881A0C94CF1A089588237B +:1024900021F00E948E1A0C94CF1A08957F928F9289 +:1024A0009F92AF92BF92CF92DF92EF92FF920F93E3 +:1024B0001F93CF93DF931F92CDB7DEB77C01C62E5B +:1024C000772EFC01058102950F70128111110E9477 +:1024D000A51A0E94451A882379F0112369F080E239 +:1024E0008C0D883048F082E00E942E1A0E94451A16 +:1024F00091E0D82ED92601C0D12CE72DE295EF70BE +:10250000F0E0E05AFF4F0C946D22872D807F072D5D +:102510000F70882311F00295007F112389F00023AA +:1025200009F499C180E28C0D883020F4802F0E943C +:10253000881A03C0802F0E94981A0E94CF1A8BC15C +:102540008C2D0E94F111002309F4C3C180E28C0D8F +:10255000883020F4802F0E948E1A03C0802F0E94A2 +:102560009E1A0E94CF1AB5C1872D807F972D9F702C +:10257000803211F4892F03C0892F8295807FCC206F +:1025800021F0F1E0CF16A1F01DC0112339F0002396 +:1025900019F1013009F50E94B81A9BC1002319F006 +:1025A000013009F496C189830E94BB1A898110C148 +:1025B000112321F0063008F08CC10EC0053008F060 +:1025C00088C106C1112359F0002331F0F70195812C +:1025D00090FF41C19F7095830E9440127AC10023F1 +:1025E00009F4F6C03EC1872D86958695837090E0EC +:1025F000009719F0019761F06CC1112321F08C2D27 +:10260000972D937002C080E090E00E94141061C189 +:10261000112321F08C2D972D937002C080E090E063 +:102620000E942A1056C18C2D112319F00E94E11C22 +:1026300002C00E94491D0E94CE1D4BC1872D837090 +:1026400009F052C0111145C18C2D82958695877075 +:10265000880F880F9C2D9F70892E912CA12CB12C56 +:10266000082E04C0880C991CAA1CBB1C0A94D2F723 +:10267000C4FE14C00FE010E020E030E0B901A80172 +:1026800004C0440F551F661F771F8A95D2F7CB01F0 +:10269000BA01609570958095909503C060E070E0F8 +:1026A000CB01272D26952695237030E02230310569 +:1026B00069F02330310589F0682979298A299B2915 +:1026C0002130310571F00E94BA1803C168297929B7 +:1026D0008A299B290E94D618FCC00E94BA18C501FD +:1026E000B4010E949E18F5C0112319F0872D817046 +:1026F00001C08695882309F4ECC08C2D82958695BF +:102700008770880F880F9C2D9F70892E912CA12C8B +:10271000B12C082E04C0880C991CAA1CBB1C0A945E +:10272000D2F7C4FE14C00FE010E020E030E0B901A1 +:10273000A80104C0440F551F661F771F8A95D2F762 +:10274000CB01BA01609570958095909503C060E0CB +:1027500070E0CB01272D269526952370422F50E05F +:102760004230510569F04330510589F068297929D3 +:102770008A299B294130510571F00E949419A9C002 +:10278000682979298A299B290E94B019A2C00E9430 +:102790009419C501B4010E9478199BC08C2D90E05A +:1027A000FC01E05EF109E531F10508F050C0E059A7 +:1027B000FF4F0C946D220C2D0F70872D8F711123FC +:1027C00021F00E941119802F07CF0E943219802F0B +:1027D0000E9447127EC0112341F0053008F079C0F5 +:1027E000872D8F710E94571974C0063008F071C090 +:1027F000F7CF112339F0872D8F710E94111969C00D +:102800001123C9F3872D8F710E94321962C01123E1 +:1028100029F0872D8F710E94FC185BC00E94F2186E +:1028200058C0112351F0172D1F71812F0E941119CB +:1028300063E0812F0E94251A4CC081E00E942E1A6D +:10284000023008F446C082E00E942E1A42C01123D2 +:1028500031F0002381F28C2D0E9429113AC000230F +:1028600089F28C2D0E94F11134C0472D4F706C2DD0 +:10287000C7010E9424040E9416182BC0111129C000 +:10288000472D4F7050E042305105B9F04CF44115DE +:10289000510581F041305105E1F40E94C42019C076 +:1028A0004330510569F04430510599F48C2D0E9454 +:1028B00016210FC00E94AD200CC00E94E02009C06C +:1028C0000E94F32006C0472D4F706C2DC7010E9457 +:1028D0006B07DD20F9F00E94211A80FD1BC0F70173 +:1028E00012820E941B1A0E941119C7010E9499149A +:1028F0000E941B1A0F90DF91CF911F910F91FF90B3 +:10290000EF90DF90CF90BF90AF909F908F907F908F +:102910000C9432190F90DF91CF911F910F91FF907E +:10292000EF90DF90CF90BF90AF909F908F907F906F +:1029300008950F931F93CF93DF93EC0188819981C2 +:102940002B813C81232BB9F09F3F11F48F3F99F0ED +:10295000CE010E943B04882371F0688179818A81CD +:102960000E94171A8C010E94CC190E949318B8017A +:10297000CE010E944E12DF91CF911F910F910895C9 +:102980000E94A51A0E94B51A0E947A1A0E94CF1AB4 +:102990000E947F1E0E94CE1D80E090E00E941410D5 +:1029A00080E090E00C942A100E94951A0C94C014B8 +:1029B0000E940C1A292F22952F7030E02C303105FF +:1029C0004CF42A3031056CF42250310922303105A3 +:1029D000A8F407C02C30310569F02F30310551F0D3 +:1029E0000DC0803F69F018F4803E40F409C0843F78 +:1029F00029F406C093FB882780F9089580E00895A4 +:102A000081E00895CF93DF9300D000D01F92CDB71F +:102A1000DEB70F900F900F900F900F90DF91CF9136 +:102A20000895CF93DF9300D000D000D0CDB7DEB7AC +:102A300026960FB6F894DEBF0FBECDBFDF91CF91C3 +:102A400008951F93CF93DF93C091820116E0809188 +:102A50008301C81799F0D0E01C9FF0011D9FF00D75 +:102A60001124EC57FE4F4081518162817381848132 +:102A700095810E9411152196C770E9CFDF91CF9102 +:102A80001F9108954091B4015091B5016091B60134 +:102A90007091B7018091B8019091B9010C94111512 +:102AA0008091B90182958F7009F054C08091B60170 +:102AB000882309F44FC080918201A0918301609125 +:102AC000B4017091B5014091B7015091B801B6E0E1 +:102AD0008A1709F43FC090E041155105C1F17F3FCD +:102AE00011F46F3FA1F1B89FF001B99FF00D1124CF +:102AF000EC57FE4F218172132AC02081621327C038 +:102B00002281211124C0238134812417350710F438 +:102B100021503109241B350B283C3105C0F420918C +:102B2000B9012F7020612093B90126E0289FF001A0 +:102B3000299FF00D1124E757FE4F80818F7080612F +:102B4000808384EB91E00E9499140C9421150196E6 +:102B50008770BECF0895CF92DF92EF92FF920F93CE +:102B60001F93CF93DF93CDB7DEB762970FB6F8947C +:102B7000DEBF0FBECDBF8C0185E0F801DE011D96E2 +:102B800001900D928A95E1F7D8014C9111965C91D4 +:102B9000119712966C9112971396CD90DC90149722 +:102BA0003091B4017091B5018091B7019091B80155 +:102BB000009709F46BC17F3F19F43F3F09F466C1E8 +:102BC000E090B601EE2009F4C0C02091B901C8160A +:102BD000D90628F0F601E81BF90BCF0104C0809557 +:102BE00090958C0D9D1DFF24F394883C910578F001 +:102BF000F12C207F09F0C6C07C2DD98AC88A89892A +:102C00000E94021584EB91E00E949914B1C0822FBA +:102C1000807F09F046C0751314C0341312C06111CF +:102C200010C02F7020612093B9010E94421584EBDF +:102C300091E00E9499148091B901D80115968C9366 +:102C40002EC0CD2819F15F3F11F44F3FF9F0F62E59 +:102C500061111CC0809182012091830136E08217AE +:102C600009F45AC090E0389FF001399FF00D11240B +:102C7000EC57FE4F7181571306C07081471303C094 +:102C80007281711103C001968770E9CFF62E662319 +:102C900009F418C18091B90181608093B901F12CC8 +:102CA00011C1751308C0341306C0611104C08091AE +:102CB000B901D801C3C04D875E878D859E856A8B1B +:102CC0000E94D8146A898823E1F16623D1F120910A +:102CD000B901822F82958F7090E0029774F08091F5 +:102CE000B4019091B50198878F831986DB86CA86D7 +:102CF0002C87CE0107960E94991486E0F801A4EB78 +:102D0000B1E001900D928A95E1F70E9450150E9462 +:102D10004215FF24F394D6C04D875E878D859E852E +:102D20000E940C1A292F22952F7030E02230310595 +:102D30000CF0BCC09F7009F0B6C0805E883008F40B +:102D4000C1C0C8010E949914E4CFC816D90608F47E +:102D500053C0F601E81BF90BCF01883C910508F43C +:102D600050C0F12C7C2DD98AC88A89890E9402150D +:102D7000E4EBF1E086E0DF011D928A95E9F70E941D +:102D80004215A0C0751314C0341312C0611110C0D5 +:102D90008091B901F8018583C8010E94991486E0E9 +:102DA000E4EBF1E0DF011D928A95E9F7FE2C8AC081 +:102DB0004D875E878D859E856A8B0E94D8146A89AF +:102DC000882309F4BECF662309F4BBCF2091B90153 +:102DD000822F82958F7090E002970CF48ECF8091B5 +:102DE000B4019091B5019A8389831B82DD82CC82E4 +:102DF0002E83CE0101967FCF809590958C0D9D1DE1 +:102E0000ACCFF62E662309F49CCF75132EC0341375 +:102E10002CC02091B90120FD1FC0822F82958F7098 +:102E2000D9F0D80115962C9315978F3049F08F5F04 +:102E3000982F9295907F822F8F70892B15968C9367 +:102E4000C8010E94991486E0F801A4EBB1E001905A +:102E50000D928A95E1F793CF86E0F801A4EBB1E0FB +:102E600001900D928A95E1F72DC04D875E878D8583 +:102E70009E850E94D814811140CF8091B901816054 +:102E80008093B901C8010E9499141CC0662309F4FB +:102E900058CF4D875E878D859E850E94D8148823E4 +:102EA00009F44FCF2ACF811148CF0CC0243031050F +:102EB0000CF047CF9F7009F440CFF8019581907FC7 +:102EC00009F03BCF8F2D62960FB6F894DEBF0FBE90 +:102ED000CDBFDF91CF911F910F91FF90EF90DF90C9 +:102EE000CF9008951F93CF93DF93CDB7DEB72C9784 +:102EF0000FB6F894DEBF0FBECDBF4F8358876987EA +:102F00007A878B879C87CE0107960E94AB15882312 +:102F100069F08F8198852A853B85232BF1F19F3FAE +:102F200009F063C08F3F09F060C037C086E0FE0142 +:102F30003796DE01119601900D928A95E1F76F8127 +:102F40007885EA85FB85309741F17F3F11F46F3F2B +:102F500021F12091830130E0C90101968770992702 +:102F60004091820150E08417950709F447C06983B6 +:102F70007A83FD83EC8396E0929FD001939FB00DFE +:102F80001124AC57BE4FFE01319601900D929A95D7 +:102F9000E1F7809383010E94211516E08091820160 +:102FA000909183018917C1F1189FC00111248C579A +:102FB0009E4F0E94AB15882379F1E09182011E9FFC +:102FC000F0011124EC57FE4F4081518162817381E1 +:102FD000848195810E9411158091820190E0019673 +:102FE0008770992780938201D9CF4F815885698551 +:102FF0007A858B859C850E941115CFCF0E94D414B1 +:103000001092830110928201E4EBF1E086E0DF018F +:103010001D928A95E9F7C1CF2C960FB6F894DEBFC2 +:103020000FBECDBFDF91CF911F910895EF92FF9218 +:103030000F931F93CF93DF938C01009709F46CC01B +:10304000F12CEE24E394E8012196F8018491843771 +:1030500040F4843008F051C0813081F0823019F1A1 +:103060005BC0853709F444C0A8F19CE7980F9037FE +:1030700008F052C08F770E94F11141C00E5F1F4FC0 +:10308000FE01C49180E28C0F883048F4C7708E2D09 +:1030900001C0880FCA95EAF70E94A81A14C08C2FA5 +:1030A0000E9429112DC00E5F1F4FFE01C49180E2C6 +:1030B0008C0F883058F4C7708E2D01C0880FCA95C8 +:1030C000EAF70E94AE1A0E94CF1A1AC08C2F0E94F3 +:1030D000F11116C00E5F1F4FFE01C491CC2381F089 +:1030E0008FE99FE00197F1F700C00000C150F6CFD3 +:1030F0000E5F1F4FFE01F49003C00E9429118E0144 +:103100008F2D882309F49FCFEFE9FFE03197F1F786 +:1031100000C000008150F5CFDF91CF911F910F913A +:10312000FF90EF90089508956093BE017093BF01E2 +:103130008093C0019093C1010C94C0140F931F930E +:103140000091BE011091BF012091C0013091C101D9 +:10315000DC01CB01802B912BA22BB32B8093BE01E2 +:103160009093BF01A093C001B093C1011F910F9133 +:103170000C94C0140F931F930091BE011091BF01D6 +:103180002091C0013091C101DC01CB01802391234A +:10319000A223B3238093BE019093BF01A093C001EB +:1031A000B093C1011F910F910C94C0140F931F9302 +:1031B0000091BE011091BF012091C0013091C10169 +:1031C000DC01CB0180279127A227B3278093BE0182 +:1031D0009093BF01A093C001B093C1011F910F91C3 +:1031E0000C94C0141092BA011092BB011092BC0151 +:1031F0001092BD010C94C01441E050E060E070E01A +:1032000004C0440F551F661F771F8A95D2F740935D +:10321000BA015093BB016093BC017093BD010C9443 +:10322000C01441E050E060E070E004C0440F551F5E +:10323000661F771F8A95D2F78091BA019091BB01E2 +:10324000A091BC01B091BD01482B592B6A2B7B2B5F +:103250004093BA015093BB016093BC017093BD01D0 +:103260000C94C01441E050E060E070E004C0440FF2 +:10327000551F661F771F8A95D2F740955095609528 +:1032800070958091BA019091BB01A091BC01B09161 +:10329000BD01482359236A237B234093BA015093ED +:1032A000BB016093BC017093BD010C94C01441E05C +:1032B00050E060E070E004C0440F551F661F771FA8 +:1032C0008A95D2F78091BA019091BB01A091BC017F +:1032D000B091BD01482759276A277B274093BA013F +:1032E0005093BB016093BC017093BD010C94C0145A +:1032F0000F931F930091BA011091BB012091BC0163 +:103300003091BD01DC01CB01802B912BA22BB32B83 +:103310008093BA019093BB01A093BC01B093BD010F +:103320001F910F910C94C0140F931F930091BA0139 +:103330001091BB012091BC013091BD01DC01CB019A +:1033400080239123A223B3238093BA019093BB01DE +:10335000A093BC01B093BD011F910F910C94C014B8 +:103360000F931F930091BA011091BB012091BC01F2 +:103370003091BD01DC01CB0180279127A227B32723 +:103380008093BA019093BB01A093BC01B093BD019F +:103390001F910F910C94C0140895CF92DF92EF9279 +:1033A000FF920F931F93CF93DF938C01C090BE01C8 +:1033B000D090BF01E090C001F090C1018091BA01AE +:1033C0009091BB01A091BC01B091BD01C82AD92A3E +:1033D000EA2AFB2ACFE1D0E0D701C6010C2E04C0B7 +:1033E000B695A795979587950A94D2F780FF06C062 +:1033F000B8018C2F0E94CA05019721F4219760F72C +:1034000080E001C08C2FDF91CF911F910F91FF9031 +:10341000EF90DF90CF900895CF93DF93EC010E945F +:10342000CD19BE010E94CA05DF91CF910895CB014D +:103430000E940C1A08958091C20185958595859505 +:1034400008958091C2018770089598E0899F900146 +:103450001124262B2093C2010C9411192091C20132 +:10346000809582238093C201982F977069F430E091 +:10347000482F552747FD50952417350729F0859586 +:10348000859585950C94321908959091C201977095 +:1034900081E009F480E0089520910C0130910D0144 +:1034A000F90132969FEF40E05191581789F09F3F04 +:1034B00019F4511101C0942F4F5F4630A9F79F3F77 +:1034C00039F0F901E90FF11D97FDFA95828308950E +:1034D000089520910C0130910D01F9013296285F79 +:1034E0003F4F9081981301C010823196E217F30785 +:1034F000C1F7089581E090E0E0910C01F0910D0199 +:10350000E80FF91F1082019688309105A9F70895F8 +:103510009091CE01892B8093CE0108958095909152 +:10352000CE0189238093CE0108951092CE01089593 +:103530009091CD01892B8093CD0108958095909134 +:10354000CD0189238093CD0108951092CD01089576 +:103550009091CC01892B8093CC0108958095909116 +:10356000CC0189238093CC0108951092CC01089559 +:103570008093C30108951092C301089580910C01B6 +:1035800090910D01FC0131969C01285F3F4F80E036 +:10359000919191118F5FE217F307D1F70895E091B0 +:1035A0000C01F0910D018091CE018083E0910C011E +:1035B000F0910D0190818091CD01892B8083E09164 +:1035C0000C01F0910D0190818091CC01892B8083B9 +:1035D0008091C301882361F0E0910C01F0910D010D +:1035E0009081892B80830E94BE1A81111092C301A1 +:1035F00080910C0190910D010C94FE0F20E000973A +:1036000039F0AC0141505109842395232F5FF7CF46 +:10361000822F08958091E601843039F11092D00113 +:1036200020E488E190E00FB6F894A89580936000BC +:103630000FBE2093600080E00E94850380E00E941E +:10364000FB0783B7817F846083BF83B7816083BFBB +:103650007894889583B78E7F83BF88E10FB6F894FE +:1036600080936000109260000FBE0895089580E07E +:103670000E9485030E9411080E9494080E94361B34 +:103680000E940C0991E0811101C090E0892F0895FA +:103690000E94D41480E00E9485030E949C200E9416 +:1036A000F20F0C94FB071F920F920FB60F9211248A +:1036B0008F939F93AF93BF938091D001811113C0DB +:1036C0008091D1019091D201A091D301B091D40108 +:1036D0004196A11DB11D8093D1019093D201A09379 +:1036E000D301B093D401BF91AF919F918F910F906F +:1036F0000FBE0F901F90189582E084BD93E095BD9A +:103700009AEF97BD80936E0008952FB7F89480913B +:10371000D1019091D201A091D301B091D4012FBFDA +:103720000895CF92DF92EF92FF920F931F932FB7DE +:10373000F8944091D1015091D2016091D3017091E0 +:10374000D4012FBF6A017B01EE24FF248C0120E00D +:1037500030E0C016D106E206F30610F441505109DC +:103760009A01281B390BC9011F910F91FF90EF900F +:10377000DF90CF9008951F920F920FB60F921124F1 +:103780008F939F93AF93BF938091D1019091D2017A +:10379000A091D301B091D4010196A11DB11D8093D8 +:1037A000D1019093D201A093D301B093D401BF91E2 +:1037B000AF919F918F910F900FBE0F901F90189512 +:1037C0000E94EF0CF8942FEF87EA91E62150804099 +:1037D0009040E1F700C0000087E090EBDC018093AF +:1037E000F0019093F101A093F201B093F3019CE0FA +:1037F00088E10FB6F894A895809360000FBE90936F +:103800006000FFCF0E943A1C811102C00E941B1C65 +:103810000E94451C8093CF010E944D1C90E0909324 +:10382000E1018093E0010E94491C682F70E080E074 +:1038300090E00C9494186DEE7EEF80E090E00E9492 +:10384000A72260E082E090E00E94952260E083E0A1 +:1038500090E00E94952260E084E090E00E94952232 +:1038600060E085E090E00E94952260E086E090E0D4 +:103870000C94952280E090E00E948F2221E08D3E02 +:103880009E4F09F020E0822F089582E090E00C9492 +:10389000872283E090E00C94872284E090E00C94EF +:1038A0008722682F84E090E00C94952286E090E0D7 +:1038B0000C948722682F86E090E00C9495228091EA +:1038C000D70180FF0BC06091110185E0689FB001B6 +:1038D000112475956795759567952BC081FF09C073 +:1038E0006091110185E0689FB0011124759567957D +:1038F00020C082FF07C06091110185E0689FB00180 +:10390000112417C09091D8019923D1F06091100132 +:10391000961788F72091110185E0289F90011124C6 +:10392000929FA001939F500D112470E0CA010E9444 +:1039300059226038710540F46115710539F002C0F3 +:1039400065E070E0862F08958FE7089581E008957F +:103950008091D70180FF08C060910F0170E07595DC +:1039600067957595679521C081FF06C060910F012D +:1039700070E07595679519C082FF04C060910F01D2 +:1039800070E010C09091D8019923C1F060910E01B0 +:103990009617A0F780910F01899FC001112470E054 +:1039A0000E9459226038710528F46115710521F0D3 +:1039B000862F08958FE7089581E0089561E070E013 +:1039C000F4CF803F21F40E945F1C819504C0813FA9 +:1039D00029F40E945F1C8093DB010895823F21F44B +:1039E0000E945F1C819504C0833F29F40E945F1CE4 +:1039F0008093DA010895893F19F40E94A81C05C03C +:103A00008A3F31F40E94A81C81958093DC010895BF +:103A10008B3F21F40E94A81C819504C08C3F29F49F +:103A20000E94A81C8093DD010895843F21F48091B9 +:103A3000D901816017C0853F21F48091D90182604E +:103A400011C0863F21F48091D90184600BC0873F6B +:103A500021F48091D901886005C0883F31F48091BC +:103A6000D90180618093D90108958D3F21F480911F +:103A7000D70181600BC08E3F21F48091D701826015 +:103A800005C08F3F29F48091D70184608093D701CE +:103A90000895803F39F48091DB0187FF6CC010925C +:103AA000DB0169C0813F29F48091DB011816BCF36A +:103AB00062C09091DA01823F29F497FF5CC01092B6 +:103AC000DA0159C0833F19F41916CCF354C0893F69 +:103AD00041F48091DC0118160CF04DC01092DC010D +:103AE0004AC08A3F29F48091DC0187FF44C0F6CFA9 +:103AF0008B3F39F48091DD0187FF3DC01092DD01DD +:103B00003AC08C3F29F48091DD011816BCF333C014 +:103B1000843F21F48091D9018E7F17C0853F21F425 +:103B20008091D9018D7F11C0863F21F48091D90108 +:103B30008B7F0BC0873F21F48091D901877F05C01F +:103B4000883F31F48091D9018F7E8093D90113C0D1 +:103B50008D3F21F48091D7018E7F0BC08E3F21F4E1 +:103B60008091D7018D7F05C08F3F29F48091D701C7 +:103B70008B7F8093D7018091DA0181110EC08091F3 +:103B8000DB0181110AC08091DC01811106C08091A6 +:103B9000DD01811102C01092D801089589ED91E0F4 +:103BA0000E9409100E94851B9093D6018093D50135 +:103BB00008951F93CF93DF938091D5019091D60103 +:103BC0000E94911BAC019091D801992321F0209182 +:103BD000120130E006C0209113018AE0289F900175 +:103BE00011244217530708F486C08091DA01C0916E +:103BF000DB01D091DC011091DD01811107C0C11101 +:103C000076C0D11174C0111172C075C09F3F19F0F8 +:103C10009F5F9093D801181624F40E945F1C809334 +:103C2000DA018091DA0187FF05C00E945F1C81954F +:103C30008093DA011C1624F40E945F1C8093DB0140 +:103C40008091DB0187FF05C00E945F1C81958093F6 +:103C5000DB016091DA01662339F1C091DB01CC23ED +:103C600019F1772767FD7095872F972F0E946A219A +:103C700023E333E343E35FE30E94CE210E94372135 +:103C80006093DA016C2F772767FD7095872F972F48 +:103C90000E946A2123E333E343E35FE30E94CE21E2 +:103CA0000E9437216093DB011D1624F40E94A81C9A +:103CB0008093DC018091DC0187FF05C00E94A81C75 +:103CC00081958093DC01111624F40E94A81C809336 +:103CD000DD018091DD0187FF05C00E94A81C819550 +:103CE0008093DD01DF91CF911F910C94CE1D9F3FFA +:103CF00009F08ECF96CFDF91CF911F910895E9ED16 +:103D0000F1E085E0DF011D928A95E9F71092D80174 +:103D10001092D7010895833081F128F4813059F051 +:103D20008230D1F00895853009F449C0B8F1863069 +:103D300009F456C0089580911301262F30E0280F12 +:103D4000311D2F3F310524F4680F6093130108954E +:103D50008FEF80931301089580911201262F30E098 +:103D6000280F311D2F3F310524F4680F6093120195 +:103D700008958FEF80931201089580911101262FED +:103D800030E0280F311D2F3F310524F4680F609378 +:103D9000110108958FEF8093110108958091100112 +:103DA000262F30E0280F311D2F3F310524F4680FF6 +:103DB0006093100108958FEF809310010895809112 +:103DC0000F01262F30E0280F311D2F3F310524F43D +:103DD000680F60930F0108958FEF80930F0108958E +:103DE00080910E01262F30E0280F311D2F3F310525 +:103DF00024F4680F60930E0108958FEF80930E01F5 +:103E00000895833011F128F4813049F0823091F027 +:103E10000895853081F120F18630C1F108958091B7 +:103E20001301681720F4861B8093130108951092E4 +:103E30001301089580911201681720F4861B809366 +:103E400012010895109212010895809111016817CE +:103E500020F4861B8093110108951092110108959A +:103E600080911001681720F4861B8093100108953B +:103E700010921001089580910F01681720F4861B9D +:103E800080930F01089510920F01089580910E0103 +:103E9000681720F4861B80930E01089510920E017E +:103EA00008950F931F938B3109F46EC098F58B30F2 +:103EB00009F49BC0B8F4863009F44AC0873009F48D +:103EC00051C0853009F098C00E94D4140FEF13ED53 +:103ED00020E3015010402040E1F700C000000E94A4 +:103EE000E01B83C0803109F462C068F48E3009F0B1 +:103EF00083C08091CF0182FB222720F991E0922795 +:103F000090FB82F94AC0863109F46FC0893109F407 +:103F10006CC072C0853309F46AC068F4873209F452 +:103F200066C028F48E3108F467C08D514BC08932C9 +:103F300009F45DC061C0833438F48A3308F041C0AD +:103F4000883309F452C058C0833409F450C054C0B7 +:103F50008091CF01817F8E7F8093CF0181E080931C +:103F6000DF014BC09091CF01892F8095817080FB3C +:103F700090F929F0966098609093CF013EC0997FA8 +:103F8000977F9093CF0131C08091CF0181FB222791 +:103F900020F991E0922790FB81F98093CF0199233A +:103FA00021F18091CF0181608093CF011EC080916B +:103FB000CF0183FB222720F991E0922790FB83F920 +:103FC000ECCF895341E050E060E070E08A019B0152 +:103FD00004C0000F111F221F331F8A95D2F7C90199 +:103FE000B8010E9494180E94D41481E006C061E0D8 +:103FF00070E080E090E0F5CF80E01F910F91089590 +:1040000080E0089580E00895CF93C82F8091DF016C +:10401000813069F018F08230C9F184C0E0910C0160 +:10402000F0910D018081823209F07EC007C0E091DD +:104030000C01F0910D018081823261F48C2F0E947D +:104040000020811104C08C2F0E94511F1DC081E0EF +:1040500090E01AC08C2F0E940220811114C0C4313C +:1040600079F048F4CB3079F0C03109F061C082E0DA +:104070008093DF0108C0C93219F0C83321F058C05D +:104080001092DF0155C081E0817054C0C93291F1B6 +:1040900020F5C43179F1B0F4C73009F047C08EE1A2 +:1040A0008093130182E3809312018AE080931101CF +:1040B00084E18093100188E080930F0188E280936F +:1040C0000E0134C0CE51C63088F5EC2FF0E0E95C2B +:1040D000FE4F80818093DE0129C0CE34E9F020F4C8 +:1040E000CB3421F56AE013C0C13579F0C235F1F463 +:1040F00061E00DC08091DE01882319F01092DE018D +:1041000015C081E08093DF0115C061E006C0809199 +:10411000DE010E948B1E0AC06AE08091DE010E94CF +:10412000011F04C01092DF0180E004C081E002C0E2 +:1041300080E0AACFCF9108950E943A1C811102C05D +:104140000E941B1C0E94561C8093EF0180FF02C03E +:10415000869501C080E00C9485038091EF01982F33 +:104160009695292F30E0233031054CF49F5F990F4D +:104170008170892B81608093EF010E945A1C80918D +:10418000EF0186950C9485038091EF01982F969509 +:1041900091F09158990F8170892B8093EF018E7F58 +:1041A00091E009F490E08091EF0190FB80F9809319 +:1041B000EF010E945A1C8091EF0186950C948503B3 +:1041C0008091EF01982F909590FB80F98093EF01FB +:1041D0000E945A1C8091EF0180FF02C0869501C0A9 +:1041E00080E00C9485039091EF01892F86958F5F75 +:1041F0008F779170843028F4880F892B8093EF019A +:1042000002C09093EF018091EF018E7F91E009F45D +:1042100090E08091EF0190FB80F98093EF010E9484 +:104220005A1C8091EF0186950C9485032091EF0133 +:10423000922F96958927982F990F822F8170892B1D +:104240008093EF018E7F91E009F490E08091EF017F +:1042500090FB80F98093EF010E945A1C8091EF013E +:1042600086950C9485038091EF018695089504D07E +:104270006894B1118DC0089570D088F09F5790F068 +:10428000B92F9927B751A0F0D1F0660F771F881F7B +:10429000991F1AF0BA95C9F712C0B13081F077D0E2 +:1042A000B1E0089574C0672F782F8827B85F39F080 +:1042B000B93FCCF3869577956795B395D9F73EF4DA +:1042C00090958095709561957F4F8F4F9F4F089582 +:1042D000E89409C097FB3EF49095809570956195A0 +:1042E0007F4F8F4F9F4F9923A9F0F92F96E9BB2756 +:1042F0009395F695879577956795B795F111F8CFD2 +:10430000FAF4BB0F11F460FF1BC06F5F7F4F8F4F3C +:104310009F4F16C0882311F096E911C0772321F032 +:104320009EE8872F762F05C0662371F096E8862FCA +:1043300070E060E02AF09A95660F771F881FDAF721 +:10434000880F9695879597F9089557FD9058440FD3 +:10435000551F59F05F3F71F04795880F97FB991FE4 +:1043600061F09F3F79F087950895121613061406A1 +:10437000551FF2CF4695F1DF08C01616170618062E +:10438000991FF1CF86957105610508940895E89409 +:10439000BB2766277727CB0197F908950BD078C004 +:1043A00069D028F06ED018F0952309F05AC05FC08C +:1043B0001124EECFCADFA0F3959FD1F3950F50E003 +:1043C000551F629FF001729FBB27F00DB11D639FC7 +:1043D000AA27F00DB11DAA1F649F6627B00DA11D6D +:1043E000661F829F2227B00DA11D621F739FB00D13 +:1043F000A11D621F839FA00D611D221F749F332783 +:10440000A00D611D231F849F600D211D822F762F1B +:104410006A2F11249F5750408AF0E1F088234AF018 +:10442000EE0FFF1FBB1F661F771F881F9150504064 +:10443000A9F79E3F510570F014C0AACF5F3FECF37F +:10444000983EDCF3869577956795B795F795E79550 +:104450009F5FC1F7FE2B880F911D9695879597F961 +:10446000089597F99F6780E870E060E008959FEFF6 +:1044700080EC089500240A941616170618060906FB +:10448000089500240A9412161306140605060895CA +:10449000092E0394000C11F4882352F0BB0F40F452 +:1044A000BF2B11F460FF04C06F5F7F4F8F4F9F4F92 +:1044B000089597FB072E16F4009407D077FD09D0D6 +:1044C0000E94732207FC05D03EF4909581959F4F82 +:1044D0000895709561957F4F0895EE0FFF1F059029 +:1044E000F491E02D0994AA1BBB1B51E107C0AA1F40 +:1044F000BB1FA617B70710F0A61BB70B881F991F85 +:104500005A95A9F780959095BC01CD010895F99928 +:10451000FECF92BD81BDF89A992780B50895A8E194 +:10452000B0E042E050E00C94AF22262FF999FECF84 +:1045300092BD81BDF89A019700B4021639F01FBAF6 +:1045400020BD0FB6F894FA9AF99A0FBE0895019615 +:10455000272F0E9496220C949522DC01CB01FC01AE +:10456000F999FECF06C0F2BDE1BDF89A319600B4CC +:0E4570000D9241505040B8F70895F894FFCFD7 +:10457E00FF2209B0098D095909250901C40128082E +:10458E00140A321E1F0F03764F5F6F7F49694379FE +:10459E003929190959536366404D361306C60590DD +:1045AE00053C0555056E05010203040506070809BD +:0245BE000000FB +:00000001FF diff --git a/keyboards/atomic/keymaps/default/keymap.c b/keyboards/atomic/keymaps/default/keymap.c new file mode 100644 index 000000000..0ede363a1 --- /dev/null +++ b/keyboards/atomic/keymaps/default/keymap.c @@ -0,0 +1,234 @@ +#include "atomic.h" + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define ___T___ KC_TRNS +#define XXXXXXX KC_NO + +// Layer shorthand +#define _QW 0 +#define _CM 1 +#define _DV 2 +#define _LW 3 +#define _RS 4 +#define _FN 5 + +/* ROW 1 OPTIONS + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + * .- 2u ------------. + * | KEY . XXXXXX | + * '-----------------' + */ + +/* ROW 2 OPTIONS + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + * .- 2u ------------. .- 2u ------------. + * | KEY . XXXXXX | | KEY . XXXXXX | + * '-----------------' '-----------------' + */ + +/* ROW 3 OPTIONS + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + * .- 2u ------------. .- 2u ------------. + * | KEY . XXXXXX | | X | + * '-----------------' '-----------------' + * .- 2u ------------. + * | X | + * '-----------------' + */ + +/* ROW 4 OPTIONS + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + * .- 2u ------------. + * | KEY . XXXXXX | + * '-----------------' + * .- 2u ------------. .- 2u ------------. + * | KEY . XXXXXX | | KEY . XXXXXX | + * '-----------------' '-----------------' + * .- 2u ------------. + * | KEY . XXXXXX | + * '-----------------' + */ + +/* ROW 5 OPTIONS + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + * .- 1.25u --+ 1.25u ------- 1.25u +--- 1.25u --- 2u -------------- 1.25u ---- 1.25u ------ 1.25u +---- 1.25u . + * | X | X | X | X | X | X | X | X | X | + * '-----------------------------------------------------------------------------------------------------------' + * .- 2u ------------. + * | X | + * '-----------------' + * .--------------------- 6.25u ----------------------------. + * | X | + * '--------------------------------------------------------' + * .----------------------- 6.25u ---------------------------- 1.25u ---- 1.25u ---- 1.25u ------ 1.25u +-- 1.25u --. + * | X | X | X | X | X | X | + * '----------------------------------------------------------------------------------------------------------------' + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* QWERTY - MIT ENHANCED / GRID COMPATIBLE + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | DEL | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | ESC | A | S | D | F | G | H | J | K | L | ; | ' | XXXXXX . ENTER | PG UP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN | + * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| + * | BRITE | LCTRL | LALT | LGUI | RAISE | XXXXXX . SPACE | LOWER | RGUI | RALT | RCTRL | FN | LEFT | DOWN | RIGHT | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [_QW] = { /* QWERTY */ + { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC }, + { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL }, + { KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP }, + { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN }, + { M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC, KC_SPC, MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT }, + }, + +/* COLEMAK - MIT ENHANCED / GRID COMPATIBLE + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | TAB | Q | W | F | P | G | J | L | U | Y | ; | [ | ] | \ | DEL | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | ESC | A | R | S | T | D | H | N | E | I | O | ' | XXXXXX . ENTER | PG UP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | LSHIFT | Z | X | C | V | B | K | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN | + * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| + * | BRITE | LCTRL | LALT | LGUI | RAISE | XXXXXX . SPACE | LOWER | RGUI | RALT | RCTRL | FN | LEFT | DOWN | RIGHT | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [_CM] = { /* COLEMAK */ + { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC }, + { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL }, + { KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP }, + { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN }, + { M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC, KC_SPC, MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT }, + }, + +/* DVORAK - MIT ENHANCED / GRID COMPATIBLE + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | TAB | ' | , | . | P | Y | F | G | C | R | L | [ | ] | \ | DEL | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | ESC | A | O | E | U | I | D | H | T | N | S | / | XXXXXX . ENTER | PG UP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | LSHIFT | ; | Q | J | K | X | B | M | W | V | Z | XXXXXX . RSHIFT | UP | PG DN | + * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| + * | BRITE | LCTRL | LALT | LGUI | RAISE | XXXXXX . SPACE | LOWER | RGUI | RALT | RCTRL | FN | LEFT | DOWN | RIGHT | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [_DV] = { /* DVORAK */ + { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC }, + { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL }, + { KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, KC_ENT, KC_ENT, KC_PGUP }, + { KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN }, + { M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC, KC_SPC, MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT }, + }, + +/* LOWERED + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | | ! | @ | # | $ | % | ^ | & | * | ( | ) | | | | INS | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | XXXXXX . | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | XXXXXX . | | | + * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| + * | | | | | | XXXXXX . | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [_LW] = { /* LOWERED */ + { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ }, + { _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, _______, KC_INS }, + { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, ___T___, ___T___, _______ }, + { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + }, + +/* RAISED + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | | | INS | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | XXXXXX . | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | XXXXXX . | | | + * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| + * | | | | | | XXXXXX . | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [_RS] = { /* RAISED */ + { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ }, + { _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, KC_INS }, + { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, ___T___, ___T___, _______ }, + { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + }, + +/* FUNCTION + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | NUM LK | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | SCR LK | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 | PAUSE | PR SCR | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | CAP LK | MS BT5 | MS BT4 | MS BT3 | MS BT2 | SLOW M | FAST M | NEXT | VOL+ | VOL- | PLAY | | XXXXXX . | WHEEL+ | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | | | QWERTY | COLEMK | DVORAK | | | | | | | XXXXXX . | MOUS U | WHEEL- | + * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| + * | | | | | | XXXXXX . MS BT1 | | | | | | MOUS L | MOUS D | MOUS R | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [_FN] = { /* FUNCTION */ + { KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ }, + { KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR }, + { KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U }, + { _______, _______, DF(_QW), DF(_CM), DF(_DV), _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, + { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, + }, +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboards/atomic/keymaps/michelle.c b/keyboards/atomic/keymaps/michelle.c new file mode 100644 index 000000000..2364c46a1 --- /dev/null +++ b/keyboards/atomic/keymaps/michelle.c @@ -0,0 +1,183 @@ +#include "atomic.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = { /* Dvorak */ + { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_NO }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ + { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_INS, KC_DEL }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ +// │ X │ │ X │ +// └─────────────────┘ └─────────────────┘ + { KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, KC_NO, KC_PGUP }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ +// │ X │ │ X │ +// └─────────────────┘ └─────────────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ + { KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_NO, KC_UP, KC_PGDN }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ +// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ +// │ X │ │ X │ +// └─────────────────┘ └─────────────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ + { KC_LCTL, MO(1), KC_NO, KC_LALT, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_LGUI, MO(2), KC_LEFT, KC_DOWN, KC_RGHT }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 1.25u ──┬ 1.25u ───┬─── 1.25u ┬─── 1.25u ─┬─ 2u ────────────┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬──── 1.25u ┐ +// │ X │ X │ X │ X │ X │ X │ X │ X │ X │ +// └──────────┴──────────┴──────────┴───────────┴─────────────────┴──────────┴──────────┴──────────┴───────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ +// ┌───────────────────── 6.25u ────────────────────────────┐ +// │ X │ +// └────────────────────────────────────────────────────────┘ +// ┌─────────────────────── 6.25u ──────────────────────────┬─ 1.25u ──┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬── 1.25u ──┐ +// │ X │ X │ X │ X │ X │ X │ +// └────────────────────────────────────────────────────────┴──────────┴──────────┴──────────┴──────────┴───────────┘ + }, + [1] = { /* Qwerty + F keys */ + { KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, KC_NO }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ + { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_INS, KC_DEL }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ +// │ X │ │ X │ +// └─────────────────┘ └─────────────────┘ + { KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_NO, KC_PGUP }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ +// │ X │ │ X │ +// └─────────────────┘ └─────────────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ + { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, KC_UP, KC_PGDN }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ +// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ +// │ X │ │ X │ +// └─────────────────┘ └─────────────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ + { KC_LCTL, KC_TRNS, KC_NO, KC_LALT, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_LGUI, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 1.25u ──┬ 1.25u ───┬─── 1.25u ┬─── 1.25u ─┬─ 2u ────────────┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬──── 1.25u ┐ +// │ X │ X │ X │ X │ X │ X │ X │ X │ X │ +// └──────────┴──────────┴──────────┴───────────┴─────────────────┴──────────┴──────────┴──────────┴───────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ +// ┌───────────────────── 6.25u ────────────────────────────┐ +// │ X │ +// └────────────────────────────────────────────────────────┘ +// ┌─────────────────────── 6.25u ──────────────────────────┬─ 1.25u ──┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬── 1.25u ──┐ +// │ X │ X │ X │ X │ X │ X │ +// └────────────────────────────────────────────────────────┴──────────┴──────────┴──────────┴──────────┴───────────┘ + }, + [2] = { /* Numpad + qwerty shortcut keys */ + { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_P7, KC_P8, KC_P9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_NO }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ + { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_P4, KC_P5, KC_P6, KC_L, KC_SLSH, KC_EQL, KC_INS, KC_DEL }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ +// │ X │ │ X │ +// └─────────────────┘ └─────────────────┘ + { KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_P1, KC_P2, KC_P3, KC_S, KC_MINS, KC_ENT, KC_NO, KC_PGUP }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ +// │ X │ │ X │ +// └─────────────────┘ └─────────────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ + { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_X, KC_B, KC_P0, KC_P0, KC_PENT, KC_Z, KC_RSFT, KC_NO, KC_UP, KC_PGDN }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ +// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ +// │ X │ │ X │ +// └─────────────────┘ └─────────────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ + { KC_LCTL, KC_TRNS, KC_NO, KC_LALT, KC_NO, KC_NO, KC_SPC, KC_NO, KC_NO, KC_NO, KC_LGUI, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 1.25u ──┬ 1.25u ───┬─── 1.25u ┬─── 1.25u ─┬─ 2u ────────────┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬──── 1.25u ┐ +// │ X │ X │ X │ X │ X │ X │ X │ X │ X │ +// └──────────┴──────────┴──────────┴───────────┴─────────────────┴──────────┴──────────┴──────────┴───────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ +// ┌───────────────────── 6.25u ────────────────────────────┐ +// │ X │ +// └────────────────────────────────────────────────────────┘ +// ┌─────────────────────── 6.25u ──────────────────────────┬─ 1.25u ──┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬── 1.25u ──┐ +// │ X │ X │ X │ X │ X │ X │ +// └────────────────────────────────────────────────────────┴──────────┴──────────┴──────────┴──────────┴───────────┘ + }, +}; + +const uint16_t PROGMEM fn_actions[] = { +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + return MACRODOWN(TYPE(KC_T), END); + break; + } + return MACRO_NONE; +}; diff --git a/keyboards/atomic/keymaps/pvc/Makefile b/keyboards/atomic/keymaps/pvc/Makefile new file mode 100644 index 000000000..278407e6c --- /dev/null +++ b/keyboards/atomic/keymaps/pvc/Makefile @@ -0,0 +1,15 @@ +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend \ No newline at end of file diff --git a/keyboards/atomic/keymaps/pvc/compiled.hex b/keyboards/atomic/keymaps/pvc/compiled.hex new file mode 100644 index 000000000..c8cc6d8c0 --- /dev/null +++ b/keyboards/atomic/keymaps/pvc/compiled.hex @@ -0,0 +1,1700 @@ +:100000000C9483040C94C7040C94C7040C94C70488 +:100010000C94C7040C94C7040C94C7040C94C70434 +:100020000C94C7040C94C7040C94DB190C94AD1AFF +:100030000C9414280C94C7040C94C7040C94C704A3 +:100040000C94C7040C94F0050C94C7040C94C704DA +:100050000C94C7040C947C280C94C7040C94C7041B +:100060000C94C7040C94C7040C94C7040C94C704E4 +:100070000C94C7040C94C7040C94C7040C94C704D4 +:100080000C94940F0C94C7040C94C7040C94C704EC +:100090000C94C7040C94C7040C94C7040C94C704B4 +:1000A0000C94C7040C94C7040C94C7047A068D06FC +:1000B000A206B506BD06D306E906F206FC0607074A +:1000C00010071907210729073C073C073C073C0795 +:1000D0003C073C07370758063C076006690672066E +:1000E0001A1B3C1B2A1C3C1B2A1C811BA41B2A1C00 +:1000F000F91B0C1CFB1EFB1E2A1F2A1F691F891FD0 +:10010000DF20DF20941FDF2044204420AB20B420D8 +:10011000DF20D92051205120512051205120512041 +:100120005120512051205120512051205120512047 +:100130005120512061206F2076207D208720B02D16 +:10014000A62DB92D112E182E182E112E182E182E60 +:10015000DE2D182EE82DF22D182E182E182E182E02 +:10016000112E182E182E112E182ECB2D182E182EBB +:10017000FD2DFD2DFD2DFD2DFD2DFD2DFD2DFD2D2F +:10018000FD2D132E182E132E182E182E182E182E65 +:10019000182E182E182E182E182E182E182E132E34 +:1001A000182E182E112E902DFB2DFB2DFB2DFB2D27 +:1001B000FB2DFB2DFB2DFB2DFB2D132E0763423654 +:1001C000B79BD8A71A39685618AEBAAB558C1D3CE8 +:1001D000B7CC5763BD6DEDFD753EF6177231BF00AC +:1001E0000000803F08000000BE922449123EABAAE6 +:1001F000AA2ABECDCCCC4C3E00000080BEABAAAA41 +:10020000AA3E00000000BF000000803F0000000088 +:1002100000084178D3BB4387D1133D190E3CC3BDC1 +:100220004282AD2B3E68EC8276BED98FE1A93E4C6E +:1002300080EFFFBE01C4FF7F3F0000000000000010 +:10024000000000000000000000010204060A0F1771 +:10025000202C3A4A5D71879DB3C7DAE9F5FCFFFCB3 +:10026000F5E9DAC7B39D87715D4A3A2C20170F0A6A +:10027000060402010000000000000000000000224F +:1002800029001E001F00200021002200230024005E +:100290002500260027002D002E002A002A002B0012 +:1002A00014001A000800150017001C0018000C00AC +:1002B000120013002F00300031004C003900040000 +:1002C0001600070009000A000B000D000E000F00C9 +:1002D00033003400280028004B00E1001D001B0003 +:1002E0000600190005001100100036003700380024 +:1002F000E500E50052004E00E000E3000530E200BA +:1003000003302C002C000430C000E6006500E4003F +:10031000500051004F0029001E001F002000210046 +:100320002200230024002500260027002D002E0097 +:100330002A002A002B0014001A00090013000A00EA +:100340000D000F0018001C0033002F00300031009A +:100350004C002A00040015001600170007000B00CF +:10036000110008000C0012003400280028004B0087 +:10037000E1001D001B000600190005000E00100022 +:10038000360037003800E500E50052004E00E0007E +:10039000E3000530E20003302C002C000430C000E4 +:1003A000E6006500E400500051004F0029001E00E7 +:1003B0001F00200021002200230024002500260029 +:1003C00027002F0030002A002A002B0034003600BE +:1003D000370013001C0009000A00060015000F007A +:1003E00038002E0031004C003900040012000800D3 +:1003F00018000C0007000B001700110016002D005C +:10040000280028004B00E100330014000D000E000E +:100410001B00050010001A0019001D00E500E50092 +:1004200052004E00E000E3000530E20003302C00F3 +:100430002C000430C000E6006500E40050005100CC +:100440004F004600153017301830193000000000FA +:1004500053005400550000000000470048004800C9 +:1004600001003A003B003C003D00000000005F003E +:1004700060006100560001000100010049003900E0 +:100480003E003F0040004100000000005C005D00B5 +:100490005E0057000100010001004A000100420017 +:1004A0004300440045000000000059005A005B0072 +:1004B00058000100010001004D0001000100010091 +:1004C00001000100620062000100E60063005800C4 +:1004D000010001000100010001003A003B003C0066 +:1004E0003D003E003F004000410042004300440008 +:1004F000450001000100010021022F022F00260209 +:10050000220220022702300030021F0201000100F7 +:100510000100490001002302250257005600330064 +:1005200033022D02340034023500010001000100C5 +:100530004A000100310224021E0235023800310057 +:100540002E003602370238020100010001004D0082 +:100550000100010001000100010001000100010093 +:100560000100010001000100010001000100530031 +:100570003A003B003C003D003E003F00400041008F +:1005800042004300440045000100010047006800AC +:1005900069006A006B006C006D006E006F007000F7 +:1005A0007100720073000100480039000100010071 +:1005B0000100010001000100010001000100010033 +:1005C00001000100010046000100010001000100DE +:1005D0000100010001000100010001000100010013 +:1005E0000100A900A80001000100010001000100B4 +:1005F000AE00AE0001000100010001000100AC00EE +:10060000AA00AB000100FD00FE00FF00000000009A +:1006100000000000000000000000000000000000DA +:1006200000000000000000000000000000000000CA +:1006300000000000000000000000000000000000BA +:100640000000F800F700F600F500000000000000D0 +:10065000000000000000000000000000F9000100A0 +:10066000000000000000000000000000000000008A +:100670000000000001000100F000FA00010001008C +:10068000010001000100F400F4000100010001007C +:1006900001000100F200F100F30001000730083012 +:1006A00009300A300B300C300D3001000100010020 +:1006B00025502250010001000100003001300230BD +:1006C0000100010001000100010001000100010022 +:1006D0000100010001000100010001000100010012 +:1006E0000100010001000100010001000100010002 +:1006F0000100010001000100010001001430005060 +:100700000100063001000100010001000100265037 +:1007100001000100010001000100010001000100D1 +:10072000010001000100010001000100275001004B +:1007300028035400680065002000410074006F0029 +:100740006D006900630020004B00650079006200C5 +:100750006F0061007200640000002C034F00720003 +:10076000740068006F006C0069006E006500610035 +:10077000720020004B006500790062006F0061008C +:1007800072006400730000000403090409026D0094 +:10079000040100A0FA09040000010301010009217D +:1007A00011010001223F000705810308000A090426 +:1007B00001000103010200092111010001224D0085 +:1007C0000705820308000A09040200010300000073 +:1007D0000921110100012236000705830308000AE0 +:1007E0000904030001030000000921110100012296 +:1007F00039000705840310000112011001000000F8 +:1008000008EDFE190401000102000105010906A11D +:1008100001050719E029E7150025019508750181F3 +:1008200002050819012905950575019102950175C3 +:1008300003910105071900297715002501957875A1 +:10084000018102C005010980A1018502160100266F +:10085000B7001A01002AB700751095018100C00584 +:100860000C0901A1018503160100269C021A010052 +:100870002A9C02751095018100C005010902A101A1 +:100880000901A10005091901290515002501950592 +:100890007501810295017503810105010930093156 +:1008A0001581257F95027508810609381581257FF8 +:1008B000950175088106050C0A38021581257F957A +:1008C0000175088106C0C005010906A101050719C7 +:1008D000E029E7150025019508750181029501754C +:1008E00008810105081901290595057501910295F1 +:1008F00001750391010507190029FF150025FF95D2 +:100900000675088100C011241FBECFEFDAE0DEBFFC +:10091000CDBF04B603FE24C080917B0590917C0579 +:10092000A0917D05B0917E058730904BA740B04BDC +:10093000B9F410927B0510927C0510927D051092FF +:100940007E0514BE84B7877F84BF88E10FB6F89414 +:1009500080936000109260000FBEE0E0F8E309951C +:1009600014E0A0E0B1E0EEE0F7E602C005900D92E1 +:10097000A431B107D9F715E0A4E1B4E001C01D929C +:10098000AB37B107E1F70E9421170C9485330C9423 +:100990000000089581E008950C94C9040C94CA04E1 +:1009A0000C9441070E944F2F811105C0109216042C +:1009B000109215040DC080E290E00090170402C070 +:1009C000880F991F0A94E2F79093160480931504F8 +:1009D0001092140480916F00826080936F000895DC +:1009E0000E944F2F811105C0109216041092150419 +:1009F0000DC081E290E00090170402C0880F991F9B +:100A00000A94E2F7909316048093150482E0809391 +:100A1000140480916F00826080936F0008950E949B +:100A20004F2F811102C081E001C082E08093140445 +:100A3000089590916F0081E0911101C080E00895C8 +:100A40000E944F2F23E030E0281B3109220F209312 +:100A500018040895282F2F9880918000211108C034 +:100A6000877F8093800010928D0010928C001BC0B5 +:100A7000886080938000233018F08FEF9FEF0FC0C5 +:100A800083E090E0821B9109880F991F2FEF3FEFC1 +:100A9000A90102C0569547958A95E2F7CA0190933D +:100AA0008D0080938C000C9420050E941905811103 +:100AB00018C00E944F2F811105C010921604109289 +:100AC00015040DC081E290E00090170402C0880F69 +:100AD000991F0A94E2F790931604809315041092DC +:100AE000140490916F0082E0892780936F000E9428 +:100AF0001905811104C00E944F2F0C942A050895F6 +:100B0000CF93C82F0E94190540911704882329F01C +:100B100090916F009D7F90936F00C093170488237E +:100B2000D1F0209115043091160402C03695279516 +:100B30004A95E2F72F733327C90102C0880F991F26 +:100B4000CA95E2F7909316048093150480916F0084 +:100B5000826080936F00CF91089590911704292FA0 +:100B600030E0281B31092B30310510F080E002C045 +:100B7000981B892F0C94800590911704282F30E042 +:100B8000290F311D2B30310514F08AE001C0890F87 +:100B90000C9480050E94200584E080931704109235 +:100BA00014040895279A2F988FEF9FEF9093870052 +:100BB000809386008AE08093800089E180938100A1 +:100BC0000E94B82E0C94CA0585B7806885BF85B78A +:100BD000806885BF0E94D2056E9A769A0C94B607FB +:100BE0001F920F920FB60F9211242F933F938F9362 +:100BF0009F93EF93FF93E0911504F0911604CF01BA +:100C0000019690931604809315040090170402C077 +:100C1000F695E7950A94E2F7EF7380911404823019 +:100C200019F4E03251F404C0813039F4EF3329F47F +:100C300080916F008D7F80936F00F0E0E25CFD4F4C +:100C4000E49121E031E0E29FC001E39F900D112487 +:100C50000090180402C0969587950A94E2F7909345 +:100C60008D0080938C00FF91EF919F918F913F9128 +:100C70002F910F900FBE0F901F901895CF93DF9379 +:100C8000EC010E94702ABE0180E090E0DF91CF91DC +:100C90000C940A250F931F93462F50E04A315105BB +:100CA00008F0EAC0DC01FA01EA5AFF4F0C9449331C +:100CB00012968C91882309F4DFC00E945505DCC090 +:100CC00012968C91882309F4D7C081E00E94AD056B +:100CD000D3C012968C91882309F4CEC081E00E9483 +:100CE000BC05CAC012968C91882309F4C5C00E9425 +:100CF000CA05C2C012968C91882309F4BDC081E058 +:100D000090E00E943E060AE017ED23E23CE340E05B +:100D100064E070E080E792E012C012968C91882324 +:100D200009F4AAC082E090E00E943E060AE017EDB6 +:100D300023E23CE340E066E070E080E092E00E9465 +:100D400012139AC012968C91882309F495C084E0FE +:100D500090E00E943E060AE017ED23E23CE340E00B +:100D600068E070E080E392E0EACF12968C918823ED +:100D700011F083E007C083E013C012968C918823A2 +:100D800071F084E00E94872582E00E9480050E9425 +:100D9000F00447E063E084E00E94840D6DC084E0CD +:100DA0000E94A825F6CF12968C91882349F083E003 +:100DB0000E9480050E94D20485E00E9487255CC0C5 +:100DC00081E00E9480050E940F0585E00E94A82511 +:100DD00053C012968C91882309F44EC086E00E947D +:100DE000CD254AC012968C91882309F445C060E055 +:100DF00070E080E09EE308C012968C918823E1F1B8 +:100E000060E070E080E89EE30E94BC1335C012965B +:100E10008C91882389F160E070E080E09FE3F4CF5B +:100E200012968C91882341F160E070E080E49FE3AA +:100E3000EBCF12968C918823F9F08AE00E94CE13B2 +:100E40001BC012968C918823B9F08AE00E94C813C7 +:100E500013C012968C91882379F060E070E080E0F6 +:100E60009FE30E94BC1384E60E94C51305C012963E +:100E70008C9181110E940F2F80E090E01F910F91C3 +:100E800008950F931F93CF93C82F8FE39CE9019789 +:100E9000F1F700C000000E94A51381114BC0909192 +:100EA0001904C1FF0BC091FD14C000E010E09801CF +:100EB00040E062E070E080E591E03AC091FF09C057 +:100EC00000E010E0980140E062E070E080E491E032 +:100ED0002FC0C0FF0BC090FD14C000E010E09801CF +:100EE00040E062E070E080E391E022C090FF09C042 +:100EF00000E010E0980140E062E070E080E291E004 +:100F000017C0C2FF0BC092FD15C000E010E09801B1 +:100F100040E062E070E080E191E00AC092FF0AC028 +:100F200000E010E0980140E062E070E080E091E0D5 +:100F30000E941213C0931904CF911F910F9108952D +:100F40000F931F938FE39CE90197F1F700C0000016 +:100F50000AE017ED23E23CE340E06FE070E088ED4B +:100F600092E00E9412131F910F91089580E00E9459 +:100F7000DF130C94A0070F931F930AE017ED23E2F1 +:100F80003CE340E069E070E080E992E00E941213E7 +:100F90002FEF87EA91E6215080409040E1F700C0B2 +:100FA00000001F910F910C94C70E0F931F930AE03E +:100FB00017ED23E23CE340E065E070E088ED91E06E +:100FC0000E9412131F910F9108950F931F930AE02F +:100FD00017ED23E23CE340E067E070E080EA91E057 +:100FE0000E9412131F910F9108950F931F930AE00F +:100FF00017ED23E23CE340E068E070E080E691E03A +:101000000E9412131F910F91089581E008950C948E +:10101000050808950C94E40580916A04882309F476 +:1010200048C08091260490912704009779F40E948B +:10103000462890932704809326048091280490E00A +:10104000009771F48091290490E00AC00E94522810 +:1010500020915003309151032817390740F329C0DC +:101060000197880F991F880F991FFC01E65DFB4FC0 +:1010700060817181828193810E94FA0EE09128043F +:1010800084E0E89FF0011124E65DFB4F60817181EF +:10109000828193814FE050E00E94B2128091280437 +:1010A00090E001966091290470E00E9435338093AE +:1010B00028040C94CC0410926C040C94C70E81E0AC +:1010C00080936C040C94E5078F929F92AF92BF922D +:1010D000EF92FF920F931F93CF93DF93CDB7DEB7BD +:1010E000A3970FB6F894DEBF0FBECDBF7C01FC0105 +:1010F00000811181C8010E944326B8010E94660A3E +:101100008C01B7010E940708882309F4CCC1003282 +:10111000F0E51F0741F4F7018281882309F458C0E4 +:101120000E94AC13C0C10132F0E51F0741F4F70182 +:101130008281882309F44CC00E94B513B4C10232E5 +:10114000F0E51F0751F4F7018281882309F440C0BC +:101150000E94A8138111F0CFE3CF0332F0E51F07FF +:1011600039F4F7018281882399F10E945F089BC1BD +:101170000432F0E51F0739F4F7018281882341F139 +:101180000E945B0890C10532F0E51F0749F4F701A2 +:1011900082818823E9F080916C048111F1CFE5CF41 +:1011A0000632F0E51F0739F4F7018281882381F0C8 +:1011B0000E94E2130AC00732F0E51F0749F4F70165 +:1011C0008281882329F00E94ED130E94F5076BC1EC +:1011D00080916C04811105C0F70182818111CFC01B +:1011E00018C1003E110579F4F7018281882309F4C2 +:1011F0004DC00E94C70E81E080936B0410926A0478 +:101200001092290450C1023E110559F4F701828160 +:101210008823E1F10E94C70E10926B0410926A04B9 +:1012200042C1033E110591F4F7018281882371F1D7 +:101230000E94C70E10926B0481E080936A041092A2 +:10124000280410922704109226042DC1023511059E +:1012500059F4F7018281882309F425C18091500354 +:10126000909151030A970DC00135110579F4F701EA +:101270008281882309F417C1809150039091510312 +:101280000A9690935103809350030DC140915403EB +:1012900083E2EFE6F3E0DE01119601900D928A956C +:1012A000E1F7F701808121E030E02C0F3D1F280F8E +:1012B000311DC9012091520330915303FC01E20F0B +:1012C000F31F6081772767FD7095640F711D882774 +:1012D00077FD8095982F0E94573020E030E040E461 +:1012E00051E40E94BC2F4B015C01F701218185E094 +:1012F00090E0821B9109BC01882777FD8095982F8B +:101300000E9457309B01AC01C501B4010E94542FCB +:101310009B01AC0160E070E080E090E40E94CA3183 +:1013200020E030E04CED50E40E9467314B015C015D +:10133000F70182818823D1F04FE050E0C501B4016C +:101340000E94B21280916B048823A1F0809129043D +:1013500024E0829FF0011124E65DFB4F80829182A0 +:10136000A282B3828F5F8093290404C0C501B401B7 +:101370000E94FA0E0F3F110508F02ECF94C0809105 +:10138000250481111FC0043130E5130709F051C055 +:101390000E94090881E0809325040E9446289093CA +:1013A00024048093230410921C0410921E041092B3 +:1013B0001D041092200410921F0410922204109217 +:1013C000210471C080912304909124040E9452282A +:1013D000883C910570F480911C04E82FF0E0EE0F3A +:1013E000FF1FE35EFB4F118300838F5F80931C041C +:1013F0005AC0043880E5180721F00538104501F17E +:101400003AC0F7018281882341F010921A0482E0E9 +:101410001EC0043830E5130759F580911A04811174 +:1014200006C086E20E949F1D86E20E94671E82E03F +:101430001CC00438F0E51F0741F305381045D9F406 +:10144000F7018281882331F010921B0480E20E9410 +:10145000B61E29C080911B04811106C087E20E943C +:101460009F1D87E20E94671E80E20E94BD1E1BC076 +:101470000538104529F381E080931A0480931B04FA +:10148000C701A3960FB6F894DEBF0FBECDBFDF91A4 +:10149000CF911F910F91FF90EF90BF90AF909F90D1 +:1014A0008F900C94CE0480E0A3960FB6F894DEBF24 +:1014B0000FBECDBFDF91CF911F910F91FF90EF90A5 +:1014C000BF90AF909F908F90089508959FE0799F6F +:1014D000F00111249BE4899FE00DF11D1124E60F1A +:1014E000F11DEE0FFF1FE058FD4F85919491089577 +:1014F000880F991FFC01E250FF4F85919491089548 +:10150000880F991FFC01E258FD4F85919491089531 +:101510000F931F93CF93DF93EC01811521E3920783 +:10152000A0F5C11580E3D80708F0D7C0C83ED105A3 +:10153000D8F4C03ED10508F007C2C83AD10578F406 +:10154000C53AD10508F06AC0C130D10509F463C0BD +:1015500008F4F7C1C430D10508F0F6C1F2C1CB3BA5 +:10156000D10508F466C0EDC1C11590E2D90708F0B5 +:10157000AFC0C11521E0D20708F0E6C1C03FD105D8 +:1015800008F4DFC18E0110651FC2C03880E5D8079E +:1015900000F5C03790E5D90708F0A3C0C11520E5D4 +:1015A000D20709F4ACC050F4CE01905480319F4072 +:1015B00008F0C7C1DF708E01106A06C2C13080E535 +:1015C000D80709F4AEC0C43190E5D90708F4AFC01C +:1015D000B8C1C33820E5D20709F48EC050F4C13831 +:1015E00090E5D90709F482C008F083C000E011ED4E +:1015F000EBC1C03181E5D80708F4A3C1C11597E557 +:10160000D90708F436C1CE0190578115904108F0F2 +:1016100098C1DF7093C101E010E0D6C1C53AD10591 +:1016200009F494C1C63AD10509F093C102E810E467 +:10163000CBC1C83AD10509F48FC1C93AD10509F423 +:101640008EC1CA3AD10509F48DC1CB3AD10509F44E +:101650008CC1CC3AD10509F48BC1CD3AD10509F43E +:101660008AC1C03BD10509F489C1CE3AD10509F43C +:1016700088C1CF3AD10509F487C1C13BD10509F42E +:1016800086C1C23BD10509F485C1C33BD10509F42C +:1016900084C1C43BD10509F483C1C53BD10509F41C +:1016A00082C1C63BD10509F481C1C73BD10509F40C +:1016B00080C1C83BD10509F47FC1C93BD10509F4FC +:1016C0007EC1CA3BD10509F47DC100E014E47CC1B0 +:1016D000CE019F700E94800A78C1DD278E01106CB8 +:1016E00073C1CF70DD278E01146D6EC100E010ED67 +:1016F0006BC100E012ED68C100E013ED65C10E940E +:101700004A210E94C70E0E94BB078FEF94E32CE092 +:10171000815090402040E1F700C000000E94A128C5 +:1017200053C180914D05816080934D054DC10E944C +:10173000582A811102C00E94342A0E94752A90E022 +:1017400090937A0580937905C23080E5D80721F41B +:1017500080917905816086C0C43090E5D90721F475 +:101760008091790582607EC0C63020E5D20721F4E1 +:1017700080917905846076C0C83080E5D80719F477 +:101780008091790527C0CA3090E5D90721F480916E +:101790007905806167C0CC3020E5D20721F48091C3 +:1017A000790580625FC0CE3080E5D80721F4809152 +:1017B0007905806457C0C03190E5D90721F4809144 +:1017C000790580684FC0C23120E5D20729F48091A5 +:1017D00079058460886046C0C33080E5D80721F46D +:1017E000809179058E7F3EC0C53090E5D90721F400 +:1017F000809179058D7F36C0C73020E5D20721F46E +:10180000809179058B7F2EC0C93080E5D80719F407 +:101810008091790526C0CB3090E5D90721F48091DD +:1018200079058F7E1FC0CD3020E5D20721F480914D +:1018300079058F7D17C0CF3080E5D80721F48091DE +:1018400079058F7B0FC0C13190E5D90721F48091D4 +:1018500079058F7707C0C331D04531F48091790580 +:101860008B7F877F80937905809179050E94792A03 +:10187000ABC08D2F99278F70992781309105D9F4AE +:101880009E012370332702C0880F991F2A95E2F723 +:101890009C688E0144E0000F111F4A95E1F7002774 +:1018A0001370802B912B53E0CC0FDD1F5A95E1F77D +:1018B000C076DD272FC08230910531F4DC2FCC2794 +:1018C0008E01016F106A80C08330910569F4CE01EA +:1018D0008370992701E010E002C0000F111F8A9564 +:1018E000E2F7C8019C680FC084309105B9F4CE01BD +:1018F0008370992701E010E002C0000F111F8A9544 +:10190000E2F7C8019A6823E0CC0FDD1F2A95E1F7C2 +:10191000C07ED7708C010C2B1D2B56C085309105D5 +:1019200031F4DC2FCC278E01046F106A4DC006976E +:1019300009F04AC0CF71DD27DC2FCC278E01106261 +:1019400043C000E010E040C08E013EC001E810E45A +:101950003BC003E810E438C002EE14E435C009EEE1 +:1019600014E432C00AEE14E42FC005EB14E42CC0DA +:1019700006EB14E429C007EB14E426C00CEC14E4D5 +:1019800023C00DEC14E420C003E815E41DC00AE8F0 +:1019900015E41AC002E915E417C004E915E414C0FF +:1019A00001E216E411C003E216E40EC004E216E4FC +:1019B0000BC005E216E408C006E216E405C007E223 +:1019C00016E402C00AE216E4C801DF91CF911F912C +:1019D0000F9108959FE0799FF00111249BE4899F66 +:1019E000E00DF11D1124E60FF11DEE0FFF1FE05871 +:1019F000FD4F85919491803E9105E0F4803C9105E6 +:101A000058F58133910509F46FC048F48932910586 +:101A100009F463C08A32910509F46DC072C089333C +:101A20009105E9F082389105D1F08533910509F4EB +:101A30004DC067C0833E910581F138F4803E910529 +:101A4000B9F0823E9105D9F05CC0863E910561F106 +:101A5000873E9105A1F155C00E94780A0895209112 +:101A6000790520FD02C021FF4CC080EE90E049C006 +:101A70008091790580FFF9CF89E390E042C08091A1 +:101A8000790582FF0EC08091790584FF03C080E054 +:101A900090E037C083EE90E034C08091790582FFFA +:101AA000F2CF82EE90E02DC08091790583FF0BC0CC +:101AB0008091790584FDEBCF87EE90E022C0809184 +:101AC000790583FFF5CF86EE90E01BC08091790504 +:101AD00085FF07C089E290E014C08091790585FFF9 +:101AE000F9CF85E390E00DC08091790586FF07C0AE +:101AF0008AE290E006C08091790586FFF9CF81E304 +:101B000090E00E94880A0895CF92DF92EF92FF92B0 +:101B10000F931F9301E010E020E030E068017901AD +:101B200004C0CC0CDD1CEE1CFF1C8A95D2F704C04F +:101B3000000F111F221F331F6A95D2F70C291D2990 +:101B40002E293F29C0903005D0903105E090320514 +:101B5000F0903305C022D122E222F322842FC01656 +:101B6000D106E206F30641F41F910F91FF90EF902A +:101B7000DF90CF900C9487251F910F91FF90EF90ED +:101B8000DF90CF900C94A8250C94D004E82FF0E0BF +:101B9000EF55FC4F8081E82FEF70F0E082958F7059 +:101BA00021E030E0A90102C0440F551F8A95E2F7F9 +:101BB00040A308950F931F93CF93DF9385B7806859 +:101BC00085BF85B7806885BFC4E0D0E001E010E044 +:101BD000FE01EF55FC4F8081E82FEF70F0E021A16E +:101BE00082958F70A80102C0440F551F8A95E2F7B5 +:101BF000CA01822B81A38C2F0E94C60D219740F72A +:101C00008EE090E061E070E0FC01EE56FC4F208138 +:101C1000E22FEF70F0E042A122952F70DB0102C0AD +:101C2000AA0FBB1F2A95E2F79D01242B22A301973F +:101C300058F7DF91CF911F910F910C940A08EF9202 +:101C4000FF920F931F93CF93DF9307E714E0C4E055 +:101C5000EE24E394F12CD5E08C2F0E94C60D8EE08B +:101C600090E040E050E0FC01EE56FC4F6081E62F32 +:101C7000EF70F0E020A130E062956F7002C0359502 +:101C800027956A95E2F720FD09C09701082E02C04A +:101C9000220F331F0A94E2F7422B532B019718F7B8 +:101CA000F801929182918F018417950721F0518359 +:101CB0004083D09355038C2F0E94C60DC15060F60F +:101CC0008091550387FD1FC08150809355038F3F3E +:101CD00039F08FE99FE00197F1F700C0000013C0D1 +:101CE00080E090E0FC01E958FB4FDC01A359BB4FB9 +:101CF00018962D913C911997318720870297863F3E +:101D0000EFEF9E0779F70E940C0881E0DF91CF91F9 +:101D10001F910F91FF90EF900895E82FF0E0EE0FE4 +:101D2000FF1FE958FB4F80819181089508950F931B +:101D30001F93CF9301E814E0C0E0F80192918291E3 +:101D40008F010E94BE27C80FF4E007371F07A9F7CD +:101D50008C2FCF911F910F9108950E94582A8111C5 +:101D600002C00E94342A0E94872A809364053E9A0A +:101D7000809171008D7F8093710082E0809390004C +:101D80008AE18093910081E080938304089580919B +:101D90008304811102C00E94AD0E1092D3041092F0 +:101DA000D204809171008D7F8093710080919000AA +:101DB0008F73809390001092950410929404109267 +:101DC000CC041092CD041092CE041092CF04109245 +:101DD000CB041092CA04EAEAF4E0AAE9B4E0119252 +:101DE0001192119211921D921D9284E0EA3CF80723 +:101DF000B1F70895CF92DF92EF92FF920F931F9366 +:101E0000CF93DF9320919404222309F484C06B01C3 +:101E10007C0180918304811102C00E94AD0E0AEC06 +:101E200014E0C7E0D0E0A7019601F80192918291F9 +:101E3000729162918F010E94B82F811131C0FE0111 +:101E4000EE0FFF1FEE0FFF1FE655FB4F10821182B2 +:101E500012821382DE01AA0FBB1FA656BB4F11963A +:101E60001C921E92C730D105E9F02196448155811C +:101E700066817781408351836283738314821582E4 +:101E80001682178212968D919C91139711969C93AE +:101E90008E9313961C921E92129734961296E2CF4E +:101EA000219708F68091D2049091D304019797FD71 +:101EB00005C09093D3048093D20404C01092D3043D +:101EC0001092D2048091D2049091D3042091D00436 +:101ED0003091D1042817390724F01092D1041092C0 +:101EE000D004892BC1F4809171008D7F80937100A3 +:101EF000809190008F73809390001092CC04109288 +:101F0000CD041092CE041092CF041092CB04109204 +:101F1000CA0410929404DF91CF911F910F91FF900A +:101F2000EF90DF90CF9008951F920F920FB60F920F +:101F300011244F925F926F927F928F929F92AF92F5 +:101F4000BF92CF92DF92EF92FF922F933F934F93E6 +:101F50005F936F937F938F939F93AF93BF93CF9331 +:101F6000DF93EF93FF9380919404882309F49BC13E +:101F7000C091D204D091D3041C161D060CF093C15D +:101F8000409084045090850460908604709087048B +:101F900020E030E0A901C301B2010E9463311816AC +:101FA0000CF065C0C130D10509F452C08091D00455 +:101FB0009091D104BE010E9435337C019093D104ED +:101FC0008093D0048090960490909704A0909804F9 +:101FD000B090990420E030E040E85FE3C501B4012F +:101FE0000E94542F609396047093970480939804F2 +:101FF00090939904F701EE0FFF1FEE0FFF1FE655B8 +:10200000FB4FA301920160817181828193810E94C3 +:10201000BC2F20E030E040E05EE30E9467319B018E +:10202000AC01C501B4010E94633118168CF4C701DC +:102030000196BE010E9435339093D1048093D00461 +:10204000109296041092970410929804109299049A +:10205000E091D004F091D104EE0FFF1FEE0FFF1FAF +:10206000E655FB4F6081718182819381D0C0C09021 +:10207000CC04D090CD04E090CE04F090CF0420E0CA +:1020800030E0A901C701B6010E94B82F219788232B +:1020900009F4A2C0FE01EE0FFF1FEE0FFF1FE65571 +:1020A000FB4F80809180A280B380A5019401C7017D +:1020B000B6010E94B82F87FF31C0A501940160E0EE +:1020C00070E08CED93EC0E94BC2F20E030E040E407 +:1020D00051E40E94BC2F20E030E040E05FE30E942A +:1020E00067319B01AC0160E070E080E090E40E9409 +:1020F000CA319B01AC01C501B4010E9467319B014B +:10210000AC01C701B6010E94B82F87FF07C0A70125 +:10211000960160E070E08CED93E439C0A501940174 +:10212000C701B6010E94633118160CF055C0A50115 +:10213000940160E070E08CED93E40E94BC2F20E0FD +:1021400030E040E451E40E94BC2F20E030E040E069 +:102150005FE30E9467319B01AC0160E070E080E0CA +:1021600090E40E94CA319B01AC01C501B4010E94F8 +:1021700067319B01AC01C701B6010E94633118169B +:102180005CF5A701960160E070E08CED93EC0E9495 +:10219000BC2F20E030E040E451E40E94BC2F20E05E +:1021A00030E040E05FE30E9467319B01AC0160E0FA +:1021B00070E080E090E40E94CA319B01AC01C7014D +:1021C000B6010E9467316093CC047093CD04809374 +:1021D000CE049093CF0413C0FE01EE0FFF1FEE0F4D +:1021E000FF1FE655FB4F80819181A281B3818093CF +:1021F000CC049093CD04A093CE04B093CF0460910F +:10220000CC047091CD048091CE049091CF042091A4 +:102210008104309182042F3F4FEF340731F02F5F5C +:102220003F4F30938204209381040E94F8136B0186 +:102230007C0120E034E244EF51E40E94B82F87FF94 +:1022400008C086EFC82E88E2D82E84EFE82E81E4FD +:10225000F82E20E030E040E051E4C701B6010E94D2 +:1022600067319B01AC0160E074E284E79BE40E946B +:10227000BC2F6B017C010E94293070939700609302 +:102280009600209156033091570340915803509186 +:102290005903C701B6010E9467310E94293070932B +:1022A00099006093980080919504882309F433C1C4 +:1022B000C0909004D0909104E0909204F090930428 +:1022C00020E030E0A901C701B6010E946331181671 +:1022D000D4F580918104909182048F3F2FEF920773 +:1022E00029F001969093820480938104C701B6017E +:1022F0000E94F81320E030E040E051E40E94673192 +:102300009B01AC0160E074E284E79BE40E94BC2F77 +:102310006B017C010E9429307093970060939600B6 +:10232000209156033091570340915803509159031F +:10233000C701B6010E9467310E942930709399004D +:102340006093980008C01092970010929600109227 +:1023500099001092980060918A0470918B046F5FCD +:102360007F4F70938B0460938A0420919600309184 +:10237000970080E090E0232BF1F0C0919600D0917F +:1023800097000E9455306B017C01BE0180E090E017 +:102390000E9455309B01AC0160918C0470918D04BA +:1023A00080918E0490918F040E94BC2F20E03FEF1B +:1023B0004FE757E410C00E9455306B017C0120E0CC +:1023C00030EE4FEF54E460918C0470918D04809155 +:1023D0008E0490918F040E9467319B01AC01C7016C +:1023E000B6010E94633187FD96C0809188048F5F9B +:1023F0008093880490E020916005309161058217F8 +:102400009307A0F080916B05882319F0109288043F +:102410000DC0809171008D7F80937100809190003C +:102420008F7380939000109295047DC080918904F1 +:10243000C0918804811128C0C0906505D0906605C0 +:10244000E0906705F090680520E030E0A901C70141 +:10245000B6010E9463311816BCF481E080938904B0 +:10246000109290041092910410929204109293048E +:10247000C0928C04D0928D04E0928E04F0928F046E +:10248000C150C093880443C0109289041092820402 +:1024900010928104E0916205F091630548E0C49FC9 +:1024A000E00DF11D112480819181A281B38180937F +:1024B000900490939104A0939204B093930420E02D +:1024C00030E040E85EE364817581868197810E94F7 +:1024D00067316B017C0180915A03682F70E080E0C6 +:1024E00090E00E94553020E030E048EC52E40E9439 +:1024F000BC2F9B01AC01C701B6010E9467316093FC +:102500008C0470938D0480938E0490938F041092AA +:102510008B0410928A048091640580FD04C010929F +:10252000950410929404FF91EF91DF91CF91BF91A8 +:10253000AF919F918F917F916F915F914F913F915B +:102540002F91FF90EF90DF90CF90BF90AF909F9032 +:102550008F907F906F905F904F900F900FBE0F9075 +:102560001F901895CF92DF92EF92FF92CF93DF9357 +:102570006B017C01EA0180918304811102C00E94F9 +:10258000AD0E8091640580FF46C08091D204909189 +:10259000D30408970CF03FC0809171008D7F809329 +:1025A00071008091950481110E94C70E81E0809393 +:1025B0009404109282041092810420E030E0A9017A +:1025C000C701B6010E9463311816DCF48091D20471 +:1025D0009091D304FC01EE0FFF1FEE0FFF1FE65595 +:1025E000FB4FC082D182E282F382FC01EE0FFF1F1B +:1025F000E656FB4FD183C08301969093D30480931A +:10260000D20480917100826080937100809190006B +:10261000806880939000DF91CF91FF90EF90DF90E2 +:10262000CF9008958F929F92AF92BF92CF92DF92F8 +:10263000EF92FF920F931F93CF93DF93EC017B01F7 +:10264000D42E4801590180918304811102C00E9457 +:10265000AD0E8091640580FF6BC0809171008D7F0D +:10266000809371008091940481110E94C70E81E0D3 +:1026700080939504D0936305C0936205F092610541 +:10268000E0926005D0926B05809265059092660598 +:10269000A0926705B0926805109296041092970474 +:1026A000109298041092990410928804888199815C +:1026B000AA81BB818093900490939104A09392048B +:1026C000B093930420E030E040E85EE36C817D81CC +:1026D0008E819F810E9467316B017C0180915A033A +:1026E000682F70E080E090E00E94553020E030E0FC +:1026F00048EC52E40E94BC2F9B01AC01C701B6011B +:102700000E94673160938C0470938D0480938E04D3 +:1027100090938F0410928B0410928A048091710020 +:102720008260809371008091900080688093900017 +:10273000DF91CF911F910F91FF90EF90DF90CF909D +:10274000BF90AF909F908F900895809195040895C9 +:102750008091640581700895809164058160809303 +:1027600064050E948B2A0C94D507809164058E7FA6 +:10277000809364050C948B2A6093560370935703DF +:102780008093580390935903089580935A030895B2 +:1027900090915A03890F80935A03089590915A0398 +:1027A000292F30E0281B31092A30310524F48AE032 +:1027B00080935A030895981B90935A030895809329 +:1027C000D40408958091D40490E0019666E070E00E +:1027D0000E9435338093D40408958091D40490E00E +:1027E000019766E070E00E9435338093D404089529 +:1027F0008F929F92AF92BF92CF92DF92EF92FF9211 +:102800000F931F93CF93DF936B017C01C0918104E1 +:10281000D0918204BE0180E090E00E9455304B01CF +:102820005C01A701960160E070E08CE594E40E94F1 +:10283000BC2F9B01AC01C501B4010E9467310E940D +:1028400029302091D404233009F473C028F42223C2 +:1028500051F02130E9F02CC1243009F4A0C025301A +:1028600009F4E0C025C180E090E0A0E0BFE38093E0 +:10287000560390935703A0935803B09359031092B3 +:10288000840410928504109286041092870410C16B +:10289000109284041092850410928604109287048A +:1028A0006431710540F46A30710560F520E030E074 +:1028B00040E85EE32BC0693C710508F0AAC080E0E7 +:1028C00090E00E94553020E030E040EA51E40E9460 +:1028D000532F20E030E044E353E40E94BC2F9B01DF +:1028E000AC010E94673120E030E040E05EE30E94EE +:1028F00067319B01AC0160E070E080E09EE30E94E4 +:10290000532F44C020E030E040E05FE3C701B60150 +:102910000E9467316B017C0180E090E0A0E0BEE3A3 +:102920008093560390935703A0935803B093590391 +:10293000BFC01092840410928504109286041092F5 +:1029400087044AE0469F9001479F300D1124C9013A +:1029500068EB7BE00E942133BC016C5D754077FF22 +:1029600003C0719561957109882777FD8095982F2F +:102970000E9457302EE333EC4EE259E30E94673158 +:1029800020E030E040EC5EE30E94542F6093560359 +:1029900070935703809358039093590389C0109202 +:1029A0008404109285041092860410928704CE014C +:1029B00083709927892BE1F0BE016170772780E051 +:1029C00090E00E94553020E030E040E05EE30E945D +:1029D000673120E030E040E45FE30E94542F6093D1 +:1029E00056037093570380935803909359030CC078 +:1029F00080E090E0A0E0BFE38093560390935703FC +:102A0000A0935803B0935903C770DD27CD2B09F06D +:102A10004FC0109256031092570310925803109211 +:102A2000590346C0109284041092850410928604C3 +:102A30001092870400E010E020E03FE3009356038B +:102A40001093570320935803309359036739710546 +:102A500078F180E090E00E94553020E030E047E1DE +:102A600053E40E94532F20E030E04AE754E40E94F0 +:102A7000BC2F20E030E048E452E40E94673120E0BF +:102A800030E040EA51E40E9499300E942430660F01 +:102A9000771F660F771FFB01EA55FC4F20813181BC +:102AA00042815381C701B6010E9467316B017C01ED +:102AB000C701B601DF91CF911F910F91FF90EF9069 +:102AC000DF90CF90BF90AF909F908F9008958091AE +:102AD000E5040895CF93DF9300D01F92CDB7DEB702 +:102AE0009C0180917005843019F593E099833B83B4 +:102AF0002A839093E9008FEF9091E800815095FD33 +:102B000006C095ED9A95F1F700008111F5CF8091FF +:102B1000E80085FF0DC040E050E063E070E0CE01CA +:102B200001960E94CB178091E8008E778093E80091 +:102B30000F900F900F90DF91CF910895CF93DF9377 +:102B400000D01F92CDB7DEB720917005243021F55B +:102B500022E029839B838A8383E08093E9008FEFBF +:102B60009091E800815095FD06C095ED9A95F1F79A +:102B700000008111F5CF8091E80085FF0DC040E095 +:102B800050E063E070E0CE0101960E94CB17809187 +:102B9000E8008E778093E8000F900F900F90DF9100 +:102BA000CF910895209170052430F1F422E0209314 +:102BB000E9002FEF3091E800215035FD06C035EDDA +:102BC0003A95F1F700002111F5CF2091E80025FF9B +:102BD0000BC040E050E065E070E00E94CB178091B0 +:102BE000E8008E778093E8000895CF93DF93EC019F +:102BF00090917005943009F046C080916503882358 +:102C0000D9F0809166038823B9F09093E9008FEFA3 +:102C10009091E800815095FD06C095E19A95F1F7F5 +:102C200000008111F5CF8091E80085FF2CC040E0C5 +:102C300050E060E170E017C081E08093E9008FEF21 +:102C40009091E800815095FD06C095ED9A95F1F7B9 +:102C500000008111F5CF8091E80085FF14C040E0AD +:102C600050E068E070E0CE010E94CB178091E80050 +:102C70008E778093E80080E1FE01A5EDB4E001903D +:102C80000D928A95E1F7DF91CF91089580916F05BC +:102C9000811109C00E9460190E94BD198091E20053 +:102CA00084608093E200089510926F05089508955E +:102CB00008950C94092842E061EC81E00E94DA1842 +:102CC00042E061EC82E00E94DA1842E061EC83E0CD +:102CD0000E94DA1842E161EC84E00C94DA188091E9 +:102CE0007205833009F455C030F4813071F08230C0 +:102CF00009F48EC008958A3009F47AC08B3009F443 +:102D000060C0893009F09CC020C080917105813A73 +:102D100009F096C08091E800877F8093E800809159 +:102D2000750590917605892B21F460E185ED94E09D +:102D300003C060E080E090E070E00E94161880918F +:102D4000E8008B778093E8000895809171058132C7 +:102D500009F076C08091750590917605009719F07D +:102D6000039709F06DC08091E800877F8093E800A9 +:102D70008091E80082FD05C0809170058111F8CF37 +:102D80005FC08091F1008093E5048091E8008B772B +:102D900053C080917105813A09F052C08091750548 +:102DA00090917605892B09F04BC08091E800877FD0 +:102DB0008093E8008091E80080FFFCCF809165035C +:102DC00036C0809171058132D9F580917505909159 +:102DD0007605892BA9F58091E800877F8093E8002C +:102DE0000E940F1980917305809365030C944A210A +:102DF00080917105813221F58091E800877F809371 +:102E0000E8000E940F19809174058093E6040895EC +:102E100080917105813AA1F48091E800877F8093C9 +:102E2000E8008091E80080FFFCCF8091E604809369 +:102E3000F1008091E8008E778093E8000C940F19E0 +:102E4000089584B7877F84BF88E10FB6F894809394 +:102E50006000109260000FBE90E080E80FB6F8941A +:102E600080936100909361000FBE0E94B71C0E9486 +:102E700060190E94BD198091E20084608093E20095 +:102E800078940E94431C0E94B91C8BE593E00E9439 +:102E90005E1C80917005853069F40E94CA2780917C +:102EA0006E058823B1F30E94F827882391F30E94CE +:102EB000B517EFCF0E94C11CECCF292F3327233049 +:102EC0003105C9F064F42130310581F0223031053B +:102ED00009F043C08DE690E02CE837E042C0213293 +:102EE0003105F1F02232310541F137C082E190E045 +:102EF00029EF37E036C099278130910541F08230C3 +:102F0000910541F0892B49F5E8E8F7E005C0EAE5CD +:102F1000F7E002C0E0E3F7E0849190E09F0121C078 +:102F20006430D8F4E62FF0E0EE0FFF1FEE5FFB4FAA +:102F30002081318189E090E014C0643070F470E049 +:102F4000FB01EE0FFF1FE650FC4F20813181FB019A +:102F5000EA50FC4F808190E004C080E090E020E0E7 +:102F600030E0FA0131832083089580E189BD82E158 +:102F700089BD09B400FEFDCF8091D8008F7D80937C +:102F8000D8008091E00082608093E0008091E000B2 +:102F900081FDFCCF0895CF92DF92EF92FF920F93C5 +:102FA0001F93CF93DF93EC018B016A010E942E19CE +:102FB000811133C0C114D10439F0F60180819181AF +:102FC000081B190BC80FD91FE12CF12C0115110595 +:102FD00019F18091E80085FD16C08091E8008E7798 +:102FE0008093E800C114D10449F0F60180819181F9 +:102FF000E80EF91EF182E08285E00FC00E942E19D2 +:10300000882321F30AC089918093F10001501109AE +:10301000FFEFEF1AFF0ADACF80E0DF91CF911F9127 +:103020000F91FF90EF90DF90CF900895209177055A +:10303000309178052617370748F06115710539F486 +:103040002091E8002E772093E80001C0B90140E00C +:1030500061157105A9F120917005222309F443C07F +:10306000253009F442C02091E80023FD40C02091A2 +:10307000E80022FD32C02091E80020FFE9CF409116 +:10308000F3002091F20030E0342BFC01CF016115F8 +:10309000710559F02830310540F481918093F10099 +:1030A000615071092F5F3F4FF1CF41E0283031056A +:1030B00009F040E02091E8002E772093E800C8CF87 +:1030C0004111C9CF0AC080917005882361F0853015 +:1030D00061F08091E80083FD0AC08091E80082FFE2 +:1030E000F2CF80E0089582E0089583E0089581E0C2 +:1030F000089520917705309178052617370748F015 +:103100006115710539F42091E8002E772093E800CD +:1031100001C0B901FC0120E06115710591F18091B8 +:103120007005882309F440C0853009F43FC08091C0 +:10313000E80083FD3DC08091E80082FD2FC08091B2 +:10314000E80080FFE9CF2091F3008091F20090E049 +:10315000922B6115710559F08830910540F4249146 +:103160002093F1003196615071090196F2CF21E070 +:10317000089709F020E08091E8008E778093E800BE +:10318000CBCF2111CCCF0AC080917005882361F08C +:10319000853061F08091E80083FD0AC08091E800ED +:1031A00082FFF2CF80E0089582E0089583E00895E1 +:1031B00081E00895982F973058F59093E90098177B +:1031C00039F07091EC002091ED005091F00003C0B7 +:1031D000242F762F50E021FF19C03091EB003E7F65 +:1031E0003093EB003091ED003D7F3093ED00309156 +:1031F000EB0031603093EB007093EC002093ED0016 +:103200005093F0002091EE0027FF07C09F5FD3CFBF +:103210008F708093E90081E0089580E008958091A7 +:10322000710587FF11C08091E80082FD05C0809183 +:1032300070058111F8CF11C08091E8008B770BC029 +:1032400080917005882349F08091E80080FFF8CFD5 +:103250008091E8008E778093E80008952091E40043 +:103260003091E50095E64091EC00842F817040FF9D +:1032700022C08091E80080FD1CC0809170058823E9 +:1032800091F0853091F08091EB0085FD10C0409168 +:10329000E4005091E5004217530729F39A01915039 +:1032A00011F784E0089582E0089583E0089581E0B5 +:1032B000089580E008954091E80042FFDECF089530 +:1032C0000E94CE190E94D619E0EEF0E08081816064 +:1032D0008083E8EDF0E080818F77808319BCA7EDD3 +:1032E000B0E08C918E7F8C9380818F7E8083109252 +:1032F0006F0508950F931F93CF93DF930E94CE190C +:103300000E94D619C8EDD0E088818F7788838881A4 +:103310008068888388818F7D888319BC10927005AE +:1033200010926C0510926E0510926D0500EE10E083 +:10333000F80180818B7F808388818160888342E06F +:1033400060E080E00E94DA18E1EEF0E080818E7F9C +:103350008083E2EEF0E080818160808380818860FC +:103360008083F80180818E7F80838881806188835B +:10337000DF91CF911F910F910895E8EDF0E08081EA +:103380008F7E8083E7EDF0E080818160808384E040 +:1033900082BF81E080936F050C947A19E8EDF0E02C +:1033A00080818E7F80831092E20008951092DA006F +:1033B0001092E10008951F920F920FB60F92112400 +:1033C0002F933F934F935F936F937F938F939F932D +:1033D000AF93BF93EF93FF938091E10082FF0BC007 +:1033E0008091E20082FF07C08091E1008B7F809393 +:1033F000E1000E94421C8091DA0080FF1FC0809192 +:10340000D80080FF1BC08091DA008E7F8093DA00A5 +:103410008091D90080FF0DC080E189BD82E189BD26 +:1034200009B400FEFDCF81E0809370050E9446162E +:1034300005C019BC109270050E9454168091E100DD +:1034400080FF19C08091E20080FF15C08091E200EA +:103450008E7F8093E2008091E20080618093E200A1 +:103460008091D80080628093D80019BC85E0809359 +:1034700070050E9458168091E10084FF30C0809151 +:10348000E20084FF2CC080E189BD82E189BD09B4DE +:1034900000FEFDCF8091D8008F7D8093D800809171 +:1034A000E1008F7E8093E1008091E2008F7E809327 +:1034B000E2008091E20081608093E20080916C05DF +:1034C000882311F084E007C08091E30087FD02C0EB +:1034D00081E001C083E0809370050E9459168091BD +:1034E000E10083FF29C08091E20083FF25C0809125 +:1034F000E100877F8093E10082E080937005109265 +:103500006C058091E1008E7F8093E1008091E20064 +:103510008E7F8093E2008091E20080618093E200E0 +:1035200042E060E080E00E94DA188091F00088605C +:103530008093F0000E945716FF91EF91BF91AF91D9 +:103540009F918F917F916F915F914F913F912F91BB +:103550000F900FBE0F901F9018951F920F920FB6ED +:103560000F9211242F933F934F935F936F937F9309 +:103570008F939F93AF93BF93CF93DF93EF93FF937B +:10358000C091E900CF708091EC00D82FD17080FD00 +:10359000D0E81092E9008091F000877F8093F000DE +:1035A00078940E94F11A1092E9008091F0008860EE +:1035B0008093F000CD2BCF70C093E900FF91EF9185 +:1035C000DF91CF91BF91AF919F918F917F916F913B +:1035D0005F914F913F912F910F900FBE0F901F90D1 +:1035E00018951F93CF93DF93CDB7DEB7AA970FB689 +:1035F000F894DEBF0FBECDBFE1E7F5E088E08E0FA7 +:103600009091F10091938E13FBCF0E946F168091E1 +:10361000E80083FF1FC18091710590917205492FC9 +:1036200050E04A30510508F015C1FA01E059FF4F4A +:103630000C944933803881F0823809F00BC18091B5 +:1036400075058F708093E9008091EB0085FB8827DA +:1036500080F91092E90006C080916D0590916E0589 +:10366000911182609091E800977F9093E800809399 +:10367000F1001092F100C8C0282F2D7F09F0EAC098 +:10368000882319F0823061F0E5C0809173058130A4 +:1036900009F0E0C0933009F080E080936E052BC004 +:1036A00080917305811127C0809175058F7009F491 +:1036B000D1C08093E9002091EB0020FF1CC0933023 +:1036C00021F48091EB00806214C09091EB00906136 +:1036D0009093EB0021E030E0A90102C0440F551F98 +:1036E0008A95E2F74093EA001092EA008091EB009D +:1036F00088608093EB001092E9008091E800877F5A +:1037000086C08111A7C0109173051F778091E300D7 +:103710008078812B8093E3008091E800877F8093FD +:10372000E8000E940F198091E80080FFFCCF809193 +:10373000E30080688093E300111102C082E001C0C1 +:1037400083E08093700586C08058823008F082C084 +:1037500080917305909174058C3D53E0950779F540 +:1037600083E08A838AE289834FB7F894DE01139657 +:1037700020E03EE051E2E32FF0E050935700E49167 +:1037800020FF03C0E295EF703F5FEF708E2F90E057 +:10379000EA3010F0C79601C0C0968D939D932F5FBD +:1037A000243149F74FBF8091E800877F8093E8007C +:1037B0006AE270E0CE0101960E94161814C0AE01B4 +:1037C0004F5F5F4F609175050E945D17BC010097C8 +:1037D00009F440C09091E800977F9093E8008981B8 +:1037E0009A810E9479188091E8008B778093E80095 +:1037F00031C0803879F58091E800877F8093E800B8 +:1038000080916C058093F1008091E8008E77809321 +:10381000E8000E940F191EC081111CC09091730511 +:103820009230C0F48091E800877F8093E800909305 +:103830006C050E940F1980916C05811106C0809162 +:10384000E30087FD02C081E001C084E08093700541 +:103850000E945B168091E80083FF0AC08091E80017 +:10386000877F8093E8008091EB0080628093EB007B +:10387000AA960FB6F894DEBF0FBECDBFDF91CF91F1 +:103880001F9108950895CF93809170058823A1F02A +:10389000C091E900CF709091EC00892F817090FD6C +:1038A00080E8C82B1092E9008091E80083FD0E9417 +:1038B000F11ACF70C093E900CF9108959093EC0472 +:1038C0008093EB0408958091EB049091EC040895AB +:1038D000E091EB04F091EC04309721F00190F0813D +:1038E000E02D099480E00895E091EB04F091EC0460 +:1038F000309721F00280F381E02D09940895E09142 +:10390000EB04F091EC04309721F00480F581E02D78 +:10391000099408952091E9043091EA0482179307ED +:1039200071F09093EA048093E904E091EB04F09144 +:10393000EC04309721F00680F781E02D099408957A +:103940002091E7043091E8048217930771F0909377 +:10395000E8048093E704E091EB04F091EC043097E5 +:1039600021F00084F185E02D0994089508950C94C8 +:10397000B61C0E943D280E94DA0D0E9407290C9473 +:10398000B82E5F926F927F928F929F92AF92BF926A +:10399000CF92DF92EF92FF920F931F93CF93DF931B +:1039A00000D000D01F92CDB7DEB70E941F0E98EF57 +:1039B000C92E94E0D92E04E010E0AA24A394B12CDF +:1039C000502E802F0E948D0E4C01F6017290629055 +:1039D0006F016826792661147104A1F40150110960 +:1039E00078F78FEF89838A831B820E944628816043 +:1039F000782F9D838C8349815A816B818D810E94B0 +:103A0000711D38C080914D0581FD0E94960E2EE0FB +:103A100030E07501022E02C0EE0CFF1C0A94E2F7A2 +:103A2000C70186219721892B09F129835A828E208B +:103A30009F2091E0892809F490E09B830E9446280A +:103A40008160782F9D838C8349815A816B818D8120 +:103A50000E94711D000F111FF801E251FB4F808180 +:103A60009181E826F926F182E08204C021503109D3 +:103A700080F6B4CF0E940A2C1091ED040E94681CBD +:103A80001817D1F00E94681C8093ED040F900F90DE +:103A90000F900F900F90DF91CF911F910F91FF909A +:103AA000EF90DF90CF90BF90AF909F908F907F90DE +:103AB0006F905F900C94C40D0F900F900F900F902B +:103AC0000F90DF91CF911F910F91FF90EF90DF90BA +:103AD000CF90BF90AF909F908F907F906F905F90AE +:103AE0000895CF93DF93CDB7DEB72B970FB6F89439 +:103AF000DEBF0FBECDBF4F83588769877A878B871C +:103B0000DE01119686E0FD0111928A95E9F785E0C4 +:103B1000FE01379601900D928A95E1F749815A810D +:103B20006B817C818D819E810E94E8232B960FB64C +:103B3000F894DEBF0FBECDBFDF91CF910895CF9334 +:103B4000882309F4C2C0C82F823859F40E94681C27 +:103B500081FDBBC089E30E94C2260E948F2789E3B2 +:103B60000CC0833879F40E94681C80FDAEC083E5E8 +:103B70000E94C2260E948F2783E50E940427CF91CE +:103B80000C948F27843859F40E94681C82FD9DC0D4 +:103B900087E40E94C2260E948F2787E4EECF8CEF35 +:103BA0008C0F813A48F48C2F0E94202E81118DC0F9 +:103BB0008C2F0E94C226E3CF80E28C0F883048F41D +:103BC000C77081E001C0880FCA95EAF70E944827B4 +:103BD000D6CF8BE58C0F833078F4C53A29F0C63AFE +:103BE00031F083E890E005C081E890E002C082E80F +:103BF00090E0CF910C948A1C88E58C0F833108F0FB +:103C000064C0C83A39F1C93A41F1CA3A49F1CB3AEC +:103C100051F1CC3A59F1CD3A61F1C03B69F1CE3A5C +:103C200071F1CF3A79F1C13B81F1C23B89F1C33BDC +:103C300091F1C43B99F1C53BA1F1C63BA9F1C73B4A +:103C4000B1F1C83BB9F1C93BC1F1CA3BC9F180E050 +:103C500090E038C082EE90E035C089EE90E032C04E +:103C60008AEE90E02FC085EB90E02CC086EB90E0D0 +:103C700029C087EB90E026C08CEC90E023C08DEC4F +:103C800090E020C083E891E01DC08AE891E01AC06E +:103C900082E991E017C084E991E014C081E292E0EA +:103CA00011C083E292E00EC084E292E00BC085E294 +:103CB00092E008C086E292E005C087E292E002C08E +:103CC0008AE292E0CF910C94A01CCF9108958823B2 +:103CD00009F44BC0823859F40E94681C81FF45C02A +:103CE00089E30E94C2260E948F2789E30CC0833893 +:103CF00071F40E94681C80FF38C083E50E94C226D0 +:103D00000E948F2783E50E9404270C948F27843814 +:103D100059F40E94681C82FF28C087E40E94C226D2 +:103D20000E948F2787E4EFCF9CEF980F913A58F3CA +:103D300090E2980F983050F4877091E001C0990F8D +:103D40008A95EAF7892F0E944E27DFCF9BE5980FCF +:103D5000933020F480E090E00C948A1C885A8331E0 +:103D600020F480E090E00C94A01C0895882321F0BA +:103D70000E9448270C948F270895882321F00E94E1 +:103D80004E270C948F2708957F928F929F92AF9227 +:103D9000BF92CF92DF92EF92FF920F931F93CF9338 +:103DA000DF931F92CDB7DEB77C01C62E772EFC01C4 +:103DB000058102950F70128111110E9465270E94E2 +:103DC000BB26882379F0112369F080E28C0D8830BE +:103DD00048F082E00E94A4260E94BB2691E0D82EE3 +:103DE000D92601C0D12CE72DE295EF70F0E0E6581E +:103DF000FF4F0C944933872D807F072D0F70882348 +:103E000011F00295007F112389F0002309F499C174 +:103E100080E28C0D883020F4802F0E94482703C058 +:103E2000802F0E9458270E948F278BC18C2D0E94C3 +:103E3000671E002309F4C3C180E28C0D883020F492 +:103E4000802F0E944E2703C0802F0E945E270E9471 +:103E50008F27B5C1872D807F972D9F70803211F4F9 +:103E6000892F03C0892F8295807FCC2021F0F1E03B +:103E7000CF16A1F01DC0112339F0002319F1013034 +:103E800009F50E9478279BC1002319F0013009F43D +:103E900096C189830E947B27898110C1112321F05B +:103EA000063008F08CC10EC0053008F088C106C18C +:103EB000112359F0002331F0F701958190FF41C1A2 +:103EC0009F7095830E94B61E7AC1002309F4F6C044 +:103ED0003EC1872D86958695837090E0009719F0F6 +:103EE000019761F06CC1112321F08C2D972D9370F7 +:103EF00002C080E090E00E948A1C61C1112321F081 +:103F00008C2D972D937002C080E090E00E94A01C41 +:103F100056C18C2D112319F00E94122B02C00E9451 +:103F20007A2B0E94FF2B4BC1872D837009F052C062 +:103F3000111145C18C2D829586958770880F880F49 +:103F40009C2D9F70892E912CA12CB12C082E04C081 +:103F5000880C991CAA1CBB1C0A94D2F7C4FE14C07E +:103F60000FE010E020E030E0B901A80104C0440FE8 +:103F7000551F661F771F8A95D2F7CB01BA0160954E +:103F800070958095909503C060E070E0CB01272D7F +:103F900026952695237030E02230310569F02330D4 +:103FA000310589F0682979298A299B292130310531 +:103FB00071F00E94302503C1682979298A299B293B +:103FC0000E944C25FCC00E943025C501B4010E940E +:103FD0001425F5C0112319F0872D817001C0869535 +:103FE000882309F4ECC08C2D829586958770880F04 +:103FF000880F9C2D9F70892E912CA12CB12C082EFE +:1040000004C0880C991CAA1CBB1C0A94D2F7C4FEDD +:1040100014C00FE010E020E030E0B901A80104C0B6 +:10402000440F551F661F771F8A95D2F7CB01BA013F +:10403000609570958095909503C060E070E0CB012D +:10404000272D269526952370422F50E042305105AA +:1040500069F04330510589F0682979298A299B291B +:104060004130510571F00E940A26A9C068297929BA +:104070008A299B290E942626A2C00E940A26C501E1 +:10408000B4010E94EE259BC08C2D90E0FC01E05E07 +:10409000F109E531F10508F050C0E657FF4F0C94E7 +:1040A00049330C2D0F70872D8F71112321F00E9441 +:1040B0008725802F07CF0E94A825802F0E94BD1E34 +:1040C0007EC0112341F0053008F079C0872D8F7133 +:1040D0000E94CD2574C0063008F071C0F7CF1123BF +:1040E00039F0872D8F710E94872569C01123C9F38C +:1040F000872D8F710E94A82562C0112329F0872D7A +:104100008F710E9472255BC00E94682558C01123E0 +:1041100051F0172D1F71812F0E94872563E0812F99 +:104120000E949B264CC081E00E94A426023008F425 +:1041300046C082E00E94A42642C0112331F0002331 +:1041400081F28C2D0E949F1D3AC0002389F28C2D94 +:104150000E94671E34C0472D4F706C2DC7010E940E +:104160004A060E948C242BC0111129C0472D4F7084 +:1041700050E042305105B9F04CF44115510581F041 +:1041800041305105E1F40E94E02E19C04330510541 +:1041900069F04430510599F48C2D0E94322F0FC0E4 +:1041A0000E94C92E0CC00E94FC2E09C00E940F2F35 +:1041B00006C0472D4F706C2DC7010E94650ADD2097 +:1041C000F9F00E94972680FD1BC0F70112820E9421 +:1041D00091260E948725C7010E940F210E949126E7 +:1041E0000F90DF91CF911F910F91FF90EF90DF9093 +:1041F000CF90BF90AF909F908F907F900C94A82508 +:104200000F90DF91CF911F910F91FF90EF90DF9072 +:10421000CF90BF90AF909F908F907F9008950F9315 +:104220001F93CF93DF93EC01888199812B813C818F +:10423000232BB9F09F3F11F48F3F99F0CE010E94DC +:104240006408882371F0688179818A810E948D26B3 +:104250008C010E9442260E940925B801CE010E94CD +:10426000C41EDF91CF911F910F9108950E94652781 +:104270000E9475270E943A270E948F270E94B02C27 +:104280000E94FF2B80E090E00E948A1C80E090E07A +:104290000C94A01C0E9455270C9436210E94822663 +:1042A000292F22952F7030E02C3031054CF42A3024 +:1042B00031056CF42250310922303105A8F407C0D1 +:1042C0002C30310569F02F30310551F00DC0803FA1 +:1042D00069F018F4803E40F409C0843F29F406C018 +:1042E00093FB882780F9089580E0089581E0089580 +:1042F000CF93DF9300D000D01F92CDB7DEB70F90E1 +:104300000F900F900F900F90DF91CF910895CF9362 +:10431000DF9300D000D000D0CDB7DEB726960FB621 +:10432000F894DEBF0FBECDBFDF91CF9108951F93EC +:10433000CF93DF93C091F80416E08091F904C81779 +:1043400099F0D0E01C9FF0011D9FF00D1124E65064 +:10435000FB4F4081518162817381848195810E94EC +:1043600087212196C770E9CFDF91CF911F910895E2 +:1043700040912A0550912B0560912C0570912D05D7 +:1043800080912E0590912F050C94872180912F0507 +:1043900082958F7009F054C080912C05882309F410 +:1043A0004FC08091F804A091F90460912A057091A2 +:1043B0002B0540912D0550912E05B6E08A1709F482 +:1043C0003FC090E041155105C1F17F3F11F46F3FAF +:1043D000A1F1B89FF001B99FF00D1124E650FB4FF9 +:1043E000218172132AC02081621327C022812111EA +:1043F00024C0238134812417350710F4215031095A +:10440000241B350B283C3105C0F420912F052F705B +:10441000206120932F0526E0289FF001299FF00DB1 +:104420001124E150FB4F80818F70806180838AE28C +:1044300095E00E940F210C94972101968770BECFC2 +:104440000895CF92DF92EF92FF920F931F93CF9335 +:10445000DF93CDB7DEB762970FB6F894DEBF0FBE1D +:10446000CDBF8C0185E0F801DE011D9601900D9213 +:104470008A95E1F7D8014C9111965C9111971296AB +:104480006C9112971396CD90DC90149730912A0579 +:1044900070912B0580912D0590912E05009709F4C0 +:1044A0006BC17F3F19F43F3F09F466C1E0902C05D2 +:1044B000EE2009F4C0C020912F05C816D90628F0B7 +:1044C000F601E81BF90BCF0104C0809590958C0D87 +:1044D0009D1DFF24F394883C910578F0F12C207FFA +:1044E00009F0C6C07C2DD98AC88A89890E947821A2 +:1044F0008AE295E00E940F21B1C0822F807F09F0EF +:1045000046C0751314C0341312C0611110C02F704F +:10451000206120932F050E94B8218AE295E00E9435 +:104520000F2180912F05D80115968C932EC0CD2890 +:1045300019F15F3F11F44F3FF9F0F62E61111CC0E5 +:104540008091F8042091F90436E0821709F45AC0EA +:1045500090E0389FF001399FF00D1124E650FB4F99 +:104560007181571306C07081471303C072817111A6 +:1045700003C001968770E9CFF62E662309F418C1AF +:1045800080912F05816080932F05F12C11C1751347 +:1045900008C0341306C0611104C080912F05D801F2 +:1045A000C3C04D875E878D859E856A8B0E944E2194 +:1045B0006A898823E1F16623D1F120912F05822FAA +:1045C00082958F7090E0029774F080912A05909107 +:1045D0002B0598878F831986DB86CA862C87CE01A8 +:1045E00007960E940F2186E0F801AAE2B5E001904B +:1045F0000D928A95E1F70E94C6210E94B821FF24FE +:10460000F394D6C04D875E878D859E850E94822655 +:10461000292F22952F7030E0223031050CF0BCC0DC +:104620009F7009F0B6C0805E883008F4C1C0C80130 +:104630000E940F21E4CFC816D90608F453C0F60132 +:10464000E81BF90BCF01883C910508F450C0F12C10 +:104650007C2DD98AC88A89890E947821EAE2F5E00E +:1046600086E0DF011D928A95E9F70E94B821A0C07B +:10467000751314C0341312C0611110C080912F053E +:10468000F8018583C8010E940F2186E0EAE2F5E087 +:10469000DF011D928A95E9F7FE2C8AC04D875E875F +:1046A0008D859E856A8B0E944E216A89882309F434 +:1046B000BECF662309F4BBCF20912F05822F8295B0 +:1046C0008F7090E002970CF48ECF80912A05909124 +:1046D0002B059A8389831B82DD82CC822E83CE01B7 +:1046E00001967FCF809590958C0D9D1DACCFF62EB9 +:1046F000662309F49CCF75132EC034132CC020916F +:104700002F0520FD1FC0822F82958F70D9F0D80110 +:1047100015962C9315978F3049F08F5F982F9295AF +:10472000907F822F8F70892B15968C93C8010E94E1 +:104730000F2186E0F801AAE2B5E001900D928A957A +:10474000E1F793CF86E0F801AAE2B5E001900D927F +:104750008A95E1F72DC04D875E878D859E850E94E5 +:104760004E21811140CF80912F05816080932F05CC +:10477000C8010E940F211CC0662309F458CF4D8741 +:104780005E878D859E850E944E21882309F44FCF38 +:104790002ACF811148CF0CC0243031050CF047CF0F +:1047A0009F7009F440CFF8019581907F09F03BCFCD +:1047B0008F2D62960FB6F894DEBF0FBECDBFDF918E +:1047C000CF911F910F91FF90EF90DF90CF900895C0 +:1047D0001F93CF93DF93CDB7DEB72C970FB6F89426 +:1047E000DEBF0FBECDBF4F83588769877A878B871F +:1047F0009C87CE0107960E942122882369F08F8131 +:1048000098852A853B85232BF1F19F3F09F063C0F2 +:104810008F3F09F060C037C086E0FE013796DE01A9 +:10482000119601900D928A95E1F76F817885EA855E +:10483000FB85309741F17F3F11F46F3F21F12091CB +:10484000F90430E0C9010196877099274091F80476 +:1048500050E08417950709F447C069837A83FD8384 +:10486000EC8396E0929FD001939FB00D1124A65047 +:10487000BB4FFE01319601900D929A95E1F780931E +:10488000F9040E94972116E08091F8049091F904B0 +:104890008917C1F1189FC001112486509B4F0E94B7 +:1048A0002122882379F1E091F8041E9FF001112460 +:1048B000E650FB4F408151816281738184819581F3 +:1048C0000E9487218091F80490E0019687709927D3 +:1048D0008093F804D9CF4F81588569857A858B8577 +:1048E0009C850E948721CFCF0E944A211092F90413 +:1048F0001092F804EAE2F5E086E0DF011D928A9565 +:10490000E9F7C1CF2C960FB6F894DEBF0FBECDBF2E +:10491000DF91CF911F910895EF92FF920F931F9314 +:10492000CF93DF938C01009709F46CC0F12CEE2437 +:10493000E394E8012196F8018491843740F48430AF +:1049400008F051C0813081F0823019F15BC08537A9 +:1049500009F444C0A8F19CE7980F903708F052C0C2 +:104960008F770E94671E41C00E5F1F4FFE01C491EA +:1049700080E28C0F883048F4C7708E2D01C0880FFC +:10498000CA95EAF70E94682714C08C2F0E949F1DC9 +:104990002DC00E5F1F4FFE01C49180E28C0F883046 +:1049A00058F4C7708E2D01C0880FCA95EAF70E948F +:1049B0006E270E948F271AC08C2F0E94671E16C078 +:1049C0000E5F1F4FFE01C491CC2381F08FE99FE061 +:1049D0000197F1F700C00000C150F6CF0E5F1F4FE6 +:1049E000FE01F49003C00E949F1D8E018F2D88232D +:1049F00009F49FCFEFE9FFE03197F1F700C0000025 +:104A00008150F5CFDF91CF911F910F91FF90EF90E3 +:104A100008950895609334057093350580933605A5 +:104A2000909337050C9436210F931F930091340512 +:104A3000109135052091360530913705DC01CB0109 +:104A4000802B912BA22BB32B8093340590933505AB +:104A5000A0933605B09337051F910F910C94362122 +:104A60000F931F9300913405109135052091360561 +:104A700030913705DC01CB0180239123A223B3239E +:104A80008093340590933505A0933605B093370590 +:104A90001F910F910C9436210F931F9300913405B1 +:104AA000109135052091360530913705DC01CB0199 +:104AB00080279127A227B32780933405909335054B +:104AC000A0933605B09337051F910F910C943621B2 +:104AD0001092300510923105109232051092330574 +:104AE0000C94362141E050E060E070E004C0440FD7 +:104AF000551F661F771F8A95D2F740933005509354 +:104B0000310560933205709333050C94362141E0F2 +:104B100050E060E070E004C0440F551F661F771F2F +:104B20008A95D2F78091300590913105A091320598 +:104B3000B0913305482B592B6A2B7B2B40933005C2 +:104B40005093310560933205709333050C943621F0 +:104B500041E050E060E070E004C0440F551F661F64 +:104B6000771F8A95D2F74095509560957095809102 +:104B7000300590913105A0913205B091330548235D +:104B800059236A237B23409330055093310560936A +:104B90003205709333050C94362141E050E060E01B +:104BA00070E004C0440F551F661F771F8A95D2F727 +:104BB0008091300590913105A0913205B091330577 +:104BC000482759276A277B274093300550933105A2 +:104BD00060933205709333050C9436210F931F9325 +:104BE0000091300510913105209132053091330547 +:104BF000DC01CB01802B912BA22BB32B80933005B2 +:104C000090933105A0933205B09333051F910F9116 +:104C10000C9436210F931F930091300510913105AC +:104C20002091320530913305DC01CB0180239123A3 +:104C3000A223B3238093300590933105A0933205CE +:104C4000B09333051F910F910C9436210F931F934E +:104C500000913005109131052091320530913305D6 +:104C6000DC01CB0180279127A227B3278093300551 +:104C700090933105A0933205B09333051F910F91A6 +:104C80000C9436210895CF92DF92EF92FF920F930A +:104C90001F93CF93DF938C01C0903405D0903505DE +:104CA000E0903605F0903705809130059091310500 +:104CB000A0913205B0913305C82AD92AEA2AFB2AE5 +:104CC000CFE1D0E0D701C6010C2E04C0B695A79560 +:104CD000979587950A94D2F780FF06C0B8018C2F6C +:104CE0000E94EA0C019721F4219760F780E001C04F +:104CF0008C2FDF91CF911F910F91FF90EF90DF905C +:104D0000CF900895CF93DF93EC010E944326BE011C +:104D10000E94EA0CDF91CF910895CB010E94822678 +:104D2000089580913805859585958595089580919C +:104D300038058770089598E0899F90011124262BEB +:104D4000209338050C94872520913805809582237F +:104D500080933805982F977069F430E0482F5527D5 +:104D600047FD50952417350729F08595859585953C +:104D70000C94A825089590913805977081E009F466 +:104D800080E0089590916503992321F09091660346 +:104D9000911109C02091670330916803F90132969F +:104DA0009FEF40E01FC0982F9695969596959F305F +:104DB00050F5E0916703F0916803E90FF11D8770EA +:104DC00021E030E0A90102C0440F551F8A95E2F7A7 +:104DD000CA019181892B818308959F3F39F04F5FEC +:104DE0004E3041F051915813F8CF0DC05111F7CF0B +:104DF000942FF5CF9F3F39F0F901E90FF11D97FD91 +:104E0000FA9582830895089590916503992321F07E +:104E100090916603911109C0209167033091680356 +:104E2000F9013296205F3F4F1FC0982F96959695B7 +:104E300096959F30F0F4E0916703F0916803E90FD5 +:104E4000F11D877021E030E0A90102C0440F551F19 +:104E50008A95E2F7CA01809591818923818308951B +:104E60003196E217F30729F090819813F9CF108259 +:104E7000F7CF089581E090E0E0916703F091680337 +:104E8000E80FF91F1082019680319105A9F7089566 +:104E900090914C05892B80934C05089580959091B5 +:104EA0004C05892380934C05089510924C05089574 +:104EB00090914B05892B80934B0508958095909197 +:104EC0004B05892380934B05089510924B05089557 +:104ED00090914A05892B80934A0508958095909179 +:104EE0004A05892380934A05089510924A0508953A +:104EF00080933905089510923905089580916703CC +:104F000090916803FC0131969C01205F3F4F80E047 +:104F1000919191118F5FE217F307D1F70895E09116 +:104F20006703F091680380914C058083E0916703EB +:104F3000F0916803908180914B05892B8083E091EB +:104F40006703F0916803908180914A05892B8083E3 +:104F500080913905882361F0E0916703F09168033F +:104F60009081892B80830E947E27811110923905C0 +:104F700080916703909168030C94741C20E0009763 +:104F800039F0AC0141505109842395232F5FF7CFAD +:104F9000822F089580917005843039F110924E056A +:104FA00020E488E190E00FB6F894A8958093600023 +:104FB0000FBE2093600080E00E942A0580E00E94DE +:104FC000C40D83B7817F846083BF83B7816083BF53 +:104FD0007894889583B78E7F83BF88E10FB6F89465 +:104FE00080936000109260000FBE089508950895A8 +:104FF00080E00E942A050E94F6270E941F0E0E9450 +:10500000F7270E94970E91E0811101C090E0892F4F +:1050100008950E944A2180E00E942A050E94B82E2D +:105020000E94681C0C94C40D1F920F920FB60F9231 +:1050300011248F939F93AF93BF9380914E0581115D +:1050400013C080914F0590915005A0915105B091EA +:1050500052054196A11DB11D80934F0590935005B7 +:10506000A0935105B0935205BF91AF919F918F913D +:105070000F900FBE0F901F90189582E084BD93E0B3 +:1050800095BD9AEF97BD80936E0008952FB7F89461 +:1050900080914F0590915005A0915105B091520516 +:1050A0002FBF0895CF92DF92EF92FF920F931F933D +:1050B0002FB7F89440914F055091500560915105DC +:1050C000709152052FBF6A017B01EE24FF248C01F1 +:1050D00020E030E0C016D106E206F30610F441509D +:1050E00051099A01281B390BC9011F910F91FF909B +:1050F000EF90DF90CF9008951F920F920FB60F920E +:1051000011248F939F93AF93BF9380914F059091FC +:105110005005A0915105B09152050196A11DB11DF8 +:1051200080934F0590935005A0935105B09352057D +:10513000BF91AF919F918F910F900FBE0F901F90D5 +:1051400018950E946019F8942FEF87EA91E6215094 +:1051500080409040E1F700C0000087E090EBDC0168 +:1051600080937B0590937C05A0937D05B0937E058D +:105170009CE088E10FB6F894A895809360000FBE7C +:1051800090936000FFCFCF92DF92EF92FF920F9348 +:105190001F93CF93DF93D82FC4E0EE24E394F12C38 +:1051A0008C2F0E948D0E6C010EE010E09701002EF6 +:1051B00002C0220F331F0A94E2F72C213D21232B3A +:1051C00049F0602F7C2F80E00E94660AD81302C04D +:1051D00081E006C00150110948F7C15008F780E08E +:1051E000DF91CF911F910F91FF90EF90DF90CF90C3 +:1051F0000895CF93C82F8CE20E94C328882321F002 +:105200008C2FCF910C94C32880E0CF910895CF9339 +:105210000E94582A811102C00E94342AC5E6C1505A +:1052200049F00E941F0E8FE39CE90197F1F700C03F +:105230000000F5CF89E20E94F928811113C18AE2AA +:105240000E94F92881110E94342A85E00E94F928E1 +:1052500081110E94A1280E94632A80934D0587E056 +:105260000E94F9288823A9F18BE10E94F92888235C +:1052700051F080914D0581FB222720F991E0922782 +:1052800090FB81F90EC08EE00E94F928882361F01E +:1052900080914D0582FB222720F991E0922790FB17 +:1052A00082F980934D0515C080E10E94F928909104 +:1052B0004D05882341F093FB222720F981E08227C6 +:1052C00080FB93F904C0892F809580FB90F990931F +:1052D0004D0580914D050E94672A0E94752A809392 +:1052E000790580EE0E94F928882341F080917905A4 +:1052F000982F909590FB80F98093790589E30E941F +:10530000F928882359F08091790581FB222720F91B +:1053100091E0922790FB81F98093790582EE0E94BB +:10532000F928882359F08091790582FB222720F9FA +:1053300091E0922790FB82F98093790586EE0E9496 +:10534000F928882359F08091790583FB222720F9D9 +:1053500091E0922790FB83F98093790583EE0E9478 +:10536000F928882359F08091790584FB222720F9B8 +:1053700091E0922790FB84F98093790585E30E9460 +:10538000F928882359F08091790585FB222720F997 +:1053900091E0922790FB85F98093790581E30E9443 +:1053A000F928882359F08091790586FB222720F976 +:1053B00091E0922790FB86F98093790581E10E9424 +:1053C000F928882359F08091790587FB222720F955 +:1053D00091E0922790FB87F9809379058091790578 +:1053E0000E94792A8091790587FB882780F980932C +:1053F000660387E20E94F928C82F8EE10E94F928EF +:105400008111C2608FE10E94F9288111C46080E29D +:105410000E94F9288111C86081E20E94F928811157 +:10542000C06182E20E94F9288111C06283E20E9479 +:10543000F9288111C06484E20E94F928882311F0C0 +:10544000C06802C0CC2329F08C2F0E94702A6C2FD8 +:1054500003C00E946C2A682F70E080E090E0CF913A +:105460000C940A25CF9108956DEE7EEF80E090E0D8 +:105470000E946F3360E082E090E00E945D3360E064 +:1054800083E090E00E945D3360E084E090E00E9461 +:105490005D3360E085E090E00E945D3360E086E08F +:1054A00090E00E945D336FEF87E090E00C945D33F5 +:1054B00080E090E00E94573321E08D3E9E4F09F03E +:1054C00020E0822F089582E090E00C944F33682F03 +:1054D00082E090E00C945D3383E090E00C944F33D5 +:1054E000682F83E090E00C945D3384E090E00C94AE +:1054F0004F33682F84E090E00C945D3386E090E0B9 +:105500000C944F33682F86E090E00C945D3387E075 +:1055100090E00C944F33682F87E090E00C945D335B +:105520008091550580FF0BC060916C0385E0689FFA +:10553000B001112475956795759567952BC081FF0E +:1055400009C060916C0385E0689FB00111247595D6 +:10555000679520C082FF07C060916C0385E0689F5B +:10556000B001112417C0909156059923D1F0609194 +:105570006B03961788F720916C0385E0289F9001B4 +:105580001124929FA001939F500D112470E0CA0135 +:105590000E9435336038710540F46115710539F0AA +:1055A00002C065E070E0862F08958FE7089581E0DE +:1055B00008958091550580FF08C060916A0370E0EE +:1055C000759567957595679521C081FF06C06091B7 +:1055D0006A0370E07595679519C082FF04C06091F9 +:1055E0006A0370E010C0909156059923C1F0609154 +:1055F00069039617A0F780916A03899FC00111245F +:1056000070E00E9435336038710528F4611571052A +:1056100021F0862F08958FE7089581E0089561E0D5 +:1056200070E0F4CF803F21F40E94902A819504C05D +:10563000813F29F40E94902A809359050895823F62 +:1056400021F40E94902A819504C0833F29F40E948E +:10565000902A809358050895893F19F40E94D92A09 +:1056600005C08A3F31F40E94D92A819580935A055A +:1056700008958B3F21F40E94D92A819504C08C3F64 +:1056800029F40E94D92A80935B050895843F21F470 +:1056900080915705816017C0853F21F4809157059F +:1056A000826011C0863F21F48091570584600BC051 +:1056B000873F21F480915705886005C0883F31F409 +:1056C0008091570580618093570508958D3F21F49F +:1056D0008091550581600BC08E3F21F48091550566 +:1056E000826005C08F3F29F48091550584608093C6 +:1056F00055050895803F39F48091590587FF6CC0A6 +:105700001092590569C0813F29F4809159051816F6 +:10571000BCF362C090915805823F29F497FF5CC0AA +:105720001092580559C0833F19F41916CCF354C090 +:10573000893F41F480915A0518160CF04DC0109223 +:105740005A054AC08A3F29F480915A0587FF44C010 +:10575000F6CF8B3F39F480915B0587FF3DC01092F7 +:105760005B053AC08C3F29F480915B051816BCF3A9 +:1057700033C0843F21F4809157058E7F17C0853F49 +:1057800021F4809157058D7F11C0863F21F48091CF +:1057900057058B7F0BC0873F21F480915705877F8A +:1057A00005C0883F31F4809157058F7E809357055F +:1057B00013C08D3F21F4809155058E7F0BC08E3F25 +:1057C00021F4809155058D7F05C08F3F29F480918C +:1057D00055058B7F809355058091580581110EC02A +:1057E0008091590581110AC080915A05811106C026 +:1057F00080915B05811102C010925605089587E5DE +:1058000095E00E947F1C0E94462890935405809347 +:10581000530508951F93CF93DF9380915305909183 +:1058200054050E945228AC0190915605992321F00D +:1058300020916D0330E006C020916E038AE0289F1E +:10584000900111244217530708F486C0809158052F +:10585000C0915905D0915A0510915B05811107C07F +:10586000C11176C0D11174C0111172C075C09F3FB3 +:1058700019F09F5F90935605181624F40E94902A01 +:10588000809358058091580587FF05C00E94902A93 +:105890008195809358051C1624F40E94902A8093C9 +:1058A00059058091590587FF05C00E94902A81956E +:1058B0008093590560915805662339F1C0915905C7 +:1058C000CC2319F1772767FD7095872F972F0E94BA +:1058D000573023E333E343E35FE30E9467310E94E1 +:1058E0002430609358056C2F772767FD7095872FBC +:1058F000972F0E94573023E333E343E35FE30E9493 +:1059000067310E942430609359051D1624F40E94CB +:10591000D92A80935A0580915A0587FF05C00E94B5 +:10592000D92A819580935A05111624F40E94D92A08 +:1059300080935B0580915B0587FF05C00E94D92A93 +:10594000819580935B05DF91CF911F910C94FF2B84 +:105950009F3F09F08ECF96CFDF91CF911F91089591 +:10596000E7E5F5E085E0DF011D928A95E9F7109201 +:105970005605109255050895833081F128F4813041 +:1059800059F08230D1F00895853009F449C0B8F15A +:10599000863009F456C0089580916E03262F30E0BA +:1059A000280F311D2F3F310524F4680F60936E03DB +:1059B00008958FEF80936E03089580916D03262FD5 +:1059C00030E0280F311D2F3F310524F4680F60931C +:1059D0006D0308958FEF80936D03089580916C039C +:1059E000262F30E0280F311D2F3F310524F4680F9A +:1059F00060936C0308958FEF80936C0308958091FA +:105A00006B03262F30E0280F311D2F3F310524F482 +:105A1000680F60936B0308958FEF80936B03089575 +:105A200080916A03262F30E0280F311D2F3F31056A +:105A300024F4680F60936A0308958FEF80936A03DC +:105A4000089580916903262F30E0280F311D2F3FE4 +:105A5000310524F4680F6093690308958FEF8093F4 +:105A600069030895833011F128F4813049F08230C0 +:105A700091F00895853081F120F18630C1F10895CB +:105A800080916E03681720F4861B80936E0308953F +:105A900010926E03089580916D03681720F4861BA1 +:105AA00080936D03089510926D03089580916C03A7 +:105AB000681720F4861B80936C03089510926C0382 +:105AC000089580916B03681720F4861B80936B0305 +:105AD000089510926B03089580916A03681720F46B +:105AE000861B80936A03089510926A03089580913B +:105AF0006903681720F4861B809369030895109248 +:105B0000690308950F931F93482F50E0FA013597CA +:105B1000EF33F10508F08CC0E156FF4F0C94493388 +:105B20000E94631C892B59F00E94631C90935D05B1 +:105B300080935C050E944A2180E090E004C080913F +:105B40005C0590915D050E945E1C6BC080914D05C7 +:105B5000817F8E7F80934D0581E080935F0569C0D2 +:105B60000E944A210E94C70E0E94BB070E94A128E2 +:105B700058C090914D05892F8095817080FB90F9D8 +:105B800029F09660986090934D0553C0997F977F58 +:105B900090934D0546C080914D0581FB222720F949 +:105BA00091E0922790FB81F980934D059923C9F1EB +:105BB00080914D05816080934D0533C080914D05E6 +:105BC00082FB222720F991E0922790FB82F9ECCF0B +:105BD00080914D0583FB222720F991E0922790FBCD +:105BE00083F9E2CF0E944A219091660381E08927E0 +:105BF0008093660316C0895301C08D5141E050E087 +:105C000060E070E08A019B0104C0000F111F221F99 +:105C1000331F8A95D2F7C901B8010E940A250E9454 +:105C20004A2181E006C061E070E080E090E0F5CFBD +:105C300080E01F910F91089580E0089580E008951D +:105C4000CF93C82F80915F05813069F018F08230C2 +:105C5000C9F184C0E0916703F091680380818232CA +:105C600009F07EC007C0E0916703F091680380816E +:105C7000823261F48C2F0E941C2E811104C08C2F63 +:105C80000E94822D1DC081E090E01AC08C2F0E94DE +:105C90001E2E811114C0C43179F048F4CB3079F054 +:105CA000C03109F061C082E080935F0508C0C9324D +:105CB00019F0C83321F058C010925F0555C081E03B +:105CC000817054C0C93291F120F5C43179F1B0F43A +:105CD000C73009F047C08EE180936E0382E3809362 +:105CE0006D038AE080936C0384E180936B0388E00A +:105CF00080936A0388E28093690334C0CE51C63032 +:105D000088F5EC2FF0E0E65FFB4F808180935E0525 +:105D100029C0CE34E9F020F4CB3421F56AE013C079 +:105D2000C13579F0C235F1F461E00DC080915E05B6 +:105D3000882319F010925E0515C081E080935F05FD +:105D400015C061E006C080915E050E94BC2C0AC0AF +:105D50006AE080915E050E94322D04C010925F05BA +:105D600080E004C081E002C080E0AACFCF91089516 +:105D70000E94582A811102C00E94342A0E947E2A61 +:105D800080937A0580FF02C0869501C080E00C9464 +:105D90002A0580917A05982F9695292F30E0233097 +:105DA00031054CF49F5F990F8170892B816080933E +:105DB0007A050E94822A80917A0586950C942A059C +:105DC00080917A05982F969591F09158990F81704E +:105DD000892B80937A058E7F91E009F490E0809181 +:105DE0007A0590FB80F980937A050E94822A80913F +:105DF0007A0586950C942A0580917A05982F9095BE +:105E000090FB80F980937A050E94822A80917A051E +:105E100080FF02C0869501C080E00C942A05909115 +:105E20007A05892F86958F5F8F779170843028F45B +:105E3000880F892B80937A0502C090937A05809110 +:105E40007A058E7F91E009F490E080917A0590FBCD +:105E500080F980937A050E94822A80917A0586953E +:105E60000C942A0520917A05922F96958927982FD0 +:105E7000990F822F8170892B80937A058E7F91E014 +:105E800009F490E080917A0590FB80F980937A057F +:105E90000E94822A80917A0586950C942A05809129 +:105EA0007A05869508955058BB27AA270ED0D1C1F0 +:105EB000C2D130F0C7D120F031F49F3F11F41EF46D +:105EC000B7C10EF4E095E7FB9FC1E92FD3D180F372 +:105ED000BA17620773078407950718F071F49EF5E7 +:105EE000EBC10EF4E0950B2EBA2FA02D0B01B901DA +:105EF00090010C01CA01A0011124FF27591B99F040 +:105F0000593F50F4503E68F11A16F040A22F232F4B +:105F1000342F4427585FF3CF469537952795A7959B +:105F2000F0405395C9F77EF41F16BA0B620B730B42 +:105F3000840BBAF09150A1F0FF0FBB1F661F771FB3 +:105F4000881FC2F70EC0BA0F621F731F841F48F468 +:105F5000879577956795B795F7959E3F08F0B3CFEE +:105F60009395880F08F09927EE0F979587950895D8 +:105F700027D108F481E008950CD06BC163D140F0C3 +:105F80005AD130F021F45F3F19F03EC1511195C153 +:105F90004FC170D198F39923C9F35523B1F3951BE1 +:105FA000550BBB27AA2762177307840738F09F5F3A +:105FB0005F4F220F331F441FAA1FA9F333D00E2EA9 +:105FC0003AF0E0E830D091505040E695001CCAF716 +:105FD00029D0FE2F27D0660F771F881FBB1F2617DB +:105FE00037074807AB07B0E809F0BB0B802DBF01AE +:105FF000FF2793585F4F2AF09E3F510568F004C178 +:106000005CC15F3FECF3983EDCF38695779567952E +:10601000B795F7959F5FC9F7880F911D969587955E +:1060200097F90895E1E0660F771F881FBB1F62177D +:1060300073078407BA0720F0621B730B840BBA0B3B +:10604000EE1F88F7E095089504D06894B11135C12A +:10605000089518D188F09F5790F0B92F9927B7511C +:10606000A0F0D1F0660F771F881F991F1AF0BA951C +:10607000C9F712C0B13081F01FD1B1E008951CC141 +:10608000672F782F8827B85F39F0B93FCCF3869512 +:1060900077956795B395D9F73EF49095809570956F +:1060A00061957F4F8F4F9F4F0895E89409C097FBEC +:1060B0003EF490958095709561957F4F8F4F9F4FDF +:1060C0009923A9F0F92F96E9BB279395F695879523 +:1060D00077956795B795F111F8CFFAF4BB0F11F4E6 +:1060E00060FF1BC06F5F7F4F8F4F9F4F16C088238D +:1060F00011F096E911C0772321F09EE8872F762FC3 +:1061000005C0662371F096E8862F70E060E02AF003 +:106110009A95660F771F881FDAF7880F96958795EF +:1061200097F9089588D018F011F08CD038F480C019 +:10613000C4C0E92F9FD0B0F35523C9F3E7FB621722 +:10614000730784079507A8F199F3E92FFF278823A0 +:106150002AF03197660F771F881FDAF7952F55279A +:10616000442332F091505040220F331F441FD2F786 +:10617000BB27E91BF50B621B730B840BB109C1F242 +:1061800022F4620F731F841FB11D31972AF0660F2E +:10619000771F881FBB1FEFCF915050405AF041F03E +:1061A000882332F0660F771F881F91505040C1F747 +:1061B000939530C08695779567959F5FD9F7F8CF0F +:1061C000990F0008550FAA0BE0E8FEEF1616170608 +:1061D000E807F907C0F012161306E407F50798F070 +:1061E000621B730B840B950B39F40A2661F0232B89 +:1061F000242B252B21F408950A2609F4A140A69505 +:106200008FEF811D811D089597F99F6780E870E0E9 +:1062100060E008959F3F31F0915020F48795779585 +:106220006795B795880F911D9695879597F908956D +:106230009FEF80EC089500240A941616170618069E +:106240000906089500240A9412161306140605067A +:106250000895092E0394000C11F4882352F0BB0F0B +:1062600040F4BF2B11F460FF04C06F5F7F4F8F4F6E +:106270009F4F089557FD9058440F551F59F05F3FA9 +:1062800071F04795880F97FB991F61F09F3F79F058 +:1062900087950895121613061406551FF2CF4695DA +:1062A000F1DF08C0161617061806991FF1CF86955C +:1062B0007105610508940895E894BB276627772740 +:1062C000CB0197F908957CDF08F48FEF08950BD088 +:1062D000C0CFB1DF28F0B6DF18F0952309F094CFD6 +:1062E000A7CF1124EACFC6DFA0F3959FD1F3950F76 +:1062F00050E0551F629FF001729FBB27F00DB11D4A +:10630000639FAA27F00DB11DAA1F649F6627B00DD9 +:10631000A11D661F829F2227B00DA11D621F739FC2 +:10632000B00DA11D621F839FA00D611D221F749FD0 +:106330003327A00D611D231F849F600D211D822F17 +:10634000762F6A2F11249F5750408AF0E1F088235E +:106350004AF0EE0FFF1FBB1F661F771F881F91506B +:106360005040A9F79E3F510570F04ECFA6CF5F3F3A +:10637000ECF3983EDCF3869577956795B795F7959E +:10638000E7959F5FC1F7FE2B880F911D9695879526 +:1063900097F90895FA01EE0FFF1F30962105310598 +:1063A00099F16115710561F48038BFE39B0749F1EC +:1063B00068949038810561F08038BFEF9B0741F009 +:1063C000992342F5FF3FE1053105210511F1E894DC +:1063D0000894E795D901AA2329F4AB2FBE2FF85FC3 +:1063E000D0F310C0FF5F70F4A695E0F7F73950F0D6 +:1063F00019F0FF3A38F49F779F930CD00F9007FC69 +:10640000905808953EF014CF60E070E080E89FE37C +:1064100008954FE79F775F934F933F932F939ED0BD +:106420002F913F914F915F9152DF05C019F40EF00B +:10643000EBCE42CFFDCE26DFC8F39638C0F707F883 +:106440000F92E8942BE33AEA48EB5FE74EDF0F92B6 +:106450000F920F924DB75EB70F92C0D0ECEBF1E008 +:1064600016D04F915F91EF91FF91E595EE1FFF1FC1 +:1064700049F0FE57E0684427EE0F441FFA95E1F714 +:106480004195550B32D00F9007FE26C00895DF933B +:10649000CF931F930F93FF92EF92DF927B018C01BA +:1064A000689405C0DA2EEF011EDFFE01E894A59185 +:1064B0002591359145915591AEF3EF0106DDFE0131 +:1064C0009701A801DA9479F7DF90EF90FF900F9190 +:1064D0001F91CF91DF9108959B01AC0160E070E0C6 +:1064E00080E89FE349CD90CE95CECCDEE8F39923AA +:1064F000D9F3940F511DBBF39150504094F059F0D3 +:10650000882332F0660F771F881F91505040C1F7E3 +:106510009E3F510544F7880F911D9695879597F9F1 +:1065200008955F3FACF0983E9CF0BB278695779529 +:106530006795B79508F4B1609395C1F7BB0F58F70D +:1065400011F460FFE8CF6F5F7F4F8F4F9F4FE3CF16 +:10655000B4CE0EF05FCE6CCE689456CE93DEC8F308 +:106560009923D1F3C6F3DF93CF931F930F93FF9239 +:10657000C92FDD2788232AF02197660F771F881FF0 +:10658000DAF720E030E040E85FEB9FE3883920F065 +:10659000803E30F021968F7787DCE4EEF1E003C097 +:1065A00083DCE1E1F2E073DF8B01BE01EC01FB2E45 +:1065B0006F5771097595771F880B990B78DD28E166 +:1065C00032E741E35FE38FDEAF2D9801AE01FF902C +:1065D0000F911F91CF91DF9178DC3BCEFA01DC0166 +:1065E000AA0FBB1F9B01AC01BF5728F422273327FA +:1065F000442750781FC0B75188F4AB2F002446952C +:1066000037952795011CA395D2F3002069F0220F3E +:10661000331F441FB395DAF30DD045CC61307105BB +:10662000A0E88A07B94630F49B01AC0166277727BA +:1066300088279078309621F02083318342835383DA +:106640000895AA1BBB1B51E107C0AA1FBB1FA617B9 +:10665000B70710F0A61BB70B881F991F5A95A9F70B +:1066600080959095BC01CD01089597FB072E16F4F7 +:10667000009407D077FD09D00E94213307FC05D094 +:106680003EF4909581959F4F0895709561957F4F49 +:106690000895EE0FFF1F0590F491E02D0994F999EC +:1066A000FECF92BD81BDF89A992780B50895A8E1E3 +:1066B000B0E042E050E00C947733262FF999FECFFA +:1066C00092BD81BDF89A019700B4021639F01FBA45 +:1066D00020BD0FB6F894FA9AF99A0FBE0895019664 +:1066E000272F0E945E330C945D33DC01CB01FC014B +:1066F000F999FECF06C0F2BDE1BDF89A319600B41B +:0E6700000D9241505040B8F70895F894FFCF25 +:10670E00A4D0A443000000417BD49243000000417A +:10671E007BD4924300000041A4D0A443000000416A +:10672E00A4D02444000000411FD5124400000041B3 +:10673E001FD5124400000041A4D0244400000041A3 +:10674E00A4F076430000004100005C4300000041CD +:10675E0000005C4300000041A4F0764300000041BD +:10676E0000005C440000004148F176440000004106 +:10677E005C978A44000000411FD5924400000041FE +:10678E0052D0A444000000415CFFB8440000004118 +:10679E000AA7CF44000000410000DC440000004185 +:1067AE00A4D082430000C0417BD49243000000413C +:1067BE00A4D0A4430000C041A4D0824300000041F5 +:1067CE00A4D0A44300008041A4D0824300008041A5 +:1067DE00A4D0A443000080411FD512440000804184 +:1067EE00A4D024440000804100D002440000804127 +:1067FE00A4D08243000080410000C44300008041C9 +:10680E000AA7CF44000000410000DC440000004114 +:10681E00000000000000804052D02445000040419E +:10682E0000000000000080400AA74F4500004041D4 +:10683E000AA7CF44000000410000DC4400000041E4 +:10684E00000000000000804052D0244500000041AE +:10685E0000000000000080405CFF38450000004151 +:10686E00000000000000804052D02445000000418E +:10687E000AA7CF44000000410000DC4400000041A4 +:10688E00000000000000804052D0244500008041EE +:10689E00A4F0F6430000C0417BD4924300000041B7 +:1068AE0048F176440000804100005C440000004244 +:1068BE005CFF434400008041A4F0F6430000C04159 +:1068CE001FD51244000000415CFF4344000080418C +:1068DE005CFF384400000042A4D0A4430000804175 +:1068EE00A4D0A44300008041719DAE4300008041BE +:1068FE000000C443000080410000C44300008041FA +:10690E00719DAE4300008041A4D0A443000080419D +:10691E007BD4924300008041A4D08243000080418A +:10692E00A4D08243000080417BD49243000080417A +:10693E00A4D0A44300008041A4D0A4430000C041D1 +:10694E007BD49243000000417BD49243000000426E +:10695E00640007000CFF0000003F646715F515D2B8 +:10696E00159E156A1501013A052808140A321E00F3 +:10697E0002040507090B0C0E1011131517181A1C1B +:10698E001D1F2123242628292B2D2F303234353755 +:10699E00393B1F0F03764F5F6F7F49694379392962 +:1069AE001909595363333149803F5D8B803FF8BFDE +:1069BE00803FCAE1803F73ED803FCAE1803FF8BF60 +:1069CE00803F5D8B803F3149803F0000803FF16DFD +:1069DE007F3F75EA7E3F4C827E3F833F7E3F842819 +:1069EE007E3F833F7E3F4C827E3F75EA7E3FF16D58 +:1069FE007F3F0000803F3F4D3639C7087A08440874 +:106A0E000B089E07B707D007E90701020304050626 +:046A1E00070809005C +:00000001FF diff --git a/keyboards/atomic/keymaps/pvc/config.h b/keyboards/atomic/keymaps/pvc/config.h new file mode 100644 index 000000000..1473aac34 --- /dev/null +++ b/keyboards/atomic/keymaps/pvc/config.h @@ -0,0 +1,166 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0419 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Ortholinear Keyboards +#define PRODUCT The Atomic Keyboard +#define DESCRIPTION A compact ortholinear keyboard + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { D0, D5, B5, B6, B3 } +#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7, D3, D2, D1 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +// Enable Keyboard Locking via magic key +#define KEYBOARD_LOCK_ENABLE + + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +#define MAGIC_KEY_BOOTLOADER B +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + + +//#define VIBRATO_ENABLE +//#define VIBRATO_STRENGTH_ENABLE + +#endif diff --git a/keyboards/atomic/keymaps/pvc/keymap.c b/keyboards/atomic/keymaps/pvc/keymap.c new file mode 100644 index 000000000..f16ec8a6e --- /dev/null +++ b/keyboards/atomic/keymaps/pvc/keymap.c @@ -0,0 +1,578 @@ +#include "atomic.h" +#include "action_layer.h" +#include "eeconfig.h" +#include "led.h" + +#ifdef AUDIO_ENABLE + #include "audio.h" + #include "song_list.h" +#endif + +#define LAYER_QWERTY 0 +#define LAYER_COLEMAK 1 +#define LAYER_DVORAK 2 +#define LAYER_UPPER 3 +#define LAYER_LOWER 4 +#define LAYER_FUNCTION 5 +#define LAYER_MOUSE 6 +#define LAYER_ADJUST 7 + +#define MACRO_QWERTY 0 +#define MACRO_COLEMAK 1 +#define MACRO_DVORAK 2 +#define MACRO_UPPER 3 +#define MACRO_LOWER 4 +#define MACRO_FUNCTION 5 +#define MACRO_MOUSE 6 +#define MACRO_TIMBRE_1 7 +#define MACRO_TIMBRE_2 8 +#define MACRO_TIMBRE_3 9 +#define MACRO_TIMBRE_4 10 +#define MACRO_TEMPO_U 11 +#define MACRO_TEMPO_D 12 +#define MACRO_TONE_DEFAULT 13 +#define MACRO_MUSIC_TOGGLE 14 +#define MACRO_AUDIO_TOGGLE 16 +#define MACRO_INC_VOICE 18 +#define MACRO_DEC_VOICE 19 +#define MACRO_BACKLIGHT 20 +#define MACRO_BREATH_TOGGLE 21 +#define MACRO_BREATH_SPEED_INC 23 +#define MACRO_BREATH_SPEED_DEC 24 +#define MACRO_BREATH_DEFAULT 25 + +#define M_QWRTY M(MACRO_QWERTY) +#define M_COLMK M(MACRO_COLEMAK) +#define M_DVORK M(MACRO_DVORAK) +#define M_UPPER M(MACRO_UPPER) +#define M_LOWER M(MACRO_LOWER) +#define M_FUNCT M(MACRO_FUNCTION) +#define M_MOUSE M(MACRO_MOUSE) +#define TIMBR_1 M(MACRO_TIMBRE_1) +#define TIMBR_2 M(MACRO_TIMBRE_2) +#define TIMBR_3 M(MACRO_TIMBRE_3) +#define TIMBR_4 M(MACRO_TIMBRE_4) +#define TMPO_UP M(MACRO_TEMPO_U) +#define TMPO_DN M(MACRO_TEMPO_D) +#define TMPO_DF M(MACRO_TONE_DEFAULT) +#define M_BACKL M(MACRO_BACKLIGHT) +#define M_BRTOG M(MACRO_BREATH_TOGGLE) +#define M_BSPDU M(MACRO_BREATH_SPEED_INC) +#define M_BSPDD M(MACRO_BREATH_SPEED_DEC) +#define M_BDFLT M(MACRO_BREATH_DEFAULT) + + +#define VC_UP M(MACRO_INC_VOICE) +#define VC_DOWN M(MACRO_DEC_VOICE) + + +#define SC_UNDO LCTL(KC_Z) +#define SC_REDO LCTL(KC_Y) +#define SC_CUT LCTL(KC_X) +#define SC_COPY LCTL(KC_C) +#define SC_PSTE LCTL(KC_V) +#define SC_SELA LCTL(KC_A) +#define SC_SAVE LCTL(KC_S) +#define SC_OPEN LCTL(KC_O) +#define SC_ACLS LALT(KC_F4) +#define SC_CCLS LCTL(KC_F4) + +#define OS_SHFT KC_FN0 + +#define _______ KC_TRNS +#define XXXXXXX KC_NO +#define ________________ _______, _______ +#define XXXXXXXXXXXXXXXX XXXXXXX, XXXXXXX + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* QWERTY + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | DEL | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | XXXXXX . ENTER | PG UP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN | + * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| + * | LCTRL | LWIN | FN | LALT | UPPER | XXXXXX . SPACE | LOWER | SHIFT | RALT | APP | RCTRL | LEFT | DOWN | RIGHT | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [LAYER_QWERTY] = { // QWERTY + { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC }, + { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL }, + { KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP }, + { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN }, + { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC, KC_SPC, M_LOWER, OS_SHFT, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, + }, + + /* COLEMAK + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | TAB | Q | W | F | P | G | J | L | U | Y | ; | [ | ] | \ | DEL | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | BACKSP | A | R | S | T | D | H | N | E | I | O | ' | XXXXXX . ENTER | PG UP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | LSHIFT | Z | X | C | V | B | K | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN | + * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| + * | LCTRL | LWIN | FN | LALT | UPPER | XXXXXX . SPACE | LOWER | SHIFT | RALT | APP | RCTRL | LEFT | DOWN | RIGHT | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [LAYER_COLEMAK] = { // COLEMAK + { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC }, + { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL }, + { KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP }, + { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN }, + { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC, KC_SPC, M_LOWER, OS_SHFT, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, +}, + +/* DVORAK + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | [ | ] | XXXXXX . BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | TAB | ' | , | . | P | Y | F | G | C | R | L | / | = | \ | DEL | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | CAPS | A | O | E | U | I | D | H | T | N | S | - | XXXXXX . ENTER | PG UP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | LSHIFT | ; | Q | J | K | X | B | M | W | V | Z | XXXXXX . RSHIFT | UP | PG DN | + * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| + * | LCTRL | LWIN | FN | LALT | UPPER | XXXXXX . SPACE | LOWER | SHIFT | RALT | APP | RCTRL | LEFT | DOWN | RIGHT | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [LAYER_DVORAK] = { // DVORAK + { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_BSPC }, + { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, KC_DEL }, + { KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, KC_ENT, KC_PGUP }, + { KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN }, + { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC, KC_SPC, M_LOWER, OS_SHFT, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, + }, + +/* UPPER + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | PRINT | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | NUM LK | / | * | | NUM LK | SCR LK | XXXXXX . PAUSE | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | | F1 | F2 | F3 | F4 | | | 7 | 8 | 9 | - | | | | INS | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | CAP LK | F5 | F6 | F7 | F8 | | | 4 | 5 | 6 | + | | XXXXXX . | HOME | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | | F9 | F10 | F11 | F12 | | | 1 | 2 | 3 | ENTER | XXXXXX . | | END | + * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| + * | | | | | | 0 | | RALT | . | ENTER | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [LAYER_UPPER] = { // UPPER + { KC_PSCR, M_BRTOG, M_BSPDU, M_BSPDD, M_BDFLT, XXXXXXX, XXXXXXX, KC_NLCK, KC_PSLS, KC_PAST, XXXXXXX, XXXXXXX, KC_SLCK, KC_PAUS, KC_PAUS }, + { _______, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, _______, _______, _______, KC_INS }, + { KC_CAPS, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, XXXXXXX, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, _______, ________________, KC_HOME }, + { _______, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, ________________, _______, KC_END }, + { _______, _______, _______, _______, _______, KC_KP_0, KC_KP_0, _______, KC_RALT, KC_PDOT, KC_PENT, _______, _______, _______, _______ }, + }, + +/* LOWER + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | | $ | { | [ | ( | % | # | ) | ] | } | @ | | | | INS | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | | ^ | * | + | - | ; | : | _ | ' | " | ` | | XXXXXX . | HOME | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | | | | & | ! | ~ | / | \ | = | < | > | ? | XXXXXX . | | END | + * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| + * | | | | | | | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [LAYER_LOWER] = { // LOWER + { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ________________ }, + { _______, KC_DLR, KC_LCBR, KC_LBRC, KC_LPRN, KC_PERC, KC_HASH, KC_RPRN, KC_RBRC, KC_RCBR, KC_AT, _______, _______, _______, KC_INS }, + { _______, KC_CIRC, KC_ASTR, KC_PPLS, KC_PMNS, KC_SCLN, KC_COLN, KC_UNDS, KC_QUOT, KC_DQT, KC_GRV, _______, ________________, KC_HOME }, + { _______, KC_PIPE, KC_AMPR, KC_EXLM, KC_TILD, KC_SLSH, KC_BSLS, KC_EQL, KC_LT, KC_GT, KC_QUES, ________________, _______, KC_END }, + { _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______, _______, _______, _______ }, + }, + + [LAYER_FUNCTION] = { // FUNCTION + { KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ________________ }, + { KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, _______, KC_PAUS }, + { KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, KC_PSCR }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, KC_VOLU, KC_MUTE }, + { _______, _______, _______, _______, _______, KC_MPLY, KC_MPLY, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT }, + }, + +#ifdef MOUSEKEY_ENABLE + + [LAYER_MOUSE] = { // MOUSE + { _______, KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXXXXXXXXXXX }, + { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + { XXXXXXX, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXXXXXXXXXXX, KC_WH_U }, + { _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, ________________, KC_MS_U, KC_WH_D }, + { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, + }, + +#endif + + [LAYER_ADJUST] = { // ADJUST + { _______, TIMBR_1, TIMBR_2, TIMBR_3, TIMBR_4, TMPO_UP, TMPO_DN, TMPO_DF, _______, _______, _______, MU_TOG, AU_TOG, ________________ }, + { _______, M_QWRTY, M_COLMK, M_DVORK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, _______ }, + { _______, _______, _______, _______, M_BACKL, RESET, _______, M_MOUSE, _______, _______, _______, ________________, MUV_IN, _______ }, + { _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______, _______, MUV_DE, _______ }, + }, + + +/* + [LAYER_EMPTY] = { // LAYER + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, _______, _______ }, + { _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______, _______, _______, _______ }, + }, +*/ + +}; + +#ifdef AUDIO_ENABLE + +float tone_my_startup[][2] = SONG(ODE_TO_JOY); +float tone_my_goodbye[][2] = SONG(ROCK_A_BYE_BABY); + +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); + +float tone_audio_on[][2] = SONG(CLOSE_ENCOUNTERS_5_NOTE); +float tone_music_on[][2] = SONG(DOE_A_DEER); +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); + +float tone_caps_on[][2] = SONG(CAPS_LOCK_ON_SOUND); +float tone_caps_off[][2] = SONG(CAPS_LOCK_OFF_SOUND); +float tone_numlk_on[][2] = SONG(NUM_LOCK_ON_SOUND); +float tone_numlk_off[][2] = SONG(NUM_LOCK_OFF_SOUND); +float tone_scroll_on[][2] = SONG(SCROLL_LOCK_ON_SOUND); +float tone_scroll_off[][2] = SONG(SCROLL_LOCK_OFF_SOUND); + +#endif /* AUDIO_ENABLE */ + +void persistant_default_layer_set(uint16_t default_layer) +{ + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_MODS_ONESHOT(MOD_LSFT), +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + + // MACRODOWN only works in this function + switch(id) + { + + case MACRO_BREATH_TOGGLE: + if (record->event.pressed) + { + breathing_toggle(); + } + break; + + case MACRO_BREATH_SPEED_INC: + if (record->event.pressed) + { + breathing_speed_inc(1); + } + break; + + case MACRO_BREATH_SPEED_DEC: + if (record->event.pressed) + { + breathing_speed_dec(1); + } + break; + + case MACRO_BREATH_DEFAULT: + if (record->event.pressed) + { + breathing_defaults(); + } + break; + + case MACRO_QWERTY: + if (record->event.pressed) + { + persistant_default_layer_set(1UL<event.pressed) + { + persistant_default_layer_set(1UL<event.pressed) + { + persistant_default_layer_set(1UL<event.pressed) + { + layer_on(LAYER_UPPER); + breathing_speed_set(2); + breathing_pulse(); + update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); + } + else + { + layer_off(LAYER_UPPER); + update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); + } + break; + + case MACRO_LOWER: + if (record->event.pressed) + { + layer_on(LAYER_LOWER); + breathing_speed_set(2); + breathing_pulse(); + update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); + } + else + { + layer_off(LAYER_LOWER); + update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); + } + break; + + case MACRO_FUNCTION: + if (record->event.pressed) + { + breathing_speed_set(3); + breathing_enable(); + layer_on(LAYER_FUNCTION); + } + else + { + breathing_speed_set(1); + breathing_self_disable(); + layer_off(LAYER_FUNCTION); + } + break; + +#ifdef MOUSEKEY_ENABLE + + case MACRO_MOUSE: + if (record->event.pressed) + { + layer_invert(LAYER_MOUSE); + } + break; + +#endif /* MOUSEKEY_ENABLE */ + +#ifdef AUDIO_ENABLE + + case MACRO_TIMBRE_1: + if (record->event.pressed) set_timbre(TIMBRE_12); + break; + + case MACRO_TIMBRE_2: + if (record->event.pressed) set_timbre(TIMBRE_25); + break; + + case MACRO_TIMBRE_3: + if (record->event.pressed) set_timbre(TIMBRE_50); + break; + + case MACRO_TIMBRE_4: + if (record->event.pressed) set_timbre(TIMBRE_75); + break; + + case MACRO_TEMPO_U: + if (record->event.pressed) increase_tempo(10); + break; + + case MACRO_TEMPO_D: + if (record->event.pressed) decrease_tempo(10); + break; + + case MACRO_TONE_DEFAULT: + if (record->event.pressed) + { + set_timbre(TIMBRE_DEFAULT); + set_tempo(TEMPO_DEFAULT); + } + break; + +/* + case MACRO_AUDIO_TOGGLE: + if (record->event.pressed) + { + if (is_audio_on()) + { + audio_off(); + } + else + { + audio_on(); + PLAY_NOTE_ARRAY(tone_audio_on, false, STACCATO); + } + } + break; + + case MACRO_MUSIC_TOGGLE: + if (record->event.pressed) + { + if (IS_LAYER_ON(LAYER_MUSIC)) + { + layer_off(LAYER_MUSIC); + stop_all_notes(); + } + else + { + PLAY_NOTE_ARRAY(tone_music_on, false, STACCATO); + layer_on(LAYER_MUSIC); + } + } + break; + case MACRO_INC_VOICE: + if (record->event.pressed) + { + #ifdef AUDIO_ENABLE + voice_iterate(); + PLAY_NOTE_ARRAY(music_scale, false, STACCATO); + #endif + } + break; + + case MACRO_DEC_VOICE: + if (record->event.pressed) + { + #ifdef AUDIO_ENABLE + voice_deiterate(); + PLAY_NOTE_ARRAY(music_scale, false, STACCATO); + #endif + } + break; +*/ + +#endif /* AUDIO_ENABLE */ + +#ifdef BACKLIGHT_ENABLE + case MACRO_BACKLIGHT: + if (record->event.pressed) + { + backlight_step(); + } +#endif + + default: + break; + + } + return MACRO_NONE; +}; + + +#ifdef AUDIO_ENABLE + +void matrix_init_user(void) +{ + set_voice(default_voice); + startup_user(); + println("Matrix Init"); +} + +void led_set_user(uint8_t usb_led) +{ + static uint8_t old_usb_led = 0; + + _delay_ms(10); // gets rid of tick + + if (!is_playing_notes()) + { + if ((usb_led & (1<event.pressed` (see keymap_default.c). + +```c +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // this is the function signature -- just copy/paste it into your keymap file as it is. +{ + switch(id) { + case 0: // this would trigger when you hit a key mapped as M(0) + if (record->event.pressed) { + return MACRO( I(255), T(H), T(E), T(L), T(L), W(255), T(O), END ); // this sends the string 'hello' when the macro executes + } + break; + } + return MACRO_NONE; +}; +``` +A macro can include the following commands: + +* I() change interval of stroke in milliseconds. +* D() press key. +* U() release key. +* T() type key(press and release). +* W() wait (milliseconds). +* END end mark. + +So above you can see the stroke interval changed to 255ms between each keystroke, then a bunch of keys being typed, waits a while, then the macro ends. + +Note: Using macros to have your keyboard send passwords for you is a bad idea. + +### Additional keycode aliases for software-implemented layouts (Colemak, Dvorak, etc) + +Everything is assuming you're in Qwerty (in software) by default, but there is built-in support for using a Colemak or Dvorak layout by including this at the top of your keymap: + + #include "keymap_.h" + +Where is "colemak" or "dvorak". After including this line, you will get access to: + + * `CM_*` for all of the Colemak-equivalent characters + * `DV_*` for all of the Dvorak-equivalent characters + +These implementations assume you're using Colemak or Dvorak on your OS, not on your keyboard - this is referred to as a software-implemented layout. If your computer is in Qwerty and your keymap is in Colemak or Dvorak, this is referred to as a firmware-implemented layout, and you won't need these features. + +To give an example, if you're using software-implemented Colemak, and want to get an `F`, you would use `CM_F` - `KC_F` under these same circumstances would result in `T`. + +## Additional language support + +In `quantum/keymap_extras/`, you'll see various language files - these work the same way as the alternative layout ones do. Most are defined by their two letter country/language code followed by an underscore and a 4-letter abbreviation of its name. `FR_UGRV` which will result in a `ù` when using a software-implemented AZERTY layout. It's currently difficult to send such characters in just the firmware (but it's being worked on - see Unicode support). + +## Unicode support + +You can currently send 4 hex digits with your OS-specific modifier key (RALT for OSX with the "Unicode Hex Input" layout) - this is currently limited to supporting one OS at a time, and requires a recompile for switching. 8 digit hex codes are being worked on. The keycode function is `UC(n)`, where *n* is a 4 digit hexidecimal. Enable from the Makefile. + +## Other firmware shortcut keycodes + +* `RESET` - puts the MCU in DFU mode for flashing new firmware (with `make dfu`) +* `DEBUG` - the firmware into debug mode - you'll need hid_listen to see things +* `BL_ON` - turns the backlight on +* `BL_OFF` - turns the backlight off +* `BL_` - sets the backlight to level *n* +* `BL_INC` - increments the backlight level by one +* `BL_DEC` - decrements the backlight level by one +* `BL_TOGG` - toggles the backlight +* `BL_STEP` - steps through the backlight levels + +Enable the backlight from the Makefile. + +## MIDI functionalty + +This is still a WIP, but check out `quantum/keymap_midi.c` to see what's happening. Enable from the Makefile. + +## Bluetooth functionality + +This requires [some hardware changes](https://www.reddit.com/r/MechanicalKeyboards/comments/3psx0q/the_planck_keyboard_with_bluetooth_guide_and/?ref=search_posts), but can be enabled via the Makefile. The firmware will still output characters via USB, so be aware of this when charging via a computer. It would make sense to have a switch on the Bluefruit to turn it off at will. + +## Building + +Download or clone the whole firmware and navigate to the keyboards/planck folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use `make dfu` to program your PCB once you hit the reset button. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default +To build with the default keymap, simply run `make`. + +### Other Keymaps +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` and see keymap document (you can find in top README.md) and existent keymap files. + +To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: +``` +$ make KEYMAP=[default|jack|] +``` +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboards/atreus/atreus.c b/keyboards/atreus/atreus.c new file mode 100644 index 000000000..9d1de631b --- /dev/null +++ b/keyboards/atreus/atreus.c @@ -0,0 +1,29 @@ +#include "atreus.h" + +__attribute__ ((weak)) +void matrix_init_user(void) { + // leave these blank +}; + +__attribute__ ((weak)) +void matrix_scan_user(void) { + // leave these blank +}; + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + if (matrix_init_user) { + (*matrix_init_user)(); + } +}; + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + if (matrix_scan_user) { + (*matrix_scan_user)(); + } +}; diff --git a/keyboards/atreus/atreus.h b/keyboards/atreus/atreus.h new file mode 100644 index 000000000..10712d26d --- /dev/null +++ b/keyboards/atreus/atreus.h @@ -0,0 +1,28 @@ +#ifndef ATREUS_H +#define ATREUS_H + +#include "matrix.h" +#include "keymap.h" +#include "backlight.h" +#include + +// This a shortcut to help you visually see your layout. +// The first section contains all of the arguements +// The second converts the arguments into a two-dimensional array +#define KEYMAP( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a \ +) \ +{ \ + { k00, k01, k02, k03, k04, KC_NO, k05, k06, k07, k08, k09 }, \ + { k10, k11, k12, k13, k14, KC_NO, k15, k16, k17, k18, k19 }, \ + { k20, k21, k22, k23, k24, k35, k25, k26, k27, k28, k29 }, \ + { k2a, k30, k31, k32, k33, k34, k36, k37, k38, k39, k3a } \ +} + +void matrix_init_user(void); +void matrix_scan_user(void); + +#endif diff --git a/keyboards/atreus/config.h b/keyboards/atreus/config.h new file mode 100644 index 000000000..624d90188 --- /dev/null +++ b/keyboards/atreus/config.h @@ -0,0 +1,88 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ + +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Technomancy +#define PRODUCT Atreus +#define DESCRIPTION q.m.k. keyboard firmware for Atreus + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 11 + +// Change this to how you wired your keyboard +// COLS: Left to right, ROWS: Top to bottom +#if defined(ATREUS_ASTAR) +# define MATRIX_ROW_PINS { D0, D1, D3, D2 } +# define MATRIX_COL_PINS { D7, C6, B5, B4, E6, D4, B6, F6, F7, D6, B7 } +# define UNUSED_PINS +#elif defined(ATREUS_TEENSY2) +# define MATRIX_ROW_PINS { D0, D1, D2, D3 } +# define MATRIX_COL_PINS { F6, F5, F4, B7, B6, B5, B4, B3, B2, B1, B0 } +# define UNUSED_PINS +#endif + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +//#define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/atreus/keymaps/default/compiled.hex b/keyboards/atreus/keymaps/default/compiled.hex new file mode 100644 index 000000000..a455e04de --- /dev/null +++ b/keyboards/atreus/keymaps/default/compiled.hex @@ -0,0 +1,1328 @@ +:100000000C941A060C945E060C945E060C945E0624 +:100010000C945E060C945E060C945E060C945E06D0 +:100020000C945E060C945E060C945D110C942F12D9 +:100030000C9410200C945E060C945E060C945E06E4 +:100040000C945E060C945E060C945E060C945E06A0 +:100050000C945E060C9478200C945E060C945E065C +:100060000C945E060C945E060C945E060C945E0680 +:100070000C945E060C945E060C945E060C945E0670 +:100080000C945E060C945E060C945E060C945E0660 +:100090000C945E060C945E060C945E060C945E0650 +:1000A0000C945E060C945E060C945E069C12BE12C6 +:1000B000AC13BE12AC1303132613AC137B138E13B5 +:1000C000D116D116001700173F175F178F188F181A +:1000D0006A178F181A181A1880188F188F1889180D +:1000E0002718271827182718271827182718271818 +:1000F0002718271827182718271827182718271808 +:10010000371845184C1853185D1814001A000800C9 +:100110001500170001001C0018000C00120013004D +:1001200004001600070009000A0001000B000D0082 +:100130000E000F0033001D001B0006001900050013 +:10014000E2001100100036003700380029002B00B3 +:10015000E300E1002A00E0002C0001522D003400F1 +:1001600028001E021F022F023002310201004B0044 +:100170002400250026002502200221022602270253 +:10018000350001004E002100220023002E02220231 +:1001900023022F0030003502E20024021E001F005F +:1001A0002000310002544900E300E1002A00E00091 +:1001B0002C000100370027002E0049004A005200A1 +:1001C0004D004B000100520040004100420043003E +:1001D0004C00500051004F005100010051003D0003 +:1001E0003E003F0044000100010001000100010049 +:1001F000E20001003A003B003C0045000100010024 +:10020000E300E1002A00E0002C000053010001009F +:1002100000500A44454255473A20656E61626C655C +:10022000642E0A005374617465206F6620726F77C4 +:100230002025583A2025303136620A0048756D6114 +:100240006E2D7265616461626C65206D61747269A6 +:10025000782073746174653A0D0A004465626F75A5 +:100260006E63696E672064656C61792072656D618B +:10027000696E696E673A2025580A005B735D004B12 +:100280006579626F6172642073746172742E0A0002 +:100290005B575D005B535D005B525D005B445D003E +:1002A0005B435D000E034100740072006500750041 +:1002B00073000000180354006500630068006E00BE +:1002C0006F006D0061006E006300790000000403A0 +:1002D000090409028D00050100A0FA0904000001CB +:1002E00003010100092111010001223F00070581DE +:1002F0000308000A09040100010301020009211199 +:10030000010001224D000705820308000A090402CA +:10031000000103000000092111010001223600073D +:1003200005830308000A0904030002030000000912 +:10033000211101000122200007058403200001078C +:100340000504032000010904040001030000000962 +:100350002111010001223900070585031000011257 +:1003600001100100000008EDFE60600100010200C4 +:100370000105010906A101050719E029E715002576 +:100380000195087501810205081901290595057572 +:10039000019102950175039101050719002977154F +:1003A000002501957875018102C00631FF0974A10D +:1003B000010975150025FF9520750881020976153C +:1003C0000025FF952075089102C005010980A10153 +:1003D000850216010026B7001A01002AB700751021 +:1003E00095018100C0050C0901A1018503160100DA +:1003F000269C021A01002A9C02751095018100C0FA +:1004000005010902A1010901A10005091901290538 +:10041000150025019505750181029501750381017E +:100420000501093009311581257F9502750881067E +:1004300009381581257F950175088106050C0A3854 +:10044000021581257F950175088106C0C005010947 +:1004500006A101050719E029E71500250195087592 +:100460000181029501750881010508190129059589 +:100470000575019102950175039101050719002980 +:10048000FF150025FF950675088100C00A0025307C +:10049000325820006B6579626F6172645F726570BB +:1004A0006F72743A20004B6579626F617264204C00 +:1004B0004544732073746174653A2025780A00649A +:1004C000656C5F6B65795F6269743A2063616E2762 +:1004D000742064656C3A20253032580A00616464E7 +:1004E0005F6B65795F6269743A2063616E2774207F +:1004F0006164643A20253032580A00290A002575C3 +:10050000002F002575005D2800256400200025646B +:1005100000200025640020002564007C0025303286 +:1005200058006D6F7573656B6579205B62746E7CC6 +:10053000782079207620685D287265702F61636C61 +:10054000293A205B006D6B5F776865656C5F746945 +:100550006D655F746F5F6D6178203D2025640A00D2 +:100560006D6B5F776865656C5F6D61785F737065F3 +:100570006564203D2025640A006D6B5F74696D65BC +:100580005F746F5F6D6178203D2025640A006D6B9C +:100590005F6D61785F7370656564203D2025640A36 +:1005A000006D6B5F696E74657276616C203D20250D +:1005B000640A006D6B5F64656C6179203D20256481 +:1005C0000A006D6B5F776865656C5F74696D655F68 +:1005D000746F5F6D6178203D2025640A006D6B5F4C +:1005E000776865656C5F6D61785F737065656420C1 +:1005F0003D2025640A006D6B5F74696D655F746FE3 +:100600005F6D6178203D2025640A006D6B5F6D6130 +:10061000785F7370656564203D2025640A006D6B0A +:100620005F696E74657276616C203D2025640A00F6 +:100630006D6B5F64656C6179203D2025640A000A5A +:1006400000257500363A20776865656C5F74696DC2 +:10065000655F746F5F6D61783A20000A0025750050 +:10066000353A20776865656C5F6D61785F7370659A +:1006700065643A20000A00257500343A2074696DDB +:10068000655F746F5F6D61783A20000A0025750020 +:10069000333A206D61785F73706565643A20000AB3 +:1006A00000257500323A20696E74657276616C2897 +:1006B0006D73293A20000A00257500313A206465DF +:1006C0006C6179282A31306D73293A20000A092D8E +:1006D0002056616C756573202D0A004D3E004D2536 +:1006E000643E20003F007365742064656661756C2C +:1006F000740A00433E200077686572652064656C6B +:1007000074613A20637572736F723D25642C207793 +:100710006865656C3D25640A53656520687474706E +:100720003A2F2F656E2E77696B6970656469612E4B +:100730006F72672F77696B692F4D6F7573655F6B8C +:100740006579730A000A092D204D6F7573656B6515 +:1007500079202D0A4553432F713A09717569740A3E +:10076000313A0964656C6179282A31306D73290A40 +:10077000323A09696E74657276616C286D73290A64 +:10078000333A096D61785F73706565640A343A09BC +:1007900074696D655F746F5F6D61780A353A0977CA +:1007A0006865656C5F6D61785F73706565640A3656 +:1007B0003A09776865656C5F74696D655F746F5F32 +:1007C0006D61780A0A703A097072696E74207661F8 +:1007D0006C7565730A643A097365742064656661B3 +:1007E000756C74730A75703A092B310A646F776EF1 +:1007F0003A092D310A706775703A092B31300A7049 +:1008000067646F776E3A092D31300A0A7370656537 +:1008100064203D2064656C7461202A206D61785FDE +:100820007370656564202A20287265706561742084 +:100830002F2074696D655F746F5F6D6178290A00A0 +:100840003F004D3E2000433E20004C25640A0074CA +:10085000696D65725F636F756E743A202530346C14 +:10086000580A006B6579626F6172645F6E6B726FBC +:100870003A2025580A006B6579626F6172645F697E +:10088000646C653A2025580A006B6579626F617265 +:10089000645F70726F746F636F6C3A2025580A0042 +:1008A000686F73745F6B6579626F6172645F6C65AA +:1008B000647328293A2025580A000A092D20537408 +:1008C00061747573202D0A004743433A20342E3952 +:1008D0002E32204156522D4C4942433A20312E3877 +:1008E0002E31204156525F415243483A2061767280 +:1008F000350A004F5054494F4E533A204C5546410B +:10090000204D4F5553454B45592045585452414B66 +:10091000455920434F4E534F4C4520434F4D4D4179 +:100920004E44204E4B524F20343039360A00425547 +:10093000494C443A20313637313865662D64697246 +:100940007479202832333A30383A3534204A756E7B +:100950002020392032303136290A005649443A20C5 +:1009600030784645454428546563686E6F6D616E06 +:10097000637929205049443A20307836303630287F +:1009800041747265757329205645523A203078308B +:100990003030310A00444553433A20712E6D2E6B9E +:1009A0002E206B6579626F617264206669726D7763 +:1009B00061726520666F72204174726575730A00FA +:1009C0000A092D2056657273696F6E202D0A000A80 +:1009D000092D20436F6E736F6C65202D0A455343BC +:1009E0002F713A09717569740A6D3A096D6F7573E3 +:1009F000656B65790A000A092D204D6167696320DE +:100A00002D0A443A094465627567204D6573736128 +:100A1000676520546F67676C650A583A094D6174C1 +:100A2000726978204465627567204D6F6465205453 +:100A30006F67676C65202D2053686F77206B657931 +:100A40007072657373657320696E206D617472696D +:100A50007820677269640A4B3A094B6579626F6165 +:100A6000726420446562756720546F67676C652007 +:100A70002D2053686F77206B6579707265737320D2 +:100A80007265706F72740A4D3A0944656275672029 +:100A90004D6F75736520546F67676C650A563A0928 +:100AA00056657273696F6E0A533A095374617475AF +:100AB000730A433A09416374697661746520436F30 +:100AC0006E736F6C65204D6F64650A46312D46313B +:100AD000303A0953776974636820746F204C6179E8 +:100AE000657220302D392028463130203D204C3091 +:100AF000290A302D393A0953776974636820746F75 +:100B0000204C6179657220302D390A4553433A09EA +:100B100053776974636820746F204C617965722023 +:100B2000302028616C7465726E617465206B657924 +:100B30002031290A47524156453A0953776974636F +:100B40006820746F204C6179657220302028616CB8 +:100B50007465726E617465206B65792032290A5064 +:100B6000415553453A094A756D7020746F20426FA4 +:100B70006F746C6F616465722028526573657429A7 +:100B80000A4E3A094E4B524F20546F67676C650A04 +:100B9000003F004E4B524F3A206F66660A004E4BA4 +:100BA000524F3A206F6E0A000A6D6F7573653A20D6 +:100BB0006F66660A000A6D6F7573653A206F6E0A7C +:100BC000000A6B6579626F6172643A206F66660A2B +:100BD000000A6B6579626F6172643A206F6E0A0079 +:100BE0000A6D61747269783A206F66660A000A6D50 +:100BF00061747269783A206F6E0A000A64656275E2 +:100C0000673A206F66660A000A64656275673A2073 +:100C10006F6E0A000A0A4A756D70696E6720746FFC +:100C200020626F6F746C6F616465722E2E2E2000CF +:100C3000433E200011241FBECFEFDAE0DEBFCDBF60 +:100C400004B603FE24C08091FE019091FF01A091A3 +:100C50000002B09101028730904BA740B04BB9F42D +:100C60001092FE011092FF011092000210920102F8 +:100C700014BE84B7877F84BF88E10FB6F894809351 +:100C80006000109260000FBEE0E0F8E3099511E00B +:100C9000A0E0B1E0E8E9F2E502C005900D92A834C9 +:100CA000B107D9F711E0A8E4B1E001C01D92AE3F51 +:100CB000B107E1F70E94970E0C944A290C940000AA +:100CC000FF93EF93E0914801F0914901309709F0CB +:100CD0000995EF91FF910895FC018591803011F005 +:100CE000EFDFFBCF0895FF27E0E230E247FF0CC0C3 +:100CF000419597FF09C0EDE26095709580959095BC +:100D0000611D711D811D911D27FF02C0219530E3DA +:100D100050E2AA27660F771F881F991FAA1FA417E2 +:100D200010F0A41B63955A95A9F7AA3008F0A95FA3 +:100D3000A05DAF93F395611571058105910541F7AC +:100D4000ED3211F4EF93F395F21718F43F93F39506 +:100D5000FBCF8F91B5DFFA95E1F70895E991F9910D +:100D60008591803021F0853219F0AADFF9CF0895FE +:100D700020E0E89455915532C1F3503311F4689452 +:100D800055915A3348F4505390F3220F022E220FFC +:100D9000220F200D250FF4CF0EF421958991999102 +:100DA000533619F3533729F1533559F1BC018827CC +:100DB0009927E8945C3621F489919991689455912A +:100DC000543639F446EF7EF077FF0DC08FEF9FEF7A +:100DD0000AC055374AE039F0583540E121F0523623 +:100DE00042E009F00895FF93EF937DDFEF91FF91CB +:100DF000B7CFFF93EF93FC0181918030B9F360DFAF +:100E0000FBCFFF93EF9368DFF1CFDF93CF93CDB7A5 +:100E1000DEB72596A3DFCF91DF9108950895089559 +:100E20008EE097E0892B11F00C940E0708958FE067 +:100E300097E0892B11F00C940F07089561110BC0F6 +:100E4000FC018281882321F085EE0E94751503C084 +:100E500085EE0E943D1680E090E0089581E00895BF +:100E600081E008950C94300708950F931F93CF935A +:100E7000DF938C01FC01C081D181CE010E94F31D62 +:100E8000BE010E94E207EC01B8010E9432078823EC +:100E900009F48DC0F8018281882309F44AC0809149 +:100EA000550181111FC0C431F0E5DF0709F051C0C1 +:100EB0000E94340781E0809355010E944220909364 +:100EC00054018093530110924C0110924E011092E4 +:100ED0004D011092500110924F0110925201109248 +:100EE000510165C080915301909154010E944E20A0 +:100EF000883C910570F480914C01E82FF0E0EE0FF2 +:100F0000FF1FE35BFE4FD183C0838F5F80934C0153 +:100F10004EC0C43880E5D80721F0C538D04501F16E +:100F20003AC0F8018281882341F010924A0182E0A0 +:100F30001EC0C438E0E5DE0759F580914A018111F1 +:100F400006C086E20E94751586E20E943D1682E088 +:100F50001CC0C438F0E5DF0741F3C538D045D9F4EB +:100F6000F8018281882331F010924B0180E20E94C7 +:100F70008C161DC080914B01811106C087E20E9432 +:100F8000751587E20E943D1680E20E9493160FC0FD +:100F9000C538D04529F381E080934A0180934B0105 +:100FA000C801DF91CF911F910F910C942E0780E023 +:100FB000DF91CF911F910F9108950C9410070C941D +:100FC000170708959BE0799FF00111249CE2899F07 +:100FD000E00DF11D1124E60FF11DEE0FFF1FE65F7E +:100FE000FE4F859194910895880F991FFC01E65753 +:100FF000F040859194910895880F991FFC01E65F58 +:10100000FE4F8591949108950F931F93CF93DF9393 +:10101000EC01811520E3920750F5C11580E2D80755 +:1010200008F0C9C0CB3BD10590F4C83AD10508F00F +:1010300070C0C53AD10508F061C0C430D10508F0D0 +:10104000DAC1219709F0D4C101E010E014C2CF3F0A +:10105000D10511F008F0CFC1C03FD10508F0A8C0FC +:10106000CE01805E9109089708F4C5C1C1C1C130A5 +:1010700090E5D90709F4A8C050F5C0318FE4D8072E +:1010800070F4C11590E4D90708F09AC0C11521E3A6 +:10109000D20708F0ADC1DD278E01106CECC1C1157F +:1010A000D04509F0A5C10E94FA188FEF94E32CE017 +:1010B000815090402040E1F700C0000087E797E7AB +:1010C00090930108809300080E949D20D4C1C1150F +:1010D00097E5D90758F4C03121E5D20708F020C1BF +:1010E000C43180E5D80708F479C082C1CE01905799 +:1010F0008115904108F07CC1DF7077C1C53AD105F8 +:1011000009F47BC1C63AD10509F07AC102E810E4BE +:10111000B2C1C83AD10509F476C1C93AD10509F47A +:1011200075C1CA3AD10509F474C1CB3AD10509F4A5 +:1011300073C1CC3AD10509F472C1CD3AD10509F495 +:1011400071C1C03BD10509F470C1CE3AD10509F493 +:101150006FC1CF3AD10509F46EC1C13BD10509F485 +:101160006DC1C23BD10509F46CC1C33BD10509F483 +:101170006BC1C43BD10509F46AC1C53BD10509F473 +:1011800069C1C63BD10509F468C1C73BD10509F463 +:1011900067C1C83BD10509F466C1C93BD10509F453 +:1011A00065C1CA3BD10509F464C100E014E463C120 +:1011B0008E01106560C1CE019F700E94FC075CC16A +:1011C000DF708E01106A57C182E192E00E946C06C6 +:1011D0008091DF0181608093DF014DC10E94F42086 +:1011E000811102C00E94DA200E94072190E09093B2 +:1011F000FE018093FD01C23080E5D80721F4809183 +:10120000FD01816086C0C43090E5D90721F480914A +:10121000FD0182607EC0C63020E5D20721F48091B6 +:10122000FD01846076C0C83080E5D80719F480914C +:10123000FD0127C0CA3090E5D90721F48091FD0156 +:10124000806167C0CC3020E5D20721F48091FD0198 +:1012500080625FC0CE3080E5D80721F48091FD0127 +:10126000806457C0C03190E5D90721F48091FD0119 +:1012700080684FC0C23120E5D20729F48091FD017A +:101280008460886046C0C33080E5D80721F480912F +:10129000FD018E7F3EC0C53090E5D90721F48091D5 +:1012A000FD018D7F36C0C73020E5D20721F4809143 +:1012B000FD018B7F2EC0C93080E5D80719F48091DD +:1012C000FD0126C0CB3090E5D90721F48091FD01C6 +:1012D0008F7E1FC0CD3020E5D20721F48091FD0123 +:1012E0008F7D17C0CF3080E5D80721F48091FD01B4 +:1012F0008F7B0FC0C13190E5D90721F48091FD01AA +:101300008F7707C0C331D04531F48091FD018B7FC9 +:10131000877F8093FD018091FD010E940B21ABC06E +:101320008D2F99278F70992781309105D9F49E01CF +:101330002370332702C0880F991F2A95E2F79C6813 +:101340008E0144E0000F111F4A95E1F7002713704A +:10135000802B912B53E0CC0FDD1F5A95E1F7C0761F +:10136000DD272FC08230910531F4DC2FCC278E0190 +:10137000016F106A80C08330910569F4CE018370DB +:10138000992701E010E002C0000F111F8A95E2F7D3 +:10139000C8019C680FC084309105B9F4CE018370F8 +:1013A000992701E010E002C0000F111F8A95E2F7B3 +:1013B000C8019A6823E0CC0FDD1F2A95E1F7C07EB3 +:1013C000D7708C010C2B1D2B56C08530910531F444 +:1013D000DC2FCC278E01046F106A4DC0069709F0F0 +:1013E0004AC0CF71DD27DC2FCC278E01106243C0AD +:1013F00000E010E040C08E013EC001E810E43BC0B8 +:1014000003E810E438C002EE14E435C009EE14E439 +:1014100032C00AEE14E42FC005EB14E42CC006EB36 +:1014200014E429C007EB14E426C00CEC14E423C038 +:101430000DEC14E420C003E815E41DC00AE815E42F +:101440001AC002E915E417C004E915E414C001E26A +:1014500016E411C003E216E40EC004E216E40BC069 +:1014600005E216E408C006E216E405C007E216E449 +:1014700002C00AE216E4C801DF91CF911F910F91DB +:1014800008959BE0799FF00111249CE2899FE00D73 +:10149000F11D1124E60FF11DEE0FFF1FE65FFE4F59 +:1014A00085919491803E9105E0F4803C910558F53A +:1014B0008133910509F46FC048F48932910509F42C +:1014C00063C08A32910509F46DC072C089339105F9 +:1014D000E9F082389105D1F08533910509F44DC0CA +:1014E00067C0833E910581F138F4803E9105B9F0E3 +:1014F000823E9105D9F05CC0863E910561F1873E40 +:101500009105A1F155C00E94F40708952091FD01B5 +:1015100020FD02C021FF4CC080EE90E049C08091C8 +:10152000FD0180FFF9CF89E390E042C08091FD0189 +:1015300082FF0EC08091FD0184FF03C080E090E037 +:1015400037C083EE90E034C08091FD0182FFF2CF7E +:1015500082EE90E02DC08091FD0183FF0BC0809151 +:10156000FD0184FDEBCF87EE90E022C08091FD016C +:1015700083FFF5CF86EE90E01BC08091FD0185FFD3 +:1015800007C089E290E014C08091FD0185FFF9CF8A +:1015900085E390E00DC08091FD0186FF07C08AE2DF +:1015A00090E006C08091FD0186FFF9CF81E390E0D5 +:1015B0000E940408089508950C94DB0AE82FF0E0D7 +:1015C000E05EFE4F8081E82FEF70F0E082958F7033 +:1015D00021E030E0A90102C0440F551F8A95E2F7CF +:1015E00040A308950F931F93CF93DF9385B780682F +:1015F00085BF85B7806885BFC3E0D0E001E010E01B +:10160000FE01E05EFE4F8081E82FEF70F0E021A147 +:1016100082958F70A80102C0440F551F8A95E2F78A +:10162000CA01822B81A38C2F0E94DE0A219740F7EA +:101630008AE090E061E070E0FC01EB5EFE4F20810B +:10164000E22FEF70F0E042A122952F70DB0102C083 +:10165000AA0FBB1F2A95E2F79D01242B22A3019715 +:1016600058F7DF91CF911F910F910C94DD07EF9206 +:10167000FF920F931F93CF93DF930EE511E0C3E02A +:10168000EE24E394F12CD5E08C2F0E94DE0A8AE050 +:1016900090E040E050E0FC01EB5EFE4F6081E62F01 +:1016A000EF70F0E020A130E062956F7002C03595D8 +:1016B00027956A95E2F720FD09C09701082E02C020 +:1016C000220F331F0A94E2F7422B532B019718F78E +:1016D000F801929182918F018417950721F051832F +:1016E0004083D09300018C2F0E94DE0AC15060F627 +:1016F0008091000187FD42C09091DF0190FF10C0F2 +:10170000282F332727FD30953F938F938BE592E069 +:101710009F938F930E9405070F900F900F900F904B +:101720008091000181508093000187FD07C08FE9FF +:101730009FE00197F1F700C0000020C080915C019C +:1017400090915D01909365018093640180915A01AD +:1017500090915B01909363018093620180915801A5 +:10176000909159019093610180936001809156019D +:101770009091570190935F0180935E010E94DF0773 +:1017800081E0DF91CF911F910F91FF90EF9008952D +:10179000E82FF0E0EE0FFF1FE25AFE4F80819181AB +:1017A0000895EF92FF920F931F93CF93DF93809151 +:1017B000DF0180FF04C08CE392E00E946C060EE51E +:1017C00011E0C0E0D0E084E2E82E82E0F82E8091C3 +:1017D000DF0180FF13C0F801808191810E94B71F53 +:1017E0009F938F93DF93CF93FF92EF920E94050711 +:1017F0000F900F900F900F900F900F9021960E5F0B +:101800001F4FC430D10519F7DF91CF911F910F9170 +:10181000FF90EF9008950F931F93CF9306E611E08A +:10182000C0E0F801929182918F010E94951FC80F2C +:10183000F1E00E351F07A9F78C2FCF911F910F9163 +:1018400008958091790108959FB7F89410926801E6 +:101850009FBF9091F401943009F057C09091E90036 +:101860009F703091EC00232F217030FD20E8922BE7 +:1018700024E02093E9002091EB0020FF43C0209159 +:10188000EE0027FF3FC020916601222321F0209126 +:10189000E80025FF37C01092660126E03091E8008D +:1018A00035FD15C03091F401343061F53091EB0015 +:1018B00035FD28C0215021F481E08093660122C0CB +:1018C000EFE9FFE03197F1F700C00000E7CF809328 +:1018D000F1008091E80085FD0AC08091E80080FF5A +:1018E000FCCF8091E8008E778093E80006C08FB728 +:1018F000F89421E0209368018FBF9F709093E900D6 +:1019000080E008959F709093E9008FEF0895CF9342 +:10191000DF9300D01F92CDB7DEB79C018091F40118 +:10192000843019F593E099833B832A839093E900EF +:101930008FEF9091E800815095FD06C095ED9A9546 +:10194000F1F700008111F5CF8091E80085FF0DC00F +:1019500040E050E063E070E0CE0101960E944D0F40 +:101960008091E8008E778093E8000F900F900F90A1 +:10197000DF91CF910895CF93DF9300D01F92CDB721 +:10198000DEB72091F401243021F522E029839B83E6 +:101990008A8383E08093E9008FEF9091E800815083 +:1019A00095FD06C095ED9A95F1F700008111F5CFF0 +:1019B0008091E80085FF0DC040E050E063E070E0FA +:1019C000CE0101960E944D0F8091E8008E778093A2 +:1019D000E8000F900F900F90DF91CF910895209124 +:1019E000F4012430F1F422E02093E9002FEF30914C +:1019F000E800215035FD06C035ED3A95F1F70000BD +:101A00002111F5CF2091E80025FF0BC040E050E008 +:101A100065E070E00E944D0F8091E8008E77809322 +:101A2000E8000895CF93DF932091F401243009F06A +:101A300048C0EC0180910B018823E1F080910C01FA +:101A40008823C1F085E08093E9008FEF9091E80052 +:101A5000815095FD06C095E19A95F1F7000081113E +:101A6000F5CF8091E80085FF2CC040E050E060E1B8 +:101A700070E017C081E08093E9008FEF9091E8005B +:101A8000815095FD06C095ED9A95F1F70000811102 +:101A9000F5CF8091E80085FF14C040E050E068E099 +:101AA00070E0CE010E944D0F8091E8008E77809308 +:101AB000E80080E1FE01A9E6B1E001900D928A956F +:101AC000E1F7DF91CF91089580EA92E00E946C06E1 +:101AD0008091F301811109C00E94E2100E943F1120 +:101AE0008091E20084608093E20008958CE992E0A6 +:101AF0000E946C061092F301089588E992E00C941C +:101B00006C0684E992E00C946C0680E992E00E94F5 +:101B10006C060C940A20209167012F5F822F62E3EC +:101B20000E94DA28992319F02093670108951092F2 +:101B3000670180916801882371F18091F4018430FC +:101B400041F58091E9008F702091EC00922F917007 +:101B500020FD90E8892B94E09093E9009091EB00B0 +:101B600090FF14C09091EE0097FF10C09091E80094 +:101B700095FF03C01092F100F9CF9091E80090FF1B +:101B800005C09091E8009E779093E8008F70809355 +:101B9000E90010926801089542E061EC81E00E9442 +:101BA0005C1042E061EC82E00E945C1042E061EC7B +:101BB00083E00E945C1042E261EC84E00E945C10D1 +:101BC00042E161EC85E00C945C108091F601833079 +:101BD00009F455C030F4813071F0823009F48EC0C0 +:101BE00008958A3009F47AC08B3009F460C08930D6 +:101BF00009F09CC020C08091F501813A09F096C09F +:101C00008091E800877F8093E8008091F9019091AE +:101C1000FA01892B21F460E189E691E003C060E0DC +:101C200080E090E070E00E94980F8091E8008B7750 +:101C30008093E80008958091F501813209F076C023 +:101C40008091F9019091FA01009719F0049709F039 +:101C50006DC08091E800877F8093E8008091E80064 +:101C600082FD05C08091F4018111F8CF5FC08091A1 +:101C7000F100809379018091E8008B7753C08091C7 +:101C8000F501813A09F052C08091F9019091FA0171 +:101C9000892B09F04BC08091E800877F8093E80092 +:101CA0008091E80080FFFCCF80910B0136C08091CD +:101CB000F5018132D9F58091F9019091FA01892BD2 +:101CC000A9F58091E800877F8093E8000E94911039 +:101CD0008091F70180930B010C94FA188091F50123 +:101CE000813221F58091E800877F8093E8000E948F +:101CF00091108091F80180937A0108958091F50107 +:101D0000813AA1F48091E800877F8093E800809178 +:101D1000E80080FFFCCF80917A018093F1008091F0 +:101D2000E8008E778093E8000C949110089584B7B2 +:101D3000877F84BF88E10FB6F8948093600010928B +:101D400060000FBE90E080E80FB6F89480936100C9 +:101D5000909361000FBE0E9471140E94E2100E94D5 +:101D60003F118091E20084608093E20084E29CE075 +:101D70000E94901F78940E94C4130E94731481E003 +:101D800091E00E94DF138FE792E00E946C06809141 +:101D9000F401853089F48BE792E00E946C060E9482 +:101DA000D11F8091F201882391F30E94FC1F8823A8 +:101DB00071F30E94370FEBCF0E949714E8CF292FC1 +:101DC000332723303105C9F064F42130310581F027 +:101DD0002230310509F043C08DE890E022ED32E079 +:101DE00042C021323105F1F02232310541F137C0D4 +:101DF00082E190E02FE533E036C0992781309105EC +:101E000041F08230910541F0892B49F5EEECF2E08A +:101E100005C0E4EBF2E002C0E4EAF2E0849190E075 +:101E20009F0121C06530D8F4E62FF0E0EE0FFF1FD0 +:101E3000ED5CFE4F2081318189E090E014C0653077 +:101E400070F470E0FB01EE0FFF1FE75DFE4F208195 +:101E50003181FB01EC5DFE4F808190E004C080E0A9 +:101E600090E020E030E0FA0131832083089580E1A2 +:101E700089BD82E189BD09B400FEFDCF8091D80003 +:101E80008F7D8093D8008091E00082608093E00095 +:101E90008091E00081FDFCCF0895CF92DF92EF9218 +:101EA000FF920F931F93CF93DF93EC018B016A0195 +:101EB0000E94B010811133C0C114D10439F0F60171 +:101EC00080819181081B190BC80FD91FE12CF12CBF +:101ED0000115110519F18091E80085FD16C080916A +:101EE000E8008E778093E800C114D10449F0F60130 +:101EF00080819181E80EF91EF182E08285E00FC0B9 +:101F00000E94B010882321F30AC089918093F100C8 +:101F100001501109FFEFEF1AFF0ADACF80E0DF91DD +:101F2000CF911F910F91FF90EF90DF90CF90089588 +:101F30002091FB013091FC012617370748F061150D +:101F4000710539F42091E8002E772093E80001C054 +:101F5000B90140E061157105A9F12091F401222336 +:101F600009F443C0253009F442C02091E80023FD64 +:101F700040C02091E80022FD32C02091E80020FFFF +:101F8000E9CF4091F3002091F20030E0342BFC01C6 +:101F9000CF016115710559F02830310540F4819168 +:101FA0008093F100615071092F5F3F4FF1CF41E005 +:101FB0002830310509F040E02091E8002E77209389 +:101FC000E800C8CF4111C9CF0AC08091F40188232D +:101FD00061F0853061F08091E80083FD0AC0809156 +:101FE000E80082FFF2CF80E0089582E0089583E068 +:101FF000089581E008952091FB013091FC0126179E +:10200000370748F06115710539F42091E8002E7703 +:102010002093E80001C0B901FC0120E061157105C1 +:1020200091F18091F401882309F440C0853009F4CE +:102030003FC08091E80083FD3DC08091E80082FDB3 +:102040002FC08091E80080FFE9CF2091F3008091BC +:10205000F20090E0922B6115710559F088309105DE +:1020600040F424912093F10031966150710901965A +:10207000F2CF21E0089709F020E08091E8008E7708 +:102080008093E800CBCF2111CCCF0AC08091F4011E +:10209000882361F0853061F08091E80083FD0AC0FB +:1020A0008091E80082FFF2CF80E0089582E00895F9 +:1020B00083E0089581E00895982F973058F5909324 +:1020C000E900981739F07091EC002091ED005091E3 +:1020D000F00003C0242F762F50E021FF19C030916B +:1020E000EB003E7F3093EB003091ED003D7F30936D +:1020F000ED003091EB0031603093EB007093EC0019 +:102100002093ED005093F0002091EE0027FF07C0D0 +:102110009F5FD3CF8F708093E90081E0089580E0C6 +:1021200008958091F50187FF11C08091E80082FD3C +:1021300005C08091F4018111F8CF11C08091E800B1 +:102140008B770BC08091F401882349F08091E800DF +:1021500080FFF8CF8091E8008E778093E8000895A3 +:102160002091E4003091E50095E64091EC00842F49 +:10217000817040FF22C08091E80080FD1CC08091EA +:10218000F401882391F0853091F08091EB0085FD7A +:1021900010C04091E4005091E5004217530729F325 +:1021A0009A01915011F784E0089582E0089583E048 +:1021B000089581E0089580E008954091E80042FF8D +:1021C000DECF08950E9450110E945811E0EEF0E019 +:1021D000808181608083E8EDF0E080818F7780836B +:1021E00019BCA7EDB0E08C918E7F8C9380818F7E9F +:1021F00080831092F30108950F931F93CF93DF9381 +:102200000E9450110E945811C8EDD0E088818F774C +:10221000888388818068888388818F7D888319BCC2 +:102220001092F4011092F0011092F2011092F1015B +:1022300000EE10E0F80180818B7F808388818160CF +:10224000888342E060E080E00E945C10E1EEF0E014 +:1022500080818E7F8083E2EEF0E0808181608083E8 +:10226000808188608083F80180818E7F808388816F +:1022700080618883DF91CF911F910F910895E8EDE0 +:10228000F0E080818F7E8083E7EDF0E080818160E7 +:10229000808384E082BF81E08093F3010C94FC1082 +:1022A000E8EDF0E080818E7F80831092E200089557 +:1022B0001092DA001092E10008951F920F920FB66B +:1022C0000F9211242F933F934F935F936F937F93BC +:1022D0008F939F93AF93BF93EF93FF938091E10010 +:1022E00082FF0BC08091E20082FF07C08091E10075 +:1022F0008B7F8093E1000E948B0D8091DA0080FF3C +:102300001FC08091D80080FF1BC08091DA008E7FB3 +:102310008093DA008091D90080FF0DC080E189BDF3 +:1023200082E189BD09B400FEFDCF81E08093F40114 +:102330000E94640D05C019BC1092F4010E94760D34 +:102340008091E10080FF19C08091E20080FF15C0FC +:102350008091E2008E7F8093E2008091E2008061B4 +:102360008093E2008091D80080628093D80019BCED +:1023700085E08093F4010E94810D8091E10084FF4B +:1023800030C08091E20084FF2CC080E189BD82E1F1 +:1023900089BD09B400FEFDCF8091D8008F7D809368 +:1023A000D8008091E1008F7E8093E1008091E2006F +:1023B0008F7E8093E2008091E20081608093E20052 +:1023C0008091F001882311F084E007C08091E30040 +:1023D00087FD02C081E001C083E08093F4010E9488 +:1023E000850D8091E10083FF29C08091E20083FF89 +:1023F00025C08091E100877F8093E10082E0809397 +:10240000F4011092F0018091E1008E7F8093E10051 +:102410008091E2008E7F8093E2008091E2008061F3 +:102420008093E20042E060E080E00E945C108091D6 +:10243000F00088608093F0000E947D0DFF91EF9185 +:10244000BF91AF919F918F917F916F915F914F91CC +:102450003F912F910F900FBE0F901F9018951F92D4 +:102460000F920FB60F9211242F933F934F935F93C8 +:102470006F937F938F939F93AF93BF93CF93DF938C +:10248000EF93FF93C091E900CF708091EC00D82FBB +:10249000D17080FDD0E81092E9008091F000877F34 +:1024A0008093F00078940E9473121092E90080915A +:1024B000F00088608093F000CD2BCF70C093E900CE +:1024C000FF91EF91DF91CF91BF91AF919F918F914C +:1024D0007F916F915F914F913F912F910F900FBE20 +:1024E0000F901F9018951F93CF93DF93CDB7DEB752 +:1024F000AA970FB6F894DEBF0FBECDBFE5EFF1E0AF +:1025000088E08E0F9091F10091938E13FBCF0E9483 +:10251000E50D8091E80083FF1FC18091F501909146 +:10252000F601492F50E04A30510508F015C1FA0173 +:10253000EA5AFF4F0C94FA28803881F0823809F06B +:102540000BC18091F9018F708093E9008091EB00BD +:1025500085FB882780F91092E90006C08091F1017F +:102560009091F201911182609091E800977F909391 +:10257000E8008093F1001092F100C8C0282F2D7F51 +:1025800009F0EAC0882319F0823061F0E5C080913B +:10259000F701813009F0E0C0933009F080E08093CA +:1025A000F2012BC08091F701811127C08091F901C0 +:1025B0008F7009F4D1C08093E9002091EB0020FFD7 +:1025C0001CC0933021F48091EB00806214C0909184 +:1025D000EB0090619093EB0021E030E0A90102C094 +:1025E000440F551F8A95E2F74093EA001092EA00E3 +:1025F0008091EB0088608093EB001092E90080915D +:10260000E800877F86C08111A7C01091F7011F776E +:102610008091E3008078812B8093E3008091E80033 +:10262000877F8093E8000E9491108091E80080FFEE +:10263000FCCF8091E30080688093E300111102C019 +:1026400082E001C083E08093F40186C0805882302C +:1026500008F082C08091F7019091F8018C3D53E021 +:10266000950779F583E08A838AE289834FB7F894E6 +:10267000DE01139620E03EE051E2E32FF0E05093BC +:102680005700E49120FF03C0E295EF703F5FEF70C9 +:102690008E2F90E0EA3010F0C79601C0C0968D935F +:1026A0009D932F5F243149F74FBF8091E800877FCA +:1026B0008093E8006AE270E0CE0101960E94980FD4 +:1026C00014C0AE014F5F5F4F6091F9010E94DF0EB1 +:1026D000BC01009709F440C09091E800977F909367 +:1026E000E80089819A810E94FB0F8091E8008B7736 +:1026F0008093E80031C0803879F58091E800877FC9 +:102700008093E8008091F0018093F1008091E800CF +:102710008E778093E8000E9491101EC081111CC02A +:102720009091F7019230C0F48091E800877F809308 +:10273000E8009093F0010E9491108091F0018111C6 +:1027400006C08091E30087FD02C081E001C084E003 +:102750008093F4010E94CC0D8091E80083FF0AC0B1 +:102760008091E800877F8093E8008091EB00806291 +:102770008093EB00AA960FB6F894DEBF0FBECDBFD4 +:10278000DF91CF911F910895CF938091F401882319 +:10279000A1F0C091E900CF709091EC00892F817079 +:1027A00090FD80E8C82B1092E9008091E80083FD3D +:1027B0000E947312CF70C093E900CF910895909357 +:1027C000800180937F010895E0917F01F091800165 +:1027D000309721F00190F081E02D099480E0089578 +:1027E000EF92FF920F931F93CF93DF93E0917F01BE +:1027F000F09180013097B1F18C010280F381E02DDE +:1028000009958091DF0182FF2DC080FF04C084E91B +:1028100094E00E946C06E80110E18EE8E82E84E066 +:10282000F82E8091DF0180FF0BC088811F928F936B +:10283000FF92EF920E9405070F900F900F900F905C +:10284000115021961111EDCF8091DF0180FF0AC058 +:102850008CE894E0DF91CF911F910F91FF90EF9062 +:102860000C946C06DF91CF911F910F91FF90EF9028 +:102870000895E0917F01F0918001309721F004806C +:10288000F581E02D0994089520917D0130917E011C +:102890008217930771F090937E0180937D01E09100 +:1028A0007F01F0918001309721F00680F781E02DC3 +:1028B0000994089520917B0130917C018217930740 +:1028C00071F090937C0180937B01E0917F01F09106 +:1028D0008001309721F00084F185E02D099408955E +:1028E00008950C9470140E9439200E94F20A0C94EE +:1028F000BF20CF93DF931F92CDB7DEB79091DF015A +:1029000092FF10C090FF0EC01F928F9326EA34E012 +:102910003F932F9389830E9405070F900F900F908C +:102920000F9089810F90DF91CF910C94DC0A5F9218 +:102930006F927F928F929F92AF92BF92CF92DF92CF +:10294000EF92FF920F931F93CF93DF9300D000D0AD +:102950001F92CDB7DEB70E94370B9AE8C92E91E0DF +:10296000D92E03E010E0AA24A394B12C502E802F7E +:102970000E94C80B4C01F601729062906F016826AC +:10298000792661147104A1F40150110978F78FEFD1 +:1029900089838A831B820E9442208160782F9D83D5 +:1029A0008C8349815A816B818D810E94471538C083 +:1029B0008091DF0181FD0E94D10B2AE030E075019A +:1029C000022E02C0EE0CFF1C0A94E2F7C70186211A +:1029D0009721892B09F129835A828E209F2091E02B +:1029E000892809F490E09B830E9442208160782F1F +:1029F0009D838C8349815A816B818D810E9447150B +:102A0000000F111FF801EE57FE4F80819181E826DB +:102A1000F926F182E08204C02150310980F6B4CF5A +:102A20000E940C23109181010E94E4131817D1F029 +:102A30000E94E413809381010F900F900F900F90EC +:102A40000F90DF91CF911F910F91FF90EF90DF904A +:102A5000CF90BF90AF909F908F907F906F905F903E +:102A60000C9479140F900F900F900F900F90DF91AE +:102A7000CF911F910F91FF90EF90DF90CF90BF907B +:102A8000AF909F908F907F906F905F900895CF93BD +:102A9000DF93CDB7DEB72B970FB6F894DEBF0FBE2E +:102AA000CDBF4F83588769877A878B87DE01119660 +:102AB00086E0FD0111928A95E9F785E0FE013796DF +:102AC00001900D928A95E1F749815A816B817C8151 +:102AD0008D819E810E94981B2B960FB6F894DEBFC5 +:102AE0000FBECDBFDF91CF910895CF93882309F416 +:102AF000C2C0C82F823859F40E94E41381FDBBC0C4 +:102B000089E30E94721E0E94611F89E30CC0833812 +:102B100079F40E94E41380FDAEC083E50E94721E2A +:102B20000E94611F83E50E94C51ECF910C94611F16 +:102B3000843859F40E94E41382FD9DC087E40E940A +:102B4000721E0E94611F87E4EECF8CEF8C0F813ADA +:102B500048F48C2F0E94632681118DC08C2F0E9417 +:102B6000721EE3CF80E28C0F883048F4C77081E09A +:102B700001C0880FCA95EAF70E941A1FD6CF8BE5CD +:102B80008C0F833078F4C53A29F0C63A31F083E8E7 +:102B900090E005C081E890E002C082E890E0CF912B +:102BA0000C94441488E58C0F833108F064C0C83A53 +:102BB00039F1C93A41F1CA3A49F1CB3A51F1CC3A2B +:102BC00059F1CD3A61F1C03B69F1CE3A71F1CF3A9A +:102BD00079F1C13B81F1C23B89F1C33B91F1C43B27 +:102BE00099F1C53BA1F1C63BA9F1C73BB1F1C83B87 +:102BF000B9F1C93BC1F1CA3BC9F180E090E038C0EE +:102C000082EE90E035C089EE90E032C08AEE90E02E +:102C10002FC085EB90E02CC086EB90E029C087EBBD +:102C200090E026C08CEC90E023C08DEC90E020C0BA +:102C300083E891E01DC08AE891E01AC082E991E042 +:102C400017C084E991E014C081E292E011C083E2F0 +:102C500092E00EC084E292E00BC085E292E008C0F0 +:102C600086E292E005C087E292E002C08AE292E04A +:102C7000CF910C945A14CF910895882309F44BC036 +:102C8000823859F40E94E41381FF45C089E30E9411 +:102C9000721E0E94611F89E30CC0833871F40E9488 +:102CA000E41380FF38C083E50E94721E0E94611FFA +:102CB00083E50E94C51E0C94611F843859F40E945C +:102CC000E41382FF28C087E40E94721E0E94611FE5 +:102CD00087E4EFCF9CEF980F913A58F390E2980F6A +:102CE000983050F4877091E001C0990F8A95EAF707 +:102CF000892F0E94201FDFCF9BE5980F933020F48F +:102D000080E090E00C944414885A833120F480E0F1 +:102D100090E00C945A140895882321F00E941A1F01 +:102D20000C94611F0895882321F00E94201F0C94A9 +:102D3000611F08957F928F929F92AF92BF92CF9220 +:102D4000DF92EF92FF920F931F93CF93DF931F9227 +:102D5000CDB7DEB77C01C62E772EFC01058102952A +:102D60000F70128111110E94371F0E946B1E882361 +:102D700079F0112369F080E28C0D883048F082E010 +:102D80000E94541E0E946B1E91E0D82ED92601C0CD +:102D9000D12CE72DE295EF70F0E0E05AFF4F0C9454 +:102DA000FA28872D807F072D0F70882311F0029558 +:102DB000007F112389F0002309F498C180E28C0D73 +:102DC000883020F4802F0E941A1F03C0802F0E9499 +:102DD0002A1F0E94611F8AC18C2D0E943D1600236C +:102DE00009F49DC180E28C0D883020F4802F0E9470 +:102DF000201F03C0802F0E94301F0E94611F8FC1BF +:102E0000872D807F972D9F70803211F4892F03C00A +:102E1000892F8295807FCC2021F0F1E0CF16A1F0A0 +:102E20001DC0112339F0002319F1013009F50E946A +:102E30004A1F75C1002319F0013009F470C189835C +:102E40000E944D1F898110C1112321F0063008F026 +:102E500066C10EC0053008F062C106C1112359F0E9 +:102E6000002331F0F701958190FF40C19F70958359 +:102E70000E948C1654C1002309F4F6C03DC1872D71 +:102E800086958695837090E0009719F0019761F020 +:102E900046C1112321F08C2D972D937002C080E044 +:102EA00090E00E9444143BC1112321F08C2D972DFA +:102EB000937002C080E090E00E945A1430C18C2DC3 +:102EC000112319F00E94922102C00E94FA210E944F +:102ED0007F2225C1872D837009F052C011111FC1B7 +:102EE0008C2D829586958770880F880F9C2D9F70FA +:102EF000892E912CA12CB12C082E04C0880C991C71 +:102F0000AA1CBB1C0A94D2F7C4FE14C00FE010E048 +:102F100020E030E0B901A80104C0440F551F661F2E +:102F2000771F8A95D2F7CB01BA016095709580958D +:102F3000909503C060E070E0CB01272D2695269583 +:102F4000237030E02230310569F02330310589F0FB +:102F5000682979298A299B292130310571F00E943D +:102F6000E01CDDC0682979298A299B290E94FC1C64 +:102F7000D6C00E94E01CC501B4010E94C41CCFC091 +:102F8000112319F0872D817001C08695882309F4DB +:102F9000C6C08C2D829586958770880F880F9C2DD2 +:102FA0009F70892E912CA12CB12C082E04C0880C66 +:102FB000991CAA1CBB1C0A94D2F7C4FE14C00FE0D3 +:102FC00010E020E030E0B901A80104C0440F551F13 +:102FD000661F771F8A95D2F7CB01BA01609570956D +:102FE0008095909503C060E070E0CB01272D269579 +:102FF00026952370422F50E04230510569F043304E +:10300000510589F0682979298A299B294130510580 +:1030100071F00E94BA1D83C0682979298A299B29E9 +:103020000E94D61D7CC00E94BA1DC501B4010E9439 +:103030009E1D75C08C2D90E0FC01E05EF109E5312C +:10304000F10508F04FC0E059FF4F0C94FA280C2D01 +:103050000F70872D8F71112321F00E94371D802F53 +:1030600007CF0E94581D802F0E94931658C011232D +:1030700041F0053008F053C0872D8F710E947D1DEF +:103080004EC0063008F04BC0F7CF112339F0872D22 +:103090008F710E94371D43C01123C9F3872D8F7193 +:1030A0000E94581D3CC0112329F0872D8F710E946A +:1030B000221D35C00E94181D32C0112351F0172D5A +:1030C0001F71812F0E94371D63E0812F0E944B1ECC +:1030D00026C081E00E94541E023008F182E00E9466 +:1030E000541E1DC0112331F0002389F28C2D0E9443 +:1030F000751515C0002391F28C2D0E943D160FC04E +:10310000472D4F706C2DC7010E941E070E943C1C6A +:1031100006C0472D4F706C2DC7010E94E107DD20CE +:10312000F9F00E94471E80FD1BC0F70112820E9429 +:10313000411E0E94371DC7010E94BF180E94411EF8 +:103140000F90DF91CF911F910F91FF90EF90DF9043 +:10315000CF90BF90AF909F908F907F900C94581D10 +:103160000F90DF91CF911F910F91FF90EF90DF9023 +:10317000CF90BF90AF909F908F907F9008950F93C6 +:103180001F93CF93DF93EC01888199812B813C8140 +:10319000232BB9F09F3F11F48F3F99F0CE010E948D +:1031A0003507882371F0688179818A810E943D1EEC +:1031B0008C010E94F21D0E94B91CB801CE010E9430 +:1031C0009A16DF91CF911F910F9108950E94371F9A +:1031D0000E94471F0E940C1F0E94611F0E94B22381 +:1031E0000E947F2280E090E00E94441480E090E002 +:1031F0000C945A140E94271F0C94E6180E94321E49 +:10320000292F22952F7030E02C3031054CF42A30D4 +:1032100031056CF42250310922303105A8F407C081 +:103220002C30310569F02F30310551F00DC0803F51 +:1032300069F018F4803E40F409C0843F29F406C0C8 +:1032400093FB882780F9089580E0089581E0089530 +:10325000CF93DF9300D000D01F92CDB7DEB70F9091 +:103260000F900F900F900F90DF91CF910895CF9313 +:10327000DF9300D000D000D0CDB7DEB726960FB6D2 +:10328000F894DEBF0FBECDBFDF91CF9108951F939D +:10329000CF93DF93C0918A0116E080918B01C8170C +:1032A00099F0D0E01C9FF0011D9FF00D1124E45710 +:1032B000FE4F4081518162817381848195810E949A +:1032C00037192196C770E9CFDF91CF911F910895EB +:1032D0004091BC015091BD016091BE017091BF0150 +:1032E0008091C0019091C1010C9437198091C10166 +:1032F00082958F7009F054C08091BE01882309F433 +:103300004FC080918A01A0918B016091BC017091A6 +:10331000BD014091BF015091C001B6E08A1709F488 +:103320003FC090E041155105C1F17F3F11F46F3F5F +:10333000A1F1B89FF001B99FF00D1124E457FE4FA1 +:10334000218172132AC02081621327C0228121119A +:1033500024C0238134812417350710F4215031090A +:10336000241B350B283C3105C0F42091C1012F707E +:1033700020612093C10126E0289FF001299FF00DD4 +:103380001124EF56FE4F80818F70806180838CEB1B +:1033900091E00E94BF180C94471901968770BECF28 +:1033A0000895CF92DF92EF92FF920F931F93CF93E6 +:1033B000DF93CDB7DEB762970FB6F894DEBF0FBECE +:1033C000CDBF8C0185E0F801DE011D9601900D92C4 +:1033D0008A95E1F7D8014C9111965C91119712965C +:1033E0006C9112971396CD90DC9014973091BC019C +:1033F0007091BD018091BF019091C001009709F4C7 +:103400006BC17F3F19F43F3F09F466C1E090BE01F4 +:10341000EE2009F4C0C02091C101C816D90628F0D9 +:10342000F601E81BF90BCF0104C0809590958C0D37 +:103430009D1DFF24F394883C910578F0F12C207FAA +:1034400009F0C6C07C2DD98AC88A89890E942819AA +:103450008CEB91E00E94BF18B1C0822F807F09F0F1 +:1034600046C0751314C0341312C0611110C02F7000 +:1034700020612093C1010E9468198CEB91E00E94A9 +:10348000BF188091C101D80115968C932EC0CD280C +:1034900019F15F3F11F44F3FF9F0F62E61111CC096 +:1034A00080918A0120918B0136E0821709F45AC07D +:1034B00090E0389FF001399FF00D1124E457FE4F42 +:1034C0007181571306C07081471303C07281711157 +:1034D00003C001968770E9CFF62E662309F418C160 +:1034E0008091C10181608093C101F12C11C17513DC +:1034F00008C0341306C0611104C08091C101D80115 +:10350000C3C04D875E878D859E856A8B0E94FE189D +:103510006A898823E1F16623D1F12091C101822FCC +:1035200082958F7090E0029774F08091BC01909129 +:10353000BD0198878F831986DB86CA862C87CE01CA +:1035400007960E94BF1886E0F801ACEBB1E001904D +:103550000D928A95E1F70E9476190E946819FF245E +:10356000F394D6C04D875E878D859E850E94321E5E +:10357000292F22952F7030E0223031050CF0BCC08D +:103580009F7009F0B6C0805E883008F4C1C0C801E1 +:103590000E94BF18E4CFC816D90608F453C0F6013C +:1035A000E81BF90BCF01883C910508F450C0F12CC1 +:1035B0007C2DD98AC88A89890E942819ECEBF1E010 +:1035C00086E0DF011D928A95E9F70E946819A0C084 +:1035D000751314C0341312C0611110C08091C10161 +:1035E000F8018583C8010E94BF1886E0ECEBF1E08A +:1035F000DF011D928A95E9F7FE2C8AC04D875E8710 +:103600008D859E856A8B0E94FE186A89882309F43D +:10361000BECF662309F4BBCF2091C101822F8295D2 +:103620008F7090E002970CF48ECF8091BC01909146 +:10363000BD019A8389831B82DD82CC822E83CE01D9 +:1036400001967FCF809590958C0D9D1DACCFF62E69 +:10365000662309F49CCF75132EC034132CC020911F +:10366000C10120FD1FC0822F82958F70D9F0D80133 +:1036700015962C9315978F3049F08F5F982F929560 +:10368000907F822F8F70892B15968C93C8010E9492 +:10369000BF1886E0F801ACEBB1E001900D928A957D +:1036A000E1F793CF86E0F801ACEBB1E001900D9229 +:1036B0008A95E1F72DC04D875E878D859E850E9496 +:1036C000FE18811140CF8091C10181608093C101BA +:1036D000C8010E94BF181CC0662309F458CF4D874B +:1036E0005E878D859E850E94FE18882309F44FCF42 +:1036F0002ACF811148CF0CC0243031050CF047CFC0 +:103700009F7009F440CFF8019581907F09F03BCF7D +:103710008F2D62960FB6F894DEBF0FBECDBFDF913E +:10372000CF911F910F91FF90EF90DF90CF90089570 +:103730001F93CF93DF93CDB7DEB72C970FB6F894D6 +:10374000DEBF0FBECDBF4F83588769877A878B87CF +:103750009C87CE0107960E94D119882369F08F813A +:1037600098852A853B85232BF1F19F3F09F063C0A3 +:103770008F3F09F060C037C086E0FE013796DE015A +:10378000119601900D928A95E1F76F817885EA850F +:10379000FB85309741F17F3F11F46F3F21F120917C +:1037A0008B0130E0C90101968770992740918A0109 +:1037B00050E08417950709F447C069837A83FD8335 +:1037C000EC8396E0929FD001939FB00D1124A457F3 +:1037D000BE4FFE01319601900D929A95E1F78093CC +:1037E0008B010E94471916E080918A0190918B010C +:1037F0008917C1F1189FC001112484579E4F0E9460 +:10380000D119882379F1E0918A011E9FF0011124DA +:10381000E457FE4F4081518162817381848195819B +:103820000E94371980918A0190E00196877099274C +:1038300080938A01D9CF4F81588569857A858B8598 +:103840009C850E943719CFCF0E94FA1810928B01E5 +:1038500010928A01ECEBF1E086E0DF011D928A957F +:10386000E9F7C1CF2C960FB6F894DEBF0FBECDBFDF +:10387000DF91CF911F910895EF92FF920F931F93C5 +:10388000CF93DF938C01009709F46CC0F12CEE24E8 +:10389000E394E8012196F8018491843740F4843060 +:1038A00008F051C0813081F0823019F15BC085375A +:1038B00009F444C0A8F19CE7980F903708F052C073 +:1038C0008F770E943D1641C00E5F1F4FFE01C491CD +:1038D00080E28C0F883048F4C7708E2D01C0880FAD +:1038E000CA95EAF70E943A1F14C08C2F0E947515E2 +:1038F0002DC00E5F1F4FFE01C49180E28C0F8830F7 +:1039000058F4C7708E2D01C0880FCA95EAF70E943F +:10391000401F0E94611F1AC08C2F0E943D1616C0C6 +:103920000E5F1F4FFE01C491CC2381F08FE99FE011 +:103930000197F1F700C00000C150F6CF0E5F1F4F96 +:10394000FE01F49003C00E9475158E018F2D88230F +:1039500009F49FCFEFE9FFE03197F1F700C00000D5 +:103960008150F5CFDF91CF911F910F91FF90EF9094 +:10397000089508956093C6017093C7018093C801AC +:103980009093C9010C94E6180F931F930091C60100 +:103990001091C7012091C8013091C901DC01CB0110 +:1039A000802B912BA22BB32B8093C6019093C70140 +:1039B000A093C801B093C9011F910F910C94E61810 +:1039C0000F931F930091C6011091C7012091C80168 +:1039D0003091C901DC01CB0180239123A223B323C1 +:1039E0008093C6019093C701A093C801B093C90109 +:1039F0001F910F910C94E6180F931F930091C6012D +:103A00001091C7012091C8013091C901DC01CB019F +:103A100080279127A227B3278093C6019093C701DF +:103A2000A093C801B093C9011F910F910C94E6189F +:103A30001092C2011092C3011092C4011092C501EC +:103A40000C94E61841E050E060E070E004C0440FE0 +:103A5000551F661F771F8A95D2F74093C201509376 +:103A6000C3016093C4017093C5010C94E61841E052 +:103A700050E060E070E004C0440F551F661F771FE0 +:103A80008A95D2F78091C2019091C301A091C4019F +:103A9000B091C501482B592B6A2B7B2B4093C20157 +:103AA0005093C3016093C4017093C5010C94E61850 +:103AB00041E050E060E070E004C0440F551F661F15 +:103AC000771F8A95D2F740955095609570958091B3 +:103AD000C2019091C301A091C401B091C5014823D6 +:103AE00059236A237B234093C2015093C3016093FF +:103AF000C4017093C5010C94E61841E050E060E009 +:103B000070E004C0440F551F661F771F8A95D2F7D7 +:103B10008091C2019091C301A091C401B091C501EF +:103B2000482759276A277B274093C2015093C30136 +:103B30006093C4017093C5010C94E6180F931F9312 +:103B40000091C2011091C3012091C4013091C501BF +:103B5000DC01CB01802B912BA22BB32B8093C201D4 +:103B60009093C301A093C401B093C5011F910F911D +:103B70000C94E6180F931F930091C2011091C3019A +:103B80002091C4013091C501DC01CB018023912338 +:103B9000A223B3238093C2019093C301A093C401D5 +:103BA000B093C5011F910F910C94E6180F931F93CA +:103BB0000091C2011091C3012091C4013091C5014F +:103BC000DC01CB0180279127A227B3278093C20174 +:103BD0009093C301A093C401B093C5011F910F91AD +:103BE0000C94E6180895CF92DF92EF92FF920F9314 +:103BF0001F93CF93DF938C01C090C601D090C70173 +:103C0000E090C801F090C9018091C2019091C30178 +:103C1000A091C401B091C501C82AD92AEA2AFB2A79 +:103C2000CFE1D0E0D701C6010C2E04C0B695A79510 +:103C3000979587950A94D2F780FF06C0B8018C2F1C +:103C40000E94410A019721F4219760F780E001C0AA +:103C50008C2FDF91CF911F910F91FF90EF90DF900C +:103C6000CF900895CF93DF93EC010E94F31DBE0126 +:103C70000E94410ADF91CF910895CB010E94321E2C +:103C800008958091CA0185958595859508958091BF +:103C9000CA018770089598E0899F90011124262B0E +:103CA0002093CA010C94371D2091CA01809582236C +:103CB0008093CA01982F977069F430E0482F5527F8 +:103CC00047FD50952417350729F0859585958595ED +:103CD0000C94581D08959091CA01977081E009F4E1 +:103CE00080E0089590910B01992321F090910C01AF +:103CF000911109C020910D0130910E01F901329608 +:103D00009FEF40E030C0982F9695969596959F30FE +:103D1000A0F4E0910D01F0910E01E90FF11D877003 +:103D200021E030E0A90102C0440F551F8A95E2F757 +:103D3000CA019181892B818308959091DF0190FFC1 +:103D400023C01F928F938DED94E09F938F930E94D9 +:103D500005070F900F900F900F9008959F3F39F037 +:103D60004F5F4E3041F051915813F8CF0DC05111B3 +:103D7000F7CF942FF5CF9F3F39F0F901E90FF11DEF +:103D800097FDFA9582830895089590910B019923E8 +:103D900021F090910C01911109C020910D013091F9 +:103DA0000E01F9013296205F3F4F30C0982F969553 +:103DB000969596959F30A8F4E0910D01F0910E0133 +:103DC000E90FF11D877021E030E0A90102C0440F26 +:103DD000551F8A95E2F7CA018095918189238183D5 +:103DE00008959091DF0190FF16C01F928F938FEB83 +:103DF00094E09F938F930E9405070F900F900F9070 +:103E00000F9008953196E217F30729F090819813E7 +:103E1000F9CF1082F7CF089581E090E0E0910D0195 +:103E2000F0910E01E80FF91F108201968031910583 +:103E3000A9F708959091DE01892B8093DE01089502 +:103E400080959091DE0189238093DE010895109280 +:103E5000DE0108959091DD01892B8093DD010895A5 +:103E600080959091DD0189238093DD010895109262 +:103E7000DD0108959091DC01892B8093DC01089588 +:103E800080959091DC0189238093DC010895109244 +:103E9000DC0108958093CB0108951092CB01089521 +:103EA00080910D0190910E01FC0131969C01205FE3 +:103EB0003F4F80E0919191118F5FE217F307D1F7A7 +:103EC0000895E0910D01F0910E018091DE01808353 +:103ED000E0910D01F0910E0190818091DD01892B1F +:103EE0008083E0910D01F0910E0190818091DC01C1 +:103EF000892B80838091CB01882361F0E0910D01B3 +:103F0000F0910E019081892B80830E94501F8111B6 +:103F10001092CB0180910D0190910E010C94F01341 +:103F20009093490180934801089520E0009739F06B +:103F3000AC0141505109842395232F5FF7CF822F85 +:103F400008958295982F9C7C392F36953695282F89 +:103F5000237344E0249FC0011124932F982B292F11 +:103F60002A7A2695892F8575880F822B08951F93AD +:103F7000CF93DF931F92CDB7DEB799830E94A11F25 +:103F8000182F9981892F0E94A11F212F30E0322FF5 +:103F90002227A901482BCA010F90DF91CF911F91D1 +:103FA00008958091F401843021F11092E00120E421 +:103FB00088E190E00FB6F894A895809360000FBE5A +:103FC0002093600080E00E94DC0A83B7817F8460D8 +:103FD00083BF83B7816083BF7894889583B78E7FD2 +:103FE00083BF88E10FB6F894809360001092600060 +:103FF0000FBE0895089508950E94FA1F0E94370B7E +:104000000E94FB1F0E940B0C91E0811101C090E007 +:10401000892F08950E94FA180E94E4130C94DC0A78 +:104020001F920F920FB60F9211248F939F93AF930D +:10403000BF938091E001811113C08091E1019091C3 +:10404000E201A091E301B091E4014196A11DB11DEF +:104050008093E1019093E201A093E301B093E40126 +:10406000BF91AF919F918F910F900FBE0F901F90B6 +:10407000189582E084BD93E095BD9AEF97BD80933B +:104080006E0008952FB7F8948091E1019091E201BC +:10409000A091E301B091E4012FBF0895CF92DF9288 +:1040A000EF92FF920F931F932FB7F8944091E10185 +:1040B0005091E2016091E3017091E4012FBF6A0128 +:1040C0007B01EE24FF248C0120E030E0C016D106F5 +:1040D000E206F30610F4415051099A01281B390BEE +:1040E000C9011F910F91FF90EF90DF90CF9008953D +:1040F0001F920F920FB60F9211248F939F93AF933D +:10410000BF938091E1019091E201A091E301B09110 +:10411000E4010196A11DB11D8093E1019093E2019C +:10412000A093E301B093E401BF91AF919F918F9170 +:104130000F900FBE0F901F9018950E94E210F894F8 +:104140002FEF87EA91E6215080409040E1F700C0D0 +:10415000000087E090EBDC018093FE019093FF016B +:10416000A0930002B09301029CE088E10FB6F8949E +:10417000A895809360000FBE90936000FFCF0E94CF +:10418000F420811102C00E94DA200E94FF20809357 +:10419000DF010E9407218093FD0187FB882780F9BA +:1041A00080930C010E940321682F70E080E090E072 +:1041B0000C94BA1C6DEE7EEF80E090E00E943429F2 +:1041C00060E082E090E00E94222960E083E090E0DD +:1041D0000E94222960E084E090E00E94222960E0B1 +:1041E00085E090E00C94222980E090E00E941C2958 +:1041F00021E08D3E9E4F09F020E0822F089582E05D +:1042000090E00C94142983E090E00C94142984E04D +:1042100090E00C941429682F84E090E00C942229FB +:104220008091E70180FF0BC06091120185E0689FDB +:10423000B001112475956795759567952BC081FF21 +:1042400009C06091120185E0689FB0011124759545 +:10425000679520C082FF07C06091120185E0689FCA +:10426000B001112417C09091E8019923D1F0609119 +:104270001101961788F72091120185E0289F90017F +:104280001124929FA001939F500D112470E0CA0148 +:104290000E94E6286038710540F46115710539F017 +:1042A00002C065E070E0862F08958FE7089581E0F1 +:1042B00008958091E70180FF08C06091100170E0CF +:1042C000759567957595679521C081FF06C06091CA +:1042D000100170E07595679519C082FF04C0609168 +:1042E000100170E010C09091E8019923C1F0609135 +:1042F0000F019617A0F780911001899FC00111242A +:1043000070E00E94E6286038710528F46115710597 +:1043100021F0862F08958FE7089581E0089561E0E8 +:1043200070E0F4CF803F21F40E941021819504C0F9 +:10433000813F29F40E9410218093EB010895823F70 +:1043400021F40E941021819504C0833F29F40E942A +:1043500010218093EA010895893F19F40E945921A0 +:1043600005C08A3F31F40E94592181958093EC0168 +:1043700008958B3F21F40E945921819504C08C3F00 +:1043800029F40E9459218093ED010895843F21F47E +:104390008091E901816017C0853F21F48091E90196 +:1043A000826011C0863F21F48091E90184600BC0D6 +:1043B000873F21F48091E901886005C0883F31F48E +:1043C0008091E90180618093E90108958D3F21F496 +:1043D0008091E70181600BC08E3F21F48091E7015D +:1043E000826005C08F3F29F48091E701846080934B +:1043F000E7010895803F39F48091EB0187FF6CC09D +:104400001092EB0169C0813F29F48091EB011816ED +:10441000BCF362C09091EA01823F29F497FF5CC02F +:104420001092EA0159C0833F19F41916CCF354C015 +:10443000893F41F48091EC0118160CF04DC01092A8 +:10444000EC014AC08A3F29F48091EC0187FF44C007 +:10445000F6CF8B3F39F48091ED0187FF3DC010927C +:10446000ED013AC08C3F29F48091ED011816BCF3A0 +:1044700033C0843F21F48091E9018E7F17C0853FCE +:1044800021F48091E9018D7F11C0863F21F4809154 +:10449000E9018B7F0BC0873F21F48091E901877F81 +:1044A00005C0883F31F48091E9018F7E8093E90156 +:1044B00013C08D3F21F48091E7018E7F0BC08E3FAA +:1044C00021F48091E7018D7F05C08F3F29F4809111 +:1044D000E7018B7F8093E7018091EA0181110EC093 +:1044E0008091EB0181110AC08091EC01811106C01D +:1044F0008091ED01811102C01092E8010895809130 +:10450000DF0183FF7EC082E295E00E946C0680910D +:10451000E9011F928F938DE195E09F938F930E9405 +:1045200005078BE195E00E946C068091EA01282F37 +:10453000332727FD30953F938F9388E195E09F9334 +:104540008F930E94050786E195E00E946C0680919A +:10455000EB01282F332727FD30953F938F9383E17D +:1045600095E09F938F930E94050781E195E00E945B +:104570006C068091EC01282F332727FD30953F935F +:104580008F938EE095E09F938F930E9405078CE0B8 +:1045900095E00E946C068091ED01282F332727FDBE +:1045A00030953F938F9389E095E09F938F930E947E +:1045B000050786E095E00E946C068091E8011F9255 +:1045C0008F9383E095E09F938F930E94050781E08E +:1045D00095E00E946C068091E7011F928F938EEF09 +:1045E00094E09F938F930E9405078BEF94E00E94C5 +:1045F0006C068DB79EB74C960FB6F8949EBF0FBE53 +:104600008DBF89EE91E00E9439140E944220909360 +:10461000E6018093E50108951F93CF93DF93809186 +:10462000E5019091E6010E944E20AC019091E801D5 +:10463000992321F02091130130E006C0209114014C +:104640008AE0289F900111244217530708F486C07E +:104650008091EA01C091EB01D091EC011091ED0144 +:10466000811107C0C11176C0D11174C0111172C07F +:1046700075C09F3F19F09F5F9093E801181624F4CE +:104680000E9410218093EA018091EA0187FF05C012 +:104690000E94102181958093EA011C1624F40E9447 +:1046A00010218093EB018091EB0187FF05C00E94F0 +:1046B000102181958093EB016091EA01662339F125 +:1046C000C091EB01CC2319F1772767FD7095872FF7 +:1046D000972F0E94EB2723E333E343E35FE30E943A +:1046E0004F280E94B8276093EA016C2F772767FD57 +:1046F0007095872F972F0E94EB2723E333E343E343 +:104700005FE30E944F280E94B8276093EB011D16BB +:1047100024F40E9459218093EC018091EC0187FFE1 +:1047200005C00E94592181958093EC01111624F453 +:104730000E9459218093ED018091ED0187FF05C012 +:104740000E94592181958093ED01DF91CF911F91B6 +:104750000C947F229F3F09F08ECF96CFDF91CF91AF +:104760001F910895E9EEF1E085E0DF011D928A9541 +:10477000E9F71092E8011092E701089585E497E0C7 +:104780000E946C061F9281E08F931F9285E08F93A9 +:1047900087EF96E09F938F930E9405070F900F90ED +:1047A0000F900F900F900F9008958330E9F128F447 +:1047B000813061F0823009F10895853009F462C0DA +:1047C00008F449C0863009F474C00895809114013A +:1047D000262F30E0280F311D2F3F310524F4680FBC +:1047E0006093140103C08FEF809314018091140132 +:1047F0001F928F9380E396E072C080911301262F61 +:1048000030E0280F311D2F3F310524F4680F6093ED +:10481000130103C08FEF80931301809113011F9246 +:104820008F938EE196E05BC080911201262F30E0DD +:10483000280F311D2F3F310524F4680F60931201BA +:1048400003C08FEF80931201809112011F928F930A +:104850008BE096E044C080911101262F30E0280FB4 +:10486000311D2F3F310524F4680F6093110103C0FF +:104870008FEF80931101809111011F928F9386EF2A +:1048800095E02DC080911001262F30E0280F311DBA +:104890002F3F310524F4680F6093100103C08FEFA0 +:1048A00080931001809110011F928F938DED95E000 +:1048B00016C080910F01262F30E0280F311D2F3FA9 +:1048C000310524F4680F60930F0103C08FEF8093CC +:1048D0000F0180910F011F928F9382EC95E09F93BF +:1048E0008F930E9405070F900F900F900F900895DF +:1048F000833081F128F4813059F08230D1F008956D +:10490000853009F449C0B8F1863009F456C00895DD +:1049100080911401681720F4861B8093140102C053 +:1049200010921401809114011F928F9383EB95E0F4 +:1049300054C080911301681720F4861B80931301E3 +:1049400002C010921301809113011F928F9381EA8C +:1049500095E043C080911201681720F4861B809374 +:10496000120102C010921201809112011F928F93C6 +:104970008EE895E032C080911101681720F4861B03 +:104980008093110102C010921101809111011F92B8 +:104990008F9389E795E021C080911001681720F47A +:1049A000861B8093100102C01092100180911001AB +:1049B0001F928F9380E695E010C080910F016817D9 +:1049C00020F4861B80930F0102C010920F0180918A +:1049D0000F011F928F9385E495E09F938F930E9420 +:1049E00005070F900F900F900F900895CF93C82F49 +:1049F0001F928F938AE498E09F938F930E940507FC +:104A000081E090E0A0E0B0E0BC01CD0104C0660F01 +:104A1000771F881F991FCA95D2F70E94BA1C0F9062 +:104A20000F900F900F90CF910C94FA18CF9387327C +:104A3000A8F58E3108F035C1803109F4A5C0F8F42D +:104A4000873009F465C0A8F4863009F030C1809140 +:104A5000DF01817F8E7F8093DF018FEC99E00E94E0 +:104A60006C0680E39CE00E946C0681E08093EF017D +:104A70004DC08B30F1F18E3009F472C018C186310F +:104A800009F4B6C020F4813109F4F9C010C18931AC +:104A900009F497C08B3109F44FC009C1883349F13B +:104AA00050F4893209F4FFC0853309F4FCC0873221 +:104AB00009F4F9C0FCC0833409F4F5C028F48A3342 +:104AC00008F4F5C08953F0C0883409F0F0C00E94A2 +:104AD000FA1884E19CE00E946C062FEF83ED90E3CE +:104AE000215080409040E1F700C000000E949D20CE +:104AF0000DC086EF99E062C08BEF9BE00E946C06D0 +:104B00008091DF01897F877F8093DF01C1E0D4C07E +:104B10008091DF01C82FC095C170C0FB80F98093E0 +:104B2000DF01CC2349F388E09CE00E946C06809171 +:104B3000DF01866088603DC09091DF0191FBCC274A +:104B4000C0F981E0C827892FC0FB81F98093DF017C +:104B5000CC2319F08EEE9BE027C080EE9BE02EC0A8 +:104B60009091DF0192FBCC27C0F981E0C827892F03 +:104B7000C0FB82F98093DF01CC2319F081ED9BE02B +:104B800013C081EC9BE01AC09091DF0193FBCC270E +:104B9000C0F981E0C827892FC0FB83F98093DF012A +:104BA000CC2351F085EB9BE00E946C068091DF01E5 +:104BB00081608093DF0180C088EA9BE00E946C06E0 +:104BC000A5CF80EC99E00E946C0685E999E00E94EF +:104BD0006C068BE599E00E946C068EE299E00E94DB +:104BE0006C0683EF98E00E946C0688EC98E0E6CFB4 +:104BF0008AEB98E00E946C060E94E4131F928F9348 +:104C000080EA98E09F938F930E94050780910B01A3 +:104C10001F928F9389E898E09F938F930E940507D6 +:104C200080917A011F928F9386E798E09F938F93EC +:104C30000E94050780910C011F928F9383E698E0F4 +:104C40009F938F930E9405078091E1019091E2016B +:104C5000A091E301B091E401BF93AF939F938F9331 +:104C60008FE498E09F938F930E9405078DB79EB7BE +:104C700046960FB6F8949EBF0FBE8DBF47CF0E94D9 +:104C8000FA18C0910C0181E0C827C0930C01CC2315 +:104C900029F08EE99BE00E946C060EC083E99BE040 +:104CA0008DCF8D5101C080E00E94F6242FCF81E985 +:104CB0009BE00E946C06C0E08C2FCF91089580E0AD +:104CC000089580E00895CF93C82F8091EF0181303F +:104CD00071F020F0823009F44BC042C1E0910D0127 +:104CE000F0910E018081823209F03CC107C0E09151 +:104CF0000D01F0910E018081823261F48C2F0E94AF +:104D00005F26811104C08C2F0E9416252FC081E0E0 +:104D100090E02CC08C2F0E946126811126C0C431E6 +:104D2000E1F070F4CB3081F0C031D1F40E94BE23A9 +:104D300082E498E00E946C0682E08093EF0115C047 +:104D4000C93259F0C83361F48FEC99E00E946C06C7 +:104D500086E498E00E946C0608C01092EF0104C13E +:104D600080E498E00E946C06FFC081E08170FEC084 +:104D7000C43228F5CE3108F0C1C0CB30A1F1D0F457 +:104D8000C73009F0D3C08EE18093140182E3809391 +:104D900013018AE08093120184E18093110188E07D +:104DA0008093100188E280930F0186EE96E00E94C6 +:104DB0006C06BFC0C33149F1C431C1F0B7C0CB34B8 +:104DC00009F4A9C028F4C93289F0C83361F0AEC033 +:104DD000C13509F49EC0C23509F499C0CE3409F03A +:104DE000A5C06AE09EC00E94BE23A3C08091EE01D0 +:104DF000882319F01092EE019CC083EF96E00E9488 +:104E00006C0681E08093EF01B1C08DEC96E00E94CA +:104E10006C068BEB96E00E946C06809114011F9249 +:104E20008F9388EB96E09F938F930E94050786EB04 +:104E300096E00E946C0684EA96E00E946C068091DF +:104E400013011F928F9381EA96E09F938F930E94A4 +:104E500005078FE996E00E946C0680E996E00E94C3 +:104E60006C06809112011F928F938DE896E09F93BC +:104E70008F930E9405078BE896E00E946C068AE7F4 +:104E800096E00E946C06809111011F928F9387E734 +:104E900096E09F938F930E94050785E796E00E9416 +:104EA0006C0680E696E00E946C06809110011F92CD +:104EB0008F938DE596E09F938F930E9405078BE576 +:104EC00096E00E946C0684E496E00E946C06809155 +:104ED0000F011F928F9381E496E09F938F930E941E +:104EE00005078FE396E00E946C068DB79EB7489643 +:104EF0000FB6F8949EBF0FBE8DBF1BC0CE51EC2FD6 +:104F0000F0E0E35CFE4F80818093EE0112C061E02F +:104F100003C061E006C06AE08091EE010E94D523E3 +:104F200008C08091EE010E94782403C084EE96E0D0 +:104F300013C08091EE01882369F01F928F938EED4C +:104F400096E09F938F930E9405070F900F900F900C +:104F50000F9004C08BED96E00E946C0681E006C0C5 +:104F60001092EF0180E002C080E000CFCF91089561 +:104F700004D06894B1118DC0089570D088F09F5707 +:104F800090F0B92F9927B751A0F0D1F0660F771F95 +:104F9000881F991F1AF0BA95C9F712C0B13081F075 +:104FA00077D0B1E0089574C0672F782F8827B85F55 +:104FB00039F0B93FCCF3869577956795B395D9F7D6 +:104FC0003EF490958095709561957F4F8F4F9F4FE0 +:104FD0000895E89409C097FB3EF4909580957095EC +:104FE00061957F4F8F4F9F4F9923A9F0F92F96E935 +:104FF000BB279395F695879577956795B795F111AA +:10500000F8CFFAF4BB0F11F460FF1BC06F5F7F4F46 +:105010008F4F9F4F16C0882311F096E911C0772358 +:1050200021F09EE8872F762F05C0662371F096E861 +:10503000862F70E060E02AF09A95660F771F881F30 +:10504000DAF7880F9695879597F9089557FD905848 +:10505000440F551F59F05F3F71F04795880F97FB3C +:10506000991F61F09F3F79F08795089512161306F6 +:105070001406551FF2CF4695F1DF08C01616170625 +:105080001806991FF1CF869571056105089408955A +:10509000E894BB2766277727CB0197F908950BD0B3 +:1050A00078C069D028F06ED018F0952309F05AC066 +:1050B0005FC01124EECFCADFA0F3959FD1F3950F07 +:1050C00050E0551F629FF001729FBB27F00DB11D8C +:1050D000639FAA27F00DB11DAA1F649F6627B00D1C +:1050E000A11D661F829F2227B00DA11D621F739F05 +:1050F000B00DA11D621F839FA00D611D221F749F13 +:105100003327A00D611D231F849F600D211D822F59 +:10511000762F6A2F11249F5750408AF0E1F08823A0 +:105120004AF0EE0FFF1FBB1F661F771F881F9150AD +:105130005040A9F79E3F510570F014C0AACF5F3FC1 +:10514000ECF3983EDCF3869577956795B795F795E0 +:10515000E7959F5FC1F7FE2B880F911D9695879568 +:1051600097F9089597F99F6780E870E060E00895E7 +:105170009FEF80EC089500240A941616170618066F +:105180000906089500240A9412161306140605064B +:105190000895092E0394000C11F4882352F0BB0FDC +:1051A00040F4BF2B11F460FF04C06F5F7F4F8F4F3F +:1051B0009F4F0895991B79E004C0991F961708F036 +:1051C000961B881F7A95C9F78095089597FB072E3F +:1051D00016F4009407D077FD09D00E94002907FC3F +:1051E00005D03EF4909581959F4F089570956195F7 +:1051F0007F4F0895EE0FFF1F0590F491E02D099465 +:10520000AA1BBB1B51E107C0AA1FBB1FA617B707EC +:1052100010F0A61BB70B881F991F5A95A9F7809508 +:105220009095BC01CD010895F999FECF92BD81BD45 +:10523000F89A992780B50895A8E1B0E042E050E0DF +:105240000C943C29262FF999FECF92BD81BDF89A86 +:10525000019700B4021639F01FBA20BD0FB6F894BA +:10526000FA9AF99A0FBE08950196272F0E942329D2 +:105270000C942229DC01CB01FC01F999FECF06C078 +:10528000F2BDE1BDF89A319600B40D924150504004 +:08529000B8F70895F894FFCF70 +:10529800FF210C120DEF0CBB0C870C0101CC01286F +:1052A80008140A321E796653436C49636F7F697329 +:1052B800091939293F4D3620394D040004CA03AA7B +:1052C800037103E402FD0216032F034F03010203D7 +:0852D8000405060708090000A7 +:00000001FF diff --git a/keyboards/atreus/keymaps/default/keymap.c b/keyboards/atreus/keymaps/default/keymap.c new file mode 100644 index 000000000..1c4280ff5 --- /dev/null +++ b/keyboards/atreus/keymaps/default/keymap.c @@ -0,0 +1,51 @@ +// this is the style you want to emulate. +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, + +#include "atreus.h" + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QW 0 +#define _RS 1 +#define _LW 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_QW] = { /* Qwerty */ + {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P }, + {KC_A, KC_S, KC_D, KC_F, KC_G, KC_TRNS, KC_H, KC_J, KC_K, KC_L, KC_SCLN }, + {KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LALT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH }, + {KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_SPC, MO(_RS), KC_MINS, KC_QUOT, KC_ENT } +}, +[_RS] = { /* [> RAISE <] */ + {KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, KC_PGUP, KC_7, KC_8, KC_9, KC_ASTR}, + {KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, KC_TRNS, KC_PGDN, KC_4, KC_5, KC_6, KC_PLUS}, + {KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_LALT, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS}, + {TG(_LW), KC_INS, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_SPC, KC_TRNS, KC_DOT, KC_0, KC_EQL} +}, +[_LW] = { /* [> LOWER <] */ + {KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_UP, KC_F7, KC_F8, KC_F9, KC_F10}, + {KC_DELT, KC_LEFT, KC_DOWN, KC_RGHT, KC_DOWN, KC_TRNS, KC_DOWN, KC_F4, KC_F5, KC_F6, KC_F11}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LALT, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F12}, + {KC_TRNS, KC_TRNS, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_SPC, DF(_QW), KC_TRNS, KC_TRNS, RESET} +}}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboards/atreus/keymaps/gerb/compiled.hex b/keyboards/atreus/keymaps/gerb/compiled.hex new file mode 100644 index 000000000..963a83ad7 --- /dev/null +++ b/keyboards/atreus/keymaps/gerb/compiled.hex @@ -0,0 +1,1339 @@ +:100000000C9472060C94B6060C94B6060C94B606C4 +:100010000C94B6060C94B6060C94B6060C94B60670 +:100020000C94B6060C94B6060C94B5110C94871279 +:100030000C9468200C94B6060C94B6060C94B60684 +:100040000C94B6060C94B6060C94B6060C94B60640 +:100050000C94B6060C94D0200C94B6060C94B606FC +:100060000C94B6060C94B6060C94B6060C94B60620 +:100070000C94B6060C94B6060C94B6060C94B60610 +:100080000C94B6060C94B6060C94B6060C94B60600 +:100090000C94B6060C94B6060C94B6060C94B606F0 +:1000A0000C94B6060C94B6060C94B606F41216130D +:1000B0000414161304145B137E130414D313E613F1 +:1000C00029172917581758179717B717E718E71858 +:1000D000C217E71872187218D818E718E718E1184D +:1000E0007F187F187F187F187F187F187F187F1858 +:1000F0007F187F187F187F187F187F187F187F1848 +:100100008F189D18A418AB18B51814001A00080011 +:100110001500170000001C0018000C00120013004E +:1001200004001600070009000A0000000B000D0083 +:100130000E000F0033001D001B0006001900050013 +:10014000E2001100100036003700380029002B00B3 +:10015000E300E1002A00E4002C0003522D003400EB +:10016000280014001A00090013000A0000000D0006 +:100170000F0018001C0033000400150016001700C3 +:10018000070000000B00110008000C0012001D0009 +:100190001B00060019000500E2000E0010003600EA +:1001A0003700380029002B00E300E1002A00E400BA +:1001B0002C0003522D003400280034003600370094 +:1001C00013001C00000009000A00060015000F00C3 +:1001D00004001200080018000C00000007000B00CB +:1001E000170011001600330014000D000E001B0054 +:1001F000E200050010001A0019001D0029002B0064 +:10020000E300E1002A00E4002C0003522D00380036 +:10021000280049004A0052004D004B000000A90090 +:100220002400250026002F004C00500051004F00F4 +:100230004E000000AA0021002200230030003500FB +:10024000AC00AE00AB002D00E200A8001E001F00B5 +:100250002000310004546500E300E1002A00E400BE +:100260002C000100370027002E000100FB00F000E9 +:10027000FC00F90000000053400041004200430030 +:100280000100F200F100F300FA00000001533F000A +:100290003E003F004400F700F400F500F600F700D0 +:1002A000E20002533A003B003C004500010001001F +:1002B000E300E1002A00E4002C000100010001003D +:1002C00000500A44454255473A20656E61626C65AC +:1002D000642E0A005374617465206F6620726F7714 +:1002E0002025583A2025303136620A0048756D6164 +:1002F0006E2D7265616461626C65206D61747269F6 +:10030000782073746174653A0D0A004465626F75F4 +:100310006E63696E672064656C61792072656D61DA +:10032000696E696E673A2025580A005B735D004B61 +:100330006579626F6172642073746172742E0A0051 +:100340005B575D005B535D005B525D005B445D008D +:100350005B435D000E034100740072006500750090 +:1003600073000000180354006500630068006E000D +:100370006F006D0061006E006300790000000403EF +:10038000090409028D00050100A0FA09040000011A +:1003900003010100092111010001223F000705812D +:1003A0000308000A090401000103010200092111E8 +:1003B000010001224D000705820308000A0904021A +:1003C000000103000000092111010001223600078D +:1003D00005830308000A0904030002030000000962 +:1003E00021110100012220000705840320000107DC +:1003F00005040320000109040400010300000009B2 +:1004000021110100012239000705850310000112A6 +:1004100001100100000008EDFE6060010001020013 +:100420000105010906A101050719E029E7150025C5 +:1004300001950875018102050819012905950575C1 +:10044000019102950175039101050719002977159E +:10045000002501957875018102C00631FF0974A15C +:10046000010975150025FF9520750881020976158B +:100470000025FF952075089102C005010980A101A2 +:10048000850216010026B7001A01002AB700751070 +:1004900095018100C0050C0901A101850316010029 +:1004A000269C021A01002A9C02751095018100C049 +:1004B00005010902A1010901A10005091901290588 +:1004C00015002501950575018102950175038101CE +:1004D0000501093009311581257F950275088106CE +:1004E00009381581257F950175088106050C0A38A4 +:1004F000021581257F950175088106C0C005010997 +:1005000006A101050719E029E715002501950875E1 +:1005100001810295017508810105081901290595D8 +:1005200005750191029501750391010507190029CF +:10053000FF150025FF950675088100C00A002530CB +:10054000325820006B6579626F6172645F7265700A +:100550006F72743A20004B6579626F617264204C4F +:100560004544732073746174653A2025780A0064E9 +:10057000656C5F6B65795F6269743A2063616E27B1 +:10058000742064656C3A20253032580A0061646436 +:100590005F6B65795F6269743A2063616E277420CE +:1005A0006164643A20253032580A00290A00257512 +:1005B000002F002575005D280025640020002564BB +:1005C00000200025640020002564007C00253032D6 +:1005D00058006D6F7573656B6579205B62746E7C16 +:1005E000782079207620685D287265702F61636CB1 +:1005F000293A205B006D6B5F776865656C5F746995 +:100600006D655F746F5F6D6178203D2025640A0021 +:100610006D6B5F776865656C5F6D61785F73706542 +:100620006564203D2025640A006D6B5F74696D650B +:100630005F746F5F6D6178203D2025640A006D6BEB +:100640005F6D61785F7370656564203D2025640A85 +:10065000006D6B5F696E74657276616C203D20255C +:10066000640A006D6B5F64656C6179203D202564D0 +:100670000A006D6B5F776865656C5F74696D655FB7 +:10068000746F5F6D6178203D2025640A006D6B5F9B +:10069000776865656C5F6D61785F73706565642010 +:1006A0003D2025640A006D6B5F74696D655F746F32 +:1006B0005F6D6178203D2025640A006D6B5F6D6180 +:1006C000785F7370656564203D2025640A006D6B5A +:1006D0005F696E74657276616C203D2025640A0046 +:1006E0006D6B5F64656C6179203D2025640A000AAA +:1006F00000257500363A20776865656C5F74696D12 +:10070000655F746F5F6D61783A20000A002575009F +:10071000353A20776865656C5F6D61785F737065E9 +:1007200065643A20000A00257500343A2074696D2A +:10073000655F746F5F6D61783A20000A002575006F +:10074000333A206D61785F73706565643A20000A02 +:1007500000257500323A20696E74657276616C28E6 +:100760006D73293A20000A00257500313A2064652E +:100770006C6179282A31306D73293A20000A092DDD +:100780002056616C756573202D0A004D3E004D2585 +:10079000643E20003F007365742064656661756C7B +:1007A000740A00433E200077686572652064656CBA +:1007B00074613A20637572736F723D25642C2077E3 +:1007C0006865656C3D25640A5365652068747470BE +:1007D0003A2F2F656E2E77696B6970656469612E9B +:1007E0006F72672F77696B692F4D6F7573655F6BDC +:1007F0006579730A000A092D204D6F7573656B6565 +:1008000079202D0A4553432F713A09717569740A8D +:10081000313A0964656C6179282A31306D73290A8F +:10082000323A09696E74657276616C286D73290AB3 +:10083000333A096D61785F73706565640A343A090B +:1008400074696D655F746F5F6D61780A353A097719 +:100850006865656C5F6D61785F73706565640A36A5 +:100860003A09776865656C5F74696D655F746F5F81 +:100870006D61780A0A703A097072696E7420766147 +:100880006C7565730A643A09736574206465666102 +:10089000756C74730A75703A092B310A646F776E40 +:1008A0003A092D310A706775703A092B31300A7098 +:1008B00067646F776E3A092D31300A0A7370656587 +:1008C00064203D2064656C7461202A206D61785F2E +:1008D0007370656564202A202872657065617420D4 +:1008E0002F2074696D655F746F5F6D6178290A00F0 +:1008F0003F004D3E2000433E20004C25640A00741A +:10090000696D65725F636F756E743A202530346C63 +:10091000580A006B6579626F6172645F6E6B726F0B +:100920003A2025580A006B6579626F6172645F69CD +:10093000646C653A2025580A006B6579626F6172B4 +:10094000645F70726F746F636F6C3A2025580A0091 +:10095000686F73745F6B6579626F6172645F6C65F9 +:10096000647328293A2025580A000A092D20537457 +:1009700061747573202D0A004743433A20342E39A1 +:100980002E32204156522D4C4942433A20312E38C6 +:100990002E31204156525F415243483A20617672CF +:1009A000350A004F5054494F4E533A204C5546415A +:1009B000204D4F5553454B45592045585452414BB6 +:1009C000455920434F4E534F4C4520434F4D4D41C9 +:1009D0004E44204E4B524F20343039360A00425597 +:1009E000494C443A20313637313865662D64697296 +:1009F0007479202832333A30393A3131204A756ED1 +:100A00002020392032303136290A005649443A2014 +:100A100030784645454428546563686E6F6D616E55 +:100A2000637929205049443A2030783630363028CE +:100A300041747265757329205645523A20307830DA +:100A40003030310A00444553433A20712E6D2E6BED +:100A50002E206B6579626F617264206669726D77B2 +:100A600061726520666F72204174726575730A0049 +:100A70000A092D2056657273696F6E202D0A000ACF +:100A8000092D20436F6E736F6C65202D0A4553430B +:100A90002F713A09717569740A6D3A096D6F757332 +:100AA000656B65790A000A092D204D61676963202D +:100AB0002D0A443A094465627567204D6573736178 +:100AC000676520546F67676C650A583A094D617411 +:100AD000726978204465627567204D6F64652054A3 +:100AE0006F67676C65202D2053686F77206B657981 +:100AF0007072657373657320696E206D61747269BD +:100B00007820677269640A4B3A094B6579626F61B4 +:100B1000726420446562756720546F67676C652056 +:100B20002D2053686F77206B657970726573732021 +:100B30007265706F72740A4D3A0944656275672078 +:100B40004D6F75736520546F67676C650A563A0977 +:100B500056657273696F6E0A533A095374617475FE +:100B6000730A433A09416374697661746520436F7F +:100B70006E736F6C65204D6F64650A46312D46318A +:100B8000303A0953776974636820746F204C617937 +:100B9000657220302D392028463130203D204C30E0 +:100BA000290A302D393A0953776974636820746FC4 +:100BB000204C6179657220302D390A4553433A093A +:100BC00053776974636820746F204C617965722073 +:100BD000302028616C7465726E617465206B657974 +:100BE0002031290A47524156453A095377697463BF +:100BF0006820746F204C6179657220302028616C08 +:100C00007465726E617465206B65792032290A50B3 +:100C1000415553453A094A756D7020746F20426FF3 +:100C20006F746C6F616465722028526573657429F6 +:100C30000A4E3A094E4B524F20546F67676C650A53 +:100C4000003F004E4B524F3A206F66660A004E4BF3 +:100C5000524F3A206F6E0A000A6D6F7573653A2025 +:100C60006F66660A000A6D6F7573653A206F6E0ACB +:100C7000000A6B6579626F6172643A206F66660A7A +:100C8000000A6B6579626F6172643A206F6E0A00C8 +:100C90000A6D61747269783A206F66660A000A6D9F +:100CA00061747269783A206F6E0A000A6465627531 +:100CB000673A206F66660A000A64656275673A20C3 +:100CC0006F6E0A000A0A4A756D70696E6720746F4C +:100CD00020626F6F746C6F616465722E2E2E20001F +:100CE000433E200011241FBECFEFDAE0DEBFCDBFB0 +:100CF00004B603FE24C08091FE019091FF01A091F3 +:100D00000002B09101028730904BA740B04BB9F47C +:100D10001092FE011092FF01109200021092010247 +:100D200014BE84B7877F84BF88E10FB6F8948093A0 +:100D30006000109260000FBEE0E0F8E3099511E05A +:100D4000A0E0B1E0E8E4F3E502C005900D92A8341C +:100D5000B107D9F711E0A8E4B1E001C01D92AE3FA0 +:100D6000B107E1F70E94EF0E0C94A2290C94000049 +:100D7000FF93EF93E0914801F0914901309709F01A +:100D80000995EF91FF910895FC018591803011F054 +:100D9000EFDFFBCF0895FF27E0E230E247FF0CC012 +:100DA000419597FF09C0EDE260957095809590950B +:100DB000611D711D811D911D27FF02C0219530E32A +:100DC00050E2AA27660F771F881F991FAA1FA41732 +:100DD00010F0A41B63955A95A9F7AA3008F0A95FF3 +:100DE000A05DAF93F395611571058105910541F7FC +:100DF000ED3211F4EF93F395F21718F43F93F39556 +:100E0000FBCF8F91B5DFFA95E1F70895E991F9915C +:100E10008591803021F0853219F0AADFF9CF08954D +:100E200020E0E89455915532C1F3503311F46894A1 +:100E300055915A3348F4505390F3220F022E220F4B +:100E4000220F200D250FF4CF0EF421958991999151 +:100E5000533619F3533729F1533559F1BC0188271B +:100E60009927E8945C3621F4899199916894559179 +:100E7000543639F446EF7EF077FF0DC08FEF9FEFC9 +:100E80000AC055374AE039F0583540E121F0523672 +:100E900042E009F00895FF93EF937DDFEF91FF911A +:100EA000B7CFFF93EF93FC0181918030B9F360DFFE +:100EB000FBCFFF93EF9368DFF1CFDF93CF93CDB7F5 +:100EC000DEB72596A3DFCF91DF91089508950895A9 +:100ED00086E697E0892B11F00C946607089587E663 +:100EE00097E0892B11F00C946707089561110BC0EE +:100EF000FC018281882321F085EE0E94CD1503C07C +:100F000085EE0E94951680E090E0089581E00895B6 +:100F100081E008950C94880708950F931F93CF9351 +:100F2000DF938C01FC01C081D181CE010E944B1E58 +:100F3000BE010E943A08EC01B8010E948A0788238A +:100F400009F48DC0F8018281882309F44AC0809198 +:100F5000550181111FC0C431F0E5DF0709F051C010 +:100F60000E948C0781E0809355010E949A20909303 +:100F700054018093530110924C0110924E01109233 +:100F80004D011092500110924F0110925201109297 +:100F9000510165C080915301909154010E94A62097 +:100FA000883C910570F480914C01E82FF0E0EE0F41 +:100FB000FF1FE35BFE4FD183C0838F5F80934C01A3 +:100FC0004EC0C43880E5D80721F0C538D04501F1BE +:100FD0003AC0F8018281882341F010924A0182E0F0 +:100FE0001EC0C438E0E5DE0759F580914A01811141 +:100FF00006C086E20E94CD1586E20E94951682E028 +:101000001CC0C438F0E5DF0741F3C538D045D9F43A +:10101000F8018281882331F010924B0180E20E9416 +:10102000E4161DC080914B01811106C087E20E9429 +:10103000CD1587E20E94951680E20E94EB160FC044 +:10104000C538D04529F381E080934A0180934B0154 +:10105000C801DF91CF911F910F910C94860780E01A +:10106000DF91CF911F910F9108950C9468070C9414 +:101070006F0708959BE0799FF00111249CE2899FFE +:10108000E00DF11D1124E60FF11DEE0FFF1FE65FCD +:10109000FE4F859194910895880F991FFC01E657A2 +:1010A000F040859194910895880F991FFC01E65FA7 +:1010B000FE4F8591949108950F931F93CF93DF93E3 +:1010C000EC01811520E3920750F5C11580E2D807A5 +:1010D00008F0C9C0CB3BD10590F4C83AD10508F05F +:1010E00070C0C53AD10508F061C0C430D10508F020 +:1010F000DAC1219709F0D4C101E010E014C2CF3F5A +:10110000D10511F008F0CFC1C03FD10508F0A8C04B +:10111000CE01805E9109089708F4C5C1C1C1C130F4 +:1011200090E5D90709F4A8C050F5C0318FE4D8077D +:1011300070F4C11590E4D90708F09AC0C11521E3F5 +:10114000D20708F0ADC1DD278E01106CECC1C115CE +:10115000D04509F0A5C10E9452198FEF94E32CE00D +:10116000815090402040E1F700C0000087E797E7FA +:1011700090930108809300080E94F520D4C1C11506 +:1011800097E5D90758F4C03121E5D20708F020C10E +:10119000C43180E5D80708F479C082C1CE019057E8 +:1011A0008115904108F07CC1DF7077C1C53AD10547 +:1011B00009F47BC1C63AD10509F07AC102E810E40E +:1011C000B2C1C83AD10509F476C1C93AD10509F4CA +:1011D00075C1CA3AD10509F474C1CB3AD10509F4F5 +:1011E00073C1CC3AD10509F472C1CD3AD10509F4E5 +:1011F00071C1C03BD10509F470C1CE3AD10509F4E3 +:101200006FC1CF3AD10509F46EC1C13BD10509F4D4 +:101210006DC1C23BD10509F46CC1C33BD10509F4D2 +:101220006BC1C43BD10509F46AC1C53BD10509F4C2 +:1012300069C1C63BD10509F468C1C73BD10509F4B2 +:1012400067C1C83BD10509F466C1C93BD10509F4A2 +:1012500065C1CA3BD10509F464C100E014E463C16F +:101260008E01106560C1CE019F700E9454085CC160 +:10127000DF708E01106A57C182EC92E00E94C406B2 +:101280008091DF0181608093DF014DC10E944C217C +:10129000811102C00E9432210E945F2190E0909350 +:1012A000FE018093FD01C23080E5D80721F48091D2 +:1012B000FD01816086C0C43090E5D90721F480919A +:1012C000FD0182607EC0C63020E5D20721F4809106 +:1012D000FD01846076C0C83080E5D80719F480919C +:1012E000FD0127C0CA3090E5D90721F48091FD01A6 +:1012F000806167C0CC3020E5D20721F48091FD01E8 +:1013000080625FC0CE3080E5D80721F48091FD0176 +:10131000806457C0C03190E5D90721F48091FD0168 +:1013200080684FC0C23120E5D20729F48091FD01C9 +:101330008460886046C0C33080E5D80721F480917E +:10134000FD018E7F3EC0C53090E5D90721F4809124 +:10135000FD018D7F36C0C73020E5D20721F4809192 +:10136000FD018B7F2EC0C93080E5D80719F480912C +:10137000FD0126C0CB3090E5D90721F48091FD0115 +:101380008F7E1FC0CD3020E5D20721F48091FD0172 +:101390008F7D17C0CF3080E5D80721F48091FD0103 +:1013A0008F7B0FC0C13190E5D90721F48091FD01F9 +:1013B0008F7707C0C331D04531F48091FD018B7F19 +:1013C000877F8093FD018091FD010E946321ABC066 +:1013D0008D2F99278F70992781309105D9F49E011F +:1013E0002370332702C0880F991F2A95E2F79C6863 +:1013F0008E0144E0000F111F4A95E1F7002713709A +:10140000802B912B53E0CC0FDD1F5A95E1F7C0766E +:10141000DD272FC08230910531F4DC2FCC278E01DF +:10142000016F106A80C08330910569F4CE0183702A +:10143000992701E010E002C0000F111F8A95E2F722 +:10144000C8019C680FC084309105B9F4CE01837047 +:10145000992701E010E002C0000F111F8A95E2F702 +:10146000C8019A6823E0CC0FDD1F2A95E1F7C07E02 +:10147000D7708C010C2B1D2B56C08530910531F493 +:10148000DC2FCC278E01046F106A4DC0069709F03F +:101490004AC0CF71DD27DC2FCC278E01106243C0FC +:1014A00000E010E040C08E013EC001E810E43BC007 +:1014B00003E810E438C002EE14E435C009EE14E489 +:1014C00032C00AEE14E42FC005EB14E42CC006EB86 +:1014D00014E429C007EB14E426C00CEC14E423C088 +:1014E0000DEC14E420C003E815E41DC00AE815E47F +:1014F0001AC002E915E417C004E915E414C001E2BA +:1015000016E411C003E216E40EC004E216E40BC0B8 +:1015100005E216E408C006E216E405C007E216E498 +:1015200002C00AE216E4C801DF91CF911F910F912A +:1015300008959BE0799FF00111249CE2899FE00DC2 +:10154000F11D1124E60FF11DEE0FFF1FE65FFE4FA8 +:1015500085919491803E9105E0F4803C910558F589 +:101560008133910509F46FC048F48932910509F47B +:1015700063C08A32910509F46DC072C08933910548 +:10158000E9F082389105D1F08533910509F44DC019 +:1015900067C0833E910581F138F4803E9105B9F032 +:1015A000823E9105D9F05CC0863E910561F1873E8F +:1015B0009105A1F155C00E944C0808952091FD01AC +:1015C00020FD02C021FF4CC080EE90E049C0809118 +:1015D000FD0180FFF9CF89E390E042C08091FD01D9 +:1015E00082FF0EC08091FD0184FF03C080E090E087 +:1015F00037C083EE90E034C08091FD0182FFF2CFCE +:1016000082EE90E02DC08091FD0183FF0BC08091A0 +:10161000FD0184FDEBCF87EE90E022C08091FD01BB +:1016200083FFF5CF86EE90E01BC08091FD0185FF22 +:1016300007C089E290E014C08091FD0185FFF9CFD9 +:1016400085E390E00DC08091FD0186FF07C08AE22E +:1016500090E006C08091FD0186FFF9CF81E390E024 +:101660000E945C08089508950C94330BE82FF0E075 +:10167000E05EFE4F8081E82FEF70F0E082958F7082 +:1016800021E030E0A90102C0440F551F8A95E2F71E +:1016900040A308950F931F93CF93DF9385B780687E +:1016A00085BF85B7806885BFC3E0D0E001E010E06A +:1016B000FE01E05EFE4F8081E82FEF70F0E021A197 +:1016C00082958F70A80102C0440F551F8A95E2F7DA +:1016D000CA01822B81A38C2F0E94360B219740F7E1 +:1016E0008AE090E061E070E0FC01EB5EFE4F20815B +:1016F000E22FEF70F0E042A122952F70DB0102C0D3 +:10170000AA0FBB1F2A95E2F79D01242B22A3019764 +:1017100058F7DF91CF911F910F910C943508EF92FC +:10172000FF920F931F93CF93DF930EE511E0C3E079 +:10173000EE24E394F12CD5E08C2F0E94360B8AE046 +:1017400090E040E050E0FC01EB5EFE4F6081E62F50 +:10175000EF70F0E020A130E062956F7002C0359527 +:1017600027956A95E2F720FD09C09701082E02C06F +:10177000220F331F0A94E2F7422B532B019718F7DD +:10178000F801929182918F018417950721F051837E +:101790004083D09300018C2F0E94360BC15060F61D +:1017A0008091000187FD42C09091DF0190FF10C041 +:1017B000282F332727FD30953F938F938BE093E0BD +:1017C0009F938F930E945D070F900F900F900F9043 +:1017D0008091000181508093000187FD07C08FE94F +:1017E0009FE00197F1F700C0000020C080915C01EC +:1017F00090915D01909365018093640180915A01FD +:1018000090915B01909363018093620180915801F4 +:1018100090915901909361018093600180915601EC +:101820009091570190935F0180935E010E94370869 +:1018300081E0DF91CF911F910F91FF90EF9008957C +:10184000E82FF0E0EE0FFF1FE25AFE4F80819181FA +:101850000895EF92FF920F931F93CF93DF938091A0 +:10186000DF0180FF04C08CEE92E00E94C4060EE50A +:1018700011E0C0E0D0E084EDE82E82E0F82E809107 +:10188000DF0180FF13C0F801808191810E940F2049 +:101890009F938F93DF93CF93FF92EF920E945D0708 +:1018A0000F900F900F900F900F900F9021960E5F5A +:1018B0001F4FC430D10519F7DF91CF911F910F91C0 +:1018C000FF90EF9008950F931F93CF9306E611E0DA +:1018D000C0E0F801929182918F010E94ED1FC80F24 +:1018E000F1E00E351F07A9F78C2FCF911F910F91B3 +:1018F00008958091790108959FB7F8941092680136 +:101900009FBF9091F401943009F057C09091E90085 +:101910009F703091EC00232F217030FD20E8922B36 +:1019200024E02093E9002091EB0020FF43C02091A8 +:10193000EE0027FF3FC020916601222321F0209175 +:10194000E80025FF37C01092660126E03091E800DC +:1019500035FD15C03091F401343061F53091EB0064 +:1019600035FD28C0215021F481E08093660122C01A +:10197000EFE9FFE03197F1F700C00000E7CF809377 +:10198000F1008091E80085FD0AC08091E80080FFA9 +:10199000FCCF8091E8008E778093E80006C08FB777 +:1019A000F89421E0209368018FBF9F709093E90025 +:1019B00080E008959F709093E9008FEF0895CF9392 +:1019C000DF9300D01F92CDB7DEB79C018091F40168 +:1019D000843019F593E099833B832A839093E9003F +:1019E0008FEF9091E800815095FD06C095ED9A9596 +:1019F000F1F700008111F5CF8091E80085FF0DC05F +:101A000040E050E063E070E0CE0101960E94A50F37 +:101A10008091E8008E778093E8000F900F900F90F0 +:101A2000DF91CF910895CF93DF9300D01F92CDB770 +:101A3000DEB72091F401243021F522E029839B8335 +:101A40008A8383E08093E9008FEF9091E8008150D2 +:101A500095FD06C095ED9A95F1F700008111F5CF3F +:101A60008091E80085FF0DC040E050E063E070E049 +:101A7000CE0101960E94A50F8091E8008E77809399 +:101A8000E8000F900F900F90DF91CF910895209173 +:101A9000F4012430F1F422E02093E9002FEF30919B +:101AA000E800215035FD06C035ED3A95F1F700000C +:101AB0002111F5CF2091E80025FF0BC040E050E058 +:101AC00065E070E00E94A50F8091E8008E7780931A +:101AD000E8000895CF93DF932091F401243009F0BA +:101AE00048C0EC0180910B018823E1F080910C014A +:101AF0008823C1F085E08093E9008FEF9091E800A2 +:101B0000815095FD06C095E19A95F1F7000081118D +:101B1000F5CF8091E80085FF2CC040E050E060E107 +:101B200070E017C081E08093E9008FEF9091E800AA +:101B3000815095FD06C095ED9A95F1F70000811151 +:101B4000F5CF8091E80085FF14C040E050E068E0E8 +:101B500070E0CE010E94A50F8091E8008E778093FF +:101B6000E80080E1FE01A9E6B1E001900D928A95BE +:101B7000E1F7DF91CF91089580E593E00E94C406DC +:101B80008091F301811109C00E943A110E949711BE +:101B90008091E20084608093E20008958CE493E0F9 +:101BA0000E94C4061092F301089588E493E00C9417 +:101BB000C40684E493E00C94C40680E493E00E949D +:101BC000C4060C946220209167012F5F822F62E38C +:101BD0000E943229992319F02093670108951092E9 +:101BE000670180916801882371F18091F40184304C +:101BF00041F58091E9008F702091EC00922F917057 +:101C000020FD90E8892B94E09093E9009091EB00FF +:101C100090FF14C09091EE0097FF10C09091E800E3 +:101C200095FF03C01092F100F9CF9091E80090FF6A +:101C300005C09091E8009E779093E8008F708093A4 +:101C4000E90010926801089542E061EC81E00E9491 +:101C5000B41042E061EC82E00E94B41042E061EC1A +:101C600083E00E94B41042E261EC84E00E94B41070 +:101C700042E161EC85E00C94B4108091F601833070 +:101C800009F455C030F4813071F0823009F48EC00F +:101C900008958A3009F47AC08B3009F460C0893025 +:101CA00009F09CC020C08091F501813A09F096C0EE +:101CB0008091E800877F8093E8008091F9019091FE +:101CC000FA01892B21F460E189E691E003C060E02C +:101CD00080E090E070E00E94F00F8091E8008B7748 +:101CE0008093E80008958091F501813209F076C073 +:101CF0008091F9019091FA01009719F0049709F089 +:101D00006DC08091E800877F8093E8008091E800B3 +:101D100082FD05C08091F4018111F8CF5FC08091F0 +:101D2000F100809379018091E8008B7753C0809116 +:101D3000F501813A09F052C08091F9019091FA01C0 +:101D4000892B09F04BC08091E800877F8093E800E1 +:101D50008091E80080FFFCCF80910B0136C080911C +:101D6000F5018132D9F58091F9019091FA01892B21 +:101D7000A9F58091E800877F8093E8000E94E91030 +:101D80008091F70180930B010C9452198091F50119 +:101D9000813221F58091E800877F8093E8000E94DE +:101DA000E9108091F80180937A0108958091F501FE +:101DB000813AA1F48091E800877F8093E8008091C8 +:101DC000E80080FFFCCF80917A018093F100809140 +:101DD000E8008E778093E8000C94E910089584B7AA +:101DE000877F84BF88E10FB6F894809360001092DB +:101DF00060000FBE90E080E80FB6F8948093610019 +:101E0000909361000FBE0E94C9140E943A110E9473 +:101E100097118091E20084608093E2008CE79CE05F +:101E20000E94E81F78940E941C140E94CB1481E049 +:101E300091E00E9437148FE293E00E94C4068091E3 +:101E4000F401853089F48BE293E00E94C4060E947D +:101E500029208091F201882391F30E945420882345 +:101E600071F30E948F0FEBCF0E94EF14E8CF292F60 +:101E7000332723303105C9F064F42130310581F076 +:101E80002230310509F043C08DE890E022E833E0CC +:101E900042C021323105F1F02232310541F137C023 +:101EA00082E190E02FE034E036C09927813091053F +:101EB00041F08230910541F0892B49F5EEE7F3E0DE +:101EC00005C0E4E6F3E002C0E4E5F3E0849190E0CD +:101ED0009F0121C06530D8F4E62FF0E0EE0FFF1F20 +:101EE000ED5CFE4F2081318189E090E014C06530C7 +:101EF00070F470E0FB01EE0FFF1FE75DFE4F2081E5 +:101F00003181FB01EC5DFE4F808190E004C080E0F8 +:101F100090E020E030E0FA0131832083089580E1F1 +:101F200089BD82E189BD09B400FEFDCF8091D80052 +:101F30008F7D8093D8008091E00082608093E000E4 +:101F40008091E00081FDFCCF0895CF92DF92EF9267 +:101F5000FF920F931F93CF93DF93EC018B016A01E4 +:101F60000E940811811133C0C114D10439F0F60167 +:101F700080819181081B190BC80FD91FE12CF12C0E +:101F80000115110519F18091E80085FD16C08091B9 +:101F9000E8008E778093E800C114D10449F0F6017F +:101FA00080819181E80EF91EF182E08285E00FC008 +:101FB0000E940811882321F30AC089918093F100BF +:101FC00001501109FFEFEF1AFF0ADACF80E0DF912D +:101FD000CF911F910F91FF90EF90DF90CF900895D8 +:101FE0002091FB013091FC012617370748F061155D +:101FF000710539F42091E8002E772093E80001C0A4 +:10200000B90140E061157105A9F12091F401222385 +:1020100009F443C0253009F442C02091E80023FDB3 +:1020200040C02091E80022FD32C02091E80020FF4E +:10203000E9CF4091F3002091F20030E0342BFC0115 +:10204000CF016115710559F02830310540F48191B7 +:102050008093F100615071092F5F3F4FF1CF41E054 +:102060002830310509F040E02091E8002E772093D8 +:10207000E800C8CF4111C9CF0AC08091F40188237C +:1020800061F0853061F08091E80083FD0AC08091A5 +:10209000E80082FFF2CF80E0089582E0089583E0B7 +:1020A000089581E008952091FB013091FC012617ED +:1020B000370748F06115710539F42091E8002E7753 +:1020C0002093E80001C0B901FC0120E06115710511 +:1020D00091F18091F401882309F440C0853009F41E +:1020E0003FC08091E80083FD3DC08091E80082FD03 +:1020F0002FC08091E80080FFE9CF2091F30080910C +:10210000F20090E0922B6115710559F0883091052D +:1021100040F424912093F1003196615071090196A9 +:10212000F2CF21E0089709F020E08091E8008E7757 +:102130008093E800CBCF2111CCCF0AC08091F4016D +:10214000882361F0853061F08091E80083FD0AC04A +:102150008091E80082FFF2CF80E0089582E0089548 +:1021600083E0089581E00895982F973058F5909373 +:10217000E900981739F07091EC002091ED00509132 +:10218000F00003C0242F762F50E021FF19C03091BA +:10219000EB003E7F3093EB003091ED003D7F3093BC +:1021A000ED003091EB0031603093EB007093EC0068 +:1021B0002093ED005093F0002091EE0027FF07C020 +:1021C0009F5FD3CF8F708093E90081E0089580E016 +:1021D00008958091F50187FF11C08091E80082FD8C +:1021E00005C08091F4018111F8CF11C08091E80001 +:1021F0008B770BC08091F401882349F08091E8002F +:1022000080FFF8CF8091E8008E778093E8000895F2 +:102210002091E4003091E50095E64091EC00842F98 +:10222000817040FF22C08091E80080FD1CC0809139 +:10223000F401882391F0853091F08091EB0085FDC9 +:1022400010C04091E4005091E5004217530729F374 +:102250009A01915011F784E0089582E0089583E097 +:10226000089581E0089580E008954091E80042FFDC +:10227000DECF08950E94A8110E94B011E0EEF0E0B8 +:10228000808181608083E8EDF0E080818F778083BA +:1022900019BCA7EDB0E08C918E7F8C9380818F7EEE +:1022A00080831092F30108950F931F93CF93DF93D0 +:1022B0000E94A8110E94B011C8EDD0E088818F77EC +:1022C000888388818068888388818F7D888319BC12 +:1022D0001092F4011092F0011092F2011092F101AB +:1022E00000EE10E0F80180818B7F8083888181601F +:1022F000888342E060E080E00E94B410E1EEF0E00C +:1023000080818E7F8083E2EEF0E080818160808337 +:10231000808188608083F80180818E7F80838881BE +:1023200080618883DF91CF911F910F910895E8ED2F +:10233000F0E080818F7E8083E7EDF0E08081816036 +:10234000808384E082BF81E08093F3010C94541178 +:10235000E8EDF0E080818E7F80831092E2000895A6 +:102360001092DA001092E10008951F920F920FB6BA +:102370000F9211242F933F934F935F936F937F930B +:102380008F939F93AF93BF93EF93FF938091E1005F +:1023900082FF0BC08091E20082FF07C08091E100C4 +:1023A0008B7F8093E1000E94E30D8091DA0080FF33 +:1023B0001FC08091D80080FF1BC08091DA008E7F03 +:1023C0008093DA008091D90080FF0DC080E189BD43 +:1023D00082E189BD09B400FEFDCF81E08093F40164 +:1023E0000E94BC0D05C019BC1092F4010E94CE0DD4 +:1023F0008091E10080FF19C08091E20080FF15C04C +:102400008091E2008E7F8093E2008091E200806103 +:102410008093E2008091D80080628093D80019BC3C +:1024200085E08093F4010E94D90D8091E10084FF42 +:1024300030C08091E20084FF2CC080E189BD82E140 +:1024400089BD09B400FEFDCF8091D8008F7D8093B7 +:10245000D8008091E1008F7E8093E1008091E200BE +:102460008F7E8093E2008091E20081608093E200A1 +:102470008091F001882311F084E007C08091E3008F +:1024800087FD02C081E001C083E08093F4010E94D7 +:10249000DD0D8091E10083FF29C08091E20083FF80 +:1024A00025C08091E100877F8093E10082E08093E6 +:1024B000F4011092F0018091E1008E7F8093E100A1 +:1024C0008091E2008E7F8093E2008091E200806143 +:1024D0008093E20042E060E080E00E94B4108091CE +:1024E000F00088608093F0000E94D50DFF91EF917D +:1024F000BF91AF919F918F917F916F915F914F911C +:102500003F912F910F900FBE0F901F9018951F9223 +:102510000F920FB60F9211242F933F934F935F9317 +:102520006F937F938F939F93AF93BF93CF93DF93DB +:10253000EF93FF93C091E900CF708091EC00D82F0A +:10254000D17080FDD0E81092E9008091F000877F83 +:102550008093F00078940E94CB121092E900809151 +:10256000F00088608093F000CD2BCF70C093E9001D +:10257000FF91EF91DF91CF91BF91AF919F918F919B +:102580007F916F915F914F913F912F910F900FBE6F +:102590000F901F9018951F93CF93DF93CDB7DEB7A1 +:1025A000AA970FB6F894DEBF0FBECDBFE5EFF1E0FE +:1025B00088E08E0F9091F10091938E13FBCF0E94D3 +:1025C0003D0E8091E80083FF1FC18091F50190913D +:1025D000F601492F50E04A30510508F015C1FA01C3 +:1025E000EA5AFF4F0C945229803881F0823809F062 +:1025F0000BC18091F9018F708093E9008091EB000D +:1026000085FB882780F91092E90006C08091F101CE +:102610009091F201911182609091E800977F9093E0 +:10262000E8008093F1001092F100C8C0282F2D7FA0 +:1026300009F0EAC0882319F0823061F0E5C080918A +:10264000F701813009F0E0C0933009F080E0809319 +:10265000F2012BC08091F701811127C08091F9010F +:102660008F7009F4D1C08093E9002091EB0020FF26 +:102670001CC0933021F48091EB00806214C09091D3 +:10268000EB0090619093EB0021E030E0A90102C0E3 +:10269000440F551F8A95E2F74093EA001092EA0032 +:1026A0008091EB0088608093EB001092E9008091AC +:1026B000E800877F86C08111A7C01091F7011F77BE +:1026C0008091E3008078812B8093E3008091E80083 +:1026D000877F8093E8000E94E9108091E80080FFE6 +:1026E000FCCF8091E30080688093E300111102C069 +:1026F00082E001C083E08093F40186C0805882307C +:1027000008F082C08091F7019091F8018C3D53E070 +:10271000950779F583E08A838AE289834FB7F89435 +:10272000DE01139620E03EE051E2E32FF0E050930B +:102730005700E49120FF03C0E295EF703F5FEF7018 +:102740008E2F90E0EA3010F0C79601C0C0968D93AE +:102750009D932F5F243149F74FBF8091E800877F19 +:102760008093E8006AE270E0CE0101960E94F00FCB +:1027700014C0AE014F5F5F4F6091F9010E94370FA7 +:10278000BC01009709F440C09091E800977F9093B6 +:10279000E80089819A810E9453108091E8008B772C +:1027A0008093E80031C0803879F58091E800877F18 +:1027B0008093E8008091F0018093F1008091E8001F +:1027C0008E778093E8000E94E9101EC081111CC022 +:1027D0009091F7019230C0F48091E800877F809358 +:1027E000E8009093F0010E94E9108091F0018111BE +:1027F00006C08091E30087FD02C081E001C084E053 +:102800008093F4010E94240E8091E80083FF0AC0A7 +:102810008091E800877F8093E8008091EB008062E0 +:102820008093EB00AA960FB6F894DEBF0FBECDBF23 +:10283000DF91CF911F910895CF938091F401882368 +:10284000A1F0C091E900CF709091EC00892F8170C8 +:1028500090FD80E8C82B1092E9008091E80083FD8C +:102860000E94CB12CF70C093E900CF91089590934E +:10287000800180937F010895E0917F01F0918001B4 +:10288000309721F00190F081E02D099480E00895C7 +:10289000EF92FF920F931F93CF93DF93E0917F010D +:1028A000F09180013097B1F18C010280F381E02D2D +:1028B00009958091DF0182FF2DC080FF04C084E470 +:1028C00095E00E94C406E80110E18EE3E82E85E061 +:1028D000F82E8091DF0180FF0BC088811F928F93BB +:1028E000FF92EF920E945D070F900F900F900F9054 +:1028F000115021961111EDCF8091DF0180FF0AC0A8 +:102900008CE395E0DF91CF911F910F91FF90EF90B5 +:102910000C94C406DF91CF911F910F91FF90EF901F +:102920000895E0917F01F0918001309721F00480BB +:10293000F581E02D0994089520917D0130917E016B +:102940008217930771F090937E0180937D01E0914F +:102950007F01F0918001309721F00680F781E02D12 +:102960000994089520917B0130917C01821793078F +:1029700071F090937C0180937B01E0917F01F09155 +:102980008001309721F00084F185E02D09940895AD +:1029900008950C94C8140E9491200E944A0B0C9434 +:1029A0001721CF93DF931F92CDB7DEB79091DF0150 +:1029B00092FF10C090FF0EC01F928F9326E535E066 +:1029C0003F932F9389830E945D070F900F900F9084 +:1029D0000F9089810F90DF91CF910C94340B5F920F +:1029E0006F927F928F929F92AF92BF92CF92DF921F +:1029F000EF92FF920F931F93CF93DF9300D000D0FD +:102A00001F92CDB7DEB70E948F0B9AE8C92E91E0D6 +:102A1000D92E03E010E0AA24A394B12C502E802FCD +:102A20000E94200C4C01F601729062906F016826A2 +:102A3000792661147104A1F40150110978F78FEF20 +:102A400089838A831B820E949A208160782F9D83CC +:102A50008C8349815A816B818D810E949F1538C07A +:102A60008091DF0181FD0E94290C2AE030E0750190 +:102A7000022E02C0EE0CFF1C0A94E2F7C701862169 +:102A80009721892B09F129835A828E209F2091E07A +:102A9000892809F490E09B830E949A208160782F16 +:102AA0009D838C8349815A816B818D810E949F1502 +:102AB000000F111FF801EE57FE4F80819181E8262B +:102AC000F926F182E08204C02150310980F6B4CFAA +:102AD0000E946423109181010E943C141817D1F0C8 +:102AE0000E943C14809381010F900F900F900F90E3 +:102AF0000F90DF91CF911F910F91FF90EF90DF909A +:102B0000CF90BF90AF909F908F907F906F905F908D +:102B10000C94D1140F900F900F900F900F90DF91A5 +:102B2000CF911F910F91FF90EF90DF90CF90BF90CA +:102B3000AF909F908F907F906F905F900895CF930C +:102B4000DF93CDB7DEB72B970FB6F894DEBF0FBE7D +:102B5000CDBF4F83588769877A878B87DE011196AF +:102B600086E0FD0111928A95E9F785E0FE0137962E +:102B700001900D928A95E1F749815A816B817C81A0 +:102B80008D819E810E94F01B2B960FB6F894DEBFBC +:102B90000FBECDBFDF91CF910895CF93882309F465 +:102BA000C2C0C82F823859F40E943C1481FDBBC0BA +:102BB00089E30E94CA1E0E94B91F89E30CC08338B2 +:102BC00079F40E943C1480FDAEC083E50E94CA1EC9 +:102BD0000E94B91F83E50E941D1FCF910C94B91F5D +:102BE000843859F40E943C1482FD9DC087E40E9401 +:102BF000CA1E0E94B91F87E4EECF8CEF8C0F813A7A +:102C000048F48C2F0E94BB2681118DC08C2F0E940E +:102C1000CA1EE3CF80E28C0F883048F4C77081E091 +:102C200001C0880FCA95EAF70E94721FD6CF8BE5C4 +:102C30008C0F833078F4C53A29F0C63A31F083E836 +:102C400090E005C081E890E002C082E890E0CF917A +:102C50000C949C1488E58C0F833108F064C0C83A4A +:102C600039F1C93A41F1CA3A49F1CB3A51F1CC3A7A +:102C700059F1CD3A61F1C03B69F1CE3A71F1CF3AE9 +:102C800079F1C13B81F1C23B89F1C33B91F1C43B76 +:102C900099F1C53BA1F1C63BA9F1C73BB1F1C83BD6 +:102CA000B9F1C93BC1F1CA3BC9F180E090E038C03D +:102CB00082EE90E035C089EE90E032C08AEE90E07E +:102CC0002FC085EB90E02CC086EB90E029C087EB0D +:102CD00090E026C08CEC90E023C08DEC90E020C00A +:102CE00083E891E01DC08AE891E01AC082E991E092 +:102CF00017C084E991E014C081E292E011C083E240 +:102D000092E00EC084E292E00BC085E292E008C03F +:102D100086E292E005C087E292E002C08AE292E099 +:102D2000CF910C94B214CF910895882309F44BC02D +:102D3000823859F40E943C1481FF45C089E30E9407 +:102D4000CA1E0E94B91F89E30CC0833871F40E9427 +:102D50003C1480FF38C083E50E94CA1E0E94B91F40 +:102D600083E50E941D1F0C94B91F843859F40E94FA +:102D70003C1482FF28C087E40E94CA1E0E94B91F2B +:102D800087E4EFCF9CEF980F913A58F390E2980FB9 +:102D9000983050F4877091E001C0990F8A95EAF756 +:102DA000892F0E94781FDFCF9BE5980F933020F486 +:102DB00080E090E00C949C14885A833120F480E0E9 +:102DC00090E00C94B2140895882321F00E94721FA1 +:102DD0000C94B91F0895882321F00E94781F0C9449 +:102DE000B91F08957F928F929F92AF92BF92CF9218 +:102DF000DF92EF92FF920F931F93CF93DF931F9277 +:102E0000CDB7DEB77C01C62E772EFC010581029579 +:102E10000F70128111110E948F1F0E94C31E882300 +:102E200079F0112369F080E28C0D883048F082E05F +:102E30000E94AC1E0E94C31E91E0D82ED92601C06C +:102E4000D12CE72DE295EF70F0E0E05AFF4F0C94A3 +:102E50005229872D807F072D0F70882311F002954E +:102E6000007F112389F0002309F498C180E28C0DC2 +:102E7000883020F4802F0E94721F03C0802F0E9490 +:102E8000821F0E94B91F8AC18C2D0E9495160023B3 +:102E900009F49DC180E28C0D883020F4802F0E94BF +:102EA000781F03C0802F0E94881F0E94B91F8FC106 +:102EB000872D807F972D9F70803211F4892F03C05A +:102EC000892F8295807FCC2021F0F1E0CF16A1F0F0 +:102ED0001DC0112339F0002319F1013009F50E94BA +:102EE000A21F75C1002319F0013009F470C1898354 +:102EF0000E94A51F898110C1112321F0063008F01E +:102F000066C10EC0053008F062C106C1112359F038 +:102F1000002331F0F701958190FF40C19F709583A8 +:102F20000E94E41654C1002309F4F6C03DC1872D68 +:102F300086958695837090E0009719F0019761F06F +:102F400046C1112321F08C2D972D937002C080E093 +:102F500090E00E949C143BC1112321F08C2D972DF1 +:102F6000937002C080E090E00E94B21430C18C2DBA +:102F7000112319F00E94EA2102C00E9452220E94ED +:102F8000D72225C1872D837009F052C011111FC1AE +:102F90008C2D829586958770880F880F9C2D9F7049 +:102FA000892E912CA12CB12C082E04C0880C991CC0 +:102FB000AA1CBB1C0A94D2F7C4FE14C00FE010E098 +:102FC00020E030E0B901A80104C0440F551F661F7E +:102FD000771F8A95D2F7CB01BA01609570958095DD +:102FE000909503C060E070E0CB01272D26952695D3 +:102FF000237030E02230310569F02330310589F04B +:10300000682979298A299B292130310571F00E948C +:10301000381DDDC0682979298A299B290E94541D01 +:10302000D6C00E94381DC501B4010E941C1DCFC02E +:10303000112319F0872D817001C08695882309F42A +:10304000C6C08C2D829586958770880F880F9C2D21 +:103050009F70892E912CA12CB12C082E04C0880CB5 +:10306000991CAA1CBB1C0A94D2F7C4FE14C00FE022 +:1030700010E020E030E0B901A80104C0440F551F62 +:10308000661F771F8A95D2F7CB01BA0160957095BC +:103090008095909503C060E070E0CB01272D2695C8 +:1030A00026952370422F50E04230510569F043309D +:1030B000510589F0682979298A299B2941305105D0 +:1030C00071F00E94121E83C0682979298A299B29E0 +:1030D0000E942E1E7CC00E94121EC501B4010E94D7 +:1030E000F61D75C08C2D90E0FC01E05EF109E53124 +:1030F000F10508F04FC0E059FF4F0C9452290C2DF8 +:103100000F70872D8F71112321F00E948F1D802F4A +:1031100007CF0E94B01D802F0E94EB1658C01123CC +:1031200041F0053008F053C0872D8F710E94D51DE6 +:103130004EC0063008F04BC0F7CF112339F0872D71 +:103140008F710E948F1D43C01123C9F3872D8F718A +:103150000E94B01D3CC0112329F0872D8F710E9461 +:103160007A1D35C00E94701D32C0112351F0172DF9 +:103170001F71812F0E948F1D63E0812F0E94A31E6B +:1031800026C081E00E94AC1E023008F182E00E945D +:10319000AC1E1DC0112331F0002389F28C2D0E943A +:1031A000CD1515C0002391F28C2D0E9495160FC0ED +:1031B000472D4F706C2DC7010E9476070E94941C0A +:1031C00006C0472D4F706C2DC7010E943908DD20C5 +:1031D000F9F00E949F1E80FD1BC0F70112820E9421 +:1031E000991E0E948F1DC7010E9417190E94991EE7 +:1031F0000F90DF91CF911F910F91FF90EF90DF9093 +:10320000CF90BF90AF909F908F907F900C94B01D07 +:103210000F90DF91CF911F910F91FF90EF90DF9072 +:10322000CF90BF90AF909F908F907F9008950F9315 +:103230001F93CF93DF93EC01888199812B813C818F +:10324000232BB9F09F3F11F48F3F99F0CE010E94DC +:103250008D07882371F0688179818A810E94951E8B +:103260008C010E944A1E0E94111DB801CE010E94CD +:10327000F216DF91CF911F910F9108950E948F1F39 +:103280000E949F1F0E94641F0E94B91F0E940A246F +:103290000E94D72280E090E00E949C1480E090E0A1 +:1032A0000C94B2140E947F1F0C943E190E948A1E37 +:1032B000292F22952F7030E02C3031054CF42A3024 +:1032C00031056CF42250310922303105A8F407C0D1 +:1032D0002C30310569F02F30310551F00DC0803FA1 +:1032E00069F018F4803E40F409C0843F29F406C018 +:1032F00093FB882780F9089580E0089581E0089580 +:10330000CF93DF9300D000D01F92CDB7DEB70F90E0 +:103310000F900F900F900F90DF91CF910895CF9362 +:10332000DF9300D000D000D0CDB7DEB726960FB621 +:10333000F894DEBF0FBECDBFDF91CF9108951F93EC +:10334000CF93DF93C0918A0116E080918B01C8175B +:1033500099F0D0E01C9FF0011D9FF00D1124E4575F +:10336000FE4F4081518162817381848195810E94E9 +:103370008F192196C770E9CFDF91CF911F910895E2 +:103380004091BC015091BD016091BE017091BF019F +:103390008091C0019091C1010C948F198091C1015D +:1033A00082958F7009F054C08091BE01882309F482 +:1033B0004FC080918A01A0918B016091BC017091F6 +:1033C000BD014091BF015091C001B6E08A1709F4D8 +:1033D0003FC090E041155105C1F17F3F11F46F3FAF +:1033E000A1F1B89FF001B99FF00D1124E457FE4FF1 +:1033F000218172132AC02081621327C022812111EA +:1034000024C0238134812417350710F42150310959 +:10341000241B350B283C3105C0F42091C1012F70CD +:1034200020612093C10126E0289FF001299FF00D23 +:103430001124EF56FE4F80818F70806180838CEB6A +:1034400091E00E9417190C949F1901968770BECFC6 +:103450000895CF92DF92EF92FF920F931F93CF9335 +:10346000DF93CDB7DEB762970FB6F894DEBF0FBE1D +:10347000CDBF8C0185E0F801DE011D9601900D9213 +:103480008A95E1F7D8014C9111965C9111971296AB +:103490006C9112971396CD90DC9014973091BC01EB +:1034A0007091BD018091BF019091C001009709F416 +:1034B0006BC17F3F19F43F3F09F466C1E090BE0144 +:1034C000EE2009F4C0C02091C101C816D90628F029 +:1034D000F601E81BF90BCF0104C0809590958C0D87 +:1034E0009D1DFF24F394883C910578F0F12C207FFA +:1034F00009F0C6C07C2DD98AC88A89890E948019A2 +:103500008CEB91E00E941719B1C0822F807F09F0E7 +:1035100046C0751314C0341312C0611110C02F704F +:1035200020612093C1010E94C0198CEB91E00E94A0 +:1035300017198091C101D80115968C932EC0CD2802 +:1035400019F15F3F11F44F3FF9F0F62E61111CC0E5 +:1035500080918A0120918B0136E0821709F45AC0CC +:1035600090E0389FF001399FF00D1124E457FE4F91 +:103570007181571306C07081471303C072817111A6 +:1035800003C001968770E9CFF62E662309F418C1AF +:103590008091C10181608093C101F12C11C175132B +:1035A00008C0341306C0611104C08091C101D80164 +:1035B000C3C04D875E878D859E856A8B0E94561994 +:1035C0006A898823E1F16623D1F12091C101822F1C +:1035D00082958F7090E0029774F08091BC01909179 +:1035E000BD0198878F831986DB86CA862C87CE011A +:1035F00007960E94171986E0F801ACEBB1E0019044 +:103600000D928A95E1F70E94CE190E94C019FF24FD +:10361000F394D6C04D875E878D859E850E948A1E55 +:10362000292F22952F7030E0223031050CF0BCC0DC +:103630009F7009F0B6C0805E883008F4C1C0C80130 +:103640000E941719E4CFC816D90608F453C0F60132 +:10365000E81BF90BCF01883C910508F450C0F12C10 +:103660007C2DD98AC88A89890E948019ECEBF1E007 +:1036700086E0DF011D928A95E9F70E94C019A0C07B +:10368000751314C0341312C0611110C08091C101B0 +:10369000F8018583C8010E94171986E0ECEBF1E080 +:1036A000DF011D928A95E9F7FE2C8AC04D875E875F +:1036B0008D859E856A8B0E9456196A89882309F434 +:1036C000BECF662309F4BBCF2091C101822F829522 +:1036D0008F7090E002970CF48ECF8091BC01909196 +:1036E000BD019A8389831B82DD82CC822E83CE0129 +:1036F00001967FCF809590958C0D9D1DACCFF62EB9 +:10370000662309F49CCF75132EC034132CC020916E +:10371000C10120FD1FC0822F82958F70D9F0D80182 +:1037200015962C9315978F3049F08F5F982F9295AF +:10373000907F822F8F70892B15968C93C8010E94E1 +:10374000171986E0F801ACEBB1E001900D928A9573 +:10375000E1F793CF86E0F801ACEBB1E001900D9278 +:103760008A95E1F72DC04D875E878D859E850E94E5 +:103770005619811140CF8091C10181608093C101B0 +:10378000C8010E9417191CC0662309F458CF4D8741 +:103790005E878D859E850E945619882309F44FCF38 +:1037A0002ACF811148CF0CC0243031050CF047CF0F +:1037B0009F7009F440CFF8019581907F09F03BCFCD +:1037C0008F2D62960FB6F894DEBF0FBECDBFDF918E +:1037D000CF911F910F91FF90EF90DF90CF900895C0 +:1037E0001F93CF93DF93CDB7DEB72C970FB6F89426 +:1037F000DEBF0FBECDBF4F83588769877A878B871F +:103800009C87CE0107960E94291A882369F08F8130 +:1038100098852A853B85232BF1F19F3F09F063C0F2 +:103820008F3F09F060C037C086E0FE013796DE01A9 +:10383000119601900D928A95E1F76F817885EA855E +:10384000FB85309741F17F3F11F46F3F21F12091CB +:103850008B0130E0C90101968770992740918A0158 +:1038600050E08417950709F447C069837A83FD8384 +:10387000EC8396E0929FD001939FB00D1124A45742 +:10388000BE4FFE01319601900D929A95E1F780931B +:103890008B010E949F1916E080918A0190918B0103 +:1038A0008917C1F1189FC001112484579E4F0E94AF +:1038B000291A882379F1E0918A011E9FF0011124D1 +:1038C000E457FE4F408151816281738184819581EB +:1038D0000E948F1980918A0190E001968770992744 +:1038E00080938A01D9CF4F81588569857A858B85E8 +:1038F0009C850E948F19CFCF0E94521910928B0184 +:1039000010928A01ECEBF1E086E0DF011D928A95CE +:10391000E9F7C1CF2C960FB6F894DEBF0FBECDBF2E +:10392000DF91CF911F910895EF92FF920F931F9314 +:10393000CF93DF938C01009709F46CC0F12CEE2437 +:10394000E394E8012196F8018491843740F48430AF +:1039500008F051C0813081F0823019F15BC08537A9 +:1039600009F444C0A8F19CE7980F903708F052C0C2 +:103970008F770E94951641C00E5F1F4FFE01C491C4 +:1039800080E28C0F883048F4C7708E2D01C0880FFC +:10399000CA95EAF70E94921F14C08C2F0E94CD1581 +:1039A0002DC00E5F1F4FFE01C49180E28C0F883046 +:1039B00058F4C7708E2D01C0880FCA95EAF70E948F +:1039C000981F0E94B91F1AC08C2F0E94951616C00E +:1039D0000E5F1F4FFE01C491CC2381F08FE99FE061 +:1039E0000197F1F700C00000C150F6CF0E5F1F4FE6 +:1039F000FE01F49003C00E94CD158E018F2D882307 +:103A000009F49FCFEFE9FFE03197F1F700C0000024 +:103A10008150F5CFDF91CF911F910F91FF90EF90E3 +:103A2000089508956093C6017093C7018093C801FB +:103A30009093C9010C943E190F931F930091C601F6 +:103A40001091C7012091C8013091C901DC01CB015F +:103A5000802B912BA22BB32B8093C6019093C7018F +:103A6000A093C801B093C9011F910F910C943E1906 +:103A70000F931F930091C6011091C7012091C801B7 +:103A80003091C901DC01CB0180239123A223B32310 +:103A90008093C6019093C701A093C801B093C90158 +:103AA0001F910F910C943E190F931F930091C60123 +:103AB0001091C7012091C8013091C901DC01CB01EF +:103AC00080279127A227B3278093C6019093C7012F +:103AD000A093C801B093C9011F910F910C943E1996 +:103AE0001092C2011092C3011092C4011092C5013C +:103AF0000C943E1941E050E060E070E004C0440FD7 +:103B0000551F661F771F8A95D2F74093C2015093C5 +:103B1000C3016093C4017093C5010C943E1941E048 +:103B200050E060E070E004C0440F551F661F771F2F +:103B30008A95D2F78091C2019091C301A091C401EE +:103B4000B091C501482B592B6A2B7B2B4093C201A6 +:103B50005093C3016093C4017093C5010C943E1946 +:103B600041E050E060E070E004C0440F551F661F64 +:103B7000771F8A95D2F74095509560957095809102 +:103B8000C2019091C301A091C401B091C501482325 +:103B900059236A237B234093C2015093C30160934E +:103BA000C4017093C5010C943E1941E050E060E0FF +:103BB00070E004C0440F551F661F771F8A95D2F727 +:103BC0008091C2019091C301A091C401B091C5013F +:103BD000482759276A277B274093C2015093C30186 +:103BE0006093C4017093C5010C943E190F931F9309 +:103BF0000091C2011091C3012091C4013091C5010F +:103C0000DC01CB01802B912BA22BB32B8093C20123 +:103C10009093C301A093C401B093C5011F910F916C +:103C20000C943E190F931F930091C2011091C30190 +:103C30002091C4013091C501DC01CB018023912387 +:103C4000A223B3238093C2019093C301A093C40124 +:103C5000B093C5011F910F910C943E190F931F93C0 +:103C60000091C2011091C3012091C4013091C5019E +:103C7000DC01CB0180279127A227B3278093C201C3 +:103C80009093C301A093C401B093C5011F910F91FC +:103C90000C943E190895CF92DF92EF92FF920F930A +:103CA0001F93CF93DF938C01C090C601D090C701C2 +:103CB000E090C801F090C9018091C2019091C301C8 +:103CC000A091C401B091C501C82AD92AEA2AFB2AC9 +:103CD000CFE1D0E0D701C6010C2E04C0B695A79560 +:103CE000979587950A94D2F780FF06C0B8018C2F6C +:103CF0000E94990A019721F4219760F780E001C0A2 +:103D00008C2FDF91CF911F910F91FF90EF90DF905B +:103D1000CF900895CF93DF93EC010E944B1EBE011C +:103D20000E94990ADF91CF910895CB010E948A1ECB +:103D300008958091CA01859585958595089580910E +:103D4000CA018770089598E0899F90011124262B5D +:103D50002093CA010C948F1D2091CA018095822363 +:103D60008093CA01982F977069F430E0482F552747 +:103D700047FD50952417350729F08595859585953C +:103D80000C94B01D08959091CA01977081E009F4D8 +:103D900080E0089590910B01992321F090910C01FE +:103DA000911109C020910D0130910E01F901329657 +:103DB0009FEF40E030C0982F9695969596959F304E +:103DC000A0F4E0910D01F0910E01E90FF11D877053 +:103DD00021E030E0A90102C0440F551F8A95E2F7A7 +:103DE000CA019181892B818308959091DF0190FF11 +:103DF00023C01F928F938DE895E09F938F930E942D +:103E00005D070F900F900F900F9008959F3F39F02E +:103E10004F5F4E3041F051915813F8CF0DC0511102 +:103E2000F7CF942FF5CF9F3F39F0F901E90FF11D3E +:103E300097FDFA9582830895089590910B01992337 +:103E400021F090910C01911109C020910D01309148 +:103E50000E01F9013296205F3F4F30C0982F9695A2 +:103E6000969596959F30A8F4E0910D01F0910E0182 +:103E7000E90FF11D877021E030E0A90102C0440F75 +:103E8000551F8A95E2F7CA01809591818923818324 +:103E900008959091DF0190FF16C01F928F938FE6D7 +:103EA00095E09F938F930E945D070F900F900F9066 +:103EB0000F9008953196E217F30729F09081981337 +:103EC000F9CF1082F7CF089581E090E0E0910D01E5 +:103ED000F0910E01E80FF91F1082019680319105D3 +:103EE000A9F708959091DE01892B8093DE01089552 +:103EF00080959091DE0189238093DE0108951092D0 +:103F0000DE0108959091DD01892B8093DD010895F4 +:103F100080959091DD0189238093DD0108951092B1 +:103F2000DD0108959091DC01892B8093DC010895D7 +:103F300080959091DC0189238093DC010895109293 +:103F4000DC0108958093CB0108951092CB01089570 +:103F500080910D0190910E01FC0131969C01205F32 +:103F60003F4F80E0919191118F5FE217F307D1F7F6 +:103F70000895E0910D01F0910E018091DE018083A2 +:103F8000E0910D01F0910E0190818091DD01892B6E +:103F90008083E0910D01F0910E0190818091DC0110 +:103FA000892B80838091CB01882361F0E0910D0102 +:103FB000F0910E019081892B80830E94A81F8111AE +:103FC0001092CB0180910D0190910E010C94481438 +:103FD0009093490180934801089520E0009739F0BB +:103FE000AC0141505109842395232F5FF7CF822FD5 +:103FF00008958295982F9C7C392F36953695282FD9 +:10400000237344E0249FC0011124932F982B292F60 +:104010002A7A2695892F8575880F822B08951F93FC +:10402000CF93DF931F92CDB7DEB799830E94F91F1C +:10403000182F9981892F0E94F91F212F30E0322FEC +:104040002227A901482BCA010F90DF91CF911F9120 +:1040500008958091F401843021F11092E00120E470 +:1040600088E190E00FB6F894A895809360000FBEA9 +:104070002093600080E00E94340B83B7817F8460CE +:1040800083BF83B7816083BF7894889583B78E7F21 +:1040900083BF88E10FB6F8948093600010926000AF +:1040A0000FBE0895089508950E9452200E948F0B1C +:1040B0000E9453200E94630C91E0811101C090E0A6 +:1040C000892F08950E9452190E943C140C94340BBD +:1040D0001F920F920FB60F9211248F939F93AF935D +:1040E000BF938091E001811113C08091E101909113 +:1040F000E201A091E301B091E4014196A11DB11D3F +:104100008093E1019093E201A093E301B093E40175 +:10411000BF91AF919F918F910F900FBE0F901F9005 +:10412000189582E084BD93E095BD9AEF97BD80938A +:104130006E0008952FB7F8948091E1019091E2010B +:10414000A091E301B091E4012FBF0895CF92DF92D7 +:10415000EF92FF920F931F932FB7F8944091E101D4 +:104160005091E2016091E3017091E4012FBF6A0177 +:104170007B01EE24FF248C0120E030E0C016D10644 +:10418000E206F30610F4415051099A01281B390B3D +:10419000C9011F910F91FF90EF90DF90CF9008958C +:1041A0001F920F920FB60F9211248F939F93AF938C +:1041B000BF938091E1019091E201A091E301B09160 +:1041C000E4010196A11DB11D8093E1019093E201EC +:1041D000A093E301B093E401BF91AF919F918F91C0 +:1041E0000F900FBE0F901F9018950E943A11F894EF +:1041F0002FEF87EA91E6215080409040E1F700C020 +:10420000000087E090EBDC018093FE019093FF01BA +:10421000A0930002B09301029CE088E10FB6F894ED +:10422000A895809360000FBE90936000FFCF0E941E +:104230004C21811102C00E9432210E94572180939B +:10424000DF010E945F218093FD0187FB882780F9B1 +:1042500080930C010E945B21682F70E080E090E069 +:104260000C94121D6DEE7EEF80E090E00E948C2990 +:1042700060E082E090E00E947A2960E083E090E0D4 +:104280000E947A2960E084E090E00E947A2960E050 +:1042900085E090E00C947A2980E090E00E947429F7 +:1042A00021E08D3E9E4F09F020E0822F089582E0AC +:1042B00090E00C946C2983E090E00C946C2984E0ED +:1042C00090E00C946C29682F84E090E00C947A299B +:1042D0008091E70180FF0BC06091120185E0689F2B +:1042E000B001112475956795759567952BC081FF71 +:1042F00009C06091120185E0689FB0011124759595 +:10430000679520C082FF07C06091120185E0689F19 +:10431000B001112417C09091E8019923D1F0609168 +:104320001101961788F72091120185E0289F9001CE +:104330001124929FA001939F500D112470E0CA0197 +:104340000E943E296038710540F46115710539F00D +:1043500002C065E070E0862F08958FE7089581E040 +:1043600008958091E70180FF08C06091100170E01E +:10437000759567957595679521C081FF06C0609119 +:10438000100170E07595679519C082FF04C06091B7 +:10439000100170E010C09091E8019923C1F0609184 +:1043A0000F019617A0F780911001899FC001112479 +:1043B00070E00E943E296038710528F4611571058E +:1043C00021F0862F08958FE7089581E0089561E038 +:1043D00070E0F4CF803F21F40E946821819504C0F1 +:1043E000813F29F40E9468218093EB010895823F68 +:1043F00021F40E946821819504C0833F29F40E9422 +:1044000068218093EA010895893F19F40E94B1213F +:1044100005C08A3F31F40E94B12181958093EC015F +:1044200008958B3F21F40E94B121819504C08C3FF7 +:1044300029F40E94B1218093ED010895843F21F475 +:104440008091E901816017C0853F21F48091E901E5 +:10445000826011C0863F21F48091E90184600BC025 +:10446000873F21F48091E901886005C0883F31F4DD +:104470008091E90180618093E90108958D3F21F4E5 +:104480008091E70181600BC08E3F21F48091E701AC +:10449000826005C08F3F29F48091E701846080939A +:1044A000E7010895803F39F48091EB0187FF6CC0EC +:1044B0001092EB0169C0813F29F48091EB0118163D +:1044C000BCF362C09091EA01823F29F497FF5CC07F +:1044D0001092EA0159C0833F19F41916CCF354C065 +:1044E000893F41F48091EC0118160CF04DC01092F8 +:1044F000EC014AC08A3F29F48091EC0187FF44C057 +:10450000F6CF8B3F39F48091ED0187FF3DC01092CB +:10451000ED013AC08C3F29F48091ED011816BCF3EF +:1045200033C0843F21F48091E9018E7F17C0853F1D +:1045300021F48091E9018D7F11C0863F21F48091A3 +:10454000E9018B7F0BC0873F21F48091E901877FD0 +:1045500005C0883F31F48091E9018F7E8093E901A5 +:1045600013C08D3F21F48091E7018E7F0BC08E3FF9 +:1045700021F48091E7018D7F05C08F3F29F4809160 +:10458000E7018B7F8093E7018091EA0181110EC0E2 +:104590008091EB0181110AC08091EC01811106C06C +:1045A0008091ED01811102C01092E801089580917F +:1045B000DF0183FF7EC082ED95E00E94C4068091FA +:1045C000E9011F928F938DEC95E09F938F930E944A +:1045D0005D078BEC95E00E94C4068091EA01282FCC +:1045E000332727FD30953F938F9388EC95E09F9379 +:1045F0008F930E945D0786EC95E00E94C40680912F +:10460000EB01282F332727FD30953F938F9383ECC1 +:1046100095E09F938F930E945D0781EC95E00E9447 +:10462000C4068091EC01282F332727FD30953F9356 +:104630008F938EEB95E09F938F930E945D078CEB99 +:1046400095E00E94C4068091ED01282F332727FDB5 +:1046500030953F938F9389EB95E09F938F930E94C2 +:104660005D0786EB95E00E94C4068091E8011F92E9 +:104670008F9383EB95E09F938F930E945D0781EB6F +:1046800095E00E94C4068091E7011F928F938EEA05 +:1046900095E09F938F930E945D078BEA95E00E94BF +:1046A000C4068DB79EB74C960FB6F8949EBF0FBE4A +:1046B0008DBF89EE91E00E9491140E949A20909300 +:1046C000E6018093E50108951F93CF93DF938091D6 +:1046D000E5019091E6010E94A620AC019091E801CD +:1046E000992321F02091130130E006C0209114019C +:1046F0008AE0289F900111244217530708F486C0CE +:104700008091EA01C091EB01D091EC011091ED0193 +:10471000811107C0C11176C0D11174C0111172C0CE +:1047200075C09F3F19F09F5F9093E801181624F41D +:104730000E9468218093EA018091EA0187FF05C009 +:104740000E94682181958093EA011C1624F40E943E +:1047500068218093EB018091EB0187FF05C00E94E7 +:10476000682181958093EB016091EA01662339F11C +:10477000C091EB01CC2319F1772767FD7095872F46 +:10478000972F0E94432823E333E343E35FE30E9430 +:10479000A7280E9410286093EA016C2F772767FDF5 +:1047A0007095872F972F0E94432823E333E343E339 +:1047B0005FE30E94A7280E9410286093EB011D165A +:1047C00024F40E94B1218093EC018091EC0187FFD9 +:1047D00005C00E94B12181958093EC01111624F44B +:1047E0000E94B1218093ED018091ED0187FF05C00A +:1047F0000E94B12181958093ED01DF91CF911F91AE +:104800000C94D7229F3F09F08ECF96CFDF91CF91A6 +:104810001F910895E9EEF1E085E0DF011D928A9590 +:10482000E9F71092E8011092E701089585EF97E00B +:104830000E94C4061F9281E08F931F9285E08F93A0 +:1048400087EA97E09F938F930E945D070F900F90E8 +:104850000F900F900F900F9008958330E9F128F496 +:10486000813061F0823009F10895853009F462C029 +:1048700008F449C0863009F474C008958091140189 +:10488000262F30E0280F311D2F3F310524F4680F0B +:104890006093140103C08FEF809314018091140181 +:1048A0001F928F9380EE96E072C080911301262FA5 +:1048B00030E0280F311D2F3F310524F4680F60933D +:1048C000130103C08FEF80931301809113011F9296 +:1048D0008F938EEC96E05BC080911201262F30E022 +:1048E000280F311D2F3F310524F4680F609312010A +:1048F00003C08FEF80931201809112011F928F935A +:104900008BEB96E044C080911101262F30E0280FF8 +:10491000311D2F3F310524F4680F6093110103C04E +:104920008FEF80931101809111011F928F9386EA7E +:1049300096E02DC080911001262F30E0280F311D08 +:104940002F3F310524F4680F6093100103C08FEFEF +:1049500080931001809110011F928F938DE896E053 +:1049600016C080910F01262F30E0280F311D2F3FF8 +:10497000310524F4680F60930F0103C08FEF80931B +:104980000F0180910F011F928F9382E796E09F9312 +:104990008F930E945D070F900F900F900F900895D6 +:1049A000833081F128F4813059F08230D1F00895BC +:1049B000853009F449C0B8F1863009F456C008952D +:1049C00080911401681720F4861B8093140102C0A3 +:1049D00010921401809114011F928F9383E696E048 +:1049E00054C080911301681720F4861B8093130133 +:1049F00002C010921301809113011F928F9381E5E1 +:104A000096E043C080911201681720F4861B8093C2 +:104A1000120102C010921201809112011F928F9315 +:104A20008EE396E032C080911101681720F4861B56 +:104A30008093110102C010921101809111011F9207 +:104A40008F9389E296E021C080911001681720F4CD +:104A5000861B8093100102C01092100180911001FA +:104A60001F928F9380E196E010C080910F0168172C +:104A700020F4861B80930F0102C010920F018091D9 +:104A80000F011F928F9385EF95E09F938F930E9464 +:104A90005D070F900F900F900F900895CF93C82F40 +:104AA0001F928F938AEF98E09F938F930E945D07E8 +:104AB00081E090E0A0E0B0E0BC01CD0104C0660F51 +:104AC000771F881F991FCA95D2F70E94121D0F9059 +:104AD0000F900F900F90CF910C945219CF93873273 +:104AE000A8F58E3108F035C1803109F4A5C0F8F47D +:104AF000873009F465C0A8F4863009F030C1809190 +:104B0000DF01817F8E7F8093DF018FE79AE00E9433 +:104B1000C40680EE9CE00E94C40681E08093EF0111 +:104B20004DC08B30F1F18E3009F472C018C186315E +:104B300009F4B6C020F4813109F4F9C010C18931FB +:104B400009F497C08B3109F44FC009C1883349F18A +:104B500050F4893209F4FFC0853309F4FCC0873270 +:104B600009F4F9C0FCC0833409F4F5C028F48A3391 +:104B700008F4F5C08953F0C0883409F0F0C00E94F1 +:104B8000521984EC9CE00E94C4062FEF83ED90E361 +:104B9000215080409040E1F700C000000E94F520C5 +:104BA0000DC086EA9AE062C08BEA9CE00E94C406CF +:104BB0008091DF01897F877F8093DF01C1E0D4C0CE +:104BC0008091DF01C82FC095C170C0FB80F9809330 +:104BD000DF01CC2349F388EB9CE00E94C40680915E +:104BE000DF01866088603DC09091DF0191FBCC279A +:104BF000C0F981E0C827892FC0FB81F98093DF01CC +:104C0000CC2319F08EE99CE027C080E99CE02EC0FF +:104C10009091DF0192FBCC27C0F981E0C827892F52 +:104C2000C0FB82F98093DF01CC2319F081E89CE07E +:104C300013C081E79CE01AC09091DF0193FBCC2761 +:104C4000C0F981E0C827892FC0FB83F98093DF0179 +:104C5000CC2351F085E69CE00E94C4068091DF01E0 +:104C600081608093DF0180C088E59CE00E94C406DB +:104C7000A5CF80E79AE00E94C40685E49AE00E94EE +:104C8000C4068BE09AE00E94C4068EED99E00E9473 +:104C9000C40683EA99E00E94C40688E799E0E6CF5B +:104CA0008AE699E00E94C4060E943C141F928F93EA +:104CB00080E599E09F938F930E945D0780910B019F +:104CC0001F928F9389E399E09F938F930E945D07D2 +:104CD00080917A011F928F9386E299E09F938F9340 +:104CE0000E945D0780910C011F928F9383E199E0F0 +:104CF0009F938F930E945D078091E1019091E20163 +:104D0000A091E301B091E401BF93AF939F938F9380 +:104D10008FEF98E09F938F930E945D078DB79EB7AA +:104D200046960FB6F8949EBF0FBE8DBF47CF0E9428 +:104D30005219C0910C0181E0C827C0930C01CC230B +:104D400029F08EE49CE00E94C4060EC083E49CE03F +:104D50008DCF8D5101C080E00E944E252FCF81E480 +:104D60009CE00E94C406C0E08C2FCF91089580E0A3 +:104D7000089580E00895CF93C82F8091EF0181308E +:104D800071F020F0823009F44BC042C1E0910D0176 +:104D9000F0910E018081823209F03CC107C0E091A0 +:104DA0000D01F0910E018081823261F48C2F0E94FE +:104DB000B726811104C08C2F0E946E252FC081E080 +:104DC00090E02CC08C2F0E94B926811126C0C431DE +:104DD000E1F070F4CB3081F0C031D1F40E941624A0 +:104DE00082EF98E00E94C40682E08093EF0115C034 +:104DF000C93259F0C83361F48FE79AE00E94C406C3 +:104E000086EF98E00E94C40608C01092EF0104C12A +:104E100080EF98E00E94C406FFC081E08170FEC070 +:104E2000C43228F5CE3108F0C1C0CB30A1F1D0F4A6 +:104E3000C73009F0D3C08EE18093140182E38093E0 +:104E400013018AE08093120184E18093110188E0CC +:104E50008093100188E280930F0186E997E00E9419 +:104E6000C406BFC0C33149F1C431C1F0B7C0CB34AF +:104E700009F4A9C028F4C93289F0C83361F0AEC082 +:104E8000C13509F49EC0C23509F499C0CE3409F089 +:104E9000A5C06AE09EC00E941624A3C08091EE01C6 +:104EA000882319F01092EE019CC083EA97E00E94DB +:104EB000C40681E08093EF01B1C08DE797E00E94C6 +:104EC000C4068BE697E00E94C406809114011F92ED +:104ED0008F9388E697E09F938F930E945D0786E605 +:104EE00097E00E94C40684E597E00E94C406809182 +:104EF00013011F928F9381E597E09F938F930E94F8 +:104F00005D078FE497E00E94C40680E497E00E946A +:104F1000C406809112011F928F938DE397E09F93B7 +:104F20008F930E945D078BE397E00E94C4068AE29C +:104F300097E00E94C406809111011F928F9387E22F +:104F400097E09F938F930E945D0785E297E00E9410 +:104F5000C40680E197E00E94C406809110011F9270 +:104F60008F938DE097E09F938F930E945D078BE076 +:104F700097E00E94C40684EF96E00E94C4068091E8 +:104F80000F011F928F9381EF96E09F938F930E9462 +:104F90005D078FEE96E00E94C4068DB79EB74896D7 +:104FA0000FB6F8949EBF0FBE8DBF1BC0CE51EC2F25 +:104FB000F0E0E35CFE4F80818093EE0112C061E07F +:104FC00003C061E006C06AE08091EE010E942D24DA +:104FD00008C08091EE010E94D02403C084E997E0CC +:104FE00013C08091EE01882369F01F928F938EE8A1 +:104FF00097E09F938F930E945D070F900F900F9003 +:105000000F9004C08BE897E00E94C40681E006C0C0 +:105010001092EF0180E002C080E000CFCF910895B0 +:1050200004D06894B1118DC0089570D088F09F5756 +:1050300090F0B92F9927B751A0F0D1F0660F771FE4 +:10504000881F991F1AF0BA95C9F712C0B13081F0C4 +:1050500077D0B1E0089574C0672F782F8827B85FA4 +:1050600039F0B93FCCF3869577956795B395D9F725 +:105070003EF490958095709561957F4F8F4F9F4F2F +:105080000895E89409C097FB3EF49095809570953B +:1050900061957F4F8F4F9F4F9923A9F0F92F96E984 +:1050A000BB279395F695879577956795B795F111F9 +:1050B000F8CFFAF4BB0F11F460FF1BC06F5F7F4F96 +:1050C0008F4F9F4F16C0882311F096E911C07723A8 +:1050D00021F09EE8872F762F05C0662371F096E8B1 +:1050E000862F70E060E02AF09A95660F771F881F80 +:1050F000DAF7880F9695879597F9089557FD905898 +:10510000440F551F59F05F3F71F04795880F97FB8B +:10511000991F61F09F3F79F0879508951216130645 +:105120001406551FF2CF4695F1DF08C01616170674 +:105130001806991FF1CF86957105610508940895A9 +:10514000E894BB2766277727CB0197F908950BD002 +:1051500078C069D028F06ED018F0952309F05AC0B5 +:105160005FC01124EECFCADFA0F3959FD1F3950F56 +:1051700050E0551F629FF001729FBB27F00DB11DDB +:10518000639FAA27F00DB11DAA1F649F6627B00D6B +:10519000A11D661F829F2227B00DA11D621F739F54 +:1051A000B00DA11D621F839FA00D611D221F749F62 +:1051B0003327A00D611D231F849F600D211D822FA9 +:1051C000762F6A2F11249F5750408AF0E1F08823F0 +:1051D0004AF0EE0FFF1FBB1F661F771F881F9150FD +:1051E0005040A9F79E3F510570F014C0AACF5F3F11 +:1051F000ECF3983EDCF3869577956795B795F79530 +:10520000E7959F5FC1F7FE2B880F911D96958795B7 +:1052100097F9089597F99F6780E870E060E0089536 +:105220009FEF80EC089500240A94161617061806BE +:105230000906089500240A9412161306140605069A +:105240000895092E0394000C11F4882352F0BB0F2B +:1052500040F4BF2B11F460FF04C06F5F7F4F8F4F8E +:105260009F4F0895991B79E004C0991F961708F085 +:10527000961B881F7A95C9F78095089597FB072E8E +:1052800016F4009407D077FD09D00E94582907FC36 +:1052900005D03EF4909581959F4F08957095619546 +:1052A0007F4F0895EE0FFF1F0590F491E02D0994B4 +:1052B000AA1BBB1B51E107C0AA1FBB1FA617B7073C +:1052C00010F0A61BB70B881F991F5A95A9F7809558 +:1052D0009095BC01CD010895F999FECF92BD81BD95 +:1052E000F89A992780B50895A8E1B0E042E050E02F +:1052F0000C949429262FF999FECF92BD81BDF89A7E +:10530000019700B4021639F01FBA20BD0FB6F89409 +:10531000FA9AF99A0FBE08950196272F0E947B29C9 +:105320000C947A29DC01CB01FC01F999FECF06C06F +:10533000F2BDE1BDF89A319600B40D924150504053 +:08534000B8F70895F894FFCFBF +:10534800FF790C6A0D470D130DDF0C0101CC012804 +:1053580008140A321E796653436C49636F7F697378 +:10536800091939293F4D362039FD04B0047A045A09 +:105378000421049403AD03C603DF03FF0301020302 +:085388000405060708090000F6 +:00000001FF diff --git a/keyboards/atreus/keymaps/gerb/keymap.c b/keyboards/atreus/keymaps/gerb/keymap.c new file mode 100644 index 000000000..1ba3942e3 --- /dev/null +++ b/keyboards/atreus/keymaps/gerb/keymap.c @@ -0,0 +1,66 @@ +// This is the personal keymap of Chris Gerber (@gerbercj). I haven't worked out the kinks +// with the Colemak and Dvorak support yet, but everything else works nicely. + +#include "atreus.h" + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QW 0 +#define _CM 1 +#define _DV 2 +#define _L1 3 +#define _L2 4 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QW] = { /* Qwerty */ + {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P }, + {KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN}, + {KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LALT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH}, + {KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, MO(_L1), KC_MINS, KC_QUOT, KC_ENT } + }, + [_CM] = { /* Colemak */ + {KC_Q, KC_W, KC_F, KC_P, KC_G, KC_NO, KC_J, KC_L, KC_U, KC_Y, KC_SCLN}, + {KC_A, KC_R, KC_S, KC_T, KC_D, KC_NO, KC_H, KC_N, KC_E, KC_I, KC_O }, + {KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LALT, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH}, + {KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, MO(_L1), KC_MINS, KC_QUOT, KC_ENT } + }, + [_DV] = { /* Dvorak */ + {KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_NO, KC_F, KC_G, KC_C, KC_R, KC_L }, + {KC_A, KC_O, KC_E, KC_U, KC_I, KC_NO, KC_D, KC_H, KC_T, KC_N, KC_S }, + {KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_LALT, KC_B, KC_M, KC_W, KC_V, KC_Z }, + {KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, MO(_L1), KC_MINS, KC_SLSH, KC_ENT } + }, + [_L1] = { /* LAYER 1 */ + {KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_VOLU, KC_7, KC_8, KC_9, KC_LBRC}, + {KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_NO, KC_VOLD, KC_4, KC_5, KC_6, KC_RBRC}, + {KC_GRV, KC_MPRV, KC_MPLY, KC_MNXT, KC_MINS, KC_LALT, KC_MUTE, KC_1, KC_2, KC_3, KC_BSLS}, + {TG(_L2), KC_APP, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, KC_TRNS, KC_DOT, KC_0, KC_EQL } + }, + [_L2] = { /* LAYER 2 */ + {KC_TRNS, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U, KC_NO, DF(_QW), KC_F7, KC_F8, KC_F9, KC_F10 }, + {KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, KC_NO, DF(_CM), KC_F6, KC_F5, KC_F6, KC_F11 }, + {KC_BTN4, KC_BTN1, KC_BTN2, KC_BTN3, KC_BTN4, KC_LALT, DF(_DV), KC_F1, KC_F2, KC_F3, KC_F12 }, + {KC_TRNS, KC_TRNS, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, RESET } + } +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboards/bantam44/Makefile b/keyboards/bantam44/Makefile new file mode 100644 index 000000000..03893dbf8 --- /dev/null +++ b/keyboards/bantam44/Makefile @@ -0,0 +1,72 @@ + + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=512 + + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= yes # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend +# NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality +# MIDI_ENABLE ?= YES # MIDI controls +# UNICODE_ENABLE ?= YES # Unicode +# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID + +ifndef QUANTUM_DIR + include ../../Makefile +endif + diff --git a/keyboards/bantam44/README.md b/keyboards/bantam44/README.md new file mode 100644 index 000000000..a571e3d44 --- /dev/null +++ b/keyboards/bantam44/README.md @@ -0,0 +1,24 @@ +Bantam44 keyboard firmware +====================== + +## Quantum MK Firmware + +For the full Quantum feature list, see [the parent README.md](/README.md). + +## Building + +Download or clone the whole firmware and navigate to the keyboards/Bantam44 folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default +To build with the default keymap, simply run `make`. + +### Other Keymaps +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` and see keymap document (you can find in top README.md) and existent keymap files. + +To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: +``` +$ make KEYMAP=[default|jack|] +``` +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. \ No newline at end of file diff --git a/keyboards/bantam44/bantam44.c b/keyboards/bantam44/bantam44.c new file mode 100644 index 000000000..5d507adc3 --- /dev/null +++ b/keyboards/bantam44/bantam44.c @@ -0,0 +1,25 @@ +#include "bantam44.h" + +__attribute__ ((weak)) +void matrix_init_user(void) { + // leave these blank +} + +__attribute__ ((weak)) +void matrix_scan_user(void) { + // leave these blank +} + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + matrix_init_user(); +} + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +} diff --git a/keyboards/bantam44/bantam44.h b/keyboards/bantam44/bantam44.h new file mode 100644 index 000000000..8e776d63b --- /dev/null +++ b/keyboards/bantam44/bantam44.h @@ -0,0 +1,29 @@ +#ifndef BANTAM44_H +#define BANTAM44_H + +#include "matrix.h" +#include "keymap.h" +#include "backlight.h" +#include + +// This a shortcut to help you visually see your layout. +// The following is an example using the Planck MIT layout +// The first section contains all of the arguements +// The second converts the arguments into a two-dimensional array +#define KEYMAP( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38 \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_NO, K2A }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B }, \ + { K30, K31, K32, KC_NO, K33, KC_NO, K34, KC_NO, K35, K36, K37, K38 }, \ +} + +void matrix_init_user(void); +void matrix_scan_user(void); + +#endif diff --git a/keyboards/bantam44/config.h b/keyboards/bantam44/config.h new file mode 100644 index 000000000..a55f62999 --- /dev/null +++ b/keyboards/bantam44/config.h @@ -0,0 +1,82 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Bantam Keyboards +#define PRODUCT Bantam44 +#define DESCRIPTION A custom keyboard + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +// Planck PCB default pin-out +// Change this to how you wired your keyboard +// COLS: Left to right, ROWS: Top to bottom +#define MATRIX_ROW_PINS { F0, D6, D4, D5 } +#define MATRIX_COL_PINS { B0, B1, B2, B3, B7, D0, B6, F7, F6, F5, F4, F1 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/bantam44/keymaps/default/compiled.hex b/keyboards/bantam44/keymaps/default/compiled.hex new file mode 100644 index 000000000..df7fc1b9c --- /dev/null +++ b/keyboards/bantam44/keymaps/default/compiled.hex @@ -0,0 +1,1398 @@ +:100000000C9489060C94CD060C94CD060C94CD0668 +:100010000C94CD060C94CD060C94CD060C94CD0614 +:100020000C94CD060C94CD060C9486110C945812A9 +:100030000C94CD1F0C94CD060C94CD060C94CD06DB +:100040000C94CD060C94CD060C94CD060C94CD06E4 +:100050000C94CD060C9435200C94CD060C94CD0652 +:100060000C94CD060C94CD060C94CD060C94CD06C4 +:100070000C94CD060C94CD060C94CD060C94CD06B4 +:100080000C94CD060C94CD060C94CD060C94CD06A4 +:100090000C94CD060C94CD060C94CD060C94CD0694 +:1000A0000C94CD060C94CD060C94CD06C512E71227 +:1000B000D513E712D5132C134F13D513A413B7136D +:1000C000FA16FA162917291768178817B818B818D2 +:1000D0009317B81843184318A918B818B818B218C5 +:1000E00050185018501850185018501850185018D0 +:1000F00050185018501850185018501850185018C0 +:1001000060186E1875187C188618290014001A00DB +:100110000800150017001C0018000C001200130046 +:100120002A002B0004001600070009000A000B003B +:100130000D000E000F00000028003900E1001D0036 +:100140001B000600190005001100100036003700E2 +:10015000E500E000E300E2000000015200002C0096 +:100160000000025233003400380029001E001F0036 +:100170002000210022002300240025002600270063 +:100180004C002B00AC00AE00AB00350031002D0060 +:100190002E002F003000000028003900E1003A0056 +:1001A0003B003C003D003E003F0000004A004B0089 +:1001B000E500E000E300E2000000010000002C0088 +:1001C000000001004D004E001E0229001E021F0209 +:1001D00020022102220223022402250226022702F3 +:1001E0004C002B00A800AA00A900350231022D0204 +:1001F0002E022F023002000028003900E1004000EA +:10020000410042004300440045000000000052004D +:10021000E500E000E300E2000000010000002C0027 +:1002200000000100500051004F000A44454255476C +:100230003A20656E61626C65642E0A0053746174C5 +:1002400065206F6620726F772025583A202530315F +:1002500036620A0048756D616E2D72656164616277 +:100260006C65206D61747269782073746174653A8D +:100270000D0A004465626F756E63696E6720646580 +:100280006C61792072656D61696E696E673A2025CF +:10029000580A005B735D004B6579626F6172642080 +:1002A00073746172742E0A005B575D005B535D00CE +:1002B0005B525D005B445D005B435D0012034200E6 +:1002C00061006E00740061006D00340034000000B5 +:1002D0002203420061006E00740061006D00200086 +:1002E0004B006500790062006F00610072006400DD +:1002F000730000000403090409027400040100A053 +:10030000FA090400000103010100092111010001A3 +:10031000223F000705810308000A090401000103C8 +:10032000010200092111010001224D00070582038D +:1003300008000A090402000103000000092111015C +:1003400000012236000705830308000A09040300A0 +:10035000020300000009211101000122200007050D +:10036000840320000107050403200001120110018D +:1003700000000008EDFE606001000102000106318E +:10038000FF0974A1010975150025FF9520750881E5 +:10039000020976150025FF952075089102C0050118 +:1003A0000980A101850216010026B7001A01002A62 +:1003B000B700751095018100C0050C0901A10185E8 +:1003C00003160100269C021A01002A9C0275109552 +:1003D000018100C005010902A1010901A10005096F +:1003E0001901290515002501950575018102950161 +:1003F000750381010501093009311581257F9502B9 +:100400007508810609381581257F950175088106D3 +:10041000050C0A38021581257F950175088106C0F3 +:10042000C005010906A101050719E029E715002506 +:10043000019508750181029501750881010508196A +:100440000129059505750191029501750391010535 +:1004500007190029FF150025FF950675088100C0C2 +:100460000A002530325820006B6579626F61726432 +:100470005F7265706F72743A20004B6579626F61CC +:100480007264204C4544732073746174653A20256E +:10049000780A00646F6E652E0A00626F6F676D6187 +:1004A000676963207363616E3A202E2E2E20002927 +:1004B0000A002575002F002575005D2800256400C1 +:1004C0002000256400200025640020002564007CB5 +:1004D0000025303258006D6F7573656B6579205B50 +:1004E00062746E7C782079207620685D2872657051 +:1004F0002F61636C293A205B006D6B5F77686565DF +:100500006C5F74696D655F746F5F6D6178203D200D +:1005100025640A006D6B5F776865656C5F6D617857 +:100520005F7370656564203D2025640A006D6B5F14 +:1005300074696D655F746F5F6D6178203D2025641F +:100540000A006D6B5F6D61785F7370656564203D57 +:100550002025640A006D6B5F696E74657276616C4C +:10056000203D2025640A006D6B5F64656C61792015 +:100570003D2025640A006D6B5F776865656C5F746C +:10058000696D655F746F5F6D6178203D2025640A39 +:10059000006D6B5F776865656C5F6D61785F737028 +:1005A000656564203D2025640A006D6B5F74696D8C +:1005B000655F746F5F6D6178203D2025640A006D72 +:1005C0006B5F6D61785F7370656564203D202564A5 +:1005D0000A006D6B5F696E74657276616C203D20F8 +:1005E00025640A006D6B5F64656C6179203D202590 +:1005F000640A000A00257500363A20776865656C44 +:100600005F74696D655F746F5F6D61783A20000A91 +:1006100000257500353A20776865656C5F6D6178F7 +:100620005F73706565643A20000A00257500343AEE +:100630002074696D655F746F5F6D61783A20000AA0 +:1006400000257500333A206D61785F7370656564CD +:100650003A20000A00257500323A20696E746572EE +:1006600076616C286D73293A20000A0025750031E7 +:100670003A2064656C6179282A31306D73293A20FB +:10068000000A092D2056616C756573202D0A004DF6 +:100690003E004D25643E20003F0073657420646574 +:1006A0006661756C740A00433E2000776865726568 +:1006B0002064656C74613A20637572736F723D25B6 +:1006C000642C20776865656C3D25640A5365652058 +:1006D000687474703A2F2F656E2E77696B69706538 +:1006E0006469612E6F72672F77696B692F4D6F7523 +:1006F00073655F6B6579730A000A092D204D6F756C +:1007000073656B6579202D0A4553432F713A097142 +:100710007569740A313A0964656C6179282A313047 +:100720006D73290A323A09696E74657276616C28B4 +:100730006D73290A333A096D61785F73706565647A +:100740000A343A0974696D655F746F5F6D61780A88 +:10075000353A09776865656C5F6D61785F737065C0 +:1007600065640A363A09776865656C5F74696D651A +:100770005F746F5F6D61780A0A703A097072696E12 +:10078000742076616C7565730A643A097365742028 +:1007900064656661756C74730A75703A092B310A69 +:1007A000646F776E3A092D310A706775703A092BBC +:1007B00031300A7067646F776E3A092D31300A0A5A +:1007C0007370656564203D2064656C7461202A2027 +:1007D0006D61785F7370656564202A20287265708A +:1007E000656174202F2074696D655F746F5F6D6142 +:1007F00078290A003F004D3E2000433E20004C2552 +:10080000640A0074696D65725F636F756E743A2077 +:100810002530346C580A006B6579626F6172645FD1 +:1008200069646C653A2025580A006B6579626F61CE +:1008300072645F70726F746F636F6C3A2025580A30 +:1008400000686F73745F6B6579626F6172645F6C6F +:1008500065647328293A2025580A000A092D205377 +:100860007461747573202D0A004743433A20342E77 +:10087000392E32204156522D4C4942433A20312ED6 +:10088000382E31204156525F415243483A2061761A +:1008900072350A004F5054494F4E533A204C55463A +:1008A0004120424F4F544D41474943204D4F5553EE +:1008B000454B45592045585452414B455920434FCB +:1008C0004E534F4C4520434F4D4D414E4420353102 +:1008D000320A004255494C443A20313637313865A6 +:1008E000662D6469727479202832333A30393A338C +:1008F00031204A756E2020392032303136290A00E5 +:100900005649443A203078464545442842616E7441 +:10091000616D204B6579626F617264732920504963 +:10092000443A203078363036302842616E74616D3A +:10093000343429205645523A203078303030310A4C +:1009400000444553433A204120637573746F6D2012 +:100950006B6579626F6172640A000A092D20566521 +:100960007273696F6E202D0A000A092D20436F6E85 +:10097000736F6C65202D0A4553432F713A097175C9 +:1009800069740A6D3A096D6F7573656B65790A0054 +:100990000A092D204D61676963202D0A443A0944F4 +:1009A00065627567204D65737361676520546F6775 +:1009B000676C650A583A094D61747269782044651C +:1009C000627567204D6F646520546F67676C6520A2 +:1009D0002D2053686F77206B65797072657373652E +:1009E0007320696E206D6174726978206772696422 +:1009F0000A4B3A094B6579626F6172642044656203 +:100A0000756720546F67676C65202D2053686F777A +:100A1000206B65797072657373207265706F727484 +:100A20000A4D3A094465627567204D6F75736520FC +:100A3000546F67676C650A563A0956657273696F39 +:100A40006E0A533A095374617475730A433A094143 +:100A50006374697661746520436F6E736F6C652093 +:100A60004D6F64650A46312D4631303A0953776936 +:100A700074636820746F204C6179657220302D3961 +:100A80002028463130203D204C30290A302D393A7B +:100A90000953776974636820746F204C61796572BB +:100AA00020302D390A4553433A09537769746368F6 +:100AB00020746F204C6179657220302028616C743D +:100AC00065726E617465206B65792031290A475221 +:100AD0004156453A0953776974636820746F204C16 +:100AE0006179657220302028616C7465726E617462 +:100AF00065206B65792032290A50415553453A09E2 +:100B00004A756D7020746F20426F6F746C6F6164F2 +:100B1000657220285265736574290A453A09507236 +:100B2000696E7420454550524F4D20536574746969 +:100B30006E67730A000A002575002E6E6B726F3A9D +:100B400020000A002575002E737761705F62616373 +:100B50006B736C6173685F6261636B737061636513 +:100B60003A20000A002575002E737761705F677266 +:100B70006176655F6573633A20000A002575002E73 +:100B80006E6F5F6775693A20000A002575002E7345 +:100B90007761705F72616C745F726775693A20008B +:100BA0000A002575002E737761705F6C616C745F4D +:100BB0006C6775693A20000A002575002E63617024 +:100BC000736C6F636B5F746F5F636F6E74726F6C67 +:100BD0003A20000A002575002E737761705F636FFD +:100BE0006E74726F6C5F636170736C6F636B3A20CD +:100BF000000A0025303258006B65796D61705F63C3 +:100C00006F6E6669672E7261773A20000A0025755B +:100C1000002E6D6F7573653A20000A002575002E51 +:100C20006B6579626F6172643A20000A0025750075 +:100C30002E6D61747269783A20000A002575002EC5 +:100C4000656E61626C653A20000A002530325800FA +:100C500064656275675F636F6E6669672E72617740 +:100C60003A20000A0025750064656661756C745F42 +:100C70006C617965723A20003F000A6D6F7573658B +:100C80003A206F66660A000A6D6F7573653A206FC9 +:100C90006E0A000A6B6579626F6172643A206F6652 +:100CA000660A000A6B6579626F6172643A206F6E42 +:100CB0000A000A6D61747269783A206F66660A00EC +:100CC0000A6D61747269783A206F6E0A000A646571 +:100CD0006275673A206F66660A000A646562756726 +:100CE0003A206F6E0A000A0A4A756D70696E6720B5 +:100CF000746F20626F6F746C6F616465722E2E2E3C +:100D00002000433E20006565636F6E6669673A0A9E +:100D1000000011241FBECFEFDAE0DEBFCDBF04B666 +:100D200003FE24C08091E8019091E901A091EA01BD +:100D3000B091EB018730904BA740B04BB9F41092C3 +:100D4000E8011092E9011092EA011092EB0114BE41 +:100D500084B7877F84BF88E10FB6F89480936000E2 +:100D6000109260000FBEE0E0FFE3099511E0A0E003 +:100D7000B1E0EEEFF6E502C005900D92A234B107A6 +:100D8000D9F711E0A2E4B1E001C01D92A83EB1077D +:100D9000E1F70E94C00E0C947D2B0C940000FF9391 +:100DA000EF93E0914201F0914301309709F00995EA +:100DB000EF91FF910895FC018591803011F0EFDFF4 +:100DC000FBCF0895FF27E0E230E247FF0CC04195DA +:100DD00097FF09C0EDE26095709580959095611D33 +:100DE000711D811D911D27FF02C0219530E350E246 +:100DF000AA27660F771F881F991FAA1FA41710F034 +:100E0000A41B63955A95A9F7AA3008F0A95FA05DC5 +:100E1000AF93F395611571058105910541F7ED32A9 +:100E200011F4EF93F395F21718F43F93F395FBCF7A +:100E30008F91B5DFFA95E1F70895E991F9918591E0 +:100E4000803021F0853219F0AADFF9CF089520E033 +:100E5000E89455915532C1F3503311F4689455918B +:100E60005A3348F4505390F3220F022E220F220FD0 +:100E7000200D250FF4CF0EF42195899199915336C9 +:100E800019F3533729F1533559F1BC0188279927B4 +:100E9000E8945C3621F4899199916894559154367F +:100EA00039F446EF7EF077FF0DC08FEF9FEF0AC059 +:100EB00055374AE039F0583540E121F0523642E0EA +:100EC00009F00895FF93EF937DDFEF91FF91B7CF86 +:100ED000FF93EF93FC0181918030B9F360DFFBCF8A +:100EE000FF93EF9368DFF1CFDF93CF93CDB7DEB7FA +:100EF0002596A3DFCF91DF910895089508950C946E +:100F00007D070C947E0780E090E0089581E00895CD +:100F100081E008950C94880708950F931F93CF9351 +:100F2000DF938C01FC01C081D181CE010E941C1E87 +:100F3000BE010E943A08EC01B8010E948A0788238A +:100F400009F48DC0F8018281882309F44AC0809198 +:100F50004F0181111FC0C431F0E5DF0709F051C016 +:100F60000E948C0781E080934F010E94FF1F9093A5 +:100F70004E0180934D01109246011092480110924B +:100F8000470110924A011092490110924C011092AF +:100F90004B0165C080914D0190914E010E940B2044 +:100FA000883C910570F480914601E82FF0E0EE0F47 +:100FB000FF1FE95BFE4FD183C0838F5F80934601A3 +:100FC0004EC0C43880E5D80721F0C538D04501F1BE +:100FD0003AC0F8018281882341F01092440182E0F6 +:100FE0001EC0C438E0E5DE0759F580914401811147 +:100FF00006C086E20E949E1586E20E94661682E086 +:101000001CC0C438F0E5DF0741F3C538D045D9F43A +:10101000F8018281882331F01092450180E20E941C +:10102000B5161DC080914501811106C087E20E945E +:101030009E1587E20E94661680E20E94BC160FC0D1 +:10104000C538D04529F381E0809344018093450160 +:10105000C801DF91CF911F910F910C94860780E01A +:10106000DF91CF911F910F9108950C947F070C94FD +:10107000810708959CE0799FF001112490E3899FF6 +:10108000E00DF11D1124E60FF11DEE0FFF1FE65FCD +:10109000FE4F859194910895880F991FFC01E657A2 +:1010A000F040859194910895880F991FFC01E65FA7 +:1010B000FE4F8591949108950F931F93CF93DF93E3 +:1010C000EC01811520E3920750F5C11580E2D807A5 +:1010D00008F0C3C0CB3BD10590F4C83AD10508F065 +:1010E0006AC0C53AD10508F05BC0C430D10508F02C +:1010F000D4C1219709F0CEC101E010E00EC2CF3F6C +:10110000D10511F008F0C9C1C03FD10508F0A2C057 +:10111000CE01805E9109089708F4BFC1BBC1C13000 +:1011200090E5D90709F4A2C020F5C0318FE4D807B3 +:1011300070F4C11590E4D90708F094C0C11521E3FB +:10114000D20708F0A7C1DD278E01106CE6C1C115DA +:10115000D04509F09FC10E9423198FEF94E32CE042 +:10116000815090402040E1F700C000000E945A20CA +:10117000D4C1C11597E5D90758F4C03121E5D2078C +:1011800008F020C1C43180E5D80708F479C082C1D5 +:10119000CE0190578115904108F07CC1DF7077C176 +:1011A000C53AD10509F47BC1C63AD10509F07AC127 +:1011B00002E810E4B2C1C83AD10509F476C1C93ACF +:1011C000D10509F475C1CA3AD10509F474C1CB3A05 +:1011D000D10509F473C1CC3AD10509F472C1CD3AF5 +:1011E000D10509F471C1C03BD10509F470C1CE3AF3 +:1011F000D10509F46FC1CF3AD10509F46EC1C13BE5 +:10120000D10509F46DC1C23BD10509F46CC1C33BE2 +:10121000D10509F46BC1C43BD10509F46AC1C53BD2 +:10122000D10509F469C1C63BD10509F468C1C73BC2 +:10123000D10509F467C1C83BD10509F466C1C93BB2 +:10124000D10509F465C1CA3BD10509F464C100E0C8 +:1012500014E463C18E01106560C1CE019F700E94CD +:1012600054085CC1DF708E01106A57C18AE292E0B7 +:101270000E94DB068091C90181608093C9014DC144 +:101280000E940822811102C00E94EE210E942522A4 +:1012900090E09093E8018093E701C23080E5D807A1 +:1012A00021F48091E701816086C0C43090E5D907C0 +:1012B00021F48091E70182607EC0C63020E5D2072C +:1012C00021F48091E701846076C0C83080E5D807BA +:1012D00019F48091E70127C0CA3090E5D90721F4BD +:1012E0008091E701806167C0CC3020E5D20721F40E +:1012F0008091E70180625FC0CE3080E5D80721F49D +:101300008091E701806457C0C03190E5D90721F48E +:101310008091E70180684FC0C23120E5D20729F4EF +:101320008091E7018460886046C0C33080E5D807BB +:1013300021F48091E7018E7F3EC0C53090E5D9074A +:1013400021F48091E7018D7F36C0C73020E5D207B8 +:1013500021F48091E7018B7F2EC0C93080E5D8074A +:1013600019F48091E70126C0CB3090E5D90721F42C +:101370008091E7018F7E1FC0CD3020E5D20721F498 +:101380008091E7018F7D17C0CF3080E5D80721F429 +:101390008091E7018F7B0FC0C13190E5D90721F41F +:1013A0008091E7018F7707C0C331D04531F4809138 +:1013B000E7018B7F877F8093E7018091E7010E949F +:1013C0002922ABC08D2F99278F70992781309105E5 +:1013D000D9F49E012370332702C0880F991F2A95E4 +:1013E000E2F79C688E0144E0000F111F4A95E1F777 +:1013F00000271370802B912B53E0CC0FDD1F5A95E3 +:10140000E1F7C076DD272FC08230910531F4DC2F63 +:10141000CC278E01016F106A80C08330910569F47A +:10142000CE018370992701E010E002C0000F111F68 +:101430008A95E2F7C8019C680FC084309105B9F421 +:10144000CE018370992701E010E002C0000F111F48 +:101450008A95E2F7C8019A6823E0CC0FDD1F2A9530 +:10146000E1F7C07ED7708C010C2B1D2B56C0853048 +:10147000910531F4DC2FCC278E01046F106A4DC02A +:10148000069709F04AC0CF71DD27DC2FCC278E01EB +:10149000106243C000E010E040C08E013EC001E891 +:1014A00010E43BC003E810E438C002EE14E435C099 +:1014B00009EE14E432C00AEE14E42FC005EB14E484 +:1014C0002CC006EB14E429C007EB14E426C00CEC96 +:1014D00014E423C00DEC14E420C003E815E41DC09F +:1014E0000AE815E41AC002E915E417C004E915E496 +:1014F00014C001E216E411C003E216E40EC004E2D7 +:1015000016E40BC005E216E408C006E216E405C0C6 +:1015100007E216E402C00AE216E4C801DF91CF91A7 +:101520001F910F9108959CE0799FF001112490E3A1 +:10153000899FE00DF11D1124E60FF11DEE0FFF1F35 +:10154000E65FFE4F85919491803E9105E0F4803CEA +:10155000910558F58133910509F46FC048F489323B +:10156000910509F463C08A32910509F46DC072C017 +:1015700089339105E9F082389105D1F085339105E1 +:1015800009F44DC067C0833E910581F138F4803E77 +:101590009105B9F0823E9105D9F05CC0863E910577 +:1015A00061F1873E9105A1F155C00E944C08089554 +:1015B0002091E70120FD02C021FF4CC080EE90E0A9 +:1015C00049C08091E70180FFF9CF89E390E042C0F4 +:1015D0008091E70182FF0EC08091E70184FF03C084 +:1015E00080E090E037C083EE90E034C08091E70166 +:1015F00082FFF2CF82EE90E02DC08091E70183FF61 +:101600000BC08091E70184FDEBCF87EE90E022C014 +:101610008091E70183FFF5CF86EE90E01BC08091BB +:10162000E70185FF07C089E290E014C08091E701DF +:1016300085FFF9CF85E390E00DC08091E70186FF3B +:1016400007C08AE290E006C08091E70186FFF9CFEB +:1016500081E390E00E945C08089508950C942D0B9E +:10166000E82FF0E0E05EFE4F8081E82FEF70F0E0C1 +:1016700082958F7021E030E0A90102C0440F551F10 +:101680008A95E2F740A308950F931F93CF93DF93BA +:1016900085B7806885BF85B7806885BFC3E0D0E027 +:1016A00001E010E0FE01E05EFE4F8081E82FEF7068 +:1016B000F0E021A182958F70A80102C0440F551F50 +:1016C0008A95E2F7CA01822B81A38C2F0E94300BEE +:1016D000219740F78BE090E061E070E0FC01EC5E68 +:1016E000FE4F2081E22FEF70F0E042A122952F7093 +:1016F000DB0102C0AA0FBB1F2A95E2F79D01242B34 +:1017000022A3019758F7DF91CF911F910F910C946D +:101710003508EF92FF920F931F93CF93DF9308E565 +:1017200011E0C3E0EE24E394F12CD5E08C2F0E946D +:10173000300B8BE090E040E050E0FC01EC5EFE4FAF +:101740006081E62FEF70F0E020A130E062956F70CD +:1017500002C0359527956A95E2F720FD09C09701EB +:10176000082E02C0220F331F0A94E2F7422B532B9C +:10177000019718F7F801929182918F0184179507CC +:1017800021F051834083D09300018C2F0E94300BB5 +:10179000C15060F68091000187FD42C09091C9015F +:1017A00090FF10C0282F332727FD30953F938F934C +:1017B00083E792E09F938F930E9474070F900F909E +:1017C0000F900F908091000181508093000187FD60 +:1017D00007C08FE99FE00197F1F700C0000020C02B +:1017E000809156019091570190935F0180935E0123 +:1017F000809154019091550190935D0180935C011B +:10180000809152019091530190935B0180935A0112 +:10181000809150019091510190935901809358010A +:101820000E94370881E0DF91CF911F910F91FF90C7 +:10183000EF900895E82FF0E0EE0FFF1FE85AFE4FFB +:10184000808191810895EF92FF920F931F93CF9320 +:10185000DF938091C90180FF04C084E592E00E947B +:10186000DB0608E511E0C0E0D0E08CE3E82E82E082 +:10187000F82E8091C90180FF13C0F8018081918109 +:101880000E94741F9F938F93DF93CF93FF92EF92E9 +:101890000E9474070F900F900F900F900F900F9071 +:1018A00021960E5F1F4FC430D10519F7DF91CF91FC +:1018B0001F910F91FF90EF9008950F931F93CF9377 +:1018C00000E611E0C0E0F801929182918F010E9440 +:1018D000521FC80FF1E008351F07A9F78C2FCF91D1 +:1018E0001F910F91089580916B0108959FB7F8940F +:1018F000109262019FBF9091DE01943009F057C0B1 +:101900009091E9009F703091EC00232F217030FD01 +:1019100020E8922B24E02093E9002091EB0020FFA7 +:1019200043C02091EE0027FF3FC020916001222399 +:1019300021F02091E80025FF37C01092600126E0D9 +:101940003091E80035FD15C03091DE01343061F58D +:101950003091EB0035FD28C0215021F481E08093C7 +:10196000600122C0EFE9FFE03197F1F700C000000D +:10197000E7CF8093F1008091E80085FD0AC0809157 +:10198000E80080FFFCCF8091E8008E778093E8002C +:1019900006C08FB7F89421E0209362018FBF9F703B +:1019A0009093E90080E008959F709093E9008FEF95 +:1019B0000895CF93DF9300D01F92CDB7DEB79C017F +:1019C0008091DE01843019F593E099833B832A836B +:1019D0009093E9008FEF9091E800815095FD06C04B +:1019E00095ED9A95F1F700008111F5CF8091E8000F +:1019F00085FF0DC040E050E063E070E0CE0101964D +:101A00000E94760F8091E8008E778093E8000F9017 +:101A10000F900F90DF91CF910895CF93DF9300D077 +:101A20001F92CDB7DEB72091DE01243021F522E0F0 +:101A300029839B838A8383E08093E9008FEF9091D1 +:101A4000E800815095FD06C095ED9A95F1F70000EC +:101A50008111F5CF8091E80085FF0DC040E050E096 +:101A600063E070E0CE0101960E94760F8091E8005D +:101A70008E778093E8000F900F900F90DF91CF91B9 +:101A800008952091DE012430F1F422E02093E90052 +:101A90002FEF3091E800215035FD06C035ED3A9525 +:101AA000F1F700002111F5CF2091E80025FF0BC0D0 +:101AB00040E050E065E070E00E94760F8091E80021 +:101AC0008E778093E8000895CF93DF932091DE0115 +:101AD000243039F521E02093E9002FEF3091E80020 +:101AE000215035FD06C035ED3A95F1F70000211182 +:101AF000F5CF2091E80025FF14C0EC0140E050E054 +:101B000068E070E00E94760F8091E8008E77809305 +:101B1000E80088E0FE01A3E6B1E001900D928A950D +:101B2000E1F7DF91CF91089588EB92E00E94DB0608 +:101B30008091DD01811109C00E940B110E94681182 +:101B40008091E20084608093E200089584EB92E04B +:101B50000E94DB061092DD01089580EB92E00C9468 +:101B6000DB068CEA92E00C94DB0688EA92E00E94A5 +:101B7000DB060C94C71F209161012F5F822F62E367 +:101B80000E940D2B992319F0209361010895109262 +:101B9000610180916201882371F18091DE018430BE +:101BA00041F58091E9008F702091EC00922F9170A7 +:101BB00020FD90E8892B94E09093E9009091EB0050 +:101BC00090FF14C09091EE0097FF10C09091E80034 +:101BD00095FF03C01092F100F9CF9091E80090FFBB +:101BE00005C09091E8009E779093E8008F708093F5 +:101BF000E90010926201089542E061EC81E00E94E8 +:101C0000851042E061EC82E00E94851042E061ECC8 +:101C100083E00E94851042E261EC84E00C94851020 +:101C20008091E001833009F453C030F4813071F0C9 +:101C3000823009F48CC008958A3009F478C08B3062 +:101C400009F45EC0893009F09AC020C08091DF019C +:101C5000813A09F094C08091E800877F8093E80082 +:101C60008091E3019091E401892B21F468E083E6FF +:101C700091E003C060E080E090E070E00E94C10F5E +:101C80008091E8008B778093E80008958091DF01D0 +:101C9000813209F074C08091E3019091E401892BB5 +:101CA00009F06DC08091E800877F8093E800809103 +:101CB000E80082FD05C08091DE018111F8CF5FC090 +:101CC0008091F10080936B018091E8008B7753C085 +:101CD0008091DF01813A09F052C08091E301909137 +:101CE000E401892B09F04BC08091E800877F809345 +:101CF000E8008091E80080FFFCCF80910B0136C0A6 +:101D00008091DF018132D9F58091E3019091E40166 +:101D1000892BA9F58091E800877F8093E8000E94D5 +:101D2000BA108091E10180930B010C9423198091EA +:101D3000DF01813221F58091E800877F8093E80000 +:101D40000E94BA108091E20180936C010895809105 +:101D5000DF01813AA1F48091E800877F8093E80059 +:101D60008091E80080FFFCCF80916C018093F100AE +:101D70008091E8008E778093E8000C94BA10089563 +:101D800084B7877F84BF88E10FB6F89480936000A2 +:101D9000109260000FBE90E080E80FB6F894809338 +:101DA0006100909361000FBE0E949A140E940B1173 +:101DB0000E9468118091E20084608093E20086E7CF +:101DC0009CE00E944D1F78940E94ED130E949C1489 +:101DD00081E091E00E94081487E992E00E94DB060E +:101DE0008091DE01853089F483E992E00E94DB0670 +:101DF0000E948E1F8091DC01882391F30E94B91FFD +:101E0000882371F30E94600FEBCF0E94C014E8CFCB +:101E1000292F332723303105C9F064F421303105EF +:101E200081F02230310509F043C084E790E028EFCB +:101E300032E042C021323105F1F02232310541F168 +:101E400037C082E190E02CE633E036C0992781303C +:101E5000910541F08230910541F0892B49F5E4EF7D +:101E6000F2E005C0E0EDF2E002C0ECEBF2E08491BC +:101E700090E09F0121C06430D8F4E62FF0E0EE0F2F +:101E8000FF1FE05DFE4F2081318189E090E014C0AA +:101E9000643070F470E0FB01EE0FFF1FE85DFE4F51 +:101EA00020813181FB01EC5DFE4F808190E004C018 +:101EB00080E090E020E030E0FA0131832083089553 +:101EC00080E189BD82E189BD09B400FEFDCF80912A +:101ED000D8008F7D8093D8008091E000826080934D +:101EE000E0008091E00081FDFCCF0895CF92DF9269 +:101EF000EF92FF920F931F93CF93DF93EC018B012F +:101F00006A010E94D910811133C0C114D10439F083 +:101F1000F60180819181081B190BC80FD91FE12C94 +:101F2000F12C0115110519F18091E80085FD16C00D +:101F30008091E8008E778093E800C114D10449F0C5 +:101F4000F60180819181E80EF91EF182E08285E040 +:101F50000FC00E94D910882321F30AC08991809371 +:101F6000F10001501109FFEFEF1AFF0ADACF80E00C +:101F7000DF91CF911F910F91FF90EF90DF90CF9065 +:101F800008952091E5013091E6012617370748F0C2 +:101F90006115710539F42091E8002E772093E8004F +:101FA00001C0B90140E061157105A9F12091DE0180 +:101FB000222309F443C0253009F442C02091E800EF +:101FC00023FD40C02091E80022FD32C02091E800AE +:101FD00020FFE9CF4091F3002091F20030E0342B54 +:101FE000FC01CF016115710559F02830310540F42D +:101FF00081918093F100615071092F5F3F4FF1CFC4 +:1020000041E02830310509F040E02091E8002E77CA +:102010002093E800C8CF4111C9CF0AC08091DE01EA +:10202000882361F0853061F08091E80083FD0AC06B +:102030008091E80082FFF2CF80E0089582E0089569 +:1020400083E0089581E008952091E5013091E60153 +:102050002617370748F06115710539F42091E8001B +:102060002E772093E80001C0B901FC0120E0611542 +:10207000710591F18091DE01882309F440C085301B +:1020800009F43FC08091E80083FD3DC08091E800E5 +:1020900082FD2FC08091E80080FFE9CF2091F300FE +:1020A0008091F20090E0922B6115710559F0883013 +:1020B000910540F424912093F1003196615071090B +:1020C0000196F2CF21E0089709F020E08091E80026 +:1020D0008E778093E800CBCF2111CCCF0AC08091BE +:1020E000DE01882361F0853061F08091E80083FD96 +:1020F0000AC08091E80082FFF2CF80E0089582E07C +:10210000089583E0089581E00895982F973058F559 +:102110009093E900981739F07091EC002091ED0050 +:102120005091F00003C0242F762F50E021FF19C0FA +:102130003091EB003E7F3093EB003091ED003D7F1E +:102140003093ED003091EB0031603093EB007093F1 +:10215000EC002093ED005093F0002091EE0027FF5B +:1021600007C09F5FD3CF8F708093E90081E008950F +:1021700080E008958091DF0187FF11C08091E80021 +:1021800082FD05C08091DE018111F8CF11C08091E0 +:10219000E8008B770BC08091DE01882349F08091A5 +:1021A000E80080FFF8CF8091E8008E778093E80008 +:1021B00008952091E4003091E50095E64091EC000F +:1021C000842F817040FF22C08091E80080FD1CC0F8 +:1021D0008091DE01882391F0853091F08091EB00B1 +:1021E00085FD10C04091E4005091E500421753076F +:1021F00029F39A01915011F784E0089582E008953F +:1022000083E0089581E0089580E008954091E8001A +:1022100042FFDECF08950E9479110E948111E0EE05 +:10222000F0E0808181608083E8EDF0E080818F774D +:10223000808319BCA7EDB0E08C918E7F8C93808158 +:102240008F7E80831092DD0108950F931F93CF93AB +:10225000DF930E9479110E948111C8EDD0E088813E +:102260008F77888388818068888388818F7D888341 +:1022700019BC1092DE011092DA011092DC0110926A +:10228000DB0100EE10E0F80180818B7F8083888184 +:102290008160888342E060E080E00E948510E1EE8A +:1022A000F0E080818E7F8083E2EEF0E080818160CB +:1022B0008083808188608083F80180818E7F808325 +:1022C000888180618883DF91CF911F910F9108955C +:1022D000E8EDF0E080818F7E8083E7EDF0E08081A3 +:1022E0008160808384E082BF81E08093DD010C9473 +:1022F0002511E8EDF0E080818E7F80831092E2006E +:1023000008951092DA001092E10008951F920F9242 +:102310000FB60F9211242F933F934F935F936F93B8 +:102320007F938F939F93AF93BF93EF93FF9380918E +:10233000E10082FF0BC08091E20082FF07C0809124 +:10234000E1008B7F8093E1000E94BB0D8091DA0059 +:1023500080FF1FC08091D80080FF1BC08091DA00F1 +:102360008E7F8093DA008091D90080FF0DC080E1DC +:1023700089BD82E189BD09B400FEFDCF81E0809373 +:10238000DE010E94940D05C019BC1092DE010E946E +:10239000A60D8091E10080FF19C08091E20080FFCE +:1023A00015C08091E2008E7F8093E2008091E20070 +:1023B00080618093E2008091D80080628093D80091 +:1023C00019BC85E08093DE010E94B10D8091E1008F +:1023D00084FF30C08091E20084FF2CC080E189BD81 +:1023E00082E189BD09B400FEFDCF8091D8008F7DC8 +:1023F0008093D8008091E1008F7E8093E1008091EE +:10240000E2008F7E8093E2008091E2008160809301 +:10241000E2008091DA01882311F084E007C0809106 +:10242000E30087FD02C081E001C083E08093DE010C +:102430000E94B50D8091E10083FF29C08091E200E8 +:1024400083FF25C08091E100877F8093E10082E0D7 +:102450008093DE011092DA018091E1008E7F8093FB +:10246000E1008091E2008E7F8093E2008091E200A3 +:1024700080618093E20042E060E080E00E9485108D +:102480008091F00088608093F0000E94AD0DFF9174 +:10249000EF91BF91AF919F918F917F916F915F91DC +:1024A0004F913F912F910F900FBE0F901F90189555 +:1024B0001F920F920FB60F9211242F933F934F93B9 +:1024C0005F936F937F938F939F93AF93BF93CF93BC +:1024D000DF93EF93FF93C091E900CF708091EC0000 +:1024E000D82FD17080FDD0E81092E9008091F000E3 +:1024F000877F8093F00078940E949C121092E900EC +:102500008091F00088608093F000CD2BCF70C09355 +:10251000E900FF91EF91DF91CF91BF91AF919F9132 +:102520008F917F916F915F914F913F912F910F907C +:102530000FBE0F901F9018951F93CF93DF93CDB7C9 +:10254000DEB7AA970FB6F894DEBF0FBECDBFEFED92 +:10255000F1E088E08E0F9091F10091938E13FBCF04 +:102560000E94100E8091E80083FF1FC18091DF015F +:102570009091E001492F50E04A30510508F015C113 +:10258000FA01EA5AFF4F0C942D2B803881F08238E3 +:1025900009F00BC18091E3018F708093E900809175 +:1025A000EB0085FB882780F91092E90006C0809136 +:1025B000DB019091DC01911182609091E800977F9E +:1025C0009093E8008093F1001092F100C8C0282F8A +:1025D0002D7F09F0EAC0882319F0823061F0E5C050 +:1025E0008091E101813009F0E0C0933009F080E092 +:1025F0008093DC012BC08091E101811127C0809183 +:10260000E3018F7009F4D1C08093E9002091EB00C1 +:1026100020FF1CC0933021F48091EB00806214C035 +:102620009091EB0090619093EB0021E030E0A901E4 +:1026300002C0440F551F8A95E2F74093EA001092BA +:10264000EA008091EB0088608093EB001092E90033 +:102650008091E800877F86C08111A7C01091E101B9 +:102660001F778091E3008078812B8093E300809135 +:10267000E800877F8093E8000E94BA108091E8000C +:1026800080FFFCCF8091E30080688093E30011110C +:1026900002C082E001C083E08093DE0186C08058E2 +:1026A000823008F082C08091E1019091E2018C3D7E +:1026B00053E0950779F583E08A838AE289834FB7EF +:1026C000F894DE01139620E03EE051E2E32FF0E0C3 +:1026D00050935700E49120FF03C0E295EF703F5FF5 +:1026E000EF708E2F90E0EA3010F0C79601C0C096D0 +:1026F0008D939D932F5F243149F74FBF8091E80060 +:10270000877F8093E8006AE270E0CE0101960E9424 +:10271000C10F14C0AE014F5F5F4F6091E3010E9493 +:10272000080FBC01009709F440C09091E800977F22 +:102730009093E80089819A810E9424108091E8009A +:102740008B778093E80031C0803879F58091E8007C +:10275000877F8093E8008091DA018093F100809177 +:10276000E8008E778093E8000E94BA101EC08111A5 +:102770001CC09091E1019230C0F48091E800877F05 +:102780008093E8009093DA010E94BA108091DA01F8 +:10279000811106C08091E30087FD02C081E001C085 +:1027A00084E08093DE010E94FC0D8091E80083FFAD +:1027B0000AC08091E800877F8093E8008091EB0059 +:1027C00080628093EB00AA960FB6F894DEBF0FBE2E +:1027D000CDBFDF91CF911F910895CF938091DE01FE +:1027E0008823A1F0C091E900CF709091EC00892F6F +:1027F000817090FD80E8C82B1092E9008091E8007C +:1028000083FD0E949C12CF70C093E900CF91089580 +:1028100090937201809371010895E0917101F0919C +:102820007201309721F00190F081E02D099480E051 +:102830000895EF92FF920F931F93CF93DF93E09150 +:102840007101F09172013097B1F18C010280F38136 +:10285000E02D09958091C90182FF2DC080FF04C041 +:1028600088E694E00E94DB06E80118E082E6E82EA4 +:1028700084E0F82E8091C90180FF0BC088811F92EF +:102880008F93FF92EF920E9474070F900F900F901A +:102890000F90115021961111EDCF8091C90180FF49 +:1028A0000AC080E694E0DF91CF911F910F91FF90D5 +:1028B000EF900C94DB06DF91CF911F910F91FF9069 +:1028C000EF900895E0917101F0917201309721F03D +:1028D0000480F581E02D0994089520916F013091D5 +:1028E00070018217930771F09093700180936F01CC +:1028F000E0917101F0917201309721F00680F7812B +:10290000E02D0994089520916D0130916E01821798 +:10291000930771F090936E0180936D01E0917101C6 +:10292000F0917201309721F00084F185E02D099437 +:10293000089508950C9499140E94F61F0E94440B68 +:102940000C94C020CF93DF931F92CDB7DEB7909148 +:10295000C90192FF10C090FF0EC01F928F932AE70B +:1029600034E03F932F9389830E9474070F900F9058 +:102970000F900F9089810F90DF91CF910C942E0BC7 +:102980005F926F927F928F929F92AF92BF92CF92FF +:10299000DF92EF92FF920F931F93CF93DF9300D0BC +:1029A00000D01F92CDB7DEB70E94890B9CE7C92EDD +:1029B00091E0D92E03E010E0AA24A394B12C502E6C +:1029C000802F0E941A0C4C01F601729062906F01E8 +:1029D0006826792661147104A1F40150110978F771 +:1029E0008FEF89838A831B820E94FF1F8160782F6B +:1029F0009D838C8349815A816B818D810E947015E2 +:102A000038C08091C90181FD0E94230C2BE030E089 +:102A10007501022E02C0EE0CFF1C0A94E2F7C701FA +:102A200086219721892B09F129835A828E209F20A4 +:102A300091E0892809F490E09B830E94FF1F816048 +:102A4000782F9D838C8349815A816B818D810E946F +:102A50007015000F111FF801EC58FE4F8081918115 +:102A6000E826F926F182E08204C02150310980F67F +:102A7000B4CF0E942A24109173010E940D141817DC +:102A8000D1F00E940D14809373010F900F900F905E +:102A90000F900F90DF91CF911F910F91FF90EF90CA +:102AA000DF90CF90BF90AF909F908F907F906F906E +:102AB0005F900C94A2140F900F900F900F900F90B6 +:102AC000DF91CF911F910F91FF90EF90DF90CF900A +:102AD000BF90AF909F908F907F906F905F90089580 +:102AE000CF93DF93CDB7DEB72B970FB6F894DEBF49 +:102AF0000FBECDBF4F83588769877A878B87DE01EA +:102B0000119686E0FD0111928A95E9F785E0FE01B4 +:102B1000379601900D928A95E1F749815A816B8130 +:102B20007C818D819E810E94C11B2B960FB6F894EB +:102B3000DEBF0FBECDBFDF91CF910895CF93882325 +:102B400009F4C2C0C82F823859F40E940D1481FDC7 +:102B5000BBC089E30E949B1E0E941E1F89E30CC01C +:102B6000833879F40E940D1480FDAEC083E50E9485 +:102B70009B1E0E941E1F83E50E94B81ECF910C94DD +:102B80001E1F843859F40E940D1482FD9DC087E4F5 +:102B90000E949B1E0E941E1F87E4EECF8CEF8C0FBD +:102BA000813A48F48C2F0E94962881118DC08C2F79 +:102BB0000E949B1EE3CF80E28C0F883048F4C770E0 +:102BC00081E001C0880FCA95EAF70E94D71ED6CFD0 +:102BD0008BE58C0F833078F4C53A29F0C63A31F092 +:102BE00083E890E005C081E890E002C082E890E0D0 +:102BF000CF910C946D1488E58C0F833108F064C07C +:102C0000C83A39F1C93A41F1CA3A49F1CB3A51F1DE +:102C1000CC3A59F1CD3A61F1C03B69F1CE3A71F14C +:102C2000CF3A79F1C13B81F1C23B89F1C33B91F1CC +:102C3000C43B99F1C53BA1F1C63BA9F1C73BB1F13A +:102C4000C83BB9F1C93BC1F1CA3BC9F180E090E092 +:102C500038C082EE90E035C089EE90E032C08AEE56 +:102C600090E02FC085EB90E02CC086EB90E029C06F +:102C700087EB90E026C08CEC90E023C08DEC90E0D8 +:102C800020C083E891E01DC08AE891E01AC082E983 +:102C900091E017C084E991E014C081E292E011C094 +:102CA00083E292E00EC084E292E00BC085E292E003 +:102CB00008C086E292E005C087E292E002C08AE2A4 +:102CC00092E0CF910C948314CF910895882309F456 +:102CD0004BC0823859F40E940D1481FF45C089E32E +:102CE0000E949B1E0E941E1F89E30CC0833871F452 +:102CF0000E940D1480FF38C083E50E949B1E0E9435 +:102D00001E1F83E50E94B81E0C941E1F843859F4C0 +:102D10000E940D1482FF28C087E40E949B1E0E941F +:102D20001E1F87E4EFCF9CEF980F913A58F390E283 +:102D3000980F983050F4877091E001C0990F8A95F0 +:102D4000EAF7892F0E94DD1EDFCF9BE5980F9330B5 +:102D500020F480E090E00C946D14885A833120F4C4 +:102D600080E090E00C9483140895882321F00E9461 +:102D7000D71E0C941E1F0895882321F00E94DD1E8B +:102D80000C941E1F08957F928F929F92AF92BF92D4 +:102D9000CF92DF92EF92FF920F931F93CF93DF9327 +:102DA0001F92CDB7DEB77C01C62E772EFC010581C0 +:102DB00002950F70128111110E94F41E0E94941E40 +:102DC000882379F0112369F080E28C0D883048F077 +:102DD00082E00E947D1E0E94941E91E0D82ED9268A +:102DE00001C0D12CE72DE295EF70F0E0E05AFF4FE3 +:102DF0000C942D2B872D807F072D0F70882311F0C9 +:102E00000295007F112389F0002309F498C180E224 +:102E10008C0D883020F4802F0E94D71E03C0802F95 +:102E20000E94E71E0E941E1F8AC18C2D0E946616FA +:102E3000002309F49DC180E28C0D883020F4802F9E +:102E40000E94DD1E03C0802F0E94ED1E0E941E1FE7 +:102E50008FC1872D807F972D9F70803211F4892F2D +:102E600003C0892F8295807FCC2021F0F1E0CF161E +:102E7000A1F01DC0112339F0002319F1013009F52B +:102E80000E94071F75C1002319F0013009F470C1B9 +:102E900089830E940A1F898110C1112321F0063005 +:102EA00008F066C10EC0053008F062C106C11123EA +:102EB00059F0002331F0F701958190FF40C19F70D8 +:102EC00095830E94B51654C1002309F4F6C03DC194 +:102ED000872D86958695837090E0009719F001976D +:102EE00061F046C1112321F08C2D972D937002C003 +:102EF00080E090E00E946D143BC1112321F08C2DE5 +:102F0000972D937002C080E090E00E94831430C13E +:102F10008C2D112319F00E94B02202C00E941823A8 +:102F20000E949D2325C1872D837009F052C0111185 +:102F30001FC18C2D829586958770880F880F9C2DD8 +:102F40009F70892E912CA12CB12C082E04C0880CC6 +:102F5000991CAA1CBB1C0A94D2F7C4FE14C00FE033 +:102F600010E020E030E0B901A80104C0440F551F73 +:102F7000661F771F8A95D2F7CB01BA0160957095CD +:102F80008095909503C060E070E0CB01272D2695D9 +:102F90002695237030E02230310569F02330310569 +:102FA00089F0682979298A299B292130310571F016 +:102FB0000E94091DDDC0682979298A299B290E9460 +:102FC000251DD6C00E94091DC501B4010E94ED1C3B +:102FD000CFC0112319F0872D817001C086958823F9 +:102FE00009F4C6C08C2D829586958770880F880F4E +:102FF0009C2D9F70892E912CA12CB12C082E04C0E1 +:10300000880C991CAA1CBB1C0A94D2F7C4FE14C0DD +:103010000FE010E020E030E0B901A80104C0440F47 +:10302000551F661F771F8A95D2F7CB01BA016095AD +:1030300070958095909503C060E070E0CB01272DDE +:10304000269526952370422F50E04230510569F0B5 +:103050004330510589F0682979298A299B29413013 +:10306000510571F00E94E31D83C0682979298A29DE +:103070009B290E94FF1D7CC00E94E31DC501B40175 +:103080000E94C71D75C08C2D90E0FC01E05EF10927 +:10309000E531F10508F04FC0E059FF4F0C942D2B9E +:1030A0000C2D0F70872D8F71112321F00E94601D50 +:1030B000802F07CF0E94811D802F0E94BC1658C010 +:1030C000112341F0053008F053C0872D8F710E9405 +:1030D000A61D4EC0063008F04BC0F7CF112339F0C3 +:1030E000872D8F710E94601D43C01123C9F3872D66 +:1030F0008F710E94811D3CC0112329F0872D8F7193 +:103100000E944B1D35C00E94411D32C0112351F059 +:10311000172D1F71812F0E94601D63E0812F0E9477 +:10312000741E26C081E00E947D1E023008F182E0FC +:103130000E947D1E1DC0112331F0002389F28C2DC9 +:103140000E949E1515C0002391F28C2D0E946616D8 +:103150000FC0472D4F706C2DC7010E9483070E943E +:10316000651C06C0472D4F706C2DC7010E943908A1 +:10317000DD20F9F00E94701E80FD1BC0F701128255 +:103180000E946A1E0E94601DC7010E94E8180E94EA +:103190006A1E0F90DF91CF911F910F91FF90EF90DA +:1031A000DF90CF90BF90AF909F908F907F900C94C6 +:1031B000811D0F90DF91CF911F910F91FF90EF90A4 +:1031C000DF90CF90BF90AF909F908F907F900895A9 +:1031D0000F931F93CF93DF93EC01888199812B810B +:1031E0003C81232BB9F09F3F11F48F3F99F0CE0122 +:1031F0000E948D07882371F0688179818A810E94FD +:10320000661E8C010E941B1E0E94E21CB801CE01AA +:103210000E94C316DF91CF911F910F9108950E94D4 +:10322000F41E0E94041F0E94C91E0E941E1F0E94BD +:10323000D0240E949D2380E090E00E946D1480E0E5 +:1032400090E00C9483140E94E41E0C940F190E94C9 +:103250005B1E292F22952F7030E02C3031054CF465 +:103260002A3031056CF42250310922303105A8F49E +:1032700007C02C30310569F02F30310551F00DC0F9 +:10328000803F69F018F4803E40F409C0843F29F47F +:1032900006C093FB882780F9089580E0089581E0B7 +:1032A0000895CF93DF9300D000D01F92CDB7DEB743 +:1032B0000F900F900F900F900F90DF91CF91089586 +:1032C000CF93DF9300D000D000D0CDB7DEB72696E5 +:1032D0000FB6F894DEBF0FBECDBFDF91CF9108953A +:1032E0001F93CF93DF93C0917C0116E080917D0105 +:1032F000C81799F0D0E01C9FF0011D9FF00D11241C +:10330000E258FE4F408151816281738184819581B1 +:103310000E9460192196C770E9CFDF91CF911F916C +:1033200008954091AE015091AF016091B00170914C +:10333000B1018091B2019091B3010C946019809118 +:10334000B30182958F7009F054C08091B001882339 +:1033500009F44FC080917C01A0917D016091AE0184 +:103360007091AF014091B1015091B201B6E08A175E +:1033700009F43FC090E041155105C1F17F3F11F4C0 +:103380006F3FA1F1B89FF001B99FF00D1124E258F1 +:10339000FE4F218172132AC02081621327C022812F +:1033A000211124C0238134812417350710F42150C2 +:1033B0003109241B350B283C3105C0F42091B301A1 +:1033C0002F7020612093B30126E0289FF001299FF0 +:1033D000F00D1124ED57FE4F80818F708061808346 +:1033E0008EEA91E00E94E8180C947019019687709B +:1033F000BECF0895CF92DF92EF92FF920F931F936B +:10340000CF93DF93CDB7DEB762970FB6F894DEBFE8 +:103410000FBECDBF8C0185E0F801DE011D96019045 +:103420000D928A95E1F7D8014C9111965C91119714 +:1034300012966C9112971396CD90DC901497309160 +:10344000AE017091AF018091B1019091B2010097EE +:1034500009F46BC17F3F19F43F3F09F466C1E09066 +:10346000B001EE2009F4C0C02091B301C816D906FE +:1034700028F0F601E81BF90BCF0104C08095909568 +:103480008C0D9D1DFF24F394883C910578F0F12C60 +:10349000207F09F0C6C07C2DD98AC88A89890E94FC +:1034A00051198EEA91E00E94E818B1C0822F807F06 +:1034B00009F046C0751314C0341312C0611110C056 +:1034C0002F7020612093B3010E9491198EEA91E040 +:1034D0000E94E8188091B301D80115968C932EC0F4 +:1034E000CD2819F15F3F11F44F3FF9F0F62E61112D +:1034F0001CC080917C0120917D0136E0821709F487 +:103500005AC090E0389FF001399FF00D1124E25825 +:10351000FE4F7181571306C07081471303C072813B +:10352000711103C001968770E9CFF62E662309F466 +:1035300018C18091B30181608093B301F12C11C156 +:10354000751308C0341306C0611104C08091B30123 +:10355000D801C3C04D875E878D859E856A8B0E948A +:1035600027196A898823E1F16623D1F12091B301FB +:10357000822F82958F7090E0029774F08091AE0157 +:103580009091AF0198878F831986DB86CA862C8736 +:10359000CE0107960E94E81886E0F801AEEAB1E095 +:1035A00001900D928A95E1F70E949F190E9491194E +:1035B000FF24F394D6C04D875E878D859E850E943B +:1035C0005B1E292F22952F7030E0223031050CF040 +:1035D000BCC09F7009F0B6C0805E883008F4C1C0DE +:1035E000C8010E94E818E4CFC816D90608F453C0F1 +:1035F000F601E81BF90BCF01883C910508F450C097 +:10360000F12C7C2DD98AC88A89890E945119EEEA49 +:10361000F1E086E0DF011D928A95E9F70E94911999 +:10362000A0C0751314C0341312C0611110C0809172 +:10363000B301F8018583C8010E94E81886E0EEEA2C +:10364000F1E0DF011D928A95E9F7FE2C8AC04D87D3 +:103650005E878D859E856A8B0E9427196A898823DB +:1036600009F4BECF662309F4BBCF2091B301822FAA +:1036700082958F7090E002970CF48ECF8091AE010E +:103680009091AF019A8389831B82DD82CC822E8345 +:10369000CE0101967FCF809590958C0D9D1DACCF6E +:1036A000F62E662309F49CCF75132EC034132CC05C +:1036B0002091B30120FD1FC0822F82958F70D9F019 +:1036C000D80115962C9315978F3049F08F5F982F5E +:1036D0009295907F822F8F70892B15968C93C801BD +:1036E0000E94E81886E0F801AEEAB1E001900D9280 +:1036F0008A95E1F793CF86E0F801AEEAB1E0019058 +:103700000D928A95E1F72DC04D875E878D859E8548 +:103710000E942719811140CF8091B301816080936D +:10372000B301C8010E94E8181CC0662309F458CFF1 +:103730004D875E878D859E850E942719882309F411 +:103740004FCF2ACF811148CF0CC0243031050CF067 +:1037500047CF9F7009F440CFF8019581907F09F021 +:103760003BCF8F2D62960FB6F894DEBF0FBECDBF54 +:10377000DF91CF911F910F91FF90EF90DF90CF904D +:1037800008951F93CF93DF93CDB7DEB72C970FB675 +:10379000F894DEBF0FBECDBF4F83588769877A8705 +:1037A0008B879C87CE0107960E94FA19882369F0BF +:1037B0008F8198852A853B85232BF1F19F3F09F066 +:1037C00063C08F3F09F060C037C086E0FE013796C6 +:1037D000DE01119601900D928A95E1F76F8178854F +:1037E000EA85FB85309741F17F3F11F46F3F21F16E +:1037F00020917D0130E0C9010196877099274091A1 +:103800007C0150E08417950709F447C069837A83E7 +:10381000FD83EC8396E0929FD001939FB00D11241D +:10382000A258BE4FFE01319601900D929A95E1F794 +:1038300080937D010E94701916E080917C01909127 +:103840007D018917C1F1189FC001112482589E4F34 +:103850000E94FA19882379F1E0917C011E9FF00102 +:103860001124E258FE4F408151816281738184812D +:1038700095810E94601980917C0190E0019687708B +:10388000992780937C01D9CF4F81588569857A85A6 +:103890008B859C850E946019CFCF0E9423191092BE +:1038A0007D0110927C01EEEAF1E086E0DF011D92DD +:1038B0008A95E9F7C1CF2C960FB6F894DEBF0FBEFC +:1038C000CDBFDF91CF911F910895EF92FF920F939B +:1038D0001F93CF93DF938C01009709F46CC0F12CF8 +:1038E000EE24E394E8012196F8018491843740F4B2 +:1038F000843008F051C0813081F0823019F15BC012 +:10390000853709F444C0A8F19CE7980F903708F078 +:1039100052C08F770E94661641C00E5F1F4FFE0196 +:10392000C49180E28C0F883048F4C7708E2D01C09E +:10393000880FCA95EAF70E94F71E14C08C2F0E94C8 +:103940009E152DC00E5F1F4FFE01C49180E28C0FAB +:10395000883058F4C7708E2D01C0880FCA95EAF7D9 +:103960000E94FD1E0E941E1F1AC08C2F0E94661608 +:1039700016C00E5F1F4FFE01C491CC2381F08FE96A +:103980009FE00197F1F700C00000C150F6CF0E5F35 +:103990001F4FFE01F49003C00E949E158E018F2DD3 +:1039A000882309F49FCFEFE9FFE03197F1F700C0DA +:1039B00000008150F5CFDF91CF911F910F91FF90C3 +:1039C000EF90089508956093B8017093B9018093C2 +:1039D000BA019093BB010C940F190F931F930091A0 +:1039E000B8011091B9012091BA013091BB01DC01FD +:1039F000CB01802B912BA22BB32B8093B8019093FA +:103A0000B901A093BA01B093BB011F910F910C941F +:103A10000F190F931F930091B8011091B9012091D4 +:103A2000BA013091BB01DC01CB0180239123A22399 +:103A3000B3238093B8019093B901A093BA01B093D6 +:103A4000BB011F910F910C940F190F931F930091BD +:103A5000B8011091B9012091BA013091BB01DC018C +:103A6000CB0180279127A227B3278093B801909399 +:103A7000B901A093BA01B093BB011F910F910C94AF +:103A80000F191092B4011092B5011092B601109264 +:103A9000B7010C940F1941E050E060E070E004C001 +:103AA000440F551F661F771F8A95D2F74093B401C4 +:103AB0005093B5016093B6017093B7010C940F1940 +:103AC00041E050E060E070E004C0440F551F661F05 +:103AD000771F8A95D2F78091B4019091B501A0919A +:103AE000B601B091B701482B592B6A2B7B2B409321 +:103AF000B4015093B5016093B6017093B7010C9473 +:103B00000F1941E050E060E070E004C0440F551F21 +:103B1000661F771F8A95D2F74095509560957095EE +:103B20008091B4019091B501A091B601B091B70117 +:103B3000482359236A237B234093B4015093B50152 +:103B40006093B6017093B7010C940F1941E050E0F7 +:103B500060E070E004C0440F551F661F771F8A9510 +:103B6000D2F78091B4019091B501A091B601B091C6 +:103B7000B701482759276A277B274093B401509300 +:103B8000B5016093B6017093B7010C940F190F93B0 +:103B90001F930091B4011091B5012091B6013091AD +:103BA000B701DC01CB01802B912BA22BB32B80938F +:103BB000B4019093B501A093B601B093B7011F91E2 +:103BC0000F910C940F190F931F930091B401109152 +:103BD000B5012091B6013091B701DC01CB01802302 +:103BE0009123A223B3238093B4019093B501A093B2 +:103BF000B601B093B7011F910F910C940F190F9359 +:103C00001F930091B4011091B5012091B60130913C +:103C1000B701DC01CB0180279127A227B32780932E +:103C2000B4019093B501A093B601B093B7011F9171 +:103C30000F910C940F190895CF92DF92EF92FF929B +:103C40000F931F93CF93DF938C01C090B801D09056 +:103C5000B901E090BA01F090BB018091B40190915C +:103C6000B501A091B601B091B701C82AD92AEA2AB4 +:103C7000FB2ACFE1D0E0D701C6010C2E04C0B695D7 +:103C8000A795979587950A94D2F780FF06C0B8014B +:103C90008C2F0E94930A019721F4219760F780E00E +:103CA00001C08C2FDF91CF911F910F91FF90EF906A +:103CB000DF90CF900895CF93DF93EC010E941C1EFC +:103CC000BE010E94930ADF91CF910895CB010E941B +:103CD0005B1E08958091BC01859585958595089515 +:103CE0008091BC018770089598E0899F900111240C +:103CF000262B2093BC010C94601D2091BC01809563 +:103D000082238093BC01982F977069F430E0482F8C +:103D1000552747FD50952417350729F0859585953A +:103D200085950C94811D08959091BC01977081E058 +:103D300009F480E0089520910C0130910D01F90102 +:103D400032969FEF40E05191581789F09F3F19F448 +:103D5000511101C0942F4F5F4630A9F79F3F39F0B2 +:103D6000F901E90FF11D97FDFA95828308950895F1 +:103D700020910C0130910D01F9013296285F3F4FDF +:103D80009081981301C010823196E217F307C1F7B2 +:103D9000089581E090E0E0910C01F0910D01E80FB1 +:103DA000F91F1082019688309105A9F70895909126 +:103DB000C801892B8093C801089580959091C8010E +:103DC00089238093C80108951092C80108959091A5 +:103DD000C701892B8093C701089580959091C701F1 +:103DE00089238093C70108951092C7010895909187 +:103DF000C601892B8093C601089580959091C601D4 +:103E000089238093C60108951092C6010895809376 +:103E1000BD0108951092BD01089580910C0190910B +:103E20000D01FC0131969C01285F3F4F80E091918C +:103E300091118F5FE217F307D1F70895E0910C011C +:103E4000F0910D018091C8018083E0910C01F09107 +:103E50000D0190818091C701892B8083E0910C0135 +:103E6000F0910D0190818091C601892B8083809112 +:103E7000BD01882361F0E0910C01F0910D0190816A +:103E8000892B80830E940D1F81111092BD018091AA +:103E90000C0190910D010C9419149093430180939F +:103EA0004201089520E0009739F0AC0141505109DA +:103EB000842395232F5FF7CF822F08958295982F23 +:103EC0009C7C392F36953695282F237344E0249F08 +:103ED000C0011124932F982B292F2A7A2695892FF8 +:103EE0008575880F822B08951F93CF93DF931F92C0 +:103EF000CDB7DEB799830E945E1F182F9981892F55 +:103F00000E945E1F212F30E0322F2227A901482B6B +:103F1000CA010F90DF91CF911F9108958091DE012A +:103F2000843021F11092CA0120E488E190E00FB6BC +:103F3000F894A895809360000FBE2093600080E005 +:103F40000E942E0B83B7817F846083BF83B781601B +:103F500083BF7894889583B78E7F83BF88E10FB63F +:103F6000F89480936000109260000FBE0895089549 +:103F700008950E94B71F0E94890B0E94B81F0E94DB +:103F80005D0C91E0811101C090E0892F08950E949D +:103F900023190E940D140C942E0B1F920F920FB632 +:103FA0000F9211248F939F93AF93BF938091CA0177 +:103FB000811113C08091CB019091CC01A091CD01D2 +:103FC000B091CE014196A11DB11D8093CB0190937C +:103FD000CC01A093CD01B093CE01BF91AF919F9141 +:103FE0008F910F900FBE0F901F90189582E084BDA7 +:103FF00093E095BD9AEF97BD80936E0008952FB71B +:10400000F8948091CB019091CC01A091CD01B09119 +:10401000CE012FBF0895CF92DF92EF92FF920F93C0 +:104020001F932FB7F8944091CB015091CC01609130 +:10403000CD017091CE012FBF6A017B01EE24FF24D8 +:104040008C0120E030E0C016D106E206F30610F441 +:10405000415051099A01281B390BC9011F910F9139 +:10406000FF90EF90DF90CF9008951F920F920FB6C0 +:104070000F9211248F939F93AF93BF938091CB01A5 +:104080009091CC01A091CD01B091CE010196A11DDE +:10409000B11D8093CB019093CC01A093CD01B0933F +:1040A000CE01BF91AF919F918F910F900FBE0F9056 +:1040B0001F9018950E940B11F8942FEF87EA91E654 +:1040C000215080409040E1F700C0000087E090EB75 +:1040D000DC018093E8019093E901A093EA01B09399 +:1040E000EB019CE088E10FB6F894A89580936000FE +:1040F0000FBE90936000FFCFCF92DF92EF92FF92BE +:104100000F931F93CF93DF93D82FC3E0EE24E39454 +:10411000F12C8C2F0E941A0C6C010BE010E097011F +:10412000002E02C0220F331F0A94E2F72C213D21FA +:10413000232B49F0602F7C2F80E00E943A08D8138F +:1041400002C081E006C00150110948F7C15008F7CC +:1041500080E0DF91CF911F910F91FF90EF90DF9062 +:10416000CF900895CF93C82F8CE20E947C208823A3 +:1041700021F08C2FCF910C947C2080E0CF9108957A +:10418000CF930E940822811102C00E94EE218AE989 +:1041900094E00E94DB06C5E6C15049F00E94890BFD +:1041A0008FE39CE90197F1F700C00000F5CF83E9A8 +:1041B00094E00E94DB0689E20E94B22081110CC1CA +:1041C0008AE20E94B22081110E94EE2185E00E94C5 +:1041D000B22081110E945A200E9413228093C901AB +:1041E00087E00E94B2208823A9F18BE10E94B220CF +:1041F000882351F08091C90181FB222720F991E0A9 +:10420000922790FB81F90EC08EE00E94B220882395 +:1042100061F08091C90182FB222720F991E0922769 +:1042200090FB82F98093C90115C080E10E94B22001 +:104230009091C901882341F093FB222720F981E066 +:10424000822780FB93F904C0892F809580FB90F929 +:104250009093C9018091C9010E9417220E942522D2 +:104260008093E70180EE0E94B220882341F0809184 +:10427000E701982F909590FB80F98093E70189E3FF +:104280000E94B220882359F08091E70181FB222708 +:1042900020F991E0922790FB81F98093E70182EE6B +:1042A0000E94B220882359F08091E70182FB2227E7 +:1042B00020F991E0922790FB82F98093E70186EE46 +:1042C0000E94B220882359F08091E70183FB2227C6 +:1042D00020F991E0922790FB83F98093E70183EE28 +:1042E0000E94B220882359F08091E70184FB2227A5 +:1042F00020F991E0922790FB84F98093E70185E310 +:104300000E94B220882359F08091E70185FB222783 +:1043100020F991E0922790FB85F98093E70181E3F2 +:104320000E94B220882359F08091E70186FB222762 +:1043300020F991E0922790FB86F98093E70181E1D3 +:104340000E94B220882359F08091E70187FB222741 +:1043500020F991E0922790FB87F98093E701809103 +:10436000E7010E94292287E20E94B220C82F8EE135 +:104370000E94B2208111C2608FE10E94B22081119F +:10438000C46080E20E94B2208111C86081E20E9474 +:10439000B2208111C06182E20E94B2208111C0620C +:1043A00083E20E94B2208111C06484E20E94B220A4 +:1043B000882311F0C06802C0CC2329F08C2F0E9402 +:1043C00020226C2F03C00E941C22682F70E080E026 +:1043D00090E0CF910C94E31CCF9108956DEE7EEFA9 +:1043E00080E090E00E94672B60E082E090E00E9415 +:1043F000552B60E083E090E00E94552B60E084E064 +:1044000090E00E94552B60E085E090E00C94552BE5 +:1044100080E090E00E944F2B21E08D3E9E4F09F0FE +:1044200020E0822F089582E090E00C94472B682FC3 +:1044300082E090E00C94552B83E090E00C94472BA5 +:10444000682F83E090E00C94552B84E090E00C946E +:10445000472B682F84E090E00C94552B8091D1017C +:1044600080FF0BC06091110185E0689FB0011124AD +:1044700075956795759567952BC081FF09C060910B +:10448000110185E0689FB00111247595679520C0E2 +:1044900082FF07C06091110185E0689FB00111247F +:1044A00017C09091D2019923D1F060911001961715 +:1044B00088F72091110185E0289F90011124929F97 +:1044C000A001939F500D112470E0CA010E94192B86 +:1044D0006038710540F46115710539F002C065E07E +:1044E00070E0862F08958FE7089581E00895809108 +:1044F000D10180FF08C060910F0170E0759567954C +:104500007595679521C081FF06C060910F0170E02D +:104510007595679519C082FF04C060910F0170E026 +:1045200010C09091D2019923C1F060910E019617AD +:10453000A0F780910F01899FC001112470E00E94B3 +:10454000192B6038710528F46115710521F0862F4B +:1045500008958FE7089581E0089561E070E0F4CF59 +:10456000803F21F40E942E22819504C0813F29F4CE +:104570000E942E228093D5010895823F21F40E944B +:104580002E22819504C0833F29F40E942E2280931D +:10459000D4010895893F19F40E94772205C08A3F0B +:1045A00031F40E94772281958093D60108958B3F44 +:1045B00021F40E947722819504C08C3F29F40E9447 +:1045C00077228093D7010895843F21F48091D3010D +:1045D000816017C0853F21F48091D301826011C0B2 +:1045E000863F21F48091D30184600BC0873F21F482 +:1045F0008091D301886005C0883F31F48091D30158 +:1046000080618093D30108958D3F21F48091D10181 +:1046100081600BC08E3F21F48091D101826005C082 +:104620008F3F29F48091D10184608093D101089556 +:10463000803F39F48091D50187FF6CC01092D5017D +:1046400069C0813F29F48091D5011816BCF362C07E +:104650009091D401823F29F497FF5CC01092D4015D +:1046600059C0833F19F41916CCF354C0893F41F463 +:104670008091D60118160CF04DC01092D6014AC098 +:104680008A3F29F48091D60187FF44C0F6CF8B3F43 +:1046900039F48091D70187FF3DC01092D7013AC00D +:1046A0008C3F29F48091D7011816BCF333C0843FA6 +:1046B00021F48091D3018E7F17C0853F21F4809132 +:1046C000D3018D7F11C0863F21F48091D3018B7F70 +:1046D0000BC0873F21F48091D301877F05C0883FBD +:1046E00031F48091D3018F7E8093D30113C08D3F2D +:1046F00021F48091D1018E7F0BC08E3F21F48091F7 +:10470000D1018D7F05C08F3F29F48091D1018B7F2E +:104710008093D1018091D40181110EC08091D50187 +:1047200081110AC08091D601811106C08091D70104 +:10473000811102C01092D20108958091C90183FFB6 +:104740007EC086ED94E00E94DB068091D3011F922B +:104750008F9381ED94E09F938F930E9474078FEC69 +:1047600094E00E94DB068091D401282F332727FD97 +:1047700030953F938F938CEC94E09F938F930E949E +:1047800074078AEC94E00E94DB068091D501282F03 +:10479000332727FD30953F938F9387EC94E09F93C9 +:1047A0008F930E94740785EC94E00E94DB06809151 +:1047B000D601282F332727FD30953F938F9382EC26 +:1047C00094E09F938F930E94740780EC94E00E9482 +:1047D000DB068091D701282F332727FD30953F93A3 +:1047E0008F938DEB94E09F938F930E9474078AEBD5 +:1047F00094E00E94DB068091D2011F928F9387EB99 +:1048000094E09F938F930E94740785EB94E00E943D +:10481000DB068091D1011F928F9382EB94E09F93EE +:104820008F930E9474078FEA94E00E94DB068DB795 +:104830009EB74C960FB6F8949EBF0FBE8DBF83ED0A +:1048400091E00E9462140E94FF1F9093D001809318 +:10485000CF0108951F93CF93DF938091CF01909163 +:10486000D0010E940B20AC019091D201992321F03C +:104870002091120130E006C0209113018AE0289FA8 +:10488000900111244217530708F486C08091D40187 +:10489000C091D501D091D6011091D701811107C0E7 +:1048A000C11176C0D11174C0111172C075C09F3F83 +:1048B00019F09F5F9093D201181624F40E942E22C3 +:1048C0008093D4018091D40187FF05C00E942E22DD +:1048D00081958093D4011C1624F40E942E2280938B +:1048E000D5018091D50187FF05C00E942E228195B8 +:1048F0008093D5016091D401662339F1C091D5012F +:10490000CC2319F1772767FD7095872F972F0E9489 +:104910001E2A23E333E343E35FE30E94822A0E94DB +:10492000EB296093D4016C2F772767FD7095872F53 +:10493000972F0E941E2A23E333E343E35FE30E94A1 +:10494000822A0E94EB296093D5011D1624F40E944F +:1049500077228093D6018091D60187FF05C00E94FF +:10496000772281958093D601111624F40E94772234 +:104970008093D7018091D70187FF05C00E947722DD +:1049800081958093D701DF91CF911F910C949D2346 +:104990009F3F09F08ECF96CFDF91CF911F91089561 +:1049A000E3EDF1E085E0DF011D928A95E9F71092D1 +:1049B000D2011092D101089589EF96E00E94DB06A2 +:1049C0001F9281E08F931F9285E08F938BEA96E090 +:1049D0009F938F930E9474070F900F900F900F90EA +:1049E0000F900F9008958330E9F128F4813061F041 +:1049F000823009F10895853009F462C008F449C095 +:104A0000863009F474C0089580911301262F30E098 +:104A1000280F311D2F3F310524F4680F60931301D7 +:104A200003C08FEF80931301809113011F928F9326 +:104A300084EE95E072C080911201262F30E0280F9D +:104A4000311D2F3F310524F4680F6093120103C01C +:104A50008FEF80931201809112011F928F9382ED4C +:104A600095E05BC080911101262F30E0280F311DA9 +:104A70002F3F310524F4680F6093110103C08FEFBD +:104A800080931101809111011F928F938FEB95E01C +:104A900044C080911001262F30E0280F311D2F3F98 +:104AA000310524F4680F6093100103C08FEF8093E9 +:104AB0001001809110011F928F938AEA95E02DC01A +:104AC00080910F01262F30E0280F311D2F3F310537 +:104AD00024F4680F60930F0103C08FEF80930F01E0 +:104AE00080910F011F928F9381E995E016C080910C +:104AF0000E01262F30E0280F311D2F3F310524F401 +:104B0000680F60930E0103C08FEF80930E018091B8 +:104B10000E011F928F9386E795E09F938F930E94DB +:104B200074070F900F900F900F900895833081F1CC +:104B300028F4813059F08230D1F00895853009F49D +:104B400049C0B8F1863009F456C008958091130128 +:104B5000681720F4861B8093130102C01092130182 +:104B6000809113011F928F9387E695E054C0809146 +:104B70001201681720F4861B8093120102C0109264 +:104B80001201809112011F928F9385E595E043C039 +:104B900080911101681720F4861B8093110102C0D7 +:104BA00010921101809111011F928F9382E495E080 +:104BB00032C080911001681720F4861B8093100189 +:104BC00002C010921001809110011F928F938DE20C +:104BD00095E021C080910F01681720F4861B809317 +:104BE0000F0102C010920F0180910F011F928F934D +:104BF00084E195E010C080910E01681720F4861BB7 +:104C000080930E0102C010920E0180910E011F923E +:104C10008F9389EF94E09F938F930E9474070F9076 +:104C20000F900F900F900895CF93C82F1F928F93DE +:104C30008EEF97E09F938F930E94740781E090E03E +:104C4000A0E0B0E0BC01CD0104C0660F771F881F53 +:104C5000991FCA95D2F70E94E31C0F900F900F90F6 +:104C60000F90CF910C942319CF938732B0F58E31EA +:104C700008F04AC28E3009F4C4C100F5873009F447 +:104C80008DC1A8F4863009F045C28091C901817FA9 +:104C90008E7F8093C90189E699E00E94DB0682E05D +:104CA0009DE00E94DB0681E08093D90175C18830C8 +:104CB00009F43FC08B3009F46BC12CC2863109F472 +:104CC000E6C120F4803109F4B0C124C2893109F46D +:104CD000C7C18B3109F481C11DC2883309F458C1A1 +:104CE00050F4893209F412C2853309F40FC28732B5 +:104CF00009F40CC20FC2833409F408C228F48A33C1 +:104D000008F408C2895303C2883409F003C20E9420 +:104D1000231986EE9CE00E94DB069FEF23ED80E3E3 +:104D2000915020408040E1F700C000000E945A20CE +:104D300033C186E09DE00E94DB0688E69CE00E948D +:104D4000DB060E941C221F928F9385E69CE09F93B6 +:104D50008F930E94740783E69CE00E94DB060E940A +:104D60001322C82F80E59CE00E94DB061F92CF93A0 +:104D70008BE49CE09F938F930E94740789E49CE0EE +:104D80000E94DB068FE39CE00E94DB068C2F817083 +:104D90001F928F938CE39CE09F938F930E947407E4 +:104DA0008AE39CE00E94DB0680E39CE00E94DB0635 +:104DB000C1FB882780F91F928F938DE29CE09F931F +:104DC0008F930E9474078BE29CE00E94DB068FE1C8 +:104DD0009CE00E94DB06C2FB882780F91F928F931C +:104DE0008CE19CE09F938F930E9474078AE19CE082 +:104DF0000E94DB0681E19CE00E94DB06C3FBCC271E +:104E0000C0F91F92CF938EE09CE09F938F930E94F6 +:104E100074078CE09CE00E94DB060E942522C82FCC +:104E200088EF9BE00E94DB061F92CF9383EF9BE00D +:104E30009F938F930E94740781EF9BE00E94DB0693 +:104E400088ED9BE00E94DB068C2F81701F928F9370 +:104E500085ED9BE09F938F930E9474078DB79EB75B +:104E600080960FB6F8949EBF0FBE8DBF83ED9BE07A +:104E70000E94DB068CEB9BE00E94DB06C1FB8827CF +:104E800080F91F928F9389EB9BE09F938F930E94F1 +:104E9000740787EB9BE00E94DB0685EA9BE00E949B +:104EA000DB06C2FB882780F91F928F9382EA9BE082 +:104EB0009F938F930E94740780EA9BE00E94DB0619 +:104EC0008EE89BE00E94DB06C3FB882780F91F92D7 +:104ED0008F938BE89BE09F938F930E94740789E8E0 +:104EE0009BE00E94DB068FE79BE00E94DB06C4FB91 +:104EF000882780F91F928F938CE79BE09F938F9375 +:104F00000E9474078AE79BE00E94DB0688E69BE02C +:104F10000E94DB06C5FB882780F91F928F9385E6E8 +:104F20009BE09F938F930E94740783E69BE00E940F +:104F3000DB0687E49BE00E94DB06C6FB882780F93E +:104F40001F928F9384E49BE09F938F930E9474073A +:104F500082E49BE00E94DB068AE39BE00E94DB0682 +:104F6000C7FBCC27C0F91F92CF9387E39BE09F93A9 +:104F70008F930E94740785E39BE00E94DB068DB748 +:104F80009EB74C960FB6F8949EBF0FBE8DBF04C05F +:104F900080E999E00E94DB06C1E0C1C08091C901AF +:104FA000C82FC095C170C0FB80F98093C901CC2384 +:104FB00049F08AED9CE00E94DB068091C901866081 +:104FC000886048C08DEC9CE00E94DB068091C9019E +:104FD000897F877F8093C901DFCF9091C90191FBC1 +:104FE000CC27C0F981E0C827892FC0FB81F98093C5 +:104FF000C901CC2319F080EC9CE027C082EB9CE037 +:10500000C9CF9091C90192FBCC27C0F981E0C82794 +:10501000892FC0FB82F98093C901CC2319F083EA60 +:105020009CE013C083E99CE0B5CF9091C90193FB4C +:10503000CC27C0F981E0C827892FC0FB83F9809372 +:10504000C901CC2351F087E89CE00E94DB068091E7 +:10505000C90181608093C90162C08AE79CE09ACF50 +:105060008AE599E00E94DB0681E499E00E94DB0674 +:1050700080E099E00E94DB0683ED98E00E94DB0669 +:1050800084E998E00E94DB0689E698E083CF8BE50F +:1050900098E00E94DB060E940D141F928F9381E41A +:1050A00098E09F938F930E94740780910B011F9249 +:1050B0008F938AE298E09F938F930E947407809168 +:1050C0006C011F928F9387E198E09F938F930E94CA +:1050D00074078091CB019091CC01A091CD01B0914A +:1050E000CE01BF93AF939F938F9383E098E09F93FC +:1050F0008F930E9474078DB79EB742960FB6F894AF +:105100009EBF0FBE8DBF48CF8D5101C080E00E9471 +:10511000142642CF88E79CE00E94DB06C0E08C2F7B +:10512000CF91089580E0089580E00895CF93C82F2F +:105130008091D901813071F020F0823009F44BC0A8 +:1051400042C1E0910C01F0910D018081823209F0A1 +:105150003CC107C0E0910C01F0910D0180818232C9 +:1051600061F48C2F0E949228811104C08C2F0E9420 +:1051700034262FC081E090E02CC08C2F0E94942810 +:10518000811126C0C431E1F070F4CB3081F0C03120 +:10519000D1F40E94DC2486EF97E00E94DB0682E0D7 +:1051A0008093D90115C0C93259F0C83361F489E63A +:1051B00099E00E94DB068AEF97E00E94DB0608C0B8 +:1051C0001092D90104C184EF97E00E94DB06FFC072 +:1051D00081E08170FEC0C43228F5CE3108F0C1C034 +:1051E000CB30A1F1D0F4C73009F0D3C08EE1809369 +:1051F000130182E3809312018AE08093110184E11C +:105200008093100188E080930F0188E280930E0163 +:105210008AE996E00E94DB06BFC0C33149F1C43180 +:10522000C1F0B7C0CB3409F4A9C028F4C93289F061 +:10523000C83361F0AEC0C13509F49EC0C23509F46F +:1052400099C0CE3409F0A5C06AE09EC00E94DC245B +:10525000A3C08091D801882319F01092D8019CC076 +:1052600087EA96E00E94DB0681E08093D901B1C015 +:1052700081E896E00E94DB068FE696E00E94DB065E +:10528000809113011F928F938CE696E09F938F93EA +:105290000E9474078AE696E00E94DB0688E596E0A5 +:1052A0000E94DB06809112011F928F9385E596E0A4 +:1052B0009F938F930E94740783E596E00E94DB061C +:1052C00084E496E00E94DB06809111011F928F9387 +:1052D00081E496E09F938F930E9474078FE396E09A +:1052E0000E94DB068EE296E00E94DB0680911001B0 +:1052F0001F928F938BE296E09F938F930E94740787 +:1053000089E296E00E94DB0684E196E00E94DB06DB +:1053100080910F011F928F9381E196E09F938F936D +:105320000E9474078FE096E00E94DB0688EF95E00C +:105330000E94DB0680910E011F928F9385EF95E00E +:105340009F938F930E94740783EF95E00E94DB0682 +:105350008DB79EB748960FB6F8949EBF0FBE8DBF0F +:105360001BC0CE51EC2FF0E0E85CFE4F80818093B3 +:10537000D80112C061E003C061E006C06AE080911C +:10538000D8010E94F32408C08091D8010E9496257C +:1053900003C088E996E013C08091D801882369F0A2 +:1053A0001F928F9382E996E09F938F930E947407D8 +:1053B0000F900F900F900F9004C08FE896E00E941E +:1053C000DB0681E006C01092D90180E002C080E0D7 +:1053D00000CFCF91089504D06894B1118DC0089585 +:1053E00070D088F09F5790F0B92F9927B751A0F04F +:1053F000D1F0660F771F881F991F1AF0BA95C9F769 +:1054000012C0B13081F077D0B1E0089574C0672F39 +:10541000782F8827B85F39F0B93FCCF38695779518 +:105420006795B395D9F73EF4909580957095619501 +:105430007F4F8F4F9F4F0895E89409C097FB3EF42C +:1054400090958095709561957F4F8F4F9F4F9923D1 +:10545000A9F0F92F96E9BB279395F695879577954F +:105460006795B795F111F8CFFAF4BB0F11F460FF0F +:105470001BC06F5F7F4F8F4F9F4F16C0882311F067 +:1054800096E911C0772321F09EE8872F762F05C07B +:10549000662371F096E8862F70E060E02AF09A9516 +:1054A000660F771F881FDAF7880F9695879597F90B +:1054B000089557FD9058440F551F59F05F3F71F004 +:1054C0004795880F97FB991F61F09F3F79F087956B +:1054D0000895121613061406551FF2CF4695F1DFF4 +:1054E00008C0161617061806991FF1CF8695710584 +:1054F000610508940895E894BB2766277727CB01B8 +:1055000097F908950BD078C069D028F06ED018F0C4 +:10551000952309F05AC05FC01124EECFCADFA0F373 +:10552000959FD1F3950F50E0551F629FF001729F38 +:10553000BB27F00DB11D639FAA27F00DB11DAA1F57 +:10554000649F6627B00DA11D661F829F2227B00DA4 +:10555000A11D621F739FB00DA11D621F839FA00D2F +:10556000611D221F749F3327A00D611D231F849F7F +:10557000600D211D822F762F6A2F11249F575040D6 +:105580008AF0E1F088234AF0EE0FFF1FBB1F661F71 +:10559000771F881F91505040A9F79E3F510570F02A +:1055A00014C0AACF5F3FECF3983EDCF38695779565 +:1055B0006795B795F795E7959F5FC1F7FE2B880F25 +:1055C000911D9695879597F9089597F99F6780E8BB +:1055D00070E060E008959FEF80EC089500240A9445 +:1055E0001616170618060906089500240A941216BE +:1055F0001306140605060895092E0394000C11F4F1 +:10560000882352F0BB0F40F4BF2B11F460FF04C09D +:105610006F5F7F4F8F4F9F4F0895991B79E004C0B4 +:10562000991F961708F0961B881F7A95C9F78095E1 +:10563000089597FB072E16F4009407D077FD09D044 +:105640000E94332B07FC05D03EF4909581959F4F27 +:105650000895709561957F4F0895EE0FFF1F059097 +:10566000F491E02D0994AA1BBB1B51E107C0AA1FAE +:10567000BB1FA617B70710F0A61BB70B881F991FF3 +:105680005A95A9F780959095BC01CD010895F99997 +:10569000FECF92BD81BDF89A992780B50895A8E103 +:1056A000B0E042E050E00C946F2B262FF999FECF2A +:1056B00092BD81BDF89A019700B4021639F01FBA65 +:1056C00020BD0FB6F894FA9AF99A0FBE0895019684 +:1056D000272F0E94562B0C94552BDC01CB01FC018B +:1056E000F999FECF06C0F2BDE1BDF89A319600B43B +:0E56F0000D9241505040B8F70895F894FFCF46 +:1056FE00FF730C640D410D0D0DD90C01BE01280870 +:10570E00140A321E031323337309637F6F5F4F1F17 +:10571E000F6949593F4D36202104D4039E037E0361 +:10572E000A0323033C03550301020304050607087D +:02573E00090060 +:00000001FF diff --git a/keyboards/bantam44/keymaps/default/keymap.c b/keyboards/bantam44/keymaps/default/keymap.c new file mode 100644 index 000000000..ed795eee1 --- /dev/null +++ b/keyboards/bantam44/keymaps/default/keymap.c @@ -0,0 +1,30 @@ +#include "bantam44.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = { /* Base */ + {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC }, + {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_NO, KC_ENT }, + {KC_CAPS, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT }, + {KC_LCTL, KC_LGUI, KC_LALT, KC_NO, MO(1), KC_NO, KC_SPC, KC_NO, MO(2), KC_SCLN, KC_QUOT, KC_SLSH } + }, + [1] = { /* LOWER */ + {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELT }, + {KC_TAB, KC_MPRV, KC_MPLY, KC_MNXT, KC_GRV, KC_BSLS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_NO, KC_ENT }, + {KC_CAPS, KC_LSFT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_NO, KC_HOME, KC_PGUP, KC_RSFT }, + {KC_LCTL, KC_LGUI, KC_LALT, KC_NO, KC_TRNS, KC_NO, KC_SPC, KC_NO, KC_TRNS, KC_END, KC_PGDN, KC_EXLM } + }, + [2] = { /* RAISE */ + {KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DELT }, + {KC_TAB, KC_MUTE, KC_VOLD, KC_VOLU, KC_TILD, KC_PIPE, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_NO, KC_ENT }, + {KC_CAPS, KC_LSFT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, KC_UP, KC_RSFT }, + {KC_LCTL, KC_LGUI, KC_LALT, KC_NO, KC_TRNS, KC_NO, KC_SPC, KC_NO, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT } + } +}; + +const uint16_t PROGMEM fn_actions[] = { +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // MACRODOWN only works in this function +{ + return MACRO_NONE; +}; \ No newline at end of file diff --git a/keyboards/clueboard1/Makefile b/keyboards/clueboard1/Makefile new file mode 100644 index 000000000..98ad148c7 --- /dev/null +++ b/keyboards/clueboard1/Makefile @@ -0,0 +1,72 @@ + + +# # project specific files +SRC = led.c + +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= no # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= yes # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +AUDIO_ENABLE ?= no +RGBLIGHT_ENABLE ?= no # Enable keyboard underlight functionality +MIDI_ENABLE ?= no # MIDI controls +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID + +ifndef QUANTUM_DIR + include ../../Makefile +endif diff --git a/keyboards/clueboard1/clueboard1.c b/keyboards/clueboard1/clueboard1.c new file mode 100644 index 000000000..136ddf15b --- /dev/null +++ b/keyboards/clueboard1/clueboard1.c @@ -0,0 +1,19 @@ +#include "clueboard1.h" + +__attribute__ ((weak)) +void matrix_init_user(void) { + // leave these blank +} + +__attribute__ ((weak)) +void matrix_scan_user(void) { + // leave these blank +} + +void matrix_init_kb(void) { + matrix_init_user(); +} + +void matrix_scan_kb(void) { + matrix_scan_user(); +} diff --git a/keyboards/clueboard1/clueboard1.h b/keyboards/clueboard1/clueboard1.h new file mode 100644 index 000000000..5b53e9258 --- /dev/null +++ b/keyboards/clueboard1/clueboard1.h @@ -0,0 +1,52 @@ +#ifndef CLUEBOARD1_H +#define CLUEBOARD1_H + +#include "matrix.h" +#include "keymap.h" +#include + + +/* Clueboard matrix layout + * ,-----------------------------------------------------------. ,---. + * | 00| 01| 02| 03| 04| 05| 06| 07| 08| 09| 0A| 0B| 0C| 0D| 0E| | 0F| + * |-----------------------------------------------------------| |---| + * | 10| 11| 12| 13| 14| 15| 16| 17| 18| 19| 1A| 1B| 1C| 1D| | 1F| + * |-----------------------------------------------------------| `---' + * | 20| 21| 22| 23| 24| 25| 26| 27| 28| 29| 2A| 2B| 2C| 2D| + * |------------------------------------------------------------. + * | 30| 31| 32| 33| 34| 35| 36| 37| 38| 39| 3A| 3B| 3C| 3D|3E| + * |------------------------------------------------------------------. + * | 40| 41| 42| 43| 45| 46| 49| 4A| 4B| 4C| 4D| 4E| 4F| + * `------------------------------------------------------------------' + * ,-----------------------------------------------------------. ,---. + * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Yen| BS| |Ins| + * |-----------------------------------------------------------| |---| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |Del| + * |-----------------------------------------------------------| `---' + * |Caps | A| S| D| F| G| H| J| k| L| ;| '| # | Ent| + * |--------------------------------------------------------------. + * |Shift| \| Z| X| C| V| B| N| M| ,| .| /| \|Shift| Up| + * |------------------------------------------------------------------. + * |Ctrl|Alt|Gui |MHen| Space| Space|Henk|Gui |Ctrl| Fn|Left|Down|Rgt| + * `------------------------------------------------------------------' + */ +// The first section contains all of the arguements +// The second converts the arguments into a two-dimensional array +#define KEYMAP( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1F, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, \ + k40, k41, k42, k43, k45, k46, k49, k4A, k4B, k4C, k4D, k4E, k4F \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, KC_NO, k1F }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \ + { k40, k41, k42, k43, KC_NO, k45, k46, KC_NO, KC_NO, k49, k4A, k4B, k4C, k4D, k4E, k4F } \ +} + +void matrix_init_user(void); +void matrix_scan_user(void); + +#endif diff --git a/keyboards/clueboard1/config.h b/keyboards/clueboard1/config.h new file mode 100644 index 000000000..16338ddb0 --- /dev/null +++ b/keyboards/clueboard1/config.h @@ -0,0 +1,95 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xC1ED +#define PRODUCT_ID 0x2301 +#define DEVICE_VER 0x0003 +#define MANUFACTURER Clueboard +#define PRODUCT Clueboard +#define DESCRIPTION QMK keyboard firmware for Clueboard + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +// ROWS: Top to bottom, COLS: Left to right +/* Column pin configuration +* col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 +* pin: B3 F1 F4 F5 F6 C7 C6 B6 B5 B4 D7 D6 D4 F7 B0 B1 +*/ +#define MATRIX_COL_PINS { B3, F1, F4, F5, F6, C7, C6, B6, B5, B4, D7, D6, D4, F7, B0, B1 } +/* Row pin configuration +* row: 0 1 2 3 4 +* pin: D1 D0 D2 D5 D3 +*/ +#define MATRIX_ROW_PINS { D1, D0, D2, D5, D3 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* Underlight configuration + */ + #define ws2812_PORTREG PORTB + #define ws2812_DDRREG DDRB + #define ws2812_pin 2 + #define RGBLED_NUM 14 // Number of LEDs + #define RGBLIGHT_HUE_STEP 10 + #define RGBLIGHT_SAT_STEP 17 + #define RGBLIGHT_VAL_STEP 17 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/clueboard1/keymaps/default/compiled.hex b/keyboards/clueboard1/keymaps/default/compiled.hex new file mode 100644 index 000000000..31008c426 --- /dev/null +++ b/keyboards/clueboard1/keymaps/default/compiled.hex @@ -0,0 +1,1192 @@ +:100000000C946E050C94B2050C94B2050C94B205D8 +:100010000C94B2050C94B2050C94B2050C94B20584 +:100020000C94B2050C94B2050C94CF100C94A11151 +:100030000C94681F0C94B2050C94B2050C94B20594 +:100040000C94B2050C94B2050C94B2050C94B20554 +:100050000C94B2050C94D01F0C94B2050C94B2050C +:100060000C94B2050C94B2050C94B2050C94B20534 +:100070000C94B2050C94B2050C94B2050C94B20524 +:100080000C94B2050C94B2050C94B2050C94B20514 +:100090000C94B2050C94B2050C94B2050C94B20504 +:1000A0000C94B2050C94B2050C94B2050E123012E9 +:1000B0001E1330121E13751298121E13ED12001328 +:1000C0003616361665166516A416E917E917E917E8 +:1000D000C416E91774177417DA17E917E917E31745 +:1000E0008117811781178117811781178117811750 +:1000F0008117811781178117811781178117811740 +:1001000091179F17A617AD17B71700F000201E0014 +:100110001F002000210022002300240025002600CB +:1001200027002D002E0035002A004B002B00140064 +:100130001A000800150017001C0018000C0012001F +:1001400013002F003000310000004E003900040081 +:100150001600070009000A000B000D000E000F003A +:10016000330034003200280000000000E100640089 +:100170001D001B00060019000500110010003600CC +:10018000370038008700E50052000000E000E3007F +:10019000E2008B0000002C002C00000000008A0010 +:1001A000E600E4000151500051004F0035003A00D4 +:1001B0003B003C003D003E003F004000410042004B +:1001C00043004400450001004C0032700100010072 +:1001D000010001000100010001000100460047008C +:1001E00048000100010001000000010001000100C1 +:1001F00002510100010001000100010001000100A5 +:1002000001000100010001000000000001000100E8 +:1002100001000100010001000100010001000100D6 +:1002200001000100010001004B000000010001007D +:1002300001000100000001000100000000000100B9 +:100240000100010001514A004E004D000100010073 +:100250000100010001000100010001000100010096 +:100260000100010001000100010001000100010086 +:100270000100010000700100010001000100010007 +:100280000100010001000100000001000100010067 +:100290000251010001000100010001000100010004 +:1002A0000100010001000100000000000100010048 +:1002B0000100010001000100010001000100010036 +:1002C0000100010001000100010000000100010027 +:1002D0000100010000000100010000000000010019 +:1002E0000100010001510100010001000A444542E2 +:1002F00055473A20656E61626C65642E0A0053743E +:10030000617465206F6620726F772025583A20252A +:10031000303136620A0048756D616E2D7265616418 +:1003200061626C65206D61747269782073746174A8 +:10033000653A0D0A004465626F756E63696E6720E9 +:1003400064656C61792072656D61696E696E673A8A +:100350002025580A005B735D004B6579626F6172FE +:10036000642073746172742E0A005B575D005B53E6 +:100370005D005B525D005B445D005B435D00140308 +:1003800043006C007500650062006F006100720040 +:1003900064000000140343006C00750065006200F7 +:1003A0006F00610072006400000004030904090288 +:1003B0007400040100A0FA09040000010301010017 +:1003C0000921110100012240000705810308000AEC +:1003D00009040100010300000009211101000122AC +:1003E00036000705820308000A0904020002030020 +:1003F00000000921110100012220000705830320CC +:1004000000010705030320000109040300010300A4 +:1004100000000921110100012239000705840310A1 +:1004200000011201100100000008EDC101230300CA +:100430000102000105010906A101050719E029E7EC +:100440001500250195087501810205081901290586 +:100450009505750191029501750391010507190034 +:10046000297715002501957875018102C00631FFB5 +:100470000974A1010975150025FF952075088102F1 +:100480000976150025FF952075089102C005010920 +:1004900080A101850216010026B7001A01002AB7C3 +:1004A00000751095018100C0050C0901A1018503AB +:1004B000160100269C021A01002A9C027510950163 +:1004C0008100C005010906A101050719E029E7150A +:1004D00000250195087501810295017508810105C6 +:1004E000081901290595057501910295017503917A +:1004F000010507190029FF150026FF00950675085C +:100500008100C00A002530325820006B6579626F87 +:100510006172645F7265706F72743A20004B657926 +:10052000626F617264204C4544732073746174651A +:100530003A2025780A0064656C5F6B65795F6269B3 +:10054000743A2063616E27742064656C3A2025300C +:1005500032580A006164645F6B65795F6269743A5E +:100560002063616E2774206164643A20253032581C +:100570000A00646F6E652E0A00626F6F676D6167B7 +:100580006963207363616E3A202E2E2E20003F0097 +:10059000433E20004C25640A0074696D65725F63F8 +:1005A0006F756E743A202530346C580A006B65798B +:1005B000626F6172645F6E6B726F3A2025580A0039 +:1005C0006B6579626F6172645F69646C653A20255E +:1005D000580A006B6579626F6172645F70726F7444 +:1005E0006F636F6C3A2025580A00686F73745F6BF5 +:1005F0006579626F6172645F6C65647328293A2063 +:1006000025580A000A092D20537461747573202D32 +:100610000A004743433A20342E392E3220415652A5 +:100620002D4C4942433A20312E382E31204156522A +:100630005F415243483A20617672350A004F505468 +:10064000494F4E533A204C55464120424F4F544D4E +:10065000414749432045585452414B455920434F47 +:100660004E534F4C4520434F4D4D414E44204E4B31 +:10067000524F20343039360A004255494C443A2012 +:10068000383063383730352D6469727479202831F9 +:10069000333A31393A3032204A756E2032312032C5 +:1006A000303136290A005649443A203078433145E2 +:1006B0004428436C7565626F617264292050494417 +:1006C0003A2030783233303128436C7565626F617F +:1006D000726429205645523A203078303030330A3F +:1006E00000444553433A20514D4B206B6579626F6E +:1006F000617264206669726D7761726520666F72DF +:1007000020436C7565626F6172640A000A092D20CE +:1007100056657273696F6E202D0A000A092D2043F9 +:100720006F6E736F6C65202D0A4553432F713A0924 +:10073000717569740A000A092D204D61676963208B +:100740002D0A443A094465627567204D65737361EB +:10075000676520546F67676C650A583A094D617484 +:10076000726978204465627567204D6F6465205416 +:100770006F67676C65202D2053686F77206B6579F4 +:100780007072657373657320696E206D6174726930 +:100790007820677269640A4B3A094B6579626F6128 +:1007A000726420446562756720546F67676C6520CA +:1007B0002D2053686F77206B657970726573732095 +:1007C0007265706F72740A4D3A09446562756720EC +:1007D0004D6F75736520546F67676C650A563A09EB +:1007E00056657273696F6E0A533A09537461747572 +:1007F000730A433A09416374697661746520436FF3 +:100800006E736F6C65204D6F64650A46312D4631FD +:10081000303A0953776974636820746F204C6179AA +:10082000657220302D392028463130203D204C3053 +:10083000290A302D393A0953776974636820746F37 +:10084000204C6179657220302D390A4553433A09AD +:1008500053776974636820746F204C6179657220E6 +:10086000302028616C7465726E617465206B6579E7 +:100870002031290A47524156453A09537769746332 +:100880006820746F204C6179657220302028616C7B +:100890007465726E617465206B65792032290A5027 +:1008A000415553453A094A756D7020746F20426F67 +:1008B0006F746C6F6164657220285265736574296A +:1008C0000A453A095072696E7420454550524F4DA1 +:1008D0002053657474696E67730A4E3A094E4B5221 +:1008E0004F20546F67676C650A000A002575002E5B +:1008F0006E6B726F3A20000A002575002E737761C7 +:10090000705F6261636B736C6173685F6261636B7C +:1009100073706163653A20000A002575002E7377B5 +:1009200061705F67726176655F6573633A20000A84 +:10093000002575002E6E6F5F6775693A20000A000A +:100940002575002E737761705F72616C745F7267DA +:1009500075693A20000A002575002E737761705F73 +:100960006C616C745F6C6775693A20000A002575CC +:10097000002E636170736C6F636B5F746F5F636F86 +:100980006E74726F6C3A20000A002575002E737722 +:1009900061705F636F6E74726F6C5F636170736CB4 +:1009A0006F636B3A20000A0025303258006B65797E +:1009B0006D61705F636F6E6669672E7261773A2052 +:1009C000000A002575002E6D6F7573653A20000AC8 +:1009D000002575002E6B6579626F6172643A2000A4 +:1009E0000A002575002E6D61747269783A20000A3C +:1009F000002575002E656E61626C653A20000A0064 +:100A0000253032580064656275675F636F6E666992 +:100A1000672E7261773A20000A00257500646566CA +:100A200061756C745F6C617965723A20003F004EAD +:100A30004B524F3A206F66660A004E4B524F3A2097 +:100A40006F6E0A000A6D6F7573653A206F66660AED +:100A5000000A6D6F7573653A206F6E0A000A6B6548 +:100A600079626F6172643A206F66660A000A6B658C +:100A700079626F6172643A206F6E0A000A6D617468 +:100A80007269783A206F66660A000A6D617472694D +:100A9000783A206F6E0A000A64656275673A206FC3 +:100AA00066660A000A64656275673A206F6E0A001E +:100AB0000A0A4A756D70696E6720746F20626F6FE5 +:100AC000746C6F616465722E2E2E2000433E2000F0 +:100AD0006565636F6E6669673A0A000011241FBE80 +:100AE000CFEFDAE0DEBFCDBF04B603FE24C08091B5 +:100AF000EC019091ED01A091EE01B091EF018730F2 +:100B0000904BA740B04BB9F41092EC011092ED015C +:100B10001092EE011092EF0114BE84B7877F84BF5C +:100B200088E10FB6F89480936000109260000FBEC9 +:100B3000E0E0F8E3099511E0A0E0B1E0E6E2FAE4D4 +:100B400002C005900D92A833B107D9F711E0A8E3D0 +:100B5000B1E001C01D92AC3EB107E1F70E940D0E5D +:100B60000C9411250C940000FF93EF93E091380151 +:100B7000F0913901309709F00995EF91FF910895AF +:100B8000FC018591803011F0EFDFFBCF0895FF2746 +:100B9000E0E230E247FF0CC0419597FF09C0EDE26B +:100BA0006095709580959095611D711D811D911DB9 +:100BB00027FF02C0219530E350E2AA27660F771F76 +:100BC000881F991FAA1FA41710F0A41B63955A959C +:100BD000A9F7AA3008F0A95FA05DAF93F39561155E +:100BE00071058105910541F7ED3211F4EF93F3950D +:100BF000F21718F43F93F395FBCF8F91B5DFFA9579 +:100C0000E1F70895E991F9918591803021F08532DD +:100C100019F0AADFF9CF089520E0E89455915532F4 +:100C2000C1F3503311F4689455915A3348F450533A +:100C300090F3220F022E220F220F200D250FF4CF4A +:100C40000EF4219589919991533619F3533729F16F +:100C5000533559F1BC0188279927E8945C3621F473 +:100C60008991999168945591543639F446EF7EF004 +:100C700077FF0DC08FEF9FEF0AC055374AE039F07C +:100C8000583540E121F0523642E009F00895FF93D3 +:100C9000EF937DDFEF91FF91B7CFFF93EF93FC01CF +:100CA00081918030B9F360DFFBCFFF93EF9368DF72 +:100CB000F1CFDF93CF93CDB7DEB72596A3DFCF91EA +:100CC000DF910895809A81FF02C0889A08958898DC +:100CD0000895089508950C9469060C946A06CF93BC +:100CE000DF93611120C0EC010E94701E827280931C +:100CF0003A019A81992351F0882319F085E390E015 +:100D000002C089E290E00E94C81D09C0882319F042 +:100D100085E390E002C089E290E00E941B1EDF9113 +:100D2000CF910C94BA1EDF91CF91089581E0089580 +:100D300081E008950C94980608950F931F93CF9324 +:100D4000DF938C01FC01C081D181CE010E94491D3D +:100D5000BE010E94B709EC01B8010E949A068823DF +:100D600009F474C1F8018281882309F45BC0809181 +:100D7000460181111FC0C431F0E7DF0709F00AC145 +:100D80000E949C0681E0809346010E949A1F9093E6 +:100D900045018093440110923D0110923F01109251 +:100DA0003E011092410110924001109243011092B5 +:100DB00042014CC180914401909145010E94A61FBF +:100DC000883C910570F480913D01E82FF0E0EE0F32 +:100DD000FF1FE25CFE4FD183C0838F5F80933D0194 +:100DE00035C1C43120E7D20708F028C1C23080E7FE +:100DF000D80710F5C11590E7D90709F0DAC0F80156 +:100E00008281882309F4BFC00E945018FFEF24E3B9 +:100E10008CE0F15020408040E1F700C000000E94CB +:100E2000F51F14C1C431F0E7DF0708F0D3C0C230AA +:100E300020E7D20708F49BC0F8018281882309F4D7 +:100E4000A2C00E94B121811102C00E9497210E947C +:100E5000CE2190E09093DE018093DD01C230F0E777 +:100E6000DF0721F48091DD0181607AC0C33020E783 +:100E7000D20721F48091DD01826072C0C43080E726 +:100E8000D80721F48091DD0184606AC0C53090E705 +:100E9000D90719F48091DD0127C0C630E0E7DE07ED +:100EA00021F48091DD0180615BC0C730F0E7DF078E +:100EB00021F48091DD01806253C0C83020E7D20761 +:100EC00021F48091DD0180644BC0C93080E7D807F0 +:100ED00021F48091DD01806843C0CA3090E7D907D2 +:100EE00029F48091DD01846088603AC0CB30E0E76E +:100EF000DE0721F48091DD018E7F32C0CC30F0E737 +:100F0000DF0721F48091DD018D7F2AC0CD3020E7FD +:100F1000D20721F48091DD018B7F22C0CE3080E7A3 +:100F2000D80719F48091DD011AC08091DD01CF301E +:100F300090E7D90711F48F7E13C0C031E0E7DE07D8 +:100F400011F48F7D0DC0C131F0E7DF0711F48F7B05 +:100F500007C0C231D04711F48F7702C08B7F877FE3 +:100F60008093DD018091DD010E94D2216FC0C11507 +:100F700080E7D80741F0C130D047F1F081E080939D +:100F80003B0180933C01C801DF91CF911F910F91EC +:100F90000C949606C43120E7D20708F04FC0C23047 +:100FA00080E7D80708F048CFC11590E7D90709F4C2 +:100FB0002BCFC130D04711F7F8018281882319F374 +:100FC0008CEE92E00E94C0058091D60181608093F2 +:100FD000D6013CC0C333E0E7DE07A1F4F80182810B +:100FE000882321F010923B0182E017C080913B01E1 +:100FF000811106C086E20E94DA1486E20E94A215E0 +:1010000082E019C0C433D04709F0B8CFF80182811B +:10101000882331F010923C0180E20E94F11516C045 +:1010200080913C01811106C087E20E94DA1487E2B8 +:101030000E94A21580E20E94F81508C0C333F0E7B1 +:10104000DF0761F2C433D04709F398CF80E0DF9126 +:10105000CF911F910F9108950C946B060C946D061F +:10106000E72FF0E025E0829FE00DF11D1124B4E0B0 +:10107000EE0FFF1FBA95E1F7E60FF11DEE0FFF1F10 +:10108000E45FFE4F859194910E94CC09811540E464 +:101090009407B0F5811560E3960708F0DEC0803E46 +:1010A0009105D8F4803C910508F06CC0883A910510 +:1010B00078F4853A910508F06BC08130910509F408 +:1010C00052C108F40FC18430910508F04CC10AC127 +:1010D0008B3B910508F467C005C18F3F910509F06E +:1010E00048F4803F910508F0ADC0883E910508F4B2 +:1010F0003AC1F8C0811570E2970708F0A5C00895BD +:10110000811523E5920790F4811542E5940708F0D4 +:10111000C8C0811561E5960708F0BEC0811570E56D +:10112000970708F09DC09F70906A0895811525E586 +:101130009207D8F4811544E5940708F0C8C0482FF9 +:101140004695469570E2479FA00111248370992728 +:1011500021E030E0B90102C0660F771F8A95E2F7FF +:10116000CB01842B952B9A680895811566E5960727 +:1011700008F4B2C09C0130562115304108F0B2C0CD +:101180009F70AEC0FC01EE0FFF1FE657F04062C03B +:10119000853A910509F4A9C0863A910509F0A8C0DD +:1011A00082E890E40895883A910509F4A4C0893A48 +:1011B000910509F4A3C08A3A910509F4A2C08B3ABB +:1011C000910509F4A1C08C3A910509F4A0C08D3AAB +:1011D000910509F49FC0803B910509F49EC08E3AA9 +:1011E000910509F49DC08F3A910509F49CC0813B9B +:1011F000910509F49BC0823B910509F49AC0833B99 +:10120000910509F499C0843B910509F498C0853B88 +:10121000910509F497C0863B910509F496C0873B78 +:10122000910509F495C0883B910509F494C0893B68 +:10123000910509F493C08A3B910509F492C080E0BE +:1012400094E4089590650895FC01FF70EE0FFF1F70 +:10125000E65FFE4F8591949108959927906C0895CB +:10126000482F437021E030E002C0220F331F4A951F +:10127000E2F73C68AC0164E0569547956A95E1F762 +:101280004370342B8F708695869540E2849FC00111 +:101290001124822B932B0895982F8827816F906AB1 +:1012A0000895482F4695469560E2469FA001112477 +:1012B0008370992721E030E0B90102C0660F771FE3 +:1012C0008A95E2F7CB01842B952B9C680895982F83 +:1012D0008827846F906A08958F719927982F88279F +:1012E0009062089580E090E0089581E890E4089588 +:1012F00083E890E4089582EE94E4089589EE94E4FE +:1013000008958AEE94E4089585EB94E4089586EBBD +:1013100094E4089587EB94E408958CEC94E40895A4 +:101320008DEC94E4089583E895E408958AE895E4C3 +:10133000089582E995E4089584E995E4089581E2A9 +:1013400096E4089583E296E4089584E296E408958D +:1013500085E296E4089586E296E4089587E296E4AD +:1013600008958AE296E4089580E090E00895E72FDA +:10137000F0E095E0899FE00DF11D112484E0EE0F6F +:10138000FF1F8A95E1F7E60FF11DEE0FFF1FE45FE7 +:10139000FE4F8591949108958238910549F1B0F4FA +:1013A0008133910509F458C048F48932910509F454 +:1013B0004EC08A32910509F454C0089585339105D1 +:1013C00009F440C08933910599F00895833E910551 +:1013D00029F138F4803E910591F0823E9105A1F00B +:1013E0000895863E9105F9F0873E910531F1089503 +:1013F0002091DD0120FD3AC021FD38C00895809183 +:10140000DD0180FD35C032C08091DD0182FF32C038 +:101410008091DD0184FD30C083EE39C08091DD0113 +:1014200082FD28C0F5CF8091DD0183FF27C0809128 +:10143000DD0184FD21C087EE2AC08091DD0183FD9E +:101440001DC0F5CF8091DD0185FD1AC01BC08091C4 +:10145000DD0185FD17C014C08091DD0186FD14C03B +:1014600015C08091DD0186FD11C00EC080EE0FC059 +:1014700089E30DC082EE0BC080E009C086EE07C094 +:1014800089E205C085E303C08AE201C081E390E000 +:1014900008950C946206E82FF0E0E15EFE4F808133 +:1014A000E82FEF70F0E082958F7021E030E0A90125 +:1014B00002C0440F551F8A95E2F740A308950F9389 +:1014C0001F93CF93DF93C4E0D0E001E010E0FE0172 +:1014D000E15EFE4F8081E82FEF70F0E021A1829560 +:1014E0008F70A80102C0440F551F8A95E2F7CA0108 +:1014F000822B81A38C2F0E944B0A219740F78FE00B +:1015000090E061E070E0FC01E15FFE4F2081E22F9E +:10151000EF70F0E042A122952F70DB0102C0AA0F0C +:10152000BB1F2A95E2F79D01242B22A3019758F7B0 +:10153000DF91CF911F910F9108950F931F93CF9338 +:10154000DF9385B7806885BF85B7806885BFC4E0B5 +:10155000D0E001E010E0FE01E15EFE4F8081E82F67 +:10156000EF70F0E021A182958F70A80102C0440FB6 +:10157000551F8A95E2F7CA01822B81A38C2F0E9406 +:101580004B0A219740F78FE090E061E070E0FC01AA +:10159000E15FFE4F2081E22FEF70F0E042A1229543 +:1015A0002F70DB0102C0AA0FBB1F2A95E2F79D0135 +:1015B000242B22A3019758F7DF91CF911F910F9110 +:1015C0000C942C08EF92FF920F931F93CF93DF930D +:1015D00001E511E0C4E0EE24E394F12CD5E08C2F7A +:1015E0000E944B0A8FE090E040E050E0FC01E15F98 +:1015F000FE4F6081E62FEF70F0E020A130E06295B1 +:101600006F7002C0359527956A95E2F720FD09C0F5 +:101610009701082E02C0220F331F0A94E2F7422BD3 +:10162000532B019718F7F801929182918F0184173B +:10163000950721F051834083D09300018C2F0E94A5 +:101640004B0AC15060F68091000187FD35C0909132 +:10165000D60190FF10C0282F332727FD30953F93E8 +:101660008F9385E393E09F938F930E9459060F9089 +:101670000F900F900F908091000181508093000196 +:1016800087FD07C08FE99FE00197F1F700C00000D8 +:1016900013C080E090E0FC01EF5AFE4FDC01A95B33 +:1016A000BE4F18962D913C9119973187208702974C +:1016B000863FEFEF9E0779F70E942E0881E0DF91C9 +:1016C000CF911F910F91FF90EF900895E82FF0E0D8 +:1016D000EE0FFF1FEF5AFE4F808191810895EF9228 +:1016E000FF920F931F93CF93DF938091D60180FFDA +:1016F00004C086E193E00E94C00501E511E0C0E06E +:10170000D0E08EEFE82E82E0F82E8091D60180FFA7 +:1017100013C0F801808191810E94101F9F938F93C5 +:10172000DF93CF93FF92EF920E9459060F900F9094 +:101730000F900F900F900F9021960E5F1F4FC530A6 +:10174000D10519F7DF91CF911F910F91FF90EF9085 +:1017500008950F931F93CF930BE511E0C0E0F801BC +:10176000929182918F010E94EE1EC80FF1E0013527 +:101770001F07A9F78C2FCF911F910F91089580918A +:101780006E01089508959FB7F89410925D019FBF70 +:101790009091E301943009F057C09091E9009F7057 +:1017A0003091EC00232F217030FD20E8922B23E0B4 +:1017B0002093E9002091EB0020FF43C02091EE0030 +:1017C00027FF3FC020915B01222321F02091E800F8 +:1017D00025FF37C010925B0126E03091E80035FD0F +:1017E00015C03091E301343061F53091EB0035FDE7 +:1017F00028C0215021F481E080935B0122C0EFE9F1 +:10180000FFE03197F1F700C00000E7CF8093F100CF +:101810008091E80085FD0AC08091E80080FFFCCF40 +:101820008091E8008E778093E80006C08FB7F89427 +:1018300021E020935D018FBF9F709093E90080E0CD +:1018400008959F709093E9008FEF0895CF93DF93F1 +:1018500000D01F92CDB7DEB72091E301243021F5EF +:1018600023E029839B838A8382E08093E9008FEFC2 +:101870009091E800815095FD06C095ED9A95F1F79D +:1018800000008111F5CF8091E80085FF0DC040E098 +:1018900050E063E070E0CE0101960E94BF0E80919F +:1018A000E8008E778093E8000F900F900F90DF9103 +:1018B000CF910895CF93DF9300D01F92CDB7DEB7BD +:1018C0009C018091E301843019F592E099833B8378 +:1018D0002A839093E9008FEF9091E800815095FD65 +:1018E00006C095ED9A95F1F700008111F5CF809132 +:1018F000E80085FF0DC040E050E063E070E0CE01FD +:1019000001960E94BF0E8091E8008E778093E800D8 +:101910000F900F900F90DF91CF910895CF93DF93A9 +:10192000EC019091E301943009F046C080910B01E5 +:101930008823D9F080910C018823B9F09093E900B5 +:101940008FEF9091E800815095FD06C095E19A9542 +:10195000F1F700008111F5CF8091E80085FF2CC0E0 +:1019600040E050E060E170E017C081E08093E90062 +:101970008FEF9091E800815095FD06C095ED9A9506 +:10198000F1F700008111F5CF8091E80085FF14C0C8 +:1019900040E050E068E070E0CE010E94BF0E809110 +:1019A000E8008E778093E80080E1FE01AEE5B1E0CB +:1019B00001900D928A95E1F7DF91CF9108958AE722 +:1019C00093E00E94C0058091E201811109C00E944C +:1019D00054100E94B1108091E20084608093E20074 +:1019E000089586E793E00E94C0051092E2010895F1 +:1019F00082E793E00C94C0058EE693E00C94C0055A +:101A00008AE693E00E94C0050C94621F20915C015D +:101A10002F5F822F62E30E94C924992319F020933B +:101A20005C01089510925C0180915D01882371F141 +:101A30008091E301843041F58091E9008F7020911D +:101A4000EC00922F917020FD90E8892B93E0909309 +:101A5000E9009091EB0090FF14C09091EE0097FF89 +:101A600010C09091E80095FF03C01092F100F9CFEB +:101A70009091E80090FF05C09091E8009E779093C8 +:101A8000E8008F708093E90010925D01089542E0B4 +:101A900061EC81E00E94CE0F42E061EC82E00E94A6 +:101AA000CE0F42E261EC83E00E94CE0F42E161EC96 +:101AB00084E00C94CE0F8091E501833009F455C089 +:101AC00030F4813071F0823009F48EC008958A308C +:101AD00009F47AC08B3009F460C0893009F09CC0E9 +:101AE00020C08091E401813A09F096C08091E8001D +:101AF000877F8093E8008091E8019091E901892B2C +:101B000021F460E18EE591E003C060E080E090E0C8 +:101B100070E00E940A0F8091E8008B778093E800C4 +:101B200008958091E401813209F076C08091E80146 +:101B30009091E901009719F0039709F06DC0809129 +:101B4000E800877F8093E8008091E80082FD05C06F +:101B50008091E3018111F8CF5FC08091F100809303 +:101B60006E018091E8008B7753C08091E401813A47 +:101B700009F052C08091E8019091E901892B09F0A8 +:101B80004BC08091E800877F8093E8008091E80057 +:101B900080FFFCCF80910B0136C08091E40181323F +:101BA000D9F58091E8019091E901892BA9F58091FF +:101BB000E800877F8093E8000E9403108091E6018F +:101BC00080930B010C9450188091E401813221F52F +:101BD0008091E800877F8093E8000E940310809145 +:101BE000E70180936F0108958091E401813AA1F4A7 +:101BF0008091E800877F8093E8008091E80080FF73 +:101C0000FCCF80916F018093F1008091E8008E7786 +:101C10008093E8000C940310089584B7877F84BFF5 +:101C200088E10FB6F89480936000109260000FBEB8 +:101C300080E880936100109261000E94D8130E9496 +:101C400054100E94B1108091E20084608093E20001 +:101C500083EC9BE00E94E91E78940E9436130E9458 +:101C6000DA1381E091E00E94511389E593E00E942C +:101C7000C0058091E301853089F485E593E00E94F9 +:101C8000C0050E942A1F8091E101882391F30E94E0 +:101C9000541F882371F30E94A90EEBCF0E94FE13FC +:101CA000E8CF292F332723303105C9F064F42130E0 +:101CB000310581F02230310509F043C084E790E01E +:101CC0002EEA33E042C021323105F1F022323105F3 +:101CD00041F137C082E190E022E234E036C099273A +:101CE0008130910541F08230910541F0892B49F511 +:101CF000EAEAF3E005C0E4E9F3E002C0EEE7F3E06E +:101D0000849190E09F0121C06430D8F4E62FF0E088 +:101D1000EE0FFF1FE05DFE4F2081318189E090E0F2 +:101D200014C0643070F470E0FB01EE0FFF1FE85D3B +:101D3000FE4F20813181FB01EC5DFE4F808190E000 +:101D400004C080E090E020E030E0FA01318320839D +:101D5000089580E189BD82E189BD09B400FEFDCF0F +:101D60008091D8008F7D8093D8008091E0008260C0 +:101D70008093E0008091E00081FDFCCF0895CF9238 +:101D8000DF92EF92FF920F931F93CF93DF93EC01BB +:101D90008B016A010E942210811133C0C114D10449 +:101DA00039F0F60180819181081B190BC80FD91FEA +:101DB000E12CF12C0115110519F18091E80085FD48 +:101DC00016C08091E8008E778093E800C114D1049A +:101DD00049F0F60180819181E80EF91EF182E082DE +:101DE00085E00FC00E942210882321F30AC0899148 +:101DF0008093F10001501109FFEFEF1AFF0ADACFCB +:101E000080E0DF91CF911F910F91FF90EF90DF90D5 +:101E1000CF9008952091EA013091EB012617370702 +:101E200048F06115710539F42091E8002E77209370 +:101E3000E80001C0B90140E061157105A9F12091E8 +:101E4000E301222309F443C0253009F442C0209164 +:101E5000E80023FD40C02091E80022FD32C020911F +:101E6000E80020FFE9CF4091F3002091F20030E03C +:101E7000342BFC01CF016115710559F02830310573 +:101E800040F481918093F100615071092F5F3F4FC1 +:101E9000F1CF41E02830310509F040E02091E80021 +:101EA0002E772093E800C8CF4111C9CF0AC0809196 +:101EB000E301882361F0853061F08091E80083FDC3 +:101EC0000AC08091E80082FFF2CF80E0089582E0AE +:101ED000089583E0089581E008952091EA0130910A +:101EE000EB012617370748F06115710539F4209189 +:101EF000E8002E772093E80001C0B901FC0120E042 +:101F00006115710591F18091E301882309F440C0C6 +:101F1000853009F43FC08091E80083FD3DC0809189 +:101F2000E80082FD2FC08091E80080FFE9CF20917A +:101F3000F3008091F20090E0922B6115710559F049 +:101F40008830910540F424912093F100319661503E +:101F500071090196F2CF21E0089709F020E0809105 +:101F6000E8008E778093E800CBCF2111CCCF0AC058 +:101F70008091E301882361F0853061F08091E80071 +:101F800083FD0AC08091E80082FFF2CF80E00895CF +:101F900082E0089583E0089581E00895982F9730B6 +:101FA00058F59093E900981739F07091EC00209162 +:101FB000ED005091F00003C0242F762F50E021FF58 +:101FC00019C03091EB003E7F3093EB003091ED0073 +:101FD0003D7F3093ED003091EB0031603093EB00AA +:101FE0007093EC002093ED005093F0002091EE00F0 +:101FF00027FF07C09F5FD3CF8F708093E90081E0F8 +:10200000089580E008958091E40187FF11C08091D8 +:10201000E80082FD05C08091E3018111F8CF11C075 +:102020008091E8008B770BC08091E301882349F011 +:102030008091E80080FFF8CF8091E8008E77809350 +:10204000E80008952091E4003091E50095E6409184 +:10205000EC00842F817040FF22C08091E80080FD59 +:102060001CC08091E301882391F0853091F080912C +:10207000EB0085FD10C04091E4005091E50042174F +:10208000530729F39A01915011F784E0089582E0F3 +:10209000089583E0089581E0089580E008954091D7 +:1020A000E80042FFDECF08950E94C2100E94CA10CD +:1020B000E0EEF0E0808181608083E8EDF0E08081F7 +:1020C0008F77808319BCA7EDB0E08C918E7F8C93C5 +:1020D00080818F7E80831092E20108950F931F9379 +:1020E000CF93DF930E94C2100E94CA10C8EDD0E0C7 +:1020F00088818F77888388818068888388818F7DB5 +:10210000888319BC1092E3011092DF011092E10163 +:102110001092E00100EE10E0F80180818B7F808357 +:1021200088818160888342E060E080E00E94CE0F79 +:10213000E1EEF0E080818E7F8083E2EEF0E080814E +:1021400081608083808188608083F80180818E7FB8 +:102150008083888180618883DF91CF911F910F9167 +:102160000895E8EDF0E080818F7E8083E7EDF0E078 +:1021700080818160808384E082BF81E08093E2017E +:102180000C946E10E8EDF0E080818E7F80831092D9 +:10219000E20008951092DA001092E10008951F9273 +:1021A0000F920FB60F9211242F933F934F935F938B +:1021B0006F937F938F939F93AF93BF93EF93FF930F +:1021C0008091E10082FF0BC08091E20082FF07C096 +:1021D0008091E1008B7F8093E1000E94060D809149 +:1021E000DA0080FF1FC08091D80080FF1BC0809163 +:1021F000DA008E7F8093DA008091D90080FF0DC0D5 +:1022000080E189BD82E189BD09B400FEFDCF81E096 +:102210008093E3010E94DF0C05C019BC1092E3011A +:102220000E94F10C8091E10080FF19C08091E200D2 +:1022300080FF15C08091E2008E7F8093E200809144 +:10224000E20080618093E2008091D80080628093F8 +:10225000D80019BC85E08093E3010E94FC0C8091BA +:10226000E10084FF30C08091E20084FF2CC080E157 +:1022700089BD82E189BD09B400FEFDCF8091D800FF +:102280008F7D8093D8008091E1008F7E8093E10064 +:102290008091E2008F7E8093E2008091E200816075 +:1022A0008093E2008091DF01882311F084E007C071 +:1022B0008091E30087FD02C081E001C083E080934C +:1022C000E3010E94000D8091E10083FF29C080910D +:1022D000E20083FF25C08091E100877F8093E100C9 +:1022E00082E08093E3011092DF018091E1008E7F14 +:1022F0008093E1008091E2008E7F8093E2008091E4 +:10230000E20080618093E20042E060E080E00E94B1 +:10231000CE0F8091F00088608093F0000E94F80C4E +:10232000FF91EF91BF91AF919F918F917F916F91AD +:102330005F914F913F912F910F900FBE0F901F9083 +:1023400018951F920F920FB60F9211242F933F935F +:102350004F935F936F937F938F939F93AF93BF93AD +:10236000CF93DF93EF93FF93C091E900CF708091FB +:10237000EC00D82FD17080FDD0E81092E900809158 +:10238000F000877F8093F00078940E94E51110920E +:10239000E9008091F00088608093F000CD2BCF7031 +:1023A000C093E900FF91EF91DF91CF91BF91AF9181 +:1023B0009F918F917F916F915F914F913F912F915D +:1023C0000F900FBE0F901F9018951F93CF93DF9320 +:1023D000CDB7DEB7AA970FB6F894DEBF0FBECDBF5C +:1023E000E4EEF1E088E08E0F9091F10091938E136E +:1023F000FBCF0E945B0D8091E80083FF1FC180919D +:10240000E4019091E501492F50E04A30510508F070 +:1024100015C1FA01EA5AFF4F0C94D524803881F097 +:10242000823809F00BC18091E8018F708093E90038 +:102430008091EB0085FB882780F91092E90006C0A7 +:102440008091E0019091E101911182609091E8000A +:10245000977F9093E8008093F1001092F100C8C03C +:10246000282F2D7F09F0EAC0882319F0823061F00F +:10247000E5C08091E601813009F0E0C0933009F0B9 +:1024800080E08093E1012BC08091E601811127C09B +:102490008091E8018F7009F4D1C08093E900209108 +:1024A000EB0020FF1CC0933021F48091EB00806290 +:1024B00014C09091EB0090619093EB0021E030E02C +:1024C000A90102C0440F551F8A95E2F74093EA0024 +:1024D0001092EA008091EB0088608093EB001092EC +:1024E000E9008091E800877F86C08111A7C0109124 +:1024F000E6011F778091E3008078812B8093E300D1 +:102500008091E800877F8093E8000E94031080910B +:10251000E80080FFFCCF8091E30080688093E300B7 +:10252000111102C082E001C083E08093E30186C004 +:102530008058823008F082C08091E6019091E701D6 +:102540008C3D53E0950779F583E08A838AE289839D +:102550004FB7F894DE01139620E03EE051E2E32FFE +:10256000F0E050935700E49120FF03C0E295EF7034 +:102570003F5FEF708E2F90E0EA3010F0C79601C0F9 +:10258000C0968D939D932F5F243149F74FBF809163 +:10259000E800877F8093E8006AE270E0CE01019650 +:1025A0000E940A0F14C0AE014F5F5F4F6091E801B7 +:1025B0000E94510EBC01009709F440C09091E800C0 +:1025C000977F9093E80089819A810E946D0F809196 +:1025D000E8008B778093E80031C0803879F58091EE +:1025E000E800877F8093E8008091DF018093F1000D +:1025F0008091E8008E778093E8000E9403101EC04F +:1026000081111CC09091E6019230C0F48091E800E5 +:10261000877F8093E8009093DF010E9403108091F0 +:10262000DF01811106C08091E30087FD02C081E0D7 +:1026300001C084E08093E3010E94470D8091E8008F +:1026400083FF0AC08091E800877F8093E800809133 +:10265000EB0080628093EB00AA960FB6F894DEBF81 +:102660000FBECDBFDF91CF911F910895CF93809181 +:10267000E3018823A1F0C091E900CF709091EC00B4 +:10268000892F817090FD80E8C82B1092E90080911D +:10269000E80083FD0E94E511CF70C093E900CF915F +:1026A000089590937501809374010895E0917401E9 +:1026B000F0917501309721F00190F081E02D09949F +:1026C00080E00895EF92FF920F931F93CF93DF93D3 +:1026D000E0917401F09175013097B1F18C010280A5 +:1026E000F381E02D09958091D60182FF2DC080FFF6 +:1026F00004C08BE095E00E94C005E80110E185E090 +:10270000E82E85E0F82E8091D60180FF0BC08881ED +:102710001F928F93FF92EF920E9459060F900F9095 +:102720000F900F90115021961111EDCF8091D6018D +:1027300080FF0AC083E095E0DF91CF911F910F9158 +:10274000FF90EF900C94C005DF91CF911F910F91F6 +:10275000FF90EF90089520917201309173018217DC +:10276000930771F09093730180937201E09174016B +:10277000F0917501309721F00680F781E02D0994E2 +:10278000089520917001309171018217930771F0C3 +:102790009093710180937001E0917401F091750143 +:1027A000309721F00084F185E02D09940895089573 +:1027B0000C94D7130E94911F0E949D0A0C945F20D5 +:1027C000CF93DF931F92CDB7DEB79091D60192FFE2 +:1027D00010C090FF0EC01F928F932DE135E03F9304 +:1027E0002F9389830E9459060F900F900F900F909E +:1027F00089810F90DF91CF910C94490A5F926F927B +:102800007F928F929F92AF92BF92CF92DF92EF9280 +:10281000FF920F931F93CF93DF9300D000D01F92AE +:10282000CDB7DEB70E94E20A91E8C92E91E0D92E19 +:1028300004E010E0AA24A394B12C502E802F0E9413 +:10284000660B4C01F601729062906F016826792642 +:1028500061147104A1F40150110978F78FEF898395 +:102860008A831B820E949A1F8160782F9D838C83AC +:1028700049815A816B818D810E94AC1438C080914E +:10288000D60181FD0E946F0B2FE030E07501022E12 +:1028900002C0EE0CFF1C0A94E2F7C70186219721C3 +:1028A000892B09F129835A828E209F2091E0892863 +:1028B00009F490E09B830E949A1F8160782F9D838A +:1028C0008C8349815A816B818D810E94AC14000FE9 +:1028D000111FF801E958FE4F80819181E826F92601 +:1028E000F182E08204C02150310980F6B4CF10910A +:1028F00076010E9456131817D1F00E945613809348 +:1029000076010F900F900F900F900F90DF91CF9165 +:102910001F910F91FF90EF90DF90CF90BF90AF90FD +:102920009F908F907F906F905F900C94E0130F902A +:102930000F900F900F900F90DF91CF911F910F91FB +:10294000FF90EF90DF90CF90BF90AF909F908F90CF +:102950007F906F905F900895CF93DF93CDB7DEB7F0 +:102960002B970FB6F894DEBF0FBECDBF4F835887AD +:1029700069877A878B87DE01119686E0FD011192C7 +:102980008A95E9F785E0FE01379601900D928A95C8 +:10299000E1F749815A816B817C818D819E810E9402 +:1029A000EE1A2B960FB6F894DEBF0FBECDBFDF91A7 +:1029B000CF910895CF93882309F4C2C0C82F8238DD +:1029C00059F40E94561381FDBBC089E30E94C81DC3 +:1029D0000E94BA1E89E30CC0833879F40E94561312 +:1029E00080FDAEC083E50E94C81D0E94BA1E83E52B +:1029F0000E941B1ECF910C94BA1E843859F40E9479 +:102A0000561382FD9DC087E40E94C81D0E94BA1E15 +:102A100087E4EECF8CEF8C0F813A48F48C2F0E9424 +:102A20007A2481118DC08C2F0E94C81DE3CF80E2D3 +:102A30008C0F883048F4C77081E001C0880FCA95B8 +:102A4000EAF70E94731ED6CF8BE58C0F833078F4A3 +:102A5000C53A29F0C63A31F083E890E005C081E834 +:102A600090E002C082E890E0CF910C94AB1388E52F +:102A70008C0F833108F064C0C83A39F1C93A41F18A +:102A8000CA3A49F1CB3A51F1CC3A59F1CD3A61F118 +:102A9000C03B69F1CE3A71F1CF3A79F1C13B81F196 +:102AA000C23B89F1C33B91F1C43B99F1C53BA1F114 +:102AB000C63BA9F1C73BB1F1C83BB9F1C93BC1F174 +:102AC000CA3BC9F180E090E038C082EE90E035C0AA +:102AD00089EE90E032C08AEE90E02FC085EB90E066 +:102AE0002CC086EB90E029C087EB90E026C08CECF0 +:102AF00090E023C08DEC90E020C083E891E01DC001 +:102B00008AE891E01AC082E991E017C084E991E077 +:102B100014C081E292E011C083E292E00EC084E230 +:102B200092E00BC085E292E008C086E292E005C028 +:102B300087E292E002C08AE292E0CF910C94C11346 +:102B4000CF910895882309F44BC0823859F40E942C +:102B5000561381FF45C089E30E94C81D0E94BA1E1A +:102B600089E30CC0833871F40E94561380FF38C08B +:102B700083E50E94C81D0E94BA1E83E50E941B1EA9 +:102B80000C94BA1E843859F40E94561382FF28C050 +:102B900087E40E94C81D0E94BA1E87E4EFCF9CEF15 +:102BA000980F913A58F390E2980F983050F487704C +:102BB00091E001C0990F8A95EAF7892F0E94791E4A +:102BC000DFCF9BE5980F933020F480E090E00C94E9 +:102BD000AB13885A833120F480E090E00C94C11349 +:102BE0000895882321F00E94731E0C94BA1E089544 +:102BF000882321F00E94791E0C94BA1E08957F92BA +:102C00008F929F92AF92BF92CF92DF92EF92FF92FC +:102C10000F931F93CF93DF931F92CDB7DEB77C0145 +:102C2000C62E772EFC01058102950F7012811111BD +:102C30000E94901E0E94C11D882379F0112369F023 +:102C400080E28C0D883048F082E00E94AA1D0E942C +:102C5000C11D91E0D82ED92601C0D12CE72DE295D7 +:102C6000EF70F0E0E05AFF4F0C94D524872D807F61 +:102C7000072D0F70882311F00295007F112389F032 +:102C8000002309F48DC180E28C0D883020F4802F60 +:102C90000E94731E03C0802F0E94831E0E94BA1ED2 +:102CA0007FC18C2D0E94A215002309F492C180E2FD +:102CB0008C0D883020F4802F0E94791E03C0802F55 +:102CC0000E94891E0E94BA1E84C1872D807F972D85 +:102CD0009F70803211F4892F03C0892F8295807FE5 +:102CE000CC2021F0F1E0CF16A1F01DC0112339F066 +:102CF000002319F1013009F50E94A31E6AC10023C7 +:102D000019F0013009F465C189830E94A61E8981EA +:102D100005C1112321F0063008F05BC10EC005305B +:102D200008F057C1FBC0112359F0002331F0F7011F +:102D3000958190FF35C19F7095830E94F11549C11F +:102D4000002309F4EBC032C1872D869586958370E8 +:102D500090E0009719F0019761F03BC1112321F039 +:102D60008C2D972D937002C080E090E00E94AB13F1 +:102D700030C1112321F08C2D972D937002C080E07B +:102D800090E00E94C11325C1872D837009F052C0C5 +:102D900011111FC18C2D829586958770880F880F21 +:102DA0009C2D9F70892E912CA12CB12C082E04C033 +:102DB000880C991CAA1CBB1C0A94D2F7C4FE14C030 +:102DC0000FE010E020E030E0B901A80104C0440F9A +:102DD000551F661F771F8A95D2F7CB01BA01609500 +:102DE00070958095909503C060E070E0CB01272D31 +:102DF00026952695237030E02230310569F0233086 +:102E0000310589F0682979298A299B2921303105E2 +:102E100071F00E94361CDDC0682979298A299B2916 +:102E20000E94521CD6C00E94361CC501B4010E94EB +:102E30001A1CCFC0112319F0872D817001C086950F +:102E4000882309F4C6C08C2D829586958770880FDB +:102E5000880F9C2D9F70892E912CA12CB12C082EAF +:102E600004C0880C991CAA1CBB1C0A94D2F7C4FE8F +:102E700014C00FE010E020E030E0B901A80104C068 +:102E8000440F551F661F771F8A95D2F7CB01BA01F1 +:102E9000609570958095909503C060E070E0CB01DF +:102EA000272D269526952370422F50E0423051055C +:102EB00069F04330510589F0682979298A299B29CD +:102EC0004130510571F00E94101D83C06829792995 +:102ED0008A299B290E942C1D7CC00E94101DC501BF +:102EE000B4010E94F41C75C08C2D90E0FC01E05EE2 +:102EF000F109E531F10508F04FC0E059FF4F0C949E +:102F0000D5240C2D0F70872D8F71112321F00E9475 +:102F10008D1C802F12CF0E94AE1C802F0E94F815AE +:102F200058C0112341F0053008F053C0872D8F7130 +:102F30000E94D31C4EC0063008F04BC0F7CF1123BF +:102F400039F0872D8F710E948D1C43C01123C9F366 +:102F5000872D8F710E94AE1C3CC0112329F0872D54 +:102F60008F710E94781C35C00E946E1C32C01123E4 +:102F700051F0172D1F71812F0E948D1C63E0812F4E +:102F80000E94A11D26C081E00E94AA1D023008F106 +:102F900082E00E94AA1D1DC0112331F0002389F296 +:102FA0008C2D0E94DA1415C0002391F28C2D0E9402 +:102FB000A2150FC0472D4F706C2DC7010E94B40998 +:102FC0000E94921B06C0472D4F706C2DC7010E94B6 +:102FD0006F06DD20F9F00E949D1D80FD1BC0F701EA +:102FE00012820E94971D0E948D1CC7010E94191811 +:102FF0000E94971D0F90DF91CF911F910F91FF902D +:10300000EF90DF90CF90BF90AF909F908F907F9088 +:103010000C94AE1C0F90DF91CF911F910F91FF90F8 +:10302000EF90DF90CF90BF90AF909F908F907F9068 +:1030300008950F931F93CF93DF93EC0188819981BB +:103040002B813C81232BB9F09F3F11F48F3F99F0E6 +:10305000CE010E949D06882371F0688179818A8162 +:103060000E94931D8C010E94481D0E940F1CB801F4 +:10307000CE010E94FF15DF91CF911F910F9108950E +:103080000E94901E0E94A01E0E94621E0E94BA1EF4 +:1030900080E090E00E94AB1380E090E00C94C113BC +:1030A0000E94801E0C9440180E94881D292F229592 +:1030B0002F7030E02C3031054CF42A3031056CF49F +:1030C0002250310922303105A8F407C02C303105D7 +:1030D00069F02F30310551F00DC0803F69F018F4D0 +:1030E000803E40F409C0843F29F406C093FB882742 +:1030F00080F9089580E0089581E00895CF93DF93EB +:1031000000D000D01F92CDB7DEB70F900F900F9078 +:103110000F900F90DF91CF910895CF93DF9300D060 +:1031200000D000D0CDB7DEB726960FB6F894DEBF3C +:103130000FBECDBFDF91CF9108951F93CF93DF9343 +:10314000C091810116E080918201C81799F0D0E00A +:103150001C9FF0011D9FF00D1124ED57FE4F408183 +:10316000518162817381848195810E948D1821969D +:10317000C770E9CFDF91CF911F9108954091B301BE +:103180005091B4016091B5017091B6018091B70181 +:103190009091B8010C948D188091B80182958F7030 +:1031A00009F054C08091B501882309F44FC0809183 +:1031B0008101A09182016091B3017091B4014091AD +:1031C000B6015091B701B6E08A1709F43FC090E00C +:1031D00041155105C1F17F3F11F46F3FA1F1B89F37 +:1031E000F001B99FF00D1124ED57FE4F21817213AC +:1031F0002AC02081621327C02281211124C023818B +:1032000034812417350710F421503109241B350B64 +:10321000283C3105C0F42091B8012F702061209323 +:10322000B80126E0289FF001299FF00D1124E857EE +:10323000FE4F80818F708061808383EB91E00E94DC +:1032400019180C949D1801968770BECF0895CF92DF +:10325000DF92EF92FF920F931F93CF93DF93CDB73F +:10326000DEB762970FB6F894DEBF0FBECDBF8C01FC +:1032700085E0F801DE011D9601900D928A95E1F737 +:10328000D8014C9111965C91119712966C911297FE +:103290001396CD90DC9014973091B3017091B401E6 +:1032A0008091B6019091B701009709F46BC17F3FFF +:1032B00019F43F3F09F466C1E090B501EE2009F42E +:1032C000C0C02091B801C816D90628F0F601E81B45 +:1032D000F90BCF0104C0809590958C0D9D1DFF24A6 +:1032E000F394883C910578F0F12C207F09F0C6C05A +:1032F0007C2DD98AC88A89890E947E1883EB91E047 +:103300000E941918B1C0822F807F09F046C0751342 +:1033100014C0341312C0611110C02F7020612093AB +:10332000B8010E94BE1883EB91E00E9419188091A9 +:10333000B801D80115968C932EC0CD2819F15F3FA6 +:1033400011F44F3FF9F0F62E61111CC080918101FC +:103350002091820136E0821709F45AC090E0389F2C +:10336000F001399FF00D1124ED57FE4F7181571375 +:1033700006C07081471303C07281711103C00196AA +:103380008770E9CFF62E662309F418C18091B80141 +:1033900081608093B801F12C11C1751308C03413FA +:1033A00006C0611104C08091B801D801C3C04D8727 +:1033B0005E878D859E856A8B0E9454186A89882352 +:1033C000E1F16623D1F12091B801822F82958F70AF +:1033D00090E0029774F08091B3019091B4019887C6 +:1033E0008F831986DB86CA862C87CE0107960E94BA +:1033F000191886E0F801A3EBB1E001900D928A95CF +:10340000E1F70E94CC180E94BE18FF24F394D6C0A6 +:103410004D875E878D859E850E94881D292F229568 +:103420002F7030E0223031050CF0BCC09F7009F0E5 +:10343000B6C0805E883008F4C1C0C8010E94191867 +:10344000E4CFC816D90608F453C0F601E81BF90BFF +:10345000CF01883C910508F450C0F12C7C2DD98A0D +:10346000C88A89890E947E18E3EBF1E086E0DF01DB +:103470001D928A95E9F70E94BE18A0C0751314C06A +:10348000341312C0611110C08091B801F801858316 +:10349000C8010E94191886E0E3EBF1E0DF011D92FC +:1034A0008A95E9F7FE2C8AC04D875E878D859E85BB +:1034B0006A8B0E9454186A89882309F4BECF662358 +:1034C00009F4BBCF2091B801822F82958F7090E0D4 +:1034D00002970CF48ECF8091B3019091B4019A833E +:1034E00089831B82DD82CC822E83CE0101967FCF21 +:1034F000809590958C0D9D1DACCFF62E662309F41A +:103500009CCF75132EC034132CC02091B80120FD20 +:103510001FC0822F82958F70D9F0D80115962C93F9 +:1035200015978F3049F08F5F982F9295907F822F5B +:103530008F70892B15968C93C8010E94191886E00C +:10354000F801A3EBB1E001900D928A95E1F793CFDA +:1035500086E0F801A3EBB1E001900D928A95E1F7C6 +:103560002DC04D875E878D859E850E9454188111E0 +:1035700040CF8091B80181608093B801C8010E945A +:1035800019181CC0662309F458CF4D875E878D85B6 +:103590009E850E945418882309F44FCF2ACF8111A9 +:1035A00048CF0CC0243031050CF047CF9F7009F490 +:1035B00040CFF8019581907F09F03BCF8F2D629627 +:1035C0000FB6F894DEBF0FBECDBFDF91CF911F9134 +:1035D0000F91FF90EF90DF90CF9008951F93CF93BE +:1035E000DF93CDB7DEB72C970FB6F894DEBF0FBED2 +:1035F000CDBF4F83588769877A878B879C87CE0199 +:1036000007960E942719882369F08F8198852A855B +:103610003B85232BF1F19F3F09F063C08F3F09F0F9 +:1036200060C037C086E0FE013796DE01119601903A +:103630000D928A95E1F76F817885EA85FB85309751 +:1036400041F17F3F11F46F3F21F12091820130E081 +:10365000C9010196877099274091810150E0841734 +:10366000950709F447C069837A83FD83EC8396E06C +:10367000929FD001939FB00D1124AD57BE4FFE0114 +:10368000319601900D929A95E1F7809382010E9404 +:103690009D1816E080918101909182018917C1F1F6 +:1036A000189FC00111248D579E4F0E94271988230F +:1036B00079F1E09181011E9FF0011124ED57FE4F39 +:1036C0004081518162817381848195810E948D182E +:1036D0008091810190E00196877099278093810104 +:1036E000D9CF4F81588569857A858B859C850E94C5 +:1036F0008D18CFCF0E945018109282011092810134 +:10370000E3EBF1E086E0DF011D928A95E9F7C1CF96 +:103710002C960FB6F894DEBF0FBECDBFDF91CF91D0 +:103720001F910895EF92FF920F931F93CF93DF9312 +:103730008C01009709F46CC0F12CEE24E394E801AD +:103740002196F8018491843740F4843008F051C008 +:10375000813081F0823019F15BC0853709F444C0B3 +:10376000A8F19CE7980F903708F052C08F770E941D +:10377000A21541C00E5F1F4FFE01C49180E28C0F65 +:10378000883048F4C7708E2D01C0880FCA95EAF7BB +:103790000E94931E14C08C2F0E94DA142DC00E5F5D +:1037A0001F4FFE01C49180E28C0F883058F4C7701F +:1037B0008E2D01C0880FCA95EAF70E94991E0E94BB +:1037C000BA1E1AC08C2F0E94A21516C00E5F1F4F82 +:1037D000FE01C491CC2381F08FE99FE00197F1F7BE +:1037E00000C00000C150F6CF0E5F1F4FFE01F490E5 +:1037F00003C00E94DA148E018F2D882309F49FCF15 +:10380000EFE9FFE03197F1F700C000008150F5CFFC +:10381000DF91CF911F910F91FF90EF900895089540 +:103820006093BD017093BE018093BF019093C0016E +:103830000C9440180F931F930091BD011091BE018D +:103840002091BF013091C001DC01CB01802B912B75 +:10385000A22BB32B8093BD019093BE01A093BF0117 +:10386000B093C0011F910F910C9440180F931F93B8 +:103870000091BD011091BE012091BF013091C001A6 +:10388000DC01CB0180239123A223B3238093BD01CC +:103890009093BE01A093BF01B093C0011F910F91FF +:1038A0000C9440180F931F930091BD011091BE011D +:1038B0002091BF013091C001DC01CB01802791270D +:1038C000A227B3278093BD019093BE01A093BF01AF +:1038D000B093C0011F910F910C9440181092B90140 +:1038E0001092BA011092BB011092BC010C944018C6 +:1038F00041E050E060E070E004C0440F551F661FD7 +:10390000771F8A95D2F74093B9015093BA0160931B +:10391000BB017093BC010C94401841E050E060E0A2 +:1039200070E004C0440F551F661F771F8A95D2F7B9 +:103930008091B9019091BA01A091BB01B091BC01F5 +:10394000482B592B6A2B7B2B4093B9015093BA011A +:103950006093BB017093BC010C94401841E050E0AF +:1039600060E070E004C0440F551F661F771F8A9502 +:10397000D2F740955095609570958091B9019091DE +:10398000BA01A091BB01B091BC01482359236A231D +:103990007B234093B9015093BA016093BB017093AC +:1039A000BC010C94401841E050E060E070E004C0BD +:1039B000440F551F661F771F8A95D2F78091B90172 +:1039C0009091BA01A091BB01B091BC014827592741 +:1039D0006A277B274093B9015093BA016093BB01DA +:1039E0007093BC010C9440180F931F930091B90180 +:1039F0001091BA012091BB013091BC01DC01CB01D7 +:103A0000802B912BA22BB32B8093B9019093BA01F9 +:103A1000A093BB01B093BC011F910F910C9440186F +:103A20000F931F930091B9011091BA012091BB012E +:103A30003091BC01DC01CB0180239123A223B3236D +:103A40008093B9019093BA01A093BB01B093BC01DC +:103A50001F910F910C9440180F931F930091B9017F +:103A60001091BA012091BB013091BC01DC01CB0166 +:103A700080279127A227B3278093B9019093BA0199 +:103A8000A093BB01B093BC011F910F910C944018FF +:103A90000895CF92DF92EF92FF920F931F93CF93EF +:103AA000DF938C01C090BD01D090BE01E090BF01BA +:103AB000F090C0018091B9019091BA01A091BB0131 +:103AC000B091BC01C82AD92AEA2AFB2ACFE1D0E06A +:103AD000D701C6010C2E04C0B695A795979587957A +:103AE0000A94D2F780FF06C0B8018C2F0E943008DC +:103AF000019721F4219760F780E001C08C2FDF91BE +:103B0000CF911F910F91FF90EF90DF90CF9008958C +:103B1000CF93DF93EC010E94491DBE010E94300843 +:103B2000DF91CF910895CB010E94881D0895809167 +:103B3000C10185958595859508958091C10187700E +:103B4000089598E0899F90011124262B2093C101AC +:103B50000C948D1C2091C101809582238093C1011A +:103B6000982F977069F430E0482F552747FD5095FE +:103B70002417350729F08595859585950C94AE1CFD +:103B800008959091C101977081E009F480E0089553 +:103B900090910B01992321F090910C01911109C092 +:103BA00020910D0130910E01F90132969FEF40E016 +:103BB00030C0982F9695969596959F30A0F4E091F9 +:103BC0000D01F0910E01E90FF11D877021E030E049 +:103BD000A90102C0440F551F8A95E2F7CA019181DD +:103BE000892B818308959091D60190FF23C01F9265 +:103BF0008F9384E595E09F938F930E9459060F90D1 +:103C00000F900F900F9008959F3F39F04F5F4E3007 +:103C100041F051915813F8CF0DC05111F7CF942FA7 +:103C2000F5CF9F3F39F0F901E90FF11D97FDFA95A6 +:103C300082830895089590910B01992321F090912A +:103C40000C01911109C020910D0130910E01F90173 +:103C50003296205F3F4F30C0982F96959695969557 +:103C60009F30A8F4E0910D01F0910E01E90FF11DD4 +:103C7000877021E030E0A90102C0440F551F8A95EA +:103C8000E2F7CA01809591818923818308959091FB +:103C9000D60190FF16C01F928F9386E395E09F9305 +:103CA0008F930E9459060F900F900F900F900895D8 +:103CB0003196E217F30729F090819813F9CF10821B +:103CC000F7CF089581E090E0E0910D01F0910E01B1 +:103CD000E80FF91F1082019680319105A9F7089528 +:103CE0008091D50108959091D501892B8093D501BC +:103CF000089580959091D50189238093D5010895E9 +:103D00001092D50108959091D401892B8093D4010C +:103D1000089580959091D40189238093D4010895CA +:103D20001092D40108959091D301892B8093D301EF +:103D3000089580959091D30189238093D3010895AC +:103D40001092D30108958093C20108951092C20188 +:103D5000089580910D0190910E01FC0131969C0116 +:103D6000205F3F4F80E0919191118F5FE217F30741 +:103D7000D1F70895E0910D01F0910E018091D501E8 +:103D80008083E0910D01F0910E0190818091D4012A +:103D9000892B8083E0910D01F0910E01908180913B +:103DA000D301892B80838091C201882361F0E09147 +:103DB0000D01F0910E019081892B80830E94A91E34 +:103DC00081111092C20180910D0190910E010C940D +:103DD00062139093390180933801089520E0009791 +:103DE00039F0AC0141505109842395232F5FF7CF5F +:103DF000822F08958295982F9C7C392F3695369581 +:103E0000282F237344E0249FC0011124932F982B63 +:103E1000292F2A7A2695892F8575880F822B089558 +:103E20001F93CF93DF931F92CDB7DEB799830E9484 +:103E3000FA1E182F9981892F0E94FA1E212F30E037 +:103E4000322F2227A901482BCA010F90DF91CF9171 +:103E50001F9108958091E301843021F11092D701E0 +:103E600020E488E190E00FB6F894A8958093600074 +:103E70000FBE2093600080E00E94490A83B7817FD3 +:103E8000846083BF83B7816083BF7894889583B74C +:103E90008E7F83BF88E10FB6F89480936000109204 +:103EA00060000FBE089508950E945F0A0E94E20A12 +:103EB0000E94531F0E94A90B91E0811101C090E064 +:103EC000892F08950E9450180E9456130C94490A95 +:103ED0001F920F920FB60F9211248F939F93AF935F +:103EE000BF938091D701811113C08091D801909127 +:103EF000D901A091DA01B091DB014196A11DB11D5C +:103F00008093D8019093D901A093DA01B093DB019B +:103F1000BF91AF919F918F910F900FBE0F901F9007 +:103F2000189582E084BD93E095BD9AEF97BD80938C +:103F30006E0008952FB7F8948091D8019091D9011F +:103F4000A091DA01B091DB012FBF0895CF92DF92EB +:103F5000EF92FF920F931F932FB7F8944091D801DF +:103F60005091D9016091DA017091DB012FBF6A0194 +:103F70007B01EE24FF248C0120E030E0C016D10646 +:103F8000E206F30610F4415051099A01281B390B3F +:103F9000C9011F910F91FF90EF90DF90CF9008958E +:103FA0001F920F920FB60F9211248F939F93AF938E +:103FB000BF938091D8019091D901A091DA01B0917D +:103FC000DB010196A11DB11D8093D8019093D90109 +:103FD000A093DA01B093DB01BF91AF919F918F91D4 +:103FE0000F900FBE0F901F9018950E945410F894D8 +:103FF0002FEF87EA91E6215080409040E1F700C022 +:10400000000087E090EBDC018093EC019093ED01E0 +:10401000A093EE01B093EF019CE088E10FB6F89415 +:10402000A895809360000FBE90936000FFCFAF9281 +:10403000BF92CF92DF92EF92FF920F931F93CF9395 +:10404000C4E0CC24C394D12CE82EF12C8C2F0E94F8 +:10405000660B5C010FE010E09601002E02C0220FFB +:10406000331F0A94E2F72A213B21232B51F0602FC2 +:104070007C2F80E00E94B709E816F90611F481E070 +:1040800006C00150110940F7C15000F780E0CF9100 +:104090001F910F91FF90EF90DF90CF90BF90AF9066 +:1040A0000895CF93C82F8CE20E941720882321F017 +:1040B0008C2FCF910C94172080E0CF910895CF934F +:1040C0000E94B121811102C00E94972189E795E0E9 +:1040D0000E94C005C5E6C15049F00E94E20A8FE384 +:1040E0009CE90197F1F700C00000F5CF82E795E069 +:1040F0000E94C00589E20E945120811116C18AE206 +:104100000E94512081110E94972185E00E94512038 +:1041100081110E94F51F0E94BC218093D60187E087 +:104120000E9451208823A9F18BE10E94512088230D +:1041300051F08091D60181FB222720F991E092274E +:1041400090FB81F90EC08EE00E945120882361F01F +:104150008091D60182FB222720F991E0922790FBE3 +:1041600082F98093D60115C080E10E945120909180 +:10417000D601882341F093FB222720F981E0822792 +:1041800080FB93F904C0892F809580FB90F9909370 +:10419000D6018091D6010E94C0210E94CE2190E0DC +:1041A0009093DE018093DD0180EE0E9451208823F0 +:1041B00041F08091DD01982F909590FB80F98093DC +:1041C000DD0189E30E945120882359F08091DD01AF +:1041D00081FB222720F991E0922790FB81F98093BF +:1041E000DD0182EE0E945120882359F08091DD018B +:1041F00082FB222720F991E0922790FB82F980939D +:10420000DD0186EE0E945120882359F08091DD0166 +:1042100083FB222720F991E0922790FB83F980937A +:10422000DD0183EE0E945120882359F08091DD0149 +:1042300084FB222720F991E0922790FB84F9809358 +:10424000DD0185E30E945120882359F08091DD0132 +:1042500085FB222720F991E0922790FB85F9809336 +:10426000DD0181E30E945120882359F08091DD0116 +:1042700086FB222720F991E0922790FB86F9809314 +:10428000DD0181E10E945120882359F08091DD01F8 +:1042900087FB222720F991E0922790FB87F98093F2 +:1042A000DD018091DD010E94D2218091DD0187FB3B +:1042B000882780F980930C0187E20E945120C82F43 +:1042C0008EE10E9451208111C2608FE10E94512035 +:1042D0008111C46080E20E9451208111C86081E296 +:1042E0000E9451208111C06182E20E9451208111FF +:1042F000C06283E20E9451208111C06484E20E9466 +:104300005120882311F0C06802C0CC2329F08C2FE3 +:104310000E94C9216C2F03C00E94C521682F70E044 +:1043200080E090E0CF910C94101CCF9108956DEE39 +:104330007EEF80E090E00E94FB2460E082E090E06D +:104340000E94E92460E083E090E00E94E92460E0BC +:1043500084E090E00E94E92460E085E090E00C9425 +:10436000E92480E090E00E94E32421E08D3E9E4F0E +:1043700009F020E0822F089582E090E00C94DB2485 +:10438000682F82E090E00C94E92483E090E00C94A4 +:10439000DB24682F83E090E00C94E92484E090E033 +:1043A0000C94DB24682F84E090E00C94E924CF93F4 +:1043B000C82F1F928F9384E995E09F938F930E945B +:1043C000590681E090E0A0E0B0E0BC01CD0104C05E +:1043D000660F771F881F991FCA95D2F70E94101C7D +:1043E0000F900F900F900F90CF910C945018CF9387 +:1043F0008B3109F4D1C108F049C08E3009F4E0C115 +:1044000000F5873009F4A9C1A8F4863009F066C226 +:104410008091D601817F8E7F8093D6018BE197E0DA +:104420000E94C0058CEC9AE00E94C00581E0809358 +:10443000DC0191C1883009F45BC08B3009F487C17D +:104440004DC2813109F432C220F4803109F4CCC16B +:1044500045C2863109F4E3C1893109F03FC28CE0DD +:1044600097E00E94C00581EE96E00E94C00586EAB2 +:1044700096E00E94C00589E796E00E94C0058DE3A2 +:1044800096E00E94C00582E196E063C1853309F49D +:1044900021C268F4873209F41DC228F48E3108F471 +:1044A0001DC28D5118C2893209F414C217C2833457 +:1044B00038F48A3308F00CC2883309F448C10EC2BC +:1044C000833409F407C2883409F008C20E945018E6 +:1044D00080EB9AE00E94C0059FEF23ED80E39150AE +:1044E00020408040E1F700C000000E94F51F33C16A +:1044F00080ED9AE00E94C0058DE19AE00E94C0051F +:104500000E94C5211F928F938AE19AE09F938F9317 +:104510000E94590688E19AE00E94C0050E94BC21D1 +:10452000C82F85E09AE00E94C0051F92CF9380E0DB +:104530009AE09F938F930E9459068EEF99E00E9414 +:10454000C00584EF99E00E94C0058C2F81701F92F6 +:104550008F9381EF99E09F938F930E9459068FEE7E +:1045600099E00E94C00585EE99E00E94C005C1FB5C +:10457000882780F91F928F9382EE99E09F938F9303 +:104580000E94590680EE99E00E94C00584ED99E0F2 +:104590000E94C005C2FB882780F91F928F9381ED8E +:1045A00099E09F938F930E9459068FEC99E00E94A7 +:1045B000C00586EC99E00E94C005C3FBCC27C0F97A +:1045C0001F92CF9383EC99E09F938F930E9459069B +:1045D00081EC99E00E94C0050E94CE21C82F8DEA8F +:1045E00099E00E94C0051F92CF9388EA99E09F93BB +:1045F0008F930E94590686EA99E00E94C0058DE8D3 +:1046000099E00E94C0058C2F81701F928F938AE8D9 +:1046100099E09F938F930E9459068DB79EB780961D +:104620000FB6F8949EBF0FBE8DBF88E899E00E9438 +:10463000C00581E799E00E94C005C1FB882780F989 +:104640001F928F938EE699E09F938F930E94590655 +:104650008CE699E00E94C0058AE599E00E94C005B9 +:10466000C2FB882780F91F928F9387E599E09F937B +:104670008F930E94590685E599E00E94C00583E466 +:1046800099E00E94C005C3FB882780F91F928F9391 +:1046900080E499E09F938F930E9459068EE399E0FE +:1046A0000E94C00584E399E00E94C005C4FB8827EE +:1046B00080F91F928F9381E399E09F938F930E94DB +:1046C00059068FE299E00E94C0058DE199E00E94B1 +:1046D000C005C5FB882780F91F928F938AE199E076 +:1046E0009F938F930E94590688E199E00E94C0052C +:1046F0008CEF98E00E94C005C6FB882780F91F92C6 +:104700008F9389EF98E09F938F930E94590687EFCC +:1047100098E00E94C0058FEE98E00E94C005C7FB9C +:10472000CC27C0F91F92CF938CEE98E09F938F9384 +:104730000E9459068AEE98E00E94C0058DB79EB788 +:104740004C960FB6F8949EBF0FBE8DBF04C086E393 +:1047500097E00E94C005C1E0C6C08091D601C82F75 +:10476000C095C170C0FB80F98093D601CC2349F07D +:1047700084EA9AE00E94C0058091D6018660886034 +:1047800048C087E99AE00E94C0058091D601897FE0 +:10479000877F8093D601DFCF9091D60191FBCC2704 +:1047A000C0F981E0C827892FC0FB81F98093D60129 +:1047B000CC2319F08AE89AE027C08CE79AE0C9CFA9 +:1047C0009091D60192FBCC27C0F981E0C827892FB0 +:1047D000C0FB82F98093D601CC2319F08DE69AE0D4 +:1047E00013C08DE59AE0B5CF9091D60193FBCC270D +:1047F000C0F981E0C827892FC0FB83F98093D601D7 +:10480000CC2351F081E59AE00E94C0058091D60149 +:1048100081608093D60167C084E49AE09ACF84E0F7 +:1048200096E00E94C0050E9456131F928F938AEE55 +:1048300095E09F938F930E94590680910B011F92E0 +:104840008F9383ED95E09F938F930E9459068091FB +:104850006F011F928F9380EC95E09F938F930E943E +:10486000590680910C011F928F938DEA95E09F93DA +:104870008F930E9459068091D8019091D901A091FF +:10488000DA01B091DB01BF93AF939F938F9389E9D6 +:1048900095E09F938F930E9459068DB79EB74696D9 +:1048A0000FB6F8949EBF0FBE8DBF55CF0E94501813 +:1048B000C0910C0181E0C827C0930C01CC2329F0E2 +:1048C0008AE39AE00E94C0050EC08FE29AE041CFD1 +:1048D000895301C080E00E94D7213DCF8DE29AE04C +:1048E0000E94C005C0E08C2FCF91089580E008950C +:1048F00080E00895CF93C82F8091DC01882319F0C0 +:10490000813049F03EC0E0910D01F0910E018081AF +:104910008232C9F507C0E0910D01F0910E0180814E +:10492000823261F48C2F0E947624811104C08C2F76 +:104930000E94F72124C081E090E021C08C2F0E94CA +:10494000782481111BC0C43189F018F4CB3029F0D0 +:1049500010C0C93259F0C83361F48BE197E00E946E +:10496000C00580E995E00E94C00508C01092DC01F6 +:104970000CC08EE895E00E94C00507C081E0817000 +:1049800006C01092DC0180E002C080E0F8CFCF9139 +:104990000895991B79E004C0991F961708F0961B9B +:1049A000881F7A95C9F780950895EE0FFF1F05902F +:1049B000F491E02D0994F999FECF92BD81BDF89A4A +:1049C000992780B50895A8E1B0E042E050E00C944A +:1049D0000325262FF999FECF92BD81BDF89A019744 +:1049E00000B4021639F01FBA20BD0FB6F894FA9A37 +:1049F000F99A0FBE08950196272F0E94EA240C947D +:104A0000E924DC01CB01FC01F999FECF06C0F2BD1F +:104A1000E1BDF89A319600B40D9241505040B8F77C +:064A20000895F894FFCF99 +:104A2600FFBF0B8E0CC20B5A0C260C0101C30133BF +:104A36001F4F5F6F76666353437969497F03131986 +:104A46000929593940362039C3048D046D043404CC +:084A5600C003D903F2031204AE +:00000001FF diff --git a/keyboards/clueboard1/keymaps/default/keymap.c b/keyboards/clueboard1/keymaps/default/keymap.c new file mode 100644 index 000000000..3f4f3c414 --- /dev/null +++ b/keyboards/clueboard1/keymaps/default/keymap.c @@ -0,0 +1,184 @@ +#include "clueboard1.h" + +#ifdef RGBLIGHT_ENABLE +#include "rgblight.h" +#endif + +// Used for SHIFT_ESC +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _FL 1 +#define _RS 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: (Base Layer) Default Layer + * ,--------------------------------------------------------------------------. ,----. + * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| BS| |PGUP| + * |--------------------------------------------------------------------------| |----| + * | Tab| Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |PGDN| + * |--------------------------------------------------------------------------| `----' + * |Capslck| A| S| D| F| G| H| J| K| L| ;| '| # | Ent| + * |-----------------------------------------------------------------------------. + * |Shift| BS| Z| X| C| V| B| N| M| ,| .| /| BS|Shift| UP| + * |------------------------------------------------------------------------|----|----. + * | Ctrl| Gui| Alt| MHen| Space| Space| Hen| Alt| Ctrl| _FL|LEFT|DOWN|RGHT| + * `----------------------------------------------------------------------------------' + */ +[_BL] = KEYMAP( + F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PGUP, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, \ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, \ + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_MHEN, KC_SPC,KC_SPC, KC_HENK, KC_RALT, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT), + + /* Keymap _FL: Function Layer + * ,--------------------------------------------------------------------------. ,----. + * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9| F10| F11| F12| | Del| |BLIN| + * |--------------------------------------------------------------------------| |----| + * | | | | | | | | |PScr|SLck|Paus| | | | |BLDE| + * |--------------------------------------------------------------------------| `----' + * | | | _RS| | | | | | | | | | | | + * |-----------------------------------------------------------------------------. + * | | | | | | | | | | | | | | |PGUP| + * |------------------------------------------------------------------------|----|----. + * | | | | | | | | | | _FL|HOME|PGDN| END| + * `----------------------------------------------------------------------------------' + */ +[_FL] = KEYMAP( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL, BL_STEP, \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PSCR,KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), KC_HOME, KC_PGDN, KC_END), + + /* Keymap _RS: Reset layer + * ,--------------------------------------------------------------------------. ,----. + * | | | | | | | | | | | | | | | | | | + * |--------------------------------------------------------------------------| |----| + * | | | | |RESET| | | | | | | | | | | | + * |--------------------------------------------------------------------------| `----' + * | | | _RS| | | | | | | | | | | | + * |-----------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |------------------------------------------------------------------------|----|----. + * | | | | | | | | | | _FL| | | | + * `----------------------------------------------------------------------------------' + */ +[_RS] = KEYMAP( + #ifdef RGBLIGHT_ENABLE + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(1), F(7), \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(8), \ + KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + MO(_FL), KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), F(5), \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, F(2), F(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(4), F(6), F(3)), + #else + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), KC_TRNS, KC_TRNS, KC_TRNS), + #endif +}; + +enum function_id { + SHIFT_ESC, + #ifdef RGBLIGHT_ENABLE + RGBLED_TOGGLE, + RGBLED_STEP_MODE, + RGBLED_INCREASE_HUE, + RGBLED_DECREASE_HUE, + RGBLED_INCREASE_SAT, + RGBLED_DECREASE_SAT, + RGBLED_INCREASE_VAL, + RGBLED_DECREASE_VAL + #endif +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(SHIFT_ESC), + #ifdef RGBLIGHT_ENABLE + [1] = ACTION_FUNCTION(RGBLED_TOGGLE), + [2] = ACTION_FUNCTION(RGBLED_STEP_MODE), + [3] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), + [4] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), + [5] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), + [6] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), + [7] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), + [8] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), + #endif +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + static uint8_t shift_esc_shift_mask; + switch (id) { + case SHIFT_ESC: + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + //led operations + #ifdef RGBLIGHT_ENABLE + case RGBLED_TOGGLE: + if (record->event.pressed) { + rgblight_toggle(); + } + + break; + case RGBLED_INCREASE_HUE: + if (record->event.pressed) { + rgblight_increase_hue(); + } + break; + case RGBLED_DECREASE_HUE: + if (record->event.pressed) { + rgblight_decrease_hue(); + } + break; + case RGBLED_INCREASE_SAT: + if (record->event.pressed) { + rgblight_increase_sat(); + } + break; + case RGBLED_DECREASE_SAT: + if (record->event.pressed) { + rgblight_decrease_sat(); + } + break; + case RGBLED_INCREASE_VAL: + if (record->event.pressed) { + rgblight_increase_val(); + } + break; + case RGBLED_DECREASE_VAL: + if (record->event.pressed) { + rgblight_decrease_val(); + } + break; + case RGBLED_STEP_MODE: + if (record->event.pressed) { + rgblight_step(); + } + break; + #endif + } +} diff --git a/keyboards/clueboard1/led.c b/keyboards/clueboard1/led.c new file mode 100644 index 000000000..f0dd5662d --- /dev/null +++ b/keyboards/clueboard1/led.c @@ -0,0 +1,32 @@ + /* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include +#include "stdint.h" +#include "led.h" + + +void led_set_kb(uint8_t usb_led) { + DDRF |= (1<<0); + if (usb_led & (1< +#include "backlight.h" +#include "print.h" + +/* Clueboard 2.0 LED locations: + * + * Capslock: B4, pull high to turn on + * LCtrl: Shared with Capslock, DO NOT INSTALL LED'S IN BOTH + * Page Up: B7, pull high to turn on + * Escape: D6, pull high to turn on + * Arrows: D4, pull high to turn on + */ + +void init_backlight_pin(void) { + print("init_backlight_pin()\n"); + // Set our LED pins as output + DDRD |= (1<<6); // Esc + DDRB |= (1<<7); // Page Up + DDRD |= (1<<4); // Arrows + + // Set our LED pins low + PORTD &= ~(1<<6); // Esc + PORTB &= ~(1<<7); // Page Up + PORTD &= ~(1<<4); // Arrows +} + +void backlight_set(uint8_t level) { + if ( level == 0 ) { + // Turn off light + PORTD |= (1<<6); // Esc + PORTB |= (1<<7); // Page Up + PORTD |= (1<<4); // Arrows + } else { + // Turn on light + PORTD &= ~(1<<6); // Esc + PORTB &= ~(1<<7); // Page Up + PORTD &= ~(1<<4); // Arrows + } +} + diff --git a/keyboards/clueboard2/clueboard2.c b/keyboards/clueboard2/clueboard2.c new file mode 100644 index 000000000..8493c564c --- /dev/null +++ b/keyboards/clueboard2/clueboard2.c @@ -0,0 +1,40 @@ +#include "clueboard2.h" + +#ifdef BACKLIGHT_ENABLE +#include "backlight.h" +#endif + +__attribute__ ((weak)) +void matrix_init_user(void) { + // leave these blank +}; + +__attribute__ ((weak)) +void matrix_scan_user(void) { + // leave these blank +}; + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + if (matrix_init_user) { + (*matrix_init_user)(); + } + led_init_ports(); + + #ifdef BACKLIGHT_ENABLE + init_backlight_pin(); + #endif + + // JTAG disable for PORT F. write JTD bit twice within four cycles. + MCUCR |= (1< + + +/* Clueboard matrix layout + * ,-----------------------------------------------------------. ,---. + * | 00| 01| 02| 03| 04| 05| 06| 07| 50| 51| 52| 53| 54| 55| 56| | 57| + * |-----------------------------------------------------------| |---| + * | 10| 11| 12| 13| 14| 15| 16| 17| 60| 61| 62| 63| 64| 65| | 67| + * |-----------------------------------------------------------| `---' + * | 20| 21| 22| 23| 24| 25| 26| 27| 70| 71| 72| 73| 74| 75| + * |------------------------------------------------------------. + * | 30| 31| 32| 33| 34| 35| 36| 37| 80| 81| 82| 83| 84| 85|86| + * |------------------------------------------------------------------. + * | 40| 41| 42| 43| 45| 46| 90| 91| 92| 93| 94| 95| 96| + * `------------------------------------------------------------------' + * ,-----------------------------------------------------------. ,---. + * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Yen| BS| |Ins| + * |-----------------------------------------------------------| |---| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |Del| + * |-----------------------------------------------------------| `---' + * |Caps | A| S| D| F| G| H| J| k| L| ;| '| # | Ent| + * |--------------------------------------------------------------. + * |Shift| \| Z| X| C| V| B| N| M| ,| .| /| \|Shift| Up| + * |------------------------------------------------------------------. + * |Ctrl|Alt|Gui |MHen| Space| Space|Henk|Gui |Ctrl| Fn|Left|Down|Rgt| + * `------------------------------------------------------------------' + */ +// The first section contains all of the arguments +// The second converts the arguments into a two-dimensional array +#define KEYMAP( \ + k00, k01, k02, k03, k04, k05, k06, k07, k50, k51, k52, k53, k54, k55, k56, k57, \ + k10, k11, k12, k13, k14, k15, k16, k17, k60, k61, k62, k63, k64, k65, k67, \ + k20, k21, k22, k23, k24, k25, k26, k27, k70, k71, k72, k73, k74, k75, \ + k30, k31, k32, k33, k34, k35, k36, k37, k80, k81, k82, k83, k84, k85, k86, \ + k40, k41, k42, k43, k45, k46, k90, k92, k93, k94, k95, k96, k97 \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07 }, \ + { k10, k11, k12, k13, k14, k15, k16, k17 }, \ + { k20, k21, k22, k23, k24, k25, k26, k27 }, \ + { k30, k31, k32, k33, k34, k35, k36, k37 }, \ + { k40, k41, k42, k43, KC_NO, k45, k46, KC_NO }, \ + { k50, k51, k52, k53, k54, k55, k56, k57 }, \ + { k60, k61, k62, k63, k64, k65, KC_NO, k67 }, \ + { k70, k71, k72, k73, k74, k75, KC_NO, KC_NO }, \ + { k80, k81, k82, k83, k84, k85, k86, KC_NO }, \ + { k90, KC_NO, k92, k93, k94, k95, k96, k97 } \ +} + +void matrix_init_user(void); +void matrix_scan_user(void); + +#endif diff --git a/keyboards/clueboard2/config.h b/keyboards/clueboard2/config.h new file mode 100644 index 000000000..2887519af --- /dev/null +++ b/keyboards/clueboard2/config.h @@ -0,0 +1,99 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xC1ED +#define PRODUCT_ID 0x2320 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Clueboard +#define PRODUCT Clueboard with RGB Underlighting +#define DESCRIPTION QMK keyboard firmware for Clueboard + +/* key matrix size */ +#define MATRIX_ROWS 10 +#define MATRIX_COLS 8 + +// ROWS: Top to bottom, COLS: Left to right +/* Row pin configuration +* row: 0 1 2 3 4 5 6 7 8 9 +* pin: B2 C7 C6 B6 B5 B0 B3 D5 D3 D2 +*/ +#define MATRIX_ROW_PINS { B2, C7, C6, B6, B5, B0, B3, D5, D3, D2 } +/* Column pin configuration + * col: 0 1 2 3 4 5 6 7 + * pin: F0 F1 F4 F5 F6 F7 E6 B1 + */ +#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, E6, B1 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* Backlight configuration + */ +#define BACKLIGHT_LEVELS 1 + +/* Underlight configuration + */ + #define ws2812_PORTREG PORTD + #define ws2812_DDRREG DDRD + #define ws2812_pin 7 + #define RGBLED_NUM 14 // Number of LEDs + #define RGBLIGHT_HUE_STEP 10 + #define RGBLIGHT_SAT_STEP 17 + #define RGBLIGHT_VAL_STEP 17 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/clueboard2/keymaps/default/compiled.hex b/keyboards/clueboard2/keymaps/default/compiled.hex new file mode 100644 index 000000000..c737eb3c6 --- /dev/null +++ b/keyboards/clueboard2/keymaps/default/compiled.hex @@ -0,0 +1,1246 @@ +:100000000C94E5050C9429060C9429060C942906F9 +:100010000C9429060C9429060C9429060C942906A4 +:100020000C9429060C9429060C9449110C941B126B +:100030000C94FD1F0C9429060C9429060C94290697 +:100040000C9429060C9429060C9429060C94290674 +:100050000C9429060C9465200C9429060C9429060E +:100060000C9429060C9429060C9429060C94290654 +:100070000C9429060C9429060C9429060C94290644 +:100080000C9429060C9429060C9429060C94290634 +:100090000C9429060C9429060C9429060C94290624 +:1000A0000C9429060C9429060C9429068812AA128D +:1000B0009813AA129813EF121213981367137A1356 +:1000C00099169916C816C81607177218721872185A +:1000D00027177218D717D7173E18471872186C18B9 +:1000E000E417E417E417E417E417E417E417E41738 +:1000F000E417E417E417E417E417E417E417E41728 +:10010000F4170218091810181A18696E69745F62DA +:1001100061636B6C696768745F70696E28290A0097 +:1001200000F000201E001F002000210022002300FC +:1001300024002B0014001A000800150017001C00F2 +:100140001800390004001600070009000A000B001F +:100150000D00E10064001D001B00060019000500F1 +:100160001100E000E300E2008B0000002C002C00F6 +:1001700000002500260027002D002E0035002A0053 +:100180004B000C00120013002F0030003100000063 +:100190004E000E000F003300340032002800000033 +:1001A000000010003600370038008700E5005200DC +:1001B00000008A000000E600E400015250005100F7 +:1001C0004F0035003A003B003C003D003E003F0040 +:1001D00040000100010001000100010001000100D8 +:1001E00001000100010002520100010001000100B4 +:1001F00001000100010001000100010001000100F7 +:1002000001000100010001000100000001000100E7 +:1002100000004100420043004400450001004C0042 +:100220008350460047004800010001000100000023 +:1002300001000100010001000100010001000000B7 +:1002400000000100010001000100010001004B005D +:100250000000010000000100010001524A004E00B0 +:100260004D0001000100010001000100010001003A +:100270000100010001000100010000500100010027 +:100280000100010001000252010001000100010013 +:100290000100010001000100010001000100010056 +:1002A0000100010001000100010000000100010047 +:1002B0000000010001000100010001000100010037 +:1002C0000100010001000100010001000100000027 +:1002D0000100010001000100010001000100000017 +:1002E0000000010001000100010001000100010007 +:1002F00000000100000001000100015201000100A6 +:1003000001000A44454255473A20656E61626C65BA +:10031000642E0A005374617465206F6620726F77D3 +:100320002025583A2025303136620A0048756D6123 +:100330006E2D7265616461626C65206D61747269B5 +:10034000782073746174653A0D0A004465626F75B4 +:100350006E63696E672064656C61792072656D619A +:10036000696E696E673A2025580A005B735D004B21 +:100370006579626F6172642073746172742E0A0011 +:100380005B575D005B535D005B525D005B445D004D +:100390005B435D00420343006C0075006500620032 +:1003A0006F00610072006400200077006900740033 +:1003B00068002000520047004200200055006E00F7 +:1003C0006400650072006C006900670068007400DA +:1003D00069006E0067000000140343006C007500A4 +:1003E000650062006F006100720064000000040399 +:1003F000090409027400040100A0FA0904000001C4 +:1004000003010100092111010001223F00070581BC +:100410000308000A0904010001030000000921117A +:100420000100012236000705820308000A090402C0 +:100430000002030000000921110100012220000731 +:1004400005830320000107050303200001090403BD +:1004500000010300000009211101000122390007F9 +:100460000584031000011201100100000008EDC115 +:10047000202301000102000105010906A101050771 +:1004800019E029E715002501950875018102050885 +:1004900019012905950575019102950175039101D1 +:1004A0000507190029771500250195787501810246 +:1004B000C00631FF0974A1010975150025FF9520BB +:1004C000750881020976150025FF952075089102AF +:1004D000C005010980A101850216010026B7001A96 +:1004E00001002AB700751095018100C0050C0901B3 +:1004F000A1018503160100269C021A01002A9C0214 +:10050000751095018100C005010906A101050719B3 +:10051000E029E7150025019508750181029501750F +:1005200008810105081901290595057501910295B4 +:1005300001750391010507190029FF150025FF9595 +:100540000675088100C00A002530325820006B650E +:1005500079626F6172645F7265706F72743A2000C5 +:100560004B6579626F617264204C454473207374EB +:100570006174653A2025780A0064656C5F6B657963 +:100580005F6269743A2063616E27742064656C3A17 +:1005900020253032580A006164645F6B65795F62C0 +:1005A00069743A2063616E2774206164643A20257F +:1005B0003032580A00646F6E652E0A00626F6F67F2 +:1005C0006D61676963207363616E3A202E2E2E2061 +:1005D000003F00433E20004C25640A0074696D65AD +:1005E000725F636F756E743A202530346C580A0060 +:1005F0006B6579626F6172645F6E6B726F3A202512 +:10060000580A006B6579626F6172645F69646C653A +:100610003A2025580A006B6579626F6172645F70D9 +:10062000726F746F636F6C3A2025580A00686F739D +:10063000745F6B6579626F6172645F6C6564732867 +:10064000293A2025580A000A092D2053746174752F +:1006500073202D0A004743433A20342E392E32208E +:100660004156522D4C4942433A20312E382E3120EA +:100670004156525F415243483A20617672350A0032 +:100680004F5054494F4E533A204C55464120424F0B +:100690004F544D414749432045585452414B4559C9 +:1006A00020434F4E534F4C4520434F4D4D414E44F8 +:1006B000204E4B524F20343039360A004255494CB7 +:1006C000443A20313637313865662D646972747961 +:1006D000202832333A31303A3036204A756E2020A5 +:1006E000392032303136290A005649443A203078D0 +:1006F0004331454428436C7565626F6172642920FB +:100700005049443A2030783233323028436C756592 +:10071000626F617264207769746820524742205585 +:100720006E6465726C69676874696E6729205645E6 +:10073000523A203078303030310A00444553433A41 +:1007400020514D4B206B6579626F61726420666940 +:10075000726D7761726520666F7220436C75656299 +:100760006F6172640A000A092D2056657273696F01 +:100770006E202D0A000A092D20436F6E736F6C6581 +:10078000202D0A4553432F713A09717569740A0087 +:100790000A092D204D61676963202D0A443A0944F6 +:1007A00065627567204D65737361676520546F6777 +:1007B000676C650A583A094D61747269782044651E +:1007C000627567204D6F646520546F67676C6520A4 +:1007D0002D2053686F77206B657970726573736530 +:1007E0007320696E206D6174726978206772696424 +:1007F0000A4B3A094B6579626F6172642044656205 +:10080000756720546F67676C65202D2053686F777C +:10081000206B65797072657373207265706F727486 +:100820000A4D3A094465627567204D6F75736520FE +:10083000546F67676C650A563A0956657273696F3B +:100840006E0A533A095374617475730A433A094145 +:100850006374697661746520436F6E736F6C652095 +:100860004D6F64650A46312D4631303A0953776938 +:1008700074636820746F204C6179657220302D3963 +:100880002028463130203D204C30290A302D393A7D +:100890000953776974636820746F204C61796572BD +:1008A00020302D390A4553433A09537769746368F8 +:1008B00020746F204C6179657220302028616C743F +:1008C00065726E617465206B65792031290A475223 +:1008D0004156453A0953776974636820746F204C18 +:1008E0006179657220302028616C7465726E617464 +:1008F00065206B65792032290A50415553453A09E4 +:100900004A756D7020746F20426F6F746C6F6164F4 +:10091000657220285265736574290A453A09507238 +:10092000696E7420454550524F4D2053657474696B +:100930006E67730A4E3A094E4B524F20546F6767E9 +:100940006C650A000A002575002E6C6576656C3AA8 +:1009500020000A002575002E656E61626C653A20E4 +:10096000000A0025303258006261636B6C69676869 +:10097000745F636F6E6669672E7261773A20000A52 +:10098000002575002E6E6B726F3A20000A002575E7 +:10099000002E737761705F6261636B736C61736863 +:1009A0005F6261636B73706163653A20000A0025C2 +:1009B00075002E737761705F67726176655F65732E +:1009C000633A20000A002575002E6E6F5F67756917 +:1009D0003A20000A002575002E737761705F7261FE +:1009E0006C745F726775693A20000A002575002EE5 +:1009F000737761705F6C616C745F6C6775693A20C6 +:100A0000000A002575002E636170736C6F636B5F65 +:100A1000746F5F636F6E74726F6C3A20000A00250A +:100A200075002E737761705F636F6E74726F6C5FA9 +:100A3000636170736C6F636B3A20000A002530327B +:100A400058006B65796D61705F636F6E6669672EC4 +:100A50007261773A20000A002575002E6D6F75735C +:100A6000653A20000A002575002E6B6579626F617A +:100A700072643A20000A002575002E6D6174726957 +:100A8000783A20000A002575002E656E61626C655B +:100A90003A20000A00253032580064656275675FAD +:100AA000636F6E6669672E7261773A20000A0025CF +:100AB000750064656661756C745F6C617965723A26 +:100AC00020003F004E4B524F3A206F66660A004EA0 +:100AD0004B524F3A206F6E0A000A6D6F7573653A7C +:100AE000206F66660A000A6D6F7573653A206F6E37 +:100AF0000A000A6B6579626F6172643A206F6666FC +:100B00000A000A6B6579626F6172643A206F6E0A3F +:100B1000000A6D61747269783A206F66660A000A8D +:100B20006D61747269783A206F6E0A000A646562BA +:100B300075673A206F66660A000A64656275673AEF +:100B4000206F6E0A000A0A4A756D70696E6720741C +:100B50006F20626F6F746C6F616465722E2E2E2031 +:100B600000433E20006565636F6E6669673A0A0060 +:100B70006261636B6C6967687420737465703A2096 +:100B800025750A006261636B6C6967687420746F15 +:100B900067676C653A2025750A006261636B6C6952 +:100BA0006768742064656372656173653A202575B2 +:100BB0000A006261636B6C6967687420696E6372B6 +:100BC000656173653A2025750A0011241FBECFEFB9 +:100BD000DAE0DEBFCDBF04B603FE24C08091EA0197 +:100BE0009091EB01A091EC01B091ED018730904B19 +:100BF000A740B04BB9F41092EA011092EB011092A9 +:100C0000EC011092ED0114BE84B7877F84BF88E1A8 +:100C10000FB6F89480936000109260000FBEE0E081 +:100C2000F8E3099511E0A0E0B1E0E4E8FDE402C0DA +:100C300005900D92A633B107D9F711E0A6E3B1E014 +:100C400001C01D92AA3EB107E1F70E94830E0C94E9 +:100C5000C0260C940000FF93EF93E0913601F091D1 +:100C60003701309709F00995EF91FF910895FC0144 +:100C70008591803011F0EFDFFBCF0895FF27E0E290 +:100C800030E247FF0CC0419597FF09C0EDE2609547 +:100C9000709580959095611D711D811D911D27FF97 +:100CA00002C0219530E350E2AA27660F771F881F04 +:100CB000991FAA1FA41710F0A41B63955A95A9F7B2 +:100CC000AA3008F0A95FA05DAF93F3956115710597 +:100CD0008105910541F7ED3211F4EF93F395F21789 +:100CE00018F43F93F395FBCF8F91B5DFFA95E1F7B9 +:100CF0000895E991F9918591803021F0853219F0BC +:100D0000AADFF9CF089520E0E89455915532C1F358 +:100D1000503311F4689455915A3348F4505390F37A +:100D2000220F022E220F220F200D250FF4CF0EF4DA +:100D3000219589919991533619F3533729F15335F8 +:100D400059F1BC0188279927E8945C3621F48991F0 +:100D5000999168945591543639F446EF7EF077FFB7 +:100D60000DC08FEF9FEF0AC055374AE039F0583574 +:100D700040E121F0523642E009F00895FF93EF93ED +:100D80007DDFEF91FF91B7CFFF93EF93FC0181914E +:100D90008030B9F360DFFBCFFF93EF9368DFF1CFD3 +:100DA000DF93CF93CDB7DEB72596A3DFCF91DF9149 +:100DB00008958AE091E00E943706569A279A549A3D +:100DC0005E982F985C980895811104C05E9A2F9ABE +:100DD0005C9A08955E982F985C980895249A0895D7 +:100DE00081FF02C02C9A08952C98089508950895C3 +:100DF00086EF96E0892B11F00E94F6060E94EE061F +:100E00000E94D90685B7806885BF85B7806885BF91 +:100E1000089587EF96E0892B11F00C94F70608955A +:100E2000CF93DF93611120C0EC010E94F91E827202 +:100E3000809338019A81992351F0882319F085E332 +:100E400090E002C089E290E00E94511E09C0882310 +:100E500019F085E390E002C089E290E00E94A41EB0 +:100E6000DF91CF910C94431FDF91CF91089581E0E2 +:100E7000089581E008950C94390708950F931F9306 +:100E8000CF93DF938C01FC01C081D181CE010E9400 +:100E9000D21DBE010E94ED07EC01B8010E943B0784 +:100EA000882309F48DC0F8018281882309F44AC09F +:100EB0008091440181111FC0C431F0E5DF0709F0C2 +:100EC00051C00E943D0781E0809344010E942F2081 +:100ED000909343018093420110923B0110923D0197 +:100EE00010923C0110923F0110923E01109241017C +:100EF0001092400165C080914201909143010E948F +:100F00003B20883C910570F480913B01E82FF0E094 +:100F1000EE0FFF1FE45CFE4FD183C0838F5F809391 +:100F20003B014EC0C43880E5D80721F0C538D04514 +:100F300001F13AC0F8018281882341F01092390111 +:100F400082E01EC0C438E0E5DE0759F58091390122 +:100F5000811106C086E20E943D1586E20E940516B8 +:100F600082E01CC0C438F0E5DF0741F3C538D04546 +:100F7000D9F4F8018281882331F010923A0180E29D +:100F80000E9454161DC080913A01811106C087E26B +:100F90000E943D1587E20E94051680E20E945B16C2 +:100FA0000FC0C538D04529F381E080933901809383 +:100FB0003A01C801DF91CF911F910F910C9437072F +:100FC00080E0DF91CF911F910F9108950C94F80666 +:100FD0000C94090780E090E00895E72FF0E09AE094 +:100FE000899FE00DF11D112483E0EE0FFF1F8A950C +:100FF000E1F7E60FF11DEE0FFF1FEE5DFE4F85914D +:1010000094910895880F991FFC01E056F040859156 +:1010100094910895880F991FFC01E05EFE4F859121 +:10102000949108950F931F93CF93DF93EC01811553 +:1010300021E39207A0F5C11580E3D80708F0D7C0D7 +:10104000C83ED105D8F4C03ED10508F007C2C83A61 +:10105000D10578F4C53AD10508F06AC0C130D10590 +:1010600009F463C008F4F7C1C430D10508F0F6C133 +:10107000F2C1CB3BD10508F466C0EDC1C11590E2C9 +:10108000D90708F0AFC0C11521E0D20708F0E6C1CA +:10109000C03FD10508F4DFC18E0110651FC2C03802 +:1010A00080E5D80700F5C03790E5D90708F0A3C060 +:1010B000C11520E5D20709F4ACC050F4CE0190541C +:1010C00080319F4008F0C7C1DF708E01106A06C2F0 +:1010D000C13080E5D80709F4AAC0C43190E5D9072A +:1010E00008F4AFC0B8C1C33820E5D20709F48EC0F8 +:1010F00050F4C13890E5D90709F482C008F083C0E4 +:1011000000E011EDEBC1C03181E5D80708F4A3C1BF +:10111000C11597E5D90708F436C1CE01905781155E +:10112000904108F098C1DF7093C101E010E0D6C192 +:10113000C53AD10509F494C1C63AD10509F093C165 +:1011400002E810E4CBC1C83AD10509F48FC1C93A0D +:10115000D10509F48EC1CA3AD10509F48DC1CB3A43 +:10116000D10509F48CC1CC3AD10509F48BC1CD3A33 +:10117000D10509F48AC1C03BD10509F489C1CE3A31 +:10118000D10509F488C1CF3AD10509F487C1C13B23 +:10119000D10509F486C1C23BD10509F485C1C33B21 +:1011A000D10509F484C1C43BD10509F483C1C53B11 +:1011B000D10509F482C1C63BD10509F481C1C73B01 +:1011C000D10509F480C1C83BD10509F47FC1C93BF1 +:1011D000D10509F47EC1CA3BD10509F47DC100E007 +:1011E00014E47CC1CE019F700E940A0878C1DD27FB +:1011F0008E01106C73C1CF70DD278E01146D6EC12E +:1012000000E010ED6BC100E012ED68C100E013EDED +:1012100065C10E94D9188FEF94E32CE08150904073 +:101220002040E1F700C000000E948A2057C182E000 +:1012300093E00E9437068091D40181608093D401AD +:101240004DC10E943C22811102C00E941D220E94B9 +:10125000592290E09093E9018093E801C23080E543 +:10126000D80721F48091E801816086C0C43090E500 +:10127000D90721F48091E80182607EC0C63020E564 +:10128000D20721F48091E801846076C0C83080E5FF +:10129000D80719F48091E80127C0CA3090E5D90732 +:1012A00021F48091E801806167C0CC3020E5D2074D +:1012B00021F48091E80180625FC0CE3080E5D807DC +:1012C00021F48091E801806457C0C03190E5D907CE +:1012D00021F48091E80180684FC0C23120E5D20737 +:1012E00029F48091E8018460886046C0C33080E5BD +:1012F000D80721F48091E8018E7F3EC0C53090E58B +:10130000D90721F48091E8018D7F36C0C73020E5F0 +:10131000D20721F48091E8018B7F2EC0C93080E58F +:10132000D80719F48091E80126C0CB3090E5D907A1 +:1013300021F48091E8018F7E1FC0CD3020E5D207D7 +:1013400021F48091E8018F7D17C0CF3080E5D80768 +:1013500021F48091E8018F7B0FC0C13190E5D9075E +:1013600021F48091E8018F7707C0C331D04531F473 +:101370008091E8018B7F877F8093E8018091E8016D +:101380000E945D22ABC08D2F99278F7099278130E5 +:101390009105D9F49E012370332702C0880F991F4D +:1013A0002A95E2F79C688E0144E0000F111F4A95D0 +:1013B000E1F700271370802B912B53E0CC0FDD1F3A +:1013C0005A95E1F7C076DD272FC08230910531F4C0 +:1013D000DC2FCC278E01016F106A80C0833091050D +:1013E00069F4CE018370992701E010E002C0000F7C +:1013F000111F8A95E2F7C8019C680FC084309105DF +:10140000B9F4CE018370992701E010E002C0000F0B +:10141000111F8A95E2F7C8019A6823E0CC0FDD1FFF +:101420002A95E1F7C07ED7708C010C2B1D2B56C07E +:101430008530910531F4DC2FCC278E01046F106AC2 +:101440004DC0069709F04AC0CF71DD27DC2FCC27AD +:101450008E01106243C000E010E040C08E013EC02B +:1014600001E810E43BC003E810E438C002EE14E4E5 +:1014700035C009EE14E432C00AEE14E42FC005EBC7 +:1014800014E42CC006EB14E429C007EB14E426C0D6 +:101490000CEC14E423C00DEC14E420C003E815E4C4 +:1014A0001DC00AE815E41AC002E915E417C004E9F2 +:1014B00015E414C001E216E411C003E216E40EC004 +:1014C00004E216E40BC005E216E408C006E216E4E6 +:1014D00005C007E216E402C00AE216E4C801DF9183 +:1014E000CF911F910F910895E72FF0E09AE0899F27 +:1014F000E00DF11D112483E0EE0FFF1F8A95E1F747 +:10150000E60FF11DEE0FFF1FEE5DFE4F85919491EA +:10151000803E9105E0F4803C910558F581339105BA +:1015200009F46FC048F48932910509F463C08A3226 +:10153000910509F46DC072C089339105E9F08238D4 +:101540009105D1F08533910509F44DC067C0833E04 +:10155000910581F138F4803E9105B9F0823E910504 +:10156000D9F05CC0863E910561F1873E9105A1F1FD +:1015700055C00E94020808952091E80120FD02C094 +:1015800021FF4CC080EE90E049C08091E80180FFCF +:10159000F9CF89E390E042C08091E80182FF0EC05C +:1015A0008091E80184FF03C080E090E037C083EEC3 +:1015B00090E034C08091E80182FFF2CF82EE90E0AB +:1015C0002DC08091E80183FF0BC08091E80184FD6C +:1015D000EBCF87EE90E022C08091E80183FFF5CF4A +:1015E00086EE90E01BC08091E80185FF07C089E28C +:1015F00090E014C08091E80185FFF9CF85E390E089 +:101600000DC08091E80186FF07C08AE290E006C025 +:101610008091E80186FFF9CF81E390E00E941208F3 +:1016200008950C94F006E82FF0E0E95EFE4F80810B +:10163000E82FEF70F0E082958F7021E030E0A90193 +:1016400002C0440F551F8A95E2F740A308950F93F7 +:101650001F93CF93DF9385B7806885BF85B7806878 +:1016600085BFC9E0D0E001E010E0FE01E95EFE4F79 +:101670008081E82FEF70F0E021A182958F70A801A2 +:1016800002C0440F551F8A95E2F7CA01822B81A33D +:101690008C2F0E94130B219740F787E090E061E0C8 +:1016A00070E0FC01E15FFE4F2081E22FEF70F0E07F +:1016B00042A122952F70DB0102C0AA0FBB1F2A9501 +:1016C000E2F79D01242B22A3019758F7DF91CF91D8 +:1016D0001F910F910C94E607EF92FF920F931F93C7 +:1016E000CF93DF930FE411E0C9E0EE24E394F12CF3 +:1016F000D5E08C2F0E94130B87E090E040E0FC01C6 +:10170000E15FFE4F5081E52FEF70F0E020A130E067 +:1017100052955F7002C0359527955A95E2F720FDE6 +:1017200007C09701082E01C0220F0A94EAF7422B46 +:10173000019728F7F80182918F01841719F04083EF +:10174000D09300018C2F0E94130BC15090F6809112 +:10175000000187FD32C09091D40190FF10C0282F66 +:10176000332727FD30953F938F938BE493E09F932E +:101770008F930E94D0060F900F900F900F90809142 +:10178000000181508093000187FD07C08FE99FE031 +:101790000197F1F700C0000010C080E090E0FC016C +:1017A000E15BFE4FDC01AB5BBE4F19962C912187AC +:1017B0000197863FEFEF9E0791F70E94E80781E0CF +:1017C000DF91CF911F910F91FF90EF900895E82F37 +:1017D000F0E0E15BFE4F808108950F931F93CF935C +:1017E000DF938091D40180FF04C08CE293E00E94DB +:1017F0003706C0E0D0E004E113E08091D40180FF1F +:1018000015C0FE01E15BFE4F808190E00E94991FB0 +:101810009F938F93DF93CF931F930F930E94D006D4 +:101820000F900F900F900F900F900F902196CA304D +:10183000D10519F7DF91CF911F910F9108950F9363 +:101840001F93CF9309E511E0C0E0F80182918F0169 +:1018500090E00E94771FC80FF1E00F341F07A9F72F +:101860008C2FCF911F910F91089580916C01089555 +:1018700008959FB7F89410925B019FBF9091DF018C +:10188000943009F057C09091E9009F703091EC00BE +:10189000232F217030FD20E8922B23E02093E900D4 +:1018A0002091EB0020FF43C02091EE0027FF3FC0B6 +:1018B00020915901222321F02091E80025FF37C013 +:1018C0001092590126E03091E80035FD15C03091A5 +:1018D000DF01343061F53091EB0035FD28C0215037 +:1018E00021F481E08093590122C0EFE9FFE03197B4 +:1018F000F1F700C00000E7CF8093F1008091E8008D +:1019000085FD0AC08091E80080FFFCCF8091E8004F +:101910008E778093E80006C08FB7F89421E020937B +:101920005B018FBF9F709093E90080E008959F70E6 +:101930009093E9008FEF0895CF93DF9300D01F922B +:10194000CDB7DEB72091DF01243021F523E02983D4 +:101950009B838A8382E08093E9008FEF9091E80077 +:10196000815095FD06C095ED9A95F1F70000811123 +:10197000F5CF8091E80085FF0DC040E050E063E0C6 +:1019800070E0CE0101960E94390F8091E8008E77B9 +:101990008093E8000F900F900F90DF91CF91089502 +:1019A000CF93DF9300D01F92CDB7DEB79C0180911B +:1019B000DF01843019F592E099833B832A83909369 +:1019C000E9008FEF9091E800815095FD06C095EDFC +:1019D0009A95F1F700008111F5CF8091E80085FF1D +:1019E0000DC040E050E063E070E0CE0101960E943F +:1019F000390F8091E8008E778093E8000F900F9068 +:101A00000F90DF91CF910895CF93DF93EC019091E8 +:101A1000DF01943009F046C080910B018823D9F092 +:101A200080910C018823B9F09093E9008FEF909199 +:101A3000E800815095FD06C095E19A95F1F7000008 +:101A40008111F5CF8091E80085FF2CC040E050E087 +:101A500060E170E017C081E08093E9008FEF909122 +:101A6000E800815095FD06C095ED9A95F1F70000CC +:101A70008111F5CF8091E80085FF14C040E050E06F +:101A800068E070E0CE010E94390F8091E8008E7707 +:101A90008093E80080E1FE01ACE5B1E001900D9299 +:101AA0008A95E1F7DF91CF91089580E993E00E9454 +:101AB00037068091DE01811109C00E94CE100E947C +:101AC0002B118091E20084608093E20008958CE8FD +:101AD00093E00E9437061092DE01089588E893E0B3 +:101AE0000C94370684E893E00C94370680E893E082 +:101AF0000E9437060C94F21F20915A012F5F822F0B +:101B000062E30E947826992319F020935A010895E0 +:101B100010925A0180915B01882371F18091DF015D +:101B2000843041F58091E9008F702091EC00922F74 +:101B3000917020FD90E8892B93E09093E9009091BB +:101B4000EB0090FF14C09091EE0097FF10C09091B1 +:101B5000E80095FF03C01092F100F9CF9091E800E2 +:101B600090FF05C09091E8009E779093E8008F70F9 +:101B70008093E90010925B01089542E061EC81E0FE +:101B80000E94481042E061EC82E00E94481042E26C +:101B900061EC83E00E94481042E161EC84E00C9427 +:101BA00048108091E101833009F455C030F4813050 +:101BB00071F0823009F48EC008958A3009F47AC039 +:101BC0008B3009F460C0893009F09CC020C080913E +:101BD000E001813A09F096C08091E800877F809308 +:101BE000E8008091E4019091E501892B21F460E106 +:101BF0008CE591E003C060E080E090E070E00E943E +:101C0000840F8091E8008B778093E800089580919D +:101C1000E001813209F076C08091E4019091E50104 +:101C2000009719F0039709F06DC08091E800877F55 +:101C30008093E8008091E80082FD05C08091DF017B +:101C40008111F8CF5FC08091F10080936C01809189 +:101C5000E8008B7753C08091E001813A09F052C0CF +:101C60008091E4019091E501892B09F04BC08091AE +:101C7000E800877F8093E8008091E80080FFFCCF38 +:101C800080910B0136C08091E0018132D9F58091BD +:101C9000E4019091E501892BA9F58091E800877F07 +:101CA0008093E8000E947D108091E20180930B01F7 +:101CB0000C94D9188091E001813221F58091E800DF +:101CC000877F8093E8000E947D108091E3018093DC +:101CD0006D0108958091E001813AA1F48091E800BE +:101CE000877F8093E8008091E80080FFFCCF80919F +:101CF0006D018093F1008091E8008E778093E80079 +:101D00000C947D10089584B7877F84BF88E10FB657 +:101D1000F89480936000109260000FBE90E080E81D +:101D20000FB6F89480936100909361000FBE0E94FB +:101D300052140E94CE100E942B118091E200846008 +:101D40008093E20089E39CE00E94721F78940E94D5 +:101D5000B0130E94541481E091E00E94CB138FE6EF +:101D600093E00E9437068091DF01853089F48BE68D +:101D700093E00E9437060E94B31F8091DD01882303 +:101D800091F30E94E11F882371F30E94230FEBCF90 +:101D90000E947A14E8CF292F332723303105C9F068 +:101DA00064F42130310581F02230310509F043C05F +:101DB00084E790E022EF33E042C021323105F1F0B8 +:101DC0002232310541F137C082E190E026E634E06D +:101DD00036C099278130910541F08230910541F05C +:101DE000892B49F5EEEEF3E005C0E8EDF3E002C023 +:101DF000E4E9F3E0849190E09F0121C06430D8F4DD +:101E0000E62FF0E0EE0FFF1FE35DFE4F20813181F2 +:101E100089E090E014C0643070F470E0FB01EE0FD4 +:101E2000FF1FEB5DFE4F20813181FB01EF5DFE4F17 +:101E3000808190E004C080E090E020E030E0FA0192 +:101E400031832083089580E189BD82E189BD09B491 +:101E500000FEFDCF8091D8008F7D8093D8008091C7 +:101E6000E00082608093E0008091E00081FDFCCF83 +:101E70000895CF92DF92EF92FF920F931F93CF932B +:101E8000DF93EC018B016A010E949C10811133C029 +:101E9000C114D10439F0F60180819181081B190B1E +:101EA000C80FD91FE12CF12C0115110519F18091F2 +:101EB000E80085FD16C08091E8008E778093E800E9 +:101EC000C114D10449F0F60180819181E80EF91E18 +:101ED000F182E08285E00FC00E949C10882321F3EC +:101EE0000AC089918093F10001501109FFEFEF1AA8 +:101EF000FF0ADACF80E0DF91CF911F910F91FF9021 +:101F0000EF90DF90CF9008952091E6013091E701A6 +:101F10002617370748F06115710539F42091E8005C +:101F20002E772093E80001C0B90140E061157105EA +:101F3000A9F12091DF01222309F443C0253009F4DF +:101F400042C02091E80023FD40C02091E80022FD1E +:101F500032C02091E80020FFE9CF4091F3002091AA +:101F6000F20030E0342BFC01CF016115710559F00E +:101F70002830310540F481918093F100615071095E +:101F80002F5F3F4FF1CF41E02830310509F040E0AD +:101F90002091E8002E772093E800C8CF4111C9CFE7 +:101FA0000AC08091DF01882361F0853061F0809163 +:101FB000E80083FD0AC08091E80082FFF2CF80E054 +:101FC000089582E0089583E0089581E008952091C6 +:101FD000E6013091E7012617370748F061157105D2 +:101FE00039F42091E8002E772093E80001C0B90170 +:101FF000FC0120E06115710591F18091DF018823DA +:1020000009F440C0853009F43FC08091E80083FDA9 +:102010003DC08091E80082FD2FC08091E80080FFE4 +:10202000E9CF2091F3008091F20090E0922B6115AE +:10203000710559F08830910540F424912093F10006 +:102040003196615071090196F2CF21E0089709F0AD +:1020500020E08091E8008E778093E800CBCF2111BB +:10206000CCCF0AC08091DF01882361F0853061F018 +:102070008091E80083FD0AC08091E80082FFF2CFE2 +:1020800080E0089582E0089583E0089581E0089556 +:10209000982F973058F59093E900981739F0709180 +:1020A000EC002091ED005091F00003C0242F762F1A +:1020B00050E021FF19C03091EB003E7F3093EB00E0 +:1020C0003091ED003D7F3093ED003091EB003160B9 +:1020D0003093EB007093EC002093ED005093F000F0 +:1020E0002091EE0027FF07C09F5FD3CF8F708093B2 +:1020F000E90081E0089580E008958091E00187FF84 +:1021000011C08091E80082FD05C08091DF0181113E +:10211000F8CF11C08091E8008B770BC08091DF0170 +:10212000882349F08091E80080FFF8CF8091E80093 +:102130008E778093E80008952091E4003091E500C7 +:1021400095E64091EC00842F817040FF22C0809181 +:10215000E80080FD1CC08091DF01882391F085306C +:1021600091F08091EB0085FD10C04091E40050910A +:10217000E5004217530729F39A01915011F784E0C3 +:10218000089582E0089583E0089581E0089580E055 +:1021900008954091E80042FFDECF08950E943C116F +:1021A0000E944411E0EEF0E0808181608083E8EDE0 +:1021B000F0E080818F77808319BCA7EDB0E08C912F +:1021C0008E7F8C9380818F7E80831092DE010895B4 +:1021D0000F931F93CF93DF930E943C110E944411F1 +:1021E000C8EDD0E088818F77888388818068888374 +:1021F00088818F7D888319BC1092DF011092DB01EA +:102200001092DD011092DC0100EE10E0F8018081F7 +:102210008B7F808388818160888342E060E080E0FA +:102220000E944810E1EEF0E080818E7F8083E2EE34 +:10223000F0E0808181608083808188608083F80104 +:1022400080818E7F8083888180618883DF91CF91B8 +:102250001F910F910895E8EDF0E080818F7E8083DB +:10226000E7EDF0E080818160808384E082BF81E0DF +:102270008093DE010C94E810E8EDF0E080818E7F21 +:1022800080831092E20008951092DA001092E1002B +:1022900008951F920F920FB60F9211242F933F9320 +:1022A0004F935F936F937F938F939F93AF93BF935E +:1022B000EF93FF938091E10082FF0BC08091E200D9 +:1022C00082FF07C08091E1008B7F8093E1000E9434 +:1022D0007C0D8091DA0080FF1FC08091D80080FFC4 +:1022E0001BC08091DA008E7F8093DA008091D90044 +:1022F00080FF0DC080E189BD82E189BD09B400FE87 +:10230000FDCF81E08093DF010E94550D05C019BC0F +:102310001092DF010E94670D8091E10080FF19C0DB +:102320008091E20080FF15C08091E2008E7F809353 +:10233000E2008091E20080618093E2008091D80009 +:1023400080628093D80019BC85E08093DF010E94F1 +:10235000720D8091E10084FF30C08091E20084FF23 +:102360002CC080E189BD82E189BD09B400FEFDCFAA +:102370008091D8008F7D8093D8008091E1008F7E7E +:102380008093E1008091E2008F7E8093E200809153 +:10239000E20081608093E2008091DB01882311F0EC +:1023A00084E007C08091E30087FD02C081E001C0A6 +:1023B00083E08093DF010E94760D8091E10083FF2E +:1023C00029C08091E20083FF25C08091E100877FD2 +:1023D0008093E10082E08093DF011092DB01809125 +:1023E000E1008E7F8093E1008091E2008E7F8093F8 +:1023F000E2008091E20080618093E20042E060E0D0 +:1024000080E00E9448108091F00088608093F00086 +:102410000E946E0DFF91EF91BF91AF919F918F91AF +:102420007F916F915F914F913F912F910F900FBED0 +:102430000F901F9018951F920F920FB60F921124B4 +:102440002F933F934F935F936F937F938F939F93BC +:10245000AF93BF93CF93DF93EF93FF93C091E900C6 +:10246000CF708091EC00D82FD17080FDD0E8109211 +:10247000E9008091F000877F8093F00078940E94BB +:102480005F121092E9008091F00088608093F00064 +:10249000CD2BCF70C093E900FF91EF91DF91CF91E9 +:1024A000BF91AF919F918F917F916F915F914F916C +:1024B0003F912F910F900FBE0F901F9018951F9373 +:1024C000CF93DF93CDB7DEB7AA970FB6F894DEBFF0 +:1024D0000FBECDBFE0EEF1E088E08E0F9091F100ED +:1024E00091938E13FBCF0E94D10D8091E80083FF62 +:1024F0001FC18091E0019091E101492F50E04A30E5 +:10250000510508F015C1FA01EA5AFF4F0C948426D0 +:10251000803881F0823809F00BC18091E4018F701E +:102520008093E9008091EB0085FB882780F9109269 +:10253000E90006C08091DC019091DD01911182607B +:102540009091E800977F9093E8008093F1001092BB +:10255000F100C8C0282F2D7F09F0EAC0882319F0A8 +:10256000823061F0E5C08091E201813009F0E0C085 +:10257000933009F080E08093DD012BC08091E2016F +:10258000811127C08091E4018F7009F4D1C080933C +:10259000E9002091EB0020FF1CC0933021F48091D2 +:1025A000EB00806214C09091EB0090619093EB007F +:1025B00021E030E0A90102C0440F551F8A95E2F7DF +:1025C0004093EA001092EA008091EB0088608093CB +:1025D000EB001092E9008091E800877F86C08111AE +:1025E000A7C01091E2011F778091E3008078812BD2 +:1025F0008093E3008091E800877F8093E8000E9449 +:102600007D108091E80080FFFCCF8091E30080681E +:102610008093E300111102C082E001C083E0809347 +:10262000DF0186C08058823008F082C08091E201CC +:102630009091E3018C3D53E0950779F583E08A831F +:102640008AE289834FB7F894DE01139620E03EE0DA +:1026500051E2E32FF0E050935700E49120FF03C0D4 +:10266000E295EF703F5FEF708E2F90E0EA3010F050 +:10267000C79601C0C0968D939D932F5F243149F773 +:102680004FBF8091E800877F8093E8006AE270E0A6 +:10269000CE0101960E94840F14C0AE014F5F5F4FC0 +:1026A0006091E4010E94CB0EBC01009709F440C088 +:1026B0009091E800977F9093E80089819A810E9429 +:1026C000E70F8091E8008B778093E80031C0803875 +:1026D00079F58091E800877F8093E8008091DB01A5 +:1026E0008093F1008091E8008E778093E8000E944B +:1026F0007D101EC081111CC09091E2019230C0F487 +:102700008091E800877F8093E8009093DB010E942E +:102710007D108091DB01811106C08091E30087FD6F +:1027200002C081E001C084E08093DF010E94BD0D02 +:102730008091E80083FF0AC08091E800877F809342 +:10274000E8008091EB0080628093EB00AA960FB6C0 +:10275000F894DEBF0FBECDBFDF91CF911F910895DA +:10276000CF938091DF018823A1F0C091E900CF7061 +:102770009091EC00892F817090FD80E8C82B109219 +:10278000E9008091E80083FD0E945F12CF70C09342 +:10279000E900CF9108959093730180937201089599 +:1027A000E0917201F0917301309721F00190F08176 +:1027B000E02D099480E00895EF92FF920F931F930C +:1027C000CF93DF93E0917201F09173013097B1F1F3 +:1027D0008C010280F381E02D09958091D40182FF64 +:1027E0002DC080FF04C08EE495E00E943706E8010A +:1027F00010E188E4E82E85E0F82E8091D40180FF76 +:102800000BC088811F928F93FF92EF920E94D00697 +:102810000F900F900F900F90115021961111EDCF46 +:102820008091D40180FF0AC086E495E0DF91CF91CA +:102830001F910F91FF90EF900C943706DF91CF918D +:102840001F910F91FF90EF900895209170013091AA +:1028500071018217930771F0909371018093700159 +:10286000E0917201F0917301309721F00680F781B9 +:10287000E02D0994089520916E0130916F01821727 +:10288000930771F090936F0180936E01E091720154 +:10289000F0917301309721F00084F185E02D0994C7 +:1028A000089508950C9451140E9426200E94270B2D +:1028B0000E94E8200C949B25CF93DF931F92CDB705 +:1028C000DEB79091D40192FF10C090FF0EC01F920E +:1028D0008F9320E635E03F932F9389830E94D006A3 +:1028E0000F900F900F900F9089810F90DF91CF91F3 +:1028F0000C94110B9F92AF92BF92CF92DF92EF9206 +:10290000FF920F931F93CF93DF9300D000D000D09E +:10291000CDB7DEB70E946C0B09E010E0AA24A394A7 +:10292000B12C902E802F0E94E70B98012B583E4F20 +:102930006901F901F080F826A1F40150110988F726 +:102940008FEF89838A831B820E942F208160782FDA +:102950009D838C8349815A816B818D810E940F15E3 +:102960002FC09091D40191FF04C08E830E94ED0B83 +:102970008E8127E030E0A501022E01C0440F0A94A9 +:10298000EAF7E42E4F21C1F029839A828E2191E04B +:1029900009F490E09B830E942F208160782F9D8313 +:1029A0008C8349815A816B818D810E940F15F601BC +:1029B0008081E826E08204C021503109E0F6BDCFD5 +:1029C000109174010E94D0131817B9F00E94D0130F +:1029D0008093740126960FB6F894DEBF0FBECDBF6C +:1029E000DF91CF911F910F91FF90EF90DF90CF90EB +:1029F000BF90AF909F900C945C1426960FB6F894FD +:102A0000DEBF0FBECDBFDF91CF911F910F91FF9021 +:102A1000EF90DF90CF90BF90AF909F900895CF93AD +:102A2000DF93CDB7DEB72B970FB6F894DEBF0FBE9E +:102A3000CDBF4F83588769877A878B87DE011196D0 +:102A400086E0FD0111928A95E9F785E0FE0137964F +:102A500001900D928A95E1F749815A816B817C81C1 +:102A60008D819E810E94771B2B960FB6F894DEBF56 +:102A70000FBECDBFDF91CF910895CF93882309F486 +:102A8000C2C0C82F823859F40E94D01381FDBBC048 +:102A900089E30E94511E0E94431F89E30CC08338C2 +:102AA00079F40E94D01380FDAEC083E50E94511ED0 +:102AB0000E94431F83E50E94A41ECF910C94431FE4 +:102AC000843859F40E94D01382FD9DC087E40E948F +:102AD000511E0E94431F87E4EECF8CEF8C0F813A8A +:102AE00048F48C2F0E944C2581118DC08C2F0E94A0 +:102AF000511EE3CF80E28C0F883048F4C77081E02C +:102B000001C0880FCA95EAF70E94FC1ED6CF8BE55C +:102B10008C0F833078F4C53A29F0C63A31F083E857 +:102B200090E005C081E890E002C082E890E0CF919B +:102B30000C94251488E58C0F833108F064C0C83AE2 +:102B400039F1C93A41F1CA3A49F1CB3A51F1CC3A9B +:102B500059F1CD3A61F1C03B69F1CE3A71F1CF3A0A +:102B600079F1C13B81F1C23B89F1C33B91F1C43B97 +:102B700099F1C53BA1F1C63BA9F1C73BB1F1C83BF7 +:102B8000B9F1C93BC1F1CA3BC9F180E090E038C05E +:102B900082EE90E035C089EE90E032C08AEE90E09F +:102BA0002FC085EB90E02CC086EB90E029C087EB2E +:102BB00090E026C08CEC90E023C08DEC90E020C02B +:102BC00083E891E01DC08AE891E01AC082E991E0B3 +:102BD00017C084E991E014C081E292E011C083E261 +:102BE00092E00EC084E292E00BC085E292E008C061 +:102BF00086E292E005C087E292E002C08AE292E0BB +:102C0000CF910C943B14CF910895882309F44BC0C5 +:102C1000823859F40E94D01381FF45C089E30E9495 +:102C2000511E0E94431F89E30CC0833871F40E9437 +:102C3000D01380FF38C083E50E94511E0E94431FBD +:102C400083E50E94A41E0C94431F843859F40E940B +:102C5000D01382FF28C087E40E94511E0E94431FA8 +:102C600087E4EFCF9CEF980F913A58F390E2980FDA +:102C7000983050F4877091E001C0990F8A95EAF777 +:102C8000892F0E94021FDFCF9BE5980F933020F41D +:102C900080E090E00C942514885A833120F480E081 +:102CA00090E00C943B140895882321F00E94FC1EB0 +:102CB0000C94431F0895882321F00E94021F0C9456 +:102CC000431F08957F928F929F92AF92BF92CF92AF +:102CD000DF92EF92FF920F931F93CF93DF931F9298 +:102CE000CDB7DEB77C01C62E772EFC01058102959B +:102CF0000F70128111110E94191F0E944A1E882311 +:102D000079F0112369F080E28C0D883048F082E080 +:102D10000E94331E0E944A1E91E0D82ED92601C07F +:102D2000D12CE72DE295EF70F0E0E05AFF4F0C94C4 +:102D30008426872D807F072D0F70882311F0029540 +:102D4000007F112389F0002309F48EC180E28C0DED +:102D5000883020F4802F0E94FC1E03C0802F0E9428 +:102D60000C1F0E94431F80C18C2D0E94051600235A +:102D700009F4B8C180E28C0D883020F4802F0E94C5 +:102D8000021F03C0802F0E94121F0E94431FAAC16E +:102D9000872D807F972D9F70803211F4892F03C07B +:102DA000892F8295807FCC2021F0F1E0CF16A1F011 +:102DB0001DC0112339F0002319F1013009F50E94DB +:102DC0002C1F90C1002319F0013009F48BC18983B5 +:102DD0000E942F1F898105C1112321F0063008F0C0 +:102DE00081C10EC0053008F07DC1FBC0112359F030 +:102DF000002331F0F701958190FF36C19F709583D4 +:102E00000E9454166FC1002309F4EBC033C1872D13 +:102E100086958695837090E0009719F0019761F090 +:102E200061C1112321F08C2D972D937002C080E099 +:102E300090E00E94251456C1112321F08C2D972D6E +:102E4000937002C080E090E00E943B144BC1872D3C +:102E5000837009F052C0111145C18C2D8295869561 +:102E60008770880F880F9C2D9F70892E912CA12C24 +:102E7000B12C082E04C0880C991CAA1CBB1C0A94F7 +:102E8000D2F7C4FE14C00FE010E020E030E0B9013A +:102E9000A80104C0440F551F661F771F8A95D2F7FB +:102EA000CB01BA01609570958095909503C060E064 +:102EB00070E0CB01272D26952695237030E0223037 +:102EC000310569F02330310589F0682979298A298B +:102ED0009B292130310571F00E94BF1C03C1682974 +:102EE00079298A299B290E94DB1CFCC00E94BF1CF7 +:102EF000C501B4010E94A31CF5C0112319F0872D50 +:102F0000817001C08695882309F4ECC08C2D8295D0 +:102F100086958770880F880F9C2D9F70892E912C25 +:102F2000A12CB12C082E04C0880C991CAA1CBB1C17 +:102F30000A94D2F7C4FE14C00FE010E020E030E0A5 +:102F4000B901A80104C0440F551F661F771F8A9559 +:102F5000D2F7CB01BA01609570958095909503C02A +:102F600060E070E0CB01272D269526952370422F37 +:102F700050E04230510569F04330510589F068292D +:102F800079298A299B294130510571F00E94991DA8 +:102F9000A9C0682979298A299B290E94B51DA2C048 +:102FA0000E94991DC501B4010E947D1D9BC08C2DFE +:102FB00090E0FC01E05EF109E531F10508F050C058 +:102FC000E059FF4F0C9484260C2D0F70872D8F71C4 +:102FD000112321F00E94161D802F12CF0E94371D51 +:102FE000802F0E945B167EC0112341F0053008F04F +:102FF00079C0872D8F710E945C1D74C0063008F067 +:1030000071C0F7CF112339F0872D8F710E94161DE3 +:1030100069C01123C9F3872D8F710E94371D62C0CB +:10302000112329F0872D8F710E94011D5BC00E9422 +:10303000F71C58C0112351F0172D1F71812F0E94CA +:10304000161D63E0812F0E942A1E4CC081E00E9461 +:10305000331E023008F446C082E00E94331E42C094 +:10306000112331F0002381F28C2D0E943D153AC0CE +:10307000002389F28C2D0E94051634C0472D4F7015 +:103080006C2DC7010E94EA070E941B1C2BC0111166 +:1030900029C0472D4F7050E042305105B9F04CF433 +:1030A0004115510581F041305105E1F40E94D025D0 +:1030B00019C04330510569F04430510599F48C2D05 +:1030C0000E945B260FC00E94AC250CC00E94FF2509 +:1030D00009C00E94252606C0472D4F706C2DC701E0 +:1030E0000E941007DD20F9F00E94261E80FD1BC003 +:1030F000F70112820E94201E0E94161DC7010E9425 +:10310000A2180E94201E0F90DF91CF911F910F9166 +:10311000FF90EF90DF90CF90BF90AF909F908F90F7 +:103120007F900C94371D0F90DF91CF911F910F91DD +:10313000FF90EF90DF90CF90BF90AF909F908F90D7 +:103140007F9008950F931F93CF93DF93EC018881B5 +:1031500099812B813C81232BB9F09F3F11F48F3F44 +:1031600099F0CE010E943E07882371F06881798131 +:103170008A810E941C1E8C010E94D11D0E94981CF5 +:10318000B801CE010E946216DF91CF911F910F917D +:1031900008950E94191F0E94291F0E94EB1E0E9481 +:1031A000431F80E090E00E94251480E090E00C94A2 +:1031B0003B140E94091F0C94C9180E94111E292F4C +:1031C00022952F7030E02C3031054CF42A30310537 +:1031D0006CF42250310922303105A8F407C02C309C +:1031E000310569F02F30310551F00DC0803F69F095 +:1031F00018F4803E40F409C0843F29F406C093FBD4 +:10320000882780F9089580E0089581E00895CF939C +:10321000DF9300D000D01F92CDB7DEB70F900F9094 +:103220000F900F900F90DF91CF910895CF93DF9380 +:1032300000D000D000D0CDB7DEB726960FB6F894F8 +:10324000DEBF0FBECDBFDF91CF9108951F93CF9307 +:10325000DF93C0917F0116E080918001C81799F03B +:10326000D0E01C9FF0011D9FF00D1124EF57FE4F81 +:103270004081518162817381848195810E941619F8 +:103280002196C770E9CFDF91CF911F9108954091AA +:10329000B1015091B2016091B3017091B40180917C +:1032A000B5019091B6010C9416198091B6018295E2 +:1032B0008F7009F054C08091B301882309F44FC086 +:1032C00080917F01A09180016091B1017091B20164 +:1032D0004091B4015091B501B6E08A1709F43FC09E +:1032E00090E041155105C1F17F3F11F46F3FA1F10D +:1032F000B89FF001B99FF00D1124EF57FE4F2181C7 +:1033000072132AC02081621327C02281211124C098 +:10331000238134812417350710F421503109241BEF +:10332000350B283C3105C0F42091B6012F70206187 +:103330002093B60126E0289FF001299FF00D11246B +:10334000EA57FE4F80818F708061808381EB91E02E +:103350000E94A2180C94261901968770BECF08957A +:10336000CF92DF92EF92FF920F931F93CF93DF9351 +:10337000CDB7DEB762970FB6F894DEBF0FBECDBFF4 +:103380008C0185E0F801DE011D9601900D928A9571 +:10339000E1F7D8014C9111965C91119712966C91BE +:1033A00012971396CD90DC9014973091B1017091E3 +:1033B000B2018091B4019091B501009709F46BC1FD +:1033C0007F3F19F43F3F09F466C1E090B301EE205E +:1033D00009F4C0C02091B601C816D90628F0F6013C +:1033E000E81BF90BCF0104C0809590958C0D9D1DB5 +:1033F000FF24F394883C910578F0F12C207F09F0AC +:10340000C6C07C2DD98AC88A89890E94071981EB98 +:1034100091E00E94A218B1C0822F807F09F046C0BF +:10342000751314C0341312C0611110C02F702061C5 +:103430002093B6010E94471981EB91E00E94A218E7 +:103440008091B601D80115968C932EC0CD2819F124 +:103450005F3F11F44F3FF9F0F62E61111CC08091CF +:103460007F012091800136E0821709F45AC090E074 +:10347000389FF001399FF00D1124EF57FE4F7181F5 +:10348000571306C07081471303C07281711103C0C6 +:1034900001968770E9CFF62E662309F418C1809152 +:1034A000B60181608093B601F12C11C1751308C07B +:1034B000341306C0611104C08091B601D801C3C0A5 +:1034C0004D875E878D859E856A8B0E94DD186A898F +:1034D0008823E1F16623D1F12091B601822F8295F4 +:1034E0008F7090E0029774F08091B1019091B201D9 +:1034F00098878F831986DB86CA862C87CE0107962C +:103500000E94A21886E0F801A1EBB1E001900D92B3 +:103510008A95E1F70E9455190E944719FF24F394F8 +:10352000D6C04D875E878D859E850E94111E292FEE +:1035300022952F7030E0223031050CF0BCC09F7016 +:1035400009F0B6C0805E883008F4C1C0C8010E948E +:10355000A218E4CFC816D90608F453C0F601E81B38 +:10356000F90BCF01883C910508F450C0F12C7C2D5B +:10357000D98AC88A89890E940719E1EBF1E086E0BF +:10358000DF011D928A95E9F70E944719A0C07513C3 +:1035900014C0341312C0611110C08091B601F8013B +:1035A0008583C8010E94A21886E0E1EBF1E0DF010B +:1035B0001D928A95E9F7FE2C8AC04D875E878D851E +:1035C0009E856A8B0E94DD186A89882309F4BECF24 +:1035D000662309F4BBCF2091B601822F82958F70AC +:1035E00090E002970CF48ECF8091B1019091B201DE +:1035F0009A8389831B82DD82CC822E83CE01019641 +:103600007FCF809590958C0D9D1DACCFF62E6623B7 +:1036100009F49CCF75132EC034132CC02091B60131 +:1036200020FD1FC0822F82958F70D9F0D80115968A +:103630002C9315978F3049F08F5F982F9295907F3C +:10364000822F8F70892B15968C93C8010E94A21827 +:1036500086E0F801A1EBB1E001900D928A95E1F7C7 +:1036600093CF86E0F801A1EBB1E001900D928A952D +:10367000E1F72DC04D875E878D859E850E94DD1800 +:10368000811140CF8091B60181608093B601C8015D +:103690000E94A2181CC0662309F458CF4D875E878C +:1036A0008D859E850E94DD18882309F44FCF2ACF8F +:1036B000811148CF0CC0243031050CF047CF9F70EA +:1036C00009F440CFF8019581907F09F03BCF8F2D11 +:1036D00062960FB6F894DEBF0FBECDBFDF91CF91DB +:1036E0001F910F91FF90EF90DF90CF9008951F935F +:1036F000CF93DF93CDB7DEB72C970FB6F894DEBF2C +:103700000FBECDBF4F83588769877A878B879C8789 +:10371000CE0107960E94B019882369F08F819885A1 +:103720002A853B85232BF1F19F3F09F063C08F3F32 +:1037300009F060C037C086E0FE013796DE011196C1 +:1037400001900D928A95E1F76F817885EA85FB8576 +:10375000309741F17F3F11F46F3F21F120918001BB +:1037600030E0C90101968770992740917F0150E0B0 +:103770008417950709F447C069837A83FD83EC8336 +:1037800096E0929FD001939FB00D1124AF57BE4F8A +:10379000FE01319601900D929A95E1F78093800198 +:1037A0000E94261916E080917F019091800189176F +:1037B000C1F1189FC00111248F579E4F0E94B0196C +:1037C000882379F1E0917F011E9FF0011124EF57CA +:1037D000FE4F4081518162817381848195810E9475 +:1037E000161980917F0190E0019687709927809348 +:1037F0007F01D9CF4F81588569857A858B859C85D6 +:103800000E941619CFCF0E94D918109280011092F1 +:103810007F01E1EBF1E086E0DF011D928A95E9F797 +:10382000C1CF2C960FB6F894DEBF0FBECDBFDF918F +:10383000CF911F910895EF92FF920F931F93CF9313 +:10384000DF938C01009709F46CC0F12CEE24E39413 +:10385000E8012196F8018491843740F4843008F01F +:1038600051C0813081F0823019F15BC0853709F495 +:1038700044C0A8F19CE7980F903708F052C08F77AA +:103880000E94051641C00E5F1F4FFE01C49180E2E9 +:103890008C0F883048F4C7708E2D01C0880FCA95F0 +:1038A000EAF70E941C1F14C08C2F0E943D152DC0EA +:1038B0000E5F1F4FFE01C49180E28C0F883058F4D8 +:1038C000C7708E2D01C0880FCA95EAF70E94221F8B +:1038D0000E94431F1AC08C2F0E94051616C00E5F4F +:1038E0001F4FFE01C491CC2381F08FE99FE0019727 +:1038F000F1F700C00000C150F6CF0E5F1F4FFE0170 +:10390000F49003C00E943D158E018F2D882309F489 +:103910009FCFEFE9FFE03197F1F700C00000815041 +:10392000F5CFDF91CF911F910F91FF90EF90089508 +:1039300008956093BB017093BC018093BD01909387 +:10394000BE010C94C9180F931F930091BB011091F5 +:10395000BC012091BD013091BE01DC01CB01802B67 +:10396000912BA22BB32B8093BB019093BC01A0930E +:10397000BD01B093BE011F910F910C94C9180F9314 +:103980001F930091BB011091BC012091BD013091AA +:10399000BE01DC01CB0180239123A223B3238093BA +:1039A000BB019093BC01A093BD01B093BE011F91D8 +:1039B0000F910C94C9180F931F930091BB011091A4 +:1039C000BC012091BD013091BE01DC01CB018027FB +:1039D0009127A227B3278093BB019093BC01A093AA +:1039E000BD01B093BE011F910F910C94C9181092A4 +:1039F000B7011092B8011092B9011092BA010C945B +:103A0000C91841E050E060E070E004C0440F551F69 +:103A1000661F771F8A95D2F74093B7015093B8017C +:103A20006093B9017093BA010C94C91841E050E059 +:103A300060E070E004C0440F551F661F771F8A9531 +:103A4000D2F78091B7019091B801A091B901B091DE +:103A5000BA01482B592B6A2B7B2B4093B70150930B +:103A6000B8016093B9017093BA010C94C91841E090 +:103A700050E060E070E004C0440F551F661F771FE0 +:103A80008A95D2F740955095609570958091B701D1 +:103A90009091B801A091B901B091BA01482359237E +:103AA0006A237B234093B7015093B8016093B90117 +:103AB0007093BA010C94C91841E050E060E070E0E6 +:103AC00004C0440F551F661F771F8A95D2F7809157 +:103AD000B7019091B801A091B901B091BA014827FE +:103AE00059276A277B274093B7015093B801609309 +:103AF000B9017093BA010C94C9180F931F930091E8 +:103B0000B7011091B8012091B9013091BA01DC01DF +:103B1000CB01802B912BA22BB32B8093B7019093D9 +:103B2000B801A093B901B093BA011F910F910C9401 +:103B3000C9180F931F930091B7011091B8012091FC +:103B4000B9013091BA01DC01CB0180239123A2237A +:103B5000B3238093B7019093B801A093B901B093B8 +:103B6000BA011F910F910C94C9180F931F930091E4 +:103B7000B7011091B8012091B9013091BA01DC016F +:103B8000CB0180279127A227B3278093B701909379 +:103B9000B801A093B901B093BA011F910F910C9491 +:103BA000C9180895CF92DF92EF92FF920F931F935F +:103BB000CF93DF938C01C090BB01D090BC01E0900B +:103BC000BD01F090BE018091B7019091B801A09124 +:103BD000B901B091BA01C82AD92AEA2AFB2ACFE151 +:103BE000D0E0D701C6010C2E04C0B695A7959795D5 +:103BF00087950A94D2F780FF06C0B8018C2F0E94E7 +:103C0000740A019721F4219760F780E001C08C2F9E +:103C1000DF91CF911F910F91FF90EF90DF90CF90A8 +:103C20000895CF93DF93EC010E94D21DBE010E9444 +:103C3000740ADF91CF910895CB010E94111E08955F +:103C40008091BF0185958595859508958091BF01E7 +:103C50008770089598E0899F90011124262B209366 +:103C6000BF010C94161D2091BF0180958223809383 +:103C7000BF01982F977069F430E0482F552747FD12 +:103C800050952417350729F08595859585950C94D1 +:103C9000371D08959091BF01977081E009F480E08D +:103CA000089590910B01992321F090910C019111AD +:103CB00009C020910D0130910E01F90132969FEF5C +:103CC00040E030C0982F9695969596959F30A0F439 +:103CD000E0910D01F0910E01E90FF11D877021E0D7 +:103CE00030E0A90102C0440F551F8A95E2F7CA01CE +:103CF0009181892B818308959091D40190FF23C0F5 +:103D00001F928F9387E995E09F938F930E94D0062F +:103D10000F900F900F900F9008959F3F39F04F5FD5 +:103D20004E3041F051915813F8CF0DC05111F7CFDB +:103D3000942FF5CF9F3F39F0F901E90FF11D97FD61 +:103D4000FA9582830895089590910B01992321F0AB +:103D500090910C01911109C020910D0130910E013B +:103D6000F9013296205F3F4F30C0982F9695969577 +:103D700096959F30A8F4E0910D01F0910E01E90FA6 +:103D8000F11D877021E030E0A90102C0440F551FEA +:103D90008A95E2F7CA0180959181892381830895EC +:103DA0009091D40190FF16C01F928F9389E795E000 +:103DB0009F938F930E94D0060F900F900F900F90BB +:103DC00008953196E217F30729F090819813F9CFFF +:103DD0001082F7CF089581E090E0E0910D01F0911D +:103DE0000E01E80FF91F1082019680319105A9F7A5 +:103DF00008958091D30108959091D301892B8093E8 +:103E0000D301089580959091D30189238093D301A4 +:103E100008951092D30108959091D201892B809337 +:103E2000D201089580959091D20189238093D20187 +:103E300008951092D20108959091D101892B809319 +:103E4000D101089580959091D10189238093D1016A +:103E500008951092D10108958093C00108951092A1 +:103E6000C001089580910D0190910E01FC013196E1 +:103E70009C01205F3F4F80E0919191118F5FE2178D +:103E8000F307D1F70895E0910D01F0910E018091B3 +:103E9000D3018083E0910D01F0910E01908180911A +:103EA000D201892B8083E0910D01F0910E01908168 +:103EB0008091D101892B80838091C001882361F09A +:103EC000E0910D01F0910E019081892B80830E9479 +:103ED000321F81111092C00180910D0190910E014D +:103EE0000C94DC139093370180933601089520E001 +:103EF000009739F0AC0141505109842395232F5F7D +:103F0000F7CF822F08958295982F9C7C392F369574 +:103F10003695282F237344E0249FC0011124932F4A +:103F2000982B292F2A7A2695892F8575880F822B21 +:103F300008951F93CF93DF931F92CDB7DEB7998378 +:103F40000E94831F182F9981892F0E94831F212F80 +:103F500030E0322F2227A901482BCA010F90DF91B0 +:103F6000CF911F9108958091DF01843039F1109233 +:103F7000D50120E488E190E00FB6F894A8958093ED +:103F800060000FBE2093600080E00E94E40680E0A5 +:103F90000E94110B83B7817F846083BF83B78160E8 +:103FA00083BF7894889583B78E7F83BF88E10FB6EF +:103FB000F89480936000109260000FBE08950895F9 +:103FC000089580E00E94E4060E94DF1F0E946C0BAF +:103FD0000E94E01F0E941F0C91E0811101C090E03F +:103FE000892F08950E94D91880E00E94E4060E945B +:103FF0009B250E94D0130C94110B1F920F920FB6A9 +:104000000F9211248F939F93AF93BF938091D5010B +:10401000811113C08091D6019091D701A091D80150 +:10402000B091D9014196A11DB11D8093D601909305 +:10403000D701A093D801B093D901BF91AF919F91BF +:104040008F910F900FBE0F901F90189582E084BD46 +:1040500093E095BD9AEF97BD80936E0008952FB7BA +:10406000F8948091D6019091D701A091D801B09198 +:10407000D9012FBF0895CF92DF92EF92FF920F9355 +:104080001F932FB7F8944091D6015091D7016091BA +:10409000D8017091D9012FBF6A017B01EE24FF2462 +:1040A0008C0120E030E0C016D106E206F30610F4E1 +:1040B000415051099A01281B390BC9011F910F91D9 +:1040C000FF90EF90DF90CF9008951F920F920FB660 +:1040D0000F9211248F939F93AF93BF938091D6013A +:1040E0009091D701A091D801B091D9010196A11D5D +:1040F000B11D8093D6019093D701A093D801B093BE +:10410000D901BF91AF919F918F910F900FBE0F90EA +:104110001F9018950E94CE10F8942FEF87EA91E631 +:10412000215080409040E1F700C0000087E090EB14 +:10413000DC018093EA019093EB01A093EC01B09332 +:10414000ED019CE088E10FB6F894A895809360009B +:104150000FBE90936000FFCFEF92FF920F931F93DB +:10416000CF93DF93D82FC9E08C2F0E94E70B07E095 +:1041700010E0E82EF12CC701002E02C0959587951E +:104180000A94E2F780FF09C0602F7C2F80E00E9434 +:10419000ED07D81302C081E006C00150110958F79D +:1041A000C15010F780E0DF91CF911F910F91FF90E8 +:1041B000EF900895CF93C82F8CE20E94AC20882303 +:1041C00021F08C2FCF910C94AC2080E0CF910895FA +:1041D000CF930E943C22811102C00E941D228CEBD1 +:1041E00095E00E943706C5E6C15049F00E946C0B6D +:1041F0008FE39CE90197F1F700C00000F5CF85EB54 +:1042000095E00E94370689E20E94DA20811113C1ED +:104210008AE20E94DA2081110E941D2285E00E941C +:10422000DA2081110E948A200E9447228093D401C3 +:1042300087E00E94DA208823A9F18BE10E94DA202E +:10424000882351F08091D40181FB222720F991E04D +:10425000922790FB81F90EC08EE00E94DA2088231D +:1042600061F08091D40182FB222720F991E092270E +:1042700090FB82F98093D40115C080E10E94DA207E +:104280009091D401882341F093FB222720F981E00B +:10429000822780FB93F904C0892F809580FB90F9D9 +:1042A0009093D4018091D4010E944B220E94592204 +:1042B0008093E80180EE0E94DA20882341F080910B +:1042C000E801982F909590FB80F98093E80189E3AD +:1042D0000E94DA20882359F08091E80181FB22278F +:1042E00020F991E0922790FB81F98093E80182EE1A +:1042F0000E94DA20882359F08091E80182FB22276E +:1043000020F991E0922790FB82F98093E80186EEF4 +:104310000E94DA20882359F08091E80183FB22274C +:1043200020F991E0922790FB83F98093E80183EED6 +:104330000E94DA20882359F08091E80184FB22272B +:1043400020F991E0922790FB84F98093E80185E3BE +:104350000E94DA20882359F08091E80185FB22270A +:1043600020F991E0922790FB85F98093E80181E3A1 +:104370000E94DA20882359F08091E80186FB2227E9 +:1043800020F991E0922790FB86F98093E80181E182 +:104390000E94DA20882359F08091E80187FB2227C8 +:1043A00020F991E0922790FB87F98093E8018091B2 +:1043B000E8010E945D228091E80187FB882780F94F +:1043C00080930C0187E20E94DA20C82F8EE10E94C0 +:1043D000DA208111C2608FE10E94DA208111C4606D +:1043E00080E20E94DA208111C86081E20E94DA2016 +:1043F0008111C06182E20E94DA208111C06283E2F1 +:104400000E94DA208111C06484E20E94DA208823AD +:1044100011F0C06802C0CC2329F08C2F0E945422D6 +:104420006C2F03C00E945022682F70E080E090E063 +:10443000CF910C94991CCF9108956DEE7EEF80E0A2 +:1044400090E00E94AA2660E082E090E00E94982618 +:1044500060E083E090E00E94982660E084E090E0D5 +:104460000E94982660E085E090E00E94982660E037 +:1044700086E090E00C94982680E090E00E949226DE +:1044800021E08D3E9E4F09F020E0822F089582E0CA +:1044900090E00C948A26682F82E090E00C94982695 +:1044A00083E090E00C948A26682F83E090E00C94DF +:1044B000982684E090E00C948A26682F84E090E0AF +:1044C0000C94982686E090E00C948A26682F86E06B +:1044D00090E00C949826CF93C82F1F928F9387ED6E +:1044E00095E09F938F930E94D00681E090E0A0E03A +:1044F000B0E0BC01CD0104C0660F771F881F991F73 +:10450000CA95D2F70E94991C0F900F900F900F90B0 +:10451000CF910C94D918CF938B3109F40FC208F0C6 +:1045200049C08E3009F41EC200F5873009F4E7C196 +:10453000A8F4863009F0A4C28091D401817F8E7FD7 +:104540008093D40185E797E00E94370681E69BE0DF +:104550000E94370681E08093DA01CFC1883009F4E8 +:104560005BC08B3009F4C5C18BC2813109F470C2C4 +:1045700020F4803109F40AC283C2863109F421C2D1 +:10458000893109F07DC286E697E00E9437068BE309 +:1045900097E00E94370689EE96E00E9437068CEB82 +:1045A00096E00E94370680E896E00E94370685E58F +:1045B00096E0A1C1853309F45FC268F4873209F43B +:1045C0005BC228F48E3108F45BC28D5156C2893229 +:1045D00009F452C255C2833438F48A3308F04AC20F +:1045E000883309F486C14CC2833409F445C2883447 +:1045F00009F046C20E94D91885E49BE00E94370664 +:104600009FEF23ED80E3915020408040E1F700C010 +:1046100000000E948A2071C185E69BE00E94370657 +:1046200082EB9AE00E9437060E9450221F928F93DD +:104630008FEA9AE09F938F930E94D0068DEA9AE0CA +:104640000E9437060E944722C82F8AE99AE00E94FA +:1046500037061F92CF9385E99AE09F938F930E942C +:10466000D00683E99AE00E94370689E89AE00E9422 +:1046700037068C2F81701F928F9386E89AE09F9364 +:104680008F930E94D00684E89AE00E9437068AE75A +:104690009AE00E943706C1FB882780F91F928F930A +:1046A00087E79AE09F938F930E94D00685E79AE070 +:1046B0000E94370689E69AE00E943706C2FB8827E7 +:1046C00080F91F928F9386E69AE09F938F930E94C2 +:1046D000D00684E69AE00E9437068BE59AE00E94B5 +:1046E0003706C3FBCC27C0F91F92CF9388E59AE029 +:1046F0009F938F930E94D00686E59AE00E9437062A +:104700000E945922C82F82E49AE00E9437061F9225 +:10471000CF938DE39AE09F938F930E94D0068BE313 +:104720009AE00E94370682E29AE00E9437068C2FB8 +:1047300081701F928F938FE19AE09F938F930E94D5 +:10474000D0068DB79EB780960FB6F8949EBF0FBE69 +:104750008DBF8DE19AE00E94370686E09AE00E94C4 +:104760003706C1FB882780F91F928F9383E09AE078 +:104770009F938F930E94D00681E09AE00E943706B3 +:104780008FEE99E00E943706C2FB882780F91F92BE +:104790008F938CEE99E09F938F930E94D0068AEEC0 +:1047A00099E00E94370688ED99E00E943706C3FB26 +:1047B000882780F91F928F9385ED99E09F938F93BF +:1047C0000E94D00683ED99E00E94370689EC99E0BB +:1047D0000E943706C4FB882780F91F928F9386ECCE +:1047E00099E09F938F930E94D00684EC99E00E94F9 +:1047F000370682EB99E00E943706C5FB882780F9CF +:104800001F928F938FEA99E09F938F930E94D00617 +:104810008DEA99E00E94370681E999E00E94370607 +:10482000C6FB882780F91F928F938EE899E09F93AB +:104830008F930E94D0068CE899E00E94370684E8A6 +:1048400099E00E943706C7FBCC27C0F91F92CF938F +:1048500081E899E09F938F930E94D0068FE799E0BB +:104860000E9437060E946222C82F88E699E00E94C3 +:1048700037061F92CF9383E699E09F938F930E9410 +:10488000D0068DB79EB780960FB6F8949EBF0FBE28 +:104890008DBF81E699E00E94370687E599E00E9486 +:1048A00037068C2F81701F928F9384E599E09F9338 +:1048B0008F930E94D00682E599E00E94370689E432 +:1048C00099E00E943706C6951F92CF9386E499E03F +:1048D0009F938F930E94D00684E499E00E9437064C +:1048E0008DB79EB708960FB6F8949EBF0FBE8DBFCA +:1048F00004C080E997E00E943706C1E0C6C08091FD +:10490000D401C82FC095C170C0FB80F98093D40139 +:10491000CC2349F089E39BE00E9437068091D401C3 +:104920008660886048C08CE29BE00E9437068091D8 +:10493000D401897F877F8093D401DFCF9091D40108 +:1049400091FBCC27C0F981E0C827892FC0FB81F9F2 +:104950008093D401CC2319F08FE19BE027C081E143 +:104960009BE0C9CF9091D40192FBCC27C0F981E0A4 +:10497000C827892FC0FB82F98093D401CC2319F07A +:1049800082E09BE013C082EF9AE0B5CF9091D40112 +:1049900093FBCC27C0F981E0C827892FC0FB83F99E +:1049A0008093D401CC2351F086EE9AE00E94370622 +:1049B0008091D40181608093D40167C089ED9AE031 +:1049C0009ACF87E496E00E9437060E94D0131F9288 +:1049D0008F938DE296E09F938F930E94D0068091F3 +:1049E0000B011F928F9386E196E09F938F930E9415 +:1049F000D00680916D011F928F9383E096E09F9384 +:104A00008F930E94D00680910C011F928F9380EFAC +:104A100095E09F938F930E94D0068091D60190914C +:104A2000D701A091D801B091D901BF93AF939F93C3 +:104A30008F938CED95E09F938F930E94D0068DB756 +:104A40009EB746960FB6F8949EBF0FBE8DBF55CF4A +:104A50000E94D918C0910C0181E0C827C0930C01B5 +:104A6000CC2329F08FEC9AE00E9437060EC084EC2C +:104A70009AE041CF895301C080E00E946B223DCF74 +:104A800082EC9AE00E943706C0E08C2FCF91089507 +:104A900080E0089580E00895CF93C82F8091DA01D7 +:104AA000882319F0813049F03EC0E0910D01F0916A +:104AB0000E0180818232C9F507C0E0910D01F091AD +:104AC0000E018081823261F48C2F0E944825811171 +:104AD00004C08C2F0E948B2224C081E090E021C072 +:104AE0008C2F0E944A2581111BC0C43189F018F413 +:104AF000CB3029F010C0C93259F0C83361F485E7D2 +:104B000097E00E94370683ED95E00E94370608C0C3 +:104B10001092DA010CC081ED95E00E94370607C0C3 +:104B200081E0817006C01092DA0180E002C080E06E +:104B3000F8CFCF9108950E943C22811102C00E94BB +:104B40001D220E9462228093E90180FF02C08695A7 +:104B500001C080E00C94E4068091E901982F9695BD +:104B600039F48170826081608093E9010E9466223D +:104B70008091D40180FF0FC08091E90186951F923A +:104B80008F9382EB9BE09F938F930E94D0060F90B0 +:104B90000F900F900F908091E90186950C94E40698 +:104BA0008091E901982F969591F09158990F817015 +:104BB000892B8093E9018E7F91E009F490E0809148 +:104BC000E90190FB80F98093E9010E9466228091BF +:104BD000D40180FF0FC08091E90186951F928F93C9 +:104BE0008AE99BE09F938F930E94D0060F900F90CD +:104BF0000F900F908091E90186950C94E4068091C6 +:104C0000E901982F909590FB80F98093E9010E942B +:104C100066228091D40180FF0FC08091E9018170EC +:104C20001F928F9384E89BE09F938F930E94D006FE +:104C30000F900F900F900F908091E90180FF02C0BC +:104C4000869501C080E00C94E4069091E901892FDB +:104C500086958F5F8F779170823028F4880F892B2B +:104C60008093E90102C09093E9018091E9018E7F70 +:104C700091E009F490E08091E90190FB80F9809344 +:104C8000E9010E9466228091D40180FF0FC08091CB +:104C9000E90186951F928F9380E79BE09F938F9306 +:104CA0000E94D0060F900F900F900F908091E90115 +:104CB00086950C94E4062091E901922F9695892718 +:104CC000982F990F822F8170892B8093E9018E7F15 +:104CD00091E009F490E08091E90190FB80F98093E4 +:104CE000E9010E9466228091E90186950C94E40610 +:104CF000991B79E004C0991F961708F0961B881F2E +:104D00007A95C9F780950895EE0FFF1F0590F491ED +:104D1000E02D0994F999FECF92BD81BDF89A9927AB +:104D200080B50895A8E1B0E042E050E00C94B226CE +:104D3000262FF999FECF92BD81BDF89A019700B454 +:104D4000021639F01FBA20BD0FB6F894FA9AF99AF4 +:104D50000FBE08950196272F0E9499260C9498263D +:104D6000DC01CB01FC01F999FECF06C0F2BDE1BD2B +:104D7000F89A319600B40D9241505040B8F708951A +:044D8000F894FFCFD5 +:104D8400FF350C040D380CD00C9C0C0101C1010F33 +:104D94001F4F5F6F7F6C1323766663530333593958 +:104DA400293F3620390705D104B104780404041DD1 +:064DB40004360456040061 +:00000001FF diff --git a/keyboards/clueboard2/keymaps/default/keymap.c b/keyboards/clueboard2/keymaps/default/keymap.c new file mode 100644 index 000000000..73179f94c --- /dev/null +++ b/keyboards/clueboard2/keymaps/default/keymap.c @@ -0,0 +1,183 @@ +#include "clueboard2.h" + +#ifdef RGBLIGHT_ENABLE +#include "rgblight.h" +#endif + +// Used for SHIFT_ESC +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _FL 1 +#define _RS 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: (Base Layer) Default Layer + * ,--------------------------------------------------------------------------. ,----. + * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| BS| |PGUP| + * |--------------------------------------------------------------------------| |----| + * | Tab| Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |PGDN| + * |--------------------------------------------------------------------------| `----' + * |Capslck| A| S| D| F| G| H| J| K| L| ;| '| # | Ent| + * |-----------------------------------------------------------------------------. + * |Shift| BS| Z| X| C| V| B| N| M| ,| .| /| BS|Shift| UP| + * |------------------------------------------------------------------------|----|----. + * | Ctrl| Gui| Alt| MHen| Space| Space| Hen| Alt| Ctrl| _FL|LEFT|DOWN|RGHT| + * `----------------------------------------------------------------------------------' + */ +[_BL] = KEYMAP( + F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PGUP, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, \ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, \ + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_MHEN, KC_SPC,KC_SPC, KC_HENK, KC_RALT, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT), + + /* Keymap _FL: Function Layer + * ,--------------------------------------------------------------------------. ,----. + * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9| F10| F11| F12| | Del| |BLIN| + * |--------------------------------------------------------------------------| |----| + * | | | | | | | | |PScr|SLck|Paus| | | | |BLDE| + * |--------------------------------------------------------------------------| `----' + * | | | _RS| | | | | | | | | | | | + * |-----------------------------------------------------------------------------. + * | | | | | | | | | | | | | | |PGUP| + * |------------------------------------------------------------------------|----|----. + * | | | | | | | | | | _FL|HOME|PGDN| END| + * `----------------------------------------------------------------------------------' + */ +[_FL] = KEYMAP( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL, BL_STEP, \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PSCR,KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), KC_HOME, KC_PGDN, KC_END), + + /* Keymap _RS: Reset layer + * ,--------------------------------------------------------------------------. ,----. + * | | | | | | | | | | | | | | | | | | + * |--------------------------------------------------------------------------| |----| + * | | | | |RESET| | | | | | | | | | | | + * |--------------------------------------------------------------------------| `----' + * | | | _RS| | | | | | | | | | | | + * |-----------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |------------------------------------------------------------------------|----|----. + * | | | | | | | | | | _FL| | | | + * `----------------------------------------------------------------------------------' + */ +[_RS] = KEYMAP( + #ifdef RGBLIGHT_ENABLE + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(1), F(7), \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(8), \ + KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + MO(_FL), KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), F(5), \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, F(2), F(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(4), F(6), F(3)), + #else + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), KC_TRNS, KC_TRNS, KC_TRNS), + #endif +}; + +enum function_id { + SHIFT_ESC, + #ifdef RGBLIGHT_ENABLE + RGBLED_TOGGLE, + RGBLED_STEP_MODE, + RGBLED_INCREASE_HUE, + RGBLED_DECREASE_HUE, + RGBLED_INCREASE_SAT, + RGBLED_DECREASE_SAT, + RGBLED_INCREASE_VAL, + RGBLED_DECREASE_VAL + #endif +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(SHIFT_ESC), + #ifdef RGBLIGHT_ENABLE + [1] = ACTION_FUNCTION(RGBLED_TOGGLE), + [2] = ACTION_FUNCTION(RGBLED_STEP_MODE), + [3] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), + [4] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), + [5] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), + [6] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), + [7] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), + [8] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), + #endif +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + static uint8_t shift_esc_shift_mask; + switch (id) { + case SHIFT_ESC: + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + //led operations + #ifdef RGBLIGHT_ENABLE + case RGBLED_TOGGLE: + if (record->event.pressed) { + rgblight_toggle(); + } + break; + case RGBLED_INCREASE_HUE: + if (record->event.pressed) { + rgblight_increase_hue(); + } + break; + case RGBLED_DECREASE_HUE: + if (record->event.pressed) { + rgblight_decrease_hue(); + } + break; + case RGBLED_INCREASE_SAT: + if (record->event.pressed) { + rgblight_increase_sat(); + } + break; + case RGBLED_DECREASE_SAT: + if (record->event.pressed) { + rgblight_decrease_sat(); + } + break; + case RGBLED_INCREASE_VAL: + if (record->event.pressed) { + rgblight_increase_val(); + } + break; + case RGBLED_DECREASE_VAL: + if (record->event.pressed) { + rgblight_decrease_val(); + } + break; + case RGBLED_STEP_MODE: + if (record->event.pressed) { + rgblight_step(); + } + break; + #endif + } +} diff --git a/keyboards/clueboard2/keymaps/max/Makefile b/keyboards/clueboard2/keymaps/max/Makefile new file mode 100644 index 000000000..22b5b94e3 --- /dev/null +++ b/keyboards/clueboard2/keymaps/max/Makefile @@ -0,0 +1,11 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/clueboard2/keymaps/max/compiled.hex b/keyboards/clueboard2/keymaps/max/compiled.hex new file mode 100644 index 000000000..be12cd219 --- /dev/null +++ b/keyboards/clueboard2/keymaps/max/compiled.hex @@ -0,0 +1,1536 @@ +:100000000C94EE070C9432080C9432080C943208CD +:100010000C9432080C9432080C9432080C94320878 +:100020000C9432080C9432080C94231A0C94F51A90 +:100030000C94D4280C9432080C9432080C94320896 +:100040000C9432080C9432080C9432080C94320848 +:100050000C9432080C943C290C9432080C9432080D +:100060000C9432080C9432080C9432080C94320828 +:100070000C9432080C9432080C9432080C94320818 +:100080000C94BD140C9432080C9432080C94320871 +:100090000C9432080C9432080C9432080C943208F8 +:1000A0000C9432080C9432080C9432082809440944 +:1000B0002C093009340938093C094009621B841BAA +:1000C000721C841B721CC91BEC1B721C411C541C2F +:1000D000731F731FA21FA21FE11F4C214C214C2133 +:1000E00001204C21B120B120182121214C21462191 +:1000F000BE20BE20BE20BE20BE20BE20BE20BE2010 +:10010000BE20BE20BE20BE20BE20BE20BE20BE20FF +:10011000CE20DC20E320EA20F420696E69745F625F +:1001200061636B6C696768745F70696E28290A0087 +:1001300000F001F002F003F004F005F006F007F023 +:1001400029001E001F00200021002200230024009F +:100150002B0014001A000800150017001C001800DE +:10016000390004001600070009000A000B000D000A +:100170000152E1001D001B000600190005001100DE +:10018000E000E200E3008B0000002C002C000000E7 +:100190002500260027002D002E0035002A004B00E8 +:1001A0000C00120013002F003000310000004E0040 +:1001B0000E000F0033003400320028000000000061 +:1001C0001000360037003800E500015252000000F0 +:1001D0008A000000E700E600E400500051004F00F4 +:1001E00035003A003B003C003D003E003F0040002F +:1001F00001000100010001000100010001000100F7 +:100200000100010002520100010001000100010093 +:100210000152010001000100010001000100010084 +:1002200001000100010001000000010001000000C8 +:100230004100420043004400450001004C0083504F +:10024000010047004800010001000100000001001A +:100250000100010001000100010001000000000098 +:100260000100010001000100010001524B000000EB +:10027000010000000100010001004A004E004D0095 +:100280000100010001000100010001000100010066 +:100290000100010001000100005001000100010007 +:1002A00001000100025201000100010001000100F3 +:1002B00001520100010001000100010001000100E4 +:1002C00001000100010001000000012001200000E8 +:1002D00001000100010001000100010000200620D2 +:1002E00001000100010001000100010000000720E1 +:1002F00001000100010001000100010000000000F8 +:100300000100010001000100010001520420000071 +:10031000010000000100010001000320052002206F +:100320000A44454255473A20656E61626C65642E09 +:100330000A005374617465206F6620726F77202500 +:10034000583A2025303136620A0048756D616E2DAD +:100350007265616461626C65206D61747269782098 +:1003600073746174653A0D0A004465626F756E635B +:10037000696E672064656C61792072656D61696E74 +:10038000696E673A2025580A0054494D455233207A +:1003900064697361626C65642E0A0054494D45526C +:1003A0003320656E61626C65642E0A007267626C50 +:1003B000696768742073657420687376205B4545AF +:1003C00050524F4D5D3A2025752C25752C25750A08 +:1003D000007267626C6967687420746F67676C6528 +:1003E0003A207267626C696768745F636F6E6669F2 +:1003F000672E656E61626C65203D2025750A00726E +:1004000067626C69676874206D6F64653A20257552 +:100410000A007267626C696768745F696E6974204C +:100420007267626C696768745F636F6E6669672E76 +:100430006D6F6465203D20302E20577269746520F1 +:1004400064656661756C742076616C756573207483 +:100450006F20454550524F4D2E0A007267626C69FD +:100460006768745F696E6974206565636F6E66693D +:1004700067206973206E6F7420656E61626C6564BD +:100480002E0A007267626C696768745F696E6974CE +:10049000207374617274210A007267626C69676804 +:1004A000745F696E69742063616C6C65642E0A0008 +:1004B0007267626C696768745F636F6E6669672EE6 +:1004C00076616C203D2025640A007267626C696762 +:1004D00068745F636F6E6669672E736174203D2078 +:1004E00025640A007267626C696768745F636F6E87 +:1004F0006669672E687565203D2025640A0072676D +:10050000686C696768745F636F6E6669672E6D6F8C +:100510006465203D2025640A007267626C69676823 +:10052000745F636F6E6669672E656E61626C6520CD +:100530003D2025640A007267626C696768745F63B6 +:100540006F6E666967206570726F6D0A006565631E +:100550006F6E6669675F7570646174655F7267620C +:100560006C696768745F64656661756C740A0064C1 +:100570003214643214783C1E1E140A050000000078 +:100580000101010202030405050607090A0B0C0E0E +:100590000F1112141517191B1D1F212325282A2C92 +:1005A0002F313436393B3E414346494C4F52555822 +:1005B0005A5D6164676A6D707376797C7F83868922 +:1005C0008C8F9295989B9EA2A5A7AAADB0B3B6B901 +:1005D000BCBEC1C4C6C9CBCED0D3D5D7DADCDEE031 +:1005E000E2E4E6E8EAEBEDEEF0F1F3F4F5F6F8F923 +:1005F000FAFAFBFCFDFDFEFEFEFFFFFFFFFFFFFF23 +:10060000FEFEFEFDFDFCFBFAFAF9F8F6F5F4F3F157 +:10061000F0EEEDEBEAE8E6E4E2E0DEDCDAD7D5D3B3 +:10062000D0CECBC9C6C4C1BEBCB9B6B3B0ADAAA703 +:10063000A5A29E9B9895928F8C898683807C7976E3 +:1006400073706D6A6764615D5A5855524F4C4946E4 +:1006500043413E3B393634312F2C2A282523211F94 +:100660001D1B1917151412110F0E0C0B0A09070682 +:10067000050504030202010101000000000101025E +:10068000020202020203030303030303030303033F +:10069000030303040404040404040404040404051C +:1006A00005050505050505050506060606060606F3 +:1006B00006070707070707070808080808080909C1 +:1006C000090909090A0A0A0A0A0B0B0B0B0B0C0C85 +:1006D0000C0C0C0D0D0D0D0E0E0E0E0F0F0F10103D +:1006E00010101111111212121313131414141515E2 +:1006F000161616171718181919191A1A1B1B1C1C6D +:100700001D1D1E1E1F2020212122232324242526D7 +:1007100026272828292A2B2B2C2D2E2F303031321A +:10072000333435363738393A3B3C3D3E3F40414221 +:1007300044454647494A4B4C4E4F515253555658E3 +:100740005A5B5D5E6062636567696B6D6E70727443 +:1007500076797B7D7F818486888B8D909295979A20 +:100760009D9FA2A5A8ABAEB1B4B7BABEC1C4C8CB59 +:10077000CFD3D6DADEE2E6EAEEF2F8FF5B735D0095 +:100780004B6579626F6172642073746172742E0AB2 +:10079000005B575D005B535D005B525D005B445D39 +:1007A000005B435D00420343006C0075006500621E +:1007B000006F00610072006400200077006900741F +:1007C0000068002000520047004200200055006EE3 +:1007D000006400650072006C0069006700680074C6 +:1007E0000069006E0067000000140343006C007590 +:1007F00000650062006F0061007200640000000488 +:1008000003090409027400040100A0FA09040000AD +:100810000103010100092111010001223F00070528 +:10082000810308000A0904010001030000000921F6 +:10083000110100012236000705820308000A09049D +:100840000200020300000009211101000122200022 +:1008500007058303200001070503032000010904A5 +:1008600003000103000000092111010001223900E9 +:10087000070584031000011201100100000008EDBB +:10088000C1202301000102000105010906A10105A3 +:100890000719E029E7150025019508750181020572 +:1008A00008190129059505750191029501750391B6 +:1008B0000105071900297715002501957875018133 +:1008C00002C00631FF0974A1010975150025FF95C5 +:1008D00020750881020976150025FF95207508917D +:1008E00002C005010980A101850216010026B7009A +:1008F0001A01002AB700751095018100C0050C0986 +:1009000001A1018503160100269C021A01002A9C00 +:1009100002751095018100C005010906A1010507B6 +:1009200019E029E715002501950875018102950157 +:1009300075088101050819012905950575019102C0 +:100940009501750391010507190029FF150025FF81 +:10095000950675088100C00A002530325820006BCA +:100960006579626F6172645F7265706F72743A204C +:10097000004B6579626F617264204C45447320734B +:10098000746174653A2025780A0064656C5F6B6554 +:10099000795F6269743A2063616E27742064656CC4 +:1009A0003A20253032580A006164645F6B65795FD4 +:1009B0006269743A2063616E2774206164643A202E +:1009C000253032580A00646F6E652E0A00626F6F20 +:1009D000676D61676963207363616E3A202E2E2E06 +:1009E00020003F00433E20004C25640A0074696DDE +:1009F00065725F636F756E743A202530346C580AE7 +:100A0000006B6579626F6172645F6E6B726F3A2022 +:100A100025580A006B6579626F6172645F69646C66 +:100A2000653A2025580A006B6579626F6172645FD0 +:100A300070726F746F636F6C3A2025580A00686F8C +:100A400073745F6B6579626F6172645F6C65647308 +:100A500028293A2025580A000A092D205374617468 +:100A60007573202D0A004743433A20342E392E3225 +:100A7000204156522D4C4942433A20312E382E31D6 +:100A8000204156525F415243483A20617672350AFE +:100A9000004F5054494F4E533A204C554641204246 +:100AA0004F4F544D414749432045585452414B45BF +:100AB0005920434F4E534F4C4520434F4D4D414ECF +:100AC00044204E4B524F20343039360A00425549AB +:100AD0004C443A20313637313865662D646972747A +:100AE00079202832333A31303A3233204A756E2039 +:100AF00020392032303136290A005649443A203014 +:100B0000784331454428436C7565626F617264298E +:100B1000205049443A2030783233323028436C75C3 +:100B200065626F6172642077697468205247422061 +:100B3000556E6465726C69676874696E67292056C2 +:100B400045523A203078303030310A004445534322 +:100B50003A20514D4B206B6579626F61726420665B +:100B600069726D7761726520666F7220436C75657E +:100B7000626F6172640A000A092D205665727369FA +:100B80006F6E202D0A000A092D20436F6E736F6C63 +:100B900065202D0A4553432F713A09717569740A0E +:100BA000000A092D204D61676963202D0A443A0926 +:100BB0004465627567204D65737361676520546F86 +:100BC00067676C650A583A094D6174726978204408 +:100BD00065627567204D6F646520546F67676C654B +:100BE000202D2053686F77206B6579707265737361 +:100BF000657320696E206D6174726978206772690F +:100C0000640A4B3A094B6579626F617264204465EE +:100C100062756720546F67676C65202D2053686F7D +:100C200077206B65797072657373207265706F726F +:100C3000740A4D3A094465627567204D6F75736596 +:100C400020546F67676C650A563A09566572736976 +:100C50006F6E0A533A095374617475730A433A0903 +:100C6000416374697661746520436F6E736F6C6560 +:100C7000204D6F64650A46312D4631303A0953776D +:100C80006974636820746F204C6179657220302D1F +:100C9000392028463130203D204C30290A302D396A +:100CA0003A0953776974636820746F204C617965E1 +:100CB0007220302D390A4553433A095377697463DA +:100CC0006820746F204C6179657220302028616C37 +:100CD0007465726E617465206B65792031290A47ED +:100CE000524156453A0953776974636820746F20FE +:100CF0004C6179657220302028616C7465726E6178 +:100D00007465206B65792032290A50415553453A64 +:100D1000094A756D7020746F20426F6F746C6F613B +:100D200064657220285265736574290A453A095032 +:100D300072696E7420454550524F4D20536574744E +:100D4000696E67730A4E3A094E4B524F20546F67D3 +:100D5000676C650A000A002575002E6C6576656C67 +:100D60003A20000A002575002E656E61626C653AB6 +:100D700020000A0025303258006261636B6C69679D +:100D800068745F636F6E6669672E7261773A2000E0 +:100D90000A002575002E6E6B726F3A20000A00253E +:100DA00075002E737761705F6261636B736C617342 +:100DB000685F6261636B73706163653A20000A006B +:100DC0002575002E737761705F67726176655F6568 +:100DD00073633A20000A002575002E6E6F5F6775F9 +:100DE000693A20000A002575002E737761705F72E2 +:100DF000616C745F726775693A20000A002575009E +:100E00002E737761705F6C616C745F6C6775693AA3 +:100E100020000A002575002E636170736C6F636B90 +:100E20005F746F5F636F6E74726F6C3A20000A00BC +:100E30002575002E737761705F636F6E74726F6CCF +:100E40005F636170736C6F636B3A20000A0025303A +:100E50003258006B65796D61705F636F6E666967AC +:100E60002E7261773A20000A002575002E6D6F758D +:100E700073653A20000A002575002E6B6579626F54 +:100E80006172643A20000A002575002E6D6174724B +:100E900069783A20000A002575002E656E61626C43 +:100EA000653A20000A002530325800646562756793 +:100EB0005F636F6E6669672E7261773A20000A0081 +:100EC00025750064656661756C745F6C6179657227 +:100ED0003A20003F004E4B524F3A206F66660A00A0 +:100EE0004E4B524F3A206F6E0A000A6D6F75736554 +:100EF0003A206F66660A000A6D6F7573653A206F57 +:100F00006E0A000A6B6579626F6172643A206F66DF +:100F1000660A000A6B6579626F6172643A206F6ECF +:100F20000A000A6D61747269783A206F66660A0079 +:100F30000A6D61747269783A206F6E0A000A6465FE +:100F40006275673A206F66660A000A6465627567B3 +:100F50003A206F6E0A000A0A4A756D70696E672042 +:100F6000746F20626F6F746C6F616465722E2E2EC9 +:100F70002000433E20006565636F6E6669673A0A2C +:100F8000006261636B6C6967687420737465703AA2 +:100F90002025750A006261636B6C69676874207450 +:100FA0006F67676C653A2025750A006261636B6C38 +:100FB000696768742064656372656173653A2025AA +:100FC000750A006261636B6C6967687420696E639F +:100FD00072656173653A2025750A000011241FBEF1 +:100FE000CFEFDAE0DEBFCDBF04B603FE24C08091B0 +:100FF0002E0290912F02A0913002B09131028730E1 +:10100000904BA740B04BB9F410922E0210922F02D1 +:10101000109230021092310214BE84B7877F84BFD1 +:1010200088E10FB6F89480936000109260000FBEC4 +:10103000E0E0F8E3099511E0A0E0B1E0E6EAFFE5C1 +:1010400002C005900D92A633B107D9F712E0A6E3CE +:10105000B1E001C01D92AE32B107E1F70E945D1709 +:101060000C94D12F0C940000FF93EF93E091360184 +:10107000F0913701309709F00995EF91FF910895AC +:10108000FC018591803011F0EFDFFBCF0895FF2741 +:10109000E0E230E247FF0CC0419597FF09C0EDE266 +:1010A0006095709580959095611D711D811D911DB4 +:1010B00027FF02C0219530E350E2AA27660F771F71 +:1010C000881F991FAA1FA41710F0A41B63955A9597 +:1010D000A9F7AA3008F0A95FA05DAF93F395611559 +:1010E00071058105910541F7ED3211F4EF93F39508 +:1010F000F21718F43F93F395FBCF8F91B5DFFA9574 +:10110000E1F70895E991F9918591803021F08532D8 +:1011100019F0AADFF9CF089520E0E89455915532EF +:10112000C1F3503311F4689455915A3348F4505335 +:1011300090F3220F022E220F220F200D250FF4CF45 +:101140000EF4219589919991533619F3533729F16A +:10115000533559F1BC0188279927E8945C3621F46E +:101160008991999168945591543639F446EF7EF0FF +:1011700077FF0DC08FEF9FEF0AC055374AE039F077 +:10118000583540E121F0523642E009F00895FF93CE +:10119000EF937DDFEF91FF91B7CFFF93EF93FC01CA +:1011A00081918030B9F360DFFBCFFF93EF9368DF6D +:1011B000F1CFDF93CF93CDB7DEB72596A3DFCF91E5 +:1011C000DF9108958AE191E00E944008569A279A9B +:1011D000549A5E982F985C980895811104C05E9A85 +:1011E0002F9A5C9A08955E982F985C980895249A97 +:1011F000089581FF02C02C9A08952C9808950895AF +:1012000008958FEF98E0892B11F00E94FF080E944B +:10121000F7080E94E2080E94F41185B7806885BF34 +:1012200085B7806885BF089580E099E0892B11F02B +:101230000C9400090895462F50E04830510538F5C8 +:10124000FA01EA5AFF4FDC0112968C910C94832F1D +:101250008823E9F00C945F128823C9F00C94CB101A +:101260008823A9F00C94E310882389F00C940211D0 +:10127000882369F00C941D11882349F00C943711D0 +:10128000882329F00C94521181110C945512089561 +:1012900081E0089581E008950C944A0908950F9320 +:1012A0001F93CF93DF938C01FC01C081D181CE01CC +:1012B0000E94AC26BE010E94FE09EC01B8010E940A +:1012C0004C09882309F48DC0F8018281882309F430 +:1012D0004AC08091430181111FC0C431F0E5DF078E +:1012E00009F051C00E944E0981E0809343010E94A1 +:1012F0000629909342018093410110923A01109285 +:101300003C0110923B0110923E0110923D0110925F +:10131000400110923F0165C08091410190914201CE +:101320000E941229883C910570F480913A01E82FBF +:10133000F0E0EE0FFF1FE55CFE4FD183C0838F5FAF +:1013400080933A014EC0C43880E5D80721F0C538F3 +:10135000D04501F13AC0F8018281882341F0109212 +:10136000380182E01EC0C438E0E5DE0759F58091FF +:101370003801811106C086E20E94171E86E20E9493 +:10138000DF1E82E01CC0C438F0E5DF0741F3C5383A +:10139000D045D9F4F8018281882331F010923901C7 +:1013A00080E20E942E1F1DC080913901811106C06C +:1013B00087E20E94171E87E20E94DF1E80E20E94E1 +:1013C000351F0FC0C538D04529F381E0809338011F +:1013D00080933901C801DF91CF911F910F910C9437 +:1013E000480980E0DF91CF911F910F9108950C94EF +:1013F00001090C94140980E090E00895E72FF0E0D3 +:101400009AE0899FE00DF11D112483E0EE0FFF1F8C +:101410008A95E1F7E60FF11DEE0FFF1FE05CFE4F2E +:10142000859194910895880F991FFC01E055F04033 +:10143000859194910895880F991FFC01E05DFE4FFE +:101440008591949108950F931F93CF93DF93EC01AF +:10145000811521E39207A0F5C11580E3D80708F0B4 +:10146000D7C0C83ED105D8F4C03ED10508F007C2A8 +:10147000C83AD10578F4C53AD10508F06AC0C13040 +:10148000D10509F463C008F4F7C1C430D10508F0F0 +:10149000F6C1F2C1CB3BD10508F466C0EDC1C11560 +:1014A00090E2D90708F0AFC0C11521E0D20708F0DB +:1014B000E6C1C03FD10508F4DFC18E0110651FC22F +:1014C000C03880E5D80700F5C03790E5D90708F0A7 +:1014D000A3C0C11520E5D20709F4ACC050F4CE0179 +:1014E000905480319F4008F0C7C1DF708E01106AB0 +:1014F00006C2C13080E5D80709F4AAC0C43190E51E +:10150000D90708F4AFC0B8C1C33820E5D20709F441 +:101510008EC050F4C13890E5D90709F482C008F0B4 +:1015200083C000E011EDEBC1C03181E5D80708F4BC +:10153000A3C1C11597E5D90708F436C1CE0190576C +:101540008115904108F098C1DF7093C101E010E06F +:10155000D6C1C53AD10509F494C1C63AD10509F0FE +:1015600093C102E810E4CBC1C83AD10509F48FC198 +:10157000C93AD10509F48EC1CA3AD10509F48DC121 +:10158000CB3AD10509F48CC1CC3AD10509F48BC111 +:10159000CD3AD10509F48AC1C03BD10509F489C10E +:1015A000CE3AD10509F488C1CF3AD10509F487C1F3 +:1015B000C13BD10509F486C1C23BD10509F485C1FF +:1015C000C33BD10509F484C1C43BD10509F483C1EF +:1015D000C53BD10509F482C1C63BD10509F481C1DF +:1015E000C73BD10509F480C1C83BD10509F47FC1CF +:1015F000C93BD10509F47EC1CA3BD10509F47DC1BF +:1016000000E014E47CC1CE019F700E941B0A78C1E7 +:10161000DD278E01106C73C1CF70DD278E01146D34 +:101620006EC100E010ED6BC100E012ED68C100E09A +:1016300013ED65C10E94B3218FEF94E32CE081503C +:1016400090402040E1F700C000000E94612957C18E +:1016500080E293E00E9440088091E60181608093DF +:10166000E6014DC10E94132B811102C00E94F42A91 +:101670000E94302B90E090932D0280932C02C23078 +:1016800080E5D80721F480912C02816086C0C430A7 +:1016900090E5D90721F480912C0282607EC0C6308B +:1016A00020E5D20721F480912C02846076C0C830F6 +:1016B00080E5D80719F480912C0227C0CA3090E544 +:1016C000D90721F480912C02806167C0CC3020E5DD +:1016D000D20721F480912C0280625FC0CE3080E579 +:1016E000D80721F480912C02806457C0C03190E566 +:1016F000D90721F480912C0280684FC0C23120E5C7 +:10170000D20729F480912C028460886046C0C330DF +:1017100080E5D80721F480912C028E7F3EC0C53031 +:1017200090E5D90721F480912C028D7F36C0C73017 +:1017300020E5D20721F480912C028B7F2EC0C93086 +:1017400080E5D80719F480912C0226C0CB3090E5B3 +:10175000D90721F480912C028F7E1FC0CD3020E567 +:10176000D20721F480912C028F7D17C0CF3080E505 +:10177000D80721F480912C028F7B0FC0C13190E5F6 +:10178000D90721F480912C028F7707C0C331D0454F +:1017900031F480912C028B7F877F80932C02809183 +:1017A0002C020E94342BABC08D2F99278F70992764 +:1017B00081309105D9F49E012370332702C0880F30 +:1017C000991F2A95E2F79C688E0144E0000F111FD3 +:1017D0004A95E1F700271370802B912B53E0CC0F33 +:1017E000DD1F5A95E1F7C076DD272FC082309105C5 +:1017F00031F4DC2FCC278E01016F106A80C083305A +:10180000910569F4CE018370992701E010E002C0D0 +:10181000000F111F8A95E2F7C8019C680FC0843041 +:101820009105B9F4CE018370992701E010E002C060 +:10183000000F111F8A95E2F7C8019A6823E0CC0FC8 +:10184000DD1F2A95E1F7C07ED7708C010C2B1D2B74 +:1018500056C08530910531F4DC2FCC278E01046F02 +:10186000106A4DC0069709F04AC0CF71DD27DC2F02 +:10187000CC278E01106243C000E010E040C08E0112 +:101880003EC001E810E43BC003E810E438C002EEBB +:1018900014E435C009EE14E432C00AEE14E42FC09B +:1018A00005EB14E42CC006EB14E429C007EB14E4A8 +:1018B00026C00CEC14E423C00DEC14E420C003E8B3 +:1018C00015E41DC00AE815E41AC002E915E417C0C2 +:1018D00004E915E414C001E216E411C003E216E4C1 +:1018E0000EC004E216E40BC005E216E408C006E2EE +:1018F00016E405C007E216E402C00AE216E4C801D5 +:10190000DF91CF911F910F910895E72FF0E09AE0BA +:10191000899FE00DF11D112483E0EE0FFF1F8A95D2 +:10192000E1F7E60FF11DEE0FFF1FE05CFE4F859122 +:101930009491803E9105E0F4803C910558F5813307 +:10194000910509F46FC048F48932910509F463C028 +:101950008A32910509F46DC072C089339105E9F0AE +:1019600082389105D1F08533910509F44DC067C0E7 +:10197000833E910581F138F4803E9105B9F0823EB5 +:101980009105D9F05CC0863E910561F1873E9105D5 +:10199000A1F155C00E94130A089520912C0220FD48 +:1019A00002C021FF4CC080EE90E049C080912C0223 +:1019B00080FFF9CF89E390E042C080912C0282FF42 +:1019C0000EC080912C0284FF03C080E090E037C0FD +:1019D00083EE90E034C080912C0282FFF2CF82EE41 +:1019E00090E02DC080912C0283FF0BC080912C02CF +:1019F00084FDEBCF87EE90E022C080912C0283FF24 +:101A0000F5CF86EE90E01BC080912C0285FF07C0C9 +:101A100089E290E014C080912C0285FFF9CF85E324 +:101A200090E00DC080912C0286FF07C08AE290E012 +:101A300006C080912C0286FFF9CF81E390E00E94DE +:101A4000230A08950C94F908E82FF0E0E85EFE4FB1 +:101A50008081E82FEF70F0E082958F7021E030E018 +:101A6000A90102C0440F551F8A95E2F740A30895CB +:101A70000F931F93CF93DF9385B7806885BF85B79A +:101A8000806885BFC9E0D0E001E010E0FE01E85EBB +:101A9000FE4F8081E82FEF70F0E021A182958F70DA +:101AA000A80102C0440F551F8A95E2F7CA01822B94 +:101AB00081A38C2F0E94240D219740F787E090E0AE +:101AC00061E070E0FC01E05FFE4F2081E22FEF70EB +:101AD000F0E042A122952F70DB0102C0AA0FBB1FCC +:101AE0002A95E2F79D01242B22A3019758F7DF9155 +:101AF000CF911F910F910C94F709EF92FF920F93E2 +:101B00001F93CF93DF930EE411E0C9E0EE24E3943A +:101B1000F12CD5E08C2F0E94240D87E090E040E06E +:101B2000FC01E05FFE4F5081E52FEF70F0E020A157 +:101B300030E052955F7002C0359527955A95E2F7CF +:101B400020FD07C09701082E01C0220F0A94EAF772 +:101B5000422B019728F7F80182918F01841719F021 +:101B60004083D09300018C2F0E94240DC15090F629 +:101B70008091000187FD32C09091E60190FF10C076 +:101B8000282F332727FD30953F938F9389E693E0E5 +:101B90009F938F930E94D9080F900F900F900F90F2 +:101BA0008091000181508093000187FD07C08FE97B +:101BB0009FE00197F1F700C0000010C080E090E0C6 +:101BC000FC01E25BFE4FDC01AC5BBE4F19962C9131 +:101BD00021870197863FEFEF9E0791F70E94F90951 +:101BE00081E0DF91CF911F910F91FF90EF900895C9 +:101BF000E82FF0E0E25BFE4F808108950F931F9382 +:101C0000CF93DF938091E60180FF04C08AE493E0E4 +:101C10000E944008C0E0D0E002E313E08091E601BA +:101C200080FF15C0FE01E25BFE4F808190E00E94C4 +:101C300070289F938F93DF93CF931F930F930E94EE +:101C4000D9080F900F900F900F900F900F90219642 +:101C5000CA30D10519F7DF91CF911F910F910895E7 +:101C60000F931F93CF9308E511E0C0E0F801829134 +:101C70008F0190E00E944E28C80FF1E00E341F073C +:101C8000A9F78C2FCF911F910F9108952BB1342F6D +:101C9000309523233BB1432B3FB7F894FC01680FE9 +:101CA000791FE617F70789F0819198E04BB900009A +:101CB00000C087FF2BB9880F000000C000C000C023 +:101CC0002BB900C09A9591F7ECCF3FBF08952AB188 +:101CD000242B2AB99B01220F331F620F731F0E940E +:101CE000460E87EC90E00197F1F700C000000895E0 +:101CF00040E80C94670EAF92BF92CF92DF92EF92C2 +:101D0000FF920F931F93CF93DF936C01790150E003 +:101D1000FA01E458F94F44918FEF90E0FC01E61B83 +:101D2000F109E458F94FE491E09509F495C0C42F06 +:101D3000D0E08E1B91098C9F90018D9F300D9C9F50 +:101D4000300D1124E32F8CE3A82EB12CC601B50170 +:101D50000E945B2FDC016230710509F446C0D0F4AB +:101D60006115710599F16130710509F079C0C31BE6 +:101D7000D109B501681B790BC69FC001C79F900DA3 +:101D8000D69F900D1124B5010E945B2F032F060FE3 +:101D9000142F67C06430710509F44BC0B8F1653089 +:101DA000710509F05DC0C31BD109B501681B790B32 +:101DB000C69FC001C79F900DD69F900D1124B501FD +:101DC0000E945B2F132FE32FE60F44C0C31BD109E2 +:101DD000CC9DC001CD9D900DDC9D900D1124B501D1 +:101DE0000E945B2F132F160F35C0C31BD109CA9F4A +:101DF000C001CB9F900DDA9F900D1124B5010E9478 +:101E00005B2F142F032FE32FE60F2BC0C31BD10929 +:101E1000B501681B790BC69FC001C79F900DD69F67 +:101E2000900D1124B5010E945B2F132F160F032F65 +:101E30000FC0C31BD109CA9FC001CB9F900DDA9F71 +:101E4000900D1124B5010E945B2F032F060F132F55 +:101E5000E42F07C0042F05C0E42F142F042F01C066 +:101E6000E0E0D70111960C9311971C931296EC9316 +:101E7000DF91CF911F910F91FF90EF90DF90CF9066 +:101E8000BF90AF90089587E090E00C94912FAB0144 +:101E9000BC0187E090E00C94AF2F8091E60180FFB9 +:101EA00008C08DE495E09F938F930E94D9080F900E +:101EB0000F9083E08093ED018091EE01807884663D +:101EC0008F778093EE018CEC8093EF018093F0018B +:101ED0006091ED017091EE018091EF019091F00120 +:101EE0000C94470F8091E60180FF08C086E395E0DF +:101EF0009F938F930E94D9080F900F908091E601D5 +:101F000080FF0FC08091ED0181701F928F9389E156 +:101F100095E09F938F930E94D9080F900F900F9098 +:101F20000F908091E60180FF10C08091ED018695B1 +:101F30008F731F928F938EEF94E09F938F930E94E5 +:101F4000D9080F900F900F900F908091E60180FFBD +:101F500019C08091ED01881F8827881F9091EE019C +:101F6000292F220F822B97FB992790F99F938F930C +:101F700084EE94E09F938F930E94D9080F900F9066 +:101F80000F900F908091E60180FF0EC08091EF01CD +:101F90001F928F938AEC94E09F938F930E94D908AD +:101FA0000F900F900F900F908091E60180FF0EC070 +:101FB0008091F0011F928F9380EB94E09F938F9319 +:101FC0000E94D9080F900F900F900F900895809164 +:101FD000ED0180FF06C06EE070E085EF91E00C94AB +:101FE000780E80E090E0FC01EB50FE4F11821082F1 +:101FF000128203968A329105B1F7EDCF20E030E0EE +:10200000F901EB50FE4F8183608342832D5F3F4F88 +:102010002A323105A9F70C94E70FEF92FF920F9344 +:102020001F93CF93DF9300D01F92CDB7DEB70091FF +:10203000ED011091EE012091EF013091F00100933C +:10204000F1011093F2012093F3013093F4012091F8 +:10205000ED0120FF21C0042FF62EE92E182F9E013E +:102060002F5F3F4F0E947B0E8091F10110FB87F99B +:102070008093F10116958091F2018078182BE0FA97 +:1020800017F91093F201F092F3010093F4014B81E0 +:1020900069818A810E94FE0F0F900F900F90DF914F +:1020A000CF911F910F91FF90EF9008950F931F9381 +:1020B000CF93DF93EC01062F142F9091ED0190FF49 +:1020C00065C0892F8E77823021F4CE010E940D10D9 +:1020D0001BC0892F86958F732EE3280F2F73243012 +:1020E00018F41091F00110C0865C8F73893060F491 +:1020F000C92FCC1FCC27CC1FD091EE018D2F880F7C +:10210000C82BD7FBDD27D0F98091ED01C0FB87F903 +:102110008093ED01C6958091EE018078C82BD0FBAD +:10212000C7F9C093EE010093EF011093F0016091A5 +:10213000ED017091EE018091EF019091F0010E940C +:10214000470F8091F0011F928F938091EF011F92B2 +:102150008F938091ED01881F8827881F9091EE0151 +:10216000292F220F822B97FB992790F99F938F930A +:102170008CEA93E09F938F930E94D9088DB79EB706 +:1021800008960FB6F8949EBF0FBE8DBFDF91CF911A +:102190001F910F910895EDEEF1E02081221F22277B +:1021A000221F3091EE01432F440F842F822B37FBE7 +:1021B000992790F90A9668E671E00E946F2F438193 +:1021C00062810C9456102091ED01221F2227221FBC +:1021D0003091EE01432F440F842F822B37FB992738 +:1021E00090F98A3091051CF4825A9E4F01C00A97DB +:1021F00068E671E00E946F2F4091F0016091EF015D +:102200000C9456106091EF01862F90E08F3E91055F +:1022100014F46F5E01C06FEF8091ED01881F882775 +:10222000881F9091EE01292F220F97FB992790F993 +:102230004091F001822B0C9456106091EF01862F93 +:1022400090E0419714F0615101C060E08091ED0190 +:10225000881F8827881F9091EE01292F220F97FB56 +:10226000992790F94091F001822B0C9456104091DF +:10227000F001842F90E08F3E910514F44F5E01C071 +:102280004FEF8091ED01881F8827881F9091EE0104 +:10229000292F220F97FB992790F96091EF01822B4C +:1022A0000C9456104091F001842F90E0419714F067 +:1022B000415101C040E08091ED01881F8827881FAF +:1022C0009091EE01292F220F97FB992790F96091A9 +:1022D000EF01822B0C9456108091690181110FC07F +:1022E00081E08093690189E0809391008FB7F89431 +:1022F00093E09093990090ED909398008FBF08958C +:10230000809171008260809371008091E60180FF6E +:1023100008C08BE993E09F938F930E94D9080F9098 +:102320000F900895809171008D7F8093710080914E +:10233000E60180FF08C089E893E09F938F930E9495 +:10234000D9080F900F9008959091ED0190FF4BC028 +:102350009178811102C0926007C0883110F09E62AE +:1023600003C08F73880F982B9093ED016091ED015E +:102370007091EE018091EF019091F0010E94470F62 +:102380008091ED0186958F731F928F938FEF93E06D +:102390009F938F930E94D9088091ED01982F9E778B +:1023A0000F900F900F900F90923019F40E9492119D +:1023B00007C08695825C8F73863110F40E9480116D +:1023C0008091ED01881F8827881F9091EE01292FA9 +:1023D000220F97FB992790F94091F0016091EF014E +:1023E000822B0C94561008958091E60181608093B1 +:1023F000E60189E994E09F938F930E94D90881E0D8 +:1024000080936A018091E6010F900F9080FF08C0D1 +:1024100083E894E09F938F930E94D9080F900F90C8 +:102420000E94132B811110C08091E60180FF08C02B +:102430008BE594E09F938F930E94D9080F900F90A3 +:102440000E94F42A0E944D0F0E94430F6093ED01F9 +:102450007093EE018093EF019093F0016E77C1F4D9 +:102460008091E60180FF08C082E194E09F938F9302 +:102470000E94D9080F900F900E944D0F0E94430FA9 +:102480006093ED017093EE018093EF019093F00162 +:102490000E94720F0E946C118091ED0180FF04C0B8 +:1024A00086958F730C94A41108958091ED01869503 +:1024B0008F738F5F883108F081E00C94A4118091B4 +:1024C000ED01982F909590FB80F98093ED0160913C +:1024D000ED017091EE018091EF019091F0010E9469 +:1024E000470F8091ED0181701F928F9381ED93E0F2 +:1024F0009F938F930E94D9088091ED010F900F90C8 +:102500000F900F9080FF04C086958F730C94A411D8 +:102510000E9492112FEF80E792E02150804090407E +:10252000E1F700C000000C94E70FCF93C82F809113 +:102530006701909168010E941229EC2FF0E0E858A1 +:10254000FA4FE491F0E08E179F0718F10E940629D8 +:102550009093680180936701E0916601F0E0E45890 +:10256000FA4F44918091ED01881F8827881F909130 +:10257000EE01292F220F97FB992790F96091EF0127 +:10258000822B0E940D108091660190E0019680934D +:102590006601CF910895CF93C82F809164019091E7 +:1025A00065010E941229EC2FF0E0EB58FA4FE491FC +:1025B000F0E08E179F07E8F00E94062990936501CE +:1025C000809364014091F0016091EF01809162017C +:1025D000909163010E940D108091620190916301BE +:1025E000019668E671E00E945B2F909363018093EF +:1025F0006201CF910895CF92DF92FF920F931F93C4 +:10260000CF93DF93F82E80916001909161010E9439 +:102610001229EF2DE695F0E0EB58FA4FE491F0E047 +:102620008E179F07F0F10E94062990936101809315 +:10263000600105EF11E0C0E0D0E088E6C82EDD249F +:10264000D39480915E0190915F018C0F9D1FB60124 +:102650000E945B2F98014091F0016091EF010E9470 +:102660007B0E69960D5F1F4FCE3581E0D80749F785 +:102670000E94E70F20915E0130915F01F0FE0BC0D8 +:10268000C901019668E671E00E945B2F90935F019B +:1026900080935E0106C02150310930935F01209381 +:1026A0005E01DF91CF911F910F91FF90DF90CF904E +:1026B00008958F929F92AF92BF92CF92DF92EF9246 +:1026C000FF920F931F93CF93DF93C82F80FF03C018 +:1026D000DD24DA9402C0DD24D39480915C019091D2 +:1026E0005D010E941229C695EC2FF0E0EE58FA4FDA +:1026F000E491F0E08E179F0708F467C00E94062956 +:1027000090935D0180935C0195EFE92E91E0F92EA5 +:1027100007EF11E0C0E0D0E027E0822E912CF80115 +:1027200031971082F7011082F801108287E0A82EFD +:10273000B12CC12C80915B018C0D87FD825F9927A4 +:1027400087FD9095C817D907E9F42091F0012A9DDB +:10275000C0012B9D900D1124B4010E946F2F462FB4 +:102760008091ED01881F8827881F9091EE01592FD5 +:10277000550F97FB992790F997016091EF01852BF1 +:102780000E947B0ECD0CF1E0AF1AB10899F62196AC +:1027900083E0E80EF11C0D5F1F4FCE30D10509F02C +:1027A000BECF0E94E70F80915B0191E0D91206C075 +:1027B000811102C08DE007C0815005C090E00196F4 +:1027C000BE010E946F2F80935B01DF91CF911F911B +:1027D0000F91FF90EF90DF90CF90BF90AF909F90C0 +:1027E0008F9008959F92AF92BF92CF92DF92EF9217 +:1027F000FF920F931F93CF93DF93CDB7DEB7AA97C6 +:102800000FB6F894DEBF0FBECDBF182F80915901CF +:1028100090915A010E941229E12FF0E0E159FA4FFC +:10282000E491F0E08E179F0708F495C00E940629F6 +:1028300090935A0180935901CE0101967C015E016B +:1028400093E0A90EB11CC12CD12C8701F501319761 +:102850001082F7011082F5011082912C90910101F4 +:1028600080915801999E800D112487FD04C08E30FF +:102870001CF08DE001C080E0992787FD9095C81677 +:10288000D906A1F48091ED01881F8827881F9091B7 +:10289000EE01592F550F97FB992790F99701409119 +:1028A000F0016091EF01852B0E947B0E9394F7E07D +:1028B0009F12D4CF8FEFC81AD80A93E0E90EF11C0B +:1028C000E3E0AE0EB11CFEE0CF16D10409F0BECF9E +:1028D00027EF31E059E0E52EF12C6EE0C62ED12C29 +:1028E000C701B6010E946F2FD9011197FC01EE0FAD +:1028F000FF1FE80FF91FE00FF11F81818C931197E3 +:1029000080818C938281F9018083FFEFEF1AFF0AA7 +:102910002D5F3F4F87E1E816F10411F70E94E70FA2 +:102920009091010180915801913049F48A3F2CF433 +:1029300089EF809358018FEF08C081500AC085311C +:102940003CF084E18093580181E08093010103C051 +:102950008F5F80935801AA960FB6F894DEBF0FBE22 +:10296000CDBFDF91CF911F910F91FF90EF90DF903E +:10297000CF90BF90AF909F9008951F920F920FB687 +:102980000F9211242F933F934F935F936F937F93F5 +:102990008F939F93AF93BF93EF93FF938091ED013C +:1029A00086958F739EE3980F9F73943020F4825026 +:1029B0000E94951223C09AE3980F9F73933020F4DE +:1029C00086500E94CB121AC097E3980F9F739630DF +:1029D00020F489500E94FB1211C091E3980F9F735D +:1029E000963020F48F500E94591308C09BE2980F34 +:1029F0009F73933018F485510E94F213FF91EF9169 +:102A0000BF91AF919F918F917F916F915F914F9106 +:102A10003F912F910F900FBE0F901F9018958091AE +:102A20007E01089508959FB7F89410926D019FBF9D +:102A300090912302943009F057C09091E9009F7063 +:102A40003091EC00232F217030FD20E8922B23E001 +:102A50002093E9002091EB0020FF43C02091EE007D +:102A600027FF3FC020916B01222321F02091E80035 +:102A700025FF37C010926B0126E03091E80035FD4C +:102A800015C030912302343061F53091EB0035FDF3 +:102A900028C0215021F481E080936B0122C0EFE92E +:102AA000FFE03197F1F700C00000E7CF8093F1001D +:102AB0008091E80085FD0AC08091E80080FFFCCF8E +:102AC0008091E8008E778093E80006C08FB7F89475 +:102AD00021E020936D018FBF9F709093E90080E00B +:102AE00008959F709093E9008FEF0895CF93DF933F +:102AF00000D01F92CDB7DEB720912302243021F5FC +:102B000023E029839B838A8382E08093E9008FEF0F +:102B10009091E800815095FD06C095ED9A95F1F7EA +:102B200000008111F5CF8091E80085FF0DC040E0E5 +:102B300050E063E070E0CE0101960E94131880918E +:102B4000E8008E778093E8000F900F900F90DF9150 +:102B5000CF910895CF93DF9300D01F92CDB7DEB70A +:102B60009C0180912302843019F592E099833B8384 +:102B70002A839093E9008FEF9091E800815095FDB2 +:102B800006C095ED9A95F1F700008111F5CF80917F +:102B9000E80085FF0DC040E050E063E070E0CE014A +:102BA00001960E9413188091E8008E778093E800C8 +:102BB0000F900F900F90DF91CF910895CF93DF93F7 +:102BC000EC0190912302943009F046C080910C01F1 +:102BD0008823D9F080910D018823B9F09093E90002 +:102BE0008FEF9091E800815095FD06C095E19A9590 +:102BF000F1F700008111F5CF8091E80085FF2CC02E +:102C000040E050E060E170E017C081E08093E900AF +:102C10008FEF9091E800815095FD06C095ED9A9553 +:102C2000F1F700008111F5CF8091E80085FF14C015 +:102C300040E050E068E070E0CE010E9413188091FF +:102C4000E8008E778093E80080E1FE01AEE6B1E017 +:102C500001900D928A95E1F7DF91CF91089581EA75 +:102C600097E00E94400880912202811109C00E94D1 +:102C7000A8190E94051A8091E20084608093E20006 +:102C800008958DE997E00E9440081092220208956D +:102C900089E997E00C94400885E997E00C94400896 +:102CA00081E997E00E9440080C94C92820916C01AA +:102CB0002F5F822F62E30E944F2F992319F02093F8 +:102CC0006C01089510926C0180916D01882371F15F +:102CD00080912302843041F58091E9008F7020912A +:102CE000EC00922F917020FD90E8892B93E0909357 +:102CF000E9009091EB0090FF14C09091EE0097FFD7 +:102D000010C09091E80095FF03C01092F100F9CF38 +:102D10009091E80090FF05C09091E8009E77909315 +:102D2000E8008F708093E90010926D01089542E0F1 +:102D300061EC81E00E94221942E061EC82E00E9495 +:102D4000221942E261EC83E00E94221942E161EC27 +:102D500084E00C94221980912502833009F455C037 +:102D600030F4813071F0823009F48EC008958A30D9 +:102D700009F47AC08B3009F460C0893009F09CC036 +:102D800020C080912402813A09F096C08091E80029 +:102D9000877F8093E8008091280290912902892BF7 +:102DA00021F460E18EE691E003C060E080E090E015 +:102DB00070E00E945E188091E8008B778093E800B5 +:102DC000089580912402813209F076C08091280212 +:102DD00090912902009719F0039709F06DC0809136 +:102DE000E800877F8093E8008091E80082FD05C0BD +:102DF000809123028111F8CF5FC08091F100809310 +:102E00007E018091E8008B7753C080912402813A43 +:102E100009F052C08091280290912902892B09F073 +:102E20004BC08091E800877F8093E8008091E800A4 +:102E300080FFFCCF80910C0136C08091240281324A +:102E4000D9F58091280290912902892BA9F58091CA +:102E5000E800877F8093E8000E945719809126023E +:102E600080930C010C94B32180912402813221F5CE +:102E70008091E800877F8093E8000E945719809135 +:102E8000270280937F01089580912402813AA1F462 +:102E90008091E800877F8093E8008091E80080FFC0 +:102EA000FCCF80917F018093F1008091E8008E77C4 +:102EB0008093E8000C945719089584B7877F84BFE6 +:102EC00088E10FB6F89480936000109260000FBE06 +:102ED00090E080E80FB6F8948093610090936100D1 +:102EE0000FBE0E942C1D0E94A8190E94051A8091F5 +:102EF000E20084608093E20083E195E10E9449282A +:102F000078940E948A1C0E942E1D82E091E00E940B +:102F1000A51C80E897E00E9440088091230285303C +:102F200089F48CE797E00E9440080E948A288091EB +:102F30002102882391F30E94B828882371F30E940C +:102F4000FD17EBCF0E94541DE8CF292F33272330E4 +:102F50003105C9F064F42130310581F022303105AA +:102F600009F043C084E790E023E038E042C021321A +:102F70003105F1F02232310541F137C082E190E0B4 +:102F800027E738E036C099278130910541F082303B +:102F9000910541F0892B49F5EFEFF7E005C0E9EE27 +:102FA000F7E002C0E5EAF7E0849190E09F0121C0DC +:102FB0006430D8F4E62FF0E0EE0FFF1FE25DFE4F25 +:102FC0002081318189E090E014C0643070F470E0B9 +:102FD000FB01EE0FFF1FEA5DFE4F20813181FB01F7 +:102FE000EE5DFE4F808190E004C080E090E020E044 +:102FF00030E0FA0131832083089580E189BD82E1C8 +:1030000089BD09B400FEFDCF8091D8008F7D8093EB +:10301000D8008091E00082608093E0008091E00021 +:1030200081FDFCCF0895CF92DF92EF92FF920F9334 +:103030001F93CF93DF93EC018B016A010E947619F5 +:10304000811133C0C114D10439F0F601808191811E +:10305000081B190BC80FD91FE12CF12C0115110504 +:1030600019F18091E80085FD16C08091E8008E7707 +:103070008093E800C114D10449F0F6018081918168 +:10308000E80EF91EF182E08285E00FC00E947619F9 +:10309000882321F30AC089918093F100015011091E +:1030A000FFEFEF1AFF0ADACF80E0DF91CF911F9197 +:1030B0000F91FF90EF90DF90CF90089520912A021A +:1030C00030912B022617370748F06115710539F446 +:1030D0002091E8002E772093E80001C0B90140E07C +:1030E00061157105A9F120912302222309F443C03F +:1030F000253009F442C02091E80023FD40C0209112 +:10310000E80022FD32C02091E80020FFE9CF409185 +:10311000F3002091F20030E0342BFC01CF01611567 +:10312000710559F02830310540F481918093F10008 +:10313000615071092F5F3F4FF1CF41E028303105D9 +:1031400009F040E02091E8002E772093E800C8CFF6 +:103150004111C9CF0AC080912302882361F08530D4 +:1031600061F08091E80083FD0AC08091E80082FF51 +:10317000F2CF80E0089582E0089583E0089581E031 +:10318000089520912A0230912B022617370748F024 +:103190006115710539F42091E8002E772093E8003D +:1031A00001C0B901FC0120E06115710591F1809128 +:1031B0002302882309F440C0853009F43FC0809180 +:1031C000E80083FD3DC08091E80082FD2FC0809122 +:1031D000E80080FFE9CF2091F3008091F20090E0B9 +:1031E000922B6115710559F08830910540F42491B6 +:1031F0002093F1003196615071090196F2CF21E0E0 +:10320000089709F020E08091E8008E778093E8002D +:10321000CBCF2111CCCF0AC080912302882361F04B +:10322000853061F08091E80083FD0AC08091E8005C +:1032300082FFF2CF80E0089582E0089583E0089550 +:1032400081E00895982F973058F59093E9009817EA +:1032500039F07091EC002091ED005091F00003C026 +:10326000242F762F50E021FF19C03091EB003E7FD4 +:103270003093EB003091ED003D7F3093ED003091C5 +:10328000EB0031603093EB007093EC002093ED0085 +:103290005093F0002091EE0027FF07C09F5FD3CF2F +:1032A0008F708093E90081E0089580E00895809117 +:1032B000240287FF11C08091E80082FD05C0809143 +:1032C00023028111F8CF11C08091E8008B770BC0E9 +:1032D00080912302882349F08091E80080FFF8CF95 +:1032E0008091E8008E778093E80008952091E400B3 +:1032F0003091E50095E64091EC00842F817040FF0D +:1033000022C08091E80080FD1CC0809123028823A8 +:1033100091F0853091F08091EB0085FD10C04091D7 +:10332000E4005091E5004217530729F39A019150A8 +:1033300011F784E0089582E0089583E0089581E024 +:10334000089580E008954091E80042FFDECF08959F +:103350000E94161A0E941E1AE0EEF0E08081816041 +:103360008083E8EDF0E080818F77808319BCA7ED42 +:10337000B0E08C918E7F8C9380818F7E80831092C1 +:10338000220208950F931F93CF93DF930E94161A82 +:103390000E941E1AC8EDD0E088818F7788838881CB +:1033A0008068888388818F7D888319BC109223026E +:1033B00010921F02109221021092200200EE10E0E3 +:1033C000F80180818B7F808388818160888342E0DF +:1033D00060E080E00E942219E1EEF0E080818E7FC3 +:1033E0008083E2EEF0E0808181608083808188606C +:1033F0008083F80180818E7F8083888180618883CB +:10340000DF91CF911F910F910895E8EDF0E0808159 +:103410008F7E8083E7EDF0E080818160808384E0AF +:1034200082BF81E0809322020C94C219E8EDF0E0A3 +:1034300080818E7F80831092E20008951092DA00DE +:103440001092E10008951F920F920FB60F9211246F +:103450002F933F934F935F936F937F938F939F939C +:10346000AF93BF93EF93FF938091E10082FF0BC076 +:103470008091E20082FF07C08091E1008B7F809302 +:10348000E1000E9456168091DA0080FF1FC08091F3 +:10349000D80080FF1BC08091DA008E7F8093DA0015 +:1034A0008091D90080FF0DC080E189BD82E189BD96 +:1034B00009B400FEFDCF81E0809323020E942F1605 +:1034C00005C019BC109223020E9441168091E100B0 +:1034D00080FF19C08091E20080FF15C08091E2005A +:1034E0008E7F8093E2008091E20080618093E20011 +:1034F0008091D80080628093D80019BC85E08093C9 +:1035000023020E944C168091E10084FF30C080911C +:10351000E20084FF2CC080E189BD82E189BD09B44D +:1035200000FEFDCF8091D8008F7D8093D8008091E0 +:10353000E1008F7E8093E1008091E2008F7E809396 +:10354000E2008091E20081608093E20080911F029E +:10355000882311F084E007C08091E30087FD02C05A +:1035600081E001C083E0809323020E945016809185 +:10357000E10083FF29C08091E20083FF25C0809194 +:10358000E100877F8093E10082E080932302109224 +:103590001F028091E1008E7F8093E1008091E20024 +:1035A0008E7F8093E2008091E20080618093E20050 +:1035B00042E060E080E00E9422198091F000886083 +:1035C0008093F0000E944816FF91EF91BF91AF9158 +:1035D0009F918F917F916F915F914F913F912F912B +:1035E0000F900FBE0F901F9018951F920F920FB65D +:1035F0000F9211242F933F934F935F936F937F9379 +:103600008F939F93AF93BF93CF93DF93EF93FF93EA +:10361000C091E900CF708091EC00D82FD17080FD6F +:10362000D0E81092E9008091F000877F8093F0004D +:1036300078940E94391B1092E9008091F000886014 +:103640008093F000CD2BCF70C093E900FF91EF91F4 +:10365000DF91CF91BF91AF919F918F917F916F91AA +:103660005F914F913F912F910F900FBE0F901F9040 +:1036700018951F93CF93DF93CDB7DEB7AA970FB6F8 +:10368000F894DEBF0FBECDBFE4E2F2E088E08E0F1B +:103690009091F10091938E13FBCF0E94AB16809115 +:1036A000E80083FF1FC18091240290912502492FD9 +:1036B00050E04A30510508F015C1FA01E25AFF4FB7 +:1036C0000C94832F803881F0823809F00BC18091EF +:1036D00028028F708093E9008091EB0085FB88279A +:1036E00080F91092E90006C0809120029091210299 +:1036F000911182609091E800977F9093E800809309 +:10370000F1001092F100C8C0282F2D7F09F0EAC007 +:10371000882319F0823061F0E5C080912602813063 +:1037200009F0E0C0933009F080E0809321022BC0C3 +:1037300080912602811127C0809128028F7009F4A0 +:10374000D1C08093E9002091EB0020FF1CC0933092 +:1037500021F48091EB00806214C09091EB009061A5 +:103760009093EB0021E030E0A90102C0440F551F07 +:103770008A95E2F74093EA001092EA008091EB000C +:1037800088608093EB001092E9008091E800877FC9 +:1037900086C08111A7C0109126021F778091E30097 +:1037A0008078812B8093E3008091E800877F80936D +:1037B000E8000E9457198091E80080FFFCCF8091BB +:1037C000E30080688093E300111102C082E001C031 +:1037D00083E08093230286C08058823008F082C044 +:1037E00080912602909127028C3D53E0950779F550 +:1037F00083E08A838AE289834FB7F894DE011396C7 +:1038000020E03EE051E2E32FF0E050935700E491D6 +:1038100020FF03C0E295EF703F5FEF708E2F90E0C6 +:10382000EA3010F0C79601C0C0968D939D932F5F2C +:10383000243149F74FBF8091E800877F8093E800EB +:103840006AE270E0CE0101960E945E1814C0AE01DB +:103850004F5F5F4F609128020E94A517BC0100973F +:1038600009F440C09091E800977F9093E800898127 +:103870009A810E94C1188091E8008B778093E800BC +:1038800031C0803879F58091E800877F8093E80027 +:1038900080911F028093F1008091E8008E778093E1 +:1038A000E8000E9457191EC081111CC09091260289 +:1038B0009230C0F48091E800877F8093E800909375 +:1038C0001F020E94571980911F02811106C080912A +:1038D000E30087FD02C081E001C084E08093230201 +:1038E0000E9497168091E80083FF0AC08091E8004B +:1038F000877F8093E8008091EB0080628093EB00EB +:10390000AA960FB6F894DEBF0FBECDBFDF91CF9160 +:103910001F910895CF93809123028823A1F0C09135 +:10392000E900CF709091EC00892F817090FD80E8C4 +:10393000C82B1092E9008091E80083FD0E94391B9A +:10394000CF70C093E900CF91089590938501809343 +:1039500084010895E0918401F0918501309721F070 +:103960000190F081E02D099480E00895EF92FF929C +:103970000F931F93CF93DF93E0918401F091850122 +:103980003097B1F18C010280F381E02D099580918F +:10399000E60182FF2DC080FF04C08FE599E00E9400 +:1039A0004008E80110E189E5E82E89E0F82E8091D1 +:1039B000E60180FF0BC088811F928F93FF92EF92E8 +:1039C0000E94D9080F900F900F900F9011502196E0 +:1039D0001111EDCF8091E60180FF0AC087E599E0E3 +:1039E000DF91CF911F910F91FF90EF900C944008C1 +:1039F000DF91CF911F910F91FF90EF90089520914B +:103A00008201309183018217930771F090938301B3 +:103A100080938201E0918401F0918501309721F03B +:103A20000680F781E02D099408952091800130915E +:103A300081018217930771F0909381018093800137 +:103A4000E0918401F0918501309721F00084F185A7 +:103A5000E02D0994089508950C942B1D0E94FD28D3 +:103A60000E94380D0E94BF290C94722ECF93DF93D1 +:103A70001F92CDB7DEB79091E60192FF10C090FF84 +:103A80000EC01F928F9321E739E03F932F938983D4 +:103A90000E94D9080F900F900F900F9089810F907E +:103AA000DF91CF910C94220D9F92AF92BF92CF9253 +:103AB000DF92EF92FF920F931F93CF93DF9300D08B +:103AC00000D000D0CDB7DEB70E947D0D09E010E038 +:103AD000AA24A394B12C902E802F0E94F80D980157 +:103AE00029573E4F6901F901F080F826A1F40150F1 +:103AF000110988F78FEF89838A831B820E94062928 +:103B00008160782F9D838C8349815A816B818D815F +:103B10000E94E91D2FC09091E60191FF04C08E83A1 +:103B20000E94FE0D8E8127E030E0A501022E01C02B +:103B3000440F0A94EAF7E42E4F21C1F029839A82B8 +:103B40008E2191E009F490E09B830E940629816018 +:103B5000782F9D838C8349815A816B818D810E944E +:103B6000E91DF6018081E826E08204C02150310978 +:103B7000E0F6BDCF109186010E94AA1C1817B9F07B +:103B80000E94AA1C8093860126960FB6F894DEBF89 +:103B90000FBECDBFDF91CF911F910F91FF90EF909E +:103BA000DF90CF90BF90AF909F900C94361D2696DB +:103BB0000FB6F894DEBF0FBECDBFDF91CF911F913E +:103BC0000F91FF90EF90DF90CF90BF90AF909F90BC +:103BD0000895CF93DF93CDB7DEB72B970FB6F89448 +:103BE000DEBF0FBECDBF4F83588769877A878B872B +:103BF000DE01119686E0FD0111928A95E9F785E0D4 +:103C0000FE01379601900D928A95E1F749815A811C +:103C10006B817C818D819E810E9451242B960FB6F1 +:103C2000F894DEBF0FBECDBFDF91CF910895CF9343 +:103C3000882309F4C2C0C82F823859F40E94AA1CF4 +:103C400081FDBBC089E30E942B270E941A2889E3CB +:103C50000CC0833879F40E94AA1C80FDAEC083E5B5 +:103C60000E942B270E941A2883E50E947E27CF916D +:103C70000C941A28843859F40E94AA1C82FD9DC015 +:103C800087E40E942B270E941A2887E4EECF8CEF4E +:103C90008C0F813A48F48C2F0E94232E81118DC005 +:103CA0008C2F0E942B27E3CF80E28C0F883048F4C2 +:103CB000C77081E001C0880FCA95EAF70E94D32738 +:103CC000D6CF8BE58C0F833078F4C53A29F0C63A0D +:103CD00031F083E890E005C081E890E002C082E81E +:103CE00090E0CF910C94FF1C88E58C0F833108F095 +:103CF00064C0C83A39F1C93A41F1CA3A49F1CB3AFC +:103D000051F1CC3A59F1CD3A61F1C03B69F1CE3A6B +:103D100071F1CF3A79F1C13B81F1C23B89F1C33BEB +:103D200091F1C43B99F1C53BA1F1C63BA9F1C73B59 +:103D3000B1F1C83BB9F1C93BC1F1CA3BC9F180E05F +:103D400090E038C082EE90E035C089EE90E032C05D +:103D50008AEE90E02FC085EB90E02CC086EB90E0DF +:103D600029C087EB90E026C08CEC90E023C08DEC5E +:103D700090E020C083E891E01DC08AE891E01AC07D +:103D800082E991E017C084E991E014C081E292E0F9 +:103D900011C083E292E00EC084E292E00BC085E2A3 +:103DA00092E008C086E292E005C087E292E002C09D +:103DB0008AE292E0CF910C94151DCF91089588234B +:103DC00009F44BC0823859F40E94AA1C81FF45C0F7 +:103DD00089E30E942B270E941A2889E30CC08338AC +:103DE00071F40E94AA1C80FF38C083E50E942B2733 +:103DF0000E941A2883E50E947E270C941A28843892 +:103E000059F40E94AA1C82FF28C087E40E942B2735 +:103E10000E941A2887E4EFCF9CEF980F913A58F34D +:103E200090E2980F983050F4877091E001C0990F9C +:103E30008A95EAF7892F0E94D927DFCF9BE5980F53 +:103E4000933020F480E090E00C94FF1C885A83317A +:103E500020F480E090E00C94151D0895882321F053 +:103E60000E94D3270C941A280895882321F00E94D9 +:103E7000D9270C941A2808957F928F929F92AF921F +:103E8000BF92CF92DF92EF92FF920F931F93CF9347 +:103E9000DF931F92CDB7DEB77C01C62E772EFC01D3 +:103EA000058102950F70128111110E94F0270E9466 +:103EB0002427882379F0112369F080E28C0D883063 +:103EC00048F082E00E940D270E94242791E0D82E1E +:103ED000D92601C0D12CE72DE295EF70F0E0E8592A +:103EE000FF4F0C94832F872D807F072D0F70882321 +:103EF00011F00295007F112389F0002309F48EC18F +:103F000080E28C0D883020F4802F0E94D32703C0DC +:103F1000802F0E94E3270E941A2880C18C2D0E94C6 +:103F2000DF1E002309F4B8C180E28C0D883020F434 +:103F3000802F0E94D92703C0802F0E94E9270E946A +:103F40001A28AAC1872D807F972D9F70803211F487 +:103F5000892F03C0892F8295807FCC2021F0F1E04A +:103F6000CF16A1F01DC0112339F0002319F1013043 +:103F700009F50E94032890C1002319F0013009F4CB +:103F80008BC189830E940628898105C1112321F0F4 +:103F9000063008F081C10EC0053008F07DC1FBC0BD +:103FA000112359F0002331F0F701958190FF36C1BC +:103FB0009F7095830E942E1F6FC1002309F4EBC0F0 +:103FC00033C1872D86958695837090E0009719F010 +:103FD000019761F061C1112321F08C2D972D937011 +:103FE00002C080E090E00E94FF1C56C1112321F026 +:103FF0008C2D972D937002C080E090E00E94151DDB +:104000004BC1872D837009F052C0111145C18C2D11 +:10401000829586958770880F880F9C2D9F70892EBA +:10402000912CA12CB12C082E04C0880C991CAA1C20 +:10403000BB1C0A94D2F7C4FE14C00FE010E020E0CD +:1040400030E0B901A80104C0440F551F661F771F57 +:104050008A95D2F7CB01BA016095709580959095BD +:1040600003C060E070E0CB01272D269526952370D4 +:1040700030E02230310569F02330310589F06829BC +:1040800079298A299B292130310571F00E949925CF +:1040900003C1682979298A299B290E94B525FCC07A +:1040A0000E949925C501B4010E947D25F5C0112308 +:1040B00019F0872D817001C08695882309F4ECC022 +:1040C0008C2D829586958770880F880F9C2D9F7008 +:1040D000892E912CA12CB12C082E04C0880C991C7F +:1040E000AA1CBB1C0A94D2F7C4FE14C00FE010E057 +:1040F00020E030E0B901A80104C0440F551F661F3D +:10410000771F8A95D2F7CB01BA016095709580959B +:10411000909503C060E070E0CB01272D2695269591 +:104120002370422F50E04230510569F04330510571 +:1041300089F0682979298A299B294130510571F034 +:104140000E947326A9C0682979298A299B290E947F +:104150008F26A2C00E947326C501B4010E94572673 +:104160009BC08C2D90E0FC01E05EF109E531F1058A +:1041700008F050C0E858FF4F0C94832F0C2D0F709F +:10418000872D8F71112321F00E94F025802F12CFEF +:104190000E941126802F0E94351F7EC0112341F0FE +:1041A000053008F079C0872D8F710E94362674C0C3 +:1041B000063008F071C0F7CF112339F0872D8F71C9 +:1041C0000E94F02569C01123C9F3872D8F710E94C9 +:1041D000112662C0112329F0872D8F710E94DB25E3 +:1041E0005BC00E94D12558C0112351F0172D1F71BB +:1041F000812F0E94F02563E0812F0E9404274CC08C +:1042000081E00E940D27023008F446C082E00E943F +:104210000D2742C0112331F0002381F28C2D0E9422 +:10422000171E3AC0002389F28C2D0E94DF1E34C075 +:10423000472D4F706C2DC7010E94FB090E94F52489 +:104240002BC0111129C0472D4F7050E0423051054D +:10425000B9F04CF44115510581F041305105E1F4BC +:104260000E94A72E19C04330510569F04430510512 +:1042700099F48C2D0E94322F0FC00E94832E0CC007 +:104280000E94D62E09C00E94FC2E06C0472D4F70FA +:104290006C2DC7010E941B09DD20F9F00E94002748 +:1042A00080FD1BC0F70112820E94FA260E94F025B1 +:1042B000C7010E947C210E94FA260F90DF91CF91C6 +:1042C0001F910F91FF90EF90DF90CF90BF90AF9034 +:1042D0009F908F907F900C9411260F90DF91CF913B +:1042E0001F910F91FF90EF90DF90CF90BF90AF9014 +:1042F0009F908F907F9008950F931F93CF93DF939C +:10430000EC01888199812B813C81232BB9F09F3F5F +:1043100011F48F3F99F0CE010E944F09882371F06C +:10432000688179818A810E94F6268C010E94AB26E1 +:104330000E947225B801CE010E943C1FDF91CF91EF +:104340001F910F9108950E94F0270E9400280E945B +:10435000C5270E941A2880E090E00E94FF1C80E0A0 +:1043600090E00C94151D0E94E0270C94A3210E945C +:10437000EB26292F22952F7030E02C3031054CF49C +:104380002A3031056CF42250310922303105A8F46D +:1043900007C02C30310569F02F30310551F00DC0C8 +:1043A000803F69F018F4803E40F409C0843F29F44E +:1043B00006C093FB882780F9089580E0089581E086 +:1043C0000895CF93DF9300D000D01F92CDB7DEB712 +:1043D0000F900F900F900F900F90DF91CF91089555 +:1043E000CF93DF9300D000D000D0CDB7DEB72696B4 +:1043F0000FB6F894DEBF0FBECDBFDF91CF91089509 +:104400001F93CF93DF93C091910116E080919201A9 +:10441000C81799F0D0E01C9FF0011D9FF00D1124EA +:10442000ED56FE4F40815181628173818481958177 +:104430000E94F0212196C770E9CFDF91CF911F91A3 +:1044400008954091C3015091C4016091C5017091DC +:10445000C6018091C7019091C8010C94F021809110 +:10446000C80182958F7009F054C08091C5018823DE +:1044700009F44FC080919101A09192016091C30114 +:104480007091C4014091C6015091C701B6E08A17EE +:1044900009F43FC090E041155105C1F17F3F11F48F +:1044A0006F3FA1F1B89FF001B99FF00D1124ED56B7 +:1044B000FE4F218172132AC02081621327C02281FE +:1044C000211124C0238134812417350710F4215091 +:1044D0003109241B350B283C3105C0F42091C8015B +:1044E0002F7020612093C80126E0289FF001299FAA +:1044F000F00D1124E856FE4F80818F70806180831B +:1045000083EC91E00E947C210C940022019687703C +:10451000BECF0895CF92DF92EF92FF920F931F9339 +:10452000CF93DF93CDB7DEB762970FB6F894DEBFB7 +:104530000FBECDBF8C0185E0F801DE011D96019014 +:104540000D928A95E1F7D8014C9111965C911197E3 +:1045500012966C9112971396CD90DC90149730912F +:10456000C3017091C4018091C6019091C701009769 +:1045700009F46BC17F3F19F43F3F09F466C1E09035 +:10458000C501EE2009F4C0C02091C801C816D906A3 +:1045900028F0F601E81BF90BCF0104C08095909537 +:1045A0008C0D9D1DFF24F394883C910578F0F12C2F +:1045B000207F09F0C6C07C2DD98AC88A89890E94CB +:1045C000E12183EC91E00E947C21B1C0822F807FA9 +:1045D00009F046C0751314C0341312C0611110C025 +:1045E0002F7020612093C8010E94212283EC91E06A +:1045F0000E947C218091C801D80115968C932EC011 +:10460000CD2819F15F3F11F44F3FF9F0F62E6111FB +:104610001CC0809191012091920136E0821709F42B +:104620005AC090E0389FF001399FF00D1124ED56EB +:10463000FE4F7181571306C07081471303C072810A +:10464000711103C001968770E9CFF62E662309F435 +:1046500018C18091C80181608093C801F12C11C1FB +:10466000751308C0341306C0611104C08091C801DD +:10467000D801C3C04D875E878D859E856A8B0E9459 +:10468000B7216A898823E1F16623D1F12091C8011D +:10469000822F82958F7090E0029774F08091C30111 +:1046A0009091C40198878F831986DB86CA862C87F0 +:1046B000CE0107960E947C2186E0F801A3ECB1E0D0 +:1046C00001900D928A95E1F70E942F220E942122EB +:1046D000FF24F394D6C04D875E878D859E850E940A +:1046E000EB26292F22952F7030E0223031050CF077 +:1046F000BCC09F7009F0B6C0805E883008F4C1C0AD +:10470000C8010E947C21E4CFC816D90608F453C022 +:10471000F601E81BF90BCF01883C910508F450C065 +:10472000F12C7C2DD98AC88A89890E94E121E3EC89 +:10473000F1E086E0DF011D928A95E9F70E942122CF +:10474000A0C0751314C0341312C0611110C0809141 +:10475000C801F8018583C8010E947C2186E0E3EC52 +:10476000F1E0DF011D928A95E9F7FE2C8AC04D87A2 +:104770005E878D859E856A8B0E94B7216A89882312 +:1047800009F4BECF662309F4BBCF2091C801822F64 +:1047900082958F7090E002970CF48ECF8091C301C8 +:1047A0009091C4019A8389831B82DD82CC822E83FF +:1047B000CE0101967FCF809590958C0D9D1DACCF3D +:1047C000F62E662309F49CCF75132EC034132CC02B +:1047D0002091C80120FD1FC0822F82958F70D9F0D3 +:1047E000D80115962C9315978F3049F08F5F982F2D +:1047F0009295907F822F8F70892B15968C93C8018C +:104800000E947C2186E0F801A3ECB1E001900D92BA +:104810008A95E1F793CF86E0F801A3ECB1E001902F +:104820000D928A95E1F72DC04D875E878D859E8517 +:104830000E94B721811140CF8091C801816080938F +:10484000C801C8010E947C211CC0662309F458CF0E +:104850004D875E878D859E850E94B721882309F448 +:104860004FCF2ACF811148CF0CC0243031050CF036 +:1048700047CF9F7009F440CFF8019581907F09F0F0 +:104880003BCF8F2D62960FB6F894DEBF0FBECDBF23 +:10489000DF91CF911F910F91FF90EF90DF90CF901C +:1048A00008951F93CF93DF93CDB7DEB72C970FB644 +:1048B000F894DEBF0FBECDBF4F83588769877A87D4 +:1048C0008B879C87CE0107960E948A22882369F0F5 +:1048D0008F8198852A853B85232BF1F19F3F09F035 +:1048E00063C08F3F09F060C037C086E0FE01379695 +:1048F000DE01119601900D928A95E1F76F8178851E +:10490000EA85FB85309741F17F3F11F46F3F21F13C +:104910002091920130E0C90101968770992740915A +:10492000910150E08417950709F447C069837A83A1 +:10493000FD83EC8396E0929FD001939FB00D1124EC +:10494000AD56BE4FFE01319601900D929A95E1F75A +:10495000809392010E94002216E080919101909133 +:1049600092018917C1F1189FC00111248D569E4FE5 +:104970000E948A22882379F1E09191011E9FF00123 +:104980001124ED56FE4F40815181628173818481F3 +:1049900095810E94F0218091910190E001968770AD +:1049A000992780939101D9CF4F81588569857A8560 +:1049B0008B859C850E94F021CFCF0E94B32110925D +:1049C000920110929101E3ECF1E086E0DF011D928B +:1049D0008A95E9F7C1CF2C960FB6F894DEBF0FBECB +:1049E000CDBFDF91CF911F910895EF92FF920F936A +:1049F0001F93CF93DF938C01009709F46CC0F12CC7 +:104A0000EE24E394E8012196F8018491843740F480 +:104A1000843008F051C0813081F0823019F15BC0E0 +:104A2000853709F444C0A8F19CE7980F903708F047 +:104A300052C08F770E94DF1E41C00E5F1F4FFE01E4 +:104A4000C49180E28C0F883048F4C7708E2D01C06D +:104A5000880FCA95EAF70E94F32714C08C2F0E9492 +:104A6000171E2DC00E5F1F4FFE01C49180E28C0FF8 +:104A7000883058F4C7708E2D01C0880FCA95EAF7A8 +:104A80000E94F9270E941A281AC08C2F0E94DF1E4C +:104A900016C00E5F1F4FFE01C491CC2381F08FE939 +:104AA0009FE00197F1F700C00000C150F6CF0E5F04 +:104AB0001F4FFE01F49003C00E94171E8E018F2D20 +:104AC000882309F49FCFEFE9FFE03197F1F700C0A9 +:104AD00000008150F5CFDF91CF911F910F91FF9092 +:104AE000EF90089508956093CD017093CE01809367 +:104AF000CF019093D0010C94A3210F931F930091A9 +:104B0000CD011091CE012091CF013091D001DC0177 +:104B1000CB01802B912BA22BB32B8093CD019093B3 +:104B2000CE01A093CF01B093D0011F910F910C94AF +:104B3000A3210F931F930091CD011091CE012091DD +:104B4000CF013091D001DC01CB0180239123A2233E +:104B5000B3238093CD019093CE01A093CF01B09366 +:104B6000D0011F910F910C94A3210F931F930091DB +:104B7000CD011091CE012091CF013091D001DC0107 +:104B8000CB0180279127A227B3278093CD01909353 +:104B9000CE01A093CF01B093D0011F910F910C943F +:104BA000A3211092C9011092CA011092CB01109258 +:104BB000CC010C94A32141E050E060E070E004C01F +:104BC000440F551F661F771F8A95D2F74093C9017E +:104BD0005093CA016093CB017093CC010C94A32134 +:104BE00041E050E060E070E004C0440F551F661FD4 +:104BF000771F8A95D2F78091C9019091CA01A0913F +:104C0000CB01B091CC01482B592B6A2B7B2B4093C5 +:104C1000C9015093CA016093CB017093CC010C94ED +:104C2000A32141E050E060E070E004C0440F551F54 +:104C3000661F771F8A95D2F74095509560957095BD +:104C40008091C9019091CA01A091CB01B091CC0192 +:104C5000482359236A237B234093C9015093CA01F7 +:104C60006093CB017093CC010C94A32141E050E000 +:104C700060E070E004C0440F551F661F771F8A95DF +:104C8000D2F78091C9019091CA01A091CB01B09156 +:104C9000CC01482759276A277B274093C9015093A5 +:104CA000CA016093CB017093CC010C94A3210F93A4 +:104CB0001F930091C9011091CA012091CB0130913D +:104CC000CC01DC01CB01802B912BA22BB32B809349 +:104CD000C9019093CA01A093CB01B093CC011F915D +:104CE0000F910C94A3210F931F930091C901109170 +:104CF000CA012091CB013091CC01DC01CB01802392 +:104D00009123A223B3238093C9019093CA01A09356 +:104D1000CB01B093CC011F910F910C94A3210F9361 +:104D20001F930091C9011091CA012091CB013091CC +:104D3000CC01DC01CB0180279127A227B3278093E8 +:104D4000C9019093CA01A093CB01B093CC011F91EC +:104D50000F910C94A3210895CF92DF92EF92FF92CE +:104D60000F931F93CF93DF938C01C090CD01D09010 +:104D7000CE01E090CF01F090D0018091C9019091D7 +:104D8000CA01A091CB01B091CC01C82AD92AEA2A44 +:104D9000FB2ACFE1D0E0D701C6010C2E04C0B695A6 +:104DA000A795979587950A94D2F780FF06C0B8011A +:104DB0008C2F0E94850C019721F4219760F780E0E9 +:104DC00001C08C2FDF91CF911F910F91FF90EF9039 +:104DD000DF90CF900895CF93DF93EC010E94AC2633 +:104DE000BE010E94850CDF91CF910895CB010E94F6 +:104DF000EB2608958091D101859585958595089537 +:104E00008091D1018770089598E0899F90011124C5 +:104E1000262B2093D1010C94F0252091D10180956F +:104E200082238093D101982F977069F430E0482F46 +:104E3000552747FD50952417350729F08595859509 +:104E400085950C94112608959091D101977081E079 +:104E500009F480E0089590910C01992321F090913C +:104E60000D01911109C020910E0130910F01F9013E +:104E700032969FEF40E030C0982F96959695969584 +:104E80009F30A0F4E0910E01F0910F01E90FF11DA8 +:104E9000877021E030E0A90102C0440F551F8A95B8 +:104EA000E2F7CA019181892B818308959091E601EF +:104EB00090FF23C01F928F9388EA99E09F938F936E +:104EC0000E94D9080F900F900F900F9008959F3F68 +:104ED00039F04F5F4E3041F051915813F8CF0DC06B +:104EE0005111F7CF942FF5CF9F3F39F0F901E90F1A +:104EF000F11D97FDFA9582830895089590910C0114 +:104F0000992321F090910D01911109C020910E017A +:104F100030910F01F9013296205F3F4F30C0982F3A +:104F20009695969596959F30A8F4E0910E01F09194 +:104F30000F01E90FF11D877021E030E0A90102C0E7 +:104F4000440F551F8A95E2F7CA0180959181892304 +:104F5000818308959091E60190FF16C01F928F9370 +:104F60008AE899E09F938F930E94D9080F900F9041 +:104F70000F900F9008953196E217F30729F0908172 +:104F80009813F9CF1082F7CF089581E090E0E09177 +:104F90000E01F0910F01E80FF91F10820196803188 +:104FA0009105A9F708959091E501892B8093E5017A +:104FB000089580959091E50189238093E5010895F6 +:104FC0001092E50108959091E401892B8093E4010A +:104FD000089580959091E40189238093E4010895D8 +:104FE0001092E40108959091E301892B8093E301ED +:104FF000089580959091E30189238093E3010895BA +:105000001092E30108958093D20108951092D20185 +:10501000089580910E0190910F01FC0131969C0141 +:10502000205F3F4F80E0919191118F5FE217F3076E +:10503000D1F70895E0910E01F0910F018091E50103 +:105040008083E0910E01F0910F0190818091E40145 +:10505000892B8083E0910E01F0910F019081809166 +:10506000E301892B80838091D201882361F0E09154 +:105070000E01F0910F019081892B80830E940928F5 +:1050800081111092D20180910E0190910F010C9428 +:10509000B61C9093370180933601089520E0009765 +:1050A00039F0AC0141505109842395232F5FF7CF8C +:1050B000822F08958295982F9C7C392F36953695AE +:1050C000282F237344E0249FC0011124932F982B91 +:1050D000292F2A7A2695892F8575880F822B089586 +:1050E0001F93CF93DF931F92CDB7DEB799830E94B2 +:1050F0005A28182F9981892F0E945A28212F30E091 +:10510000322F2227A901482BCA010F90DF91CF919E +:105110001F91089580912302843039F11092E701A4 +:1051200020E488E190E00FB6F894A89580936000A1 +:105130000FBE2093600080E00E94ED0880E00E9496 +:10514000220D83B7817F846083BF83B7816083BF73 +:105150007894889583B78E7F83BF88E10FB6F894E3 +:1051600080936000109260000FBE08950895089526 +:1051700080E00E94ED080E94B6280E947D0D0E94EA +:10518000B7280E94300E91E0811101C090E0892F74 +:1051900008950E94B32180E00E94ED080E94722EC3 +:1051A0000E94AA1C0C94220D1F920F920FB60F9210 +:1051B00011248F939F93AF93BF938091E701811147 +:1051C00013C08091E8019091E901A091EA01B091AA +:1051D000EB014196A11DB11D8093E8019093E90177 +:1051E000A093EA01B093EB01BF91AF919F918F9192 +:1051F0000F900FBE0F901F90189582E084BD93E032 +:1052000095BD9AEF97BD80936E0008952FB7F894DF +:105210008091E8019091E901A091EA01B091EB0140 +:105220002FBF0895CF92DF92EF92FF920F931F93BB +:105230002FB7F8944091E8015091E9016091EA019B +:105240007091EB012FBF6A017B01EE24FF248C01DA +:1052500020E030E0C016D106E206F30610F441501B +:1052600051099A01281B390BC9011F910F91FF9019 +:10527000EF90DF90CF9008951F920F920FB60F928C +:1052800011248F939F93AF93BF938091E8019091E6 +:10529000E901A091EA01B091EB010196A11DB11DB8 +:1052A0008093E8019093E901A093EA01B093EB01A8 +:1052B000BF91AF919F918F910F900FBE0F901F9054 +:1052C00018950E94A819F8942FEF87EA91E62150CB +:1052D00080409040E1F700C0000087E090EBDC01E7 +:1052E00080932E0290932F02A0933002B09331024C +:1052F0009CE088E10FB6F894A895809360000FBEFB +:1053000090936000FFCFEF92FF920F931F93CF9384 +:10531000DF93D82FC9E08C2F0E94F80D07E010E032 +:10532000E82EF12CC701002E02C0959587950A94AE +:10533000E2F780FF09C0602F7C2F80E00E94FE0909 +:10534000D81302C081E006C00150110958F7C150BE +:1053500010F780E0DF91CF911F910F91FF90EF90B8 +:105360000895CF93C82F8CE20E948329882321F0CF +:105370008C2FCF910C94832980E0CF910895CF9307 +:105380000E94132B811102C00E94F42A8DEC99E037 +:105390000E944008C5E6C15049F00E947D0D8FE390 +:1053A0009CE90197F1F700C00000F5CF86EC99E089 +:1053B0000E94400889E20E94B129811113C18AE24A +:1053C0000E94B12981110E94F42A85E00E94B1292E +:1053D00081110E9461290E941E2B8093E60187E0C3 +:1053E0000E94B1298823A9F18BE10E94B129882369 +:1053F00051F08091E60181FB222720F991E092276C +:1054000090FB81F90EC08EE00E94B129882361F0E3 +:105410008091E60182FB222720F991E0922790FB00 +:1054200082F98093E60115C080E10E94B129909134 +:10543000E601882341F093FB222720F981E08227AF +:1054400080FB93F904C0892F809580FB90F990939D +:10545000E6018091E6010E94222B0E94302B80936E +:105460002C0280EE0E94B129882341F080912C0209 +:10547000982F909590FB80F980932C0289E30E94ED +:10548000B129882359F080912C0281FB222720F931 +:1054900091E0922790FB81F980932C0282EE0E948A +:1054A000B129882359F080912C0282FB222720F910 +:1054B00091E0922790FB82F980932C0286EE0E9465 +:1054C000B129882359F080912C0283FB222720F9EF +:1054D00091E0922790FB83F980932C0283EE0E9447 +:1054E000B129882359F080912C0284FB222720F9CE +:1054F00091E0922790FB84F980932C0285E30E942F +:10550000B129882359F080912C0285FB222720F9AC +:1055100091E0922790FB85F980932C0281E30E9411 +:10552000B129882359F080912C0286FB222720F98B +:1055300091E0922790FB86F980932C0281E10E94F2 +:10554000B129882359F080912C0287FB222720F96A +:1055500091E0922790FB87F980932C0280912C0296 +:105560000E94342B80912C0287FB882780F980933E +:105570000D0187E20E94B129C82F8EE10E94B12956 +:105580008111C2608FE10E94B1298111C46080E263 +:105590000E94B1298111C86081E20E94B129811164 +:1055A000C06182E20E94B1298111C06283E20E943F +:1055B000B1298111C06484E20E94B129882311F0CD +:1055C000C06802C0CC2329F08C2F0E942B2B6C2F9B +:1055D00003C00E94272B682F70E080E090E0CF91FD +:1055E0000C947325CF9108956DEE7EEF80E090E0EE +:1055F0000E94BB2F60E082E090E00E949D2F60E05F +:1056000083E090E00E949D2F60E084E090E00E94A3 +:105610009D2F60E085E090E00E949D2F60E086E095 +:1056200090E00C949D2F80E090E00E94972F21E065 +:105630008D3E9E4F09F020E0822F089582E090E099 +:105640000C94892F682F82E090E00C949D2F83E0CA +:1056500090E00C94892F682F83E090E00C949D2FAC +:1056600084E090E00C94892F682F84E090E00C9403 +:105670009D2F86E090E00C94892F682F86E090E0C3 +:105680000C949D2FCF93C82F1F928F9388EE99E093 +:105690009F938F930E94D90881E090E0A0E0B0E052 +:1056A000BC01CD0104C0660F771F881F991FCA95E2 +:1056B000D2F70E9473250F900F900F900F90CF910B +:1056C0000C94B321CF938B3109F40FC208F049C079 +:1056D0008E3009F41EC200F5873009F4E7C1A8F442 +:1056E000863009F0A4C28091E601817F8E7F80938D +:1056F000E60186E89BE00E94400882E79FE00E9466 +:10570000400881E08093EC01CFC1883009F45BC090 +:105710008B3009F4C5C18BC2813109F470C220F409 +:10572000803109F40AC283C2863109F421C2893169 +:1057300009F07DC287E79BE00E9440088CE49BE073 +:105740000E9440088AEF9AE00E9440088DEC9AE09F +:105750000E94400881E99AE00E94400886E69AE0AB +:10576000A1C1853309F45FC268F4873209F45BC2D2 +:1057700028F48E3108F45BC28D5156C2893209F487 +:1057800052C255C2833438F48A3308F04AC288338F +:1057900009F486C14CC2833409F445C2883409F047 +:1057A00046C20E94B32186E59FE00E9440089FEF19 +:1057B00023ED80E3915020408040E1F700C00000DD +:1057C0000E94612971C186E79FE00E94400883EC36 +:1057D0009EE00E9440080E94272B1F928F9380EC2E +:1057E0009EE09F938F930E94D9088EEB9EE00E94CB +:1057F00040080E941E2BC82F8BEA9EE00E944008A2 +:105800001F92CF9386EA9EE09F938F930E94D908C0 +:1058100084EA9EE00E9440088AE99EE00E944008D7 +:105820008C2F81701F928F9387E99EE09F938F93B7 +:105830000E94D90885E99EE00E9440088BE89EE01E +:105840000E944008C1FB882780F91F928F9388E847 +:105850009EE09F938F930E94D90886E89EE00E9465 +:1058600040088AE79EE00E944008C2FB882780F932 +:105870001F928F9387E79EE09F938F930E94D90892 +:1058800085E79EE00E9440088CE69EE00E9440086A +:10589000C3FBCC27C0F91F92CF9389E69EE09F936C +:1058A0008F930E94D90887E69EE00E9440080E94DC +:1058B000302BC82F83E59EE00E9440081F92CF93B3 +:1058C0008EE49EE09F938F930E94D9088CE49EE023 +:1058D0000E94400883E39EE00E9440088C2F817064 +:1058E0001F928F9380E39EE09F938F930E94D9082D +:1058F0008DB79EB780960FB6F8949EBF0FBE8DBF32 +:105900008EE29EE00E94400887E19EE00E944008EF +:10591000C1FB882780F91F928F9384E19EE09F93BB +:105920008F930E94D90882E19EE00E94400880E0A7 +:105930009EE00E944008C2FB882780F91F928F9347 +:105940008DEF9DE09F938F930E94D9088BEF9DE090 +:105950000E94400889EE9DE00E944008C3FB882712 +:1059600080F91F928F9386EE9DE09F938F930E9404 +:10597000D90884EE9DE00E9440088AED9DE00E94D7 +:105980004008C4FB882780F91F928F9387ED9DE024 +:105990009F938F930E94D90885ED9DE00E94400857 +:1059A00083EC9DE00E944008C5FB882780F91F9288 +:1059B0008F9380EC9DE09F938F930E94D9088EEB8C +:1059C0009DE00E94400882EA9DE00E944008C6FBDC +:1059D000882780F91F928F938FE99DE09F938F9383 +:1059E0000E94D9088DE99DE00E94400885E99DE06C +:1059F0000E944008C7FBCC27C0F91F92CF9382E9D1 +:105A00009DE09F938F930E94D90880E99DE00E94BA +:105A100040080E94392BC82F89E79DE00E9440086A +:105A20001F92CF9384E79DE09F938F930E94D908A4 +:105A30008DB79EB780960FB6F8949EBF0FBE8DBFF0 +:105A400082E79DE00E94400888E69DE00E944008B1 +:105A50008C2F81701F928F9385E69DE09F938F938B +:105A60000E94D90883E69DE00E9440088AE59DE0F7 +:105A70000E944008C6951F92CF9387E59DE09F93B3 +:105A80008F930E94D90885E59DE00E9440088DB75C +:105A90009EB708960FB6F8949EBF0FBE8DBF04C088 +:105AA00081EA9BE00E944008C1E0C6C08091E60107 +:105AB000C82FC095C170C0FB80F98093E601CC234C +:105AC00049F08AE49FE00E9440088091E6018660E8 +:105AD000886048C08DE39FE00E9440088091E60105 +:105AE000897F877F8093E601DFCF9091E60191FB6C +:105AF000CC27C0F981E0C827892FC0FB81F98093AA +:105B0000E601CC2319F080E39FE027C082E29FE00A +:105B1000C9CF9091E60192FBCC27C0F981E0C8275C +:105B2000892FC0FB82F98093E601CC2319F083E131 +:105B30009FE013C083E09FE0B5CF9091E60193FB17 +:105B4000CC27C0F981E0C827892FC0FB83F9809357 +:105B5000E601CC2351F087EF9EE00E94400880913F +:105B6000E60181608093E60167C08AEE9EE09ACFED +:105B700088E59AE00E9440080E94AA1C1F928F9319 +:105B80008EE39AE09F938F930E94D90880910C0135 +:105B90001F928F9387E29AE09F938F930E94D90878 +:105BA00080917F011F928F9384E19AE09F938F935E +:105BB0000E94D90880910D011F928F9381E09AE095 +:105BC0009F938F930E94D9088091E8019091E901F9 +:105BD000A091EA01B091EB01BF93AF939F938F9394 +:105BE0008DEE99E09F938F930E94D9088DB79EB751 +:105BF00046960FB6F8949EBF0FBE8DBF55CF0E943C +:105C0000B321C0910D0181E0C827C0930D01CC23C1 +:105C100029F080EE9EE00E9440080EC085ED9EE0D7 +:105C200041CF895301C080E00E94422B3DCF83EDDC +:105C30009EE00E944008C0E08C2FCF91089580E044 +:105C4000089580E00895CF93C82F8091EC018823B8 +:105C500019F0813049F03EC0E0910E01F0910F0142 +:105C600080818232C9F507C0E0910E01F0910F01E9 +:105C70008081823261F48C2F0E941F2E811104C01A +:105C80008C2F0E94622B24C081E090E021C08C2FD9 +:105C90000E94212E81111BC0C43189F018F4CB3031 +:105CA00029F010C0C93259F0C83361F486E89BE08E +:105CB0000E94400884EE99E00E94400808C01092BB +:105CC000EC010CC082EE99E00E94400807C081E020 +:105CD000817006C01092EC0180E002C080E0F8CF35 +:105CE000CF9108950E94132B811102C00E94F42AC3 +:105CF0000E94392B80932D0280FF02C0869501C03F +:105D000080E00C94ED0880912D02982F969539F43F +:105D100081708260816080932D020E943D2B809172 +:105D2000E60180FF0FC080912D0286951F928F9310 +:105D300083EC9FE09F938F930E94D9080F900F9060 +:105D40000F900F9080912D0286950C94ED08809114 +:105D50002D02982F969591F09158990F8170892B6B +:105D600080932D028E7F91E009F490E080912D02C6 +:105D700090FB80F980932D020E943D2B8091E601DB +:105D800080FF0FC080912D0286951F928F938BEA22 +:105D90009FE09F938F930E94D9080F900F900F90D0 +:105DA0000F9080912D0286950C94ED0880912D0224 +:105DB000982F909590FB80F980932D020E943D2BA7 +:105DC0008091E60180FF0FC080912D0281701F92AB +:105DD0008F9385E99FE09F938F930E94D9080F903E +:105DE0000F900F900F9080912D0280FF02C086953A +:105DF00001C080E00C94ED0890912D02892F8695CA +:105E00008F5F8F779170823028F4880F892B809371 +:105E10002D0202C090932D0280912D028E7F91E081 +:105E200009F490E080912D0290FB80F980932D027F +:105E30000E943D2B8091E60180FF0FC080912D02D2 +:105E400086951F928F9381E89FE09F938F930E9486 +:105E5000D9080F900F900F900F9080912D0286958A +:105E60000C94ED0820912D02922F96958927982F5A +:105E7000990F822F8170892B80932D028E7F91E064 +:105E800009F490E080912D0290FB80F980932D021F +:105E90000E943D2B80912D0286950C94ED08991B54 +:105EA00079E004C0991F961708F0961B881F7A9511 +:105EB000C9F780950895AA1BBB1B51E107C0AA1F13 +:105EC000BB1FA617B70710F0A61BB70B881F991F9B +:105ED0005A95A9F780959095BC01CD01089597FB3F +:105EE000072E16F4009407D077FD09D00E945B2F8F +:105EF00007FC05D03EF4909581959F4F08957095CD +:105F000061957F4F0895EE0FFF1F0590F491E02DEE +:105F10000994F999FECF92BD81BDF89A992780B571 +:105F20000895A6E1B0E044E050E00C94C32FA8E14E +:105F3000B0E042E050E00C94C32F262FF999FECF39 +:105F400092BD81BDF89A019700B4021639F01FBACC +:105F500020BD0FB6F894FA9AF99A0FBE08950396E9 +:105F6000272F0E949E2F0E949D2F252F0E949E2F3B +:105F7000242F0C949E2F0196272F0E949E2F0C9465 +:105F80009D2FDC01CB01FC01F999FECF06C0F2BDCB +:105F9000E1BDF89A319600B40D9241505040B8F7E7 +:065FA0000895F894FFCF04 +:105FA600FFFF0F15DE151215AA1576150101D3018F +:105FB6000F1F4F5F6F7F6C1323766663530333594E +:105FC60039293F3620391809E208C2088908150818 +:065FD6002E0847086708D1 +:00000001FF diff --git a/keyboards/clueboard2/keymaps/max/keymap.c b/keyboards/clueboard2/keymaps/max/keymap.c new file mode 100644 index 000000000..714d6390d --- /dev/null +++ b/keyboards/clueboard2/keymaps/max/keymap.c @@ -0,0 +1,147 @@ +#include "clueboard2.h" + +#ifdef ENABLE_RGBLIGHT +#include "rgblight.h" +#endif + +// Used for SHIFT_ESC +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _FL 1 +#define _RS 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: (Base Layer) Default Layer + * ,--------------------------------------------------------------------------. ,----. + * | Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| ~| BS| |PgUp| + * |--------------------------------------------------------------------------| |----| + * | Tab| Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |PgDn| + * |--------------------------------------------------------------------------| `----' + * |Capslck| A| S| D| F| G| H| J| K| L| ;| '| # | Ent| + * |-----------------------------------------------------------------------------. + * |Shift| BS| Z| X| C| V| B| N| M| ,| .| /| BS|Shift| Up| + * |------------------------------------------------------------------------|----|----. + * | Ctrl| Alt| Gui| MHen| Space| Space| Hen| Gui| Alt| Ctrl|Left|Down|Rght| + * `----------------------------------------------------------------------------------' + */ +[_BL] = KEYMAP( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PGUP, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, \ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, \ + MO(_FL), KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FL), KC_UP, \ + KC_LCTL, KC_LALT, KC_LGUI,KC_MHEN, KC_SPC, KC_SPC, KC_HENK, KC_RGUI, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + /* Keymap _FL: Function Layer + * ,--------------------------------------------------------------------------. ,----. + * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9| F10| F11| F12| | Del| |BLIN| + * |--------------------------------------------------------------------------| |----| + * | | | | | | | | |PScr|SLck|Paus| | | | |BLDE| + * |--------------------------------------------------------------------------| `----' + * | | | _RS| | | | | | | | | | | | + * |-----------------------------------------------------------------------------. + * | | | | | | | | | | | | | | |PGUP| + * |------------------------------------------------------------------------|----|----. + * | | | | | | | | | | _FL|HOME|PGDN| END| + * `----------------------------------------------------------------------------------' + */ +[_FL] = KEYMAP( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL, BL_STEP, \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + MO(_FL), KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), KC_PGUP, \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END), + + /* Keymap _RS: Reset/Underlight layer + * ,--------------------------------------------------------------------------. ,----. + * | | | | | | | | | | | | | | | | | | + * |--------------------------------------------------------------------------| |----| + * | | | | |RESET| | | | | | | | | | | | + * |--------------------------------------------------------------------------| `----' + * | | | _RS| | | | | | | | | | | | + * |-----------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |------------------------------------------------------------------------|----|----. + * | | | | | | | | | | _FL| | | | + * `----------------------------------------------------------------------------------' + */ +[_RS] = 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, F(0), F(6), \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(7), \ + KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + MO(_FL), KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), F(4), \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, F(1), F(1), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(3), F(5), F(2)), +}; + +enum function_id { + RGBLED_TOGGLE, + RGBLED_STEP_MODE, + RGBLED_INCREASE_HUE, + RGBLED_DECREASE_HUE, + RGBLED_INCREASE_SAT, + RGBLED_DECREASE_SAT, + RGBLED_INCREASE_VAL, + RGBLED_DECREASE_VAL, +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(RGBLED_TOGGLE), + [1] = ACTION_FUNCTION(RGBLED_STEP_MODE), + [2] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), + [3] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), + [4] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), + [5] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), + [6] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), + [7] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + switch (id) { + case RGBLED_TOGGLE: + //led operations + if (record->event.pressed) { + rgblight_toggle(); + } + + break; + case RGBLED_INCREASE_HUE: + if (record->event.pressed) { + rgblight_increase_hue(); + } + break; + case RGBLED_DECREASE_HUE: + if (record->event.pressed) { + rgblight_decrease_hue(); + } + break; + case RGBLED_INCREASE_SAT: + if (record->event.pressed) { + rgblight_increase_sat(); + } + break; + case RGBLED_DECREASE_SAT: + if (record->event.pressed) { + rgblight_decrease_sat(); + } + break; + case RGBLED_INCREASE_VAL: + if (record->event.pressed) { + rgblight_increase_val(); + } + break; + case RGBLED_DECREASE_VAL: + if (record->event.pressed) { + rgblight_decrease_val(); + } + break; + case RGBLED_STEP_MODE: + if (record->event.pressed) { + rgblight_step(); + } + break; + } +} diff --git a/keyboards/clueboard2/keymaps/skully/compiled.hex b/keyboards/clueboard2/keymaps/skully/compiled.hex new file mode 100644 index 000000000..a8423a2cc --- /dev/null +++ b/keyboards/clueboard2/keymaps/skully/compiled.hex @@ -0,0 +1,1246 @@ +:100000000C94E5050C9429060C9429060C942906F9 +:100010000C9429060C9429060C9429060C942906A4 +:100020000C9429060C9429060C9449110C941B126B +:100030000C94FD1F0C9429060C9429060C94290697 +:100040000C9429060C9429060C9429060C94290674 +:100050000C9429060C9465200C9429060C9429060E +:100060000C9429060C9429060C9429060C94290654 +:100070000C9429060C9429060C9429060C94290644 +:100080000C9429060C9429060C9429060C94290634 +:100090000C9429060C9429060C9429060C94290624 +:1000A0000C9429060C9429060C9429068812AA128D +:1000B0009813AA129813EF121213981367137A1356 +:1000C00099169916C816C81607177218721872185A +:1000D00027177218D717D7173E18471872186C18B9 +:1000E000E417E417E417E417E417E417E417E41738 +:1000F000E417E417E417E417E417E417E417E41728 +:10010000F4170218091810181A18696E69745F62DA +:1001100061636B6C696768745F70696E28290A0097 +:1001200000F000201E001F002000210022002300FC +:1001300024002B0014001A000800150017001C00F2 +:100140001800E00004001600070009000A000B0078 +:100150000D00E10064001D001B00060019000500F1 +:100160001100E000E200E300015200002C002C002E +:1001700000002500260027002D002E0035002A0053 +:100180004B000C00120013002F0030003100000063 +:100190004E000E000F003300340032002800000033 +:1001A000000010003600370038008700E5005200DC +:1001B000000001520000E700E4000152500051002D +:1001C0004F0035003A003B003C003D003E003F0040 +:1001D00040000100010001000100010001000100D8 +:1001E00001000100010002520100010001000100B4 +:1001F00001000100010001000100010001000100F7 +:100200000100010001000100015200000100010095 +:1002100000004100420043004400450001004C0042 +:100220008350460047004800010001000100000023 +:1002300001000100010001000100010001000000B7 +:1002400000000100010001000100010001004B005D +:100250000000015200000100010001524A004E005E +:100260004D0001000100010001000100010001003A +:100270000100010001000100010000500100010027 +:100280000100010001000252010001000100010013 +:100290000100010001000100010001000100010056 +:1002A0000100010001000100010000000100010047 +:1002B0000000010001000100010001000100010037 +:1002C0000100010001000100010001000100000027 +:1002D0000100010001000100010001000100000017 +:1002E0000000010001000100010001000100010007 +:1002F00000000100000001000100015201000100A6 +:1003000001000A44454255473A20656E61626C65BA +:10031000642E0A005374617465206F6620726F77D3 +:100320002025583A2025303136620A0048756D6123 +:100330006E2D7265616461626C65206D61747269B5 +:10034000782073746174653A0D0A004465626F75B4 +:100350006E63696E672064656C61792072656D619A +:10036000696E696E673A2025580A005B735D004B21 +:100370006579626F6172642073746172742E0A0011 +:100380005B575D005B535D005B525D005B445D004D +:100390005B435D00420343006C0075006500620032 +:1003A0006F00610072006400200077006900740033 +:1003B00068002000520047004200200055006E00F7 +:1003C0006400650072006C006900670068007400DA +:1003D00069006E0067000000140343006C007500A4 +:1003E000650062006F006100720064000000040399 +:1003F000090409027400040100A0FA0904000001C4 +:1004000003010100092111010001223F00070581BC +:100410000308000A0904010001030000000921117A +:100420000100012236000705820308000A090402C0 +:100430000002030000000921110100012220000731 +:1004400005830320000107050303200001090403BD +:1004500000010300000009211101000122390007F9 +:100460000584031000011201100100000008EDC115 +:10047000202301000102000105010906A101050771 +:1004800019E029E715002501950875018102050885 +:1004900019012905950575019102950175039101D1 +:1004A0000507190029771500250195787501810246 +:1004B000C00631FF0974A1010975150025FF9520BB +:1004C000750881020976150025FF952075089102AF +:1004D000C005010980A101850216010026B7001A96 +:1004E00001002AB700751095018100C0050C0901B3 +:1004F000A1018503160100269C021A01002A9C0214 +:10050000751095018100C005010906A101050719B3 +:10051000E029E7150025019508750181029501750F +:1005200008810105081901290595057501910295B4 +:1005300001750391010507190029FF150025FF9595 +:100540000675088100C00A002530325820006B650E +:1005500079626F6172645F7265706F72743A2000C5 +:100560004B6579626F617264204C454473207374EB +:100570006174653A2025780A0064656C5F6B657963 +:100580005F6269743A2063616E27742064656C3A17 +:1005900020253032580A006164645F6B65795F62C0 +:1005A00069743A2063616E2774206164643A20257F +:1005B0003032580A00646F6E652E0A00626F6F67F2 +:1005C0006D61676963207363616E3A202E2E2E2061 +:1005D000003F00433E20004C25640A0074696D65AD +:1005E000725F636F756E743A202530346C580A0060 +:1005F0006B6579626F6172645F6E6B726F3A202512 +:10060000580A006B6579626F6172645F69646C653A +:100610003A2025580A006B6579626F6172645F70D9 +:10062000726F746F636F6C3A2025580A00686F739D +:10063000745F6B6579626F6172645F6C6564732867 +:10064000293A2025580A000A092D2053746174752F +:1006500073202D0A004743433A20342E392E32208E +:100660004156522D4C4942433A20312E382E3120EA +:100670004156525F415243483A20617672350A0032 +:100680004F5054494F4E533A204C55464120424F0B +:100690004F544D414749432045585452414B4559C9 +:1006A00020434F4E534F4C4520434F4D4D414E44F8 +:1006B000204E4B524F20343039360A004255494CB7 +:1006C000443A20313637313865662D646972747961 +:1006D000202832333A31303A3430204A756E2020A7 +:1006E000392032303136290A005649443A203078D0 +:1006F0004331454428436C7565626F6172642920FB +:100700005049443A2030783233323028436C756592 +:10071000626F617264207769746820524742205585 +:100720006E6465726C69676874696E6729205645E6 +:10073000523A203078303030310A00444553433A41 +:1007400020514D4B206B6579626F61726420666940 +:10075000726D7761726520666F7220436C75656299 +:100760006F6172640A000A092D2056657273696F01 +:100770006E202D0A000A092D20436F6E736F6C6581 +:10078000202D0A4553432F713A09717569740A0087 +:100790000A092D204D61676963202D0A443A0944F6 +:1007A00065627567204D65737361676520546F6777 +:1007B000676C650A583A094D61747269782044651E +:1007C000627567204D6F646520546F67676C6520A4 +:1007D0002D2053686F77206B657970726573736530 +:1007E0007320696E206D6174726978206772696424 +:1007F0000A4B3A094B6579626F6172642044656205 +:10080000756720546F67676C65202D2053686F777C +:10081000206B65797072657373207265706F727486 +:100820000A4D3A094465627567204D6F75736520FE +:10083000546F67676C650A563A0956657273696F3B +:100840006E0A533A095374617475730A433A094145 +:100850006374697661746520436F6E736F6C652095 +:100860004D6F64650A46312D4631303A0953776938 +:1008700074636820746F204C6179657220302D3963 +:100880002028463130203D204C30290A302D393A7D +:100890000953776974636820746F204C61796572BD +:1008A00020302D390A4553433A09537769746368F8 +:1008B00020746F204C6179657220302028616C743F +:1008C00065726E617465206B65792031290A475223 +:1008D0004156453A0953776974636820746F204C18 +:1008E0006179657220302028616C7465726E617464 +:1008F00065206B65792032290A50415553453A09E4 +:100900004A756D7020746F20426F6F746C6F6164F4 +:10091000657220285265736574290A453A09507238 +:10092000696E7420454550524F4D2053657474696B +:100930006E67730A4E3A094E4B524F20546F6767E9 +:100940006C650A000A002575002E6C6576656C3AA8 +:1009500020000A002575002E656E61626C653A20E4 +:10096000000A0025303258006261636B6C69676869 +:10097000745F636F6E6669672E7261773A20000A52 +:10098000002575002E6E6B726F3A20000A002575E7 +:10099000002E737761705F6261636B736C61736863 +:1009A0005F6261636B73706163653A20000A0025C2 +:1009B00075002E737761705F67726176655F65732E +:1009C000633A20000A002575002E6E6F5F67756917 +:1009D0003A20000A002575002E737761705F7261FE +:1009E0006C745F726775693A20000A002575002EE5 +:1009F000737761705F6C616C745F6C6775693A20C6 +:100A0000000A002575002E636170736C6F636B5F65 +:100A1000746F5F636F6E74726F6C3A20000A00250A +:100A200075002E737761705F636F6E74726F6C5FA9 +:100A3000636170736C6F636B3A20000A002530327B +:100A400058006B65796D61705F636F6E6669672EC4 +:100A50007261773A20000A002575002E6D6F75735C +:100A6000653A20000A002575002E6B6579626F617A +:100A700072643A20000A002575002E6D6174726957 +:100A8000783A20000A002575002E656E61626C655B +:100A90003A20000A00253032580064656275675FAD +:100AA000636F6E6669672E7261773A20000A0025CF +:100AB000750064656661756C745F6C617965723A26 +:100AC00020003F004E4B524F3A206F66660A004EA0 +:100AD0004B524F3A206F6E0A000A6D6F7573653A7C +:100AE000206F66660A000A6D6F7573653A206F6E37 +:100AF0000A000A6B6579626F6172643A206F6666FC +:100B00000A000A6B6579626F6172643A206F6E0A3F +:100B1000000A6D61747269783A206F66660A000A8D +:100B20006D61747269783A206F6E0A000A646562BA +:100B300075673A206F66660A000A64656275673AEF +:100B4000206F6E0A000A0A4A756D70696E6720741C +:100B50006F20626F6F746C6F616465722E2E2E2031 +:100B600000433E20006565636F6E6669673A0A0060 +:100B70006261636B6C6967687420737465703A2096 +:100B800025750A006261636B6C6967687420746F15 +:100B900067676C653A2025750A006261636B6C6952 +:100BA0006768742064656372656173653A202575B2 +:100BB0000A006261636B6C6967687420696E6372B6 +:100BC000656173653A2025750A0011241FBECFEFB9 +:100BD000DAE0DEBFCDBF04B603FE24C08091EA0197 +:100BE0009091EB01A091EC01B091ED018730904B19 +:100BF000A740B04BB9F41092EA011092EB011092A9 +:100C0000EC011092ED0114BE84B7877F84BF88E1A8 +:100C10000FB6F89480936000109260000FBEE0E081 +:100C2000F8E3099511E0A0E0B1E0E4E8FDE402C0DA +:100C300005900D92A633B107D9F711E0A6E3B1E014 +:100C400001C01D92AA3EB107E1F70E94830E0C94E9 +:100C5000C0260C940000FF93EF93E0913601F091D1 +:100C60003701309709F00995EF91FF910895FC0144 +:100C70008591803011F0EFDFFBCF0895FF27E0E290 +:100C800030E247FF0CC0419597FF09C0EDE2609547 +:100C9000709580959095611D711D811D911D27FF97 +:100CA00002C0219530E350E2AA27660F771F881F04 +:100CB000991FAA1FA41710F0A41B63955A95A9F7B2 +:100CC000AA3008F0A95FA05DAF93F3956115710597 +:100CD0008105910541F7ED3211F4EF93F395F21789 +:100CE00018F43F93F395FBCF8F91B5DFFA95E1F7B9 +:100CF0000895E991F9918591803021F0853219F0BC +:100D0000AADFF9CF089520E0E89455915532C1F358 +:100D1000503311F4689455915A3348F4505390F37A +:100D2000220F022E220F220F200D250FF4CF0EF4DA +:100D3000219589919991533619F3533729F15335F8 +:100D400059F1BC0188279927E8945C3621F48991F0 +:100D5000999168945591543639F446EF7EF077FFB7 +:100D60000DC08FEF9FEF0AC055374AE039F0583574 +:100D700040E121F0523642E009F00895FF93EF93ED +:100D80007DDFEF91FF91B7CFFF93EF93FC0181914E +:100D90008030B9F360DFFBCFFF93EF9368DFF1CFD3 +:100DA000DF93CF93CDB7DEB72596A3DFCF91DF9149 +:100DB00008958AE091E00E943706569A279A549A3D +:100DC0005E982F985C980895811104C05E9A2F9ABE +:100DD0005C9A08955E982F985C980895249A0895D7 +:100DE00081FF02C02C9A08952C98089508950895C3 +:100DF00086EF96E0892B11F00E94F6060E94EE061F +:100E00000E94D90685B7806885BF85B7806885BF91 +:100E1000089587EF96E0892B11F00C94F70608955A +:100E2000CF93DF93611120C0EC010E94F91E827202 +:100E3000809338019A81992351F0882319F085E332 +:100E400090E002C089E290E00E94511E09C0882310 +:100E500019F085E390E002C089E290E00E94A41EB0 +:100E6000DF91CF910C94431FDF91CF91089581E0E2 +:100E7000089581E008950C94390708950F931F9306 +:100E8000CF93DF938C01FC01C081D181CE010E9400 +:100E9000D21DBE010E94ED07EC01B8010E943B0784 +:100EA000882309F48DC0F8018281882309F44AC09F +:100EB0008091440181111FC0C431F0E5DF0709F0C2 +:100EC00051C00E943D0781E0809344010E942F2081 +:100ED000909343018093420110923B0110923D0197 +:100EE00010923C0110923F0110923E01109241017C +:100EF0001092400165C080914201909143010E948F +:100F00003B20883C910570F480913B01E82FF0E094 +:100F1000EE0FFF1FE45CFE4FD183C0838F5F809391 +:100F20003B014EC0C43880E5D80721F0C538D04514 +:100F300001F13AC0F8018281882341F01092390111 +:100F400082E01EC0C438E0E5DE0759F58091390122 +:100F5000811106C086E20E943D1586E20E940516B8 +:100F600082E01CC0C438F0E5DF0741F3C538D04546 +:100F7000D9F4F8018281882331F010923A0180E29D +:100F80000E9454161DC080913A01811106C087E26B +:100F90000E943D1587E20E94051680E20E945B16C2 +:100FA0000FC0C538D04529F381E080933901809383 +:100FB0003A01C801DF91CF911F910F910C9437072F +:100FC00080E0DF91CF911F910F9108950C94F80666 +:100FD0000C94090780E090E00895E72FF0E09AE094 +:100FE000899FE00DF11D112483E0EE0FFF1F8A950C +:100FF000E1F7E60FF11DEE0FFF1FEE5DFE4F85914D +:1010000094910895880F991FFC01E056F040859156 +:1010100094910895880F991FFC01E05EFE4F859121 +:10102000949108950F931F93CF93DF93EC01811553 +:1010300021E39207A0F5C11580E3D80708F0D7C0D7 +:10104000C83ED105D8F4C03ED10508F007C2C83A61 +:10105000D10578F4C53AD10508F06AC0C130D10590 +:1010600009F463C008F4F7C1C430D10508F0F6C133 +:10107000F2C1CB3BD10508F466C0EDC1C11590E2C9 +:10108000D90708F0AFC0C11521E0D20708F0E6C1CA +:10109000C03FD10508F4DFC18E0110651FC2C03802 +:1010A00080E5D80700F5C03790E5D90708F0A3C060 +:1010B000C11520E5D20709F4ACC050F4CE0190541C +:1010C00080319F4008F0C7C1DF708E01106A06C2F0 +:1010D000C13080E5D80709F4AAC0C43190E5D9072A +:1010E00008F4AFC0B8C1C33820E5D20709F48EC0F8 +:1010F00050F4C13890E5D90709F482C008F083C0E4 +:1011000000E011EDEBC1C03181E5D80708F4A3C1BF +:10111000C11597E5D90708F436C1CE01905781155E +:10112000904108F098C1DF7093C101E010E0D6C192 +:10113000C53AD10509F494C1C63AD10509F093C165 +:1011400002E810E4CBC1C83AD10509F48FC1C93A0D +:10115000D10509F48EC1CA3AD10509F48DC1CB3A43 +:10116000D10509F48CC1CC3AD10509F48BC1CD3A33 +:10117000D10509F48AC1C03BD10509F489C1CE3A31 +:10118000D10509F488C1CF3AD10509F487C1C13B23 +:10119000D10509F486C1C23BD10509F485C1C33B21 +:1011A000D10509F484C1C43BD10509F483C1C53B11 +:1011B000D10509F482C1C63BD10509F481C1C73B01 +:1011C000D10509F480C1C83BD10509F47FC1C93BF1 +:1011D000D10509F47EC1CA3BD10509F47DC100E007 +:1011E00014E47CC1CE019F700E940A0878C1DD27FB +:1011F0008E01106C73C1CF70DD278E01146D6EC12E +:1012000000E010ED6BC100E012ED68C100E013EDED +:1012100065C10E94D9188FEF94E32CE08150904073 +:101220002040E1F700C000000E948A2057C182E000 +:1012300093E00E9437068091D40181608093D401AD +:101240004DC10E943C22811102C00E941D220E94B9 +:10125000592290E09093E9018093E801C23080E543 +:10126000D80721F48091E801816086C0C43090E500 +:10127000D90721F48091E80182607EC0C63020E564 +:10128000D20721F48091E801846076C0C83080E5FF +:10129000D80719F48091E80127C0CA3090E5D90732 +:1012A00021F48091E801806167C0CC3020E5D2074D +:1012B00021F48091E80180625FC0CE3080E5D807DC +:1012C00021F48091E801806457C0C03190E5D907CE +:1012D00021F48091E80180684FC0C23120E5D20737 +:1012E00029F48091E8018460886046C0C33080E5BD +:1012F000D80721F48091E8018E7F3EC0C53090E58B +:10130000D90721F48091E8018D7F36C0C73020E5F0 +:10131000D20721F48091E8018B7F2EC0C93080E58F +:10132000D80719F48091E80126C0CB3090E5D907A1 +:1013300021F48091E8018F7E1FC0CD3020E5D207D7 +:1013400021F48091E8018F7D17C0CF3080E5D80768 +:1013500021F48091E8018F7B0FC0C13190E5D9075E +:1013600021F48091E8018F7707C0C331D04531F473 +:101370008091E8018B7F877F8093E8018091E8016D +:101380000E945D22ABC08D2F99278F7099278130E5 +:101390009105D9F49E012370332702C0880F991F4D +:1013A0002A95E2F79C688E0144E0000F111F4A95D0 +:1013B000E1F700271370802B912B53E0CC0FDD1F3A +:1013C0005A95E1F7C076DD272FC08230910531F4C0 +:1013D000DC2FCC278E01016F106A80C0833091050D +:1013E00069F4CE018370992701E010E002C0000F7C +:1013F000111F8A95E2F7C8019C680FC084309105DF +:10140000B9F4CE018370992701E010E002C0000F0B +:10141000111F8A95E2F7C8019A6823E0CC0FDD1FFF +:101420002A95E1F7C07ED7708C010C2B1D2B56C07E +:101430008530910531F4DC2FCC278E01046F106AC2 +:101440004DC0069709F04AC0CF71DD27DC2FCC27AD +:101450008E01106243C000E010E040C08E013EC02B +:1014600001E810E43BC003E810E438C002EE14E4E5 +:1014700035C009EE14E432C00AEE14E42FC005EBC7 +:1014800014E42CC006EB14E429C007EB14E426C0D6 +:101490000CEC14E423C00DEC14E420C003E815E4C4 +:1014A0001DC00AE815E41AC002E915E417C004E9F2 +:1014B00015E414C001E216E411C003E216E40EC004 +:1014C00004E216E40BC005E216E408C006E216E4E6 +:1014D00005C007E216E402C00AE216E4C801DF9183 +:1014E000CF911F910F910895E72FF0E09AE0899F27 +:1014F000E00DF11D112483E0EE0FFF1F8A95E1F747 +:10150000E60FF11DEE0FFF1FEE5DFE4F85919491EA +:10151000803E9105E0F4803C910558F581339105BA +:1015200009F46FC048F48932910509F463C08A3226 +:10153000910509F46DC072C089339105E9F08238D4 +:101540009105D1F08533910509F44DC067C0833E04 +:10155000910581F138F4803E9105B9F0823E910504 +:10156000D9F05CC0863E910561F1873E9105A1F1FD +:1015700055C00E94020808952091E80120FD02C094 +:1015800021FF4CC080EE90E049C08091E80180FFCF +:10159000F9CF89E390E042C08091E80182FF0EC05C +:1015A0008091E80184FF03C080E090E037C083EEC3 +:1015B00090E034C08091E80182FFF2CF82EE90E0AB +:1015C0002DC08091E80183FF0BC08091E80184FD6C +:1015D000EBCF87EE90E022C08091E80183FFF5CF4A +:1015E00086EE90E01BC08091E80185FF07C089E28C +:1015F00090E014C08091E80185FFF9CF85E390E089 +:101600000DC08091E80186FF07C08AE290E006C025 +:101610008091E80186FFF9CF81E390E00E941208F3 +:1016200008950C94F006E82FF0E0E95EFE4F80810B +:10163000E82FEF70F0E082958F7021E030E0A90193 +:1016400002C0440F551F8A95E2F740A308950F93F7 +:101650001F93CF93DF9385B7806885BF85B7806878 +:1016600085BFC9E0D0E001E010E0FE01E95EFE4F79 +:101670008081E82FEF70F0E021A182958F70A801A2 +:1016800002C0440F551F8A95E2F7CA01822B81A33D +:101690008C2F0E94130B219740F787E090E061E0C8 +:1016A00070E0FC01E15FFE4F2081E22FEF70F0E07F +:1016B00042A122952F70DB0102C0AA0FBB1F2A9501 +:1016C000E2F79D01242B22A3019758F7DF91CF91D8 +:1016D0001F910F910C94E607EF92FF920F931F93C7 +:1016E000CF93DF930FE411E0C9E0EE24E394F12CF3 +:1016F000D5E08C2F0E94130B87E090E040E0FC01C6 +:10170000E15FFE4F5081E52FEF70F0E020A130E067 +:1017100052955F7002C0359527955A95E2F720FDE6 +:1017200007C09701082E01C0220F0A94EAF7422B46 +:10173000019728F7F80182918F01841719F04083EF +:10174000D09300018C2F0E94130BC15090F6809112 +:10175000000187FD32C09091D40190FF10C0282F66 +:10176000332727FD30953F938F938BE493E09F932E +:101770008F930E94D0060F900F900F900F90809142 +:10178000000181508093000187FD07C08FE99FE031 +:101790000197F1F700C0000010C080E090E0FC016C +:1017A000E15BFE4FDC01AB5BBE4F19962C912187AC +:1017B0000197863FEFEF9E0791F70E94E80781E0CF +:1017C000DF91CF911F910F91FF90EF900895E82F37 +:1017D000F0E0E15BFE4F808108950F931F93CF935C +:1017E000DF938091D40180FF04C08CE293E00E94DB +:1017F0003706C0E0D0E004E113E08091D40180FF1F +:1018000015C0FE01E15BFE4F808190E00E94991FB0 +:101810009F938F93DF93CF931F930F930E94D006D4 +:101820000F900F900F900F900F900F902196CA304D +:10183000D10519F7DF91CF911F910F9108950F9363 +:101840001F93CF9309E511E0C0E0F80182918F0169 +:1018500090E00E94771FC80FF1E00F341F07A9F72F +:101860008C2FCF911F910F91089580916C01089555 +:1018700008959FB7F89410925B019FBF9091DF018C +:10188000943009F057C09091E9009F703091EC00BE +:10189000232F217030FD20E8922B23E02093E900D4 +:1018A0002091EB0020FF43C02091EE0027FF3FC0B6 +:1018B00020915901222321F02091E80025FF37C013 +:1018C0001092590126E03091E80035FD15C03091A5 +:1018D000DF01343061F53091EB0035FD28C0215037 +:1018E00021F481E08093590122C0EFE9FFE03197B4 +:1018F000F1F700C00000E7CF8093F1008091E8008D +:1019000085FD0AC08091E80080FFFCCF8091E8004F +:101910008E778093E80006C08FB7F89421E020937B +:101920005B018FBF9F709093E90080E008959F70E6 +:101930009093E9008FEF0895CF93DF9300D01F922B +:10194000CDB7DEB72091DF01243021F523E02983D4 +:101950009B838A8382E08093E9008FEF9091E80077 +:10196000815095FD06C095ED9A95F1F70000811123 +:10197000F5CF8091E80085FF0DC040E050E063E0C6 +:1019800070E0CE0101960E94390F8091E8008E77B9 +:101990008093E8000F900F900F90DF91CF91089502 +:1019A000CF93DF9300D01F92CDB7DEB79C0180911B +:1019B000DF01843019F592E099833B832A83909369 +:1019C000E9008FEF9091E800815095FD06C095EDFC +:1019D0009A95F1F700008111F5CF8091E80085FF1D +:1019E0000DC040E050E063E070E0CE0101960E943F +:1019F000390F8091E8008E778093E8000F900F9068 +:101A00000F90DF91CF910895CF93DF93EC019091E8 +:101A1000DF01943009F046C080910B018823D9F092 +:101A200080910C018823B9F09093E9008FEF909199 +:101A3000E800815095FD06C095E19A95F1F7000008 +:101A40008111F5CF8091E80085FF2CC040E050E087 +:101A500060E170E017C081E08093E9008FEF909122 +:101A6000E800815095FD06C095ED9A95F1F70000CC +:101A70008111F5CF8091E80085FF14C040E050E06F +:101A800068E070E0CE010E94390F8091E8008E7707 +:101A90008093E80080E1FE01ACE5B1E001900D9299 +:101AA0008A95E1F7DF91CF91089580E993E00E9454 +:101AB00037068091DE01811109C00E94CE100E947C +:101AC0002B118091E20084608093E20008958CE8FD +:101AD00093E00E9437061092DE01089588E893E0B3 +:101AE0000C94370684E893E00C94370680E893E082 +:101AF0000E9437060C94F21F20915A012F5F822F0B +:101B000062E30E947826992319F020935A010895E0 +:101B100010925A0180915B01882371F18091DF015D +:101B2000843041F58091E9008F702091EC00922F74 +:101B3000917020FD90E8892B93E09093E9009091BB +:101B4000EB0090FF14C09091EE0097FF10C09091B1 +:101B5000E80095FF03C01092F100F9CF9091E800E2 +:101B600090FF05C09091E8009E779093E8008F70F9 +:101B70008093E90010925B01089542E061EC81E0FE +:101B80000E94481042E061EC82E00E94481042E26C +:101B900061EC83E00E94481042E161EC84E00C9427 +:101BA00048108091E101833009F455C030F4813050 +:101BB00071F0823009F48EC008958A3009F47AC039 +:101BC0008B3009F460C0893009F09CC020C080913E +:101BD000E001813A09F096C08091E800877F809308 +:101BE000E8008091E4019091E501892B21F460E106 +:101BF0008CE591E003C060E080E090E070E00E943E +:101C0000840F8091E8008B778093E800089580919D +:101C1000E001813209F076C08091E4019091E50104 +:101C2000009719F0039709F06DC08091E800877F55 +:101C30008093E8008091E80082FD05C08091DF017B +:101C40008111F8CF5FC08091F10080936C01809189 +:101C5000E8008B7753C08091E001813A09F052C0CF +:101C60008091E4019091E501892B09F04BC08091AE +:101C7000E800877F8093E8008091E80080FFFCCF38 +:101C800080910B0136C08091E0018132D9F58091BD +:101C9000E4019091E501892BA9F58091E800877F07 +:101CA0008093E8000E947D108091E20180930B01F7 +:101CB0000C94D9188091E001813221F58091E800DF +:101CC000877F8093E8000E947D108091E3018093DC +:101CD0006D0108958091E001813AA1F48091E800BE +:101CE000877F8093E8008091E80080FFFCCF80919F +:101CF0006D018093F1008091E8008E778093E80079 +:101D00000C947D10089584B7877F84BF88E10FB657 +:101D1000F89480936000109260000FBE90E080E81D +:101D20000FB6F89480936100909361000FBE0E94FB +:101D300052140E94CE100E942B118091E200846008 +:101D40008093E20089E39CE00E94721F78940E94D5 +:101D5000B0130E94541481E091E00E94CB138FE6EF +:101D600093E00E9437068091DF01853089F48BE68D +:101D700093E00E9437060E94B31F8091DD01882303 +:101D800091F30E94E11F882371F30E94230FEBCF90 +:101D90000E947A14E8CF292F332723303105C9F068 +:101DA00064F42130310581F02230310509F043C05F +:101DB00084E790E022EF33E042C021323105F1F0B8 +:101DC0002232310541F137C082E190E026E634E06D +:101DD00036C099278130910541F08230910541F05C +:101DE000892B49F5EEEEF3E005C0E8EDF3E002C023 +:101DF000E4E9F3E0849190E09F0121C06430D8F4DD +:101E0000E62FF0E0EE0FFF1FE35DFE4F20813181F2 +:101E100089E090E014C0643070F470E0FB01EE0FD4 +:101E2000FF1FEB5DFE4F20813181FB01EF5DFE4F17 +:101E3000808190E004C080E090E020E030E0FA0192 +:101E400031832083089580E189BD82E189BD09B491 +:101E500000FEFDCF8091D8008F7D8093D8008091C7 +:101E6000E00082608093E0008091E00081FDFCCF83 +:101E70000895CF92DF92EF92FF920F931F93CF932B +:101E8000DF93EC018B016A010E949C10811133C029 +:101E9000C114D10439F0F60180819181081B190B1E +:101EA000C80FD91FE12CF12C0115110519F18091F2 +:101EB000E80085FD16C08091E8008E778093E800E9 +:101EC000C114D10449F0F60180819181E80EF91E18 +:101ED000F182E08285E00FC00E949C10882321F3EC +:101EE0000AC089918093F10001501109FFEFEF1AA8 +:101EF000FF0ADACF80E0DF91CF911F910F91FF9021 +:101F0000EF90DF90CF9008952091E6013091E701A6 +:101F10002617370748F06115710539F42091E8005C +:101F20002E772093E80001C0B90140E061157105EA +:101F3000A9F12091DF01222309F443C0253009F4DF +:101F400042C02091E80023FD40C02091E80022FD1E +:101F500032C02091E80020FFE9CF4091F3002091AA +:101F6000F20030E0342BFC01CF016115710559F00E +:101F70002830310540F481918093F100615071095E +:101F80002F5F3F4FF1CF41E02830310509F040E0AD +:101F90002091E8002E772093E800C8CF4111C9CFE7 +:101FA0000AC08091DF01882361F0853061F0809163 +:101FB000E80083FD0AC08091E80082FFF2CF80E054 +:101FC000089582E0089583E0089581E008952091C6 +:101FD000E6013091E7012617370748F061157105D2 +:101FE00039F42091E8002E772093E80001C0B90170 +:101FF000FC0120E06115710591F18091DF018823DA +:1020000009F440C0853009F43FC08091E80083FDA9 +:102010003DC08091E80082FD2FC08091E80080FFE4 +:10202000E9CF2091F3008091F20090E0922B6115AE +:10203000710559F08830910540F424912093F10006 +:102040003196615071090196F2CF21E0089709F0AD +:1020500020E08091E8008E778093E800CBCF2111BB +:10206000CCCF0AC08091DF01882361F0853061F018 +:102070008091E80083FD0AC08091E80082FFF2CFE2 +:1020800080E0089582E0089583E0089581E0089556 +:10209000982F973058F59093E900981739F0709180 +:1020A000EC002091ED005091F00003C0242F762F1A +:1020B00050E021FF19C03091EB003E7F3093EB00E0 +:1020C0003091ED003D7F3093ED003091EB003160B9 +:1020D0003093EB007093EC002093ED005093F000F0 +:1020E0002091EE0027FF07C09F5FD3CF8F708093B2 +:1020F000E90081E0089580E008958091E00187FF84 +:1021000011C08091E80082FD05C08091DF0181113E +:10211000F8CF11C08091E8008B770BC08091DF0170 +:10212000882349F08091E80080FFF8CF8091E80093 +:102130008E778093E80008952091E4003091E500C7 +:1021400095E64091EC00842F817040FF22C0809181 +:10215000E80080FD1CC08091DF01882391F085306C +:1021600091F08091EB0085FD10C04091E40050910A +:10217000E5004217530729F39A01915011F784E0C3 +:10218000089582E0089583E0089581E0089580E055 +:1021900008954091E80042FFDECF08950E943C116F +:1021A0000E944411E0EEF0E0808181608083E8EDE0 +:1021B000F0E080818F77808319BCA7EDB0E08C912F +:1021C0008E7F8C9380818F7E80831092DE010895B4 +:1021D0000F931F93CF93DF930E943C110E944411F1 +:1021E000C8EDD0E088818F77888388818068888374 +:1021F00088818F7D888319BC1092DF011092DB01EA +:102200001092DD011092DC0100EE10E0F8018081F7 +:102210008B7F808388818160888342E060E080E0FA +:102220000E944810E1EEF0E080818E7F8083E2EE34 +:10223000F0E0808181608083808188608083F80104 +:1022400080818E7F8083888180618883DF91CF91B8 +:102250001F910F910895E8EDF0E080818F7E8083DB +:10226000E7EDF0E080818160808384E082BF81E0DF +:102270008093DE010C94E810E8EDF0E080818E7F21 +:1022800080831092E20008951092DA001092E1002B +:1022900008951F920F920FB60F9211242F933F9320 +:1022A0004F935F936F937F938F939F93AF93BF935E +:1022B000EF93FF938091E10082FF0BC08091E200D9 +:1022C00082FF07C08091E1008B7F8093E1000E9434 +:1022D0007C0D8091DA0080FF1FC08091D80080FFC4 +:1022E0001BC08091DA008E7F8093DA008091D90044 +:1022F00080FF0DC080E189BD82E189BD09B400FE87 +:10230000FDCF81E08093DF010E94550D05C019BC0F +:102310001092DF010E94670D8091E10080FF19C0DB +:102320008091E20080FF15C08091E2008E7F809353 +:10233000E2008091E20080618093E2008091D80009 +:1023400080628093D80019BC85E08093DF010E94F1 +:10235000720D8091E10084FF30C08091E20084FF23 +:102360002CC080E189BD82E189BD09B400FEFDCFAA +:102370008091D8008F7D8093D8008091E1008F7E7E +:102380008093E1008091E2008F7E8093E200809153 +:10239000E20081608093E2008091DB01882311F0EC +:1023A00084E007C08091E30087FD02C081E001C0A6 +:1023B00083E08093DF010E94760D8091E10083FF2E +:1023C00029C08091E20083FF25C08091E100877FD2 +:1023D0008093E10082E08093DF011092DB01809125 +:1023E000E1008E7F8093E1008091E2008E7F8093F8 +:1023F000E2008091E20080618093E20042E060E0D0 +:1024000080E00E9448108091F00088608093F00086 +:102410000E946E0DFF91EF91BF91AF919F918F91AF +:102420007F916F915F914F913F912F910F900FBED0 +:102430000F901F9018951F920F920FB60F921124B4 +:102440002F933F934F935F936F937F938F939F93BC +:10245000AF93BF93CF93DF93EF93FF93C091E900C6 +:10246000CF708091EC00D82FD17080FDD0E8109211 +:10247000E9008091F000877F8093F00078940E94BB +:102480005F121092E9008091F00088608093F00064 +:10249000CD2BCF70C093E900FF91EF91DF91CF91E9 +:1024A000BF91AF919F918F917F916F915F914F916C +:1024B0003F912F910F900FBE0F901F9018951F9373 +:1024C000CF93DF93CDB7DEB7AA970FB6F894DEBFF0 +:1024D0000FBECDBFE0EEF1E088E08E0F9091F100ED +:1024E00091938E13FBCF0E94D10D8091E80083FF62 +:1024F0001FC18091E0019091E101492F50E04A30E5 +:10250000510508F015C1FA01EA5AFF4F0C948426D0 +:10251000803881F0823809F00BC18091E4018F701E +:102520008093E9008091EB0085FB882780F9109269 +:10253000E90006C08091DC019091DD01911182607B +:102540009091E800977F9093E8008093F1001092BB +:10255000F100C8C0282F2D7F09F0EAC0882319F0A8 +:10256000823061F0E5C08091E201813009F0E0C085 +:10257000933009F080E08093DD012BC08091E2016F +:10258000811127C08091E4018F7009F4D1C080933C +:10259000E9002091EB0020FF1CC0933021F48091D2 +:1025A000EB00806214C09091EB0090619093EB007F +:1025B00021E030E0A90102C0440F551F8A95E2F7DF +:1025C0004093EA001092EA008091EB0088608093CB +:1025D000EB001092E9008091E800877F86C08111AE +:1025E000A7C01091E2011F778091E3008078812BD2 +:1025F0008093E3008091E800877F8093E8000E9449 +:102600007D108091E80080FFFCCF8091E30080681E +:102610008093E300111102C082E001C083E0809347 +:10262000DF0186C08058823008F082C08091E201CC +:102630009091E3018C3D53E0950779F583E08A831F +:102640008AE289834FB7F894DE01139620E03EE0DA +:1026500051E2E32FF0E050935700E49120FF03C0D4 +:10266000E295EF703F5FEF708E2F90E0EA3010F050 +:10267000C79601C0C0968D939D932F5F243149F773 +:102680004FBF8091E800877F8093E8006AE270E0A6 +:10269000CE0101960E94840F14C0AE014F5F5F4FC0 +:1026A0006091E4010E94CB0EBC01009709F440C088 +:1026B0009091E800977F9093E80089819A810E9429 +:1026C000E70F8091E8008B778093E80031C0803875 +:1026D00079F58091E800877F8093E8008091DB01A5 +:1026E0008093F1008091E8008E778093E8000E944B +:1026F0007D101EC081111CC09091E2019230C0F487 +:102700008091E800877F8093E8009093DB010E942E +:102710007D108091DB01811106C08091E30087FD6F +:1027200002C081E001C084E08093DF010E94BD0D02 +:102730008091E80083FF0AC08091E800877F809342 +:10274000E8008091EB0080628093EB00AA960FB6C0 +:10275000F894DEBF0FBECDBFDF91CF911F910895DA +:10276000CF938091DF018823A1F0C091E900CF7061 +:102770009091EC00892F817090FD80E8C82B109219 +:10278000E9008091E80083FD0E945F12CF70C09342 +:10279000E900CF9108959093730180937201089599 +:1027A000E0917201F0917301309721F00190F08176 +:1027B000E02D099480E00895EF92FF920F931F930C +:1027C000CF93DF93E0917201F09173013097B1F1F3 +:1027D0008C010280F381E02D09958091D40182FF64 +:1027E0002DC080FF04C08EE495E00E943706E8010A +:1027F00010E188E4E82E85E0F82E8091D40180FF76 +:102800000BC088811F928F93FF92EF920E94D00697 +:102810000F900F900F900F90115021961111EDCF46 +:102820008091D40180FF0AC086E495E0DF91CF91CA +:102830001F910F91FF90EF900C943706DF91CF918D +:102840001F910F91FF90EF900895209170013091AA +:1028500071018217930771F0909371018093700159 +:10286000E0917201F0917301309721F00680F781B9 +:10287000E02D0994089520916E0130916F01821727 +:10288000930771F090936F0180936E01E091720154 +:10289000F0917301309721F00084F185E02D0994C7 +:1028A000089508950C9451140E9426200E94270B2D +:1028B0000E94E8200C949B25CF93DF931F92CDB705 +:1028C000DEB79091D40192FF10C090FF0EC01F920E +:1028D0008F9320E635E03F932F9389830E94D006A3 +:1028E0000F900F900F900F9089810F90DF91CF91F3 +:1028F0000C94110B9F92AF92BF92CF92DF92EF9206 +:10290000FF920F931F93CF93DF9300D000D000D09E +:10291000CDB7DEB70E946C0B09E010E0AA24A394A7 +:10292000B12C902E802F0E94E70B98012B583E4F20 +:102930006901F901F080F826A1F40150110988F726 +:102940008FEF89838A831B820E942F208160782FDA +:102950009D838C8349815A816B818D810E940F15E3 +:102960002FC09091D40191FF04C08E830E94ED0B83 +:102970008E8127E030E0A501022E01C0440F0A94A9 +:10298000EAF7E42E4F21C1F029839A828E2191E04B +:1029900009F490E09B830E942F208160782F9D8313 +:1029A0008C8349815A816B818D810E940F15F601BC +:1029B0008081E826E08204C021503109E0F6BDCFD5 +:1029C000109174010E94D0131817B9F00E94D0130F +:1029D0008093740126960FB6F894DEBF0FBECDBF6C +:1029E000DF91CF911F910F91FF90EF90DF90CF90EB +:1029F000BF90AF909F900C945C1426960FB6F894FD +:102A0000DEBF0FBECDBFDF91CF911F910F91FF9021 +:102A1000EF90DF90CF90BF90AF909F900895CF93AD +:102A2000DF93CDB7DEB72B970FB6F894DEBF0FBE9E +:102A3000CDBF4F83588769877A878B87DE011196D0 +:102A400086E0FD0111928A95E9F785E0FE0137964F +:102A500001900D928A95E1F749815A816B817C81C1 +:102A60008D819E810E94771B2B960FB6F894DEBF56 +:102A70000FBECDBFDF91CF910895CF93882309F486 +:102A8000C2C0C82F823859F40E94D01381FDBBC048 +:102A900089E30E94511E0E94431F89E30CC08338C2 +:102AA00079F40E94D01380FDAEC083E50E94511ED0 +:102AB0000E94431F83E50E94A41ECF910C94431FE4 +:102AC000843859F40E94D01382FD9DC087E40E948F +:102AD000511E0E94431F87E4EECF8CEF8C0F813A8A +:102AE00048F48C2F0E944C2581118DC08C2F0E94A0 +:102AF000511EE3CF80E28C0F883048F4C77081E02C +:102B000001C0880FCA95EAF70E94FC1ED6CF8BE55C +:102B10008C0F833078F4C53A29F0C63A31F083E857 +:102B200090E005C081E890E002C082E890E0CF919B +:102B30000C94251488E58C0F833108F064C0C83AE2 +:102B400039F1C93A41F1CA3A49F1CB3A51F1CC3A9B +:102B500059F1CD3A61F1C03B69F1CE3A71F1CF3A0A +:102B600079F1C13B81F1C23B89F1C33B91F1C43B97 +:102B700099F1C53BA1F1C63BA9F1C73BB1F1C83BF7 +:102B8000B9F1C93BC1F1CA3BC9F180E090E038C05E +:102B900082EE90E035C089EE90E032C08AEE90E09F +:102BA0002FC085EB90E02CC086EB90E029C087EB2E +:102BB00090E026C08CEC90E023C08DEC90E020C02B +:102BC00083E891E01DC08AE891E01AC082E991E0B3 +:102BD00017C084E991E014C081E292E011C083E261 +:102BE00092E00EC084E292E00BC085E292E008C061 +:102BF00086E292E005C087E292E002C08AE292E0BB +:102C0000CF910C943B14CF910895882309F44BC0C5 +:102C1000823859F40E94D01381FF45C089E30E9495 +:102C2000511E0E94431F89E30CC0833871F40E9437 +:102C3000D01380FF38C083E50E94511E0E94431FBD +:102C400083E50E94A41E0C94431F843859F40E940B +:102C5000D01382FF28C087E40E94511E0E94431FA8 +:102C600087E4EFCF9CEF980F913A58F390E2980FDA +:102C7000983050F4877091E001C0990F8A95EAF777 +:102C8000892F0E94021FDFCF9BE5980F933020F41D +:102C900080E090E00C942514885A833120F480E081 +:102CA00090E00C943B140895882321F00E94FC1EB0 +:102CB0000C94431F0895882321F00E94021F0C9456 +:102CC000431F08957F928F929F92AF92BF92CF92AF +:102CD000DF92EF92FF920F931F93CF93DF931F9298 +:102CE000CDB7DEB77C01C62E772EFC01058102959B +:102CF0000F70128111110E94191F0E944A1E882311 +:102D000079F0112369F080E28C0D883048F082E080 +:102D10000E94331E0E944A1E91E0D82ED92601C07F +:102D2000D12CE72DE295EF70F0E0E05AFF4F0C94C4 +:102D30008426872D807F072D0F70882311F0029540 +:102D4000007F112389F0002309F48EC180E28C0DED +:102D5000883020F4802F0E94FC1E03C0802F0E9428 +:102D60000C1F0E94431F80C18C2D0E94051600235A +:102D700009F4B8C180E28C0D883020F4802F0E94C5 +:102D8000021F03C0802F0E94121F0E94431FAAC16E +:102D9000872D807F972D9F70803211F4892F03C07B +:102DA000892F8295807FCC2021F0F1E0CF16A1F011 +:102DB0001DC0112339F0002319F1013009F50E94DB +:102DC0002C1F90C1002319F0013009F48BC18983B5 +:102DD0000E942F1F898105C1112321F0063008F0C0 +:102DE00081C10EC0053008F07DC1FBC0112359F030 +:102DF000002331F0F701958190FF36C19F709583D4 +:102E00000E9454166FC1002309F4EBC033C1872D13 +:102E100086958695837090E0009719F0019761F090 +:102E200061C1112321F08C2D972D937002C080E099 +:102E300090E00E94251456C1112321F08C2D972D6E +:102E4000937002C080E090E00E943B144BC1872D3C +:102E5000837009F052C0111145C18C2D8295869561 +:102E60008770880F880F9C2D9F70892E912CA12C24 +:102E7000B12C082E04C0880C991CAA1CBB1C0A94F7 +:102E8000D2F7C4FE14C00FE010E020E030E0B9013A +:102E9000A80104C0440F551F661F771F8A95D2F7FB +:102EA000CB01BA01609570958095909503C060E064 +:102EB00070E0CB01272D26952695237030E0223037 +:102EC000310569F02330310589F0682979298A298B +:102ED0009B292130310571F00E94BF1C03C1682974 +:102EE00079298A299B290E94DB1CFCC00E94BF1CF7 +:102EF000C501B4010E94A31CF5C0112319F0872D50 +:102F0000817001C08695882309F4ECC08C2D8295D0 +:102F100086958770880F880F9C2D9F70892E912C25 +:102F2000A12CB12C082E04C0880C991CAA1CBB1C17 +:102F30000A94D2F7C4FE14C00FE010E020E030E0A5 +:102F4000B901A80104C0440F551F661F771F8A9559 +:102F5000D2F7CB01BA01609570958095909503C02A +:102F600060E070E0CB01272D269526952370422F37 +:102F700050E04230510569F04330510589F068292D +:102F800079298A299B294130510571F00E94991DA8 +:102F9000A9C0682979298A299B290E94B51DA2C048 +:102FA0000E94991DC501B4010E947D1D9BC08C2DFE +:102FB00090E0FC01E05EF109E531F10508F050C058 +:102FC000E059FF4F0C9484260C2D0F70872D8F71C4 +:102FD000112321F00E94161D802F12CF0E94371D51 +:102FE000802F0E945B167EC0112341F0053008F04F +:102FF00079C0872D8F710E945C1D74C0063008F067 +:1030000071C0F7CF112339F0872D8F710E94161DE3 +:1030100069C01123C9F3872D8F710E94371D62C0CB +:10302000112329F0872D8F710E94011D5BC00E9422 +:10303000F71C58C0112351F0172D1F71812F0E94CA +:10304000161D63E0812F0E942A1E4CC081E00E9461 +:10305000331E023008F446C082E00E94331E42C094 +:10306000112331F0002381F28C2D0E943D153AC0CE +:10307000002389F28C2D0E94051634C0472D4F7015 +:103080006C2DC7010E94EA070E941B1C2BC0111166 +:1030900029C0472D4F7050E042305105B9F04CF433 +:1030A0004115510581F041305105E1F40E94D025D0 +:1030B00019C04330510569F04430510599F48C2D05 +:1030C0000E945B260FC00E94AC250CC00E94FF2509 +:1030D00009C00E94252606C0472D4F706C2DC701E0 +:1030E0000E941007DD20F9F00E94261E80FD1BC003 +:1030F000F70112820E94201E0E94161DC7010E9425 +:10310000A2180E94201E0F90DF91CF911F910F9166 +:10311000FF90EF90DF90CF90BF90AF909F908F90F7 +:103120007F900C94371D0F90DF91CF911F910F91DD +:10313000FF90EF90DF90CF90BF90AF909F908F90D7 +:103140007F9008950F931F93CF93DF93EC018881B5 +:1031500099812B813C81232BB9F09F3F11F48F3F44 +:1031600099F0CE010E943E07882371F06881798131 +:103170008A810E941C1E8C010E94D11D0E94981CF5 +:10318000B801CE010E946216DF91CF911F910F917D +:1031900008950E94191F0E94291F0E94EB1E0E9481 +:1031A000431F80E090E00E94251480E090E00C94A2 +:1031B0003B140E94091F0C94C9180E94111E292F4C +:1031C00022952F7030E02C3031054CF42A30310537 +:1031D0006CF42250310922303105A8F407C02C309C +:1031E000310569F02F30310551F00DC0803F69F095 +:1031F00018F4803E40F409C0843F29F406C093FBD4 +:10320000882780F9089580E0089581E00895CF939C +:10321000DF9300D000D01F92CDB7DEB70F900F9094 +:103220000F900F900F90DF91CF910895CF93DF9380 +:1032300000D000D000D0CDB7DEB726960FB6F894F8 +:10324000DEBF0FBECDBFDF91CF9108951F93CF9307 +:10325000DF93C0917F0116E080918001C81799F03B +:10326000D0E01C9FF0011D9FF00D1124EF57FE4F81 +:103270004081518162817381848195810E941619F8 +:103280002196C770E9CFDF91CF911F9108954091AA +:10329000B1015091B2016091B3017091B40180917C +:1032A000B5019091B6010C9416198091B6018295E2 +:1032B0008F7009F054C08091B301882309F44FC086 +:1032C00080917F01A09180016091B1017091B20164 +:1032D0004091B4015091B501B6E08A1709F43FC09E +:1032E00090E041155105C1F17F3F11F46F3FA1F10D +:1032F000B89FF001B99FF00D1124EF57FE4F2181C7 +:1033000072132AC02081621327C02281211124C098 +:10331000238134812417350710F421503109241BEF +:10332000350B283C3105C0F42091B6012F70206187 +:103330002093B60126E0289FF001299FF00D11246B +:10334000EA57FE4F80818F708061808381EB91E02E +:103350000E94A2180C94261901968770BECF08957A +:10336000CF92DF92EF92FF920F931F93CF93DF9351 +:10337000CDB7DEB762970FB6F894DEBF0FBECDBFF4 +:103380008C0185E0F801DE011D9601900D928A9571 +:10339000E1F7D8014C9111965C91119712966C91BE +:1033A00012971396CD90DC9014973091B1017091E3 +:1033B000B2018091B4019091B501009709F46BC1FD +:1033C0007F3F19F43F3F09F466C1E090B301EE205E +:1033D00009F4C0C02091B601C816D90628F0F6013C +:1033E000E81BF90BCF0104C0809590958C0D9D1DB5 +:1033F000FF24F394883C910578F0F12C207F09F0AC +:10340000C6C07C2DD98AC88A89890E94071981EB98 +:1034100091E00E94A218B1C0822F807F09F046C0BF +:10342000751314C0341312C0611110C02F702061C5 +:103430002093B6010E94471981EB91E00E94A218E7 +:103440008091B601D80115968C932EC0CD2819F124 +:103450005F3F11F44F3FF9F0F62E61111CC08091CF +:103460007F012091800136E0821709F45AC090E074 +:10347000389FF001399FF00D1124EF57FE4F7181F5 +:10348000571306C07081471303C07281711103C0C6 +:1034900001968770E9CFF62E662309F418C1809152 +:1034A000B60181608093B601F12C11C1751308C07B +:1034B000341306C0611104C08091B601D801C3C0A5 +:1034C0004D875E878D859E856A8B0E94DD186A898F +:1034D0008823E1F16623D1F12091B601822F8295F4 +:1034E0008F7090E0029774F08091B1019091B201D9 +:1034F00098878F831986DB86CA862C87CE0107962C +:103500000E94A21886E0F801A1EBB1E001900D92B3 +:103510008A95E1F70E9455190E944719FF24F394F8 +:10352000D6C04D875E878D859E850E94111E292FEE +:1035300022952F7030E0223031050CF0BCC09F7016 +:1035400009F0B6C0805E883008F4C1C0C8010E948E +:10355000A218E4CFC816D90608F453C0F601E81B38 +:10356000F90BCF01883C910508F450C0F12C7C2D5B +:10357000D98AC88A89890E940719E1EBF1E086E0BF +:10358000DF011D928A95E9F70E944719A0C07513C3 +:1035900014C0341312C0611110C08091B601F8013B +:1035A0008583C8010E94A21886E0E1EBF1E0DF010B +:1035B0001D928A95E9F7FE2C8AC04D875E878D851E +:1035C0009E856A8B0E94DD186A89882309F4BECF24 +:1035D000662309F4BBCF2091B601822F82958F70AC +:1035E00090E002970CF48ECF8091B1019091B201DE +:1035F0009A8389831B82DD82CC822E83CE01019641 +:103600007FCF809590958C0D9D1DACCFF62E6623B7 +:1036100009F49CCF75132EC034132CC02091B60131 +:1036200020FD1FC0822F82958F70D9F0D80115968A +:103630002C9315978F3049F08F5F982F9295907F3C +:10364000822F8F70892B15968C93C8010E94A21827 +:1036500086E0F801A1EBB1E001900D928A95E1F7C7 +:1036600093CF86E0F801A1EBB1E001900D928A952D +:10367000E1F72DC04D875E878D859E850E94DD1800 +:10368000811140CF8091B60181608093B601C8015D +:103690000E94A2181CC0662309F458CF4D875E878C +:1036A0008D859E850E94DD18882309F44FCF2ACF8F +:1036B000811148CF0CC0243031050CF047CF9F70EA +:1036C00009F440CFF8019581907F09F03BCF8F2D11 +:1036D00062960FB6F894DEBF0FBECDBFDF91CF91DB +:1036E0001F910F91FF90EF90DF90CF9008951F935F +:1036F000CF93DF93CDB7DEB72C970FB6F894DEBF2C +:103700000FBECDBF4F83588769877A878B879C8789 +:10371000CE0107960E94B019882369F08F819885A1 +:103720002A853B85232BF1F19F3F09F063C08F3F32 +:1037300009F060C037C086E0FE013796DE011196C1 +:1037400001900D928A95E1F76F817885EA85FB8576 +:10375000309741F17F3F11F46F3F21F120918001BB +:1037600030E0C90101968770992740917F0150E0B0 +:103770008417950709F447C069837A83FD83EC8336 +:1037800096E0929FD001939FB00D1124AF57BE4F8A +:10379000FE01319601900D929A95E1F78093800198 +:1037A0000E94261916E080917F019091800189176F +:1037B000C1F1189FC00111248F579E4F0E94B0196C +:1037C000882379F1E0917F011E9FF0011124EF57CA +:1037D000FE4F4081518162817381848195810E9475 +:1037E000161980917F0190E0019687709927809348 +:1037F0007F01D9CF4F81588569857A858B859C85D6 +:103800000E941619CFCF0E94D918109280011092F1 +:103810007F01E1EBF1E086E0DF011D928A95E9F797 +:10382000C1CF2C960FB6F894DEBF0FBECDBFDF918F +:10383000CF911F910895EF92FF920F931F93CF9313 +:10384000DF938C01009709F46CC0F12CEE24E39413 +:10385000E8012196F8018491843740F4843008F01F +:1038600051C0813081F0823019F15BC0853709F495 +:1038700044C0A8F19CE7980F903708F052C08F77AA +:103880000E94051641C00E5F1F4FFE01C49180E2E9 +:103890008C0F883048F4C7708E2D01C0880FCA95F0 +:1038A000EAF70E941C1F14C08C2F0E943D152DC0EA +:1038B0000E5F1F4FFE01C49180E28C0F883058F4D8 +:1038C000C7708E2D01C0880FCA95EAF70E94221F8B +:1038D0000E94431F1AC08C2F0E94051616C00E5F4F +:1038E0001F4FFE01C491CC2381F08FE99FE0019727 +:1038F000F1F700C00000C150F6CF0E5F1F4FFE0170 +:10390000F49003C00E943D158E018F2D882309F489 +:103910009FCFEFE9FFE03197F1F700C00000815041 +:10392000F5CFDF91CF911F910F91FF90EF90089508 +:1039300008956093BB017093BC018093BD01909387 +:10394000BE010C94C9180F931F930091BB011091F5 +:10395000BC012091BD013091BE01DC01CB01802B67 +:10396000912BA22BB32B8093BB019093BC01A0930E +:10397000BD01B093BE011F910F910C94C9180F9314 +:103980001F930091BB011091BC012091BD013091AA +:10399000BE01DC01CB0180239123A223B3238093BA +:1039A000BB019093BC01A093BD01B093BE011F91D8 +:1039B0000F910C94C9180F931F930091BB011091A4 +:1039C000BC012091BD013091BE01DC01CB018027FB +:1039D0009127A227B3278093BB019093BC01A093AA +:1039E000BD01B093BE011F910F910C94C9181092A4 +:1039F000B7011092B8011092B9011092BA010C945B +:103A0000C91841E050E060E070E004C0440F551F69 +:103A1000661F771F8A95D2F74093B7015093B8017C +:103A20006093B9017093BA010C94C91841E050E059 +:103A300060E070E004C0440F551F661F771F8A9531 +:103A4000D2F78091B7019091B801A091B901B091DE +:103A5000BA01482B592B6A2B7B2B4093B70150930B +:103A6000B8016093B9017093BA010C94C91841E090 +:103A700050E060E070E004C0440F551F661F771FE0 +:103A80008A95D2F740955095609570958091B701D1 +:103A90009091B801A091B901B091BA01482359237E +:103AA0006A237B234093B7015093B8016093B90117 +:103AB0007093BA010C94C91841E050E060E070E0E6 +:103AC00004C0440F551F661F771F8A95D2F7809157 +:103AD000B7019091B801A091B901B091BA014827FE +:103AE00059276A277B274093B7015093B801609309 +:103AF000B9017093BA010C94C9180F931F930091E8 +:103B0000B7011091B8012091B9013091BA01DC01DF +:103B1000CB01802B912BA22BB32B8093B7019093D9 +:103B2000B801A093B901B093BA011F910F910C9401 +:103B3000C9180F931F930091B7011091B8012091FC +:103B4000B9013091BA01DC01CB0180239123A2237A +:103B5000B3238093B7019093B801A093B901B093B8 +:103B6000BA011F910F910C94C9180F931F930091E4 +:103B7000B7011091B8012091B9013091BA01DC016F +:103B8000CB0180279127A227B3278093B701909379 +:103B9000B801A093B901B093BA011F910F910C9491 +:103BA000C9180895CF92DF92EF92FF920F931F935F +:103BB000CF93DF938C01C090BB01D090BC01E0900B +:103BC000BD01F090BE018091B7019091B801A09124 +:103BD000B901B091BA01C82AD92AEA2AFB2ACFE151 +:103BE000D0E0D701C6010C2E04C0B695A7959795D5 +:103BF00087950A94D2F780FF06C0B8018C2F0E94E7 +:103C0000740A019721F4219760F780E001C08C2F9E +:103C1000DF91CF911F910F91FF90EF90DF90CF90A8 +:103C20000895CF93DF93EC010E94D21DBE010E9444 +:103C3000740ADF91CF910895CB010E94111E08955F +:103C40008091BF0185958595859508958091BF01E7 +:103C50008770089598E0899F90011124262B209366 +:103C6000BF010C94161D2091BF0180958223809383 +:103C7000BF01982F977069F430E0482F552747FD12 +:103C800050952417350729F08595859585950C94D1 +:103C9000371D08959091BF01977081E009F480E08D +:103CA000089590910B01992321F090910C019111AD +:103CB00009C020910D0130910E01F90132969FEF5C +:103CC00040E030C0982F9695969596959F30A0F439 +:103CD000E0910D01F0910E01E90FF11D877021E0D7 +:103CE00030E0A90102C0440F551F8A95E2F7CA01CE +:103CF0009181892B818308959091D40190FF23C0F5 +:103D00001F928F9387E995E09F938F930E94D0062F +:103D10000F900F900F900F9008959F3F39F04F5FD5 +:103D20004E3041F051915813F8CF0DC05111F7CFDB +:103D3000942FF5CF9F3F39F0F901E90FF11D97FD61 +:103D4000FA9582830895089590910B01992321F0AB +:103D500090910C01911109C020910D0130910E013B +:103D6000F9013296205F3F4F30C0982F9695969577 +:103D700096959F30A8F4E0910D01F0910E01E90FA6 +:103D8000F11D877021E030E0A90102C0440F551FEA +:103D90008A95E2F7CA0180959181892381830895EC +:103DA0009091D40190FF16C01F928F9389E795E000 +:103DB0009F938F930E94D0060F900F900F900F90BB +:103DC00008953196E217F30729F090819813F9CFFF +:103DD0001082F7CF089581E090E0E0910D01F0911D +:103DE0000E01E80FF91F1082019680319105A9F7A5 +:103DF00008958091D30108959091D301892B8093E8 +:103E0000D301089580959091D30189238093D301A4 +:103E100008951092D30108959091D201892B809337 +:103E2000D201089580959091D20189238093D20187 +:103E300008951092D20108959091D101892B809319 +:103E4000D101089580959091D10189238093D1016A +:103E500008951092D10108958093C00108951092A1 +:103E6000C001089580910D0190910E01FC013196E1 +:103E70009C01205F3F4F80E0919191118F5FE2178D +:103E8000F307D1F70895E0910D01F0910E018091B3 +:103E9000D3018083E0910D01F0910E01908180911A +:103EA000D201892B8083E0910D01F0910E01908168 +:103EB0008091D101892B80838091C001882361F09A +:103EC000E0910D01F0910E019081892B80830E9479 +:103ED000321F81111092C00180910D0190910E014D +:103EE0000C94DC139093370180933601089520E001 +:103EF000009739F0AC0141505109842395232F5F7D +:103F0000F7CF822F08958295982F9C7C392F369574 +:103F10003695282F237344E0249FC0011124932F4A +:103F2000982B292F2A7A2695892F8575880F822B21 +:103F300008951F93CF93DF931F92CDB7DEB7998378 +:103F40000E94831F182F9981892F0E94831F212F80 +:103F500030E0322F2227A901482BCA010F90DF91B0 +:103F6000CF911F9108958091DF01843039F1109233 +:103F7000D50120E488E190E00FB6F894A8958093ED +:103F800060000FBE2093600080E00E94E40680E0A5 +:103F90000E94110B83B7817F846083BF83B78160E8 +:103FA00083BF7894889583B78E7F83BF88E10FB6EF +:103FB000F89480936000109260000FBE08950895F9 +:103FC000089580E00E94E4060E94DF1F0E946C0BAF +:103FD0000E94E01F0E941F0C91E0811101C090E03F +:103FE000892F08950E94D91880E00E94E4060E945B +:103FF0009B250E94D0130C94110B1F920F920FB6A9 +:104000000F9211248F939F93AF93BF938091D5010B +:10401000811113C08091D6019091D701A091D80150 +:10402000B091D9014196A11DB11D8093D601909305 +:10403000D701A093D801B093D901BF91AF919F91BF +:104040008F910F900FBE0F901F90189582E084BD46 +:1040500093E095BD9AEF97BD80936E0008952FB7BA +:10406000F8948091D6019091D701A091D801B09198 +:10407000D9012FBF0895CF92DF92EF92FF920F9355 +:104080001F932FB7F8944091D6015091D7016091BA +:10409000D8017091D9012FBF6A017B01EE24FF2462 +:1040A0008C0120E030E0C016D106E206F30610F4E1 +:1040B000415051099A01281B390BC9011F910F91D9 +:1040C000FF90EF90DF90CF9008951F920F920FB660 +:1040D0000F9211248F939F93AF93BF938091D6013A +:1040E0009091D701A091D801B091D9010196A11D5D +:1040F000B11D8093D6019093D701A093D801B093BE +:10410000D901BF91AF919F918F910F900FBE0F90EA +:104110001F9018950E94CE10F8942FEF87EA91E631 +:10412000215080409040E1F700C0000087E090EB14 +:10413000DC018093EA019093EB01A093EC01B09332 +:10414000ED019CE088E10FB6F894A895809360009B +:104150000FBE90936000FFCFEF92FF920F931F93DB +:10416000CF93DF93D82FC9E08C2F0E94E70B07E095 +:1041700010E0E82EF12CC701002E02C0959587951E +:104180000A94E2F780FF09C0602F7C2F80E00E9434 +:10419000ED07D81302C081E006C00150110958F79D +:1041A000C15010F780E0DF91CF911F910F91FF90E8 +:1041B000EF900895CF93C82F8CE20E94AC20882303 +:1041C00021F08C2FCF910C94AC2080E0CF910895FA +:1041D000CF930E943C22811102C00E941D228CEBD1 +:1041E00095E00E943706C5E6C15049F00E946C0B6D +:1041F0008FE39CE90197F1F700C00000F5CF85EB54 +:1042000095E00E94370689E20E94DA20811113C1ED +:104210008AE20E94DA2081110E941D2285E00E941C +:10422000DA2081110E948A200E9447228093D401C3 +:1042300087E00E94DA208823A9F18BE10E94DA202E +:10424000882351F08091D40181FB222720F991E04D +:10425000922790FB81F90EC08EE00E94DA2088231D +:1042600061F08091D40182FB222720F991E092270E +:1042700090FB82F98093D40115C080E10E94DA207E +:104280009091D401882341F093FB222720F981E00B +:10429000822780FB93F904C0892F809580FB90F9D9 +:1042A0009093D4018091D4010E944B220E94592204 +:1042B0008093E80180EE0E94DA20882341F080910B +:1042C000E801982F909590FB80F98093E80189E3AD +:1042D0000E94DA20882359F08091E80181FB22278F +:1042E00020F991E0922790FB81F98093E80182EE1A +:1042F0000E94DA20882359F08091E80182FB22276E +:1043000020F991E0922790FB82F98093E80186EEF4 +:104310000E94DA20882359F08091E80183FB22274C +:1043200020F991E0922790FB83F98093E80183EED6 +:104330000E94DA20882359F08091E80184FB22272B +:1043400020F991E0922790FB84F98093E80185E3BE +:104350000E94DA20882359F08091E80185FB22270A +:1043600020F991E0922790FB85F98093E80181E3A1 +:104370000E94DA20882359F08091E80186FB2227E9 +:1043800020F991E0922790FB86F98093E80181E182 +:104390000E94DA20882359F08091E80187FB2227C8 +:1043A00020F991E0922790FB87F98093E8018091B2 +:1043B000E8010E945D228091E80187FB882780F94F +:1043C00080930C0187E20E94DA20C82F8EE10E94C0 +:1043D000DA208111C2608FE10E94DA208111C4606D +:1043E00080E20E94DA208111C86081E20E94DA2016 +:1043F0008111C06182E20E94DA208111C06283E2F1 +:104400000E94DA208111C06484E20E94DA208823AD +:1044100011F0C06802C0CC2329F08C2F0E945422D6 +:104420006C2F03C00E945022682F70E080E090E063 +:10443000CF910C94991CCF9108956DEE7EEF80E0A2 +:1044400090E00E94AA2660E082E090E00E94982618 +:1044500060E083E090E00E94982660E084E090E0D5 +:104460000E94982660E085E090E00E94982660E037 +:1044700086E090E00C94982680E090E00E949226DE +:1044800021E08D3E9E4F09F020E0822F089582E0CA +:1044900090E00C948A26682F82E090E00C94982695 +:1044A00083E090E00C948A26682F83E090E00C94DF +:1044B000982684E090E00C948A26682F84E090E0AF +:1044C0000C94982686E090E00C948A26682F86E06B +:1044D00090E00C949826CF93C82F1F928F9387ED6E +:1044E00095E09F938F930E94D00681E090E0A0E03A +:1044F000B0E0BC01CD0104C0660F771F881F991F73 +:10450000CA95D2F70E94991C0F900F900F900F90B0 +:10451000CF910C94D918CF938B3109F40FC208F0C6 +:1045200049C08E3009F41EC200F5873009F4E7C196 +:10453000A8F4863009F0A4C28091D401817F8E7FD7 +:104540008093D40185E797E00E94370681E69BE0DF +:104550000E94370681E08093DA01CFC1883009F4E8 +:104560005BC08B3009F4C5C18BC2813109F470C2C4 +:1045700020F4803109F40AC283C2863109F421C2D1 +:10458000893109F07DC286E697E00E9437068BE309 +:1045900097E00E94370689EE96E00E9437068CEB82 +:1045A00096E00E94370680E896E00E94370685E58F +:1045B00096E0A1C1853309F45FC268F4873209F43B +:1045C0005BC228F48E3108F45BC28D5156C2893229 +:1045D00009F452C255C2833438F48A3308F04AC20F +:1045E000883309F486C14CC2833409F445C2883447 +:1045F00009F046C20E94D91885E49BE00E94370664 +:104600009FEF23ED80E3915020408040E1F700C010 +:1046100000000E948A2071C185E69BE00E94370657 +:1046200082EB9AE00E9437060E9450221F928F93DD +:104630008FEA9AE09F938F930E94D0068DEA9AE0CA +:104640000E9437060E944722C82F8AE99AE00E94FA +:1046500037061F92CF9385E99AE09F938F930E942C +:10466000D00683E99AE00E94370689E89AE00E9422 +:1046700037068C2F81701F928F9386E89AE09F9364 +:104680008F930E94D00684E89AE00E9437068AE75A +:104690009AE00E943706C1FB882780F91F928F930A +:1046A00087E79AE09F938F930E94D00685E79AE070 +:1046B0000E94370689E69AE00E943706C2FB8827E7 +:1046C00080F91F928F9386E69AE09F938F930E94C2 +:1046D000D00684E69AE00E9437068BE59AE00E94B5 +:1046E0003706C3FBCC27C0F91F92CF9388E59AE029 +:1046F0009F938F930E94D00686E59AE00E9437062A +:104700000E945922C82F82E49AE00E9437061F9225 +:10471000CF938DE39AE09F938F930E94D0068BE313 +:104720009AE00E94370682E29AE00E9437068C2FB8 +:1047300081701F928F938FE19AE09F938F930E94D5 +:10474000D0068DB79EB780960FB6F8949EBF0FBE69 +:104750008DBF8DE19AE00E94370686E09AE00E94C4 +:104760003706C1FB882780F91F928F9383E09AE078 +:104770009F938F930E94D00681E09AE00E943706B3 +:104780008FEE99E00E943706C2FB882780F91F92BE +:104790008F938CEE99E09F938F930E94D0068AEEC0 +:1047A00099E00E94370688ED99E00E943706C3FB26 +:1047B000882780F91F928F9385ED99E09F938F93BF +:1047C0000E94D00683ED99E00E94370689EC99E0BB +:1047D0000E943706C4FB882780F91F928F9386ECCE +:1047E00099E09F938F930E94D00684EC99E00E94F9 +:1047F000370682EB99E00E943706C5FB882780F9CF +:104800001F928F938FEA99E09F938F930E94D00617 +:104810008DEA99E00E94370681E999E00E94370607 +:10482000C6FB882780F91F928F938EE899E09F93AB +:104830008F930E94D0068CE899E00E94370684E8A6 +:1048400099E00E943706C7FBCC27C0F91F92CF938F +:1048500081E899E09F938F930E94D0068FE799E0BB +:104860000E9437060E946222C82F88E699E00E94C3 +:1048700037061F92CF9383E699E09F938F930E9410 +:10488000D0068DB79EB780960FB6F8949EBF0FBE28 +:104890008DBF81E699E00E94370687E599E00E9486 +:1048A00037068C2F81701F928F9384E599E09F9338 +:1048B0008F930E94D00682E599E00E94370689E432 +:1048C00099E00E943706C6951F92CF9386E499E03F +:1048D0009F938F930E94D00684E499E00E9437064C +:1048E0008DB79EB708960FB6F8949EBF0FBE8DBFCA +:1048F00004C080E997E00E943706C1E0C6C08091FD +:10490000D401C82FC095C170C0FB80F98093D40139 +:10491000CC2349F089E39BE00E9437068091D401C3 +:104920008660886048C08CE29BE00E9437068091D8 +:10493000D401897F877F8093D401DFCF9091D40108 +:1049400091FBCC27C0F981E0C827892FC0FB81F9F2 +:104950008093D401CC2319F08FE19BE027C081E143 +:104960009BE0C9CF9091D40192FBCC27C0F981E0A4 +:10497000C827892FC0FB82F98093D401CC2319F07A +:1049800082E09BE013C082EF9AE0B5CF9091D40112 +:1049900093FBCC27C0F981E0C827892FC0FB83F99E +:1049A0008093D401CC2351F086EE9AE00E94370622 +:1049B0008091D40181608093D40167C089ED9AE031 +:1049C0009ACF87E496E00E9437060E94D0131F9288 +:1049D0008F938DE296E09F938F930E94D0068091F3 +:1049E0000B011F928F9386E196E09F938F930E9415 +:1049F000D00680916D011F928F9383E096E09F9384 +:104A00008F930E94D00680910C011F928F9380EFAC +:104A100095E09F938F930E94D0068091D60190914C +:104A2000D701A091D801B091D901BF93AF939F93C3 +:104A30008F938CED95E09F938F930E94D0068DB756 +:104A40009EB746960FB6F8949EBF0FBE8DBF55CF4A +:104A50000E94D918C0910C0181E0C827C0930C01B5 +:104A6000CC2329F08FEC9AE00E9437060EC084EC2C +:104A70009AE041CF895301C080E00E946B223DCF74 +:104A800082EC9AE00E943706C0E08C2FCF91089507 +:104A900080E0089580E00895CF93C82F8091DA01D7 +:104AA000882319F0813049F03EC0E0910D01F0916A +:104AB0000E0180818232C9F507C0E0910D01F091AD +:104AC0000E018081823261F48C2F0E944825811171 +:104AD00004C08C2F0E948B2224C081E090E021C072 +:104AE0008C2F0E944A2581111BC0C43189F018F413 +:104AF000CB3029F010C0C93259F0C83361F485E7D2 +:104B000097E00E94370683ED95E00E94370608C0C3 +:104B10001092DA010CC081ED95E00E94370607C0C3 +:104B200081E0817006C01092DA0180E002C080E06E +:104B3000F8CFCF9108950E943C22811102C00E94BB +:104B40001D220E9462228093E90180FF02C08695A7 +:104B500001C080E00C94E4068091E901982F9695BD +:104B600039F48170826081608093E9010E9466223D +:104B70008091D40180FF0FC08091E90186951F923A +:104B80008F9382EB9BE09F938F930E94D0060F90B0 +:104B90000F900F900F908091E90186950C94E40698 +:104BA0008091E901982F969591F09158990F817015 +:104BB000892B8093E9018E7F91E009F490E0809148 +:104BC000E90190FB80F98093E9010E9466228091BF +:104BD000D40180FF0FC08091E90186951F928F93C9 +:104BE0008AE99BE09F938F930E94D0060F900F90CD +:104BF0000F900F908091E90186950C94E4068091C6 +:104C0000E901982F909590FB80F98093E9010E942B +:104C100066228091D40180FF0FC08091E9018170EC +:104C20001F928F9384E89BE09F938F930E94D006FE +:104C30000F900F900F900F908091E90180FF02C0BC +:104C4000869501C080E00C94E4069091E901892FDB +:104C500086958F5F8F779170823028F4880F892B2B +:104C60008093E90102C09093E9018091E9018E7F70 +:104C700091E009F490E08091E90190FB80F9809344 +:104C8000E9010E9466228091D40180FF0FC08091CB +:104C9000E90186951F928F9380E79BE09F938F9306 +:104CA0000E94D0060F900F900F900F908091E90115 +:104CB00086950C94E4062091E901922F9695892718 +:104CC000982F990F822F8170892B8093E9018E7F15 +:104CD00091E009F490E08091E90190FB80F98093E4 +:104CE000E9010E9466228091E90186950C94E40610 +:104CF000991B79E004C0991F961708F0961B881F2E +:104D00007A95C9F780950895EE0FFF1F0590F491ED +:104D1000E02D0994F999FECF92BD81BDF89A9927AB +:104D200080B50895A8E1B0E042E050E00C94B226CE +:104D3000262FF999FECF92BD81BDF89A019700B454 +:104D4000021639F01FBA20BD0FB6F894FA9AF99AF4 +:104D50000FBE08950196272F0E9499260C9498263D +:104D6000DC01CB01FC01F999FECF06C0F2BDE1BD2B +:104D7000F89A319600B40D9241505040B8F708951A +:044D8000F894FFCFD5 +:104D8400FF350C040D380CD00C9C0C0101C1010F33 +:104D94001F4F5F6F7F6C1323766663530333593958 +:104DA400293F3620390705D104B104780404041DD1 +:064DB40004360456040061 +:00000001FF diff --git a/keyboards/clueboard2/keymaps/skully/keymap.c b/keyboards/clueboard2/keymaps/skully/keymap.c new file mode 100644 index 000000000..74a03f2f3 --- /dev/null +++ b/keyboards/clueboard2/keymaps/skully/keymap.c @@ -0,0 +1,108 @@ +#include "clueboard2.h" + +// Used for SHIFT_ESC +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _FL 1 +#define _RS 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: (Base Layer) Default Layer + * ,--------------------------------------------------------------------------. ,----. + * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| BS| |PGUP| + * |--------------------------------------------------------------------------| |----| + * | Tab| Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |PGDN| + * |--------------------------------------------------------------------------| `----' + * |Capslck| A| S| D| F| G| H| J| K| L| ;| '| # | Ent| + * |-----------------------------------------------------------------------------. + * |Shift| BS| Z| X| C| V| B| N| M| ,| .| /| BS|Shift| UP| + * |------------------------------------------------------------------------|----|----. + * | Ctrl| Gui| Alt| MHen| Space| Space| Hen| Alt| Ctrl| _FL|LEFT|DOWN|RGHT| + * `----------------------------------------------------------------------------------' + */ +[_BL] = KEYMAP( + F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PGUP, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, \ + KC_LCTL,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, \ + KC_LSFT,KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, \ + KC_LCTL,KC_LALT,KC_LGUI,MO(_FL), KC_SPC, KC_SPC, MO(_FL), KC_RGUI, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT), + + /* Keymap _FL: Function Layer + * ,--------------------------------------------------------------------------. ,----. + * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9| F10| F11| F12| | Del| |BLIN| + * |--------------------------------------------------------------------------| |----| + * | | | | | | | | |PScr|SLck|Paus| | | | |BLDE| + * |--------------------------------------------------------------------------| `----' + * | | | _RS| | | | | | | | | | | | + * |-----------------------------------------------------------------------------. + * | | | | | | | | | | | | | | |PGUP| + * |------------------------------------------------------------------------|----|----. + * | | | | | | | | | | _FL|HOME|PGDN| END| + * `----------------------------------------------------------------------------------' + */ +[_FL] = KEYMAP( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,KC_DEL, BL_STEP, \ + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PSCR,KC_SLCK,KC_PAUS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, \ + KC_TRNS,KC_TRNS,MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \ + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_PGUP, \ + KC_TRNS,KC_TRNS,KC_TRNS,MO(_FL), KC_TRNS,KC_TRNS, MO(_FL),KC_TRNS,KC_TRNS,MO(_FL),KC_HOME,KC_PGDN,KC_END), + + /* Keymap _RS: Reset layer + * ,--------------------------------------------------------------------------. ,----. + * | | | | | | | | | | | | | | | | | | + * |--------------------------------------------------------------------------| |----| + * | | | | |RESET| | | | | | | | | | | | + * |--------------------------------------------------------------------------| `----' + * | | | _RS| | | | | | | | | | | | + * |-----------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |------------------------------------------------------------------------|----|----. + * | | | | | | | | | | _FL| | | | + * `----------------------------------------------------------------------------------' + */ +[_RS] = 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,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, \ + KC_TRNS,KC_TRNS,MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \ + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, \ + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,MO(_FL),KC_TRNS, KC_TRNS, KC_TRNS), +}; + +enum function_id { + SHIFT_ESC, +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(SHIFT_ESC), +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + static uint8_t shift_esc_shift_mask; + switch (id) { + case SHIFT_ESC: + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + } +} diff --git a/keyboards/clueboard2/led.c b/keyboards/clueboard2/led.c new file mode 100644 index 000000000..3d074e5d2 --- /dev/null +++ b/keyboards/clueboard2/led.c @@ -0,0 +1,36 @@ + /* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include +#include "stdint.h" +#include "led.h" + + +void led_init_ports() { + // * Set our LED pins as output + DDRB |= (1<<4); +} + +void led_set_kb(uint8_t usb_led) { + if (usb_led & (1< +#include "backlight.h" +#include "led.h" + +#include "print.h" + +int pwm_level; + +void led_set_kb(uint8_t usb_led) +{ + print("led_set\n"); +} + +void init_backlight_pin(void) +{ + // Set C7 to output + DDRC |= (1<<7); + + // Initialize the timer + TC4H = 0x03; + OCR4C = 0xFF; + TCCR4A = 0b10000010; + TCCR4B = 0b00000001; +} + +void backlight_set(uint8_t level) +{ + // Determine the PWM level + switch (level) + { + case 0: + // 33% + pwm_level = 0x54; + break; + case 1: + // 66% + pwm_level = 0xA8; + break; + case 2: + // 100% + pwm_level = 0xFF; + break; + case 3: + // 0% + pwm_level = 0x00; + break; + default: + xprintf("Unknown level: %d\n", level); + } + + // Write the PWM level to the timer + TC4H = pwm_level >> 8; + OCR4A = 0xFF & pwm_level; +} diff --git a/keyboards/cluepad/cluepad.c b/keyboards/cluepad/cluepad.c new file mode 100644 index 000000000..a4dbd6fdc --- /dev/null +++ b/keyboards/cluepad/cluepad.c @@ -0,0 +1,35 @@ +#include "cluepad.h" + +__attribute__ ((weak)) +void matrix_init_user(void) { + // leave these blank +}; + +__attribute__ ((weak)) +void matrix_scan_user(void) { + // leave these blank +}; + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + if (matrix_init_user) { + (*matrix_init_user)(); + } + + #ifdef BACKLIGHT_ENABLE + init_backlight_pin(); + #endif + + // JTAG disable for PORT F. write JTD bit twice within four cycles. + MCUCR |= (1< + + +/* Cluepad matrix layout + * .-------------------. + * |NLCK| /| *| -| + * |-------------------| + * | 7| 8| 9| | + * |--------------| | + * | 4| 5| 6| +| + * |-------------------| + * | 1| 2| 3| | + * |--------------| | + * | 0| .| Ent| + * '-------------------' + */ +// The first section contains all of the arguments +// The second converts the arguments into a two-dimensional array +#define KEYMAP( \ + k00, k01, k02, k03, \ + k10, k11, k12, k13, \ + k20, k21, k22, \ + k30, k31, k32, k33, \ + k40, k42 \ +) { \ + { k00, k01, k02, k03, }, \ + { k10, k11, k12, k13, }, \ + { k20, k21, k22, KC_NO, }, \ + { k30, k31, k32, k33, }, \ + { k40, KC_NO, k42, KC_NO } \ +} + +void matrix_init_user(void); +void matrix_scan_user(void); + +#endif diff --git a/keyboards/cluepad/config.h b/keyboards/cluepad/config.h new file mode 100644 index 000000000..0955e0f70 --- /dev/null +++ b/keyboards/cluepad/config.h @@ -0,0 +1,101 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xC1ED +#define PRODUCT_ID 0x2312 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Clueboard +#define PRODUCT Cluepad with RGB Underlighting +#define DESCRIPTION QMK keyboard firmware for Cluepad + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 4 + +// ROWS: Top to bottom, COLS: Left to right +/* Row pin configuration +* row: 0 1 2 3 4 +* pin: +*/ +#define MATRIX_ROW_PINS { B0, D3, D5, D4, D6 } +/* Column pin configuration + * col: 0 1 2 3 + * pin: F4 E6 B1 D2 + */ +#define MATRIX_COL_PINS { F4, E6, B1, D2 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Number of backlighting levels */ +#define BACKLIGHT_LEVELS 3 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* Underlight configuration + */ + #define ws2812_PORTREG PORTF + #define ws2812_DDRREG DDRF + #define ws2812_pin 6 + #define RGBLED_NUM 4 // Number of LEDs + #define RGBLIGHT_HUE_STEP 10 + #define RGBLIGHT_SAT_STEP 17 + #define RGBLIGHT_VAL_STEP 17 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* Debug forcibly enabled */ +#define ALWAYS_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/cluepad/keymaps/default/compiled.hex b/keyboards/cluepad/keymaps/default/compiled.hex new file mode 100644 index 000000000..7a045783a --- /dev/null +++ b/keyboards/cluepad/keymaps/default/compiled.hex @@ -0,0 +1,1123 @@ +:100000000C9453020C9497020C9497020C94970250 +:100010000C9497020C9497020C9497020C949702FC +:100020000C9497020C9497020C94C6110C9498129D +:100030000C948B1F0C9497020C9497020C949702CB +:100040000C9497020C9497020C9497020C949702CC +:100050000C9497020C94F31F0C9497020C94970243 +:100060000C9497020C9497020C9497020C949702AC +:100070000C9497020C9497020C9497020C9497029C +:100080000C942E0D0C9497020C9497020C949702EA +:100090000C9497020C9497020C9497020C9497027C +:1000A0000C9497020C9497020C949702F1020D03A2 +:1000B000F502F902FD0201030503090305132713E5 +:1000C0001514271315146C138F131514E413F71359 +:1000D000A916A916D816D8166218621862186218DE +:1000E00017176218C717C7172E18371862185C1829 +:1000F000D417D417D417D417D417D417D417D417A8 +:10010000D417D417D417D417D417D417D417D41797 +:10011000E417F217F91700180A1800F001F002F0BE +:1001200003F004F005F006F007F0534154005500C9 +:1001300056005F006000610057005C005D005E00DB +:10014000000059005A005B00580062000000630084 +:1001500000005341010001000020010004200100C3 +:10016000062003208350022000000100052001002A +:1001700007200120000001000000643214643214E2 +:10018000783C1E1E140A0500000000010101020255 +:10019000030405050607090A0B0C0E0F11121415AE +:1001A00017191B1D1F212325282A2C2F31343639DE +:1001B0003B3E414346494C4F5255585A5D61646736 +:1001C0006A6D707376797C7F8386898C8F9295981F +:1001D0009B9EA2A5A7AAADB0B3B6B9BCBEC1C4C60A +:1001E000C9CBCED0D3D5D7DADCDEE0E2E4E6E8EA6C +:1001F000EBEDEEF0F1F3F4F5F6F8F9FAFAFBFCFDAD +:10020000FDFEFEFEFFFFFFFFFFFFFFFEFEFEFDFD0A +:10021000FCFBFAFAF9F8F6F5F4F3F1F0EEEDEBEA9F +:10022000E8E6E4E2E0DEDCDAD7D5D3D0CECBC9C64F +:10023000C4C1BEBCB9B6B3B0ADAAA7A5A29E9B98D7 +:1002400095928F8C898683807C797673706D6A67CE +:1002500064615D5A5855524F4C494643413E3B39C3 +:100260003634312F2C2A282523211F1D1B19171541 +:100270001412110F0E0C0B0A0907060505040302E0 +:10028000020101010000000001010202020202025B +:10029000030303030303030303030303030304042C +:1002A0000404040404040404040405050505050508 +:1002B00005050505060606060606060607070707DE +:1002C0000707070808080808080909090909090AA9 +:1002D0000A0A0A0A0B0B0B0B0B0C0C0C0C0C0D0D69 +:1002E0000D0D0E0E0E0E0F0F0F101010101111111C +:1002F00012121213131314141415151616161717B9 +:1003000018181919191A1A1B1B1C1C1D1D1E1E1F3B +:10031000202021212223232424252626272828299A +:100320002A2B2B2C2D2E2F303031323334353637CB +:1003300038393A3B3C3D3E3F4041424445464749BF +:100340004A4B4C4E4F5152535556585A5B5D5E6066 +:1003500062636567696B6D6E70727476797B7D7FA1 +:10036000818486888B8D909295979A9D9FA2A5A84F +:10037000ABAEB1B4B7BABEC1C4C8CBCFD3D6DADE48 +:10038000E2E6EAEEF2F8FF3E0343006C007500651A +:10039000007000610064002000770069007400684C +:1003A000002000520047004200200055006E00640B +:1003B00000650072006C00690067006800740069E5 +:1003C000006E0067000000140343006C00750065B8 +:1003D0000062006F00610072006400000004030905 +:1003E0000409023B00020100A0FA09040000010315 +:1003F000010100092111010001223F0007058103CD +:1004000008000A090401000103000000092111018C +:1004100000012239000705820310000112011001BA +:1004200000000008EDC112230100010200010501D6 +:100430000906A101050719E029E71500250195081E +:1004400075018102050819012905950575019102BB +:1004500095017503910105071900297715002501FC +:10046000957875018102C005010906A101050719EA +:10047000E029E715002501950875018102950175B0 +:100480000881010508190129059505750191029555 +:1004900001750391010507190029FF150025FF9536 +:1004A0000675088100C011241FBECFEFDAE0DEBF61 +:1004B000CDBF04B603FE24C08091E1019091E2011A +:1004C000A091E301B091E4018730904BA740B04B7D +:1004D000B9F41092E1011092E2011092E30110923E +:1004E000E40114BE84B7877F84BF88E10FB6F89417 +:1004F00080936000109260000FBEE0E0F8E3099581 +:1005000011E0A0E0B1E0E0E0F6E402C005900D9259 +:10051000AA31B107D9F711E0AAE1B1E001C01D92FB +:10052000A13EB107E1F70E940D0F0C94FE220C943E +:10053000000008953F9A83E08093BF008FEF80937F +:10054000D10082E88093C00081E08093C1000895CB +:10055000813069F048F0823089F0833091F4109254 +:10056000BD011092BC010DC084E590E002C088EA94 +:1005700090E09093BD018093BC0103C08FEF90E0A9 +:10058000F8CF8091BD018093BF008091BC01809322 +:10059000CF000895089508958AEC92E0892B11F018 +:1005A0000E94CA020E949A020E94A50A85B780682A +:1005B00085BF85B7806885BF08958BEC92E0892B55 +:1005C00011F00C94CB020895462F50E048305105AD +:1005D00038F5FA01EA5AFF4FDC0112968C910C941F +:1005E000B0228823E9F00C94E20A8823C9F00C9425 +:1005F000A4098823A9F00C94BC09882389F00C94E1 +:10060000DB09882369F00C94F609882349F00C94DF +:10061000100A882329F00C942B0A81110C94D80A13 +:10062000089581E0089581E008950C9413030895DE +:100630000F931F93CF93DF938C01FC01C081D18175 +:10064000CE010E94BA1DBE010E94C703EC01B80191 +:100650000E941503882309F48DC0F8018281882344 +:1006600009F44AC08091250181111FC0C431F0E511 +:10067000DF0709F051C00E94170381E08093250134 +:100680000E94BD1F909324018093230110921C01AE +:1006900010921E0110921D011092200110921F0154 +:1006A000109222011092210165C080912301909146 +:1006B00024010E94C91F883C910570F480911C019F +:1006C000E82FF0E0EE0FFF1FE35EFE4FD183C08303 +:1006D0008F5F80931C014EC0C43880E5D80721F09D +:1006E000C538D04501F13AC0F8018281882341F034 +:1006F00010921A0182E01EC0C438E0E5DE0759F509 +:1007000080911A01811106C086E20E94581586E286 +:100710000E94151682E01CC0C438F0E5DF0741F3E3 +:10072000C538D045D9F4F8018281882331F0109280 +:100730001B0180E20E9464161DC080911B01811183 +:1007400006C087E20E94581587E20E94151680E2D3 +:100750000E946B160FC0C538D04529F381E0809305 +:100760001A0180931B01C801DF91CF911F910F9156 +:100770000C94110380E0DF91CF911F910F910895A8 +:100780000C94CC020C94DD0280E090E00895E72FF9 +:10079000F0E095E0899FE00DF11D1124EE0FFF1FA1 +:1007A000EE0FFF1FE60FF11DEE0FFF1FE65DFE4F80 +:1007B000859194910895880F991FFC01E656F040A9 +:1007C000859194910895880F991FFC01E65EFE4F74 +:1007D0008591949108950F931F93CF93DF93EC012C +:1007E000811521E39207A0F5C11580E3D80708F031 +:1007F000D7C0C83ED105D8F4C03ED10508F003C229 +:10080000C83AD10578F4C53AD10508F06AC0C130BC +:10081000D10509F463C008F4F3C1C430D10508F070 +:10082000F2C1EEC1CB3BD10508F466C0E9C1C115E8 +:1008300090E2D90708F0AFC0C11521E0D20708F057 +:10084000E2C1C03FD10508F4DBC18E0110651BC2B7 +:10085000C03880E5D80700F5C03790E5D90708F023 +:10086000A3C0C11520E5D20709F4ACC050F4CE01F5 +:10087000905480319F4008F0C3C1DF708E01106A30 +:1008800002C2C13080E5D80709F4AAC0C43190E59E +:10089000D90708F4ABC0B4C1C33820E5D20709F4C6 +:1008A0008EC050F4C13890E5D90709F482C008F031 +:1008B00083C000E011EDE7C1C03181E5D80708F43D +:1008C0009FC1C11597E5D90708F432C1CE019057F1 +:1008D0008115904108F094C1DF708FC101E010E0F4 +:1008E000D2C1C53AD10509F490C1C63AD10509F083 +:1008F0008FC102E810E4C7C1C83AD10509F48BC121 +:10090000C93AD10509F48AC1CA3AD10509F489C1A5 +:10091000CB3AD10509F488C1CC3AD10509F487C195 +:10092000CD3AD10509F486C1C03BD10509F485C192 +:10093000CE3AD10509F484C1CF3AD10509F483C177 +:10094000C13BD10509F482C1C23BD10509F481C183 +:10095000C33BD10509F480C1C43BD10509F47FC173 +:10096000C53BD10509F47EC1C63BD10509F47DC163 +:10097000C73BD10509F47CC1C83BD10509F47BC153 +:10098000C93BD10509F47AC1CA3BD10509F479C143 +:1009900000E014E478C1CE019F700E94E30374C1AB +:1009A000DD278E01106C6FC1CF70DD278E01146DB5 +:1009B0006AC100E010ED67C100E012ED64C100E023 +:1009C00013ED61C10E94C1188FEF94E32CE08150B8 +:1009D00090402040E1F700C000000E94182053C161 +:1009E0008091B60181608093B6014DC10E94C22101 +:1009F000811102C00E94A3210E94DF2190E0909308 +:100A0000E0018093DF01C23080E5D80721F48091B6 +:100A1000DF01816086C0C43090E5D90721F4809160 +:100A2000DF0182607EC0C63020E5D20721F48091CC +:100A3000DF01846076C0C83080E5D80719F4809162 +:100A4000DF0127C0CA3090E5D90721F48091DF018A +:100A5000806167C0CC3020E5D20721F48091DF01AE +:100A600080625FC0CE3080E5D80721F48091DF013D +:100A7000806457C0C03190E5D90721F48091DF012F +:100A800080684FC0C23120E5D20729F48091DF0190 +:100A90008460886046C0C33080E5D80721F4809127 +:100AA000DF018E7F3EC0C53090E5D90721F48091EB +:100AB000DF018D7F36C0C73020E5D20721F4809159 +:100AC000DF018B7F2EC0C93080E5D80719F48091F3 +:100AD000DF0126C0CB3090E5D90721F48091DF01FA +:100AE0008F7E1FC0CD3020E5D20721F48091DF0139 +:100AF0008F7D17C0CF3080E5D80721F48091DF01CA +:100B00008F7B0FC0C13190E5D90721F48091DF01BF +:100B10008F7707C0C331D04531F48091DF018B7FDF +:100B2000877F8093DF018091DF010E94E321ABC0CA +:100B30008D2F99278F70992781309105D9F49E01C7 +:100B40002370332702C0880F991F2A95E2F79C680B +:100B50008E0144E0000F111F4A95E1F70027137042 +:100B6000802B912B53E0CC0FDD1F5A95E1F7C07617 +:100B7000DD272FC08230910531F4DC2FCC278E0188 +:100B8000016F106A80C08330910569F4CE018370D3 +:100B9000992701E010E002C0000F111F8A95E2F7CB +:100BA000C8019C680FC084309105B9F4CE018370F0 +:100BB000992701E010E002C0000F111F8A95E2F7AB +:100BC000C8019A6823E0CC0FDD1F2A95E1F7C07EAB +:100BD000D7708C010C2B1D2B56C08530910531F43C +:100BE000DC2FCC278E01046F106A4DC0069709F0E8 +:100BF0004AC0CF71DD27DC2FCC278E01106243C0A5 +:100C000000E010E040C08E013EC001E810E43BC0AF +:100C100003E810E438C002EE14E435C009EE14E431 +:100C200032C00AEE14E42FC005EB14E42CC006EB2E +:100C300014E429C007EB14E426C00CEC14E423C030 +:100C40000DEC14E420C003E815E41DC00AE815E427 +:100C50001AC002E915E417C004E915E414C001E262 +:100C600016E411C003E216E40EC004E216E40BC061 +:100C700005E216E408C006E216E405C007E216E441 +:100C800002C00AE216E4C801DF91CF911F910F91D3 +:100C90000895E72FF0E095E0899FE00DF11D112404 +:100CA000EE0FFF1FEE0FFF1FE60FF11DEE0FFF1FF0 +:100CB000E65DFE4F85919491803E9105E0F4803C85 +:100CC000910558F58133910509F46FC048F48932D4 +:100CD000910509F463C08A32910509F46DC072C0B0 +:100CE00089339105E9F082389105D1F0853391057A +:100CF00009F44DC067C0833E910581F138F4803E10 +:100D00009105B9F0823E9105D9F05CC0863E91050F +:100D100061F1873E9105A1F155C00E94DB03089562 +:100D20002091DF0120FD02C021FF4CC080EE90E049 +:100D300049C08091DF0180FFF9CF89E390E042C094 +:100D40008091DF0182FF0EC08091DF0184FF03C02C +:100D500080E090E037C083EE90E034C08091DF0106 +:100D600082FFF2CF82EE90E02DC08091DF0183FF01 +:100D70000BC08091DF0184FDEBCF87EE90E022C0B5 +:100D80008091DF0183FFF5CF86EE90E01BC080915C +:100D9000DF0185FF07C089E290E014C08091DF0188 +:100DA00085FFF9CF85E390E00DC08091DF0186FFDC +:100DB00007C08AE290E006C08091DF0186FFF9CF8C +:100DC00081E390E00E94EB0308950C949902E82FD0 +:100DD000F0E0EC5EFE4F8081E82FEF70F0E082954E +:100DE0008F7021E030E0A90102C0440F551F8A95A1 +:100DF000E2F740A308950F931F93CF93DF9385B736 +:100E0000806885BF85B7806885BFC4E0D0E001E019 +:100E100010E0FE01EC5EFE4F8081E82FEF70F0E005 +:100E200021A182958F70A80102C0440F551F8A9599 +:100E3000E2F7CA01822B81A38C2F0E94E70621973B +:100E400040F783E090E061E070E0FC01E05FFE4F7E +:100E50002081E22FEF70F0E042A122952F70DB019C +:100E600002C0AA0FBB1F2A95E2F79D01242B22A3E3 +:100E7000019758F7DF91CF911F910F910C94C00308 +:100E8000EF92FF920F931F93CF93DF930BE211E04A +:100E9000C4E0EE24E394F12CD5E08C2F0E94E70609 +:100EA00083E090E040E0FC01E05FFE4F5081E52FE1 +:100EB000EF70F0E020A130E052955F7002C03595F0 +:100EC00027955A95E2F720FD07C09701082E01C02B +:100ED000220F0A94EAF7422B019728F7F801829132 +:100EE0008F01841719F04083D09300018C2F0E944A +:100EF000E706C15090F68091000187FD1CC081502B +:100F0000809300018F3F39F08FE99FE00197F1F75F +:100F100000C0000010C080E090E0FC01E55DFE4FE5 +:100F2000DC01AA5DBE4F14962C91248301978B3F60 +:100F3000EFEF9E0791F70E94C20381E0DF91CF910E +:100F40001F910F91FF90EF900895E82FF0E0E55D7D +:100F5000FE4F8081089508950F931F93CF9300E370 +:100F600011E0C0E0F80182918F0190E00E94351FEE +:100F7000C80FF1E00B321F07A9F78C2FCF911F91FB +:100F80000F91089521B3342F3095232331B3432B90 +:100F90003FB7F894FC01680F791FE617F70789F04F +:100FA000819198E041BB000000C087FF21BB880F02 +:100FB000000000C000C000C021BB00C09A9591F79E +:100FC000ECCF3FBF089520B3242B20BB9B01220F01 +:100FD000331F620F731F0E94C20787EC90E00197D6 +:100FE000F1F700C00000089540E40C94E307AF92CD +:100FF000BF92CF92DF92EF92FF920F931F93CF9306 +:10100000DF936C01790150E0FA01E957FD4F4491FB +:101010008FEF90E0FC01E61BF109E957FD4FE491E9 +:10102000E09509F495C0C42FD0E08E1B91098C9FE8 +:1010300090018D9F300D9C9F300D1124E32F8CE388 +:10104000A82EB12CC601B5010E948822DC016230B5 +:10105000710509F446C0D0F46115710599F161304C +:10106000710509F079C0C31BD109B501681B790B63 +:10107000C69FC001C79F900DD69F900D1124B5014A +:101080000E948822032F060F142F67C06430710559 +:1010900009F44BC0B8F16530710509F05DC0C31BA0 +:1010A000D109B501681B790BC69FC001C79F900D80 +:1010B000D69F900D1124B5010E948822132FE32F93 +:1010C000E60F44C0C31BD109CC9DC001CD9D900D3E +:1010D000DC9D900D1124B5010E948822132F160F5C +:1010E00035C0C31BD109CA9FC001CB9F900DDA9FA9 +:1010F000900D1124B5010E948822142F032FE32F95 +:10110000E60F2BC0C31BD109B501681B790BC69F25 +:10111000C001C79F900DD69F900D1124B5010E946C +:101120008822132F160F032F0FC0C31BD109CA9F8C +:10113000C001CB9F900DDA9F900D1124B5010E9444 +:101140008822032F060F132FE42F07C0042F05C09A +:10115000E42F142F042F01C0E0E0D70111960C9367 +:1011600011971C931296EC93DF91CF911F910F91E1 +:10117000FF90EF90DF90CF90BF90AF90089587E001 +:1011800090E00C94BE22AB01BC0187E090E00C948F +:10119000DC22EEEBF1E083E08083AFEBB1E08C91F9 +:1011A000807884668F778C938CEC828383836091C4 +:1011B000BE017091BF018091C0019091C1010C945A +:1011C000C3088091BE0180FF06C064E070E086EC39 +:1011D00091E00C94F40780E090E0FC01EA53FE4FAC +:1011E00011821082128203968C309105B1F7EDCFF7 +:1011F00020E030E0F901EA53FE4F818360834283AF +:101200002D5F3F4F2C303105A9F70C94E108EF9288 +:10121000FF920F931F93CF93DF9300D01F92CDB710 +:10122000DEB70091BE011091BF012091C001309145 +:10123000C1010093C2011093C3012093C4013093F4 +:10124000C5012091BE0120FF21C0042FF62EE92EFA +:10125000182F9E012F5F3F4F0E94F7078091C20118 +:1012600010FB87F98093C20116958091C3018078A5 +:10127000182BE0FA17F91093C301F092C401009300 +:10128000C5014B8169818A810E94F8080F900F90F7 +:101290000F90DF91CF911F910F91FF90EF900895E4 +:1012A0000F931F93CF93DF93EC01062F142F909190 +:1012B000BE0190FF44C0892F8E77823021F4CE0189 +:1012C0000E9407091BC0892F86958F732EE3280F74 +:1012D0002F73243018F41091C10110C0865C8F73F5 +:1012E000893060F4C92FCC1FCC27CC1FD091BF010F +:1012F0008D2F880FC82BD7FBDD27D0F98091BE0139 +:10130000C0FB87F98093BE01C6958091BF018078AC +:10131000C82BD0FBC7F9C093BF010093C001109345 +:10132000C1016091BE017091BF018091C001909197 +:10133000C101DF91CF911F910F910C94C308DF91F0 +:10134000CF911F910F910895EEEBF1E02081221FC4 +:101350002227221F3091BF01432F440F842F822B5D +:1013600037FB992790F90A9668E671E00E949C2263 +:10137000438162810C9450092091BE01221F2227D3 +:10138000221F3091BF01432F440F842F822B37FB44 +:10139000992790F98A3091051CF4825A9E4F01C01A +:1013A0000A9768E671E00E949C224091C101609119 +:1013B000C0010C9450096091C001862F90E08F3ECF +:1013C000910514F46F5E01C06FEF8091BE01881F1C +:1013D0008827881F9091BF01292F220F97FB9927FB +:1013E00090F94091C101822B0C9450096091C00189 +:1013F000862F90E0419714F0615101C060E0809128 +:10140000BE01881F8827881F9091BF01292F220FB6 +:1014100097FB992790F94091C101822B0C945009B8 +:101420004091C101842F90E08F3E910514F44F5EEE +:1014300001C04FEF8091BE01881F8827881F9091BF +:10144000BF01292F220F97FB992790F96091C001C6 +:10145000822B0C9450094091C101842F90E0419758 +:1014600014F0415101C040E08091BE01881F8827DF +:10147000881F9091BF01292F220F97FB992790F980 +:101480006091C001822B0C9450098091410181111F +:101490000FC081E08093410189E0809391008FB774 +:1014A000F89493E09093990090ED909398008FBFFB +:1014B0000895E1E7F0E08081826080830895E1E7AC +:1014C000F0E080818D7F808308959091BE0190FF30 +:1014D0003BC09178811102C0926007C0883110F042 +:1014E0009E6203C08F73880F982B9093BE0160910A +:1014F000BE017091BF018091C0019091C1010E9415 +:10150000C3088091BE01982F9E77923019F40E94F3 +:101510005F0A07C08695825C8F73863110F40E9443 +:10152000590A8091BE01881F8827881F9091BF01AA +:10153000292F220F97FB992790F94091C1016091C3 +:10154000C001822B0C94500908958091B6018160EE +:101550008093B60181E0809342010E94C2218111F3 +:1015600004C00E94A3210E94C9080E94BF08609382 +:10157000BE017093BF018093C0019093C1016E774B +:1015800061F40E94C9080E94BF086093BE01709375 +:10159000BF018093C0019093C1010E94450A8091D0 +:1015A000BE0180FF04C086958F730C94650A089570 +:1015B0008091BE0186958F738F5F883108F081E03E +:1015C0000C94650A8091BE01982F909590FB80F94C +:1015D0008093BE016091BE017091BF018091C001F6 +:1015E0009091C1010E94C3088091BE0180FF04C098 +:1015F00086958F730C94650A0E945F0A2FEF80E72F +:1016000092E0215080409040E1F700C000000C942F +:10161000E108CF93C82F80913F01909140010E9433 +:10162000C91FEC2FF0E0ED57FE4FE491F0E08E176C +:101630009F0718F10E94BD1F9093400180933F01C6 +:10164000E0913E01F0E0E957FE4F44918091BE01E8 +:10165000881F8827881F9091BF01292F220F97FB91 +:10166000992790F96091C001822B0E94070980910F +:101670003E0190E0019680933E01CF910895CF9373 +:10168000C82F80913C0190913D010E94C91FEC2F11 +:10169000F0E0E058FE4FE491F0E08E179F07E8F08D +:1016A0000E94BD1F90933D0180933C014091C10178 +:1016B0006091C00180913A0190913B010E9407091D +:1016C00080913A0190913B01019668E671E00E9499 +:1016D000882290933B0180933A01CF910895CF9255 +:1016E000DF92FF920F931F93CF93DF93F82E809199 +:1016F0003801909139010E94C91FEF2DE695F0E065 +:10170000E058FE4FE491F0E08E179F07F0F10E9441 +:10171000BD1F909339018093380106EC11E0C0E0C1 +:10172000D0E088E6C82EDD24D394809136019091D4 +:1017300037018C0F9D1FB6010E94882298014091AD +:10174000C1016091C0010E94F707C65ADF4F0D5FCB +:101750001F4FC83681E0D80741F70E94E108209169 +:10176000360130913701F0FE0AC0C9010196BE0171 +:101770000E948822909337018093360106C0215041 +:1017800031093093370120933601DF91CF911F91BA +:101790000F91FF90DF90CF9008958F929F92AF921C +:1017A000BF92CF92DF92EF92FF920F931F93CF934E +:1017B000DF93C82F80FF03C0DD24DA9402C0DD244C +:1017C000D39480913401909135010E94C91FC69530 +:1017D000EC2FF0E0E358FE4FE491F0E08E179F0706 +:1017E00008F466C00E94BD1F9093350180933401B8 +:1017F00096ECE92E91E0F92E08EC11E0C0E0D0E083 +:1018000027E0822E912CF80131971082F701108287 +:10181000F801108287E0A82EB12CC12C80913301F1 +:101820008C0D87FD8C5F992787FD9095C817D90788 +:10183000E9F42091C1012A9DC0012B9D900D112436 +:10184000B4010E949C22462F8091BE01881F8827E8 +:10185000881F9091BF01592F550F97FB992790F939 +:1018600097016091C001852B0E94F707CD0CF1E034 +:10187000AF1AB10899F6219683E0E80EF11C0D5FCE +:101880001F4FC430D10509F0BECF0E94E1088091FE +:10189000330191E0D91206C0811102C083E006C075 +:1018A000815004C090E001968370992780933301A2 +:1018B000DF91CF911F910F91FF90EF90DF90CF902C +:1018C000BF90AF909F908F9008959F92AF92BF92DC +:1018D000CF92DF92EF92FF920F931F93CF93DF93FC +:1018E000CDB7DEB72C970FB6F894DEBF0FBECDBFD5 +:1018F000182F80913101909132010E94C91FE12F70 +:10190000F0E0E658FE4FE491F0E08E179F0708F4F0 +:1019100093C00E94BD1F9093320180933101CE018C +:1019200001967C015E0193E0A90EB11CC12CD12C63 +:101930008701F50131971082F7011082F5011082BD +:10194000912C9091010180913001999E800D11247C +:1019500087FD04C084301CF083E001C080E099273B +:1019600087FD9095C816D906A1F48091BE01881F05 +:101970008827881F9091BF01592F550F97FB9927F2 +:1019800090F997014091C1016091C001852B0E949F +:10199000F7079394F7E09F12D4CF8FEFC81AD80AB5 +:1019A00093E0E90EF11CE3E0AE0EB11CF4E0CF16BB +:1019B000D10409F0BECFA8ECB1E089E090E0FC01D1 +:1019C000E370FF279D0121503109AF01440F551FDE +:1019D000E40FF51FBF01600F711FFB014181F90189 +:1019E000408321503109FB014081F9014083FB0113 +:1019F00022812C93019613968D30910501F70E9458 +:101A0000E1089091010180913001913049F48A3FC1 +:101A10002CF489EF809330018FEF08C081500AC009 +:101A20008B303CF08AE08093300181E080930101AB +:101A300003C08F5F809330012C960FB6F894DEBF01 +:101A40000FBECDBFDF91CF911F910F91FF90EF900F +:101A5000DF90CF90BF90AF909F9008951F920F920C +:101A60000FB60F9211242F933F934F935F936F9371 +:101A70007F938F939F93AF93BF93EF93FF93809147 +:101A8000BE0186958F739EE3980F9F73943020F468 +:101A900082500E94090B23C09AE3980F9F739330E2 +:101AA00020F486500E943F0B1AC097E3980F9F7353 +:101AB000963020F489500E946F0B11C091E3980F6B +:101AC0009F73963020F48F500E94CD0B08C09BE28C +:101AD000980F9F73933018F485510E94650CFF9105 +:101AE000EF91BF91AF919F918F917F916F915F9196 +:101AF0004F913F912F910F900FBE0F901F9018950F +:101B00008091530108950895CF93DF9300D01F92E1 +:101B1000CDB7DEB72091D601243021F523E029830B +:101B20009B838A8381E08093E9008FEF9091E800A6 +:101B3000815095FD06C095ED9A95F1F70000811151 +:101B4000F5CF8091E80085FF0DC040E050E063E0F4 +:101B500070E0CE0101960E94B60F8091E8008E776A +:101B60008093E8000F900F900F90DF91CF91089530 +:101B7000CF93DF9300D01F92CDB7DEB72091D6016F +:101B8000243021F522E029839B838A8381E080939E +:101B9000E9008FEF9091E800815095FD06C095ED2A +:101BA0009A95F1F700008111F5CF8091E80085FF4B +:101BB0000DC040E050E063E070E0CE0101960E946D +:101BC000B60F8091E8008E778093E8000F900F9019 +:101BD0000F90DF91CF910895CF93DF932091D6019D +:101BE000243009F048C0EC0180910C018823E1F019 +:101BF00080910D018823C1F082E08093E9008FEF8E +:101C00009091E800815095FD06C095E19A95F1F715 +:101C100000008111F5CF8091E80085FF2CC040E0E5 +:101C200050E060E170E017C081E08093E9008FEF41 +:101C30009091E800815095FD06C095ED9A95F1F7D9 +:101C400000008111F5CF8091E80085FF14C040E0CD +:101C500050E068E070E0CE010E94B60F8091E8008D +:101C60008E778093E80080E1FE01A3E4B1E001906B +:101C70000D928A95E1F7DF91CF9108958091D5017A +:101C8000811109C00E944B110E94A8118091E200AD +:101C900084608093E20008951092D501089508951C +:101CA00008950C94801F42E061EC81E00E94C51011 +:101CB00042E161EC82E00C94C5108091D801833040 +:101CC00009F453C030F4813071F0823009F48CC0D3 +:101CD00008958A3009F478C08B3009F45EC08930E9 +:101CE00009F09AC020C08091D701813A09F094C0D0 +:101CF0008091E800877F8093E8008091DB019091DC +:101D0000DC01892B21F460E183E491E003C060E011 +:101D100080E090E070E00E9401108091E8008B77F5 +:101D20008093E80008958091D701813209F074C052 +:101D30008091DB019091DC01029708F06DC08091E9 +:101D4000E800877F8093E8008091E80082FD05C06D +:101D50008091D6018111F8CF5FC08091F10080930E +:101D600053018091E8008B7753C08091D701813A6D +:101D700009F052C08091DB019091DC01892B09F0C0 +:101D80004BC08091E800877F8093E8008091E80055 +:101D900080FFFCCF80910C0136C08091D701813249 +:101DA000D9F58091DB019091DC01892BA9F5809117 +:101DB000E800877F8093E8000E94FA108091D901A3 +:101DC00080930C010C94C1188091D701813221F5C8 +:101DD0008091E800877F8093E8000E94FA1080914C +:101DE000DA018093540108958091D701813AA1F4DA +:101DF0008091E800877F8093E8008091E80080FF71 +:101E0000FCCF809154018093F1008091E8008E779F +:101E10008093E8000C94FA10089584B7877F84BFFC +:101E200088E10FB6F89480936000109260000FBEB6 +:101E300090E080E80FB6F894809361009093610081 +:101E40000FBE0E9492140E944B110E94A811809113 +:101E5000E20084608093E20078940E942E140E9435 +:101E6000941482E091E00E9449148091D60185305B +:101E700069F40E94411F8091D4018823B1F30E942C +:101E80006F1F882391F30E94A00FEFCF0E949C1434 +:101E9000ECCF292F332723303105C9F064F42130EA +:101EA000310581F02230310509F042C08BE390E02A +:101EB00021EE33E041C021323105F1F0223231050B +:101EC00049F136C082E190E02CE134E035C0992739 +:101ED0008130910541F08230910541F0892B41F527 +:101EE000EDEDF3E005C0E7ECF3E002C0E7E8F3E076 +:101EF000849190E09F0120C0662339F06130C1F4E5 +:101F000089E090E02CE034E017C089E090E023EF16 +:101F100033E012C0662339F0613051F489E390E078 +:101F20002EE234E009C08FE390E027E634E004C0FD +:101F300080E090E020E030E0FA01318320830895D2 +:101F400080E189BD82E189BD09B400FEFDCF8091A9 +:101F5000D8008F7D8093D8008091E00082608093CC +:101F6000E0008091E00081FDFCCF0895CF92DF92E8 +:101F7000EF92FF920F931F93CF93DF93EC018B01AE +:101F80006A010E941911811133C0C114D10439F0C2 +:101F9000F60180819181081B190BC80FD91FE12C14 +:101FA000F12C0115110519F18091E80085FD16C08D +:101FB0008091E8008E778093E800C114D10449F045 +:101FC000F60180819181E80EF91EF182E08285E0C0 +:101FD0000FC00E941911882321F30AC089918093B0 +:101FE000F10001501109FFEFEF1AFF0ADACF80E08C +:101FF000DF91CF911F910F91FF90EF90DF90CF90E5 +:1020000008952091DD013091DE012617370748F051 +:102010006115710539F42091E8002E772093E800CE +:1020200001C0B90140E061157105A9F12091D60107 +:10203000222309F443C0253009F442C02091E8006E +:1020400023FD40C02091E80022FD32C02091E8002D +:1020500020FFE9CF4091F3002091F20030E0342BD3 +:10206000FC01CF016115710559F02830310540F4AC +:1020700081918093F100615071092F5F3F4FF1CF43 +:1020800041E02830310509F040E02091E8002E774A +:102090002093E800C8CF4111C9CF0AC08091D60172 +:1020A000882361F0853061F08091E80083FD0AC0EB +:1020B0008091E80082FFF2CF80E0089582E00895E9 +:1020C00083E0089581E008952091DD013091DE01E3 +:1020D0002617370748F06115710539F42091E8009B +:1020E0002E772093E80001C0B901FC0120E06115C2 +:1020F000710591F18091D601882309F440C08530A3 +:1021000009F43FC08091E80083FD3DC08091E80064 +:1021100082FD2FC08091E80080FFE9CF2091F3007D +:102120008091F20090E0922B6115710559F0883092 +:10213000910540F424912093F1003196615071098A +:102140000196F2CF21E0089709F020E08091E800A5 +:102150008E778093E800CBCF2111CCCF0AC080913D +:10216000D601882361F0853061F08091E80083FD1D +:102170000AC08091E80082FFF2CF80E0089582E0FB +:10218000089583E0089581E00895982F973058F5D9 +:102190009093E900981739F07091EC002091ED00D0 +:1021A0005091F00003C0242F762F50E021FF19C07A +:1021B0003091EB003E7F3093EB003091ED003D7F9E +:1021C0003093ED003091EB0031603093EB00709371 +:1021D000EC002093ED005093F0002091EE0027FFDB +:1021E00007C09F5FD3CF8F708093E90081E008958F +:1021F00080E008958091D70187FF11C08091E800A9 +:1022000082FD05C08091D6018111F8CF11C0809167 +:10221000E8008B770BC08091D601882349F080912C +:10222000E80080FFF8CF8091E8008E778093E80087 +:1022300008952091E4003091E50095E64091EC008E +:10224000842F817040FF22C08091E80080FD1CC077 +:102250008091D601882391F0853091F08091EB0038 +:1022600085FD10C04091E4005091E50042175307EE +:1022700029F39A01915011F784E0089582E00895BE +:1022800083E0089581E0089580E008954091E8009A +:1022900042FFDECF08950E94B9110E94C111E0EE05 +:1022A000F0E0808181608083E8EDF0E080818F77CD +:1022B000808319BCA7EDB0E08C918E7F8C938081D8 +:1022C0008F7E80831092D50108950F931F93CF9333 +:1022D000DF930E94B9110E94C111C8EDD0E088813E +:1022E0008F77888388818068888388818F7D8883C1 +:1022F00019BC1092D6011092D2011092D401109202 +:10230000D30100EE10E0F80180818B7F808388810B +:102310008160888342E060E080E00E94C510E1EEC9 +:10232000F0E080818E7F8083E2EEF0E0808181604A +:102330008083808188608083F80180818E7F8083A4 +:10234000888180618883DF91CF911F910F910895DB +:10235000E8EDF0E080818F7E8083E7EDF0E0808122 +:102360008160808384E082BF81E08093D5010C94FA +:102370006511E8EDF0E080818E7F80831092E200AD +:1023800008951092DA001092E10008951F920F92C2 +:102390000FB60F9211242F933F934F935F936F9338 +:1023A0007F938F939F93AF93BF93EF93FF9380910E +:1023B000E10082FF0BC08091E20082FF07C08091A4 +:1023C000E1008B7F8093E1000E942D148091DA0060 +:1023D00080FF1FC08091D80080FF1BC08091DA0071 +:1023E0008E7F8093DA008091D90080FF0DC080E15C +:1023F00089BD82E189BD09B400FEFDCF81E08093F3 +:10240000D6010E943E0E05C019BC1092D6010E9452 +:102410004C0E8091E10080FF19C08091E20080FFA6 +:1024200015C08091E2008E7F8093E2008091E200EF +:1024300080618093E2008091D80080628093D80010 +:1024400019BC85E08093D6010E94500E8091E10076 +:1024500084FF30C08091E20084FF2CC080E189BD00 +:1024600082E189BD09B400FEFDCF8091D8008F7D47 +:102470008093D8008091E1008F7E8093E10080916D +:10248000E2008F7E8093E2008091E2008160809381 +:10249000E2008091D201882311F084E007C080918E +:1024A000E30087FD02C081E001C083E08093D60194 +:1024B0000E94510E8091E10083FF29C08091E200CB +:1024C00083FF25C08091E100877F8093E10082E057 +:1024D0008093D6011092D2018091E1008E7F80938B +:1024E000E1008091E2008E7F8093E2008091E20023 +:1024F00080618093E20042E060E080E00E94C510CD +:102500008091F00088608093F0000E944F0EFF9150 +:10251000EF91BF91AF919F918F917F916F915F915B +:102520004F913F912F910F900FBE0F901F901895D4 +:102530001F920F920FB60F9211242F933F934F9338 +:102540005F936F937F938F939F93AF93BF93CF933B +:10255000DF93EF93FF93C091E900CF708091EC007F +:10256000D82FD17080FDD0E81092E9008091F00062 +:10257000877F8093F00078940E94DC121092E9002B +:102580008091F00088608093F000CD2BCF70C093D5 +:10259000E900FF91EF91DF91CF91BF91AF919F91B2 +:1025A0008F917F916F915F914F913F912F910F90FC +:1025B0000FBE0F901F9018951F93CF93DF93CDB749 +:1025C000DEB7AA970FB6F894DEBF0FBECDBFE7ED1A +:1025D000F1E088E08E0F9091F10091938E13FBCF84 +:1025E0000E945D0E8091E80083FF1FC18091D7019A +:1025F0009091D801492F50E04A30510508F015C19B +:10260000FA01E25AFF4F0C94B022803881F08238F0 +:1026100009F00BC18091DB018F708093E9008091FC +:10262000EB0085FB882780F91092E90006C08091B5 +:10263000D3019091D401911182609091E800977F2D +:102640009093E8008093F1001092F100C8C0282F09 +:102650002D7F09F0EAC0882319F0823061F0E5C0CF +:102660008091D901813009F0E0C0933009F080E019 +:102670008093D4012BC08091D901811127C0809112 +:10268000DB018F7009F4D1C08093E9002091EB0049 +:1026900020FF1CC0933021F48091EB00806214C0B5 +:1026A0009091EB0090619093EB0021E030E0A90164 +:1026B00002C0440F551F8A95E2F74093EA0010923A +:1026C000EA008091EB0088608093EB001092E900B3 +:1026D0008091E800877F86C08111A7C01091D90141 +:1026E0001F778091E3008078812B8093E3008091B5 +:1026F000E800877F8093E8000E94FA108091E8004C +:1027000080FFFCCF8091E30080688093E30011118B +:1027100002C082E001C083E08093D60186C0805869 +:10272000823008F082C08091D9019091DA018C3D0D +:1027300053E0950779F583E08A838AE289834FB76E +:10274000F894DE01139620E03EE051E2E32FF0E042 +:1027500050935700E49120FF03C0E295EF703F5F74 +:10276000EF708E2F90E0EA3010F0C79601C0C0964F +:102770008D939D932F5F243149F74FBF8091E800DF +:10278000877F8093E8006AE270E0CE0101960E94A4 +:10279000011014C0AE014F5F5F4F6091DB010E94DA +:1027A000490FBC01009709F440C09091E800977F61 +:1027B0009093E80089819A810E9464108091E800DA +:1027C0008B778093E80031C0803879F58091E800FC +:1027D000877F8093E8008091D2018093F1008091FF +:1027E000E8008E778093E8000E94FA101EC08111E5 +:1027F0001CC09091D9019230C0F48091E800877F8D +:102800008093E8009093D2010E94FA108091D20147 +:10281000811106C08091E30087FD02C081E001C004 +:1028200084E08093D6010E94530E8091E80083FFDC +:102830000AC08091E800877F8093E8008091EB00D8 +:1028400080628093EB00AA960FB6F894DEBF0FBEAD +:10285000CDBFDF91CF911F9108950895CF938091BF +:10286000D6018823A1F0C091E900CF709091EC00CF +:10287000892F817090FD80E8C82B1092E90080912B +:10288000E80083FD0E94DC12CF70C093E900CF9175 +:10289000089590935A01809359010895E091590148 +:1028A000F0915A01309721F00190F081E02D0994C8 +:1028B00080E00895E0915901F0915A01309721F09C +:1028C0000280F381E02D0994089520915701309101 +:1028D00058018217930771F0909358018093570124 +:1028E000E0915901F0915A01309721F00680F7816B +:1028F000E02D0994089520915501309156018217D9 +:10290000930771F09093560180935501E09159011E +:10291000F0915A01309721F00084F185E02D09945F +:10292000089508950C9491140E94B41F0E94FB0610 +:102930000E9476200C94F121CF92DF92EF92FF92C9 +:102940000F931F93CF93DF9300D000D000D0CDB76B +:10295000DEB70E94400784E0E82EF12C0E2D8E2D6C +:102960000E94A5079701245A3E4F6901F901108181 +:102970001827A9F4F1E0EF1AF10880F78FEF8983A7 +:102980008A831B820E94BD1F8160782F9D838C8368 +:1029900049815A816B818D810E942A1532C09091A4 +:1029A000B60191FF04C08E830E94AB078E8113FD98 +:1029B00009C012FD0AC011FD0BC010FFDBCF90E073 +:1029C00011E008C093E018E005C092E014E002C0F6 +:1029D00091E012E099830A83812391E009F490E069 +:1029E0009B830E94BD1F8160782F9D838C834981CA +:1029F0005A816B818D810E942A15F60180811827EA +:102A0000108310915B010E944E141817A1F00E94D0 +:102A10004E1480935B0126960FB6F894DEBF0FBE6E +:102A2000CDBFDF91CF911F910F91FF90EF90DF907D +:102A3000CF900C94E50626960FB6F894DEBF0FBE35 +:102A4000CDBFDF91CF911F910F91FF90EF90DF905D +:102A5000CF900895CF93DF93CDB7DEB72B970FB606 +:102A6000F894DEBF0FBECDBF4F83588769877A8742 +:102A70008B87DE01119686E0FD0111928A95E9F7B8 +:102A800085E0FE01379601900D928A95E1F7498124 +:102A90005A816B817C818D819E810E945F1B2B9668 +:102AA0000FB6F894DEBF0FBECDBFDF91CF91089572 +:102AB000882309F4B9C0823859F40E944E1481FD6C +:102AC000B3C089E30E94391E0E94061F89E30CC02F +:102AD000833871F40E944E1480FDA6C083E50E94E5 +:102AE000391E0E94061F83E50E947B1E0C94061F60 +:102AF000843859F40E944E1482FD96C087E40E94E7 +:102B0000391E0E94061F87E4EFCF9CEF980F913A81 +:102B100018F40E94391EEACF90E2980F983050F4D2 +:102B2000877091E001C0990F8A95EAF7892F0E947A +:102B3000BF1EDCCF9BE5980F933070F4853A29F0E7 +:102B4000863A31F083E890E005C081E890E002C069 +:102B500082E890E00C94651498E5980F933108F0A2 +:102B600063C0883A39F1893A41F18A3A49F18B3A9E +:102B700051F18C3A59F18D3A61F1803B69F18E3A0D +:102B800071F18F3A79F1813B81F1823B89F1833B8D +:102B900091F1843B99F1853BA1F1863BA9F1873BFB +:102BA000B1F1883BB9F1893BC1F18A3BC9F180E0C1 +:102BB00090E038C082EE90E035C089EE90E032C0FF +:102BC0008AEE90E02FC085EB90E02CC086EB90E081 +:102BD00029C087EB90E026C08CEC90E023C08DEC00 +:102BE00090E020C083E891E01DC08AE891E01AC01F +:102BF00082E991E017C084E991E014C081E292E09B +:102C000011C083E292E00EC084E292E00BC085E244 +:102C100092E008C086E292E005C087E292E002C03E +:102C20008AE292E00C947B140895882309F44BC047 +:102C3000823859F40E944E1481FF45C089E30E94F6 +:102C4000391E0E94061F89E30CC0833871F40E946C +:102C50004E1480FF38C083E50E94391E0E94061F73 +:102C600083E50E947B1E0C94061F843859F40E9451 +:102C70004E1482FF28C087E40E94391E0E94061F5E +:102C800087E4EFCF9CEF980F913A58F390E2980FBA +:102C9000983050F4877091E001C0990F8A95EAF757 +:102CA000892F0E94C51EDFCF9BE5980F933020F43B +:102CB00080E090E00C946514885A833120F480E021 +:102CC00090E00C947B140895882321F00E94BF1E8D +:102CD0000C94061F0895882321F00E94C51E0C94B1 +:102CE000061F08957F928F929F92AF92BF92CF92CC +:102CF000DF92EF92FF920F931F93CF93DF931F9278 +:102D0000CDB7DEB77C01C62E772EFC01058102957A +:102D10000F70128111110E94DC1E0E94321E882346 +:102D200079F0112369F080E28C0D883048F082E060 +:102D30000E941B1E0E94321E91E0D82ED92601C08F +:102D4000D12CE72DE295EF70F0E0E859FF4F0C949D +:102D5000B022872D807F072D0F70882311F00295F8 +:102D6000007F112389F0002309F46EC180E28C0DED +:102D7000883020F4802F0E94BF1E03C0802F0E9445 +:102D8000CF1E0E94061F60C18C2D0E9415160023C5 +:102D900009F498C180E28C0D883020F4802F0E94C5 +:102DA000C51E03C0802F0E94D51E0E94061F8AC127 +:102DB000872D807F972D9F70803211F4892F03C05B +:102DC000892F8295807FCC2021F0F1E0CF16A1F0F1 +:102DD0001DC0112339F0002319F1013009F50E94BB +:102DE000EF1E70C1002319F0013009F46BC1898313 +:102DF0000E94F21E8981E5C0112321F0063008F0FF +:102E000061C10EC0053008F05DC1DBC0112359F06F +:102E1000002331F0F701958190FF16C19F709583D3 +:102E20000E9464164FC1002309F4CBC013C1872D43 +:102E3000837009F052C0111145C18C2D8295869581 +:102E40008770880F880F9C2D9F70892E912CA12C44 +:102E5000B12C082E04C0880C991CAA1CBB1C0A9417 +:102E6000D2F7C4FE14C00FE010E020E030E0B9015A +:102E7000A80104C0440F551F661F771F8A95D2F71B +:102E8000CB01BA01609570958095909503C060E084 +:102E900070E0CB01272D26952695237030E0223057 +:102EA000310569F02330310589F0682979298A29AB +:102EB0009B292130310571F00E94A71C03C16829AC +:102EC00079298A299B290E94C31CFCC00E94A71C47 +:102ED000C501B4010E948B1CF5C0112319F0872D88 +:102EE000817001C08695882309F4ECC08C2D8295F1 +:102EF00086958770880F880F9C2D9F70892E912C46 +:102F0000A12CB12C082E04C0880C991CAA1CBB1C37 +:102F10000A94D2F7C4FE14C00FE010E020E030E0C5 +:102F2000B901A80104C0440F551F661F771F8A9579 +:102F3000D2F7CB01BA01609570958095909503C04A +:102F400060E070E0CB01272D269526952370422F57 +:102F500050E04230510569F04330510589F068294D +:102F600079298A299B294130510571F00E94811DE0 +:102F7000A9C0682979298A299B290E949D1DA2C080 +:102F80000E94811DC501B4010E94651D9BC08C2D4E +:102F900090E0FC01E05EF109E531F10508F050C078 +:102FA000E858FF4F0C94B0220C2D0F70872D8F71B5 +:102FB000112321F00E94FE1C802F32CF0E941F1D82 +:102FC000802F0E946B167EC0112341F0053008F05F +:102FD00079C0872D8F710E94441D74C0063008F09F +:102FE00071C0F7CF112339F0872D8F710E94FE1C1D +:102FF00069C01123C9F3872D8F710E941F1D62C004 +:10300000112329F0872D8F710E94E91C5BC00E945B +:10301000DF1C58C0112351F0172D1F71812F0E9402 +:10302000FE1C63E0812F0E94121E4CC081E00E94B2 +:103030001B1E023008F446C082E00E941B1E42C0E4 +:10304000112331F0002381F28C2D0E9458153AC0D3 +:10305000002389F28C2D0E94151634C0472D4F7025 +:103060006C2DC7010E94C4030E94031C2BC01111C8 +:1030700029C0472D4F7050E042305105B9F04CF453 +:103080004115510581F041305105E1F40E941922AA +:1030900019C04330510569F04430510599F48C2D25 +:1030A0000E946B220FC00E9402220CC00E94352297 +:1030B00009C00E94482206C0472D4F706C2DC701E1 +:1030C0000E94E402DD20F9F00E940E1E80FD1BC06C +:1030D000F70112820E94081E0E94FE1CC7010E9476 +:1030E00092180E94081E0F90DF91CF911F910F91AF +:1030F000FF90EF90DF90CF90BF90AF909F908F9018 +:103100007F900C941F1D0F90DF91CF911F910F9115 +:10311000FF90EF90DF90CF90BF90AF909F908F90F7 +:103120007F9008950F931F93CF93DF93EC018881D5 +:1031300099812B813C81232BB9F09F3F11F48F3F64 +:1031400099F0CE010E941803882371F0688179817B +:103150008A810E94041E8C010E94B91D0E94801C5D +:10316000B801CE010E947216DF91CF911F910F918D +:1031700008950E94DC1E0E94EC1E0E94B11E0C9459 +:10318000061F0E94CC1E0C94B9180E94F91D292F0D +:1031900022952F7030E02C3031054CF42A30310567 +:1031A0006CF42250310922303105A8F407C02C30CC +:1031B000310569F02F30310551F00DC0803F69F0C5 +:1031C00018F4803E40F409C0843F29F406C093FB04 +:1031D000882780F9089580E0089581E00895CF93CD +:1031E000DF9300D000D01F92CDB7DEB70F900F90C5 +:1031F0000F900F900F90DF91CF910895CF93DF93B1 +:1032000000D000D000D0CDB7DEB726960FB6F89428 +:10321000DEBF0FBECDBFDF91CF9108951F93CF9337 +:10322000DF93C091610116E080916201C81799F0A7 +:10323000D0E01C9FF0011D9FF00D1124ED59FE4FB1 +:103240004081518162817381848195810E94FE1841 +:103250002196C770E9CFDF91CF911F9108954091DA +:103260009301509194016091950170919601809124 +:103270009701909198010C94FE1880919801829585 +:103280008F7009F054C080919501882309F44FC0D4 +:1032900080916101A091620160919301709194010C +:1032A0004091960150919701B6E08A1709F43FC00A +:1032B00090E041155105C1F17F3F11F46F3FA1F13D +:1032C000B89FF001B99FF00D1124ED59FE4F2181F7 +:1032D00072132AC02081621327C02281211124C0C9 +:1032E000238134812417350710F421503109241B20 +:1032F000350B283C3105C0F4209198012F702061D6 +:103300002093980126E0289FF001299FF00D1124B9 +:10331000E859FE4F80818F708061808383E991E05E +:103320000E9492180C940E1901968770BECF0895D2 +:10333000CF92DF92EF92FF920F931F93CF93DF9381 +:10334000CDB7DEB762970FB6F894DEBF0FBECDBF24 +:103350008C0185E0F801DE011D9601900D928A95A1 +:10336000E1F7D8014C9111965C91119712966C91EE +:1033700012971396CD90DC90149730919301709131 +:1033800094018091960190919701009709F46BC187 +:103390007F3F19F43F3F09F466C1E0909501EE20AC +:1033A00009F4C0C020919801C816D90628F0F6018A +:1033B000E81BF90BCF0104C0809590958C0D9D1DE5 +:1033C000FF24F394883C910578F0F12C207F09F0DC +:1033D000C6C07C2DD98AC88A89890E94EF1883E9E2 +:1033E00091E00E949218B1C0822F807F09F046C000 +:1033F000751314C0341312C0611110C02F702061F6 +:10340000209398010E942F1983E991E00E9492185D +:1034100080919801D80115968C932EC0CD2819F172 +:103420005F3F11F44F3FF9F0F62E61111CC08091FF +:1034300061012091620136E0821709F45AC090E0E0 +:10344000389FF001399FF00D1124ED59FE4F718125 +:10345000571306C07081471303C07281711103C0F6 +:1034600001968770E9CFF62E662309F418C1809182 +:103470009801816080939801F12C11C1751308C0E7 +:10348000341306C0611104C080919801D801C3C0F3 +:103490004D875E878D859E856A8B0E94C5186A89D7 +:1034A0008823E1F16623D1F120919801822F829542 +:1034B0008F7090E0029774F0809193019091940145 +:1034C00098878F831986DB86CA862C87CE0107965C +:1034D0000E94921886E0F801A3E9B1E001900D92F4 +:1034E0008A95E1F70E943D190E942F19FF24F39459 +:1034F000D6C04D875E878D859E850E94F91D292F38 +:1035000022952F7030E0223031050CF0BCC09F7046 +:1035100009F0B6C0805E883008F4C1C0C8010E94BE +:103520009218E4CFC816D90608F453C0F601E81B78 +:10353000F90BCF01883C910508F450C0F12C7C2D8B +:10354000D98AC88A89890E94EF18E3E9F1E086E008 +:10355000DF011D928A95E9F70E942F19A0C075130B +:1035600014C0341312C0611110C080919801F80189 +:103570008583C8010E94921886E0E3E9F1E0DF014B +:103580001D928A95E9F7FE2C8AC04D875E878D854E +:103590009E856A8B0E94C5186A89882309F4BECF6C +:1035A000662309F4BBCF20919801822F82958F70FA +:1035B00090E002970CF48ECF80919301909194014A +:1035C0009A8389831B82DD82CC822E83CE01019671 +:1035D0007FCF809590958C0D9D1DACCFF62E6623E8 +:1035E00009F49CCF75132EC034132CC02091980180 +:1035F00020FD1FC0822F82958F70D9F0D8011596BB +:103600002C9315978F3049F08F5F982F9295907F6C +:10361000822F8F70892B15968C93C8010E94921867 +:1036200086E0F801A3E9B1E001900D928A95E1F7F7 +:1036300093CF86E0F801A3E9B1E001900D928A955D +:10364000E1F72DC04D875E878D859E850E94C51848 +:10365000811140CF80919801816080939801C801C9 +:103660000E9492181CC0662309F458CF4D875E87CC +:103670008D859E850E94C518882309F44FCF2ACFD7 +:10368000811148CF0CC0243031050CF047CF9F701A +:1036900009F440CFF8019581907F09F03BCF8F2D41 +:1036A00062960FB6F894DEBF0FBECDBFDF91CF910B +:1036B0001F910F91FF90EF90DF90CF9008951F938F +:1036C000CF93DF93CDB7DEB72C970FB6F894DEBF5C +:1036D0000FBECDBF4F83588769877A878B879C87BA +:1036E000CE0107960E949819882369F08F819885EA +:1036F0002A853B85232BF1F19F3F09F063C08F3F63 +:1037000009F060C037C086E0FE013796DE011196F1 +:1037100001900D928A95E1F76F817885EA85FB85A6 +:10372000309741F17F3F11F46F3F21F12091620109 +:1037300030E0C9010196877099274091610150E0FE +:103740008417950709F447C069837A83FD83EC8366 +:1037500096E0929FD001939FB00D1124AD59BE4FBA +:10376000FE01319601900D929A95E1F780936201E6 +:103770000E940E1916E080916101909162018917F3 +:10378000C1F1189FC00111248D599E4F0E949819B4 +:10379000882379F1E09161011E9FF0011124ED5918 +:1037A000FE4F4081518162817381848195810E94A5 +:1037B000FE188091610190E00196877099278093AF +:1037C0006101D9CF4F81588569857A858B859C8524 +:1037D0000E94FE18CFCF0E94C11810926201109271 +:1037E0006101E3E9F1E086E0DF011D928A95E9F7E6 +:1037F000C1CF2C960FB6F894DEBF0FBECDBFDF91C0 +:10380000CF911F910895EF92FF920F931F93CF9343 +:10381000DF938C01009709F46CC0F12CEE24E39443 +:10382000E8012196F8018491843740F4843008F04F +:1038300051C0813081F0823019F15BC0853709F4C5 +:1038400044C0A8F19CE7980F903708F052C08F77DA +:103850000E94151641C00E5F1F4FFE01C49180E209 +:103860008C0F883048F4C7708E2D01C0880FCA9520 +:10387000EAF70E94DF1E14C08C2F0E9458152DC03D +:103880000E5F1F4FFE01C49180E28C0F883058F408 +:10389000C7708E2D01C0880FCA95EAF70E94E51EF9 +:1038A0000E94061F1AC08C2F0E94151616C00E5FAC +:1038B0001F4FFE01C491CC2381F08FE99FE0019757 +:1038C000F1F700C00000C150F6CF0E5F1F4FFE01A0 +:1038D000F49003C00E9458158E018F2D882309F49F +:1038E0009FCFEFE9FFE03197F1F700C00000815072 +:1038F000F5CFDF91CF911F910F91FF90EF90089539 +:10390000089560939D0170939E0180939F01909311 +:10391000A0010C94B9180F931F9300919D01109171 +:103920009E0120919F013091A001DC01CB01802BF1 +:10393000912BA22BB32B80939D0190939E01A0937A +:103940009F01B093A0011F910F910C94B9180F9390 +:103950001F9300919D0110919E0120919F01309134 +:10396000A001DC01CB0180239123A223B323809308 +:103970009D0190939E01A0939F01B093A0011F9180 +:103980000F910C94B9180F931F9300919D01109102 +:103990009E0120919F013091A001DC01CB01802785 +:1039A0009127A227B32780939D0190939E01A09316 +:1039B0009F01B093A0011F910F910C94B918109220 +:1039C000990110929A0110929B0110929C010C9403 +:1039D000B91841E050E060E070E004C0440F551FAA +:1039E000661F771F8A95D2F74093990150939A01E9 +:1039F00060939B0170939C010C94B91841E050E0D6 +:103A000060E070E004C0440F551F661F771F8A9561 +:103A1000D2F78091990190919A01A0919B01B09168 +:103A20009C01482B592B6A2B7B2B40939901509377 +:103A30009A0160939B0170939C010C94B91841E02A +:103A400050E060E070E004C0440F551F661F771F10 +:103A50008A95D2F74095509560957095809199011F +:103A600090919A01A0919B01B0919C014823592308 +:103A70006A237B234093990150939A0160939B01A1 +:103A800070939C010C94B91841E050E060E070E044 +:103A900004C0440F551F661F771F8A95D2F7809187 +:103AA000990190919A01A0919B01B0919C014827A6 +:103AB00059276A277B274093990150939A01609375 +:103AC0009B0170939C010C94B9180F931F93009164 +:103AD000990110919A0120919B0130919C01DC0188 +:103AE000CB01802B912BA22BB32B80939901909328 +:103AF0009A01A0939B01B0939C011F910F910C948C +:103B0000B9180F931F930091990110919A01209178 +:103B10009B0130919C01DC01CB0180239123A223E6 +:103B2000B3238093990190939A01A0939B01B09342 +:103B30009C011F910F910C94B9180F931F93009142 +:103B4000990110919A0120919B0130919C01DC0117 +:103B5000CB0180279127A227B327809399019093C7 +:103B60009A01A0939B01B0939C011F910F910C941B +:103B7000B9180895CF92DF92EF92FF920F931F939F +:103B8000CF93DF938C01C0909D01D0909E01E09077 +:103B90009F01F090A0018091990190919A01A091CC +:103BA0009B01B0919C01C82AD92AEA2AFB2ACFE1BD +:103BB000D0E0D701C6010C2E04C0B695A795979505 +:103BC00087950A94D2F780FF06C0B8018C2F0E9417 +:103BD0004906019721F4219760F780E001C08C2FFE +:103BE000DF91CF911F910F91FF90EF90DF90CF90D9 +:103BF0000895CF93DF93EC010E94BA1DBE010E948D +:103C00004906DF91CF910895CB010E94F91D0895D7 +:103C10008091A10185958595859508958091A10153 +:103C20008770089598E0899F90011124262B209396 +:103C3000A1010C94FE1C2091A10180958223809308 +:103C4000A101982F977069F430E0482F552747FD60 +:103C500050952417350729F08595859585950C9401 +:103C60001F1D08959091A101977081E009F480E0F3 +:103C7000089590910C01992321F090910D019111DB +:103C800009C020910E0130910F01F90132969FEF8A +:103C900040E01FC0982F9695969596959F3050F5C9 +:103CA000E0910E01F0910F01E90FF11D877021E005 +:103CB00030E0A90102C0440F551F8A95E2F7CA01FE +:103CC0009181892B818308959F3F39F04F5F4E305A +:103CD00041F051915813F8CF0DC05111F7CF942FE7 +:103CE000F5CF9F3F39F0F901E90FF11D97FDFA95E6 +:103CF00082830895089590910C01992321F0909169 +:103D00000D01911109C020910E0130910F01F901AF +:103D10003296205F3F4F1FC0982F969596959695A7 +:103D20009F30F0F4E0910E01F0910F01E90FF11DC9 +:103D3000877021E030E0A90102C0440F551F8A9529 +:103D4000E2F7CA0180959181892381830895319694 +:103D5000E217F30729F090819813F9CF1082F7CF7B +:103D6000089581E090E0E0910E01F0910F01E80FDD +:103D7000F91F1082019680319105A9F7089590915D +:103D8000B501892B8093B501089580959091B50177 +:103D900089238093B50108951092B50108959091FB +:103DA000B401892B8093B401089580959091B4015A +:103DB00089238093B40108951092B40108959091DD +:103DC000B301892B8093B301089580959091B3013D +:103DD00089238093B30108951092B30108958093CD +:103DE000A20108951092A201089580910E01909170 +:103DF0000F01FC0131969C01205F3F4F80E09191C3 +:103E000091118F5FE217F307D1F70895E0910E014A +:103E1000F0910F018091B5018083E0910E01F09146 +:103E20000F0190818091B401892B8083E0910E0174 +:103E3000F0910F0190818091B301892B8083809153 +:103E4000A201882361F0E0910E01F0910F019081B1 +:103E5000892B80830E94F51E81111092A20180910E +:103E60000E0190910F010C945A1420E0009739F044 +:103E7000AC0141505109842395232F5FF7CF822F46 +:103E800008958091D601843039F11092B70120E471 +:103E900088E190E00FB6F894A895809360000FBE7B +:103EA0002093600080E00E94A80280E00E94E50666 +:103EB00083B7817F846083BF83B7816083BF789439 +:103EC000889583B78E7F83BF88E10FB6F89480937F +:103ED0006000109260000FBE08950895089580E07C +:103EE0000E94A8020E946D1F0E9440070E946E1F40 +:103EF0000E94AC0791E0811101C090E0892F0895E4 +:103F00000E94C11880E00E94A8020E94F1210E9434 +:103F10004E140C94E5061F920F920FB60F921124C7 +:103F20008F939F93AF93BF938091B701811113C07B +:103F30008091B8019091B901A091BA01B091BB01F3 +:103F40004196A11DB11D8093B8019093B901A09332 +:103F5000BA01B093BB01BF91AF919F918F910F9028 +:103F60000FBE0F901F90189582E084BD93E095BD21 +:103F70009AEF97BD80936E0008952FB7F8948091C3 +:103F8000B8019091B901A091BA01B091BB012FBFC6 +:103F90000895CF92DF92EF92FF920F931F932FB766 +:103FA000F8944091B8015091B9016091BA017091B3 +:103FB000BB012FBF6A017B01EE24FF248C0120E0AE +:103FC00030E0C016D106E206F30610F44150510964 +:103FD0009A01281B390BC9011F910F91FF90EF9097 +:103FE000DF90CF9008951F920F920FB60F92112479 +:103FF0008F939F93AF93BF938091B8019091B90134 +:10400000A091BA01B091BB010196A11DB11D809391 +:10401000B8019093B901A093BA01B093BB01BF91CD +:10402000AF919F918F910F900FBE0F901F90189599 +:104030000E944B11F8942FEF87EA91E621508040BF +:104040009040E1F700C0000087E090EBDC01809336 +:10405000E1019093E201A093E301B093E4019CE0BD +:1040600088E10FB6F894A895809360000FBE9093F6 +:104070006000FFCFEF92FF920F931F93CF93DF93D8 +:10408000D82FC4E08C2F0E94A50703E010E0E82E93 +:10409000F12CC701002E02C0959587950A94E2F78E +:1040A00080FF09C0602F7C2F80E00E94C703D813D7 +:1040B00002C081E006C00150110958F7C15010F745 +:1040C00080E0DF91CF911F910F91FF90EF900895C5 +:1040D000CF93C82F8CE20E943A20882321F08C2FA6 +:1040E000CF910C943A2080E0CF910895CF930E9415 +:1040F000C221811102C00E94A321C5E6C15049F02E +:104100000E9440078FE39CE90197F1F700C000008F +:10411000F5CF89E20E946820811113C18AE20E94D2 +:10412000682081110E94A32185E00E9468208111EE +:104130000E9418200E94CD218093B60187E00E9442 +:1041400068208823A9F18BE10E946820882351F020 +:104150008091B60181FB222720F991E0922790FB04 +:1041600081F90EC08EE00E946820882361F0809162 +:10417000B60182FB222720F991E0922790FB82F979 +:104180008093B60115C080E10E9468209091B6012D +:10419000882341F093FB222720F981E0822780FBCE +:1041A00093F904C0892F809580FB90F99093B60114 +:1041B0008091B6010E94D1210E94DF218093DF010E +:1041C00080EE0E946820882341F08091DF01982FC3 +:1041D000909590FB80F98093DF0189E30E9468202D +:1041E000882359F08091DF0181FB222720F991E09B +:1041F000922790FB81F98093DF0182EE0E94682074 +:10420000882359F08091DF0182FB222720F991E079 +:10421000922790FB82F98093DF0186EE0E9468204E +:10422000882359F08091DF0183FB222720F991E058 +:10423000922790FB83F98093DF0183EE0E94682030 +:10424000882359F08091DF0184FB222720F991E037 +:10425000922790FB84F98093DF0185E30E94682018 +:10426000882359F08091DF0185FB222720F991E016 +:10427000922790FB85F98093DF0181E30E946820FB +:10428000882359F08091DF0186FB222720F991E0F5 +:10429000922790FB86F98093DF0181E10E946820DC +:1042A000882359F08091DF0187FB222720F991E0D4 +:1042B000922790FB87F98093DF018091DF010E94B4 +:1042C000E3218091DF0187FB882780F980930D012E +:1042D00087E20E946820C82F8EE10E946820811129 +:1042E000C2608FE10E9468208111C46080E20E9458 +:1042F00068208111C86081E20E9468208111C0613C +:1043000082E20E9468208111C06283E20E946820DC +:104310008111C06484E20E946820882311F0C06883 +:1043200002C0CC2329F08C2F0E94DA216C2F03C00D +:104330000E94D621682F70E080E090E0CF910C942D +:10434000811CCF9108956DEE7EEF80E090E00E9499 +:10435000E82260E082E090E00E94CA2260E083E010 +:1043600090E00E94CA2260E084E090E00E94CA22AD +:1043700060E085E090E00E94CA2260E086E090E084 +:104380000C94CA2280E090E00E94C42221E08D3E7D +:104390009E4F09F020E0822F089582E090E00C9477 +:1043A000B622682F82E090E00C94CA2283E090E06D +:1043B0000C94B622682F83E090E00C94CA2284E02B +:1043C00090E00C94B622682F84E090E00C94CA220E +:1043D00086E090E00C94B622682F86E090E00C9482 +:1043E000CA220E94C221811102C00E94A3210E9400 +:1043F000E8218093E00180FF02C0869501C080E043 +:104400000C94A8028091E001982F9695292F30E016 +:10441000233031054CF49F5F990F8170892B8160A7 +:104420008093E0010E94EC218091E00186950C943C +:10443000A8028091E001982F969591F09158990FDC +:104440008170892B8093E0018E7F91E009F490E0E8 +:104450008091E00190FB80F98093E0010E94EC21C3 +:104460008091E00186950C94A8028091E001982F3C +:10447000909590FB80F98093E0010E94EC2180915F +:10448000E00180FF02C0869501C080E00C94A80284 +:104490009091E001892F86958F5F8F77917084309E +:1044A00028F4880F892B8093E00102C09093E001EB +:1044B0008091E0018E7F91E009F490E08091E0012D +:1044C00090FB80F98093E0010E94EC218091E00153 +:1044D00086950C94A8022091E001922F9695892749 +:1044E000982F990F822F8170892B8093E0018E7F06 +:1044F00091E009F490E08091E00190FB80F98093D5 +:10450000E0010E94EC218091E00186950C94A802C4 +:10451000AA1BBB1B51E107C0AA1FBB1FA617B707E9 +:1045200010F0A61BB70B881F991F5A95A9F7809505 +:104530009095BC01CD01089597FB072E16F40094C9 +:1045400007D077FD09D00E94882207FC05D03EF4F1 +:10455000909581959F4F0895709561957F4F08952F +:10456000EE0FFF1F0590F491E02D0994F999FECF0D +:1045700092BD81BDF89A992780B50895A6E1B0E073 +:1045800044E050E00C94F022A8E1B0E042E050E0BA +:104590000C94F022262FF999FECF92BD81BDF89A96 +:1045A000019700B4021639F01FBA20BD0FB6F89477 +:1045B000FA9AF99A0FBE08950396272F0E94CB22EC +:1045C0000E94CA22252F0E94CB22242F0C94CB229A +:1045D0000196272F0E94CB220C94CA22DC01CB012A +:1045E000FC01F999FECF06C0F2BDE1BDF89A319603 +:1045F00000B40D9241505040B8F70895F894FFCFA1 +:10460000FFFF800DEC0D830DB80D840D0101A3019A +:0A4610004F6C132903395949690062 +:00000001FF diff --git a/keyboards/cluepad/keymaps/default/keymap.c b/keyboards/cluepad/keymaps/default/keymap.c new file mode 100644 index 000000000..8ba49952f --- /dev/null +++ b/keyboards/cluepad/keymaps/default/keymap.c @@ -0,0 +1,122 @@ +#include "cluepad.h" + +#include "backlight.h" +#include "rgblight.h" + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _FL 1 +#define _RS 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: (Base Layer) Default Layer + * .-------------------. + * |NL F| /| *| -| + * |-------------------| + * | 7| 8| 9| | + * |--------------| | + * | 4| 5| 6| +| + * |-------------------| + * | 1| 2| 3| | + * |--------------| | + * | 0| .| Ent| + * '-------------------' + */ +[_BL] = KEYMAP( + LT(_FL, KC_NLCK), KC_PSLS, KC_PAST, KC_PMNS, \ + KC_P7, KC_P8, KC_P9, KC_PPLS, \ + KC_P4, KC_P5, KC_P6, \ + KC_P1, KC_P2, KC_P3, KC_PENT, \ + KC_P0, KC_PDOT), + + /* Keymap _FL: Function Layer + * .-------------------. + * |NL F| | | Fn0| + * |-------------------| + * | | Fn4| | | + * |--------------| | + * | Fn3|BL_S| Fn2| Fn6| + * |-------------------| + * | | Fn5| | | + * |--------------| | + * | Fn1| | Fn7| + * '-------------------' + */ +[_FL] = KEYMAP( + LT(_FL, KC_NLCK), KC_TRNS, KC_TRNS, F(0), \ + KC_TRNS, F(4), KC_TRNS, F(6), \ + F(3), BL_STEP, F(2), \ + KC_TRNS, F(5), KC_TRNS, F(7), \ + F(1), KC_TRNS) +}; + +enum function_id { + RGBLED_TOGGLE, + RGBLED_STEP_MODE, + RGBLED_INCREASE_HUE, + RGBLED_DECREASE_HUE, + RGBLED_INCREASE_SAT, + RGBLED_DECREASE_SAT, + RGBLED_INCREASE_VAL, + RGBLED_DECREASE_VAL, +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(RGBLED_TOGGLE), + [1] = ACTION_FUNCTION(RGBLED_STEP_MODE), + [2] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), + [3] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), + [4] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), + [5] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), + [6] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), + [7] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + switch (id) { + case RGBLED_TOGGLE: + if (record->event.pressed) { + rgblight_toggle(); + } + break; + case RGBLED_INCREASE_HUE: + if (record->event.pressed) { + rgblight_increase_hue(); + } + break; + case RGBLED_DECREASE_HUE: + if (record->event.pressed) { + rgblight_decrease_hue(); + } + break; + case RGBLED_INCREASE_SAT: + if (record->event.pressed) { + rgblight_increase_sat(); + } + break; + case RGBLED_DECREASE_SAT: + if (record->event.pressed) { + rgblight_decrease_sat(); + } + break; + case RGBLED_INCREASE_VAL: + if (record->event.pressed) { + rgblight_increase_val(); + } + break; + case RGBLED_DECREASE_VAL: + if (record->event.pressed) { + rgblight_decrease_val(); + } + break; + case RGBLED_STEP_MODE: + if (record->event.pressed) { + rgblight_step(); + } + break; + } +} + diff --git a/keyboards/ergodox_ez/190hotfix.sh b/keyboards/ergodox_ez/190hotfix.sh new file mode 100755 index 000000000..bdc3adce2 --- /dev/null +++ b/keyboards/ergodox_ez/190hotfix.sh @@ -0,0 +1,19 @@ +#!/bin/bash +#a tool to fix broken keymaps as a result of pull request #190 +#changing the declaration of matrix_scan_user() and matrix_init_user() +# +#This script will save a copy of the specified keymap as keymap.c.bak +#and then create a new keymap.c with the definion corrected. +#this script must be run from the ergodox_ez directory +if [ $# -ne 1 ]; then + echo $0: usage: ./190hotfix keymap_name + exit 1 +fi + +echo Saving backup as ./keymaps/$1/keymap.c.bak ... +mv ./keymaps/$1/keymap.c ./keymaps/$1/keymap.c.bak + +echo Modifying ./keymaps/$1/keymap.c ... +cat ./keymaps/$1/keymap.c.bak | sed -r 's/^void \* matrix_/void matrix_/'>./keymaps/$1/keymap.c + +echo Complete! diff --git a/keyboards/ergodox_ez/Makefile b/keyboards/ergodox_ez/Makefile new file mode 100644 index 000000000..54edaed6d --- /dev/null +++ b/keyboards/ergodox_ez/Makefile @@ -0,0 +1,86 @@ +#---------------------------------------------------------------------------- +# On command line: +# +# make = Make software. +# +# make clean = Clean out built project files. +# +# That's pretty much all you need. To compile, always go make clean, +# followed by make. +# +# For advanced users only: +# make teensy = Download the hex file to the device, using teensy_loader_cli. +# (must have teensy_loader_cli installed). +# +#---------------------------------------------------------------------------- + +# # project specific files +SRC = twimaster.c \ + matrix.c + +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=512 + + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= no # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +CUSTOM_MATRIX ?= yes # Custom matrix file for the ErgoDox EZ +SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend +NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +MIDI_ENABLE ?= no # MIDI controls +UNICODE_ENABLE ?= yes # Unicode + +ifndef QUANTUM_DIR + include ../../Makefile +endif diff --git a/keyboards/ergodox_ez/config.h b/keyboards/ergodox_ez/config.h new file mode 100644 index 000000000..6a391ffb5 --- /dev/null +++ b/keyboards/ergodox_ez/config.h @@ -0,0 +1,90 @@ +/* +Copyright 2012 Jun Wako +Copyright 2013 Oleg Kostyuk + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x1307 +#define DEVICE_VER 0x0001 +#define MANUFACTURER ErgoDox EZ +#define PRODUCT ErgoDox EZ +#define DESCRIPTION t.m.k. keyboard firmware for Ergodox + +/* key matrix size */ +#define MATRIX_ROWS 14 +#define MATRIX_COLS 6 + +#define MOUSEKEY_DELAY 100 +#define MOUSEKEY_INTERVAL 20 +#define MOUSEKEY_MAX_SPEED 3 +#define MOUSEKEY_TIME_TO_MAX 10 + +#define TAPPING_TOGGLE 1 + +#define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } +#define ROWS (int []){ D0, D5, B5, B6 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 2 +#define TAPPING_TERM 200 +#define IGNORE_MOD_TAP_INTERRUPT // this makes it possible to do rolling combos (zx) with keys that convert to other keys on hold (z becomes ctrl when you hold it, and when this option isn't enabled, z rapidly followed by x actually sends Ctrl-x. That's bad.) + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || \ + keyboard_report->mods == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) \ +) + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION +//#define DEBUG_MATRIX_SCAN_RATE + +#endif diff --git a/keyboards/ergodox_ez/ergodox_ez.c b/keyboards/ergodox_ez/ergodox_ez.c new file mode 100644 index 000000000..97e6de1ee --- /dev/null +++ b/keyboards/ergodox_ez/ergodox_ez.c @@ -0,0 +1,100 @@ +#include "ergodox_ez.h" +#include "i2cmaster.h" + +bool i2c_initialized = 0; +uint8_t mcp23018_status = 0x20; + +__attribute__ ((weak)) +void matrix_init_user(void) { + +} + +__attribute__ ((weak)) +void matrix_scan_user(void) { + +} + +void matrix_init_kb(void) { + // keyboard LEDs (see "PWM on ports OC1(A|B|C)" in "teensy-2-0.md") + TCCR1A = 0b10101001; // set and configure fast PWM + TCCR1B = 0b00001001; // set and configure fast PWM + + // (tied to Vcc for hardware convenience) + DDRB &= ~(1<<4); // set B(4) as input + PORTB &= ~(1<<4); // set B(4) internal pull-up disabled + + // unused pins - C7, D4, D5, D7, E6 + // set as input with internal pull-ip enabled + DDRC &= ~(1<<7); + DDRD &= ~(1<<7 | 1<<5 | 1<<4); + DDRE &= ~(1<<6); + PORTC |= (1<<7); + PORTD |= (1<<7 | 1<<5 | 1<<4); + PORTE |= (1<<6); + + ergodox_blink_all_leds(); + + matrix_init_user(); +} + +void matrix_scan_kb(void) { + matrix_scan_user(); +} + + +void ergodox_blink_all_leds(void) +{ + ergodox_led_all_off(); + ergodox_led_all_set(LED_BRIGHTNESS_HI); + ergodox_right_led_1_on(); + _delay_ms(50); + ergodox_right_led_2_on(); + _delay_ms(50); + ergodox_right_led_3_on(); + _delay_ms(50); + ergodox_right_led_1_off(); + _delay_ms(50); + ergodox_right_led_2_off(); + _delay_ms(50); + ergodox_right_led_3_off(); + //ergodox_led_all_on(); + //_delay_ms(333); + ergodox_led_all_off(); +} + +uint8_t init_mcp23018(void) { + mcp23018_status = 0x20; + + // I2C subsystem + if (i2c_initialized == 0) { + i2c_init(); // on pins D(1,0) + i2c_initialized++; + _delay_ms(1000); + } + + // set pin direction + // - unused : input : 1 + // - input : input : 1 + // - driving : output : 0 + mcp23018_status = i2c_start(I2C_ADDR_WRITE); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(IODIRA); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(0b00000000); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(0b00111111); if (mcp23018_status) goto out; + i2c_stop(); + + // set pull-up + // - unused : on : 1 + // - input : on : 1 + // - driving : off : 0 + mcp23018_status = i2c_start(I2C_ADDR_WRITE); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(GPPUA); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(0b00000000); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(0b00111111); if (mcp23018_status) goto out; + +out: + i2c_stop(); + + return mcp23018_status; +} + + diff --git a/keyboards/ergodox_ez/ergodox_ez.h b/keyboards/ergodox_ez/ergodox_ez.h new file mode 100644 index 000000000..402abc167 --- /dev/null +++ b/keyboards/ergodox_ez/ergodox_ez.h @@ -0,0 +1,127 @@ +#ifndef ERGODOX_EZ_H +#define ERGODOX_EZ_H + +#include "quantum.h" +#include +#include +#include "i2cmaster.h" +#include + +#define CPU_PRESCALE(n) (CLKPR = 0x80, CLKPR = (n)) +#define CPU_16MHz 0x00 + +// I2C aliases and register addresses (see "mcp23018.md") +#define I2C_ADDR 0b0100000 +#define I2C_ADDR_WRITE ( (I2C_ADDR<<1) | I2C_WRITE ) +#define I2C_ADDR_READ ( (I2C_ADDR<<1) | I2C_READ ) +#define IODIRA 0x00 // i/o direction register +#define IODIRB 0x01 +#define GPPUA 0x0C // GPIO pull-up resistor register +#define GPPUB 0x0D +#define GPIOA 0x12 // general purpose i/o port register (write modifies OLAT) +#define GPIOB 0x13 +#define OLATA 0x14 // output latch register +#define OLATB 0x15 + +extern uint8_t mcp23018_status; + +void init_ergodox(void); +void ergodox_blink_all_leds(void); +uint8_t init_mcp23018(void); +uint8_t ergodox_left_leds_update(void); + +#define LED_BRIGHTNESS_LO 15 +#define LED_BRIGHTNESS_HI 255 + + +inline void ergodox_board_led_on(void) { DDRD |= (1<<6); PORTD |= (1<<6); } +inline void ergodox_right_led_1_on(void) { DDRB |= (1<<5); PORTB |= (1<<5); } +inline void ergodox_right_led_2_on(void) { DDRB |= (1<<6); PORTB |= (1<<6); } +inline void ergodox_right_led_3_on(void) { DDRB |= (1<<7); PORTB |= (1<<7); } +inline void ergodox_right_led_on(uint8_t led) { DDRB |= (1<<(led+4)); PORTB |= (1<<(led+4)); } + +inline void ergodox_board_led_off(void) { DDRD &= ~(1<<6); PORTD &= ~(1<<6); } +inline void ergodox_right_led_1_off(void) { DDRB &= ~(1<<5); PORTB &= ~(1<<5); } +inline void ergodox_right_led_2_off(void) { DDRB &= ~(1<<6); PORTB &= ~(1<<6); } +inline void ergodox_right_led_3_off(void) { DDRB &= ~(1<<7); PORTB &= ~(1<<7); } +inline void ergodox_right_led_off(uint8_t led) { DDRB &= ~(1<<(led+4)); PORTB &= ~(1<<(led+4)); } + +inline void ergodox_led_all_on(void) +{ + ergodox_board_led_on(); + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + ergodox_right_led_3_on(); +} + +inline void ergodox_led_all_off(void) +{ + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); +} + +inline void ergodox_right_led_1_set(uint8_t n) { OCR1A = n; } +inline void ergodox_right_led_2_set(uint8_t n) { OCR1B = n; } +inline void ergodox_right_led_3_set(uint8_t n) { OCR1C = n; } +inline void ergodox_right_led_set(uint8_t led, uint8_t n) { + (led == 1) ? (OCR1A = n) : + (led == 2) ? (OCR1B = n) : + (OCR1C = n); +} + +inline void ergodox_led_all_set(uint8_t n) +{ + ergodox_right_led_1_set(n); + ergodox_right_led_2_set(n); + ergodox_right_led_3_set(n); +} + +#define KEYMAP( \ + \ + /* left hand, spatial positions */ \ + k00,k01,k02,k03,k04,k05,k06, \ + k10,k11,k12,k13,k14,k15,k16, \ + k20,k21,k22,k23,k24,k25, \ + k30,k31,k32,k33,k34,k35,k36, \ + k40,k41,k42,k43,k44, \ + k55,k56, \ + k54, \ + k53,k52,k51, \ + \ + /* right hand, spatial positions */ \ + k07,k08,k09,k0A,k0B,k0C,k0D, \ + k17,k18,k19,k1A,k1B,k1C,k1D, \ + k28,k29,k2A,k2B,k2C,k2D, \ + k37,k38,k39,k3A,k3B,k3C,k3D, \ + k49,k4A,k4B,k4C,k4D, \ + k57,k58, \ + k59, \ + k5C,k5B,k5A ) \ + \ + /* matrix positions */ \ + { \ + { k00, k10, k20, k30, k40, KC_NO }, \ + { k01, k11, k21, k31, k41, k51 }, \ + { k02, k12, k22, k32, k42, k52 }, \ + { k03, k13, k23, k33, k43, k53 }, \ + { k04, k14, k24, k34, k44, k54 }, \ + { k05, k15, k25, k35, KC_NO, k55 }, \ + { k06, k16, KC_NO, k36, KC_NO, k56 }, \ + \ + { k07, k17, KC_NO, k37,KC_NO, k57 }, \ + { k08, k18, k28, k38,KC_NO, k58 }, \ + { k09, k19, k29, k39, k49, k59 }, \ + { k0A, k1A, k2A, k3A, k4A, k5A }, \ + { k0B, k1B, k2B, k3B, k4B, k5B }, \ + { k0C, k1C, k2C, k3C, k4C, k5C }, \ + { k0D, k1D, k2D, k3D, k4D, KC_NO } \ + } + +void matrix_init_user(void); +void matrix_scan_user(void); + + + +#endif diff --git a/keyboards/ergodox_ez/i2cmaster.h b/keyboards/ergodox_ez/i2cmaster.h new file mode 100644 index 000000000..3917b9e6c --- /dev/null +++ b/keyboards/ergodox_ez/i2cmaster.h @@ -0,0 +1,178 @@ +#ifndef _I2CMASTER_H +#define _I2CMASTER_H 1 +/************************************************************************* +* Title: C include file for the I2C master interface +* (i2cmaster.S or twimaster.c) +* Author: Peter Fleury http://jump.to/fleury +* File: $Id: i2cmaster.h,v 1.10 2005/03/06 22:39:57 Peter Exp $ +* Software: AVR-GCC 3.4.3 / avr-libc 1.2.3 +* Target: any AVR device +* Usage: see Doxygen manual +**************************************************************************/ + +#ifdef DOXYGEN +/** + @defgroup pfleury_ic2master I2C Master library + @code #include @endcode + + @brief I2C (TWI) Master Software Library + + Basic routines for communicating with I2C slave devices. This single master + implementation is limited to one bus master on the I2C bus. + + This I2c library is implemented as a compact assembler software implementation of the I2C protocol + which runs on any AVR (i2cmaster.S) and as a TWI hardware interface for all AVR with built-in TWI hardware (twimaster.c). + Since the API for these two implementations is exactly the same, an application can be linked either against the + software I2C implementation or the hardware I2C implementation. + + Use 4.7k pull-up resistor on the SDA and SCL pin. + + Adapt the SCL and SDA port and pin definitions and eventually the delay routine in the module + i2cmaster.S to your target when using the software I2C implementation ! + + Adjust the CPU clock frequence F_CPU in twimaster.c or in the Makfile when using the TWI hardware implementaion. + + @note + The module i2cmaster.S is based on the Atmel Application Note AVR300, corrected and adapted + to GNU assembler and AVR-GCC C call interface. + Replaced the incorrect quarter period delays found in AVR300 with + half period delays. + + @author Peter Fleury pfleury@gmx.ch http://jump.to/fleury + + @par API Usage Example + The following code shows typical usage of this library, see example test_i2cmaster.c + + @code + + #include + + + #define Dev24C02 0xA2 // device address of EEPROM 24C02, see datasheet + + int main(void) + { + unsigned char ret; + + i2c_init(); // initialize I2C library + + // write 0x75 to EEPROM address 5 (Byte Write) + i2c_start_wait(Dev24C02+I2C_WRITE); // set device address and write mode + i2c_write(0x05); // write address = 5 + i2c_write(0x75); // write value 0x75 to EEPROM + i2c_stop(); // set stop conditon = release bus + + + // read previously written value back from EEPROM address 5 + i2c_start_wait(Dev24C02+I2C_WRITE); // set device address and write mode + + i2c_write(0x05); // write address = 5 + i2c_rep_start(Dev24C02+I2C_READ); // set device address and read mode + + ret = i2c_readNak(); // read one byte from EEPROM + i2c_stop(); + + for(;;); + } + @endcode + +*/ +#endif /* DOXYGEN */ + +/**@{*/ + +#if (__GNUC__ * 100 + __GNUC_MINOR__) < 304 +#error "This library requires AVR-GCC 3.4 or later, update to newer AVR-GCC compiler !" +#endif + +#include + +/** defines the data direction (reading from I2C device) in i2c_start(),i2c_rep_start() */ +#define I2C_READ 1 + +/** defines the data direction (writing to I2C device) in i2c_start(),i2c_rep_start() */ +#define I2C_WRITE 0 + + +/** + @brief initialize the I2C master interace. Need to be called only once + @param void + @return none + */ +extern void i2c_init(void); + + +/** + @brief Terminates the data transfer and releases the I2C bus + @param void + @return none + */ +extern void i2c_stop(void); + + +/** + @brief Issues a start condition and sends address and transfer direction + + @param addr address and transfer direction of I2C device + @retval 0 device accessible + @retval 1 failed to access device + */ +extern unsigned char i2c_start(unsigned char addr); + + +/** + @brief Issues a repeated start condition and sends address and transfer direction + + @param addr address and transfer direction of I2C device + @retval 0 device accessible + @retval 1 failed to access device + */ +extern unsigned char i2c_rep_start(unsigned char addr); + + +/** + @brief Issues a start condition and sends address and transfer direction + + If device is busy, use ack polling to wait until device ready + @param addr address and transfer direction of I2C device + @return none + */ +extern void i2c_start_wait(unsigned char addr); + + +/** + @brief Send one byte to I2C device + @param data byte to be transfered + @retval 0 write successful + @retval 1 write failed + */ +extern unsigned char i2c_write(unsigned char data); + + +/** + @brief read one byte from the I2C device, request more data from device + @return byte read from I2C device + */ +extern unsigned char i2c_readAck(void); + +/** + @brief read one byte from the I2C device, read is followed by a stop condition + @return byte read from I2C device + */ +extern unsigned char i2c_readNak(void); + +/** + @brief read one byte from the I2C device + + Implemented as a macro, which calls either i2c_readAck or i2c_readNak + + @param ack 1 send ack, request more data from device
+ 0 send nak, read is followed by a stop condition + @return byte read from I2C device + */ +extern unsigned char i2c_read(unsigned char ack); +#define i2c_read(ack) (ack) ? i2c_readAck() : i2c_readNak(); + + +/**@}*/ +#endif diff --git a/keyboards/ergodox_ez/keymaps/ab/compiled.hex b/keyboards/ergodox_ez/keymaps/ab/compiled.hex new file mode 100644 index 000000000..9b4434b86 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/ab/compiled.hex @@ -0,0 +1,1147 @@ +:100000000C9424020C9468020C9468020C9468020C +:100010000C9468020C9468020C9468020C946802B8 +:100020000C9468020C9468020C940C0D0C94DE0D78 +:100030000C9468020C9468020C9468020C94680298 +:100040000C9468020C94E8210C9468020C946802E9 +:100050000C9468020C947B1B0C9468020C9468024C +:100060000C9468020C9468020C9468020C94680268 +:100070000C9468020C9468020C9468020C94680258 +:100080000C9468020C9468020C9468020C94680248 +:100090000C9468020C9468020C9468020C94680238 +:1000A0000C9468020C9468020C9468024B0E6D0E5E +:1000B0005B0F6D0E5B0FB20ED50E5B0F2A0F3D0F5F +:1000C0000C120C123B123B1271129112C213C2138A +:1000D0009C12C2134C134C13B313C213C213BC13A0 +:1000E00059135913591359135913591359135913B0 +:1000F00059135913591359135913591359135913A0 +:100100006B1378137F138613901335002B0039710E +:10011000E100E00000001E00140004001D002900A2 +:100120002F001F001A0016001B00E3004C002000E7 +:10013000080007000600E2002C002100150009005D +:100140001900E2002602220017000A000500000044 +:1001500006012300B60000004B0000002F0224001F +:10016000B70000004E000000300225001C000B000C +:10017000110000001901260018000D0010005200A7 +:10018000270227000C000E00360050002A002D0028 +:1001900012000F0037004F0028002E00130033001C +:1001A0003800510030002A0031002800340001548A +:1001B00000002900010001000100010000003A00D8 +:1001C000010001000100010001003B000100F200FC +:1001D0000100010001003C00F000F1000100F4000A +:1001E00000503D000100F3000100F50001003E0059 +:1001F000010001000100000001003F0001000000BB +:1002000001000000010040000100000001000000AA +:100210000100410001000100010000000100420056 +:100220000100010001000100010043000100010084 +:100230000100AA0001004400010001000100A90022 +:1002400001004500010001000100A80001002A0092 +:100250000100AE000100010000001603450072001D +:1002600067006F0044006F007800200045005A00CE +:10027000000016034500720067006F0044006F0025 +:100280007800200045005A00000004030904090218 +:100290006D00040100A0FA0904000001030101003F +:1002A000092111010001223F000705810308000A0E +:1002B00009040100010301020009211101000122CA +:1002C0004D000705820308000A090402000103002B +:1002D00000000921110100012236000705830308EF +:1002E000000A0904030001030000000921110100B4 +:1002F00001223900070584031000011201100100DA +:10030000000008EDFE0713010001020001050109CC +:1003100006A101050719E029E715002501950875D3 +:1003200001810205081901290595057501910295BC +:10033000017503910105071900297715002501951D +:100340007875018102C005010980A10185021601AD +:100350000026B7001A01002AB70075109501810028 +:10036000C0050C0901A1018503160100269C021A93 +:1003700001002A9C02751095018100C00501090247 +:10038000A1010901A100050919012905150025018F +:1003900095057501810295017503810105010930FB +:1003A00009311581257F9502750881060938158167 +:1003B000257F950175088106050C0A3802158125EF +:1003C0007F950175088106C0C005010906A10105D8 +:1003D0000719E029E71500250195087501810295A7 +:1003E0000175088101050819012905950575019117 +:1003F000029501750391010507190029FF150025D4 +:10040000FF950675088100C0000000000000000094 +:10041000000000010204060A0F17202C3A4A5D7101 +:10042000879DB3C7DAE9F5FCFFFCF5E9DAC7B39DB0 +:1004300087715D4A3A2C20170F0A0604020100005A +:10044000000000000000000011241FBECFEFDAE022 +:10045000DEBFCDBF04B603FE24C08091FB019091A6 +:10046000FC01A091FD01B091FE018730904BA740A7 +:10047000B04BB9F41092FB011092FC011092FD01F7 +:100480001092FE0114BE84B7877F84BF88E10FB647 +:10049000F89480936000109260000FBEE0E0FFE3EC +:1004A000099511E0A0E0B1E0EEE5F7E402C00590A7 +:1004B0000D92A433B107D9F711E0A4E3B1E001C074 +:1004C0001D92AB3FB107E1F70E94500A0C94AD2397 +:1004D0000C9400001092B9008AE08093B80008954F +:1004E00094EA9093BC009091BC0097FFFCCF909150 +:1004F000B900987F983021F0903111F081E0089593 +:100500008093BB0084E88093BC008091BC0087FF8F +:10051000FCCF8091B900887F883111F0803471F769 +:1005200080E0089584E98093BC008091BC0084FD44 +:10053000FCCF08958093BB0084E88093BC00809139 +:10054000BC0087FFFCCF9091B900987F81E0983282 +:1005500009F480E0089584E88093BC008091BC0099 +:1005600087FFFCCF8091BB0008958091010181112C +:1005700015C080E40E9470028093010181110CC0BB +:1005800082E10E949A0280930101811105C08FEFE0 +:100590000E949A02809301010E94920284B1807F9E +:1005A00084B985B1807F85B98AB1837F8AB98BB1DF +:1005B000837F8BB93E98469808950E94700480937B +:1005C00001010E94B50280B38C7080BB81B3836F40 +:1005D00081BBA5E3B1E0E3E4F1E08EE08E0F119280 +:1005E0001D928E13FCCF0C945A04BF92CF92DF92CF +:1005F000EF92FF920F931F93CF93DF9380910101AE +:10060000882379F0809134018F5F809334018111C8 +:1006100008C00E94700480930101811102C00E94F1 +:10062000020405E311E0C0E0D0E0DD24D39482E0D1 +:10063000C82EEE24E394F12CC730D10500F580914B +:100640000101811164C080E40E9470028093010165 +:10065000811112C082E10E949A02809301018111EE +:100660000BC0C7010C2E01C0880F0A94EAF78095D1 +:100670000E949A02809301010E94920248C0CA30EF +:10068000A1F028F4C83059F0C93061F005C0CC3071 +:1006900089F070F0CD3089F0209A289810C0219A06 +:1006A00029980DC0229A2A980AC0239A2B9807C02D +:1006B000529A01C0539A5B9802C03E9A469890EABB +:1006C0009A95F1F79FB1799902C082E001C080E06C +:1006D00091709D25982B7C9902C084E001C080E038 +:1006E000892B7D9902C038E001C030E0832B7E99D0 +:1006F00002C020E101C020E0822B9FB19095991F9C +:100700009927991F9295990F907E892B0FC0809100 +:100710000101811149C080E40E94700280930101AF +:10072000882379F1B12C0E9492028B2DF8019081DF +:10073000981719F08083C09200010E94B50221969B +:100740000F5F1F4FCE30D10509F076CF80910001A9 +:10075000882361F1815080930001882339F08FE96B +:100760009FE00197F1F700C0000020C0A3E4B1E0D2 +:10077000E5E3F1E0CF01825F91919D938E13FCCF71 +:1007800015C083E10E949A02809301018111CACFB2 +:1007900081E40E947002809301018111C3CF0E9405 +:1007A000AB02B82EB094BFCF80E0C0CF0E9400044F +:1007B00081E0DF91CF911F910F91FF90EF90DF903B +:1007C000CF90BF900895E82FF0E0ED5BFE4F808161 +:1007D000089508950F931F93CF93DF93C3E4D1E05F +:1007E00010E00C2F025F899190E00E94A11A180F6F +:1007F0000C13F9CF812FDF91CF911F910F910895A5 +:100800000C94D00456985E9825982D9826982E988A +:1008100027982F988FEF90E090938900809388001D +:1008200090938B0080938A0090938D0080938C002E +:10083000259A2D9A2FEF80E792E02150804090403A +:10084000E1F700C00000269A2E9A2FEF80E792E091 +:10085000215080409040E1F700C00000279A2F9A75 +:100860002FEF80E792E0215080409040E1F700C0F8 +:10087000000025982D982FEF80E792E021508040CE +:100880009040E1F700C0000026982E982FEF80E7F7 +:1008900092E0215080409040E1F700C0000027988E +:1008A0002F9856985E9825982D9826982E982798D8 +:1008B0002F98089589EA8093800089E080938100D1 +:1008C00024982C983F988AB18F748AB96E98479A69 +:1008D0008BB1806B8BB9769A0E9402040C94CF0482 +:1008E00080E2809301018091510181110EC00E942C +:1008F0006A0281E0809351012FEF83ED90E3215054 +:1009000080409040E1F700C0000080E40E94700247 +:100910008093010181112EC00E949A0280930101EF +:10092000811128C00E949A0280930101811122C086 +:100930008FE30E949A028093010181111BC00E94E3 +:10094000920280E40E94700280930101811112C022 +:100950008CE00E949A028093010181110BC00E94D9 +:100960009A0280930101811105C08FE30E949A02CF +:10097000809301010E94920280910101089561110A +:100980000BC0FC018281882321F085EE0E94B0100B +:1009900003C085EE0E94781180E090E008950895EC +:1009A0006091BD017091BE018091BF019091C00125 +:1009B0000E94AD1A56985E9825982D9826982E98E4 +:1009C00027982F98813019F0823021F00895259AC8 +:1009D0002D9A0895269A2E9A089581E0089581E02F +:1009E00008950C94EF0408950F931F93CF93DF9312 +:1009F0008C01FC01C081D181CE010E942619BE016B +:100A00000E949D05EC01B8010E94F104882309F4BD +:100A10008DC0F8018281882309F44AC080915D016C +:100A200081111FC0C431F0E5DF0709F051C00E94F9 +:100A3000F30481E080935D010E94451B90935C016B +:100A400080935B011092540110925601109255014F +:100A5000109258011092570110925A0110925901A8 +:100A600065C080915B0190915C010E94511B883CA4 +:100A7000910570F480915401E82FF0E0EE0FFF1F14 +:100A8000EB5AFE4FD183C0838F5F809354014EC0D9 +:100A9000C43880E5D80721F0C538D04501F13AC007 +:100AA000F8018281882341F01092520182E01EC039 +:100AB000C438E0E5DE0759F580915201811106C086 +:100AC00086E20E94B01086E20E94781182E01CC08B +:100AD000C438F0E5DF0741F3C538D045D9F4F80153 +:100AE0008281882331F01092530180E20E94C71165 +:100AF0001DC080915301811106C087E20E94B01091 +:100B000087E20E94781180E20E94CE110FC0C538A2 +:100B1000D04529F381E08093520180935301C801AD +:100B2000DF91CF911F910F910C94ED0480E0DF9144 +:100B3000CF911F910F910895089596E0799FF0014C +:100B4000112494E5899FE00DF11D1124E60FF11D9C +:100B5000EE0FFF1FE65FFE4F859194910895880F79 +:100B6000991FFC01E657F040859194910895880FF4 +:100B7000991FFC01E65FFE4F8591949108950F93B4 +:100B80001F93CF93DF93EC01811520E3920750F57B +:100B9000C11580E2D80708F0C3C0CB3BD10590F463 +:100BA000C83AD10508F06AC0C53AD10508F05BC063 +:100BB000C430D10508F0D0C1219709F0CAC101E0C5 +:100BC00010E00AC2CF3FD10511F008F0C5C1C03F07 +:100BD000D10508F0A2C0CE01805E9109089708F403 +:100BE000BBC1B7C1C13090E5D90709F4A2C020F557 +:100BF000C0318FE4D80770F4C11590E4D90708F02C +:100C000094C0C11521E3D20708F0A3C1DD278E01EE +:100C1000106CE2C1C115D04509F09BC10E942D1492 +:100C20008FEF94E32CE0815090402040E1F700C02A +:100C300000000E94A01BD0C1C11597E5D90758F448 +:100C4000C03121E5D20708F01CC1C43180E5D807C6 +:100C500008F475C07EC1CE0190578115904108F00F +:100C600078C1DF7073C1C53AD10509F477C1C63ABE +:100C7000D10509F076C102E810E4AEC1C83AD10549 +:100C800009F472C1C93AD10509F471C1CA3AD10552 +:100C900009F470C1CB3AD10509F46FC1CC3AD10542 +:100CA00009F46EC1CD3AD10509F46DC1C03BD1053F +:100CB00009F46CC1CE3AD10509F46BC1CF3AD10524 +:100CC00009F46AC1C13BD10509F469C1C23BD10530 +:100CD00009F468C1C33BD10509F467C1C43BD10520 +:100CE00009F466C1C53BD10509F465C1C63BD10510 +:100CF00009F464C1C73BD10509F463C1C83BD10500 +:100D000009F462C1C93BD10509F461C1CA3BD105EF +:100D100009F460C100E014E45FC18E0110655CC19C +:100D2000CE019F700E94B70558C1DF708E01106A16 +:100D300053C18091DA0181608093DA014DC10E9434 +:100D4000451D811102C00E942B1D0E94621D90E072 +:100D50009093FB018093FA01C23080E5D80721F41B +:100D60008091FA01816086C0C43090E5D90721F4F2 +:100D70008091FA0182607EC0C63020E5D20721F45E +:100D80008091FA01846076C0C83080E5D80719F4F4 +:100D90008091FA0127C0CA3090E5D90721F48091EB +:100DA000FA01806167C0CC3020E5D20721F4809140 +:100DB000FA0180625FC0CE3080E5D80721F48091CF +:100DC000FA01806457C0C03190E5D90721F48091C1 +:100DD000FA0180684FC0C23120E5D20729F4809122 +:100DE000FA018460886046C0C33080E5D80721F4EA +:100DF0008091FA018E7F3EC0C53090E5D90721F47D +:100E00008091FA018D7F36C0C73020E5D20721F4EA +:100E10008091FA018B7F2EC0C93080E5D80719F484 +:100E20008091FA0126C0CB3090E5D90721F480915A +:100E3000FA018F7E1FC0CD3020E5D20721F48091CA +:100E4000FA018F7D17C0CF3080E5D80721F480915B +:100E5000FA018F7B0FC0C13190E5D90721F4809151 +:100E6000FA018F7707C0C331D04531F48091FA0180 +:100E70008B7F877F8093FA018091FA010E94661D23 +:100E8000ABC08D2F99278F70992781309105D9F4A8 +:100E90009E012370332702C0880F991F2A95E2F71D +:100EA0009C688E0144E0000F111F4A95E1F700276E +:100EB0001370802B912B53E0CC0FDD1F5A95E1F777 +:100EC000C076DD272FC08230910531F4DC2FCC278E +:100ED0008E01016F106A80C08330910569F4CE01E4 +:100EE0008370992701E010E002C0000F111F8A955E +:100EF000E2F7C8019C680FC084309105B9F4CE01B7 +:100F00008370992701E010E002C0000F111F8A953D +:100F1000E2F7C8019A6823E0CC0FDD1F2A95E1F7BC +:100F2000C07ED7708C010C2B1D2B56C085309105CF +:100F300031F4DC2FCC278E01046F106A4DC0069768 +:100F400009F04AC0CF71DD27DC2FCC278E0110625B +:100F500043C000E010E040C08E013EC001E810E454 +:100F60003BC003E810E438C002EE14E435C009EEDB +:100F700014E432C00AEE14E42FC005EB14E42CC0D4 +:100F800006EB14E429C007EB14E426C00CEC14E4CF +:100F900023C00DEC14E420C003E815E41DC00AE8EA +:100FA00015E41AC002E915E417C004E915E414C0F9 +:100FB00001E216E411C003E216E40EC004E216E4F6 +:100FC0000BC005E216E408C006E216E405C007E21D +:100FD00016E402C00AE216E4C801DF91CF911F9126 +:100FE0000F91089596E0799FF001112494E5899F6F +:100FF000E00DF11D1124E60FF11DEE0FFF1FE65F5E +:10100000FE4F85919491803E9105E0F4803C9105DE +:1010100058F58133910509F46FC048F48932910580 +:1010200009F463C08A32910509F46DC072C0893336 +:101030009105E9F082389105D1F08533910509F4E5 +:101040004DC067C0833E910581F138F4803E910523 +:10105000B9F0823E9105D9F05CC0863E910561F100 +:10106000873E9105A1F155C00E94AF0508952091DA +:10107000FA0120FD02C021FF4CC080EE90E049C083 +:101080008091FA0180FFF9CF89E390E042C080911E +:10109000FA0182FF0EC08091FA0184FF03C080E054 +:1010A00090E037C083EE90E034C08091FA0182FF77 +:1010B000F2CF82EE90E02DC08091FA0183FF0BC049 +:1010C0008091FA0184FDEBCF87EE90E022C0809101 +:1010D000FA0183FFF5CF86EE90E01BC08091FA0104 +:1010E00085FF07C089E290E014C08091FA0185FF76 +:1010F000F9CF85E390E00DC08091FA0186FF07C02B +:101100008AE290E006C08091FA0186FFF9CF81E380 +:1011100090E00E94BF05089508950C948C0880917A +:101120006E010895CF93DF9300D01F92CDB7DEB745 +:101130009C018091F101843019F593E099833B8300 +:101140002A839093E9008FEF9091E800815095FDFC +:1011500006C095ED9A95F1F700008111F5CF8091C9 +:10116000E80085FF0DC040E050E063E070E0CE0194 +:1011700001960E94FC0A8091E8008E778093E80037 +:101180000F900F900F90DF91CF910895CF93DF9341 +:1011900000D01F92CDB7DEB72091F101243021F5A8 +:1011A00022E029839B838A8383E08093E9008FEF89 +:1011B0009091E800815095FD06C095ED9A95F1F764 +:1011C00000008111F5CF8091E80085FF0DC040E05F +:1011D00050E063E070E0CE0101960E94FC0A80912D +:1011E000E8008E778093E8000F900F900F90DF91CA +:1011F000CF9108952091F1012430F1F422E0209361 +:10120000E9002FEF3091E800215035FD06C035EDA3 +:101210003A95F1F700002111F5CF2091E80025FF64 +:101220000BC040E050E065E070E00E94FC0A809155 +:10123000E8008E778093E8000895CF93DF93EC0168 +:101240009091F101943009F046C080910C018823FF +:10125000D9F080910D018823B9F09093E9008FEFC8 +:101260009091E800815095FD06C095E19A95F1F7BF +:1012700000008111F5CF8091E80085FF2CC040E08F +:1012800050E060E170E017C081E08093E9008FEFEB +:101290009091E800815095FD06C095ED9A95F1F783 +:1012A00000008111F5CF8091E80085FF14C040E077 +:1012B00050E068E070E0CE010E94FC0A8091E800F6 +:1012C0008E778093E80080E1FE01AEE5B1E0019009 +:1012D0000D928A95E1F7DF91CF9108958091F00109 +:1012E000811109C00E94910C0E94EE0C8091E200D5 +:1012F00084608093E20008951092F00108950895AB +:101300000C94D5210E94361B0E94DB210E94940F71 +:101310000C948D0842E061EC81E00E940B0C42E0ED +:1013200061EC82E00E940B0C42E061EC83E00E94E1 +:101330000B0C42E161EC84E00C940B0C8091F30106 +:10134000833009F455C030F4813071F0823009F4F3 +:101350008EC008958A3009F47AC08B3009F460C0D9 +:10136000893009F09CC020C08091F201813A09F0D7 +:1013700096C08091E800877F8093E8008091F60115 +:101380009091F701892B21F460E18EE591E003C093 +:1013900060E080E090E070E00E94470B8091E80000 +:1013A0008B778093E80008958091F201813209F0F3 +:1013B00076C08091F6019091F701009719F003979C +:1013C00009F06DC08091E800877F8093E8008091EC +:1013D000E80082FD05C08091F1018111F8CF5FC066 +:1013E0008091F10080936E018091E8008B7753C06B +:1013F0008091F201813A09F052C08091F6019091FA +:10140000F701892B09F04BC08091E800877F80931A +:10141000E8008091E80080FFFCCF80910C0136C08D +:101420008091F2018132D9F58091F6019091F70116 +:10143000892BA9F58091E800877F8093E8000E94BE +:10144000400C8091F40180930C010C942D14809138 +:10145000F201813221F58091E800877F8093E800D6 +:101460000E94400C8091F50180936F010895809156 +:10147000F201813AA1F48091E800877F8093E8002F +:101480008091E80080FFFCCF80916F018093F10094 +:101490008091E8008E778093E8000C94400C0895CA +:1014A00084B7877F84BF88E10FB6F894809360008B +:1014B000109260000FBE90E080E80FB6F894809321 +:1014C0006100909361000FBE0E94E30F0E94910C97 +:1014D0000E94EE0C8091E20084608093E200789498 +:1014E0000E94740F0E94E50F82E091E00E948F0F2E +:1014F0000E94C3218091F101853069F40E94FD1A98 +:101500008091EF018823B1F30E94281B882391F377 +:101510000E94E60AEFCF0E94EB0FECCF292F332772 +:1015200023303105C9F064F42130310581F02230D7 +:10153000310509F043C08DE690E02EE832E042C06C +:1015400021323105F1F02232310541F137C082E11B +:1015500090E02BEF32E036C099278130910541F0C1 +:101560008230910541F0892B49F5EAE8F2E005C0A7 +:10157000E2E7F2E002C0EAE5F2E0849190E09F0148 +:1015800021C06430D8F4E62FF0E0EE0FFF1FEE5DCF +:10159000FE4F2081318189E090E014C0643070F406 +:1015A00070E0FB01EE0FFF1FE65EFE4F20813181F0 +:1015B000FB01EA5EFE4F808190E004C080E090E095 +:1015C00020E030E0FA0131832083089580E189BD75 +:1015D00082E189BD09B400FEFDCF8091D8008F7DE6 +:1015E0008093D8008091E00082608093E000809139 +:1015F000E00081FDFCCF0895CF92DF92EF92FF9241 +:101600000F931F93CF93DF93EC018B016A010E942C +:101610005F0C811133C0C114D10439F0F60180810F +:101620009181081B190BC80FD91FE12CF12C011552 +:10163000110519F18091E80085FD16C08091E80040 +:101640008E778093E800C114D10449F0F6018081BF +:101650009181E80EF91EF182E08285E00FC00E94C0 +:101660005F0C882321F30AC089918093F100015017 +:101670001109FFEFEF1AFF0ADACF80E0DF91CF9177 +:101680001F910F91FF90EF90DF90CF9008952091E0 +:10169000F8013091F9012617370748F061157105F7 +:1016A00039F42091E8002E772093E80001C0B901B9 +:1016B00040E061157105A9F12091F101222309F49F +:1016C00043C0253009F442C02091E80023FD40C00A +:1016D0002091E80022FD32C02091E80020FFE9CFF0 +:1016E0004091F3002091F20030E0342BFC01CF0157 +:1016F0006115710559F02830310540F481918093CE +:10170000F100615071092F5F3F4FF1CF41E0283068 +:10171000310509F040E02091E8002E772093E800A1 +:10172000C8CF4111C9CF0AC08091F101882361F06F +:10173000853061F08091E80083FD0AC08091E80067 +:1017400082FFF2CF80E0089582E0089583E008955B +:1017500081E008952091F8013091F90126173707AB +:1017600048F06115710539F42091E8002E77209337 +:10177000E80001C0B901FC0120E06115710591F19B +:101780008091F101882309F440C0853009F43FC0FD +:101790008091E80083FD3DC08091E80082FD2FC06C +:1017A0008091E80080FFE9CF2091F3008091F20062 +:1017B00090E0922B6115710559F08830910540F445 +:1017C00024912093F1003196615071090196F2CF76 +:1017D00021E0089709F020E08091E8008E7780935F +:1017E000E800CBCF2111CCCF0AC08091F101882332 +:1017F00061F0853061F08091E80083FD0AC080913E +:10180000E80082FFF2CF80E0089582E0089583E04F +:10181000089581E00895982F973058F59093E90046 +:10182000981739F07091EC002091ED005091F00084 +:1018300003C0242F762F50E021FF19C03091EB0018 +:101840003E7F3093EB003091ED003D7F3093ED0013 +:101850003091EB0031603093EB007093EC002093FB +:10186000ED005093F0002091EE0027FF07C09F5F2E +:10187000D3CF8F708093E90081E0089580E00895D0 +:101880008091F20187FF11C08091E80082FD05C0C0 +:101890008091F1018111F8CF11C08091E8008B7720 +:1018A0000BC08091F101882349F08091E80080FF0E +:1018B000F8CF8091E8008E778093E800089520911A +:1018C000E4003091E50095E64091EC00842F8170B2 +:1018D00040FF22C08091E80080FD1CC08091F10192 +:1018E000882391F0853091F08091EB0085FD10C048 +:1018F0004091E4005091E5004217530729F39A0103 +:10190000915011F784E0089582E0089583E00895EE +:1019100081E0089580E008954091E80042FFDECF25 +:1019200008950E94FF0C0E94070DE0EEF0E0808118 +:1019300081608083E8EDF0E080818F77808319BC3F +:10194000A7EDB0E08C918E7F8C9380818F7E808319 +:101950001092F00108950F931F93CF93DF930E948D +:10196000FF0C0E94070DC8EDD0E088818F77888337 +:1019700088818068888388818F7D888319BC1092D4 +:10198000F1011092ED011092EF011092EE0100EEC4 +:1019900010E0F80180818B7F80838881816088835B +:1019A00042E060E080E00E940B0CE1EEF0E080811C +:1019B0008E7F8083E2EEF0E0808181608083808191 +:1019C00088608083F80180818E7F80838881806138 +:1019D0008883DF91CF911F910F910895E8EDF0E09A +:1019E00080818F7E8083E7EDF0E08081816080835D +:1019F00084E082BF81E08093F0010C94AB0CE8EDB1 +:101A0000F0E080818E7F80831092E2000895109232 +:101A1000DA001092E10008951F920F920FB60F9214 +:101A200011242F933F934F935F936F937F938F93E3 +:101A30009F93AF93BF93EF93FF938091E10082FF59 +:101A40000BC08091E20082FF07C08091E1008B7F94 +:101A50008093E1000E94730F8091DA0080FF1FC025 +:101A60008091D80080FF1BC08091DA008E7F809328 +:101A7000DA008091D90080FF0DC080E189BD82E14C +:101A800089BD09B400FEFDCF81E08093F1010E9481 +:101A90006E0905C019BC1092F1010E947C09809169 +:101AA000E10080FF19C08091E20080FF15C08091A5 +:101AB000E2008E7F8093E2008091E200806180935B +:101AC000E2008091D80080628093D80019BC85E044 +:101AD0008093F1010E9480098091E10084FF30C071 +:101AE0008091E20084FF2CC080E189BD82E189BD44 +:101AF00009B400FEFDCF8091D8008F7D8093D8007F +:101B00008091E1008F7E8093E1008091E2008F7EE2 +:101B10008093E2008091E20081608093E2008091F6 +:101B2000ED01882311F084E007C08091E30087FD78 +:101B300002C081E001C083E08093F1010E9482092C +:101B40008091E10083FF29C08091E20083FF25C0DE +:101B50008091E100877F8093E10082E08093F10132 +:101B60001092ED018091E1008E7F8093E1008091E1 +:101B7000E2008E7F8093E2008091E200806180939A +:101B8000E20042E060E080E00E940B0C8091F000F7 +:101B900088608093F0000E947F09FF91EF91BF91D0 +:101BA000AF919F918F917F916F915F914F913F91F5 +:101BB0002F910F900FBE0F901F9018951F920F92AC +:101BC0000FB60F9211242F933F934F935F936F9310 +:101BD0007F938F939F93AF93BF93CF93DF93EF93B5 +:101BE000FF93C091E900CF708091EC00D82FD170A5 +:101BF00080FDD0E81092E9008091F000877F80930B +:101C0000F00078940E94220E1092E9008091F0007A +:101C100088608093F000CD2BCF70C093E900FF91D6 +:101C2000EF91DF91CF91BF91AF919F918F917F9174 +:101C30006F915F914F913F912F910F900FBE0F9039 +:101C40001F9018951F93CF93DF93CDB7DEB7AA9758 +:101C50000FB6F894DEBF0FBECDBFE2EFF1E088E033 +:101C60008E0F9091F10091938E13FBCF0E949E09ED +:101C70008091E80083FF1FC18091F2019091F301F0 +:101C8000492F50E04A30510508F015C1FA01EA5ACF +:101C9000FF4F0C945D23803881F0823809F00BC12E +:101CA0008091F6018F708093E9008091EB0085FBB5 +:101CB000882780F91092E90006C08091EE0190918A +:101CC000EF01911182609091E800977F9093E80076 +:101CD0008093F1001092F100C8C0282F2D7F09F0E9 +:101CE000EAC0882319F0823061F0E5C08091F401E8 +:101CF000813009F0E0C0933009F080E08093EF017B +:101D00002BC08091F401811127C08091F6018F7062 +:101D100009F4D1C08093E9002091EB0020FF1CC0A2 +:101D2000933021F48091EB00806214C09091EB001D +:101D300090619093EB0021E030E0A90102C0440FD4 +:101D4000551F8A95E2F74093EA001092EA008091CD +:101D5000EB0088608093EB001092E9008091E8002E +:101D6000877F86C08111A7C01091F4011F778091F1 +:101D7000E3008078812B8093E3008091E800877FE7 +:101D80008093E8000E94400C8091E80080FFFCCF27 +:101D90008091E30080688093E300111102C082E02B +:101DA00001C083E08093F10186C08058823008F042 +:101DB00082C08091F4019091F5018C3D53E095072C +:101DC00079F583E08A838AE289834FB7F894DE014C +:101DD000139620E03EE051E2E32FF0E050935700ED +:101DE000E49120FF03C0E295EF703F5FEF708E2F0C +:101DF00090E0EA3010F0C79601C0C0968D939D9395 +:101E00002F5F243149F74FBF8091E800877F80938F +:101E1000E8006AE270E0CE0101960E94470B14C010 +:101E2000AE014F5F5F4F6091F6010E948E0ABC01C8 +:101E3000009709F440C09091E800977F9093E800E4 +:101E400089819A810E94AA0B8091E8008B77809308 +:101E5000E80031C0803879F58091E800877F809371 +:101E6000E8008091ED018093F1008091E8008E7789 +:101E70008093E8000E94400C1EC081111CC090910C +:101E8000F4019230C0F48091E800877F8093E800ED +:101E90009093ED010E94400C8091ED01811106C0EC +:101EA0008091E30087FD02C081E001C084E080935F +:101EB000F1010E948A098091E80083FF0AC08091A5 +:101EC000E800877F8093E8008091EB008062809338 +:101ED000EB00AA960FB6F894DEBF0FBECDBFDF9120 +:101EE000CF911F9108950895CF938091F101882398 +:101EF000A1F0C091E900CF709091EC00892F817022 +:101F000090FD80E8C82B1092E9008091E80083FDE5 +:101F10000E94220ECF70C093E900CF910895909354 +:101F20007501809374010895E0917401F091750139 +:101F3000309721F00190F081E02D099480E0089520 +:101F4000E0917401F0917501309721F00280F381E6 +:101F5000E02D09940895E0917401F0917501309796 +:101F600021F00480F581E02D0994089520917201FB +:101F7000309173018217930771F0909373018093EE +:101F80007201E0917401F0917501309721F00680A3 +:101F9000F781E02D0994089520917001309171012D +:101FA0008217930771F09093710180937001E09113 +:101FB0007401F0917501309721F00084F185E02DD6 +:101FC0000994089508950C94E20F0E943C1B0E940E +:101FD000DD020C94FE1B9F92AF92BF92CF92DF92D4 +:101FE000EF92FF920F931F93CF93DF9300D000D017 +:101FF00000D0CDB7DEB70E94F5020DE010E0AA24B4 +:10200000A394B12C902E802F0E94E30398012958AD +:102010003E4F6901F901F080F826A1F40150110941 +:1020200088F78FEF89838A831B820E94451B81601A +:10203000782F9D838C8349815A816B818D810E9489 +:1020400082102FC09091DA0191FF04C08E830E940C +:10205000E9038E8125E030E0A501022E01C0440F86 +:102060000A94EAF7E42E4F21C1F029839A828E2147 +:1020700091E009F490E09B830E94451B8160782FDA +:102080009D838C8349815A816B818D810E9482104E +:10209000F6018081E826E08204C021503109E0F693 +:1020A000BDCF0E94E51E109176010E94940F181773 +:1020B000B9F00E94940F8093760126960FB6F8949B +:1020C000DEBF0FBECDBFDF91CF911F910F91FF906B +:1020D000EF90DF90CF90BF90AF909F900C948D08C1 +:1020E00026960FB6F894DEBF0FBECDBFDF91CF911D +:1020F0001F910F91FF90EF90DF90CF90BF90AF9026 +:102100009F900895CF93DF93CDB7DEB72B970FB68F +:10211000F894DEBF0FBECDBF4F83588769877A879B +:102120008B87DE01119686E0FD0111928A95E9F711 +:1021300085E0FE01379601900D928A95E1F749817D +:102140005A816B817C818D819E810E94CB162B965A +:102150000FB6F894DEBF0FBECDBFDF91CF910895CB +:10216000CF93882309F4C2C0C82F823859F40E9443 +:10217000940F81FDBBC089E30E94A5190E94721AC9 +:1021800089E30CC0833879F40E94940F80FDAEC0BF +:1021900083E50E94A5190E94721A83E50E94E7193F +:1021A000CF910C94721A843859F40E94940F82FDD6 +:1021B0009DC087E40E94A5190E94721A87E4EECFA1 +:1021C0008CEF8C0F813A48F48C2F0E9428218111CA +:1021D0008DC08C2F0E94A519E3CF80E28C0F883030 +:1021E00048F4C77081E001C0880FCA95EAF70E94E1 +:1021F0002B1AD6CF8BE58C0F833078F4C53A29F0B3 +:10220000C63A31F083E890E005C081E890E002C072 +:1022100082E890E0CF910C94B60F88E58C0F833163 +:1022200008F064C0C83A39F1C93A41F1CA3A49F1F3 +:10223000CB3A51F1CC3A59F1CD3A61F1C03B69F159 +:10224000CE3A71F1CF3A79F1C13B81F1C23B89F1CC +:10225000C33B91F1C43B99F1C53BA1F1C63BA9F148 +:10226000C73BB1F1C83BB9F1C93BC1F1CA3BC9F1A8 +:1022700080E090E038C082EE90E035C089EE90E0DA +:1022800032C08AEE90E02FC085EB90E02CC086EB48 +:1022900090E029C087EB90E026C08CEC90E023C052 +:1022A0008DEC90E020C083E891E01DC08AE891E0C9 +:1022B0001AC082E991E017C084E991E014C081E27C +:1022C00092E011C083E292E00EC084E292E00BC083 +:1022D00085E292E008C086E292E005C087E292E0E3 +:1022E00002C08AE292E0CF910C94CC0FCF91089576 +:1022F000882309F44BC0823859F40E94940F81FF5F +:1023000045C089E30E94A5190E94721A89E30CC096 +:10231000833871F40E94940F80FF38C083E50E94D7 +:10232000A5190E94721A83E50E94E7190C94721A8B +:10233000843859F40E94940F82FF28C087E40E94D9 +:10234000A5190E94721A87E4EFCF9CEF980F913A7B +:1023500058F390E2980F983050F4877091E001C0E4 +:10236000990F8A95EAF7892F0E94311ADFCF9BE5F2 +:10237000980F933020F480E090E00C94B60F885AC8 +:10238000833120F480E090E00C94CC0F08958823F2 +:1023900021F00E942B1A0C94721A0895882321F0C0 +:1023A0000E94311A0C94721A08957F928F929F9214 +:1023B000AF92BF92CF92DF92EF92FF920F931F9353 +:1023C000CF93DF931F92CDB7DEB77C01C62E772E59 +:1023D000FC01058102950F70128111110E94481AAB +:1023E0000E949E19882379F0112369F080E28C0DF8 +:1023F000883048F082E00E9487190E949E1991E07F +:10240000D82ED92601C0D12CE72DE295EF70F0E04F +:10241000E05AFF4F0C945D23872D807F072D0F70AE +:10242000882311F00295007F112389F0002309F41D +:1024300090C180E28C0D883020F4802F0E942B1AEE +:1024400003C0802F0E943B1A0E94721A82C18C2DF9 +:102450000E947811002309F495C180E28C0D883028 +:1024600020F4802F0E94311A03C0802F0E94411A4D +:102470000E94721A87C1972D907F872D8F7090329E +:1024800011F08295807FCC2021F0F1E0CF16B1F0E1 +:102490001EC0112349F0002309F414C1013009F0D2 +:1024A00011C10E945B1A6EC1002319F0013009F4BA +:1024B00069C189830E945E1A89810AC1112321F0B2 +:1024C000023008F05FC1FEC001115CC101C11123DF +:1024D00021F0002309F4F6C03CC1002309F4F8C040 +:1024E0003EC1872D86958695837090E0009719F000 +:1024F000019761F047C1112321F08C2D972D937026 +:1025000002C080E090E00E94B60F3CC1112321F090 +:102510008C2D972D937002C080E090E00E94CC0F2C +:1025200031C18C2D112319F00E94ED1D02C00E94B3 +:10253000551E0E94DA1E26C1872D837009F052C0F5 +:10254000111120C18C2D829586958770880F880F78 +:102550009C2D9F70892E912CA12CB12C082E04C08B +:10256000880C991CAA1CBB1C0A94D2F7C4FE14C088 +:102570000FE010E020E030E0B901A80104C0440FF2 +:10258000551F661F771F8A95D2F7CB01BA01609558 +:1025900070958095909503C060E070E0CB01272D89 +:1025A00026952695237030E02230310569F02330DE +:1025B000310589F0682979298A299B29213031053B +:1025C00071F00E941318DEC0682979298A299B2995 +:1025D0000E942F18D7C00E941318C501B4010E9491 +:1025E000F717D0C0112319F0872D817001C086958F +:1025F000882309F4C7C08C2D829586958770880F33 +:10260000880F9C2D9F70892E912CA12CB12C082E07 +:1026100004C0880C991CAA1CBB1C0A94D2F7C4FEE7 +:1026200014C00FE010E020E030E0B901A80104C0C0 +:10263000440F551F661F771F8A95D2F7CB01BA0149 +:10264000609570958095909503C060E070E0CB0137 +:10265000272D269526952370422F50E042305105B4 +:1026600069F04330510589F0682979298A299B2925 +:102670004130510571F00E94ED1884C06829792914 +:102680008A299B290E9409197DC00E94ED18C50165 +:10269000B4010E94D11876C08C2D90E0FC01E05E60 +:1026A000F109E531F10508F050C0E059FF4F0C94F5 +:1026B0005D230C2D0F70872D8F71112331F00E9437 +:1026C0006A18802F0E94C7115DC00E948B18802F4E +:1026D0000E94CE1157C0112339F0011153C0872D2C +:1026E0008F710E94B0184EC0023008F04BC0F7CF77 +:1026F000112339F0872D8F710E946A1843C011236E +:10270000C9F3872D8F710E948B183CC0112329F0CB +:10271000872D8F710E94551835C00E944B1832C00A +:10272000112351F0172D1F71812F0E946A1863E049 +:10273000812F0E947E1926C081E00E9487190230F5 +:1027400008F182E00E9487191DC0112331F0002397 +:1027500089F28C2D0E94B01015C0002391F28C2DAF +:102760000E9478110FC0472D4F706C2DC7010E9439 +:10277000BF040E946F1706C0472D4F706C2DC70114 +:102780000E949C05DD20F9F00E947A1980FD1BC093 +:10279000F70112820E9474190E946A18C7010E94F0 +:1027A000F2130E9474190F90DF91CF911F910F9136 +:1027B000FF90EF90DF90CF90BF90AF909F908F9061 +:1027C0007F900C948B180F90DF91CF911F910F91F8 +:1027D000FF90EF90DF90CF90BF90AF909F908F9041 +:1027E0007F9008950F931F93CF93DF93EC0188811F +:1027F00099812B813C81232BB9F09F3F11F48F3FAE +:1028000099F0CE010E94F404882371F068817981E7 +:102810008A810E9470198C010E9425190E94EC1770 +:10282000B801CE010E94D511DF91CF911F910F9178 +:1028300008950E94481A0E94581A0E941D1A0E9468 +:10284000721A0E948B1F0E94DA1E80E090E00E94A4 +:10285000B60F80E090E00C94CC0F0E94381A0C94D4 +:1028600019140E946519292F22952F7030E02C3001 +:1028700031054CF42A3031056CF4225031092230F4 +:102880003105A8F407C02C30310569F02F3031052F +:1028900051F00DC0803F69F018F4803E40F409C04B +:1028A000843F29F406C093FB882780F9089580E0CF +:1028B000089581E00895CF93DF9300D000D01F9258 +:1028C000CDB7DEB70F900F900F900F900F90DF9164 +:1028D000CF910895CF93DF9300D000D000D0CDB733 +:1028E000DEB726960FB6F894DEBF0FBECDBFDF91E0 +:1028F000CF9108951F93CF93DF93C091850116E088 +:1029000080918601C81799F0D0E01C9FF0011D9FAF +:10291000F00D1124E957FE4F40815181628173818E +:10292000848195810E946A142196C770E9CFDF9156 +:10293000CF911F9108954091B7015091B8016091D6 +:10294000B9017091BA018091BB019091BC010C94C6 +:102950006A148091BC0182958F7009F054C08091F7 +:10296000B901882309F44FC080918501A0918601A7 +:102970006091B7017091B8014091BA015091BB01CB +:10298000B6E08A1709F43FC090E041155105C1F146 +:102990007F3F11F46F3FA1F1B89FF001B99FF00D97 +:1029A0001124E957FE4F218172132AC0208162133E +:1029B00027C02281211124C02381348124173507A7 +:1029C00010F421503109241B350B283C3105C0F48B +:1029D0002091BC012F7020612093BC0126E0289F2C +:1029E000F001299FF00D1124E457FE4F80818F7074 +:1029F0008061808387EB91E00E94F2130C947A143B +:102A000001968770BECF0895CF92DF92EF92FF922A +:102A10000F931F93CF93DF93CDB7DEB762970FB6B7 +:102A2000F894DEBF0FBECDBF8C0185E0F801DE015A +:102A30001D9601900D928A95E1F7D8014C9111965F +:102A40005C91119712966C9112971396CD90DC9031 +:102A500014973091B7017091B8018091BA019091AB +:102A6000BB01009709F46BC17F3F19F43F3F09F4A4 +:102A700066C1E090B901EE2009F4C0C02091BC010C +:102A8000C816D90628F0F601E81BF90BCF0104C0DF +:102A9000809590958C0D9D1DFF24F394883C9105A5 +:102AA00078F0F12C207F09F0C6C07C2DD98AC88A25 +:102AB00089890E945B1487EB91E00E94F213B1C0F8 +:102AC000822F807F09F046C0751314C0341312C0E2 +:102AD000611110C02F7020612093BC010E949B14D3 +:102AE00087EB91E00E94F2138091BC01D80115960A +:102AF0008C932EC0CD2819F15F3F11F44F3FF9F0B0 +:102B0000F62E61111CC0809185012091860136E06E +:102B1000821709F45AC090E0389FF001399FF00DF8 +:102B20001124E957FE4F7181571306C07081471376 +:102B300003C07281711103C001968770E9CFF62E30 +:102B4000662309F418C18091BC0181608093BC01A7 +:102B5000F12C11C1751308C0341306C0611104C0F3 +:102B60008091BC01D801C3C04D875E878D859E854D +:102B70006A8B0E9431146A898823E1F16623D1F1BE +:102B80002091BC01822F82958F7090E0029774F0A3 +:102B90008091B7019091B80198878F831986DB8661 +:102BA000CA862C87CE0107960E94F21386E0F801B0 +:102BB000A7EBB1E001900D928A95E1F70E94A9146C +:102BC0000E949B14FF24F394D6C04D875E878D85A9 +:102BD0009E850E946519292F22952F7030E02230A2 +:102BE00031050CF0BCC09F7009F0B6C0805E883023 +:102BF00008F4C1C0C8010E94F213E4CFC816D90678 +:102C000008F453C0F601E81BF90BCF01883C91058D +:102C100008F450C0F12C7C2DD98AC88A89890E9479 +:102C20005B14E7EBF1E086E0DF011D928A95E9F79E +:102C30000E949B14A0C0751314C0341312C06111FC +:102C400010C08091BC01F8018583C8010E94F21375 +:102C500086E0E7EBF1E0DF011D928A95E9F7FE2CB3 +:102C60008AC04D875E878D859E856A8B0E94311450 +:102C70006A89882309F4BECF662309F4BBCF20916B +:102C8000BC01822F82958F7090E002970CF48ECF5A +:102C90008091B7019091B8019A8389831B82DD826C +:102CA000CC822E83CE0101967FCF809590958C0D9E +:102CB0009D1DACCFF62E662309F49CCF75132EC054 +:102CC00034132CC02091BC0120FD1FC0822F82959F +:102CD0008F70D9F0D80115962C9315978F3049F045 +:102CE0008F5F982F9295907F822F8F70892B1596EA +:102CF0008C93C8010E94F21386E0F801A7EBB1E0C3 +:102D000001900D928A95E1F793CF86E0F801A7EB49 +:102D1000B1E001900D928A95E1F72DC04D875E8755 +:102D20008D859E850E943114811140CF8091BC0118 +:102D300081608093BC01C8010E94F2131CC066230D +:102D400009F458CF4D875E878D859E850E9431148A +:102D5000882309F44FCF2ACF811148CF0CC02430EB +:102D600031050CF047CF9F7009F440CFF8019581F1 +:102D7000907F09F03BCF8F2D62960FB6F894DEBF9F +:102D80000FBECDBFDF91CF911F910F91FF90EF90BC +:102D9000DF90CF9008951F93CF93DF93CDB7DEB729 +:102DA0002C970FB6F894DEBF0FBECDBF4F83588768 +:102DB00069877A878B879C87CE0107960E940415C6 +:102DC000882369F08F8198852A853B85232BF1F133 +:102DD0009F3F09F063C08F3F09F060C037C086E0B5 +:102DE000FE013796DE01119601900D928A95E1F76A +:102DF0006F817885EA85FB85309741F17F3F11F43B +:102E00006F3F21F12091860130E0C9010196877062 +:102E100099274091850150E08417950709F447C030 +:102E200069837A83FD83EC8396E0929FD001939F20 +:102E3000B00D1124A957BE4FFE01319601900D929D +:102E40009A95E1F7809386010E947A1416E08091AA +:102E50008501909186018917C1F1189FC001112445 +:102E600089579E4F0E940415882379F1E0918501CE +:102E70001E9FF0011124E957FE4F4081518162816C +:102E80007381848195810E946A148091850190E00C +:102E900001968770992780938501D9CF4F815885F6 +:102EA00069857A858B859C850E946A14CFCF0E94A4 +:102EB0002D141092860110928501E7EBF1E086E077 +:102EC000DF011D928A95E9F7C1CF2C960FB6F894D1 +:102ED000DEBF0FBECDBFDF91CF911F910895EF925E +:102EE000FF920F931F93CF93DF938C01009709F408 +:102EF0006CC0F12CEE24E394E8012196F801849152 +:102F0000843740F4843008F051C0813081F0823041 +:102F100019F15BC0853709F444C0A8F19CE7980F0C +:102F2000903708F052C08F770E94781141C00E5F31 +:102F30001F4FFE01C49180E28C0F883048F4C770A7 +:102F40008E2D01C0880FCA95EAF70E944B1A14C053 +:102F50008C2F0E94B0102DC00E5F1F4FFE01C49138 +:102F600080E28C0F883058F4C7708E2D01C0880F16 +:102F7000CA95EAF70E94511A0E94721A1AC08C2F41 +:102F80000E94781116C00E5F1F4FFE01C491CC2322 +:102F900081F08FE99FE00197F1F700C00000C15078 +:102FA000F6CF0E5F1F4FFE01F49003C00E94B010D9 +:102FB0008E018F2D882309F49FCFEFE9FFE0319731 +:102FC000F1F700C000008150F5CFDF91CF911F9144 +:102FD0000F91FF90EF90089508956093C101709351 +:102FE000C2018093C3019093C4010C9419140F93F0 +:102FF0001F930091C1011091C2012091C301309132 +:10300000C401DC01CB01802B912BA22BB32B80932D +:10301000C1019093C201A093C301B093C4011F9159 +:103020000F910C9419140F931F930091C1011091EB +:10303000C2012091C3013091C401DC01CB01802386 +:103040009123A223B3238093C1019093C201A09343 +:10305000C301B093C4011F910F910C9419140F93E5 +:103060001F930091C1011091C2012091C3013091C1 +:10307000C401DC01CB0180279127A227B3278093CD +:10308000C1019093C201A093C301B093C4011F91E9 +:103090000F910C9419141092BD011092BE01109260 +:1030A000BF011092C0010C94191441E050E060E09F +:1030B00070E004C0440F551F661F771F8A95D2F732 +:1030C0004093BD015093BE016093BF017093C00156 +:1030D0000C94191441E050E060E070E004C0440F2B +:1030E000551F661F771F8A95D2F78091BD01909179 +:1030F000BE01A091BF01B091C001482B592B6A2B92 +:103100007B2B4093BD015093BE016093BF01709330 +:10311000C0010C94191441E050E060E070E004C07C +:10312000440F551F661F771F8A95D2F7409550951B +:10313000609570958091BD019091BE01A091BF01F5 +:10314000B091C001482359236A237B234093BD01DA +:103150005093BE016093BF017093C0010C94191489 +:1031600041E050E060E070E004C0440F551F661F6E +:10317000771F8A95D2F78091BD019091BE01A091F1 +:10318000BF01B091C001482759276A277B27409388 +:10319000BD015093BE016093BF017093C0010C94B8 +:1031A00019140F931F930091BD011091BE0120913E +:1031B000BF013091C001DC01CB01802B912BA22BF0 +:1031C000B32B8093BD019093BE01A093BF01B09338 +:1031D000C0011F910F910C9419140F931F9300912C +:1031E000BD011091BE012091BF013091C001DC01F1 +:1031F000CB0180239123A223B3238093BD0190931D +:10320000BE01A093BF01B093C0011F910F910C9418 +:1032100019140F931F930091BD011091BE012091CD +:10322000BF013091C001DC01CB0180279127A2278B +:10323000B3278093BD019093BE01A093BF01B093CB +:10324000C0011F910F910C9419140895CF92DF9231 +:10325000EF92FF920F931F93CF93DF938C01C09057 +:10326000C101D090C201E090C301F090C4018091EF +:10327000BD019091BE01A091BF01B091C001C82ACB +:10328000D92AEA2AFB2ACFE1D0E0D701C6010C2EC9 +:1032900004C0B695A795979587950A94D2F780FFB5 +:1032A00006C0B8018C2F0E94F207019721F42197E4 +:1032B00060F780E001C08C2FDF91CF911F910F91BB +:1032C000FF90EF90DF90CF900895CF93DF93EC01C4 +:1032D0000E942619BE010E94F207DF91CF91089546 +:1032E000CB010E94651908958091C501859585954A +:1032F000859508958091C5018770089598E0899F0C +:1033000090011124262B2093C5010C946A1820915A +:10331000C501809582238093C501982F977069F429 +:1033200030E0482F552747FD50952417350729F0E1 +:103330008595859585950C948B1808959091C50178 +:10334000977081E009F480E0089590910C01992331 +:1033500021F090910D01911109C020910E01309141 +:103360000F01F90132969FEF40E01FC0982F96950C +:10337000969596959F3050F5E0910E01F0910F01D2 +:10338000E90FF11D877021E030E0A90102C0440F70 +:10339000551F8A95E2F7CA019181892B818308958F +:1033A0009F3F39F04F5F4E3041F051915813F8CFA5 +:1033B0000DC05111F7CF942FF5CF9F3F39F0F90190 +:1033C000E90FF11D97FDFA95828308950895909174 +:1033D0000C01992321F090910D01911109C02091C8 +:1033E0000E0130910F01F9013296205F3F4F1FC04F +:1033F000982F9695969596959F30F0F4E0910E0152 +:10340000F0910F01E90FF11D877021E030E0A90173 +:1034100002C0440F551F8A95E2F7CA018095918139 +:103420008923818308953196E217F30729F090816B +:103430009813F9CF1082F7CF089581E090E0E091E2 +:103440000E01F0910F01E80FF91F108201968031F3 +:103450009105A9F708959091D901892B8093D901FD +:10346000089580959091D90189238093D901089579 +:103470001092D90108959091D801892B8093D80199 +:10348000089580959091D80189238093D80108955B +:103490001092D80108959091D701892B8093D7017C +:1034A000089580959091D70189238093D70108953D +:1034B0001092D70108958093C60108951092C60115 +:1034C000089580910E0190910F01FC0131969C01AD +:1034D000205F3F4F80E0919191118F5FE217F307DA +:1034E000D1F70895E0910E01F0910F018091D9017B +:1034F0008083E0910E01F0910F0190818091D801BD +:10350000892B8083E0910E01F0910F0190818091D1 +:10351000D701892B80838091C601882361F0E091D7 +:103520000E01F0910F019081892B80830E94611A16 +:1035300081111092C60180910E0190910F010C949F +:10354000A00F20E0009739F0AC01415051098423CD +:1035500095232F5FF7CF822F0895CF92DF92EF92BE +:10356000FF926C01EE24FF24C114D104E104F104A4 +:1035700021F0C701B60120E101C020E0C72ED82EFE +:10358000E92EFF24C114D104E104F10419F0285FED +:10359000C701B6016B017C0154E0F694E794D7941F +:1035A000C7945A95D1F7C114D104E104F10419F07C +:1035B0002C5FC701B6016B017C0142E0F694E794F1 +:1035C000D794C7944A95D1F7C114D104E104F1040A +:1035D00019F02E5FC701B601DC01CB01B695A795A6 +:1035E00097958795892B8A2B8B2B09F02F5F822F3C +:1035F000FF90EF90DF90CF9008958091F10184309B +:1036000021F11092DB0120E488E190E00FB6F894FC +:10361000A895809360000FBE2093600080E00E9418 +:103620008D0883B7817F846083BF83B7816083BF48 +:103630007894889583B78E7F83BF88E10FB6F8941E +:1036400080936000109260000FBE08950895089561 +:103650000E94261B0E94F5020E94271B0E94EA037B +:1036600091E0811101C090E0892F08950E942D14EE +:103670000E94940F0C948D0882E084BD93E095BD68 +:103680009AEF97BD80936E0008952FB7F8948091BC +:10369000DC019091DD01A091DE01B091DF012FBF2F +:1036A0000895CF92DF92EF92FF920F931F932FB75F +:1036B000F8944091DC015091DD016091DE01709140 +:1036C000DF012FBF6A017B01EE24FF248C0120E083 +:1036D00030E0C016D106E206F30610F4415051095D +:1036E0009A01281B390BC9011F910F91FF90EF9090 +:1036F000DF90CF9008951F920F920FB60F92112472 +:103700008F939F93AF93BF938091DC019091DD01E4 +:10371000A091DE01B091DF010196A11DB11D809342 +:10372000DC019093DD01A093DE01B093DF01BF9136 +:10373000AF919F918F910F900FBE0F901F90189592 +:103740000E94910CF8942FEF87EA91E62150804077 +:103750009040E1F700C0000087E090EBDC0180932F +:10376000FB019093FC01A093FD01B093FE019CE04E +:1037700088E10FB6F894A895809360000FBE9093EF +:103780006000FFCFEF92FF920F931F93CF93DF93D1 +:10379000D82FCDE08C2F0E94E30305E010E0E82E47 +:1037A000F12CC701002E02C0959587950A94E2F787 +:1037B00080FF09C0602F7C2F80E00E949D05D813F8 +:1037C00002C081E006C00150110958F7C15010F73E +:1037D00080E0DF91CF911F910F91FF90EF900895BE +:1037E000CF93C82F8CE20E94C21B882321F08C2F1C +:1037F000CF910C94C21B80E0CF910895CF930E948B +:10380000451D811102C00E942B1DC5E6C15049F023 +:103810000E94F5028FE39CE90197F1F700C00000D8 +:10382000F5CF89E20E94F01B811113C18AE20E9448 +:10383000F01B81110E942B1D85E00E94F01B81115D +:103840000E94A01B0E94501D8093DA0187E00E9415 +:10385000F01B8823A9F18BE10E94F01B882351F013 +:103860008091DA0181FB222720F991E0922790FBD9 +:1038700081F90EC08EE00E94F01B882361F08091D8 +:10388000DA0182FB222720F991E0922790FB82F94E +:103890008093DA0115C080E10E94F01B9091DA015B +:1038A000882341F093FB222720F981E0822780FBC7 +:1038B00093F904C0892F809580FB90F99093DA01E9 +:1038C0008091DA010E94541D0E94621D8093FA01CA +:1038D00080EE0E94F01B882341F08091FA01982F1E +:1038E000909590FB80F98093FA0189E30E94F01B88 +:1038F000882359F08091FA0181FB222720F991E079 +:10390000922790FB81F98093FA0182EE0E94F01BCE +:10391000882359F08091FA0182FB222720F991E057 +:10392000922790FB82F98093FA0186EE0E94F01BA9 +:10393000882359F08091FA0183FB222720F991E036 +:10394000922790FB83F98093FA0183EE0E94F01B8B +:10395000882359F08091FA0184FB222720F991E015 +:10396000922790FB84F98093FA0185E30E94F01B73 +:10397000882359F08091FA0185FB222720F991E0F4 +:10398000922790FB85F98093FA0181E30E94F01B56 +:10399000882359F08091FA0186FB222720F991E0D3 +:1039A000922790FB86F98093FA0181E10E94F01B37 +:1039B000882359F08091FA0187FB222720F991E0B2 +:1039C000922790FB87F98093FA018091FA010E9477 +:1039D000661D8091FA0187FB882780F980930D018D +:1039E00087E20E94F01BC82F8EE10E94F01B81111C +:1039F000C2608FE10E94F01B8111C46080E20E94CE +:103A0000F01B8111C86081E20E94F01B8111C0612E +:103A100082E20E94F01B8111C06283E20E94F01BCF +:103A20008111C06484E20E94F01B882311F0C068F9 +:103A300002C0CC2329F08C2F0E945D1D6C2F03C087 +:103A40000E94591D682F70E080E090E0CF910C94A7 +:103A5000ED17CF9108956DEE7EEF80E090E00E942B +:103A6000972360E082E090E00E94852360E083E09D +:103A700090E00E94852360E084E090E00E9485232E +:103A800060E085E090E00C94852380E090E00E9467 +:103A90007F2321E08D3E9E4F09F020E0822F089584 +:103AA00082E090E00C947723682F82E090E00C9401 +:103AB000852383E090E00C947723682F83E090E0E7 +:103AC0000C94852384E090E00C947723682F84E0A5 +:103AD00090E00C9485238091E20180FF0BC06091FF +:103AE000130185E0689FB001112475956795759560 +:103AF00067952BC081FF09C06091130185E0689F25 +:103B0000B00111247595679520C082FF07C06091B0 +:103B1000130185E0689FB001112417C09091E30163 +:103B20009923D1F060911201961788F72091130123 +:103B300085E0289F90011124929FA001939F500D32 +:103B4000112470E0CA010E9449236038710540F4D5 +:103B50006115710539F002C065E070E0862F0895A7 +:103B60008FE7089581E008958091E20180FF08C009 +:103B70006091110170E0759567957595679521C005 +:103B800081FF06C06091110170E07595679519C0BD +:103B900082FF04C06091110170E010C09091E301B8 +:103BA0009923C1F0609110019617A0F7809111013F +:103BB000899FC001112470E00E944923603871057B +:103BC00028F46115710521F0862F08958FE7089577 +:103BD00081E0089561E070E0F4CF803F21F40E941D +:103BE0006B1D819504C0813F29F40E946B1D809359 +:103BF000E6010895823F21F40E946B1D819504C067 +:103C0000833F29F40E946B1D8093E5010895893F4D +:103C100019F40E94B41D05C08A3F31F40E94B41DFE +:103C200081958093E70108958B3F21F40E94B41D94 +:103C3000819504C08C3F29F40E94B41D8093E80153 +:103C40000895843F21F48091E401816017C0853F8D +:103C500021F48091E401826011C0863F21F48091BB +:103C6000E40184600BC0873F21F48091E401886007 +:103C700005C0883F31F48091E40180618093E401C4 +:103C800008958D3F21F48091E20181600BC08E3F49 +:103C900021F48091E201826005C08F3F29F4809178 +:103CA000E20184608093E2010895803F39F48091BD +:103CB000E60187FF6CC01092E60169C0813F29F4DC +:103CC0008091E6011816BCF362C09091E501823F35 +:103CD00029F497FF5CC01092E50159C0833F19F4A5 +:103CE0001916CCF354C0893F41F48091E7011816AE +:103CF0000CF04DC01092E7014AC08A3F29F4809130 +:103D0000E70187FF44C0F6CF8B3F39F48091E8018B +:103D100087FF3DC01092E8013AC08C3F29F48091A2 +:103D2000E8011816BCF333C0843F21F48091E4010C +:103D30008E7F17C0853F21F48091E4018D7F11C0F3 +:103D4000863F21F48091E4018B7F0BC0873F21F4F3 +:103D50008091E401877F05C0883F31F48091E401C0 +:103D60008F7E8093E40113C08D3F21F48091E201A6 +:103D70008E7F0BC08E3F21F48091E2018D7F05C0C4 +:103D80008F3F29F48091E2018B7F8093E201809143 +:103D9000E50181110EC08091E60181110AC0809178 +:103DA000E701811106C08091E801811102C01092E3 +:103DB000E301089584EE91E00E94AB0F0E94451B41 +:103DC0009093E1018093E00108951F93CF93DF93D7 +:103DD0008091E0019091E1010E94511BAC01909112 +:103DE000E301992321F02091140130E006C02091D5 +:103DF00015018AE0289F900111244217530708F407 +:103E000086C08091E501C091E601D091E701109153 +:103E1000E801811107C0C11176C0D11174C0111120 +:103E200072C075C09F3F19F09F5F9093E301181611 +:103E300024F40E946B1D8093E5018091E50187FFCA +:103E400005C00E946B1D81958093E5011C1624F42A +:103E50000E946B1D8093E6018091E60187FF05C0FB +:103E60000E946B1D81958093E6016091E5016623B8 +:103E700039F1C091E601CC2319F1772767FD7095E0 +:103E8000872F972F0E945A2223E333E343E35FE314 +:103E90000E94BE220E9427226093E5016C2F7727A3 +:103EA00067FD7095872F972F0E945A2223E333E3F3 +:103EB00043E35FE30E94BE220E9427226093E60153 +:103EC0001D1624F40E94B41D8093E7018091E70140 +:103ED00087FF05C00E94B41D81958093E7011116EC +:103EE00024F40E94B41D8093E8018091E80187FFCB +:103EF00005C00E94B41D81958093E801DF91CF91A8 +:103F00001F910C94DA1E9F3F09F08ECF96CFDF9160 +:103F1000CF911F910895E4EEF1E085E0DF011D925D +:103F20008A95E9F71092E3011092E2010895833037 +:103F300081F128F4813059F08230D1F00895853034 +:103F400009F449C0B8F1863009F456C0089580914B +:103F50001501262F30E0280F311D2F3F310524F4A5 +:103F6000680F6093150108958FEF809315010895F0 +:103F700080911401262F30E0280F311D2F3F31058D +:103F800024F4680F6093140108958FEF8093140157 +:103F9000089580911301262F30E0280F311D2F3F07 +:103FA000310524F4680F6093130108958FEF809317 +:103FB0001301089580911201262F30E0280F311D42 +:103FC0002F3F310524F4680F6093120108958FEF9D +:103FD00080931201089580911101262F30E0280F5F +:103FE000311D2F3F310524F4680F609311010895AE +:103FF0008FEF80931101089580911001262F30E0FA +:10400000280F311D2F3F310524F4680F60931001F4 +:1040100008958FEF809310010895833011F128F4F3 +:10402000813049F0823091F00895853081F120F19E +:104030008630C1F1089580911501681720F4861B20 +:10404000809315010895109215010895809114012F +:10405000681720F4861B80931401089510921401B0 +:10406000089580911301681720F4861B8093130133 +:10407000089510921301089580911201681720F499 +:10408000861B809312010895109212010895809169 +:104090001101681720F4861B809311010895109276 +:1040A0001101089580911001681720F4861B8093F8 +:1040B000100108951092100108950F931F938D31F0 +:1040C00009F46BC008F03FC08E3009F47FC0C0F423 +:1040D000873009F469C068F4863009F0B1C0809176 +:1040E000DA01817F8E7F8093DA0181E08093EA019B +:1040F000A8C0883009F4A2C08B3009F49FC0A0C0CA +:10410000863109F49BC078F4803109F472C08131A2 +:1041100009F096C00E942D1490910D0181E089272D +:1041200080930D018BC0893109F488C08B3109F06F +:1041300087C08091DA0181FB222720F991E0922744 +:1041400090FB81F94CC0853309F470C048F4873284 +:1041500009F46CC008F459C0893209F467C070C012 +:10416000833438F48A3308F04EC0883309F466C0CB +:1041700067C0833409F45AC0883409F061C00E94D2 +:104180002D140FEF13ED20E3015010402040E1F714 +:1041900000C000000E94A01B51C00E94E1210E94AB +:1041A000940F0E948D084AC09091DA01892F809562 +:1041B000817080FB90F929F0966098609093DA0105 +:1041C00040C0997F977F9093DA0138C08091DA01DF +:1041D00082FB222720F991E0922790FB82F98093BD +:1041E000DA01992359F18091DA0181608093DA0133 +:1041F00025C08091DA0183FB222720F991E09227E4 +:1042000090FB83F9ECCF895301C08D5141E050E020 +:1042100060E070E08A019B0104C0000F111F221FA3 +:10422000331F8A95D2F7C901B80104C061E070E07C +:1042300080E090E00E94ED170E942D1481E001C003 +:1042400080E01F910F91089580E0089580E0089527 +:10425000CF93C82F8091EA01813079F018F0823035 +:10426000E9F187C0E0910E01F0910F018081813169 +:1042700069F0823209F07FC009C0E0910E01F0912F +:104280000F018081813111F0823261F48C2F0E9404 +:104290002421811104C08C2F0E945D201DC081E06B +:1042A00090E01AC08C2F0E942621811114C0C431C5 +:1042B00079F048F4CB3079F0C03109F060C082E089 +:1042C0008093EA0108C0C93219F0C83321F057C001 +:1042D0001092EA0154C081E0817053C0C93289F163 +:1042E00018F5C43171F1A8F4C73009F046C08AE06E +:1042F0008093150194E19093140193E0909313013E +:104300008093120188E08093110188E2809310016C +:1043100034C0CE51C63088F5EC2FF0E0E65DFE4F9C +:1043200080818093E90129C0CE34E9F020F4CB34B8 +:1043300021F56AE013C0C13579F0C235F1F461E0CE +:104340000DC08091E901882319F01092E90115C090 +:1043500081E08093EA0115C061E006C08091E90127 +:104360000E94971F0AC06AE08091E9010E940D2017 +:1043700004C01092EA0180E004C081E002C080E045 +:10438000ABCFCF910895E1E8F0E080818860808331 +:104390008081816080838FB7F89493E09093890047 +:1043A00090ED909388008FBF0895EFE6F0E0808154 +:1043B000826080830895EFE6F0E080818D7F8083C6 +:1043C0000895EFE6F0E0908182E0892780830895E8 +:1043D0001F920F920FB60F9211242F933F934F937A +:1043E0005F936F937F938F939F93AF93BF93EF935D +:1043F000FF938091EB019091EC0101969093EC0179 +:104400008093EB01811103C082E00E948D08E0914E +:10441000EC01E695E695F0E0E85FFB4FE4918091D2 +:10442000EB018E1303C080E00E948D08FF91EF9195 +:10443000BF91AF919F918F917F916F915F914F91BC +:104440003F912F910F900FBE0F901F90189504D0A1 +:104450006894B1118DC0089570D088F09F5790F086 +:10446000B92F9927B751A0F0D1F0660F771F881F99 +:10447000991F1AF0BA95C9F712C0B13081F077D000 +:10448000B1E0089574C0672F782F8827B85F39F09E +:10449000B93FCCF3869577956795B395D9F73EF4F8 +:1044A00090958095709561957F4F8F4F9F4F0895A0 +:1044B000E89409C097FB3EF49095809570956195BE +:1044C0007F4F8F4F9F4F9923A9F0F92F96E9BB2774 +:1044D0009395F695879577956795B795F111F8CFF0 +:1044E000FAF4BB0F11F460FF1BC06F5F7F4F8F4F5B +:1044F0009F4F16C0882311F096E911C0772321F051 +:104500009EE8872F762F05C0662371F096E8862FE8 +:1045100070E060E02AF09A95660F771F881FDAF73F +:10452000880F9695879597F9089557FD9058440FF1 +:10453000551F59F05F3F71F04795880F97FB991F02 +:1045400061F09F3F79F087950895121613061406BF +:10455000551FF2CF4695F1DF08C01616170618064C +:10456000991FF1CF86957105610508940895E89427 +:10457000BB2766277727CB0197F908950BD078C022 +:1045800069D028F06ED018F0952309F05AC05FC0AA +:104590001124EECFCADFA0F3959FD1F3950F50E021 +:1045A000551F629FF001729FBB27F00DB11D639FE5 +:1045B000AA27F00DB11DAA1F649F6627B00DA11D8B +:1045C000661F829F2227B00DA11D621F739FB00D31 +:1045D000A11D621F839FA00D611D221F749F3327A1 +:1045E000A00D611D231F849F600D211D822F762F3A +:1045F0006A2F11249F5750408AF0E1F088234AF037 +:10460000EE0FFF1FBB1F661F771F881F9150504082 +:10461000A9F79E3F510570F014C0AACF5F3FECF39D +:10462000983EDCF3869577956795B795F795E7956E +:104630009F5FC1F7FE2B880F911D9695879597F97F +:10464000089597F99F6780E870E060E008959FEF14 +:1046500080EC089500240A94161617061806090619 +:10466000089500240A9412161306140605060895E8 +:10467000092E0394000C11F4882352F0BB0F40F470 +:10468000BF2B11F460FF04C06F5F7F4F8F4F9F4FB0 +:10469000089597FB072E16F4009407D077FD09D0F4 +:1046A0000E94632307FC05D03EF4909581959F4FAF +:1046B0000895709561957F4F0895EE0FFF1F059047 +:1046C000F491E02D0994AA1BBB1B51E107C0AA1F5E +:1046D000BB1FA617B70710F0A61BB70B881F991FA3 +:1046E0005A95A9F780959095BC01CD010895F99947 +:1046F000FECF92BD81BDF89A992780B50895A8E1B3 +:10470000B0E042E050E00C949F23262FF999FECFB1 +:1047100092BD81BDF89A019700B4021639F01FBA14 +:1047200020BD0FB6F894FA9AF99A0FBE0895019633 +:10473000272F0E9486230C948523DC01CB01FC01EA +:10474000F999FECF06C0F2BDE1BDF89A319600B4EA +:0E4750000D9241505040B8F70895F894FFCFF5 +:10475E0002208F081D09FA08C60892080101C70138 +:10476E0028080A03140A3F4D3639C9037C03460351 +:10477E000D03A002B902D202EB02010203040506E8 +:04478E00070809000F +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.json b/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.json new file mode 100644 index 000000000..4ade74873 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.json @@ -0,0 +1,385 @@ +[ + { + "name": "Beginner's Keymap for Ergodox-EZ", + "author": "Anand Babu Periasamy" + }, + [ + { + "x": 3.5 + }, + "#\n3\n\n\nF3", + { + "x": 10.5 + }, + ")\n0\n\n\nF10" + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "@\n2\n\n\nF2", + { + "x": 1 + }, + "$\n4\n\n\nF4", + { + "x": 8.5 + }, + "(\n9\n\n\nF9", + { + "x": 1 + }, + "_\n-\n\n\nF11" + ], + [ + { + "y": -0.875, + "x": 5.5 + }, + "%\n5\n\n\nF5", + "^\n6\n\n\nF6", + { + "x": 4.5 + }, + "&\n7\n\n\nF7", + "*\n8\n\n\nF8" + ], + [ + { + "y": -0.875, + "w": 1.5 + }, + "~\n`\n\n\nEsc", + "!\n1\n\n\nF1", + { + "x": 14.5 + }, + "+\n=\n\n\nF12", + { + "a": 7, + "w": 1.5 + }, + "Backspace\n\n\n\nBackspace" + ], + [ + { + "y": -0.375, + "x": 3.5 + }, + "E\n\n\n\n", + { + "x": 10.5 + }, + "I" + ], + [ + { + "y": -0.8799999999999999, + "x": 2.5 + }, + "W" + ], + [ + { + "y": -0.9950000000000001, + "x": 4.5, + "a": 4 + }, + "R", + { + "x": 8.5, + "a": 7 + }, + "U", + { + "x": 1 + }, + "O" + ], + [ + { + "y": -0.875, + "x": 5.5 + }, + "T", + { + "h": 1.5 + }, + "", + { + "x": 4.5, + "h": 1.5 + }, + "", + "Y" + ], + [ + { + "y": -0.875, + "a": 6, + "w": 1.5 + }, + "Tab", + { + "a": 7 + }, + "Q", + { + "x": 14.5 + }, + "P", + { + "a": 4, + "w": 1.5 + }, + "|\n\\" + ], + [ + { + "y": -0.375, + "x": 3.5, + "a": 7 + }, + "D\n\n\n\n", + { + "x": 10.5 + }, + "K" + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "S\n\n\n\n", + { + "x": 1 + }, + "F\n\n\n\n", + { + "x": 8.5 + }, + "J", + { + "x": 1 + }, + "L" + ], + [ + { + "y": -0.875, + "x": 5.5 + }, + "G", + { + "x": 6.5 + }, + "H" + ], + [ + { + "y": -0.875, + "a": 4, + "fa": [ + 0, + 0, + 0, + 2 + ], + "w": 1.5 + }, + "\n\n\nCtrl\n\n\nCaps", + { + "a": 7 + }, + "A", + { + "x": 14.5, + "a": 4 + }, + ":\n;", + { + "a": 7, + "w": 1.5 + }, + "Enter" + ], + [ + { + "y": -0.625, + "x": 6.5, + "h": 1.5 + }, + "PgUp", + { + "x": 4.5, + "h": 1.5 + }, + "PgDn" + ], + [ + { + "y": -0.75, + "x": 3.5 + }, + "C", + { + "x": 10.5, + "a": 4 + }, + "<\n," + ], + [ + { + "y": -0.875, + "x": 2.5, + "a": 7 + }, + "X", + { + "x": 1 + }, + "V", + { + "x": 8.5 + }, + "M", + { + "x": 1, + "a": 4 + }, + ">\n." + ], + [ + { + "y": -0.875, + "x": 5.5, + "a": 7 + }, + "B", + { + "x": 6.5 + }, + "N" + ], + [ + { + "y": -0.875, + "w": 1.5 + }, + "Shift", + "Z", + { + "x": 14.5, + "a": 4 + }, + "?\n/", + { + "w": 1.5 + }, + "\"\n'" + ], + [ + { + "y": -0.375, + "x": 3.5, + "a": 7 + }, + "Alt\n\n\n\n", + { + "x": 10.5 + }, + "\n\n\n\n" + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "", + { + "x": 1 + }, + "Alt\n\n\n\n", + { + "x": 8.5 + }, + "", + { + "x": 1 + }, + "\n\n\n\n" + ], + [ + { + "y": -0.75, + "x": 0.5 + }, + "Ctrl\n\n\n\n", + "Esc", + { + "x": 14.5 + }, + "\n\n\n\n", + "Fn" + ], + [ + { + "r": 30, + "rx": 6.5, + "ry": 4.25, + "y": -1, + "x": 1 + }, + "", + "(" + ], + [ + { + "h": 2 + }, + "Space", + { + "h": 2 + }, + "Del", + "[" + ], + [ + { + "x": 2 + }, + "{" + ], + [ + { + "r": -30, + "rx": 13, + "y": -1, + "x": -3 + }, + ")", + "" + ], + [ + { + "x": -3 + }, + "]", + { + "h": 2 + }, + "Enter", + { + "h": 2 + }, + "" + ], + [ + { + "x": -3 + }, + "}" + ] +] \ No newline at end of file diff --git a/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.png b/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.png new file mode 100644 index 000000000..9a6546e35 Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.png differ diff --git a/keyboards/ergodox_ez/keymaps/ab/keymap.c b/keyboards/ergodox_ez/keymaps/ab/keymap.c new file mode 100644 index 000000000..9b5c93c1e --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/ab/keymap.c @@ -0,0 +1,140 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define FN1 1 // media layer + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | - | = | BSpace | + * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | Fwd | | Back | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * |Caps/Ctl| A | S | D | F | G |------| |------| H | J | K | L | ; | Enter | + * |--------+------+------+------+------+------| PgUp | | PgDn |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | ' | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | Ctrl | Esc | LGui | Alt | Alt | | Left | Up | Dn | Right| Fn | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Copy | ( | | ) | Paste| + * ,------|------+------| |------+------+------. + * | | | [ | | ] | | | + * |Space | Del |------| |------| Enter|BSpace| + * | | | { | | } | | | + * `--------------------' `--------------------' + */ +// 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_6, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_WBAK, + CTL_T(KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_PGUP, + KC_LCTL, KC_ESC, KC_LGUI, KC_LALT, KC_LALT, + LCTL(KC_C), KC_LCBR, + KC_LPRN, + KC_SPC, KC_DEL, KC_LBRC, + // right hand + KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_WFWD, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT, + KC_UP, KC_LEFT, KC_RIGHT,KC_DOWN, TG(FN1), + KC_RCBR, LCTL(KC_V), + KC_RPRN, + KC_RBRC, KC_ENT, KC_BSPC + ), +/* Keymap 1: Fn Keys, media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | BSpace | + * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Teensy| | | Lclk | Rclk | | |VolUp |VolDn | Mute | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------+------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// FN1 Layer + [FN1] = KEYMAP( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + 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, + RESET, KC_TRNS, KC_TRNS, + // right hand + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, + KC_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ), +}; + +const uint16_t PROGMEM fn_actions[] = { +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +// 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/keyboards/ergodox_ez/keymaps/ab/readme.md b/keyboards/ergodox_ez/keymaps/ab/readme.md new file mode 100644 index 000000000..6b1ac2be3 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/ab/readme.md @@ -0,0 +1,21 @@ +# Beginner's keymap for Ergodox-EZ +Beginner's keymap emulates standard QWERTY keyboard for beginners. Once you get comfortable with the Ergodox-EZ, you may fork this keymap and customize it for your own needs or find a suitable one from the community contributed keymaps. + +![Beginner's Keymap](keyboard-layout.png) + +#### Pros +* Easier to switch between regular keyboards and Ergodox-EZ. +* Easy on beginners. It has everything you need for your day to day usage. + +#### Cons +* Keys are not ergonomically placed to take full advantage of Ergodox-EZ. Take a look at this [Default Keymap](https://github.com/jackhumbert/qmk_firmware/blob/master/keyboards/ergodox_ez/keymaps/default/readme.md) +* While multiple layers are possible, beginner's keymap only uses one additional layer for mouse, function and volume keys. + +#### Notes +* Ideally number key [6] should have started from the right-hand side of the keyboard. Doing so breaks the familiar QWERTY layout. +* Quote key ['] should have been placed between [:] and [Enter]. Due to lack of key space, it is placed below [Enter]. +* Double [Alt] keys are placed adjacent to each other for convenience. +* [CapsLock] also acts as [Ctrl] key when you press and hold. It is convenient for GNU Emacs users. +* Additional bracket keys are placed in the center of the keyboard for programmer's convenience. + + diff --git a/keyboards/ergodox_ez/keymaps/adnw_k_o_y/compiled.hex b/keyboards/ergodox_ez/keymaps/adnw_k_o_y/compiled.hex new file mode 100644 index 000000000..aee94c583 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/adnw_k_o_y/compiled.hex @@ -0,0 +1,1133 @@ +:100000000C947B020C94BF020C94BF020C94BF02B0 +:100010000C94BF020C94BF020C94BF020C94BF025C +:100020000C94BF020C94BF020C94E90D0C94BB0E0F +:100030000C94BF020C94BF020C94BF020C94BF023C +:100040000C94BF020C9475210C94BF020C94BF0257 +:100050000C94BF020C94571C0C94BF020C94BF026A +:100060000C94BF020C94BF020C94BF020C94BF020C +:100070000C94BF020C94BF020C94BF020C94BF02FC +:100080000C94BF020C94BF020C94BF020C94BF02EC +:100090000C94BF020C94BF020C94BF020C94BF02DC +:1000A0000C94BF020C94BF020C94BF02280F4A0F9D +:1000B00038104A0F38108F0FB20F381007101A106F +:1000C000E912E912181318134E136E139F149F149C +:1000D00079139F142914291490149F149F149914B0 +:1000E00036143614361436143614361436143614C0 +:1000F00036143614361436143614361436143614B0 +:10010000481455145C1463146D140000F0A12E0003 +:100110004C002A00E100354100001E000E000B00DB +:100120001B6134004D001F00370004001400E1047F +:100130002800200012000800340050002C0021008C +:1001400036000C002F004F004A0022001D0018004E +:10015000330000006564500001530000006F000090 +:10016000E3004F000153000000670000E20023009D +:100170001900070005000000296124000A0017008B +:10018000130052004B002500060015001A00510014 +:10019000E50026000F00110010002F002B002700A3 +:1001A0002D0016420D6130004E002D001C00096824 +:1001B000E500C10000000100010001000100010094 +:1001C00000003A001E0220022202010001003B0052 +:1001D0001F0221022302010001003C002F0226021F +:1001E0002F00010001003D00300227023000010015 +:1001F00001003E003102350035020000010001001F +:1002000001000000010000000100010001000000E9 +:100210000100000001003F005200510024020000D4 +:1002200001004000240021001E00010001004100E7 +:10023000250022001F003700010042002600230095 +:10024000200027000100430025022E0231002E006D +:100250000100440045000100010001000000010010 +:100260000100010001000100000001000100010087 +:1002700001000100010001000100F2000100010085 +:1002800001000100F000F1000100F4000100010094 +:100290000100F3000100F500010001000100010070 +:1002A0000100000001000100010000000100000049 +:1002B0000100010001000000010000000100010038 +:1002C0000100010001000000010001000100010027 +:1002D0000100A9000100010001000100AC00AA001A +:1002E000B600010001000100AB00A8000100010000 +:1002F0000100010001000100010001000100AE0049 +:1003000001000100000016034500720067006F0045 +:1003100044006F007800200045005A0000001603DA +:100320004500720067006F0044006F0078002000F5 +:1003300045005A0000000403090409026D0004018D +:1003400000A0FA09040000010301010009211101C4 +:1003500000012240000705810308000A090401008A +:100360000103010200092111010001224D000705CE +:10037000820308000A0904020001030000000921A9 +:10038000110100012236000705830308000A090451 +:1003900003000103000000092111010001223900BE +:1003A000070584031000011201100100000008ED90 +:1003B000FE071301000102000105010906A1010564 +:1003C0000719E029E7150025019508750181020547 +:1003D000081901290595057501910295017503918B +:1003E0000105071900297715002501957875018108 +:1003F00002C005010980A101850216010026B7008F +:100400001A01002AB700751095018100C0050C097A +:1004100001A1018503160100269C021A01002A9CF5 +:1004200002751095018100C005010902A1010901B1 +:10043000A10005091901290515002501950575017A +:10044000810295017503810105010930093115818A +:10045000257F95027508810609381581257F95014C +:1004600075088106050C0A38021581257F950175EE +:10047000088106C0C005010906A101050719E02988 +:10048000E715002501950875018102950175088120 +:100490000105081901290595057501910295017558 +:1004A0000391010507190029FF150026FF00950695 +:1004B00075088100C000000000000000000000007E +:1004C000010204060A0F17202C3A4A5D71879DB37A +:1004D000C7DAE9F5FCFFFCF5E9DAC7B39D87715D82 +:1004E0004A3A2C20170F0A060402010000000000FF +:1004F00000000000000011241FBECFEFDAE0DEBFD5 +:10050000CDBF04B603FE24C08091FD019091FE0191 +:10051000A091FF01B09100028730904BA740B04BF3 +:10052000B9F41092FD011092FE011092FF01109299 +:10053000000214BE84B7877F84BF88E10FB6F894A9 +:1005400080936000109260000FBEE0E0FFE3099529 +:1005500011E0A0E0B1E0E8E7F6E402C005900D92FA +:10056000A433B107D9F711E0A4E3B1E001C01D92B3 +:10057000AD3FB107E1F70E94310B0C943A230C9484 +:1005800000001092B9008AE08093B800089594EAC0 +:100590009093BC009091BC0097FFFCCF9091B90064 +:1005A000987F983021F0903111F081E00895809388 +:1005B000BB0084E88093BC008091BC0087FFFCCF27 +:1005C0008091B900887F883111F0803471F780E024 +:1005D000089584E98093BC008091BC0084FDFCCF29 +:1005E00008958093BB0084E88093BC008091BC0098 +:1005F00087FFFCCF9091B900987F81E0983209F491 +:1006000080E0089584E88093BC008091BC0087FF5F +:10061000FCCF8091BB00089580B38C7080BB81B308 +:10062000836F81BB089580910101811115C080E421 +:100630000E94C7028093010181110CC082E10E94D7 +:10064000F10280930101811105C08FEF0E94F10238 +:10065000809301010E94E90284B1807F84B985B151 +:10066000807F85B98AB1837F8AB98BB1837F8BB94B +:100670003E98469808950E94DD04809301010E94EF +:1006800013030E940C03A5E3B1E0E3E4F1E08EE084 +:100690008E0F11921D928E13FCCF0C94C7040E94F2 +:1006A000DD04809301010E9413030E940C03A5E363 +:1006B000B1E0E3E4F1E08EE08E0F11921D928E1313 +:1006C000FCCF0895BF92CF92DF92EF92FF920F93EB +:1006D0001F93CF93DF9380910101882379F080915C +:1006E00034018F5F80933401811108C00E94DD04C2 +:1006F00080930101811102C00E946F0405E311E0A3 +:10070000C0E0D0E0DD24D39482E0C82EEE24E39450 +:10071000F12CC730D10500F580910101811164C031 +:1007200080E40E94C70280930101811112C082E11E +:100730000E94F1028093010181110BC0C7010C2EB0 +:1007400001C0880F0A94EAF780950E94F102809315 +:1007500001010E94E90248C0CA30A1F028F4C83063 +:1007600059F0C93061F005C0CC3089F070F0CD305F +:1007700089F0209A289810C0219A29980DC0229AB1 +:100780002A980AC0239A2B9807C0529A01C0539AFC +:100790005B9802C03E9A469890EA9A95F1F79FB10D +:1007A000799902C082E001C080E091709D25982B6C +:1007B0007C9902C084E001C080E0892B7D9902C051 +:1007C00038E001C030E0832B7E9902C020E101C0F7 +:1007D00020E0822B9FB19095991F9927991F9295A0 +:1007E000990F907E892B0FC080910101811149C022 +:1007F00080E40E94C70280930101882379F1B12C23 +:100800000E94E9028B2DF8019081981719F08083DE +:10081000C09200010E94130321960F5F1F4FCE303C +:10082000D10509F076CF80910001882361F18150D4 +:1008300080930001882339F08FE99FE00197F1F759 +:1008400000C0000020C0A3E4B1E0E5E3F1E0CF0187 +:10085000825F91919D938E13FCCF15C083E10E941E +:10086000F102809301018111CACF81E40E94C70285 +:10087000809301018111C3CF0E940203B82EB0946E +:10088000BFCF80E0C0CF0E946D0481E0DF91CF91A7 +:100890001F910F91FF90EF90DF90CF90BF90089540 +:1008A000E82FF0E0ED5BFE4F8081089508950F93EF +:1008B0001F93CF93DF93C3E4D1E010E00C2F025FCE +:1008C000899190E00E947E1B180F0C13F9CF812FA5 +:1008D000DF91CF911F910F9108950C943D0556988B +:1008E0005E9825982D9826982E9827982F988FEF08 +:1008F00090E0909389008093880090938B00809380 +:100900008A0090938D0080938C00259A2D9A2FEF6A +:1009100080E792E0215080409040E1F700C0000065 +:10092000269A2E9A2FEF80E792E021508040904047 +:10093000E1F700C00000279A2F9A2FEF80E792E09E +:10094000215080409040E1F700C0000025982D988C +:100950002FEF80E792E0215080409040E1F700C007 +:10096000000026982E982FEF80E792E021508040DB +:100970009040E1F700C0000027982F9856985E98A5 +:1009800025982D9826982E9827982F98089589EACB +:100990008093800089E08093810024982C983F9870 +:1009A0008AB18F748AB96E98479A8BB1806B8BB974 +:1009B000769A0E946F040C943C0580E280930101BA +:1009C0008091510181110EC00E94C10281E080938B +:1009D00051012FEF83ED90E3215080409040E1F7EB +:1009E00000C0000080E40E94C702809301018111D1 +:1009F0002EC00E94F10280930101811128C00E9443 +:100A0000F10280930101811122C08FE30E94F10263 +:100A10008093010181111BC00E94E90280E40E94C1 +:100A2000C70280930101811112C08CE00E94F10283 +:100A30008093010181110BC00E94F102809301019A +:100A4000811105C08FE30E94F102809301010E9491 +:100A5000E90280910101089561110BC0FC018281BE +:100A6000882321F085EE0E948D1103C085EE0E943F +:100A7000551280E090E0089508956091BE01709154 +:100A8000BF018091C0019091C1010E948A1B5698BC +:100A90005E9825982D9826982E9827982F98813023 +:100AA00019F0823021F00895259A2D9A0895269AFA +:100AB0002E9A089581E0089581E008950C945C05D4 +:100AC0000895282F882339F090E02A3010F44D96AD +:100AD00008950697089587E290E00895AF92BF9237 +:100AE000DF92EF92FF920F931F93CF93DF938C01CE +:100AF000FC01C081D181CE010E94031ABE010E9477 +:100B0000DE08EC01B8010E945E05882309F4C9C122 +:100B1000F8018281882309F4BEC080915E018111B1 +:100B20001FC0C431F0E7DF0709F0B5C10E946005BE +:100B300081E080935E010E94211C90935D0180936F +:100B40005C011092550110925701109256011092BB +:100B500059011092580110925B0110925A01A1C1E3 +:100B600080915C0190915D010E942D1C883C910553 +:100B700070F480915501E82FF0E0EE0FFF1FEA5A64 +:100B8000FE4FD183C0838F5F809355018AC1C130EE +:100B900020E8D20708F451C0F8018281882309F4C3 +:100BA0007EC05E01E894B7F880915401813079F0FD +:100BB00050F08230C1F482EE0E948D1187E50E94D0 +:100BC0008D1187E50EC082EE0E948D110CC080EE63 +:100BD0000E948D1181EE0E948D1188E10E948D117D +:100BE00088E10E9455128CE0E82EF12CC5010E2CF4 +:100BF00002C0969587950A94E2F78F700E9461056E +:100C0000D82E0E948D118D2D0E945512F4E0EF1AFE +:100C1000F1082CEFE2162FEFF20641F78091540114 +:100C2000813029F010F0823041F482EE04C080EE71 +:100C30000E94551281EE0E945512C43180E7D807F8 +:100C400068F4C23090E7D90708F046C0C115E0E764 +:100C5000DE0771F0C130D047A1F10CC1C33320E7EA +:100C6000D20709F4D8C0C433D04709F4EBC002C19D +:100C7000F8018281882309F402C10E940A15FFEF5E +:100C800024E38CE0F15020408040E1F700C00000F8 +:100C90000E947C1C06C1C13080E8D80770F2C431C4 +:100CA00020E7D20708F0B3C0C23080E7D807A0F42D +:100CB000C11590E7D90709F4E2C0C130D04709F067 +:100CC000D9C0F8018281882309F4D9C08091DB0161 +:100CD00081608093DB01E5C0F8018281882309F4FB +:100CE000CEC00E94D61C811102C00E94BC1C0E9472 +:100CF000E91C90E09093EF018093EE01C230F0E7A1 +:100D0000DF0721F48091EE0181607AC0C33020E7D3 +:100D1000D20721F48091EE01826072C0C43080E776 +:100D2000D80721F48091EE0184606AC0C53090E755 +:100D3000D90719F48091EE0127C0C630E0E7DE073D +:100D400021F48091EE0180615BC0C730F0E7DF07DE +:100D500021F48091EE01806253C0C83020E7D207B1 +:100D600021F48091EE0180644BC0C93080E7D80740 +:100D700021F48091EE01806843C0CA3090E7D90722 +:100D800029F48091EE01846088603AC0CB30E0E7BE +:100D9000DE0721F48091EE018E7F32C0CC30F0E787 +:100DA000DF0721F48091EE018D7F2AC0CD3020E74E +:100DB000D20721F48091EE018B7F22C0CE3080E7F4 +:100DC000D80719F48091EE011AC08091EE01CF305E +:100DD00090E7D90711F48F7E13C0C031E0E7DE073A +:100DE00011F48F7D0DC0C131F0E7DF0711F48F7B67 +:100DF00007C0C231D04711F48F7702C08B7F877F45 +:100E00008093EE018091EE010E94ED1C4AC0C33335 +:100E1000F0E7DF07A1F4F8018281882321F0109226 +:100E2000520182E016C080915201811106C086E213 +:100E30000E948D1186E20E94551282E018C0C433D0 +:100E4000D047C1F4F8018281882331F01092530118 +:100E500080E20E94A41225C080915301811106C036 +:100E600087E20E948D1187E20E94551280E20E9463 +:100E7000AB1217C081E08093520180935301C801E7 +:100E8000DF91CF911F910F91FF90EF90DF90BF9076 +:100E9000AF900C945A05C130F0E8DF0708F081CE1E +:100EA000CCCE80E0DF91CF911F910F91FF90EF901A +:100EB000DF90BF90AF90089526E0729FF00111245B +:100EC00044E5849FE00DF11D1124E60FF11DEE0FA6 +:100ED000FF1FE25FFE4F859194910E94F0088115FB +:100EE00060E49607B0F5811570E3970708F0DEC05F +:100EF000803E9105D8F4803C910508F06CC0883A9A +:100F0000910578F4853A910508F06BC08130910520 +:100F100009F452C108F40FC18430910508F04CC1A6 +:100F20000AC18B3B910508F467C005C18F3F91054D +:100F300009F048F4803F910508F0ADC0883E910566 +:100F400008F43AC1F8C0811520E2920708F0A5C064 +:100F50000895811543E5940790F4811562E596079D +:100F600008F0C8C0811571E5970708F0BEC081156B +:100F700020E5920708F09DC09F70906A0895811542 +:100F800045E59407D8F4811564E5960708F0C8C0D4 +:100F9000482F4695469570E2479FA0011124837023 +:100FA000992721E030E0B90102C0660F771F8A95CA +:100FB000E2F7CB01842B952B9A680895811576E58D +:100FC000970708F4B2C09C0130562115304108F053 +:100FD000B2C09F70AEC0FC01EE0FFF1FE657F0409D +:100FE00062C0853A910509F4A9C0863A910509F0D5 +:100FF000A8C082E890E40895883A910509F4A4C055 +:10100000893A910509F4A3C08A3A910509F4A2C06E +:101010008B3A910509F4A1C08C3A910509F4A0C05E +:101020008D3A910509F49FC0803B910509F49EC05B +:101030008E3A910509F49DC08F3A910509F49CC040 +:10104000813B910509F49BC0823B910509F49AC04C +:10105000833B910509F499C0843B910509F498C03C +:10106000853B910509F497C0863B910509F496C02C +:10107000873B910509F495C0883B910509F494C01C +:10108000893B910509F493C08A3B910509F492C00C +:1010900080E094E4089590650895FC01FF70EE0FE0 +:1010A000FF1FE65FFE4F8591949108959927906CFC +:1010B0000895482F437021E030E002C0220F331F13 +:1010C0004A95E2F73C68AC0164E0569547956A950D +:1010D000E1F74370342B8F708695869560E2869F8A +:1010E000C0011124822B932B0895982F8827816F9C +:1010F000906A0895482F4695469570E2479FA00153 +:1011000011248370992721E030E0B90102C0660FF5 +:10111000771F8A95E2F7CB01842B952B9C68089565 +:10112000982F8827846F906A08958F719927982F38 +:1011300088279062089580E090E0089581E890E427 +:10114000089583E890E4089582EE94E4089589EE8A +:1011500094E408958AEE94E4089585EB94E4089568 +:1011600086EB94E4089587EB94E408958CEC94E482 +:1011700008958DEC94E4089583E895E408958AE851 +:1011800095E4089582E995E4089584E995E4089545 +:1011900081E296E4089583E296E4089584E296E479 +:1011A000089585E296E4089586E296E4089587E23C +:1011B00096E408958AE296E40895089596E0799F6A +:1011C000F001112494E5899FE00DF11D1124E60F33 +:1011D000F11DEE0FFF1FE25FFE4F85919491089580 +:1011E0008238910549F1B0F48133910509F458C072 +:1011F00048F48932910509F44EC08A32910509F408 +:1012000054C008958533910509F440C08933910590 +:1012100099F00895833E910529F138F4803E9105B7 +:1012200091F0823E9105A1F00895863E9105F9F076 +:10123000873E910531F108952091EE0120FD3AC0DD +:1012400021FD38C008958091EE0180FD35C032C087 +:101250008091EE0182FF32C08091EE0184FD30C0AA +:1012600083EE39C08091EE0182FD28C0F5CF8091D8 +:10127000EE0183FF27C08091EE0184FD21C087EE3F +:101280002AC08091EE0183FD1DC0F5CF8091EE0153 +:1012900085FD1AC01BC08091EE0185FD17C014C0EA +:1012A0008091EE0186FD14C015C08091EE0186FD8F +:1012B00011C00EC080EE0FC089E30DC082EE0BC0DE +:1012C00080E009C086EE07C089E205C085E303C05F +:1012D0008AE201C081E390E0089508950C946D09BD +:1012E00080916F010895CF93DF9300D01F92CDB707 +:1012F000DEB79C018091F401843019F593E0998365 +:101300003B832A839093E9008FEF9091E80081500E +:1013100095FD06C095ED9A95F1F700008111F5CF86 +:101320008091E80085FF0DC040E050E063E070E090 +:10133000CE0101960E94D90B8091E8008E778093B0 +:10134000E8000F900F900F90DF91CF910895CF9309 +:10135000DF9300D01F92CDB7DEB72091F401243087 +:1013600021F522E029839B838A8383E08093E9002F +:101370008FEF9091E800815095FD06C095ED9A950C +:10138000F1F700008111F5CF8091E80085FF0DC0D5 +:1013900040E050E063E070E0CE0101960E94D90B7E +:1013A0008091E8008E778093E8000F900F900F9067 +:1013B000DF91CF9108952091F4012430F1F422E0DF +:1013C0002093E9002FEF3091E800215035FD06C051 +:1013D00035ED3A95F1F700002111F5CF2091E800A5 +:1013E00025FF0BC040E050E065E070E00E94D90BA3 +:1013F0008091E8008E778093E8000895CF93DF9383 +:10140000EC019091F401943009F046C080910C01F8 +:101410008823D9F080910D018823B9F09093E900D9 +:101420008FEF9091E800815095FD06C095E19A9567 +:10143000F1F700008111F5CF8091E80085FF2CC005 +:1014400040E050E060E170E017C081E08093E90087 +:101450008FEF9091E800815095FD06C095ED9A952B +:10146000F1F700008111F5CF8091E80085FF14C0ED +:1014700040E050E068E070E0CE010E94D90B80911E +:10148000E8008E778093E80080E1FE01AFE5B1E0EF +:1014900001900D928A95E1F7DF91CF9108958091A7 +:1014A000F301811109C00E946E0D0E94CB0D809145 +:1014B000E20084608093E20008951092F3010895A1 +:1014C00008950C9462210E94121C0E9468210E94BF +:1014D00071100C946E0942E061EC81E00E94E80C0E +:1014E00042E061EC82E00E94E80C42E061EC83E0C3 +:1014F0000E94E80C42E161EC84E00C94E80C8091DD +:10150000F601833009F455C030F4813071F0823037 +:1015100009F48EC008958A3009F47AC08B3009F43A +:1015200060C0893009F09CC020C08091F501813AEB +:1015300009F096C08091E800877F8093E800809151 +:10154000F9019091FA01892B21F460E18FE591E096 +:1015500003C060E080E090E070E00E94240C809185 +:10156000E8008B778093E80008958091F50181323F +:1015700009F076C08091F9019091FA01009719F075 +:10158000039709F06DC08091E800877F8093E800A1 +:101590008091E80082FD05C08091F4018111F8CFAF +:1015A0005FC08091F10080936F018091E8008B779C +:1015B00053C08091F501813A09F052C08091F90140 +:1015C0009091FA01892B09F04BC08091E800877F48 +:1015D0008093E8008091E80080FFFCCF80910C01AF +:1015E00036C08091F5018132D9F58091F901909151 +:1015F000FA01892BA9F58091E800877F8093E800A4 +:101600000E941D0D8091F70180930C010C940A1526 +:101610008091F501813221F58091E800877F8093E8 +:10162000E8000E941D0D8091F801809370010895DB +:101630008091F501813AA1F48091E800877F809341 +:10164000E8008091E80080FFFCCF809170018093DA +:10165000F1008091E8008E778093E8000C941D0DD6 +:10166000089584B7877F84BF88E10FB6F89480938C +:101670006000109260000FBE80E8809361001092BD +:1016800061000E94C0100E946E0D0E94CB0D8091DF +:10169000E20084608093E20078940E9451100E94DE +:1016A000C21082E091E00E946C100E945021809153 +:1016B000F401853069F40E94DA1B8091F2018823DD +:1016C000B1F30E94041C882391F30E94C30BEFCF57 +:1016D0000E94C810ECCF292F332723303105C9F0E1 +:1016E00064F42130310581F02230310509F043C026 +:1016F0008DE690E02AE333E042C021323105F1F07B +:101700002232310541F137C082E190E027EA33E02F +:1017100036C099278130910541F08230910541F022 +:10172000892B49F5E6E3F3E005C0EEE1F3E002C002 +:10173000E6E0F3E0849190E09F0121C06430D8F4AA +:10174000E62FF0E0EE0FFF1FEE5DFE4F20813181AE +:1017500089E090E014C0643070F470E0FB01EE0F9B +:10176000FF1FE65EFE4F20813181FB01EA5EFE4FE6 +:10177000808190E004C080E090E020E030E0FA0159 +:1017800031832083089580E189BD82E189BD09B458 +:1017900000FEFDCF8091D8008F7D8093D80080918E +:1017A000E00082608093E0008091E00081FDFCCF4A +:1017B0000895CF92DF92EF92FF920F931F93CF93F2 +:1017C000DF93EC018B016A010E943C0D811133C053 +:1017D000C114D10439F0F60180819181081B190BE5 +:1017E000C80FD91FE12CF12C0115110519F18091B9 +:1017F000E80085FD16C08091E8008E778093E800B0 +:10180000C114D10449F0F60180819181E80EF91EDE +:10181000F182E08285E00FC00E943C0D882321F315 +:101820000AC089918093F10001501109FFEFEF1A6E +:10183000FF0ADACF80E0DF91CF911F910F91FF90E7 +:10184000EF90DF90CF9008952091FB013091FC0143 +:101850002617370748F06115710539F42091E80023 +:101860002E772093E80001C0B90140E061157105B1 +:10187000A9F12091F401222309F443C0253009F491 +:1018800042C02091E80023FD40C02091E80022FDE5 +:1018900032C02091E80020FFE9CF4091F300209171 +:1018A000F20030E0342BFC01CF016115710559F0D5 +:1018B0002830310540F481918093F1006150710925 +:1018C0002F5F3F4FF1CF41E02830310509F040E074 +:1018D0002091E8002E772093E800C8CF4111C9CFAE +:1018E0000AC08091F401882361F0853061F0809115 +:1018F000E80083FD0AC08091E80082FFF2CF80E01B +:10190000089582E0089583E0089581E0089520918C +:10191000FB013091FC012617370748F0611571056E +:1019200039F42091E8002E772093E80001C0B90136 +:10193000FC0120E06115710591F18091F40188238B +:1019400009F440C0853009F43FC08091E80083FD70 +:101950003DC08091E80082FD2FC08091E80080FFAB +:10196000E9CF2091F3008091F20090E0922B611575 +:10197000710559F08830910540F424912093F100CD +:101980003196615071090196F2CF21E0089709F074 +:1019900020E08091E8008E778093E800CBCF211182 +:1019A000CCCF0AC08091F401882361F0853061F0CA +:1019B0008091E80083FD0AC08091E80082FFF2CFA9 +:1019C00080E0089582E0089583E0089581E008951D +:1019D000982F973058F59093E900981739F0709147 +:1019E000EC002091ED005091F00003C0242F762FE1 +:1019F00050E021FF19C03091EB003E7F3093EB00A7 +:101A00003091ED003D7F3093ED003091EB0031607F +:101A10003093EB007093EC002093ED005093F000B6 +:101A20002091EE0027FF07C09F5FD3CF8F70809378 +:101A3000E90081E0089580E008958091F50187FF35 +:101A400011C08091E80082FD05C08091F4018111F0 +:101A5000F8CF11C08091E8008B770BC08091F40122 +:101A6000882349F08091E80080FFF8CF8091E8005A +:101A70008E778093E80008952091E4003091E5008E +:101A800095E64091EC00842F817040FF22C0809148 +:101A9000E80080FD1CC08091F401882391F085301E +:101AA00091F08091EB0085FD10C04091E4005091D1 +:101AB000E5004217530729F39A01915011F784E08A +:101AC000089582E0089583E0089581E0089580E01C +:101AD00008954091E80042FFDECF08950E94DC0D9A +:101AE0000E94E40DE0EEF0E0808181608083E8ED0B +:101AF000F0E080818F77808319BCA7EDB0E08C91F6 +:101B00008E7F8C9380818F7E80831092F301089565 +:101B10000F931F93CF93DF930E94DC0D0E94E40D7F +:101B2000C8EDD0E088818F7788838881806888833A +:101B300088818F7D888319BC1092F4011092F00186 +:101B40001092F2011092F10100EE10E0F801808194 +:101B50008B7F808388818160888342E060E080E0C1 +:101B60000E94E80CE1EEF0E080818E7F8083E2EE5F +:101B7000F0E0808181608083808188608083F801CB +:101B800080818E7F8083888180618883DF91CF917F +:101B90001F910F910895E8EDF0E080818F7E8083A2 +:101BA000E7EDF0E080818160808384E082BF81E0A6 +:101BB0008093F3010C94880DE8EDF0E080818E7F36 +:101BC00080831092E20008951092DA001092E100F2 +:101BD00008951F920F920FB60F9211242F933F93E7 +:101BE0004F935F936F937F938F939F93AF93BF9325 +:101BF000EF93FF938091E10082FF0BC08091E200A0 +:101C000082FF07C08091E1008B7F8093E1000E94FA +:101C100050108091DA0080FF1FC08091D80080FFB3 +:101C20001BC08091DA008E7F8093DA008091D9000A +:101C300080FF0DC080E189BD82E189BD09B400FE4D +:101C4000FDCF81E08093F4010E944F0A05C019BCCA +:101C50001092F4010E945D0A8091E10080FF19C09A +:101C60008091E20080FF15C08091E2008E7F80931A +:101C7000E2008091E20080618093E2008091D800D0 +:101C800080628093D80019BC85E08093F4010E94A3 +:101C9000610A8091E10084FF30C08091E20084FFFE +:101CA0002CC080E189BD82E189BD09B400FEFDCF71 +:101CB0008091D8008F7D8093D8008091E1008F7E45 +:101CC0008093E1008091E2008F7E8093E20080911A +:101CD000E20081608093E2008091F001882311F09E +:101CE00084E007C08091E30087FD02C081E001C06D +:101CF00083E08093F4010E94630A8091E10083FFF6 +:101D000029C08091E20083FF25C08091E100877F98 +:101D10008093E10082E08093F4011092F0018091C1 +:101D2000E1008E7F8093E1008091E2008E7F8093BE +:101D3000E2008091E20080618093E20042E060E096 +:101D400080E00E94E80C8091F00088608093F000B1 +:101D50000E94600AFF91EF91BF91AF919F918F9187 +:101D60007F916F915F914F913F912F910F900FBE97 +:101D70000F901F9018951F920F920FB60F9211247B +:101D80002F933F934F935F936F937F938F939F9383 +:101D9000AF93BF93CF93DF93EF93FF93C091E9008D +:101DA000CF708091EC00D82FD17080FDD0E81092D8 +:101DB000E9008091F000877F8093F00078940E9482 +:101DC000FF0E1092E9008091F00088608093F0008F +:101DD000CD2BCF70C093E900FF91EF91DF91CF91B0 +:101DE000BF91AF919F918F917F916F915F914F9133 +:101DF0003F912F910F900FBE0F901F9018951F933A +:101E0000CF93DF93CDB7DEB7AA970FB6F894DEBFB6 +:101E10000FBECDBFE5EFF1E088E08E0F9091F100AD +:101E200091938E13FBCF0E947F0A8091E80083FF7D +:101E30001FC18091F5019091F601492F50E04A3081 +:101E4000510508F015C1FA01EA5AFF4F0C94EA2235 +:101E5000803881F0823809F00BC18091F9018F70D0 +:101E60008093E9008091EB0085FB882780F9109230 +:101E7000E90006C08091F1019091F2019111826018 +:101E80009091E800977F9093E8008093F100109282 +:101E9000F100C8C0282F2D7F09F0EAC0882319F06F +:101EA000823061F0E5C08091F701813009F0E0C037 +:101EB000933009F080E08093F2012BC08091F7010C +:101EC000811127C08091F9018F7009F4D1C08093EE +:101ED000E9002091EB0020FF1CC0933021F4809199 +:101EE000EB00806214C09091EB0090619093EB0046 +:101EF00021E030E0A90102C0440F551F8A95E2F7A6 +:101F00004093EA001092EA008091EB008860809391 +:101F1000EB001092E9008091E800877F86C0811174 +:101F2000A7C01091F7011F778091E3008078812B83 +:101F30008093E3008091E800877F8093E8000E940F +:101F40001D0D8091E80080FFFCCF8091E300806848 +:101F50008093E300111102C082E001C083E080930E +:101F6000F40186C08058823008F082C08091F70169 +:101F70009091F8018C3D53E0950779F583E08A83D1 +:101F80008AE289834FB7F894DE01139620E03EE0A1 +:101F900051E2E32FF0E050935700E49120FF03C09B +:101FA000E295EF703F5FEF708E2F90E0EA3010F017 +:101FB000C79601C0C0968D939D932F5F243149F73A +:101FC0004FBF8091E800877F8093E8006AE270E06D +:101FD000CE0101960E94240C14C0AE014F5F5F4FEA +:101FE0006091F9010E946B0BBC01009709F440C09D +:101FF0009091E800977F9093E80089819A810E94F0 +:10200000870C8091E8008B778093E80031C080389E +:1020100079F58091E800877F8093E8008091F00156 +:102020008093F1008091E8008E778093E8000E9411 +:102030001D0D1EC081111CC09091F7019230C0F49B +:102040008091E800877F8093E8009093F0010E94E0 +:102050001D0D8091F001811106C08091E30087FD84 +:1020600002C081E001C084E08093F4010E946B0A09 +:102070008091E80083FF0AC08091E800877F809309 +:10208000E8008091EB0080628093EB00AA960FB687 +:10209000F894DEBF0FBECDBFDF91CF911F910895A1 +:1020A0000895CF938091F4018823A1F0C091E900B5 +:1020B000CF709091EC00892F817090FD80E8C82B43 +:1020C0001092E9008091E80083FD0E94FF0ECF701E +:1020D000C093E900CF9108959093760180937501A4 +:1020E0000895E0917501F0917601309721F001900B +:1020F000F081E02D099480E00895E0917501F09160 +:102100007601309721F00280F381E02D0994089543 +:10211000E0917501F0917601309721F00480F5810E +:10212000E02D099408952091730130917401821774 +:10213000930771F09093740180937301E09175019E +:10214000F0917601309721F00680F781E02D099417 +:10215000089520917101309172018217930771F0F7 +:102160009093720180937101E0917501F091760175 +:10217000309721F00084F185E02D099408950895A9 +:102180000C94BF100E94181C0E943B030C949E1CD0 +:102190009F92AF92BF92CF92DF92EF92FF920F93F6 +:1021A0001F93CF93DF9300D000D000D0CDB7DEB720 +:1021B0000E9462030DE010E0AA24A394B12C902E9B +:1021C000802F0E945004980128583E4F6901F90160 +:1021D000F080F826A1F40150110988F78FEF898368 +:1021E0008A831B820E94211C8160782F9D838C83AF +:1021F00049815A816B818D810E945F112FC090911E +:10220000DB0191FF04C08E830E9456048E8125E07D +:1022100030E0A501022E01C0440F0A94EAF7E42E33 +:102220004F21C1F029839A828E2191E009F490E038 +:102230009B830E94211C8160782F9D838C83498120 +:102240005A816B818D810E945F11F6018081E826A1 +:10225000E08204C021503109E0F6BDCF0E946C1E1F +:10226000109177010E9471101817B9F00E94711037 +:102270008093770126960FB6F894DEBF0FBECDBFD0 +:10228000DF91CF911F910F91FF90EF90DF90CF9052 +:10229000BF90AF909F900C946E0926960FB6F8945D +:1022A000DEBF0FBECDBFDF91CF911F910F91FF9089 +:1022B000EF90DF90CF90BF90AF909F900895CF9315 +:1022C000DF93CDB7DEB72B970FB6F894DEBF0FBE06 +:1022D000CDBF4F83588769877A878B87DE01119638 +:1022E00086E0FD0111928A95E9F785E0FE013796B7 +:1022F00001900D928A95E1F749815A816B817C8129 +:102300008D819E810E94A8172B960FB6F894DEBF90 +:102310000FBECDBFDF91CF910895CF93882309F4ED +:10232000C2C0C82F823859F40E94711081FDBBC011 +:1023300089E30E94821A0E944F1B89E30CC08338F4 +:1023400079F40E94711080FDAEC083E50E94821A6C +:102350000E944F1B83E50E94C41ACF910C944F1B1F +:10236000843859F40E94711082FD9DC087E40E9458 +:10237000821A0E944F1B87E4EECF8CEF8C0F813ABC +:1023800048F48C2F0E94B62081118DC08C2F0E94A2 +:10239000821AE3CF80E28C0F883048F4C77081E066 +:1023A00001C0880FCA95EAF70E94081BD6CF8BE5BB +:1023B0008C0F833078F4C53A29F0C63A31F083E8BF +:1023C00090E005C081E890E002C082E890E0CF9103 +:1023D0000C94931088E58C0F833108F064C0C83AE0 +:1023E00039F1C93A41F1CA3A49F1CB3A51F1CC3A03 +:1023F00059F1CD3A61F1C03B69F1CE3A71F1CF3A72 +:1024000079F1C13B81F1C23B89F1C33B91F1C43BFE +:1024100099F1C53BA1F1C63BA9F1C73BB1F1C83B5E +:10242000B9F1C93BC1F1CA3BC9F180E090E038C0C5 +:1024300082EE90E035C089EE90E032C08AEE90E006 +:102440002FC085EB90E02CC086EB90E029C087EB95 +:1024500090E026C08CEC90E023C08DEC90E020C092 +:1024600083E891E01DC08AE891E01AC082E991E01A +:1024700017C084E991E014C081E292E011C083E2C8 +:1024800092E00EC084E292E00BC085E292E008C0C8 +:1024900086E292E005C087E292E002C08AE292E022 +:1024A000CF910C94A910CF910895882309F44BC0C3 +:1024B000823859F40E94711081FF45C089E30E945F +:1024C000821A0E944F1B89E30CC0833871F40E946A +:1024D000711080FF38C083E50E94821A0E944F1B52 +:1024E00083E50E94C41A0C944F1B843859F40E944F +:1024F000711082FF28C087E40E94821A0E944F1B3D +:1025000087E4EFCF9CEF980F913A58F390E2980F41 +:10251000983050F4877091E001C0990F8A95EAF7DE +:10252000892F0E940E1BDFCF9BE5980F933020F47C +:1025300080E090E00C949310885A833120F480E07E +:1025400090E00C94A9100895882321F00E94081BA4 +:102550000C944F1B0895882321F00E940E1B0C94AD +:102560004F1B08957F928F929F92AF92BF92CF920E +:10257000DF92EF92FF920F931F93CF93DF931F92FF +:10258000CDB7DEB77C01C62E772EFC010581029502 +:102590000F70128111110E94251B0E947B1A882343 +:1025A00079F0112369F080E28C0D883048F082E0E8 +:1025B0000E94641A0E947B1A91E0D82ED92601C08D +:1025C000D12CE72DE295EF70F0E0E05AFF4F0C942C +:1025D000EA22872D807F072D0F70882311F0029546 +:1025E000007F112389F0002309F490C180E28C0D53 +:1025F000883020F4802F0E94081B03C0802F0E9487 +:10260000181B0E944F1B82C18C2D0E945512002363 +:1026100009F495C180E28C0D883020F4802F0E944F +:102620000E1B03C0802F0E941E1B0E944F1B87C1E0 +:10263000972D907F872D8F70903211F08295807F3B +:10264000CC2021F0F1E0CF16B1F01EC0112349F0EB +:10265000002309F414C1013009F011C10E94381B94 +:102660006EC1002319F0013009F469C189830E9409 +:102670003B1B89810AC1112321F0023008F05FC1A0 +:10268000FEC001115CC101C1112321F0002309F436 +:10269000F6C03CC1002309F4F8C03EC1872D8695E1 +:1026A0008695837090E0009719F0019761F047C11B +:1026B000112321F08C2D972D937002C080E090E0C3 +:1026C0000E9493103CC1112321F08C2D972D937003 +:1026D00002C080E090E00E94A91031C18C2D11232E +:1026E00019F00E94741D02C00E94DC1D0E94611E30 +:1026F00026C1872D837009F052C0111120C18C2D85 +:10270000829586958770880F880F9C2D9F70892EE3 +:10271000912CA12CB12C082E04C0880C991CAA1C49 +:10272000BB1C0A94D2F7C4FE14C00FE010E020E0F6 +:1027300030E0B901A80104C0440F551F661F771F80 +:102740008A95D2F7CB01BA016095709580959095E6 +:1027500003C060E070E0CB01272D269526952370FD +:1027600030E02230310569F02330310589F06829E5 +:1027700079298A299B292130310571F00E94F018AE +:10278000DEC0682979298A299B290E940C19D7C0A3 +:102790000E94F018C501B4010E94D418D0C01123C2 +:1027A00019F0872D817001C08695882309F4C7C070 +:1027B0008C2D829586958770880F880F9C2D9F7031 +:1027C000892E912CA12CB12C082E04C0880C991CA8 +:1027D000AA1CBB1C0A94D2F7C4FE14C00FE010E080 +:1027E00020E030E0B901A80104C0440F551F661F66 +:1027F000771F8A95D2F7CB01BA01609570958095C5 +:10280000909503C060E070E0CB01272D26952695BA +:102810002370422F50E04230510569F0433051059A +:1028200089F0682979298A299B294130510571F05D +:102830000E94CA1984C0682979298A299B290E9483 +:10284000E6197DC00E94CA19C501B4010E94AE19E3 +:1028500076C08C2D90E0FC01E05EF109E531F105D8 +:1028600008F050C0E059FF4F0C94EA220C2D0F7075 +:10287000872D8F71112331F00E944719802F0E94FC +:10288000A4125DC00E946819802F0E94AB1257C02D +:10289000112339F0011153C0872D8F710E948D19BA +:1028A0004EC0023008F04BC0F7CF112339F0872D0E +:1028B0008F710E94471943C01123C9F3872D8F716F +:1028C0000E9468193CC0112329F0872D8F710E9446 +:1028D000321935C00E94281932C0112351F0172D2A +:1028E0001F71812F0E94471963E0812F0E945B1A9C +:1028F00026C081E00E94641A023008F182E00E9442 +:10290000641A1DC0112331F0002389F28C2D0E941E +:102910008D1115C0002391F28C2D0E9455120FC00D +:10292000472D4F706C2DC7010E942C050E944C183A +:1029300006C0472D4F706C2DC7010E94DD08DD20B9 +:10294000F9F00E94571A80FD1BC0F70112820E9405 +:10295000511A0E944719C7010E94CF140E94511AB0 +:102960000F90DF91CF911F910F91FF90EF90DF902B +:10297000CF90BF90AF909F908F907F900C946819EC +:102980000F90DF91CF911F910F91FF90EF90DF900B +:10299000CF90BF90AF909F908F907F9008950F93AE +:1029A0001F93CF93DF93EC01888199812B813C8128 +:1029B000232BB9F09F3F11F48F3F99F0CE010E9475 +:1029C0006E05882371F0688179818A810E944D1A91 +:1029D0008C010E94021A0E94C918B801CE010E94FF +:1029E000B212DF91CF911F910F9108950E94251B84 +:1029F0000E94351B0E94FA1A0E944F1B0E94121F50 +:102A00000E94611E80E090E00E94931080E090E0C0 +:102A10000C94A9100E94151B0C94F6140E94421AE3 +:102A2000292F22952F7030E02C3031054CF42A30BC +:102A300031056CF42250310922303105A8F407C069 +:102A40002C30310569F02F30310551F00DC0803F39 +:102A500069F018F4803E40F409C0843F29F406C0B0 +:102A600093FB882780F9089580E0089581E0089518 +:102A7000CF93DF9300D000D01F92CDB7DEB70F9079 +:102A80000F900F900F900F90DF91CF910895CF93FB +:102A9000DF9300D000D000D0CDB7DEB726960FB6BA +:102AA000F894DEBF0FBECDBFDF91CF9108951F9385 +:102AB000CF93DF93C091860116E080918701C817FC +:102AC00099F0D0E01C9FF0011D9FF00D1124E857F4 +:102AD000FE4F4081518162817381848195810E9482 +:102AE00047152196C770E9CFDF91CF911F910895C7 +:102AF0004091B8015091B9016091BA017091BB0148 +:102B00008091BC019091BD010C9447158091BD014D +:102B100082958F7009F054C08091BA01882309F41E +:102B20004FC080918601A09187016091B80170919A +:102B3000B9014091BB015091BC01B6E08A1709F47C +:102B40003FC090E041155105C1F17F3F11F46F3F47 +:102B5000A1F1B89FF001B99FF00D1124E857FE4F85 +:102B6000218172132AC02081621327C02281211182 +:102B700024C0238134812417350710F421503109F2 +:102B8000241B350B283C3105C0F42091BD012F706A +:102B900020612093BD0126E0289FF001299FF00DC0 +:102BA0001124E357FE4F80818F708061808388EB12 +:102BB00091E00E94CF140C94571501968770BECFF8 +:102BC0000895CF92DF92EF92FF920F931F93CF93CE +:102BD000DF93CDB7DEB762970FB6F894DEBF0FBEB6 +:102BE000CDBF8C0185E0F801DE011D9601900D92AC +:102BF0008A95E1F7D8014C9111965C911197129644 +:102C00006C9112971396CD90DC9014973091B80187 +:102C10007091B9018091BB019091BC01009709F4BA +:102C20006BC17F3F19F43F3F09F466C1E090BA01E0 +:102C3000EE2009F4C0C02091BD01C816D90628F0C5 +:102C4000F601E81BF90BCF0104C0809590958C0D1F +:102C50009D1DFF24F394883C910578F0F12C207F92 +:102C600009F0C6C07C2DD98AC88A89890E94381586 +:102C700088EB91E00E94CF14B1C0822F807F09F0D1 +:102C800046C0751314C0341312C0611110C02F70E8 +:102C900020612093BD010E94781588EB91E00E948D +:102CA000CF148091BD01D80115968C932EC0CD28EC +:102CB00019F15F3F11F44F3FF9F0F62E61111CC07E +:102CC000809186012091870136E0821709F45AC06D +:102CD00090E0389FF001399FF00D1124E857FE4F26 +:102CE0007181571306C07081471303C0728171113F +:102CF00003C001968770E9CFF62E662309F418C148 +:102D00008091BD0181608093BD01F12C11C17513CB +:102D100008C0341306C0611104C08091BD01D80100 +:102D2000C3C04D875E878D859E856A8B0E940E1578 +:102D30006A898823E1F16623D1F12091BD01822FB8 +:102D400082958F7090E0029774F08091B801909115 +:102D5000B90198878F831986DB86CA862C87CE01B6 +:102D600007960E94CF1486E0F801A8EBB1E001902D +:102D70000D928A95E1F70E9486150E947815FF242E +:102D8000F394D6C04D875E878D859E850E94421A3A +:102D9000292F22952F7030E0223031050CF0BCC075 +:102DA0009F7009F0B6C0805E883008F4C1C0C801C9 +:102DB0000E94CF14E4CFC816D90608F453C0F60118 +:102DC000E81BF90BCF01883C910508F450C0F12CA9 +:102DD0007C2DD98AC88A89890E943815E8EBF1E0F0 +:102DE00086E0DF011D928A95E9F70E947815A0C060 +:102DF000751314C0341312C0611110C08091BD014D +:102E0000F8018583C8010E94CF1486E0E8EBF1E069 +:102E1000DF011D928A95E9F7FE2C8AC04D875E87F7 +:102E20008D859E856A8B0E940E156A89882309F418 +:102E3000BECF662309F4BBCF2091BD01822F8295BE +:102E40008F7090E002970CF48ECF8091B801909132 +:102E5000B9019A8389831B82DD82CC822E83CE01C5 +:102E600001967FCF809590958C0D9D1DACCFF62E51 +:102E7000662309F49CCF75132EC034132CC0209107 +:102E8000BD0120FD1FC0822F82958F70D9F0D8011F +:102E900015962C9315978F3049F08F5F982F929548 +:102EA000907F822F8F70892B15968C93C8010E947A +:102EB000CF1486E0F801A8EBB1E001900D928A955D +:102EC000E1F793CF86E0F801A8EBB1E001900D9215 +:102ED0008A95E1F72DC04D875E878D859E850E947E +:102EE0000E15811140CF8091BD0181608093BD019D +:102EF000C8010E94CF141CC0662309F458CF4D8727 +:102F00005E878D859E850E940E15882309F44FCF1C +:102F10002ACF811148CF0CC0243031050CF047CFA7 +:102F20009F7009F440CFF8019581907F09F03BCF65 +:102F30008F2D62960FB6F894DEBF0FBECDBFDF9126 +:102F4000CF911F910F91FF90EF90DF90CF90089558 +:102F50001F93CF93DF93CDB7DEB72C970FB6F894BE +:102F6000DEBF0FBECDBF4F83588769877A878B87B7 +:102F70009C87CE0107960E94E115882369F08F8116 +:102F800098852A853B85232BF1F19F3F09F063C08B +:102F90008F3F09F060C037C086E0FE013796DE0142 +:102FA000119601900D928A95E1F76F817885EA85F7 +:102FB000FB85309741F17F3F11F46F3F21F1209164 +:102FC000870130E0C90101968770992740918601F9 +:102FD00050E08417950709F447C069837A83FD831D +:102FE000EC8396E0929FD001939FB00D1124A857D7 +:102FF000BE4FFE01319601900D929A95E1F78093B4 +:1030000087010E94571516E08091860190918701F3 +:103010008917C1F1189FC001112488579E4F0E9443 +:10302000E115882379F1E09186011E9FF0011124BA +:10303000E857FE4F4081518162817381848195817F +:103040000E9447158091860190E00196877099272C +:1030500080938601D9CF4F81588569857A858B8584 +:103060009C850E944715CFCF0E940A1510928701B8 +:1030700010928601E8EBF1E086E0DF011D928A956F +:10308000E9F7C1CF2C960FB6F894DEBF0FBECDBFC7 +:10309000DF91CF911F910895EF92FF920F931F93AD +:1030A000CF93DF938C01009709F46CC0F12CEE24D0 +:1030B000E394E8012196F8018491843740F4843048 +:1030C00008F051C0813081F0823019F15BC0853742 +:1030D00009F444C0A8F19CE7980F903708F052C05B +:1030E0008F770E94551241C00E5F1F4FFE01C491A1 +:1030F00080E28C0F883048F4C7708E2D01C0880F95 +:10310000CA95EAF70E94281B14C08C2F0E948D11CB +:103110002DC00E5F1F4FFE01C49180E28C0F8830DE +:1031200058F4C7708E2D01C0880FCA95EAF70E9427 +:103130002E1B0E944F1B1AC08C2F0E94551216C0C6 +:103140000E5F1F4FFE01C491CC2381F08FE99FE0F9 +:103150000197F1F700C00000C150F6CF0E5F1F4F7E +:10316000FE01F49003C00E948D118E018F2D8823E3 +:1031700009F49FCFEFE9FFE03197F1F700C00000BD +:103180008150F5CFDF91CF911F910F91FF90EF907C +:10319000089508956093C2017093C3018093C401A0 +:1031A0009093C5010C94F6140F931F930091C201E4 +:1031B0001091C3012091C4013091C501DC01CB0104 +:1031C000802B912BA22BB32B8093C2019093C30130 +:1031D000A093C401B093C5011F910F910C94F614F4 +:1031E0000F931F930091C2011091C3012091C4015C +:1031F0003091C501DC01CB0180239123A223B323AD +:103200008093C2019093C301A093C401B093C50100 +:103210001F910F910C94F6140F931F930091C2010C +:103220001091C3012091C4013091C501DC01CB0193 +:1032300080279127A227B3278093C2019093C301CF +:10324000A093C401B093C5011F910F910C94F61483 +:103250001092BE011092BF011092C0011092C101E4 +:103260000C94F61441E050E060E070E004C0440FBC +:10327000551F661F771F8A95D2F74093BE01509362 +:10328000BF016093C0017093C1010C94F61441E03A +:1032900050E060E070E004C0440F551F661F771FC8 +:1032A0008A95D2F78091BE019091BF01A091C00193 +:1032B000B091C101482B592B6A2B7B2B4093BE0147 +:1032C0005093BF016093C0017093C1010C94F61438 +:1032D00041E050E060E070E004C0440F551F661FFD +:1032E000771F8A95D2F7409550956095709580919B +:1032F000BE019091BF01A091C001B091C1014823CE +:1033000059236A237B234093BE015093BF016093EE +:10331000C0017093C1010C94F61441E050E060E0EC +:1033200070E004C0440F551F661F771F8A95D2F7BF +:103330008091BE019091BF01A091C001B091C101E7 +:10334000482759276A277B274093BE015093BF0126 +:103350006093C0017093C1010C94F6140F931F93F6 +:103360000091BE011091BF012091C0013091C101B7 +:10337000DC01CB01802B912BA22BB32B8093BE01C0 +:103380009093BF01A093C001B093C1011F910F9111 +:103390000C94F6140F931F930091BE011091BF017E +:1033A0002091C0013091C101DC01CB018023912328 +:1033B000A223B3238093BE019093BF01A093C001C9 +:1033C000B093C1011F910F910C94F6140F931F93AA +:1033D0000091BE011091BF012091C0013091C10147 +:1033E000DC01CB0180279127A227B3278093BE0160 +:1033F0009093BF01A093C001B093C1011F910F91A1 +:103400000C94F6140895CF92DF92EF92FF920F93EF +:103410001F93CF93DF938C01C090C201D090C30162 +:10342000E090C401F090C5018091BE019091BF0170 +:10343000A091C001B091C101C82AD92AEA2AFB2A69 +:10344000CFE1D0E0D701C6010C2E04C0B695A795F8 +:10345000979587950A94D2F780FF06C0B8018C2F04 +:103460000E945C07019721F4219760F780E001C07A +:103470008C2FDF91CF911F910F91FF90EF90DF90F4 +:10348000CF900895CF93DF93EC010E94031ABE0101 +:103490000E945C07DF91CF910895CB010E94421AF0 +:1034A00008958091C60185958595859508958091AB +:1034B000C6018770089598E0899F90011124262BFA +:1034C0002093C6010C9447192091C6018095822350 +:1034D0008093C601982F977069F430E0482F5527E4 +:1034E00047FD50952417350729F0859585958595D5 +:1034F0000C94681908959091C601977081E009F4C1 +:1035000080E0089590910C01992321F090910D0194 +:10351000911109C020910E0130910F01F9013296ED +:103520009FEF40E01FC0982F9695969596959F30F7 +:1035300050F5E0910E01F0910F01E90FF11D877038 +:1035400021E030E0A90102C0440F551F8A95E2F73F +:10355000CA019181892B818308959F3F39F04F5F84 +:103560004E3041F051915813F8CF0DC05111F7CFA3 +:10357000942FF5CF9F3F39F0F901E90FF11D97FD29 +:10358000FA9582830895089590910C01992321F072 +:1035900090910D01911109C020910E0130910F0100 +:1035A000F9013296205F3F4F1FC0982F9695969550 +:1035B00096959F30F0F4E0910E01F0910F01E90F24 +:1035C000F11D877021E030E0A90102C0440F551FB2 +:1035D0008A95E2F7CA0180959181892381830895B4 +:1035E0003196E217F30729F090819813F9CF1082F2 +:1035F000F7CF089581E090E0E0910E01F0910F0186 +:10360000E80FF91F1082019680319105A9F70895FE +:103610009091DA01892B8093DA0108958095909139 +:10362000DA0189238093DA0108951092DA0108956E +:103630009091D901892B8093D9010895809590911B +:10364000D90189238093D90108951092D901089551 +:103650009091D801892B8093D801089580959091FD +:10366000D80189238093D80108951092D801089534 +:103670008093C70108951092C701089580910E01AB +:1036800090910F01FC0131969C01205F3F4F80E03B +:10369000919191118F5FE217F307D1F70895E091AF +:1036A0000E01F0910F018091DA018083E0910E010B +:1036B000F0910F0190818091D901892B8083E09155 +:1036C0000E01F0910F0190818091D801892B8083A8 +:1036D0008091C701882361F0E0910E01F0910F0104 +:1036E0009081892B80830E943E1B81111092C7011B +:1036F00080910E0190910F010C947D1020E00097B5 +:1037000039F0AC0141505109842395232F5FF7CF45 +:10371000822F0895CF92DF92EF92FF926C01EE24F8 +:10372000FF24C114D104E104F10421F0C701B60162 +:1037300020E101C020E0C72ED82EE92EFF24C114BD +:10374000D104E104F10419F0285FC701B6016B014F +:103750007C0154E0F694E794D794C7945A95D1F736 +:10376000C114D104E104F10419F02C5FC701B601C2 +:103770006B017C0142E0F694E794D794C7944A9594 +:10378000D1F7C114D104E104F10419F02E5FC7018F +:10379000B601DC01CB01B695A79597958795892B46 +:1037A0008A2B8B2B09F02F5F822FFF90EF90DF90F9 +:1037B000CF9008958091F401843021F11092DC01C2 +:1037C00020E488E190E00FB6F894A895809360001B +:1037D0000FBE2093600080E00E946E0983B7817F56 +:1037E000846083BF83B7816083BF7894889583B7F3 +:1037F0008E7F83BF88E10FB6F894809360001092AB +:1038000060000FBE089508950E944F030E94620356 +:103810000E94031C0E94570491E0811101C090E0B6 +:10382000892F08950E940A150E9471100C946E0948 +:1038300082E084BD93E095BD9AEF97BD80936E00C2 +:1038400008952FB7F8948091DD019091DE01A09149 +:10385000DF01B091E0012FBF0895CF92DF92EF9288 +:10386000FF920F931F932FB7F8944091DD01509171 +:10387000DE016091DF017091E0012FBF6A017B01E1 +:10388000EE24FF248C0120E030E0C016D106E206D1 +:10389000F30610F4415051099A01281B390BC90154 +:1038A0001F910F91FF90EF90DF90CF9008951F929E +:1038B0000F920FB60F9211248F939F93AF93BF93E4 +:1038C0008091DD019091DE01A091DF01B091E001D6 +:1038D0000196A11DB11D8093DD019093DE01A0939F +:1038E000DF01B093E001BF91AF919F918F910F9055 +:1038F0000FBE0F901F9018950E946E0DF8942FEF39 +:1039000087EA91E6215080409040E1F700C0000036 +:1039100087E090EBDC018093FD019093FE01A09382 +:10392000FF01B09300029CE088E10FB6F894A895DF +:10393000809360000FBE90936000FFCF0E94D61C62 +:10394000811102C00E94BC1C0E94E11C8093DB011B +:103950000E94E91C90E09093EF018093EE0187FBB9 +:10396000882780F980930D010E94E51C682F70E084 +:1039700080E090E00C94CA186DEE7EEF80E090E05D +:103980000E94242360E082E090E00E94122360E025 +:1039900083E090E00E94122360E084E090E00E94C7 +:1039A000122360E085E090E00C94122380E090E028 +:1039B0000E940C2321E08D3E9E4F09F020E0822FD3 +:1039C000089582E090E00C94042383E090E00C944E +:1039D000042384E090E00C940423682F84E090E0BA +:1039E0000C9412238091E30180FF0BC060911301BE +:1039F00085E0689FB0011124759567957595679569 +:103A00002BC081FF09C06091130185E0689FB00160 +:103A100011247595679520C082FF07C0609113013E +:103A200085E0689FB001112417C09091E4019923AB +:103A3000D1F060911201961788F72091130185E06B +:103A4000289F90011124929FA001939F500D112453 +:103A500070E0CA010E94D6226038710540F46115F9 +:103A6000710539F002C065E070E0862F08958FE798 +:103A7000089581E008958091E30180FF08C060917E +:103A8000110170E0759567957595679521C081FF67 +:103A900006C06091110170E07595679519C082FFAD +:103AA00004C06091110170E010C09091E40199236D +:103AB000C1F0609110019617A0F780911101899FC4 +:103AC000C001112470E00E94D6226038710528F4EC +:103AD0006115710521F0862F08958FE7089581E023 +:103AE000089561E070E0F4CF803F21F40E94F21C61 +:103AF000819504C0813F29F40E94F21C8093E70164 +:103B00000895823F21F40E94F21C819504C0833FF6 +:103B100029F40E94F21C8093E6010895893F19F46C +:103B20000E943B1D05C08A3F31F40E943B1D8195D8 +:103B30008093E80108958B3F21F40E943B1D8195FD +:103B400004C08C3F29F40E943B1D8093E901089535 +:103B5000843F21F48091E501816017C0853F21F405 +:103B60008091E501826011C0863F21F48091E501DA +:103B700084600BC0873F21F48091E501886005C017 +:103B8000883F31F48091E50180618093E5010895DB +:103B90008D3F21F48091E30181600BC08E3F21F4C1 +:103BA0008091E301826005C08F3F29F48091E30199 +:103BB00084608093E3010895803F39F48091E701A8 +:103BC00087FF6CC01092E70169C0813F29F48091A2 +:103BD000E7011816BCF362C09091E601823F29F418 +:103BE00097FF5CC01092E60159C0833F19F4191683 +:103BF000CCF354C0893F41F48091E80118160CF0D1 +:103C00004DC01092E8014AC08A3F29F48091E80132 +:103C100087FF44C0F6CF8B3F39F48091E90187FFDD +:103C20003DC01092E9013AC08C3F29F48091E9012E +:103C30001816BCF333C0843F21F48091E5018E7FD8 +:103C400017C0853F21F48091E5018D7F11C0863F2B +:103C500021F48091E5018B7F0BC0873F21F4809197 +:103C6000E501877F05C0883F31F48091E5018F7EB3 +:103C70008093E50113C08D3F21F48091E3018E7F95 +:103C80000BC08E3F21F48091E3018D7F05C08F3FF3 +:103C900029F48091E3018B7F8093E3018091E60119 +:103CA00081110EC08091E70181110AC08091E80165 +:103CB000811106C08091E901811102C01092E401D6 +:103CC000089585EE91E00E9488100E94211C909337 +:103CD000E2018093E10108951F93CF93DF938091D8 +:103CE000E1019091E2010E942D1CAC019091E40150 +:103CF000992321F02091140130E006C02091150194 +:103D00008AE0289F900111244217530708F486C0C7 +:103D10008091E601C091E701D091E8011091E9019D +:103D2000811107C0C11176C0D11174C0111172C0C8 +:103D300075C09F3F19F09F5F9093E401181624F41B +:103D40000E94F21C8093E6018091E60187FF05C086 +:103D50000E94F21C81958093E6011C1624F40E94B7 +:103D6000F21C8093E7018091E70187FF05C00E9464 +:103D7000F21C81958093E7016091E601662339F199 +:103D8000C091E701CC2319F1772767FD7095872F44 +:103D9000972F0E94E72123E333E343E35FE30E948D +:103DA0004B220E94B4216093E6016C2F772767FDB8 +:103DB0007095872F972F0E94E72123E333E343E396 +:103DC0005FE30E944B220E94B4216093E7011D161D +:103DD00024F40E943B1D8093E8018091E80187FF55 +:103DE00005C00E943B1D81958093E801111624F4C3 +:103DF0000E943B1D8093E9018091E90187FF05C086 +:103E00000E943B1D81958093E901DF91CF911F9125 +:103E10000C94611E9F3F09F08ECF96CFDF91CF911A +:103E20001F910895E5EEF1E085E0DF011D928A958E +:103E3000E9F71092E4011092E3010895833081F1D3 +:103E400028F4813059F08230D1F00895853009F49A +:103E500049C0B8F1863009F456C008958091150123 +:103E6000262F30E0280F311D2F3F310524F4680F35 +:103E70006093150108958FEF809315010895809147 +:103E80001401262F30E0280F311D2F3F310524F477 +:103E9000680F6093140108958FEF809314010895C3 +:103EA00080911301262F30E0280F311D2F3F31055F +:103EB00024F4680F6093130108958FEF809313012A +:103EC000089580911201262F30E0280F311D2F3FD9 +:103ED000310524F4680F6093120108958FEF8093E9 +:103EE0001201089580911101262F30E0280F311D15 +:103EF0002F3F310524F4680F6093110108958FEF6F +:103F000080931101089580911001262F30E0280F31 +:103F1000311D2F3F310524F4680F6093100108957F +:103F20008FEF809310010895833011F128F48130D0 +:103F300049F0823091F00895853081F120F186308A +:103F4000C1F1089580911501681720F4861B8093B4 +:103F500015010895109215010895809114016817B4 +:103F600020F4861B80931401089510921401089583 +:103F700080911301681720F4861B80931301089524 +:103F800010921301089580911201681720F4861B86 +:103F900080931201089510921201089580911101E9 +:103FA000681720F4861B8093110108951092110167 +:103FB000089580911001681720F4861B80931001EA +:103FC00008951092100108950F931F938D3109F4F5 +:103FD00071C008F045C0803109F485C008F587300C +:103FE00009F46FC068F4863009F0ADC08091DB0140 +:103FF000817F8E7F8093DB0181E08093EB01A4C001 +:104000008B3009F49EC08E3009F09DC08091DB0199 +:1040100082FB222720F991E0922790FB82F96CC065 +:10402000863109F48EC060F4813109F08CC00E94A1 +:104030000A1590910D0181E0892780930D0181C0BF +:10404000893109F47EC08B3109F07DC08091DB019C +:1040500081FB222720F991E0922790FB81F94CC047 +:10406000853309F466C048F4873209F462C008F465 +:104070004FC0893209F45DC066C0833438F48A3396 +:1040800008F044C0883309F45CC05DC0833409F48F +:1040900050C0883409F057C00E940A150FEF13ED85 +:1040A00020E3015010402040E1F700C000000E94D2 +:1040B0007C1C47C00E946E210E9471100E946E09F4 +:1040C00040C09091DB01892F8095817080FB90F931 +:1040D00029F0966098609093DB0136C0997F977FB6 +:1040E0009093DB012EC08091DB0183FB222720F916 +:1040F00091E0922790FB83F98093DB01992309F1EA +:104100008091DB0181608093DB011BC0895301C07A +:104110008D5141E050E060E070E08A019B0104C0F5 +:10412000000F111F221F331F8A95D2F7C901B80152 +:1041300004C061E070E080E090E00E94CA180E9434 +:104140000A1581E001C080E01F910F91089580E081 +:10415000089580E008958E518A3030F4E82FF0E021 +:10416000E65DFE4F8081089580E00895CF93C82FCB +:104170008091EB01813079F018F08230E9F186C04E +:10418000E0910E01F0910F018081813169F082325E +:1041900009F07EC009C0E0910E01F0910F0180810D +:1041A000813111F0823261F48C2F0E94A72081119D +:1041B00004C08C2F0E94E41F1DC081E090E01AC053 +:1041C0008C2F0E94A920811114C0C43179F048F4C9 +:1041D000CB3079F0C03109F05FC082E08093EB0111 +:1041E00008C0C93219F0C83321F056C01092EB0153 +:1041F00053C081E0817052C0C93281F110F5C431E1 +:1042000069F1A8F4C73009F045C08AE08093150130 +:1042100094E19093140193E0909313018093120121 +:1042200088E08093110188E28093100133C082EE10 +:104230008C0F863078F58C2F0E94AB208093EA019A +:1042400029C0CE34E9F020F4CB3421F56AE013C064 +:10425000C13579F0C235F1F461E00DC08091EA0119 +:10426000882319F01092EA0115C081E08093EB01D8 +:1042700015C061E006C08091EA010E941E1F0AC0BD +:104280006AE08091EA010E94941F04C01092EB0141 +:1042900080E004C081E002C080E0ACCFCF910895FF +:1042A000E1E8F0E0808188608083808181608083A4 +:1042B0008FB7F89493E09093890090ED90938800E5 +:1042C0008FBF0895EFE6F0E08081826080830895DB +:1042D000EFE6F0E080818D7F80830895EFE6F0E0E7 +:1042E000908182E08927808308951F920F920FB6F4 +:1042F0000F9211242F933F934F935F936F937F936C +:104300008F939F93AF93BF93EF93FF938091EC01B3 +:104310009091ED0101969093ED018093EC01811154 +:1043200003C082E00E946E09E091ED01E695E695FA +:10433000F0E0EB54FB4FE4918091EC018E1303C04D +:1043400080E00E946E09FF91EF91BF91AF919F9124 +:104350008F917F916F915F914F913F912F910F902E +:104360000FBE0F901F90189504D06894B1118DC0A6 +:10437000089570D088F09F5790F0B92F9927B751C2 +:10438000A0F0D1F0660F771F881F991F1AF0BA9519 +:10439000C9F712C0B13081F077D0B1E0089574C090 +:1043A000672F782F8827B85F39F0B93FCCF386950F +:1043B00077956795B395D9F73EF49095809570956C +:1043C00061957F4F8F4F9F4F0895E89409C097FBE9 +:1043D0003EF490958095709561957F4F8F4F9F4FDC +:1043E0009923A9F0F92F96E9BB279395F695879520 +:1043F00077956795B795F111F8CFFAF4BB0F11F4E3 +:1044000060FF1BC06F5F7F4F8F4F9F4F16C0882389 +:1044100011F096E911C0772321F09EE8872F762FBF +:1044200005C0662371F096E8862F70E060E02AF000 +:104430009A95660F771F881FDAF7880F96958795EC +:1044400097F9089557FD9058440F551F59F05F3F55 +:1044500071F04795880F97FB991F61F09F3F79F0A6 +:1044600087950895121613061406551FF2CF469528 +:10447000F1DF08C0161617061806991FF1CF8695AA +:104480007105610508940895E894BB27662777278E +:10449000CB0197F908950BD078C069D028F06ED081 +:1044A00018F0952309F05AC05FC01124EECFCADF7F +:1044B000A0F3959FD1F3950F50E0551F629FF00137 +:1044C000729FBB27F00DB11D639FAA27F00DB11D90 +:1044D000AA1F649F6627B00DA11D661F829F222719 +:1044E000B00DA11D621F739FB00DA11D621F839FA0 +:1044F000A00D611D221F749F3327A00D611D231F76 +:10450000849F600D211D822F762F6A2F11249F57C3 +:1045100050408AF0E1F088234AF0EE0FFF1FBB1FE6 +:10452000661F771F881F91505040A9F79E3F510585 +:1045300070F014C0AACF5F3FECF3983EDCF3869591 +:1045400077956795B795F795E7959F5FC1F7FE2B30 +:10455000880F911D9695879597F9089597F99F670C +:1045600080E870E060E008959FEF80EC08950024FB +:104570000A941616170618060906089500240A94C8 +:1045800012161306140605060895092E0394000C4E +:1045900011F4882352F0BB0F40F4BF2B11F460FFDD +:1045A00004C06F5F7F4F8F4F9F4F089597FB072E7B +:1045B00016F4009407D077FD09D00E94F02207FC82 +:1045C00005D03EF4909581959F4F08957095619523 +:1045D0007F4F0895EE0FFF1F0590F491E02D099491 +:1045E000AA1BBB1B51E107C0AA1FBB1FA617B70719 +:1045F00010F0A61BB70B881F991F5A95A9F7809535 +:104600009095BC01CD010895F999FECF92BD81BD71 +:10461000F89A992780B50895A8E1B0E042E050E00B +:104620000C942C23262FF999FECF92BD81BDF89AC8 +:10463000019700B4021639F01FBA20BD0FB6F894E6 +:10464000FA9AF99A0FBE08950196272F0E94132314 +:104650000C941223DC01CB01FC01F999FECF06C0BA +:10466000F2BDE1BDF89A319600B40D924150504030 +:08467000B8F70895F894FFCF9C +:1046780002207009FE09DB09A70973090101C801B5 +:1046880028080A03140A404D363975042804F20331 +:10469800B9034C0365037E0397030102030405066F +:0446A80007080900F6 +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/adnw_k_o_y/keymap.c b/keyboards/ergodox_ez/keymaps/adnw_k_o_y/keymap.c new file mode 100644 index 000000000..052517d70 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/adnw_k_o_y/keymap.c @@ -0,0 +1,185 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_german.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 | K | . | O | , | Y | L1 | | L1 | V | G | C | L | ß | Z | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | BkSp | H | A | E | I | U |------| |------| D | T | R | N | S | F | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |X/Ctrl| Q | Ä | Ü | Ö | | | | B | P | W | M | J | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | App | LGui | | Alt |Ctrl/Esc| + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space|Enter |------| |------| Tab |RShift| + * | | | 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, DE_K, DE_DOT, DE_O, DE_COMM,DE_Y, TG(SYMB), + KC_BSPC, DE_H, DE_A, DE_E, DE_I, DE_U, + KC_LSFT, CTL_T(DE_X), DE_Q, DE_AE, DE_UE, DE_OE, 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_ENT ,KC_END, + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(SYMB), DE_V, DE_G, DE_C, DE_L, DE_SS, DE_Z, + DE_D, DE_T, DE_R, DE_N, LT(MDIA, DE_S), GUI_T(KC_F), + MEH_T(KC_NO),KC_B, KC_P, KC_W, KC_M, CTL_T(KC_J), 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_RSFT + ), +/* 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/keyboards/ergodox_ez/keymaps/adnw_k_o_y/readme.md b/keyboards/ergodox_ez/keymaps/adnw_k_o_y/readme.md new file mode 100644 index 000000000..f0dd3815c --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/adnw_k_o_y/readme.md @@ -0,0 +1,7 @@ +# Basic implementation for k.o,y variant of the adnw layout + +adnw is a layout optimised for usage with german and english language +k.o,y is a variant of this layout +http://www.adnw.de/index.php?n=Main.SeitlicheNachbaranschl%C3%A4ge + +The os must use the de_DE layout diff --git a/keyboards/ergodox_ez/keymaps/alexjj/compiled.hex b/keyboards/ergodox_ez/keymaps/alexjj/compiled.hex new file mode 100644 index 000000000..58fecdd21 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/alexjj/compiled.hex @@ -0,0 +1,1172 @@ +:100000000C94DA020C941E030C941E030C941E0331 +:100010000C941E030C941E030C941E030C941E03DC +:100020000C941E030C941E030C94D30D0C94A50E7B +:100030000C941E030C941E030C941E030C941E03BC +:100040000C941E030C94AF220C941E030C941E03FC +:100050000C941E030C94421C0C941E030C941E035F +:100060000C941E030C941E030C941E030C941E038C +:100070000C941E030C941E030C941E030C941E037C +:100080000C941E030C941E030C941E030C941E036C +:100090000C941E030C941E030C941E030C941E035C +:1000A0000C941E030C941E030C941E03120F340FA9 +:1000B0002210340F2210790F9C0F2210F10F041020 +:1000C000D312D3120213021338135813891489144C +:1000D00063138914131413147A1489148914831460 +:1000E0002014201420142014201420142014201470 +:1000F0002014201420142014201420142014201460 +:1001000032143F1446144D14571475FF01E201597F +:100110000259015D025D015E025E02E2000000F034 +:10012000A1F0A2F0A329002B00E300E100E0000011 +:10013000001E00140004001D7406014E001F001A6A +:100140000016001B0019012A002000080007000605 +:10015000005000280021001500090019004F004B35 +:1001600000220017000A0005000000C30023002F32 +:100170000000004A0000003E002400300000004D56 +:100180000000003B0025001C000B0011000000C215 +:1001900000260018000D0010005100490027000C37 +:1001A000000E00360052002C002D0012000F003708 +:1001B00000007FC1002E0013003300380035004CD2 +:1001C000002A0031003400E500E4000000010001D5 +:1001D0000001000100010000003A001E022002227E +:1001E00002033001003B001F022102230201000133 +:1001F000003C002F0226022F00010001003D0030CC +:100200000227023000010001003E003102350035B6 +:1002100002000001003F0001000000010000000199 +:1002200000400001000000010000000100410052F8 +:100230000051002402000001004200240021001EA1 +:1002400000010001004300250022001F00370001CB +:10025000004400260023002000270001004500255F +:10026000022E0231002E004C054600010001000163 +:10027000003D0400000050010001000100010000E9 +:100280000001000100010001000100010001000166 +:1002900000F2000100010001000100F000F1000186 +:1002A00000F400010001000100F3000100F500016D +:1002B0000001000100010001000000010001000137 +:1002C0000000000100000001000100010000000129 +:1002D0000000000100010001000100010000000118 +:1002E000000100010001000100AA0001000100015D +:1002F000000100AC00A900B600010001000100AB44 +:1003000000A800010001000100010001000100013E +:100310000001000100AE00010001000000E200E267 +:1003200000E200E200E200000059000100040001C8 +:1003300000E20001005A00010001000100E200E2B9 +:10034000005B000800070006000100E2005C0001FD +:100350000009000100010001005D0001000100052D +:1003600000000001005E000100000001000000012B +:10037000005F0001000000010000000100600001BA +:1003800000010001000000010061005F005C0059F5 +:100390000062000100620060005D005A006200E23D +:1003A00000570061005E005B006200E200570057EA +:1003B0000057005700570001000100010001000133 +:1003C000000100000016034500720067006F004442 +:1003D000006F007800200045005A00000016034519 +:1003E00000720067006F0044006F00780020004535 +:1003F000005A0000000403090409026D0004010012 +:10040000A0FA090400000103010100092111010003 +:1004100001223F000705810308000A0904010001C9 +:1004200003010200092111010001224D000705828C +:100430000308000A09040200010300000009211159 +:100440000100012236000705830308000A0904039E +:1004500000010300000009211101000122390007F9 +:100460000584031000011201100100000008EDFED8 +:10047000071301000102000105010906A10105079A +:1004800019E029E715002501950875018102050885 +:1004900019012905950575019102950175039101D1 +:1004A0000507190029771500250195787501810246 +:1004B000C005010980A101850216010026B7001AB6 +:1004C00001002AB700751095018100C0050C0901D3 +:1004D000A1018503160100269C021A01002A9C0234 +:1004E000751095018100C005010902A1010901A152 +:1004F00000050919012905150025019505750181DA +:100500000295017503810105010930093115812525 +:100510007F95027508810609381581257F9501753B +:10052000088106050C0A38021581257F950175089A +:100530008106C0C005010906A101050719E029E7E8 +:100540001500250195087501810295017508810145 +:100550000508190129059505750191029501750395 +:1005600091010507190029FF150025FF950675085B +:100570008100C00000000000000000000000010237 +:1005800004060A0F17202C3A4A5D71879DB3C7DA1B +:10059000E9F5FCFFFCF5E9DAC7B39D87715D4A3ADE +:1005A0002C20170F0A0604020100000000000000C2 +:1005B0000000000011241FBECFEFDAE0DEBFCDBF88 +:1005C00004B603FE24C08091FB019091FC01A09130 +:1005D000FD01B091FE018730904BA740B04BB9F4BC +:1005E0001092FB011092FC011092FD011092FE018D +:1005F00014BE84B7877F84BF88E10FB6F8948093D8 +:100600006000109260000FBEE0E0FFE3099511E08A +:10061000A0E0B1E0ECEEF8E402C005900D92A43346 +:10062000B107D9F711E0A4E3B1E001C01D92AB3FDF +:10063000B107E1F70E94170B0C9474240C9400008E +:100640001092B9008AE08093B800089594EA9093DC +:10065000BC009091BC0097FFFCCF9091B900987FAF +:10066000983021F0903111F081E008958093BB0023 +:1006700084E88093BC008091BC0087FFFCCF809110 +:10068000B900887F883111F0803471F780E00895D7 +:1006900084E98093BC008091BC0084FDFCCF089568 +:1006A0008093BB0084E88093BC008091BC0087FFEE +:1006B000FCCF9091B900987F81E0983209F480E0F6 +:1006C000089584E88093BC008091BC0087FFFCCF34 +:1006D0008091BB00089580910101811115C080E4D3 +:1006E0000E9426038093010181110CC082E10E94C7 +:1006F000500380930101811105C08FEF0E945003C8 +:10070000809301010E94480384B1807F84B985B140 +:10071000807F85B98AB1837F8AB98BB1837F8BB99A +:100720003E98469808950E942605809301010E94F4 +:100730006B0380B38C7080BB81B3836F81BBA5E3F7 +:10074000B1E0E3E4F1E08EE08E0F11921D928E1382 +:10075000FCCF0C941005BF92CF92DF92EF92FF92E4 +:100760000F931F93CF93DF9380910101882379F03A +:10077000809134018F5F80933401811108C00E9401 +:10078000260580930101811102C00E94B80405E38F +:1007900011E0C0E0D0E0DD24D39482E0C82EEE2446 +:1007A000E394F12CC730D10500F58091010181114E +:1007B00064C080E40E94260380930101811112C06D +:1007C00082E10E9450038093010181110BC0C70197 +:1007D0000C2E01C0880F0A94EAF780950E945003FE +:1007E000809301010E94480348C0CA30A1F028F458 +:1007F000C83059F0C93061F005C0CC3089F070F0D4 +:10080000CD3089F0209A289810C0219A29980DC0DF +:10081000229A2A980AC0239A2B9807C0529A01C09C +:10082000539A5B9802C03E9A469890EA9A95F1F7DF +:100830009FB1799902C082E001C080E091709D254E +:10084000982B7C9902C084E001C080E0892B7D99BF +:1008500002C038E001C030E0832B7E9902C020E165 +:1008600001C020E0822B9FB19095991F9927991F75 +:100870009295990F907E892B0FC080910101811173 +:1008800049C080E40E94260380930101882379F106 +:10089000B12C0E9448038B2DF8019081981719F014 +:1008A0008083C09200010E946B0321960F5F1F4F4F +:1008B000CE30D10509F076CF80910001882361F117 +:1008C000815080930001882339F08FE99FE00197E0 +:1008D000F1F700C0000020C0A3E4B1E0E5E3F1E0DF +:1008E000CF01825F91919D938E13FCCF15C083E160 +:1008F0000E945003809301018111CACF81E40E94BC +:100900002603809301018111C3CF0E946103B82E99 +:10091000B094BFCF80E0C0CF0E94B60481E0DF91E9 +:10092000CF911F910F91FF90EF90DF90CF90BF90EC +:100930000895E82FF0E0ED5BFE4F80810895089563 +:100940000F931F93CF93DF93C3E4D1E010E00C2FFC +:10095000025F899190E00E94681B180F0C13F9CF79 +:10096000812FDF91CF911F910F9108950C949305E2 +:1009700056985E9825982D9826982E9827982F9807 +:100980008FEF90E0909389008093880090938B0084 +:1009900080938A0090938D0080938C00259A2D9AE5 +:1009A0002FEF80E792E0215080409040E1F700C0B7 +:1009B0000000269A2E9A2FEF80E792E02150804087 +:1009C0009040E1F700C00000279A2F9A2FEF80E7B0 +:1009D00092E0215080409040E1F700C0000025984F +:1009E0002D982FEF80E792E0215080409040E1F772 +:1009F00000C0000026982E982FEF80E792E021504B +:100A000080409040E1F700C0000027982F9856984A +:100A10005E9825982D9826982E9827982F980895B7 +:100A200089EA8093800089E08093810024982C9843 +:100A30003F988AB18F748AB96E98479A8BB1806B50 +:100A40008BB9769A0E94B8040C94920580E2809348 +:100A500001018091510181110EC00E94200381E0AB +:100A6000809351012FEF83ED90E32150804090401F +:100A7000E1F700C0000080E40E942603809301019A +:100A800081112EC00E94500380930101811128C062 +:100A90000E94500380930101811122C08FE30E94C4 +:100AA00050038093010181111BC00E94480380E420 +:100AB0000E94260380930101811112C08CE00E94E4 +:100AC00050038093010181110BC00E945003809359 +:100AD0000101811105C08FE30E9450038093010141 +:100AE0000E944803809101010895CF93DF93EC01A8 +:100AF000662319F0633059F00DC08A81882321F0F4 +:100B000085EE0E94771103C085EE0E943F128A8114 +:100B1000811103C080E090E002C08AE091E0DF91A3 +:100B2000CF91089508956091BD017091BE018091AB +:100B3000BF019091C0010E94741B56985E98259841 +:100B40002D9826982E9827982F98823039F0833048 +:100B500041F0813041F4259A2D9A0895269A2E9AD3 +:100B60000895279A2F9A089581E0089581E00895C5 +:100B70000C94B60508950F931F93CF93DF938C01C8 +:100B8000FC01C081D181CE010E94ED19BE010E94FD +:100B90006406EC01B8010E94B805882309F48DC0F1 +:100BA000F8018281882309F44AC080915D01811196 +:100BB0001FC0C431F0E5DF0709F051C00E94BA053B +:100BC00081E080935D010E940C1C90935C018093F6 +:100BD0005B0110925401109256011092550110922F +:100BE00058011092570110925A011092590165C094 +:100BF00080915B0190915C010E94181C883C9105DA +:100C000070F480915401E82FF0E0EE0FFF1FEB5AD3 +:100C1000FE4FD183C0838F5F809354014EC0C43890 +:100C200080E5D80721F0C538D04501F13AC0F80178 +:100C30008281882341F01092520182E01EC0C438A4 +:100C4000E0E5DE0759F580915201811106C086E288 +:100C50000E94771186E20E943F1282E01CC0C438D5 +:100C6000F0E5DF0741F3C538D045D9F4F8018281BA +:100C7000882331F01092530180E20E948E121DC031 +:100C800080915301811106C087E20E94771187E2AB +:100C90000E943F1280E20E9495120FC0C538D045D5 +:100CA00029F381E08093520180935301C801DF91C1 +:100CB000CF911F910F910C94B40580E0DF91CF91FB +:100CC0001F910F910895089596E0799FF0011124E6 +:100CD00094E5899FE00DF11D1124E60FF11DEE0F43 +:100CE000FF1FEB5DFE4F859194910895880F991F2A +:100CF000FC01E356F040859194910895880F991F67 +:100D0000FC01E35EFE4F8591949108950F931F932C +:100D1000CF93DF93EC01811520E3920750F5C115C5 +:100D200080E2D80708F0C3C0CB3BD10590F4C83AA5 +:100D3000D10508F06AC0C53AD10508F05BC0C430DF +:100D4000D10508F0D0C1219709F0CAC101E010E037 +:100D50000AC2CF3FD10511F008F0C5C1C03FD1058F +:100D600008F0A2C0CE01805E9109089708F4BBC1CB +:100D7000B7C1C13090E5D90709F4A2C020F5C03150 +:100D80008FE4D80770F4C11590E4D90708F094C037 +:100D9000C11521E3D20708F0A3C1DD278E01106C35 +:100DA000E2C1C115D04509F09BC10E94F4148FEF38 +:100DB00094E32CE0815090402040E1F700C0000017 +:100DC0000E94671CD0C1C11597E5D90758F4C031FE +:100DD00021E5D20708F01CC1C43180E5D80708F42A +:100DE00075C07EC1CE0190578115904108F078C141 +:100DF000DF7073C1C53AD10509F477C1C63AD10590 +:100E000009F076C102E810E4AEC1C83AD10509F490 +:100E100072C1C93AD10509F471C1CA3AD10509F4C0 +:100E200070C1CB3AD10509F46FC1CC3AD10509F4B0 +:100E30006EC1CD3AD10509F46DC1C03BD10509F4AD +:100E40006CC1CE3AD10509F46BC1CF3AD10509F492 +:100E50006AC1C13BD10509F469C1C23BD10509F49E +:100E600068C1C33BD10509F467C1C43BD10509F48E +:100E700066C1C53BD10509F465C1C63BD10509F47E +:100E800064C1C73BD10509F463C1C83BD10509F46E +:100E900062C1C93BD10509F461C1CA3BD10509F45E +:100EA00060C100E014E45FC18E0110655CC1CE0139 +:100EB0009F700E947E0658C1DF708E01106A53C178 +:100EC0008091DA0181608093DA014DC10E940C1E8D +:100ED000811102C00E94F21D0E94291E90E0909391 +:100EE000FB018093FA01C23080E5D80721F480919C +:100EF000FA01816086C0C43090E5D90721F4809161 +:100F0000FA0182607EC0C63020E5D20721F48091CC +:100F1000FA01846076C0C83080E5D80719F4809162 +:100F2000FA0127C0CA3090E5D90721F48091FA016F +:100F3000806167C0CC3020E5D20721F48091FA01AE +:100F400080625FC0CE3080E5D80721F48091FA013D +:100F5000806457C0C03190E5D90721F48091FA012F +:100F600080684FC0C23120E5D20729F48091FA0190 +:100F70008460886046C0C33080E5D80721F4809142 +:100F8000FA018E7F3EC0C53090E5D90721F48091EB +:100F9000FA018D7F36C0C73020E5D20721F4809159 +:100FA000FA018B7F2EC0C93080E5D80719F48091F3 +:100FB000FA0126C0CB3090E5D90721F48091FA01DF +:100FC0008F7E1FC0CD3020E5D20721F48091FA0139 +:100FD0008F7D17C0CF3080E5D80721F48091FA01CA +:100FE0008F7B0FC0C13190E5D90721F48091FA01C0 +:100FF0008F7707C0C331D04531F48091FA018B7FE0 +:10100000877F8093FA018091FA010E942D1EABC068 +:101010008D2F99278F70992781309105D9F49E01E2 +:101020002370332702C0880F991F2A95E2F79C6826 +:101030008E0144E0000F111F4A95E1F7002713705D +:10104000802B912B53E0CC0FDD1F5A95E1F7C07632 +:10105000DD272FC08230910531F4DC2FCC278E01A3 +:10106000016F106A80C08330910569F4CE018370EE +:10107000992701E010E002C0000F111F8A95E2F7E6 +:10108000C8019C680FC084309105B9F4CE0183700B +:10109000992701E010E002C0000F111F8A95E2F7C6 +:1010A000C8019A6823E0CC0FDD1F2A95E1F7C07EC6 +:1010B000D7708C010C2B1D2B56C08530910531F457 +:1010C000DC2FCC278E01046F106A4DC0069709F003 +:1010D0004AC0CF71DD27DC2FCC278E01106243C0C0 +:1010E00000E010E040C08E013EC001E810E43BC0CB +:1010F00003E810E438C002EE14E435C009EE14E44D +:1011000032C00AEE14E42FC005EB14E42CC006EB49 +:1011100014E429C007EB14E426C00CEC14E423C04B +:101120000DEC14E420C003E815E41DC00AE815E442 +:101130001AC002E915E417C004E915E414C001E27D +:1011400016E411C003E216E40EC004E216E40BC07C +:1011500005E216E408C006E216E405C007E216E45C +:1011600002C00AE216E4C801DF91CF911F910F91EE +:10117000089596E0799FF001112494E5899FE00D90 +:10118000F11D1124E60FF11DEE0FFF1FEB5DFE4F69 +:1011900085919491803E9105E0F4803C910558F54D +:1011A0008133910509F46FC048F48932910509F43F +:1011B00063C08A32910509F46DC072C0893391050C +:1011C000E9F082389105D1F08533910509F44DC0DD +:1011D00067C0833E910581F138F4803E9105B9F0F6 +:1011E000823E9105D9F05CC0863E910561F1873E53 +:1011F0009105A1F155C00E94760608952091FA014B +:1012000020FD02C021FF4CC080EE90E049C08091DB +:10121000FA0180FFF9CF89E390E042C08091FA01A2 +:1012200082FF0EC08091FA0184FF03C080E090E04D +:1012300037C083EE90E034C08091FA0182FFF2CF94 +:1012400082EE90E02DC08091FA0183FF0BC0809167 +:10125000FA0184FDEBCF87EE90E022C08091FA0185 +:1012600083FFF5CF86EE90E01BC08091FA0185FFE9 +:1012700007C089E290E014C08091FA0185FFF9CFA0 +:1012800085E390E00DC08091FA0186FF07C08AE2F5 +:1012900090E006C08091FA0186FFF9CF81E390E0EB +:1012A0000E948606089508950C94530980916E015A +:1012B0000895CF93DF9300D01F92CDB7DEB79C0186 +:1012C0008091F101843019F593E099833B832A835F +:1012D0009093E9008FEF9091E800815095FD06C052 +:1012E00095ED9A95F1F700008111F5CF8091E80016 +:1012F00085FF0DC040E050E063E070E0CE01019654 +:101300000E94C30B8091E8008E778093E8000F90D5 +:101310000F900F90DF91CF910895CF93DF9300D07E +:101320001F92CDB7DEB72091F101243021F522E0E4 +:1013300029839B838A8383E08093E9008FEF9091D8 +:10134000E800815095FD06C095ED9A95F1F70000F3 +:101350008111F5CF8091E80085FF0DC040E050E09D +:1013600063E070E0CE0101960E94C30B8091E8001B +:101370008E778093E8000F900F900F90DF91CF91C0 +:1013800008952091F1012430F1F422E02093E90046 +:101390002FEF3091E800215035FD06C035ED3A952C +:1013A000F1F700002111F5CF2091E80025FF0BC0D7 +:1013B00040E050E065E070E00E94C30B8091E800DF +:1013C0008E778093E8000895CF93DF93EC0190919E +:1013D000F101943009F046C080910C018823D9F0C6 +:1013E00080910D018823B9F09093E9008FEF9091DF +:1013F000E800815095FD06C095E19A95F1F700004F +:101400008111F5CF8091E80085FF2CC040E050E0CD +:1014100060E170E017C081E08093E9008FEF909168 +:10142000E800815095FD06C095ED9A95F1F7000012 +:101430008111F5CF8091E80085FF14C040E050E0B5 +:1014400068E070E0CE010E94C30B8091E8008E77C7 +:101450008093E80080E1FE01AEE5B1E001900D92DD +:101460008A95E1F7DF91CF9108958091F001811184 +:1014700009C00E94580D0E94B50D8091E200846061 +:101480008093E20008951092F001089508950C945D +:101490009C220E94FD1B0E94A2220E945B100C94C1 +:1014A000540942E061EC81E00E94D20C42E061EC20 +:1014B00082E00E94D20C42E061EC83E00E94D20CF8 +:1014C00042E161EC84E00C94D20C8091F301833012 +:1014D00009F455C030F4813071F0823009F48EC0C7 +:1014E00008958A3009F47AC08B3009F460C08930DD +:1014F00009F09CC020C08091F201813A09F096C0A9 +:101500008091E800877F8093E8008091F6019091B8 +:10151000F701892B21F460E18EE591E003C060E0E2 +:1015200080E090E070E00E940E0C8091E8008B77E4 +:101530008093E80008958091F201813209F076C02D +:101540008091F6019091F701009719F0039709F047 +:101550006DC08091E800877F8093E8008091E8006B +:1015600082FD05C08091F1018111F8CF5FC08091AB +:10157000F10080936E018091E8008B7753C08091D9 +:10158000F201813A09F052C08091F6019091F70181 +:10159000892B09F04BC08091E800877F8093E80099 +:1015A0008091E80080FFFCCF80910C0136C08091D3 +:1015B000F2018132D9F58091F6019091F701892BE2 +:1015C000A9F58091E800877F8093E8000E94070DCD +:1015D0008091F40180930C010C94F4148091F20139 +:1015E000813221F58091E800877F8093E8000E9496 +:1015F000070D8091F50180936F0108958091F201AC +:10160000813AA1F48091E800877F8093E80080917F +:10161000E80080FFFCCF80916F018093F100809102 +:10162000E8008E778093E8000C94070D089584B746 +:10163000877F84BF88E10FB6F89480936000109292 +:1016400060000FBE90E080E80FB6F89480936100D0 +:10165000909361000FBE0E94AA100E94580D0E9434 +:10166000B50D8091E20084608093E20078940E943E +:101670003B100E94AC1082E091E00E9456100E9444 +:101680008A228091F101853069F40E94C41B809107 +:10169000EF018823B1F30E94EF1B882391F30E948E +:1016A000AD0BEFCF0E94B210ECCF292F33272330A0 +:1016B0003105C9F064F42130310581F02230310563 +:1016C00009F043C08DE690E029EF33E042C02132BB +:1016D0003105F1F02232310541F137C082E190E06D +:1016E00026E634E036C099278130910541F08230FA +:1016F000910541F0892B49F5E5EFF3E005C0EDEDEB +:10170000F3E002C0E5ECF3E0849190E09F0121C09A +:101710006430D8F4E62FF0E0EE0FFF1FEE5DFE4FD1 +:101720002081318189E090E014C0643070F470E071 +:10173000FB01EE0FFF1FE65EFE4F20813181FB01B2 +:10174000EA5EFE4F808190E004C080E090E020E0FF +:1017500030E0FA0131832083089580E189BD82E180 +:1017600089BD09B400FEFDCF8091D8008F7D8093A4 +:10177000D8008091E00082608093E0008091E000DA +:1017800081FDFCCF0895CF92DF92EF92FF920F93ED +:101790001F93CF93DF93EC018B016A010E94260D0A +:1017A000811133C0C114D10439F0F60180819181D7 +:1017B000081B190BC80FD91FE12CF12C01151105BD +:1017C00019F18091E80085FD16C08091E8008E77C0 +:1017D0008093E800C114D10449F0F6018081918121 +:1017E000E80EF91EF182E08285E00FC00E94260D0E +:1017F000882321F30AC089918093F10001501109D7 +:10180000FFEFEF1AFF0ADACF80E0DF91CF911F914F +:101810000F91FF90EF90DF90CF9008952091F80105 +:101820003091F9012617370748F06115710539F431 +:101830002091E8002E772093E80001C0B90140E034 +:1018400061157105A9F12091F101222309F443C02A +:10185000253009F442C02091E80023FD40C02091CA +:10186000E80022FD32C02091E80020FFE9CF40913E +:10187000F3002091F20030E0342BFC01CF01611520 +:10188000710559F02830310540F481918093F100C1 +:10189000615071092F5F3F4FF1CF41E02830310592 +:1018A00009F040E02091E8002E772093E800C8CFAF +:1018B0004111C9CF0AC08091F101882361F08530C0 +:1018C00061F08091E80083FD0AC08091E80082FF0A +:1018D000F2CF80E0089582E0089583E0089581E0EA +:1018E00008952091F8013091F9012617370748F043 +:1018F0006115710539F42091E8002E772093E800F6 +:1019000001C0B901FC0120E06115710591F18091E0 +:10191000F101882309F440C0853009F43FC080916B +:10192000E80083FD3DC08091E80082FD2FC08091DA +:10193000E80080FFE9CF2091F3008091F20090E071 +:10194000922B6115710559F08830910540F424916E +:101950002093F1003196615071090196F2CF21E098 +:10196000089709F020E08091E8008E778093E800E6 +:10197000CBCF2111CCCF0AC08091F101882361F037 +:10198000853061F08091E80083FD0AC08091E80015 +:1019900082FFF2CF80E0089582E0089583E0089509 +:1019A00081E00895982F973058F59093E9009817A3 +:1019B00039F07091EC002091ED005091F00003C0DF +:1019C000242F762F50E021FF19C03091EB003E7F8D +:1019D0003093EB003091ED003D7F3093ED0030917E +:1019E000EB0031603093EB007093EC002093ED003E +:1019F0005093F0002091EE0027FF07C09F5FD3CFE8 +:101A00008F708093E90081E0089580E008958091CF +:101A1000F20187FF11C08091E80082FD05C080912E +:101A2000F1018111F8CF11C08091E8008B770BC0D4 +:101A30008091F101882349F08091E80080FFF8CF80 +:101A40008091E8008E778093E80008952091E4006B +:101A50003091E50095E64091EC00842F817040FFC5 +:101A600022C08091E80080FD1CC08091F101882394 +:101A700091F0853091F08091EB0085FD10C0409190 +:101A8000E4005091E5004217530729F39A01915061 +:101A900011F784E0089582E0089583E0089581E0DD +:101AA000089580E008954091E80042FFDECF089558 +:101AB0000E94C60D0E94CE0DE0EEF0E080818160B4 +:101AC0008083E8EDF0E080818F77808319BCA7EDFB +:101AD000B0E08C918E7F8C9380818F7E808310927A +:101AE000F00108950F931F93CF93DF930E94C60DCB +:101AF0000E94CE0DC8EDD0E088818F7788838881E1 +:101B00008068888388818F7D888319BC1092F10159 +:101B10001092ED011092EF011092EE0100EE10E034 +:101B2000F80180818B7F808388818160888342E097 +:101B300060E080E00E94D20CE1EEF0E080818E7FD8 +:101B40008083E2EEF0E08081816080838081886024 +:101B50008083F80180818E7F808388818061888383 +:101B6000DF91CF911F910F910895E8EDF0E0808112 +:101B70008F7E8083E7EDF0E080818160808384E068 +:101B800082BF81E08093F0010C94720DE8EDF0E0EB +:101B900080818E7F80831092E20008951092DA0097 +:101BA0001092E10008951F920F920FB60F92112428 +:101BB0002F933F934F935F936F937F938F939F9355 +:101BC000AF93BF93EF93FF938091E10082FF0BC02F +:101BD0008091E20082FF07C08091E1008B7F8093BB +:101BE000E1000E943A108091DA0080FF1FC08091CE +:101BF000D80080FF1BC08091DA008E7F8093DA00CE +:101C00008091D90080FF0DC080E189BD82E189BD4E +:101C100009B400FEFDCF81E08093F1010E94350AF6 +:101C200005C019BC1092F1010E94430A8091E100A5 +:101C300080FF19C08091E20080FF15C08091E20012 +:101C40008E7F8093E2008091E20080618093E200C9 +:101C50008091D80080628093D80019BC85E0809381 +:101C6000F1010E94470A8091E10084FF30C0809119 +:101C7000E20084FF2CC080E189BD82E189BD09B406 +:101C800000FEFDCF8091D8008F7D8093D800809199 +:101C9000E1008F7E8093E1008091E2008F7E80934F +:101CA000E2008091E20081608093E2008091ED018A +:101CB000882311F084E007C08091E30087FD02C013 +:101CC00081E001C083E08093F1010E94490A809184 +:101CD000E10083FF29C08091E20083FF25C080914D +:101CE000E100877F8093E10082E08093F101109210 +:101CF000ED018091E1008E7F8093E1008091E20010 +:101D00008E7F8093E2008091E20080618093E20008 +:101D100042E060E080E00E94D20C8091F000886098 +:101D20008093F0000E94460AFF91EF91BF91AF911E +:101D30009F918F917F916F915F914F913F912F91E3 +:101D40000F900FBE0F901F9018951F920F920FB615 +:101D50000F9211242F933F934F935F936F937F9331 +:101D60008F939F93AF93BF93CF93DF93EF93FF93A3 +:101D7000C091E900CF708091EC00D82FD17080FD28 +:101D8000D0E81092E9008091F000877F8093F00006 +:101D900078940E94E90E1092E9008091F00088602A +:101DA0008093F000CD2BCF70C093E900FF91EF91AD +:101DB000DF91CF91BF91AF919F918F917F916F9163 +:101DC0005F914F913F912F910F900FBE0F901F90F9 +:101DD00018951F93CF93DF93CDB7DEB7AA970FB6B1 +:101DE000F894DEBF0FBECDBFE2EFF1E088E08E0FCA +:101DF0009091F10091938E13FBCF0E94650A809120 +:101E0000E80083FF1FC18091F2019091F301492FF7 +:101E100050E04A30510508F015C1FA01EA5AFF4F67 +:101E20000C942424803881F0823809F00BC1809111 +:101E3000F6018F708093E9008091EB0085FB882785 +:101E400080F91092E90006C08091EE019091EF01B7 +:101E5000911182609091E800977F9093E8008093C1 +:101E6000F1001092F100C8C0282F2D7F09F0EAC0C0 +:101E7000882319F0823061F0E5C08091F40181304F +:101E800009F0E0C0933009F080E08093EF012BC0AF +:101E90008091F401811127C08091F6018F7009F4BF +:101EA000D1C08093E9002091EB0020FF1CC093304B +:101EB00021F48091EB00806214C09091EB0090615E +:101EC0009093EB0021E030E0A90102C0440F551FC0 +:101ED0008A95E2F74093EA001092EA008091EB00C5 +:101EE00088608093EB001092E9008091E800877F82 +:101EF00086C08111A7C01091F4011F778091E30083 +:101F00008078812B8093E3008091E800877F809325 +:101F1000E8000E94070D8091E80080FFFCCF8091CF +:101F2000E30080688093E300111102C082E001C0E9 +:101F300083E08093F10186C08058823008F082C02F +:101F40008091F4019091F5018C3D53E0950779F56E +:101F500083E08A838AE289834FB7F894DE0113967F +:101F600020E03EE051E2E32FF0E050935700E4918F +:101F700020FF03C0E295EF703F5FEF708E2F90E07F +:101F8000EA3010F0C79601C0C0968D939D932F5FE5 +:101F9000243149F74FBF8091E800877F8093E800A4 +:101FA0006AE270E0CE0101960E940E0C14C0AE01F0 +:101FB0004F5F5F4F6091F6010E94550BBC01009787 +:101FC00009F440C09091E800977F9093E8008981E0 +:101FD0009A810E94710C8091E8008B778093E800D1 +:101FE00031C0803879F58091E800877F8093E800E0 +:101FF0008091ED018093F1008091E8008E778093CD +:10200000E8000E94070D1EC081111CC09091F401D0 +:102010009230C0F48091E800877F8093E80090932D +:10202000ED010E94070D8091ED01811106C08091A4 +:10203000E30087FD02C081E001C084E08093F101EC +:102040000E94510A8091E80083FF0AC08091E80055 +:10205000877F8093E8008091EB0080628093EB00A3 +:10206000AA960FB6F894DEBF0FBECDBFDF91CF9119 +:102070001F9108950895CF938091F1018823A1F0D5 +:10208000C091E900CF709091EC00892F817090FD94 +:1020900080E8C82B1092E9008091E80083FD0E943F +:1020A000E90ECF70C093E900CF9108959093750128 +:1020B000809374010895E0917401F0917501309757 +:1020C00021F00190F081E02D099480E00895E091E5 +:1020D0007401F0917501309721F00280F381E02DB9 +:1020E00009940895E0917401F0917501309721F001 +:1020F0000480F581E02D09940895209172013091BA +:1021000073018217930771F09093730180937201AA +:10211000E0917401F0917501309721F00680F7810C +:10212000E02D09940895209170013091710182177A +:10213000930771F09093710180937001E0917401A5 +:10214000F0917501309721F00084F185E02D09941C +:10215000089508950C94A9100E94031C0E949303F3 +:102160000C94C51C9F92AF92BF92CF92DF92EF92D8 +:10217000FF920F931F93CF93DF9300D000D000D036 +:10218000CDB7DEB70E94AB030DE010E0AA24A39404 +:10219000B12C902E802F0E949904980129583E4F0F +:1021A0006901F901F080F826A1F40150110988F7BE +:1021B0008FEF89838A831B820E940C1C8160782F99 +:1021C0009D838C8349815A816B818D810E94491145 +:1021D0002FC09091DA0191FF04C08E830E949F046A +:1021E0008E8125E030E0A501022E01C0440F0A9443 +:1021F000EAF7E42E4F21C1F029839A828E2191E0E3 +:1022000009F490E09B830E940C1C8160782F9D83D1 +:102210008C8349815A816B818D810E944911F6011D +:102220008081E826E08204C021503109E0F6BDCF6C +:102230000E94AC1F109176010E945B101817B9F034 +:102240000E945B108093760126960FB6F894DEBF4D +:102250000FBECDBFDF91CF911F910F91FF90EF90F7 +:10226000DF90CF90BF90AF909F900C94540926962A +:102270000FB6F894DEBF0FBECDBFDF91CF911F9197 +:102280000F91FF90EF90DF90CF90BF90AF909F9015 +:102290000895CF93DF93CDB7DEB72B970FB6F894A1 +:1022A000DEBF0FBECDBF4F83588769877A878B8784 +:1022B000DE01119686E0FD0111928A95E9F785E02D +:1022C000FE01379601900D928A95E1F749815A8176 +:1022D0006B817C818D819E810E9492172B960FB617 +:1022E000F894DEBF0FBECDBFDF91CF910895CF939D +:1022F000882309F4C2C0C82F823859F40E945B10A9 +:1023000081FDBBC089E30E946C1A0E94391B89E3DE +:102310000CC0833879F40E945B1080FDAEC083E569 +:102320000E946C1A0E94391B83E50E94AE1ACF915D +:102330000C94391B843859F40E945B1082FD9DC0B7 +:1023400087E40E946C1A0E94391B87E4EECF8CEF61 +:102350008C0F813A48F48C2F0E94EF2181118DC09F +:102360008C2F0E946C1AE3CF80E28C0F883048F4E7 +:10237000C77081E001C0880FCA95EAF70E94F21A7F +:10238000D6CF8BE58C0F833078F4C53A29F0C63A66 +:1023900031F083E890E005C081E890E002C082E877 +:1023A00090E0CF910C947D1088E58C0F833108F07C +:1023B00064C0C83A39F1C93A41F1CA3A49F1CB3A55 +:1023C00051F1CC3A59F1CD3A61F1C03B69F1CE3AC5 +:1023D00071F1CF3A79F1C13B81F1C23B89F1C33B45 +:1023E00091F1C43B99F1C53BA1F1C63BA9F1C73BB3 +:1023F000B1F1C83BB9F1C93BC1F1CA3BC9F180E0B9 +:1024000090E038C082EE90E035C089EE90E032C0B6 +:102410008AEE90E02FC085EB90E02CC086EB90E038 +:1024200029C087EB90E026C08CEC90E023C08DECB7 +:1024300090E020C083E891E01DC08AE891E01AC0D6 +:1024400082E991E017C084E991E014C081E292E052 +:1024500011C083E292E00EC084E292E00BC085E2FC +:1024600092E008C086E292E005C087E292E002C0F6 +:102470008AE292E0CF910C949310CF910895882333 +:1024800009F44BC0823859F40E945B1081FF45C0AB +:1024900089E30E946C1A0E94391B89E30CC08338BF +:1024A00071F40E945B1080FF38C083E50E946C1AB3 +:1024B0000E94391B83E50E94AE1A0C94391B8438A4 +:1024C00059F40E945B1082FF28C087E40E946C1AB6 +:1024D0000E94391B87E4EFCF9CEF980F913A58F395 +:1024E00090E2980F983050F4877091E001C0990FF6 +:1024F0008A95EAF7892F0E94F81ADFCF9BE5980F9B +:10250000933020F480E090E00C947D10885A833161 +:1025100020F480E090E00C9493100895882321F03B +:102520000E94F21A0C94391B0895882321F00E940E +:10253000F81A0C94391B08957F928F929F92AF9254 +:10254000BF92CF92DF92EF92FF920F931F93CF93A0 +:10255000DF931F92CDB7DEB77C01C62E772EFC012C +:10256000058102950F70128111110E940F1B0E94AC +:10257000651A882379F0112369F080E28C0D883088 +:1025800048F082E00E944E1A0E94651A91E0D82E0F +:10259000D92601C0D12CE72DE295EF70F0E0E05A8A +:1025A000FF4F0C942424872D807F072D0F708823E4 +:1025B00011F00295007F112389F0002309F490C1E6 +:1025C00080E28C0D883020F4802F0E94F21A03C024 +:1025D000802F0E94021B0E94391B82C18C2D0E94F9 +:1025E0003F12002309F495C180E28C0D883020F45D +:1025F000802F0E94F81A03C0802F0E94081B0E949F +:10260000391B87C1972D907F872D8F70903211F0E5 +:102610008295807FCC2021F0F1E0CF16B1F01EC072 +:10262000112349F0002309F414C1013009F011C14C +:102630000E94221B6EC1002319F0013009F469C108 +:1026400089830E94251B89810AC1112321F0023050 +:1026500008F05FC1FEC001115CC101C1112321F06E +:10266000002309F4F6C03CC1002309F4F8C03EC1C0 +:10267000872D86958695837090E0009719F00197D5 +:1026800061F047C1112321F08C2D972D937002C06A +:1026900080E090E00E947D103CC1112321F08C2D40 +:1026A000972D937002C080E090E00E94931031C19A +:1026B0008C2D112319F00E94B41E02C00E941C1F11 +:1026C0000E94A11F26C1872D837009F052C01111ED +:1026D00020C18C2D829586958770880F880F9C2D40 +:1026E0009F70892E912CA12CB12C082E04C0880C2F +:1026F000991CAA1CBB1C0A94D2F7C4FE14C00FE09C +:1027000010E020E030E0B901A80104C0440F551FDB +:10271000661F771F8A95D2F7CB01BA016095709535 +:102720008095909503C060E070E0CB01272D269541 +:102730002695237030E02230310569F023303105D1 +:1027400089F0682979298A299B292130310571F07E +:102750000E94DA18DEC0682979298A299B290E94FB +:10276000F618D7C00E94DA18C501B4010E94BE183D +:10277000D0C0112319F0872D817001C08695882360 +:1027800009F4C7C08C2D829586958770880F880FB5 +:102790009C2D9F70892E912CA12CB12C082E04C049 +:1027A000880C991CAA1CBB1C0A94D2F7C4FE14C046 +:1027B0000FE010E020E030E0B901A80104C0440FB0 +:1027C000551F661F771F8A95D2F7CB01BA01609516 +:1027D00070958095909503C060E070E0CB01272D47 +:1027E000269526952370422F50E04230510569F01E +:1027F0004330510589F0682979298A299B2941307C +:10280000510571F00E94B41984C0682979298A2978 +:102810009B290E94D0197DC00E94B419C501B40142 +:102820000E94981976C08C2D90E0FC01E05EF109C1 +:10283000E531F10508F050C0E059FF4F0C94242415 +:102840000C2D0F70872D8F71112331F00E943119DB +:10285000802F0E948E125DC00E945219802F0E940C +:10286000951257C0112339F0011153C0872D8F7174 +:102870000E9477194EC0023008F04BC0F7CF1123E9 +:1028800039F0872D8F710E94311943C01123C9F38C +:10289000872D8F710E9452193CC0112329F0872D7A +:1028A0008F710E941C1935C00E94121932C0112369 +:1028B00051F0172D1F71812F0E94311963E0812F74 +:1028C0000E94451A26C081E00E944E1A023008F18B +:1028D00082E00E944E1A1DC0112331F0002389F2BC +:1028E0008C2D0E94771115C0002391F28C2D0E942F +:1028F0003F120FC0472D4F706C2DC7010E94750508 +:102900000E94361806C0472D4F706C2DC7010E94DB +:102910006306DD20F9F00E94411A80FD1BC0F7011B +:1029200012820E943B1A0E943119C7010E94B914F9 +:102930000E943B1A0F90DF91CF911F910F91FF9052 +:10294000EF90DF90CF90BF90AF909F908F907F904F +:102950000C9452190F90DF91CF911F910F91FF901E +:10296000EF90DF90CF90BF90AF909F908F907F902F +:1029700008950F931F93CF93DF93EC018881998182 +:102980002B813C81232BB9F09F3F11F48F3F99F0AD +:10299000CE010E94BB05882371F0688179818A810C +:1029A0000E94371A8C010E94EC190E94B318B801DA +:1029B000CE010E949C12DF91CF911F910F9108953B +:1029C0000E940F1B0E941F1B0E94E41A0E94391BC9 +:1029D0000E9452200E94A11F80E090E00E947D1082 +:1029E00080E090E00C9493100E94FF1A0C94E01485 +:1029F0000E942C1A292F22952F7030E02C3031059F +:102A00004CF42A3031056CF4225031092230310562 +:102A1000A8F407C02C30310569F02F30310551F092 +:102A20000DC0803F69F018F4803E40F409C0843F37 +:102A300029F406C093FB882780F9089580E0089563 +:102A400081E00895CF93DF9300D000D01F92CDB7DF +:102A5000DEB70F900F900F900F900F90DF91CF91F6 +:102A60000895CF93DF9300D000D000D0CDB7DEB76C +:102A700026960FB6F894DEBF0FBECDBFDF91CF9183 +:102A800008951F93CF93DF93C091850116E0809145 +:102A90008601C81799F0D0E01C9FF0011D9FF00D32 +:102AA0001124E957FE4F40815181628173818481F5 +:102AB00095810E9431152196C770E9CFDF91CF91A2 +:102AC0001F9108954091B7015091B8016091B901EB +:102AD0007091BA018091BB019091BC010C943115A9 +:102AE0008091BC0182958F7009F054C08091B9012A +:102AF000882309F44FC080918501A09186016091DF +:102B0000B7017091B8014091BA015091BB01B6E094 +:102B10008A1709F43FC090E041155105C1F17F3F8C +:102B200011F46F3FA1F1B89FF001B99FF00D11248E +:102B3000E957FE4F218172132AC02081621327C0FA +:102B40002281211124C0238134812417350710F4F8 +:102B500021503109241B350B283C3105C0F420914C +:102B6000BC012F7020612093BC0126E0289FF0015A +:102B7000299FF00D1124E457FE4F80818F708061F2 +:102B8000808387EB91E00E94B9140C944115019663 +:102B90008770BECF0895CF92DF92EF92FF920F938E +:102BA0001F93CF93DF93CDB7DEB762970FB6F8943C +:102BB000DEBF0FBECDBF8C0185E0F801DE011D96A2 +:102BC00001900D928A95E1F7D8014C9111965C9194 +:102BD000119712966C9112971396CD90DC901497E2 +:102BE0003091B7017091B8018091BA019091BB0109 +:102BF000009709F46BC17F3F19F43F3F09F466C1A8 +:102C0000E090B901EE2009F4C0C02091BC01C816C3 +:102C1000D90628F0F601E81BF90BCF0104C0809516 +:102C200090958C0D9D1DFF24F394883C910578F0C0 +:102C3000F12C207F09F0C6C07C2DD98AC88A8989E9 +:102C40000E94221587EB91E00E94B914B1C0822F37 +:102C5000807F09F046C0751314C0341312C061118F +:102C600010C02F7020612093BC010E94621587EB79 +:102C700091E00E94B9148091BC01D80115968C9303 +:102C80002EC0CD2819F15F3F11F44F3FF9F0F62E19 +:102C900061111CC0809185012091860136E0821768 +:102CA00009F45AC090E0389FF001399FF00D1124CB +:102CB000E957FE4F7181571306C07081471303C057 +:102CC0007281711103C001968770E9CFF62E6623D9 +:102CD00009F418C18091BC0181608093BC01F12C82 +:102CE00011C1751308C0341306C0611104C080916E +:102CF000BC01D801C3C04D875E878D859E856A8BD8 +:102D00000E94F8146A898823E1F16623D1F12091A9 +:102D1000BC01822F82958F7090E0029774F08091B1 +:102D2000B7019091B80198878F831986DB86CA8690 +:102D30002C87CE0107960E94B91486E0F801A7EB14 +:102D4000B1E001900D928A95E1F70E9470150E9402 +:102D50006215FF24F394D6C04D875E878D859E85CE +:102D60000E942C1A292F22952F7030E02230310535 +:102D70000CF0BCC09F7009F0B6C0805E883008F4CB +:102D8000C1C0C8010E94B914E4CFC816D90608F41E +:102D900053C0F601E81BF90BCF01883C910508F4FC +:102DA00050C0F12C7C2DD98AC88A89890E942215AD +:102DB000E7EBF1E086E0DF011D928A95E9F70E94DA +:102DC0006215A0C0751314C0341312C0611110C075 +:102DD0008091BC01F8018583C8010E94B91486E086 +:102DE000E7EBF1E0DF011D928A95E9F7FE2C8AC03E +:102DF0004D875E878D859E856A8B0E94F8146A894F +:102E0000882309F4BECF662309F4BBCF2091BC010F +:102E1000822F82958F7090E002970CF48ECF809174 +:102E2000B7019091B8019A8389831B82DD82CC829D +:102E30002E83CE0101967FCF809590958C0D9D1DA0 +:102E4000ACCFF62E662309F49CCF75132EC0341335 +:102E50002CC02091BC0120FD1FC0822F82958F7055 +:102E6000D9F0D80115962C9315978F3049F08F5FC4 +:102E7000982F9295907F822F8F70892B15968C9327 +:102E8000C8010E94B91486E0F801A7EBB1E00190F7 +:102E90000D928A95E1F793CF86E0F801A7EBB1E0B8 +:102EA00001900D928A95E1F72DC04D875E878D8543 +:102EB0009E850E94F814811140CF8091BC018160F1 +:102EC0008093BC01C8010E94B9141CC0662309F498 +:102ED00058CF4D875E878D859E850E94F814882384 +:102EE00009F44FCF2ACF811148CF0CC024303105CF +:102EF0000CF047CF9F7009F440CFF8019581907F87 +:102F000009F03BCF8F2D62960FB6F894DEBF0FBE4F +:102F1000CDBFDF91CF911F910F91FF90EF90DF9088 +:102F2000CF9008951F93CF93DF93CDB7DEB72C9743 +:102F30000FB6F894DEBF0FBECDBF4F8358876987A9 +:102F40007A878B879C87CE0107960E94CB158823B2 +:102F500069F08F8198852A853B85232BF1F19F3F6E +:102F600009F063C08F3F09F060C037C086E0FE0102 +:102F70003796DE01119601900D928A95E1F76F81E7 +:102F80007885EA85FB85309741F17F3F11F46F3FEB +:102F900021F12091860130E0C901019687709927BF +:102FA0004091850150E08417950709F447C0698373 +:102FB0007A83FD83EC8396E0929FD001939FB00DBE +:102FC0001124A957BE4FFE01319601900D929A959A +:102FD000E1F7809386010E94411516E080918501FA +:102FE000909186018917C1F1189FC001112489575A +:102FF0009E4F0E94CB15882379F1E09185011E9F99 +:10300000F0011124E957FE4F4081518162817381A3 +:10301000848195810E9431158091850190E001960F +:103020008770992780938501D9CF4F81588569850D +:103030007A858B859C850E943115CFCF0E94F41430 +:103040001092860110928501E7EBF1E086E0DF0146 +:103050001D928A95E9F7C1CF2C960FB6F894DEBF82 +:103060000FBECDBFDF91CF911F910895EF92FF92D8 +:103070000F931F93CF93DF938C01009709F46CC0DB +:10308000F12CEE24E394E8012196F8018491843731 +:1030900040F4843008F051C0813081F0823019F161 +:1030A0005BC0853709F444C0A8F19CE7980F9037BE +:1030B00008F052C08F770E943F1241C00E5F1F4F31 +:1030C000FE01C49180E28C0F883048F4C7708E2DC9 +:1030D00001C0880FCA95EAF70E94121B14C08C2FFA +:1030E0000E9477112DC00E5F1F4FFE01C49180E238 +:1030F0008C0F883058F4C7708E2D01C0880FCA9588 +:10310000EAF70E94181B0E94391B1AC08C2F0E94DC +:103110003F1216C00E5F1F4FFE01C491CC2381F0F9 +:103120008FE99FE00197F1F700C00000C150F6CF92 +:103130000E5F1F4FFE01F49003C00E9477118E01B5 +:103140008F2D882309F49FCFEFE9FFE03197F1F746 +:1031500000C000008150F5CFDF91CF911F910F91FA +:10316000FF90EF90089508956093C1017093C2019C +:103170008093C3019093C4010C94E0140F931F93A8 +:103180000091C1011091C2012091C3013091C4018D +:10319000DC01CB01802B912BA22BB32B8093C1019F +:1031A0009093C201A093C301B093C4011F910F91EA +:1031B0000C94E0140F931F930091C1011091C20170 +:1031C0002091C3013091C401DC01CB018023912304 +:1031D000A223B3238093C1019093C201A093C301A2 +:1031E000B093C4011F910F910C94E0140F931F939F +:1031F0000091C1011091C2012091C3013091C4011D +:10320000DC01CB0180279127A227B3278093C1013E +:103210009093C201A093C301B093C4011F910F9179 +:103220000C94E0141092BD011092BE011092BF01E7 +:103230001092C0010C94E01441E050E060E070E0B6 +:1032400004C0440F551F661F771F8A95D2F740931D +:10325000BD015093BE016093BF017093C0010C94F7 +:10326000E01441E050E060E070E004C0440F551FFE +:10327000661F771F8A95D2F78091BD019091BE019C +:10328000A091BF01B091C001482B592B6A2B7B2B19 +:103290004093BD015093BE016093BF017093C00184 +:1032A0000C94E01441E050E060E070E004C0440F92 +:1032B000551F661F771F8A95D2F7409550956095E8 +:1032C00070958091BD019091BE01A091BF01B09118 +:1032D000C001482359236A237B234093BD015093A7 +:1032E000BE016093BF017093C0010C94E01441E0F3 +:1032F00050E060E070E004C0440F551F661F771F68 +:103300008A95D2F78091BD019091BE01A091BF0135 +:10331000B091C001482759276A277B274093BD01F8 +:103320005093BE016093BF017093C0010C94E014F0 +:103330000F931F930091BD011091BE012091BF0119 +:103340003091C001DC01CB01802B912BA22BB32B40 +:103350008093BD019093BE01A093BF01B093C001C3 +:103360001F910F910C94E0140F931F930091BD01D6 +:103370001091BE012091BF013091C001DC01CB0151 +:1033800080239123A223B3238093BD019093BE0198 +:10339000A093BF01B093C0011F910F910C94E01452 +:1033A0000F931F930091BD011091BE012091BF01A9 +:1033B0003091C001DC01CB0180279127A227B327E0 +:1033C0008093BD019093BE01A093BF01B093C00153 +:1033D0001F910F910C94E0140895CF92DF92EF9219 +:1033E000FF920F931F93CF93DF938C01C090C10185 +:1033F000D090C201E090C301F090C4018091BD0162 +:103400009091BE01A091BF01B091C001C82AD92AF4 +:10341000EA2AFB2ACFE1D0E0D701C6010C2E04C076 +:10342000B695A795979587950A94D2F780FF06C021 +:10343000B8018C2F0E94B908019721F4219760F7F9 +:1034400080E001C08C2FDF91CF911F910F91FF90F1 +:10345000EF90DF90CF900895CF93DF93EC010E941F +:10346000ED19BE010E94B908DF91CF910895CB01FB +:103470000E942C1A08958091C501859585958595A2 +:1034800008958091C5018770089598E0899F900103 +:103490001124262B2093C5010C9431192091C501CC +:1034A000809582238093C501982F977069F430E04E +:1034B000482F552747FD50952417350729F0859546 +:1034C000859585950C94521908959091C501977032 +:1034D00081E009F480E0089590910C01992321F096 +:1034E00090910D01911109C020910E0130910F01B1 +:1034F000F90132969FEF40E01FC0982F9695969560 +:1035000096959F3050F5E0910E01F0910F01E90F73 +:10351000F11D877021E030E0A90102C0440F551F62 +:103520008A95E2F7CA019181892B818308959F3F93 +:1035300039F04F5F4E3041F051915813F8CF0DC024 +:103540005111F7CF942FF5CF9F3F39F0F901E90FD3 +:10355000F11D97FDFA9582830895089590910C01CD +:10356000992321F090910D01911109C020910E0134 +:1035700030910F01F9013296205F3F4F1FC0982F05 +:103580009695969596959F30F0F4E0910E01F09106 +:103590000F01E90FF11D877021E030E0A90102C0A1 +:1035A000440F551F8A95E2F7CA01809591818923BE +:1035B000818308953196E217F30729F090819813DB +:1035C000F9CF1082F7CF089581E090E0E0910E01ED +:1035D000F0910F01E80FF91F1082019680319105DB +:1035E000A9F708959091D901892B8093D901089565 +:1035F00080959091D90189238093D90108951092E3 +:10360000D90108959091D801892B8093D80108950C +:1036100080959091D80189238093D80108951092C4 +:10362000D80108959091D701892B8093D7010895EF +:1036300080959091D70189238093D70108951092A6 +:10364000D70108958093C60108951092C601089588 +:1036500080910E0190910F01FC0131969C01205F39 +:103660003F4F80E0919191118F5FE217F307D1F7FF +:103670000895E0910E01F0910F018091D9018083AE +:10368000E0910E01F0910F0190818091D801892B7A +:103690008083E0910E01F0910F0190818091D7011C +:1036A000892B80838091C601882361F0E0910E010F +:1036B000F0910F019081892B80830E94281B81113A +:1036C0001092C60180910E0190910F010C94671029 +:1036D00020E0009739F0AC01415051098423952333 +:1036E0002F5FF7CF822F0895CF92DF92EF92FF9254 +:1036F0006C01EE24FF24C114D104E104F10421F093 +:10370000C701B60120E101C020E0C72ED82EE92E66 +:10371000FF24C114D104E104F10419F0285FC701AA +:10372000B6016B017C0154E0F694E794D794C794FA +:103730005A95D1F7C114D104E104F10419F02C5FBA +:10374000C701B6016B017C0142E0F694E794D7947F +:10375000C7944A95D1F7C114D104E104F10419F0DA +:103760002E5FC701B601DC01CB01B695A7959795F1 +:103770008795892B8A2B8B2B09F02F5F822FFF9047 +:10378000EF90DF90CF9008958091F101843021F186 +:103790001092DB0120E488E190E00FB6F894A89540 +:1037A000809360000FBE2093600080E00E94540967 +:1037B00083B7817F846083BF83B7816083BF789440 +:1037C000889583B78E7F83BF88E10FB6F894809386 +:1037D0006000109260000FBE0895089508950E9441 +:1037E000ED1B0E94AB030E94EE1B0E94A00491E01F +:1037F000811101C090E0892F08950E94F4140E9465 +:103800005B100C94540982E084BD93E095BD9AEF5F +:1038100097BD80936E0008952FB7F8948091DC01D6 +:103820009091DD01A091DE01B091DF012FBF0895DD +:10383000CF92DF92EF92FF920F931F932FB7F894DE +:103840004091DC015091DD016091DE017091DF015A +:103850002FBF6A017B01EE24FF248C0120E030E0C1 +:10386000C016D106E206F30610F4415051099A0140 +:10387000281B390BC9011F910F91FF90EF90DF902A +:10388000CF9008951F920F920FB60F9211248F932D +:103890009F93AF93BF938091DC019091DD01A09144 +:1038A000DE01B091DF010196A11DB11D8093DC0105 +:1038B0009093DD01A093DE01B093DF01BF91AF9142 +:1038C0009F918F910F900FBE0F901F9018950E949F +:1038D000580DF8942FEF87EA91E6215080409040F0 +:1038E000E1F700C0000087E090EBDC018093FB0172 +:1038F0009093FC01A093FD01B093FE019CE088E150 +:103900000FB6F894A895809360000FBE9093600066 +:10391000FFCFEF92FF920F931F93CF93DF93D82F98 +:10392000CDE08C2F0E94990405E010E0E82EF12CE8 +:10393000C701002E02C0959587950A94E2F780FF93 +:1039400009C0602F7C2F80E00E946406D81302C05B +:1039500081E006C00150110958F7C15010F780E00E +:10396000DF91CF911F910F91FF90EF900895CF932A +:10397000C82F8CE20E94891C882321F08C2FCF91C4 +:103980000C94891C80E0CF910895CF930E940C1E67 +:10399000811102C00E94F21DC5E6C15049F00E948B +:1039A000AB038FE39CE90197F1F700C00000F5CF6E +:1039B00089E20E94B71C811113C18AE20E94B71CE0 +:1039C00081110E94F21D85E00E94B71C81110E94A6 +:1039D000671C0E94171E8093DA0187E00E94B71CC3 +:1039E0008823A9F18BE10E94B71C882351F08091B4 +:1039F000DA0181FB222720F991E0922790FB81F9DF +:103A00000EC08EE00E94B71C882361F08091DA011D +:103A100082FB222720F991E0922790FB82F9809384 +:103A2000DA0115C080E10E94B71C9091DA01882369 +:103A300041F093FB222720F981E0822780FB93F954 +:103A400004C0892F809580FB90F99093DA018091D2 +:103A5000DA010E941B1E0E94291E8093FA0180EE4B +:103A60000E94B71C882341F08091FA01982F90950D +:103A700090FB80F98093FA0189E30E94B71C8823A8 +:103A800059F08091FA0181FB222720F991E09227D9 +:103A900090FB81F98093FA0182EE0E94B71C882383 +:103AA00059F08091FA0182FB222720F991E09227B8 +:103AB00090FB82F98093FA0186EE0E94B71C88235E +:103AC00059F08091FA0183FB222720F991E0922797 +:103AD00090FB83F98093FA0183EE0E94B71C882340 +:103AE00059F08091FA0184FB222720F991E0922776 +:103AF00090FB84F98093FA0185E30E94B71C882328 +:103B000059F08091FA0185FB222720F991E0922754 +:103B100090FB85F98093FA0181E30E94B71C88230A +:103B200059F08091FA0186FB222720F991E0922733 +:103B300090FB86F98093FA0181E10E94B71C8823EB +:103B400059F08091FA0187FB222720F991E0922712 +:103B500090FB87F98093FA018091FA010E942D1E53 +:103B60008091FA0187FB882780F980930D0187E215 +:103B70000E94B71CC82F8EE10E94B71C8111C26041 +:103B80008FE10E94B71C8111C46080E20E94B71CC3 +:103B90008111C86081E20E94B71C8111C06182E27C +:103BA0000E94B71C8111C06283E20E94B71C811180 +:103BB000C06484E20E94B71C882311F0C06802C070 +:103BC000CC2329F08C2F0E94241E6C2F03C00E944E +:103BD000201E682F70E080E090E0CF910C94B41824 +:103BE000CF9108956DEE7EEF80E090E00E945E241C +:103BF00060E082E090E00E944C2460E083E090E08E +:103C00000E944C2460E084E090E00E944C2460E03C +:103C100085E090E00C944C2480E090E00E944624E3 +:103C200021E08D3E9E4F09F020E0822F089582E032 +:103C300090E00C943E24682F82E090E00C944C2499 +:103C400083E090E00C943E24682F83E090E00C9495 +:103C50004C2484E090E00C943E24682F84E090E0B3 +:103C60000C944C248091E20180FF0BC06091130101 +:103C700085E0689FB00111247595679575956795E6 +:103C80002BC081FF09C06091130185E0689FB001DE +:103C900011247595679520C082FF07C060911301BC +:103CA00085E0689FB001112417C09091E30199232A +:103CB000D1F060911201961788F72091130185E0E9 +:103CC000289F90011124929FA001939F500D1124D1 +:103CD00070E0CA010E9410246038710540F461153B +:103CE000710539F002C065E070E0862F08958FE716 +:103CF000089581E008958091E20180FF08C06091FD +:103D0000110170E0759567957595679521C081FFE4 +:103D100006C06091110170E07595679519C082FF2A +:103D200004C06091110170E010C09091E3019923EB +:103D3000C1F0609110019617A0F780911101899F41 +:103D4000C001112470E00E9410246038710528F42D +:103D50006115710521F0862F08958FE7089581E0A0 +:103D6000089561E070E0F4CF803F21F40E94321E9C +:103D7000819504C0813F29F40E94321E8093E601A0 +:103D80000895823F21F40E94321E819504C0833F32 +:103D900029F40E94321E8093E5010895893F19F4A9 +:103DA0000E947B1E05C08A3F31F40E947B1E8195D4 +:103DB0008093E70108958B3F21F40E947B1E81953B +:103DC00004C08C3F29F40E947B1E8093E801089573 +:103DD000843F21F48091E401816017C0853F21F484 +:103DE0008091E401826011C0863F21F48091E4015A +:103DF00084600BC0873F21F48091E401886005C096 +:103E0000883F31F48091E40180618093E40108955A +:103E10008D3F21F48091E20181600BC08E3F21F43F +:103E20008091E201826005C08F3F29F48091E20118 +:103E300084608093E2010895803F39F48091E60127 +:103E400087FF6CC01092E60169C0813F29F4809120 +:103E5000E6011816BCF362C09091E501823F29F497 +:103E600097FF5CC01092E50159C0833F19F4191601 +:103E7000CCF354C0893F41F48091E70118160CF04F +:103E80004DC01092E7014AC08A3F29F48091E701B2 +:103E900087FF44C0F6CF8B3F39F48091E80187FF5C +:103EA0003DC01092E8013AC08C3F29F48091E801AE +:103EB0001816BCF333C0843F21F48091E4018E7F57 +:103EC00017C0853F21F48091E4018D7F11C0863FAA +:103ED00021F48091E4018B7F0BC0873F21F4809116 +:103EE000E401877F05C0883F31F48091E4018F7E33 +:103EF0008093E40113C08D3F21F48091E2018E7F15 +:103F00000BC08E3F21F48091E2018D7F05C08F3F71 +:103F100029F48091E2018B7F8093E2018091E50199 +:103F200081110EC08091E60181110AC08091E701E4 +:103F3000811106C08091E801811102C01092E30155 +:103F4000089584EE91E00E9472100E940C1C9093E0 +:103F5000E1018093E00108951F93CF93DF93809157 +:103F6000E0019091E1010E94181CAC019091E301E5 +:103F7000992321F02091140130E006C02091150111 +:103F80008AE0289F900111244217530708F486C045 +:103F90008091E501C091E601D091E7011091E8011F +:103FA000811107C0C11176C0D11174C0111172C046 +:103FB00075C09F3F19F09F5F9093E301181624F49A +:103FC0000E94321E8093E5018091E50187FF05C0C4 +:103FD0000E94321E81958093E5011C1624F40E94F4 +:103FE000321E8093E6018091E60187FF05C00E94A2 +:103FF000321E81958093E6016091E501662339F1D7 +:10400000C091E601CC2319F1772767FD7095872FC2 +:10401000972F0E94212323E333E343E35FE30E94CE +:1040200085230E94EE226093E5016C2F772767FDC0 +:104030007095872F972F0E94212323E333E343E3D7 +:104040005FE30E9485230E94EE226093E6011D1625 +:1040500024F40E947B1E8093E7018091E70187FF93 +:1040600005C00E947B1E81958093E701111624F400 +:104070000E947B1E8093E8018091E80187FF05C0C4 +:104080000E947B1E81958093E801DF91CF911F9163 +:104090000C94A11F9F3F09F08ECF96CFDF91CF9157 +:1040A0001F910895E4EEF1E085E0DF011D928A950D +:1040B000E9F71092E3011092E2010895833081F153 +:1040C00028F4813059F08230D1F00895853009F418 +:1040D00049C0B8F1863009F456C0089580911501A1 +:1040E000262F30E0280F311D2F3F310524F4680FB3 +:1040F0006093150108958FEF8093150108958091C5 +:104100001401262F30E0280F311D2F3F310524F4F4 +:10411000680F6093140108958FEF80931401089540 +:1041200080911301262F30E0280F311D2F3F3105DC +:1041300024F4680F6093130108958FEF80931301A7 +:10414000089580911201262F30E0280F311D2F3F56 +:10415000310524F4680F6093120108958FEF809366 +:104160001201089580911101262F30E0280F311D92 +:104170002F3F310524F4680F6093110108958FEFEC +:1041800080931101089580911001262F30E0280FAF +:10419000311D2F3F310524F4680F609310010895FD +:1041A0008FEF809310010895833011F128F481304E +:1041B00049F0823091F00895853081F120F1863008 +:1041C000C1F1089580911501681720F4861B809332 +:1041D0001501089510921501089580911401681732 +:1041E00020F4861B80931401089510921401089501 +:1041F00080911301681720F4861B809313010895A2 +:1042000010921301089580911201681720F4861B03 +:104210008093120108951092120108958091110166 +:10422000681720F4861B80931101089510921101E4 +:10423000089580911001681720F4861B8093100167 +:1042400008951092100108950F931F938D3109F472 +:104250006BC008F03FC08E3009F47FC0C0F48730D7 +:1042600009F469C068F4863009F0B1C08091DA01C0 +:10427000817F8E7F8093DA0181E08093EA01A8C07C +:10428000883009F4A2C08B3009F49FC0A0C08631E9 +:1042900009F49BC078F4803109F472C0813109F0CF +:1042A00096C00E94F41490910D0181E089278093BB +:1042B0000D018BC0893109F488C08B3109F087C0AA +:1042C0008091DA0181FB222720F991E0922790FB6F +:1042D00081F94CC0853309F470C048F4873209F481 +:1042E0006CC008F459C0893209F467C070C08334C7 +:1042F00038F48A3308F04EC0883309F466C067C0CA +:10430000833409F45AC0883409F061C00E94F4145F +:104310000FEF13ED20E3015010402040E1F700C003 +:1043200000000E94671C51C00E94A8220E945B10DE +:104330000E9454094AC09091DA01892F80958170BA +:1043400080FB90F929F0966098609093DA0140C064 +:10435000997F977F9093DA0138C08091DA0182FBD0 +:10436000222720F991E0922790FB82F98093DA01CD +:10437000992359F18091DA0181608093DA0125C097 +:104380008091DA0183FB222720F991E0922790FBAC +:1043900083F9ECCF895301C08D5141E050E060E0DA +:1043A00070E08A019B0104C0000F111F221F331F00 +:1043B0008A95D2F7C901B80104C061E070E080E0DD +:1043C00090E00E94B4180E94F41481E001C080E0E3 +:1043D0001F910F91089580E0089580E00895CF9394 +:1043E000C82F8091EA01813079F018F08230E9F12C +:1043F00087C0E0910E01F0910F018081813169F059 +:10440000823209F07FC009C0E0910E01F0910F01E6 +:104410008081813111F0823261F48C2F0E94EB2176 +:10442000811104C08C2F0E9424211DC081E090E0E6 +:104430001AC08C2F0E94ED21811114C0C43179F073 +:1044400048F4CB3079F0C03109F060C082E080934D +:10445000EA0108C0C93219F0C83321F057C01092E0 +:10446000EA0154C081E0817053C0C93289F118F566 +:10447000C43171F1A8F4C73009F046C08AE08093D6 +:10448000150194E19093140193E0909313018093AC +:10449000120188E08093110188E28093100134C0FA +:1044A000CE51C63088F5EC2FF0E0E65DFE4F8081FE +:1044B0008093E90129C0CE34E9F020F4CB3421F512 +:1044C0006AE013C0C13579F0C235F1F461E00DC086 +:1044D0008091E901882319F01092E90115C081E06B +:1044E0008093EA0115C061E006C08091E9010E9455 +:1044F0005E200AC06AE08091E9010E94D42004C0D5 +:104500001092EA0180E004C081E002C080E0ABCFFD +:10451000CF910895E1E8F0E0808188608083808118 +:10452000816080838FB7F89493E09093890090ED39 +:10453000909388008FBF0895EFE6F0E0808182605D +:1045400080830895EFE6F0E080818D7F8083089579 +:10455000EFE6F0E0908182E08927808308951F9242 +:104560000F920FB60F9211242F933F934F935F93A7 +:104570006F937F938F939F93AF93BF93EF93FF932B +:104580008091EB019091EC0101969093EC01809366 +:10459000EB01811103C082E00E945409E091EC011B +:1045A000E695E695F0E0ED58FA4FE4918091EB0145 +:1045B0008E1303C080E00E945409FF91EF91BF91D8 +:1045C000AF919F918F917F916F915F914F913F91AB +:1045D0002F910F900FBE0F901F90189504D06894E4 +:1045E000B1118DC0089570D088F09F5790F0B92F09 +:1045F0009927B751A0F0D1F0660F771F881F991F38 +:104600001AF0BA95C9F712C0B13081F077D0B1E095 +:10461000089574C0672F782F8827B85F39F0B93FA5 +:10462000CCF3869577956795B395D9F73EF4909539 +:104630008095709561957F4F8F4F9F4F0895E894B7 +:1046400009C097FB3EF490958095709561957F4FDA +:104650008F4F9F4F9923A9F0F92F96E9BB27939588 +:10466000F695879577956795B795F111F8CFFAF498 +:10467000BB0F11F460FF1BC06F5F7F4F8F4F9F4FC9 +:1046800016C0882311F096E911C0772321F09EE827 +:10469000872F762F05C0662371F096E8862F70E08D +:1046A00060E02AF09A95660F771F881FDAF7880F67 +:1046B0009695879597F9089557FD9058440F551F83 +:1046C00059F05F3F71F04795880F97FB991F61F094 +:1046D0009F3F79F087950895121613061406551F0B +:1046E000F2CF4695F1DF08C0161617061806991F77 +:1046F000F1CF86957105610508940895E894BB276C +:1047000066277727CB0197F908950BD078C069D039 +:1047100028F06ED018F0952309F05AC05FC011241C +:10472000EECFCADFA0F3959FD1F3950F50E0551F50 +:10473000629FF001729FBB27F00DB11D639FAA27F6 +:10474000F00DB11DAA1F649F6627B00DA11D661F45 +:10475000829F2227B00DA11D621F739FB00DA11D66 +:10476000621F839FA00D611D221F749F3327A00D20 +:10477000611D231F849F600D211D822F762F6A2FBC +:1047800011249F5750408AF0E1F088234AF0EE0F41 +:10479000FF1FBB1F661F771F881F91505040A9F74E +:1047A0009E3F510570F014C0AACF5F3FECF3983ED6 +:1047B000DCF3869577956795B795F795E7959F5FB5 +:1047C000C1F7FE2B880F911D9695879597F908954F +:1047D00097F99F6780E870E060E008959FEF80ECB4 +:1047E000089500240A941616170618060906089557 +:1047F00000240A9412161306140605060895092EBD +:104800000394000C11F4882352F0BB0F40F4BF2B2B +:1048100011F460FF04C06F5F7F4F8F4F9F4F08956B +:1048200097FB072E16F4009407D077FD09D00E945D +:104830002A2407FC05D03EF4909581959F4F08955A +:10484000709561957F4F0895EE0FFF1F0590F491CD +:10485000E02D0994AA1BBB1B51E107C0AA1FBB1F77 +:10486000A617B70710F0A61BB70B881F991F5A95FC +:10487000A9F780959095BC01CD010895F999FECFD7 +:1048800092BD81BDF89A992780B50895A8E1B0E05E +:1048900042E050E00C946624262FF999FECF92BD99 +:1048A00081BDF89A019700B4021639F01FBA20BDF5 +:1048B0000FB6F894FA9AF99A0FBE08950196272F29 +:1048C0000E944D240C944C24DC01CB01FC01F9998D +:1048D000FECF06C0F2BDE1BDF89A319600B40D924C +:0C48E00041505040B8F70895F894FFCF05 +:1048EC0002205609E409C1098D0959090101C701C2 +:1048FC0028080A03140A3F4D36393405E704B1047D +:10490C0078040B0424043D04560401020304050638 +:04491C00070809007F +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/alexjj/keymap.c b/keyboards/ergodox_ez/keymaps/alexjj/keymap.c new file mode 100644 index 000000000..448f62da0 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/alexjj/keymap.c @@ -0,0 +1,238 @@ +#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 UNIC 3 // unicode entry layer + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ESC | 1! | 2@ | 3# | 4$ | 5% | 6^ | | 7& | 8* | 9( | 0) | -_ | += | BkSp | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | { | | } | Y | U | I | O | P | |\ | + * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------| + * | Win | A | S | D | F | G |------| |------| H | J | K | L | :; | '" | + * |--------+------+------+------+------+------| Home | | End |------+------+------+------+------+--------| + * | LShift |Z/Alt | X | C | V | B | | | | N | M | , | . | Alt | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |LCtrl | COPY | PASTE| Left | Right| | Down | Up |Hyper | `~ | RCtrl | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * Hyper = Ctrl+Super+Alt+Shift | ~L3 | F5 | | F2 | ~L2 | + * ,------|------|------| |------+------+------. + * | | | PgUp | | Ins | | | + * | Enter| BkSp |------| |------| ~L1 |Space | + * | | | PgDn | | Del | | | + * `--------------------' `--------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, + KC_LGUI, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, ALT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_HOME, + KC_LCTRL, LCTL(KC_C), LCTL(KC_V), KC_LEFT,KC_RGHT, + KC_FN3, KC_F5, + KC_PGUP, + KC_ENT,KC_BSPC,KC_PGDN, + // right hand + KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, + KC_END, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, + KC_DOWN,KC_UP, ALL_T(KC_NO),KC_GRV, KC_RCTRL, + KC_F2, KC_FN2, + KC_INS, + KC_DELT,KC_FN1, KC_SPC + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |PrintScr| + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | £ | | | | | | . | 0 | = |Alt+F4| + * `----------------------------------' `----------------------------------' + * ↑ ,-------------. ,-------------. + * THERE! | | | | | | + * ,------|------|------| |------+------+------. + * CAD = Ctrl + Alt + Delete | | | | | | | | + * | | |------| |------| | | + * | | | | | CAD | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + 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,M(3),KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, + KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_TRNS, + 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, LALT(KC_F4), + KC_TRNS, KC_TRNS, + KC_TRNS, + LCTL(LALT(KC_DEL)), KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | TEENSY | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolDn |VolUp | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | | |------| |------| |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[MDIA] = KEYMAP( + RESET, 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_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK +), +/* Keymap 3: Unicode Entry + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | Alt | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | + | + | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Alt | | | E | | | | | | | 7 | 8 | 9 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Alt | A | | D | F | |------| |------| | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Alt | | | C | | B | | | | | 1 | 2 | 3 | + | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | Alt | Alt | Alt | | | | 0 | 0 | 0 | + | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * WINDOWS ONLY SETUP!! | ~L3 | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | Alt | Alt |------| |------| Alt | Alt | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[UNIC] = KEYMAP( // layer 3 : Unicode Entry + // left hand + KC_LALT, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, KC_P6, + KC_LALT, KC_TRNS, KC_TRNS, KC_E, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LALT, KC_A, KC_TRNS, KC_D, KC_F, KC_TRNS, + KC_LALT, KC_TRNS, KC_TRNS, KC_C, KC_TRNS, KC_B, KC_TRNS, + KC_LALT, KC_LALT, KC_LALT, KC_TRNS,KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_LALT,KC_LALT, KC_TRNS, + // right hand + KC_P7, KC_P8, KC_P9, KC_P0, KC_PPLS,KC_PPLS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_TRNS, + KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_TRNS, + KC_P0, KC_P0, KC_P0, KC_PPLS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS,KC_LALT, KC_LALT + ), +}; + + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Layer 1 (Symbols) + [2] = ACTION_LAYER_TAP_TOGGLE(MDIA), // FN2 - Momentary Layer 2 (Media) + [3] = ACTION_LAYER_TAP_TOGGLE(UNIC) // FN3 - Momentary Layer 3 (Unicode entry) +}; + +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); + } + case 3: // this would trigger when you hit a key mapped as M(3) + if (record->event.pressed) { + return MACRO( I(255), D(LALT), T(P1), T(P5), T(P6), U(LALT), END ); + } + 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; + default: + // none + break; + } + +}; diff --git a/keyboards/ergodox_ez/keymaps/alexjj/readme.md b/keyboards/ergodox_ez/keymaps/alexjj/readme.md new file mode 100644 index 000000000..239e32d39 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/alexjj/readme.md @@ -0,0 +1,179 @@ +Englishman in New York +=========================== + +:microphone: :tea: + +About +------ + +After using the massdrop configurator to get the basics, I wanted to add a +little extra to my ergodox. Notably the Hyper hotkey, the press and hold, +and a way to have my beloved £ :pound: symbol available[1](#unicode). Why not switch to a GB +layout? Well the computers I use are US keymap'd and I can't always change +that. Plus I've got used to 2/@ and 3/# and moving to the ergodox was hard +enough. :sweat_smile: + +I started from the default and edited from there as I needed. It's somewhat +similar to a regular layout, particularly R1 and shift/controls. I ended up +with a few keys that were blank, so I'm testing out some shortcuts. Alt+F4 for +quitting things in Windows, is one example, but I felt it was better placed on +the 1st layer - in case of fat fingers. + +Layout +------- + +![Layout](rl-layout.jpg "Isn't it lovely") + +### Base Layer + +``` +,--------------------------------------------------. ,--------------------------------------------------. +| ESC | 1! | 2@ | 3# | 4$ | 5% | 6^ | | 7& | 8* | 9( | 0) | -_ | += | BkSp | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| Tab | Q | W | E | R | T | { | | } | Y | U | I | O | P | |\ | +|--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------| +| Win | A | S | D | F | G |------| |------| H | J | K | L | :; | '" | +|--------+------+------+------+------+------| Home | | End |------+------+------+------+------+--------| +| LShift |Z/Alt | X | C | V | B | | | | N | M | , | . | Alt | RShift | +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + |LCtrl | COPY | PASTE| Left | Right| | Down | Up |Hyper | `~ | RCtrl | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + Hyper = Ctrl+Super+Alt+Shift | ~L3 | F5 | | F2 | ~L2 | + ,------|------|------| |------+------+------. + | | | PgUp | | Ins | | | + | Enter| BkSp |------| |------| ~L1 |Space | + | | | PgDn | | Del | | | + `--------------------' `--------------------' +``` + +### Symbol Layer + +``` +,--------------------------------------------------. ,--------------------------------------------------. +| | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |PrintScr| +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | £ | | | | | | . | 0 | = |Alt+F4| + `----------------------------------' `----------------------------------' + ↑ ,-------------. ,-------------. + THERE! | | | | | | + ,------|------|------| |------+------+------. + CAD = Ctrl + Alt + Delete | | | | | | | | + | | |------| |------| | | + | | | | | CAD | | | + `--------------------' `--------------------' +``` +### Media Layer + +Not touched this, not used either. + +``` +,--------------------------------------------------. ,--------------------------------------------------. +| TEENSY | | | | | | | | | | | | | | | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| | | | MsUp | | | | | | | | | | | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | | | | | | | | | | | Prev | Next | | | +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | | | Lclk | Rclk | |VolDn |VolUp | Mute | | | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + | | | | | | + ,------|------|------| |------+------+------. + | | | | | | |Brwser| + | | |------| |------| |Back | + | | | | | | | | + `--------------------' `--------------------' +``` +### Unicode Layer + +Used to enter/test unicode input on Windows. All numbers are numpad keys. + +``` +,--------------------------------------------------. ,--------------------------------------------------. +| Alt | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | + | + | | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| Alt | | | E | | | | | | | 7 | 8 | 9 | + | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| Alt | A | | D | F | |------| |------| | 4 | 5 | 6 | + | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| Alt | | | C | | B | | | | | 1 | 2 | 3 | + | | +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | Alt | Alt | Alt | | | | 0 | 0 | 0 | + | | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + WINDOWS ONLY SETUP!! | ~L3 | | | | | + ,------|------|------| |------+------+------. + | | | | | | | | + | Alt | Alt |------| |------| Alt | Alt | + | | | | | | | | + `--------------------' `--------------------' +``` + + +Usage +------ + +~L1 / L2 / L3 will momentarily switch to a layer if held and another key is pressed. +If pressed and released will remain on layer until pressed again. + +### Unicode + +This layout is for Windows only. To enter a character Press and Hold Alt, type + and hex code then release Alt. + +Changelog +----------- + +### [0.2.1] - 2016-04-05 + +* Changed £ to alt code in Windows. Windows sucks at unicode. + +### [0.2.0] - 2016-03-27 + +* Added unicode layer +* Moved Copy/Paste to left hand side +* Switched Enter and Space (again) +* Added L3 (unicode layer) toggle +* Removed Press and Hold for Alt on right hand size (/) +* Swapped Volume Up/Down to match arrows +* Tried fixing £ macro +* Removed * in the matrix function things (upstream change) + +### [0.1.1] - 2016-03-23 + +* Changed £ input to a macro + + +### [0.1.0] - 2016-03-22 + +After actually using the keyboard, I've made some changes: + +* Swapped Enter and Space +* Moved backspace to thumb keys (top right still remains) +* Added Ctrl+Alt+Delete +* Added Teensy Reset on 2nd layer +* Switched Up and Down +* Changed copy/paste to be Ctrl+c and Ctrl+v as KC_COPY/PASTE didn't work (in Windows) +* Moved ~L2 to replace +L1 after learning how the function works (notes above) +* Hopefully fixed GBP symbol (unicode enabled in MakeFile) + +### [0.0.1] - 2016-03-21 + +First version + + +Issues +------- + +Space for feedback and notes for future improvements + +---- +1: For Windows only, and you have to edit the [registry](https://en.wikipedia.org/wiki/Unicode_input#Hexadecimal_code_input). diff --git a/keyboards/ergodox_ez/keymaps/alexjj/rl-layout.jpg b/keyboards/ergodox_ez/keymaps/alexjj/rl-layout.jpg new file mode 100644 index 000000000..e4e92bf46 Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/alexjj/rl-layout.jpg differ diff --git a/keyboards/ergodox_ez/keymaps/algernon/.gitignore b/keyboards/ergodox_ez/keymaps/algernon/.gitignore new file mode 100644 index 000000000..a075e32bf --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/algernon/.gitignore @@ -0,0 +1 @@ +/compiled.hex diff --git a/keyboards/ergodox_ez/keymaps/algernon/COPYING b/keyboards/ergodox_ez/keymaps/algernon/COPYING new file mode 100644 index 000000000..94a9ed024 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/algernon/COPYING @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/keyboards/ergodox_ez/keymaps/algernon/Makefile b/keyboards/ergodox_ez/keymaps/algernon/Makefile new file mode 100644 index 000000000..3db507c8f --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/algernon/Makefile @@ -0,0 +1,8 @@ +BOOTMAGIC_ENABLE=no +COMMAND_ENABLE=no +SLEEP_LED_ENABLE=no +UNICODE_ENABLE=no + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/ergodox_ez/keymaps/algernon/config.h b/keyboards/ergodox_ez/keymaps/algernon/config.h new file mode 100644 index 000000000..4cb878ebc --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/algernon/config.h @@ -0,0 +1,29 @@ +#ifndef CONFIG_ALGERNON_H +#define CONFIG_ALGERNON_H + +#include "../../config.h" + +#undef MOUSEKEY_TIME_TO_MAX +#undef MOUSEKEY_MAX_SPEED + +#define MOUSEKEY_TIME_TO_MAX 1 +#define MOUSEKEY_MAX_SPEED 2 + +#undef MOUSEKEY_DELAY +#define MOUSEKEY_DELAY 0 + +#undef MOUSEKEY_WHEEL_DELAY +#define MOUSEKEY_WHEEL_DELAY 0 + +#define ONESHOT_TAP_TOGGLE 2 +#define ONESHOT_TIMEOUT 3000 + +#undef LOCKING_SUPPORT_ENABLE +#undef LOCKING_RESYNC_ENABLE + +#undef LEADER_TIMEOUT +#define LEADER_TIMEOUT 1000 + +#define FORCE_NKRO + +#endif diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/base-layer.png b/keyboards/ergodox_ez/keymaps/algernon/images/base-layer.png new file mode 100644 index 000000000..1a7c0f480 Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/algernon/images/base-layer.png differ diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/emacs-layer.png b/keyboards/ergodox_ez/keymaps/algernon/images/emacs-layer.png new file mode 100644 index 000000000..1aa23cc00 Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/algernon/images/emacs-layer.png differ diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/experimental-layer.png b/keyboards/ergodox_ez/keymaps/algernon/images/experimental-layer.png new file mode 100644 index 000000000..c5e695b8c Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/algernon/images/experimental-layer.png differ diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/hun-layer.png b/keyboards/ergodox_ez/keymaps/algernon/images/hun-layer.png new file mode 100644 index 000000000..f1e5f9ec0 Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/algernon/images/hun-layer.png differ diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/one-handed-layer.png b/keyboards/ergodox_ez/keymaps/algernon/images/one-handed-layer.png new file mode 100644 index 000000000..283559b3a Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/algernon/images/one-handed-layer.png differ diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/steno-layer.png b/keyboards/ergodox_ez/keymaps/algernon/images/steno-layer.png new file mode 100644 index 000000000..e747bfb41 Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/algernon/images/steno-layer.png differ diff --git a/keyboards/ergodox_ez/keymaps/algernon/keymap.c b/keyboards/ergodox_ez/keymaps/algernon/keymap.c new file mode 100644 index 000000000..4eea6874c --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/algernon/keymap.c @@ -0,0 +1,1172 @@ +/* + * algernon's ErgoDox EZ layout, please see the README.md file! + */ + +#include "ergodox_ez.h" +#include "led.h" +#include "debug.h" +#include "action_layer.h" +#include "action_util.h" +#include "mousekey.h" +#include "timer.h" +#include "keymap_plover.h" + +/* Layers */ + +enum { + BASE = 0, + APPSEL, + HUN, + EMACS, + OHLFT, + OHRGT, + PLVR, + EXPRM +}; + +/* Macros */ + +enum { + NONE = 0, + // Buttons that do extra stuff + A_GUI, + A_PLVR, + A_ESC, + A_MPN, + A_COLN, + + // Function / number keys + KF_1, // 1, F1 + KF_2, // 2, F2 + KF_3, // ... + KF_4, + KF_5, + KF_6, + KF_7, + KF_8, + KF_9, + KF_10, + KF_11, // =, F11 + + // Application select keys + APP_SLK, // Slack + APP_EMCS, // Emacs + APP_TERM, // Terminal + APP_CHRM, // Chrome + APP_MSIC, // Music + + // Diagonal mouse movement + A_MUL, + A_MUR, + A_MDL, + A_MDR, + + // Emacs layer keys + AE_VIS, // Visual mode + AE_PSTDEL, // Paste/Delete + AE_CPYC, // Copy/Cut + AE_EMACS, // Emacs copy & paste mode + AE_TERM, // Terminal copy & paste mode + AE_OTHER, // Other copy & paste mode + AE_INS, // Insert mode + AE_OVR, // Overwrite mode + AE_APPND, // Append + + // Hungarian layer keys + HU_AA, // Á + HU_OO, // Ó + HU_EE, // É + HU_UU, // Ú + HU_II, // Í + HU_OE, // Ö + HU_UE, // Ü + HU_OEE, // Ő + HU_UEE, // Ű + + // One-handed layout specials + OH_BSSPC, + OH_ENTSFT, + OH_BASE, + OH_LEFT, + OH_RIGHT, +}; + +/* Fn keys */ + +enum { + F_BSE = 0, + F_HUN, + F_GUI, + F_SFT, + F_ALT, + F_CTRL +}; + +/* States & timers */ + +uint8_t m_visual_state = 0; +static uint16_t m_cutdel_timer; +static uint16_t m_copypaste_timer; + +uint16_t gui_timer = 0; + +uint16_t kf_timers[12]; + +uint16_t oh_base_timer = 0; +uint16_t oh_bsspc_timer = 0; +uint16_t oh_entsft_timer = 0; + +#define OH_BLINK_INTERVAL 500 + +uint8_t oh_left_blink = 0; +uint16_t oh_left_blink_timer = 0; +uint8_t oh_right_blink = 0; +uint16_t oh_right_blink_timer = 0; + +enum { + CP_EMACS = 0, + CP_TERM = 1, + CP_OTHER = 2, +}; + +uint8_t cp_mode = CP_EMACS; + +/* The Keymap */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Keymap 0: Base Layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | `~ | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 | Plvr | | Apps | 6 F6 | 7 F7 | 8 F8 | 9 F9 | 0 F10| F11 | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | Next/Prev | ' | , | . | P | Y | [ | | ] | F | G | C | R | L | = | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | Tab | A | O | E | U | I |------| |------| D | H | T | N | S | \ | + * |-----------+------+------+------+------+------| ( | | ) |------+------+------+------+------+-----------| + * | Play/Pause| / | Q | J | K | X | | | | B | M | W | V | Z | Stop | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | Home | End | Down | Up | : | | - | Left | Right| PgUp | PgDn | + * `-----------------------------------' `-----------------------------------' + * ,-------------. ,-------------. + * | LAlt | GUI | |EMACS | 1HND | + * ,------|------|------| |------+------+------. + * | | | Ctrl | | LEAD | | | + * |Backsp|LShift|------| |------| Enter| Space| + * | | | ESC | | HUN | | | + * `--------------------' `--------------------' + */ +[BASE] = KEYMAP( +// left hand + KC_GRV ,M(KF_1) ,M(KF_2) ,M(KF_3),M(KF_4),M(KF_5),M(A_PLVR) +,M(A_MPN) ,KC_QUOT ,KC_COMM ,KC_DOT ,KC_P ,KC_Y ,KC_LBRC +,KC_TAB ,KC_A ,KC_O ,KC_E ,KC_U ,KC_I +,KC_MPLY ,KC_SLSH ,KC_Q ,KC_J ,KC_K ,KC_X ,KC_LPRN +,KC_HOME ,KC_END ,KC_DOWN ,KC_UP ,M(A_COLN) + + ,F(F_ALT),F(F_GUI) + ,F(F_CTRL) + ,KC_BSPC,F(F_SFT),M(A_ESC) + + // right hand + ,KC_APP ,M(KF_6),M(KF_7),M(KF_8),M(KF_9) ,M(KF_10) ,KC_F11 + ,KC_RBRC ,KC_F ,KC_G ,KC_C ,KC_R ,KC_L ,KC_EQL + ,KC_D ,KC_H ,KC_T ,KC_N ,KC_S ,KC_BSLS + ,KC_RPRN ,KC_B ,KC_M ,KC_W ,KC_V ,KC_Z ,KC_MSTP + ,KC_MINS,KC_LEFT,KC_RGHT ,KC_PGUP ,KC_PGDN + + ,OSL(EMACS),M(OH_LEFT) + ,KC_LEAD + ,F(F_HUN),KC_ENT ,KC_SPC + ), + +/* Keymap 1: Application select layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | |Music |Slack |Emacs |Term |Chrome| | | | | | | | | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | | | | | | | | | | | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | |------| |------| | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | | | | | | | | | | | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ + +[APPSEL] = KEYMAP( +// left hand + KC_TRNS ,M(APP_MSIC),M(APP_SLK),M(APP_EMCS),M(APP_TERM),M(APP_CHRM),KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,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_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,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: Hungarian Layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | | | Ő | | Ű | | | | | | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | Á | Ó | É | Ú | Í |------| |------| | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | Ö | | Ü | | | | | | | | | | | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | BASE | | | + * `--------------------' `--------------------' + */ + +[HUN] = KEYMAP( +// left hand + KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_TRNS +,KC_NO ,KC_NO ,M(HU_OEE),KC_NO ,M(HU_UEE),KC_NO ,KC_NO +,KC_NO ,M(HU_AA),M(HU_OO) ,M(HU_EE),M(HU_UU) ,M(HU_II) +,KC_TRNS ,KC_NO ,M(HU_OE) ,KC_NO ,M(HU_UE) ,KC_NO ,KC_NO +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_NO + + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS + + // right hand + ,KC_TRNS ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + + ,KC_NO ,KC_NO + ,KC_NO + ,F(F_BSE),KC_TRNS ,KC_TRNS + ), + +/* Keymap 3: Spacemacs layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | MS Slow | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 |ScrLCK| |ScrLCK| 6 F6 | 7 F7 | 8 F8 | 9 F9 | 0 F10| F11 | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | MS Normal | | Home | Up | PgUp | |Visual| |Scroll| $ |MsUpL | MsUp |MsUpR | R |PrintScreen| + * |-----------+------+------+------+------+------| Mode | | Up |------+------+------+------+------+-----------| + * | MS Fast |APPEND| Left | Down | Right| INS |------| |------| D |MsLeft| MsDn |MsRght| | | + * |-----------+------+------+------+------+------| Cut | |Scroll|------+------+------+------+------+-----------| + * | Play/Pause| | End | Down | PgDn | X | Copy | | Down | |MsDnL | W |MsDnR | | Stop | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * |EmacsM|TermM |OtherM| | | |Vol Up|Vol Dn| Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Alt | GUI | | BASE | MClk | + * ,------|------|------| |------+------+------. + * |Delete| | Ctrl | | Prev |Left |Right | + * | |LShift|------| |------| Click| Click| + * |Paste | | ESC | | Next | | | + * `--------------------' `--------------------' + */ +[EMACS] = KEYMAP( +// left hand + KC_ACL0 ,M(KF_1) ,M(KF_2) ,M(KF_3) ,M(KF_4) ,M(KF_5) ,LGUI(KC_L) +,KC_ACL1 ,KC_NO ,KC_HOME ,KC_UP ,KC_PGUP ,KC_NO ,M(AE_VIS) +,KC_ACL2 ,M(AE_APPND) ,KC_LEFT ,KC_DOWN ,KC_RIGHT,M(AE_INS) +,KC_MPLY ,KC_NO ,KC_END ,KC_DOWN ,KC_PGDN ,KC_X ,M(AE_CPYC) +,M(AE_EMACS),M(AE_TERM) ,M(AE_OTHER),KC_NO ,KC_NO + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,M(AE_PSTDEL),KC_TRNS ,KC_TRNS + + // right hand + ,LGUI(KC_L),M(KF_6) ,M(KF_7) ,M(KF_8) ,M(KF_9) ,M(KF_10) ,M(KF_11) + ,KC_WH_U ,KC_DLR ,M(A_MUL),KC_MS_U ,M(A_MUR),M(AE_OVR),KC_PSCR + ,KC_D ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_NO ,KC_NO + ,KC_WH_D ,KC_NO ,M(A_MDL),KC_W ,M(A_MDR),KC_NO ,KC_MSTP + ,KC_VOLU ,KC_VOLD ,KC_MUTE ,KC_NO ,KC_NO + + ,KC_TRNS ,KC_MS_BTN3 + ,KC_MPRV + ,KC_MNXT ,KC_BTN1 ,KC_BTN2 + ), + +/* Keymap 5: One-handed, left side + * + * ,-----------------------------------------------------. + * | `~ | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 |A BSE| + * |-----------+------+------+------+------+-------------| + * | Tab | ' | , | . | P | Y | [ | + * |-----------+------+------+------+------+------| | + * | - | A | O | E | U | I |------| + * |-----------+------+------+------+------+------| ( | + * | Play/Pause| ; | Q | J | K | X | | + * `-----------+------+------+------+------+-------------' + * | Home | End | Down | Up | ESC | + * `-----------------------------------' + * ,-------------. + * | LAlt | GUI | + * ,------|------|------| + * |BackSp|LShift| Ctrl | + * | | |------| + * |Space |Enter |OTHER | + * `--------------------' + */ +[OHLFT] = KEYMAP( +// left hand + KC_GRV ,M(KF_1) ,M(KF_2) ,M(KF_3) ,M(KF_4) ,M(KF_5) ,M(OH_BASE) +,KC_TAB ,KC_QUOT ,KC_COMM ,KC_DOT ,KC_P ,KC_Y ,KC_LBRC +,KC_MINS ,KC_A ,KC_O ,KC_E ,KC_U ,KC_I +,KC_MPLY ,KC_SCLN ,KC_Q ,KC_J ,KC_K ,KC_X ,KC_LPRN +,KC_HOME ,KC_END ,KC_DOWN ,KC_UP ,M(A_ESC) + + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,M(OH_BSSPC),M(OH_ENTSFT),M(OH_RIGHT) + + // right hand + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + + ,KC_NO ,KC_NO + ,KC_NO + ,KC_NO ,KC_NO ,KC_NO + ), + +/* Keymap 6: One-handed, right side + * + * ,-----------------------------------------------------. + * | = F11 | 0 F10| 9 F9 | 8 F8 | 7 F7 | 6 F6 |A BSE| + * |-----------+------+------+------+------+-------------| + * | / | L | R | C | G | F | ] | + * |-----------+------+------+------+------+------| | + * | \ | S | N | T | H | D |------| + * |-----------+------+------+------+------+------| ) | + * | Stop | Z | V | W | M | B | | + * `-----------+------+------+------+------+-------------' + * | PgDn | PgUp | Right| Left | ESC | + * `-----------------------------------' + * ,-------------. + * | LAlt | GUI | + * ,------|------|------| + * |BackSp|LShift| Ctrl | + * | | |------| + * |Space |Enter |OTHER | + * `--------------------' + */ +[OHRGT] = KEYMAP( +// left hand + M(KF_11) ,M(KF_10) ,M(KF_9) ,M(KF_8) ,M(KF_7) ,M(KF_6) ,M(OH_BASE) +,KC_SLSH ,KC_L ,KC_R ,KC_C ,KC_G ,KC_F ,KC_RBRC +,KC_BSLS ,KC_S ,KC_N ,KC_T ,KC_H ,KC_D +,KC_MSTP ,KC_Z ,KC_V ,KC_W ,KC_M ,KC_B ,KC_RPRN +,KC_PGDN ,KC_PGUP ,KC_RGHT ,KC_LEFT ,M(A_ESC) + + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,M(OH_BSSPC),M(OH_ENTSFT),M(OH_LEFT) + + // right hand + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + + ,KC_NO ,KC_NO + ,KC_NO + ,KC_NO ,KC_NO ,KC_NO + ), + +/* Keymap 7: Steno for Plover + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | BASE | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | # | # | # | # | # | | | | # | # | # | # | # | # | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | T | P | H | |------| |------| | F | P | L | T | D | + * |--------+ S +------+------+------+ * | | | | * +------+------+------+------+--------| + * | | | K | W | R | | | | | | R | B | G | S | Z | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | A | O |------| |------| E | U | + * | | | | | | | | + * `--------------------' `--------------------' + */ + +[PLVR] = KEYMAP( +// left hand +KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, M(A_PLVR), +KC_NO, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, KC_NO, +KC_NO, PV_LS, PV_LT, PV_LP, PV_LH, PV_STAR, +KC_NO, PV_LS, PV_LK, PV_LW, PV_LR, PV_STAR, KC_NO, +KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, + KC_NO, + PV_A, PV_O, KC_NO, + + // right hand + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, + PV_STAR, PV_RF, PV_RP, PV_RL, PV_RT, PV_RD, + KC_NO, PV_STAR, PV_RR, PV_RB, PV_RG, PV_RS, PV_RZ, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, + KC_NO, + KC_NO,PV_E, PV_U + ), + +/* Keymap 8: Experimental layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | `~ | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 | Plvr | | Apps | 6 F6 | 7 F7 | 8 F8 | 9 F9 | 0 F10| F11 | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | Next/Prev | ' | , | . | P | Y | [ | | ] | Q | F | C | R | J | = | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | Tab | A | O | E | U | I |------| |------| D | H | T | N | S | \ | + * |-----------+------+------+------+------+------| ( | | ) |------+------+------+------+------+-----------| + * | Play/Pause| Z | K | V | G | X | | | | L | M | W | B | / | Stop | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | Home | End | Down | Up | : | | - | Left | Right| PgUp | PgDn | + * `-----------------------------------' `-----------------------------------' + * ,-------------. ,-------------. + * | LAlt | GUI | |EMACS | 1HND | + * ,------|------|------| |------+------+------. + * | | | Ctrl | | LEAD | | | + * |Backsp|LShift|------| |------| Enter| Space| + * | | | ESC | | HUN | | | + * `--------------------' `--------------------' + */ +[EXPRM] = KEYMAP( +// left hand + KC_GRV ,M(KF_1) ,M(KF_2) ,M(KF_3),M(KF_4),M(KF_5),M(A_PLVR) +,M(A_MPN) ,KC_QUOT ,KC_COMM ,KC_DOT ,KC_P ,KC_Y ,KC_LBRC +,KC_TAB ,KC_A ,KC_O ,KC_E ,KC_U ,KC_I +,KC_MPLY ,KC_Z ,KC_K ,KC_V ,KC_G ,KC_X ,KC_LPRN +,KC_HOME ,KC_END ,KC_DOWN ,KC_UP ,M(A_COLN) + + ,F(F_ALT),F(F_GUI) + ,F(F_CTRL) + ,KC_BSPC,F(F_SFT),M(A_ESC) + + // right hand + ,KC_APP ,M(KF_6),M(KF_7),M(KF_8),M(KF_9) ,M(KF_10) ,KC_F11 + ,KC_RBRC ,KC_Q ,KC_F ,KC_C ,KC_R ,KC_J ,KC_EQL + ,KC_D ,KC_H ,KC_T ,KC_N ,KC_S ,KC_BSLS + ,KC_RPRN ,KC_L ,KC_M ,KC_W ,KC_B ,KC_SLSH ,KC_MSTP + ,KC_MINS,KC_LEFT,KC_RGHT ,KC_PGUP ,KC_PGDN + + ,OSL(EMACS),M(OH_LEFT) + ,KC_LEAD + ,F(F_HUN),KC_ENT ,KC_SPC + ), + + +}; + +const uint16_t PROGMEM fn_actions[] = { + [F_BSE] = ACTION_LAYER_CLEAR(ON_PRESS) + ,[F_HUN] = ACTION_LAYER_INVERT(HUN, ON_PRESS) + ,[F_GUI] = ACTION_MACRO_TAP(A_GUI) + ,[F_SFT] = ACTION_MODS_ONESHOT (MOD_LSFT) + ,[F_ALT] = ACTION_MODS_ONESHOT (MOD_LALT) + ,[F_CTRL] = ACTION_MODS_ONESHOT (MOD_LCTL) +}; + +void toggle_steno(int pressed) +{ + uint8_t layer = biton32(layer_state); + + if (pressed) { + if (layer != PLVR) layer_on(PLVR); else layer_off(PLVR); + + register_code(PV_LP); + register_code(PV_LH); + register_code(PV_LR); + register_code(PV_O); + register_code(PV_RL); + register_code(PV_RG); + } else { + unregister_code(PV_LP); + unregister_code(PV_LH); + unregister_code(PV_LR); + unregister_code(PV_O); + unregister_code(PV_RL); + unregister_code(PV_RG); + } +} + +macro_t *ang_do_hun (keyrecord_t *record, uint16_t accent, uint16_t hun_char) +{ + uint8_t need_shift = 0; + uint8_t hold_shift = 0; + + if (!record->event.pressed) + return MACRO_NONE; + + layer_off (HUN); + + if (keyboard_report->mods & MOD_BIT (KC_LSFT)) { + hold_shift = 1; + need_shift = 1; + unregister_code (KC_LSFT); + } + if ((get_oneshot_mods () & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out ()) { + need_shift = 1; + hold_shift = 0; + unregister_code (KC_LSFT); + } + + clear_oneshot_mods (); + + register_code (KC_RALT); + unregister_code (KC_RALT); + if (accent == (KC_DQT)) { + register_code (KC_RSFT); + } + register_code (accent); + unregister_code (accent); + if (need_shift && accent != (KC_DQT)) { + register_code (KC_RSFT); + } else if (accent == (KC_DQT) && !need_shift) { + unregister_code (KC_RSFT); + } + register_code (hun_char); + unregister_code (hun_char); + if (need_shift || accent == (KC_DQT)) + unregister_code (KC_RSFT); + if (hold_shift) + register_code (KC_LSFT); + + return MACRO_NONE; +} + +void ang_handle_kf (keyrecord_t *record, uint8_t id) +{ + uint8_t code = id - KF_1; + + if (record->event.pressed) { + kf_timers[code] = timer_read (); + } else { + uint8_t kc; + + if (timer_elapsed (kf_timers[code]) > TAPPING_TERM) { + // Long press + kc = KC_F1 + code; + } else { + if (id == KF_11) + kc = KC_EQL; + else + kc = KC_1 + code; + } + + register_code (kc); + unregister_code (kc); + } +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case A_ESC: + if (record->event.pressed) { + if ((get_oneshot_mods ()) && !has_oneshot_mods_timed_out ()) { + clear_oneshot_mods (); + } else { + register_code (KC_ESC); + } + layer_off (HUN); + } else { + unregister_code (KC_ESC); + } + break; + + case A_COLN: + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || + ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out())) { + int oneshot = ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out()); + + if (record->event.pressed) { + if (oneshot) + clear_oneshot_mods (); + unregister_code (KC_LSFT); + + register_code (KC_SCLN); + unregister_code (KC_SCLN); + if (!oneshot) + register_code (KC_LSFT); + } + } else { + return MACRODOWN (D(RSFT), T(SCLN), U(RSFT), END); + } + break; + + case A_MPN: + if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || + ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out())) { + int oneshot = ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out()); + + if (oneshot) + clear_oneshot_mods (); + unregister_code (KC_LSFT); + + register_code (KC_MPRV); + unregister_code (KC_MPRV); + + if (!oneshot) + register_code (KC_LSFT); + } else { + return MACRO (T(MNXT), END); + } + } + break; + + /* Hungarian layer */ + case HU_AA: + return ang_do_hun (record, KC_QUOT, KC_A); + case HU_OO: + return ang_do_hun (record, KC_QUOT, KC_O); + case HU_EE: + return ang_do_hun (record, KC_QUOT, KC_E); + case HU_UU: + return ang_do_hun (record, KC_QUOT, KC_U); + case HU_II: + return ang_do_hun (record, KC_QUOT, KC_I); + case HU_OE: + return ang_do_hun (record, KC_DQT, KC_O); + case HU_UE: + return ang_do_hun (record, KC_DQT, KC_U); + case HU_OEE: + return ang_do_hun (record, KC_EQL, KC_O); + case HU_UEE: + return ang_do_hun (record, KC_EQL, KC_U); + + /* Mouse movement */ + case A_MUL: + if (record->event.pressed) { + mousekey_on(KC_MS_UP); + mousekey_on(KC_MS_LEFT); + } else { + mousekey_off(KC_MS_UP); + mousekey_off(KC_MS_LEFT); + } + mousekey_send(); + break; + + case A_MUR: + if (record->event.pressed) { + mousekey_on(KC_MS_UP); + mousekey_on(KC_MS_RIGHT); + } else { + mousekey_off(KC_MS_UP); + mousekey_off(KC_MS_RIGHT); + } + mousekey_send(); + break; + + case A_MDL: + if (record->event.pressed) { + mousekey_on(KC_MS_DOWN); + mousekey_on(KC_MS_LEFT); + } else { + mousekey_off(KC_MS_DOWN); + mousekey_off(KC_MS_LEFT); + } + mousekey_send(); + break; + + case A_MDR: + if (record->event.pressed) { + mousekey_on(KC_MS_DOWN); + mousekey_on(KC_MS_RIGHT); + } else { + mousekey_off(KC_MS_DOWN); + mousekey_off(KC_MS_RIGHT); + } + mousekey_send(); + break; + + /* EMACS layer stuff */ + case AE_EMACS: + if (record->event.pressed) { + cp_mode = CP_EMACS; + } + break; + + case AE_TERM: + if (record->event.pressed) { + cp_mode = CP_TERM; + } + break; + + case AE_OTHER: + if (record->event.pressed) { + cp_mode = CP_OTHER; + } + break; + + case AE_VIS: + if (cp_mode == CP_EMACS && record->event.pressed) { + return MACRO(T(V), END); + } + break; + + case AE_CPYC: + if (record->event.pressed) { + m_copypaste_timer = timer_read (); + } else { + if (timer_elapsed (m_copypaste_timer) > TAPPING_TERM) { + // Long press: Cut + switch (cp_mode) { + case CP_EMACS: + return MACRO(T(X), END); + break; + case CP_TERM: + return MACRO(D(RCTRL), D(RSFT), T(X), U(RSFT), U(RCTRL), END); + break; + case CP_OTHER: + return MACRO(D(RCTRL), T(X), U(RCTRL), END); + break; + } + } else { + // Short press: Copy + switch (cp_mode) { + case CP_EMACS: + return MACRO(T(Y), END); + break; + case CP_TERM: + return MACRO(D(RCTRL), D(RSFT), T(C), U(RSFT), U(RCTRL), END); + break; + case CP_OTHER: + return MACRO(D(RCTRL), T(C), U(RCTRL), END); + break; + } + } + } + break; + + case AE_PSTDEL: + if (record->event.pressed) { + m_cutdel_timer = timer_read (); + } else { + if (timer_elapsed (m_cutdel_timer) > TAPPING_TERM) { + // Long press: Delete + switch (cp_mode) { + case CP_EMACS: + return MACRO(T(D), END); + break; + case CP_TERM: + case CP_OTHER: + return MACRO(T(DEL), END); + break; + } + } else { + // Short press: Paste + switch (cp_mode) { + case CP_EMACS: + if (keyboard_report->mods & MOD_BIT(KC_RSFT)) { + unregister_code (KC_RSFT); + return MACRO(U(RSFT), T(RBRC), T(P), D(RSFT), END); + } + else + return MACRO(T(P), END); + break; + case CP_TERM: + return MACRO(D(RCTRL), D(RSFT), T(V), U(RSFT), U(RCTRL), END); + break; + case CP_OTHER: + return MACRO(D(RCTRL), T(V), U(RCTRL), END); + break; + } + } + } + break; + + case AE_INS: + if (record->event.pressed) { + return MACRO(T(I), END); + } else { + layer_clear(); + } + break; + + case AE_OVR: + if (record->event.pressed) { + return MACRO(T(R), END); + } else { + layer_clear(); + } + break; + + case AE_APPND: + if (record->event.pressed) { + return MACRO(T(A), END); + } else { + layer_clear(); + } + break; + + /* Plover base */ + case A_PLVR: + toggle_steno(record->event.pressed); + break; + + /* GUI & AppSel */ + case A_GUI: + if (record->event.pressed) { + register_code (KC_LGUI); + if (record->tap.count && !record->tap.interrupted) { + if (record->tap.count >= 2) { + register_code (KC_W); + layer_on (APPSEL); + set_oneshot_layer (APPSEL, ONESHOT_START); + } + } else { + record->tap.count = 0; + } + gui_timer = 0; + } else { + if (record->tap.count >= 2) + { + unregister_code (KC_W); + clear_oneshot_layer_state (ONESHOT_PRESSED); + } + gui_timer = timer_read (); + } + break; + + case APP_SLK: + return MACRODOWN(T(S), T(C), T(U), T(D), T(C), T(L), T(O), T(U), T(D), T(ENT), END); + + case APP_EMCS: + return MACRODOWN(T(E), T(M), T(A), T(C), T(S), T(ENT), END); + + case APP_TERM: + return MACRODOWN(T(T), T(E), T(R), T(M), T(ENT), END); + + case APP_CHRM: + return MACRODOWN(T(C), T(H), T(R), T(O), T(M), T(ENT), END); + + case APP_MSIC: + return MACRODOWN(T(R), T(H), T(Y), T(T), T(H), T(M), T(B), T(O), T(X), T(ENT), END); + + /* Function keys */ + case KF_1 ... KF_11: + ang_handle_kf (record, id); + break; + + /* 1HAND layout */ + case OH_BASE: + if (record->event.pressed) { + oh_base_timer = timer_read (); + } else { + if (timer_elapsed (oh_base_timer) > TAPPING_TERM) { + layer_clear (); + } else { + return MACRO (T(APP), END); + } + } + break; + + case OH_BSSPC: + if (record->event.pressed) { + oh_bsspc_timer = timer_read (); + } else { + if (timer_elapsed (oh_bsspc_timer) > TAPPING_TERM) { + return MACRO (T(BSPC), END); + } else { + return MACRO (T(SPC), END); + } + } + break; + + case OH_ENTSFT: + if (record->event.pressed) { + oh_entsft_timer = timer_read (); + } else { + if (timer_elapsed (oh_entsft_timer) > TAPPING_TERM) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT)) + unregister_code (KC_LSFT); + else + register_code (KC_LSFT); + } else { + return MACRO (T(ENT), END); + } + } + break; + + case OH_LEFT: + if (record->event.pressed) { + layer_move (OHLFT); + oh_left_blink = 1; + oh_left_blink_timer = timer_read (); + ergodox_right_led_1_on (); + } + break; + + case OH_RIGHT: + if (record->event.pressed) { + layer_move (OHRGT); + oh_right_blink = 1; + oh_right_blink_timer = timer_read (); + ergodox_right_led_3_on (); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + ergodox_led_all_on(); + for (int i = LED_BRIGHTNESS_HI; i > LED_BRIGHTNESS_LO; i--) { + ergodox_led_all_set (i); + _delay_ms (5); + } + _delay_ms(1000); + for (int i = LED_BRIGHTNESS_LO; i > 0; i--) { + ergodox_led_all_set (i); + _delay_ms (10); + } + ergodox_led_all_off(); +}; + +LEADER_EXTERNS(); + +void ang_do_unicode (void) { + register_code (KC_RCTL); + register_code (KC_RSFT); + register_code (KC_U); + unregister_code (KC_U); + unregister_code (KC_RSFT); + unregister_code (KC_RCTL); + _delay_ms (100); +} + +void ang_tap (uint16_t codes[]) { + for (int i = 0; codes[i] != 0; i++) { + register_code (codes[i]); + unregister_code (codes[i]); + _delay_ms (50); + } +} + +#define TAP_ONCE(code) \ + register_code (code); \ + unregister_code (code) + +uint8_t is_exp = 0; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + uint8_t layer = biton32(layer_state); + + if (gui_timer && timer_elapsed (gui_timer) > TAPPING_TERM) + unregister_code (KC_LGUI); + + if (layer != OHLFT) + oh_left_blink = 0; + if (layer != OHRGT) + oh_right_blink = 0; + + if (layer == HUN) { + ergodox_right_led_2_on(); + ergodox_right_led_3_on(); + } else if (layer == EMACS) { + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + } else if (layer == PLVR) { + ergodox_right_led_1_on (); + ergodox_right_led_2_on (); + ergodox_right_led_3_on (); + } else if (layer == EXPRM) { + ergodox_right_led_1_on (); + ergodox_right_led_2_on (); + ergodox_right_led_3_on (); + + ergodox_right_led_2_set (LED_BRIGHTNESS_HI); + } + + if (layer == OHLFT || layer == OHRGT) { + ergodox_right_led_2_on(); + + if (oh_left_blink) { + if (timer_elapsed (oh_left_blink_timer) > OH_BLINK_INTERVAL) { + if ((keyboard_report->mods & MOD_BIT(KC_LSFT)) == 0) + ergodox_right_led_1_off (); + } + if (timer_elapsed (oh_left_blink_timer) > OH_BLINK_INTERVAL * 2) { + ergodox_right_led_1_on (); + oh_left_blink_timer = timer_read (); + } + } + + if (oh_right_blink) { + if (timer_elapsed (oh_right_blink_timer) > OH_BLINK_INTERVAL) { + if ((keyboard_report->mods & MOD_BIT(KC_LCTRL)) == 0) + ergodox_right_led_3_off (); + } + if (timer_elapsed (oh_right_blink_timer) > OH_BLINK_INTERVAL * 2) { + ergodox_right_led_3_on (); + oh_right_blink_timer = timer_read (); + } + } + } + + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || + ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out())) { + ergodox_right_led_1_set (LED_BRIGHTNESS_HI); + ergodox_right_led_1_on (); + } else { + ergodox_right_led_1_set (LED_BRIGHTNESS_LO); + if (layer != OHLFT && layer != EMACS && layer != PLVR && layer != EXPRM) + ergodox_right_led_1_off (); + } + + if (keyboard_report->mods & MOD_BIT(KC_LALT) || + ((get_oneshot_mods() & MOD_BIT(KC_LALT)) && !has_oneshot_mods_timed_out())) { + ergodox_right_led_2_set (LED_BRIGHTNESS_HI); + ergodox_right_led_2_on (); + } else { + ergodox_right_led_2_set (LED_BRIGHTNESS_LO); + if (layer != OHRGT && layer != HUN && layer != OHLFT && layer != EMACS && layer != PLVR && layer != EXPRM) + ergodox_right_led_2_off (); + } + + if (keyboard_report->mods & MOD_BIT(KC_LCTRL) || + ((get_oneshot_mods() & MOD_BIT(KC_LCTRL)) && !has_oneshot_mods_timed_out())) { + ergodox_right_led_3_set (LED_BRIGHTNESS_HI); + ergodox_right_led_3_on (); + } else { + ergodox_right_led_3_set (LED_BRIGHTNESS_LO); + if (layer != OHRGT && layer != HUN && layer != PLVR && layer != EXPRM) + ergodox_right_led_3_off (); + } + + LEADER_DICTIONARY() { + leading = false; + leader_end (); + + SEQ_ONE_KEY (KC_U) { + ang_do_unicode (); + } + +#ifdef QMK_VERSION + SEQ_ONE_KEY (KC_V) { + SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); + } +#endif + + SEQ_ONE_KEY (KC_L) { + /* λ */ + ang_do_unicode (); + + uint16_t codes[] = {KC_0, KC_3, KC_B, KC_B, KC_ENT, 0}; + ang_tap (codes); + } + + SEQ_ONE_KEY (KC_Y) { + uint16_t codes[] = {KC_BSLS, KC_O, KC_SLSH, 0}; + ang_tap (codes); + } + + SEQ_ONE_KEY (KC_S) { + ang_do_unicode (); TAP_ONCE (KC_A); TAP_ONCE (KC_F); TAP_ONCE (KC_SPC); + TAP_ONCE (KC_BSLS); + register_code (KC_RSFT); TAP_ONCE (KC_MINS); TAP_ONCE (KC_9); unregister_code (KC_RSFT); + ang_do_unicode (); TAP_ONCE (KC_3); TAP_ONCE (KC_0); TAP_ONCE (KC_C); TAP_ONCE (KC_4); TAP_ONCE (KC_SPC); + register_code (KC_RSFT); TAP_ONCE (KC_0); TAP_ONCE (KC_MINS); unregister_code (KC_RSFT); + TAP_ONCE (KC_SLSH); + ang_do_unicode (); TAP_ONCE (KC_A); TAP_ONCE (KC_F); TAP_ONCE (KC_SPC); + } + + SEQ_TWO_KEYS (KC_W, KC_M) { + register_code (KC_LALT); + register_code (KC_F2); + unregister_code (KC_F2); + unregister_code (KC_LALT); + + _delay_ms (1000); + + uint16_t codes[] = {KC_M, KC_A, KC_X, KC_MINS, KC_F, KC_O, KC_C, KC_U, KC_S, KC_E, KC_D, KC_ENT, 0}; + ang_tap (codes); + register_code (KC_LGUI); + register_code (KC_UP); + unregister_code (KC_UP); + unregister_code (KC_LGUI); + } + + SEQ_ONE_KEY (KC_E) { + if (is_exp == 0) { + default_layer_and (0); + default_layer_or ((1 << EXPRM)); + is_exp = 1; + + ergodox_led_all_off (); + ergodox_right_led_3_on (); + _delay_ms (100); + ergodox_right_led_2_on (); + _delay_ms (100); + ergodox_right_led_3_off (); + ergodox_right_led_1_on (); + _delay_ms (100); + ergodox_right_led_2_off (); + _delay_ms (100); + ergodox_right_led_1_off (); + } else { + is_exp = 0; + default_layer_and (0); + default_layer_or (1 << BASE); + + ergodox_led_all_off (); + ergodox_right_led_1_on (); + _delay_ms (100); + ergodox_right_led_2_on (); + _delay_ms (100); + ergodox_right_led_1_off (); + ergodox_right_led_3_on (); + _delay_ms (100); + ergodox_right_led_2_off (); + _delay_ms (100); + ergodox_right_led_3_off (); + + } + } + } +} diff --git a/keyboards/ergodox_ez/keymaps/algernon/readme.md b/keyboards/ergodox_ez/keymaps/algernon/readme.md new file mode 100644 index 000000000..c66b33f3d --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/algernon/readme.md @@ -0,0 +1,158 @@ +algernon's layout +======================= + +This is an unconventional layout for the ErgoDox EZ. For more details about the +history of the layout, see my +[blog posts about my ErgoDox journey][blog-ergodox]. + + [blog-ergodox]: https://asylum.madhouse-project.org/blog/tags/ergodox/ + +Some of the things in the layout only work when one uses Spacemacs and GNOME +under Linux. Your mileage may vary. + +## Base layer + +[![Base layer](images/base-layer.png)](http://www.keyboard-layout-editor.com/#/gists/28f7eb305fdbff943613e1dc7aa9e82b) + +At its core, this is a Dvorak layout, with some minor changes (for example, `-` +being on the left half, and on the innermost key of the bottom row on the +right). The more interesting parts are how certain keys behave: + +* The keys on the number row double as function keys, when held for a bit longer + than an usual tap. This allows me to use the function keys without having to + switch layers. +* The `Shift`, `Alt`, and `Control` modifiers are one-shot. When tapped, they + are considered active for the next key press only. When double tapped, they + toggle on, until a third, single tap sometime later. When held, they act as + expected. My usual pattern is that I use these for the next keypress only, so + this behaviour is perfect. If I need them held, I'll just double-tap. +* The `GUI` key is special, because when I double-tap it, it sends `GUI + w`, + which pops up an application selector. It also switches to a one-shot layer, + where the number row on the left half turns into app selector macros, for the + most common things I usually want to switch to. Otherwise it behaves as on a + normal layout. +* The `ESC` key also doubles as a one-shot cancel key: if tapped while any of + the one-shot modifiers are in-flight (as in, single-tapped, and not expired + yet), it cancels all one-shot modifiers. Otherwise it sends the usual keycode. +* The **Emacs** and **Hun** layer keys are one-shot, the **1Hand** and **STENO** + keys are toggles. +* The **Lead** key allows me to type in a sequence of keys, and trigger some + actions: + - `LEAD u` enters unicode input mode, by sending the GTK+ key sequence that + does this. + - `LEAD l` uses the unicode input method to enter a `λ`. + - `LEAD s` does a lot of magic to type in a shruggie: `¯\_(ツ)_/¯` + - `LEAD y` types `\o/`. + - `LEAD w m` maximises the currently focused window. + - `LEAD e` makes the [experimental layer](#experimental-layer) the default. + - `LEAD v` prints the firmware version, the keyboard and the keymap, if + compiled with a QMK version that has these available. + +## Hungarian layer + +[![Hungarian layer](images/hun-layer.png)](http://www.keyboard-layout-editor.com/#/gists/b160f6ec90d58c127c114c89f66e9dc9) + +On this layer, the accented characters are at the same position as their base +variant. For some, which can have other diatribes, the long one is on top, +short's on bottom. Tapping any of the accented characters takes us back to the +base layer. + +## Emacs layer + +[![Emacs layer](images/emacs-layer.png)](http://www.keyboard-layout-editor.com/#/gists/c59c453f9fe1a3238ba1494e7e5c6892) + +This layer is primarily for navigating text - and for some mousing and other +things, because there was space. Most of the keys should be pretty +self-explanatory, except for a few: + +* There are three keys on the bottom row of the left side, that change how some + of the other keys - explained just below - work. The keys are for *Emacs + mode* (the default), *Terminal mode*, and *Traditional mode*, respectively. +* The *Visual mode* key (the top big key on the left side) sends the `v` key in + *Emacs mode*, to enter Visual mode in Spacemacs. In all other modes, it is a + no-op. +* The *Copy/Cut* key (the bottom big key on the left side) sends the copy + command on tap, the cut one when held for longer than a normal tap. The **copy + command** is `y` in *Emacs mode*, `Ctrl-Shift-c` in *Terminal mode*, and + `Ctrl-c` in *Traditional mode*. The **cut command** is `x` in *Emacs mode*, + `Ctrl-Shift-x` in *Terminal Mode* and `Ctrl-x` in *Traditional mode*. +* The *Paste/Delete* key (the leftmost key on the left thumb cluster) sends the + paste command on tap, the delete one when held longer than a normal tap. The + **paste command** is `p` in *Emacs mode*, `Ctrl-Shift-v` in *Terminal mode*, + and `Ctrl-v` in *Traditional mode*. The **delete command** is `d` in *Emacs + mode*, and `DEL` in the other two. +* The `A`, `I` and `R` keys will - after sending themselves - clear the layer + back to the base layer. This allows a quick escape from the layer. + +## One-handed layer + +[![One-handed layer](images/one-handed-layer.png)](http://www.keyboard-layout-editor.com/#/gists/edff2495135955b8963198dace7f7ece) + +The one-handed layer is used in situations where the right hand is occupied, by +mousing around, for example. Tapping the `OTHER` key switches which side is +active. For the most part, keys remain in their usual position. When the right +half is active, keys are mirrored to the left half. + +The differences are as follows: + +* The `ESC` key has been moved to the bottom row, so the `OTHER` key is easier + to tap. +* Most keys on the thumb cluster now have dual uses, and these do not change + when switching sides: + - The `Space`/`Backspace` key sends `Space` on tap, `Backspace` when held + for longer than a normal tap. + - The `Enter`/`Shift` key sends `Enter` on short-tap, `Shift` on long-tap. +* The `Apps`/`BASE` key can be used to go back to the base layer, by + long-tapping it. A short-tap will send the `App` key, as usual. + +## Steno layer + +[![Steno layer for Plover](images/steno-layer.png)](http://www.keyboard-layout-editor.com/#/gists/401ef9a84369e47c57f9aedcf0a0d667) + +This is to be used with [Plover](http://www.openstenoproject.org/plover/), +nothing really fancy here. The **STENO** key toggles the layer on and off, and +sends the toggle command to Plover too. + +## Experimental layer + +[![Experimental layer](images/experimental-layer.png)](http://www.keyboard-layout-editor.com/#/gists/6ff50bf71248e05aab5b3fec4fae3d08) + +While using the standard Dvorak layout, I encountered a number of +inconveniences, and on this layer, I am playing with ideas to make the layout +feel better. Initially, it was based on [Capewell-Dvorak][cpd], but that too, +had shortcomings I was not happy with. So now this is something inbetween, with +own observations thrown in. How it works out in the long run remains to be seen. + + [cpd]: http://www.michaelcapewell.com/projects/keyboard/layout_capewell-dvorak.htm + +# Building + +To make my workflow easier, this layout is maintained in +[its own repository][algernon:ez-layout]. To build it, you will need the +[QMK][qmk] firmware checked out, and this repo either checked out, or symlinked +to `keyboards/ergodox_ez/algernon`. One way to achieve that is this: + + [algernon:ez-layout]: https://github.com/algernon/ergodox-layout + [qmk]: https://github.com/jackhumbert/qmk_firmware + +``` +$ git clone https://github.com/jackhumbert/qmk_firmware.git +$ cd qmk_firmware/keyboards/ergodox_ez +$ git clone https://github.com/algernon/ergodox-layout.git keymaps/algernon +$ make KEYMAP=algernon +``` + +From time to time, updates may be submitted back to the QMK repository. If you +are reading it there, you can build the firmware like any other firmware +included with it (assuming you are in the root directory of the firmware): + +``` +$ cd keyboards/ergodox_ez +$ make KEYMAP=algernon +``` + +# License + +The layout, being a derivative of the original TMK firmware which is under the +GPL-2+, this layout is under the GPL as well, but GPL-3+, rather than the older +version. diff --git a/keyboards/ergodox_ez/keymaps/algernon/tools/max-focused b/keyboards/ergodox_ez/keymaps/algernon/tools/max-focused new file mode 100755 index 000000000..4d5220aa8 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/algernon/tools/max-focused @@ -0,0 +1,5 @@ +#! /bin/sh +WIN="$(xdotool getactivewindow)" +wmctrl -i -r ${WIN} -b remove,maximized_vert,maximized_horz +xdotool windowsize ${WIN} 100% 100% +wmctrl -i -r ${WIN} -b add,maximized_vert,maximized_horz diff --git a/keyboards/ergodox_ez/keymaps/andrew_osx/compiled.hex b/keyboards/ergodox_ez/keymaps/andrew_osx/compiled.hex new file mode 100644 index 000000000..14d0fbe0b --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/andrew_osx/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947A020C94BE020C94BE020C94BE02B4 +:100010000C94BE020C94BE020C94BE020C94BE0260 +:100020000C94BE020C94BE020C94620D0C94340E1F +:100030000C94BE020C94BE020C94BE020C94BE0240 +:100040000C94BE020C943E220C94BE020C94BE0290 +:100050000C94BE020C94D11B0C94BE020C94BE02F4 +:100060000C94BE020C94BE020C94BE020C94BE0210 +:100070000C94BE020C94BE020C94BE020C94BE0200 +:100080000C94BE020C94BE020C94BE020C94BE02F0 +:100090000C94BE020C94BE020C94BE020C94BE02E0 +:1000A0000C94BE020C94BE020C94BE02A10EC30EB0 +:1000B000B10FC30EB10F080F2B0FB10F800F930FAD +:1000C0006212621291129112C712E71218141814D8 +:1000D000F2121814A213A2130914181418141214EB +:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300 +:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0 +:10010000C113CE13D513DC13E6130000F0A12E00AB +:100110002B002971E100354100001E00140004008D +:100120001D71E20027021F001A0016001B00E104E7 +:10013000E300200008000700060050002C0021000A +:100140001500090019004F002602220017000A00BE +:100150000500000065743400C1000000007F00004D +:10016000E3003400C10000000077000029002300F4 +:100170001C000B00110000002971240018000D0064 +:10018000100052002F0225000C000E003600510016 +:100190002800260012000F0037002F00E70027007C +:1001A000130033423871300030022A002D00310034 +:1001B000E500015400000100010001000100010000 +:1001C00000003A001E0220022202010001003B0052 +:1001D0001F0221022302010001003C002F0226021F +:1001E0002F00010001003D00300227023000010015 +:1001F00001003E003102350035020000010001001F +:1002000001000000010000000100010001000000E9 +:100210000100000001003F005200510024020000D4 +:1002200001004000240021001E00010001004100E7 +:10023000250022001F003700010042002600230095 +:10024000200027000100430025022E0231002E006D +:100250000100440045000100010001000000010010 +:100260000100010001000100000001000100010087 +:1002700001000100010001000100F2000100010085 +:1002800001000100F000F1000100F4000100010094 +:100290000100F3000100F500010001000100010070 +:1002A0000100000001000100010000000100000049 +:1002B0000100010001000000010000000100010038 +:1002C0000100010001000000010001000100010027 +:1002D0000100A9000100010001000100AC00AA001A +:1002E000B600010001000100AB00A8000100010000 +:1002F0000100010001000100010001000100AE0049 +:1003000001000100000016034500720067006F0045 +:1003100044006F007800200045005A0000001603DA +:100320004500720067006F0044006F0078002000F5 +:1003300045005A0000000403090409026D0004018D +:1003400000A0FA09040000010301010009211101C4 +:100350000001223F000705810308000A090401008B +:100360000103010200092111010001224D000705CE +:10037000820308000A0904020001030000000921A9 +:10038000110100012236000705830308000A090451 +:1003900003000103000000092111010001223900BE +:1003A000070584031000011201100100000008ED90 +:1003B000FE071301000102000105010906A1010564 +:1003C0000719E029E7150025019508750181020547 +:1003D000081901290595057501910295017503918B +:1003E0000105071900297715002501957875018108 +:1003F00002C005010980A101850216010026B7008F +:100400001A01002AB700751095018100C0050C097A +:1004100001A1018503160100269C021A01002A9CF5 +:1004200002751095018100C005010902A1010901B1 +:10043000A10005091901290515002501950575017A +:10044000810295017503810105010930093115818A +:10045000257F95027508810609381581257F95014C +:1004600075088106050C0A38021581257F950175EE +:10047000088106C0C005010906A101050719E02988 +:10048000E715002501950875018102950175088120 +:100490000105081901290595057501910295017558 +:1004A0000391010507190029FF150025FF95067521 +:1004B000088100C0000000000000000000000001F2 +:1004C0000204060A0F17202C3A4A5D71879DB3C7B4 +:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF +:1004E0003A2C20170F0A0604020100000000000049 +:1004F0000000000011241FBECFEFDAE0DEBFCDBF49 +:1005000004B603FE24C08091FB019091FC01A091F0 +:10051000FD01B091FE018730904BA740B04BB9F47C +:100520001092FB011092FC011092FD011092FE014D +:1005300014BE84B7877F84BF88E10FB6F894809398 +:100540006000109260000FBEE0E0FFE3099511E04B +:10055000A0E0B1E0EAE0F8E402C005900D92A43317 +:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0 +:10057000B107E1F70E94A60A0C9403240C94000032 +:100580001092B9008AE08093B800089594EA90939D +:10059000BC009091BC0097FFFCCF9091B900987F70 +:1005A000983021F0903111F081E008958093BB00E4 +:1005B00084E88093BC008091BC0087FFFCCF8091D1 +:1005C000B900887F883111F0803471F780E0089598 +:1005D00084E98093BC008091BC0084FDFCCF089529 +:1005E0008093BB0084E88093BC008091BC0087FFAF +:1005F000FCCF9091B900987F81E0983209F480E0B7 +:10060000089584E88093BC008091BC0087FFFCCFF4 +:100610008091BB00089580910101811115C080E493 +:100620000E94C6028093010181110CC082E10E94E8 +:10063000F00280930101811105C08FEF0E94F0024A +:10064000809301010E94E80284B1807F84B985B162 +:10065000807F85B98AB1837F8AB98BB1837F8BB95B +:100660003E98469808950E94C604809301010E9416 +:100670000B0380B38C7080BB81B3836F81BBA5E318 +:10068000B1E0E3E4F1E08EE08E0F11921D928E1343 +:10069000FCCF0C94B004BF92CF92DF92EF92FF9206 +:1006A0000F931F93CF93DF9380910101882379F0FB +:1006B000809134018F5F80933401811108C00E94C2 +:1006C000C60480930101811102C00E94580405E311 +:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407 +:1006E000E394F12CC730D10500F58091010181110F +:1006F00064C080E40E94C60280930101811112C08F +:1007000082E10E94F0028093010181110BC0C701B8 +:100710000C2E01C0880F0A94EAF780950E94F0021F +:10072000809301010E94E80248C0CA30A1F028F479 +:10073000C83059F0C93061F005C0CC3089F070F094 +:10074000CD3089F0209A289810C0219A29980DC0A0 +:10075000229A2A980AC0239A2B9807C0529A01C05D +:10076000539A5B9802C03E9A469890EA9A95F1F7A0 +:100770009FB1799902C082E001C080E091709D250F +:10078000982B7C9902C084E001C080E0892B7D9980 +:1007900002C038E001C030E0832B7E9902C020E126 +:1007A00001C020E0822B9FB19095991F9927991F36 +:1007B0009295990F907E892B0FC080910101811134 +:1007C00049C080E40E94C60280930101882379F128 +:1007D000B12C0E94E8028B2DF8019081981719F036 +:1007E0008083C09200010E940B0321960F5F1F4F70 +:1007F000CE30D10509F076CF80910001882361F1D8 +:10080000815080930001882339F08FE99FE00197A0 +:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F +:10082000CF01825F91919D938E13FCCF15C083E120 +:100830000E94F002809301018111CACF81E40E94DD +:10084000C602809301018111C3CF0E940103B82E1B +:10085000B094BFCF80E0C0CF0E94560481E0DF910A +:10086000CF911F910F91FF90EF90DF90CF90BF90AD +:100870000895E82FF0E0ED5BFE4F80810895089524 +:100880000F931F93CF93DF93C3E4D1E010E00C2FBD +:10089000025F899190E00E94F71A180F0C13F9CFAC +:1008A000812FDF91CF911F910F9108950C94260510 +:1008B00056985E9825982D9826982E9827982F98C8 +:1008C0008FEF90E0909389008093880090938B0045 +:1008D00080938A0090938D0080938C00259A2D9AA6 +:1008E0002FEF80E792E0215080409040E1F700C078 +:1008F0000000269A2E9A2FEF80E792E02150804048 +:100900009040E1F700C00000279A2F9A2FEF80E770 +:1009100092E0215080409040E1F700C0000025980F +:100920002D982FEF80E792E0215080409040E1F732 +:1009300000C0000026982E982FEF80E792E021500B +:1009400080409040E1F700C0000027982F9856980B +:100950005E9825982D9826982E9827982F98089578 +:1009600089EA8093800089E08093810024982C9804 +:100970003F988AB18F748AB96E98479A8BB1806B11 +:100980008BB9769A0E9458040C94250580E28093D6 +:1009900001018091510181110EC00E94C00281E0CD +:1009A000809351012FEF83ED90E3215080409040E0 +:1009B000E1F700C0000080E40E94C60280930101BC +:1009C00081112EC00E94F00280930101811128C084 +:1009D0000E94F00280930101811122C08FE30E94E6 +:1009E000F0028093010181111BC00E94E80280E4A3 +:1009F0000E94C60280930101811112C08CE00E9406 +:100A0000F0028093010181110BC00E94F0028093DB +:100A10000101811105C08FE30E94F0028093010162 +:100A20000E94E80280910101089561110BC0FC0150 +:100A30008281882321F085EE0E94061103C085EE95 +:100A40000E94CE1180E090E0089508956091BD016C +:100A50007091BE018091BF019091C0010E94031B63 +:100A600056985E9825982D9826982E9827982F9816 +:100A7000813019F0823021F00895259A2D9A089539 +:100A8000269A2E9A089581E0089581E008950C94A5 +:100A9000450508950F931F93CF93DF938C01FC01BD +:100AA000C081D181CE010E947C19BE010E94F30554 +:100AB000EC01B8010E944705882309F48DC0F801B4 +:100AC0008281882309F44AC080915D0181111FC091 +:100AD000C431F0E5DF0709F051C00E94490581E00B +:100AE00080935D010E949B1B90935C0180935B014E +:100AF0001092540110925601109255011092580113 +:100B00001092570110925A011092590165C08091BC +:100B10005B0190915C010E94A71B883C910570F4D9 +:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB +:100B3000D183C0838F5F809354014EC0C43880E559 +:100B4000D80721F0C538D04501F13AC0F8018281BB +:100B5000882341F01092520182E01EC0C438E0E5C3 +:100B6000DE0759F580915201811106C086E20E948C +:100B7000061186E20E94CE1182E01CC0C438F0E566 +:100B8000DF0741F3C538D045D9F4F80182818823C5 +:100B900031F01092530180E20E941D121DC080911D +:100BA0005301811106C087E20E94061187E20E946C +:100BB000CE1180E20E9424120FC0C538D04529F31F +:100BC00081E08093520180935301C801DF91CF915E +:100BD0001F910F910C94430580E0DF91CF911F91FD +:100BE0000F910895089596E0799FF001112494E5FE +:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F +:100C0000E25FFE4F859194910895880F991FFC0132 +:100C1000E657F040859194910895880F991FFC0143 +:100C2000E65FFE4F8591949108950F931F93CF93A4 +:100C3000DF93EC01811520E3920750F5C11580E2A6 +:100C4000D80708F0C3C0CB3BD10590F4C83AD10512 +:100C500008F06AC0C53AD10508F05BC0C430D105C0 +:100C600008F0D0C1219709F0CAC101E010E00AC222 +:100C7000CF3FD10511F008F0C5C1C03FD10508F044 +:100C8000A2C0CE01805E9109089708F4BBC1B7C12C +:100C9000C13090E5D90709F4A2C020F5C0318FE436 +:100CA000D80770F4C11590E4D90708F094C0C115B5 +:100CB00021E3D20708F0A3C1DD278E01106CE2C149 +:100CC000C115D04509F09BC10E9483148FEF94E3B6 +:100CD0002CE0815090402040E1F700C000000E94CD +:100CE000F61BD0C1C11597E5D90758F4C03121E5ED +:100CF000D20708F01CC1C43180E5D80708F475C0DC +:100D00007EC1CE0190578115904108F078C1DF7007 +:100D100073C1C53AD10509F477C1C63AD10509F0C6 +:100D200076C102E810E4AEC1C83AD10509F472C137 +:100D3000C93AD10509F471C1CA3AD10509F470C1A3 +:100D4000CB3AD10509F46FC1CC3AD10509F46EC193 +:100D5000CD3AD10509F46DC1C03BD10509F46CC190 +:100D6000CE3AD10509F46BC1CF3AD10509F46AC175 +:100D7000C13BD10509F469C1C23BD10509F468C181 +:100D8000C33BD10509F467C1C43BD10509F466C171 +:100D9000C53BD10509F465C1C63BD10509F464C161 +:100DA000C73BD10509F463C1C83BD10509F462C151 +:100DB000C93BD10509F461C1CA3BD10509F460C141 +:100DC00000E014E45FC18E0110655CC1CE019F702C +:100DD0000E940D0658C1DF708E01106A53C18091C8 +:100DE000DA0181608093DA014DC10E949B1D81115F +:100DF00002C00E94811D0E94B81D90E09093FB01EB +:100E00008093FA01C23080E5D80721F48091FA017D +:100E1000816086C0C43090E5D90721F48091FA0141 +:100E200082607EC0C63020E5D20721F48091FA01AD +:100E3000846076C0C83080E5D80719F48091FA0143 +:100E400027C0CA3090E5D90721F48091FA0180616A +:100E500067C0CC3020E5D20721F48091FA0180628E +:100E60005FC0CE3080E5D80721F48091FA0180641C +:100E700057C0C03190E5D90721F48091FA0180680C +:100E80004FC0C23120E5D20729F48091FA01846075 +:100E9000886046C0C33080E5D80721F48091FA010C +:100EA0008E7F3EC0C53090E5D90721F48091FA01CC +:100EB0008D7F36C0C73020E5D20721F48091FA013A +:100EC0008B7F2EC0C93080E5D80719F48091FA01D4 +:100ED00026C0CB3090E5D90721F48091FA018F7EAE +:100EE0001FC0CD3020E5D20721F48091FA018F7D1B +:100EF00017C0CF3080E5D80721F48091FA018F7BAD +:100F00000FC0C13190E5D90721F48091FA018F77A4 +:100F100007C0C331D04531F48091FA018B7F877FC0 +:100F20008093FA018091FA010E94BC1DABC08D2F05 +:100F300099278F70992781309105D9F49E012370EC +:100F4000332702C0880F991F2A95E2F79C688E010B +:100F500044E0000F111F4A95E1F700271370802B22 +:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA +:100F70002FC08230910531F4DC2FCC278E01016F18 +:100F8000106A80C08330910569F4CE01837099277F +:100F900001E010E002C0000F111F8A95E2F7C801BE +:100FA0009C680FC084309105B9F4CE0183709927F5 +:100FB00001E010E002C0000F111F8A95E2F7C8019E +:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029 +:100FD0008C010C2B1D2B56C08530910531F4DC2F74 +:100FE000CC278E01046F106A4DC0069709F04AC0E5 +:100FF000CF71DD27DC2FCC278E01106243C000E0CB +:1010000010E040C08E013EC001E810E43BC003E8A0 +:1010100010E438C002EE14E435C009EE14E432C026 +:101020000AEE14E42FC005EB14E42CC006EB14E424 +:1010300029C007EB14E426C00CEC14E423C00DEC2B +:1010400014E420C003E815E41DC00AE815E41AC042 +:1010500002E915E417C004E915E414C001E216E43E +:1010600011C003E216E40EC004E216E40BC005E270 +:1010700016E408C006E216E405C007E216E402C062 +:101080000AE216E4C801DF91CF911F910F910895F4 +:1010900096E0799FF001112494E5899FE00DF11D00 +:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149 +:1010B0009491803E9105E0F4803C910558F5813390 +:1010C000910509F46FC048F48932910509F463C0B1 +:1010D0008A32910509F46DC072C089339105E9F037 +:1010E00082389105D1F08533910509F44DC067C070 +:1010F000833E910581F138F4803E9105B9F0823E3E +:101100009105D9F05CC0863E910561F1873E91055D +:10111000A1F155C00E94050608952091FA0120FD15 +:1011200002C021FF4CC080EE90E049C08091FA01DE +:1011300080FFF9CF89E390E042C08091FA0182FFFD +:101140000EC08091FA0184FF03C080E090E037C0B8 +:1011500083EE90E034C08091FA0182FFF2CF82EEFC +:1011600090E02DC08091FA0183FF0BC08091FA01BD +:1011700084FDEBCF87EE90E022C08091FA0183FFDF +:10118000F5CF86EE90E01BC08091FA0185FF07C085 +:1011900089E290E014C08091FA0185FFF9CF85E3E0 +:1011A00090E00DC08091FA0186FF07C08AE290E0CE +:1011B00006C08091FA0186FFF9CF81E390E00E949A +:1011C0001506089508950C94E20880916E01089523 +:1011D000CF93DF9300D01F92CDB7DEB79C018091F3 +:1011E000F101843019F593E099833B832A8390932E +:1011F000E9008FEF9091E800815095FD06C095EDD4 +:101200009A95F1F700008111F5CF8091E80085FFF4 +:101210000DC040E050E063E070E0CE0101960E9416 +:10122000520B8091E8008E778093E8000F900F902A +:101230000F90DF91CF910895CF93DF9300D01F924D +:10124000CDB7DEB72091F101243021F522E02983CA +:101250009B838A8383E08093E9008FEF9091E8007D +:10126000815095FD06C095ED9A95F1F7000081112A +:10127000F5CF8091E80085FF0DC040E050E063E0CD +:1012800070E0CE0101960E94520B8091E8008E77AB +:101290008093E8000F900F900F90DF91CF91089509 +:1012A0002091F1012430F1F422E02093E9002FEFA6 +:1012B0003091E800215035FD06C035ED3A95F1F743 +:1012C00000002111F5CF2091E80025FF0BC040E080 +:1012D00050E065E070E00E94520B8091E8008E774C +:1012E0008093E8000895CF93DF93EC019091F10192 +:1012F000943009F046C080910C018823D9F0809188 +:101300000D018823B9F09093E9008FEF9091E800E8 +:10131000815095FD06C095E19A95F1F70000811185 +:10132000F5CF8091E80085FF2CC040E050E060E1FF +:1013300070E017C081E08093E9008FEF9091E800A2 +:10134000815095FD06C095ED9A95F1F70000811149 +:10135000F5CF8091E80085FF14C040E050E068E0E0 +:1013600070E0CE010E94520B8091E8008E7780934E +:10137000E80080E1FE01AEE5B1E001900D928A95B2 +:10138000E1F7DF91CF9108958091F001811109C0BB +:101390000E94E70C0E94440D8091E20084608093DB +:1013A000E20008951092F001089508950C942B2204 +:1013B0000E948C1B0E9431220E94EA0F0C94E308C9 +:1013C00042E061EC81E00E94610C42E061EC82E06D +:1013D0000E94610C42E061EC83E00E94610C42E1FA +:1013E00061EC84E00C94610C8091F301833009F48A +:1013F00055C030F4813071F0823009F48EC0089508 +:101400008A3009F47AC08B3009F460C0893009F061 +:101410009CC020C08091F201813A09F096C0809171 +:10142000E800877F8093E8008091F6019091F701B2 +:10143000892B21F460E18EE591E003C060E080E05B +:1014400090E070E00E949D0B8091E8008B77809384 +:10145000E80008958091F201813209F076C0809110 +:10146000F6019091F701009719F0039709F06DC00C +:101470008091E800877F8093E8008091E80082FDFA +:1014800005C08091F1018111F8CF5FC08091F1001A +:1014900080936E018091E8008B7753C08091F201B8 +:1014A000813A09F052C08091F6019091F701892BA1 +:1014B00009F04BC08091E800877F8093E80080911D +:1014C000E80080FFFCCF80910C0136C08091F201D2 +:1014D0008132D9F58091F6019091F701892BA9F518 +:1014E0008091E800877F8093E8000E94960C8091AD +:1014F000F40180930C010C9483148091F2018132E9 +:1015000021F58091E800877F8093E8000E94960C87 +:101510008091F50180936F0108958091F201813AE5 +:10152000A1F48091E800877F8093E8008091E80033 +:1015300080FFFCCF80916F018093F1008091E800E3 +:101540008E778093E8000C94960C089584B7877F7B +:1015500084BF88E10FB6F894809360001092600019 +:101560000FBE90E080E80FB6F894809361009093EE +:1015700061000FBE0E9439100E94E70C0E94440DCA +:101580008091E20084608093E20078940E94CA0F08 +:101590000E943B1082E091E00E94E50F0E94192218 +:1015A0008091F101853069F40E94531B8091EF0115 +:1015B0008823B1F30E947E1B882391F30E943C0B89 +:1015C000EFCF0E944110ECCF292F33272330310574 +:1015D000C9F064F42130310581F02230310509F081 +:1015E00043C08DE690E02AE333E042C0213231056A +:1015F000F1F02232310541F137C082E190E027EA73 +:1016000033E036C099278130910541F08230910551 +:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4 +:1016200002C0E6E0F3E0849190E09F0121C06430C5 +:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5 +:10164000318189E090E014C0643070F470E0FB01F7 +:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47 +:10166000FE4F808190E004C080E090E020E030E018 +:10167000FA0131832083089580E189BD82E189BD2B +:1016800009B400FEFDCF8091D8008F7D8093D800F3 +:101690008091E00082608093E0008091E00081FD15 +:1016A000FCCF0895CF92DF92EF92FF920F931F939A +:1016B000CF93DF93EC018B016A010E94B50C81117D +:1016C00033C0C114D10439F0F60180819181081B27 +:1016D000190BC80FD91FE12CF12C0115110519F1B7 +:1016E0008091E80085FD16C08091E8008E77809398 +:1016F000E800C114D10449F0F60180819181E80E1F +:10170000F91EF182E08285E00FC00E94B50C8823AB +:1017100021F30AC089918093F10001501109FFEF74 +:10172000EF1AFF0ADACF80E0DF91CF911F910F917E +:10173000FF90EF90DF90CF9008952091F8013091C5 +:10174000F9012617370748F06115710539F4209122 +:10175000E8002E772093E80001C0B90140E0611550 +:101760007105A9F12091F101222309F443C025302C +:1017700009F442C02091E80023FD40C02091E80018 +:1017800022FD32C02091E80020FFE9CF4091F30014 +:101790002091F20030E0342BFC01CF01611571057E +:1017A00059F02830310540F481918093F100615067 +:1017B00071092F5F3F4FF1CF41E02830310509F02B +:1017C00040E02091E8002E772093E800C8CF411137 +:1017D000C9CF0AC08091F101882361F0853061F0A2 +:1017E0008091E80083FD0AC08091E80082FFF2CF7B +:1017F00080E0089582E0089583E0089581E00895EF +:101800002091F8013091F9012617370748F061154A +:10181000710539F42091E8002E772093E80001C08B +:10182000B901FC0120E06115710591F18091F10190 +:10183000882309F440C0853009F43FC08091E80056 +:1018400083FD3DC08091E80082FD2FC08091E800BB +:1018500080FFE9CF2091F3008091F20090E0922B7D +:101860006115710559F08830910540F42491209359 +:10187000F1003196615071090196F2CF21E008978D +:1018800009F020E08091E8008E778093E800CBCFCC +:101890002111CCCF0AC08091F101882361F08530FD +:1018A00061F08091E80083FD0AC08091E80082FF2A +:1018B000F2CF80E0089582E0089583E0089581E00A +:1018C0000895982F973058F59093E900981739F0BC +:1018D0007091EC002091ED005091F00003C0242F96 +:1018E000762F50E021FF19C03091EB003E7F3093FE +:1018F000EB003091ED003D7F3093ED003091EB0037 +:1019000031603093EB007093EC002093ED00509326 +:10191000F0002091EE0027FF07C09F5FD3CF8F70AC +:101920008093E90081E0089580E008958091F201BC +:1019300087FF11C08091E80082FD05C08091F10110 +:101940008111F8CF11C08091E8008B770BC0809196 +:10195000F101882349F08091E80080FFF8CF809161 +:10196000E8008E778093E80008952091E40030919C +:10197000E50095E64091EC00842F817040FF22C085 +:101980008091E80080FD1CC08091F101882391F0D6 +:10199000853091F08091EB0085FD10C04091E4000E +:1019A0005091E5004217530729F39A01915011F71E +:1019B00084E0089582E0089583E0089581E0089529 +:1019C00080E008954091E80042FFDECF08950E9434 +:1019D000550D0E945D0DE0EEF0E080818160808316 +:1019E000E8EDF0E080818F77808319BCA7EDB0E04F +:1019F0008C918E7F8C9380818F7E80831092F001FA +:101A000008950F931F93CF93DF930E94550D0E946B +:101A10005D0DC8EDD0E088818F77888388818068EC +:101A2000888388818F7D888319BC1092F101109280 +:101A3000ED011092EF011092EE0100EE10E0F801BE +:101A400080818B7F808388818160888342E060E031 +:101A500080E00E94610CE1EEF0E080818E7F808367 +:101A6000E2EEF0E080818160808380818860808305 +:101A7000F80180818E7F8083888180618883DF91F7 +:101A8000CF911F910F910895E8EDF0E080818F7E56 +:101A90008083E7EDF0E080818160808384E082BF15 +:101AA00081E08093F0010C94010DE8EDF0E080817D +:101AB0008E7F80831092E20008951092DA001092D7 +:101AC000E10008951F920F920FB60F9211242F93E9 +:101AD0003F934F935F936F937F938F939F93AF93B6 +:101AE000BF93EF93FF938091E10082FF0BC0809141 +:101AF000E20082FF07C08091E1008B7F8093E100CC +:101B00000E94C90F8091DA0080FF1FC08091D80029 +:101B100080FF1BC08091DA008E7F8093DA00809175 +:101B2000D90080FF0DC080E189BD82E189BD09B483 +:101B300000FEFDCF81E08093F1010E94C40905C041 +:101B400019BC1092F1010E94D2098091E10080FF3E +:101B500019C08091E20080FF15C08091E2008E7F65 +:101B60008093E2008091E20080618093E2008091A6 +:101B7000D80080628093D80019BC85E08093F10181 +:101B80000E94D6098091E10084FF30C08091E2007C +:101B900084FF2CC080E189BD82E189BD09B400FECB +:101BA000FDCF8091D8008F7D8093D8008091E10097 +:101BB0008F7E8093E1008091E2008F7E8093E2002F +:101BC0008091E20081608093E2008091ED018823A2 +:101BD00011F084E007C08091E30087FD02C081E03E +:101BE00001C083E08093F1010E94D8098091E10057 +:101BF00083FF29C08091E20083FF25C08091E1002E +:101C0000877F8093E10082E08093F1011092ED01E3 +:101C10008091E1008E7F8093E1008091E2008E7FD1 +:101C20008093E2008091E20080618093E20042E0D4 +:101C300060E080E00E94610C8091F00088608093F9 +:101C4000F0000E94D509FF91EF91BF91AF919F9154 +:101C50008F917F916F915F914F913F912F910F9055 +:101C60000FBE0F901F9018951F920F920FB60F92F4 +:101C700011242F933F934F935F936F937F938F9391 +:101C80009F93AF93BF93CF93DF93EF93FF93C09155 +:101C9000E900CF708091EC00D82FD17080FDD0E8A2 +:101CA0001092E9008091F000877F8093F000789493 +:101CB0000E94780E1092E9008091F0008860809375 +:101CC000F000CD2BCF70C093E900FF91EF91DF9131 +:101CD000CF91BF91AF919F918F917F916F915F91C4 +:101CE0004F913F912F910F900FBE0F901F9018951D +:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3 +:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115 +:101D1000F10091938E13FBCF0E94F4098091E800AB +:101D200083FF1FC18091F2019091F301492F50E090 +:101D30004A30510508F015C1FA01EA5AFF4F0C94D8 +:101D4000B323803881F0823809F00BC18091F6010D +:101D50008F708093E9008091EB0085FB882780F9E4 +:101D60001092E90006C08091EE019091EF0191116F +:101D700082609091E800977F9093E8008093F10053 +:101D80001092F100C8C0282F2D7F09F0EAC08823E7 +:101D900019F0823061F0E5C08091F401813009F0E2 +:101DA000E0C0933009F080E08093EF012BC0809178 +:101DB000F401811127C08091F6018F7009F4D1C020 +:101DC0008093E9002091EB0020FF1CC0933021F4A8 +:101DD0008091EB00806214C09091EB009061909331 +:101DE000EB0021E030E0A90102C0440F551F8A95A5 +:101DF000E2F74093EA001092EA008091EB008860DD +:101E00008093EB001092E9008091E800877F86C004 +:101E10008111A7C01091F4011F778091E3008078B1 +:101E2000812B8093E3008091E800877F8093E80016 +:101E30000E94960C8091E80080FFFCCF8091E30027 +:101E400080688093E300111102C082E001C083E04A +:101E50008093F10186C08058823008F082C0809162 +:101E6000F4019091F5018C3D53E0950779F583E0FD +:101E70008A838AE289834FB7F894DE01139620E0C3 +:101E80003EE051E2E32FF0E050935700E49120FF51 +:101E900003C0E295EF703F5FEF708E2F90E0EA3065 +:101EA00010F0C79601C0C0968D939D932F5F24318B +:101EB00049F74FBF8091E800877F8093E8006AE28E +:101EC00070E0CE0101960E949D0B14C0AE014F5FE1 +:101ED0005F4F6091F6010E94E40ABC01009709F48B +:101EE00040C09091E800977F9093E80089819A81A3 +:101EF0000E94000C8091E8008B778093E80031C04D +:101F0000803879F58091E800877F8093E8008091A0 +:101F1000ED018093F1008091E8008E778093E800D6 +:101F20000E94960C1EC081111CC09091F401923049 +:101F3000C0F48091E800877F8093E8009093ED01E2 +:101F40000E94960C8091ED01811106C08091E30002 +:101F500087FD02C081E001C084E08093F1010E940E +:101F6000E0098091E80083FF0AC08091E800877F44 +:101F70008093E8008091EB0080628093EB00AA964A +:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A +:101F900008950895CF938091F1018823A1F0C09115 +:101FA000E900CF709091EC00892F817090FD80E85E +:101FB000C82B1092E9008091E80083FD0E94780E02 +:101FC000CF70C093E900CF910895909375018093ED +:101FD00074010895E0917401F0917501309721F03A +:101FE0000190F081E02D099480E00895E091740162 +:101FF000F0917501309721F00280F381E02D099472 +:102000000895E0917401F0917501309721F00480FA +:10201000F581E02D099408952091720130917301AA +:102020008217930771F09093730180937201E0918E +:102030007401F0917501309721F00680F781E02D51 +:1020400009940895209170013091710182179307CE +:1020500071F09093710180937001E0917401F0919F +:102060007501309721F00084F185E02D09940895E1 +:1020700008950C9438100E94921B0E9433030C9414 +:10208000541C9F92AF92BF92CF92DF92EF92FF9239 +:102090000F931F93CF93DF9300D000D000D0CDB724 +:1020A000DEB70E944B030DE010E0AA24A394B12CEC +:1020B000902E802F0E943904980129583E4F6901C3 +:1020C000F901F080F826A1F40150110988F78FEF8B +:1020D00089838A831B820E949B1B8160782F9D834A +:1020E0008C8349815A816B818D810E94D8102FC0C9 +:1020F0009091DA0191FF04C08E830E943F048E818B +:1021000025E030E0A501022E01C0440F0A94EAF751 +:10211000E42E4F21C1F029839A828E2191E009F4A7 +:1021200090E09B830E949B1B8160782F9D838C8312 +:1021300049815A816B818D810E94D810F60180817E +:10214000E826E08204C021503109E0F6BDCF0E94AC +:102150003B1F109176010E94EA0F1817B9F00E94F8 +:10216000EA0F8093760126960FB6F894DEBF0FBE75 +:10217000CDBFDF91CF911F910F91FF90EF90DF9036 +:10218000CF90BF90AF909F900C94E30826960FB627 +:10219000F894DEBF0FBECDBFDF91CF911F910F919D +:1021A000FF90EF90DF90CF90BF90AF909F900895F9 +:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82 +:1021C0000FBECDBF4F83588769877A878B87DE0123 +:1021D000119686E0FD0111928A95E9F785E0FE01EE +:1021E000379601900D928A95E1F749815A816B816A +:1021F0007C818D819E810E9421172B960FB6F894C9 +:10220000DEBF0FBECDBFDF91CF910895CF9388235E +:1022100009F4C2C0C82F823859F40E94EA0F81FD28 +:10222000BBC089E30E94FB190E94C81A89E30CC055 +:10223000833879F40E94EA0F80FDAEC083E50E94E6 +:10224000FB190E94C81A83E50E943D1ACF910C9495 +:10225000C81A843859F40E94EA0F82FD9DC087E4B1 +:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6 +:10227000813A48F48C2F0E947E2181118DC08C2FD1 +:102280000E94FB19E3CF80E28C0F883048F4C770BE +:1022900081E001C0880FCA95EAF70E94811AD6CF63 +:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB +:1022B00083E890E005C081E890E002C082E890E009 +:1022C000CF910C940C1088E58C0F833108F064C01A +:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118 +:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186 +:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106 +:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173 +:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB +:1023200038C082EE90E035C089EE90E032C08AEE8F +:1023300090E02FC085EB90E02CC086EB90E029C0A8 +:1023400087EB90E026C08CEC90E023C08DEC90E011 +:1023500020C083E891E01DC08AE891E01AC082E9BC +:1023600091E017C084E991E014C081E292E011C0CD +:1023700083E292E00EC084E292E00BC085E292E03C +:1023800008C086E292E005C087E292E002C08AE2DD +:1023900092E0CF910C942210CF910895882309F4F4 +:1023A0004BC0823859F40E94EA0F81FF45C089E38F +:1023B0000E94FB190E94C81A89E30CC0833871F48B +:1023C0000E94EA0F80FF38C083E50E94FB190E943B +:1023D000C81A83E50E943D1A0C94C81A843859F42F +:1023E0000E94EA0F82FF28C087E40E94FB190E9426 +:1023F000C81A87E4EFCF9CEF980F913A58F390E218 +:10240000980F983050F4877091E001C0990F8A9529 +:10241000EAF7892F0E94871ADFCF9BE5980F933048 +:1024200020F480E090E00C940C10885A833120F462 +:1024300080E090E00C9422100895882321F00E94FF +:10244000811A0C94C81A0895882321F00E94871AD3 +:102450000C94C81A08957F928F929F92AF92BF9268 +:10246000CF92DF92EF92FF920F931F93CF93DF9360 +:102470001F92CDB7DEB77C01C62E772EFC010581F9 +:1024800002950F70128111110E949E1A0E94F41978 +:10249000882379F0112369F080E28C0D883048F0B0 +:1024A00082E00E94DD190E94F41991E0D82ED9260D +:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C +:1024C0000C94B323872D807F072D0F70882311F084 +:1024D0000295007F112389F0002309F490C180E266 +:1024E0008C0D883020F4802F0E94811A03C0802F29 +:1024F0000E94911A0E94C81A82C18C2D0E94CE118E +:10250000002309F495C180E28C0D883020F4802FDF +:102510000E94871A03C0802F0E94971A0E94C81A2F +:1025200087C1972D907F872D8F70903211F0829503 +:10253000807FCC2021F0F1E0CF16B1F01EC0112336 +:1025400049F0002309F414C1013009F011C10E94BF +:10255000B11A6EC1002319F0013009F469C18983F1 +:102560000E94B41A89810AC1112321F0023008F0B7 +:102570005FC1FEC001115CC101C1112321F0002324 +:1025800009F4F6C03CC1002309F4F8C03EC1872D10 +:1025900086958695837090E0009719F0019761F019 +:1025A00047C1112321F08C2D972D937002C080E03C +:1025B00090E00E940C103CC1112321F08C2D972D2E +:1025C000937002C080E090E00E94221031C18C2DF7 +:1025D000112319F00E94431E02C00E94AB1E0E94EC +:1025E000301F26C1872D837009F052C0111120C100 +:1025F0008C2D829586958770880F880F9C2D9F70F3 +:10260000892E912CA12CB12C082E04C0880C991C69 +:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041 +:1026200020E030E0B901A80104C0440F551F661F27 +:10263000771F8A95D2F7CB01BA0160957095809586 +:10264000909503C060E070E0CB01272D269526957C +:10265000237030E02230310569F02330310589F0F4 +:10266000682979298A299B292130310571F00E9436 +:102670006918DEC0682979298A299B290E94851852 +:10268000D7C00E946918C501B4010E944D18D0C07E +:10269000112319F0872D817001C08695882309F4D4 +:1026A000C7C08C2D829586958770880F880F9C2DCA +:1026B0009F70892E912CA12CB12C082E04C0880C5F +:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC +:1026D00010E020E030E0B901A80104C0440F551F0C +:1026E000661F771F8A95D2F7CB01BA016095709566 +:1026F0008095909503C060E070E0CB01272D269572 +:1027000026952370422F50E04230510569F0433046 +:10271000510589F0682979298A299B294130510579 +:1027200071F00E94431984C0682979298A299B295C +:102730000E945F197DC00E944319C501B4010E9427 +:10274000271976C08C2D90E0FC01E05EF109E5319F +:10275000F10508F050C0E059FF4F0C94B3230C2D45 +:102760000F70872D8F71112331F00E94C018802FB8 +:102770000E941D125DC00E94E118802F0E94241249 +:1027800057C0112339F0011153C0872D8F710E945A +:1027900006194EC0023008F04BC0F7CF112339F0B4 +:1027A000872D8F710E94C01843C01123C9F3872D54 +:1027B0008F710E94E1183CC0112329F0872D8F7181 +:1027C0000E94AB1835C00E94A11832C0112351F0ED +:1027D000172D1F71812F0E94C01863E0812F0E9466 +:1027E000D41926C081E00E94DD19023008F182E090 +:1027F0000E94DD191DC0112331F0002389F28C2DB8 +:102800000E94061115C0002391F28C2D0E94CE115A +:102810000FC0472D4F706C2DC7010E9415050E94F7 +:10282000C51706C0472D4F706C2DC7010E94F205D9 +:10283000DD20F9F00E94D01980FD1BC0F701128243 +:102840000E94CA190E94C018C7010E9448140E9421 +:10285000CA190F90DF91CF911F910F91FF90EF90C8 +:10286000DF90CF90BF90AF909F908F907F900C940F +:10287000E1180F90DF91CF911F910F91FF90EF9092 +:10288000DF90CF90BF90AF909F908F907F900895F2 +:102890000F931F93CF93DF93EC01888199812B8154 +:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B +:1028B0000E944A05882371F0688179818A810E948B +:1028C000C6198C010E947B190E944218B801CE01E2 +:1028D0000E942B12DF91CF911F910F9108950E94BA +:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471 +:1028F000E11F0E94301F80E090E00E940C1080E0F9 +:1029000090E00C9422100E948E1A0C946F140E9476 +:10291000BB19292F22952F7030E02C3031054CF453 +:102920002A3031056CF42250310922303105A8F4E7 +:1029300007C02C30310569F02F30310551F00DC042 +:10294000803F69F018F4803E40F409C0843F29F4C8 +:1029500006C093FB882780F9089580E0089581E000 +:102960000895CF93DF9300D000D01F92CDB7DEB78C +:102970000F900F900F900F900F90DF91CF910895CF +:10298000CF93DF9300D000D000D0CDB7DEB726962E +:102990000FB6F894DEBF0FBECDBFDF91CF91089583 +:1029A0001F93CF93DF93C091850116E0809186013C +:1029B000C81799F0D0E01C9FF0011D9FF00D112465 +:1029C000E957FE4F408151816281738184819581F5 +:1029D0000E94C0142196C770E9CFDF91CF911F915B +:1029E00008954091B7015091B8016091B90170917B +:1029F000BA018091BB019091BC010C94C0148091EC +:102A0000BC0182958F7009F054C08091B901882370 +:102A100009F44FC080918501A09186016091B701B2 +:102A20007091B8014091BA015091BB01B6E08A178C +:102A300009F43FC090E041155105C1F17F3F11F409 +:102A40006F3FA1F1B89FF001B99FF00D1124E95734 +:102A5000FE4F218172132AC02081621327C0228178 +:102A6000211124C0238134812417350710F421500B +:102A70003109241B350B283C3105C0F42091BC01E1 +:102A80002F7020612093BC0126E0289FF001299F30 +:102A9000F00D1124E457FE4F80818F708061808398 +:102AA00087EB91E00E9448140C94D0140196877033 +:102AB000BECF0895CF92DF92EF92FF920F931F93B4 +:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32 +:102AD0000FBECDBF8C0185E0F801DE011D9601908F +:102AE0000D928A95E1F7D8014C9111965C9111975E +:102AF00012966C9112971396CD90DC9014973091AA +:102B0000B7017091B8018091BA019091BB01009713 +:102B100009F46BC17F3F19F43F3F09F466C1E090AF +:102B2000B901EE2009F4C0C02091BC01C816D90635 +:102B300028F0F601E81BF90BCF0104C080959095B1 +:102B40008C0D9D1DFF24F394883C910578F0F12CA9 +:102B5000207F09F0C6C07C2DD98AC88A89890E9445 +:102B6000B11487EB91E00E944814B1C0822F807F9E +:102B700009F046C0751314C0341312C0611110C09F +:102B80002F7020612093BC010E94F11487EB91E02B +:102B90000E9448148091BC01D80115968C932EC0D8 +:102BA000CD2819F15F3F11F44F3FF9F0F62E611176 +:102BB0001CC0809185012091860136E0821709F4BE +:102BC0005AC090E0389FF001399FF00D1124E95769 +:102BD000FE4F7181571306C07081471303C0728185 +:102BE000711103C001968770E9CFF62E662309F4B0 +:102BF00018C18091BC0181608093BC01F12C11C18E +:102C0000751308C0341306C0611104C08091BC0163 +:102C1000D801C3C04D875E878D859E856A8B0E94D3 +:102C200087146A898823E1F16623D1F12091BC01E0 +:102C3000822F82958F7090E0029774F08091B70197 +:102C40009091B80198878F831986DB86CA862C8776 +:102C5000CE0107960E94481486E0F801A7EBB1E088 +:102C600001900D928A95E1F70E94FF140E94F114E1 +:102C7000FF24F394D6C04D875E878D859E850E9484 +:102C8000BB19292F22952F7030E0223031050CF02E +:102C9000BCC09F7009F0B6C0805E883008F4C1C027 +:102CA000C8010E944814E4CFC816D90608F453C0DE +:102CB000F601E81BF90BCF01883C910508F450C0E0 +:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E +:102CD000F1E086E0DF011D928A95E9F70E94F11488 +:102CE000A0C0751314C0341312C0611110C08091BC +:102CF000BC01F8018583C8010E94481486E0E7EB17 +:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C +:102D10005E878D859E856A8B0E9487146A898823C9 +:102D200009F4BECF662309F4BBCF2091BC01822FEA +:102D300082958F7090E002970CF48ECF8091B7014E +:102D40009091B8019A8389831B82DD82CC822E8385 +:102D5000CE0101967FCF809590958C0D9D1DACCFB7 +:102D6000F62E662309F49CCF75132EC034132CC0A5 +:102D70002091BC0120FD1FC0822F82958F70D9F059 +:102D8000D80115962C9315978F3049F08F5F982FA7 +:102D90009295907F822F8F70892B15968C93C80106 +:102DA0000E94481486E0F801A7EBB1E001900D9273 +:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7 +:102DC0000D928A95E1F72DC04D875E878D859E8592 +:102DD0000E948714811140CF8091BC018160809353 +:102DE000BC01C8010E9448141CC0662309F458CFD6 +:102DF0004D875E878D859E850E948714882309F400 +:102E00004FCF2ACF811148CF0CC0243031050CF0B0 +:102E100047CF9F7009F440CFF8019581907F09F06A +:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D +:102E3000DF91CF911F910F91FF90EF90DF90CF9096 +:102E400008951F93CF93DF93CDB7DEB72C970FB6BE +:102E5000F894DEBF0FBECDBF4F83588769877A874E +:102E60008B879C87CE0107960E945A15882369F0AC +:102E70008F8198852A853B85232BF1F19F3F09F0AF +:102E800063C08F3F09F060C037C086E0FE0137960F +:102E9000DE01119601900D928A95E1F76F81788598 +:102EA000EA85FB85309741F17F3F11F46F3F21F1B7 +:102EB0002091860130E0C9010196877099274091E1 +:102EC000850150E08417950709F447C069837A8328 +:102ED000FD83EC8396E0929FD001939FB00D112467 +:102EE000A957BE4FFE01319601900D929A95E1F7D8 +:102EF000809386010E94D01416E080918501909104 +:102F000086018917C1F1189FC001112489579E4F6E +:102F10000E945A15882379F1E09185011E9FF001E6 +:102F20001124E957FE4F4081518162817381848170 +:102F300095810E94C0148091850190E00196877070 +:102F4000992780938501D9CF4F81588569857A85E6 +:102F50008B859C850E94C014CFCF0E948314109251 +:102F6000860110928501E7EBF1E086E0DF011D921A +:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45 +:102F8000CDBFDF91CF911F910895EF92FF920F93E4 +:102F90001F93CF93DF938C01009709F46CC0F12C41 +:102FA000EE24E394E8012196F8018491843740F4FB +:102FB000843008F051C0813081F0823019F15BC05B +:102FC000853709F444C0A8F19CE7980F903708F0C2 +:102FD00052C08F770E94CE1141C00E5F1F4FFE017D +:102FE000C49180E28C0F883048F4C7708E2D01C0E8 +:102FF000880FCA95EAF70E94A11A14C08C2F0E946C +:1030000006112DC00E5F1F4FFE01C49180E28C0F90 +:10301000883058F4C7708E2D01C0880FCA95EAF722 +:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3 +:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3 +:103040009FE00197F1F700C00000C150F6CF0E5F7E +:103050001F4FFE01F49003C00E9406118E018F2DB8 +:10306000882309F49FCFEFE9FFE03197F1F700C023 +:1030700000008150F5CFDF91CF911F910F91FF900C +:10308000EF90089508956093C1017093C2018093F9 +:10309000C3019093C4010C946F140F931F9300917C +:1030A000C1011091C2012091C3013091C401DC0122 +:1030B000CB01802B912BA22BB32B8093C10190933A +:1030C000C201A093C301B093C4011F910F910C944E +:1030D0006F140F931F930091C1011091C2012091B1 +:1030E000C3013091C401DC01CB0180239123A223D1 +:1030F000B3238093C1019093C201A093C301B09305 +:10310000C4011F910F910C946F140F931F930091A2 +:10311000C1011091C2012091C3013091C401DC01B1 +:10312000CB0180279127A227B3278093C1019093D9 +:10313000C201A093C301B093C4011F910F910C94DD +:103140006F141092BD011092BE011092BF01109237 +:10315000C0010C946F1441E050E060E070E004C0E6 +:10316000440F551F661F771F8A95D2F74093BD0104 +:103170005093BE016093BF017093C0010C946F1413 +:1031800041E050E060E070E004C0440F551F661F4E +:10319000771F8A95D2F78091BD019091BE01A091D1 +:1031A000BF01B091C001482B592B6A2B7B2B409358 +:1031B000BD015093BE016093BF017093C0010C9498 +:1031C0006F1441E050E060E070E004C0440F551F10 +:1031D000661F771F8A95D2F7409550956095709538 +:1031E0008091BD019091BE01A091BF01B091C0013D +:1031F000482359236A237B234093BD015093BE018A +:103200006093BF017093C0010C946F1441E050E0D3 +:1032100060E070E004C0440F551F661F771F8A9559 +:10322000D2F78091BD019091BE01A091BF01B091F4 +:10323000C001482759276A277B274093BD01509337 +:10324000BE016093BF017093C0010C946F140F9383 +:103250001F930091BD011091BE012091BF013091DB +:10326000C001DC01CB01802B912BA22BB32B8093CF +:10327000BD019093BE01A093BF01B093C0011F9107 +:103280000F910C946F140F931F930091BD01109137 +:10329000BE012091BF013091C001DC01CB01802330 +:1032A0009123A223B3238093BD019093BE01A093E9 +:1032B000BF01B093C0011F910F910C946F140F9335 +:1032C0001F930091BD011091BE012091BF0130916B +:1032D000C001DC01CB0180279127A227B32780936F +:1032E000BD019093BE01A093BF01B093C0011F9197 +:1032F0000F910C946F140895CF92DF92EF92FF928A +:103300000F931F93CF93DF938C01C090C101D09096 +:10331000C201E090C301F090C4018091BD01909181 +:10332000BE01A091BF01B091C001C82AD92AEA2AE2 +:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520 +:10334000A795979587950A94D2F780FF06C0B80194 +:103350008C2F0E944808019721F4219760F780E0A4 +:1033600001C08C2FDF91CF911F910F91FF90EF90B3 +:10337000DF90CF900895CF93DF93EC010E947C19EA +:10338000BE010E944808DF91CF910895CB010E94B1 +:10339000BB1908958091C5018595859585950895FA +:1033A0008091C5018770089598E0899F900111244C +:1033B000262B2093C5010C94C0182091C50180953F +:1033C00082238093C501982F977069F430E0482FCD +:1033D000552747FD50952417350729F08595859584 +:1033E00085950C94E11808959091C501977081E03E +:1033F00009F480E0089590910C01992321F09091B7 +:103400000D01911109C020910E0130910F01F901B8 +:1034100032969FEF40E01FC0982F9695969596950F +:103420009F3050F5E0910E01F0910F01E90FF11D71 +:10343000877021E030E0A90102C0440F551F8A9532 +:10344000E2F7CA019181892B818308959F3F39F06A +:103450004F5F4E3041F051915813F8CF0DC05111CC +:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08 +:1034700097FDFA9582830895089590910C01992300 +:1034800021F090910D01911109C020910E01309110 +:103490000F01F9013296205F3F4F1FC0982F96957C +:1034A000969596959F30F0F4E0910E01F0910F0102 +:1034B000E90FF11D877021E030E0A90102C0440F3F +:1034C000551F8A95E2F7CA018095918189238183EE +:1034D00008953196E217F30729F090819813F9CFF8 +:1034E0001082F7CF089581E090E0E0910E01F09115 +:1034F0000F01E80FF91F1082019680319105A9F79D +:1035000008959091D901892B8093D90108958095D0 +:103510009091D90189238093D90108951092D901FE +:1035200008959091D801892B8093D80108958095B2 +:103530009091D80189238093D80108951092D801E1 +:1035400008959091D701892B8093D7010895809594 +:103550009091D70189238093D70108951092D701C4 +:1035600008958093C60108951092C6010895809130 +:103570000E0190910F01FC0131969C01205F3F4F9D +:1035800080E0919191118F5FE217F307D1F70895D1 +:10359000E0910E01F0910F018091D9018083E091BB +:1035A0000E01F0910F0190818091D801892B8083C9 +:1035B000E0910E01F0910F0190818091D701892B4C +:1035C00080838091C601882361F0E0910E01F09123 +:1035D0000F019081892B80830E94B71A811110926C +:1035E000C60180910E0190910F010C94F60F20E01E +:1035F000009739F0AC0141505109842395232F5F86 +:10360000F7CF822F0895CF92DF92EF92FF926C0155 +:10361000EE24FF24C114D104E104F10421F0C70118 +:10362000B60120E101C020E0C72ED82EE92EFF24EC +:10363000C114D104E104F10419F0285FC701B601F7 +:103640006B017C0154E0F694E794D794C7945A95A3 +:10365000D1F7C114D104E104F10419F02C5FC701C2 +:10366000B6016B017C0142E0F694E794D794C794CD +:103670004A95D1F7C114D104E104F10419F02E5F89 +:10368000C701B601DC01CB01B695A7959795879543 +:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5 +:1036A000DF90CF9008958091F101843021F1109244 +:1036B000DB0120E488E190E00FB6F894A8958093B0 +:1036C00060000FBE2093600080E00E94E30883B793 +:1036D000817F846083BF83B7816083BF789488953E +:1036E00083B78E7F83BF88E10FB6F8948093600024 +:1036F000109260000FBE0895089508950E947C1BEB +:103700000E944B030E947D1B0E94400491E08111A6 +:1037100001C090E0892F08950E9483140E94EA0F4F +:103720000C94E30882E084BD93E095BD9AEF97BDC9 +:1037300080936E0008952FB7F8948091DC019091EA +:10374000DD01A091DE01B091DF012FBF0895CF927E +:10375000DF92EF92FF920F931F932FB7F89440914F +:10376000DC015091DD016091DE017091DF012FBF1E +:103770006A017B01EE24FF248C0120E030E0C016BA +:10378000D106E206F30610F4415051099A01281BB4 +:10379000390BC9011F910F91FF90EF90DF90CF90EF +:1037A00008951F920F920FB60F9211248F939F933B +:1037B000AF93BF938091DC019091DD01A091DE0178 +:1037C000B091DF010196A11DB11D8093DC019093A2 +:1037D000DD01A093DE01B093DF01BF91AF919F9116 +:1037E0008F910F900FBE0F901F9018950E94E70CBD +:1037F000F8942FEF87EA91E6215080409040E1F75E +:1038000000C0000087E090EBDC018093FB01909307 +:10381000FC01A093FD01B093FE019CE088E10FB68E +:10382000F894A895809360000FBE90936000FFCF3E +:10383000EF92FF920F931F93CF93DF93D82FCDE09A +:103840008C2F0E94390405E010E0E82EF12CC7010E +:10385000002E02C0959587950A94E2F780FF09C073 +:10386000602F7C2F80E00E94F305D81302C081E016 +:1038700006C00150110958F7C15010F780E0DF91E0 +:10388000CF911F910F91FF90EF900895CF93C82F84 +:103890008CE20E94181C882321F08C2FCF910C946D +:1038A000181C80E0CF910895CF930E949B1D811139 +:1038B00002C00E94811DC5E6C15049F00E944B0321 +:1038C0008FE39CE90197F1F700C00000F5CF89E292 +:1038D0000E94461C811113C18AE20E94461C81117C +:1038E0000E94811D85E00E94461C81110E94F61BEA +:1038F0000E94A61D8093DA0187E00E94461C88235F +:10390000A9F18BE10E94461C882351F08091DA01D5 +:1039100081FB222720F991E0922790FB81F90EC0CC +:103920008EE00E94461C882361F08091DA0182FBC0 +:10393000222720F991E0922790FB82F98093DA0107 +:1039400015C080E10E94461C9091DA01882341F065 +:1039500093FB222720F981E0822780FB93F904C0A2 +:10396000892F809580FB90F99093DA018091DA019C +:103970000E94AA1D0E94B81D8093FA0180EE0E9449 +:10398000461C882341F08091FA01982F909590FB76 +:1039900080F98093FA0189E30E94461C882359F03C +:1039A0008091FA0181FB222720F991E0922790FB78 +:1039B00081F98093FA0182EE0E94461C882359F017 +:1039C0008091FA0182FB222720F991E0922790FB57 +:1039D00082F98093FA0186EE0E94461C882359F0F2 +:1039E0008091FA0183FB222720F991E0922790FB36 +:1039F00083F98093FA0183EE0E94461C882359F0D4 +:103A00008091FA0184FB222720F991E0922790FB14 +:103A100084F98093FA0185E30E94461C882359F0BB +:103A20008091FA0185FB222720F991E0922790FBF3 +:103A300085F98093FA0181E30E94461C882359F09E +:103A40008091FA0186FB222720F991E0922790FBD2 +:103A500086F98093FA0181E10E94461C882359F07F +:103A60008091FA0187FB222720F991E0922790FBB1 +:103A700087F98093FA018091FA010E94BC1D809120 +:103A8000FA0187FB882780F980930D0187E20E9465 +:103A9000461CC82F8EE10E94461C8111C2608FE136 +:103AA0000E94461C8111C46080E20E94461C811164 +:103AB000C86081E20E94461C8111C06182E20E94BE +:103AC000461C8111C06283E20E94461C8111C064C1 +:103AD00084E20E94461C882311F0C06802C0CC23F7 +:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4 +:103AF000682F70E080E090E0CF910C944318CF9154 +:103B000008956DEE7EEF80E090E00E94ED2360E08E +:103B100082E090E00E94DB2360E083E090E00E947E +:103B2000DB2360E084E090E00E94DB2360E085E03E +:103B300090E00C94DB2380E090E00E94D52321E00C +:103B40008D3E9E4F09F020E0822F089582E090E0A4 +:103B50000C94CD23682F82E090E00C94DB2383E06B +:103B600090E00C94CD23682F83E090E00C94DB234D +:103B700084E090E00C94CD23682F84E090E00C94D6 +:103B8000DB238091E20180FF0BC06091130185E08F +:103B9000689FB001112475956795759567952BC041 +:103BA00081FF09C06091130185E0689FB001112475 +:103BB0007595679520C082FF07C06091130185E06D +:103BC000689FB001112417C09091E3019923D1F0AF +:103BD00060911201961788F72091130185E0289FC4 +:103BE00090011124929FA001939F500D112470E029 +:103BF000CA010E949F236038710540F46115710568 +:103C000039F002C065E070E0862F08958FE70895CF +:103C100081E008958091E20180FF08C06091110168 +:103C200070E0759567957595679521C081FF06C011 +:103C30006091110170E07595679519C082FF04C00D +:103C40006091110170E010C09091E3019923C1F0DF +:103C5000609110019617A0F780911101899FC00112 +:103C6000112470E00E949F236038710528F46115CB +:103C7000710521F0862F08958FE7089581E008955A +:103C800061E070E0F4CF803F21F40E94C11D819576 +:103C900004C0813F29F40E94C11D8093E60108956C +:103CA000823F21F40E94C11D819504C0833F29F405 +:103CB0000E94C11D8093E5010895893F19F40E9477 +:103CC0000A1E05C08A3F31F40E940A1E8195809326 +:103CD000E70108958B3F21F40E940A1E819504C0DC +:103CE0008C3F29F40E940A1E8093E8010895843FC6 +:103CF00021F48091E401816017C0853F21F4809117 +:103D0000E401826011C0863F21F48091E401846067 +:103D10000BC0873F21F48091E401886005C0883F93 +:103D200031F48091E40180618093E40108958D3F36 +:103D300021F48091E20181600BC08E3F21F48091DB +:103D4000E201826005C08F3F29F48091E201846026 +:103D50008093E2010895803F39F48091E60187FF66 +:103D60006CC01092E60169C0813F29F48091E601A0 +:103D70001816BCF362C09091E501823F29F497FFC9 +:103D80005CC01092E50159C0833F19F41916CCF3B9 +:103D900054C0893F41F48091E70118160CF04DC0E2 +:103DA0001092E7014AC08A3F29F48091E70187FF1A +:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6 +:103DC0001092E8013AC08C3F29F48091E80118165E +:103DD000BCF333C0843F21F48091E4018E7F17C08F +:103DE000853F21F48091E4018D7F11C0863F21F44D +:103DF0008091E4018B7F0BC0873F21F48091E40127 +:103E0000877F05C0883F31F48091E4018F7E8093E5 +:103E1000E40113C08D3F21F48091E2018E7F0BC03D +:103E20008E3F21F48091E2018D7F05C08F3F29F400 +:103E30008091E2018B7F8093E2018091E501811105 +:103E40000EC08091E60181110AC08091E7018111C5 +:103E500006C08091E801811102C01092E30108952B +:103E600084EE91E00E9401100E949B1B9093E1015F +:103E70008093E00108951F93CF93DF938091E00139 +:103E80009091E1010E94A71BAC019091E30199235D +:103E900021F02091140130E006C0209115018AE044 +:103EA000289F900111244217530708F486C080917F +:103EB000E501C091E601D091E7011091E80181117F +:103EC00007C0C11176C0D11174C0111172C075C084 +:103ED0009F3F19F09F5F9093E301181624F40E940E +:103EE000C11D8093E5018091E50187FF05C00E9417 +:103EF000C11D81958093E5011C1624F40E94C11D0B +:103F00008093E6018091E60187FF05C00E94C11DF4 +:103F100081958093E6016091E501662339F1C091B6 +:103F2000E601CC2319F1772767FD7095872F972F2E +:103F30000E94B02223E333E343E35FE30E941423B0 +:103F40000E947D226093E5016C2F772767FD7095B5 +:103F5000872F972F0E94B02223E333E343E35FE3ED +:103F60000E9414230E947D226093E6011D1624F412 +:103F70000E940A1E8093E7018091E70187FF05C038 +:103F80000E940A1E81958093E701111624F40E9475 +:103F90000A1E8093E8018091E80187FF05C00E9416 +:103FA0000A1E81958093E801DF91CF911F910C94B7 +:103FB000301F9F3F09F08ECF96CFDF91CF911F9199 +:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE +:103FD0001092E3011092E2010895833081F128F4F8 +:103FE000813059F08230D1F00895853009F449C00C +:103FF000B8F1863009F456C0089580911501262F36 +:1040000030E0280F311D2F3F310524F4680F6093F5 +:10401000150108958FEF8093150108958091140183 +:10402000262F30E0280F311D2F3F310524F4680F73 +:104030006093140108958FEF809314010895809187 +:104040001301262F30E0280F311D2F3F310524F4B6 +:10405000680F6093130108958FEF80931301089503 +:1040600080911201262F30E0280F311D2F3F31059E +:1040700024F4680F6093120108958FEF809312016A +:10408000089580911101262F30E0280F311D2F3F18 +:10409000310524F4680F6093110108958FEF809328 +:1040A0001101089580911001262F30E0280F311D55 +:1040B0002F3F310524F4680F6093100108958FEFAE +:1040C000809310010895833011F128F4813049F074 +:1040D000823091F00895853081F120F18630C1F170 +:1040E000089580911501681720F4861B80931501AF +:1040F000089510921501089580911401681720F415 +:10410000861B8093140108951092140108958091E4 +:104110001301681720F4861B8093130108951092F1 +:104120001301089580911201681720F4861B809373 +:1041300012010895109212010895809111016817DB +:1041400020F4861B809311010895109211010895A7 +:1041500080911001681720F4861B80931001089548 +:104160001092100108950F931F938D3109F46BC0C5 +:1041700008F03FC08E3009F47FC0C0F4873009F4E6 +:1041800069C068F4863009F0B1C08091DA01817F9E +:104190008E7F8093DA0181E08093EA01A8C08830A5 +:1041A00009F4A2C08B3009F49FC0A0C0863109F485 +:1041B0009BC078F4803109F472C0813109F096C057 +:1041C0000E94831490910D0181E0892780930D0155 +:1041D0008BC0893109F488C08B3109F087C0809188 +:1041E000DA0181FB222720F991E0922790FB81F9E7 +:1041F0004CC0853309F470C048F4873209F46CC0B0 +:1042000008F459C0893209F467C070C0833438F4A7 +:104210008A3308F04EC0883309F466C067C083341F +:1042200009F45AC0883409F061C00E9483140FEF6A +:1042300013ED20E3015010402040E1F700C00000E2 +:104240000E94F61B51C00E9437220E94EA0F0E9472 +:10425000E3084AC09091DA01892F8095817080FB34 +:1042600090F929F0966098609093DA0140C0997FA8 +:10427000977F9093DA0138C08091DA0182FB222780 +:1042800020F991E0922790FB82F98093DA0199233B +:1042900059F18091DA0181608093DA0125C0809123 +:1042A000DA0183FB222720F991E0922790FB83F922 +:1042B000ECCF895301C08D5141E050E060E070E0E7 +:1042C0008A019B0104C0000F111F221F331F8A9512 +:1042D000D2F7C901B80104C061E070E080E090E06D +:1042E0000E9443180E94831481E001C080E01F9166 +:1042F0000F91089580E0089580E00895CF93C82F2E +:104300008091EA01813079F018F08230E9F187C0BC +:10431000E0910E01F0910F018081813169F08232CC +:1043200009F07FC009C0E0910E01F0910F0180817A +:10433000813111F0823261F48C2F0E947A21811137 +:1043400004C08C2F0E94B3201DC081E090E01AC0F1 +:104350008C2F0E947C21811114C0C43179F048F463 +:10436000CB3079F0C03109F060C082E08093EA017F +:1043700008C0C93219F0C83321F057C01092EA01C1 +:1043800054C081E0817053C0C93289F118F5C4313D +:1043900071F1A8F4C73009F046C08AE08093150196 +:1043A00094E19093140193E0909313018093120190 +:1043B00088E08093110188E28093100134C0CE51CF +:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB +:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC +:1043E00013C0C13579F0C235F1F461E00DC08091A0 +:1043F000E901882319F01092E90115C081E080934A +:10440000EA0115C061E006C08091E9010E94ED1F3C +:104410000AC06AE08091E9010E94632004C0109202 +:10442000EA0180E004C081E002C080E0ABCFCF9120 +:104430000895E1E8F0E08081886080838081816078 +:1044400080838FB7F89493E09093890090ED9093D8 +:1044500088008FBF0895EFE6F0E08081826080835E +:104460000895EFE6F0E080818D7F80830895EFE688 +:10447000F0E0908182E08927808308951F920F9257 +:104480000FB60F9211242F933F934F935F936F9327 +:104490007F938F939F93AF93BF93EF93FF938091FD +:1044A000EB019091EC0101969093EC018093EB016C +:1044B000811103C082E00E94E308E091EC01E695DF +:1044C000E695F0E0EC54FB4FE4918091EB018E1304 +:1044D00003C080E00E94E308FF91EF91BF91AF918C +:1044E0009F918F917F916F915F914F913F912F910C +:1044F0000F900FBE0F901F90189504D06894B111C3 +:104500008DC0089570D088F09F5790F0B92F9927EB +:10451000B751A0F0D1F0660F771F881F991F1AF0CE +:10452000BA95C9F712C0B13081F077D0B1E00895E3 +:1045300074C0672F782F8827B85F39F0B93FCCF364 +:10454000869577956795B395D9F73EF490958095C4 +:10455000709561957F4F8F4F9F4F0895E89409C0E4 +:1045600097FB3EF490958095709561957F4F8F4FA6 +:104570009F4F9923A9F0F92F96E9BB279395F695BC +:10458000879577956795B795F111F8CFFAF4BB0F3A +:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E +:1045A000882311F096E911C0772321F09EE8872F28 +:1045B000762F05C0662371F096E8862F70E060E0E4 +:1045C0002AF09A95660F771F881FDAF7880F96955D +:1045D000879597F9089557FD9058440F551F59F046 +:1045E0005F3F71F04795880F97FB991F61F09F3FE0 +:1045F00079F087950895121613061406551FF2CF09 +:104600004695F1DF08C0161617061806991FF1CF58 +:1046100086957105610508940895E894BB2766277F +:104620007727CB0197F908950BD078C069D028F08F +:104630006ED018F0952309F05AC05FC01124EECF58 +:10464000CADFA0F3959FD1F3950F50E0551F629FED +:10465000F001729FBB27F00DB11D639FAA27F00DDB +:10466000B11DAA1F649F6627B00DA11D661F829F02 +:104670002227B00DA11D621F739FB00DA11D621FE7 +:10468000839FA00D611D221F749F3327A00D611D04 +:10469000231F849F600D211D822F762F6A2F1124E6 +:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39 +:1046B000BB1F661F771F881F91505040A9F79E3F70 +:1046C000510570F014C0AACF5F3FECF3983EDCF3C5 +:1046D000869577956795B795F795E7959F5FC1F7AD +:1046E000FE2B880F911D9695879597F9089597F958 +:1046F0009F6780E870E060E008959FEF80EC089588 +:1047000000240A94161617061806090608950024B0 +:104710000A9412161306140605060895092E03942A +:10472000000C11F4882352F0BB0F40F4BF2B11F49E +:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF +:10474000072E16F4009407D077FD09D00E94B923F4 +:1047500007FC05D03EF4909581959F4F0895709584 +:1047600061957F4F0895EE0FFF1F0590F491E02DA6 +:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8 +:10478000B70710F0A61BB70B881F991F5A95A9F7FA +:1047900080959095BC01CD010895F999FECF92BD09 +:1047A00081BDF89A992780B50895A8E1B0E042E06C +:1047B00050E00C94F523262FF999FECF92BD81BDD0 +:1047C000F89A019700B4021639F01FBA20BD0FB64F +:1047D000F894FA9AF99A0FBE08950196272F0E942D +:1047E000DC230C94DB23DC01CB01FC01F999FECF27 +:1047F00006C0F2BDE1BDF89A319600B40D92415069 +:0A4800005040B8F70895F894FFCF78 +:10480A000220E508730950091C09E8080101C701DB +:10481A0028080A03140A3F4D363975042804F2039E +:10482A00B9034C0365037E039703010203040506DB +:04483A000708090062 +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/andrew_osx/keymap.c b/keyboards/ergodox_ez/keymaps/andrew_osx/keymap.c new file mode 100644 index 000000000..48257d23a --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/andrew_osx/keymap.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/keyboards/ergodox_ez/keymaps/bepo/README.md b/keyboards/ergodox_ez/keymaps/bepo/README.md new file mode 100644 index 000000000..338909ed9 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/bepo/README.md @@ -0,0 +1,34 @@ +# BEPO keymap for the ErgoDox + +This keymap has been made for the BEPO layout (http://bepo.fr), which is an ergonomic french keyboard layout based on Dvorak rules. As it's made for french people, the following of this README will be in french. + +# Disposition BÉPO pour l'ErgoDox + +Cette keymap a été pensée pour la disposition BÉPO (http://bepo.fr), qui est une disposition de clavier francophone, ergonomique et libre, élaborée selon la méthode Dvorak. L'adaptation de cette disposition à l'ErgoDox a été réalisée en conservant les points forts du clavier TypeMatrix 2030 (très répandu dans la communauté bépo, avec un excellent rapport ergonomie / prix) voir en réglant certains de ses défauts (3 colonnes pour l'auriculaire droit et touche "Ê") et en apportant son lot de nouveautés (compatibilité avec les systèmes azerty et qwerty). + +Particularités +-------------- + +Touches de repos des pouces : "espace" à gauche et "entrée" à droite. + +Placement des touches de combinaison ("Shift", "Alt", "Ctrl"...) adapté aux pouces, et permettant de conserver chaque doigt pour les rangées de lettres auxquelles ils sont assignés sans avoir à changer la touche de combinaison de côté (exemple : "A" majuscule puis "M" majuscule avec les auriculaires et un seul appui d'une touche "Shift"). + +Les touches "Alt" et "Alt Gr" sont accessibles avec les pouces sur la rangée du bas comme sur la TypeMatrix 2030, avec une symétrie gauche / droite. + +Les touches "Ctrl" sont placées sur la même ligne que les touche "Alt" et "Alt Gr" comme sur un clavier clasique, elles sont accessibles aux pouces sur la rangée du bas (moins éloigné que le groupe de touches de pouces pour des petites mains). + +Les touches "Backspace" et "Delete" sont placées comme sur la TypeMatrix 2030, du côté gauche uniquement (pour laisser celles de la main droite servir de {caps,num,scroll}lock puisqu'elles ont des LED). + +La touche "Tab" est placée comme sur la TypeMatrix 2020. + +Meilleure symétrie et accessibilité que la TypeMatrix 2030 : les touches "W" et "%" ont dû être déplacées du côté gauche en raison du nombre de touches de l'ErgoDox, mais l'auriculaire droit ne gère maintenant que deux colonnes de touches au lieu de trois. La touche "Ê" redevient accessible sur la même rangée que les autres lettres, comme sur un clavier classique en disposition bépo. Les lettres, chiffres et symboles sont tous regroupés sur 4 lignes et 6 colonnes pour chaque main, et la première rangée de lettres à la main gauche conserve une identité visuelle "BÉPO". + +Touche de fonction permettant de saisir les touches F1 à F12, les touches F1 à F10 sont placées de façon logique par rapport aux chiffres 1 à 0. Cette même touche permet l'accès aux touches directionnelles sans déplacer la main droite. Les touches "Home" et "End" sont placées de la même façon que sur une TypeMatrix 2030 par rapport aux touches directionnelles. Les touches "Page Up" et "Page Down" sont également accessibles facilement sans déplacer la main droite. Les fonctions "VolUp" et "VolDown" sont placées comme sur la TypeMatrix 2030, avec la fonction "Mute" juste au dessus. Les fonctions "Undo", "Cut", "Copy" et "Paste" sont placées côte à côte comme elles le seraient sur un clavier QWERTY en combinaison avec la touche "Ctrl" (à l'emplacement des lettres "Z", "X", "C" et "V"). Par rapport au layout "SpaceFN", l'utilisation d'une touche de fonction dédiée au pouce permet de ne pas ajouter de latence, et la touche espace reste compatible avec les jeux (action au moment de l'appui et possibilité d'appui long). + +Touche de fonction permettant l'accès au pavé numérique comme sur la TypeMatrix 2030, mais sans avoir à déplacer la main droite : avec les doigts sur la rangée de repos, possibilité de saisir les chiffres "4", "5" et "6" comme sur un pavé numérique classique. Le double "0" de la TypeMatrix a été conservé, et gagne une possibilité de répétition en simples "0". + +L'appui sur une touche permet de basculer en mode BEPO sur un système configuré pour un clavier QWERTY. Cette compatibilité n'est pas parfaite (pas encore de gestion des accents mais ça devrait être faisable avec une disposition en qwerty international, et les combinaisons de touches ne sont pas toutes supportées puisque le clavier traduit déjà certaines touches en combinaisons) mais reste pratique pour une saisie de texte occasionnelle. + +TODO : couche de compatibilité pour utiliser la disposition BÉPO sur un système configuré pour un clavier AZERTY. + +> Olivier Smedts diff --git a/keyboards/ergodox_ez/keymaps/bepo/bepo.png b/keyboards/ergodox_ez/keymaps/bepo/bepo.png new file mode 100644 index 000000000..3df7aa609 Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/bepo/bepo.png differ diff --git a/keyboards/ergodox_ez/keymaps/bepo/compiled.hex b/keyboards/ergodox_ez/keymaps/bepo/compiled.hex new file mode 100644 index 000000000..e2ed480f0 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/bepo/compiled.hex @@ -0,0 +1,1190 @@ +:100000000C94D3030C9417040C9417040C94170449 +:100010000C9417040C9417040C9417040C941704F4 +:100020000C9417040C9417040C94B10E0C94830FC9 +:100030000C9417040C9417040C9417040C941704D4 +:100040000C9417040C943D230C9417040C9417047F +:100050000C9417040C94D01C0C9417040C941704E3 +:100060000C9417040C9417040C9417040C941704A4 +:100070000C9417040C9417040C9417040C94170494 +:100080000C9417040C9417040C9417040C94170484 +:100090000C9417040C9417040C9417040C94170474 +:1000A0000C9417040C9417040C941704F00F1210FE +:1000B00000111210001157107A100011CF10E21029 +:1000C000B113B113E013E013161436146715671556 +:1000D00041146715F114F11458156715671561156A +:1000E000FE14FE14FE14FE14FE14FE14FE14FE1480 +:1000F000FE14FE14FE14FE14FE14FE14FE14FE1470 +:1001000010151D1524152B15351502E002E200010E +:10011000E201E00002620001620262016200350059 +:100120002E0030006400015400001E001400040082 +:100130001D00000004521F001A0016001B00E300FF +:10014000E1002000080007000600E0002C0021006C +:10015000150009001900E2000552220017000A00EC +:100160000500000029004C002A0000002B000000C0 +:100170000652470039000000530000000000230031 +:100180001C000B00110000004900240018000D00A5 +:100190001000E600013025000C000E003600E400DF +:1001A0002800260012000F003700E700E5002700B6 +:1001B000130033003800460004522D002F00340095 +:1001C000310048000000210222021A00080001004C +:1001D000000034020500040004000000045236024E +:1001E000080018001C00E3000252370213000C0044 +:1001F0001B00E0002C002602120008003700E2007D +:1002000005522702080036000E00000029004C00AD +:100210002A0000002B0000000652470039000000B1 +:100220005300000000001F022302060034000000FB +:1002300049002E02190017001400035201002D007E +:10024000070016000A00E400280038000F0015001F +:100250000B00E700025225020D00110009004600C4 +:1002600004522E001D00100006004800000020026D +:1002700035001A020802010000001E0005020402F7 +:100280000402010001001F00080218021C02E30220 +:100290000100200013020C021B02E00201002100F9 +:1002A000120208023302E2020100220008023300B7 +:1002B0000E02000001000100010000002B020000FE +:1002C0000100010001000000010000000100230006 +:1002D0001E02060238020000010024001902170263 +:1002E0001402E60201002500070216020A02E402D7 +:1002F000010026000F0215020B02E7020100270091 +:100300000D02110209020100010001001D0210028C +:10031000060201000000210222021A00080001006A +:1003200000003402310204003100000004523602A1 +:10033000080018002F02E3000252370224020C00CA +:100340003002E0002D022F00120022143700E200DC +:1003500005523000080036003502000029004C002C +:100360002A0000002B000000065247003900000060 +:100370005300000000001F022302060034000000AA +:1003800049002E02190017001400010001002D0081 +:10039000070016000A00E400280038000F001500CE +:1003A0000B00E700025225020D0011000900460073 +:1003B00004522E001D00100006004800000000003E +:1003C000000000000000000000003A0000000000F3 +:1003D0007A00000001003B00000000007B000100EB +:1003E00001003C00000000007C00010000003D0016 +:1003F000000000007D00010000003E000000000041 +:10040000000000000000A800A9000000AA000000F1 +:1004100000000000000000000000000000003F009D +:100420004B004E0000000000000040004A00500059 +:1004300000000100010041005200510000000100D5 +:10044000000042004D004F00000001000100430089 +:100450004400450000000000010000000000000012 +:10046000000000000000000000000000000000008C +:10047000000000000000000000000000000000007C +:10048000000000000000010001000000000000006A +:10049000000001000000000000000000000001005A +:1004A000010000000000000000000000000000004B +:1004B000000000000000000000000000000000003C +:1004C000000000000000000000000000000000002C +:1004D000000057005F005C005900620000005600F9 +:1004E00060005D005A0000305800540061005E005A +:1004F0005B008500010055000000000000000000C6 +:1005000000000000000000000000000000000000EB +:1005100000000000000000000000000000000000DB +:1005200000000000000000000000000000000100CA +:1005300001000000000000000000010000000000B9 +:1005400000000000000001000000000000000000AA +:10055000000000000000000000000000000000009B +:10056000010000000000000000000000000000008A +:10057000000000000000000000000000F400F20095 +:100580000000010000000000F000F1000000010088 +:1005900000000000F500F300000001000100000071 +:1005A000F900FA0000000000000000000000000058 +:1005B00000000000000016034500720067006F0095 +:1005C00044006F007800200045005A000000160328 +:1005D0004500720067006F0044006F007800200043 +:1005E00045005A0000000403090409026D000401DB +:1005F00000A0FA0904000001030101000921110112 +:1006000000012240000705810308000A09040100D7 +:100610000103010200092111010001224D0007051B +:10062000820308000A0904020001030000000921F6 +:10063000110100012236000705830308000A09049E +:10064000030001030000000921110100012239000B +:10065000070584031000011201100100000008EDDD +:10066000FE071301000102000105010906A10105B1 +:100670000719E029E7150025019508750181020594 +:1006800008190129059505750191029501750391D8 +:100690000105071900297715002501957875018155 +:1006A00002C005010980A101850216010026B700DC +:1006B0001A01002AB700751095018100C0050C09C8 +:1006C00001A1018503160100269C021A01002A9C43 +:1006D00002751095018100C005010902A1010901FF +:1006E000A1000509190129051500250195057501C8 +:1006F00081029501750381010501093009311581D8 +:10070000257F95027508810609381581257F950199 +:1007100075088106050C0A38021581257F9501753B +:10072000088106C0C005010906A101050719E029D5 +:10073000E71500250195087501810295017508816D +:1007400001050819012905950575019102950175A5 +:100750000391010507190029FF150026FF009506E2 +:1007600075088100C00000000000000000000000CB +:10077000010204060A0F17202C3A4A5D71879DB3C7 +:10078000C7DAE9F5FCFFFCF5E9DAC7B39D87715DCF +:100790004A3A2C20170F0A0604020100000000004C +:1007A00000000000000011241FBECFEFDAE0DEBF22 +:1007B000CDBF04B603FE24C08091FB019091FC01E3 +:1007C000A091FD01B091FE018730904BA740B04B46 +:1007D000B9F41092FB011092FC011092FD011092ED +:1007E000FE0114BE84B7877F84BF88E10FB6F894FA +:1007F00080936000109260000FBEE0E0FFE3099577 +:1008000011E0A0E0B1E0E8E0FAE402C005900D924A +:10081000A433B107D9F711E0A4E3B1E001C01D9200 +:10082000AB3FB107E1F70E94F50B0C9402250C9445 +:1008300000001092B9008AE08093B800089594EA0D +:100840009093BC009091BC0097FFFCCF9091B900B1 +:10085000987F983021F0903111F081E008958093D5 +:10086000BB0084E88093BC008091BC0087FFFCCF74 +:100870008091B900887F883111F0803471F780E071 +:10088000089584E98093BC008091BC0084FDFCCF76 +:1008900008958093BB0084E88093BC008091BC00E5 +:1008A00087FFFCCF9091B900987F81E0983209F4DE +:1008B00080E0089584E88093BC008091BC0087FFAD +:1008C000FCCF8091BB00089580910101811115C07A +:1008D00080E40E941F048093010181110CC082E119 +:1008E0000E94490480930101811105C08FEF0E948D +:1008F0004904809301010E94410484B1807F84B93E +:1009000085B1807F85B98AB1837F8AB98BB1837FB6 +:100910008BB93E98469808950E941F068093010166 +:100920000E94640480B38C7080BB81B3836F81BBF1 +:10093000A5E3B1E0E3E4F1E08EE08E0F11921D92A9 +:100940008E13FCCF0C940906BF92CF92DF92EF92E8 +:10095000FF920F931F93CF93DF9380910101882320 +:1009600079F0809134018F5F80933401811108C048 +:100970000E941F0680930101811102C00E94B105EF +:1009800005E311E0C0E0D0E0DD24D39482E0C82E7E +:10099000EE24E394F12CC730D10500F580910101DC +:1009A000811164C080E40E941F04809301018111C1 +:1009B00012C082E10E9449048093010181110BC0A1 +:1009C000C7010C2E01C0880F0A94EAF780950E9497 +:1009D0004904809301010E94410448C0CA30A1F03B +:1009E00028F4C83059F0C93061F005C0CC3089F026 +:1009F00070F0CD3089F0209A289810C0219A29985B +:100A00000DC0229A2A980AC0239A2B9807C0529A9E +:100A100001C0539A5B9802C03E9A469890EA9A9514 +:100A2000F1F79FB1799902C082E001C080E0917036 +:100A30009D25982B7C9902C084E001C080E0892B21 +:100A40007D9902C038E001C030E0832B7E9902C05E +:100A500020E101C020E0822B9FB19095991F99273A +:100A6000991F9295990F907E892B0FC0809101015B +:100A7000811149C080E40E941F04809301018823F2 +:100A800079F1B12C0E9441048B2DF80190819817C7 +:100A900019F08083C09200010E94640421960F5FC8 +:100AA0001F4FCE30D10509F076CF80910001882309 +:100AB00061F1815080930001882339F08FE99FE034 +:100AC0000197F1F700C0000020C0A3E4B1E0E5E326 +:100AD000F1E0CF01825F91919D938E13FCCF15C001 +:100AE00083E10E944904809301018111CACF81E40E +:100AF0000E941F04809301018111C3CF0E945A04F8 +:100B0000B82EB094BFCF80E0C0CF0E94AF0581E087 +:100B1000DF91CF911F910F91FF90EF90DF90CF90D9 +:100B2000BF900895E82FF0E0ED5BFE4F80810895BF +:100B300008950F931F93CF93DF93C3E4D1E010E0A8 +:100B40000C2F025F899190E00E94461C180F0C1335 +:100B5000F9CF812FDF91CF911F910F9108950C94C0 +:100B6000910656985E9825982D9826982E98279845 +:100B70002F988FEF90E09093890080938800909356 +:100B80008B0080938A0090938D0080938C00259A2F +:100B90002D9A2FEF80E792E0215080409040E1F7BE +:100BA00000C00000269A2E9A2FEF80E792E0215095 +:100BB00080409040E1F700C00000279A2F9A2FEF65 +:100BC00080E792E0215080409040E1F700C00000B3 +:100BD00025982D982FEF80E792E02150804090409B +:100BE000E1F700C0000026982E982FEF80E792E0F2 +:100BF000215080409040E1F700C0000027982F98D6 +:100C000056985E9825982D9826982E9827982F9874 +:100C1000089589EA8093800089E080938100249878 +:100C20002C983F988AB18F748AB96E98479A8BB185 +:100C3000806B8BB9769A0E94B1050C94900680E285 +:100C4000809301018091510181110EC00E9419040D +:100C500081E0809351012FEF83ED90E3215080409C +:100C60009040E1F700C0000080E40E941F048093E0 +:100C7000010181112EC00E9449048093010181115C +:100C800028C00E94490480930101811122C08FE392 +:100C90000E9449048093010181111BC00E944104FC +:100CA00080E40E941F0480930101811112C08CE036 +:100CB0000E9449048093010181110BC00E944904E4 +:100CC00080930101811105C08FE30E944904809344 +:100CD00001010E944104809101010895662319F0E9 +:100CE000613041F017C0FC018281811116C084E19E +:100CF00091E00895FC018281882331F084E00E9414 +:100D00000F1A8FE091E0089584E00E94301A8AE083 +:100D100091E0089580E090E0089587E191E00895E2 +:100D20000895089581E0089581E008950C94940653 +:100D300008950F931F93CF93DF938C01FC01C08123 +:100D4000D181CE010E94CB1ABE010E944207EC0164 +:100D5000B8010E949606882309F48DC0F8018281AB +:100D6000882309F44AC080915D0181111FC0C431FC +:100D7000F0E5DF0709F051C00E94980681E08093FA +:100D80005D010E949A1C90935C0180935B0110921C +:100D90005401109256011092550110925801109270 +:100DA000570110925A011092590165C080915B0160 +:100DB00090915C010E94A61C883C910570F4809182 +:100DC0005401E82FF0E0EE0FFF1FEB5AFE4FD183E6 +:100DD000C0838F5F809354014EC0C43880E5D8072C +:100DE00021F0C538D04501F13AC0F801828188234D +:100DF00041F01092520182E01EC0C438E0E5DE07E7 +:100E000059F580915201811106C086E20E94551267 +:100E100086E20E941D1382E01CC0C438F0E5DF07A3 +:100E200041F3C538D045D9F4F8018281882331F0E7 +:100E30001092530180E20E946C131DC080915301F7 +:100E4000811106C087E20E94551287E20E941D139D +:100E500080E20E9473130FC0C538D04529F381E0AA +:100E60008093520180935301C801DF91CF911F916C +:100E70000F910C94920680E0DF91CF911F910F911A +:100E80000895089596E0799FF001112494E5899FD3 +:100E9000E00DF11D1124E60FF11DEE0FFF1FE25EC4 +:100EA000FE4F859194910895880F991FFC01E25699 +:100EB000F040859194910895880F991FFC01E25E9E +:100EC000FE4F8591949108950F931F93CF93DF93D5 +:100ED000EC01811520E3920750F5C11580E2D80797 +:100EE00008F0C3C0CB3BD10590F4C83AD10508F057 +:100EF0006AC0C53AD10508F05BC0C430D10508F01E +:100F0000D0C1219709F0CAC101E010E00AC2CF3F69 +:100F1000D10511F008F0C5C1C03FD10508F0A2C04D +:100F2000CE01805E9109089708F4BBC1B7C1C130FA +:100F300090E5D90709F4A2C020F5C0318FE4D807A5 +:100F400070F4C11590E4D90708F094C0C11521E3ED +:100F5000D20708F0A3C1DD278E01106CE2C1C115D4 +:100F6000D04509F09BC10E94D2158FEF94E32CE08D +:100F7000815090402040E1F700C000000E94F51C25 +:100F8000D0C1C11597E5D90758F4C03121E5D20782 +:100F900008F01CC1C43180E5D80708F475C07EC1D3 +:100FA000CE0190578115904108F078C1DF7073C170 +:100FB000C53AD10509F477C1C63AD10509F076C121 +:100FC00002E810E4AEC1C83AD10509F472C1C93AC9 +:100FD000D10509F471C1CA3AD10509F470C1CB3AFF +:100FE000D10509F46FC1CC3AD10509F46EC1CD3AEF +:100FF000D10509F46DC1C03BD10509F46CC1CE3AED +:10100000D10509F46BC1CF3AD10509F46AC1C13BDE +:10101000D10509F469C1C23BD10509F468C1C33BDC +:10102000D10509F467C1C43BD10509F466C1C53BCC +:10103000D10509F465C1C63BD10509F464C1C73BBC +:10104000D10509F463C1C83BD10509F462C1C93BAC +:10105000D10509F461C1CA3BD10509F460C100E0C2 +:1010600014E45FC18E0110655CC1CE019F700E94C7 +:101070005C0758C1DF708E01106A53C18091DA019C +:1010800081608093DA014DC10E949A1E811102C0D5 +:101090000E94801E0E94B71E90E09093FB018093F7 +:1010A000FA01C23080E5D80721F48091FA0181600D +:1010B00086C0C43090E5D90721F48091FA0182609E +:1010C0007EC0C63020E5D20721F48091FA01846009 +:1010D00076C0C83080E5D80719F48091FA0127C09E +:1010E000CA3090E5D90721F48091FA01806167C088 +:1010F000CC3020E5D20721F48091FA0180625FC0F4 +:10110000CE3080E5D80721F48091FA01806457C081 +:10111000C03190E5D90721F48091FA0180684FC071 +:10112000C23120E5D20729F48091FA0184608860F9 +:1011300046C0C33080E5D80721F48091FA018E7F44 +:101140003EC0C53090E5D90721F48091FA018D7F2A +:1011500036C0C73020E5D20721F48091FA018B7F99 +:101160002EC0C93080E5D80719F48091FA0126C055 +:10117000CB3090E5D90721F48091FA018F7E1FC012 +:10118000CD3020E5D20721F48091FA018F7D17C080 +:10119000CF3080E5D80721F48091FA018F7B0FC012 +:1011A000C13190E5D90721F48091FA018F7707C00A +:1011B000C331D04531F48091FA018B7F877F8093D2 +:1011C000FA018091FA010E94BB1EABC08D2F9927B6 +:1011D0008F70992781309105D9F49E0123703327B0 +:1011E00002C0880F991F2A95E2F79C688E0144E09F +:1011F000000F111F4A95E1F700271370802B912BE8 +:1012000053E0CC0FDD1F5A95E1F7C076DD272FC0E4 +:101210008230910531F4DC2FCC278E01016F106AEA +:1012200080C08330910569F4CE018370992701E075 +:1012300010E002C0000F111F8A95E2F7C8019C68F8 +:101240000FC084309105B9F4CE018370992701E075 +:1012500010E002C0000F111F8A95E2F7C8019A68DA +:1012600023E0CC0FDD1F2A95E1F7C07ED7708C01FB +:101270000C2B1D2B56C08530910531F4DC2FCC276B +:101280008E01046F106A4DC0069709F04AC0CF71F5 +:10129000DD27DC2FCC278E01106243C000E010E078 +:1012A00040C08E013EC001E810E43BC003E810E4FA +:1012B00038C002EE14E435C009EE14E432C00AEE80 +:1012C00014E42FC005EB14E42CC006EB14E429C091 +:1012D00007EB14E426C00CEC14E423C00DEC14E47A +:1012E00020C003E815E41DC00AE815E41AC002E9AD +:1012F00015E417C004E915E414C001E216E411C0B6 +:1013000003E216E40EC004E216E40BC005E216E4A4 +:1013100008C006E216E405C007E216E402C00AE2CD +:1013200016E4C801DF91CF911F910F91089596E0C7 +:10133000799FF001112494E5899FE00DF11D11249E +:10134000E60FF11DEE0FFF1FE25EFE4F85919491B7 +:10135000803E9105E0F4803C910558F5813391057C +:1013600009F46FC048F48932910509F463C08A32E8 +:10137000910509F46DC072C089339105E9F0823896 +:101380009105D1F08533910509F44DC067C0833EC6 +:10139000910581F138F4803E9105B9F0823E9105C6 +:1013A000D9F05CC0863E910561F1873E9105A1F1BF +:1013B00055C00E94540708952091FA0120FD02C0F3 +:1013C00021FF4CC080EE90E049C08091FA0180FF7F +:1013D000F9CF89E390E042C08091FA0182FF0EC00C +:1013E0008091FA0184FF03C080E090E037C083EE73 +:1013F00090E034C08091FA0182FFF2CF82EE90E05B +:101400002DC08091FA0183FF0BC08091FA0184FD09 +:10141000EBCF87EE90E022C08091FA0183FFF5CFF9 +:1014200086EE90E01BC08091FA0185FF07C089E23B +:1014300090E014C08091FA0185FFF9CF85E390E038 +:101440000DC08091FA0186FF07C08AE290E006C0D5 +:101450008091FA0186FFF9CF81E390E00E94640752 +:10146000089508950C94310A80916E010895CF93E8 +:10147000DF9300D01F92CDB7DEB79C018091F101C0 +:10148000843019F593E099833B832A839093E90094 +:101490008FEF9091E800815095FD06C095ED9A95EB +:1014A000F1F700008111F5CF8091E80085FF0DC0B4 +:1014B00040E050E063E070E0CE0101960E94A10C94 +:1014C0008091E8008E778093E8000F900F900F9046 +:1014D000DF91CF910895CF93DF9300D01F92CDB7C6 +:1014E000DEB72091F101243021F522E029839B838E +:1014F0008A8383E08093E9008FEF9091E800815028 +:1015000095FD06C095ED9A95F1F700008111F5CF94 +:101510008091E80085FF0DC040E050E063E070E09E +:10152000CE0101960E94A10C8091E8008E778093F5 +:10153000E8000F900F900F90DF91CF9108952091C8 +:10154000F1012430F1F422E02093E9002FEF3091F3 +:10155000E800215035FD06C035ED3A95F1F7000061 +:101560002111F5CF2091E80025FF0BC040E050E0AD +:1015700065E070E00E94A10C8091E8008E77809376 +:10158000E8000895CF93DF93EC019091F10194303E +:1015900009F046C080910C018823D9F080910D019B +:1015A0008823B9F09093E9008FEF9091E800815083 +:1015B00095FD06C095E19A95F1F700008111F5CFF0 +:1015C0008091E80085FF2CC040E050E060E170E0D1 +:1015D00017C081E08093E9008FEF9091E80081507F +:1015E00095FD06C095ED9A95F1F700008111F5CFB4 +:1015F0008091E80085FF14C040E050E068E070E0B2 +:10160000CE010E94A10C8091E8008E778093E800C3 +:1016100080E1FE01AEE5B1E001900D928A95E1F71F +:10162000DF91CF9108958091F001811109C00E944E +:10163000360E0E94930E8091E20084608093E20057 +:1016400008951092F001089508950C942A230E94A1 +:101650008B1C0E9430230E9439110C94320A42E004 +:1016600061EC81E00E94B00D42E061EC82E00E94FA +:10167000B00D42E061EC83E00E94B00D42E161EC0C +:1016800084E00C94B00D8091F301833009F455C0CF +:1016900030F4813071F0823009F48EC008958A30C0 +:1016A00009F47AC08B3009F460C0893009F09CC01D +:1016B00020C08091F201813A09F096C08091E80043 +:1016C000877F8093E8008091F6019091F701892B44 +:1016D00021F460E18EE591E003C060E080E090E0FD +:1016E00070E00E94EC0C8091E8008B778093E8001A +:1016F00008958091F201813209F076C08091F6015F +:101700009091F701009719F0039709F06DC080914F +:10171000E800877F8093E8008091E80082FD05C0A3 +:101720008091F1018111F8CF5FC08091F100809329 +:101730006E018091E8008B7753C08091F201813A6D +:1017400009F052C08091F6019091F701892B09F0C0 +:101750004BC08091E800877F8093E8008091E8008B +:1017600080FFFCCF80910C0136C08091F201813264 +:10177000D9F58091F6019091F701892BA9F5809117 +:10178000E800877F8093E8000E94E50D8091F401D6 +:1017900080930C010C94D2158091F201813221F5D5 +:1017A0008091E800877F8093E8000E94E50D80919A +:1017B000F50180936F0108958091F201813AA1F4BF +:1017C0008091E800877F8093E8008091E80080FFA7 +:1017D000FCCF80916F018093F1008091E8008E77BB +:1017E0008093E8000C94E50D089584B7877F84BF4B +:1017F00088E10FB6F89480936000109260000FBEED +:1018000090E080E80FB6F8948093610090936100B7 +:101810000FBE0E9488110E94360E0E94930E809186 +:10182000E20084608093E20078940E9419110E9483 +:101830008A1182E091E00E9434110E941823809165 +:10184000F101853069F40E94521C8091EF018823D8 +:10185000B1F30E947D1C882391F30E948B0CEFCF83 +:101860000E949011ECCF292F332723303105C9F086 +:1018700064F42130310581F02230310509F043C094 +:101880008DE690E02AEE35E042C021323105F1F0DC +:101890002232310541F137C082E190E027E536E0A0 +:1018A00036C099278130910541F08230910541F091 +:1018B000892B49F5E6EEF5E005C0EEECF5E002C057 +:1018C000E6EBF5E0849190E09F0121C06430D8F40C +:1018D000E62FF0E0EE0FFF1FEE5DFE4F208131811D +:1018E00089E090E014C0643070F470E0FB01EE0F0A +:1018F000FF1FE65EFE4F20813181FB01EA5EFE4F55 +:10190000808190E004C080E090E020E030E0FA01C7 +:1019100031832083089580E189BD82E189BD09B4C6 +:1019200000FEFDCF8091D8008F7D8093D8008091FC +:10193000E00082608093E0008091E00081FDFCCFB8 +:101940000895CF92DF92EF92FF920F931F93CF9360 +:10195000DF93EC018B016A010E94040E811133C0F8 +:10196000C114D10439F0F60180819181081B190B53 +:10197000C80FD91FE12CF12C0115110519F1809127 +:10198000E80085FD16C08091E8008E778093E8001E +:10199000C114D10449F0F60180819181E80EF91E4D +:1019A000F182E08285E00FC00E94040E882321F3BB +:1019B0000AC089918093F10001501109FFEFEF1ADD +:1019C000FF0ADACF80E0DF91CF911F910F91FF9056 +:1019D000EF90DF90CF9008952091F8013091F901B8 +:1019E0002617370748F06115710539F42091E80092 +:1019F0002E772093E80001C0B90140E06115710520 +:101A0000A9F12091F101222309F443C0253009F402 +:101A100042C02091E80023FD40C02091E80022FD53 +:101A200032C02091E80020FFE9CF4091F3002091DF +:101A3000F20030E0342BFC01CF016115710559F043 +:101A40002830310540F481918093F1006150710993 +:101A50002F5F3F4FF1CF41E02830310509F040E0E2 +:101A60002091E8002E772093E800C8CF4111C9CF1C +:101A70000AC08091F101882361F0853061F0809186 +:101A8000E80083FD0AC08091E80082FFF2CF80E089 +:101A9000089582E0089583E0089581E008952091FB +:101AA000F8013091F9012617370748F061157105E3 +:101AB00039F42091E8002E772093E80001C0B901A5 +:101AC000FC0120E06115710591F18091F1018823FD +:101AD00009F440C0853009F43FC08091E80083FDDF +:101AE0003DC08091E80082FD2FC08091E80080FF1A +:101AF000E9CF2091F3008091F20090E0922B6115E4 +:101B0000710559F08830910540F424912093F1003B +:101B10003196615071090196F2CF21E0089709F0E2 +:101B200020E08091E8008E778093E800CBCF2111F0 +:101B3000CCCF0AC08091F101882361F0853061F03B +:101B40008091E80083FD0AC08091E80082FFF2CF17 +:101B500080E0089582E0089583E0089581E008958B +:101B6000982F973058F59093E900981739F07091B5 +:101B7000EC002091ED005091F00003C0242F762F4F +:101B800050E021FF19C03091EB003E7F3093EB0015 +:101B90003091ED003D7F3093ED003091EB003160EE +:101BA0003093EB007093EC002093ED005093F00025 +:101BB0002091EE0027FF07C09F5FD3CF8F708093E7 +:101BC000E90081E0089580E008958091F20187FFA7 +:101BD00011C08091E80082FD05C08091F101811162 +:101BE000F8CF11C08091E8008B770BC08091F10194 +:101BF000882349F08091E80080FFF8CF8091E800C9 +:101C00008E778093E80008952091E4003091E500FC +:101C100095E64091EC00842F817040FF22C08091B6 +:101C2000E80080FD1CC08091F101882391F085308F +:101C300091F08091EB0085FD10C04091E40050913F +:101C4000E5004217530729F39A01915011F784E0F8 +:101C5000089582E0089583E0089581E0089580E08A +:101C600008954091E80042FFDECF08950E94A40E3F +:101C70000E94AC0EE0EEF0E0808181608083E8EDB0 +:101C8000F0E080818F77808319BCA7EDB0E08C9164 +:101C90008E7F8C9380818F7E80831092F0010895D7 +:101CA0000F931F93CF93DF930E94A40E0E94AC0E5C +:101CB000C8EDD0E088818F778883888180688883A9 +:101CC00088818F7D888319BC1092F1011092ED01FB +:101CD0001092EF011092EE0100EE10E0F801808109 +:101CE0008B7F808388818160888342E060E080E030 +:101CF0000E94B00DE1EEF0E080818E7F8083E2EE05 +:101D0000F0E0808181608083808188608083F80139 +:101D100080818E7F8083888180618883DF91CF91ED +:101D20001F910F910895E8EDF0E080818F7E808310 +:101D3000E7EDF0E080818160808384E082BF81E014 +:101D40008093F0010C94500EE8EDF0E080818E7FDE +:101D500080831092E20008951092DA001092E10060 +:101D600008951F920F920FB60F9211242F933F9355 +:101D70004F935F936F937F938F939F93AF93BF9393 +:101D8000EF93FF938091E10082FF0BC08091E2000E +:101D900082FF07C08091E1008B7F8093E1000E9469 +:101DA00018118091DA0080FF1FC08091D80080FF59 +:101DB0001BC08091DA008E7F8093DA008091D90079 +:101DC00080FF0DC080E189BD82E189BD09B400FEBC +:101DD000FDCF81E08093F1010E94130B05C019BC77 +:101DE0001092F1010E94210B8091E10080FF19C047 +:101DF0008091E20080FF15C08091E2008E7F809389 +:101E0000E2008091E20080618093E2008091D8003E +:101E100080628093D80019BC85E08093F1010E9414 +:101E2000250B8091E10084FF30C08091E20084FFA7 +:101E30002CC080E189BD82E189BD09B400FEFDCFDF +:101E40008091D8008F7D8093D8008091E1008F7EB3 +:101E50008093E1008091E2008F7E8093E200809188 +:101E6000E20081608093E2008091ED01882311F00F +:101E700084E007C08091E30087FD02C081E001C0DB +:101E800083E08093F1010E94270B8091E10083FFA2 +:101E900029C08091E20083FF25C08091E100877F07 +:101EA0008093E10082E08093F1011092ED01809136 +:101EB000E1008E7F8093E1008091E2008E7F80932D +:101EC000E2008091E20080618093E20042E060E005 +:101ED00080E00E94B00D8091F00088608093F00057 +:101EE0000E94240BFF91EF91BF91AF919F918F9131 +:101EF0007F916F915F914F913F912F910F900FBE06 +:101F00000F901F9018951F920F920FB60F921124E9 +:101F10002F933F934F935F936F937F938F939F93F1 +:101F2000AF93BF93CF93DF93EF93FF93C091E900FB +:101F3000CF708091EC00D82FD17080FDD0E8109246 +:101F4000E9008091F000877F8093F00078940E94F0 +:101F5000C70F1092E9008091F00088608093F00034 +:101F6000CD2BCF70C093E900FF91EF91DF91CF911E +:101F7000BF91AF919F918F917F916F915F914F91A1 +:101F80003F912F910F900FBE0F901F9018951F93A8 +:101F9000CF93DF93CDB7DEB7AA970FB6F894DEBF25 +:101FA0000FBECDBFE2EFF1E088E08E0F9091F1001F +:101FB00091938E13FBCF0E94430B8091E80083FF27 +:101FC0001FC18091F2019091F301492F50E04A30F6 +:101FD000510508F015C1FA01EA5AFF4F0C94B224DA +:101FE000803881F0823809F00BC18091F6018F7042 +:101FF0008093E9008091EB0085FB882780F910929F +:10200000E90006C08091EE019091EF01911182608C +:102010009091E800977F9093E8008093F1001092F0 +:10202000F100C8C0282F2D7F09F0EAC0882319F0DD +:10203000823061F0E5C08091F401813009F0E0C0A8 +:10204000933009F080E08093EF012BC08091F40180 +:10205000811127C08091F6018F7009F4D1C080935F +:10206000E9002091EB0020FF1CC0933021F4809107 +:10207000EB00806214C09091EB0090619093EB00B4 +:1020800021E030E0A90102C0440F551F8A95E2F714 +:102090004093EA001092EA008091EB008860809300 +:1020A000EB001092E9008091E800877F86C08111E3 +:1020B000A7C01091F4011F778091E3008078812BF5 +:1020C0008093E3008091E800877F8093E8000E947E +:1020D000E50D8091E80080FFFCCF8091E3008068EF +:1020E0008093E300111102C082E001C083E080937D +:1020F000F10186C08058823008F082C08091F401DE +:102100009091F5018C3D53E0950779F583E08A8342 +:102110008AE289834FB7F894DE01139620E03EE00F +:1021200051E2E32FF0E050935700E49120FF03C009 +:10213000E295EF703F5FEF708E2F90E0EA3010F085 +:10214000C79601C0C0968D939D932F5F243149F7A8 +:102150004FBF8091E800877F8093E8006AE270E0DB +:10216000CE0101960E94EC0C14C0AE014F5F5F4F90 +:102170006091F6010E94330CBC01009709F440C045 +:102180009091E800977F9093E80089819A810E945E +:102190004F0D8091E8008B778093E80031C0803844 +:1021A00079F58091E800877F8093E8008091ED01C8 +:1021B0008093F1008091E8008E778093E8000E9480 +:1021C000E50D1EC081111CC09091F4019230C0F445 +:1021D0008091E800877F8093E8009093ED010E9452 +:1021E000E50D8091ED01811106C08091E30087FD2E +:1021F00002C081E001C084E08093F1010E942F0BB6 +:102200008091E80083FF0AC08091E800877F809377 +:10221000E8008091EB0080628093EB00AA960FB6F5 +:10222000F894DEBF0FBECDBFDF91CF911F9108950F +:102230000895CF938091F1018823A1F0C091E90026 +:10224000CF709091EC00892F817090FD80E8C82BB1 +:102250001092E9008091E80083FD0E94C70FCF70C3 +:10226000C093E900CF910895909375018093740114 +:102270000895E0917401F0917501309721F001907B +:10228000F081E02D099480E00895E0917401F091CF +:102290007501309721F00280F381E02D09940895B3 +:1022A000E0917401F0917501309721F00480F5817F +:1022B000E02D0994089520917201309173018217E5 +:1022C000930771F09093730180937201E091740110 +:1022D000F0917501309721F00680F781E02D099487 +:1022E000089520917001309171018217930771F068 +:1022F0009093710180937001E0917401F0917501E8 +:10230000309721F00084F185E02D09940895089517 +:102310000C9487110E94911C0E948C040C94531DF4 +:102320009F92AF92BF92CF92DF92EF92FF920F9364 +:102330001F93CF93DF9300D000D000D0CDB7DEB78E +:102340000E94A4040DE010E0AA24A394B12C902EC6 +:10235000802F0E949205980129583E4F6901F9018A +:10236000F080F826A1F40150110988F78FEF8983D6 +:102370008A831B820E949A1C8160782F9D838C83A4 +:1023800049815A816B818D810E9427122FC09091C3 +:10239000DA0191FF04C08E830E9498058E8125E0AA +:1023A00030E0A501022E01C0440F0A94EAF7E42EA2 +:1023B0004F21C1F029839A828E2191E009F490E0A7 +:1023C0009B830E949A1C8160782F9D838C83498116 +:1023D0005A816B818D810E942712F6018081E82647 +:1023E000E08204C021503109E0F6BDCF0E943A20BE +:1023F000109176010E9439111817B9F00E94391115 +:102400008093760126960FB6F894DEBF0FBECDBF3F +:10241000DF91CF911F910F91FF90EF90DF90CF90C0 +:10242000BF90AF909F900C94320A26960FB6F89406 +:10243000DEBF0FBECDBFDF91CF911F910F91FF90F7 +:10244000EF90DF90CF90BF90AF909F900895CF9383 +:10245000DF93CDB7DEB72B970FB6F894DEBF0FBE74 +:10246000CDBF4F83588769877A878B87DE011196A6 +:1024700086E0FD0111928A95E9F785E0FE01379625 +:1024800001900D928A95E1F749815A816B817C8197 +:102490008D819E810E9470182B960FB6F894DEBF36 +:1024A0000FBECDBFDF91CF910895CF93882309F45C +:1024B000C2C0C82F823859F40E94391181FDBBC0B7 +:1024C00089E30E944A1B0E94171C89E30CC08338D1 +:1024D00079F40E94391180FDAEC083E50E944A1B49 +:1024E0000E94171C83E50E948C1BCF910C94171C33 +:1024F000843859F40E94391182FD9DC087E40E94FE +:102500004A1B0E94171C87E4EECF8CEF8C0F813A98 +:1025100048F48C2F0E947D2281118DC08C2F0E9447 +:102520004A1BE3CF80E28C0F883048F4C77081E00B +:1025300001C0880FCA95EAF70E94D01BD6CF8BE561 +:102540008C0F833078F4C53A29F0C63A31F083E82D +:1025500090E005C081E890E002C082E890E0CF9171 +:102560000C945B1188E58C0F833108F064C0C83A85 +:1025700039F1C93A41F1CA3A49F1CB3A51F1CC3A71 +:1025800059F1CD3A61F1C03B69F1CE3A71F1CF3AE0 +:1025900079F1C13B81F1C23B89F1C33B91F1C43B6D +:1025A00099F1C53BA1F1C63BA9F1C73BB1F1C83BCD +:1025B000B9F1C93BC1F1CA3BC9F180E090E038C034 +:1025C00082EE90E035C089EE90E032C08AEE90E075 +:1025D0002FC085EB90E02CC086EB90E029C087EB04 +:1025E00090E026C08CEC90E023C08DEC90E020C001 +:1025F00083E891E01DC08AE891E01AC082E991E089 +:1026000017C084E991E014C081E292E011C083E236 +:1026100092E00EC084E292E00BC085E292E008C036 +:1026200086E292E005C087E292E002C08AE292E090 +:10263000CF910C947111CF910895882309F44BC068 +:10264000823859F40E94391181FF45C089E30E9404 +:102650004A1B0E94171C89E30CC0833871F40E9446 +:10266000391180FF38C083E50E944A1B0E94171C65 +:1026700083E50E948C1B0C94171C843859F40E942B +:10268000391182FF28C087E40E944A1B0E94171C50 +:1026900087E4EFCF9CEF980F913A58F390E2980FB0 +:1026A000983050F4877091E001C0990F8A95EAF74D +:1026B000892F0E94D61BDFCF9BE5980F933020F423 +:1026C00080E090E00C945B11885A833120F480E024 +:1026D00090E00C9471110895882321F00E94D01B82 +:1026E0000C94171C0895882321F00E94D61B0C948B +:1026F000171C08957F928F929F92AF92BF92CF92B4 +:10270000DF92EF92FF920F931F93CF93DF931F926D +:10271000CDB7DEB77C01C62E772EFC010581029570 +:102720000F70128111110E94ED1B0E94431B882320 +:1027300079F0112369F080E28C0D883048F082E056 +:102740000E942C1B0E94431B91E0D82ED92601C069 +:10275000D12CE72DE295EF70F0E0E05AFF4F0C949A +:10276000B224872D807F072D0F70882311F00295EA +:10277000007F112389F0002309F490C180E28C0DC1 +:10278000883020F4802F0E94D01B03C0802F0E942D +:10279000E01B0E94171C82C18C2D0E941D13002378 +:1027A00009F495C180E28C0D883020F4802F0E94BE +:1027B000D61B03C0802F0E94E61B0E94171C87C1F6 +:1027C000972D907F872D8F70903211F08295807FAA +:1027D000CC2021F0F1E0CF16B1F01EC0112349F05A +:1027E000002309F414C1013009F011C10E94001C3A +:1027F0006EC1002319F0013009F469C189830E9478 +:10280000031C89810AC1112321F0023008F05FC145 +:10281000FEC001115CC101C1112321F0002309F4A4 +:10282000F6C03CC1002309F4F8C03EC1872D86954F +:102830008695837090E0009719F0019761F047C189 +:10284000112321F08C2D972D937002C080E090E031 +:102850000E945B113CC1112321F08C2D972D9370A8 +:1028600002C080E090E00E94711131C18C2D1123D3 +:1028700019F00E94421F02C00E94AA1F0E942F202E +:1028800026C1872D837009F052C0111120C18C2DF3 +:10289000829586958770880F880F9C2D9F70892E52 +:1028A000912CA12CB12C082E04C0880C991CAA1CB8 +:1028B000BB1C0A94D2F7C4FE14C00FE010E020E065 +:1028C00030E0B901A80104C0440F551F661F771FEF +:1028D0008A95D2F7CB01BA01609570958095909555 +:1028E00003C060E070E0CB01272D2695269523706C +:1028F00030E02230310569F02330310589F0682954 +:1029000079298A299B292130310571F00E94B81953 +:10291000DEC0682979298A299B290E94D419D7C049 +:102920000E94B819C501B4010E949C19D0C011239E +:1029300019F0872D817001C08695882309F4C7C0DE +:102940008C2D829586958770880F880F9C2D9F709F +:10295000892E912CA12CB12C082E04C0880C991C16 +:10296000AA1CBB1C0A94D2F7C4FE14C00FE010E0EE +:1029700020E030E0B901A80104C0440F551F661FD4 +:10298000771F8A95D2F7CB01BA0160957095809533 +:10299000909503C060E070E0CB01272D2695269529 +:1029A0002370422F50E04230510569F04330510509 +:1029B00089F0682979298A299B294130510571F0CC +:1029C0000E94921A84C0682979298A299B290E9429 +:1029D000AE1A7DC00E94921AC501B4010E94761AF7 +:1029E00076C08C2D90E0FC01E05EF109E531F10547 +:1029F00008F050C0E059FF4F0C94B2240C2D0F701A +:102A0000872D8F71112331F00E940F1A802F0E94A1 +:102A10006C135DC00E94301A802F0E94731357C040 +:102A2000112339F0011153C0872D8F710E94551A5F +:102A30004EC0023008F04BC0F7CF112339F0872D7C +:102A40008F710E940F1A43C01123C9F3872D8F7114 +:102A50000E94301A3CC0112329F0872D8F710E94EB +:102A6000FA1935C00E94F01932C0112351F0172D08 +:102A70001F71812F0E940F1A63E0812F0E94231B78 +:102A800026C081E00E942C1B023008F182E00E94E7 +:102A90002C1B1DC0112331F0002389F28C2D0E94C4 +:102AA000551215C0002391F28C2D0E941D130FC0EA +:102AB000472D4F706C2DC7010E946E060E9414199D +:102AC00006C0472D4F706C2DC7010E944107DD20C5 +:102AD000F9F00E941F1B80FD1BC0F70112820E94AB +:102AE000191B0E940F1AC7010E9497150E94191BFB +:102AF0000F90DF91CF911F910F91FF90EF90DF909A +:102B0000CF90BF90AF909F908F907F900C94301A91 +:102B10000F90DF91CF911F910F91FF90EF90DF9079 +:102B2000CF90BF90AF909F908F907F9008950F931C +:102B30001F93CF93DF93EC01888199812B813C8196 +:102B4000232BB9F09F3F11F48F3F99F0CE010E94E3 +:102B50009906882371F0688179818A810E94151B0A +:102B60008C010E94CA1A0E949119B801CE010E94DC +:102B70007A13DF91CF911F910F9108950E94ED1B61 +:102B80000E94FD1B0E94C21B0E94171C0E94E02095 +:102B90000E942F2080E090E00E945B1180E090E096 +:102BA0000C9471110E94DD1B0C94BE150E940A1B2F +:102BB000292F22952F7030E02C3031054CF42A302B +:102BC00031056CF42250310922303105A8F407C0D8 +:102BD0002C30310569F02F30310551F00DC0803FA8 +:102BE00069F018F4803E40F409C0843F29F406C01F +:102BF00093FB882780F9089580E0089581E0089587 +:102C0000CF93DF9300D000D01F92CDB7DEB70F90E7 +:102C10000F900F900F900F90DF91CF910895CF9369 +:102C2000DF9300D000D000D0CDB7DEB726960FB628 +:102C3000F894DEBF0FBECDBFDF91CF9108951F93F3 +:102C4000CF93DF93C091850116E080918601C8176C +:102C500099F0D0E01C9FF0011D9FF00D1124E95761 +:102C6000FE4F4081518162817381848195810E94F0 +:102C70000F162196C770E9CFDF91CF911F9108956C +:102C80004091B7015091B8016091B9017091BA01BA +:102C90008091BB019091BC010C940F168091BC01F6 +:102CA00082958F7009F054C08091B901882309F48E +:102CB0004FC080918501A09186016091B70170910C +:102CC000B8014091BA015091BB01B6E08A1709F4EE +:102CD0003FC090E041155105C1F17F3F11F46F3FB6 +:102CE000A1F1B89FF001B99FF00D1124E957FE4FF3 +:102CF000218172132AC02081621327C022812111F1 +:102D000024C0238134812417350710F42150310960 +:102D1000241B350B283C3105C0F42091BC012F70D9 +:102D200020612093BC0126E0289FF001299FF00D2F +:102D30001124E457FE4F80818F708061808387EB80 +:102D400091E00E9497150C941F1601968770BECFD4 +:102D50000895CF92DF92EF92FF920F931F93CF933C +:102D6000DF93CDB7DEB762970FB6F894DEBF0FBE24 +:102D7000CDBF8C0185E0F801DE011D9601900D921A +:102D80008A95E1F7D8014C9111965C9111971296B2 +:102D90006C9112971396CD90DC9014973091B701F7 +:102DA0007091B8018091BA019091BB01009709F42C +:102DB0006BC17F3F19F43F3F09F466C1E090B90150 +:102DC000EE2009F4C0C02091BC01C816D90628F035 +:102DD000F601E81BF90BCF0104C0809590958C0D8E +:102DE0009D1DFF24F394883C910578F0F12C207F01 +:102DF00009F0C6C07C2DD98AC88A89890E9400162C +:102E000087EB91E00E949715B1C0822F807F09F077 +:102E100046C0751314C0341312C0611110C02F7056 +:102E200020612093BC010E94401687EB91E00E9434 +:102E300097158091BC01D80115968C932EC0CD2892 +:102E400019F15F3F11F44F3FF9F0F62E61111CC0EC +:102E5000809185012091860136E0821709F45AC0DD +:102E600090E0389FF001399FF00D1124E957FE4F93 +:102E70007181571306C07081471303C072817111AD +:102E800003C001968770E9CFF62E662309F418C1B6 +:102E90008091BC0181608093BC01F12C11C175133C +:102EA00008C0341306C0611104C08091BC01D80170 +:102EB000C3C04D875E878D859E856A8B0E94D6151F +:102EC0006A898823E1F16623D1F12091BC01822F28 +:102ED00082958F7090E0029774F08091B701909185 +:102EE000B80198878F831986DB86CA862C87CE0126 +:102EF00007960E94971586E0F801A7EBB1E00190D4 +:102F00000D928A95E1F70E944E160E944016FF240A +:102F1000F394D6C04D875E878D859E850E940A1BDF +:102F2000292F22952F7030E0223031050CF0BCC0E3 +:102F30009F7009F0B6C0805E883008F4C1C0C80137 +:102F40000E949715E4CFC816D90608F453C0F601BD +:102F5000E81BF90BCF01883C910508F450C0F12C17 +:102F60007C2DD98AC88A89890E940016E7EBF1E096 +:102F700086E0DF011D928A95E9F70E944016A0C005 +:102F8000751314C0341312C0611110C08091BC01BC +:102F9000F8018583C8010E94971586E0E7EBF1E010 +:102FA000DF011D928A95E9F7FE2C8AC04D875E8766 +:102FB0008D859E856A8B0E94D6156A89882309F4BF +:102FC000BECF662309F4BBCF2091BC01822F82952E +:102FD0008F7090E002970CF48ECF8091B7019091A2 +:102FE000B8019A8389831B82DD82CC822E83CE0135 +:102FF00001967FCF809590958C0D9D1DACCFF62EC0 +:10300000662309F49CCF75132EC034132CC0209175 +:10301000BC0120FD1FC0822F82958F70D9F0D8018E +:1030200015962C9315978F3049F08F5F982F9295B6 +:10303000907F822F8F70892B15968C93C8010E94E8 +:10304000971586E0F801A7EBB1E001900D928A9503 +:10305000E1F793CF86E0F801A7EBB1E001900D9284 +:103060008A95E1F72DC04D875E878D859E850E94EC +:10307000D615811140CF8091BC0181608093BC0145 +:10308000C8010E9497151CC0662309F458CF4D87CC +:103090005E878D859E850E94D615882309F44FCFC3 +:1030A0002ACF811148CF0CC0243031050CF047CF16 +:1030B0009F7009F440CFF8019581907F09F03BCFD4 +:1030C0008F2D62960FB6F894DEBF0FBECDBFDF9195 +:1030D000CF911F910F91FF90EF90DF90CF900895C7 +:1030E0001F93CF93DF93CDB7DEB72C970FB6F8942D +:1030F000DEBF0FBECDBF4F83588769877A878B8726 +:103100009C87CE0107960E94A916882369F08F81BB +:1031100098852A853B85232BF1F19F3F09F063C0F9 +:103120008F3F09F060C037C086E0FE013796DE01B0 +:10313000119601900D928A95E1F76F817885EA8565 +:10314000FB85309741F17F3F11F46F3F21F12091D2 +:10315000860130E0C9010196877099274091850169 +:1031600050E08417950709F447C069837A83FD838B +:10317000EC8396E0929FD001939FB00D1124A95744 +:10318000BE4FFE01319601900D929A95E1F7809322 +:1031900086010E941F1616E080918501909186019C +:1031A0008917C1F1189FC001112489579E4F0E94B1 +:1031B000A916882379F1E09185011E9FF001112461 +:1031C000E957FE4F408151816281738184819581ED +:1031D0000E940F168091850190E0019687709927D3 +:1031E00080938501D9CF4F81588569857A858B85F4 +:1031F0009C850E940F16CFCF0E94D2151092860197 +:1032000010928501E7EBF1E086E0DF011D928A95DF +:10321000E9F7C1CF2C960FB6F894DEBF0FBECDBF35 +:10322000DF91CF911F910895EF92FF920F931F931B +:10323000CF93DF938C01009709F46CC0F12CEE243E +:10324000E394E8012196F8018491843740F48430B6 +:1032500008F051C0813081F0823019F15BC08537B0 +:1032600009F444C0A8F19CE7980F903708F052C0C9 +:103270008F770E941D1341C00E5F1F4FFE01C49146 +:1032800080E28C0F883048F4C7708E2D01C0880F03 +:10329000CA95EAF70E94F01B14C08C2F0E945512A9 +:1032A0002DC00E5F1F4FFE01C49180E28C0F88304D +:1032B00058F4C7708E2D01C0880FCA95EAF70E9496 +:1032C000F61B0E94171C1AC08C2F0E941D1316C0DB +:1032D0000E5F1F4FFE01C491CC2381F08FE99FE068 +:1032E0000197F1F700C00000C150F6CF0E5F1F4FED +:1032F000FE01F49003C00E9455128E018F2D882389 +:1033000009F49FCFEFE9FFE03197F1F700C000002B +:103310008150F5CFDF91CF911F910F91FF90EF90EA +:10332000089508956093C1017093C2018093C30111 +:103330009093C4010C94BE150F931F930091C1018B +:103340001091C2012091C3013091C401DC01CB0175 +:10335000802B912BA22BB32B8093C1019093C201A0 +:10336000A093C301B093C4011F910F910C94BE159B +:103370000F931F930091C1011091C2012091C301CD +:103380003091C401DC01CB0180239123A223B3231C +:103390008093C1019093C201A093C301B093C40173 +:1033A0001F910F910C94BE150F931F930091C101B3 +:1033B0001091C2012091C3013091C401DC01CB0105 +:1033C00080279127A227B3278093C1019093C20140 +:1033D000A093C301B093C4011F910F910C94BE152B +:1033E0001092BD011092BE011092BF011092C00157 +:1033F0000C94BE1541E050E060E070E004C0440F62 +:10340000551F661F771F8A95D2F74093BD015093D1 +:10341000BE016093BF017093C0010C94BE1541E0E2 +:1034200050E060E070E004C0440F551F661F771F36 +:103430008A95D2F78091BD019091BE01A091BF0104 +:10344000B091C001482B592B6A2B7B2B4093BD01B7 +:103450005093BE016093BF017093C0010C94BE15E0 +:1034600041E050E060E070E004C0440F551F661F6B +:10347000771F8A95D2F74095509560957095809109 +:10348000BD019091BE01A091BF01B091C001482340 +:1034900059236A237B234093BD015093BE0160935F +:1034A000BF017093C0010C94BE1541E050E060E094 +:1034B00070E004C0440F551F661F771F8A95D2F72E +:1034C0008091BD019091BE01A091BF01B091C0015A +:1034D000482759276A277B274093BD015093BE0197 +:1034E0006093BF017093C0010C94BE150F931F939E +:1034F0000091BD011091BE012091BF013091C0012A +:10350000DC01CB01802B912BA22BB32B8093BD012F +:103510009093BE01A093BF01B093C0011F910F9182 +:103520000C94BE150F931F930091BD011091BE0125 +:103530002091BF013091C001DC01CB018023912398 +:10354000A223B3238093BD019093BE01A093BF013A +:10355000B093C0011F910F910C94BE150F931F9350 +:103560000091BD011091BE012091BF013091C001B9 +:10357000DC01CB0180279127A227B3278093BD01CF +:103580009093BE01A093BF01B093C0011F910F9112 +:103590000C94BE150895CF92DF92EF92FF920F9395 +:1035A0001F93CF93DF938C01C090C101D090C201D3 +:1035B000E090C301F090C4018091BD019091BE01E3 +:1035C000A091BF01B091C001C82AD92AEA2AFB2ADA +:1035D000CFE1D0E0D701C6010C2E04C0B695A79567 +:1035E000979587950A94D2F780FF06C0B8018C2F73 +:1035F0000E949709019721F4219760F780E001C0AC +:103600008C2FDF91CF911F910F91FF90EF90DF9062 +:10361000CF900895CF93DF93EC010E94CB1ABE01A7 +:103620000E949709DF91CF910895CB010E940A1B58 +:1036300008958091C501859585958595089580911A +:10364000C5018770089598E0899F90011124262B69 +:103650002093C5010C940F1A2091C50180958223F7 +:103660008093C501982F977069F430E0482F552753 +:1036700047FD50952417350729F085958595859543 +:103680000C94301A08959091C501977081E009F467 +:1036900080E0089590910C01992321F090910D0103 +:1036A000911109C020910E0130910F01F90132965C +:1036B0009FEF40E01FC0982F9695969596959F3066 +:1036C00050F5E0910E01F0910F01E90FF11D8770A7 +:1036D00021E030E0A90102C0440F551F8A95E2F7AE +:1036E000CA019181892B818308959F3F39F04F5FF3 +:1036F0004E3041F051915813F8CF0DC05111F7CF12 +:10370000942FF5CF9F3F39F0F901E90FF11D97FD97 +:10371000FA9582830895089590910C01992321F0E0 +:1037200090910D01911109C020910E0130910F016E +:10373000F9013296205F3F4F1FC0982F96959695BE +:1037400096959F30F0F4E0910E01F0910F01E90F92 +:10375000F11D877021E030E0A90102C0440F551F20 +:103760008A95E2F7CA018095918189238183089522 +:103770003196E217F30729F090819813F9CF108260 +:10378000F7CF089581E090E0E0910E01F0910F01F4 +:10379000E80FF91F1082019680319105A9F708956D +:1037A0009091D901892B8093D901089580959091AA +:1037B000D90189238093D90108951092D9010895E0 +:1037C0009091D801892B8093D8010895809590918C +:1037D000D80189238093D80108951092D8010895C3 +:1037E0009091D701892B8093D7010895809590916E +:1037F000D70189238093D70108951092D7010895A6 +:103800008093C60108951092C601089580910E011B +:1038100090910F01FC0131969C01205F3F4F80E0A9 +:10382000919191118F5FE217F307D1F70895E0911D +:103830000E01F0910F018091D9018083E0910E017A +:10384000F0910F0190818091D801892B8083E091C4 +:103850000E01F0910F0190818091D701892B808317 +:103860008091C601882361F0E0910E01F0910F0173 +:103870009081892B80830E94061C81111092C601C1 +:1038800080910E0190910F010C94451120E000975A +:1038900039F0AC0141505109842395232F5FF7CFB4 +:1038A000822F08958091F101843021F11092DB0183 +:1038B00020E488E190E00FB6F894A895809360002A +:1038C0000FBE2093600080E00E94320A83B7817FA0 +:1038D000846083BF83B7816083BF7894889583B702 +:1038E0008E7F83BF88E10FB6F894809360001092BA +:1038F00060000FBE0895089508950E947B1C0E94E9 +:10390000A4040E947C1C0E94990591E0811101C0D1 +:1039100090E0892F08950E94D2150E9439110C94CD +:10392000320A82E084BD93E095BD9AEF97BD809303 +:103930006E0008952FB7F8948091DC019091DD011D +:10394000A091DE01B091DF012FBF0895CF92DF92E9 +:10395000EF92FF920F931F932FB7F8944091DC01E1 +:103960005091DD016091DE017091DF012FBF6A018E +:103970007B01EE24FF248C0120E030E0C016D1064C +:10398000E206F30610F4415051099A01281B390B45 +:10399000C9011F910F91FF90EF90DF90CF90089594 +:1039A0001F920F920FB60F9211248F939F93AF9394 +:1039B000BF938091DC019091DD01A091DE01B09177 +:1039C000DF010196A11DB11D8093DC019093DD0103 +:1039D000A093DE01B093DF01BF91AF919F918F91D2 +:1039E0000F900FBE0F901F9018950E94360EF894FE +:1039F0002FEF87EA91E6215080409040E1F700C028 +:103A0000000087E090EBDC018093FB019093FC01C8 +:103A1000A093FD01B093FE019CE088E10FB6F894FD +:103A2000A895809360000FBE90936000FFCFEF9247 +:103A3000FF920F931F93CF93DF93D82FCDE08C2F5E +:103A40000E94920505E010E0E82EF12CC701002E3F +:103A500002C0959587950A94E2F780FF09C0602F10 +:103A60007C2F80E00E944207D81302C081E006C08C +:103A70000150110958F7C15010F780E0DF91CF9144 +:103A80001F910F91FF90EF900895CF93C82F8CE274 +:103A90000E94171D882321F08C2FCF910C94171DA5 +:103AA00080E0CF910895CF930E949A1E811102C0A9 +:103AB0000E94801EC5E6C15049F00E94A4048FE315 +:103AC0009CE90197F1F700C00000F5CF89E20E9460 +:103AD000451D811113C18AE20E94451D81110E947A +:103AE000801E85E00E94451D81110E94F51C0E94E8 +:103AF000A51E8093DA0187E00E94451D8823A9F165 +:103B00008BE10E94451D882351F08091DA0181FBF1 +:103B1000222720F991E0922790FB81F90EC08EE0D8 +:103B20000E94451D882361F08091DA0182FB2227E3 +:103B300020F991E0922790FB82F98093DA0115C079 +:103B400080E10E94451D9091DA01882341F093FBAA +:103B5000222720F981E0822780FB93F904C0892F76 +:103B6000809580FB90F99093DA018091DA010E94B0 +:103B7000A91E0E94B71E8093FA0180EE0E94451D87 +:103B8000882341F08091FA01982F909590FB80F95D +:103B90008093FA0189E30E94451D882359F08091A2 +:103BA000FA0181FB222720F991E0922790FB81F90D +:103BB0008093FA0182EE0E94451D882359F080917E +:103BC000FA0182FB222720F991E0922790FB82F9EB +:103BD0008093FA0186EE0E94451D882359F080915A +:103BE000FA0183FB222720F991E0922790FB83F9C9 +:103BF0008093FA0183EE0E94451D882359F080913D +:103C0000FA0184FB222720F991E0922790FB84F9A6 +:103C10008093FA0185E30E94451D882359F0809125 +:103C2000FA0185FB222720F991E0922790FB85F984 +:103C30008093FA0181E30E94451D882359F0809109 +:103C4000FA0186FB222720F991E0922790FB86F962 +:103C50008093FA0181E10E94451D882359F08091EB +:103C6000FA0187FB222720F991E0922790FB87F940 +:103C70008093FA018091FA010E94BB1E8091FA01A3 +:103C800087FB882780F980930D0187E20E94451DFC +:103C9000C82F8EE10E94451D8111C2608FE10E94F4 +:103CA000451D8111C46080E20E94451D8111C860DC +:103CB00081E20E94451D8111C06182E20E94451D82 +:103CC0008111C06283E20E94451D8111C06484E2BB +:103CD0000E94451D882311F0C06802C0CC2329F042 +:103CE0008C2F0E94B21E6C2F03C00E94AE1E682F44 +:103CF00070E080E090E0CF910C949219CF910895FC +:103D00006DEE7EEF80E090E00E94EC2460E082E0C7 +:103D100090E00E94DA2460E083E090E00E94DA24E0 +:103D200060E084E090E00E94DA2460E085E090E0CA +:103D30000C94DA2480E090E00E94D42421E08D3EAF +:103D40009E4F09F020E0822F089582E090E00C94CD +:103D5000CC24682F82E090E00C94DA2483E090E099 +:103D60000C94CC24682F83E090E00C94DA2484E057 +:103D700090E00C94CC24682F84E090E00C94DA243A +:103D80008091E20180FF0BC06091130185E0689F84 +:103D9000B001112475956795759567952BC081FFC6 +:103DA00009C06091130185E0689FB00111247595E9 +:103DB000679520C082FF07C06091130185E0689F6E +:103DC000B001112417C09091E3019923D1F06091C3 +:103DD0001201961788F72091130185E0289F900122 +:103DE0001124929FA001939F500D112470E0CA01ED +:103DF0000E949E246038710540F46115710539F008 +:103E000002C065E070E0862F08958FE7089581E095 +:103E100008958091E20180FF08C06091110170E077 +:103E2000759567957595679521C081FF06C060916E +:103E3000110170E07595679519C082FF04C060910B +:103E4000110170E010C09091E3019923C1F06091DD +:103E500010019617A0F780911101899FC0011124CC +:103E600070E00E949E246038710528F46115710588 +:103E700021F0862F08958FE7089581E0089561E08D +:103E800070E0F4CF803F21F40E94C01E819504C0F1 +:103E9000813F29F40E94C01E8093E6010895823F6D +:103EA00021F40E94C01E819504C0833F29F40E9422 +:103EB000C01E8093E5010895893F19F40E94091FEF +:103EC00005C08A3F31F40E94091F81958093E70164 +:103ED00008958B3F21F40E94091F819504C08C3FF7 +:103EE00029F40E94091F8093E8010895843F21F47A +:103EF0008091E401816017C0853F21F48091E40145 +:103F0000826011C0863F21F48091E40184600BC07F +:103F1000873F21F48091E401886005C0883F31F437 +:103F20008091E40180618093E40108958D3F21F444 +:103F30008091E20181600BC08E3F21F48091E2010B +:103F4000826005C08F3F29F48091E20184608093F4 +:103F5000E2010895803F39F48091E60187FF6CC04B +:103F60001092E60169C0813F29F48091E60118169C +:103F7000BCF362C09091E501823F29F497FF5CC0D9 +:103F80001092E50159C0833F19F41916CCF354C0BF +:103F9000893F41F48091E70118160CF04DC0109252 +:103FA000E7014AC08A3F29F48091E70187FF44C0B6 +:103FB000F6CF8B3F39F48091E80187FF3DC0109226 +:103FC000E8013AC08C3F29F48091E8011816BCF34F +:103FD00033C0843F21F48091E4018E7F17C0853F78 +:103FE00021F48091E4018D7F11C0863F21F48091FE +:103FF000E4018B7F0BC0873F21F48091E401877F30 +:1040000005C0883F31F48091E4018F7E8093E40104 +:1040100013C08D3F21F48091E2018E7F0BC08E3F53 +:1040200021F48091E2018D7F05C08F3F29F48091BA +:10403000E2018B7F8093E2018091E50181110EC046 +:104040008091E60181110AC08091E701811106C0CB +:104050008091E801811102C01092E301089584EE7D +:1040600091E00E9450110E949A1C9093E10180936C +:10407000E00108951F93CF93DF938091E001909129 +:10408000E1010E94A61CAC019091E301992321F06B +:104090002091140130E006C0209115018AE0289F8C +:1040A000900111244217530708F486C08091E5015E +:1040B000C091E601D091E7011091E801811107C09C +:1040C000C11176C0D11174C0111172C075C09F3F6B +:1040D00019F09F5F9093E301181624F40E94C01E0C +:1040E0008093E5018091E50187FF05C00E94C01E15 +:1040F00081958093E5011C1624F40E94C01E8093D4 +:10410000E6018091E60187FF05C00E94C01E8195EF +:104110008093E6016091E501662339F1C091E601E3 +:10412000CC2319F1772767FD7095872F972F0E9471 +:10413000AF2323E333E343E35FE30E9413240E94AE +:104140007C236093E5016C2F772767FD7095872F9F +:10415000972F0E94AF2323E333E343E35FE30E94FF +:1041600013240E947C236093E6011D1624F40E9410 +:10417000091F8093E7018091E70187FF05C00E9436 +:10418000091F81958093E701111624F40E94091FED +:104190008093E8018091E80187FF05C00E94091F14 +:1041A00081958093E801DF91CF911F910C942F208E +:1041B0009F3F09F08ECF96CFDF91CF911F91089549 +:1041C000E4EEF1E085E0DF011D928A95E9F71092B7 +:1041D000E3011092E2010895833081F128F48130E7 +:1041E00059F08230D1F00895853009F449C0B8F112 +:1041F000863009F456C0089580911501262F30E0CD +:10420000280F311D2F3F310524F4680F60931501ED +:1042100008958FEF80931501089580911401262F42 +:1042200030E0280F311D2F3F310524F4680F6093D3 +:10423000140108958FEF8093140108958091130164 +:10424000262F30E0280F311D2F3F310524F4680F51 +:104250006093130108958FEF809313010895809167 +:104260001201262F30E0280F311D2F3F310524F495 +:10427000680F6093120108958FEF809312010895E3 +:1042800080911101262F30E0280F311D2F3F31057D +:1042900024F4680F6093110108958FEF809311014A +:1042A000089580911001262F30E0280F311D2F3FF7 +:1042B000310524F4680F6093100108958FEF809307 +:1042C00010010895833011F128F4813049F08230D3 +:1042D00091F00895853081F120F18630C1F1089583 +:1042E00080911501681720F4861B809315010895AD +:1042F00010921501089580911401681720F4861B0F +:10430000809314010895109214010895809113016F +:10431000681720F4861B80931301089510921301EF +:10432000089580911201681720F4861B8093120172 +:10433000089510921201089580911101681720F4D8 +:10434000861B8093110108951092110108958091A8 +:104350001001681720F4861B8093100108951092B5 +:10436000100108950F931F938D3109F46BC008F06D +:104370003FC08E3009F47FC0C0F4873009F469C0B3 +:1043800068F4863009F0B1C08091DA01817F8E7FB8 +:104390008093DA0181E08093EA01A8C0883009F4B3 +:1043A000A2C08B3009F49FC0A0C0863109F49BC025 +:1043B00078F4803109F472C0813109F096C00E940E +:1043C000D21590910D0181E0892780930D018BC05A +:1043D000893109F488C08B3109F087C08091DA01F6 +:1043E00081FB222720F991E0922790FB81F94CC0B4 +:1043F000853309F470C048F4873209F46CC008F4BE +:1044000059C0893209F467C070C0833438F48A33E4 +:1044100008F04EC0883309F466C067C0833409F4DD +:104420005AC0883409F061C00E94D2150FEF13ED15 +:1044300020E3015010402040E1F700C000000E943E +:10444000F51C51C00E9436230E9439110E94320A85 +:104450004AC09091DA01892F8095817080FB90F994 +:1044600029F0966098609093DA0140C0997F977F19 +:104470009093DA0138C08091DA0182FB222720F97B +:1044800091E0922790FB82F98093DA01992359F108 +:104490008091DA0181608093DA0125C08091DA0190 +:1044A00083FB222720F991E0922790FB83F9ECCF40 +:1044B000895301C08D5141E050E060E070E08A0115 +:1044C0009B0104C0000F111F221F331F8A95D2F7D2 +:1044D000C901B80104C061E070E080E090E00E9492 +:1044E00092190E94D21581E001C080E01F910F91C6 +:1044F000089580E0089580E00895CF93C82F8091BB +:10450000EA01813079F018F08230E9F187C0E0915A +:104510000E01F0910F018081813169F0823209F042 +:104520007FC009C0E0910E01F0910F0180818131BF +:1045300011F0823261F48C2F0E947922811104C023 +:104540008C2F0E94B2211DC081E090E01AC08C2FF8 +:104550000E947B22811114C0C43179F048F4CB3021 +:1045600079F0C03109F060C082E08093EA0108C0B0 +:10457000C93219F0C83321F057C01092EA0154C073 +:1045800081E0817053C0C93289F118F5C43171F1ED +:10459000A8F4C73009F046C08AE08093150194E181 +:1045A0009093140193E0909313018093120188E09B +:1045B0008093110188E28093100134C0CE51C6303F +:1045C00088F5EC2FF0E0E65DFE4F80818093E901F5 +:1045D00029C0CE34E9F020F4CB3421F56AE013C0D1 +:1045E000C13579F0C235F1F461E00DC08091E90187 +:1045F000882319F01092E90115C081E08093EA0147 +:1046000015C061E006C08091E9010E94EC200AC05B +:104610006AE08091E9010E94622104C01092EA01DF +:1046200080E004C081E002C080E0ABCFCF9108956C +:10463000E1E8F0E080818860808380818160808310 +:104640008FB7F89493E09093890090ED9093880051 +:104650008FBF0895EFE6F0E0808182608083089547 +:10466000EFE6F0E080818D7F80830895EFE6F0E053 +:10467000908182E08927808308951F920F920FB660 +:104680000F9211242F933F934F935F936F937F93D8 +:104690008F939F93AF93BF93EF93FF938091EB0121 +:1046A0009091EC0101969093EC018093EB018111C4 +:1046B00003C082E00E94320AE091EC01E695E695A3 +:1046C000F0E0EB59F84FE4918091EB018E1303C0B9 +:1046D00080E00E94320AFF91EF91BF91AF919F91CC +:1046E0008F917F916F915F914F913F912F910F909B +:1046F0000FBE0F901F90189504D06894B1118DC013 +:10470000089570D088F09F5790F0B92F9927B7512E +:10471000A0F0D1F0660F771F881F991F1AF0BA9585 +:10472000C9F712C0B13081F077D0B1E0089574C0FC +:10473000672F782F8827B85F39F0B93FCCF386957B +:1047400077956795B395D9F73EF4909580957095D8 +:1047500061957F4F8F4F9F4F0895E89409C097FB55 +:104760003EF490958095709561957F4F8F4F9F4F48 +:104770009923A9F0F92F96E9BB279395F69587958C +:1047800077956795B795F111F8CFFAF4BB0F11F44F +:1047900060FF1BC06F5F7F4F8F4F9F4F16C08823F6 +:1047A00011F096E911C0772321F09EE8872F762F2C +:1047B00005C0662371F096E8862F70E060E02AF06D +:1047C0009A95660F771F881FDAF7880F9695879559 +:1047D00097F9089557FD9058440F551F59F05F3FC2 +:1047E00071F04795880F97FB991F61F09F3F79F013 +:1047F00087950895121613061406551FF2CF469595 +:10480000F1DF08C0161617061806991FF1CF869516 +:104810007105610508940895E894BB2766277727FA +:10482000CB0197F908950BD078C069D028F06ED0ED +:1048300018F0952309F05AC05FC01124EECFCADFEB +:10484000A0F3959FD1F3950F50E0551F629FF001A3 +:10485000729FBB27F00DB11D639FAA27F00DB11DFC +:10486000AA1F649F6627B00DA11D661F829F222785 +:10487000B00DA11D621F739FB00DA11D621F839F0C +:10488000A00D611D221F749F3327A00D611D231FE2 +:10489000849F600D211D822F762F6A2F11249F5730 +:1048A00050408AF0E1F088234AF0EE0FFF1FBB1F53 +:1048B000661F771F881F91505040A9F79E3F5105F2 +:1048C00070F014C0AACF5F3FECF3983EDCF38695FE +:1048D00077956795B795F795E7959F5FC1F7FE2B9D +:1048E000880F911D9695879597F9089597F99F6779 +:1048F00080E870E060E008959FEF80EC0895002468 +:104900000A941616170618060906089500240A9434 +:1049100012161306140605060895092E0394000CBA +:1049200011F4882352F0BB0F40F4BF2B11F460FF49 +:1049300004C06F5F7F4F8F4F9F4F089597FB072EE7 +:1049400016F4009407D077FD09D00E94B82407FC24 +:1049500005D03EF4909581959F4F0895709561958F +:104960007F4F0895EE0FFF1F0590F491E02D0994FD +:10497000AA1BBB1B51E107C0AA1FBB1FA617B70785 +:1049800010F0A61BB70B881F991F5A95A9F78095A1 +:104990009095BC01CD010895F999FECF92BD81BDDE +:1049A000F89A992780B50895A8E1B0E042E050E078 +:1049B0000C94F424262FF999FECF92BD81BDF89A6C +:1049C000019700B4021639F01FBA20BD0FB6F89453 +:1049D000FA9AF99A0FBE08950196272F0E94DB24B8 +:1049E0000C94DA24DC01CB01FC01F999FECF06C05E +:1049F000F2BDE1BDF89A319600B40D92415050409D +:084A0000B8F70895F894FFCF08 +:104A08000220340AC20A9F0A6B0A370A0101C70149 +:104A180028080A03140A404D36392507D806A20685 +:104A28006906FC0515062E0647060102030405065D +:044A38000708090062 +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/bepo/keymap.c b/keyboards/ergodox_ez/keymaps/bepo/keymap.c new file mode 100644 index 000000000..921a94d63 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/bepo/keymap.c @@ -0,0 +1,311 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_bepo.h" + +#define BASE 0 // default layer +#define QWER 1 // qwerty compat layer +#define SQWER 2 // shifted qwerty compat layer +#define AQWER 3 // alted qwerty compat layer +#define FNAV 4 // function / navigation keys +#define NUM 5 // numeric keypad keys +#define MSE 6 // mouse keys + +#define KP_00 0 +#define CA_Fx 1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Base layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | $ | " | < | > | ( | ) |Delete| |ScroLo| @ | + | - | / | * | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | % | B |E_ACUT| P | O |E_GRAV|Backsp| |CapsLo| ^ | V | D | L | J | Z | + * |--------+------+------+------+------+------| ace | | |------+------+------+------+------+--------| + * | W | A | U | I | E | , |------| |------| C | T | S | R | N | M | + * |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------| + * | E_CIRC |A_GRAV| Y | X | . | K | | | | ' | Q | G | H | F | C_CEDIL| + * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' + * |QWERTY| |LSuper| LCtrl| LAlt| |Escape| L_Mse| | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause| + * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' + * | | | L_Num| | CA_Fx| | | + * | Space|LShift|------| |------|RShift|Enter | + * | | |L_FNav| |L_FNav| | | + * `--------------------' `--------------------' + */ +[BASE] = KEYMAP( +// Left hand +BP_DOLLAR, BP_DQOT, BP_LGIL, BP_RGIL, BP_LPRN, BP_RPRN, KC_DEL, +BP_PERCENT, BP_B, BP_E_ACUTE, BP_P, BP_O, BP_E_GRAVE, KC_BSPC, +BP_W, BP_A, BP_U, BP_I, BP_E, BP_COMMA, +BP_ECRC, BP_A_GRAVE, BP_Y, BP_X, BP_DOT, BP_K, KC_TAB, +TG(QWER), KC_NO, KC_LGUI, KC_LCTL, KC_LALT, + KC_ESC, MO(MSE), + MO(NUM), + KC_SPC, KC_LSHIFT, MO(FNAV), +// Right hand + KC_SLCK, BP_AT, BP_PLUS, BP_MINUS, BP_SLASH, BP_ASTR, BP_EQUAL, + KC_CAPSLOCK, BP_DCRC, BP_V, BP_D, BP_L, BP_J, BP_Z, + BP_C, BP_T, BP_S, BP_R, BP_N, BP_M, + KC_NUMLOCK, BP_APOS, BP_Q, BP_G, BP_H, BP_F, BP_CCED, + BP_ALGR, KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE, +KC_NO, KC_INS, +M(CA_Fx), +MO(FNAV), KC_RSHIFT, KC_ENTER), +/* Keymap 1: QWERTY system compatibility layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | $ | " | < | > | ( | ) |Delete| |ScroLo| @ | + | - | / | * | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | % | b | e | p | o | e |Backsp| |CapsLo| ^ | v | d | l | j | z | + * |--------+------+------+------+------+------| ace | | |------+------+------+------+------+--------| + * | w | a | u | i | e | , |------| |------| c | t | s | r | n | m | + * |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------| + * | e | a | y | x | . | k | | | | ' | q | g | h | f | c | + * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' + * | BEPO | |LSuper| LCtrl| LAlt| |Escape| L_Mse| | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause| + * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' + * | | | L_Num| | | | | + * | Space|LShift|------| |------|RShift|Enter | + * | | |L_FNav| |L_FNav| | | + * `--------------------' `--------------------' + */ +[QWER] = KEYMAP( +// Left hand +KC_DOLLAR, S(KC_QUOT), S(KC_COMM), S(KC_DOT), KC_LPRN, KC_RPRN, KC_DEL, +KC_PERCENT, KC_B, KC_E, KC_P, KC_O, KC_E, KC_BSPC, +KC_W, KC_A, KC_U, KC_I, KC_E, KC_COMMA, +KC_E, KC_A, KC_Y, KC_X, KC_DOT, KC_K, KC_TAB, +KC_TRNS, KC_NO, KC_LGUI, KC_LCTL, KC_LALT, + KC_ESC, MO(MSE), + MO(NUM), + KC_SPC, MO(SQWER), MO(FNAV), +// Right hand + KC_SLCK, KC_AT, KC_PLUS, KC_MINUS, KC_SLASH, KC_ASTR, KC_EQUAL, + KC_CAPSLOCK, KC_CIRC, KC_V, KC_D, KC_L, KC_J, KC_Z, + KC_C, KC_T, KC_S, KC_R, KC_N, KC_M, + KC_NUMLOCK, KC_QUOT, KC_Q, KC_G, KC_H, KC_F, KC_C, + MO(AQWER), KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE, +KC_NO, KC_INS, +KC_TRNS, +MO(FNAV), MO(SQWER), KC_ENTER), +/* Keymap 2: QWERTY shifted system compatibility layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | # | 1 | 2 | 3 | 4 | 5 |Delete| |ScroLo| 6 | 7 | 8 | 9 | 0 | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | ` | B | E | P | O | E |Backsp| |CapsLo| ! | V | D | L | J | Z | + * |--------+------+------+------+------+------| ace | | |------+------+------+------+------+--------| + * | W | A | U | I | E | ; |------| |------| C | T | S | R | N | M | + * |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------| + * | E | A | Y | X | : | K | | | | ? | Q | G | H | F | C | + * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' + * | BEPO | |LSuper| LCtrl| LAlt| |Escape| L_Mse| | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause| + * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' + * | | | L_Num| | | | | + * | Space|LShift|------| |------|RShift|Enter | + * | | |L_FNav| |L_FNav| | | + * `--------------------' `--------------------' + */ +[SQWER] = KEYMAP( +// Left hand +KC_HASH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, +KC_GRV, S(KC_B), S(KC_E), S(KC_P), S(KC_O), S(KC_E), KC_TRNS, +S(KC_W), S(KC_A), S(KC_U), S(KC_I), S(KC_E), KC_SCOLON, +S(KC_E), S(KC_A), S(KC_Y), S(KC_X), KC_COLON, S(KC_K), S(KC_TAB), +KC_TRNS, KC_TRNS, S(KC_LGUI), S(KC_LCTL), S(KC_LALT), + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, +// Right hand + KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_TRNS, KC_EXLM, S(KC_V), S(KC_D), S(KC_L), S(KC_J), S(KC_Z), + S(KC_C), S(KC_T), S(KC_S), S(KC_R), S(KC_N), S(KC_M), + KC_TRNS, S(KC_SLASH), S(KC_Q), S(KC_G), S(KC_H), S(KC_F), S(KC_C), + S(KC_RALT), S(KC_RCTL), S(KC_RGUI), KC_TRNS, KC_TRNS, +KC_TRNS, KC_TRNS, +KC_TRNS, +KC_TRNS, KC_TRNS, KC_TRNS), +/* Keymap 3: QWERTY alted system compatibility layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | $ | " | < | > | [ | ] |Delete| |ScroLo| @ | + | - | / | * | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | % | | | e | & | o | e |Backsp| |CapsLo| ^ | v | d | l | j | z | + * |--------+------+------+------+------+------| ace | | |------+------+------+------+------+--------| + * | w | a | u | i | € | , |------| |------| c | t | s | r | n | m | + * |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------| + * | e | \ | { | } | . | ~ | | | | ' | q | g | h | f | c | + * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' + * | BEPO | |LSuper| LCtrl| LAlt| |Escape| L_Mse| | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause| + * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' + * | | | L_Num| | | | | + * | _ |LShift|------| |------|RShift|Enter | + * | | |L_FNav| |L_FNav| | | + * `--------------------' `--------------------' + */ +[AQWER] = KEYMAP( +// Left hand +KC_DOLLAR, S(KC_QUOT), S(KC_COMM), S(KC_DOT), KC_LBRC, KC_RBRC, KC_DEL, +KC_PERCENT, KC_PIPE, KC_E, KC_AMPR, KC_O, KC_E, KC_BSPC, +KC_W, KC_A, KC_U, KC_I, RALT(KC_5), KC_COMMA, +KC_E, KC_BSLASH, KC_LCBR, KC_RCBR, KC_DOT, KC_TILDE, KC_TAB, +KC_TRNS, KC_NO, KC_LGUI, KC_LCTL, KC_LALT, + KC_ESC, MO(MSE), + MO(NUM), + KC_UNDS, MO(SQWER), MO(FNAV), +// Right hand + KC_SLCK, KC_AT, KC_PLUS, KC_MINUS, KC_SLASH, KC_ASTR, KC_EQUAL, + KC_CAPSLOCK, KC_CIRC, KC_V, KC_D, KC_L, KC_J, KC_Z, + KC_C, KC_T, KC_S, KC_R, KC_N, KC_M, + KC_NUMLOCK, KC_QUOT, KC_Q, KC_G, KC_H, KC_F, KC_C, + KC_TRNS, KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE, +KC_NO, KC_INS, +KC_TRNS, +MO(FNAV), MO(SQWER), KC_ENTER), +/* Keymap 4: function / navigation layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 |VolMut| | | F6 | F7 | F8 | F9 | F10 | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | |VolDwn| | | PgUp | Home | Up | End | F11 | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------| PgDn | Left | Down | Right| F12 | | + * |--------+------+------+------+------+------| VolUp| | |------+------+------+------+------+--------| + * | | Undo | Cut | Copy | Paste| | | | | | | | | | | + * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' + * | | | | | | | | | | | | | | | | | | + * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[FNAV] = KEYMAP( +// Left hand +KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MUTE, +KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLU, +KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, +KC_NO, KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_NO, KC_VOLD, +KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, + KC_NO, KC_NO, + KC_NO, + KC_NO, KC_TRNS, KC_TRNS, +// Right hand + KC_NO, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO, + KC_NO, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_F11, KC_NO, + KC_PGDOWN, KC_LEFT, KC_DOWN, KC_RIGHT, KC_F12, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, +KC_NO, KC_NO, +KC_TRNS, +KC_TRNS, KC_TRNS, KC_NO), +/* Keymap 5: numeric layer, sends keypad codes + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | + | - | / | * | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | 7 | 8 | 9 | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------| | 4 | 5 | 6 | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | 1 | 2 | 3 | | | + * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' + * | | | | | | | | | | | | | 0 | 00 | . | | | + * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' + * | | | | | | | | + * | | |------| |------| | Enter| + * | | | | | | | | + * `--------------------' `--------------------' + */ +[NUM] = KEYMAP( +// Left hand +KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, +KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, +KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, +KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, +KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, + KC_NO, KC_NO, + KC_TRNS, + KC_NO, KC_TRNS, KC_NO, +// Right hand + KC_NO, KC_NO, KC_KP_PLUS, KC_KP_MINUS, KC_KP_SLASH, KC_KP_ASTERISK, KC_NO, + KC_NO, KC_NO, KC_KP_7, KC_KP_8, KC_KP_9, KC_NO, KC_NO, + KC_NO, KC_KP_4, KC_KP_5, KC_KP_6, KC_NO, KC_NO, + KC_NO, KC_NO, KC_KP_1, KC_KP_2, KC_KP_3, KC_NO, KC_NO, + KC_KP_0, M(KP_00), KC_KP_COMMA, KC_NO, KC_NO, +KC_NO, KC_NO, +KC_NO, +KC_NO, KC_TRNS, KC_KP_ENTER), +/* Keymap 6: mouse layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | |LClick| Up |RClick| WhUp | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------| | Left | Down | Right|WhDown| | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' + * | | | | | | | | | | | | | | | | | | + * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[MSE] = KEYMAP( +// Left hand +KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, +KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, +KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, +KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, +KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, + KC_NO, KC_TRNS, + KC_NO, + KC_NO, KC_TRNS, KC_NO, +// Right hand + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, KC_MS_WH_UP, KC_NO, + KC_NO, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_WH_DOWN, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, +KC_NO, KC_NO, +KC_NO, +KC_NO, KC_TRNS, KC_NO) +}; + +const uint16_t PROGMEM fn_actions[] = { +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case KP_00: + if (record->event.pressed) { + return MACRO( T(KP_0), D(KP_0), END ); + } else { + return MACRO( U(KP_0), END ); + } + break; + case CA_Fx: + if (record->event.pressed) { + layer_on(FNAV); + return MACRO( D(LALT), D(LCTL), END ); + } else { + layer_off(FNAV); + return MACRO( U(LCTL), U(LALT), END ); + } + 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) { +}; diff --git a/keyboards/ergodox_ez/keymaps/coderkun_neo2/Makefile b/keyboards/ergodox_ez/keymaps/coderkun_neo2/Makefile new file mode 100644 index 000000000..e7b2d0a65 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/coderkun_neo2/Makefile @@ -0,0 +1 @@ +UNICODE_ENABLE = yes \ No newline at end of file diff --git a/keyboards/ergodox_ez/keymaps/coderkun_neo2/compiled.hex b/keyboards/ergodox_ez/keymaps/coderkun_neo2/compiled.hex new file mode 100644 index 000000000..5aa02ca4b --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/coderkun_neo2/compiled.hex @@ -0,0 +1,1195 @@ +:100000000C9425030C9469030C9469030C94690304 +:100010000C9469030C9469030C9469030C946903B0 +:100020000C9469030C9469030C94890E0C945B0F77 +:100030000C9469030C9469030C9469030C94690390 +:100040000C9469030C9465230C9469030C94690364 +:100050000C9469030C94F81C0C9469030C946903C8 +:100060000C9469030C9469030C9469030C94690360 +:100070000C9469030C9469030C9469030C94690350 +:100080000C9469030C9469030C9469030C94690340 +:100090000C9469030C9469030C9469030C94690330 +:1000A0000C9469030C9469030C946903C80FEA0F5C +:1000B000D810EA0FD8102F105210D810A710BA106D +:1000C00089138913B813B813EE130E143F153F1597 +:1000D00019143F15C914C91430153F153F153915AA +:1000E000D614D614D614D614D614D614D614D614C0 +:1000F000D614D614D614D614D614D614D614D614B0 +:10010000E814F514FC1403150D1500F001F002F0CD +:10011000F0A3F0A42B0034003900E100E00000005F +:100120001E00140004001D00E200007F1F001A00E2 +:1001300016001B00035228002000080007000600DC +:10014000E3002C00210015000900190064002D00B7 +:10015000220017000A000500000050002E004A008F +:1001600000000154000052002E004D000000025417 +:100170000000510023001C000B00110000004F0084 +:10018000240018000D001000E6002D0025000C00D2 +:100190000E003600E7002C00260012000F0037008A +:1001A000035228002700130033003800E6000077D0 +:1001B0002A002F003100E500E40000002B000600BB +:1001C0003900E100E00000001E00130007003400C9 +:1001D000E200007F1F0017000B00140003522800EC +:1001E0002000090033001500E3002C0021000E0060 +:1001F00012001A0004522D0022000F000C00110002 +:10020000000050002E004A000000010000005200D3 +:100210002E004D00000001000000510023000500E9 +:1002200018000D0000004F002400040038001000EA +:1002300004522D00250016001C003600E7002C009B +:1002400026000A0008003700035228002700190082 +:100250001B002D00E60000772A001D003100E5009C +:10026000E40000002B001D000000E100E0000000A1 +:100270001E001B0018002F00E200007F1F00190065 +:100280000C0033000352280020000F00040034004B +:10029000E3002C00210006000800130004522D008A +:1002A00022001A0012001C00000050002E004A001C +:1002B00000000100000052002E004D00000001006F +:1002C0000000510023000E001600050000004F0042 +:1002D00024000B001100100004522D0025000A001C +:1002E00015003600E7002C00260009001700370033 +:1002F000035228002700140007000D00E6000077D5 +:100300002A002D000000E500E400000001000100CB +:1003100001000100010000000100010001000100D6 +:1003200001000100010001000100010001000100C5 +:10033000010001000100010001000100010013A7FC +:1003400015A701000100F4000100010001000100F7 +:100350000000F20001000100000001000000F000B8 +:1003600001000100000001000000F1000100010097 +:10037000010001000000F300010042003E003A00CD +:100380000100F500010043003F003B0001000100B7 +:100390000100440040003C00010001000100450054 +:1003A00041003D00010001000100010001000100C9 +:1003B000010000000000000000000000000000003C +:1003C00000004B004A0029000000000000002A0045 +:1003D00050002B00010000000000520051004900B5 +:1003E0000000000000004C004F0028000100000049 +:1003F00000004E004D007A000000000000000000E8 +:1004000000000100000000000000000000000100EA +:1004100000000000000000000000000000000000DC +:100420000000240021001E00010000000000250043 +:1004300022001F0000000000000026002300200012 +:100440000100000000003000360000000000000045 +:1004500000003800370000000000000016034500CF +:10046000720067006F0044006F00780020004500B4 +:100470005A00000016034500720067006F00440038 +:100480006F007800200045005A00000004030904B2 +:1004900009026D00040100A0FA0904000001030133 +:1004A0000100092111010001223F00070581030815 +:1004B000000A0904010001030102000921110100E1 +:1004C00001224D000705820308000A090402000109 +:1004D00003000000092111010001223600070583F5 +:1004E0000308000A090403000103000000092111A8 +:1004F00001000122390007058403100001120110D8 +:100500000100000008EDFE071301000102000105D3 +:10051000010906A101050719E029E7150025019544 +:1005200008750181020508190129059505750191D4 +:10053000029501750391010507190029771500251A +:1005400001957875018102C005010980A10185022C +:1005500016010026B7001A01002AB7007510950190 +:100560008100C0050C0901A1018503160100269C2C +:10057000021A01002A9C02751095018100C0050134 +:100580000902A1010901A1000509190129051500A8 +:10059000250195057501810295017503810105010C +:1005A000093009311581257F9502750881060938C2 +:1005B0001581257F950175088106050C0A380215FD +:1005C00081257F950175088106C0C005010906A136 +:1005D00001050719E029E715002501950875018136 +:1005E0000295017508810105081901290595057510 +:1005F0000191029501750391010507190029FF1565 +:100600000025FF950675088100C00000000000006D +:100610000000000000010204060A0F17202C3A4ACD +:100620005D71879DB3C7DAE9F5FCFFFCF5E9DAC730 +:10063000B39D87715D4A3A2C20170F0A0604020108 +:100640000000000000000000000011241FBECFEFDA +:10065000DAE0DEBFCDBF04B603FE24C08091FC010A +:100660009091FD01A091FE01B091FF018730904B68 +:10067000A740B04BB9F41092FC011092FD0110920A +:10068000FE011092FF0114BE84B7877F84BF88E10A +:100690000FB6F89480936000109260000FBEE0E007 +:1006A000FFE3099511E0A0E0B1E0E8E5FAE402C05B +:1006B00005900D92A433B107D9F711E0A4E3B1E09E +:1006C00001C01D92AC3FB107E1F70E94CD0B0C9425 +:1006D0002A250C9400001092B9008AE08093B8009B +:1006E000089594EA9093BC009091BC0097FFFCCFD2 +:1006F0009091B900987F983021F0903111F081E00D +:1007000008958093BB0084E88093BC008091BC0076 +:1007100087FFFCCF8091B900887F883111F0803449 +:1007200071F780E0089584E98093BC008091BC005B +:1007300084FDFCCF08958093BB0084E88093BC00C7 +:100740008091BC0087FFFCCF9091B900987F81E039 +:10075000983209F480E0089584E88093BC00809189 +:10076000BC0087FFFCCF8091BB0008958091010100 +:10077000811115C080E40E947103809301018111F1 +:100780000CC082E10E949B0380930101811105C08E +:100790008FEF0E949B03809301010E94930384B119 +:1007A000807F84B985B1807F85B98AB1837F8AB91A +:1007B0008BB1837F8BB93E98469808950E9471054E +:1007C000809301010E94B60380B38C7080BB81B31B +:1007D000836F81BBA5E3B1E0E3E4F1E08EE08E0F2F +:1007E00011921D928E13FCCF0C945B05BF92CF9299 +:1007F000DF92EF92FF920F931F93CF93DF9380913D +:100800000101882379F0809134018F5F8093340156 +:10081000811108C00E94710580930101811102C0FD +:100820000E94030505E311E0C0E0D0E0DD24D3948D +:1008300082E0C82EEE24E394F12CC730D10500F5F8 +:1008400080910101811164C080E40E947103809352 +:100850000101811112C082E10E949B03809301017A +:1008600081110BC0C7010C2E01C0880F0A94EAF752 +:1008700080950E949B03809301010E94930348C0CE +:10088000CA30A1F028F4C83059F0C93061F005C071 +:10089000CC3089F070F0CD3089F0209A289810C0C3 +:1008A000219A29980DC0229A2A980AC0239A2B9837 +:1008B00007C0529A01C0539A5B9802C03E9A46986C +:1008C00090EA9A95F1F79FB1799902C082E001C050 +:1008D00080E091709D25982B7C9902C084E001C036 +:1008E00080E0892B7D9902C038E001C030E0832B85 +:1008F0007E9902C020E101C020E0822B9FB190953B +:10090000991F9927991F9295990F907E892B0FC057 +:1009100080910101811149C080E40E94710380939C +:100920000101882379F1B12C0E9493038B2DF801EA +:100930009081981719F08083C09200010E94B6033D +:1009400021960F5F1F4FCE30D10509F076CF8091F1 +:100950000001882361F1815080930001882339F0E0 +:100960008FE99FE00197F1F700C0000020C0A3E4E9 +:10097000B1E0E5E3F1E0CF01825F91919D938E13A9 +:10098000FCCF15C083E10E949B038093010181117C +:10099000CACF81E40E947103809301018111C3CF0A +:1009A0000E94AC03B82EB094BFCF80E0C0CF0E94AD +:1009B000010581E0DF91CF911F910F91FF90EF90A2 +:1009C000DF90CF90BF900895E82FF0E0ED5BFE4FF1 +:1009D0008081089508950F931F93CF93DF93C3E40D +:1009E000D1E010E00C2F025F899190E00E941E1C64 +:1009F000180F0C13F9CF812FDF91CF911F910F9119 +:100A000008950C94D10556985E9825982D982698AF +:100A10002E9827982F988FEF90E0909389008093DD +:100A2000880090938B0080938A0090938D00809330 +:100A30008C00259A2D9A2FEF80E792E0215080407C +:100A40009040E1F700C00000269A2E9A2FEF80E731 +:100A500092E0215080409040E1F700C00000279ACA +:100A60002F9A2FEF80E792E0215080409040E1F7ED +:100A700000C0000025982D982FEF80E792E02150CC +:100A800080409040E1F700C0000026982E982FEF9C +:100A900080E792E0215080409040E1F700C00000E4 +:100AA00027982F9856985E9825982D9826982E98D6 +:100AB00027982F98089589EA8093800089E0809391 +:100AC000810024982C983F988AB18F748AB96E98C7 +:100AD000479A8BB1806B8BB9769A0E9403050C9470 +:100AE000D00580E2809301018091510181110EC0F7 +:100AF0000E946B0381E0809351012FEF83ED90E31F +:100B0000215080409040E1F700C0000080E40E9446 +:100B100071038093010181112EC00E949B03809379 +:100B20000101811128C00E949B0380930101811162 +:100B300022C08FE30E949B038093010181111BC09F +:100B40000E94930380E40E9471038093010181114C +:100B500012C08CE00E949B038093010181110BC0A5 +:100B60000E949B0380930101811105C08FE30E94C5 +:100B70009B03809301010E949303809101010895DA +:100B800061110BC0FC018281882321F085EE0E9457 +:100B90002D1203C085EE0E94F51280E090E00895CA +:100BA00008956091BE017091BF018091C001909144 +:100BB000C1010E942A1C56985E9825982D98269867 +:100BC0002E9827982F98823051F0833029F0813069 +:100BD00049F4269A2E9A0895259A2D9A0895279ACF +:100BE0002F9A089556985E98089581E0089581E0BF +:100BF00008950C94F7050895282F882339F090E084 +:100C00002A3010F44D9608950697089587E290E0F3 +:100C10000895AF92BF92DF92EF92FF920F931F93CE +:100C2000CF93DF938C01FC01C081D181CE010E9462 +:100C3000A31ABE010E941A07EC01B8010E94F9052F +:100C4000882309F4EBC0F8018281882309F4A0C04D +:100C500080915E0181111FC0C431F0E5DF0709F00A +:100C6000D7C00E94FB0581E080935E010E94C21CF8 +:100C700090935D0180935C01109255011092570191 +:100C800010925601109259011092580110925B0176 +:100C900010925A01C3C080915C0190915D010E9445 +:100CA000CE1C883C910570F480915501E82FF0E04E +:100CB000EE0FFF1FEA5AFE4FD183C0838F5F8093F0 +:100CC0005501ACC0C13080E8D80708F451C0F80124 +:100CD0008281882309F460C05E01E894B7F88091AE +:100CE0005401813079F050F08230C1F482EE0E94DC +:100CF0002D1287E50E942D1287E50EC082EE0E941C +:100D00002D120CC080EE0E942D1281EE0E942D1239 +:100D100088E10E942D1288E10E94F5128CE0E82EF5 +:100D2000F12CC5010E2C02C0969587950A94E2F726 +:100D30008F700E94FC05D82E0E942D128D2D0E94CE +:100D4000F512F4E0EF1AF1088CEFE8168FEFF806D1 +:100D500041F780915401813029F010F0823041F444 +:100D600082EE04C080EE0E94F51281EE0E94F51220 +:100D7000C438E0E5DE0721F0C538D04501F137C0C1 +:100D8000F8018281882361F01092520182E01EC036 +:100D9000C130F0E8DF0760F3C43880E5D80761F4BC +:100DA00080915201811106C086E20E942D1286E2D6 +:100DB0000E94F51282E018C0C538D045C1F4F80190 +:100DC0008281882331F01092530180E20E94441303 +:100DD00025C080915301811106C087E20E942D1227 +:100DE00087E20E94F51280E20E944B1317C081E057 +:100DF0008093520180935301C801DF91CF911F91DD +:100E00000F91FF90EF90DF90BF90AF900C94F5059D +:100E1000C130F0E8DF0708F05FCFAACF80E0DF91B4 +:100E2000CF911F910F91FF90EF90DF90BF90AF9007 +:100E30000895089596E0799FF001112494E5899F23 +:100E4000E00DF11D1124E60FF11DEE0FFF1FEC5E0A +:100E5000FE4F859194910895880F991FFC01E657E4 +:100E6000F040859194910895880F991FFC01E65FE9 +:100E7000FE4F8591949108950F931F93CF93DF9325 +:100E8000EC01811520E3920750F5C11580E2D807E7 +:100E900008F0C3C0CB3BD10590F4C83AD10508F0A7 +:100EA0006AC0C53AD10508F05BC0C430D10508F06E +:100EB000D0C1219709F0CAC101E010E00AC2CF3FBA +:100EC000D10511F008F0C5C1C03FD10508F0A2C09E +:100ED000CE01805E9109089708F4BBC1B7C1C1304B +:100EE00090E5D90709F4A2C020F5C0318FE4D807F6 +:100EF00070F4C11590E4D90708F094C0C11521E33E +:100F0000D20708F0A3C1DD278E01106CE2C1C11524 +:100F1000D04509F09BC10E94AA158FEF94E32CE005 +:100F2000815090402040E1F700C000000E941D1D4C +:100F3000D0C1C11597E5D90758F4C03121E5D207D2 +:100F400008F01CC1C43180E5D80708F475C07EC123 +:100F5000CE0190578115904108F078C1DF7073C1C0 +:100F6000C53AD10509F477C1C63AD10509F076C171 +:100F700002E810E4AEC1C83AD10509F472C1C93A19 +:100F8000D10509F471C1CA3AD10509F470C1CB3A4F +:100F9000D10509F46FC1CC3AD10509F46EC1CD3A3F +:100FA000D10509F46DC1C03BD10509F46CC1CE3A3D +:100FB000D10509F46BC1CF3AD10509F46AC1C13B2F +:100FC000D10509F469C1C23BD10509F468C1C33B2D +:100FD000D10509F467C1C43BD10509F466C1C53B1D +:100FE000D10509F465C1C63BD10509F464C1C73B0D +:100FF000D10509F463C1C83BD10509F462C1C93BFD +:10100000D10509F461C1CA3BD10509F460C100E012 +:1010100014E45FC18E0110655CC1CE019F700E9417 +:10102000340758C1DF708E01106A53C18091DB0113 +:1010300081608093DB014DC10E94C21E811102C0FC +:101040000E94A81E0E94DF1E90E09093FC018093F6 +:10105000FB01C23080E5D80721F48091FB0181605B +:1010600086C0C43090E5D90721F48091FB018260ED +:101070007EC0C63020E5D20721F48091FB01846058 +:1010800076C0C83080E5D80719F48091FB0127C0ED +:10109000CA3090E5D90721F48091FB01806167C0D7 +:1010A000CC3020E5D20721F48091FB0180625FC043 +:1010B000CE3080E5D80721F48091FB01806457C0D1 +:1010C000C03190E5D90721F48091FB0180684FC0C1 +:1010D000C23120E5D20729F48091FB018460886049 +:1010E00046C0C33080E5D80721F48091FB018E7F94 +:1010F0003EC0C53090E5D90721F48091FB018D7F7A +:1011000036C0C73020E5D20721F48091FB018B7FE8 +:101110002EC0C93080E5D80719F48091FB0126C0A4 +:10112000CB3090E5D90721F48091FB018F7E1FC061 +:10113000CD3020E5D20721F48091FB018F7D17C0CF +:10114000CF3080E5D80721F48091FB018F7B0FC061 +:10115000C13190E5D90721F48091FB018F7707C059 +:10116000C331D04531F48091FB018B7F877F809321 +:10117000FB018091FB010E94E31EABC08D2F9927DC +:101180008F70992781309105D9F49E012370332700 +:1011900002C0880F991F2A95E2F79C688E0144E0EF +:1011A000000F111F4A95E1F700271370802B912B38 +:1011B00053E0CC0FDD1F5A95E1F7C076DD272FC035 +:1011C0008230910531F4DC2FCC278E01016F106A3B +:1011D00080C08330910569F4CE018370992701E0C6 +:1011E00010E002C0000F111F8A95E2F7C8019C6849 +:1011F0000FC084309105B9F4CE018370992701E0C6 +:1012000010E002C0000F111F8A95E2F7C8019A682A +:1012100023E0CC0FDD1F2A95E1F7C07ED7708C014B +:101220000C2B1D2B56C08530910531F4DC2FCC27BB +:101230008E01046F106A4DC0069709F04AC0CF7145 +:10124000DD27DC2FCC278E01106243C000E010E0C8 +:1012500040C08E013EC001E810E43BC003E810E44A +:1012600038C002EE14E435C009EE14E432C00AEED0 +:1012700014E42FC005EB14E42CC006EB14E429C0E1 +:1012800007EB14E426C00CEC14E423C00DEC14E4CA +:1012900020C003E815E41DC00AE815E41AC002E9FD +:1012A00015E417C004E915E414C001E216E411C006 +:1012B00003E216E40EC004E216E40BC005E216E4F5 +:1012C00008C006E216E405C007E216E402C00AE21E +:1012D00016E4C801DF91CF911F910F91089596E018 +:1012E000799FF001112494E5899FE00DF11D1124EF +:1012F000E60FF11DEE0FFF1FEC5EFE4F85919491FE +:10130000803E9105E0F4803C910558F581339105CC +:1013100009F46FC048F48932910509F463C08A3238 +:10132000910509F46DC072C089339105E9F08238E6 +:101330009105D1F08533910509F44DC067C0833E16 +:10134000910581F138F4803E9105B9F0823E910516 +:10135000D9F05CC0863E910561F1873E9105A1F10F +:1013600055C00E942C0708952091FB0120FD02C06A +:1013700021FF4CC080EE90E049C08091FB0180FFCE +:10138000F9CF89E390E042C08091FB0182FF0EC05B +:101390008091FB0184FF03C080E090E037C083EEC2 +:1013A00090E034C08091FB0182FFF2CF82EE90E0AA +:1013B0002DC08091FB0183FF0BC08091FB0184FD58 +:1013C000EBCF87EE90E022C08091FB0183FFF5CF49 +:1013D00086EE90E01BC08091FB0185FF07C089E28B +:1013E00090E014C08091FB0185FFF9CF85E390E088 +:1013F0000DC08091FB0186FF07C08AE290E006C025 +:101400008091FB0186FFF9CF81E390E00E943C07C9 +:10141000089508950C94090A80916F010895CF935F +:10142000DF9300D01F92CDB7DEB79C018091F2010F +:10143000843019F593E099833B832A839093E900E4 +:101440008FEF9091E800815095FD06C095ED9A953B +:10145000F1F700008111F5CF8091E80085FF0DC004 +:1014600040E050E063E070E0CE0101960E94790C0C +:101470008091E8008E778093E8000F900F900F9096 +:10148000DF91CF910895CF93DF9300D01F92CDB716 +:10149000DEB72091F201243021F522E029839B83DD +:1014A0008A8383E08093E9008FEF9091E800815078 +:1014B00095FD06C095ED9A95F1F700008111F5CFE5 +:1014C0008091E80085FF0DC040E050E063E070E0EF +:1014D000CE0101960E94790C8091E8008E7780936E +:1014E000E8000F900F900F90DF91CF910895209119 +:1014F000F2012430F1F422E02093E9002FEF309143 +:10150000E800215035FD06C035ED3A95F1F70000B1 +:101510002111F5CF2091E80025FF0BC040E050E0FD +:1015200065E070E00E94790C8091E8008E778093EE +:10153000E8000895CF93DF93EC019091F20194308D +:1015400009F046C080910C018823D9F080910D01EB +:101550008823B9F09093E9008FEF9091E8008150D3 +:1015600095FD06C095E19A95F1F700008111F5CF40 +:101570008091E80085FF2CC040E050E060E170E021 +:1015800017C081E08093E9008FEF9091E8008150CF +:1015900095FD06C095ED9A95F1F700008111F5CF04 +:1015A0008091E80085FF14C040E050E068E070E002 +:1015B000CE010E94790C8091E8008E778093E8003C +:1015C00080E1FE01AFE5B1E001900D928A95E1F76F +:1015D000DF91CF9108958091F101811109C00E949E +:1015E0000E0E0E946B0E8091E20084608093E200F8 +:1015F00008951092F101089508950C9452230E94C9 +:10160000B31C0E9458230E9411110C940A0A42E054 +:1016100061EC81E00E94880D42E061EC82E00E9472 +:10162000880D42E061EC83E00E94880D42E161ECAC +:1016300084E00C94880D8091F401833009F455C046 +:1016400030F4813071F0823009F48EC008958A3010 +:1016500009F47AC08B3009F460C0893009F09CC06D +:1016600020C08091F301813A09F096C08091E80092 +:10167000877F8093E8008091F7019091F801892B92 +:1016800021F460E18FE591E003C060E080E090E04C +:1016900070E00E94C40C8091E8008B778093E80092 +:1016A00008958091F301813209F076C08091F701AD +:1016B0009091F801009719F0039709F06DC080919F +:1016C000E800877F8093E8008091E80082FD05C0F4 +:1016D0008091F2018111F8CF5FC08091F100809379 +:1016E0006F018091E8008B7753C08091F301813ABC +:1016F00009F052C08091F7019091F801892B09F00F +:101700004BC08091E800877F8093E8008091E800DB +:1017100080FFFCCF80910C0136C08091F3018132B3 +:10172000D9F58091F7019091F801892BA9F5809165 +:10173000E800877F8093E8000E94BD0D8091F5014D +:1017400080930C010C94AA158091F301813221F54C +:101750008091E800877F8093E8000E94BD0D809112 +:10176000F6018093700108958091F301813AA1F40C +:101770008091E800877F8093E8008091E80080FFF7 +:10178000FCCF809170018093F1008091E8008E770A +:101790008093E8000C94BD0D089584B7877F84BFC3 +:1017A00088E10FB6F89480936000109260000FBE3D +:1017B00090E080E80FB6F894809361009093610008 +:1017C0000FBE0E9460110E940E0E0E946B0E80914F +:1017D000E20084608093E20078940E94F1100E94FD +:1017E000621182E091E00E940C110E9440238091DE +:1017F000F201853069F40E947A1C8091F0018823FF +:10180000B1F30E94A51C882391F30E94630CEFCFD3 +:101810000E946811ECCF292F332723303105C9F0FE +:1018200064F42130310581F02230310509F043C0E4 +:101830008DE690E020E934E042C021323105F1F03C +:101840002232310541F137C082E190E02DEF34E0E2 +:1018500036C099278130910541F08230910541F0E1 +:10186000892B49F5ECE8F4E005C0E4E7F4E002C0B8 +:10187000ECE5F4E0849190E09F0121C06430D8F45D +:10188000E62FF0E0EE0FFF1FEE5DFE4F208131816D +:1018900089E090E014C0643070F470E0FB01EE0F5A +:1018A000FF1FE65EFE4F20813181FB01EA5EFE4FA5 +:1018B000808190E004C080E090E020E030E0FA0118 +:1018C00031832083089580E189BD82E189BD09B417 +:1018D00000FEFDCF8091D8008F7D8093D80080914D +:1018E000E00082608093E0008091E00081FDFCCF09 +:1018F0000895CF92DF92EF92FF920F931F93CF93B1 +:10190000DF93EC018B016A010E94DC0D811133C071 +:10191000C114D10439F0F60180819181081B190BA3 +:10192000C80FD91FE12CF12C0115110519F1809177 +:10193000E80085FD16C08091E8008E778093E8006E +:10194000C114D10449F0F60180819181E80EF91E9D +:10195000F182E08285E00FC00E94DC0D882321F334 +:101960000AC089918093F10001501109FFEFEF1A2D +:10197000FF0ADACF80E0DF91CF911F910F91FF90A6 +:10198000EF90DF90CF9008952091F9013091FA0106 +:101990002617370748F06115710539F42091E800E2 +:1019A0002E772093E80001C0B90140E06115710570 +:1019B000A9F12091F201222309F443C0253009F452 +:1019C00042C02091E80023FD40C02091E80022FDA4 +:1019D00032C02091E80020FFE9CF4091F300209130 +:1019E000F20030E0342BFC01CF016115710559F094 +:1019F0002830310540F481918093F10061507109E4 +:101A00002F5F3F4FF1CF41E02830310509F040E032 +:101A10002091E8002E772093E800C8CF4111C9CF6C +:101A20000AC08091F201882361F0853061F08091D5 +:101A3000E80083FD0AC08091E80082FFF2CF80E0D9 +:101A4000089582E0089583E0089581E0089520914B +:101A5000F9013091FA012617370748F06115710531 +:101A600039F42091E8002E772093E80001C0B901F5 +:101A7000FC0120E06115710591F18091F20188234C +:101A800009F440C0853009F43FC08091E80083FD2F +:101A90003DC08091E80082FD2FC08091E80080FF6A +:101AA000E9CF2091F3008091F20090E0922B611534 +:101AB000710559F08830910540F424912093F1008C +:101AC0003196615071090196F2CF21E0089709F033 +:101AD00020E08091E8008E778093E800CBCF211141 +:101AE000CCCF0AC08091F201882361F0853061F08B +:101AF0008091E80083FD0AC08091E80082FFF2CF68 +:101B000080E0089582E0089583E0089581E00895DB +:101B1000982F973058F59093E900981739F0709105 +:101B2000EC002091ED005091F00003C0242F762F9F +:101B300050E021FF19C03091EB003E7F3093EB0065 +:101B40003091ED003D7F3093ED003091EB0031603E +:101B50003093EB007093EC002093ED005093F00075 +:101B60002091EE0027FF07C09F5FD3CF8F70809337 +:101B7000E90081E0089580E008958091F30187FFF6 +:101B800011C08091E80082FD05C08091F2018111B1 +:101B9000F8CF11C08091E8008B770BC08091F201E3 +:101BA000882349F08091E80080FFF8CF8091E80019 +:101BB0008E778093E80008952091E4003091E5004D +:101BC00095E64091EC00842F817040FF22C0809107 +:101BD000E80080FD1CC08091F201882391F08530DF +:101BE00091F08091EB0085FD10C04091E400509190 +:101BF000E5004217530729F39A01915011F784E049 +:101C0000089582E0089583E0089581E0089580E0DA +:101C100008954091E80042FFDECF08950E947C0EB7 +:101C20000E94840EE0EEF0E0808181608083E8ED28 +:101C3000F0E080818F77808319BCA7EDB0E08C91B4 +:101C40008E7F8C9380818F7E80831092F101089526 +:101C50000F931F93CF93DF930E947C0E0E94840EFC +:101C6000C8EDD0E088818F778883888180688883F9 +:101C700088818F7D888319BC1092F2011092EE0149 +:101C80001092F0011092EF0100EE10E0F801808157 +:101C90008B7F808388818160888342E060E080E080 +:101CA0000E94880DE1EEF0E080818E7F8083E2EE7D +:101CB000F0E0808181608083808188608083F8018A +:101CC00080818E7F8083888180618883DF91CF913E +:101CD0001F910F910895E8EDF0E080818F7E808361 +:101CE000E7EDF0E080818160808384E082BF81E065 +:101CF0008093F1010C94280EE8EDF0E080818E7F56 +:101D000080831092E20008951092DA001092E100B0 +:101D100008951F920F920FB60F9211242F933F93A5 +:101D20004F935F936F937F938F939F93AF93BF93E3 +:101D3000EF93FF938091E10082FF0BC08091E2005E +:101D400082FF07C08091E1008B7F8093E1000E94B9 +:101D5000F0108091DA0080FF1FC08091D80080FFD2 +:101D60001BC08091DA008E7F8093DA008091D900C9 +:101D700080FF0DC080E189BD82E189BD09B400FE0C +:101D8000FDCF81E08093F2010E94EB0A05C019BCEF +:101D90001092F2010E94F90A8091E10080FF19C0BF +:101DA0008091E20080FF15C08091E2008E7F8093D9 +:101DB000E2008091E20080618093E2008091D8008F +:101DC00080628093D80019BC85E08093F2010E9464 +:101DD000FD0A8091E10084FF30C08091E20084FF21 +:101DE0002CC080E189BD82E189BD09B400FEFDCF30 +:101DF0008091D8008F7D8093D8008091E1008F7E04 +:101E00008093E1008091E2008F7E8093E2008091D8 +:101E1000E20081608093E2008091EE01882311F05E +:101E200084E007C08091E30087FD02C081E001C02B +:101E300083E08093F2010E94FF0A8091E10083FF1A +:101E400029C08091E20083FF25C08091E100877F57 +:101E50008093E10082E08093F2011092EE01809184 +:101E6000E1008E7F8093E1008091E2008E7F80937D +:101E7000E2008091E20080618093E20042E060E055 +:101E800080E00E94880D8091F00088608093F000CF +:101E90000E94FC0AFF91EF91BF91AF919F918F91AA +:101EA0007F916F915F914F913F912F910F900FBE56 +:101EB0000F901F9018951F920F920FB60F9211243A +:101EC0002F933F934F935F936F937F938F939F9342 +:101ED000AF93BF93CF93DF93EF93FF93C091E9004C +:101EE000CF708091EC00D82FD17080FDD0E8109297 +:101EF000E9008091F000877F8093F00078940E9441 +:101F00009F0F1092E9008091F00088608093F000AC +:101F1000CD2BCF70C093E900FF91EF91DF91CF916E +:101F2000BF91AF919F918F917F916F915F914F91F1 +:101F30003F912F910F900FBE0F901F9018951F93F8 +:101F4000CF93DF93CDB7DEB7AA970FB6F894DEBF75 +:101F50000FBECDBFE3EFF1E088E08E0F9091F1006E +:101F600091938E13FBCF0E941B0B8091E80083FF9F +:101F70001FC18091F3019091F401492F50E04A3044 +:101F8000510508F015C1FA01EA5AFF4F0C94DA2402 +:101F9000803881F0823809F00BC18091F7018F7091 +:101FA0008093E9008091EB0085FB882780F91092EF +:101FB000E90006C08091EF019091F00191118260DB +:101FC0009091E800977F9093E8008093F100109241 +:101FD000F100C8C0282F2D7F09F0EAC0882319F02E +:101FE000823061F0E5C08091F501813009F0E0C0F8 +:101FF000933009F080E08093F0012BC08091F501CF +:10200000811127C08091F7018F7009F4D1C08093AE +:10201000E9002091EB0020FF1CC0933021F4809157 +:10202000EB00806214C09091EB0090619093EB0004 +:1020300021E030E0A90102C0440F551F8A95E2F764 +:102040004093EA001092EA008091EB008860809350 +:10205000EB001092E9008091E800877F86C0811133 +:10206000A7C01091F5011F778091E3008078812B44 +:102070008093E3008091E800877F8093E8000E94CE +:10208000BD0D8091E80080FFFCCF8091E300806867 +:102090008093E300111102C082E001C083E08093CD +:1020A000F20186C08058823008F082C08091F5012C +:1020B0009091F6018C3D53E0950779F583E08A8392 +:1020C0008AE289834FB7F894DE01139620E03EE060 +:1020D00051E2E32FF0E050935700E49120FF03C05A +:1020E000E295EF703F5FEF708E2F90E0EA3010F0D6 +:1020F000C79601C0C0968D939D932F5F243149F7F9 +:102100004FBF8091E800877F8093E8006AE270E02B +:10211000CE0101960E94C40C14C0AE014F5F5F4F08 +:102120006091F7010E940B0CBC01009709F440C0BC +:102130009091E800977F9093E80089819A810E94AE +:10214000270D8091E8008B778093E80031C08038BC +:1021500079F58091E800877F8093E8008091EE0117 +:102160008093F1008091E8008E778093E8000E94D0 +:10217000BD0D1EC081111CC09091F5019230C0F4BC +:102180008091E800877F8093E8009093EE010E94A1 +:10219000BD0D8091EE01811106C08091E30087FDA5 +:1021A00002C081E001C084E08093F2010E94070B2D +:1021B0008091E80083FF0AC08091E800877F8093C8 +:1021C000E8008091EB0080628093EB00AA960FB646 +:1021D000F894DEBF0FBECDBFDF91CF911F91089560 +:1021E0000895CF938091F2018823A1F0C091E90076 +:1021F000CF709091EC00892F817090FD80E8C82B02 +:102200001092E9008091E80083FD0E949F0FCF703B +:10221000C093E900CF910895909376018093750162 +:102220000895E0917501F0917601309721F00190C9 +:10223000F081E02D099480E00895E0917501F0911E +:102240007601309721F00280F381E02D0994089502 +:10225000E0917501F0917601309721F00480F581CD +:10226000E02D099408952091730130917401821733 +:10227000930771F09093740180937301E09175015D +:10228000F0917601309721F00680F781E02D0994D6 +:10229000089520917101309172018217930771F0B6 +:1022A0009093720180937101E0917501F091760134 +:1022B000309721F00084F185E02D09940895089568 +:1022C0000C945F110E94B91C0E94DE030C947B1DCC +:1022D0009F92AF92BF92CF92DF92EF92FF920F93B5 +:1022E0001F93CF93DF9300D000D000D0CDB7DEB7DF +:1022F0000E94F6030DE010E0AA24A394B12C902EC6 +:10230000802F0E94E404980128583E4F6901F9018A +:10231000F080F826A1F40150110988F78FEF898326 +:102320008A831B820E94C21C8160782F9D838C83CC +:1023300049815A816B818D810E94FF112FC090913C +:10234000DB0191FF04C08E830E94EA048E8125E0A8 +:1023500030E0A501022E01C0440F0A94EAF7E42EF2 +:102360004F21C1F029839A828E2191E009F490E0F7 +:102370009B830E94C21C8160782F9D838C8349813E +:102380005A816B818D810E94FF11F6018081E826C0 +:10239000E08204C021503109E0F6BDCF0E946220E6 +:1023A000109177010E9411111817B9F00E941111B4 +:1023B0008093770126960FB6F894DEBF0FBECDBF8F +:1023C000DF91CF911F910F91FF90EF90DF90CF9011 +:1023D000BF90AF909F900C940A0A26960FB6F8947F +:1023E000DEBF0FBECDBFDF91CF911F910F91FF9048 +:1023F000EF90DF90CF90BF90AF909F900895CF93D4 +:10240000DF93CDB7DEB72B970FB6F894DEBF0FBEC4 +:10241000CDBF4F83588769877A878B87DE011196F6 +:1024200086E0FD0111928A95E9F785E0FE01379675 +:1024300001900D928A95E1F749815A816B817C81E7 +:102440008D819E810E9448182B960FB6F894DEBFAE +:102450000FBECDBFDF91CF910895CF93882309F4AC +:10246000C2C0C82F823859F40E94111181FDBBC02F +:1024700089E30E94221B0E94EF1B89E30CC0833872 +:1024800079F40E94111180FDAEC083E50E94221BE9 +:102490000E94EF1B83E50E94641BCF910C94EF1BFD +:1024A000843859F40E94111182FD9DC087E40E9476 +:1024B000221B0E94EF1B87E4EECF8CEF8C0F813A3A +:1024C00048F48C2F0E94A52281118DC08C2F0E9470 +:1024D000221BE3CF80E28C0F883048F4C77081E084 +:1024E00001C0880FCA95EAF70E94A81BD6CF8BE5DA +:1024F0008C0F833078F4C53A29F0C63A31F083E87E +:1025000090E005C081E890E002C082E890E0CF91C1 +:102510000C94331188E58C0F833108F064C0C83AFD +:1025200039F1C93A41F1CA3A49F1CB3A51F1CC3AC1 +:1025300059F1CD3A61F1C03B69F1CE3A71F1CF3A30 +:1025400079F1C13B81F1C23B89F1C33B91F1C43BBD +:1025500099F1C53BA1F1C63BA9F1C73BB1F1C83B1D +:10256000B9F1C93BC1F1CA3BC9F180E090E038C084 +:1025700082EE90E035C089EE90E032C08AEE90E0C5 +:102580002FC085EB90E02CC086EB90E029C087EB54 +:1025900090E026C08CEC90E023C08DEC90E020C051 +:1025A00083E891E01DC08AE891E01AC082E991E0D9 +:1025B00017C084E991E014C081E292E011C083E287 +:1025C00092E00EC084E292E00BC085E292E008C087 +:1025D00086E292E005C087E292E002C08AE292E0E1 +:1025E000CF910C944911CF910895882309F44BC0E1 +:1025F000823859F40E94111181FF45C089E30E947D +:10260000221B0E94EF1B89E30CC0833871F40E94E7 +:10261000111180FF38C083E50E94221B0E94EF1B2E +:1026200083E50E94641B0C94EF1B843859F40E94CC +:10263000111182FF28C087E40E94221B0E94EF1B19 +:1026400087E4EFCF9CEF980F913A58F390E2980F00 +:10265000983050F4877091E001C0990F8A95EAF79D +:10266000892F0E94AE1BDFCF9BE5980F933020F49B +:1026700080E090E00C943311885A833120F480E09C +:1026800090E00C9449110895882321F00E94A81B22 +:102690000C94EF1B0895882321F00E94AE1B0C942C +:1026A000EF1B08957F928F929F92AF92BF92CF922D +:1026B000DF92EF92FF920F931F93CF93DF931F92BE +:1026C000CDB7DEB77C01C62E772EFC0105810295C1 +:1026D0000F70128111110E94C51B0E941B1B8823C1 +:1026E00079F0112369F080E28C0D883048F082E0A7 +:1026F0000E94041B0E941B1B91E0D82ED92601C00A +:10270000D12CE72DE295EF70F0E0E05AFF4F0C94EA +:10271000DA24872D807F072D0F70882311F0029512 +:10272000007F112389F0002309F490C180E28C0D11 +:10273000883020F4802F0E94A81B03C0802F0E94A5 +:10274000B81B0E94EF1B82C18C2D0E94F512002342 +:1027500009F495C180E28C0D883020F4802F0E940E +:10276000AE1B03C0802F0E94BE1B0E94EF1B87C1BF +:10277000972D907F872D8F70903211F08295807FFA +:10278000CC2021F0F1E0CF16B1F01EC0112349F0AA +:10279000002309F414C1013009F011C10E94D81BB3 +:1027A0006EC1002319F0013009F469C189830E94C8 +:1027B000DB1B89810AC1112321F0023008F05FC1BF +:1027C000FEC001115CC101C1112321F0002309F4F5 +:1027D000F6C03CC1002309F4F8C03EC1872D8695A0 +:1027E0008695837090E0009719F0019761F047C1DA +:1027F000112321F08C2D972D937002C080E090E082 +:102800000E9433113CC1112321F08C2D972D937020 +:1028100002C080E090E00E94491131C18C2D11234B +:1028200019F00E946A1F02C00E94D21F0E94572006 +:1028300026C1872D837009F052C0111120C18C2D43 +:10284000829586958770880F880F9C2D9F70892EA2 +:10285000912CA12CB12C082E04C0880C991CAA1C08 +:10286000BB1C0A94D2F7C4FE14C00FE010E020E0B5 +:1028700030E0B901A80104C0440F551F661F771F3F +:102880008A95D2F7CB01BA016095709580959095A5 +:1028900003C060E070E0CB01272D269526952370BC +:1028A00030E02230310569F02330310589F06829A4 +:1028B00079298A299B292130310571F00E949019CC +:1028C000DEC0682979298A299B290E94AC19D7C0C2 +:1028D0000E949019C501B4010E947419D0C011233F +:1028E00019F0872D817001C08695882309F4C7C02F +:1028F0008C2D829586958770880F880F9C2D9F70F0 +:10290000892E912CA12CB12C082E04C0880C991C66 +:10291000AA1CBB1C0A94D2F7C4FE14C00FE010E03E +:1029200020E030E0B901A80104C0440F551F661F24 +:10293000771F8A95D2F7CB01BA0160957095809583 +:10294000909503C060E070E0CB01272D2695269579 +:102950002370422F50E04230510569F04330510559 +:1029600089F0682979298A299B294130510571F01C +:102970000E946A1A84C0682979298A299B290E94A1 +:10298000861A7DC00E946A1AC501B4010E944E1ABF +:1029900076C08C2D90E0FC01E05EF109E531F10597 +:1029A00008F050C0E059FF4F0C94DA240C2D0F7042 +:1029B000872D8F71112331F00E94E719802F0E941B +:1029C00044135DC00E94081A802F0E944B1357C009 +:1029D000112339F0011153C0872D8F710E942D1AD8 +:1029E0004EC0023008F04BC0F7CF112339F0872DCD +:1029F0008F710E94E71943C01123C9F3872D8F718E +:102A00000E94081A3CC0112329F0872D8F710E9463 +:102A1000D21935C00E94C81932C0112351F0172DA8 +:102A20001F71812F0E94E71963E0812F0E94FB1A1A +:102A300026C081E00E94041B023008F182E00E945F +:102A4000041B1DC0112331F0002389F28C2D0E943C +:102A50002D1215C0002391F28C2D0E94F5120FC08B +:102A6000472D4F706C2DC7010E94C0050E94EC18C5 +:102A700006C0472D4F706C2DC7010E941907DD203D +:102A8000F9F00E94F71A80FD1BC0F70112820E9424 +:102A9000F11A0E94E719C7010E946F150E94F11AEE +:102AA0000F90DF91CF911F910F91FF90EF90DF90EA +:102AB000CF90BF90AF909F908F907F900C94081A0A +:102AC0000F90DF91CF911F910F91FF90EF90DF90CA +:102AD000CF90BF90AF909F908F907F9008950F936D +:102AE0001F93CF93DF93EC01888199812B813C81E7 +:102AF000232BB9F09F3F11F48F3F99F0CE010E9434 +:102B00000906882371F0688179818A810E94ED1A13 +:102B10008C010E94A21A0E946919B801CE010E947C +:102B20005213DF91CF911F910F9108950E94C51B01 +:102B30000E94D51B0E949A1B0E94EF1B0E94082135 +:102B40000E94572080E090E00E94331180E090E0E6 +:102B50000C9449110E94B51B0C9496150E94E21A20 +:102B6000292F22952F7030E02C3031054CF42A307B +:102B700031056CF42250310922303105A8F407C028 +:102B80002C30310569F02F30310551F00DC0803FF8 +:102B900069F018F4803E40F409C0843F29F406C06F +:102BA00093FB882780F9089580E0089581E00895D7 +:102BB000CF93DF9300D000D01F92CDB7DEB70F9038 +:102BC0000F900F900F900F90DF91CF910895CF93BA +:102BD000DF9300D000D000D0CDB7DEB726960FB679 +:102BE000F894DEBF0FBECDBFDF91CF9108951F9344 +:102BF000CF93DF93C091860116E080918701C817BB +:102C000099F0D0E01C9FF0011D9FF00D1124E857B2 +:102C1000FE4F4081518162817381848195810E9440 +:102C2000E7152196C770E9CFDF91CF911F910895E5 +:102C30004091B8015091B9016091BA017091BB0106 +:102C40008091BC019091BD010C94E7158091BD016C +:102C500082958F7009F054C08091BA01882309F4DD +:102C60004FC080918601A09187016091B801709159 +:102C7000B9014091BB015091BC01B6E08A1709F43B +:102C80003FC090E041155105C1F17F3F11F46F3F06 +:102C9000A1F1B89FF001B99FF00D1124E857FE4F44 +:102CA000218172132AC02081621327C02281211141 +:102CB00024C0238134812417350710F421503109B1 +:102CC000241B350B283C3105C0F42091BD012F7029 +:102CD00020612093BD0126E0289FF001299FF00D7F +:102CE0001124E357FE4F80818F708061808388EBD1 +:102CF00091E00E946F150C94F71501968770BECF76 +:102D00000895CF92DF92EF92FF920F931F93CF938C +:102D1000DF93CDB7DEB762970FB6F894DEBF0FBE74 +:102D2000CDBF8C0185E0F801DE011D9601900D926A +:102D30008A95E1F7D8014C9111965C911197129602 +:102D40006C9112971396CD90DC9014973091B80146 +:102D50007091B9018091BB019091BC01009709F479 +:102D60006BC17F3F19F43F3F09F466C1E090BA019F +:102D7000EE2009F4C0C02091BD01C816D90628F084 +:102D8000F601E81BF90BCF0104C0809590958C0DDE +:102D90009D1DFF24F394883C910578F0F12C207F51 +:102DA00009F0C6C07C2DD98AC88A89890E94D815A5 +:102DB00088EB91E00E946F15B1C0822F807F09F0EF +:102DC00046C0751314C0341312C0611110C02F70A7 +:102DD00020612093BD010E94181688EB91E00E94AB +:102DE0006F158091BD01D80115968C932EC0CD280A +:102DF00019F15F3F11F44F3FF9F0F62E61111CC03D +:102E0000809186012091870136E0821709F45AC02B +:102E100090E0389FF001399FF00D1124E857FE4FE4 +:102E20007181571306C07081471303C072817111FD +:102E300003C001968770E9CFF62E662309F418C106 +:102E40008091BD0181608093BD01F12C11C175138A +:102E500008C0341306C0611104C08091BD01D801BF +:102E6000C3C04D875E878D859E856A8B0E94AE1597 +:102E70006A898823E1F16623D1F12091BD01822F77 +:102E800082958F7090E0029774F08091B8019091D4 +:102E9000B90198878F831986DB86CA862C87CE0175 +:102EA00007960E946F1586E0F801A8EBB1E001904B +:102EB0000D928A95E1F70E9426160E941816FF24AB +:102EC000F394D6C04D875E878D859E850E94E21A59 +:102ED000292F22952F7030E0223031050CF0BCC034 +:102EE0009F7009F0B6C0805E883008F4C1C0C80188 +:102EF0000E946F15E4CFC816D90608F453C0F60136 +:102F0000E81BF90BCF01883C910508F450C0F12C67 +:102F10007C2DD98AC88A89890E94D815E8EBF1E00E +:102F200086E0DF011D928A95E9F70E941816A0C07D +:102F3000751314C0341312C0611110C08091BD010B +:102F4000F8018583C8010E946F1586E0E8EBF1E087 +:102F5000DF011D928A95E9F7FE2C8AC04D875E87B6 +:102F60008D859E856A8B0E94AE156A89882309F437 +:102F7000BECF662309F4BBCF2091BD01822F82957D +:102F80008F7090E002970CF48ECF8091B8019091F1 +:102F9000B9019A8389831B82DD82CC822E83CE0184 +:102FA00001967FCF809590958C0D9D1DACCFF62E10 +:102FB000662309F49CCF75132EC034132CC02091C6 +:102FC000BD0120FD1FC0822F82958F70D9F0D801DE +:102FD00015962C9315978F3049F08F5F982F929507 +:102FE000907F822F8F70892B15968C93C8010E9439 +:102FF0006F1586E0F801A8EBB1E001900D928A957B +:10300000E1F793CF86E0F801A8EBB1E001900D92D3 +:103010008A95E1F72DC04D875E878D859E850E943C +:10302000AE15811140CF8091BD0181608093BD01BB +:10303000C8010E946F151CC0662309F458CF4D8744 +:103040005E878D859E850E94AE15882309F44FCF3B +:103050002ACF811148CF0CC0243031050CF047CF66 +:103060009F7009F440CFF8019581907F09F03BCF24 +:103070008F2D62960FB6F894DEBF0FBECDBFDF91E5 +:10308000CF911F910F91FF90EF90DF90CF90089517 +:103090001F93CF93DF93CDB7DEB72C970FB6F8947D +:1030A000DEBF0FBECDBF4F83588769877A878B8776 +:1030B0009C87CE0107960E948116882369F08F8134 +:1030C00098852A853B85232BF1F19F3F09F063C04A +:1030D0008F3F09F060C037C086E0FE013796DE0101 +:1030E000119601900D928A95E1F76F817885EA85B6 +:1030F000FB85309741F17F3F11F46F3F21F1209123 +:10310000870130E0C90101968770992740918601B7 +:1031100050E08417950709F447C069837A83FD83DB +:10312000EC8396E0929FD001939FB00D1124A85795 +:10313000BE4FFE01319601900D929A95E1F7809372 +:1031400087010E94F71516E0809186019091870112 +:103150008917C1F1189FC001112488579E4F0E9402 +:103160008116882379F1E09186011E9FF0011124D8 +:10317000E857FE4F4081518162817381848195813E +:103180000E94E7158091860190E00196877099274B +:1031900080938601D9CF4F81588569857A858B8543 +:1031A0009C850E94E715CFCF0E94AA151092870137 +:1031B00010928601E8EBF1E086E0DF011D928A952E +:1031C000E9F7C1CF2C960FB6F894DEBF0FBECDBF86 +:1031D000DF91CF911F910895EF92FF920F931F936C +:1031E000CF93DF938C01009709F46CC0F12CEE248F +:1031F000E394E8012196F8018491843740F4843007 +:1032000008F051C0813081F0823019F15BC0853700 +:1032100009F444C0A8F19CE7980F903708F052C019 +:103220008F770E94F51241C00E5F1F4FFE01C491BF +:1032300080E28C0F883048F4C7708E2D01C0880F53 +:10324000CA95EAF70E94C81B14C08C2F0E942D1249 +:103250002DC00E5F1F4FFE01C49180E28C0F88309D +:1032600058F4C7708E2D01C0880FCA95EAF70E94E6 +:10327000CE1B0E94EF1B1AC08C2F0E94F51216C0A5 +:103280000E5F1F4FFE01C491CC2381F08FE99FE0B8 +:103290000197F1F700C00000C150F6CF0E5F1F4F3D +:1032A000FE01F49003C00E942D128E018F2D882301 +:1032B00009F49FCFEFE9FFE03197F1F700C000007C +:1032C0008150F5CFDF91CF911F910F91FF90EF903B +:1032D000089508956093C2017093C3018093C4015F +:1032E0009093C5010C9496150F931F930091C20102 +:1032F0001091C3012091C4013091C501DC01CB01C3 +:10330000802B912BA22BB32B8093C2019093C301EE +:10331000A093C401B093C5011F910F910C94961511 +:103320000F931F930091C2011091C3012091C4011A +:103330003091C501DC01CB0180239123A223B3236B +:103340008093C2019093C301A093C401B093C501BF +:103350001F910F910C9496150F931F930091C2012A +:103360001091C3012091C4013091C501DC01CB0152 +:1033700080279127A227B3278093C2019093C3018E +:10338000A093C401B093C5011F910F910C949615A1 +:103390001092BE011092BF011092C0011092C101A3 +:1033A0000C94961541E050E060E070E004C0440FDA +:1033B000551F661F771F8A95D2F74093BE01509321 +:1033C000BF016093C0017093C1010C94961541E058 +:1033D00050E060E070E004C0440F551F661F771F87 +:1033E0008A95D2F78091BE019091BF01A091C00152 +:1033F000B091C101482B592B6A2B7B2B4093BE0106 +:103400005093BF016093C0017093C1010C94961555 +:1034100041E050E060E070E004C0440F551F661FBB +:10342000771F8A95D2F74095509560957095809159 +:10343000BE019091BF01A091C001B091C10148238C +:1034400059236A237B234093BE015093BF016093AD +:10345000C0017093C1010C94961541E050E060E00A +:1034600070E004C0440F551F661F771F8A95D2F77E +:103470008091BE019091BF01A091C001B091C101A6 +:10348000482759276A277B274093BE015093BF01E5 +:103490006093C0017093C1010C9496150F931F9314 +:1034A0000091BE011091BF012091C0013091C10176 +:1034B000DC01CB01802B912BA22BB32B8093BE017F +:1034C0009093BF01A093C001B093C1011F910F91D0 +:1034D0000C9496150F931F930091BE011091BF019C +:1034E0002091C0013091C101DC01CB0180239123E7 +:1034F000A223B3238093BE019093BF01A093C00188 +:10350000B093C1011F910F910C9496150F931F93C7 +:103510000091BE011091BF012091C0013091C10105 +:10352000DC01CB0180279127A227B3278093BE011E +:103530009093BF01A093C001B093C1011F910F915F +:103540000C9496150895CF92DF92EF92FF920F930D +:103550001F93CF93DF938C01C090C201D090C30121 +:10356000E090C401F090C5018091BE019091BF012F +:10357000A091C001B091C101C82AD92AEA2AFB2A28 +:10358000CFE1D0E0D701C6010C2E04C0B695A795B7 +:10359000979587950A94D2F780FF06C0B8018C2FC3 +:1035A0000E946F09019721F4219760F780E001C024 +:1035B0008C2FDF91CF911F910F91FF90EF90DF90B3 +:1035C000CF900895CF93DF93EC010E94A31ABE0120 +:1035D0000E946F09DF91CF910895CB010E94E21AFA +:1035E00008958091C601859585958595089580916A +:1035F000C6018770089598E0899F90011124262BB9 +:103600002093C6010C94E7192091C601809582236E +:103610008093C601982F977069F430E0482F5527A2 +:1036200047FD50952417350729F085958595859593 +:103630000C94081A08959091C601977081E009F4DE +:1036400080E0089590910C01992321F090910D0153 +:10365000911109C020910E0130910F01F9013296AC +:103660009FEF40E01FC0982F9695969596959F30B6 +:1036700050F5E0910E01F0910F01E90FF11D8770F7 +:1036800021E030E0A90102C0440F551F8A95E2F7FE +:10369000CA019181892B818308959F3F39F04F5F43 +:1036A0004E3041F051915813F8CF0DC05111F7CF62 +:1036B000942FF5CF9F3F39F0F901E90FF11D97FDE8 +:1036C000FA9582830895089590910C01992321F031 +:1036D00090910D01911109C020910E0130910F01BF +:1036E000F9013296205F3F4F1FC0982F969596950F +:1036F00096959F30F0F4E0910E01F0910F01E90FE3 +:10370000F11D877021E030E0A90102C0440F551F70 +:103710008A95E2F7CA018095918189238183089572 +:103720003196E217F30729F090819813F9CF1082B0 +:10373000F7CF089581E090E0E0910E01F0910F0144 +:10374000E80FF91F1082019680319105A9F70895BD +:103750009091DA01892B8093DA01089580959091F8 +:10376000DA0189238093DA0108951092DA0108952D +:103770009091D901892B8093D901089580959091DA +:10378000D90189238093D90108951092D901089510 +:103790009091D801892B8093D801089580959091BC +:1037A000D80189238093D80108951092D8010895F3 +:1037B0008093C70108951092C701089580910E016A +:1037C00090910F01FC0131969C01205F3F4F80E0FA +:1037D000919191118F5FE217F307D1F70895E0916E +:1037E0000E01F0910F018091DA018083E0910E01CA +:1037F000F0910F0190818091D901892B8083E09114 +:103800000E01F0910F0190818091D801892B808366 +:103810008091C701882361F0E0910E01F0910F01C2 +:103820009081892B80830E94DE1B81111092C70139 +:1038300080910E0190910F010C941D1120E00097D2 +:1038400039F0AC0141505109842395232F5FF7CF04 +:10385000822F0895CF92DF92EF92FF926C01EE24B7 +:10386000FF24C114D104E104F10421F0C701B60121 +:1038700020E101C020E0C72ED82EE92EFF24C1147C +:10388000D104E104F10419F0285FC701B6016B010E +:103890007C0154E0F694E794D794C7945A95D1F7F5 +:1038A000C114D104E104F10419F02C5FC701B60181 +:1038B0006B017C0142E0F694E794D794C7944A9553 +:1038C000D1F7C114D104E104F10419F02E5FC7014E +:1038D000B601DC01CB01B695A79597958795892B05 +:1038E0008A2B8B2B09F02F5F822FFF90EF90DF90B8 +:1038F000CF9008958091F201843021F11092DC0183 +:1039000020E488E190E00FB6F894A89580936000D9 +:103910000FBE2093600080E00E940A0A83B7817F77 +:10392000846083BF83B7816083BF7894889583B7B1 +:103930008E7F83BF88E10FB6F89480936000109269 +:1039400060000FBE0895089508950E94A31C0E9470 +:10395000F6030E94A41C0E94EB0491E0811101C0B7 +:1039600090E0892F08950E94AA150E9411110C94CD +:103970000A0A82E084BD93E095BD9AEF97BD8093DB +:103980006E0008952FB7F8948091DD019091DE01CB +:10399000A091DF01B091E0012FBF0895CF92DF9297 +:1039A000EF92FF920F931F932FB7F8944091DD0190 +:1039B0005091DE016091DF017091E0012FBF6A013B +:1039C0007B01EE24FF248C0120E030E0C016D106FC +:1039D000E206F30610F4415051099A01281B390BF5 +:1039E000C9011F910F91FF90EF90DF90CF90089544 +:1039F0001F920F920FB60F9211248F939F93AF9344 +:103A0000BF938091DD019091DE01A091DF01B09123 +:103A1000E0010196A11DB11D8093DD019093DE01AF +:103A2000A093DF01B093E001BF91AF919F918F917F +:103A30000F900FBE0F901F9018950E940E0EF894D5 +:103A40002FEF87EA91E6215080409040E1F700C0D7 +:103A5000000087E090EBDC018093FC019093FD0176 +:103A6000A093FE01B093FF019CE088E10FB6F894AB +:103A7000A895809360000FBE90936000FFCFEF92F7 +:103A8000FF920F931F93CF93DF93D82FCDE08C2F0E +:103A90000E94E40405E010E0E82EF12CC701002E9E +:103AA00002C0959587950A94E2F780FF09C0602FC0 +:103AB0007C2F80E00E941A07D81302C081E006C064 +:103AC0000150110958F7C15010F780E0DF91CF91F4 +:103AD0001F910F91FF90EF900895CF93C82F8CE224 +:103AE0000E943F1D882321F08C2FCF910C943F1D05 +:103AF00080E0CF910895CF930E94C21E811102C031 +:103B00000E94A81EC5E6C15049F00E94F6038FE34B +:103B10009CE90197F1F700C00000F5CF89E20E940F +:103B20006D1D811113C18AE20E946D1D81110E94D9 +:103B3000A81E85E00E946D1D81110E941D1D0E941E +:103B4000CD1E8093DB0187E00E946D1D8823A9F1C3 +:103B50008BE10E946D1D882351F08091DB0181FB78 +:103B6000222720F991E0922790FB81F90EC08EE088 +:103B70000E946D1D882361F08091DB0182FB22276A +:103B800020F991E0922790FB82F98093DB0115C028 +:103B900080E10E946D1D9091DB01882341F093FB31 +:103BA000222720F981E0822780FB93F904C0892F26 +:103BB000809580FB90F99093DB018091DB010E945E +:103BC000D11E0E94DF1E8093FB0180EE0E946D1DBE +:103BD000882341F08091FB01982F909590FB80F90C +:103BE0008093FB0189E30E946D1D882359F0809129 +:103BF000FB0181FB222720F991E0922790FB81F9BC +:103C00008093FB0182EE0E946D1D882359F0809104 +:103C1000FB0182FB222720F991E0922790FB82F999 +:103C20008093FB0186EE0E946D1D882359F08091E0 +:103C3000FB0183FB222720F991E0922790FB83F977 +:103C40008093FB0183EE0E946D1D882359F08091C3 +:103C5000FB0184FB222720F991E0922790FB84F955 +:103C60008093FB0185E30E946D1D882359F08091AC +:103C7000FB0185FB222720F991E0922790FB85F933 +:103C80008093FB0181E30E946D1D882359F0809190 +:103C9000FB0186FB222720F991E0922790FB86F911 +:103CA0008093FB0181E10E946D1D882359F0809172 +:103CB000FB0187FB222720F991E0922790FB87F9EF +:103CC0008093FB018091FB010E94E31E8091FB0128 +:103CD00087FB882780F980930D0187E20E946D1D84 +:103CE000C82F8EE10E946D1D8111C2608FE10E947C +:103CF0006D1D8111C46080E20E946D1D8111C8603C +:103D000081E20E946D1D8111C06182E20E946D1DE1 +:103D10008111C06283E20E946D1D8111C06484E242 +:103D20000E946D1D882311F0C06802C0CC2329F0C9 +:103D30008C2F0E94DA1E6C2F03C00E94D61E682FA3 +:103D400070E080E090E0CF910C946A19CF910895D3 +:103D50006DEE7EEF80E090E00E94142560E082E04E +:103D600090E00E94022560E083E090E00E9402253E +:103D700060E084E090E00E94022560E085E090E051 +:103D80000C94022580E090E00E94FC2421E08D3E0E +:103D90009E4F09F020E0822F089582E090E00C947D +:103DA000F424682F82E090E00C94022583E090E0F8 +:103DB0000C94F424682F83E090E00C94022584E0B6 +:103DC00090E00C94F424682F84E090E00C94022599 +:103DD0008091E30180FF0BC06091130185E0689F33 +:103DE000B001112475956795759567952BC081FF76 +:103DF00009C06091130185E0689FB0011124759599 +:103E0000679520C082FF07C06091130185E0689F1D +:103E1000B001112417C09091E4019923D1F0609171 +:103E20001201961788F72091130185E0289F9001D1 +:103E30001124929FA001939F500D112470E0CA019C +:103E40000E94C6246038710540F46115710539F08F +:103E500002C065E070E0862F08958FE7089581E045 +:103E600008958091E30180FF08C06091110170E026 +:103E7000759567957595679521C081FF06C060911E +:103E8000110170E07595679519C082FF04C06091BB +:103E9000110170E010C09091E4019923C1F060918C +:103EA00010019617A0F780911101899FC00111247C +:103EB00070E00E94C6246038710528F46115710510 +:103EC00021F0862F08958FE7089581E0089561E03D +:103ED00070E0F4CF803F21F40E94E81E819504C079 +:103EE000813F29F40E94E81E8093E7010895823FF4 +:103EF00021F40E94E81E819504C0833F29F40E94AA +:103F0000E81E8093E6010895893F19F40E94311F4D +:103F100005C08A3F31F40E94311F81958093E801EA +:103F200008958B3F21F40E94311F819504C08C3F7E +:103F300029F40E94311F8093E9010895843F21F400 +:103F40008091E501816017C0853F21F48091E501F2 +:103F5000826011C0863F21F48091E50184600BC02E +:103F6000873F21F48091E501886005C0883F31F4E6 +:103F70008091E50180618093E50108958D3F21F4F2 +:103F80008091E30181600BC08E3F21F48091E301B9 +:103F9000826005C08F3F29F48091E30184608093A3 +:103FA000E3010895803F39F48091E70187FF6CC0F9 +:103FB0001092E70169C0813F29F48091E70118164A +:103FC000BCF362C09091E601823F29F497FF5CC088 +:103FD0001092E60159C0833F19F41916CCF354C06E +:103FE000893F41F48091E80118160CF04DC0109201 +:103FF000E8014AC08A3F29F48091E80187FF44C064 +:10400000F6CF8B3F39F48091E90187FF3DC01092D4 +:10401000E9013AC08C3F29F48091E9011816BCF3FC +:1040200033C0843F21F48091E5018E7F17C0853F26 +:1040300021F48091E5018D7F11C0863F21F48091AC +:10404000E5018B7F0BC0873F21F48091E501877FDD +:1040500005C0883F31F48091E5018F7E8093E501B2 +:1040600013C08D3F21F48091E3018E7F0BC08E3F02 +:1040700021F48091E3018D7F05C08F3F29F4809169 +:10408000E3018B7F8093E3018091E60181110EC0F3 +:104090008091E70181110AC08091E801811106C079 +:1040A0008091E901811102C01092E401089585EE2A +:1040B00091E00E9428110E94C21C9093E20180931B +:1040C000E10108951F93CF93DF938091E1019091D7 +:1040D000E2010E94CE1CAC019091E401992321F0F1 +:1040E0002091140130E006C0209115018AE0289F3C +:1040F000900111244217530708F486C08091E6010D +:10410000C091E701D091E8011091E901811107C048 +:10411000C11176C0D11174C0111172C075C09F3F1A +:1041200019F09F5F9093E401181624F40E94E81E92 +:104130008093E6018091E60187FF05C00E94E81E9A +:1041400081958093E6011C1624F40E94E81E80935A +:10415000E7018091E70187FF05C00E94E81E819575 +:104160008093E7016091E601662339F1C091E70190 +:10417000CC2319F1772767FD7095872F972F0E9421 +:10418000D72323E333E343E35FE30E943B240E940E +:10419000A4236093E6016C2F772767FD7095872F26 +:1041A000972F0E94D72323E333E343E35FE30E9487 +:1041B0003B240E94A4236093E7011D1624F40E946F +:1041C000311F8093E8018091E80187FF05C00E94BC +:1041D000311F81958093E801111624F40E94311F4C +:1041E0008093E9018091E90187FF05C00E94311F9A +:1041F00081958093E901DF91CF911F910C94572015 +:104200009F3F09F08ECF96CFDF91CF911F910895F8 +:10421000E5EEF1E085E0DF011D928A95E9F7109265 +:10422000E4011092E3010895833081F128F4813094 +:1042300059F08230D1F00895853009F449C0B8F1C1 +:10424000863009F456C0089580911501262F30E07C +:10425000280F311D2F3F310524F4680F609315019D +:1042600008958FEF80931501089580911401262FF2 +:1042700030E0280F311D2F3F310524F4680F609383 +:10428000140108958FEF8093140108958091130114 +:10429000262F30E0280F311D2F3F310524F4680F01 +:1042A0006093130108958FEF809313010895809117 +:1042B0001201262F30E0280F311D2F3F310524F445 +:1042C000680F6093120108958FEF80931201089593 +:1042D00080911101262F30E0280F311D2F3F31052D +:1042E00024F4680F6093110108958FEF80931101FA +:1042F000089580911001262F30E0280F311D2F3FA7 +:10430000310524F4680F6093100108958FEF8093B6 +:1043100010010895833011F128F4813049F0823082 +:1043200091F00895853081F120F18630C1F1089532 +:1043300080911501681720F4861B8093150108955C +:1043400010921501089580911401681720F4861BBE +:10435000809314010895109214010895809113011F +:10436000681720F4861B809313010895109213019F +:10437000089580911201681720F4861B8093120122 +:10438000089510921201089580911101681720F488 +:10439000861B809311010895109211010895809158 +:1043A0001001681720F4861B809310010895109265 +:1043B000100108950F931F938D3109F46BC008F01D +:1043C0003FC08E3009F47FC0C0F4873009F469C063 +:1043D00068F4863009F0B1C08091DB01817F8E7F67 +:1043E0008093DB0181E08093EB01A8C0883009F461 +:1043F000A2C08B3009F49FC0A0C0863109F49BC0D5 +:1044000078F4803109F472C0813109F096C00E94BD +:10441000AA1590910D0181E0892780930D018BC031 +:10442000893109F488C08B3109F087C08091DB01A4 +:1044300081FB222720F991E0922790FB81F94CC063 +:10444000853309F470C048F4873209F46CC008F46D +:1044500059C0893209F467C070C0833438F48A3394 +:1044600008F04EC0883309F466C067C0833409F48D +:104470005AC0883409F061C00E94AA150FEF13EDED +:1044800020E3015010402040E1F700C000000E94EE +:104490001D1D51C00E945E230E9411110E940A0A34 +:1044A0004AC09091DB01892F8095817080FB90F943 +:1044B00029F0966098609093DB0140C0997F977FC8 +:1044C0009093DB0138C08091DB0182FB222720F929 +:1044D00091E0922790FB82F98093DB01992359F1B7 +:1044E0008091DB0181608093DB0125C08091DB013D +:1044F00083FB222720F991E0922790FB83F9ECCFF0 +:10450000895301C08D5141E050E060E070E08A01C4 +:104510009B0104C0000F111F221F331F8A95D2F781 +:10452000C901B80104C061E070E080E090E00E9441 +:104530006A190E94AA1581E001C080E01F910F91C5 +:10454000089580E0089580E00895CF93C82F80916A +:10455000EB01813079F018F08230E9F187C0E09109 +:104560000E01F0910F018081813169F0823209F0F2 +:104570007FC009C0E0910E01F0910F01808181316F +:1045800011F0823261F48C2F0E94A122811104C0AB +:104590008C2F0E94DA211DC081E090E01AC08C2F80 +:1045A0000E94A322811114C0C43179F048F4CB30A9 +:1045B00079F0C03109F060C082E08093EB0108C05F +:1045C000C93219F0C83321F057C01092EB0154C022 +:1045D00081E0817053C0C93289F118F5C43171F19D +:1045E000A8F4C73009F046C08AE08093150194E131 +:1045F0009093140193E0909313018093120188E04B +:104600008093110188E28093100134C0CE51C630EE +:1046100088F5EC2FF0E0E65DFE4F80818093EA01A3 +:1046200029C0CE34E9F020F4CB3421F56AE013C080 +:10463000C13579F0C235F1F461E00DC08091EA0135 +:10464000882319F01092EA0115C081E08093EB01F4 +:1046500015C061E006C08091EA010E9414210AC0E1 +:104660006AE08091EA010E948A2104C01092EB0165 +:1046700080E004C081E002C080E0ABCFCF9108951C +:10468000E1E8F0E0808188608083808181608083C0 +:104690008FB7F89493E09093890090ED9093880001 +:1046A0008FBF0895EFE6F0E08081826080830895F7 +:1046B000EFE6F0E080818D7F80830895EFE6F0E003 +:1046C000908182E08927808308951F920F920FB610 +:1046D0000F9211242F933F934F935F936F937F9388 +:1046E0008F939F93AF93BF93EF93FF938091EC01D0 +:1046F0009091ED0101969093ED018093EC01811171 +:1047000003C082E00E940A0AE091ED01E695E69579 +:10471000F0E0E65FF94FE4918091EC018E1303C065 +:1047200080E00E940A0AFF91EF91BF91AF919F91A3 +:104730008F917F916F915F914F913F912F910F904A +:104740000FBE0F901F90189504D06894B1118DC0C2 +:10475000089570D088F09F5790F0B92F9927B751DE +:10476000A0F0D1F0660F771F881F991F1AF0BA9535 +:10477000C9F712C0B13081F077D0B1E0089574C0AC +:10478000672F782F8827B85F39F0B93FCCF386952B +:1047900077956795B395D9F73EF490958095709588 +:1047A00061957F4F8F4F9F4F0895E89409C097FB05 +:1047B0003EF490958095709561957F4F8F4F9F4FF8 +:1047C0009923A9F0F92F96E9BB279395F69587953C +:1047D00077956795B795F111F8CFFAF4BB0F11F4FF +:1047E00060FF1BC06F5F7F4F8F4F9F4F16C08823A6 +:1047F00011F096E911C0772321F09EE8872F762FDC +:1048000005C0662371F096E8862F70E060E02AF01C +:104810009A95660F771F881FDAF7880F9695879508 +:1048200097F9089557FD9058440F551F59F05F3F71 +:1048300071F04795880F97FB991F61F09F3F79F0C2 +:1048400087950895121613061406551FF2CF469544 +:10485000F1DF08C0161617061806991FF1CF8695C6 +:104860007105610508940895E894BB2766277727AA +:10487000CB0197F908950BD078C069D028F06ED09D +:1048800018F0952309F05AC05FC01124EECFCADF9B +:10489000A0F3959FD1F3950F50E0551F629FF00153 +:1048A000729FBB27F00DB11D639FAA27F00DB11DAC +:1048B000AA1F649F6627B00DA11D661F829F222735 +:1048C000B00DA11D621F739FB00DA11D621F839FBC +:1048D000A00D611D221F749F3327A00D611D231F92 +:1048E000849F600D211D822F762F6A2F11249F57E0 +:1048F00050408AF0E1F088234AF0EE0FFF1FBB1F03 +:10490000661F771F881F91505040A9F79E3F5105A1 +:1049100070F014C0AACF5F3FECF3983EDCF38695AD +:1049200077956795B795F795E7959F5FC1F7FE2B4C +:10493000880F911D9695879597F9089597F99F6728 +:1049400080E870E060E008959FEF80EC0895002417 +:104950000A941616170618060906089500240A94E4 +:1049600012161306140605060895092E0394000C6A +:1049700011F4882352F0BB0F40F4BF2B11F460FFF9 +:1049800004C06F5F7F4F8F4F9F4F089597FB072E97 +:1049900016F4009407D077FD09D00E94E02407FCAC +:1049A00005D03EF4909581959F4F0895709561953F +:1049B0007F4F0895EE0FFF1F0590F491E02D0994AD +:1049C000AA1BBB1B51E107C0AA1FBB1FA617B70735 +:1049D00010F0A61BB70B881F991F5A95A9F7809551 +:1049E0009095BC01CD010895F999FECF92BD81BD8E +:1049F000F89A992780B50895A8E1B0E042E050E028 +:104A00000C941C25262FF999FECF92BD81BDF89AF2 +:104A1000019700B4021639F01FBA20BD0FB6F89402 +:104A2000FA9AF99A0FBE08950196272F0E9403253E +:104A30000C940225DC01CB01FC01F999FECF06C0E4 +:104A4000F2BDE1BDF89A319600B40D92415050404C +:084A5000B8F70895F894FFCFB8 +:104A580002200C0A9A0A770A430A0F0A0101C801C0 +:104A680028080A03140A3F4D3639CB057E05480548 +:104A78000F05A204BB04D404ED04010203040506D7 +:044A88000708090012 +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/coderkun_neo2/keymap.c b/keyboards/ergodox_ez/keymaps/coderkun_neo2/keymap.c new file mode 100644 index 000000000..d25e2b995 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/coderkun_neo2/keymap.c @@ -0,0 +1,274 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_neo2.h" + +// Layer names +#define BASE 0 // default layer +#define PMQ 1 // poor man’s QWERTZ +#define PMN 2 // poor man’s Neo +#define FMU 3 // FMU layer +#define NHL 4 // Neo’s software layer 4 rebuilt in Hardware + + +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, TG(PMQ), + 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, + TG(PMN), 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: poor man’s QWERTZ + * based on kaimi’s layout + * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐ + * │ TAB │ 1 │ 2 │ 3 │ 4 │ 5 │ ` │ │ ´ │ 6 │ 7 │ 8 │ 9 │ 0 │ BKSPC │ + * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤ + * │ C │ P │ T │ F │ K │ L │ HOM │ │ END │ B │ A │ S │ G │ V │ Y │ + * ├───────┼─────┼─────┼─────╆─────╅─────┤ E │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤ + * │ Mod3 │ D │ H │ Ö │ O │ I ├─────┤ ├─────┤ U │ - │ Z │ E │ X │ Mod3 │ + * ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│ │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤ + * │ LSHFT │ Ä │ Q │ R │ W │ N │ │ │ │ J │ M │ , │ . │ ẞ │ Shift │ + * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ + * │ CTL │ ALT │ MO1 │ Win │ MO4 │ │ M04 │ Win │ MO1 │ Alt │ CTL │ + * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ + * │ ← │ ↑ │ │ ↓ │ → │ + * ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐ + * │ │ │ ─ │ │ ─ │ │ │ + * │ SPC │ RTN ├─────┤ ├─────┤ RTN │ SPC │ + * │ │ │ HYP │ │ MEH │ │ │ + * └─────┴─────┴─────┘ └─────┴─────┴─────┘ + */ +[PMQ] = KEYMAP( + // left hand + KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL, + DE_C, DE_P, DE_T, DE_F, DE_K, DE_L, KC_HOME, + NEO_L1_L, DE_D, DE_H, DE_OE, DE_O, DE_I, + KC_LSFT, DE_AE, DE_Q, DE_R, DE_W, DE_N, KC_TRNS, + KC_LCTL, KC_LALT,MO(FMU),KC_LGUI,MO(NHL), + 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, DE_B, DE_A, DE_S, DE_G, DE_V, DE_Y, + DE_U, DE_MINS,DE_Z, DE_E, DE_X, NEO_L1_R, + KC_TRNS, DE_J, DE_M, DE_COMM,DE_DOT, DE_SS, KC_RSFT, + MO(NHL),KC_RGUI,MO(FMU),KC_RALT,KC_RCTL, + KC_DOWN, KC_RGHT, + KC_MINS, + MEH_T(KC_NO),KC_ENT,KC_SPC + ), + +/* Layer 2: poor man’s Neo + * based on kaimi’s layout + * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐ + * │ 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 │ MO4 │ │ M04 │ Win │ MO1 │ Alt │ CTL │ + * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ + * │ ← │ ↑ │ │ ↓ │ → │ + * ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐ + * │ │ │ ─ │ │ ─ │ │ │ + * │ SPC │ RTN ├─────┤ ├─────┤ RTN │ SPC │ + * │ │ │ HYP │ │ MEH │ │ │ + * └─────┴─────┴─────┘ └─────┴─────┴─────┘ + */ +[PMN] = KEYMAP( + KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL, + DE_Y, DE_X, DE_V, DE_L, DE_C, DE_W, KC_HOME, + KC_NO, DE_U, DE_I, DE_A, DE_E, DE_O, + KC_LSFT, DE_UE, DE_OE, DE_AE, DE_P, DE_Z, KC_TRNS, + KC_LCTL, KC_LALT,MO(FMU),KC_LGUI,MO(NHL), + 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, DE_K, DE_H, DE_G, DE_F, DE_Q, DE_SS, + DE_S, DE_N, DE_R, DE_T, DE_D, KC_NO, + KC_TRNS, DE_B, DE_M, KC_COMM,KC_DOT, DE_J, KC_RSFT, + MO(NHL),KC_RGUI,MO(FMU),KC_RALT,KC_RCTL, + KC_DOWN, KC_RGHT, + KC_MINS, + MEH_T(KC_NO),KC_ENT,KC_SPC + ), + +/* Layer 3: 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 + ), + +/* Layer 4: Neo’s software layer 4 rebuilt in Hardware + * based on kaimi’s layout + * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤ + * │ │ PgUp│ BSpc│ ↑ │ Del │ PgDn│ │ │ │ │ 7 │ 8 │ 9 │ + │ − │ + * ├───────┼─────┼─────┼─────╆─────╅─────┤ │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤ + * │ │ Home│ ← │ ↓ │ → │ End ├─────┤ ├─────┤ │ 4 │ 5 │ 6 │ , │ . │ + * ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│ │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤ + * │ │ Esc │ Tab │ Ins │ Ret │ Undo│ │ │ │ │ 1 │ 2 │ 3 │ │ │ + * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ + * │ │ │(MO1)│ │(MO4)│ │(MO4)│ │(MO1)│ │ │ + * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ + * │ │ │ │ │ │ + * ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐ + * │ │ │ │ │ │ │ │ + * │ │ ├─────┤ ├─────┤ │ │ + * │ │ │ │ │ │ │ │ + * └─────┴─────┴─────┘ └─────┴─────┴─────┘ + */ +[NHL] = KEYMAP( + // left hand + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_PGUP,KC_BSPC,KC_UP, KC_DELT,KC_PGDN,KC_NO, + KC_NO, KC_HOME,KC_LEFT,KC_DOWN,KC_RGHT,KC_END, + KC_NO, KC_ESC, KC_TAB, KC_INS, KC_ENT, KC_UNDO,KC_TRNS, + KC_NO, KC_NO, KC_TRNS,KC_NO, KC_TRNS, + KC_NO, KC_NO, + KC_NO, + KC_NO, KC_NO, KC_NO, + // right hand + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_7, KC_8, KC_9, DE_PLUS,DE_MINS, + KC_NO, KC_4, KC_5, KC_6, KC_COMM,KC_DOT, + KC_TRNS, KC_NO, KC_1, KC_2, KC_3, KC_NO, KC_NO, + KC_TRNS,KC_NO, KC_TRNS,KC_NO, KC_NO, + KC_NO, KC_NO, + KC_NO, + KC_NO, KC_NO, KC_NO + ), +}; + +const uint16_t PROGMEM fn_actions[] = { + [BASE] = ACTION_FUNCTION(BASE), + [PMQ] = ACTION_FUNCTION(PMQ), + [PMN] = ACTION_FUNCTION(PMN), + [FMU] = ACTION_LAYER_TAP_TOGGLE(FMU), + [NHL] = ACTION_LAYER_TAP_TOGGLE(NHL) +}; + + +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(); + break; + case PMQ: + ergodox_right_led_2_on(); + break; + case PMN: + ergodox_right_led_3_on(); + break; + default: + ergodox_board_led_off(); + break; + } + +}; diff --git a/keyboards/ergodox_ez/keymaps/coderkun_neo2/readme.md b/keyboards/ergodox_ez/keymaps/coderkun_neo2/readme.md new file mode 100644 index 000000000..2a4d3a535 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/coderkun_neo2/readme.md @@ -0,0 +1,31 @@ +# coderkun’s Neo2 layout for the ErgoDox EZ + +The idea of this layout is to use it for [Neo2](http://www.neo-layout.org) but also provide layers to use QWERTZ with activated Neo driver and to use (basic) Neo when no driver is available (standard QWERTZ driver is active) (e. g. on other computers, in virtual machines) and to make heavily use of thumb keys. + +The main goal of the default layer is to provide a complete symmetric layout with each modifier equally placed for both hands (mirror, of course). + +It also features a layer for additional keys like F-keys (F1 – F12), some mouse keys and (hopefully in the near future) some useful Unicode symbols. + + +## Layers + +0. Default layer for Neo2 +1. Poor man’s QWERTZ +2. Poor man’s Neo +3. F-keys, mouse keys und Unicode symbols +4. Neo’s software layers 4 rebuilt in hardware + + +## Build + +1. Enable Unicode in Makefile + + ``` + UNICODE_ENABLE = yes + ``` +2. Build as usual + + ``` + make clean + make KEYMAP=coderkun_neo2 + ``` diff --git a/keyboards/ergodox_ez/keymaps/colemak/compiled.hex b/keyboards/ergodox_ez/keymaps/colemak/compiled.hex new file mode 100644 index 000000000..e3ce9a68f --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/colemak/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947A020C94BE020C94BE020C94BE02B4 +:100010000C94BE020C94BE020C94BE020C94BE0260 +:100020000C94BE020C94BE020C94620D0C94340E1F +:100030000C94BE020C94BE020C94BE020C94BE0240 +:100040000C94BE020C943E220C94BE020C94BE0290 +:100050000C94BE020C94D11B0C94BE020C94BE02F4 +:100060000C94BE020C94BE020C94BE020C94BE0210 +:100070000C94BE020C94BE020C94BE020C94BE0200 +:100080000C94BE020C94BE020C94BE020C94BE02F0 +:100090000C94BE020C94BE020C94BE020C94BE02E0 +:1000A0000C94BE020C94BE020C94BE02A10EC30EB0 +:1000B000B10FC30EB10F080F2B0FB10F800F930FAD +:1000C0006212621291129112C712E71218141814D8 +:1000D000F2121814A213A2130914181418141214EB +:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300 +:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0 +:10010000C113CE13D513DC13E6130000F0A12E00AB +:100110004C002A00E100354100001E0014000400DC +:100120001D7134004D001F001A0015001B00E10472 +:100130002A00200009001600060050002C002100B3 +:100140001300170019004F004A0022000A000700A0 +:10015000050000006574500001540000007F00009D +:10016000E3004F000154000000770000E20023008C +:100170000D000B000E000000297124000F0011007B +:10018000100052004B0025001800080036005100F6 +:10019000280026001C000C0037002F002B00270031 +:1001A00033001242387130004E002D00310034000F +:1001B000E500C10000000100010001000100010094 +:1001C00000003A001E0220022202010001003B0052 +:1001D0001F0221022302010001003C002F0226021F +:1001E0002F00010001003D00300227023000010015 +:1001F00001003E003102350035020000010001001F +:1002000001000000010000000100010001000000E9 +:100210000100000001003F005200510024020000D4 +:1002200001004000240021001E00010001004100E7 +:10023000250022001F003700010042002600230095 +:10024000200027000100430025022E0231002E006D +:100250000100440045000100010001000000010010 +:100260000100010001000100000001000100010087 +:1002700001000100010001000100F2000100010085 +:1002800001000100F000F1000100F4000100010094 +:100290000100F3000100F500010001000100010070 +:1002A0000100000001000100010000000100000049 +:1002B0000100010001000000010000000100010038 +:1002C0000100010001000000010001000100010027 +:1002D0000100A9000100010001000100AC00AA001A +:1002E000B600010001000100AB00A8000100010000 +:1002F0000100010001000100010001000100AE0049 +:1003000001000100000016034500720067006F0045 +:1003100044006F007800200045005A0000001603DA +:100320004500720067006F0044006F0078002000F5 +:1003300045005A0000000403090409026D0004018D +:1003400000A0FA09040000010301010009211101C4 +:100350000001223F000705810308000A090401008B +:100360000103010200092111010001224D000705CE +:10037000820308000A0904020001030000000921A9 +:10038000110100012236000705830308000A090451 +:1003900003000103000000092111010001223900BE +:1003A000070584031000011201100100000008ED90 +:1003B000FE071301000102000105010906A1010564 +:1003C0000719E029E7150025019508750181020547 +:1003D000081901290595057501910295017503918B +:1003E0000105071900297715002501957875018108 +:1003F00002C005010980A101850216010026B7008F +:100400001A01002AB700751095018100C0050C097A +:1004100001A1018503160100269C021A01002A9CF5 +:1004200002751095018100C005010902A1010901B1 +:10043000A10005091901290515002501950575017A +:10044000810295017503810105010930093115818A +:10045000257F95027508810609381581257F95014C +:1004600075088106050C0A38021581257F950175EE +:10047000088106C0C005010906A101050719E02988 +:10048000E715002501950875018102950175088120 +:100490000105081901290595057501910295017558 +:1004A0000391010507190029FF150025FF95067521 +:1004B000088100C0000000000000000000000001F2 +:1004C0000204060A0F17202C3A4A5D71879DB3C7B4 +:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF +:1004E0003A2C20170F0A0604020100000000000049 +:1004F0000000000011241FBECFEFDAE0DEBFCDBF49 +:1005000004B603FE24C08091FB019091FC01A091F0 +:10051000FD01B091FE018730904BA740B04BB9F47C +:100520001092FB011092FC011092FD011092FE014D +:1005300014BE84B7877F84BF88E10FB6F894809398 +:100540006000109260000FBEE0E0FFE3099511E04B +:10055000A0E0B1E0EAE0F8E402C005900D92A43317 +:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0 +:10057000B107E1F70E94A60A0C9403240C94000032 +:100580001092B9008AE08093B800089594EA90939D +:10059000BC009091BC0097FFFCCF9091B900987F70 +:1005A000983021F0903111F081E008958093BB00E4 +:1005B00084E88093BC008091BC0087FFFCCF8091D1 +:1005C000B900887F883111F0803471F780E0089598 +:1005D00084E98093BC008091BC0084FDFCCF089529 +:1005E0008093BB0084E88093BC008091BC0087FFAF +:1005F000FCCF9091B900987F81E0983209F480E0B7 +:10060000089584E88093BC008091BC0087FFFCCFF4 +:100610008091BB00089580910101811115C080E493 +:100620000E94C6028093010181110CC082E10E94E8 +:10063000F00280930101811105C08FEF0E94F0024A +:10064000809301010E94E80284B1807F84B985B162 +:10065000807F85B98AB1837F8AB98BB1837F8BB95B +:100660003E98469808950E94C604809301010E9416 +:100670000B0380B38C7080BB81B3836F81BBA5E318 +:10068000B1E0E3E4F1E08EE08E0F11921D928E1343 +:10069000FCCF0C94B004BF92CF92DF92EF92FF9206 +:1006A0000F931F93CF93DF9380910101882379F0FB +:1006B000809134018F5F80933401811108C00E94C2 +:1006C000C60480930101811102C00E94580405E311 +:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407 +:1006E000E394F12CC730D10500F58091010181110F +:1006F00064C080E40E94C60280930101811112C08F +:1007000082E10E94F0028093010181110BC0C701B8 +:100710000C2E01C0880F0A94EAF780950E94F0021F +:10072000809301010E94E80248C0CA30A1F028F479 +:10073000C83059F0C93061F005C0CC3089F070F094 +:10074000CD3089F0209A289810C0219A29980DC0A0 +:10075000229A2A980AC0239A2B9807C0529A01C05D +:10076000539A5B9802C03E9A469890EA9A95F1F7A0 +:100770009FB1799902C082E001C080E091709D250F +:10078000982B7C9902C084E001C080E0892B7D9980 +:1007900002C038E001C030E0832B7E9902C020E126 +:1007A00001C020E0822B9FB19095991F9927991F36 +:1007B0009295990F907E892B0FC080910101811134 +:1007C00049C080E40E94C60280930101882379F128 +:1007D000B12C0E94E8028B2DF8019081981719F036 +:1007E0008083C09200010E940B0321960F5F1F4F70 +:1007F000CE30D10509F076CF80910001882361F1D8 +:10080000815080930001882339F08FE99FE00197A0 +:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F +:10082000CF01825F91919D938E13FCCF15C083E120 +:100830000E94F002809301018111CACF81E40E94DD +:10084000C602809301018111C3CF0E940103B82E1B +:10085000B094BFCF80E0C0CF0E94560481E0DF910A +:10086000CF911F910F91FF90EF90DF90CF90BF90AD +:100870000895E82FF0E0ED5BFE4F80810895089524 +:100880000F931F93CF93DF93C3E4D1E010E00C2FBD +:10089000025F899190E00E94F71A180F0C13F9CFAC +:1008A000812FDF91CF911F910F9108950C94260510 +:1008B00056985E9825982D9826982E9827982F98C8 +:1008C0008FEF90E0909389008093880090938B0045 +:1008D00080938A0090938D0080938C00259A2D9AA6 +:1008E0002FEF80E792E0215080409040E1F700C078 +:1008F0000000269A2E9A2FEF80E792E02150804048 +:100900009040E1F700C00000279A2F9A2FEF80E770 +:1009100092E0215080409040E1F700C0000025980F +:100920002D982FEF80E792E0215080409040E1F732 +:1009300000C0000026982E982FEF80E792E021500B +:1009400080409040E1F700C0000027982F9856980B +:100950005E9825982D9826982E9827982F98089578 +:1009600089EA8093800089E08093810024982C9804 +:100970003F988AB18F748AB96E98479A8BB1806B11 +:100980008BB9769A0E9458040C94250580E28093D6 +:1009900001018091510181110EC00E94C00281E0CD +:1009A000809351012FEF83ED90E3215080409040E0 +:1009B000E1F700C0000080E40E94C60280930101BC +:1009C00081112EC00E94F00280930101811128C084 +:1009D0000E94F00280930101811122C08FE30E94E6 +:1009E000F0028093010181111BC00E94E80280E4A3 +:1009F0000E94C60280930101811112C08CE00E9406 +:100A0000F0028093010181110BC00E94F0028093DB +:100A10000101811105C08FE30E94F0028093010162 +:100A20000E94E80280910101089561110BC0FC0150 +:100A30008281882321F085EE0E94061103C085EE95 +:100A40000E94CE1180E090E0089508956091BD016C +:100A50007091BE018091BF019091C0010E94031B63 +:100A600056985E9825982D9826982E9827982F9816 +:100A7000813019F0823021F00895259A2D9A089539 +:100A8000269A2E9A089581E0089581E008950C94A5 +:100A9000450508950F931F93CF93DF938C01FC01BD +:100AA000C081D181CE010E947C19BE010E94F30554 +:100AB000EC01B8010E944705882309F48DC0F801B4 +:100AC0008281882309F44AC080915D0181111FC091 +:100AD000C431F0E5DF0709F051C00E94490581E00B +:100AE00080935D010E949B1B90935C0180935B014E +:100AF0001092540110925601109255011092580113 +:100B00001092570110925A011092590165C08091BC +:100B10005B0190915C010E94A71B883C910570F4D9 +:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB +:100B3000D183C0838F5F809354014EC0C43880E559 +:100B4000D80721F0C538D04501F13AC0F8018281BB +:100B5000882341F01092520182E01EC0C438E0E5C3 +:100B6000DE0759F580915201811106C086E20E948C +:100B7000061186E20E94CE1182E01CC0C438F0E566 +:100B8000DF0741F3C538D045D9F4F80182818823C5 +:100B900031F01092530180E20E941D121DC080911D +:100BA0005301811106C087E20E94061187E20E946C +:100BB000CE1180E20E9424120FC0C538D04529F31F +:100BC00081E08093520180935301C801DF91CF915E +:100BD0001F910F910C94430580E0DF91CF911F91FD +:100BE0000F910895089596E0799FF001112494E5FE +:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F +:100C0000E25FFE4F859194910895880F991FFC0132 +:100C1000E657F040859194910895880F991FFC0143 +:100C2000E65FFE4F8591949108950F931F93CF93A4 +:100C3000DF93EC01811520E3920750F5C11580E2A6 +:100C4000D80708F0C3C0CB3BD10590F4C83AD10512 +:100C500008F06AC0C53AD10508F05BC0C430D105C0 +:100C600008F0D0C1219709F0CAC101E010E00AC222 +:100C7000CF3FD10511F008F0C5C1C03FD10508F044 +:100C8000A2C0CE01805E9109089708F4BBC1B7C12C +:100C9000C13090E5D90709F4A2C020F5C0318FE436 +:100CA000D80770F4C11590E4D90708F094C0C115B5 +:100CB00021E3D20708F0A3C1DD278E01106CE2C149 +:100CC000C115D04509F09BC10E9483148FEF94E3B6 +:100CD0002CE0815090402040E1F700C000000E94CD +:100CE000F61BD0C1C11597E5D90758F4C03121E5ED +:100CF000D20708F01CC1C43180E5D80708F475C0DC +:100D00007EC1CE0190578115904108F078C1DF7007 +:100D100073C1C53AD10509F477C1C63AD10509F0C6 +:100D200076C102E810E4AEC1C83AD10509F472C137 +:100D3000C93AD10509F471C1CA3AD10509F470C1A3 +:100D4000CB3AD10509F46FC1CC3AD10509F46EC193 +:100D5000CD3AD10509F46DC1C03BD10509F46CC190 +:100D6000CE3AD10509F46BC1CF3AD10509F46AC175 +:100D7000C13BD10509F469C1C23BD10509F468C181 +:100D8000C33BD10509F467C1C43BD10509F466C171 +:100D9000C53BD10509F465C1C63BD10509F464C161 +:100DA000C73BD10509F463C1C83BD10509F462C151 +:100DB000C93BD10509F461C1CA3BD10509F460C141 +:100DC00000E014E45FC18E0110655CC1CE019F702C +:100DD0000E940D0658C1DF708E01106A53C18091C8 +:100DE000DA0181608093DA014DC10E949B1D81115F +:100DF00002C00E94811D0E94B81D90E09093FB01EB +:100E00008093FA01C23080E5D80721F48091FA017D +:100E1000816086C0C43090E5D90721F48091FA0141 +:100E200082607EC0C63020E5D20721F48091FA01AD +:100E3000846076C0C83080E5D80719F48091FA0143 +:100E400027C0CA3090E5D90721F48091FA0180616A +:100E500067C0CC3020E5D20721F48091FA0180628E +:100E60005FC0CE3080E5D80721F48091FA0180641C +:100E700057C0C03190E5D90721F48091FA0180680C +:100E80004FC0C23120E5D20729F48091FA01846075 +:100E9000886046C0C33080E5D80721F48091FA010C +:100EA0008E7F3EC0C53090E5D90721F48091FA01CC +:100EB0008D7F36C0C73020E5D20721F48091FA013A +:100EC0008B7F2EC0C93080E5D80719F48091FA01D4 +:100ED00026C0CB3090E5D90721F48091FA018F7EAE +:100EE0001FC0CD3020E5D20721F48091FA018F7D1B +:100EF00017C0CF3080E5D80721F48091FA018F7BAD +:100F00000FC0C13190E5D90721F48091FA018F77A4 +:100F100007C0C331D04531F48091FA018B7F877FC0 +:100F20008093FA018091FA010E94BC1DABC08D2F05 +:100F300099278F70992781309105D9F49E012370EC +:100F4000332702C0880F991F2A95E2F79C688E010B +:100F500044E0000F111F4A95E1F700271370802B22 +:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA +:100F70002FC08230910531F4DC2FCC278E01016F18 +:100F8000106A80C08330910569F4CE01837099277F +:100F900001E010E002C0000F111F8A95E2F7C801BE +:100FA0009C680FC084309105B9F4CE0183709927F5 +:100FB00001E010E002C0000F111F8A95E2F7C8019E +:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029 +:100FD0008C010C2B1D2B56C08530910531F4DC2F74 +:100FE000CC278E01046F106A4DC0069709F04AC0E5 +:100FF000CF71DD27DC2FCC278E01106243C000E0CB +:1010000010E040C08E013EC001E810E43BC003E8A0 +:1010100010E438C002EE14E435C009EE14E432C026 +:101020000AEE14E42FC005EB14E42CC006EB14E424 +:1010300029C007EB14E426C00CEC14E423C00DEC2B +:1010400014E420C003E815E41DC00AE815E41AC042 +:1010500002E915E417C004E915E414C001E216E43E +:1010600011C003E216E40EC004E216E40BC005E270 +:1010700016E408C006E216E405C007E216E402C062 +:101080000AE216E4C801DF91CF911F910F910895F4 +:1010900096E0799FF001112494E5899FE00DF11D00 +:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149 +:1010B0009491803E9105E0F4803C910558F5813390 +:1010C000910509F46FC048F48932910509F463C0B1 +:1010D0008A32910509F46DC072C089339105E9F037 +:1010E00082389105D1F08533910509F44DC067C070 +:1010F000833E910581F138F4803E9105B9F0823E3E +:101100009105D9F05CC0863E910561F1873E91055D +:10111000A1F155C00E94050608952091FA0120FD15 +:1011200002C021FF4CC080EE90E049C08091FA01DE +:1011300080FFF9CF89E390E042C08091FA0182FFFD +:101140000EC08091FA0184FF03C080E090E037C0B8 +:1011500083EE90E034C08091FA0182FFF2CF82EEFC +:1011600090E02DC08091FA0183FF0BC08091FA01BD +:1011700084FDEBCF87EE90E022C08091FA0183FFDF +:10118000F5CF86EE90E01BC08091FA0185FF07C085 +:1011900089E290E014C08091FA0185FFF9CF85E3E0 +:1011A00090E00DC08091FA0186FF07C08AE290E0CE +:1011B00006C08091FA0186FFF9CF81E390E00E949A +:1011C0001506089508950C94E20880916E01089523 +:1011D000CF93DF9300D01F92CDB7DEB79C018091F3 +:1011E000F101843019F593E099833B832A8390932E +:1011F000E9008FEF9091E800815095FD06C095EDD4 +:101200009A95F1F700008111F5CF8091E80085FFF4 +:101210000DC040E050E063E070E0CE0101960E9416 +:10122000520B8091E8008E778093E8000F900F902A +:101230000F90DF91CF910895CF93DF9300D01F924D +:10124000CDB7DEB72091F101243021F522E02983CA +:101250009B838A8383E08093E9008FEF9091E8007D +:10126000815095FD06C095ED9A95F1F7000081112A +:10127000F5CF8091E80085FF0DC040E050E063E0CD +:1012800070E0CE0101960E94520B8091E8008E77AB +:101290008093E8000F900F900F90DF91CF91089509 +:1012A0002091F1012430F1F422E02093E9002FEFA6 +:1012B0003091E800215035FD06C035ED3A95F1F743 +:1012C00000002111F5CF2091E80025FF0BC040E080 +:1012D00050E065E070E00E94520B8091E8008E774C +:1012E0008093E8000895CF93DF93EC019091F10192 +:1012F000943009F046C080910C018823D9F0809188 +:101300000D018823B9F09093E9008FEF9091E800E8 +:10131000815095FD06C095E19A95F1F70000811185 +:10132000F5CF8091E80085FF2CC040E050E060E1FF +:1013300070E017C081E08093E9008FEF9091E800A2 +:10134000815095FD06C095ED9A95F1F70000811149 +:10135000F5CF8091E80085FF14C040E050E068E0E0 +:1013600070E0CE010E94520B8091E8008E7780934E +:10137000E80080E1FE01AEE5B1E001900D928A95B2 +:10138000E1F7DF91CF9108958091F001811109C0BB +:101390000E94E70C0E94440D8091E20084608093DB +:1013A000E20008951092F001089508950C942B2204 +:1013B0000E948C1B0E9431220E94EA0F0C94E308C9 +:1013C00042E061EC81E00E94610C42E061EC82E06D +:1013D0000E94610C42E061EC83E00E94610C42E1FA +:1013E00061EC84E00C94610C8091F301833009F48A +:1013F00055C030F4813071F0823009F48EC0089508 +:101400008A3009F47AC08B3009F460C0893009F061 +:101410009CC020C08091F201813A09F096C0809171 +:10142000E800877F8093E8008091F6019091F701B2 +:10143000892B21F460E18EE591E003C060E080E05B +:1014400090E070E00E949D0B8091E8008B77809384 +:10145000E80008958091F201813209F076C0809110 +:10146000F6019091F701009719F0039709F06DC00C +:101470008091E800877F8093E8008091E80082FDFA +:1014800005C08091F1018111F8CF5FC08091F1001A +:1014900080936E018091E8008B7753C08091F201B8 +:1014A000813A09F052C08091F6019091F701892BA1 +:1014B00009F04BC08091E800877F8093E80080911D +:1014C000E80080FFFCCF80910C0136C08091F201D2 +:1014D0008132D9F58091F6019091F701892BA9F518 +:1014E0008091E800877F8093E8000E94960C8091AD +:1014F000F40180930C010C9483148091F2018132E9 +:1015000021F58091E800877F8093E8000E94960C87 +:101510008091F50180936F0108958091F201813AE5 +:10152000A1F48091E800877F8093E8008091E80033 +:1015300080FFFCCF80916F018093F1008091E800E3 +:101540008E778093E8000C94960C089584B7877F7B +:1015500084BF88E10FB6F894809360001092600019 +:101560000FBE90E080E80FB6F894809361009093EE +:1015700061000FBE0E9439100E94E70C0E94440DCA +:101580008091E20084608093E20078940E94CA0F08 +:101590000E943B1082E091E00E94E50F0E94192218 +:1015A0008091F101853069F40E94531B8091EF0115 +:1015B0008823B1F30E947E1B882391F30E943C0B89 +:1015C000EFCF0E944110ECCF292F33272330310574 +:1015D000C9F064F42130310581F02230310509F081 +:1015E00043C08DE690E02AE333E042C0213231056A +:1015F000F1F02232310541F137C082E190E027EA73 +:1016000033E036C099278130910541F08230910551 +:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4 +:1016200002C0E6E0F3E0849190E09F0121C06430C5 +:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5 +:10164000318189E090E014C0643070F470E0FB01F7 +:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47 +:10166000FE4F808190E004C080E090E020E030E018 +:10167000FA0131832083089580E189BD82E189BD2B +:1016800009B400FEFDCF8091D8008F7D8093D800F3 +:101690008091E00082608093E0008091E00081FD15 +:1016A000FCCF0895CF92DF92EF92FF920F931F939A +:1016B000CF93DF93EC018B016A010E94B50C81117D +:1016C00033C0C114D10439F0F60180819181081B27 +:1016D000190BC80FD91FE12CF12C0115110519F1B7 +:1016E0008091E80085FD16C08091E8008E77809398 +:1016F000E800C114D10449F0F60180819181E80E1F +:10170000F91EF182E08285E00FC00E94B50C8823AB +:1017100021F30AC089918093F10001501109FFEF74 +:10172000EF1AFF0ADACF80E0DF91CF911F910F917E +:10173000FF90EF90DF90CF9008952091F8013091C5 +:10174000F9012617370748F06115710539F4209122 +:10175000E8002E772093E80001C0B90140E0611550 +:101760007105A9F12091F101222309F443C025302C +:1017700009F442C02091E80023FD40C02091E80018 +:1017800022FD32C02091E80020FFE9CF4091F30014 +:101790002091F20030E0342BFC01CF01611571057E +:1017A00059F02830310540F481918093F100615067 +:1017B00071092F5F3F4FF1CF41E02830310509F02B +:1017C00040E02091E8002E772093E800C8CF411137 +:1017D000C9CF0AC08091F101882361F0853061F0A2 +:1017E0008091E80083FD0AC08091E80082FFF2CF7B +:1017F00080E0089582E0089583E0089581E00895EF +:101800002091F8013091F9012617370748F061154A +:10181000710539F42091E8002E772093E80001C08B +:10182000B901FC0120E06115710591F18091F10190 +:10183000882309F440C0853009F43FC08091E80056 +:1018400083FD3DC08091E80082FD2FC08091E800BB +:1018500080FFE9CF2091F3008091F20090E0922B7D +:101860006115710559F08830910540F42491209359 +:10187000F1003196615071090196F2CF21E008978D +:1018800009F020E08091E8008E778093E800CBCFCC +:101890002111CCCF0AC08091F101882361F08530FD +:1018A00061F08091E80083FD0AC08091E80082FF2A +:1018B000F2CF80E0089582E0089583E0089581E00A +:1018C0000895982F973058F59093E900981739F0BC +:1018D0007091EC002091ED005091F00003C0242F96 +:1018E000762F50E021FF19C03091EB003E7F3093FE +:1018F000EB003091ED003D7F3093ED003091EB0037 +:1019000031603093EB007093EC002093ED00509326 +:10191000F0002091EE0027FF07C09F5FD3CF8F70AC +:101920008093E90081E0089580E008958091F201BC +:1019300087FF11C08091E80082FD05C08091F10110 +:101940008111F8CF11C08091E8008B770BC0809196 +:10195000F101882349F08091E80080FFF8CF809161 +:10196000E8008E778093E80008952091E40030919C +:10197000E50095E64091EC00842F817040FF22C085 +:101980008091E80080FD1CC08091F101882391F0D6 +:10199000853091F08091EB0085FD10C04091E4000E +:1019A0005091E5004217530729F39A01915011F71E +:1019B00084E0089582E0089583E0089581E0089529 +:1019C00080E008954091E80042FFDECF08950E9434 +:1019D000550D0E945D0DE0EEF0E080818160808316 +:1019E000E8EDF0E080818F77808319BCA7EDB0E04F +:1019F0008C918E7F8C9380818F7E80831092F001FA +:101A000008950F931F93CF93DF930E94550D0E946B +:101A10005D0DC8EDD0E088818F77888388818068EC +:101A2000888388818F7D888319BC1092F101109280 +:101A3000ED011092EF011092EE0100EE10E0F801BE +:101A400080818B7F808388818160888342E060E031 +:101A500080E00E94610CE1EEF0E080818E7F808367 +:101A6000E2EEF0E080818160808380818860808305 +:101A7000F80180818E7F8083888180618883DF91F7 +:101A8000CF911F910F910895E8EDF0E080818F7E56 +:101A90008083E7EDF0E080818160808384E082BF15 +:101AA00081E08093F0010C94010DE8EDF0E080817D +:101AB0008E7F80831092E20008951092DA001092D7 +:101AC000E10008951F920F920FB60F9211242F93E9 +:101AD0003F934F935F936F937F938F939F93AF93B6 +:101AE000BF93EF93FF938091E10082FF0BC0809141 +:101AF000E20082FF07C08091E1008B7F8093E100CC +:101B00000E94C90F8091DA0080FF1FC08091D80029 +:101B100080FF1BC08091DA008E7F8093DA00809175 +:101B2000D90080FF0DC080E189BD82E189BD09B483 +:101B300000FEFDCF81E08093F1010E94C40905C041 +:101B400019BC1092F1010E94D2098091E10080FF3E +:101B500019C08091E20080FF15C08091E2008E7F65 +:101B60008093E2008091E20080618093E2008091A6 +:101B7000D80080628093D80019BC85E08093F10181 +:101B80000E94D6098091E10084FF30C08091E2007C +:101B900084FF2CC080E189BD82E189BD09B400FECB +:101BA000FDCF8091D8008F7D8093D8008091E10097 +:101BB0008F7E8093E1008091E2008F7E8093E2002F +:101BC0008091E20081608093E2008091ED018823A2 +:101BD00011F084E007C08091E30087FD02C081E03E +:101BE00001C083E08093F1010E94D8098091E10057 +:101BF00083FF29C08091E20083FF25C08091E1002E +:101C0000877F8093E10082E08093F1011092ED01E3 +:101C10008091E1008E7F8093E1008091E2008E7FD1 +:101C20008093E2008091E20080618093E20042E0D4 +:101C300060E080E00E94610C8091F00088608093F9 +:101C4000F0000E94D509FF91EF91BF91AF919F9154 +:101C50008F917F916F915F914F913F912F910F9055 +:101C60000FBE0F901F9018951F920F920FB60F92F4 +:101C700011242F933F934F935F936F937F938F9391 +:101C80009F93AF93BF93CF93DF93EF93FF93C09155 +:101C9000E900CF708091EC00D82FD17080FDD0E8A2 +:101CA0001092E9008091F000877F8093F000789493 +:101CB0000E94780E1092E9008091F0008860809375 +:101CC000F000CD2BCF70C093E900FF91EF91DF9131 +:101CD000CF91BF91AF919F918F917F916F915F91C4 +:101CE0004F913F912F910F900FBE0F901F9018951D +:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3 +:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115 +:101D1000F10091938E13FBCF0E94F4098091E800AB +:101D200083FF1FC18091F2019091F301492F50E090 +:101D30004A30510508F015C1FA01EA5AFF4F0C94D8 +:101D4000B323803881F0823809F00BC18091F6010D +:101D50008F708093E9008091EB0085FB882780F9E4 +:101D60001092E90006C08091EE019091EF0191116F +:101D700082609091E800977F9093E8008093F10053 +:101D80001092F100C8C0282F2D7F09F0EAC08823E7 +:101D900019F0823061F0E5C08091F401813009F0E2 +:101DA000E0C0933009F080E08093EF012BC0809178 +:101DB000F401811127C08091F6018F7009F4D1C020 +:101DC0008093E9002091EB0020FF1CC0933021F4A8 +:101DD0008091EB00806214C09091EB009061909331 +:101DE000EB0021E030E0A90102C0440F551F8A95A5 +:101DF000E2F74093EA001092EA008091EB008860DD +:101E00008093EB001092E9008091E800877F86C004 +:101E10008111A7C01091F4011F778091E3008078B1 +:101E2000812B8093E3008091E800877F8093E80016 +:101E30000E94960C8091E80080FFFCCF8091E30027 +:101E400080688093E300111102C082E001C083E04A +:101E50008093F10186C08058823008F082C0809162 +:101E6000F4019091F5018C3D53E0950779F583E0FD +:101E70008A838AE289834FB7F894DE01139620E0C3 +:101E80003EE051E2E32FF0E050935700E49120FF51 +:101E900003C0E295EF703F5FEF708E2F90E0EA3065 +:101EA00010F0C79601C0C0968D939D932F5F24318B +:101EB00049F74FBF8091E800877F8093E8006AE28E +:101EC00070E0CE0101960E949D0B14C0AE014F5FE1 +:101ED0005F4F6091F6010E94E40ABC01009709F48B +:101EE00040C09091E800977F9093E80089819A81A3 +:101EF0000E94000C8091E8008B778093E80031C04D +:101F0000803879F58091E800877F8093E8008091A0 +:101F1000ED018093F1008091E8008E778093E800D6 +:101F20000E94960C1EC081111CC09091F401923049 +:101F3000C0F48091E800877F8093E8009093ED01E2 +:101F40000E94960C8091ED01811106C08091E30002 +:101F500087FD02C081E001C084E08093F1010E940E +:101F6000E0098091E80083FF0AC08091E800877F44 +:101F70008093E8008091EB0080628093EB00AA964A +:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A +:101F900008950895CF938091F1018823A1F0C09115 +:101FA000E900CF709091EC00892F817090FD80E85E +:101FB000C82B1092E9008091E80083FD0E94780E02 +:101FC000CF70C093E900CF910895909375018093ED +:101FD00074010895E0917401F0917501309721F03A +:101FE0000190F081E02D099480E00895E091740162 +:101FF000F0917501309721F00280F381E02D099472 +:102000000895E0917401F0917501309721F00480FA +:10201000F581E02D099408952091720130917301AA +:102020008217930771F09093730180937201E0918E +:102030007401F0917501309721F00680F781E02D51 +:1020400009940895209170013091710182179307CE +:1020500071F09093710180937001E0917401F0919F +:102060007501309721F00084F185E02D09940895E1 +:1020700008950C9438100E94921B0E9433030C9414 +:10208000541C9F92AF92BF92CF92DF92EF92FF9239 +:102090000F931F93CF93DF9300D000D000D0CDB724 +:1020A000DEB70E944B030DE010E0AA24A394B12CEC +:1020B000902E802F0E943904980129583E4F6901C3 +:1020C000F901F080F826A1F40150110988F78FEF8B +:1020D00089838A831B820E949B1B8160782F9D834A +:1020E0008C8349815A816B818D810E94D8102FC0C9 +:1020F0009091DA0191FF04C08E830E943F048E818B +:1021000025E030E0A501022E01C0440F0A94EAF751 +:10211000E42E4F21C1F029839A828E2191E009F4A7 +:1021200090E09B830E949B1B8160782F9D838C8312 +:1021300049815A816B818D810E94D810F60180817E +:10214000E826E08204C021503109E0F6BDCF0E94AC +:102150003B1F109176010E94EA0F1817B9F00E94F8 +:10216000EA0F8093760126960FB6F894DEBF0FBE75 +:10217000CDBFDF91CF911F910F91FF90EF90DF9036 +:10218000CF90BF90AF909F900C94E30826960FB627 +:10219000F894DEBF0FBECDBFDF91CF911F910F919D +:1021A000FF90EF90DF90CF90BF90AF909F900895F9 +:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82 +:1021C0000FBECDBF4F83588769877A878B87DE0123 +:1021D000119686E0FD0111928A95E9F785E0FE01EE +:1021E000379601900D928A95E1F749815A816B816A +:1021F0007C818D819E810E9421172B960FB6F894C9 +:10220000DEBF0FBECDBFDF91CF910895CF9388235E +:1022100009F4C2C0C82F823859F40E94EA0F81FD28 +:10222000BBC089E30E94FB190E94C81A89E30CC055 +:10223000833879F40E94EA0F80FDAEC083E50E94E6 +:10224000FB190E94C81A83E50E943D1ACF910C9495 +:10225000C81A843859F40E94EA0F82FD9DC087E4B1 +:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6 +:10227000813A48F48C2F0E947E2181118DC08C2FD1 +:102280000E94FB19E3CF80E28C0F883048F4C770BE +:1022900081E001C0880FCA95EAF70E94811AD6CF63 +:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB +:1022B00083E890E005C081E890E002C082E890E009 +:1022C000CF910C940C1088E58C0F833108F064C01A +:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118 +:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186 +:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106 +:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173 +:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB +:1023200038C082EE90E035C089EE90E032C08AEE8F +:1023300090E02FC085EB90E02CC086EB90E029C0A8 +:1023400087EB90E026C08CEC90E023C08DEC90E011 +:1023500020C083E891E01DC08AE891E01AC082E9BC +:1023600091E017C084E991E014C081E292E011C0CD +:1023700083E292E00EC084E292E00BC085E292E03C +:1023800008C086E292E005C087E292E002C08AE2DD +:1023900092E0CF910C942210CF910895882309F4F4 +:1023A0004BC0823859F40E94EA0F81FF45C089E38F +:1023B0000E94FB190E94C81A89E30CC0833871F48B +:1023C0000E94EA0F80FF38C083E50E94FB190E943B +:1023D000C81A83E50E943D1A0C94C81A843859F42F +:1023E0000E94EA0F82FF28C087E40E94FB190E9426 +:1023F000C81A87E4EFCF9CEF980F913A58F390E218 +:10240000980F983050F4877091E001C0990F8A9529 +:10241000EAF7892F0E94871ADFCF9BE5980F933048 +:1024200020F480E090E00C940C10885A833120F462 +:1024300080E090E00C9422100895882321F00E94FF +:10244000811A0C94C81A0895882321F00E94871AD3 +:102450000C94C81A08957F928F929F92AF92BF9268 +:10246000CF92DF92EF92FF920F931F93CF93DF9360 +:102470001F92CDB7DEB77C01C62E772EFC010581F9 +:1024800002950F70128111110E949E1A0E94F41978 +:10249000882379F0112369F080E28C0D883048F0B0 +:1024A00082E00E94DD190E94F41991E0D82ED9260D +:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C +:1024C0000C94B323872D807F072D0F70882311F084 +:1024D0000295007F112389F0002309F490C180E266 +:1024E0008C0D883020F4802F0E94811A03C0802F29 +:1024F0000E94911A0E94C81A82C18C2D0E94CE118E +:10250000002309F495C180E28C0D883020F4802FDF +:102510000E94871A03C0802F0E94971A0E94C81A2F +:1025200087C1972D907F872D8F70903211F0829503 +:10253000807FCC2021F0F1E0CF16B1F01EC0112336 +:1025400049F0002309F414C1013009F011C10E94BF +:10255000B11A6EC1002319F0013009F469C18983F1 +:102560000E94B41A89810AC1112321F0023008F0B7 +:102570005FC1FEC001115CC101C1112321F0002324 +:1025800009F4F6C03CC1002309F4F8C03EC1872D10 +:1025900086958695837090E0009719F0019761F019 +:1025A00047C1112321F08C2D972D937002C080E03C +:1025B00090E00E940C103CC1112321F08C2D972D2E +:1025C000937002C080E090E00E94221031C18C2DF7 +:1025D000112319F00E94431E02C00E94AB1E0E94EC +:1025E000301F26C1872D837009F052C0111120C100 +:1025F0008C2D829586958770880F880F9C2D9F70F3 +:10260000892E912CA12CB12C082E04C0880C991C69 +:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041 +:1026200020E030E0B901A80104C0440F551F661F27 +:10263000771F8A95D2F7CB01BA0160957095809586 +:10264000909503C060E070E0CB01272D269526957C +:10265000237030E02230310569F02330310589F0F4 +:10266000682979298A299B292130310571F00E9436 +:102670006918DEC0682979298A299B290E94851852 +:10268000D7C00E946918C501B4010E944D18D0C07E +:10269000112319F0872D817001C08695882309F4D4 +:1026A000C7C08C2D829586958770880F880F9C2DCA +:1026B0009F70892E912CA12CB12C082E04C0880C5F +:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC +:1026D00010E020E030E0B901A80104C0440F551F0C +:1026E000661F771F8A95D2F7CB01BA016095709566 +:1026F0008095909503C060E070E0CB01272D269572 +:1027000026952370422F50E04230510569F0433046 +:10271000510589F0682979298A299B294130510579 +:1027200071F00E94431984C0682979298A299B295C +:102730000E945F197DC00E944319C501B4010E9427 +:10274000271976C08C2D90E0FC01E05EF109E5319F +:10275000F10508F050C0E059FF4F0C94B3230C2D45 +:102760000F70872D8F71112331F00E94C018802FB8 +:102770000E941D125DC00E94E118802F0E94241249 +:1027800057C0112339F0011153C0872D8F710E945A +:1027900006194EC0023008F04BC0F7CF112339F0B4 +:1027A000872D8F710E94C01843C01123C9F3872D54 +:1027B0008F710E94E1183CC0112329F0872D8F7181 +:1027C0000E94AB1835C00E94A11832C0112351F0ED +:1027D000172D1F71812F0E94C01863E0812F0E9466 +:1027E000D41926C081E00E94DD19023008F182E090 +:1027F0000E94DD191DC0112331F0002389F28C2DB8 +:102800000E94061115C0002391F28C2D0E94CE115A +:102810000FC0472D4F706C2DC7010E9415050E94F7 +:10282000C51706C0472D4F706C2DC7010E94F205D9 +:10283000DD20F9F00E94D01980FD1BC0F701128243 +:102840000E94CA190E94C018C7010E9448140E9421 +:10285000CA190F90DF91CF911F910F91FF90EF90C8 +:10286000DF90CF90BF90AF909F908F907F900C940F +:10287000E1180F90DF91CF911F910F91FF90EF9092 +:10288000DF90CF90BF90AF909F908F907F900895F2 +:102890000F931F93CF93DF93EC01888199812B8154 +:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B +:1028B0000E944A05882371F0688179818A810E948B +:1028C000C6198C010E947B190E944218B801CE01E2 +:1028D0000E942B12DF91CF911F910F9108950E94BA +:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471 +:1028F000E11F0E94301F80E090E00E940C1080E0F9 +:1029000090E00C9422100E948E1A0C946F140E9476 +:10291000BB19292F22952F7030E02C3031054CF453 +:102920002A3031056CF42250310922303105A8F4E7 +:1029300007C02C30310569F02F30310551F00DC042 +:10294000803F69F018F4803E40F409C0843F29F4C8 +:1029500006C093FB882780F9089580E0089581E000 +:102960000895CF93DF9300D000D01F92CDB7DEB78C +:102970000F900F900F900F900F90DF91CF910895CF +:10298000CF93DF9300D000D000D0CDB7DEB726962E +:102990000FB6F894DEBF0FBECDBFDF91CF91089583 +:1029A0001F93CF93DF93C091850116E0809186013C +:1029B000C81799F0D0E01C9FF0011D9FF00D112465 +:1029C000E957FE4F408151816281738184819581F5 +:1029D0000E94C0142196C770E9CFDF91CF911F915B +:1029E00008954091B7015091B8016091B90170917B +:1029F000BA018091BB019091BC010C94C0148091EC +:102A0000BC0182958F7009F054C08091B901882370 +:102A100009F44FC080918501A09186016091B701B2 +:102A20007091B8014091BA015091BB01B6E08A178C +:102A300009F43FC090E041155105C1F17F3F11F409 +:102A40006F3FA1F1B89FF001B99FF00D1124E95734 +:102A5000FE4F218172132AC02081621327C0228178 +:102A6000211124C0238134812417350710F421500B +:102A70003109241B350B283C3105C0F42091BC01E1 +:102A80002F7020612093BC0126E0289FF001299F30 +:102A9000F00D1124E457FE4F80818F708061808398 +:102AA00087EB91E00E9448140C94D0140196877033 +:102AB000BECF0895CF92DF92EF92FF920F931F93B4 +:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32 +:102AD0000FBECDBF8C0185E0F801DE011D9601908F +:102AE0000D928A95E1F7D8014C9111965C9111975E +:102AF00012966C9112971396CD90DC9014973091AA +:102B0000B7017091B8018091BA019091BB01009713 +:102B100009F46BC17F3F19F43F3F09F466C1E090AF +:102B2000B901EE2009F4C0C02091BC01C816D90635 +:102B300028F0F601E81BF90BCF0104C080959095B1 +:102B40008C0D9D1DFF24F394883C910578F0F12CA9 +:102B5000207F09F0C6C07C2DD98AC88A89890E9445 +:102B6000B11487EB91E00E944814B1C0822F807F9E +:102B700009F046C0751314C0341312C0611110C09F +:102B80002F7020612093BC010E94F11487EB91E02B +:102B90000E9448148091BC01D80115968C932EC0D8 +:102BA000CD2819F15F3F11F44F3FF9F0F62E611176 +:102BB0001CC0809185012091860136E0821709F4BE +:102BC0005AC090E0389FF001399FF00D1124E95769 +:102BD000FE4F7181571306C07081471303C0728185 +:102BE000711103C001968770E9CFF62E662309F4B0 +:102BF00018C18091BC0181608093BC01F12C11C18E +:102C0000751308C0341306C0611104C08091BC0163 +:102C1000D801C3C04D875E878D859E856A8B0E94D3 +:102C200087146A898823E1F16623D1F12091BC01E0 +:102C3000822F82958F7090E0029774F08091B70197 +:102C40009091B80198878F831986DB86CA862C8776 +:102C5000CE0107960E94481486E0F801A7EBB1E088 +:102C600001900D928A95E1F70E94FF140E94F114E1 +:102C7000FF24F394D6C04D875E878D859E850E9484 +:102C8000BB19292F22952F7030E0223031050CF02E +:102C9000BCC09F7009F0B6C0805E883008F4C1C027 +:102CA000C8010E944814E4CFC816D90608F453C0DE +:102CB000F601E81BF90BCF01883C910508F450C0E0 +:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E +:102CD000F1E086E0DF011D928A95E9F70E94F11488 +:102CE000A0C0751314C0341312C0611110C08091BC +:102CF000BC01F8018583C8010E94481486E0E7EB17 +:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C +:102D10005E878D859E856A8B0E9487146A898823C9 +:102D200009F4BECF662309F4BBCF2091BC01822FEA +:102D300082958F7090E002970CF48ECF8091B7014E +:102D40009091B8019A8389831B82DD82CC822E8385 +:102D5000CE0101967FCF809590958C0D9D1DACCFB7 +:102D6000F62E662309F49CCF75132EC034132CC0A5 +:102D70002091BC0120FD1FC0822F82958F70D9F059 +:102D8000D80115962C9315978F3049F08F5F982FA7 +:102D90009295907F822F8F70892B15968C93C80106 +:102DA0000E94481486E0F801A7EBB1E001900D9273 +:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7 +:102DC0000D928A95E1F72DC04D875E878D859E8592 +:102DD0000E948714811140CF8091BC018160809353 +:102DE000BC01C8010E9448141CC0662309F458CFD6 +:102DF0004D875E878D859E850E948714882309F400 +:102E00004FCF2ACF811148CF0CC0243031050CF0B0 +:102E100047CF9F7009F440CFF8019581907F09F06A +:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D +:102E3000DF91CF911F910F91FF90EF90DF90CF9096 +:102E400008951F93CF93DF93CDB7DEB72C970FB6BE +:102E5000F894DEBF0FBECDBF4F83588769877A874E +:102E60008B879C87CE0107960E945A15882369F0AC +:102E70008F8198852A853B85232BF1F19F3F09F0AF +:102E800063C08F3F09F060C037C086E0FE0137960F +:102E9000DE01119601900D928A95E1F76F81788598 +:102EA000EA85FB85309741F17F3F11F46F3F21F1B7 +:102EB0002091860130E0C9010196877099274091E1 +:102EC000850150E08417950709F447C069837A8328 +:102ED000FD83EC8396E0929FD001939FB00D112467 +:102EE000A957BE4FFE01319601900D929A95E1F7D8 +:102EF000809386010E94D01416E080918501909104 +:102F000086018917C1F1189FC001112489579E4F6E +:102F10000E945A15882379F1E09185011E9FF001E6 +:102F20001124E957FE4F4081518162817381848170 +:102F300095810E94C0148091850190E00196877070 +:102F4000992780938501D9CF4F81588569857A85E6 +:102F50008B859C850E94C014CFCF0E948314109251 +:102F6000860110928501E7EBF1E086E0DF011D921A +:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45 +:102F8000CDBFDF91CF911F910895EF92FF920F93E4 +:102F90001F93CF93DF938C01009709F46CC0F12C41 +:102FA000EE24E394E8012196F8018491843740F4FB +:102FB000843008F051C0813081F0823019F15BC05B +:102FC000853709F444C0A8F19CE7980F903708F0C2 +:102FD00052C08F770E94CE1141C00E5F1F4FFE017D +:102FE000C49180E28C0F883048F4C7708E2D01C0E8 +:102FF000880FCA95EAF70E94A11A14C08C2F0E946C +:1030000006112DC00E5F1F4FFE01C49180E28C0F90 +:10301000883058F4C7708E2D01C0880FCA95EAF722 +:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3 +:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3 +:103040009FE00197F1F700C00000C150F6CF0E5F7E +:103050001F4FFE01F49003C00E9406118E018F2DB8 +:10306000882309F49FCFEFE9FFE03197F1F700C023 +:1030700000008150F5CFDF91CF911F910F91FF900C +:10308000EF90089508956093C1017093C2018093F9 +:10309000C3019093C4010C946F140F931F9300917C +:1030A000C1011091C2012091C3013091C401DC0122 +:1030B000CB01802B912BA22BB32B8093C10190933A +:1030C000C201A093C301B093C4011F910F910C944E +:1030D0006F140F931F930091C1011091C2012091B1 +:1030E000C3013091C401DC01CB0180239123A223D1 +:1030F000B3238093C1019093C201A093C301B09305 +:10310000C4011F910F910C946F140F931F930091A2 +:10311000C1011091C2012091C3013091C401DC01B1 +:10312000CB0180279127A227B3278093C1019093D9 +:10313000C201A093C301B093C4011F910F910C94DD +:103140006F141092BD011092BE011092BF01109237 +:10315000C0010C946F1441E050E060E070E004C0E6 +:10316000440F551F661F771F8A95D2F74093BD0104 +:103170005093BE016093BF017093C0010C946F1413 +:1031800041E050E060E070E004C0440F551F661F4E +:10319000771F8A95D2F78091BD019091BE01A091D1 +:1031A000BF01B091C001482B592B6A2B7B2B409358 +:1031B000BD015093BE016093BF017093C0010C9498 +:1031C0006F1441E050E060E070E004C0440F551F10 +:1031D000661F771F8A95D2F7409550956095709538 +:1031E0008091BD019091BE01A091BF01B091C0013D +:1031F000482359236A237B234093BD015093BE018A +:103200006093BF017093C0010C946F1441E050E0D3 +:1032100060E070E004C0440F551F661F771F8A9559 +:10322000D2F78091BD019091BE01A091BF01B091F4 +:10323000C001482759276A277B274093BD01509337 +:10324000BE016093BF017093C0010C946F140F9383 +:103250001F930091BD011091BE012091BF013091DB +:10326000C001DC01CB01802B912BA22BB32B8093CF +:10327000BD019093BE01A093BF01B093C0011F9107 +:103280000F910C946F140F931F930091BD01109137 +:10329000BE012091BF013091C001DC01CB01802330 +:1032A0009123A223B3238093BD019093BE01A093E9 +:1032B000BF01B093C0011F910F910C946F140F9335 +:1032C0001F930091BD011091BE012091BF0130916B +:1032D000C001DC01CB0180279127A227B32780936F +:1032E000BD019093BE01A093BF01B093C0011F9197 +:1032F0000F910C946F140895CF92DF92EF92FF928A +:103300000F931F93CF93DF938C01C090C101D09096 +:10331000C201E090C301F090C4018091BD01909181 +:10332000BE01A091BF01B091C001C82AD92AEA2AE2 +:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520 +:10334000A795979587950A94D2F780FF06C0B80194 +:103350008C2F0E944808019721F4219760F780E0A4 +:1033600001C08C2FDF91CF911F910F91FF90EF90B3 +:10337000DF90CF900895CF93DF93EC010E947C19EA +:10338000BE010E944808DF91CF910895CB010E94B1 +:10339000BB1908958091C5018595859585950895FA +:1033A0008091C5018770089598E0899F900111244C +:1033B000262B2093C5010C94C0182091C50180953F +:1033C00082238093C501982F977069F430E0482FCD +:1033D000552747FD50952417350729F08595859584 +:1033E00085950C94E11808959091C501977081E03E +:1033F00009F480E0089590910C01992321F09091B7 +:103400000D01911109C020910E0130910F01F901B8 +:1034100032969FEF40E01FC0982F9695969596950F +:103420009F3050F5E0910E01F0910F01E90FF11D71 +:10343000877021E030E0A90102C0440F551F8A9532 +:10344000E2F7CA019181892B818308959F3F39F06A +:103450004F5F4E3041F051915813F8CF0DC05111CC +:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08 +:1034700097FDFA9582830895089590910C01992300 +:1034800021F090910D01911109C020910E01309110 +:103490000F01F9013296205F3F4F1FC0982F96957C +:1034A000969596959F30F0F4E0910E01F0910F0102 +:1034B000E90FF11D877021E030E0A90102C0440F3F +:1034C000551F8A95E2F7CA018095918189238183EE +:1034D00008953196E217F30729F090819813F9CFF8 +:1034E0001082F7CF089581E090E0E0910E01F09115 +:1034F0000F01E80FF91F1082019680319105A9F79D +:1035000008959091D901892B8093D90108958095D0 +:103510009091D90189238093D90108951092D901FE +:1035200008959091D801892B8093D80108958095B2 +:103530009091D80189238093D80108951092D801E1 +:1035400008959091D701892B8093D7010895809594 +:103550009091D70189238093D70108951092D701C4 +:1035600008958093C60108951092C6010895809130 +:103570000E0190910F01FC0131969C01205F3F4F9D +:1035800080E0919191118F5FE217F307D1F70895D1 +:10359000E0910E01F0910F018091D9018083E091BB +:1035A0000E01F0910F0190818091D801892B8083C9 +:1035B000E0910E01F0910F0190818091D701892B4C +:1035C00080838091C601882361F0E0910E01F09123 +:1035D0000F019081892B80830E94B71A811110926C +:1035E000C60180910E0190910F010C94F60F20E01E +:1035F000009739F0AC0141505109842395232F5F86 +:10360000F7CF822F0895CF92DF92EF92FF926C0155 +:10361000EE24FF24C114D104E104F10421F0C70118 +:10362000B60120E101C020E0C72ED82EE92EFF24EC +:10363000C114D104E104F10419F0285FC701B601F7 +:103640006B017C0154E0F694E794D794C7945A95A3 +:10365000D1F7C114D104E104F10419F02C5FC701C2 +:10366000B6016B017C0142E0F694E794D794C794CD +:103670004A95D1F7C114D104E104F10419F02E5F89 +:10368000C701B601DC01CB01B695A7959795879543 +:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5 +:1036A000DF90CF9008958091F101843021F1109244 +:1036B000DB0120E488E190E00FB6F894A8958093B0 +:1036C00060000FBE2093600080E00E94E30883B793 +:1036D000817F846083BF83B7816083BF789488953E +:1036E00083B78E7F83BF88E10FB6F8948093600024 +:1036F000109260000FBE0895089508950E947C1BEB +:103700000E944B030E947D1B0E94400491E08111A6 +:1037100001C090E0892F08950E9483140E94EA0F4F +:103720000C94E30882E084BD93E095BD9AEF97BDC9 +:1037300080936E0008952FB7F8948091DC019091EA +:10374000DD01A091DE01B091DF012FBF0895CF927E +:10375000DF92EF92FF920F931F932FB7F89440914F +:10376000DC015091DD016091DE017091DF012FBF1E +:103770006A017B01EE24FF248C0120E030E0C016BA +:10378000D106E206F30610F4415051099A01281BB4 +:10379000390BC9011F910F91FF90EF90DF90CF90EF +:1037A00008951F920F920FB60F9211248F939F933B +:1037B000AF93BF938091DC019091DD01A091DE0178 +:1037C000B091DF010196A11DB11D8093DC019093A2 +:1037D000DD01A093DE01B093DF01BF91AF919F9116 +:1037E0008F910F900FBE0F901F9018950E94E70CBD +:1037F000F8942FEF87EA91E6215080409040E1F75E +:1038000000C0000087E090EBDC018093FB01909307 +:10381000FC01A093FD01B093FE019CE088E10FB68E +:10382000F894A895809360000FBE90936000FFCF3E +:10383000EF92FF920F931F93CF93DF93D82FCDE09A +:103840008C2F0E94390405E010E0E82EF12CC7010E +:10385000002E02C0959587950A94E2F780FF09C073 +:10386000602F7C2F80E00E94F305D81302C081E016 +:1038700006C00150110958F7C15010F780E0DF91E0 +:10388000CF911F910F91FF90EF900895CF93C82F84 +:103890008CE20E94181C882321F08C2FCF910C946D +:1038A000181C80E0CF910895CF930E949B1D811139 +:1038B00002C00E94811DC5E6C15049F00E944B0321 +:1038C0008FE39CE90197F1F700C00000F5CF89E292 +:1038D0000E94461C811113C18AE20E94461C81117C +:1038E0000E94811D85E00E94461C81110E94F61BEA +:1038F0000E94A61D8093DA0187E00E94461C88235F +:10390000A9F18BE10E94461C882351F08091DA01D5 +:1039100081FB222720F991E0922790FB81F90EC0CC +:103920008EE00E94461C882361F08091DA0182FBC0 +:10393000222720F991E0922790FB82F98093DA0107 +:1039400015C080E10E94461C9091DA01882341F065 +:1039500093FB222720F981E0822780FB93F904C0A2 +:10396000892F809580FB90F99093DA018091DA019C +:103970000E94AA1D0E94B81D8093FA0180EE0E9449 +:10398000461C882341F08091FA01982F909590FB76 +:1039900080F98093FA0189E30E94461C882359F03C +:1039A0008091FA0181FB222720F991E0922790FB78 +:1039B00081F98093FA0182EE0E94461C882359F017 +:1039C0008091FA0182FB222720F991E0922790FB57 +:1039D00082F98093FA0186EE0E94461C882359F0F2 +:1039E0008091FA0183FB222720F991E0922790FB36 +:1039F00083F98093FA0183EE0E94461C882359F0D4 +:103A00008091FA0184FB222720F991E0922790FB14 +:103A100084F98093FA0185E30E94461C882359F0BB +:103A20008091FA0185FB222720F991E0922790FBF3 +:103A300085F98093FA0181E30E94461C882359F09E +:103A40008091FA0186FB222720F991E0922790FBD2 +:103A500086F98093FA0181E10E94461C882359F07F +:103A60008091FA0187FB222720F991E0922790FBB1 +:103A700087F98093FA018091FA010E94BC1D809120 +:103A8000FA0187FB882780F980930D0187E20E9465 +:103A9000461CC82F8EE10E94461C8111C2608FE136 +:103AA0000E94461C8111C46080E20E94461C811164 +:103AB000C86081E20E94461C8111C06182E20E94BE +:103AC000461C8111C06283E20E94461C8111C064C1 +:103AD00084E20E94461C882311F0C06802C0CC23F7 +:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4 +:103AF000682F70E080E090E0CF910C944318CF9154 +:103B000008956DEE7EEF80E090E00E94ED2360E08E +:103B100082E090E00E94DB2360E083E090E00E947E +:103B2000DB2360E084E090E00E94DB2360E085E03E +:103B300090E00C94DB2380E090E00E94D52321E00C +:103B40008D3E9E4F09F020E0822F089582E090E0A4 +:103B50000C94CD23682F82E090E00C94DB2383E06B +:103B600090E00C94CD23682F83E090E00C94DB234D +:103B700084E090E00C94CD23682F84E090E00C94D6 +:103B8000DB238091E20180FF0BC06091130185E08F +:103B9000689FB001112475956795759567952BC041 +:103BA00081FF09C06091130185E0689FB001112475 +:103BB0007595679520C082FF07C06091130185E06D +:103BC000689FB001112417C09091E3019923D1F0AF +:103BD00060911201961788F72091130185E0289FC4 +:103BE00090011124929FA001939F500D112470E029 +:103BF000CA010E949F236038710540F46115710568 +:103C000039F002C065E070E0862F08958FE70895CF +:103C100081E008958091E20180FF08C06091110168 +:103C200070E0759567957595679521C081FF06C011 +:103C30006091110170E07595679519C082FF04C00D +:103C40006091110170E010C09091E3019923C1F0DF +:103C5000609110019617A0F780911101899FC00112 +:103C6000112470E00E949F236038710528F46115CB +:103C7000710521F0862F08958FE7089581E008955A +:103C800061E070E0F4CF803F21F40E94C11D819576 +:103C900004C0813F29F40E94C11D8093E60108956C +:103CA000823F21F40E94C11D819504C0833F29F405 +:103CB0000E94C11D8093E5010895893F19F40E9477 +:103CC0000A1E05C08A3F31F40E940A1E8195809326 +:103CD000E70108958B3F21F40E940A1E819504C0DC +:103CE0008C3F29F40E940A1E8093E8010895843FC6 +:103CF00021F48091E401816017C0853F21F4809117 +:103D0000E401826011C0863F21F48091E401846067 +:103D10000BC0873F21F48091E401886005C0883F93 +:103D200031F48091E40180618093E40108958D3F36 +:103D300021F48091E20181600BC08E3F21F48091DB +:103D4000E201826005C08F3F29F48091E201846026 +:103D50008093E2010895803F39F48091E60187FF66 +:103D60006CC01092E60169C0813F29F48091E601A0 +:103D70001816BCF362C09091E501823F29F497FFC9 +:103D80005CC01092E50159C0833F19F41916CCF3B9 +:103D900054C0893F41F48091E70118160CF04DC0E2 +:103DA0001092E7014AC08A3F29F48091E70187FF1A +:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6 +:103DC0001092E8013AC08C3F29F48091E80118165E +:103DD000BCF333C0843F21F48091E4018E7F17C08F +:103DE000853F21F48091E4018D7F11C0863F21F44D +:103DF0008091E4018B7F0BC0873F21F48091E40127 +:103E0000877F05C0883F31F48091E4018F7E8093E5 +:103E1000E40113C08D3F21F48091E2018E7F0BC03D +:103E20008E3F21F48091E2018D7F05C08F3F29F400 +:103E30008091E2018B7F8093E2018091E501811105 +:103E40000EC08091E60181110AC08091E7018111C5 +:103E500006C08091E801811102C01092E30108952B +:103E600084EE91E00E9401100E949B1B9093E1015F +:103E70008093E00108951F93CF93DF938091E00139 +:103E80009091E1010E94A71BAC019091E30199235D +:103E900021F02091140130E006C0209115018AE044 +:103EA000289F900111244217530708F486C080917F +:103EB000E501C091E601D091E7011091E80181117F +:103EC00007C0C11176C0D11174C0111172C075C084 +:103ED0009F3F19F09F5F9093E301181624F40E940E +:103EE000C11D8093E5018091E50187FF05C00E9417 +:103EF000C11D81958093E5011C1624F40E94C11D0B +:103F00008093E6018091E60187FF05C00E94C11DF4 +:103F100081958093E6016091E501662339F1C091B6 +:103F2000E601CC2319F1772767FD7095872F972F2E +:103F30000E94B02223E333E343E35FE30E941423B0 +:103F40000E947D226093E5016C2F772767FD7095B5 +:103F5000872F972F0E94B02223E333E343E35FE3ED +:103F60000E9414230E947D226093E6011D1624F412 +:103F70000E940A1E8093E7018091E70187FF05C038 +:103F80000E940A1E81958093E701111624F40E9475 +:103F90000A1E8093E8018091E80187FF05C00E9416 +:103FA0000A1E81958093E801DF91CF911F910C94B7 +:103FB000301F9F3F09F08ECF96CFDF91CF911F9199 +:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE +:103FD0001092E3011092E2010895833081F128F4F8 +:103FE000813059F08230D1F00895853009F449C00C +:103FF000B8F1863009F456C0089580911501262F36 +:1040000030E0280F311D2F3F310524F4680F6093F5 +:10401000150108958FEF8093150108958091140183 +:10402000262F30E0280F311D2F3F310524F4680F73 +:104030006093140108958FEF809314010895809187 +:104040001301262F30E0280F311D2F3F310524F4B6 +:10405000680F6093130108958FEF80931301089503 +:1040600080911201262F30E0280F311D2F3F31059E +:1040700024F4680F6093120108958FEF809312016A +:10408000089580911101262F30E0280F311D2F3F18 +:10409000310524F4680F6093110108958FEF809328 +:1040A0001101089580911001262F30E0280F311D55 +:1040B0002F3F310524F4680F6093100108958FEFAE +:1040C000809310010895833011F128F4813049F074 +:1040D000823091F00895853081F120F18630C1F170 +:1040E000089580911501681720F4861B80931501AF +:1040F000089510921501089580911401681720F415 +:10410000861B8093140108951092140108958091E4 +:104110001301681720F4861B8093130108951092F1 +:104120001301089580911201681720F4861B809373 +:1041300012010895109212010895809111016817DB +:1041400020F4861B809311010895109211010895A7 +:1041500080911001681720F4861B80931001089548 +:104160001092100108950F931F938D3109F46BC0C5 +:1041700008F03FC08E3009F47FC0C0F4873009F4E6 +:1041800069C068F4863009F0B1C08091DA01817F9E +:104190008E7F8093DA0181E08093EA01A8C08830A5 +:1041A00009F4A2C08B3009F49FC0A0C0863109F485 +:1041B0009BC078F4803109F472C0813109F096C057 +:1041C0000E94831490910D0181E0892780930D0155 +:1041D0008BC0893109F488C08B3109F087C0809188 +:1041E000DA0181FB222720F991E0922790FB81F9E7 +:1041F0004CC0853309F470C048F4873209F46CC0B0 +:1042000008F459C0893209F467C070C0833438F4A7 +:104210008A3308F04EC0883309F466C067C083341F +:1042200009F45AC0883409F061C00E9483140FEF6A +:1042300013ED20E3015010402040E1F700C00000E2 +:104240000E94F61B51C00E9437220E94EA0F0E9472 +:10425000E3084AC09091DA01892F8095817080FB34 +:1042600090F929F0966098609093DA0140C0997FA8 +:10427000977F9093DA0138C08091DA0182FB222780 +:1042800020F991E0922790FB82F98093DA0199233B +:1042900059F18091DA0181608093DA0125C0809123 +:1042A000DA0183FB222720F991E0922790FB83F922 +:1042B000ECCF895301C08D5141E050E060E070E0E7 +:1042C0008A019B0104C0000F111F221F331F8A9512 +:1042D000D2F7C901B80104C061E070E080E090E06D +:1042E0000E9443180E94831481E001C080E01F9166 +:1042F0000F91089580E0089580E00895CF93C82F2E +:104300008091EA01813079F018F08230E9F187C0BC +:10431000E0910E01F0910F018081813169F08232CC +:1043200009F07FC009C0E0910E01F0910F0180817A +:10433000813111F0823261F48C2F0E947A21811137 +:1043400004C08C2F0E94B3201DC081E090E01AC0F1 +:104350008C2F0E947C21811114C0C43179F048F463 +:10436000CB3079F0C03109F060C082E08093EA017F +:1043700008C0C93219F0C83321F057C01092EA01C1 +:1043800054C081E0817053C0C93289F118F5C4313D +:1043900071F1A8F4C73009F046C08AE08093150196 +:1043A00094E19093140193E0909313018093120190 +:1043B00088E08093110188E28093100134C0CE51CF +:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB +:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC +:1043E00013C0C13579F0C235F1F461E00DC08091A0 +:1043F000E901882319F01092E90115C081E080934A +:10440000EA0115C061E006C08091E9010E94ED1F3C +:104410000AC06AE08091E9010E94632004C0109202 +:10442000EA0180E004C081E002C080E0ABCFCF9120 +:104430000895E1E8F0E08081886080838081816078 +:1044400080838FB7F89493E09093890090ED9093D8 +:1044500088008FBF0895EFE6F0E08081826080835E +:104460000895EFE6F0E080818D7F80830895EFE688 +:10447000F0E0908182E08927808308951F920F9257 +:104480000FB60F9211242F933F934F935F936F9327 +:104490007F938F939F93AF93BF93EF93FF938091FD +:1044A000EB019091EC0101969093EC018093EB016C +:1044B000811103C082E00E94E308E091EC01E695DF +:1044C000E695F0E0EC54FB4FE4918091EB018E1304 +:1044D00003C080E00E94E308FF91EF91BF91AF918C +:1044E0009F918F917F916F915F914F913F912F910C +:1044F0000F900FBE0F901F90189504D06894B111C3 +:104500008DC0089570D088F09F5790F0B92F9927EB +:10451000B751A0F0D1F0660F771F881F991F1AF0CE +:10452000BA95C9F712C0B13081F077D0B1E00895E3 +:1045300074C0672F782F8827B85F39F0B93FCCF364 +:10454000869577956795B395D9F73EF490958095C4 +:10455000709561957F4F8F4F9F4F0895E89409C0E4 +:1045600097FB3EF490958095709561957F4F8F4FA6 +:104570009F4F9923A9F0F92F96E9BB279395F695BC +:10458000879577956795B795F111F8CFFAF4BB0F3A +:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E +:1045A000882311F096E911C0772321F09EE8872F28 +:1045B000762F05C0662371F096E8862F70E060E0E4 +:1045C0002AF09A95660F771F881FDAF7880F96955D +:1045D000879597F9089557FD9058440F551F59F046 +:1045E0005F3F71F04795880F97FB991F61F09F3FE0 +:1045F00079F087950895121613061406551FF2CF09 +:104600004695F1DF08C0161617061806991FF1CF58 +:1046100086957105610508940895E894BB2766277F +:104620007727CB0197F908950BD078C069D028F08F +:104630006ED018F0952309F05AC05FC01124EECF58 +:10464000CADFA0F3959FD1F3950F50E0551F629FED +:10465000F001729FBB27F00DB11D639FAA27F00DDB +:10466000B11DAA1F649F6627B00DA11D661F829F02 +:104670002227B00DA11D621F739FB00DA11D621FE7 +:10468000839FA00D611D221F749F3327A00D611D04 +:10469000231F849F600D211D822F762F6A2F1124E6 +:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39 +:1046B000BB1F661F771F881F91505040A9F79E3F70 +:1046C000510570F014C0AACF5F3FECF3983EDCF3C5 +:1046D000869577956795B795F795E7959F5FC1F7AD +:1046E000FE2B880F911D9695879597F9089597F958 +:1046F0009F6780E870E060E008959FEF80EC089588 +:1047000000240A94161617061806090608950024B0 +:104710000A9412161306140605060895092E03942A +:10472000000C11F4882352F0BB0F40F4BF2B11F49E +:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF +:10474000072E16F4009407D077FD09D00E94B923F4 +:1047500007FC05D03EF4909581959F4F0895709584 +:1047600061957F4F0895EE0FFF1F0590F491E02DA6 +:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8 +:10478000B70710F0A61BB70B881F991F5A95A9F7FA +:1047900080959095BC01CD010895F999FECF92BD09 +:1047A00081BDF89A992780B50895A8E1B0E042E06C +:1047B00050E00C94F523262FF999FECF92BD81BDD0 +:1047C000F89A019700B4021639F01FBA20BD0FB64F +:1047D000F894FA9AF99A0FBE08950196272F0E942D +:1047E000DC230C94DB23DC01CB01FC01F999FECF27 +:1047F00006C0F2BDE1BDF89A319600B40D92415069 +:0A4800005040B8F70895F894FFCF78 +:10480A000220E508730950091C09E8080101C701DB +:10481A0028080A03140A3F4D363975042804F2039E +:10482A00B9034C0365037E039703010203040506DB +:04483A000708090062 +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/colemak/keymap.c b/keyboards/ergodox_ez/keymaps/colemak/keymap.c new file mode 100644 index 000000000..9601726f7 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/colemak/keymap.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 | F | P | G | L1 | | L1 | J | L | U | Y | ; | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | BkSp | A | R | S | T | D |------| |------| H | N | E | I |O / L2| ' | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | K | 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_F, KC_P, KC_G, TG(SYMB), + KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, + 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_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, + KC_H, KC_N, KC_E, KC_I, LT(MDIA, KC_O), KC_QUOT, + MEH_T(KC_NO),KC_K, 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/keyboards/ergodox_ez/keymaps/colemak/readme.md b/keyboards/ergodox_ez/keymaps/colemak/readme.md new file mode 100644 index 000000000..e28b2f085 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/colemak/readme.md @@ -0,0 +1,4 @@ +# ErgoDox EZ Colemak Configuration + +Colemak layout with same layers as default ergodox ez keymap. + diff --git a/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/compiled.hex b/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/compiled.hex new file mode 100644 index 000000000..726a776d2 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/compiled.hex @@ -0,0 +1,1179 @@ +:100000000C9461030C94A5030C94A5030C94A50314 +:100010000C94A5030C94A5030C94A5030C94A503C0 +:100020000C94A5030C94A5030C94590E0C942B0F5F +:100030000C94A5030C94A5030C94A5030C94A503A0 +:100040000C94A5030C94E5220C94A5030C94A50331 +:100050000C94A5030C94781C0C94A5030C94A50394 +:100060000C94A5030C94A5030C94A5030C94A50370 +:100070000C94A5030C94A5030C94A5030C94A50360 +:100080000C94A5030C94A5030C94A5030C94A50350 +:100090000C94A5030C94A5030C94A5030C94A50340 +:1000A0000C94A5030C94A5030C94A5030A060F0653 +:1000B000140619061E06230628062D063206980F7A +:1000C000BA0FA810BA0FA810FF0F2210A8107710AF +:1000D0008A105913591388138813BE13DE130F1592 +:1000E0000F15E9130F159914991400150F150F1515 +:1000F0000915A614A614A614A614A614A614A614CC +:10010000A614A614A614A614A614A614A614A6141F +:10011000A614B814C514CC14D314DD14012E022E69 +:10012000012C022C0001E10135023502E10001350C +:1001300002350001E1012E022E012C022C02E10009 +:1001400001E6012E022E02E6012C022C0001E10143 +:1001500030023002E1012C022C0001E10164026452 +:1001600002E100016402640001E60130023002E6AF +:10017000012C022C000000002200C001C002C003BC +:10018000C004C005C006C007C008C02E002D02373D +:10019000021E02045200002514140004001D00F485 +:1001A00000387426141A0015001B00F5003771245E +:1001B000140900160006002B00C1002714130017B5 +:1001C00000190036782D0031020A000700050000F2 +:1001D00000230201541F020000360200003500C552 +:1001E000003200000027020000490021140D000B1E +:1001F000000E000000240225020F00110010005024 +:10020000004C002602180008004F0029002C00C3F3 +:10021000001C000C005100C7002800C4002F001271 +:1002200000520020022A001F14340033003802025A +:10023000520000241601000100010001000000012D +:1002400000010001000100010001000100010001A6 +:1002500000010001003778251601000100010001AE +:1002600000010026160100010001003671010001A5 +:100270000001000100010000000100010001000078 +:1002800000010000002414010064000000010000CF +:100290000001002102010001000100000001000135 +:1002A0000001000100010001000100010001000146 +:1002B00000010001000100C8000100010001002E42 +:1002C000140100C90001000100010001000100311A +:1002D00000010001000100035200000100010001C3 +:1002E00000010001000000010001002000010001E8 +:1002F000000100010001001F0001000100010001D8 +:100300000001001E0001000100010001002202277F +:1003100000210001000100010001000100010000B6 +:1003200000010001000100000001000000010001C7 +:1003300000010000000100000001000100010001B7 +:10034000004A00000001000100C200220026004A0D +:100350000001000100C60023004D00010001000162 +:1003600000010024004E00010001000100010025F1 +:10037000004B00010001000100010001000100012B +:100380000000000100010001000100010000000167 +:100390000001002000010001000100010001001F18 +:1003A00000010001000100010001001E0001000128 +:1003B00000010001002202270021000100010001CC +:1003C0000001000100010000000100010001000027 +:1003D0000001000000010001000100000001000018 +:1003E0000001000100010001004A000000010001BD +:1003F00000C200220026004A0001000100CA0023BA +:10040000004D00010001000100010024004E000128 +:100410000001000100010025004B00010001000166 +:1004200000010001000100010000002200010001A4 +:1004300000010001000000010001003C000100017A +:10044000000100010001003B00010001000100016A +:100450000001003A0001000100010001000100015B +:10046000003D000100010001000100010001000049 +:100470000001000100010000000100000001000176 +:100480000001000000010000000100010001000166 +:1004900000301400000100010001003E0042000194 +:1004A000000100010001003F0043000100010001C4 +:1004B0000001004000440001000100010001004172 +:1004C00000450001000100010001000100010001E0 +:1004D00000000016034500720067006F0044006FC3 +:1004E000007800200045005A000000160345007205 +:1004F0000067006F0044006F007800200045005A3C +:100500000000000403090409026D00040100A0FAC0 +:100510000904000001030101000921110100012269 +:100520003F000705810308000A09040100010301D7 +:100530000200092111010001224D00070582030874 +:10054000000A090402000103000000092111010052 +:10055000012236000705830308000A09040300018D +:100560000300000009211101000122390007058460 +:10057000031000011201100100000008EDFE071336 +:1005800001000102000105010906A101050719E0AA +:1005900029E7150025019508750181020508190153 +:1005A00029059505750191029501750391010507CE +:1005B0001900297715002501957875018102C0057C +:1005C000010980A101850216010026B7001A010069 +:1005D0002AB700751095018100C0050C0901A10121 +:1005E0008503160100269C021A01002A9C02751040 +:1005F00095018100C005010902A1010901A10005C1 +:100600000919012905150025019505750181029536 +:1006100001750381010501093009311581257F9597 +:10062000027508810609381581257F9501750881B5 +:1006300006050C0A38021581257F9501750881068B +:10064000C0C005010906A101050719E029E7150049 +:10065000250195087501810295017508810105083C +:1006600019012905950575019102950175039101FF +:100670000507190029FF150025FF9506750881005B +:10068000C00000000000000000000000010204069D +:100690000A0F17202C3A4A5D71879DB3C7DAE9F536 +:1006A000FCFFFCF5E9DAC7B39D87715D4A3A2C205F +:1006B000170F0A06040201000000000000000000FD +:1006C000000011241FBECFEFDAE0DEBFCDBF04B6BD +:1006D00003FE24C08091FB019091FC01A091FD01DB +:1006E000B091FE018730904BA740B04BB9F4109207 +:1006F000FB011092FC011092FD011092FE0114BE4C +:1007000084B7877F84BF88E10FB6F8948093600038 +:10071000109260000FBEE0E0FFE3099511E0A0E059 +:10072000B1E0E8E5F9E402C005900D92A433B10709 +:10073000D9F711E0A4E3B1E001C01D92AB3FB107CE +:10074000E1F70E949D0B0C94AA240C9400001092D7 +:10075000B9008AE08093B800089594EA9093BC00B1 +:100760009091BC0097FFFCCF9091B900987F983092 +:1007700021F0903111F081E008958093BB0084E86E +:100780008093BC008091BC0087FFFCCF8091B900B2 +:10079000887F883111F0803471F780E0089584E912 +:1007A0008093BC008091BC0084FDFCCF08958093B1 +:1007B000BB0084E88093BC008091BC0087FFFCCF25 +:1007C0009091B900987F81E0983209F480E0089513 +:1007D00084E88093BC008091BC0087FFFCCF8091AF +:1007E000BB00089580910101811115C080E40E9431 +:1007F000AD038093010181110CC082E10E94D703F7 +:1008000080930101811105C08FEF0E94D70380936F +:1008100001010E94CF0384B1807F84B985B1807FBC +:1008200085B98AB1837F8AB98BB1837F8BB93E98B2 +:10083000469808950E94AF05809301010E94F2033B +:1008400080B38C7080BB81B3836F81BBA5E3B1E0C3 +:10085000E3E4F1E08EE08E0F11921D928E13FCCF37 +:100860000C949905BF92CF92DF92EF92FF920F9373 +:100870001F93CF93DF9380910101882379F08091BA +:1008800034018F5F80933401811108C00E94AF054D +:1008900080930101811102C00E94410505E311E02E +:1008A000C0E0D0E0DD24D39482E0C82EEE24E394AF +:1008B000F12CC730D10500F580910101811164C090 +:1008C00080E40E94AD0380930101811112C082E196 +:1008D0000E94D7038093010181110BC0C7010C2E28 +:1008E00001C0880F0A94EAF780950E94D70380938D +:1008F00001010E94CF0348C0CA30A1F028F4C830DB +:1009000059F0C93061F005C0CC3089F070F0CD30BD +:1009100089F0209A289810C0219A29980DC0229A0F +:100920002A980AC0239A2B9807C0529A01C0539A5A +:100930005B9802C03E9A469890EA9A95F1F79FB16B +:10094000799902C082E001C080E091709D25982BCA +:100950007C9902C084E001C080E0892B7D9902C0AF +:1009600038E001C030E0832B7E9902C020E101C055 +:1009700020E0822B9FB19095991F9927991F9295FE +:10098000990F907E892B0FC080910101811149C080 +:1009900080E40E94AD0380930101882379F1B12C9A +:1009A0000E94CF038B2DF8019081981719F0808356 +:1009B000C09200010E94F20321960F5F1F4FCE30BC +:1009C000D10509F076CF80910001882361F1815033 +:1009D00080930001882339F08FE99FE00197F1F7B8 +:1009E00000C0000020C0A3E4B1E0E5E3F1E0CF01E6 +:1009F000825F91919D938E13FCCF15C083E10E947D +:100A0000D703809301018111CACF81E40E94AD0315 +:100A1000809301018111C3CF0E94E803B82EB094E6 +:100A2000BFCF80E0C0CF0E943F0581E0DF91CF9132 +:100A30001F910F91FF90EF90DF90CF90BF9008959E +:100A4000E82FF0E0ED5BFE4F8081089508950F934D +:100A50001F93CF93DF93C3E4D1E010E00C2F025F2C +:100A6000899190E00E94EE1B180F0C13F9CF812F93 +:100A7000DF91CF911F910F910895089508950C94DF +:100A80003E0556985E9825982D9826982E9827987A +:100A90002F988FEF90E09093890080938800909337 +:100AA0008B0080938A0090938D0080938C00259A10 +:100AB0002D9A2FEF80E792E0215080409040E1F79F +:100AC00000C00000269A2E9A2FEF80E792E0215076 +:100AD00080409040E1F700C00000279A2F9A2FEF46 +:100AE00080E792E0215080409040E1F700C0000094 +:100AF00025982D982FEF80E792E02150804090407C +:100B0000E1F700C0000026982E982FEF80E792E0D2 +:100B1000215080409040E1F700C0000027982F98B6 +:100B200056985E9825982D9826982E9827982F9855 +:100B3000089589EA8093800089E080938100249859 +:100B40002C983F988AB18F748AB96E98479A8BB166 +:100B5000806B8BB9769A0E9441050C943D0580E22A +:100B6000809301018091510181110EC00E94A70361 +:100B700081E0809351012FEF83ED90E3215080407D +:100B80009040E1F700C0000080E40E94AD03809334 +:100B9000010181112EC00E94D703809301018111B0 +:100BA00028C00E94D70380930101811122C08FE3E6 +:100BB0000E94D7038093010181111BC00E94CF03C3 +:100BC00080E40E94AD0380930101811112C08CE08A +:100BD0000E94D7038093010181110BC00E94D703AB +:100BE00080930101811105C08FE30E94D703809398 +:100BF00001010E94CF03809101010895FC018281CF +:100C0000462F50E04930510590F5FA01EA5AFF4F5E +:100C10000C945A24882359F188E691E0089588239A +:100C200031F183E691E00895882309F18AE591E0A6 +:100C300008958823E1F08DE491E008958823B9F0C8 +:100C400080E491E00895882391F083E391E0089592 +:100C5000882369F08EE291E00895882341F085E2CF +:100C600091E00895882319F08CE191E0089580E0E7 +:100C700090E0089581E0089581E008950C943C0689 +:100C800008950F931F93CF93DF938C01FC01C081D4 +:100C9000D181CE010E94731ABE010E94EA06EC01C6 +:100CA000B8010E943E06882309F48DC0F8018281B4 +:100CB000882309F44AC080915D0181111FC0C431AD +:100CC000F0E5DF0709F051C00E94400681E0809303 +:100CD0005D010E94421C90935C0180935B01109225 +:100CE0005401109256011092550110925801109221 +:100CF000570110925A011092590165C080915B0111 +:100D000090915C010E944E1C883C910570F480918A +:100D10005401E82FF0E0EE0FFF1FEB5AFE4FD18396 +:100D2000C0838F5F809354014EC0C43880E5D807DC +:100D300021F0C538D04501F13AC0F80182818823FD +:100D400041F01092520182E01EC0C438E0E5DE0797 +:100D500059F580915201811106C086E20E94FD1171 +:100D600086E20E94C51282E01CC0C438F0E5DF07AD +:100D700041F3C538D045D9F4F8018281882331F098 +:100D80001092530180E20E9414131DC08091530100 +:100D9000811106C087E20E94FD1187E20E94C51200 +:100DA00080E20E941B130FC0C538D04529F381E0B3 +:100DB0008093520180935301C801DF91CF911F911D +:100DC0000F910C943A0680E0DF91CF911F910F9123 +:100DD0000895089596E0799FF001112494E5899F84 +:100DE000E00DF11D1124E60FF11DEE0FFF1FE55779 +:100DF000FE4F859194910895880F991FFC01EB5047 +:100E0000F040859194910895880F991FFC01EB584B +:100E1000FE4F8591949108950F931F93CF93DF9385 +:100E2000EC01811520E3920750F5C11580E2D80747 +:100E300008F0C3C0CB3BD10590F4C83AD10508F007 +:100E40006AC0C53AD10508F05BC0C430D10508F0CE +:100E5000D0C1219709F0CAC101E010E00AC2CF3F1A +:100E6000D10511F008F0C5C1C03FD10508F0A2C0FE +:100E7000CE01805E9109089708F4BBC1B7C1C130AB +:100E800090E5D90709F4A2C020F5C0318FE4D80756 +:100E900070F4C11590E4D90708F094C0C11521E39E +:100EA000D20708F0A3C1DD278E01106CE2C1C11585 +:100EB000D04509F09BC10E947A158FEF94E32CE096 +:100EC000815090402040E1F700C000000E949D1C2E +:100ED000D0C1C11597E5D90758F4C03121E5D20733 +:100EE00008F01CC1C43180E5D80708F475C07EC184 +:100EF000CE0190578115904108F078C1DF7073C121 +:100F0000C53AD10509F477C1C63AD10509F076C1D1 +:100F100002E810E4AEC1C83AD10509F472C1C93A79 +:100F2000D10509F471C1CA3AD10509F470C1CB3AAF +:100F3000D10509F46FC1CC3AD10509F46EC1CD3A9F +:100F4000D10509F46DC1C03BD10509F46CC1CE3A9D +:100F5000D10509F46BC1CF3AD10509F46AC1C13B8F +:100F6000D10509F469C1C23BD10509F468C1C33B8D +:100F7000D10509F467C1C43BD10509F466C1C53B7D +:100F8000D10509F465C1C63BD10509F464C1C73B6D +:100F9000D10509F463C1C83BD10509F462C1C93B5D +:100FA000D10509F461C1CA3BD10509F460C100E073 +:100FB00014E45FC18E0110655CC1CE019F700E9478 +:100FC000040758C1DF708E01106A53C18091DA01A5 +:100FD00081608093DA014DC10E94421E811102C0DE +:100FE0000E94281E0E945F1E90E09093FB01809358 +:100FF000FA01C23080E5D80721F48091FA018160BE +:1010000086C0C43090E5D90721F48091FA0182604E +:101010007EC0C63020E5D20721F48091FA018460B9 +:1010200076C0C83080E5D80719F48091FA0127C04E +:10103000CA3090E5D90721F48091FA01806167C038 +:10104000CC3020E5D20721F48091FA0180625FC0A4 +:10105000CE3080E5D80721F48091FA01806457C032 +:10106000C03190E5D90721F48091FA0180684FC022 +:10107000C23120E5D20729F48091FA0184608860AA +:1010800046C0C33080E5D80721F48091FA018E7FF5 +:101090003EC0C53090E5D90721F48091FA018D7FDB +:1010A00036C0C73020E5D20721F48091FA018B7F4A +:1010B0002EC0C93080E5D80719F48091FA0126C006 +:1010C000CB3090E5D90721F48091FA018F7E1FC0C3 +:1010D000CD3020E5D20721F48091FA018F7D17C031 +:1010E000CF3080E5D80721F48091FA018F7B0FC0C3 +:1010F000C13190E5D90721F48091FA018F7707C0BB +:10110000C331D04531F48091FA018B7F877F809382 +:10111000FA018091FA010E94631EABC08D2F9927BE +:101120008F70992781309105D9F49E012370332760 +:1011300002C0880F991F2A95E2F79C688E0144E04F +:10114000000F111F4A95E1F700271370802B912B98 +:1011500053E0CC0FDD1F5A95E1F7C076DD272FC095 +:101160008230910531F4DC2FCC278E01016F106A9B +:1011700080C08330910569F4CE018370992701E026 +:1011800010E002C0000F111F8A95E2F7C8019C68A9 +:101190000FC084309105B9F4CE018370992701E026 +:1011A00010E002C0000F111F8A95E2F7C8019A688B +:1011B00023E0CC0FDD1F2A95E1F7C07ED7708C01AC +:1011C0000C2B1D2B56C08530910531F4DC2FCC271C +:1011D0008E01046F106A4DC0069709F04AC0CF71A6 +:1011E000DD27DC2FCC278E01106243C000E010E029 +:1011F00040C08E013EC001E810E43BC003E810E4AB +:1012000038C002EE14E435C009EE14E432C00AEE30 +:1012100014E42FC005EB14E42CC006EB14E429C041 +:1012200007EB14E426C00CEC14E423C00DEC14E42A +:1012300020C003E815E41DC00AE815E41AC002E95D +:1012400015E417C004E915E414C001E216E411C066 +:1012500003E216E40EC004E216E40BC005E216E455 +:1012600008C006E216E405C007E216E402C00AE27E +:1012700016E4C801DF91CF911F910F91089596E078 +:10128000799FF001112494E5899FE00DF11D11244F +:10129000E60FF11DEE0FFF1FE557FE4F859194916C +:1012A000803E9105E0F4803C910558F5813391052D +:1012B00009F46FC048F48932910509F463C08A3299 +:1012C000910509F46DC072C089339105E9F0823847 +:1012D0009105D1F08533910509F44DC067C0833E77 +:1012E000910581F138F4803E9105B9F0823E910577 +:1012F000D9F05CC0863E910561F1873E9105A1F170 +:1013000055C00E94FC0608952091FA0120FD02C0FC +:1013100021FF4CC080EE90E049C08091FA0180FF2F +:10132000F9CF89E390E042C08091FA0182FF0EC0BC +:101330008091FA0184FF03C080E090E037C083EE23 +:1013400090E034C08091FA0182FFF2CF82EE90E00B +:101350002DC08091FA0183FF0BC08091FA0184FDBA +:10136000EBCF87EE90E022C08091FA0183FFF5CFAA +:1013700086EE90E01BC08091FA0185FF07C089E2EC +:1013800090E014C08091FA0185FFF9CF85E390E0E9 +:101390000DC08091FA0186FF07C08AE290E006C086 +:1013A0008091FA0186FFF9CF81E390E00E940C075B +:1013B000089508950C94D90980916E010895CF93F2 +:1013C000DF9300D01F92CDB7DEB79C018091F10171 +:1013D000843019F593E099833B832A839093E90045 +:1013E0008FEF9091E800815095FD06C095ED9A959C +:1013F000F1F700008111F5CF8091E80085FF0DC065 +:1014000040E050E063E070E0CE0101960E94490C9C +:101410008091E8008E778093E8000F900F900F90F6 +:10142000DF91CF910895CF93DF9300D01F92CDB776 +:10143000DEB72091F101243021F522E029839B833E +:101440008A8383E08093E9008FEF9091E8008150D8 +:1014500095FD06C095ED9A95F1F700008111F5CF45 +:101460008091E80085FF0DC040E050E063E070E04F +:10147000CE0101960E94490C8091E8008E778093FE +:10148000E8000F900F900F90DF91CF910895209179 +:10149000F1012430F1F422E02093E9002FEF3091A4 +:1014A000E800215035FD06C035ED3A95F1F7000012 +:1014B0002111F5CF2091E80025FF0BC040E050E05E +:1014C00065E070E00E94490C8091E8008E7780937F +:1014D000E8000895CF93DF93EC019091F1019430EF +:1014E00009F046C080910C018823D9F080910D014C +:1014F0008823B9F09093E9008FEF9091E800815034 +:1015000095FD06C095E19A95F1F700008111F5CFA0 +:101510008091E80085FF2CC040E050E060E170E081 +:1015200017C081E08093E9008FEF9091E80081502F +:1015300095FD06C095ED9A95F1F700008111F5CF64 +:101540008091E80085FF14C040E050E068E070E062 +:10155000CE010E94490C8091E8008E778093E800CC +:1015600080E1FE01AEE5B1E001900D928A95E1F7D0 +:10157000DF91CF9108958091F001811109C00E94FF +:10158000DE0D0E943B0E8091E20084608093E200B9 +:1015900008951092F001089508950C94D2220E94AB +:1015A000331C0E94D8220E94E1100C94DA0942E018 +:1015B00061EC81E00E94580D42E061EC82E00E9403 +:1015C000580D42E061EC83E00E94580D42E161EC6D +:1015D00084E00C94580D8091F301833009F455C0D8 +:1015E00030F4813071F0823009F48EC008958A3071 +:1015F00009F47AC08B3009F460C0893009F09CC0CE +:1016000020C08091F201813A09F096C08091E800F3 +:10161000877F8093E8008091F6019091F701892BF4 +:1016200021F460E18EE591E003C060E080E090E0AD +:1016300070E00E94940C8091E8008B778093E80022 +:1016400008958091F201813209F076C08091F6010F +:101650009091F701009719F0039709F06DC0809100 +:10166000E800877F8093E8008091E80082FD05C054 +:101670008091F1018111F8CF5FC08091F1008093DA +:101680006E018091E8008B7753C08091F201813A1E +:1016900009F052C08091F6019091F701892B09F071 +:1016A0004BC08091E800877F8093E8008091E8003C +:1016B00080FFFCCF80910C0136C08091F201813215 +:1016C000D9F58091F6019091F701892BA9F58091C8 +:1016D000E800877F8093E8000E948D0D8091F401DF +:1016E00080930C010C947A158091F201813221F5DE +:1016F0008091E800877F8093E8000E948D0D8091A3 +:10170000F50180936F0108958091F201813AA1F46F +:101710008091E800877F8093E8008091E80080FF57 +:10172000FCCF80916F018093F1008091E8008E776B +:101730008093E8000C948D0D089584B7877F84BF53 +:1017400088E10FB6F89480936000109260000FBE9D +:1017500090E080E80FB6F894809361009093610068 +:101760000FBE0E9430110E94DE0D0E943B0E809140 +:10177000E20084608093E20078940E94C1100E948D +:10178000321182E091E00E94DC100E94C022809120 +:10179000F101853069F40E94FA1B8091EF018823E2 +:1017A000B1F30E94251C882391F30E94330CEFCFE4 +:1017B0000E943811ECCF292F332723303105C9F08F +:1017C00064F42130310581F02230310509F043C045 +:1017D0008DE690E027E035E042C021323105F1F09E +:1017E0002232310541F137C082E190E024E735E053 +:1017F00036C099278130910541F08230910541F042 +:10180000892B49F5E3E0F5E005C0EBEEF4E002C01A +:10181000E3EDF4E0849190E09F0121C06430D8F4BE +:10182000E62FF0E0EE0FFF1FEE5DFE4F20813181CD +:1018300089E090E014C0643070F470E0FB01EE0FBA +:10184000FF1FE65EFE4F20813181FB01EA5EFE4F05 +:10185000808190E004C080E090E020E030E0FA0178 +:1018600031832083089580E189BD82E189BD09B477 +:1018700000FEFDCF8091D8008F7D8093D8008091AD +:10188000E00082608093E0008091E00081FDFCCF69 +:101890000895CF92DF92EF92FF920F931F93CF9311 +:1018A000DF93EC018B016A010E94AC0D811133C002 +:1018B000C114D10439F0F60180819181081B190B04 +:1018C000C80FD91FE12CF12C0115110519F18091D8 +:1018D000E80085FD16C08091E8008E778093E800CF +:1018E000C114D10449F0F60180819181E80EF91EFE +:1018F000F182E08285E00FC00E94AC0D882321F3C5 +:101900000AC089918093F10001501109FFEFEF1A8D +:10191000FF0ADACF80E0DF91CF911F910F91FF9006 +:10192000EF90DF90CF9008952091F8013091F90168 +:101930002617370748F06115710539F42091E80042 +:101940002E772093E80001C0B90140E061157105D0 +:10195000A9F12091F101222309F443C0253009F4B3 +:1019600042C02091E80023FD40C02091E80022FD04 +:1019700032C02091E80020FFE9CF4091F300209190 +:10198000F20030E0342BFC01CF016115710559F0F4 +:101990002830310540F481918093F1006150710944 +:1019A0002F5F3F4FF1CF41E02830310509F040E093 +:1019B0002091E8002E772093E800C8CF4111C9CFCD +:1019C0000AC08091F101882361F0853061F0809137 +:1019D000E80083FD0AC08091E80082FFF2CF80E03A +:1019E000089582E0089583E0089581E008952091AC +:1019F000F8013091F9012617370748F06115710594 +:101A000039F42091E8002E772093E80001C0B90155 +:101A1000FC0120E06115710591F18091F1018823AD +:101A200009F440C0853009F43FC08091E80083FD8F +:101A30003DC08091E80082FD2FC08091E80080FFCA +:101A4000E9CF2091F3008091F20090E0922B611594 +:101A5000710559F08830910540F424912093F100EC +:101A60003196615071090196F2CF21E0089709F093 +:101A700020E08091E8008E778093E800CBCF2111A1 +:101A8000CCCF0AC08091F101882361F0853061F0EC +:101A90008091E80083FD0AC08091E80082FFF2CFC8 +:101AA00080E0089582E0089583E0089581E008953C +:101AB000982F973058F59093E900981739F0709166 +:101AC000EC002091ED005091F00003C0242F762F00 +:101AD00050E021FF19C03091EB003E7F3093EB00C6 +:101AE0003091ED003D7F3093ED003091EB0031609F +:101AF0003093EB007093EC002093ED005093F000D6 +:101B00002091EE0027FF07C09F5FD3CF8F70809397 +:101B1000E90081E0089580E008958091F20187FF57 +:101B200011C08091E80082FD05C08091F101811112 +:101B3000F8CF11C08091E8008B770BC08091F10144 +:101B4000882349F08091E80080FFF8CF8091E80079 +:101B50008E778093E80008952091E4003091E500AD +:101B600095E64091EC00842F817040FF22C0809167 +:101B7000E80080FD1CC08091F101882391F0853040 +:101B800091F08091EB0085FD10C04091E4005091F0 +:101B9000E5004217530729F39A01915011F784E0A9 +:101BA000089582E0089583E0089581E0089580E03B +:101BB00008954091E80042FFDECF08950E944C0E48 +:101BC0000E94540EE0EEF0E0808181608083E8EDB9 +:101BD000F0E080818F77808319BCA7EDB0E08C9115 +:101BE0008E7F8C9380818F7E80831092F001089588 +:101BF0000F931F93CF93DF930E944C0E0E94540EBD +:101C0000C8EDD0E088818F77888388818068888359 +:101C100088818F7D888319BC1092F1011092ED01AB +:101C20001092EF011092EE0100EE10E0F8018081B9 +:101C30008B7F808388818160888342E060E080E0E0 +:101C40000E94580DE1EEF0E080818E7F8083E2EE0D +:101C5000F0E0808181608083808188608083F801EA +:101C600080818E7F8083888180618883DF91CF919E +:101C70001F910F910895E8EDF0E080818F7E8083C1 +:101C8000E7EDF0E080818160808384E082BF81E0C5 +:101C90008093F0010C94F80DE8EDF0E080818E7FE8 +:101CA00080831092E20008951092DA001092E10011 +:101CB00008951F920F920FB60F9211242F933F9306 +:101CC0004F935F936F937F938F939F93AF93BF9344 +:101CD000EF93FF938091E10082FF0BC08091E200BF +:101CE00082FF07C08091E1008B7F8093E1000E941A +:101CF000C0108091DA0080FF1FC08091D80080FF63 +:101D00001BC08091DA008E7F8093DA008091D90029 +:101D100080FF0DC080E189BD82E189BD09B400FE6C +:101D2000FDCF81E08093F1010E94BB0A05C019BC80 +:101D30001092F1010E94C90A8091E10080FF19C050 +:101D40008091E20080FF15C08091E2008E7F809339 +:101D5000E2008091E20080618093E2008091D800EF +:101D600080628093D80019BC85E08093F1010E94C5 +:101D7000CD0A8091E10084FF30C08091E20084FFB1 +:101D80002CC080E189BD82E189BD09B400FEFDCF90 +:101D90008091D8008F7D8093D8008091E1008F7E64 +:101DA0008093E1008091E2008F7E8093E200809139 +:101DB000E20081608093E2008091ED01882311F0C0 +:101DC00084E007C08091E30087FD02C081E001C08C +:101DD00083E08093F1010E94CF0A8091E10083FFAC +:101DE00029C08091E20083FF25C08091E100877FB8 +:101DF0008093E10082E08093F1011092ED018091E7 +:101E0000E1008E7F8093E1008091E2008E7F8093DD +:101E1000E2008091E20080618093E20042E060E0B5 +:101E200080E00E94580D8091F00088608093F0005F +:101E30000E94CC0AFF91EF91BF91AF919F918F913A +:101E40007F916F915F914F913F912F910F900FBEB6 +:101E50000F901F9018951F920F920FB60F9211249A +:101E60002F933F934F935F936F937F938F939F93A2 +:101E7000AF93BF93CF93DF93EF93FF93C091E900AC +:101E8000CF708091EC00D82FD17080FDD0E81092F7 +:101E9000E9008091F000877F8093F00078940E94A1 +:101EA0006F0F1092E9008091F00088608093F0003D +:101EB000CD2BCF70C093E900FF91EF91DF91CF91CF +:101EC000BF91AF919F918F917F916F915F914F9152 +:101ED0003F912F910F900FBE0F901F9018951F9359 +:101EE000CF93DF93CDB7DEB7AA970FB6F894DEBFD6 +:101EF0000FBECDBFE2EFF1E088E08E0F9091F100D0 +:101F000091938E13FBCF0E94EB0A8091E80083FF30 +:101F10001FC18091F2019091F301492F50E04A30A6 +:101F2000510508F015C1FA01E15AFF4F0C945A24EB +:101F3000803881F0823809F00BC18091F6018F70F2 +:101F40008093E9008091EB0085FB882780F910924F +:101F5000E90006C08091EE019091EF01911182603D +:101F60009091E800977F9093E8008093F1001092A1 +:101F7000F100C8C0282F2D7F09F0EAC0882319F08E +:101F8000823061F0E5C08091F401813009F0E0C059 +:101F9000933009F080E08093EF012BC08091F40131 +:101FA000811127C08091F6018F7009F4D1C0809310 +:101FB000E9002091EB0020FF1CC0933021F48091B8 +:101FC000EB00806214C09091EB0090619093EB0065 +:101FD00021E030E0A90102C0440F551F8A95E2F7C5 +:101FE0004093EA001092EA008091EB0088608093B1 +:101FF000EB001092E9008091E800877F86C0811194 +:10200000A7C01091F4011F778091E3008078812BA5 +:102010008093E3008091E800877F8093E8000E942E +:102020008D0D8091E80080FFFCCF8091E3008068F7 +:102030008093E300111102C082E001C083E080932D +:10204000F10186C08058823008F082C08091F4018E +:102050009091F5018C3D53E0950779F583E08A83F3 +:102060008AE289834FB7F894DE01139620E03EE0C0 +:1020700051E2E32FF0E050935700E49120FF03C0BA +:10208000E295EF703F5FEF708E2F90E0EA3010F036 +:10209000C79601C0C0968D939D932F5F243149F759 +:1020A0004FBF8091E800877F8093E8006AE270E08C +:1020B000CE0101960E94940C14C0AE014F5F5F4F99 +:1020C0006091F6010E94DB0BBC01009709F440C04F +:1020D0009091E800977F9093E80089819A810E940F +:1020E000F70C8091E8008B778093E80031C080384E +:1020F00079F58091E800877F8093E8008091ED0179 +:102100008093F1008091E8008E778093E8000E9430 +:102110008D0D1EC081111CC09091F4019230C0F44D +:102120008091E800877F8093E8009093ED010E9402 +:102130008D0D8091ED01811106C08091E30087FD36 +:1021400002C081E001C084E08093F1010E94D70ABF +:102150008091E80083FF0AC08091E800877F809328 +:10216000E8008091EB0080628093EB00AA960FB6A6 +:10217000F894DEBF0FBECDBFDF91CF911F910895C0 +:102180000895CF938091F1018823A1F0C091E900D7 +:10219000CF709091EC00892F817090FD80E8C82B62 +:1021A0001092E9008091E80083FD0E946F0FCF70CC +:1021B000C093E900CF9108959093750180937401C5 +:1021C0000895E0917401F0917501309721F001902C +:1021D000F081E02D099480E00895E0917401F09180 +:1021E0007501309721F00280F381E02D0994089564 +:1021F000E0917401F0917501309721F00480F58130 +:10220000E02D099408952091720130917301821795 +:10221000930771F09093730180937201E0917401C0 +:10222000F0917501309721F00680F781E02D099437 +:10223000089520917001309171018217930771F018 +:102240009093710180937001E0917401F091750198 +:10225000309721F00084F185E02D099408950895C8 +:102260000C942F110E94391C0E941A040C94FB1C20 +:102270009F92AF92BF92CF92DF92EF92FF920F9315 +:102280001F93CF93DF9300D000D000D0CDB7DEB73F +:102290000E9432040DE010E0AA24A394B12C902EE9 +:1022A000802F0E942005980129583E4F6901F901AD +:1022B000F080F826A1F40150110988F78FEF898387 +:1022C0008A831B820E94421C8160782F9D838C83AD +:1022D00049815A816B818D810E94CF112FC09091CD +:1022E000DA0191FF04C08E830E9426058E8125E0CD +:1022F00030E0A501022E01C0440F0A94EAF7E42E53 +:102300004F21C1F029839A828E2191E009F490E057 +:102310009B830E94421C8160782F9D838C8349811E +:102320005A816B818D810E94CF11F6018081E82650 +:10233000E08204C021503109E0F6BDCF0E94E21FC7 +:10234000109176010E94E1101817B9F00E94E11077 +:102350008093760126960FB6F894DEBF0FBECDBFF0 +:10236000DF91CF911F910F91FF90EF90DF90CF9071 +:10237000BF90AF909F900C94DA0926960FB6F89410 +:10238000DEBF0FBECDBFDF91CF911F910F91FF90A8 +:10239000EF90DF90CF90BF90AF909F900895CF9334 +:1023A000DF93CDB7DEB72B970FB6F894DEBF0FBE25 +:1023B000CDBF4F83588769877A878B87DE01119657 +:1023C00086E0FD0111928A95E9F785E0FE013796D6 +:1023D00001900D928A95E1F749815A816B817C8148 +:1023E0008D819E810E9418182B960FB6F894DEBF3F +:1023F0000FBECDBFDF91CF910895CF93882309F40D +:10240000C2C0C82F823859F40E94E11081FDBBC0C0 +:1024100089E30E94F21A0E94BF1B89E30CC0833833 +:1024200079F40E94E11080FDAEC083E50E94F21AAB +:102430000E94BF1B83E50E94341BCF910C94BF1BED +:10244000843859F40E94E11082FD9DC087E40E9407 +:10245000F21A0E94BF1B87E4EECF8CEF8C0F813AFB +:1024600048F48C2F0E94252281118DC08C2F0E9450 +:10247000F21AE3CF80E28C0F883048F4C77081E015 +:1024800001C0880FCA95EAF70E94781BD6CF8BE56A +:102490008C0F833078F4C53A29F0C63A31F083E8DE +:1024A00090E005C081E890E002C082E890E0CF9122 +:1024B0000C94031188E58C0F833108F064C0C83A8E +:1024C00039F1C93A41F1CA3A49F1CB3A51F1CC3A22 +:1024D00059F1CD3A61F1C03B69F1CE3A71F1CF3A91 +:1024E00079F1C13B81F1C23B89F1C33B91F1C43B1E +:1024F00099F1C53BA1F1C63BA9F1C73BB1F1C83B7E +:10250000B9F1C93BC1F1CA3BC9F180E090E038C0E4 +:1025100082EE90E035C089EE90E032C08AEE90E025 +:102520002FC085EB90E02CC086EB90E029C087EBB4 +:1025300090E026C08CEC90E023C08DEC90E020C0B1 +:1025400083E891E01DC08AE891E01AC082E991E039 +:1025500017C084E991E014C081E292E011C083E2E7 +:1025600092E00EC084E292E00BC085E292E008C0E7 +:1025700086E292E005C087E292E002C08AE292E041 +:10258000CF910C941911CF910895882309F44BC071 +:10259000823859F40E94E11081FF45C089E30E940E +:1025A000F21A0E94BF1B89E30CC0833871F40E94A9 +:1025B000E11080FF38C083E50E94F21A0E94BF1B21 +:1025C00083E50E94341B0C94BF1B843859F40E948D +:1025D000E11082FF28C087E40E94F21A0E94BF1B0C +:1025E00087E4EFCF9CEF980F913A58F390E2980F61 +:1025F000983050F4877091E001C0990F8A95EAF7FE +:10260000892F0E947E1BDFCF9BE5980F933020F42B +:1026100080E090E00C940311885A833120F480E02C +:1026200090E00C9419110895882321F00E94781BE2 +:102630000C94BF1B0895882321F00E947E1B0C94EC +:10264000BF1B08957F928F929F92AF92BF92CF92BD +:10265000DF92EF92FF920F931F93CF93DF931F921E +:10266000CDB7DEB77C01C62E772EFC010581029521 +:102670000F70128111110E94951B0E94EB1A882382 +:1026800079F0112369F080E28C0D883048F082E007 +:102690000E94D41A0E94EB1A91E0D82ED92601C0CC +:1026A000D12CE72DE295EF70F0E0E759FF4F0C9445 +:1026B0005A24872D807F072D0F70882311F00295F3 +:1026C000007F112389F0002309F490C180E28C0D72 +:1026D000883020F4802F0E94781B03C0802F0E9436 +:1026E000881B0E94BF1B82C18C2D0E94C512002333 +:1026F00009F495C180E28C0D883020F4802F0E946F +:102700007E1B03C0802F0E948E1B0E94BF1B87C1AF +:10271000972D907F872D8F70903211F08295807F5A +:10272000CC2021F0F1E0CF16B1F01EC0112349F00A +:10273000002309F414C1013009F011C10E94A81B43 +:102740006EC1002319F0013009F469C189830E9428 +:10275000AB1B89810AC1112321F0023008F05FC14F +:10276000FEC001115CC101C1112321F0002309F455 +:10277000F6C03CC1002309F4F8C03EC1872D869500 +:102780008695837090E0009719F0019761F047C13A +:10279000112321F08C2D972D937002C080E090E0E2 +:1027A0000E9403113CC1112321F08C2D972D9370B1 +:1027B00002C080E090E00E94191131C18C2D1123DC +:1027C00019F00E94EA1E02C00E94521F0E94D71FE9 +:1027D00026C1872D837009F052C0111120C18C2DA4 +:1027E000829586958770880F880F9C2D9F70892E03 +:1027F000912CA12CB12C082E04C0880C991CAA1C69 +:10280000BB1C0A94D2F7C4FE14C00FE010E020E015 +:1028100030E0B901A80104C0440F551F661F771F9F +:102820008A95D2F7CB01BA01609570958095909505 +:1028300003C060E070E0CB01272D2695269523701C +:1028400030E02230310569F02330310589F0682904 +:1028500079298A299B292130310571F00E9460195C +:10286000DEC0682979298A299B290E947C19D7C052 +:102870000E946019C501B4010E944419D0C01123FF +:1028800019F0872D817001C08695882309F4C7C08F +:102890008C2D829586958770880F880F9C2D9F7050 +:1028A000892E912CA12CB12C082E04C0880C991CC7 +:1028B000AA1CBB1C0A94D2F7C4FE14C00FE010E09F +:1028C00020E030E0B901A80104C0440F551F661F85 +:1028D000771F8A95D2F7CB01BA01609570958095E4 +:1028E000909503C060E070E0CB01272D26952695DA +:1028F0002370422F50E04230510569F043305105BA +:1029000089F0682979298A299B294130510571F07C +:102910000E943A1A84C0682979298A299B290E9431 +:10292000561A7DC00E943A1AC501B4010E941E1AAF +:1029300076C08C2D90E0FC01E05EF109E531F105F7 +:1029400008F050C0E758FF4F0C945A240C2D0F701C +:10295000872D8F71112331F00E94B719802F0E94AB +:1029600014135DC00E94D819802F0E941B1357C0FA +:10297000112339F0011153C0872D8F710E94FD1969 +:102980004EC0023008F04BC0F7CF112339F0872D2D +:102990008F710E94B71943C01123C9F3872D8F711E +:1029A0000E94D8193CC0112329F0872D8F710E94F5 +:1029B000A21935C00E94981932C0112351F0172D69 +:1029C0001F71812F0E94B71963E0812F0E94CB1ADB +:1029D00026C081E00E94D41A023008F182E00E94F1 +:1029E000D41A1DC0112331F0002389F28C2D0E94CE +:1029F000FD1115C0002391F28C2D0E94C5120FC04D +:102A0000472D4F706C2DC7010E94FE050E94BC1817 +:102A100006C0472D4F706C2DC7010E94E906DD20CE +:102A2000F9F00E94C71A80FD1BC0F70112820E94B4 +:102A3000C11A0E94B719C7010E943F150E94C11A0E +:102A40000F90DF91CF911F910F91FF90EF90DF904A +:102A5000CF90BF90AF909F908F907F900C94D8199B +:102A60000F90DF91CF911F910F91FF90EF90DF902A +:102A7000CF90BF90AF909F908F907F9008950F93CD +:102A80001F93CF93DF93EC01888199812B813C8147 +:102A9000232BB9F09F3F11F48F3F99F0CE010E9494 +:102AA0004106882371F0688179818A810E94BD1A6C +:102AB0008C010E94721A0E943919B801CE010E943D +:102AC0002213DF91CF911F910F9108950E94951BC2 +:102AD0000E94A51B0E946A1B0E94BF1B0E948820A7 +:102AE0000E94D71F80E090E00E94031180E090E0F8 +:102AF0000C9419110E94851B0C9466150E94B21A41 +:102B0000292F22952F7030E02C3031054CF42A30DB +:102B100031056CF42250310922303105A8F407C088 +:102B20002C30310569F02F30310551F00DC0803F58 +:102B300069F018F4803E40F409C0843F29F406C0CF +:102B400093FB882780F9089580E0089581E0089537 +:102B5000CF93DF9300D000D01F92CDB7DEB70F9098 +:102B60000F900F900F900F90DF91CF910895CF931A +:102B7000DF9300D000D000D0CDB7DEB726960FB6D9 +:102B8000F894DEBF0FBECDBFDF91CF9108951F93A4 +:102B9000CF93DF93C091850116E080918601C8171D +:102BA00099F0D0E01C9FF0011D9FF00D1124E95712 +:102BB000FE4F4081518162817381848195810E94A1 +:102BC000B7152196C770E9CFDF91CF911F91089576 +:102BD0004091B7015091B8016091B9017091BA016B +:102BE0008091BB019091BC010C94B7158091BC0100 +:102BF00082958F7009F054C08091B901882309F43F +:102C00004FC080918501A09186016091B7017091BC +:102C1000B8014091BA015091BB01B6E08A1709F49E +:102C20003FC090E041155105C1F17F3F11F46F3F66 +:102C3000A1F1B89FF001B99FF00D1124E957FE4FA3 +:102C4000218172132AC02081621327C022812111A1 +:102C500024C0238134812417350710F42150310911 +:102C6000241B350B283C3105C0F42091BC012F708A +:102C700020612093BC0126E0289FF001299FF00DE0 +:102C80001124E457FE4F80818F708061808387EB31 +:102C900091E00E943F150C94C71501968770BECF36 +:102CA0000895CF92DF92EF92FF920F931F93CF93ED +:102CB000DF93CDB7DEB762970FB6F894DEBF0FBED5 +:102CC000CDBF8C0185E0F801DE011D9601900D92CB +:102CD0008A95E1F7D8014C9111965C911197129663 +:102CE0006C9112971396CD90DC9014973091B701A8 +:102CF0007091B8018091BA019091BB01009709F4DD +:102D00006BC17F3F19F43F3F09F466C1E090B90100 +:102D1000EE2009F4C0C02091BC01C816D90628F0E5 +:102D2000F601E81BF90BCF0104C0809590958C0D3E +:102D30009D1DFF24F394883C910578F0F12C207FB1 +:102D400009F0C6C07C2DD98AC88A89890E94A81535 +:102D500087EB91E00E943F15B1C0822F807F09F080 +:102D600046C0751314C0341312C0611110C02F7007 +:102D700020612093BC010E94E81587EB91E00E943E +:102D80003F158091BC01D80115968C932EC0CD289B +:102D900019F15F3F11F44F3FF9F0F62E61111CC09D +:102DA000809185012091860136E0821709F45AC08E +:102DB00090E0389FF001399FF00D1124E957FE4F44 +:102DC0007181571306C07081471303C0728171115E +:102DD00003C001968770E9CFF62E662309F418C167 +:102DE0008091BC0181608093BC01F12C11C17513ED +:102DF00008C0341306C0611104C08091BC01D80121 +:102E0000C3C04D875E878D859E856A8B0E947E1527 +:102E10006A898823E1F16623D1F12091BC01822FD8 +:102E200082958F7090E0029774F08091B701909135 +:102E3000B80198878F831986DB86CA862C87CE01D6 +:102E400007960E943F1586E0F801A7EBB1E00190DC +:102E50000D928A95E1F70E94F6150E94E815FF246D +:102E6000F394D6C04D875E878D859E850E94B21AE9 +:102E7000292F22952F7030E0223031050CF0BCC094 +:102E80009F7009F0B6C0805E883008F4C1C0C801E8 +:102E90000E943F15E4CFC816D90608F453C0F601C6 +:102EA000E81BF90BCF01883C910508F450C0F12CC8 +:102EB0007C2DD98AC88A89890E94A815E7EBF1E0A0 +:102EC00086E0DF011D928A95E9F70E94E815A0C00F +:102ED000751314C0341312C0611110C08091BC016D +:102EE000F8018583C8010E943F1586E0E7EBF1E019 +:102EF000DF011D928A95E9F7FE2C8AC04D875E8717 +:102F00008D859E856A8B0E947E156A89882309F4C7 +:102F1000BECF662309F4BBCF2091BC01822F8295DE +:102F20008F7090E002970CF48ECF8091B701909152 +:102F3000B8019A8389831B82DD82CC822E83CE01E5 +:102F400001967FCF809590958C0D9D1DACCFF62E70 +:102F5000662309F49CCF75132EC034132CC0209126 +:102F6000BC0120FD1FC0822F82958F70D9F0D8013F +:102F700015962C9315978F3049F08F5F982F929567 +:102F8000907F822F8F70892B15968C93C8010E9499 +:102F90003F1586E0F801A7EBB1E001900D928A950C +:102FA000E1F793CF86E0F801A7EBB1E001900D9235 +:102FB0008A95E1F72DC04D875E878D859E850E949D +:102FC0007E15811140CF8091BC0181608093BC014E +:102FD000C8010E943F151CC0662309F458CF4D87D5 +:102FE0005E878D859E850E947E15882309F44FCFCC +:102FF0002ACF811148CF0CC0243031050CF047CFC7 +:103000009F7009F440CFF8019581907F09F03BCF84 +:103010008F2D62960FB6F894DEBF0FBECDBFDF9145 +:10302000CF911F910F91FF90EF90DF90CF90089577 +:103030001F93CF93DF93CDB7DEB72C970FB6F894DD +:10304000DEBF0FBECDBF4F83588769877A878B87D6 +:103050009C87CE0107960E945116882369F08F81C4 +:1030600098852A853B85232BF1F19F3F09F063C0AA +:103070008F3F09F060C037C086E0FE013796DE0161 +:10308000119601900D928A95E1F76F817885EA8516 +:10309000FB85309741F17F3F11F46F3F21F1209183 +:1030A000860130E0C901019687709927409185011A +:1030B00050E08417950709F447C069837A83FD833C +:1030C000EC8396E0929FD001939FB00D1124A957F5 +:1030D000BE4FFE01319601900D929A95E1F78093D3 +:1030E00086010E94C71516E08091850190918601A6 +:1030F0008917C1F1189FC001112489579E4F0E9462 +:103100005116882379F1E09185011E9FF001112469 +:10311000E957FE4F4081518162817381848195819D +:103120000E94B7158091850190E0019687709927DC +:1031300080938501D9CF4F81588569857A858B85A4 +:103140009C850E94B715CFCF0E947A1510928601F8 +:1031500010928501E7EBF1E086E0DF011D928A9590 +:10316000E9F7C1CF2C960FB6F894DEBF0FBECDBFE6 +:10317000DF91CF911F910895EF92FF920F931F93CC +:10318000CF93DF938C01009709F46CC0F12CEE24EF +:10319000E394E8012196F8018491843740F4843067 +:1031A00008F051C0813081F0823019F15BC0853761 +:1031B00009F444C0A8F19CE7980F903708F052C07A +:1031C0008F770E94C51241C00E5F1F4FFE01C49150 +:1031D00080E28C0F883048F4C7708E2D01C0880FB4 +:1031E000CA95EAF70E94981B14C08C2F0E94FD110B +:1031F0002DC00E5F1F4FFE01C49180E28C0F8830FE +:1032000058F4C7708E2D01C0880FCA95EAF70E9446 +:103210009E1B0E94BF1B1AC08C2F0E94C51216C095 +:103220000E5F1F4FFE01C491CC2381F08FE99FE018 +:103230000197F1F700C00000C150F6CF0E5F1F4F9D +:10324000FE01F49003C00E94FD118E018F2D882392 +:1032500009F49FCFEFE9FFE03197F1F700C00000DC +:103260008150F5CFDF91CF911F910F91FF90EF909B +:10327000089508956093C1017093C2018093C301C2 +:103280009093C4010C9466150F931F930091C10194 +:103290001091C2012091C3013091C401DC01CB0126 +:1032A000802B912BA22BB32B8093C1019093C20151 +:1032B000A093C301B093C4011F910F910C946615A4 +:1032C0000F931F930091C1011091C2012091C3017E +:1032D0003091C401DC01CB0180239123A223B323CD +:1032E0008093C1019093C201A093C301B093C40124 +:1032F0001F910F910C9466150F931F930091C101BC +:103300001091C2012091C3013091C401DC01CB01B5 +:1033100080279127A227B3278093C1019093C201F0 +:10332000A093C301B093C4011F910F910C94661533 +:103330001092BD011092BE011092BF011092C00107 +:103340000C94661541E050E060E070E004C0440F6A +:10335000551F661F771F8A95D2F74093BD01509382 +:10336000BE016093BF017093C0010C94661541E0EB +:1033700050E060E070E004C0440F551F661F771FE7 +:103380008A95D2F78091BD019091BE01A091BF01B5 +:10339000B091C001482B592B6A2B7B2B4093BD0168 +:1033A0005093BE016093BF017093C0010C946615E9 +:1033B00041E050E060E070E004C0440F551F661F1C +:1033C000771F8A95D2F740955095609570958091BA +:1033D000BD019091BE01A091BF01B091C0014823F1 +:1033E00059236A237B234093BD015093BE01609310 +:1033F000BF017093C0010C94661541E050E060E09D +:1034000070E004C0440F551F661F771F8A95D2F7DE +:103410008091BD019091BE01A091BF01B091C0010A +:10342000482759276A277B274093BD015093BE0147 +:103430006093BF017093C0010C9466150F931F93A6 +:103440000091BD011091BE012091BF013091C001DA +:10345000DC01CB01802B912BA22BB32B8093BD01E0 +:103460009093BE01A093BF01B093C0011F910F9133 +:103470000C9466150F931F930091BD011091BE012E +:103480002091BF013091C001DC01CB018023912349 +:10349000A223B3238093BD019093BE01A093BF01EB +:1034A000B093C0011F910F910C9466150F931F9359 +:1034B0000091BD011091BE012091BF013091C0016A +:1034C000DC01CB0180279127A227B3278093BD0180 +:1034D0009093BE01A093BF01B093C0011F910F91C3 +:1034E0000C9466150895CF92DF92EF92FF920F939E +:1034F0001F93CF93DF938C01C090C101D090C20184 +:10350000E090C301F090C4018091BD019091BE0193 +:10351000A091BF01B091C001C82AD92AEA2AFB2A8A +:10352000CFE1D0E0D701C6010C2E04C0B695A79517 +:10353000979587950A94D2F780FF06C0B8018C2F23 +:103540000E943F09019721F4219760F780E001C0B4 +:103550008C2FDF91CF911F910F91FF90EF90DF9013 +:10356000CF900895CF93DF93EC010E94731ABE01B0 +:103570000E943F09DF91CF910895CB010E94B21ABA +:1035800008958091C50185958595859508958091CB +:10359000C5018770089598E0899F90011124262B1A +:1035A0002093C5010C94B7192091C5018095822301 +:1035B0008093C501982F977069F430E0482F552704 +:1035C00047FD50952417350729F0859585958595F4 +:1035D0000C94D81908959091C501977081E009F471 +:1035E00080E0089590910C01992321F090910D01B4 +:1035F000911109C020910E0130910F01F90132960D +:103600009FEF40E01FC0982F9695969596959F3016 +:1036100050F5E0910E01F0910F01E90FF11D877057 +:1036200021E030E0A90102C0440F551F8A95E2F75E +:10363000CA019181892B818308959F3F39F04F5FA3 +:103640004E3041F051915813F8CF0DC05111F7CFC2 +:10365000942FF5CF9F3F39F0F901E90FF11D97FD48 +:10366000FA9582830895089590910C01992321F091 +:1036700090910D01911109C020910E0130910F011F +:10368000F9013296205F3F4F1FC0982F969596956F +:1036900096959F30F0F4E0910E01F0910F01E90F43 +:1036A000F11D877021E030E0A90102C0440F551FD1 +:1036B0008A95E2F7CA0180959181892381830895D3 +:1036C0003196E217F30729F090819813F9CF108211 +:1036D000F7CF089581E090E0E0910E01F0910F01A5 +:1036E000E80FF91F1082019680319105A9F708951E +:1036F0009091D901892B8093D9010895809590915B +:10370000D90189238093D90108951092D901089590 +:103710009091D801892B8093D8010895809590913C +:10372000D80189238093D80108951092D801089573 +:103730009091D701892B8093D7010895809590911E +:10374000D70189238093D70108951092D701089556 +:103750008093C60108951092C601089580910E01CC +:1037600090910F01FC0131969C01205F3F4F80E05A +:10377000919191118F5FE217F307D1F70895E091CE +:103780000E01F0910F018091D9018083E0910E012B +:10379000F0910F0190818091D801892B8083E09175 +:1037A0000E01F0910F0190818091D701892B8083C8 +:1037B0008091C601882361F0E0910E01F0910F0124 +:1037C0009081892B80830E94AE1B81111092C601CB +:1037D00080910E0190910F010C94ED1020E0009764 +:1037E00039F0AC0141505109842395232F5FF7CF65 +:1037F000822F08958091F101843021F11092DB0134 +:1038000020E488E190E00FB6F894A89580936000DA +:103810000FBE2093600080E00E94DA0983B7817FA9 +:10382000846083BF83B7816083BF7894889583B7B2 +:103830008E7F83BF88E10FB6F8948093600010926A +:1038400060000FBE0895089508950E94231C0E94F1 +:1038500032040E94241C0E94270591E0811101C0BE +:1038600090E0892F08950E947A150E94E1100C942F +:10387000DA0982E084BD93E095BD9AEF97BD80930D +:103880006E0008952FB7F8948091DC019091DD01CE +:10389000A091DE01B091DF012FBF0895CF92DF929A +:1038A000EF92FF920F931F932FB7F8944091DC0192 +:1038B0005091DD016091DE017091DF012FBF6A013F +:1038C0007B01EE24FF248C0120E030E0C016D106FD +:1038D000E206F30610F4415051099A01281B390BF6 +:1038E000C9011F910F91FF90EF90DF90CF90089545 +:1038F0001F920F920FB60F9211248F939F93AF9345 +:10390000BF938091DC019091DD01A091DE01B09127 +:10391000DF010196A11DB11D8093DC019093DD01B3 +:10392000A093DE01B093DF01BF91AF919F918F9182 +:103930000F900FBE0F901F9018950E94DE0DF89407 +:103940002FEF87EA91E6215080409040E1F700C0D8 +:10395000000087E090EBDC018093FB019093FC0179 +:10396000A093FD01B093FE019CE088E10FB6F894AE +:10397000A895809360000FBE90936000FFCFEF92F8 +:10398000FF920F931F93CF93DF93D82FCDE08C2F0F +:103990000E94200505E010E0E82EF12CC701002E62 +:1039A00002C0959587950A94E2F780FF09C0602FC1 +:1039B0007C2F80E00E94EA06D81302C081E006C096 +:1039C0000150110958F7C15010F780E0DF91CF91F5 +:1039D0001F910F91FF90EF900895CF93C82F8CE225 +:1039E0000E94BF1C882321F08C2FCF910C94BF1C08 +:1039F00080E0CF910895CF930E94421E811102C0B2 +:103A00000E94281EC5E6C15049F00E9432048FE38F +:103A10009CE90197F1F700C00000F5CF89E20E9410 +:103A2000ED1C811113C18AE20E94ED1C81110E94DC +:103A3000281E85E00E94ED1C81110E949D1C0E94A1 +:103A40004D1E8093DA0187E00E94ED1C8823A9F1C6 +:103A50008BE10E94ED1C882351F08091DA0181FBFB +:103A6000222720F991E0922790FB81F90EC08EE089 +:103A70000E94ED1C882361F08091DA0182FB2227ED +:103A800020F991E0922790FB82F98093DA0115C02A +:103A900080E10E94ED1C9091DA01882341F093FBB4 +:103AA000222720F981E0822780FB93F904C0892F27 +:103AB000809580FB90F99093DA018091DA010E9461 +:103AC000511E0E945F1E8093FA0180EE0E94ED1C41 +:103AD000882341F08091FA01982F909590FB80F90E +:103AE0008093FA0189E30E94ED1C882359F08091AC +:103AF000FA0181FB222720F991E0922790FB81F9BE +:103B00008093FA0182EE0E94ED1C882359F0809187 +:103B1000FA0182FB222720F991E0922790FB82F99B +:103B20008093FA0186EE0E94ED1C882359F0809163 +:103B3000FA0183FB222720F991E0922790FB83F979 +:103B40008093FA0183EE0E94ED1C882359F0809146 +:103B5000FA0184FB222720F991E0922790FB84F957 +:103B60008093FA0185E30E94ED1C882359F080912F +:103B7000FA0185FB222720F991E0922790FB85F935 +:103B80008093FA0181E30E94ED1C882359F0809113 +:103B9000FA0186FB222720F991E0922790FB86F913 +:103BA0008093FA0181E10E94ED1C882359F08091F5 +:103BB000FA0187FB222720F991E0922790FB87F9F1 +:103BC0008093FA018091FA010E94631E8091FA01AC +:103BD00087FB882780F980930D0187E20E94ED1C06 +:103BE000C82F8EE10E94ED1C8111C2608FE10E94FE +:103BF000ED1C8111C46080E20E94ED1C8111C8603F +:103C000081E20E94ED1C8111C06182E20E94ED1CE4 +:103C10008111C06283E20E94ED1C8111C06484E2C4 +:103C20000E94ED1C882311F0C06802C0CC2329F04B +:103C30008C2F0E945A1E6C2F03C00E94561E682FA4 +:103C400070E080E090E0CF910C943A19CF91089504 +:103C50006DEE7EEF80E090E00E94942460E082E0D0 +:103C600090E00E94822460E083E090E00E94822441 +:103C700060E084E090E00E94822460E085E090E0D3 +:103C80000C94822480E090E00E947C2421E08D3E10 +:103C90009E4F09F020E0822F089582E090E00C947E +:103CA0007424682F82E090E00C94822483E090E0FA +:103CB0000C947424682F83E090E00C94822484E0B8 +:103CC00090E00C947424682F84E090E00C9482249B +:103CD0008091E20180FF0BC06091130185E0689F35 +:103CE000B001112475956795759567952BC081FF77 +:103CF00009C06091130185E0689FB001112475959A +:103D0000679520C082FF07C06091130185E0689F1E +:103D1000B001112417C09091E3019923D1F0609173 +:103D20001201961788F72091130185E0289F9001D2 +:103D30001124929FA001939F500D112470E0CA019D +:103D40000E9446246038710540F46115710539F010 +:103D500002C065E070E0862F08958FE7089581E046 +:103D600008958091E20180FF08C06091110170E028 +:103D7000759567957595679521C081FF06C060911F +:103D8000110170E07595679519C082FF04C06091BC +:103D9000110170E010C09091E3019923C1F060918E +:103DA00010019617A0F780911101899FC00111247D +:103DB00070E00E9446246038710528F46115710591 +:103DC00021F0862F08958FE7089581E0089561E03E +:103DD00070E0F4CF803F21F40E94681E819504C0FA +:103DE000813F29F40E94681E8093E6010895823F76 +:103DF00021F40E94681E819504C0833F29F40E942B +:103E0000681E8093E5010895893F19F40E94B11E50 +:103E100005C08A3F31F40E94B11E81958093E7016D +:103E200008958B3F21F40E94B11E819504C08C3F00 +:103E300029F40E94B11E8093E8010895843F21F483 +:103E40008091E401816017C0853F21F48091E401F5 +:103E5000826011C0863F21F48091E40184600BC030 +:103E6000873F21F48091E401886005C0883F31F4E8 +:103E70008091E40180618093E40108958D3F21F4F5 +:103E80008091E20181600BC08E3F21F48091E201BC +:103E9000826005C08F3F29F48091E20184608093A5 +:103EA000E2010895803F39F48091E60187FF6CC0FC +:103EB0001092E60169C0813F29F48091E60118164D +:103EC000BCF362C09091E501823F29F497FF5CC08A +:103ED0001092E50159C0833F19F41916CCF354C070 +:103EE000893F41F48091E70118160CF04DC0109203 +:103EF000E7014AC08A3F29F48091E70187FF44C067 +:103F0000F6CF8B3F39F48091E80187FF3DC01092D6 +:103F1000E8013AC08C3F29F48091E8011816BCF3FF +:103F200033C0843F21F48091E4018E7F17C0853F28 +:103F300021F48091E4018D7F11C0863F21F48091AE +:103F4000E4018B7F0BC0873F21F48091E401877FE0 +:103F500005C0883F31F48091E4018F7E8093E401B5 +:103F600013C08D3F21F48091E2018E7F0BC08E3F04 +:103F700021F48091E2018D7F05C08F3F29F480916B +:103F8000E2018B7F8093E2018091E50181110EC0F7 +:103F90008091E60181110AC08091E701811106C07C +:103FA0008091E801811102C01092E301089584EE2E +:103FB00091E00E94F8100E94421C9093E1018093CE +:103FC000E00108951F93CF93DF938091E0019091DA +:103FD000E1010E944E1CAC019091E301992321F074 +:103FE0002091140130E006C0209115018AE0289F3D +:103FF000900111244217530708F486C08091E5010F +:10400000C091E601D091E7011091E801811107C04C +:10401000C11176C0D11174C0111172C075C09F3F1B +:1040200019F09F5F9093E301181624F40E94681E14 +:104030008093E5018091E50187FF05C00E94681E1D +:1040400081958093E5011C1624F40E94681E8093DC +:10405000E6018091E60187FF05C00E94681E8195F8 +:104060008093E6016091E501662339F1C091E60194 +:10407000CC2319F1772767FD7095872F972F0E9422 +:10408000572323E333E343E35FE30E94BB230E9410 +:1040900024236093E5016C2F772767FD7095872FA8 +:1040A000972F0E94572323E333E343E35FE30E9408 +:1040B000BB230E9424236093E6011D1624F40E9472 +:1040C000B11E8093E7018091E70187FF05C00E9440 +:1040D000B11E81958093E701111624F40E94B11E50 +:1040E0008093E8018091E80187FF05C00E94B11E1E +:1040F00081958093E801DF91CF911F910C94D71F98 +:104100009F3F09F08ECF96CFDF91CF911F910895F9 +:10411000E4EEF1E085E0DF011D928A95E9F7109267 +:10412000E3011092E2010895833081F128F4813097 +:1041300059F08230D1F00895853009F449C0B8F1C2 +:10414000863009F456C0089580911501262F30E07D +:10415000280F311D2F3F310524F4680F609315019E +:1041600008958FEF80931501089580911401262FF3 +:1041700030E0280F311D2F3F310524F4680F609384 +:10418000140108958FEF8093140108958091130115 +:10419000262F30E0280F311D2F3F310524F4680F02 +:1041A0006093130108958FEF809313010895809118 +:1041B0001201262F30E0280F311D2F3F310524F446 +:1041C000680F6093120108958FEF80931201089594 +:1041D00080911101262F30E0280F311D2F3F31052E +:1041E00024F4680F6093110108958FEF80931101FB +:1041F000089580911001262F30E0280F311D2F3FA8 +:10420000310524F4680F6093100108958FEF8093B7 +:1042100010010895833011F128F4813049F0823083 +:1042200091F00895853081F120F18630C1F1089533 +:1042300080911501681720F4861B8093150108955D +:1042400010921501089580911401681720F4861BBF +:104250008093140108951092140108958091130120 +:10426000681720F4861B80931301089510921301A0 +:10427000089580911201681720F4861B8093120123 +:10428000089510921201089580911101681720F489 +:10429000861B809311010895109211010895809159 +:1042A0001001681720F4861B809310010895109266 +:1042B000100108950F931F938D3109F46BC008F01E +:1042C0003FC08E3009F47FC0C0F4873009F469C064 +:1042D00068F4863009F0B1C08091DA01817F8E7F69 +:1042E0008093DA0181E08093EA01A8C0883009F464 +:1042F000A2C08B3009F49FC0A0C0863109F49BC0D6 +:1043000078F4803109F472C0813109F096C00E94BE +:104310007A1590910D0181E0892780930D018BC062 +:10432000893109F488C08B3109F087C08091DA01A6 +:1043300081FB222720F991E0922790FB81F94CC064 +:10434000853309F470C048F4873209F46CC008F46E +:1043500059C0893209F467C070C0833438F48A3395 +:1043600008F04EC0883309F466C067C0833409F48E +:104370005AC0883409F061C00E947A150FEF13ED1E +:1043800020E3015010402040E1F700C000000E94EF +:104390009D1C51C00E94DE220E94E1100E94DA0999 +:1043A0004AC09091DA01892F8095817080FB90F945 +:1043B00029F0966098609093DA0140C0997F977FCA +:1043C0009093DA0138C08091DA0182FB222720F92C +:1043D00091E0922790FB82F98093DA01992359F1B9 +:1043E0008091DA0181608093DA0125C08091DA0141 +:1043F00083FB222720F991E0922790FB83F9ECCFF1 +:10440000895301C08D5141E050E060E070E08A01C5 +:104410009B0104C0000F111F221F331F8A95D2F782 +:10442000C901B80104C061E070E080E090E00E9442 +:104430003A190E947A1581E001C080E01F910F9126 +:10444000089580E0089580E00895CF93C82F80916B +:10445000EA01813079F018F08230E9F187C0E0910B +:104460000E01F0910F018081813169F0823209F0F3 +:104470007FC009C0E0910E01F0910F018081813170 +:1044800011F0823261F48C2F0E942122811104C02C +:104490008C2F0E945A211DC081E090E01AC08C2F01 +:1044A0000E942322811114C0C43179F048F4CB302A +:1044B00079F0C03109F060C082E08093EA0108C061 +:1044C000C93219F0C83321F057C01092EA0154C024 +:1044D00081E0817053C0C93289F118F5C43171F19E +:1044E000A8F4C73009F046C08AE08093150194E132 +:1044F0009093140193E0909313018093120188E04C +:104500008093110188E28093100134C0CE51C630EF +:1045100088F5EC2FF0E0E65DFE4F80818093E901A5 +:1045200029C0CE34E9F020F4CB3421F56AE013C081 +:10453000C13579F0C235F1F461E00DC08091E90137 +:10454000882319F01092E90115C081E08093EA01F7 +:1045500015C061E006C08091E9010E9494200AC064 +:104560006AE08091E9010E940A2104C01092EA01E8 +:1045700080E004C081E002C080E0ABCFCF9108951D +:10458000E1E8F0E0808188608083808181608083C1 +:104590008FB7F89493E09093890090ED9093880002 +:1045A0008FBF0895EFE6F0E08081826080830895F8 +:1045B000EFE6F0E080818D7F80830895EFE6F0E004 +:1045C000908182E08927808308951F920F920FB611 +:1045D0000F9211242F933F934F935F936F937F9389 +:1045E0008F939F93AF93BF93EF93FF938091EB01D2 +:1045F0009091EC0101969093EC018093EB01811175 +:1046000003C082E00E94DA09E091EC01E695E695AC +:10461000F0E0EF57F94FE4918091EB018E1303C066 +:1046200080E00E94DA09FF91EF91BF91AF919F91D5 +:104630008F917F916F915F914F913F912F910F904B +:104640000FBE0F901F90189504D06894B1118DC0C3 +:10465000089570D088F09F5790F0B92F9927B751DF +:10466000A0F0D1F0660F771F881F991F1AF0BA9536 +:10467000C9F712C0B13081F077D0B1E0089574C0AD +:10468000672F782F8827B85F39F0B93FCCF386952C +:1046900077956795B395D9F73EF490958095709589 +:1046A00061957F4F8F4F9F4F0895E89409C097FB06 +:1046B0003EF490958095709561957F4F8F4F9F4FF9 +:1046C0009923A9F0F92F96E9BB279395F69587953D +:1046D00077956795B795F111F8CFFAF4BB0F11F400 +:1046E00060FF1BC06F5F7F4F8F4F9F4F16C08823A7 +:1046F00011F096E911C0772321F09EE8872F762FDD +:1047000005C0662371F096E8862F70E060E02AF01D +:104710009A95660F771F881FDAF7880F9695879509 +:1047200097F9089557FD9058440F551F59F05F3F72 +:1047300071F04795880F97FB991F61F09F3F79F0C3 +:1047400087950895121613061406551FF2CF469545 +:10475000F1DF08C0161617061806991FF1CF8695C7 +:104760007105610508940895E894BB2766277727AB +:10477000CB0197F908950BD078C069D028F06ED09E +:1047800018F0952309F05AC05FC01124EECFCADF9C +:10479000A0F3959FD1F3950F50E0551F629FF00154 +:1047A000729FBB27F00DB11D639FAA27F00DB11DAD +:1047B000AA1F649F6627B00DA11D661F829F222736 +:1047C000B00DA11D621F739FB00DA11D621F839FBD +:1047D000A00D611D221F749F3327A00D611D231F93 +:1047E000849F600D211D822F762F6A2F11249F57E1 +:1047F00050408AF0E1F088234AF0EE0FFF1FBB1F04 +:10480000661F771F881F91505040A9F79E3F5105A2 +:1048100070F014C0AACF5F3FECF3983EDCF38695AE +:1048200077956795B795F795E7959F5FC1F7FE2B4D +:10483000880F911D9695879597F9089597F99F6729 +:1048400080E870E060E008959FEF80EC0895002418 +:104850000A941616170618060906089500240A94E5 +:1048600012161306140605060895092E0394000C6B +:1048700011F4882352F0BB0F40F4BF2B11F460FFFA +:1048800004C06F5F7F4F8F4F9F4F089597FB072E98 +:1048900016F4009407D077FD09D00E94602407FC2D +:1048A00005D03EF4909581959F4F08957095619540 +:1048B0007F4F0895EE0FFF1F0590F491E02D0994AE +:1048C000AA1BBB1B51E107C0AA1FBB1FA617B70736 +:1048D00010F0A61BB70B881F991F5A95A9F7809552 +:1048E0009095BC01CD010895F999FECF92BD81BD8F +:1048F000F89A992780B50895A8E1B0E042E050E029 +:104900000C949C24262FF999FECF92BD81BDF89A74 +:10491000019700B4021639F01FBA20BD0FB6F89403 +:10492000FA9AF99A0FBE08950196272F0E948324C0 +:104930000C948224DC01CB01FC01F999FECF06C066 +:10494000F2BDE1BDF89A319600B40D92415050404D +:08495000B8F70895F894FFCFB9 +:104958000220DC096A0A470A130ADF090101C701B4 +:1049680028080A03140A3F4D36394206F505BF05E3 +:104978008605190532054B05640501020304050681 +:044988000708090013 +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/keyboard-layout.png b/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/keyboard-layout.png new file mode 100644 index 000000000..57df5a1f9 Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/keyboard-layout.png differ diff --git a/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/keymap.c b/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/keymap.c new file mode 100644 index 000000000..3b74d266f --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/keymap.c @@ -0,0 +1,264 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_norwegian.h" + +#define BASE 0 // default layer +#define BASE_MAC 1 // default layer mac +#define NUMB_SYMB 2 // numbers and symbols +#define NUMB_SYMB_MAC 3 // numbers and symbols mac +#define FUNCTION 4 // function keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Keymap 0: Basic layer PC + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | \ | [ | ] | { | } | * |Mac/PC| | ^ | $ | ( | ) | < | > | @ | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | ? | Q | W | F | P | G | " | | ' | J | L | U | Y | Å | Æ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | : | A | R | S | T | D |------| |------| H | N | E | I | O | Ø | + * |--------+------+------+------+------+------| ; | | = |------+------+------+------+------+--------| + * | ! | Z | X | C | V | B | | | | K | M | RIGHT| DOWN | UP | _ | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | Func | Lclk | Rclk | TAB |,/CTRL| | LEFT | Esc | ` | # | Num | + * `----------------------------------' `----------------------------------' + * ,-------------. ,--------------. + * | & | | | |Insert| / | + * ,------|------|------| |------+-------+------. + * | | | + | | Del | | | + * | Shift| ./Spc|------| |------| Enter |Space| + * | | |-/Alt | | Bspc | | | + * `--------------------' `---------------------' + */ +[BASE] = KEYMAP( + // left hand + NO_BSLS, NO_LBRC, NO_RBRC, NO_LCBR, NO_RCBR, NO_ASTR, TG(1), + NO_QUES, KC_Q, KC_W, KC_F, KC_P, KC_G, NO_QUO2, + NO_COLN, KC_A, KC_R, KC_S, KC_T, KC_D, + KC_EXLM, KC_Z, KC_X, KC_C, KC_V, KC_B, NO_SCLN, + MO(4), KC_BTN1, KC_BTN2, KC_TAB,GUI_T(KC_COMMA), + NO_AMP, NO_PIPE, + NO_PLUS, + KC_FN1,CTL_T(KC_DOT),ALT_T(NO_MINS), + // right hand + KC_FN5, NO_DLR, NO_LPRN, NO_RPRN ,KC_FN3, KC_FN4,NO_AT, + NO_APOS, KC_J, KC_L, KC_U, KC_Y, NO_AA, NO_AE , + KC_H, KC_N, KC_E, KC_I, KC_O, NO_OSLH, + NO_EQL, KC_K, KC_M, KC_RIGHT, KC_DOWN, KC_UP, NO_UNDS, + KC_LEFT, KC_ESC, KC_FN7, KC_HASH, MO(2), + KC_INSERT, NO_SLSH, + KC_DELT, + KC_BSPC,KC_ENT,KC_SPC + ), +/* Keymap 1: Basic layer MACS (Same as pc, except for cmd/ctrl, which are swapped) + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | \ | | | { | } | | | | | $ | | | < | > | @ | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | ' |------+------+------+------+------+--------| + * | | | | | | |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | Func | | | |,/Ctrl| | | | ` | | Num | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | |./Cmd |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[BASE_MAC] = KEYMAP( + NO_BSLS_MAC, KC_TRNS,KC_TRNS, NO_LCBR_MAC,NO_RCBR_MAC, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, CTL_T(KC_COMMA), + KC_TRNS, NO_PIPE_MAC, + KC_TRNS, + KC_TRNS,GUI_T(KC_DOT) , KC_TRNS, + // right hand + KC_TRNS, NO_DLR_MAC, KC_TRNS,KC_TRNS,KC_FN8, KC_FN9,NO_AT_MAC, + NO_APOS_MAC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, NO_GRV_MAC, KC_TRNS, MO(3), + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), + +/* Keymap 2: Number ++ layer pc + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | % | | | | | | ~ | ´ | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | 3 | 2 | 1 | 0 | |------| |------| | 5 | 6 | 7 | 8 | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | 4 | | | | | | 9 | END | PGDWN| PGUP | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | HOME | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[NUMB_SYMB] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_PERC, KC_TRNS , KC_TRNS, + KC_TRNS, KC_3 , KC_2 , KC_1 , KC_0 , KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_4, KC_TRNS, 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_FN2, KC_FN6 , KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_5, KC_6, KC_7, KC_8, KC_TRNS, + KC_TRNS, KC_HOME, KC_9, KC_END, KC_PGDN, KC_PGUP, KC_TRNS, + KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), + +/* Keymap 3: Number ++ layer mac. Some keys have to be repeated from the pc symbol layer, since transient keys inherit from the layer we jump from, not the layer above. + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | % | | | | | | ~ | ´ | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | 3 | 2 | 1 | 0 | |------| |------| | 5 | 6 | 7 | 8 | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | 4 | | | | | | 9 | END | PGDWN| PGUP | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | HOME | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[NUMB_SYMB_MAC] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_PERC, KC_TRNS , KC_TRNS, + KC_TRNS, KC_3 , KC_2 , KC_1 , KC_0 , KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_4, KC_TRNS, 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_FN2, KC_FN10, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_5, KC_6, KC_7, KC_8, KC_TRNS, + KC_TRNS, KC_HOME, KC_9, KC_END, KC_PGDN, KC_PGUP, KC_TRNS, + KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), + +/* Keymap 4: Function layer mac + pc + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | F3 | F2 | F1 | | |------| |------| | F5 | F6 | F7 | F8 | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | F4 | | | | | | F9 | F10 | F11 | F12 | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[FUNCTION] = KEYMAP( + 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 , KC_TRNS, + KC_TRNS, KC_F3 , KC_F2 , KC_F1 , KC_TRNS , KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F4, KC_TRNS, 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_F5, KC_F6, KC_F7, KC_F8, KC_TRNS, + KC_TRNS, NO_TILD, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +) +}; + +enum macro_id { + TILDE_NO, LESS_NO, GRTR_NO, CIRC_NO, ACUT_NO, GRV_NO, LESS_NO_MAC, GRTR_NO_MAC, ACUT_NO_MAC +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_MODS_ONESHOT(MOD_LSFT), // Sticky shift light. Tap for the next keypress to be shifted. Hold for regular shift. + [2] = ACTION_MACRO(TILDE_NO), // Completed ~ character(pc and mac), no space needed. + [3] = ACTION_MACRO(LESS_NO), // < completed on keypress down, to avoid shifting the next character if it is not released first. + [4] = ACTION_MACRO(GRTR_NO), // > completed on keypress down, to avoid shifting the next character if it is not released first. + [5] = ACTION_MACRO(CIRC_NO), // Completed ^ character, no space needed. + [6] = ACTION_MACRO(ACUT_NO), // Completed ´ character, no space needed. + [7] = ACTION_MACRO(GRV_NO), // Completed ` character, no space needed. + [8] = ACTION_MACRO(LESS_NO_MAC), // < completed on keypress down, to avoid same button problem when typing <> quickly + [9] = ACTION_MACRO(GRTR_NO_MAC), // > completed on keypress down, to avoid same button problem when typing <> quickly + [10] = ACTION_MACRO(ACUT_NO_MAC), // Completed ´ character, no space needed +}; + + + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + keyevent_t event = record->event; + + switch (id) { + case TILDE_NO: + return (event.pressed ? MACRO( D(RALT), T(RBRC), U(RALT), T(SPC), END ) : MACRO_NONE); + case LESS_NO: + return (event.pressed ? MACRO( T(NUBS), END ) : MACRO_NONE); + case GRTR_NO: + return (event.pressed ? MACRO( D(LSFT), T(NUBS), U(LSFT), END ) : MACRO_NONE); + case CIRC_NO: + return (event.pressed ? MACRO( D(LSFT), T(RBRC), U(LSFT), T(SPC), END ) : MACRO_NONE); + case ACUT_NO: + return (event.pressed ? MACRO( D(RALT), T(EQL), U(RALT), T(SPC), END ) : MACRO_NONE); + case GRV_NO: + return (event.pressed ? MACRO( D(LSFT), T(EQL), T(SPC), U(LSFT), END ) : MACRO_NONE); + case LESS_NO_MAC: + return (event.pressed ? MACRO( T(GRV), END ) : MACRO_NONE); + case GRTR_NO_MAC: + return (event.pressed ? MACRO( D(LSFT), T(GRV), U(LSFT), END ) : MACRO_NONE); + case ACUT_NO_MAC: + return (event.pressed ? MACRO( T(EQL), T(SPC), END ) : MACRO_NONE); + } + return MACRO_NONE; +}; diff --git a/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/readme.md b/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/readme.md new file mode 100644 index 000000000..48f095cae --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/readme.md @@ -0,0 +1,23 @@ +# Norwegian Colemak setup with osx/pc toggle + +## Motivation +I wanted a Norwegian Colemak setup that worked in a similar way on both my Mac and PC. I also wanted it to translate from a standard Norwegian keyboard OS setup. + +## Overview +The setup is created to be programmer friendly. +- Most of the symbols used in code can be activated without using layers or shift key. +- You can reach the IDE/OS shortcut activators(Ctrl, Win/Cmd, Alt, Shift) with the thumb. +- Navigation is prioritized, arrows are right below the home row. + +## PC/Mac toggle +The default setup is for Norwegian keyboard setting(not colemak variants) on a PC(Windows or Linux). Use the Mac/PC toggle button to switch between OSX and PC setup. The settings will be reverted to PC setup each time you restart/connect the keyboard. + +## Layers +Numbers and function buttons are on their own layers. The easiest way to switch layers(at least with my hands) in this setup, is to push your hand right below the little finger, on the layer switches. You will then have all your fingers free to type numbers or press function buttons. + +## Shift-key +Tap for the next character to be shifted, hold down for regular shift functionality + +## Layout + +![keyboard-layout](keyboard-layout.png) diff --git a/keyboards/ergodox_ez/keymaps/csharp_dev/compiled.hex b/keyboards/ergodox_ez/keymaps/csharp_dev/compiled.hex new file mode 100644 index 000000000..3f42f6272 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/csharp_dev/compiled.hex @@ -0,0 +1,1159 @@ +:100000000C94F5020C9439030C9439030C943903C5 +:100010000C9439030C9439030C9439030C94390370 +:100020000C9439030C9439030C94B90E0C948B0F77 +:100030000C9439030C9439030C9439030C94390350 +:100040000C9439030C9445220C9439030C94390315 +:100050000C9439030C94271D0C9439030C94390328 +:100060000C9439030C9439030C9439030C94390320 +:100070000C9439030C9439030C9439030C94390310 +:100080000C9439030C9439030C9439030C94390300 +:100090000C9439030C9439030C9439030C943903F0 +:1000A0000C9439030C9439030C943903B505BB0542 +:1000B000C105C705CD05D205D705E105E605DC0577 +:1000C000EB05F005F505FA05FF050406F80F1A1013 +:1000D00008111A1008115F1082100811D710EA10C9 +:1000E000B913B913E813E8131E143E146F156F15F6 +:1000F00049146F15F914F91460156F156F1569150A +:100100000615061506150615061506150615061517 +:100110000615061506150615061506150615061507 +:10012000181525152C1533153D1501E1012602265C +:100130000127022702E101330233000111021101FC +:10014000080208011A021A012C022C000138023898 +:100150000138023801E101170217011202120107EA +:1001600002070112021202E1012C022C0001050219 +:1001700005011502150108020801040204010E021E +:100180000E01330233000111021101180218010F90 +:10019000020F010F020F00011502150108020801EC +:1001A000170217011802180115021501110211009A +:1001B00001090209010F020F0112021201040204D7 +:1001C00001170217012C022C00010C020C01110274 +:1001D0001101170217012C022C0001050205011262 +:1001E000021201120212010F020F012C022C000157 +:1001F0001602160117021701150215010C020C0157 +:10020000110211010A020A012C022C000119021923 +:100210000104020401150215012C022C000119022F +:100220001901120212010C020C01070207012C0233 +:100230002C00010602060112021201110211011620 +:10024000021601170217012C022C000116021601DA +:100250001702170104020401170217010C020C0116 +:10026000060206012C022C000113021301150215CF +:10027000010C020C011902190104020401170217F2 +:1002800001080208012C022C0001130213011802BC +:100290001801050205010F020F010C020C010602F4 +:1002A00006012C022C000000F0A1260227022F02DA +:1002B00030022B6100001E00140004001D64360291 +:1002C00019011F001A0016001B0037022C622000C3 +:1002D0000800070006003102286821001500090007 +:1002E000190024020601220017000A000500000080 +:1002F000374134022A0000003800000036001601A1 +:100300004C000000330000004A0023001C000B00DA +:10031000110000004D41240018000D0010002E00B7 +:10032000520025000C000E0034002E022868260022 +:1003300012000F001E022D002C62270013002D0258 +:100340003802250251002F0030001C011D0101530D +:10035000000029002B0001000100010000003A000C +:100360000A300B300100E30001003B000C300D307F +:100370000100E20001003C0010300F300E3001009F +:1003800001003D00113012301330010001003E0029 +:100390001430153016300000010035000100000057 +:1003A000310000001B01B200010000003502000016 +:1003B00001003F00173018301930000001004000E4 +:1003C0000100010001004B0001004100010001009B +:1003D00001004E004F0042000100010001004900F1 +:1003E00050004300010001000100460001004400EC +:1003F00045000100010001000000160345007200E5 +:1004000067006F0044006F007800200045005A002C +:10041000000016034500720067006F0044006F0083 +:100420007800200045005A00000004030904090276 +:100430006D00040100A0FA0904000001030101009D +:100440000921110100012240000705810308000A6B +:100450000904010001030102000921110100012228 +:100460004D000705820308000A0904020001030089 +:10047000000009211101000122360007058303084D +:10048000000A090403000103000000092111010012 +:100490000122390007058403100001120110010038 +:1004A000000008EDFE07130100010200010501092B +:1004B00006A101050719E029E71500250195087532 +:1004C000018102050819012905950575019102951B +:1004D000017503910105071900297715002501957C +:1004E0007875018102C005010980A101850216010C +:1004F0000026B7001A01002AB70075109501810087 +:10050000C0050C0901A1018503160100269C021AF1 +:1005100001002A9C02751095018100C005010902A5 +:10052000A1010901A10005091901290515002501ED +:100530009505750181029501750381010501093059 +:1005400009311581257F95027508810609381581C5 +:10055000257F950175088106050C0A38021581254D +:100560007F950175088106C0C005010906A1010536 +:100570000719E029E7150025019508750181029505 +:100580000175088101050819012905950575019175 +:10059000029501750391010507190029FF15002631 +:1005A000FF00950675088100C000000000000000F3 +:1005B00000000000010204060A0F17202C3A4A5DD1 +:1005C00071879DB3C7DAE9F5FCFFFCF5E9DAC7B33B +:1005D0009D87715D4A3A2C20170F0A06040201001C +:1005E0000000000000000000000011241FBECFEF3B +:1005F000DAE0DEBFCDBF04B603FE24C08091FD016A +:100600009091FE01A091FF01B09100028730904BC4 +:10061000A740B04BB9F41092FD011092FE01109268 +:10062000FF011092000214BE84B7877F84BF88E167 +:100630000FB6F89480936000109260000FBEE0E067 +:10064000FFE3099511E0A0E0B1E0E8E1F8E402C0C1 +:1006500005900D92A433B107D9F711E0A4E3B1E0FE +:1006600001C01D92AD3FB107E1F70E94010C0C944F +:100670000A240C9400001092B9008AE08093B8001C +:10068000089594EA9093BC009091BC0097FFFCCF32 +:100690009091B900987F983021F0903111F081E06D +:1006A00008958093BB0084E88093BC008091BC00D7 +:1006B00087FFFCCF8091B900887F883111F08034AA +:1006C00071F780E0089584E98093BC008091BC00BC +:1006D00084FDFCCF08958093BB0084E88093BC0028 +:1006E0008091BC0087FFFCCF9091B900987F81E09A +:1006F000983209F480E0089584E88093BC008091EA +:10070000BC0087FFFCCF8091BB00089580B38C7044 +:1007100080BB81B3836F81BB0895809101018111FA +:1007200015C080E40E9441038093010181110CC037 +:1007300082E10E946B0380930101811105C08FEF5C +:100740000E946B03809301010E94630384B1807F48 +:1007500084B985B1807F85B98AB1837F8AB98BB12D +:10076000837F8BB93E98469808950E9457058093E1 +:1007700001010E948D030E948603A5E3B1E0E3E43A +:10078000F1E08EE08E0F11921D928E13FCCF0C942F +:1007900041050E945705809301010E948D030E942C +:1007A0008603A5E3B1E0E3E4F1E08EE08E0F119261 +:1007B0001D928E13FCCF0895BF92CF92DF92EF92DD +:1007C000FF920F931F93CF93DF93809101018823B2 +:1007D00079F0809134018F5F80933401811108C0DA +:1007E0000E94570580930101811102C00E94E90413 +:1007F00005E311E0C0E0D0E0DD24D39482E0C82E10 +:10080000EE24E394F12CC730D10500F5809101016D +:10081000811164C080E40E94410380930101811131 +:1008200012C082E10E946B038093010181110BC011 +:10083000C7010C2E01C0880F0A94EAF780950E9428 +:100840006B03809301010E94630348C0CA30A1F08A +:1008500028F4C83059F0C93061F005C0CC3089F0B7 +:1008600070F0CD3089F0209A289810C0219A2998EC +:100870000DC0229A2A980AC0239A2B9807C0529A30 +:1008800001C0539A5B9802C03E9A469890EA9A95A6 +:10089000F1F79FB1799902C082E001C080E09170C8 +:1008A0009D25982B7C9902C084E001C080E0892BB3 +:1008B0007D9902C038E001C030E0832B7E9902C0F0 +:1008C00020E101C020E0822B9FB19095991F9927CC +:1008D000991F9295990F907E892B0FC080910101ED +:1008E000811149C080E40E94410380930101882363 +:1008F00079F1B12C0E9463038B2DF8019081981738 +:1009000019F08083C09200010E948D0321960F5F31 +:100910001F4FCE30D10509F076CF8091000188239A +:1009200061F1815080930001882339F08FE99FE0C5 +:100930000197F1F700C0000020C0A3E4B1E0E5E3B7 +:10094000F1E0CF01825F91919D938E13FCCF15C092 +:1009500083E10E946B03809301018111CACF81E47E +:100960000E944103809301018111C3CF0E947C0347 +:10097000B82EB094BFCF80E0C0CF0E94E70481E0E2 +:10098000DF91CF911F910F91FF90EF90DF90CF906B +:10099000BF900895E82FF0E0ED5BFE4F8081089551 +:1009A00008950F931F93CF93DF93C3E4D1E010E03A +:1009B0000C2F025F899190E00E944E1C180F0C13BF +:1009C000F9CF812FDF91CF911F910F9108950C9452 +:1009D0000D0656985E9825982D9826982E9827985B +:1009E0002F988FEF90E090938900809388009093E8 +:1009F0008B0080938A0090938D0080938C00259AC1 +:100A00002D9A2FEF80E792E0215080409040E1F74F +:100A100000C00000269A2E9A2FEF80E792E0215026 +:100A200080409040E1F700C00000279A2F9A2FEFF6 +:100A300080E792E0215080409040E1F700C0000044 +:100A400025982D982FEF80E792E02150804090402C +:100A5000E1F700C0000026982E982FEF80E792E083 +:100A6000215080409040E1F700C0000027982F9867 +:100A700056985E9825982D9826982E9827982F9806 +:100A8000089589EA8093800089E08093810024980A +:100A90002C983F988AB18F748AB96E98479A8BB117 +:100AA000806B8BB9769A0E94E9040C940C0680E264 +:100AB000809301018091510181110EC00E943B037E +:100AC00081E0809351012FEF83ED90E3215080402E +:100AD0009040E1F700C0000080E40E944103809351 +:100AE000010181112EC00E946B03809301018111CD +:100AF00028C00E946B0380930101811122C08FE303 +:100B00000E946B038093010181111BC00E9463034B +:100B100080E40E94410380930101811112C08CE0A6 +:100B20000E946B038093010181110BC00E946B0333 +:100B300080930101811105C08FE30E946B038093B4 +:100B400001010E946303809101010895462F50E046 +:100B5000FA013A97E031F10508F05BC0EA5AFF4F1D +:100B6000DC0112968C910C94BA23882309F451C0AD +:100B700089E892E00895882309F44BC088E692E062 +:100B80000895882309F445C08BE492E008958823F2 +:100B900009F43FC082E392E008958823D1F18DE10A +:100BA00092E008958823A9F18CE092E008958823CB +:100BB00081F18FEE91E00895882359F18AED91E05B +:100BC0000895882331F189EC91E00895882309F193 +:100BD00080EB91E008958823E1F087E991E00895A2 +:100BE0008823B9F086E891E00895882391F08DE696 +:100BF00091E00895882369F08CE491E008958823BA +:100C000041F08BE391E00895882319F08AE291E0A6 +:100C1000089580E090E0089508956091BE0170917C +:100C2000BF018091C0019091C1010E945A1C569849 +:100C30005E9825982D9826982E9827982F98813081 +:100C400019F0823021F00895259A2D9A0895269A58 +:100C50002E9A089581E0089581E008950C942C0661 +:100C60000895282F882339F090E02A3010F44D960B +:100C700008950697089587E290E00895AF92BF9295 +:100C8000DF92EF92FF920F931F93CF93DF938C012C +:100C9000FC01C081D181CE010E94D31ABE010E9405 +:100CA000AE09EC01B8010E942E06882309F4C9C1DF +:100CB000F8018281882309F4BEC080915E01811110 +:100CC0001FC0C431F0E7DF0709F0B5C10E9430064C +:100CD00081E080935E010E94F11C90935D018093FE +:100CE0005C0110925501109257011092560110921A +:100CF00059011092580110925B0110925A01A1C142 +:100D000080915C0190915D010E94FD1C883C9105E1 +:100D100070F480915501E82FF0E0EE0FFF1FEA5AC2 +:100D2000FE4FD183C0838F5F809355018AC1C1304C +:100D300020E8D20708F451C0F8018281882309F421 +:100D40007EC05E01E894B7F880915401813079F05B +:100D500050F08230C1F482EE0E945D1287E50E945D +:100D60005D1287E50EC082EE0E945D120CC080EE1F +:100D70000E945D1281EE0E945D1288E10E945D1268 +:100D800088E10E9425138CE0E82EF12CC5010E2C81 +:100D900002C0969587950A94E2F78F700E943106FB +:100DA000D82E0E945D128D2D0E942513F4E0EF1ABB +:100DB000F1082CEFE2162FEFF20641F78091540173 +:100DC000813029F010F0823041F482EE04C080EED0 +:100DD0000E94251381EE0E942513C43180E7D807B5 +:100DE00068F4C23090E7D90708F046C0C115E0E7C3 +:100DF000DE0771F0C130D047A1F10CC1C33320E749 +:100E0000D20709F4D8C0C433D04709F4EBC002C1FB +:100E1000F8018281882309F402C10E94DA15FFEFEC +:100E200024E38CE0F15020408040E1F700C0000056 +:100E30000E944C1D06C1C13080E8D80770F2C43151 +:100E400020E7D20708F0B3C0C23080E7D807A0F48B +:100E5000C11590E7D90709F4E2C0C130D04709F0C5 +:100E6000D9C0F8018281882309F4D9C08091DB01BF +:100E700081608093DB01E5C0F8018281882309F459 +:100E8000CEC00E94A61D811102C00E948C1D0E942E +:100E9000B91D90E09093EF018093EE01C230F0E72E +:100EA000DF0721F48091EE0181607AC0C33020E732 +:100EB000D20721F48091EE01826072C0C43080E7D5 +:100EC000D80721F48091EE0184606AC0C53090E7B4 +:100ED000D90719F48091EE0127C0C630E0E7DE079C +:100EE00021F48091EE0180615BC0C730F0E7DF073D +:100EF00021F48091EE01806253C0C83020E7D20710 +:100F000021F48091EE0180644BC0C93080E7D8079E +:100F100021F48091EE01806843C0CA3090E7D90780 +:100F200029F48091EE01846088603AC0CB30E0E71C +:100F3000DE0721F48091EE018E7F32C0CC30F0E7E5 +:100F4000DF0721F48091EE018D7F2AC0CD3020E7AC +:100F5000D20721F48091EE018B7F22C0CE3080E752 +:100F6000D80719F48091EE011AC08091EE01CF30BC +:100F700090E7D90711F48F7E13C0C031E0E7DE0798 +:100F800011F48F7D0DC0C131F0E7DF0711F48F7BC5 +:100F900007C0C231D04711F48F7702C08B7F877FA3 +:100FA0008093EE018091EE010E94BD1D4AC0C333C3 +:100FB000F0E7DF07A1F4F8018281882321F0109285 +:100FC000520182E016C080915201811106C086E272 +:100FD0000E945D1286E20E94251382E018C0C4338D +:100FE000D047C1F4F8018281882331F01092530177 +:100FF00080E20E94741325C080915301811106C0C4 +:1010000087E20E945D1287E20E94251380E20E941F +:101010007B1317C081E08093520180935301C80174 +:10102000DF91CF911F910F91FF90EF90DF90BF90D4 +:10103000AF900C942A06C130F0E8DF0708F081CEAB +:10104000CCCE80E0DF91CF911F910F91FF90EF9078 +:10105000DF90BF90AF90089526E0729FF0011124B9 +:1010600044E5849FE00DF11D1124E60FF11DEE0F04 +:10107000FF1FE655FD4F859194910E94C00981158F +:1010800060E49607B0F5811570E3970708F0DEC0BD +:10109000803E9105D8F4803C910508F06CC0883AF8 +:1010A000910578F4853A910508F06BC0813091057F +:1010B00009F452C108F40FC18430910508F04CC105 +:1010C0000AC18B3B910508F467C005C18F3F9105AC +:1010D00009F048F4803F910508F0ADC0883E9105C5 +:1010E00008F43AC1F8C0811520E2920708F0A5C0C3 +:1010F0000895811543E5940790F4811562E59607FC +:1011000008F0C8C0811571E5970708F0BEC08115C9 +:1011100020E5920708F09DC09F70906A08958115A0 +:1011200045E59407D8F4811564E5960708F0C8C032 +:10113000482F4695469570E2479FA0011124837081 +:10114000992721E030E0B90102C0660F771F8A9528 +:10115000E2F7CB01842B952B9A680895811576E5EB +:10116000970708F4B2C09C0130562115304108F0B1 +:10117000B2C09F70AEC0FC01EE0FFF1FEA5DFE4FD4 +:1011800062C0853A910509F4A9C0863A910509F033 +:10119000A8C082E890E40895883A910509F4A4C0B3 +:1011A000893A910509F4A3C08A3A910509F4A2C0CD +:1011B0008B3A910509F4A1C08C3A910509F4A0C0BD +:1011C0008D3A910509F49FC0803B910509F49EC0BA +:1011D0008E3A910509F49DC08F3A910509F49CC09F +:1011E000813B910509F49BC0823B910509F49AC0AB +:1011F000833B910509F499C0843B910509F498C09B +:10120000853B910509F497C0863B910509F496C08A +:10121000873B910509F495C0883B910509F494C07A +:10122000893B910509F493C08A3B910509F492C06A +:1012300080E094E4089590650895FC01FF70EE0F3E +:10124000FF1FEA55FD4F8591949108959927906C61 +:101250000895482F437021E030E002C0220F331F71 +:101260004A95E2F73C68AC0164E0569547956A956B +:10127000E1F74370342B8F708695869560E2869FE8 +:10128000C0011124822B932B0895982F8827816FFA +:10129000906A0895482F4695469570E2479FA001B1 +:1012A00011248370992721E030E0B90102C0660F54 +:1012B000771F8A95E2F7CB01842B952B9C680895C4 +:1012C000982F8827846F906A08958F719927982F97 +:1012D00088279062089580E090E0089581E890E486 +:1012E000089583E890E4089582EE94E4089589EEE9 +:1012F00094E408958AEE94E4089585EB94E40895C7 +:1013000086EB94E4089587EB94E408958CEC94E4E0 +:1013100008958DEC94E4089583E895E408958AE8AF +:1013200095E4089582E995E4089584E995E40895A3 +:1013300081E296E4089583E296E4089584E296E4D7 +:10134000089585E296E4089586E296E4089587E29A +:1013500096E408958AE296E40895089596E0799FC8 +:10136000F001112494E5899FE00DF11D1124E60F91 +:10137000F11DEE0FFF1FE655FD4F859194910895E5 +:101380008238910549F1B0F48133910509F458C0D0 +:1013900048F48932910509F44EC08A32910509F466 +:1013A00054C008958533910509F440C089339105EF +:1013B00099F00895833E910529F138F4803E910516 +:1013C00091F0823E9105A1F00895863E9105F9F0D5 +:1013D000873E910531F108952091EE0120FD3AC03C +:1013E00021FD38C008958091EE0180FD35C032C0E6 +:1013F0008091EE0182FF32C08091EE0184FD30C009 +:1014000083EE39C08091EE0182FD28C0F5CF809136 +:10141000EE0183FF27C08091EE0184FD21C087EE9D +:101420002AC08091EE0183FD1DC0F5CF8091EE01B1 +:1014300085FD1AC01BC08091EE0185FD17C014C048 +:101440008091EE0186FD14C015C08091EE0186FDED +:1014500011C00EC080EE0FC089E30DC082EE0BC03C +:1014600080E009C086EE07C089E205C085E303C0BD +:101470008AE201C081E390E0089508950C943D0A4A +:1014800080916F010895CF93DF9300D01F92CDB765 +:10149000DEB79C018091F401843019F593E09983C3 +:1014A0003B832A839093E9008FEF9091E80081506D +:1014B00095FD06C095ED9A95F1F700008111F5CFE5 +:1014C0008091E80085FF0DC040E050E063E070E0EF +:1014D000CE0101960E94A90C8091E8008E7780933E +:1014E000E8000F900F900F90DF91CF910895CF9368 +:1014F000DF9300D01F92CDB7DEB72091F4012430E6 +:1015000021F522E029839B838A8383E08093E9008D +:101510008FEF9091E800815095FD06C095ED9A956A +:10152000F1F700008111F5CF8091E80085FF0DC033 +:1015300040E050E063E070E0CE0101960E94A90C0B +:101540008091E8008E778093E8000F900F900F90C5 +:10155000DF91CF9108952091F4012430F1F422E03D +:101560002093E9002FEF3091E800215035FD06C0AF +:1015700035ED3A95F1F700002111F5CF2091E80003 +:1015800025FF0BC040E050E065E070E00E94A90C30 +:101590008091E8008E778093E8000895CF93DF93E1 +:1015A000EC019091F401943009F046C080910C0157 +:1015B0008823D9F080910D018823B9F09093E90038 +:1015C0008FEF9091E800815095FD06C095E19A95C6 +:1015D000F1F700008111F5CF8091E80085FF2CC064 +:1015E00040E050E060E170E017C081E08093E900E6 +:1015F0008FEF9091E800815095FD06C095ED9A958A +:10160000F1F700008111F5CF8091E80085FF14C04B +:1016100040E050E068E070E0CE010E94A90C8091AB +:10162000E8008E778093E80080E1FE01AFE5B1E04D +:1016300001900D928A95E1F7DF91CF910895809105 +:10164000F301811109C00E943E0E0E949B0E809101 +:10165000E20084608093E20008951092F3010895FF +:1016600008950C9432220E94E21C0E9438220E94AB +:1016700041110C943E0A42E061EC81E00E94B80DF9 +:1016800042E061EC82E00E94B80D42E061EC83E050 +:101690000E94B80D42E161EC84E00C94B80D809199 +:1016A000F601833009F455C030F4813071F0823096 +:1016B00009F48EC008958A3009F47AC08B3009F499 +:1016C00060C0893009F09CC020C08091F501813A4A +:1016D00009F096C08091E800877F8093E8008091B0 +:1016E000F9019091FA01892B21F460E18FE591E0F5 +:1016F00003C060E080E090E070E00E94F40C809114 +:10170000E8008B778093E80008958091F50181329D +:1017100009F076C08091F9019091FA01009719F0D3 +:10172000039709F06DC08091E800877F8093E800FF +:101730008091E80082FD05C08091F4018111F8CF0D +:101740005FC08091F10080936F018091E8008B77FA +:1017500053C08091F501813A09F052C08091F9019E +:101760009091FA01892B09F04BC08091E800877FA6 +:101770008093E8008091E80080FFFCCF80910C010D +:1017800036C08091F5018132D9F58091F9019091AF +:10179000FA01892BA9F58091E800877F8093E80002 +:1017A0000E94ED0D8091F70180930C010C94DA15E5 +:1017B0008091F501813221F58091E800877F809347 +:1017C000E8000E94ED0D8091F8018093700108956A +:1017D0008091F501813AA1F48091E800877F8093A0 +:1017E000E8008091E80080FFFCCF80917001809339 +:1017F000F1008091E8008E778093E8000C94ED0D65 +:10180000089584B7877F84BF88E10FB6F8948093EA +:101810006000109260000FBE80E88093610010921B +:1018200061000E9490110E943E0E0E949B0E8091CA +:10183000E20084608093E20078940E9421110E946B +:10184000921182E091E00E943C110E94202280913E +:10185000F401853069F40E94AA1C8091F20188236A +:10186000B1F30E94D41C882391F30E94930CEFCF14 +:101870000E949811ECCF292F332723303105C9F06E +:1018800064F42130310581F02230310509F043C084 +:101890008DE690E02EE234E042C021323105F1F0D5 +:1018A0002232310541F137C082E190E02BE934E08A +:1018B00036C099278130910541F08230910541F081 +:1018C000892B49F5EAE2F4E005C0E2E1F4E002C068 +:1018D000EAEFF3E0849190E09F0121C06430D8F4F6 +:1018E000E62FF0E0EE0FFF1FEE5DFE4F208131810D +:1018F00089E090E014C0643070F470E0FB01EE0FFA +:10190000FF1FE65EFE4F20813181FB01EA5EFE4F44 +:10191000808190E004C080E090E020E030E0FA01B7 +:1019200031832083089580E189BD82E189BD09B4B6 +:1019300000FEFDCF8091D8008F7D8093D8008091EC +:10194000E00082608093E0008091E00081FDFCCFA8 +:101950000895CF92DF92EF92FF920F931F93CF9350 +:10196000DF93EC018B016A010E940C0E811133C0E0 +:10197000C114D10439F0F60180819181081B190B43 +:10198000C80FD91FE12CF12C0115110519F1809117 +:10199000E80085FD16C08091E8008E778093E8000E +:1019A000C114D10449F0F60180819181E80EF91E3D +:1019B000F182E08285E00FC00E940C0E882321F3A3 +:1019C0000AC089918093F10001501109FFEFEF1ACD +:1019D000FF0ADACF80E0DF91CF911F910F91FF9046 +:1019E000EF90DF90CF9008952091FB013091FC01A2 +:1019F0002617370748F06115710539F42091E80082 +:101A00002E772093E80001C0B90140E0611571050F +:101A1000A9F12091F401222309F443C0253009F4EF +:101A200042C02091E80023FD40C02091E80022FD43 +:101A300032C02091E80020FFE9CF4091F3002091CF +:101A4000F20030E0342BFC01CF016115710559F033 +:101A50002830310540F481918093F1006150710983 +:101A60002F5F3F4FF1CF41E02830310509F040E0D2 +:101A70002091E8002E772093E800C8CF4111C9CF0C +:101A80000AC08091F401882361F0853061F0809173 +:101A9000E80083FD0AC08091E80082FFF2CF80E079 +:101AA000089582E0089583E0089581E008952091EB +:101AB000FB013091FC012617370748F061157105CD +:101AC00039F42091E8002E772093E80001C0B90195 +:101AD000FC0120E06115710591F18091F4018823EA +:101AE00009F440C0853009F43FC08091E80083FDCF +:101AF0003DC08091E80082FD2FC08091E80080FF0A +:101B0000E9CF2091F3008091F20090E0922B6115D3 +:101B1000710559F08830910540F424912093F1002B +:101B20003196615071090196F2CF21E0089709F0D2 +:101B300020E08091E8008E778093E800CBCF2111E0 +:101B4000CCCF0AC08091F401882361F0853061F028 +:101B50008091E80083FD0AC08091E80082FFF2CF07 +:101B600080E0089582E0089583E0089581E008957B +:101B7000982F973058F59093E900981739F07091A5 +:101B8000EC002091ED005091F00003C0242F762F3F +:101B900050E021FF19C03091EB003E7F3093EB0005 +:101BA0003091ED003D7F3093ED003091EB003160DE +:101BB0003093EB007093EC002093ED005093F00015 +:101BC0002091EE0027FF07C09F5FD3CF8F708093D7 +:101BD000E90081E0089580E008958091F50187FF94 +:101BE00011C08091E80082FD05C08091F40181114F +:101BF000F8CF11C08091E8008B770BC08091F40181 +:101C0000882349F08091E80080FFF8CF8091E800B8 +:101C10008E778093E80008952091E4003091E500EC +:101C200095E64091EC00842F817040FF22C08091A6 +:101C3000E80080FD1CC08091F401882391F085307C +:101C400091F08091EB0085FD10C04091E40050912F +:101C5000E5004217530729F39A01915011F784E0E8 +:101C6000089582E0089583E0089581E0089580E07A +:101C700008954091E80042FFDECF08950E94AC0E27 +:101C80000E94B40EE0EEF0E0808181608083E8ED98 +:101C9000F0E080818F77808319BCA7EDB0E08C9154 +:101CA0008E7F8C9380818F7E80831092F3010895C4 +:101CB0000F931F93CF93DF930E94AC0E0E94B40E3C +:101CC000C8EDD0E088818F77888388818068888399 +:101CD00088818F7D888319BC1092F4011092F001E5 +:101CE0001092F2011092F10100EE10E0F8018081F3 +:101CF0008B7F808388818160888342E060E080E020 +:101D00000E94B80DE1EEF0E080818E7F8083E2EEEC +:101D1000F0E0808181608083808188608083F80129 +:101D200080818E7F8083888180618883DF91CF91DD +:101D30001F910F910895E8EDF0E080818F7E808300 +:101D4000E7EDF0E080818160808384E082BF81E004 +:101D50008093F3010C94580EE8EDF0E080818E7FC3 +:101D600080831092E20008951092DA001092E10050 +:101D700008951F920F920FB60F9211242F933F9345 +:101D80004F935F936F937F938F939F93AF93BF9383 +:101D9000EF93FF938091E10082FF0BC08091E200FE +:101DA00082FF07C08091E1008B7F8093E1000E9459 +:101DB00020118091DA0080FF1FC08091D80080FF41 +:101DC0001BC08091DA008E7F8093DA008091D90069 +:101DD00080FF0DC080E189BD82E189BD09B400FEAC +:101DE000FDCF81E08093F4010E941F0B05C019BC58 +:101DF0001092F4010E942D0B8091E10080FF19C028 +:101E00008091E20080FF15C08091E2008E7F809378 +:101E1000E2008091E20080618093E2008091D8002E +:101E200080628093D80019BC85E08093F4010E9401 +:101E3000310B8091E10084FF30C08091E20084FF8B +:101E40002CC080E189BD82E189BD09B400FEFDCFCF +:101E50008091D8008F7D8093D8008091E1008F7EA3 +:101E60008093E1008091E2008F7E8093E200809178 +:101E7000E20081608093E2008091F001882311F0FC +:101E800084E007C08091E30087FD02C081E001C0CB +:101E900083E08093F4010E94330B8091E10083FF83 +:101EA00029C08091E20083FF25C08091E100877FF7 +:101EB0008093E10082E08093F4011092F001809120 +:101EC000E1008E7F8093E1008091E2008E7F80931D +:101ED000E2008091E20080618093E20042E060E0F5 +:101EE00080E00E94B80D8091F00088608093F0003F +:101EF0000E94300BFF91EF91BF91AF919F918F9115 +:101F00007F916F915F914F913F912F910F900FBEF5 +:101F10000F901F9018951F920F920FB60F921124D9 +:101F20002F933F934F935F936F937F938F939F93E1 +:101F3000AF93BF93CF93DF93EF93FF93C091E900EB +:101F4000CF708091EC00D82FD17080FDD0E8109236 +:101F5000E9008091F000877F8093F00078940E94E0 +:101F6000CF0F1092E9008091F00088608093F0001C +:101F7000CD2BCF70C093E900FF91EF91DF91CF910E +:101F8000BF91AF919F918F917F916F915F914F9191 +:101F90003F912F910F900FBE0F901F9018951F9398 +:101FA000CF93DF93CDB7DEB7AA970FB6F894DEBF15 +:101FB0000FBECDBFE5EFF1E088E08E0F9091F1000C +:101FC00091938E13FBCF0E944F0B8091E80083FF0B +:101FD0001FC18091F5019091F601492F50E04A30E0 +:101FE000510508F015C1FA01EA59FF4F0C94BA23C4 +:101FF000803881F0823809F00BC18091F9018F702F +:102000008093E9008091EB0085FB882780F910928E +:10201000E90006C08091F1019091F2019111826076 +:102020009091E800977F9093E8008093F1001092E0 +:10203000F100C8C0282F2D7F09F0EAC0882319F0CD +:10204000823061F0E5C08091F701813009F0E0C095 +:10205000933009F080E08093F2012BC08091F7016A +:10206000811127C08091F9018F7009F4D1C080934C +:10207000E9002091EB0020FF1CC0933021F48091F7 +:10208000EB00806214C09091EB0090619093EB00A4 +:1020900021E030E0A90102C0440F551F8A95E2F704 +:1020A0004093EA001092EA008091EB0088608093F0 +:1020B000EB001092E9008091E800877F86C08111D3 +:1020C000A7C01091F7011F778091E3008078812BE2 +:1020D0008093E3008091E800877F8093E8000E946E +:1020E000ED0D8091E80080FFFCCF8091E3008068D7 +:1020F0008093E300111102C082E001C083E080936D +:10210000F40186C08058823008F082C08091F701C7 +:102110009091F8018C3D53E0950779F583E08A832F +:102120008AE289834FB7F894DE01139620E03EE0FF +:1021300051E2E32FF0E050935700E49120FF03C0F9 +:10214000E295EF703F5FEF708E2F90E0EA3010F075 +:10215000C79601C0C0968D939D932F5F243149F798 +:102160004FBF8091E800877F8093E8006AE270E0CB +:10217000CE0101960E94F40C14C0AE014F5F5F4F78 +:102180006091F9010E943B0CBC01009709F440C02A +:102190009091E800977F9093E80089819A810E944E +:1021A000570D8091E8008B778093E80031C080382C +:1021B00079F58091E800877F8093E8008091F001B5 +:1021C0008093F1008091E8008E778093E8000E9470 +:1021D000ED0D1EC081111CC09091F7019230C0F42A +:1021E0008091E800877F8093E8009093F0010E943F +:1021F000ED0D8091F001811106C08091E30087FD13 +:1022000002C081E001C084E08093F4010E943B0B96 +:102210008091E80083FF0AC08091E800877F809367 +:10222000E8008091EB0080628093EB00AA960FB6E5 +:10223000F894DEBF0FBECDBFDF91CF911F910895FF +:102240000895CF938091F4018823A1F0C091E90013 +:10225000CF709091EC00892F817090FD80E8C82BA1 +:102260001092E9008091E80083FD0E94CF0FCF70AB +:10227000C093E900CF910895909376018093750102 +:102280000895E0917501F0917601309721F0019069 +:10229000F081E02D099480E00895E0917501F091BE +:1022A0007601309721F00280F381E02D09940895A2 +:1022B000E0917501F0917601309721F00480F5816D +:1022C000E02D0994089520917301309174018217D3 +:1022D000930771F09093740180937301E0917501FD +:1022E000F0917601309721F00680F781E02D099476 +:1022F000089520917101309172018217930771F056 +:102300009093720180937101E0917501F0917601D3 +:10231000309721F00084F185E02D09940895089507 +:102320000C948F110E94E81C0E94B5030C946E1D42 +:102330009F92AF92BF92CF92DF92EF92FF920F9354 +:102340001F93CF93DF9300D000D000D0CDB7DEB77E +:102350000E94DC030DE010E0AA24A394B12C902E7F +:10236000802F0E94CA04980128583E4F6901F90144 +:10237000F080F826A1F40150110988F78FEF8983C6 +:102380008A831B820E94F11C8160782F9D838C833D +:1023900049815A816B818D810E942F122FC09091AB +:1023A000DB0191FF04C08E830E94D0048E8125E062 +:1023B00030E0A501022E01C0440F0A94EAF7E42E92 +:1023C0004F21C1F029839A828E2191E009F490E097 +:1023D0009B830E94F11C8160782F9D838C834981AF +:1023E0005A816B818D810E942F12F6018081E8262F +:1023F000E08204C021503109E0F6BDCF0E943C1FAD +:10240000109177010E9441111817B9F00E944111F3 +:102410008093770126960FB6F894DEBF0FBECDBF2E +:10242000DF91CF911F910F91FF90EF90DF90CF90B0 +:10243000BF90AF909F900C943E0A26960FB6F894EA +:10244000DEBF0FBECDBFDF91CF911F910F91FF90E7 +:10245000EF90DF90CF90BF90AF909F900895CF9373 +:10246000DF93CDB7DEB72B970FB6F894DEBF0FBE64 +:10247000CDBF4F83588769877A878B87DE01119696 +:1024800086E0FD0111928A95E9F785E0FE01379615 +:1024900001900D928A95E1F749815A816B817C8187 +:1024A0008D819E810E9478182B960FB6F894DEBF1E +:1024B0000FBECDBFDF91CF910895CF93882309F44C +:1024C000C2C0C82F823859F40E94411181FDBBC09F +:1024D00089E30E94521B0E941F1C89E30CC08338B1 +:1024E00079F40E94411180FDAEC083E50E94521B29 +:1024F0000E941F1C83E50E94941BCF910C941F1C0B +:10250000843859F40E94411182FD9DC087E40E94E5 +:10251000521B0E941F1C87E4EECF8CEF8C0F813A78 +:1025200048F48C2F0E94862181118DC08C2F0E942F +:10253000521BE3CF80E28C0F883048F4C77081E0F3 +:1025400001C0880FCA95EAF70E94D81BD6CF8BE549 +:102550008C0F833078F4C53A29F0C63A31F083E81D +:1025600090E005C081E890E002C082E890E0CF9161 +:102570000C94631188E58C0F833108F064C0C83A6D +:1025800039F1C93A41F1CA3A49F1CB3A51F1CC3A61 +:1025900059F1CD3A61F1C03B69F1CE3A71F1CF3AD0 +:1025A00079F1C13B81F1C23B89F1C33B91F1C43B5D +:1025B00099F1C53BA1F1C63BA9F1C73BB1F1C83BBD +:1025C000B9F1C93BC1F1CA3BC9F180E090E038C024 +:1025D00082EE90E035C089EE90E032C08AEE90E065 +:1025E0002FC085EB90E02CC086EB90E029C087EBF4 +:1025F00090E026C08CEC90E023C08DEC90E020C0F1 +:1026000083E891E01DC08AE891E01AC082E991E078 +:1026100017C084E991E014C081E292E011C083E226 +:1026200092E00EC084E292E00BC085E292E008C026 +:1026300086E292E005C087E292E002C08AE292E080 +:10264000CF910C947911CF910895882309F44BC050 +:10265000823859F40E94411181FF45C089E30E94EC +:10266000521B0E941F1C89E30CC0833871F40E9426 +:10267000411180FF38C083E50E94521B0E941F1C3D +:1026800083E50E94941B0C941F1C843859F40E940B +:10269000411182FF28C087E40E94521B0E941F1C28 +:1026A00087E4EFCF9CEF980F913A58F390E2980FA0 +:1026B000983050F4877091E001C0990F8A95EAF73D +:1026C000892F0E94DE1BDFCF9BE5980F933020F40B +:1026D00080E090E00C946311885A833120F480E00C +:1026E00090E00C9479110895882321F00E94D81B62 +:1026F0000C941F1C0895882321F00E94DE1B0C946B +:102700001F1C08957F928F929F92AF92BF92CF929B +:10271000DF92EF92FF920F931F93CF93DF931F925D +:10272000CDB7DEB77C01C62E772EFC010581029560 +:102730000F70128111110E94F51B0E944B1B882300 +:1027400079F0112369F080E28C0D883048F082E046 +:102750000E94341B0E944B1B91E0D82ED92601C049 +:10276000D12CE72DE295EF70F0E0E059FF4F0C948B +:10277000BA23872D807F072D0F70882311F00295D3 +:10278000007F112389F0002309F490C180E28C0DB1 +:10279000883020F4802F0E94D81B03C0802F0E9415 +:1027A000E81B0E941F1C82C18C2D0E942513002350 +:1027B00009F495C180E28C0D883020F4802F0E94AE +:1027C000DE1B03C0802F0E94EE1B0E941F1C87C1CE +:1027D000972D907F872D8F70903211F08295807F9A +:1027E000CC2021F0F1E0CF16B1F01EC0112349F04A +:1027F000002309F414C1013009F011C10E94081C22 +:102800006EC1002319F0013009F469C189830E9467 +:102810000B1C89810AC1112321F0023008F05FC12D +:10282000FEC001115CC101C1112321F0002309F494 +:10283000F6C03CC1002309F4F8C03EC1872D86953F +:102840008695837090E0009719F0019761F047C179 +:10285000112321F08C2D972D937002C080E090E021 +:102860000E9463113CC1112321F08C2D972D937090 +:1028700002C080E090E00E94791131C18C2D1123BB +:1028800019F00E94441E02C00E94AC1E0E94311F1B +:1028900026C1872D837009F052C0111120C18C2DE3 +:1028A000829586958770880F880F9C2D9F70892E42 +:1028B000912CA12CB12C082E04C0880C991CAA1CA8 +:1028C000BB1C0A94D2F7C4FE14C00FE010E020E055 +:1028D00030E0B901A80104C0440F551F661F771FDF +:1028E0008A95D2F7CB01BA01609570958095909545 +:1028F00003C060E070E0CB01272D2695269523705C +:1029000030E02230310569F02330310589F0682943 +:1029100079298A299B292130310571F00E94C0193B +:10292000DEC0682979298A299B290E94DC19D7C031 +:102930000E94C019C501B4010E94A419D0C011237E +:1029400019F0872D817001C08695882309F4C7C0CE +:102950008C2D829586958770880F880F9C2D9F708F +:10296000892E912CA12CB12C082E04C0880C991C06 +:10297000AA1CBB1C0A94D2F7C4FE14C00FE010E0DE +:1029800020E030E0B901A80104C0440F551F661FC4 +:10299000771F8A95D2F7CB01BA0160957095809523 +:1029A000909503C060E070E0CB01272D2695269519 +:1029B0002370422F50E04230510569F043305105F9 +:1029C00089F0682979298A299B294130510571F0BC +:1029D0000E949A1A84C0682979298A299B290E9411 +:1029E000B61A7DC00E949A1AC501B4010E947E1ACF +:1029F00076C08C2D90E0FC01E05EF109E531F10537 +:102A000008F050C0E058FF4F0C94BA230C2D0F7003 +:102A1000872D8F71112331F00E94171A802F0E9489 +:102A200074135DC00E94381A802F0E947B1357C018 +:102A3000112339F0011153C0872D8F710E945D1A47 +:102A40004EC0023008F04BC0F7CF112339F0872D6C +:102A50008F710E94171A43C01123C9F3872D8F71FC +:102A60000E94381A3CC0112329F0872D8F710E94D3 +:102A7000021A35C00E94F81932C0112351F0172DE7 +:102A80001F71812F0E94171A63E0812F0E942B1B58 +:102A900026C081E00E94341B023008F182E00E94CF +:102AA000341B1DC0112331F0002389F28C2D0E94AC +:102AB0005D1215C0002391F28C2D0E9425130FC0CA +:102AC000472D4F706C2DC7010E94A6050E941C194E +:102AD00006C0472D4F706C2DC7010E94AD09DD2047 +:102AE000F9F00E94271B80FD1BC0F70112820E9493 +:102AF000211B0E94171AC7010E949F150E94211BCB +:102B00000F90DF91CF911F910F91FF90EF90DF9089 +:102B1000CF90BF90AF909F908F907F900C94381A79 +:102B20000F90DF91CF911F910F91FF90EF90DF9069 +:102B3000CF90BF90AF909F908F907F9008950F930C +:102B40001F93CF93DF93EC01888199812B813C8186 +:102B5000232BB9F09F3F11F48F3F99F0CE010E94D3 +:102B60003E06882371F0688179818A810E941D1B4D +:102B70008C010E94D21A0E949919B801CE010E94BC +:102B80008213DF91CF911F910F9108950E94F51B41 +:102B90000E94051C0E94CA1B0E941F1C0E94E21F6B +:102BA0000E94311F80E090E00E94631180E090E07D +:102BB0000C9479110E94E51B0C94C6150E94121BFF +:102BC000292F22952F7030E02C3031054CF42A301B +:102BD00031056CF42250310922303105A8F407C0C8 +:102BE0002C30310569F02F30310551F00DC0803F98 +:102BF00069F018F4803E40F409C0843F29F406C00F +:102C000093FB882780F9089580E0089581E0089576 +:102C1000CF93DF9300D000D01F92CDB7DEB70F90D7 +:102C20000F900F900F900F90DF91CF910895CF9359 +:102C3000DF9300D000D000D0CDB7DEB726960FB618 +:102C4000F894DEBF0FBECDBFDF91CF9108951F93E3 +:102C5000CF93DF93C091860116E080918701C8175A +:102C600099F0D0E01C9FF0011D9FF00D1124E85752 +:102C7000FE4F4081518162817381848195810E94E0 +:102C800017162196C770E9CFDF91CF911F91089554 +:102C90004091B8015091B9016091BA017091BB01A6 +:102CA0008091BC019091BD010C9417168091BD01DB +:102CB00082958F7009F054C08091BA01882309F47D +:102CC0004FC080918601A09187016091B8017091F9 +:102CD000B9014091BB015091BC01B6E08A1709F4DB +:102CE0003FC090E041155105C1F17F3F11F46F3FA6 +:102CF000A1F1B89FF001B99FF00D1124E857FE4FE4 +:102D0000218172132AC02081621327C022812111E0 +:102D100024C0238134812417350710F42150310950 +:102D2000241B350B283C3105C0F42091BD012F70C8 +:102D300020612093BD0126E0289FF001299FF00D1E +:102D40001124E357FE4F80818F708061808388EB70 +:102D500091E00E949F150C94271601968770BECFB4 +:102D60000895CF92DF92EF92FF920F931F93CF932C +:102D7000DF93CDB7DEB762970FB6F894DEBF0FBE14 +:102D8000CDBF8C0185E0F801DE011D9601900D920A +:102D90008A95E1F7D8014C9111965C9111971296A2 +:102DA0006C9112971396CD90DC9014973091B801E6 +:102DB0007091B9018091BB019091BC01009709F419 +:102DC0006BC17F3F19F43F3F09F466C1E090BA013F +:102DD000EE2009F4C0C02091BD01C816D90628F024 +:102DE000F601E81BF90BCF0104C0809590958C0D7E +:102DF0009D1DFF24F394883C910578F0F12C207FF1 +:102E000009F0C6C07C2DD98AC88A89890E94081613 +:102E100088EB91E00E949F15B1C0822F807F09F05E +:102E200046C0751314C0341312C0611110C02F7046 +:102E300020612093BD010E94481688EB91E00E941A +:102E40009F158091BD01D80115968C932EC0CD2879 +:102E500019F15F3F11F44F3FF9F0F62E61111CC0DC +:102E6000809186012091870136E0821709F45AC0CB +:102E700090E0389FF001399FF00D1124E857FE4F84 +:102E80007181571306C07081471303C0728171119D +:102E900003C001968770E9CFF62E662309F418C1A6 +:102EA0008091BD0181608093BD01F12C11C175132A +:102EB00008C0341306C0611104C08091BD01D8015F +:102EC000C3C04D875E878D859E856A8B0E94DE1507 +:102ED0006A898823E1F16623D1F12091BD01822F17 +:102EE00082958F7090E0029774F08091B801909174 +:102EF000B90198878F831986DB86CA862C87CE0115 +:102F000007960E949F1586E0F801A8EBB1E00190BA +:102F10000D928A95E1F70E9456160E944816FF24EA +:102F2000F394D6C04D875E878D859E850E94121BC7 +:102F3000292F22952F7030E0223031050CF0BCC0D3 +:102F40009F7009F0B6C0805E883008F4C1C0C80127 +:102F50000E949F15E4CFC816D90608F453C0F601A5 +:102F6000E81BF90BCF01883C910508F450C0F12C07 +:102F70007C2DD98AC88A89890E940816E8EBF1E07D +:102F800086E0DF011D928A95E9F70E944816A0C0ED +:102F9000751314C0341312C0611110C08091BD01AB +:102FA000F8018583C8010E949F1586E0E8EBF1E0F7 +:102FB000DF011D928A95E9F7FE2C8AC04D875E8756 +:102FC0008D859E856A8B0E94DE156A89882309F4A7 +:102FD000BECF662309F4BBCF2091BD01822F82951D +:102FE0008F7090E002970CF48ECF8091B801909191 +:102FF000B9019A8389831B82DD82CC822E83CE0124 +:1030000001967FCF809590958C0D9D1DACCFF62EAF +:10301000662309F49CCF75132EC034132CC0209165 +:10302000BD0120FD1FC0822F82958F70D9F0D8017D +:1030300015962C9315978F3049F08F5F982F9295A6 +:10304000907F822F8F70892B15968C93C8010E94D8 +:103050009F1586E0F801A8EBB1E001900D928A95EA +:10306000E1F793CF86E0F801A8EBB1E001900D9273 +:103070008A95E1F72DC04D875E878D859E850E94DC +:10308000DE15811140CF8091BD0181608093BD012B +:10309000C8010E949F151CC0662309F458CF4D87B4 +:1030A0005E878D859E850E94DE15882309F44FCFAB +:1030B0002ACF811148CF0CC0243031050CF047CF06 +:1030C0009F7009F440CFF8019581907F09F03BCFC4 +:1030D0008F2D62960FB6F894DEBF0FBECDBFDF9185 +:1030E000CF911F910F91FF90EF90DF90CF900895B7 +:1030F0001F93CF93DF93CDB7DEB72C970FB6F8941D +:10310000DEBF0FBECDBF4F83588769877A878B8715 +:103110009C87CE0107960E94B116882369F08F81A3 +:1031200098852A853B85232BF1F19F3F09F063C0E9 +:103130008F3F09F060C037C086E0FE013796DE01A0 +:10314000119601900D928A95E1F76F817885EA8555 +:10315000FB85309741F17F3F11F46F3F21F12091C2 +:10316000870130E0C9010196877099274091860157 +:1031700050E08417950709F447C069837A83FD837B +:10318000EC8396E0929FD001939FB00D1124A85735 +:10319000BE4FFE01319601900D929A95E1F7809312 +:1031A00087010E94271616E0809186019091870181 +:1031B0008917C1F1189FC001112488579E4F0E94A2 +:1031C000B116882379F1E09186011E9FF001112448 +:1031D000E857FE4F408151816281738184819581DE +:1031E0000E9417168091860190E0019687709927BA +:1031F00080938601D9CF4F81588569857A858B85E3 +:103200009C850E941716CFCF0E94DA151092870175 +:1032100010928601E8EBF1E086E0DF011D928A95CD +:10322000E9F7C1CF2C960FB6F894DEBF0FBECDBF25 +:10323000DF91CF911F910895EF92FF920F931F930B +:10324000CF93DF938C01009709F46CC0F12CEE242E +:10325000E394E8012196F8018491843740F48430A6 +:1032600008F051C0813081F0823019F15BC08537A0 +:1032700009F444C0A8F19CE7980F903708F052C0B9 +:103280008F770E94251341C00E5F1F4FFE01C4912E +:1032900080E28C0F883048F4C7708E2D01C0880FF3 +:1032A000CA95EAF70E94F81B14C08C2F0E945D1289 +:1032B0002DC00E5F1F4FFE01C49180E28C0F88303D +:1032C00058F4C7708E2D01C0880FCA95EAF70E9486 +:1032D000FE1B0E941F1C1AC08C2F0E94251316C0B3 +:1032E0000E5F1F4FFE01C491CC2381F08FE99FE058 +:1032F0000197F1F700C00000C150F6CF0E5F1F4FDD +:10330000FE01F49003C00E945D128E018F2D882370 +:1033100009F49FCFEFE9FFE03197F1F700C000001B +:103320008150F5CFDF91CF911F910F91FF90EF90DA +:10333000089508956093C2017093C3018093C401FE +:103340009093C5010C94C6150F931F930091C20171 +:103350001091C3012091C4013091C501DC01CB0162 +:10336000802B912BA22BB32B8093C2019093C3018E +:10337000A093C401B093C5011F910F910C94C61581 +:103380000F931F930091C2011091C3012091C401BA +:103390003091C501DC01CB0180239123A223B3230B +:1033A0008093C2019093C301A093C401B093C5015F +:1033B0001F910F910C94C6150F931F930091C2019A +:1033C0001091C3012091C4013091C501DC01CB01F2 +:1033D00080279127A227B3278093C2019093C3012E +:1033E000A093C401B093C5011F910F910C94C61511 +:1033F0001092BE011092BF011092C0011092C10143 +:103400000C94C61541E050E060E070E004C0440F49 +:10341000551F661F771F8A95D2F74093BE015093C0 +:10342000BF016093C0017093C1010C94C61541E0C7 +:1034300050E060E070E004C0440F551F661F771F26 +:103440008A95D2F78091BE019091BF01A091C001F1 +:10345000B091C101482B592B6A2B7B2B4093BE01A5 +:103460005093BF016093C0017093C1010C94C615C5 +:1034700041E050E060E070E004C0440F551F661F5B +:10348000771F8A95D2F740955095609570958091F9 +:10349000BE019091BF01A091C001B091C10148232C +:1034A00059236A237B234093BE015093BF0160934D +:1034B000C0017093C1010C94C61541E050E060E07A +:1034C00070E004C0440F551F661F771F8A95D2F71E +:1034D0008091BE019091BF01A091C001B091C10146 +:1034E000482759276A277B274093BE015093BF0185 +:1034F0006093C0017093C1010C94C6150F931F9384 +:103500000091BE011091BF012091C0013091C10115 +:10351000DC01CB01802B912BA22BB32B8093BE011E +:103520009093BF01A093C001B093C1011F910F916F +:103530000C94C6150F931F930091BE011091BF010B +:103540002091C0013091C101DC01CB018023912386 +:10355000A223B3238093BE019093BF01A093C00127 +:10356000B093C1011F910F910C94C6150F931F9337 +:103570000091BE011091BF012091C0013091C101A5 +:10358000DC01CB0180279127A227B3278093BE01BE +:103590009093BF01A093C001B093C1011F910F91FF +:1035A0000C94C6150895CF92DF92EF92FF920F937D +:1035B0001F93CF93DF938C01C090C201D090C301C1 +:1035C000E090C401F090C5018091BE019091BF01CF +:1035D000A091C001B091C101C82AD92AEA2AFB2AC8 +:1035E000CFE1D0E0D701C6010C2E04C0B695A79557 +:1035F000979587950A94D2F780FF06C0B8018C2F63 +:103600000E942C08019721F4219760F780E001C007 +:103610008C2FDF91CF911F910F91FF90EF90DF9052 +:10362000CF900895CF93DF93EC010E94D31ABE018F +:103630000E942C08DF91CF910895CB010E94121BAC +:1036400008958091C6018595859585950895809109 +:10365000C6018770089598E0899F90011124262B58 +:103660002093C6010C94171A2091C60180958223DD +:103670008093C601982F977069F430E0482F552742 +:1036800047FD50952417350729F085958595859533 +:103690000C94381A08959091C601977081E009F44E +:1036A00080E0089590910C01992321F090910D01F3 +:1036B000911109C020910E0130910F01F90132964C +:1036C0009FEF40E01FC0982F9695969596959F3056 +:1036D00050F5E0910E01F0910F01E90FF11D877097 +:1036E00021E030E0A90102C0440F551F8A95E2F79E +:1036F000CA019181892B818308959F3F39F04F5FE3 +:103700004E3041F051915813F8CF0DC05111F7CF01 +:10371000942FF5CF9F3F39F0F901E90FF11D97FD87 +:10372000FA9582830895089590910C01992321F0D0 +:1037300090910D01911109C020910E0130910F015E +:10374000F9013296205F3F4F1FC0982F96959695AE +:1037500096959F30F0F4E0910E01F0910F01E90F82 +:10376000F11D877021E030E0A90102C0440F551F10 +:103770008A95E2F7CA018095918189238183089512 +:103780003196E217F30729F090819813F9CF108250 +:10379000F7CF089581E090E0E0910E01F0910F01E4 +:1037A000E80FF91F1082019680319105A9F708955D +:1037B0009091DA01892B8093DA0108958095909198 +:1037C000DA0189238093DA0108951092DA010895CD +:1037D0009091D901892B8093D9010895809590917A +:1037E000D90189238093D90108951092D9010895B0 +:1037F0009091D801892B8093D8010895809590915C +:10380000D80189238093D80108951092D801089592 +:103810008093C70108951092C701089580910E0109 +:1038200090910F01FC0131969C01205F3F4F80E099 +:10383000919191118F5FE217F307D1F70895E0910D +:103840000E01F0910F018091DA018083E0910E0169 +:10385000F0910F0190818091D901892B8083E091B3 +:103860000E01F0910F0190818091D801892B808306 +:103870008091C701882361F0E0910E01F0910F0162 +:103880009081892B80830E940E1C81111092C701A8 +:1038900080910E0190910F010C944D1120E0009742 +:1038A00039F0AC0141505109842395232F5FF7CFA4 +:1038B000822F0895CF92DF92EF92FF926C01EE2457 +:1038C000FF24C114D104E104F10421F0C701B601C1 +:1038D00020E101C020E0C72ED82EE92EFF24C1141C +:1038E000D104E104F10419F0285FC701B6016B01AE +:1038F0007C0154E0F694E794D794C7945A95D1F795 +:10390000C114D104E104F10419F02C5FC701B60120 +:103910006B017C0142E0F694E794D794C7944A95F2 +:10392000D1F7C114D104E104F10419F02E5FC701ED +:10393000B601DC01CB01B695A79597958795892BA4 +:103940008A2B8B2B09F02F5F822FFF90EF90DF9057 +:10395000CF9008958091F401843021F11092DC0120 +:1039600020E488E190E00FB6F894A8958093600079 +:103970000FBE2093600080E00E943E0A83B7817FE3 +:10398000846083BF83B7816083BF7894889583B751 +:103990008E7F83BF88E10FB6F89480936000109209 +:1039A00060000FBE089508950E94C9030E94DC03C1 +:1039B0000E94D31C0E94D10491E0811101C090E0CB +:1039C000892F08950E94DA150E9441110C943E0A35 +:1039D00082E084BD93E095BD9AEF97BD80936E0021 +:1039E00008952FB7F8948091DD019091DE01A091A8 +:1039F000DF01B091E0012FBF0895CF92DF92EF92E7 +:103A0000FF920F931F932FB7F8944091DD015091CF +:103A1000DE016091DF017091E0012FBF6A017B013F +:103A2000EE24FF248C0120E030E0C016D106E2062F +:103A3000F30610F4415051099A01281B390BC901B2 +:103A40001F910F91FF90EF90DF90CF9008951F92FC +:103A50000F920FB60F9211248F939F93AF93BF9342 +:103A60008091DD019091DE01A091DF01B091E00134 +:103A70000196A11DB11D8093DD019093DE01A093FD +:103A8000DF01B093E001BF91AF919F918F910F90B3 +:103A90000FBE0F901F9018950E943E0EF8942FEFC6 +:103AA00087EA91E6215080409040E1F700C0000095 +:103AB00087E090EBDC018093FD019093FE01A093E1 +:103AC000FF01B09300029CE088E10FB6F894A8953E +:103AD000809360000FBE90936000FFCF0E94A61DF0 +:103AE000811102C00E948C1D0E94B11D8093DB01D8 +:103AF0000E94B91D90E09093EF018093EE0187FB47 +:103B0000882780F980930D010E94B51D682F70E011 +:103B100080E090E00C949A196DEE7EEF80E090E0EA +:103B20000E94F42360E082E090E00E94E22360E0E3 +:103B300083E090E00E94E22360E084E090E00E9455 +:103B4000E22360E085E090E00C94E22380E090E0E6 +:103B50000E94DC2321E08D3E9E4F09F020E0822F61 +:103B6000089582E090E00C94D42383E090E00C94DC +:103B7000D42384E090E00C94D423682F84E090E078 +:103B80000C94E2238091E30180FF0BC0609113014C +:103B900085E0689FB00111247595679575956795C7 +:103BA0002BC081FF09C06091130185E0689FB001BF +:103BB00011247595679520C082FF07C0609113019D +:103BC00085E0689FB001112417C09091E40199230A +:103BD000D1F060911201961788F72091130185E0CA +:103BE000289F90011124929FA001939F500D1124B2 +:103BF00070E0CA010E94A6236038710540F4611587 +:103C0000710539F002C065E070E0862F08958FE7F6 +:103C1000089581E008958091E30180FF08C06091DC +:103C2000110170E0759567957595679521C081FFC5 +:103C300006C06091110170E07595679519C082FF0B +:103C400004C06091110170E010C09091E4019923CB +:103C5000C1F0609110019617A0F780911101899F22 +:103C6000C001112470E00E94A6236038710528F479 +:103C70006115710521F0862F08958FE7089581E081 +:103C8000089561E070E0F4CF803F21F40E94C21DEE +:103C9000819504C0813F29F40E94C21D8093E701F1 +:103CA0000895823F21F40E94C21D819504C0833F84 +:103CB00029F40E94C21D8093E6010895893F19F4FA +:103CC0000E940B1E05C08A3F31F40E940B1E819595 +:103CD0008093E80108958B3F21F40E940B1E81958B +:103CE00004C08C3F29F40E940B1E8093E9010895C3 +:103CF000843F21F48091E501816017C0853F21F464 +:103D00008091E501826011C0863F21F48091E50138 +:103D100084600BC0873F21F48091E501886005C075 +:103D2000883F31F48091E50180618093E501089539 +:103D30008D3F21F48091E30181600BC08E3F21F41F +:103D40008091E301826005C08F3F29F48091E301F7 +:103D500084608093E3010895803F39F48091E70106 +:103D600087FF6CC01092E70169C0813F29F4809100 +:103D7000E7011816BCF362C09091E601823F29F476 +:103D800097FF5CC01092E60159C0833F19F41916E1 +:103D9000CCF354C0893F41F48091E80118160CF02F +:103DA0004DC01092E8014AC08A3F29F48091E80191 +:103DB00087FF44C0F6CF8B3F39F48091E90187FF3C +:103DC0003DC01092E9013AC08C3F29F48091E9018D +:103DD0001816BCF333C0843F21F48091E5018E7F37 +:103DE00017C0853F21F48091E5018D7F11C0863F8A +:103DF00021F48091E5018B7F0BC0873F21F48091F6 +:103E0000E501877F05C0883F31F48091E5018F7E11 +:103E10008093E50113C08D3F21F48091E3018E7FF3 +:103E20000BC08E3F21F48091E3018D7F05C08F3F51 +:103E300029F48091E3018B7F8093E3018091E60177 +:103E400081110EC08091E70181110AC08091E801C3 +:103E5000811106C08091E901811102C01092E40134 +:103E6000089585EE91E00E9458110E94F11C9093F4 +:103E7000E2018093E10108951F93CF93DF93809136 +:103E8000E1019091E2010E94FD1CAC019091E401DE +:103E9000992321F02091140130E006C020911501F2 +:103EA0008AE0289F900111244217530708F486C026 +:103EB0008091E601C091E701D091E8011091E901FC +:103EC000811107C0C11176C0D11174C0111172C027 +:103ED00075C09F3F19F09F5F9093E401181624F47A +:103EE0000E94C21D8093E6018091E60187FF05C014 +:103EF0000E94C21D81958093E6011C1624F40E9445 +:103F0000C21D8093E7018091E70187FF05C00E94F1 +:103F1000C21D81958093E7016091E601662339F126 +:103F2000C091E701CC2319F1772767FD7095872FA2 +:103F3000972F0E94B72223E333E343E35FE30E941A +:103F40001B230E9484226093E6016C2F772767FD74 +:103F50007095872F972F0E94B72223E333E343E323 +:103F60005FE30E941B230E9484226093E7011D16D9 +:103F700024F40E940B1E8093E8018091E80187FFE2 +:103F800005C00E940B1E81958093E801111624F450 +:103F90000E940B1E8093E9018091E90187FF05C013 +:103FA0000E940B1E81958093E901DF91CF911F91B3 +:103FB0000C94311F9F3F09F08ECF96CFDF91CF91A8 +:103FC0001F910895E5EEF1E085E0DF011D928A95ED +:103FD000E9F71092E4011092E3010895833081F132 +:103FE00028F4813059F08230D1F00895853009F4F9 +:103FF00049C0B8F1863009F456C008958091150182 +:10400000262F30E0280F311D2F3F310524F4680F93 +:104010006093150108958FEF8093150108958091A5 +:104020001401262F30E0280F311D2F3F310524F4D5 +:10403000680F6093140108958FEF80931401089521 +:1040400080911301262F30E0280F311D2F3F3105BD +:1040500024F4680F6093130108958FEF8093130188 +:10406000089580911201262F30E0280F311D2F3F37 +:10407000310524F4680F6093120108958FEF809347 +:104080001201089580911101262F30E0280F311D73 +:104090002F3F310524F4680F6093110108958FEFCD +:1040A00080931101089580911001262F30E0280F90 +:1040B000311D2F3F310524F4680F609310010895DE +:1040C0008FEF809310010895833011F128F481302F +:1040D00049F0823091F00895853081F120F18630E9 +:1040E000C1F1089580911501681720F4861B809313 +:1040F0001501089510921501089580911401681713 +:1041000020F4861B809314010895109214010895E1 +:1041100080911301681720F4861B80931301089582 +:1041200010921301089580911201681720F4861BE4 +:104130008093120108951092120108958091110147 +:10414000681720F4861B80931101089510921101C5 +:10415000089580911001681720F4861B8093100148 +:1041600008951092100108950F931F938D3109F453 +:1041700071C008F045C0803109F485C008F587306A +:1041800009F46FC068F4863009F0ADC08091DB019E +:10419000817F8E7F8093DB0181E08093EB01A4C05F +:1041A0008B3009F49EC08E3009F09DC08091DB01F8 +:1041B00082FB222720F991E0922790FB82F96CC0C4 +:1041C000863109F48EC060F4813109F08CC00E9400 +:1041D000DA1590910D0181E0892780930D0181C04E +:1041E000893109F47EC08B3109F07DC08091DB01FB +:1041F00081FB222720F991E0922790FB81F94CC0A6 +:10420000853309F466C048F4873209F462C008F4C3 +:104210004FC0893209F45DC066C0833438F48A33F4 +:1042200008F044C0883309F45CC05DC0833409F4ED +:1042300050C0883409F057C00E94DA150FEF13ED13 +:1042400020E3015010402040E1F700C000000E9430 +:104250004C1D47C00E943E220E9441110E943E0A0E +:1042600040C09091DB01892F8095817080FB90F98F +:1042700029F0966098609093DB0136C0997F977F14 +:104280009093DB012EC08091DB0183FB222720F974 +:1042900091E0922790FB83F98093DB01992309F148 +:1042A0008091DB0181608093DB011BC0895301C0D9 +:1042B0008D5141E050E060E070E08A019B0104C054 +:1042C000000F111F221F331F8A95D2F7C901B801B1 +:1042D00004C061E070E080E090E00E949A190E94C2 +:1042E000DA1581E001C080E01F910F91089580E010 +:1042F000089580E008958E518A3030F4E82FF0E080 +:10430000E65DFE4F8081089580E00895CF93C82F29 +:104310008091EB01813079F018F08230E9F186C0AC +:10432000E0910E01F0910F018081813169F08232BC +:1043300009F07EC009C0E0910E01F0910F0180816B +:10434000813111F0823261F48C2F0E94772181112A +:1043500004C08C2F0E94B4201DC081E090E01AC0E0 +:104360008C2F0E947921811114C0C43179F048F456 +:10437000CB3079F0C03109F05FC082E08093EB016F +:1043800008C0C93219F0C83321F056C01092EB01B1 +:1043900053C081E0817052C0C93281F110F5C4313F +:1043A00069F1A8F4C73009F045C08AE0809315018F +:1043B00094E19093140193E0909313018093120180 +:1043C00088E08093110188E28093100133C082EE6F +:1043D0008C0F863078F58C2F0E947B218093EA0128 +:1043E00029C0CE34E9F020F4CB3421F56AE013C0C3 +:1043F000C13579F0C235F1F461E00DC08091EA0178 +:10440000882319F01092EA0115C081E08093EB0136 +:1044100015C061E006C08091EA010E94EE1F0AC04B +:104420006AE08091EA010E94642004C01092EB01CE +:1044300080E004C081E002C080E0ACCFCF9108955D +:10444000E1E8F0E080818860808380818160808302 +:104450008FB7F89493E09093890090ED9093880043 +:104460008FBF0895EFE6F0E0808182608083089539 +:10447000EFE6F0E080818D7F80830895EFE6F0E045 +:10448000908182E08927808308951F920F920FB652 +:104490000F9211242F933F934F935F936F937F93CA +:1044A0008F939F93AF93BF93EF93FF938091EC0112 +:1044B0009091ED0101969093ED018093EC018111B3 +:1044C00003C082E00E943E0AE091ED01E695E69588 +:1044D000F0E0E755FA4FE4918091EC018E1303C0B0 +:1044E00080E00E943E0AFF91EF91BF91AF919F91B2 +:1044F0008F917F916F915F914F913F912F910F908D +:104500000FBE0F901F90189504D06894B1118DC004 +:10451000089570D088F09F5790F0B92F9927B75120 +:10452000A0F0D1F0660F771F881F991F1AF0BA9577 +:10453000C9F712C0B13081F077D0B1E0089574C0EE +:10454000672F782F8827B85F39F0B93FCCF386956D +:1045500077956795B395D9F73EF4909580957095CA +:1045600061957F4F8F4F9F4F0895E89409C097FB47 +:104570003EF490958095709561957F4F8F4F9F4F3A +:104580009923A9F0F92F96E9BB279395F69587957E +:1045900077956795B795F111F8CFFAF4BB0F11F441 +:1045A00060FF1BC06F5F7F4F8F4F9F4F16C08823E8 +:1045B00011F096E911C0772321F09EE8872F762F1E +:1045C00005C0662371F096E8862F70E060E02AF05F +:1045D0009A95660F771F881FDAF7880F969587954B +:1045E00097F9089557FD9058440F551F59F05F3FB4 +:1045F00071F04795880F97FB991F61F09F3F79F005 +:1046000087950895121613061406551FF2CF469586 +:10461000F1DF08C0161617061806991FF1CF869508 +:104620007105610508940895E894BB2766277727EC +:10463000CB0197F908950BD078C069D028F06ED0DF +:1046400018F0952309F05AC05FC01124EECFCADFDD +:10465000A0F3959FD1F3950F50E0551F629FF00195 +:10466000729FBB27F00DB11D639FAA27F00DB11DEE +:10467000AA1F649F6627B00DA11D661F829F222777 +:10468000B00DA11D621F739FB00DA11D621F839FFE +:10469000A00D611D221F749F3327A00D611D231FD4 +:1046A000849F600D211D822F762F6A2F11249F5722 +:1046B00050408AF0E1F088234AF0EE0FFF1FBB1F45 +:1046C000661F771F881F91505040A9F79E3F5105E4 +:1046D00070F014C0AACF5F3FECF3983EDCF38695F0 +:1046E00077956795B795F795E7959F5FC1F7FE2B8F +:1046F000880F911D9695879597F9089597F99F676B +:1047000080E870E060E008959FEF80EC0895002459 +:104710000A941616170618060906089500240A9426 +:1047200012161306140605060895092E0394000CAC +:1047300011F4882352F0BB0F40F4BF2B11F460FF3B +:1047400004C06F5F7F4F8F4F9F4F089597FB072ED9 +:1047500016F4009407D077FD09D00E94C02307FC0F +:1047600005D03EF4909581959F4F08957095619581 +:104770007F4F0895EE0FFF1F0590F491E02D0994EF +:10478000AA1BBB1B51E107C0AA1FBB1FA617B70777 +:1047900010F0A61BB70B881F991F5A95A9F7809593 +:1047A0009095BC01CD010895F999FECF92BD81BDD0 +:1047B000F89A992780B50895A8E1B0E042E050E06A +:1047C0000C94FC23262FF999FECF92BD81BDF89A57 +:1047D000019700B4021639F01FBA20BD0FB6F89445 +:1047E000FA9AF99A0FBE08950196272F0E94E323A3 +:1047F0000C94E223DC01CB01FC01F999FECF06C049 +:10480000F2BDE1BDF89A319600B40D92415050408E +:08481000B8F70895F894FFCFFA +:104818000220400ACE0AAB0A770A430A0101C801FE +:1048280028080A03140A404D363969051C05E604B0 +:10483800AD044004590472048B0401020304050604 +:044848000708090054 +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/csharp_dev/csharp_dev.png b/keyboards/ergodox_ez/keymaps/csharp_dev/csharp_dev.png new file mode 100644 index 000000000..6fba568fc Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/csharp_dev/csharp_dev.png differ diff --git a/keyboards/ergodox_ez/keymaps/csharp_dev/csharp_dev_legend.png b/keyboards/ergodox_ez/keymaps/csharp_dev/csharp_dev_legend.png new file mode 100644 index 000000000..b0a1c513c Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/csharp_dev/csharp_dev_legend.png differ diff --git a/keyboards/ergodox_ez/keymaps/csharp_dev/keymap.c b/keyboards/ergodox_ez/keymaps/csharp_dev/keymap.c new file mode 100644 index 000000000..e9648ede7 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/csharp_dev/keymap.c @@ -0,0 +1,239 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define FKEYS 1 // F keys + macros + +#define MACRO_PUBLIC 10 +#define MACRO_PRIVATE 11 + +#define MACRO_STATIC 12 +#define MACRO_CONST 13 + +#define MACRO_VOID 14 +#define MACRO_VAR 15 +#define MACRO_STRING 16 + +#define MACRO_INT 17 +#define MACRO_FLOAT 18 +#define MACRO_BOOL 19 + +#define MACRO_RETURN 20 +#define MACRO_NULL 21 +#define MACRO_BREAK 22 + +#define MACRO_TODO 23 +#define MACRO_NEW 24 +#define MACRO_PARENTHESE 25 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ( | 1 | 2 | 3 | 4 | 5 | " | | Save | 6 | 7 | 8 | 9 | 0 | [ | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | ) | Q | W | E | R | T |Bkspa | | Del | Y | U | I | O | P | ] | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | { | A | S | D | F | G |------| |------| H | J | K | L | _ | Redo | + * |--------+------+------+------+------+------| / | | ; |------+------+------+------+------+--------| + * | } |Z~Alt | X | C | V | B | | | | N | M | ' | ! | ? | Undo | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Tab~CL| < | > | | | & | | = | + | - | * | L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * |. ~L1 | , | |Home |End~L1| + * ,------|------|------| |------+------+------. + * | | | Copy | | UP | | | + * | Enter| Space|------| |------| Space|Enter | + * | ~WIN | ~LSFT| Past | | DOWN | ~LSFT| ~WIN | + * `--------------------' `--------------------' + */ +// 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_LPRN, KC_1, KC_2, KC_3, KC_4, KC_5, LSFT(KC_QUOTE), + KC_RPRN, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_BSPACE, + KC_LCBR, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_RCBR, ALT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_SLASH, + CTL_T(KC_TAB), LSFT(KC_COMMA),LSFT(KC_DOT),KC_PIPE,KC_AMPR, + LT(1,KC_DOT), KC_COMM, + LCTL(KC_C), + GUI_T(KC_ENTER),SFT_T(KC_SPACE),LCTL(KC_V), + // right hand + LCTL(KC_S) , KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRACKET, + KC_DELETE, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRACKET, + KC_H, KC_J, KC_K, KC_L, KC_UNDS,LCTL(KC_Y), + KC_SCOLON,KC_N, KC_M, KC_QUOTE ,KC_EXLM , LSFT(KC_SLASH), LCTL(KC_Z), + KC_EQUAL,KC_PLUS , KC_MINUS,KC_ASTR , TG(1), + KC_HOME, LT(1,KC_END), + KC_UP, + KC_DOWN,SFT_T(KC_SPACE), GUI_T(KC_ENTER) + ), + +/* Keymap 1: F keys + macros + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ESC | F1 | F2 | F3 | F4 | F5 | ` | | Calc | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab |Public|Static|string|int |return| | | |//TODO| | | | | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | |Privat|Const |var |float |null |------| |------|new | | | | | | + * |--------+------+------+------+------+------| \ | | ~ |------+------+------+------+------+--------| + * | | | |void |bool |break;| | | |(); | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | WIN | Alt | | | | PgUp | PgDw | Ins | PtSc | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | Cut | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| Left | Right| + * | | | | | | | | + * `--------------------' `--------------------' + */ +// FKEYS + MACROS +[FKEYS] = KEYMAP( + // left hand + KC_ESCAPE,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_GRAVE, + KC_TAB,M(MACRO_PUBLIC),M(MACRO_STATIC), M(MACRO_STRING),M(MACRO_INT),M(MACRO_RETURN),KC_TRNS, + KC_TRNS,M(MACRO_PRIVATE),M(MACRO_CONST), M(MACRO_VAR),M(MACRO_FLOAT),M(MACRO_NULL), + KC_TRNS,KC_TRNS,KC_TRNS,M(MACRO_VOID),M(MACRO_BOOL),M(MACRO_BREAK),KC_BSLASH, + KC_TRNS,KC_LGUI,KC_LALT,KC_TRNS,KC_TRNS, + KC_TRNS,LCTL(KC_X), + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_CALCULATOR, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, M(MACRO_TODO), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, + M(MACRO_NEW), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TILD, M(MACRO_PARENTHESE), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_PGUP,KC_PGDOWN, KC_INSERT, KC_PSCREEN, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_LEFT, KC_RIGHT +), + + +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(FKEYS) // FN1 - Momentary Layer 1 +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case MACRO_PUBLIC: + if (record->event.pressed) { + return MACRO( T(P), T(U), T(B), T(L), T(I), T(C), T(SPACE),END); + } + break; + case MACRO_PRIVATE: + if (record->event.pressed) { + return MACRO( T(P), T(R), T(I), T(V), T(A), T(T), T(E), T(SPACE),END); + } + break; + case MACRO_STATIC: + if (record->event.pressed) { + return MACRO( T(S), T(T), T(A), T(T), T(I), T(C), T(SPACE), END); + } + break; + case MACRO_CONST: + if (record->event.pressed) { + return MACRO( T(C), T(O), T(N), T(S), T(T), T(SPACE), END); + } + break; + case MACRO_VOID: + if (record->event.pressed) { + return MACRO( T(V), T(O), T(I), T(D), T(SPACE), END); + } + break; + case MACRO_VAR: + if (record->event.pressed) { + return MACRO( T(V), T(A), T(R), T(SPACE), END); + } + break; + case MACRO_STRING: + if (record->event.pressed) { + return MACRO( T(S), T(T), T(R), T(I), T(N), T(G), T(SPACE), END); + } + break; + case MACRO_BOOL: + if (record->event.pressed) { + return MACRO( T(B), T(O), T(O), T(L), T(SPACE), END); + } + break; + case MACRO_INT: + if (record->event.pressed) { + return MACRO( T(I), T(N), T(T), T(SPACE), END); + } + break; + case MACRO_FLOAT: + if (record->event.pressed) { + return MACRO( T(F), T(L), T(O), T(A),T(T),T(SPACE), END); + } + break; + case MACRO_RETURN: + if (record->event.pressed) { + return MACRO( T(R), T(E), T(T), T(U),T(R),T(N), END); + } + break; + case MACRO_NULL: + if (record->event.pressed) { + return MACRO( T(N), T(U), T(L), T(L), END); + } + case MACRO_BREAK: + if (record->event.pressed) { + return MACRO( T(B), T(R), T(E), T(A), T(K), T(SCOLON), END); + } + break; + case MACRO_TODO: + if (record->event.pressed) { + return MACRO( T(SLASH), T(SLASH), D(LSHIFT) ,T(T), T(O), T(D), T(O),U(LSHIFT), T(SPACE),END); + } + break; + case MACRO_NEW: + if (record->event.pressed) { + return MACRO( T(N), T(E), T(W), T(SPACE), END); + } + break; + case MACRO_PARENTHESE: + if (record->event.pressed) { + return MACRO( D(LSHIFT),T(9), T(0),U(LSHIFT), T(SCOLON), END); + } + 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/keyboards/ergodox_ez/keymaps/csharp_dev/readme.md b/keyboards/ergodox_ez/keymaps/csharp_dev/readme.md new file mode 100644 index 000000000..96af077ad --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/csharp_dev/readme.md @@ -0,0 +1,47 @@ +# ErgoDox EZ C# Developer configuration + +## Changelog + +* Feb 12, 2016 (V1): + * First version commit +* Mar 20, 2016 (V2): + * Removed "Classic QWERTY" layer, inverted GUI and SHIFT on Hold for Space and Enter + +## About +This layout was conceived in an attempt to optimise keyboard layout for developers (C# more specifically, but it can work with most of other languages), and limit the keys required to perform the most frequent actions. + +I came to the realization that my main tool as a developer, the qwerty keyboard was something that did not evolved at its core in almost 150 years. +There are a lot of reasons to this, and it would be a massive entreprise to change a standard so strongly anchored, but I wanted to give it a try and see how would look an input device dedicated to developers, more specifically a C# developer in my case. +The biggest flaw in standard QWERTY keyboards was that I always needed to perform key combination to access commonly used characters or actions. Think about it a minute, how many times a day do you press a modifier key such as Ctrl or Shift, it's insane and could be so easily optimized to require only one key press. + +Then I came across the ErgoDox EZ project, that allowed a full customization of its firmware, and a unique 2 parts design. + +![CSharpDev](csharp_dev_legend.png) + +## Layout design principles +* No key combination required for the most common input characters ( (),[],{},<> ... ) +* No key combination required for the most common actions (copy/paste/undo/save) +* Regroup characters by usage ( + - * = ...) +* Easy access to the most commonly used characters: ; / " . , +* Preregistered macro for the most common C# langage instructions: public / private / string / int / float ... + +## Why is it specific to C Sharp +I defined the characters priority based on their usage in C# language, most of this characters are also used in other coding languages but it may require some tweaking. +For example there is no direct access to ~ or $ keys which can be very common in some languages. +Note it is also specific to Windows environement as the shortcut used in action keys would not work on Mac Os + +## In usage +It was relatively easy to get used to the layout, but it's hard for me to define how easy it was as I was getting used to a blank Ergodox keyboard at the same time. +Still it's extremely satisfying to Save your file with just one easily accessible key or to have one big key to end your code line ( ; ) + +## Improvements +This layout was shared after a bunch of iterations and only once I was happy with it. +Still there are many way to improve or iterate on this: +* Make it language agnostic +* Check and compile language's keyboard's heatmaps to statistically define keys priority (e.g. https://dzone.com/articles/most-pressed-keys-various ) +* QWERTY is still not the most efficient typing layout, I would like to create a Dvorak based similar layout in a near futur + +## Issues +One of the issues encountered while creating this layout was that I did not find a way to have a key to send a modifier on hold, and a key combination while pressed (e.g. I can't set a Key to do Save (Ctrl + S) when pressed and Shift modifier when hold ) + + diff --git a/keyboards/ergodox_ez/keymaps/dave/compiled.hex b/keyboards/ergodox_ez/keymaps/dave/compiled.hex new file mode 100644 index 000000000..22b5c6682 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/dave/compiled.hex @@ -0,0 +1,1169 @@ +:100000000C9478020C94BC020C94BC020C94BC02BC +:100010000C94BC020C94BC020C94BC020C94BC0268 +:100020000C94BC020C94BC020C94BC0D0C948E0E6F +:100030000C94BC020C94BC020C94BC020C94BC0248 +:100040000C94BC020C9498220C94BC020C94BC023C +:100050000C94BC020C942B1C0C94BC020C94BC029F +:100060000C94BC020C94BC020C94BC020C94BC0218 +:100070000C94BC020C94BC020C94BC020C94BC0208 +:100080000C94BC020C94BC020C94BC020C94BC02F8 +:100090000C94BC020C94BC020C94BC020C94BC02E8 +:1000A0000C94BC020C94BC020C94BC02FB0E1D0F01 +:1000B0000B101D0F0B10620F850F0B10DA0FED0FD9 +:1000C000BC12BC12EB12EB12211341137214721406 +:1000D0004C137214FC13FC136314721472146C141A +:1000E0000914091409140914091409140914091428 +:1000F0000914091409140914091409140914091418 +:100100001B1428142F143614401429002B00E0006F +:10011000E100357100001E00140004001D006400A1 +:10012000E3001F001A0016001B000000025220000E +:1001300008000700060000002C002100150009003F +:100140001900E2001151220017000A00050000000A +:10015000460023001C0000000B00000046002300A6 +:100160000A00000005000000007524001C000B00C0 +:10017000110000000075250018000D001000E600B9 +:10018000115126000C000E0036002F002C00270015 +:1001900012000F003700300001522D001300330011 +:1001A00038000000E7002A0028002800E50034712C +:1001B0000000010001000100010001000000010039 +:1001C0001E02200222020100010001001F02210282 +:1001D00023020100010001002F0226022F0001006E +:1001E000010001003002270230000100125101001D +:1001F000310235003502000001000100010000005D +:1002000001000000010001000100000001000000E9 +:1002100001000100010001000100000001000000D8 +:100220005F005C00590062001251540060005D00E4 +:100230005A0062000100550061005E005B0063002F +:1002400001005600570057005800580001002E00CA +:100250003200340001000100000001000100010033 +:100260000100010000003A004A005000F400F200D2 +:1002700001003B0052005100F000F10001003C0081 +:100280004D004F00F500F30001003D0049004C0017 +:100290000100010010513E004B004E000100000023 +:1002A00001003F00010000000100000001004000CB +:1002B00001000000010000000100410001000100F8 +:1002C00001000000010042000100B600AC00AA00DD +:1002D0001051430049004C00AE00A800010044004A +:1002E0000100B700AB00A9000100450001000100BA +:1002F00001000100010001000100010001000100F6 +:10030000000016034500720067006F0044006F0094 +:100310007800200045005A000000160345007200D6 +:1003200067006F0044006F007800200045005A000D +:1003300000000403090409026D00040100A0FA0989 +:100340000400000103010100092111010001223F05 +:10035000000705810308000A0904010001030102E6 +:1003600000092111010001224D0007058203080048 +:100370000A09040200010300000009211101000123 +:100380002236000705830308000A0904030001035D +:100390000000000921110100012239000705840332 +:1003A0001000011201100100000008EDFE0713010A +:1003B000000102000105010906A101050719E02954 +:1003C000E715002501950875018102050819012925 +:1003D00005950575019102950175039101050719B0 +:1003E00000297715002501957875018102C0050166 +:1003F0000980A101850216010026B7001A01002A12 +:10040000B700751095018100C0050C0901A1018597 +:1004100003160100269C021A01002A9C0275109501 +:10042000018100C005010902A1010901A10005091E +:100430001901290515002501950575018102950110 +:10044000750381010501093009311581257F950268 +:100450007508810609381581257F95017508810683 +:10046000050C0A38021581257F950175088106C0A3 +:10047000C005010906A101050719E029E7150025B6 +:10048000019508750181029501750881010508191A +:1004900001290595057501910295017503910105E5 +:1004A00007190029FF150025FF950675088100C072 +:1004B0000000000000000000000000010204060A25 +:1004C0000F17202C3A4A5D71879DB3C7DAE9F5FC16 +:1004D000FFFCF5E9DAC7B39D87715D4A3A2C201716 +:1004E0000F0A0604020100000000000000000000E6 +:1004F00011241FBECFEFDAE0DEBFCDBF04B603FE8E +:1005000024C08091FF0190910002A0910102B0915E +:1005100002028730904BA740B04BB9F41092FF0114 +:1005200010920002109201021092020214BE84B7CF +:10053000877F84BF88E10FB6F894809360001092A3 +:1005400060000FBEE0E0FFE3099511E0A0E0B1E03C +:10055000EEEBF8E402C005900D92A433B107D9F791 +:1005600011E0A4E3B1E001C01D92AF3FB107E1F794 +:100570000E94000B0C945D240C9400001092B900B2 +:100580008AE08093B800089594EA9093BC0090911B +:10059000BC0097FFFCCF9091B900987F983021F074 +:1005A000903111F081E008958093BB0084E880933E +:1005B000BC008091BC0087FFFCCF8091B900887F90 +:1005C000883111F0803471F780E0089584E98093D8 +:1005D000BC008091BC0084FDFCCF08958093BB00DB +:1005E00084E88093BC008091BC0087FFFCCF909191 +:1005F000B900987F81E0983209F480E0089584E89A +:100600008093BC008091BC0087FFFCCF8091BB0031 +:10061000089580910101811115C080E40E94C402F7 +:100620008093010181110CC082E10E94EE0280934F +:100630000101811105C08FEF0E94EE02809301013C +:100640000E94E60284B1807F84B985B1807F85B93C +:100650008AB1837F8AB98BB1837F8BB93E984698E4 +:1006600008950E94C404809301010E94090380B38D +:100670008C7080BB81B3836F81BBA5E3B1E0E3E401 +:10068000F1E08EE08E0F11921D928E13FCCF0C9430 +:10069000AE04BF92CF92DF92EF92FF920F931F931F +:1006A000CF93DF9380910101882379F08091340109 +:1006B0008F5F80933401811108C00E94C40480932D +:1006C0000101811102C00E94560405E311E0C0E05F +:1006D000D0E0DD24D39482E0C82EEE24E394F12C04 +:1006E000C730D10500F580910101811164C080E41B +:1006F0000E94C40280930101811112C082E10E9414 +:10070000EE028093010181110BC0C7010C2E01C0C4 +:10071000880F0A94EAF780950E94EE028093010107 +:100720000E94E60248C0CA30A1F028F4C83059F04F +:10073000C93061F005C0CC3089F070F0CD3089F05F +:10074000209A289810C0219A29980DC0229A2A9898 +:100750000AC0239A2B9807C0529A01C0539A5B98FB +:1007600002C03E9A469890EA9A95F1F79FB179991E +:1007700002C082E001C080E091709D25982B7C9999 +:1007800002C084E001C080E0892B7D9902C038E07E +:1007900001C030E0832B7E9902C020E101C020E03F +:1007A000822B9FB19095991F9927991F9295990F28 +:1007B000907E892B0FC080910101811149C080E496 +:1007C0000E94C40280930101882379F1B12C0E9418 +:1007D000E6028B2DF8019081981719F08083C09262 +:1007E00000010E94090321960F5F1F4FCE30D105F3 +:1007F00009F076CF80910001882361F181508093C8 +:100800000001882339F08FE99FE00197F1F700C0DC +:10081000000020C0A3E4B1E0E5E3F1E0CF01825F96 +:1008200091919D938E13FCCF15C083E10E94EE023F +:10083000809301018111CACF81E40E94C402809398 +:1008400001018111C3CF0E94FF02B82EB094BFCF27 +:1008500080E0C0CF0E94540481E0DF91CF911F91CE +:100860000F91FF90EF90DF90CF90BF900895E82F09 +:10087000F0E0ED5BFE4F8081089508950F931F9384 +:10088000CF93DF93C3E4D1E010E00C2F025F899196 +:1008900090E00E94511B180F0C13F9CF812FDF91AC +:1008A000CF911F910F9108950C94240556985E984E +:1008B00025982D9826982E9827982F988FEF90E0BE +:1008C000909389008093880090938B0080938A0096 +:1008D00090938D0080938C00259A2D9A2FEF80E7BE +:1008E00092E0215080409040E1F700C00000269A3D +:1008F0002E9A2FEF80E792E0215080409040E1F760 +:1009000000C00000279A2F9A2FEF80E792E0215035 +:1009100080409040E1F700C0000025982D982FEF0F +:1009200080E792E0215080409040E1F700C0000055 +:1009300026982E982FEF80E792E02150804090403B +:10094000E1F700C0000027982F9856985E982598E8 +:100950002D9826982E9827982F98089589EA8093A5 +:10096000800089E08093810024982C983F988AB178 +:100970008F748AB96E98479A8BB1806B8BB9769ACF +:100980000E9456040C94230580E28093010180911B +:10099000510181110EC00E94BE0281E0809351017D +:1009A0002FEF83ED90E3215080409040E1F700C0AD +:1009B000000080E40E94C4028093010181112EC0D6 +:1009C0000E94EE0280930101811128C00E94EE0274 +:1009D00080930101811122C08FE30E94EE02809377 +:1009E000010181111BC00E94E60280E40E94C40242 +:1009F00080930101811112C08CE00E94EE0280936D +:100A0000010181110BC00E94EE028093010181114E +:100A100005C08FE30E94EE02809301010E94E6026E +:100A200080910101089561110BC0FC01828188232E +:100A300021F085EE0E94601103C085EE0E9428120D +:100A400080E090E008950895EF92FF921F93CF9376 +:100A5000DF936091C1017091C2018091C3019091B7 +:100A6000C4010E945D1B56985E9821E030E0E82F9B +:100A7000F0E0AF014E5A5E4F7A01A1E0B0E0122FD4 +:100A8000821308C0AF01E701988161E09F3F69F4DC +:100A900060E00BC0A901B9016E5A7E4FEB0198814D +:100AA00061E0911101C060E06195960FBA016E5A44 +:100AB0007E4FEB0198834C5F5F4F992321F194B1F6 +:100AC000ED0102C0CC0FDD1F4A95E2F7AE019C2B71 +:100AD00094B995B1492B45B9EB01488150E02130DB +:100AE000310529F450938900409388001AC01230D0 +:100AF00029F450938B0040938A0013C050938D00CB +:100B000040938C000EC094B1BD0102C0660F771FE8 +:100B10004A95E2F7AB014095942394B995B14923E6 +:100B200045B92F5F3F4F2430310509F0A8CFDF9141 +:100B3000CF911F91FF90EF90089581E0089581E09B +:100B400008950C949F0508950F931F93CF93DF93FF +:100B50008C01FC01C081D181CE010E94D619BE0159 +:100B60000E944D06EC01B8010E94A105882309F4FA +:100B70008DC0F8018281882309F44AC08091610107 +:100B800081111FC0C431F0E5DF0709F051C00E9498 +:100B9000A30581E0809361010E94F51B90936001A1 +:100BA00080935F011092580110925A0110925901DE +:100BB00010925C0110925B0110925E0110925D0137 +:100BC00065C080915F01909160010E94011C883C8A +:100BD000910570F480915801E82FF0E0EE0FFF1FAF +:100BE000E75AFE4FD183C0838F5F809358014EC078 +:100BF000C43880E5D80721F0C538D04501F13AC0A6 +:100C0000F8018281882341F01092560182E01EC0D3 +:100C1000C438E0E5DE0759F580915601811106C020 +:100C200086E20E94601186E20E94281282E01CC0C7 +:100C3000C438F0E5DF0741F3C538D045D9F4F801F1 +:100C40008281882331F01092570180E20E9477124E +:100C50001DC080915701811106C087E20E9460117A +:100C600087E20E94281280E20E947E120FC0C538DF +:100C7000D04529F381E08093560180935701C80144 +:100C8000DF91CF911F910F910C949D0580E0DF9132 +:100C9000CF911F910F910895089596E0799FF001EB +:100CA000112494E5899FE00DF11D1124E60FF11D3B +:100CB000EE0FFF1FE65FFE4F859194910895880F18 +:100CC000991FFC01E657F040859194910895880F93 +:100CD000991FFC01E65FFE4F8591949108950F9353 +:100CE0001F93CF93DF93EC01811520E3920750F51A +:100CF000C11580E2D80708F0C3C0CB3BD10590F402 +:100D0000C83AD10508F06AC0C53AD10508F05BC001 +:100D1000C430D10508F0D0C1219709F0CAC101E063 +:100D200010E00AC2CF3FD10511F008F0C5C1C03FA5 +:100D3000D10508F0A2C0CE01805E9109089708F4A1 +:100D4000BBC1B7C1C13090E5D90709F4A2C020F5F5 +:100D5000C0318FE4D80770F4C11590E4D90708F0CA +:100D600094C0C11521E3D20708F0A3C1DD278E018D +:100D7000106CE2C1C115D04509F09BC10E94DD1481 +:100D80008FEF94E32CE0815090402040E1F700C0C9 +:100D900000000E94501CD0C1C11597E5D90758F436 +:100DA000C03121E5D20708F01CC1C43180E5D80765 +:100DB00008F475C07EC1CE0190578115904108F0AE +:100DC00078C1DF7073C1C53AD10509F477C1C63A5D +:100DD000D10509F076C102E810E4AEC1C83AD105E8 +:100DE00009F472C1C93AD10509F471C1CA3AD105F1 +:100DF00009F470C1CB3AD10509F46FC1CC3AD105E1 +:100E000009F46EC1CD3AD10509F46DC1C03BD105DD +:100E100009F46CC1CE3AD10509F46BC1CF3AD105C2 +:100E200009F46AC1C13BD10509F469C1C23BD105CE +:100E300009F468C1C33BD10509F467C1C43BD105BE +:100E400009F466C1C53BD10509F465C1C63BD105AE +:100E500009F464C1C73BD10509F463C1C83BD1059E +:100E600009F462C1C93BD10509F461C1CA3BD1058E +:100E700009F460C100E014E45FC18E0110655CC13B +:100E8000CE019F700E94670658C1DF708E01106A04 +:100E900053C18091DE0181608093DE014DC10E94CB +:100EA000F51D811102C00E94DB1D0E94121E90E000 +:100EB0009093FF018093FE01C23080E5D80721F4B2 +:100EC0008091FE01816086C0C43090E5D90721F48D +:100ED0008091FE0182607EC0C63020E5D20721F4F9 +:100EE0008091FE01846076C0C83080E5D80719F48F +:100EF0008091FE0127C0CA3090E5D90721F4809186 +:100F0000FE01806167C0CC3020E5D20721F48091DA +:100F1000FE0180625FC0CE3080E5D80721F4809169 +:100F2000FE01806457C0C03190E5D90721F480915B +:100F3000FE0180684FC0C23120E5D20729F48091BC +:100F4000FE018460886046C0C33080E5D80721F484 +:100F50008091FE018E7F3EC0C53090E5D90721F417 +:100F60008091FE018D7F36C0C73020E5D20721F485 +:100F70008091FE018B7F2EC0C93080E5D80719F41F +:100F80008091FE0126C0CB3090E5D90721F48091F5 +:100F9000FE018F7E1FC0CD3020E5D20721F4809165 +:100FA000FE018F7D17C0CF3080E5D80721F48091F6 +:100FB000FE018F7B0FC0C13190E5D90721F48091EC +:100FC000FE018F7707C0C331D04531F48091FE0117 +:100FD0008B7F877F8093FE018091FE010E94161E09 +:100FE000ABC08D2F99278F70992781309105D9F447 +:100FF0009E012370332702C0880F991F2A95E2F7BC +:101000009C688E0144E0000F111F4A95E1F700270C +:101010001370802B912B53E0CC0FDD1F5A95E1F715 +:10102000C076DD272FC08230910531F4DC2FCC272C +:101030008E01016F106A80C08330910569F4CE0182 +:101040008370992701E010E002C0000F111F8A95FC +:10105000E2F7C8019C680FC084309105B9F4CE0155 +:101060008370992701E010E002C0000F111F8A95DC +:10107000E2F7C8019A6823E0CC0FDD1F2A95E1F75B +:10108000C07ED7708C010C2B1D2B56C0853091056E +:1010900031F4DC2FCC278E01046F106A4DC0069707 +:1010A00009F04AC0CF71DD27DC2FCC278E011062FA +:1010B00043C000E010E040C08E013EC001E810E4F3 +:1010C0003BC003E810E438C002EE14E435C009EE7A +:1010D00014E432C00AEE14E42FC005EB14E42CC073 +:1010E00006EB14E429C007EB14E426C00CEC14E46E +:1010F00023C00DEC14E420C003E815E41DC00AE889 +:1011000015E41AC002E915E417C004E915E414C097 +:1011100001E216E411C003E216E40EC004E216E494 +:101120000BC005E216E408C006E216E405C007E2BB +:1011300016E402C00AE216E4C801DF91CF911F91C4 +:101140000F91089596E0799FF001112494E5899F0D +:10115000E00DF11D1124E60FF11DEE0FFF1FE65FFC +:10116000FE4F85919491803E9105E0F4803C91057D +:1011700058F58133910509F46FC048F4893291051F +:1011800009F463C08A32910509F46DC072C08933D5 +:101190009105E9F082389105D1F08533910509F484 +:1011A0004DC067C0833E910581F138F4803E9105C2 +:1011B000B9F0823E9105D9F05CC0863E910561F19F +:1011C000873E9105A1F155C00E945F0608952091C8 +:1011D000FE0120FD02C021FF4CC080EE90E049C01E +:1011E0008091FE0180FFF9CF89E390E042C08091B9 +:1011F000FE0182FF0EC08091FE0184FF03C080E0EB +:1012000090E037C083EE90E034C08091FE0182FF11 +:10121000F2CF82EE90E02DC08091FE0183FF0BC0E3 +:101220008091FE0184FDEBCF87EE90E022C080919B +:10123000FE0183FFF5CF86EE90E01BC08091FE019A +:1012400085FF07C089E290E014C08091FE0185FF10 +:10125000F9CF85E390E00DC08091FE0186FF07C0C5 +:101260008AE290E006C08091FE0186FFF9CF81E31B +:1012700090E00E946F06089508950C943C098091B7 +:1012800072010895CF93DF9300D01F92CDB7DEB7E0 +:101290009C018091F501843019F593E099833B839B +:1012A0002A839093E9008FEF9091E800815095FD9B +:1012B00006C095ED9A95F1F700008111F5CF809168 +:1012C000E80085FF0DC040E050E063E070E0CE0133 +:1012D00001960E94AC0B8091E8008E778093E80025 +:1012E0000F900F900F90DF91CF910895CF93DF93E0 +:1012F00000D01F92CDB7DEB72091F501243021F543 +:1013000022E029839B838A8383E08093E9008FEF27 +:101310009091E800815095FD06C095ED9A95F1F702 +:1013200000008111F5CF8091E80085FF0DC040E0FD +:1013300050E063E070E0CE0101960E94AC0B80911A +:10134000E8008E778093E8000F900F900F90DF9168 +:10135000CF9108952091F5012430F1F422E02093FB +:10136000E9002FEF3091E800215035FD06C035ED42 +:101370003A95F1F700002111F5CF2091E80025FF03 +:101380000BC040E050E065E070E00E94AC0B809143 +:10139000E8008E778093E8000895CF93DF93EC0107 +:1013A0009091F501943009F046C080910C0188239A +:1013B000D9F080910D018823B9F09093E9008FEF67 +:1013C0009091E800815095FD06C095E19A95F1F75E +:1013D00000008111F5CF8091E80085FF2CC040E02E +:1013E00050E060E170E017C081E08093E9008FEF8A +:1013F0009091E800815095FD06C095ED9A95F1F722 +:1014000000008111F5CF8091E80085FF14C040E015 +:1014100050E068E070E0CE010E94AC0B8091E800E3 +:101420008E778093E80080E1FE01A2E6B1E00190B2 +:101430000D928A95E1F7DF91CF9108958091F401A3 +:10144000811109C00E94410D0E949E0D8091E20011 +:1014500084608093E20008951092F4010895089545 +:101460000C9485220E94E61B0E948B220E9444104D +:101470000C943D0942E061EC81E00E94BB0C42E02B +:1014800061EC82E00E94BB0C42E061EC83E00E94D0 +:10149000BB0C42E161EC84E00C94BB0C8091F70141 +:1014A000833009F455C030F4813071F0823009F492 +:1014B0008EC008958A3009F47AC08B3009F460C078 +:1014C000893009F09CC020C08091F601813A09F072 +:1014D00096C08091E800877F8093E8008091FA01B0 +:1014E0009091FB01892B21F460E182E691E003C039 +:1014F00060E080E090E070E00E94F70B8091E800EF +:101500008B778093E80008958091F601813209F08D +:1015100076C08091FA019091FB01009719F0039732 +:1015200009F06DC08091E800877F8093E80080918A +:10153000E80082FD05C08091F5018111F8CF5FC000 +:101540008091F100809372018091E8008B7753C005 +:101550008091F601813A09F052C08091FA01909190 +:10156000FB01892B09F04BC08091E800877F8093B5 +:10157000E8008091E80080FFFCCF80910C0136C02C +:101580008091F6018132D9F58091FA019091FB01A9 +:10159000892BA9F58091E800877F8093E8000E945D +:1015A000F00C8091F80180930C010C94DD14809173 +:1015B000F601813221F58091E800877F8093E80071 +:1015C0000E94F00C8091F90180937301089580913D +:1015D000F601813AA1F48091E800877F8093E800CA +:1015E0008091E80080FFFCCF809173018093F1002F +:1015F0008091E8008E778093E8000C94F00C0895B9 +:1016000084B7877F84BF88E10FB6F8948093600029 +:10161000109260000FBE90E080E80FB6F8948093BF +:101620006100909361000FBE0E9493100E94410DD3 +:101630000E949E0D8091E20084608093E200789485 +:101640000E9424100E94951082E091E00E943F10B9 +:101650000E9473228091F501853069F40E94AD1BD0 +:101660008091F3018823B1F30E94D81B882391F362 +:101670000E94960BEFCF0E949B10ECCF292F3327AF +:1016800023303105C9F064F42130310581F0223076 +:10169000310509F043C08DE690E026E333E042C017 +:1016A00021323105F1F02232310541F137C082E1BA +:1016B00090E023EA33E036C099278130910541F06C +:1016C0008230910541F0892B49F5E2E3F3E005C052 +:1016D000EAE1F3E002C0E2E0F3E0849190E09F01F0 +:1016E00021C06430D8F4E62FF0E0EE0FFF1FEE5D6E +:1016F000FE4F2081318189E090E014C0643070F4A5 +:1017000070E0FB01EE0FFF1FE65EFE4F208131818E +:10171000FB01EA5EFE4F808190E004C080E090E033 +:1017200020E030E0FA0131832083089580E189BD13 +:1017300082E189BD09B400FEFDCF8091D8008F7D84 +:101740008093D8008091E00082608093E0008091D7 +:10175000E00081FDFCCF0895CF92DF92EF92FF92DF +:101760000F931F93CF93DF93EC018B016A010E94CB +:101770000F0D811133C0C114D10439F0F6018081FD +:101780009181081B190BC80FD91FE12CF12C0115F1 +:10179000110519F18091E80085FD16C08091E800DF +:1017A0008E778093E800C114D10449F0F60180815E +:1017B0009181E80EF91EF182E08285E00FC00E945F +:1017C0000F0D882321F30AC089918093F100015005 +:1017D0001109FFEFEF1AFF0ADACF80E0DF91CF9116 +:1017E0001F910F91FF90EF90DF90CF90089520917F +:1017F000FC013091FD012617370748F0611571058E +:1018000039F42091E8002E772093E80001C0B90157 +:1018100040E061157105A9F12091F501222309F439 +:1018200043C0253009F442C02091E80023FD40C0A8 +:101830002091E80022FD32C02091E80020FFE9CF8E +:101840004091F3002091F20030E0342BFC01CF01F5 +:101850006115710559F02830310540F4819180936C +:10186000F100615071092F5F3F4FF1CF41E0283007 +:10187000310509F040E02091E8002E772093E80040 +:10188000C8CF4111C9CF0AC08091F501882361F00A +:10189000853061F08091E80083FD0AC08091E80006 +:1018A00082FFF2CF80E0089582E0089583E00895FA +:1018B00081E008952091FC013091FD012617370742 +:1018C00048F06115710539F42091E8002E772093D6 +:1018D000E80001C0B901FC0120E06115710591F13A +:1018E0008091F501882309F440C0853009F43FC098 +:1018F0008091E80083FD3DC08091E80082FD2FC00B +:101900008091E80080FFE9CF2091F3008091F20000 +:1019100090E0922B6115710559F08830910540F4E3 +:1019200024912093F1003196615071090196F2CF14 +:1019300021E0089709F020E08091E8008E778093FD +:10194000E800CBCF2111CCCF0AC08091F5018823CC +:1019500061F0853061F08091E80083FD0AC08091DC +:10196000E80082FFF2CF80E0089582E0089583E0EE +:10197000089581E00895982F973058F59093E900E5 +:10198000981739F07091EC002091ED005091F00023 +:1019900003C0242F762F50E021FF19C03091EB00B7 +:1019A0003E7F3093EB003091ED003D7F3093ED00B2 +:1019B0003091EB0031603093EB007093EC0020939A +:1019C000ED005093F0002091EE0027FF07C09F5FCD +:1019D000D3CF8F708093E90081E0089580E008956F +:1019E0008091F60187FF11C08091E80082FD05C05B +:1019F0008091F5018111F8CF11C08091E8008B77BB +:101A00000BC08091F501882349F08091E80080FFA8 +:101A1000F8CF8091E8008E778093E80008952091B8 +:101A2000E4003091E50095E64091EC00842F817050 +:101A300040FF22C08091E80080FD1CC08091F5012C +:101A4000882391F0853091F08091EB0085FD10C0E6 +:101A50004091E4005091E5004217530729F39A01A1 +:101A6000915011F784E0089582E0089583E008958D +:101A700081E0089580E008954091E80042FFDECFC4 +:101A800008950E94AF0D0E94B70DE0EEF0E0808156 +:101A900081608083E8EDF0E080818F77808319BCDE +:101AA000A7EDB0E08C918E7F8C9380818F7E8083B8 +:101AB0001092F40108950F931F93CF93DF930E9428 +:101AC000AF0D0E94B70DC8EDD0E088818F77888375 +:101AD00088818068888388818F7D888319BC109273 +:101AE000F5011092F1011092F3011092F20100EE53 +:101AF00010E0F80180818B7F8083888181608883FA +:101B000042E060E080E00E94BB0CE1EEF0E080810A +:101B10008E7F8083E2EEF0E080818160808380812F +:101B200088608083F80180818E7F808388818061D6 +:101B30008883DF91CF911F910F910895E8EDF0E038 +:101B400080818F7E8083E7EDF0E0808181608083FB +:101B500084E082BF81E08093F4010C945B0DE8ED9A +:101B6000F0E080818E7F80831092E20008951092D1 +:101B7000DA001092E10008951F920F920FB60F92B3 +:101B800011242F933F934F935F936F937F938F9382 +:101B90009F93AF93BF93EF93FF938091E10082FFF8 +:101BA0000BC08091E20082FF07C08091E1008B7F33 +:101BB0008093E1000E9423108091DA0080FF1FC013 +:101BC0008091D80080FF1BC08091DA008E7F8093C7 +:101BD000DA008091D90080FF0DC080E189BD82E1EB +:101BE00089BD09B400FEFDCF81E08093F5010E941C +:101BF0001E0A05C019BC1092F5010E942C0A8091A2 +:101C0000E10080FF19C08091E20080FF15C0809143 +:101C1000E2008E7F8093E2008091E20080618093F9 +:101C2000E2008091D80080628093D80019BC85E0E2 +:101C30008093F5010E94300A8091E10084FF30C05A +:101C40008091E20084FF2CC080E189BD82E189BDE2 +:101C500009B400FEFDCF8091D8008F7D8093D8001D +:101C60008091E1008F7E8093E1008091E2008F7E81 +:101C70008093E2008091E20081608093E200809195 +:101C8000F101882311F084E007C08091E30087FD13 +:101C900002C081E001C083E08093F5010E94320A16 +:101CA0008091E10083FF29C08091E20083FF25C07D +:101CB0008091E100877F8093E10082E08093F501CD +:101CC0001092F1018091E1008E7F8093E10080917C +:101CD000E2008E7F8093E2008091E2008061809339 +:101CE000E20042E060E080E00E94BB0C8091F000E6 +:101CF00088608093F0000E942F0AFF91EF91BF91BE +:101D0000AF919F918F917F916F915F914F913F9193 +:101D10002F910F900FBE0F901F9018951F920F924A +:101D20000FB60F9211242F933F934F935F936F93AE +:101D30007F938F939F93AF93BF93CF93DF93EF9353 +:101D4000FF93C091E900CF708091EC00D82FD17043 +:101D500080FDD0E81092E9008091F000877F8093A9 +:101D6000F00078940E94D20E1092E9008091F00069 +:101D700088608093F000CD2BCF70C093E900FF9175 +:101D8000EF91DF91CF91BF91AF919F918F917F9113 +:101D90006F915F914F913F912F910F900FBE0F90D8 +:101DA0001F9018951F93CF93DF93CDB7DEB7AA97F7 +:101DB0000FB6F894DEBF0FBECDBFE6EFF1E088E0CE +:101DC0008E0F9091F10091938E13FBCF0E944E0ADB +:101DD0008091E80083FF1FC18091F6019091F70187 +:101DE000492F50E04A30510508F015C1FA01EA5A6E +:101DF000FF4F0C940D24803881F0823809F00BC11C +:101E00008091FA018F708093E9008091EB0085FB4F +:101E1000882780F91092E90006C08091F201909124 +:101E2000F301911182609091E800977F9093E80010 +:101E30008093F1001092F100C8C0282F2D7F09F087 +:101E4000EAC0882319F0823061F0E5C08091F80182 +:101E5000813009F0E0C0933009F080E08093F30115 +:101E60002BC08091F801811127C08091FA018F70F9 +:101E700009F4D1C08093E9002091EB0020FF1CC041 +:101E8000933021F48091EB00806214C09091EB00BC +:101E900090619093EB0021E030E0A90102C0440F73 +:101EA000551F8A95E2F74093EA001092EA0080916C +:101EB000EB0088608093EB001092E9008091E800CD +:101EC000877F86C08111A7C01091F8011F7780918C +:101ED000E3008078812B8093E3008091E800877F86 +:101EE0008093E8000E94F00C8091E80080FFFCCF16 +:101EF0008091E30080688093E300111102C082E0CA +:101F000001C083E08093F50186C08058823008F0DC +:101F100082C08091F8019091F9018C3D53E09507C2 +:101F200079F583E08A838AE289834FB7F894DE01EA +:101F3000139620E03EE051E2E32FF0E0509357008B +:101F4000E49120FF03C0E295EF703F5FEF708E2FAA +:101F500090E0EA3010F0C79601C0C0968D939D9333 +:101F60002F5F243149F74FBF8091E800877F80932E +:101F7000E8006AE270E0CE0101960E94F70B14C0FF +:101F8000AE014F5F5F4F6091FA010E943E0BBC01B2 +:101F9000009709F440C09091E800977F9093E80083 +:101FA00089819A810E945A0C8091E8008B778093F6 +:101FB000E80031C0803879F58091E800877F809310 +:101FC000E8008091F1018093F1008091E8008E7724 +:101FD0008093E8000E94F00C1EC081111CC09091FB +:101FE000F8019230C0F48091E800877F8093E80088 +:101FF0009093F1010E94F00C8091F101811106C0D3 +:102000008091E30087FD02C081E001C084E08093FD +:10201000F5010E943A0A8091E80083FF0AC080918E +:10202000E800877F8093E8008091EB0080628093D6 +:10203000EB00AA960FB6F894DEBF0FBECDBFDF91BE +:10204000CF911F9108950895CF938091F501882332 +:10205000A1F0C091E900CF709091EC00892F8170C0 +:1020600090FD80E8C82B1092E9008091E80083FD84 +:102070000E94D20ECF70C093E900CF910895909343 +:102080007901809378010895E0917801F0917901C8 +:10209000309721F00190F081E02D099480E00895BF +:1020A000E0917801F0917901309721F00280F3817D +:1020B000E02D09940895E0917801F091790130972D +:1020C00021F00480F581E02D099408952091760196 +:1020D000309177018217930771F090937701809385 +:1020E0007601E0917801F0917901309721F0068036 +:1020F000F781E02D099408952091740130917501C4 +:102100008217930771F09093750180937401E091A9 +:102110007801F0917901309721F00084F185E02D6C +:102120000994089508950C9492100E94EC1B0E944B +:1021300031030C94AE1C9F92AF92BF92CF92DF926C +:10214000EF92FF920F931F93CF93DF9300D000D0B5 +:1021500000D0CDB7DEB70E9449030DE010E0AA24FD +:10216000A394B12C902E802F0E94370498012558FB +:102170003E4F6901F901F080F826A1F401501109E0 +:1021800088F78FEF89838A831B820E94F51B816009 +:10219000782F9D838C8349815A816B818D810E9428 +:1021A00032112FC09091DE0191FF04C08E830E94F6 +:1021B0003D048E8125E030E0A501022E01C0440FD0 +:1021C0000A94EAF7E42E4F21C1F029839A828E21E6 +:1021D00091E009F490E09B830E94F51B8160782FC9 +:1021E0009D838C8349815A816B818D810E9432113C +:1021F000F6018081E826E08204C021503109E0F632 +:10220000BDCF0E94951F10917A010E9444101817AB +:10221000B9F00E94441080937A0126960FB6F89484 +:10222000DEBF0FBECDBFDF91CF911F910F91FF9009 +:10223000EF90DF90CF90BF90AF909F900C943D09AE +:1022400026960FB6F894DEBF0FBECDBFDF91CF91BB +:102250001F910F91FF90EF90DF90CF90BF90AF90C4 +:102260009F900895CF93DF93CDB7DEB72B970FB62E +:10227000F894DEBF0FBECDBF4F83588769877A873A +:102280008B87DE01119686E0FD0111928A95E9F7B0 +:1022900085E0FE01379601900D928A95E1F749811C +:1022A0005A816B817C818D819E810E947B172B9648 +:1022B0000FB6F894DEBF0FBECDBFDF91CF9108956A +:1022C000CF93882309F4C2C0C82F823859F40E94E2 +:1022D000441081FDBBC089E30E94551A0E94221B55 +:1022E00089E30CC0833879F40E94441080FDAEC0AD +:1022F00083E50E94551A0E94221B83E50E94971ACB +:10230000CF910C94221B843859F40E94441082FD12 +:102310009DC087E40E94551A0E94221B87E4EECFDD +:102320008CEF8C0F813A48F48C2F0E94D8218111B8 +:102330008DC08C2F0E94551AE3CF80E28C0F88301D +:1023400048F4C77081E001C0880FCA95EAF70E947F +:10235000DB1AD6CF8BE58C0F833078F4C53A29F0A1 +:10236000C63A31F083E890E005C081E890E002C011 +:1023700082E890E0CF910C94661088E58C0F833151 +:1023800008F064C0C83A39F1C93A41F1CA3A49F192 +:10239000CB3A51F1CC3A59F1CD3A61F1C03B69F1F8 +:1023A000CE3A71F1CF3A79F1C13B81F1C23B89F16B +:1023B000C33B91F1C43B99F1C53BA1F1C63BA9F1E7 +:1023C000C73BB1F1C83BB9F1C93BC1F1CA3BC9F147 +:1023D00080E090E038C082EE90E035C089EE90E079 +:1023E00032C08AEE90E02FC085EB90E02CC086EBE7 +:1023F00090E029C087EB90E026C08CEC90E023C0F1 +:102400008DEC90E020C083E891E01DC08AE891E067 +:102410001AC082E991E017C084E991E014C081E21A +:1024200092E011C083E292E00EC084E292E00BC021 +:1024300085E292E008C086E292E005C087E292E081 +:1024400002C08AE292E0CF910C947C10CF91089563 +:10245000882309F44BC0823859F40E94441081FF4C +:1024600045C089E30E94551A0E94221B89E30CC0D3 +:10247000833871F40E94441080FF38C083E50E94C5 +:10248000551A0E94221B83E50E94971A0C94221B66 +:10249000843859F40E94441082FF28C087E40E94C7 +:1024A000551A0E94221B87E4EFCF9CEF980F913AB8 +:1024B00058F390E2980F983050F4877091E001C083 +:1024C000990F8A95EAF7892F0E94E11ADFCF9BE5E1 +:1024D000980F933020F480E090E00C946610885AB6 +:1024E000833120F480E090E00C947C1008958823E0 +:1024F00021F00E94DB1A0C94221B0895882321F0FE +:102500000E94E11A0C94221B08957F928F929F9251 +:10251000AF92BF92CF92DF92EF92FF920F931F93F1 +:10252000CF93DF931F92CDB7DEB77C01C62E772EF7 +:10253000FC01058102950F70128111110E94F81A99 +:102540000E944E1A882379F0112369F080E28C0DE5 +:10255000883048F082E00E94371A0E944E1A91E0BB +:10256000D82ED92601C0D12CE72DE295EF70F0E0EE +:10257000E05AFF4F0C940D24872D807F072D0F709C +:10258000882311F00295007F112389F0002309F4BC +:1025900090C180E28C0D883020F4802F0E94DB1ADD +:1025A00003C0802F0E94EB1A0E94221B82C18C2D37 +:1025B0000E942812002309F495C180E28C0D883016 +:1025C00020F4802F0E94E11A03C0802F0E94F11A8C +:1025D0000E94221B87C1972D907F872D8F7090328C +:1025E00011F08295807FCC2021F0F1E0CF16B1F080 +:1025F0001EC0112349F0002309F414C1013009F071 +:1026000011C10E940B1B6EC1002319F0013009F4A7 +:1026100069C189830E940E1B89810AC1112321F09F +:10262000023008F05FC1FEC001115CC101C111237D +:1026300021F0002309F4F6C03CC1002309F4F8C0DE +:102640003EC1872D86958695837090E0009719F09E +:10265000019761F047C1112321F08C2D972D9370C4 +:1026600002C080E090E00E9466103CC1112321F07E +:102670008C2D972D937002C080E090E00E947C101A +:1026800031C18C2D112319F00E949D1E02C00E94A1 +:10269000051F0E948A1F26C1872D837009F052C032 +:1026A000111120C18C2D829586958770880F880F17 +:1026B0009C2D9F70892E912CA12CB12C082E04C02A +:1026C000880C991CAA1CBB1C0A94D2F7C4FE14C027 +:1026D0000FE010E020E030E0B901A80104C0440F91 +:1026E000551F661F771F8A95D2F7CB01BA016095F7 +:1026F00070958095909503C060E070E0CB01272D28 +:1027000026952695237030E02230310569F023307C +:10271000310589F0682979298A299B2921303105D9 +:1027200071F00E94C318DEC0682979298A299B2983 +:102730000E94DF18D7C00E94C318C501B4010E94CF +:10274000A718D0C0112319F0872D817001C086957C +:10275000882309F4C7C08C2D829586958770880FD1 +:10276000880F9C2D9F70892E912CA12CB12C082EA6 +:1027700004C0880C991CAA1CBB1C0A94D2F7C4FE86 +:1027800014C00FE010E020E030E0B901A80104C05F +:10279000440F551F661F771F8A95D2F7CB01BA01E8 +:1027A000609570958095909503C060E070E0CB01D6 +:1027B000272D269526952370422F50E04230510553 +:1027C00069F04330510589F0682979298A299B29C4 +:1027D0004130510571F00E949D1984C06829792902 +:1027E0008A299B290E94B9197DC00E949D19C501A3 +:1027F000B4010E94811976C08C2D90E0FC01E05E4E +:10280000F109E531F10508F050C0E059FF4F0C9493 +:102810000D240C2D0F70872D8F71112331F00E9424 +:102820001A19802F0E9477125DC00E943B19802FD9 +:102830000E947E1257C0112339F0011153C0872D19 +:102840008F710E9460194EC0023008F04BC0F7CF64 +:10285000112339F0872D8F710E941A1943C011235B +:10286000C9F3872D8F710E943B193CC0112329F0B9 +:10287000872D8F710E94051935C00E94FB1832C048 +:10288000112351F0172D1F71812F0E941A1963E037 +:10289000812F0E942E1A26C081E00E94371A023032 +:1028A00008F182E00E94371A1DC0112331F0002385 +:1028B00089F28C2D0E94601115C0002391F28C2D9D +:1028C0000E9428120FC0472D4F706C2DC7010E9427 +:1028D00013050E941F1806C0472D4F706C2DC701AD +:1028E0000E944C06DD20F9F00E942A1A80FD1BC0D0 +:1028F000F70112820E94241A0E941A19C7010E942D +:10290000A2140E94241A0F90DF91CF911F910F9172 +:10291000FF90EF90DF90CF90BF90AF909F908F90FF +:102920007F900C943B190F90DF91CF911F910F91E5 +:10293000FF90EF90DF90CF90BF90AF909F908F90DF +:102940007F9008950F931F93CF93DF93EC018881BD +:1029500099812B813C81232BB9F09F3F11F48F3F4C +:1029600099F0CE010E94A405882371F068817981D5 +:102970008A810E94201A8C010E94D5190E949C18FD +:10298000B801CE010E948512DF91CF911F910F9166 +:1029900008950E94F81A0E94081B0E94CD1A0E94F6 +:1029A000221B0E943B200E948A1F80E090E00E9430 +:1029B000661080E090E00C947C100E94E81A0C9461 +:1029C000C9140E94151A292F22952F7030E02C303F +:1029D00031054CF42A3031056CF422503109223093 +:1029E0003105A8F407C02C30310569F02F303105CE +:1029F00051F00DC0803F69F018F4803E40F409C0EA +:102A0000843F29F406C093FB882780F9089580E06D +:102A1000089581E00895CF93DF9300D000D01F92F6 +:102A2000CDB7DEB70F900F900F900F900F90DF9102 +:102A3000CF910895CF93DF9300D000D000D0CDB7D1 +:102A4000DEB726960FB6F894DEBF0FBECDBFDF917E +:102A5000CF9108951F93CF93DF93C091890116E022 +:102A600080918A01C81799F0D0E01C9FF0011D9F4A +:102A7000F00D1124E557FE4F408151816281738131 +:102A8000848195810E941A152196C770E9CFDF9144 +:102A9000CF911F9108954091BB015091BC0160916D +:102AA000BD017091BE018091BF019091C0010C9455 +:102AB0001A158091C00182958F7009F054C08091E1 +:102AC000BD01882309F44FC080918901A0918A013A +:102AD0006091BB017091BC014091BE015091BF015A +:102AE000B6E08A1709F43FC090E041155105C1F1E5 +:102AF0007F3F11F46F3FA1F1B89FF001B99FF00D36 +:102B00001124E557FE4F218172132AC020816213E0 +:102B100027C02281211124C0238134812417350745 +:102B200010F421503109241B350B283C3105C0F429 +:102B30002091C0012F7020612093C00126E0289FC2 +:102B4000F001299FF00D1124E057FE4F80818F7016 +:102B5000806180838BEB91E00E94A2140C942A1573 +:102B600001968770BECF0895CF92DF92EF92FF92C9 +:102B70000F931F93CF93DF93CDB7DEB762970FB656 +:102B8000F894DEBF0FBECDBF8C0185E0F801DE01F9 +:102B90001D9601900D928A95E1F7D8014C911196FE +:102BA0005C91119712966C9112971396CD90DC90D0 +:102BB00014973091BB017091BC018091BE0190913E +:102BC000BF01009709F46BC17F3F19F43F3F09F43F +:102BD00066C1E090BD01EE2009F4C0C02091C001A3 +:102BE000C816D90628F0F601E81BF90BCF0104C07E +:102BF000809590958C0D9D1DFF24F394883C910544 +:102C000078F0F12C207F09F0C6C07C2DD98AC88AC3 +:102C100089890E940B158BEB91E00E94A214B1C030 +:102C2000822F807F09F046C0751314C0341312C080 +:102C3000611110C02F7020612093C0010E944B15BC +:102C40008BEB91E00E94A2148091C001D8011596EF +:102C50008C932EC0CD2819F15F3F11F44F3FF9F04E +:102C6000F62E61111CC08091890120918A0136E005 +:102C7000821709F45AC090E0389FF001399FF00D97 +:102C80001124E557FE4F7181571306C07081471319 +:102C900003C07281711103C001968770E9CFF62ECF +:102CA000662309F418C18091C00181608093C0013E +:102CB000F12C11C1751308C0341306C0611104C092 +:102CC0008091C001D801C3C04D875E878D859E85E8 +:102CD0006A8B0E94E1146A898823E1F16623D1F1AD +:102CE0002091C001822F82958F7090E0029774F03E +:102CF0008091BB019091BC0198878F831986DB86F8 +:102D0000CA862C87CE0107960E94A21486E0F8019D +:102D1000ABEBB1E001900D928A95E1F70E94591555 +:102D20000E944B15FF24F394D6C04D875E878D8596 +:102D30009E850E94151A292F22952F7030E022308F +:102D400031050CF0BCC09F7009F0B6C0805E8830C1 +:102D500008F4C1C0C8010E94A214E4CFC816D90665 +:102D600008F453C0F601E81BF90BCF01883C91052C +:102D700008F450C0F12C7C2DD98AC88A89890E9418 +:102D80000B15EBEBF1E086E0DF011D928A95E9F788 +:102D90000E944B15A0C0751314C0341312C06111EA +:102DA00010C08091C001F8018583C8010E94A2145F +:102DB00086E0EBEBF1E0DF011D928A95E9F7FE2C4E +:102DC0008AC04D875E878D859E856A8B0E94E1143F +:102DD0006A89882309F4BECF662309F4BBCF20910A +:102DE000C001822F82958F7090E002970CF48ECFF5 +:102DF0008091BB019091BC019A8389831B82DD8203 +:102E0000CC822E83CE0101967FCF809590958C0D3C +:102E10009D1DACCFF62E662309F49CCF75132EC0F2 +:102E200034132CC02091C00120FD1FC0822F829539 +:102E30008F70D9F0D80115962C9315978F3049F0E3 +:102E40008F5F982F9295907F822F8F70892B159688 +:102E50008C93C8010E94A21486E0F801ABEBB1E0AC +:102E600001900D928A95E1F793CF86E0F801ABEBE4 +:102E7000B1E001900D928A95E1F72DC04D875E87F4 +:102E80008D859E850E94E114811140CF8091C00103 +:102E900081608093C001C8010E94A2141CC06623F7 +:102EA00009F458CF4D875E878D859E850E94E11479 +:102EB000882309F44FCF2ACF811148CF0CC024308A +:102EC00031050CF047CF9F7009F440CFF801958190 +:102ED000907F09F03BCF8F2D62960FB6F894DEBF3E +:102EE0000FBECDBFDF91CF911F910F91FF90EF905B +:102EF000DF90CF9008951F93CF93DF93CDB7DEB7C8 +:102F00002C970FB6F894DEBF0FBECDBF4F83588706 +:102F100069877A878B879C87CE0107960E94B415B4 +:102F2000882369F08F8198852A853B85232BF1F1D1 +:102F30009F3F09F063C08F3F09F060C037C086E053 +:102F4000FE013796DE01119601900D928A95E1F708 +:102F50006F817885EA85FB85309741F17F3F11F4D9 +:102F60006F3F21F120918A0130E0C90101968770FD +:102F700099274091890150E08417950709F447C0CB +:102F800069837A83FD83EC8396E0929FD001939FBF +:102F9000B00D1124A557BE4FFE01319601900D9240 +:102FA0009A95E1F780938A010E942A1516E0809194 +:102FB000890190918A018917C1F1189FC0011124DC +:102FC00085579E4F0E94B415882379F1E0918901BD +:102FD0001E9FF0011124E557FE4F4081518162810F +:102FE0007381848195810E941A158091890190E0F6 +:102FF00001968770992780938901D9CF4F81588591 +:1030000069857A858B859C850E941A15CFCF0E9491 +:10301000DD1410928A0110928901EBEBF1E086E059 +:10302000DF011D928A95E9F7C1CF2C960FB6F8946F +:10303000DEBF0FBECDBFDF91CF911F910895EF92FC +:10304000FF920F931F93CF93DF938C01009709F4A6 +:103050006CC0F12CEE24E394E8012196F8018491F0 +:10306000843740F4843008F051C0813081F08230E0 +:1030700019F15BC0853709F444C0A8F19CE7980FAB +:10308000903708F052C08F770E94281241C00E5F1F +:103090001F4FFE01C49180E28C0F883048F4C77046 +:1030A0008E2D01C0880FCA95EAF70E94FB1A14C042 +:1030B0008C2F0E9460112DC00E5F1F4FFE01C49126 +:1030C00080E28C0F883058F4C7708E2D01C0880FB5 +:1030D000CA95EAF70E94011B0E94221B1AC08C2F7E +:1030E0000E94281216C00E5F1F4FFE01C491CC2310 +:1030F00081F08FE99FE00197F1F700C00000C15017 +:10310000F6CF0E5F1F4FFE01F49003C00E946011C6 +:103110008E018F2D882309F49FCFEFE9FFE03197CF +:10312000F1F700C000008150F5CFDF91CF911F91E2 +:103130000F91FF90EF90089508956093C5017093EB +:10314000C6018093C7019093C8010C94C9140F93D2 +:103150001F930091C5011091C6012091C7013091C4 +:10316000C801DC01CB01802B912BA22BB32B8093C8 +:10317000C5019093C601A093C701B093C8011F91E8 +:103180000F910C94C9140F931F930091C5011091D6 +:10319000C6012091C7013091C801DC01CB01802319 +:1031A0009123A223B3238093C5019093C601A093DA +:1031B000C701B093C8011F910F910C94C9140F93CC +:1031C0001F930091C5011091C6012091C701309154 +:1031D000C801DC01CB0180279127A227B327809368 +:1031E000C5019093C601A093C701B093C8011F9178 +:1031F0000F910C94C9141092C1011092C201109247 +:10320000C3011092C4010C94C91441E050E060E085 +:1032100070E004C0440F551F661F771F8A95D2F7D0 +:103220004093C1015093C2016093C3017093C401E4 +:103230000C94C91441E050E060E070E004C0440F19 +:10324000551F661F771F8A95D2F78091C101909113 +:10325000C201A091C301B091C401482B592B6A2B24 +:103260007B2B4093C1015093C2016093C3017093C3 +:10327000C4010C94C91441E050E060E070E004C067 +:10328000440F551F661F771F8A95D2F740955095BA +:10329000609570958091C1019091C201A091C30188 +:1032A000B091C401482359236A237B234093C10171 +:1032B0005093C2016093C3017093C4010C94C9146C +:1032C00041E050E060E070E004C0440F551F661F0D +:1032D000771F8A95D2F78091C1019091C201A09188 +:1032E000C301B091C401482759276A277B2740931F +:1032F000C1015093C2016093C3017093C4010C9447 +:10330000C9140F931F930091C1011091C201209124 +:10331000C3013091C401DC01CB01802B912BA22B86 +:10332000B32B8093C1019093C201A093C301B093CA +:10333000C4011F910F910C94C9140F931F93009116 +:10334000C1011091C2012091C3013091C401DC017F +:10335000CB0180239123A223B3238093C1019093B7 +:10336000C201A093C301B093C4011F910F910C94AB +:10337000C9140F931F930091C1011091C2012091B4 +:10338000C3013091C401DC01CB0180279127A22722 +:10339000B3278093C1019093C201A093C301B0935E +:1033A000C4011F910F910C94C9140895CF92DF921C +:1033B000EF92FF920F931F93CF93DF938C01C090F6 +:1033C000C501D090C601E090C701F090C80180917E +:1033D000C1019091C201A091C301B091C401C82A5A +:1033E000D92AEA2AFB2ACFE1D0E0D701C6010C2E68 +:1033F00004C0B695A795979587950A94D2F780FF54 +:1034000006C0B8018C2F0E94A208019721F42197D1 +:1034100060F780E001C08C2FDF91CF911F910F9159 +:10342000FF90EF90DF90CF900895CF93DF93EC0162 +:103430000E94D619BE010E94A208DF91CF91089583 +:10344000CB010E94151A08958091C9018595859533 +:10345000859508958091C9018770089598E0899FA6 +:1034600090011124262B2093C9010C941A19209144 +:10347000C901809582238093C901982F977069F4C0 +:1034800030E0482F552747FD50952417350729F080 +:103490008595859585950C943B1908959091C90162 +:1034A000977081E009F480E0089590910C019923D0 +:1034B00021F090910D01911109C020910E013091E0 +:1034C0000F01F90132969FEF40E01FC0982F9695AB +:1034D000969596959F3050F5E0910E01F0910F0171 +:1034E000E90FF11D877021E030E0A90102C0440F0F +:1034F000551F8A95E2F7CA019181892B818308952E +:103500009F3F39F04F5F4E3041F051915813F8CF43 +:103510000DC05111F7CF942FF5CF9F3F39F0F9012E +:10352000E90FF11D97FDFA95828308950895909112 +:103530000C01992321F090910D01911109C0209166 +:103540000E0130910F01F9013296205F3F4F1FC0ED +:10355000982F9695969596959F30F0F4E0910E01F0 +:10356000F0910F01E90FF11D877021E030E0A90112 +:1035700002C0440F551F8A95E2F7CA0180959181D8 +:103580008923818308953196E217F30729F090810A +:103590009813F9CF1082F7CF089581E090E0E09181 +:1035A0000E01F0910F01E80FF91F10820196803192 +:1035B0009105A9F708959091DD01892B8093DD0194 +:1035C000089580959091DD0189238093DD01089510 +:1035D0001092DD0108959091DC01892B8093DC012C +:1035E000089580959091DC0189238093DC010895F2 +:1035F0001092DC0108959091DB01892B8093DB010F +:10360000089580959091DB0189238093DB010895D3 +:103610001092DB0108958093CA0108951092CA01A7 +:10362000089580910E0190910F01FC0131969C014B +:10363000205F3F4F80E0919191118F5FE217F30778 +:10364000D1F70895E0910E01F0910F018091DD0115 +:103650008083E0910E01F0910F0190818091DC0157 +:10366000892B8083E0910E01F0910F019081809170 +:10367000DB01892B80838091CA01882361F0E0916E +:103680000E01F0910F019081892B80830E94111B04 +:1036900081111092CA0180910E0190910F010C943A +:1036A000501020E0009739F0AC01415051098423BB +:1036B00095232F5FF7CF822F0895CF92DF92EF925D +:1036C000FF926C01EE24FF24C114D104E104F10443 +:1036D00021F0C701B60120E101C020E0C72ED82E9D +:1036E000E92EFF24C114D104E104F10419F0285F8C +:1036F000C701B6016B017C0154E0F694E794D794BE +:10370000C7945A95D1F7C114D104E104F10419F01A +:103710002C5FC701B6016B017C0142E0F694E7948F +:10372000D794C7944A95D1F7C114D104E104F104A8 +:1037300019F02E5FC701B601DC01CB01B695A79544 +:1037400097958795892B8A2B8B2B09F02F5F822FDA +:10375000FF90EF90DF90CF9008958091F501843035 +:1037600021F11092DF0120E488E190E00FB6F89497 +:10377000A895809360000FBE2093600080E00E94B7 +:103780003D0983B7817F846083BF83B7816083BF36 +:103790007894889583B78E7F83BF88E10FB6F894BD +:1037A00080936000109260000FBE08950895089500 +:1037B0000E94D61B0E9449030E94D71B0E943E0410 +:1037C00091E0811101C090E0892F08950E94DD14DD +:1037D0000E9444100C943D0982E084BD93E095BDA5 +:1037E0009AEF97BD80936E0008952FB7F89480915B +:1037F000E0019091E101A091E201B091E3012FBFBE +:103800000895CF92DF92EF92FF920F931F932FB7FD +:10381000F8944091E0015091E1016091E2017091D2 +:10382000E3012FBF6A017B01EE24FF248C0120E01D +:1038300030E0C016D106E206F30610F441505109FB +:103840009A01281B390BC9011F910F91FF90EF902E +:10385000DF90CF9008951F920F920FB60F92112410 +:103860008F939F93AF93BF938091E0019091E1017B +:10387000A091E201B091E3010196A11DB11D8093D9 +:10388000E0019093E101A093E201B093E301BF91C5 +:10389000AF919F918F910F900FBE0F901F90189531 +:1038A0000E94410DF8942FEF87EA91E62150804065 +:1038B0009040E1F700C0000087E090EBDC018093CE +:1038C000FF0190930002A0930102B09302029CE0DA +:1038D00088E10FB6F894A895809360000FBE90938E +:1038E0006000FFCFEF92FF920F931F93CF93DF9370 +:1038F000D82FCDE08C2F0E94370405E010E0E82E91 +:10390000F12CC701002E02C0959587950A94E2F725 +:1039100080FF09C0602F7C2F80E00E944D06D813E5 +:1039200002C081E006C00150110958F7C15010F7DC +:1039300080E0DF91CF911F910F91FF90EF9008955C +:10394000CF93C82F8CE20E94721C882321F08C2F09 +:10395000CF910C94721C80E0CF910895CF930E9478 +:10396000F51D811102C00E94DB1DC5E6C15049F062 +:103970000E9449038FE39CE90197F1F700C0000022 +:10398000F5CF89E20E94A01C811113C18AE20E9436 +:10399000A01C81110E94DB1D85E00E94A01C8111EA +:1039A0000E94501C0E94001E8093DE0187E00E944E +:1039B000A01C8823A9F18BE10E94A01C882351F050 +:1039C0008091DE0181FB222720F991E0922790FB74 +:1039D00081F90EC08EE00E94A01C882361F08091C6 +:1039E000DE0182FB222720F991E0922790FB82F9E9 +:1039F0008093DE0115C080E10E94A01C9091DE0141 +:103A0000882341F093FB222720F981E0822780FB65 +:103A100093F904C0892F809580FB90F99093DE0183 +:103A20008091DE010E94041E0E94121E8093FE01FE +:103A300080EE0E94A01C882341F08091FE01982F07 +:103A4000909590FB80F98093FE0189E30E94A01C71 +:103A5000882359F08091FE0181FB222720F991E013 +:103A6000922790FB81F98093FE0182EE0E94A01CB8 +:103A7000882359F08091FE0182FB222720F991E0F2 +:103A8000922790FB82F98093FE0186EE0E94A01C93 +:103A9000882359F08091FE0183FB222720F991E0D1 +:103AA000922790FB83F98093FE0183EE0E94A01C75 +:103AB000882359F08091FE0184FB222720F991E0B0 +:103AC000922790FB84F98093FE0185E30E94A01C5D +:103AD000882359F08091FE0185FB222720F991E08F +:103AE000922790FB85F98093FE0181E30E94A01C40 +:103AF000882359F08091FE0186FB222720F991E06E +:103B0000922790FB86F98093FE0181E10E94A01C20 +:103B1000882359F08091FE0187FB222720F991E04C +:103B2000922790FB87F98093FE018091FE010E940D +:103B3000161E8091FE0187FB882780F980930D0176 +:103B400087E20E94A01CC82F8EE10E94A01C811158 +:103B5000C2608FE10E94A01C8111C46080E20E94BB +:103B6000A01C8111C86081E20E94A01C8111C0616B +:103B700082E20E94A01C8111C06283E20E94A01C0C +:103B80008111C06484E20E94A01C882311F0C068E7 +:103B900002C0CC2329F08C2F0E940D1E6C2F03C075 +:103BA0000E94091E682F70E080E090E0CF910C9495 +:103BB0009D18CF9108956DEE7EEF80E090E00E9419 +:103BC000472460E082E090E00E94352460E083E0DA +:103BD00090E00E94352460E084E090E00E9435246B +:103BE00060E085E090E00C94352480E090E00E9455 +:103BF0002F2421E08D3E9E4F09F020E0822F089572 +:103C000082E090E00C942724682F82E090E00C94EE +:103C1000352483E090E00C942724682F83E090E023 +:103C20000C94352484E090E00C942724682F84E0E1 +:103C300090E00C9435248091E60180FF0BC06091E8 +:103C4000130185E0689FB0011124759567957595FE +:103C500067952BC081FF09C06091130185E0689FC3 +:103C6000B00111247595679520C082FF07C060914F +:103C7000130185E0689FB001112417C09091E701FE +:103C80009923D1F060911201961788F720911301C2 +:103C900085E0289F90011124929FA001939F500DD1 +:103CA000112470E0CA010E94F9236038710540F4C4 +:103CB0006115710539F002C065E070E0862F089546 +:103CC0008FE7089581E008958091E60180FF08C0A4 +:103CD0006091110170E0759567957595679521C0A4 +:103CE00081FF06C06091110170E07595679519C05C +:103CF00082FF04C06091110170E010C09091E70153 +:103D00009923C1F0609110019617A0F780911101DD +:103D1000899FC001112470E00E94F9236038710569 +:103D200028F46115710521F0862F08958FE7089515 +:103D300081E0089561E070E0F4CF803F21F40E94BB +:103D40001B1E819504C0813F29F40E941B1E809395 +:103D5000EA010895823F21F40E941B1E819504C050 +:103D6000833F29F40E941B1E8093E9010895893F37 +:103D700019F40E94641E05C08A3F31F40E94641E3B +:103D800081958093EB0108958B3F21F40E94641E7E +:103D9000819504C08C3F29F40E94641E8093EC013D +:103DA0000895843F21F48091E801816017C0853F28 +:103DB00021F48091E801826011C0863F21F4809156 +:103DC000E80184600BC0873F21F48091E80188609E +:103DD00005C0883F31F48091E80180618093E8015B +:103DE00008958D3F21F48091E60181600BC08E3FE4 +:103DF00021F48091E601826005C08F3F29F4809113 +:103E0000E60184608093E6010895803F39F4809153 +:103E1000EA0187FF6CC01092EA0169C0813F29F472 +:103E20008091EA011816BCF362C09091E901823FCB +:103E300029F497FF5CC01092E90159C0833F19F43F +:103E40001916CCF354C0893F41F48091EB01181648 +:103E50000CF04DC01092EB014AC08A3F29F48091CA +:103E6000EB0187FF44C0F6CF8B3F39F48091EC0122 +:103E700087FF3DC01092EC013AC08C3F29F480913D +:103E8000EC011816BCF333C0843F21F48091E801A3 +:103E90008E7F17C0853F21F48091E8018D7F11C08E +:103EA000863F21F48091E8018B7F0BC0873F21F48E +:103EB0008091E801877F05C0883F31F48091E80157 +:103EC0008F7E8093E80113C08D3F21F48091E6013D +:103ED0008E7F0BC08E3F21F48091E6018D7F05C05F +:103EE0008F3F29F48091E6018B7F8093E6018091DA +:103EF000E90181110EC08091EA0181110AC080910F +:103F0000EB01811106C08091EC01811102C0109279 +:103F1000E701089588EE91E00E945B100E94F51B76 +:103F20009093E5018093E40108951F93CF93DF936D +:103F30008091E4019091E5010E94011CAC019091F7 +:103F4000E701992321F02091140130E006C020916F +:103F500015018AE0289F900111244217530708F4A5 +:103F600086C08091E901C091EA01D091EB011091E6 +:103F7000EC01811107C0C11176C0D11174C01111BB +:103F800072C075C09F3F19F09F5F9093E7011816AC +:103F900024F40E941B1E8093E9018091E90187FFB0 +:103FA00005C00E941B1E81958093E9011C1624F414 +:103FB0000E941B1E8093EA018091EA0187FF05C0E1 +:103FC0000E941B1E81958093EA016091E90166239E +:103FD00039F1C091EA01CC2319F1772767FD70957B +:103FE000872F972F0E940A2323E333E343E35FE302 +:103FF0000E946E230E94D7226093E9016C2F7727DD +:1040000067FD7095872F972F0E940A2323E333E3E0 +:1040100043E35FE30E946E230E94D7226093EA018C +:104020001D1624F40E94641E8093EB018091EB0125 +:1040300087FF05C00E94641E81958093EB011116D5 +:1040400024F40E94641E8093EC018091EC0187FFB0 +:1040500005C00E94641E81958093EC01DF91CF9191 +:104060001F910C948A1F9F3F09F08ECF96CFDF914E +:10407000CF911F910895E8EEF1E085E0DF011D92F8 +:104080008A95E9F71092E7011092E60108958330CE +:1040900081F128F4813059F08230D1F008958530D3 +:1040A00009F449C0B8F1863009F456C008958091EA +:1040B0001501262F30E0280F311D2F3F310524F444 +:1040C000680F6093150108958FEF8093150108958F +:1040D00080911401262F30E0280F311D2F3F31052C +:1040E00024F4680F6093140108958FEF80931401F6 +:1040F000089580911301262F30E0280F311D2F3FA6 +:10410000310524F4680F6093130108958FEF8093B5 +:104110001301089580911201262F30E0280F311DE0 +:104120002F3F310524F4680F6093120108958FEF3B +:1041300080931201089580911101262F30E0280FFD +:10414000311D2F3F310524F4680F6093110108954C +:104150008FEF80931101089580911001262F30E098 +:10416000280F311D2F3F310524F4680F6093100193 +:1041700008958FEF809310010895833011F128F492 +:10418000813049F0823091F00895853081F120F13D +:104190008630C1F1089580911501681720F4861BBF +:1041A00080931501089510921501089580911401CE +:1041B000681720F4861B809314010895109214014F +:1041C000089580911301681720F4861B80931301D2 +:1041D000089510921301089580911201681720F438 +:1041E000861B809312010895109212010895809108 +:1041F0001101681720F4861B809311010895109215 +:104200001101089580911001681720F4861B809396 +:10421000100108951092100108950F931F938D318E +:1042200009F46BC008F03FC08E3009F47FC0C0F4C1 +:10423000873009F469C068F4863009F0B1C0809114 +:10424000DE01817F8E7F8093DE0181E08093EE012D +:10425000A8C0883009F4A2C08B3009F49FC0A0C068 +:10426000863109F49BC078F4803109F472C0813141 +:1042700009F096C00E94DD1490910D0181E089271C +:1042800080930D018BC0893109F488C08B3109F00E +:1042900087C08091DE0181FB222720F991E09227DF +:1042A00090FB81F94CC0853309F470C048F4873223 +:1042B00009F46CC008F459C0893209F467C070C0B1 +:1042C000833438F48A3308F04EC0883309F466C06A +:1042D00067C0833409F45AC0883409F061C00E9471 +:1042E000DD140FEF13ED20E3015010402040E1F703 +:1042F00000C000000E94501C51C00E9491220E94E8 +:1043000044100E943D094AC09091DE01892F80959A +:10431000817080FB90F929F0966098609093DE019F +:1043200040C0997F977F9093DE0138C08091DE0175 +:1043300082FB222720F991E0922790FB82F980935B +:10434000DE01992359F18091DE0181608093DE01C5 +:1043500025C08091DE0183FB222720F991E092277E +:1043600090FB83F9ECCF895301C08D5141E050E0BF +:1043700060E070E08A019B0104C0000F111F221F42 +:10438000331F8A95D2F7C901B80104C061E070E01B +:1043900080E090E00E949D180E94DD1481E001C041 +:1043A00080E01F910F91089580E0089580E00895C6 +:1043B000CF93C82F8091EE01813079F018F08230D0 +:1043C000E9F187C0E0910E01F0910F018081813108 +:1043D00069F0823209F07FC009C0E0910E01F091CE +:1043E0000F018081813111F0823261F48C2F0E94A3 +:1043F000D421811104C08C2F0E940D211DC081E0A9 +:1044000090E01AC08C2F0E94D621811114C0C431B3 +:1044100079F048F4CB3079F0C03109F060C082E027 +:104420008093EE0108C0C93219F0C83321F057C09B +:104430001092EE0154C081E0817053C0C93289F1FD +:1044400018F5C43171F1A8F4C73009F046C08AE00C +:104450008093150194E19093140193E090931301DC +:104460008093120188E08093110188E2809310010B +:1044700034C0CE51C63088F5EC2FF0E0E65DFE4F3B +:1044800080818093ED0129C0CE34E9F020F4CB3453 +:1044900021F56AE013C0C13579F0C235F1F461E06D +:1044A0000DC08091ED01882319F01092ED0115C027 +:1044B00081E08093EE0115C061E006C08091ED01BE +:1044C0000E9447200AC06AE08091ED010E94BD2051 +:1044D00004C01092EE0180E004C081E002C080E0E0 +:1044E000ABCFCF910895E1E8F0E0808188608083D0 +:1044F0008081816080838FB7F89493E090938900E6 +:1045000090ED909388008FBF0895EFE6F0E08081F2 +:10451000826080830895EFE6F0E080818D7F808364 +:104520000895EFE6F0E0908182E089278083089586 +:104530001F920F920FB60F9211242F933F934F9318 +:104540005F936F937F938F939F93AF93BF93EF93FB +:10455000FF938091EF019091F00101969093F0010B +:104560008093EF01811103C082E00E943D09E09138 +:10457000F001E695E695F0E0E055FB4FE49180917F +:10458000EF018E1303C080E00E943D09FF91EF917F +:10459000BF91AF919F918F917F916F915F914F915B +:1045A0003F912F910F900FBE0F901F90189504D040 +:1045B0006894B1118DC0089570D088F09F5790F025 +:1045C000B92F9927B751A0F0D1F0660F771F881F38 +:1045D000991F1AF0BA95C9F712C0B13081F077D09F +:1045E000B1E0089574C0672F782F8827B85F39F03D +:1045F000B93FCCF3869577956795B395D9F73EF497 +:1046000090958095709561957F4F8F4F9F4F08953E +:10461000E89409C097FB3EF490958095709561955C +:104620007F4F8F4F9F4F9923A9F0F92F96E9BB2712 +:104630009395F695879577956795B795F111F8CF8E +:10464000FAF4BB0F11F460FF1BC06F5F7F4F8F4FF9 +:104650009F4F16C0882311F096E911C0772321F0EF +:104660009EE8872F762F05C0662371F096E8862F87 +:1046700070E060E02AF09A95660F771F881FDAF7DE +:10468000880F9695879597F9089557FD9058440F90 +:10469000551F59F05F3F71F04795880F97FB991FA1 +:1046A00061F09F3F79F0879508951216130614065E +:1046B000551FF2CF4695F1DF08C0161617061806EB +:1046C000991FF1CF86957105610508940895E894C6 +:1046D000BB2766277727CB0197F908950BD078C0C1 +:1046E00069D028F06ED018F0952309F05AC05FC049 +:1046F0001124EECFCADFA0F3959FD1F3950F50E0C0 +:10470000551F629FF001729FBB27F00DB11D639F83 +:10471000AA27F00DB11DAA1F649F6627B00DA11D29 +:10472000661F829F2227B00DA11D621F739FB00DCF +:10473000A11D621F839FA00D611D221F749F33273F +:10474000A00D611D231F849F600D211D822F762FD8 +:104750006A2F11249F5750408AF0E1F088234AF0D5 +:10476000EE0FFF1FBB1F661F771F881F9150504021 +:10477000A9F79E3F510570F014C0AACF5F3FECF33C +:10478000983EDCF3869577956795B795F795E7950D +:104790009F5FC1F7FE2B880F911D9695879597F91E +:1047A000089597F99F6780E870E060E008959FEFB3 +:1047B00080EC089500240A941616170618060906B8 +:1047C000089500240A941216130614060506089587 +:1047D000092E0394000C11F4882352F0BB0F40F40F +:1047E000BF2B11F460FF04C06F5F7F4F8F4F9F4F4F +:1047F000089597FB072E16F4009407D077FD09D093 +:104800000E94132407FC05D03EF4909581959F4F9C +:104810000895709561957F4F0895EE0FFF1F0590E5 +:10482000F491E02D0994AA1BBB1B51E107C0AA1FFC +:10483000BB1FA617B70710F0A61BB70B881F991F41 +:104840005A95A9F780959095BC01CD010895F999E5 +:10485000FECF92BD81BDF89A992780B50895A8E151 +:10486000B0E042E050E00C944F24262FF999FECF9F +:1048700092BD81BDF89A019700B4021639F01FBAB3 +:1048800020BD0FB6F894FA9AF99A0FBE08950196D2 +:10489000272F0E9436240C943524DC01CB01FC0127 +:1048A000F999FECF06C0F2BDE1BDF89A319600B489 +:0E48B0000D9241505040B8F70895F894FFCF94 +:1048BE0002203F09CD09AA09760942090101CB015F +:1048CE0028080A03140A3F4D363971042404EE03F6 +:1048DE00B503480361037A0393030102030405063B +:0448EE0007080900AE +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/dave/keymap.c b/keyboards/ergodox_ez/keymaps/dave/keymap.c new file mode 100644 index 000000000..e9480af3e --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/dave/keymap.c @@ -0,0 +1,199 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define PROG 1 // programming +#define NAVI 2 // navigation + +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 | PrtS | | CtAl | CtAl | + * ,------+------+------| |------+------+------. + * | | | L1 | | L1 | | | + * | Spce | ~L2 +------| |------+ ~L1 | Spce | + * | | | LGui | | RGui | | | + * `--------------------' `--------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, 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_PSCREEN, + 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_LBRC,KC_RBRC,KC_NO, CTL_T(KC_QUOT), + MT(0x5, KC_NO), 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 | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// PROGRAMMING +[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 | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | L0 | | L0 | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// NAVIGATION +[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_TRNS, KC_TRNS, + 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) { + +}; + +// 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); + } + } + + +}; diff --git a/keyboards/ergodox_ez/keymaps/dave/readme.md b/keyboards/ergodox_ez/keymaps/dave/readme.md new file mode 100644 index 000000000..aa0f9bd19 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/dave/readme.md @@ -0,0 +1,38 @@ +This keymap is my preferred layout (after a certain amount of experimentation). +The rationale behind the design is as follows: + +I grew up typing from a very early age and thus never learned the "correct" way +to touch type (essentially, I'm self-taught). As a, result my fingers don't +tend to stay on the "home keys" and occasionally my right hand wants to type +keys that are on the left of the keyboard, and vice versa. + +Hence, despite liking the idea of split keyboards in principle, I've never been +able to get on with them because the split simply doesn't work with my style of +typing. The Ergodox solves this neatly by virtue of having a few extra keys in +the "middle" of the keyboard which I can utilise for deliberate redundancy. +Thus in this keymap there are two "6" keys (one on the left, one on the right) +and likewise Y, H, G, and B are all duplicated to enable one-handed patterns +that I use frequently (e.g. "byobu" with the right hand, "yes" with the left, +etc.). + +I occasionally use the numeric pad for data entry, thus this is duplicated +under the natural home position of the right hand in layer 1 (activated by +holding one of the right thumb buttons), while the cursor keys are duplicated +under the classic WASD gaming layout of the left hand in layer 2 (activated by +holding one of the left thumb buttons). Various other useful keys also appear +in these layers (brackets and symbols for coding in layer 1, navigation and +F-keys in layer 2, etc.). + +Finally, modifier keys like Ctrl, Shift, and Alt, along with Backspace and +Enter are all in traditional locations in an effort to reuse existing muscle +memory as much as possible (keys like =, #, and ' are in layer 1). The layout +maps are in the comments of keymap_dave.c so I won't bother duplicating them +here. + +Oh, and the LEDs are rather pimped ... because I could! + +Anyway, although I'm sure this keymap won't be to many people's taste you might +find some interesting ideas in here for your own layouts. Do tweet me +(@waveform80) if you have any questions / suggestions / bugs. + +Dave. diff --git a/keyboards/ergodox_ez/keymaps/default/compiled.hex b/keyboards/ergodox_ez/keymaps/default/compiled.hex new file mode 100644 index 000000000..0285acb6b --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/default/compiled.hex @@ -0,0 +1,1153 @@ +:100000000C940E030C9452030C9452030C94520360 +:100010000C9452030C9452030C9452030C9452030C +:100020000C9452030C9452030C94740E0C94460FCF +:100030000C9452030C9452030C9452030C945203EC +:100040000C9452030C9416220C9452030C945203F9 +:100050000C9452030C94141D0C9452030C945203F0 +:100060000C9452030C9452030C9452030C945203BC +:100070000C9452030C9452030C9452030C945203AC +:100080000C9452030C9452030C9452030C9452039C +:100090000C9452030C9452030C9452030C9452038C +:1000A0000C9452030C9452030C945203AB0FCD0FDB +:1000B000B810CD0FB8100F103210B81087109A106A +:1000C00074137413A313A313DB13FD132515251544 +:1000D00008142515AF14AF1418152515251520156E +:1000E000BC14BC14BC14BC14BC14BC14BC14BC1490 +:1000F000BC14BC14BC14BC14BC14BC14BC14BC1480 +:10010000CE14DC14E314EA14F4146572676F646FA0 +:10011000785F657A2F64656661756C74204020761F +:10012000342E302D3232322D67623835643266001B +:100130000000F0A12E004C002A00E1003541000033 +:100140001E00140004001D6134004D001F001A0041 +:1001500016001B00E1042A0020000800070006002A +:1001600050002C0021001500090019004F004A0022 +:10017000220017000A0005000000656450000153CA +:100180000000006F0000E3004F0001530000006713 +:100190000000E20023001C000B0011000000296198 +:1001A000240018000D00100052004B0025000C0028 +:1001B0000E00360051002800260012000F00370004 +:1001C0002F002B00270013003342386130004E000F +:1001D0002D0031003468E500C1000000003001004E +:1001E00001000100010000003A001E02200222026C +:1001F000010001003B001F02210223020100010057 +:100200003C002F0226022F00010001003D003002B9 +:1002100027023000010001003E00310235003502A6 +:1002200000000100010001000000010000000100C9 +:100230000100010000000100000001003F00520029 +:1002400051002402000001004000240021001E0093 +:10025000010001004100250022001F0037000100BD +:100260004200260023002000270001004300250251 +:100270002E0231002E000100440045000100010063 +:100280000100000001000100010001000100000068 +:100290000100010001000100010001000100010056 +:1002A000F2000100010001000100F000F100010076 +:1002B000F400010001000100F3000100F50001005D +:1002C0000100010001000100000001000100010027 +:1002D0000000010000000100010001000000010019 +:1002E0000000010001000100010001000000010008 +:1002F0000100010001000100A9000100010001004E +:100300000100AC00AA00B600010001000100AB0032 +:10031000A80001000100010001000100010001002E +:1003200001000100AE00010001000000000000001B +:10033000000000002A2B2800000000000000000040 +:100340000000000000000029000000002C1E3420E6 +:10035000212224342627252E362D3738271E1F200C +:100360002122232425263333362E37381F04050651 +:100370000708090A0B0C0D0E0F1011121314151695 +:100380001718191A1B1C1D2F3130232D3504050693 +:100390000708090A0B0C0D0E0F1011121314151675 +:1003A0001718191A1B1C1D2F3130354C0000000086 +:1003B000000000000000000000000000000000003D +:1003C000000000000000000000000000000101012A +:1003D0000101010001010101000000000000000016 +:1003E0000000000000000100010001010101010105 +:1003F00001010101010101010101010101010101ED +:1004000001010101010101000000010100000000E3 +:1004100000000000000000000000000000000000DC +:10042000000000000000000101010100160345006A +:10043000720067006F0044006F00780020004500E4 +:100440005A00000016034500720067006F00440068 +:100450006F007800200045005A00000004030904E2 +:1004600009026D00040100A0FA0904000001030163 +:100470000100092111010001224000070581030844 +:10048000000A090401000103010200092111010011 +:1004900001224D000705820308000A090402000139 +:1004A0000300000009211101000122360007058325 +:1004B0000308000A090403000103000000092111D8 +:1004C0000100012239000705840310000112011008 +:1004D0000100000008EDFE07130100010200010504 +:1004E000010906A101050719E029E7150025019575 +:1004F0000875018102050819012905950575019105 +:10050000029501750391010507190029771500254A +:1005100001957875018102C005010980A10185025C +:1005200016010026B7001A01002AB70075109501C0 +:100530008100C0050C0901A1018503160100269C5C +:10054000021A01002A9C02751095018100C0050164 +:100550000902A1010901A1000509190129051500D8 +:10056000250195057501810295017503810105013C +:10057000093009311581257F9502750881060938F2 +:100580001581257F950175088106050C0A3802152D +:1005900081257F950175088106C0C005010906A166 +:1005A00001050719E029E715002501950875018166 +:1005B0000295017508810105081901290595057540 +:1005C0000191029501750391010507190029FF1595 +:1005D0000026FF00950675088100C000000000009D +:1005E000000000000000010204060A0F17202C3A48 +:1005F0004A5D71879DB3C7DAE9F5FCFFFCF5E9DADE +:10060000C7B39D87715D4A3A2C20170F0A06040272 +:1006100001000000000000000000000011241FBEC7 +:10062000CFEFDAE0DEBFCDBF04B603FE24C0809179 +:10063000FD019091FE01A091FF01B0910002873071 +:10064000904BA740B04BB9F41092FD011092FE01FF +:100650001092FF011092000214BE84B7877F84BFFE +:1006600088E10FB6F89480936000109260000FBE8E +:10067000E0E0FFE3099511E0A0E0B1E0EAEBF7E488 +:1006800002C005900D92A433B107D9F711E0A4E39D +:10069000B1E001C01D92AD3FB107E1F70E94BE0B72 +:1006A0000C94DB230C9400001092B9008AE0809334 +:1006B000B800089594EA9093BC009091BC0097FF15 +:1006C000FCCF9091B900987F983021F0903111F0D3 +:1006D00081E008958093BB0084E88093BC00809102 +:1006E000BC0087FFFCCF8091B900887F883111F072 +:1006F000803471F780E0089584E98093BC00809194 +:10070000BC0084FDFCCF08958093BB0084E88093F7 +:10071000BC008091BC0087FFFCCF9091B900987F0E +:1007200081E0983209F480E0089584E88093BC0069 +:100730008091BC0087FFFCCF8091BB00089580B3FF +:100740008C7080BB81B3836F81BB08958091010160 +:10075000811115C080E40E945A0380930101811128 +:100760000CC082E10E94840380930101811105C0C5 +:100770008FEF0E948403809301010E947C0384B167 +:10078000807F84B985B1807F85B98AB1837F8AB93A +:100790008BB1837F8BB93E98469808950E946D0572 +:1007A000809301010E94A6030E949F03E3E4F1E00D +:1007B000A5E3B1E011921D9281E0E135F807D1F790 +:1007C0000C9457050E946D05809301010E94A603B9 +:1007D0000E949F03E3E4F1E0A5E3B1E011921D92D2 +:1007E00081E0E135F807D1F70895BF92CF92DF920B +:1007F000EF92FF920F931F93CF93DF9380910101AC +:10080000882379F0809134018F5F809334018111C6 +:1008100008C00E946D0580930101811102C00E94F1 +:10082000FF0405E311E0C0E0D0E0DD24D39482E0D2 +:10083000C82EEE24E394F12CC73000F5809101011D +:10084000811162C080E40E945A03809301018111EA +:1008500012C082E10E9484038093010181110BC0C8 +:10086000C7010C2E01C0880F0A94EAF780950E94F8 +:100870008403809301010E947C0346C0CA30A1F02A +:1008800028F4C83059F0C93061F005C0CC3089F087 +:1008900070F0CD3089F0209A289810C0219A2998BC +:1008A0000DC0229A2A980AC0239A2B9807C0529A00 +:1008B00001C0539A5B9802C03E9A4698E0EAEA95D6 +:1008C000F1F78FB179995AC092E081708D25892B0B +:1008D0007C9B02C090E001C094E0892B7D9B02C00C +:1008E00090E001C098E0892B7E9B02C090E001C09F +:1008F00090E1892B9FB19095991F9927991F929507 +:10090000990F907E892B0FC08091010181114BC0FE +:1009100080E40E945A0380930101882389F1B12C5D +:100920000E947C038B2DF8019081981719F0808329 +:10093000C09200010E94A60321960F5F1F4FCE3088 +:10094000D10509F079CF80910001882371F18150A0 +:1009500080930001882339F08FE99FE00197F1F738 +:1009600000C0000022C0A3E4B1E0E5E3F1E0819122 +:100970008D9391E0E334F907D1F717C090E0A5CF4C +:1009800083E10E948403809301018111C8CF81E437 +:100990000E945A03809301018111C1CF0E949503E7 +:1009A000B82EB094BDCF80E0BECF0E94FD0481E0A0 +:1009B000DF91CF911F910F91FF90EF90DF90CF903B +:1009C000BF900895E82FF0E0ED5BFE4F8081089521 +:1009D00008951F93CF93DF93C3E4D1E010E0899192 +:1009E00090E00E94391C180F81E0C135D807B9F793 +:1009F000812FDF91CF911F9108950C94CA055698CD +:100A00005E9825982D9826982E9827982F988FEFE6 +:100A100090E0909389008093880090938B0080935E +:100A20008A0090938D0080938C00259A2D9A2FEF49 +:100A300080E792E0215080409040E1F700C0000044 +:100A4000269A2E9A2FEF80E792E021508040904026 +:100A5000E1F700C00000279A2F9A2FEF80E792E07D +:100A6000215080409040E1F700C0000025982D986B +:100A70002FEF80E792E0215080409040E1F700C0E6 +:100A8000000026982E982FEF80E792E021508040BA +:100A90009040E1F700C0000027982F9856985E9884 +:100AA00025982D9826982E9827982F98089589EAAA +:100AB0008093800089E08093810024982C983F984F +:100AC0008AB18F748AB96E98479A8BB1806B8BB953 +:100AD000769A0E94FF040C94C90580E2809301017C +:100AE0008091510181110EC00E94540381E08093D6 +:100AF00051012FEF83ED90E3215080409040E1F7CA +:100B000000C0000080E40E945A038093010181111B +:100B10002EC00E94840380930101811128C00E948D +:100B2000840380930101811122C08FE30E9484031A +:100B30008093010181111BC00E947C0380E40E940C +:100B40005A0380930101811112C08CE00E9484033A +:100B50008093010181110BC00E94840380930101E5 +:100B6000811105C08FE30E948403809301010E94DC +:100B70007C03809101010895611108C0FC0182810C +:100B8000882321F08AE091E00E94C30780E090E092 +:100B9000089508956091BE017091BF018091C001D8 +:100BA0009091C1010E94451C56985E9825982D98F9 +:100BB00026982E9827982F98813019F0823021F0AE +:100BC0000895259A2D9A0895269A2E9A089581E0DF +:100BD000089581E008950C94E9050895282F88234D +:100BE00039F090E02A3010F44D9608950697089554 +:100BF00087E290E00895BF92CF92DF92EF92FF924A +:100C00000F931F93CF93DF938C01FC01C081D1819F +:100C1000CE010E94C01ABE010E946D09EC01B8010C +:100C20000E94EB05882309F4A3C1F801828188237F +:100C3000C9F180915E0181111EC0C431F0E7DF0768 +:100C400089F50E94ED0581E080935E010E94DF1C22 +:100C500090935D0180935C011092550110925701B1 +:100C600010925601109259011092580110925B0196 +:100C700010925A017DC180915C0190915D010E94AA +:100C8000EB1C883C910570F480915501E82FF0E051 +:100C9000EE0FFF1FEA5AFE4FD183C0838F5F809310 +:100CA000550166C1C13020E8D20708F451C0F801EF +:100CB0008281882309F44CC06E01E894D7F88091B2 +:100CC0005401813079F050F08230C1F482EE0E94FC +:100CD000121287E50E94121287E50EC082EE0E9472 +:100CE00012120CC080EE0E94121281EE0E941212AB +:100CF00088E10E94121288E10E94DA128CE0E82E4C +:100D0000F12CC6010E2C02C0969587950A94E2F745 +:100D10008F700E94EE05B82E0E9412128B2D0E9439 +:100D2000DA12F4E0EF1AF1082CEFE2162FEFF206D8 +:100D300041F780915401813029F010F0823041F464 +:100D400082EE04C080EE0E94DA1281EE0E94DA1276 +:100D5000C43180E7D80760F4C23090E7D90780F546 +:100D6000C115E0E7DE0771F0C130D047F1F0EFC008 +:100D7000C33320E7D20709F4BEC0C433D04709F417 +:100D8000CEC0E5C0F8018281882309F4E5C00E9445 +:100D90009315FFEF24E38CE0F15020408040E1F711 +:100DA00000C000000E94391DE3C0F8018281882341 +:100DB00009F4D2C08091DB0181608093DB01D8C04F +:100DC000F8018281882309F4C7C00E94941D811113 +:100DD00002C00E947A1D0E94A71D90E09093EF012F +:100DE0008093EE01C230F0E7DF0721F48091EE013D +:100DF00081607AC0C33020E7D20721F48091EE01F0 +:100E0000826072C0C43080E7D80721F48091EE017F +:100E100084606AC0C53090E7D90719F48091EE016B +:100E200027C0C630E0E7DE0721F48091EE01806143 +:100E30005BC0C730F0E7DF0721F48091EE018062EC +:100E400053C0C83020E7D20721F48091EE018064BE +:100E50004BC0C93080E7D80721F48091EE0180684B +:100E600043C0CA3090E7D90729F48091EE0184602D +:100E700088603AC0CB30E0E7DE0721F48091EE01D4 +:100E80008E7F32C0CC30F0E7DF0721F48091EE0195 +:100E90008D7F2AC0CD3020E7D20721F48091EE016A +:100EA0008B7F22C0CE3080E7D80719F48091EE0105 +:100EB0001AC08091EE01CF3090E7D90711F48F7EF0 +:100EC00013C0C031E0E7DE0711F48F7D0DC0C131E2 +:100ED000F0E7DF0711F48F7B07C0C231D04711F470 +:100EE0008F7702C08B7F877F8093EE018091EE0128 +:100EF0000E94AB1D3DC0F8018281882321F0109231 +:100F0000520182E013C080915201811106C086E235 +:100F10000E94121286E20E94DA1282E015C0F801E5 +:100F20008281882331F01092530182E10E942913BB +:100F30001FC080915301811106C087E20E941212E6 +:100F400087E20E94DA1282E10E94301311C081E030 +:100F50008093520180935301C801DF91CF911F917B +:100F60000F91FF90EF90DF90CF90BF900C94E7052A +:100F700080E0DF91CF911F910F91FF90EF90DF9074 +:100F8000CF90BF9008951F93CF93DF93EC01FE01A4 +:100F900024912223F1F030E0F901E45DFC4F14913B +:100FA000F901E455FC4F2491222359F081EE0E946F +:100FB0001212812F0E941212812F0E94DA1281EEEA +:100FC00004C0812F0E941212812F0E94DA122196F2 +:100FD000DECFDF91CF911F91089526E0729FF0013F +:100FE000112444E5849FE00DF11D1124E60FF11D4D +:100FF000EE0FFF1FEC5CFE4F859194910E947F09DC +:10100000811520E49207B0F5811540E3940708F0BC +:10101000DDC0803E9105D8F4803C910508F06BC09E +:10102000883A910578F4853A910508F06AC08130D4 +:10103000910509F450C108F40DC18430910508F000 +:101040004AC108C18B3B910508F466C003C18F3FBC +:10105000910509F048F4803F910508F0ACC0883E46 +:10106000910508F438C1F6C0811520E2920708F016 +:10107000A4C00895811543E5940790F4811522E5F5 +:10108000920708F0C7C0811541E5940708F0BDC07C +:10109000811520E5920708F09CC09F70906A089522 +:1010A000811545E59407D0F4811524E5920708F0F1 +:1010B000C6C0282F2695269540E2249F9001112432 +:1010C000AC014370552781E090E002C0880F991F62 +:1010D0004A95E2F7822B932B9A680895811546E58D +:1010E000940708F4B1C09C0130562115304108F036 +:1010F000B1C09F70ADC0FC01EE0FFF1FE055F04086 +:1011000062C0853A910509F4A8C0863A910509F4B0 +:10111000A7C083E890E40895883A910509F4A3C034 +:10112000893A910509F4A2C08A3A910509F4A1C04F +:101130008B3A910509F4A0C08C3A910509F49FC03F +:101140008D3A910509F49EC0803B910509F49DC03C +:101150008E3A910509F49CC08F3A910509F49BC021 +:10116000813B910509F49AC0823B910509F499C02D +:10117000833B910509F498C0843B910509F497C01D +:10118000853B910509F496C0863B910509F495C00D +:10119000873B910509F494C0883B910509F493C0FD +:1011A000893B910509F492C08A3B910509F091C0F1 +:1011B0008AE296E40895906508959F70880F991FBC +:1011C000805D9E4FFC018591949108959927906CC4 +:1011D0000895482F437021E030E002C0220F331FF2 +:1011E0004A95E2F73C68AC0164E0569547956A95EC +:1011F000E1F74370342B8F708695869540E2849F8B +:10120000C0011124822B932B0895982F8827816F7A +:10121000906A0895282F2695269540E2249F9001F4 +:101220001124AC014370552781E090E002C0880F83 +:10123000991F4A95E2F7822B932B9C680895982F6B +:101240008827846F906A08958F719927982F88272F +:101250009062089580E090E0089581E890E4089518 +:1012600082E890E4089582EE94E4089589EE94E48F +:1012700008958AEE94E4089585EB94E4089586EB4E +:1012800094E4089587EB94E408958CEC94E4089535 +:101290008DEC94E4089583E895E408958AE895E454 +:1012A000089582E995E4089584E995E4089581E23A +:1012B00096E4089583E296E4089584E296E408951E +:1012C00085E296E4089586E296E4089587E296E43E +:1012D000089580E094E40895089596E0799FF001E0 +:1012E000112494E5899FE00DF11D1124E60FF11DF5 +:1012F000EE0FFF1FEC5CFE4F8591949108958238AC +:10130000910549F1B0F48133910509F459C048F4CD +:101310008932910509F44FC08A32910509F455C00C +:1013200008958533910509F441C08933910599F0F9 +:101330000895833E910531F138F4803E910591F096 +:10134000823E9105A9F00895863E910501F1873E00 +:10135000910539F108952091EE0120FD3BC021FD5A +:1013600039C008958091EE0180FF34C089E341C007 +:101370008091EE0182FF32C08091EE0184FF2CC08B +:1013800080E037C08091EE0182FD28C0F5CF8091CA +:10139000EE0183FF25C08091EE0184FDF1CF87EE41 +:1013A00028C08091EE0183FD1BC0F5CF8091EE0136 +:1013B00085FF18C019C08091EE0185FF15C012C0CD +:1013C0008091EE0186FF12C013C08091EE0186FF6E +:1013D0000FC00CC080EE0DC083EE0BC082EE09C0C2 +:1013E00086EE07C085E305C089E203C081E301C042 +:1013F0008AE290E0089508950C94FB0980916F01B2 +:101400000895CF93DF9300D01F92CDB7DEB7209120 +:10141000F401243019F523E029839B838A832093E8 +:10142000E9008FEF9091E800815095FD06C095EDA1 +:101430009A95F1F700008111F5CF8091E80085FFC2 +:101440000DC040E050E063E070E0CE0101960E94E4 +:10145000670C8091E8008E778093E8000F900F90E2 +:101460000F90DF91CF910895CF93DF9300D01F921B +:10147000CDB7DEB72091F401243021F522E0298395 +:101480009B838A8383E08093E9008FEF9091E8004B +:10149000815095FD06C095ED9A95F1F700008111F8 +:1014A000F5CF8091E80085FF0DC040E050E063E09B +:1014B00070E0CE0101960E94670C8091E8008E7763 +:1014C0008093E8000F900F900F90DF91CF910895D7 +:1014D0002091F4012430F1F422E02093E9002FEF71 +:1014E0003091E800215035FD06C035ED3A95F1F711 +:1014F00000002111F5CF2091E80025FF0BC040E04E +:1015000050E065E070E00E94670C8091E8008E7703 +:101510008093E8000895CF93DF93EC018091F4016C +:10152000843009F046C090910C019923D9F0909134 +:101530000D019923B9F08093E9008FEF9091E800B5 +:10154000815095FD06C095E19A95F1F70000811153 +:10155000F5CF8091E80085FF2CC040E050E060E1CD +:1015600070E017C081E08093E9008FEF9091E80070 +:10157000815095FD06C095ED9A95F1F70000811117 +:10158000F5CF8091E80085FF14C040E050E068E0AE +:1015900070E0CE010E94670C8091E8008E77809306 +:1015A000E80080E1FE01AFE5B1E001900D928A957F +:1015B000E1F7DF91CF9108958091F301811109C086 +:1015C0000E94F90D0E94560E8091E2008460809383 +:1015D000E20008951092F301089508950C940322F7 +:1015E0000E94D01C0E9409220E94F3100C94FC0956 +:1015F00042E061EC81E00E94730D42E061EC82E028 +:101600000E94730D42E061EC83E00E94730D42E1A1 +:1016100061EC84E00C94730D8091F601833009F441 +:1016200055C030F4813071F0823009F48EC00895D5 +:101630008A3009F47AC08B3009F460C0893009F02F +:101640009CC020C08091F501813A09F096C080913C +:10165000E800877F8093E8008091F9019091FA017A +:10166000892B21F060E080E090E003C060E18FE52D +:1016700091E070E00E94B00C8091E8008B7780933D +:10168000E80008958091F501813209F076C08091DB +:10169000F9019091FA01009719F0039709F06DC0D4 +:1016A0008091E800877F8093E8008091E80082FDC8 +:1016B00005C08091F4018111F8CF5FC08091F100E5 +:1016C00080936F018091E8008B7753C08091F50182 +:1016D000813A09F052C08091F9019091FA01892B69 +:1016E00009F04BC08091E800877F8093E8008091EB +:1016F000E80080FFFCCF80910C0136C08091F5019D +:101700008132D9F58091F9019091FA01892BA9F5DF +:101710008091E800877F8093E8000E94A80D809167 +:10172000F70180930C010C9493158091F50181329F +:1017300021F58091E800877F8093E8000E94A80D42 +:101740008091F8018093700108958091F501813AAC +:10175000A1F48091E800877F8093E8008091E80001 +:1017600080FFFCCF809170018093F1008091E800B0 +:101770008E778093E8000C94A80D089584B7877F36 +:1017800084BF88E10FB6F8948093600010926000E7 +:101790000FBE80E880936100109261000E944211A8 +:1017A0000E94F90D0E94560E8091E20084608093A1 +:1017B000E20078940E94D1100E94441182E091E0EE +:1017C0000E94EE100E94F1218091F401853069F4AD +:1017D0000E94981C8091F2018823B1F30E94C21CE0 +:1017E000882391F30E94510CEFCF0E944A11ECCF55 +:1017F000292F332723303105A9F06CF4213031052E +:1018000009F442C02230310509F043C08DE690E072 +:1018100020E634E042C021323105C9F022323105E0 +:1018200019F137C099278130910541F08230910537 +:1018300041F0892B71F5ECE5F4E005C0E4E4F4E057 +:1018400002C0ECE2F4E0849190E09F0126C0643095 +:1018500000F5E62FF0E0EE0FFF1FEE5DFE4F20815A +:10186000318189E090E019C0643098F4E62FF0E00F +:10187000DF01AA0FBB1FA65EBE4F2D913C91EA5E11 +:10188000FE4F808190E009C082E190E02DEC34E0D1 +:1018900004C080E090E020E030E0FA013183208352 +:1018A000089580E189BD82E189BD09B400FEFDCFC4 +:1018B0008091D8008F7D8093D8008091E000826075 +:1018C0008093E0008091E00081FDFCCF0895CF92ED +:1018D000DF92EF92FF920F931F93CF93DF937C01E0 +:1018E0008B01EA010E94C90D811131C0209731F0AE +:1018F00088819981081B190BE80EF91EC12CD12C87 +:101900000115110519F18091E80085FD14C0809141 +:10191000E8008E778093E800209741F088819981D4 +:101920008C0D9D1D9983888385E011C00E94C90D8F +:10193000882331F30CC0F70181917F018093F1007E +:1019400001501109FFEFCF1ADF0ADACF80E0DF91F3 +:10195000CF911F910F91FF90EF90DF90CF9008955E +:101960002091FB013091FC012617370748F06115E3 +:10197000710539F42091E8002E772093E80001C02A +:10198000B901FC0120E061157105B9F18091F40104 +:10199000882309F440C0853009F43FC08091E800F5 +:1019A00083FD3DC08091E80082FF06C08091E80081 +:1019B00082FF26C080E008958091E80080FFE3CF99 +:1019C0002091F3008091F20090E0922B6115710557 +:1019D00051F08830910538F421912093F100615045 +:1019E00071090196F3CF21E0089709F020E080917A +:1019F000E8008E778093E800C6CF2111C7CFD6CFFD +:101A00008091F401882339F0853039F08091E80025 +:101A100083FFCCCF04C082E0089583E0089581E085 +:101A200008952091FB013091FC012617370748F0FB +:101A30006115710539F42091E8002E772093E800B4 +:101A400001C0B901FC0120E061157105C1F180916F +:101A5000F401882309F441C0853009F440C0809125 +:101A6000E80083FD3EC08091E80082FF06C08091BF +:101A7000E80082FF27C080E008958091E80080FFA1 +:101A8000E3CF2091F3008091F20090E0922B61155A +:101A9000710559F08830910540F424912093F100AC +:101AA0003196615071090196F2CF21E0089709F053 +:101AB00020E08091E8008E778093E800C5CF211167 +:101AC000C6CFD5CF8091F401882339F0853039F025 +:101AD0008091E80083FFCBCF04C082E0089583E0CB +:101AE000089581E00895982F973058F59093E90074 +:101AF000981739F07091EC002091ED005091F000B2 +:101B000003C0242F762F50E021FF19C03091EB0045 +:101B10003E7F3093EB003091ED003D7F3093ED0040 +:101B20003091EB0031603093EB007093EC00209328 +:101B3000ED005093F0002091EE0027FF07C09F5F5B +:101B4000D3CF8F708093E90081E0089580E00895FD +:101B50008091F50187FD05C08091E80080FF0EC0EF +:101B600012C08091E80082FD05C08091F4018111CE +:101B7000F8CF08958091E8008B7708C08091F40138 +:101B80008111EACF08958091E8008E778093E80074 +:101B900008958091E4009091E50045E62091EC00E5 +:101BA00020FF21C02091E80020FD21C02091F401F8 +:101BB000222389F0253089F02091EB0025FD0FC00C +:101BC0002091E4003091E5002817390739F341509E +:101BD00041F0C901E3CF82E0089583E0089581E0F8 +:101BE000089584E008952091E80022FFDFCF80E08F +:101BF00008950E94670E0E946F0EE0EEF0E0808173 +:101C000081608083E8EDF0E080818F77808319BC6C +:101C1000A7EDB0E08C918E7F8C9380818F7E808346 +:101C20001092F30108950F931F93CF93DF930E94B7 +:101C3000670E0E946F0EC8EDD0E088818F77888391 +:101C400088818068888388818F7D888319BC109201 +:101C5000F4011092F0011092F2011092F10100EEE5 +:101C600010E0F80180818B7F808388818160888388 +:101C700042E060E080E00E94730DE1EEF0E08081E0 +:101C80008E7F8083E2EEF0E08081816080838081BE +:101C900088608083F80180818E7F80838881806165 +:101CA0008883DF91CF911F910F910895E8EDF0E0C7 +:101CB00080818F7E8083E7EDF0E08081816080838A +:101CC00084E082BF81E08093F3010C94130EE8ED71 +:101CD000F0E080818E7F80831092E2000895109260 +:101CE000DA001092E10008951F920F920FB60F9242 +:101CF00011242F933F934F935F936F937F938F9311 +:101D00009F93AF93BF93EF93FF938091E10082FF86 +:101D10000BC08091E20082FF07C08091E1008B7FC1 +:101D20008093E1000E94D0108091DA0080FF1FC0F4 +:101D30008091D80080FF1BC08091DA008E7F809355 +:101D4000DA008091D90080FF0DC080E189BD82E179 +:101D500089BD09B400FEFDCF81E08093F4010E94AB +:101D6000DC0A05C019BC1092F4010E94EA0A8091B5 +:101D7000E10080FF19C08091E20080FF15C08091D2 +:101D8000E2008E7F8093E2008091E2008061809388 +:101D9000E2008091D80080628093D80019BC85E071 +:101DA0008093F4010E94EE0A8091E10084FF30C02C +:101DB0008091E20084FF2CC080E189BD82E189BD71 +:101DC00009B400FEFDCF8091D8008F7D8093D800AC +:101DD0008091E1008F7E8093E1008091E2008F7E10 +:101DE0008093E2008091E20081608093E200809124 +:101DF000F001882311F084E007C08091E30087FFA1 +:101E000002C083E001C081E08093F4010E94F00AE7 +:101E10008091E10083FF29C08091E20083FF25C00B +:101E20008091E100877F8093E10082E08093F4015C +:101E30001092F0018091E1008E7F8093E10080910B +:101E4000E2008E7F8093E2008091E20080618093C7 +:101E5000E20042E060E080E00E94730D8091F000BB +:101E600088608093F0000E94ED0AFF91EF91BF918E +:101E7000AF919F918F917F916F915F914F913F9122 +:101E80002F910F900FBE0F901F9018951F920F92D9 +:101E90000FB60F9211242F933F934F935F936F933D +:101EA0007F938F939F93AF93BF93CF93EF93FF93C2 +:101EB000C091E900CF708091EC001092E900809110 +:101EC000F000877F8093F00078940E94820F109238 +:101ED000E9008091F00088608093F000C093E900F1 +:101EE000FF91EF91CF91BF91AF919F918F917F9192 +:101EF0006F915F914F913F912F910F900FBE0F9077 +:101F00001F9018951F93CF93DF93CDB7DEB7AA9795 +:101F10000FB6F894DEBF0FBECDBFE5EFF1E08091C4 +:101F2000F100819321E0ED3FF207C9F70E940C0B0D +:101F30008091E80083FF1CC12091F5013091F601EA +:101F4000832F90E08A30910508F012C1FC01EA5A13 +:101F5000FF4F0C948B23203881F0223809F008C100 +:101F60008091F9018F708093E9008091EB0085FBEF +:101F7000882780F91092E90006C08091F1019091C4 +:101F8000F201911182609091E800977F9093E800B0 +:101F90008093F1001092F100C5C0822F8D7F09F06F +:101FA000E7C0222319F0223061F0E2C08091F701EE +:101FB000813009F0DDC0333009F080E08093F20118 +:101FC00028C08091F701811124C02091F9012F7060 +:101FD00009F4CEC02093E9008091EB0080FF19C086 +:101FE0008091EB00333011F4806211C080618093E6 +:101FF000EB0081E090E0022E01C0880F0A94EAF71E +:102000008093EA001092EA008091EB008860809350 +:10201000EB001092E9008091E800877F86C02111D3 +:10202000A7C01091F7011F778091E3008078812B82 +:102030008093E3008091E800877F8093E8000E940E +:10204000A80D8091E80080FFFCCF8091E3008068BC +:102050008093E300112311F083E001C082E08093BC +:10206000F40186C02058223008F082C08091F70128 +:102070009091F8018C3D23E0920779F583E08A8303 +:102080008AE289834FB7F894DE01139620E03EE0A0 +:1020900051E2E32FF0E050935700E49120FF03C09A +:1020A000E295EF703F5FEF708E2F90E0EA3010F016 +:1020B000C79601C0C0968D939D932F5F243149F739 +:1020C0004FBF8091E800877F8093E8006AE270E06C +:1020D000CE0101960E94B00C14C0AE014F5F5F4F5D +:1020E0006091F9010E94F80B009709F441C020911A +:1020F000E800277F2093E800BC0189819A810E9433 +:10210000110D8091E8008B778093E80031C0203872 +:1021100079F58091E800877F8093E8008091F00155 +:102120008093F1008091E8008E778093E8000E9410 +:10213000A80D1EC021111CC09091F7019230C0F46F +:102140008091E800877F8093E8009093F0010E94DF +:10215000A80D8091F001811104C08091E30087FFF8 +:1021600002C084E001C081E08093F4010E94F80A7B +:102170008091E80083FF0AC08091E800877F809308 +:10218000E8008091EB0080628093EB00AA960FB686 +:10219000F894DEBF0FBECDBFDF91CF911F910895A0 +:1021A0000895CF938091F4018823B1F08091E900E4 +:1021B0008F709091EC0090FF02C090E801C090E019 +:1021C000C92FC82B1092E9008091E80083FD0E947E +:1021D000820FCF70C093E900CF910895909376015C +:1021E000809375010895E0917501F0917601309723 +:1021F00021F00190F081E02D099480E00895E091B4 +:102200007501F0917601309721F00280F381E02D85 +:1022100009940895E0917501F0917601309721F0CD +:102220000480F581E02D0994089520917301309187 +:1022300074018217930771F0909374018093730176 +:10224000E0917501F0917601309721F00680F781D9 +:10225000E02D099408952091710130917201821747 +:10226000930771F09093720180937101E091750171 +:10227000F0917601309721F00084F185E02D0994EA +:10228000089508950C9441110E94D61C0E94CE031B +:102290000C945C1D9F92AF92BF92CF92DF92EF920F +:1022A000FF920F931F93CF93DF9300D000D000D005 +:1022B000CDB7DEB70E94F50386E8E82E81E0F82E60 +:1022C0000DE010E0CC24C394D12C902E802F0E94DE +:1022D000E204F701B2907F01B826A1F40150110980 +:1022E000A0F78FEF89838A831B820E94DF1C8160A5 +:1022F000782F9D838C8349815A816B818D810E94C7 +:10230000E41131C09091DB0191FF04C08E830E94E3 +:10231000E8048E8125E030E0A601022E01C0440FC2 +:102320000A94EAF7A42E4B21D1F029839A828A21BC +:1023300091E009F490E09B830E94DF1C8160782F7C +:102340009D838C8349815A816B818D810E94E41128 +:10235000F801E858FE4F80818A25808304C021500F +:102360003109D0F6BBCF0E94291F109177010E943E +:10237000F3101817B9F00E94F31080937701269696 +:102380000FB6F894DEBF0FBECDBFDF91CF911F9186 +:102390000F91FF90EF90DF90CF90BF90AF909F9004 +:1023A0000C94FC0926960FB6F894DEBF0FBECDBF85 +:1023B000DF91CF911F910F91FF90EF90DF90CF9021 +:1023C000BF90AF909F900895CF93DF93CDB7DEB7C6 +:1023D0002B970FB6F894DEBF0FBECDBF4F83588743 +:1023E00069877A878B87DE01119686E0FD0111925D +:1023F0008A95E9F785E0FE01379601900D928A955E +:10240000E1F749815A816B817C818D819E810E9497 +:1024100063182B960FB6F894DEBF0FBECDBFDF91C9 +:10242000CF910895CF93C82F882309F4C1C0823873 +:1024300059F40E94F31081FDBBC089E30E94401B48 +:102440000E940A1C89E30CC0833879F40E94F310BF +:1024500080FDAEC083E50E94401B0E940A1C83E5FC +:102460000E94801BCF910C940A1C843859F40E945E +:10247000F31082FD9DC087E40E94401B0E940A1C4D +:1024800087E4EECF8CEF8C0F813A48F48C2F0E94BA +:10249000592181118DC08C2F0E94401BE3CF80E217 +:1024A0008C0F883048F4C77081E001C0880FCA954E +:1024B000EAF70E94C11BD6CF8BE58C0F833078F4EE +:1024C000C53A29F0C63A31F482E890E005C081E8C7 +:1024D00090E002C083E890E0CF910C94151188E55C +:1024E0008C0F833108F064C0C83A39F1C93A41F120 +:1024F000CA3A49F1CB3A51F1CC3A59F1CD3A61F1AE +:10250000C03B69F1CE3A71F1CF3A79F1C13B81F12B +:10251000C23B89F1C33B91F1C43B99F1C53BA1F1A9 +:10252000C63BA9F1C73BB1F1C83BB9F1C93BC1F109 +:10253000CA3BC9F58AE292E038C082EE90E035C02D +:1025400089EE90E032C08AEE90E02FC085EB90E0FB +:102550002CC086EB90E029C087EB90E026C08CEC85 +:1025600090E023C08DEC90E020C083E891E01DC096 +:102570008AE891E01AC082E991E017C084E991E00D +:1025800014C081E292E011C083E292E00EC084E2C6 +:1025900092E00BC085E292E008C086E292E005C0BE +:1025A00087E292E002C080E090E0CF910C942B1182 +:1025B000CF910895882309F44BC0823859F40E94C2 +:1025C000F31081FF45C089E30E94401B0E940A1C52 +:1025D00089E30CC0833871F40E94F31080FF38C087 +:1025E00083E50E94401B0E940A1C83E50E94801B19 +:1025F0000C940A1C843859F40E94F31082FF28C0FE +:1026000087E40E94401B0E940A1C87E4EFCF9CEFE6 +:10261000980F913A58F390E2980F983050F48770E1 +:1026200091E001C0990F8A95EAF7892F0E94C71B94 +:10263000DFCF9BE5980F933020F480E090E00C947E +:102640001511885A833120F480E090E00C942B110E +:102650000895882321F00E94C11B0C940A1C089540 +:10266000882321F00E94C71B0C940A1C08958F92A6 +:102670009F92AF92BF92CF92DF92EF92FF920F9311 +:102680001F93CF93DF931F92CDB7DEB74C01A62ED9 +:10269000472FFC01E580E2948FE0E822F280FF20E2 +:1026A00021F079830E94DE1B498149830E94391BF6 +:1026B0004981882381F0FF2071F080E28A0D883003 +:1026C00050F082E00E94221B0E94391BBB24B3946D +:1026D000B826498101C0B12CE42FE295EF70F0E0FB +:1026E000E05AFF4F0C948B23842F807F142F1F7090 +:1026F000882311F01295107FFF2089F0112309F42F +:102700008DC180E28A0D883020F4812F0E94C11B88 +:1027100003C0812F0E94D11B0E940A1C7FC18A2DF9 +:102720000E94DA12112309F490C180E28A0D8830E8 +:1027300020F4812F0E94C71B03C0812F0E94D71B4A +:102740000E940A1C82C1242F207F842F8F70203288 +:1027500011F08295807FAA2021F0F1E0AF16B9F048 +:1027600020C0FF2049F0EE2009F40FC191E0E912EA +:102770000CC10E94F11B69C1EE2021F0E1E0EE16D0 +:1027800009F463C189830E94F41B898104C1FF207D +:1027900029F0F1E0FE1508F458C1F7C0E11055C169 +:1027A000FAC0FF2021F0EE2009F4EFC037C1EE207F +:1027B00009F4F1C039C1242F26952695237030E005 +:1027C0002115310521F02130310561F03EC1FF2096 +:1027D00021F08A2D942F937002C080E090E00E9437 +:1027E000151133C1FF2021F08A2D942F937002C060 +:1027F00080E090E00E942B1128C18A2DFF2019F063 +:102800000E94311E02C00E94991E0E941E1F1DC1FF +:10281000842F837009F04EC0F11017C12A2D229524 +:1028200026952770220F220F8A2D8F70C82ED12C4B +:10283000E12CF12C022E04C0CC0CDD1CEE1CFF1C84 +:102840000A94D2F7A4FE10C06FE070E080E090E040 +:1028500004C0660F771F881F991F2A95D2F76095CD +:1028600070958095909503C060E070E0CB01242FB7 +:1028700026952695237030E02230310569F023300B +:10288000310589F06C297D298E299F292130310558 +:1028900071F00E94B719D9C06C297D298E299F2912 +:1028A0000E94D119D2C00E94B719C701B6010E9477 +:1028B0009D19CBC0FF2019F0842F817001C086952F +:1028C000882309F4C2C02A2D229526952770220F4D +:1028D000220F8A2D8F70C82ED12CE12CF12C022EC4 +:1028E00004C0CC0CDD1CEE1CFF1C0A94D2F7A4FE25 +:1028F00010C06FE070E080E090E004C0660F771FCA +:10290000881F991F2A95D2F76095709580959095AC +:1029100003C060E070E0CB01242F2695269523703C +:1029200030E02230310569F02330310589F06C291F +:102930007D298E299F292130310571F00E948B1A43 +:1029400084C06C297D298E299F290E94A51A7DC0EB +:102950000E948B1AC701B6010E94711A76C00A2D17 +:1029600010E0F801E05EF109E531F10508F052C030 +:10297000E059FF4F0C948B231A2D1F70842F8F71F9 +:10298000FF2031F00E940A1A812F0E9429135DC096 +:102990000E942B1A812F0E94301357C0FF2039F05C +:1029A000E11053C0842F8F710E94501A4EC081E0F5 +:1029B0008E1508F44AC0F6CFFF2039F0842F8F71AE +:1029C0000E940A1A42C0FF20C9F3842F8F710E940F +:1029D0002B1A3BC0FF2029F0842F8F710E94F5191C +:1029E00034C00E94EB1931C0FF2051F0142F1F7129 +:1029F000812F0E940A1A63E0812F0E94191B25C0B3 +:102A000081E00E94221B91E09E15F8F482E00E9472 +:102A1000221B1BC0FF2031F0EE2081F28A2D0E9484 +:102A2000121213C0EE2089F28A2D0E94DA120DC014 +:102A30004F706A2DC4010E94BC050E94101905C088 +:102A40004F706A2DC4010E946C09BB20F1F00E94F6 +:102A5000151B80FD1AC0F40112820E940F1B0E94F8 +:102A60000A1AC4010E9453150E940F1B0F90DF9198 +:102A7000CF911F910F91FF90EF90DF90CF90BF907B +:102A8000AF909F908F900C942B1A0F90DF91CF9165 +:102A90001F910F91FF90EF90DF90CF90BF90AF907C +:102AA0009F908F9008950F931F93CF93DF93EC0126 +:102AB000288139818B819C81892B31F03F3F11F036 +:102AC00080E003C02F3FE1F781E0811113C0CE0108 +:102AD0000E94FB05882371F0688179818A810E94B8 +:102AE0000B1B8C010E94BF1A0E949219B801CE01E3 +:102AF0000E943713DF91CF911F910F9108950E948B +:102B0000DE1B0E94EE1B0E94B31B0E940A1C0E9447 +:102B1000CA1F0E941E1F80E090E00E94151180E0F5 +:102B200090E00C942B110E94CE1B0C947F150E94F8 +:102B3000001B292F22952F7030E02C3031054CF4EA +:102B40002A3031056CF42250310922303105B0F4BD +:102B500007C02C30310571F02F30310559F00EC00F +:102B6000803F31F018F4803E48F402C0843F31F4D5 +:102B700081E0089593FB882780F9089580E0089507 +:102B8000CF93DF9300D000D01F92CDB7DEB70F9068 +:102B90000F900F900F900F90DF91CF910895CF93EA +:102BA000DF9300D000D000D0CDB7DEB726960FB6A9 +:102BB000F894DEBF0FBECDBFDF91CF9108951F9374 +:102BC000CF93DF93C091860116E080918701C817EB +:102BD00099F0D0E01C9FF0011D9FF00D1124E857E3 +:102BE000FE4F4081518162817381848195810E9471 +:102BF000CF152196C770E9CFDF91CF911F9108952E +:102C00004091B8015091B9016091BA017091BB0136 +:102C10008091BC019091BD010C94CF15CF93809110 +:102C2000BD0182958F7009F05FC08091BA01882341 +:102C300009F45AC020918601A09187016091B801E2 +:102C40007091B9018091BB019091BC0131E06F3F5F +:102C500009F030E0B32FC6E02A1709F445C0009709 +:102C600021F07F3F21F44B2F03C041E001C040E041 +:102C700030E040FD35C0C29FF001C39FF00D11242C +:102C8000E857FE4F418174132BC04081641328C064 +:102C90004281411125C0438154814817590710F4DE +:102CA00041505109481B590B483C5105C8F48091CB +:102CB000BD018F7080618093BD0186E0829FF0012D +:102CC000839FF00D1124E357FE4F80818F70806148 +:102CD000808388EB91E00E945315CF910C94DF150F +:102CE0002F5F3F4F2770B8CFCF910895CF92DF92DB +:102CF000EF92FF920F931F93CF93DF93CDB7DEB781 +:102D000062970FB6F894DEBF0FBECDBF8C0185E091 +:102D1000F801DE011D9601900D928A95E1F7D80128 +:102D20004C9111965C91119712966C911297139693 +:102D3000ED90FC9014977091B801E091B901209149 +:102D4000BB013091BC012115310531F0EF3F31F469 +:102D500081E07F3F19F403C081E001C080E0B82F1B +:102D6000B170CB2E80FD6CC1D090BA01DD2009F48A +:102D7000F5C0F091BD01E216F30638F0C701821BE1 +:102D8000930B883C910548F09BC0209530952E0D03 +:102D90003F1D283C310508F093C08F2F807F09F03C +:102DA00052C0E51314C0741312C0D62E61110FC0A7 +:102DB000FF70F061F093BD010E94001688EB91E076 +:102DC0000E9453158091BD01F80185836CC1EF28E5 +:102DD00031F05F3F31F481E04F3F19F403C081E0EF +:102DE00001C080E080FD03C081E0862701C080E053 +:102DF000F82FF170FF2E80FF1CC08091860120917A +:102E0000870136E0821709F428C190E0389FF0016D +:102E1000399FF00D1124E857FE4F7181571306C0FA +:102E20007081471303C07281671303C001968770D6 +:102E3000E9CFD62E662309F436C18091BD018160A9 +:102E40008093BD0153C0E51308C0741306C061111F +:102E500004C0D8011596FC93AEC04D875E878D8562 +:102E60009E856A8B0E9497156A89882329F1D62E40 +:102E7000662311F12091BD01822F82958F7090E021 +:102E800002970CF460C08091B8019091B9019887C5 +:102E90008F831986FB86EA862C87CE01079651C060 +:102EA000E51731F14D875E878D859E856A8B0E947F +:102EB00097156A8981112EC0C8010E945315A4C0BC +:102EC0008F2F807F69F77E2DF98AE88A89890E9491 +:102ED000C01588EB91E00E945315E8EBF1E086E025 +:102EE000DF011D928A95E9F70E940016D12CDBC004 +:102EF0007413D8CF6111D6CFD8011596FC93C801B1 +:102F00000E945315E8EBF1E086E0DF011D928A95FF +:102F1000E9F7C9C0D62E662379F22091BD01822F30 +:102F200082958F7090E0029774F08091B801909133 +:102F3000B9019A8389831B82FD82EC822E83CE01A4 +:102F400001960E94531586E0F801A8EBB1E00190CC +:102F50000D928A95E1F70E940E166FC0E216F306F5 +:102F600028F0C701821B930B9C0104C0209530956B +:102F70002E0D3F1D283C310508F052C0D62E662389 +:102F800009F49ACFE5132CC074132AC08091BD01B7 +:102F900080FD1DC0982F92959F70C9F0D80115969D +:102FA0008C9315979F3039F09F5F9295907F8F702B +:102FB000892B15968C93C8010E94531586E0F80161 +:102FC000A8EBB1E001900D928A95E1F736C086E05A +:102FD000F801A8EBB1E001900D928A95E1F763C08A +:102FE0004D875E878D859E850E949715882379F091 +:102FF00086E0F801A8EBB1E001900D928A95E1F727 +:103000000E940E160E940016DD24D3944CC08091BD +:10301000BD0181608093BD01C8010E94531543C06A +:103020007E2DF98AE88A89890E94C015E8EBF1E0D3 +:1030300086E0DF011D928A95E9F70E94001633C0F1 +:10304000662309F439CF4D875E878D859E850E9462 +:103050009715882309F430CFCBCF4D875E878D85B8 +:103060009E850E94001B292F22952F7030E0223070 +:1030700031052CF49F7041F0811106C00CC0243042 +:1030800031052CF49F7049F4805E883020F0C8012F +:103090000E945315CF2CDC2C06C0D80115969C91AC +:1030A000907F91F7F8CF8D2D62960FB6F894DEBF22 +:1030B0000FBECDBFDF91CF911F910F91FF90EF9089 +:1030C000DF90CF9008951F93CF93DF93CDB7DEB7F6 +:1030D0002C970FB6F894DEBF0FBECDBF4F83588735 +:1030E00069877A878B879C87CE0107960E94761620 +:1030F0008823C1F02F8138858A859B85892B31F003 +:103100003F3F11F080E003C02F3FE1F781E08111E4 +:1031100047C04F81588569857A858B859C850E943B +:10312000CF153EC086E0FE013796DE011196019074 +:103130000D928A95E1F7FF81E8854A855B85411507 +:10314000510531F0EF3F31F481E0FF3F19F403C046 +:1031500081E001C080E080FD23C02091870130E044 +:10316000C9010196877099276091860170E08617E2 +:103170009707F1F1F983EA835D834C8396E0929F90 +:10318000D001939FB00D1124A857BE4FFE01319678 +:1031900001900D929A95E1F7809387010E94DF15C7 +:1031A00016E08091860190918701891779F1189F27 +:1031B000C001112488579E4F0E947616882331F152 +:1031C000E09186011E9FF0011124E857FE4F4081D7 +:1031D000518162817381848195810E94CF15809194 +:1031E000860190E001968770992780938601D9CF58 +:1031F0000E9493151092870110928601E8EBF1E08E +:1032000086E0DF011D928A95E9F7CACF2C960FB6AA +:10321000F894DEBF0FBECDBFDF91CF911F9108950F +:10322000EF92FF920F931F93CF93DF939C01009730 +:1032300009F471C0F12CEE24E394E9012196F9011F +:103240008491843740F4843008F056C0813081F096 +:10325000823021F160C0853709F449C0C0F19CE794 +:10326000980F903708F057C08F770E94DA1246C047 +:1032700089010E5F1F4FFE01849190E2980F9830F4 +:1032800050F48770FE2D01C0FF0F8A95EAF78F2F4B +:103290000E94E11B15C00E94121214C089010E5F2A +:1032A0001F4FFE01849190E2980F983068F4877068 +:1032B000FE2D01C0FF0F8A95EAF78F2F0E94E71BB2 +:1032C0000E940A1CE8011AC00E94DA12FBCF2E5F8E +:1032D0003F4FFE01C491CC2341F08FE99FE001975D +:1032E000F1F700C00000C150F6CFE90107C0FE01B0 +:1032F000F490E901229602C00E9412128F2D8823B9 +:1033000041F0EFE9FFE03197F1F700C00000815094 +:10331000F6CF9E0192CFDF91CF911F910F91FF9039 +:10332000EF90089508956093C2017093C301809354 +:10333000C4019093C5010C947F150F931F930091C6 +:10334000C2011091C3012091C4013091C501062B27 +:10335000172B282B392B0093C2011093C301209304 +:10336000C4013093C5011F910F910C947F150F93E9 +:103370001F930091C2011091C3012091C4013091AB +:10338000C50106231723282339230093C201109374 +:10339000C3012093C4013093C5011F910F910C9478 +:1033A0007F150F931F930091C2011091C3012091CB +:1033B000C4013091C5010627172728273927009314 +:1033C000C2011093C3012093C4013093C5011F9122 +:1033D0000F910C947F151092BE011092BF011092B4 +:1033E000C0011092C1010C947F1541E050E060E0F3 +:1033F00070E004C0440F551F661F771F8A95D2F7EF +:103400004093BE015093BF016093C0017093C1010E +:103410000C947F1541E050E060E070E004C0440F80 +:10342000551F661F771F8A95D2F78091BE01909134 +:10343000BF01A091C001B091C101842B952BA62B97 +:10344000B72B8093BE019093BF01A093C001B093AE +:10345000C1010C947F1541E050E060E070E004C0D1 +:10346000440F551F661F771F8A95D2F740955095D8 +:10347000609570958091BE019091BF01A091C001AF +:10348000B091C10184239523A623B7238093BE0165 +:103490009093BF01A093C001B093C1010C947F151C +:1034A00041E050E060E070E004C0440F551F661F2B +:1034B000771F8A95D2F78091BE019091BF01A091AC +:1034C000C001B091C10184279527A627B727809313 +:1034D000BE019093BF01A093C001B093C1010C94B1 +:1034E0007F150F931F930091BE011091BF01209192 +:1034F000C0013091C101062B172B282B392B0093CB +:10350000BE011093BF012093C0013093C1011F91F0 +:103510000F910C947F150F931F930091BE01109192 +:10352000BF012091C0013091C10106231723282338 +:1035300039230093BE011093BF012093C001309343 +:10354000C1011F910F910C947F150F931F93009150 +:10355000BE011091BF012091C0013091C101062729 +:103560001727282739270093BE011093BF01209306 +:10357000C0013093C1011F910F910C947F150895E4 +:10358000CF92DF92EF92FF920F931F93CF93DF932F +:10359000EC01C090C201D090C301E090C401F09052 +:1035A000C5018091BE019091BF01A091C001B09171 +:1035B000C101C82AD92AEA2AFB2A0FE110E0B70183 +:1035C000A601002E04C076956795579547950A94F5 +:1035D000D2F740FD05C00150110988F780E007C00F +:1035E000BE01802F0E94ED070197A9F3802FDF9184 +:1035F000CF911F910F91FF90EF90DF90CF900895A2 +:10360000CF93DF93EC010E94C01ABE010E94ED0728 +:10361000DF91CF910895CB010E94001B0895809106 +:10362000C60185958595859508958091C601877019 +:10363000089598E0899F90011124622B6093C60140 +:103640000C940A1A4091C601809584238093C60188 +:10365000982F977069F450E0282F332727FD309575 +:103660004217530729F08595859585950C942B1A5B +:1036700008959091C601977081E009F480E0089563 +:1036800090910C019923D9F090910D019923B9F0F3 +:10369000982F9695969596959F3088F5E0910E0116 +:1036A000F0910F01E90FF11D877021E030E001C0BA +:1036B000220F8A95EAF78181822B818308954091B8 +:1036C0000E0150910F0120E030E09FEFFA01E20F70 +:1036D000F31F6281681799F09F3F19F4611101C0CF +:1036E000922F2F5F3F4F2E30310581F79F3F39F0EA +:1036F000FA01E90FF11D97FDFA9582830895089567 +:1037000090910C019923E1F090910D019923C1F062 +:10371000982F9695969596959F3020F5E0910E01FD +:10372000F0910F01E90FF11D877021E030E001C039 +:10373000220F8A95EAF72095818128232183089515 +:1037400040910E0150910F0120E030E0FA01E20FAC +:10375000F31F9281981301C012822F5F3F4F2E30CA +:103760003105A1F7089581E090E0E0910E01F0911C +:103770000F01E80FF91F1082019680319105A9F71A +:1037800008959091DA01982B9093DA01089580952D +:103790009091DA0198239093DA0108951092DA015A +:1037A00008959091D901982B9093D901089580950F +:1037B0009091D90198239093D90108951092D9013D +:1037C00008959091D801982B9093D80108958095F1 +:1037D0009091D80198239093D80108951092D80120 +:1037E00008958093C70108951092C70108954091EC +:1037F0000E0150910F0120E030E080E0FA01E20F6D +:10380000F31F918191118F5F2F5F3F4F2F30310553 +:10381000A9F70895E0910E01F0910F018091DA016E +:103820008083E0910E01F0910F0180819091D90188 +:10383000892B8083E0910E01F0910F01808190919E +:10384000D801892B80839091C701992361F0E09181 +:103850000E01F0910F018081892B80830E94F71B5C +:1038600081111092C70180910E0190910F010C946B +:10387000FF1040E0009739F09C012150310982236C +:1038800093234F5FF7CF842F0895CF92DF92EF926B +:10389000FF920F931F936C01EE24FF24C114D104F7 +:1038A000E104F10421F46B017C0180E001C080E1BE +:1038B00033272F2D1E2D0D2D011511052105310545 +:1038C00019F0885F6801790197018601A4E03695B7 +:1038D000279517950795AA95D1F70115110521058B +:1038E000310519F08C5F6801790197018601F2E0DA +:1038F0003695279517950795FA95D1F70115110576 +:103900002105310519F08E5F68017901B701A60123 +:103910007695679557954795452B462B472B09F08C +:103920008F5F1F910F91FF90EF90DF90CF900895E0 +:103930008091F401843021F11092DC0120E488E1CF +:1039400090E00FB6F894A895809360000FBE209386 +:10395000600080E00E94FC0983B7817F846083BFA0 +:1039600083B7816083BF7894889583B78E7F83BF48 +:1039700088E10FB6F89480936000109260000FBE4B +:10398000089508950E94E2030E94F5030E94C11C5D +:103990000E94E90491E0811101C090E0892F08950F +:1039A0000E9493150E94F3100C94FC0982E084BDE0 +:1039B00093E095BD9AEF97BD80936E0008952FB761 +:1039C000F8948091DD019091DE01A091DF01B0912A +:1039D000E0012FBF0895CF92DF92EF92FF920F93F5 +:1039E0001F932FB7F8944091DD015091DE01609153 +:1039F000DF017091E0012FBF6A017B01EE24FF24FB +:103A00008C0120E030E0C016D106E206F30610F487 +:103A100041505109481B590BCA011F910F91FF904A +:103A2000EF90DF90CF9008951F920F920FB60F92F4 +:103A300011248F939F93AF93BF938091DD01909159 +:103A4000DE01A091DF01B091E0010196A11DB11D41 +:103A50008093DD019093DE01A093DF01B093E0013C +:103A6000BF91AF919F918F910F900FBE0F901F90BC +:103A700018950E94F90DF8942FEF87EA91E62150EE +:103A800080409040E1F700C0000087E090EBDC014F +:103A90008093FD019093FE01A093FF01B09300027B +:103AA0002CE088E190E00FB6F894A8958093600030 +:103AB0000FBE20936000FFCF0E94941D811102C0B1 +:103AC0000E947A1D0E949F1D8093DB010E94A71D0A +:103AD00090E09093EF018093EE0187FB882780F9B7 +:103AE00080930D010E94A31D682F70E080E090E09C +:103AF0000C9493196DEE7EEF80E090E00E94C52358 +:103B000060E082E090E00E94B32360E083E090E018 +:103B10000E94B32360E084E090E00E94B32360E061 +:103B200085E090E00C94B32380E090E00E94AD2308 +:103B300021E08D3E9E4F09F020E0822F089582E023 +:103B400090E00C94A52383E090E00C94A52384E0FE +:103B500090E00C94A523682F84E090E00C94B323AC +:103B60008091E30180FF0BC06091130185E0689FA5 +:103B7000B001112475956795759567952AC081FFE9 +:103B800009C06091130185E0689FB001112475950B +:103B900067951FC082FF07C06091130185E0689F91 +:103BA000B001112416C04091E4014423C9F0609192 +:103BB0001201461788F72091130185E0289F900194 +:103BC0001124429FC001439F900D112470E00E9478 +:103BD00077236038710540F46115710539F002C032 +:103BE00065E070E0862F08958FE7089581E00895DD +:103BF0008091E30180FF08C06091110170E075952C +:103C000067957595679521C081FF06C06091110188 +:103C100070E07595679519C082FF04C0609111012D +:103C200070E010C08091E4018823C1F06091100120 +:103C30008617A0F790911101989FC001112470E0A0 +:103C40000E9477236038710528F46115710521F011 +:103C5000862F08958FE7089581E0089561E070E070 +:103C6000F4CF803F21F40E94B01D819504C0813FB4 +:103C700029F40E94B01D8093E7010895823F21F44A +:103C80000E94B01D819504C0833F29F40E94B01D9D +:103C90008093E6010895893F19F40E94F81D05C03C +:103CA0008A3F31F40E94F81D81958093E8010895C0 +:103CB0008B3F21F40E94F81D819504C08C3F29F4AC +:103CC0000E94F81D8093E9010895843F21F48091BA +:103CD000E501816017C0853F21F48091E501826094 +:103CE00011C0863F21F48091E50184600BC0873FBD +:103CF00021F48091E501886005C0883F31F480910E +:103D0000E50180618093E50108958D3F21F4809164 +:103D1000E30181600BC08E3F21F48091E30182605A +:103D200005C08F3F29F48091E30184608093E30113 +:103D30000895803F39F48091E70187FF6CC01092AD +:103D4000E70169C0813F29F48091E7011816BCF3AF +:103D500062C09091E601823F29F497FF5CC0109207 +:103D6000E60159C0833F19F41916CCF354C0893FBA +:103D700041F48091E80118160CF04DC01092E80152 +:103D80004AC08A3F29F48091E80187FF44C0F6CFFA +:103D90008B3F39F48091E90187FF3DC01092E90122 +:103DA0003AC08C3F29F48091E9011816BCF333C066 +:103DB000843F21F48091E5018E7F17C0853F21F477 +:103DC0008091E5018D7F11C0863F21F48091E5014E +:103DD0008B7F0BC0873F21F48091E501877F05C071 +:103DE000883F31F48091E5018F7E8093E50113C017 +:103DF0008D3F21F48091E3018E7F0BC08E3F21F433 +:103E00008091E3018D7F05C08F3F29F48091E3010C +:103E10008B7F8093E3018091E60181110EC0809138 +:103E2000E70181110AC08091E801811106C08091EB +:103E3000E901811102C01092E401089585EE91E03C +:103E40000E940A110E94DF1C9093E2018093E1011D +:103E500008951F93CF93DF938091E1019091E20148 +:103E60000E94EB1C4091E401442321F020911401B5 +:103E700030E006C0209115015AE0259F90011124E1 +:103E80008217930708F482C08091E6011091E70140 +:103E9000D091E801C091E901811107C0111105C05D +:103EA000D11103C0CC2309F471C04F3F19F04F5F0B +:103EB0004093E401181624F40E94B01D8093E6019B +:103EC0008091E60187FF05C00E94B01D8195809317 +:103ED000E601111624F40E94B01D8093E701809141 +:103EE000E70187FF05C00E94B01D81958093E7011F +:103EF0006091E601662339F11091E701112319F170 +:103F0000772767FD7095872F972F0E94882223E3DC +:103F100033E343E35FE30E94EC220E945522609367 +:103F2000E601612F772767FD7095872F972F0E94F5 +:103F3000882223E333E343E35FE30E94EC220E9401 +:103F400055226093E7011D1624F40E94F81D80930A +:103F5000E8018091E80187FF05C00E94F81D819566 +:103F60008093E8011C1624F40E94F81D8093E90157 +:103F70008091E90187FF05C00E94F81D819580931B +:103F8000E901DF91CF911F910C941E1FDF91CF911A +:103F90001F910895E5EEF1E085E0DF011D928A951D +:103FA000E9F71092E4011092E3010895833081F162 +:103FB00028F4813059F08230D1F00895853009F429 +:103FC00049C0B8F1863009F456C008952091150112 +:103FD000862F90E0820F911D8F3F910520F4620F94 +:103FE0006093150108958FEF809315010895209136 +:103FF0001401862F90E0820F911D8F3F910520F4D0 +:10400000620F6093140108958FEF80931401089557 +:1040100020911301862F90E0820F911D8F3F910513 +:1040200020F4620F6093130108958FEF80931301C2 +:10403000089520911201862F90E0820F911D8F3FED +:10404000910520F4620F6093120108958FEF809321 +:104050001201089520911101862F90E0820F911D89 +:104060008F3F910520F4620F6093110108958FEF47 +:1040700080931101089520911001862F90E0820F06 +:10408000911D8F3F910520F4620F609310010895F8 +:104090008FEF809310010895833011F128F481305F +:1040A00049F0823091F00895853081F120F1863019 +:1040B000C1F1089580911501681720F4861B809343 +:1040C0001501089510921501089580911401681743 +:1040D00020F4861B80931401089510921401089512 +:1040E00080911301681720F4861B809313010895B3 +:1040F00010921301089580911201681720F4861B15 +:104100008093120108951092120108958091110177 +:10411000681720F4861B80931101089510921101F5 +:10412000089580911001681720F4861B8093100178 +:1041300008951092100108958D3109F43FC008F5DB +:10414000803109F485C070F4873009F456C018F442 +:104150008630D9F131C08B3009F4A5C08E3009F416 +:1041600066C02AC0863109F49EC020F4813109F46A +:1041700079C022C0893109F496C08B3109F44DC051 +:104180001BC0853309F487C048F4873209F483C023 +:1041900008F473C0893209F47EC00EC0833438F449 +:1041A0008A3308F068C0883309F47DC005C08334C1 +:1041B00009F471C0883499F080E008950E940F22BC +:1041C0000E94F3100E94FC096EC08091DB01817F88 +:1041D0008E7F8093DB0181E08093EB0108950E9444 +:1041E00093152FEF83ED90E3215080409040E1F74D +:1041F00000C000000E94391D56C09091DB01892F3C +:104200008095817080FB90F919F0966098601DC0D0 +:10421000997F977F9093DB0146C09091DB0191FBE2 +:10422000882780F921E0822780FB91F909C09091CD +:10423000DB0192FB882780F921E0822780FB92F93D +:104240009093DB01882379F191609093DB010895CD +:104250009091DB0193FB882780F921E0822780FB86 +:1042600093F9EECF0E94931580910D0191E089277B +:1042700080930D0118C027EC01C023EE280F61E0E8 +:1042800070E080E090E004C0660F771F881F991FE0 +:104290002A95D2F704C061E070E080E090E00E94CF +:1042A00093190E94931581E0089580E0089580E0BD +:1042B0000895CF93C82F8091EB01813079F018F0E9 +:1042C0008230D1F184C0A0910E01B0910F018C9188 +:1042D000813169F0823209F07CC009C0A0910E01E1 +:1042E000B0910F018C91813111F0823249F48C2F01 +:1042F0000E94552181111DC08C2F0E949C201AC044 +:104300008C2F0E945721811114C0C43179F048F4D8 +:10431000CB3079F0C03109F060C082E08093EB01CE +:1043200008C0C93219F0C83321F057C01092EB0110 +:1043300054C081E0817053C0C93289F118F5C4318D +:1043400071F1A8F4C73009F046C08AE080931501E6 +:1043500094E19093140193E09093130180931201E0 +:1043600088E08093110188E28093100134C0CE511F +:10437000C63088F5EC2FF0E0E65DFE4F808180933B +:10438000EA0129C0CE34E9F020F4CB3421F56AE00B +:1043900013C0C13579F0C235F1F461E00DC08091F0 +:1043A000EA01882319F01092EA0115C081E0809398 +:1043B000EB0115C061E006C08091EA010E94D61FA2 +:1043C0000AC06AE08091EA010E944C2004C0109269 +:1043D000EB0180E004C081E002C080E0ABCFCF9170 +:1043E0000895E1E8F0E080818860808380818160C9 +:1043F00080838FB7F89493E09093890090ED909329 +:1044000088008FBF0895EFE6F0E0808182608083AE +:104410000895EFE6F0E080818D7F80830895EFE6D8 +:10442000F0E0808192E08927808308951F920F92A7 +:104430000FB60F9211242F933F934F935F936F9377 +:104440007F938F939F93AF93BF93EF93FF9380914D +:10445000EC019091ED0101969093ED018093EC01B8 +:10446000811103C082E00E94FC09E091ED01E69514 +:10447000E695F0E0E552FA4FE4918091EC018E135D +:1044800003C080E00E94FC09FF91EF91BF91AF91C2 +:104490009F918F917F916F915F914F913F912F915C +:1044A0000F900FBE0F901F90189504D06894B11113 +:1044B0008DC0089570D088F09F5790F0B92F99273C +:1044C000B751A0F0D1F0660F771F881F991F1AF01F +:1044D000BA95C9F712C0B13081F077D0B1E0089534 +:1044E00074C0672F782F8827B85F39F0B93FCCF3B5 +:1044F000869577956795B395D9F73EF49095809515 +:10450000709561957F4F8F4F9F4F0895E89409C034 +:1045100097FB3EF490958095709561957F4F8F4FF6 +:104520009F4F9923A9F0F92F96E9BB279395F6950C +:10453000879577956795B795F111F8CFFAF4BB0F8A +:1045400011F460FF1BC06F5F7F4F8F4F9F4F16C0EE +:10455000882311F096E911C0772321F09EE8872F78 +:10456000762F05C0662371F096E8862F70E060E034 +:104570002AF09A95660F771F881FDAF7880F9695AD +:10458000879597F9089557FD9058440F551F59F096 +:104590005F3F71F04795880F97FB991F61F09F3F30 +:1045A00079F087950895121613061406551FF2CF59 +:1045B0004695F1DF08C0161617061806991FF1CFA9 +:1045C00086957105610508940895E894BB276627D0 +:1045D0007727CB0197F908950BD078C069D028F0E0 +:1045E0006ED018F0952309F05AC05FC01124EECFA9 +:1045F000CADFA0F3959FD1F3950F50E0551F629F3E +:10460000F001729FBB27F00DB11D639FAA27F00D2B +:10461000B11DAA1F649F6627B00DA11D661F829F52 +:104620002227B00DA11D621F739FB00DA11D621F37 +:10463000839FA00D611D221F749F3327A00D611D54 +:10464000231F849F600D211D822F762F6A2F112436 +:104650009F5750408AF0E1F088234AF0EE0FFF1F89 +:10466000BB1F661F771F881F91505040A9F79E3FC0 +:10467000510570F014C0AACF5F3FECF3983EDCF315 +:10468000869577956795B795F795E7959F5FC1F7FD +:10469000FE2B880F911D9695879597F9089597F9A8 +:1046A0009F6780E870E060E008959FEF80EC0895D8 +:1046B00000240A9416161706180609060895002401 +:1046C0000A9412161306140605060895092E03947B +:1046D000000C11F4882352F0BB0F40F4BF2B11F4EF +:1046E00060FF04C06F5F7F4F8F4F9F4F089597FB10 +:1046F000072E16F4009407D077FD09D00E9491236D +:1047000007FC05D03EF4909581959F4F08957095D4 +:1047100061957F4F0895EE0FFF1F0590F491E02DF6 +:104720000994AA1BBB1B51E107C0AA1FBB1FA617F8 +:10473000B70710F0A61BB70B881F991F5A95A9F74A +:1047400080959095BC01CD010895F999FECF92BD59 +:1047500081BDF89A992780B50895A8E1B0E042E0BC +:1047600050E00C94CD23262FF999FECF92BD81BD48 +:10477000F89A019700B4021639F01FBA20BD0FB69F +:10478000F894FA9AF99A0FBE08950196272F0E947D +:10479000B4230C94B323DC01CB01FC01F999FECFC7 +:1047A00006C0F2BDE1BDF89A319600B40D924150B9 +:0A47B0005040B8F70895F894FFCFC9 +:1047BA000220FE098B0A680A340A010A0101C801AB +:1047CA0028080A03140A404D36399B054E05180578 +:1047DA00DF0472048B04A404BD0401020304050669 +:0447EA0007080900B3 +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/default/default.png b/keyboards/ergodox_ez/keymaps/default/default.png new file mode 100644 index 000000000..6575f7b5e Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/default/default.png differ diff --git a/keyboards/ergodox_ez/keymaps/default/default_highres.png b/keyboards/ergodox_ez/keymaps/default/default_highres.png new file mode 100644 index 000000000..7d9f045f4 Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/default/default_highres.png differ diff --git a/keyboards/ergodox_ez/keymaps/default/keymap.c b/keyboards/ergodox_ez/keymaps/default/keymap.c new file mode 100644 index 000000000..b48a54a43 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/default/keymap.c @@ -0,0 +1,182 @@ +#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|' / Cmd | + * |--------+------+------+------+------+------| 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),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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * |Version | 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 + M(0), 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) { + SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); + } + 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/keyboards/ergodox_ez/keymaps/default/readme.md b/keyboards/ergodox_ez/keymaps/default/readme.md new file mode 100644 index 000000000..8f6dba45e --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/default/readme.md @@ -0,0 +1,10 @@ +# ErgoDox EZ Default Configuration + +## Changelog + +* Feb 2, 2016 (V1.1): + * Made the right-hand quote key double as Cmd/Win on hold. So you get ' when you tap it, " when you tap it with Shift, and Cmd or Win when you hold it. You can then use it as a modifier, or just press and hold it for a moment (and then let go) to send a single Cmd or Win keystroke (handy for opening the Start menu on Windows). + +This is what we ship with out of the factory. :) The image says it all: + +![Default](default_highres.png) diff --git a/keyboards/ergodox_ez/keymaps/default_osx/compiled.hex b/keyboards/ergodox_ez/keymaps/default_osx/compiled.hex new file mode 100644 index 000000000..cdd9b9704 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/default_osx/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947A020C94BE020C94BE020C94BE02B4 +:100010000C94BE020C94BE020C94BE020C94BE0260 +:100020000C94BE020C94BE020C94620D0C94340E1F +:100030000C94BE020C94BE020C94BE020C94BE0240 +:100040000C94BE020C943E220C94BE020C94BE0290 +:100050000C94BE020C94D11B0C94BE020C94BE02F4 +:100060000C94BE020C94BE020C94BE020C94BE0210 +:100070000C94BE020C94BE020C94BE020C94BE0200 +:100080000C94BE020C94BE020C94BE020C94BE02F0 +:100090000C94BE020C94BE020C94BE020C94BE02E0 +:1000A0000C94BE020C94BE020C94BE02A10EC30EB0 +:1000B000B10FC30EB10F080F2B0FB10F800F930FAD +:1000C0006212621291129112C712E71218141814D8 +:1000D000F2121814A213A2130914181418141214EB +:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300 +:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0 +:10010000C113CE13D513DC13E6130000F0A12E00AB +:100110004C002A00E100354100001E0014000400DC +:100120001D7134004D001F001A0016001B00E10471 +:100130002A00200008000700060050002C002100C3 +:100140001500090019004F004A00220017000A009C +:10015000050000006574500001540000007F00009D +:10016000E3004F000154000000770000E20023008C +:100170001C000B00110000002971240018000D0064 +:10018000100052004B0025000C000E0036005100FC +:100190002800260012000F0037002F002B00270038 +:1001A00013003342387130004E002D003100E3005F +:1001B000E500C10000000100010001000100010094 +:1001C00000003A001E0220022202010001003B0052 +:1001D0001F0221022302010001003C002F0226021F +:1001E0002F00010001003D00300227023000010015 +:1001F00001003E003102350035020000010001001F +:1002000001000000010000000100010001000000E9 +:100210000100000001003F005200510024020000D4 +:1002200001004000240021001E00010001004100E7 +:10023000250022001F003700010042002600230095 +:10024000200027000100430025022E0231002E006D +:100250000100440045000100010001000000010010 +:100260000100010001000100000001000100010087 +:1002700001000100010001000100F2000100010085 +:1002800001000100F000F1000100F4000100010094 +:100290000100F3000100F500010001000100010070 +:1002A0000100000001000100010000000100000049 +:1002B0000100010001000000010000000100010038 +:1002C0000100010001000000010001000100010027 +:1002D0000100A9000100010001000100AC00AA001A +:1002E000B600010001000100AB00A8000100010000 +:1002F0000100010001000100010001000100AE0049 +:1003000001000100000016034500720067006F0045 +:1003100044006F007800200045005A0000001603DA +:100320004500720067006F0044006F0078002000F5 +:1003300045005A0000000403090409026D0004018D +:1003400000A0FA09040000010301010009211101C4 +:100350000001223F000705810308000A090401008B +:100360000103010200092111010001224D000705CE +:10037000820308000A0904020001030000000921A9 +:10038000110100012236000705830308000A090451 +:1003900003000103000000092111010001223900BE +:1003A000070584031000011201100100000008ED90 +:1003B000FE071301000102000105010906A1010564 +:1003C0000719E029E7150025019508750181020547 +:1003D000081901290595057501910295017503918B +:1003E0000105071900297715002501957875018108 +:1003F00002C005010980A101850216010026B7008F +:100400001A01002AB700751095018100C0050C097A +:1004100001A1018503160100269C021A01002A9CF5 +:1004200002751095018100C005010902A1010901B1 +:10043000A10005091901290515002501950575017A +:10044000810295017503810105010930093115818A +:10045000257F95027508810609381581257F95014C +:1004600075088106050C0A38021581257F950175EE +:10047000088106C0C005010906A101050719E02988 +:10048000E715002501950875018102950175088120 +:100490000105081901290595057501910295017558 +:1004A0000391010507190029FF150025FF95067521 +:1004B000088100C0000000000000000000000001F2 +:1004C0000204060A0F17202C3A4A5D71879DB3C7B4 +:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF +:1004E0003A2C20170F0A0604020100000000000049 +:1004F0000000000011241FBECFEFDAE0DEBFCDBF49 +:1005000004B603FE24C08091FB019091FC01A091F0 +:10051000FD01B091FE018730904BA740B04BB9F47C +:100520001092FB011092FC011092FD011092FE014D +:1005300014BE84B7877F84BF88E10FB6F894809398 +:100540006000109260000FBEE0E0FFE3099511E04B +:10055000A0E0B1E0EAE0F8E402C005900D92A43317 +:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0 +:10057000B107E1F70E94A60A0C9403240C94000032 +:100580001092B9008AE08093B800089594EA90939D +:10059000BC009091BC0097FFFCCF9091B900987F70 +:1005A000983021F0903111F081E008958093BB00E4 +:1005B00084E88093BC008091BC0087FFFCCF8091D1 +:1005C000B900887F883111F0803471F780E0089598 +:1005D00084E98093BC008091BC0084FDFCCF089529 +:1005E0008093BB0084E88093BC008091BC0087FFAF +:1005F000FCCF9091B900987F81E0983209F480E0B7 +:10060000089584E88093BC008091BC0087FFFCCFF4 +:100610008091BB00089580910101811115C080E493 +:100620000E94C6028093010181110CC082E10E94E8 +:10063000F00280930101811105C08FEF0E94F0024A +:10064000809301010E94E80284B1807F84B985B162 +:10065000807F85B98AB1837F8AB98BB1837F8BB95B +:100660003E98469808950E94C604809301010E9416 +:100670000B0380B38C7080BB81B3836F81BBA5E318 +:10068000B1E0E3E4F1E08EE08E0F11921D928E1343 +:10069000FCCF0C94B004BF92CF92DF92EF92FF9206 +:1006A0000F931F93CF93DF9380910101882379F0FB +:1006B000809134018F5F80933401811108C00E94C2 +:1006C000C60480930101811102C00E94580405E311 +:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407 +:1006E000E394F12CC730D10500F58091010181110F +:1006F00064C080E40E94C60280930101811112C08F +:1007000082E10E94F0028093010181110BC0C701B8 +:100710000C2E01C0880F0A94EAF780950E94F0021F +:10072000809301010E94E80248C0CA30A1F028F479 +:10073000C83059F0C93061F005C0CC3089F070F094 +:10074000CD3089F0209A289810C0219A29980DC0A0 +:10075000229A2A980AC0239A2B9807C0529A01C05D +:10076000539A5B9802C03E9A469890EA9A95F1F7A0 +:100770009FB1799902C082E001C080E091709D250F +:10078000982B7C9902C084E001C080E0892B7D9980 +:1007900002C038E001C030E0832B7E9902C020E126 +:1007A00001C020E0822B9FB19095991F9927991F36 +:1007B0009295990F907E892B0FC080910101811134 +:1007C00049C080E40E94C60280930101882379F128 +:1007D000B12C0E94E8028B2DF8019081981719F036 +:1007E0008083C09200010E940B0321960F5F1F4F70 +:1007F000CE30D10509F076CF80910001882361F1D8 +:10080000815080930001882339F08FE99FE00197A0 +:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F +:10082000CF01825F91919D938E13FCCF15C083E120 +:100830000E94F002809301018111CACF81E40E94DD +:10084000C602809301018111C3CF0E940103B82E1B +:10085000B094BFCF80E0C0CF0E94560481E0DF910A +:10086000CF911F910F91FF90EF90DF90CF90BF90AD +:100870000895E82FF0E0ED5BFE4F80810895089524 +:100880000F931F93CF93DF93C3E4D1E010E00C2FBD +:10089000025F899190E00E94F71A180F0C13F9CFAC +:1008A000812FDF91CF911F910F9108950C94260510 +:1008B00056985E9825982D9826982E9827982F98C8 +:1008C0008FEF90E0909389008093880090938B0045 +:1008D00080938A0090938D0080938C00259A2D9AA6 +:1008E0002FEF80E792E0215080409040E1F700C078 +:1008F0000000269A2E9A2FEF80E792E02150804048 +:100900009040E1F700C00000279A2F9A2FEF80E770 +:1009100092E0215080409040E1F700C0000025980F +:100920002D982FEF80E792E0215080409040E1F732 +:1009300000C0000026982E982FEF80E792E021500B +:1009400080409040E1F700C0000027982F9856980B +:100950005E9825982D9826982E9827982F98089578 +:1009600089EA8093800089E08093810024982C9804 +:100970003F988AB18F748AB96E98479A8BB1806B11 +:100980008BB9769A0E9458040C94250580E28093D6 +:1009900001018091510181110EC00E94C00281E0CD +:1009A000809351012FEF83ED90E3215080409040E0 +:1009B000E1F700C0000080E40E94C60280930101BC +:1009C00081112EC00E94F00280930101811128C084 +:1009D0000E94F00280930101811122C08FE30E94E6 +:1009E000F0028093010181111BC00E94E80280E4A3 +:1009F0000E94C60280930101811112C08CE00E9406 +:100A0000F0028093010181110BC00E94F0028093DB +:100A10000101811105C08FE30E94F0028093010162 +:100A20000E94E80280910101089561110BC0FC0150 +:100A30008281882321F085EE0E94061103C085EE95 +:100A40000E94CE1180E090E0089508956091BD016C +:100A50007091BE018091BF019091C0010E94031B63 +:100A600056985E9825982D9826982E9827982F9816 +:100A7000813019F0823021F00895259A2D9A089539 +:100A8000269A2E9A089581E0089581E008950C94A5 +:100A9000450508950F931F93CF93DF938C01FC01BD +:100AA000C081D181CE010E947C19BE010E94F30554 +:100AB000EC01B8010E944705882309F48DC0F801B4 +:100AC0008281882309F44AC080915D0181111FC091 +:100AD000C431F0E5DF0709F051C00E94490581E00B +:100AE00080935D010E949B1B90935C0180935B014E +:100AF0001092540110925601109255011092580113 +:100B00001092570110925A011092590165C08091BC +:100B10005B0190915C010E94A71B883C910570F4D9 +:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB +:100B3000D183C0838F5F809354014EC0C43880E559 +:100B4000D80721F0C538D04501F13AC0F8018281BB +:100B5000882341F01092520182E01EC0C438E0E5C3 +:100B6000DE0759F580915201811106C086E20E948C +:100B7000061186E20E94CE1182E01CC0C438F0E566 +:100B8000DF0741F3C538D045D9F4F80182818823C5 +:100B900031F01092530180E20E941D121DC080911D +:100BA0005301811106C087E20E94061187E20E946C +:100BB000CE1180E20E9424120FC0C538D04529F31F +:100BC00081E08093520180935301C801DF91CF915E +:100BD0001F910F910C94430580E0DF91CF911F91FD +:100BE0000F910895089596E0799FF001112494E5FE +:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F +:100C0000E25FFE4F859194910895880F991FFC0132 +:100C1000E657F040859194910895880F991FFC0143 +:100C2000E65FFE4F8591949108950F931F93CF93A4 +:100C3000DF93EC01811520E3920750F5C11580E2A6 +:100C4000D80708F0C3C0CB3BD10590F4C83AD10512 +:100C500008F06AC0C53AD10508F05BC0C430D105C0 +:100C600008F0D0C1219709F0CAC101E010E00AC222 +:100C7000CF3FD10511F008F0C5C1C03FD10508F044 +:100C8000A2C0CE01805E9109089708F4BBC1B7C12C +:100C9000C13090E5D90709F4A2C020F5C0318FE436 +:100CA000D80770F4C11590E4D90708F094C0C115B5 +:100CB00021E3D20708F0A3C1DD278E01106CE2C149 +:100CC000C115D04509F09BC10E9483148FEF94E3B6 +:100CD0002CE0815090402040E1F700C000000E94CD +:100CE000F61BD0C1C11597E5D90758F4C03121E5ED +:100CF000D20708F01CC1C43180E5D80708F475C0DC +:100D00007EC1CE0190578115904108F078C1DF7007 +:100D100073C1C53AD10509F477C1C63AD10509F0C6 +:100D200076C102E810E4AEC1C83AD10509F472C137 +:100D3000C93AD10509F471C1CA3AD10509F470C1A3 +:100D4000CB3AD10509F46FC1CC3AD10509F46EC193 +:100D5000CD3AD10509F46DC1C03BD10509F46CC190 +:100D6000CE3AD10509F46BC1CF3AD10509F46AC175 +:100D7000C13BD10509F469C1C23BD10509F468C181 +:100D8000C33BD10509F467C1C43BD10509F466C171 +:100D9000C53BD10509F465C1C63BD10509F464C161 +:100DA000C73BD10509F463C1C83BD10509F462C151 +:100DB000C93BD10509F461C1CA3BD10509F460C141 +:100DC00000E014E45FC18E0110655CC1CE019F702C +:100DD0000E940D0658C1DF708E01106A53C18091C8 +:100DE000DA0181608093DA014DC10E949B1D81115F +:100DF00002C00E94811D0E94B81D90E09093FB01EB +:100E00008093FA01C23080E5D80721F48091FA017D +:100E1000816086C0C43090E5D90721F48091FA0141 +:100E200082607EC0C63020E5D20721F48091FA01AD +:100E3000846076C0C83080E5D80719F48091FA0143 +:100E400027C0CA3090E5D90721F48091FA0180616A +:100E500067C0CC3020E5D20721F48091FA0180628E +:100E60005FC0CE3080E5D80721F48091FA0180641C +:100E700057C0C03190E5D90721F48091FA0180680C +:100E80004FC0C23120E5D20729F48091FA01846075 +:100E9000886046C0C33080E5D80721F48091FA010C +:100EA0008E7F3EC0C53090E5D90721F48091FA01CC +:100EB0008D7F36C0C73020E5D20721F48091FA013A +:100EC0008B7F2EC0C93080E5D80719F48091FA01D4 +:100ED00026C0CB3090E5D90721F48091FA018F7EAE +:100EE0001FC0CD3020E5D20721F48091FA018F7D1B +:100EF00017C0CF3080E5D80721F48091FA018F7BAD +:100F00000FC0C13190E5D90721F48091FA018F77A4 +:100F100007C0C331D04531F48091FA018B7F877FC0 +:100F20008093FA018091FA010E94BC1DABC08D2F05 +:100F300099278F70992781309105D9F49E012370EC +:100F4000332702C0880F991F2A95E2F79C688E010B +:100F500044E0000F111F4A95E1F700271370802B22 +:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA +:100F70002FC08230910531F4DC2FCC278E01016F18 +:100F8000106A80C08330910569F4CE01837099277F +:100F900001E010E002C0000F111F8A95E2F7C801BE +:100FA0009C680FC084309105B9F4CE0183709927F5 +:100FB00001E010E002C0000F111F8A95E2F7C8019E +:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029 +:100FD0008C010C2B1D2B56C08530910531F4DC2F74 +:100FE000CC278E01046F106A4DC0069709F04AC0E5 +:100FF000CF71DD27DC2FCC278E01106243C000E0CB +:1010000010E040C08E013EC001E810E43BC003E8A0 +:1010100010E438C002EE14E435C009EE14E432C026 +:101020000AEE14E42FC005EB14E42CC006EB14E424 +:1010300029C007EB14E426C00CEC14E423C00DEC2B +:1010400014E420C003E815E41DC00AE815E41AC042 +:1010500002E915E417C004E915E414C001E216E43E +:1010600011C003E216E40EC004E216E40BC005E270 +:1010700016E408C006E216E405C007E216E402C062 +:101080000AE216E4C801DF91CF911F910F910895F4 +:1010900096E0799FF001112494E5899FE00DF11D00 +:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149 +:1010B0009491803E9105E0F4803C910558F5813390 +:1010C000910509F46FC048F48932910509F463C0B1 +:1010D0008A32910509F46DC072C089339105E9F037 +:1010E00082389105D1F08533910509F44DC067C070 +:1010F000833E910581F138F4803E9105B9F0823E3E +:101100009105D9F05CC0863E910561F1873E91055D +:10111000A1F155C00E94050608952091FA0120FD15 +:1011200002C021FF4CC080EE90E049C08091FA01DE +:1011300080FFF9CF89E390E042C08091FA0182FFFD +:101140000EC08091FA0184FF03C080E090E037C0B8 +:1011500083EE90E034C08091FA0182FFF2CF82EEFC +:1011600090E02DC08091FA0183FF0BC08091FA01BD +:1011700084FDEBCF87EE90E022C08091FA0183FFDF +:10118000F5CF86EE90E01BC08091FA0185FF07C085 +:1011900089E290E014C08091FA0185FFF9CF85E3E0 +:1011A00090E00DC08091FA0186FF07C08AE290E0CE +:1011B00006C08091FA0186FFF9CF81E390E00E949A +:1011C0001506089508950C94E20880916E01089523 +:1011D000CF93DF9300D01F92CDB7DEB79C018091F3 +:1011E000F101843019F593E099833B832A8390932E +:1011F000E9008FEF9091E800815095FD06C095EDD4 +:101200009A95F1F700008111F5CF8091E80085FFF4 +:101210000DC040E050E063E070E0CE0101960E9416 +:10122000520B8091E8008E778093E8000F900F902A +:101230000F90DF91CF910895CF93DF9300D01F924D +:10124000CDB7DEB72091F101243021F522E02983CA +:101250009B838A8383E08093E9008FEF9091E8007D +:10126000815095FD06C095ED9A95F1F7000081112A +:10127000F5CF8091E80085FF0DC040E050E063E0CD +:1012800070E0CE0101960E94520B8091E8008E77AB +:101290008093E8000F900F900F90DF91CF91089509 +:1012A0002091F1012430F1F422E02093E9002FEFA6 +:1012B0003091E800215035FD06C035ED3A95F1F743 +:1012C00000002111F5CF2091E80025FF0BC040E080 +:1012D00050E065E070E00E94520B8091E8008E774C +:1012E0008093E8000895CF93DF93EC019091F10192 +:1012F000943009F046C080910C018823D9F0809188 +:101300000D018823B9F09093E9008FEF9091E800E8 +:10131000815095FD06C095E19A95F1F70000811185 +:10132000F5CF8091E80085FF2CC040E050E060E1FF +:1013300070E017C081E08093E9008FEF9091E800A2 +:10134000815095FD06C095ED9A95F1F70000811149 +:10135000F5CF8091E80085FF14C040E050E068E0E0 +:1013600070E0CE010E94520B8091E8008E7780934E +:10137000E80080E1FE01AEE5B1E001900D928A95B2 +:10138000E1F7DF91CF9108958091F001811109C0BB +:101390000E94E70C0E94440D8091E20084608093DB +:1013A000E20008951092F001089508950C942B2204 +:1013B0000E948C1B0E9431220E94EA0F0C94E308C9 +:1013C00042E061EC81E00E94610C42E061EC82E06D +:1013D0000E94610C42E061EC83E00E94610C42E1FA +:1013E00061EC84E00C94610C8091F301833009F48A +:1013F00055C030F4813071F0823009F48EC0089508 +:101400008A3009F47AC08B3009F460C0893009F061 +:101410009CC020C08091F201813A09F096C0809171 +:10142000E800877F8093E8008091F6019091F701B2 +:10143000892B21F460E18EE591E003C060E080E05B +:1014400090E070E00E949D0B8091E8008B77809384 +:10145000E80008958091F201813209F076C0809110 +:10146000F6019091F701009719F0039709F06DC00C +:101470008091E800877F8093E8008091E80082FDFA +:1014800005C08091F1018111F8CF5FC08091F1001A +:1014900080936E018091E8008B7753C08091F201B8 +:1014A000813A09F052C08091F6019091F701892BA1 +:1014B00009F04BC08091E800877F8093E80080911D +:1014C000E80080FFFCCF80910C0136C08091F201D2 +:1014D0008132D9F58091F6019091F701892BA9F518 +:1014E0008091E800877F8093E8000E94960C8091AD +:1014F000F40180930C010C9483148091F2018132E9 +:1015000021F58091E800877F8093E8000E94960C87 +:101510008091F50180936F0108958091F201813AE5 +:10152000A1F48091E800877F8093E8008091E80033 +:1015300080FFFCCF80916F018093F1008091E800E3 +:101540008E778093E8000C94960C089584B7877F7B +:1015500084BF88E10FB6F894809360001092600019 +:101560000FBE90E080E80FB6F894809361009093EE +:1015700061000FBE0E9439100E94E70C0E94440DCA +:101580008091E20084608093E20078940E94CA0F08 +:101590000E943B1082E091E00E94E50F0E94192218 +:1015A0008091F101853069F40E94531B8091EF0115 +:1015B0008823B1F30E947E1B882391F30E943C0B89 +:1015C000EFCF0E944110ECCF292F33272330310574 +:1015D000C9F064F42130310581F02230310509F081 +:1015E00043C08DE690E02AE333E042C0213231056A +:1015F000F1F02232310541F137C082E190E027EA73 +:1016000033E036C099278130910541F08230910551 +:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4 +:1016200002C0E6E0F3E0849190E09F0121C06430C5 +:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5 +:10164000318189E090E014C0643070F470E0FB01F7 +:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47 +:10166000FE4F808190E004C080E090E020E030E018 +:10167000FA0131832083089580E189BD82E189BD2B +:1016800009B400FEFDCF8091D8008F7D8093D800F3 +:101690008091E00082608093E0008091E00081FD15 +:1016A000FCCF0895CF92DF92EF92FF920F931F939A +:1016B000CF93DF93EC018B016A010E94B50C81117D +:1016C00033C0C114D10439F0F60180819181081B27 +:1016D000190BC80FD91FE12CF12C0115110519F1B7 +:1016E0008091E80085FD16C08091E8008E77809398 +:1016F000E800C114D10449F0F60180819181E80E1F +:10170000F91EF182E08285E00FC00E94B50C8823AB +:1017100021F30AC089918093F10001501109FFEF74 +:10172000EF1AFF0ADACF80E0DF91CF911F910F917E +:10173000FF90EF90DF90CF9008952091F8013091C5 +:10174000F9012617370748F06115710539F4209122 +:10175000E8002E772093E80001C0B90140E0611550 +:101760007105A9F12091F101222309F443C025302C +:1017700009F442C02091E80023FD40C02091E80018 +:1017800022FD32C02091E80020FFE9CF4091F30014 +:101790002091F20030E0342BFC01CF01611571057E +:1017A00059F02830310540F481918093F100615067 +:1017B00071092F5F3F4FF1CF41E02830310509F02B +:1017C00040E02091E8002E772093E800C8CF411137 +:1017D000C9CF0AC08091F101882361F0853061F0A2 +:1017E0008091E80083FD0AC08091E80082FFF2CF7B +:1017F00080E0089582E0089583E0089581E00895EF +:101800002091F8013091F9012617370748F061154A +:10181000710539F42091E8002E772093E80001C08B +:10182000B901FC0120E06115710591F18091F10190 +:10183000882309F440C0853009F43FC08091E80056 +:1018400083FD3DC08091E80082FD2FC08091E800BB +:1018500080FFE9CF2091F3008091F20090E0922B7D +:101860006115710559F08830910540F42491209359 +:10187000F1003196615071090196F2CF21E008978D +:1018800009F020E08091E8008E778093E800CBCFCC +:101890002111CCCF0AC08091F101882361F08530FD +:1018A00061F08091E80083FD0AC08091E80082FF2A +:1018B000F2CF80E0089582E0089583E0089581E00A +:1018C0000895982F973058F59093E900981739F0BC +:1018D0007091EC002091ED005091F00003C0242F96 +:1018E000762F50E021FF19C03091EB003E7F3093FE +:1018F000EB003091ED003D7F3093ED003091EB0037 +:1019000031603093EB007093EC002093ED00509326 +:10191000F0002091EE0027FF07C09F5FD3CF8F70AC +:101920008093E90081E0089580E008958091F201BC +:1019300087FF11C08091E80082FD05C08091F10110 +:101940008111F8CF11C08091E8008B770BC0809196 +:10195000F101882349F08091E80080FFF8CF809161 +:10196000E8008E778093E80008952091E40030919C +:10197000E50095E64091EC00842F817040FF22C085 +:101980008091E80080FD1CC08091F101882391F0D6 +:10199000853091F08091EB0085FD10C04091E4000E +:1019A0005091E5004217530729F39A01915011F71E +:1019B00084E0089582E0089583E0089581E0089529 +:1019C00080E008954091E80042FFDECF08950E9434 +:1019D000550D0E945D0DE0EEF0E080818160808316 +:1019E000E8EDF0E080818F77808319BCA7EDB0E04F +:1019F0008C918E7F8C9380818F7E80831092F001FA +:101A000008950F931F93CF93DF930E94550D0E946B +:101A10005D0DC8EDD0E088818F77888388818068EC +:101A2000888388818F7D888319BC1092F101109280 +:101A3000ED011092EF011092EE0100EE10E0F801BE +:101A400080818B7F808388818160888342E060E031 +:101A500080E00E94610CE1EEF0E080818E7F808367 +:101A6000E2EEF0E080818160808380818860808305 +:101A7000F80180818E7F8083888180618883DF91F7 +:101A8000CF911F910F910895E8EDF0E080818F7E56 +:101A90008083E7EDF0E080818160808384E082BF15 +:101AA00081E08093F0010C94010DE8EDF0E080817D +:101AB0008E7F80831092E20008951092DA001092D7 +:101AC000E10008951F920F920FB60F9211242F93E9 +:101AD0003F934F935F936F937F938F939F93AF93B6 +:101AE000BF93EF93FF938091E10082FF0BC0809141 +:101AF000E20082FF07C08091E1008B7F8093E100CC +:101B00000E94C90F8091DA0080FF1FC08091D80029 +:101B100080FF1BC08091DA008E7F8093DA00809175 +:101B2000D90080FF0DC080E189BD82E189BD09B483 +:101B300000FEFDCF81E08093F1010E94C40905C041 +:101B400019BC1092F1010E94D2098091E10080FF3E +:101B500019C08091E20080FF15C08091E2008E7F65 +:101B60008093E2008091E20080618093E2008091A6 +:101B7000D80080628093D80019BC85E08093F10181 +:101B80000E94D6098091E10084FF30C08091E2007C +:101B900084FF2CC080E189BD82E189BD09B400FECB +:101BA000FDCF8091D8008F7D8093D8008091E10097 +:101BB0008F7E8093E1008091E2008F7E8093E2002F +:101BC0008091E20081608093E2008091ED018823A2 +:101BD00011F084E007C08091E30087FD02C081E03E +:101BE00001C083E08093F1010E94D8098091E10057 +:101BF00083FF29C08091E20083FF25C08091E1002E +:101C0000877F8093E10082E08093F1011092ED01E3 +:101C10008091E1008E7F8093E1008091E2008E7FD1 +:101C20008093E2008091E20080618093E20042E0D4 +:101C300060E080E00E94610C8091F00088608093F9 +:101C4000F0000E94D509FF91EF91BF91AF919F9154 +:101C50008F917F916F915F914F913F912F910F9055 +:101C60000FBE0F901F9018951F920F920FB60F92F4 +:101C700011242F933F934F935F936F937F938F9391 +:101C80009F93AF93BF93CF93DF93EF93FF93C09155 +:101C9000E900CF708091EC00D82FD17080FDD0E8A2 +:101CA0001092E9008091F000877F8093F000789493 +:101CB0000E94780E1092E9008091F0008860809375 +:101CC000F000CD2BCF70C093E900FF91EF91DF9131 +:101CD000CF91BF91AF919F918F917F916F915F91C4 +:101CE0004F913F912F910F900FBE0F901F9018951D +:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3 +:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115 +:101D1000F10091938E13FBCF0E94F4098091E800AB +:101D200083FF1FC18091F2019091F301492F50E090 +:101D30004A30510508F015C1FA01EA5AFF4F0C94D8 +:101D4000B323803881F0823809F00BC18091F6010D +:101D50008F708093E9008091EB0085FB882780F9E4 +:101D60001092E90006C08091EE019091EF0191116F +:101D700082609091E800977F9093E8008093F10053 +:101D80001092F100C8C0282F2D7F09F0EAC08823E7 +:101D900019F0823061F0E5C08091F401813009F0E2 +:101DA000E0C0933009F080E08093EF012BC0809178 +:101DB000F401811127C08091F6018F7009F4D1C020 +:101DC0008093E9002091EB0020FF1CC0933021F4A8 +:101DD0008091EB00806214C09091EB009061909331 +:101DE000EB0021E030E0A90102C0440F551F8A95A5 +:101DF000E2F74093EA001092EA008091EB008860DD +:101E00008093EB001092E9008091E800877F86C004 +:101E10008111A7C01091F4011F778091E3008078B1 +:101E2000812B8093E3008091E800877F8093E80016 +:101E30000E94960C8091E80080FFFCCF8091E30027 +:101E400080688093E300111102C082E001C083E04A +:101E50008093F10186C08058823008F082C0809162 +:101E6000F4019091F5018C3D53E0950779F583E0FD +:101E70008A838AE289834FB7F894DE01139620E0C3 +:101E80003EE051E2E32FF0E050935700E49120FF51 +:101E900003C0E295EF703F5FEF708E2F90E0EA3065 +:101EA00010F0C79601C0C0968D939D932F5F24318B +:101EB00049F74FBF8091E800877F8093E8006AE28E +:101EC00070E0CE0101960E949D0B14C0AE014F5FE1 +:101ED0005F4F6091F6010E94E40ABC01009709F48B +:101EE00040C09091E800977F9093E80089819A81A3 +:101EF0000E94000C8091E8008B778093E80031C04D +:101F0000803879F58091E800877F8093E8008091A0 +:101F1000ED018093F1008091E8008E778093E800D6 +:101F20000E94960C1EC081111CC09091F401923049 +:101F3000C0F48091E800877F8093E8009093ED01E2 +:101F40000E94960C8091ED01811106C08091E30002 +:101F500087FD02C081E001C084E08093F1010E940E +:101F6000E0098091E80083FF0AC08091E800877F44 +:101F70008093E8008091EB0080628093EB00AA964A +:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A +:101F900008950895CF938091F1018823A1F0C09115 +:101FA000E900CF709091EC00892F817090FD80E85E +:101FB000C82B1092E9008091E80083FD0E94780E02 +:101FC000CF70C093E900CF910895909375018093ED +:101FD00074010895E0917401F0917501309721F03A +:101FE0000190F081E02D099480E00895E091740162 +:101FF000F0917501309721F00280F381E02D099472 +:102000000895E0917401F0917501309721F00480FA +:10201000F581E02D099408952091720130917301AA +:102020008217930771F09093730180937201E0918E +:102030007401F0917501309721F00680F781E02D51 +:1020400009940895209170013091710182179307CE +:1020500071F09093710180937001E0917401F0919F +:102060007501309721F00084F185E02D09940895E1 +:1020700008950C9438100E94921B0E9433030C9414 +:10208000541C9F92AF92BF92CF92DF92EF92FF9239 +:102090000F931F93CF93DF9300D000D000D0CDB724 +:1020A000DEB70E944B030DE010E0AA24A394B12CEC +:1020B000902E802F0E943904980129583E4F6901C3 +:1020C000F901F080F826A1F40150110988F78FEF8B +:1020D00089838A831B820E949B1B8160782F9D834A +:1020E0008C8349815A816B818D810E94D8102FC0C9 +:1020F0009091DA0191FF04C08E830E943F048E818B +:1021000025E030E0A501022E01C0440F0A94EAF751 +:10211000E42E4F21C1F029839A828E2191E009F4A7 +:1021200090E09B830E949B1B8160782F9D838C8312 +:1021300049815A816B818D810E94D810F60180817E +:10214000E826E08204C021503109E0F6BDCF0E94AC +:102150003B1F109176010E94EA0F1817B9F00E94F8 +:10216000EA0F8093760126960FB6F894DEBF0FBE75 +:10217000CDBFDF91CF911F910F91FF90EF90DF9036 +:10218000CF90BF90AF909F900C94E30826960FB627 +:10219000F894DEBF0FBECDBFDF91CF911F910F919D +:1021A000FF90EF90DF90CF90BF90AF909F900895F9 +:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82 +:1021C0000FBECDBF4F83588769877A878B87DE0123 +:1021D000119686E0FD0111928A95E9F785E0FE01EE +:1021E000379601900D928A95E1F749815A816B816A +:1021F0007C818D819E810E9421172B960FB6F894C9 +:10220000DEBF0FBECDBFDF91CF910895CF9388235E +:1022100009F4C2C0C82F823859F40E94EA0F81FD28 +:10222000BBC089E30E94FB190E94C81A89E30CC055 +:10223000833879F40E94EA0F80FDAEC083E50E94E6 +:10224000FB190E94C81A83E50E943D1ACF910C9495 +:10225000C81A843859F40E94EA0F82FD9DC087E4B1 +:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6 +:10227000813A48F48C2F0E947E2181118DC08C2FD1 +:102280000E94FB19E3CF80E28C0F883048F4C770BE +:1022900081E001C0880FCA95EAF70E94811AD6CF63 +:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB +:1022B00083E890E005C081E890E002C082E890E009 +:1022C000CF910C940C1088E58C0F833108F064C01A +:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118 +:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186 +:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106 +:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173 +:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB +:1023200038C082EE90E035C089EE90E032C08AEE8F +:1023300090E02FC085EB90E02CC086EB90E029C0A8 +:1023400087EB90E026C08CEC90E023C08DEC90E011 +:1023500020C083E891E01DC08AE891E01AC082E9BC +:1023600091E017C084E991E014C081E292E011C0CD +:1023700083E292E00EC084E292E00BC085E292E03C +:1023800008C086E292E005C087E292E002C08AE2DD +:1023900092E0CF910C942210CF910895882309F4F4 +:1023A0004BC0823859F40E94EA0F81FF45C089E38F +:1023B0000E94FB190E94C81A89E30CC0833871F48B +:1023C0000E94EA0F80FF38C083E50E94FB190E943B +:1023D000C81A83E50E943D1A0C94C81A843859F42F +:1023E0000E94EA0F82FF28C087E40E94FB190E9426 +:1023F000C81A87E4EFCF9CEF980F913A58F390E218 +:10240000980F983050F4877091E001C0990F8A9529 +:10241000EAF7892F0E94871ADFCF9BE5980F933048 +:1024200020F480E090E00C940C10885A833120F462 +:1024300080E090E00C9422100895882321F00E94FF +:10244000811A0C94C81A0895882321F00E94871AD3 +:102450000C94C81A08957F928F929F92AF92BF9268 +:10246000CF92DF92EF92FF920F931F93CF93DF9360 +:102470001F92CDB7DEB77C01C62E772EFC010581F9 +:1024800002950F70128111110E949E1A0E94F41978 +:10249000882379F0112369F080E28C0D883048F0B0 +:1024A00082E00E94DD190E94F41991E0D82ED9260D +:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C +:1024C0000C94B323872D807F072D0F70882311F084 +:1024D0000295007F112389F0002309F490C180E266 +:1024E0008C0D883020F4802F0E94811A03C0802F29 +:1024F0000E94911A0E94C81A82C18C2D0E94CE118E +:10250000002309F495C180E28C0D883020F4802FDF +:102510000E94871A03C0802F0E94971A0E94C81A2F +:1025200087C1972D907F872D8F70903211F0829503 +:10253000807FCC2021F0F1E0CF16B1F01EC0112336 +:1025400049F0002309F414C1013009F011C10E94BF +:10255000B11A6EC1002319F0013009F469C18983F1 +:102560000E94B41A89810AC1112321F0023008F0B7 +:102570005FC1FEC001115CC101C1112321F0002324 +:1025800009F4F6C03CC1002309F4F8C03EC1872D10 +:1025900086958695837090E0009719F0019761F019 +:1025A00047C1112321F08C2D972D937002C080E03C +:1025B00090E00E940C103CC1112321F08C2D972D2E +:1025C000937002C080E090E00E94221031C18C2DF7 +:1025D000112319F00E94431E02C00E94AB1E0E94EC +:1025E000301F26C1872D837009F052C0111120C100 +:1025F0008C2D829586958770880F880F9C2D9F70F3 +:10260000892E912CA12CB12C082E04C0880C991C69 +:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041 +:1026200020E030E0B901A80104C0440F551F661F27 +:10263000771F8A95D2F7CB01BA0160957095809586 +:10264000909503C060E070E0CB01272D269526957C +:10265000237030E02230310569F02330310589F0F4 +:10266000682979298A299B292130310571F00E9436 +:102670006918DEC0682979298A299B290E94851852 +:10268000D7C00E946918C501B4010E944D18D0C07E +:10269000112319F0872D817001C08695882309F4D4 +:1026A000C7C08C2D829586958770880F880F9C2DCA +:1026B0009F70892E912CA12CB12C082E04C0880C5F +:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC +:1026D00010E020E030E0B901A80104C0440F551F0C +:1026E000661F771F8A95D2F7CB01BA016095709566 +:1026F0008095909503C060E070E0CB01272D269572 +:1027000026952370422F50E04230510569F0433046 +:10271000510589F0682979298A299B294130510579 +:1027200071F00E94431984C0682979298A299B295C +:102730000E945F197DC00E944319C501B4010E9427 +:10274000271976C08C2D90E0FC01E05EF109E5319F +:10275000F10508F050C0E059FF4F0C94B3230C2D45 +:102760000F70872D8F71112331F00E94C018802FB8 +:102770000E941D125DC00E94E118802F0E94241249 +:1027800057C0112339F0011153C0872D8F710E945A +:1027900006194EC0023008F04BC0F7CF112339F0B4 +:1027A000872D8F710E94C01843C01123C9F3872D54 +:1027B0008F710E94E1183CC0112329F0872D8F7181 +:1027C0000E94AB1835C00E94A11832C0112351F0ED +:1027D000172D1F71812F0E94C01863E0812F0E9466 +:1027E000D41926C081E00E94DD19023008F182E090 +:1027F0000E94DD191DC0112331F0002389F28C2DB8 +:102800000E94061115C0002391F28C2D0E94CE115A +:102810000FC0472D4F706C2DC7010E9415050E94F7 +:10282000C51706C0472D4F706C2DC7010E94F205D9 +:10283000DD20F9F00E94D01980FD1BC0F701128243 +:102840000E94CA190E94C018C7010E9448140E9421 +:10285000CA190F90DF91CF911F910F91FF90EF90C8 +:10286000DF90CF90BF90AF909F908F907F900C940F +:10287000E1180F90DF91CF911F910F91FF90EF9092 +:10288000DF90CF90BF90AF909F908F907F900895F2 +:102890000F931F93CF93DF93EC01888199812B8154 +:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B +:1028B0000E944A05882371F0688179818A810E948B +:1028C000C6198C010E947B190E944218B801CE01E2 +:1028D0000E942B12DF91CF911F910F9108950E94BA +:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471 +:1028F000E11F0E94301F80E090E00E940C1080E0F9 +:1029000090E00C9422100E948E1A0C946F140E9476 +:10291000BB19292F22952F7030E02C3031054CF453 +:102920002A3031056CF42250310922303105A8F4E7 +:1029300007C02C30310569F02F30310551F00DC042 +:10294000803F69F018F4803E40F409C0843F29F4C8 +:1029500006C093FB882780F9089580E0089581E000 +:102960000895CF93DF9300D000D01F92CDB7DEB78C +:102970000F900F900F900F900F90DF91CF910895CF +:10298000CF93DF9300D000D000D0CDB7DEB726962E +:102990000FB6F894DEBF0FBECDBFDF91CF91089583 +:1029A0001F93CF93DF93C091850116E0809186013C +:1029B000C81799F0D0E01C9FF0011D9FF00D112465 +:1029C000E957FE4F408151816281738184819581F5 +:1029D0000E94C0142196C770E9CFDF91CF911F915B +:1029E00008954091B7015091B8016091B90170917B +:1029F000BA018091BB019091BC010C94C0148091EC +:102A0000BC0182958F7009F054C08091B901882370 +:102A100009F44FC080918501A09186016091B701B2 +:102A20007091B8014091BA015091BB01B6E08A178C +:102A300009F43FC090E041155105C1F17F3F11F409 +:102A40006F3FA1F1B89FF001B99FF00D1124E95734 +:102A5000FE4F218172132AC02081621327C0228178 +:102A6000211124C0238134812417350710F421500B +:102A70003109241B350B283C3105C0F42091BC01E1 +:102A80002F7020612093BC0126E0289FF001299F30 +:102A9000F00D1124E457FE4F80818F708061808398 +:102AA00087EB91E00E9448140C94D0140196877033 +:102AB000BECF0895CF92DF92EF92FF920F931F93B4 +:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32 +:102AD0000FBECDBF8C0185E0F801DE011D9601908F +:102AE0000D928A95E1F7D8014C9111965C9111975E +:102AF00012966C9112971396CD90DC9014973091AA +:102B0000B7017091B8018091BA019091BB01009713 +:102B100009F46BC17F3F19F43F3F09F466C1E090AF +:102B2000B901EE2009F4C0C02091BC01C816D90635 +:102B300028F0F601E81BF90BCF0104C080959095B1 +:102B40008C0D9D1DFF24F394883C910578F0F12CA9 +:102B5000207F09F0C6C07C2DD98AC88A89890E9445 +:102B6000B11487EB91E00E944814B1C0822F807F9E +:102B700009F046C0751314C0341312C0611110C09F +:102B80002F7020612093BC010E94F11487EB91E02B +:102B90000E9448148091BC01D80115968C932EC0D8 +:102BA000CD2819F15F3F11F44F3FF9F0F62E611176 +:102BB0001CC0809185012091860136E0821709F4BE +:102BC0005AC090E0389FF001399FF00D1124E95769 +:102BD000FE4F7181571306C07081471303C0728185 +:102BE000711103C001968770E9CFF62E662309F4B0 +:102BF00018C18091BC0181608093BC01F12C11C18E +:102C0000751308C0341306C0611104C08091BC0163 +:102C1000D801C3C04D875E878D859E856A8B0E94D3 +:102C200087146A898823E1F16623D1F12091BC01E0 +:102C3000822F82958F7090E0029774F08091B70197 +:102C40009091B80198878F831986DB86CA862C8776 +:102C5000CE0107960E94481486E0F801A7EBB1E088 +:102C600001900D928A95E1F70E94FF140E94F114E1 +:102C7000FF24F394D6C04D875E878D859E850E9484 +:102C8000BB19292F22952F7030E0223031050CF02E +:102C9000BCC09F7009F0B6C0805E883008F4C1C027 +:102CA000C8010E944814E4CFC816D90608F453C0DE +:102CB000F601E81BF90BCF01883C910508F450C0E0 +:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E +:102CD000F1E086E0DF011D928A95E9F70E94F11488 +:102CE000A0C0751314C0341312C0611110C08091BC +:102CF000BC01F8018583C8010E94481486E0E7EB17 +:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C +:102D10005E878D859E856A8B0E9487146A898823C9 +:102D200009F4BECF662309F4BBCF2091BC01822FEA +:102D300082958F7090E002970CF48ECF8091B7014E +:102D40009091B8019A8389831B82DD82CC822E8385 +:102D5000CE0101967FCF809590958C0D9D1DACCFB7 +:102D6000F62E662309F49CCF75132EC034132CC0A5 +:102D70002091BC0120FD1FC0822F82958F70D9F059 +:102D8000D80115962C9315978F3049F08F5F982FA7 +:102D90009295907F822F8F70892B15968C93C80106 +:102DA0000E94481486E0F801A7EBB1E001900D9273 +:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7 +:102DC0000D928A95E1F72DC04D875E878D859E8592 +:102DD0000E948714811140CF8091BC018160809353 +:102DE000BC01C8010E9448141CC0662309F458CFD6 +:102DF0004D875E878D859E850E948714882309F400 +:102E00004FCF2ACF811148CF0CC0243031050CF0B0 +:102E100047CF9F7009F440CFF8019581907F09F06A +:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D +:102E3000DF91CF911F910F91FF90EF90DF90CF9096 +:102E400008951F93CF93DF93CDB7DEB72C970FB6BE +:102E5000F894DEBF0FBECDBF4F83588769877A874E +:102E60008B879C87CE0107960E945A15882369F0AC +:102E70008F8198852A853B85232BF1F19F3F09F0AF +:102E800063C08F3F09F060C037C086E0FE0137960F +:102E9000DE01119601900D928A95E1F76F81788598 +:102EA000EA85FB85309741F17F3F11F46F3F21F1B7 +:102EB0002091860130E0C9010196877099274091E1 +:102EC000850150E08417950709F447C069837A8328 +:102ED000FD83EC8396E0929FD001939FB00D112467 +:102EE000A957BE4FFE01319601900D929A95E1F7D8 +:102EF000809386010E94D01416E080918501909104 +:102F000086018917C1F1189FC001112489579E4F6E +:102F10000E945A15882379F1E09185011E9FF001E6 +:102F20001124E957FE4F4081518162817381848170 +:102F300095810E94C0148091850190E00196877070 +:102F4000992780938501D9CF4F81588569857A85E6 +:102F50008B859C850E94C014CFCF0E948314109251 +:102F6000860110928501E7EBF1E086E0DF011D921A +:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45 +:102F8000CDBFDF91CF911F910895EF92FF920F93E4 +:102F90001F93CF93DF938C01009709F46CC0F12C41 +:102FA000EE24E394E8012196F8018491843740F4FB +:102FB000843008F051C0813081F0823019F15BC05B +:102FC000853709F444C0A8F19CE7980F903708F0C2 +:102FD00052C08F770E94CE1141C00E5F1F4FFE017D +:102FE000C49180E28C0F883048F4C7708E2D01C0E8 +:102FF000880FCA95EAF70E94A11A14C08C2F0E946C +:1030000006112DC00E5F1F4FFE01C49180E28C0F90 +:10301000883058F4C7708E2D01C0880FCA95EAF722 +:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3 +:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3 +:103040009FE00197F1F700C00000C150F6CF0E5F7E +:103050001F4FFE01F49003C00E9406118E018F2DB8 +:10306000882309F49FCFEFE9FFE03197F1F700C023 +:1030700000008150F5CFDF91CF911F910F91FF900C +:10308000EF90089508956093C1017093C2018093F9 +:10309000C3019093C4010C946F140F931F9300917C +:1030A000C1011091C2012091C3013091C401DC0122 +:1030B000CB01802B912BA22BB32B8093C10190933A +:1030C000C201A093C301B093C4011F910F910C944E +:1030D0006F140F931F930091C1011091C2012091B1 +:1030E000C3013091C401DC01CB0180239123A223D1 +:1030F000B3238093C1019093C201A093C301B09305 +:10310000C4011F910F910C946F140F931F930091A2 +:10311000C1011091C2012091C3013091C401DC01B1 +:10312000CB0180279127A227B3278093C1019093D9 +:10313000C201A093C301B093C4011F910F910C94DD +:103140006F141092BD011092BE011092BF01109237 +:10315000C0010C946F1441E050E060E070E004C0E6 +:10316000440F551F661F771F8A95D2F74093BD0104 +:103170005093BE016093BF017093C0010C946F1413 +:1031800041E050E060E070E004C0440F551F661F4E +:10319000771F8A95D2F78091BD019091BE01A091D1 +:1031A000BF01B091C001482B592B6A2B7B2B409358 +:1031B000BD015093BE016093BF017093C0010C9498 +:1031C0006F1441E050E060E070E004C0440F551F10 +:1031D000661F771F8A95D2F7409550956095709538 +:1031E0008091BD019091BE01A091BF01B091C0013D +:1031F000482359236A237B234093BD015093BE018A +:103200006093BF017093C0010C946F1441E050E0D3 +:1032100060E070E004C0440F551F661F771F8A9559 +:10322000D2F78091BD019091BE01A091BF01B091F4 +:10323000C001482759276A277B274093BD01509337 +:10324000BE016093BF017093C0010C946F140F9383 +:103250001F930091BD011091BE012091BF013091DB +:10326000C001DC01CB01802B912BA22BB32B8093CF +:10327000BD019093BE01A093BF01B093C0011F9107 +:103280000F910C946F140F931F930091BD01109137 +:10329000BE012091BF013091C001DC01CB01802330 +:1032A0009123A223B3238093BD019093BE01A093E9 +:1032B000BF01B093C0011F910F910C946F140F9335 +:1032C0001F930091BD011091BE012091BF0130916B +:1032D000C001DC01CB0180279127A227B32780936F +:1032E000BD019093BE01A093BF01B093C0011F9197 +:1032F0000F910C946F140895CF92DF92EF92FF928A +:103300000F931F93CF93DF938C01C090C101D09096 +:10331000C201E090C301F090C4018091BD01909181 +:10332000BE01A091BF01B091C001C82AD92AEA2AE2 +:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520 +:10334000A795979587950A94D2F780FF06C0B80194 +:103350008C2F0E944808019721F4219760F780E0A4 +:1033600001C08C2FDF91CF911F910F91FF90EF90B3 +:10337000DF90CF900895CF93DF93EC010E947C19EA +:10338000BE010E944808DF91CF910895CB010E94B1 +:10339000BB1908958091C5018595859585950895FA +:1033A0008091C5018770089598E0899F900111244C +:1033B000262B2093C5010C94C0182091C50180953F +:1033C00082238093C501982F977069F430E0482FCD +:1033D000552747FD50952417350729F08595859584 +:1033E00085950C94E11808959091C501977081E03E +:1033F00009F480E0089590910C01992321F09091B7 +:103400000D01911109C020910E0130910F01F901B8 +:1034100032969FEF40E01FC0982F9695969596950F +:103420009F3050F5E0910E01F0910F01E90FF11D71 +:10343000877021E030E0A90102C0440F551F8A9532 +:10344000E2F7CA019181892B818308959F3F39F06A +:103450004F5F4E3041F051915813F8CF0DC05111CC +:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08 +:1034700097FDFA9582830895089590910C01992300 +:1034800021F090910D01911109C020910E01309110 +:103490000F01F9013296205F3F4F1FC0982F96957C +:1034A000969596959F30F0F4E0910E01F0910F0102 +:1034B000E90FF11D877021E030E0A90102C0440F3F +:1034C000551F8A95E2F7CA018095918189238183EE +:1034D00008953196E217F30729F090819813F9CFF8 +:1034E0001082F7CF089581E090E0E0910E01F09115 +:1034F0000F01E80FF91F1082019680319105A9F79D +:1035000008959091D901892B8093D90108958095D0 +:103510009091D90189238093D90108951092D901FE +:1035200008959091D801892B8093D80108958095B2 +:103530009091D80189238093D80108951092D801E1 +:1035400008959091D701892B8093D7010895809594 +:103550009091D70189238093D70108951092D701C4 +:1035600008958093C60108951092C6010895809130 +:103570000E0190910F01FC0131969C01205F3F4F9D +:1035800080E0919191118F5FE217F307D1F70895D1 +:10359000E0910E01F0910F018091D9018083E091BB +:1035A0000E01F0910F0190818091D801892B8083C9 +:1035B000E0910E01F0910F0190818091D701892B4C +:1035C00080838091C601882361F0E0910E01F09123 +:1035D0000F019081892B80830E94B71A811110926C +:1035E000C60180910E0190910F010C94F60F20E01E +:1035F000009739F0AC0141505109842395232F5F86 +:10360000F7CF822F0895CF92DF92EF92FF926C0155 +:10361000EE24FF24C114D104E104F10421F0C70118 +:10362000B60120E101C020E0C72ED82EE92EFF24EC +:10363000C114D104E104F10419F0285FC701B601F7 +:103640006B017C0154E0F694E794D794C7945A95A3 +:10365000D1F7C114D104E104F10419F02C5FC701C2 +:10366000B6016B017C0142E0F694E794D794C794CD +:103670004A95D1F7C114D104E104F10419F02E5F89 +:10368000C701B601DC01CB01B695A7959795879543 +:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5 +:1036A000DF90CF9008958091F101843021F1109244 +:1036B000DB0120E488E190E00FB6F894A8958093B0 +:1036C00060000FBE2093600080E00E94E30883B793 +:1036D000817F846083BF83B7816083BF789488953E +:1036E00083B78E7F83BF88E10FB6F8948093600024 +:1036F000109260000FBE0895089508950E947C1BEB +:103700000E944B030E947D1B0E94400491E08111A6 +:1037100001C090E0892F08950E9483140E94EA0F4F +:103720000C94E30882E084BD93E095BD9AEF97BDC9 +:1037300080936E0008952FB7F8948091DC019091EA +:10374000DD01A091DE01B091DF012FBF0895CF927E +:10375000DF92EF92FF920F931F932FB7F89440914F +:10376000DC015091DD016091DE017091DF012FBF1E +:103770006A017B01EE24FF248C0120E030E0C016BA +:10378000D106E206F30610F4415051099A01281BB4 +:10379000390BC9011F910F91FF90EF90DF90CF90EF +:1037A00008951F920F920FB60F9211248F939F933B +:1037B000AF93BF938091DC019091DD01A091DE0178 +:1037C000B091DF010196A11DB11D8093DC019093A2 +:1037D000DD01A093DE01B093DF01BF91AF919F9116 +:1037E0008F910F900FBE0F901F9018950E94E70CBD +:1037F000F8942FEF87EA91E6215080409040E1F75E +:1038000000C0000087E090EBDC018093FB01909307 +:10381000FC01A093FD01B093FE019CE088E10FB68E +:10382000F894A895809360000FBE90936000FFCF3E +:10383000EF92FF920F931F93CF93DF93D82FCDE09A +:103840008C2F0E94390405E010E0E82EF12CC7010E +:10385000002E02C0959587950A94E2F780FF09C073 +:10386000602F7C2F80E00E94F305D81302C081E016 +:1038700006C00150110958F7C15010F780E0DF91E0 +:10388000CF911F910F91FF90EF900895CF93C82F84 +:103890008CE20E94181C882321F08C2FCF910C946D +:1038A000181C80E0CF910895CF930E949B1D811139 +:1038B00002C00E94811DC5E6C15049F00E944B0321 +:1038C0008FE39CE90197F1F700C00000F5CF89E292 +:1038D0000E94461C811113C18AE20E94461C81117C +:1038E0000E94811D85E00E94461C81110E94F61BEA +:1038F0000E94A61D8093DA0187E00E94461C88235F +:10390000A9F18BE10E94461C882351F08091DA01D5 +:1039100081FB222720F991E0922790FB81F90EC0CC +:103920008EE00E94461C882361F08091DA0182FBC0 +:10393000222720F991E0922790FB82F98093DA0107 +:1039400015C080E10E94461C9091DA01882341F065 +:1039500093FB222720F981E0822780FB93F904C0A2 +:10396000892F809580FB90F99093DA018091DA019C +:103970000E94AA1D0E94B81D8093FA0180EE0E9449 +:10398000461C882341F08091FA01982F909590FB76 +:1039900080F98093FA0189E30E94461C882359F03C +:1039A0008091FA0181FB222720F991E0922790FB78 +:1039B00081F98093FA0182EE0E94461C882359F017 +:1039C0008091FA0182FB222720F991E0922790FB57 +:1039D00082F98093FA0186EE0E94461C882359F0F2 +:1039E0008091FA0183FB222720F991E0922790FB36 +:1039F00083F98093FA0183EE0E94461C882359F0D4 +:103A00008091FA0184FB222720F991E0922790FB14 +:103A100084F98093FA0185E30E94461C882359F0BB +:103A20008091FA0185FB222720F991E0922790FBF3 +:103A300085F98093FA0181E30E94461C882359F09E +:103A40008091FA0186FB222720F991E0922790FBD2 +:103A500086F98093FA0181E10E94461C882359F07F +:103A60008091FA0187FB222720F991E0922790FBB1 +:103A700087F98093FA018091FA010E94BC1D809120 +:103A8000FA0187FB882780F980930D0187E20E9465 +:103A9000461CC82F8EE10E94461C8111C2608FE136 +:103AA0000E94461C8111C46080E20E94461C811164 +:103AB000C86081E20E94461C8111C06182E20E94BE +:103AC000461C8111C06283E20E94461C8111C064C1 +:103AD00084E20E94461C882311F0C06802C0CC23F7 +:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4 +:103AF000682F70E080E090E0CF910C944318CF9154 +:103B000008956DEE7EEF80E090E00E94ED2360E08E +:103B100082E090E00E94DB2360E083E090E00E947E +:103B2000DB2360E084E090E00E94DB2360E085E03E +:103B300090E00C94DB2380E090E00E94D52321E00C +:103B40008D3E9E4F09F020E0822F089582E090E0A4 +:103B50000C94CD23682F82E090E00C94DB2383E06B +:103B600090E00C94CD23682F83E090E00C94DB234D +:103B700084E090E00C94CD23682F84E090E00C94D6 +:103B8000DB238091E20180FF0BC06091130185E08F +:103B9000689FB001112475956795759567952BC041 +:103BA00081FF09C06091130185E0689FB001112475 +:103BB0007595679520C082FF07C06091130185E06D +:103BC000689FB001112417C09091E3019923D1F0AF +:103BD00060911201961788F72091130185E0289FC4 +:103BE00090011124929FA001939F500D112470E029 +:103BF000CA010E949F236038710540F46115710568 +:103C000039F002C065E070E0862F08958FE70895CF +:103C100081E008958091E20180FF08C06091110168 +:103C200070E0759567957595679521C081FF06C011 +:103C30006091110170E07595679519C082FF04C00D +:103C40006091110170E010C09091E3019923C1F0DF +:103C5000609110019617A0F780911101899FC00112 +:103C6000112470E00E949F236038710528F46115CB +:103C7000710521F0862F08958FE7089581E008955A +:103C800061E070E0F4CF803F21F40E94C11D819576 +:103C900004C0813F29F40E94C11D8093E60108956C +:103CA000823F21F40E94C11D819504C0833F29F405 +:103CB0000E94C11D8093E5010895893F19F40E9477 +:103CC0000A1E05C08A3F31F40E940A1E8195809326 +:103CD000E70108958B3F21F40E940A1E819504C0DC +:103CE0008C3F29F40E940A1E8093E8010895843FC6 +:103CF00021F48091E401816017C0853F21F4809117 +:103D0000E401826011C0863F21F48091E401846067 +:103D10000BC0873F21F48091E401886005C0883F93 +:103D200031F48091E40180618093E40108958D3F36 +:103D300021F48091E20181600BC08E3F21F48091DB +:103D4000E201826005C08F3F29F48091E201846026 +:103D50008093E2010895803F39F48091E60187FF66 +:103D60006CC01092E60169C0813F29F48091E601A0 +:103D70001816BCF362C09091E501823F29F497FFC9 +:103D80005CC01092E50159C0833F19F41916CCF3B9 +:103D900054C0893F41F48091E70118160CF04DC0E2 +:103DA0001092E7014AC08A3F29F48091E70187FF1A +:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6 +:103DC0001092E8013AC08C3F29F48091E80118165E +:103DD000BCF333C0843F21F48091E4018E7F17C08F +:103DE000853F21F48091E4018D7F11C0863F21F44D +:103DF0008091E4018B7F0BC0873F21F48091E40127 +:103E0000877F05C0883F31F48091E4018F7E8093E5 +:103E1000E40113C08D3F21F48091E2018E7F0BC03D +:103E20008E3F21F48091E2018D7F05C08F3F29F400 +:103E30008091E2018B7F8093E2018091E501811105 +:103E40000EC08091E60181110AC08091E7018111C5 +:103E500006C08091E801811102C01092E30108952B +:103E600084EE91E00E9401100E949B1B9093E1015F +:103E70008093E00108951F93CF93DF938091E00139 +:103E80009091E1010E94A71BAC019091E30199235D +:103E900021F02091140130E006C0209115018AE044 +:103EA000289F900111244217530708F486C080917F +:103EB000E501C091E601D091E7011091E80181117F +:103EC00007C0C11176C0D11174C0111172C075C084 +:103ED0009F3F19F09F5F9093E301181624F40E940E +:103EE000C11D8093E5018091E50187FF05C00E9417 +:103EF000C11D81958093E5011C1624F40E94C11D0B +:103F00008093E6018091E60187FF05C00E94C11DF4 +:103F100081958093E6016091E501662339F1C091B6 +:103F2000E601CC2319F1772767FD7095872F972F2E +:103F30000E94B02223E333E343E35FE30E941423B0 +:103F40000E947D226093E5016C2F772767FD7095B5 +:103F5000872F972F0E94B02223E333E343E35FE3ED +:103F60000E9414230E947D226093E6011D1624F412 +:103F70000E940A1E8093E7018091E70187FF05C038 +:103F80000E940A1E81958093E701111624F40E9475 +:103F90000A1E8093E8018091E80187FF05C00E9416 +:103FA0000A1E81958093E801DF91CF911F910C94B7 +:103FB000301F9F3F09F08ECF96CFDF91CF911F9199 +:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE +:103FD0001092E3011092E2010895833081F128F4F8 +:103FE000813059F08230D1F00895853009F449C00C +:103FF000B8F1863009F456C0089580911501262F36 +:1040000030E0280F311D2F3F310524F4680F6093F5 +:10401000150108958FEF8093150108958091140183 +:10402000262F30E0280F311D2F3F310524F4680F73 +:104030006093140108958FEF809314010895809187 +:104040001301262F30E0280F311D2F3F310524F4B6 +:10405000680F6093130108958FEF80931301089503 +:1040600080911201262F30E0280F311D2F3F31059E +:1040700024F4680F6093120108958FEF809312016A +:10408000089580911101262F30E0280F311D2F3F18 +:10409000310524F4680F6093110108958FEF809328 +:1040A0001101089580911001262F30E0280F311D55 +:1040B0002F3F310524F4680F6093100108958FEFAE +:1040C000809310010895833011F128F4813049F074 +:1040D000823091F00895853081F120F18630C1F170 +:1040E000089580911501681720F4861B80931501AF +:1040F000089510921501089580911401681720F415 +:10410000861B8093140108951092140108958091E4 +:104110001301681720F4861B8093130108951092F1 +:104120001301089580911201681720F4861B809373 +:1041300012010895109212010895809111016817DB +:1041400020F4861B809311010895109211010895A7 +:1041500080911001681720F4861B80931001089548 +:104160001092100108950F931F938D3109F46BC0C5 +:1041700008F03FC08E3009F47FC0C0F4873009F4E6 +:1041800069C068F4863009F0B1C08091DA01817F9E +:104190008E7F8093DA0181E08093EA01A8C08830A5 +:1041A00009F4A2C08B3009F49FC0A0C0863109F485 +:1041B0009BC078F4803109F472C0813109F096C057 +:1041C0000E94831490910D0181E0892780930D0155 +:1041D0008BC0893109F488C08B3109F087C0809188 +:1041E000DA0181FB222720F991E0922790FB81F9E7 +:1041F0004CC0853309F470C048F4873209F46CC0B0 +:1042000008F459C0893209F467C070C0833438F4A7 +:104210008A3308F04EC0883309F466C067C083341F +:1042200009F45AC0883409F061C00E9483140FEF6A +:1042300013ED20E3015010402040E1F700C00000E2 +:104240000E94F61B51C00E9437220E94EA0F0E9472 +:10425000E3084AC09091DA01892F8095817080FB34 +:1042600090F929F0966098609093DA0140C0997FA8 +:10427000977F9093DA0138C08091DA0182FB222780 +:1042800020F991E0922790FB82F98093DA0199233B +:1042900059F18091DA0181608093DA0125C0809123 +:1042A000DA0183FB222720F991E0922790FB83F922 +:1042B000ECCF895301C08D5141E050E060E070E0E7 +:1042C0008A019B0104C0000F111F221F331F8A9512 +:1042D000D2F7C901B80104C061E070E080E090E06D +:1042E0000E9443180E94831481E001C080E01F9166 +:1042F0000F91089580E0089580E00895CF93C82F2E +:104300008091EA01813079F018F08230E9F187C0BC +:10431000E0910E01F0910F018081813169F08232CC +:1043200009F07FC009C0E0910E01F0910F0180817A +:10433000813111F0823261F48C2F0E947A21811137 +:1043400004C08C2F0E94B3201DC081E090E01AC0F1 +:104350008C2F0E947C21811114C0C43179F048F463 +:10436000CB3079F0C03109F060C082E08093EA017F +:1043700008C0C93219F0C83321F057C01092EA01C1 +:1043800054C081E0817053C0C93289F118F5C4313D +:1043900071F1A8F4C73009F046C08AE08093150196 +:1043A00094E19093140193E0909313018093120190 +:1043B00088E08093110188E28093100134C0CE51CF +:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB +:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC +:1043E00013C0C13579F0C235F1F461E00DC08091A0 +:1043F000E901882319F01092E90115C081E080934A +:10440000EA0115C061E006C08091E9010E94ED1F3C +:104410000AC06AE08091E9010E94632004C0109202 +:10442000EA0180E004C081E002C080E0ABCFCF9120 +:104430000895E1E8F0E08081886080838081816078 +:1044400080838FB7F89493E09093890090ED9093D8 +:1044500088008FBF0895EFE6F0E08081826080835E +:104460000895EFE6F0E080818D7F80830895EFE688 +:10447000F0E0908182E08927808308951F920F9257 +:104480000FB60F9211242F933F934F935F936F9327 +:104490007F938F939F93AF93BF93EF93FF938091FD +:1044A000EB019091EC0101969093EC018093EB016C +:1044B000811103C082E00E94E308E091EC01E695DF +:1044C000E695F0E0EC54FB4FE4918091EB018E1304 +:1044D00003C080E00E94E308FF91EF91BF91AF918C +:1044E0009F918F917F916F915F914F913F912F910C +:1044F0000F900FBE0F901F90189504D06894B111C3 +:104500008DC0089570D088F09F5790F0B92F9927EB +:10451000B751A0F0D1F0660F771F881F991F1AF0CE +:10452000BA95C9F712C0B13081F077D0B1E00895E3 +:1045300074C0672F782F8827B85F39F0B93FCCF364 +:10454000869577956795B395D9F73EF490958095C4 +:10455000709561957F4F8F4F9F4F0895E89409C0E4 +:1045600097FB3EF490958095709561957F4F8F4FA6 +:104570009F4F9923A9F0F92F96E9BB279395F695BC +:10458000879577956795B795F111F8CFFAF4BB0F3A +:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E +:1045A000882311F096E911C0772321F09EE8872F28 +:1045B000762F05C0662371F096E8862F70E060E0E4 +:1045C0002AF09A95660F771F881FDAF7880F96955D +:1045D000879597F9089557FD9058440F551F59F046 +:1045E0005F3F71F04795880F97FB991F61F09F3FE0 +:1045F00079F087950895121613061406551FF2CF09 +:104600004695F1DF08C0161617061806991FF1CF58 +:1046100086957105610508940895E894BB2766277F +:104620007727CB0197F908950BD078C069D028F08F +:104630006ED018F0952309F05AC05FC01124EECF58 +:10464000CADFA0F3959FD1F3950F50E0551F629FED +:10465000F001729FBB27F00DB11D639FAA27F00DDB +:10466000B11DAA1F649F6627B00DA11D661F829F02 +:104670002227B00DA11D621F739FB00DA11D621FE7 +:10468000839FA00D611D221F749F3327A00D611D04 +:10469000231F849F600D211D822F762F6A2F1124E6 +:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39 +:1046B000BB1F661F771F881F91505040A9F79E3F70 +:1046C000510570F014C0AACF5F3FECF3983EDCF3C5 +:1046D000869577956795B795F795E7959F5FC1F7AD +:1046E000FE2B880F911D9695879597F9089597F958 +:1046F0009F6780E870E060E008959FEF80EC089588 +:1047000000240A94161617061806090608950024B0 +:104710000A9412161306140605060895092E03942A +:10472000000C11F4882352F0BB0F40F4BF2B11F49E +:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF +:10474000072E16F4009407D077FD09D00E94B923F4 +:1047500007FC05D03EF4909581959F4F0895709584 +:1047600061957F4F0895EE0FFF1F0590F491E02DA6 +:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8 +:10478000B70710F0A61BB70B881F991F5A95A9F7FA +:1047900080959095BC01CD010895F999FECF92BD09 +:1047A00081BDF89A992780B50895A8E1B0E042E06C +:1047B00050E00C94F523262FF999FECF92BD81BDD0 +:1047C000F89A019700B4021639F01FBA20BD0FB64F +:1047D000F894FA9AF99A0FBE08950196272F0E942D +:1047E000DC230C94DB23DC01CB01FC01F999FECF27 +:1047F00006C0F2BDE1BDF89A319600B40D92415069 +:0A4800005040B8F70895F894FFCF78 +:10480A000220E508730950091C09E8080101C701DB +:10481A0028080A03140A3F4D363975042804F2039E +:10482A00B9034C0365037E039703010203040506DB +:04483A000708090062 +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/default_osx/default_osx_highres.png b/keyboards/ergodox_ez/keymaps/default_osx/default_osx_highres.png new file mode 100644 index 000000000..04f46bbd5 Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/default_osx/default_osx_highres.png differ diff --git a/keyboards/ergodox_ez/keymaps/default_osx/keymap.c b/keyboards/ergodox_ez/keymaps/default_osx/keymap.c new file mode 100644 index 000000000..c57ffbb88 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/default_osx/keymap.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(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_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 +[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/keyboards/ergodox_ez/keymaps/default_osx/readme.md b/keyboards/ergodox_ez/keymaps/default_osx/readme.md new file mode 100644 index 000000000..aa749aac9 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/default_osx/readme.md @@ -0,0 +1,8 @@ +# 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). + +![default osx](default_osx_highres.png) diff --git a/keyboards/ergodox_ez/keymaps/dragon788/compiled.hex b/keyboards/ergodox_ez/keymaps/dragon788/compiled.hex new file mode 100644 index 000000000..e46a5054b --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/dragon788/compiled.hex @@ -0,0 +1,1169 @@ +:100000000C94CE020C9412030C9412030C94120361 +:100010000C9412030C9412030C9412030C9412030C +:100020000C9412030C9412030C94B60D0C94880ECD +:100030000C9412030C9412030C9412030C941203EC +:100040000C9412030C9492220C9412030C9412033D +:100050000C9412030C94251C0C9412030C941203A0 +:100060000C9412030C9412030C9412030C941203BC +:100070000C9412030C9412030C9412030C941203AC +:100080000C9412030C9412030C9412030C9412039C +:100090000C9412030C9412030C9412030C9412038C +:1000A0000C9412030C9412030C941203F50E170F08 +:1000B0000510170F05105C0F7F0F0510D40FE70F09 +:1000C000B612B612E512E5121B133B136C146C1436 +:1000D00046136C14F613F6135D146C146C1466144A +:1000E0000314031403140314031403140314031458 +:1000F0000314031403140314031403140314031448 +:1001000015142214291430143A140000F0A12E0002 +:100110002B002971E100C10000001E001400040042 +:100120001D003500E2001F001A0016001B003400FD +:100130004C00200008000700060050002A002100A3 +:100140001500090019004F424D00220017000A0057 +:10015000050000006500E30001540000007F00007E +:100160004A00035402540000007700004B002300B3 +:100170001C000B00110000002971240018000D0064 +:10018000100052424E0025000C000E0036005100B7 +:100190002C00260012000F0037002F002800270037 +:1001A00013003300380030002B712D003100347102 +:1001B000E500C10000000100010001000100010094 +:1001C00000003A001E0220022202010001003B0052 +:1001D0001F0221022302010001003C002F0226021F +:1001E0002F00010001003D00300227023000010015 +:1001F00001003E003102350035020000010001001F +:1002000001000000010000000100010001000000E9 +:100210000100000001003F005200510024020000D4 +:10022000B2004000240021001E0001000100410036 +:10023000250022001F003700010042002600230095 +:10024000200027000100430025022E0231002E006D +:1002500001004400450001000100010000000050C1 +:100260000100010001000100000001000100010087 +:1002700001000100AB0001000100F20001000100DB +:10028000F5000100F500F00001000100F40001009C +:10029000F400F10001000100AE0001000100F300D4 +:1002A0000100000001000100010000000100000049 +:1002B000AC0001000100000001000000A9000100E5 +:1002C0000100F2000100000001000100F400F10053 +:1002D00001000100A8000100F500F000010001008C +:1002E000B70001000100F30001000100B6000100A9 +:1002F0000100010001000100AA000100010001004D +:1003000001000100000000000000000000000000EB +:10031000000000001E0014000400000000000000A7 +:100320001F001A001600000019000000200008003D +:100330000700000006000000210015000900000071 +:1003400000000000220017000A000000C4000000A6 +:10035000000000000000000000000100000000009C +:10036000000000000100000023001C000B00000042 +:1003700001000000240018000D0001000100000031 +:1003800025000C000E0001001000000026001200E5 +:100390000F000000110000002700130033000000D0 +:1003A0000000010001002F003400000000001603CF +:1003B0004500720067006F0044006F007800200065 +:1003C00045005A00000016034500720067006F00E8 +:1003D00044006F007800200045005A00000004032C +:1003E000090409026D00040100A0FA0904000001DB +:1003F00003010100092111010001223F00070581CD +:100400000308000A09040100010301020009211187 +:10041000010001224D000705820308000A090402B9 +:10042000000103000000092111010001223600072C +:1004300005830308000A0904030001030000000902 +:100440002111010001223900070584031000011267 +:1004500001100100000008EDFE0713010001020079 +:100460000105010906A101050719E029E715002585 +:100470000195087501810205081901290595057581 +:10048000019102950175039101050719002977155E +:10049000002501957875018102C005010980A1013F +:1004A000850216010026B7001A01002AB700751050 +:1004B00095018100C0050C0901A101850316010009 +:1004C000269C021A01002A9C02751095018100C029 +:1004D00005010902A1010901A10005091901290568 +:1004E00015002501950575018102950175038101AE +:1004F0000501093009311581257F950275088106AE +:1005000009381581257F950175088106050C0A3883 +:10051000021581257F950175088106C0C005010976 +:1005200006A101050719E029E715002501950875C1 +:1005300001810295017508810105081901290595B8 +:1005400005750191029501750391010507190029AF +:10055000FF150025FF950675088100C0000000000A +:1005600000000000000000010204060A0F17202C02 +:100570003A4A5D71879DB3C7DAE9F5FCFFFCF5E9FE +:10058000DAC7B39D87715D4A3A2C20170F0A06041B +:1005900002010000000000000000000011241FBE46 +:1005A000CFEFDAE0DEBFCDBF04B603FE24C08091FA +:1005B000FB019091FC01A091FD01B091FE018730FB +:1005C000904BA740B04BB9F41092FB011092FC0184 +:1005D0001092FD011092FE0114BE84B7877F84BF84 +:1005E00088E10FB6F89480936000109260000FBE0F +:1005F000E0E0FFE3099511E0A0E0B1E0E2EBF8E410 +:1006000002C005900D92A433B107D9F711E0A4E31D +:10061000B1E001C01D92AB3FB107E1F70E94FA0AB9 +:100620000C9457240C9400001092B9008AE0809337 +:10063000B800089594EA9093BC009091BC0097FF95 +:10064000FCCF9091B900987F983021F0903111F053 +:1006500081E008958093BB0084E88093BC00809182 +:10066000BC0087FFFCCF8091B900887F883111F0F2 +:10067000803471F780E0089584E98093BC00809114 +:10068000BC0084FDFCCF08958093BB0084E8809378 +:10069000BC008091BC0087FFFCCF9091B900987F8F +:1006A00081E0983209F480E0089584E88093BC00EA +:1006B0008091BC0087FFFCCF8091BB0008958091A2 +:1006C0000101811115C080E40E941A038093010189 +:1006D00081110CC082E10E944403809301018111C9 +:1006E00005C08FEF0E944403809301010E943C03E8 +:1006F00084B1807F84B985B1807F85B98AB1837FD9 +:100700008AB98BB1837F8BB93E98469808950E9431 +:100710001A05809301010E945F0380B38C7080BB37 +:1007200081B3836F81BBA5E3B1E0E3E4F1E08EE048 +:100730008E0F11921D928E13FCCF0C940405BF9264 +:10074000CF92DF92EF92FF920F931F93CF93DF939D +:1007500080910101882379F0809134018F5F80932B +:100760003401811108C00E941A0580930101811192 +:1007700002C00E94AC0405E311E0C0E0D0E0DD243B +:10078000D39482E0C82EEE24E394F12CC730D10537 +:1007900000F580910101811164C080E40E941A0378 +:1007A00080930101811112C082E10E944403809371 +:1007B000010181110BC0C7010C2E01C0880F0A94E2 +:1007C000EAF780950E944403809301010E943C0354 +:1007D00048C0CA30A1F028F4C83059F0C93061F0DF +:1007E00005C0CC3089F070F0CD3089F0209A28987F +:1007F00010C0219A29980DC0229A2A980AC0239ADB +:100800002B9807C0529A01C0539A5B9802C03E9A37 +:10081000469890EA9A95F1F79FB1799902C082E0E3 +:1008200001C080E091709D25982B7C9902C084E0E6 +:1008300001C080E0892B7D9902C038E001C030E022 +:10084000832B7E9902C020E101C020E0822B9FB162 +:100850009095991F9927991F9295990F907E892BB2 +:100860000FC080910101811149C080E40E941A03E8 +:1008700080930101882379F1B12C0E943C038B2DD8 +:10088000F8019081981719F08083C09200010E94AE +:100890005F0321960F5F1F4FCE30D10509F076CF51 +:1008A00080910001882361F18150809300018823A9 +:1008B00039F08FE99FE00197F1F700C0000020C0F8 +:1008C000A3E4B1E0E5E3F1E0CF01825F91919D9374 +:1008D0008E13FCCF15C083E10E9444038093010175 +:1008E0008111CACF81E40E941A0380930101811112 +:1008F000C3CF0E945503B82EB094BFCF80E0C0CFC5 +:100900000E94AA0481E0DF91CF911F910F91FF9087 +:10091000EF90DF90CF90BF900895E82FF0E0ED5B6F +:10092000FE4F8081089508950F931F93CF93DF9317 +:10093000C3E4D1E010E00C2F025F899190E00E94A7 +:100940004B1B180F0C13F9CF812FDF91CF911F9103 +:100950000F9108950C947A0556985E9825982D98D5 +:1009600026982E9827982F988FEF90E090938900E3 +:100970008093880090938B0080938A0090938D00E1 +:1009800080938C00259A2D9A2FEF80E792E02150DA +:1009900080409040E1F700C00000269A2E9A2FEF89 +:1009A00080E792E0215080409040E1F700C00000D5 +:1009B000279A2F9A2FEF80E792E0215080409040B5 +:1009C000E1F700C0000025982D982FEF80E792E016 +:1009D000215080409040E1F700C0000026982E98FA +:1009E0002FEF80E792E0215080409040E1F700C077 +:1009F000000027982F9856985E9825982D9826984D +:100A00002E9827982F98089589EA8093800089E08E +:100A10008093810024982C983F988AB18F748AB96A +:100A20006E98479A8BB1806B8BB9769A0E94AC0412 +:100A30000C94790580E2809301018091510181112C +:100A40000EC00E94140381E0809351012FEF83EDCB +:100A500090E3215080409040E1F700C0000080E426 +:100A60000E941A038093010181112EC00E94440349 +:100A700080930101811128C00E94440380930101E9 +:100A8000811122C08FE30E944403809301018111F0 +:100A90001BC00E943C0380E40E941A038093010162 +:100AA000811112C08CE00E944403809301018111E6 +:100AB0000BC00E94440380930101811105C08FE3A4 +:100AC0000E944403809301010E943C038091010134 +:100AD000089561110BC0FC018281882321F085EE0D +:100AE0000E945A1103C085EE0E94221280E090E01D +:100AF000089508956091BD017091BE018091BF017C +:100B00009091C0010E94571B56985E9825982D9889 +:100B100026982E9827982F98813019F0823021F04E +:100B20000895259A2D9A0895269A2E9A089581E07F +:100B3000089581E008950C94990508950F931F93EB +:100B4000CF93DF938C01FC01C081D181CE010E9443 +:100B5000D019BE010E944706EC01B8010E949B0516 +:100B6000882309F48DC0F8018281882309F44AC0E2 +:100B700080915D0181111FC0C431F0E5DF0709F0EC +:100B800051C00E949D0581E080935D010E94EF1B92 +:100B900090935C0180935B01109254011092560176 +:100BA00010925501109258011092570110925A015B +:100BB0001092590165C080915B0190915C010E9487 +:100BC000FB1B883C910570F480915401E82FF0E004 +:100BD000EE0FFF1FEB5AFE4FD183C0838F5F8093D0 +:100BE00054014EC0C43880E5D80721F0C538D0453F +:100BF00001F13AC0F8018281882341F0109252013C +:100C000082E01EC0C438E0E5DE0759F5809152014C +:100C1000811106C086E20E945A1186E20E942212C9 +:100C200082E01CC0C438F0E5DF0741F3C538D04589 +:100C3000D9F4F8018281882331F01092530180E2C7 +:100C40000E9471121DC080915301811106C087E27C +:100C50000E945A1187E20E94221280E20E947812BA +:100C60000FC0C538D04529F381E0809352018093AD +:100C70005301C801DF91CF911F910F910C949705FB +:100C800080E0DF91CF911F910F910895089596E034 +:100C9000799FF001112494E5899FE00DF11D112445 +:100CA000E60FF11DEE0FFF1FE25FFE4F859194915D +:100CB0000895880F991FFC01E657F04085919491A3 +:100CC0000895880F991FFC01E65FFE4F859194916E +:100CD00008950F931F93CF93DF93EC01811520E3C9 +:100CE000920750F5C11580E2D80708F0C3C0CB3B8E +:100CF000D10590F4C83AD10508F06AC0C53AD105CB +:100D000008F05BC0C430D10508F0D0C1219709F0CC +:100D1000CAC101E010E00AC2CF3FD10511F008F0CE +:100D2000C5C1C03FD10508F0A2C0CE01805E9109C7 +:100D3000089708F4BBC1B7C1C13090E5D90709F4E1 +:100D4000A2C020F5C0318FE4D80770F4C11590E43B +:100D5000D90708F094C0C11521E3D20708F0A3C158 +:100D6000DD278E01106CE2C1C115D04509F09BC191 +:100D70000E94D7148FEF94E32CE0815090402040E4 +:100D8000E1F700C000000E944A1CD0C1C11597E5E0 +:100D9000D90758F4C03121E5D20708F01CC1C4318D +:100DA00080E5D80708F475C07EC1CE019057811543 +:100DB000904108F078C1DF7073C1C53AD10509F4DC +:100DC00077C1C63AD10509F076C102E810E4AEC198 +:100DD000C83AD10509F472C1C93AD10509F471C103 +:100DE000CA3AD10509F470C1CB3AD10509F46FC1F3 +:100DF000CC3AD10509F46EC1CD3AD10509F46DC1E3 +:100E0000C03BD10509F46CC1CE3AD10509F46BC1E0 +:100E1000CF3AD10509F46AC1C13BD10509F469C1D2 +:100E2000C23BD10509F468C1C33BD10509F467C1D0 +:100E3000C43BD10509F466C1C53BD10509F465C1C0 +:100E4000C63BD10509F464C1C73BD10509F463C1B0 +:100E5000C83BD10509F462C1C93BD10509F461C1A0 +:100E6000CA3BD10509F460C100E014E45FC18E0102 +:100E700010655CC1CE019F700E94610658C1DF7091 +:100E80008E01106A53C18091DA0181608093DA018A +:100E90004DC10E94EF1D811102C00E94D51D0E940C +:100EA0000C1E90E09093FB018093FA01C23080E524 +:100EB000D80721F48091FA01816086C0C43090E5A2 +:100EC000D90721F48091FA0182607EC0C63020E506 +:100ED000D20721F48091FA01846076C0C83080E5A1 +:100EE000D80719F48091FA0127C0CA3090E5D907D4 +:100EF00021F48091FA01806167C0CC3020E5D207EF +:100F000021F48091FA0180625FC0CE3080E5D8077D +:100F100021F48091FA01806457C0C03190E5D9076F +:100F200021F48091FA0180684FC0C23120E5D207D8 +:100F300029F48091FA018460886046C0C33080E55E +:100F4000D80721F48091FA018E7F3EC0C53090E52C +:100F5000D90721F48091FA018D7F36C0C73020E592 +:100F6000D20721F48091FA018B7F2EC0C93080E531 +:100F7000D80719F48091FA0126C0CB3090E5D90743 +:100F800021F48091FA018F7E1FC0CD3020E5D20779 +:100F900021F48091FA018F7D17C0CF3080E5D8070A +:100FA00021F48091FA018F7B0FC0C13190E5D90700 +:100FB00021F48091FA018F7707C0C331D04531F415 +:100FC0008091FA018B7F877F8093FA018091FA01EB +:100FD0000E94101EABC08D2F99278F7099278130EA +:100FE0009105D9F49E012370332702C0880F991F01 +:100FF0002A95E2F79C688E0144E0000F111F4A9584 +:10100000E1F700271370802B912B53E0CC0FDD1FED +:101010005A95E1F7C076DD272FC08230910531F473 +:10102000DC2FCC278E01016F106A80C083309105C0 +:1010300069F4CE018370992701E010E002C0000F2F +:10104000111F8A95E2F7C8019C680FC08430910592 +:10105000B9F4CE018370992701E010E002C0000FBF +:10106000111F8A95E2F7C8019A6823E0CC0FDD1FB3 +:101070002A95E1F7C07ED7708C010C2B1D2B56C032 +:101080008530910531F4DC2FCC278E01046F106A76 +:101090004DC0069709F04AC0CF71DD27DC2FCC2761 +:1010A0008E01106243C000E010E040C08E013EC0DF +:1010B00001E810E43BC003E810E438C002EE14E499 +:1010C00035C009EE14E432C00AEE14E42FC005EB7B +:1010D00014E42CC006EB14E429C007EB14E426C08A +:1010E0000CEC14E423C00DEC14E420C003E815E478 +:1010F0001DC00AE815E41AC002E915E417C004E9A6 +:1011000015E414C001E216E411C003E216E40EC0B7 +:1011100004E216E40BC005E216E408C006E216E499 +:1011200005C007E216E402C00AE216E4C801DF9136 +:10113000CF911F910F91089596E0799FF0011124AE +:1011400094E5899FE00DF11D1124E60FF11DEE0FCE +:10115000FF1FE25FFE4F85919491803E9105E0F480 +:10116000803C910558F58133910509F46FC048F42E +:101170008932910509F463C08A32910509F46DC082 +:1011800072C089339105E9F082389105D1F0853339 +:10119000910509F44DC067C0833E910581F138F493 +:1011A000803E9105B9F0823E9105D9F05CC0863E43 +:1011B000910561F1873E9105A1F155C00E94590644 +:1011C00008952091FA0120FD02C021FF4CC080EE5D +:1011D00090E049C08091FA0180FFF9CF89E390E067 +:1011E00042C08091FA0182FF0EC08091FA0184FF13 +:1011F00003C080E090E037C083EE90E034C080917F +:10120000FA0182FFF2CF82EE90E02DC08091FA01C8 +:1012100083FF0BC08091FA0184FDEBCF87EE90E055 +:1012200022C08091FA0183FFF5CF86EE90E01BC0CB +:101230008091FA0185FF07C089E290E014C0809197 +:10124000FA0185FFF9CF85E390E00DC08091FA01A6 +:1012500086FF07C08AE290E006C08091FA0186FF0F +:10126000F9CF81E390E00E946906089508950C94F7 +:10127000360980916E010895CF93DF9300D01F92BD +:10128000CDB7DEB79C018091F101843019F593E070 +:1012900099833B832A839093E9008FEF9091E80034 +:1012A000815095FD06C095ED9A95F1F700008111EA +:1012B000F5CF8091E80085FF0DC040E050E063E08D +:1012C00070E0CE0101960E94A60B8091E8008E7717 +:1012D0008093E8000F900F900F90DF91CF910895C9 +:1012E000CF93DF9300D01F92CDB7DEB72091F101ED +:1012F000243021F522E029839B838A8383E0809335 +:10130000E9008FEF9091E800815095FD06C095EDC2 +:101310009A95F1F700008111F5CF8091E80085FFE3 +:101320000DC040E050E063E070E0CE0101960E9405 +:10133000A60B8091E8008E778093E8000F900F90C5 +:101340000F90DF91CF9108952091F1012430F1F4B5 +:1013500022E02093E9002FEF3091E800215035FD85 +:1013600006C035ED3A95F1F700002111F5CF209137 +:10137000E80025FF0BC040E050E065E070E00E940F +:10138000A60B8091E8008E778093E8000895CF93B4 +:10139000DF93EC019091F101943009F046C0809107 +:1013A0000C018823D9F080910D018823B9F0909326 +:1013B000E9008FEF9091E800815095FD06C095E11E +:1013C0009A95F1F700008111F5CF8091E80085FF33 +:1013D0002CC040E050E060E170E017C081E08093F5 +:1013E000E9008FEF9091E800815095FD06C095EDE2 +:1013F0009A95F1F700008111F5CF8091E80085FF03 +:1014000014C040E050E068E070E0CE010E94A60BFE +:101410008091E8008E778093E80080E1FE01AEE5E0 +:10142000B1E001900D928A95E1F7DF91CF91089597 +:101430008091F001811109C00E943B0D0E94980D1E +:101440008091E20084608093E20008951092F001A0 +:10145000089508950C947F220E94E01B0E9485222B +:101460000E943E100C94370942E061EC81E00E943A +:10147000B50C42E061EC82E00E94B50C42E061EC08 +:1014800083E00E94B50C42E161EC84E00C94B50C61 +:101490008091F301833009F455C030F4813071F04C +:1014A000823009F48EC008958A3009F47AC08B30F6 +:1014B00009F460C0893009F09CC020C08091F2011D +:1014C000813A09F096C08091E800877F8093E80018 +:1014D0008091F6019091F701892B21F460E18EE56E +:1014E00091E003C060E080E090E070E00E94F10BCA +:1014F0008091E8008B778093E80008958091F20155 +:10150000813209F076C08091F6019091F701009741 +:1015100019F0039709F06DC08091E800877F8093F0 +:10152000E8008091E80082FD05C08091F101811101 +:10153000F8CF5FC08091F10080936E018091E80048 +:101540008B7753C08091F201813A09F052C08091AB +:10155000F6019091F701892B09F04BC08091E800CA +:10156000877F8093E8008091E80080FFFCCF809126 +:101570000C0136C08091F2018132D9F58091F601DB +:101580009091F701892BA9F58091E800877F8093DE +:10159000E8000E94EA0C8091F40180930C010C9405 +:1015A000D7148091F201813221F58091E800877F84 +:1015B0008093E8000E94EA0C8091F50180936F010E +:1015C00008958091F201813AA1F48091E800877F2B +:1015D0008093E8008091E80080FFFCCF80916F014C +:1015E0008093F1008091E8008E778093E8000C945E +:1015F000EA0C089584B7877F84BF88E10FB6F8941A +:1016000080936000109260000FBE90E080E80FB6FB +:10161000F89480936100909361000FBE0E948D103A +:101620000E943B0D0E94980D8091E200846080939F +:10163000E20078940E941E100E948F1082E091E0D8 +:101640000E9439100E946D228091F101853069F469 +:101650000E94A71B8091EF018823B1F30E94D21B47 +:10166000882391F30E94900BEFCF0E949510ECCF4E +:10167000292F332723303105C9F064F42130310597 +:1016800081F02230310509F043C08DE690E022EE72 +:1016900033E042C021323105F1F02232310541F10F +:1016A00037C082E190E02FE434E036C099278130E2 +:1016B000910541F08230910541F0892B49F5EEED1D +:1016C000F3E005C0E6ECF3E002C0EEEAF3E084915B +:1016D00090E09F0121C06430D8F4E62FF0E0EE0FD7 +:1016E000FF1FEE5DFE4F2081318189E090E014C044 +:1016F000643070F470E0FB01EE0FFF1FE65EFE4FFA +:1017000020813181FB01EA5EFE4F808190E004C0C0 +:1017100080E090E020E030E0FA01318320830895FA +:1017200080E189BD82E189BD09B400FEFDCF8091D1 +:10173000D8008F7D8093D8008091E00082608093F4 +:10174000E0008091E00081FDFCCF0895CF92DF9210 +:10175000EF92FF920F931F93CF93DF93EC018B01D6 +:101760006A010E94090D811133C0C114D10439F0FE +:10177000F60180819181081B190BC80FD91FE12C3C +:10178000F12C0115110519F18091E80085FD16C0B5 +:101790008091E8008E778093E800C114D10449F06D +:1017A000F60180819181E80EF91EF182E08285E0E8 +:1017B0000FC00E94090D882321F30AC089918093EC +:1017C000F10001501109FFEFEF1AFF0ADACF80E0B4 +:1017D000DF91CF911F910F91FF90EF90DF90CF900D +:1017E00008952091F8013091F9012617370748F044 +:1017F0006115710539F42091E8002E772093E800F7 +:1018000001C0B90140E061157105A9F12091F10114 +:10181000222309F443C0253009F442C02091E80096 +:1018200023FD40C02091E80022FD32C02091E80055 +:1018300020FFE9CF4091F3002091F20030E0342BFB +:10184000FC01CF016115710559F02830310540F4D4 +:1018500081918093F100615071092F5F3F4FF1CF6B +:1018600041E02830310509F040E02091E8002E7772 +:101870002093E800C8CF4111C9CF0AC08091F1017F +:10188000882361F0853061F08091E80083FD0AC013 +:101890008091E80082FFF2CF80E0089582E0089511 +:1018A00083E0089581E008952091F8013091F901D5 +:1018B0002617370748F06115710539F42091E800C3 +:1018C0002E772093E80001C0B901FC0120E06115EA +:1018D000710591F18091F101882309F440C08530B0 +:1018E00009F43FC08091E80083FD3DC08091E8008D +:1018F00082FD2FC08091E80080FFE9CF2091F300A6 +:101900008091F20090E0922B6115710559F08830BA +:10191000910540F424912093F100319661507109B2 +:101920000196F2CF21E0089709F020E08091E800CD +:101930008E778093E800CBCF2111CCCF0AC0809165 +:10194000F101882361F0853061F08091E80083FD2A +:101950000AC08091E80082FFF2CF80E0089582E023 +:10196000089583E0089581E00895982F973058F501 +:101970009093E900981739F07091EC002091ED00F8 +:101980005091F00003C0242F762F50E021FF19C0A2 +:101990003091EB003E7F3093EB003091ED003D7FC6 +:1019A0003093ED003091EB0031603093EB00709399 +:1019B000EC002093ED005093F0002091EE0027FF03 +:1019C00007C09F5FD3CF8F708093E90081E00895B7 +:1019D00080E008958091F20187FF11C08091E800B6 +:1019E00082FD05C08091F1018111F8CF11C0809175 +:1019F000E8008B770BC08091F101882349F080913A +:101A0000E80080FFF8CF8091E8008E778093E800AF +:101A100008952091E4003091E50095E64091EC00B6 +:101A2000842F817040FF22C08091E80080FD1CC09F +:101A30008091F101882391F0853091F08091EB0045 +:101A400085FD10C04091E4005091E5004217530716 +:101A500029F39A01915011F784E0089582E00895E6 +:101A600083E0089581E0089580E008954091E800C2 +:101A700042FFDECF08950E94A90D0E94B10DE0EE55 +:101A8000F0E0808181608083E8EDF0E080818F77F5 +:101A9000808319BCA7EDB0E08C918E7F8C93808100 +:101AA0008F7E80831092F00108950F931F93CF9340 +:101AB000DF930E94A90D0E94B10DC8EDD0E088818E +:101AC0008F77888388818068888388818F7D8883E9 +:101AD00019BC1092F1011092ED011092EF011092D9 +:101AE000EE0100EE10E0F80180818B7F8083888119 +:101AF0008160888342E060E080E00E94B50CE1EE06 +:101B0000F0E080818E7F8083E2EEF0E08081816072 +:101B10008083808188608083F80180818E7F8083CC +:101B2000888180618883DF91CF911F910F91089503 +:101B3000E8EDF0E080818F7E8083E7EDF0E080814A +:101B40008160808384E082BF81E08093F0010C9407 +:101B5000550DE8EDF0E080818E7F80831092E200E9 +:101B600008951092DA001092E10008951F920F92EA +:101B70000FB60F9211242F933F934F935F936F9360 +:101B80007F938F939F93AF93BF93EF93FF93809136 +:101B9000E10082FF0BC08091E20082FF07C08091CC +:101BA000E1008B7F8093E1000E941D108091DA009C +:101BB00080FF1FC08091D80080FF1BC08091DA0099 +:101BC0008E7F8093DA008091D90080FF0DC080E184 +:101BD00089BD82E189BD09B400FEFDCF81E080931B +:101BE000F1010E94180A05C019BC1092F1010E946F +:101BF000260A8091E10080FF19C08091E20080FFF9 +:101C000015C08091E2008E7F8093E2008091E20017 +:101C100080618093E2008091D80080628093D80038 +:101C200019BC85E08093F1010E942A0A8091E100AD +:101C300084FF30C08091E20084FF2CC080E189BD28 +:101C400082E189BD09B400FEFDCF8091D8008F7D6F +:101C50008093D8008091E1008F7E8093E100809195 +:101C6000E2008F7E8093E2008091E20081608093A9 +:101C7000E2008091ED01882311F084E007C080919B +:101C8000E30087FD02C081E001C083E08093F101A1 +:101C90000E942C0A8091E10083FF29C08091E2001C +:101CA00083FF25C08091E100877F8093E10082E07F +:101CB0008093F1011092ED018091E1008E7F80937D +:101CC000E1008091E2008E7F8093E2008091E2004B +:101CD00080618093E20042E060E080E00E94B50C09 +:101CE0008091F00088608093F0000E94290AFF91A3 +:101CF000EF91BF91AF919F918F917F916F915F9184 +:101D00004F913F912F910F900FBE0F901F901895FC +:101D10001F920F920FB60F9211242F933F934F9360 +:101D20005F936F937F938F939F93AF93BF93CF9363 +:101D3000DF93EF93FF93C091E900CF708091EC00A7 +:101D4000D82FD17080FDD0E81092E9008091F0008A +:101D5000877F8093F00078940E94CC0E1092E90067 +:101D60008091F00088608093F000CD2BCF70C093FD +:101D7000E900FF91EF91DF91CF91BF91AF919F91DA +:101D80008F917F916F915F914F913F912F910F9024 +:101D90000FBE0F901F9018951F93CF93DF93CDB771 +:101DA000DEB7AA970FB6F894DEBF0FBECDBFE2EF45 +:101DB000F1E088E08E0F9091F10091938E13FBCFAC +:101DC0000E94480A8091E80083FF1FC18091F201C0 +:101DD0009091F301492F50E04A30510508F015C1A8 +:101DE000FA01EA5AFF4F0C940724803881F08238B8 +:101DF00009F00BC18091F6018F708093E90080910A +:101E0000EB0085FB882780F91092E90006C08091DD +:101E1000EE019091EF01911182609091E800977F1F +:101E20009093E8008093F1001092F100C8C0282F31 +:101E30002D7F09F0EAC0882319F0823061F0E5C0F7 +:101E40008091F401813009F0E0C0933009F080E026 +:101E50008093EF012BC08091F401811127C0809104 +:101E6000F6018F7009F4D1C08093E9002091EB0056 +:101E700020FF1CC0933021F48091EB00806214C0DD +:101E80009091EB0090619093EB0021E030E0A9018C +:101E900002C0440F551F8A95E2F74093EA00109262 +:101EA000EA008091EB0088608093EB001092E900DB +:101EB0008091E800877F86C08111A7C01091F4014E +:101EC0001F778091E3008078812B8093E3008091DD +:101ED000E800877F8093E8000E94EA0C8091E80088 +:101EE00080FFFCCF8091E30080688093E3001111B4 +:101EF00002C082E001C083E08093F10186C0805877 +:101F0000823008F082C08091F4019091F5018C3DFF +:101F100053E0950779F583E08A838AE289834FB796 +:101F2000F894DE01139620E03EE051E2E32FF0E06A +:101F300050935700E49120FF03C0E295EF703F5F9C +:101F4000EF708E2F90E0EA3010F0C79601C0C09677 +:101F50008D939D932F5F243149F74FBF8091E80007 +:101F6000877F8093E8006AE270E0CE0101960E94CC +:101F7000F10B14C0AE014F5F5F4F6091F6010E94FC +:101F8000380BBC01009709F440C09091E800977F9E +:101F90009093E80089819A810E94540C8091E80016 +:101FA0008B778093E80031C0803879F58091E80024 +:101FB000877F8093E8008091ED018093F10080910C +:101FC000E8008E778093E8000E94EA0C1EC0811121 +:101FD0001CC09091F4019230C0F48091E800877F9A +:101FE0008093E8009093ED010E94EA0C8091ED014E +:101FF000811106C08091E30087FD02C081E001C02D +:1020000084E08093F1010E94340A8091E80083FF0C +:102010000AC08091E800877F8093E8008091EB0000 +:1020200080628093EB00AA960FB6F894DEBF0FBED5 +:10203000CDBFDF91CF911F9108950895CF938091E7 +:10204000F1018823A1F0C091E900CF709091EC00DC +:10205000892F817090FD80E8C82B1092E900809153 +:10206000E80083FD0E94CC0ECF70C093E900CF91B1 +:10207000089590937501809374010895E09174011F +:10208000F0917501309721F00190F081E02D0994D5 +:1020900080E00895E0917401F0917501309721F08E +:1020A0000280F381E02D09940895E0917401F0918C +:1020B0007501309721F00480F581E02D0994089591 +:1020C00020917201309173018217930771F0909300 +:1020D000730180937201E0917401F0917501309762 +:1020E00021F00680F781E02D099408952091700178 +:1020F000309171018217930771F090937101809371 +:102100007001E0917401F0917501309721F0008425 +:10211000F185E02D0994089508950C948C100E9487 +:10212000E61B0E9487030C94A81C9F92AF92BF925B +:10213000CF92DF92EF92FF920F931F93CF93DF9393 +:1021400000D000D000D0CDB7DEB70E949F030DE0D5 +:1021500010E0AA24A394B12C902E802F0E948D040D +:10216000980129583E4F6901F901F080F826A1F441 +:102170000150110988F78FEF89838A831B820E949F +:10218000EF1B8160782F9D838C8349815A816B81FD +:102190008D810E942C112FC09091DA0191FF04C013 +:1021A0008E830E9493048E8125E030E0A501022EEB +:1021B00001C0440F0A94EAF7E42E4F21C1F02983AD +:1021C0009A828E2191E009F490E09B830E94EF1B9C +:1021D0008160782F9D838C8349815A816B818D81A9 +:1021E0000E942C11F6018081E826E08204C0215073 +:1021F0003109E0F6BDCF0E948F1F109176010E9439 +:102200003E101817B9F00E943E1080937601269672 +:102210000FB6F894DEBF0FBECDBFDF91CF911F91F7 +:102220000F91FF90EF90DF90CF90BF90AF909F9075 +:102230000C94370926960FB6F894DEBF0FBECDBFBB +:10224000DF91CF911F910F91FF90EF90DF90CF9092 +:10225000BF90AF909F900895CF93DF93CDB7DEB737 +:102260002B970FB6F894DEBF0FBECDBF4F835887B4 +:1022700069877A878B87DE01119686E0FD011192CE +:102280008A95E9F785E0FE01379601900D928A95CF +:10229000E1F749815A816B817C818D819E810E9409 +:1022A00075172B960FB6F894DEBF0FBECDBFDF912A +:1022B000CF910895CF93882309F4C2C0C82F8238E4 +:1022C00059F40E943E1081FDBBC089E30E944F1A61 +:1022D0000E941C1B89E30CC0833879F40E943E10D5 +:1022E00080FDAEC083E50E944F1A0E941C1B83E54F +:1022F0000E94911ACF910C941C1B843859F40E94AF +:102300003E1082FD9DC087E40E944F1A0E941C1B54 +:1023100087E4EECF8CEF8C0F813A48F48C2F0E942B +:10232000D22181118DC08C2F0E944F1AE3CF80E201 +:102330008C0F883048F4C77081E001C0880FCA95BF +:10234000EAF70E94D51AD6CF8BE58C0F833078F44C +:10235000C53A29F0C63A31F083E890E005C081E83B +:1023600090E002C082E890E0CF910C94601088E584 +:102370008C0F833108F064C0C83A39F1C93A41F191 +:10238000CA3A49F1CB3A51F1CC3A59F1CD3A61F11F +:10239000C03B69F1CE3A71F1CF3A79F1C13B81F19D +:1023A000C23B89F1C33B91F1C43B99F1C53BA1F11B +:1023B000C63BA9F1C73BB1F1C83BB9F1C93BC1F17B +:1023C000CA3BC9F180E090E038C082EE90E035C0B1 +:1023D00089EE90E032C08AEE90E02FC085EB90E06D +:1023E0002CC086EB90E029C087EB90E026C08CECF7 +:1023F00090E023C08DEC90E020C083E891E01DC008 +:102400008AE891E01AC082E991E017C084E991E07E +:1024100014C081E292E011C083E292E00EC084E237 +:1024200092E00BC085E292E008C086E292E005C02F +:1024300087E292E002C08AE292E0CF910C9476109B +:10244000CF910895882309F44BC0823859F40E9433 +:102450003E1081FF45C089E30E944F1A0E941C1B59 +:1024600089E30CC0833871F40E943E1080FF38C0AD +:1024700083E50E944F1A0E941C1B83E50E94911A5B +:102480000C941C1B843859F40E943E1082FF28C013 +:1024900087E40E944F1A0E941C1B87E4EFCF9CEF39 +:1024A000980F913A58F390E2980F983050F4877053 +:1024B00091E001C0990F8A95EAF7892F0E94DB1AF3 +:1024C000DFCF9BE5980F933020F480E090E00C94F0 +:1024D0006010885A833120F480E090E00C947610EC +:1024E0000895882321F00E94D51A0C941C1B08958E +:1024F000882321F00E94DB1A0C941C1B08957F9204 +:102500008F929F92AF92BF92CF92DF92EF92FF9203 +:102510000F931F93CF93DF931F92CDB7DEB77C014C +:10252000C62E772EFC01058102950F7012811111C4 +:102530000E94F21A0E94481A882379F0112369F048 +:1025400080E28C0D883048F082E00E94311A0E94AF +:10255000481A91E0D82ED92601C0D12CE72DE2955A +:10256000EF70F0E0E05AFF4F0C940724872D807F36 +:10257000072D0F70882311F00295007F112389F039 +:10258000002309F490C180E28C0D883020F4802F64 +:102590000E94D51A03C0802F0E94E51A0E941C1BBE +:1025A00082C18C2D0E942212002309F495C180E281 +:1025B0008C0D883020F4802F0E94DB1A03C0802FFE +:1025C0000E94EB1A0E941C1B87C1972D907F872DBC +:1025D0008F70903211F08295807FCC2021F0F1E055 +:1025E000CF16B1F01EC0112349F0002309F414C125 +:1025F000013009F011C10E94051B6EC1002319F0C2 +:10260000013009F469C189830E94081B89810AC1CC +:10261000112321F0023008F05FC1FEC001115CC13E +:1026200001C1112321F0002309F4F6C03CC10023AD +:1026300009F4F8C03EC1872D86958695837090E099 +:10264000009719F0019761F047C1112321F08C2DFB +:10265000972D937002C080E090E00E9460103CC112 +:10266000112321F08C2D972D937002C080E090E013 +:102670000E94761031C18C2D112319F00E94971EF3 +:1026800002C00E94FF1E0E94841F26C1872D8370F6 +:1026900009F052C0111120C18C2D8295869587704A +:1026A000880F880F9C2D9F70892E912CA12CB12C06 +:1026B000082E04C0880C991CAA1CBB1C0A94D2F7D3 +:1026C000C4FE14C00FE010E020E030E0B901A80122 +:1026D00004C0440F551F661F771F8A95D2F7CB01A0 +:1026E000BA01609570958095909503C060E070E0A8 +:1026F000CB01272D26952695237030E02230310519 +:1027000069F02330310589F0682979298A299B29C4 +:102710002130310571F00E94BD18DEC06829792989 +:102720008A299B290E94D918D7C00E94BD18C501CB +:10273000B4010E94A118D0C0112319F0872D817017 +:1027400001C08695882309F4C7C08C2D8295869593 +:102750008770880F880F9C2D9F70892E912CA12C3B +:10276000B12C082E04C0880C991CAA1CBB1C0A940E +:10277000D2F7C4FE14C00FE010E020E030E0B90151 +:10278000A80104C0440F551F661F771F8A95D2F712 +:10279000CB01BA01609570958095909503C060E07B +:1027A00070E0CB01272D269526952370422F50E00F +:1027B0004230510569F04330510589F06829792983 +:1027C0008A299B294130510571F00E94971984C0D4 +:1027D000682979298A299B290E94B3197DC00E9402 +:1027E0009719C501B4010E947B1976C08C2D90E029 +:1027F000FC01E05EF109E531F10508F050C0E05957 +:10280000FF4F0C9407240C2D0F70872D8F7111230F +:1028100031F00E941419802F0E9471125DC00E9435 +:102820003519802F0E94781257C0112339F00111F9 +:1028300053C0872D8F710E945A194EC0023008F084 +:102840004BC0F7CF112339F0872D8F710E941419D7 +:1028500043C01123C9F3872D8F710E9435193CC0E5 +:10286000112329F0872D8F710E94FF1835C00E9417 +:10287000F51832C0112351F0172D1F71812F0E94BE +:10288000141963E0812F0E94281A26C081E00E945B +:10289000311A023008F182E00E94311A1DC0112362 +:1028A00031F0002389F28C2D0E945A1115C00023AB +:1028B00091F28C2D0E9422120FC0472D4F706C2D6B +:1028C000C7010E9469050E94191806C0472D4F7064 +:1028D0006C2DC7010E944606DD20F9F00E94241AE3 +:1028E00080FD1BC0F70112820E941E1A0E9414195B +:1028F000C7010E949C140E941E1A0F90DF91CF9175 +:102900001F910F91FF90EF90DF90CF90BF90AF900D +:102910009F908F907F900C9435190F90DF91CF91FD +:102920001F910F91FF90EF90DF90CF90BF90AF90ED +:102930009F908F907F9008950F931F93CF93DF9375 +:10294000EC01888199812B813C81232BB9F09F3F39 +:1029500011F48F3F99F0CE010E949E05882371F0FB +:10296000688179818A810E941A1A8C010E94CF198C +:102970000E949618B801CE010E947F12DF91CF917C +:102980001F910F9108950E94F21A0E94021B0E944B +:10299000C71A0E941C1B0E9435200E94841F80E0E1 +:1029A00090E00E94601080E090E00C9476100E940D +:1029B000E21A0C94C3140E940F1A292F22952F702B +:1029C00030E02C3031054CF42A3031056CF42250C3 +:1029D000310922303105A8F407C02C30310569F0E7 +:1029E0002F30310551F00DC0803F69F018F4803E62 +:1029F00040F409C0843F29F406C093FB882780F97E +:102A0000089580E0089581E00895CF93DF9300D08A +:102A100000D01F92CDB7DEB70F900F900F900F90A0 +:102A20000F90DF91CF910895CF93DF9300D000D026 +:102A300000D0CDB7DEB726960FB6F894DEBF0FBE36 +:102A4000CDBFDF91CF9108951F93CF93DF93C091B6 +:102A5000850116E080918601C81799F0D0E01C9F8F +:102A6000F0011D9FF00D1124E957FE4F4081518167 +:102A700062817381848195810E9414152196C770AB +:102A8000E9CFDF91CF911F9108954091B701509107 +:102A9000B8016091B9017091BA018091BB01909128 +:102AA000BC010C9414158091BC0182958F7009F0C3 +:102AB00054C08091B901882309F44FC080918501E9 +:102AC000A09186016091B7017091B8014091BA015F +:102AD0005091BB01B6E08A1709F43FC090E0411560 +:102AE0005105C1F17F3F11F46F3FA1F1B89FF00193 +:102AF000B99FF00D1124E957FE4F218172132AC0AE +:102B00002081621327C02281211124C023813481B6 +:102B10002417350710F421503109241B350B283CAC +:102B20003105C0F42091BC012F7020612093BC01BD +:102B300026E0289FF001299FF00D1124E457FE4F55 +:102B400080818F708061808387EB91E00E949C146C +:102B50000C94241501968770BECF0895CF92DF9212 +:102B6000EF92FF920F931F93CF93DF93CDB7DEB712 +:102B700062970FB6F894DEBF0FBECDBF8C0185E023 +:102B8000F801DE011D9601900D928A95E1F7D801BA +:102B90004C9111965C91119712966C911297139625 +:102BA000CD90DC9014973091B7017091B80180916D +:102BB000BA019091BB01009709F46BC17F3F19F4F2 +:102BC0003F3F09F466C1E090B901EE2009F4C0C0AE +:102BD0002091BC01C816D90628F0F601E81BF90BB4 +:102BE000CF0104C0809590958C0D9D1DFF24F3941A +:102BF000883C910578F0F12C207F09F0C6C07C2D2F +:102C0000D98AC88A89890E94051587EB91E00E94BC +:102C10009C14B1C0822F807F09F046C0751314C088 +:102C2000341312C0611110C02F7020612093BC01B9 +:102C30000E94451587EB91E00E949C148091BC0195 +:102C4000D80115968C932EC0CD2819F15F3F11F451 +:102C50004F3FF9F0F62E61111CC080918501209143 +:102C6000860136E0821709F45AC090E0389FF001DF +:102C7000399FF00D1124E957FE4F7181571306C09B +:102C80007081471303C07281711103C00196877070 +:102C9000E9CFF62E662309F418C18091BC0181604A +:102CA0008093BC01F12C11C1751308C0341306C008 +:102CB000611104C08091BC01D801C3C04D875E87FB +:102CC0008D859E856A8B0E94DB146A898823E1F1D9 +:102CD0006623D1F12091BC01822F82958F7090E004 +:102CE000029774F08091B7019091B80198878F8313 +:102CF0001986DB86CA862C87CE0107960E949C1413 +:102D000086E0F801A7EBB1E001900D928A95E1F71A +:102D10000E9453150E944515FF24F394D6C04D8799 +:102D20005E878D859E850E940F1A292F22952F7010 +:102D300030E0223031050CF0BCC09F7009F0B6C005 +:102D4000805E883008F4C1C0C8010E949C14E4CFA2 +:102D5000C816D90608F453C0F601E81BF90BCF01D9 +:102D6000883C910508F450C0F12C7C2DD98AC88A82 +:102D700089890E940515E7EBF1E086E0DF011D92ED +:102D80008A95E9F70E944515A0C0751314C0341345 +:102D900012C0611110C08091BC01F8018583C80187 +:102DA0000E949C1486E0E7EBF1E0DF011D928A951A +:102DB000E9F7FE2C8AC04D875E878D859E856A8BDC +:102DC0000E94DB146A89882309F4BECF662309F4C4 +:102DD000BBCF2091BC01822F82958F7090E002972B +:102DE0000CF48ECF8091B7019091B8019A838983BA +:102DF0001B82DD82CC822E83CE0101967FCF80950F +:102E000090958C0D9D1DACCFF62E662309F49CCFBA +:102E100075132EC034132CC02091BC0120FD1FC09F +:102E2000822F82958F70D9F0D80115962C93159723 +:102E30008F3049F08F5F982F9295907F822F8F70FF +:102E4000892B15968C93C8010E949C1486E0F8018A +:102E5000A7EBB1E001900D928A95E1F793CF86E060 +:102E6000F801A7EBB1E001900D928A95E1F72DC032 +:102E70004D875E878D859E850E94DB14811140CF32 +:102E80008091BC0181608093BC01C8010E949C14A8 +:102E90001CC0662309F458CF4D875E878D859E85BB +:102EA0000E94DB14882309F44FCF2ACF811148CF29 +:102EB0000CC0243031050CF047CF9F7009F440CF8F +:102EC000F8019581907F09F03BCF8F2D62960FB668 +:102ED000F894DEBF0FBECDBFDF91CF911F910F9150 +:102EE000FF90EF90DF90CF9008951F93CF93DF93E3 +:102EF000CDB7DEB72C970FB6F894DEBF0FBECDBFAF +:102F00004F83588769877A878B879C87CE0107967E +:102F10000E94AE15882369F08F8198852A853B85AC +:102F2000232BF1F19F3F09F063C08F3F09F060C090 +:102F300037C086E0FE013796DE01119601900D92B2 +:102F40008A95E1F76F817885EA85FB85309741F1B5 +:102F50007F3F11F46F3F21F12091860130E0C901DC +:102F60000196877099274091850150E08417950755 +:102F700009F447C069837A83FD83EC8396E0929FCE +:102F8000D001939FB00D1124A957BE4FFE01319679 +:102F900001900D929A95E1F7809386010E94241585 +:102FA00016E080918501909186018917C1F1189FE3 +:102FB000C001112489579E4F0E94AE15882379F1D4 +:102FC000E09185011E9FF0011124E957FE4F4081D9 +:102FD000518162817381848195810E941415809151 +:102FE000850190E001968770992780938501D9CF5C +:102FF0004F81588569857A858B859C850E9414153B +:10300000CFCF0E94D7141092860110928501E7EB72 +:10301000F1E086E0DF011D928A95E9F7C1CF2C9699 +:103020000FB6F894DEBF0FBECDBFDF91CF911F91D9 +:103030000895EF92FF920F931F93CF93DF938C012C +:10304000009709F46CC0F12CEE24E394E80121967A +:10305000F8018491843740F4843008F051C0813005 +:1030600081F0823019F15BC0853709F444C0A8F1C2 +:103070009CE7980F903708F052C08F770E94221279 +:1030800041C00E5F1F4FFE01C49180E28C0F88305B +:1030900048F4C7708E2D01C0880FCA95EAF70E94C8 +:1030A000F51A14C08C2F0E945A112DC00E5F1F4FAD +:1030B000FE01C49180E28C0F883058F4C7708E2DC9 +:1030C00001C0880FCA95EAF70E94FB1A0E941C1BD8 +:1030D0001AC08C2F0E94221216C00E5F1F4FFE01D5 +:1030E000C491CC2381F08FE99FE00197F1F700C0F4 +:1030F0000000C150F6CF0E5F1F4FFE01F49003C0D9 +:103100000E945A118E018F2D882309F49FCFEFE979 +:10311000FFE03197F1F700C000008150F5CFDF915B +:10312000CF911F910F91FF90EF90089508956093B4 +:10313000C1017093C2018093C3019093C4010C94A8 +:10314000C3140F931F930091C1011091C2012091EC +:10315000C3013091C401DC01CB01802B912BA22B48 +:10316000B32B8093C1019093C201A093C301B0938C +:10317000C4011F910F910C94C3140F931F930091DE +:10318000C1011091C2012091C3013091C401DC0141 +:10319000CB0180239123A223B3238093C101909379 +:1031A000C201A093C301B093C4011F910F910C946D +:1031B000C3140F931F930091C1011091C20120917C +:1031C000C3013091C401DC01CB0180279127A227E4 +:1031D000B3278093C1019093C201A093C301B09320 +:1031E000C4011F910F910C94C3141092BD01109251 +:1031F000BE011092BF011092C0010C94C31441E0B3 +:1032000050E060E070E004C0440F551F661F771F58 +:103210008A95D2F74093BD015093BE016093BF01E0 +:103220007093C0010C94C31441E050E060E070E082 +:1032300004C0440F551F661F771F8A95D2F78091EF +:10324000BD019091BE01A091BF01B091C001482B7A +:10325000592B6A2B7B2B4093BD015093BE01609389 +:10326000BF017093C0010C94C31441E050E060E0D2 +:1032700070E004C0440F551F661F771F8A95D2F770 +:1032800040955095609570958091BD019091BE01DB +:10329000A091BF01B091C001482359236A237B2329 +:1032A0004093BD015093BE016093BF017093C00174 +:1032B0000C94C31441E050E060E070E004C0440F9F +:1032C000551F661F771F8A95D2F78091BD01909197 +:1032D000BE01A091BF01B091C001482759276A27BC +:1032E0007B274093BD015093BE016093BF01709353 +:1032F000C0010C94C3140F931F930091BD01109152 +:10330000BE012091BF013091C001DC01CB01802BB7 +:10331000912BA22BB32B8093BD019093BE01A09360 +:10332000BF01B093C0011F910F910C94C3140F9370 +:103330001F930091BD011091BE012091BF013091FA +:10334000C001DC01CB0180239123A223B32380930E +:10335000BD019093BE01A093BF01B093C0011F9126 +:103360000F910C94C3140F931F930091BD01109102 +:10337000BE012091BF013091C001DC01CB0180274B +:103380009127A227B3278093BD019093BE01A093FC +:10339000BF01B093C0011F910F910C94C314089505 +:1033A000CF92DF92EF92FF920F931F93CF93DF9311 +:1033B0008C01C090C101D090C201E090C301F09097 +:1033C000C4018091BD019091BE01A091BF01B09157 +:1033D000C001C82AD92AEA2AFB2ACFE1D0E0D701C6 +:1033E000C6010C2E04C0B695A795979587950A94AB +:1033F000D2F780FF06C0B8018C2F0E949C0801976D +:1034000021F4219760F780E001C08C2FDF91CF91EC +:103410001F910F91FF90EF90DF90CF900895CF9381 +:10342000DF93EC010E94D019BE010E949C08DF913D +:10343000CF910895CB010E940F1A08958091C50184 +:1034400085958595859508958091C5018770089526 +:1034500098E0899F90011124262B2093C5010C949C +:1034600014192091C501809582238093C501982F5E +:10347000977069F430E0482F552747FD5095241781 +:10348000350729F08595859585950C94351908950E +:103490009091C501977081E009F480E008959091C2 +:1034A0000C01992321F090910D01911109C02091F7 +:1034B0000E0130910F01F90132969FEF40E01FC0DD +:1034C000982F9695969596959F3050F5E0910E0120 +:1034D000F0910F01E90FF11D877021E030E0A901A3 +:1034E00002C0440F551F8A95E2F7CA019181892BCA +:1034F000818308959F3F39F04F5F4E3041F05191E5 +:103500005813F8CF0DC05111F7CF942FF5CF9F3F2F +:1035100039F0F901E90FF11D97FDFA9582830895BD +:10352000089590910C01992321F090910D01911132 +:1035300009C020910E0130910F01F9013296205FF0 +:103540003F4F1FC0982F9695969596959F30F0F413 +:10355000E0910E01F0910F01E90FF11D877021E05C +:1035600030E0A90102C0440F551F8A95E2F7CA0155 +:10357000809591818923818308953196E217F3071D +:1035800029F090819813F9CF1082F7CF089581E048 +:1035900090E0E0910E01F0910F01E80FF91F108209 +:1035A000019680319105A9F708959091D901892B51 +:1035B0008093D901089580959091D90189238093B2 +:1035C000D90108951092D90108959091D801892BBD +:1035D0008093D801089580959091D8018923809394 +:1035E000D80108951092D80108959091D701892BA0 +:1035F0008093D701089580959091D7018923809376 +:10360000D70108951092D70108958093C6010895B7 +:103610001092C601089580910E0190910F01FC0156 +:1036200031969C01205F3F4F80E0919191118F5F17 +:10363000E217F307D1F70895E0910E01F0910F0121 +:103640008091D9018083E0910E01F0910F0190816A +:103650008091D801892B8083E0910E01F0910F01B8 +:1036600090818091D701892B80838091C601882326 +:1036700061F0E0910E01F0910F019081892B808320 +:103680000E940B1B81111092C60180910E01909136 +:103690000F010C944A1020E0009739F0AC01415022 +:1036A0005109842395232F5FF7CF822F0895CF925E +:1036B000DF92EF92FF926C01EE24FF24C114D1043B +:1036C000E104F10421F0C701B60120E101C020E0CE +:1036D000C72ED82EE92EFF24C114D104E104F10431 +:1036E00019F0285FC701B6016B017C0154E0F69424 +:1036F000E794D794C7945A95D1F7C114D104E10443 +:10370000F10419F02C5FC701B6016B017C0142E0A6 +:10371000F694E794D794C7944A95D1F7C114D1048D +:10372000E104F10419F02E5FC701B601DC01CB0101 +:10373000B695A79597958795892B8A2B8B2B09F0A2 +:103740002F5F822FFF90EF90DF90CF9008958091B0 +:10375000F101843021F11092DB0120E488E190E056 +:103760000FB6F894A895809360000FBE2093600078 +:1037700080E00E94370983B7817F846083BF83B76D +:10378000816083BF7894889583B78E7F83BF88E1FB +:103790000FB6F89480936000109260000FBE0895F9 +:1037A000089508950E94D01B0E949F030E94D11B80 +:1037B0000E94940491E0811101C090E0892F089546 +:1037C0000E94D7140E943E100C94370982E084BDF9 +:1037D00093E095BD9AEF97BD80936E0008952FB743 +:1037E000F8948091DC019091DD01A091DE01B0910F +:1037F000DF012FBF0895CF92DF92EF92FF920F93D8 +:103800001F932FB7F8944091DC015091DD01609136 +:10381000DE017091DF012FBF6A017B01EE24FF24DE +:103820008C0120E030E0C016D106E206F30610F469 +:10383000415051099A01281B390BC9011F910F9161 +:10384000FF90EF90DF90CF9008951F920F920FB6E8 +:103850000F9211248F939F93AF93BF938091DC01BC +:103860009091DD01A091DE01B091DF010196A11DD3 +:10387000B11D8093DC019093DD01A093DE01B09334 +:10388000DF01BF91AF919F918F910F900FBE0F906D +:103890001F9018950E943B0DF8942FEF87EA91E650 +:1038A000215080409040E1F700C0000087E090EB9D +:1038B000DC018093FB019093FC01A093FD01B09388 +:1038C000FE019CE088E10FB6F894A8958093600013 +:1038D0000FBE90936000FFCFEF92FF920F931F9364 +:1038E000CF93DF93D82FCDE08C2F0E948D0405E07D +:1038F00010E0E82EF12CC701002E02C095958795A7 +:103900000A94E2F780FF09C0602F7C2F80E00E94BC +:103910004706D81302C081E006C00150110958F7CC +:10392000C15010F780E0DF91CF911F910F91FF9070 +:10393000EF900895CF93C82F8CE20E946C1C8823CF +:1039400021F08C2FCF910C946C1C80E0CF910895C6 +:10395000CF930E94EF1D811102C00E94D51DC5E6C4 +:10396000C15049F00E949F038FE39CE90197F1F752 +:1039700000C00000F5CF89E20E949A1C811113C19A +:103980008AE20E949A1C81110E94D51D85E00E9446 +:103990009A1C81110E944A1C0E94FA1D8093DA0130 +:1039A00087E00E949A1C8823A9F18BE10E949A1C4F +:1039B000882351F08091DA0181FB222720F991E0E0 +:1039C000922790FB81F90EC08EE00E949A1C8823FA +:1039D00061F08091DA0182FB222720F991E09227A1 +:1039E00090FB82F98093DA0115C080E10E949A1C55 +:1039F0009091DA01882341F093FB222720F981E09E +:103A0000822780FB93F904C0892F809580FB90F971 +:103A10009093DA018091DA010E94FE1D0E940C1E33 +:103A20008093FA0180EE0E949A1C882341F08091D5 +:103A3000FA01982F909590FB80F98093FA0189E321 +:103A40000E949A1C882359F08091FA0181FB222759 +:103A500020F991E0922790FB81F98093FA0182EEA0 +:103A60000E949A1C882359F08091FA0182FB222738 +:103A700020F991E0922790FB82F98093FA0186EE7B +:103A80000E949A1C882359F08091FA0183FB222717 +:103A900020F991E0922790FB83F98093FA0183EE5D +:103AA0000E949A1C882359F08091FA0184FB2227F6 +:103AB00020F991E0922790FB84F98093FA0185E345 +:103AC0000E949A1C882359F08091FA0185FB2227D5 +:103AD00020F991E0922790FB85F98093FA0181E328 +:103AE0000E949A1C882359F08091FA0186FB2227B4 +:103AF00020F991E0922790FB86F98093FA0181E109 +:103B00000E949A1C882359F08091FA0187FB222792 +:103B100020F991E0922790FB87F98093FA01809138 +:103B2000FA010E94101E8091FA0187FB882780F914 +:103B300080930D0187E20E949A1CC82F8EE10E949B +:103B40009A1C8111C2608FE10E949A1C8111C4608D +:103B500080E20E949A1C8111C86081E20E949A1C36 +:103B60008111C06182E20E949A1C8111C06283E2CD +:103B70000E949A1C8111C06484E20E949A1C8823CE +:103B800011F0C06802C0CC2329F08C2F0E94071EC0 +:103B90006C2F03C00E94031E682F70E080E090E04D +:103BA000CF910C949718CF9108956DEE7EEF80E041 +:103BB00090E00E94412460E082E090E00E942F2487 +:103BC00060E083E090E00E942F2460E084E090E0D9 +:103BD0000E942F2460E085E090E00C942F2480E088 +:103BE00090E00E94292421E08D3E9E4F09F020E0C4 +:103BF000822F089582E090E00C942124682F82E0C7 +:103C000090E00C942F2483E090E00C942124682F02 +:103C100083E090E00C942F2484E090E00C94212425 +:103C2000682F84E090E00C942F248091E20180FFC3 +:103C30000BC06091130185E0689FB0011124759558 +:103C40006795759567952BC081FF09C06091130139 +:103C500085E0689FB00111247595679520C082FFAB +:103C600007C06091130185E0689FB001112417C05F +:103C70009091E3019923D1F060911201961788F792 +:103C80002091130185E0289F90011124929FA001AB +:103C9000939F500D112470E0CA010E94F3236038F5 +:103CA000710540F46115710539F002C065E070E0FE +:103CB000862F08958FE7089581E008958091E201AD +:103CC00080FF08C06091110170E07595679575954A +:103CD000679521C081FF06C06091110170E0759564 +:103CE000679519C082FF04C06091110170E010C097 +:103CF0009091E3019923C1F0609110019617A0F70C +:103D000080911101899FC001112470E00E94F3236A +:103D10006038710528F46115710521F0862F08952A +:103D20008FE7089581E0089561E070E0F4CF803F6F +:103D300021F40E94151E819504C0813F29F40E9440 +:103D4000151E8093E6010895823F21F40E94151EFE +:103D5000819504C0833F29F40E94151E8093E501DC +:103D60000895893F19F40E945E1E05C08A3F31F410 +:103D70000E945E1E81958093E70108958B3F21F498 +:103D80000E945E1E819504C08C3F29F40E945E1E35 +:103D90008093E8010895843F21F48091E4018160DB +:103DA00017C0853F21F48091E401826011C0863FF5 +:103DB00021F48091E40184600BC0873F21F480915D +:103DC000E401886005C0883F31F48091E40180619E +:103DD0008093E40108958D3F21F48091E201816098 +:103DE0000BC08E3F21F48091E201826005C08F3FBD +:103DF00029F48091E20184608093E2010895803F7C +:103E000039F48091E60187FF6CC01092E60169C029 +:103E1000813F29F48091E6011816BCF362C09091AD +:103E2000E501823F29F497FF5CC01092E50159C07B +:103E3000833F19F41916CCF354C0893F41F48091A3 +:103E4000E70118160CF04DC01092E7014AC08A3FF6 +:103E500029F48091E70187FF44C0F6CF8B3F39F406 +:103E60008091E80187FF3DC01092E8013AC08C3F85 +:103E700029F48091E8011816BCF333C0843F21F483 +:103E80008091E4018E7F17C0853F21F48091E40189 +:103E90008D7F11C0863F21F48091E4018B7F0BC0A0 +:103EA000873F21F48091E401877F05C0883F31F48A +:103EB0008091E4018F7E8093E40113C08D3F21F453 +:103EC0008091E2018E7F0BC08E3F21F48091E20150 +:103ED0008D7F05C08F3F29F48091E2018B7F809315 +:103EE000E2018091E50181110EC08091E60181110E +:103EF0000AC08091E701811106C08091E80181111B +:103F000002C01092E301089584EE91E00E945510E2 +:103F10000E94EF1B9093E1018093E00108951F93AD +:103F2000CF93DF938091E0019091E1010E94FB1B10 +:103F3000AC019091E301992321F02091140130E02C +:103F400006C0209115018AE0289F90011124421794 +:103F5000530708F486C08091E501C091E601D09135 +:103F6000E7011091E801811107C0C11176C0D1119C +:103F700074C0111172C075C09F3F19F09F5F90937C +:103F8000E301181624F40E94151E8093E501809128 +:103F9000E50187FF05C00E94151E81958093E5010C +:103FA0001C1624F40E94151E8093E6018091E60100 +:103FB00087FF05C00E94151E81958093E6016091E0 +:103FC000E501662339F1C091E601CC2319F1772789 +:103FD00067FD7095872F972F0E94042323E333E317 +:103FE00043E35FE30E9468230E94D1226093E501CE +:103FF0006C2F772767FD7095872F972F0E940423DA +:1040000023E333E343E35FE30E9468230E94D1226A +:104010006093E6011D1624F40E945E1E8093E70162 +:104020008091E70187FF05C00E945E1E8195809305 +:10403000E701111624F40E945E1E8093E80180912E +:10404000E80187FF05C00E945E1E81958093E8010C +:10405000DF91CF911F910C94841F9F3F09F08ECF69 +:1040600096CFDF91CF911F910895E4EEF1E085E0C6 +:10407000DF011D928A95E9F71092E3011092E201A7 +:104080000895833081F128F4813059F08230D1F0E5 +:104090000895853009F449C0B8F1863009F456C056 +:1040A000089580911501262F30E0280F311D2F3FF4 +:1040B000310524F4680F6093150108958FEF809304 +:1040C0001501089580911401262F30E0280F311D2D +:1040D0002F3F310524F4680F6093140108958FEF8A +:1040E00080931401089580911301262F30E0280F4A +:1040F000311D2F3F310524F4680F6093130108959B +:104100008FEF80931301089580911201262F30E0E4 +:10411000280F311D2F3F310524F4680F60931201E1 +:1041200008958FEF80931201089580911101262F39 +:1041300030E0280F311D2F3F310524F4680F6093C4 +:10414000110108958FEF809311010895809110015E +:10415000262F30E0280F311D2F3F310524F4680F42 +:104160006093100108958FEF8093100108958330BC +:1041700011F128F4813049F0823091F008958530B2 +:1041800081F120F18630C1F1089580911501681701 +:1041900020F4861B8093150108951092150108954F +:1041A00080911401681720F4861B809314010895F0 +:1041B00010921401089580911301681720F4861B52 +:1041C00080931301089510921301089580911201B4 +:1041D000681720F4861B8093120108951092120133 +:1041E000089580911101681720F4861B80931101B6 +:1041F000089510921101089580911001681720F41C +:10420000861B8093100108951092100108950F935A +:104210001F938D3109F46BC008F03FC08E3009F454 +:104220007FC0C0F4873009F469C068F4863009F0B3 +:10423000B1C08091DA01817F8E7F8093DA0181E0C5 +:104240008093EA01A8C0883009F4A2C08B3009F439 +:104250009FC0A0C0863109F49BC078F4803109F476 +:1042600072C0813109F096C00E94D71490910D015F +:1042700081E0892780930D018BC0893109F488C0C2 +:104280008B3109F087C08091DA0181FB222720F968 +:1042900091E0922790FB81F94CC0853309F470C0FE +:1042A00048F4873209F46CC008F459C0893209F423 +:1042B00067C070C0833438F48A3308F04EC0883346 +:1042C00009F466C067C0833409F45AC0883409F021 +:1042D00061C00E94D7140FEF13ED20E3015010408E +:1042E0002040E1F700C000000E944A1C51C00E941B +:1042F0008B220E943E100E9437094AC09091DA0139 +:10430000892F8095817080FB90F929F096609860E4 +:104310009093DA0140C0997F977F9093DA0138C07B +:104320008091DA0182FB222720F991E0922790FB0D +:1043300082F98093DA01992359F18091DA01816041 +:104340008093DA0125C08091DA0183FB222720F9CE +:1043500091E0922790FB83F9ECCF895301C08D51F6 +:1043600041E050E060E070E08A019B0104C0000F72 +:10437000111F221F331F8A95D2F7C901B80104C04B +:1043800061E070E080E090E00E9497180E94D714EE +:1043900081E001C080E01F910F91089580E00895B1 +:1043A00080E00895CF93C82F8091EA01813079F0A1 +:1043B00018F08230E9F187C0E0910E01F0910F0111 +:1043C0008081813169F0823209F07FC009C0E091BB +:1043D0000E01F0910F018081813111F0823261F480 +:1043E0008C2F0E94CE21811104C08C2F0E940721A6 +:1043F0001DC081E090E01AC08C2F0E94D021811155 +:1044000014C0C43179F048F4CB3079F0C03109F0F0 +:1044100060C082E08093EA0108C0C93219F0C83355 +:1044200021F057C01092EA0154C081E0817053C05E +:10443000C93289F118F5C43171F1A8F4C73009F017 +:1044400046C08AE08093150194E19093140193E0B3 +:10445000909313018093120188E08093110188E208 +:104460008093100134C0CE51C63088F5EC2FF0E0B7 +:10447000E65DFE4F80818093E90129C0CE34E9F0EA +:1044800020F4CB3421F56AE013C0C13579F0C23590 +:10449000F1F461E00DC08091E901882319F01092D8 +:1044A000E90115C081E08093EA0115C061E006C012 +:1044B0008091E9010E9441200AC06AE08091E901EF +:1044C0000E94B72004C01092EA0180E004C081E09D +:1044D00002C080E0ABCFCF910895E1E8F0E08081A9 +:1044E000886080838081816080838FB7F89493E0B7 +:1044F0009093890090ED909388008FBF0895EFE628 +:10450000F0E08081826080830895EFE6F0E08081B2 +:104510008D7F80830895EFE6F0E0908182E0892727 +:10452000808308951F920F920FB60F9211242F933C +:104530003F934F935F936F937F938F939F93AF932B +:10454000BF93EF93FF938091EB019091EC01019663 +:104550009093EC018093EB01811103C082E00E94F3 +:104560003709E091EC01E695E695F0E0E45AFA4F60 +:10457000E4918091EB018E1303C080E00E94370923 +:10458000FF91EF91BF91AF919F918F917F916F912B +:104590005F914F913F912F910F900FBE0F901F9001 +:1045A000189504D06894B1118DC0089570D088F02A +:1045B0009F5790F0B92F9927B751A0F0D1F0660F0F +:1045C000771F881F991F1AF0BA95C9F712C0B1302A +:1045D00081F077D0B1E0089574C0672F782F8827D5 +:1045E000B85F39F0B93FCCF3869577956795B39569 +:1045F000D9F73EF490958095709561957F4F8F4FD8 +:104600009F4F0895E89409C097FB3EF490958095DC +:10461000709561957F4F8F4F9F4F9923A9F0F92F88 +:1046200096E9BB279395F695879577956795B79506 +:10463000F111F8CFFAF4BB0F11F460FF1BC06F5FEC +:104640007F4F8F4F9F4F16C0882311F096E911C0FE +:10465000772321F09EE8872F762F05C0662371F01F +:1046600096E8862F70E060E02AF09A95660F771F33 +:10467000881FDAF7880F9695879597F9089557FD63 +:104680009058440F551F59F05F3F71F04795880FC0 +:1046900097FB991F61F09F3F79F087950895121657 +:1046A00013061406551FF2CF4695F1DF08C0161603 +:1046B00017061806991FF1CF8695710561050894B4 +:1046C0000895E894BB2766277727CB0197F90895CB +:1046D0000BD078C069D028F06ED018F0952309F07F +:1046E0005AC05FC01124EECFCADFA0F3959FD1F36B +:1046F000950F50E0551F629FF001729FBB27F00D90 +:10470000B11D639FAA27F00DB11DAA1F649F6627E4 +:10471000B00DA11D661F829F2227B00DA11D621F33 +:10472000739FB00DA11D621F839FA00D611D221FED +:10473000749F3327A00D611D231F849F600D211DD1 +:10474000822F762F6A2F11249F5750408AF0E1F074 +:1047500088234AF0EE0FFF1FBB1F661F771F881FBD +:1047600091505040A9F79E3F510570F014C0AACF58 +:104770005F3FECF3983EDCF3869577956795B795A8 +:10478000F795E7959F5FC1F7FE2B880F911D9695D2 +:10479000879597F9089597F99F6780E870E060E042 +:1047A00008959FEF80EC089500240A9416161706CA +:1047B00018060906089500240A9412161306140612 +:1047C00005060895092E0394000C11F4882352F075 +:1047D000BB0F40F4BF2B11F460FF04C06F5F7F4F2D +:1047E0008F4F9F4F089597FB072E16F4009407D024 +:1047F00077FD09D00E940D2407FC05D03EF490956A +:1048000081959F4F0895709561957F4F0895EE0FA4 +:10481000FF1F0590F491E02D0994AA1BBB1B51E1E9 +:1048200007C0AA1FBB1FA617B70710F0A61BB70B20 +:10483000881F991F5A95A9F780959095BC01CD01C5 +:104840000895F999FECF92BD81BDF89A992780B558 +:104850000895A8E1B0E042E050E00C944924262FEE +:10486000F999FECF92BD81BDF89A019700B4021666 +:1048700039F01FBA20BD0FB6F894FA9AF99A0FBE14 +:1048800008950196272F0E9430240C942F24DC01D8 +:10489000CB01FC01F999FECF06C0F2BDE1BDF89A4B +:1048A000319600B40D9241505040B8F70895F894F5 +:0248B000FFCF38 +:1048B20002203909C709A40970093C090101C7018D +:1048C20028080A03140A3F4D36391D05D0049A04FC +:1048D2006104F4030D0426043F04010203040506E7 +:0448E20007080900BA +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/dragon788/keymap.c b/keyboards/ergodox_ez/keymaps/dragon788/keymap.c new file mode 100644 index 000000000..3aec8c6cf --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/dragon788/keymap.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/keyboards/ergodox_ez/keymaps/dvorak/compiled.hex b/keyboards/ergodox_ez/keymaps/dvorak/compiled.hex new file mode 100644 index 000000000..c757b276d --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/dvorak/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947A020C94BE020C94BE020C94BE02B4 +:100010000C94BE020C94BE020C94BE020C94BE0260 +:100020000C94BE020C94BE020C94620D0C94340E1F +:100030000C94BE020C94BE020C94BE020C94BE0240 +:100040000C94BE020C943E220C94BE020C94BE0290 +:100050000C94BE020C94D11B0C94BE020C94BE02F4 +:100060000C94BE020C94BE020C94BE020C94BE0210 +:100070000C94BE020C94BE020C94BE020C94BE0200 +:100080000C94BE020C94BE020C94BE020C94BE02F0 +:100090000C94BE020C94BE020C94BE020C94BE02E0 +:1000A0000C94BE020C94BE020C94BE02A10EC30EB0 +:1000B000B10FC30EB10F080F2B0FB10F800F930FAD +:1000C0006212621291129112C712E71218141814D8 +:1000D000F2121814A213A2130914181418141214EB +:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300 +:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0 +:10010000C113CE13D513DC13E6130000F0A12E00AB +:100110004C002A00E100354100001E0034000400BC +:10012000337134004D001F00360012001400E1044A +:100130002A002000370008000D0050002C0021008C +:10014000130018000E004F004A0022001C000C0093 +:100150001B0000006574500001540000007F000087 +:10016000E3004F000154000000770000E20023008C +:100170000900070005000000297124000A000B0097 +:10018000100052004B002500060017001A00510015 +:10019000280026001500110019002F002B00270051 +:1001A0000F0016421D7130004E00310038002D0046 +:1001B000E500C10000000100010001000100010094 +:1001C00000003A001E0220022202010001003B0052 +:1001D0001F0221022302010001003C002F0226021F +:1001E0002F00010001003D00300227023000010015 +:1001F00001003E003102350035020000010001001F +:1002000001000000010000000100010001000000E9 +:100210000100000001003F005200510024020000D4 +:1002200001004000240021001E00010001004100E7 +:10023000250022001F003700010042002600230095 +:10024000200027000100430025022E0231002E006D +:100250000100440045000100010001000000010010 +:100260000100010001000100000001000100010087 +:1002700001000100010001000100F2000100010085 +:1002800001000100F000F1000100F4000100010094 +:100290000100F3000100F500010001000100010070 +:1002A0000100000001000100010000000100000049 +:1002B0000100010001000000010000000100010038 +:1002C0000100010001000000010001000100010027 +:1002D0000100A9000100010001000100AC00AA001A +:1002E000B600010001000100AB00A8000100010000 +:1002F0000100010001000100010001000100AE0049 +:1003000001000100000016034500720067006F0045 +:1003100044006F007800200045005A0000001603DA +:100320004500720067006F0044006F0078002000F5 +:1003300045005A0000000403090409026D0004018D +:1003400000A0FA09040000010301010009211101C4 +:100350000001223F000705810308000A090401008B +:100360000103010200092111010001224D000705CE +:10037000820308000A0904020001030000000921A9 +:10038000110100012236000705830308000A090451 +:1003900003000103000000092111010001223900BE +:1003A000070584031000011201100100000008ED90 +:1003B000FE071301000102000105010906A1010564 +:1003C0000719E029E7150025019508750181020547 +:1003D000081901290595057501910295017503918B +:1003E0000105071900297715002501957875018108 +:1003F00002C005010980A101850216010026B7008F +:100400001A01002AB700751095018100C0050C097A +:1004100001A1018503160100269C021A01002A9CF5 +:1004200002751095018100C005010902A1010901B1 +:10043000A10005091901290515002501950575017A +:10044000810295017503810105010930093115818A +:10045000257F95027508810609381581257F95014C +:1004600075088106050C0A38021581257F950175EE +:10047000088106C0C005010906A101050719E02988 +:10048000E715002501950875018102950175088120 +:100490000105081901290595057501910295017558 +:1004A0000391010507190029FF150025FF95067521 +:1004B000088100C0000000000000000000000001F2 +:1004C0000204060A0F17202C3A4A5D71879DB3C7B4 +:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF +:1004E0003A2C20170F0A0604020100000000000049 +:1004F0000000000011241FBECFEFDAE0DEBFCDBF49 +:1005000004B603FE24C08091FB019091FC01A091F0 +:10051000FD01B091FE018730904BA740B04BB9F47C +:100520001092FB011092FC011092FD011092FE014D +:1005300014BE84B7877F84BF88E10FB6F894809398 +:100540006000109260000FBEE0E0FFE3099511E04B +:10055000A0E0B1E0EAE0F8E402C005900D92A43317 +:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0 +:10057000B107E1F70E94A60A0C9403240C94000032 +:100580001092B9008AE08093B800089594EA90939D +:10059000BC009091BC0097FFFCCF9091B900987F70 +:1005A000983021F0903111F081E008958093BB00E4 +:1005B00084E88093BC008091BC0087FFFCCF8091D1 +:1005C000B900887F883111F0803471F780E0089598 +:1005D00084E98093BC008091BC0084FDFCCF089529 +:1005E0008093BB0084E88093BC008091BC0087FFAF +:1005F000FCCF9091B900987F81E0983209F480E0B7 +:10060000089584E88093BC008091BC0087FFFCCFF4 +:100610008091BB00089580910101811115C080E493 +:100620000E94C6028093010181110CC082E10E94E8 +:10063000F00280930101811105C08FEF0E94F0024A +:10064000809301010E94E80284B1807F84B985B162 +:10065000807F85B98AB1837F8AB98BB1837F8BB95B +:100660003E98469808950E94C604809301010E9416 +:100670000B0380B38C7080BB81B3836F81BBA5E318 +:10068000B1E0E3E4F1E08EE08E0F11921D928E1343 +:10069000FCCF0C94B004BF92CF92DF92EF92FF9206 +:1006A0000F931F93CF93DF9380910101882379F0FB +:1006B000809134018F5F80933401811108C00E94C2 +:1006C000C60480930101811102C00E94580405E311 +:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407 +:1006E000E394F12CC730D10500F58091010181110F +:1006F00064C080E40E94C60280930101811112C08F +:1007000082E10E94F0028093010181110BC0C701B8 +:100710000C2E01C0880F0A94EAF780950E94F0021F +:10072000809301010E94E80248C0CA30A1F028F479 +:10073000C83059F0C93061F005C0CC3089F070F094 +:10074000CD3089F0209A289810C0219A29980DC0A0 +:10075000229A2A980AC0239A2B9807C0529A01C05D +:10076000539A5B9802C03E9A469890EA9A95F1F7A0 +:100770009FB1799902C082E001C080E091709D250F +:10078000982B7C9902C084E001C080E0892B7D9980 +:1007900002C038E001C030E0832B7E9902C020E126 +:1007A00001C020E0822B9FB19095991F9927991F36 +:1007B0009295990F907E892B0FC080910101811134 +:1007C00049C080E40E94C60280930101882379F128 +:1007D000B12C0E94E8028B2DF8019081981719F036 +:1007E0008083C09200010E940B0321960F5F1F4F70 +:1007F000CE30D10509F076CF80910001882361F1D8 +:10080000815080930001882339F08FE99FE00197A0 +:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F +:10082000CF01825F91919D938E13FCCF15C083E120 +:100830000E94F002809301018111CACF81E40E94DD +:10084000C602809301018111C3CF0E940103B82E1B +:10085000B094BFCF80E0C0CF0E94560481E0DF910A +:10086000CF911F910F91FF90EF90DF90CF90BF90AD +:100870000895E82FF0E0ED5BFE4F80810895089524 +:100880000F931F93CF93DF93C3E4D1E010E00C2FBD +:10089000025F899190E00E94F71A180F0C13F9CFAC +:1008A000812FDF91CF911F910F9108950C94260510 +:1008B00056985E9825982D9826982E9827982F98C8 +:1008C0008FEF90E0909389008093880090938B0045 +:1008D00080938A0090938D0080938C00259A2D9AA6 +:1008E0002FEF80E792E0215080409040E1F700C078 +:1008F0000000269A2E9A2FEF80E792E02150804048 +:100900009040E1F700C00000279A2F9A2FEF80E770 +:1009100092E0215080409040E1F700C0000025980F +:100920002D982FEF80E792E0215080409040E1F732 +:1009300000C0000026982E982FEF80E792E021500B +:1009400080409040E1F700C0000027982F9856980B +:100950005E9825982D9826982E9827982F98089578 +:1009600089EA8093800089E08093810024982C9804 +:100970003F988AB18F748AB96E98479A8BB1806B11 +:100980008BB9769A0E9458040C94250580E28093D6 +:1009900001018091510181110EC00E94C00281E0CD +:1009A000809351012FEF83ED90E3215080409040E0 +:1009B000E1F700C0000080E40E94C60280930101BC +:1009C00081112EC00E94F00280930101811128C084 +:1009D0000E94F00280930101811122C08FE30E94E6 +:1009E000F0028093010181111BC00E94E80280E4A3 +:1009F0000E94C60280930101811112C08CE00E9406 +:100A0000F0028093010181110BC00E94F0028093DB +:100A10000101811105C08FE30E94F0028093010162 +:100A20000E94E80280910101089561110BC0FC0150 +:100A30008281882321F085EE0E94061103C085EE95 +:100A40000E94CE1180E090E0089508956091BD016C +:100A50007091BE018091BF019091C0010E94031B63 +:100A600056985E9825982D9826982E9827982F9816 +:100A7000813019F0823021F00895259A2D9A089539 +:100A8000269A2E9A089581E0089581E008950C94A5 +:100A9000450508950F931F93CF93DF938C01FC01BD +:100AA000C081D181CE010E947C19BE010E94F30554 +:100AB000EC01B8010E944705882309F48DC0F801B4 +:100AC0008281882309F44AC080915D0181111FC091 +:100AD000C431F0E5DF0709F051C00E94490581E00B +:100AE00080935D010E949B1B90935C0180935B014E +:100AF0001092540110925601109255011092580113 +:100B00001092570110925A011092590165C08091BC +:100B10005B0190915C010E94A71B883C910570F4D9 +:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB +:100B3000D183C0838F5F809354014EC0C43880E559 +:100B4000D80721F0C538D04501F13AC0F8018281BB +:100B5000882341F01092520182E01EC0C438E0E5C3 +:100B6000DE0759F580915201811106C086E20E948C +:100B7000061186E20E94CE1182E01CC0C438F0E566 +:100B8000DF0741F3C538D045D9F4F80182818823C5 +:100B900031F01092530180E20E941D121DC080911D +:100BA0005301811106C087E20E94061187E20E946C +:100BB000CE1180E20E9424120FC0C538D04529F31F +:100BC00081E08093520180935301C801DF91CF915E +:100BD0001F910F910C94430580E0DF91CF911F91FD +:100BE0000F910895089596E0799FF001112494E5FE +:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F +:100C0000E25FFE4F859194910895880F991FFC0132 +:100C1000E657F040859194910895880F991FFC0143 +:100C2000E65FFE4F8591949108950F931F93CF93A4 +:100C3000DF93EC01811520E3920750F5C11580E2A6 +:100C4000D80708F0C3C0CB3BD10590F4C83AD10512 +:100C500008F06AC0C53AD10508F05BC0C430D105C0 +:100C600008F0D0C1219709F0CAC101E010E00AC222 +:100C7000CF3FD10511F008F0C5C1C03FD10508F044 +:100C8000A2C0CE01805E9109089708F4BBC1B7C12C +:100C9000C13090E5D90709F4A2C020F5C0318FE436 +:100CA000D80770F4C11590E4D90708F094C0C115B5 +:100CB00021E3D20708F0A3C1DD278E01106CE2C149 +:100CC000C115D04509F09BC10E9483148FEF94E3B6 +:100CD0002CE0815090402040E1F700C000000E94CD +:100CE000F61BD0C1C11597E5D90758F4C03121E5ED +:100CF000D20708F01CC1C43180E5D80708F475C0DC +:100D00007EC1CE0190578115904108F078C1DF7007 +:100D100073C1C53AD10509F477C1C63AD10509F0C6 +:100D200076C102E810E4AEC1C83AD10509F472C137 +:100D3000C93AD10509F471C1CA3AD10509F470C1A3 +:100D4000CB3AD10509F46FC1CC3AD10509F46EC193 +:100D5000CD3AD10509F46DC1C03BD10509F46CC190 +:100D6000CE3AD10509F46BC1CF3AD10509F46AC175 +:100D7000C13BD10509F469C1C23BD10509F468C181 +:100D8000C33BD10509F467C1C43BD10509F466C171 +:100D9000C53BD10509F465C1C63BD10509F464C161 +:100DA000C73BD10509F463C1C83BD10509F462C151 +:100DB000C93BD10509F461C1CA3BD10509F460C141 +:100DC00000E014E45FC18E0110655CC1CE019F702C +:100DD0000E940D0658C1DF708E01106A53C18091C8 +:100DE000DA0181608093DA014DC10E949B1D81115F +:100DF00002C00E94811D0E94B81D90E09093FB01EB +:100E00008093FA01C23080E5D80721F48091FA017D +:100E1000816086C0C43090E5D90721F48091FA0141 +:100E200082607EC0C63020E5D20721F48091FA01AD +:100E3000846076C0C83080E5D80719F48091FA0143 +:100E400027C0CA3090E5D90721F48091FA0180616A +:100E500067C0CC3020E5D20721F48091FA0180628E +:100E60005FC0CE3080E5D80721F48091FA0180641C +:100E700057C0C03190E5D90721F48091FA0180680C +:100E80004FC0C23120E5D20729F48091FA01846075 +:100E9000886046C0C33080E5D80721F48091FA010C +:100EA0008E7F3EC0C53090E5D90721F48091FA01CC +:100EB0008D7F36C0C73020E5D20721F48091FA013A +:100EC0008B7F2EC0C93080E5D80719F48091FA01D4 +:100ED00026C0CB3090E5D90721F48091FA018F7EAE +:100EE0001FC0CD3020E5D20721F48091FA018F7D1B +:100EF00017C0CF3080E5D80721F48091FA018F7BAD +:100F00000FC0C13190E5D90721F48091FA018F77A4 +:100F100007C0C331D04531F48091FA018B7F877FC0 +:100F20008093FA018091FA010E94BC1DABC08D2F05 +:100F300099278F70992781309105D9F49E012370EC +:100F4000332702C0880F991F2A95E2F79C688E010B +:100F500044E0000F111F4A95E1F700271370802B22 +:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA +:100F70002FC08230910531F4DC2FCC278E01016F18 +:100F8000106A80C08330910569F4CE01837099277F +:100F900001E010E002C0000F111F8A95E2F7C801BE +:100FA0009C680FC084309105B9F4CE0183709927F5 +:100FB00001E010E002C0000F111F8A95E2F7C8019E +:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029 +:100FD0008C010C2B1D2B56C08530910531F4DC2F74 +:100FE000CC278E01046F106A4DC0069709F04AC0E5 +:100FF000CF71DD27DC2FCC278E01106243C000E0CB +:1010000010E040C08E013EC001E810E43BC003E8A0 +:1010100010E438C002EE14E435C009EE14E432C026 +:101020000AEE14E42FC005EB14E42CC006EB14E424 +:1010300029C007EB14E426C00CEC14E423C00DEC2B +:1010400014E420C003E815E41DC00AE815E41AC042 +:1010500002E915E417C004E915E414C001E216E43E +:1010600011C003E216E40EC004E216E40BC005E270 +:1010700016E408C006E216E405C007E216E402C062 +:101080000AE216E4C801DF91CF911F910F910895F4 +:1010900096E0799FF001112494E5899FE00DF11D00 +:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149 +:1010B0009491803E9105E0F4803C910558F5813390 +:1010C000910509F46FC048F48932910509F463C0B1 +:1010D0008A32910509F46DC072C089339105E9F037 +:1010E00082389105D1F08533910509F44DC067C070 +:1010F000833E910581F138F4803E9105B9F0823E3E +:101100009105D9F05CC0863E910561F1873E91055D +:10111000A1F155C00E94050608952091FA0120FD15 +:1011200002C021FF4CC080EE90E049C08091FA01DE +:1011300080FFF9CF89E390E042C08091FA0182FFFD +:101140000EC08091FA0184FF03C080E090E037C0B8 +:1011500083EE90E034C08091FA0182FFF2CF82EEFC +:1011600090E02DC08091FA0183FF0BC08091FA01BD +:1011700084FDEBCF87EE90E022C08091FA0183FFDF +:10118000F5CF86EE90E01BC08091FA0185FF07C085 +:1011900089E290E014C08091FA0185FFF9CF85E3E0 +:1011A00090E00DC08091FA0186FF07C08AE290E0CE +:1011B00006C08091FA0186FFF9CF81E390E00E949A +:1011C0001506089508950C94E20880916E01089523 +:1011D000CF93DF9300D01F92CDB7DEB79C018091F3 +:1011E000F101843019F593E099833B832A8390932E +:1011F000E9008FEF9091E800815095FD06C095EDD4 +:101200009A95F1F700008111F5CF8091E80085FFF4 +:101210000DC040E050E063E070E0CE0101960E9416 +:10122000520B8091E8008E778093E8000F900F902A +:101230000F90DF91CF910895CF93DF9300D01F924D +:10124000CDB7DEB72091F101243021F522E02983CA +:101250009B838A8383E08093E9008FEF9091E8007D +:10126000815095FD06C095ED9A95F1F7000081112A +:10127000F5CF8091E80085FF0DC040E050E063E0CD +:1012800070E0CE0101960E94520B8091E8008E77AB +:101290008093E8000F900F900F90DF91CF91089509 +:1012A0002091F1012430F1F422E02093E9002FEFA6 +:1012B0003091E800215035FD06C035ED3A95F1F743 +:1012C00000002111F5CF2091E80025FF0BC040E080 +:1012D00050E065E070E00E94520B8091E8008E774C +:1012E0008093E8000895CF93DF93EC019091F10192 +:1012F000943009F046C080910C018823D9F0809188 +:101300000D018823B9F09093E9008FEF9091E800E8 +:10131000815095FD06C095E19A95F1F70000811185 +:10132000F5CF8091E80085FF2CC040E050E060E1FF +:1013300070E017C081E08093E9008FEF9091E800A2 +:10134000815095FD06C095ED9A95F1F70000811149 +:10135000F5CF8091E80085FF14C040E050E068E0E0 +:1013600070E0CE010E94520B8091E8008E7780934E +:10137000E80080E1FE01AEE5B1E001900D928A95B2 +:10138000E1F7DF91CF9108958091F001811109C0BB +:101390000E94E70C0E94440D8091E20084608093DB +:1013A000E20008951092F001089508950C942B2204 +:1013B0000E948C1B0E9431220E94EA0F0C94E308C9 +:1013C00042E061EC81E00E94610C42E061EC82E06D +:1013D0000E94610C42E061EC83E00E94610C42E1FA +:1013E00061EC84E00C94610C8091F301833009F48A +:1013F00055C030F4813071F0823009F48EC0089508 +:101400008A3009F47AC08B3009F460C0893009F061 +:101410009CC020C08091F201813A09F096C0809171 +:10142000E800877F8093E8008091F6019091F701B2 +:10143000892B21F460E18EE591E003C060E080E05B +:1014400090E070E00E949D0B8091E8008B77809384 +:10145000E80008958091F201813209F076C0809110 +:10146000F6019091F701009719F0039709F06DC00C +:101470008091E800877F8093E8008091E80082FDFA +:1014800005C08091F1018111F8CF5FC08091F1001A +:1014900080936E018091E8008B7753C08091F201B8 +:1014A000813A09F052C08091F6019091F701892BA1 +:1014B00009F04BC08091E800877F8093E80080911D +:1014C000E80080FFFCCF80910C0136C08091F201D2 +:1014D0008132D9F58091F6019091F701892BA9F518 +:1014E0008091E800877F8093E8000E94960C8091AD +:1014F000F40180930C010C9483148091F2018132E9 +:1015000021F58091E800877F8093E8000E94960C87 +:101510008091F50180936F0108958091F201813AE5 +:10152000A1F48091E800877F8093E8008091E80033 +:1015300080FFFCCF80916F018093F1008091E800E3 +:101540008E778093E8000C94960C089584B7877F7B +:1015500084BF88E10FB6F894809360001092600019 +:101560000FBE90E080E80FB6F894809361009093EE +:1015700061000FBE0E9439100E94E70C0E94440DCA +:101580008091E20084608093E20078940E94CA0F08 +:101590000E943B1082E091E00E94E50F0E94192218 +:1015A0008091F101853069F40E94531B8091EF0115 +:1015B0008823B1F30E947E1B882391F30E943C0B89 +:1015C000EFCF0E944110ECCF292F33272330310574 +:1015D000C9F064F42130310581F02230310509F081 +:1015E00043C08DE690E02AE333E042C0213231056A +:1015F000F1F02232310541F137C082E190E027EA73 +:1016000033E036C099278130910541F08230910551 +:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4 +:1016200002C0E6E0F3E0849190E09F0121C06430C5 +:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5 +:10164000318189E090E014C0643070F470E0FB01F7 +:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47 +:10166000FE4F808190E004C080E090E020E030E018 +:10167000FA0131832083089580E189BD82E189BD2B +:1016800009B400FEFDCF8091D8008F7D8093D800F3 +:101690008091E00082608093E0008091E00081FD15 +:1016A000FCCF0895CF92DF92EF92FF920F931F939A +:1016B000CF93DF93EC018B016A010E94B50C81117D +:1016C00033C0C114D10439F0F60180819181081B27 +:1016D000190BC80FD91FE12CF12C0115110519F1B7 +:1016E0008091E80085FD16C08091E8008E77809398 +:1016F000E800C114D10449F0F60180819181E80E1F +:10170000F91EF182E08285E00FC00E94B50C8823AB +:1017100021F30AC089918093F10001501109FFEF74 +:10172000EF1AFF0ADACF80E0DF91CF911F910F917E +:10173000FF90EF90DF90CF9008952091F8013091C5 +:10174000F9012617370748F06115710539F4209122 +:10175000E8002E772093E80001C0B90140E0611550 +:101760007105A9F12091F101222309F443C025302C +:1017700009F442C02091E80023FD40C02091E80018 +:1017800022FD32C02091E80020FFE9CF4091F30014 +:101790002091F20030E0342BFC01CF01611571057E +:1017A00059F02830310540F481918093F100615067 +:1017B00071092F5F3F4FF1CF41E02830310509F02B +:1017C00040E02091E8002E772093E800C8CF411137 +:1017D000C9CF0AC08091F101882361F0853061F0A2 +:1017E0008091E80083FD0AC08091E80082FFF2CF7B +:1017F00080E0089582E0089583E0089581E00895EF +:101800002091F8013091F9012617370748F061154A +:10181000710539F42091E8002E772093E80001C08B +:10182000B901FC0120E06115710591F18091F10190 +:10183000882309F440C0853009F43FC08091E80056 +:1018400083FD3DC08091E80082FD2FC08091E800BB +:1018500080FFE9CF2091F3008091F20090E0922B7D +:101860006115710559F08830910540F42491209359 +:10187000F1003196615071090196F2CF21E008978D +:1018800009F020E08091E8008E778093E800CBCFCC +:101890002111CCCF0AC08091F101882361F08530FD +:1018A00061F08091E80083FD0AC08091E80082FF2A +:1018B000F2CF80E0089582E0089583E0089581E00A +:1018C0000895982F973058F59093E900981739F0BC +:1018D0007091EC002091ED005091F00003C0242F96 +:1018E000762F50E021FF19C03091EB003E7F3093FE +:1018F000EB003091ED003D7F3093ED003091EB0037 +:1019000031603093EB007093EC002093ED00509326 +:10191000F0002091EE0027FF07C09F5FD3CF8F70AC +:101920008093E90081E0089580E008958091F201BC +:1019300087FF11C08091E80082FD05C08091F10110 +:101940008111F8CF11C08091E8008B770BC0809196 +:10195000F101882349F08091E80080FFF8CF809161 +:10196000E8008E778093E80008952091E40030919C +:10197000E50095E64091EC00842F817040FF22C085 +:101980008091E80080FD1CC08091F101882391F0D6 +:10199000853091F08091EB0085FD10C04091E4000E +:1019A0005091E5004217530729F39A01915011F71E +:1019B00084E0089582E0089583E0089581E0089529 +:1019C00080E008954091E80042FFDECF08950E9434 +:1019D000550D0E945D0DE0EEF0E080818160808316 +:1019E000E8EDF0E080818F77808319BCA7EDB0E04F +:1019F0008C918E7F8C9380818F7E80831092F001FA +:101A000008950F931F93CF93DF930E94550D0E946B +:101A10005D0DC8EDD0E088818F77888388818068EC +:101A2000888388818F7D888319BC1092F101109280 +:101A3000ED011092EF011092EE0100EE10E0F801BE +:101A400080818B7F808388818160888342E060E031 +:101A500080E00E94610CE1EEF0E080818E7F808367 +:101A6000E2EEF0E080818160808380818860808305 +:101A7000F80180818E7F8083888180618883DF91F7 +:101A8000CF911F910F910895E8EDF0E080818F7E56 +:101A90008083E7EDF0E080818160808384E082BF15 +:101AA00081E08093F0010C94010DE8EDF0E080817D +:101AB0008E7F80831092E20008951092DA001092D7 +:101AC000E10008951F920F920FB60F9211242F93E9 +:101AD0003F934F935F936F937F938F939F93AF93B6 +:101AE000BF93EF93FF938091E10082FF0BC0809141 +:101AF000E20082FF07C08091E1008B7F8093E100CC +:101B00000E94C90F8091DA0080FF1FC08091D80029 +:101B100080FF1BC08091DA008E7F8093DA00809175 +:101B2000D90080FF0DC080E189BD82E189BD09B483 +:101B300000FEFDCF81E08093F1010E94C40905C041 +:101B400019BC1092F1010E94D2098091E10080FF3E +:101B500019C08091E20080FF15C08091E2008E7F65 +:101B60008093E2008091E20080618093E2008091A6 +:101B7000D80080628093D80019BC85E08093F10181 +:101B80000E94D6098091E10084FF30C08091E2007C +:101B900084FF2CC080E189BD82E189BD09B400FECB +:101BA000FDCF8091D8008F7D8093D8008091E10097 +:101BB0008F7E8093E1008091E2008F7E8093E2002F +:101BC0008091E20081608093E2008091ED018823A2 +:101BD00011F084E007C08091E30087FD02C081E03E +:101BE00001C083E08093F1010E94D8098091E10057 +:101BF00083FF29C08091E20083FF25C08091E1002E +:101C0000877F8093E10082E08093F1011092ED01E3 +:101C10008091E1008E7F8093E1008091E2008E7FD1 +:101C20008093E2008091E20080618093E20042E0D4 +:101C300060E080E00E94610C8091F00088608093F9 +:101C4000F0000E94D509FF91EF91BF91AF919F9154 +:101C50008F917F916F915F914F913F912F910F9055 +:101C60000FBE0F901F9018951F920F920FB60F92F4 +:101C700011242F933F934F935F936F937F938F9391 +:101C80009F93AF93BF93CF93DF93EF93FF93C09155 +:101C9000E900CF708091EC00D82FD17080FDD0E8A2 +:101CA0001092E9008091F000877F8093F000789493 +:101CB0000E94780E1092E9008091F0008860809375 +:101CC000F000CD2BCF70C093E900FF91EF91DF9131 +:101CD000CF91BF91AF919F918F917F916F915F91C4 +:101CE0004F913F912F910F900FBE0F901F9018951D +:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3 +:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115 +:101D1000F10091938E13FBCF0E94F4098091E800AB +:101D200083FF1FC18091F2019091F301492F50E090 +:101D30004A30510508F015C1FA01EA5AFF4F0C94D8 +:101D4000B323803881F0823809F00BC18091F6010D +:101D50008F708093E9008091EB0085FB882780F9E4 +:101D60001092E90006C08091EE019091EF0191116F +:101D700082609091E800977F9093E8008093F10053 +:101D80001092F100C8C0282F2D7F09F0EAC08823E7 +:101D900019F0823061F0E5C08091F401813009F0E2 +:101DA000E0C0933009F080E08093EF012BC0809178 +:101DB000F401811127C08091F6018F7009F4D1C020 +:101DC0008093E9002091EB0020FF1CC0933021F4A8 +:101DD0008091EB00806214C09091EB009061909331 +:101DE000EB0021E030E0A90102C0440F551F8A95A5 +:101DF000E2F74093EA001092EA008091EB008860DD +:101E00008093EB001092E9008091E800877F86C004 +:101E10008111A7C01091F4011F778091E3008078B1 +:101E2000812B8093E3008091E800877F8093E80016 +:101E30000E94960C8091E80080FFFCCF8091E30027 +:101E400080688093E300111102C082E001C083E04A +:101E50008093F10186C08058823008F082C0809162 +:101E6000F4019091F5018C3D53E0950779F583E0FD +:101E70008A838AE289834FB7F894DE01139620E0C3 +:101E80003EE051E2E32FF0E050935700E49120FF51 +:101E900003C0E295EF703F5FEF708E2F90E0EA3065 +:101EA00010F0C79601C0C0968D939D932F5F24318B +:101EB00049F74FBF8091E800877F8093E8006AE28E +:101EC00070E0CE0101960E949D0B14C0AE014F5FE1 +:101ED0005F4F6091F6010E94E40ABC01009709F48B +:101EE00040C09091E800977F9093E80089819A81A3 +:101EF0000E94000C8091E8008B778093E80031C04D +:101F0000803879F58091E800877F8093E8008091A0 +:101F1000ED018093F1008091E8008E778093E800D6 +:101F20000E94960C1EC081111CC09091F401923049 +:101F3000C0F48091E800877F8093E8009093ED01E2 +:101F40000E94960C8091ED01811106C08091E30002 +:101F500087FD02C081E001C084E08093F1010E940E +:101F6000E0098091E80083FF0AC08091E800877F44 +:101F70008093E8008091EB0080628093EB00AA964A +:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A +:101F900008950895CF938091F1018823A1F0C09115 +:101FA000E900CF709091EC00892F817090FD80E85E +:101FB000C82B1092E9008091E80083FD0E94780E02 +:101FC000CF70C093E900CF910895909375018093ED +:101FD00074010895E0917401F0917501309721F03A +:101FE0000190F081E02D099480E00895E091740162 +:101FF000F0917501309721F00280F381E02D099472 +:102000000895E0917401F0917501309721F00480FA +:10201000F581E02D099408952091720130917301AA +:102020008217930771F09093730180937201E0918E +:102030007401F0917501309721F00680F781E02D51 +:1020400009940895209170013091710182179307CE +:1020500071F09093710180937001E0917401F0919F +:102060007501309721F00084F185E02D09940895E1 +:1020700008950C9438100E94921B0E9433030C9414 +:10208000541C9F92AF92BF92CF92DF92EF92FF9239 +:102090000F931F93CF93DF9300D000D000D0CDB724 +:1020A000DEB70E944B030DE010E0AA24A394B12CEC +:1020B000902E802F0E943904980129583E4F6901C3 +:1020C000F901F080F826A1F40150110988F78FEF8B +:1020D00089838A831B820E949B1B8160782F9D834A +:1020E0008C8349815A816B818D810E94D8102FC0C9 +:1020F0009091DA0191FF04C08E830E943F048E818B +:1021000025E030E0A501022E01C0440F0A94EAF751 +:10211000E42E4F21C1F029839A828E2191E009F4A7 +:1021200090E09B830E949B1B8160782F9D838C8312 +:1021300049815A816B818D810E94D810F60180817E +:10214000E826E08204C021503109E0F6BDCF0E94AC +:102150003B1F109176010E94EA0F1817B9F00E94F8 +:10216000EA0F8093760126960FB6F894DEBF0FBE75 +:10217000CDBFDF91CF911F910F91FF90EF90DF9036 +:10218000CF90BF90AF909F900C94E30826960FB627 +:10219000F894DEBF0FBECDBFDF91CF911F910F919D +:1021A000FF90EF90DF90CF90BF90AF909F900895F9 +:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82 +:1021C0000FBECDBF4F83588769877A878B87DE0123 +:1021D000119686E0FD0111928A95E9F785E0FE01EE +:1021E000379601900D928A95E1F749815A816B816A +:1021F0007C818D819E810E9421172B960FB6F894C9 +:10220000DEBF0FBECDBFDF91CF910895CF9388235E +:1022100009F4C2C0C82F823859F40E94EA0F81FD28 +:10222000BBC089E30E94FB190E94C81A89E30CC055 +:10223000833879F40E94EA0F80FDAEC083E50E94E6 +:10224000FB190E94C81A83E50E943D1ACF910C9495 +:10225000C81A843859F40E94EA0F82FD9DC087E4B1 +:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6 +:10227000813A48F48C2F0E947E2181118DC08C2FD1 +:102280000E94FB19E3CF80E28C0F883048F4C770BE +:1022900081E001C0880FCA95EAF70E94811AD6CF63 +:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB +:1022B00083E890E005C081E890E002C082E890E009 +:1022C000CF910C940C1088E58C0F833108F064C01A +:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118 +:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186 +:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106 +:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173 +:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB +:1023200038C082EE90E035C089EE90E032C08AEE8F +:1023300090E02FC085EB90E02CC086EB90E029C0A8 +:1023400087EB90E026C08CEC90E023C08DEC90E011 +:1023500020C083E891E01DC08AE891E01AC082E9BC +:1023600091E017C084E991E014C081E292E011C0CD +:1023700083E292E00EC084E292E00BC085E292E03C +:1023800008C086E292E005C087E292E002C08AE2DD +:1023900092E0CF910C942210CF910895882309F4F4 +:1023A0004BC0823859F40E94EA0F81FF45C089E38F +:1023B0000E94FB190E94C81A89E30CC0833871F48B +:1023C0000E94EA0F80FF38C083E50E94FB190E943B +:1023D000C81A83E50E943D1A0C94C81A843859F42F +:1023E0000E94EA0F82FF28C087E40E94FB190E9426 +:1023F000C81A87E4EFCF9CEF980F913A58F390E218 +:10240000980F983050F4877091E001C0990F8A9529 +:10241000EAF7892F0E94871ADFCF9BE5980F933048 +:1024200020F480E090E00C940C10885A833120F462 +:1024300080E090E00C9422100895882321F00E94FF +:10244000811A0C94C81A0895882321F00E94871AD3 +:102450000C94C81A08957F928F929F92AF92BF9268 +:10246000CF92DF92EF92FF920F931F93CF93DF9360 +:102470001F92CDB7DEB77C01C62E772EFC010581F9 +:1024800002950F70128111110E949E1A0E94F41978 +:10249000882379F0112369F080E28C0D883048F0B0 +:1024A00082E00E94DD190E94F41991E0D82ED9260D +:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C +:1024C0000C94B323872D807F072D0F70882311F084 +:1024D0000295007F112389F0002309F490C180E266 +:1024E0008C0D883020F4802F0E94811A03C0802F29 +:1024F0000E94911A0E94C81A82C18C2D0E94CE118E +:10250000002309F495C180E28C0D883020F4802FDF +:102510000E94871A03C0802F0E94971A0E94C81A2F +:1025200087C1972D907F872D8F70903211F0829503 +:10253000807FCC2021F0F1E0CF16B1F01EC0112336 +:1025400049F0002309F414C1013009F011C10E94BF +:10255000B11A6EC1002319F0013009F469C18983F1 +:102560000E94B41A89810AC1112321F0023008F0B7 +:102570005FC1FEC001115CC101C1112321F0002324 +:1025800009F4F6C03CC1002309F4F8C03EC1872D10 +:1025900086958695837090E0009719F0019761F019 +:1025A00047C1112321F08C2D972D937002C080E03C +:1025B00090E00E940C103CC1112321F08C2D972D2E +:1025C000937002C080E090E00E94221031C18C2DF7 +:1025D000112319F00E94431E02C00E94AB1E0E94EC +:1025E000301F26C1872D837009F052C0111120C100 +:1025F0008C2D829586958770880F880F9C2D9F70F3 +:10260000892E912CA12CB12C082E04C0880C991C69 +:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041 +:1026200020E030E0B901A80104C0440F551F661F27 +:10263000771F8A95D2F7CB01BA0160957095809586 +:10264000909503C060E070E0CB01272D269526957C +:10265000237030E02230310569F02330310589F0F4 +:10266000682979298A299B292130310571F00E9436 +:102670006918DEC0682979298A299B290E94851852 +:10268000D7C00E946918C501B4010E944D18D0C07E +:10269000112319F0872D817001C08695882309F4D4 +:1026A000C7C08C2D829586958770880F880F9C2DCA +:1026B0009F70892E912CA12CB12C082E04C0880C5F +:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC +:1026D00010E020E030E0B901A80104C0440F551F0C +:1026E000661F771F8A95D2F7CB01BA016095709566 +:1026F0008095909503C060E070E0CB01272D269572 +:1027000026952370422F50E04230510569F0433046 +:10271000510589F0682979298A299B294130510579 +:1027200071F00E94431984C0682979298A299B295C +:102730000E945F197DC00E944319C501B4010E9427 +:10274000271976C08C2D90E0FC01E05EF109E5319F +:10275000F10508F050C0E059FF4F0C94B3230C2D45 +:102760000F70872D8F71112331F00E94C018802FB8 +:102770000E941D125DC00E94E118802F0E94241249 +:1027800057C0112339F0011153C0872D8F710E945A +:1027900006194EC0023008F04BC0F7CF112339F0B4 +:1027A000872D8F710E94C01843C01123C9F3872D54 +:1027B0008F710E94E1183CC0112329F0872D8F7181 +:1027C0000E94AB1835C00E94A11832C0112351F0ED +:1027D000172D1F71812F0E94C01863E0812F0E9466 +:1027E000D41926C081E00E94DD19023008F182E090 +:1027F0000E94DD191DC0112331F0002389F28C2DB8 +:102800000E94061115C0002391F28C2D0E94CE115A +:102810000FC0472D4F706C2DC7010E9415050E94F7 +:10282000C51706C0472D4F706C2DC7010E94F205D9 +:10283000DD20F9F00E94D01980FD1BC0F701128243 +:102840000E94CA190E94C018C7010E9448140E9421 +:10285000CA190F90DF91CF911F910F91FF90EF90C8 +:10286000DF90CF90BF90AF909F908F907F900C940F +:10287000E1180F90DF91CF911F910F91FF90EF9092 +:10288000DF90CF90BF90AF909F908F907F900895F2 +:102890000F931F93CF93DF93EC01888199812B8154 +:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B +:1028B0000E944A05882371F0688179818A810E948B +:1028C000C6198C010E947B190E944218B801CE01E2 +:1028D0000E942B12DF91CF911F910F9108950E94BA +:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471 +:1028F000E11F0E94301F80E090E00E940C1080E0F9 +:1029000090E00C9422100E948E1A0C946F140E9476 +:10291000BB19292F22952F7030E02C3031054CF453 +:102920002A3031056CF42250310922303105A8F4E7 +:1029300007C02C30310569F02F30310551F00DC042 +:10294000803F69F018F4803E40F409C0843F29F4C8 +:1029500006C093FB882780F9089580E0089581E000 +:102960000895CF93DF9300D000D01F92CDB7DEB78C +:102970000F900F900F900F900F90DF91CF910895CF +:10298000CF93DF9300D000D000D0CDB7DEB726962E +:102990000FB6F894DEBF0FBECDBFDF91CF91089583 +:1029A0001F93CF93DF93C091850116E0809186013C +:1029B000C81799F0D0E01C9FF0011D9FF00D112465 +:1029C000E957FE4F408151816281738184819581F5 +:1029D0000E94C0142196C770E9CFDF91CF911F915B +:1029E00008954091B7015091B8016091B90170917B +:1029F000BA018091BB019091BC010C94C0148091EC +:102A0000BC0182958F7009F054C08091B901882370 +:102A100009F44FC080918501A09186016091B701B2 +:102A20007091B8014091BA015091BB01B6E08A178C +:102A300009F43FC090E041155105C1F17F3F11F409 +:102A40006F3FA1F1B89FF001B99FF00D1124E95734 +:102A5000FE4F218172132AC02081621327C0228178 +:102A6000211124C0238134812417350710F421500B +:102A70003109241B350B283C3105C0F42091BC01E1 +:102A80002F7020612093BC0126E0289FF001299F30 +:102A9000F00D1124E457FE4F80818F708061808398 +:102AA00087EB91E00E9448140C94D0140196877033 +:102AB000BECF0895CF92DF92EF92FF920F931F93B4 +:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32 +:102AD0000FBECDBF8C0185E0F801DE011D9601908F +:102AE0000D928A95E1F7D8014C9111965C9111975E +:102AF00012966C9112971396CD90DC9014973091AA +:102B0000B7017091B8018091BA019091BB01009713 +:102B100009F46BC17F3F19F43F3F09F466C1E090AF +:102B2000B901EE2009F4C0C02091BC01C816D90635 +:102B300028F0F601E81BF90BCF0104C080959095B1 +:102B40008C0D9D1DFF24F394883C910578F0F12CA9 +:102B5000207F09F0C6C07C2DD98AC88A89890E9445 +:102B6000B11487EB91E00E944814B1C0822F807F9E +:102B700009F046C0751314C0341312C0611110C09F +:102B80002F7020612093BC010E94F11487EB91E02B +:102B90000E9448148091BC01D80115968C932EC0D8 +:102BA000CD2819F15F3F11F44F3FF9F0F62E611176 +:102BB0001CC0809185012091860136E0821709F4BE +:102BC0005AC090E0389FF001399FF00D1124E95769 +:102BD000FE4F7181571306C07081471303C0728185 +:102BE000711103C001968770E9CFF62E662309F4B0 +:102BF00018C18091BC0181608093BC01F12C11C18E +:102C0000751308C0341306C0611104C08091BC0163 +:102C1000D801C3C04D875E878D859E856A8B0E94D3 +:102C200087146A898823E1F16623D1F12091BC01E0 +:102C3000822F82958F7090E0029774F08091B70197 +:102C40009091B80198878F831986DB86CA862C8776 +:102C5000CE0107960E94481486E0F801A7EBB1E088 +:102C600001900D928A95E1F70E94FF140E94F114E1 +:102C7000FF24F394D6C04D875E878D859E850E9484 +:102C8000BB19292F22952F7030E0223031050CF02E +:102C9000BCC09F7009F0B6C0805E883008F4C1C027 +:102CA000C8010E944814E4CFC816D90608F453C0DE +:102CB000F601E81BF90BCF01883C910508F450C0E0 +:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E +:102CD000F1E086E0DF011D928A95E9F70E94F11488 +:102CE000A0C0751314C0341312C0611110C08091BC +:102CF000BC01F8018583C8010E94481486E0E7EB17 +:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C +:102D10005E878D859E856A8B0E9487146A898823C9 +:102D200009F4BECF662309F4BBCF2091BC01822FEA +:102D300082958F7090E002970CF48ECF8091B7014E +:102D40009091B8019A8389831B82DD82CC822E8385 +:102D5000CE0101967FCF809590958C0D9D1DACCFB7 +:102D6000F62E662309F49CCF75132EC034132CC0A5 +:102D70002091BC0120FD1FC0822F82958F70D9F059 +:102D8000D80115962C9315978F3049F08F5F982FA7 +:102D90009295907F822F8F70892B15968C93C80106 +:102DA0000E94481486E0F801A7EBB1E001900D9273 +:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7 +:102DC0000D928A95E1F72DC04D875E878D859E8592 +:102DD0000E948714811140CF8091BC018160809353 +:102DE000BC01C8010E9448141CC0662309F458CFD6 +:102DF0004D875E878D859E850E948714882309F400 +:102E00004FCF2ACF811148CF0CC0243031050CF0B0 +:102E100047CF9F7009F440CFF8019581907F09F06A +:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D +:102E3000DF91CF911F910F91FF90EF90DF90CF9096 +:102E400008951F93CF93DF93CDB7DEB72C970FB6BE +:102E5000F894DEBF0FBECDBF4F83588769877A874E +:102E60008B879C87CE0107960E945A15882369F0AC +:102E70008F8198852A853B85232BF1F19F3F09F0AF +:102E800063C08F3F09F060C037C086E0FE0137960F +:102E9000DE01119601900D928A95E1F76F81788598 +:102EA000EA85FB85309741F17F3F11F46F3F21F1B7 +:102EB0002091860130E0C9010196877099274091E1 +:102EC000850150E08417950709F447C069837A8328 +:102ED000FD83EC8396E0929FD001939FB00D112467 +:102EE000A957BE4FFE01319601900D929A95E1F7D8 +:102EF000809386010E94D01416E080918501909104 +:102F000086018917C1F1189FC001112489579E4F6E +:102F10000E945A15882379F1E09185011E9FF001E6 +:102F20001124E957FE4F4081518162817381848170 +:102F300095810E94C0148091850190E00196877070 +:102F4000992780938501D9CF4F81588569857A85E6 +:102F50008B859C850E94C014CFCF0E948314109251 +:102F6000860110928501E7EBF1E086E0DF011D921A +:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45 +:102F8000CDBFDF91CF911F910895EF92FF920F93E4 +:102F90001F93CF93DF938C01009709F46CC0F12C41 +:102FA000EE24E394E8012196F8018491843740F4FB +:102FB000843008F051C0813081F0823019F15BC05B +:102FC000853709F444C0A8F19CE7980F903708F0C2 +:102FD00052C08F770E94CE1141C00E5F1F4FFE017D +:102FE000C49180E28C0F883048F4C7708E2D01C0E8 +:102FF000880FCA95EAF70E94A11A14C08C2F0E946C +:1030000006112DC00E5F1F4FFE01C49180E28C0F90 +:10301000883058F4C7708E2D01C0880FCA95EAF722 +:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3 +:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3 +:103040009FE00197F1F700C00000C150F6CF0E5F7E +:103050001F4FFE01F49003C00E9406118E018F2DB8 +:10306000882309F49FCFEFE9FFE03197F1F700C023 +:1030700000008150F5CFDF91CF911F910F91FF900C +:10308000EF90089508956093C1017093C2018093F9 +:10309000C3019093C4010C946F140F931F9300917C +:1030A000C1011091C2012091C3013091C401DC0122 +:1030B000CB01802B912BA22BB32B8093C10190933A +:1030C000C201A093C301B093C4011F910F910C944E +:1030D0006F140F931F930091C1011091C2012091B1 +:1030E000C3013091C401DC01CB0180239123A223D1 +:1030F000B3238093C1019093C201A093C301B09305 +:10310000C4011F910F910C946F140F931F930091A2 +:10311000C1011091C2012091C3013091C401DC01B1 +:10312000CB0180279127A227B3278093C1019093D9 +:10313000C201A093C301B093C4011F910F910C94DD +:103140006F141092BD011092BE011092BF01109237 +:10315000C0010C946F1441E050E060E070E004C0E6 +:10316000440F551F661F771F8A95D2F74093BD0104 +:103170005093BE016093BF017093C0010C946F1413 +:1031800041E050E060E070E004C0440F551F661F4E +:10319000771F8A95D2F78091BD019091BE01A091D1 +:1031A000BF01B091C001482B592B6A2B7B2B409358 +:1031B000BD015093BE016093BF017093C0010C9498 +:1031C0006F1441E050E060E070E004C0440F551F10 +:1031D000661F771F8A95D2F7409550956095709538 +:1031E0008091BD019091BE01A091BF01B091C0013D +:1031F000482359236A237B234093BD015093BE018A +:103200006093BF017093C0010C946F1441E050E0D3 +:1032100060E070E004C0440F551F661F771F8A9559 +:10322000D2F78091BD019091BE01A091BF01B091F4 +:10323000C001482759276A277B274093BD01509337 +:10324000BE016093BF017093C0010C946F140F9383 +:103250001F930091BD011091BE012091BF013091DB +:10326000C001DC01CB01802B912BA22BB32B8093CF +:10327000BD019093BE01A093BF01B093C0011F9107 +:103280000F910C946F140F931F930091BD01109137 +:10329000BE012091BF013091C001DC01CB01802330 +:1032A0009123A223B3238093BD019093BE01A093E9 +:1032B000BF01B093C0011F910F910C946F140F9335 +:1032C0001F930091BD011091BE012091BF0130916B +:1032D000C001DC01CB0180279127A227B32780936F +:1032E000BD019093BE01A093BF01B093C0011F9197 +:1032F0000F910C946F140895CF92DF92EF92FF928A +:103300000F931F93CF93DF938C01C090C101D09096 +:10331000C201E090C301F090C4018091BD01909181 +:10332000BE01A091BF01B091C001C82AD92AEA2AE2 +:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520 +:10334000A795979587950A94D2F780FF06C0B80194 +:103350008C2F0E944808019721F4219760F780E0A4 +:1033600001C08C2FDF91CF911F910F91FF90EF90B3 +:10337000DF90CF900895CF93DF93EC010E947C19EA +:10338000BE010E944808DF91CF910895CB010E94B1 +:10339000BB1908958091C5018595859585950895FA +:1033A0008091C5018770089598E0899F900111244C +:1033B000262B2093C5010C94C0182091C50180953F +:1033C00082238093C501982F977069F430E0482FCD +:1033D000552747FD50952417350729F08595859584 +:1033E00085950C94E11808959091C501977081E03E +:1033F00009F480E0089590910C01992321F09091B7 +:103400000D01911109C020910E0130910F01F901B8 +:1034100032969FEF40E01FC0982F9695969596950F +:103420009F3050F5E0910E01F0910F01E90FF11D71 +:10343000877021E030E0A90102C0440F551F8A9532 +:10344000E2F7CA019181892B818308959F3F39F06A +:103450004F5F4E3041F051915813F8CF0DC05111CC +:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08 +:1034700097FDFA9582830895089590910C01992300 +:1034800021F090910D01911109C020910E01309110 +:103490000F01F9013296205F3F4F1FC0982F96957C +:1034A000969596959F30F0F4E0910E01F0910F0102 +:1034B000E90FF11D877021E030E0A90102C0440F3F +:1034C000551F8A95E2F7CA018095918189238183EE +:1034D00008953196E217F30729F090819813F9CFF8 +:1034E0001082F7CF089581E090E0E0910E01F09115 +:1034F0000F01E80FF91F1082019680319105A9F79D +:1035000008959091D901892B8093D90108958095D0 +:103510009091D90189238093D90108951092D901FE +:1035200008959091D801892B8093D80108958095B2 +:103530009091D80189238093D80108951092D801E1 +:1035400008959091D701892B8093D7010895809594 +:103550009091D70189238093D70108951092D701C4 +:1035600008958093C60108951092C6010895809130 +:103570000E0190910F01FC0131969C01205F3F4F9D +:1035800080E0919191118F5FE217F307D1F70895D1 +:10359000E0910E01F0910F018091D9018083E091BB +:1035A0000E01F0910F0190818091D801892B8083C9 +:1035B000E0910E01F0910F0190818091D701892B4C +:1035C00080838091C601882361F0E0910E01F09123 +:1035D0000F019081892B80830E94B71A811110926C +:1035E000C60180910E0190910F010C94F60F20E01E +:1035F000009739F0AC0141505109842395232F5F86 +:10360000F7CF822F0895CF92DF92EF92FF926C0155 +:10361000EE24FF24C114D104E104F10421F0C70118 +:10362000B60120E101C020E0C72ED82EE92EFF24EC +:10363000C114D104E104F10419F0285FC701B601F7 +:103640006B017C0154E0F694E794D794C7945A95A3 +:10365000D1F7C114D104E104F10419F02C5FC701C2 +:10366000B6016B017C0142E0F694E794D794C794CD +:103670004A95D1F7C114D104E104F10419F02E5F89 +:10368000C701B601DC01CB01B695A7959795879543 +:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5 +:1036A000DF90CF9008958091F101843021F1109244 +:1036B000DB0120E488E190E00FB6F894A8958093B0 +:1036C00060000FBE2093600080E00E94E30883B793 +:1036D000817F846083BF83B7816083BF789488953E +:1036E00083B78E7F83BF88E10FB6F8948093600024 +:1036F000109260000FBE0895089508950E947C1BEB +:103700000E944B030E947D1B0E94400491E08111A6 +:1037100001C090E0892F08950E9483140E94EA0F4F +:103720000C94E30882E084BD93E095BD9AEF97BDC9 +:1037300080936E0008952FB7F8948091DC019091EA +:10374000DD01A091DE01B091DF012FBF0895CF927E +:10375000DF92EF92FF920F931F932FB7F89440914F +:10376000DC015091DD016091DE017091DF012FBF1E +:103770006A017B01EE24FF248C0120E030E0C016BA +:10378000D106E206F30610F4415051099A01281BB4 +:10379000390BC9011F910F91FF90EF90DF90CF90EF +:1037A00008951F920F920FB60F9211248F939F933B +:1037B000AF93BF938091DC019091DD01A091DE0178 +:1037C000B091DF010196A11DB11D8093DC019093A2 +:1037D000DD01A093DE01B093DF01BF91AF919F9116 +:1037E0008F910F900FBE0F901F9018950E94E70CBD +:1037F000F8942FEF87EA91E6215080409040E1F75E +:1038000000C0000087E090EBDC018093FB01909307 +:10381000FC01A093FD01B093FE019CE088E10FB68E +:10382000F894A895809360000FBE90936000FFCF3E +:10383000EF92FF920F931F93CF93DF93D82FCDE09A +:103840008C2F0E94390405E010E0E82EF12CC7010E +:10385000002E02C0959587950A94E2F780FF09C073 +:10386000602F7C2F80E00E94F305D81302C081E016 +:1038700006C00150110958F7C15010F780E0DF91E0 +:10388000CF911F910F91FF90EF900895CF93C82F84 +:103890008CE20E94181C882321F08C2FCF910C946D +:1038A000181C80E0CF910895CF930E949B1D811139 +:1038B00002C00E94811DC5E6C15049F00E944B0321 +:1038C0008FE39CE90197F1F700C00000F5CF89E292 +:1038D0000E94461C811113C18AE20E94461C81117C +:1038E0000E94811D85E00E94461C81110E94F61BEA +:1038F0000E94A61D8093DA0187E00E94461C88235F +:10390000A9F18BE10E94461C882351F08091DA01D5 +:1039100081FB222720F991E0922790FB81F90EC0CC +:103920008EE00E94461C882361F08091DA0182FBC0 +:10393000222720F991E0922790FB82F98093DA0107 +:1039400015C080E10E94461C9091DA01882341F065 +:1039500093FB222720F981E0822780FB93F904C0A2 +:10396000892F809580FB90F99093DA018091DA019C +:103970000E94AA1D0E94B81D8093FA0180EE0E9449 +:10398000461C882341F08091FA01982F909590FB76 +:1039900080F98093FA0189E30E94461C882359F03C +:1039A0008091FA0181FB222720F991E0922790FB78 +:1039B00081F98093FA0182EE0E94461C882359F017 +:1039C0008091FA0182FB222720F991E0922790FB57 +:1039D00082F98093FA0186EE0E94461C882359F0F2 +:1039E0008091FA0183FB222720F991E0922790FB36 +:1039F00083F98093FA0183EE0E94461C882359F0D4 +:103A00008091FA0184FB222720F991E0922790FB14 +:103A100084F98093FA0185E30E94461C882359F0BB +:103A20008091FA0185FB222720F991E0922790FBF3 +:103A300085F98093FA0181E30E94461C882359F09E +:103A40008091FA0186FB222720F991E0922790FBD2 +:103A500086F98093FA0181E10E94461C882359F07F +:103A60008091FA0187FB222720F991E0922790FBB1 +:103A700087F98093FA018091FA010E94BC1D809120 +:103A8000FA0187FB882780F980930D0187E20E9465 +:103A9000461CC82F8EE10E94461C8111C2608FE136 +:103AA0000E94461C8111C46080E20E94461C811164 +:103AB000C86081E20E94461C8111C06182E20E94BE +:103AC000461C8111C06283E20E94461C8111C064C1 +:103AD00084E20E94461C882311F0C06802C0CC23F7 +:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4 +:103AF000682F70E080E090E0CF910C944318CF9154 +:103B000008956DEE7EEF80E090E00E94ED2360E08E +:103B100082E090E00E94DB2360E083E090E00E947E +:103B2000DB2360E084E090E00E94DB2360E085E03E +:103B300090E00C94DB2380E090E00E94D52321E00C +:103B40008D3E9E4F09F020E0822F089582E090E0A4 +:103B50000C94CD23682F82E090E00C94DB2383E06B +:103B600090E00C94CD23682F83E090E00C94DB234D +:103B700084E090E00C94CD23682F84E090E00C94D6 +:103B8000DB238091E20180FF0BC06091130185E08F +:103B9000689FB001112475956795759567952BC041 +:103BA00081FF09C06091130185E0689FB001112475 +:103BB0007595679520C082FF07C06091130185E06D +:103BC000689FB001112417C09091E3019923D1F0AF +:103BD00060911201961788F72091130185E0289FC4 +:103BE00090011124929FA001939F500D112470E029 +:103BF000CA010E949F236038710540F46115710568 +:103C000039F002C065E070E0862F08958FE70895CF +:103C100081E008958091E20180FF08C06091110168 +:103C200070E0759567957595679521C081FF06C011 +:103C30006091110170E07595679519C082FF04C00D +:103C40006091110170E010C09091E3019923C1F0DF +:103C5000609110019617A0F780911101899FC00112 +:103C6000112470E00E949F236038710528F46115CB +:103C7000710521F0862F08958FE7089581E008955A +:103C800061E070E0F4CF803F21F40E94C11D819576 +:103C900004C0813F29F40E94C11D8093E60108956C +:103CA000823F21F40E94C11D819504C0833F29F405 +:103CB0000E94C11D8093E5010895893F19F40E9477 +:103CC0000A1E05C08A3F31F40E940A1E8195809326 +:103CD000E70108958B3F21F40E940A1E819504C0DC +:103CE0008C3F29F40E940A1E8093E8010895843FC6 +:103CF00021F48091E401816017C0853F21F4809117 +:103D0000E401826011C0863F21F48091E401846067 +:103D10000BC0873F21F48091E401886005C0883F93 +:103D200031F48091E40180618093E40108958D3F36 +:103D300021F48091E20181600BC08E3F21F48091DB +:103D4000E201826005C08F3F29F48091E201846026 +:103D50008093E2010895803F39F48091E60187FF66 +:103D60006CC01092E60169C0813F29F48091E601A0 +:103D70001816BCF362C09091E501823F29F497FFC9 +:103D80005CC01092E50159C0833F19F41916CCF3B9 +:103D900054C0893F41F48091E70118160CF04DC0E2 +:103DA0001092E7014AC08A3F29F48091E70187FF1A +:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6 +:103DC0001092E8013AC08C3F29F48091E80118165E +:103DD000BCF333C0843F21F48091E4018E7F17C08F +:103DE000853F21F48091E4018D7F11C0863F21F44D +:103DF0008091E4018B7F0BC0873F21F48091E40127 +:103E0000877F05C0883F31F48091E4018F7E8093E5 +:103E1000E40113C08D3F21F48091E2018E7F0BC03D +:103E20008E3F21F48091E2018D7F05C08F3F29F400 +:103E30008091E2018B7F8093E2018091E501811105 +:103E40000EC08091E60181110AC08091E7018111C5 +:103E500006C08091E801811102C01092E30108952B +:103E600084EE91E00E9401100E949B1B9093E1015F +:103E70008093E00108951F93CF93DF938091E00139 +:103E80009091E1010E94A71BAC019091E30199235D +:103E900021F02091140130E006C0209115018AE044 +:103EA000289F900111244217530708F486C080917F +:103EB000E501C091E601D091E7011091E80181117F +:103EC00007C0C11176C0D11174C0111172C075C084 +:103ED0009F3F19F09F5F9093E301181624F40E940E +:103EE000C11D8093E5018091E50187FF05C00E9417 +:103EF000C11D81958093E5011C1624F40E94C11D0B +:103F00008093E6018091E60187FF05C00E94C11DF4 +:103F100081958093E6016091E501662339F1C091B6 +:103F2000E601CC2319F1772767FD7095872F972F2E +:103F30000E94B02223E333E343E35FE30E941423B0 +:103F40000E947D226093E5016C2F772767FD7095B5 +:103F5000872F972F0E94B02223E333E343E35FE3ED +:103F60000E9414230E947D226093E6011D1624F412 +:103F70000E940A1E8093E7018091E70187FF05C038 +:103F80000E940A1E81958093E701111624F40E9475 +:103F90000A1E8093E8018091E80187FF05C00E9416 +:103FA0000A1E81958093E801DF91CF911F910C94B7 +:103FB000301F9F3F09F08ECF96CFDF91CF911F9199 +:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE +:103FD0001092E3011092E2010895833081F128F4F8 +:103FE000813059F08230D1F00895853009F449C00C +:103FF000B8F1863009F456C0089580911501262F36 +:1040000030E0280F311D2F3F310524F4680F6093F5 +:10401000150108958FEF8093150108958091140183 +:10402000262F30E0280F311D2F3F310524F4680F73 +:104030006093140108958FEF809314010895809187 +:104040001301262F30E0280F311D2F3F310524F4B6 +:10405000680F6093130108958FEF80931301089503 +:1040600080911201262F30E0280F311D2F3F31059E +:1040700024F4680F6093120108958FEF809312016A +:10408000089580911101262F30E0280F311D2F3F18 +:10409000310524F4680F6093110108958FEF809328 +:1040A0001101089580911001262F30E0280F311D55 +:1040B0002F3F310524F4680F6093100108958FEFAE +:1040C000809310010895833011F128F4813049F074 +:1040D000823091F00895853081F120F18630C1F170 +:1040E000089580911501681720F4861B80931501AF +:1040F000089510921501089580911401681720F415 +:10410000861B8093140108951092140108958091E4 +:104110001301681720F4861B8093130108951092F1 +:104120001301089580911201681720F4861B809373 +:1041300012010895109212010895809111016817DB +:1041400020F4861B809311010895109211010895A7 +:1041500080911001681720F4861B80931001089548 +:104160001092100108950F931F938D3109F46BC0C5 +:1041700008F03FC08E3009F47FC0C0F4873009F4E6 +:1041800069C068F4863009F0B1C08091DA01817F9E +:104190008E7F8093DA0181E08093EA01A8C08830A5 +:1041A00009F4A2C08B3009F49FC0A0C0863109F485 +:1041B0009BC078F4803109F472C0813109F096C057 +:1041C0000E94831490910D0181E0892780930D0155 +:1041D0008BC0893109F488C08B3109F087C0809188 +:1041E000DA0181FB222720F991E0922790FB81F9E7 +:1041F0004CC0853309F470C048F4873209F46CC0B0 +:1042000008F459C0893209F467C070C0833438F4A7 +:104210008A3308F04EC0883309F466C067C083341F +:1042200009F45AC0883409F061C00E9483140FEF6A +:1042300013ED20E3015010402040E1F700C00000E2 +:104240000E94F61B51C00E9437220E94EA0F0E9472 +:10425000E3084AC09091DA01892F8095817080FB34 +:1042600090F929F0966098609093DA0140C0997FA8 +:10427000977F9093DA0138C08091DA0182FB222780 +:1042800020F991E0922790FB82F98093DA0199233B +:1042900059F18091DA0181608093DA0125C0809123 +:1042A000DA0183FB222720F991E0922790FB83F922 +:1042B000ECCF895301C08D5141E050E060E070E0E7 +:1042C0008A019B0104C0000F111F221F331F8A9512 +:1042D000D2F7C901B80104C061E070E080E090E06D +:1042E0000E9443180E94831481E001C080E01F9166 +:1042F0000F91089580E0089580E00895CF93C82F2E +:104300008091EA01813079F018F08230E9F187C0BC +:10431000E0910E01F0910F018081813169F08232CC +:1043200009F07FC009C0E0910E01F0910F0180817A +:10433000813111F0823261F48C2F0E947A21811137 +:1043400004C08C2F0E94B3201DC081E090E01AC0F1 +:104350008C2F0E947C21811114C0C43179F048F463 +:10436000CB3079F0C03109F060C082E08093EA017F +:1043700008C0C93219F0C83321F057C01092EA01C1 +:1043800054C081E0817053C0C93289F118F5C4313D +:1043900071F1A8F4C73009F046C08AE08093150196 +:1043A00094E19093140193E0909313018093120190 +:1043B00088E08093110188E28093100134C0CE51CF +:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB +:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC +:1043E00013C0C13579F0C235F1F461E00DC08091A0 +:1043F000E901882319F01092E90115C081E080934A +:10440000EA0115C061E006C08091E9010E94ED1F3C +:104410000AC06AE08091E9010E94632004C0109202 +:10442000EA0180E004C081E002C080E0ABCFCF9120 +:104430000895E1E8F0E08081886080838081816078 +:1044400080838FB7F89493E09093890090ED9093D8 +:1044500088008FBF0895EFE6F0E08081826080835E +:104460000895EFE6F0E080818D7F80830895EFE688 +:10447000F0E0908182E08927808308951F920F9257 +:104480000FB60F9211242F933F934F935F936F9327 +:104490007F938F939F93AF93BF93EF93FF938091FD +:1044A000EB019091EC0101969093EC018093EB016C +:1044B000811103C082E00E94E308E091EC01E695DF +:1044C000E695F0E0EC54FB4FE4918091EB018E1304 +:1044D00003C080E00E94E308FF91EF91BF91AF918C +:1044E0009F918F917F916F915F914F913F912F910C +:1044F0000F900FBE0F901F90189504D06894B111C3 +:104500008DC0089570D088F09F5790F0B92F9927EB +:10451000B751A0F0D1F0660F771F881F991F1AF0CE +:10452000BA95C9F712C0B13081F077D0B1E00895E3 +:1045300074C0672F782F8827B85F39F0B93FCCF364 +:10454000869577956795B395D9F73EF490958095C4 +:10455000709561957F4F8F4F9F4F0895E89409C0E4 +:1045600097FB3EF490958095709561957F4F8F4FA6 +:104570009F4F9923A9F0F92F96E9BB279395F695BC +:10458000879577956795B795F111F8CFFAF4BB0F3A +:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E +:1045A000882311F096E911C0772321F09EE8872F28 +:1045B000762F05C0662371F096E8862F70E060E0E4 +:1045C0002AF09A95660F771F881FDAF7880F96955D +:1045D000879597F9089557FD9058440F551F59F046 +:1045E0005F3F71F04795880F97FB991F61F09F3FE0 +:1045F00079F087950895121613061406551FF2CF09 +:104600004695F1DF08C0161617061806991FF1CF58 +:1046100086957105610508940895E894BB2766277F +:104620007727CB0197F908950BD078C069D028F08F +:104630006ED018F0952309F05AC05FC01124EECF58 +:10464000CADFA0F3959FD1F3950F50E0551F629FED +:10465000F001729FBB27F00DB11D639FAA27F00DDB +:10466000B11DAA1F649F6627B00DA11D661F829F02 +:104670002227B00DA11D621F739FB00DA11D621FE7 +:10468000839FA00D611D221F749F3327A00D611D04 +:10469000231F849F600D211D822F762F6A2F1124E6 +:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39 +:1046B000BB1F661F771F881F91505040A9F79E3F70 +:1046C000510570F014C0AACF5F3FECF3983EDCF3C5 +:1046D000869577956795B795F795E7959F5FC1F7AD +:1046E000FE2B880F911D9695879597F9089597F958 +:1046F0009F6780E870E060E008959FEF80EC089588 +:1047000000240A94161617061806090608950024B0 +:104710000A9412161306140605060895092E03942A +:10472000000C11F4882352F0BB0F40F4BF2B11F49E +:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF +:10474000072E16F4009407D077FD09D00E94B923F4 +:1047500007FC05D03EF4909581959F4F0895709584 +:1047600061957F4F0895EE0FFF1F0590F491E02DA6 +:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8 +:10478000B70710F0A61BB70B881F991F5A95A9F7FA +:1047900080959095BC01CD010895F999FECF92BD09 +:1047A00081BDF89A992780B50895A8E1B0E042E06C +:1047B00050E00C94F523262FF999FECF92BD81BDD0 +:1047C000F89A019700B4021639F01FBA20BD0FB64F +:1047D000F894FA9AF99A0FBE08950196272F0E942D +:1047E000DC230C94DB23DC01CB01FC01F999FECF27 +:1047F00006C0F2BDE1BDF89A319600B40D92415069 +:0A4800005040B8F70895F894FFCF78 +:10480A000220E508730950091C09E8080101C701DB +:10481A0028080A03140A3F4D363975042804F2039E +:10482A00B9034C0365037E039703010203040506DB +:04483A000708090062 +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/dvorak/dvorak.png b/keyboards/ergodox_ez/keymaps/dvorak/dvorak.png new file mode 100644 index 000000000..cb8316309 Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/dvorak/dvorak.png differ diff --git a/keyboards/ergodox_ez/keymaps/dvorak/keymap.c b/keyboards/ergodox_ez/keymaps/dvorak/keymap.c new file mode 100644 index 000000000..22947327d --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/dvorak/keymap.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/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/README.md b/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/README.md new file mode 100644 index 000000000..984106ff4 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/README.md @@ -0,0 +1,29 @@ +# ErgoDox EZ Dvorak International Squisher + +Dvorak layout adjusted with several (linux) applications in mind: + +* Easier Escape for VIM +* Windows/Super key for awesome WM +* Alt+Shift for international characters +* PrintScreen for sys-rq +* Insert for the X11 clip-board + +Major layer changes: + +* Common multimedia keys are integrated into layer 0, less common into layer 1 +* No mouse keys +* Layer 2 is qwerty (for easier gaming & less fortunate keyboard users) + +Known issues: + +* Alt+Shift does not work reliably (depends on the X11 kb layout? Not + entirely clear...) + +![layer0](keyboard-layout0.png) +![layer1](keyboard-layout1.png) +![layer2](keyboard-layout2.png) + +## Changelog + +* 2016-03-29 + * Initial release diff --git a/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/compiled.hex b/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/compiled.hex new file mode 100644 index 000000000..dc734d241 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947A020C94BE020C94BE020C94BE02B4 +:100010000C94BE020C94BE020C94BE020C94BE0260 +:100020000C94BE020C94BE020C94620D0C94340E1F +:100030000C94BE020C94BE020C94BE020C94BE0240 +:100040000C94BE020C943E220C94BE020C94BE0290 +:100050000C94BE020C94D11B0C94BE020C94BE02F4 +:100060000C94BE020C94BE020C94BE020C94BE0210 +:100070000C94BE020C94BE020C94BE020C94BE0200 +:100080000C94BE020C94BE020C94BE020C94BE02F0 +:100090000C94BE020C94BE020C94BE020C94BE02E0 +:1000A0000C94BE020C94BE020C94BE02A10EC30EB0 +:1000B000B10FC30EB10F080F2B0FB10F800F930FAD +:1000C0006212621291129112C712E71218141814D8 +:1000D000F2121814A213A2130914181418141214EB +:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300 +:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0 +:10010000C113CE13D513DC13E6130000F0A12E00AB +:1001100029002A00E100354100001E0034000400DF +:100120003371E2004D001F00360012001400E3009E +:100130002B002000370008000D0050002C0021008B +:10014000130018000E004F004A0022001C000C0093 +:100150001B0000006571B6004C000000007F00002D +:100160000154AE0049000000007700000254230053 +:100170000900070005000000460024000A000B00EB +:10018000100052004B002500060017001A00510015 +:10019000280026001500110019002F00E514270083 +:1001A0000F0016001D7130004E00314238002D0046 +:1001B000E500C10000000100010001000100010094 +:1001C00000003A001E0220022202010001003B0052 +:1001D0001F0221022302010001003C002F0226021F +:1001E0002F00AC0001003D00300227023000AB00C0 +:1001F00001003E003102350035020000010001001F +:1002000001000000010000000100010001000000E9 +:100210000100000001003F005200510024020000D4 +:1002200001004000240021001E000100A90041003F +:10023000250022001F003700010042002600230095 +:1002400020002700A800430025022E0231002E00C6 +:10025000AA00440045000100010001000000010067 +:100260000100010001000100000001001400040071 +:100270001D710100010001001A0016001B000100A1 +:100280000100010008000700060001000100010054 +:1002900015000900190001000100010017000A0003 +:1002A0000500000001000100010000000100000045 +:1002B0000100010001000000010000000100010038 +:1002C0001C000B00110000000100010018000D00CF +:1002D00010000100010001000C000E0036000100BA +:1002E0000100010012000F003700010001000100B1 +:1002F00013003342387101000100010001000100C8 +:1003000001000100000016034500720067006F0045 +:1003100044006F007800200045005A0000001603DA +:100320004500720067006F0044006F0078002000F5 +:1003300045005A0000000403090409026D0004018D +:1003400000A0FA09040000010301010009211101C4 +:100350000001223F000705810308000A090401008B +:100360000103010200092111010001224D000705CE +:10037000820308000A0904020001030000000921A9 +:10038000110100012236000705830308000A090451 +:1003900003000103000000092111010001223900BE +:1003A000070584031000011201100100000008ED90 +:1003B000FE071301000102000105010906A1010564 +:1003C0000719E029E7150025019508750181020547 +:1003D000081901290595057501910295017503918B +:1003E0000105071900297715002501957875018108 +:1003F00002C005010980A101850216010026B7008F +:100400001A01002AB700751095018100C0050C097A +:1004100001A1018503160100269C021A01002A9CF5 +:1004200002751095018100C005010902A1010901B1 +:10043000A10005091901290515002501950575017A +:10044000810295017503810105010930093115818A +:10045000257F95027508810609381581257F95014C +:1004600075088106050C0A38021581257F950175EE +:10047000088106C0C005010906A101050719E02988 +:10048000E715002501950875018102950175088120 +:100490000105081901290595057501910295017558 +:1004A0000391010507190029FF150025FF95067521 +:1004B000088100C0000000000000000000000001F2 +:1004C0000204060A0F17202C3A4A5D71879DB3C7B4 +:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF +:1004E0003A2C20170F0A0604020100000000000049 +:1004F0000000000011241FBECFEFDAE0DEBFCDBF49 +:1005000004B603FE24C08091FB019091FC01A091F0 +:10051000FD01B091FE018730904BA740B04BB9F47C +:100520001092FB011092FC011092FD011092FE014D +:1005300014BE84B7877F84BF88E10FB6F894809398 +:100540006000109260000FBEE0E0FFE3099511E04B +:10055000A0E0B1E0EAE0F8E402C005900D92A43317 +:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0 +:10057000B107E1F70E94A60A0C9403240C94000032 +:100580001092B9008AE08093B800089594EA90939D +:10059000BC009091BC0097FFFCCF9091B900987F70 +:1005A000983021F0903111F081E008958093BB00E4 +:1005B00084E88093BC008091BC0087FFFCCF8091D1 +:1005C000B900887F883111F0803471F780E0089598 +:1005D00084E98093BC008091BC0084FDFCCF089529 +:1005E0008093BB0084E88093BC008091BC0087FFAF +:1005F000FCCF9091B900987F81E0983209F480E0B7 +:10060000089584E88093BC008091BC0087FFFCCFF4 +:100610008091BB00089580910101811115C080E493 +:100620000E94C6028093010181110CC082E10E94E8 +:10063000F00280930101811105C08FEF0E94F0024A +:10064000809301010E94E80284B1807F84B985B162 +:10065000807F85B98AB1837F8AB98BB1837F8BB95B +:100660003E98469808950E94C604809301010E9416 +:100670000B0380B38C7080BB81B3836F81BBA5E318 +:10068000B1E0E3E4F1E08EE08E0F11921D928E1343 +:10069000FCCF0C94B004BF92CF92DF92EF92FF9206 +:1006A0000F931F93CF93DF9380910101882379F0FB +:1006B000809134018F5F80933401811108C00E94C2 +:1006C000C60480930101811102C00E94580405E311 +:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407 +:1006E000E394F12CC730D10500F58091010181110F +:1006F00064C080E40E94C60280930101811112C08F +:1007000082E10E94F0028093010181110BC0C701B8 +:100710000C2E01C0880F0A94EAF780950E94F0021F +:10072000809301010E94E80248C0CA30A1F028F479 +:10073000C83059F0C93061F005C0CC3089F070F094 +:10074000CD3089F0209A289810C0219A29980DC0A0 +:10075000229A2A980AC0239A2B9807C0529A01C05D +:10076000539A5B9802C03E9A469890EA9A95F1F7A0 +:100770009FB1799902C082E001C080E091709D250F +:10078000982B7C9902C084E001C080E0892B7D9980 +:1007900002C038E001C030E0832B7E9902C020E126 +:1007A00001C020E0822B9FB19095991F9927991F36 +:1007B0009295990F907E892B0FC080910101811134 +:1007C00049C080E40E94C60280930101882379F128 +:1007D000B12C0E94E8028B2DF8019081981719F036 +:1007E0008083C09200010E940B0321960F5F1F4F70 +:1007F000CE30D10509F076CF80910001882361F1D8 +:10080000815080930001882339F08FE99FE00197A0 +:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F +:10082000CF01825F91919D938E13FCCF15C083E120 +:100830000E94F002809301018111CACF81E40E94DD +:10084000C602809301018111C3CF0E940103B82E1B +:10085000B094BFCF80E0C0CF0E94560481E0DF910A +:10086000CF911F910F91FF90EF90DF90CF90BF90AD +:100870000895E82FF0E0ED5BFE4F80810895089524 +:100880000F931F93CF93DF93C3E4D1E010E00C2FBD +:10089000025F899190E00E94F71A180F0C13F9CFAC +:1008A000812FDF91CF911F910F9108950C94260510 +:1008B00056985E9825982D9826982E9827982F98C8 +:1008C0008FEF90E0909389008093880090938B0045 +:1008D00080938A0090938D0080938C00259A2D9AA6 +:1008E0002FEF80E792E0215080409040E1F700C078 +:1008F0000000269A2E9A2FEF80E792E02150804048 +:100900009040E1F700C00000279A2F9A2FEF80E770 +:1009100092E0215080409040E1F700C0000025980F +:100920002D982FEF80E792E0215080409040E1F732 +:1009300000C0000026982E982FEF80E792E021500B +:1009400080409040E1F700C0000027982F9856980B +:100950005E9825982D9826982E9827982F98089578 +:1009600089EA8093800089E08093810024982C9804 +:100970003F988AB18F748AB96E98479A8BB1806B11 +:100980008BB9769A0E9458040C94250580E28093D6 +:1009900001018091510181110EC00E94C00281E0CD +:1009A000809351012FEF83ED90E3215080409040E0 +:1009B000E1F700C0000080E40E94C60280930101BC +:1009C00081112EC00E94F00280930101811128C084 +:1009D0000E94F00280930101811122C08FE30E94E6 +:1009E000F0028093010181111BC00E94E80280E4A3 +:1009F0000E94C60280930101811112C08CE00E9406 +:100A0000F0028093010181110BC00E94F0028093DB +:100A10000101811105C08FE30E94F0028093010162 +:100A20000E94E80280910101089561110BC0FC0150 +:100A30008281882321F085EE0E94061103C085EE95 +:100A40000E94CE1180E090E0089508956091BD016C +:100A50007091BE018091BF019091C0010E94031B63 +:100A600056985E9825982D9826982E9827982F9816 +:100A7000813019F0823021F00895259A2D9A089539 +:100A8000269A2E9A089581E0089581E008950C94A5 +:100A9000450508950F931F93CF93DF938C01FC01BD +:100AA000C081D181CE010E947C19BE010E94F30554 +:100AB000EC01B8010E944705882309F48DC0F801B4 +:100AC0008281882309F44AC080915D0181111FC091 +:100AD000C431F0E5DF0709F051C00E94490581E00B +:100AE00080935D010E949B1B90935C0180935B014E +:100AF0001092540110925601109255011092580113 +:100B00001092570110925A011092590165C08091BC +:100B10005B0190915C010E94A71B883C910570F4D9 +:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB +:100B3000D183C0838F5F809354014EC0C43880E559 +:100B4000D80721F0C538D04501F13AC0F8018281BB +:100B5000882341F01092520182E01EC0C438E0E5C3 +:100B6000DE0759F580915201811106C086E20E948C +:100B7000061186E20E94CE1182E01CC0C438F0E566 +:100B8000DF0741F3C538D045D9F4F80182818823C5 +:100B900031F01092530180E20E941D121DC080911D +:100BA0005301811106C087E20E94061187E20E946C +:100BB000CE1180E20E9424120FC0C538D04529F31F +:100BC00081E08093520180935301C801DF91CF915E +:100BD0001F910F910C94430580E0DF91CF911F91FD +:100BE0000F910895089596E0799FF001112494E5FE +:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F +:100C0000E25FFE4F859194910895880F991FFC0132 +:100C1000E657F040859194910895880F991FFC0143 +:100C2000E65FFE4F8591949108950F931F93CF93A4 +:100C3000DF93EC01811520E3920750F5C11580E2A6 +:100C4000D80708F0C3C0CB3BD10590F4C83AD10512 +:100C500008F06AC0C53AD10508F05BC0C430D105C0 +:100C600008F0D0C1219709F0CAC101E010E00AC222 +:100C7000CF3FD10511F008F0C5C1C03FD10508F044 +:100C8000A2C0CE01805E9109089708F4BBC1B7C12C +:100C9000C13090E5D90709F4A2C020F5C0318FE436 +:100CA000D80770F4C11590E4D90708F094C0C115B5 +:100CB00021E3D20708F0A3C1DD278E01106CE2C149 +:100CC000C115D04509F09BC10E9483148FEF94E3B6 +:100CD0002CE0815090402040E1F700C000000E94CD +:100CE000F61BD0C1C11597E5D90758F4C03121E5ED +:100CF000D20708F01CC1C43180E5D80708F475C0DC +:100D00007EC1CE0190578115904108F078C1DF7007 +:100D100073C1C53AD10509F477C1C63AD10509F0C6 +:100D200076C102E810E4AEC1C83AD10509F472C137 +:100D3000C93AD10509F471C1CA3AD10509F470C1A3 +:100D4000CB3AD10509F46FC1CC3AD10509F46EC193 +:100D5000CD3AD10509F46DC1C03BD10509F46CC190 +:100D6000CE3AD10509F46BC1CF3AD10509F46AC175 +:100D7000C13BD10509F469C1C23BD10509F468C181 +:100D8000C33BD10509F467C1C43BD10509F466C171 +:100D9000C53BD10509F465C1C63BD10509F464C161 +:100DA000C73BD10509F463C1C83BD10509F462C151 +:100DB000C93BD10509F461C1CA3BD10509F460C141 +:100DC00000E014E45FC18E0110655CC1CE019F702C +:100DD0000E940D0658C1DF708E01106A53C18091C8 +:100DE000DA0181608093DA014DC10E949B1D81115F +:100DF00002C00E94811D0E94B81D90E09093FB01EB +:100E00008093FA01C23080E5D80721F48091FA017D +:100E1000816086C0C43090E5D90721F48091FA0141 +:100E200082607EC0C63020E5D20721F48091FA01AD +:100E3000846076C0C83080E5D80719F48091FA0143 +:100E400027C0CA3090E5D90721F48091FA0180616A +:100E500067C0CC3020E5D20721F48091FA0180628E +:100E60005FC0CE3080E5D80721F48091FA0180641C +:100E700057C0C03190E5D90721F48091FA0180680C +:100E80004FC0C23120E5D20729F48091FA01846075 +:100E9000886046C0C33080E5D80721F48091FA010C +:100EA0008E7F3EC0C53090E5D90721F48091FA01CC +:100EB0008D7F36C0C73020E5D20721F48091FA013A +:100EC0008B7F2EC0C93080E5D80719F48091FA01D4 +:100ED00026C0CB3090E5D90721F48091FA018F7EAE +:100EE0001FC0CD3020E5D20721F48091FA018F7D1B +:100EF00017C0CF3080E5D80721F48091FA018F7BAD +:100F00000FC0C13190E5D90721F48091FA018F77A4 +:100F100007C0C331D04531F48091FA018B7F877FC0 +:100F20008093FA018091FA010E94BC1DABC08D2F05 +:100F300099278F70992781309105D9F49E012370EC +:100F4000332702C0880F991F2A95E2F79C688E010B +:100F500044E0000F111F4A95E1F700271370802B22 +:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA +:100F70002FC08230910531F4DC2FCC278E01016F18 +:100F8000106A80C08330910569F4CE01837099277F +:100F900001E010E002C0000F111F8A95E2F7C801BE +:100FA0009C680FC084309105B9F4CE0183709927F5 +:100FB00001E010E002C0000F111F8A95E2F7C8019E +:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029 +:100FD0008C010C2B1D2B56C08530910531F4DC2F74 +:100FE000CC278E01046F106A4DC0069709F04AC0E5 +:100FF000CF71DD27DC2FCC278E01106243C000E0CB +:1010000010E040C08E013EC001E810E43BC003E8A0 +:1010100010E438C002EE14E435C009EE14E432C026 +:101020000AEE14E42FC005EB14E42CC006EB14E424 +:1010300029C007EB14E426C00CEC14E423C00DEC2B +:1010400014E420C003E815E41DC00AE815E41AC042 +:1010500002E915E417C004E915E414C001E216E43E +:1010600011C003E216E40EC004E216E40BC005E270 +:1010700016E408C006E216E405C007E216E402C062 +:101080000AE216E4C801DF91CF911F910F910895F4 +:1010900096E0799FF001112494E5899FE00DF11D00 +:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149 +:1010B0009491803E9105E0F4803C910558F5813390 +:1010C000910509F46FC048F48932910509F463C0B1 +:1010D0008A32910509F46DC072C089339105E9F037 +:1010E00082389105D1F08533910509F44DC067C070 +:1010F000833E910581F138F4803E9105B9F0823E3E +:101100009105D9F05CC0863E910561F1873E91055D +:10111000A1F155C00E94050608952091FA0120FD15 +:1011200002C021FF4CC080EE90E049C08091FA01DE +:1011300080FFF9CF89E390E042C08091FA0182FFFD +:101140000EC08091FA0184FF03C080E090E037C0B8 +:1011500083EE90E034C08091FA0182FFF2CF82EEFC +:1011600090E02DC08091FA0183FF0BC08091FA01BD +:1011700084FDEBCF87EE90E022C08091FA0183FFDF +:10118000F5CF86EE90E01BC08091FA0185FF07C085 +:1011900089E290E014C08091FA0185FFF9CF85E3E0 +:1011A00090E00DC08091FA0186FF07C08AE290E0CE +:1011B00006C08091FA0186FFF9CF81E390E00E949A +:1011C0001506089508950C94E20880916E01089523 +:1011D000CF93DF9300D01F92CDB7DEB79C018091F3 +:1011E000F101843019F593E099833B832A8390932E +:1011F000E9008FEF9091E800815095FD06C095EDD4 +:101200009A95F1F700008111F5CF8091E80085FFF4 +:101210000DC040E050E063E070E0CE0101960E9416 +:10122000520B8091E8008E778093E8000F900F902A +:101230000F90DF91CF910895CF93DF9300D01F924D +:10124000CDB7DEB72091F101243021F522E02983CA +:101250009B838A8383E08093E9008FEF9091E8007D +:10126000815095FD06C095ED9A95F1F7000081112A +:10127000F5CF8091E80085FF0DC040E050E063E0CD +:1012800070E0CE0101960E94520B8091E8008E77AB +:101290008093E8000F900F900F90DF91CF91089509 +:1012A0002091F1012430F1F422E02093E9002FEFA6 +:1012B0003091E800215035FD06C035ED3A95F1F743 +:1012C00000002111F5CF2091E80025FF0BC040E080 +:1012D00050E065E070E00E94520B8091E8008E774C +:1012E0008093E8000895CF93DF93EC019091F10192 +:1012F000943009F046C080910C018823D9F0809188 +:101300000D018823B9F09093E9008FEF9091E800E8 +:10131000815095FD06C095E19A95F1F70000811185 +:10132000F5CF8091E80085FF2CC040E050E060E1FF +:1013300070E017C081E08093E9008FEF9091E800A2 +:10134000815095FD06C095ED9A95F1F70000811149 +:10135000F5CF8091E80085FF14C040E050E068E0E0 +:1013600070E0CE010E94520B8091E8008E7780934E +:10137000E80080E1FE01AEE5B1E001900D928A95B2 +:10138000E1F7DF91CF9108958091F001811109C0BB +:101390000E94E70C0E94440D8091E20084608093DB +:1013A000E20008951092F001089508950C942B2204 +:1013B0000E948C1B0E9431220E94EA0F0C94E308C9 +:1013C00042E061EC81E00E94610C42E061EC82E06D +:1013D0000E94610C42E061EC83E00E94610C42E1FA +:1013E00061EC84E00C94610C8091F301833009F48A +:1013F00055C030F4813071F0823009F48EC0089508 +:101400008A3009F47AC08B3009F460C0893009F061 +:101410009CC020C08091F201813A09F096C0809171 +:10142000E800877F8093E8008091F6019091F701B2 +:10143000892B21F460E18EE591E003C060E080E05B +:1014400090E070E00E949D0B8091E8008B77809384 +:10145000E80008958091F201813209F076C0809110 +:10146000F6019091F701009719F0039709F06DC00C +:101470008091E800877F8093E8008091E80082FDFA +:1014800005C08091F1018111F8CF5FC08091F1001A +:1014900080936E018091E8008B7753C08091F201B8 +:1014A000813A09F052C08091F6019091F701892BA1 +:1014B00009F04BC08091E800877F8093E80080911D +:1014C000E80080FFFCCF80910C0136C08091F201D2 +:1014D0008132D9F58091F6019091F701892BA9F518 +:1014E0008091E800877F8093E8000E94960C8091AD +:1014F000F40180930C010C9483148091F2018132E9 +:1015000021F58091E800877F8093E8000E94960C87 +:101510008091F50180936F0108958091F201813AE5 +:10152000A1F48091E800877F8093E8008091E80033 +:1015300080FFFCCF80916F018093F1008091E800E3 +:101540008E778093E8000C94960C089584B7877F7B +:1015500084BF88E10FB6F894809360001092600019 +:101560000FBE90E080E80FB6F894809361009093EE +:1015700061000FBE0E9439100E94E70C0E94440DCA +:101580008091E20084608093E20078940E94CA0F08 +:101590000E943B1082E091E00E94E50F0E94192218 +:1015A0008091F101853069F40E94531B8091EF0115 +:1015B0008823B1F30E947E1B882391F30E943C0B89 +:1015C000EFCF0E944110ECCF292F33272330310574 +:1015D000C9F064F42130310581F02230310509F081 +:1015E00043C08DE690E02AE333E042C0213231056A +:1015F000F1F02232310541F137C082E190E027EA73 +:1016000033E036C099278130910541F08230910551 +:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4 +:1016200002C0E6E0F3E0849190E09F0121C06430C5 +:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5 +:10164000318189E090E014C0643070F470E0FB01F7 +:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47 +:10166000FE4F808190E004C080E090E020E030E018 +:10167000FA0131832083089580E189BD82E189BD2B +:1016800009B400FEFDCF8091D8008F7D8093D800F3 +:101690008091E00082608093E0008091E00081FD15 +:1016A000FCCF0895CF92DF92EF92FF920F931F939A +:1016B000CF93DF93EC018B016A010E94B50C81117D +:1016C00033C0C114D10439F0F60180819181081B27 +:1016D000190BC80FD91FE12CF12C0115110519F1B7 +:1016E0008091E80085FD16C08091E8008E77809398 +:1016F000E800C114D10449F0F60180819181E80E1F +:10170000F91EF182E08285E00FC00E94B50C8823AB +:1017100021F30AC089918093F10001501109FFEF74 +:10172000EF1AFF0ADACF80E0DF91CF911F910F917E +:10173000FF90EF90DF90CF9008952091F8013091C5 +:10174000F9012617370748F06115710539F4209122 +:10175000E8002E772093E80001C0B90140E0611550 +:101760007105A9F12091F101222309F443C025302C +:1017700009F442C02091E80023FD40C02091E80018 +:1017800022FD32C02091E80020FFE9CF4091F30014 +:101790002091F20030E0342BFC01CF01611571057E +:1017A00059F02830310540F481918093F100615067 +:1017B00071092F5F3F4FF1CF41E02830310509F02B +:1017C00040E02091E8002E772093E800C8CF411137 +:1017D000C9CF0AC08091F101882361F0853061F0A2 +:1017E0008091E80083FD0AC08091E80082FFF2CF7B +:1017F00080E0089582E0089583E0089581E00895EF +:101800002091F8013091F9012617370748F061154A +:10181000710539F42091E8002E772093E80001C08B +:10182000B901FC0120E06115710591F18091F10190 +:10183000882309F440C0853009F43FC08091E80056 +:1018400083FD3DC08091E80082FD2FC08091E800BB +:1018500080FFE9CF2091F3008091F20090E0922B7D +:101860006115710559F08830910540F42491209359 +:10187000F1003196615071090196F2CF21E008978D +:1018800009F020E08091E8008E778093E800CBCFCC +:101890002111CCCF0AC08091F101882361F08530FD +:1018A00061F08091E80083FD0AC08091E80082FF2A +:1018B000F2CF80E0089582E0089583E0089581E00A +:1018C0000895982F973058F59093E900981739F0BC +:1018D0007091EC002091ED005091F00003C0242F96 +:1018E000762F50E021FF19C03091EB003E7F3093FE +:1018F000EB003091ED003D7F3093ED003091EB0037 +:1019000031603093EB007093EC002093ED00509326 +:10191000F0002091EE0027FF07C09F5FD3CF8F70AC +:101920008093E90081E0089580E008958091F201BC +:1019300087FF11C08091E80082FD05C08091F10110 +:101940008111F8CF11C08091E8008B770BC0809196 +:10195000F101882349F08091E80080FFF8CF809161 +:10196000E8008E778093E80008952091E40030919C +:10197000E50095E64091EC00842F817040FF22C085 +:101980008091E80080FD1CC08091F101882391F0D6 +:10199000853091F08091EB0085FD10C04091E4000E +:1019A0005091E5004217530729F39A01915011F71E +:1019B00084E0089582E0089583E0089581E0089529 +:1019C00080E008954091E80042FFDECF08950E9434 +:1019D000550D0E945D0DE0EEF0E080818160808316 +:1019E000E8EDF0E080818F77808319BCA7EDB0E04F +:1019F0008C918E7F8C9380818F7E80831092F001FA +:101A000008950F931F93CF93DF930E94550D0E946B +:101A10005D0DC8EDD0E088818F77888388818068EC +:101A2000888388818F7D888319BC1092F101109280 +:101A3000ED011092EF011092EE0100EE10E0F801BE +:101A400080818B7F808388818160888342E060E031 +:101A500080E00E94610CE1EEF0E080818E7F808367 +:101A6000E2EEF0E080818160808380818860808305 +:101A7000F80180818E7F8083888180618883DF91F7 +:101A8000CF911F910F910895E8EDF0E080818F7E56 +:101A90008083E7EDF0E080818160808384E082BF15 +:101AA00081E08093F0010C94010DE8EDF0E080817D +:101AB0008E7F80831092E20008951092DA001092D7 +:101AC000E10008951F920F920FB60F9211242F93E9 +:101AD0003F934F935F936F937F938F939F93AF93B6 +:101AE000BF93EF93FF938091E10082FF0BC0809141 +:101AF000E20082FF07C08091E1008B7F8093E100CC +:101B00000E94C90F8091DA0080FF1FC08091D80029 +:101B100080FF1BC08091DA008E7F8093DA00809175 +:101B2000D90080FF0DC080E189BD82E189BD09B483 +:101B300000FEFDCF81E08093F1010E94C40905C041 +:101B400019BC1092F1010E94D2098091E10080FF3E +:101B500019C08091E20080FF15C08091E2008E7F65 +:101B60008093E2008091E20080618093E2008091A6 +:101B7000D80080628093D80019BC85E08093F10181 +:101B80000E94D6098091E10084FF30C08091E2007C +:101B900084FF2CC080E189BD82E189BD09B400FECB +:101BA000FDCF8091D8008F7D8093D8008091E10097 +:101BB0008F7E8093E1008091E2008F7E8093E2002F +:101BC0008091E20081608093E2008091ED018823A2 +:101BD00011F084E007C08091E30087FD02C081E03E +:101BE00001C083E08093F1010E94D8098091E10057 +:101BF00083FF29C08091E20083FF25C08091E1002E +:101C0000877F8093E10082E08093F1011092ED01E3 +:101C10008091E1008E7F8093E1008091E2008E7FD1 +:101C20008093E2008091E20080618093E20042E0D4 +:101C300060E080E00E94610C8091F00088608093F9 +:101C4000F0000E94D509FF91EF91BF91AF919F9154 +:101C50008F917F916F915F914F913F912F910F9055 +:101C60000FBE0F901F9018951F920F920FB60F92F4 +:101C700011242F933F934F935F936F937F938F9391 +:101C80009F93AF93BF93CF93DF93EF93FF93C09155 +:101C9000E900CF708091EC00D82FD17080FDD0E8A2 +:101CA0001092E9008091F000877F8093F000789493 +:101CB0000E94780E1092E9008091F0008860809375 +:101CC000F000CD2BCF70C093E900FF91EF91DF9131 +:101CD000CF91BF91AF919F918F917F916F915F91C4 +:101CE0004F913F912F910F900FBE0F901F9018951D +:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3 +:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115 +:101D1000F10091938E13FBCF0E94F4098091E800AB +:101D200083FF1FC18091F2019091F301492F50E090 +:101D30004A30510508F015C1FA01EA5AFF4F0C94D8 +:101D4000B323803881F0823809F00BC18091F6010D +:101D50008F708093E9008091EB0085FB882780F9E4 +:101D60001092E90006C08091EE019091EF0191116F +:101D700082609091E800977F9093E8008093F10053 +:101D80001092F100C8C0282F2D7F09F0EAC08823E7 +:101D900019F0823061F0E5C08091F401813009F0E2 +:101DA000E0C0933009F080E08093EF012BC0809178 +:101DB000F401811127C08091F6018F7009F4D1C020 +:101DC0008093E9002091EB0020FF1CC0933021F4A8 +:101DD0008091EB00806214C09091EB009061909331 +:101DE000EB0021E030E0A90102C0440F551F8A95A5 +:101DF000E2F74093EA001092EA008091EB008860DD +:101E00008093EB001092E9008091E800877F86C004 +:101E10008111A7C01091F4011F778091E3008078B1 +:101E2000812B8093E3008091E800877F8093E80016 +:101E30000E94960C8091E80080FFFCCF8091E30027 +:101E400080688093E300111102C082E001C083E04A +:101E50008093F10186C08058823008F082C0809162 +:101E6000F4019091F5018C3D53E0950779F583E0FD +:101E70008A838AE289834FB7F894DE01139620E0C3 +:101E80003EE051E2E32FF0E050935700E49120FF51 +:101E900003C0E295EF703F5FEF708E2F90E0EA3065 +:101EA00010F0C79601C0C0968D939D932F5F24318B +:101EB00049F74FBF8091E800877F8093E8006AE28E +:101EC00070E0CE0101960E949D0B14C0AE014F5FE1 +:101ED0005F4F6091F6010E94E40ABC01009709F48B +:101EE00040C09091E800977F9093E80089819A81A3 +:101EF0000E94000C8091E8008B778093E80031C04D +:101F0000803879F58091E800877F8093E8008091A0 +:101F1000ED018093F1008091E8008E778093E800D6 +:101F20000E94960C1EC081111CC09091F401923049 +:101F3000C0F48091E800877F8093E8009093ED01E2 +:101F40000E94960C8091ED01811106C08091E30002 +:101F500087FD02C081E001C084E08093F1010E940E +:101F6000E0098091E80083FF0AC08091E800877F44 +:101F70008093E8008091EB0080628093EB00AA964A +:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A +:101F900008950895CF938091F1018823A1F0C09115 +:101FA000E900CF709091EC00892F817090FD80E85E +:101FB000C82B1092E9008091E80083FD0E94780E02 +:101FC000CF70C093E900CF910895909375018093ED +:101FD00074010895E0917401F0917501309721F03A +:101FE0000190F081E02D099480E00895E091740162 +:101FF000F0917501309721F00280F381E02D099472 +:102000000895E0917401F0917501309721F00480FA +:10201000F581E02D099408952091720130917301AA +:102020008217930771F09093730180937201E0918E +:102030007401F0917501309721F00680F781E02D51 +:1020400009940895209170013091710182179307CE +:1020500071F09093710180937001E0917401F0919F +:102060007501309721F00084F185E02D09940895E1 +:1020700008950C9438100E94921B0E9433030C9414 +:10208000541C9F92AF92BF92CF92DF92EF92FF9239 +:102090000F931F93CF93DF9300D000D000D0CDB724 +:1020A000DEB70E944B030DE010E0AA24A394B12CEC +:1020B000902E802F0E943904980129583E4F6901C3 +:1020C000F901F080F826A1F40150110988F78FEF8B +:1020D00089838A831B820E949B1B8160782F9D834A +:1020E0008C8349815A816B818D810E94D8102FC0C9 +:1020F0009091DA0191FF04C08E830E943F048E818B +:1021000025E030E0A501022E01C0440F0A94EAF751 +:10211000E42E4F21C1F029839A828E2191E009F4A7 +:1021200090E09B830E949B1B8160782F9D838C8312 +:1021300049815A816B818D810E94D810F60180817E +:10214000E826E08204C021503109E0F6BDCF0E94AC +:102150003B1F109176010E94EA0F1817B9F00E94F8 +:10216000EA0F8093760126960FB6F894DEBF0FBE75 +:10217000CDBFDF91CF911F910F91FF90EF90DF9036 +:10218000CF90BF90AF909F900C94E30826960FB627 +:10219000F894DEBF0FBECDBFDF91CF911F910F919D +:1021A000FF90EF90DF90CF90BF90AF909F900895F9 +:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82 +:1021C0000FBECDBF4F83588769877A878B87DE0123 +:1021D000119686E0FD0111928A95E9F785E0FE01EE +:1021E000379601900D928A95E1F749815A816B816A +:1021F0007C818D819E810E9421172B960FB6F894C9 +:10220000DEBF0FBECDBFDF91CF910895CF9388235E +:1022100009F4C2C0C82F823859F40E94EA0F81FD28 +:10222000BBC089E30E94FB190E94C81A89E30CC055 +:10223000833879F40E94EA0F80FDAEC083E50E94E6 +:10224000FB190E94C81A83E50E943D1ACF910C9495 +:10225000C81A843859F40E94EA0F82FD9DC087E4B1 +:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6 +:10227000813A48F48C2F0E947E2181118DC08C2FD1 +:102280000E94FB19E3CF80E28C0F883048F4C770BE +:1022900081E001C0880FCA95EAF70E94811AD6CF63 +:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB +:1022B00083E890E005C081E890E002C082E890E009 +:1022C000CF910C940C1088E58C0F833108F064C01A +:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118 +:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186 +:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106 +:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173 +:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB +:1023200038C082EE90E035C089EE90E032C08AEE8F +:1023300090E02FC085EB90E02CC086EB90E029C0A8 +:1023400087EB90E026C08CEC90E023C08DEC90E011 +:1023500020C083E891E01DC08AE891E01AC082E9BC +:1023600091E017C084E991E014C081E292E011C0CD +:1023700083E292E00EC084E292E00BC085E292E03C +:1023800008C086E292E005C087E292E002C08AE2DD +:1023900092E0CF910C942210CF910895882309F4F4 +:1023A0004BC0823859F40E94EA0F81FF45C089E38F +:1023B0000E94FB190E94C81A89E30CC0833871F48B +:1023C0000E94EA0F80FF38C083E50E94FB190E943B +:1023D000C81A83E50E943D1A0C94C81A843859F42F +:1023E0000E94EA0F82FF28C087E40E94FB190E9426 +:1023F000C81A87E4EFCF9CEF980F913A58F390E218 +:10240000980F983050F4877091E001C0990F8A9529 +:10241000EAF7892F0E94871ADFCF9BE5980F933048 +:1024200020F480E090E00C940C10885A833120F462 +:1024300080E090E00C9422100895882321F00E94FF +:10244000811A0C94C81A0895882321F00E94871AD3 +:102450000C94C81A08957F928F929F92AF92BF9268 +:10246000CF92DF92EF92FF920F931F93CF93DF9360 +:102470001F92CDB7DEB77C01C62E772EFC010581F9 +:1024800002950F70128111110E949E1A0E94F41978 +:10249000882379F0112369F080E28C0D883048F0B0 +:1024A00082E00E94DD190E94F41991E0D82ED9260D +:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C +:1024C0000C94B323872D807F072D0F70882311F084 +:1024D0000295007F112389F0002309F490C180E266 +:1024E0008C0D883020F4802F0E94811A03C0802F29 +:1024F0000E94911A0E94C81A82C18C2D0E94CE118E +:10250000002309F495C180E28C0D883020F4802FDF +:102510000E94871A03C0802F0E94971A0E94C81A2F +:1025200087C1972D907F872D8F70903211F0829503 +:10253000807FCC2021F0F1E0CF16B1F01EC0112336 +:1025400049F0002309F414C1013009F011C10E94BF +:10255000B11A6EC1002319F0013009F469C18983F1 +:102560000E94B41A89810AC1112321F0023008F0B7 +:102570005FC1FEC001115CC101C1112321F0002324 +:1025800009F4F6C03CC1002309F4F8C03EC1872D10 +:1025900086958695837090E0009719F0019761F019 +:1025A00047C1112321F08C2D972D937002C080E03C +:1025B00090E00E940C103CC1112321F08C2D972D2E +:1025C000937002C080E090E00E94221031C18C2DF7 +:1025D000112319F00E94431E02C00E94AB1E0E94EC +:1025E000301F26C1872D837009F052C0111120C100 +:1025F0008C2D829586958770880F880F9C2D9F70F3 +:10260000892E912CA12CB12C082E04C0880C991C69 +:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041 +:1026200020E030E0B901A80104C0440F551F661F27 +:10263000771F8A95D2F7CB01BA0160957095809586 +:10264000909503C060E070E0CB01272D269526957C +:10265000237030E02230310569F02330310589F0F4 +:10266000682979298A299B292130310571F00E9436 +:102670006918DEC0682979298A299B290E94851852 +:10268000D7C00E946918C501B4010E944D18D0C07E +:10269000112319F0872D817001C08695882309F4D4 +:1026A000C7C08C2D829586958770880F880F9C2DCA +:1026B0009F70892E912CA12CB12C082E04C0880C5F +:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC +:1026D00010E020E030E0B901A80104C0440F551F0C +:1026E000661F771F8A95D2F7CB01BA016095709566 +:1026F0008095909503C060E070E0CB01272D269572 +:1027000026952370422F50E04230510569F0433046 +:10271000510589F0682979298A299B294130510579 +:1027200071F00E94431984C0682979298A299B295C +:102730000E945F197DC00E944319C501B4010E9427 +:10274000271976C08C2D90E0FC01E05EF109E5319F +:10275000F10508F050C0E059FF4F0C94B3230C2D45 +:102760000F70872D8F71112331F00E94C018802FB8 +:102770000E941D125DC00E94E118802F0E94241249 +:1027800057C0112339F0011153C0872D8F710E945A +:1027900006194EC0023008F04BC0F7CF112339F0B4 +:1027A000872D8F710E94C01843C01123C9F3872D54 +:1027B0008F710E94E1183CC0112329F0872D8F7181 +:1027C0000E94AB1835C00E94A11832C0112351F0ED +:1027D000172D1F71812F0E94C01863E0812F0E9466 +:1027E000D41926C081E00E94DD19023008F182E090 +:1027F0000E94DD191DC0112331F0002389F28C2DB8 +:102800000E94061115C0002391F28C2D0E94CE115A +:102810000FC0472D4F706C2DC7010E9415050E94F7 +:10282000C51706C0472D4F706C2DC7010E94F205D9 +:10283000DD20F9F00E94D01980FD1BC0F701128243 +:102840000E94CA190E94C018C7010E9448140E9421 +:10285000CA190F90DF91CF911F910F91FF90EF90C8 +:10286000DF90CF90BF90AF909F908F907F900C940F +:10287000E1180F90DF91CF911F910F91FF90EF9092 +:10288000DF90CF90BF90AF909F908F907F900895F2 +:102890000F931F93CF93DF93EC01888199812B8154 +:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B +:1028B0000E944A05882371F0688179818A810E948B +:1028C000C6198C010E947B190E944218B801CE01E2 +:1028D0000E942B12DF91CF911F910F9108950E94BA +:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471 +:1028F000E11F0E94301F80E090E00E940C1080E0F9 +:1029000090E00C9422100E948E1A0C946F140E9476 +:10291000BB19292F22952F7030E02C3031054CF453 +:102920002A3031056CF42250310922303105A8F4E7 +:1029300007C02C30310569F02F30310551F00DC042 +:10294000803F69F018F4803E40F409C0843F29F4C8 +:1029500006C093FB882780F9089580E0089581E000 +:102960000895CF93DF9300D000D01F92CDB7DEB78C +:102970000F900F900F900F900F90DF91CF910895CF +:10298000CF93DF9300D000D000D0CDB7DEB726962E +:102990000FB6F894DEBF0FBECDBFDF91CF91089583 +:1029A0001F93CF93DF93C091850116E0809186013C +:1029B000C81799F0D0E01C9FF0011D9FF00D112465 +:1029C000E957FE4F408151816281738184819581F5 +:1029D0000E94C0142196C770E9CFDF91CF911F915B +:1029E00008954091B7015091B8016091B90170917B +:1029F000BA018091BB019091BC010C94C0148091EC +:102A0000BC0182958F7009F054C08091B901882370 +:102A100009F44FC080918501A09186016091B701B2 +:102A20007091B8014091BA015091BB01B6E08A178C +:102A300009F43FC090E041155105C1F17F3F11F409 +:102A40006F3FA1F1B89FF001B99FF00D1124E95734 +:102A5000FE4F218172132AC02081621327C0228178 +:102A6000211124C0238134812417350710F421500B +:102A70003109241B350B283C3105C0F42091BC01E1 +:102A80002F7020612093BC0126E0289FF001299F30 +:102A9000F00D1124E457FE4F80818F708061808398 +:102AA00087EB91E00E9448140C94D0140196877033 +:102AB000BECF0895CF92DF92EF92FF920F931F93B4 +:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32 +:102AD0000FBECDBF8C0185E0F801DE011D9601908F +:102AE0000D928A95E1F7D8014C9111965C9111975E +:102AF00012966C9112971396CD90DC9014973091AA +:102B0000B7017091B8018091BA019091BB01009713 +:102B100009F46BC17F3F19F43F3F09F466C1E090AF +:102B2000B901EE2009F4C0C02091BC01C816D90635 +:102B300028F0F601E81BF90BCF0104C080959095B1 +:102B40008C0D9D1DFF24F394883C910578F0F12CA9 +:102B5000207F09F0C6C07C2DD98AC88A89890E9445 +:102B6000B11487EB91E00E944814B1C0822F807F9E +:102B700009F046C0751314C0341312C0611110C09F +:102B80002F7020612093BC010E94F11487EB91E02B +:102B90000E9448148091BC01D80115968C932EC0D8 +:102BA000CD2819F15F3F11F44F3FF9F0F62E611176 +:102BB0001CC0809185012091860136E0821709F4BE +:102BC0005AC090E0389FF001399FF00D1124E95769 +:102BD000FE4F7181571306C07081471303C0728185 +:102BE000711103C001968770E9CFF62E662309F4B0 +:102BF00018C18091BC0181608093BC01F12C11C18E +:102C0000751308C0341306C0611104C08091BC0163 +:102C1000D801C3C04D875E878D859E856A8B0E94D3 +:102C200087146A898823E1F16623D1F12091BC01E0 +:102C3000822F82958F7090E0029774F08091B70197 +:102C40009091B80198878F831986DB86CA862C8776 +:102C5000CE0107960E94481486E0F801A7EBB1E088 +:102C600001900D928A95E1F70E94FF140E94F114E1 +:102C7000FF24F394D6C04D875E878D859E850E9484 +:102C8000BB19292F22952F7030E0223031050CF02E +:102C9000BCC09F7009F0B6C0805E883008F4C1C027 +:102CA000C8010E944814E4CFC816D90608F453C0DE +:102CB000F601E81BF90BCF01883C910508F450C0E0 +:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E +:102CD000F1E086E0DF011D928A95E9F70E94F11488 +:102CE000A0C0751314C0341312C0611110C08091BC +:102CF000BC01F8018583C8010E94481486E0E7EB17 +:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C +:102D10005E878D859E856A8B0E9487146A898823C9 +:102D200009F4BECF662309F4BBCF2091BC01822FEA +:102D300082958F7090E002970CF48ECF8091B7014E +:102D40009091B8019A8389831B82DD82CC822E8385 +:102D5000CE0101967FCF809590958C0D9D1DACCFB7 +:102D6000F62E662309F49CCF75132EC034132CC0A5 +:102D70002091BC0120FD1FC0822F82958F70D9F059 +:102D8000D80115962C9315978F3049F08F5F982FA7 +:102D90009295907F822F8F70892B15968C93C80106 +:102DA0000E94481486E0F801A7EBB1E001900D9273 +:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7 +:102DC0000D928A95E1F72DC04D875E878D859E8592 +:102DD0000E948714811140CF8091BC018160809353 +:102DE000BC01C8010E9448141CC0662309F458CFD6 +:102DF0004D875E878D859E850E948714882309F400 +:102E00004FCF2ACF811148CF0CC0243031050CF0B0 +:102E100047CF9F7009F440CFF8019581907F09F06A +:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D +:102E3000DF91CF911F910F91FF90EF90DF90CF9096 +:102E400008951F93CF93DF93CDB7DEB72C970FB6BE +:102E5000F894DEBF0FBECDBF4F83588769877A874E +:102E60008B879C87CE0107960E945A15882369F0AC +:102E70008F8198852A853B85232BF1F19F3F09F0AF +:102E800063C08F3F09F060C037C086E0FE0137960F +:102E9000DE01119601900D928A95E1F76F81788598 +:102EA000EA85FB85309741F17F3F11F46F3F21F1B7 +:102EB0002091860130E0C9010196877099274091E1 +:102EC000850150E08417950709F447C069837A8328 +:102ED000FD83EC8396E0929FD001939FB00D112467 +:102EE000A957BE4FFE01319601900D929A95E1F7D8 +:102EF000809386010E94D01416E080918501909104 +:102F000086018917C1F1189FC001112489579E4F6E +:102F10000E945A15882379F1E09185011E9FF001E6 +:102F20001124E957FE4F4081518162817381848170 +:102F300095810E94C0148091850190E00196877070 +:102F4000992780938501D9CF4F81588569857A85E6 +:102F50008B859C850E94C014CFCF0E948314109251 +:102F6000860110928501E7EBF1E086E0DF011D921A +:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45 +:102F8000CDBFDF91CF911F910895EF92FF920F93E4 +:102F90001F93CF93DF938C01009709F46CC0F12C41 +:102FA000EE24E394E8012196F8018491843740F4FB +:102FB000843008F051C0813081F0823019F15BC05B +:102FC000853709F444C0A8F19CE7980F903708F0C2 +:102FD00052C08F770E94CE1141C00E5F1F4FFE017D +:102FE000C49180E28C0F883048F4C7708E2D01C0E8 +:102FF000880FCA95EAF70E94A11A14C08C2F0E946C +:1030000006112DC00E5F1F4FFE01C49180E28C0F90 +:10301000883058F4C7708E2D01C0880FCA95EAF722 +:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3 +:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3 +:103040009FE00197F1F700C00000C150F6CF0E5F7E +:103050001F4FFE01F49003C00E9406118E018F2DB8 +:10306000882309F49FCFEFE9FFE03197F1F700C023 +:1030700000008150F5CFDF91CF911F910F91FF900C +:10308000EF90089508956093C1017093C2018093F9 +:10309000C3019093C4010C946F140F931F9300917C +:1030A000C1011091C2012091C3013091C401DC0122 +:1030B000CB01802B912BA22BB32B8093C10190933A +:1030C000C201A093C301B093C4011F910F910C944E +:1030D0006F140F931F930091C1011091C2012091B1 +:1030E000C3013091C401DC01CB0180239123A223D1 +:1030F000B3238093C1019093C201A093C301B09305 +:10310000C4011F910F910C946F140F931F930091A2 +:10311000C1011091C2012091C3013091C401DC01B1 +:10312000CB0180279127A227B3278093C1019093D9 +:10313000C201A093C301B093C4011F910F910C94DD +:103140006F141092BD011092BE011092BF01109237 +:10315000C0010C946F1441E050E060E070E004C0E6 +:10316000440F551F661F771F8A95D2F74093BD0104 +:103170005093BE016093BF017093C0010C946F1413 +:1031800041E050E060E070E004C0440F551F661F4E +:10319000771F8A95D2F78091BD019091BE01A091D1 +:1031A000BF01B091C001482B592B6A2B7B2B409358 +:1031B000BD015093BE016093BF017093C0010C9498 +:1031C0006F1441E050E060E070E004C0440F551F10 +:1031D000661F771F8A95D2F7409550956095709538 +:1031E0008091BD019091BE01A091BF01B091C0013D +:1031F000482359236A237B234093BD015093BE018A +:103200006093BF017093C0010C946F1441E050E0D3 +:1032100060E070E004C0440F551F661F771F8A9559 +:10322000D2F78091BD019091BE01A091BF01B091F4 +:10323000C001482759276A277B274093BD01509337 +:10324000BE016093BF017093C0010C946F140F9383 +:103250001F930091BD011091BE012091BF013091DB +:10326000C001DC01CB01802B912BA22BB32B8093CF +:10327000BD019093BE01A093BF01B093C0011F9107 +:103280000F910C946F140F931F930091BD01109137 +:10329000BE012091BF013091C001DC01CB01802330 +:1032A0009123A223B3238093BD019093BE01A093E9 +:1032B000BF01B093C0011F910F910C946F140F9335 +:1032C0001F930091BD011091BE012091BF0130916B +:1032D000C001DC01CB0180279127A227B32780936F +:1032E000BD019093BE01A093BF01B093C0011F9197 +:1032F0000F910C946F140895CF92DF92EF92FF928A +:103300000F931F93CF93DF938C01C090C101D09096 +:10331000C201E090C301F090C4018091BD01909181 +:10332000BE01A091BF01B091C001C82AD92AEA2AE2 +:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520 +:10334000A795979587950A94D2F780FF06C0B80194 +:103350008C2F0E944808019721F4219760F780E0A4 +:1033600001C08C2FDF91CF911F910F91FF90EF90B3 +:10337000DF90CF900895CF93DF93EC010E947C19EA +:10338000BE010E944808DF91CF910895CB010E94B1 +:10339000BB1908958091C5018595859585950895FA +:1033A0008091C5018770089598E0899F900111244C +:1033B000262B2093C5010C94C0182091C50180953F +:1033C00082238093C501982F977069F430E0482FCD +:1033D000552747FD50952417350729F08595859584 +:1033E00085950C94E11808959091C501977081E03E +:1033F00009F480E0089590910C01992321F09091B7 +:103400000D01911109C020910E0130910F01F901B8 +:1034100032969FEF40E01FC0982F9695969596950F +:103420009F3050F5E0910E01F0910F01E90FF11D71 +:10343000877021E030E0A90102C0440F551F8A9532 +:10344000E2F7CA019181892B818308959F3F39F06A +:103450004F5F4E3041F051915813F8CF0DC05111CC +:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08 +:1034700097FDFA9582830895089590910C01992300 +:1034800021F090910D01911109C020910E01309110 +:103490000F01F9013296205F3F4F1FC0982F96957C +:1034A000969596959F30F0F4E0910E01F0910F0102 +:1034B000E90FF11D877021E030E0A90102C0440F3F +:1034C000551F8A95E2F7CA018095918189238183EE +:1034D00008953196E217F30729F090819813F9CFF8 +:1034E0001082F7CF089581E090E0E0910E01F09115 +:1034F0000F01E80FF91F1082019680319105A9F79D +:1035000008959091D901892B8093D90108958095D0 +:103510009091D90189238093D90108951092D901FE +:1035200008959091D801892B8093D80108958095B2 +:103530009091D80189238093D80108951092D801E1 +:1035400008959091D701892B8093D7010895809594 +:103550009091D70189238093D70108951092D701C4 +:1035600008958093C60108951092C6010895809130 +:103570000E0190910F01FC0131969C01205F3F4F9D +:1035800080E0919191118F5FE217F307D1F70895D1 +:10359000E0910E01F0910F018091D9018083E091BB +:1035A0000E01F0910F0190818091D801892B8083C9 +:1035B000E0910E01F0910F0190818091D701892B4C +:1035C00080838091C601882361F0E0910E01F09123 +:1035D0000F019081892B80830E94B71A811110926C +:1035E000C60180910E0190910F010C94F60F20E01E +:1035F000009739F0AC0141505109842395232F5F86 +:10360000F7CF822F0895CF92DF92EF92FF926C0155 +:10361000EE24FF24C114D104E104F10421F0C70118 +:10362000B60120E101C020E0C72ED82EE92EFF24EC +:10363000C114D104E104F10419F0285FC701B601F7 +:103640006B017C0154E0F694E794D794C7945A95A3 +:10365000D1F7C114D104E104F10419F02C5FC701C2 +:10366000B6016B017C0142E0F694E794D794C794CD +:103670004A95D1F7C114D104E104F10419F02E5F89 +:10368000C701B601DC01CB01B695A7959795879543 +:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5 +:1036A000DF90CF9008958091F101843021F1109244 +:1036B000DB0120E488E190E00FB6F894A8958093B0 +:1036C00060000FBE2093600080E00E94E30883B793 +:1036D000817F846083BF83B7816083BF789488953E +:1036E00083B78E7F83BF88E10FB6F8948093600024 +:1036F000109260000FBE0895089508950E947C1BEB +:103700000E944B030E947D1B0E94400491E08111A6 +:1037100001C090E0892F08950E9483140E94EA0F4F +:103720000C94E30882E084BD93E095BD9AEF97BDC9 +:1037300080936E0008952FB7F8948091DC019091EA +:10374000DD01A091DE01B091DF012FBF0895CF927E +:10375000DF92EF92FF920F931F932FB7F89440914F +:10376000DC015091DD016091DE017091DF012FBF1E +:103770006A017B01EE24FF248C0120E030E0C016BA +:10378000D106E206F30610F4415051099A01281BB4 +:10379000390BC9011F910F91FF90EF90DF90CF90EF +:1037A00008951F920F920FB60F9211248F939F933B +:1037B000AF93BF938091DC019091DD01A091DE0178 +:1037C000B091DF010196A11DB11D8093DC019093A2 +:1037D000DD01A093DE01B093DF01BF91AF919F9116 +:1037E0008F910F900FBE0F901F9018950E94E70CBD +:1037F000F8942FEF87EA91E6215080409040E1F75E +:1038000000C0000087E090EBDC018093FB01909307 +:10381000FC01A093FD01B093FE019CE088E10FB68E +:10382000F894A895809360000FBE90936000FFCF3E +:10383000EF92FF920F931F93CF93DF93D82FCDE09A +:103840008C2F0E94390405E010E0E82EF12CC7010E +:10385000002E02C0959587950A94E2F780FF09C073 +:10386000602F7C2F80E00E94F305D81302C081E016 +:1038700006C00150110958F7C15010F780E0DF91E0 +:10388000CF911F910F91FF90EF900895CF93C82F84 +:103890008CE20E94181C882321F08C2FCF910C946D +:1038A000181C80E0CF910895CF930E949B1D811139 +:1038B00002C00E94811DC5E6C15049F00E944B0321 +:1038C0008FE39CE90197F1F700C00000F5CF89E292 +:1038D0000E94461C811113C18AE20E94461C81117C +:1038E0000E94811D85E00E94461C81110E94F61BEA +:1038F0000E94A61D8093DA0187E00E94461C88235F +:10390000A9F18BE10E94461C882351F08091DA01D5 +:1039100081FB222720F991E0922790FB81F90EC0CC +:103920008EE00E94461C882361F08091DA0182FBC0 +:10393000222720F991E0922790FB82F98093DA0107 +:1039400015C080E10E94461C9091DA01882341F065 +:1039500093FB222720F981E0822780FB93F904C0A2 +:10396000892F809580FB90F99093DA018091DA019C +:103970000E94AA1D0E94B81D8093FA0180EE0E9449 +:10398000461C882341F08091FA01982F909590FB76 +:1039900080F98093FA0189E30E94461C882359F03C +:1039A0008091FA0181FB222720F991E0922790FB78 +:1039B00081F98093FA0182EE0E94461C882359F017 +:1039C0008091FA0182FB222720F991E0922790FB57 +:1039D00082F98093FA0186EE0E94461C882359F0F2 +:1039E0008091FA0183FB222720F991E0922790FB36 +:1039F00083F98093FA0183EE0E94461C882359F0D4 +:103A00008091FA0184FB222720F991E0922790FB14 +:103A100084F98093FA0185E30E94461C882359F0BB +:103A20008091FA0185FB222720F991E0922790FBF3 +:103A300085F98093FA0181E30E94461C882359F09E +:103A40008091FA0186FB222720F991E0922790FBD2 +:103A500086F98093FA0181E10E94461C882359F07F +:103A60008091FA0187FB222720F991E0922790FBB1 +:103A700087F98093FA018091FA010E94BC1D809120 +:103A8000FA0187FB882780F980930D0187E20E9465 +:103A9000461CC82F8EE10E94461C8111C2608FE136 +:103AA0000E94461C8111C46080E20E94461C811164 +:103AB000C86081E20E94461C8111C06182E20E94BE +:103AC000461C8111C06283E20E94461C8111C064C1 +:103AD00084E20E94461C882311F0C06802C0CC23F7 +:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4 +:103AF000682F70E080E090E0CF910C944318CF9154 +:103B000008956DEE7EEF80E090E00E94ED2360E08E +:103B100082E090E00E94DB2360E083E090E00E947E +:103B2000DB2360E084E090E00E94DB2360E085E03E +:103B300090E00C94DB2380E090E00E94D52321E00C +:103B40008D3E9E4F09F020E0822F089582E090E0A4 +:103B50000C94CD23682F82E090E00C94DB2383E06B +:103B600090E00C94CD23682F83E090E00C94DB234D +:103B700084E090E00C94CD23682F84E090E00C94D6 +:103B8000DB238091E20180FF0BC06091130185E08F +:103B9000689FB001112475956795759567952BC041 +:103BA00081FF09C06091130185E0689FB001112475 +:103BB0007595679520C082FF07C06091130185E06D +:103BC000689FB001112417C09091E3019923D1F0AF +:103BD00060911201961788F72091130185E0289FC4 +:103BE00090011124929FA001939F500D112470E029 +:103BF000CA010E949F236038710540F46115710568 +:103C000039F002C065E070E0862F08958FE70895CF +:103C100081E008958091E20180FF08C06091110168 +:103C200070E0759567957595679521C081FF06C011 +:103C30006091110170E07595679519C082FF04C00D +:103C40006091110170E010C09091E3019923C1F0DF +:103C5000609110019617A0F780911101899FC00112 +:103C6000112470E00E949F236038710528F46115CB +:103C7000710521F0862F08958FE7089581E008955A +:103C800061E070E0F4CF803F21F40E94C11D819576 +:103C900004C0813F29F40E94C11D8093E60108956C +:103CA000823F21F40E94C11D819504C0833F29F405 +:103CB0000E94C11D8093E5010895893F19F40E9477 +:103CC0000A1E05C08A3F31F40E940A1E8195809326 +:103CD000E70108958B3F21F40E940A1E819504C0DC +:103CE0008C3F29F40E940A1E8093E8010895843FC6 +:103CF00021F48091E401816017C0853F21F4809117 +:103D0000E401826011C0863F21F48091E401846067 +:103D10000BC0873F21F48091E401886005C0883F93 +:103D200031F48091E40180618093E40108958D3F36 +:103D300021F48091E20181600BC08E3F21F48091DB +:103D4000E201826005C08F3F29F48091E201846026 +:103D50008093E2010895803F39F48091E60187FF66 +:103D60006CC01092E60169C0813F29F48091E601A0 +:103D70001816BCF362C09091E501823F29F497FFC9 +:103D80005CC01092E50159C0833F19F41916CCF3B9 +:103D900054C0893F41F48091E70118160CF04DC0E2 +:103DA0001092E7014AC08A3F29F48091E70187FF1A +:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6 +:103DC0001092E8013AC08C3F29F48091E80118165E +:103DD000BCF333C0843F21F48091E4018E7F17C08F +:103DE000853F21F48091E4018D7F11C0863F21F44D +:103DF0008091E4018B7F0BC0873F21F48091E40127 +:103E0000877F05C0883F31F48091E4018F7E8093E5 +:103E1000E40113C08D3F21F48091E2018E7F0BC03D +:103E20008E3F21F48091E2018D7F05C08F3F29F400 +:103E30008091E2018B7F8093E2018091E501811105 +:103E40000EC08091E60181110AC08091E7018111C5 +:103E500006C08091E801811102C01092E30108952B +:103E600084EE91E00E9401100E949B1B9093E1015F +:103E70008093E00108951F93CF93DF938091E00139 +:103E80009091E1010E94A71BAC019091E30199235D +:103E900021F02091140130E006C0209115018AE044 +:103EA000289F900111244217530708F486C080917F +:103EB000E501C091E601D091E7011091E80181117F +:103EC00007C0C11176C0D11174C0111172C075C084 +:103ED0009F3F19F09F5F9093E301181624F40E940E +:103EE000C11D8093E5018091E50187FF05C00E9417 +:103EF000C11D81958093E5011C1624F40E94C11D0B +:103F00008093E6018091E60187FF05C00E94C11DF4 +:103F100081958093E6016091E501662339F1C091B6 +:103F2000E601CC2319F1772767FD7095872F972F2E +:103F30000E94B02223E333E343E35FE30E941423B0 +:103F40000E947D226093E5016C2F772767FD7095B5 +:103F5000872F972F0E94B02223E333E343E35FE3ED +:103F60000E9414230E947D226093E6011D1624F412 +:103F70000E940A1E8093E7018091E70187FF05C038 +:103F80000E940A1E81958093E701111624F40E9475 +:103F90000A1E8093E8018091E80187FF05C00E9416 +:103FA0000A1E81958093E801DF91CF911F910C94B7 +:103FB000301F9F3F09F08ECF96CFDF91CF911F9199 +:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE +:103FD0001092E3011092E2010895833081F128F4F8 +:103FE000813059F08230D1F00895853009F449C00C +:103FF000B8F1863009F456C0089580911501262F36 +:1040000030E0280F311D2F3F310524F4680F6093F5 +:10401000150108958FEF8093150108958091140183 +:10402000262F30E0280F311D2F3F310524F4680F73 +:104030006093140108958FEF809314010895809187 +:104040001301262F30E0280F311D2F3F310524F4B6 +:10405000680F6093130108958FEF80931301089503 +:1040600080911201262F30E0280F311D2F3F31059E +:1040700024F4680F6093120108958FEF809312016A +:10408000089580911101262F30E0280F311D2F3F18 +:10409000310524F4680F6093110108958FEF809328 +:1040A0001101089580911001262F30E0280F311D55 +:1040B0002F3F310524F4680F6093100108958FEFAE +:1040C000809310010895833011F128F4813049F074 +:1040D000823091F00895853081F120F18630C1F170 +:1040E000089580911501681720F4861B80931501AF +:1040F000089510921501089580911401681720F415 +:10410000861B8093140108951092140108958091E4 +:104110001301681720F4861B8093130108951092F1 +:104120001301089580911201681720F4861B809373 +:1041300012010895109212010895809111016817DB +:1041400020F4861B809311010895109211010895A7 +:1041500080911001681720F4861B80931001089548 +:104160001092100108950F931F938D3109F46BC0C5 +:1041700008F03FC08E3009F47FC0C0F4873009F4E6 +:1041800069C068F4863009F0B1C08091DA01817F9E +:104190008E7F8093DA0181E08093EA01A8C08830A5 +:1041A00009F4A2C08B3009F49FC0A0C0863109F485 +:1041B0009BC078F4803109F472C0813109F096C057 +:1041C0000E94831490910D0181E0892780930D0155 +:1041D0008BC0893109F488C08B3109F087C0809188 +:1041E000DA0181FB222720F991E0922790FB81F9E7 +:1041F0004CC0853309F470C048F4873209F46CC0B0 +:1042000008F459C0893209F467C070C0833438F4A7 +:104210008A3308F04EC0883309F466C067C083341F +:1042200009F45AC0883409F061C00E9483140FEF6A +:1042300013ED20E3015010402040E1F700C00000E2 +:104240000E94F61B51C00E9437220E94EA0F0E9472 +:10425000E3084AC09091DA01892F8095817080FB34 +:1042600090F929F0966098609093DA0140C0997FA8 +:10427000977F9093DA0138C08091DA0182FB222780 +:1042800020F991E0922790FB82F98093DA0199233B +:1042900059F18091DA0181608093DA0125C0809123 +:1042A000DA0183FB222720F991E0922790FB83F922 +:1042B000ECCF895301C08D5141E050E060E070E0E7 +:1042C0008A019B0104C0000F111F221F331F8A9512 +:1042D000D2F7C901B80104C061E070E080E090E06D +:1042E0000E9443180E94831481E001C080E01F9166 +:1042F0000F91089580E0089580E00895CF93C82F2E +:104300008091EA01813079F018F08230E9F187C0BC +:10431000E0910E01F0910F018081813169F08232CC +:1043200009F07FC009C0E0910E01F0910F0180817A +:10433000813111F0823261F48C2F0E947A21811137 +:1043400004C08C2F0E94B3201DC081E090E01AC0F1 +:104350008C2F0E947C21811114C0C43179F048F463 +:10436000CB3079F0C03109F060C082E08093EA017F +:1043700008C0C93219F0C83321F057C01092EA01C1 +:1043800054C081E0817053C0C93289F118F5C4313D +:1043900071F1A8F4C73009F046C08AE08093150196 +:1043A00094E19093140193E0909313018093120190 +:1043B00088E08093110188E28093100134C0CE51CF +:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB +:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC +:1043E00013C0C13579F0C235F1F461E00DC08091A0 +:1043F000E901882319F01092E90115C081E080934A +:10440000EA0115C061E006C08091E9010E94ED1F3C +:104410000AC06AE08091E9010E94632004C0109202 +:10442000EA0180E004C081E002C080E0ABCFCF9120 +:104430000895E1E8F0E08081886080838081816078 +:1044400080838FB7F89493E09093890090ED9093D8 +:1044500088008FBF0895EFE6F0E08081826080835E +:104460000895EFE6F0E080818D7F80830895EFE688 +:10447000F0E0908182E08927808308951F920F9257 +:104480000FB60F9211242F933F934F935F936F9327 +:104490007F938F939F93AF93BF93EF93FF938091FD +:1044A000EB019091EC0101969093EC018093EB016C +:1044B000811103C082E00E94E308E091EC01E695DF +:1044C000E695F0E0EC54FB4FE4918091EB018E1304 +:1044D00003C080E00E94E308FF91EF91BF91AF918C +:1044E0009F918F917F916F915F914F913F912F910C +:1044F0000F900FBE0F901F90189504D06894B111C3 +:104500008DC0089570D088F09F5790F0B92F9927EB +:10451000B751A0F0D1F0660F771F881F991F1AF0CE +:10452000BA95C9F712C0B13081F077D0B1E00895E3 +:1045300074C0672F782F8827B85F39F0B93FCCF364 +:10454000869577956795B395D9F73EF490958095C4 +:10455000709561957F4F8F4F9F4F0895E89409C0E4 +:1045600097FB3EF490958095709561957F4F8F4FA6 +:104570009F4F9923A9F0F92F96E9BB279395F695BC +:10458000879577956795B795F111F8CFFAF4BB0F3A +:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E +:1045A000882311F096E911C0772321F09EE8872F28 +:1045B000762F05C0662371F096E8862F70E060E0E4 +:1045C0002AF09A95660F771F881FDAF7880F96955D +:1045D000879597F9089557FD9058440F551F59F046 +:1045E0005F3F71F04795880F97FB991F61F09F3FE0 +:1045F00079F087950895121613061406551FF2CF09 +:104600004695F1DF08C0161617061806991FF1CF58 +:1046100086957105610508940895E894BB2766277F +:104620007727CB0197F908950BD078C069D028F08F +:104630006ED018F0952309F05AC05FC01124EECF58 +:10464000CADFA0F3959FD1F3950F50E0551F629FED +:10465000F001729FBB27F00DB11D639FAA27F00DDB +:10466000B11DAA1F649F6627B00DA11D661F829F02 +:104670002227B00DA11D621F739FB00DA11D621FE7 +:10468000839FA00D611D221F749F3327A00D611D04 +:10469000231F849F600D211D822F762F6A2F1124E6 +:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39 +:1046B000BB1F661F771F881F91505040A9F79E3F70 +:1046C000510570F014C0AACF5F3FECF3983EDCF3C5 +:1046D000869577956795B795F795E7959F5FC1F7AD +:1046E000FE2B880F911D9695879597F9089597F958 +:1046F0009F6780E870E060E008959FEF80EC089588 +:1047000000240A94161617061806090608950024B0 +:104710000A9412161306140605060895092E03942A +:10472000000C11F4882352F0BB0F40F4BF2B11F49E +:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF +:10474000072E16F4009407D077FD09D00E94B923F4 +:1047500007FC05D03EF4909581959F4F0895709584 +:1047600061957F4F0895EE0FFF1F0590F491E02DA6 +:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8 +:10478000B70710F0A61BB70B881F991F5A95A9F7FA +:1047900080959095BC01CD010895F999FECF92BD09 +:1047A00081BDF89A992780B50895A8E1B0E042E06C +:1047B00050E00C94F523262FF999FECF92BD81BDD0 +:1047C000F89A019700B4021639F01FBA20BD0FB64F +:1047D000F894FA9AF99A0FBE08950196272F0E942D +:1047E000DC230C94DB23DC01CB01FC01F999FECF27 +:1047F00006C0F2BDE1BDF89A319600B40D92415069 +:0A4800005040B8F70895F894FFCF78 +:10480A000220E508730950091C09E8080101C701DB +:10481A0028080A03140A3F4D363975042804F2039E +:10482A00B9034C0365037E039703010203040506DB +:04483A000708090062 +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout0.png b/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout0.png new file mode 100644 index 000000000..6a36f9bfa Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout0.png differ diff --git a/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout1.png b/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout1.png new file mode 100644 index 000000000..c6e6d913c Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout1.png differ diff --git a/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout2.png b/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout2.png new file mode 100644 index 000000000..23f56ff4c Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout2.png differ diff --git a/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keymap.c b/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keymap.c new file mode 100644 index 000000000..82f55b4bc --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keymap.c @@ -0,0 +1,185 @@ +#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 | BrBck| | Play | 6 | 7 | 8 | 9 | 0 | \ / L2 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Esc | ' | , | . | P | Y | Del | | Ins | F | G | C | R | L | / | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | BkSp | A | O | E | U | I |------| |------| D | H | T | N | S | - | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |:/Ctrl| Q | J | K | X | | | | B | M | W | V |Z/Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| LAlt | LGui | Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,---------------. + * | App | L1 | | L2 |PrntScr | + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space| Tab |------| |------| AltShf |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_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_WBAK, + KC_ESC, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_DELT, + 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_LALT, KC_LGUI, KC_LEFT,KC_RGHT, + CTL_T(KC_APP), TG(1), + KC_HOME, + KC_SPC,KC_TAB,KC_END, + // right hand + KC_MPLY, KC_6, KC_7, KC_8, KC_9, KC_0, LT(MDIA, KC_BSLS), + KC_INS, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, + KC_D, KC_H, KC_T, KC_N, 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, + TG(2), KC_PSCREEN, + KC_PGUP, + KC_PGDN,RALT(KC_RSFT), KC_ENT + ), +/* Keymap 1: Symbol & Media Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Prev | Next | | | . | 0 | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | |VolUp | | | + * | | |------| |------| Mute | | + * | | | | |VolDn | | | + * `--------------------' `--------------------' + */ +// 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_MPRV,KC_MNXT, + 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_VOLU, + KC_VOLD, KC_MUTE, KC_TRNS +), +/* Keymap 2: QWERTY Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | Q | W | E | R | T | | | | Y | U | I | O | P | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | A | S | D | F | G |------| |------| H | J | K | L | ; | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +KEYMAP( // layer 0 : default + // left hand + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS, + KC_TRNS, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_TRNS, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, 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_Y, KC_U, KC_I, KC_O, KC_P, KC_TRNS, + KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_TRNS, + KC_TRNS, KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), 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) +}; + +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/keyboards/ergodox_ez/keymaps/dvorak_spanish/README.md b/keyboards/ergodox_ez/keymaps/dvorak_spanish/README.md new file mode 100644 index 000000000..e075e3cd7 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/dvorak_spanish/README.md @@ -0,0 +1,99 @@ +# Ergodox Spanish Dvorak Layout + * See spanish dvorak layout [here](http://djelibeibi.unex.es/dvorak/) + * Software layout must be set to SPANISH QWERTY to work properly + +## Keymap Layers + - L0: spanish dvorak with some customizations (see layout below) + - L1: auxiliary keys (includes qwerty shortcuts, numpad...) + - L2: qwerty layout with customizations + + +### Keymap 0: Base layer +Keys with double values (like Esc/Ctrl) correspond to the 'tapped' key and the 'held' key, respectively + +

+
+,--------------------------------------------------.           ,--------------------------------------------------.
+|   \    |   1  |   2  |   3  |   4  |   5  |  <>  |           |   ¡  |   6  |   7  |   8  |   9  |   0  |   '    |
+|--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+| F1/~L1 |   .  |   ,  |   Ñ  |   P  |   Y  |MEH_T |           |  L1  |   F  |   G  |   C  |   H  |   L  |ALL_T/+ |
+|--------+------+------+------+------+------| DEL  |           | ~L1  |------+------+------+------+------+--------|
+|Esc/Ctrl|   A  |   O  |   E  |   U  |   I  |------|           |------|   D  |   R  |   T  |   N  |   S  |'/RCtrl |
+|--------+------+------+------+------+------| LGUI |           | RALT |------+------+------+------+------+--------|
+| {/LSft |   -  |   Q  |   J  |   K  |   X  |      |           |      |   B  |   M  |   W  |   V  |   Z  | }/RSft |
+'--------+------+------+------+------+-------------'           '-------------+------+------+------+------+--------'
+  |[/LALT| HOME |PGDOWN| PGUP | END  |                                       | LEFT | DOWN |  UP  |RIGHT |]/LALT|
+  '----------------------------------'                                       '----------------------------------'
+                                       ,-------------.       ,-------------.
+                                       |F5/CAG|F6/~L1|       |F7/~L1|F8/CAG|
+                                ,------|------|------|       |------+--------+------.
+                                |      |      |F4/CA |       |F11/CA|        |      |
+                                | ENTER| TAB  |------|       |------|  BSPC  | SPACE|
+                                |      |      |F3/SA |       |F12/SA|        |      |
+                                '--------------------'       '----------------------'
+ CAG = CTRL-ALT-GUI
+  CA = CTRL-ALT
+  SA = SHIFT-ALT
+
+
+ +### Keymap 1: Aux layer + +

+
+,--------------------------------------------------.           ,--------------------------------------------------.
+|        |  F1  |  F2  |  F3  |  F4  |  F5  | SLEEP|           | PWR  |  F6  |  F7  |  F8  |  F9  |  F10 |   F11  |
+|--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+|        |  <   |  >   | MsUp |      |      |      |           | ~L0  |      |   7  |   8  |   9  |   *  |  '^    |
+|--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+|        |      |MsLeft|MsDown|MsRght|      |------|           |------|      |   4  |   5  |   6  |   +  |   Ç    |
+|--------+------+------+------+------+------|      |           |PSCR  |------+------+------+------+------+--------|
+|CAPSLOCK|      |      |      |      |      |      |           |      |      |   1  |   2  |   3  |   /  |        |
+'--------+------+------+------+------+-------------'           '-------------+------+------+------+------+--------'
+  |CTRL-S|CTRL-Z|CTRL-X|CTRL-C|CTRL-V|                                       |      |    . |   0  |   =  |      |
+  '----------------------------------'                                       '----------------------------------'
+                                       ,-------------.       ,-------------.
+                                       |      |      |       |      | Play |
+                                ,------|------|------|       |------+------+------.
+                                |      |      |      |       | VolUp|      |      |
+                                | Lclk | Rclk |------|       |------| Prev | Next |
+                                |      |      |  L2  |       | VolDn|      |      |
+                                '--------------------'       '--------------------'
+
+
+ +### Keymap 2: QWERTY layer + +

+
+,--------------------------------------------------.           ,--------------------------------------------------.
+|   \    |   1  |   2  |   3  |   4  |   5  |  <>  |           |   ¡  |   6  |   7  |   8  |   9  |   0  |   '    |
+|--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+|  TRANS |   Q  |   W  |   E  |   R  |   T  |MEH_T |           | TRANS|   Y  |   U  |   I  |   O  |   P  |ALL_T/+ |
+|--------+------+------+------+------+------| DEL  |           |      |------+------+------+------+------+--------|
+|Esc/Ctrl|   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |   Ñ  |'/RCtrl |
+|--------+------+------+------+------+------| LGUI |           | RALT |------+------+------+------+------+--------|
+| {/LSft |   Z  |   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |   ,  |   .  |   -  | }/RSft |
+'--------+------+------+------+------+-------------'           '-------------+------+------+------+------+--------'
+  |[/LALT| HOME |PGDOWN| PGUP | END  |                                       | LEFT | DOWN |  UP  |RIGHT |]/LALT|
+  '----------------------------------'                                       '----------------------------------'
+                                       ,-------------.       ,-------------.
+                                       |F5/CAG| TRANS|       | TRANS|F8/CAG|
+                                ,------|------|------|       |------+--------+------.
+                                |      |      |F4/CA |       |F11/CA|        |      |
+                                | ENTER| TAB  |------|       |------|  BSPC  | SPACE|
+                                |      |      | TRANS|       |F12/SA|        |      |
+                                '--------------------'       '----------------------'
+ CAG = CTRL-ALT-GUI
+  CA = CTRL-ALT
+  SA = SHIFT-ALT
+
+
+ + +## Generation of .hex file +> [Download scripts from here](https://github.com/johgh/keyboard/tree/master/ergodox) + +> Execute install.sh and generate.sh scripts. + +> Flash with `teensy_loader` binary (should be installed from previous step) diff --git a/keyboards/ergodox_ez/keymaps/dvorak_spanish/compiled.hex b/keyboards/ergodox_ez/keymaps/dvorak_spanish/compiled.hex new file mode 100644 index 000000000..dcac1fe29 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/dvorak_spanish/compiled.hex @@ -0,0 +1,1149 @@ +:100000000C947B020C94BF020C94BF020C94BF02B0 +:100010000C94BF020C94BF020C94BF020C94BF025C +:100020000C94BF020C94BF020C946D0E0C943F0F05 +:100030000C94BF020C94BF020C94BF020C94BF023C +:100040000C94BF020C94F9210C94BF020C94BF02D3 +:100050000C94BF020C94DB1C0C94BF020C94BF02E6 +:100060000C94BF020C94BF020C94BF020C94BF020C +:100070000C94BF020C94BF020C94BF020C94BF02FC +:100080000C94BF020C94BF020C94BF020C94BF02EC +:100090000C94BF020C94BF020C94BF020C94BF02DC +:1000A0000C94BF020C94BF020C94BF02AC0FCE0F95 +:1000B000BC10CE0FBC1013103610BC108B109E104D +:1000C0006D136D139C139C13D213F2132315231578 +:1000D000FD132315AD14AD141415231523151D158B +:1000E000BA14BA14BA14BA14BA14BA14BA14BA14A0 +:1000F000BA14BA14BA14BA14BA14BA14BA14BA1490 +:10010000CC14D914E014E714F1140000F0A1350068 +:100110003A4129610030023000001E00370004001F +:1001200038004A003C661F003600120014004E00E2 +:100130002B002000330008000D004B002800210098 +:10014000130018000E004D003D6522001C000C003D +:100150001B0000003E6D64004C670000E3000000DF +:100160003F412E00C1000000E60000004041230096 +:100170000900070005000000416D24000A00150079 +:100180001000500044652500060017001A005100B9 +:100190002C0026000B001100190052002A00270035 +:1001A0000F0016001D004F0045662D00306F3461B2 +:1001B000013003300000000001000000043016018F +:1001C00000003A006400000000001D0102533B00E3 +:1001D0006402F20000001B01F5003C00F000F10099 +:1001E00000000601F4003D000000F30000001901CA +:1001F00000003E0000000000000000000000A6001B +:1002000000000000000000000100A5000100000047 +:100210004600000001003F00000000000000000058 +:10022000AE004000240021001E000000A900410093 +:10023000250022001F003700AB00420026002300EB +:1002400020002700AC004300550057005400670011 +:10025000AA0044002F00310000000000000035001B +:10026000010029610030023000001E00140004006B +:100270001D004A0001001F001A0016001B004E005E +:100280002B0020000800070006004B00280021007A +:100290001500090019004D003D65220017000A00F5 +:1002A000050000003E6D64004C670000E3000000A4 +:1002B00001002E0001000000E60000000100230004 +:1002C0001C000B0011000000416D240018000D00FF +:1002D00010005000446525000C000E00360051004F +:1002E0002C00260012000F00370052002A002700C1 +:1002F0001300330038004F0045662D00306F346125 +:1003000001300330000016034500720067006F00E3 +:1003100044006F007800200045005A0000001603DA +:100320004500720067006F0044006F0078002000F5 +:1003300045005A0000000403090409026D0004018D +:1003400000A0FA09040000010301010009211101C4 +:1003500000012240000705810308000A090401008A +:100360000103010200092111010001224D000705CE +:10037000820308000A0904020001030000000921A9 +:10038000110100012236000705830308000A090451 +:1003900003000103000000092111010001223900BE +:1003A000070584031000011201100100000008ED90 +:1003B000FE071301000102000105010906A1010564 +:1003C0000719E029E7150025019508750181020547 +:1003D000081901290595057501910295017503918B +:1003E0000105071900297715002501957875018108 +:1003F00002C005010980A101850216010026B7008F +:100400001A01002AB700751095018100C0050C097A +:1004100001A1018503160100269C021A01002A9CF5 +:1004200002751095018100C005010902A1010901B1 +:10043000A10005091901290515002501950575017A +:10044000810295017503810105010930093115818A +:10045000257F95027508810609381581257F95014C +:1004600075088106050C0A38021581257F950175EE +:10047000088106C0C005010906A101050719E02988 +:10048000E715002501950875018102950175088120 +:100490000105081901290595057501910295017558 +:1004A0000391010507190029FF150026FF00950695 +:1004B00075088100C000000000000000000000007E +:1004C000010204060A0F17202C3A4A5D71879DB37A +:1004D000C7DAE9F5FCFFFCF5E9DAC7B39D87715D82 +:1004E0004A3A2C20170F0A060402010000000000FF +:1004F00000000000000011241FBECFEFDAE0DEBFD5 +:10050000CDBF04B603FE24C08091FF01909100028C +:10051000A0910102B09102028730904BA740B04BEE +:10052000B9F41092FF011092000210920102109291 +:10053000020214BE84B7877F84BF88E10FB6F894A7 +:1005400080936000109260000FBEE0E0FFE3099529 +:1005500011E0A0E0B1E0E0E8F7E402C005900D9200 +:10056000A433B107D9F711E0A4E3B1E001C01D92B3 +:10057000AF3FB107E1F70E94B50B0C94BE230C947A +:1005800000001092B9008AE08093B800089594EAC0 +:100590009093BC009091BC0097FFFCCF9091B90064 +:1005A000987F983021F0903111F081E00895809388 +:1005B000BB0084E88093BC008091BC0087FFFCCF27 +:1005C0008091B900887F883111F0803471F780E024 +:1005D000089584E98093BC008091BC0084FDFCCF29 +:1005E00008958093BB0084E88093BC008091BC0098 +:1005F00087FFFCCF9091B900987F81E0983209F491 +:1006000080E0089584E88093BC008091BC0087FF5F +:10061000FCCF8091BB00089580B38C7080BB81B308 +:10062000836F81BB089580910101811115C080E421 +:100630000E94C7028093010181110CC082E10E94D7 +:10064000F10280930101811105C08FEF0E94F10238 +:10065000809301010E94E90284B1807F84B985B151 +:10066000807F85B98AB1837F8AB98BB1837F8BB94B +:100670003E98469808950E94DD04809301010E94EF +:1006800013030E940C03A5E3B1E0E3E4F1E08EE084 +:100690008E0F11921D928E13FCCF0C94C7040E94F2 +:1006A000DD04809301010E9413030E940C03A5E363 +:1006B000B1E0E3E4F1E08EE08E0F11921D928E1313 +:1006C000FCCF0895BF92CF92DF92EF92FF920F93EB +:1006D0001F93CF93DF9380910101882379F080915C +:1006E00034018F5F80933401811108C00E94DD04C2 +:1006F00080930101811102C00E946F0405E311E0A3 +:10070000C0E0D0E0DD24D39482E0C82EEE24E39450 +:10071000F12CC730D10500F580910101811164C031 +:1007200080E40E94C70280930101811112C082E11E +:100730000E94F1028093010181110BC0C7010C2EB0 +:1007400001C0880F0A94EAF780950E94F102809315 +:1007500001010E94E90248C0CA30A1F028F4C83063 +:1007600059F0C93061F005C0CC3089F070F0CD305F +:1007700089F0209A289810C0219A29980DC0229AB1 +:100780002A980AC0239A2B9807C0529A01C0539AFC +:100790005B9802C03E9A469890EA9A95F1F79FB10D +:1007A000799902C082E001C080E091709D25982B6C +:1007B0007C9902C084E001C080E0892B7D9902C051 +:1007C00038E001C030E0832B7E9902C020E101C0F7 +:1007D00020E0822B9FB19095991F9927991F9295A0 +:1007E000990F907E892B0FC080910101811149C022 +:1007F00080E40E94C70280930101882379F1B12C23 +:100800000E94E9028B2DF8019081981719F08083DE +:10081000C09200010E94130321960F5F1F4FCE303C +:10082000D10509F076CF80910001882361F18150D4 +:1008300080930001882339F08FE99FE00197F1F759 +:1008400000C0000020C0A3E4B1E0E5E3F1E0CF0187 +:10085000825F91919D938E13FCCF15C083E10E941E +:10086000F102809301018111CACF81E40E94C70285 +:10087000809301018111C3CF0E940203B82EB0946E +:10088000BFCF80E0C0CF0E946D0481E0DF91CF91A7 +:100890001F910F91FF90EF90DF90CF90BF90089540 +:1008A000E82FF0E0ED5BFE4F8081089508950F93EF +:1008B0001F93CF93DF93C3E4D1E010E00C2F025FCE +:1008C000899190E00E94021C180F0C13F9CF812F20 +:1008D000DF91CF911F910F9108950C94BC0556980C +:1008E0005E9825982D9826982E9827982F988FEF08 +:1008F00090E0909389008093880090938B00809380 +:100900008A0090938D0080938C00259A2D9A2FEF6A +:1009100080E792E0215080409040E1F700C0000065 +:10092000269A2E9A2FEF80E792E021508040904047 +:10093000E1F700C00000279A2F9A2FEF80E792E09E +:10094000215080409040E1F700C0000025982D988C +:100950002FEF80E792E0215080409040E1F700C007 +:10096000000026982E982FEF80E792E021508040DB +:100970009040E1F700C0000027982F9856985E98A5 +:1009800025982D9826982E9827982F98089589EACB +:100990008093800089E08093810024982C983F9870 +:1009A0008AB18F748AB96E98479A8BB1806B8BB974 +:1009B000769A0E946F040C94BB0580E2809301013B +:1009C0008091510181110EC00E94C10281E080938B +:1009D00051012FEF83ED90E3215080409040E1F7EB +:1009E00000C0000080E40E94C702809301018111D1 +:1009F0002EC00E94F10280930101811128C00E9443 +:100A0000F10280930101811122C08FE30E94F10263 +:100A10008093010181111BC00E94E90280E40E94C1 +:100A2000C70280930101811112C08CE00E94F10283 +:100A30008093010181110BC00E94F102809301019A +:100A4000811105C08FE30E94F102809301010E9491 +:100A5000E902809101010895FC01623009F445C06A +:100A600028F4662351F0613041F182C0633009F40B +:100A70005BC0643009F472C07BC08281882341F07E +:100A80000E94A51C909353018093520185EE6AC089 +:100A900085EE0E94D91280915201909153010E94DB +:100AA000B11C8F35910508F063C086EE0E941112CB +:100AB00084E30E94111284E34DC082818111E0CF52 +:100AC00085EE0E94D91280915201909153010E94AB +:100AD000B11C8F35910508F04BC086EE0E941112B3 +:100AE00081E30E94111281E335C08281882341F0A5 +:100AF0000E94A51C909353018093520182EE32C054 +:100B000082EE0E94D91280915201909153010E946D +:100B1000B11C8F35910560F586EE0E9411128FE2AF +:100B20000E9411128FE216C082818111E1CF82EE04 +:100B30000E94D91280915201909153010E94B11CE0 +:100B40008F359105A8F486EE0E94111280E30E9471 +:100B5000111280E30E94D91286EE08C08281882398 +:100B600021F089E30E94111203C089E30E94D91287 +:100B700080E090E0089508956091C0017091C101F6 +:100B80008091C2019091C3010E940E1C56985E98FC +:100B900025982D9826982E9827982F98813029F0FF +:100BA000823029F4269A2E9A02C0279A2F9A0E9400 +:100BB000F51081FF02C0259A2D9A089581E00895CD +:100BC00081E008950C94E0050895282F882339F0DA +:100BD00090E02A3010F44D9608950697089587E224 +:100BE00090E00895AF92BF92DF92EF92FF920F9341 +:100BF0001F93CF93DF938C01FC01C081D181CE0183 +:100C00000E94871ABE010E946209EC01B8010E948D +:100C1000E205882309F4C9C1F8018281882309F417 +:100C2000BEC08091600181111FC0C431F0E7DF07B1 +:100C300009F0B5C10E94E40581E0809360010E9443 +:100C4000A51C90935F0180935E0110925701109252 +:100C500059011092580110925B0110925A011092A2 +:100C60005D0110925C01A1C180915E0190915F01D4 +:100C70000E94B11C883C910570F480915701E82FC7 +:100C8000F0E0EE0FFF1FE85AFE4FD183C0838F5F65 +:100C9000809357018AC1C13020E8D20708F451C0BF +:100CA000F8018281882309F47EC05E01E894B7F8D8 +:100CB00080915601813079F050F08230C1F482EE9B +:100CC0000E94111287E50E94111287E50EC082EE84 +:100CD0000E9411120CC080EE0E94111281EE0E943F +:100CE000111288E10E94111288E10E94D9128CE051 +:100CF000E82EF12CC5010E2C02C0969587950A941A +:100D0000E2F78F700E94E505D82E0E9411128D2DFA +:100D10000E94D912F4E0EF1AF1082CEFE2162FEF3F +:100D2000F20641F780915601813029F010F08230AF +:100D300041F482EE04C080EE0E94D91281EE0E943E +:100D4000D912C43180E7D80768F4C23090E7D907D8 +:100D500008F046C0C115E0E7DE0771F0C130D047AA +:100D6000A1F10CC1C33320E7D20709F4D8C0C433C2 +:100D7000D04709F4EBC002C1F8018281882309F44D +:100D800002C10E948E15FFEF24E38CE0F150204059 +:100D90008040E1F700C000000E94001D06C1C13084 +:100DA00080E8D80770F2C43120E7D20708F0B3C05A +:100DB000C23080E7D807A0F4C11590E7D90709F43D +:100DC000E2C0C130D04709F0D9C0F8018281882340 +:100DD00009F4D9C08091DD0181608093DD01E5C017 +:100DE000F8018281882309F4CEC00E945A1D811126 +:100DF00002C00E94401D0E946D1D90E09093F10181 +:100E00008093F001C230F0E7DF0721F48091F00118 +:100E100081607AC0C33020E7D20721F48091F001CD +:100E2000826072C0C43080E7D80721F48091F0015D +:100E300084606AC0C53090E7D90719F48091F00149 +:100E400027C0C630E0E7DE0721F48091F001806121 +:100E50005BC0C730F0E7DF0721F48091F0018062CA +:100E600053C0C83020E7D20721F48091F00180649C +:100E70004BC0C93080E7D80721F48091F001806829 +:100E800043C0CA3090E7D90729F48091F00184600B +:100E900088603AC0CB30E0E7DE0721F48091F001B2 +:100EA0008E7F32C0CC30F0E7DF0721F48091F00173 +:100EB0008D7F2AC0CD3020E7D20721F48091F00148 +:100EC0008B7F22C0CE3080E7D80719F48091F001E3 +:100ED0001AC08091F001CF3090E7D90711F48F7ECE +:100EE00013C0C031E0E7DE0711F48F7D0DC0C131C2 +:100EF000F0E7DF0711F48F7B07C0C231D04711F450 +:100F00008F7702C08B7F877F8093F0018091F00103 +:100F10000E94711D4AC0C333F0E7DF07A1F4F80156 +:100F20008281882321F01092540182E016C08091C2 +:100F30005401811106C086E20E94111286E20E94CD +:100F4000D91282E018C0C433D047C1F4F8018281BD +:100F5000882331F01092550180E20E94281325C0A9 +:100F600080915501811106C087E20E94111287E22B +:100F70000E94D91280E20E942F1317C081E0809353 +:100F8000540180935501C801DF91CF911F910F91BA +:100F9000FF90EF90DF90BF90AF900C94DE05C130D2 +:100FA000F0E8DF0708F081CECCCE80E0DF91CF9172 +:100FB0001F910F91FF90EF90DF90BF90AF90089539 +:100FC00026E0729FF001112444E5849FE00DF11D9D +:100FD0001124E60FF11DEE0FFF1FE25FFE4F85911A +:100FE00094910E947409811560E49607B0F581150B +:100FF00070E3970708F0DEC0803E9105D8F4803C8E +:10100000910508F06CC0883A910578F4853A91050D +:1010100008F06BC08130910509F452C108F40FC18A +:101020008430910508F04CC10AC18B3B910508F44E +:1010300067C005C18F3F910509F048F4803F9105D5 +:1010400008F0ADC0883E910508F43AC1F8C081159A +:1010500020E2920708F0A5C00895811543E59407A2 +:1010600090F4811562E5960708F0C8C0811571E516 +:10107000970708F0BEC0811520E5920708F09DC0D3 +:101080009F70906A0895811545E59407D8F48115FD +:1010900064E5960708F0C8C0482F4695469570E26B +:1010A000479FA00111248370992721E030E0B90106 +:1010B00002C0660F771F8A95E2F7CB01842B952B30 +:1010C0009A680895811576E5970708F4B2C09C01E7 +:1010D00030562115304108F0B2C09F70AEC0FC01FF +:1010E000EE0FFF1FE657F04062C0853A910509F404 +:1010F000A9C0863A910509F0A8C082E890E4089555 +:10110000883A910509F4A4C0893A910509F4A3C06D +:101110008A3A910509F4A2C08B3A910509F4A1C05D +:101120008C3A910509F4A0C08D3A910509F49FC04D +:10113000803B910509F49EC08E3A910509F49DC04B +:101140008F3A910509F49CC0813B910509F49BC03D +:10115000823B910509F49AC0833B910509F499C03B +:10116000843B910509F498C0853B910509F497C02B +:10117000863B910509F496C0873B910509F495C01B +:10118000883B910509F494C0893B910509F493C00B +:101190008A3B910509F492C080E094E4089590653B +:1011A0000895FC01FF70EE0FFF1FE65FFE4F859173 +:1011B000949108959927906C0895482F437021E0E9 +:1011C00030E002C0220F331F4A95E2F73C68AC01C1 +:1011D00064E0569547956A95E1F74370342B8F701C +:1011E0008695869560E2869FC0011124822B932B01 +:1011F0000895982F8827816F906A0895482F469503 +:10120000469570E2479FA00111248370992721E041 +:1012100030E0B90102C0660F771F8A95E2F7CB0173 +:10122000842B952B9C680895982F8827846F906A4B +:1012300008958F719927982F88279062089580E0EC +:1012400090E0089581E890E4089583E890E408959B +:1012500082EE94E4089589EE94E408958AEE94E48D +:10126000089585EB94E4089586EB94E4089587EB64 +:1012700094E408958CEC94E408958DEC94E408953E +:1012800083E895E408958AE895E4089582E995E471 +:10129000089584E995E4089581E296E4089583E24F +:1012A00096E4089584E296E4089585E296E408952C +:1012B00086E296E4089587E296E408958AE296E449 +:1012C0000895089596E0799FF001112494E5899F8F +:1012D000E00DF11D1124E60FF11DEE0FFF1FE25F7F +:1012E000FE4F8591949108958238910549F1B0F4AB +:1012F0008133910509F458C048F48932910509F405 +:101300004EC08A32910509F454C008958533910581 +:1013100009F440C08933910599F00895833E910501 +:1013200029F138F4803E910591F0823E9105A1F0BB +:101330000895863E9105F9F0873E910531F10895B3 +:101340002091F00120FD3AC021FD38C00895809120 +:10135000F00180FD35C032C08091F00182FF32C0C3 +:101360008091F00184FD30C083EE39C08091F0019E +:1013700082FD28C0F5CF8091F00183FF27C08091C6 +:10138000F00184FD21C087EE2AC08091F00183FD29 +:101390001DC0F5CF8091F00185FD1AC01BC0809162 +:1013A000F00185FD17C014C08091F00186FD14C0C6 +:1013B00015C08091F00186FD11C00EC080EE0FC0F7 +:1013C00089E30DC082EE0BC080E009C086EE07C045 +:1013D00089E205C085E303C08AE201C081E390E0B1 +:1013E000089508950C94F109809171010895CF93A7 +:1013F000DF9300D01F92CDB7DEB79C018091F6013C +:10140000843019F593E099833B832A839093E90014 +:101410008FEF9091E800815095FD06C095ED9A956B +:10142000F1F700008111F5CF8091E80085FF0DC034 +:1014300040E050E063E070E0CE0101960E945D0C58 +:101440008091E8008E778093E8000F900F900F90C6 +:10145000DF91CF910895CF93DF9300D01F92CDB746 +:10146000DEB72091F601243021F522E029839B8309 +:101470008A8383E08093E9008FEF9091E8008150A8 +:1014800095FD06C095ED9A95F1F700008111F5CF15 +:101490008091E80085FF0DC040E050E063E070E01F +:1014A000CE0101960E945D0C8091E8008E778093BA +:1014B000E8000F900F900F90DF91CF910895209149 +:1014C000F6012430F1F422E02093E9002FEF30916F +:1014D000E800215035FD06C035ED3A95F1F70000E2 +:1014E0002111F5CF2091E80025FF0BC040E050E02E +:1014F00065E070E00E945D0C8091E8008E7780933B +:10150000E8000895CF93DF93EC019091F6019430B9 +:1015100009F046C080910C018823D9F080910D011B +:101520008823B9F09093E9008FEF9091E800815003 +:1015300095FD06C095E19A95F1F700008111F5CF70 +:101540008091E80085FF2CC040E050E060E170E051 +:1015500017C081E08093E9008FEF9091E8008150FF +:1015600095FD06C095ED9A95F1F700008111F5CF34 +:101570008091E80085FF14C040E050E068E070E032 +:10158000CE010E945D0C8091E8008E778093E80088 +:1015900080E1FE01A1E6B1E001900D928A95E1F7AC +:1015A000DF91CF9108958091F501811109C00E94CA +:1015B000F20D0E944F0E8091E20084608093E20061 +:1015C00008951092F501089508950C94E6210E9463 +:1015D000961C0E94EC210E94F5100C94F20942E046 +:1015E00061EC81E00E946C0D42E061EC82E00E94BF +:1015F0006C0D42E061EC83E00E946C0D42E161EC15 +:1016000084E00C946C0D8091F801833009F455C08E +:1016100030F4813071F0823009F48EC008958A3040 +:1016200009F47AC08B3009F460C0893009F09CC09D +:1016300020C08091F701813A09F096C08091E800BE +:10164000877F8093E8008091FB019091FC01892BBA +:1016500021F460E181E691E003C060E080E090E089 +:1016600070E00E94A80C8091E8008B778093E800DE +:1016700008958091F701813209F076C08091FB01D5 +:101680009091FC01009719F0039709F06DC08091CB +:10169000E800877F8093E8008091E80082FD05C024 +:1016A0008091F6018111F8CF5FC08091F1008093A5 +:1016B00071018091E8008B7753C08091F701813AE6 +:1016C00009F052C08091FB019091FC01892B09F037 +:1016D0004BC08091E800877F8093E8008091E8000C +:1016E00080FFFCCF80910C0136C08091F7018132E0 +:1016F000D9F58091FB019091FC01892BA9F580918E +:10170000E800877F8093E8000E94A10D8091F90195 +:1017100080930C010C948E158091F701813221F594 +:101720008091E800877F8093E8000E94A10D80915E +:10173000FA018093720108958091F701813AA1F432 +:101740008091E800877F8093E8008091E80080FF27 +:10175000FCCF809172018093F1008091E8008E7738 +:101760008093E8000C94A10D089584B7877F84BF0F +:1017700088E10FB6F89480936000109260000FBE6D +:1017800080E880936100109261000E9444110E94E1 +:10179000F20D0E944F0E8091E20084608093E2007F +:1017A00078940E94D5100E94461182E091E00E9438 +:1017B000F0100E94D4218091F601853069F40E94D6 +:1017C0005E1C8091F4018823B1F30E94881C882359 +:1017D00091F30E94470CEFCF0E944C11ECCF292FC0 +:1017E000332723303105C9F064F42130310581F00D +:1017F0002230310509F043C08DE690E02AE333E062 +:1018000042C021323105F1F02232310541F137C0B9 +:1018100082E190E027EA33E036C0992781309105D4 +:1018200041F08230910541F0892B49F5E6E3F3E080 +:1018300005C0EEE1F3E002C0E6E0F3E0849190E061 +:101840009F0121C06430D8F4E62FF0E0EE0FFF1FB7 +:10185000EE5DFE4F2081318189E090E014C064305C +:1018600070F470E0FB01EE0FFF1FE65EFE4F20817B +:101870003181FB01EA5EFE4F808190E004C080E090 +:1018800090E020E030E0FA0131832083089580E188 +:1018900089BD82E189BD09B400FEFDCF8091D800E9 +:1018A0008F7D8093D8008091E00082608093E0007B +:1018B0008091E00081FDFCCF0895CF92DF92EF92FE +:1018C000FF920F931F93CF93DF93EC018B016A017B +:1018D0000E94C00D811133C0C114D10439F0F6014A +:1018E00080819181081B190BC80FD91FE12CF12CA5 +:1018F0000115110519F18091E80085FD16C0809150 +:10190000E8008E778093E800C114D10449F0F60115 +:1019100080819181E80EF91EF182E08285E00FC09E +:101920000E94C00D882321F30AC089918093F100A1 +:1019300001501109FFEFEF1AFF0ADACF80E0DF91C3 +:10194000CF911F910F91FF90EF90DF90CF9008956E +:101950002091FD013091FE012617370748F06115EF +:10196000710539F42091E8002E772093E80001C03A +:10197000B90140E061157105A9F12091F60122231A +:1019800009F443C0253009F442C02091E80023FD4A +:1019900040C02091E80022FD32C02091E80020FFE5 +:1019A000E9CF4091F3002091F20030E0342BFC01AC +:1019B000CF016115710559F02830310540F481914E +:1019C0008093F100615071092F5F3F4FF1CF41E0EB +:1019D0002830310509F040E02091E8002E7720936F +:1019E000E800C8CF4111C9CF0AC08091F601882311 +:1019F00061F0853061F08091E80083FD0AC080913C +:101A0000E80082FFF2CF80E0089582E0089583E04D +:101A1000089581E008952091FD013091FE0126177F +:101A2000370748F06115710539F42091E8002E77E9 +:101A30002093E80001C0B901FC0120E061157105A7 +:101A400091F18091F601882309F440C0853009F4B2 +:101A50003FC08091E80083FD3DC08091E80082FD99 +:101A60002FC08091E80080FFE9CF2091F3008091A2 +:101A7000F20090E0922B6115710559F088309105C4 +:101A800040F424912093F100319661507109019640 +:101A9000F2CF21E0089709F020E08091E8008E77EE +:101AA0008093E800CBCF2111CCCF0AC08091F60102 +:101AB000882361F0853061F08091E80083FD0AC0E1 +:101AC0008091E80082FFF2CF80E0089582E00895DF +:101AD00083E0089581E00895982F973058F590930A +:101AE000E900981739F07091EC002091ED005091C9 +:101AF000F00003C0242F762F50E021FF19C0309151 +:101B0000EB003E7F3093EB003091ED003D7F309352 +:101B1000ED003091EB0031603093EB007093EC00FE +:101B20002093ED005093F0002091EE0027FF07C0B6 +:101B30009F5FD3CF8F708093E90081E0089580E0AC +:101B400008958091F70187FF11C08091E80082FD20 +:101B500005C08091F6018111F8CF11C08091E80095 +:101B60008B770BC08091F601882349F08091E800C3 +:101B700080FFF8CF8091E8008E778093E800089589 +:101B80002091E4003091E50095E64091EC00842F2F +:101B9000817040FF22C08091E80080FD1CC08091D0 +:101BA000F601882391F0853091F08091EB0085FD5E +:101BB00010C04091E4005091E5004217530729F30B +:101BC0009A01915011F784E0089582E0089583E02E +:101BD000089581E0089580E008954091E80042FF73 +:101BE000DECF08950E94600E0E94680EE0EEF0E0E5 +:101BF000808181608083E8EDF0E080818F77808351 +:101C000019BCA7EDB0E08C918E7F8C9380818F7E84 +:101C100080831092F50108950F931F93CF93DF9364 +:101C20000E94600E0E94680EC8EDD0E088818F7718 +:101C3000888388818068888388818F7D888319BCA8 +:101C40001092F6011092F2011092F4011092F30139 +:101C500000EE10E0F80180818B7F808388818160B5 +:101C6000888342E060E080E00E946C0DE1EEF0E0ED +:101C700080818E7F8083E2EEF0E0808181608083CE +:101C8000808188608083F80180818E7F8083888155 +:101C900080618883DF91CF911F910F910895E8EDC6 +:101CA000F0E080818F7E8083E7EDF0E080818160CD +:101CB000808384E082BF81E08093F5010C940C0E58 +:101CC000E8EDF0E080818E7F80831092E20008953D +:101CD0001092DA001092E10008951F920F920FB651 +:101CE0000F9211242F933F934F935F936F937F93A2 +:101CF0008F939F93AF93BF93EF93FF938091E100F6 +:101D000082FF0BC08091E20082FF07C08091E1005A +:101D10008B7F8093E1000E94D4108091DA0080FFD5 +:101D20001FC08091D80080FF1BC08091DA008E7F99 +:101D30008093DA008091D90080FF0DC080E189BDD9 +:101D400082E189BD09B400FEFDCF81E08093F601F8 +:101D50000E94D30A05C019BC1092F6010E94E10A44 +:101D60008091E10080FF19C08091E20080FF15C0E2 +:101D70008091E2008E7F8093E2008091E20080619A +:101D80008093E2008091D80080628093D80019BCD3 +:101D900085E08093F6010E94E50A8091E10084FFCE +:101DA00030C08091E20084FF2CC080E189BD82E1D7 +:101DB00089BD09B400FEFDCF8091D8008F7D80934E +:101DC000D8008091E1008F7E8093E1008091E20055 +:101DD0008F7E8093E2008091E20081608093E20038 +:101DE0008091F201882311F084E007C08091E30024 +:101DF00087FD02C081E001C083E08093F6010E946C +:101E0000E70A8091E10083FF29C08091E20083FF0F +:101E100025C08091E100877F8093E10082E080937C +:101E2000F6011092F2018091E1008E7F8093E10033 +:101E30008091E2008E7F8093E2008091E2008061D9 +:101E40008093E20042E060E080E00E946C0D8091AF +:101E5000F00088608093F0000E94E40AFF91EF9107 +:101E6000BF91AF919F918F917F916F915F914F91B2 +:101E70003F912F910F900FBE0F901F9018951F92BA +:101E80000F920FB60F9211242F933F934F935F93AE +:101E90006F937F938F939F93AF93BF93CF93DF9372 +:101EA000EF93FF93C091E900CF708091EC00D82FA1 +:101EB000D17080FDD0E81092E9008091F000877F1A +:101EC0008093F00078940E94830F1092E900809133 +:101ED000F00088608093F000CD2BCF70C093E900B4 +:101EE000FF91EF91DF91CF91BF91AF919F918F9132 +:101EF0007F916F915F914F913F912F910F900FBE06 +:101F00000F901F9018951F93CF93DF93CDB7DEB737 +:101F1000AA970FB6F894DEBF0FBECDBFE7EFF1E092 +:101F200088E08E0F9091F10091938E13FBCF0E9469 +:101F3000030B8091E80083FF1FC18091F70190910E +:101F4000F801492F50E04A30510508F015C1FA0157 +:101F5000EA5AFF4F0C946E23803881F0823809F0E2 +:101F60000BC18091FB018F708093E9008091EB00A1 +:101F700085FB882780F91092E90006C08091F30163 +:101F80009091F401911182609091E800977F909375 +:101F9000E8008093F1001092F100C8C0282F2D7F37 +:101FA00009F0EAC0882319F0823061F0E5C0809121 +:101FB000F901813009F0E0C0933009F080E08093AE +:101FC000F4012BC08091F901811127C08091FB01A0 +:101FD0008F7009F4D1C08093E9002091EB0020FFBD +:101FE0001CC0933021F48091EB00806214C090916A +:101FF000EB0090619093EB0021E030E0A90102C07A +:10200000440F551F8A95E2F74093EA001092EA00C8 +:102010008091EB0088608093EB001092E900809142 +:10202000E800877F86C08111A7C01091F9011F7752 +:102030008091E3008078812B8093E3008091E80019 +:10204000877F8093E8000E94A10D8091E80080FFC7 +:10205000FCCF8091E30080688093E300111102C0FF +:1020600082E001C083E08093F60186C08058823010 +:1020700008F082C08091F9019091FA018C3D53E003 +:10208000950779F583E08A838AE289834FB7F894CC +:10209000DE01139620E03EE051E2E32FF0E05093A2 +:1020A0005700E49120FF03C0E295EF703F5FEF70AF +:1020B0008E2F90E0EA3010F0C79601C0C0968D9345 +:1020C0009D932F5F243149F74FBF8091E800877FB0 +:1020D0008093E8006AE270E0CE0101960E94A80CAD +:1020E00014C0AE014F5F5F4F6091FB010E94EF0B88 +:1020F000BC01009709F440C09091E800977F90934D +:10210000E80089819A810E940B0D8091E8008B770D +:102110008093E80031C0803879F58091E800877FAE +:102120008093E8008091F2018093F1008091E800B3 +:102130008E778093E8000E94A10D1EC081111CC003 +:102140009091F9019230C0F48091E800877F8093EC +:10215000E8009093F2010E94A10D8091F20181119B +:1021600006C08091E30087FD02C081E001C084E0E9 +:102170008093F6010E94EF0A8091E80083FF0AC075 +:102180008091E800877F8093E8008091EB00806277 +:102190008093EB00AA960FB6F894DEBF0FBECDBFBA +:1021A000DF91CF911F9108950895CF938091F6010B +:1021B0008823A1F0C091E900CF709091EC00892FA5 +:1021C000817090FD80E8C82B1092E9008091E800B2 +:1021D00083FD0E94830FCF70C093E900CF910895D3 +:1021E00090937801809377010895E0917701F091C1 +:1021F0007801309721F00190F081E02D099480E082 +:102200000895E0917701F0917801309721F00280F4 +:10221000F381E02D09940895E0917701F091780120 +:10222000309721F00480F581E02D099408952091E4 +:102230007501309176018217930771F090937601C2 +:1022400080937501E0917701F0917801309721F04A +:102250000680F781E02D0994089520917301309153 +:1022600074018217930771F0909374018093730146 +:10227000E0917701F0917801309721F00084F185A9 +:10228000E02D0994089508950C9443110E949C1C1C +:102290000E943B030C94221D9F92AF92BF92CF925B +:1022A000DF92EF92FF920F931F93CF93DF9300D0B3 +:1022B00000D000D0CDB7DEB70E9462030DE010E081 +:1022C000AA24A394B12C902E802F0E945004980130 +:1022D00026583E4F6901F901F080F826A1F401501B +:1022E000110988F78FEF89838A831B820E94A51CBE +:1022F0008160782F9D838C8349815A816B818D8188 +:102300000E94E3112FC09091DD0191FF04C08E83E4 +:102310000E9456048E8125E030E0A501022E01C006 +:10232000440F0A94EAF7E42E4F21C1F029839A82E0 +:102330008E2191E009F490E09B830E94A51C8160AE +:10234000782F9D838C8349815A816B818D810E9476 +:10235000E311F6018081E826E08204C021503109B2 +:10236000E0F6BDCF0E94F01E109179010E94F51099 +:102370001817B9F00E94F5108093790126960FB6D0 +:10238000F894DEBF0FBECDBFDF91CF911F910F91AB +:10239000FF90EF90DF90CF90BF90AF909F900C9404 +:1023A000F20926960FB6F894DEBF0FBECDBFDF91BF +:1023B000CF911F910F91FF90EF90DF90CF90BF9042 +:1023C000AF909F900895CF93DF93CDB7DEB72B9753 +:1023D0000FB6F894DEBF0FBECDBF4F835887698715 +:1023E0007A878B87DE01119686E0FD0111928A952E +:1023F000E9F785E0FE01379601900D928A95E1F7A5 +:1024000049815A816B817C818D819E810E942C182B +:102410002B960FB6F894DEBF0FBECDBFDF91CF91E4 +:102420000895CF93882309F4C2C0C82F823859F485 +:102430000E94F51081FDBBC089E30E94061B0E942B +:10244000D31B89E30CC0833879F40E94F51080FD1A +:10245000AEC083E50E94061B0E94D31B83E50E9449 +:10246000481BCF910C94D31B843859F40E94F5106B +:1024700082FD9DC087E40E94061B0E94D31B87E457 +:10248000EECF8CEF8C0F813A48F48C2F0E943A21CA +:1024900081118DC08C2F0E94061BE3CF80E28C0F30 +:1024A000883048F4C77081E001C0880FCA95EAF708 +:1024B0000E948C1BD6CF8BE58C0F833078F4C53A05 +:1024C00029F0C63A31F083E890E005C081E890E059 +:1024D00002C082E890E0CF910C94171188E58C0F30 +:1024E000833108F064C0C83A39F1C93A41F1CA3AB7 +:1024F00049F1CB3A51F1CC3A59F1CD3A61F1C03BB7 +:1025000069F1CE3A71F1CF3A79F1C13B81F1C23B29 +:1025100089F1C33B91F1C43B99F1C53BA1F1C63BA5 +:10252000A9F1C73BB1F1C83BB9F1C93BC1F1CA3B05 +:10253000C9F180E090E038C082EE90E035C089EECD +:1025400090E032C08AEE90E02FC085EB90E02CC086 +:1025500086EB90E029C087EB90E026C08CEC90E001 +:1025600023C08DEC90E020C083E891E01DC08AE894 +:1025700091E01AC082E991E017C084E991E014C0AB +:1025800081E292E011C083E292E00EC084E292E028 +:102590000BC085E292E008C086E292E005C087E2C7 +:1025A00092E002C08AE292E0CF910C942D11CF917B +:1025B0000895882309F44BC0823859F40E94F5101D +:1025C00081FF45C089E30E94061B0E94D31B89E35B +:1025D0000CC0833871F40E94F51080FF38C083E589 +:1025E0000E94061B0E94D31B83E50E94481B0C948B +:1025F000D31B843859F40E94F51082FF28C087E469 +:102600000E94061B0E94D31B87E4EFCF9CEF980F1C +:10261000913A58F390E2980F983050F4877091E017 +:1026200001C0990F8A95EAF7892F0E94921BDFCF8C +:102630009BE5980F933020F480E090E00C94171104 +:10264000885A833120F480E090E00C942D11089595 +:10265000882321F00E948C1B0C94D31B089588239F +:1026600021F00E94921B0C94D31B08957F928F92AD +:102670009F92AF92BF92CF92DF92EF92FF920F9311 +:102680001F93CF93DF931F92CDB7DEB77C01C62E89 +:10269000772EFC01058102950F70128111110E94A5 +:1026A000A91B0E94FF1A882379F0112369F080E2A8 +:1026B0008C0D883048F082E00E94E81A0E94FF1AD0 +:1026C00091E0D82ED92601C0D12CE72DE295EF70EC +:1026D000F0E0E05AFF4F0C946E23872D807F072D8A +:1026E0000F70882311F00295007F112389F00023D9 +:1026F00009F490C180E28C0D883020F4802F0E9474 +:102700008C1B03C0802F0E949C1B0E94D31B82C184 +:102710008C2D0E94D912002309F495C180E28C0D02 +:10272000883020F4802F0E94921B03C0802F0E94CB +:10273000A21B0E94D31B87C1972D907F872D8F707E +:10274000903211F08295807FCC2021F0F1E0CF16FD +:10275000B1F01EC0112349F0002309F414C1013067 +:1027600009F011C10E94BC1B6EC1002319F0013099 +:1027700009F469C189830E94BF1B89810AC11123A1 +:1027800021F0023008F05FC1FEC001115CC101C13F +:10279000112321F0002309F4F6C03CC1002309F401 +:1027A000F8C03EC1872D86958695837090E000978E +:1027B00019F0019761F047C1112321F08C2D972D5D +:1027C000937002C080E090E00E9417113CC1112379 +:1027D00021F08C2D972D937002C080E090E00E9434 +:1027E0002D1131C18C2D112319F00E94F81D02C04A +:1027F0000E94601E0E94E51E26C1872D837009F08D +:1028000052C0111120C18C2D829586958770880F3A +:10281000880F9C2D9F70892E912CA12CB12C082EF5 +:1028200004C0880C991CAA1CBB1C0A94D2F7C4FED5 +:1028300014C00FE010E020E030E0B901A80104C0AE +:10284000440F551F661F771F8A95D2F7CB01BA0137 +:10285000609570958095909503C060E070E0CB0125 +:10286000272D26952695237030E02230310569F01A +:102870002330310589F0682979298A299B2921305B +:10288000310571F00E947419DEC0682979298A29FE +:102890009B290E949019D7C00E947419C501B401E8 +:1028A0000E945819D0C0112319F0872D817001C0E2 +:1028B0008695882309F4C7C08C2D829586958770EC +:1028C000880F880F9C2D9F70892E912CA12CB12CE4 +:1028D000082E04C0880C991CAA1CBB1C0A94D2F7B1 +:1028E000C4FE14C00FE010E020E030E0B901A80100 +:1028F00004C0440F551F661F771F8A95D2F7CB017E +:10290000BA01609570958095909503C060E070E085 +:10291000CB01272D269526952370422F50E042307B +:10292000510569F04330510589F0682979298A29D0 +:102930009B294130510571F00E944E1A84C06829CC +:1029400079298A299B290E946A1A7DC00E944E1A01 +:10295000C501B4010E94321A76C08C2D90E0FC01B2 +:10296000E05EF109E531F10508F050C0E059FF4F94 +:102970000C946E230C2D0F70872D8F71112331F065 +:102980000E94CB19802F0E9428135DC00E94EC1971 +:10299000802F0E942F1357C0112339F0011153C00B +:1029A000872D8F710E94111A4EC0023008F04BC063 +:1029B000F7CF112339F0872D8F710E94CB1943C0B7 +:1029C0001123C9F3872D8F710E94EC193CC011238C +:1029D00029F0872D8F710E94B61935C00E94AC195D +:1029E00032C0112351F0172D1F71812F0E94CB1976 +:1029F00063E0812F0E94DF1A26C081E00E94E81A5E +:102A0000023008F182E00E94E81A1DC0112331F063 +:102A1000002389F28C2D0E94111215C0002391F21F +:102A20008C2D0E94D9120FC0472D4F706C2DC701FD +:102A30000E942C050E94D01806C0472D4F706C2DA7 +:102A4000C7010E946109DD20F9F00E94DB1A80FDB8 +:102A50001BC0F70112820E94D51A0E94CB19C70130 +:102A60000E9453150E94D51A0F90DF91CF911F91AC +:102A70000F91FF90EF90DF90CF90BF90AF909F901D +:102A80008F907F900C94EC190F90DF91CF911F9154 +:102A90000F91FF90EF90DF90CF90BF90AF909F90FD +:102AA0008F907F9008950F931F93CF93DF93EC0146 +:102AB000888199812B813C81232BB9F09F3F11F4B0 +:102AC0008F3F99F0CE010E94F205882371F0688152 +:102AD00079818A810E94D11A8C010E94861A0E94F3 +:102AE0004D19B801CE010E943613DF91CF911F918D +:102AF0000F9108950E94A91B0E94B91B0E947E1B82 +:102B00000E94D31B0E94961F0E94E51E80E090E069 +:102B10000E94171180E090E00C942D110E94991BE7 +:102B20000C947A150E94C61A292F22952F7030E036 +:102B30002C3031054CF42A3031056CF42250310927 +:102B400022303105A8F407C02C30310569F02F3050 +:102B5000310551F00DC0803F69F018F4803E40F41B +:102B600009C0843F29F406C093FB882780F90895A3 +:102B700080E0089581E00895CF93DF9300D000D0E6 +:102B80001F92CDB7DEB70F900F900F900F900F9060 +:102B9000DF91CF910895CF93DF9300D000D000D084 +:102BA000CDB7DEB726960FB6F894DEBF0FBECDBF09 +:102BB000DF91CF9108951F93CF93DF93C091880148 +:102BC00016E080918901C81799F0D0E01C9FF001B0 +:102BD0001D9FF00D1124E657FE4F40815181628107 +:102BE0007381848195810E94CB152196C770E9CFAE +:102BF000DF91CF911F9108954091BA015091BB018F +:102C00006091BC017091BD018091BE019091BF01A6 +:102C10000C94CB158091BF0182958F7009F054C040 +:102C20008091BC01882309F44FC080918801A09154 +:102C300089016091BA017091BB014091BD01509131 +:102C4000BE01B6E08A1709F43FC090E04115510576 +:102C5000C1F17F3F11F46F3FA1F1B89FF001B99F1F +:102C6000F00D1124E657FE4F218172132AC02081F6 +:102C7000621327C02281211124C0238134812417AB +:102C8000350710F421503109241B350B283C310540 +:102C9000C0F42091BF012F7020612093BF0126E076 +:102CA000289FF001299FF00D1124E157FE4F8081EC +:102CB0008F70806180838AEB91E00E9453150C94A1 +:102CC000DB1501968770BECF0895CF92DF92EF9209 +:102CD000FF920F931F93CF93DF93CDB7DEB7629729 +:102CE0000FB6F894DEBF0FBECDBF8C0185E0F801B2 +:102CF000DE011D9601900D928A95E1F7D8014C9165 +:102D000011965C91119712966C9112971396CD9033 +:102D1000DC9014973091BA017091BB018091BD0194 +:102D20009091BE01009709F46BC17F3F19F43F3FBA +:102D300009F466C1E090BC01EE2009F4C0C0209106 +:102D4000BF01C816D90628F0F601E81BF90BCF0120 +:102D500004C0809590958C0D9D1DFF24F394883CB4 +:102D6000910578F0F12C207F09F0C6C07C2DD98A1E +:102D7000C88A89890E94BC158AEB91E00E9453158C +:102D8000B1C0822F807F09F046C0751314C0341380 +:102D900012C0611110C02F7020612093BF010E94EA +:102DA000FC158AEB91E00E9453158091BF01D80178 +:102DB00015968C932EC0CD2819F15F3F11F44F3F2B +:102DC000F9F0F62E61111CC08091880120918901D3 +:102DD00036E0821709F45AC090E0389FF001399F1D +:102DE000F00D1124E657FE4F7181571306C0708114 +:102DF000471303C07281711103C001968770E9CF38 +:102E0000F62E662309F418C18091BF01816080937A +:102E1000BF01F12C11C1751308C0341306C0611134 +:102E200004C08091BF01D801C3C04D875E878D85E6 +:102E30009E856A8B0E9492156A898823E1F1662338 +:102E4000D1F12091BF01822F82958F7090E002977F +:102E500074F08091BA019091BB0198878F83198695 +:102E6000DB86CA862C87CE0107960E94531586E022 +:102E7000F801AAEBB1E001900D928A95E1F70E946A +:102E80000A160E94FC15FF24F394D6C04D875E8776 +:102E90008D859E850E94C61A292F22952F7030E0BD +:102EA000223031050CF0BCC09F7009F0B6C0805EC6 +:102EB000883008F4C1C0C8010E945315E4CFC81679 +:102EC000D90608F453C0F601E81BF90BCF01883C82 +:102ED000910508F450C0F12C7C2DD98AC88A8989C3 +:102EE0000E94BC15EAEBF1E086E0DF011D928A95B5 +:102EF000E9F70E94FC15A0C0751314C0341312C06A +:102F0000611110C08091BF01F8018583C8010E9442 +:102F1000531586E0EAEBF1E0DF011D928A95E9F7AF +:102F2000FE2C8AC04D875E878D859E856A8B0E94A8 +:102F300092156A89882309F4BECF662309F4BBCFB2 +:102F40002091BF01822F82958F7090E002970CF440 +:102F50008ECF8091BA019091BB019A8389831B82A5 +:102F6000DD82CC822E83CE0101967FCF8095909515 +:102F70008C0D9D1DACCFF62E662309F49CCF7513E6 +:102F80002EC034132CC02091BF0120FD1FC0822F02 +:102F900082958F70D9F0D80115962C9315978F30A4 +:102FA00049F08F5F982F9295907F822F8F70892B99 +:102FB00015968C93C8010E94531586E0F801AAEB80 +:102FC000B1E001900D928A95E1F793CF86E0F80188 +:102FD000AAEBB1E001900D928A95E1F72DC04D87E3 +:102FE0005E878D859E850E949215811140CF8091CC +:102FF000BF0181608093BF01C8010E9453151CC0AE +:10300000662309F458CF4D875E878D859E850E9483 +:103010009215882309F44FCF2ACF811148CF0CC0D5 +:10302000243031050CF047CF9F7009F440CFF801F0 +:103030009581907F09F03BCF8F2D62960FB6F89463 +:10304000DEBF0FBECDBFDF91CF911F910F91FF90DB +:10305000EF90DF90CF9008951F93CF93DF93CDB77C +:10306000DEB72C970FB6F894DEBF0FBECDBF4F83EF +:10307000588769877A878B879C87CE0107960E943D +:103080006516882369F08F8198852A853B85232BD7 +:10309000F1F19F3F09F063C08F3F09F060C037C076 +:1030A00086E0FE013796DE01119601900D928A9519 +:1030B000E1F76F817885EA85FB85309741F17F3FA5 +:1030C00011F46F3F21F12091890130E0C90101968F +:1030D000877099274091880150E08417950709F47B +:1030E00047C069837A83FD83EC8396E0929FD00189 +:1030F000939FB00D1124A657BE4FFE01319601904B +:103100000D929A95E1F7809389010E94DB1516E0F4 +:1031100080918801909189018917C1F1189FC001A0 +:10312000112486579E4F0E946516882379F1E091FD +:1031300088011E9FF0011124E657FE4F4081518106 +:1031400062817381848195810E94CB158091880171 +:1031500090E001968770992780938801D9CF4F819D +:10316000588569857A858B859C850E94CB15CFCF44 +:103170000E948E151092890110928801EAEBF1E00D +:1031800086E0DF011D928A95E9F7C1CF2C960FB634 +:10319000F894DEBF0FBECDBFDF91CF911F91089590 +:1031A000EF92FF920F931F93CF93DF938C010097C1 +:1031B00009F46CC0F12CEE24E394E8012196F801A7 +:1031C0008491843740F4843008F051C0813081F01C +:1031D000823019F15BC0853709F444C0A8F19CE73F +:1031E000980F903708F052C08F770E94D91241C0D3 +:1031F0000E5F1F4FFE01C49180E28C0F883048F4AF +:10320000C7708E2D01C0880FCA95EAF70E94AC1BCB +:1032100014C08C2F0E9411122DC00E5F1F4FFE0193 +:10322000C49180E28C0F883058F4C7708E2D01C095 +:10323000880FCA95EAF70E94B21B0E94D31B1AC0DE +:103240008C2F0E94D91216C00E5F1F4FFE01C49131 +:10325000CC2381F08FE99FE00197F1F700C00000D7 +:10326000C150F6CF0E5F1F4FFE01F49003C00E94C5 +:1032700011128E018F2D882309F49FCFEFE9FFE013 +:103280003197F1F700C000008150F5CFDF91CF9169 +:103290001F910F91FF90EF90089508956093C401DE +:1032A0007093C5018093C6019093C7010C947A1561 +:1032B0000F931F930091C4011091C5012091C60185 +:1032C0003091C701DC01CB01802B912BA22BB32BBA +:1032D0008093C4019093C501A093C601B093C70128 +:1032E0001F910F910C947A150F931F930091C401B5 +:1032F0001091C5012091C6013091C701DC01CB01BD +:1033000080239123A223B3238093C4019093C5010A +:10331000A093C601B093C7011F910F910C947A1529 +:103320000F931F930091C4011091C5012091C60114 +:103330003091C701DC01CB0180279127A227B32759 +:103340008093C4019093C501A093C601B093C701B7 +:103350001F910F910C947A151092C0011092C10127 +:103360001092C2011092C3010C947A1541E050E012 +:1033700060E070E004C0440F551F661F771F8A95F8 +:10338000D2F74093C0015093C1016093C201709382 +:10339000C3010C947A1541E050E060E070E004C095 +:1033A000440F551F661F771F8A95D2F78091C00181 +:1033B0009091C101A091C201B091C301482B592B3A +:1033C0006A2B7B2B4093C0015093C1016093C201D3 +:1033D0007093C3010C947A1541E050E060E070E016 +:1033E00004C0440F551F661F771F8A95D2F740957A +:1033F0005095609570958091C0019091C101A09108 +:10340000C201B091C301482359236A237B2340930F +:10341000C0015093C1016093C2017093C3010C9429 +:103420007A1541E050E060E070E004C0440F551FA1 +:10343000661F771F8A95D2F78091C0019091C101D4 +:10344000A091C201B091C301482759276A277B2761 +:103450004093C0015093C1016093C2017093C301B6 +:103460000C947A150F931F930091C0011091C10124 +:103470002091C2013091C301DC01CB01802B912B43 +:10348000A22BB32B8093C0019093C101A093C201E2 +:10349000B093C3011F910F910C947A150F931F9352 +:1034A0000091C0011091C1012091C2013091C3016E +:1034B000DC01CB0180239123A223B3238093C0019D +:1034C0009093C101A093C201B093C3011F910F91CA +:1034D0000C947A150F931F930091C0011091C101B4 +:1034E0002091C2013091C301DC01CB0180279127DB +:1034F000A227B3278093C0019093C101A093C2017A +:10350000B093C3011F910F910C947A150895CF9237 +:10351000DF92EF92FF920F931F93CF93DF938C0173 +:10352000C090C401D090C501E090C601F090C701E1 +:103530008091C0019091C101A091C201B091C301DD +:10354000C82AD92AEA2AFB2ACFE1D0E0D701C6014E +:103550000C2E04C0B695A795979587950A94D2F737 +:1035600080FF06C0B8018C2F0E94E007019721F46C +:10357000219760F780E001C08C2FDF91CF911F91E0 +:103580000F91FF90EF90DF90CF900895CF93DF934E +:10359000EC010E94871ABE010E94E007DF91CF91E3 +:1035A0000895CB010E94C61A08958091C80185959F +:1035B0008595859508958091C8018770089598E054 +:1035C000899F90011124262B2093C8010C94CB19BC +:1035D0002091C801809582238093C801982F97700D +:1035E00069F430E0482F552747FD509524173507DB +:1035F00029F08595859585950C94EC190895909101 +:10360000C801977081E009F480E0089590910C0161 +:10361000992321F090910D01911109C020910E0183 +:1036200030910F01F90132969FEF40E01FC0982FB3 +:103630009695969596959F3050F5E0910E01F091F4 +:103640000F01E90FF11D877021E030E0A90102C0F0 +:10365000440F551F8A95E2F7CA019181892B818316 +:1036600008959F3F39F04F5F4E3041F0519158130C +:10367000F8CF0DC05111F7CF942FF5CF9F3F39F000 +:10368000F901E90FF11D97FDFA95828308950895D8 +:1036900090910C01992321F090910D01911109C095 +:1036A00020910E0130910F01F9013296205F3F4FBA +:1036B0001FC0982F9695969596959F30F0F4E091BF +:1036C0000E01F0910F01E90FF11D877021E030E04C +:1036D000A90102C0440F551F8A95E2F7CA018095DF +:1036E00091818923818308953196E217F30729F0A8 +:1036F00090819813F9CF1082F7CF089581E090E080 +:10370000E0910E01F0910F01E80FF91F1082019670 +:1037100080319105A9F708959091DC01892B809360 +:10372000DC01089580959091DC0189238093DC0170 +:1037300008951092DC0108959091DB01892B80930C +:10374000DB01089580959091DB0189238093DB0153 +:1037500008951092DB0108959091DA01892B8093EE +:10376000DA01089580959091DA0189238093DA0136 +:1037700008951092DA0108958093C9010895109276 +:10378000C901089580910E0190910F01FC013196BD +:103790009C01205F3F4F80E0919191118F5FE21774 +:1037A000F307D1F70895E0910E01F0910F01809198 +:1037B000DC018083E0910E01F0910F0190818091F6 +:1037C000DB01892B8083E0910E01F0910F01908144 +:1037D0008091DA01892B80838091C901882361F06F +:1037E000E0910E01F0910F019081892B80830E945E +:1037F000C21B81111092C90180910E0190910F019D +:103800000C94011120E0009739F0AC0141505109AE +:10381000842395232F5FF7CF822F0895CF92DF92D5 +:10382000EF92FF926C01EE24FF24C114D104E10455 +:10383000F10421F0C701B60120E101C020E0C72E4C +:10384000D82EE92EFF24C114D104E104F10419F0AB +:10385000285FC701B6016B017C0154E0F694E79440 +:10386000D794C7945A95D1F7C114D104E104F10457 +:1038700019F02C5FC701B6016B017C0142E0F694A0 +:10388000E794D794C7944A95D1F7C114D104E104C1 +:10389000F10419F02E5FC701B601DC01CB01B6952A +:1038A000A79597958795892B8A2B8B2B09F02F5FEE +:1038B000822FFF90EF90DF90CF9008958091F601D6 +:1038C000843021F11092DE0120E488E190E00FB60F +:1038D000F894A895809360000FBE2093600080E06C +:1038E0000E94F20983B7817F846083BF83B78160C0 +:1038F00083BF7894889583B78E7F83BF88E10FB6A6 +:10390000F89480936000109260000FBE08950895AF +:103910000E944F030E9462030E94871C0E9457046A +:1039200091E0811101C090E0892F08950E948E15C9 +:103930000E94F5100C94F20982E084BD93E095BDDD +:103940009AEF97BD80936E0008952FB7F8948091F9 +:10395000DF019091E001A091E101B091E2012FBF60 +:103960000895CF92DF92EF92FF920F931F932FB79C +:10397000F8944091DF015091E0016091E101709174 +:10398000E2012FBF6A017B01EE24FF248C0120E0BD +:1039900030E0C016D106E206F30610F4415051099A +:1039A0009A01281B390BC9011F910F91FF90EF90CD +:1039B000DF90CF9008951F920F920FB60F921124AF +:1039C0008F939F93AF93BF938091DF019091E0011C +:1039D000A091E101B091E2010196A11DB11D80937A +:1039E000DF019093E001A093E101B093E201BF9168 +:1039F000AF919F918F910F900FBE0F901F901895D0 +:103A00000E94F20DF8942FEF87EA91E62150804052 +:103A10009040E1F700C0000087E090EBDC0180936C +:103A2000FF0190930002A0930102B09302029CE078 +:103A300088E10FB6F894A895809360000FBE90932C +:103A40006000FFCF0E945A1D811102C00E94401DDC +:103A50000E94651D8093DD010E946D1D90E0909392 +:103A6000F1018093F00187FB882780F980930D0195 +:103A70000E94691D682F70E080E090E00C944E1960 +:103A80006DEE7EEF80E090E00E94A82360E082E08F +:103A900090E00E94962360E083E090E00E949623ED +:103AA00060E084E090E00E94962360E085E090E092 +:103AB0000C94962380E090E00E94902321E08D3EBC +:103AC0009E4F09F020E0822F089582E090E00C9450 +:103AD000882383E090E00C94882384E090E00C94A9 +:103AE0008823682F84E090E00C9496238091E50170 +:103AF00080FF0BC06091130185E0689FB001112425 +:103B000075956795759567952BC081FF09C0609184 +:103B1000130185E0689FB00111247595679520C059 +:103B200082FF07C06091130185E0689FB0011124F6 +:103B300017C09091E6019923D1F060911201961778 +:103B400088F72091130185E0289F90011124929F0E +:103B5000A001939F500D112470E0CA010E945A23C6 +:103B60006038710540F46115710539F002C065E0F7 +:103B700070E0862F08958FE7089581E00895809181 +:103B8000E50180FF08C06091110170E075956795AF +:103B90007595679521C081FF06C06091110170E0A5 +:103BA0007595679519C082FF04C06091110170E09E +:103BB00010C09091E6019923C1F060911001961711 +:103BC000A0F780911101899FC001112470E00E942B +:103BD0005A236038710528F46115710521F0862F8C +:103BE00008958FE7089581E0089561E070E0F4CFD3 +:103BF000803F21F40E94761D819504C0813F29F405 +:103C00000E94761D8093E9010895823F21F40E946D +:103C1000761D819504C0833F29F40E94761D809310 +:103C2000E8010895893F19F40E94BF1D05C08A3F2D +:103C300031F40E94BF1D81958093EA0108958B3F66 +:103C400021F40E94BF1D819504C08C3F29F40E947D +:103C5000BF1D8093EB010895843F21F48091E7011B +:103C6000816017C0853F21F48091E701826011C017 +:103C7000863F21F48091E70184600BC0873F21F4E7 +:103C80008091E701886005C0883F31F48091E701A9 +:103C900080618093E70108958D3F21F48091E501D3 +:103CA00081600BC08E3F21F48091E501826005C0E8 +:103CB0008F3F29F48091E50184608093E5010895A8 +:103CC000803F39F48091E90187FF6CC01092E901CF +:103CD00069C0813F29F48091E9011816BCF362C0E4 +:103CE0009091E801823F29F497FF5CC01092E801AF +:103CF00059C0833F19F41916CCF354C0893F41F4DD +:103D00008091EA0118160CF04DC01092EA014AC0E9 +:103D10008A3F29F48091EA0187FF44C0F6CF8B3FA8 +:103D200039F48091EB0187FF3DC01092EB013AC05E +:103D30008C3F29F48091EB011816BCF333C0843F0B +:103D400021F48091E7018E7F17C0853F21F4809197 +:103D5000E7018D7F11C0863F21F48091E7018B7FC1 +:103D60000BC0873F21F48091E701877F05C0883F22 +:103D700031F48091E7018F7E8093E70113C08D3F7E +:103D800021F48091E5018E7F0BC08E3F21F480915C +:103D9000E5018D7F05C08F3F29F48091E5018B7F80 +:103DA0008093E5018091E80181110EC08091E901C5 +:103DB00081110AC08091EA01811106C08091EB0156 +:103DC000811102C01092E601089587EE91E00E94F1 +:103DD0000C110E94A51C9093E4018093E3010895C7 +:103DE0001F93CF93DF938091E3019091E4010E94B0 +:103DF000B11CAC019091E601992321F020911401AE +:103E000030E006C0209115018AE0289F900111241E +:103E10004217530708F486C08091E801C091E90178 +:103E2000D091EA011091EB01811107C0C11176C058 +:103E3000D11174C0111172C075C09F3F19F09F5FFE +:103E40009093E601181624F40E94761D8093E801F1 +:103E50008091E80187FF05C00E94761D81958093BF +:103E6000E8011C1624F40E94761D8093E9018091DC +:103E7000E90187FF05C00E94761D81958093E901C5 +:103E80006091E801662339F1C091E901CC2319F171 +:103E9000772767FD7095872F972F0E946B2223E36A +:103EA00033E343E35FE30E94CF220E943822609312 +:103EB000E8016C2F772767FD7095872F972F0E9459 +:103EC0006B2223E333E343E35FE30E94CF220E94AC +:103ED00038226093E9011D1624F40E94BF1D8093CF +:103EE000EA018091EA0187FF05C00E94BF1D81950C +:103EF0008093EA01111624F40E94BF1D8093EB0108 +:103F00008091EB0187FF05C00E94BF1D81958093C2 +:103F1000EB01DF91CF911F910C94E51E9F3F09F0BB +:103F20008ECF96CFDF91CF911F910895E7EEF1E00C +:103F300085E0DF011D928A95E9F71092E601109263 +:103F4000E5010895833081F128F4813059F0823001 +:103F5000D1F00895853009F449C0B8F1863009F4EC +:103F600056C0089580911501262F30E0280F311D8D +:103F70002F3F310524F4680F6093150108958FEFEA +:103F800080931501089580911401262F30E0280FA9 +:103F9000311D2F3F310524F4680F609314010895FB +:103FA0008FEF80931401089580911301262F30E044 +:103FB000280F311D2F3F310524F4680F6093130142 +:103FC00008958FEF80931301089580911201262F99 +:103FD00030E0280F311D2F3F310524F4680F609326 +:103FE000120108958FEF80931201089580911101BD +:103FF000262F30E0280F311D2F3F310524F4680FA4 +:104000006093110108958FEF8093110108958091BD +:104010001001262F30E0280F311D2F3F310524F4E9 +:10402000680F6093100108958FEF80931001089539 +:10403000833011F128F4813049F0823091F00895F5 +:10404000853081F120F18630C1F10895809115010C +:10405000681720F4861B80931501089510921501AE +:10406000089580911401681720F4861B8093140131 +:10407000089510921401089580911301681720F497 +:10408000861B809313010895109213010895809167 +:104090001201681720F4861B809312010895109274 +:1040A0001201089580911101681720F4861B8093F6 +:1040B000110108951092110108958091100168175F +:1040C00020F4861B8093100108951092100108952A +:1040D0000F931F938D3109F471C008F045C08031F2 +:1040E00009F485C008F5873009F46FC068F486309C +:1040F00009F0ADC08091DD01817F8E7F8093DD016D +:1041000081E08093ED01A4C08B3009F49EC08E3015 +:1041100009F09DC08091DD0182FB222720F991E00A +:10412000922790FB82F96CC0863109F48EC060F44E +:10413000813109F08CC00E948E1590910D0181E0B3 +:10414000892780930D0181C0893109F47EC08B31AC +:1041500009F07DC08091DD0181FB222720F991E0EB +:10416000922790FB81F94CC0853309F466C048F46E +:10417000873209F462C008F44FC0893209F45DC087 +:1041800066C0833438F48A3308F044C0883309F4B5 +:104190005CC05DC0833409F450C0883409F057C056 +:1041A0000E948E150FEF13ED20E3015010402040C8 +:1041B000E1F700C000000E94001D47C00E94F221EC +:1041C0000E94F5100E94F20940C09091DD01892FF4 +:1041D0008095817080FB90F929F0966098609093AB +:1041E000DD0136C0997F977F9093DD012EC08091CD +:1041F000DD0183FB222720F991E0922790FB83F9D0 +:104200008093DD01992309F18091DD018160809324 +:10421000DD011BC0895301C08D5141E050E060E0D9 +:1042200070E08A019B0104C0000F111F221F331F81 +:104230008A95D2F7C901B80104C061E070E080E05E +:1042400090E00E944E190E948E1581E001C080E02E +:104250001F910F91089580E0089580E008958E5198 +:104260008A3030F4E82FF0E0E65DFE4F808108955B +:1042700080E00895CF93C82F8091ED01813079F0CF +:1042800018F08230E9F186C0E0910E01F0910F0143 +:104290008081813169F0823209F07EC009C0E091ED +:1042A0000E01F0910F018081813111F0823261F4B1 +:1042B0008C2F0E942B21811104C08C2F0E9468201A +:1042C0001DC081E090E01AC08C2F0E942D21811129 +:1042D00014C0C43179F048F4CB3079F0C03109F022 +:1042E0005FC082E08093ED0108C0C93219F0C83385 +:1042F00021F056C01092ED0153C081E0817052C090 +:10430000C93281F110F5C43169F1A8F4C73009F060 +:1043100045C08AE08093150194E19093140193E0E5 +:10432000909313018093120188E08093110188E239 +:104330008093100133C082EE8C0F863078F58C2F7D +:104340000E942F218093EC0129C0CE34E9F020F4A3 +:10435000CB3421F56AE013C0C13579F0C235F1F4F0 +:1043600061E00DC08091EC01882319F01092EC01FE +:1043700015C081E08093ED0115C061E006C0809119 +:10438000EC010E94A21F0AC06AE08091EC010E9429 +:10439000182004C01092ED0180E004C081E002C04A +:1043A00080E0ACCFCF910895E1E8F0E080818860B3 +:1043B00080838081816080838FB7F89493E09093AD +:1043C000890090ED909388008FBF0895EFE6F0E0AC +:1043D0008081826080830895EFE6F0E080818D7FA8 +:1043E00080830895EFE6F0E0908182E08927808362 +:1043F00008951F920F920FB60F9211242F933F939F +:104400004F935F936F937F938F939F93AF93BF93DC +:10441000EF93FF938091EE019091EF0101969093BD +:10442000EF018093EE01811103C082E00E94F20946 +:10443000E091EF01E695E695F0E0EB54FB4FE49157 +:104440008091EE018E1303C080E00E94F209FF917B +:10445000EF91BF91AF919F918F917F916F915F91FC +:104460004F913F912F910F900FBE0F901F90189575 +:1044700004D06894B1118DC0089570D088F09F5712 +:1044800090F0B92F9927B751A0F0D1F0660F771FA0 +:10449000881F991F1AF0BA95C9F712C0B13081F080 +:1044A00077D0B1E0089574C0672F782F8827B85F60 +:1044B00039F0B93FCCF3869577956795B395D9F7E1 +:1044C0003EF490958095709561957F4F8F4F9F4FEB +:1044D0000895E89409C097FB3EF4909580957095F7 +:1044E00061957F4F8F4F9F4F9923A9F0F92F96E940 +:1044F000BB279395F695879577956795B795F111B5 +:10450000F8CFFAF4BB0F11F460FF1BC06F5F7F4F51 +:104510008F4F9F4F16C0882311F096E911C0772363 +:1045200021F09EE8872F762F05C0662371F096E86C +:10453000862F70E060E02AF09A95660F771F881F3B +:10454000DAF7880F9695879597F9089557FD905853 +:10455000440F551F59F05F3F71F04795880F97FB47 +:10456000991F61F09F3F79F0879508951216130601 +:104570001406551FF2CF4695F1DF08C01616170630 +:104580001806991FF1CF8695710561050894089565 +:10459000E894BB2766277727CB0197F908950BD0BE +:1045A00078C069D028F06ED018F0952309F05AC071 +:1045B0005FC01124EECFCADFA0F3959FD1F3950F12 +:1045C00050E0551F629FF001729FBB27F00DB11D97 +:1045D000639FAA27F00DB11DAA1F649F6627B00D27 +:1045E000A11D661F829F2227B00DA11D621F739F10 +:1045F000B00DA11D621F839FA00D611D221F749F1E +:104600003327A00D611D231F849F600D211D822F64 +:10461000762F6A2F11249F5750408AF0E1F08823AB +:104620004AF0EE0FFF1FBB1F661F771F881F9150B8 +:104630005040A9F79E3F510570F014C0AACF5F3FCC +:10464000ECF3983EDCF3869577956795B795F795EB +:10465000E7959F5FC1F7FE2B880F911D9695879573 +:1046600097F9089597F99F6780E870E060E00895F2 +:104670009FEF80EC089500240A941616170618067A +:104680000906089500240A94121613061406050656 +:104690000895092E0394000C11F4882352F0BB0FE7 +:1046A00040F4BF2B11F460FF04C06F5F7F4F8F4F4A +:1046B0009F4F089597FB072E16F4009407D077FDBF +:1046C00009D00E94742307FC05D03EF49095819593 +:1046D0009F4F0895709561957F4F0895EE0FFF1FCE +:1046E0000590F491E02D0994AA1BBB1B51E107C072 +:1046F000AA1FBB1FA617B70710F0A61BB70B881F72 +:10470000991F5A95A9F780959095BC01CD01089500 +:10471000F999FECF92BD81BDF89A992780B5089589 +:10472000A8E1B0E042E050E00C94B023262FF999C4 +:10473000FECF92BD81BDF89A019700B4021639F000 +:104740001FBA20BD0FB6F894FA9AF99A0FBE0895D1 +:104750000196272F0E9497230C949623DC01CB010E +:10476000FC01F999FECF06C0F2BDE1BDF89A319681 +:1047700000B40D9241505040B8F70895F894FFCF1F +:104780000220F409820A5F0A2B0AF7090101CA0113 +:1047900028080A03140A404D363975042804F20328 +:1047A000B9034C0365037E03970301020304050666 +:0447B00007080900ED +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/dvorak_spanish/keymap.c b/keyboards/ergodox_ez/keymaps/dvorak_spanish/keymap.c new file mode 100755 index 000000000..6eb864b44 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/dvorak_spanish/keymap.c @@ -0,0 +1,284 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +/****************************************************************************************** + * SPANISH DVORAK LAYOUT (see http://djelibeibi.unex.es/dvorak/) + * Layer 1: auxiliary keys + * Layer 2: full qwerty layout + ****************************************************************************************** + * IMPORTANT: Software layout must be set to SPANISH QWERTY to work properly + *****************************************************************************************/ + +// LAYERS +#define BASE 0 // dvorak layout (default) +#define AUX 1 // auxiliary keys +#define QWERTY 2 // qwerty layout + +// MACROS +#define OBRACE 0 // key { or shift +#define CBRACE 1 // key } or shift +#define OBRACK 2 // key [ or left alt +#define CBRACK 3 // key ] or left alt +#define CAPS 4 // caps lock + +// LEDS +#define USB_LED_NUM_LOCK 0 +#define USB_LED_CAPS_LOCK 1 +#define USB_LED_SCROLL_LOCK 2 +#define USB_LED_COMPOSE 3 +#define USB_LED_KANA 4 + +// TIMERS +#define KEY_TAP_FAST 85 +#define KEY_TAP_SLOW 95 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Base layer + * Keys with double values (like Esc/Ctrl) correspond to the 'tapped' key and the 'held' key, respectively + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | \ | 1 | 2 | 3 | 4 | 5 | <> | | ¡ | 6 | 7 | 8 | 9 | 0 | ' | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | F1/~L1 | . | , | Ñ | P | Y |MEH_T | | L1 | F | G | C | H | L |ALL_T/+ | + * |--------+------+------+------+------+------| DEL | | ~L1 |------+------+------+------+------+--------| + * |Esc/Ctrl| A | O | E | U | I |------| |------| D | R | T | N | S |'/RCtrl | + * |--------+------+------+------+------+------| LGUI | | RALT |------+------+------+------+------+--------| + * | {/LSft | - | Q | J | K | X | | | | B | M | W | V | Z | }/RSft | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |[/LALT| HOME |PGDOWN| PGUP | END | | LEFT | DOWN | UP |RIGHT |]/LALT| + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * |F5/CAG|F6/~L1| |F7/~L1|F8/CAG| + * ,------|------|------| |------+--------+------. + * | | |F4/CA | |F11/CA| | | + * | ENTER| TAB |------| |------| BSPC | SPACE| + * | | |F3/SA | |F12/SA| | | + * `--------------------' `----------------------' + * CAG = CTRL-ALT-GUI + * CA = CTRL-ALT + * SA = SHIFT-ALT + * + */ +[BASE] = KEYMAP( + // left hand + KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NONUS_BSLASH, + LT(AUX, KC_F1), KC_DOT, KC_COMM,KC_SCLN,KC_P, KC_Y, MEH_T(KC_DEL), + CTL_T(KC_ESC), KC_A, KC_O, KC_E, KC_U, KC_I, + M(OBRACE), KC_SLSH,KC_Q, KC_J, KC_K, KC_X, KC_LGUI, + M(OBRACK), KC_HOME,KC_PGDN,KC_PGUP,KC_END, + LCAG_T(KC_F5), LT(AUX, KC_F6), + MT((MOD_LALT | MOD_LCTL), KC_F4), + KC_ENT,KC_TAB,MT((MOD_LALT | MOD_LSFT), KC_F3), + // right hand + KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, + KC_FN1, KC_F, KC_G, KC_C, KC_H, KC_L, ALL_T(KC_RBRACKET), + KC_D, KC_R, KC_T, KC_N, KC_S, CTL_T(KC_QUOTE), + KC_RALT, KC_B, KC_M, KC_W, KC_V, KC_Z, M(CBRACE), + KC_LEFT,KC_DOWN,KC_UP, KC_RGHT,M(CBRACK), + LT(AUX, KC_F7), LCAG_T(KC_F8), + MT((MOD_LALT | MOD_LCTL), KC_F11), + MT((MOD_LALT | MOD_LSFT), KC_F12),KC_BSPC, KC_SPC + ), +/* Keymap 1: Aux layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | SLEEP | PWR | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | < | > | MsUp | | | | | ~L0 | | 7 | 8 | 9 | * | `^ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | 4 | 5 | 6 | + | Ç | + * |--------+------+------+------+------+------| | |PSCR |------+------+------+------+------+--------| + * |CAPSLOCK| | | | | | | | | | 1 | 2 | 3 | / | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |CTRL-S|CTRL-Z|CTRL-X|CTRL-C|CTRL-V| | | . | 0 | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | Play | + * ,------|------|------| |------+------+------. + * | | | | | VolUp| | | + * | Lclk | Rclk |------| |------| Prev | Next | + * | | | L2 | | VolDn| | | + * `--------------------' `--------------------' + */ +[AUX] = KEYMAP( + // left hand + KC_NO , KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_SLEP, + KC_TRNS, KC_NONUS_BSLASH, LSFT(KC_NONUS_BSLASH), KC_MS_U, KC_NO, KC_NO, KC_NO, + KC_NO , KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO , + M(CAPS), KC_NO, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO, + LCTL(KC_S), LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), + KC_NO , KC_TRNS, + KC_NO, + KC_BTN1, KC_BTN2, TG(QWERTY), + // right hand + KC_PWR, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_NO, KC_7, KC_8, KC_9, KC_PAST, KC_LBRACKET, + KC_NO, KC_4, KC_5, KC_6, KC_PPLS, KC_BSLASH, + KC_PSCR, KC_NO, KC_1, KC_2, KC_3, KC_PSLS, KC_NO, + KC_NO ,KC_DOT, KC_0, KC_PEQL, KC_NO, + KC_TRNS, KC_MPLY, + KC_VOLU, + KC_VOLD, KC_MPRV, KC_MNXT +), +/* Keymap 2: QWERTY layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | \ | 1 | 2 | 3 | 4 | 5 | <> | | ¡ | 6 | 7 | 8 | 9 | 0 | ' | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | TRANS | Q | W | E | R | T |MEH_T | | TRANS| Y | U | I | O | P |ALL_T/+ | + * |--------+------+------+------+------+------| DEL | | |------+------+------+------+------+--------| + * |Esc/Ctrl| A | S | D | F | G |------| |------| H | J | K | L | Ñ |'/RCtrl | + * |--------+------+------+------+------+------| LGUI | | RALT |------+------+------+------+------+--------| + * | {/LSft | Z | X | C | V | B | | | | N | M | , | . | - | }/RSft | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |[/LALT| HOME |PGDOWN| PGUP | END | | LEFT | DOWN | UP |RIGHT |]/LALT| + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * |F5/CAG| TRANS| | TRANS|F8/CAG| + * ,------|------|------| |------+--------+------. + * | | |F4/CA | |F11/CA| | | + * | ENTER| TAB |------| |------| BSPC | SPACE| + * | | | TRANS| |F12/SA| | | + * `--------------------' `----------------------' + * CAG = CTRL-ALT-GUI + * CA = CTRL-ALT + * SA = SHIFT-ALT + * + */ +[QWERTY] = KEYMAP( + // left hand + KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NONUS_BSLASH, + KC_TRNS, KC_Q, KC_W, KC_E, KC_R, KC_T, MEH_T(KC_DEL), + CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, + M(OBRACE), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LGUI, + M(OBRACK), KC_HOME,KC_PGDN,KC_PGUP,KC_END, + LCAG_T(KC_F5), KC_TRNS, + MT((MOD_LALT | MOD_LCTL), KC_F4), + KC_ENT,KC_TAB,KC_TRNS, + // right hand + KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, + KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, ALL_T(KC_RBRACKET), + KC_H, KC_J, KC_K, KC_L, KC_SCLN,CTL_T(KC_QUOTE), + KC_RALT, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,M(CBRACE), + KC_LEFT,KC_DOWN,KC_UP, KC_RGHT,M(CBRACK), + KC_TRNS, LCAG_T(KC_F8), + MT((MOD_LALT | MOD_LCTL), KC_F11), + MT((MOD_LALT | MOD_LSFT), KC_F12),KC_BSPC, KC_SPC +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(AUX) // FN1 - Momentary Layer 1 (Aux) +}; + +static uint16_t key_timer; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case OBRACE: { + if (record->event.pressed) { + key_timer = timer_read(); + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + if (timer_elapsed(key_timer) < KEY_TAP_SLOW) { + register_code(KC_RALT); + register_code(KC_QUOTE); + unregister_code(KC_QUOTE); + unregister_code(KC_RALT); + } + } + break; + } + case CBRACE: { + if (record->event.pressed) { + key_timer = timer_read(); + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + if (timer_elapsed(key_timer) < KEY_TAP_SLOW) { + register_code(KC_RALT); + register_code(KC_BSLS); + unregister_code(KC_BSLS); + unregister_code(KC_RALT); + } + } + break; + } + case OBRACK: { + if (record->event.pressed) { + key_timer = timer_read(); + register_code(KC_LALT); + } else { + unregister_code(KC_LALT); + if (timer_elapsed(key_timer) < KEY_TAP_SLOW) { + register_code(KC_RALT); + register_code(KC_LBRACKET); + unregister_code(KC_LBRACKET); + unregister_code(KC_RALT); + } + } + break; + } + case CBRACK: { + if (record->event.pressed) { + key_timer = timer_read(); + register_code(KC_LALT); + } else { + unregister_code(KC_LALT); + if (timer_elapsed(key_timer) < KEY_TAP_SLOW) { + register_code(KC_RALT); + register_code(KC_RBRACKET); + unregister_code(KC_RBRACKET); + unregister_code(KC_RALT); + } + } + break; + } + case CAPS: { + if (record->event.pressed) { + register_code(KC_CAPSLOCK); + } else { + unregister_code(KC_CAPSLOCK); + } + 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 1: + ergodox_right_led_3_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } + + // Turn the caps lock led on + if (host_keyboard_leds() & (1<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/keyboards/ergodox_ez/keymaps/emacs_osx_dk/readme.md b/keyboards/ergodox_ez/keymaps/emacs_osx_dk/readme.md new file mode 100644 index 000000000..4839988d9 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/emacs_osx_dk/readme.md @@ -0,0 +1,10 @@ +# ErgoDox EZ Emacs-OSX-DeadKeys Configuration + +Since I'm an Emacs user, ctrl keys are very important and gets a placement where the usual caps_lock is. There +are an extra pair of ctrls, just in case there where problems with the holding one's, but not as comfortable. + +Gui button takes a predominant place on the thumb cluster, as I'm using a mac os x and it relies heavily on it. + +Finally there is also two Right Alts to easily access to accented letters of the spanish alphabet. + +![Default](default_highres.png) diff --git a/keyboards/ergodox_ez/keymaps/erez_experimental/Makefile b/keyboards/ergodox_ez/keymaps/erez_experimental/Makefile new file mode 100644 index 000000000..b673c5ce5 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/erez_experimental/Makefile @@ -0,0 +1,9 @@ +# Having a file like this allows you to override Makefile definitions +# for your own particular keymap + +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +COMMAND_ENABLE = no # Commands for debug and configuration + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/ergodox_ez/keymaps/erez_experimental/compiled.hex b/keyboards/ergodox_ez/keymaps/erez_experimental/compiled.hex new file mode 100644 index 000000000..c709537d6 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/erez_experimental/compiled.hex @@ -0,0 +1,1080 @@ +:100000000C945D020C94A1020C94A1020C94A10228 +:100010000C94A1020C94A1020C94A1020C94A102D4 +:100020000C94A1020C94A1020C94DB0D0C94AD0E67 +:100030000C94EA1C0C94A1020C94A1020C94A10251 +:100040000C94A1020C94A1020C94A1020C94A102A4 +:100050000C94A1020C94511D0C94A1020C94A102C9 +:100060000C94A1020C94A1020C94A1020C94A10284 +:100070000C94A1020C94A1020C94A1020C94A10274 +:100080000C94A1020C94A1020C94A1020C94A10264 +:100090000C94A1020C94A1020C94A1020C94A10254 +:1000A0000C94A1020C94A1020C94A102120F340F23 +:1000B0001F10340F1F10760F990F1F10EE0F011035 +:1000C000CD12CD12FC12FC1243136513BD14BD14E6 +:1000D0007013BD1417141714AE14BD14BD14B71447 +:1000E0002414241424142414241424142414241450 +:1000F0002414241424142414241424142414241440 +:10010000361443144A1451145B140000F0A100C8C3 +:1001100001C82E004C002A003370354100001E003B +:10012000140004001D6134004D001F001A00160069 +:100130001B00E104147020000800070006005000B6 +:100140002C0021001500090019004F004A00220070 +:1001500017000A000500000065645000015300000C +:100160002F6F0000E3004F000153000030670000D4 +:10017000E20023001C000B00110000002961240094 +:1001800018000D64100052004B0025000C000E00FA +:10019000360051002800260012000F0037002F0003 +:1001A0002B41270013003342386130004E002D00F0 +:1001B0003100346834702D4100000100010001005D +:1001C0000100010000003A0001001E0023000100B0 +:1001D00001003B0001001F002400010001003C0061 +:1001E0000100200025004B0101003D00010021001D +:1001F00026004E0101003E00010022002700000001 +:1002000001000100010000000100000001000100E8 +:10021000010000000100000001003F000100240275 +:10022000310200000100400001002D021F02010008 +:100230000100410001002D002E00010001004200DC +:1002400001001300220201000100430001002E0200 +:10025000010001000100440045000100010001000F +:100260000000010001000100010001000000010088 +:1002700001004B00010001000100010001004A00E3 +:10028000010001000100010001004D00010001001A +:100290000100010001004E00010001000100010009 +:1002A0000100010001000000010001000100000048 +:1002B0000100000001000100010000000100000039 +:1002C0000100010001000100010000000100010027 +:1002D000010001000100A90001000100010001006E +:1002E000AC00AA00B600010001000100AB00A800AC +:1002F00001000100010001000100010001000100F6 +:100300000100AE000100010000001603450072006C +:1003100067006F0044006F007800200045005A001D +:10032000000016034500720067006F0044006F0074 +:100330007800200045005A00000004030904090267 +:100340006D00040100A0FA0904000001030101008E +:100350000921110100012240000705810308000A5C +:100360000904010001030102000921110100012219 +:100370004D000705820308000A090402000103007A +:10038000000009211101000122360007058303083E +:10039000000A090403000103000000092111010003 +:1003A0000122390007058403100001120110010029 +:1003B000000008EDFE07130100010200010501091C +:1003C00006A101050719E029E71500250195087523 +:1003D000018102050819012905950575019102950C +:1003E000017503910105071900297715002501956D +:1003F0007875018102C005010980A10185021601FD +:100400000026B7001A01002AB70075109501810077 +:10041000C0050C0901A1018503160100269C021AE2 +:1004200001002A9C02751095018100C00501090296 +:10043000A1010901A10005091901290515002501DE +:10044000950575018102950175038101050109304A +:1004500009311581257F95027508810609381581B6 +:10046000257F950175088106050C0A38021581253E +:100470007F950175088106C0C005010906A1010527 +:100480000719E029E71500250195087501810295F6 +:100490000175088101050819012905950575019166 +:1004A000029501750391010507190029FF15002622 +:1004B000FF00950675088100C00011241FBECFEF14 +:1004C000DAE0DEBFCDBF04B603FE24C08091F401A4 +:1004D0009091F501A091F601B091F7018730904B12 +:1004E000A740B04BB9F41092F4011092F5011092AC +:1004F000F6011092F70114BE84B7877F84BF88E1AC +:100500000FB6F89480936000109260000FBEE0E098 +:10051000FFE3099511E0A0E0B1E0E6E3F3E402C0F7 +:1005200005900D92AA32B107D9F711E0AAE2B1E025 +:1005300001C01D92A43FB107E1F70E94270B0C9464 +:1005400099210C9400001092B9008AE08093B800C1 +:10055000089594EA9093BC009091BC0097FFFCCF63 +:100560009091B900987F983021F0903111F081E09E +:1005700008958093BB0084E88093BC008091BC0008 +:1005800087FFFCCF8091B900887F883111F08034DB +:1005900071F780E0089584E98093BC008091BC00ED +:1005A00084FDFCCF08958093BB0084E88093BC0059 +:1005B0008091BC0087FFFCCF9091B900987F81E0CB +:1005C000983209F480E0089584E88093BC0080911B +:1005D000BC0087FFFCCF8091BB00089580B38C7076 +:1005E00080BB81B3836F81BB08958091010181112C +:1005F00015C080E40E94A9028093010181110CC002 +:1006000082E10E94D30280930101811105C08FEF26 +:100610000E94D302809301010E94CB0284B1807FAB +:1006200084B985B1807F85B98AB1837F8AB98BB15E +:10063000837F8BB93E98469808950E94BC048093AE +:1006400001010E94F5020E94EE02E9E3F1E0ABE253 +:10065000B1E011921D9281E0E734F807D1F70C94D4 +:10066000A6040E94BC04809301010E94F5020E942E +:10067000EE02E9E3F1E0ABE2B1E011921D9281E01C +:10068000E734F807D1F70895BF92CF92DF92EF9247 +:10069000FF920F931F93CF93DF93809101018823E3 +:1006A00079F080912A018F5F80932A01811108C01F +:1006B0000E94BC0480930101811102C00E944E047B +:1006C0000BE211E0C0E0D0E0DD24D39482E0C82E3C +:1006D000EE24E394F12CC73000F5809101018111E3 +:1006E00062C080E40E94A90280930101811112C0BE +:1006F00082E10E94D3028093010181110BC0C701E6 +:100700000C2E01C0880F0A94EAF780950E94D3024C +:10071000809301010E94CB0246C0CA30A1F028F4A8 +:10072000C83059F0C93061F005C0CC3089F070F0A4 +:10073000CD3089F0209A289810C0219A29980DC0B0 +:10074000229A2A980AC0239A2B9807C0529A01C06D +:10075000539A5B9802C03E9A4698E0EAEA95F1F710 +:100760008FB179995AC092E081708D25892B7C9B3D +:1007700002C090E001C094E0892B7D9B02C090E014 +:1007800001C098E0892B7E9B02C090E001C090E1FF +:10079000892B9FB19095991F9927991F9295990F31 +:1007A000907E892B0FC08091010181114BC080E4A4 +:1007B0000E94A90280930101882389F1B12C0E9433 +:1007C000CB028B2DF8019081981719F08083C0928D +:1007D00000010E94F50221960F5F1F4FCE30D10518 +:1007E00009F079CF80910001882371F181508093C5 +:1007F0000001882339F08FE99FE00197F1F700C0ED +:10080000000022C0A9E3B1E0EBE2F1E081918D9319 +:1008100091E0E933F907D1F717C090E0A5CF83E164 +:100820000E94D302809301018111C8CF81E40E940C +:10083000A902809301018111C1CF0E94E402B82E68 +:10084000B094BDCF80E0BECF0E944C0481E0DF9128 +:10085000CF911F910F91FF90EF90DF90CF90BF90BD +:100860000895E82FF0E0E75CFE4F80810895089539 +:100870001F93CF93DF93C9E3D1E010E0899190E01B +:100880000E944D1C180F81E0C734D807B9F7812F9B +:10089000DF91CF911F9108950C940F0556985E98A3 +:1008A00025982D9826982E9827982F988FEF90E0CE +:1008B000909389008093880090938B0080938A00A6 +:1008C00090938D0080938C00259A2D9A2FEF80E7CE +:1008D00092E0215080409040E1F700C00000269A4D +:1008E0002E9A2FEF80E792E0215080409040E1F770 +:1008F00000C00000279A2F9A2FEF80E792E0215046 +:1009000080409040E1F700C0000025982D982FEF1F +:1009100080E792E0215080409040E1F700C0000065 +:1009200026982E982FEF80E792E02150804090404B +:10093000E1F700C0000027982F9856985E982598F8 +:100940002D9826982E9827982F98089589EA8093B5 +:10095000800089E08093810024982C983F988AB188 +:100960008F748AB96E98479A8BB1806B8BB9769ADF +:100970000E944E040C940E0580E280930101809148 +:10098000470181110EC00E94A30281E080934701BC +:100990002FEF83ED90E3215080409040E1F700C0BD +:1009A000000080E40E94A9028093010181112EC001 +:1009B0000E94D30280930101811128C00E94D302BA +:1009C00080930101811122C08FE30E94D3028093A2 +:1009D000010181111BC00E94CB0280E40E94A90288 +:1009E00080930101811112C08CE00E94D302809398 +:1009F000010181110BC00E94D3028093010181117A +:100A000005C08FE30E94D302809301010E94CB02B4 +:100A100080910101089580E090E00895089560912B +:100A2000B4017091B5018091B6019091B7010E9417 +:100A3000591C56985E9825982D9826982E98279898 +:100A40002F98813029F0823029F4269A2E9A02C0FC +:100A5000259A2D9A80915401882309F450C08091E1 +:100A60005201909153010E94281D8D32914008F44B +:100A700046C0109254010E94870580914C019091CC +:100A80004D014A97C1F480914E0190914F01892BFD +:100A900091F48091500190915101892B61F482EE83 +:100AA0000E9479118DE30E9479118DE30E94361224 +:100AB00082EE0E94361280914C0190914D01429736 +:100AC000F1F480914E0190914F01892BC1F48091F6 +:100AD000500190915101892B91F480EE0E9479117F +:100AE00081EE0E94791182E10E94791182E10E94D7 +:100AF000361281EE0E94361280EE0C943612089562 +:100B000081E0089581E008950C9482050895089588 +:100B1000282F882339F090E02A3010F44D9608955C +:100B20000697089587E290E00895BF92CF92DF92F2 +:100B3000EF92FF920F931F93CF93DF938C01FC01F1 +:100B4000C081D181CE010E94561ABE010E94DD08EB +:100B5000EC01B8010E948405882309F4A3C1F801BF +:100B600082818823C9F18091540181111EC0C43152 +:100B7000F0E7DF0789F50E94860581E08093540144 +:100B80000E941C1D909353018093520110924B01BF +:100B900010924D0110924C0110924F0110924E0193 +:100BA00010925101109250017DC18091520190919B +:100BB00053010E94281D883C910570F480914B01DF +:100BC000E82FF0E0EE0FFF1FE45BFE4FD183C08300 +:100BD0008F5F80934B0166C1C13020E8D20708F4D3 +:100BE00051C0F8018281882309F44CC06E01E89459 +:100BF000D7F880914A01813079F050F08230C1F409 +:100C000082EE0E94791187E50E94791187E50EC076 +:100C100082EE0E9479110CC080EE0E94791181EE63 +:100C20000E94791188E10E94791188E10E943612B0 +:100C30008CE0E82EF12CC6010E2C02C0969587950B +:100C40000A94E2F78F700E948805B82E0E947911ED +:100C50008B2D0E943612F4E0EF1AF1082CEFE21609 +:100C60002FEFF20641F780914A01813029F010F010 +:100C7000823041F482EE04C080EE0E94361281EE92 +:100C80000E943612C43180E7D80760F4C23090E782 +:100C9000D90780F5C115E0E7DE0771F0C130D04714 +:100CA000F1F0EFC0C33320E7D20709F4BEC0C4336C +:100CB000D04709F4CEC0E5C0F8018281882309F449 +:100CC000E5C00E942915FFEF24E38CE0F15020409D +:100CD0008040E1F700C000000E94761DE3C0F801EB +:100CE0008281882309F4D2C08091D60181608093EB +:100CF000D601D8C0F8018281882309F4C7C00E94B8 +:100D0000D11D811102C00E94B71D0E94E41D90E018 +:100D10009093E6018093E501C230F0E7DF0721F40C +:100D20008091E50181607AC0C33020E7D20721F4C9 +:100D30008091E501826072C0C43080E7D80721F459 +:100D40008091E50184606AC0C53090E7D90719F445 +:100D50008091E50127C0C630E0E7DE0721F48091ED +:100D6000E50180615BC0C730F0E7DF0721F48091C7 +:100D7000E501806253C0C83020E7D20721F480919A +:100D8000E50180644BC0C93080E7D80721F4809129 +:100D9000E501806843C0CA3090E7D90729F4809103 +:100DA000E501846088603AC0CB30E0E7DE0721F4DB +:100DB0008091E5018E7F32C0CC30F0E7DF0721F46F +:100DC0008091E5018D7F2AC0CD3020E7D20721F444 +:100DD0008091E5018B7F22C0CE3080E7D80719F4DF +:100DE0008091E5011AC08091E501CF3090E7D907E5 +:100DF00011F48F7E13C0C031E0E7DE0711F48F7D60 +:100E00000DC0C131F0E7DF0711F48F7B07C0C2319D +:100E1000D04711F48F7702C08B7F877F8093E501E5 +:100E20008091E5010E94E81D3DC0F8018281882380 +:100E300021F01092480182E013C080914801811195 +:100E400006C086E20E94791186E20E94361282E094 +:100E500015C0F8018281882331F01092490180E2A7 +:100E60000E9485121FC080914901811106C087E24E +:100E70000E94791187E20E94361280E20E948C1251 +:100E800011C081E08093480180934901C801DF913E +:100E9000CF911F910F91FF90EF90DF90CF90BF9077 +:100EA0000C94800580E0DF91CF911F910F91FF900E +:100EB000EF90DF90CF90BF90089526E0729FF001F1 +:100EC000112444E5849FE00DF11D1124E60FF11D6E +:100ED000EE0FFF1FEE5EFE4F859194910E94EF088A +:100EE000811520E49207B0F5811540E3940708F0DE +:100EF000DDC0803E9105D8F4803C910508F06BC0C0 +:100F0000883A910578F4853A910508F06AC08130F5 +:100F1000910509F450C108F40DC18430910508F021 +:100F20004AC108C18B3B910508F466C003C18F3FDD +:100F3000910509F048F4803F910508F0ACC0883E67 +:100F4000910508F438C1F6C0811520E2920708F037 +:100F5000A4C00895811543E5940790F4811522E516 +:100F6000920708F0C7C0811541E5940708F0BDC09D +:100F7000811520E5920708F09CC09F70906A089543 +:100F8000811545E59407D0F4811524E5920708F012 +:100F9000C6C0282F2695269540E2249F9001112453 +:100FA000AC014370552781E090E002C0880F991F83 +:100FB0004A95E2F7822B932B9A680895811546E5AE +:100FC000940708F4B1C09C0130562115304108F057 +:100FD000B1C09F70ADC0FC01EE0FFF1FE657F0409F +:100FE00062C0853A910509F4A8C0863A910509F4D2 +:100FF000A7C083E890E40895883A910509F4A3C056 +:10100000893A910509F4A2C08A3A910509F4A1C070 +:101010008B3A910509F4A0C08C3A910509F49FC060 +:101020008D3A910509F49EC0803B910509F49DC05D +:101030008E3A910509F49CC08F3A910509F49BC042 +:10104000813B910509F49AC0823B910509F499C04E +:10105000833B910509F498C0843B910509F497C03E +:10106000853B910509F496C0863B910509F495C02E +:10107000873B910509F494C0883B910509F493C01E +:10108000893B910509F492C08A3B910509F091C012 +:101090008AE296E40895906508959F70880F991FDD +:1010A000865F9E4FFC018591949108959927906CDD +:1010B0000895482F437021E030E002C0220F331F13 +:1010C0004A95E2F73C68AC0164E0569547956A950D +:1010D000E1F74370342B8F708695869540E2849FAC +:1010E000C0011124822B932B0895982F8827816F9C +:1010F000906A0895282F2695269540E2249F900116 +:101100001124AC014370552781E090E002C0880FA4 +:10111000991F4A95E2F7822B932B9C680895982F8C +:101120008827846F906A08958F719927982F882750 +:101130009062089580E090E0089581E890E4089539 +:1011400082E890E4089582EE94E4089589EE94E4B0 +:1011500008958AEE94E4089585EB94E4089586EB6F +:1011600094E4089587EB94E408958CEC94E4089556 +:101170008DEC94E4089583E895E408958AE895E475 +:10118000089582E995E4089584E995E4089581E25B +:1011900096E4089583E296E4089584E296E408953F +:1011A00085E296E4089586E296E4089587E296E45F +:1011B000089580E094E40895089596E0799FF00101 +:1011C000112494E5899FE00DF11D1124E60FF11D16 +:1011D000EE0FFF1FEE5EFE4F8591949108958238C9 +:1011E000910549F1B0F48133910509F459C048F4EF +:1011F0008932910509F44FC08A32910509F455C02E +:1012000008958533910509F441C08933910599F01A +:101210000895833E910531F138F4803E910591F0B7 +:10122000823E9105A9F00895863E910501F1873E21 +:10123000910539F108952091E50120FD3BC021FD84 +:1012400039C008958091E50180FF34C089E341C031 +:101250008091E50182FF32C08091E50184FF2CC0BE +:1012600080E037C08091E50182FD28C0F5CF8091F4 +:10127000E50183FF25C08091E50184FDF1CF87EE74 +:1012800028C08091E50183FD1BC0F5CF8091E50169 +:1012900085FF18C019C08091E50185FF15C012C0F7 +:1012A0008091E50186FF12C013C08091E50186FFA1 +:1012B0000FC00CC080EE0DC083EE0BC082EE09C0E3 +:1012C00086EE07C085E305C089E203C081E301C063 +:1012D0008AE290E0089508950C946B09809165016D +:1012E0000895CF93DF9300D01F92CDB7DEB7209142 +:1012F000EB01243019F523E029839B838A83209313 +:10130000E9008FEF9091E800815095FD06C095EDC2 +:101310009A95F1F700008111F5CF8091E80085FFE3 +:101320000DC040E050E063E070E0CE0101960E9405 +:10133000CE0B8091E8008E778093E8000F900F909D +:101340000F90DF91CF910895CF93DF9300D01F923C +:10135000CDB7DEB72091EB01243021F522E02983BF +:101360009B838A8383E08093E9008FEF9091E8006C +:10137000815095FD06C095ED9A95F1F70000811119 +:10138000F5CF8091E80085FF0DC040E050E063E0BC +:1013900070E0CE0101960E94CE0B8091E8008E771E +:1013A0008093E8000F900F900F90DF91CF910895F8 +:1013B0002091EB012430F1F422E02093E9002FEF9B +:1013C0003091E800215035FD06C035ED3A95F1F732 +:1013D00000002111F5CF2091E80025FF0BC040E06F +:1013E00050E065E070E00E94CE0B8091E8008E77BF +:1013F0008093E8000895CF93DF93EC018091EB0197 +:10140000843009F046C090910C019923D9F0909155 +:101410000D019923B9F08093E9008FEF9091E800D6 +:10142000815095FD06C095E19A95F1F70000811174 +:10143000F5CF8091E80085FF2CC040E050E060E1EE +:1014400070E017C081E08093E9008FEF9091E80091 +:10145000815095FD06C095ED9A95F1F70000811138 +:10146000F5CF8091E80085FF14C040E050E068E0CF +:1014700070E0CE010E94CE0B8091E8008E778093C1 +:10148000E80080E1FE01A5E5B1E001900D928A95AA +:10149000E1F7DF91CF9108958091EA01811109C0B0 +:1014A0000E94600D0E94BD0D8091E20084608093D7 +:1014B000E20008951092EA010895089508950C94A9 +:1014C000E41C42E061EC81E00E94DA0C42E061EC55 +:1014D00082E00E94DA0C42E061EC83E00E94DA0CC8 +:1014E00042E161EC84E00C94DA0C8091ED018330F0 +:1014F00009F455C030F4813071F0823009F48EC0A7 +:1015000008958A3009F47AC08B3009F460C08930BC +:1015100009F09CC020C08091EC01813A09F096C08E +:101520008091E800877F8093E8008091F00190919E +:10153000F101892B21F060E080E090E003C060E1E0 +:1015400085E591E070E00E94170C8091E8008B77B0 +:101550008093E80008958091EC01813209F076C013 +:101560008091F0019091F101009719F0039709F033 +:101570006DC08091E800877F8093E8008091E8004B +:1015800082FD05C08091EB018111F8CF5FC0809191 +:10159000F100809365018091E8008B7753C08091C2 +:1015A000EC01813A09F052C08091F0019091F10173 +:1015B000892B09F04BC08091E800877F8093E80079 +:1015C0008091E80080FFFCCF80910C0136C08091B3 +:1015D000EC018132D9F58091F0019091F101892BD4 +:1015E000A9F58091E800877F8093E8000E940F0DA5 +:1015F0008091EE0180930C010C9429158091EC01EF +:10160000813221F58091E800877F8093E8000E9475 +:101610000F0D8091EF018093660108958091EC0198 +:10162000813AA1F48091E800877F8093E80080915F +:10163000E80080FFFCCF809166018093F1008091EB +:10164000E8008E778093E8000C940F0D089584B71E +:10165000877F84BF88E10FB6F89480936000109272 +:1016600060000FBE80E880936100109261000E94CC +:10167000A9100E94600D0E94BD0D8091E20084605F +:101680008093E20078940E9438100E94AB1082E0B0 +:1016900091E00E9455108091EB01853069F40E9421 +:1016A000AC1C8091E9018823B1F30E94D61C8823E9 +:1016B00091F30E94B80BEFCF0E94B110ECCF292F0D +:1016C000332723303105A9F06CF42130310509F4BA +:1016D00042C02230310509F043C08DE690E02EE390 +:1016E00033E042C021323105C9F02232310519F10F +:1016F00037C099278130910541F08230910541F042 +:10170000892B71F5EAE3F3E005C0E2E2F3E002C001 +:10171000EAE0F3E0849190E09F0126C0643000F598 +:10172000E62FF0E0EE0FFF1FEE5DFE4F20813181CE +:1017300089E090E019C0643098F4E62FF0E0DF0112 +:10174000AA0FBB1FA65EBE4F2D913C91EA5EFE4FD5 +:10175000808190E009C082E190E02BEA33E004C090 +:1017600080E090E020E030E0FA01318320830895AA +:1017700080E189BD82E189BD09B400FEFDCF809181 +:10178000D8008F7D8093D8008091E00082608093A4 +:10179000E0008091E00081FDFCCF0895CF92DF92C0 +:1017A000EF92FF920F931F93CF93DF937C018B01F6 +:1017B000EA010E94300D811131C0209731F08881FB +:1017C0009981081B190BE80EF91EC12CD12C0115AB +:1017D000110519F18091E80085FD14C08091E800A1 +:1017E0008E778093E800209741F0888199818C0D55 +:1017F0009D1D9983888385E011C00E94300D882348 +:1018000031F30CC0F70181917F018093F100015009 +:101810001109FFEFCF1ADF0ADACF80E0DF91CF9115 +:101820001F910F91FF90EF90DF90CF90089520913E +:10183000F2013091F3012617370748F06115710561 +:1018400039F42091E8002E772093E80001C0B90117 +:10185000FC0120E061157105B9F18091EB0188234D +:1018600009F440C0853009F43FC08091E80083FD51 +:101870003DC08091E80082FF06C08091E80082FFB1 +:1018800026C080E008958091E80080FFE3CF20919A +:10189000F3008091F20090E0922B6115710551F0F8 +:1018A0008830910538F421912093F100615071093D +:1018B0000196F3CF21E0089709F020E08091E8003D +:1018C0008E778093E800C6CF2111C7CFD6CF809105 +:1018D000EB01882339F0853039F08091E80083FFEF +:1018E000CCCF04C082E0089583E0089581E008959C +:1018F0002091F2013091F3012617370748F0611566 +:10190000710539F42091E8002E772093E80001C09A +:10191000B901FC0120E061157105C1F18091EB0175 +:10192000882309F441C0853009F440C08091E80063 +:1019300083FD3EC08091E80082FF06C08091E800F0 +:1019400082FF27C080E008958091E80080FFE3CF08 +:101950002091F3008091F20090E0922B61157105C7 +:1019600059F08830910540F424912093F10031968C +:10197000615071090196F2CF21E0089709F020E04B +:101980008091E8008E778093E800C5CF2111C6CF03 +:10199000D5CF8091EB01882339F0853039F08091E3 +:1019A000E80083FFCBCF04C082E0089583E0089570 +:1019B00081E00895982F973058F59093E900981793 +:1019C00039F07091EC002091ED005091F00003C0CF +:1019D000242F762F50E021FF19C03091EB003E7F7D +:1019E0003093EB003091ED003D7F3093ED0030916E +:1019F000EB0031603093EB007093EC002093ED002E +:101A00005093F0002091EE0027FF07C09F5FD3CFD7 +:101A10008F708093E90081E0089580E008958091BF +:101A2000EC0187FD05C08091E80080FF0EC012C068 +:101A30008091E80082FD05C08091EB018111F8CF13 +:101A400008958091E8008B7708C08091EB018111A7 +:101A5000EACF08958091E8008E778093E80008959A +:101A60008091E4009091E50045E62091EC0020FF94 +:101A700021C02091E80020FD21C02091EB0122230C +:101A800089F0253089F02091EB0025FD0FC02091D1 +:101A9000E4003091E5002817390739F3415041F04F +:101AA000C901E3CF82E0089583E0089581E00895BD +:101AB00084E008952091E80022FFDFCF80E00895C0 +:101AC0000E94CE0D0E94D60DE0EEF0E08081816094 +:101AD0008083E8EDF0E080818F77808319BCA7EDEB +:101AE000B0E08C918E7F8C9380818F7E808310926A +:101AF000EA0108950F931F93CF93DF930E94CE0DB9 +:101B00000E94D60DC8EDD0E088818F7788838881C8 +:101B10008068888388818F7D888319BC1092EB014F +:101B20001092E7011092E9011092E80100EE10E036 +:101B3000F80180818B7F808388818160888342E087 +:101B400060E080E00E94DA0CE1EEF0E080818E7FC0 +:101B50008083E2EEF0E08081816080838081886014 +:101B60008083F80180818E7F808388818061888373 +:101B7000DF91CF911F910F910895E8EDF0E0808102 +:101B80008F7E8083E7EDF0E080818160808384E058 +:101B900082BF81E08093EA010C947A0DE8EDF0E0D9 +:101BA00080818E7F80831092E20008951092DA0087 +:101BB0001092E10008951F920F920FB60F92112418 +:101BC0002F933F934F935F936F937F938F939F9345 +:101BD000AF93BF93EF93FF938091E10082FF0BC01F +:101BE0008091E20082FF07C08091E1008B7F8093AB +:101BF000E1000E9437108091DA0080FF1FC08091C1 +:101C0000D80080FF1BC08091DA008E7F8093DA00BD +:101C10008091D90080FF0DC080E189BD82E189BD3E +:101C200009B400FEFDCF81E08093EB010E944C0AD5 +:101C300005C019BC1092EB010E945A0A8091E10084 +:101C400080FF19C08091E20080FF15C08091E20002 +:101C50008E7F8093E2008091E20080618093E200B9 +:101C60008091D80080628093D80019BC85E0809371 +:101C7000EB010E945E0A8091E10084FF30C08091F8 +:101C8000E20084FF2CC080E189BD82E189BD09B4F6 +:101C900000FEFDCF8091D8008F7D8093D800809189 +:101CA000E1008F7E8093E1008091E2008F7E80933F +:101CB000E2008091E20081608093E2008091E70180 +:101CC000882311F084E007C08091E30087FF02C001 +:101CD00083E001C081E08093EB010E945F0A809164 +:101CE000E10083FF29C08091E20083FF25C080913D +:101CF000E100877F8093E10082E08093EB01109206 +:101D0000E7018091E1008E7F8093E1008091E20005 +:101D10008E7F8093E2008091E20080618093E200F8 +:101D200042E060E080E00E94DA0C8091F000886080 +:101D30008093F0000E945D0AFF91EF91BF91AF91F7 +:101D40009F918F917F916F915F914F913F912F91D3 +:101D50000F900FBE0F901F9018951F920F920FB605 +:101D60000F9211242F933F934F935F936F937F9321 +:101D70008F939F93AF93BF93CF93EF93FF93C091B4 +:101D8000E900CF708091EC001092E9008091F000A2 +:101D9000877F8093F00078940E94E90E1092E9000A +:101DA0008091F00088608093F000C093E900FF917B +:101DB000EF91CF91BF91AF919F918F917F916F9153 +:101DC0005F914F913F912F910F900FBE0F901F90F9 +:101DD00018951F93CF93DF93CDB7DEB7AA970FB6B1 +:101DE000F894DEBF0FBECDBFECEEF1E08091F100C4 +:101DF000819321E0E43FF207C9F70E94750A8091C0 +:101E0000E80083FF1CC12091EC013091ED01832F8C +:101E100090E08A30910508F012C1FC01EA5AFF4FA8 +:101E20000C944921203881F0223809F008C18091B2 +:101E3000F0018F708093E9008091EB0085FB88278B +:101E400080F91092E90006C08091E8019091E901C3 +:101E5000911182609091E800977F9093E8008093C1 +:101E6000F1001092F100C5C0822F8D7F09F0E7C00C +:101E7000222319F0223061F0E2C08091EE0181301E +:101E800009F0DDC0333009F080E08093E90128C01B +:101E90008091EE01811124C02091F0012F7009F48E +:101EA000CEC02093E9008091EB0080FF19C08091A3 +:101EB000EB00333011F4806211C080618093EB003D +:101EC00081E090E0022E01C0880F0A94EAF7809327 +:101ED000EA001092EA008091EB0088608093EB00AA +:101EE0001092E9008091E800877F86C02111A7C089 +:101EF0001091EE011F778091E3008078812B809311 +:101F0000E3008091E800877F8093E8000E940F0D36 +:101F10008091E80080FFFCCF8091E300806880938F +:101F2000E300112311F083E001C082E08093EB0114 +:101F300086C02058223008F082C08091EE01909136 +:101F4000EF018C3D23E0920779F583E08A838AE2F2 +:101F500089834FB7F894DE01139620E03EE051E20A +:101F6000E32FF0E050935700E49120FF03C0E29587 +:101F7000EF703F5FEF708E2F90E0EA3010F0C79661 +:101F800001C0C0968D939D932F5F243149F74FBFB9 +:101F90008091E800877F8093E8006AE270E0CE01DC +:101FA00001960E94170C14C0AE014F5F5F4F609105 +:101FB000F0010E945F0B009709F441C02091E800F6 +:101FC000277F2093E800BC0189819A810E94780CC8 +:101FD0008091E8008B778093E80031C0203879F554 +:101FE0008091E800877F8093E8008091E7018093EB +:101FF000F1008091E8008E778093E8000E940F0D39 +:102000001EC021111CC09091EE019230C0F480914D +:10201000E800877F8093E8009093E7010E940F0D0E +:102020008091E701811104C08091E30087FF02C025 +:1020300084E001C081E08093EB010E94610A8091FD +:10204000E80083FF0AC08091E800877F8093E80062 +:102050008091EB0080628093EB00AA960FB6F89413 +:10206000DEBF0FBECDBFDF91CF911F9108950895C0 +:10207000CF938091EB018823B1F08091E9008F70BC +:102080009091EC0090FF02C090E801C090E0C92F51 +:10209000C82B1092E9008091E80083FD0E94E90EB0 +:1020A000CF70C093E900CF91089590936C01809315 +:1020B0006B010895E0916B01F0916C01309721F074 +:1020C0000190F081E02D099480E00895E0916B018A +:1020D000F0916C01309721F00280F381E02D09949A +:1020E0000895E0916B01F0916C01309721F004802C +:1020F000F581E02D099408952091690130916A01DC +:102100008217930771F090936A0180936901E091BF +:102110006B01F0916C01309721F00680F781E02D82 +:1021200009940895209167013091680182179307FF +:1021300071F09093680180936701E0916B01F091D9 +:102140006C01309721F00084F185E02D0994089509 +:1021500008950C94A8100E94131D0E941D030C9456 +:10216000991D9F92AF92BF92CF92DF92EF92FF9212 +:102170000F931F93CF93DF9300D000D000D0CDB743 +:10218000DEB70E9444038CE7E82E81E0F82E0DE0D4 +:1021900010E0CC24C394D12C902E802F0E943104C7 +:1021A000F701B2907F01B826A1F401501109A0F700 +:1021B0008FEF89838A831B820E941C1D8160782F88 +:1021C0009D838C8349815A816B818D810E944B1143 +:1021D00031C09091D60191FF04C08E830E943704D4 +:1021E0008E8125E030E0A601022E01C0440F0A9442 +:1021F000EAF7A42E4B21D1F029839A828A2191E01B +:1022000009F490E09B830E941C1D8160782F9D83C0 +:102210008C8349815A816B818D810E944B11F80119 +:10222000E259FE4F80818A25808304C02150310904 +:10223000D0F6BBCF0E94661F10916D010E945A100C +:102240001817B9F00E945A1080936D0126960FB6A8 +:10225000F894DEBF0FBECDBFDF91CF911F910F91DC +:10226000FF90EF90DF90CF90BF90AF909F900C9435 +:102270006C0926960FB6F894DEBF0FBECDBFDF9176 +:10228000CF911F910F91FF90EF90DF90CF90BF9073 +:10229000AF909F900895CF93DF93CDB7DEB72B9784 +:1022A0000FB6F894DEBF0FBECDBF4F835887698746 +:1022B0007A878B87DE01119686E0FD0111928A955F +:1022C000E9F785E0FE01379601900D928A95E1F7D6 +:1022D00049815A816B817C818D819E810E94F91791 +:1022E0002B960FB6F894DEBF0FBECDBFDF91CF9116 +:1022F0000895882309F4B9C0823859F40E945A100D +:1023000081FDB3C089E30E94401B0E94171C89E332 +:102310000CC0833871F40E945A1080FDA6C083E57A +:102320000E94401B0E94171C83E50E94801B0C9496 +:10233000171C843859F40E945A1082FD96C087E415 +:102340000E94401B0E94171C87E4EFCF9CEF980F60 +:10235000913A18F40E94401BEACF90E2980F98300F +:1023600050F4877091E001C0990F8A95EAF7892FA0 +:102370000E94C41BDCCF9BE5980F933070F4853A24 +:1023800029F0863A31F482E890E005C081E890E0D7 +:1023900002C083E890E00C947C1098E5980F93318C +:1023A00008F063C0883A39F1893A41F18A3A49F133 +:1023B0008B3A51F18C3A59F18D3A61F1803B69F1D8 +:1023C0008E3A71F18F3A79F1813B81F1823B89F14B +:1023D000833B91F1843B99F1853BA1F1863BA9F1C7 +:1023E000873BB1F1883BB9F1893BC1F18A3BC9F523 +:1023F0008AE292E038C082EE90E035C089EE90E04B +:1024000032C08AEE90E02FC085EB90E02CC086EBC6 +:1024100090E029C087EB90E026C08CEC90E023C0D0 +:102420008DEC90E020C083E891E01DC08AE891E047 +:102430001AC082E991E017C084E991E014C081E2FA +:1024400092E011C083E292E00EC084E292E00BC001 +:1024500085E292E008C086E292E005C087E292E061 +:1024600002C080E090E00C9492100895882309F453 +:102470004BC0823859F40E945A1081FF45C089E34D +:102480000E94401B0E94171C89E30CC0833871F422 +:102490000E945A1080FF38C083E50E94401B0E94B2 +:1024A000171C83E50E94801B0C94171C843859F478 +:1024B0000E945A1082FF28C087E40E94401B0E949D +:1024C000171C87E4EFCF9CEF980F913A58F390E2F6 +:1024D000980F983050F4877091E001C0990F8A9559 +:1024E000EAF7892F0E94CA1BDFCF9BE5980F933034 +:1024F00020F480E090E00C947C10885A833120F422 +:1025000080E090E00C9492100895882321F00E94BE +:10251000C41B0C94171C0895882321F00E94CA1B29 +:102520000C94171C08958F929F92AF92BF92CF92F6 +:10253000DF92EF92FF920F931F93CF93DF934C01A3 +:10254000A62EC72FFC01E280D581D295DF700E94B4 +:10255000DB1A882319F082E00E941E1BE1100E9402 +:10256000E11B0E94391B882379F0EE2069F080E29C +:102570008A0D883048F082E00E941E1B0E94391BA1 +:10258000BB24B394B82601C0B12CEC2FE295EF70B8 +:10259000F0E0E05AFF4F0C9449218C2F807F1C2FD4 +:1025A0001F70882311F01295107FEE2089F01123FF +:1025B00009F4C9C180E28A0D883020F4812F0E947D +:1025C000C41B03C0812F0E94D41B0E94171CBBC1D7 +:1025D0008A2D0E943612112309F4CFC180E28A0DA0 +:1025E000883020F4812F0E94CA1B03C0812F0E94D3 +:1025F000DA1B0E94171CC1C18C2F807F1C2F1F70FB +:10260000803211F01295107FAA2021F0F1E0AF1670 +:1026100039F12FC0EE2091F0DD2309F41DC1D13036 +:1026200021F4812F0E94F41BA8C1D23009F014C1FB +:102630000E94FD1B812F0E94A81A0EC1DD2369F0A4 +:10264000D13041F40E94C11B812309F496C10E943C +:10265000AB1A03C0D23009F490C10E94FD1B02C125 +:10266000EE2021F0D23008F088C1F6C0D11185C12A +:10267000F9C0EE2021F0DD2309F4EEC064C1DD23B2 +:1026800009F4F0C067C12C2F26952695237030E001 +:102690002115310521F02130310561F06EC1EE20A8 +:1026A00021F08A2D9C2F937002C080E090E00E9460 +:1026B0007C1063C1EE2021F08A2D9C2F937002C004 +:1026C00080E090E00E94921058C18A2DEE2019F00F +:1026D0000E946E1E02C00E94D61E0E945B1F4DC14A +:1026E0008C2F837009F04EC0E11047C12A2D22952E +:1026F00026952770220F220F8A2D8F70C82ED12C7D +:10270000E12CF12C022E04C0CC0CDD1CEE1CFF1CB5 +:102710000A94D2F7A4FE10C06FE070E080E090E071 +:1027200004C0660F771F881F991F2A95D2F76095FE +:1027300070958095909503C060E070E0CB012C2FE0 +:1027400026952695237030E02230310569F023303C +:10275000310589F06C297D298E299F292130310589 +:1027600071F00E944D1909C16C297D298E299F297C +:102770000E94671902C10E944D19C701B6010E944B +:102780003319FBC0EE2019F08C2F817001C08695A3 +:10279000882309F4F2C02A2D229526952770220F4E +:1027A000220F8A2D8F70C82ED12CE12CF12C022EF5 +:1027B00004C0CC0CDD1CEE1CFF1C0A94D2F7A4FE56 +:1027C00010C06FE070E080E090E004C0660F771FFB +:1027D000881F991F2A95D2F76095709580959095DE +:1027E00003C060E070E0CB012C2F26952695237066 +:1027F00030E02230310569F02330310589F06C2951 +:102800007D298E299F292130310571F00E94211ADE +:10281000B4C06C297D298E299F290E943B1AADC026 +:102820000E94211AC701B6010E94071AA6C00A2DEC +:1028300010E0F801E05EF109E531F10508F07EC035 +:10284000E059FF4F0C9449211A2D1F708C2F8F7166 +:10285000EE2031F00E94A019812F0E9485128DC0B8 +:102860000E94C119812F0E948C1287C0EE2039F07E +:10287000D11183C08C2F8F710E94E6197EC0D23097 +:1028800008F07BC0F7CFEE2039F08C2F8F710E94BB +:10289000A01973C0EE20C9F38C2F8F710E94C1194B +:1028A0006CC0EE2029F08C2F8F710E948B1965C0AF +:1028B0000E94811962C0EE20B9F00E94A51A0E9400 +:1028C000CA1B0E94D71A843029F40E94171B8C2F30 +:1028D0008F7164C0D23008F06FC0CF718C2F0E940E +:1028E000A01963E08C2F0DC00E94A51A0E94C41B82 +:1028F000D230A8F00E94171B0E94AB1A64E08C2F04 +:102900008F71DF91CF911F910F91FF90EF90DF902A +:10291000CF90BF90AF909F908F900C94071B81E059 +:10292000DF91CF911F910F91FF90EF90DF90CF90AB +:10293000BF90AF909F908F900C941E1BEE2039F0AB +:10294000DD2309F4A2CF8A2D0E94791116C0DD2360 +:1029500009F4A2CF8A2D0E9436120FC04C2F4F705F +:102960006A2DC4010E940B050E94A61806C04C2FB8 +:102970004F706A2DC4010E94DC08BB20E9F00E9460 +:10298000D71A80FD19C0F40112820E94D11A0E9448 +:10299000A019C4010E94E9140E94D11ADF91CF91BD +:1029A0001F910F91FF90EF90DF90CF90BF90AF906D +:1029B0009F908F900C94C119DF91CF911F910F912F +:1029C000FF90EF90DF90CF90BF90AF909F908F904F +:1029D00008950F931F93CF93DF93EC0128813981E2 +:1029E0008B819C81892B31F03F3F11F080E003C047 +:1029F0002F3FE1F781E0811113C0CE010E949505C0 +:102A0000882371F0688179818A810E94A11A8C01E2 +:102A10000E94551A0E942819B801CE010E949312F3 +:102A2000DF91CF911F910F9108950E94E11B0E94A9 +:102A3000F11B0E94B31B0E94171C0E9407200E94DA +:102A40005B1F80E090E00E947C1080E090E00C949E +:102A500092100E94D11B0C9415150E94961A292FD2 +:102A600022952F7030E02C3031054CF42A3031059E +:102A70006CF42250310922303105B0F407C02C30FB +:102A8000310571F02F30310559F00EC0803F31F023 +:102A900018F4803E48F402C0843F31F481E0089588 +:102AA00093FB882780F9089580E00895CF93DF9302 +:102AB00000D000D01F92CDB7DEB70F900F900F90CF +:102AC0000F900F90DF91CF910895CF93DF9300D0B7 +:102AD00000D000D0CDB7DEB726960FB6F894DEBF93 +:102AE0000FBECDBFDF91CF9108951F93CF93DF939A +:102AF000C0917C0116E080917D01C81799F0D0E06B +:102B00001C9FF0011D9FF00D1124E258FE4F4081E3 +:102B1000518162817381848195810E94651521961E +:102B2000C770E9CFDF91CF911F9108954091AE0119 +:102B30005091AF016091B0017091B1018091B201EB +:102B40009091B3010C946515CF938091B301829558 +:102B50008F7009F05FC08091B001882309F45AC0DA +:102B600020917C01A0917D016091AE017091AF0137 +:102B70008091B1019091B20131E06F3F09F030E0F6 +:102B8000B32FC6E02A1709F445C0009721F07F3F14 +:102B900021F44B2F03C041E001C040E030E040FD94 +:102BA00035C0C29FF001C39FF00D1124E258FE4FC3 +:102BB000418174132BC04081641328C042814111AC +:102BC00025C0438154814817590710F441505109D9 +:102BD000481B590B483C5105C8F48091B3018F70D4 +:102BE00080618093B30186E0829FF001839FF00DA6 +:102BF0001124ED57FE4F80818F70806180838EEAB3 +:102C000091E00E94E914CF910C9475152F5F3F4F0E +:102C10002770B8CFCF910895CF92DF92EF92FF92B5 +:102C20000F931F93CF93DF93CDB7DEB762970FB6A5 +:102C3000F894DEBF0FBECDBF8C0185E0F801DE0148 +:102C40001D9601900D928A95E1F7D8014C9111964D +:102C50005C91119712966C9112971396ED90FC90DF +:102C600014977091AE01E091AF012091B1013091C4 +:102C7000B2012115310531F0EF3F31F481E07F3FA2 +:102C800019F403C081E001C080E0B82FB170CB2EF1 +:102C900080FD6CC1D090B001DD2009F4F5C0F09149 +:102CA000B301E216F30638F0C701821B930B883C90 +:102CB000910548F09BC0209530952E0D3F1D283C76 +:102CC000310508F093C08F2F807F09F052C0E513C3 +:102CD00014C0741312C0D62E61110FC0FF70F061C2 +:102CE000F093B3010E9496158EEA91E00E94E914D8 +:102CF0008091B301F80185836CC1EF2831F05F3F0B +:102D000031F481E04F3F19F403C081E001C080E05D +:102D100080FD03C081E0862701C080E0F82FF170BC +:102D2000FF2E80FF1CC080917C0120917D0136E048 +:102D3000821709F428C190E0389FF001399FF00D07 +:102D40001124E258FE4F7181571306C0708147135A +:102D500003C07281671303C001968770E9CFD62E36 +:102D6000662309F436C18091B30181608093B30179 +:102D700053C0E51308C0741306C0611104C0D80124 +:102D80001596FC93AEC04D875E878D859E856A8BB8 +:102D90000E942D156A89882329F1D62E662311F108 +:102DA0002091B301822F82958F7090E002970CF4EE +:102DB00060C08091AE019091AF0198878F83198692 +:102DC000FB86EA862C87CE01079651C0E51731F1C4 +:102DD0004D875E878D859E856A8B0E942D156A8939 +:102DE00081112EC0C8010E94E914A4C08F2F807FDA +:102DF00069F77E2DF98AE88A89890E9456158EEA3C +:102E000091E00E94E914EEEAF1E086E0DF011D9214 +:102E10008A95E9F70E949615D12CDBC07413D8CFA0 +:102E20006111D6CFD8011596FC93C8010E94E91410 +:102E3000EEEAF1E086E0DF011D928A95E9F7C9C06C +:102E4000D62E662379F22091B301822F82958F705E +:102E500090E0029774F08091AE019091AF019A8357 +:102E600089831B82FD82EC822E83CE0101960E9413 +:102E7000E91486E0F801AEEAB1E001900D928A957E +:102E8000E1F70E94A4156FC0E216F30628F0C7010F +:102E9000821B930B9C0104C0209530952E0D3F1D85 +:102EA000283C310508F052C0D62E662309F49ACF8B +:102EB000E5132CC074132AC08091B30180FD1DC09E +:102EC000982F92959F70C9F0D80115968C931597FD +:102ED0009F3039F09F5F9295907F8F70892B159668 +:102EE0008C93C8010E94E91486E0F801AEEAB1E0D3 +:102EF00001900D928A95E1F736C086E0F801AEEABE +:102F0000B1E001900D928A95E1F763C04D875E872D +:102F10008D859E850E942D15882379F086E0F80125 +:102F2000AEEAB1E001900D928A95E1F70E94A415F6 +:102F30000E949615DD24D3944CC08091B30181602A +:102F40008093B301C8010E94E91443C07E2DF98A21 +:102F5000E88A89890E945615EEEAF1E086E0DF01F1 +:102F60001D928A95E9F70E94961533C0662309F4ED +:102F700039CF4D875E878D859E850E942D158823CC +:102F800009F430CFCBCF4D875E878D859E850E941B +:102F9000961A292F22952F7030E0223031052CF41B +:102FA0009F7041F0811106C00CC0243031052CF413 +:102FB0009F7049F4805E883020F0C8010E94E914B7 +:102FC000CF2CDC2C06C0D80115969C91907F91F7F0 +:102FD000F8CF8D2D62960FB6F894DEBF0FBECDBF31 +:102FE000DF91CF911F910F91FF90EF90DF90CF90E5 +:102FF00008951F93CF93DF93CDB7DEB72C970FB60D +:10300000F894DEBF0FBECDBF4F83588769877A879C +:103010008B879C87CE0107960E940C168823C1F0EF +:103020002F8138858A859B85892B31F03F3F11F0B0 +:1030300080E003C02F3FE1F781E0811147C04F815D +:10304000588569857A858B859C850E9465153EC06B +:1030500086E0FE013796DE01119601900D928A9569 +:10306000E1F7FF81E8854A855B854115510531F01F +:10307000EF3F31F481E0FF3F19F403C081E001C06C +:1030800080E080FD23C020917D0130E0C9010196E0 +:103090008770992760917C0170E086179707F1F19E +:1030A000F983EA835D834C8396E0929FD001939FDE +:1030B000B00D1124A258BE4FFE01319601900D9221 +:1030C0009A95E1F780937D010E94751516E0809135 +:1030D0007C0190917D01891779F1189FC00111241D +:1030E00082589E4F0E940C16882331F1E0917C019A +:1030F0001E9FF0011124E258FE4F408151816281F0 +:103100007381848195810E94651580917C0190E096 +:1031100001968770992780937C01D9CF0E94291549 +:1031200010927D0110927C01EEEAF1E086E0DF0171 +:103130001D928A95E9F7CACF2C960FB6F894DEBF98 +:103140000FBECDBFDF91CF911F910895EF92FF92F7 +:103150000F931F93CF93DF939C01009709F471C0E5 +:10316000F12CEE24E394E9012196F901849184374E +:1031700040F4843008F056C0813081F0823021F173 +:1031800060C0853709F449C0C0F19CE7980F9037BB +:1031900008F057C08F770E94361246C089010E5F33 +:1031A0001F4FFE01849190E2980F983050F4877081 +:1031B000FE2D01C0FF0F8A95EAF78F2F0E94E41BB6 +:1031C00015C00E94791114C089010E5F1F4FFE01C6 +:1031D000849190E2980F983068F48770FE2D01C0BA +:1031E000FF0F8A95EAF78F2F0E94EA1B0E94171C97 +:1031F000E8011AC00E943612FBCF2E5F3F4FFE013E +:10320000C491CC2341F08FE99FE00197F1F700C012 +:103210000000C150F6CFE90107C0FE01F490E901BA +:10322000229602C00E9479118F2D882341F0EFE988 +:10323000FFE03197F1F700C000008150F6CF9E010A +:1032400092CFDF91CF911F910F91FF90EF90089552 +:1032500008956093B8017093B9018093BA01909377 +:10326000BB010C9415150F931F930091B801109199 +:10327000B9012091BA013091BB01062B172B282BE5 +:10328000392B0093B8011093B9012093BA01309300 +:10329000BB011F910F910C9415150F931F93009173 +:1032A000B8011091B9012091BA013091BB010623F8 +:1032B0001723282339230093B8011093B9012093D1 +:1032C000BA013093BB011F910F910C9415150F9308 +:1032D0001F930091B8011091B9012091BA0130916A +:1032E000BB0106271727282739270093B801109319 +:1032F000B9012093BA013093BB011F910F910C9437 +:1033000015151092B4011092B5011092B6011092E9 +:10331000B7010C94151541E050E060E070E004C086 +:10332000440F551F661F771F8A95D2F74093B4014B +:103330005093B5016093B6017093B7010C941515C5 +:1033400041E050E060E070E004C0440F551F661F8C +:10335000771F8A95D2F78091B4019091B501A09121 +:10336000B601B091B701842B952BA62BB72B809378 +:10337000B4019093B501A093B601B093B7010C943A +:10338000151541E050E060E070E004C0440F551FA7 +:10339000661F771F8A95D2F7409550956095709576 +:1033A0008091B4019091B501A091B601B091B7019F +:1033B00084239523A623B7238093B4019093B5016A +:1033C000A093B601B093B7010C94151541E050E0FD +:1033D00060E070E004C0440F551F661F771F8A9598 +:1033E000D2F78091B4019091B501A091B601B0914E +:1033F000B70184279527A627B7278093B401909318 +:10340000B501A093B601B093B7010C9415150F93B5 +:103410001F930091B4011091B5012091B601309134 +:10342000B701062B172B282B392B0093B4011093CF +:10343000B5012093B6013093B7011F910F910C9401 +:1034400015150F931F930091B4011091B5012091B0 +:10345000B6013091B701062317232823392300939F +:10346000B4011093B5012093B6013093B7011F91B9 +:103470000F910C9415150F931F930091B4011091A7 +:10348000B5012091B6013091B701062717272827EB +:1034900039270093B4011093B5012093B6013093FE +:1034A000B7011F910F910C9415150895CF92DF92DB +:1034B000EF92FF920F931F93CF93DF93EC01C09095 +:1034C000B801D090B901E090BA01F090BB018091B1 +:1034D000B4019091B501A091B601B091B701C82A8D +:1034E000D92AEA2AFB2A0FE110E0B701A601002E33 +:1034F00004C076956795579547950A94D2F740FD95 +:1035000005C00150110988F780E007C0BE01802F77 +:103510000E945D070197A9F3802FDF91CF911F9142 +:103520000F91FF90EF90DF90CF900895CF93DF93AE +:10353000EC010E94561ABE010E945D07DF91CF91F7 +:103540000895CB010E94961A08958091C1010895B3 +:103550008093C10108951092C10108950E941C1D1D +:103560002091BF013091C0018217930750F00E9453 +:103570001C1D2091BF013091C001821B930B9C0147 +:103580000AC00E941C1D2091BF013091C0012095EE +:103590003095280F391F81E02C32314008F480E04B +:1035A00008958091BE0185958595859508958091B2 +:1035B000BE01877008950E941C1D2091BC013091AE +:1035C000BD018217930768F00E941C1D2091BC0169 +:1035D0003091BD01821B930B8C32914078F480E0D6 +:1035E00014C00E941C1D2091BC013091BD0120958A +:1035F0003095280F391F2C32314088F38091BE015D +:1036000082FB882780F991E089278170089598E0EE +:10361000899F90011124622B6093BE010E94A01922 +:103620000E941C1D9093BD018093BC0108951092CF +:10363000BE011092BD011092BC0108954091BE01DF +:10364000809584238093BE01982F977089F450E071 +:10365000282F332727FD30954217530749F08595CA +:10366000859585950E94C1191092BD011092BC01EB +:1036700008959091BE01977081E009F480E008956B +:1036800090910C019923D9F090910D019923B9F0F3 +:10369000982F9695969596959F3088F5E0910E0116 +:1036A000F0910F01E90FF11D877021E030E001C0BA +:1036B000220F8A95EAF78181822B818308954091B8 +:1036C0000E0150910F0120E030E09FEFFA01E20F70 +:1036D000F31F6281681799F09F3F19F4611101C0CF +:1036E000922F2F5F3F4F2E30310581F79F3F39F0EA +:1036F000FA01E90FF11D97FDFA9582830895089567 +:1037000090910C019923E1F090910D019923C1F062 +:10371000982F9695969596959F3020F5E0910E01FD +:10372000F0910F01E90FF11D877021E030E001C039 +:10373000220F8A95EAF72095818128232183089515 +:1037400040910E0150910F0120E030E0FA01E20FAC +:10375000F31F9281981301C012822F5F3F4F2E30CA +:103760003105A1F7089581E090E0E0910E01F0911C +:103770000F01E80FF91F1082019680319105A9F71A +:1037800008958091D50108959091D501982B90933B +:10379000D501089580959091D50198239093D501F6 +:1037A00008951092D50108959091D401982B90938B +:1037B000D401089580959091D40198239093D401D9 +:1037C00008951092D40108959091D301982B90936D +:1037D000D301089580959091D30198239093D301BC +:1037E00008951092D30108958093C2010E941C1D78 +:1037F0009093C0018093BF0108951092C20110926E +:10380000C0011092BF01089540910E0150910F0127 +:1038100020E030E080E0FA01E20FF31F9181911186 +:103820008F5F2F5F3F4F2F303105A9F70895E0914B +:103830000E01F0910F018091D5018083E0910E017E +:10384000F0910F0180819091D401892B8083E091C8 +:103850000E01F0910F0180819091D301892B80831B +:103860008091C201882399F00E94AE1A81110E94B2 +:10387000FD1BE0910E01F0910F0180819091C2013A +:10388000892B80830E94041C81110E94FD1B809162 +:103890000E0190910F010C94661040E0009739F0F2 +:1038A0009C0121503109822393234F5FF7CF842F4E +:1038B0000895CF92DF92EF92FF920F931F936C01C6 +:1038C000EE24FF24C114D104E104F10421F46B01BE +:1038D0007C0180E001C080E133272F2D1E2D0D2DAE +:1038E000011511052105310519F0885F680179017D +:1038F00097018601A4E03695279517950795AA9517 +:10390000D1F7011511052105310519F08C5F68010A +:10391000790197018601F2E036952795179507956D +:10392000FA95D1F7011511052105310519F08E5FC2 +:1039300068017901B701A601769567955795479576 +:10394000452B462B472B09F08F5F1F910F91FF905E +:10395000EF90DF90CF9008958091EB01843021F1BA +:103960001092D70120E488E190E00FB6F894A89572 +:10397000809360000FBE2093600080E00E946C097D +:1039800083B7817F846083BF83B7816083BF78946E +:10399000889583B78E7F83BF88E10FB6F8948093B4 +:1039A0006000109260000FBE089508950E943103D8 +:1039B0000E9444030E94D51C0E94380491E08111AA +:1039C00001C090E0892F08950E9429150E945A1085 +:1039D0000C946C091F920F920FB60F9211248F93C3 +:1039E0009F93AF93BF938091D701811113C08091B2 +:1039F000D8019091D901A091DA01B091DB014196F3 +:103A0000A11DB11D8093D8019093D901A093DA0133 +:103A1000B093DB01BF91AF919F918F910F900FBE3B +:103A20000F901F90189582E084BD93E095BD9AEFAA +:103A300097BD80936E0008952FB7F8948091D801B8 +:103A40009091D901A091DA01B091DB012FBF0895C7 +:103A5000CF92DF92EF92FF920F931F932FB7F894BC +:103A60004091D8015091D9016091DA017091DB0148 +:103A70002FBF6A017B01EE24FF248C0120E030E09F +:103A8000C016D106E206F30610F441505109481B56 +:103A9000590BCA011F910F91FF90EF90DF90CF90CB +:103AA00008951F920F920FB60F9211248F939F9338 +:103AB000AF93BF938091D8019091D901A091DA0181 +:103AC000B091DB010196A11DB11D8093D8019093A7 +:103AD000D901A093DA01B093DB01BF91AF919F911F +:103AE0008F910F900FBE0F901F9018950E94600D40 +:103AF000F8942FEF87EA91E6215080409040E1F75B +:103B000000C0000087E090EBDC018093F40190930B +:103B1000F501A093F601B093F7012CE088E190E065 +:103B20000FB6F894A895809360000FBE20936000B4 +:103B3000FFCF0E94D11D811102C00E94B71D0E94BB +:103B4000DC1D8093D6010E94E41D90E09093E60175 +:103B50008093E50187FB882780F980930D010E94FF +:103B6000E01D682F70E080E090E00C9429196DEE64 +:103B70007EEF80E090E00E94832160E082E090E0B0 +:103B80000E94712160E083E090E00E94712160E07A +:103B900084E090E00E94712160E085E090E00C9468 +:103BA000712180E090E00E946B2121E08D3E9E4FCC +:103BB00009F020E0822F089582E090E00C946321C8 +:103BC00083E090E00C94632184E090E00C94632106 +:103BD000682F84E090E00C9471218091DE0180FFD9 +:103BE0000BC06091130185E0689FB00111247595A9 +:103BF0006795759567952AC081FF09C0609113018B +:103C000085E0689FB0011124759567951FC082FFFC +:103C100007C06091130185E0689FB001112416C0B0 +:103C20004091DF014423C9F060911201461788F7E3 +:103C30002091130185E0289F90011124429FC0012B +:103C4000439F900D112470E00E943521603871056A +:103C500040F46115710539F002C065E070E0862F0F +:103C600008958FE7089581E008958091DE0180FF37 +:103C700008C06091110170E075956795759567951D +:103C800021C081FF06C06091110170E075956795B4 +:103C900019C082FF04C06091110170E010C08091D2 +:103CA000DF018823C1F0609110018617A0F7909181 +:103CB0001101989FC001112470E00E9435216038E5 +:103CC000710528F46115710521F0862F08958FE79D +:103CD000089581E0089561E070E0F4CF803F21F421 +:103CE0000E94ED1D819504C0813F29F40E94ED1DC5 +:103CF0008093E2010895823F21F40E94ED1D819599 +:103D000004C0833F29F40E94ED1D8093E1010895D2 +:103D1000893F19F40E94351E05C08A3F31F40E9484 +:103D2000351E81958093E30108958B3F21F40E9415 +:103D3000351E819504C08C3F29F40E94351E809366 +:103D4000E4010895843F21F48091E001816017C06F +:103D5000853F21F48091E001826011C0863F21F40B +:103D60008091E00184600BC0873F21F48091E001E5 +:103D7000886005C0883F31F48091E00180618093C4 +:103D8000E00108958D3F21F48091DE0181600BC038 +:103D90008E3F21F48091DE01826005C08F3F29F4BF +:103DA0008091DE0184608093DE010895803F39F4C4 +:103DB0008091E20187FF6CC01092E20169C0813FEF +:103DC00029F48091E2011816BCF362C09091E101E0 +:103DD000823F29F497FF5CC01092E10159C0833FF4 +:103DE00019F41916CCF354C0893F41F48091E301D2 +:103DF00018160CF04DC01092E3014AC08A3F29F416 +:103E00008091E30187FF44C0F6CF8B3F39F4809166 +:103E1000E40187FF3DC01092E4013AC08C3F29F4D1 +:103E20008091E4011816BCF333C0843F21F48091E3 +:103E3000E0018E7F17C0853F21F48091E0018D7FE6 +:103E400011C0863F21F48091E0018B7F0BC0873F3A +:103E500021F48091E001877F05C0883F31F4809193 +:103E6000E0018F7E8093E00113C08D3F21F48091AB +:103E7000DE018E7F0BC08E3F21F48091DE018D7FAD +:103E800005C08F3F29F48091DE018B7F8093DE0196 +:103E90008091E10181110EC08091E20181110AC07F +:103EA0008091E301811106C08091E401811102C07B +:103EB0001092DF01089580EE91E00E9471100E943F +:103EC0001C1D9093DD018093DC0108951F93CF9317 +:103ED000DF938091DC019091DD010E94281D4091CB +:103EE000DF01442321F02091140130E006C020912D +:103EF00015015AE0259F900111248217930708F4B9 +:103F000082C08091E1011091E201D091E301C09162 +:103F1000E401811107C0111105C0D11103C0CC23E8 +:103F200009F471C04F3F19F04F5F4093DF0118163D +:103F300024F40E94ED1D8093E1018091E10187FF4F +:103F400005C00E94ED1D81958093E101111624F4B6 +:103F50000E94ED1D8093E2018091E20187FF05C080 +:103F60000E94ED1D81958093E2016091E10166233D +:103F700039F11091E201112319F1772767FD70954E +:103F8000872F972F0E94462023E333E343E35FE329 +:103F90000E94AA200E9413206093E101612F7727DD +:103FA00067FD7095872F972F0E94462023E333E308 +:103FB00043E35FE30E94AA200E9413206093E20182 +:103FC0001D1624F40E94351E8093E3018091E301C5 +:103FD00087FF05C00E94351E81958093E3011C1662 +:103FE00024F40E94351E8093E4018091E40187FF50 +:103FF00005C00E94351E81958093E401DF91CF9129 +:104000001F910C945B1FDF91CF911F910895E0EEFB +:10401000F1E085E0DF011D928A95E9F71092DF015A +:104020001092DE01089504D06894B1118DC00895F6 +:1040300070D088F09F5790F0B92F9927B751A0F012 +:10404000D1F0660F771F881F991F1AF0BA95C9F72C +:1040500012C0B13081F077D0B1E0089574C0672FFD +:10406000782F8827B85F39F0B93FCCF386957795DC +:104070006795B395D9F73EF49095809570956195C5 +:104080007F4F8F4F9F4F0895E89409C097FB3EF4F0 +:1040900090958095709561957F4F8F4F9F4F992395 +:1040A000A9F0F92F96E9BB279395F6958795779513 +:1040B0006795B795F111F8CFFAF4BB0F11F460FFD3 +:1040C0001BC06F5F7F4F8F4F9F4F16C0882311F02B +:1040D00096E911C0772321F09EE8872F762F05C03F +:1040E000662371F096E8862F70E060E02AF09A95DA +:1040F000660F771F881FDAF7880F9695879597F9CF +:10410000089557FD9058440F551F59F05F3F71F0C7 +:104110004795880F97FB991F61F09F3F79F087952E +:104120000895121613061406551FF2CF4695F1DFB7 +:1041300008C0161617061806991FF1CF8695710547 +:10414000610508940895E894BB2766277727CB017B +:1041500097F908950BD078C069D028F06ED018F088 +:10416000952309F05AC05FC01124EECFCADFA0F337 +:10417000959FD1F3950F50E0551F629FF001729FFC +:10418000BB27F00DB11D639FAA27F00DB11DAA1F1B +:10419000649F6627B00DA11D661F829F2227B00D68 +:1041A000A11D621F739FB00DA11D621F839FA00DF3 +:1041B000611D221F749F3327A00D611D231F849F43 +:1041C000600D211D822F762F6A2F11249F5750409A +:1041D0008AF0E1F088234AF0EE0FFF1FBB1F661F35 +:1041E000771F881F91505040A9F79E3F510570F0EE +:1041F00014C0AACF5F3FECF3983EDCF38695779529 +:104200006795B795F795E7959F5FC1F7FE2B880FE8 +:10421000911D9695879597F9089597F99F6780E87E +:1042200070E060E008959FEF80EC089500240A9408 +:104230001616170618060906089500240A94121681 +:104240001306140605060895092E0394000C11F4B4 +:10425000882352F0BB0F40F4BF2B11F460FF04C061 +:104260006F5F7F4F8F4F9F4F089597FB072E16F478 +:10427000009407D077FD09D00E944F2107FC05D09C +:104280003EF4909581959F4F0895709561957F4F6D +:104290000895EE0FFF1F0590F491E02D0994AA1BDD +:1042A000BB1B51E107C0AA1FBB1FA617B70710F021 +:1042B000A61BB70B881F991F5A95A9F78095909553 +:1042C000BC01CD010895F999FECF92BD81BDF89A48 +:1042D000992780B50895A8E1B0E042E050E00C9441 +:1042E0008B21262FF999FECF92BD81BDF89A0197B7 +:1042F00000B4021639F01FBA20BD0FB6F894FA9A2E +:10430000F99A0FBE08950196272F0E9472210C94EE +:104310007121DC01CB01FC01F999FECF06C0F2BD91 +:10432000E1BDF89A319600B40D9241505040B8F773 +:064330000895F894FFCF90 +:1043360002206E09FB09D809A40971090101C3010C +:1043460028080A03140A404D363979042C04F6036A +:0A435600BD035003690382039B03BB +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/erez_experimental/config.h b/keyboards/ergodox_ez/keymaps/erez_experimental/config.h new file mode 100644 index 000000000..e5d7fe188 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/erez_experimental/config.h @@ -0,0 +1,12 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +#define ONESHOT_TAP_TOGGLE 2 +#define ONESHOT_TIMEOUT 300 + +#undef LEADER_TIMEOUT +#define LEADER_TIMEOUT 300 + +#endif diff --git a/keyboards/ergodox_ez/keymaps/erez_experimental/keymap.c b/keyboards/ergodox_ez/keymaps/erez_experimental/keymap.c new file mode 100644 index 000000000..04ad2a816 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/erez_experimental/keymap.c @@ -0,0 +1,199 @@ +#include +#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 | 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|Leader|------| |------| Tab/L1 |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_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_LSPO, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_LBRC), + LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT, + ALT_T(KC_APP), KC_LGUI, + KC_HOME, + KC_SPC,KC_LEAD,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_RBRC),KC_N,KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSPC, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, LT(SYMB,KC_MINS), + KC_LALT, CTL_T(KC_ESC), + KC_PGUP, + KC_PGDN,LT(SYMB, KC_TAB), KC_ENT + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | 1 | 2 | 3 | 4 | 5 |------| |------| & | _ | - | ; | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | 6 | 7 | 8 | 9 | 0 | | | | | | @ | = | % | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | |NxtTab|PrvTab| | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, + KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,LCTL(KC_PGUP), LCTL(KC_PGDN), + 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, + KC_AMPR, KC_UNDS, KC_MINS, CM_SCLN, KC_PLUS, KC_TRNS, + KC_TRNS, KC_PIPE, KC_AT, KC_EQL, KC_PERC, KC_TRNS, 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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | PgUp | Home | End | PgDn | |------| |------| | | | | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | |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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_PGUP, KC_HOME, KC_END, KC_PGDN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_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) + [2] = ACTION_MACRO_TAP(0), // Eric Tang's Famous Macro! + [3] = ACTION_MACRO_TAP(1) // Eric Tang's Famous Macro! +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +LEADER_EXTERNS(); + +// 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; + } + + LEADER_DICTIONARY() { + leading = false; + leader_end(); + + SEQ_ONE_KEY(KC_W) { + register_code(KC_LALT); + register_code(KC_F4); + unregister_code(KC_F4); + unregister_code(KC_LALT); + } + SEQ_ONE_KEY(KC_O) { + register_code(KC_LCTL); + register_code(KC_LSFT); + register_code(KC_O); + unregister_code(KC_O); + unregister_code(KC_LSFT); + unregister_code(KC_LCTL); + } + } +} + diff --git a/keyboards/ergodox_ez/keymaps/erez_experimental/readme.md b/keyboards/ergodox_ez/keymaps/erez_experimental/readme.md new file mode 100644 index 000000000..66acfa187 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/erez_experimental/readme.md @@ -0,0 +1,51 @@ +# Erez's experimental layout + +This is my personal layout which I use to test out ideas which may or may not make it onto the default layout we ship with. It's based off the default layout, with various tweaks. + +Changelog: + +## May 24, 2016: + +* Implements Leader key example + * Leader, W sends Alt-F4 + * Leader, O sends Ctrl-shift-o (a shortcut I use in FrontApp) + +## May 8, 2016: + +* Makes bottom-right key send minus/underscore when tapped, L1 temporary toggle when held +* Tweaked the positions of the numbers on the symbol layer. Basically, 12345 are now directly under their number-row counterparts in layer 0. You can imagine pulling the number row down to the home row. And 67890 are directly under 12345 - so it's a matter of just adding 5 and going to the next row (1+5 = 6, 2+5 = 7 and so on). +* Tweaks media/nav layer + * Removes mouse control, as I don't use it + * Makes left home row keys PgUp, Home, End, PgDn + +## Apr 29, 2016: + +* Tweaks the Hyper and Meh key to send brackets when tapped +* Turns bottom-right key into a minus/underscore (easy to reach with the right pinky) + +## Apr 25, 2016: + +* Made it so that the right and left Shift keys send opening and closing parens ( ) when tapped + +## Feb 11, 2016: + +* Updated ASCII legend for thumb clusters +* Made it so outer left-hand thumb key is L1 momentary toggle +* Added % and @ to L1 +* Swapped positions for _ and - on L1 + +## Feb 5, 2016: + +* A whole new design for the symbol layer. Specifically: + * Put the minus, underscore, and semicolon right in the homerow for the right hand + * Parens are in better places for me + * The arrow keys now send Ctrl-PgUp and Ctrl-PgDn, for switching browser tabs with the arrows when in symbol layer + * Tab (right-hand outer thumb key) now does double duty to toggle symbol layer when held down + * Backspace (left-hand outer thumb key) now just toggles symbol layer (I wasn't using it as a backspace) + + +## Jan 19, 2016: + +* 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). + diff --git a/keyboards/ergodox_ez/keymaps/german-kinergo/compiled.hex b/keyboards/ergodox_ez/keymaps/german-kinergo/compiled.hex new file mode 100644 index 000000000..1ecea9fa4 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/german-kinergo/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947A020C94BE020C94BE020C94BE02B4 +:100010000C94BE020C94BE020C94BE020C94BE0260 +:100020000C94BE020C94BE020C94640D0C94360E1B +:100030000C94BE020C94BE020C94BE020C94BE0240 +:100040000C94BE020C9440220C94BE020C94BE028E +:100050000C94BE020C94D31B0C94BE020C94BE02F2 +:100060000C94BE020C94BE020C94BE020C94BE0210 +:100070000C94BE020C94BE020C94BE020C94BE0200 +:100080000C94BE020C94BE020C94BE020C94BE02F0 +:100090000C94BE020C94BE020C94BE020C94BE02E0 +:1000A0000C94BE020C94BE020C94BE02A30EC50EAC +:1000B000B30FC50EB30F0A0F2D0FB30F820F950F9D +:1000C0006412641293129312C912E9121A141A14C8 +:1000D000F4121A14A413A4130B141A141A141414DB +:1000E000B113B113B113B113B113B113B113B113F0 +:1000F000B113B113B113B113B113B113B113B113E0 +:10010000C313D013D713DE13E8130000F0A12900A6 +:100110002B003900E100E30000001E001400040081 +:100120001D0035004D001F001A0016001B00640062 +:100130004C00200008000700060050002A002100A3 +:100140001500090019004F004A00220017000A009C +:1001500005000000E0002E000152000002520000E5 +:10016000E20046000152000002520000E6002300B7 +:100170001C000B0011000000E400240018000D001A +:10018000100051004B0025000C000E0036005200FC +:100190002C00260012000F00370031002800270035 +:1001A00013003300380030004E002D002F00344281 +:1001B000E500E7000000010001000100010001006E +:1001C00000003A001E0231002202010001003B0043 +:1001D000141421023500010001003C002414250202 +:1001E0002514010001003D002714260226140100F9 +:1001F00001003E0064142E023014000001000100D2 +:1002000001000000010000000100010001000000E9 +:100210000100000001003F005200510023020000D5 +:1002200001004000240021001E00010001004100E7 +:10023000250022001F003700010042002600230095 +:100240002000270001004300300230002D14270257 +:100250000100440045000100010001000000010010 +:10026000010001000100010000003A000100F70058 +:10027000FB00010001003B00F400F200FA00FD0069 +:10028000F5003C00F000F100F900FE00F4003D0034 +:10029000F500F300FC00FF0001003E000100F80043 +:1002A000F600000001000100010000000100000054 +:1002B00001000100010000000100000001003F00FA +:1002C00001000100B400000001004000AA00AC00E1 +:1002D000B600010001004100A800AD00B50001001A +:1002E000B7004200A900AE00B9000100B60043000B +:1002F0000100AB00B700010001004400450001000F +:1003000001000100000016034500720067006F0045 +:1003100044006F007800200045005A0000001603DA +:100320004500720067006F0044006F0078002000F5 +:1003300045005A0000000403090409026D0004018D +:1003400000A0FA09040000010301010009211101C4 +:100350000001223F000705810308000A090401008B +:100360000103010200092111010001224D000705CE +:10037000820308000A0904020001030000000921A9 +:10038000110100012236000705830308000A090451 +:1003900003000103000000092111010001223900BE +:1003A000070584031000011201100100000008ED90 +:1003B000FE071301000102000105010906A1010564 +:1003C0000719E029E7150025019508750181020547 +:1003D000081901290595057501910295017503918B +:1003E0000105071900297715002501957875018108 +:1003F00002C005010980A101850216010026B7008F +:100400001A01002AB700751095018100C0050C097A +:1004100001A1018503160100269C021A01002A9CF5 +:1004200002751095018100C005010902A1010901B1 +:10043000A10005091901290515002501950575017A +:10044000810295017503810105010930093115818A +:10045000257F95027508810609381581257F95014C +:1004600075088106050C0A38021581257F950175EE +:10047000088106C0C005010906A101050719E02988 +:10048000E715002501950875018102950175088120 +:100490000105081901290595057501910295017558 +:1004A0000391010507190029FF150025FF95067521 +:1004B000088100C0000000000000000000000001F2 +:1004C0000204060A0F17202C3A4A5D71879DB3C7B4 +:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF +:1004E0003A2C20170F0A0604020100000000000049 +:1004F0000000000011241FBECFEFDAE0DEBFCDBF49 +:1005000004B603FE24C08091FB019091FC01A091F0 +:10051000FD01B091FE018730904BA740B04BB9F47C +:100520001092FB011092FC011092FD011092FE014D +:1005300014BE84B7877F84BF88E10FB6F894809398 +:100540006000109260000FBEE0E0FFE3099511E04B +:10055000A0E0B1E0EEE0F8E402C005900D92A43313 +:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0 +:10057000B107E1F70E94A80A0C9405240C9400002E +:100580001092B9008AE08093B800089594EA90939D +:10059000BC009091BC0097FFFCCF9091B900987F70 +:1005A000983021F0903111F081E008958093BB00E4 +:1005B00084E88093BC008091BC0087FFFCCF8091D1 +:1005C000B900887F883111F0803471F780E0089598 +:1005D00084E98093BC008091BC0084FDFCCF089529 +:1005E0008093BB0084E88093BC008091BC0087FFAF +:1005F000FCCF9091B900987F81E0983209F480E0B7 +:10060000089584E88093BC008091BC0087FFFCCFF4 +:100610008091BB00089580910101811115C080E493 +:100620000E94C6028093010181110CC082E10E94E8 +:10063000F00280930101811105C08FEF0E94F0024A +:10064000809301010E94E80284B1807F84B985B162 +:10065000807F85B98AB1837F8AB98BB1837F8BB95B +:100660003E98469808950E94C604809301010E9416 +:100670000B0380B38C7080BB81B3836F81BBA5E318 +:10068000B1E0E3E4F1E08EE08E0F11921D928E1343 +:10069000FCCF0C94B004BF92CF92DF92EF92FF9206 +:1006A0000F931F93CF93DF9380910101882379F0FB +:1006B000809134018F5F80933401811108C00E94C2 +:1006C000C60480930101811102C00E94580405E311 +:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407 +:1006E000E394F12CC730D10500F58091010181110F +:1006F00064C080E40E94C60280930101811112C08F +:1007000082E10E94F0028093010181110BC0C701B8 +:100710000C2E01C0880F0A94EAF780950E94F0021F +:10072000809301010E94E80248C0CA30A1F028F479 +:10073000C83059F0C93061F005C0CC3089F070F094 +:10074000CD3089F0209A289810C0219A29980DC0A0 +:10075000229A2A980AC0239A2B9807C0529A01C05D +:10076000539A5B9802C03E9A469890EA9A95F1F7A0 +:100770009FB1799902C082E001C080E091709D250F +:10078000982B7C9902C084E001C080E0892B7D9980 +:1007900002C038E001C030E0832B7E9902C020E126 +:1007A00001C020E0822B9FB19095991F9927991F36 +:1007B0009295990F907E892B0FC080910101811134 +:1007C00049C080E40E94C60280930101882379F128 +:1007D000B12C0E94E8028B2DF8019081981719F036 +:1007E0008083C09200010E940B0321960F5F1F4F70 +:1007F000CE30D10509F076CF80910001882361F1D8 +:10080000815080930001882339F08FE99FE00197A0 +:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F +:10082000CF01825F91919D938E13FCCF15C083E120 +:100830000E94F002809301018111CACF81E40E94DD +:10084000C602809301018111C3CF0E940103B82E1B +:10085000B094BFCF80E0C0CF0E94560481E0DF910A +:10086000CF911F910F91FF90EF90DF90CF90BF90AD +:100870000895E82FF0E0ED5BFE4F80810895089524 +:100880000F931F93CF93DF93C3E4D1E010E00C2FBD +:10089000025F899190E00E94F91A180F0C13F9CFAA +:1008A000812FDF91CF911F910F9108950C94260510 +:1008B00056985E9825982D9826982E9827982F98C8 +:1008C0008FEF90E0909389008093880090938B0045 +:1008D00080938A0090938D0080938C00259A2D9AA6 +:1008E0002FEF80E792E0215080409040E1F700C078 +:1008F0000000269A2E9A2FEF80E792E02150804048 +:100900009040E1F700C00000279A2F9A2FEF80E770 +:1009100092E0215080409040E1F700C0000025980F +:100920002D982FEF80E792E0215080409040E1F732 +:1009300000C0000026982E982FEF80E792E021500B +:1009400080409040E1F700C0000027982F9856980B +:100950005E9825982D9826982E9827982F98089578 +:1009600089EA8093800089E08093810024982C9804 +:100970003F988AB18F748AB96E98479A8BB1806B11 +:100980008BB9769A0E9458040C94250580E28093D6 +:1009900001018091510181110EC00E94C00281E0CD +:1009A000809351012FEF83ED90E3215080409040E0 +:1009B000E1F700C0000080E40E94C60280930101BC +:1009C00081112EC00E94F00280930101811128C084 +:1009D0000E94F00280930101811122C08FE30E94E6 +:1009E000F0028093010181111BC00E94E80280E4A3 +:1009F0000E94C60280930101811112C08CE00E9406 +:100A0000F0028093010181110BC00E94F0028093DB +:100A10000101811105C08FE30E94F0028093010162 +:100A20000E94E80280910101089561110BC0FC0150 +:100A30008281882321F085EE0E94081103C085EE93 +:100A40000E94D01180E090E0089508956091BD016A +:100A50007091BE018091BF019091C0010E94051B61 +:100A600056985E9825982D9826982E9827982F9816 +:100A7000813029F0823031F4269A2E9A0895259AF1 +:100A80002D9A089556985E98089581E0089581E022 +:100A900008950C94470508950F931F93CF93DF9308 +:100AA0008C01FC01C081D181CE010E947E19BE0162 +:100AB0000E94F505EC01B8010E944905882309F45C +:100AC0008DC0F8018281882309F44AC080915D01BC +:100AD00081111FC0C431F0E5DF0709F051C00E9449 +:100AE0004B0581E080935D010E949D1B90935C010A +:100AF00080935B011092540110925601109255019F +:100B0000109258011092570110925A0110925901F7 +:100B100065C080915B0190915C010E94A91B883C9B +:100B2000910570F480915401E82FF0E0EE0FFF1F63 +:100B3000EB5AFE4FD183C0838F5F809354014EC028 +:100B4000C43880E5D80721F0C538D04501F13AC056 +:100B5000F8018281882341F01092520182E01EC088 +:100B6000C438E0E5DE0759F580915201811106C0D5 +:100B700086E20E94081186E20E94D01182E01CC029 +:100B8000C438F0E5DF0741F3C538D045D9F4F801A2 +:100B90008281882331F01092530180E20E941F125B +:100BA0001DC080915301811106C087E20E94081187 +:100BB00087E20E94D01180E20E9426120FC0C53841 +:100BC000D04529F381E08093520180935301C801FD +:100BD000DF91CF911F910F910C94450580E0DF913B +:100BE000CF911F910F910895089596E0799FF0019C +:100BF000112494E5899FE00DF11D1124E60FF11DEC +:100C0000EE0FFF1FE25FFE4F859194910895880FCC +:100C1000991FFC01E657F040859194910895880F43 +:100C2000991FFC01E65FFE4F8591949108950F9303 +:100C30001F93CF93DF93EC01811520E3920750F5CA +:100C4000C11580E2D80708F0C3C0CB3BD10590F4B2 +:100C5000C83AD10508F06AC0C53AD10508F05BC0B2 +:100C6000C430D10508F0D0C1219709F0CAC101E014 +:100C700010E00AC2CF3FD10511F008F0C5C1C03F56 +:100C8000D10508F0A2C0CE01805E9109089708F452 +:100C9000BBC1B7C1C13090E5D90709F4A2C020F5A6 +:100CA000C0318FE4D80770F4C11590E4D90708F07B +:100CB00094C0C11521E3D20708F0A3C1DD278E013E +:100CC000106CE2C1C115D04509F09BC10E9485148A +:100CD0008FEF94E32CE0815090402040E1F700C07A +:100CE00000000E94F81BD0C1C11597E5D90758F440 +:100CF000C03121E5D20708F01CC1C43180E5D80716 +:100D000008F475C07EC1CE0190578115904108F05E +:100D100078C1DF7073C1C53AD10509F477C1C63A0D +:100D2000D10509F076C102E810E4AEC1C83AD10598 +:100D300009F472C1C93AD10509F471C1CA3AD105A1 +:100D400009F470C1CB3AD10509F46FC1CC3AD10591 +:100D500009F46EC1CD3AD10509F46DC1C03BD1058E +:100D600009F46CC1CE3AD10509F46BC1CF3AD10573 +:100D700009F46AC1C13BD10509F469C1C23BD1057F +:100D800009F468C1C33BD10509F467C1C43BD1056F +:100D900009F466C1C53BD10509F465C1C63BD1055F +:100DA00009F464C1C73BD10509F463C1C83BD1054F +:100DB00009F462C1C93BD10509F461C1CA3BD1053F +:100DC00009F460C100E014E45FC18E0110655CC1EC +:100DD000CE019F700E940F0658C1DF708E01106A0D +:100DE00053C18091DA0181608093DA014DC10E9484 +:100DF0009D1D811102C00E94831D0E94BA1D90E0BA +:100E00009093FB018093FA01C23080E5D80721F46A +:100E10008091FA01816086C0C43090E5D90721F441 +:100E20008091FA0182607EC0C63020E5D20721F4AD +:100E30008091FA01846076C0C83080E5D80719F443 +:100E40008091FA0127C0CA3090E5D90721F480913A +:100E5000FA01806167C0CC3020E5D20721F480918F +:100E6000FA0180625FC0CE3080E5D80721F480911E +:100E7000FA01806457C0C03190E5D90721F4809110 +:100E8000FA0180684FC0C23120E5D20729F4809171 +:100E9000FA018460886046C0C33080E5D80721F439 +:100EA0008091FA018E7F3EC0C53090E5D90721F4CC +:100EB0008091FA018D7F36C0C73020E5D20721F43A +:100EC0008091FA018B7F2EC0C93080E5D80719F4D4 +:100ED0008091FA0126C0CB3090E5D90721F48091AA +:100EE000FA018F7E1FC0CD3020E5D20721F480911A +:100EF000FA018F7D17C0CF3080E5D80721F48091AB +:100F0000FA018F7B0FC0C13190E5D90721F48091A0 +:100F1000FA018F7707C0C331D04531F48091FA01CF +:100F20008B7F877F8093FA018091FA010E94BE1D1A +:100F3000ABC08D2F99278F70992781309105D9F4F7 +:100F40009E012370332702C0880F991F2A95E2F76C +:100F50009C688E0144E0000F111F4A95E1F70027BD +:100F60001370802B912B53E0CC0FDD1F5A95E1F7C6 +:100F7000C076DD272FC08230910531F4DC2FCC27DD +:100F80008E01016F106A80C08330910569F4CE0133 +:100F90008370992701E010E002C0000F111F8A95AD +:100FA000E2F7C8019C680FC084309105B9F4CE0106 +:100FB0008370992701E010E002C0000F111F8A958D +:100FC000E2F7C8019A6823E0CC0FDD1F2A95E1F70C +:100FD000C07ED7708C010C2B1D2B56C0853091051F +:100FE00031F4DC2FCC278E01046F106A4DC00697B8 +:100FF00009F04AC0CF71DD27DC2FCC278E011062AB +:1010000043C000E010E040C08E013EC001E810E4A3 +:101010003BC003E810E438C002EE14E435C009EE2A +:1010200014E432C00AEE14E42FC005EB14E42CC023 +:1010300006EB14E429C007EB14E426C00CEC14E41E +:1010400023C00DEC14E420C003E815E41DC00AE839 +:1010500015E41AC002E915E417C004E915E414C048 +:1010600001E216E411C003E216E40EC004E216E445 +:101070000BC005E216E408C006E216E405C007E26C +:1010800016E402C00AE216E4C801DF91CF911F9175 +:101090000F91089596E0799FF001112494E5899FBE +:1010A000E00DF11D1124E60FF11DEE0FFF1FE25FB1 +:1010B000FE4F85919491803E9105E0F4803C91052E +:1010C00058F58133910509F46FC048F489329105D0 +:1010D00009F463C08A32910509F46DC072C0893386 +:1010E0009105E9F082389105D1F08533910509F435 +:1010F0004DC067C0833E910581F138F4803E910573 +:10110000B9F0823E9105D9F05CC0863E910561F14F +:10111000873E9105A1F155C00E94070608952091D0 +:10112000FA0120FD02C021FF4CC080EE90E049C0D2 +:101130008091FA0180FFF9CF89E390E042C080916D +:10114000FA0182FF0EC08091FA0184FF03C080E0A3 +:1011500090E037C083EE90E034C08091FA0182FFC6 +:10116000F2CF82EE90E02DC08091FA0183FF0BC098 +:101170008091FA0184FDEBCF87EE90E022C0809150 +:10118000FA0183FFF5CF86EE90E01BC08091FA0153 +:1011900085FF07C089E290E014C08091FA0185FFC5 +:1011A000F9CF85E390E00DC08091FA0186FF07C07A +:1011B0008AE290E006C08091FA0186FFF9CF81E3D0 +:1011C00090E00E941706089508950C94E408809119 +:1011D0006E010895CF93DF9300D01F92CDB7DEB795 +:1011E0009C018091F101843019F593E099833B8350 +:1011F0002A839093E9008FEF9091E800815095FD4C +:1012000006C095ED9A95F1F700008111F5CF809118 +:10121000E80085FF0DC040E050E063E070E0CE01E3 +:1012200001960E94540B8091E8008E778093E8002D +:101230000F900F900F90DF91CF910895CF93DF9390 +:1012400000D01F92CDB7DEB72091F101243021F5F7 +:1012500022E029839B838A8383E08093E9008FEFD8 +:101260009091E800815095FD06C095ED9A95F1F7B3 +:1012700000008111F5CF8091E80085FF0DC040E0AE +:1012800050E063E070E0CE0101960E94540B809123 +:10129000E8008E778093E8000F900F900F90DF9119 +:1012A000CF9108952091F1012430F1F422E02093B0 +:1012B000E9002FEF3091E800215035FD06C035EDF3 +:1012C0003A95F1F700002111F5CF2091E80025FFB4 +:1012D0000BC040E050E065E070E00E94540B80914C +:1012E000E8008E778093E8000895CF93DF93EC01B8 +:1012F0009091F101943009F046C080910C0188234F +:10130000D9F080910D018823B9F09093E9008FEF17 +:101310009091E800815095FD06C095E19A95F1F70E +:1013200000008111F5CF8091E80085FF2CC040E0DE +:1013300050E060E170E017C081E08093E9008FEF3A +:101340009091E800815095FD06C095ED9A95F1F7D2 +:1013500000008111F5CF8091E80085FF14C040E0C6 +:1013600050E068E070E0CE010E94540B8091E800EC +:101370008E778093E80080E1FE01AEE5B1E0019058 +:101380000D928A95E1F7DF91CF9108958091F00158 +:10139000811109C00E94E90C0E94460D8091E20073 +:1013A00084608093E20008951092F00108950895FA +:1013B0000C942D220E948E1B0E9433220E94EC0F5F +:1013C0000C94E50842E061EC81E00E94630C42E08D +:1013D00061EC82E00E94630C42E061EC83E00E94D9 +:1013E000630C42E161EC84E00C94630C8091F301A6 +:1013F000833009F455C030F4813071F0823009F443 +:101400008EC008958A3009F47AC08B3009F460C028 +:10141000893009F09CC020C08091F201813A09F026 +:1014200096C08091E800877F8093E8008091F60164 +:101430009091F701892B21F460E18EE591E003C0E2 +:1014400060E080E090E070E00E949F0B8091E800F7 +:101450008B778093E80008958091F201813209F042 +:1014600076C08091F6019091F701009719F00397EB +:1014700009F06DC08091E800877F8093E80080913B +:10148000E80082FD05C08091F1018111F8CF5FC0B5 +:101490008091F10080936E018091E8008B7753C0BA +:1014A0008091F201813A09F052C08091F601909149 +:1014B000F701892B09F04BC08091E800877F80936A +:1014C000E8008091E80080FFFCCF80910C0136C0DD +:1014D0008091F2018132D9F58091F6019091F70166 +:1014E000892BA9F58091E800877F8093E8000E940E +:1014F000980C8091F40180930C010C9485148091D8 +:10150000F201813221F58091E800877F8093E80025 +:101510000E94980C8091F50180936F01089580914D +:10152000F201813AA1F48091E800877F8093E8007E +:101530008091E80080FFFCCF80916F018093F100E3 +:101540008091E8008E778093E8000C94980C0895C1 +:1015500084B7877F84BF88E10FB6F89480936000DA +:10156000109260000FBE90E080E80FB6F894809370 +:101570006100909361000FBE0E943B100E94E90C35 +:101580000E94460D8091E20084608093E20078948E +:101590000E94CC0F0E943D1082E091E00E94E70F74 +:1015A0000E941B228091F101853069F40E94551B35 +:1015B0008091EF018823B1F30E94801B882391F36F +:1015C0000E943E0BEFCF0E944310ECCF292F332710 +:1015D00023303105C9F064F42130310581F0223027 +:1015E000310509F043C08DE690E02AE333E042C0C4 +:1015F00021323105F1F02232310541F137C082E16B +:1016000090E027EA33E036C099278130910541F018 +:101610008230910541F0892B49F5E6E3F3E005C0FE +:10162000EEE1F3E002C0E6E0F3E0849190E09F0198 +:1016300021C06430D8F4E62FF0E0EE0FFF1FEE5D1E +:10164000FE4F2081318189E090E014C0643070F455 +:1016500070E0FB01EE0FFF1FE65EFE4F208131813F +:10166000FB01EA5EFE4F808190E004C080E090E0E4 +:1016700020E030E0FA0131832083089580E189BDC4 +:1016800082E189BD09B400FEFDCF8091D8008F7D35 +:101690008093D8008091E00082608093E000809188 +:1016A000E00081FDFCCF0895CF92DF92EF92FF9290 +:1016B0000F931F93CF93DF93EC018B016A010E947C +:1016C000B70C811133C0C114D10439F0F601808107 +:1016D0009181081B190BC80FD91FE12CF12C0115A2 +:1016E000110519F18091E80085FD16C08091E80090 +:1016F0008E778093E800C114D10449F0F60180810F +:101700009181E80EF91EF182E08285E00FC00E940F +:10171000B70C882321F30AC089918093F10001500E +:101720001109FFEFEF1AFF0ADACF80E0DF91CF91C6 +:101730001F910F91FF90EF90DF90CF90089520912F +:10174000F8013091F9012617370748F06115710546 +:1017500039F42091E8002E772093E80001C0B90108 +:1017600040E061157105A9F12091F101222309F4EE +:1017700043C0253009F442C02091E80023FD40C059 +:101780002091E80022FD32C02091E80020FFE9CF3F +:101790004091F3002091F20030E0342BFC01CF01A6 +:1017A0006115710559F02830310540F4819180931D +:1017B000F100615071092F5F3F4FF1CF41E02830B8 +:1017C000310509F040E02091E8002E772093E800F1 +:1017D000C8CF4111C9CF0AC08091F101882361F0BF +:1017E000853061F08091E80083FD0AC08091E800B7 +:1017F00082FFF2CF80E0089582E0089583E00895AB +:1018000081E008952091F8013091F90126173707FA +:1018100048F06115710539F42091E8002E77209386 +:10182000E80001C0B901FC0120E06115710591F1EA +:101830008091F101882309F440C0853009F43FC04C +:101840008091E80083FD3DC08091E80082FD2FC0BB +:101850008091E80080FFE9CF2091F3008091F200B1 +:1018600090E0922B6115710559F08830910540F494 +:1018700024912093F1003196615071090196F2CFC5 +:1018800021E0089709F020E08091E8008E778093AE +:10189000E800CBCF2111CCCF0AC08091F101882381 +:1018A00061F0853061F08091E80083FD0AC080918D +:1018B000E80082FFF2CF80E0089582E0089583E09F +:1018C000089581E00895982F973058F59093E90096 +:1018D000981739F07091EC002091ED005091F000D4 +:1018E00003C0242F762F50E021FF19C03091EB0068 +:1018F0003E7F3093EB003091ED003D7F3093ED0063 +:101900003091EB0031603093EB007093EC0020934A +:10191000ED005093F0002091EE0027FF07C09F5F7D +:10192000D3CF8F708093E90081E0089580E008951F +:101930008091F20187FF11C08091E80082FD05C00F +:101940008091F1018111F8CF11C08091E8008B776F +:101950000BC08091F101882349F08091E80080FF5D +:10196000F8CF8091E8008E778093E8000895209169 +:10197000E4003091E50095E64091EC00842F817001 +:1019800040FF22C08091E80080FD1CC08091F101E1 +:10199000882391F0853091F08091EB0085FD10C097 +:1019A0004091E4005091E5004217530729F39A0152 +:1019B000915011F784E0089582E0089583E008953E +:1019C00081E0089580E008954091E80042FFDECF75 +:1019D00008950E94570D0E945F0DE0EEF0E08081B7 +:1019E00081608083E8EDF0E080818F77808319BC8F +:1019F000A7EDB0E08C918E7F8C9380818F7E808369 +:101A00001092F00108950F931F93CF93DF930E94DC +:101A1000570D0E945F0DC8EDD0E088818F778883D5 +:101A200088818068888388818F7D888319BC109223 +:101A3000F1011092ED011092EF011092EE0100EE13 +:101A400010E0F80180818B7F8083888181608883AA +:101A500042E060E080E00E94630CE1EEF0E0808113 +:101A60008E7F8083E2EEF0E08081816080838081E0 +:101A700088608083F80180818E7F80838881806187 +:101A80008883DF91CF911F910F910895E8EDF0E0E9 +:101A900080818F7E8083E7EDF0E0808181608083AC +:101AA00084E082BF81E08093F0010C94030DE8EDA7 +:101AB000F0E080818E7F80831092E2000895109282 +:101AC000DA001092E10008951F920F920FB60F9264 +:101AD00011242F933F934F935F936F937F938F9333 +:101AE0009F93AF93BF93EF93FF938091E10082FFA9 +:101AF0000BC08091E20082FF07C08091E1008B7FE4 +:101B00008093E1000E94CB0F8091DA0080FF1FC01C +:101B10008091D80080FF1BC08091DA008E7F809377 +:101B2000DA008091D90080FF0DC080E189BD82E19B +:101B300089BD09B400FEFDCF81E08093F1010E94D0 +:101B4000C60905C019BC1092F1010E94D409809108 +:101B5000E10080FF19C08091E20080FF15C08091F4 +:101B6000E2008E7F8093E2008091E20080618093AA +:101B7000E2008091D80080628093D80019BC85E093 +:101B80008093F1010E94D8098091E10084FF30C068 +:101B90008091E20084FF2CC080E189BD82E189BD93 +:101BA00009B400FEFDCF8091D8008F7D8093D800CE +:101BB0008091E1008F7E8093E1008091E2008F7E32 +:101BC0008093E2008091E20081608093E200809146 +:101BD000ED01882311F084E007C08091E30087FDC8 +:101BE00002C081E001C083E08093F1010E94DA0924 +:101BF0008091E10083FF29C08091E20083FF25C02E +:101C00008091E100877F8093E10082E08093F10181 +:101C10001092ED018091E1008E7F8093E100809130 +:101C2000E2008E7F8093E2008091E20080618093E9 +:101C3000E20042E060E080E00E94630C8091F000EE +:101C400088608093F0000E94D709FF91EF91BF91C7 +:101C5000AF919F918F917F916F915F914F913F9144 +:101C60002F910F900FBE0F901F9018951F920F92FB +:101C70000FB60F9211242F933F934F935F936F935F +:101C80007F938F939F93AF93BF93CF93DF93EF9304 +:101C9000FF93C091E900CF708091EC00D82FD170F4 +:101CA00080FDD0E81092E9008091F000877F80935A +:101CB000F00078940E947A0E1092E9008091F00072 +:101CC00088608093F000CD2BCF70C093E900FF9126 +:101CD000EF91DF91CF91BF91AF919F918F917F91C4 +:101CE0006F915F914F913F912F910F900FBE0F9089 +:101CF0001F9018951F93CF93DF93CDB7DEB7AA97A8 +:101D00000FB6F894DEBF0FBECDBFE2EFF1E088E082 +:101D10008E0F9091F10091938E13FBCF0E94F609E4 +:101D20008091E80083FF1FC18091F2019091F3013F +:101D3000492F50E04A30510508F015C1FA01EA5A1E +:101D4000FF4F0C94B523803881F0823809F00BC125 +:101D50008091F6018F708093E9008091EB0085FB04 +:101D6000882780F91092E90006C08091EE019091D9 +:101D7000EF01911182609091E800977F9093E800C5 +:101D80008093F1001092F100C8C0282F2D7F09F038 +:101D9000EAC0882319F0823061F0E5C08091F40137 +:101DA000813009F0E0C0933009F080E08093EF01CA +:101DB0002BC08091F401811127C08091F6018F70B2 +:101DC00009F4D1C08093E9002091EB0020FF1CC0F2 +:101DD000933021F48091EB00806214C09091EB006D +:101DE00090619093EB0021E030E0A90102C0440F24 +:101DF000551F8A95E2F74093EA001092EA0080911D +:101E0000EB0088608093EB001092E9008091E8007D +:101E1000877F86C08111A7C01091F4011F77809140 +:101E2000E3008078812B8093E3008091E800877F36 +:101E30008093E8000E94980C8091E80080FFFCCF1E +:101E40008091E30080688093E300111102C082E07A +:101E500001C083E08093F10186C08058823008F091 +:101E600082C08091F4019091F5018C3D53E095077B +:101E700079F583E08A838AE289834FB7F894DE019B +:101E8000139620E03EE051E2E32FF0E0509357003C +:101E9000E49120FF03C0E295EF703F5FEF708E2F5B +:101EA00090E0EA3010F0C79601C0C0968D939D93E4 +:101EB0002F5F243149F74FBF8091E800877F8093DF +:101EC000E8006AE270E0CE0101960E949F0B14C008 +:101ED000AE014F5F5F4F6091F6010E94E60ABC01C0 +:101EE000009709F440C09091E800977F9093E80034 +:101EF00089819A810E94020C8091E8008B778093FF +:101F0000E80031C0803879F58091E800877F8093C0 +:101F1000E8008091ED018093F1008091E8008E77D8 +:101F20008093E8000E94980C1EC081111CC0909103 +:101F3000F4019230C0F48091E800877F8093E8003C +:101F40009093ED010E94980C8091ED01811106C0E3 +:101F50008091E30087FD02C081E001C084E08093AE +:101F6000F1010E94E2098091E80083FF0AC080919C +:101F7000E800877F8093E8008091EB008062809387 +:101F8000EB00AA960FB6F894DEBF0FBECDBFDF916F +:101F9000CF911F9108950895CF938091F1018823E7 +:101FA000A1F0C091E900CF709091EC00892F817071 +:101FB00090FD80E8C82B1092E9008091E80083FD35 +:101FC0000E947A0ECF70C093E900CF91089590934C +:101FD0007501809374010895E0917401F091750189 +:101FE000309721F00190F081E02D099480E0089570 +:101FF000E0917401F0917501309721F00280F38136 +:10200000E02D09940895E0917401F09175013097E5 +:1020100021F00480F581E02D09940895209172014A +:10202000309173018217930771F09093730180933D +:102030007201E0917401F0917501309721F00680F2 +:10204000F781E02D0994089520917001309171017C +:102050008217930771F09093710180937001E09162 +:102060007401F0917501309721F00084F185E02D25 +:102070000994089508950C943A100E94941B0E94AC +:1020800033030C94561C9F92AF92BF92CF92DF9273 +:10209000EF92FF920F931F93CF93DF9300D000D066 +:1020A00000D0CDB7DEB70E944B030DE010E0AA24AC +:1020B000A394B12C902E802F0E94390498012958A6 +:1020C0003E4F6901F901F080F826A1F40150110991 +:1020D00088F78FEF89838A831B820E949D1B816012 +:1020E000782F9D838C8349815A816B818D810E94D9 +:1020F000DA102FC09091DA0191FF04C08E830E9404 +:102100003F048E8125E030E0A501022E01C0440F7E +:102110000A94EAF7E42E4F21C1F029839A828E2196 +:1021200091E009F490E09B830E949D1B8160782FD1 +:102130009D838C8349815A816B818D810E94DA1045 +:10214000F6018081E826E08204C021503109E0F6E2 +:10215000BDCF0E943D1F109176010E94EC0F181711 +:10216000B9F00E94EC0F8093760126960FB6F89492 +:10217000DEBF0FBECDBFDF91CF911F910F91FF90BA +:10218000EF90DF90CF90BF90AF909F900C94E508B8 +:1021900026960FB6F894DEBF0FBECDBFDF91CF916C +:1021A0001F910F91FF90EF90DF90CF90BF90AF9075 +:1021B0009F900895CF93DF93CDB7DEB72B970FB6DF +:1021C000F894DEBF0FBECDBF4F83588769877A87EB +:1021D0008B87DE01119686E0FD0111928A95E9F761 +:1021E00085E0FE01379601900D928A95E1F74981CD +:1021F0005A816B817C818D819E810E9423172B9651 +:102200000FB6F894DEBF0FBECDBFDF91CF9108951A +:10221000CF93882309F4C2C0C82F823859F40E9492 +:10222000EC0F81FDBBC089E30E94FD190E94CA1A10 +:1022300089E30CC0833879F40E94EC0F80FDAEC0B6 +:1022400083E50E94FD190E94CA1A83E50E943F1A85 +:10225000CF910C94CA1A843859F40E94EC0F82FD75 +:102260009DC087E40E94FD190E94CA1A87E4EECF40 +:102270008CEF8C0F813A48F48C2F0E9480218111C1 +:102280008DC08C2F0E94FD19E3CF80E28C0F883027 +:1022900048F4C77081E001C0880FCA95EAF70E9430 +:1022A000831AD6CF8BE58C0F833078F4C53A29F0AA +:1022B000C63A31F083E890E005C081E890E002C0C2 +:1022C00082E890E0CF910C940E1088E58C0F83315A +:1022D00008F064C0C83A39F1C93A41F1CA3A49F143 +:1022E000CB3A51F1CC3A59F1CD3A61F1C03B69F1A9 +:1022F000CE3A71F1CF3A79F1C13B81F1C23B89F11C +:10230000C33B91F1C43B99F1C53BA1F1C63BA9F197 +:10231000C73BB1F1C83BB9F1C93BC1F1CA3BC9F1F7 +:1023200080E090E038C082EE90E035C089EE90E029 +:1023300032C08AEE90E02FC085EB90E02CC086EB97 +:1023400090E029C087EB90E026C08CEC90E023C0A1 +:102350008DEC90E020C083E891E01DC08AE891E018 +:102360001AC082E991E017C084E991E014C081E2CB +:1023700092E011C083E292E00EC084E292E00BC0D2 +:1023800085E292E008C086E292E005C087E292E032 +:1023900002C08AE292E0CF910C942410CF9108956C +:1023A000882309F44BC0823859F40E94EC0F81FF56 +:1023B00045C089E30E94FD190E94CA1A89E30CC036 +:1023C000833871F40E94EC0F80FF38C083E50E94CF +:1023D000FD190E94CA1A83E50E943F1A0C94CA1A7A +:1023E000843859F40E94EC0F82FF28C087E40E94D1 +:1023F000FD190E94CA1A87E4EFCF9CEF980F913A1B +:1024000058F390E2980F983050F4877091E001C033 +:10241000990F8A95EAF7892F0E94891ADFCF9BE5E9 +:10242000980F933020F480E090E00C940E10885ABE +:10243000833120F480E090E00C94241008958823E8 +:1024400021F00E94831A0C94CA1A0895882321F05F +:102450000E94891A0C94CA1A08957F928F929F92B3 +:10246000AF92BF92CF92DF92EF92FF920F931F93A2 +:10247000CF93DF931F92CDB7DEB77C01C62E772EA8 +:10248000FC01058102950F70128111110E94A01AA2 +:102490000E94F619882379F0112369F080E28C0DEF +:1024A000883048F082E00E94DF190E94F61991E01E +:1024B000D82ED92601C0D12CE72DE295EF70F0E09F +:1024C000E05AFF4F0C94B523872D807F072D0F70A6 +:1024D000882311F00295007F112389F0002309F46D +:1024E00090C180E28C0D883020F4802F0E94831AE6 +:1024F00003C0802F0E94931A0E94CA1A82C18C2D99 +:102500000E94D011002309F495C180E28C0D88301F +:1025100020F4802F0E94891A03C0802F0E94991AEC +:102520000E94CA1A87C1972D907F872D8F70903295 +:1025300011F08295807FCC2021F0F1E0CF16B1F030 +:102540001EC0112349F0002309F414C1013009F021 +:1025500011C10E94B31A6EC1002319F0013009F4B1 +:1025600069C189830E94B61A89810AC1112321F0A9 +:10257000023008F05FC1FEC001115CC101C111232E +:1025800021F0002309F4F6C03CC1002309F4F8C08F +:102590003EC1872D86958695837090E0009719F04F +:1025A000019761F047C1112321F08C2D972D937075 +:1025B00002C080E090E00E940E103CC1112321F087 +:1025C0008C2D972D937002C080E090E00E94241023 +:1025D00031C18C2D112319F00E94451E02C00E94AA +:1025E000AD1E0E94321F26C1872D837009F052C094 +:1025F000111120C18C2D829586958770880F880FC8 +:102600009C2D9F70892E912CA12CB12C082E04C0DA +:10261000880C991CAA1CBB1C0A94D2F7C4FE14C0D7 +:102620000FE010E020E030E0B901A80104C0440F41 +:10263000551F661F771F8A95D2F7CB01BA016095A7 +:1026400070958095909503C060E070E0CB01272DD8 +:1026500026952695237030E02230310569F023302D +:10266000310589F0682979298A299B29213031058A +:1026700071F00E946B18DEC0682979298A299B298C +:102680000E948718D7C00E946B18C501B4010E9430 +:102690004F18D0C0112319F0872D817001C0869585 +:1026A000882309F4C7C08C2D829586958770880F82 +:1026B000880F9C2D9F70892E912CA12CB12C082E57 +:1026C00004C0880C991CAA1CBB1C0A94D2F7C4FE37 +:1026D00014C00FE010E020E030E0B901A80104C010 +:1026E000440F551F661F771F8A95D2F7CB01BA0199 +:1026F000609570958095909503C060E070E0CB0187 +:10270000272D269526952370422F50E04230510503 +:1027100069F04330510589F0682979298A299B2974 +:102720004130510571F00E94451984C0682979290A +:102730008A299B290E9461197DC00E944519C50103 +:10274000B4010E94291976C08C2D90E0FC01E05E56 +:10275000F109E531F10508F050C0E059FF4F0C9444 +:10276000B5230C2D0F70872D8F71112331F00E942E +:10277000C218802F0E941F125DC00E94E318802F94 +:102780000E94261257C0112339F0011153C0872D22 +:102790008F710E9408194EC0023008F04BC0F7CF6D +:1027A000112339F0872D8F710E94C21843C0112365 +:1027B000C9F3872D8F710E94E3183CC0112329F0C3 +:1027C000872D8F710E94AD1835C00E94A31832C0AA +:1027D000112351F0172D1F71812F0E94C21863E041 +:1027E000812F0E94D61926C081E00E94DF19023095 +:1027F00008F182E00E94DF191DC0112331F000238F +:1028000089F28C2D0E94081115C0002391F28C2DA5 +:102810000E94D0110FC0472D4F706C2DC7010E9430 +:1028200015050E94C71706C0472D4F706C2DC701B4 +:102830000E94F405DD20F9F00E94D21980FD1BC032 +:10284000F70112820E94CC190E94C218C7010E948F +:102850004A140E94CC190F90DF91CF911F910F91D4 +:10286000FF90EF90DF90CF90BF90AF909F908F90B0 +:102870007F900C94E3180F90DF91CF911F910F91EF +:10288000FF90EF90DF90CF90BF90AF909F908F9090 +:102890007F9008950F931F93CF93DF93EC0188816E +:1028A00099812B813C81232BB9F09F3F11F48F3FFD +:1028B00099F0CE010E944C05882371F068817981DE +:1028C0008A810E94C8198C010E947D190E944418B7 +:1028D000B801CE010E942D12DF91CF911F910F916F +:1028E00008950E94A01A0E94B01A0E94751A0E94B0 +:1028F000CA1A0E94E31F0E94321F80E090E00E94EB +:102900000E1080E090E00C9424100E94901A0C9419 +:1029100071140E94BD19292F22952F7030E02C30A0 +:1029200031054CF42A3031056CF422503109223043 +:102930003105A8F407C02C30310569F02F3031057E +:1029400051F00DC0803F69F018F4803E40F409C09A +:10295000843F29F406C093FB882780F9089580E01E +:10296000089581E00895CF93DF9300D000D01F92A7 +:10297000CDB7DEB70F900F900F900F900F90DF91B3 +:10298000CF910895CF93DF9300D000D000D0CDB782 +:10299000DEB726960FB6F894DEBF0FBECDBFDF912F +:1029A000CF9108951F93CF93DF93C091850116E0D7 +:1029B00080918601C81799F0D0E01C9FF0011D9FFF +:1029C000F00D1124E957FE4F4081518162817381DE +:1029D000848195810E94C2142196C770E9CFDF914E +:1029E000CF911F9108954091B7015091B801609126 +:1029F000B9017091BA018091BB019091BC010C9416 +:102A0000C2148091BC0182958F7009F054C08091EE +:102A1000B901882309F44FC080918501A0918601F6 +:102A20006091B7017091B8014091BA015091BB011A +:102A3000B6E08A1709F43FC090E041155105C1F195 +:102A40007F3F11F46F3FA1F1B89FF001B99FF00DE6 +:102A50001124E957FE4F218172132AC0208162138D +:102A600027C02281211124C02381348124173507F6 +:102A700010F421503109241B350B283C3105C0F4DA +:102A80002091BC012F7020612093BC0126E0289F7B +:102A9000F001299FF00D1124E457FE4F80818F70C3 +:102AA0008061808387EB91E00E944A140C94D214D9 +:102AB00001968770BECF0895CF92DF92EF92FF927A +:102AC0000F931F93CF93DF93CDB7DEB762970FB607 +:102AD000F894DEBF0FBECDBF8C0185E0F801DE01AA +:102AE0001D9601900D928A95E1F7D8014C911196AF +:102AF0005C91119712966C9112971396CD90DC9081 +:102B000014973091B7017091B8018091BA019091FA +:102B1000BB01009709F46BC17F3F19F43F3F09F4F3 +:102B200066C1E090B901EE2009F4C0C02091BC015B +:102B3000C816D90628F0F601E81BF90BCF0104C02E +:102B4000809590958C0D9D1DFF24F394883C9105F4 +:102B500078F0F12C207F09F0C6C07C2DD98AC88A74 +:102B600089890E94B31487EB91E00E944A14B1C096 +:102B7000822F807F09F046C0751314C0341312C031 +:102B8000611110C02F7020612093BC010E94F314CA +:102B900087EB91E00E944A148091BC01D801159600 +:102BA0008C932EC0CD2819F15F3F11F44F3FF9F0FF +:102BB000F62E61111CC0809185012091860136E0BE +:102BC000821709F45AC090E0389FF001399FF00D48 +:102BD0001124E957FE4F7181571306C070814713C6 +:102BE00003C07281711103C001968770E9CFF62E80 +:102BF000662309F418C18091BC0181608093BC01F7 +:102C0000F12C11C1751308C0341306C0611104C042 +:102C10008091BC01D801C3C04D875E878D859E859C +:102C20006A8B0E9489146A898823E1F16623D1F1B5 +:102C30002091BC01822F82958F7090E0029774F0F2 +:102C40008091B7019091B80198878F831986DB86B0 +:102C5000CA862C87CE0107960E944A1486E0F801A6 +:102C6000A7EBB1E001900D928A95E1F70E94011562 +:102C70000E94F314FF24F394D6C04D875E878D85A0 +:102C80009E850E94BD19292F22952F7030E0223099 +:102C900031050CF0BCC09F7009F0B6C0805E883072 +:102CA00008F4C1C0C8010E944A14E4CFC816D9066E +:102CB00008F453C0F601E81BF90BCF01883C9105DD +:102CC00008F450C0F12C7C2DD98AC88A89890E94C9 +:102CD000B314E7EBF1E086E0DF011D928A95E9F796 +:102CE0000E94F314A0C0751314C0341312C06111F4 +:102CF00010C08091BC01F8018583C8010E944A146C +:102D000086E0E7EBF1E0DF011D928A95E9F7FE2C02 +:102D10008AC04D875E878D859E856A8B0E94891447 +:102D20006A89882309F4BECF662309F4BBCF2091BA +:102D3000BC01822F82958F7090E002970CF48ECFA9 +:102D40008091B7019091B8019A8389831B82DD82BB +:102D5000CC822E83CE0101967FCF809590958C0DED +:102D60009D1DACCFF62E662309F49CCF75132EC0A3 +:102D700034132CC02091BC0120FD1FC0822F8295EE +:102D80008F70D9F0D80115962C9315978F3049F094 +:102D90008F5F982F9295907F822F8F70892B159639 +:102DA0008C93C8010E944A1486E0F801A7EBB1E0B9 +:102DB00001900D928A95E1F793CF86E0F801A7EB99 +:102DC000B1E001900D928A95E1F72DC04D875E87A5 +:102DD0008D859E850E948914811140CF8091BC0110 +:102DE00081608093BC01C8010E944A141CC0662304 +:102DF00009F458CF4D875E878D859E850E94891482 +:102E0000882309F44FCF2ACF811148CF0CC024303A +:102E100031050CF047CF9F7009F440CFF801958140 +:102E2000907F09F03BCF8F2D62960FB6F894DEBFEE +:102E30000FBECDBFDF91CF911F910F91FF90EF900B +:102E4000DF90CF9008951F93CF93DF93CDB7DEB778 +:102E50002C970FB6F894DEBF0FBECDBF4F835887B7 +:102E600069877A878B879C87CE0107960E945C15BD +:102E7000882369F08F8198852A853B85232BF1F182 +:102E80009F3F09F063C08F3F09F060C037C086E004 +:102E9000FE013796DE01119601900D928A95E1F7B9 +:102EA0006F817885EA85FB85309741F17F3F11F48A +:102EB0006F3F21F12091860130E0C90101968770B2 +:102EC00099274091850150E08417950709F447C080 +:102ED00069837A83FD83EC8396E0929FD001939F70 +:102EE000B00D1124A957BE4FFE01319601900D92ED +:102EF0009A95E1F7809386010E94D21416E08091A2 +:102F00008501909186018917C1F1189FC001112494 +:102F100089579E4F0E945C15882379F1E0918501C5 +:102F20001E9FF0011124E957FE4F408151816281BB +:102F30007381848195810E94C2148091850190E003 +:102F400001968770992780938501D9CF4F81588545 +:102F500069857A858B859C850E94C214CFCF0E949B +:102F600085141092860110928501E7EBF1E086E06E +:102F7000DF011D928A95E9F7C1CF2C960FB6F89420 +:102F8000DEBF0FBECDBFDF91CF911F910895EF92AD +:102F9000FF920F931F93CF93DF938C01009709F457 +:102FA0006CC0F12CEE24E394E8012196F8018491A1 +:102FB000843740F4843008F051C0813081F0823091 +:102FC00019F15BC0853709F444C0A8F19CE7980F5C +:102FD000903708F052C08F770E94D01141C00E5F29 +:102FE0001F4FFE01C49180E28C0F883048F4C770F7 +:102FF0008E2D01C0880FCA95EAF70E94A31A14C04B +:103000008C2F0E9408112DC00E5F1F4FFE01C4912E +:1030100080E28C0F883058F4C7708E2D01C0880F65 +:10302000CA95EAF70E94A91A0E94CA1A1AC08C2FE0 +:103030000E94D01116C00E5F1F4FFE01C491CC2319 +:1030400081F08FE99FE00197F1F700C00000C150C7 +:10305000F6CF0E5F1F4FFE01F49003C00E940811CF +:103060008E018F2D882309F49FCFEFE9FFE0319780 +:10307000F1F700C000008150F5CFDF91CF911F9193 +:103080000F91FF90EF90089508956093C1017093A0 +:10309000C2018093C3019093C4010C9471140F93E7 +:1030A0001F930091C1011091C2012091C301309181 +:1030B000C401DC01CB01802B912BA22BB32B80937D +:1030C000C1019093C201A093C301B093C4011F91A9 +:1030D0000F910C9471140F931F930091C1011091E3 +:1030E000C2012091C3013091C401DC01CB018023D6 +:1030F0009123A223B3238093C1019093C201A09393 +:10310000C301B093C4011F910F910C9471140F93DC +:103110001F930091C1011091C2012091C301309110 +:10312000C401DC01CB0180279127A227B32780931C +:10313000C1019093C201A093C301B093C4011F9138 +:103140000F910C9471141092BD011092BE01109257 +:10315000BF011092C0010C94711441E050E060E096 +:1031600070E004C0440F551F661F771F8A95D2F781 +:103170004093BD015093BE016093BF017093C001A5 +:103180000C94711441E050E060E070E004C0440F22 +:10319000551F661F771F8A95D2F78091BD019091C8 +:1031A000BE01A091BF01B091C001482B592B6A2BE1 +:1031B0007B2B4093BD015093BE016093BF01709380 +:1031C000C0010C94711441E050E060E070E004C074 +:1031D000440F551F661F771F8A95D2F7409550956B +:1031E000609570958091BD019091BE01A091BF0145 +:1031F000B091C001482359236A237B234093BD012A +:103200005093BE016093BF017093C0010C94711480 +:1032100041E050E060E070E004C0440F551F661FBD +:10322000771F8A95D2F78091BD019091BE01A09140 +:10323000BF01B091C001482759276A277B274093D7 +:10324000BD015093BE016093BF017093C0010C9407 +:1032500071140F931F930091BD011091BE01209135 +:10326000BF013091C001DC01CB01802B912BA22B3F +:10327000B32B8093BD019093BE01A093BF01B09387 +:10328000C0011F910F910C9471140F931F93009123 +:10329000BD011091BE012091BF013091C001DC0140 +:1032A000CB0180239123A223B3238093BD0190936C +:1032B000BE01A093BF01B093C0011F910F910C9468 +:1032C00071140F931F930091BD011091BE012091C5 +:1032D000BF013091C001DC01CB0180279127A227DB +:1032E000B3278093BD019093BE01A093BF01B0931B +:1032F000C0011F910F910C9471140895CF92DF9229 +:10330000EF92FF920F931F93CF93DF938C01C090A6 +:10331000C101D090C201E090C301F090C40180913E +:10332000BD019091BE01A091BF01B091C001C82A1A +:10333000D92AEA2AFB2ACFE1D0E0D701C6010C2E18 +:1033400004C0B695A795979587950A94D2F780FF04 +:1033500006C0B8018C2F0E944A08019721F42197DA +:1033600060F780E001C08C2FDF91CF911F910F910A +:10337000FF90EF90DF90CF900895CF93DF93EC0113 +:103380000E947E19BE010E944A08DF91CF910895E4 +:10339000CB010E94BD1908958091C5018595859541 +:1033A000859508958091C5018770089598E0899F5B +:1033B00090011124262B2093C5010C94C218209152 +:1033C000C501809582238093C501982F977069F479 +:1033D00030E0482F552747FD50952417350729F031 +:1033E0008595859585950C94E31808959091C50170 +:1033F000977081E009F480E0089590910C01992381 +:1034000021F090910D01911109C020910E01309190 +:103410000F01F90132969FEF40E01FC0982F96955B +:10342000969596959F3050F5E0910E01F0910F0121 +:10343000E90FF11D877021E030E0A90102C0440FBF +:10344000551F8A95E2F7CA019181892B81830895DE +:103450009F3F39F04F5F4E3041F051915813F8CFF4 +:103460000DC05111F7CF942FF5CF9F3F39F0F901DF +:10347000E90FF11D97FDFA958283089508959091C3 +:103480000C01992321F090910D01911109C0209117 +:103490000E0130910F01F9013296205F3F4F1FC09E +:1034A000982F9695969596959F30F0F4E0910E01A1 +:1034B000F0910F01E90FF11D877021E030E0A901C3 +:1034C00002C0440F551F8A95E2F7CA018095918189 +:1034D0008923818308953196E217F30729F09081BB +:1034E0009813F9CF1082F7CF089581E090E0E09132 +:1034F0000E01F0910F01E80FF91F10820196803143 +:103500009105A9F708959091D901892B8093D9014C +:10351000089580959091D90189238093D9010895C8 +:103520001092D90108959091D801892B8093D801E8 +:10353000089580959091D80189238093D8010895AA +:103540001092D80108959091D701892B8093D701CB +:10355000089580959091D70189238093D70108958C +:103560001092D70108958093C60108951092C60164 +:10357000089580910E0190910F01FC0131969C01FC +:10358000205F3F4F80E0919191118F5FE217F30729 +:10359000D1F70895E0910E01F0910F018091D901CA +:1035A0008083E0910E01F0910F0190818091D8010C +:1035B000892B8083E0910E01F0910F019081809121 +:1035C000D701892B80838091C601882361F0E09127 +:1035D0000E01F0910F019081892B80830E94B91A0E +:1035E00081111092C60180910E0190910F010C94EF +:1035F000F80F20E0009739F0AC01415051098423C5 +:1036000095232F5FF7CF822F0895CF92DF92EF920D +:10361000FF926C01EE24FF24C114D104E104F104F3 +:1036200021F0C701B60120E101C020E0C72ED82E4D +:10363000E92EFF24C114D104E104F10419F0285F3C +:10364000C701B6016B017C0154E0F694E794D7946E +:10365000C7945A95D1F7C114D104E104F10419F0CB +:103660002C5FC701B6016B017C0142E0F694E79440 +:10367000D794C7944A95D1F7C114D104E104F10459 +:1036800019F02E5FC701B601DC01CB01B695A795F5 +:1036900097958795892B8A2B8B2B09F02F5F822F8B +:1036A000FF90EF90DF90CF9008958091F1018430EA +:1036B00021F11092DB0120E488E190E00FB6F8944C +:1036C000A895809360000FBE2093600080E00E9468 +:1036D000E50883B7817F846083BF83B7816083BF40 +:1036E0007894889583B78E7F83BF88E10FB6F8946E +:1036F00080936000109260000FBE089508950895B1 +:103700000E947E1B0E944B030E947F1B0E9440046C +:1037100091E0811101C090E0892F08950E948514E5 +:103720000E94EC0F0C94E50882E084BD93E095BD07 +:103730009AEF97BD80936E0008952FB7F89480910B +:10374000DC019091DD01A091DE01B091DF012FBF7E +:103750000895CF92DF92EF92FF920F931F932FB7AE +:10376000F8944091DC015091DD016091DE0170918F +:10377000DF012FBF6A017B01EE24FF248C0120E0D2 +:1037800030E0C016D106E206F30610F441505109AC +:103790009A01281B390BC9011F910F91FF90EF90DF +:1037A000DF90CF9008951F920F920FB60F921124C1 +:1037B0008F939F93AF93BF938091DC019091DD0134 +:1037C000A091DE01B091DF010196A11DB11D809392 +:1037D000DC019093DD01A093DE01B093DF01BF9186 +:1037E000AF919F918F910F900FBE0F901F901895E2 +:1037F0000E94E90CF8942FEF87EA91E6215080406F +:103800009040E1F700C0000087E090EBDC0180937E +:10381000FB019093FC01A093FD01B093FE019CE09D +:1038200088E10FB6F894A895809360000FBE90933E +:103830006000FFCFEF92FF920F931F93CF93DF9320 +:10384000D82FCDE08C2F0E94390405E010E0E82E3F +:10385000F12CC701002E02C0959587950A94E2F7D6 +:1038600080FF09C0602F7C2F80E00E94F505D813EF +:1038700002C081E006C00150110958F7C15010F78D +:1038800080E0DF91CF911F910F91FF90EF9008950D +:10389000CF93C82F8CE20E941A1C882321F08C2F12 +:1038A000CF910C941A1C80E0CF910895CF930E9481 +:1038B0009D1D811102C00E94831DC5E6C15049F0C3 +:1038C0000E944B038FE39CE90197F1F700C00000D1 +:1038D000F5CF89E20E94481C811113C18AE20E943F +:1038E000481C81110E94831D85E00E94481C8111A3 +:1038F0000E94F81B0E94A81D8093DA0187E00E94B5 +:10390000481C8823A9F18BE10E94481C882351F0B0 +:103910008091DA0181FB222720F991E0922790FB28 +:1039200081F90EC08EE00E94481C882361F08091CE +:10393000DA0182FB222720F991E0922790FB82F99D +:103940008093DA0115C080E10E94481C9091DA0151 +:10395000882341F093FB222720F981E0822780FB16 +:1039600093F904C0892F809580FB90F99093DA0138 +:103970008091DA010E94AC1D0E94BA1D8093FA0169 +:1039800080EE0E94481C882341F08091FA01982F14 +:10399000909590FB80F98093FA0189E30E94481C7E +:1039A000882359F08091FA0181FB222720F991E0C8 +:1039B000922790FB81F98093FA0182EE0E94481CC5 +:1039C000882359F08091FA0182FB222720F991E0A7 +:1039D000922790FB82F98093FA0186EE0E94481CA0 +:1039E000882359F08091FA0183FB222720F991E086 +:1039F000922790FB83F98093FA0183EE0E94481C82 +:103A0000882359F08091FA0184FB222720F991E064 +:103A1000922790FB84F98093FA0185E30E94481C69 +:103A2000882359F08091FA0185FB222720F991E043 +:103A3000922790FB85F98093FA0181E30E94481C4C +:103A4000882359F08091FA0186FB222720F991E022 +:103A5000922790FB86F98093FA0181E10E94481C2D +:103A6000882359F08091FA0187FB222720F991E001 +:103A7000922790FB87F98093FA018091FA010E94C6 +:103A8000BE1D8091FA0187FB882780F980930D0184 +:103A900087E20E94481CC82F8EE10E94481C8111B9 +:103AA000C2608FE10E94481C8111C46080E20E94C4 +:103AB000481C8111C86081E20E94481C8111C061CC +:103AC00082E20E94481C8111C06283E20E94481C6D +:103AD0008111C06484E20E94481C882311F0C068F0 +:103AE00002C0CC2329F08C2F0E94B51D6C2F03C07F +:103AF0000E94B11D682F70E080E090E0CF910C949F +:103B00004518CF9108956DEE7EEF80E090E00E9421 +:103B1000EF2360E082E090E00E94DD2360E083E03C +:103B200090E00E94DD2360E084E090E00E94DD23CD +:103B300060E085E090E00C94DD2380E090E00E945E +:103B4000D72321E08D3E9E4F09F020E0822F08957B +:103B500082E090E00C94CF23682F82E090E00C94F8 +:103B6000DD2383E090E00C94CF23682F83E090E086 +:103B70000C94DD2384E090E00C94CF23682F84E044 +:103B800090E00C94DD238091E20180FF0BC06091F6 +:103B9000130185E0689FB0011124759567957595AF +:103BA00067952BC081FF09C06091130185E0689F74 +:103BB000B00111247595679520C082FF07C0609100 +:103BC000130185E0689FB001112417C09091E301B3 +:103BD0009923D1F060911201961788F72091130173 +:103BE00085E0289F90011124929FA001939F500D82 +:103BF000112470E0CA010E94A1236038710540F4CD +:103C00006115710539F002C065E070E0862F0895F6 +:103C10008FE7089581E008958091E20180FF08C058 +:103C20006091110170E0759567957595679521C054 +:103C300081FF06C06091110170E07595679519C00C +:103C400082FF04C06091110170E010C09091E30107 +:103C50009923C1F0609110019617A0F7809111018E +:103C6000899FC001112470E00E94A1236038710572 +:103C700028F46115710521F0862F08958FE70895C6 +:103C800081E0089561E070E0F4CF803F21F40E946C +:103C9000C31D819504C0813F29F40E94C31D8093F8 +:103CA000E6010895823F21F40E94C31D819504C05E +:103CB000833F29F40E94C31D8093E5010895893F45 +:103CC00019F40E940C1E05C08A3F31F40E940C1E9C +:103CD00081958093E70108958B3F21F40E940C1E8B +:103CE000819504C08C3F29F40E940C1E8093E8014A +:103CF0000895843F21F48091E401816017C0853FDD +:103D000021F48091E401826011C0863F21F480910A +:103D1000E40184600BC0873F21F48091E401886056 +:103D200005C0883F31F48091E40180618093E40113 +:103D300008958D3F21F48091E20181600BC08E3F98 +:103D400021F48091E201826005C08F3F29F48091C7 +:103D5000E20184608093E2010895803F39F480910C +:103D6000E60187FF6CC01092E60169C0813F29F42B +:103D70008091E6011816BCF362C09091E501823F84 +:103D800029F497FF5CC01092E50159C0833F19F4F4 +:103D90001916CCF354C0893F41F48091E7011816FD +:103DA0000CF04DC01092E7014AC08A3F29F480917F +:103DB000E70187FF44C0F6CF8B3F39F48091E801DB +:103DC00087FF3DC01092E8013AC08C3F29F48091F2 +:103DD000E8011816BCF333C0843F21F48091E4015C +:103DE0008E7F17C0853F21F48091E4018D7F11C043 +:103DF000863F21F48091E4018B7F0BC0873F21F443 +:103E00008091E401877F05C0883F31F48091E4010F +:103E10008F7E8093E40113C08D3F21F48091E201F5 +:103E20008E7F0BC08E3F21F48091E2018D7F05C013 +:103E30008F3F29F48091E2018B7F8093E201809192 +:103E4000E50181110EC08091E60181110AC08091C7 +:103E5000E701811106C08091E801811102C0109232 +:103E6000E301089584EE91E00E9403100E949D1BDF +:103E70009093E1018093E00108951F93CF93DF9326 +:103E80008091E0019091E1010E94A91BAC01909109 +:103E9000E301992321F02091140130E006C0209124 +:103EA00015018AE0289F900111244217530708F456 +:103EB00086C08091E501C091E601D091E7011091A3 +:103EC000E801811107C0C11176C0D11174C0111170 +:103ED00072C075C09F3F19F09F5F9093E301181661 +:103EE00024F40E94C31D8093E5018091E50187FFC2 +:103EF00005C00E94C31D81958093E5011C1624F422 +:103F00000E94C31D8093E6018091E60187FF05C0F2 +:103F10000E94C31D81958093E6016091E5016623AF +:103F200039F1C091E601CC2319F1772767FD70952F +:103F3000872F972F0E94B22223E333E343E35FE30B +:103F40000E9416230E947F226093E5016C2F772741 +:103F500067FD7095872F972F0E94B22223E333E3EA +:103F600043E35FE30E9416230E947F226093E601F1 +:103F70001D1624F40E940C1E8093E7018091E70136 +:103F800087FF05C00E940C1E81958093E7011116E2 +:103F900024F40E940C1E8093E8018091E80187FFC1 +:103FA00005C00E940C1E81958093E801DF91CF919E +:103FB0001F910C94321F9F3F09F08ECF96CFDF9157 +:103FC000CF911F910895E4EEF1E085E0DF011D92AD +:103FD0008A95E9F71092E3011092E2010895833087 +:103FE00081F128F4813059F08230D1F00895853084 +:103FF00009F449C0B8F1863009F456C0089580919B +:104000001501262F30E0280F311D2F3F310524F4F4 +:10401000680F6093150108958FEF8093150108953F +:1040200080911401262F30E0280F311D2F3F3105DC +:1040300024F4680F6093140108958FEF80931401A6 +:10404000089580911301262F30E0280F311D2F3F56 +:10405000310524F4680F6093130108958FEF809366 +:104060001301089580911201262F30E0280F311D91 +:104070002F3F310524F4680F6093120108958FEFEC +:1040800080931201089580911101262F30E0280FAE +:10409000311D2F3F310524F4680F609311010895FD +:1040A0008FEF80931101089580911001262F30E049 +:1040B000280F311D2F3F310524F4680F6093100144 +:1040C00008958FEF809310010895833011F128F443 +:1040D000813049F0823091F00895853081F120F1EE +:1040E0008630C1F1089580911501681720F4861B70 +:1040F000809315010895109215010895809114017F +:10410000681720F4861B80931401089510921401FF +:10411000089580911301681720F4861B8093130182 +:10412000089510921301089580911201681720F4E8 +:10413000861B8093120108951092120108958091B8 +:104140001101681720F4861B8093110108951092C5 +:104150001101089580911001681720F4861B809347 +:10416000100108951092100108950F931F938D313F +:1041700009F46BC008F03FC08E3009F47FC0C0F472 +:10418000873009F469C068F4863009F0B1C08091C5 +:10419000DA01817F8E7F8093DA0181E08093EA01EA +:1041A000A8C0883009F4A2C08B3009F49FC0A0C019 +:1041B000863109F49BC078F4803109F472C08131F2 +:1041C00009F096C00E94851490910D0181E0892725 +:1041D00080930D018BC0893109F488C08B3109F0BF +:1041E00087C08091DA0181FB222720F991E0922794 +:1041F00090FB81F94CC0853309F470C048F48732D4 +:1042000009F46CC008F459C0893209F467C070C061 +:10421000833438F48A3308F04EC0883309F466C01A +:1042200067C0833409F45AC0883409F061C00E9421 +:1042300085140FEF13ED20E3015010402040E1F70B +:1042400000C000000E94F81B51C00E9439220E9449 +:10425000EC0F0E94E5084AC09091DA01892F809501 +:10426000817080FB90F929F0966098609093DA0154 +:1042700040C0997F977F9093DA0138C08091DA012E +:1042800082FB222720F991E0922790FB82F980930C +:10429000DA01992359F18091DA0181608093DA0182 +:1042A00025C08091DA0183FB222720F991E0922733 +:1042B00090FB83F9ECCF895301C08D5141E050E070 +:1042C00060E070E08A019B0104C0000F111F221FF3 +:1042D000331F8A95D2F7C901B80104C061E070E0CC +:1042E00080E090E00E9445180E94851481E001C0A2 +:1042F00080E01F910F91089580E0089580E0089577 +:10430000CF93C82F8091EA01813079F018F0823084 +:10431000E9F187C0E0910E01F0910F0180818131B8 +:1043200069F0823209F07FC009C0E0910E01F0917E +:104330000F018081813111F0823261F48C2F0E9453 +:104340007C21811104C08C2F0E94B5201DC081E00A +:1043500090E01AC08C2F0E947E21811114C0C431BC +:1043600079F048F4CB3079F0C03109F060C082E0D8 +:104370008093EA0108C0C93219F0C83321F057C050 +:104380001092EA0154C081E0817053C0C93289F1B2 +:1043900018F5C43171F1A8F4C73009F046C08AE0BD +:1043A0008093150194E19093140193E0909313018D +:1043B0008093120188E08093110188E280931001BC +:1043C00034C0CE51C63088F5EC2FF0E0E65DFE4FEC +:1043D00080818093E90129C0CE34E9F020F4CB3408 +:1043E00021F56AE013C0C13579F0C235F1F461E01E +:1043F0000DC08091E901882319F01092E90115C0E0 +:1044000081E08093EA0115C061E006C08091E90176 +:104410000E94EF1F0AC06AE08091E9010E946520B6 +:1044200004C01092EA0180E004C081E002C080E094 +:10443000ABCFCF910895E1E8F0E080818860808380 +:104440008081816080838FB7F89493E09093890096 +:1044500090ED909388008FBF0895EFE6F0E08081A3 +:10446000826080830895EFE6F0E080818D7F808315 +:104470000895EFE6F0E0908182E089278083089537 +:104480001F920F920FB60F9211242F933F934F93C9 +:104490005F936F937F938F939F93AF93BF93EF93AC +:1044A000FF938091EB019091EC0101969093EC01C8 +:1044B0008093EB01811103C082E00E94E508E09146 +:1044C000EC01E695E695F0E0EC54FB4FE491809129 +:1044D000EB018E1303C080E00E94E508FF91EF918D +:1044E000BF91AF919F918F917F916F915F914F910C +:1044F0003F912F910F900FBE0F901F90189504D0F1 +:104500006894B1118DC0089570D088F09F5790F0D5 +:10451000B92F9927B751A0F0D1F0660F771F881FE8 +:10452000991F1AF0BA95C9F712C0B13081F077D04F +:10453000B1E0089574C0672F782F8827B85F39F0ED +:10454000B93FCCF3869577956795B395D9F73EF447 +:1045500090958095709561957F4F8F4F9F4F0895EF +:10456000E89409C097FB3EF490958095709561950D +:104570007F4F8F4F9F4F9923A9F0F92F96E9BB27C3 +:104580009395F695879577956795B795F111F8CF3F +:10459000FAF4BB0F11F460FF1BC06F5F7F4F8F4FAA +:1045A0009F4F16C0882311F096E911C0772321F0A0 +:1045B0009EE8872F762F05C0662371F096E8862F38 +:1045C00070E060E02AF09A95660F771F881FDAF78F +:1045D000880F9695879597F9089557FD9058440F41 +:1045E000551F59F05F3F71F04795880F97FB991F52 +:1045F00061F09F3F79F0879508951216130614060F +:10460000551FF2CF4695F1DF08C01616170618069B +:10461000991FF1CF86957105610508940895E89476 +:10462000BB2766277727CB0197F908950BD078C071 +:1046300069D028F06ED018F0952309F05AC05FC0F9 +:104640001124EECFCADFA0F3959FD1F3950F50E070 +:10465000551F629FF001729FBB27F00DB11D639F34 +:10466000AA27F00DB11DAA1F649F6627B00DA11DDA +:10467000661F829F2227B00DA11D621F739FB00D80 +:10468000A11D621F839FA00D611D221F749F3327F0 +:10469000A00D611D231F849F600D211D822F762F89 +:1046A0006A2F11249F5750408AF0E1F088234AF086 +:1046B000EE0FFF1FBB1F661F771F881F91505040D2 +:1046C000A9F79E3F510570F014C0AACF5F3FECF3ED +:1046D000983EDCF3869577956795B795F795E795BE +:1046E0009F5FC1F7FE2B880F911D9695879597F9CF +:1046F000089597F99F6780E870E060E008959FEF64 +:1047000080EC089500240A94161617061806090668 +:10471000089500240A941216130614060506089537 +:10472000092E0394000C11F4882352F0BB0F40F4BF +:10473000BF2B11F460FF04C06F5F7F4F8F4F9F4FFF +:10474000089597FB072E16F4009407D077FD09D043 +:104750000E94BB2307FC05D03EF4909581959F4FA6 +:104760000895709561957F4F0895EE0FFF1F059096 +:10477000F491E02D0994AA1BBB1B51E107C0AA1FAD +:10478000BB1FA617B70710F0A61BB70B881F991FF2 +:104790005A95A9F780959095BC01CD010895F99996 +:1047A000FECF92BD81BDF89A992780B50895A8E102 +:1047B000B0E042E050E00C94F723262FF999FECFA9 +:1047C00092BD81BDF89A019700B4021639F01FBA64 +:1047D00020BD0FB6F894FA9AF99A0FBE0895019683 +:1047E000272F0E94DE230C94DD23DC01CB01FC018A +:1047F000F999FECF06C0F2BDE1BDF89A319600B43A +:0E4800000D9241505040B8F70895F894FFCF44 +:10480E000220E708750952091E09EA080101C701CD +:10481E0028080A03140A3F4D363975042804F2039A +:10482E00B9034C0365037E039703010203040506D7 +:04483E00070809005E +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/german-kinergo/keymap.c b/keyboards/ergodox_ez/keymaps/german-kinergo/keymap.c new file mode 100644 index 000000000..b1cecf0dd --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/german-kinergo/keymap.c @@ -0,0 +1,210 @@ +// German keymap derived from "german", but more closely resembling the German layout of the Kinesis Ergo Elan. +// +// chschmitz, 2016-01-27 +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_german.h" + +// Layer names +#define BASE 0 // default layer +#define SYMB 1 // symbol layer +#define MDIA 2 // media keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * X'es mark the spots where this is different from the "german" layout which it is based on. + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * |X Esc X| 1 | 2 | 3 | 4 | 5 |X ` X| |XPRSCX| 6 | 7 | 8 | 9 | 0 | ß | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * |X Tab X| Q | W | E | R | T |X L1 X| |X L1 X| Z | U | I | O | P | Ü | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Caps | A | S | D | F | G |------| |------| H | J | K | L | Ö | Ä/L2 | + * |--------+------+------+------+------+------|X L2 X| |X L2 X|------+------+------+------+------+--------| + * | LShift | Y | X | C | V | B | | | | N | M | , | . |X - X| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |XLGuiX|X ^ X|X < X|XLEFTX|XRIGHT| |XDownX|X Up X|X # X|X + X|XRGuiX| + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * |XCTRLX|XALTX | | Alt |Ctrl/Esc| + * ,------+------+------| |------+--------+------. + * |XXX |XXX | Home | | PgUp |XXX |XXX | + * | Bkspc|Del |------| |------| Enter | Space| + * | | | End | | PgDn | | | + * `--------------------' `----------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, DE_ACUT, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(1), + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, DE_Y, KC_X, KC_C, KC_V, KC_B, MO(2), + KC_LGUI, DE_CIRC, DE_LESS, KC_LEFT, KC_RIGHT, + KC_LCTRL, KC_LALT, + KC_HOME, + KC_BSPC,KC_DELT,KC_END, + // right hand + KC_PSCREEN, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + MO(1), DE_Z, KC_U, KC_I, KC_O, KC_P, DE_UE, + KC_H, KC_J, KC_K, KC_L, DE_OE, LT(MDIA,DE_AE), + MO(2), KC_N, KC_M, KC_COMM, KC_DOT, DE_MINS, KC_RSFT, + KC_DOWN, KC_UP, DE_HASH, DE_PLUS, KC_RGUI, + KC_RALT, KC_RCTRL, + KC_PGUP, + KC_PGDN, KC_ENT, KC_SPC + ), +// [BASE] = KEYMAP( // layer 0 : default +// // left hand +// KC_CIRC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY, +// KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1), +// KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, +// KC_LSFT, DE_Y, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), +// LT(SYMB,DE_LESS),CTL_T(DE_HASH), DE_ACUT, DE_MINS, DE_PLUS, +// ALT_T(KC_APP), KC_LGUI, +// KC_HOME, +// KC_SPC,KC_BSPC,KC_END, +// // right hand +// KC_MNXT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, +// TG(2), DE_Z, KC_U, KC_I, KC_O, KC_P, DE_UE, +// KC_H, KC_J, KC_K, KC_L, DE_OE, LT(MDIA,DE_AE), +// MEH_T(KC_NO),KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(DE_MINS), KC_RSFT, +// KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_FN1, +// KC_LALT,CTL_T(KC_ESC), +// KC_PGUP, +// KC_PGDN,KC_TAB, KC_ENT +// ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | . | 0 | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,DE_EXLM,DE_AT, DE_LCBR,DE_RCBR,DE_PIPE,KC_TRNS, + KC_TRNS,DE_HASH,DE_DLR, DE_LPRN,DE_RPRN,DE_GRV, + KC_TRNS,DE_PERC,DE_CIRC,DE_LBRC,DE_RBRC,DE_TILD,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_UP, KC_7, KC_8, KC_9, DE_ASTR, KC_F12, + KC_DOWN, KC_4, KC_5, KC_6, DE_PLUS, KC_TRNS, + KC_TRNS, DE_AMPR, KC_1, KC_2, KC_3, DE_BSLS, KC_TRNS, + KC_TRNS,KC_DOT, KC_0, DE_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | Lclk | MsUp | Rclk | | | | | |VolDwn| Mute |VolUp | | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | Btn4 |MsLeft|MsDown|MsRght| Btn5 |------| |------| | Prev | Stop | Play | Next | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | |WhRght|WhDown| WhUp |WhLeft|WhClk | | | |BwSrch|BwBack|BwHome|BwRefr|BwFwd | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | |MsAcl0|MsAcl1|MsAcl2| | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | |Brwser|Brwser| + * | Lclk | Rclk |------| |------|Back |Forwd | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[MDIA] = KEYMAP( + KC_TRNS, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_TRNS, + KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS, + KC_TRNS, KC_BTN4, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN5, + KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_BTN3, KC_TRNS, + KC_TRNS, KC_TRNS, KC_ACL0, KC_ACL1, KC_ACL2, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_BTN1, KC_BTN2, KC_TRNS, + // right hand + KC_TRNS, KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11, + KC_TRNS, KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, KC_F12, + KC_TRNS, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, KC_TRNS, + KC_TRNS, KC_WSCH, KC_WBAK, KC_WHOM, KC_WREF, KC_WFWD, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_WBAK, KC_WFWD +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + case SYMB: + ergodox_right_led_1_on(); + break; + case MDIA: + ergodox_right_led_2_on(); + break; + default: + ergodox_board_led_off(); + break; + } + +}; diff --git a/keyboards/ergodox_ez/keymaps/german-kinergo/layout-code.png b/keyboards/ergodox_ez/keymaps/german-kinergo/layout-code.png new file mode 100644 index 000000000..a0ef551e1 Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/german-kinergo/layout-code.png differ diff --git a/keyboards/ergodox_ez/keymaps/german-kinergo/layout-media.png b/keyboards/ergodox_ez/keymaps/german-kinergo/layout-media.png new file mode 100644 index 000000000..56aea1dca Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/german-kinergo/layout-media.png differ diff --git a/keyboards/ergodox_ez/keymaps/german-kinergo/layout.png b/keyboards/ergodox_ez/keymaps/german-kinergo/layout.png new file mode 100644 index 000000000..76a1aa5d7 Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/german-kinergo/layout.png differ diff --git a/keyboards/ergodox_ez/keymaps/german-kinergo/readme.md b/keyboards/ergodox_ez/keymaps/german-kinergo/readme.md new file mode 100644 index 000000000..557d85a8a --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/german-kinergo/readme.md @@ -0,0 +1,35 @@ +# German Layout for the ErgoDox + +This layout is inspired by the "kinesis-qwerty-mod" from benblazak's +[ergodox-firmware](https://github.com/benblazak/ergodox-firmware), as well as by the "german" layout from the +[qmk_firmware](https://github.com/jackhumbert/qmk_firmware). +The goal was to have a layout that is pretty close to an ordinary German +keyboard, so I don't have to make adjustments on the operating system level +and I keep some of the muscle memory to use a regular keyboard. + +Modifications I made with regard to the aforementioned layouts: + +* The key layout is pretty close to the layout of a German Kinesis Ergo Elan. + The only exception I made is that I reversed the "up" and "down" cursor keys, + since that feels more natural to me. + +* All layer changes are "momentary", i.e. they only last as long as the respective key is pressed. + +* I sacrificed the Hyper and Meh keys, which I don't use, and put layer change keys in their place. + +* I added a PrintScreen key which I use quite regularly for screenshots. + +## Default Layer + +![Layout of the default layer](layout.png "Layout of the default layer") + +## Code Layer + +![Layout of the code layer](layout-code.png "Layout of the code layer") + +## Media Layer + +![Layout of the media layer](layout-media.png "Layout of the media layer") + +Christoph Schmitz <schm4704 at web dot de> +2016-01-28 diff --git a/keyboards/ergodox_ez/keymaps/german-manuneo/compile_keymap.py b/keyboards/ergodox_ez/keymaps/german-manuneo/compile_keymap.py new file mode 100644 index 000000000..7076a6ecb --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/german-manuneo/compile_keymap.py @@ -0,0 +1,710 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +"""Compiler for keymap.c files + +This scrip will generate a keymap.c file from a simple +markdown file with a specific layout. + +Usage: + python compile_keymap.py INPUT_PATH [OUTPUT_PATH] +""" +from __future__ import division +from __future__ import print_function +from __future__ import absolute_import +from __future__ import unicode_literals + +import os +import io +import re +import sys +import json +import unicodedata +import collections +import itertools as it + +PY2 = sys.version_info.major == 2 + +if PY2: + chr = unichr + + +KEYBOARD_LAYOUTS = { + # These map positions in the parsed layout to + # positions in the KEYMAP MATRIX + 'ergodox_ez': [ + [ 0, 1, 2, 3, 4, 5, 6], [38, 39, 40, 41, 42, 43, 44], + [ 7, 8, 9, 10, 11, 12, 13], [45, 46, 47, 48, 49, 50, 51], + [14, 15, 16, 17, 18, 19 ], [ 52, 53, 54, 55, 56, 57], + [20, 21, 22, 23, 24, 25, 26], [58, 59, 60, 61, 62, 63, 64], + [27, 28, 29, 30, 31 ], [ 65, 66, 67, 68, 69], + [ 32, 33], [70, 71 ], + [ 34], [72 ], + [ 35, 36, 37], [73, 74, 75 ], + ] +} + +ROW_INDENTS = { + 'ergodox_ez': [0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 5, 0, 6, 0, 4, 0] +} + +BLANK_LAYOUTS = [ +# Compact Layout +""" +.------------------------------------.------------------------------------. +| | | | | | | | | | | | | | | +!-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! +| | | | | | | | | | | | | | | +!-----+----+----+----x----x----! ! !----x----x----+----+----+-----! +| | | | | | |-----!-----! | | | | | | +!-----+----+----+----x----x----! ! !----x----x----+----+----+-----! +| | | | | | | | | | | | | | | +'-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' +""", + +# Wide Layout +""" +.---------------------------------------------. .---------------------------------------------. +| | | | | | | | ! | | | | | | | +!-------+-----+-----+-----+-----+-------------! !-------+-----+-----+-----+-----+-----+-------! +| | | | | | | | ! | | | | | | | +!-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------! +| | | | | | |-------! !-------! | | | | | | +!-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------! +| | | | | | | | ! | | | | | | | +'-------+-----+-----+-----+-----+-------------' '-------------+-----+-----+-----+-----+-------' + | | | | | | ! | | | | | + '------------------------------' '------------------------------' + .---------------. .---------------. + | | | ! | | + .-------+-------+-------! !-------+-------+-------. + ! ! | | ! | ! ! + ! ! !-------! !-------! ! ! + | | | | ! | | | + '-----------------------' '-----------------------' +""", +] + + +DEFAULT_CONFIG = { + "keymaps_includes": [ + "keymap_common.h", + ], + 'filler': "-+.'!:x", + 'separator': "|", + 'default_key_prefix': ["KC_"], +} + + +SECTIONS = [ + 'layout_config', + 'layers', +] + + +# Markdown Parsing + +ONELINE_COMMENT_RE = re.compile(r""" + ^ # comment must be at the start of the line + \s* # arbitrary whitespace + // # start of the comment + (.*) # the comment + $ # until the end of line +""", re.MULTILINE | re.VERBOSE +) + +INLINE_COMMENT_RE = re.compile(r""" + ([\,\"\[\]\{\}\d]) # anythig that might end a expression + \s+ # comment must be preceded by whitespace + // # start of the comment + \s # and succeded by whitespace + (?:[^\"\]\}\{\[]*) # the comment (except things which might be json) + $ # until the end of line +""", re.MULTILINE | re.VERBOSE) + +TRAILING_COMMA_RE = re.compile(r""" + , # the comma + (?:\s*) # arbitrary whitespace + $ # only works if the trailing comma is followed by newline + (\s*) # arbitrary whitespace + ([\]\}]) # end of an array or object +""", re.MULTILINE | re.VERBOSE) + + +def loads(raw_data): + if isinstance(raw_data, bytes): + raw_data = raw_data.decode('utf-8') + + raw_data = ONELINE_COMMENT_RE.sub(r"", raw_data) + raw_data = INLINE_COMMENT_RE.sub(r"\1", raw_data) + raw_data = TRAILING_COMMA_RE.sub(r"\1\2", raw_data) + return json.loads(raw_data) + + +def parse_config(path): + def reset_section(): + section.update({ + 'name': section.get('name', ""), + 'sub_name': "", + 'start_line': -1, + 'end_line': -1, + 'code_lines': [], + }) + + def start_section(line_index, line): + end_section() + if line.startswith("# "): + name = line[2:] + elif line.startswith("## "): + name = line[3:] + else: + name = "" + + name = name.strip().replace(" ", "_").lower() + if name in SECTIONS: + section['name'] = name + else: + section['sub_name'] = name + section['start_line'] = line_index + + def end_section(): + if section['start_line'] >= 0: + if section['name'] == 'layout_config': + config.update(loads("\n".join( + section['code_lines'] + ))) + elif section['sub_name'].startswith('layer'): + layer_name = section['sub_name'] + config['layer_lines'][layer_name] = section['code_lines'] + + reset_section() + + def amend_section(line_index, line): + section['end_line'] = line_index + section['code_lines'].append(line) + + config = DEFAULT_CONFIG.copy() + config.update({ + 'layer_lines': collections.OrderedDict(), + 'macro_ids': {'UM'}, + 'unicode_macros': {}, + }) + + section = {} + reset_section() + + with io.open(path, encoding="utf-8") as fh: + for i, line in enumerate(fh): + if line.startswith("#"): + start_section(i, line) + elif line.startswith(" "): + amend_section(i, line[4:]) + else: + # TODO: maybe parse description + pass + + end_section() + assert 'layout' in config + return config + +# header file parsing + +IF0_RE = re.compile(r""" + ^ + #if 0 + $.*? + #endif +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +COMMENT_RE = re.compile(r""" + /\* + .*? + \*/" +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +def read_header_file(path): + with io.open(path, encoding="utf-8") as fh: + data = fh.read() + data, _ = COMMENT_RE.subn("", data) + data, _ = IF0_RE.subn("", data) + return data + + +def regex_partial(re_str_fmt, flags): + def partial(*args, **kwargs): + re_str = re_str_fmt.format(*args, **kwargs) + return re.compile(re_str, flags) + return partial + + +KEYDEF_REP = regex_partial(r""" + #define + \s + ( + (?:{}) # the prefixes + (?:\w+) # the key name + ) # capture group end +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +ENUM_RE = re.compile(r""" + ( + enum + \s\w+\s + \{ + .*? # the enum content + \} + ; + ) # capture group end +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +ENUM_KEY_REP = regex_partial(r""" + ( + {} # the prefixes + \w+ # the key name + ) # capture group end +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +def parse_keydefs(config, data): + prefix_options = "|".join(config['key_prefixes']) + keydef_re = KEYDEF_REP(prefix_options) + enum_key_re = ENUM_KEY_REP(prefix_options) + for match in keydef_re.finditer(data): + yield match.groups()[0] + + for enum_match in ENUM_RE.finditer(data): + enum = enum_match.groups()[0] + for key_match in enum_key_re.finditer(enum): + yield key_match.groups()[0] + + +def parse_valid_keys(config, out_path): + basepath = os.path.abspath(os.path.join(os.path.dirname(out_path))) + dirpaths = [] + subpaths = [] + while len(subpaths) < 6: + path = os.path.join(basepath, *subpaths) + dirpaths.append(path) + dirpaths.append(os.path.join(path, "tmk_core", "common")) + dirpaths.append(os.path.join(path, "quantum")) + subpaths.append('..') + + includes = set(config['keymaps_includes']) + includes.add("keycode.h") + + valid_keycodes = set() + for dirpath, include in it.product(dirpaths, includes): + include_path = os.path.join(dirpath, include) + if os.path.exists(include_path): + header_data = read_header_file(include_path) + valid_keycodes.update( + parse_keydefs(config, header_data) + ) + return valid_keycodes + + +# Keymap Parsing + +def iter_raw_codes(layer_lines, filler, separator): + filler_re = re.compile("[" + filler + " ]") + for line in layer_lines: + line, _ = filler_re.subn("", line.strip()) + if not line: + continue + codes = line.split(separator) + for code in codes[1:-1]: + yield code + + +def iter_indexed_codes(raw_codes, key_indexes): + key_rows = {} + key_indexes_flat = [] + + for row_index, key_indexes in enumerate(key_indexes): + for key_index in key_indexes: + key_rows[key_index] = row_index + key_indexes_flat.extend(key_indexes) + assert len(raw_codes) == len(key_indexes_flat) + for raw_code, key_index in zip(raw_codes, key_indexes_flat): + # we keep track of the row mostly for layout purposes + yield raw_code, key_index, key_rows[key_index] + + +LAYER_CHANGE_RE = re.compile(r""" + (DF|TG|MO)\(\d+\) +""", re.VERBOSE) + + +MACRO_RE = re.compile(r""" + M\(\w+\) +""", re.VERBOSE) + + +UNICODE_RE = re.compile(r""" + U[0-9A-F]{4} +""", re.VERBOSE) + + +NON_CODE = re.compile(r""" + ^[^A-Z0-9_]$ +""", re.VERBOSE) + + +def parse_uni_code(raw_code): + macro_id = "UC_" + ( + unicodedata.name(raw_code) + .replace(" ", "_") + .replace("-", "_") + ) + code = "M({})".format(macro_id) + uc_hex = "{:04X}".format(ord(raw_code)) + return code, macro_id, uc_hex + + +def parse_key_code(raw_code, key_prefixes, valid_keycodes): + if raw_code in valid_keycodes: + return raw_code + + for prefix in key_prefixes: + code = prefix + raw_code + if code in valid_keycodes: + return code + + +def parse_code(raw_code, key_prefixes, valid_keycodes): + if not raw_code: + return 'KC_TRNS', None, None + + if LAYER_CHANGE_RE.match(raw_code): + return raw_code, None, None + + if MACRO_RE.match(raw_code): + macro_id = raw_code[2:-1] + return raw_code, macro_id, None + + if UNICODE_RE.match(raw_code): + hex_code = raw_code[1:] + return parse_uni_code(chr(int(hex_code, 16))) + + if NON_CODE.match(raw_code): + return parse_uni_code(raw_code) + + code = parse_key_code(raw_code, key_prefixes, valid_keycodes) + return code, None, None + + +def parse_keymap(config, key_indexes, layer_lines, valid_keycodes): + keymap = {} + raw_codes = list(iter_raw_codes( + layer_lines, config['filler'], config['separator'] + )) + indexed_codes = iter_indexed_codes(raw_codes, key_indexes) + key_prefixes = config['key_prefixes'] + for raw_code, key_index, row_index in indexed_codes: + code, macro_id, uc_hex = parse_code( + raw_code, key_prefixes, valid_keycodes + ) + # TODO: line numbers for invalid codes + err_msg = "Could not parse key '{}' on row {}".format( + raw_code, row_index + ) + assert code is not None, err_msg + # print(repr(raw_code), repr(code), macro_id, uc_hex) + if macro_id: + config['macro_ids'].add(macro_id) + if uc_hex: + config['unicode_macros'][macro_id] = uc_hex + keymap[key_index] = (code, row_index) + return keymap + + +def parse_keymaps(config, valid_keycodes): + keymaps = collections.OrderedDict() + key_indexes = config.get( + 'key_indexes', KEYBOARD_LAYOUTS[config['layout']] + ) + # TODO: maybe validate key_indexes + + for layer_name, layer_lines, in config['layer_lines'].items(): + keymaps[layer_name] = parse_keymap( + config, key_indexes, layer_lines, valid_keycodes + ) + return keymaps + +# keymap.c output + +USERCODE = """ +// 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 L1: + ergodox_right_led_1_on(); + break; + case L2: + ergodox_right_led_2_on(); + break; + case L3: + ergodox_right_led_3_on(); + break; + case L4: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + break; + case L5: + ergodox_right_led_1_on(); + ergodox_right_led_3_on(); + break; + // case L6: + // ergodox_right_led_2_on(); + // ergodox_right_led_3_on(); + // break; + // case L7: + // ergodox_right_led_1_on(); + // ergodox_right_led_2_on(); + // ergodox_right_led_3_on(); + // break; + default: + ergodox_board_led_off(); + break; + } +}; +""" + +MACROCODE = """ +#define UC_MODE_WIN 0 +#define UC_MODE_LINUX 1 +#define UC_MODE_OSX 2 + +// TODO: allow default mode to be configured +static uint16_t unicode_mode = UC_MODE_WIN; + +uint16_t hextokeycode(uint8_t hex) {{ + if (hex == 0x0) {{ + return KC_P0; + }} + if (hex < 0xA) {{ + return KC_P1 + (hex - 0x1); + }} + return KC_A + (hex - 0xA); +}} + +void unicode_action_function(uint16_t hi, uint16_t lo) {{ + switch (unicode_mode) {{ + case UC_MODE_WIN: + register_code(KC_LALT); + + register_code(KC_PPLS); + unregister_code(KC_PPLS); + + register_code(hextokeycode((hi & 0xF0) >> 4)); + unregister_code(hextokeycode((hi & 0xF0) >> 4)); + register_code(hextokeycode((hi & 0x0F))); + unregister_code(hextokeycode((hi & 0x0F))); + register_code(hextokeycode((lo & 0xF0) >> 4)); + unregister_code(hextokeycode((lo & 0xF0) >> 4)); + register_code(hextokeycode((lo & 0x0F))); + unregister_code(hextokeycode((lo & 0x0F))); + + unregister_code(KC_LALT); + break; + case UC_MODE_LINUX: + register_code(KC_LCTL); + register_code(KC_LSFT); + + register_code(KC_U); + unregister_code(KC_U); + + register_code(hextokeycode((hi & 0xF0) >> 4)); + unregister_code(hextokeycode((hi & 0xF0) >> 4)); + register_code(hextokeycode((hi & 0x0F))); + unregister_code(hextokeycode((hi & 0x0F))); + register_code(hextokeycode((lo & 0xF0) >> 4)); + unregister_code(hextokeycode((lo & 0xF0) >> 4)); + register_code(hextokeycode((lo & 0x0F))); + unregister_code(hextokeycode((lo & 0x0F))); + + unregister_code(KC_LCTL); + unregister_code(KC_LSFT); + break; + case UC_MODE_OSX: + break; + }} +}} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {{ + if (!record->event.pressed) {{ + return MACRO_NONE; + }} + // MACRODOWN only works in this function + switch(id) {{ + case UM: + unicode_mode = (unicode_mode + 1) % 2; + break; +{macro_cases} +{unicode_macro_cases} + default: + break; + }} + return MACRO_NONE; +}}; +""" + + +UNICODE_MACRO_TEMPLATE = """ +case {macro_id}: + unicode_action_function(0x{hi:02x}, 0x{lo:02x}); + break; +""".strip() + + +def unicode_macro_cases(config): + for macro_id, uc_hex in config['unicode_macros'].items(): + hi = int(uc_hex, 16) >> 8 + lo = int(uc_hex, 16) & 0xFF + unimacro_keys = ", ".join( + "T({})".format( + "KP_" + digit if digit.isdigit() else digit + ) for digit in uc_hex + ) + yield UNICODE_MACRO_TEMPLATE.format( + macro_id=macro_id, hi=hi, lo=lo + ) + + +def iter_keymap_lines(keymap, row_indents=None): + col_widths = {} + col = 0 + # first pass, figure out the column widths + prev_row_index = None + for code, row_index in keymap.values(): + if row_index != prev_row_index: + col = 0 + if row_indents: + col = row_indents[row_index] + col_widths[col] = max(len(code), col_widths.get(col, 0)) + prev_row_index = row_index + col += 1 + + # second pass, yield the cell values + col = 0 + prev_row_index = None + for key_index in sorted(keymap): + code, row_index = keymap[key_index] + if row_index != prev_row_index: + col = 0 + yield "\n" + if row_indents: + for indent_col in range(row_indents[row_index]): + pad = " " * (col_widths[indent_col] - 4) + yield (" /*-*/" + pad) + col = row_indents[row_index] + else: + yield pad + yield " {}".format(code) + if key_index < len(keymap) - 1: + yield "," + # This will be yielded on the next iteration when + # we know that we're not at the end of a line. + pad = " " * (col_widths[col] - len(code)) + prev_row_index = row_index + col += 1 + + +def iter_keymap_parts(config, keymaps): + # includes + for include_path in config['keymaps_includes']: + yield '#include "{}"\n'.format(include_path) + + yield "\n" + + # definitions + for i, macro_id in enumerate(sorted(config['macro_ids'])): + yield "#define {} {}\n".format(macro_id, i) + + yield "\n" + + for i, layer_name in enumerate(config['layer_lines']): + yield '#define L{0:<3} {0:<5} // {1}\n'.format(i, layer_name) + + yield "\n" + + # keymaps + yield "const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\n" + + for i, layer_name in enumerate(config['layer_lines']): + # comment + layer_lines = config['layer_lines'][layer_name] + prefixed_lines = " * " + " * ".join(layer_lines) + yield "/*\n{} */\n".format(prefixed_lines) + + # keymap codes + keymap = keymaps[layer_name] + row_indents = ROW_INDENTS.get(config['layout']) + keymap_lines = "".join(iter_keymap_lines(keymap, row_indents)) + yield "[L{0}] = KEYMAP({1}\n),\n".format(i, keymap_lines) + + yield "};\n\n" + + # no idea what this is for + yield "const uint16_t PROGMEM fn_actions[] = {};\n" + + # macros + yield MACROCODE.format( + macro_cases="", + unicode_macro_cases="\n".join(unicode_macro_cases(config)), + ) + + # TODO: dynamically create blinking lights + yield USERCODE + + +def main(argv=sys.argv[1:]): + if not argv or '-h' in argv or '--help' in argv: + print(__doc__) + return 0 + + in_path = os.path.abspath(argv[0]) + if not os.path.exists(in_path): + print("No such file '{}'".format(in_path)) + return 1 + + if len(argv) > 1: + out_path = os.path.abspath(argv[1]) + else: + dirname = os.path.dirname(in_path) + out_path = os.path.join(dirname, "keymap.c") + + config = parse_config(in_path) + valid_keys = parse_valid_keys(config, out_path) + keymaps = parse_keymaps(config, valid_keys) + + with io.open(out_path, mode="w", encoding="utf-8") as fh: + for part in iter_keymap_parts(config, keymaps): + fh.write(part) + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/keyboards/ergodox_ez/keymaps/german-manuneo/compiled.hex b/keyboards/ergodox_ez/keymaps/german-manuneo/compiled.hex new file mode 100644 index 000000000..bef079b16 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/german-manuneo/compiled.hex @@ -0,0 +1,1274 @@ +:100000000C9427040C946B040C946B040C946B04F8 +:100010000C946B040C946B040C946B040C946B04A4 +:100020000C946B040C946B040C9403110C94D51178 +:100030000C946B040C946B040C946B040C946B0484 +:100040000C946B040C94DF250C946B040C946B04DF +:100050000C946B040C94721F0C946B040C946B0442 +:100060000C946B040C946B040C946B040C946B0454 +:100070000C946B040C946B040C946B040C946B0444 +:100080000C946B040C946B040C946B040C946B0434 +:100090000C946B040C946B040C946B040C946B0424 +:1000A0000C946B040C946B040C946B040F08DC0729 +:1000B000C707210848087B085D0863087808A60878 +:1000C0009B0866089E08B20757088F089808D9074A +:1000D000D0071E081508FD07D30792072A088008D5 +:1000E00089089508030833081208AC0786085108E8 +:1000F000F40709080008E8078C08F7079D0754086B +:10010000EE072D088C071808CA07B807E207DF07B3 +:10011000360806087208A307F1071B088F07240892 +:100120006F0875083F08C1075A08AF07D607BB0715 +:1001300030086008A10895070C08270869083908E5 +:10014000BE0792084E08A907FA07C4074508CD075D +:100150006C08A6073C084B089807B507AB0883084E +:10016000E507A0074208EB0780074212641252130A +:1001700064125213A912CC12521321133413031612 +:1001800003163216321668168816B917B917931661 +:10019000B91743174317AA17B917B917B317501749 +:1001A0005017501750175017501750175017501717 +:1001B00050175017501750175017501750176217F5 +:1001C0006F1776177D178717055204520152035295 +:1001D000010000001E001B0018002F000100290074 +:1001E0001F0013000C003300E300E10020000900B1 +:1001F00004003400E2002A0021001A000800060072 +:10020000E000650022000A00120019000000490009 +:100210002E004A0000004D00000002542E0202543D +:1002200000002B0000005E3023000B0016000500CC +:1002300000004C0024000D0011001000E4004B00F1 +:1002400025000E0015003600E6002C0026000F00E9 +:100250001700370050002800270014000700520044 +:1002600051004E0035001C002D001D004F00000005 +:100270000100010001000100010000001E02300227 +:1002800038020100010001001F0264143800300030 +:1002900001000100200224022302270201000100C4 +:1002A000010024142514010001000100010027149D +:1002B00026140100000001000100010000000100FF +:1002C0000000010001000100000001000000010029 +:1002D0000100310021022D14000001000100640022 +:1002E00025022202010001000100640226023602FA +:1002F0000100010001000100301437023830010014 +:1003000035021F02310255300230010001000100A8 +:100310002D0201003D30000001000100010001003C +:10032000010000003A00010001000100010001008D +:100330003B00010001000100010001003C00010040 +:1003400001000100010001003D0001000100010069 +:10035000010001003E000100010001000000010059 +:100360004400010000000100000001004500010000 +:1003700000005300000001003F00010001000100E7 +:100380000000010040005F005C00590062000100B5 +:10039000410060005D005A008500010042006100DC +:1003A0005E005B00630001004300550056005700EB +:1003B0005800010067005400560057005800000024 +:1003C0000100010001000100010000004D30393042 +:1003D00001005B3001000100513058303C303B30AF +:1003E000010001005030013014145D3001000100A3 +:1003F0004A30593008145C30010001004930573050 +:100400000430003000000100053001000000010050 +:1004100000000100010001000000010000000100D7 +:100420004F305A3037301E02000001004E300100BC +:100430004B30010001000100483056305430533039 +:10044000010001004C30010003303A30010001008E +:100450005230010001000100010001000100010013 +:100460000100010001000000010001000100010085 +:100470000100000042302030343001000100010052 +:1004800046302E30263033300100010045302D300B +:100490001E3001000100010040302B3022300100ED +:1004A000010001003F3025302C3001000000010028 +:1004B0000100010000000100000001000100010036 +:1004C00000000100000001004430233031301F30B3 +:1004D00000000100433035302A302930010001008E +:1004E0003E3027303030010001000100413028301B +:1004F00032300100010001004730010021300100CD +:10050000010001000100363024302F3001000000CE +:10051000010001000100010001000000010008309D +:100520001B30010001000100010015300D301A30B0 +:10053000010001000100143006300100010001003B +:10054000010012300A3001000100010001000C30EE +:100550001330010000000100010001000000010053 +:100560000000010001000100000001000000010086 +:1005700001000B30183007300000010001001C3072 +:10058000113010300100010001000E301730010061 +:100590000100010001000F301930010001000100CD +:1005A00001000100093001000100010001001D30BF +:1005B00001001630010000000100010001000100EF +:1005C0000100000001000100010001000100010024 +:1005D0000100010001000100010001000100010013 +:1005E0000100010001000100010001000100010003 +:1005F00001000100010001000100010000000100F4 +:1006000001000100000001000000010001000100E4 +:1006100000000100000001000100010001000100D4 +:1006200000000100010001000100010001000100C3 +:1006300001000100010001000100010001000100B2 +:1006400001000100010001000100010001000100A2 +:100650000100010001000100010001000100000093 +:1006600016034500720067006F0044006F007800B9 +:10067000200045005A000000160345007200670084 +:100680006F0044006F007800200045005A00000011 +:100690000403090409026D00040100A0FA09040022 +:1006A000000103010100092111010001223F00079F +:1006B00005810308000A0904010001030102000981 +:1006C0002111010001224D000705820308000A09DB +:1006D000040200010300000009211101000122367B +:1006E000000705830308000A090403000103000052 +:1006F00000092111010001223900070584031000BF +:10070000011201100100000008EDFE0713010001B5 +:1007100002000105010906A101050719E029E715F5 +:100720000025019508750181020508190129059523 +:1007300005750191029501750391010507190029BD +:100740007715002501957875018102C005010980A2 +:10075000A101850216010026B7001A01002AB70080 +:10076000751095018100C0050C0901A101850316D2 +:100770000100269C021A01002A9C02751095018135 +:1007800000C005010902A1010901A1000509190123 +:10079000290515002501950575018102950175034F +:1007A00081010501093009311581257F9502750800 +:1007B000810609381581257F950175088106050C8C +:1007C0000A38021581257F950175088106C0C0058C +:1007D000010906A101050719E029E7150025019582 +:1007E0000875018102950175088101050819012923 +:1007F000059505750191029501750391010507198C +:100800000029FF150025FF950675088100C000002E +:10081000000000000000000000010204060A0F179B +:10082000202C3A4A5D71879DB3C7DAE9F5FCFFFCDD +:10083000F5E9DAC7B39D87715D4A3A2C20170F0A94 +:100840000604020100000000000000000000112466 +:100850001FBECFEFDAE0DEBFCDBF04B603FE24C07B +:100860008091FD019091FE01A091FF01B0910002E5 +:100870008730904BA740B04BB9F41092FD01109215 +:10088000FE011092FF011092000214BE84B7877F10 +:1008900084BF88E10FB6F8948093600010926000E6 +:1008A0000FBEE0E0FFE3099511E0A0E0B1E0ECE469 +:1008B000FFE402C005900D92A433B107D9F711E00F +:1008C000A4E3B1E001C01D92AD3FB107E1F70E9482 +:1008D000470E0C94A4270C9400001092B9008AE0F3 +:1008E0008093B800089594EA9093BC009091BC0066 +:1008F00097FFFCCF9091B900987F983021F090310C +:1009000011F081E008958093BB0084E88093BC00DF +:100910008091BC0087FFFCCF8091B900887F88312F +:1009200011F0803471F780E0089584E98093BC0071 +:100930008091BC0084FDFCCF08958093BB0084E8C7 +:100940008093BC008091BC0087FFFCCF9091B900E0 +:10095000987F81E0983209F480E0089584E88093DC +:10096000BC008091BC0087FFFCCF8091BB00089544 +:1009700080910101811115C080E40E94730480936D +:10098000010181110CC082E10E949D04809301014C +:10099000811105C08FEF0E949D04809301010E9488 +:1009A000950484B1807F84B985B1807F85B98AB18F +:1009B000837F8AB98BB1837F8BB93E98469808951F +:1009C0000E947306809301010E94B80480B38C706A +:1009D00080BB81B3836F81BBA5E3B1E0E3E4F1E0C9 +:1009E0008EE08E0F11921D928E13FCCF0C945D063B +:1009F000BF92CF92DF92EF92FF920F931F93CF930C +:100A0000DF9380910101882379F0809134018F5F19 +:100A100080933401811108C00E9473068093010104 +:100A2000811102C00E94050605E311E0C0E0D0E09C +:100A3000DD24D39482E0C82EEE24E394F12CC73059 +:100A4000D10500F580910101811164C080E40E940C +:100A5000730480930101811112C082E10E949D0400 +:100A60008093010181110BC0C7010C2E01C0880FBA +:100A70000A94EAF780950E949D04809301010E94E8 +:100A8000950448C0CA30A1F028F4C83059F0C930E4 +:100A900061F005C0CC3089F070F0CD3089F0209A3B +:100AA000289810C0219A29980DC0229A2A980AC025 +:100AB000239A2B9807C0529A01C0539A5B9802C0A0 +:100AC0003E9A469890EA9A95F1F79FB1799902C0BB +:100AD00082E001C080E091709D25982B7C9902C036 +:100AE00084E001C080E0892B7D9902C038E001C01C +:100AF00030E0832B7E9902C020E101C020E0822BF0 +:100B00009FB19095991F9927991F9295990F907E63 +:100B1000892B0FC080910101811149C080E40E949E +:100B2000730480930101882379F1B12C0E9495040C +:100B30008B2DF8019081981719F08083C0920001E5 +:100B40000E94B80421960F5F1F4FCE30D10509F0E7 +:100B500076CF80910001882361F18150809300015C +:100B6000882339F08FE99FE00197F1F700C000007A +:100B700020C0A3E4B1E0E5E3F1E0CF01825F919111 +:100B80009D938E13FCCF15C083E10E949D0480933A +:100B900001018111CACF81E40E9473048093010195 +:100BA0008111C3CF0E94AE04B82EB094BFCF80E0B5 +:100BB000C0CF0E94030681E0DF91CF911F910F917A +:100BC000FF90EF90DF90CF90BF900895E82FF0E076 +:100BD000ED5BFE4F8081089508950F931F93CF938F +:100BE000DF93C3E4D1E010E00C2F025F899190E025 +:100BF0000E94981E180F0C13F9CF812FDF91CF910F +:100C00001F910F9108950C94B50856985E982598F9 +:100C10002D9826982E9827982F988FEF90E09093F4 +:100C200089008093880090938B0080938A00909332 +:100C30008D0080938C00259A2D9A2FEF80E792E00B +:100C4000215080409040E1F700C00000269A2E9A83 +:100C50002FEF80E792E0215080409040E1F700C004 +:100C60000000279A2F9A2FEF80E792E021508040D2 +:100C70009040E1F700C0000025982D982FEF80E705 +:100C800092E0215080409040E1F700C0000026989B +:100C90002E982FEF80E792E0215080409040E1F7BE +:100CA00000C0000027982F9856985E9825982D9898 +:100CB00026982E9827982F98089589EA8093800087 +:100CC00089E08093810024982C983F988AB18F7492 +:100CD0008AB96E98479A8BB1806B8BB9769A0E94CD +:100CE00005060C94B40880E28093010180915101C3 +:100CF00081110EC00E946D0481E0809351012FEF9D +:100D000083ED90E3215080409040E1F700C0000067 +:100D100080E40E9473048093010181112EC00E941F +:100D20009D0480930101811128C00E949D0480933D +:100D30000101811122C08FE30E949D048093010173 +:100D400081111BC00E94950480E40E94730480936B +:100D50000101811112C08CE00E949D048093010169 +:100D600081110BC00E949D0480930101811105C077 +:100D70008FE30E949D04809301010E94950480915D +:100D800001010895882359F0282F30E08A3020F49B +:100D9000C901885A9F4F0895C9010697089582E6B0 +:100DA00090E008950F931F93CF93DF938C01EB0195 +:100DB0008091520190915301009709F448C0019726 +:100DC00009F089C080EE0E94A71481EE0E94A7144A +:100DD00088E10E94A71488E10E946F15C801807FF6 +:100DE000992724E0969587952A95E1F70E94C206F7 +:100DF000182F0E94A714812F0E946F15802F8F70CB +:100E00000E94C206182F0E94A714812F0E946F15FE +:100E1000CE01807F992734E0969587953A95E1F742 +:100E20000E94C206D82F0E94A7148D2F0E946F1512 +:100E30008C2F8F700E94C206C82F0E94A7148C2F7F +:100E40000E946F1580EE0E946F1581EE3EC082EE0B +:100E50000E94A71487E50E94A71487E50E946F15DA +:100E6000C801807F992744E0969587954A95E1F7D8 +:100E70000E94C206182F0E94A714812F0E946F158E +:100E8000802F8F700E94C206182F0E94A714812FF6 +:100E90000E946F15CE01807F992754E09695879523 +:100EA0005A95E1F70E94C206D82F0E94A7148D2FF1 +:100EB0000E946F158C2F8F700E94C206C82F0E944F +:100EC000A7148C2F0E946F1582EEDF91CF911F9196 +:100ED0000F910C946F15DF91CF911F910F91089591 +:100EE000FC018281882309F43CC1862F90E08F3574 +:100EF000910508F036C1FC01EA5AFF4F0C945427C3 +:100F0000809152019091530101968170992790939D +:100F100053018093520125C16FEB70E019C160E964 +:100F200070E008C061EA70E013C163E870E00BC1D3 +:100F30006BE570E081E290E012C16BEB70E008C1FC +:100F400063E570E0F7CF6EEB70E002C164E070E043 +:100F5000D4C069EB70E001C162EB70E0F9C065E8F4 +:100F600070E0F1C069E970E0F3C065E570E0E2CFE0 +:100F700068EC70E0EDC069E870E0E5C064E770E03F +:100F8000E2C062E970E0D6CF66E770E0DCC063E9FA +:100F900070E0D0CF60EC70E0DBC062EB70E0DDC0F1 +:100FA00069EA70E0D5C068EA70E0D2C064E870E039 +:100FB000CAC06DE970E0CCC067EF70E0CEC063ECF2 +:100FC00070E0C6C061EC70E0C3C069E570E0B2CF0C +:100FD00063EB70E0BDC064E570E0ACCF6DEB70E03A +:100FE000B7C066EB70E0B4C065EB70E0B1C06AEB0F +:100FF00070E0AEC067E770E0A6C060EA70E0A8C02D +:1010000062EC70E0A5C06EE970E0A2C068EB70E031 +:101010009FC067EB70E09CC062E870E094C063E43E +:1010200070E06BC061EB70E093C066EA70E090C066 +:1010300066EC70E08DC06EE170E05FC06FE970E05B +:1010400087C068E070E059C067ED70E086C060E876 +:1010500070E079C063EA70E07BC069EC70E078C052 +:1010600061E870E070C066E970E072C064EC70E046 +:101070006FC065E770E067C063E070E03EC061EBA1 +:1010800070E06BC06EEB70E068C063EB70E065C051 +:1010900065E070E032C061E970E04CCF69E770E074 +:1010A00052C064EB70E054C06CEB70E051C06AE970 +:1010B00070E04EC068E870E046C061E970E048C08A +:1010C00067E870E040C062E970E042C067E970E044 +:1010D0003FC068E770E037C060E770E034C069E0A7 +:1010E00070E00BC065EC70E033C060E670E005C0F6 +:1010F00067EA70E02DC060E070E082E290E02FC00F +:1011000064EA70E025C06CEB70E027C067EC70E02B +:101110001FC068E970E01CC069EB70E019C06BE9A2 +:1011200070E016C06FE770E00EC065EA70E010C0B6 +:101130006CE970E00DC065E970E00AC063E970E039 +:1011400007C066E870E080E290E009C064E970E002 +:1011500083E090E004C06DEB70E080E090E00E94DE +:10116000D20680E090E0089508956091BF017091EB +:10117000C0018091C1019091C2010E94A41E5698A5 +:101180005E9825982D9826982E9827982F9883302A +:10119000A9F028F4813051F0823069F012C0843017 +:1011A00041F0853071F4259A2D9A08C0259A2D9A20 +:1011B0000895259A2D9A269A2E9A0895279A2F9A5D +:1011C000089556985E98089581E0089581E0089505 +:1011D0000C94E60808950F931F93CF93DF938C012F +:1011E000FC01C081D181CE010E941D1DBE010E9463 +:1011F0009409EC01B8010E94E808882309F48DC025 +:10120000F8018281882309F44AC080915F0181112D +:101210001FC0C431F0E5DF0709F051C00E94EA08A1 +:1012200081E080935F010E943C1F90935E01809358 +:101230005D011092560110925801109257011092C0 +:101240005A011092590110925C0110925B0165C025 +:1012500080915D0190915E010E94481F883C91053C +:1012600070F480915601E82FF0E0EE0FFF1FE95A6D +:10127000FE4FD183C0838F5F809356014EC0C43828 +:1012800080E5D80721F0C538D04501F13AC0F80112 +:101290008281882341F01092540182E01EC0C4383C +:1012A000E0E5DE0759F580915401811106C086E220 +:1012B0000E94A71486E20E946F1582E01CC0C43809 +:1012C000F0E5DF0741F3C538D045D9F4F801828154 +:1012D000882331F01092550180E20E94BE151DC096 +:1012E00080915501811106C087E20E94A71487E210 +:1012F0000E946F1580E20E94C5150FC0C538D04509 +:1013000029F381E08093540180935501C801DF9156 +:10131000CF911F910F910C94E40880E0DF91CF9161 +:101320001F910F910895089596E0799FF00111247F +:1013300094E5899FE00DF11D1124E60FF11DEE0FDC +:10134000FF1FE853FE4F859194910895880F991FD0 +:10135000FC01E85BFF4F859194910895880F991FD8 +:10136000FC01E853FE4F8591949108950F931F93CC +:10137000CF93DF93EC01811520E3920750F5C1155F +:1013800080E2D80708F0C3C0CB3BD10590F4C83A3F +:10139000D10508F06AC0C53AD10508F05BC0C43079 +:1013A000D10508F0D0C1219709F0CAC101E010E0D1 +:1013B0000AC2CF3FD10511F008F0C5C1C03FD10529 +:1013C00008F0A2C0CE01805E9109089708F4BBC165 +:1013D000B7C1C13090E5D90709F4A2C020F5C031EA +:1013E0008FE4D80770F4C11590E4D90708F094C0D1 +:1013F000C11521E3D20708F0A3C1DD278E01106CCF +:10140000E2C1C115D04509F09BC10E9424188FEF9D +:1014100094E32CE0815090402040E1F700C00000B0 +:101420000E94971FD0C1C11597E5D90758F4C03164 +:1014300021E5D20708F01CC1C43180E5D80708F4C3 +:1014400075C07EC1CE0190578115904108F078C1DA +:10145000DF7073C1C53AD10509F477C1C63AD10529 +:1014600009F076C102E810E4AEC1C83AD10509F42A +:1014700072C1C93AD10509F471C1CA3AD10509F45A +:1014800070C1CB3AD10509F46FC1CC3AD10509F44A +:101490006EC1CD3AD10509F46DC1C03BD10509F447 +:1014A0006CC1CE3AD10509F46BC1CF3AD10509F42C +:1014B0006AC1C13BD10509F469C1C23BD10509F438 +:1014C00068C1C33BD10509F467C1C43BD10509F428 +:1014D00066C1C53BD10509F465C1C63BD10509F418 +:1014E00064C1C73BD10509F463C1C83BD10509F408 +:1014F00062C1C93BD10509F461C1CA3BD10509F4F8 +:1015000060C100E014E45FC18E0110655CC1CE01D2 +:101510009F700E94AE0958C1DF708E01106A53C1DE +:101520008091DC0181608093DC014DC10E943C21EF +:10153000811102C00E9422210E94592190E09093C3 +:10154000FD018093FC01C23080E5D80721F4809131 +:10155000FC01816086C0C43090E5D90721F48091F8 +:10156000FC0182607EC0C63020E5D20721F4809164 +:10157000FC01846076C0C83080E5D80719F48091FA +:10158000FC0127C0CA3090E5D90721F48091FC0105 +:10159000806167C0CC3020E5D20721F48091FC0146 +:1015A00080625FC0CE3080E5D80721F48091FC01D5 +:1015B000806457C0C03190E5D90721F48091FC01C7 +:1015C00080684FC0C23120E5D20729F48091FC0128 +:1015D0008460886046C0C33080E5D80721F48091DC +:1015E000FC018E7F3EC0C53090E5D90721F4809183 +:1015F000FC018D7F36C0C73020E5D20721F48091F1 +:10160000FC018B7F2EC0C93080E5D80719F480918A +:10161000FC0126C0CB3090E5D90721F48091FC0174 +:101620008F7E1FC0CD3020E5D20721F48091FC01D0 +:101630008F7D17C0CF3080E5D80721F48091FC0161 +:101640008F7B0FC0C13190E5D90721F48091FC0157 +:101650008F7707C0C331D04531F48091FC018B7F77 +:10166000877F8093FC018091FC010E945D21ABC0CB +:101670008D2F99278F70992781309105D9F49E017C +:101680002370332702C0880F991F2A95E2F79C68C0 +:101690008E0144E0000F111F4A95E1F700271370F7 +:1016A000802B912B53E0CC0FDD1F5A95E1F7C076CC +:1016B000DD272FC08230910531F4DC2FCC278E013D +:1016C000016F106A80C08330910569F4CE01837088 +:1016D000992701E010E002C0000F111F8A95E2F780 +:1016E000C8019C680FC084309105B9F4CE018370A5 +:1016F000992701E010E002C0000F111F8A95E2F760 +:10170000C8019A6823E0CC0FDD1F2A95E1F7C07E5F +:10171000D7708C010C2B1D2B56C08530910531F4F0 +:10172000DC2FCC278E01046F106A4DC0069709F09C +:101730004AC0CF71DD27DC2FCC278E01106243C059 +:1017400000E010E040C08E013EC001E810E43BC064 +:1017500003E810E438C002EE14E435C009EE14E4E6 +:1017600032C00AEE14E42FC005EB14E42CC006EBE3 +:1017700014E429C007EB14E426C00CEC14E423C0E5 +:101780000DEC14E420C003E815E41DC00AE815E4DC +:101790001AC002E915E417C004E915E414C001E217 +:1017A00016E411C003E216E40EC004E216E40BC016 +:1017B00005E216E408C006E216E405C007E216E4F6 +:1017C00002C00AE216E4C801DF91CF911F910F9188 +:1017D000089596E0799FF001112494E5899FE00D2A +:1017E000F11D1124E60FF11DEE0FFF1FE853FE4F10 +:1017F00085919491803E9105E0F4803C910558F5E7 +:101800008133910509F46FC048F48932910509F4D8 +:1018100063C08A32910509F46DC072C089339105A5 +:10182000E9F082389105D1F08533910509F44DC076 +:1018300067C0833E910581F138F4803E9105B9F08F +:10184000823E9105D9F05CC0863E910561F1873EEC +:101850009105A1F155C00E94A60908952091FC01AF +:1018600020FD02C021FF4CC080EE90E049C0809175 +:10187000FC0180FFF9CF89E390E042C08091FC0138 +:1018800082FF0EC08091FC0184FF03C080E090E0E5 +:1018900037C083EE90E034C08091FC0182FFF2CF2C +:1018A00082EE90E02DC08091FC0183FF0BC08091FF +:1018B000FC0184FDEBCF87EE90E022C08091FC011B +:1018C00083FFF5CF86EE90E01BC08091FC0185FF81 +:1018D00007C089E290E014C08091FC0185FFF9CF38 +:1018E00085E390E00DC08091FC0186FF07C08AE28D +:1018F00090E006C08091FC0186FFF9CF81E390E083 +:101900000E94B609089508950C94830C809170018B +:101910000895CF93DF9300D01F92CDB7DEB79C011F +:101920008091F301843019F593E099833B832A83F6 +:101930009093E9008FEF9091E800815095FD06C0EB +:1019400095ED9A95F1F700008111F5CF8091E800AF +:1019500085FF0DC040E050E063E070E0CE010196ED +:101960000E94F30E8091E8008E778093E8000F903C +:101970000F900F90DF91CF910895CF93DF9300D018 +:101980001F92CDB7DEB72091F301243021F522E07C +:1019900029839B838A8383E08093E9008FEF909172 +:1019A000E800815095FD06C095ED9A95F1F700008D +:1019B0008111F5CF8091E80085FF0DC040E050E037 +:1019C00063E070E0CE0101960E94F30E8091E80082 +:1019D0008E778093E8000F900F900F90DF91CF915A +:1019E00008952091F3012430F1F422E02093E900DE +:1019F0002FEF3091E800215035FD06C035ED3A95C6 +:101A0000F1F700002111F5CF2091E80025FF0BC070 +:101A100040E050E065E070E00E94F30E8091E80045 +:101A20008E778093E8000895CF93DF93EC01909137 +:101A3000F301943009F046C080910C018823D9F05D +:101A400080910D018823B9F09093E9008FEF909178 +:101A5000E800815095FD06C095E19A95F1F70000E8 +:101A60008111F5CF8091E80085FF2CC040E050E067 +:101A700060E170E017C081E08093E9008FEF909102 +:101A8000E800815095FD06C095ED9A95F1F70000AC +:101A90008111F5CF8091E80085FF14C040E050E04F +:101AA00068E070E0CE010E94F30E8091E8008E772E +:101AB0008093E80080E1FE01A0E6B1E001900D9284 +:101AC0008A95E1F7DF91CF9108958091F20181111C +:101AD00009C00E9488100E94E5108091E200846095 +:101AE0008093E20008951092F201089508950C94F5 +:101AF000CC250E942D1F0E94D2250E948B130C948E +:101B0000840C42E061EC81E00E94021042E061EC52 +:101B100082E00E94021042E061EC83E00E94021029 +:101B200042E161EC84E00C9402108091F501833075 +:101B300009F455C030F4813071F0823009F48EC060 +:101B400008958A3009F47AC08B3009F460C0893076 +:101B500009F09CC020C08091F401813A09F096C040 +:101B60008091E800877F8093E8008091F801909150 +:101B7000F901892B21F460E180E691E003C060E087 +:101B800080E090E070E00E943E0F8091E8008B774B +:101B90008093E80008958091F401813209F076C0C5 +:101BA0008091F8019091F901009719F0039709F0DD +:101BB0006DC08091E800877F8093E8008091E80005 +:101BC00082FD05C08091F3018111F8CF5FC0809143 +:101BD000F100809370018091E8008B7753C0809171 +:101BE000F401813A09F052C08091F8019091F90115 +:101BF000892B09F04BC08091E800877F8093E80033 +:101C00008091E80080FFFCCF80910C0136C080916C +:101C1000F4018132D9F58091F8019091F901892B75 +:101C2000A9F58091E800877F8093E8000E94371033 +:101C30008091F60180930C010C9424188091F4019A +:101C4000813221F58091E800877F8093E8000E942F +:101C500037108091F7018093710108958091F4010C +:101C6000813AA1F48091E800877F8093E800809119 +:101C7000E80080FFFCCF809171018093F10080919A +:101C8000E8008E778093E8000C943710089584B7AD +:101C9000877F84BF88E10FB6F8948093600010922C +:101CA00060000FBE90E080E80FB6F894809361006A +:101CB000909361000FBE0E94DA130E9488100E9468 +:101CC000E5108091E20084608093E20078940E94A5 +:101CD0006B130E94DC1382E091E00E9486130E9445 +:101CE000BA258091F301853069F40E94F41E809139 +:101CF000F1018823B1F30E941F1F882391F30E94F2 +:101D0000DD0EEFCF0E94E213ECCF292F33272330D3 +:101D10003105C9F064F42130310581F022303105FC +:101D200009F043C08DE690E024E936E042C021325C +:101D30003105F1F02232310541F137C082E190E006 +:101D400021E037E036C099278130910541F082309B +:101D5000910541F0892B49F5E0E9F6E005C0E8E797 +:101D6000F6E002C0E0E6F6E0849190E09F0121C039 +:101D70006430D8F4E62FF0E0EE0FFF1FEE5DFE4F6B +:101D80002081318189E090E014C0643070F470E00B +:101D9000FB01EE0FFF1FE65EFE4F20813181FB014C +:101DA000EA5EFE4F808190E004C080E090E020E099 +:101DB00030E0FA0131832083089580E189BD82E11A +:101DC00089BD09B400FEFDCF8091D8008F7D80933E +:101DD000D8008091E00082608093E0008091E00074 +:101DE00081FDFCCF0895CF92DF92EF92FF920F9387 +:101DF0001F93CF93DF93EC018B016A010E94561071 +:101E0000811133C0C114D10439F0F6018081918170 +:101E1000081B190BC80FD91FE12CF12C0115110556 +:101E200019F18091E80085FD16C08091E8008E7759 +:101E30008093E800C114D10449F0F60180819181BA +:101E4000E80EF91EF182E08285E00FC00E94561074 +:101E5000882321F30AC089918093F1000150110970 +:101E6000FFEFEF1AFF0ADACF80E0DF91CF911F91E9 +:101E70000F91FF90EF90DF90CF9008952091FA019D +:101E80003091FB012617370748F06115710539F4C9 +:101E90002091E8002E772093E80001C0B90140E0CE +:101EA00061157105A9F12091F301222309F443C0C2 +:101EB000253009F442C02091E80023FD40C0209164 +:101EC000E80022FD32C02091E80020FFE9CF4091D8 +:101ED000F3002091F20030E0342BFC01CF016115BA +:101EE000710559F02830310540F481918093F1005B +:101EF000615071092F5F3F4FF1CF41E0283031052C +:101F000009F040E02091E8002E772093E800C8CF48 +:101F10004111C9CF0AC08091F301882361F0853057 +:101F200061F08091E80083FD0AC08091E80082FFA3 +:101F3000F2CF80E0089582E0089583E0089581E083 +:101F400008952091FA013091FB012617370748F0D8 +:101F50006115710539F42091E8002E772093E8008F +:101F600001C0B901FC0120E06115710591F180917A +:101F7000F301882309F440C0853009F43FC0809103 +:101F8000E80083FD3DC08091E80082FD2FC0809174 +:101F9000E80080FFE9CF2091F3008091F20090E00B +:101FA000922B6115710559F08830910540F4249108 +:101FB0002093F1003196615071090196F2CF21E032 +:101FC000089709F020E08091E8008E778093E80080 +:101FD000CBCF2111CCCF0AC08091F301882361F0CF +:101FE000853061F08091E80083FD0AC08091E800AF +:101FF00082FFF2CF80E0089582E0089583E00895A3 +:1020000081E00895982F973058F59093E90098173C +:1020100039F07091EC002091ED005091F00003C078 +:10202000242F762F50E021FF19C03091EB003E7F26 +:102030003093EB003091ED003D7F3093ED00309117 +:10204000EB0031603093EB007093EC002093ED00D7 +:102050005093F0002091EE0027FF07C09F5FD3CF81 +:102060008F708093E90081E0089580E00895809169 +:10207000F40187FF11C08091E80082FD05C08091C6 +:10208000F3018111F8CF11C08091E8008B770BC06C +:102090008091F301882349F08091E80080FFF8CF18 +:1020A0008091E8008E778093E80008952091E40005 +:1020B0003091E50095E64091EC00842F817040FF5F +:1020C00022C08091E80080FD1CC08091F30188232C +:1020D00091F0853091F08091EB0085FD10C040912A +:1020E000E4005091E5004217530729F39A019150FB +:1020F00011F784E0089582E0089583E0089581E077 +:10210000089580E008954091E80042FFDECF0895F1 +:102110000E94F6100E94FE10E0EEF0E080818160E7 +:102120008083E8EDF0E080818F77808319BCA7ED94 +:10213000B0E08C918E7F8C9380818F7E8083109213 +:10214000F20108950F931F93CF93DF930E94F6102F +:102150000E94FE10C8EDD0E088818F778883888147 +:102160008068888388818F7D888319BC1092F301F1 +:102170001092EF011092F1011092F00100EE10E0C8 +:10218000F80180818B7F808388818160888342E031 +:1021900060E080E00E940210E1EEF0E080818E7F3E +:1021A0008083E2EEF0E080818160808380818860BE +:1021B0008083F80180818E7F80838881806188831D +:1021C000DF91CF911F910F910895E8EDF0E08081AC +:1021D0008F7E8083E7EDF0E080818160808384E002 +:1021E00082BF81E08093F2010C94A210E8EDF0E050 +:1021F00080818E7F80831092E20008951092DA0031 +:102200001092E10008951F920F920FB60F921124C1 +:102210002F933F934F935F936F937F938F939F93EE +:10222000AF93BF93EF93FF938091E10082FF0BC0C8 +:102230008091E20082FF07C08091E1008B7F809354 +:10224000E1000E946A138091DA0080FF1FC0809134 +:10225000D80080FF1BC08091DA008E7F8093DA0067 +:102260008091D90080FF0DC080E189BD82E189BDE8 +:1022700009B400FEFDCF81E08093F3010E94650D5B +:1022800005C019BC1092F3010E94730D8091E1000A +:1022900080FF19C08091E20080FF15C08091E200AC +:1022A0008E7F8093E2008091E20080618093E20063 +:1022B0008091D80080628093D80019BC85E080931B +:1022C000F3010E94770D8091E10084FF30C080917E +:1022D000E20084FF2CC080E189BD82E189BD09B4A0 +:1022E00000FEFDCF8091D8008F7D8093D800809133 +:1022F000E1008F7E8093E1008091E2008F7E8093E9 +:10230000E2008091E20081608093E2008091EF0121 +:10231000882311F084E007C08091E30087FD02C0AC +:1023200081E001C083E08093F3010E94790D8091E8 +:10233000E10083FF29C08091E20083FF25C08091E6 +:10234000E100877F8093E10082E08093F3011092A7 +:10235000EF018091E1008E7F8093E1008091E200A7 +:102360008E7F8093E2008091E20080618093E200A2 +:1023700042E060E080E00E9402108091F0008860FE +:102380008093F0000E94760DFF91EF91BF91AF9185 +:102390009F918F917F916F915F914F913F912F917D +:1023A0000F900FBE0F901F9018951F920F920FB6AF +:1023B0000F9211242F933F934F935F936F937F93CB +:1023C0008F939F93AF93BF93CF93DF93EF93FF933D +:1023D000C091E900CF708091EC00D82FD17080FDC2 +:1023E000D0E81092E9008091F000877F8093F000A0 +:1023F00078940E9419121092E9008091F000886090 +:102400008093F000CD2BCF70C093E900FF91EF9146 +:10241000DF91CF91BF91AF919F918F917F916F91FC +:102420005F914F913F912F910F900FBE0F901F9092 +:1024300018951F93CF93DF93CDB7DEB7AA970FB64A +:10244000F894DEBF0FBECDBFE4EFF1E088E08E0F61 +:102450009091F10091938E13FBCF0E94950D809186 +:10246000E80083FF1FC18091F4019091F501492F8D +:1024700050E04A30510508F015C1FA01EB54FF4F06 +:102480000C945427803881F0823809F00BC1809178 +:10249000F8018F708093E9008091EB0085FB88271D +:1024A00080F91092E90006C08091F0019091F1014D +:1024B000911182609091E800977F9093E80080935B +:1024C000F1001092F100C8C0282F2D7F09F0EAC05A +:1024D000882319F0823061F0E5C08091F6018130E7 +:1024E00009F0E0C0933009F080E08093F1012BC047 +:1024F0008091F601811127C08091F8018F7009F455 +:10250000D1C08093E9002091EB0020FF1CC09330E4 +:1025100021F48091EB00806214C09091EB009061F7 +:102520009093EB0021E030E0A90102C0440F551F59 +:102530008A95E2F74093EA001092EA008091EB005E +:1025400088608093EB001092E9008091E800877F1B +:1025500086C08111A7C01091F6011F778091E3001A +:102560008078812B8093E3008091E800877F8093BF +:10257000E8000E9437108091E80080FFFCCF809136 +:10258000E30080688093E300111102C082E001C083 +:1025900083E08093F30186C08058823008F082C0C7 +:1025A0008091F6019091F7018C3D53E0950779F504 +:1025B00083E08A838AE289834FB7F894DE01139619 +:1025C00020E03EE051E2E32FF0E050935700E49129 +:1025D00020FF03C0E295EF703F5FEF708E2F90E019 +:1025E000EA3010F0C79601C0C0968D939D932F5F7F +:1025F000243149F74FBF8091E800877F8093E8003E +:102600006AE270E0CE0101960E943E0F14C0AE0156 +:102610004F5F5F4F6091F8010E94850EBC010097EB +:1026200009F440C09091E800977F9093E800898179 +:102630009A810E94A10F8091E8008B778093E80037 +:1026400031C0803879F58091E800877F8093E80079 +:102650008091EF018093F1008091E8008E77809364 +:10266000E8000E9437101EC081111CC09091F60135 +:102670009230C0F48091E800877F8093E8009093C7 +:10268000EF010E9437108091EF01811106C0809107 +:10269000E30087FD02C081E001C084E08093F30184 +:1026A0000E94810D8091E80083FF0AC08091E800BC +:1026B000877F8093E8008091EB0080628093EB003D +:1026C000AA960FB6F894DEBF0FBECDBFDF91CF91B3 +:1026D0001F9108950895CF938091F3018823A1F06D +:1026E000C091E900CF709091EC00892F817090FD2E +:1026F00080E8C82B1092E9008091E80083FD0E94D9 +:102700001912CF70C093E900CF910895909377018B +:10271000809376010895E0917601F09177013097EA +:1027200021F00190F081E02D099480E00895E0917E +:102730007601F0917701309721F00280F381E02D4E +:1027400009940895E0917601F0917701309721F096 +:102750000480F581E02D0994089520917401309151 +:1027600075018217930771F090937501809374013E +:10277000E0917601F0917701309721F00680F781A2 +:10278000E02D099408952091720130917301821710 +:10279000930771F09093730180937201E091760139 +:1027A000F0917701309721F00084F185E02D0994B4 +:1027B000089508950C94D9130E94331F0E94E004D9 +:1027C0000C94F51F9F92AF92BF92CF92DF92EF923F +:1027D000FF920F931F93CF93DF9300D000D000D0D0 +:1027E000CDB7DEB70E94F8040DE010E0AA24A39450 +:1027F000B12C902E802F0E94E605980127583E4F5D +:102800006901F901F080F826A1F40150110988F757 +:102810008FEF89838A831B820E943C1F8160782FFF +:102820009D838C8349815A816B818D810E947914AB +:102830002FC09091DC0191FF04C08E830E94EC05B3 +:102840008E8125E030E0A501022E01C0440F0A94DC +:10285000EAF7E42E4F21C1F029839A828E2191E07C +:1028600009F490E09B830E943C1F8160782F9D8338 +:102870008C8349815A816B818D810E947914F60184 +:102880008081E826E08204C021503109E0F6BDCF06 +:102890000E94DC22109178010E948B131817B9F066 +:1028A0000E948B138093780126960FB6F894DEBFB2 +:1028B0000FBECDBFDF91CF911F910F91FF90EF9091 +:1028C000DF90CF90BF90AF909F900C94840C269691 +:1028D0000FB6F894DEBF0FBECDBFDF91CF911F9131 +:1028E0000F91FF90EF90DF90CF90BF90AF909F90AF +:1028F0000895CF93DF93CDB7DEB72B970FB6F8943B +:10290000DEBF0FBECDBF4F83588769877A878B871D +:10291000DE01119686E0FD0111928A95E9F785E0C6 +:10292000FE01379601900D928A95E1F749815A810F +:102930006B817C818D819E810E94C21A2B960FB67D +:10294000F894DEBF0FBECDBFDF91CF910895CF9336 +:10295000882309F4C2C0C82F823859F40E948B130F +:1029600081FDBBC089E30E949C1D0E94691E89E312 +:102970000CC0833879F40E948B1380FDAEC083E5D0 +:102980000E949C1D0E94691E83E50E94DE1DCF915E +:102990000C94691E843859F40E948B1382FD9DC0EB +:1029A00087E40E949C1D0E94691E87E4EECF8CEF95 +:1029B0008C0F813A48F48C2F0E941F2581118DC005 +:1029C0008C2F0E949C1DE3CF80E28C0F883048F44E +:1029D000C77081E001C0880FCA95EAF70E94221EE5 +:1029E000D6CF8BE58C0F833078F4C53A29F0C63A00 +:1029F00031F083E890E005C081E890E002C082E811 +:102A000090E0CF910C94AD1388E58C0F833108F0E2 +:102A100064C0C83A39F1C93A41F1CA3A49F1CB3AEE +:102A200051F1CC3A59F1CD3A61F1C03B69F1CE3A5E +:102A300071F1CF3A79F1C13B81F1C23B89F1C33BDE +:102A400091F1C43B99F1C53BA1F1C63BA9F1C73B4C +:102A5000B1F1C83BB9F1C93BC1F1CA3BC9F180E052 +:102A600090E038C082EE90E035C089EE90E032C050 +:102A70008AEE90E02FC085EB90E02CC086EB90E0D2 +:102A800029C087EB90E026C08CEC90E023C08DEC51 +:102A900090E020C083E891E01DC08AE891E01AC070 +:102AA00082E991E017C084E991E014C081E292E0EC +:102AB00011C083E292E00EC084E292E00BC085E296 +:102AC00092E008C086E292E005C087E292E002C090 +:102AD0008AE292E0CF910C94C313CF91089588239A +:102AE00009F44BC0823859F40E948B1381FF45C012 +:102AF00089E30E949C1D0E94691E89E30CC08338F3 +:102B000071F40E948B1380FF38C083E50E949C1DE6 +:102B10000E94691E83E50E94DE1D0C94691E8438A4 +:102B200059F40E948B1382FF28C087E40E949C1DE9 +:102B30000E94691E87E4EFCF9CEF980F913A58F3FB +:102B400090E2980F983050F4877091E001C0990F8F +:102B50008A95EAF7892F0E94281EDFCF9BE5980F00 +:102B6000933020F480E090E00C94AD13885A8331C8 +:102B700020F480E090E00C94C3130895882321F0A2 +:102B80000E94221E0C94691E0895882321F00E9441 +:102B9000281E0C94691E08957F928F929F92AF9287 +:102BA000BF92CF92DF92EF92FF920F931F93CF933A +:102BB000DF931F92CDB7DEB77C01C62E772EFC01C6 +:102BC000058102950F70128111110E943F1E0E9413 +:102BD000951D882379F0112369F080E28C0D8830EF +:102BE00048F082E00E947E1D0E94951D91E0D82E43 +:102BF000D92601C0D12CE72DE295EF70F0E0E15429 +:102C0000FF4F0C945427872D807F072D0F7088234A +:102C100011F00295007F112389F0002309F490C17F +:102C200080E28C0D883020F4802F0E94221E03C089 +:102C3000802F0E94321E0E94691E82C18C2D0E942C +:102C40006F15002309F495C180E28C0D883020F4C3 +:102C5000802F0E94281E03C0802F0E94381E0E94D1 +:102C6000691E87C1972D907F872D8F70903211F04C +:102C70008295807FCC2021F0F1E0CF16B1F01EC00C +:102C8000112349F0002309F414C1013009F011C1E6 +:102C90000E94521E6EC1002319F0013009F469C16F +:102CA00089830E94551E89810AC1112321F00230B7 +:102CB00008F05FC1FEC001115CC101C1112321F008 +:102CC000002309F4F6C03CC1002309F4F8C03EC15A +:102CD000872D86958695837090E0009719F001976F +:102CE00061F047C1112321F08C2D972D937002C004 +:102CF00080E090E00E94AD133CC1112321F08C2DA7 +:102D0000972D937002C080E090E00E94C31331C100 +:102D10008C2D112319F00E94E42102C00E944C2244 +:102D20000E94D12226C1872D837009F052C0111153 +:102D300020C18C2D829586958770880F880F9C2DD9 +:102D40009F70892E912CA12CB12C082E04C0880CC8 +:102D5000991CAA1CBB1C0A94D2F7C4FE14C00FE035 +:102D600010E020E030E0B901A80104C0440F551F75 +:102D7000661F771F8A95D2F7CB01BA0160957095CF +:102D80008095909503C060E070E0CB01272D2695DB +:102D90002695237030E02230310569F0233031056B +:102DA00089F0682979298A299B292130310571F018 +:102DB0000E940A1CDEC0682979298A299B290E9461 +:102DC000261CD7C00E940A1CC501B4010E94EE1B3C +:102DD000D0C0112319F0872D817001C086958823FA +:102DE00009F4C7C08C2D829586958770880F880F4F +:102DF0009C2D9F70892E912CA12CB12C082E04C0E3 +:102E0000880C991CAA1CBB1C0A94D2F7C4FE14C0DF +:102E10000FE010E020E030E0B901A80104C0440F49 +:102E2000551F661F771F8A95D2F7CB01BA016095AF +:102E300070958095909503C060E070E0CB01272DE0 +:102E4000269526952370422F50E04230510569F0B7 +:102E50004330510589F0682979298A299B29413015 +:102E6000510571F00E94E41C84C0682979298A29DF +:102E70009B290E94001D7DC00E94E41CC501B40175 +:102E80000E94C81C76C08C2D90E0FC01E05EF10928 +:102E9000E531F10508F050C0E153FF4F0C94542781 +:102EA0000C2D0F70872D8F71112331F00E94611C42 +:102EB000802F0E94BE155DC00E94821C802F0E9440 +:102EC000C51557C0112339F0011153C0872D8F71DB +:102ED0000E94A71C4EC0023008F04BC0F7CF112350 +:102EE00039F0872D8F710E94611C43C01123C9F3F3 +:102EF000872D8F710E94821C3CC0112329F0872DE1 +:102F00008F710E944C1C35C00E94421C32C011239C +:102F100051F0172D1F71812F0E94611C63E0812FDA +:102F20000E94751D26C081E00E947E1D023008F1BE +:102F300082E00E947E1D1DC0112331F0002389F222 +:102F40008C2D0E94A71415C0002391F28C2D0E9495 +:102F50006F150FC0472D4F706C2DC7010E94700771 +:102F60000E94661B06C0472D4F706C2DC7010E9442 +:102F70009309DD20F9F00E94711D80FD1BC0F7014F +:102F800012820E946B1D0E94611CC7010E94E917FA +:102F90000E946B1D0F90DF91CF911F910F91FF90B9 +:102FA000EF90DF90CF90BF90AF909F908F907F90E9 +:102FB0000C94821C0F90DF91CF911F910F91FF9085 +:102FC000EF90DF90CF90BF90AF909F908F907F90C9 +:102FD00008950F931F93CF93DF93EC01888199811C +:102FE0002B813C81232BB9F09F3F11F48F3F99F047 +:102FF000CE010E94EB08882371F0688179818A8173 +:103000000E94671D8C010E941C1D0E94E31BB801D9 +:10301000CE010E94CC15DF91CF911F910F910895A1 +:103020000E943F1E0E944F1E0E94141E0E94691E95 +:103030000E9482230E94D12280E090E00E94AD1382 +:1030400080E090E00C94C3130E942F1E0C94101883 +:103050000E945C1D292F22952F7030E02C30310505 +:103060004CF42A3031056CF42250310922303105FC +:10307000A8F407C02C30310569F02F30310551F02C +:103080000DC0803F69F018F4803E40F409C0843FD1 +:1030900029F406C093FB882780F9089580E00895FD +:1030A00081E00895CF93DF9300D000D01F92CDB779 +:1030B000DEB70F900F900F900F900F90DF91CF9190 +:1030C0000895CF93DF9300D000D000D0CDB7DEB706 +:1030D00026960FB6F894DEBF0FBECDBFDF91CF911D +:1030E00008951F93CF93DF93C091870116E08091DD +:1030F0008801C81799F0D0E01C9FF0011D9FF00DCA +:103100001124E757FE4F4081518162817381848190 +:1031100095810E9461182196C770E9CFDF91CF9108 +:103120001F9108954091B9015091BA016091BB017E +:103130007091BC018091BD019091BE010C94611809 +:103140008091BE0182958F7009F054C08091BB01BF +:10315000882309F44FC080918701A0918801609174 +:10316000B9017091BA014091BC015091BD01B6E026 +:103170008A1709F43FC090E041155105C1F17F3F26 +:1031800011F46F3FA1F1B89FF001B99FF00D112428 +:10319000E757FE4F218172132AC02081621327C096 +:1031A0002281211124C0238134812417350710F492 +:1031B00021503109241B350B283C3105C0F42091E6 +:1031C000BE012F7020612093BE0126E0289FF001F0 +:1031D000299FF00D1124E257FE4F80818F7080618E +:1031E000808389EB91E00E94E9170C947118019695 +:1031F0008770BECF0895CF92DF92EF92FF920F9328 +:103200001F93CF93DF93CDB7DEB762970FB6F894D5 +:10321000DEBF0FBECDBF8C0185E0F801DE011D963B +:1032200001900D928A95E1F7D8014C9111965C912D +:10323000119712966C9112971396CD90DC9014977B +:103240003091B9017091BA018091BC019091BD019A +:10325000009709F46BC17F3F19F43F3F09F466C141 +:10326000E090BB01EE2009F4C0C02091BE01C81659 +:10327000D90628F0F601E81BF90BCF0104C08095B0 +:1032800090958C0D9D1DFF24F394883C910578F05A +:10329000F12C207F09F0C6C07C2DD98AC88A898983 +:1032A0000E94521889EB91E00E94E917B1C0822F69 +:1032B000807F09F046C0751314C0341312C0611129 +:1032C00010C02F7020612093BE010E94921889EBDC +:1032D00091E00E94E9178091BE01D80115968C9368 +:1032E0002EC0CD2819F15F3F11F44F3FF9F0F62EB3 +:1032F00061111CC0809187012091880136E08217FE +:1033000009F45AC090E0389FF001399FF00D112464 +:10331000E757FE4F7181571306C07081471303C0F2 +:103320007281711103C001968770E9CFF62E662372 +:1033300009F418C18091BE0181608093BE01F12C17 +:1033400011C1751308C0341306C0611104C0809107 +:10335000BE01D801C3C04D875E878D859E856A8B6F +:103360000E9428186A898823E1F16623D1F120910F +:10337000BE01822F82958F7090E0029774F0809149 +:10338000B9019091BA0198878F831986DB86CA8626 +:103390002C87CE0107960E94E91786E0F801A9EB79 +:1033A000B1E001900D928A95E1F70E94A0180E9469 +:1033B0009218FF24F394D6C04D875E878D859E8535 +:1033C0000E945C1D292F22952F7030E0223031059C +:1033D0000CF0BCC09F7009F0B6C0805E883008F465 +:1033E000C1C0C8010E94E917E4CFC816D90608F485 +:1033F00053C0F601E81BF90BCF01883C910508F496 +:1034000050C0F12C7C2DD98AC88A89890E94521813 +:10341000E9EBF1E086E0DF011D928A95E9F70E9471 +:103420009218A0C0751314C0341312C0611110C0DB +:103430008091BE01F8018583C8010E94E91786E0EA +:10344000E9EBF1E0DF011D928A95E9F7FE2C8AC0D5 +:103450004D875E878D859E856A8B0E9428186A89B4 +:10346000882309F4BECF662309F4BBCF2091BE01A7 +:10347000822F82958F7090E002970CF48ECF80910E +:10348000B9019091BA019A8389831B82DD82CC8233 +:103490002E83CE0101967FCF809590958C0D9D1D3A +:1034A000ACCFF62E662309F49CCF75132EC03413CF +:1034B0002CC02091BE0120FD1FC0822F82958F70ED +:1034C000D9F0D80115962C9315978F3049F08F5F5E +:1034D000982F9295907F822F8F70892B15968C93C1 +:1034E000C8010E94E91786E0F801A9EBB1E001905C +:1034F0000D928A95E1F793CF86E0F801A9EBB1E050 +:1035000001900D928A95E1F72DC04D875E878D85DC +:103510009E850E942818811140CF8091BE01816054 +:103520008093BE01C8010E94E9171CC0662309F4FC +:1035300058CF4D875E878D859E850E9428188823E9 +:1035400009F44FCF2ACF811148CF0CC02430310568 +:103550000CF047CF9F7009F440CFF8019581907F20 +:1035600009F03BCF8F2D62960FB6F894DEBF0FBEE9 +:10357000CDBFDF91CF911F910F91FF90EF90DF9022 +:10358000CF9008951F93CF93DF93CDB7DEB72C97DD +:103590000FB6F894DEBF0FBECDBF4F835887698743 +:1035A0007A878B879C87CE0107960E94FB18882319 +:1035B00069F08F8198852A853B85232BF1F19F3F08 +:1035C00009F063C08F3F09F060C037C086E0FE019C +:1035D0003796DE01119601900D928A95E1F76F8181 +:1035E0007885EA85FB85309741F17F3F11F46F3F85 +:1035F00021F12091880130E0C90101968770992757 +:103600004091870150E08417950709F447C069830A +:103610007A83FD83EC8396E0929FD001939FB00D57 +:103620001124A757BE4FFE01319601900D929A9535 +:10363000E1F7809388010E94711816E0809187015C +:10364000909188018917C1F1189FC00111248757F3 +:103650009E4F0E94FB18882379F1E09187011E9FFD +:10366000F0011124E757FE4F40815181628173813F +:10367000848195810E9461188091870190E0019674 +:103680008770992780938701D9CF4F8158856985A5 +:103690007A858B859C850E946118CFCF0E94241863 +:1036A0001092880110928701E9EBF1E086E0DF01DA +:1036B0001D928A95E9F7C1CF2C960FB6F894DEBF1C +:1036C0000FBECDBFDF91CF911F910895EF92FF9272 +:1036D0000F931F93CF93DF938C01009709F46CC075 +:1036E000F12CEE24E394E8012196F80184918437CB +:1036F00040F4843008F051C0813081F0823019F1FB +:103700005BC0853709F444C0A8F19CE7980F903757 +:1037100008F052C08F770E946F1541C00E5F1F4F97 +:10372000FE01C49180E28C0F883048F4C7708E2D62 +:1037300001C0880FCA95EAF70E94421E14C08C2F60 +:103740000E94A7142DC00E5F1F4FFE01C49180E29E +:103750008C0F883058F4C7708E2D01C0880FCA9521 +:10376000EAF70E94481E0E94691E1AC08C2F0E9410 +:103770006F1516C00E5F1F4FFE01C491CC2381F060 +:103780008FE99FE00197F1F700C00000C150F6CF2C +:103790000E5F1F4FFE01F49003C00E94A7148E011C +:1037A0008F2D882309F49FCFEFE9FFE03197F1F7E0 +:1037B00000C000008150F5CFDF91CF911F910F9194 +:1037C000FF90EF90089508956093C3017093C40132 +:1037D0008093C5019093C6010C9410180F931F930A +:1037E0000091C3011091C4012091C5013091C6011F +:1037F000DC01CB01802B912BA22BB32B8093C30137 +:103800009093C401A093C501B093C6011F910F917D +:103810000C9410180F931F930091C3011091C401D1 +:103820002091C5013091C601DC01CB018023912399 +:10383000A223B3238093C3019093C401A093C50135 +:10384000B093C6011F910F910C9410180F931F9302 +:103850000091C3011091C4012091C5013091C601AE +:10386000DC01CB0180279127A227B3278093C301D6 +:103870009093C401A093C501B093C6011F910F910D +:103880000C9410181092BF011092C0011092C10147 +:103890001092C2010C94101841E050E060E070E01A +:1038A00004C0440F551F661F771F8A95D2F74093B7 +:1038B000BF015093C0016093C1017093C2010C9489 +:1038C000101841E050E060E070E004C0440F551F64 +:1038D000661F771F8A95D2F78091BF019091C00132 +:1038E000A091C101B091C201482B592B6A2B7B2BAF +:1038F0004093BF015093C0016093C1017093C20116 +:103900000C94101841E050E060E070E004C0440FF7 +:10391000551F661F771F8A95D2F740955095609581 +:1039200070958091BF019091C001A091C101B091AB +:10393000C201482359236A237B234093BF0150933C +:10394000C0016093C1017093C2010C94101841E052 +:1039500050E060E070E004C0440F551F661F771F01 +:103960008A95D2F78091BF019091C001A091C101C9 +:10397000B091C201482759276A277B274093BF018E +:103980005093C0016093C1017093C2010C94101850 +:103990000F931F930091BF011091C0012091C101AD +:1039A0003091C201DC01CB01802B912BA22BB32BD8 +:1039B0008093BF019093C001A093C101B093C20155 +:1039C0001F910F910C9410180F931F930091BF013A +:1039D0001091C0012091C1013091C201DC01CB01E5 +:1039E00080239123A223B3238093BF019093C0012E +:1039F000A093C101B093C2011F910F910C941018B4 +:103A00000F931F930091BF011091C0012091C1013C +:103A10003091C201DC01CB0180279127A227B32777 +:103A20008093BF019093C001A093C101B093C201E4 +:103A30001F910F910C9410180895CF92DF92EF927E +:103A4000FF920F931F93CF93DF938C01C090C3011C +:103A5000D090C401E090C501F090C6018091BF01F3 +:103A60009091C001A091C101B091C201C82AD92A88 +:103A7000EA2AFB2ACFE1D0E0D701C6010C2E04C010 +:103A8000B695A795979587950A94D2F780FF06C0BB +:103A9000B8018C2F0E94E90B019721F4219760F760 +:103AA00080E001C08C2FDF91CF911F910F91FF908B +:103AB000EF90DF90CF900895CF93DF93EC010E94B9 +:103AC0001D1DBE010E94E90BDF91CF910895CB012E +:103AD0000E945C1D08958091C70185958595859507 +:103AE00008958091C7018770089598E0899F90019B +:103AF0001124262B2093C7010C94611C2091C7012F +:103B0000809582238093C701982F977069F430E0E5 +:103B1000482F552747FD50952417350729F08595DF +:103B2000859585950C94821C08959091C701977096 +:103B300081E009F480E0089590910C01992321F02F +:103B400090910D01911109C020910E0130910F014A +:103B5000F90132969FEF40E01FC0982F96959695F9 +:103B600096959F3050F5E0910E01F0910F01E90F0D +:103B7000F11D877021E030E0A90102C0440F551FFC +:103B80008A95E2F7CA019181892B818308959F3F2D +:103B900039F04F5F4E3041F051915813F8CF0DC0BE +:103BA0005111F7CF942FF5CF9F3F39F0F901E90F6D +:103BB000F11D97FDFA9582830895089590910C0167 +:103BC000992321F090910D01911109C020910E01CE +:103BD00030910F01F9013296205F3F4F1FC0982F9F +:103BE0009695969596959F30F0F4E0910E01F091A0 +:103BF0000F01E90FF11D877021E030E0A90102C03B +:103C0000440F551F8A95E2F7CA0180959181892357 +:103C1000818308953196E217F30729F09081981374 +:103C2000F9CF1082F7CF089581E090E0E0910E0186 +:103C3000F0910F01E80FF91F108201968031910574 +:103C4000A9F708959091DB01892B8093DB010895FA +:103C500080959091DB0189238093DB010895109278 +:103C6000DB0108959091DA01892B8093DA010895A0 +:103C700080959091DA0189238093DA01089510925A +:103C8000DA0108959091D901892B8093D901089583 +:103C900080959091D90189238093D901089510923C +:103CA000D90108958093C80108951092C80108951C +:103CB00080910E0190910F01FC0131969C01205FD3 +:103CC0003F4F80E0919191118F5FE217F307D1F799 +:103CD0000895E0910E01F0910F018091DB01808346 +:103CE000E0910E01F0910F0190818091DA01892B12 +:103CF0008083E0910E01F0910F0190818091D901B4 +:103D0000892B80838091C801882361F0E0910E01A6 +:103D1000F0910F019081892B80830E94581E8111A0 +:103D20001092C80180910E0190910F010C9497138D +:103D300020E0009739F0AC014150510984239523CC +:103D40002F5FF7CF822F0895CF92DF92EF92FF92ED +:103D50006C01EE24FF24C114D104E104F10421F02C +:103D6000C701B60120E101C020E0C72ED82EE92E00 +:103D7000FF24C114D104E104F10419F0285FC70144 +:103D8000B6016B017C0154E0F694E794D794C79494 +:103D90005A95D1F7C114D104E104F10419F02C5F54 +:103DA000C701B6016B017C0142E0F694E794D79419 +:103DB000C7944A95D1F7C114D104E104F10419F074 +:103DC0002E5FC701B601DC01CB01B695A79597958B +:103DD0008795892B8A2B8B2B09F02F5F822FFF90E1 +:103DE000EF90DF90CF9008958091F301843021F11E +:103DF0001092DD0120E488E190E00FB6F894A895D8 +:103E0000809360000FBE2093600080E00E94840CCD +:103E100083B7817F846083BF83B7816083BF7894D9 +:103E2000889583B78E7F83BF88E10FB6F89480931F +:103E30006000109260000FBE0895089508950E94DA +:103E40001D1F0E94F8040E941E1F0E94ED0591E0B4 +:103E5000811101C090E0892F08950E9424180E94CA +:103E60008B130C94840C82E084BD93E095BD9AEF93 +:103E700097BD80936E0008952FB7F8948091DE016E +:103E80009091DF01A091E001B091E1012FBF089571 +:103E9000CF92DF92EF92FF920F931F932FB7F89478 +:103EA0004091DE015091DF016091E0017091E101EC +:103EB0002FBF6A017B01EE24FF248C0120E030E05B +:103EC000C016D106E206F30610F4415051099A01DA +:103ED000281B390BC9011F910F91FF90EF90DF90C4 +:103EE000CF9008951F920F920FB60F9211248F93C7 +:103EF0009F93AF93BF938091DE019091DF01A091DA +:103F0000E001B091E1010196A11DB11D8093DE0198 +:103F10009093DF01A093E001B093E101BF91AF91D5 +:103F20009F918F910F900FBE0F901F9018950E9438 +:103F30008810F8942FEF87EA91E621508040904056 +:103F4000E1F700C0000087E090EBDC018093FD0109 +:103F50009093FE01A093FF01B09300029CE088E1E2 +:103F60000FB6F894A895809360000FBE9093600000 +:103F7000FFCFEF92FF920F931F93CF93DF93D82F32 +:103F8000CDE08C2F0E94E60505E010E0E82EF12C34 +:103F9000C701002E02C0959587950A94E2F780FF2D +:103FA00009C0602F7C2F80E00E949409D81302C0C2 +:103FB00081E006C00150110958F7C15010F780E0A8 +:103FC000DF91CF911F910F91FF90EF900895CF93C4 +:103FD000C82F8CE20E94B91F882321F08C2FCF912B +:103FE0000C94B91F80E0CF910895CF930E943C219B +:103FF000811102C00E942221C5E6C15049F00E94F1 +:10400000F8048FE39CE90197F1F700C00000F5CFB9 +:1040100089E20E94E71F811113C18AE20E94E71F13 +:1040200081110E94222185E00E94E71F81110E94D8 +:10403000971F0E9447218093DC0187E00E94E71FC1 +:104040008823A9F18BE10E94E71F882351F080911A +:10405000DC0181FB222720F991E0922790FB81F976 +:104060000EC08EE00E94E71F882361F08091DC0182 +:1040700082FB222720F991E0922790FB82F980931E +:10408000DC0115C080E10E94E71F9091DC018823CC +:1040900041F093FB222720F981E0822780FB93F9EE +:1040A00004C0892F809580FB90F99093DC0180916A +:1040B000DC010E944B210E9459218093FC0180EE7B +:1040C0000E94E71F882341F08091FC01982F909572 +:1040D00090FB80F98093FC0189E30E94E71F88230D +:1040E00059F08091FC0181FB222720F991E0922771 +:1040F00090FB81F98093FC0182EE0E94E71F8823E8 +:1041000059F08091FC0182FB222720F991E092274F +:1041100090FB82F98093FC0186EE0E94E71F8823C2 +:1041200059F08091FC0183FB222720F991E092272E +:1041300090FB83F98093FC0183EE0E94E71F8823A4 +:1041400059F08091FC0184FB222720F991E092270D +:1041500090FB84F98093FC0185E30E94E71F88238C +:1041600059F08091FC0185FB222720F991E09227EC +:1041700090FB85F98093FC0181E30E94E71F88236F +:1041800059F08091FC0186FB222720F991E09227CB +:1041900090FB86F98093FC0181E10E94E71F882350 +:1041A00059F08091FC0187FB222720F991E09227AA +:1041B00090FB87F98093FC018091FC010E945D21B6 +:1041C0008091FC0187FB882780F980930D0187E2AD +:1041D0000E94E71FC82F8EE10E94E71F8111C26075 +:1041E0008FE10E94E71F8111C46080E20E94E71FF7 +:1041F0008111C86081E20E94E71F8111C06182E2E3 +:104200000E94E71F8111C06283E20E94E71F8111B3 +:10421000C06484E20E94E71F882311F0C06802C0D6 +:10422000CC2329F08C2F0E9454216C2F03C00E94B4 +:104230005021682F70E080E090E0CF910C94E41B57 +:10424000CF9108956DEE7EEF80E090E00E948E2782 +:1042500060E082E090E00E947C2760E083E090E0F4 +:104260000E947C2760E084E090E00E947C2760E070 +:1042700085E090E00C947C2780E090E00E94762717 +:1042800021E08D3E9E4F09F020E0822F089582E0CC +:1042900090E00C946E27682F82E090E00C947C27CD +:1042A00083E090E00C946E27682F83E090E00C94FC +:1042B0007C2784E090E00C946E27682F84E090E0E7 +:1042C0000C947C278091E40180FF0BC06091130166 +:1042D00085E0689FB0011124759567957595679580 +:1042E0002BC081FF09C06091130185E0689FB00178 +:1042F00011247595679520C082FF07C06091130156 +:1043000085E0689FB001112417C09091E5019923C1 +:10431000D1F060911201961788F72091130185E082 +:10432000289F90011124929FA001939F500D11246A +:1043300070E0CA010E9440276038710540F46115A1 +:10434000710539F002C065E070E0862F08958FE7AF +:10435000089581E008958091E40180FF08C0609194 +:10436000110170E0759567957595679521C081FF7E +:1043700006C06091110170E07595679519C082FFC4 +:1043800004C06091110170E010C09091E501992383 +:10439000C1F0609110019617A0F780911101899FDB +:1043A000C001112470E00E9440276038710528F494 +:1043B0006115710521F0862F08958FE7089581E03A +:1043C000089561E070E0F4CF803F21F40E94622103 +:1043D000819504C0813F29F40E9462218093E80105 +:1043E0000895823F21F40E946221819504C0833F99 +:1043F00029F40E9462218093E7010895893F19F40E +:104400000E94AB2105C08A3F31F40E94AB21819507 +:104410008093E90108958B3F21F40E94AB2181959F +:1044200004C08C3F29F40E94AB218093EA010895D7 +:10443000843F21F48091E601816017C0853F21F41B +:104440008091E601826011C0863F21F48091E601EF +:1044500084600BC0873F21F48091E601886005C02D +:10446000883F31F48091E60180618093E6010895F0 +:104470008D3F21F48091E40181600BC08E3F21F4D7 +:104480008091E401826005C08F3F29F48091E401AE +:1044900084608093E4010895803F39F48091E801BD +:1044A00087FF6CC01092E80169C0813F29F48091B8 +:1044B000E8011816BCF362C09091E701823F29F42D +:1044C00097FF5CC01092E70159C0833F19F4191699 +:1044D000CCF354C0893F41F48091E90118160CF0E7 +:1044E0004DC01092E9014AC08A3F29F48091E90148 +:1044F00087FF44C0F6CF8B3F39F48091EA0187FFF4 +:104500003DC01092EA013AC08C3F29F48091EA0143 +:104510001816BCF333C0843F21F48091E6018E7FEE +:1045200017C0853F21F48091E6018D7F11C0863F41 +:1045300021F48091E6018B7F0BC0873F21F48091AD +:10454000E601877F05C0883F31F48091E6018F7EC8 +:104550008093E60113C08D3F21F48091E4018E7FAA +:104560000BC08E3F21F48091E4018D7F05C08F3F09 +:1045700029F48091E4018B7F8093E4018091E7012D +:1045800081110EC08091E80181110AC08091E9017A +:10459000811106C08091EA01811102C01092E501EB +:1045A000089586EE91E00E94A2130E943C1F909312 +:1045B000E3018093E20108951F93CF93DF938091ED +:1045C000E2019091E3010E94481FAC019091E50146 +:1045D000992321F02091140130E006C020911501AB +:1045E0008AE0289F900111244217530708F486C0DF +:1045F0008091E701C091E801D091E9011091EA01B1 +:10460000811107C0C11176C0D11174C0111172C0DF +:1046100075C09F3F19F09F5F9093E501181624F431 +:104620000E9462218093E7018091E70187FF05C026 +:104630000E94622181958093E7011C1624F40E9458 +:1046400062218093E8018091E80187FF05C00E9404 +:10465000622181958093E8016091E701662339F139 +:10466000C091E801CC2319F1772767FD7095872F5A +:10467000972F0E94512623E333E343E35FE30E9435 +:10468000B5260E941E266093E7016C2F772767FDF1 +:104690007095872F972F0E94512623E333E343E33E +:1046A0005FE30E94B5260E941E266093E8011D1656 +:1046B00024F40E94AB218093E9018091E90187FFF6 +:1046C00005C00E94AB2181958093E901111624F465 +:1046D0000E94AB218093EA018091EA0187FF05C027 +:1046E0000E94AB2181958093EA01DF91CF911F91C8 +:1046F0000C94D1229F3F09F08ECF96CFDF91CF91BE +:104700001F910895E6EEF1E085E0DF011D928A95A4 +:10471000E9F71092E5011092E4010895833081F1E8 +:1047200028F4813059F08230D1F00895853009F4B1 +:1047300049C0B8F1863009F456C00895809115013A +:10474000262F30E0280F311D2F3F310524F4680F4C +:104750006093150108958FEF80931501089580915E +:104760001401262F30E0280F311D2F3F310524F48E +:10477000680F6093140108958FEF809314010895DA +:1047800080911301262F30E0280F311D2F3F310576 +:1047900024F4680F6093130108958FEF8093130141 +:1047A000089580911201262F30E0280F311D2F3FF0 +:1047B000310524F4680F6093120108958FEF809300 +:1047C0001201089580911101262F30E0280F311D2C +:1047D0002F3F310524F4680F6093110108958FEF86 +:1047E00080931101089580911001262F30E0280F49 +:1047F000311D2F3F310524F4680F60931001089597 +:104800008FEF809310010895833011F128F48130E7 +:1048100049F0823091F00895853081F120F18630A1 +:10482000C1F1089580911501681720F4861B8093CB +:1048300015010895109215010895809114016817CB +:1048400020F4861B8093140108951092140108959A +:1048500080911301681720F4861B8093130108953B +:1048600010921301089580911201681720F4861B9D +:104870008093120108951092120108958091110100 +:10488000681720F4861B809311010895109211017E +:10489000089580911001681720F4861B8093100101 +:1048A00008951092100108950F931F938D3109F40C +:1048B0006BC008F03FC08E3009F47FC0C0F4873071 +:1048C00009F469C068F4863009F0B1C08091DC0158 +:1048D000817F8E7F8093DC0181E08093EC01A8C012 +:1048E000883009F4A2C08B3009F49FC0A0C0863183 +:1048F00009F49BC078F4803109F472C0813109F069 +:1049000096C00E94241890910D0181E08927809320 +:104910000D018BC0893109F488C08B3109F087C043 +:104920008091DC0181FB222720F991E0922790FB06 +:1049300081F94CC0853309F470C048F4873209F41A +:104940006CC008F459C0893209F467C070C0833460 +:1049500038F48A3308F04EC0883309F466C067C063 +:10496000833409F45AC0883409F061C00E942418C5 +:104970000FEF13ED20E3015010402040E1F700C09D +:1049800000000E94971F51C00E94D8250E948B13DF +:104990000E94840C4AC09091DC01892F809581701F +:1049A00080FB90F929F0966098609093DC0140C0FC +:1049B000997F977F9093DC0138C08091DC0182FB66 +:1049C000222720F991E0922790FB82F98093DC0165 +:1049D000992359F18091DC0181608093DC0125C02D +:1049E0008091DC0183FB222720F991E0922790FB44 +:1049F00083F9ECCF895301C08D5141E050E060E074 +:104A000070E08A019B0104C0000F111F221F331F99 +:104A10008A95D2F7C901B80104C061E070E080E076 +:104A200090E00E94E41B0E94241881E001C080E015 +:104A30001F910F91089580E0089580E00895CF932D +:104A4000C82F8091EC01813079F018F08230E9F1C3 +:104A500087C0E0910E01F0910F018081813169F0F2 +:104A6000823209F07FC009C0E0910E01F0910F0180 +:104A70008081813111F0823261F48C2F0E941B25DC +:104A8000811104C08C2F0E9454241DC081E090E04D +:104A90001AC08C2F0E941D25811114C0C43179F0D9 +:104AA00048F4CB3079F0C03109F060C082E08093E7 +:104AB000EC0108C0C93219F0C83321F057C0109278 +:104AC000EC0154C081E0817053C0C93289F118F5FE +:104AD000C43171F1A8F4C73009F046C08AE0809370 +:104AE000150194E19093140193E090931301809346 +:104AF000120188E08093110188E28093100134C094 +:104B0000CE51C63088F5EC2FF0E0E65DFE4F808197 +:104B10008093EB0129C0CE34E9F020F4CB3421F5A9 +:104B20006AE013C0C13579F0C235F1F461E00DC01F +:104B30008091EB01882319F01092EB0115C081E000 +:104B40008093EC0115C061E006C08091EB010E94EA +:104B50008E230AC06AE08091EB010E94042404C005 +:104B60001092EC0180E004C081E002C080E0ABCF95 +:104B7000CF910895E1E8F0E08081886080838081B2 +:104B8000816080838FB7F89493E09093890090EDD3 +:104B9000909388008FBF0895EFE6F0E080818260F7 +:104BA00080830895EFE6F0E080818D7F8083089513 +:104BB000EFE6F0E0908182E08927808308951F92DC +:104BC0000F920FB60F9211242F933F934F935F9341 +:104BD0006F937F938F939F93AF93BF93EF93FF93C5 +:104BE0008091ED019091EE0101969093EE018093FA +:104BF000ED01811103C082E00E94840CE091EE017E +:104C0000E695E695F0E0E25FF74FE4918091ED01E3 +:104C10008E1303C080E00E94840CFF91EF91BF913E +:104C2000AF919F918F917F916F915F914F913F9144 +:104C30002F910F900FBE0F901F90189504D068947D +:104C4000B1118DC0089570D088F09F5790F0B92FA2 +:104C50009927B751A0F0D1F0660F771F881F991FD1 +:104C60001AF0BA95C9F712C0B13081F077D0B1E02F +:104C7000089574C0672F782F8827B85F39F0B93F3F +:104C8000CCF3869577956795B395D9F73EF49095D3 +:104C90008095709561957F4F8F4F9F4F0895E89451 +:104CA00009C097FB3EF490958095709561957F4F74 +:104CB0008F4F9F4F9923A9F0F92F96E9BB27939522 +:104CC000F695879577956795B795F111F8CFFAF432 +:104CD000BB0F11F460FF1BC06F5F7F4F8F4F9F4F63 +:104CE00016C0882311F096E911C0772321F09EE8C1 +:104CF000872F762F05C0662371F096E8862F70E027 +:104D000060E02AF09A95660F771F881FDAF7880F00 +:104D10009695879597F9089557FD9058440F551F1C +:104D200059F05F3F71F04795880F97FB991F61F02D +:104D30009F3F79F087950895121613061406551FA4 +:104D4000F2CF4695F1DF08C0161617061806991F10 +:104D5000F1CF86957105610508940895E894BB2705 +:104D600066277727CB0197F908950BD078C069D0D3 +:104D700028F06ED018F0952309F05AC05FC01124B6 +:104D8000EECFCADFA0F3959FD1F3950F50E0551FEA +:104D9000629FF001729FBB27F00DB11D639FAA2790 +:104DA000F00DB11DAA1F649F6627B00DA11D661FDF +:104DB000829F2227B00DA11D621F739FB00DA11D00 +:104DC000621F839FA00D611D221F749F3327A00DBA +:104DD000611D231F849F600D211D822F762F6A2F56 +:104DE00011249F5750408AF0E1F088234AF0EE0FDB +:104DF000FF1FBB1F661F771F881F91505040A9F7E8 +:104E00009E3F510570F014C0AACF5F3FECF3983E6F +:104E1000DCF3869577956795B795F795E7959F5F4E +:104E2000C1F7FE2B880F911D9695879597F90895E8 +:104E300097F99F6780E870E060E008959FEF80EC4D +:104E4000089500240A9416161706180609060895F0 +:104E500000240A9412161306140605060895092E56 +:104E60000394000C11F4882352F0BB0F40F4BF2BC5 +:104E700011F460FF04C06F5F7F4F8F4F9F4F089505 +:104E800097FB072E16F4009407D077FD09D00E94F7 +:104E90005A2707FC05D03EF4909581959F4F0895C1 +:104EA000709561957F4F0895EE0FFF1F0590F49167 +:104EB000E02D0994AA1BBB1B51E107C0AA1FBB1F11 +:104EC000A617B70710F0A61BB70B881F991F5A9596 +:104ED000A9F780959095BC01CD010895F999FECF71 +:104EE00092BD81BDF89A992780B50895A8E1B0E0F8 +:104EF00042E050E00C949627262FF999FECF92BD00 +:104F000081BDF89A019700B4021639F01FBA20BD8E +:104F10000FB6F894FA9AF99A0FBE08950196272FC2 +:104F20000E947D270C947C27DC01CB01FC01F999C0 +:104F3000FECF06C0F2BDE1BDF89A319600B40D92E5 +:0C4F400041505040B8F70895F894FFCF9E +:104F4C000220860C140DF10CBD0C890C0101C90159 +:104F5C0028080A03140A3F4D3639CF0782074C073D +:104F6C001307A606BF06D806F106010203040506C0 +:044F7C000708090019 +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/german-manuneo/keymap.c b/keyboards/ergodox_ez/keymaps/german-manuneo/keymap.c new file mode 100644 index 000000000..5fcc14d51 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/german-manuneo/keymap.c @@ -0,0 +1,783 @@ +#include "ergodox_ez.h" +#include "action_layer.h" +#include "keymap.h" +#include "keymap_german.h" + +#define UC_ASYMPTOTICALLY_EQUAL_TO 0 +#define UC_DIVISION_SIGN 1 +#define UC_DOWNWARDS_ARROW 2 +#define UC_ELEMENT_OF 3 +#define UC_EMPTY_SET 4 +#define UC_FOR_ALL 5 +#define UC_GREEK_CAPITAL_LETTER_ALPHA 6 +#define UC_GREEK_CAPITAL_LETTER_BETA 7 +#define UC_GREEK_CAPITAL_LETTER_CHI 8 +#define UC_GREEK_CAPITAL_LETTER_DELTA 9 +#define UC_GREEK_CAPITAL_LETTER_EPSILON 10 +#define UC_GREEK_CAPITAL_LETTER_ETA 11 +#define UC_GREEK_CAPITAL_LETTER_GAMMA 12 +#define UC_GREEK_CAPITAL_LETTER_IOTA 13 +#define UC_GREEK_CAPITAL_LETTER_KAPPA 14 +#define UC_GREEK_CAPITAL_LETTER_LAMDA 15 +#define UC_GREEK_CAPITAL_LETTER_MU 16 +#define UC_GREEK_CAPITAL_LETTER_NU 17 +#define UC_GREEK_CAPITAL_LETTER_OMEGA 18 +#define UC_GREEK_CAPITAL_LETTER_OMICRON 19 +#define UC_GREEK_CAPITAL_LETTER_PHI 20 +#define UC_GREEK_CAPITAL_LETTER_PI 21 +#define UC_GREEK_CAPITAL_LETTER_PSI 22 +#define UC_GREEK_CAPITAL_LETTER_RHO 23 +#define UC_GREEK_CAPITAL_LETTER_SIGMA 24 +#define UC_GREEK_CAPITAL_LETTER_TAU 25 +#define UC_GREEK_CAPITAL_LETTER_THETA 26 +#define UC_GREEK_CAPITAL_LETTER_UPSILON 27 +#define UC_GREEK_CAPITAL_LETTER_XI 28 +#define UC_GREEK_CAPITAL_LETTER_ZETA 29 +#define UC_GREEK_SMALL_LETTER_ALPHA 30 +#define UC_GREEK_SMALL_LETTER_BETA 31 +#define UC_GREEK_SMALL_LETTER_CHI 32 +#define UC_GREEK_SMALL_LETTER_DELTA 33 +#define UC_GREEK_SMALL_LETTER_EPSILON 34 +#define UC_GREEK_SMALL_LETTER_ETA 35 +#define UC_GREEK_SMALL_LETTER_FINAL_SIGMA 36 +#define UC_GREEK_SMALL_LETTER_GAMMA 37 +#define UC_GREEK_SMALL_LETTER_IOTA 38 +#define UC_GREEK_SMALL_LETTER_KAPPA 39 +#define UC_GREEK_SMALL_LETTER_LAMDA 40 +#define UC_GREEK_SMALL_LETTER_MU 41 +#define UC_GREEK_SMALL_LETTER_NU 42 +#define UC_GREEK_SMALL_LETTER_OMEGA 43 +#define UC_GREEK_SMALL_LETTER_OMICRON 44 +#define UC_GREEK_SMALL_LETTER_PHI 45 +#define UC_GREEK_SMALL_LETTER_PI 46 +#define UC_GREEK_SMALL_LETTER_PSI 47 +#define UC_GREEK_SMALL_LETTER_RHO 48 +#define UC_GREEK_SMALL_LETTER_SIGMA 49 +#define UC_GREEK_SMALL_LETTER_TAU 50 +#define UC_GREEK_SMALL_LETTER_THETA 51 +#define UC_GREEK_SMALL_LETTER_UPSILON 52 +#define UC_GREEK_SMALL_LETTER_XI 53 +#define UC_GREEK_SMALL_LETTER_ZETA 54 +#define UC_INFINITY 55 +#define UC_LEFTWARDS_ARROW 56 +#define UC_MULTIPLICATION_SIGN 57 +#define UC_NOT_AN_ELEMENT_OF 58 +#define UC_NOT_EQUAL_TO 59 +#define UC_PLUS_MINUS_SIGN 60 +#define UC_RIGHTWARDS_ARROW 61 +#define UC_SUBSCRIPT_EIGHT 62 +#define UC_SUBSCRIPT_FIVE 63 +#define UC_SUBSCRIPT_FOUR 64 +#define UC_SUBSCRIPT_NINE 65 +#define UC_SUBSCRIPT_ONE 66 +#define UC_SUBSCRIPT_SEVEN 67 +#define UC_SUBSCRIPT_SIX 68 +#define UC_SUBSCRIPT_THREE 69 +#define UC_SUBSCRIPT_TWO 70 +#define UC_SUBSCRIPT_ZERO 71 +#define UC_SUPERSCRIPT_EIGHT 72 +#define UC_SUPERSCRIPT_FIVE 73 +#define UC_SUPERSCRIPT_FOUR 74 +#define UC_SUPERSCRIPT_LATIN_SMALL_LETTER_N 75 +#define UC_SUPERSCRIPT_NINE 76 +#define UC_SUPERSCRIPT_ONE 77 +#define UC_SUPERSCRIPT_SEVEN 78 +#define UC_SUPERSCRIPT_SIX 79 +#define UC_SUPERSCRIPT_THREE 80 +#define UC_SUPERSCRIPT_TWO 81 +#define UC_SUPERSCRIPT_ZERO 82 +#define UC_THERE_DOES_NOT_EXIST 83 +#define UC_THERE_EXISTS 84 +#define UC_UPWARDS_ARROW 85 +#define UC_VULGAR_FRACTION_ONE_EIGHTH 86 +#define UC_VULGAR_FRACTION_ONE_FIFTH 87 +#define UC_VULGAR_FRACTION_ONE_HALF 88 +#define UC_VULGAR_FRACTION_ONE_QUARTER 89 +#define UC_VULGAR_FRACTION_ONE_SIXTH 90 +#define UC_VULGAR_FRACTION_ONE_THIRD 91 +#define UC_VULGAR_FRACTION_THREE_QUARTERS 92 +#define UC_VULGAR_FRACTION_TWO_THIRDS 93 +#define UM 94 + +#define L0 0 // layer_0 +#define L1 1 // layer_1 +#define L2 2 // layer_2 +#define L3 3 // layer_3 +#define L4 4 // layer_4 +#define L5 5 // layer_5 +#define L6 6 // layer_6 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* + * .------------------------------------.------------------------------------. + * |MO(5)| 1 | 2 | 3 | 4 | 5 |ACUT | GRV | 6 | 7 | 8 | 9 | 0 |CIRC | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * |MO(4)| X | P | F | W | G |HOME |TG(2)| H | J | K | L | Q | Z | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * |MO(1)| U | I | A | E | O |-----!-----! S | N | R | T | D | SS | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * |MO(3)| UE | OE | AE | C | V |END | TAB | B | M |COMM| DOT| UP | Y | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | |LGUI|LALT|LCTL| !RCTL|RALT|LEFT|DOWN|RGHT| + * '------------------------' '------------------------' + * .-----------. .-----------. + * |INS |TG(2)| !M(UM)|DELT | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | APP | ! PGUP| ! ! + * ! ! !-----! !-----! ! ! + * |BSPC |LSFT | ESC | ! PGDN|ENTER|SPACE| + * '-----------------' '-----------------' + */ +[L0] = KEYMAP( + MO(5), DE_1, DE_2, DE_3, DE_4, DE_5, DE_ACUT, + MO(4), DE_X, DE_P, DE_F, DE_W, DE_G, KC_HOME, + MO(1), DE_U, DE_I, DE_A, DE_E, DE_O, + MO(3), DE_UE, DE_OE, DE_AE, DE_C, DE_V, KC_END, + KC_TRNS, KC_TRNS, KC_LGUI, KC_LALT, KC_LCTL, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_INS, TG(2), + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_APP, + /*-*/ /*-*/ /*-*/ /*-*/ KC_BSPC, KC_LSFT, KC_ESC, + DE_GRV, DE_6, DE_7, DE_8, DE_9, DE_0, DE_CIRC, + TG(2), DE_H, DE_J, DE_K, DE_L, DE_Q, DE_Z, + /*-*/ DE_S, DE_N, DE_R, DE_T, DE_D, DE_SS, + KC_TAB, DE_B, DE_M, DE_COMM, DE_DOT, KC_UP, DE_Y, + /*-*/ /*-*/ KC_RCTL, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT, + M(UM), KC_DELT, + KC_PGUP, + KC_PGDN, KC_ENTER, KC_SPACE +), +/* + * .------------------------------------.------------------------------------. + * | |EXLM|DQOT|PARA| | | | | | | | |RING| | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | |ASTR|PIPE|SLSH|LCBR|RCBR| | |HASH|LESS|MORE| |DQOT| | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | |UNDS|MINS|AMPR|LBRC|RBRC|-----!-----!DLR |LPRN|RPRN|TILD|QUOT| QST | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | |PLUS|EQL | | | | |BSLS|PERC|SCLN|COLN| ↑ | | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! | | ← | ↓ | → | + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' + */ +[L1] = KEYMAP( + KC_TRNS, DE_EXLM, DE_DQOT, DE_PARA, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, DE_ASTR, DE_PIPE, DE_SLSH, DE_LCBR, DE_RCBR, KC_TRNS, + KC_TRNS, DE_UNDS, DE_MINS, DE_AMPR, DE_LBRC, DE_RBRC, + KC_TRNS, KC_TRNS, DE_PLUS, DE_EQL, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_RING, KC_TRNS, + KC_TRNS, DE_HASH, DE_LESS, DE_MORE, KC_TRNS, DE_DQOT, KC_TRNS, + /*-*/ DE_DLR, DE_LPRN, DE_RPRN, DE_TILD, DE_QUOT, DE_QST, + KC_TRNS, DE_BSLS, DE_PERC, DE_SCLN, DE_COLN, M(UC_UPWARDS_ARROW), KC_TRNS, + /*-*/ /*-*/ KC_TRNS, KC_TRNS, M(UC_LEFTWARDS_ARROW), M(UC_DOWNWARDS_ARROW), M(UC_RIGHTWARDS_ARROW), + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* + * .------------------------------------.------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | F11 | F12 | F6 | F7 | F8 | F9 |F10 |PEQL | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | | | | | | | | | P7 | P8 | P9 |PAST|PSLS | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | | | | |-----!-----! | P4 | P5 | P6 |PMNS|PMNS | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | | | | | | NLCK| | P1 | P2 | P3 |PPLS|PPLS | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! P0 |PCMM|PDOT|PENT|PENT| + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' + */ +[L2] = KEYMAP( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, 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, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PEQL, + KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PAST, KC_PSLS, + /*-*/ KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PMNS, + KC_NLCK, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_PPLS, + /*-*/ /*-*/ KC_P0, KC_PCMM, KC_PDOT, KC_PENT, KC_PENT, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* + * .------------------------------------.------------------------------------. + * | | ¹ | ² | ³ | ⁴ | ⁵ | ∀ | | ⁶ | ⁷ | ⁸ | ⁹ | ⁰ | | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | × | ½ | ÷ | ¼ | ⅕ | | | ⅙ | | ⅛ | | | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | ± | AT |EURO| ∅ |-----!-----! ∞ | ⁿ | ∃ | ∈ | | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | ⅓ | ≠ | ⅔ | ¾ | ≃ | | |EXLM| | ∄ | ∉ | | | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! | | | | | + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' + */ +[L3] = KEYMAP( + KC_TRNS, M(UC_SUPERSCRIPT_ONE), M(UC_SUPERSCRIPT_TWO), M(UC_SUPERSCRIPT_THREE), M(UC_SUPERSCRIPT_FOUR), M(UC_SUPERSCRIPT_FIVE), M(UC_FOR_ALL), + KC_TRNS, M(UC_MULTIPLICATION_SIGN), M(UC_VULGAR_FRACTION_ONE_HALF), M(UC_DIVISION_SIGN), M(UC_VULGAR_FRACTION_ONE_QUARTER), M(UC_VULGAR_FRACTION_ONE_FIFTH), KC_TRNS, + KC_TRNS, KC_TRNS, M(UC_PLUS_MINUS_SIGN), DE_AT, DE_EURO, M(UC_EMPTY_SET), + KC_TRNS, M(UC_VULGAR_FRACTION_ONE_THIRD), M(UC_NOT_EQUAL_TO), M(UC_VULGAR_FRACTION_TWO_THIRDS), M(UC_VULGAR_FRACTION_THREE_QUARTERS), M(UC_ASYMPTOTICALLY_EQUAL_TO), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, M(UC_SUPERSCRIPT_SIX), M(UC_SUPERSCRIPT_SEVEN), M(UC_SUPERSCRIPT_EIGHT), M(UC_SUPERSCRIPT_NINE), M(UC_SUPERSCRIPT_ZERO), KC_TRNS, + KC_TRNS, M(UC_VULGAR_FRACTION_ONE_SIXTH), KC_TRNS, M(UC_VULGAR_FRACTION_ONE_EIGHTH), KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ M(UC_INFINITY), M(UC_SUPERSCRIPT_LATIN_SMALL_LETTER_N), M(UC_THERE_EXISTS), M(UC_ELEMENT_OF), KC_TRNS, KC_TRNS, + KC_TRNS, DE_EXLM, KC_TRNS, M(UC_THERE_DOES_NOT_EXIST), M(UC_NOT_AN_ELEMENT_OF), KC_TRNS, KC_TRNS, + /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* + * .------------------------------------.------------------------------------. + * | | ₁ | ₂ | ₃ | ₄ | ₅ | | | ₆ | ₇ | ₈ | ₉ | ₀ | | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | χ | π | φ | ω | γ | | | η | ξ | κ | λ | | ζ | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | υ | ι | α | ε | ο |-----!-----! σ | ν | ρ | τ | δ | ς | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | θ | | | | | | β | μ | | | | ψ | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! | | | | | + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' + */ +[L4] = KEYMAP( + KC_TRNS, M(UC_SUBSCRIPT_ONE), M(UC_SUBSCRIPT_TWO), M(UC_SUBSCRIPT_THREE), M(UC_SUBSCRIPT_FOUR), M(UC_SUBSCRIPT_FIVE), KC_TRNS, + KC_TRNS, M(UC_GREEK_SMALL_LETTER_CHI), M(UC_GREEK_SMALL_LETTER_PI), M(UC_GREEK_SMALL_LETTER_PHI), M(UC_GREEK_SMALL_LETTER_OMEGA), M(UC_GREEK_SMALL_LETTER_GAMMA), KC_TRNS, + KC_TRNS, M(UC_GREEK_SMALL_LETTER_UPSILON), M(UC_GREEK_SMALL_LETTER_IOTA), M(UC_GREEK_SMALL_LETTER_ALPHA), M(UC_GREEK_SMALL_LETTER_EPSILON), M(UC_GREEK_SMALL_LETTER_OMICRON), + KC_TRNS, KC_TRNS, M(UC_GREEK_SMALL_LETTER_THETA), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, M(UC_SUBSCRIPT_SIX), M(UC_SUBSCRIPT_SEVEN), M(UC_SUBSCRIPT_EIGHT), M(UC_SUBSCRIPT_NINE), M(UC_SUBSCRIPT_ZERO), KC_TRNS, + KC_TRNS, M(UC_GREEK_SMALL_LETTER_ETA), M(UC_GREEK_SMALL_LETTER_XI), M(UC_GREEK_SMALL_LETTER_KAPPA), M(UC_GREEK_SMALL_LETTER_LAMDA), KC_TRNS, M(UC_GREEK_SMALL_LETTER_ZETA), + /*-*/ M(UC_GREEK_SMALL_LETTER_SIGMA), M(UC_GREEK_SMALL_LETTER_NU), M(UC_GREEK_SMALL_LETTER_RHO), M(UC_GREEK_SMALL_LETTER_TAU), M(UC_GREEK_SMALL_LETTER_DELTA), M(UC_GREEK_SMALL_LETTER_FINAL_SIGMA), + KC_TRNS, M(UC_GREEK_SMALL_LETTER_BETA), M(UC_GREEK_SMALL_LETTER_MU), KC_TRNS, KC_TRNS, KC_TRNS, M(UC_GREEK_SMALL_LETTER_PSI), + /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* + * .------------------------------------.------------------------------------. + * | | | | | | | | | | | | | | | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | Χ | Π | Φ | Ω | Γ | | | Η | Ξ | Κ | Λ | | Ζ | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | Υ | Ι | Α | Ε | Ο |-----!-----! Σ | Ν | Ρ | Τ | Δ | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | Θ | | | | | | Β | Μ | | | | Ψ | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! | | | | | + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' + */ +[L5] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_CHI), M(UC_GREEK_CAPITAL_LETTER_PI), M(UC_GREEK_CAPITAL_LETTER_PHI), M(UC_GREEK_CAPITAL_LETTER_OMEGA), M(UC_GREEK_CAPITAL_LETTER_GAMMA), KC_TRNS, + KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_UPSILON), M(UC_GREEK_CAPITAL_LETTER_IOTA), M(UC_GREEK_CAPITAL_LETTER_ALPHA), M(UC_GREEK_CAPITAL_LETTER_EPSILON), M(UC_GREEK_CAPITAL_LETTER_OMICRON), + KC_TRNS, KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_THETA), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_ETA), M(UC_GREEK_CAPITAL_LETTER_XI), M(UC_GREEK_CAPITAL_LETTER_KAPPA), M(UC_GREEK_CAPITAL_LETTER_LAMDA), KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_ZETA), + /*-*/ M(UC_GREEK_CAPITAL_LETTER_SIGMA), M(UC_GREEK_CAPITAL_LETTER_NU), M(UC_GREEK_CAPITAL_LETTER_RHO), M(UC_GREEK_CAPITAL_LETTER_TAU), M(UC_GREEK_CAPITAL_LETTER_DELTA), KC_TRNS, + KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_BETA), M(UC_GREEK_CAPITAL_LETTER_MU), KC_TRNS, KC_TRNS, KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_PSI), + /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* + * .------------------------------------.------------------------------------. + * | | | | | | | | | | | | | | | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | | | | | | | | | | | | | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | | | | |-----!-----! | | | | | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | | | | | | | | | | | | | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! | | | | | + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' + */ +[L6] = 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, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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[] = {}; + +#define UC_MODE_WIN 0 +#define UC_MODE_LINUX 1 +#define UC_MODE_OSX 2 + +// TODO: allow default mode to be configured +static uint16_t unicode_mode = UC_MODE_WIN; + +uint16_t hextokeycode(uint8_t hex) { + if (hex == 0x0) { + return KC_P0; + } + if (hex < 0xA) { + return KC_P1 + (hex - 0x1); + } + return KC_A + (hex - 0xA); +} + +void unicode_action_function(uint16_t hi, uint16_t lo) { + switch (unicode_mode) { + case UC_MODE_WIN: + register_code(KC_LALT); + + register_code(KC_PPLS); + unregister_code(KC_PPLS); + + register_code(hextokeycode((hi & 0xF0) >> 4)); + unregister_code(hextokeycode((hi & 0xF0) >> 4)); + register_code(hextokeycode((hi & 0x0F))); + unregister_code(hextokeycode((hi & 0x0F))); + register_code(hextokeycode((lo & 0xF0) >> 4)); + unregister_code(hextokeycode((lo & 0xF0) >> 4)); + register_code(hextokeycode((lo & 0x0F))); + unregister_code(hextokeycode((lo & 0x0F))); + + unregister_code(KC_LALT); + break; + case UC_MODE_LINUX: + register_code(KC_LCTL); + register_code(KC_LSFT); + + register_code(KC_U); + unregister_code(KC_U); + + register_code(hextokeycode((hi & 0xF0) >> 4)); + unregister_code(hextokeycode((hi & 0xF0) >> 4)); + register_code(hextokeycode((hi & 0x0F))); + unregister_code(hextokeycode((hi & 0x0F))); + register_code(hextokeycode((lo & 0xF0) >> 4)); + unregister_code(hextokeycode((lo & 0xF0) >> 4)); + register_code(hextokeycode((lo & 0x0F))); + unregister_code(hextokeycode((lo & 0x0F))); + + unregister_code(KC_LCTL); + unregister_code(KC_LSFT); + break; + case UC_MODE_OSX: + break; + } +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + if (!record->event.pressed) { + return MACRO_NONE; + } + // MACRODOWN only works in this function + switch(id) { + case UM: + unicode_mode = (unicode_mode + 1) % 2; + break; + +case UC_GREEK_SMALL_LETTER_OMICRON: + unicode_action_function(0x03, 0xbf); + break; +case UC_LEFTWARDS_ARROW: + unicode_action_function(0x21, 0x90); + break; +case UC_GREEK_CAPITAL_LETTER_RHO: + unicode_action_function(0x03, 0xa1); + break; +case UC_SUBSCRIPT_THREE: + unicode_action_function(0x20, 0x83); + break; +case UC_VULGAR_FRACTION_ONE_EIGHTH: + unicode_action_function(0x21, 0x5b); + break; +case UC_GREEK_SMALL_LETTER_LAMDA: + unicode_action_function(0x03, 0xbb); + break; +case UC_VULGAR_FRACTION_ONE_THIRD: + unicode_action_function(0x21, 0x53); + break; +case UC_GREEK_SMALL_LETTER_XI: + unicode_action_function(0x03, 0xbe); + break; +case UC_THERE_DOES_NOT_EXIST: + unicode_action_function(0x22, 0x04); + break; +case UC_SUPERSCRIPT_ONE: + unicode_action_function(0x00, 0xb9); + break; +case UC_GREEK_SMALL_LETTER_BETA: + unicode_action_function(0x03, 0xb2); + break; +case UC_SUBSCRIPT_FIVE: + unicode_action_function(0x20, 0x85); + break; +case UC_GREEK_CAPITAL_LETTER_IOTA: + unicode_action_function(0x03, 0x99); + break; +case UC_VULGAR_FRACTION_ONE_FIFTH: + unicode_action_function(0x21, 0x55); + break; +case UC_GREEK_SMALL_LETTER_PSI: + unicode_action_function(0x03, 0xc8); + break; +case UC_SUBSCRIPT_NINE: + unicode_action_function(0x20, 0x89); + break; +case UC_SUPERSCRIPT_FOUR: + unicode_action_function(0x20, 0x74); + break; +case UC_RIGHTWARDS_ARROW: + unicode_action_function(0x21, 0x92); + break; +case UC_SUPERSCRIPT_SIX: + unicode_action_function(0x20, 0x76); + break; +case UC_DOWNWARDS_ARROW: + unicode_action_function(0x21, 0x93); + break; +case UC_GREEK_SMALL_LETTER_PI: + unicode_action_function(0x03, 0xc0); + break; +case UC_SUPERSCRIPT_TWO: + unicode_action_function(0x00, 0xb2); + break; +case UC_GREEK_CAPITAL_LETTER_OMEGA: + unicode_action_function(0x03, 0xa9); + break; +case UC_GREEK_CAPITAL_LETTER_PSI: + unicode_action_function(0x03, 0xa8); + break; +case UC_SUBSCRIPT_FOUR: + unicode_action_function(0x20, 0x84); + break; +case UC_GREEK_CAPITAL_LETTER_NU: + unicode_action_function(0x03, 0x9d); + break; +case UC_DIVISION_SIGN: + unicode_action_function(0x00, 0xf7); + break; +case UC_GREEK_SMALL_LETTER_SIGMA: + unicode_action_function(0x03, 0xc3); + break; +case UC_GREEK_SMALL_LETTER_RHO: + unicode_action_function(0x03, 0xc1); + break; +case UC_VULGAR_FRACTION_ONE_SIXTH: + unicode_action_function(0x21, 0x59); + break; +case UC_GREEK_SMALL_LETTER_GAMMA: + unicode_action_function(0x03, 0xb3); + break; +case UC_VULGAR_FRACTION_TWO_THIRDS: + unicode_action_function(0x21, 0x54); + break; +case UC_GREEK_SMALL_LETTER_NU: + unicode_action_function(0x03, 0xbd); + break; +case UC_GREEK_SMALL_LETTER_ZETA: + unicode_action_function(0x03, 0xb6); + break; +case UC_GREEK_SMALL_LETTER_EPSILON: + unicode_action_function(0x03, 0xb5); + break; +case UC_GREEK_SMALL_LETTER_KAPPA: + unicode_action_function(0x03, 0xba); + break; +case UC_SUPERSCRIPT_SEVEN: + unicode_action_function(0x20, 0x77); + break; +case UC_GREEK_CAPITAL_LETTER_PI: + unicode_action_function(0x03, 0xa0); + break; +case UC_GREEK_SMALL_LETTER_FINAL_SIGMA: + unicode_action_function(0x03, 0xc2); + break; +case UC_GREEK_CAPITAL_LETTER_XI: + unicode_action_function(0x03, 0x9e); + break; +case UC_GREEK_SMALL_LETTER_THETA: + unicode_action_function(0x03, 0xb8); + break; +case UC_GREEK_SMALL_LETTER_ETA: + unicode_action_function(0x03, 0xb7); + break; +case UC_SUBSCRIPT_TWO: + unicode_action_function(0x20, 0x82); + break; +case UC_ASYMPTOTICALLY_EQUAL_TO: + unicode_action_function(0x22, 0x43); + break; +case UC_GREEK_SMALL_LETTER_ALPHA: + unicode_action_function(0x03, 0xb1); + break; +case UC_GREEK_CAPITAL_LETTER_PHI: + unicode_action_function(0x03, 0xa6); + break; +case UC_GREEK_SMALL_LETTER_PHI: + unicode_action_function(0x03, 0xc6); + break; +case UC_INFINITY: + unicode_action_function(0x22, 0x1e); + break; +case UC_GREEK_CAPITAL_LETTER_OMICRON: + unicode_action_function(0x03, 0x9f); + break; +case UC_ELEMENT_OF: + unicode_action_function(0x22, 0x08); + break; +case UC_MULTIPLICATION_SIGN: + unicode_action_function(0x00, 0xd7); + break; +case UC_SUBSCRIPT_ZERO: + unicode_action_function(0x20, 0x80); + break; +case UC_GREEK_CAPITAL_LETTER_SIGMA: + unicode_action_function(0x03, 0xa3); + break; +case UC_GREEK_SMALL_LETTER_OMEGA: + unicode_action_function(0x03, 0xc9); + break; +case UC_SUBSCRIPT_ONE: + unicode_action_function(0x20, 0x81); + break; +case UC_GREEK_CAPITAL_LETTER_ZETA: + unicode_action_function(0x03, 0x96); + break; +case UC_GREEK_SMALL_LETTER_TAU: + unicode_action_function(0x03, 0xc4); + break; +case UC_SUPERSCRIPT_FIVE: + unicode_action_function(0x20, 0x75); + break; +case UC_THERE_EXISTS: + unicode_action_function(0x22, 0x03); + break; +case UC_PLUS_MINUS_SIGN: + unicode_action_function(0x00, 0xb1); + break; +case UC_VULGAR_FRACTION_THREE_QUARTERS: + unicode_action_function(0x00, 0xbe); + break; +case UC_SUPERSCRIPT_THREE: + unicode_action_function(0x00, 0xb3); + break; +case UC_EMPTY_SET: + unicode_action_function(0x22, 0x05); + break; +case UC_UPWARDS_ARROW: + unicode_action_function(0x21, 0x91); + break; +case UC_SUPERSCRIPT_NINE: + unicode_action_function(0x20, 0x79); + break; +case UC_GREEK_SMALL_LETTER_DELTA: + unicode_action_function(0x03, 0xb4); + break; +case UC_GREEK_SMALL_LETTER_MU: + unicode_action_function(0x03, 0xbc); + break; +case UC_GREEK_CAPITAL_LETTER_KAPPA: + unicode_action_function(0x03, 0x9a); + break; +case UC_SUBSCRIPT_EIGHT: + unicode_action_function(0x20, 0x88); + break; +case UC_GREEK_CAPITAL_LETTER_ALPHA: + unicode_action_function(0x03, 0x91); + break; +case UC_SUBSCRIPT_SEVEN: + unicode_action_function(0x20, 0x87); + break; +case UC_GREEK_CAPITAL_LETTER_BETA: + unicode_action_function(0x03, 0x92); + break; +case UC_GREEK_CAPITAL_LETTER_ETA: + unicode_action_function(0x03, 0x97); + break; +case UC_SUPERSCRIPT_EIGHT: + unicode_action_function(0x20, 0x78); + break; +case UC_SUPERSCRIPT_ZERO: + unicode_action_function(0x20, 0x70); + break; +case UC_NOT_AN_ELEMENT_OF: + unicode_action_function(0x22, 0x09); + break; +case UC_GREEK_SMALL_LETTER_UPSILON: + unicode_action_function(0x03, 0xc5); + break; +case UC_NOT_EQUAL_TO: + unicode_action_function(0x22, 0x60); + break; +case UC_GREEK_CAPITAL_LETTER_CHI: + unicode_action_function(0x03, 0xa7); + break; +case UC_FOR_ALL: + unicode_action_function(0x22, 0x00); + break; +case UC_GREEK_CAPITAL_LETTER_TAU: + unicode_action_function(0x03, 0xa4); + break; +case UC_VULGAR_FRACTION_ONE_QUARTER: + unicode_action_function(0x00, 0xbc); + break; +case UC_GREEK_SMALL_LETTER_CHI: + unicode_action_function(0x03, 0xc7); + break; +case UC_GREEK_CAPITAL_LETTER_THETA: + unicode_action_function(0x03, 0x98); + break; +case UC_GREEK_SMALL_LETTER_IOTA: + unicode_action_function(0x03, 0xb9); + break; +case UC_GREEK_CAPITAL_LETTER_LAMDA: + unicode_action_function(0x03, 0x9b); + break; +case UC_SUPERSCRIPT_LATIN_SMALL_LETTER_N: + unicode_action_function(0x20, 0x7f); + break; +case UC_GREEK_CAPITAL_LETTER_UPSILON: + unicode_action_function(0x03, 0xa5); + break; +case UC_GREEK_CAPITAL_LETTER_MU: + unicode_action_function(0x03, 0x9c); + break; +case UC_GREEK_CAPITAL_LETTER_EPSILON: + unicode_action_function(0x03, 0x95); + break; +case UC_GREEK_CAPITAL_LETTER_GAMMA: + unicode_action_function(0x03, 0x93); + break; +case UC_SUBSCRIPT_SIX: + unicode_action_function(0x20, 0x86); + break; +case UC_GREEK_CAPITAL_LETTER_DELTA: + unicode_action_function(0x03, 0x94); + break; +case UC_VULGAR_FRACTION_ONE_HALF: + unicode_action_function(0x00, 0xbd); + break; + default: + 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 L1: + ergodox_right_led_1_on(); + break; + case L2: + ergodox_right_led_2_on(); + break; + case L3: + ergodox_right_led_3_on(); + break; + case L4: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + break; + case L5: + ergodox_right_led_1_on(); + ergodox_right_led_3_on(); + break; + // case L6: + // ergodox_right_led_2_on(); + // ergodox_right_led_3_on(); + // break; + // case L7: + // ergodox_right_led_1_on(); + // ergodox_right_led_2_on(); + // ergodox_right_led_3_on(); + // break; + default: + ergodox_board_led_off(); + break; + } +}; diff --git a/keyboards/ergodox_ez/keymaps/german-manuneo/keymap.md b/keyboards/ergodox_ez/keymaps/german-manuneo/keymap.md new file mode 100644 index 000000000..2c9e0a837 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/german-manuneo/keymap.md @@ -0,0 +1,188 @@ +# ManuNeo Ergodox Keyboard Layout + +Compile this file to a `keymap.c` file using `compile_keymap.py` + + python compile_keymap.py keymaps/german-manuneo/keymap.md + +Tested with python 2.7 and python 3.4 + + +# Layout Config + + { + "layout": "ergodox_ez", + "keymaps_includes": [ + "ergodox_ez.h", + "action_layer.h", + "keymap_common.h", + "keymap_extras/keymap_german.h", + ], + "key_prefixes": ["DE_", "KC_"], + "macros": { + // TODO: implement macros + // "MUC": "", + }, + // TODO: implement default unicode mode + } + + +# Layers + + +## Layer 0 + + .------------------------------------.------------------------------------. + |MO(5)| 1 | 2 | 3 | 4 | 5 |ACUT | GRV | 6 | 7 | 8 | 9 | 0 |CIRC | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + |MO(4)| X | P | F | W | G |HOME |TG(2)| H | J | K | L | Q | Z | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + |MO(1)| U | I | A | E | O |-----!-----! S | N | R | T | D | SS | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + |MO(3)| UE | OE | AE | C | V |END | TAB | B | M |COMM| DOT| UP | Y | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | |LGUI|LALT|LCTL| !RCTL|RALT|LEFT|DOWN|RGHT| + '------------------------' '------------------------' + .-----------. .-----------. + |INS |TG(2)| !M(UM)|DELT | + .-----+-----+-----! !-----+-----+-----. + ! ! | APP | ! PGUP| ! ! + ! ! !-----! !-----! ! ! + |BSPC |LSFT | ESC | ! PGDN|ENTER|SPACE| + '-----------------' '-----------------' + + +## Layer 1 + + .------------------------------------.------------------------------------. + | |EXLM|DQOT|PARA| | | | | | | | |RING| | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | |ASTR|PIPE|SLSH|LCBR|RCBR| | |HASH|LESS|MORE| |DQOT| | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | |UNDS|MINS|AMPR|LBRC|RBRC|-----!-----!DLR |LPRN|RPRN|TILD|QUOT| QST | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | |PLUS|EQL | | | | |BSLS|PERC|SCLN|COLN| ↑ | | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | ← | ↓ | → | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' + + +## Layer 2 + + .------------------------------------.------------------------------------. + | | F1 | F2 | F3 | F4 | F5 | F11 | F12 | F6 | F7 | F8 | F9 |F10 |PEQL | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | | | | | | | | | P7 | P8 | P9 |PAST|PSLS | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | | | | |-----!-----! | P4 | P5 | P6 |PMNS|PMNS | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | | | | | | NLCK| | P1 | P2 | P3 |PPLS|PPLS | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! P0 |PCMM|PDOT|PENT|PENT| + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' + + + +## Layer 3 + +http://symbolcodes.tlt.psu.edu/bylanguage/mathchart.html + + .------------------------------------.------------------------------------. + | | ¹ | ² | ³ | ⁴ | ⁵ | ∀ | | ⁶ | ⁷ | ⁸ | ⁹ | ⁰ | | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | × | ½ | ÷ | ¼ | ⅕ | | | ⅙ | | ⅛ | | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | ± | AT |EURO| ∅ |-----!-----! ∞ | ⁿ | ∃ | ∈ | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | ⅓ | ≠ | ⅔ | ¾ | ≃ | | |EXLM| | ∄ | ∉ | | | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' + + +## Layer 4 + + + .------------------------------------.------------------------------------. + | | ₁ | ₂ | ₃ | ₄ | ₅ | | | ₆ | ₇ | ₈ | ₉ | ₀ | | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | χ | π | φ | ω | γ | | | η | ξ | κ | λ | | ζ | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | υ | ι | α | ε | ο |-----!-----! σ | ν | ρ | τ | δ | ς | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | θ | | | | | | β | μ | | | | ψ | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' + + +## Layer 5 + + .------------------------------------.------------------------------------. + | | | | | | | | | | | | | | | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | Χ | Π | Φ | Ω | Γ | | | Η | Ξ | Κ | Λ | | Ζ | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | Υ | Ι | Α | Ε | Ο |-----!-----! Σ | Ν | Ρ | Τ | Δ | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | Θ | | | | | | Β | Μ | | | | Ψ | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' + + +## Layer 6 + + .------------------------------------.------------------------------------. + | | | | | | | | | | | | | | | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | | | | | | | | | | | | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | | | | |-----!-----! | | | | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | | | | | | | | | | | | | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' + diff --git a/keyboards/ergodox_ez/keymaps/german/compiled.hex b/keyboards/ergodox_ez/keymaps/german/compiled.hex new file mode 100644 index 000000000..3979ad8c9 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/german/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947A020C94BE020C94BE020C94BE02B4 +:100010000C94BE020C94BE020C94BE020C94BE0260 +:100020000C94BE020C94BE020C94640D0C94360E1B +:100030000C94BE020C94BE020C94BE020C94BE0240 +:100040000C94BE020C9440220C94BE020C94BE028E +:100050000C94BE020C94D31B0C94BE020C94BE02F2 +:100060000C94BE020C94BE020C94BE020C94BE0210 +:100070000C94BE020C94BE020C94BE020C94BE0200 +:100080000C94BE020C94BE020C94BE020C94BE02F0 +:100090000C94BE020C94BE020C94BE020C94BE02E0 +:1000A0000C94BE020C94BE020C94BE02A30EC50EAC +:1000B000B30FC50EB30F0A0F2D0FB30F820F950F9D +:1000C0006412641293129312C912E9121A141A14C8 +:1000D000F4121A14A413A4130B141A141A141414DB +:1000E000B113B113B113B113B113B113B113B113F0 +:1000F000B113B113B113B113B113B113B113B113E0 +:10010000C313D013D713DE13E8130000F0A12302AA +:100110004C003900E100644100001E00140004009E +:100120001D0031714D001F001A0016001B002E002B +:100130002A00200008000700060038002C002100DB +:1001400015000900190030004A00220017000A00BB +:10015000050000006574AE0001540000007F00003F +:10016000E300AB000254000000770000E20023002F +:100170001C000B00110000002971240018000D0064 +:10018000100050004B0025000C000E0036005100FE +:100190002800260012000F00370052002B00270015 +:1001A0001300330038714F004E002D002F003442F1 +:1001B000E500C10000000100010001000100010094 +:1001C00000003A001E0231002202010001003B0043 +:1001D000141421023500010001003C002414250202 +:1001E0002514010001003D002714260226140100F9 +:1001F00001003E0064142E023014000001000100D2 +:1002000001000000010000000100010001000000E9 +:100210000100000001003F005200510023020000D5 +:1002200001004000240021001E00010001004100E7 +:10023000250022001F003700010042002600230095 +:100240002000270001004300300230002D14270257 +:100250000100440045000100010001000000010010 +:10026000010001000100010000003A000100F70058 +:10027000FB00010001003B00F400F200FA00FD0069 +:10028000F5003C00F000F100F900FE00F4003D0034 +:10029000F500F300FC00FF0001003E000100F80043 +:1002A000F600000001000100010000000100000054 +:1002B00001000100010000000100000001003F00FA +:1002C00001000100B400000001004000AA00AC00E1 +:1002D000B600010001004100A800AD00B50001001A +:1002E000B7004200A900AE00B9000100B60043000B +:1002F0000100AB00B700010001004400450001000F +:1003000001000100000016034500720067006F0045 +:1003100044006F007800200045005A0000001603DA +:100320004500720067006F0044006F0078002000F5 +:1003300045005A0000000403090409026D0004018D +:1003400000A0FA09040000010301010009211101C4 +:100350000001223F000705810308000A090401008B +:100360000103010200092111010001224D000705CE +:10037000820308000A0904020001030000000921A9 +:10038000110100012236000705830308000A090451 +:1003900003000103000000092111010001223900BE +:1003A000070584031000011201100100000008ED90 +:1003B000FE071301000102000105010906A1010564 +:1003C0000719E029E7150025019508750181020547 +:1003D000081901290595057501910295017503918B +:1003E0000105071900297715002501957875018108 +:1003F00002C005010980A101850216010026B7008F +:100400001A01002AB700751095018100C0050C097A +:1004100001A1018503160100269C021A01002A9CF5 +:1004200002751095018100C005010902A1010901B1 +:10043000A10005091901290515002501950575017A +:10044000810295017503810105010930093115818A +:10045000257F95027508810609381581257F95014C +:1004600075088106050C0A38021581257F950175EE +:10047000088106C0C005010906A101050719E02988 +:10048000E715002501950875018102950175088120 +:100490000105081901290595057501910295017558 +:1004A0000391010507190029FF150025FF95067521 +:1004B000088100C0000000000000000000000001F2 +:1004C0000204060A0F17202C3A4A5D71879DB3C7B4 +:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF +:1004E0003A2C20170F0A0604020100000000000049 +:1004F0000000000011241FBECFEFDAE0DEBFCDBF49 +:1005000004B603FE24C08091FB019091FC01A091F0 +:10051000FD01B091FE018730904BA740B04BB9F47C +:100520001092FB011092FC011092FD011092FE014D +:1005300014BE84B7877F84BF88E10FB6F894809398 +:100540006000109260000FBEE0E0FFE3099511E04B +:10055000A0E0B1E0EEE0F8E402C005900D92A43313 +:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0 +:10057000B107E1F70E94A80A0C9405240C9400002E +:100580001092B9008AE08093B800089594EA90939D +:10059000BC009091BC0097FFFCCF9091B900987F70 +:1005A000983021F0903111F081E008958093BB00E4 +:1005B00084E88093BC008091BC0087FFFCCF8091D1 +:1005C000B900887F883111F0803471F780E0089598 +:1005D00084E98093BC008091BC0084FDFCCF089529 +:1005E0008093BB0084E88093BC008091BC0087FFAF +:1005F000FCCF9091B900987F81E0983209F480E0B7 +:10060000089584E88093BC008091BC0087FFFCCFF4 +:100610008091BB00089580910101811115C080E493 +:100620000E94C6028093010181110CC082E10E94E8 +:10063000F00280930101811105C08FEF0E94F0024A +:10064000809301010E94E80284B1807F84B985B162 +:10065000807F85B98AB1837F8AB98BB1837F8BB95B +:100660003E98469808950E94C604809301010E9416 +:100670000B0380B38C7080BB81B3836F81BBA5E318 +:10068000B1E0E3E4F1E08EE08E0F11921D928E1343 +:10069000FCCF0C94B004BF92CF92DF92EF92FF9206 +:1006A0000F931F93CF93DF9380910101882379F0FB +:1006B000809134018F5F80933401811108C00E94C2 +:1006C000C60480930101811102C00E94580405E311 +:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407 +:1006E000E394F12CC730D10500F58091010181110F +:1006F00064C080E40E94C60280930101811112C08F +:1007000082E10E94F0028093010181110BC0C701B8 +:100710000C2E01C0880F0A94EAF780950E94F0021F +:10072000809301010E94E80248C0CA30A1F028F479 +:10073000C83059F0C93061F005C0CC3089F070F094 +:10074000CD3089F0209A289810C0219A29980DC0A0 +:10075000229A2A980AC0239A2B9807C0529A01C05D +:10076000539A5B9802C03E9A469890EA9A95F1F7A0 +:100770009FB1799902C082E001C080E091709D250F +:10078000982B7C9902C084E001C080E0892B7D9980 +:1007900002C038E001C030E0832B7E9902C020E126 +:1007A00001C020E0822B9FB19095991F9927991F36 +:1007B0009295990F907E892B0FC080910101811134 +:1007C00049C080E40E94C60280930101882379F128 +:1007D000B12C0E94E8028B2DF8019081981719F036 +:1007E0008083C09200010E940B0321960F5F1F4F70 +:1007F000CE30D10509F076CF80910001882361F1D8 +:10080000815080930001882339F08FE99FE00197A0 +:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F +:10082000CF01825F91919D938E13FCCF15C083E120 +:100830000E94F002809301018111CACF81E40E94DD +:10084000C602809301018111C3CF0E940103B82E1B +:10085000B094BFCF80E0C0CF0E94560481E0DF910A +:10086000CF911F910F91FF90EF90DF90CF90BF90AD +:100870000895E82FF0E0ED5BFE4F80810895089524 +:100880000F931F93CF93DF93C3E4D1E010E00C2FBD +:10089000025F899190E00E94F91A180F0C13F9CFAA +:1008A000812FDF91CF911F910F9108950C94260510 +:1008B00056985E9825982D9826982E9827982F98C8 +:1008C0008FEF90E0909389008093880090938B0045 +:1008D00080938A0090938D0080938C00259A2D9AA6 +:1008E0002FEF80E792E0215080409040E1F700C078 +:1008F0000000269A2E9A2FEF80E792E02150804048 +:100900009040E1F700C00000279A2F9A2FEF80E770 +:1009100092E0215080409040E1F700C0000025980F +:100920002D982FEF80E792E0215080409040E1F732 +:1009300000C0000026982E982FEF80E792E021500B +:1009400080409040E1F700C0000027982F9856980B +:100950005E9825982D9826982E9827982F98089578 +:1009600089EA8093800089E08093810024982C9804 +:100970003F988AB18F748AB96E98479A8BB1806B11 +:100980008BB9769A0E9458040C94250580E28093D6 +:1009900001018091510181110EC00E94C00281E0CD +:1009A000809351012FEF83ED90E3215080409040E0 +:1009B000E1F700C0000080E40E94C60280930101BC +:1009C00081112EC00E94F00280930101811128C084 +:1009D0000E94F00280930101811122C08FE30E94E6 +:1009E000F0028093010181111BC00E94E80280E4A3 +:1009F0000E94C60280930101811112C08CE00E9406 +:100A0000F0028093010181110BC00E94F0028093DB +:100A10000101811105C08FE30E94F0028093010162 +:100A20000E94E80280910101089561110BC0FC0150 +:100A30008281882321F085EE0E94081103C085EE93 +:100A40000E94D01180E090E0089508956091BD016A +:100A50007091BE018091BF019091C0010E94051B61 +:100A600056985E9825982D9826982E9827982F9816 +:100A7000813029F0823031F4269A2E9A0895259AF1 +:100A80002D9A089556985E98089581E0089581E022 +:100A900008950C94470508950F931F93CF93DF9308 +:100AA0008C01FC01C081D181CE010E947E19BE0162 +:100AB0000E94F505EC01B8010E944905882309F45C +:100AC0008DC0F8018281882309F44AC080915D01BC +:100AD00081111FC0C431F0E5DF0709F051C00E9449 +:100AE0004B0581E080935D010E949D1B90935C010A +:100AF00080935B011092540110925601109255019F +:100B0000109258011092570110925A0110925901F7 +:100B100065C080915B0190915C010E94A91B883C9B +:100B2000910570F480915401E82FF0E0EE0FFF1F63 +:100B3000EB5AFE4FD183C0838F5F809354014EC028 +:100B4000C43880E5D80721F0C538D04501F13AC056 +:100B5000F8018281882341F01092520182E01EC088 +:100B6000C438E0E5DE0759F580915201811106C0D5 +:100B700086E20E94081186E20E94D01182E01CC029 +:100B8000C438F0E5DF0741F3C538D045D9F4F801A2 +:100B90008281882331F01092530180E20E941F125B +:100BA0001DC080915301811106C087E20E94081187 +:100BB00087E20E94D01180E20E9426120FC0C53841 +:100BC000D04529F381E08093520180935301C801FD +:100BD000DF91CF911F910F910C94450580E0DF913B +:100BE000CF911F910F910895089596E0799FF0019C +:100BF000112494E5899FE00DF11D1124E60FF11DEC +:100C0000EE0FFF1FE25FFE4F859194910895880FCC +:100C1000991FFC01E657F040859194910895880F43 +:100C2000991FFC01E65FFE4F8591949108950F9303 +:100C30001F93CF93DF93EC01811520E3920750F5CA +:100C4000C11580E2D80708F0C3C0CB3BD10590F4B2 +:100C5000C83AD10508F06AC0C53AD10508F05BC0B2 +:100C6000C430D10508F0D0C1219709F0CAC101E014 +:100C700010E00AC2CF3FD10511F008F0C5C1C03F56 +:100C8000D10508F0A2C0CE01805E9109089708F452 +:100C9000BBC1B7C1C13090E5D90709F4A2C020F5A6 +:100CA000C0318FE4D80770F4C11590E4D90708F07B +:100CB00094C0C11521E3D20708F0A3C1DD278E013E +:100CC000106CE2C1C115D04509F09BC10E9485148A +:100CD0008FEF94E32CE0815090402040E1F700C07A +:100CE00000000E94F81BD0C1C11597E5D90758F440 +:100CF000C03121E5D20708F01CC1C43180E5D80716 +:100D000008F475C07EC1CE0190578115904108F05E +:100D100078C1DF7073C1C53AD10509F477C1C63A0D +:100D2000D10509F076C102E810E4AEC1C83AD10598 +:100D300009F472C1C93AD10509F471C1CA3AD105A1 +:100D400009F470C1CB3AD10509F46FC1CC3AD10591 +:100D500009F46EC1CD3AD10509F46DC1C03BD1058E +:100D600009F46CC1CE3AD10509F46BC1CF3AD10573 +:100D700009F46AC1C13BD10509F469C1C23BD1057F +:100D800009F468C1C33BD10509F467C1C43BD1056F +:100D900009F466C1C53BD10509F465C1C63BD1055F +:100DA00009F464C1C73BD10509F463C1C83BD1054F +:100DB00009F462C1C93BD10509F461C1CA3BD1053F +:100DC00009F460C100E014E45FC18E0110655CC1EC +:100DD000CE019F700E940F0658C1DF708E01106A0D +:100DE00053C18091DA0181608093DA014DC10E9484 +:100DF0009D1D811102C00E94831D0E94BA1D90E0BA +:100E00009093FB018093FA01C23080E5D80721F46A +:100E10008091FA01816086C0C43090E5D90721F441 +:100E20008091FA0182607EC0C63020E5D20721F4AD +:100E30008091FA01846076C0C83080E5D80719F443 +:100E40008091FA0127C0CA3090E5D90721F480913A +:100E5000FA01806167C0CC3020E5D20721F480918F +:100E6000FA0180625FC0CE3080E5D80721F480911E +:100E7000FA01806457C0C03190E5D90721F4809110 +:100E8000FA0180684FC0C23120E5D20729F4809171 +:100E9000FA018460886046C0C33080E5D80721F439 +:100EA0008091FA018E7F3EC0C53090E5D90721F4CC +:100EB0008091FA018D7F36C0C73020E5D20721F43A +:100EC0008091FA018B7F2EC0C93080E5D80719F4D4 +:100ED0008091FA0126C0CB3090E5D90721F48091AA +:100EE000FA018F7E1FC0CD3020E5D20721F480911A +:100EF000FA018F7D17C0CF3080E5D80721F48091AB +:100F0000FA018F7B0FC0C13190E5D90721F48091A0 +:100F1000FA018F7707C0C331D04531F48091FA01CF +:100F20008B7F877F8093FA018091FA010E94BE1D1A +:100F3000ABC08D2F99278F70992781309105D9F4F7 +:100F40009E012370332702C0880F991F2A95E2F76C +:100F50009C688E0144E0000F111F4A95E1F70027BD +:100F60001370802B912B53E0CC0FDD1F5A95E1F7C6 +:100F7000C076DD272FC08230910531F4DC2FCC27DD +:100F80008E01016F106A80C08330910569F4CE0133 +:100F90008370992701E010E002C0000F111F8A95AD +:100FA000E2F7C8019C680FC084309105B9F4CE0106 +:100FB0008370992701E010E002C0000F111F8A958D +:100FC000E2F7C8019A6823E0CC0FDD1F2A95E1F70C +:100FD000C07ED7708C010C2B1D2B56C0853091051F +:100FE00031F4DC2FCC278E01046F106A4DC00697B8 +:100FF00009F04AC0CF71DD27DC2FCC278E011062AB +:1010000043C000E010E040C08E013EC001E810E4A3 +:101010003BC003E810E438C002EE14E435C009EE2A +:1010200014E432C00AEE14E42FC005EB14E42CC023 +:1010300006EB14E429C007EB14E426C00CEC14E41E +:1010400023C00DEC14E420C003E815E41DC00AE839 +:1010500015E41AC002E915E417C004E915E414C048 +:1010600001E216E411C003E216E40EC004E216E445 +:101070000BC005E216E408C006E216E405C007E26C +:1010800016E402C00AE216E4C801DF91CF911F9175 +:101090000F91089596E0799FF001112494E5899FBE +:1010A000E00DF11D1124E60FF11DEE0FFF1FE25FB1 +:1010B000FE4F85919491803E9105E0F4803C91052E +:1010C00058F58133910509F46FC048F489329105D0 +:1010D00009F463C08A32910509F46DC072C0893386 +:1010E0009105E9F082389105D1F08533910509F435 +:1010F0004DC067C0833E910581F138F4803E910573 +:10110000B9F0823E9105D9F05CC0863E910561F14F +:10111000873E9105A1F155C00E94070608952091D0 +:10112000FA0120FD02C021FF4CC080EE90E049C0D2 +:101130008091FA0180FFF9CF89E390E042C080916D +:10114000FA0182FF0EC08091FA0184FF03C080E0A3 +:1011500090E037C083EE90E034C08091FA0182FFC6 +:10116000F2CF82EE90E02DC08091FA0183FF0BC098 +:101170008091FA0184FDEBCF87EE90E022C0809150 +:10118000FA0183FFF5CF86EE90E01BC08091FA0153 +:1011900085FF07C089E290E014C08091FA0185FFC5 +:1011A000F9CF85E390E00DC08091FA0186FF07C07A +:1011B0008AE290E006C08091FA0186FFF9CF81E3D0 +:1011C00090E00E941706089508950C94E408809119 +:1011D0006E010895CF93DF9300D01F92CDB7DEB795 +:1011E0009C018091F101843019F593E099833B8350 +:1011F0002A839093E9008FEF9091E800815095FD4C +:1012000006C095ED9A95F1F700008111F5CF809118 +:10121000E80085FF0DC040E050E063E070E0CE01E3 +:1012200001960E94540B8091E8008E778093E8002D +:101230000F900F900F90DF91CF910895CF93DF9390 +:1012400000D01F92CDB7DEB72091F101243021F5F7 +:1012500022E029839B838A8383E08093E9008FEFD8 +:101260009091E800815095FD06C095ED9A95F1F7B3 +:1012700000008111F5CF8091E80085FF0DC040E0AE +:1012800050E063E070E0CE0101960E94540B809123 +:10129000E8008E778093E8000F900F900F90DF9119 +:1012A000CF9108952091F1012430F1F422E02093B0 +:1012B000E9002FEF3091E800215035FD06C035EDF3 +:1012C0003A95F1F700002111F5CF2091E80025FFB4 +:1012D0000BC040E050E065E070E00E94540B80914C +:1012E000E8008E778093E8000895CF93DF93EC01B8 +:1012F0009091F101943009F046C080910C0188234F +:10130000D9F080910D018823B9F09093E9008FEF17 +:101310009091E800815095FD06C095E19A95F1F70E +:1013200000008111F5CF8091E80085FF2CC040E0DE +:1013300050E060E170E017C081E08093E9008FEF3A +:101340009091E800815095FD06C095ED9A95F1F7D2 +:1013500000008111F5CF8091E80085FF14C040E0C6 +:1013600050E068E070E0CE010E94540B8091E800EC +:101370008E778093E80080E1FE01AEE5B1E0019058 +:101380000D928A95E1F7DF91CF9108958091F00158 +:10139000811109C00E94E90C0E94460D8091E20073 +:1013A00084608093E20008951092F00108950895FA +:1013B0000C942D220E948E1B0E9433220E94EC0F5F +:1013C0000C94E50842E061EC81E00E94630C42E08D +:1013D00061EC82E00E94630C42E061EC83E00E94D9 +:1013E000630C42E161EC84E00C94630C8091F301A6 +:1013F000833009F455C030F4813071F0823009F443 +:101400008EC008958A3009F47AC08B3009F460C028 +:10141000893009F09CC020C08091F201813A09F026 +:1014200096C08091E800877F8093E8008091F60164 +:101430009091F701892B21F460E18EE591E003C0E2 +:1014400060E080E090E070E00E949F0B8091E800F7 +:101450008B778093E80008958091F201813209F042 +:1014600076C08091F6019091F701009719F00397EB +:1014700009F06DC08091E800877F8093E80080913B +:10148000E80082FD05C08091F1018111F8CF5FC0B5 +:101490008091F10080936E018091E8008B7753C0BA +:1014A0008091F201813A09F052C08091F601909149 +:1014B000F701892B09F04BC08091E800877F80936A +:1014C000E8008091E80080FFFCCF80910C0136C0DD +:1014D0008091F2018132D9F58091F6019091F70166 +:1014E000892BA9F58091E800877F8093E8000E940E +:1014F000980C8091F40180930C010C9485148091D8 +:10150000F201813221F58091E800877F8093E80025 +:101510000E94980C8091F50180936F01089580914D +:10152000F201813AA1F48091E800877F8093E8007E +:101530008091E80080FFFCCF80916F018093F100E3 +:101540008091E8008E778093E8000C94980C0895C1 +:1015500084B7877F84BF88E10FB6F89480936000DA +:10156000109260000FBE90E080E80FB6F894809370 +:101570006100909361000FBE0E943B100E94E90C35 +:101580000E94460D8091E20084608093E20078948E +:101590000E94CC0F0E943D1082E091E00E94E70F74 +:1015A0000E941B228091F101853069F40E94551B35 +:1015B0008091EF018823B1F30E94801B882391F36F +:1015C0000E943E0BEFCF0E944310ECCF292F332710 +:1015D00023303105C9F064F42130310581F0223027 +:1015E000310509F043C08DE690E02AE333E042C0C4 +:1015F00021323105F1F02232310541F137C082E16B +:1016000090E027EA33E036C099278130910541F018 +:101610008230910541F0892B49F5E6E3F3E005C0FE +:10162000EEE1F3E002C0E6E0F3E0849190E09F0198 +:1016300021C06430D8F4E62FF0E0EE0FFF1FEE5D1E +:10164000FE4F2081318189E090E014C0643070F455 +:1016500070E0FB01EE0FFF1FE65EFE4F208131813F +:10166000FB01EA5EFE4F808190E004C080E090E0E4 +:1016700020E030E0FA0131832083089580E189BDC4 +:1016800082E189BD09B400FEFDCF8091D8008F7D35 +:101690008093D8008091E00082608093E000809188 +:1016A000E00081FDFCCF0895CF92DF92EF92FF9290 +:1016B0000F931F93CF93DF93EC018B016A010E947C +:1016C000B70C811133C0C114D10439F0F601808107 +:1016D0009181081B190BC80FD91FE12CF12C0115A2 +:1016E000110519F18091E80085FD16C08091E80090 +:1016F0008E778093E800C114D10449F0F60180810F +:101700009181E80EF91EF182E08285E00FC00E940F +:10171000B70C882321F30AC089918093F10001500E +:101720001109FFEFEF1AFF0ADACF80E0DF91CF91C6 +:101730001F910F91FF90EF90DF90CF90089520912F +:10174000F8013091F9012617370748F06115710546 +:1017500039F42091E8002E772093E80001C0B90108 +:1017600040E061157105A9F12091F101222309F4EE +:1017700043C0253009F442C02091E80023FD40C059 +:101780002091E80022FD32C02091E80020FFE9CF3F +:101790004091F3002091F20030E0342BFC01CF01A6 +:1017A0006115710559F02830310540F4819180931D +:1017B000F100615071092F5F3F4FF1CF41E02830B8 +:1017C000310509F040E02091E8002E772093E800F1 +:1017D000C8CF4111C9CF0AC08091F101882361F0BF +:1017E000853061F08091E80083FD0AC08091E800B7 +:1017F00082FFF2CF80E0089582E0089583E00895AB +:1018000081E008952091F8013091F90126173707FA +:1018100048F06115710539F42091E8002E77209386 +:10182000E80001C0B901FC0120E06115710591F1EA +:101830008091F101882309F440C0853009F43FC04C +:101840008091E80083FD3DC08091E80082FD2FC0BB +:101850008091E80080FFE9CF2091F3008091F200B1 +:1018600090E0922B6115710559F08830910540F494 +:1018700024912093F1003196615071090196F2CFC5 +:1018800021E0089709F020E08091E8008E778093AE +:10189000E800CBCF2111CCCF0AC08091F101882381 +:1018A00061F0853061F08091E80083FD0AC080918D +:1018B000E80082FFF2CF80E0089582E0089583E09F +:1018C000089581E00895982F973058F59093E90096 +:1018D000981739F07091EC002091ED005091F000D4 +:1018E00003C0242F762F50E021FF19C03091EB0068 +:1018F0003E7F3093EB003091ED003D7F3093ED0063 +:101900003091EB0031603093EB007093EC0020934A +:10191000ED005093F0002091EE0027FF07C09F5F7D +:10192000D3CF8F708093E90081E0089580E008951F +:101930008091F20187FF11C08091E80082FD05C00F +:101940008091F1018111F8CF11C08091E8008B776F +:101950000BC08091F101882349F08091E80080FF5D +:10196000F8CF8091E8008E778093E8000895209169 +:10197000E4003091E50095E64091EC00842F817001 +:1019800040FF22C08091E80080FD1CC08091F101E1 +:10199000882391F0853091F08091EB0085FD10C097 +:1019A0004091E4005091E5004217530729F39A0152 +:1019B000915011F784E0089582E0089583E008953E +:1019C00081E0089580E008954091E80042FFDECF75 +:1019D00008950E94570D0E945F0DE0EEF0E08081B7 +:1019E00081608083E8EDF0E080818F77808319BC8F +:1019F000A7EDB0E08C918E7F8C9380818F7E808369 +:101A00001092F00108950F931F93CF93DF930E94DC +:101A1000570D0E945F0DC8EDD0E088818F778883D5 +:101A200088818068888388818F7D888319BC109223 +:101A3000F1011092ED011092EF011092EE0100EE13 +:101A400010E0F80180818B7F8083888181608883AA +:101A500042E060E080E00E94630CE1EEF0E0808113 +:101A60008E7F8083E2EEF0E08081816080838081E0 +:101A700088608083F80180818E7F80838881806187 +:101A80008883DF91CF911F910F910895E8EDF0E0E9 +:101A900080818F7E8083E7EDF0E0808181608083AC +:101AA00084E082BF81E08093F0010C94030DE8EDA7 +:101AB000F0E080818E7F80831092E2000895109282 +:101AC000DA001092E10008951F920F920FB60F9264 +:101AD00011242F933F934F935F936F937F938F9333 +:101AE0009F93AF93BF93EF93FF938091E10082FFA9 +:101AF0000BC08091E20082FF07C08091E1008B7FE4 +:101B00008093E1000E94CB0F8091DA0080FF1FC01C +:101B10008091D80080FF1BC08091DA008E7F809377 +:101B2000DA008091D90080FF0DC080E189BD82E19B +:101B300089BD09B400FEFDCF81E08093F1010E94D0 +:101B4000C60905C019BC1092F1010E94D409809108 +:101B5000E10080FF19C08091E20080FF15C08091F4 +:101B6000E2008E7F8093E2008091E20080618093AA +:101B7000E2008091D80080628093D80019BC85E093 +:101B80008093F1010E94D8098091E10084FF30C068 +:101B90008091E20084FF2CC080E189BD82E189BD93 +:101BA00009B400FEFDCF8091D8008F7D8093D800CE +:101BB0008091E1008F7E8093E1008091E2008F7E32 +:101BC0008093E2008091E20081608093E200809146 +:101BD000ED01882311F084E007C08091E30087FDC8 +:101BE00002C081E001C083E08093F1010E94DA0924 +:101BF0008091E10083FF29C08091E20083FF25C02E +:101C00008091E100877F8093E10082E08093F10181 +:101C10001092ED018091E1008E7F8093E100809130 +:101C2000E2008E7F8093E2008091E20080618093E9 +:101C3000E20042E060E080E00E94630C8091F000EE +:101C400088608093F0000E94D709FF91EF91BF91C7 +:101C5000AF919F918F917F916F915F914F913F9144 +:101C60002F910F900FBE0F901F9018951F920F92FB +:101C70000FB60F9211242F933F934F935F936F935F +:101C80007F938F939F93AF93BF93CF93DF93EF9304 +:101C9000FF93C091E900CF708091EC00D82FD170F4 +:101CA00080FDD0E81092E9008091F000877F80935A +:101CB000F00078940E947A0E1092E9008091F00072 +:101CC00088608093F000CD2BCF70C093E900FF9126 +:101CD000EF91DF91CF91BF91AF919F918F917F91C4 +:101CE0006F915F914F913F912F910F900FBE0F9089 +:101CF0001F9018951F93CF93DF93CDB7DEB7AA97A8 +:101D00000FB6F894DEBF0FBECDBFE2EFF1E088E082 +:101D10008E0F9091F10091938E13FBCF0E94F609E4 +:101D20008091E80083FF1FC18091F2019091F3013F +:101D3000492F50E04A30510508F015C1FA01EA5A1E +:101D4000FF4F0C94B523803881F0823809F00BC125 +:101D50008091F6018F708093E9008091EB0085FB04 +:101D6000882780F91092E90006C08091EE019091D9 +:101D7000EF01911182609091E800977F9093E800C5 +:101D80008093F1001092F100C8C0282F2D7F09F038 +:101D9000EAC0882319F0823061F0E5C08091F40137 +:101DA000813009F0E0C0933009F080E08093EF01CA +:101DB0002BC08091F401811127C08091F6018F70B2 +:101DC00009F4D1C08093E9002091EB0020FF1CC0F2 +:101DD000933021F48091EB00806214C09091EB006D +:101DE00090619093EB0021E030E0A90102C0440F24 +:101DF000551F8A95E2F74093EA001092EA0080911D +:101E0000EB0088608093EB001092E9008091E8007D +:101E1000877F86C08111A7C01091F4011F77809140 +:101E2000E3008078812B8093E3008091E800877F36 +:101E30008093E8000E94980C8091E80080FFFCCF1E +:101E40008091E30080688093E300111102C082E07A +:101E500001C083E08093F10186C08058823008F091 +:101E600082C08091F4019091F5018C3D53E095077B +:101E700079F583E08A838AE289834FB7F894DE019B +:101E8000139620E03EE051E2E32FF0E0509357003C +:101E9000E49120FF03C0E295EF703F5FEF708E2F5B +:101EA00090E0EA3010F0C79601C0C0968D939D93E4 +:101EB0002F5F243149F74FBF8091E800877F8093DF +:101EC000E8006AE270E0CE0101960E949F0B14C008 +:101ED000AE014F5F5F4F6091F6010E94E60ABC01C0 +:101EE000009709F440C09091E800977F9093E80034 +:101EF00089819A810E94020C8091E8008B778093FF +:101F0000E80031C0803879F58091E800877F8093C0 +:101F1000E8008091ED018093F1008091E8008E77D8 +:101F20008093E8000E94980C1EC081111CC0909103 +:101F3000F4019230C0F48091E800877F8093E8003C +:101F40009093ED010E94980C8091ED01811106C0E3 +:101F50008091E30087FD02C081E001C084E08093AE +:101F6000F1010E94E2098091E80083FF0AC080919C +:101F7000E800877F8093E8008091EB008062809387 +:101F8000EB00AA960FB6F894DEBF0FBECDBFDF916F +:101F9000CF911F9108950895CF938091F1018823E7 +:101FA000A1F0C091E900CF709091EC00892F817071 +:101FB00090FD80E8C82B1092E9008091E80083FD35 +:101FC0000E947A0ECF70C093E900CF91089590934C +:101FD0007501809374010895E0917401F091750189 +:101FE000309721F00190F081E02D099480E0089570 +:101FF000E0917401F0917501309721F00280F38136 +:10200000E02D09940895E0917401F09175013097E5 +:1020100021F00480F581E02D09940895209172014A +:10202000309173018217930771F09093730180933D +:102030007201E0917401F0917501309721F00680F2 +:10204000F781E02D0994089520917001309171017C +:102050008217930771F09093710180937001E09162 +:102060007401F0917501309721F00084F185E02D25 +:102070000994089508950C943A100E94941B0E94AC +:1020800033030C94561C9F92AF92BF92CF92DF9273 +:10209000EF92FF920F931F93CF93DF9300D000D066 +:1020A00000D0CDB7DEB70E944B030DE010E0AA24AC +:1020B000A394B12C902E802F0E94390498012958A6 +:1020C0003E4F6901F901F080F826A1F40150110991 +:1020D00088F78FEF89838A831B820E949D1B816012 +:1020E000782F9D838C8349815A816B818D810E94D9 +:1020F000DA102FC09091DA0191FF04C08E830E9404 +:102100003F048E8125E030E0A501022E01C0440F7E +:102110000A94EAF7E42E4F21C1F029839A828E2196 +:1021200091E009F490E09B830E949D1B8160782FD1 +:102130009D838C8349815A816B818D810E94DA1045 +:10214000F6018081E826E08204C021503109E0F6E2 +:10215000BDCF0E943D1F109176010E94EC0F181711 +:10216000B9F00E94EC0F8093760126960FB6F89492 +:10217000DEBF0FBECDBFDF91CF911F910F91FF90BA +:10218000EF90DF90CF90BF90AF909F900C94E508B8 +:1021900026960FB6F894DEBF0FBECDBFDF91CF916C +:1021A0001F910F91FF90EF90DF90CF90BF90AF9075 +:1021B0009F900895CF93DF93CDB7DEB72B970FB6DF +:1021C000F894DEBF0FBECDBF4F83588769877A87EB +:1021D0008B87DE01119686E0FD0111928A95E9F761 +:1021E00085E0FE01379601900D928A95E1F74981CD +:1021F0005A816B817C818D819E810E9423172B9651 +:102200000FB6F894DEBF0FBECDBFDF91CF9108951A +:10221000CF93882309F4C2C0C82F823859F40E9492 +:10222000EC0F81FDBBC089E30E94FD190E94CA1A10 +:1022300089E30CC0833879F40E94EC0F80FDAEC0B6 +:1022400083E50E94FD190E94CA1A83E50E943F1A85 +:10225000CF910C94CA1A843859F40E94EC0F82FD75 +:102260009DC087E40E94FD190E94CA1A87E4EECF40 +:102270008CEF8C0F813A48F48C2F0E9480218111C1 +:102280008DC08C2F0E94FD19E3CF80E28C0F883027 +:1022900048F4C77081E001C0880FCA95EAF70E9430 +:1022A000831AD6CF8BE58C0F833078F4C53A29F0AA +:1022B000C63A31F083E890E005C081E890E002C0C2 +:1022C00082E890E0CF910C940E1088E58C0F83315A +:1022D00008F064C0C83A39F1C93A41F1CA3A49F143 +:1022E000CB3A51F1CC3A59F1CD3A61F1C03B69F1A9 +:1022F000CE3A71F1CF3A79F1C13B81F1C23B89F11C +:10230000C33B91F1C43B99F1C53BA1F1C63BA9F197 +:10231000C73BB1F1C83BB9F1C93BC1F1CA3BC9F1F7 +:1023200080E090E038C082EE90E035C089EE90E029 +:1023300032C08AEE90E02FC085EB90E02CC086EB97 +:1023400090E029C087EB90E026C08CEC90E023C0A1 +:102350008DEC90E020C083E891E01DC08AE891E018 +:102360001AC082E991E017C084E991E014C081E2CB +:1023700092E011C083E292E00EC084E292E00BC0D2 +:1023800085E292E008C086E292E005C087E292E032 +:1023900002C08AE292E0CF910C942410CF9108956C +:1023A000882309F44BC0823859F40E94EC0F81FF56 +:1023B00045C089E30E94FD190E94CA1A89E30CC036 +:1023C000833871F40E94EC0F80FF38C083E50E94CF +:1023D000FD190E94CA1A83E50E943F1A0C94CA1A7A +:1023E000843859F40E94EC0F82FF28C087E40E94D1 +:1023F000FD190E94CA1A87E4EFCF9CEF980F913A1B +:1024000058F390E2980F983050F4877091E001C033 +:10241000990F8A95EAF7892F0E94891ADFCF9BE5E9 +:10242000980F933020F480E090E00C940E10885ABE +:10243000833120F480E090E00C94241008958823E8 +:1024400021F00E94831A0C94CA1A0895882321F05F +:102450000E94891A0C94CA1A08957F928F929F92B3 +:10246000AF92BF92CF92DF92EF92FF920F931F93A2 +:10247000CF93DF931F92CDB7DEB77C01C62E772EA8 +:10248000FC01058102950F70128111110E94A01AA2 +:102490000E94F619882379F0112369F080E28C0DEF +:1024A000883048F082E00E94DF190E94F61991E01E +:1024B000D82ED92601C0D12CE72DE295EF70F0E09F +:1024C000E05AFF4F0C94B523872D807F072D0F70A6 +:1024D000882311F00295007F112389F0002309F46D +:1024E00090C180E28C0D883020F4802F0E94831AE6 +:1024F00003C0802F0E94931A0E94CA1A82C18C2D99 +:102500000E94D011002309F495C180E28C0D88301F +:1025100020F4802F0E94891A03C0802F0E94991AEC +:102520000E94CA1A87C1972D907F872D8F70903295 +:1025300011F08295807FCC2021F0F1E0CF16B1F030 +:102540001EC0112349F0002309F414C1013009F021 +:1025500011C10E94B31A6EC1002319F0013009F4B1 +:1025600069C189830E94B61A89810AC1112321F0A9 +:10257000023008F05FC1FEC001115CC101C111232E +:1025800021F0002309F4F6C03CC1002309F4F8C08F +:102590003EC1872D86958695837090E0009719F04F +:1025A000019761F047C1112321F08C2D972D937075 +:1025B00002C080E090E00E940E103CC1112321F087 +:1025C0008C2D972D937002C080E090E00E94241023 +:1025D00031C18C2D112319F00E94451E02C00E94AA +:1025E000AD1E0E94321F26C1872D837009F052C094 +:1025F000111120C18C2D829586958770880F880FC8 +:102600009C2D9F70892E912CA12CB12C082E04C0DA +:10261000880C991CAA1CBB1C0A94D2F7C4FE14C0D7 +:102620000FE010E020E030E0B901A80104C0440F41 +:10263000551F661F771F8A95D2F7CB01BA016095A7 +:1026400070958095909503C060E070E0CB01272DD8 +:1026500026952695237030E02230310569F023302D +:10266000310589F0682979298A299B29213031058A +:1026700071F00E946B18DEC0682979298A299B298C +:102680000E948718D7C00E946B18C501B4010E9430 +:102690004F18D0C0112319F0872D817001C0869585 +:1026A000882309F4C7C08C2D829586958770880F82 +:1026B000880F9C2D9F70892E912CA12CB12C082E57 +:1026C00004C0880C991CAA1CBB1C0A94D2F7C4FE37 +:1026D00014C00FE010E020E030E0B901A80104C010 +:1026E000440F551F661F771F8A95D2F7CB01BA0199 +:1026F000609570958095909503C060E070E0CB0187 +:10270000272D269526952370422F50E04230510503 +:1027100069F04330510589F0682979298A299B2974 +:102720004130510571F00E94451984C0682979290A +:102730008A299B290E9461197DC00E944519C50103 +:10274000B4010E94291976C08C2D90E0FC01E05E56 +:10275000F109E531F10508F050C0E059FF4F0C9444 +:10276000B5230C2D0F70872D8F71112331F00E942E +:10277000C218802F0E941F125DC00E94E318802F94 +:102780000E94261257C0112339F0011153C0872D22 +:102790008F710E9408194EC0023008F04BC0F7CF6D +:1027A000112339F0872D8F710E94C21843C0112365 +:1027B000C9F3872D8F710E94E3183CC0112329F0C3 +:1027C000872D8F710E94AD1835C00E94A31832C0AA +:1027D000112351F0172D1F71812F0E94C21863E041 +:1027E000812F0E94D61926C081E00E94DF19023095 +:1027F00008F182E00E94DF191DC0112331F000238F +:1028000089F28C2D0E94081115C0002391F28C2DA5 +:102810000E94D0110FC0472D4F706C2DC7010E9430 +:1028200015050E94C71706C0472D4F706C2DC701B4 +:102830000E94F405DD20F9F00E94D21980FD1BC032 +:10284000F70112820E94CC190E94C218C7010E948F +:102850004A140E94CC190F90DF91CF911F910F91D4 +:10286000FF90EF90DF90CF90BF90AF909F908F90B0 +:102870007F900C94E3180F90DF91CF911F910F91EF +:10288000FF90EF90DF90CF90BF90AF909F908F9090 +:102890007F9008950F931F93CF93DF93EC0188816E +:1028A00099812B813C81232BB9F09F3F11F48F3FFD +:1028B00099F0CE010E944C05882371F068817981DE +:1028C0008A810E94C8198C010E947D190E944418B7 +:1028D000B801CE010E942D12DF91CF911F910F916F +:1028E00008950E94A01A0E94B01A0E94751A0E94B0 +:1028F000CA1A0E94E31F0E94321F80E090E00E94EB +:102900000E1080E090E00C9424100E94901A0C9419 +:1029100071140E94BD19292F22952F7030E02C30A0 +:1029200031054CF42A3031056CF422503109223043 +:102930003105A8F407C02C30310569F02F3031057E +:1029400051F00DC0803F69F018F4803E40F409C09A +:10295000843F29F406C093FB882780F9089580E01E +:10296000089581E00895CF93DF9300D000D01F92A7 +:10297000CDB7DEB70F900F900F900F900F90DF91B3 +:10298000CF910895CF93DF9300D000D000D0CDB782 +:10299000DEB726960FB6F894DEBF0FBECDBFDF912F +:1029A000CF9108951F93CF93DF93C091850116E0D7 +:1029B00080918601C81799F0D0E01C9FF0011D9FFF +:1029C000F00D1124E957FE4F4081518162817381DE +:1029D000848195810E94C2142196C770E9CFDF914E +:1029E000CF911F9108954091B7015091B801609126 +:1029F000B9017091BA018091BB019091BC010C9416 +:102A0000C2148091BC0182958F7009F054C08091EE +:102A1000B901882309F44FC080918501A0918601F6 +:102A20006091B7017091B8014091BA015091BB011A +:102A3000B6E08A1709F43FC090E041155105C1F195 +:102A40007F3F11F46F3FA1F1B89FF001B99FF00DE6 +:102A50001124E957FE4F218172132AC0208162138D +:102A600027C02281211124C02381348124173507F6 +:102A700010F421503109241B350B283C3105C0F4DA +:102A80002091BC012F7020612093BC0126E0289F7B +:102A9000F001299FF00D1124E457FE4F80818F70C3 +:102AA0008061808387EB91E00E944A140C94D214D9 +:102AB00001968770BECF0895CF92DF92EF92FF927A +:102AC0000F931F93CF93DF93CDB7DEB762970FB607 +:102AD000F894DEBF0FBECDBF8C0185E0F801DE01AA +:102AE0001D9601900D928A95E1F7D8014C911196AF +:102AF0005C91119712966C9112971396CD90DC9081 +:102B000014973091B7017091B8018091BA019091FA +:102B1000BB01009709F46BC17F3F19F43F3F09F4F3 +:102B200066C1E090B901EE2009F4C0C02091BC015B +:102B3000C816D90628F0F601E81BF90BCF0104C02E +:102B4000809590958C0D9D1DFF24F394883C9105F4 +:102B500078F0F12C207F09F0C6C07C2DD98AC88A74 +:102B600089890E94B31487EB91E00E944A14B1C096 +:102B7000822F807F09F046C0751314C0341312C031 +:102B8000611110C02F7020612093BC010E94F314CA +:102B900087EB91E00E944A148091BC01D801159600 +:102BA0008C932EC0CD2819F15F3F11F44F3FF9F0FF +:102BB000F62E61111CC0809185012091860136E0BE +:102BC000821709F45AC090E0389FF001399FF00D48 +:102BD0001124E957FE4F7181571306C070814713C6 +:102BE00003C07281711103C001968770E9CFF62E80 +:102BF000662309F418C18091BC0181608093BC01F7 +:102C0000F12C11C1751308C0341306C0611104C042 +:102C10008091BC01D801C3C04D875E878D859E859C +:102C20006A8B0E9489146A898823E1F16623D1F1B5 +:102C30002091BC01822F82958F7090E0029774F0F2 +:102C40008091B7019091B80198878F831986DB86B0 +:102C5000CA862C87CE0107960E944A1486E0F801A6 +:102C6000A7EBB1E001900D928A95E1F70E94011562 +:102C70000E94F314FF24F394D6C04D875E878D85A0 +:102C80009E850E94BD19292F22952F7030E0223099 +:102C900031050CF0BCC09F7009F0B6C0805E883072 +:102CA00008F4C1C0C8010E944A14E4CFC816D9066E +:102CB00008F453C0F601E81BF90BCF01883C9105DD +:102CC00008F450C0F12C7C2DD98AC88A89890E94C9 +:102CD000B314E7EBF1E086E0DF011D928A95E9F796 +:102CE0000E94F314A0C0751314C0341312C06111F4 +:102CF00010C08091BC01F8018583C8010E944A146C +:102D000086E0E7EBF1E0DF011D928A95E9F7FE2C02 +:102D10008AC04D875E878D859E856A8B0E94891447 +:102D20006A89882309F4BECF662309F4BBCF2091BA +:102D3000BC01822F82958F7090E002970CF48ECFA9 +:102D40008091B7019091B8019A8389831B82DD82BB +:102D5000CC822E83CE0101967FCF809590958C0DED +:102D60009D1DACCFF62E662309F49CCF75132EC0A3 +:102D700034132CC02091BC0120FD1FC0822F8295EE +:102D80008F70D9F0D80115962C9315978F3049F094 +:102D90008F5F982F9295907F822F8F70892B159639 +:102DA0008C93C8010E944A1486E0F801A7EBB1E0B9 +:102DB00001900D928A95E1F793CF86E0F801A7EB99 +:102DC000B1E001900D928A95E1F72DC04D875E87A5 +:102DD0008D859E850E948914811140CF8091BC0110 +:102DE00081608093BC01C8010E944A141CC0662304 +:102DF00009F458CF4D875E878D859E850E94891482 +:102E0000882309F44FCF2ACF811148CF0CC024303A +:102E100031050CF047CF9F7009F440CFF801958140 +:102E2000907F09F03BCF8F2D62960FB6F894DEBFEE +:102E30000FBECDBFDF91CF911F910F91FF90EF900B +:102E4000DF90CF9008951F93CF93DF93CDB7DEB778 +:102E50002C970FB6F894DEBF0FBECDBF4F835887B7 +:102E600069877A878B879C87CE0107960E945C15BD +:102E7000882369F08F8198852A853B85232BF1F182 +:102E80009F3F09F063C08F3F09F060C037C086E004 +:102E9000FE013796DE01119601900D928A95E1F7B9 +:102EA0006F817885EA85FB85309741F17F3F11F48A +:102EB0006F3F21F12091860130E0C90101968770B2 +:102EC00099274091850150E08417950709F447C080 +:102ED00069837A83FD83EC8396E0929FD001939F70 +:102EE000B00D1124A957BE4FFE01319601900D92ED +:102EF0009A95E1F7809386010E94D21416E08091A2 +:102F00008501909186018917C1F1189FC001112494 +:102F100089579E4F0E945C15882379F1E0918501C5 +:102F20001E9FF0011124E957FE4F408151816281BB +:102F30007381848195810E94C2148091850190E003 +:102F400001968770992780938501D9CF4F81588545 +:102F500069857A858B859C850E94C214CFCF0E949B +:102F600085141092860110928501E7EBF1E086E06E +:102F7000DF011D928A95E9F7C1CF2C960FB6F89420 +:102F8000DEBF0FBECDBFDF91CF911F910895EF92AD +:102F9000FF920F931F93CF93DF938C01009709F457 +:102FA0006CC0F12CEE24E394E8012196F8018491A1 +:102FB000843740F4843008F051C0813081F0823091 +:102FC00019F15BC0853709F444C0A8F19CE7980F5C +:102FD000903708F052C08F770E94D01141C00E5F29 +:102FE0001F4FFE01C49180E28C0F883048F4C770F7 +:102FF0008E2D01C0880FCA95EAF70E94A31A14C04B +:103000008C2F0E9408112DC00E5F1F4FFE01C4912E +:1030100080E28C0F883058F4C7708E2D01C0880F65 +:10302000CA95EAF70E94A91A0E94CA1A1AC08C2FE0 +:103030000E94D01116C00E5F1F4FFE01C491CC2319 +:1030400081F08FE99FE00197F1F700C00000C150C7 +:10305000F6CF0E5F1F4FFE01F49003C00E940811CF +:103060008E018F2D882309F49FCFEFE9FFE0319780 +:10307000F1F700C000008150F5CFDF91CF911F9193 +:103080000F91FF90EF90089508956093C1017093A0 +:10309000C2018093C3019093C4010C9471140F93E7 +:1030A0001F930091C1011091C2012091C301309181 +:1030B000C401DC01CB01802B912BA22BB32B80937D +:1030C000C1019093C201A093C301B093C4011F91A9 +:1030D0000F910C9471140F931F930091C1011091E3 +:1030E000C2012091C3013091C401DC01CB018023D6 +:1030F0009123A223B3238093C1019093C201A09393 +:10310000C301B093C4011F910F910C9471140F93DC +:103110001F930091C1011091C2012091C301309110 +:10312000C401DC01CB0180279127A227B32780931C +:10313000C1019093C201A093C301B093C4011F9138 +:103140000F910C9471141092BD011092BE01109257 +:10315000BF011092C0010C94711441E050E060E096 +:1031600070E004C0440F551F661F771F8A95D2F781 +:103170004093BD015093BE016093BF017093C001A5 +:103180000C94711441E050E060E070E004C0440F22 +:10319000551F661F771F8A95D2F78091BD019091C8 +:1031A000BE01A091BF01B091C001482B592B6A2BE1 +:1031B0007B2B4093BD015093BE016093BF01709380 +:1031C000C0010C94711441E050E060E070E004C074 +:1031D000440F551F661F771F8A95D2F7409550956B +:1031E000609570958091BD019091BE01A091BF0145 +:1031F000B091C001482359236A237B234093BD012A +:103200005093BE016093BF017093C0010C94711480 +:1032100041E050E060E070E004C0440F551F661FBD +:10322000771F8A95D2F78091BD019091BE01A09140 +:10323000BF01B091C001482759276A277B274093D7 +:10324000BD015093BE016093BF017093C0010C9407 +:1032500071140F931F930091BD011091BE01209135 +:10326000BF013091C001DC01CB01802B912BA22B3F +:10327000B32B8093BD019093BE01A093BF01B09387 +:10328000C0011F910F910C9471140F931F93009123 +:10329000BD011091BE012091BF013091C001DC0140 +:1032A000CB0180239123A223B3238093BD0190936C +:1032B000BE01A093BF01B093C0011F910F910C9468 +:1032C00071140F931F930091BD011091BE012091C5 +:1032D000BF013091C001DC01CB0180279127A227DB +:1032E000B3278093BD019093BE01A093BF01B0931B +:1032F000C0011F910F910C9471140895CF92DF9229 +:10330000EF92FF920F931F93CF93DF938C01C090A6 +:10331000C101D090C201E090C301F090C40180913E +:10332000BD019091BE01A091BF01B091C001C82A1A +:10333000D92AEA2AFB2ACFE1D0E0D701C6010C2E18 +:1033400004C0B695A795979587950A94D2F780FF04 +:1033500006C0B8018C2F0E944A08019721F42197DA +:1033600060F780E001C08C2FDF91CF911F910F910A +:10337000FF90EF90DF90CF900895CF93DF93EC0113 +:103380000E947E19BE010E944A08DF91CF910895E4 +:10339000CB010E94BD1908958091C5018595859541 +:1033A000859508958091C5018770089598E0899F5B +:1033B00090011124262B2093C5010C94C218209152 +:1033C000C501809582238093C501982F977069F479 +:1033D00030E0482F552747FD50952417350729F031 +:1033E0008595859585950C94E31808959091C50170 +:1033F000977081E009F480E0089590910C01992381 +:1034000021F090910D01911109C020910E01309190 +:103410000F01F90132969FEF40E01FC0982F96955B +:10342000969596959F3050F5E0910E01F0910F0121 +:10343000E90FF11D877021E030E0A90102C0440FBF +:10344000551F8A95E2F7CA019181892B81830895DE +:103450009F3F39F04F5F4E3041F051915813F8CFF4 +:103460000DC05111F7CF942FF5CF9F3F39F0F901DF +:10347000E90FF11D97FDFA958283089508959091C3 +:103480000C01992321F090910D01911109C0209117 +:103490000E0130910F01F9013296205F3F4F1FC09E +:1034A000982F9695969596959F30F0F4E0910E01A1 +:1034B000F0910F01E90FF11D877021E030E0A901C3 +:1034C00002C0440F551F8A95E2F7CA018095918189 +:1034D0008923818308953196E217F30729F09081BB +:1034E0009813F9CF1082F7CF089581E090E0E09132 +:1034F0000E01F0910F01E80FF91F10820196803143 +:103500009105A9F708959091D901892B8093D9014C +:10351000089580959091D90189238093D9010895C8 +:103520001092D90108959091D801892B8093D801E8 +:10353000089580959091D80189238093D8010895AA +:103540001092D80108959091D701892B8093D701CB +:10355000089580959091D70189238093D70108958C +:103560001092D70108958093C60108951092C60164 +:10357000089580910E0190910F01FC0131969C01FC +:10358000205F3F4F80E0919191118F5FE217F30729 +:10359000D1F70895E0910E01F0910F018091D901CA +:1035A0008083E0910E01F0910F0190818091D8010C +:1035B000892B8083E0910E01F0910F019081809121 +:1035C000D701892B80838091C601882361F0E09127 +:1035D0000E01F0910F019081892B80830E94B91A0E +:1035E00081111092C60180910E0190910F010C94EF +:1035F000F80F20E0009739F0AC01415051098423C5 +:1036000095232F5FF7CF822F0895CF92DF92EF920D +:10361000FF926C01EE24FF24C114D104E104F104F3 +:1036200021F0C701B60120E101C020E0C72ED82E4D +:10363000E92EFF24C114D104E104F10419F0285F3C +:10364000C701B6016B017C0154E0F694E794D7946E +:10365000C7945A95D1F7C114D104E104F10419F0CB +:103660002C5FC701B6016B017C0142E0F694E79440 +:10367000D794C7944A95D1F7C114D104E104F10459 +:1036800019F02E5FC701B601DC01CB01B695A795F5 +:1036900097958795892B8A2B8B2B09F02F5F822F8B +:1036A000FF90EF90DF90CF9008958091F1018430EA +:1036B00021F11092DB0120E488E190E00FB6F8944C +:1036C000A895809360000FBE2093600080E00E9468 +:1036D000E50883B7817F846083BF83B7816083BF40 +:1036E0007894889583B78E7F83BF88E10FB6F8946E +:1036F00080936000109260000FBE089508950895B1 +:103700000E947E1B0E944B030E947F1B0E9440046C +:1037100091E0811101C090E0892F08950E948514E5 +:103720000E94EC0F0C94E50882E084BD93E095BD07 +:103730009AEF97BD80936E0008952FB7F89480910B +:10374000DC019091DD01A091DE01B091DF012FBF7E +:103750000895CF92DF92EF92FF920F931F932FB7AE +:10376000F8944091DC015091DD016091DE0170918F +:10377000DF012FBF6A017B01EE24FF248C0120E0D2 +:1037800030E0C016D106E206F30610F441505109AC +:103790009A01281B390BC9011F910F91FF90EF90DF +:1037A000DF90CF9008951F920F920FB60F921124C1 +:1037B0008F939F93AF93BF938091DC019091DD0134 +:1037C000A091DE01B091DF010196A11DB11D809392 +:1037D000DC019093DD01A093DE01B093DF01BF9186 +:1037E000AF919F918F910F900FBE0F901F901895E2 +:1037F0000E94E90CF8942FEF87EA91E6215080406F +:103800009040E1F700C0000087E090EBDC0180937E +:10381000FB019093FC01A093FD01B093FE019CE09D +:1038200088E10FB6F894A895809360000FBE90933E +:103830006000FFCFEF92FF920F931F93CF93DF9320 +:10384000D82FCDE08C2F0E94390405E010E0E82E3F +:10385000F12CC701002E02C0959587950A94E2F7D6 +:1038600080FF09C0602F7C2F80E00E94F505D813EF +:1038700002C081E006C00150110958F7C15010F78D +:1038800080E0DF91CF911F910F91FF90EF9008950D +:10389000CF93C82F8CE20E941A1C882321F08C2F12 +:1038A000CF910C941A1C80E0CF910895CF930E9481 +:1038B0009D1D811102C00E94831DC5E6C15049F0C3 +:1038C0000E944B038FE39CE90197F1F700C00000D1 +:1038D000F5CF89E20E94481C811113C18AE20E943F +:1038E000481C81110E94831D85E00E94481C8111A3 +:1038F0000E94F81B0E94A81D8093DA0187E00E94B5 +:10390000481C8823A9F18BE10E94481C882351F0B0 +:103910008091DA0181FB222720F991E0922790FB28 +:1039200081F90EC08EE00E94481C882361F08091CE +:10393000DA0182FB222720F991E0922790FB82F99D +:103940008093DA0115C080E10E94481C9091DA0151 +:10395000882341F093FB222720F981E0822780FB16 +:1039600093F904C0892F809580FB90F99093DA0138 +:103970008091DA010E94AC1D0E94BA1D8093FA0169 +:1039800080EE0E94481C882341F08091FA01982F14 +:10399000909590FB80F98093FA0189E30E94481C7E +:1039A000882359F08091FA0181FB222720F991E0C8 +:1039B000922790FB81F98093FA0182EE0E94481CC5 +:1039C000882359F08091FA0182FB222720F991E0A7 +:1039D000922790FB82F98093FA0186EE0E94481CA0 +:1039E000882359F08091FA0183FB222720F991E086 +:1039F000922790FB83F98093FA0183EE0E94481C82 +:103A0000882359F08091FA0184FB222720F991E064 +:103A1000922790FB84F98093FA0185E30E94481C69 +:103A2000882359F08091FA0185FB222720F991E043 +:103A3000922790FB85F98093FA0181E30E94481C4C +:103A4000882359F08091FA0186FB222720F991E022 +:103A5000922790FB86F98093FA0181E10E94481C2D +:103A6000882359F08091FA0187FB222720F991E001 +:103A7000922790FB87F98093FA018091FA010E94C6 +:103A8000BE1D8091FA0187FB882780F980930D0184 +:103A900087E20E94481CC82F8EE10E94481C8111B9 +:103AA000C2608FE10E94481C8111C46080E20E94C4 +:103AB000481C8111C86081E20E94481C8111C061CC +:103AC00082E20E94481C8111C06283E20E94481C6D +:103AD0008111C06484E20E94481C882311F0C068F0 +:103AE00002C0CC2329F08C2F0E94B51D6C2F03C07F +:103AF0000E94B11D682F70E080E090E0CF910C949F +:103B00004518CF9108956DEE7EEF80E090E00E9421 +:103B1000EF2360E082E090E00E94DD2360E083E03C +:103B200090E00E94DD2360E084E090E00E94DD23CD +:103B300060E085E090E00C94DD2380E090E00E945E +:103B4000D72321E08D3E9E4F09F020E0822F08957B +:103B500082E090E00C94CF23682F82E090E00C94F8 +:103B6000DD2383E090E00C94CF23682F83E090E086 +:103B70000C94DD2384E090E00C94CF23682F84E044 +:103B800090E00C94DD238091E20180FF0BC06091F6 +:103B9000130185E0689FB0011124759567957595AF +:103BA00067952BC081FF09C06091130185E0689F74 +:103BB000B00111247595679520C082FF07C0609100 +:103BC000130185E0689FB001112417C09091E301B3 +:103BD0009923D1F060911201961788F72091130173 +:103BE00085E0289F90011124929FA001939F500D82 +:103BF000112470E0CA010E94A1236038710540F4CD +:103C00006115710539F002C065E070E0862F0895F6 +:103C10008FE7089581E008958091E20180FF08C058 +:103C20006091110170E0759567957595679521C054 +:103C300081FF06C06091110170E07595679519C00C +:103C400082FF04C06091110170E010C09091E30107 +:103C50009923C1F0609110019617A0F7809111018E +:103C6000899FC001112470E00E94A1236038710572 +:103C700028F46115710521F0862F08958FE70895C6 +:103C800081E0089561E070E0F4CF803F21F40E946C +:103C9000C31D819504C0813F29F40E94C31D8093F8 +:103CA000E6010895823F21F40E94C31D819504C05E +:103CB000833F29F40E94C31D8093E5010895893F45 +:103CC00019F40E940C1E05C08A3F31F40E940C1E9C +:103CD00081958093E70108958B3F21F40E940C1E8B +:103CE000819504C08C3F29F40E940C1E8093E8014A +:103CF0000895843F21F48091E401816017C0853FDD +:103D000021F48091E401826011C0863F21F480910A +:103D1000E40184600BC0873F21F48091E401886056 +:103D200005C0883F31F48091E40180618093E40113 +:103D300008958D3F21F48091E20181600BC08E3F98 +:103D400021F48091E201826005C08F3F29F48091C7 +:103D5000E20184608093E2010895803F39F480910C +:103D6000E60187FF6CC01092E60169C0813F29F42B +:103D70008091E6011816BCF362C09091E501823F84 +:103D800029F497FF5CC01092E50159C0833F19F4F4 +:103D90001916CCF354C0893F41F48091E7011816FD +:103DA0000CF04DC01092E7014AC08A3F29F480917F +:103DB000E70187FF44C0F6CF8B3F39F48091E801DB +:103DC00087FF3DC01092E8013AC08C3F29F48091F2 +:103DD000E8011816BCF333C0843F21F48091E4015C +:103DE0008E7F17C0853F21F48091E4018D7F11C043 +:103DF000863F21F48091E4018B7F0BC0873F21F443 +:103E00008091E401877F05C0883F31F48091E4010F +:103E10008F7E8093E40113C08D3F21F48091E201F5 +:103E20008E7F0BC08E3F21F48091E2018D7F05C013 +:103E30008F3F29F48091E2018B7F8093E201809192 +:103E4000E50181110EC08091E60181110AC08091C7 +:103E5000E701811106C08091E801811102C0109232 +:103E6000E301089584EE91E00E9403100E949D1BDF +:103E70009093E1018093E00108951F93CF93DF9326 +:103E80008091E0019091E1010E94A91BAC01909109 +:103E9000E301992321F02091140130E006C0209124 +:103EA00015018AE0289F900111244217530708F456 +:103EB00086C08091E501C091E601D091E7011091A3 +:103EC000E801811107C0C11176C0D11174C0111170 +:103ED00072C075C09F3F19F09F5F9093E301181661 +:103EE00024F40E94C31D8093E5018091E50187FFC2 +:103EF00005C00E94C31D81958093E5011C1624F422 +:103F00000E94C31D8093E6018091E60187FF05C0F2 +:103F10000E94C31D81958093E6016091E5016623AF +:103F200039F1C091E601CC2319F1772767FD70952F +:103F3000872F972F0E94B22223E333E343E35FE30B +:103F40000E9416230E947F226093E5016C2F772741 +:103F500067FD7095872F972F0E94B22223E333E3EA +:103F600043E35FE30E9416230E947F226093E601F1 +:103F70001D1624F40E940C1E8093E7018091E70136 +:103F800087FF05C00E940C1E81958093E7011116E2 +:103F900024F40E940C1E8093E8018091E80187FFC1 +:103FA00005C00E940C1E81958093E801DF91CF919E +:103FB0001F910C94321F9F3F09F08ECF96CFDF9157 +:103FC000CF911F910895E4EEF1E085E0DF011D92AD +:103FD0008A95E9F71092E3011092E2010895833087 +:103FE00081F128F4813059F08230D1F00895853084 +:103FF00009F449C0B8F1863009F456C0089580919B +:104000001501262F30E0280F311D2F3F310524F4F4 +:10401000680F6093150108958FEF8093150108953F +:1040200080911401262F30E0280F311D2F3F3105DC +:1040300024F4680F6093140108958FEF80931401A6 +:10404000089580911301262F30E0280F311D2F3F56 +:10405000310524F4680F6093130108958FEF809366 +:104060001301089580911201262F30E0280F311D91 +:104070002F3F310524F4680F6093120108958FEFEC +:1040800080931201089580911101262F30E0280FAE +:10409000311D2F3F310524F4680F609311010895FD +:1040A0008FEF80931101089580911001262F30E049 +:1040B000280F311D2F3F310524F4680F6093100144 +:1040C00008958FEF809310010895833011F128F443 +:1040D000813049F0823091F00895853081F120F1EE +:1040E0008630C1F1089580911501681720F4861B70 +:1040F000809315010895109215010895809114017F +:10410000681720F4861B80931401089510921401FF +:10411000089580911301681720F4861B8093130182 +:10412000089510921301089580911201681720F4E8 +:10413000861B8093120108951092120108958091B8 +:104140001101681720F4861B8093110108951092C5 +:104150001101089580911001681720F4861B809347 +:10416000100108951092100108950F931F938D313F +:1041700009F46BC008F03FC08E3009F47FC0C0F472 +:10418000873009F469C068F4863009F0B1C08091C5 +:10419000DA01817F8E7F8093DA0181E08093EA01EA +:1041A000A8C0883009F4A2C08B3009F49FC0A0C019 +:1041B000863109F49BC078F4803109F472C08131F2 +:1041C00009F096C00E94851490910D0181E0892725 +:1041D00080930D018BC0893109F488C08B3109F0BF +:1041E00087C08091DA0181FB222720F991E0922794 +:1041F00090FB81F94CC0853309F470C048F48732D4 +:1042000009F46CC008F459C0893209F467C070C061 +:10421000833438F48A3308F04EC0883309F466C01A +:1042200067C0833409F45AC0883409F061C00E9421 +:1042300085140FEF13ED20E3015010402040E1F70B +:1042400000C000000E94F81B51C00E9439220E9449 +:10425000EC0F0E94E5084AC09091DA01892F809501 +:10426000817080FB90F929F0966098609093DA0154 +:1042700040C0997F977F9093DA0138C08091DA012E +:1042800082FB222720F991E0922790FB82F980930C +:10429000DA01992359F18091DA0181608093DA0182 +:1042A00025C08091DA0183FB222720F991E0922733 +:1042B00090FB83F9ECCF895301C08D5141E050E070 +:1042C00060E070E08A019B0104C0000F111F221FF3 +:1042D000331F8A95D2F7C901B80104C061E070E0CC +:1042E00080E090E00E9445180E94851481E001C0A2 +:1042F00080E01F910F91089580E0089580E0089577 +:10430000CF93C82F8091EA01813079F018F0823084 +:10431000E9F187C0E0910E01F0910F0180818131B8 +:1043200069F0823209F07FC009C0E0910E01F0917E +:104330000F018081813111F0823261F48C2F0E9453 +:104340007C21811104C08C2F0E94B5201DC081E00A +:1043500090E01AC08C2F0E947E21811114C0C431BC +:1043600079F048F4CB3079F0C03109F060C082E0D8 +:104370008093EA0108C0C93219F0C83321F057C050 +:104380001092EA0154C081E0817053C0C93289F1B2 +:1043900018F5C43171F1A8F4C73009F046C08AE0BD +:1043A0008093150194E19093140193E0909313018D +:1043B0008093120188E08093110188E280931001BC +:1043C00034C0CE51C63088F5EC2FF0E0E65DFE4FEC +:1043D00080818093E90129C0CE34E9F020F4CB3408 +:1043E00021F56AE013C0C13579F0C235F1F461E01E +:1043F0000DC08091E901882319F01092E90115C0E0 +:1044000081E08093EA0115C061E006C08091E90176 +:104410000E94EF1F0AC06AE08091E9010E946520B6 +:1044200004C01092EA0180E004C081E002C080E094 +:10443000ABCFCF910895E1E8F0E080818860808380 +:104440008081816080838FB7F89493E09093890096 +:1044500090ED909388008FBF0895EFE6F0E08081A3 +:10446000826080830895EFE6F0E080818D7F808315 +:104470000895EFE6F0E0908182E089278083089537 +:104480001F920F920FB60F9211242F933F934F93C9 +:104490005F936F937F938F939F93AF93BF93EF93AC +:1044A000FF938091EB019091EC0101969093EC01C8 +:1044B0008093EB01811103C082E00E94E508E09146 +:1044C000EC01E695E695F0E0EC54FB4FE491809129 +:1044D000EB018E1303C080E00E94E508FF91EF918D +:1044E000BF91AF919F918F917F916F915F914F910C +:1044F0003F912F910F900FBE0F901F90189504D0F1 +:104500006894B1118DC0089570D088F09F5790F0D5 +:10451000B92F9927B751A0F0D1F0660F771F881FE8 +:10452000991F1AF0BA95C9F712C0B13081F077D04F +:10453000B1E0089574C0672F782F8827B85F39F0ED +:10454000B93FCCF3869577956795B395D9F73EF447 +:1045500090958095709561957F4F8F4F9F4F0895EF +:10456000E89409C097FB3EF490958095709561950D +:104570007F4F8F4F9F4F9923A9F0F92F96E9BB27C3 +:104580009395F695879577956795B795F111F8CF3F +:10459000FAF4BB0F11F460FF1BC06F5F7F4F8F4FAA +:1045A0009F4F16C0882311F096E911C0772321F0A0 +:1045B0009EE8872F762F05C0662371F096E8862F38 +:1045C00070E060E02AF09A95660F771F881FDAF78F +:1045D000880F9695879597F9089557FD9058440F41 +:1045E000551F59F05F3F71F04795880F97FB991F52 +:1045F00061F09F3F79F0879508951216130614060F +:10460000551FF2CF4695F1DF08C01616170618069B +:10461000991FF1CF86957105610508940895E89476 +:10462000BB2766277727CB0197F908950BD078C071 +:1046300069D028F06ED018F0952309F05AC05FC0F9 +:104640001124EECFCADFA0F3959FD1F3950F50E070 +:10465000551F629FF001729FBB27F00DB11D639F34 +:10466000AA27F00DB11DAA1F649F6627B00DA11DDA +:10467000661F829F2227B00DA11D621F739FB00D80 +:10468000A11D621F839FA00D611D221F749F3327F0 +:10469000A00D611D231F849F600D211D822F762F89 +:1046A0006A2F11249F5750408AF0E1F088234AF086 +:1046B000EE0FFF1FBB1F661F771F881F91505040D2 +:1046C000A9F79E3F510570F014C0AACF5F3FECF3ED +:1046D000983EDCF3869577956795B795F795E795BE +:1046E0009F5FC1F7FE2B880F911D9695879597F9CF +:1046F000089597F99F6780E870E060E008959FEF64 +:1047000080EC089500240A94161617061806090668 +:10471000089500240A941216130614060506089537 +:10472000092E0394000C11F4882352F0BB0F40F4BF +:10473000BF2B11F460FF04C06F5F7F4F8F4F9F4FFF +:10474000089597FB072E16F4009407D077FD09D043 +:104750000E94BB2307FC05D03EF4909581959F4FA6 +:104760000895709561957F4F0895EE0FFF1F059096 +:10477000F491E02D0994AA1BBB1B51E107C0AA1FAD +:10478000BB1FA617B70710F0A61BB70B881F991FF2 +:104790005A95A9F780959095BC01CD010895F99996 +:1047A000FECF92BD81BDF89A992780B50895A8E102 +:1047B000B0E042E050E00C94F723262FF999FECFA9 +:1047C00092BD81BDF89A019700B4021639F01FBA64 +:1047D00020BD0FB6F894FA9AF99A0FBE0895019683 +:1047E000272F0E94DE230C94DD23DC01CB01FC018A +:1047F000F999FECF06C0F2BDE1BDF89A319600B43A +:0E4800000D9241505040B8F70895F894FFCF44 +:10480E000220E708750952091E09EA080101C701CD +:10481E0028080A03140A3F4D363975042804F2039A +:10482E00B9034C0365037E039703010203040506D7 +:04483E00070809005E +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/german/keymap.c b/keyboards/ergodox_ez/keymaps/german/keymap.c new file mode 100644 index 000000000..3eab51f0e --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/german/keymap.c @@ -0,0 +1,185 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "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/keyboards/ergodox_ez/keymaps/j3rn/compiled.hex b/keyboards/ergodox_ez/keymaps/j3rn/compiled.hex new file mode 100644 index 000000000..d92538340 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/j3rn/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947B020C94BF020C94BF020C94BF02B0 +:100010000C94BF020C94BF020C94BF020C94BF025C +:100020000C94BF020C94BF020C94630D0C94350E1B +:100030000C94BF020C94BF020C94BF020C94BF023C +:100040000C94BF020C943F220C94BF020C94BF028C +:100050000C94BF020C94D21B0C94BF020C94BF02F0 +:100060000C94BF020C94BF020C94BF020C94BF020C +:100070000C94BF020C94BF020C94BF020C94BF02FC +:100080000C94BF020C94BF020C94BF020C94BF02EC +:100090000C94BF020C94BF020C94BF020C94BF02DC +:1000A0000C94BF020C94BF020C94BF02A20EC40EAB +:1000B000B20FC40EB20F090F2C0FB20F810F940FA5 +:1000C0006312631292129212C812E81219141914D0 +:1000D000F3121914A313A3130A14191419141314E3 +:1000E000B013B013B013B013B013B013B013B013F8 +:1000F000B013B013B013B013B013B013B013B013E8 +:10010000C213CF13D613DD13E7130000F0A1F0A242 +:1001100035002B002971E100C10000001E00140011 +:1001200004421D71C200E1001F001A0016001B00EE +:10013000E104E300200008000700060050002C0046 +:1001400021001500090019004F004D002200170082 +:100150000A000500000065742F002D000000007FDC +:1001600000004A0030002E000000007700004B0025 +:1001700023001C000B00110000002971240018004E +:100180000D00100052004E0025000C000E0036003D +:1001900051002800260012000F0037002F002B000E +:1001A00027001300330038713000E2002A003100CC +:1001B0003400E500C1000000010001000100010061 +:1001C000010000003A001E0220022202010001008C +:1001D0003B001F0221022302010001003C002F020C +:1001E00026022F00010001003D00300227023000EE +:1001F000010001003E00310235003502000001001F +:1002000001000100000001000000010001000100E8 +:1002100000000100000001003F00520051002402D4 +:10022000000001004000240021001E000100010028 +:100230004100250022001F00370001004200260077 +:100240002300200027000100430025022E02310078 +:100250002E000100440045000100010001000000E3 +:100260000100010001000100010000000100010087 +:100270000100010001000100010001000100010076 +:100280000100010001000100010001000100010066 +:100290000100010001000100010001000100010056 +:1002A0000100010000000100010001000000010048 +:1002B0000000010001000100000001000000010039 +:1002C00001000100F2000100000001000100010036 +:1002D000F1000100A90001000100F400F000AC00F1 +:1002E000AA00B6000100F500F300AB00A800010071 +:1002F00001000100010001000100010001000100F6 +:10030000AE00010001000000160345007200670006 +:100310006F0044006F007800200045005A00000084 +:1003200016034500720067006F0044006F007800FC +:10033000200045005A0000000403090409026D0072 +:10034000040100A0FA0904000001030101000921D1 +:1003500011010001223F000705810308000A09047A +:1003600001000103010200092111010001224D00D9 +:100370000705820308000A090402000103000000C7 +:100380000921110100012236000705830308000A34 +:1003900009040300010300000009211101000122EA +:1003A000390007058403100001120110010000004C +:1003B00008EDFE071301000102000105010906A175 +:1003C00001050719E029E715002501950875018148 +:1003D0000205081901290595057501910295017518 +:1003E00003910105071900297715002501957875F6 +:1003F000018102C005010980A101850216010026C4 +:10040000B7001A01002AB700751095018100C005D8 +:100410000C0901A1018503160100269C021A0100A6 +:100420002A9C02751095018100C005010902A101F5 +:100430000901A100050919012905150025019505E6 +:1004400075018102950175038101050109300931AA +:100450001581257F95027508810609381581257F4C +:10046000950175088106050C0A38021581257F95CE +:100470000175088106C0C005010906A1010507191B +:10048000E029E715002501950875018102950175A0 +:100490000881010508190129059505750191029545 +:1004A00001750391010507190029FF150025FF9526 +:1004B0000675088100C00000000000000000000078 +:1004C00000010204060A0F17202C3A4A5D71879D2D +:1004D000B3C7DAE9F5FCFFFCF5E9DAC7B39D87712C +:1004E0005D4A3A2C20170F0A0604020100000000A2 +:1004F00000000000000011241FBECFEFDAE0DEBFD5 +:10050000CDBF04B603FE24C08091FB019091FC0195 +:10051000A091FD01B091FE018730904BA740B04BF8 +:10052000B9F41092FB011092FC011092FD0110929F +:10053000FE0114BE84B7877F84BF88E10FB6F894AC +:1005400080936000109260000FBEE0E0FFE3099529 +:1005500011E0A0E0B1E0ECE0F8E402C005900D92FB +:10056000A433B107D9F711E0A4E3B1E001C01D92B3 +:10057000AB3FB107E1F70E94A70A0C9404240C9446 +:1005800000001092B9008AE08093B800089594EAC0 +:100590009093BC009091BC0097FFFCCF9091B90064 +:1005A000987F983021F0903111F081E00895809388 +:1005B000BB0084E88093BC008091BC0087FFFCCF27 +:1005C0008091B900887F883111F0803471F780E024 +:1005D000089584E98093BC008091BC0084FDFCCF29 +:1005E00008958093BB0084E88093BC008091BC0098 +:1005F00087FFFCCF9091B900987F81E0983209F491 +:1006000080E0089584E88093BC008091BC0087FF5F +:10061000FCCF8091BB00089580910101811115C02C +:1006200080E40E94C7028093010181110CC082E125 +:100630000E94F10280930101811105C08FEF0E9499 +:10064000F102809301010E94E90284B1807F84B9A4 +:1006500085B1807F85B98AB1837F8AB98BB1837F69 +:100660008BB93E98469808950E94C7048093010173 +:100670000E940C0380B38C7080BB81B3836F81BBFD +:10068000A5E3B1E0E3E4F1E08EE08E0F11921D925C +:100690008E13FCCF0C94B104BF92CF92DF92EF92F5 +:1006A000FF920F931F93CF93DF93809101018823D3 +:1006B00079F0809134018F5F80933401811108C0FB +:1006C0000E94C70480930101811102C00E94590455 +:1006D00005E311E0C0E0D0E0DD24D39482E0C82E31 +:1006E000EE24E394F12CC730D10500F5809101018F +:1006F000811164C080E40E94C702809301018111CE +:1007000012C082E10E94F1028093010181110BC0AD +:10071000C7010C2E01C0880F0A94EAF780950E9449 +:10072000F102809301010E94E90248C0CA30A1F0A1 +:1007300028F4C83059F0C93061F005C0CC3089F0D8 +:1007400070F0CD3089F0209A289810C0219A29980D +:100750000DC0229A2A980AC0239A2B9807C0529A51 +:1007600001C0539A5B9802C03E9A469890EA9A95C7 +:10077000F1F79FB1799902C082E001C080E09170E9 +:100780009D25982B7C9902C084E001C080E0892BD4 +:100790007D9902C038E001C030E0832B7E9902C011 +:1007A00020E101C020E0822B9FB19095991F9927ED +:1007B000991F9295990F907E892B0FC0809101010E +:1007C000811149C080E40E94C702809301018823FF +:1007D00079F1B12C0E94E9028B2DF80190819817D4 +:1007E00019F08083C09200010E940C0321960F5FD4 +:1007F0001F4FCE30D10509F076CF809100018823BC +:1008000061F1815080930001882339F08FE99FE0E6 +:100810000197F1F700C0000020C0A3E4B1E0E5E3D8 +:10082000F1E0CF01825F91919D938E13FCCF15C0B3 +:1008300083E10E94F102809301018111CACF81E41A +:100840000E94C702809301018111C3CF0E9402035D +:10085000B82EB094BFCF80E0C0CF0E94570481E093 +:10086000DF91CF911F910F91FF90EF90DF90CF908C +:10087000BF900895E82FF0E0ED5BFE4F8081089572 +:1008800008950F931F93CF93DF93C3E4D1E010E05B +:100890000C2F025F899190E00E94F81A180F0C1338 +:1008A000F9CF812FDF91CF911F910F9108950C9473 +:1008B000270556985E9825982D9826982E98279863 +:1008C0002F988FEF90E09093890080938800909309 +:1008D0008B0080938A0090938D0080938C00259AE2 +:1008E0002D9A2FEF80E792E0215080409040E1F771 +:1008F00000C00000269A2E9A2FEF80E792E0215048 +:1009000080409040E1F700C00000279A2F9A2FEF17 +:1009100080E792E0215080409040E1F700C0000065 +:1009200025982D982FEF80E792E02150804090404D +:10093000E1F700C0000026982E982FEF80E792E0A4 +:10094000215080409040E1F700C0000027982F9888 +:1009500056985E9825982D9826982E9827982F9827 +:10096000089589EA8093800089E08093810024982B +:100970002C983F988AB18F748AB96E98479A8BB138 +:10098000806B8BB9769A0E9459040C94260580E2FC +:10099000809301018091510181110EC00E94C1021A +:1009A00081E0809351012FEF83ED90E3215080404F +:1009B0009040E1F700C0000080E40E94C7028093ED +:1009C000010181112EC00E94F10280930101811169 +:1009D00028C00E94F10280930101811122C08FE39F +:1009E0000E94F1028093010181111BC00E94E90263 +:1009F00080E40E94C70280930101811112C08CE043 +:100A00000E94F1028093010181110BC00E94F1024A +:100A100080930101811105C08FE30E94F102809350 +:100A200001010E94E90280910101089561110BC04A +:100A3000FC018281882321F085EE0E94071103C00A +:100A400085EE0E94CF1180E090E0089508956091B6 +:100A5000BD017091BE018091BF019091C0010E94C3 +:100A6000041B56985E9825982D9826982E982798BE +:100A70002F98813019F0823021F00895259A2D9A0F +:100A80000895269A2E9A089581E0089581E00895A8 +:100A90000C94460508950F931F93CF93DF938C0119 +:100AA000FC01C081D181CE010E947D19BE010E944E +:100AB000F405EC01B8010E944805882309F48DC0B3 +:100AC000F8018281882309F44AC080915D01811177 +:100AD0001FC0C431F0E5DF0709F051C00E944A058C +:100AE00081E080935D010E949C1B90935C01809348 +:100AF0005B01109254011092560110925501109210 +:100B000058011092570110925A011092590165C074 +:100B100080915B0190915C010E94A81B883C91052B +:100B200070F480915401E82FF0E0EE0FFF1FEB5AB4 +:100B3000FE4FD183C0838F5F809354014EC0C43871 +:100B400080E5D80721F0C538D04501F13AC0F80159 +:100B50008281882341F01092520182E01EC0C43885 +:100B6000E0E5DE0759F580915201811106C086E269 +:100B70000E94071186E20E94CF1182E01CC0C43897 +:100B8000F0E5DF0741F3C538D045D9F4F80182819B +:100B9000882331F01092530180E20E941E121DC082 +:100BA00080915301811106C087E20E94071187E2FC +:100BB0000E94CF1180E20E9425120FC0C538D04597 +:100BC00029F381E08093520180935301C801DF91A2 +:100BD000CF911F910F910C94440580E0DF91CF914C +:100BE0001F910F910895089596E0799FF0011124C7 +:100BF00094E5899FE00DF11D1124E60FF11DEE0F24 +:100C0000FF1FE05FFE4F859194910895880F991F13 +:100C1000FC01E657F040859194910895880F991F43 +:100C2000FC01E65FFE4F8591949108950F931F9309 +:100C3000CF93DF93EC01811520E3920750F5C115A6 +:100C400080E2D80708F0C3C0CB3BD10590F4C83A86 +:100C5000D10508F06AC0C53AD10508F05BC0C430C0 +:100C6000D10508F0D0C1219709F0CAC101E010E018 +:100C70000AC2CF3FD10511F008F0C5C1C03FD10570 +:100C800008F0A2C0CE01805E9109089708F4BBC1AC +:100C9000B7C1C13090E5D90709F4A2C020F5C03131 +:100CA0008FE4D80770F4C11590E4D90708F094C018 +:100CB000C11521E3D20708F0A3C1DD278E01106C16 +:100CC000E2C1C115D04509F09BC10E9484148FEF89 +:100CD00094E32CE0815090402040E1F700C00000F8 +:100CE0000E94F71BD0C1C11597E5D90758F4C03150 +:100CF00021E5D20708F01CC1C43180E5D80708F40B +:100D000075C07EC1CE0190578115904108F078C121 +:100D1000DF7073C1C53AD10509F477C1C63AD10570 +:100D200009F076C102E810E4AEC1C83AD10509F471 +:100D300072C1C93AD10509F471C1CA3AD10509F4A1 +:100D400070C1CB3AD10509F46FC1CC3AD10509F491 +:100D50006EC1CD3AD10509F46DC1C03BD10509F48E +:100D60006CC1CE3AD10509F46BC1CF3AD10509F473 +:100D70006AC1C13BD10509F469C1C23BD10509F47F +:100D800068C1C33BD10509F467C1C43BD10509F46F +:100D900066C1C53BD10509F465C1C63BD10509F45F +:100DA00064C1C73BD10509F463C1C83BD10509F44F +:100DB00062C1C93BD10509F461C1CA3BD10509F43F +:100DC00060C100E014E45FC18E0110655CC1CE011A +:100DD0009F700E940E0658C1DF708E01106A53C1C9 +:100DE0008091DA0181608093DA014DC10E949C1DDF +:100DF000811102C00E94821D0E94B91D90E0909353 +:100E0000FB018093FA01C23080E5D80721F480917C +:100E1000FA01816086C0C43090E5D90721F4809141 +:100E2000FA0182607EC0C63020E5D20721F48091AD +:100E3000FA01846076C0C83080E5D80719F4809143 +:100E4000FA0127C0CA3090E5D90721F48091FA0150 +:100E5000806167C0CC3020E5D20721F48091FA018F +:100E600080625FC0CE3080E5D80721F48091FA011E +:100E7000806457C0C03190E5D90721F48091FA0110 +:100E800080684FC0C23120E5D20729F48091FA0171 +:100E90008460886046C0C33080E5D80721F4809123 +:100EA000FA018E7F3EC0C53090E5D90721F48091CC +:100EB000FA018D7F36C0C73020E5D20721F480913A +:100EC000FA018B7F2EC0C93080E5D80719F48091D4 +:100ED000FA0126C0CB3090E5D90721F48091FA01C0 +:100EE0008F7E1FC0CD3020E5D20721F48091FA011A +:100EF0008F7D17C0CF3080E5D80721F48091FA01AB +:100F00008F7B0FC0C13190E5D90721F48091FA01A0 +:100F10008F7707C0C331D04531F48091FA018B7FC0 +:100F2000877F8093FA018091FA010E94BD1DABC0BA +:100F30008D2F99278F70992781309105D9F49E01C3 +:100F40002370332702C0880F991F2A95E2F79C6807 +:100F50008E0144E0000F111F4A95E1F7002713703E +:100F6000802B912B53E0CC0FDD1F5A95E1F7C07613 +:100F7000DD272FC08230910531F4DC2FCC278E0184 +:100F8000016F106A80C08330910569F4CE018370CF +:100F9000992701E010E002C0000F111F8A95E2F7C7 +:100FA000C8019C680FC084309105B9F4CE018370EC +:100FB000992701E010E002C0000F111F8A95E2F7A7 +:100FC000C8019A6823E0CC0FDD1F2A95E1F7C07EA7 +:100FD000D7708C010C2B1D2B56C08530910531F438 +:100FE000DC2FCC278E01046F106A4DC0069709F0E4 +:100FF0004AC0CF71DD27DC2FCC278E01106243C0A1 +:1010000000E010E040C08E013EC001E810E43BC0AB +:1010100003E810E438C002EE14E435C009EE14E42D +:1010200032C00AEE14E42FC005EB14E42CC006EB2A +:1010300014E429C007EB14E426C00CEC14E423C02C +:101040000DEC14E420C003E815E41DC00AE815E423 +:101050001AC002E915E417C004E915E414C001E25E +:1010600016E411C003E216E40EC004E216E40BC05D +:1010700005E216E408C006E216E405C007E216E43D +:1010800002C00AE216E4C801DF91CF911F910F91CF +:10109000089596E0799FF001112494E5899FE00D71 +:1010A000F11D1124E60FF11DEE0FFF1FE05FFE4F53 +:1010B00085919491803E9105E0F4803C910558F52E +:1010C0008133910509F46FC048F48932910509F420 +:1010D00063C08A32910509F46DC072C089339105ED +:1010E000E9F082389105D1F08533910509F44DC0BE +:1010F00067C0833E910581F138F4803E9105B9F0D7 +:10110000823E9105D9F05CC0863E910561F1873E33 +:101110009105A1F155C00E94060608952091FA019B +:1011200020FD02C021FF4CC080EE90E049C08091BC +:10113000FA0180FFF9CF89E390E042C08091FA0183 +:1011400082FF0EC08091FA0184FF03C080E090E02E +:1011500037C083EE90E034C08091FA0182FFF2CF75 +:1011600082EE90E02DC08091FA0183FF0BC0809148 +:10117000FA0184FDEBCF87EE90E022C08091FA0166 +:1011800083FFF5CF86EE90E01BC08091FA0185FFCA +:1011900007C089E290E014C08091FA0185FFF9CF81 +:1011A00085E390E00DC08091FA0186FF07C08AE2D6 +:1011B00090E006C08091FA0186FFF9CF81E390E0CC +:1011C0000E941606089508950C94E30880916E011C +:1011D0000895CF93DF9300D01F92CDB7DEB79C0167 +:1011E0008091F101843019F593E099833B832A8340 +:1011F0009093E9008FEF9091E800815095FD06C033 +:1012000095ED9A95F1F700008111F5CF8091E800F6 +:1012100085FF0DC040E050E063E070E0CE01019634 +:101220000E94530B8091E8008E778093E8000F9026 +:101230000F900F90DF91CF910895CF93DF9300D05F +:101240001F92CDB7DEB72091F101243021F522E0C5 +:1012500029839B838A8383E08093E9008FEF9091B9 +:10126000E800815095FD06C095ED9A95F1F70000D4 +:101270008111F5CF8091E80085FF0DC040E050E07E +:1012800063E070E0CE0101960E94530B8091E8006C +:101290008E778093E8000F900F900F90DF91CF91A1 +:1012A00008952091F1012430F1F422E02093E90027 +:1012B0002FEF3091E800215035FD06C035ED3A950D +:1012C000F1F700002111F5CF2091E80025FF0BC0B8 +:1012D00040E050E065E070E00E94530B8091E80030 +:1012E0008E778093E8000895CF93DF93EC0190917F +:1012F000F101943009F046C080910C018823D9F0A7 +:1013000080910D018823B9F09093E9008FEF9091BF +:10131000E800815095FD06C095E19A95F1F700002F +:101320008111F5CF8091E80085FF2CC040E050E0AE +:1013300060E170E017C081E08093E9008FEF909149 +:10134000E800815095FD06C095ED9A95F1F70000F3 +:101350008111F5CF8091E80085FF14C040E050E096 +:1013600068E070E0CE010E94530B8091E8008E7718 +:101370008093E80080E1FE01AEE5B1E001900D92BE +:101380008A95E1F7DF91CF9108958091F001811165 +:1013900009C00E94E80C0E94450D8091E200846023 +:1013A0008093E20008951092F001089508950C943E +:1013B0002C220E948D1B0E9432220E94EB0F0C9463 +:1013C000E40842E061EC81E00E94620C42E061ECE2 +:1013D00082E00E94620C42E061EC83E00E94620CB9 +:1013E00042E161EC84E00C94620C8091F301833063 +:1013F00009F455C030F4813071F0823009F48EC0A8 +:1014000008958A3009F47AC08B3009F460C08930BD +:1014100009F09CC020C08091F201813A09F096C089 +:101420008091E800877F8093E8008091F601909199 +:10143000F701892B21F460E18EE591E003C060E0C3 +:1014400080E090E070E00E949E0B8091E8008B7736 +:101450008093E80008958091F201813209F076C00E +:101460008091F6019091F701009719F0039709F028 +:101470006DC08091E800877F8093E8008091E8004C +:1014800082FD05C08091F1018111F8CF5FC080918C +:10149000F10080936E018091E8008B7753C08091BA +:1014A000F201813A09F052C08091F6019091F70162 +:1014B000892B09F04BC08091E800877F8093E8007A +:1014C0008091E80080FFFCCF80910C0136C08091B4 +:1014D000F2018132D9F58091F6019091F701892BC3 +:1014E000A9F58091E800877F8093E8000E94970C1F +:1014F0008091F40180930C010C9484148091F2018A +:10150000813221F58091E800877F8093E8000E9476 +:10151000970C8091F50180936F0108958091F201FD +:10152000813AA1F48091E800877F8093E800809160 +:10153000E80080FFFCCF80916F018093F1008091E3 +:10154000E8008E778093E8000C94970C089584B798 +:10155000877F84BF88E10FB6F89480936000109273 +:1015600060000FBE90E080E80FB6F89480936100B1 +:10157000909361000FBE0E943A100E94E80C0E94F6 +:10158000450D8091E20084608093E20078940E948F +:10159000CB0F0E943C1082E091E00E94E60F0E9477 +:1015A0001A228091F101853069F40E94541B8091C8 +:1015B000EF018823B1F30E947F1B882391F30E94DF +:1015C0003D0BEFCF0E944210ECCF292F3327233061 +:1015D0003105C9F064F42130310581F02230310544 +:1015E00009F043C08DE690E02CE333E042C02132A5 +:1015F0003105F1F02232310541F137C082E190E04E +:1016000029EA33E036C099278130910541F08230D4 +:10161000910541F0892B49F5E8E3F3E005C0E0E2EC +:10162000F3E002C0E8E0F3E0849190E09F0121C084 +:101630006430D8F4E62FF0E0EE0FFF1FEE5DFE4FB2 +:101640002081318189E090E014C0643070F470E052 +:10165000FB01EE0FFF1FE65EFE4F20813181FB0193 +:10166000EA5EFE4F808190E004C080E090E020E0E0 +:1016700030E0FA0131832083089580E189BD82E161 +:1016800089BD09B400FEFDCF8091D8008F7D809385 +:10169000D8008091E00082608093E0008091E000BB +:1016A00081FDFCCF0895CF92DF92EF92FF920F93CE +:1016B0001F93CF93DF93EC018B016A010E94B60C5C +:1016C000811133C0C114D10439F0F60180819181B8 +:1016D000081B190BC80FD91FE12CF12C011511059E +:1016E00019F18091E80085FD16C08091E8008E77A1 +:1016F0008093E800C114D10449F0F6018081918102 +:10170000E80EF91EF182E08285E00FC00E94B60C5F +:10171000882321F30AC089918093F10001501109B7 +:10172000FFEFEF1AFF0ADACF80E0DF91CF911F9130 +:101730000F91FF90EF90DF90CF9008952091F801E6 +:101740003091F9012617370748F06115710539F412 +:101750002091E8002E772093E80001C0B90140E015 +:1017600061157105A9F12091F101222309F443C00B +:10177000253009F442C02091E80023FD40C02091AB +:10178000E80022FD32C02091E80020FFE9CF40911F +:10179000F3002091F20030E0342BFC01CF01611501 +:1017A000710559F02830310540F481918093F100A2 +:1017B000615071092F5F3F4FF1CF41E02830310573 +:1017C00009F040E02091E8002E772093E800C8CF90 +:1017D0004111C9CF0AC08091F101882361F08530A1 +:1017E00061F08091E80083FD0AC08091E80082FFEB +:1017F000F2CF80E0089582E0089583E0089581E0CB +:1018000008952091F8013091F9012617370748F023 +:101810006115710539F42091E8002E772093E800D6 +:1018200001C0B901FC0120E06115710591F18091C1 +:10183000F101882309F440C0853009F43FC080914C +:10184000E80083FD3DC08091E80082FD2FC08091BB +:10185000E80080FFE9CF2091F3008091F20090E052 +:10186000922B6115710559F08830910540F424914F +:101870002093F1003196615071090196F2CF21E079 +:10188000089709F020E08091E8008E778093E800C7 +:10189000CBCF2111CCCF0AC08091F101882361F018 +:1018A000853061F08091E80083FD0AC08091E800F6 +:1018B00082FFF2CF80E0089582E0089583E00895EA +:1018C00081E00895982F973058F59093E900981784 +:1018D00039F07091EC002091ED005091F00003C0C0 +:1018E000242F762F50E021FF19C03091EB003E7F6E +:1018F0003093EB003091ED003D7F3093ED0030915F +:10190000EB0031603093EB007093EC002093ED001E +:101910005093F0002091EE0027FF07C09F5FD3CFC8 +:101920008F708093E90081E0089580E008958091B0 +:10193000F20187FF11C08091E80082FD05C080910F +:10194000F1018111F8CF11C08091E8008B770BC0B5 +:101950008091F101882349F08091E80080FFF8CF61 +:101960008091E8008E778093E80008952091E4004C +:101970003091E50095E64091EC00842F817040FFA6 +:1019800022C08091E80080FD1CC08091F101882375 +:1019900091F0853091F08091EB0085FD10C0409171 +:1019A000E4005091E5004217530729F39A01915042 +:1019B00011F784E0089582E0089583E0089581E0BE +:1019C000089580E008954091E80042FFDECF089539 +:1019D0000E94560D0E945E0DE0EEF0E08081816075 +:1019E0008083E8EDF0E080818F77808319BCA7EDDC +:1019F000B0E08C918E7F8C9380818F7E808310925B +:101A0000F00108950F931F93CF93DF930E94560D1B +:101A10000E945E0DC8EDD0E088818F778883888131 +:101A20008068888388818F7D888319BC1092F1013A +:101A30001092ED011092EF011092EE0100EE10E015 +:101A4000F80180818B7F808388818160888342E078 +:101A500060E080E00E94620CE1EEF0E080818E7F29 +:101A60008083E2EEF0E08081816080838081886005 +:101A70008083F80180818E7F808388818061888364 +:101A8000DF91CF911F910F910895E8EDF0E08081F3 +:101A90008F7E8083E7EDF0E080818160808384E049 +:101AA00082BF81E08093F0010C94020DE8EDF0E03C +:101AB00080818E7F80831092E20008951092DA0078 +:101AC0001092E10008951F920F920FB60F92112409 +:101AD0002F933F934F935F936F937F938F939F9336 +:101AE000AF93BF93EF93FF938091E10082FF0BC010 +:101AF0008091E20082FF07C08091E1008B7F80939C +:101B0000E1000E94CA0F8091DA0080FF1FC080911F +:101B1000D80080FF1BC08091DA008E7F8093DA00AE +:101B20008091D90080FF0DC080E189BD82E189BD2F +:101B300009B400FEFDCF81E08093F1010E94C50948 +:101B400005C019BC1092F1010E94D3098091E100F7 +:101B500080FF19C08091E20080FF15C08091E200F3 +:101B60008E7F8093E2008091E20080618093E200AA +:101B70008091D80080628093D80019BC85E0809362 +:101B8000F1010E94D7098091E10084FF30C080916B +:101B9000E20084FF2CC080E189BD82E189BD09B4E7 +:101BA00000FEFDCF8091D8008F7D8093D80080917A +:101BB000E1008F7E8093E1008091E2008F7E809330 +:101BC000E2008091E20081608093E2008091ED016B +:101BD000882311F084E007C08091E30087FD02C0F4 +:101BE00081E001C083E08093F1010E94D9098091D6 +:101BF000E10083FF29C08091E20083FF25C080912E +:101C0000E100877F8093E10082E08093F1011092F0 +:101C1000ED018091E1008E7F8093E1008091E200F0 +:101C20008E7F8093E2008091E20080618093E200E9 +:101C300042E060E080E00E94620C8091F0008860E9 +:101C40008093F0000E94D609FF91EF91BF91AF9170 +:101C50009F918F917F916F915F914F913F912F91C4 +:101C60000F900FBE0F901F9018951F920F920FB6F6 +:101C70000F9211242F933F934F935F936F937F9312 +:101C80008F939F93AF93BF93CF93DF93EF93FF9384 +:101C9000C091E900CF708091EC00D82FD17080FD09 +:101CA000D0E81092E9008091F000877F8093F000E7 +:101CB00078940E94790E1092E9008091F00088607B +:101CC0008093F000CD2BCF70C093E900FF91EF918E +:101CD000DF91CF91BF91AF919F918F917F916F9144 +:101CE0005F914F913F912F910F900FBE0F901F90DA +:101CF00018951F93CF93DF93CDB7DEB7AA970FB692 +:101D0000F894DEBF0FBECDBFE2EFF1E088E08E0FAA +:101D10009091F10091938E13FBCF0E94F509809171 +:101D2000E80083FF1FC18091F2019091F301492FD8 +:101D300050E04A30510508F015C1FA01EA5AFF4F48 +:101D40000C94B423803881F0823809F00BC1809163 +:101D5000F6018F708093E9008091EB0085FB882766 +:101D600080F91092E90006C08091EE019091EF0198 +:101D7000911182609091E800977F9093E8008093A2 +:101D8000F1001092F100C8C0282F2D7F09F0EAC0A1 +:101D9000882319F0823061F0E5C08091F401813030 +:101DA00009F0E0C0933009F080E08093EF012BC090 +:101DB0008091F401811127C08091F6018F7009F4A0 +:101DC000D1C08093E9002091EB0020FF1CC093302C +:101DD00021F48091EB00806214C09091EB0090613F +:101DE0009093EB0021E030E0A90102C0440F551FA1 +:101DF0008A95E2F74093EA001092EA008091EB00A6 +:101E000088608093EB001092E9008091E800877F62 +:101E100086C08111A7C01091F4011F778091E30063 +:101E20008078812B8093E3008091E800877F809306 +:101E3000E8000E94970C8091E80080FFFCCF809121 +:101E4000E30080688093E300111102C082E001C0CA +:101E500083E08093F10186C08058823008F082C010 +:101E60008091F4019091F5018C3D53E0950779F54F +:101E700083E08A838AE289834FB7F894DE01139660 +:101E800020E03EE051E2E32FF0E050935700E49170 +:101E900020FF03C0E295EF703F5FEF708E2F90E060 +:101EA000EA3010F0C79601C0C0968D939D932F5FC6 +:101EB000243149F74FBF8091E800877F8093E80085 +:101EC0006AE270E0CE0101960E949E0B14C0AE0142 +:101ED0004F5F5F4F6091F6010E94E50ABC010097D9 +:101EE00009F440C09091E800977F9093E8008981C1 +:101EF0009A810E94010C8091E8008B778093E80022 +:101F000031C0803879F58091E800877F8093E800C0 +:101F10008091ED018093F1008091E8008E778093AD +:101F2000E8000E94970C1EC081111CC09091F40122 +:101F30009230C0F48091E800877F8093E80090930E +:101F4000ED010E94970C8091ED01811106C08091F6 +:101F5000E30087FD02C081E001C084E08093F101CD +:101F60000E94E1098091E80083FF0AC08091E800A7 +:101F7000877F8093E8008091EB0080628093EB0084 +:101F8000AA960FB6F894DEBF0FBECDBFDF91CF91FA +:101F90001F9108950895CF938091F1018823A1F0B6 +:101FA000C091E900CF709091EC00892F817090FD75 +:101FB00080E8C82B1092E9008091E80083FD0E9420 +:101FC000790ECF70C093E900CF9108959093750179 +:101FD000809374010895E0917401F0917501309738 +:101FE00021F00190F081E02D099480E00895E091C6 +:101FF0007401F0917501309721F00280F381E02D9A +:1020000009940895E0917401F0917501309721F0E1 +:102010000480F581E02D099408952091720130919A +:1020200073018217930771F090937301809372018B +:10203000E0917401F0917501309721F00680F781ED +:10204000E02D09940895209170013091710182175B +:10205000930771F09093710180937001E091740186 +:10206000F0917501309721F00084F185E02D0994FD +:10207000089508950C9439100E94931B0E94340314 +:102080000C94551C9F92AF92BF92CF92DF92EF9229 +:10209000FF920F931F93CF93DF9300D000D000D017 +:1020A000CDB7DEB70E944C030DE010E0AA24A39444 +:1020B000B12C902E802F0E943A04980129583E4F4F +:1020C0006901F901F080F826A1F40150110988F79F +:1020D0008FEF89838A831B820E949C1B8160782FEB +:1020E0009D838C8349815A816B818D810E94D91097 +:1020F0002FC09091DA0191FF04C08E830E944004AA +:102100008E8125E030E0A501022E01C0440F0A9423 +:10211000EAF7E42E4F21C1F029839A828E2191E0C3 +:1021200009F490E09B830E949C1B8160782F9D8323 +:102130008C8349815A816B818D810E94D910F6016F +:102140008081E826E08204C021503109E0F6BDCF4D +:102150000E943C1F109176010E94EB0F1817B9F0F6 +:102160000E94EB0F8093760126960FB6F894DEBF9F +:102170000FBECDBFDF91CF911F910F91FF90EF90D8 +:10218000DF90CF90BF90AF909F900C94E40826967C +:102190000FB6F894DEBF0FBECDBFDF91CF911F9178 +:1021A0000F91FF90EF90DF90CF90BF90AF909F90F6 +:1021B0000895CF93DF93CDB7DEB72B970FB6F89482 +:1021C000DEBF0FBECDBF4F83588769877A878B8765 +:1021D000DE01119686E0FD0111928A95E9F785E00E +:1021E000FE01379601900D928A95E1F749815A8157 +:1021F0006B817C818D819E810E9422172B960FB668 +:10220000F894DEBF0FBECDBFDF91CF910895CF937D +:10221000882309F4C2C0C82F823859F40E94EB0FFA +:1022200081FDBBC089E30E94FC190E94C91A89E3A1 +:102230000CC0833879F40E94EB0F80FDAEC083E5BB +:102240000E94FC190E94C91A83E50E943E1ACF9190 +:102250000C94C91A843859F40E94EB0F82FD9DC07A +:1022600087E40E94FC190E94C91A87E4EECF8CEF24 +:102270008C0F813A48F48C2F0E947F2181118DC0F0 +:102280008C2F0E94FC19E3CF80E28C0F883048F439 +:10229000C77081E001C0880FCA95EAF70E94821AD0 +:1022A000D6CF8BE58C0F833078F4C53A29F0C63A47 +:1022B00031F083E890E005C081E890E002C082E858 +:1022C00090E0CF910C940D1088E58C0F833108F0CD +:1022D00064C0C83A39F1C93A41F1CA3A49F1CB3A36 +:1022E00051F1CC3A59F1CD3A61F1C03B69F1CE3AA6 +:1022F00071F1CF3A79F1C13B81F1C23B89F1C33B26 +:1023000091F1C43B99F1C53BA1F1C63BA9F1C73B93 +:10231000B1F1C83BB9F1C93BC1F1CA3BC9F180E099 +:1023200090E038C082EE90E035C089EE90E032C097 +:102330008AEE90E02FC085EB90E02CC086EB90E019 +:1023400029C087EB90E026C08CEC90E023C08DEC98 +:1023500090E020C083E891E01DC08AE891E01AC0B7 +:1023600082E991E017C084E991E014C081E292E033 +:1023700011C083E292E00EC084E292E00BC085E2DD +:1023800092E008C086E292E005C087E292E002C0D7 +:102390008AE292E0CF910C942310CF910895882384 +:1023A00009F44BC0823859F40E94EB0F81FF45C0FD +:1023B00089E30E94FC190E94C91A89E30CC0833882 +:1023C00071F40E94EB0F80FF38C083E50E94FC1976 +:1023D0000E94C91A83E50E943E1A0C94C91A8438D7 +:1023E00059F40E94EB0F82FF28C087E40E94FC1979 +:1023F0000E94C91A87E4EFCF9CEF980F913A58F3E7 +:1024000090E2980F983050F4877091E001C0990FD6 +:102410008A95EAF7892F0E94881ADFCF9BE5980FEB +:10242000933020F480E090E00C940D10885A8331B2 +:1024300020F480E090E00C9423100895882321F08C +:102440000E94821A0C94C91A0895882321F00E94D0 +:10245000881A0C94C91A08957F928F929F92AF9216 +:10246000BF92CF92DF92EF92FF920F931F93CF9381 +:10247000DF931F92CDB7DEB77C01C62E772EFC010D +:10248000058102950F70128111110E949F1A0E94FE +:10249000F519882379F0112369F080E28C0D8830DA +:1024A00048F082E00E94DE190E94F51991E0D82ED2 +:1024B000D92601C0D12CE72DE295EF70F0E0E05A6B +:1024C000FF4F0C94B423872D807F072D0F70882336 +:1024D00011F00295007F112389F0002309F490C1C7 +:1024E00080E28C0D883020F4802F0E94821A03C075 +:1024F000802F0E94921A0E94C91A82C18C2D0E94BC +:10250000CF11002309F495C180E28C0D883020F4AE +:10251000802F0E94881A03C0802F0E94981A0E9460 +:10252000C91A87C1972D907F872D8F70903211F037 +:102530008295807FCC2021F0F1E0CF16B1F01EC053 +:10254000112349F0002309F414C1013009F011C12D +:102550000E94B21A6EC1002319F0013009F469C15A +:1025600089830E94B51A89810AC1112321F00230A2 +:1025700008F05FC1FEC001115CC101C1112321F04F +:10258000002309F4F6C03CC1002309F4F8C03EC1A1 +:10259000872D86958695837090E0009719F00197B6 +:1025A00061F047C1112321F08C2D972D937002C04B +:1025B00080E090E00E940D103CC1112321F08C2D91 +:1025C000972D937002C080E090E00E94231031C1EB +:1025D0008C2D112319F00E94441E02C00E94AC1ED3 +:1025E0000E94311F26C1872D837009F052C011113E +:1025F00020C18C2D829586958770880F880F9C2D21 +:102600009F70892E912CA12CB12C082E04C0880C0F +:10261000991CAA1CBB1C0A94D2F7C4FE14C00FE07C +:1026200010E020E030E0B901A80104C0440F551FBC +:10263000661F771F8A95D2F7CB01BA016095709516 +:102640008095909503C060E070E0CB01272D269522 +:102650002695237030E02230310569F023303105B2 +:1026600089F0682979298A299B292130310571F05F +:102670000E946A18DEC0682979298A299B290E944C +:102680008618D7C00E946A18C501B4010E944E186E +:10269000D0C0112319F0872D817001C08695882341 +:1026A00009F4C7C08C2D829586958770880F880F96 +:1026B0009C2D9F70892E912CA12CB12C082E04C02A +:1026C000880C991CAA1CBB1C0A94D2F7C4FE14C027 +:1026D0000FE010E020E030E0B901A80104C0440F91 +:1026E000551F661F771F8A95D2F7CB01BA016095F7 +:1026F00070958095909503C060E070E0CB01272D28 +:10270000269526952370422F50E04230510569F0FE +:102710004330510589F0682979298A299B2941305C +:10272000510571F00E94441984C0682979298A29C9 +:102730009B290E9460197DC00E944419C501B40103 +:102740000E94281976C08C2D90E0FC01E05EF10912 +:10275000E531F10508F050C0E059FF4F0C94B42367 +:102760000C2D0F70872D8F71112331F00E94C1182D +:10277000802F0E941E125DC00E94E218802F0E94CE +:10278000251257C0112339F0011153C0872D8F71C5 +:102790000E9407194EC0023008F04BC0F7CF11233A +:1027A00039F0872D8F710E94C11843C01123C9F3DE +:1027B000872D8F710E94E2183CC0112329F0872DCC +:1027C0008F710E94AC1835C00E94A21832C011232C +:1027D00051F0172D1F71812F0E94C11863E0812FC6 +:1027E0000E94D51926C081E00E94DE19023008F14E +:1027F00082E00E94DE191DC0112331F0002389F20E +:102800008C2D0E94071115C0002391F28C2D0E947F +:10281000CF110FC0472D4F706C2DC7010E941605B8 +:102820000E94C61706C0472D4F706C2DC7010E942D +:10283000F305DD20F9F00E94D11980FD1BC0F701DE +:1028400012820E94CB190E94C118C7010E9449142C +:102850000E94CB190F90DF91CF911F910F91FF90A4 +:10286000EF90DF90CF90BF90AF909F908F907F9030 +:102870000C94E2180F90DF91CF911F910F91FF9070 +:10288000EF90DF90CF90BF90AF909F908F907F9010 +:1028900008950F931F93CF93DF93EC018881998163 +:1028A0002B813C81232BB9F09F3F11F48F3F99F08E +:1028B000CE010E944B05882371F0688179818A815D +:1028C0000E94C7198C010E947C190E944318B8010C +:1028D000CE010E942C12DF91CF911F910F9108958C +:1028E0000E949F1A0E94AF1A0E94741A0E94C91A6D +:1028F0000E94E21F0E94311F80E090E00E940D10B4 +:1029000080E090E00C9423100E948F1A0C947014B5 +:102910000E94BC19292F22952F7030E02C303105F0 +:102920004CF42A3031056CF4225031092230310543 +:10293000A8F407C02C30310569F02F30310551F073 +:102940000DC0803F69F018F4803E40F409C0843F18 +:1029500029F406C093FB882780F9089580E0089544 +:1029600081E00895CF93DF9300D000D01F92CDB7C0 +:10297000DEB70F900F900F900F900F90DF91CF91D7 +:102980000895CF93DF9300D000D000D0CDB7DEB74D +:1029900026960FB6F894DEBF0FBECDBFDF91CF9164 +:1029A00008951F93CF93DF93C091850116E0809126 +:1029B0008601C81799F0D0E01C9FF0011D9FF00D13 +:1029C0001124E957FE4F40815181628173818481D6 +:1029D00095810E94C1142196C770E9CFDF91CF91F4 +:1029E0001F9108954091B7015091B8016091B901CC +:1029F0007091BA018091BB019091BC010C94C114FB +:102A00008091BC0182958F7009F054C08091B9010A +:102A1000882309F44FC080918501A09186016091BF +:102A2000B7017091B8014091BA015091BB01B6E075 +:102A30008A1709F43FC090E041155105C1F17F3F6D +:102A400011F46F3FA1F1B89FF001B99FF00D11246F +:102A5000E957FE4F218172132AC02081621327C0DB +:102A60002281211124C0238134812417350710F4D9 +:102A700021503109241B350B283C3105C0F420912D +:102A8000BC012F7020612093BC0126E0289FF0013B +:102A9000299FF00D1124E457FE4F80818F708061D3 +:102AA000808387EB91E00E9449140C94D114019625 +:102AB0008770BECF0895CF92DF92EF92FF920F936F +:102AC0001F93CF93DF93CDB7DEB762970FB6F8941D +:102AD000DEBF0FBECDBF8C0185E0F801DE011D9683 +:102AE00001900D928A95E1F7D8014C9111965C9175 +:102AF000119712966C9112971396CD90DC901497C3 +:102B00003091B7017091B8018091BA019091BB01E9 +:102B1000009709F46BC17F3F19F43F3F09F466C188 +:102B2000E090B901EE2009F4C0C02091BC01C816A4 +:102B3000D90628F0F601E81BF90BCF0104C08095F7 +:102B400090958C0D9D1DFF24F394883C910578F0A1 +:102B5000F12C207F09F0C6C07C2DD98AC88A8989CA +:102B60000E94B21487EB91E00E944914B1C0822FF9 +:102B7000807F09F046C0751314C0341312C0611170 +:102B800010C02F7020612093BC010E94F21487EBCB +:102B900091E00E9449148091BC01D80115968C9354 +:102BA0002EC0CD2819F15F3F11F44F3FF9F0F62EFA +:102BB00061111CC0809185012091860136E0821749 +:102BC00009F45AC090E0389FF001399FF00D1124AC +:102BD000E957FE4F7181571306C07081471303C038 +:102BE0007281711103C001968770E9CFF62E6623BA +:102BF00009F418C18091BC0181608093BC01F12C63 +:102C000011C1751308C0341306C0611104C080914E +:102C1000BC01D801C3C04D875E878D859E856A8BB8 +:102C20000E9488146A898823E1F16623D1F12091FA +:102C3000BC01822F82958F7090E0029774F0809192 +:102C4000B7019091B80198878F831986DB86CA8671 +:102C50002C87CE0107960E94491486E0F801A7EB65 +:102C6000B1E001900D928A95E1F70E9400150E9453 +:102C7000F214FF24F394D6C04D875E878D859E8520 +:102C80000E94BC19292F22952F7030E02230310587 +:102C90000CF0BCC09F7009F0B6C0805E883008F4AC +:102CA000C1C0C8010E944914E4CFC816D90608F46F +:102CB00053C0F601E81BF90BCF01883C910508F4DD +:102CC00050C0F12C7C2DD98AC88A89890E94B214FF +:102CD000E7EBF1E086E0DF011D928A95E9F70E94BB +:102CE000F214A0C0751314C0341312C0611110C0C7 +:102CF0008091BC01F8018583C8010E94491486E0D7 +:102D0000E7EBF1E0DF011D928A95E9F7FE2C8AC01E +:102D10004D875E878D859E856A8B0E9488146A899F +:102D2000882309F4BECF662309F4BBCF2091BC01F0 +:102D3000822F82958F7090E002970CF48ECF809155 +:102D4000B7019091B8019A8389831B82DD82CC827E +:102D50002E83CE0101967FCF809590958C0D9D1D81 +:102D6000ACCFF62E662309F49CCF75132EC0341316 +:102D70002CC02091BC0120FD1FC0822F82958F7036 +:102D8000D9F0D80115962C9315978F3049F08F5FA5 +:102D9000982F9295907F822F8F70892B15968C9308 +:102DA000C8010E94491486E0F801A7EBB1E0019048 +:102DB0000D928A95E1F793CF86E0F801A7EBB1E099 +:102DC00001900D928A95E1F72DC04D875E878D8524 +:102DD0009E850E948814811140CF8091BC01816042 +:102DE0008093BC01C8010E9449141CC0662309F4E9 +:102DF00058CF4D875E878D859E850E9488148823D5 +:102E000009F44FCF2ACF811148CF0CC024303105AF +:102E10000CF047CF9F7009F440CFF8019581907F67 +:102E200009F03BCF8F2D62960FB6F894DEBF0FBE30 +:102E3000CDBFDF91CF911F910F91FF90EF90DF9069 +:102E4000CF9008951F93CF93DF93CDB7DEB72C9724 +:102E50000FB6F894DEBF0FBECDBF4F83588769878A +:102E60007A878B879C87CE0107960E945B15882303 +:102E700069F08F8198852A853B85232BF1F19F3F4F +:102E800009F063C08F3F09F060C037C086E0FE01E3 +:102E90003796DE01119601900D928A95E1F76F81C8 +:102EA0007885EA85FB85309741F17F3F11F46F3FCC +:102EB00021F12091860130E0C901019687709927A0 +:102EC0004091850150E08417950709F447C0698354 +:102ED0007A83FD83EC8396E0929FD001939FB00D9F +:102EE0001124A957BE4FFE01319601900D929A957B +:102EF000E1F7809386010E94D11416E0809185014C +:102F0000909186018917C1F1189FC001112489573A +:102F10009E4F0E945B15882379F1E09185011E9FE9 +:102F2000F0011124E957FE4F408151816281738184 +:102F3000848195810E94C1148091850190E0019661 +:102F40008770992780938501D9CF4F8158856985EE +:102F50007A858B859C850E94C114CFCF0E948414F2 +:102F60001092860110928501E7EBF1E086E0DF0127 +:102F70001D928A95E9F7C1CF2C960FB6F894DEBF63 +:102F80000FBECDBFDF91CF911F910895EF92FF92B9 +:102F90000F931F93CF93DF938C01009709F46CC0BC +:102FA000F12CEE24E394E8012196F8018491843712 +:102FB00040F4843008F051C0813081F0823019F142 +:102FC0005BC0853709F444C0A8F19CE7980F90379F +:102FD00008F052C08F770E94CF1141C00E5F1F4F83 +:102FE000FE01C49180E28C0F883048F4C7708E2DAA +:102FF00001C0880FCA95EAF70E94A21A14C08C2F4C +:103000000E9407112DC00E5F1F4FFE01C49180E288 +:103010008C0F883058F4C7708E2D01C0880FCA9568 +:10302000EAF70E94A81A0E94C91A1AC08C2F0E949F +:10303000CF1116C00E5F1F4FFE01C491CC2381F04B +:103040008FE99FE00197F1F700C00000C150F6CF73 +:103050000E5F1F4FFE01F49003C00E9407118E0106 +:103060008F2D882309F49FCFEFE9FFE03197F1F727 +:1030700000C000008150F5CFDF91CF911F910F91DB +:10308000FF90EF90089508956093C1017093C2017D +:103090008093C3019093C4010C9470140F931F93F9 +:1030A0000091C1011091C2012091C3013091C4016E +:1030B000DC01CB01802B912BA22BB32B8093C10180 +:1030C0009093C201A093C301B093C4011F910F91CB +:1030D0000C9470140F931F930091C1011091C201C1 +:1030E0002091C3013091C401DC01CB0180239123E5 +:1030F000A223B3238093C1019093C201A093C30183 +:10310000B093C4011F910F910C9470140F931F93EF +:103110000091C1011091C2012091C3013091C401FD +:10312000DC01CB0180279127A227B3278093C1011F +:103130009093C201A093C301B093C4011F910F915A +:103140000C9470141092BD011092BE011092BF0138 +:103150001092C0010C94701441E050E060E070E007 +:1031600004C0440F551F661F771F8A95D2F74093FE +:10317000BD015093BE016093BF017093C0010C94D8 +:10318000701441E050E060E070E004C0440F551F4F +:10319000661F771F8A95D2F78091BD019091BE017D +:1031A000A091BF01B091C001482B592B6A2B7B2BFA +:1031B0004093BD015093BE016093BF017093C00165 +:1031C0000C94701441E050E060E070E004C0440FE3 +:1031D000551F661F771F8A95D2F7409550956095C9 +:1031E00070958091BD019091BE01A091BF01B091F9 +:1031F000C001482359236A237B234093BD01509388 +:10320000BE016093BF017093C0010C94701441E043 +:1032100050E060E070E004C0440F551F661F771F48 +:103220008A95D2F78091BD019091BE01A091BF0116 +:10323000B091C001482759276A277B274093BD01D9 +:103240005093BE016093BF017093C0010C94701441 +:103250000F931F930091BD011091BE012091BF01FA +:103260003091C001DC01CB01802B912BA22BB32B21 +:103270008093BD019093BE01A093BF01B093C001A4 +:103280001F910F910C9470140F931F930091BD0127 +:103290001091BE012091BF013091C001DC01CB0132 +:1032A00080239123A223B3238093BD019093BE0179 +:1032B000A093BF01B093C0011F910F910C947014A3 +:1032C0000F931F930091BD011091BE012091BF018A +:1032D0003091C001DC01CB0180279127A227B327C1 +:1032E0008093BD019093BE01A093BF01B093C00134 +:1032F0001F910F910C9470140895CF92DF92EF926A +:10330000FF920F931F93CF93DF938C01C090C10165 +:10331000D090C201E090C301F090C4018091BD0142 +:103320009091BE01A091BF01B091C001C82AD92AD5 +:10333000EA2AFB2ACFE1D0E0D701C6010C2E04C057 +:10334000B695A795979587950A94D2F780FF06C002 +:10335000B8018C2F0E944908019721F4219760F74A +:1033600080E001C08C2FDF91CF911F910F91FF90D2 +:10337000EF90DF90CF900895CF93DF93EC010E9400 +:103380007D19BE010E944908DF91CF910895CB01BC +:103390000E94BC1908958091C501859585958595F4 +:1033A00008958091C5018770089598E0899F9001E4 +:1033B0001124262B2093C5010C94C1182091C5011E +:1033C000809582238093C501982F977069F430E02F +:1033D000482F552747FD50952417350729F0859527 +:1033E000859585950C94E21808959091C501977084 +:1033F00081E009F480E0089590910C01992321F077 +:1034000090910D01911109C020910E0130910F0191 +:10341000F90132969FEF40E01FC0982F9695969540 +:1034200096959F3050F5E0910E01F0910F01E90F54 +:10343000F11D877021E030E0A90102C0440F551F43 +:103440008A95E2F7CA019181892B818308959F3F74 +:1034500039F04F5F4E3041F051915813F8CF0DC005 +:103460005111F7CF942FF5CF9F3F39F0F901E90FB4 +:10347000F11D97FDFA9582830895089590910C01AE +:10348000992321F090910D01911109C020910E0115 +:1034900030910F01F9013296205F3F4F1FC0982FE6 +:1034A0009695969596959F30F0F4E0910E01F091E7 +:1034B0000F01E90FF11D877021E030E0A90102C082 +:1034C000440F551F8A95E2F7CA018095918189239F +:1034D000818308953196E217F30729F090819813BC +:1034E000F9CF1082F7CF089581E090E0E0910E01CE +:1034F000F0910F01E80FF91F1082019680319105BC +:10350000A9F708959091D901892B8093D901089545 +:1035100080959091D90189238093D90108951092C3 +:10352000D90108959091D801892B8093D8010895ED +:1035300080959091D80189238093D80108951092A5 +:10354000D80108959091D701892B8093D7010895D0 +:1035500080959091D70189238093D7010895109287 +:10356000D70108958093C60108951092C601089569 +:1035700080910E0190910F01FC0131969C01205F1A +:103580003F4F80E0919191118F5FE217F307D1F7E0 +:103590000895E0910E01F0910F018091D90180838F +:1035A000E0910E01F0910F0190818091D801892B5B +:1035B0008083E0910E01F0910F0190818091D701FD +:1035C000892B80838091C601882361F0E0910E01F0 +:1035D000F0910F019081892B80830E94B81A81118C +:1035E0001092C60180910E0190910F010C94F70F7B +:1035F00020E0009739F0AC01415051098423952314 +:103600002F5FF7CF822F0895CF92DF92EF92FF9234 +:103610006C01EE24FF24C114D104E104F10421F073 +:10362000C701B60120E101C020E0C72ED82EE92E47 +:10363000FF24C114D104E104F10419F0285FC7018B +:10364000B6016B017C0154E0F694E794D794C794DB +:103650005A95D1F7C114D104E104F10419F02C5F9B +:10366000C701B6016B017C0142E0F694E794D79460 +:10367000C7944A95D1F7C114D104E104F10419F0BB +:103680002E5FC701B601DC01CB01B695A7959795D2 +:103690008795892B8A2B8B2B09F02F5F822FFF9028 +:1036A000EF90DF90CF9008958091F101843021F167 +:1036B0001092DB0120E488E190E00FB6F894A89521 +:1036C000809360000FBE2093600080E00E94E408B9 +:1036D00083B7817F846083BF83B7816083BF789421 +:1036E000889583B78E7F83BF88E10FB6F894809367 +:1036F0006000109260000FBE0895089508950E9422 +:103700007D1B0E944C030E947E1B0E94410491E09D +:10371000811101C090E0892F08950E9484140E94B5 +:10372000EB0F0C94E40882E084BD93E095BD9AEF22 +:1037300097BD80936E0008952FB7F8948091DC01B7 +:103740009091DD01A091DE01B091DF012FBF0895BE +:10375000CF92DF92EF92FF920F931F932FB7F894BF +:103760004091DC015091DD016091DE017091DF013B +:103770002FBF6A017B01EE24FF248C0120E030E0A2 +:10378000C016D106E206F30610F4415051099A0121 +:10379000281B390BC9011F910F91FF90EF90DF900B +:1037A000CF9008951F920F920FB60F9211248F930E +:1037B0009F93AF93BF938091DC019091DD01A09125 +:1037C000DE01B091DF010196A11DB11D8093DC01E6 +:1037D0009093DD01A093DE01B093DF01BF91AF9123 +:1037E0009F918F910F900FBE0F901F9018950E9480 +:1037F000E80CF8942FEF87EA91E621508040904042 +:10380000E1F700C0000087E090EBDC018093FB0152 +:103810009093FC01A093FD01B093FE019CE088E130 +:103820000FB6F894A895809360000FBE9093600047 +:10383000FFCFEF92FF920F931F93CF93DF93D82F79 +:10384000CDE08C2F0E943A0405E010E0E82EF12C28 +:10385000C701002E02C0959587950A94E2F780FF74 +:1038600009C0602F7C2F80E00E94F405D81302C0AD +:1038700081E006C00150110958F7C15010F780E0EF +:10388000DF91CF911F910F91FF90EF900895CF930B +:10389000C82F8CE20E94191C882321F08C2FCF9115 +:1038A0000C94191C80E0CF910895CF930E949C1D29 +:1038B000811102C00E94821DC5E6C15049F00E94DC +:1038C0004C038FE39CE90197F1F700C00000F5CFAE +:1038D00089E20E94471C811113C18AE20E94471CA1 +:1038E00081110E94821D85E00E94471C81110E9467 +:1038F000F71B0E94A71D8093DA0187E00E94471CF6 +:103900008823A9F18BE10E94471C882351F0809104 +:10391000DA0181FB222720F991E0922790FB81F9BF +:103920000EC08EE00E94471C882361F08091DA016E +:1039300082FB222720F991E0922790FB82F9809365 +:10394000DA0115C080E10E94471C9091DA018823BA +:1039500041F093FB222720F981E0822780FB93F935 +:1039600004C0892F809580FB90F99093DA018091B3 +:10397000DA010E94AB1D0E94B91D8093FA0180EE0E +:103980000E94471C882341F08091FA01982F90955E +:1039900090FB80F98093FA0189E30E94471C8823F9 +:1039A00059F08091FA0181FB222720F991E09227BA +:1039B00090FB81F98093FA0182EE0E94471C8823D4 +:1039C00059F08091FA0182FB222720F991E0922799 +:1039D00090FB82F98093FA0186EE0E94471C8823AF +:1039E00059F08091FA0183FB222720F991E0922778 +:1039F00090FB83F98093FA0183EE0E94471C882391 +:103A000059F08091FA0184FB222720F991E0922756 +:103A100090FB84F98093FA0185E30E94471C882378 +:103A200059F08091FA0185FB222720F991E0922735 +:103A300090FB85F98093FA0181E30E94471C88235B +:103A400059F08091FA0186FB222720F991E0922714 +:103A500090FB86F98093FA0181E10E94471C88233C +:103A600059F08091FA0187FB222720F991E09227F3 +:103A700090FB87F98093FA018091FA010E94BD1DA5 +:103A80008091FA0187FB882780F980930D0187E2F6 +:103A90000E94471CC82F8EE10E94471C8111C26002 +:103AA0008FE10E94471C8111C46080E20E94471C84 +:103AB0008111C86081E20E94471C8111C06182E2CD +:103AC0000E94471C8111C06283E20E94471C811141 +:103AD000C06484E20E94471C882311F0C06802C0C1 +:103AE000CC2329F08C2F0E94B41D6C2F03C00E94A0 +:103AF000B01D682F70E080E090E0CF910C944418E6 +:103B0000CF9108956DEE7EEF80E090E00E94EE236D +:103B100060E082E090E00E94DC2360E083E090E0DF +:103B20000E94DC2360E084E090E00E94DC2360E0FF +:103B300085E090E00C94DC2380E090E00E94D623A6 +:103B400021E08D3E9E4F09F020E0822F089582E013 +:103B500090E00C94CE23682F82E090E00C94DC235C +:103B600083E090E00C94CE23682F83E090E00C94E7 +:103B7000DC2384E090E00C94CE23682F84E090E076 +:103B80000C94DC238091E20180FF0BC06091130153 +:103B900085E0689FB00111247595679575956795C7 +:103BA0002BC081FF09C06091130185E0689FB001BF +:103BB00011247595679520C082FF07C0609113019D +:103BC00085E0689FB001112417C09091E30199230B +:103BD000D1F060911201961788F72091130185E0CA +:103BE000289F90011124929FA001939F500D1124B2 +:103BF00070E0CA010E94A0236038710540F461158D +:103C0000710539F002C065E070E0862F08958FE7F6 +:103C1000089581E008958091E20180FF08C06091DD +:103C2000110170E0759567957595679521C081FFC5 +:103C300006C06091110170E07595679519C082FF0B +:103C400004C06091110170E010C09091E3019923CC +:103C5000C1F0609110019617A0F780911101899F22 +:103C6000C001112470E00E94A0236038710528F47F +:103C70006115710521F0862F08958FE7089581E081 +:103C8000089561E070E0F4CF803F21F40E94C21DEE +:103C9000819504C0813F29F40E94C21D8093E601F2 +:103CA0000895823F21F40E94C21D819504C0833F84 +:103CB00029F40E94C21D8093E5010895893F19F4FB +:103CC0000E940B1E05C08A3F31F40E940B1E819595 +:103CD0008093E70108958B3F21F40E940B1E81958C +:103CE00004C08C3F29F40E940B1E8093E8010895C4 +:103CF000843F21F48091E401816017C0853F21F465 +:103D00008091E401826011C0863F21F48091E4013A +:103D100084600BC0873F21F48091E401886005C076 +:103D2000883F31F48091E40180618093E40108953B +:103D30008D3F21F48091E20181600BC08E3F21F420 +:103D40008091E201826005C08F3F29F48091E201F9 +:103D500084608093E2010895803F39F48091E60108 +:103D600087FF6CC01092E60169C0813F29F4809101 +:103D7000E6011816BCF362C09091E501823F29F478 +:103D800097FF5CC01092E50159C0833F19F41916E2 +:103D9000CCF354C0893F41F48091E70118160CF030 +:103DA0004DC01092E7014AC08A3F29F48091E70193 +:103DB00087FF44C0F6CF8B3F39F48091E80187FF3D +:103DC0003DC01092E8013AC08C3F29F48091E8018F +:103DD0001816BCF333C0843F21F48091E4018E7F38 +:103DE00017C0853F21F48091E4018D7F11C0863F8B +:103DF00021F48091E4018B7F0BC0873F21F48091F7 +:103E0000E401877F05C0883F31F48091E4018F7E13 +:103E10008093E40113C08D3F21F48091E2018E7FF5 +:103E20000BC08E3F21F48091E2018D7F05C08F3F52 +:103E300029F48091E2018B7F8093E2018091E5017A +:103E400081110EC08091E60181110AC08091E701C5 +:103E5000811106C08091E801811102C01092E30136 +:103E6000089584EE91E00E9402100E949C1B9093A2 +:103E7000E1018093E00108951F93CF93DF93809138 +:103E8000E0019091E1010E94A81BAC019091E30137 +:103E9000992321F02091140130E006C020911501F2 +:103EA0008AE0289F900111244217530708F486C026 +:103EB0008091E501C091E601D091E7011091E80100 +:103EC000811107C0C11176C0D11174C0111172C027 +:103ED00075C09F3F19F09F5F9093E301181624F47B +:103EE0000E94C21D8093E5018091E50187FF05C016 +:103EF0000E94C21D81958093E5011C1624F40E9446 +:103F0000C21D8093E6018091E60187FF05C00E94F3 +:103F1000C21D81958093E6016091E501662339F128 +:103F2000C091E601CC2319F1772767FD7095872FA3 +:103F3000972F0E94B12223E333E343E35FE30E9420 +:103F400015230E947E226093E5016C2F772767FD81 +:103F50007095872F972F0E94B12223E333E343E329 +:103F60005FE30E9415230E947E226093E6011D16E6 +:103F700024F40E940B1E8093E7018091E70187FFE4 +:103F800005C00E940B1E81958093E701111624F451 +:103F90000E940B1E8093E8018091E80187FF05C015 +:103FA0000E940B1E81958093E801DF91CF911F91B4 +:103FB0000C94311F9F3F09F08ECF96CFDF91CF91A8 +:103FC0001F910895E4EEF1E085E0DF011D928A95EE +:103FD000E9F71092E3011092E2010895833081F134 +:103FE00028F4813059F08230D1F00895853009F4F9 +:103FF00049C0B8F1863009F456C008958091150182 +:10400000262F30E0280F311D2F3F310524F4680F93 +:104010006093150108958FEF8093150108958091A5 +:104020001401262F30E0280F311D2F3F310524F4D5 +:10403000680F6093140108958FEF80931401089521 +:1040400080911301262F30E0280F311D2F3F3105BD +:1040500024F4680F6093130108958FEF8093130188 +:10406000089580911201262F30E0280F311D2F3F37 +:10407000310524F4680F6093120108958FEF809347 +:104080001201089580911101262F30E0280F311D73 +:104090002F3F310524F4680F6093110108958FEFCD +:1040A00080931101089580911001262F30E0280F90 +:1040B000311D2F3F310524F4680F609310010895DE +:1040C0008FEF809310010895833011F128F481302F +:1040D00049F0823091F00895853081F120F18630E9 +:1040E000C1F1089580911501681720F4861B809313 +:1040F0001501089510921501089580911401681713 +:1041000020F4861B809314010895109214010895E1 +:1041100080911301681720F4861B80931301089582 +:1041200010921301089580911201681720F4861BE4 +:104130008093120108951092120108958091110147 +:10414000681720F4861B80931101089510921101C5 +:10415000089580911001681720F4861B8093100148 +:1041600008951092100108950F931F938D3109F453 +:104170006BC008F03FC08E3009F47FC0C0F48730B8 +:1041800009F469C068F4863009F0B1C08091DA01A1 +:10419000817F8E7F8093DA0181E08093EA01A8C05D +:1041A000883009F4A2C08B3009F49FC0A0C08631CA +:1041B00009F49BC078F4803109F472C0813109F0B0 +:1041C00096C00E94841490910D0181E0892780930C +:1041D0000D018BC0893109F488C08B3109F087C08B +:1041E0008091DA0181FB222720F991E0922790FB50 +:1041F00081F94CC0853309F470C048F4873209F462 +:104200006CC008F459C0893209F467C070C08334A7 +:1042100038F48A3308F04EC0883309F466C067C0AA +:10422000833409F45AC0883409F061C00E948414B0 +:104230000FEF13ED20E3015010402040E1F700C0E4 +:1042400000000E94F71B51C00E9438220E94EB0F11 +:104250000E94E4084AC09091DA01892F809581700C +:1042600080FB90F929F0966098609093DA0140C045 +:10427000997F977F9093DA0138C08091DA0182FBB1 +:10428000222720F991E0922790FB82F98093DA01AE +:10429000992359F18091DA0181608093DA0125C078 +:1042A0008091DA0183FB222720F991E0922790FB8D +:1042B00083F9ECCF895301C08D5141E050E060E0BB +:1042C00070E08A019B0104C0000F111F221F331FE1 +:1042D0008A95D2F7C901B80104C061E070E080E0BE +:1042E00090E00E9444180E94841481E001C080E0A4 +:1042F0001F910F91089580E0089580E00895CF9375 +:10430000C82F8091EA01813079F018F08230E9F10C +:1043100087C0E0910E01F0910F018081813169F039 +:10432000823209F07FC009C0E0910E01F0910F01C7 +:104330008081813111F0823261F48C2F0E947B21C7 +:10434000811104C08C2F0E94B4201DC081E090E038 +:104350001AC08C2F0E947D21811114C0C43179F0C4 +:1043600048F4CB3079F0C03109F060C082E080932E +:10437000EA0108C0C93219F0C83321F057C01092C1 +:10438000EA0154C081E0817053C0C93289F118F547 +:10439000C43171F1A8F4C73009F046C08AE08093B7 +:1043A000150194E19093140193E09093130180938D +:1043B000120188E08093110188E28093100134C0DB +:1043C000CE51C63088F5EC2FF0E0E65DFE4F8081DF +:1043D0008093E90129C0CE34E9F020F4CB3421F5F3 +:1043E0006AE013C0C13579F0C235F1F461E00DC067 +:1043F0008091E901882319F01092E90115C081E04C +:104400008093EA0115C061E006C08091E9010E9435 +:10441000EE1F0AC06AE08091E9010E94642004C096 +:104420001092EA0180E004C081E002C080E0ABCFDE +:10443000CF910895E1E8F0E08081886080838081F9 +:10444000816080838FB7F89493E09093890090ED1A +:10445000909388008FBF0895EFE6F0E0808182603E +:1044600080830895EFE6F0E080818D7F808308955A +:10447000EFE6F0E0908182E08927808308951F9223 +:104480000F920FB60F9211242F933F934F935F9388 +:104490006F937F938F939F93AF93BF93EF93FF930C +:1044A0008091EB019091EC0101969093EC01809347 +:1044B000EB01811103C082E00E94E408E091EC016D +:1044C000E695E695F0E0EA54FB4FE4918091EB012C +:1044D0008E1303C080E00E94E408FF91EF91BF912A +:1044E000AF919F918F917F916F915F914F913F918C +:1044F0002F910F900FBE0F901F90189504D06894C5 +:10450000B1118DC0089570D088F09F5790F0B92FE9 +:104510009927B751A0F0D1F0660F771F881F991F18 +:104520001AF0BA95C9F712C0B13081F077D0B1E076 +:10453000089574C0672F782F8827B85F39F0B93F86 +:10454000CCF3869577956795B395D9F73EF490951A +:104550008095709561957F4F8F4F9F4F0895E89498 +:1045600009C097FB3EF490958095709561957F4FBB +:104570008F4F9F4F9923A9F0F92F96E9BB27939569 +:10458000F695879577956795B795F111F8CFFAF479 +:10459000BB0F11F460FF1BC06F5F7F4F8F4F9F4FAA +:1045A00016C0882311F096E911C0772321F09EE808 +:1045B000872F762F05C0662371F096E8862F70E06E +:1045C00060E02AF09A95660F771F881FDAF7880F48 +:1045D0009695879597F9089557FD9058440F551F64 +:1045E00059F05F3F71F04795880F97FB991F61F075 +:1045F0009F3F79F087950895121613061406551FEC +:10460000F2CF4695F1DF08C0161617061806991F57 +:10461000F1CF86957105610508940895E894BB274C +:1046200066277727CB0197F908950BD078C069D01A +:1046300028F06ED018F0952309F05AC05FC01124FD +:10464000EECFCADFA0F3959FD1F3950F50E0551F31 +:10465000629FF001729FBB27F00DB11D639FAA27D7 +:10466000F00DB11DAA1F649F6627B00DA11D661F26 +:10467000829F2227B00DA11D621F739FB00DA11D47 +:10468000621F839FA00D611D221F749F3327A00D01 +:10469000611D231F849F600D211D822F762F6A2F9D +:1046A00011249F5750408AF0E1F088234AF0EE0F22 +:1046B000FF1FBB1F661F771F881F91505040A9F72F +:1046C0009E3F510570F014C0AACF5F3FECF3983EB7 +:1046D000DCF3869577956795B795F795E7959F5F96 +:1046E000C1F7FE2B880F911D9695879597F9089530 +:1046F00097F99F6780E870E060E008959FEF80EC95 +:10470000089500240A941616170618060906089537 +:1047100000240A9412161306140605060895092E9D +:104720000394000C11F4882352F0BB0F40F4BF2B0C +:1047300011F460FF04C06F5F7F4F8F4F9F4F08954C +:1047400097FB072E16F4009407D077FD09D00E943E +:10475000BA2307FC05D03EF4909581959F4F0895AC +:10476000709561957F4F0895EE0FFF1F0590F491AE +:10477000E02D0994AA1BBB1B51E107C0AA1FBB1F58 +:10478000A617B70710F0A61BB70B881F991F5A95DD +:10479000A9F780959095BC01CD010895F999FECFB8 +:1047A00092BD81BDF89A992780B50895A8E1B0E03F +:1047B00042E050E00C94F623262FF999FECF92BDEB +:1047C00081BDF89A019700B4021639F01FBA20BDD6 +:1047D0000FB6F894FA9AF99A0FBE08950196272F0A +:1047E0000E94DD230C94DC23DC01CB01FC01F99950 +:1047F000FECF06C0F2BDE1BDF89A319600B40D922D +:0C48000041505040B8F70895F894FFCFE5 +:10480C000220E608740951091D09E9080101C701D4 +:10481C0028080A03140A3F4D363977042A04F40396 +:10482C00BB034E03670380039903010203040506CF +:04483C000708090060 +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/j3rn/keymap.c b/keyboards/ergodox_ez/keymaps/j3rn/keymap.c new file mode 100644 index 000000000..6e271321d --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/j3rn/keymap.c @@ -0,0 +1,187 @@ +#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 / L2| S | D | F | G |------| |------| H | J | K | L | ; | ' | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | ~L1 | ~L2 |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), LT(MDIA, 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_FN2, 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, 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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | Lclk | Rclk | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------|MsLeft|MsDown| MsUp |MsRght| | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | |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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_BTN1, KC_BTN2, 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_TRNS, KC_WBAK +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Layer 1 (Symbols) + [2] = ACTION_LAYER_TAP_TOGGLE(MDIA) // FN2 - Momentary Layer 2 (Media) +}; + +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/keyboards/ergodox_ez/keymaps/j3rn/readme.md b/keyboards/ergodox_ez/keymaps/j3rn/readme.md new file mode 100644 index 000000000..fc4b64042 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/j3rn/readme.md @@ -0,0 +1,29 @@ +# J3RN's Mac-centric ErgoDox EZ keymap + +## Motivation + +Essentially, I wanted to switch to a layout that was less jarring than the default ErgoDox EZ layout, and did not require finger gymnastics to perform common OS X shortcuts (most of which involve the CMD (LGui) key). + +## How is it different from the default ErgoDox EZ layout? + +This layout more closely resembles that of the Mac keyboard, and has some other goodness baked in. Here is a rundown of what that means: + +### Mac-like changes + +- **The key to the left of "1" is "~" instead of "=".** +- **The key to the right of "0" is Backspace instead of "-"** (misleadingly labeled "delete" on the Mac's keyboard). There was no room to fit in "-" and "=" between "0" and Backspace, unfortunately. +- **The key to the left of "Q" is Tab instead of Delete.** +- **The rightmost big key on the left thumb is CMD (LGui) instead of Backspace.** + +### Other changes + +- **The button to the left of "A" is Ctrl/Esc instead of Backspace.** This is actually how I have the keyboard on my Macbook set up to be, since it's loads more convenient than a CAPS LOCK key. This is the Ctrl key I find myself using most. +- **Mouse uses Vim-style navigation**. To activate "Media mode," hold the 'a' key. This allows you to move the mouse around with hjkl just like in Vim. Additionally, right and left click are the conveniently placed 'i' and 'o' keys. +- **The key to the right of "5" and the key to left of "6" are "[" and "]", respectively, instead of Left and Right.** There is a more convenient set of Left and Right already present. Truth be told, I don't really use these keys, as they are a stretch to reach. +- **The Toggle L1 keys have been replaced by the otherwise displaced "-" and "=".** They are laid out, left-to-right, in the same order as on the Mac keyboard. Honestly, they are not terribly conveniently placed, and their placement might change in a later version. I found that I did not toggle L1 frequently at all, and found using the momentary keys to access L1 to fit my workflow better. +- **The "~"/L1 key in the bottom-left is now just momentary L1.** The "~" key was moved to the top-left as mentioned before, and I like to keep my multi-use keys to a minimum due to the latency for them to switch from "press" to "hold." +- **The Home and End buttons have been shifted up on the left thumb, and Shift inserted below them.** This makes doing Shift-5 and other such combinations less painful. +- **The Page Up and Page Down buttons have been shifted up on the right thumb, and Alt was moved from above them to below them.** I use Alt more than Page Up or Page Down (mostly in terminal applications), and thought that it deserved a more accessible location. + + +**I'm always open to feedback and/or suggestions!** diff --git a/keyboards/ergodox_ez/keymaps/jack/compiled.hex b/keyboards/ergodox_ez/keymaps/jack/compiled.hex new file mode 100644 index 000000000..b5f54dd92 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/jack/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947A020C94BE020C94BE020C94BE02B4 +:100010000C94BE020C94BE020C94BE020C94BE0260 +:100020000C94BE020C94BE020C94620D0C94340E1F +:100030000C94BE020C94BE020C94BE020C94BE0240 +:100040000C94BE020C943E220C94BE020C94BE0290 +:100050000C94BE020C94D11B0C94BE020C94BE02F4 +:100060000C94BE020C94BE020C94BE020C94BE0210 +:100070000C94BE020C94BE020C94BE020C94BE0200 +:100080000C94BE020C94BE020C94BE020C94BE02F0 +:100090000C94BE020C94BE020C94BE020C94BE02E0 +:1000A0000C94BE020C94BE020C94BE02A10EC30EB0 +:1000B000B10FC30EB10F080F2B0FB10F800F930FAD +:1000C0006212621291129112C712E71218141814D8 +:1000D000F2121814A213A2130914181418141214EB +:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300 +:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0 +:10010000C113CE13D513DC13E6130000F0A10000D9 +:100110002B002900E100000000001E001400040074 +:100120001D00E0004D001F001A0016001B00E20039 +:100130002C002000080007000600E3002C0021002E +:1001400015000900190002524A00220017000A0097 +:1001500005000000657400000000000000000000C1 +:10016000E300000000000000000000000000230089 +:100170001C000B00110000000000240018000D00FE +:10018000100001524B0025000C000E0036005000FC +:100190002C00260012000F00370051002C00270011 +:1001A00013003300380052004E0000002A003400D3 +:1001B00028004F000000010035000100010001008F +:1001C00000003A001E003A004000010001003B0020 +:1001D0001F003B004100010001003C0020003C00EA +:1001E0004200010001003D0021003D0043000100EC +:1001F00001003E0022003E0044000000010001001A +:1002000001000000010000000100010001000000E9 +:100210000100000001003F0023003F0045000000F6 +:100220000100400024002D000000010001004100F9 +:1002300025002E000000AB000100420026002F0028 +:100240000000AA0001004300270030000050A90070 +:10025000010044002A0031000100AE00000001004E +:100260003502010001000100000001001E023A00F9 +:1002700040000100010001001F023B00410001009D +:100280000100010020023C004200010001000100C9 +:1002900021023D00430001000100010022023E0056 +:1002A0004400000001000100010000000100000006 +:1002B0000100010001000000010000000100010038 +:1002C00023023F00450000000100010024022D022E +:1002D000000001000100010025022E020000AB0019 +:1002E0000100010026022F020000AA000100010007 +:1002F000270230020050A900010001002A0031024B +:100300000100AE00000016034500720067006F0098 +:1003100044006F007800200045005A0000001603DA +:100320004500720067006F0044006F0078002000F5 +:1003300045005A0000000403090409026D0004018D +:1003400000A0FA09040000010301010009211101C4 +:100350000001223F000705810308000A090401008B +:100360000103010200092111010001224D000705CE +:10037000820308000A0904020001030000000921A9 +:10038000110100012236000705830308000A090451 +:1003900003000103000000092111010001223900BE +:1003A000070584031000011201100100000008ED90 +:1003B000FE071301000102000105010906A1010564 +:1003C0000719E029E7150025019508750181020547 +:1003D000081901290595057501910295017503918B +:1003E0000105071900297715002501957875018108 +:1003F00002C005010980A101850216010026B7008F +:100400001A01002AB700751095018100C0050C097A +:1004100001A1018503160100269C021A01002A9CF5 +:1004200002751095018100C005010902A1010901B1 +:10043000A10005091901290515002501950575017A +:10044000810295017503810105010930093115818A +:10045000257F95027508810609381581257F95014C +:1004600075088106050C0A38021581257F950175EE +:10047000088106C0C005010906A101050719E02988 +:10048000E715002501950875018102950175088120 +:100490000105081901290595057501910295017558 +:1004A0000391010507190029FF150025FF95067521 +:1004B000088100C0000000000000000000000001F2 +:1004C0000204060A0F17202C3A4A5D71879DB3C7B4 +:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF +:1004E0003A2C20170F0A0604020100000000000049 +:1004F0000000000011241FBECFEFDAE0DEBFCDBF49 +:1005000004B603FE24C08091FB019091FC01A091F0 +:10051000FD01B091FE018730904BA740B04BB9F47C +:100520001092FB011092FC011092FD011092FE014D +:1005300014BE84B7877F84BF88E10FB6F894809398 +:100540006000109260000FBEE0E0FFE3099511E04B +:10055000A0E0B1E0EAE0F8E402C005900D92A43317 +:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0 +:10057000B107E1F70E94A60A0C9403240C94000032 +:100580001092B9008AE08093B800089594EA90939D +:10059000BC009091BC0097FFFCCF9091B900987F70 +:1005A000983021F0903111F081E008958093BB00E4 +:1005B00084E88093BC008091BC0087FFFCCF8091D1 +:1005C000B900887F883111F0803471F780E0089598 +:1005D00084E98093BC008091BC0084FDFCCF089529 +:1005E0008093BB0084E88093BC008091BC0087FFAF +:1005F000FCCF9091B900987F81E0983209F480E0B7 +:10060000089584E88093BC008091BC0087FFFCCFF4 +:100610008091BB00089580910101811115C080E493 +:100620000E94C6028093010181110CC082E10E94E8 +:10063000F00280930101811105C08FEF0E94F0024A +:10064000809301010E94E80284B1807F84B985B162 +:10065000807F85B98AB1837F8AB98BB1837F8BB95B +:100660003E98469808950E94C604809301010E9416 +:100670000B0380B38C7080BB81B3836F81BBA5E318 +:10068000B1E0E3E4F1E08EE08E0F11921D928E1343 +:10069000FCCF0C94B004BF92CF92DF92EF92FF9206 +:1006A0000F931F93CF93DF9380910101882379F0FB +:1006B000809134018F5F80933401811108C00E94C2 +:1006C000C60480930101811102C00E94580405E311 +:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407 +:1006E000E394F12CC730D10500F58091010181110F +:1006F00064C080E40E94C60280930101811112C08F +:1007000082E10E94F0028093010181110BC0C701B8 +:100710000C2E01C0880F0A94EAF780950E94F0021F +:10072000809301010E94E80248C0CA30A1F028F479 +:10073000C83059F0C93061F005C0CC3089F070F094 +:10074000CD3089F0209A289810C0219A29980DC0A0 +:10075000229A2A980AC0239A2B9807C0529A01C05D +:10076000539A5B9802C03E9A469890EA9A95F1F7A0 +:100770009FB1799902C082E001C080E091709D250F +:10078000982B7C9902C084E001C080E0892B7D9980 +:1007900002C038E001C030E0832B7E9902C020E126 +:1007A00001C020E0822B9FB19095991F9927991F36 +:1007B0009295990F907E892B0FC080910101811134 +:1007C00049C080E40E94C60280930101882379F128 +:1007D000B12C0E94E8028B2DF8019081981719F036 +:1007E0008083C09200010E940B0321960F5F1F4F70 +:1007F000CE30D10509F076CF80910001882361F1D8 +:10080000815080930001882339F08FE99FE00197A0 +:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F +:10082000CF01825F91919D938E13FCCF15C083E120 +:100830000E94F002809301018111CACF81E40E94DD +:10084000C602809301018111C3CF0E940103B82E1B +:10085000B094BFCF80E0C0CF0E94560481E0DF910A +:10086000CF911F910F91FF90EF90DF90CF90BF90AD +:100870000895E82FF0E0ED5BFE4F80810895089524 +:100880000F931F93CF93DF93C3E4D1E010E00C2FBD +:10089000025F899190E00E94F71A180F0C13F9CFAC +:1008A000812FDF91CF911F910F9108950C94260510 +:1008B00056985E9825982D9826982E9827982F98C8 +:1008C0008FEF90E0909389008093880090938B0045 +:1008D00080938A0090938D0080938C00259A2D9AA6 +:1008E0002FEF80E792E0215080409040E1F700C078 +:1008F0000000269A2E9A2FEF80E792E02150804048 +:100900009040E1F700C00000279A2F9A2FEF80E770 +:1009100092E0215080409040E1F700C0000025980F +:100920002D982FEF80E792E0215080409040E1F732 +:1009300000C0000026982E982FEF80E792E021500B +:1009400080409040E1F700C0000027982F9856980B +:100950005E9825982D9826982E9827982F98089578 +:1009600089EA8093800089E08093810024982C9804 +:100970003F988AB18F748AB96E98479A8BB1806B11 +:100980008BB9769A0E9458040C94250580E28093D6 +:1009900001018091510181110EC00E94C00281E0CD +:1009A000809351012FEF83ED90E3215080409040E0 +:1009B000E1F700C0000080E40E94C60280930101BC +:1009C00081112EC00E94F00280930101811128C084 +:1009D0000E94F00280930101811122C08FE30E94E6 +:1009E000F0028093010181111BC00E94E80280E4A3 +:1009F0000E94C60280930101811112C08CE00E9406 +:100A0000F0028093010181110BC00E94F0028093DB +:100A10000101811105C08FE30E94F0028093010162 +:100A20000E94E80280910101089561110BC0FC0150 +:100A30008281882321F085EE0E94061103C085EE95 +:100A40000E94CE1180E090E0089508956091BD016C +:100A50007091BE018091BF019091C0010E94031B63 +:100A600056985E9825982D9826982E9827982F9816 +:100A7000813019F0823021F00895259A2D9A089539 +:100A8000269A2E9A089581E0089581E008950C94A5 +:100A9000450508950F931F93CF93DF938C01FC01BD +:100AA000C081D181CE010E947C19BE010E94F30554 +:100AB000EC01B8010E944705882309F48DC0F801B4 +:100AC0008281882309F44AC080915D0181111FC091 +:100AD000C431F0E5DF0709F051C00E94490581E00B +:100AE00080935D010E949B1B90935C0180935B014E +:100AF0001092540110925601109255011092580113 +:100B00001092570110925A011092590165C08091BC +:100B10005B0190915C010E94A71B883C910570F4D9 +:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB +:100B3000D183C0838F5F809354014EC0C43880E559 +:100B4000D80721F0C538D04501F13AC0F8018281BB +:100B5000882341F01092520182E01EC0C438E0E5C3 +:100B6000DE0759F580915201811106C086E20E948C +:100B7000061186E20E94CE1182E01CC0C438F0E566 +:100B8000DF0741F3C538D045D9F4F80182818823C5 +:100B900031F01092530180E20E941D121DC080911D +:100BA0005301811106C087E20E94061187E20E946C +:100BB000CE1180E20E9424120FC0C538D04529F31F +:100BC00081E08093520180935301C801DF91CF915E +:100BD0001F910F910C94430580E0DF91CF911F91FD +:100BE0000F910895089596E0799FF001112494E5FE +:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F +:100C0000E25FFE4F859194910895880F991FFC0132 +:100C1000E657F040859194910895880F991FFC0143 +:100C2000E65FFE4F8591949108950F931F93CF93A4 +:100C3000DF93EC01811520E3920750F5C11580E2A6 +:100C4000D80708F0C3C0CB3BD10590F4C83AD10512 +:100C500008F06AC0C53AD10508F05BC0C430D105C0 +:100C600008F0D0C1219709F0CAC101E010E00AC222 +:100C7000CF3FD10511F008F0C5C1C03FD10508F044 +:100C8000A2C0CE01805E9109089708F4BBC1B7C12C +:100C9000C13090E5D90709F4A2C020F5C0318FE436 +:100CA000D80770F4C11590E4D90708F094C0C115B5 +:100CB00021E3D20708F0A3C1DD278E01106CE2C149 +:100CC000C115D04509F09BC10E9483148FEF94E3B6 +:100CD0002CE0815090402040E1F700C000000E94CD +:100CE000F61BD0C1C11597E5D90758F4C03121E5ED +:100CF000D20708F01CC1C43180E5D80708F475C0DC +:100D00007EC1CE0190578115904108F078C1DF7007 +:100D100073C1C53AD10509F477C1C63AD10509F0C6 +:100D200076C102E810E4AEC1C83AD10509F472C137 +:100D3000C93AD10509F471C1CA3AD10509F470C1A3 +:100D4000CB3AD10509F46FC1CC3AD10509F46EC193 +:100D5000CD3AD10509F46DC1C03BD10509F46CC190 +:100D6000CE3AD10509F46BC1CF3AD10509F46AC175 +:100D7000C13BD10509F469C1C23BD10509F468C181 +:100D8000C33BD10509F467C1C43BD10509F466C171 +:100D9000C53BD10509F465C1C63BD10509F464C161 +:100DA000C73BD10509F463C1C83BD10509F462C151 +:100DB000C93BD10509F461C1CA3BD10509F460C141 +:100DC00000E014E45FC18E0110655CC1CE019F702C +:100DD0000E940D0658C1DF708E01106A53C18091C8 +:100DE000DA0181608093DA014DC10E949B1D81115F +:100DF00002C00E94811D0E94B81D90E09093FB01EB +:100E00008093FA01C23080E5D80721F48091FA017D +:100E1000816086C0C43090E5D90721F48091FA0141 +:100E200082607EC0C63020E5D20721F48091FA01AD +:100E3000846076C0C83080E5D80719F48091FA0143 +:100E400027C0CA3090E5D90721F48091FA0180616A +:100E500067C0CC3020E5D20721F48091FA0180628E +:100E60005FC0CE3080E5D80721F48091FA0180641C +:100E700057C0C03190E5D90721F48091FA0180680C +:100E80004FC0C23120E5D20729F48091FA01846075 +:100E9000886046C0C33080E5D80721F48091FA010C +:100EA0008E7F3EC0C53090E5D90721F48091FA01CC +:100EB0008D7F36C0C73020E5D20721F48091FA013A +:100EC0008B7F2EC0C93080E5D80719F48091FA01D4 +:100ED00026C0CB3090E5D90721F48091FA018F7EAE +:100EE0001FC0CD3020E5D20721F48091FA018F7D1B +:100EF00017C0CF3080E5D80721F48091FA018F7BAD +:100F00000FC0C13190E5D90721F48091FA018F77A4 +:100F100007C0C331D04531F48091FA018B7F877FC0 +:100F20008093FA018091FA010E94BC1DABC08D2F05 +:100F300099278F70992781309105D9F49E012370EC +:100F4000332702C0880F991F2A95E2F79C688E010B +:100F500044E0000F111F4A95E1F700271370802B22 +:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA +:100F70002FC08230910531F4DC2FCC278E01016F18 +:100F8000106A80C08330910569F4CE01837099277F +:100F900001E010E002C0000F111F8A95E2F7C801BE +:100FA0009C680FC084309105B9F4CE0183709927F5 +:100FB00001E010E002C0000F111F8A95E2F7C8019E +:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029 +:100FD0008C010C2B1D2B56C08530910531F4DC2F74 +:100FE000CC278E01046F106A4DC0069709F04AC0E5 +:100FF000CF71DD27DC2FCC278E01106243C000E0CB +:1010000010E040C08E013EC001E810E43BC003E8A0 +:1010100010E438C002EE14E435C009EE14E432C026 +:101020000AEE14E42FC005EB14E42CC006EB14E424 +:1010300029C007EB14E426C00CEC14E423C00DEC2B +:1010400014E420C003E815E41DC00AE815E41AC042 +:1010500002E915E417C004E915E414C001E216E43E +:1010600011C003E216E40EC004E216E40BC005E270 +:1010700016E408C006E216E405C007E216E402C062 +:101080000AE216E4C801DF91CF911F910F910895F4 +:1010900096E0799FF001112494E5899FE00DF11D00 +:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149 +:1010B0009491803E9105E0F4803C910558F5813390 +:1010C000910509F46FC048F48932910509F463C0B1 +:1010D0008A32910509F46DC072C089339105E9F037 +:1010E00082389105D1F08533910509F44DC067C070 +:1010F000833E910581F138F4803E9105B9F0823E3E +:101100009105D9F05CC0863E910561F1873E91055D +:10111000A1F155C00E94050608952091FA0120FD15 +:1011200002C021FF4CC080EE90E049C08091FA01DE +:1011300080FFF9CF89E390E042C08091FA0182FFFD +:101140000EC08091FA0184FF03C080E090E037C0B8 +:1011500083EE90E034C08091FA0182FFF2CF82EEFC +:1011600090E02DC08091FA0183FF0BC08091FA01BD +:1011700084FDEBCF87EE90E022C08091FA0183FFDF +:10118000F5CF86EE90E01BC08091FA0185FF07C085 +:1011900089E290E014C08091FA0185FFF9CF85E3E0 +:1011A00090E00DC08091FA0186FF07C08AE290E0CE +:1011B00006C08091FA0186FFF9CF81E390E00E949A +:1011C0001506089508950C94E20880916E01089523 +:1011D000CF93DF9300D01F92CDB7DEB79C018091F3 +:1011E000F101843019F593E099833B832A8390932E +:1011F000E9008FEF9091E800815095FD06C095EDD4 +:101200009A95F1F700008111F5CF8091E80085FFF4 +:101210000DC040E050E063E070E0CE0101960E9416 +:10122000520B8091E8008E778093E8000F900F902A +:101230000F90DF91CF910895CF93DF9300D01F924D +:10124000CDB7DEB72091F101243021F522E02983CA +:101250009B838A8383E08093E9008FEF9091E8007D +:10126000815095FD06C095ED9A95F1F7000081112A +:10127000F5CF8091E80085FF0DC040E050E063E0CD +:1012800070E0CE0101960E94520B8091E8008E77AB +:101290008093E8000F900F900F90DF91CF91089509 +:1012A0002091F1012430F1F422E02093E9002FEFA6 +:1012B0003091E800215035FD06C035ED3A95F1F743 +:1012C00000002111F5CF2091E80025FF0BC040E080 +:1012D00050E065E070E00E94520B8091E8008E774C +:1012E0008093E8000895CF93DF93EC019091F10192 +:1012F000943009F046C080910C018823D9F0809188 +:101300000D018823B9F09093E9008FEF9091E800E8 +:10131000815095FD06C095E19A95F1F70000811185 +:10132000F5CF8091E80085FF2CC040E050E060E1FF +:1013300070E017C081E08093E9008FEF9091E800A2 +:10134000815095FD06C095ED9A95F1F70000811149 +:10135000F5CF8091E80085FF14C040E050E068E0E0 +:1013600070E0CE010E94520B8091E8008E7780934E +:10137000E80080E1FE01AEE5B1E001900D928A95B2 +:10138000E1F7DF91CF9108958091F001811109C0BB +:101390000E94E70C0E94440D8091E20084608093DB +:1013A000E20008951092F001089508950C942B2204 +:1013B0000E948C1B0E9431220E94EA0F0C94E308C9 +:1013C00042E061EC81E00E94610C42E061EC82E06D +:1013D0000E94610C42E061EC83E00E94610C42E1FA +:1013E00061EC84E00C94610C8091F301833009F48A +:1013F00055C030F4813071F0823009F48EC0089508 +:101400008A3009F47AC08B3009F460C0893009F061 +:101410009CC020C08091F201813A09F096C0809171 +:10142000E800877F8093E8008091F6019091F701B2 +:10143000892B21F460E18EE591E003C060E080E05B +:1014400090E070E00E949D0B8091E8008B77809384 +:10145000E80008958091F201813209F076C0809110 +:10146000F6019091F701009719F0039709F06DC00C +:101470008091E800877F8093E8008091E80082FDFA +:1014800005C08091F1018111F8CF5FC08091F1001A +:1014900080936E018091E8008B7753C08091F201B8 +:1014A000813A09F052C08091F6019091F701892BA1 +:1014B00009F04BC08091E800877F8093E80080911D +:1014C000E80080FFFCCF80910C0136C08091F201D2 +:1014D0008132D9F58091F6019091F701892BA9F518 +:1014E0008091E800877F8093E8000E94960C8091AD +:1014F000F40180930C010C9483148091F2018132E9 +:1015000021F58091E800877F8093E8000E94960C87 +:101510008091F50180936F0108958091F201813AE5 +:10152000A1F48091E800877F8093E8008091E80033 +:1015300080FFFCCF80916F018093F1008091E800E3 +:101540008E778093E8000C94960C089584B7877F7B +:1015500084BF88E10FB6F894809360001092600019 +:101560000FBE90E080E80FB6F894809361009093EE +:1015700061000FBE0E9439100E94E70C0E94440DCA +:101580008091E20084608093E20078940E94CA0F08 +:101590000E943B1082E091E00E94E50F0E94192218 +:1015A0008091F101853069F40E94531B8091EF0115 +:1015B0008823B1F30E947E1B882391F30E943C0B89 +:1015C000EFCF0E944110ECCF292F33272330310574 +:1015D000C9F064F42130310581F02230310509F081 +:1015E00043C08DE690E02AE333E042C0213231056A +:1015F000F1F02232310541F137C082E190E027EA73 +:1016000033E036C099278130910541F08230910551 +:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4 +:1016200002C0E6E0F3E0849190E09F0121C06430C5 +:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5 +:10164000318189E090E014C0643070F470E0FB01F7 +:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47 +:10166000FE4F808190E004C080E090E020E030E018 +:10167000FA0131832083089580E189BD82E189BD2B +:1016800009B400FEFDCF8091D8008F7D8093D800F3 +:101690008091E00082608093E0008091E00081FD15 +:1016A000FCCF0895CF92DF92EF92FF920F931F939A +:1016B000CF93DF93EC018B016A010E94B50C81117D +:1016C00033C0C114D10439F0F60180819181081B27 +:1016D000190BC80FD91FE12CF12C0115110519F1B7 +:1016E0008091E80085FD16C08091E8008E77809398 +:1016F000E800C114D10449F0F60180819181E80E1F +:10170000F91EF182E08285E00FC00E94B50C8823AB +:1017100021F30AC089918093F10001501109FFEF74 +:10172000EF1AFF0ADACF80E0DF91CF911F910F917E +:10173000FF90EF90DF90CF9008952091F8013091C5 +:10174000F9012617370748F06115710539F4209122 +:10175000E8002E772093E80001C0B90140E0611550 +:101760007105A9F12091F101222309F443C025302C +:1017700009F442C02091E80023FD40C02091E80018 +:1017800022FD32C02091E80020FFE9CF4091F30014 +:101790002091F20030E0342BFC01CF01611571057E +:1017A00059F02830310540F481918093F100615067 +:1017B00071092F5F3F4FF1CF41E02830310509F02B +:1017C00040E02091E8002E772093E800C8CF411137 +:1017D000C9CF0AC08091F101882361F0853061F0A2 +:1017E0008091E80083FD0AC08091E80082FFF2CF7B +:1017F00080E0089582E0089583E0089581E00895EF +:101800002091F8013091F9012617370748F061154A +:10181000710539F42091E8002E772093E80001C08B +:10182000B901FC0120E06115710591F18091F10190 +:10183000882309F440C0853009F43FC08091E80056 +:1018400083FD3DC08091E80082FD2FC08091E800BB +:1018500080FFE9CF2091F3008091F20090E0922B7D +:101860006115710559F08830910540F42491209359 +:10187000F1003196615071090196F2CF21E008978D +:1018800009F020E08091E8008E778093E800CBCFCC +:101890002111CCCF0AC08091F101882361F08530FD +:1018A00061F08091E80083FD0AC08091E80082FF2A +:1018B000F2CF80E0089582E0089583E0089581E00A +:1018C0000895982F973058F59093E900981739F0BC +:1018D0007091EC002091ED005091F00003C0242F96 +:1018E000762F50E021FF19C03091EB003E7F3093FE +:1018F000EB003091ED003D7F3093ED003091EB0037 +:1019000031603093EB007093EC002093ED00509326 +:10191000F0002091EE0027FF07C09F5FD3CF8F70AC +:101920008093E90081E0089580E008958091F201BC +:1019300087FF11C08091E80082FD05C08091F10110 +:101940008111F8CF11C08091E8008B770BC0809196 +:10195000F101882349F08091E80080FFF8CF809161 +:10196000E8008E778093E80008952091E40030919C +:10197000E50095E64091EC00842F817040FF22C085 +:101980008091E80080FD1CC08091F101882391F0D6 +:10199000853091F08091EB0085FD10C04091E4000E +:1019A0005091E5004217530729F39A01915011F71E +:1019B00084E0089582E0089583E0089581E0089529 +:1019C00080E008954091E80042FFDECF08950E9434 +:1019D000550D0E945D0DE0EEF0E080818160808316 +:1019E000E8EDF0E080818F77808319BCA7EDB0E04F +:1019F0008C918E7F8C9380818F7E80831092F001FA +:101A000008950F931F93CF93DF930E94550D0E946B +:101A10005D0DC8EDD0E088818F77888388818068EC +:101A2000888388818F7D888319BC1092F101109280 +:101A3000ED011092EF011092EE0100EE10E0F801BE +:101A400080818B7F808388818160888342E060E031 +:101A500080E00E94610CE1EEF0E080818E7F808367 +:101A6000E2EEF0E080818160808380818860808305 +:101A7000F80180818E7F8083888180618883DF91F7 +:101A8000CF911F910F910895E8EDF0E080818F7E56 +:101A90008083E7EDF0E080818160808384E082BF15 +:101AA00081E08093F0010C94010DE8EDF0E080817D +:101AB0008E7F80831092E20008951092DA001092D7 +:101AC000E10008951F920F920FB60F9211242F93E9 +:101AD0003F934F935F936F937F938F939F93AF93B6 +:101AE000BF93EF93FF938091E10082FF0BC0809141 +:101AF000E20082FF07C08091E1008B7F8093E100CC +:101B00000E94C90F8091DA0080FF1FC08091D80029 +:101B100080FF1BC08091DA008E7F8093DA00809175 +:101B2000D90080FF0DC080E189BD82E189BD09B483 +:101B300000FEFDCF81E08093F1010E94C40905C041 +:101B400019BC1092F1010E94D2098091E10080FF3E +:101B500019C08091E20080FF15C08091E2008E7F65 +:101B60008093E2008091E20080618093E2008091A6 +:101B7000D80080628093D80019BC85E08093F10181 +:101B80000E94D6098091E10084FF30C08091E2007C +:101B900084FF2CC080E189BD82E189BD09B400FECB +:101BA000FDCF8091D8008F7D8093D8008091E10097 +:101BB0008F7E8093E1008091E2008F7E8093E2002F +:101BC0008091E20081608093E2008091ED018823A2 +:101BD00011F084E007C08091E30087FD02C081E03E +:101BE00001C083E08093F1010E94D8098091E10057 +:101BF00083FF29C08091E20083FF25C08091E1002E +:101C0000877F8093E10082E08093F1011092ED01E3 +:101C10008091E1008E7F8093E1008091E2008E7FD1 +:101C20008093E2008091E20080618093E20042E0D4 +:101C300060E080E00E94610C8091F00088608093F9 +:101C4000F0000E94D509FF91EF91BF91AF919F9154 +:101C50008F917F916F915F914F913F912F910F9055 +:101C60000FBE0F901F9018951F920F920FB60F92F4 +:101C700011242F933F934F935F936F937F938F9391 +:101C80009F93AF93BF93CF93DF93EF93FF93C09155 +:101C9000E900CF708091EC00D82FD17080FDD0E8A2 +:101CA0001092E9008091F000877F8093F000789493 +:101CB0000E94780E1092E9008091F0008860809375 +:101CC000F000CD2BCF70C093E900FF91EF91DF9131 +:101CD000CF91BF91AF919F918F917F916F915F91C4 +:101CE0004F913F912F910F900FBE0F901F9018951D +:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3 +:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115 +:101D1000F10091938E13FBCF0E94F4098091E800AB +:101D200083FF1FC18091F2019091F301492F50E090 +:101D30004A30510508F015C1FA01EA5AFF4F0C94D8 +:101D4000B323803881F0823809F00BC18091F6010D +:101D50008F708093E9008091EB0085FB882780F9E4 +:101D60001092E90006C08091EE019091EF0191116F +:101D700082609091E800977F9093E8008093F10053 +:101D80001092F100C8C0282F2D7F09F0EAC08823E7 +:101D900019F0823061F0E5C08091F401813009F0E2 +:101DA000E0C0933009F080E08093EF012BC0809178 +:101DB000F401811127C08091F6018F7009F4D1C020 +:101DC0008093E9002091EB0020FF1CC0933021F4A8 +:101DD0008091EB00806214C09091EB009061909331 +:101DE000EB0021E030E0A90102C0440F551F8A95A5 +:101DF000E2F74093EA001092EA008091EB008860DD +:101E00008093EB001092E9008091E800877F86C004 +:101E10008111A7C01091F4011F778091E3008078B1 +:101E2000812B8093E3008091E800877F8093E80016 +:101E30000E94960C8091E80080FFFCCF8091E30027 +:101E400080688093E300111102C082E001C083E04A +:101E50008093F10186C08058823008F082C0809162 +:101E6000F4019091F5018C3D53E0950779F583E0FD +:101E70008A838AE289834FB7F894DE01139620E0C3 +:101E80003EE051E2E32FF0E050935700E49120FF51 +:101E900003C0E295EF703F5FEF708E2F90E0EA3065 +:101EA00010F0C79601C0C0968D939D932F5F24318B +:101EB00049F74FBF8091E800877F8093E8006AE28E +:101EC00070E0CE0101960E949D0B14C0AE014F5FE1 +:101ED0005F4F6091F6010E94E40ABC01009709F48B +:101EE00040C09091E800977F9093E80089819A81A3 +:101EF0000E94000C8091E8008B778093E80031C04D +:101F0000803879F58091E800877F8093E8008091A0 +:101F1000ED018093F1008091E8008E778093E800D6 +:101F20000E94960C1EC081111CC09091F401923049 +:101F3000C0F48091E800877F8093E8009093ED01E2 +:101F40000E94960C8091ED01811106C08091E30002 +:101F500087FD02C081E001C084E08093F1010E940E +:101F6000E0098091E80083FF0AC08091E800877F44 +:101F70008093E8008091EB0080628093EB00AA964A +:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A +:101F900008950895CF938091F1018823A1F0C09115 +:101FA000E900CF709091EC00892F817090FD80E85E +:101FB000C82B1092E9008091E80083FD0E94780E02 +:101FC000CF70C093E900CF910895909375018093ED +:101FD00074010895E0917401F0917501309721F03A +:101FE0000190F081E02D099480E00895E091740162 +:101FF000F0917501309721F00280F381E02D099472 +:102000000895E0917401F0917501309721F00480FA +:10201000F581E02D099408952091720130917301AA +:102020008217930771F09093730180937201E0918E +:102030007401F0917501309721F00680F781E02D51 +:1020400009940895209170013091710182179307CE +:1020500071F09093710180937001E0917401F0919F +:102060007501309721F00084F185E02D09940895E1 +:1020700008950C9438100E94921B0E9433030C9414 +:10208000541C9F92AF92BF92CF92DF92EF92FF9239 +:102090000F931F93CF93DF9300D000D000D0CDB724 +:1020A000DEB70E944B030DE010E0AA24A394B12CEC +:1020B000902E802F0E943904980129583E4F6901C3 +:1020C000F901F080F826A1F40150110988F78FEF8B +:1020D00089838A831B820E949B1B8160782F9D834A +:1020E0008C8349815A816B818D810E94D8102FC0C9 +:1020F0009091DA0191FF04C08E830E943F048E818B +:1021000025E030E0A501022E01C0440F0A94EAF751 +:10211000E42E4F21C1F029839A828E2191E009F4A7 +:1021200090E09B830E949B1B8160782F9D838C8312 +:1021300049815A816B818D810E94D810F60180817E +:10214000E826E08204C021503109E0F6BDCF0E94AC +:102150003B1F109176010E94EA0F1817B9F00E94F8 +:10216000EA0F8093760126960FB6F894DEBF0FBE75 +:10217000CDBFDF91CF911F910F91FF90EF90DF9036 +:10218000CF90BF90AF909F900C94E30826960FB627 +:10219000F894DEBF0FBECDBFDF91CF911F910F919D +:1021A000FF90EF90DF90CF90BF90AF909F900895F9 +:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82 +:1021C0000FBECDBF4F83588769877A878B87DE0123 +:1021D000119686E0FD0111928A95E9F785E0FE01EE +:1021E000379601900D928A95E1F749815A816B816A +:1021F0007C818D819E810E9421172B960FB6F894C9 +:10220000DEBF0FBECDBFDF91CF910895CF9388235E +:1022100009F4C2C0C82F823859F40E94EA0F81FD28 +:10222000BBC089E30E94FB190E94C81A89E30CC055 +:10223000833879F40E94EA0F80FDAEC083E50E94E6 +:10224000FB190E94C81A83E50E943D1ACF910C9495 +:10225000C81A843859F40E94EA0F82FD9DC087E4B1 +:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6 +:10227000813A48F48C2F0E947E2181118DC08C2FD1 +:102280000E94FB19E3CF80E28C0F883048F4C770BE +:1022900081E001C0880FCA95EAF70E94811AD6CF63 +:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB +:1022B00083E890E005C081E890E002C082E890E009 +:1022C000CF910C940C1088E58C0F833108F064C01A +:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118 +:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186 +:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106 +:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173 +:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB +:1023200038C082EE90E035C089EE90E032C08AEE8F +:1023300090E02FC085EB90E02CC086EB90E029C0A8 +:1023400087EB90E026C08CEC90E023C08DEC90E011 +:1023500020C083E891E01DC08AE891E01AC082E9BC +:1023600091E017C084E991E014C081E292E011C0CD +:1023700083E292E00EC084E292E00BC085E292E03C +:1023800008C086E292E005C087E292E002C08AE2DD +:1023900092E0CF910C942210CF910895882309F4F4 +:1023A0004BC0823859F40E94EA0F81FF45C089E38F +:1023B0000E94FB190E94C81A89E30CC0833871F48B +:1023C0000E94EA0F80FF38C083E50E94FB190E943B +:1023D000C81A83E50E943D1A0C94C81A843859F42F +:1023E0000E94EA0F82FF28C087E40E94FB190E9426 +:1023F000C81A87E4EFCF9CEF980F913A58F390E218 +:10240000980F983050F4877091E001C0990F8A9529 +:10241000EAF7892F0E94871ADFCF9BE5980F933048 +:1024200020F480E090E00C940C10885A833120F462 +:1024300080E090E00C9422100895882321F00E94FF +:10244000811A0C94C81A0895882321F00E94871AD3 +:102450000C94C81A08957F928F929F92AF92BF9268 +:10246000CF92DF92EF92FF920F931F93CF93DF9360 +:102470001F92CDB7DEB77C01C62E772EFC010581F9 +:1024800002950F70128111110E949E1A0E94F41978 +:10249000882379F0112369F080E28C0D883048F0B0 +:1024A00082E00E94DD190E94F41991E0D82ED9260D +:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C +:1024C0000C94B323872D807F072D0F70882311F084 +:1024D0000295007F112389F0002309F490C180E266 +:1024E0008C0D883020F4802F0E94811A03C0802F29 +:1024F0000E94911A0E94C81A82C18C2D0E94CE118E +:10250000002309F495C180E28C0D883020F4802FDF +:102510000E94871A03C0802F0E94971A0E94C81A2F +:1025200087C1972D907F872D8F70903211F0829503 +:10253000807FCC2021F0F1E0CF16B1F01EC0112336 +:1025400049F0002309F414C1013009F011C10E94BF +:10255000B11A6EC1002319F0013009F469C18983F1 +:102560000E94B41A89810AC1112321F0023008F0B7 +:102570005FC1FEC001115CC101C1112321F0002324 +:1025800009F4F6C03CC1002309F4F8C03EC1872D10 +:1025900086958695837090E0009719F0019761F019 +:1025A00047C1112321F08C2D972D937002C080E03C +:1025B00090E00E940C103CC1112321F08C2D972D2E +:1025C000937002C080E090E00E94221031C18C2DF7 +:1025D000112319F00E94431E02C00E94AB1E0E94EC +:1025E000301F26C1872D837009F052C0111120C100 +:1025F0008C2D829586958770880F880F9C2D9F70F3 +:10260000892E912CA12CB12C082E04C0880C991C69 +:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041 +:1026200020E030E0B901A80104C0440F551F661F27 +:10263000771F8A95D2F7CB01BA0160957095809586 +:10264000909503C060E070E0CB01272D269526957C +:10265000237030E02230310569F02330310589F0F4 +:10266000682979298A299B292130310571F00E9436 +:102670006918DEC0682979298A299B290E94851852 +:10268000D7C00E946918C501B4010E944D18D0C07E +:10269000112319F0872D817001C08695882309F4D4 +:1026A000C7C08C2D829586958770880F880F9C2DCA +:1026B0009F70892E912CA12CB12C082E04C0880C5F +:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC +:1026D00010E020E030E0B901A80104C0440F551F0C +:1026E000661F771F8A95D2F7CB01BA016095709566 +:1026F0008095909503C060E070E0CB01272D269572 +:1027000026952370422F50E04230510569F0433046 +:10271000510589F0682979298A299B294130510579 +:1027200071F00E94431984C0682979298A299B295C +:102730000E945F197DC00E944319C501B4010E9427 +:10274000271976C08C2D90E0FC01E05EF109E5319F +:10275000F10508F050C0E059FF4F0C94B3230C2D45 +:102760000F70872D8F71112331F00E94C018802FB8 +:102770000E941D125DC00E94E118802F0E94241249 +:1027800057C0112339F0011153C0872D8F710E945A +:1027900006194EC0023008F04BC0F7CF112339F0B4 +:1027A000872D8F710E94C01843C01123C9F3872D54 +:1027B0008F710E94E1183CC0112329F0872D8F7181 +:1027C0000E94AB1835C00E94A11832C0112351F0ED +:1027D000172D1F71812F0E94C01863E0812F0E9466 +:1027E000D41926C081E00E94DD19023008F182E090 +:1027F0000E94DD191DC0112331F0002389F28C2DB8 +:102800000E94061115C0002391F28C2D0E94CE115A +:102810000FC0472D4F706C2DC7010E9415050E94F7 +:10282000C51706C0472D4F706C2DC7010E94F205D9 +:10283000DD20F9F00E94D01980FD1BC0F701128243 +:102840000E94CA190E94C018C7010E9448140E9421 +:10285000CA190F90DF91CF911F910F91FF90EF90C8 +:10286000DF90CF90BF90AF909F908F907F900C940F +:10287000E1180F90DF91CF911F910F91FF90EF9092 +:10288000DF90CF90BF90AF909F908F907F900895F2 +:102890000F931F93CF93DF93EC01888199812B8154 +:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B +:1028B0000E944A05882371F0688179818A810E948B +:1028C000C6198C010E947B190E944218B801CE01E2 +:1028D0000E942B12DF91CF911F910F9108950E94BA +:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471 +:1028F000E11F0E94301F80E090E00E940C1080E0F9 +:1029000090E00C9422100E948E1A0C946F140E9476 +:10291000BB19292F22952F7030E02C3031054CF453 +:102920002A3031056CF42250310922303105A8F4E7 +:1029300007C02C30310569F02F30310551F00DC042 +:10294000803F69F018F4803E40F409C0843F29F4C8 +:1029500006C093FB882780F9089580E0089581E000 +:102960000895CF93DF9300D000D01F92CDB7DEB78C +:102970000F900F900F900F900F90DF91CF910895CF +:10298000CF93DF9300D000D000D0CDB7DEB726962E +:102990000FB6F894DEBF0FBECDBFDF91CF91089583 +:1029A0001F93CF93DF93C091850116E0809186013C +:1029B000C81799F0D0E01C9FF0011D9FF00D112465 +:1029C000E957FE4F408151816281738184819581F5 +:1029D0000E94C0142196C770E9CFDF91CF911F915B +:1029E00008954091B7015091B8016091B90170917B +:1029F000BA018091BB019091BC010C94C0148091EC +:102A0000BC0182958F7009F054C08091B901882370 +:102A100009F44FC080918501A09186016091B701B2 +:102A20007091B8014091BA015091BB01B6E08A178C +:102A300009F43FC090E041155105C1F17F3F11F409 +:102A40006F3FA1F1B89FF001B99FF00D1124E95734 +:102A5000FE4F218172132AC02081621327C0228178 +:102A6000211124C0238134812417350710F421500B +:102A70003109241B350B283C3105C0F42091BC01E1 +:102A80002F7020612093BC0126E0289FF001299F30 +:102A9000F00D1124E457FE4F80818F708061808398 +:102AA00087EB91E00E9448140C94D0140196877033 +:102AB000BECF0895CF92DF92EF92FF920F931F93B4 +:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32 +:102AD0000FBECDBF8C0185E0F801DE011D9601908F +:102AE0000D928A95E1F7D8014C9111965C9111975E +:102AF00012966C9112971396CD90DC9014973091AA +:102B0000B7017091B8018091BA019091BB01009713 +:102B100009F46BC17F3F19F43F3F09F466C1E090AF +:102B2000B901EE2009F4C0C02091BC01C816D90635 +:102B300028F0F601E81BF90BCF0104C080959095B1 +:102B40008C0D9D1DFF24F394883C910578F0F12CA9 +:102B5000207F09F0C6C07C2DD98AC88A89890E9445 +:102B6000B11487EB91E00E944814B1C0822F807F9E +:102B700009F046C0751314C0341312C0611110C09F +:102B80002F7020612093BC010E94F11487EB91E02B +:102B90000E9448148091BC01D80115968C932EC0D8 +:102BA000CD2819F15F3F11F44F3FF9F0F62E611176 +:102BB0001CC0809185012091860136E0821709F4BE +:102BC0005AC090E0389FF001399FF00D1124E95769 +:102BD000FE4F7181571306C07081471303C0728185 +:102BE000711103C001968770E9CFF62E662309F4B0 +:102BF00018C18091BC0181608093BC01F12C11C18E +:102C0000751308C0341306C0611104C08091BC0163 +:102C1000D801C3C04D875E878D859E856A8B0E94D3 +:102C200087146A898823E1F16623D1F12091BC01E0 +:102C3000822F82958F7090E0029774F08091B70197 +:102C40009091B80198878F831986DB86CA862C8776 +:102C5000CE0107960E94481486E0F801A7EBB1E088 +:102C600001900D928A95E1F70E94FF140E94F114E1 +:102C7000FF24F394D6C04D875E878D859E850E9484 +:102C8000BB19292F22952F7030E0223031050CF02E +:102C9000BCC09F7009F0B6C0805E883008F4C1C027 +:102CA000C8010E944814E4CFC816D90608F453C0DE +:102CB000F601E81BF90BCF01883C910508F450C0E0 +:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E +:102CD000F1E086E0DF011D928A95E9F70E94F11488 +:102CE000A0C0751314C0341312C0611110C08091BC +:102CF000BC01F8018583C8010E94481486E0E7EB17 +:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C +:102D10005E878D859E856A8B0E9487146A898823C9 +:102D200009F4BECF662309F4BBCF2091BC01822FEA +:102D300082958F7090E002970CF48ECF8091B7014E +:102D40009091B8019A8389831B82DD82CC822E8385 +:102D5000CE0101967FCF809590958C0D9D1DACCFB7 +:102D6000F62E662309F49CCF75132EC034132CC0A5 +:102D70002091BC0120FD1FC0822F82958F70D9F059 +:102D8000D80115962C9315978F3049F08F5F982FA7 +:102D90009295907F822F8F70892B15968C93C80106 +:102DA0000E94481486E0F801A7EBB1E001900D9273 +:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7 +:102DC0000D928A95E1F72DC04D875E878D859E8592 +:102DD0000E948714811140CF8091BC018160809353 +:102DE000BC01C8010E9448141CC0662309F458CFD6 +:102DF0004D875E878D859E850E948714882309F400 +:102E00004FCF2ACF811148CF0CC0243031050CF0B0 +:102E100047CF9F7009F440CFF8019581907F09F06A +:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D +:102E3000DF91CF911F910F91FF90EF90DF90CF9096 +:102E400008951F93CF93DF93CDB7DEB72C970FB6BE +:102E5000F894DEBF0FBECDBF4F83588769877A874E +:102E60008B879C87CE0107960E945A15882369F0AC +:102E70008F8198852A853B85232BF1F19F3F09F0AF +:102E800063C08F3F09F060C037C086E0FE0137960F +:102E9000DE01119601900D928A95E1F76F81788598 +:102EA000EA85FB85309741F17F3F11F46F3F21F1B7 +:102EB0002091860130E0C9010196877099274091E1 +:102EC000850150E08417950709F447C069837A8328 +:102ED000FD83EC8396E0929FD001939FB00D112467 +:102EE000A957BE4FFE01319601900D929A95E1F7D8 +:102EF000809386010E94D01416E080918501909104 +:102F000086018917C1F1189FC001112489579E4F6E +:102F10000E945A15882379F1E09185011E9FF001E6 +:102F20001124E957FE4F4081518162817381848170 +:102F300095810E94C0148091850190E00196877070 +:102F4000992780938501D9CF4F81588569857A85E6 +:102F50008B859C850E94C014CFCF0E948314109251 +:102F6000860110928501E7EBF1E086E0DF011D921A +:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45 +:102F8000CDBFDF91CF911F910895EF92FF920F93E4 +:102F90001F93CF93DF938C01009709F46CC0F12C41 +:102FA000EE24E394E8012196F8018491843740F4FB +:102FB000843008F051C0813081F0823019F15BC05B +:102FC000853709F444C0A8F19CE7980F903708F0C2 +:102FD00052C08F770E94CE1141C00E5F1F4FFE017D +:102FE000C49180E28C0F883048F4C7708E2D01C0E8 +:102FF000880FCA95EAF70E94A11A14C08C2F0E946C +:1030000006112DC00E5F1F4FFE01C49180E28C0F90 +:10301000883058F4C7708E2D01C0880FCA95EAF722 +:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3 +:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3 +:103040009FE00197F1F700C00000C150F6CF0E5F7E +:103050001F4FFE01F49003C00E9406118E018F2DB8 +:10306000882309F49FCFEFE9FFE03197F1F700C023 +:1030700000008150F5CFDF91CF911F910F91FF900C +:10308000EF90089508956093C1017093C2018093F9 +:10309000C3019093C4010C946F140F931F9300917C +:1030A000C1011091C2012091C3013091C401DC0122 +:1030B000CB01802B912BA22BB32B8093C10190933A +:1030C000C201A093C301B093C4011F910F910C944E +:1030D0006F140F931F930091C1011091C2012091B1 +:1030E000C3013091C401DC01CB0180239123A223D1 +:1030F000B3238093C1019093C201A093C301B09305 +:10310000C4011F910F910C946F140F931F930091A2 +:10311000C1011091C2012091C3013091C401DC01B1 +:10312000CB0180279127A227B3278093C1019093D9 +:10313000C201A093C301B093C4011F910F910C94DD +:103140006F141092BD011092BE011092BF01109237 +:10315000C0010C946F1441E050E060E070E004C0E6 +:10316000440F551F661F771F8A95D2F74093BD0104 +:103170005093BE016093BF017093C0010C946F1413 +:1031800041E050E060E070E004C0440F551F661F4E +:10319000771F8A95D2F78091BD019091BE01A091D1 +:1031A000BF01B091C001482B592B6A2B7B2B409358 +:1031B000BD015093BE016093BF017093C0010C9498 +:1031C0006F1441E050E060E070E004C0440F551F10 +:1031D000661F771F8A95D2F7409550956095709538 +:1031E0008091BD019091BE01A091BF01B091C0013D +:1031F000482359236A237B234093BD015093BE018A +:103200006093BF017093C0010C946F1441E050E0D3 +:1032100060E070E004C0440F551F661F771F8A9559 +:10322000D2F78091BD019091BE01A091BF01B091F4 +:10323000C001482759276A277B274093BD01509337 +:10324000BE016093BF017093C0010C946F140F9383 +:103250001F930091BD011091BE012091BF013091DB +:10326000C001DC01CB01802B912BA22BB32B8093CF +:10327000BD019093BE01A093BF01B093C0011F9107 +:103280000F910C946F140F931F930091BD01109137 +:10329000BE012091BF013091C001DC01CB01802330 +:1032A0009123A223B3238093BD019093BE01A093E9 +:1032B000BF01B093C0011F910F910C946F140F9335 +:1032C0001F930091BD011091BE012091BF0130916B +:1032D000C001DC01CB0180279127A227B32780936F +:1032E000BD019093BE01A093BF01B093C0011F9197 +:1032F0000F910C946F140895CF92DF92EF92FF928A +:103300000F931F93CF93DF938C01C090C101D09096 +:10331000C201E090C301F090C4018091BD01909181 +:10332000BE01A091BF01B091C001C82AD92AEA2AE2 +:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520 +:10334000A795979587950A94D2F780FF06C0B80194 +:103350008C2F0E944808019721F4219760F780E0A4 +:1033600001C08C2FDF91CF911F910F91FF90EF90B3 +:10337000DF90CF900895CF93DF93EC010E947C19EA +:10338000BE010E944808DF91CF910895CB010E94B1 +:10339000BB1908958091C5018595859585950895FA +:1033A0008091C5018770089598E0899F900111244C +:1033B000262B2093C5010C94C0182091C50180953F +:1033C00082238093C501982F977069F430E0482FCD +:1033D000552747FD50952417350729F08595859584 +:1033E00085950C94E11808959091C501977081E03E +:1033F00009F480E0089590910C01992321F09091B7 +:103400000D01911109C020910E0130910F01F901B8 +:1034100032969FEF40E01FC0982F9695969596950F +:103420009F3050F5E0910E01F0910F01E90FF11D71 +:10343000877021E030E0A90102C0440F551F8A9532 +:10344000E2F7CA019181892B818308959F3F39F06A +:103450004F5F4E3041F051915813F8CF0DC05111CC +:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08 +:1034700097FDFA9582830895089590910C01992300 +:1034800021F090910D01911109C020910E01309110 +:103490000F01F9013296205F3F4F1FC0982F96957C +:1034A000969596959F30F0F4E0910E01F0910F0102 +:1034B000E90FF11D877021E030E0A90102C0440F3F +:1034C000551F8A95E2F7CA018095918189238183EE +:1034D00008953196E217F30729F090819813F9CFF8 +:1034E0001082F7CF089581E090E0E0910E01F09115 +:1034F0000F01E80FF91F1082019680319105A9F79D +:1035000008959091D901892B8093D90108958095D0 +:103510009091D90189238093D90108951092D901FE +:1035200008959091D801892B8093D80108958095B2 +:103530009091D80189238093D80108951092D801E1 +:1035400008959091D701892B8093D7010895809594 +:103550009091D70189238093D70108951092D701C4 +:1035600008958093C60108951092C6010895809130 +:103570000E0190910F01FC0131969C01205F3F4F9D +:1035800080E0919191118F5FE217F307D1F70895D1 +:10359000E0910E01F0910F018091D9018083E091BB +:1035A0000E01F0910F0190818091D801892B8083C9 +:1035B000E0910E01F0910F0190818091D701892B4C +:1035C00080838091C601882361F0E0910E01F09123 +:1035D0000F019081892B80830E94B71A811110926C +:1035E000C60180910E0190910F010C94F60F20E01E +:1035F000009739F0AC0141505109842395232F5F86 +:10360000F7CF822F0895CF92DF92EF92FF926C0155 +:10361000EE24FF24C114D104E104F10421F0C70118 +:10362000B60120E101C020E0C72ED82EE92EFF24EC +:10363000C114D104E104F10419F0285FC701B601F7 +:103640006B017C0154E0F694E794D794C7945A95A3 +:10365000D1F7C114D104E104F10419F02C5FC701C2 +:10366000B6016B017C0142E0F694E794D794C794CD +:103670004A95D1F7C114D104E104F10419F02E5F89 +:10368000C701B601DC01CB01B695A7959795879543 +:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5 +:1036A000DF90CF9008958091F101843021F1109244 +:1036B000DB0120E488E190E00FB6F894A8958093B0 +:1036C00060000FBE2093600080E00E94E30883B793 +:1036D000817F846083BF83B7816083BF789488953E +:1036E00083B78E7F83BF88E10FB6F8948093600024 +:1036F000109260000FBE0895089508950E947C1BEB +:103700000E944B030E947D1B0E94400491E08111A6 +:1037100001C090E0892F08950E9483140E94EA0F4F +:103720000C94E30882E084BD93E095BD9AEF97BDC9 +:1037300080936E0008952FB7F8948091DC019091EA +:10374000DD01A091DE01B091DF012FBF0895CF927E +:10375000DF92EF92FF920F931F932FB7F89440914F +:10376000DC015091DD016091DE017091DF012FBF1E +:103770006A017B01EE24FF248C0120E030E0C016BA +:10378000D106E206F30610F4415051099A01281BB4 +:10379000390BC9011F910F91FF90EF90DF90CF90EF +:1037A00008951F920F920FB60F9211248F939F933B +:1037B000AF93BF938091DC019091DD01A091DE0178 +:1037C000B091DF010196A11DB11D8093DC019093A2 +:1037D000DD01A093DE01B093DF01BF91AF919F9116 +:1037E0008F910F900FBE0F901F9018950E94E70CBD +:1037F000F8942FEF87EA91E6215080409040E1F75E +:1038000000C0000087E090EBDC018093FB01909307 +:10381000FC01A093FD01B093FE019CE088E10FB68E +:10382000F894A895809360000FBE90936000FFCF3E +:10383000EF92FF920F931F93CF93DF93D82FCDE09A +:103840008C2F0E94390405E010E0E82EF12CC7010E +:10385000002E02C0959587950A94E2F780FF09C073 +:10386000602F7C2F80E00E94F305D81302C081E016 +:1038700006C00150110958F7C15010F780E0DF91E0 +:10388000CF911F910F91FF90EF900895CF93C82F84 +:103890008CE20E94181C882321F08C2FCF910C946D +:1038A000181C80E0CF910895CF930E949B1D811139 +:1038B00002C00E94811DC5E6C15049F00E944B0321 +:1038C0008FE39CE90197F1F700C00000F5CF89E292 +:1038D0000E94461C811113C18AE20E94461C81117C +:1038E0000E94811D85E00E94461C81110E94F61BEA +:1038F0000E94A61D8093DA0187E00E94461C88235F +:10390000A9F18BE10E94461C882351F08091DA01D5 +:1039100081FB222720F991E0922790FB81F90EC0CC +:103920008EE00E94461C882361F08091DA0182FBC0 +:10393000222720F991E0922790FB82F98093DA0107 +:1039400015C080E10E94461C9091DA01882341F065 +:1039500093FB222720F981E0822780FB93F904C0A2 +:10396000892F809580FB90F99093DA018091DA019C +:103970000E94AA1D0E94B81D8093FA0180EE0E9449 +:10398000461C882341F08091FA01982F909590FB76 +:1039900080F98093FA0189E30E94461C882359F03C +:1039A0008091FA0181FB222720F991E0922790FB78 +:1039B00081F98093FA0182EE0E94461C882359F017 +:1039C0008091FA0182FB222720F991E0922790FB57 +:1039D00082F98093FA0186EE0E94461C882359F0F2 +:1039E0008091FA0183FB222720F991E0922790FB36 +:1039F00083F98093FA0183EE0E94461C882359F0D4 +:103A00008091FA0184FB222720F991E0922790FB14 +:103A100084F98093FA0185E30E94461C882359F0BB +:103A20008091FA0185FB222720F991E0922790FBF3 +:103A300085F98093FA0181E30E94461C882359F09E +:103A40008091FA0186FB222720F991E0922790FBD2 +:103A500086F98093FA0181E10E94461C882359F07F +:103A60008091FA0187FB222720F991E0922790FBB1 +:103A700087F98093FA018091FA010E94BC1D809120 +:103A8000FA0187FB882780F980930D0187E20E9465 +:103A9000461CC82F8EE10E94461C8111C2608FE136 +:103AA0000E94461C8111C46080E20E94461C811164 +:103AB000C86081E20E94461C8111C06182E20E94BE +:103AC000461C8111C06283E20E94461C8111C064C1 +:103AD00084E20E94461C882311F0C06802C0CC23F7 +:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4 +:103AF000682F70E080E090E0CF910C944318CF9154 +:103B000008956DEE7EEF80E090E00E94ED2360E08E +:103B100082E090E00E94DB2360E083E090E00E947E +:103B2000DB2360E084E090E00E94DB2360E085E03E +:103B300090E00C94DB2380E090E00E94D52321E00C +:103B40008D3E9E4F09F020E0822F089582E090E0A4 +:103B50000C94CD23682F82E090E00C94DB2383E06B +:103B600090E00C94CD23682F83E090E00C94DB234D +:103B700084E090E00C94CD23682F84E090E00C94D6 +:103B8000DB238091E20180FF0BC06091130185E08F +:103B9000689FB001112475956795759567952BC041 +:103BA00081FF09C06091130185E0689FB001112475 +:103BB0007595679520C082FF07C06091130185E06D +:103BC000689FB001112417C09091E3019923D1F0AF +:103BD00060911201961788F72091130185E0289FC4 +:103BE00090011124929FA001939F500D112470E029 +:103BF000CA010E949F236038710540F46115710568 +:103C000039F002C065E070E0862F08958FE70895CF +:103C100081E008958091E20180FF08C06091110168 +:103C200070E0759567957595679521C081FF06C011 +:103C30006091110170E07595679519C082FF04C00D +:103C40006091110170E010C09091E3019923C1F0DF +:103C5000609110019617A0F780911101899FC00112 +:103C6000112470E00E949F236038710528F46115CB +:103C7000710521F0862F08958FE7089581E008955A +:103C800061E070E0F4CF803F21F40E94C11D819576 +:103C900004C0813F29F40E94C11D8093E60108956C +:103CA000823F21F40E94C11D819504C0833F29F405 +:103CB0000E94C11D8093E5010895893F19F40E9477 +:103CC0000A1E05C08A3F31F40E940A1E8195809326 +:103CD000E70108958B3F21F40E940A1E819504C0DC +:103CE0008C3F29F40E940A1E8093E8010895843FC6 +:103CF00021F48091E401816017C0853F21F4809117 +:103D0000E401826011C0863F21F48091E401846067 +:103D10000BC0873F21F48091E401886005C0883F93 +:103D200031F48091E40180618093E40108958D3F36 +:103D300021F48091E20181600BC08E3F21F48091DB +:103D4000E201826005C08F3F29F48091E201846026 +:103D50008093E2010895803F39F48091E60187FF66 +:103D60006CC01092E60169C0813F29F48091E601A0 +:103D70001816BCF362C09091E501823F29F497FFC9 +:103D80005CC01092E50159C0833F19F41916CCF3B9 +:103D900054C0893F41F48091E70118160CF04DC0E2 +:103DA0001092E7014AC08A3F29F48091E70187FF1A +:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6 +:103DC0001092E8013AC08C3F29F48091E80118165E +:103DD000BCF333C0843F21F48091E4018E7F17C08F +:103DE000853F21F48091E4018D7F11C0863F21F44D +:103DF0008091E4018B7F0BC0873F21F48091E40127 +:103E0000877F05C0883F31F48091E4018F7E8093E5 +:103E1000E40113C08D3F21F48091E2018E7F0BC03D +:103E20008E3F21F48091E2018D7F05C08F3F29F400 +:103E30008091E2018B7F8093E2018091E501811105 +:103E40000EC08091E60181110AC08091E7018111C5 +:103E500006C08091E801811102C01092E30108952B +:103E600084EE91E00E9401100E949B1B9093E1015F +:103E70008093E00108951F93CF93DF938091E00139 +:103E80009091E1010E94A71BAC019091E30199235D +:103E900021F02091140130E006C0209115018AE044 +:103EA000289F900111244217530708F486C080917F +:103EB000E501C091E601D091E7011091E80181117F +:103EC00007C0C11176C0D11174C0111172C075C084 +:103ED0009F3F19F09F5F9093E301181624F40E940E +:103EE000C11D8093E5018091E50187FF05C00E9417 +:103EF000C11D81958093E5011C1624F40E94C11D0B +:103F00008093E6018091E60187FF05C00E94C11DF4 +:103F100081958093E6016091E501662339F1C091B6 +:103F2000E601CC2319F1772767FD7095872F972F2E +:103F30000E94B02223E333E343E35FE30E941423B0 +:103F40000E947D226093E5016C2F772767FD7095B5 +:103F5000872F972F0E94B02223E333E343E35FE3ED +:103F60000E9414230E947D226093E6011D1624F412 +:103F70000E940A1E8093E7018091E70187FF05C038 +:103F80000E940A1E81958093E701111624F40E9475 +:103F90000A1E8093E8018091E80187FF05C00E9416 +:103FA0000A1E81958093E801DF91CF911F910C94B7 +:103FB000301F9F3F09F08ECF96CFDF91CF911F9199 +:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE +:103FD0001092E3011092E2010895833081F128F4F8 +:103FE000813059F08230D1F00895853009F449C00C +:103FF000B8F1863009F456C0089580911501262F36 +:1040000030E0280F311D2F3F310524F4680F6093F5 +:10401000150108958FEF8093150108958091140183 +:10402000262F30E0280F311D2F3F310524F4680F73 +:104030006093140108958FEF809314010895809187 +:104040001301262F30E0280F311D2F3F310524F4B6 +:10405000680F6093130108958FEF80931301089503 +:1040600080911201262F30E0280F311D2F3F31059E +:1040700024F4680F6093120108958FEF809312016A +:10408000089580911101262F30E0280F311D2F3F18 +:10409000310524F4680F6093110108958FEF809328 +:1040A0001101089580911001262F30E0280F311D55 +:1040B0002F3F310524F4680F6093100108958FEFAE +:1040C000809310010895833011F128F4813049F074 +:1040D000823091F00895853081F120F18630C1F170 +:1040E000089580911501681720F4861B80931501AF +:1040F000089510921501089580911401681720F415 +:10410000861B8093140108951092140108958091E4 +:104110001301681720F4861B8093130108951092F1 +:104120001301089580911201681720F4861B809373 +:1041300012010895109212010895809111016817DB +:1041400020F4861B809311010895109211010895A7 +:1041500080911001681720F4861B80931001089548 +:104160001092100108950F931F938D3109F46BC0C5 +:1041700008F03FC08E3009F47FC0C0F4873009F4E6 +:1041800069C068F4863009F0B1C08091DA01817F9E +:104190008E7F8093DA0181E08093EA01A8C08830A5 +:1041A00009F4A2C08B3009F49FC0A0C0863109F485 +:1041B0009BC078F4803109F472C0813109F096C057 +:1041C0000E94831490910D0181E0892780930D0155 +:1041D0008BC0893109F488C08B3109F087C0809188 +:1041E000DA0181FB222720F991E0922790FB81F9E7 +:1041F0004CC0853309F470C048F4873209F46CC0B0 +:1042000008F459C0893209F467C070C0833438F4A7 +:104210008A3308F04EC0883309F466C067C083341F +:1042200009F45AC0883409F061C00E9483140FEF6A +:1042300013ED20E3015010402040E1F700C00000E2 +:104240000E94F61B51C00E9437220E94EA0F0E9472 +:10425000E3084AC09091DA01892F8095817080FB34 +:1042600090F929F0966098609093DA0140C0997FA8 +:10427000977F9093DA0138C08091DA0182FB222780 +:1042800020F991E0922790FB82F98093DA0199233B +:1042900059F18091DA0181608093DA0125C0809123 +:1042A000DA0183FB222720F991E0922790FB83F922 +:1042B000ECCF895301C08D5141E050E060E070E0E7 +:1042C0008A019B0104C0000F111F221F331F8A9512 +:1042D000D2F7C901B80104C061E070E080E090E06D +:1042E0000E9443180E94831481E001C080E01F9166 +:1042F0000F91089580E0089580E00895CF93C82F2E +:104300008091EA01813079F018F08230E9F187C0BC +:10431000E0910E01F0910F018081813169F08232CC +:1043200009F07FC009C0E0910E01F0910F0180817A +:10433000813111F0823261F48C2F0E947A21811137 +:1043400004C08C2F0E94B3201DC081E090E01AC0F1 +:104350008C2F0E947C21811114C0C43179F048F463 +:10436000CB3079F0C03109F060C082E08093EA017F +:1043700008C0C93219F0C83321F057C01092EA01C1 +:1043800054C081E0817053C0C93289F118F5C4313D +:1043900071F1A8F4C73009F046C08AE08093150196 +:1043A00094E19093140193E0909313018093120190 +:1043B00088E08093110188E28093100134C0CE51CF +:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB +:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC +:1043E00013C0C13579F0C235F1F461E00DC08091A0 +:1043F000E901882319F01092E90115C081E080934A +:10440000EA0115C061E006C08091E9010E94ED1F3C +:104410000AC06AE08091E9010E94632004C0109202 +:10442000EA0180E004C081E002C080E0ABCFCF9120 +:104430000895E1E8F0E08081886080838081816078 +:1044400080838FB7F89493E09093890090ED9093D8 +:1044500088008FBF0895EFE6F0E08081826080835E +:104460000895EFE6F0E080818D7F80830895EFE688 +:10447000F0E0908182E08927808308951F920F9257 +:104480000FB60F9211242F933F934F935F936F9327 +:104490007F938F939F93AF93BF93EF93FF938091FD +:1044A000EB019091EC0101969093EC018093EB016C +:1044B000811103C082E00E94E308E091EC01E695DF +:1044C000E695F0E0EC54FB4FE4918091EB018E1304 +:1044D00003C080E00E94E308FF91EF91BF91AF918C +:1044E0009F918F917F916F915F914F913F912F910C +:1044F0000F900FBE0F901F90189504D06894B111C3 +:104500008DC0089570D088F09F5790F0B92F9927EB +:10451000B751A0F0D1F0660F771F881F991F1AF0CE +:10452000BA95C9F712C0B13081F077D0B1E00895E3 +:1045300074C0672F782F8827B85F39F0B93FCCF364 +:10454000869577956795B395D9F73EF490958095C4 +:10455000709561957F4F8F4F9F4F0895E89409C0E4 +:1045600097FB3EF490958095709561957F4F8F4FA6 +:104570009F4F9923A9F0F92F96E9BB279395F695BC +:10458000879577956795B795F111F8CFFAF4BB0F3A +:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E +:1045A000882311F096E911C0772321F09EE8872F28 +:1045B000762F05C0662371F096E8862F70E060E0E4 +:1045C0002AF09A95660F771F881FDAF7880F96955D +:1045D000879597F9089557FD9058440F551F59F046 +:1045E0005F3F71F04795880F97FB991F61F09F3FE0 +:1045F00079F087950895121613061406551FF2CF09 +:104600004695F1DF08C0161617061806991FF1CF58 +:1046100086957105610508940895E894BB2766277F +:104620007727CB0197F908950BD078C069D028F08F +:104630006ED018F0952309F05AC05FC01124EECF58 +:10464000CADFA0F3959FD1F3950F50E0551F629FED +:10465000F001729FBB27F00DB11D639FAA27F00DDB +:10466000B11DAA1F649F6627B00DA11D661F829F02 +:104670002227B00DA11D621F739FB00DA11D621FE7 +:10468000839FA00D611D221F749F3327A00D611D04 +:10469000231F849F600D211D822F762F6A2F1124E6 +:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39 +:1046B000BB1F661F771F881F91505040A9F79E3F70 +:1046C000510570F014C0AACF5F3FECF3983EDCF3C5 +:1046D000869577956795B795F795E7959F5FC1F7AD +:1046E000FE2B880F911D9695879597F9089597F958 +:1046F0009F6780E870E060E008959FEF80EC089588 +:1047000000240A94161617061806090608950024B0 +:104710000A9412161306140605060895092E03942A +:10472000000C11F4882352F0BB0F40F4BF2B11F49E +:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF +:10474000072E16F4009407D077FD09D00E94B923F4 +:1047500007FC05D03EF4909581959F4F0895709584 +:1047600061957F4F0895EE0FFF1F0590F491E02DA6 +:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8 +:10478000B70710F0A61BB70B881F991F5A95A9F7FA +:1047900080959095BC01CD010895F999FECF92BD09 +:1047A00081BDF89A992780B50895A8E1B0E042E06C +:1047B00050E00C94F523262FF999FECF92BD81BDD0 +:1047C000F89A019700B4021639F01FBA20BD0FB64F +:1047D000F894FA9AF99A0FBE08950196272F0E942D +:1047E000DC230C94DB23DC01CB01FC01F999FECF27 +:1047F00006C0F2BDE1BDF89A319600B40D92415069 +:0A4800005040B8F70895F894FFCF78 +:10480A000220E508730950091C09E8080101C701DB +:10481A0028080A03140A3F4D363975042804F2039E +:10482A00B9034C0365037E039703010203040506DB +:04483A000708090062 +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/jack/keymap.c b/keyboards/ergodox_ez/keymaps/jack/keymap.c new file mode 100644 index 000000000..80bf9d535 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/jack/keymap.c @@ -0,0 +1,118 @@ +#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] = { +[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 + ), +[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 +), +[MDIA] = 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/keyboards/ergodox_ez/keymaps/jacobono/README.md b/keyboards/ergodox_ez/keymaps/jacobono/README.md new file mode 100644 index 000000000..48de0509f --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/jacobono/README.md @@ -0,0 +1,34 @@ +# Default Layer # + +I'm using the colemak layer -- customized a bit to work a bit better when using spacemacs as my editor. + +![default-layer](img/colemak-default-layer.png) + +## Special Keys ## + +`SC1` => `LGUI + TAB` + +`SC2` => `LGUI + SPACE + TAB` + +`L1` => Switch to QWERTY Layout + +`T(L2)` => Toggle Symbol Layer + +`T(L3)` => Toggle Number and D-Pad Layer + +# QWERTY # + +Nothing special here -- just need this layer tucked away for the `WASD`. Which is literally the only reason I use it. +Just have the same button to toggle back to colemak. + +# Symbol Layer # + +![symbol-layer](img/symbol-layer.png) + +This is just putting matching closing symbols next to each other -- useful when editing lisp. + +# Number and D-Pad Layer # + +Just a basic number layer with a D-PAD on the other side. + +![number-dpad-layer](img/number-dpad-layer.png) diff --git a/keyboards/ergodox_ez/keymaps/jacobono/compiled.hex b/keyboards/ergodox_ez/keymaps/jacobono/compiled.hex new file mode 100644 index 000000000..bfa00ed2e --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/jacobono/compiled.hex @@ -0,0 +1,1179 @@ +:100000000C9422030C9466030C9466030C94660310 +:100010000C9466030C9466030C9466030C946603BC +:100020000C9466030C9466030C940A0E0C94DC0E7C +:100030000C9466030C9466030C9466030C9466039C +:100040000C9466030C94E6220C9466030C946603ED +:100050000C9466030C94791C0C9466030C94660350 +:100060000C9466030C9466030C9466030C9466036C +:100070000C9466030C9466030C9466030C9466035C +:100080000C9466030C9466030C9466030C9466034C +:100090000C9466030C9466030C9466030C9466033C +:1000A0000C9466030C9466030C946603490F6B0F63 +:1000B00059106B0F5910B00FD30F591028103B1067 +:1000C0000A130A13391339136F138F13C014C01492 +:1000D0009A13C0144A144A14B114C014C014BA14A8 +:1000E00057145714571457145714571457145714B8 +:1000F00057145714571457145714571457145714A8 +:10010000691476147D1484148E140000F0A201008A +:100110002B002A00E100015400001E00140004001E +:100120001D71010003521F001A0015001B00010081 +:100130002800200009001600060052002C002100B3 +:1001400013001700190002522C0A22000A000700AF +:1001500005000000E3005000010000000100000065 +:1001600065004F00010000002B08000029712300EA +:100170000D000B000E000000E20024000F00110033 +:10018000100002522C0A2500180008003600510009 +:100190002C0026001C000C0037000100280027005E +:1001A000330012003871E60003524C002B004C0063 +:1001B000E500E70000002A002B00E000E10001005C +:1001C00000001E00140004001D7134004D001F00CB +:1001D0001A0016001B00E104E300200008000700DD +:1001E000060050002C0021001500090019000252E1 +:1001F0004A00220017000A00050000002B005000F2 +:1002000001000000E20000004C004F00010000006F +:10021000E6000000E20023001C000B0011000000BB +:100220002971240018000D00100002524B00250017 +:100230000C000E00360051002800260012000F00AE +:1002400037002F00E70027001300334438713000D7 +:100250004E004C003100E400E500C1000000010048 +:10026000010001000100010000003A00010031021C +:100270000100010001003B001F021E0222020100DA +:1002800001003C0025022E022302010001003D0076 +:100290002E002D002102010001003E002D0234023B +:1002A0002402000001000100010000000100000024 +:1002B00001000100010000000100000001003F00FA +:1002C0003502340233000000010040002F022602F4 +:1002D0002F00010001004100300227023000010020 +:1002E00001004200200234003100010001004300FF +:1002F00033023500380001000100440045000100D0 +:1003000001000100000001000100010001000100E6 +:1003100000000100010001000100010001000100D6 +:1003200001005000010001000100010052005100D5 +:10033000010001000100010001004F000100010067 +:1003400001000100010001000100000001000100A6 +:100350000100000001000000010001000100000098 +:10036000010000000100010021022E002402000013 +:1003700001000100240021001E00360001000100E0 +:10038000250022001F002700010001002600230095 +:1003900020003700010001002E022D002502380048 +:1003A0000100010001000100010001000000010046 +:1003B0000100010001000100000001000100010036 +:1003C00001000100010001000100F2000100010034 +:1003D00001000100F000F1000100F4000100010043 +:1003E0000100F3000100F50001000100010001001F +:1003F00001000000010001000100000001000000F8 +:1004000001000100010000000100000001000100E6 +:1004100001000100010000000100010001000100D5 +:100420000100A9000100010001000100AC00AA00C8 +:10043000B600010001000100AB00A80001000100AE +:100440000100010001000100010001000100AE00F7 +:1004500001000100000016034500720067006F00F4 +:1004600044006F007800200045005A000000160389 +:100470004500720067006F0044006F0078002000A4 +:1004800045005A0000000403090409026D0004013C +:1004900000A0FA0904000001030101000921110173 +:1004A0000001223F000705810308000A090401003A +:1004B0000103010200092111010001224D0007057D +:1004C000820308000A090402000103000000092158 +:1004D000110100012236000705830308000A090400 +:1004E000030001030000000921110100012239006D +:1004F000070584031000011201100100000008ED3F +:10050000FE071301000102000105010906A1010512 +:100510000719E029E71500250195087501810205F5 +:100520000819012905950575019102950175039139 +:1005300001050719002977150025019578750181B6 +:1005400002C005010980A101850216010026B7003D +:100550001A01002AB700751095018100C0050C0929 +:1005600001A1018503160100269C021A01002A9CA4 +:1005700002751095018100C005010902A101090160 +:10058000A100050919012905150025019505750129 +:100590008102950175038101050109300931158139 +:1005A000257F95027508810609381581257F9501FB +:1005B00075088106050C0A38021581257F9501759D +:1005C000088106C0C005010906A101050719E02937 +:1005D000E7150025019508750181029501750881CF +:1005E0000105081901290595057501910295017507 +:1005F0000391010507190029FF150025FF950675D0 +:10060000088100C0000000000000000000000001A0 +:100610000204060A0F17202C3A4A5D71879DB3C762 +:10062000DAE9F5FCFFFCF5E9DAC7B39D87715D4AAD +:100630003A2C20170F0A06040201000000000000F7 +:100640000000000011241FBECFEFDAE0DEBFCDBFF7 +:1006500004B603FE24C08091FB019091FC01A0919F +:10066000FD01B091FE018730904BA740B04BB9F42B +:100670001092FB011092FC011092FD011092FE01FC +:1006800014BE84B7877F84BF88E10FB6F894809347 +:100690006000109260000FBEE0E0FFE3099511E0FA +:1006A000A0E0B1E0EAE5F9E402C005900D92A433C0 +:1006B000B107D9F711E0A4E3B1E001C01D92AB3F4F +:1006C000B107E1F70E944E0B0C94AB240C94000090 +:1006D0001092B9008AE08093B800089594EA90934C +:1006E000BC009091BC0097FFFCCF9091B900987F1F +:1006F000983021F0903111F081E008958093BB0093 +:1007000084E88093BC008091BC0087FFFCCF80917F +:10071000B900887F883111F0803471F780E0089546 +:1007200084E98093BC008091BC0084FDFCCF0895D7 +:100730008093BB0084E88093BC008091BC0087FF5D +:10074000FCCF9091B900987F81E0983209F480E065 +:10075000089584E88093BC008091BC0087FFFCCFA3 +:100760008091BB00089580910101811115C080E442 +:100770000E946E038093010181110CC082E10E94EE +:10078000980380930101811105C08FEF0E949803A7 +:10079000809301010E94900384B1807F84B985B168 +:1007A000807F85B98AB1837F8AB98BB1837F8BB90A +:1007B0003E98469808950E946E05809301010E941C +:1007C000B30380B38C7080BB81B3836F81BBA5E31F +:1007D000B1E0E3E4F1E08EE08E0F11921D928E13F2 +:1007E000FCCF0C945805BF92CF92DF92EF92FF920C +:1007F0000F931F93CF93DF9380910101882379F0AA +:10080000809134018F5F80933401811108C00E9470 +:100810006E0580930101811102C00E94000505E36D +:1008200011E0C0E0D0E0DD24D39482E0C82EEE24B5 +:10083000E394F12CC730D10500F5809101018111BD +:1008400064C080E40E946E0380930101811112C094 +:1008500082E10E9498038093010181110BC0C701BE +:100860000C2E01C0880F0A94EAF780950E94980325 +:10087000809301010E94900348C0CA30A1F028F47F +:10088000C83059F0C93061F005C0CC3089F070F043 +:10089000CD3089F0209A289810C0219A29980DC04F +:1008A000229A2A980AC0239A2B9807C0529A01C00C +:1008B000539A5B9802C03E9A469890EA9A95F1F74F +:1008C0009FB1799902C082E001C080E091709D25BE +:1008D000982B7C9902C084E001C080E0892B7D992F +:1008E00002C038E001C030E0832B7E9902C020E1D5 +:1008F00001C020E0822B9FB19095991F9927991FE5 +:100900009295990F907E892B0FC0809101018111E2 +:1009100049C080E40E946E0380930101882379F12D +:10092000B12C0E9490038B2DF8019081981719F03B +:100930008083C09200010E94B30321960F5F1F4F76 +:10094000CE30D10509F076CF80910001882361F186 +:10095000815080930001882339F08FE99FE001974F +:10096000F1F700C0000020C0A3E4B1E0E5E3F1E04E +:10097000CF01825F91919D938E13FCCF15C083E1CF +:100980000E949803809301018111CACF81E40E94E3 +:100990006E03809301018111C3CF0E94A903B82E79 +:1009A000B094BFCF80E0C0CF0E94FE0481E0DF9111 +:1009B000CF911F910F91FF90EF90DF90CF90BF905C +:1009C0000895E82FF0E0ED5BFE4F808108950895D3 +:1009D0000F931F93CF93DF93C3E4D1E010E00C2F6C +:1009E000025F899190E00E949F1B180F0C13F9CFB2 +:1009F000812FDF91CF911F910F9108950C94CE0517 +:100A000056985E9825982D9826982E9827982F9876 +:100A10008FEF90E0909389008093880090938B00F3 +:100A200080938A0090938D0080938C00259A2D9A54 +:100A30002FEF80E792E0215080409040E1F700C026 +:100A40000000269A2E9A2FEF80E792E021508040F6 +:100A50009040E1F700C00000279A2F9A2FEF80E71F +:100A600092E0215080409040E1F700C000002598BE +:100A70002D982FEF80E792E0215080409040E1F7E1 +:100A800000C0000026982E982FEF80E792E02150BA +:100A900080409040E1F700C0000027982F985698BA +:100AA0005E9825982D9826982E9827982F98089527 +:100AB00089EA8093800089E08093810024982C98B3 +:100AC0003F988AB18F748AB96E98479A8BB1806BC0 +:100AD0008BB9769A0E9400050C94CD0580E2809334 +:100AE00001018091510181110EC00E94680381E0D3 +:100AF000809351012FEF83ED90E32150804090408F +:100B0000E1F700C0000080E40E946E0380930101C1 +:100B100081112EC00E94980380930101811128C089 +:100B20000E94980380930101811122C08FE30E94EB +:100B300098038093010181111BC00E94900380E4FF +:100B40000E946E0380930101811112C08CE00E940B +:100B500098038093010181110BC00E949803809338 +:100B60000101811105C08FE30E9498038093010168 +:100B70000E94900380910101089561110BC0FC0156 +:100B80008281882321F085EE0E94AE1103C085EE9C +:100B90000E94761280E090E0089508956091BD0172 +:100BA0007091BE018091BF019091C0010E94AB1B6A +:100BB00056985E9825982D9826982E9827982F98C5 +:100BC000813019F0823021F00895259A2D9A0895E8 +:100BD000269A2E9A089581E0089581E008950C9454 +:100BE000ED0508950F931F93CF93DF938C01FC01C4 +:100BF000C081D181CE010E94241ABE010E949B06B1 +:100C0000EC01B8010E94EF05882309F48DC0F801BA +:100C10008281882309F44AC080915D0181111FC03F +:100C2000C431F0E5DF0709F051C00E94F10581E011 +:100C300080935D010E94431C90935C0180935B0153 +:100C400010925401109256011092550110925801C1 +:100C50001092570110925A011092590165C080916B +:100C60005B0190915C010E944F1C883C910570F4DF +:100C700080915401E82FF0E0EE0FFF1FEB5AFE4F7A +:100C8000D183C0838F5F809354014EC0C43880E508 +:100C9000D80721F0C538D04501F13AC0F80182816A +:100CA000882341F01092520182E01EC0C438E0E572 +:100CB000DE0759F580915201811106C086E20E943B +:100CC000AE1186E20E94761282E01CC0C438F0E5C4 +:100CD000DF0741F3C538D045D9F4F8018281882374 +:100CE00031F01092530180E20E94C5121DC0809124 +:100CF0005301811106C087E20E94AE1187E20E9473 +:100D0000761280E20E94CC120FC0C538D04529F37C +:100D100081E08093520180935301C801DF91CF910C +:100D20001F910F910C94EB0580E0DF91CF911F9103 +:100D30000F910895089596E0799FF001112494E5AC +:100D4000899FE00DF11D1124E60FF11DEE0FFF1F2D +:100D5000E25FFE4F859194910895880F991FFC01E1 +:100D6000E657F040859194910895880F991FFC01F2 +:100D7000E65FFE4F8591949108950F931F93CF9353 +:100D8000DF93EC01811520E3920750F5C11580E255 +:100D9000D80708F0C3C0CB3BD10590F4C83AD105C1 +:100DA00008F06AC0C53AD10508F05BC0C430D1056F +:100DB00008F0D0C1219709F0CAC101E010E00AC2D1 +:100DC000CF3FD10511F008F0C5C1C03FD10508F0F3 +:100DD000A2C0CE01805E9109089708F4BBC1B7C1DB +:100DE000C13090E5D90709F4A2C020F5C0318FE4E5 +:100DF000D80770F4C11590E4D90708F094C0C11564 +:100E000021E3D20708F0A3C1DD278E01106CE2C1F7 +:100E1000C115D04509F09BC10E942B158FEF94E3BB +:100E20002CE0815090402040E1F700C000000E947B +:100E30009E1CD0C1C11597E5D90758F4C03121E5F2 +:100E4000D20708F01CC1C43180E5D80708F475C08A +:100E50007EC1CE0190578115904108F078C1DF70B6 +:100E600073C1C53AD10509F477C1C63AD10509F075 +:100E700076C102E810E4AEC1C83AD10509F472C1E6 +:100E8000C93AD10509F471C1CA3AD10509F470C152 +:100E9000CB3AD10509F46FC1CC3AD10509F46EC142 +:100EA000CD3AD10509F46DC1C03BD10509F46CC13F +:100EB000CE3AD10509F46BC1CF3AD10509F46AC124 +:100EC000C13BD10509F469C1C23BD10509F468C130 +:100ED000C33BD10509F467C1C43BD10509F466C120 +:100EE000C53BD10509F465C1C63BD10509F464C110 +:100EF000C73BD10509F463C1C83BD10509F462C100 +:100F0000C93BD10509F461C1CA3BD10509F460C1EF +:100F100000E014E45FC18E0110655CC1CE019F70DA +:100F20000E94B50658C1DF708E01106A53C18091CE +:100F3000DA0181608093DA014DC10E94431E811164 +:100F400002C00E94291E0E94601E90E09093FB0147 +:100F50008093FA01C23080E5D80721F48091FA012C +:100F6000816086C0C43090E5D90721F48091FA01F0 +:100F700082607EC0C63020E5D20721F48091FA015C +:100F8000846076C0C83080E5D80719F48091FA01F2 +:100F900027C0CA3090E5D90721F48091FA01806119 +:100FA00067C0CC3020E5D20721F48091FA0180623D +:100FB0005FC0CE3080E5D80721F48091FA018064CB +:100FC00057C0C03190E5D90721F48091FA018068BB +:100FD0004FC0C23120E5D20729F48091FA01846024 +:100FE000886046C0C33080E5D80721F48091FA01BB +:100FF0008E7F3EC0C53090E5D90721F48091FA017B +:101000008D7F36C0C73020E5D20721F48091FA01E8 +:101010008B7F2EC0C93080E5D80719F48091FA0182 +:1010200026C0CB3090E5D90721F48091FA018F7E5C +:101030001FC0CD3020E5D20721F48091FA018F7DC9 +:1010400017C0CF3080E5D80721F48091FA018F7B5B +:101050000FC0C13190E5D90721F48091FA018F7753 +:1010600007C0C331D04531F48091FA018B7F877F6F +:101070008093FA018091FA010E94641EABC08D2F0B +:1010800099278F70992781309105D9F49E0123709B +:10109000332702C0880F991F2A95E2F79C688E01BA +:1010A00044E0000F111F4A95E1F700271370802BD1 +:1010B000912B53E0CC0FDD1F5A95E1F7C076DD2769 +:1010C0002FC08230910531F4DC2FCC278E01016FC7 +:1010D000106A80C08330910569F4CE01837099272E +:1010E00001E010E002C0000F111F8A95E2F7C8016D +:1010F0009C680FC084309105B9F4CE0183709927A4 +:1011000001E010E002C0000F111F8A95E2F7C8014C +:101110009A6823E0CC0FDD1F2A95E1F7C07ED770D7 +:101120008C010C2B1D2B56C08530910531F4DC2F22 +:10113000CC278E01046F106A4DC0069709F04AC093 +:10114000CF71DD27DC2FCC278E01106243C000E079 +:1011500010E040C08E013EC001E810E43BC003E84F +:1011600010E438C002EE14E435C009EE14E432C0D5 +:101170000AEE14E42FC005EB14E42CC006EB14E4D3 +:1011800029C007EB14E426C00CEC14E423C00DECDA +:1011900014E420C003E815E41DC00AE815E41AC0F1 +:1011A00002E915E417C004E915E414C001E216E4ED +:1011B00011C003E216E40EC004E216E40BC005E21F +:1011C00016E408C006E216E405C007E216E402C011 +:1011D0000AE216E4C801DF91CF911F910F910895A3 +:1011E00096E0799FF001112494E5899FE00DF11DAF +:1011F0001124E60FF11DEE0FFF1FE25FFE4F8591F8 +:101200009491803E9105E0F4803C910558F581333E +:10121000910509F46FC048F48932910509F463C05F +:101220008A32910509F46DC072C089339105E9F0E5 +:1012300082389105D1F08533910509F44DC067C01E +:10124000833E910581F138F4803E9105B9F0823EEC +:101250009105D9F05CC0863E910561F1873E91050C +:10126000A1F155C00E94AD0608952091FA0120FD1C +:1012700002C021FF4CC080EE90E049C08091FA018D +:1012800080FFF9CF89E390E042C08091FA0182FFAC +:101290000EC08091FA0184FF03C080E090E037C067 +:1012A00083EE90E034C08091FA0182FFF2CF82EEAB +:1012B00090E02DC08091FA0183FF0BC08091FA016C +:1012C00084FDEBCF87EE90E022C08091FA0183FF8E +:1012D000F5CF86EE90E01BC08091FA0185FF07C034 +:1012E00089E290E014C08091FA0185FFF9CF85E38F +:1012F00090E00DC08091FA0186FF07C08AE290E07D +:1013000006C08091FA0186FFF9CF81E390E00E9448 +:10131000BD06089508950C948A0980916E01089580 +:10132000CF93DF9300D01F92CDB7DEB79C018091A1 +:10133000F101843019F593E099833B832A839093DC +:10134000E9008FEF9091E800815095FD06C095ED82 +:101350009A95F1F700008111F5CF8091E80085FFA3 +:101360000DC040E050E063E070E0CE0101960E94C5 +:10137000FA0B8091E8008E778093E8000F900F9031 +:101380000F90DF91CF910895CF93DF9300D01F92FC +:10139000CDB7DEB72091F101243021F522E0298379 +:1013A0009B838A8383E08093E9008FEF9091E8002C +:1013B000815095FD06C095ED9A95F1F700008111D9 +:1013C000F5CF8091E80085FF0DC040E050E063E07C +:1013D00070E0CE0101960E94FA0B8091E8008E77B2 +:1013E0008093E8000F900F900F90DF91CF910895B8 +:1013F0002091F1012430F1F422E02093E9002FEF55 +:101400003091E800215035FD06C035ED3A95F1F7F1 +:1014100000002111F5CF2091E80025FF0BC040E02E +:1014200050E065E070E00E94FA0B8091E8008E7752 +:101430008093E8000895CF93DF93EC019091F10140 +:10144000943009F046C080910C018823D9F0809136 +:101450000D018823B9F09093E9008FEF9091E80097 +:10146000815095FD06C095E19A95F1F70000811134 +:10147000F5CF8091E80085FF2CC040E050E060E1AE +:1014800070E017C081E08093E9008FEF9091E80051 +:10149000815095FD06C095ED9A95F1F700008111F8 +:1014A000F5CF8091E80085FF14C040E050E068E08F +:1014B00070E0CE010E94FA0B8091E8008E77809355 +:1014C000E80080E1FE01AEE5B1E001900D928A9561 +:1014D000E1F7DF91CF9108958091F001811109C06A +:1014E0000E948F0D0E94EC0D8091E2008460809339 +:1014F000E20008951092F001089508950C94D3220B +:101500000E94341C0E94D9220E9492100C948B09D4 +:1015100042E061EC81E00E94090D42E061EC82E072 +:101520000E94090D42E061EC83E00E94090D42E156 +:1015300061EC84E00C94090D8091F301833009F48F +:1015400055C030F4813071F0823009F48EC00895B6 +:101550008A3009F47AC08B3009F460C0893009F010 +:101560009CC020C08091F201813A09F096C0809120 +:10157000E800877F8093E8008091F6019091F70161 +:10158000892B21F460E18EE591E003C060E080E00A +:1015900090E070E00E94450C8091E8008B7780938A +:1015A000E80008958091F201813209F076C08091BF +:1015B000F6019091F701009719F0039709F06DC0BB +:1015C0008091E800877F8093E8008091E80082FDA9 +:1015D00005C08091F1018111F8CF5FC08091F100C9 +:1015E00080936E018091E8008B7753C08091F20167 +:1015F000813A09F052C08091F6019091F701892B50 +:1016000009F04BC08091E800877F8093E8008091CB +:10161000E80080FFFCCF80910C0136C08091F20180 +:101620008132D9F58091F6019091F701892BA9F5C6 +:101630008091E800877F8093E8000E943E0D8091B2 +:10164000F40180930C010C942B158091F2018132EE +:1016500021F58091E800877F8093E8000E943E0D8D +:101660008091F50180936F0108958091F201813A94 +:10167000A1F48091E800877F8093E8008091E800E2 +:1016800080FFFCCF80916F018093F1008091E80092 +:101690008E778093E8000C943E0D089584B7877F81 +:1016A00084BF88E10FB6F8948093600010926000C8 +:1016B0000FBE90E080E80FB6F8948093610090939D +:1016C00061000FBE0E94E1100E948F0D0E94EC0D80 +:1016D0008091E20084608093E20078940E9472100E +:1016E0000E94E31082E091E00E948D100E94C122CE +:1016F0008091F101853069F40E94FB1B8091EF011C +:101700008823B1F30E94261C882391F30E94E40BE6 +:10171000EFCF0E94E910ECCF292F3327233031057A +:10172000C9F064F42130310581F02230310509F02F +:1017300043C08DE690E02AE834E042C02132310512 +:10174000F1F02232310541F137C082E190E027EF1C +:1017500034E036C099278130910541F082309105FF +:1017600041F0892B49F5E6E8F4E005C0EEE6F4E047 +:1017700002C0E6E5F4E0849190E09F0121C064306E +:10178000D8F4E62FF0E0EE0FFF1FEE5DFE4F208154 +:10179000318189E090E014C0643070F470E0FB01A6 +:1017A000EE0FFF1FE65EFE4F20813181FB01EA5EF6 +:1017B000FE4F808190E004C080E090E020E030E0C7 +:1017C000FA0131832083089580E189BD82E189BDDA +:1017D00009B400FEFDCF8091D8008F7D8093D800A2 +:1017E0008091E00082608093E0008091E00081FDC4 +:1017F000FCCF0895CF92DF92EF92FF920F931F9349 +:10180000CF93DF93EC018B016A010E945D0D811182 +:1018100033C0C114D10439F0F60180819181081BD5 +:10182000190BC80FD91FE12CF12C0115110519F165 +:101830008091E80085FD16C08091E8008E77809346 +:10184000E800C114D10449F0F60180819181E80ECD +:10185000F91EF182E08285E00FC00E945D0D8823B1 +:1018600021F30AC089918093F10001501109FFEF23 +:10187000EF1AFF0ADACF80E0DF91CF911F910F912D +:10188000FF90EF90DF90CF9008952091F801309174 +:10189000F9012617370748F06115710539F42091D1 +:1018A000E8002E772093E80001C0B90140E06115FF +:1018B0007105A9F12091F101222309F443C02530DB +:1018C00009F442C02091E80023FD40C02091E800C7 +:1018D00022FD32C02091E80020FFE9CF4091F300C3 +:1018E0002091F20030E0342BFC01CF01611571052D +:1018F00059F02830310540F481918093F100615016 +:1019000071092F5F3F4FF1CF41E02830310509F0D9 +:1019100040E02091E8002E772093E800C8CF4111E5 +:10192000C9CF0AC08091F101882361F0853061F050 +:101930008091E80083FD0AC08091E80082FFF2CF29 +:1019400080E0089582E0089583E0089581E008959D +:101950002091F8013091F9012617370748F06115F9 +:10196000710539F42091E8002E772093E80001C03A +:10197000B901FC0120E06115710591F18091F1013F +:10198000882309F440C0853009F43FC08091E80005 +:1019900083FD3DC08091E80082FD2FC08091E8006A +:1019A00080FFE9CF2091F3008091F20090E0922B2C +:1019B0006115710559F08830910540F42491209308 +:1019C000F1003196615071090196F2CF21E008973C +:1019D00009F020E08091E8008E778093E800CBCF7B +:1019E0002111CCCF0AC08091F101882361F08530AC +:1019F00061F08091E80083FD0AC08091E80082FFD9 +:101A0000F2CF80E0089582E0089583E0089581E0B8 +:101A10000895982F973058F59093E900981739F06A +:101A20007091EC002091ED005091F00003C0242F44 +:101A3000762F50E021FF19C03091EB003E7F3093AC +:101A4000EB003091ED003D7F3093ED003091EB00E5 +:101A500031603093EB007093EC002093ED005093D5 +:101A6000F0002091EE0027FF07C09F5FD3CF8F705B +:101A70008093E90081E0089580E008958091F2016B +:101A800087FF11C08091E80082FD05C08091F101BF +:101A90008111F8CF11C08091E8008B770BC0809145 +:101AA000F101882349F08091E80080FFF8CF809110 +:101AB000E8008E778093E80008952091E40030914B +:101AC000E50095E64091EC00842F817040FF22C034 +:101AD0008091E80080FD1CC08091F101882391F085 +:101AE000853091F08091EB0085FD10C04091E400BD +:101AF0005091E5004217530729F39A01915011F7CD +:101B000084E0089582E0089583E0089581E00895D7 +:101B100080E008954091E80042FFDECF08950E94E2 +:101B2000FD0D0E94050EE0EEF0E080818160808373 +:101B3000E8EDF0E080818F77808319BCA7EDB0E0FD +:101B40008C918E7F8C9380818F7E80831092F001A8 +:101B500008950F931F93CF93DF930E94FD0D0E9472 +:101B6000050EC8EDD0E088818F77888388818068F2 +:101B7000888388818F7D888319BC1092F10110922F +:101B8000ED011092EF011092EE0100EE10E0F8016D +:101B900080818B7F808388818160888342E060E0E0 +:101BA00080E00E94090DE1EEF0E080818E7F80836D +:101BB000E2EEF0E0808181608083808188608083B4 +:101BC000F80180818E7F8083888180618883DF91A6 +:101BD000CF911F910F910895E8EDF0E080818F7E05 +:101BE0008083E7EDF0E080818160808384E082BFC4 +:101BF00081E08093F0010C94A90DE8EDF0E0808184 +:101C00008E7F80831092E20008951092DA00109285 +:101C1000E10008951F920F920FB60F9211242F9397 +:101C20003F934F935F936F937F938F939F93AF9364 +:101C3000BF93EF93FF938091E10082FF0BC08091EF +:101C4000E20082FF07C08091E1008B7F8093E1007A +:101C50000E9471108091DA0080FF1FC08091D8002F +:101C600080FF1BC08091DA008E7F8093DA00809124 +:101C7000D90080FF0DC080E189BD82E189BD09B432 +:101C800000FEFDCF81E08093F1010E946C0A05C047 +:101C900019BC1092F1010E947A0A8091E10080FF44 +:101CA00019C08091E20080FF15C08091E2008E7F14 +:101CB0008093E2008091E20080618093E200809155 +:101CC000D80080628093D80019BC85E08093F10130 +:101CD0000E947E0A8091E10084FF30C08091E20082 +:101CE00084FF2CC080E189BD82E189BD09B400FE7A +:101CF000FDCF8091D8008F7D8093D8008091E10046 +:101D00008F7E8093E1008091E2008F7E8093E200DD +:101D10008091E20081608093E2008091ED01882350 +:101D200011F084E007C08091E30087FD02C081E0EC +:101D300001C083E08093F1010E94800A8091E1005C +:101D400083FF29C08091E20083FF25C08091E100DC +:101D5000877F8093E10082E08093F1011092ED0192 +:101D60008091E1008E7F8093E1008091E2008E7F80 +:101D70008093E2008091E20080618093E20042E083 +:101D800060E080E00E94090D8091F00088608093FF +:101D9000F0000E947D0AFF91EF91BF91AF919F915A +:101DA0008F917F916F915F914F913F912F910F9004 +:101DB0000FBE0F901F9018951F920F920FB60F92A3 +:101DC00011242F933F934F935F936F937F938F9340 +:101DD0009F93AF93BF93CF93DF93EF93FF93C09104 +:101DE000E900CF708091EC00D82FD17080FDD0E851 +:101DF0001092E9008091F000877F8093F000789442 +:101E00000E94200F1092E9008091F000886080937A +:101E1000F000CD2BCF70C093E900FF91EF91DF91DF +:101E2000CF91BF91AF919F918F917F916F915F9172 +:101E30004F913F912F910F900FBE0F901F901895CB +:101E40001F93CF93DF93CDB7DEB7AA970FB6F89461 +:101E5000DEBF0FBECDBFE2EFF1E088E08E0F9091C4 +:101E6000F10091938E13FBCF0E949C0A8091E800B1 +:101E700083FF1FC18091F2019091F301492F50E03F +:101E80004A30510508F015C1FA01EA5AFF4F0C9487 +:101E90005B24803881F0823809F00BC18091F60113 +:101EA0008F708093E9008091EB0085FB882780F993 +:101EB0001092E90006C08091EE019091EF0191111E +:101EC00082609091E800977F9093E8008093F10002 +:101ED0001092F100C8C0282F2D7F09F0EAC0882396 +:101EE00019F0823061F0E5C08091F401813009F091 +:101EF000E0C0933009F080E08093EF012BC0809127 +:101F0000F401811127C08091F6018F7009F4D1C0CE +:101F10008093E9002091EB0020FF1CC0933021F456 +:101F20008091EB00806214C09091EB0090619093DF +:101F3000EB0021E030E0A90102C0440F551F8A9553 +:101F4000E2F74093EA001092EA008091EB0088608B +:101F50008093EB001092E9008091E800877F86C0B3 +:101F60008111A7C01091F4011F778091E300807860 +:101F7000812B8093E3008091E800877F8093E800C5 +:101F80000E943E0D8091E80080FFFCCF8091E3002D +:101F900080688093E300111102C082E001C083E0F9 +:101FA0008093F10186C08058823008F082C0809111 +:101FB000F4019091F5018C3D53E0950779F583E0AC +:101FC0008A838AE289834FB7F894DE01139620E072 +:101FD0003EE051E2E32FF0E050935700E49120FF00 +:101FE00003C0E295EF703F5FEF708E2F90E0EA3014 +:101FF00010F0C79601C0C0968D939D932F5F24313A +:1020000049F74FBF8091E800877F8093E8006AE23C +:1020100070E0CE0101960E94450C14C0AE014F5FE6 +:102020005F4F6091F6010E948C0BBC01009709F490 +:1020300040C09091E800977F9093E80089819A8151 +:102040000E94A80C8091E8008B778093E80031C053 +:10205000803879F58091E800877F8093E80080914F +:10206000ED018093F1008091E8008E778093E80085 +:102070000E943E0D1EC081111CC09091F40192304F +:10208000C0F48091E800877F8093E8009093ED0191 +:102090000E943E0D8091ED01811106C08091E30008 +:1020A00087FD02C081E001C084E08093F1010E94BD +:1020B000880A8091E80083FF0AC08091E800877F4A +:1020C0008093E8008091EB0080628093EB00AA96F9 +:1020D0000FB6F894DEBF0FBECDBFDF91CF911F9139 +:1020E00008950895CF938091F1018823A1F0C091C4 +:1020F000E900CF709091EC00892F817090FD80E80D +:10210000C82B1092E9008091E80083FD0E94200F07 +:10211000CF70C093E900CF9108959093750180939B +:1021200074010895E0917401F0917501309721F0E8 +:102130000190F081E02D099480E00895E091740110 +:10214000F0917501309721F00280F381E02D099420 +:102150000895E0917401F0917501309721F00480A9 +:10216000F581E02D09940895209172013091730159 +:102170008217930771F09093730180937201E0913D +:102180007401F0917501309721F00680F781E02D00 +:10219000099408952091700130917101821793077D +:1021A00071F09093710180937001E0917401F0914E +:1021B0007501309721F00084F185E02D0994089590 +:1021C00008950C94E0100E943A1C0E94DB030C94CA +:1021D000FC1C9F92AF92BF92CF92DF92EF92FF9240 +:1021E0000F931F93CF93DF9300D000D000D0CDB7D3 +:1021F000DEB70E94F3030DE010E0AA24A394B12CF3 +:10220000902E802F0E94E104980129583E4F6901C9 +:10221000F901F080F826A1F40150110988F78FEF39 +:1022200089838A831B820E94431C8160782F9D834F +:102230008C8349815A816B818D810E9480112FC0CE +:102240009091DA0191FF04C08E830E94E7048E8191 +:1022500025E030E0A501022E01C0440F0A94EAF700 +:10226000E42E4F21C1F029839A828E2191E009F456 +:1022700090E09B830E94431C8160782F9D838C8318 +:1022800049815A816B818D810E948011F601808184 +:10229000E826E08204C021503109E0F6BDCF0E945B +:1022A000E31F109176010E9492101817B9F00E9456 +:1022B00092108093760126960FB6F894DEBF0FBE7B +:1022C000CDBFDF91CF911F910F91FF90EF90DF90E5 +:1022D000CF90BF90AF909F900C948B0926960FB62D +:1022E000F894DEBF0FBECDBFDF91CF911F910F914C +:1022F000FF90EF90DF90CF90BF90AF909F900895A8 +:10230000CF93DF93CDB7DEB72B970FB6F894DEBF30 +:102310000FBECDBF4F83588769877A878B87DE01D1 +:10232000119686E0FD0111928A95E9F785E0FE019C +:10233000379601900D928A95E1F749815A816B8118 +:102340007C818D819E810E94C9172B960FB6F894CF +:10235000DEBF0FBECDBFDF91CF910895CF9388230D +:1023600009F4C2C0C82F823859F40E94921081FD2E +:10237000BBC089E30E94A31A0E94701B89E30CC0B2 +:10238000833879F40E94921080FDAEC083E50E94EC +:10239000A31A0E94701B83E50E94E51ACF910C944A +:1023A000701B843859F40E94921082FD9DC087E40E +:1023B0000E94A31A0E94701B87E4EECF8CEF8C0F53 +:1023C000813A48F48C2F0E94262281118DC08C2FD7 +:1023D0000E94A31AE3CF80E28C0F883048F4C770C4 +:1023E00081E001C0880FCA95EAF70E94291BD6CF69 +:1023F0008BE58C0F833078F4C53A29F0C63A31F07A +:1024000083E890E005C081E890E002C082E890E0B7 +:10241000CF910C94B41088E58C0F833108F064C020 +:10242000C83A39F1C93A41F1CA3A49F1CB3A51F1C6 +:10243000CC3A59F1CD3A61F1C03B69F1CE3A71F134 +:10244000CF3A79F1C13B81F1C23B89F1C33B91F1B4 +:10245000C43B99F1C53BA1F1C63BA9F1C73BB1F122 +:10246000C83BB9F1C93BC1F1CA3BC9F180E090E07A +:1024700038C082EE90E035C089EE90E032C08AEE3E +:1024800090E02FC085EB90E02CC086EB90E029C057 +:1024900087EB90E026C08CEC90E023C08DEC90E0C0 +:1024A00020C083E891E01DC08AE891E01AC082E96B +:1024B00091E017C084E991E014C081E292E011C07C +:1024C00083E292E00EC084E292E00BC085E292E0EB +:1024D00008C086E292E005C087E292E002C08AE28C +:1024E00092E0CF910C94CA10CF910895882309F4FB +:1024F0004BC0823859F40E94921081FF45C089E395 +:102500000E94A31A0E94701B89E30CC0833871F4E7 +:102510000E94921080FF38C083E50E94A31A0E9497 +:10252000701B83E50E94E51A0C94701B843859F4E3 +:102530000E94921082FF28C087E40E94A31A0E9482 +:10254000701B87E4EFCF9CEF980F913A58F390E21D +:10255000980F983050F4877091E001C0990F8A95D8 +:10256000EAF7892F0E942F1BDFCF9BE5980F93304E +:1025700020F480E090E00C94B410885A833120F469 +:1025800080E090E00C94CA100895882321F00E9406 +:10259000291B0C94701B0895882321F00E942F1B87 +:1025A0000C94701B08957F928F929F92AF92BF926E +:1025B000CF92DF92EF92FF920F931F93CF93DF930F +:1025C0001F92CDB7DEB77C01C62E772EFC010581A8 +:1025D00002950F70128111110E94461B0E949C1AD5 +:1025E000882379F0112369F080E28C0D883048F05F +:1025F00082E00E94851A0E949C1A91E0D82ED9266A +:1026000001C0D12CE72DE295EF70F0E0E05AFF4FCA +:102610000C945B24872D807F072D0F70882311F089 +:102620000295007F112389F0002309F490C180E214 +:102630008C0D883020F4802F0E94291B03C0802F2E +:102640000E94391B0E94701B82C18C2D0E94761241 +:10265000002309F495C180E28C0D883020F4802F8E +:102660000E942F1B03C0802F0E943F1B0E94701BE3 +:1026700087C1972D907F872D8F70903211F08295B2 +:10268000807FCC2021F0F1E0CF16B1F01EC01123E5 +:1026900049F0002309F414C1013009F011C10E946E +:1026A000591B6EC1002319F0013009F469C18983F7 +:1026B0000E945C1B89810AC1112321F0023008F0BD +:1026C0005FC1FEC001115CC101C1112321F00023D3 +:1026D00009F4F6C03CC1002309F4F8C03EC1872DBF +:1026E00086958695837090E0009719F0019761F0C8 +:1026F00047C1112321F08C2D972D937002C080E0EB +:1027000090E00E94B4103CC1112321F08C2D972D34 +:10271000937002C080E090E00E94CA1031C18C2DFD +:10272000112319F00E94EB1E02C00E94531F0E9449 +:10273000D81F26C1872D837009F052C0111120C106 +:102740008C2D829586958770880F880F9C2D9F70A1 +:10275000892E912CA12CB12C082E04C0880C991C18 +:10276000AA1CBB1C0A94D2F7C4FE14C00FE010E0F0 +:1027700020E030E0B901A80104C0440F551F661FD6 +:10278000771F8A95D2F7CB01BA0160957095809535 +:10279000909503C060E070E0CB01272D269526952B +:1027A000237030E02230310569F02330310589F0A3 +:1027B000682979298A299B292130310571F00E94E5 +:1027C0001119DEC0682979298A299B290E942D19AF +:1027D000D7C00E941119C501B4010E94F518D0C0DC +:1027E000112319F0872D817001C08695882309F483 +:1027F000C7C08C2D829586958770880F880F9C2D79 +:102800009F70892E912CA12CB12C082E04C0880C0D +:10281000991CAA1CBB1C0A94D2F7C4FE14C00FE07A +:1028200010E020E030E0B901A80104C0440F551FBA +:10283000661F771F8A95D2F7CB01BA016095709514 +:102840008095909503C060E070E0CB01272D269520 +:1028500026952370422F50E04230510569F04330F5 +:10286000510589F0682979298A299B294130510528 +:1028700071F00E94EB1984C0682979298A299B2963 +:102880000E94071A7DC00E94EB19C501B4010E9485 +:10289000CF1976C08C2D90E0FC01E05EF109E531A6 +:1028A000F10508F050C0E059FF4F0C945B240C2D4B +:1028B0000F70872D8F71112331F00E946819802FBE +:1028C0000E94C5125DC00E948919802F0E94CC12FF +:1028D00057C0112339F0011153C0872D8F710E9409 +:1028E000AE194EC0023008F04BC0F7CF112339F0BB +:1028F000872D8F710E94681943C01123C9F3872D5A +:102900008F710E9489193CC0112329F0872D8F7186 +:102910000E94531935C00E94491932C0112351F049 +:10292000172D1F71812F0E94681963E0812F0E946B +:102930007C1A26C081E00E94851A023008F182E0EC +:102940000E94851A1DC0112331F0002389F28C2DBD +:102950000E94AE1115C0002391F28C2D0E947612B8 +:102960000FC0472D4F706C2DC7010E94BD050E94FE +:102970006D1806C0472D4F706C2DC7010E949A0636 +:10298000DD20F9F00E94781A80FD1BC0F701128249 +:102990000E94721A0E946819C7010E94F0140E94D6 +:1029A000721A0F90DF91CF911F910F91FF90EF90CE +:1029B000DF90CF90BF90AF909F908F907F900C94BE +:1029C00089190F90DF91CF911F910F91FF90EF9098 +:1029D000DF90CF90BF90AF909F908F907F900895A1 +:1029E0000F931F93CF93DF93EC01888199812B8103 +:1029F0003C81232BB9F09F3F11F48F3F99F0CE011A +:102A00000E94F205882371F0688179818A810E9491 +:102A10006E1A8C010E94231A0E94EA18B801CE0196 +:102A20000E94D312DF91CF911F910F9108950E94C0 +:102A3000461B0E94561B0E941B1B0E94701B0E947B +:102A400089200E94D81F80E090E00E94B41080E0AE +:102A500090E00C94CA100E94361B0C9417150E942B +:102A6000631A292F22952F7030E02C3031054CF459 +:102A70002A3031056CF42250310922303105A8F496 +:102A800007C02C30310569F02F30310551F00DC0F1 +:102A9000803F69F018F4803E40F409C0843F29F477 +:102AA00006C093FB882780F9089580E0089581E0AF +:102AB0000895CF93DF9300D000D01F92CDB7DEB73B +:102AC0000F900F900F900F900F90DF91CF9108957E +:102AD000CF93DF9300D000D000D0CDB7DEB72696DD +:102AE0000FB6F894DEBF0FBECDBFDF91CF91089532 +:102AF0001F93CF93DF93C091850116E080918601EB +:102B0000C81799F0D0E01C9FF0011D9FF00D112413 +:102B1000E957FE4F408151816281738184819581A3 +:102B20000E9468152196C770E9CFDF91CF911F9160 +:102B300008954091B7015091B8016091B901709129 +:102B4000BA018091BB019091BC010C9468158091F1 +:102B5000BC0182958F7009F054C08091B90188231F +:102B600009F44FC080918501A09186016091B70161 +:102B70007091B8014091BA015091BB01B6E08A173B +:102B800009F43FC090E041155105C1F17F3F11F4B8 +:102B90006F3FA1F1B89FF001B99FF00D1124E957E3 +:102BA000FE4F218172132AC02081621327C0228127 +:102BB000211124C0238134812417350710F42150BA +:102BC0003109241B350B283C3105C0F42091BC0190 +:102BD0002F7020612093BC0126E0289FF001299FDF +:102BE000F00D1124E457FE4F80818F708061808347 +:102BF00087EB91E00E94F0140C9478150196877091 +:102C0000BECF0895CF92DF92EF92FF920F931F9362 +:102C1000CF93DF93CDB7DEB762970FB6F894DEBFE0 +:102C20000FBECDBF8C0185E0F801DE011D9601903D +:102C30000D928A95E1F7D8014C9111965C9111970C +:102C400012966C9112971396CD90DC901497309158 +:102C5000B7017091B8018091BA019091BB010097C2 +:102C600009F46BC17F3F19F43F3F09F466C1E0905E +:102C7000B901EE2009F4C0C02091BC01C816D906E4 +:102C800028F0F601E81BF90BCF0104C08095909560 +:102C90008C0D9D1DFF24F394883C910578F0F12C58 +:102CA000207F09F0C6C07C2DD98AC88A89890E94F4 +:102CB000591587EB91E00E94F014B1C0822F807FFC +:102CC00009F046C0751314C0341312C0611110C04E +:102CD0002F7020612093BC010E94991587EB91E031 +:102CE0000E94F0148091BC01D80115968C932EC0DF +:102CF000CD2819F15F3F11F44F3FF9F0F62E611125 +:102D00001CC0809185012091860136E0821709F46C +:102D10005AC090E0389FF001399FF00D1124E95717 +:102D2000FE4F7181571306C07081471303C0728133 +:102D3000711103C001968770E9CFF62E662309F45E +:102D400018C18091BC0181608093BC01F12C11C13C +:102D5000751308C0341306C0611104C08091BC0112 +:102D6000D801C3C04D875E878D859E856A8B0E9482 +:102D70002F156A898823E1F16623D1F12091BC01E6 +:102D8000822F82958F7090E0029774F08091B70146 +:102D90009091B80198878F831986DB86CA862C8725 +:102DA000CE0107960E94F01486E0F801A7EBB1E08F +:102DB00001900D928A95E1F70E94A7150E9499153E +:102DC000FF24F394D6C04D875E878D859E850E9433 +:102DD000631A292F22952F7030E0223031050CF034 +:102DE000BCC09F7009F0B6C0805E883008F4C1C0D6 +:102DF000C8010E94F014E4CFC816D90608F453C0E5 +:102E0000F601E81BF90BCF01883C910508F450C08E +:102E1000F12C7C2DD98AC88A89890E945915E7EB43 +:102E2000F1E086E0DF011D928A95E9F70E9499158D +:102E3000A0C0751314C0341312C0611110C080916A +:102E4000BC01F8018583C8010E94F01486E0E7EB1D +:102E5000F1E0DF011D928A95E9F7FE2C8AC04D87CB +:102E60005E878D859E856A8B0E942F156A898823CF +:102E700009F4BECF662309F4BBCF2091BC01822F99 +:102E800082958F7090E002970CF48ECF8091B701FD +:102E90009091B8019A8389831B82DD82CC822E8334 +:102EA000CE0101967FCF809590958C0D9D1DACCF66 +:102EB000F62E662309F49CCF75132EC034132CC054 +:102EC0002091BC0120FD1FC0822F82958F70D9F008 +:102ED000D80115962C9315978F3049F08F5F982F56 +:102EE0009295907F822F8F70892B15968C93C801B5 +:102EF0000E94F01486E0F801A7EBB1E001900D927A +:102F00008A95E1F793CF86E0F801A7EBB1E0019055 +:102F10000D928A95E1F72DC04D875E878D859E8540 +:102F20000E942F15811140CF8091BC018160809358 +:102F3000BC01C8010E94F0141CC0662309F458CFDC +:102F40004D875E878D859E850E942F15882309F405 +:102F50004FCF2ACF811148CF0CC0243031050CF05F +:102F600047CF9F7009F440CFF8019581907F09F019 +:102F70003BCF8F2D62960FB6F894DEBF0FBECDBF4C +:102F8000DF91CF911F910F91FF90EF90DF90CF9045 +:102F900008951F93CF93DF93CDB7DEB72C970FB66D +:102FA000F894DEBF0FBECDBF4F83588769877A87FD +:102FB0008B879C87CE0107960E940216882369F0B2 +:102FC0008F8198852A853B85232BF1F19F3F09F05E +:102FD00063C08F3F09F060C037C086E0FE013796BE +:102FE000DE01119601900D928A95E1F76F81788547 +:102FF000EA85FB85309741F17F3F11F46F3F21F166 +:103000002091860130E0C90101968770992740918F +:10301000850150E08417950709F447C069837A83D6 +:10302000FD83EC8396E0929FD001939FB00D112415 +:10303000A957BE4FFE01319601900D929A95E1F786 +:10304000809386010E94781516E080918501909109 +:1030500086018917C1F1189FC001112489579E4F1D +:103060000E940216882379F1E09185011E9FF001EC +:103070001124E957FE4F408151816281738184811F +:1030800095810E9468158091850190E00196877076 +:10309000992780938501D9CF4F81588569857A8595 +:1030A0008B859C850E946815CFCF0E942B151092AE +:1030B000860110928501E7EBF1E086E0DF011D92C9 +:1030C0008A95E9F7C1CF2C960FB6F894DEBF0FBEF4 +:1030D000CDBFDF91CF911F910895EF92FF920F9393 +:1030E0001F93CF93DF938C01009709F46CC0F12CF0 +:1030F000EE24E394E8012196F8018491843740F4AA +:10310000843008F051C0813081F0823019F15BC009 +:10311000853709F444C0A8F19CE7980F903708F070 +:1031200052C08F770E94761241C00E5F1F4FFE0182 +:10313000C49180E28C0F883048F4C7708E2D01C096 +:10314000880FCA95EAF70E94491B14C08C2F0E9471 +:10315000AE112DC00E5F1F4FFE01C49180E28C0F97 +:10316000883058F4C7708E2D01C0880FCA95EAF7D1 +:103170000E944F1B0E94701B1AC08C2F0E94761257 +:1031800016C00E5F1F4FFE01C491CC2381F08FE962 +:103190009FE00197F1F700C00000C150F6CF0E5F2D +:1031A0001F4FFE01F49003C00E94AE118E018F2DBF +:1031B000882309F49FCFEFE9FFE03197F1F700C0D2 +:1031C00000008150F5CFDF91CF911F910F91FF90BB +:1031D000EF90089508956093C1017093C2018093A8 +:1031E000C3019093C4010C9417150F931F93009182 +:1031F000C1011091C2012091C3013091C401DC01D1 +:10320000CB01802B912BA22BB32B8093C1019093E8 +:10321000C201A093C301B093C4011F910F910C94FC +:1032200017150F931F930091C1011091C2012091B6 +:10323000C3013091C401DC01CB0180239123A2237F +:10324000B3238093C1019093C201A093C301B093B3 +:10325000C4011F910F910C9417150F931F930091A8 +:10326000C1011091C2012091C3013091C401DC0160 +:10327000CB0180279127A227B3278093C101909388 +:10328000C201A093C301B093C4011F910F910C948C +:1032900017151092BD011092BE011092BF0110923D +:1032A000C0010C94171541E050E060E070E004C0EC +:1032B000440F551F661F771F8A95D2F74093BD01B3 +:1032C0005093BE016093BF017093C0010C94171519 +:1032D00041E050E060E070E004C0440F551F661FFD +:1032E000771F8A95D2F78091BD019091BE01A09180 +:1032F000BF01B091C001482B592B6A2B7B2B409307 +:10330000BD015093BE016093BF017093C0010C9446 +:10331000171541E050E060E070E004C0440F551F15 +:10332000661F771F8A95D2F74095509560957095E6 +:103330008091BD019091BE01A091BF01B091C001EB +:10334000482359236A237B234093BD015093BE0138 +:103350006093BF017093C0010C94171541E050E0D9 +:1033600060E070E004C0440F551F661F771F8A9508 +:10337000D2F78091BD019091BE01A091BF01B091A3 +:10338000C001482759276A277B274093BD015093E6 +:10339000BE016093BF017093C0010C9417150F9389 +:1033A0001F930091BD011091BE012091BF0130918A +:1033B000C001DC01CB01802B912BA22BB32B80937E +:1033C000BD019093BE01A093BF01B093C0011F91B6 +:1033D0000F910C9417150F931F930091BD0110913D +:1033E000BE012091BF013091C001DC01CB018023DF +:1033F0009123A223B3238093BD019093BE01A09398 +:10340000BF01B093C0011F910F910C9417150F933A +:103410001F930091BD011091BE012091BF01309119 +:10342000C001DC01CB0180279127A227B32780931D +:10343000BD019093BE01A093BF01B093C0011F9145 +:103440000F910C9417150895CF92DF92EF92FF928F +:103450000F931F93CF93DF938C01C090C101D09045 +:10346000C201E090C301F090C4018091BD01909130 +:10347000BE01A091BF01B091C001C82AD92AEA2A91 +:10348000FB2ACFE1D0E0D701C6010C2E04C0B695CF +:10349000A795979587950A94D2F780FF06C0B80143 +:1034A0008C2F0E94F008019721F4219760F780E0AB +:1034B00001C08C2FDF91CF911F910F91FF90EF9062 +:1034C000DF90CF900895CF93DF93EC010E94241AF0 +:1034D000BE010E94F008DF91CF910895CB010E94B8 +:1034E000631A08958091C501859585958595089500 +:1034F0008091C5018770089598E0899F90011124FB +:10350000262B2093C5010C9468192091C501809544 +:1035100082238093C501982F977069F430E0482F7B +:10352000552747FD50952417350729F08595859532 +:1035300085950C94891908959091C501977081E043 +:1035400009F480E0089590910C01992321F0909165 +:103550000D01911109C020910E0130910F01F90167 +:1035600032969FEF40E01FC0982F969596959695BE +:103570009F3050F5E0910E01F0910F01E90FF11D20 +:10358000877021E030E0A90102C0440F551F8A95E1 +:10359000E2F7CA019181892B818308959F3F39F019 +:1035A0004F5F4E3041F051915813F8CF0DC051117B +:1035B000F7CF942FF5CF9F3F39F0F901E90FF11DB7 +:1035C00097FDFA9582830895089590910C019923AF +:1035D00021F090910D01911109C020910E013091BF +:1035E0000F01F9013296205F3F4F1FC0982F96952B +:1035F000969596959F30F0F4E0910E01F0910F01B1 +:10360000E90FF11D877021E030E0A90102C0440FED +:10361000551F8A95E2F7CA0180959181892381839C +:1036200008953196E217F30729F090819813F9CFA6 +:103630001082F7CF089581E090E0E0910E01F091C3 +:103640000F01E80FF91F1082019680319105A9F74B +:1036500008959091D901892B8093D901089580957F +:103660009091D90189238093D90108951092D901AD +:1036700008959091D801892B8093D8010895809561 +:103680009091D80189238093D80108951092D80190 +:1036900008959091D701892B8093D7010895809543 +:1036A0009091D70189238093D70108951092D70173 +:1036B00008958093C60108951092C60108958091DF +:1036C0000E0190910F01FC0131969C01205F3F4F4C +:1036D00080E0919191118F5FE217F307D1F7089580 +:1036E000E0910E01F0910F018091D9018083E0916A +:1036F0000E01F0910F0190818091D801892B808378 +:10370000E0910E01F0910F0190818091D701892BFA +:1037100080838091C601882361F0E0910E01F091D1 +:103720000F019081892B80830E945F1B8111109271 +:10373000C60180910E0190910F010C949E1020E023 +:10374000009739F0AC0141505109842395232F5F34 +:10375000F7CF822F0895CF92DF92EF92FF926C0104 +:10376000EE24FF24C114D104E104F10421F0C701C7 +:10377000B60120E101C020E0C72ED82EE92EFF249B +:10378000C114D104E104F10419F0285FC701B601A6 +:103790006B017C0154E0F694E794D794C7945A9552 +:1037A000D1F7C114D104E104F10419F02C5FC70171 +:1037B000B6016B017C0142E0F694E794D794C7947C +:1037C0004A95D1F7C114D104E104F10419F02E5F38 +:1037D000C701B601DC01CB01B695A79597958795F2 +:1037E000892B8A2B8B2B09F02F5F822FFF90EF9074 +:1037F000DF90CF9008958091F101843021F11092F3 +:10380000DB0120E488E190E00FB6F894A89580935E +:1038100060000FBE2093600080E00E948B0983B798 +:10382000817F846083BF83B7816083BF78948895EC +:1038300083B78E7F83BF88E10FB6F89480936000D2 +:10384000109260000FBE0895089508950E94241CF0 +:103850000E94F3030E94251C0E94E80491E081115C +:1038600001C090E0892F08950E942B150E949210AC +:103870000C948B0982E084BD93E095BD9AEF97BDCF +:1038800080936E0008952FB7F8948091DC01909199 +:10389000DD01A091DE01B091DF012FBF0895CF922D +:1038A000DF92EF92FF920F931F932FB7F8944091FE +:1038B000DC015091DD016091DE017091DF012FBFCD +:1038C0006A017B01EE24FF248C0120E030E0C01669 +:1038D000D106E206F30610F4415051099A01281B63 +:1038E000390BC9011F910F91FF90EF90DF90CF909E +:1038F00008951F920F920FB60F9211248F939F93EA +:10390000AF93BF938091DC019091DD01A091DE0126 +:10391000B091DF010196A11DB11D8093DC01909350 +:10392000DD01A093DE01B093DF01BF91AF919F91C4 +:103930008F910F900FBE0F901F9018950E948F0DC2 +:10394000F8942FEF87EA91E6215080409040E1F70C +:1039500000C0000087E090EBDC018093FB019093B6 +:10396000FC01A093FD01B093FE019CE088E10FB63D +:10397000F894A895809360000FBE90936000FFCFED +:10398000EF92FF920F931F93CF93DF93D82FCDE049 +:103990008C2F0E94E10405E010E0E82EF12CC70115 +:1039A000002E02C0959587950A94E2F780FF09C022 +:1039B000602F7C2F80E00E949B06D81302C081E01C +:1039C00006C00150110958F7C15010F780E0DF918F +:1039D000CF911F910F91FF90EF900895CF93C82F33 +:1039E0008CE20E94C01C882321F08C2FCF910C9474 +:1039F000C01C80E0CF910895CF930E94431E811197 +:103A000002C00E94291EC5E6C15049F00E94F3037E +:103A10008FE39CE90197F1F700C00000F5CF89E240 +:103A20000E94EE1C811113C18AE20E94EE1C8111DA +:103A30000E94291E85E00E94EE1C81110E949E1C9E +:103A40000E944E1E8093DA0187E00E94EE1C8823BC +:103A5000A9F18BE10E94EE1C882351F08091DA01DC +:103A600081FB222720F991E0922790FB81F90EC07B +:103A70008EE00E94EE1C882361F08091DA0182FBC7 +:103A8000222720F991E0922790FB82F98093DA01B6 +:103A900015C080E10E94EE1C9091DA01882341F06C +:103AA00093FB222720F981E0822780FB93F904C051 +:103AB000892F809580FB90F99093DA018091DA014B +:103AC0000E94521E0E94601E8093FA0180EE0E94A6 +:103AD000EE1C882341F08091FA01982F909590FB7D +:103AE00080F98093FA0189E30E94EE1C882359F043 +:103AF0008091FA0181FB222720F991E0922790FB27 +:103B000081F98093FA0182EE0E94EE1C882359F01D +:103B10008091FA0182FB222720F991E0922790FB05 +:103B200082F98093FA0186EE0E94EE1C882359F0F8 +:103B30008091FA0183FB222720F991E0922790FBE4 +:103B400083F98093FA0183EE0E94EE1C882359F0DA +:103B50008091FA0184FB222720F991E0922790FBC3 +:103B600084F98093FA0185E30E94EE1C882359F0C2 +:103B70008091FA0185FB222720F991E0922790FBA2 +:103B800085F98093FA0181E30E94EE1C882359F0A5 +:103B90008091FA0186FB222720F991E0922790FB81 +:103BA00086F98093FA0181E10E94EE1C882359F086 +:103BB0008091FA0187FB222720F991E0922790FB60 +:103BC00087F98093FA018091FA010E94641E809126 +:103BD000FA0187FB882780F980930D0187E20E9414 +:103BE000EE1CC82F8EE10E94EE1C8111C2608FE195 +:103BF0000E94EE1C8111C46080E20E94EE1C8111C3 +:103C0000C86081E20E94EE1C8111C06182E20E94C4 +:103C1000EE1C8111C06283E20E94EE1C8111C0641F +:103C200084E20E94EE1C882311F0C06802C0CC23FD +:103C300029F08C2F0E945B1E6C2F03C00E94571E20 +:103C4000682F70E080E090E0CF910C94EB18CF915A +:103C500008956DEE7EEF80E090E00E94952460E094 +:103C600082E090E00E94832460E083E090E00E9484 +:103C7000832460E084E090E00E94832460E085E09B +:103C800090E00C94832480E090E00E947D2421E069 +:103C90008D3E9E4F09F020E0822F089582E090E053 +:103CA0000C947524682F82E090E00C94832483E0C8 +:103CB00090E00C947524682F83E090E00C948324AA +:103CC00084E090E00C947524682F84E090E00C94DC +:103CD00083248091E20180FF0BC06091130185E095 +:103CE000689FB001112475956795759567952BC0F0 +:103CF00081FF09C06091130185E0689FB001112424 +:103D00007595679520C082FF07C06091130185E01B +:103D1000689FB001112417C09091E3019923D1F05D +:103D200060911201961788F72091130185E0289F72 +:103D300090011124929FA001939F500D112470E0D7 +:103D4000CA010E9447246038710540F4611571056D +:103D500039F002C065E070E0862F08958FE708957E +:103D600081E008958091E20180FF08C06091110117 +:103D700070E0759567957595679521C081FF06C0C0 +:103D80006091110170E07595679519C082FF04C0BC +:103D90006091110170E010C09091E3019923C1F08E +:103DA000609110019617A0F780911101899FC001C1 +:103DB000112470E00E9447246038710528F46115D1 +:103DC000710521F0862F08958FE7089581E0089509 +:103DD00061E070E0F4CF803F21F40E94691E81957C +:103DE00004C0813F29F40E94691E8093E601089572 +:103DF000823F21F40E94691E819504C0833F29F40B +:103E00000E94691E8093E5010895893F19F40E947C +:103E1000B21E05C08A3F31F40E94B21E8195809384 +:103E2000E70108958B3F21F40E94B21E819504C0E2 +:103E30008C3F29F40E94B21E8093E8010895843FCC +:103E400021F48091E401816017C0853F21F48091C5 +:103E5000E401826011C0863F21F48091E401846016 +:103E60000BC0873F21F48091E401886005C0883F42 +:103E700031F48091E40180618093E40108958D3FE5 +:103E800021F48091E20181600BC08E3F21F480918A +:103E9000E201826005C08F3F29F48091E2018460D5 +:103EA0008093E2010895803F39F48091E60187FF15 +:103EB0006CC01092E60169C0813F29F48091E6014F +:103EC0001816BCF362C09091E501823F29F497FF78 +:103ED0005CC01092E50159C0833F19F41916CCF368 +:103EE00054C0893F41F48091E70118160CF04DC091 +:103EF0001092E7014AC08A3F29F48091E70187FFC9 +:103F000044C0F6CF8B3F39F48091E80187FF3DC074 +:103F10001092E8013AC08C3F29F48091E80118160C +:103F2000BCF333C0843F21F48091E4018E7F17C03D +:103F3000853F21F48091E4018D7F11C0863F21F4FB +:103F40008091E4018B7F0BC0873F21F48091E401D5 +:103F5000877F05C0883F31F48091E4018F7E809394 +:103F6000E40113C08D3F21F48091E2018E7F0BC0EC +:103F70008E3F21F48091E2018D7F05C08F3F29F4AF +:103F80008091E2018B7F8093E2018091E5018111B4 +:103F90000EC08091E60181110AC08091E701811174 +:103FA00006C08091E801811102C01092E3010895DA +:103FB00084EE91E00E94A9100E94431C9093E101BD +:103FC0008093E00108951F93CF93DF938091E001E8 +:103FD0009091E1010E944F1CAC019091E301992363 +:103FE00021F02091140130E006C0209115018AE0F3 +:103FF000289F900111244217530708F486C080912E +:10400000E501C091E601D091E7011091E80181112D +:1040100007C0C11176C0D11174C0111172C075C032 +:104020009F3F19F09F5F9093E301181624F40E94BC +:10403000691E8093E5018091E50187FF05C00E941C +:10404000691E81958093E5011C1624F40E94691E67 +:104050008093E6018091E60187FF05C00E94691EFA +:1040600081958093E6016091E501662339F1C09165 +:10407000E601CC2319F1772767FD7095872F972FDD +:104080000E94582323E333E343E35FE30E94BC230E +:104090000E9425236093E5016C2F772767FD7095BB +:1040A000872F972F0E94582323E333E343E35FE3F3 +:1040B0000E94BC230E9425236093E6011D1624F470 +:1040C0000E94B21E8093E7018091E70187FF05C03F +:1040D0000E94B21E81958093E701111624F40E947C +:1040E000B21E8093E8018091E80187FF05C00E941D +:1040F000B21E81958093E801DF91CF911F910C94BE +:10410000D81F9F3F09F08ECF96CFDF91CF911F919F +:104110000895E4EEF1E085E0DF011D928A95E9F76C +:104120001092E3011092E2010895833081F128F4A6 +:10413000813059F08230D1F00895853009F449C0BA +:10414000B8F1863009F456C0089580911501262FE4 +:1041500030E0280F311D2F3F310524F4680F6093A4 +:10416000150108958FEF8093150108958091140132 +:10417000262F30E0280F311D2F3F310524F4680F22 +:104180006093140108958FEF809314010895809136 +:104190001301262F30E0280F311D2F3F310524F465 +:1041A000680F6093130108958FEF809313010895B2 +:1041B00080911201262F30E0280F311D2F3F31054D +:1041C00024F4680F6093120108958FEF8093120119 +:1041D000089580911101262F30E0280F311D2F3FC7 +:1041E000310524F4680F6093110108958FEF8093D7 +:1041F0001101089580911001262F30E0280F311D04 +:104200002F3F310524F4680F6093100108958FEF5C +:10421000809310010895833011F128F4813049F022 +:10422000823091F00895853081F120F18630C1F11E +:10423000089580911501681720F4861B809315015D +:10424000089510921501089580911401681720F4C3 +:10425000861B809314010895109214010895809193 +:104260001301681720F4861B8093130108951092A0 +:104270001301089580911201681720F4861B809322 +:10428000120108951092120108958091110168178A +:1042900020F4861B80931101089510921101089556 +:1042A00080911001681720F4861B809310010895F7 +:1042B0001092100108950F931F938D3109F46BC074 +:1042C00008F03FC08E3009F47FC0C0F4873009F495 +:1042D00069C068F4863009F0B1C08091DA01817F4D +:1042E0008E7F8093DA0181E08093EA01A8C0883054 +:1042F00009F4A2C08B3009F49FC0A0C0863109F434 +:104300009BC078F4803109F472C0813109F096C005 +:104310000E942B1590910D0181E0892780930D015A +:104320008BC0893109F488C08B3109F087C0809136 +:10433000DA0181FB222720F991E0922790FB81F995 +:104340004CC0853309F470C048F4873209F46CC05E +:1043500008F459C0893209F467C070C0833438F456 +:104360008A3308F04EC0883309F466C067C08334CE +:1043700009F45AC0883409F061C00E942B150FEF70 +:1043800013ED20E3015010402040E1F700C0000091 +:104390000E949E1C51C00E94DF220E9492100E9427 +:1043A0008B094AC09091DA01892F8095817080FB3A +:1043B00090F929F0966098609093DA0140C0997F57 +:1043C000977F9093DA0138C08091DA0182FB22272F +:1043D00020F991E0922790FB82F98093DA019923EA +:1043E00059F18091DA0181608093DA0125C08091D2 +:1043F000DA0183FB222720F991E0922790FB83F9D1 +:10440000ECCF895301C08D5141E050E060E070E095 +:104410008A019B0104C0000F111F221F331F8A95C0 +:10442000D2F7C901B80104C061E070E080E090E01B +:104430000E94EB180E942B1581E001C080E01F91C3 +:104440000F91089580E0089580E00895CF93C82FDC +:104450008091EA01813079F018F08230E9F187C06B +:10446000E0910E01F0910F018081813169F082327B +:1044700009F07FC009C0E0910E01F0910F01808129 +:10448000813111F0823261F48C2F0E94222281113D +:1044900004C08C2F0E945B211DC081E090E01AC0F7 +:1044A0008C2F0E942422811114C0C43179F048F469 +:1044B000CB3079F0C03109F060C082E08093EA012E +:1044C00008C0C93219F0C83321F057C01092EA0170 +:1044D00054C081E0817053C0C93289F118F5C431EC +:1044E00071F1A8F4C73009F046C08AE08093150145 +:1044F00094E19093140193E090931301809312013F +:1045000088E08093110188E28093100134C0CE517D +:10451000C63088F5EC2FF0E0E65DFE4F8081809399 +:10452000E90129C0CE34E9F020F4CB3421F56AE06A +:1045300013C0C13579F0C235F1F461E00DC080914E +:10454000E901882319F01092E90115C081E08093F8 +:10455000EA0115C061E006C08091E9010E94952042 +:104560000AC06AE08091E9010E940B2104C0109208 +:10457000EA0180E004C081E002C080E0ABCFCF91CF +:104580000895E1E8F0E08081886080838081816027 +:1045900080838FB7F89493E09093890090ED909387 +:1045A00088008FBF0895EFE6F0E08081826080830D +:1045B0000895EFE6F0E080818D7F80830895EFE637 +:1045C000F0E0908182E08927808308951F920F9206 +:1045D0000FB60F9211242F933F934F935F936F93D6 +:1045E0007F938F939F93AF93BF93EF93FF938091AC +:1045F000EB019091EC0101969093EC018093EB011B +:10460000811103C082E00E948B09E091EC01E695E4 +:10461000E695F0E0EC5FF94FE4918091EB018E13A9 +:1046200003C080E00E948B09FF91EF91BF91AF9191 +:104630009F918F917F916F915F914F913F912F91BA +:104640000F900FBE0F901F90189504D06894B11171 +:104650008DC0089570D088F09F5790F0B92F99279A +:10466000B751A0F0D1F0660F771F881F991F1AF07D +:10467000BA95C9F712C0B13081F077D0B1E0089592 +:1046800074C0672F782F8827B85F39F0B93FCCF313 +:10469000869577956795B395D9F73EF49095809573 +:1046A000709561957F4F8F4F9F4F0895E89409C093 +:1046B00097FB3EF490958095709561957F4F8F4F55 +:1046C0009F4F9923A9F0F92F96E9BB279395F6956B +:1046D000879577956795B795F111F8CFFAF4BB0FE9 +:1046E00011F460FF1BC06F5F7F4F8F4F9F4F16C04D +:1046F000882311F096E911C0772321F09EE8872FD7 +:10470000762F05C0662371F096E8862F70E060E092 +:104710002AF09A95660F771F881FDAF7880F96950B +:10472000879597F9089557FD9058440F551F59F0F4 +:104730005F3F71F04795880F97FB991F61F09F3F8E +:1047400079F087950895121613061406551FF2CFB7 +:104750004695F1DF08C0161617061806991FF1CF07 +:1047600086957105610508940895E894BB2766272E +:104770007727CB0197F908950BD078C069D028F03E +:104780006ED018F0952309F05AC05FC01124EECF07 +:10479000CADFA0F3959FD1F3950F50E0551F629F9C +:1047A000F001729FBB27F00DB11D639FAA27F00D8A +:1047B000B11DAA1F649F6627B00DA11D661F829FB1 +:1047C0002227B00DA11D621F739FB00DA11D621F96 +:1047D000839FA00D611D221F749F3327A00D611DB3 +:1047E000231F849F600D211D822F762F6A2F112495 +:1047F0009F5750408AF0E1F088234AF0EE0FFF1FE8 +:10480000BB1F661F771F881F91505040A9F79E3F1E +:10481000510570F014C0AACF5F3FECF3983EDCF373 +:10482000869577956795B795F795E7959F5FC1F75B +:10483000FE2B880F911D9695879597F9089597F906 +:104840009F6780E870E060E008959FEF80EC089536 +:1048500000240A941616170618060906089500245F +:104860000A9412161306140605060895092E0394D9 +:10487000000C11F4882352F0BB0F40F4BF2B11F44D +:1048800060FF04C06F5F7F4F8F4F9F4F089597FB6E +:10489000072E16F4009407D077FD09D00E946124FA +:1048A00007FC05D03EF4909581959F4F0895709533 +:1048B00061957F4F0895EE0FFF1F0590F491E02D55 +:1048C0000994AA1BBB1B51E107C0AA1FBB1FA61757 +:1048D000B70710F0A61BB70B881F991F5A95A9F7A9 +:1048E00080959095BC01CD010895F999FECF92BDB8 +:1048F00081BDF89A992780B50895A8E1B0E042E01B +:1049000050E00C949D24262FF999FECF92BD81BDD5 +:10491000F89A019700B4021639F01FBA20BD0FB6FD +:10492000F894FA9AF99A0FBE08950196272F0E94DB +:1049300084240C948324DC01CB01FC01F999FECF83 +:1049400006C0F2BDE1BDF89A319600B40D92415017 +:0A4950005040B8F70895F894FFCF27 +:10495A0002208D091B0AF809C40990090101C7013F +:10496A0028080A03140A3F4D3639C5057805420559 +:10497A0009059C04B504CE04E704010203040506F4 +:04498A000708090011 +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/jacobono/img/colemak-default-layer.png b/keyboards/ergodox_ez/keymaps/jacobono/img/colemak-default-layer.png new file mode 100644 index 000000000..06f63c496 Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/jacobono/img/colemak-default-layer.png differ diff --git a/keyboards/ergodox_ez/keymaps/jacobono/img/number-dpad-layer.png b/keyboards/ergodox_ez/keymaps/jacobono/img/number-dpad-layer.png new file mode 100644 index 000000000..4dd718278 Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/jacobono/img/number-dpad-layer.png differ diff --git a/keyboards/ergodox_ez/keymaps/jacobono/img/symbol-layer.png b/keyboards/ergodox_ez/keymaps/jacobono/img/symbol-layer.png new file mode 100644 index 000000000..ee224cf0c Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/jacobono/img/symbol-layer.png differ diff --git a/keyboards/ergodox_ez/keymaps/jacobono/keymap.c b/keyboards/ergodox_ez/keymaps/jacobono/keymap.c new file mode 100644 index 000000000..6b19800af --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/jacobono/keymap.c @@ -0,0 +1,273 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define COLEMAK 0 // new colemak layout +#define QWERTY 1 // default layer +#define SYMB 2 // symbols +#define NUMPAD 3 // number pad +#define MDIA 4 // media keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap 0: Basic COLEMAK layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | F | P | G | | | | J | L | U | Y | ; | TAB | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | BkSp | A | R | S | T | D |------| |------| H | N | E | I | O | DEL | + * |--------+------+------+------+------+------| | LGUI(TAB)------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | K | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | L1 | | | UP |MO(L2)| |MO(L2)| Down | | ALT | RGUI | + * `----------------------------------' `------------------------------------' + * ,-------------. ,---------------. + * | LGUI | App | |Ctrl/Esc| Alt | + * ,------|------|------| |--------+--------+------. + * | | |QUKSL | | QUKSL | | | + * |Space |ENTER |------| |--------| ENTER |Space | + * | | |MO(L3)| | MO(L3) | | | + * `--------------------' `------------------------' + */ + + // If it accepts an argument (i.e, is a function), it doesn't need KC_. + // Otherwise, it needs KC_* + [COLEMAK] = KEYMAP( // layer 0 : Colemak layout default layer + // left hand + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_TRNS, + KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, + KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_TRNS, + TG(QWERTY), KC_TRNS, KC_TRNS,KC_UP, MO(SYMB), + KC_LGUI, KC_APP, + LGUI(S(KC_SPC)), + KC_SPC,KC_ENT,MO(NUMPAD), + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELT, + KC_TRNS, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_TAB, + KC_H, KC_N, KC_E, KC_I, KC_O, KC_DEL, + LGUI(KC_TAB), KC_K, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + MO(SYMB), KC_DOWN, KC_TRNS, KC_RALT, KC_RGUI, + CTL_T(KC_ESC), KC_LALT, + LGUI(S(KC_SPC)), + MO(NUMPAD), KC_ENT, KC_SPC), + + /* Keymap 1: Basic QWERTY layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | BkSp | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | DEL | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | L0 | | L0 | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Ctrl | A | S | D | F | G |------| |------| H | J | K | L |; / L4| CTRL | + * |--------+------+------+------+------+------| Alt | | Alt |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L3| '" |AltShf| Left |MO(L2)| |MO(L2)| Down | [ | ] | ~L3 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,---------------. + * | Tab | BkSp | | Alt |Ctrl/Esc| + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space| LGUI |------| |------| RGUI |Enter | + * | | | End | | PgDn | | | + * `--------------------' `----------------------' + */ + // If it accepts an argument (i.e, is a function), it doesn't need KC_. + // Otherwise, it needs KC_* + [QWERTY] = KEYMAP( // layer 1 + // left hand + KC_BSPC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS, + KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_LALT, + KC_TRNS, KC_QUOT, LALT(KC_LSFT), KC_LEFT, MO(SYMB), + KC_TAB, KC_DELT, + KC_HOME, + KC_SPC, KC_LGUI, KC_END, + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELT, + KC_TRNS, 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_RCTRL, + KC_RALT, KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + MO(SYMB), KC_DOWN, KC_LBRC, KC_RBRC, KC_FN1, + KC_LALT, CTL_T(KC_ESC), + KC_PGUP, + KC_PGDN, KC_RGUI, KC_ENT), + + + /* Keymap 2: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | @ | * | = | _ | | | | ~ | { | } | # | : | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | ! | + | - | " |------| |------| " | ( | ) | ' | ` | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | % | ^ | $ | & | | | | ; | [ | ] | \ | / | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ + // SYMBOL + [SYMB] = KEYMAP( + // left hand + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS, KC_TRNS, KC_AT, KC_ASTR, KC_EQL, KC_UNDS, KC_TRNS, + KC_TRNS, KC_PIPE, KC_EXLM, KC_PLUS, KC_MINS, S(KC_QUOTE), + KC_TRNS, KC_TRNS, KC_PERC, KC_CIRC, KC_DLR, KC_AMPR, 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_TILD, KC_LCBR, KC_RCBR, KC_HASH, S(KC_SCLN), KC_F12, + S(KC_QUOTE),KC_LPRN, KC_RPRN, KC_QUOTE, KC_GRV, KC_TRNS, + KC_TRNS, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_SLSH, 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 3: Numpad Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | UP | | | | | | $ | 7 | 8 | 9 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | LEFT | DOWN | RIGHT| |------| |------| = | 4 | 5 | 6 | - | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | 1 | 2 | 3 | * | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | , | 0 | . | / | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ + // Numpad + [NUMPAD] = KEYMAP( + // left hand + 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_RIGHT,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,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_DLR, KC_7, KC_8, KC_9, KC_PLUS, KC_TRNS, + KC_EQL, KC_4, KC_5, KC_6, KC_MINS, KC_TRNS, + KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_ASTR, KC_TRNS, + KC_COMMA,KC_0, KC_DOT, KC_SLSH, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), + + /* Keymap 4: 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/keyboards/ergodox_ez/keymaps/jgarr/compiled.hex b/keyboards/ergodox_ez/keymaps/jgarr/compiled.hex new file mode 100644 index 000000000..d45298399 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/jgarr/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947A020C94BE020C94BE020C94BE02B4 +:100010000C94BE020C94BE020C94BE020C94BE0260 +:100020000C94BE020C94BE020C94620D0C94340E1F +:100030000C94BE020C94BE020C94BE020C94BE0240 +:100040000C94BE020C943E220C94BE020C94BE0290 +:100050000C94BE020C94D11B0C94BE020C94BE02F4 +:100060000C94BE020C94BE020C94BE020C94BE0210 +:100070000C94BE020C94BE020C94BE020C94BE0200 +:100080000C94BE020C94BE020C94BE020C94BE02F0 +:100090000C94BE020C94BE020C94BE020C94BE02E0 +:1000A0000C94BE020C94BE020C94BE02A10EC30EB0 +:1000B000B10FC30EB10F080F2B0FB10F800F930FAD +:1000C0006212621291129112C712E71218141814D8 +:1000D000F2121814A213A2130914181418141214EB +:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300 +:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0 +:10010000C113CE13D513DC13E6130000F0A13500A4 +:100110002B002971E100E00000001E003400040003 +:100120003371E3004D001F00360012001400E2009E +:100130002A002000370008000D0050002C0021008C +:10014000130018000E004F004A0022001C000C0093 +:100150001B000000E1044C0001540000007F00007F +:10016000E3002A000154000000770000E2002300B1 +:100170000900070005000000C10024000A000B0070 +:10018000100052004B002500060017001A00510015 +:100190002C0026001500110019002F002800270050 +:1001A0000F0016421D7130004E00310038002D0046 +:1001B000E5002E0000000100010001000100010027 +:1001C00000003A001E0220022202010001003B0052 +:1001D0001F0221022302010001003C002F0226021F +:1001E0002F00010001003D00300227023000010015 +:1001F00001003E003102350035020000010001001F +:1002000001000000010000000100010001000000E9 +:100210000100000001003F005200510024020000D4 +:1002200001004000240021001E00010001004100E7 +:10023000250022001F003700010042002600230095 +:10024000200027000100430025022E0231002E006D +:100250000100440045000100010001000000010010 +:100260000100010001000100000001000100010087 +:1002700001000100010001000100F2000100010085 +:1002800001000100F000F1000100F4000100010094 +:100290000100F3000100F500010001000100010070 +:1002A0000100000001000100010000000100000049 +:1002B0000100010001000000010000000100010038 +:1002C0000100010001000000010001000100010027 +:1002D0000100A9000100010001000100AC00AA001A +:1002E000B600010001000100AB00A8000100010000 +:1002F0000100010001000100010001000100AE0049 +:1003000001000100000016034500720067006F0045 +:1003100044006F007800200045005A0000001603DA +:100320004500720067006F0044006F0078002000F5 +:1003300045005A0000000403090409026D0004018D +:1003400000A0FA09040000010301010009211101C4 +:100350000001223F000705810308000A090401008B +:100360000103010200092111010001224D000705CE +:10037000820308000A0904020001030000000921A9 +:10038000110100012236000705830308000A090451 +:1003900003000103000000092111010001223900BE +:1003A000070584031000011201100100000008ED90 +:1003B000FE071301000102000105010906A1010564 +:1003C0000719E029E7150025019508750181020547 +:1003D000081901290595057501910295017503918B +:1003E0000105071900297715002501957875018108 +:1003F00002C005010980A101850216010026B7008F +:100400001A01002AB700751095018100C0050C097A +:1004100001A1018503160100269C021A01002A9CF5 +:1004200002751095018100C005010902A1010901B1 +:10043000A10005091901290515002501950575017A +:10044000810295017503810105010930093115818A +:10045000257F95027508810609381581257F95014C +:1004600075088106050C0A38021581257F950175EE +:10047000088106C0C005010906A101050719E02988 +:10048000E715002501950875018102950175088120 +:100490000105081901290595057501910295017558 +:1004A0000391010507190029FF150025FF95067521 +:1004B000088100C0000000000000000000000001F2 +:1004C0000204060A0F17202C3A4A5D71879DB3C7B4 +:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF +:1004E0003A2C20170F0A0604020100000000000049 +:1004F0000000000011241FBECFEFDAE0DEBFCDBF49 +:1005000004B603FE24C08091FB019091FC01A091F0 +:10051000FD01B091FE018730904BA740B04BB9F47C +:100520001092FB011092FC011092FD011092FE014D +:1005300014BE84B7877F84BF88E10FB6F894809398 +:100540006000109260000FBEE0E0FFE3099511E04B +:10055000A0E0B1E0EAE0F8E402C005900D92A43317 +:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0 +:10057000B107E1F70E94A60A0C9403240C94000032 +:100580001092B9008AE08093B800089594EA90939D +:10059000BC009091BC0097FFFCCF9091B900987F70 +:1005A000983021F0903111F081E008958093BB00E4 +:1005B00084E88093BC008091BC0087FFFCCF8091D1 +:1005C000B900887F883111F0803471F780E0089598 +:1005D00084E98093BC008091BC0084FDFCCF089529 +:1005E0008093BB0084E88093BC008091BC0087FFAF +:1005F000FCCF9091B900987F81E0983209F480E0B7 +:10060000089584E88093BC008091BC0087FFFCCFF4 +:100610008091BB00089580910101811115C080E493 +:100620000E94C6028093010181110CC082E10E94E8 +:10063000F00280930101811105C08FEF0E94F0024A +:10064000809301010E94E80284B1807F84B985B162 +:10065000807F85B98AB1837F8AB98BB1837F8BB95B +:100660003E98469808950E94C604809301010E9416 +:100670000B0380B38C7080BB81B3836F81BBA5E318 +:10068000B1E0E3E4F1E08EE08E0F11921D928E1343 +:10069000FCCF0C94B004BF92CF92DF92EF92FF9206 +:1006A0000F931F93CF93DF9380910101882379F0FB +:1006B000809134018F5F80933401811108C00E94C2 +:1006C000C60480930101811102C00E94580405E311 +:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407 +:1006E000E394F12CC730D10500F58091010181110F +:1006F00064C080E40E94C60280930101811112C08F +:1007000082E10E94F0028093010181110BC0C701B8 +:100710000C2E01C0880F0A94EAF780950E94F0021F +:10072000809301010E94E80248C0CA30A1F028F479 +:10073000C83059F0C93061F005C0CC3089F070F094 +:10074000CD3089F0209A289810C0219A29980DC0A0 +:10075000229A2A980AC0239A2B9807C0529A01C05D +:10076000539A5B9802C03E9A469890EA9A95F1F7A0 +:100770009FB1799902C082E001C080E091709D250F +:10078000982B7C9902C084E001C080E0892B7D9980 +:1007900002C038E001C030E0832B7E9902C020E126 +:1007A00001C020E0822B9FB19095991F9927991F36 +:1007B0009295990F907E892B0FC080910101811134 +:1007C00049C080E40E94C60280930101882379F128 +:1007D000B12C0E94E8028B2DF8019081981719F036 +:1007E0008083C09200010E940B0321960F5F1F4F70 +:1007F000CE30D10509F076CF80910001882361F1D8 +:10080000815080930001882339F08FE99FE00197A0 +:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F +:10082000CF01825F91919D938E13FCCF15C083E120 +:100830000E94F002809301018111CACF81E40E94DD +:10084000C602809301018111C3CF0E940103B82E1B +:10085000B094BFCF80E0C0CF0E94560481E0DF910A +:10086000CF911F910F91FF90EF90DF90CF90BF90AD +:100870000895E82FF0E0ED5BFE4F80810895089524 +:100880000F931F93CF93DF93C3E4D1E010E00C2FBD +:10089000025F899190E00E94F71A180F0C13F9CFAC +:1008A000812FDF91CF911F910F9108950C94260510 +:1008B00056985E9825982D9826982E9827982F98C8 +:1008C0008FEF90E0909389008093880090938B0045 +:1008D00080938A0090938D0080938C00259A2D9AA6 +:1008E0002FEF80E792E0215080409040E1F700C078 +:1008F0000000269A2E9A2FEF80E792E02150804048 +:100900009040E1F700C00000279A2F9A2FEF80E770 +:1009100092E0215080409040E1F700C0000025980F +:100920002D982FEF80E792E0215080409040E1F732 +:1009300000C0000026982E982FEF80E792E021500B +:1009400080409040E1F700C0000027982F9856980B +:100950005E9825982D9826982E9827982F98089578 +:1009600089EA8093800089E08093810024982C9804 +:100970003F988AB18F748AB96E98479A8BB1806B11 +:100980008BB9769A0E9458040C94250580E28093D6 +:1009900001018091510181110EC00E94C00281E0CD +:1009A000809351012FEF83ED90E3215080409040E0 +:1009B000E1F700C0000080E40E94C60280930101BC +:1009C00081112EC00E94F00280930101811128C084 +:1009D0000E94F00280930101811122C08FE30E94E6 +:1009E000F0028093010181111BC00E94E80280E4A3 +:1009F0000E94C60280930101811112C08CE00E9406 +:100A0000F0028093010181110BC00E94F0028093DB +:100A10000101811105C08FE30E94F0028093010162 +:100A20000E94E80280910101089561110BC0FC0150 +:100A30008281882321F085EE0E94061103C085EE95 +:100A40000E94CE1180E090E0089508956091BD016C +:100A50007091BE018091BF019091C0010E94031B63 +:100A600056985E9825982D9826982E9827982F9816 +:100A7000813019F0823021F00895259A2D9A089539 +:100A8000269A2E9A089581E0089581E008950C94A5 +:100A9000450508950F931F93CF93DF938C01FC01BD +:100AA000C081D181CE010E947C19BE010E94F30554 +:100AB000EC01B8010E944705882309F48DC0F801B4 +:100AC0008281882309F44AC080915D0181111FC091 +:100AD000C431F0E5DF0709F051C00E94490581E00B +:100AE00080935D010E949B1B90935C0180935B014E +:100AF0001092540110925601109255011092580113 +:100B00001092570110925A011092590165C08091BC +:100B10005B0190915C010E94A71B883C910570F4D9 +:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB +:100B3000D183C0838F5F809354014EC0C43880E559 +:100B4000D80721F0C538D04501F13AC0F8018281BB +:100B5000882341F01092520182E01EC0C438E0E5C3 +:100B6000DE0759F580915201811106C086E20E948C +:100B7000061186E20E94CE1182E01CC0C438F0E566 +:100B8000DF0741F3C538D045D9F4F80182818823C5 +:100B900031F01092530180E20E941D121DC080911D +:100BA0005301811106C087E20E94061187E20E946C +:100BB000CE1180E20E9424120FC0C538D04529F31F +:100BC00081E08093520180935301C801DF91CF915E +:100BD0001F910F910C94430580E0DF91CF911F91FD +:100BE0000F910895089596E0799FF001112494E5FE +:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F +:100C0000E25FFE4F859194910895880F991FFC0132 +:100C1000E657F040859194910895880F991FFC0143 +:100C2000E65FFE4F8591949108950F931F93CF93A4 +:100C3000DF93EC01811520E3920750F5C11580E2A6 +:100C4000D80708F0C3C0CB3BD10590F4C83AD10512 +:100C500008F06AC0C53AD10508F05BC0C430D105C0 +:100C600008F0D0C1219709F0CAC101E010E00AC222 +:100C7000CF3FD10511F008F0C5C1C03FD10508F044 +:100C8000A2C0CE01805E9109089708F4BBC1B7C12C +:100C9000C13090E5D90709F4A2C020F5C0318FE436 +:100CA000D80770F4C11590E4D90708F094C0C115B5 +:100CB00021E3D20708F0A3C1DD278E01106CE2C149 +:100CC000C115D04509F09BC10E9483148FEF94E3B6 +:100CD0002CE0815090402040E1F700C000000E94CD +:100CE000F61BD0C1C11597E5D90758F4C03121E5ED +:100CF000D20708F01CC1C43180E5D80708F475C0DC +:100D00007EC1CE0190578115904108F078C1DF7007 +:100D100073C1C53AD10509F477C1C63AD10509F0C6 +:100D200076C102E810E4AEC1C83AD10509F472C137 +:100D3000C93AD10509F471C1CA3AD10509F470C1A3 +:100D4000CB3AD10509F46FC1CC3AD10509F46EC193 +:100D5000CD3AD10509F46DC1C03BD10509F46CC190 +:100D6000CE3AD10509F46BC1CF3AD10509F46AC175 +:100D7000C13BD10509F469C1C23BD10509F468C181 +:100D8000C33BD10509F467C1C43BD10509F466C171 +:100D9000C53BD10509F465C1C63BD10509F464C161 +:100DA000C73BD10509F463C1C83BD10509F462C151 +:100DB000C93BD10509F461C1CA3BD10509F460C141 +:100DC00000E014E45FC18E0110655CC1CE019F702C +:100DD0000E940D0658C1DF708E01106A53C18091C8 +:100DE000DA0181608093DA014DC10E949B1D81115F +:100DF00002C00E94811D0E94B81D90E09093FB01EB +:100E00008093FA01C23080E5D80721F48091FA017D +:100E1000816086C0C43090E5D90721F48091FA0141 +:100E200082607EC0C63020E5D20721F48091FA01AD +:100E3000846076C0C83080E5D80719F48091FA0143 +:100E400027C0CA3090E5D90721F48091FA0180616A +:100E500067C0CC3020E5D20721F48091FA0180628E +:100E60005FC0CE3080E5D80721F48091FA0180641C +:100E700057C0C03190E5D90721F48091FA0180680C +:100E80004FC0C23120E5D20729F48091FA01846075 +:100E9000886046C0C33080E5D80721F48091FA010C +:100EA0008E7F3EC0C53090E5D90721F48091FA01CC +:100EB0008D7F36C0C73020E5D20721F48091FA013A +:100EC0008B7F2EC0C93080E5D80719F48091FA01D4 +:100ED00026C0CB3090E5D90721F48091FA018F7EAE +:100EE0001FC0CD3020E5D20721F48091FA018F7D1B +:100EF00017C0CF3080E5D80721F48091FA018F7BAD +:100F00000FC0C13190E5D90721F48091FA018F77A4 +:100F100007C0C331D04531F48091FA018B7F877FC0 +:100F20008093FA018091FA010E94BC1DABC08D2F05 +:100F300099278F70992781309105D9F49E012370EC +:100F4000332702C0880F991F2A95E2F79C688E010B +:100F500044E0000F111F4A95E1F700271370802B22 +:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA +:100F70002FC08230910531F4DC2FCC278E01016F18 +:100F8000106A80C08330910569F4CE01837099277F +:100F900001E010E002C0000F111F8A95E2F7C801BE +:100FA0009C680FC084309105B9F4CE0183709927F5 +:100FB00001E010E002C0000F111F8A95E2F7C8019E +:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029 +:100FD0008C010C2B1D2B56C08530910531F4DC2F74 +:100FE000CC278E01046F106A4DC0069709F04AC0E5 +:100FF000CF71DD27DC2FCC278E01106243C000E0CB +:1010000010E040C08E013EC001E810E43BC003E8A0 +:1010100010E438C002EE14E435C009EE14E432C026 +:101020000AEE14E42FC005EB14E42CC006EB14E424 +:1010300029C007EB14E426C00CEC14E423C00DEC2B +:1010400014E420C003E815E41DC00AE815E41AC042 +:1010500002E915E417C004E915E414C001E216E43E +:1010600011C003E216E40EC004E216E40BC005E270 +:1010700016E408C006E216E405C007E216E402C062 +:101080000AE216E4C801DF91CF911F910F910895F4 +:1010900096E0799FF001112494E5899FE00DF11D00 +:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149 +:1010B0009491803E9105E0F4803C910558F5813390 +:1010C000910509F46FC048F48932910509F463C0B1 +:1010D0008A32910509F46DC072C089339105E9F037 +:1010E00082389105D1F08533910509F44DC067C070 +:1010F000833E910581F138F4803E9105B9F0823E3E +:101100009105D9F05CC0863E910561F1873E91055D +:10111000A1F155C00E94050608952091FA0120FD15 +:1011200002C021FF4CC080EE90E049C08091FA01DE +:1011300080FFF9CF89E390E042C08091FA0182FFFD +:101140000EC08091FA0184FF03C080E090E037C0B8 +:1011500083EE90E034C08091FA0182FFF2CF82EEFC +:1011600090E02DC08091FA0183FF0BC08091FA01BD +:1011700084FDEBCF87EE90E022C08091FA0183FFDF +:10118000F5CF86EE90E01BC08091FA0185FF07C085 +:1011900089E290E014C08091FA0185FFF9CF85E3E0 +:1011A00090E00DC08091FA0186FF07C08AE290E0CE +:1011B00006C08091FA0186FFF9CF81E390E00E949A +:1011C0001506089508950C94E20880916E01089523 +:1011D000CF93DF9300D01F92CDB7DEB79C018091F3 +:1011E000F101843019F593E099833B832A8390932E +:1011F000E9008FEF9091E800815095FD06C095EDD4 +:101200009A95F1F700008111F5CF8091E80085FFF4 +:101210000DC040E050E063E070E0CE0101960E9416 +:10122000520B8091E8008E778093E8000F900F902A +:101230000F90DF91CF910895CF93DF9300D01F924D +:10124000CDB7DEB72091F101243021F522E02983CA +:101250009B838A8383E08093E9008FEF9091E8007D +:10126000815095FD06C095ED9A95F1F7000081112A +:10127000F5CF8091E80085FF0DC040E050E063E0CD +:1012800070E0CE0101960E94520B8091E8008E77AB +:101290008093E8000F900F900F90DF91CF91089509 +:1012A0002091F1012430F1F422E02093E9002FEFA6 +:1012B0003091E800215035FD06C035ED3A95F1F743 +:1012C00000002111F5CF2091E80025FF0BC040E080 +:1012D00050E065E070E00E94520B8091E8008E774C +:1012E0008093E8000895CF93DF93EC019091F10192 +:1012F000943009F046C080910C018823D9F0809188 +:101300000D018823B9F09093E9008FEF9091E800E8 +:10131000815095FD06C095E19A95F1F70000811185 +:10132000F5CF8091E80085FF2CC040E050E060E1FF +:1013300070E017C081E08093E9008FEF9091E800A2 +:10134000815095FD06C095ED9A95F1F70000811149 +:10135000F5CF8091E80085FF14C040E050E068E0E0 +:1013600070E0CE010E94520B8091E8008E7780934E +:10137000E80080E1FE01AEE5B1E001900D928A95B2 +:10138000E1F7DF91CF9108958091F001811109C0BB +:101390000E94E70C0E94440D8091E20084608093DB +:1013A000E20008951092F001089508950C942B2204 +:1013B0000E948C1B0E9431220E94EA0F0C94E308C9 +:1013C00042E061EC81E00E94610C42E061EC82E06D +:1013D0000E94610C42E061EC83E00E94610C42E1FA +:1013E00061EC84E00C94610C8091F301833009F48A +:1013F00055C030F4813071F0823009F48EC0089508 +:101400008A3009F47AC08B3009F460C0893009F061 +:101410009CC020C08091F201813A09F096C0809171 +:10142000E800877F8093E8008091F6019091F701B2 +:10143000892B21F460E18EE591E003C060E080E05B +:1014400090E070E00E949D0B8091E8008B77809384 +:10145000E80008958091F201813209F076C0809110 +:10146000F6019091F701009719F0039709F06DC00C +:101470008091E800877F8093E8008091E80082FDFA +:1014800005C08091F1018111F8CF5FC08091F1001A +:1014900080936E018091E8008B7753C08091F201B8 +:1014A000813A09F052C08091F6019091F701892BA1 +:1014B00009F04BC08091E800877F8093E80080911D +:1014C000E80080FFFCCF80910C0136C08091F201D2 +:1014D0008132D9F58091F6019091F701892BA9F518 +:1014E0008091E800877F8093E8000E94960C8091AD +:1014F000F40180930C010C9483148091F2018132E9 +:1015000021F58091E800877F8093E8000E94960C87 +:101510008091F50180936F0108958091F201813AE5 +:10152000A1F48091E800877F8093E8008091E80033 +:1015300080FFFCCF80916F018093F1008091E800E3 +:101540008E778093E8000C94960C089584B7877F7B +:1015500084BF88E10FB6F894809360001092600019 +:101560000FBE90E080E80FB6F894809361009093EE +:1015700061000FBE0E9439100E94E70C0E94440DCA +:101580008091E20084608093E20078940E94CA0F08 +:101590000E943B1082E091E00E94E50F0E94192218 +:1015A0008091F101853069F40E94531B8091EF0115 +:1015B0008823B1F30E947E1B882391F30E943C0B89 +:1015C000EFCF0E944110ECCF292F33272330310574 +:1015D000C9F064F42130310581F02230310509F081 +:1015E00043C08DE690E02AE333E042C0213231056A +:1015F000F1F02232310541F137C082E190E027EA73 +:1016000033E036C099278130910541F08230910551 +:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4 +:1016200002C0E6E0F3E0849190E09F0121C06430C5 +:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5 +:10164000318189E090E014C0643070F470E0FB01F7 +:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47 +:10166000FE4F808190E004C080E090E020E030E018 +:10167000FA0131832083089580E189BD82E189BD2B +:1016800009B400FEFDCF8091D8008F7D8093D800F3 +:101690008091E00082608093E0008091E00081FD15 +:1016A000FCCF0895CF92DF92EF92FF920F931F939A +:1016B000CF93DF93EC018B016A010E94B50C81117D +:1016C00033C0C114D10439F0F60180819181081B27 +:1016D000190BC80FD91FE12CF12C0115110519F1B7 +:1016E0008091E80085FD16C08091E8008E77809398 +:1016F000E800C114D10449F0F60180819181E80E1F +:10170000F91EF182E08285E00FC00E94B50C8823AB +:1017100021F30AC089918093F10001501109FFEF74 +:10172000EF1AFF0ADACF80E0DF91CF911F910F917E +:10173000FF90EF90DF90CF9008952091F8013091C5 +:10174000F9012617370748F06115710539F4209122 +:10175000E8002E772093E80001C0B90140E0611550 +:101760007105A9F12091F101222309F443C025302C +:1017700009F442C02091E80023FD40C02091E80018 +:1017800022FD32C02091E80020FFE9CF4091F30014 +:101790002091F20030E0342BFC01CF01611571057E +:1017A00059F02830310540F481918093F100615067 +:1017B00071092F5F3F4FF1CF41E02830310509F02B +:1017C00040E02091E8002E772093E800C8CF411137 +:1017D000C9CF0AC08091F101882361F0853061F0A2 +:1017E0008091E80083FD0AC08091E80082FFF2CF7B +:1017F00080E0089582E0089583E0089581E00895EF +:101800002091F8013091F9012617370748F061154A +:10181000710539F42091E8002E772093E80001C08B +:10182000B901FC0120E06115710591F18091F10190 +:10183000882309F440C0853009F43FC08091E80056 +:1018400083FD3DC08091E80082FD2FC08091E800BB +:1018500080FFE9CF2091F3008091F20090E0922B7D +:101860006115710559F08830910540F42491209359 +:10187000F1003196615071090196F2CF21E008978D +:1018800009F020E08091E8008E778093E800CBCFCC +:101890002111CCCF0AC08091F101882361F08530FD +:1018A00061F08091E80083FD0AC08091E80082FF2A +:1018B000F2CF80E0089582E0089583E0089581E00A +:1018C0000895982F973058F59093E900981739F0BC +:1018D0007091EC002091ED005091F00003C0242F96 +:1018E000762F50E021FF19C03091EB003E7F3093FE +:1018F000EB003091ED003D7F3093ED003091EB0037 +:1019000031603093EB007093EC002093ED00509326 +:10191000F0002091EE0027FF07C09F5FD3CF8F70AC +:101920008093E90081E0089580E008958091F201BC +:1019300087FF11C08091E80082FD05C08091F10110 +:101940008111F8CF11C08091E8008B770BC0809196 +:10195000F101882349F08091E80080FFF8CF809161 +:10196000E8008E778093E80008952091E40030919C +:10197000E50095E64091EC00842F817040FF22C085 +:101980008091E80080FD1CC08091F101882391F0D6 +:10199000853091F08091EB0085FD10C04091E4000E +:1019A0005091E5004217530729F39A01915011F71E +:1019B00084E0089582E0089583E0089581E0089529 +:1019C00080E008954091E80042FFDECF08950E9434 +:1019D000550D0E945D0DE0EEF0E080818160808316 +:1019E000E8EDF0E080818F77808319BCA7EDB0E04F +:1019F0008C918E7F8C9380818F7E80831092F001FA +:101A000008950F931F93CF93DF930E94550D0E946B +:101A10005D0DC8EDD0E088818F77888388818068EC +:101A2000888388818F7D888319BC1092F101109280 +:101A3000ED011092EF011092EE0100EE10E0F801BE +:101A400080818B7F808388818160888342E060E031 +:101A500080E00E94610CE1EEF0E080818E7F808367 +:101A6000E2EEF0E080818160808380818860808305 +:101A7000F80180818E7F8083888180618883DF91F7 +:101A8000CF911F910F910895E8EDF0E080818F7E56 +:101A90008083E7EDF0E080818160808384E082BF15 +:101AA00081E08093F0010C94010DE8EDF0E080817D +:101AB0008E7F80831092E20008951092DA001092D7 +:101AC000E10008951F920F920FB60F9211242F93E9 +:101AD0003F934F935F936F937F938F939F93AF93B6 +:101AE000BF93EF93FF938091E10082FF0BC0809141 +:101AF000E20082FF07C08091E1008B7F8093E100CC +:101B00000E94C90F8091DA0080FF1FC08091D80029 +:101B100080FF1BC08091DA008E7F8093DA00809175 +:101B2000D90080FF0DC080E189BD82E189BD09B483 +:101B300000FEFDCF81E08093F1010E94C40905C041 +:101B400019BC1092F1010E94D2098091E10080FF3E +:101B500019C08091E20080FF15C08091E2008E7F65 +:101B60008093E2008091E20080618093E2008091A6 +:101B7000D80080628093D80019BC85E08093F10181 +:101B80000E94D6098091E10084FF30C08091E2007C +:101B900084FF2CC080E189BD82E189BD09B400FECB +:101BA000FDCF8091D8008F7D8093D8008091E10097 +:101BB0008F7E8093E1008091E2008F7E8093E2002F +:101BC0008091E20081608093E2008091ED018823A2 +:101BD00011F084E007C08091E30087FD02C081E03E +:101BE00001C083E08093F1010E94D8098091E10057 +:101BF00083FF29C08091E20083FF25C08091E1002E +:101C0000877F8093E10082E08093F1011092ED01E3 +:101C10008091E1008E7F8093E1008091E2008E7FD1 +:101C20008093E2008091E20080618093E20042E0D4 +:101C300060E080E00E94610C8091F00088608093F9 +:101C4000F0000E94D509FF91EF91BF91AF919F9154 +:101C50008F917F916F915F914F913F912F910F9055 +:101C60000FBE0F901F9018951F920F920FB60F92F4 +:101C700011242F933F934F935F936F937F938F9391 +:101C80009F93AF93BF93CF93DF93EF93FF93C09155 +:101C9000E900CF708091EC00D82FD17080FDD0E8A2 +:101CA0001092E9008091F000877F8093F000789493 +:101CB0000E94780E1092E9008091F0008860809375 +:101CC000F000CD2BCF70C093E900FF91EF91DF9131 +:101CD000CF91BF91AF919F918F917F916F915F91C4 +:101CE0004F913F912F910F900FBE0F901F9018951D +:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3 +:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115 +:101D1000F10091938E13FBCF0E94F4098091E800AB +:101D200083FF1FC18091F2019091F301492F50E090 +:101D30004A30510508F015C1FA01EA5AFF4F0C94D8 +:101D4000B323803881F0823809F00BC18091F6010D +:101D50008F708093E9008091EB0085FB882780F9E4 +:101D60001092E90006C08091EE019091EF0191116F +:101D700082609091E800977F9093E8008093F10053 +:101D80001092F100C8C0282F2D7F09F0EAC08823E7 +:101D900019F0823061F0E5C08091F401813009F0E2 +:101DA000E0C0933009F080E08093EF012BC0809178 +:101DB000F401811127C08091F6018F7009F4D1C020 +:101DC0008093E9002091EB0020FF1CC0933021F4A8 +:101DD0008091EB00806214C09091EB009061909331 +:101DE000EB0021E030E0A90102C0440F551F8A95A5 +:101DF000E2F74093EA001092EA008091EB008860DD +:101E00008093EB001092E9008091E800877F86C004 +:101E10008111A7C01091F4011F778091E3008078B1 +:101E2000812B8093E3008091E800877F8093E80016 +:101E30000E94960C8091E80080FFFCCF8091E30027 +:101E400080688093E300111102C082E001C083E04A +:101E50008093F10186C08058823008F082C0809162 +:101E6000F4019091F5018C3D53E0950779F583E0FD +:101E70008A838AE289834FB7F894DE01139620E0C3 +:101E80003EE051E2E32FF0E050935700E49120FF51 +:101E900003C0E295EF703F5FEF708E2F90E0EA3065 +:101EA00010F0C79601C0C0968D939D932F5F24318B +:101EB00049F74FBF8091E800877F8093E8006AE28E +:101EC00070E0CE0101960E949D0B14C0AE014F5FE1 +:101ED0005F4F6091F6010E94E40ABC01009709F48B +:101EE00040C09091E800977F9093E80089819A81A3 +:101EF0000E94000C8091E8008B778093E80031C04D +:101F0000803879F58091E800877F8093E8008091A0 +:101F1000ED018093F1008091E8008E778093E800D6 +:101F20000E94960C1EC081111CC09091F401923049 +:101F3000C0F48091E800877F8093E8009093ED01E2 +:101F40000E94960C8091ED01811106C08091E30002 +:101F500087FD02C081E001C084E08093F1010E940E +:101F6000E0098091E80083FF0AC08091E800877F44 +:101F70008093E8008091EB0080628093EB00AA964A +:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A +:101F900008950895CF938091F1018823A1F0C09115 +:101FA000E900CF709091EC00892F817090FD80E85E +:101FB000C82B1092E9008091E80083FD0E94780E02 +:101FC000CF70C093E900CF910895909375018093ED +:101FD00074010895E0917401F0917501309721F03A +:101FE0000190F081E02D099480E00895E091740162 +:101FF000F0917501309721F00280F381E02D099472 +:102000000895E0917401F0917501309721F00480FA +:10201000F581E02D099408952091720130917301AA +:102020008217930771F09093730180937201E0918E +:102030007401F0917501309721F00680F781E02D51 +:1020400009940895209170013091710182179307CE +:1020500071F09093710180937001E0917401F0919F +:102060007501309721F00084F185E02D09940895E1 +:1020700008950C9438100E94921B0E9433030C9414 +:10208000541C9F92AF92BF92CF92DF92EF92FF9239 +:102090000F931F93CF93DF9300D000D000D0CDB724 +:1020A000DEB70E944B030DE010E0AA24A394B12CEC +:1020B000902E802F0E943904980129583E4F6901C3 +:1020C000F901F080F826A1F40150110988F78FEF8B +:1020D00089838A831B820E949B1B8160782F9D834A +:1020E0008C8349815A816B818D810E94D8102FC0C9 +:1020F0009091DA0191FF04C08E830E943F048E818B +:1021000025E030E0A501022E01C0440F0A94EAF751 +:10211000E42E4F21C1F029839A828E2191E009F4A7 +:1021200090E09B830E949B1B8160782F9D838C8312 +:1021300049815A816B818D810E94D810F60180817E +:10214000E826E08204C021503109E0F6BDCF0E94AC +:102150003B1F109176010E94EA0F1817B9F00E94F8 +:10216000EA0F8093760126960FB6F894DEBF0FBE75 +:10217000CDBFDF91CF911F910F91FF90EF90DF9036 +:10218000CF90BF90AF909F900C94E30826960FB627 +:10219000F894DEBF0FBECDBFDF91CF911F910F919D +:1021A000FF90EF90DF90CF90BF90AF909F900895F9 +:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82 +:1021C0000FBECDBF4F83588769877A878B87DE0123 +:1021D000119686E0FD0111928A95E9F785E0FE01EE +:1021E000379601900D928A95E1F749815A816B816A +:1021F0007C818D819E810E9421172B960FB6F894C9 +:10220000DEBF0FBECDBFDF91CF910895CF9388235E +:1022100009F4C2C0C82F823859F40E94EA0F81FD28 +:10222000BBC089E30E94FB190E94C81A89E30CC055 +:10223000833879F40E94EA0F80FDAEC083E50E94E6 +:10224000FB190E94C81A83E50E943D1ACF910C9495 +:10225000C81A843859F40E94EA0F82FD9DC087E4B1 +:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6 +:10227000813A48F48C2F0E947E2181118DC08C2FD1 +:102280000E94FB19E3CF80E28C0F883048F4C770BE +:1022900081E001C0880FCA95EAF70E94811AD6CF63 +:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB +:1022B00083E890E005C081E890E002C082E890E009 +:1022C000CF910C940C1088E58C0F833108F064C01A +:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118 +:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186 +:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106 +:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173 +:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB +:1023200038C082EE90E035C089EE90E032C08AEE8F +:1023300090E02FC085EB90E02CC086EB90E029C0A8 +:1023400087EB90E026C08CEC90E023C08DEC90E011 +:1023500020C083E891E01DC08AE891E01AC082E9BC +:1023600091E017C084E991E014C081E292E011C0CD +:1023700083E292E00EC084E292E00BC085E292E03C +:1023800008C086E292E005C087E292E002C08AE2DD +:1023900092E0CF910C942210CF910895882309F4F4 +:1023A0004BC0823859F40E94EA0F81FF45C089E38F +:1023B0000E94FB190E94C81A89E30CC0833871F48B +:1023C0000E94EA0F80FF38C083E50E94FB190E943B +:1023D000C81A83E50E943D1A0C94C81A843859F42F +:1023E0000E94EA0F82FF28C087E40E94FB190E9426 +:1023F000C81A87E4EFCF9CEF980F913A58F390E218 +:10240000980F983050F4877091E001C0990F8A9529 +:10241000EAF7892F0E94871ADFCF9BE5980F933048 +:1024200020F480E090E00C940C10885A833120F462 +:1024300080E090E00C9422100895882321F00E94FF +:10244000811A0C94C81A0895882321F00E94871AD3 +:102450000C94C81A08957F928F929F92AF92BF9268 +:10246000CF92DF92EF92FF920F931F93CF93DF9360 +:102470001F92CDB7DEB77C01C62E772EFC010581F9 +:1024800002950F70128111110E949E1A0E94F41978 +:10249000882379F0112369F080E28C0D883048F0B0 +:1024A00082E00E94DD190E94F41991E0D82ED9260D +:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C +:1024C0000C94B323872D807F072D0F70882311F084 +:1024D0000295007F112389F0002309F490C180E266 +:1024E0008C0D883020F4802F0E94811A03C0802F29 +:1024F0000E94911A0E94C81A82C18C2D0E94CE118E +:10250000002309F495C180E28C0D883020F4802FDF +:102510000E94871A03C0802F0E94971A0E94C81A2F +:1025200087C1972D907F872D8F70903211F0829503 +:10253000807FCC2021F0F1E0CF16B1F01EC0112336 +:1025400049F0002309F414C1013009F011C10E94BF +:10255000B11A6EC1002319F0013009F469C18983F1 +:102560000E94B41A89810AC1112321F0023008F0B7 +:102570005FC1FEC001115CC101C1112321F0002324 +:1025800009F4F6C03CC1002309F4F8C03EC1872D10 +:1025900086958695837090E0009719F0019761F019 +:1025A00047C1112321F08C2D972D937002C080E03C +:1025B00090E00E940C103CC1112321F08C2D972D2E +:1025C000937002C080E090E00E94221031C18C2DF7 +:1025D000112319F00E94431E02C00E94AB1E0E94EC +:1025E000301F26C1872D837009F052C0111120C100 +:1025F0008C2D829586958770880F880F9C2D9F70F3 +:10260000892E912CA12CB12C082E04C0880C991C69 +:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041 +:1026200020E030E0B901A80104C0440F551F661F27 +:10263000771F8A95D2F7CB01BA0160957095809586 +:10264000909503C060E070E0CB01272D269526957C +:10265000237030E02230310569F02330310589F0F4 +:10266000682979298A299B292130310571F00E9436 +:102670006918DEC0682979298A299B290E94851852 +:10268000D7C00E946918C501B4010E944D18D0C07E +:10269000112319F0872D817001C08695882309F4D4 +:1026A000C7C08C2D829586958770880F880F9C2DCA +:1026B0009F70892E912CA12CB12C082E04C0880C5F +:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC +:1026D00010E020E030E0B901A80104C0440F551F0C +:1026E000661F771F8A95D2F7CB01BA016095709566 +:1026F0008095909503C060E070E0CB01272D269572 +:1027000026952370422F50E04230510569F0433046 +:10271000510589F0682979298A299B294130510579 +:1027200071F00E94431984C0682979298A299B295C +:102730000E945F197DC00E944319C501B4010E9427 +:10274000271976C08C2D90E0FC01E05EF109E5319F +:10275000F10508F050C0E059FF4F0C94B3230C2D45 +:102760000F70872D8F71112331F00E94C018802FB8 +:102770000E941D125DC00E94E118802F0E94241249 +:1027800057C0112339F0011153C0872D8F710E945A +:1027900006194EC0023008F04BC0F7CF112339F0B4 +:1027A000872D8F710E94C01843C01123C9F3872D54 +:1027B0008F710E94E1183CC0112329F0872D8F7181 +:1027C0000E94AB1835C00E94A11832C0112351F0ED +:1027D000172D1F71812F0E94C01863E0812F0E9466 +:1027E000D41926C081E00E94DD19023008F182E090 +:1027F0000E94DD191DC0112331F0002389F28C2DB8 +:102800000E94061115C0002391F28C2D0E94CE115A +:102810000FC0472D4F706C2DC7010E9415050E94F7 +:10282000C51706C0472D4F706C2DC7010E94F205D9 +:10283000DD20F9F00E94D01980FD1BC0F701128243 +:102840000E94CA190E94C018C7010E9448140E9421 +:10285000CA190F90DF91CF911F910F91FF90EF90C8 +:10286000DF90CF90BF90AF909F908F907F900C940F +:10287000E1180F90DF91CF911F910F91FF90EF9092 +:10288000DF90CF90BF90AF909F908F907F900895F2 +:102890000F931F93CF93DF93EC01888199812B8154 +:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B +:1028B0000E944A05882371F0688179818A810E948B +:1028C000C6198C010E947B190E944218B801CE01E2 +:1028D0000E942B12DF91CF911F910F9108950E94BA +:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471 +:1028F000E11F0E94301F80E090E00E940C1080E0F9 +:1029000090E00C9422100E948E1A0C946F140E9476 +:10291000BB19292F22952F7030E02C3031054CF453 +:102920002A3031056CF42250310922303105A8F4E7 +:1029300007C02C30310569F02F30310551F00DC042 +:10294000803F69F018F4803E40F409C0843F29F4C8 +:1029500006C093FB882780F9089580E0089581E000 +:102960000895CF93DF9300D000D01F92CDB7DEB78C +:102970000F900F900F900F900F90DF91CF910895CF +:10298000CF93DF9300D000D000D0CDB7DEB726962E +:102990000FB6F894DEBF0FBECDBFDF91CF91089583 +:1029A0001F93CF93DF93C091850116E0809186013C +:1029B000C81799F0D0E01C9FF0011D9FF00D112465 +:1029C000E957FE4F408151816281738184819581F5 +:1029D0000E94C0142196C770E9CFDF91CF911F915B +:1029E00008954091B7015091B8016091B90170917B +:1029F000BA018091BB019091BC010C94C0148091EC +:102A0000BC0182958F7009F054C08091B901882370 +:102A100009F44FC080918501A09186016091B701B2 +:102A20007091B8014091BA015091BB01B6E08A178C +:102A300009F43FC090E041155105C1F17F3F11F409 +:102A40006F3FA1F1B89FF001B99FF00D1124E95734 +:102A5000FE4F218172132AC02081621327C0228178 +:102A6000211124C0238134812417350710F421500B +:102A70003109241B350B283C3105C0F42091BC01E1 +:102A80002F7020612093BC0126E0289FF001299F30 +:102A9000F00D1124E457FE4F80818F708061808398 +:102AA00087EB91E00E9448140C94D0140196877033 +:102AB000BECF0895CF92DF92EF92FF920F931F93B4 +:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32 +:102AD0000FBECDBF8C0185E0F801DE011D9601908F +:102AE0000D928A95E1F7D8014C9111965C9111975E +:102AF00012966C9112971396CD90DC9014973091AA +:102B0000B7017091B8018091BA019091BB01009713 +:102B100009F46BC17F3F19F43F3F09F466C1E090AF +:102B2000B901EE2009F4C0C02091BC01C816D90635 +:102B300028F0F601E81BF90BCF0104C080959095B1 +:102B40008C0D9D1DFF24F394883C910578F0F12CA9 +:102B5000207F09F0C6C07C2DD98AC88A89890E9445 +:102B6000B11487EB91E00E944814B1C0822F807F9E +:102B700009F046C0751314C0341312C0611110C09F +:102B80002F7020612093BC010E94F11487EB91E02B +:102B90000E9448148091BC01D80115968C932EC0D8 +:102BA000CD2819F15F3F11F44F3FF9F0F62E611176 +:102BB0001CC0809185012091860136E0821709F4BE +:102BC0005AC090E0389FF001399FF00D1124E95769 +:102BD000FE4F7181571306C07081471303C0728185 +:102BE000711103C001968770E9CFF62E662309F4B0 +:102BF00018C18091BC0181608093BC01F12C11C18E +:102C0000751308C0341306C0611104C08091BC0163 +:102C1000D801C3C04D875E878D859E856A8B0E94D3 +:102C200087146A898823E1F16623D1F12091BC01E0 +:102C3000822F82958F7090E0029774F08091B70197 +:102C40009091B80198878F831986DB86CA862C8776 +:102C5000CE0107960E94481486E0F801A7EBB1E088 +:102C600001900D928A95E1F70E94FF140E94F114E1 +:102C7000FF24F394D6C04D875E878D859E850E9484 +:102C8000BB19292F22952F7030E0223031050CF02E +:102C9000BCC09F7009F0B6C0805E883008F4C1C027 +:102CA000C8010E944814E4CFC816D90608F453C0DE +:102CB000F601E81BF90BCF01883C910508F450C0E0 +:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E +:102CD000F1E086E0DF011D928A95E9F70E94F11488 +:102CE000A0C0751314C0341312C0611110C08091BC +:102CF000BC01F8018583C8010E94481486E0E7EB17 +:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C +:102D10005E878D859E856A8B0E9487146A898823C9 +:102D200009F4BECF662309F4BBCF2091BC01822FEA +:102D300082958F7090E002970CF48ECF8091B7014E +:102D40009091B8019A8389831B82DD82CC822E8385 +:102D5000CE0101967FCF809590958C0D9D1DACCFB7 +:102D6000F62E662309F49CCF75132EC034132CC0A5 +:102D70002091BC0120FD1FC0822F82958F70D9F059 +:102D8000D80115962C9315978F3049F08F5F982FA7 +:102D90009295907F822F8F70892B15968C93C80106 +:102DA0000E94481486E0F801A7EBB1E001900D9273 +:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7 +:102DC0000D928A95E1F72DC04D875E878D859E8592 +:102DD0000E948714811140CF8091BC018160809353 +:102DE000BC01C8010E9448141CC0662309F458CFD6 +:102DF0004D875E878D859E850E948714882309F400 +:102E00004FCF2ACF811148CF0CC0243031050CF0B0 +:102E100047CF9F7009F440CFF8019581907F09F06A +:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D +:102E3000DF91CF911F910F91FF90EF90DF90CF9096 +:102E400008951F93CF93DF93CDB7DEB72C970FB6BE +:102E5000F894DEBF0FBECDBF4F83588769877A874E +:102E60008B879C87CE0107960E945A15882369F0AC +:102E70008F8198852A853B85232BF1F19F3F09F0AF +:102E800063C08F3F09F060C037C086E0FE0137960F +:102E9000DE01119601900D928A95E1F76F81788598 +:102EA000EA85FB85309741F17F3F11F46F3F21F1B7 +:102EB0002091860130E0C9010196877099274091E1 +:102EC000850150E08417950709F447C069837A8328 +:102ED000FD83EC8396E0929FD001939FB00D112467 +:102EE000A957BE4FFE01319601900D929A95E1F7D8 +:102EF000809386010E94D01416E080918501909104 +:102F000086018917C1F1189FC001112489579E4F6E +:102F10000E945A15882379F1E09185011E9FF001E6 +:102F20001124E957FE4F4081518162817381848170 +:102F300095810E94C0148091850190E00196877070 +:102F4000992780938501D9CF4F81588569857A85E6 +:102F50008B859C850E94C014CFCF0E948314109251 +:102F6000860110928501E7EBF1E086E0DF011D921A +:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45 +:102F8000CDBFDF91CF911F910895EF92FF920F93E4 +:102F90001F93CF93DF938C01009709F46CC0F12C41 +:102FA000EE24E394E8012196F8018491843740F4FB +:102FB000843008F051C0813081F0823019F15BC05B +:102FC000853709F444C0A8F19CE7980F903708F0C2 +:102FD00052C08F770E94CE1141C00E5F1F4FFE017D +:102FE000C49180E28C0F883048F4C7708E2D01C0E8 +:102FF000880FCA95EAF70E94A11A14C08C2F0E946C +:1030000006112DC00E5F1F4FFE01C49180E28C0F90 +:10301000883058F4C7708E2D01C0880FCA95EAF722 +:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3 +:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3 +:103040009FE00197F1F700C00000C150F6CF0E5F7E +:103050001F4FFE01F49003C00E9406118E018F2DB8 +:10306000882309F49FCFEFE9FFE03197F1F700C023 +:1030700000008150F5CFDF91CF911F910F91FF900C +:10308000EF90089508956093C1017093C2018093F9 +:10309000C3019093C4010C946F140F931F9300917C +:1030A000C1011091C2012091C3013091C401DC0122 +:1030B000CB01802B912BA22BB32B8093C10190933A +:1030C000C201A093C301B093C4011F910F910C944E +:1030D0006F140F931F930091C1011091C2012091B1 +:1030E000C3013091C401DC01CB0180239123A223D1 +:1030F000B3238093C1019093C201A093C301B09305 +:10310000C4011F910F910C946F140F931F930091A2 +:10311000C1011091C2012091C3013091C401DC01B1 +:10312000CB0180279127A227B3278093C1019093D9 +:10313000C201A093C301B093C4011F910F910C94DD +:103140006F141092BD011092BE011092BF01109237 +:10315000C0010C946F1441E050E060E070E004C0E6 +:10316000440F551F661F771F8A95D2F74093BD0104 +:103170005093BE016093BF017093C0010C946F1413 +:1031800041E050E060E070E004C0440F551F661F4E +:10319000771F8A95D2F78091BD019091BE01A091D1 +:1031A000BF01B091C001482B592B6A2B7B2B409358 +:1031B000BD015093BE016093BF017093C0010C9498 +:1031C0006F1441E050E060E070E004C0440F551F10 +:1031D000661F771F8A95D2F7409550956095709538 +:1031E0008091BD019091BE01A091BF01B091C0013D +:1031F000482359236A237B234093BD015093BE018A +:103200006093BF017093C0010C946F1441E050E0D3 +:1032100060E070E004C0440F551F661F771F8A9559 +:10322000D2F78091BD019091BE01A091BF01B091F4 +:10323000C001482759276A277B274093BD01509337 +:10324000BE016093BF017093C0010C946F140F9383 +:103250001F930091BD011091BE012091BF013091DB +:10326000C001DC01CB01802B912BA22BB32B8093CF +:10327000BD019093BE01A093BF01B093C0011F9107 +:103280000F910C946F140F931F930091BD01109137 +:10329000BE012091BF013091C001DC01CB01802330 +:1032A0009123A223B3238093BD019093BE01A093E9 +:1032B000BF01B093C0011F910F910C946F140F9335 +:1032C0001F930091BD011091BE012091BF0130916B +:1032D000C001DC01CB0180279127A227B32780936F +:1032E000BD019093BE01A093BF01B093C0011F9197 +:1032F0000F910C946F140895CF92DF92EF92FF928A +:103300000F931F93CF93DF938C01C090C101D09096 +:10331000C201E090C301F090C4018091BD01909181 +:10332000BE01A091BF01B091C001C82AD92AEA2AE2 +:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520 +:10334000A795979587950A94D2F780FF06C0B80194 +:103350008C2F0E944808019721F4219760F780E0A4 +:1033600001C08C2FDF91CF911F910F91FF90EF90B3 +:10337000DF90CF900895CF93DF93EC010E947C19EA +:10338000BE010E944808DF91CF910895CB010E94B1 +:10339000BB1908958091C5018595859585950895FA +:1033A0008091C5018770089598E0899F900111244C +:1033B000262B2093C5010C94C0182091C50180953F +:1033C00082238093C501982F977069F430E0482FCD +:1033D000552747FD50952417350729F08595859584 +:1033E00085950C94E11808959091C501977081E03E +:1033F00009F480E0089590910C01992321F09091B7 +:103400000D01911109C020910E0130910F01F901B8 +:1034100032969FEF40E01FC0982F9695969596950F +:103420009F3050F5E0910E01F0910F01E90FF11D71 +:10343000877021E030E0A90102C0440F551F8A9532 +:10344000E2F7CA019181892B818308959F3F39F06A +:103450004F5F4E3041F051915813F8CF0DC05111CC +:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08 +:1034700097FDFA9582830895089590910C01992300 +:1034800021F090910D01911109C020910E01309110 +:103490000F01F9013296205F3F4F1FC0982F96957C +:1034A000969596959F30F0F4E0910E01F0910F0102 +:1034B000E90FF11D877021E030E0A90102C0440F3F +:1034C000551F8A95E2F7CA018095918189238183EE +:1034D00008953196E217F30729F090819813F9CFF8 +:1034E0001082F7CF089581E090E0E0910E01F09115 +:1034F0000F01E80FF91F1082019680319105A9F79D +:1035000008959091D901892B8093D90108958095D0 +:103510009091D90189238093D90108951092D901FE +:1035200008959091D801892B8093D80108958095B2 +:103530009091D80189238093D80108951092D801E1 +:1035400008959091D701892B8093D7010895809594 +:103550009091D70189238093D70108951092D701C4 +:1035600008958093C60108951092C6010895809130 +:103570000E0190910F01FC0131969C01205F3F4F9D +:1035800080E0919191118F5FE217F307D1F70895D1 +:10359000E0910E01F0910F018091D9018083E091BB +:1035A0000E01F0910F0190818091D801892B8083C9 +:1035B000E0910E01F0910F0190818091D701892B4C +:1035C00080838091C601882361F0E0910E01F09123 +:1035D0000F019081892B80830E94B71A811110926C +:1035E000C60180910E0190910F010C94F60F20E01E +:1035F000009739F0AC0141505109842395232F5F86 +:10360000F7CF822F0895CF92DF92EF92FF926C0155 +:10361000EE24FF24C114D104E104F10421F0C70118 +:10362000B60120E101C020E0C72ED82EE92EFF24EC +:10363000C114D104E104F10419F0285FC701B601F7 +:103640006B017C0154E0F694E794D794C7945A95A3 +:10365000D1F7C114D104E104F10419F02C5FC701C2 +:10366000B6016B017C0142E0F694E794D794C794CD +:103670004A95D1F7C114D104E104F10419F02E5F89 +:10368000C701B601DC01CB01B695A7959795879543 +:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5 +:1036A000DF90CF9008958091F101843021F1109244 +:1036B000DB0120E488E190E00FB6F894A8958093B0 +:1036C00060000FBE2093600080E00E94E30883B793 +:1036D000817F846083BF83B7816083BF789488953E +:1036E00083B78E7F83BF88E10FB6F8948093600024 +:1036F000109260000FBE0895089508950E947C1BEB +:103700000E944B030E947D1B0E94400491E08111A6 +:1037100001C090E0892F08950E9483140E94EA0F4F +:103720000C94E30882E084BD93E095BD9AEF97BDC9 +:1037300080936E0008952FB7F8948091DC019091EA +:10374000DD01A091DE01B091DF012FBF0895CF927E +:10375000DF92EF92FF920F931F932FB7F89440914F +:10376000DC015091DD016091DE017091DF012FBF1E +:103770006A017B01EE24FF248C0120E030E0C016BA +:10378000D106E206F30610F4415051099A01281BB4 +:10379000390BC9011F910F91FF90EF90DF90CF90EF +:1037A00008951F920F920FB60F9211248F939F933B +:1037B000AF93BF938091DC019091DD01A091DE0178 +:1037C000B091DF010196A11DB11D8093DC019093A2 +:1037D000DD01A093DE01B093DF01BF91AF919F9116 +:1037E0008F910F900FBE0F901F9018950E94E70CBD +:1037F000F8942FEF87EA91E6215080409040E1F75E +:1038000000C0000087E090EBDC018093FB01909307 +:10381000FC01A093FD01B093FE019CE088E10FB68E +:10382000F894A895809360000FBE90936000FFCF3E +:10383000EF92FF920F931F93CF93DF93D82FCDE09A +:103840008C2F0E94390405E010E0E82EF12CC7010E +:10385000002E02C0959587950A94E2F780FF09C073 +:10386000602F7C2F80E00E94F305D81302C081E016 +:1038700006C00150110958F7C15010F780E0DF91E0 +:10388000CF911F910F91FF90EF900895CF93C82F84 +:103890008CE20E94181C882321F08C2FCF910C946D +:1038A000181C80E0CF910895CF930E949B1D811139 +:1038B00002C00E94811DC5E6C15049F00E944B0321 +:1038C0008FE39CE90197F1F700C00000F5CF89E292 +:1038D0000E94461C811113C18AE20E94461C81117C +:1038E0000E94811D85E00E94461C81110E94F61BEA +:1038F0000E94A61D8093DA0187E00E94461C88235F +:10390000A9F18BE10E94461C882351F08091DA01D5 +:1039100081FB222720F991E0922790FB81F90EC0CC +:103920008EE00E94461C882361F08091DA0182FBC0 +:10393000222720F991E0922790FB82F98093DA0107 +:1039400015C080E10E94461C9091DA01882341F065 +:1039500093FB222720F981E0822780FB93F904C0A2 +:10396000892F809580FB90F99093DA018091DA019C +:103970000E94AA1D0E94B81D8093FA0180EE0E9449 +:10398000461C882341F08091FA01982F909590FB76 +:1039900080F98093FA0189E30E94461C882359F03C +:1039A0008091FA0181FB222720F991E0922790FB78 +:1039B00081F98093FA0182EE0E94461C882359F017 +:1039C0008091FA0182FB222720F991E0922790FB57 +:1039D00082F98093FA0186EE0E94461C882359F0F2 +:1039E0008091FA0183FB222720F991E0922790FB36 +:1039F00083F98093FA0183EE0E94461C882359F0D4 +:103A00008091FA0184FB222720F991E0922790FB14 +:103A100084F98093FA0185E30E94461C882359F0BB +:103A20008091FA0185FB222720F991E0922790FBF3 +:103A300085F98093FA0181E30E94461C882359F09E +:103A40008091FA0186FB222720F991E0922790FBD2 +:103A500086F98093FA0181E10E94461C882359F07F +:103A60008091FA0187FB222720F991E0922790FBB1 +:103A700087F98093FA018091FA010E94BC1D809120 +:103A8000FA0187FB882780F980930D0187E20E9465 +:103A9000461CC82F8EE10E94461C8111C2608FE136 +:103AA0000E94461C8111C46080E20E94461C811164 +:103AB000C86081E20E94461C8111C06182E20E94BE +:103AC000461C8111C06283E20E94461C8111C064C1 +:103AD00084E20E94461C882311F0C06802C0CC23F7 +:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4 +:103AF000682F70E080E090E0CF910C944318CF9154 +:103B000008956DEE7EEF80E090E00E94ED2360E08E +:103B100082E090E00E94DB2360E083E090E00E947E +:103B2000DB2360E084E090E00E94DB2360E085E03E +:103B300090E00C94DB2380E090E00E94D52321E00C +:103B40008D3E9E4F09F020E0822F089582E090E0A4 +:103B50000C94CD23682F82E090E00C94DB2383E06B +:103B600090E00C94CD23682F83E090E00C94DB234D +:103B700084E090E00C94CD23682F84E090E00C94D6 +:103B8000DB238091E20180FF0BC06091130185E08F +:103B9000689FB001112475956795759567952BC041 +:103BA00081FF09C06091130185E0689FB001112475 +:103BB0007595679520C082FF07C06091130185E06D +:103BC000689FB001112417C09091E3019923D1F0AF +:103BD00060911201961788F72091130185E0289FC4 +:103BE00090011124929FA001939F500D112470E029 +:103BF000CA010E949F236038710540F46115710568 +:103C000039F002C065E070E0862F08958FE70895CF +:103C100081E008958091E20180FF08C06091110168 +:103C200070E0759567957595679521C081FF06C011 +:103C30006091110170E07595679519C082FF04C00D +:103C40006091110170E010C09091E3019923C1F0DF +:103C5000609110019617A0F780911101899FC00112 +:103C6000112470E00E949F236038710528F46115CB +:103C7000710521F0862F08958FE7089581E008955A +:103C800061E070E0F4CF803F21F40E94C11D819576 +:103C900004C0813F29F40E94C11D8093E60108956C +:103CA000823F21F40E94C11D819504C0833F29F405 +:103CB0000E94C11D8093E5010895893F19F40E9477 +:103CC0000A1E05C08A3F31F40E940A1E8195809326 +:103CD000E70108958B3F21F40E940A1E819504C0DC +:103CE0008C3F29F40E940A1E8093E8010895843FC6 +:103CF00021F48091E401816017C0853F21F4809117 +:103D0000E401826011C0863F21F48091E401846067 +:103D10000BC0873F21F48091E401886005C0883F93 +:103D200031F48091E40180618093E40108958D3F36 +:103D300021F48091E20181600BC08E3F21F48091DB +:103D4000E201826005C08F3F29F48091E201846026 +:103D50008093E2010895803F39F48091E60187FF66 +:103D60006CC01092E60169C0813F29F48091E601A0 +:103D70001816BCF362C09091E501823F29F497FFC9 +:103D80005CC01092E50159C0833F19F41916CCF3B9 +:103D900054C0893F41F48091E70118160CF04DC0E2 +:103DA0001092E7014AC08A3F29F48091E70187FF1A +:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6 +:103DC0001092E8013AC08C3F29F48091E80118165E +:103DD000BCF333C0843F21F48091E4018E7F17C08F +:103DE000853F21F48091E4018D7F11C0863F21F44D +:103DF0008091E4018B7F0BC0873F21F48091E40127 +:103E0000877F05C0883F31F48091E4018F7E8093E5 +:103E1000E40113C08D3F21F48091E2018E7F0BC03D +:103E20008E3F21F48091E2018D7F05C08F3F29F400 +:103E30008091E2018B7F8093E2018091E501811105 +:103E40000EC08091E60181110AC08091E7018111C5 +:103E500006C08091E801811102C01092E30108952B +:103E600084EE91E00E9401100E949B1B9093E1015F +:103E70008093E00108951F93CF93DF938091E00139 +:103E80009091E1010E94A71BAC019091E30199235D +:103E900021F02091140130E006C0209115018AE044 +:103EA000289F900111244217530708F486C080917F +:103EB000E501C091E601D091E7011091E80181117F +:103EC00007C0C11176C0D11174C0111172C075C084 +:103ED0009F3F19F09F5F9093E301181624F40E940E +:103EE000C11D8093E5018091E50187FF05C00E9417 +:103EF000C11D81958093E5011C1624F40E94C11D0B +:103F00008093E6018091E60187FF05C00E94C11DF4 +:103F100081958093E6016091E501662339F1C091B6 +:103F2000E601CC2319F1772767FD7095872F972F2E +:103F30000E94B02223E333E343E35FE30E941423B0 +:103F40000E947D226093E5016C2F772767FD7095B5 +:103F5000872F972F0E94B02223E333E343E35FE3ED +:103F60000E9414230E947D226093E6011D1624F412 +:103F70000E940A1E8093E7018091E70187FF05C038 +:103F80000E940A1E81958093E701111624F40E9475 +:103F90000A1E8093E8018091E80187FF05C00E9416 +:103FA0000A1E81958093E801DF91CF911F910C94B7 +:103FB000301F9F3F09F08ECF96CFDF91CF911F9199 +:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE +:103FD0001092E3011092E2010895833081F128F4F8 +:103FE000813059F08230D1F00895853009F449C00C +:103FF000B8F1863009F456C0089580911501262F36 +:1040000030E0280F311D2F3F310524F4680F6093F5 +:10401000150108958FEF8093150108958091140183 +:10402000262F30E0280F311D2F3F310524F4680F73 +:104030006093140108958FEF809314010895809187 +:104040001301262F30E0280F311D2F3F310524F4B6 +:10405000680F6093130108958FEF80931301089503 +:1040600080911201262F30E0280F311D2F3F31059E +:1040700024F4680F6093120108958FEF809312016A +:10408000089580911101262F30E0280F311D2F3F18 +:10409000310524F4680F6093110108958FEF809328 +:1040A0001101089580911001262F30E0280F311D55 +:1040B0002F3F310524F4680F6093100108958FEFAE +:1040C000809310010895833011F128F4813049F074 +:1040D000823091F00895853081F120F18630C1F170 +:1040E000089580911501681720F4861B80931501AF +:1040F000089510921501089580911401681720F415 +:10410000861B8093140108951092140108958091E4 +:104110001301681720F4861B8093130108951092F1 +:104120001301089580911201681720F4861B809373 +:1041300012010895109212010895809111016817DB +:1041400020F4861B809311010895109211010895A7 +:1041500080911001681720F4861B80931001089548 +:104160001092100108950F931F938D3109F46BC0C5 +:1041700008F03FC08E3009F47FC0C0F4873009F4E6 +:1041800069C068F4863009F0B1C08091DA01817F9E +:104190008E7F8093DA0181E08093EA01A8C08830A5 +:1041A00009F4A2C08B3009F49FC0A0C0863109F485 +:1041B0009BC078F4803109F472C0813109F096C057 +:1041C0000E94831490910D0181E0892780930D0155 +:1041D0008BC0893109F488C08B3109F087C0809188 +:1041E000DA0181FB222720F991E0922790FB81F9E7 +:1041F0004CC0853309F470C048F4873209F46CC0B0 +:1042000008F459C0893209F467C070C0833438F4A7 +:104210008A3308F04EC0883309F466C067C083341F +:1042200009F45AC0883409F061C00E9483140FEF6A +:1042300013ED20E3015010402040E1F700C00000E2 +:104240000E94F61B51C00E9437220E94EA0F0E9472 +:10425000E3084AC09091DA01892F8095817080FB34 +:1042600090F929F0966098609093DA0140C0997FA8 +:10427000977F9093DA0138C08091DA0182FB222780 +:1042800020F991E0922790FB82F98093DA0199233B +:1042900059F18091DA0181608093DA0125C0809123 +:1042A000DA0183FB222720F991E0922790FB83F922 +:1042B000ECCF895301C08D5141E050E060E070E0E7 +:1042C0008A019B0104C0000F111F221F331F8A9512 +:1042D000D2F7C901B80104C061E070E080E090E06D +:1042E0000E9443180E94831481E001C080E01F9166 +:1042F0000F91089580E0089580E00895CF93C82F2E +:104300008091EA01813079F018F08230E9F187C0BC +:10431000E0910E01F0910F018081813169F08232CC +:1043200009F07FC009C0E0910E01F0910F0180817A +:10433000813111F0823261F48C2F0E947A21811137 +:1043400004C08C2F0E94B3201DC081E090E01AC0F1 +:104350008C2F0E947C21811114C0C43179F048F463 +:10436000CB3079F0C03109F060C082E08093EA017F +:1043700008C0C93219F0C83321F057C01092EA01C1 +:1043800054C081E0817053C0C93289F118F5C4313D +:1043900071F1A8F4C73009F046C08AE08093150196 +:1043A00094E19093140193E0909313018093120190 +:1043B00088E08093110188E28093100134C0CE51CF +:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB +:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC +:1043E00013C0C13579F0C235F1F461E00DC08091A0 +:1043F000E901882319F01092E90115C081E080934A +:10440000EA0115C061E006C08091E9010E94ED1F3C +:104410000AC06AE08091E9010E94632004C0109202 +:10442000EA0180E004C081E002C080E0ABCFCF9120 +:104430000895E1E8F0E08081886080838081816078 +:1044400080838FB7F89493E09093890090ED9093D8 +:1044500088008FBF0895EFE6F0E08081826080835E +:104460000895EFE6F0E080818D7F80830895EFE688 +:10447000F0E0908182E08927808308951F920F9257 +:104480000FB60F9211242F933F934F935F936F9327 +:104490007F938F939F93AF93BF93EF93FF938091FD +:1044A000EB019091EC0101969093EC018093EB016C +:1044B000811103C082E00E94E308E091EC01E695DF +:1044C000E695F0E0EC54FB4FE4918091EB018E1304 +:1044D00003C080E00E94E308FF91EF91BF91AF918C +:1044E0009F918F917F916F915F914F913F912F910C +:1044F0000F900FBE0F901F90189504D06894B111C3 +:104500008DC0089570D088F09F5790F0B92F9927EB +:10451000B751A0F0D1F0660F771F881F991F1AF0CE +:10452000BA95C9F712C0B13081F077D0B1E00895E3 +:1045300074C0672F782F8827B85F39F0B93FCCF364 +:10454000869577956795B395D9F73EF490958095C4 +:10455000709561957F4F8F4F9F4F0895E89409C0E4 +:1045600097FB3EF490958095709561957F4F8F4FA6 +:104570009F4F9923A9F0F92F96E9BB279395F695BC +:10458000879577956795B795F111F8CFFAF4BB0F3A +:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E +:1045A000882311F096E911C0772321F09EE8872F28 +:1045B000762F05C0662371F096E8862F70E060E0E4 +:1045C0002AF09A95660F771F881FDAF7880F96955D +:1045D000879597F9089557FD9058440F551F59F046 +:1045E0005F3F71F04795880F97FB991F61F09F3FE0 +:1045F00079F087950895121613061406551FF2CF09 +:104600004695F1DF08C0161617061806991FF1CF58 +:1046100086957105610508940895E894BB2766277F +:104620007727CB0197F908950BD078C069D028F08F +:104630006ED018F0952309F05AC05FC01124EECF58 +:10464000CADFA0F3959FD1F3950F50E0551F629FED +:10465000F001729FBB27F00DB11D639FAA27F00DDB +:10466000B11DAA1F649F6627B00DA11D661F829F02 +:104670002227B00DA11D621F739FB00DA11D621FE7 +:10468000839FA00D611D221F749F3327A00D611D04 +:10469000231F849F600D211D822F762F6A2F1124E6 +:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39 +:1046B000BB1F661F771F881F91505040A9F79E3F70 +:1046C000510570F014C0AACF5F3FECF3983EDCF3C5 +:1046D000869577956795B795F795E7959F5FC1F7AD +:1046E000FE2B880F911D9695879597F9089597F958 +:1046F0009F6780E870E060E008959FEF80EC089588 +:1047000000240A94161617061806090608950024B0 +:104710000A9412161306140605060895092E03942A +:10472000000C11F4882352F0BB0F40F4BF2B11F49E +:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF +:10474000072E16F4009407D077FD09D00E94B923F4 +:1047500007FC05D03EF4909581959F4F0895709584 +:1047600061957F4F0895EE0FFF1F0590F491E02DA6 +:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8 +:10478000B70710F0A61BB70B881F991F5A95A9F7FA +:1047900080959095BC01CD010895F999FECF92BD09 +:1047A00081BDF89A992780B50895A8E1B0E042E06C +:1047B00050E00C94F523262FF999FECF92BD81BDD0 +:1047C000F89A019700B4021639F01FBA20BD0FB64F +:1047D000F894FA9AF99A0FBE08950196272F0E942D +:1047E000DC230C94DB23DC01CB01FC01F999FECF27 +:1047F00006C0F2BDE1BDF89A319600B40D92415069 +:0A4800005040B8F70895F894FFCF78 +:10480A000220E508730950091C09E8080101C701DB +:10481A0028080A03140A3F4D363975042804F2039E +:10482A00B9034C0365037E039703010203040506DB +:04483A000708090062 +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/jgarr/keymap.c b/keyboards/ergodox_ez/keymaps/jgarr/keymap.c new file mode 100644 index 000000000..a3ad2040f --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/jgarr/keymap.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/keyboards/ergodox_ez/keymaps/kastyle/compiled.hex b/keyboards/ergodox_ez/keymaps/kastyle/compiled.hex new file mode 100644 index 000000000..0a229cac5 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/kastyle/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947A020C94BE020C94BE020C94BE02B4 +:100010000C94BE020C94BE020C94BE020C94BE0260 +:100020000C94BE020C94BE020C94620D0C94340E1F +:100030000C94BE020C94BE020C94BE020C94BE0240 +:100040000C94BE020C943E220C94BE020C94BE0290 +:100050000C94BE020C94D11B0C94BE020C94BE02F4 +:100060000C94BE020C94BE020C94BE020C94BE0210 +:100070000C94BE020C94BE020C94BE020C94BE0200 +:100080000C94BE020C94BE020C94BE020C94BE02F0 +:100090000C94BE020C94BE020C94BE020C94BE02E0 +:1000A0000C94BE020C94BE020C94BE02A10EC30EB0 +:1000B000B10FC30EB10F080F2B0FB10F800F930FAD +:1000C0006212621291129112C712E71218141814D8 +:1000D000F2121814A213A2130914181418141214EB +:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300 +:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0 +:10010000C113CE13D513DC13E6130000F0A12E00AB +:100110002B00E000E100354100001E001400040047 +:100120001D7134004D001F001A0016001B00E10471 +:100130004C00200008000700060050002A002100A3 +:100140001500090019004F004A00220017000A009C +:10015000050000002971E30001540000007F000049 +:10016000657465000154000000770000E200230080 +:100170001C000B00110000002971240018000D0064 +:10018000100052004B0025000C000E0036005100FC +:100190002C00260012000F0037002F002800270037 +:1001A00013003342387130004E002D00310034000E +:1001B000E500C10000000100010001000100010094 +:1001C00000003A001E0220022202010001003B0052 +:1001D0001F0221022302010001003C002F0226021F +:1001E0002F00010001003D00300227023000010015 +:1001F00001003E003102350035020000010001001F +:1002000001000000010000000100010001000000E9 +:100210000100000001003F005200510024020000D4 +:1002200001004000240021001E00010001004100E7 +:10023000250022001F003700010042002600230095 +:10024000200027000100430025022E0231002E006D +:100250000100440045000100010001000000010010 +:100260000100010001000100000001000100010087 +:1002700001000100010001000100F2000100010085 +:1002800001000100F000F1000100F4000100010094 +:100290000100F3000100F500010001000100010070 +:1002A0000100000001000100010000000100000049 +:1002B0000100010001000000010000000100010038 +:1002C0000100010001000000010001000100010027 +:1002D0000100A9000100010001000100AC00AA001A +:1002E000B600010001000100AB00A8000100010000 +:1002F0000100010001000100010001000100AE0049 +:1003000001000100000016034500720067006F0045 +:1003100044006F007800200045005A0000001603DA +:100320004500720067006F0044006F0078002000F5 +:1003300045005A0000000403090409026D0004018D +:1003400000A0FA09040000010301010009211101C4 +:100350000001223F000705810308000A090401008B +:100360000103010200092111010001224D000705CE +:10037000820308000A0904020001030000000921A9 +:10038000110100012236000705830308000A090451 +:1003900003000103000000092111010001223900BE +:1003A000070584031000011201100100000008ED90 +:1003B000FE071301000102000105010906A1010564 +:1003C0000719E029E7150025019508750181020547 +:1003D000081901290595057501910295017503918B +:1003E0000105071900297715002501957875018108 +:1003F00002C005010980A101850216010026B7008F +:100400001A01002AB700751095018100C0050C097A +:1004100001A1018503160100269C021A01002A9CF5 +:1004200002751095018100C005010902A1010901B1 +:10043000A10005091901290515002501950575017A +:10044000810295017503810105010930093115818A +:10045000257F95027508810609381581257F95014C +:1004600075088106050C0A38021581257F950175EE +:10047000088106C0C005010906A101050719E02988 +:10048000E715002501950875018102950175088120 +:100490000105081901290595057501910295017558 +:1004A0000391010507190029FF150025FF95067521 +:1004B000088100C0000000000000000000000001F2 +:1004C0000204060A0F17202C3A4A5D71879DB3C7B4 +:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF +:1004E0003A2C20170F0A0604020100000000000049 +:1004F0000000000011241FBECFEFDAE0DEBFCDBF49 +:1005000004B603FE24C08091FB019091FC01A091F0 +:10051000FD01B091FE018730904BA740B04BB9F47C +:100520001092FB011092FC011092FD011092FE014D +:1005300014BE84B7877F84BF88E10FB6F894809398 +:100540006000109260000FBEE0E0FFE3099511E04B +:10055000A0E0B1E0EAE0F8E402C005900D92A43317 +:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0 +:10057000B107E1F70E94A60A0C9403240C94000032 +:100580001092B9008AE08093B800089594EA90939D +:10059000BC009091BC0097FFFCCF9091B900987F70 +:1005A000983021F0903111F081E008958093BB00E4 +:1005B00084E88093BC008091BC0087FFFCCF8091D1 +:1005C000B900887F883111F0803471F780E0089598 +:1005D00084E98093BC008091BC0084FDFCCF089529 +:1005E0008093BB0084E88093BC008091BC0087FFAF +:1005F000FCCF9091B900987F81E0983209F480E0B7 +:10060000089584E88093BC008091BC0087FFFCCFF4 +:100610008091BB00089580910101811115C080E493 +:100620000E94C6028093010181110CC082E10E94E8 +:10063000F00280930101811105C08FEF0E94F0024A +:10064000809301010E94E80284B1807F84B985B162 +:10065000807F85B98AB1837F8AB98BB1837F8BB95B +:100660003E98469808950E94C604809301010E9416 +:100670000B0380B38C7080BB81B3836F81BBA5E318 +:10068000B1E0E3E4F1E08EE08E0F11921D928E1343 +:10069000FCCF0C94B004BF92CF92DF92EF92FF9206 +:1006A0000F931F93CF93DF9380910101882379F0FB +:1006B000809134018F5F80933401811108C00E94C2 +:1006C000C60480930101811102C00E94580405E311 +:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407 +:1006E000E394F12CC730D10500F58091010181110F +:1006F00064C080E40E94C60280930101811112C08F +:1007000082E10E94F0028093010181110BC0C701B8 +:100710000C2E01C0880F0A94EAF780950E94F0021F +:10072000809301010E94E80248C0CA30A1F028F479 +:10073000C83059F0C93061F005C0CC3089F070F094 +:10074000CD3089F0209A289810C0219A29980DC0A0 +:10075000229A2A980AC0239A2B9807C0529A01C05D +:10076000539A5B9802C03E9A469890EA9A95F1F7A0 +:100770009FB1799902C082E001C080E091709D250F +:10078000982B7C9902C084E001C080E0892B7D9980 +:1007900002C038E001C030E0832B7E9902C020E126 +:1007A00001C020E0822B9FB19095991F9927991F36 +:1007B0009295990F907E892B0FC080910101811134 +:1007C00049C080E40E94C60280930101882379F128 +:1007D000B12C0E94E8028B2DF8019081981719F036 +:1007E0008083C09200010E940B0321960F5F1F4F70 +:1007F000CE30D10509F076CF80910001882361F1D8 +:10080000815080930001882339F08FE99FE00197A0 +:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F +:10082000CF01825F91919D938E13FCCF15C083E120 +:100830000E94F002809301018111CACF81E40E94DD +:10084000C602809301018111C3CF0E940103B82E1B +:10085000B094BFCF80E0C0CF0E94560481E0DF910A +:10086000CF911F910F91FF90EF90DF90CF90BF90AD +:100870000895E82FF0E0ED5BFE4F80810895089524 +:100880000F931F93CF93DF93C3E4D1E010E00C2FBD +:10089000025F899190E00E94F71A180F0C13F9CFAC +:1008A000812FDF91CF911F910F9108950C94260510 +:1008B00056985E9825982D9826982E9827982F98C8 +:1008C0008FEF90E0909389008093880090938B0045 +:1008D00080938A0090938D0080938C00259A2D9AA6 +:1008E0002FEF80E792E0215080409040E1F700C078 +:1008F0000000269A2E9A2FEF80E792E02150804048 +:100900009040E1F700C00000279A2F9A2FEF80E770 +:1009100092E0215080409040E1F700C0000025980F +:100920002D982FEF80E792E0215080409040E1F732 +:1009300000C0000026982E982FEF80E792E021500B +:1009400080409040E1F700C0000027982F9856980B +:100950005E9825982D9826982E9827982F98089578 +:1009600089EA8093800089E08093810024982C9804 +:100970003F988AB18F748AB96E98479A8BB1806B11 +:100980008BB9769A0E9458040C94250580E28093D6 +:1009900001018091510181110EC00E94C00281E0CD +:1009A000809351012FEF83ED90E3215080409040E0 +:1009B000E1F700C0000080E40E94C60280930101BC +:1009C00081112EC00E94F00280930101811128C084 +:1009D0000E94F00280930101811122C08FE30E94E6 +:1009E000F0028093010181111BC00E94E80280E4A3 +:1009F0000E94C60280930101811112C08CE00E9406 +:100A0000F0028093010181110BC00E94F0028093DB +:100A10000101811105C08FE30E94F0028093010162 +:100A20000E94E80280910101089561110BC0FC0150 +:100A30008281882321F085EE0E94061103C085EE95 +:100A40000E94CE1180E090E0089508956091BD016C +:100A50007091BE018091BF019091C0010E94031B63 +:100A600056985E9825982D9826982E9827982F9816 +:100A7000813019F0823021F00895259A2D9A089539 +:100A8000269A2E9A089581E0089581E008950C94A5 +:100A9000450508950F931F93CF93DF938C01FC01BD +:100AA000C081D181CE010E947C19BE010E94F30554 +:100AB000EC01B8010E944705882309F48DC0F801B4 +:100AC0008281882309F44AC080915D0181111FC091 +:100AD000C431F0E5DF0709F051C00E94490581E00B +:100AE00080935D010E949B1B90935C0180935B014E +:100AF0001092540110925601109255011092580113 +:100B00001092570110925A011092590165C08091BC +:100B10005B0190915C010E94A71B883C910570F4D9 +:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB +:100B3000D183C0838F5F809354014EC0C43880E559 +:100B4000D80721F0C538D04501F13AC0F8018281BB +:100B5000882341F01092520182E01EC0C438E0E5C3 +:100B6000DE0759F580915201811106C086E20E948C +:100B7000061186E20E94CE1182E01CC0C438F0E566 +:100B8000DF0741F3C538D045D9F4F80182818823C5 +:100B900031F01092530180E20E941D121DC080911D +:100BA0005301811106C087E20E94061187E20E946C +:100BB000CE1180E20E9424120FC0C538D04529F31F +:100BC00081E08093520180935301C801DF91CF915E +:100BD0001F910F910C94430580E0DF91CF911F91FD +:100BE0000F910895089596E0799FF001112494E5FE +:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F +:100C0000E25FFE4F859194910895880F991FFC0132 +:100C1000E657F040859194910895880F991FFC0143 +:100C2000E65FFE4F8591949108950F931F93CF93A4 +:100C3000DF93EC01811520E3920750F5C11580E2A6 +:100C4000D80708F0C3C0CB3BD10590F4C83AD10512 +:100C500008F06AC0C53AD10508F05BC0C430D105C0 +:100C600008F0D0C1219709F0CAC101E010E00AC222 +:100C7000CF3FD10511F008F0C5C1C03FD10508F044 +:100C8000A2C0CE01805E9109089708F4BBC1B7C12C +:100C9000C13090E5D90709F4A2C020F5C0318FE436 +:100CA000D80770F4C11590E4D90708F094C0C115B5 +:100CB00021E3D20708F0A3C1DD278E01106CE2C149 +:100CC000C115D04509F09BC10E9483148FEF94E3B6 +:100CD0002CE0815090402040E1F700C000000E94CD +:100CE000F61BD0C1C11597E5D90758F4C03121E5ED +:100CF000D20708F01CC1C43180E5D80708F475C0DC +:100D00007EC1CE0190578115904108F078C1DF7007 +:100D100073C1C53AD10509F477C1C63AD10509F0C6 +:100D200076C102E810E4AEC1C83AD10509F472C137 +:100D3000C93AD10509F471C1CA3AD10509F470C1A3 +:100D4000CB3AD10509F46FC1CC3AD10509F46EC193 +:100D5000CD3AD10509F46DC1C03BD10509F46CC190 +:100D6000CE3AD10509F46BC1CF3AD10509F46AC175 +:100D7000C13BD10509F469C1C23BD10509F468C181 +:100D8000C33BD10509F467C1C43BD10509F466C171 +:100D9000C53BD10509F465C1C63BD10509F464C161 +:100DA000C73BD10509F463C1C83BD10509F462C151 +:100DB000C93BD10509F461C1CA3BD10509F460C141 +:100DC00000E014E45FC18E0110655CC1CE019F702C +:100DD0000E940D0658C1DF708E01106A53C18091C8 +:100DE000DA0181608093DA014DC10E949B1D81115F +:100DF00002C00E94811D0E94B81D90E09093FB01EB +:100E00008093FA01C23080E5D80721F48091FA017D +:100E1000816086C0C43090E5D90721F48091FA0141 +:100E200082607EC0C63020E5D20721F48091FA01AD +:100E3000846076C0C83080E5D80719F48091FA0143 +:100E400027C0CA3090E5D90721F48091FA0180616A +:100E500067C0CC3020E5D20721F48091FA0180628E +:100E60005FC0CE3080E5D80721F48091FA0180641C +:100E700057C0C03190E5D90721F48091FA0180680C +:100E80004FC0C23120E5D20729F48091FA01846075 +:100E9000886046C0C33080E5D80721F48091FA010C +:100EA0008E7F3EC0C53090E5D90721F48091FA01CC +:100EB0008D7F36C0C73020E5D20721F48091FA013A +:100EC0008B7F2EC0C93080E5D80719F48091FA01D4 +:100ED00026C0CB3090E5D90721F48091FA018F7EAE +:100EE0001FC0CD3020E5D20721F48091FA018F7D1B +:100EF00017C0CF3080E5D80721F48091FA018F7BAD +:100F00000FC0C13190E5D90721F48091FA018F77A4 +:100F100007C0C331D04531F48091FA018B7F877FC0 +:100F20008093FA018091FA010E94BC1DABC08D2F05 +:100F300099278F70992781309105D9F49E012370EC +:100F4000332702C0880F991F2A95E2F79C688E010B +:100F500044E0000F111F4A95E1F700271370802B22 +:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA +:100F70002FC08230910531F4DC2FCC278E01016F18 +:100F8000106A80C08330910569F4CE01837099277F +:100F900001E010E002C0000F111F8A95E2F7C801BE +:100FA0009C680FC084309105B9F4CE0183709927F5 +:100FB00001E010E002C0000F111F8A95E2F7C8019E +:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029 +:100FD0008C010C2B1D2B56C08530910531F4DC2F74 +:100FE000CC278E01046F106A4DC0069709F04AC0E5 +:100FF000CF71DD27DC2FCC278E01106243C000E0CB +:1010000010E040C08E013EC001E810E43BC003E8A0 +:1010100010E438C002EE14E435C009EE14E432C026 +:101020000AEE14E42FC005EB14E42CC006EB14E424 +:1010300029C007EB14E426C00CEC14E423C00DEC2B +:1010400014E420C003E815E41DC00AE815E41AC042 +:1010500002E915E417C004E915E414C001E216E43E +:1010600011C003E216E40EC004E216E40BC005E270 +:1010700016E408C006E216E405C007E216E402C062 +:101080000AE216E4C801DF91CF911F910F910895F4 +:1010900096E0799FF001112494E5899FE00DF11D00 +:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149 +:1010B0009491803E9105E0F4803C910558F5813390 +:1010C000910509F46FC048F48932910509F463C0B1 +:1010D0008A32910509F46DC072C089339105E9F037 +:1010E00082389105D1F08533910509F44DC067C070 +:1010F000833E910581F138F4803E9105B9F0823E3E +:101100009105D9F05CC0863E910561F1873E91055D +:10111000A1F155C00E94050608952091FA0120FD15 +:1011200002C021FF4CC080EE90E049C08091FA01DE +:1011300080FFF9CF89E390E042C08091FA0182FFFD +:101140000EC08091FA0184FF03C080E090E037C0B8 +:1011500083EE90E034C08091FA0182FFF2CF82EEFC +:1011600090E02DC08091FA0183FF0BC08091FA01BD +:1011700084FDEBCF87EE90E022C08091FA0183FFDF +:10118000F5CF86EE90E01BC08091FA0185FF07C085 +:1011900089E290E014C08091FA0185FFF9CF85E3E0 +:1011A00090E00DC08091FA0186FF07C08AE290E0CE +:1011B00006C08091FA0186FFF9CF81E390E00E949A +:1011C0001506089508950C94E20880916E01089523 +:1011D000CF93DF9300D01F92CDB7DEB79C018091F3 +:1011E000F101843019F593E099833B832A8390932E +:1011F000E9008FEF9091E800815095FD06C095EDD4 +:101200009A95F1F700008111F5CF8091E80085FFF4 +:101210000DC040E050E063E070E0CE0101960E9416 +:10122000520B8091E8008E778093E8000F900F902A +:101230000F90DF91CF910895CF93DF9300D01F924D +:10124000CDB7DEB72091F101243021F522E02983CA +:101250009B838A8383E08093E9008FEF9091E8007D +:10126000815095FD06C095ED9A95F1F7000081112A +:10127000F5CF8091E80085FF0DC040E050E063E0CD +:1012800070E0CE0101960E94520B8091E8008E77AB +:101290008093E8000F900F900F90DF91CF91089509 +:1012A0002091F1012430F1F422E02093E9002FEFA6 +:1012B0003091E800215035FD06C035ED3A95F1F743 +:1012C00000002111F5CF2091E80025FF0BC040E080 +:1012D00050E065E070E00E94520B8091E8008E774C +:1012E0008093E8000895CF93DF93EC019091F10192 +:1012F000943009F046C080910C018823D9F0809188 +:101300000D018823B9F09093E9008FEF9091E800E8 +:10131000815095FD06C095E19A95F1F70000811185 +:10132000F5CF8091E80085FF2CC040E050E060E1FF +:1013300070E017C081E08093E9008FEF9091E800A2 +:10134000815095FD06C095ED9A95F1F70000811149 +:10135000F5CF8091E80085FF14C040E050E068E0E0 +:1013600070E0CE010E94520B8091E8008E7780934E +:10137000E80080E1FE01AEE5B1E001900D928A95B2 +:10138000E1F7DF91CF9108958091F001811109C0BB +:101390000E94E70C0E94440D8091E20084608093DB +:1013A000E20008951092F001089508950C942B2204 +:1013B0000E948C1B0E9431220E94EA0F0C94E308C9 +:1013C00042E061EC81E00E94610C42E061EC82E06D +:1013D0000E94610C42E061EC83E00E94610C42E1FA +:1013E00061EC84E00C94610C8091F301833009F48A +:1013F00055C030F4813071F0823009F48EC0089508 +:101400008A3009F47AC08B3009F460C0893009F061 +:101410009CC020C08091F201813A09F096C0809171 +:10142000E800877F8093E8008091F6019091F701B2 +:10143000892B21F460E18EE591E003C060E080E05B +:1014400090E070E00E949D0B8091E8008B77809384 +:10145000E80008958091F201813209F076C0809110 +:10146000F6019091F701009719F0039709F06DC00C +:101470008091E800877F8093E8008091E80082FDFA +:1014800005C08091F1018111F8CF5FC08091F1001A +:1014900080936E018091E8008B7753C08091F201B8 +:1014A000813A09F052C08091F6019091F701892BA1 +:1014B00009F04BC08091E800877F8093E80080911D +:1014C000E80080FFFCCF80910C0136C08091F201D2 +:1014D0008132D9F58091F6019091F701892BA9F518 +:1014E0008091E800877F8093E8000E94960C8091AD +:1014F000F40180930C010C9483148091F2018132E9 +:1015000021F58091E800877F8093E8000E94960C87 +:101510008091F50180936F0108958091F201813AE5 +:10152000A1F48091E800877F8093E8008091E80033 +:1015300080FFFCCF80916F018093F1008091E800E3 +:101540008E778093E8000C94960C089584B7877F7B +:1015500084BF88E10FB6F894809360001092600019 +:101560000FBE90E080E80FB6F894809361009093EE +:1015700061000FBE0E9439100E94E70C0E94440DCA +:101580008091E20084608093E20078940E94CA0F08 +:101590000E943B1082E091E00E94E50F0E94192218 +:1015A0008091F101853069F40E94531B8091EF0115 +:1015B0008823B1F30E947E1B882391F30E943C0B89 +:1015C000EFCF0E944110ECCF292F33272330310574 +:1015D000C9F064F42130310581F02230310509F081 +:1015E00043C08DE690E02AE333E042C0213231056A +:1015F000F1F02232310541F137C082E190E027EA73 +:1016000033E036C099278130910541F08230910551 +:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4 +:1016200002C0E6E0F3E0849190E09F0121C06430C5 +:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5 +:10164000318189E090E014C0643070F470E0FB01F7 +:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47 +:10166000FE4F808190E004C080E090E020E030E018 +:10167000FA0131832083089580E189BD82E189BD2B +:1016800009B400FEFDCF8091D8008F7D8093D800F3 +:101690008091E00082608093E0008091E00081FD15 +:1016A000FCCF0895CF92DF92EF92FF920F931F939A +:1016B000CF93DF93EC018B016A010E94B50C81117D +:1016C00033C0C114D10439F0F60180819181081B27 +:1016D000190BC80FD91FE12CF12C0115110519F1B7 +:1016E0008091E80085FD16C08091E8008E77809398 +:1016F000E800C114D10449F0F60180819181E80E1F +:10170000F91EF182E08285E00FC00E94B50C8823AB +:1017100021F30AC089918093F10001501109FFEF74 +:10172000EF1AFF0ADACF80E0DF91CF911F910F917E +:10173000FF90EF90DF90CF9008952091F8013091C5 +:10174000F9012617370748F06115710539F4209122 +:10175000E8002E772093E80001C0B90140E0611550 +:101760007105A9F12091F101222309F443C025302C +:1017700009F442C02091E80023FD40C02091E80018 +:1017800022FD32C02091E80020FFE9CF4091F30014 +:101790002091F20030E0342BFC01CF01611571057E +:1017A00059F02830310540F481918093F100615067 +:1017B00071092F5F3F4FF1CF41E02830310509F02B +:1017C00040E02091E8002E772093E800C8CF411137 +:1017D000C9CF0AC08091F101882361F0853061F0A2 +:1017E0008091E80083FD0AC08091E80082FFF2CF7B +:1017F00080E0089582E0089583E0089581E00895EF +:101800002091F8013091F9012617370748F061154A +:10181000710539F42091E8002E772093E80001C08B +:10182000B901FC0120E06115710591F18091F10190 +:10183000882309F440C0853009F43FC08091E80056 +:1018400083FD3DC08091E80082FD2FC08091E800BB +:1018500080FFE9CF2091F3008091F20090E0922B7D +:101860006115710559F08830910540F42491209359 +:10187000F1003196615071090196F2CF21E008978D +:1018800009F020E08091E8008E778093E800CBCFCC +:101890002111CCCF0AC08091F101882361F08530FD +:1018A00061F08091E80083FD0AC08091E80082FF2A +:1018B000F2CF80E0089582E0089583E0089581E00A +:1018C0000895982F973058F59093E900981739F0BC +:1018D0007091EC002091ED005091F00003C0242F96 +:1018E000762F50E021FF19C03091EB003E7F3093FE +:1018F000EB003091ED003D7F3093ED003091EB0037 +:1019000031603093EB007093EC002093ED00509326 +:10191000F0002091EE0027FF07C09F5FD3CF8F70AC +:101920008093E90081E0089580E008958091F201BC +:1019300087FF11C08091E80082FD05C08091F10110 +:101940008111F8CF11C08091E8008B770BC0809196 +:10195000F101882349F08091E80080FFF8CF809161 +:10196000E8008E778093E80008952091E40030919C +:10197000E50095E64091EC00842F817040FF22C085 +:101980008091E80080FD1CC08091F101882391F0D6 +:10199000853091F08091EB0085FD10C04091E4000E +:1019A0005091E5004217530729F39A01915011F71E +:1019B00084E0089582E0089583E0089581E0089529 +:1019C00080E008954091E80042FFDECF08950E9434 +:1019D000550D0E945D0DE0EEF0E080818160808316 +:1019E000E8EDF0E080818F77808319BCA7EDB0E04F +:1019F0008C918E7F8C9380818F7E80831092F001FA +:101A000008950F931F93CF93DF930E94550D0E946B +:101A10005D0DC8EDD0E088818F77888388818068EC +:101A2000888388818F7D888319BC1092F101109280 +:101A3000ED011092EF011092EE0100EE10E0F801BE +:101A400080818B7F808388818160888342E060E031 +:101A500080E00E94610CE1EEF0E080818E7F808367 +:101A6000E2EEF0E080818160808380818860808305 +:101A7000F80180818E7F8083888180618883DF91F7 +:101A8000CF911F910F910895E8EDF0E080818F7E56 +:101A90008083E7EDF0E080818160808384E082BF15 +:101AA00081E08093F0010C94010DE8EDF0E080817D +:101AB0008E7F80831092E20008951092DA001092D7 +:101AC000E10008951F920F920FB60F9211242F93E9 +:101AD0003F934F935F936F937F938F939F93AF93B6 +:101AE000BF93EF93FF938091E10082FF0BC0809141 +:101AF000E20082FF07C08091E1008B7F8093E100CC +:101B00000E94C90F8091DA0080FF1FC08091D80029 +:101B100080FF1BC08091DA008E7F8093DA00809175 +:101B2000D90080FF0DC080E189BD82E189BD09B483 +:101B300000FEFDCF81E08093F1010E94C40905C041 +:101B400019BC1092F1010E94D2098091E10080FF3E +:101B500019C08091E20080FF15C08091E2008E7F65 +:101B60008093E2008091E20080618093E2008091A6 +:101B7000D80080628093D80019BC85E08093F10181 +:101B80000E94D6098091E10084FF30C08091E2007C +:101B900084FF2CC080E189BD82E189BD09B400FECB +:101BA000FDCF8091D8008F7D8093D8008091E10097 +:101BB0008F7E8093E1008091E2008F7E8093E2002F +:101BC0008091E20081608093E2008091ED018823A2 +:101BD00011F084E007C08091E30087FD02C081E03E +:101BE00001C083E08093F1010E94D8098091E10057 +:101BF00083FF29C08091E20083FF25C08091E1002E +:101C0000877F8093E10082E08093F1011092ED01E3 +:101C10008091E1008E7F8093E1008091E2008E7FD1 +:101C20008093E2008091E20080618093E20042E0D4 +:101C300060E080E00E94610C8091F00088608093F9 +:101C4000F0000E94D509FF91EF91BF91AF919F9154 +:101C50008F917F916F915F914F913F912F910F9055 +:101C60000FBE0F901F9018951F920F920FB60F92F4 +:101C700011242F933F934F935F936F937F938F9391 +:101C80009F93AF93BF93CF93DF93EF93FF93C09155 +:101C9000E900CF708091EC00D82FD17080FDD0E8A2 +:101CA0001092E9008091F000877F8093F000789493 +:101CB0000E94780E1092E9008091F0008860809375 +:101CC000F000CD2BCF70C093E900FF91EF91DF9131 +:101CD000CF91BF91AF919F918F917F916F915F91C4 +:101CE0004F913F912F910F900FBE0F901F9018951D +:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3 +:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115 +:101D1000F10091938E13FBCF0E94F4098091E800AB +:101D200083FF1FC18091F2019091F301492F50E090 +:101D30004A30510508F015C1FA01EA5AFF4F0C94D8 +:101D4000B323803881F0823809F00BC18091F6010D +:101D50008F708093E9008091EB0085FB882780F9E4 +:101D60001092E90006C08091EE019091EF0191116F +:101D700082609091E800977F9093E8008093F10053 +:101D80001092F100C8C0282F2D7F09F0EAC08823E7 +:101D900019F0823061F0E5C08091F401813009F0E2 +:101DA000E0C0933009F080E08093EF012BC0809178 +:101DB000F401811127C08091F6018F7009F4D1C020 +:101DC0008093E9002091EB0020FF1CC0933021F4A8 +:101DD0008091EB00806214C09091EB009061909331 +:101DE000EB0021E030E0A90102C0440F551F8A95A5 +:101DF000E2F74093EA001092EA008091EB008860DD +:101E00008093EB001092E9008091E800877F86C004 +:101E10008111A7C01091F4011F778091E3008078B1 +:101E2000812B8093E3008091E800877F8093E80016 +:101E30000E94960C8091E80080FFFCCF8091E30027 +:101E400080688093E300111102C082E001C083E04A +:101E50008093F10186C08058823008F082C0809162 +:101E6000F4019091F5018C3D53E0950779F583E0FD +:101E70008A838AE289834FB7F894DE01139620E0C3 +:101E80003EE051E2E32FF0E050935700E49120FF51 +:101E900003C0E295EF703F5FEF708E2F90E0EA3065 +:101EA00010F0C79601C0C0968D939D932F5F24318B +:101EB00049F74FBF8091E800877F8093E8006AE28E +:101EC00070E0CE0101960E949D0B14C0AE014F5FE1 +:101ED0005F4F6091F6010E94E40ABC01009709F48B +:101EE00040C09091E800977F9093E80089819A81A3 +:101EF0000E94000C8091E8008B778093E80031C04D +:101F0000803879F58091E800877F8093E8008091A0 +:101F1000ED018093F1008091E8008E778093E800D6 +:101F20000E94960C1EC081111CC09091F401923049 +:101F3000C0F48091E800877F8093E8009093ED01E2 +:101F40000E94960C8091ED01811106C08091E30002 +:101F500087FD02C081E001C084E08093F1010E940E +:101F6000E0098091E80083FF0AC08091E800877F44 +:101F70008093E8008091EB0080628093EB00AA964A +:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A +:101F900008950895CF938091F1018823A1F0C09115 +:101FA000E900CF709091EC00892F817090FD80E85E +:101FB000C82B1092E9008091E80083FD0E94780E02 +:101FC000CF70C093E900CF910895909375018093ED +:101FD00074010895E0917401F0917501309721F03A +:101FE0000190F081E02D099480E00895E091740162 +:101FF000F0917501309721F00280F381E02D099472 +:102000000895E0917401F0917501309721F00480FA +:10201000F581E02D099408952091720130917301AA +:102020008217930771F09093730180937201E0918E +:102030007401F0917501309721F00680F781E02D51 +:1020400009940895209170013091710182179307CE +:1020500071F09093710180937001E0917401F0919F +:102060007501309721F00084F185E02D09940895E1 +:1020700008950C9438100E94921B0E9433030C9414 +:10208000541C9F92AF92BF92CF92DF92EF92FF9239 +:102090000F931F93CF93DF9300D000D000D0CDB724 +:1020A000DEB70E944B030DE010E0AA24A394B12CEC +:1020B000902E802F0E943904980129583E4F6901C3 +:1020C000F901F080F826A1F40150110988F78FEF8B +:1020D00089838A831B820E949B1B8160782F9D834A +:1020E0008C8349815A816B818D810E94D8102FC0C9 +:1020F0009091DA0191FF04C08E830E943F048E818B +:1021000025E030E0A501022E01C0440F0A94EAF751 +:10211000E42E4F21C1F029839A828E2191E009F4A7 +:1021200090E09B830E949B1B8160782F9D838C8312 +:1021300049815A816B818D810E94D810F60180817E +:10214000E826E08204C021503109E0F6BDCF0E94AC +:102150003B1F109176010E94EA0F1817B9F00E94F8 +:10216000EA0F8093760126960FB6F894DEBF0FBE75 +:10217000CDBFDF91CF911F910F91FF90EF90DF9036 +:10218000CF90BF90AF909F900C94E30826960FB627 +:10219000F894DEBF0FBECDBFDF91CF911F910F919D +:1021A000FF90EF90DF90CF90BF90AF909F900895F9 +:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82 +:1021C0000FBECDBF4F83588769877A878B87DE0123 +:1021D000119686E0FD0111928A95E9F785E0FE01EE +:1021E000379601900D928A95E1F749815A816B816A +:1021F0007C818D819E810E9421172B960FB6F894C9 +:10220000DEBF0FBECDBFDF91CF910895CF9388235E +:1022100009F4C2C0C82F823859F40E94EA0F81FD28 +:10222000BBC089E30E94FB190E94C81A89E30CC055 +:10223000833879F40E94EA0F80FDAEC083E50E94E6 +:10224000FB190E94C81A83E50E943D1ACF910C9495 +:10225000C81A843859F40E94EA0F82FD9DC087E4B1 +:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6 +:10227000813A48F48C2F0E947E2181118DC08C2FD1 +:102280000E94FB19E3CF80E28C0F883048F4C770BE +:1022900081E001C0880FCA95EAF70E94811AD6CF63 +:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB +:1022B00083E890E005C081E890E002C082E890E009 +:1022C000CF910C940C1088E58C0F833108F064C01A +:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118 +:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186 +:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106 +:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173 +:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB +:1023200038C082EE90E035C089EE90E032C08AEE8F +:1023300090E02FC085EB90E02CC086EB90E029C0A8 +:1023400087EB90E026C08CEC90E023C08DEC90E011 +:1023500020C083E891E01DC08AE891E01AC082E9BC +:1023600091E017C084E991E014C081E292E011C0CD +:1023700083E292E00EC084E292E00BC085E292E03C +:1023800008C086E292E005C087E292E002C08AE2DD +:1023900092E0CF910C942210CF910895882309F4F4 +:1023A0004BC0823859F40E94EA0F81FF45C089E38F +:1023B0000E94FB190E94C81A89E30CC0833871F48B +:1023C0000E94EA0F80FF38C083E50E94FB190E943B +:1023D000C81A83E50E943D1A0C94C81A843859F42F +:1023E0000E94EA0F82FF28C087E40E94FB190E9426 +:1023F000C81A87E4EFCF9CEF980F913A58F390E218 +:10240000980F983050F4877091E001C0990F8A9529 +:10241000EAF7892F0E94871ADFCF9BE5980F933048 +:1024200020F480E090E00C940C10885A833120F462 +:1024300080E090E00C9422100895882321F00E94FF +:10244000811A0C94C81A0895882321F00E94871AD3 +:102450000C94C81A08957F928F929F92AF92BF9268 +:10246000CF92DF92EF92FF920F931F93CF93DF9360 +:102470001F92CDB7DEB77C01C62E772EFC010581F9 +:1024800002950F70128111110E949E1A0E94F41978 +:10249000882379F0112369F080E28C0D883048F0B0 +:1024A00082E00E94DD190E94F41991E0D82ED9260D +:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C +:1024C0000C94B323872D807F072D0F70882311F084 +:1024D0000295007F112389F0002309F490C180E266 +:1024E0008C0D883020F4802F0E94811A03C0802F29 +:1024F0000E94911A0E94C81A82C18C2D0E94CE118E +:10250000002309F495C180E28C0D883020F4802FDF +:102510000E94871A03C0802F0E94971A0E94C81A2F +:1025200087C1972D907F872D8F70903211F0829503 +:10253000807FCC2021F0F1E0CF16B1F01EC0112336 +:1025400049F0002309F414C1013009F011C10E94BF +:10255000B11A6EC1002319F0013009F469C18983F1 +:102560000E94B41A89810AC1112321F0023008F0B7 +:102570005FC1FEC001115CC101C1112321F0002324 +:1025800009F4F6C03CC1002309F4F8C03EC1872D10 +:1025900086958695837090E0009719F0019761F019 +:1025A00047C1112321F08C2D972D937002C080E03C +:1025B00090E00E940C103CC1112321F08C2D972D2E +:1025C000937002C080E090E00E94221031C18C2DF7 +:1025D000112319F00E94431E02C00E94AB1E0E94EC +:1025E000301F26C1872D837009F052C0111120C100 +:1025F0008C2D829586958770880F880F9C2D9F70F3 +:10260000892E912CA12CB12C082E04C0880C991C69 +:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041 +:1026200020E030E0B901A80104C0440F551F661F27 +:10263000771F8A95D2F7CB01BA0160957095809586 +:10264000909503C060E070E0CB01272D269526957C +:10265000237030E02230310569F02330310589F0F4 +:10266000682979298A299B292130310571F00E9436 +:102670006918DEC0682979298A299B290E94851852 +:10268000D7C00E946918C501B4010E944D18D0C07E +:10269000112319F0872D817001C08695882309F4D4 +:1026A000C7C08C2D829586958770880F880F9C2DCA +:1026B0009F70892E912CA12CB12C082E04C0880C5F +:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC +:1026D00010E020E030E0B901A80104C0440F551F0C +:1026E000661F771F8A95D2F7CB01BA016095709566 +:1026F0008095909503C060E070E0CB01272D269572 +:1027000026952370422F50E04230510569F0433046 +:10271000510589F0682979298A299B294130510579 +:1027200071F00E94431984C0682979298A299B295C +:102730000E945F197DC00E944319C501B4010E9427 +:10274000271976C08C2D90E0FC01E05EF109E5319F +:10275000F10508F050C0E059FF4F0C94B3230C2D45 +:102760000F70872D8F71112331F00E94C018802FB8 +:102770000E941D125DC00E94E118802F0E94241249 +:1027800057C0112339F0011153C0872D8F710E945A +:1027900006194EC0023008F04BC0F7CF112339F0B4 +:1027A000872D8F710E94C01843C01123C9F3872D54 +:1027B0008F710E94E1183CC0112329F0872D8F7181 +:1027C0000E94AB1835C00E94A11832C0112351F0ED +:1027D000172D1F71812F0E94C01863E0812F0E9466 +:1027E000D41926C081E00E94DD19023008F182E090 +:1027F0000E94DD191DC0112331F0002389F28C2DB8 +:102800000E94061115C0002391F28C2D0E94CE115A +:102810000FC0472D4F706C2DC7010E9415050E94F7 +:10282000C51706C0472D4F706C2DC7010E94F205D9 +:10283000DD20F9F00E94D01980FD1BC0F701128243 +:102840000E94CA190E94C018C7010E9448140E9421 +:10285000CA190F90DF91CF911F910F91FF90EF90C8 +:10286000DF90CF90BF90AF909F908F907F900C940F +:10287000E1180F90DF91CF911F910F91FF90EF9092 +:10288000DF90CF90BF90AF909F908F907F900895F2 +:102890000F931F93CF93DF93EC01888199812B8154 +:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B +:1028B0000E944A05882371F0688179818A810E948B +:1028C000C6198C010E947B190E944218B801CE01E2 +:1028D0000E942B12DF91CF911F910F9108950E94BA +:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471 +:1028F000E11F0E94301F80E090E00E940C1080E0F9 +:1029000090E00C9422100E948E1A0C946F140E9476 +:10291000BB19292F22952F7030E02C3031054CF453 +:102920002A3031056CF42250310922303105A8F4E7 +:1029300007C02C30310569F02F30310551F00DC042 +:10294000803F69F018F4803E40F409C0843F29F4C8 +:1029500006C093FB882780F9089580E0089581E000 +:102960000895CF93DF9300D000D01F92CDB7DEB78C +:102970000F900F900F900F900F90DF91CF910895CF +:10298000CF93DF9300D000D000D0CDB7DEB726962E +:102990000FB6F894DEBF0FBECDBFDF91CF91089583 +:1029A0001F93CF93DF93C091850116E0809186013C +:1029B000C81799F0D0E01C9FF0011D9FF00D112465 +:1029C000E957FE4F408151816281738184819581F5 +:1029D0000E94C0142196C770E9CFDF91CF911F915B +:1029E00008954091B7015091B8016091B90170917B +:1029F000BA018091BB019091BC010C94C0148091EC +:102A0000BC0182958F7009F054C08091B901882370 +:102A100009F44FC080918501A09186016091B701B2 +:102A20007091B8014091BA015091BB01B6E08A178C +:102A300009F43FC090E041155105C1F17F3F11F409 +:102A40006F3FA1F1B89FF001B99FF00D1124E95734 +:102A5000FE4F218172132AC02081621327C0228178 +:102A6000211124C0238134812417350710F421500B +:102A70003109241B350B283C3105C0F42091BC01E1 +:102A80002F7020612093BC0126E0289FF001299F30 +:102A9000F00D1124E457FE4F80818F708061808398 +:102AA00087EB91E00E9448140C94D0140196877033 +:102AB000BECF0895CF92DF92EF92FF920F931F93B4 +:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32 +:102AD0000FBECDBF8C0185E0F801DE011D9601908F +:102AE0000D928A95E1F7D8014C9111965C9111975E +:102AF00012966C9112971396CD90DC9014973091AA +:102B0000B7017091B8018091BA019091BB01009713 +:102B100009F46BC17F3F19F43F3F09F466C1E090AF +:102B2000B901EE2009F4C0C02091BC01C816D90635 +:102B300028F0F601E81BF90BCF0104C080959095B1 +:102B40008C0D9D1DFF24F394883C910578F0F12CA9 +:102B5000207F09F0C6C07C2DD98AC88A89890E9445 +:102B6000B11487EB91E00E944814B1C0822F807F9E +:102B700009F046C0751314C0341312C0611110C09F +:102B80002F7020612093BC010E94F11487EB91E02B +:102B90000E9448148091BC01D80115968C932EC0D8 +:102BA000CD2819F15F3F11F44F3FF9F0F62E611176 +:102BB0001CC0809185012091860136E0821709F4BE +:102BC0005AC090E0389FF001399FF00D1124E95769 +:102BD000FE4F7181571306C07081471303C0728185 +:102BE000711103C001968770E9CFF62E662309F4B0 +:102BF00018C18091BC0181608093BC01F12C11C18E +:102C0000751308C0341306C0611104C08091BC0163 +:102C1000D801C3C04D875E878D859E856A8B0E94D3 +:102C200087146A898823E1F16623D1F12091BC01E0 +:102C3000822F82958F7090E0029774F08091B70197 +:102C40009091B80198878F831986DB86CA862C8776 +:102C5000CE0107960E94481486E0F801A7EBB1E088 +:102C600001900D928A95E1F70E94FF140E94F114E1 +:102C7000FF24F394D6C04D875E878D859E850E9484 +:102C8000BB19292F22952F7030E0223031050CF02E +:102C9000BCC09F7009F0B6C0805E883008F4C1C027 +:102CA000C8010E944814E4CFC816D90608F453C0DE +:102CB000F601E81BF90BCF01883C910508F450C0E0 +:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E +:102CD000F1E086E0DF011D928A95E9F70E94F11488 +:102CE000A0C0751314C0341312C0611110C08091BC +:102CF000BC01F8018583C8010E94481486E0E7EB17 +:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C +:102D10005E878D859E856A8B0E9487146A898823C9 +:102D200009F4BECF662309F4BBCF2091BC01822FEA +:102D300082958F7090E002970CF48ECF8091B7014E +:102D40009091B8019A8389831B82DD82CC822E8385 +:102D5000CE0101967FCF809590958C0D9D1DACCFB7 +:102D6000F62E662309F49CCF75132EC034132CC0A5 +:102D70002091BC0120FD1FC0822F82958F70D9F059 +:102D8000D80115962C9315978F3049F08F5F982FA7 +:102D90009295907F822F8F70892B15968C93C80106 +:102DA0000E94481486E0F801A7EBB1E001900D9273 +:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7 +:102DC0000D928A95E1F72DC04D875E878D859E8592 +:102DD0000E948714811140CF8091BC018160809353 +:102DE000BC01C8010E9448141CC0662309F458CFD6 +:102DF0004D875E878D859E850E948714882309F400 +:102E00004FCF2ACF811148CF0CC0243031050CF0B0 +:102E100047CF9F7009F440CFF8019581907F09F06A +:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D +:102E3000DF91CF911F910F91FF90EF90DF90CF9096 +:102E400008951F93CF93DF93CDB7DEB72C970FB6BE +:102E5000F894DEBF0FBECDBF4F83588769877A874E +:102E60008B879C87CE0107960E945A15882369F0AC +:102E70008F8198852A853B85232BF1F19F3F09F0AF +:102E800063C08F3F09F060C037C086E0FE0137960F +:102E9000DE01119601900D928A95E1F76F81788598 +:102EA000EA85FB85309741F17F3F11F46F3F21F1B7 +:102EB0002091860130E0C9010196877099274091E1 +:102EC000850150E08417950709F447C069837A8328 +:102ED000FD83EC8396E0929FD001939FB00D112467 +:102EE000A957BE4FFE01319601900D929A95E1F7D8 +:102EF000809386010E94D01416E080918501909104 +:102F000086018917C1F1189FC001112489579E4F6E +:102F10000E945A15882379F1E09185011E9FF001E6 +:102F20001124E957FE4F4081518162817381848170 +:102F300095810E94C0148091850190E00196877070 +:102F4000992780938501D9CF4F81588569857A85E6 +:102F50008B859C850E94C014CFCF0E948314109251 +:102F6000860110928501E7EBF1E086E0DF011D921A +:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45 +:102F8000CDBFDF91CF911F910895EF92FF920F93E4 +:102F90001F93CF93DF938C01009709F46CC0F12C41 +:102FA000EE24E394E8012196F8018491843740F4FB +:102FB000843008F051C0813081F0823019F15BC05B +:102FC000853709F444C0A8F19CE7980F903708F0C2 +:102FD00052C08F770E94CE1141C00E5F1F4FFE017D +:102FE000C49180E28C0F883048F4C7708E2D01C0E8 +:102FF000880FCA95EAF70E94A11A14C08C2F0E946C +:1030000006112DC00E5F1F4FFE01C49180E28C0F90 +:10301000883058F4C7708E2D01C0880FCA95EAF722 +:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3 +:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3 +:103040009FE00197F1F700C00000C150F6CF0E5F7E +:103050001F4FFE01F49003C00E9406118E018F2DB8 +:10306000882309F49FCFEFE9FFE03197F1F700C023 +:1030700000008150F5CFDF91CF911F910F91FF900C +:10308000EF90089508956093C1017093C2018093F9 +:10309000C3019093C4010C946F140F931F9300917C +:1030A000C1011091C2012091C3013091C401DC0122 +:1030B000CB01802B912BA22BB32B8093C10190933A +:1030C000C201A093C301B093C4011F910F910C944E +:1030D0006F140F931F930091C1011091C2012091B1 +:1030E000C3013091C401DC01CB0180239123A223D1 +:1030F000B3238093C1019093C201A093C301B09305 +:10310000C4011F910F910C946F140F931F930091A2 +:10311000C1011091C2012091C3013091C401DC01B1 +:10312000CB0180279127A227B3278093C1019093D9 +:10313000C201A093C301B093C4011F910F910C94DD +:103140006F141092BD011092BE011092BF01109237 +:10315000C0010C946F1441E050E060E070E004C0E6 +:10316000440F551F661F771F8A95D2F74093BD0104 +:103170005093BE016093BF017093C0010C946F1413 +:1031800041E050E060E070E004C0440F551F661F4E +:10319000771F8A95D2F78091BD019091BE01A091D1 +:1031A000BF01B091C001482B592B6A2B7B2B409358 +:1031B000BD015093BE016093BF017093C0010C9498 +:1031C0006F1441E050E060E070E004C0440F551F10 +:1031D000661F771F8A95D2F7409550956095709538 +:1031E0008091BD019091BE01A091BF01B091C0013D +:1031F000482359236A237B234093BD015093BE018A +:103200006093BF017093C0010C946F1441E050E0D3 +:1032100060E070E004C0440F551F661F771F8A9559 +:10322000D2F78091BD019091BE01A091BF01B091F4 +:10323000C001482759276A277B274093BD01509337 +:10324000BE016093BF017093C0010C946F140F9383 +:103250001F930091BD011091BE012091BF013091DB +:10326000C001DC01CB01802B912BA22BB32B8093CF +:10327000BD019093BE01A093BF01B093C0011F9107 +:103280000F910C946F140F931F930091BD01109137 +:10329000BE012091BF013091C001DC01CB01802330 +:1032A0009123A223B3238093BD019093BE01A093E9 +:1032B000BF01B093C0011F910F910C946F140F9335 +:1032C0001F930091BD011091BE012091BF0130916B +:1032D000C001DC01CB0180279127A227B32780936F +:1032E000BD019093BE01A093BF01B093C0011F9197 +:1032F0000F910C946F140895CF92DF92EF92FF928A +:103300000F931F93CF93DF938C01C090C101D09096 +:10331000C201E090C301F090C4018091BD01909181 +:10332000BE01A091BF01B091C001C82AD92AEA2AE2 +:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520 +:10334000A795979587950A94D2F780FF06C0B80194 +:103350008C2F0E944808019721F4219760F780E0A4 +:1033600001C08C2FDF91CF911F910F91FF90EF90B3 +:10337000DF90CF900895CF93DF93EC010E947C19EA +:10338000BE010E944808DF91CF910895CB010E94B1 +:10339000BB1908958091C5018595859585950895FA +:1033A0008091C5018770089598E0899F900111244C +:1033B000262B2093C5010C94C0182091C50180953F +:1033C00082238093C501982F977069F430E0482FCD +:1033D000552747FD50952417350729F08595859584 +:1033E00085950C94E11808959091C501977081E03E +:1033F00009F480E0089590910C01992321F09091B7 +:103400000D01911109C020910E0130910F01F901B8 +:1034100032969FEF40E01FC0982F9695969596950F +:103420009F3050F5E0910E01F0910F01E90FF11D71 +:10343000877021E030E0A90102C0440F551F8A9532 +:10344000E2F7CA019181892B818308959F3F39F06A +:103450004F5F4E3041F051915813F8CF0DC05111CC +:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08 +:1034700097FDFA9582830895089590910C01992300 +:1034800021F090910D01911109C020910E01309110 +:103490000F01F9013296205F3F4F1FC0982F96957C +:1034A000969596959F30F0F4E0910E01F0910F0102 +:1034B000E90FF11D877021E030E0A90102C0440F3F +:1034C000551F8A95E2F7CA018095918189238183EE +:1034D00008953196E217F30729F090819813F9CFF8 +:1034E0001082F7CF089581E090E0E0910E01F09115 +:1034F0000F01E80FF91F1082019680319105A9F79D +:1035000008959091D901892B8093D90108958095D0 +:103510009091D90189238093D90108951092D901FE +:1035200008959091D801892B8093D80108958095B2 +:103530009091D80189238093D80108951092D801E1 +:1035400008959091D701892B8093D7010895809594 +:103550009091D70189238093D70108951092D701C4 +:1035600008958093C60108951092C6010895809130 +:103570000E0190910F01FC0131969C01205F3F4F9D +:1035800080E0919191118F5FE217F307D1F70895D1 +:10359000E0910E01F0910F018091D9018083E091BB +:1035A0000E01F0910F0190818091D801892B8083C9 +:1035B000E0910E01F0910F0190818091D701892B4C +:1035C00080838091C601882361F0E0910E01F09123 +:1035D0000F019081892B80830E94B71A811110926C +:1035E000C60180910E0190910F010C94F60F20E01E +:1035F000009739F0AC0141505109842395232F5F86 +:10360000F7CF822F0895CF92DF92EF92FF926C0155 +:10361000EE24FF24C114D104E104F10421F0C70118 +:10362000B60120E101C020E0C72ED82EE92EFF24EC +:10363000C114D104E104F10419F0285FC701B601F7 +:103640006B017C0154E0F694E794D794C7945A95A3 +:10365000D1F7C114D104E104F10419F02C5FC701C2 +:10366000B6016B017C0142E0F694E794D794C794CD +:103670004A95D1F7C114D104E104F10419F02E5F89 +:10368000C701B601DC01CB01B695A7959795879543 +:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5 +:1036A000DF90CF9008958091F101843021F1109244 +:1036B000DB0120E488E190E00FB6F894A8958093B0 +:1036C00060000FBE2093600080E00E94E30883B793 +:1036D000817F846083BF83B7816083BF789488953E +:1036E00083B78E7F83BF88E10FB6F8948093600024 +:1036F000109260000FBE0895089508950E947C1BEB +:103700000E944B030E947D1B0E94400491E08111A6 +:1037100001C090E0892F08950E9483140E94EA0F4F +:103720000C94E30882E084BD93E095BD9AEF97BDC9 +:1037300080936E0008952FB7F8948091DC019091EA +:10374000DD01A091DE01B091DF012FBF0895CF927E +:10375000DF92EF92FF920F931F932FB7F89440914F +:10376000DC015091DD016091DE017091DF012FBF1E +:103770006A017B01EE24FF248C0120E030E0C016BA +:10378000D106E206F30610F4415051099A01281BB4 +:10379000390BC9011F910F91FF90EF90DF90CF90EF +:1037A00008951F920F920FB60F9211248F939F933B +:1037B000AF93BF938091DC019091DD01A091DE0178 +:1037C000B091DF010196A11DB11D8093DC019093A2 +:1037D000DD01A093DE01B093DF01BF91AF919F9116 +:1037E0008F910F900FBE0F901F9018950E94E70CBD +:1037F000F8942FEF87EA91E6215080409040E1F75E +:1038000000C0000087E090EBDC018093FB01909307 +:10381000FC01A093FD01B093FE019CE088E10FB68E +:10382000F894A895809360000FBE90936000FFCF3E +:10383000EF92FF920F931F93CF93DF93D82FCDE09A +:103840008C2F0E94390405E010E0E82EF12CC7010E +:10385000002E02C0959587950A94E2F780FF09C073 +:10386000602F7C2F80E00E94F305D81302C081E016 +:1038700006C00150110958F7C15010F780E0DF91E0 +:10388000CF911F910F91FF90EF900895CF93C82F84 +:103890008CE20E94181C882321F08C2FCF910C946D +:1038A000181C80E0CF910895CF930E949B1D811139 +:1038B00002C00E94811DC5E6C15049F00E944B0321 +:1038C0008FE39CE90197F1F700C00000F5CF89E292 +:1038D0000E94461C811113C18AE20E94461C81117C +:1038E0000E94811D85E00E94461C81110E94F61BEA +:1038F0000E94A61D8093DA0187E00E94461C88235F +:10390000A9F18BE10E94461C882351F08091DA01D5 +:1039100081FB222720F991E0922790FB81F90EC0CC +:103920008EE00E94461C882361F08091DA0182FBC0 +:10393000222720F991E0922790FB82F98093DA0107 +:1039400015C080E10E94461C9091DA01882341F065 +:1039500093FB222720F981E0822780FB93F904C0A2 +:10396000892F809580FB90F99093DA018091DA019C +:103970000E94AA1D0E94B81D8093FA0180EE0E9449 +:10398000461C882341F08091FA01982F909590FB76 +:1039900080F98093FA0189E30E94461C882359F03C +:1039A0008091FA0181FB222720F991E0922790FB78 +:1039B00081F98093FA0182EE0E94461C882359F017 +:1039C0008091FA0182FB222720F991E0922790FB57 +:1039D00082F98093FA0186EE0E94461C882359F0F2 +:1039E0008091FA0183FB222720F991E0922790FB36 +:1039F00083F98093FA0183EE0E94461C882359F0D4 +:103A00008091FA0184FB222720F991E0922790FB14 +:103A100084F98093FA0185E30E94461C882359F0BB +:103A20008091FA0185FB222720F991E0922790FBF3 +:103A300085F98093FA0181E30E94461C882359F09E +:103A40008091FA0186FB222720F991E0922790FBD2 +:103A500086F98093FA0181E10E94461C882359F07F +:103A60008091FA0187FB222720F991E0922790FBB1 +:103A700087F98093FA018091FA010E94BC1D809120 +:103A8000FA0187FB882780F980930D0187E20E9465 +:103A9000461CC82F8EE10E94461C8111C2608FE136 +:103AA0000E94461C8111C46080E20E94461C811164 +:103AB000C86081E20E94461C8111C06182E20E94BE +:103AC000461C8111C06283E20E94461C8111C064C1 +:103AD00084E20E94461C882311F0C06802C0CC23F7 +:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4 +:103AF000682F70E080E090E0CF910C944318CF9154 +:103B000008956DEE7EEF80E090E00E94ED2360E08E +:103B100082E090E00E94DB2360E083E090E00E947E +:103B2000DB2360E084E090E00E94DB2360E085E03E +:103B300090E00C94DB2380E090E00E94D52321E00C +:103B40008D3E9E4F09F020E0822F089582E090E0A4 +:103B50000C94CD23682F82E090E00C94DB2383E06B +:103B600090E00C94CD23682F83E090E00C94DB234D +:103B700084E090E00C94CD23682F84E090E00C94D6 +:103B8000DB238091E20180FF0BC06091130185E08F +:103B9000689FB001112475956795759567952BC041 +:103BA00081FF09C06091130185E0689FB001112475 +:103BB0007595679520C082FF07C06091130185E06D +:103BC000689FB001112417C09091E3019923D1F0AF +:103BD00060911201961788F72091130185E0289FC4 +:103BE00090011124929FA001939F500D112470E029 +:103BF000CA010E949F236038710540F46115710568 +:103C000039F002C065E070E0862F08958FE70895CF +:103C100081E008958091E20180FF08C06091110168 +:103C200070E0759567957595679521C081FF06C011 +:103C30006091110170E07595679519C082FF04C00D +:103C40006091110170E010C09091E3019923C1F0DF +:103C5000609110019617A0F780911101899FC00112 +:103C6000112470E00E949F236038710528F46115CB +:103C7000710521F0862F08958FE7089581E008955A +:103C800061E070E0F4CF803F21F40E94C11D819576 +:103C900004C0813F29F40E94C11D8093E60108956C +:103CA000823F21F40E94C11D819504C0833F29F405 +:103CB0000E94C11D8093E5010895893F19F40E9477 +:103CC0000A1E05C08A3F31F40E940A1E8195809326 +:103CD000E70108958B3F21F40E940A1E819504C0DC +:103CE0008C3F29F40E940A1E8093E8010895843FC6 +:103CF00021F48091E401816017C0853F21F4809117 +:103D0000E401826011C0863F21F48091E401846067 +:103D10000BC0873F21F48091E401886005C0883F93 +:103D200031F48091E40180618093E40108958D3F36 +:103D300021F48091E20181600BC08E3F21F48091DB +:103D4000E201826005C08F3F29F48091E201846026 +:103D50008093E2010895803F39F48091E60187FF66 +:103D60006CC01092E60169C0813F29F48091E601A0 +:103D70001816BCF362C09091E501823F29F497FFC9 +:103D80005CC01092E50159C0833F19F41916CCF3B9 +:103D900054C0893F41F48091E70118160CF04DC0E2 +:103DA0001092E7014AC08A3F29F48091E70187FF1A +:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6 +:103DC0001092E8013AC08C3F29F48091E80118165E +:103DD000BCF333C0843F21F48091E4018E7F17C08F +:103DE000853F21F48091E4018D7F11C0863F21F44D +:103DF0008091E4018B7F0BC0873F21F48091E40127 +:103E0000877F05C0883F31F48091E4018F7E8093E5 +:103E1000E40113C08D3F21F48091E2018E7F0BC03D +:103E20008E3F21F48091E2018D7F05C08F3F29F400 +:103E30008091E2018B7F8093E2018091E501811105 +:103E40000EC08091E60181110AC08091E7018111C5 +:103E500006C08091E801811102C01092E30108952B +:103E600084EE91E00E9401100E949B1B9093E1015F +:103E70008093E00108951F93CF93DF938091E00139 +:103E80009091E1010E94A71BAC019091E30199235D +:103E900021F02091140130E006C0209115018AE044 +:103EA000289F900111244217530708F486C080917F +:103EB000E501C091E601D091E7011091E80181117F +:103EC00007C0C11176C0D11174C0111172C075C084 +:103ED0009F3F19F09F5F9093E301181624F40E940E +:103EE000C11D8093E5018091E50187FF05C00E9417 +:103EF000C11D81958093E5011C1624F40E94C11D0B +:103F00008093E6018091E60187FF05C00E94C11DF4 +:103F100081958093E6016091E501662339F1C091B6 +:103F2000E601CC2319F1772767FD7095872F972F2E +:103F30000E94B02223E333E343E35FE30E941423B0 +:103F40000E947D226093E5016C2F772767FD7095B5 +:103F5000872F972F0E94B02223E333E343E35FE3ED +:103F60000E9414230E947D226093E6011D1624F412 +:103F70000E940A1E8093E7018091E70187FF05C038 +:103F80000E940A1E81958093E701111624F40E9475 +:103F90000A1E8093E8018091E80187FF05C00E9416 +:103FA0000A1E81958093E801DF91CF911F910C94B7 +:103FB000301F9F3F09F08ECF96CFDF91CF911F9199 +:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE +:103FD0001092E3011092E2010895833081F128F4F8 +:103FE000813059F08230D1F00895853009F449C00C +:103FF000B8F1863009F456C0089580911501262F36 +:1040000030E0280F311D2F3F310524F4680F6093F5 +:10401000150108958FEF8093150108958091140183 +:10402000262F30E0280F311D2F3F310524F4680F73 +:104030006093140108958FEF809314010895809187 +:104040001301262F30E0280F311D2F3F310524F4B6 +:10405000680F6093130108958FEF80931301089503 +:1040600080911201262F30E0280F311D2F3F31059E +:1040700024F4680F6093120108958FEF809312016A +:10408000089580911101262F30E0280F311D2F3F18 +:10409000310524F4680F6093110108958FEF809328 +:1040A0001101089580911001262F30E0280F311D55 +:1040B0002F3F310524F4680F6093100108958FEFAE +:1040C000809310010895833011F128F4813049F074 +:1040D000823091F00895853081F120F18630C1F170 +:1040E000089580911501681720F4861B80931501AF +:1040F000089510921501089580911401681720F415 +:10410000861B8093140108951092140108958091E4 +:104110001301681720F4861B8093130108951092F1 +:104120001301089580911201681720F4861B809373 +:1041300012010895109212010895809111016817DB +:1041400020F4861B809311010895109211010895A7 +:1041500080911001681720F4861B80931001089548 +:104160001092100108950F931F938D3109F46BC0C5 +:1041700008F03FC08E3009F47FC0C0F4873009F4E6 +:1041800069C068F4863009F0B1C08091DA01817F9E +:104190008E7F8093DA0181E08093EA01A8C08830A5 +:1041A00009F4A2C08B3009F49FC0A0C0863109F485 +:1041B0009BC078F4803109F472C0813109F096C057 +:1041C0000E94831490910D0181E0892780930D0155 +:1041D0008BC0893109F488C08B3109F087C0809188 +:1041E000DA0181FB222720F991E0922790FB81F9E7 +:1041F0004CC0853309F470C048F4873209F46CC0B0 +:1042000008F459C0893209F467C070C0833438F4A7 +:104210008A3308F04EC0883309F466C067C083341F +:1042200009F45AC0883409F061C00E9483140FEF6A +:1042300013ED20E3015010402040E1F700C00000E2 +:104240000E94F61B51C00E9437220E94EA0F0E9472 +:10425000E3084AC09091DA01892F8095817080FB34 +:1042600090F929F0966098609093DA0140C0997FA8 +:10427000977F9093DA0138C08091DA0182FB222780 +:1042800020F991E0922790FB82F98093DA0199233B +:1042900059F18091DA0181608093DA0125C0809123 +:1042A000DA0183FB222720F991E0922790FB83F922 +:1042B000ECCF895301C08D5141E050E060E070E0E7 +:1042C0008A019B0104C0000F111F221F331F8A9512 +:1042D000D2F7C901B80104C061E070E080E090E06D +:1042E0000E9443180E94831481E001C080E01F9166 +:1042F0000F91089580E0089580E00895CF93C82F2E +:104300008091EA01813079F018F08230E9F187C0BC +:10431000E0910E01F0910F018081813169F08232CC +:1043200009F07FC009C0E0910E01F0910F0180817A +:10433000813111F0823261F48C2F0E947A21811137 +:1043400004C08C2F0E94B3201DC081E090E01AC0F1 +:104350008C2F0E947C21811114C0C43179F048F463 +:10436000CB3079F0C03109F060C082E08093EA017F +:1043700008C0C93219F0C83321F057C01092EA01C1 +:1043800054C081E0817053C0C93289F118F5C4313D +:1043900071F1A8F4C73009F046C08AE08093150196 +:1043A00094E19093140193E0909313018093120190 +:1043B00088E08093110188E28093100134C0CE51CF +:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB +:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC +:1043E00013C0C13579F0C235F1F461E00DC08091A0 +:1043F000E901882319F01092E90115C081E080934A +:10440000EA0115C061E006C08091E9010E94ED1F3C +:104410000AC06AE08091E9010E94632004C0109202 +:10442000EA0180E004C081E002C080E0ABCFCF9120 +:104430000895E1E8F0E08081886080838081816078 +:1044400080838FB7F89493E09093890090ED9093D8 +:1044500088008FBF0895EFE6F0E08081826080835E +:104460000895EFE6F0E080818D7F80830895EFE688 +:10447000F0E0908182E08927808308951F920F9257 +:104480000FB60F9211242F933F934F935F936F9327 +:104490007F938F939F93AF93BF93EF93FF938091FD +:1044A000EB019091EC0101969093EC018093EB016C +:1044B000811103C082E00E94E308E091EC01E695DF +:1044C000E695F0E0EC54FB4FE4918091EB018E1304 +:1044D00003C080E00E94E308FF91EF91BF91AF918C +:1044E0009F918F917F916F915F914F913F912F910C +:1044F0000F900FBE0F901F90189504D06894B111C3 +:104500008DC0089570D088F09F5790F0B92F9927EB +:10451000B751A0F0D1F0660F771F881F991F1AF0CE +:10452000BA95C9F712C0B13081F077D0B1E00895E3 +:1045300074C0672F782F8827B85F39F0B93FCCF364 +:10454000869577956795B395D9F73EF490958095C4 +:10455000709561957F4F8F4F9F4F0895E89409C0E4 +:1045600097FB3EF490958095709561957F4F8F4FA6 +:104570009F4F9923A9F0F92F96E9BB279395F695BC +:10458000879577956795B795F111F8CFFAF4BB0F3A +:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E +:1045A000882311F096E911C0772321F09EE8872F28 +:1045B000762F05C0662371F096E8862F70E060E0E4 +:1045C0002AF09A95660F771F881FDAF7880F96955D +:1045D000879597F9089557FD9058440F551F59F046 +:1045E0005F3F71F04795880F97FB991F61F09F3FE0 +:1045F00079F087950895121613061406551FF2CF09 +:104600004695F1DF08C0161617061806991FF1CF58 +:1046100086957105610508940895E894BB2766277F +:104620007727CB0197F908950BD078C069D028F08F +:104630006ED018F0952309F05AC05FC01124EECF58 +:10464000CADFA0F3959FD1F3950F50E0551F629FED +:10465000F001729FBB27F00DB11D639FAA27F00DDB +:10466000B11DAA1F649F6627B00DA11D661F829F02 +:104670002227B00DA11D621F739FB00DA11D621FE7 +:10468000839FA00D611D221F749F3327A00D611D04 +:10469000231F849F600D211D822F762F6A2F1124E6 +:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39 +:1046B000BB1F661F771F881F91505040A9F79E3F70 +:1046C000510570F014C0AACF5F3FECF3983EDCF3C5 +:1046D000869577956795B795F795E7959F5FC1F7AD +:1046E000FE2B880F911D9695879597F9089597F958 +:1046F0009F6780E870E060E008959FEF80EC089588 +:1047000000240A94161617061806090608950024B0 +:104710000A9412161306140605060895092E03942A +:10472000000C11F4882352F0BB0F40F4BF2B11F49E +:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF +:10474000072E16F4009407D077FD09D00E94B923F4 +:1047500007FC05D03EF4909581959F4F0895709584 +:1047600061957F4F0895EE0FFF1F0590F491E02DA6 +:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8 +:10478000B70710F0A61BB70B881F991F5A95A9F7FA +:1047900080959095BC01CD010895F999FECF92BD09 +:1047A00081BDF89A992780B50895A8E1B0E042E06C +:1047B00050E00C94F523262FF999FECF92BD81BDD0 +:1047C000F89A019700B4021639F01FBA20BD0FB64F +:1047D000F894FA9AF99A0FBE08950196272F0E942D +:1047E000DC230C94DB23DC01CB01FC01F999FECF27 +:1047F00006C0F2BDE1BDF89A319600B40D92415069 +:0A4800005040B8F70895F894FFCF78 +:10480A000220E508730950091C09E8080101C701DB +:10481A0028080A03140A3F4D363975042804F2039E +:10482A00B9034C0365037E039703010203040506DB +:04483A000708090062 +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/kastyle/keymap.c b/keyboards/ergodox_ez/keymaps/kastyle/keymap.c new file mode 100644 index 000000000..3982e0a19 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/kastyle/keymap.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/keyboards/ergodox_ez/keymaps/kines-ish/compiled.hex b/keyboards/ergodox_ez/keymaps/kines-ish/compiled.hex new file mode 100644 index 000000000..54524b326 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/kines-ish/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947A020C94BE020C94BE020C94BE02B4 +:100010000C94BE020C94BE020C94BE020C94BE0260 +:100020000C94BE020C94BE020C94620D0C94340E1F +:100030000C94BE020C94BE020C94BE020C94BE0240 +:100040000C94BE020C943E220C94BE020C94BE0290 +:100050000C94BE020C94D11B0C94BE020C94BE02F4 +:100060000C94BE020C94BE020C94BE020C94BE0210 +:100070000C94BE020C94BE020C94BE020C94BE0200 +:100080000C94BE020C94BE020C94BE020C94BE02F0 +:100090000C94BE020C94BE020C94BE020C94BE02E0 +:1000A0000C94BE020C94BE020C94BE02A10EC30EB0 +:1000B000B10FC30EB10F080F2B0FB10F800F930FAD +:1000C0006212621291129112C712E71218141814D8 +:1000D000F2121814A213A2130914181418141214EB +:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300 +:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0 +:10010000C113CE13D513DC13E6130000F0A12E00AB +:100110002B003900E100290000001E00140004003B +:100120001D0035004D001F001A0016001B0049007D +:100130004C00200008000700060050002A002100A3 +:100140001500090019004F004A00220017000A009C +:1001500005000000E000500001540000007F000096 +:10016000E2004F000154000000770000E30023008C +:100170001C000B0011000000E400240018000D001A +:10018000100052004B0025000C000E0036005100FC +:100190002C00260012000F0037002F002800270037 +:1001A00013003300380030004E002D0031003400C1 +:1001B000E500C200000046004700480001000100C1 +:1001C00000003A001E0220022202010001003B0052 +:1001D0001F0221022302010001003C002F0226021F +:1001E0002F00010001003D00300227023000010015 +:1001F00001003E003102350035020000010001001F +:1002000001000000010000000100010001000000E9 +:100210000100000001003F005200510024020000D4 +:1002200001004000240021001E00010001004100E7 +:10023000250022001F003700010042002600230095 +:10024000200027000100430025022E0231002E006D +:100250000100440045000100010001000000010010 +:100260000100010001000100000001000100010087 +:1002700001000100010001000100F2000100010085 +:1002800001000100F000F1000100F4000100010094 +:100290000100F3000100F500010001000100010070 +:1002A0000100000001000100010000000100000049 +:1002B0000100010001000000010000000100010038 +:1002C0000100010001000000010001000100010027 +:1002D0000100A9000100010001000100AC00AA001A +:1002E000B600010001000100AB00A8000100010000 +:1002F0000100010001000100010001000100AE0049 +:1003000001000100000016034500720067006F0045 +:1003100044006F007800200045005A0000001603DA +:100320004500720067006F0044006F0078002000F5 +:1003300045005A0000000403090409026D0004018D +:1003400000A0FA09040000010301010009211101C4 +:100350000001223F000705810308000A090401008B +:100360000103010200092111010001224D000705CE +:10037000820308000A0904020001030000000921A9 +:10038000110100012236000705830308000A090451 +:1003900003000103000000092111010001223900BE +:1003A000070584031000011201100100000008ED90 +:1003B000FE071301000102000105010906A1010564 +:1003C0000719E029E7150025019508750181020547 +:1003D000081901290595057501910295017503918B +:1003E0000105071900297715002501957875018108 +:1003F00002C005010980A101850216010026B7008F +:100400001A01002AB700751095018100C0050C097A +:1004100001A1018503160100269C021A01002A9CF5 +:1004200002751095018100C005010902A1010901B1 +:10043000A10005091901290515002501950575017A +:10044000810295017503810105010930093115818A +:10045000257F95027508810609381581257F95014C +:1004600075088106050C0A38021581257F950175EE +:10047000088106C0C005010906A101050719E02988 +:10048000E715002501950875018102950175088120 +:100490000105081901290595057501910295017558 +:1004A0000391010507190029FF150025FF95067521 +:1004B000088100C0000000000000000000000001F2 +:1004C0000204060A0F17202C3A4A5D71879DB3C7B4 +:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF +:1004E0003A2C20170F0A0604020100000000000049 +:1004F0000000000011241FBECFEFDAE0DEBFCDBF49 +:1005000004B603FE24C08091FB019091FC01A091F0 +:10051000FD01B091FE018730904BA740B04BB9F47C +:100520001092FB011092FC011092FD011092FE014D +:1005300014BE84B7877F84BF88E10FB6F894809398 +:100540006000109260000FBEE0E0FFE3099511E04B +:10055000A0E0B1E0EAE0F8E402C005900D92A43317 +:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0 +:10057000B107E1F70E94A60A0C9403240C94000032 +:100580001092B9008AE08093B800089594EA90939D +:10059000BC009091BC0097FFFCCF9091B900987F70 +:1005A000983021F0903111F081E008958093BB00E4 +:1005B00084E88093BC008091BC0087FFFCCF8091D1 +:1005C000B900887F883111F0803471F780E0089598 +:1005D00084E98093BC008091BC0084FDFCCF089529 +:1005E0008093BB0084E88093BC008091BC0087FFAF +:1005F000FCCF9091B900987F81E0983209F480E0B7 +:10060000089584E88093BC008091BC0087FFFCCFF4 +:100610008091BB00089580910101811115C080E493 +:100620000E94C6028093010181110CC082E10E94E8 +:10063000F00280930101811105C08FEF0E94F0024A +:10064000809301010E94E80284B1807F84B985B162 +:10065000807F85B98AB1837F8AB98BB1837F8BB95B +:100660003E98469808950E94C604809301010E9416 +:100670000B0380B38C7080BB81B3836F81BBA5E318 +:10068000B1E0E3E4F1E08EE08E0F11921D928E1343 +:10069000FCCF0C94B004BF92CF92DF92EF92FF9206 +:1006A0000F931F93CF93DF9380910101882379F0FB +:1006B000809134018F5F80933401811108C00E94C2 +:1006C000C60480930101811102C00E94580405E311 +:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407 +:1006E000E394F12CC730D10500F58091010181110F +:1006F00064C080E40E94C60280930101811112C08F +:1007000082E10E94F0028093010181110BC0C701B8 +:100710000C2E01C0880F0A94EAF780950E94F0021F +:10072000809301010E94E80248C0CA30A1F028F479 +:10073000C83059F0C93061F005C0CC3089F070F094 +:10074000CD3089F0209A289810C0219A29980DC0A0 +:10075000229A2A980AC0239A2B9807C0529A01C05D +:10076000539A5B9802C03E9A469890EA9A95F1F7A0 +:100770009FB1799902C082E001C080E091709D250F +:10078000982B7C9902C084E001C080E0892B7D9980 +:1007900002C038E001C030E0832B7E9902C020E126 +:1007A00001C020E0822B9FB19095991F9927991F36 +:1007B0009295990F907E892B0FC080910101811134 +:1007C00049C080E40E94C60280930101882379F128 +:1007D000B12C0E94E8028B2DF8019081981719F036 +:1007E0008083C09200010E940B0321960F5F1F4F70 +:1007F000CE30D10509F076CF80910001882361F1D8 +:10080000815080930001882339F08FE99FE00197A0 +:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F +:10082000CF01825F91919D938E13FCCF15C083E120 +:100830000E94F002809301018111CACF81E40E94DD +:10084000C602809301018111C3CF0E940103B82E1B +:10085000B094BFCF80E0C0CF0E94560481E0DF910A +:10086000CF911F910F91FF90EF90DF90CF90BF90AD +:100870000895E82FF0E0ED5BFE4F80810895089524 +:100880000F931F93CF93DF93C3E4D1E010E00C2FBD +:10089000025F899190E00E94F71A180F0C13F9CFAC +:1008A000812FDF91CF911F910F9108950C94260510 +:1008B00056985E9825982D9826982E9827982F98C8 +:1008C0008FEF90E0909389008093880090938B0045 +:1008D00080938A0090938D0080938C00259A2D9AA6 +:1008E0002FEF80E792E0215080409040E1F700C078 +:1008F0000000269A2E9A2FEF80E792E02150804048 +:100900009040E1F700C00000279A2F9A2FEF80E770 +:1009100092E0215080409040E1F700C0000025980F +:100920002D982FEF80E792E0215080409040E1F732 +:1009300000C0000026982E982FEF80E792E021500B +:1009400080409040E1F700C0000027982F9856980B +:100950005E9825982D9826982E9827982F98089578 +:1009600089EA8093800089E08093810024982C9804 +:100970003F988AB18F748AB96E98479A8BB1806B11 +:100980008BB9769A0E9458040C94250580E28093D6 +:1009900001018091510181110EC00E94C00281E0CD +:1009A000809351012FEF83ED90E3215080409040E0 +:1009B000E1F700C0000080E40E94C60280930101BC +:1009C00081112EC00E94F00280930101811128C084 +:1009D0000E94F00280930101811122C08FE30E94E6 +:1009E000F0028093010181111BC00E94E80280E4A3 +:1009F0000E94C60280930101811112C08CE00E9406 +:100A0000F0028093010181110BC00E94F0028093DB +:100A10000101811105C08FE30E94F0028093010162 +:100A20000E94E80280910101089561110BC0FC0150 +:100A30008281882321F085EE0E94061103C085EE95 +:100A40000E94CE1180E090E0089508956091BD016C +:100A50007091BE018091BF019091C0010E94031B63 +:100A600056985E9825982D9826982E9827982F9816 +:100A7000813019F0823021F00895259A2D9A089539 +:100A8000269A2E9A089581E0089581E008950C94A5 +:100A9000450508950F931F93CF93DF938C01FC01BD +:100AA000C081D181CE010E947C19BE010E94F30554 +:100AB000EC01B8010E944705882309F48DC0F801B4 +:100AC0008281882309F44AC080915D0181111FC091 +:100AD000C431F0E5DF0709F051C00E94490581E00B +:100AE00080935D010E949B1B90935C0180935B014E +:100AF0001092540110925601109255011092580113 +:100B00001092570110925A011092590165C08091BC +:100B10005B0190915C010E94A71B883C910570F4D9 +:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB +:100B3000D183C0838F5F809354014EC0C43880E559 +:100B4000D80721F0C538D04501F13AC0F8018281BB +:100B5000882341F01092520182E01EC0C438E0E5C3 +:100B6000DE0759F580915201811106C086E20E948C +:100B7000061186E20E94CE1182E01CC0C438F0E566 +:100B8000DF0741F3C538D045D9F4F80182818823C5 +:100B900031F01092530180E20E941D121DC080911D +:100BA0005301811106C087E20E94061187E20E946C +:100BB000CE1180E20E9424120FC0C538D04529F31F +:100BC00081E08093520180935301C801DF91CF915E +:100BD0001F910F910C94430580E0DF91CF911F91FD +:100BE0000F910895089596E0799FF001112494E5FE +:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F +:100C0000E25FFE4F859194910895880F991FFC0132 +:100C1000E657F040859194910895880F991FFC0143 +:100C2000E65FFE4F8591949108950F931F93CF93A4 +:100C3000DF93EC01811520E3920750F5C11580E2A6 +:100C4000D80708F0C3C0CB3BD10590F4C83AD10512 +:100C500008F06AC0C53AD10508F05BC0C430D105C0 +:100C600008F0D0C1219709F0CAC101E010E00AC222 +:100C7000CF3FD10511F008F0C5C1C03FD10508F044 +:100C8000A2C0CE01805E9109089708F4BBC1B7C12C +:100C9000C13090E5D90709F4A2C020F5C0318FE436 +:100CA000D80770F4C11590E4D90708F094C0C115B5 +:100CB00021E3D20708F0A3C1DD278E01106CE2C149 +:100CC000C115D04509F09BC10E9483148FEF94E3B6 +:100CD0002CE0815090402040E1F700C000000E94CD +:100CE000F61BD0C1C11597E5D90758F4C03121E5ED +:100CF000D20708F01CC1C43180E5D80708F475C0DC +:100D00007EC1CE0190578115904108F078C1DF7007 +:100D100073C1C53AD10509F477C1C63AD10509F0C6 +:100D200076C102E810E4AEC1C83AD10509F472C137 +:100D3000C93AD10509F471C1CA3AD10509F470C1A3 +:100D4000CB3AD10509F46FC1CC3AD10509F46EC193 +:100D5000CD3AD10509F46DC1C03BD10509F46CC190 +:100D6000CE3AD10509F46BC1CF3AD10509F46AC175 +:100D7000C13BD10509F469C1C23BD10509F468C181 +:100D8000C33BD10509F467C1C43BD10509F466C171 +:100D9000C53BD10509F465C1C63BD10509F464C161 +:100DA000C73BD10509F463C1C83BD10509F462C151 +:100DB000C93BD10509F461C1CA3BD10509F460C141 +:100DC00000E014E45FC18E0110655CC1CE019F702C +:100DD0000E940D0658C1DF708E01106A53C18091C8 +:100DE000DA0181608093DA014DC10E949B1D81115F +:100DF00002C00E94811D0E94B81D90E09093FB01EB +:100E00008093FA01C23080E5D80721F48091FA017D +:100E1000816086C0C43090E5D90721F48091FA0141 +:100E200082607EC0C63020E5D20721F48091FA01AD +:100E3000846076C0C83080E5D80719F48091FA0143 +:100E400027C0CA3090E5D90721F48091FA0180616A +:100E500067C0CC3020E5D20721F48091FA0180628E +:100E60005FC0CE3080E5D80721F48091FA0180641C +:100E700057C0C03190E5D90721F48091FA0180680C +:100E80004FC0C23120E5D20729F48091FA01846075 +:100E9000886046C0C33080E5D80721F48091FA010C +:100EA0008E7F3EC0C53090E5D90721F48091FA01CC +:100EB0008D7F36C0C73020E5D20721F48091FA013A +:100EC0008B7F2EC0C93080E5D80719F48091FA01D4 +:100ED00026C0CB3090E5D90721F48091FA018F7EAE +:100EE0001FC0CD3020E5D20721F48091FA018F7D1B +:100EF00017C0CF3080E5D80721F48091FA018F7BAD +:100F00000FC0C13190E5D90721F48091FA018F77A4 +:100F100007C0C331D04531F48091FA018B7F877FC0 +:100F20008093FA018091FA010E94BC1DABC08D2F05 +:100F300099278F70992781309105D9F49E012370EC +:100F4000332702C0880F991F2A95E2F79C688E010B +:100F500044E0000F111F4A95E1F700271370802B22 +:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA +:100F70002FC08230910531F4DC2FCC278E01016F18 +:100F8000106A80C08330910569F4CE01837099277F +:100F900001E010E002C0000F111F8A95E2F7C801BE +:100FA0009C680FC084309105B9F4CE0183709927F5 +:100FB00001E010E002C0000F111F8A95E2F7C8019E +:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029 +:100FD0008C010C2B1D2B56C08530910531F4DC2F74 +:100FE000CC278E01046F106A4DC0069709F04AC0E5 +:100FF000CF71DD27DC2FCC278E01106243C000E0CB +:1010000010E040C08E013EC001E810E43BC003E8A0 +:1010100010E438C002EE14E435C009EE14E432C026 +:101020000AEE14E42FC005EB14E42CC006EB14E424 +:1010300029C007EB14E426C00CEC14E423C00DEC2B +:1010400014E420C003E815E41DC00AE815E41AC042 +:1010500002E915E417C004E915E414C001E216E43E +:1010600011C003E216E40EC004E216E40BC005E270 +:1010700016E408C006E216E405C007E216E402C062 +:101080000AE216E4C801DF91CF911F910F910895F4 +:1010900096E0799FF001112494E5899FE00DF11D00 +:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149 +:1010B0009491803E9105E0F4803C910558F5813390 +:1010C000910509F46FC048F48932910509F463C0B1 +:1010D0008A32910509F46DC072C089339105E9F037 +:1010E00082389105D1F08533910509F44DC067C070 +:1010F000833E910581F138F4803E9105B9F0823E3E +:101100009105D9F05CC0863E910561F1873E91055D +:10111000A1F155C00E94050608952091FA0120FD15 +:1011200002C021FF4CC080EE90E049C08091FA01DE +:1011300080FFF9CF89E390E042C08091FA0182FFFD +:101140000EC08091FA0184FF03C080E090E037C0B8 +:1011500083EE90E034C08091FA0182FFF2CF82EEFC +:1011600090E02DC08091FA0183FF0BC08091FA01BD +:1011700084FDEBCF87EE90E022C08091FA0183FFDF +:10118000F5CF86EE90E01BC08091FA0185FF07C085 +:1011900089E290E014C08091FA0185FFF9CF85E3E0 +:1011A00090E00DC08091FA0186FF07C08AE290E0CE +:1011B00006C08091FA0186FFF9CF81E390E00E949A +:1011C0001506089508950C94E20880916E01089523 +:1011D000CF93DF9300D01F92CDB7DEB79C018091F3 +:1011E000F101843019F593E099833B832A8390932E +:1011F000E9008FEF9091E800815095FD06C095EDD4 +:101200009A95F1F700008111F5CF8091E80085FFF4 +:101210000DC040E050E063E070E0CE0101960E9416 +:10122000520B8091E8008E778093E8000F900F902A +:101230000F90DF91CF910895CF93DF9300D01F924D +:10124000CDB7DEB72091F101243021F522E02983CA +:101250009B838A8383E08093E9008FEF9091E8007D +:10126000815095FD06C095ED9A95F1F7000081112A +:10127000F5CF8091E80085FF0DC040E050E063E0CD +:1012800070E0CE0101960E94520B8091E8008E77AB +:101290008093E8000F900F900F90DF91CF91089509 +:1012A0002091F1012430F1F422E02093E9002FEFA6 +:1012B0003091E800215035FD06C035ED3A95F1F743 +:1012C00000002111F5CF2091E80025FF0BC040E080 +:1012D00050E065E070E00E94520B8091E8008E774C +:1012E0008093E8000895CF93DF93EC019091F10192 +:1012F000943009F046C080910C018823D9F0809188 +:101300000D018823B9F09093E9008FEF9091E800E8 +:10131000815095FD06C095E19A95F1F70000811185 +:10132000F5CF8091E80085FF2CC040E050E060E1FF +:1013300070E017C081E08093E9008FEF9091E800A2 +:10134000815095FD06C095ED9A95F1F70000811149 +:10135000F5CF8091E80085FF14C040E050E068E0E0 +:1013600070E0CE010E94520B8091E8008E7780934E +:10137000E80080E1FE01AEE5B1E001900D928A95B2 +:10138000E1F7DF91CF9108958091F001811109C0BB +:101390000E94E70C0E94440D8091E20084608093DB +:1013A000E20008951092F001089508950C942B2204 +:1013B0000E948C1B0E9431220E94EA0F0C94E308C9 +:1013C00042E061EC81E00E94610C42E061EC82E06D +:1013D0000E94610C42E061EC83E00E94610C42E1FA +:1013E00061EC84E00C94610C8091F301833009F48A +:1013F00055C030F4813071F0823009F48EC0089508 +:101400008A3009F47AC08B3009F460C0893009F061 +:101410009CC020C08091F201813A09F096C0809171 +:10142000E800877F8093E8008091F6019091F701B2 +:10143000892B21F460E18EE591E003C060E080E05B +:1014400090E070E00E949D0B8091E8008B77809384 +:10145000E80008958091F201813209F076C0809110 +:10146000F6019091F701009719F0039709F06DC00C +:101470008091E800877F8093E8008091E80082FDFA +:1014800005C08091F1018111F8CF5FC08091F1001A +:1014900080936E018091E8008B7753C08091F201B8 +:1014A000813A09F052C08091F6019091F701892BA1 +:1014B00009F04BC08091E800877F8093E80080911D +:1014C000E80080FFFCCF80910C0136C08091F201D2 +:1014D0008132D9F58091F6019091F701892BA9F518 +:1014E0008091E800877F8093E8000E94960C8091AD +:1014F000F40180930C010C9483148091F2018132E9 +:1015000021F58091E800877F8093E8000E94960C87 +:101510008091F50180936F0108958091F201813AE5 +:10152000A1F48091E800877F8093E8008091E80033 +:1015300080FFFCCF80916F018093F1008091E800E3 +:101540008E778093E8000C94960C089584B7877F7B +:1015500084BF88E10FB6F894809360001092600019 +:101560000FBE90E080E80FB6F894809361009093EE +:1015700061000FBE0E9439100E94E70C0E94440DCA +:101580008091E20084608093E20078940E94CA0F08 +:101590000E943B1082E091E00E94E50F0E94192218 +:1015A0008091F101853069F40E94531B8091EF0115 +:1015B0008823B1F30E947E1B882391F30E943C0B89 +:1015C000EFCF0E944110ECCF292F33272330310574 +:1015D000C9F064F42130310581F02230310509F081 +:1015E00043C08DE690E02AE333E042C0213231056A +:1015F000F1F02232310541F137C082E190E027EA73 +:1016000033E036C099278130910541F08230910551 +:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4 +:1016200002C0E6E0F3E0849190E09F0121C06430C5 +:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5 +:10164000318189E090E014C0643070F470E0FB01F7 +:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47 +:10166000FE4F808190E004C080E090E020E030E018 +:10167000FA0131832083089580E189BD82E189BD2B +:1016800009B400FEFDCF8091D8008F7D8093D800F3 +:101690008091E00082608093E0008091E00081FD15 +:1016A000FCCF0895CF92DF92EF92FF920F931F939A +:1016B000CF93DF93EC018B016A010E94B50C81117D +:1016C00033C0C114D10439F0F60180819181081B27 +:1016D000190BC80FD91FE12CF12C0115110519F1B7 +:1016E0008091E80085FD16C08091E8008E77809398 +:1016F000E800C114D10449F0F60180819181E80E1F +:10170000F91EF182E08285E00FC00E94B50C8823AB +:1017100021F30AC089918093F10001501109FFEF74 +:10172000EF1AFF0ADACF80E0DF91CF911F910F917E +:10173000FF90EF90DF90CF9008952091F8013091C5 +:10174000F9012617370748F06115710539F4209122 +:10175000E8002E772093E80001C0B90140E0611550 +:101760007105A9F12091F101222309F443C025302C +:1017700009F442C02091E80023FD40C02091E80018 +:1017800022FD32C02091E80020FFE9CF4091F30014 +:101790002091F20030E0342BFC01CF01611571057E +:1017A00059F02830310540F481918093F100615067 +:1017B00071092F5F3F4FF1CF41E02830310509F02B +:1017C00040E02091E8002E772093E800C8CF411137 +:1017D000C9CF0AC08091F101882361F0853061F0A2 +:1017E0008091E80083FD0AC08091E80082FFF2CF7B +:1017F00080E0089582E0089583E0089581E00895EF +:101800002091F8013091F9012617370748F061154A +:10181000710539F42091E8002E772093E80001C08B +:10182000B901FC0120E06115710591F18091F10190 +:10183000882309F440C0853009F43FC08091E80056 +:1018400083FD3DC08091E80082FD2FC08091E800BB +:1018500080FFE9CF2091F3008091F20090E0922B7D +:101860006115710559F08830910540F42491209359 +:10187000F1003196615071090196F2CF21E008978D +:1018800009F020E08091E8008E778093E800CBCFCC +:101890002111CCCF0AC08091F101882361F08530FD +:1018A00061F08091E80083FD0AC08091E80082FF2A +:1018B000F2CF80E0089582E0089583E0089581E00A +:1018C0000895982F973058F59093E900981739F0BC +:1018D0007091EC002091ED005091F00003C0242F96 +:1018E000762F50E021FF19C03091EB003E7F3093FE +:1018F000EB003091ED003D7F3093ED003091EB0037 +:1019000031603093EB007093EC002093ED00509326 +:10191000F0002091EE0027FF07C09F5FD3CF8F70AC +:101920008093E90081E0089580E008958091F201BC +:1019300087FF11C08091E80082FD05C08091F10110 +:101940008111F8CF11C08091E8008B770BC0809196 +:10195000F101882349F08091E80080FFF8CF809161 +:10196000E8008E778093E80008952091E40030919C +:10197000E50095E64091EC00842F817040FF22C085 +:101980008091E80080FD1CC08091F101882391F0D6 +:10199000853091F08091EB0085FD10C04091E4000E +:1019A0005091E5004217530729F39A01915011F71E +:1019B00084E0089582E0089583E0089581E0089529 +:1019C00080E008954091E80042FFDECF08950E9434 +:1019D000550D0E945D0DE0EEF0E080818160808316 +:1019E000E8EDF0E080818F77808319BCA7EDB0E04F +:1019F0008C918E7F8C9380818F7E80831092F001FA +:101A000008950F931F93CF93DF930E94550D0E946B +:101A10005D0DC8EDD0E088818F77888388818068EC +:101A2000888388818F7D888319BC1092F101109280 +:101A3000ED011092EF011092EE0100EE10E0F801BE +:101A400080818B7F808388818160888342E060E031 +:101A500080E00E94610CE1EEF0E080818E7F808367 +:101A6000E2EEF0E080818160808380818860808305 +:101A7000F80180818E7F8083888180618883DF91F7 +:101A8000CF911F910F910895E8EDF0E080818F7E56 +:101A90008083E7EDF0E080818160808384E082BF15 +:101AA00081E08093F0010C94010DE8EDF0E080817D +:101AB0008E7F80831092E20008951092DA001092D7 +:101AC000E10008951F920F920FB60F9211242F93E9 +:101AD0003F934F935F936F937F938F939F93AF93B6 +:101AE000BF93EF93FF938091E10082FF0BC0809141 +:101AF000E20082FF07C08091E1008B7F8093E100CC +:101B00000E94C90F8091DA0080FF1FC08091D80029 +:101B100080FF1BC08091DA008E7F8093DA00809175 +:101B2000D90080FF0DC080E189BD82E189BD09B483 +:101B300000FEFDCF81E08093F1010E94C40905C041 +:101B400019BC1092F1010E94D2098091E10080FF3E +:101B500019C08091E20080FF15C08091E2008E7F65 +:101B60008093E2008091E20080618093E2008091A6 +:101B7000D80080628093D80019BC85E08093F10181 +:101B80000E94D6098091E10084FF30C08091E2007C +:101B900084FF2CC080E189BD82E189BD09B400FECB +:101BA000FDCF8091D8008F7D8093D8008091E10097 +:101BB0008F7E8093E1008091E2008F7E8093E2002F +:101BC0008091E20081608093E2008091ED018823A2 +:101BD00011F084E007C08091E30087FD02C081E03E +:101BE00001C083E08093F1010E94D8098091E10057 +:101BF00083FF29C08091E20083FF25C08091E1002E +:101C0000877F8093E10082E08093F1011092ED01E3 +:101C10008091E1008E7F8093E1008091E2008E7FD1 +:101C20008093E2008091E20080618093E20042E0D4 +:101C300060E080E00E94610C8091F00088608093F9 +:101C4000F0000E94D509FF91EF91BF91AF919F9154 +:101C50008F917F916F915F914F913F912F910F9055 +:101C60000FBE0F901F9018951F920F920FB60F92F4 +:101C700011242F933F934F935F936F937F938F9391 +:101C80009F93AF93BF93CF93DF93EF93FF93C09155 +:101C9000E900CF708091EC00D82FD17080FDD0E8A2 +:101CA0001092E9008091F000877F8093F000789493 +:101CB0000E94780E1092E9008091F0008860809375 +:101CC000F000CD2BCF70C093E900FF91EF91DF9131 +:101CD000CF91BF91AF919F918F917F916F915F91C4 +:101CE0004F913F912F910F900FBE0F901F9018951D +:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3 +:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115 +:101D1000F10091938E13FBCF0E94F4098091E800AB +:101D200083FF1FC18091F2019091F301492F50E090 +:101D30004A30510508F015C1FA01EA5AFF4F0C94D8 +:101D4000B323803881F0823809F00BC18091F6010D +:101D50008F708093E9008091EB0085FB882780F9E4 +:101D60001092E90006C08091EE019091EF0191116F +:101D700082609091E800977F9093E8008093F10053 +:101D80001092F100C8C0282F2D7F09F0EAC08823E7 +:101D900019F0823061F0E5C08091F401813009F0E2 +:101DA000E0C0933009F080E08093EF012BC0809178 +:101DB000F401811127C08091F6018F7009F4D1C020 +:101DC0008093E9002091EB0020FF1CC0933021F4A8 +:101DD0008091EB00806214C09091EB009061909331 +:101DE000EB0021E030E0A90102C0440F551F8A95A5 +:101DF000E2F74093EA001092EA008091EB008860DD +:101E00008093EB001092E9008091E800877F86C004 +:101E10008111A7C01091F4011F778091E3008078B1 +:101E2000812B8093E3008091E800877F8093E80016 +:101E30000E94960C8091E80080FFFCCF8091E30027 +:101E400080688093E300111102C082E001C083E04A +:101E50008093F10186C08058823008F082C0809162 +:101E6000F4019091F5018C3D53E0950779F583E0FD +:101E70008A838AE289834FB7F894DE01139620E0C3 +:101E80003EE051E2E32FF0E050935700E49120FF51 +:101E900003C0E295EF703F5FEF708E2F90E0EA3065 +:101EA00010F0C79601C0C0968D939D932F5F24318B +:101EB00049F74FBF8091E800877F8093E8006AE28E +:101EC00070E0CE0101960E949D0B14C0AE014F5FE1 +:101ED0005F4F6091F6010E94E40ABC01009709F48B +:101EE00040C09091E800977F9093E80089819A81A3 +:101EF0000E94000C8091E8008B778093E80031C04D +:101F0000803879F58091E800877F8093E8008091A0 +:101F1000ED018093F1008091E8008E778093E800D6 +:101F20000E94960C1EC081111CC09091F401923049 +:101F3000C0F48091E800877F8093E8009093ED01E2 +:101F40000E94960C8091ED01811106C08091E30002 +:101F500087FD02C081E001C084E08093F1010E940E +:101F6000E0098091E80083FF0AC08091E800877F44 +:101F70008093E8008091EB0080628093EB00AA964A +:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A +:101F900008950895CF938091F1018823A1F0C09115 +:101FA000E900CF709091EC00892F817090FD80E85E +:101FB000C82B1092E9008091E80083FD0E94780E02 +:101FC000CF70C093E900CF910895909375018093ED +:101FD00074010895E0917401F0917501309721F03A +:101FE0000190F081E02D099480E00895E091740162 +:101FF000F0917501309721F00280F381E02D099472 +:102000000895E0917401F0917501309721F00480FA +:10201000F581E02D099408952091720130917301AA +:102020008217930771F09093730180937201E0918E +:102030007401F0917501309721F00680F781E02D51 +:1020400009940895209170013091710182179307CE +:1020500071F09093710180937001E0917401F0919F +:102060007501309721F00084F185E02D09940895E1 +:1020700008950C9438100E94921B0E9433030C9414 +:10208000541C9F92AF92BF92CF92DF92EF92FF9239 +:102090000F931F93CF93DF9300D000D000D0CDB724 +:1020A000DEB70E944B030DE010E0AA24A394B12CEC +:1020B000902E802F0E943904980129583E4F6901C3 +:1020C000F901F080F826A1F40150110988F78FEF8B +:1020D00089838A831B820E949B1B8160782F9D834A +:1020E0008C8349815A816B818D810E94D8102FC0C9 +:1020F0009091DA0191FF04C08E830E943F048E818B +:1021000025E030E0A501022E01C0440F0A94EAF751 +:10211000E42E4F21C1F029839A828E2191E009F4A7 +:1021200090E09B830E949B1B8160782F9D838C8312 +:1021300049815A816B818D810E94D810F60180817E +:10214000E826E08204C021503109E0F6BDCF0E94AC +:102150003B1F109176010E94EA0F1817B9F00E94F8 +:10216000EA0F8093760126960FB6F894DEBF0FBE75 +:10217000CDBFDF91CF911F910F91FF90EF90DF9036 +:10218000CF90BF90AF909F900C94E30826960FB627 +:10219000F894DEBF0FBECDBFDF91CF911F910F919D +:1021A000FF90EF90DF90CF90BF90AF909F900895F9 +:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82 +:1021C0000FBECDBF4F83588769877A878B87DE0123 +:1021D000119686E0FD0111928A95E9F785E0FE01EE +:1021E000379601900D928A95E1F749815A816B816A +:1021F0007C818D819E810E9421172B960FB6F894C9 +:10220000DEBF0FBECDBFDF91CF910895CF9388235E +:1022100009F4C2C0C82F823859F40E94EA0F81FD28 +:10222000BBC089E30E94FB190E94C81A89E30CC055 +:10223000833879F40E94EA0F80FDAEC083E50E94E6 +:10224000FB190E94C81A83E50E943D1ACF910C9495 +:10225000C81A843859F40E94EA0F82FD9DC087E4B1 +:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6 +:10227000813A48F48C2F0E947E2181118DC08C2FD1 +:102280000E94FB19E3CF80E28C0F883048F4C770BE +:1022900081E001C0880FCA95EAF70E94811AD6CF63 +:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB +:1022B00083E890E005C081E890E002C082E890E009 +:1022C000CF910C940C1088E58C0F833108F064C01A +:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118 +:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186 +:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106 +:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173 +:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB +:1023200038C082EE90E035C089EE90E032C08AEE8F +:1023300090E02FC085EB90E02CC086EB90E029C0A8 +:1023400087EB90E026C08CEC90E023C08DEC90E011 +:1023500020C083E891E01DC08AE891E01AC082E9BC +:1023600091E017C084E991E014C081E292E011C0CD +:1023700083E292E00EC084E292E00BC085E292E03C +:1023800008C086E292E005C087E292E002C08AE2DD +:1023900092E0CF910C942210CF910895882309F4F4 +:1023A0004BC0823859F40E94EA0F81FF45C089E38F +:1023B0000E94FB190E94C81A89E30CC0833871F48B +:1023C0000E94EA0F80FF38C083E50E94FB190E943B +:1023D000C81A83E50E943D1A0C94C81A843859F42F +:1023E0000E94EA0F82FF28C087E40E94FB190E9426 +:1023F000C81A87E4EFCF9CEF980F913A58F390E218 +:10240000980F983050F4877091E001C0990F8A9529 +:10241000EAF7892F0E94871ADFCF9BE5980F933048 +:1024200020F480E090E00C940C10885A833120F462 +:1024300080E090E00C9422100895882321F00E94FF +:10244000811A0C94C81A0895882321F00E94871AD3 +:102450000C94C81A08957F928F929F92AF92BF9268 +:10246000CF92DF92EF92FF920F931F93CF93DF9360 +:102470001F92CDB7DEB77C01C62E772EFC010581F9 +:1024800002950F70128111110E949E1A0E94F41978 +:10249000882379F0112369F080E28C0D883048F0B0 +:1024A00082E00E94DD190E94F41991E0D82ED9260D +:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C +:1024C0000C94B323872D807F072D0F70882311F084 +:1024D0000295007F112389F0002309F490C180E266 +:1024E0008C0D883020F4802F0E94811A03C0802F29 +:1024F0000E94911A0E94C81A82C18C2D0E94CE118E +:10250000002309F495C180E28C0D883020F4802FDF +:102510000E94871A03C0802F0E94971A0E94C81A2F +:1025200087C1972D907F872D8F70903211F0829503 +:10253000807FCC2021F0F1E0CF16B1F01EC0112336 +:1025400049F0002309F414C1013009F011C10E94BF +:10255000B11A6EC1002319F0013009F469C18983F1 +:102560000E94B41A89810AC1112321F0023008F0B7 +:102570005FC1FEC001115CC101C1112321F0002324 +:1025800009F4F6C03CC1002309F4F8C03EC1872D10 +:1025900086958695837090E0009719F0019761F019 +:1025A00047C1112321F08C2D972D937002C080E03C +:1025B00090E00E940C103CC1112321F08C2D972D2E +:1025C000937002C080E090E00E94221031C18C2DF7 +:1025D000112319F00E94431E02C00E94AB1E0E94EC +:1025E000301F26C1872D837009F052C0111120C100 +:1025F0008C2D829586958770880F880F9C2D9F70F3 +:10260000892E912CA12CB12C082E04C0880C991C69 +:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041 +:1026200020E030E0B901A80104C0440F551F661F27 +:10263000771F8A95D2F7CB01BA0160957095809586 +:10264000909503C060E070E0CB01272D269526957C +:10265000237030E02230310569F02330310589F0F4 +:10266000682979298A299B292130310571F00E9436 +:102670006918DEC0682979298A299B290E94851852 +:10268000D7C00E946918C501B4010E944D18D0C07E +:10269000112319F0872D817001C08695882309F4D4 +:1026A000C7C08C2D829586958770880F880F9C2DCA +:1026B0009F70892E912CA12CB12C082E04C0880C5F +:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC +:1026D00010E020E030E0B901A80104C0440F551F0C +:1026E000661F771F8A95D2F7CB01BA016095709566 +:1026F0008095909503C060E070E0CB01272D269572 +:1027000026952370422F50E04230510569F0433046 +:10271000510589F0682979298A299B294130510579 +:1027200071F00E94431984C0682979298A299B295C +:102730000E945F197DC00E944319C501B4010E9427 +:10274000271976C08C2D90E0FC01E05EF109E5319F +:10275000F10508F050C0E059FF4F0C94B3230C2D45 +:102760000F70872D8F71112331F00E94C018802FB8 +:102770000E941D125DC00E94E118802F0E94241249 +:1027800057C0112339F0011153C0872D8F710E945A +:1027900006194EC0023008F04BC0F7CF112339F0B4 +:1027A000872D8F710E94C01843C01123C9F3872D54 +:1027B0008F710E94E1183CC0112329F0872D8F7181 +:1027C0000E94AB1835C00E94A11832C0112351F0ED +:1027D000172D1F71812F0E94C01863E0812F0E9466 +:1027E000D41926C081E00E94DD19023008F182E090 +:1027F0000E94DD191DC0112331F0002389F28C2DB8 +:102800000E94061115C0002391F28C2D0E94CE115A +:102810000FC0472D4F706C2DC7010E9415050E94F7 +:10282000C51706C0472D4F706C2DC7010E94F205D9 +:10283000DD20F9F00E94D01980FD1BC0F701128243 +:102840000E94CA190E94C018C7010E9448140E9421 +:10285000CA190F90DF91CF911F910F91FF90EF90C8 +:10286000DF90CF90BF90AF909F908F907F900C940F +:10287000E1180F90DF91CF911F910F91FF90EF9092 +:10288000DF90CF90BF90AF909F908F907F900895F2 +:102890000F931F93CF93DF93EC01888199812B8154 +:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B +:1028B0000E944A05882371F0688179818A810E948B +:1028C000C6198C010E947B190E944218B801CE01E2 +:1028D0000E942B12DF91CF911F910F9108950E94BA +:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471 +:1028F000E11F0E94301F80E090E00E940C1080E0F9 +:1029000090E00C9422100E948E1A0C946F140E9476 +:10291000BB19292F22952F7030E02C3031054CF453 +:102920002A3031056CF42250310922303105A8F4E7 +:1029300007C02C30310569F02F30310551F00DC042 +:10294000803F69F018F4803E40F409C0843F29F4C8 +:1029500006C093FB882780F9089580E0089581E000 +:102960000895CF93DF9300D000D01F92CDB7DEB78C +:102970000F900F900F900F900F90DF91CF910895CF +:10298000CF93DF9300D000D000D0CDB7DEB726962E +:102990000FB6F894DEBF0FBECDBFDF91CF91089583 +:1029A0001F93CF93DF93C091850116E0809186013C +:1029B000C81799F0D0E01C9FF0011D9FF00D112465 +:1029C000E957FE4F408151816281738184819581F5 +:1029D0000E94C0142196C770E9CFDF91CF911F915B +:1029E00008954091B7015091B8016091B90170917B +:1029F000BA018091BB019091BC010C94C0148091EC +:102A0000BC0182958F7009F054C08091B901882370 +:102A100009F44FC080918501A09186016091B701B2 +:102A20007091B8014091BA015091BB01B6E08A178C +:102A300009F43FC090E041155105C1F17F3F11F409 +:102A40006F3FA1F1B89FF001B99FF00D1124E95734 +:102A5000FE4F218172132AC02081621327C0228178 +:102A6000211124C0238134812417350710F421500B +:102A70003109241B350B283C3105C0F42091BC01E1 +:102A80002F7020612093BC0126E0289FF001299F30 +:102A9000F00D1124E457FE4F80818F708061808398 +:102AA00087EB91E00E9448140C94D0140196877033 +:102AB000BECF0895CF92DF92EF92FF920F931F93B4 +:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32 +:102AD0000FBECDBF8C0185E0F801DE011D9601908F +:102AE0000D928A95E1F7D8014C9111965C9111975E +:102AF00012966C9112971396CD90DC9014973091AA +:102B0000B7017091B8018091BA019091BB01009713 +:102B100009F46BC17F3F19F43F3F09F466C1E090AF +:102B2000B901EE2009F4C0C02091BC01C816D90635 +:102B300028F0F601E81BF90BCF0104C080959095B1 +:102B40008C0D9D1DFF24F394883C910578F0F12CA9 +:102B5000207F09F0C6C07C2DD98AC88A89890E9445 +:102B6000B11487EB91E00E944814B1C0822F807F9E +:102B700009F046C0751314C0341312C0611110C09F +:102B80002F7020612093BC010E94F11487EB91E02B +:102B90000E9448148091BC01D80115968C932EC0D8 +:102BA000CD2819F15F3F11F44F3FF9F0F62E611176 +:102BB0001CC0809185012091860136E0821709F4BE +:102BC0005AC090E0389FF001399FF00D1124E95769 +:102BD000FE4F7181571306C07081471303C0728185 +:102BE000711103C001968770E9CFF62E662309F4B0 +:102BF00018C18091BC0181608093BC01F12C11C18E +:102C0000751308C0341306C0611104C08091BC0163 +:102C1000D801C3C04D875E878D859E856A8B0E94D3 +:102C200087146A898823E1F16623D1F12091BC01E0 +:102C3000822F82958F7090E0029774F08091B70197 +:102C40009091B80198878F831986DB86CA862C8776 +:102C5000CE0107960E94481486E0F801A7EBB1E088 +:102C600001900D928A95E1F70E94FF140E94F114E1 +:102C7000FF24F394D6C04D875E878D859E850E9484 +:102C8000BB19292F22952F7030E0223031050CF02E +:102C9000BCC09F7009F0B6C0805E883008F4C1C027 +:102CA000C8010E944814E4CFC816D90608F453C0DE +:102CB000F601E81BF90BCF01883C910508F450C0E0 +:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E +:102CD000F1E086E0DF011D928A95E9F70E94F11488 +:102CE000A0C0751314C0341312C0611110C08091BC +:102CF000BC01F8018583C8010E94481486E0E7EB17 +:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C +:102D10005E878D859E856A8B0E9487146A898823C9 +:102D200009F4BECF662309F4BBCF2091BC01822FEA +:102D300082958F7090E002970CF48ECF8091B7014E +:102D40009091B8019A8389831B82DD82CC822E8385 +:102D5000CE0101967FCF809590958C0D9D1DACCFB7 +:102D6000F62E662309F49CCF75132EC034132CC0A5 +:102D70002091BC0120FD1FC0822F82958F70D9F059 +:102D8000D80115962C9315978F3049F08F5F982FA7 +:102D90009295907F822F8F70892B15968C93C80106 +:102DA0000E94481486E0F801A7EBB1E001900D9273 +:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7 +:102DC0000D928A95E1F72DC04D875E878D859E8592 +:102DD0000E948714811140CF8091BC018160809353 +:102DE000BC01C8010E9448141CC0662309F458CFD6 +:102DF0004D875E878D859E850E948714882309F400 +:102E00004FCF2ACF811148CF0CC0243031050CF0B0 +:102E100047CF9F7009F440CFF8019581907F09F06A +:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D +:102E3000DF91CF911F910F91FF90EF90DF90CF9096 +:102E400008951F93CF93DF93CDB7DEB72C970FB6BE +:102E5000F894DEBF0FBECDBF4F83588769877A874E +:102E60008B879C87CE0107960E945A15882369F0AC +:102E70008F8198852A853B85232BF1F19F3F09F0AF +:102E800063C08F3F09F060C037C086E0FE0137960F +:102E9000DE01119601900D928A95E1F76F81788598 +:102EA000EA85FB85309741F17F3F11F46F3F21F1B7 +:102EB0002091860130E0C9010196877099274091E1 +:102EC000850150E08417950709F447C069837A8328 +:102ED000FD83EC8396E0929FD001939FB00D112467 +:102EE000A957BE4FFE01319601900D929A95E1F7D8 +:102EF000809386010E94D01416E080918501909104 +:102F000086018917C1F1189FC001112489579E4F6E +:102F10000E945A15882379F1E09185011E9FF001E6 +:102F20001124E957FE4F4081518162817381848170 +:102F300095810E94C0148091850190E00196877070 +:102F4000992780938501D9CF4F81588569857A85E6 +:102F50008B859C850E94C014CFCF0E948314109251 +:102F6000860110928501E7EBF1E086E0DF011D921A +:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45 +:102F8000CDBFDF91CF911F910895EF92FF920F93E4 +:102F90001F93CF93DF938C01009709F46CC0F12C41 +:102FA000EE24E394E8012196F8018491843740F4FB +:102FB000843008F051C0813081F0823019F15BC05B +:102FC000853709F444C0A8F19CE7980F903708F0C2 +:102FD00052C08F770E94CE1141C00E5F1F4FFE017D +:102FE000C49180E28C0F883048F4C7708E2D01C0E8 +:102FF000880FCA95EAF70E94A11A14C08C2F0E946C +:1030000006112DC00E5F1F4FFE01C49180E28C0F90 +:10301000883058F4C7708E2D01C0880FCA95EAF722 +:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3 +:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3 +:103040009FE00197F1F700C00000C150F6CF0E5F7E +:103050001F4FFE01F49003C00E9406118E018F2DB8 +:10306000882309F49FCFEFE9FFE03197F1F700C023 +:1030700000008150F5CFDF91CF911F910F91FF900C +:10308000EF90089508956093C1017093C2018093F9 +:10309000C3019093C4010C946F140F931F9300917C +:1030A000C1011091C2012091C3013091C401DC0122 +:1030B000CB01802B912BA22BB32B8093C10190933A +:1030C000C201A093C301B093C4011F910F910C944E +:1030D0006F140F931F930091C1011091C2012091B1 +:1030E000C3013091C401DC01CB0180239123A223D1 +:1030F000B3238093C1019093C201A093C301B09305 +:10310000C4011F910F910C946F140F931F930091A2 +:10311000C1011091C2012091C3013091C401DC01B1 +:10312000CB0180279127A227B3278093C1019093D9 +:10313000C201A093C301B093C4011F910F910C94DD +:103140006F141092BD011092BE011092BF01109237 +:10315000C0010C946F1441E050E060E070E004C0E6 +:10316000440F551F661F771F8A95D2F74093BD0104 +:103170005093BE016093BF017093C0010C946F1413 +:1031800041E050E060E070E004C0440F551F661F4E +:10319000771F8A95D2F78091BD019091BE01A091D1 +:1031A000BF01B091C001482B592B6A2B7B2B409358 +:1031B000BD015093BE016093BF017093C0010C9498 +:1031C0006F1441E050E060E070E004C0440F551F10 +:1031D000661F771F8A95D2F7409550956095709538 +:1031E0008091BD019091BE01A091BF01B091C0013D +:1031F000482359236A237B234093BD015093BE018A +:103200006093BF017093C0010C946F1441E050E0D3 +:1032100060E070E004C0440F551F661F771F8A9559 +:10322000D2F78091BD019091BE01A091BF01B091F4 +:10323000C001482759276A277B274093BD01509337 +:10324000BE016093BF017093C0010C946F140F9383 +:103250001F930091BD011091BE012091BF013091DB +:10326000C001DC01CB01802B912BA22BB32B8093CF +:10327000BD019093BE01A093BF01B093C0011F9107 +:103280000F910C946F140F931F930091BD01109137 +:10329000BE012091BF013091C001DC01CB01802330 +:1032A0009123A223B3238093BD019093BE01A093E9 +:1032B000BF01B093C0011F910F910C946F140F9335 +:1032C0001F930091BD011091BE012091BF0130916B +:1032D000C001DC01CB0180279127A227B32780936F +:1032E000BD019093BE01A093BF01B093C0011F9197 +:1032F0000F910C946F140895CF92DF92EF92FF928A +:103300000F931F93CF93DF938C01C090C101D09096 +:10331000C201E090C301F090C4018091BD01909181 +:10332000BE01A091BF01B091C001C82AD92AEA2AE2 +:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520 +:10334000A795979587950A94D2F780FF06C0B80194 +:103350008C2F0E944808019721F4219760F780E0A4 +:1033600001C08C2FDF91CF911F910F91FF90EF90B3 +:10337000DF90CF900895CF93DF93EC010E947C19EA +:10338000BE010E944808DF91CF910895CB010E94B1 +:10339000BB1908958091C5018595859585950895FA +:1033A0008091C5018770089598E0899F900111244C +:1033B000262B2093C5010C94C0182091C50180953F +:1033C00082238093C501982F977069F430E0482FCD +:1033D000552747FD50952417350729F08595859584 +:1033E00085950C94E11808959091C501977081E03E +:1033F00009F480E0089590910C01992321F09091B7 +:103400000D01911109C020910E0130910F01F901B8 +:1034100032969FEF40E01FC0982F9695969596950F +:103420009F3050F5E0910E01F0910F01E90FF11D71 +:10343000877021E030E0A90102C0440F551F8A9532 +:10344000E2F7CA019181892B818308959F3F39F06A +:103450004F5F4E3041F051915813F8CF0DC05111CC +:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08 +:1034700097FDFA9582830895089590910C01992300 +:1034800021F090910D01911109C020910E01309110 +:103490000F01F9013296205F3F4F1FC0982F96957C +:1034A000969596959F30F0F4E0910E01F0910F0102 +:1034B000E90FF11D877021E030E0A90102C0440F3F +:1034C000551F8A95E2F7CA018095918189238183EE +:1034D00008953196E217F30729F090819813F9CFF8 +:1034E0001082F7CF089581E090E0E0910E01F09115 +:1034F0000F01E80FF91F1082019680319105A9F79D +:1035000008959091D901892B8093D90108958095D0 +:103510009091D90189238093D90108951092D901FE +:1035200008959091D801892B8093D80108958095B2 +:103530009091D80189238093D80108951092D801E1 +:1035400008959091D701892B8093D7010895809594 +:103550009091D70189238093D70108951092D701C4 +:1035600008958093C60108951092C6010895809130 +:103570000E0190910F01FC0131969C01205F3F4F9D +:1035800080E0919191118F5FE217F307D1F70895D1 +:10359000E0910E01F0910F018091D9018083E091BB +:1035A0000E01F0910F0190818091D801892B8083C9 +:1035B000E0910E01F0910F0190818091D701892B4C +:1035C00080838091C601882361F0E0910E01F09123 +:1035D0000F019081892B80830E94B71A811110926C +:1035E000C60180910E0190910F010C94F60F20E01E +:1035F000009739F0AC0141505109842395232F5F86 +:10360000F7CF822F0895CF92DF92EF92FF926C0155 +:10361000EE24FF24C114D104E104F10421F0C70118 +:10362000B60120E101C020E0C72ED82EE92EFF24EC +:10363000C114D104E104F10419F0285FC701B601F7 +:103640006B017C0154E0F694E794D794C7945A95A3 +:10365000D1F7C114D104E104F10419F02C5FC701C2 +:10366000B6016B017C0142E0F694E794D794C794CD +:103670004A95D1F7C114D104E104F10419F02E5F89 +:10368000C701B601DC01CB01B695A7959795879543 +:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5 +:1036A000DF90CF9008958091F101843021F1109244 +:1036B000DB0120E488E190E00FB6F894A8958093B0 +:1036C00060000FBE2093600080E00E94E30883B793 +:1036D000817F846083BF83B7816083BF789488953E +:1036E00083B78E7F83BF88E10FB6F8948093600024 +:1036F000109260000FBE0895089508950E947C1BEB +:103700000E944B030E947D1B0E94400491E08111A6 +:1037100001C090E0892F08950E9483140E94EA0F4F +:103720000C94E30882E084BD93E095BD9AEF97BDC9 +:1037300080936E0008952FB7F8948091DC019091EA +:10374000DD01A091DE01B091DF012FBF0895CF927E +:10375000DF92EF92FF920F931F932FB7F89440914F +:10376000DC015091DD016091DE017091DF012FBF1E +:103770006A017B01EE24FF248C0120E030E0C016BA +:10378000D106E206F30610F4415051099A01281BB4 +:10379000390BC9011F910F91FF90EF90DF90CF90EF +:1037A00008951F920F920FB60F9211248F939F933B +:1037B000AF93BF938091DC019091DD01A091DE0178 +:1037C000B091DF010196A11DB11D8093DC019093A2 +:1037D000DD01A093DE01B093DF01BF91AF919F9116 +:1037E0008F910F900FBE0F901F9018950E94E70CBD +:1037F000F8942FEF87EA91E6215080409040E1F75E +:1038000000C0000087E090EBDC018093FB01909307 +:10381000FC01A093FD01B093FE019CE088E10FB68E +:10382000F894A895809360000FBE90936000FFCF3E +:10383000EF92FF920F931F93CF93DF93D82FCDE09A +:103840008C2F0E94390405E010E0E82EF12CC7010E +:10385000002E02C0959587950A94E2F780FF09C073 +:10386000602F7C2F80E00E94F305D81302C081E016 +:1038700006C00150110958F7C15010F780E0DF91E0 +:10388000CF911F910F91FF90EF900895CF93C82F84 +:103890008CE20E94181C882321F08C2FCF910C946D +:1038A000181C80E0CF910895CF930E949B1D811139 +:1038B00002C00E94811DC5E6C15049F00E944B0321 +:1038C0008FE39CE90197F1F700C00000F5CF89E292 +:1038D0000E94461C811113C18AE20E94461C81117C +:1038E0000E94811D85E00E94461C81110E94F61BEA +:1038F0000E94A61D8093DA0187E00E94461C88235F +:10390000A9F18BE10E94461C882351F08091DA01D5 +:1039100081FB222720F991E0922790FB81F90EC0CC +:103920008EE00E94461C882361F08091DA0182FBC0 +:10393000222720F991E0922790FB82F98093DA0107 +:1039400015C080E10E94461C9091DA01882341F065 +:1039500093FB222720F981E0822780FB93F904C0A2 +:10396000892F809580FB90F99093DA018091DA019C +:103970000E94AA1D0E94B81D8093FA0180EE0E9449 +:10398000461C882341F08091FA01982F909590FB76 +:1039900080F98093FA0189E30E94461C882359F03C +:1039A0008091FA0181FB222720F991E0922790FB78 +:1039B00081F98093FA0182EE0E94461C882359F017 +:1039C0008091FA0182FB222720F991E0922790FB57 +:1039D00082F98093FA0186EE0E94461C882359F0F2 +:1039E0008091FA0183FB222720F991E0922790FB36 +:1039F00083F98093FA0183EE0E94461C882359F0D4 +:103A00008091FA0184FB222720F991E0922790FB14 +:103A100084F98093FA0185E30E94461C882359F0BB +:103A20008091FA0185FB222720F991E0922790FBF3 +:103A300085F98093FA0181E30E94461C882359F09E +:103A40008091FA0186FB222720F991E0922790FBD2 +:103A500086F98093FA0181E10E94461C882359F07F +:103A60008091FA0187FB222720F991E0922790FBB1 +:103A700087F98093FA018091FA010E94BC1D809120 +:103A8000FA0187FB882780F980930D0187E20E9465 +:103A9000461CC82F8EE10E94461C8111C2608FE136 +:103AA0000E94461C8111C46080E20E94461C811164 +:103AB000C86081E20E94461C8111C06182E20E94BE +:103AC000461C8111C06283E20E94461C8111C064C1 +:103AD00084E20E94461C882311F0C06802C0CC23F7 +:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4 +:103AF000682F70E080E090E0CF910C944318CF9154 +:103B000008956DEE7EEF80E090E00E94ED2360E08E +:103B100082E090E00E94DB2360E083E090E00E947E +:103B2000DB2360E084E090E00E94DB2360E085E03E +:103B300090E00C94DB2380E090E00E94D52321E00C +:103B40008D3E9E4F09F020E0822F089582E090E0A4 +:103B50000C94CD23682F82E090E00C94DB2383E06B +:103B600090E00C94CD23682F83E090E00C94DB234D +:103B700084E090E00C94CD23682F84E090E00C94D6 +:103B8000DB238091E20180FF0BC06091130185E08F +:103B9000689FB001112475956795759567952BC041 +:103BA00081FF09C06091130185E0689FB001112475 +:103BB0007595679520C082FF07C06091130185E06D +:103BC000689FB001112417C09091E3019923D1F0AF +:103BD00060911201961788F72091130185E0289FC4 +:103BE00090011124929FA001939F500D112470E029 +:103BF000CA010E949F236038710540F46115710568 +:103C000039F002C065E070E0862F08958FE70895CF +:103C100081E008958091E20180FF08C06091110168 +:103C200070E0759567957595679521C081FF06C011 +:103C30006091110170E07595679519C082FF04C00D +:103C40006091110170E010C09091E3019923C1F0DF +:103C5000609110019617A0F780911101899FC00112 +:103C6000112470E00E949F236038710528F46115CB +:103C7000710521F0862F08958FE7089581E008955A +:103C800061E070E0F4CF803F21F40E94C11D819576 +:103C900004C0813F29F40E94C11D8093E60108956C +:103CA000823F21F40E94C11D819504C0833F29F405 +:103CB0000E94C11D8093E5010895893F19F40E9477 +:103CC0000A1E05C08A3F31F40E940A1E8195809326 +:103CD000E70108958B3F21F40E940A1E819504C0DC +:103CE0008C3F29F40E940A1E8093E8010895843FC6 +:103CF00021F48091E401816017C0853F21F4809117 +:103D0000E401826011C0863F21F48091E401846067 +:103D10000BC0873F21F48091E401886005C0883F93 +:103D200031F48091E40180618093E40108958D3F36 +:103D300021F48091E20181600BC08E3F21F48091DB +:103D4000E201826005C08F3F29F48091E201846026 +:103D50008093E2010895803F39F48091E60187FF66 +:103D60006CC01092E60169C0813F29F48091E601A0 +:103D70001816BCF362C09091E501823F29F497FFC9 +:103D80005CC01092E50159C0833F19F41916CCF3B9 +:103D900054C0893F41F48091E70118160CF04DC0E2 +:103DA0001092E7014AC08A3F29F48091E70187FF1A +:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6 +:103DC0001092E8013AC08C3F29F48091E80118165E +:103DD000BCF333C0843F21F48091E4018E7F17C08F +:103DE000853F21F48091E4018D7F11C0863F21F44D +:103DF0008091E4018B7F0BC0873F21F48091E40127 +:103E0000877F05C0883F31F48091E4018F7E8093E5 +:103E1000E40113C08D3F21F48091E2018E7F0BC03D +:103E20008E3F21F48091E2018D7F05C08F3F29F400 +:103E30008091E2018B7F8093E2018091E501811105 +:103E40000EC08091E60181110AC08091E7018111C5 +:103E500006C08091E801811102C01092E30108952B +:103E600084EE91E00E9401100E949B1B9093E1015F +:103E70008093E00108951F93CF93DF938091E00139 +:103E80009091E1010E94A71BAC019091E30199235D +:103E900021F02091140130E006C0209115018AE044 +:103EA000289F900111244217530708F486C080917F +:103EB000E501C091E601D091E7011091E80181117F +:103EC00007C0C11176C0D11174C0111172C075C084 +:103ED0009F3F19F09F5F9093E301181624F40E940E +:103EE000C11D8093E5018091E50187FF05C00E9417 +:103EF000C11D81958093E5011C1624F40E94C11D0B +:103F00008093E6018091E60187FF05C00E94C11DF4 +:103F100081958093E6016091E501662339F1C091B6 +:103F2000E601CC2319F1772767FD7095872F972F2E +:103F30000E94B02223E333E343E35FE30E941423B0 +:103F40000E947D226093E5016C2F772767FD7095B5 +:103F5000872F972F0E94B02223E333E343E35FE3ED +:103F60000E9414230E947D226093E6011D1624F412 +:103F70000E940A1E8093E7018091E70187FF05C038 +:103F80000E940A1E81958093E701111624F40E9475 +:103F90000A1E8093E8018091E80187FF05C00E9416 +:103FA0000A1E81958093E801DF91CF911F910C94B7 +:103FB000301F9F3F09F08ECF96CFDF91CF911F9199 +:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE +:103FD0001092E3011092E2010895833081F128F4F8 +:103FE000813059F08230D1F00895853009F449C00C +:103FF000B8F1863009F456C0089580911501262F36 +:1040000030E0280F311D2F3F310524F4680F6093F5 +:10401000150108958FEF8093150108958091140183 +:10402000262F30E0280F311D2F3F310524F4680F73 +:104030006093140108958FEF809314010895809187 +:104040001301262F30E0280F311D2F3F310524F4B6 +:10405000680F6093130108958FEF80931301089503 +:1040600080911201262F30E0280F311D2F3F31059E +:1040700024F4680F6093120108958FEF809312016A +:10408000089580911101262F30E0280F311D2F3F18 +:10409000310524F4680F6093110108958FEF809328 +:1040A0001101089580911001262F30E0280F311D55 +:1040B0002F3F310524F4680F6093100108958FEFAE +:1040C000809310010895833011F128F4813049F074 +:1040D000823091F00895853081F120F18630C1F170 +:1040E000089580911501681720F4861B80931501AF +:1040F000089510921501089580911401681720F415 +:10410000861B8093140108951092140108958091E4 +:104110001301681720F4861B8093130108951092F1 +:104120001301089580911201681720F4861B809373 +:1041300012010895109212010895809111016817DB +:1041400020F4861B809311010895109211010895A7 +:1041500080911001681720F4861B80931001089548 +:104160001092100108950F931F938D3109F46BC0C5 +:1041700008F03FC08E3009F47FC0C0F4873009F4E6 +:1041800069C068F4863009F0B1C08091DA01817F9E +:104190008E7F8093DA0181E08093EA01A8C08830A5 +:1041A00009F4A2C08B3009F49FC0A0C0863109F485 +:1041B0009BC078F4803109F472C0813109F096C057 +:1041C0000E94831490910D0181E0892780930D0155 +:1041D0008BC0893109F488C08B3109F087C0809188 +:1041E000DA0181FB222720F991E0922790FB81F9E7 +:1041F0004CC0853309F470C048F4873209F46CC0B0 +:1042000008F459C0893209F467C070C0833438F4A7 +:104210008A3308F04EC0883309F466C067C083341F +:1042200009F45AC0883409F061C00E9483140FEF6A +:1042300013ED20E3015010402040E1F700C00000E2 +:104240000E94F61B51C00E9437220E94EA0F0E9472 +:10425000E3084AC09091DA01892F8095817080FB34 +:1042600090F929F0966098609093DA0140C0997FA8 +:10427000977F9093DA0138C08091DA0182FB222780 +:1042800020F991E0922790FB82F98093DA0199233B +:1042900059F18091DA0181608093DA0125C0809123 +:1042A000DA0183FB222720F991E0922790FB83F922 +:1042B000ECCF895301C08D5141E050E060E070E0E7 +:1042C0008A019B0104C0000F111F221F331F8A9512 +:1042D000D2F7C901B80104C061E070E080E090E06D +:1042E0000E9443180E94831481E001C080E01F9166 +:1042F0000F91089580E0089580E00895CF93C82F2E +:104300008091EA01813079F018F08230E9F187C0BC +:10431000E0910E01F0910F018081813169F08232CC +:1043200009F07FC009C0E0910E01F0910F0180817A +:10433000813111F0823261F48C2F0E947A21811137 +:1043400004C08C2F0E94B3201DC081E090E01AC0F1 +:104350008C2F0E947C21811114C0C43179F048F463 +:10436000CB3079F0C03109F060C082E08093EA017F +:1043700008C0C93219F0C83321F057C01092EA01C1 +:1043800054C081E0817053C0C93289F118F5C4313D +:1043900071F1A8F4C73009F046C08AE08093150196 +:1043A00094E19093140193E0909313018093120190 +:1043B00088E08093110188E28093100134C0CE51CF +:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB +:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC +:1043E00013C0C13579F0C235F1F461E00DC08091A0 +:1043F000E901882319F01092E90115C081E080934A +:10440000EA0115C061E006C08091E9010E94ED1F3C +:104410000AC06AE08091E9010E94632004C0109202 +:10442000EA0180E004C081E002C080E0ABCFCF9120 +:104430000895E1E8F0E08081886080838081816078 +:1044400080838FB7F89493E09093890090ED9093D8 +:1044500088008FBF0895EFE6F0E08081826080835E +:104460000895EFE6F0E080818D7F80830895EFE688 +:10447000F0E0908182E08927808308951F920F9257 +:104480000FB60F9211242F933F934F935F936F9327 +:104490007F938F939F93AF93BF93EF93FF938091FD +:1044A000EB019091EC0101969093EC018093EB016C +:1044B000811103C082E00E94E308E091EC01E695DF +:1044C000E695F0E0EC54FB4FE4918091EB018E1304 +:1044D00003C080E00E94E308FF91EF91BF91AF918C +:1044E0009F918F917F916F915F914F913F912F910C +:1044F0000F900FBE0F901F90189504D06894B111C3 +:104500008DC0089570D088F09F5790F0B92F9927EB +:10451000B751A0F0D1F0660F771F881F991F1AF0CE +:10452000BA95C9F712C0B13081F077D0B1E00895E3 +:1045300074C0672F782F8827B85F39F0B93FCCF364 +:10454000869577956795B395D9F73EF490958095C4 +:10455000709561957F4F8F4F9F4F0895E89409C0E4 +:1045600097FB3EF490958095709561957F4F8F4FA6 +:104570009F4F9923A9F0F92F96E9BB279395F695BC +:10458000879577956795B795F111F8CFFAF4BB0F3A +:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E +:1045A000882311F096E911C0772321F09EE8872F28 +:1045B000762F05C0662371F096E8862F70E060E0E4 +:1045C0002AF09A95660F771F881FDAF7880F96955D +:1045D000879597F9089557FD9058440F551F59F046 +:1045E0005F3F71F04795880F97FB991F61F09F3FE0 +:1045F00079F087950895121613061406551FF2CF09 +:104600004695F1DF08C0161617061806991FF1CF58 +:1046100086957105610508940895E894BB2766277F +:104620007727CB0197F908950BD078C069D028F08F +:104630006ED018F0952309F05AC05FC01124EECF58 +:10464000CADFA0F3959FD1F3950F50E0551F629FED +:10465000F001729FBB27F00DB11D639FAA27F00DDB +:10466000B11DAA1F649F6627B00DA11D661F829F02 +:104670002227B00DA11D621F739FB00DA11D621FE7 +:10468000839FA00D611D221F749F3327A00D611D04 +:10469000231F849F600D211D822F762F6A2F1124E6 +:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39 +:1046B000BB1F661F771F881F91505040A9F79E3F70 +:1046C000510570F014C0AACF5F3FECF3983EDCF3C5 +:1046D000869577956795B795F795E7959F5FC1F7AD +:1046E000FE2B880F911D9695879597F9089597F958 +:1046F0009F6780E870E060E008959FEF80EC089588 +:1047000000240A94161617061806090608950024B0 +:104710000A9412161306140605060895092E03942A +:10472000000C11F4882352F0BB0F40F4BF2B11F49E +:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF +:10474000072E16F4009407D077FD09D00E94B923F4 +:1047500007FC05D03EF4909581959F4F0895709584 +:1047600061957F4F0895EE0FFF1F0590F491E02DA6 +:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8 +:10478000B70710F0A61BB70B881F991F5A95A9F7FA +:1047900080959095BC01CD010895F999FECF92BD09 +:1047A00081BDF89A992780B50895A8E1B0E042E06C +:1047B00050E00C94F523262FF999FECF92BD81BDD0 +:1047C000F89A019700B4021639F01FBA20BD0FB64F +:1047D000F894FA9AF99A0FBE08950196272F0E942D +:1047E000DC230C94DB23DC01CB01FC01F999FECF27 +:1047F00006C0F2BDE1BDF89A319600B40D92415069 +:0A4800005040B8F70895F894FFCF78 +:10480A000220E508730950091C09E8080101C701DB +:10481A0028080A03140A3F4D363975042804F2039E +:10482A00B9034C0365037E039703010203040506DB +:04483A000708090062 +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/kines-ish/keymap.c b/keyboards/ergodox_ez/keymaps/kines-ish/keymap.c new file mode 100644 index 000000000..5063c99f2 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/kines-ish/keymap.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/keyboards/ergodox_ez/keymaps/kines-ish/readme.md b/keyboards/ergodox_ez/keymaps/kines-ish/readme.md new file mode 100644 index 000000000..5d39a0590 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/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/keyboards/ergodox_ez/keymaps/mpiechotka/compiled.hex b/keyboards/ergodox_ez/keymaps/mpiechotka/compiled.hex new file mode 100644 index 000000000..35a56dd4c --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/mpiechotka/compiled.hex @@ -0,0 +1,1181 @@ +:100000000C9402030C9446030C9446030C94460390 +:100010000C9446030C9446030C9446030C9446033C +:100020000C9446030C9446030C941C0E0C94EE0E98 +:100030000C9446030C9446030C9446030C9446031C +:100040000C9446030C94F8220C9446030C9446033B +:100050000C9446030C948B1C0C9446030C9446039E +:100060000C9446030C9446030C9446030C944603EC +:100070000C9446030C9446030C9446030C944603DC +:100080000C9446030C9446030C9446030C944603CC +:100090000C9446030C9446030C9446030C944603BC +:1000A0000C9446030C9446030C9446035B0F7D0F9F +:1000B0006B107D0F6B10C20FE50F6B103A104D10D7 +:1000C0001C131C134B134B138113A113D214D21402 +:1000D000AC13D2145C145C14C314D214D214CC1418 +:1000E0006914691469146914691469146914691428 +:1000F0006914691469146914691469146914691418 +:100100007B1488148F149614A0140147024774328C +:10011000014702477432012102217432012802286A +:10012000000147024774320147024774320120023E +:100130002074320128022800014702477432014727 +:1001400002477432011F021F743201280228000185 +:100150004702477432014702477432011E021E747F +:10016000320128022800000001C002C003C004C000 +:1001700005C0018C028C2E004C002900E1003542A4 +:1001800000001E00140004001D0034004D421F003A +:100190001A0015001B00E1042A7120000900160056 +:1001A000060050002C7221001300170019004F00A8 +:1001B0004A0022000A00070005000000E20050008B +:1001C000025400002E00000001204F0002540000E5 +:1001D0002D000000E20023000D000B000E000000C7 +:1001E000E60024000F001100100052004B00250013 +:1001F0001800080036005100287226001C000C0070 +:1002000037002F002B7127003300120038713000A7 +:100210004E432D0031003400E500004200002E0066 +:100220004C002900E100354200001E0014000400CB +:100230001D0034004D421F001A0016001B00E1048F +:100240002A71200008000700060050002C722100CF +:100250001500090019004F004A00220017000A008B +:1002600005000000E2005000025400002E000000D3 +:1002700001204F00025400002D000000E200230086 +:100280001C000B0011000000E600240018000D0007 +:10029000100052004B0025000C000E0036005100EB +:1002A0002872260012000F0037002F002B71270044 +:1002B00013003300387130004E432D0031003400FC +:1002C000E500004200000100010001000100010002 +:1002D00000003A001E0220022202010001003B0041 +:1002E0001F0221022302010001003C002F0226020E +:1002F0002F00010001003D00300227023000010004 +:1003000001003E003102350035020000010001000D +:1003100001000000010000000100010001000000D8 +:100320000100000001003F005200510024020000C3 +:1003300001004000240021001E00010001004100D6 +:10034000250022001F003700010042002600230084 +:10035000200027000100430025022E0231002E005C +:100360000100440045000100010001000000000000 +:100370000000000000000000000000000620022035 +:100380000000000001000000072003200000000022 +:100390000100000000000420000000000100000037 +:1003A0000000052000000000010000000000000027 +:1003B000000000000100000000000000000000003C +:1003C000010000000000000000000000010000002B +:1003D000000000000000000001000000000000001C +:1003E000000000000100000000000000000000000C +:1003F00001000000000000000000000001000000FB +:1004000000000000000000000100000000000000EB +:1004100000000000000016034500720067006F0036 +:1004200044006F007800200045005A0000001603C9 +:100430004500720067006F0044006F0078002000E4 +:1004400045005A0000000403090409026D0004017C +:1004500000A0FA09040000010301010009211101B3 +:100460000001223F000705810308000A090401007A +:100470000103010200092111010001224D000705BD +:10048000820308000A090402000103000000092198 +:10049000110100012236000705830308000A090440 +:1004A00003000103000000092111010001223900AD +:1004B000070584031000011201100100000008ED7F +:1004C000FE071301000102000105010906A1010553 +:1004D0000719E029E7150025019508750181020536 +:1004E000081901290595057501910295017503917A +:1004F00001050719002977150025019578750181F7 +:1005000002C005010980A101850216010026B7007D +:100510001A01002AB700751095018100C0050C0969 +:1005200001A1018503160100269C021A01002A9CE4 +:1005300002751095018100C005010902A1010901A0 +:10054000A100050919012905150025019505750169 +:100550008102950175038101050109300931158179 +:10056000257F95027508810609381581257F95013B +:1005700075088106050C0A38021581257F950175DD +:10058000088106C0C005010906A101050719E02977 +:10059000E71500250195087501810295017508810F +:1005A0000105081901290595057501910295017547 +:1005B0000391010507190029FF150025FF95067510 +:1005C000088100C0000000000000000000000001E1 +:1005D0000204060A0F17202C3A4A5D71879DB3C7A3 +:1005E000DAE9F5FCFFFCF5E9DAC7B39D87715D4AEE +:1005F0003A2C20170F0A0604020100000000000038 +:100600000000000011241FBECFEFDAE0DEBFCDBF37 +:1006100004B603FE24C08091FB019091FC01A091DF +:10062000FD01B091FE018730904BA740B04BB9F46B +:100630001092FB011092FC011092FD011092FE013C +:1006400014BE84B7877F84BF88E10FB6F894809387 +:100650006000109260000FBEE0E0FFE3099511E03A +:10066000A0E0B1E0EEE7F9E402C005900D92A433FA +:10067000B107D9F711E0A4E3B1E001C01D92AB3F8F +:10068000B107E1F70E94600B0C94BD240C940000AC +:100690001092B9008AE08093B800089594EA90938C +:1006A000BC009091BC0097FFFCCF9091B900987F5F +:1006B000983021F0903111F081E008958093BB00D3 +:1006C00084E88093BC008091BC0087FFFCCF8091C0 +:1006D000B900887F883111F0803471F780E0089587 +:1006E00084E98093BC008091BC0084FDFCCF089518 +:1006F0008093BB0084E88093BC008091BC0087FF9E +:10070000FCCF9091B900987F81E0983209F480E0A5 +:10071000089584E88093BC008091BC0087FFFCCFE3 +:100720008091BB00089580910101811115C080E482 +:100730000E944E038093010181110CC082E10E944E +:10074000780380930101811105C08FEF0E94780327 +:10075000809301010E94700384B1807F84B985B1C8 +:10076000807F85B98AB1837F8AB98BB1837F8BB94A +:100770003E98469808950E944E05809301010E947C +:10078000930380B38C7080BB81B3836F81BBA5E37F +:10079000B1E0E3E4F1E08EE08E0F11921D928E1332 +:1007A000FCCF0C943805BF92CF92DF92EF92FF926C +:1007B0000F931F93CF93DF9380910101882379F0EA +:1007C000809134018F5F80933401811108C00E94B1 +:1007D0004E0580930101811102C00E94E00405E3EF +:1007E00011E0C0E0D0E0DD24D39482E0C82EEE24F6 +:1007F000E394F12CC730D10500F5809101018111FE +:1008000064C080E40E944E0380930101811112C0F4 +:1008100082E10E9478038093010181110BC0C7011E +:100820000C2E01C0880F0A94EAF780950E94780385 +:10083000809301010E94700348C0CA30A1F028F4DF +:10084000C83059F0C93061F005C0CC3089F070F083 +:10085000CD3089F0209A289810C0219A29980DC08F +:10086000229A2A980AC0239A2B9807C0529A01C04C +:10087000539A5B9802C03E9A469890EA9A95F1F78F +:100880009FB1799902C082E001C080E091709D25FE +:10089000982B7C9902C084E001C080E0892B7D996F +:1008A00002C038E001C030E0832B7E9902C020E115 +:1008B00001C020E0822B9FB19095991F9927991F25 +:1008C0009295990F907E892B0FC080910101811123 +:1008D00049C080E40E944E0380930101882379F18E +:1008E000B12C0E9470038B2DF8019081981719F09C +:1008F0008083C09200010E94930321960F5F1F4FD7 +:10090000CE30D10509F076CF80910001882361F1C6 +:10091000815080930001882339F08FE99FE001978F +:10092000F1F700C0000020C0A3E4B1E0E5E3F1E08E +:10093000CF01825F91919D938E13FCCF15C083E10F +:100940000E947803809301018111CACF81E40E9443 +:100950004E03809301018111C3CF0E948903B82EF9 +:10096000B094BFCF80E0C0CF0E94DE0481E0DF9171 +:10097000CF911F910F91FF90EF90DF90CF90BF909C +:100980000895E82FF0E0ED5BFE4F80810895089513 +:100990000F931F93CF93DF93C3E4D1E010E00C2FAC +:1009A000025F899190E00E94B11B180F0C13F9CFE0 +:1009B000812FDF91CF911F910F9108950C94E00545 +:1009C00056985E9825982D9826982E9827982F98B7 +:1009D0008FEF90E0909389008093880090938B0034 +:1009E00080938A0090938D0080938C00259A2D9A95 +:1009F0002FEF80E792E0215080409040E1F700C067 +:100A00000000269A2E9A2FEF80E792E02150804036 +:100A10009040E1F700C00000279A2F9A2FEF80E75F +:100A200092E0215080409040E1F700C000002598FE +:100A30002D982FEF80E792E0215080409040E1F721 +:100A400000C0000026982E982FEF80E792E02150FA +:100A500080409040E1F700C0000027982F985698FA +:100A60005E9825982D9826982E9827982F98089567 +:100A700089EA8093800089E08093810024982C98F3 +:100A80003F988AB18F748AB96E98479A8BB1806B00 +:100A90008BB9769A0E94E0040C94DF0580E2809383 +:100AA00001018091510181110EC00E94480381E033 +:100AB000809351012FEF83ED90E3215080409040CF +:100AC000E1F700C0000080E40E944E038093010122 +:100AD00081112EC00E94780380930101811128C0EA +:100AE0000E94780380930101811122C08FE30E944C +:100AF00078038093010181111BC00E94700380E480 +:100B00000E944E0380930101811112C08CE00E946B +:100B100078038093010181110BC00E9478038093B8 +:100B20000101811105C08FE30E94780380930101C8 +:100B30000E947003809101010895FC01623021F14F +:100B400028F4662349F0613071F036C0643041F119 +:100B500008F1653059F130C08281882311F085EEAB +:100B60000CC085EE0EC08281882351F085EE0E9474 +:100B7000C01185EE0E94881283EE0E94C0111CC035 +:100B800083EE0E94881218C08281811115C08FE403 +:100B900091E00895828181110FC088E391E008956A +:100BA0008281811109C081E291E0089582818111E1 +:100BB00003C08AE091E0089580E090E008950895F0 +:100BC0006091BD017091BE018091BF019091C00103 +:100BD0000E94BD1B56985E9825982D9826982E98B1 +:100BE00027982F98823019F0833021F00895259AA4 +:100BF0002D9A0895269A2E9A089581E0089581E00D +:100C000008950C94FF0508950F931F93CF93DF93DE +:100C10008C01FC01C081D181CE010E94361ABE0137 +:100C20000E94AD06EC01B8010E940106882309F478 +:100C30008DC0F8018281882309F44AC080915D014A +:100C400081111FC0C431F0E5DF0709F051C00E94D7 +:100C5000030681E080935D010E94551C90935C0126 +:100C600080935B011092540110925601109255012D +:100C7000109258011092570110925A011092590186 +:100C800065C080915B0190915C010E94611C883C71 +:100C9000910570F480915401E82FF0E0EE0FFF1FF2 +:100CA000EB5AFE4FD183C0838F5F809354014EC0B7 +:100CB000C43880E5D80721F0C538D04501F13AC0E5 +:100CC000F8018281882341F01092520182E01EC017 +:100CD000C438E0E5DE0759F580915201811106C064 +:100CE00086E20E94C01186E20E94881282E01CC047 +:100CF000C438F0E5DF0741F3C538D045D9F4F80131 +:100D00008281882331F01092530180E20E94D71231 +:100D10001DC080915301811106C087E20E94C0115D +:100D200087E20E94881280E20E94DE120FC0C5385E +:100D3000D04529F381E08093520180935301C8018B +:100D4000DF91CF911F910F910C94FD0580E0DF9111 +:100D5000CF911F910F910895089596E0799FF0012A +:100D6000112494E5899FE00DF11D1124E60FF11D7A +:100D7000EE0FFF1FEA58FE4F859194910895880F5A +:100D8000991FFC01EA51F040859194910895880FD4 +:100D9000991FFC01EA59FE4F8591949108950F9394 +:100DA0001F93CF93DF93EC01811520E3920750F559 +:100DB000C11580E2D80708F0C3C0CB3BD10590F441 +:100DC000C83AD10508F06AC0C53AD10508F05BC041 +:100DD000C430D10508F0D0C1219709F0CAC101E0A3 +:100DE00010E00AC2CF3FD10511F008F0C5C1C03FE5 +:100DF000D10508F0A2C0CE01805E9109089708F4E1 +:100E0000BBC1B7C1C13090E5D90709F4A2C020F534 +:100E1000C0318FE4D80770F4C11590E4D90708F009 +:100E200094C0C11521E3D20708F0A3C1DD278E01CC +:100E3000106CE2C1C115D04509F09BC10E943D155F +:100E40008FEF94E32CE0815090402040E1F700C008 +:100E500000000E94B01CD0C1C11597E5D90758F415 +:100E6000C03121E5D20708F01CC1C43180E5D807A4 +:100E700008F475C07EC1CE0190578115904108F0ED +:100E800078C1DF7073C1C53AD10509F477C1C63A9C +:100E9000D10509F076C102E810E4AEC1C83AD10527 +:100EA00009F472C1C93AD10509F471C1CA3AD10530 +:100EB00009F470C1CB3AD10509F46FC1CC3AD10520 +:100EC00009F46EC1CD3AD10509F46DC1C03BD1051D +:100ED00009F46CC1CE3AD10509F46BC1CF3AD10502 +:100EE00009F46AC1C13BD10509F469C1C23BD1050E +:100EF00009F468C1C33BD10509F467C1C43BD105FE +:100F000009F466C1C53BD10509F465C1C63BD105ED +:100F100009F464C1C73BD10509F463C1C83BD105DD +:100F200009F462C1C93BD10509F461C1CA3BD105CD +:100F300009F460C100E014E45FC18E0110655CC17A +:100F4000CE019F700E94C70658C1DF708E01106AE3 +:100F500053C18091DA0181608093DA014DC10E9412 +:100F6000551E811102C00E943B1E0E94721E90E01D +:100F70009093FB018093FA01C23080E5D80721F4F9 +:100F80008091FA01816086C0C43090E5D90721F4D0 +:100F90008091FA0182607EC0C63020E5D20721F43C +:100FA0008091FA01846076C0C83080E5D80719F4D2 +:100FB0008091FA0127C0CA3090E5D90721F48091C9 +:100FC000FA01806167C0CC3020E5D20721F480911E +:100FD000FA0180625FC0CE3080E5D80721F48091AD +:100FE000FA01806457C0C03190E5D90721F480919F +:100FF000FA0180684FC0C23120E5D20729F4809100 +:10100000FA018460886046C0C33080E5D80721F4C7 +:101010008091FA018E7F3EC0C53090E5D90721F45A +:101020008091FA018D7F36C0C73020E5D20721F4C8 +:101030008091FA018B7F2EC0C93080E5D80719F462 +:101040008091FA0126C0CB3090E5D90721F4809138 +:10105000FA018F7E1FC0CD3020E5D20721F48091A8 +:10106000FA018F7D17C0CF3080E5D80721F4809139 +:10107000FA018F7B0FC0C13190E5D90721F480912F +:10108000FA018F7707C0C331D04531F48091FA015E +:101090008B7F877F8093FA018091FA010E94761EF0 +:1010A000ABC08D2F99278F70992781309105D9F486 +:1010B0009E012370332702C0880F991F2A95E2F7FB +:1010C0009C688E0144E0000F111F4A95E1F700274C +:1010D0001370802B912B53E0CC0FDD1F5A95E1F755 +:1010E000C076DD272FC08230910531F4DC2FCC276C +:1010F0008E01016F106A80C08330910569F4CE01C2 +:101100008370992701E010E002C0000F111F8A953B +:10111000E2F7C8019C680FC084309105B9F4CE0194 +:101120008370992701E010E002C0000F111F8A951B +:10113000E2F7C8019A6823E0CC0FDD1F2A95E1F79A +:10114000C07ED7708C010C2B1D2B56C085309105AD +:1011500031F4DC2FCC278E01046F106A4DC0069746 +:1011600009F04AC0CF71DD27DC2FCC278E01106239 +:1011700043C000E010E040C08E013EC001E810E432 +:101180003BC003E810E438C002EE14E435C009EEB9 +:1011900014E432C00AEE14E42FC005EB14E42CC0B2 +:1011A00006EB14E429C007EB14E426C00CEC14E4AD +:1011B00023C00DEC14E420C003E815E41DC00AE8C8 +:1011C00015E41AC002E915E417C004E915E414C0D7 +:1011D00001E216E411C003E216E40EC004E216E4D4 +:1011E0000BC005E216E408C006E216E405C007E2FB +:1011F00016E402C00AE216E4C801DF91CF911F9104 +:101200000F91089596E0799FF001112494E5899F4C +:10121000E00DF11D1124E60FF11DEE0FFF1FEA583E +:10122000FE4F85919491803E9105E0F4803C9105BC +:1012300058F58133910509F46FC048F4893291055E +:1012400009F463C08A32910509F46DC072C0893314 +:101250009105E9F082389105D1F08533910509F4C3 +:101260004DC067C0833E910581F138F4803E910501 +:10127000B9F0823E9105D9F05CC0863E910561F1DE +:10128000873E9105A1F155C00E94BF0608952091A7 +:10129000FA0120FD02C021FF4CC080EE90E049C061 +:1012A0008091FA0180FFF9CF89E390E042C08091FC +:1012B000FA0182FF0EC08091FA0184FF03C080E032 +:1012C00090E037C083EE90E034C08091FA0182FF55 +:1012D000F2CF82EE90E02DC08091FA0183FF0BC027 +:1012E0008091FA0184FDEBCF87EE90E022C08091DF +:1012F000FA0183FFF5CF86EE90E01BC08091FA01E2 +:1013000085FF07C089E290E014C08091FA0185FF53 +:10131000F9CF85E390E00DC08091FA0186FF07C008 +:101320008AE290E006C08091FA0186FFF9CF81E35E +:1013300090E00E94CF06089508950C949C09809136 +:101340006E010895CF93DF9300D01F92CDB7DEB723 +:101350009C018091F101843019F593E099833B83DE +:101360002A839093E9008FEF9091E800815095FDDA +:1013700006C095ED9A95F1F700008111F5CF8091A7 +:10138000E80085FF0DC040E050E063E070E0CE0172 +:1013900001960E940C0C8091E8008E778093E80003 +:1013A0000F900F900F90DF91CF910895CF93DF931F +:1013B00000D01F92CDB7DEB72091F101243021F586 +:1013C00022E029839B838A8383E08093E9008FEF67 +:1013D0009091E800815095FD06C095ED9A95F1F742 +:1013E00000008111F5CF8091E80085FF0DC040E03D +:1013F00050E063E070E0CE0101960E940C0C8091F9 +:10140000E8008E778093E8000F900F900F90DF91A7 +:10141000CF9108952091F1012430F1F422E020933E +:10142000E9002FEF3091E800215035FD06C035ED81 +:101430003A95F1F700002111F5CF2091E80025FF42 +:101440000BC040E050E065E070E00E940C0C809121 +:10145000E8008E778093E8000895CF93DF93EC0146 +:101460009091F101943009F046C080910C018823DD +:10147000D9F080910D018823B9F09093E9008FEFA6 +:101480009091E800815095FD06C095E19A95F1F79D +:1014900000008111F5CF8091E80085FF2CC040E06D +:1014A00050E060E170E017C081E08093E9008FEFC9 +:1014B0009091E800815095FD06C095ED9A95F1F761 +:1014C00000008111F5CF8091E80085FF14C040E055 +:1014D00050E068E070E0CE010E940C0C8091E800C2 +:1014E0008E778093E80080E1FE01AEE5B1E00190E7 +:1014F0000D928A95E1F7DF91CF9108958091F001E7 +:10150000811109C00E94A10D0E94FE0D8091E20090 +:1015100084608093E20008951092F0010895089588 +:101520000C94E5220E94461C0E94EB220E94A4100B +:101530000C949D0942E061EC81E00E941B0D42E0A9 +:1015400061EC82E00E941B0D42E061EC83E00E94AE +:101550001B0D42E161EC84E00C941B0D8091F301C2 +:10156000833009F455C030F4813071F0823009F4D1 +:101570008EC008958A3009F47AC08B3009F460C0B7 +:10158000893009F09CC020C08091F201813A09F0B5 +:1015900096C08091E800877F8093E8008091F601F3 +:1015A0009091F701892B21F460E18EE591E003C071 +:1015B00060E080E090E070E00E94570C8091E800CD +:1015C0008B778093E80008958091F201813209F0D1 +:1015D00076C08091F6019091F701009719F003977A +:1015E00009F06DC08091E800877F8093E8008091CA +:1015F000E80082FD05C08091F1018111F8CF5FC044 +:101600008091F10080936E018091E8008B7753C048 +:101610008091F201813A09F052C08091F6019091D7 +:10162000F701892B09F04BC08091E800877F8093F8 +:10163000E8008091E80080FFFCCF80910C0136C06B +:101640008091F2018132D9F58091F6019091F701F4 +:10165000892BA9F58091E800877F8093E8000E949C +:10166000500D8091F40180930C010C943D158091F4 +:10167000F201813221F58091E800877F8093E800B4 +:101680000E94500D8091F50180936F010895809123 +:10169000F201813AA1F48091E800877F8093E8000D +:1016A0008091E80080FFFCCF80916F018093F10072 +:1016B0008091E8008E778093E8000C94500D089597 +:1016C00084B7877F84BF88E10FB6F8948093600069 +:1016D000109260000FBE90E080E80FB6F8948093FF +:1016E0006100909361000FBE0E94F3100E94A10D53 +:1016F0000E94FE0D8091E20084608093E200789465 +:101700000E9484100E94F51082E091E00E949F10D8 +:101710000E94D3228091F101853069F40E940D1C52 +:101720008091EF018823B1F30E94381C882391F344 +:101730000E94F60BEFCF0E94FB10ECCF292F33272E +:1017400023303105C9F064F42130310581F02230B5 +:10175000310509F043C08DE690E02AE434E042C050 +:1017600021323105F1F02232310541F137C082E1F9 +:1017700090E027EB34E036C099278130910541F0A5 +:101780008230910541F0892B49F5E6E4F4E005C08B +:10179000EEE2F4E002C0E6E1F4E0849190E09F0123 +:1017A00021C06430D8F4E62FF0E0EE0FFF1FEE5DAD +:1017B000FE4F2081318189E090E014C0643070F4E4 +:1017C00070E0FB01EE0FFF1FE65EFE4F20813181CE +:1017D000FB01EA5EFE4F808190E004C080E090E073 +:1017E00020E030E0FA0131832083089580E189BD53 +:1017F00082E189BD09B400FEFDCF8091D8008F7DC4 +:101800008093D8008091E00082608093E000809116 +:10181000E00081FDFCCF0895CF92DF92EF92FF921E +:101820000F931F93CF93DF93EC018B016A010E940A +:101830006F0D811133C0C114D10439F0F6018081DC +:101840009181081B190BC80FD91FE12CF12C011530 +:10185000110519F18091E80085FD16C08091E8001E +:101860008E778093E800C114D10449F0F60180819D +:101870009181E80EF91EF182E08285E00FC00E949E +:101880006F0D882321F30AC089918093F1000150E4 +:101890001109FFEFEF1AFF0ADACF80E0DF91CF9155 +:1018A0001F910F91FF90EF90DF90CF9008952091BE +:1018B000F8013091F9012617370748F061157105D5 +:1018C00039F42091E8002E772093E80001C0B90197 +:1018D00040E061157105A9F12091F101222309F47D +:1018E00043C0253009F442C02091E80023FD40C0E8 +:1018F0002091E80022FD32C02091E80020FFE9CFCE +:101900004091F3002091F20030E0342BFC01CF0134 +:101910006115710559F02830310540F481918093AB +:10192000F100615071092F5F3F4FF1CF41E0283046 +:10193000310509F040E02091E8002E772093E8007F +:10194000C8CF4111C9CF0AC08091F101882361F04D +:10195000853061F08091E80083FD0AC08091E80045 +:1019600082FFF2CF80E0089582E0089583E0089539 +:1019700081E008952091F8013091F9012617370789 +:1019800048F06115710539F42091E8002E77209315 +:10199000E80001C0B901FC0120E06115710591F179 +:1019A0008091F101882309F440C0853009F43FC0DB +:1019B0008091E80083FD3DC08091E80082FD2FC04A +:1019C0008091E80080FFE9CF2091F3008091F20040 +:1019D00090E0922B6115710559F08830910540F423 +:1019E00024912093F1003196615071090196F2CF54 +:1019F00021E0089709F020E08091E8008E7780933D +:101A0000E800CBCF2111CCCF0AC08091F10188230F +:101A100061F0853061F08091E80083FD0AC080911B +:101A2000E80082FFF2CF80E0089582E0089583E02D +:101A3000089581E00895982F973058F59093E90024 +:101A4000981739F07091EC002091ED005091F00062 +:101A500003C0242F762F50E021FF19C03091EB00F6 +:101A60003E7F3093EB003091ED003D7F3093ED00F1 +:101A70003091EB0031603093EB007093EC002093D9 +:101A8000ED005093F0002091EE0027FF07C09F5F0C +:101A9000D3CF8F708093E90081E0089580E00895AE +:101AA0008091F20187FF11C08091E80082FD05C09E +:101AB0008091F1018111F8CF11C08091E8008B77FE +:101AC0000BC08091F101882349F08091E80080FFEC +:101AD000F8CF8091E8008E778093E80008952091F8 +:101AE000E4003091E50095E64091EC00842F817090 +:101AF00040FF22C08091E80080FD1CC08091F10170 +:101B0000882391F0853091F08091EB0085FD10C025 +:101B10004091E4005091E5004217530729F39A01E0 +:101B2000915011F784E0089582E0089583E00895CC +:101B300081E0089580E008954091E80042FFDECF03 +:101B400008950E940F0E0E94170EE0EEF0E08081D3 +:101B500081608083E8EDF0E080818F77808319BC1D +:101B6000A7EDB0E08C918E7F8C9380818F7E8083F7 +:101B70001092F00108950F931F93CF93DF930E946B +:101B80000F0E0E94170EC8EDD0E088818F778883F2 +:101B900088818068888388818F7D888319BC1092B2 +:101BA000F1011092ED011092EF011092EE0100EEA2 +:101BB00010E0F80180818B7F808388818160888339 +:101BC00042E060E080E00E941B0DE1EEF0E08081E9 +:101BD0008E7F8083E2EEF0E080818160808380816F +:101BE00088608083F80180818E7F80838881806116 +:101BF0008883DF91CF911F910F910895E8EDF0E078 +:101C000080818F7E8083E7EDF0E08081816080833A +:101C100084E082BF81E08093F0010C94BB0DE8ED7D +:101C2000F0E080818E7F80831092E2000895109210 +:101C3000DA001092E10008951F920F920FB60F92F2 +:101C400011242F933F934F935F936F937F938F93C1 +:101C50009F93AF93BF93EF93FF938091E10082FF37 +:101C60000BC08091E20082FF07C08091E1008B7F72 +:101C70008093E1000E9483108091DA0080FF1FC0F2 +:101C80008091D80080FF1BC08091DA008E7F809306 +:101C9000DA008091D90080FF0DC080E189BD82E12A +:101CA00089BD09B400FEFDCF81E08093F1010E945F +:101CB0007E0A05C019BC1092F1010E948C0A809125 +:101CC000E10080FF19C08091E20080FF15C0809183 +:101CD000E2008E7F8093E2008091E2008061809339 +:101CE000E2008091D80080628093D80019BC85E022 +:101CF0008093F1010E94900A8091E10084FF30C03E +:101D00008091E20084FF2CC080E189BD82E189BD21 +:101D100009B400FEFDCF8091D8008F7D8093D8005C +:101D20008091E1008F7E8093E1008091E2008F7EC0 +:101D30008093E2008091E20081608093E2008091D4 +:101D4000ED01882311F084E007C08091E30087FD56 +:101D500002C081E001C083E08093F1010E94920AF9 +:101D60008091E10083FF29C08091E20083FF25C0BC +:101D70008091E100877F8093E10082E08093F10110 +:101D80001092ED018091E1008E7F8093E1008091BF +:101D9000E2008E7F8093E2008091E2008061809378 +:101DA000E20042E060E080E00E941B0D8091F000C4 +:101DB00088608093F0000E948F0AFF91EF91BF919D +:101DC000AF919F918F917F916F915F914F913F91D3 +:101DD0002F910F900FBE0F901F9018951F920F928A +:101DE0000FB60F9211242F933F934F935F936F93EE +:101DF0007F938F939F93AF93BF93CF93DF93EF9393 +:101E0000FF93C091E900CF708091EC00D82FD17082 +:101E100080FDD0E81092E9008091F000877F8093E8 +:101E2000F00078940E94320F1092E9008091F00047 +:101E300088608093F000CD2BCF70C093E900FF91B4 +:101E4000EF91DF91CF91BF91AF919F918F917F9152 +:101E50006F915F914F913F912F910F900FBE0F9017 +:101E60001F9018951F93CF93DF93CDB7DEB7AA9736 +:101E70000FB6F894DEBF0FBECDBFE2EFF1E088E011 +:101E80008E0F9091F10091938E13FBCF0E94AE0ABA +:101E90008091E80083FF1FC18091F2019091F301CE +:101EA000492F50E04A30510508F015C1FA01EA5AAD +:101EB000FF4F0C946D24803881F0823809F00BC1FB +:101EC0008091F6018F708093E9008091EB0085FB93 +:101ED000882780F91092E90006C08091EE01909168 +:101EE000EF01911182609091E800977F9093E80054 +:101EF0008093F1001092F100C8C0282F2D7F09F0C7 +:101F0000EAC0882319F0823061F0E5C08091F401C5 +:101F1000813009F0E0C0933009F080E08093EF0158 +:101F20002BC08091F401811127C08091F6018F7040 +:101F300009F4D1C08093E9002091EB0020FF1CC080 +:101F4000933021F48091EB00806214C09091EB00FB +:101F500090619093EB0021E030E0A90102C0440FB2 +:101F6000551F8A95E2F74093EA001092EA008091AB +:101F7000EB0088608093EB001092E9008091E8000C +:101F8000877F86C08111A7C01091F4011F778091CF +:101F9000E3008078812B8093E3008091E800877FC5 +:101FA0008093E8000E94500D8091E80080FFFCCFF4 +:101FB0008091E30080688093E300111102C082E009 +:101FC00001C083E08093F10186C08058823008F020 +:101FD00082C08091F4019091F5018C3D53E095070A +:101FE00079F583E08A838AE289834FB7F894DE012A +:101FF000139620E03EE051E2E32FF0E050935700CB +:10200000E49120FF03C0E295EF703F5FEF708E2FE9 +:1020100090E0EA3010F0C79601C0C0968D939D9372 +:102020002F5F243149F74FBF8091E800877F80936D +:10203000E8006AE270E0CE0101960E94570C14C0DD +:10204000AE014F5F5F4F6091F6010E949E0BBC0195 +:10205000009709F440C09091E800977F9093E800C2 +:1020600089819A810E94BA0C8091E8008B778093D5 +:10207000E80031C0803879F58091E800877F80934F +:10208000E8008091ED018093F1008091E8008E7767 +:102090008093E8000E94500D1EC081111CC09091D9 +:1020A000F4019230C0F48091E800877F8093E800CB +:1020B0009093ED010E94500D8091ED01811106C0B9 +:1020C0008091E30087FD02C081E001C084E080933D +:1020D000F1010E949A0A8091E80083FF0AC0809172 +:1020E000E800877F8093E8008091EB008062809316 +:1020F000EB00AA960FB6F894DEBF0FBECDBFDF91FE +:10210000CF911F9108950895CF938091F101882375 +:10211000A1F0C091E900CF709091EC00892F8170FF +:1021200090FD80E8C82B1092E9008091E80083FDC3 +:102130000E94320FCF70C093E900CF910895909321 +:102140007501809374010895E0917401F091750117 +:10215000309721F00190F081E02D099480E00895FE +:10216000E0917401F0917501309721F00280F381C4 +:10217000E02D09940895E0917401F0917501309774 +:1021800021F00480F581E02D0994089520917201D9 +:10219000309173018217930771F0909373018093CC +:1021A0007201E0917401F0917501309721F0068081 +:1021B000F781E02D0994089520917001309171010B +:1021C0008217930771F09093710180937001E091F1 +:1021D0007401F0917501309721F00084F185E02DB4 +:1021E0000994089508950C94F2100E944C1C0E94CA +:1021F000BB030C940E1D9F92AF92BF92CF92DF92C1 +:10220000EF92FF920F931F93CF93DF9300D000D0F4 +:1022100000D0CDB7DEB70E94D3030DE010E0AA24B2 +:10222000A394B12C902E802F0E94C10498012958AC +:102230003E4F6901F901F080F826A1F4015011091F +:1022400088F78FEF89838A831B820E94551C8160E7 +:10225000782F9D838C8349815A816B818D810E9467 +:1022600092112FC09091DA0191FF04C08E830E94D9 +:10227000C7048E8125E030E0A501022E01C0440F85 +:102280000A94EAF7E42E4F21C1F029839A828E2125 +:1022900091E009F490E09B830E94551C8160782FA7 +:1022A0009D838C8349815A816B818D810E9492111B +:1022B000F6018081E826E08204C021503109E0F671 +:1022C000BDCF0E94F51F109176010E94A41018172F +:1022D000B9F00E94A4108093760126960FB6F89468 +:1022E000DEBF0FBECDBFDF91CF911F910F91FF9049 +:1022F000EF90DF90CF90BF90AF909F900C949D098E +:1023000026960FB6F894DEBF0FBECDBFDF91CF91FA +:102310001F910F91FF90EF90DF90CF90BF90AF9003 +:102320009F900895CF93DF93CDB7DEB72B970FB66D +:10233000F894DEBF0FBECDBF4F83588769877A8779 +:102340008B87DE01119686E0FD0111928A95E9F7EF +:1023500085E0FE01379601900D928A95E1F749815B +:102360005A816B817C818D819E810E94DB172B9627 +:102370000FB6F894DEBF0FBECDBFDF91CF910895A9 +:10238000CF93882309F4C2C0C82F823859F40E9421 +:10239000A41081FDBBC089E30E94B51A0E94821B74 +:1023A00089E30CC0833879F40E94A41080FDAEC08C +:1023B00083E50E94B51A0E94821B83E50E94F71AEA +:1023C000CF910C94821B843859F40E94A41082FD92 +:1023D0009DC087E40E94B51A0E94821B87E4EECF5D +:1023E0008CEF8C0F813A48F48C2F0E943822811197 +:1023F0008DC08C2F0E94B51AE3CF80E28C0F8830FD +:1024000048F4C77081E001C0880FCA95EAF70E94BE +:102410003B1BD6CF8BE58C0F833078F4C53A29F07F +:10242000C63A31F083E890E005C081E890E002C050 +:1024300082E890E0CF910C94C61088E58C0F833130 +:1024400008F064C0C83A39F1C93A41F1CA3A49F1D1 +:10245000CB3A51F1CC3A59F1CD3A61F1C03B69F137 +:10246000CE3A71F1CF3A79F1C13B81F1C23B89F1AA +:10247000C33B91F1C43B99F1C53BA1F1C63BA9F126 +:10248000C73BB1F1C83BB9F1C93BC1F1CA3BC9F186 +:1024900080E090E038C082EE90E035C089EE90E0B8 +:1024A00032C08AEE90E02FC085EB90E02CC086EB26 +:1024B00090E029C087EB90E026C08CEC90E023C030 +:1024C0008DEC90E020C083E891E01DC08AE891E0A7 +:1024D0001AC082E991E017C084E991E014C081E25A +:1024E00092E011C083E292E00EC084E292E00BC061 +:1024F00085E292E008C086E292E005C087E292E0C1 +:1025000002C08AE292E0CF910C94DC10CF91089542 +:10251000882309F44BC0823859F40E94A41081FF2B +:1025200045C089E30E94B51A0E94821B89E30CC052 +:10253000833871F40E94A41080FF38C083E50E94A4 +:10254000B51A0E94821B83E50E94F71A0C94821B25 +:10255000843859F40E94A41082FF28C087E40E94A6 +:10256000B51A0E94821B87E4EFCF9CEF980F913A37 +:1025700058F390E2980F983050F4877091E001C0C2 +:10258000990F8A95EAF7892F0E94411BDFCF9BE5BF +:10259000980F933020F480E090E00C94C610885A95 +:1025A000833120F480E090E00C94DC1008958823BF +:1025B00021F00E943B1B0C94821B0895882321F07C +:1025C0000E94411B0C94821B08957F928F929F92D0 +:1025D000AF92BF92CF92DF92EF92FF920F931F9331 +:1025E000CF93DF931F92CDB7DEB77C01C62E772E37 +:1025F000FC01058102950F70128111110E94581B78 +:102600000E94AE1A882379F0112369F080E28C0DC4 +:10261000883048F082E00E94971A0E94AE1A91E03A +:10262000D82ED92601C0D12CE72DE295EF70F0E02D +:10263000E05AFF4F0C946D24872D807F072D0F707B +:10264000882311F00295007F112389F0002309F4FB +:1026500090C180E28C0D883020F4802F0E943B1BBB +:1026600003C0802F0E944B1B0E94821B82C18C2DB5 +:102670000E948812002309F495C180E28C0D8830F5 +:1026800020F4802F0E94411B03C0802F0E94511B09 +:102690000E94821B87C1972D907F872D8F7090326B +:1026A00011F08295807FCC2021F0F1E0CF16B1F0BF +:1026B0001EC0112349F0002309F414C1013009F0B0 +:1026C00011C10E946B1B6EC1002319F0013009F487 +:1026D00069C189830E946E1B89810AC1112321F07F +:1026E000023008F05FC1FEC001115CC101C11123BD +:1026F00021F0002309F4F6C03CC1002309F4F8C01E +:102700003EC1872D86958695837090E0009719F0DD +:10271000019761F047C1112321F08C2D972D937003 +:1027200002C080E090E00E94C6103CC1112321F05D +:102730008C2D972D937002C080E090E00E94DC10F9 +:1027400031C18C2D112319F00E94FD1E02C00E9480 +:10275000651F0E94EA1F26C1872D837009F052C0B1 +:10276000111120C18C2D829586958770880F880F56 +:102770009C2D9F70892E912CA12CB12C082E04C069 +:10278000880C991CAA1CBB1C0A94D2F7C4FE14C066 +:102790000FE010E020E030E0B901A80104C0440FD0 +:1027A000551F661F771F8A95D2F7CB01BA01609536 +:1027B00070958095909503C060E070E0CB01272D67 +:1027C00026952695237030E02230310569F02330BC +:1027D000310589F0682979298A299B292130310519 +:1027E00071F00E942319DEC0682979298A299B2962 +:1027F0000E943F19D7C00E942319C501B4010E944D +:102800000719D0C0112319F0872D817001C086955A +:10281000882309F4C7C08C2D829586958770880F10 +:10282000880F9C2D9F70892E912CA12CB12C082EE5 +:1028300004C0880C991CAA1CBB1C0A94D2F7C4FEC5 +:1028400014C00FE010E020E030E0B901A80104C09E +:10285000440F551F661F771F8A95D2F7CB01BA0127 +:10286000609570958095909503C060E070E0CB0115 +:10287000272D269526952370422F50E04230510592 +:1028800069F04330510589F0682979298A299B2903 +:102890004130510571F00E94FD1984C068297929E1 +:1028A0008A299B290E94191A7DC00E94FD19C50121 +:1028B000B4010E94E11976C08C2D90E0FC01E05E2D +:1028C000F109E531F10508F050C0E059FF4F0C94D3 +:1028D0006D240C2D0F70872D8F71112331F00E9404 +:1028E0007A19802F0E94D7125DC00E949B19802FF9 +:1028F0000E94DE1257C0112339F0011153C0872DF9 +:102900008F710E94C0194EC0023008F04BC0F7CF43 +:10291000112339F0872D8F710E947A1943C011233A +:10292000C9F3872D8F710E949B193CC0112329F098 +:10293000872D8F710E94651935C00E945B1932C0C6 +:10294000112351F0172D1F71812F0E947A1963E016 +:10295000812F0E948E1A26C081E00E94971A0230B1 +:1029600008F182E00E94971A1DC0112331F0002364 +:1029700089F28C2D0E94C01115C0002391F28C2D7C +:102980000E9488120FC0472D4F706C2DC7010E9406 +:102990009D050E947F1806C0472D4F706C2DC70102 +:1029A0000E94AC06DD20F9F00E948A1A80FD1BC04F +:1029B000F70112820E94841A0E947A19C7010E94AC +:1029C00002150E94841A0F90DF91CF911F910F91F1 +:1029D000FF90EF90DF90CF90BF90AF909F908F903F +:1029E0007F900C949B190F90DF91CF911F910F91C5 +:1029F000FF90EF90DF90CF90BF90AF909F908F901F +:102A00007F9008950F931F93CF93DF93EC018881FC +:102A100099812B813C81232BB9F09F3F11F48F3F8B +:102A200099F0CE010E940406882371F068817981B3 +:102A30008A810E94801A8C010E94351A0E94FC181B +:102A4000B801CE010E94E512DF91CF911F910F9145 +:102A500008950E94581B0E94681B0E942D1B0E9413 +:102A6000821B0E949B200E94EA1F80E090E00E944F +:102A7000C61080E090E00C94DC100E94481B0C947F +:102A800029150E94751A292F22952F7030E02C30BD +:102A900031054CF42A3031056CF4225031092230D2 +:102AA0003105A8F407C02C30310569F02F3031050D +:102AB00051F00DC0803F69F018F4803E40F409C029 +:102AC000843F29F406C093FB882780F9089580E0AD +:102AD000089581E00895CF93DF9300D000D01F9236 +:102AE000CDB7DEB70F900F900F900F900F90DF9142 +:102AF000CF910895CF93DF9300D000D000D0CDB711 +:102B0000DEB726960FB6F894DEBF0FBECDBFDF91BD +:102B1000CF9108951F93CF93DF93C091850116E065 +:102B200080918601C81799F0D0E01C9FF0011D9F8D +:102B3000F00D1124E957FE4F40815181628173816C +:102B4000848195810E947A152196C770E9CFDF9123 +:102B5000CF911F9108954091B7015091B8016091B4 +:102B6000B9017091BA018091BB019091BC010C94A4 +:102B70007A158091BC0182958F7009F054C08091C4 +:102B8000B901882309F44FC080918501A091860185 +:102B90006091B7017091B8014091BA015091BB01A9 +:102BA000B6E08A1709F43FC090E041155105C1F124 +:102BB0007F3F11F46F3FA1F1B89FF001B99FF00D75 +:102BC0001124E957FE4F218172132AC0208162131C +:102BD00027C02281211124C0238134812417350785 +:102BE00010F421503109241B350B283C3105C0F469 +:102BF0002091BC012F7020612093BC0126E0289F0A +:102C0000F001299FF00D1124E457FE4F80818F7051 +:102C10008061808387EB91E00E9402150C948A15F5 +:102C200001968770BECF0895CF92DF92EF92FF9208 +:102C30000F931F93CF93DF93CDB7DEB762970FB695 +:102C4000F894DEBF0FBECDBF8C0185E0F801DE0138 +:102C50001D9601900D928A95E1F7D8014C9111963D +:102C60005C91119712966C9112971396CD90DC900F +:102C700014973091B7017091B8018091BA01909189 +:102C8000BB01009709F46BC17F3F19F43F3F09F482 +:102C900066C1E090B901EE2009F4C0C02091BC01EA +:102CA000C816D90628F0F601E81BF90BCF0104C0BD +:102CB000809590958C0D9D1DFF24F394883C910583 +:102CC00078F0F12C207F09F0C6C07C2DD98AC88A03 +:102CD00089890E946B1587EB91E00E940215B1C0B3 +:102CE000822F807F09F046C0751314C0341312C0C0 +:102CF000611110C02F7020612093BC010E94AB15A0 +:102D000087EB91E00E9402158091BC01D8011596D5 +:102D10008C932EC0CD2819F15F3F11F44F3FF9F08D +:102D2000F62E61111CC0809185012091860136E04C +:102D3000821709F45AC090E0389FF001399FF00DD6 +:102D40001124E957FE4F7181571306C07081471354 +:102D500003C07281711103C001968770E9CFF62E0E +:102D6000662309F418C18091BC0181608093BC0185 +:102D7000F12C11C1751308C0341306C0611104C0D1 +:102D80008091BC01D801C3C04D875E878D859E852B +:102D90006A8B0E9441156A898823E1F16623D1F18B +:102DA0002091BC01822F82958F7090E0029774F081 +:102DB0008091B7019091B80198878F831986DB863F +:102DC000CA862C87CE0107960E94021586E0F8017C +:102DD000A7EBB1E001900D928A95E1F70E94B91539 +:102DE0000E94AB15FF24F394D6C04D875E878D8576 +:102DF0009E850E94751A292F22952F7030E022306F +:102E000031050CF0BCC09F7009F0B6C0805E883000 +:102E100008F4C1C0C8010E940215E4CFC816D90643 +:102E200008F453C0F601E81BF90BCF01883C91056B +:102E300008F450C0F12C7C2DD98AC88A89890E9457 +:102E40006B15E7EBF1E086E0DF011D928A95E9F76B +:102E50000E94AB15A0C0751314C0341312C06111C9 +:102E600010C08091BC01F8018583C8010E94021541 +:102E700086E0E7EBF1E0DF011D928A95E9F7FE2C91 +:102E80008AC04D875E878D859E856A8B0E9441151D +:102E90006A89882309F4BECF662309F4BBCF209149 +:102EA000BC01822F82958F7090E002970CF48ECF38 +:102EB0008091B7019091B8019A8389831B82DD824A +:102EC000CC822E83CE0101967FCF809590958C0D7C +:102ED0009D1DACCFF62E662309F49CCF75132EC032 +:102EE00034132CC02091BC0120FD1FC0822F82957D +:102EF0008F70D9F0D80115962C9315978F3049F023 +:102F00008F5F982F9295907F822F8F70892B1596C7 +:102F10008C93C8010E94021586E0F801A7EBB1E08E +:102F200001900D928A95E1F793CF86E0F801A7EB27 +:102F3000B1E001900D928A95E1F72DC04D875E8733 +:102F40008D859E850E944115811140CF8091BC01E5 +:102F500081608093BC01C8010E9402151CC06623D9 +:102F600009F458CF4D875E878D859E850E94411557 +:102F7000882309F44FCF2ACF811148CF0CC02430C9 +:102F800031050CF047CF9F7009F440CFF8019581CF +:102F9000907F09F03BCF8F2D62960FB6F894DEBF7D +:102FA0000FBECDBFDF91CF911F910F91FF90EF909A +:102FB000DF90CF9008951F93CF93DF93CDB7DEB707 +:102FC0002C970FB6F894DEBF0FBECDBF4F83588746 +:102FD00069877A878B879C87CE0107960E94141693 +:102FE000882369F08F8198852A853B85232BF1F111 +:102FF0009F3F09F063C08F3F09F060C037C086E093 +:10300000FE013796DE01119601900D928A95E1F747 +:103010006F817885EA85FB85309741F17F3F11F418 +:103020006F3F21F12091860130E0C9010196877040 +:1030300099274091850150E08417950709F447C00E +:1030400069837A83FD83EC8396E0929FD001939FFE +:10305000B00D1124A957BE4FFE01319601900D927B +:103060009A95E1F7809386010E948A1516E0809177 +:103070008501909186018917C1F1189FC001112423 +:1030800089579E4F0E941416882379F1E09185019B +:103090001E9FF0011124E957FE4F4081518162814A +:1030A0007381848195810E947A158091850190E0D9 +:1030B00001968770992780938501D9CF4F815885D4 +:1030C00069857A858B859C850E947A15CFCF0E9471 +:1030D0003D151092860110928501E7EBF1E086E044 +:1030E000DF011D928A95E9F7C1CF2C960FB6F894AF +:1030F000DEBF0FBECDBFDF91CF911F910895EF923C +:10310000FF920F931F93CF93DF938C01009709F4E5 +:103110006CC0F12CEE24E394E8012196F80184912F +:10312000843740F4843008F051C0813081F082301F +:1031300019F15BC0853709F444C0A8F19CE7980FEA +:10314000903708F052C08F770E94881241C00E5FFE +:103150001F4FFE01C49180E28C0F883048F4C77085 +:103160008E2D01C0880FCA95EAF70E945B1B14C020 +:103170008C2F0E94C0112DC00E5F1F4FFE01C49105 +:1031800080E28C0F883058F4C7708E2D01C0880FF4 +:10319000CA95EAF70E94611B0E94821B1AC08C2FFD +:1031A0000E94881216C00E5F1F4FFE01C491CC23EF +:1031B00081F08FE99FE00197F1F700C00000C15056 +:1031C000F6CF0E5F1F4FFE01F49003C00E94C011A6 +:1031D0008E018F2D882309F49FCFEFE9FFE031970F +:1031E000F1F700C000008150F5CFDF91CF911F9122 +:1031F0000F91FF90EF90089508956093C10170932F +:10320000C2018093C3019093C4010C9429150F93BC +:103210001F930091C1011091C2012091C30130910F +:10322000C401DC01CB01802B912BA22BB32B80930B +:10323000C1019093C201A093C301B093C4011F9137 +:103240000F910C9429150F931F930091C1011091B8 +:10325000C2012091C3013091C401DC01CB01802364 +:103260009123A223B3238093C1019093C201A09321 +:10327000C301B093C4011F910F910C9429150F93B2 +:103280001F930091C1011091C2012091C30130919F +:10329000C401DC01CB0180279127A227B3278093AB +:1032A000C1019093C201A093C301B093C4011F91C7 +:1032B0000F910C9429151092BD011092BE0110922D +:1032C000BF011092C0010C94291541E050E060E06C +:1032D00070E004C0440F551F661F771F8A95D2F710 +:1032E0004093BD015093BE016093BF017093C00134 +:1032F0000C94291541E050E060E070E004C0440FF8 +:10330000551F661F771F8A95D2F78091BD01909156 +:10331000BE01A091BF01B091C001482B592B6A2B6F +:103320007B2B4093BD015093BE016093BF0170930E +:10333000C0010C94291541E050E060E070E004C049 +:10334000440F551F661F771F8A95D2F740955095F9 +:10335000609570958091BD019091BE01A091BF01D3 +:10336000B091C001482359236A237B234093BD01B8 +:103370005093BE016093BF017093C0010C94291556 +:1033800041E050E060E070E004C0440F551F661F4C +:10339000771F8A95D2F78091BD019091BE01A091CF +:1033A000BF01B091C001482759276A277B27409366 +:1033B000BD015093BE016093BF017093C0010C9496 +:1033C00029150F931F930091BD011091BE0120910B +:1033D000BF013091C001DC01CB01802B912BA22BCE +:1033E000B32B8093BD019093BE01A093BF01B09316 +:1033F000C0011F910F910C9429150F931F930091F9 +:10340000BD011091BE012091BF013091C001DC01CE +:10341000CB0180239123A223B3238093BD019093FA +:10342000BE01A093BF01B093C0011F910F910C94F6 +:1034300029150F931F930091BD011091BE0120919A +:10344000BF013091C001DC01CB0180279127A22769 +:10345000B3278093BD019093BE01A093BF01B093A9 +:10346000C0011F910F910C9429150895CF92DF92FE +:10347000EF92FF920F931F93CF93DF938C01C09035 +:10348000C101D090C201E090C301F090C4018091CD +:10349000BD019091BE01A091BF01B091C001C82AA9 +:1034A000D92AEA2AFB2ACFE1D0E0D701C6010C2EA7 +:1034B00004C0B695A795979587950A94D2F780FF93 +:1034C00006C0B8018C2F0E940209019721F42197B0 +:1034D00060F780E001C08C2FDF91CF911F910F9199 +:1034E000FF90EF90DF90CF900895CF93DF93EC01A2 +:1034F0000E94361ABE010E940209DF91CF91089501 +:10350000CB010E94751A08958091C5018595859516 +:10351000859508958091C5018770089598E0899FE9 +:1035200090011124262B2093C5010C947A19209127 +:10353000C501809582238093C501982F977069F407 +:1035400030E0482F552747FD50952417350729F0BF +:103550008595859585950C949B1908959091C50145 +:10356000977081E009F480E0089590910C0199230F +:1035700021F090910D01911109C020910E0130911F +:103580000F01F90132969FEF40E01FC0982F9695EA +:10359000969596959F3050F5E0910E01F0910F01B0 +:1035A000E90FF11D877021E030E0A90102C0440F4E +:1035B000551F8A95E2F7CA019181892B818308956D +:1035C0009F3F39F04F5F4E3041F051915813F8CF83 +:1035D0000DC05111F7CF942FF5CF9F3F39F0F9016E +:1035E000E90FF11D97FDFA95828308950895909152 +:1035F0000C01992321F090910D01911109C02091A6 +:103600000E0130910F01F9013296205F3F4F1FC02C +:10361000982F9695969596959F30F0F4E0910E012F +:10362000F0910F01E90FF11D877021E030E0A90151 +:1036300002C0440F551F8A95E2F7CA018095918117 +:103640008923818308953196E217F30729F0908149 +:103650009813F9CF1082F7CF089581E090E0E091C0 +:103660000E01F0910F01E80FF91F108201968031D1 +:103670009105A9F708959091D901892B8093D901DB +:10368000089580959091D90189238093D901089557 +:103690001092D90108959091D801892B8093D80177 +:1036A000089580959091D80189238093D801089539 +:1036B0001092D80108959091D701892B8093D7015A +:1036C000089580959091D70189238093D70108951B +:1036D0001092D70108958093C60108951092C601F3 +:1036E000089580910E0190910F01FC0131969C018B +:1036F000205F3F4F80E0919191118F5FE217F307B8 +:10370000D1F70895E0910E01F0910F018091D90158 +:103710008083E0910E01F0910F0190818091D8019A +:10372000892B8083E0910E01F0910F0190818091AF +:10373000D701892B80838091C601882361F0E091B5 +:103740000E01F0910F019081892B80830E94711BE3 +:1037500081111092C60180910E0190910F010C947D +:10376000B01020E0009739F0AC014150510984239A +:1037700095232F5FF7CF822F0895CF92DF92EF929C +:10378000FF926C01EE24FF24C114D104E104F10482 +:1037900021F0C701B60120E101C020E0C72ED82EDC +:1037A000E92EFF24C114D104E104F10419F0285FCB +:1037B000C701B6016B017C0154E0F694E794D794FD +:1037C000C7945A95D1F7C114D104E104F10419F05A +:1037D0002C5FC701B6016B017C0142E0F694E794CF +:1037E000D794C7944A95D1F7C114D104E104F104E8 +:1037F00019F02E5FC701B601DC01CB01B695A79584 +:1038000097958795892B8A2B8B2B09F02F5F822F19 +:10381000FF90EF90DF90CF9008958091F101843078 +:1038200021F11092DB0120E488E190E00FB6F894DA +:10383000A895809360000FBE2093600080E00E94F6 +:103840009D0983B7817F846083BF83B7816083BF15 +:103850007894889583B78E7F83BF88E10FB6F894FC +:1038600080936000109260000FBE0895089508953F +:103870000E94361C0E94D3030E94371C0E94C80479 +:1038800091E0811101C090E0892F08950E943D15BB +:103890000E94A4100C949D0982E084BD93E095BD24 +:1038A0009AEF97BD80936E0008952FB7F89480919A +:1038B000DC019091DD01A091DE01B091DF012FBF0D +:1038C0000895CF92DF92EF92FF920F931F932FB73D +:1038D000F8944091DC015091DD016091DE0170911E +:1038E000DF012FBF6A017B01EE24FF248C0120E061 +:1038F00030E0C016D106E206F30610F4415051093B +:103900009A01281B390BC9011F910F91FF90EF906D +:10391000DF90CF9008951F920F920FB60F9211244F +:103920008F939F93AF93BF938091DC019091DD01C2 +:10393000A091DE01B091DF010196A11DB11D809320 +:10394000DC019093DD01A093DE01B093DF01BF9114 +:10395000AF919F918F910F900FBE0F901F90189570 +:103960000E94A10DF8942FEF87EA91E62150804044 +:103970009040E1F700C0000087E090EBDC0180930D +:10398000FB019093FC01A093FD01B093FE019CE02C +:1039900088E10FB6F894A895809360000FBE9093CD +:1039A0006000FFCFEF92FF920F931F93CF93DF93AF +:1039B000D82FCDE08C2F0E94C10405E010E0E82E46 +:1039C000F12CC701002E02C0959587950A94E2F765 +:1039D00080FF09C0602F7C2F80E00E94AD06D813C5 +:1039E00002C081E006C00150110958F7C15010F71C +:1039F00080E0DF91CF911F910F91FF90EF9008959C +:103A0000CF93C82F8CE20E94D21C882321F08C2FE8 +:103A1000CF910C94D21C80E0CF910895CF930E9457 +:103A2000551E811102C00E943B1EC5E6C15049F0DF +:103A30000E94D3038FE39CE90197F1F700C00000D7 +:103A4000F5CF89E20E94001D811113C18AE20E9414 +:103A5000001D81110E943B1E85E00E94001D811106 +:103A60000E94B01C0E94601E8093DA0187E00E94D1 +:103A7000001D8823A9F18BE10E94001D882351F0CD +:103A80008091DA0181FB222720F991E0922790FBB7 +:103A900081F90EC08EE00E94001D882361F08091A4 +:103AA000DA0182FB222720F991E0922790FB82F92C +:103AB0008093DA0115C080E10E94001D9091DA0127 +:103AC000882341F093FB222720F981E0822780FBA5 +:103AD00093F904C0892F809580FB90F99093DA01C7 +:103AE0008091DA010E94641E0E94721E8093FA0186 +:103AF00080EE0E94001D882341F08091FA01982FEA +:103B0000909590FB80F98093FA0189E30E94001D53 +:103B1000882359F08091FA0181FB222720F991E056 +:103B2000922790FB81F98093FA0182EE0E94001D9A +:103B3000882359F08091FA0182FB222720F991E035 +:103B4000922790FB82F98093FA0186EE0E94001D75 +:103B5000882359F08091FA0183FB222720F991E014 +:103B6000922790FB83F98093FA0183EE0E94001D57 +:103B7000882359F08091FA0184FB222720F991E0F3 +:103B8000922790FB84F98093FA0185E30E94001D3F +:103B9000882359F08091FA0185FB222720F991E0D2 +:103BA000922790FB85F98093FA0181E30E94001D22 +:103BB000882359F08091FA0186FB222720F991E0B1 +:103BC000922790FB86F98093FA0181E10E94001D03 +:103BD000882359F08091FA0187FB222720F991E090 +:103BE000922790FB87F98093FA018091FA010E9455 +:103BF000761E8091FA0187FB882780F980930D015A +:103C000087E20E94001DC82F8EE10E94001D8111D5 +:103C1000C2608FE10E94001D8111C46080E20E9499 +:103C2000001D8111C86081E20E94001D8111C061E8 +:103C300082E20E94001D8111C06283E20E94001D89 +:103C40008111C06484E20E94001D882311F0C068C5 +:103C500002C0CC2329F08C2F0E946D1E6C2F03C054 +:103C60000E94691E682F70E080E090E0CF910C9474 +:103C7000FD18CF9108956DEE7EEF80E090E00E94F8 +:103C8000A72460E082E090E00E94952460E083E059 +:103C900090E00E94952460E084E090E00E949524EA +:103CA00060E085E090E00C94952480E090E00E9434 +:103CB0008F2421E08D3E9E4F09F020E0822F089551 +:103CC00082E090E00C948724682F82E090E00C94CE +:103CD000952483E090E00C948724682F83E090E0A3 +:103CE0000C94952484E090E00C948724682F84E061 +:103CF00090E00C9495248091E20180FF0BC06091CC +:103D0000130185E0689FB00111247595679575953D +:103D100067952BC081FF09C06091130185E0689F02 +:103D2000B00111247595679520C082FF07C060918E +:103D3000130185E0689FB001112417C09091E30141 +:103D40009923D1F060911201961788F72091130101 +:103D500085E0289F90011124929FA001939F500D10 +:103D6000112470E0CA010E9459246038710540F4A2 +:103D70006115710539F002C065E070E0862F089585 +:103D80008FE7089581E008958091E20180FF08C0E7 +:103D90006091110170E0759567957595679521C0E3 +:103DA00081FF06C06091110170E07595679519C09B +:103DB00082FF04C06091110170E010C09091E30196 +:103DC0009923C1F0609110019617A0F7809111011D +:103DD000899FC001112470E00E9459246038710548 +:103DE00028F46115710521F0862F08958FE7089555 +:103DF00081E0089561E070E0F4CF803F21F40E94FB +:103E00007B1E819504C0813F29F40E947B1E809314 +:103E1000E6010895823F21F40E947B1E819504C033 +:103E2000833F29F40E947B1E8093E5010895893F1A +:103E300019F40E94C41E05C08A3F31F40E94C41EBA +:103E400081958093E70108958B3F21F40E94C41E61 +:103E5000819504C08C3F29F40E94C41E8093E80120 +:103E60000895843F21F48091E401816017C0853F6B +:103E700021F48091E401826011C0863F21F4809199 +:103E8000E40184600BC0873F21F48091E4018860E5 +:103E900005C0883F31F48091E40180618093E401A2 +:103EA00008958D3F21F48091E20181600BC08E3F27 +:103EB00021F48091E201826005C08F3F29F4809156 +:103EC000E20184608093E2010895803F39F480919B +:103ED000E60187FF6CC01092E60169C0813F29F4BA +:103EE0008091E6011816BCF362C09091E501823F13 +:103EF00029F497FF5CC01092E50159C0833F19F483 +:103F00001916CCF354C0893F41F48091E70118168B +:103F10000CF04DC01092E7014AC08A3F29F480910D +:103F2000E70187FF44C0F6CF8B3F39F48091E80169 +:103F300087FF3DC01092E8013AC08C3F29F4809180 +:103F4000E8011816BCF333C0843F21F48091E401EA +:103F50008E7F17C0853F21F48091E4018D7F11C0D1 +:103F6000863F21F48091E4018B7F0BC0873F21F4D1 +:103F70008091E401877F05C0883F31F48091E4019E +:103F80008F7E8093E40113C08D3F21F48091E20184 +:103F90008E7F0BC08E3F21F48091E2018D7F05C0A2 +:103FA0008F3F29F48091E2018B7F8093E201809121 +:103FB000E50181110EC08091E60181110AC0809156 +:103FC000E701811106C08091E801811102C01092C1 +:103FD000E301089584EE91E00E94BB100E94551CFD +:103FE0009093E1018093E00108951F93CF93DF93B5 +:103FF0008091E0019091E1010E94611CAC019091DF +:10400000E301992321F02091140130E006C02091B2 +:1040100015018AE0289F900111244217530708F4E4 +:1040200086C08091E501C091E601D091E701109131 +:10403000E801811107C0C11176C0D11174C01111FE +:1040400072C075C09F3F19F09F5F9093E3011816EF +:1040500024F40E947B1E8093E5018091E50187FF97 +:1040600005C00E947B1E81958093E5011C1624F4F7 +:104070000E947B1E8093E6018091E60187FF05C0C8 +:104080000E947B1E81958093E6016091E501662385 +:1040900039F1C091E601CC2319F1772767FD7095BE +:1040A000872F972F0E946A2323E333E343E35FE3E1 +:1040B0000E94CE230E9437236093E5016C2F77275F +:1040C00067FD7095872F972F0E946A2323E333E3C0 +:1040D00043E35FE30E94CE230E9437236093E6010F +:1040E0001D1624F40E94C41E8093E7018091E7010D +:1040F00087FF05C00E94C41E81958093E7011116B9 +:1041000024F40E94C41E8093E8018091E80187FF97 +:1041100005C00E94C41E81958093E801DF91CF9174 +:104120001F910C94EA1F9F3F09F08ECF96CFDF912D +:10413000CF911F910895E4EEF1E085E0DF011D923B +:104140008A95E9F71092E3011092E2010895833015 +:1041500081F128F4813059F08230D1F00895853012 +:1041600009F449C0B8F1863009F456C00895809129 +:104170001501262F30E0280F311D2F3F310524F483 +:10418000680F6093150108958FEF809315010895CE +:1041900080911401262F30E0280F311D2F3F31056B +:1041A00024F4680F6093140108958FEF8093140135 +:1041B000089580911301262F30E0280F311D2F3FE5 +:1041C000310524F4680F6093130108958FEF8093F5 +:1041D0001301089580911201262F30E0280F311D20 +:1041E0002F3F310524F4680F6093120108958FEF7B +:1041F00080931201089580911101262F30E0280F3D +:10420000311D2F3F310524F4680F6093110108958B +:104210008FEF80931101089580911001262F30E0D7 +:10422000280F311D2F3F310524F4680F60931001D2 +:1042300008958FEF809310010895833011F128F4D1 +:10424000813049F0823091F00895853081F120F17C +:104250008630C1F1089580911501681720F4861BFE +:10426000809315010895109215010895809114010D +:10427000681720F4861B809314010895109214018E +:10428000089580911301681720F4861B8093130111 +:10429000089510921301089580911201681720F477 +:1042A000861B809312010895109212010895809147 +:1042B0001101681720F4861B809311010895109254 +:1042C0001101089580911001681720F4861B8093D6 +:1042D000100108951092100108950F931F938D31CE +:1042E00009F46BC008F03FC08E3009F47FC0C0F401 +:1042F000873009F469C068F4863009F0B1C0809154 +:10430000DA01817F8E7F8093DA0181E08093EA0178 +:10431000A8C0883009F4A2C08B3009F49FC0A0C0A7 +:10432000863109F49BC078F4803109F472C0813180 +:1043300009F096C00E943D1590910D0181E08927FA +:1043400080930D018BC0893109F488C08B3109F04D +:1043500087C08091DA0181FB222720F991E0922722 +:1043600090FB81F94CC0853309F470C048F4873262 +:1043700009F46CC008F459C0893209F467C070C0F0 +:10438000833438F48A3308F04EC0883309F466C0A9 +:1043900067C0833409F45AC0883409F061C00E94B0 +:1043A0003D150FEF13ED20E3015010402040E1F7E1 +:1043B00000C000000E94B01C51C00E94F1220E9467 +:1043C000A4100E949D094AC09091DA01892F80951E +:1043D000817080FB90F929F0966098609093DA01E3 +:1043E00040C0997F977F9093DA0138C08091DA01BD +:1043F00082FB222720F991E0922790FB82F980939B +:10440000DA01992359F18091DA0181608093DA0110 +:1044100025C08091DA0183FB222720F991E09227C1 +:1044200090FB83F9ECCF895301C08D5141E050E0FE +:1044300060E070E08A019B0104C0000F111F221F81 +:10444000331F8A95D2F7C901B80104C061E070E05A +:1044500080E090E00E94FD180E943D1581E001C0BF +:1044600080E01F910F91089580E0089580E0089505 +:10447000CF93C82F8091EA01813079F018F0823013 +:10448000E9F187C0E0910E01F0910F018081813147 +:1044900069F0823209F07FC009C0E0910E01F0910D +:1044A0000F018081813111F0823261F48C2F0E94E2 +:1044B0003422811104C08C2F0E946D211DC081E027 +:1044C00090E01AC08C2F0E943622811114C0C43192 +:1044D00079F048F4CB3079F0C03109F060C082E067 +:1044E0008093EA0108C0C93219F0C83321F057C0DF +:1044F0001092EA0154C081E0817053C0C93289F141 +:1045000018F5C43171F1A8F4C73009F046C08AE04B +:104510008093150194E19093140193E0909313011B +:104520008093120188E08093110188E2809310014A +:1045300034C0CE51C63088F5EC2FF0E0E65DFE4F7A +:1045400080818093E90129C0CE34E9F020F4CB3496 +:1045500021F56AE013C0C13579F0C235F1F461E0AC +:104560000DC08091E901882319F01092E90115C06E +:1045700081E08093EA0115C061E006C08091E90105 +:104580000E94A7200AC06AE08091E9010E941D21D3 +:1045900004C01092EA0180E004C081E002C080E023 +:1045A000ABCFCF910895E1E8F0E08081886080830F +:1045B0008081816080838FB7F89493E09093890025 +:1045C00090ED909388008FBF0895EFE6F0E0808132 +:1045D000826080830895EFE6F0E080818D7F8083A4 +:1045E0000895EFE6F0E0908182E0892780830895C6 +:1045F0001F920F920FB60F9211242F933F934F9358 +:104600005F936F937F938F939F93AF93BF93EF933A +:10461000FF938091EB019091EC0101969093EC0156 +:104620008093EB01811103C082E00E949D09E0911B +:10463000EC01E695E695F0E0EC53FA4FE4918091B9 +:10464000EB018E1303C080E00E949D09FF91EF9162 +:10465000BF91AF919F918F917F916F915F914F919A +:104660003F912F910F900FBE0F901F90189504D07F +:104670006894B1118DC0089570D088F09F5790F064 +:10468000B92F9927B751A0F0D1F0660F771F881F77 +:10469000991F1AF0BA95C9F712C0B13081F077D0DE +:1046A000B1E0089574C0672F782F8827B85F39F07C +:1046B000B93FCCF3869577956795B395D9F73EF4D6 +:1046C00090958095709561957F4F8F4F9F4F08957E +:1046D000E89409C097FB3EF490958095709561959C +:1046E0007F4F8F4F9F4F9923A9F0F92F96E9BB2752 +:1046F0009395F695879577956795B795F111F8CFCE +:10470000FAF4BB0F11F460FF1BC06F5F7F4F8F4F38 +:104710009F4F16C0882311F096E911C0772321F02E +:104720009EE8872F762F05C0662371F096E8862FC6 +:1047300070E060E02AF09A95660F771F881FDAF71D +:10474000880F9695879597F9089557FD9058440FCF +:10475000551F59F05F3F71F04795880F97FB991FE0 +:1047600061F09F3F79F0879508951216130614069D +:10477000551FF2CF4695F1DF08C01616170618062A +:10478000991FF1CF86957105610508940895E89405 +:10479000BB2766277727CB0197F908950BD078C000 +:1047A00069D028F06ED018F0952309F05AC05FC088 +:1047B0001124EECFCADFA0F3959FD1F3950F50E0FF +:1047C000551F629FF001729FBB27F00DB11D639FC3 +:1047D000AA27F00DB11DAA1F649F6627B00DA11D69 +:1047E000661F829F2227B00DA11D621F739FB00D0F +:1047F000A11D621F839FA00D611D221F749F33277F +:10480000A00D611D231F849F600D211D822F762F17 +:104810006A2F11249F5750408AF0E1F088234AF014 +:10482000EE0FFF1FBB1F661F771F881F9150504060 +:10483000A9F79E3F510570F014C0AACF5F3FECF37B +:10484000983EDCF3869577956795B795F795E7954C +:104850009F5FC1F7FE2B880F911D9695879597F95D +:10486000089597F99F6780E870E060E008959FEFF2 +:1048700080EC089500240A941616170618060906F7 +:10488000089500240A9412161306140605060895C6 +:10489000092E0394000C11F4882352F0BB0F40F44E +:1048A000BF2B11F460FF04C06F5F7F4F8F4F9F4F8E +:1048B000089597FB072E16F4009407D077FD09D0D2 +:1048C0000E94732407FC05D03EF4909581959F4F7C +:1048D0000895709561957F4F0895EE0FFF1F059025 +:1048E000F491E02D0994AA1BBB1B51E107C0AA1F3C +:1048F000BB1FA617B70710F0A61BB70B881F991F81 +:104900005A95A9F780959095BC01CD010895F99924 +:10491000FECF92BD81BDF89A992780B50895A8E190 +:10492000B0E042E050E00C94AF24262FF999FECF7E +:1049300092BD81BDF89A019700B4021639F01FBAF2 +:1049400020BD0FB6F894FA9AF99A0FBE0895019611 +:10495000272F0E9496240C949524DC01CB01FC01A6 +:10496000F999FECF06C0F2BDE1BDF89A319600B4C8 +:0E4970000D9241505040B8F70895F894FFCFD3 +:10497E0002209F092D0A0A0AD609A2090101C701C0 +:10498E0028080A03140A3F4D3639850538050205F5 +:10499E00C9045C0475048E04A70401020304050611 +:0449AE0007080900ED +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/mpiechotka/keymap.c b/keyboards/ergodox_ez/keymaps/mpiechotka/keymap.c new file mode 100644 index 000000000..5bfef5995 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/mpiechotka/keymap.c @@ -0,0 +1,276 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_colemak.h" + +enum { + BASE = 0, + BASE_CM, + SYMB, + MACR +}; + +enum { + LWIN = 1, + PC1, + PC2, + PC3, + PC4, + DL_BASE, + DL_BASE_CM, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0a: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Del | Q | W | F | P | G | L1 | | L1 | J | L | U | Y | ; | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Esc | A | R | S | T | D |------| |------| H | N | E | I | O | ' | + * |--------+------+------+------+------+------| = | | - |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | K | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | LAlt | LGui | | LAlt | RAlt | + * ,------|------|------| |------+--------+------. + * | |Backsp| Home | | PgUp | | | + * | Space|ace/ |------| |------| Tab/ |Enter/| + * | /Shft|Ctrl | 1) | | 2) | Ctrl |Shift | + * `--------------------' `----------------------' + * + * 1) End/L1 + * 2) PgDown/L2 + */ +[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_F, KC_P, KC_G, TG(SYMB), + KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_EQL, + LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT, + KC_LALT, F(LWIN), + KC_HOME, + SFT_T(KC_SPC),CTL_T(KC_BSPC),LT(SYMB, KC_END), + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(SYMB), KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, + KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_MINS, KC_K, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, LT(SYMB,KC_NO), + KC_LALT, KC_RALT, + KC_PGUP, + LT(MACR,KC_PGDN),CTL_T(KC_TAB), SFT_T(KC_ENT) + ), +/* Keymap 0b: Basic layer (Colemak keycodes or QWERTY) + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Del | Q | W | F | P | G | L1 | | L1 | J | L | U | Y | ; | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Esc | A | R | S | T | D |------| |------| H | N | E | I | O | ' | + * |--------+------+------+------+------+------| = | | - |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | K | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | LAlt | LGui | | LAlt | RAlt | + * ,------|------|------| |------+--------+------. + * | |Backsp| Home | | PgUp | | | + * | Space|ace/ |------| |------| Tab/ |Enter/| + * | /Shft|Ctrl | 1) | | 2) | Ctrl |Shift | + * `--------------------' `----------------------' + * + * 1) End/L1 + * 2) PgDown/L2 + */ +[BASE_CM] = KEYMAP( // layer 0 : default + // left hand + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_DELT, CM_Q, CM_W, CM_F, CM_P, CM_G, TG(SYMB), + KC_ESC, CM_A, CM_R, CM_S, CM_T, CM_D, + KC_LSFT, CM_Z, CM_X, CM_C, CM_V, CM_B, KC_EQL, + LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT, + KC_LALT, F(LWIN), + KC_HOME, + SFT_T(KC_SPC),CTL_T(KC_BSPC),LT(SYMB, KC_END), + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(SYMB), CM_J, CM_L, CM_U, CM_Y, KC_P, /*CM_SCLN*/ KC_BSLS, + CM_H, CM_N, CM_E, CM_I, CM_O, KC_QUOT, + KC_MINS, CM_K, CM_M, CM_COMM,CM_DOT, CTL_T(CM_SLSH), KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, LT(SYMB,KC_NO), + KC_LALT, KC_RALT, + KC_PGUP, + LT(MACR,KC_PGDN),CTL_T(KC_TAB), SFT_T(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: Macros + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | DLa | DLb | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | PC1 | PC2 | PC3 | PC4 | |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MACROS +[MACR] = KEYMAP( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, F(DL_BASE),F(DL_BASE_CM),KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, F(PC1), F(PC2), F(PC3), F(PC4), KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [LWIN] = ACTION_MACRO(LWIN), + [PC1] = ACTION_MACRO(PC1), + [PC2] = ACTION_MACRO(PC2), + [PC3] = ACTION_MACRO(PC3), + [PC4] = ACTION_MACRO(PC4), + [DL_BASE] = ACTION_DEFAULT_LAYER_SET(BASE), + [DL_BASE_CM] = ACTION_DEFAULT_LAYER_SET(BASE_CM) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + case LWIN: + if (record->event.pressed) { + register_code(KC_RSFT); + unregister_code(KC_RSFT); + register_code(KC_LGUI); + } else { + unregister_code(KC_LGUI); + } + break; + case PC1: + if (!record->event.pressed) { + return MACRO(T(SLCK), W(50), T(SLCK), W(50), T(1), W(50), T(ENT), END); + } + break; + case PC2: + if (!record->event.pressed) { + return MACRO(T(SLCK), W(50), T(SLCK), W(50), T(2), W(50), T(ENT), END); + } + break; + case PC3: + if (!record->event.pressed) { + return MACRO(T(SLCK), W(50), T(SLCK), W(50), T(3), W(50), T(ENT), END); + } + break; + case PC4: + if (!record->event.pressed) { + return MACRO(T(SLCK), W(50), T(SLCK), W(50), T(4), W(50), T(ENT), END); + } + 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 SYMB: + ergodox_right_led_1_on(); + break; + case MACR: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } +}; diff --git a/keyboards/ergodox_ez/keymaps/mpiechotka/readme.md b/keyboards/ergodox_ez/keymaps/mpiechotka/readme.md new file mode 100644 index 000000000..785400d1d --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/mpiechotka/readme.md @@ -0,0 +1,6 @@ +# ErgoDox EZ mpiechotka Configuration + +Modification of ErgoDox EZ Colemak layout with additional QWERTY/software Colemak layer and change of the special keys. + + + diff --git a/keyboards/ergodox_ez/keymaps/msc/compiled.hex b/keyboards/ergodox_ez/keymaps/msc/compiled.hex new file mode 100644 index 000000000..b30b84d29 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/msc/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947A020C94BE020C94BE020C94BE02B4 +:100010000C94BE020C94BE020C94BE020C94BE0260 +:100020000C94BE020C94BE020C94620D0C94340E1F +:100030000C94BE020C94BE020C94BE020C94BE0240 +:100040000C94BE020C943E220C94BE020C94BE0290 +:100050000C94BE020C94D11B0C94BE020C94BE02F4 +:100060000C94BE020C94BE020C94BE020C94BE0210 +:100070000C94BE020C94BE020C94BE020C94BE0200 +:100080000C94BE020C94BE020C94BE020C94BE02F0 +:100090000C94BE020C94BE020C94BE020C94BE02E0 +:1000A0000C94BE020C94BE020C94BE02A10EC30EB0 +:1000B000B10FC30EB10F080F2B0FB10F800F930FAD +:1000C0006212621291129112C712E71218141814D8 +:1000D000F2121814A213A2130914181418141214EB +:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300 +:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0 +:10010000C113CE13D513DC13E6130000F0A12E00AB +:100110004C002A00E100E30000001E00140004006F +:100120001D71E2004D001F001A0016001B00E104C3 +:100130002A00200008000700060050002C002100C3 +:100140001500090019004F004A00220017000A009C +:10015000050000006574500001540000007F00009D +:10016000E3004F000154000000770000E20023008C +:100170001C000B00110000002971240018000D0064 +:10018000100050004B0025000C000E0036005100FE +:100190002800260012000F00370052002B00270015 +:1001A0001300330038714F004E002D0031003478B9 +:1001B000E5000254000001000100010001000100FF +:1001C00000003A001E0220022202010001003B0052 +:1001D0001F0221022302010001003C002F0226021F +:1001E0002F00010001003D00300227023000010015 +:1001F00001003E003102350035020000010001001F +:1002000001000000010000000100010001000000E9 +:100210000100000001003F005200510024020000D4 +:1002200001004000240021001E00010001004100E7 +:10023000250022001F003700010042002600230095 +:10024000200027000100430025022E0231002E006D +:100250000100440045000100010001000000010010 +:100260000100010001000100000001000100010087 +:1002700001000100010001000100F2000100010085 +:10028000F5000100F000F10001000100F4000100A0 +:100290000100F30001000100010001000100010064 +:1002A0000100000001000100010000000100000049 +:1002B0000100010001000000010000000100010038 +:1002C0000100010001000000010001000100010027 +:1002D000A800AC0001000100010001000100AA001B +:1002E000B6000100010001000100A90001000100A9 +:1002F000010001000100AB00010001000100AE009F +:1003000001000100000016034500720067006F0045 +:1003100044006F007800200045005A0000001603DA +:100320004500720067006F0044006F0078002000F5 +:1003300045005A0000000403090409026D0004018D +:1003400000A0FA09040000010301010009211101C4 +:100350000001223F000705810308000A090401008B +:100360000103010200092111010001224D000705CE +:10037000820308000A0904020001030000000921A9 +:10038000110100012236000705830308000A090451 +:1003900003000103000000092111010001223900BE +:1003A000070584031000011201100100000008ED90 +:1003B000FE071301000102000105010906A1010564 +:1003C0000719E029E7150025019508750181020547 +:1003D000081901290595057501910295017503918B +:1003E0000105071900297715002501957875018108 +:1003F00002C005010980A101850216010026B7008F +:100400001A01002AB700751095018100C0050C097A +:1004100001A1018503160100269C021A01002A9CF5 +:1004200002751095018100C005010902A1010901B1 +:10043000A10005091901290515002501950575017A +:10044000810295017503810105010930093115818A +:10045000257F95027508810609381581257F95014C +:1004600075088106050C0A38021581257F950175EE +:10047000088106C0C005010906A101050719E02988 +:10048000E715002501950875018102950175088120 +:100490000105081901290595057501910295017558 +:1004A0000391010507190029FF150025FF95067521 +:1004B000088100C0000000000000000000000001F2 +:1004C0000204060A0F17202C3A4A5D71879DB3C7B4 +:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF +:1004E0003A2C20170F0A0604020100000000000049 +:1004F0000000000011241FBECFEFDAE0DEBFCDBF49 +:1005000004B603FE24C08091FB019091FC01A091F0 +:10051000FD01B091FE018730904BA740B04BB9F47C +:100520001092FB011092FC011092FD011092FE014D +:1005300014BE84B7877F84BF88E10FB6F894809398 +:100540006000109260000FBEE0E0FFE3099511E04B +:10055000A0E0B1E0EAE0F8E402C005900D92A43317 +:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0 +:10057000B107E1F70E94A60A0C9403240C94000032 +:100580001092B9008AE08093B800089594EA90939D +:10059000BC009091BC0097FFFCCF9091B900987F70 +:1005A000983021F0903111F081E008958093BB00E4 +:1005B00084E88093BC008091BC0087FFFCCF8091D1 +:1005C000B900887F883111F0803471F780E0089598 +:1005D00084E98093BC008091BC0084FDFCCF089529 +:1005E0008093BB0084E88093BC008091BC0087FFAF +:1005F000FCCF9091B900987F81E0983209F480E0B7 +:10060000089584E88093BC008091BC0087FFFCCFF4 +:100610008091BB00089580910101811115C080E493 +:100620000E94C6028093010181110CC082E10E94E8 +:10063000F00280930101811105C08FEF0E94F0024A +:10064000809301010E94E80284B1807F84B985B162 +:10065000807F85B98AB1837F8AB98BB1837F8BB95B +:100660003E98469808950E94C604809301010E9416 +:100670000B0380B38C7080BB81B3836F81BBA5E318 +:10068000B1E0E3E4F1E08EE08E0F11921D928E1343 +:10069000FCCF0C94B004BF92CF92DF92EF92FF9206 +:1006A0000F931F93CF93DF9380910101882379F0FB +:1006B000809134018F5F80933401811108C00E94C2 +:1006C000C60480930101811102C00E94580405E311 +:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407 +:1006E000E394F12CC730D10500F58091010181110F +:1006F00064C080E40E94C60280930101811112C08F +:1007000082E10E94F0028093010181110BC0C701B8 +:100710000C2E01C0880F0A94EAF780950E94F0021F +:10072000809301010E94E80248C0CA30A1F028F479 +:10073000C83059F0C93061F005C0CC3089F070F094 +:10074000CD3089F0209A289810C0219A29980DC0A0 +:10075000229A2A980AC0239A2B9807C0529A01C05D +:10076000539A5B9802C03E9A469890EA9A95F1F7A0 +:100770009FB1799902C082E001C080E091709D250F +:10078000982B7C9902C084E001C080E0892B7D9980 +:1007900002C038E001C030E0832B7E9902C020E126 +:1007A00001C020E0822B9FB19095991F9927991F36 +:1007B0009295990F907E892B0FC080910101811134 +:1007C00049C080E40E94C60280930101882379F128 +:1007D000B12C0E94E8028B2DF8019081981719F036 +:1007E0008083C09200010E940B0321960F5F1F4F70 +:1007F000CE30D10509F076CF80910001882361F1D8 +:10080000815080930001882339F08FE99FE00197A0 +:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F +:10082000CF01825F91919D938E13FCCF15C083E120 +:100830000E94F002809301018111CACF81E40E94DD +:10084000C602809301018111C3CF0E940103B82E1B +:10085000B094BFCF80E0C0CF0E94560481E0DF910A +:10086000CF911F910F91FF90EF90DF90CF90BF90AD +:100870000895E82FF0E0ED5BFE4F80810895089524 +:100880000F931F93CF93DF93C3E4D1E010E00C2FBD +:10089000025F899190E00E94F71A180F0C13F9CFAC +:1008A000812FDF91CF911F910F9108950C94260510 +:1008B00056985E9825982D9826982E9827982F98C8 +:1008C0008FEF90E0909389008093880090938B0045 +:1008D00080938A0090938D0080938C00259A2D9AA6 +:1008E0002FEF80E792E0215080409040E1F700C078 +:1008F0000000269A2E9A2FEF80E792E02150804048 +:100900009040E1F700C00000279A2F9A2FEF80E770 +:1009100092E0215080409040E1F700C0000025980F +:100920002D982FEF80E792E0215080409040E1F732 +:1009300000C0000026982E982FEF80E792E021500B +:1009400080409040E1F700C0000027982F9856980B +:100950005E9825982D9826982E9827982F98089578 +:1009600089EA8093800089E08093810024982C9804 +:100970003F988AB18F748AB96E98479A8BB1806B11 +:100980008BB9769A0E9458040C94250580E28093D6 +:1009900001018091510181110EC00E94C00281E0CD +:1009A000809351012FEF83ED90E3215080409040E0 +:1009B000E1F700C0000080E40E94C60280930101BC +:1009C00081112EC00E94F00280930101811128C084 +:1009D0000E94F00280930101811122C08FE30E94E6 +:1009E000F0028093010181111BC00E94E80280E4A3 +:1009F0000E94C60280930101811112C08CE00E9406 +:100A0000F0028093010181110BC00E94F0028093DB +:100A10000101811105C08FE30E94F0028093010162 +:100A20000E94E80280910101089561110BC0FC0150 +:100A30008281882321F085EE0E94061103C085EE95 +:100A40000E94CE1180E090E0089508956091BD016C +:100A50007091BE018091BF019091C0010E94031B63 +:100A600056985E9825982D9826982E9827982F9816 +:100A7000813019F0823021F00895259A2D9A089539 +:100A8000269A2E9A089581E0089581E008950C94A5 +:100A9000450508950F931F93CF93DF938C01FC01BD +:100AA000C081D181CE010E947C19BE010E94F30554 +:100AB000EC01B8010E944705882309F48DC0F801B4 +:100AC0008281882309F44AC080915D0181111FC091 +:100AD000C431F0E5DF0709F051C00E94490581E00B +:100AE00080935D010E949B1B90935C0180935B014E +:100AF0001092540110925601109255011092580113 +:100B00001092570110925A011092590165C08091BC +:100B10005B0190915C010E94A71B883C910570F4D9 +:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB +:100B3000D183C0838F5F809354014EC0C43880E559 +:100B4000D80721F0C538D04501F13AC0F8018281BB +:100B5000882341F01092520182E01EC0C438E0E5C3 +:100B6000DE0759F580915201811106C086E20E948C +:100B7000061186E20E94CE1182E01CC0C438F0E566 +:100B8000DF0741F3C538D045D9F4F80182818823C5 +:100B900031F01092530180E20E941D121DC080911D +:100BA0005301811106C087E20E94061187E20E946C +:100BB000CE1180E20E9424120FC0C538D04529F31F +:100BC00081E08093520180935301C801DF91CF915E +:100BD0001F910F910C94430580E0DF91CF911F91FD +:100BE0000F910895089596E0799FF001112494E5FE +:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F +:100C0000E25FFE4F859194910895880F991FFC0132 +:100C1000E657F040859194910895880F991FFC0143 +:100C2000E65FFE4F8591949108950F931F93CF93A4 +:100C3000DF93EC01811520E3920750F5C11580E2A6 +:100C4000D80708F0C3C0CB3BD10590F4C83AD10512 +:100C500008F06AC0C53AD10508F05BC0C430D105C0 +:100C600008F0D0C1219709F0CAC101E010E00AC222 +:100C7000CF3FD10511F008F0C5C1C03FD10508F044 +:100C8000A2C0CE01805E9109089708F4BBC1B7C12C +:100C9000C13090E5D90709F4A2C020F5C0318FE436 +:100CA000D80770F4C11590E4D90708F094C0C115B5 +:100CB00021E3D20708F0A3C1DD278E01106CE2C149 +:100CC000C115D04509F09BC10E9483148FEF94E3B6 +:100CD0002CE0815090402040E1F700C000000E94CD +:100CE000F61BD0C1C11597E5D90758F4C03121E5ED +:100CF000D20708F01CC1C43180E5D80708F475C0DC +:100D00007EC1CE0190578115904108F078C1DF7007 +:100D100073C1C53AD10509F477C1C63AD10509F0C6 +:100D200076C102E810E4AEC1C83AD10509F472C137 +:100D3000C93AD10509F471C1CA3AD10509F470C1A3 +:100D4000CB3AD10509F46FC1CC3AD10509F46EC193 +:100D5000CD3AD10509F46DC1C03BD10509F46CC190 +:100D6000CE3AD10509F46BC1CF3AD10509F46AC175 +:100D7000C13BD10509F469C1C23BD10509F468C181 +:100D8000C33BD10509F467C1C43BD10509F466C171 +:100D9000C53BD10509F465C1C63BD10509F464C161 +:100DA000C73BD10509F463C1C83BD10509F462C151 +:100DB000C93BD10509F461C1CA3BD10509F460C141 +:100DC00000E014E45FC18E0110655CC1CE019F702C +:100DD0000E940D0658C1DF708E01106A53C18091C8 +:100DE000DA0181608093DA014DC10E949B1D81115F +:100DF00002C00E94811D0E94B81D90E09093FB01EB +:100E00008093FA01C23080E5D80721F48091FA017D +:100E1000816086C0C43090E5D90721F48091FA0141 +:100E200082607EC0C63020E5D20721F48091FA01AD +:100E3000846076C0C83080E5D80719F48091FA0143 +:100E400027C0CA3090E5D90721F48091FA0180616A +:100E500067C0CC3020E5D20721F48091FA0180628E +:100E60005FC0CE3080E5D80721F48091FA0180641C +:100E700057C0C03190E5D90721F48091FA0180680C +:100E80004FC0C23120E5D20729F48091FA01846075 +:100E9000886046C0C33080E5D80721F48091FA010C +:100EA0008E7F3EC0C53090E5D90721F48091FA01CC +:100EB0008D7F36C0C73020E5D20721F48091FA013A +:100EC0008B7F2EC0C93080E5D80719F48091FA01D4 +:100ED00026C0CB3090E5D90721F48091FA018F7EAE +:100EE0001FC0CD3020E5D20721F48091FA018F7D1B +:100EF00017C0CF3080E5D80721F48091FA018F7BAD +:100F00000FC0C13190E5D90721F48091FA018F77A4 +:100F100007C0C331D04531F48091FA018B7F877FC0 +:100F20008093FA018091FA010E94BC1DABC08D2F05 +:100F300099278F70992781309105D9F49E012370EC +:100F4000332702C0880F991F2A95E2F79C688E010B +:100F500044E0000F111F4A95E1F700271370802B22 +:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA +:100F70002FC08230910531F4DC2FCC278E01016F18 +:100F8000106A80C08330910569F4CE01837099277F +:100F900001E010E002C0000F111F8A95E2F7C801BE +:100FA0009C680FC084309105B9F4CE0183709927F5 +:100FB00001E010E002C0000F111F8A95E2F7C8019E +:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029 +:100FD0008C010C2B1D2B56C08530910531F4DC2F74 +:100FE000CC278E01046F106A4DC0069709F04AC0E5 +:100FF000CF71DD27DC2FCC278E01106243C000E0CB +:1010000010E040C08E013EC001E810E43BC003E8A0 +:1010100010E438C002EE14E435C009EE14E432C026 +:101020000AEE14E42FC005EB14E42CC006EB14E424 +:1010300029C007EB14E426C00CEC14E423C00DEC2B +:1010400014E420C003E815E41DC00AE815E41AC042 +:1010500002E915E417C004E915E414C001E216E43E +:1010600011C003E216E40EC004E216E40BC005E270 +:1010700016E408C006E216E405C007E216E402C062 +:101080000AE216E4C801DF91CF911F910F910895F4 +:1010900096E0799FF001112494E5899FE00DF11D00 +:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149 +:1010B0009491803E9105E0F4803C910558F5813390 +:1010C000910509F46FC048F48932910509F463C0B1 +:1010D0008A32910509F46DC072C089339105E9F037 +:1010E00082389105D1F08533910509F44DC067C070 +:1010F000833E910581F138F4803E9105B9F0823E3E +:101100009105D9F05CC0863E910561F1873E91055D +:10111000A1F155C00E94050608952091FA0120FD15 +:1011200002C021FF4CC080EE90E049C08091FA01DE +:1011300080FFF9CF89E390E042C08091FA0182FFFD +:101140000EC08091FA0184FF03C080E090E037C0B8 +:1011500083EE90E034C08091FA0182FFF2CF82EEFC +:1011600090E02DC08091FA0183FF0BC08091FA01BD +:1011700084FDEBCF87EE90E022C08091FA0183FFDF +:10118000F5CF86EE90E01BC08091FA0185FF07C085 +:1011900089E290E014C08091FA0185FFF9CF85E3E0 +:1011A00090E00DC08091FA0186FF07C08AE290E0CE +:1011B00006C08091FA0186FFF9CF81E390E00E949A +:1011C0001506089508950C94E20880916E01089523 +:1011D000CF93DF9300D01F92CDB7DEB79C018091F3 +:1011E000F101843019F593E099833B832A8390932E +:1011F000E9008FEF9091E800815095FD06C095EDD4 +:101200009A95F1F700008111F5CF8091E80085FFF4 +:101210000DC040E050E063E070E0CE0101960E9416 +:10122000520B8091E8008E778093E8000F900F902A +:101230000F90DF91CF910895CF93DF9300D01F924D +:10124000CDB7DEB72091F101243021F522E02983CA +:101250009B838A8383E08093E9008FEF9091E8007D +:10126000815095FD06C095ED9A95F1F7000081112A +:10127000F5CF8091E80085FF0DC040E050E063E0CD +:1012800070E0CE0101960E94520B8091E8008E77AB +:101290008093E8000F900F900F90DF91CF91089509 +:1012A0002091F1012430F1F422E02093E9002FEFA6 +:1012B0003091E800215035FD06C035ED3A95F1F743 +:1012C00000002111F5CF2091E80025FF0BC040E080 +:1012D00050E065E070E00E94520B8091E8008E774C +:1012E0008093E8000895CF93DF93EC019091F10192 +:1012F000943009F046C080910C018823D9F0809188 +:101300000D018823B9F09093E9008FEF9091E800E8 +:10131000815095FD06C095E19A95F1F70000811185 +:10132000F5CF8091E80085FF2CC040E050E060E1FF +:1013300070E017C081E08093E9008FEF9091E800A2 +:10134000815095FD06C095ED9A95F1F70000811149 +:10135000F5CF8091E80085FF14C040E050E068E0E0 +:1013600070E0CE010E94520B8091E8008E7780934E +:10137000E80080E1FE01AEE5B1E001900D928A95B2 +:10138000E1F7DF91CF9108958091F001811109C0BB +:101390000E94E70C0E94440D8091E20084608093DB +:1013A000E20008951092F001089508950C942B2204 +:1013B0000E948C1B0E9431220E94EA0F0C94E308C9 +:1013C00042E061EC81E00E94610C42E061EC82E06D +:1013D0000E94610C42E061EC83E00E94610C42E1FA +:1013E00061EC84E00C94610C8091F301833009F48A +:1013F00055C030F4813071F0823009F48EC0089508 +:101400008A3009F47AC08B3009F460C0893009F061 +:101410009CC020C08091F201813A09F096C0809171 +:10142000E800877F8093E8008091F6019091F701B2 +:10143000892B21F460E18EE591E003C060E080E05B +:1014400090E070E00E949D0B8091E8008B77809384 +:10145000E80008958091F201813209F076C0809110 +:10146000F6019091F701009719F0039709F06DC00C +:101470008091E800877F8093E8008091E80082FDFA +:1014800005C08091F1018111F8CF5FC08091F1001A +:1014900080936E018091E8008B7753C08091F201B8 +:1014A000813A09F052C08091F6019091F701892BA1 +:1014B00009F04BC08091E800877F8093E80080911D +:1014C000E80080FFFCCF80910C0136C08091F201D2 +:1014D0008132D9F58091F6019091F701892BA9F518 +:1014E0008091E800877F8093E8000E94960C8091AD +:1014F000F40180930C010C9483148091F2018132E9 +:1015000021F58091E800877F8093E8000E94960C87 +:101510008091F50180936F0108958091F201813AE5 +:10152000A1F48091E800877F8093E8008091E80033 +:1015300080FFFCCF80916F018093F1008091E800E3 +:101540008E778093E8000C94960C089584B7877F7B +:1015500084BF88E10FB6F894809360001092600019 +:101560000FBE90E080E80FB6F894809361009093EE +:1015700061000FBE0E9439100E94E70C0E94440DCA +:101580008091E20084608093E20078940E94CA0F08 +:101590000E943B1082E091E00E94E50F0E94192218 +:1015A0008091F101853069F40E94531B8091EF0115 +:1015B0008823B1F30E947E1B882391F30E943C0B89 +:1015C000EFCF0E944110ECCF292F33272330310574 +:1015D000C9F064F42130310581F02230310509F081 +:1015E00043C08DE690E02AE333E042C0213231056A +:1015F000F1F02232310541F137C082E190E027EA73 +:1016000033E036C099278130910541F08230910551 +:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4 +:1016200002C0E6E0F3E0849190E09F0121C06430C5 +:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5 +:10164000318189E090E014C0643070F470E0FB01F7 +:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47 +:10166000FE4F808190E004C080E090E020E030E018 +:10167000FA0131832083089580E189BD82E189BD2B +:1016800009B400FEFDCF8091D8008F7D8093D800F3 +:101690008091E00082608093E0008091E00081FD15 +:1016A000FCCF0895CF92DF92EF92FF920F931F939A +:1016B000CF93DF93EC018B016A010E94B50C81117D +:1016C00033C0C114D10439F0F60180819181081B27 +:1016D000190BC80FD91FE12CF12C0115110519F1B7 +:1016E0008091E80085FD16C08091E8008E77809398 +:1016F000E800C114D10449F0F60180819181E80E1F +:10170000F91EF182E08285E00FC00E94B50C8823AB +:1017100021F30AC089918093F10001501109FFEF74 +:10172000EF1AFF0ADACF80E0DF91CF911F910F917E +:10173000FF90EF90DF90CF9008952091F8013091C5 +:10174000F9012617370748F06115710539F4209122 +:10175000E8002E772093E80001C0B90140E0611550 +:101760007105A9F12091F101222309F443C025302C +:1017700009F442C02091E80023FD40C02091E80018 +:1017800022FD32C02091E80020FFE9CF4091F30014 +:101790002091F20030E0342BFC01CF01611571057E +:1017A00059F02830310540F481918093F100615067 +:1017B00071092F5F3F4FF1CF41E02830310509F02B +:1017C00040E02091E8002E772093E800C8CF411137 +:1017D000C9CF0AC08091F101882361F0853061F0A2 +:1017E0008091E80083FD0AC08091E80082FFF2CF7B +:1017F00080E0089582E0089583E0089581E00895EF +:101800002091F8013091F9012617370748F061154A +:10181000710539F42091E8002E772093E80001C08B +:10182000B901FC0120E06115710591F18091F10190 +:10183000882309F440C0853009F43FC08091E80056 +:1018400083FD3DC08091E80082FD2FC08091E800BB +:1018500080FFE9CF2091F3008091F20090E0922B7D +:101860006115710559F08830910540F42491209359 +:10187000F1003196615071090196F2CF21E008978D +:1018800009F020E08091E8008E778093E800CBCFCC +:101890002111CCCF0AC08091F101882361F08530FD +:1018A00061F08091E80083FD0AC08091E80082FF2A +:1018B000F2CF80E0089582E0089583E0089581E00A +:1018C0000895982F973058F59093E900981739F0BC +:1018D0007091EC002091ED005091F00003C0242F96 +:1018E000762F50E021FF19C03091EB003E7F3093FE +:1018F000EB003091ED003D7F3093ED003091EB0037 +:1019000031603093EB007093EC002093ED00509326 +:10191000F0002091EE0027FF07C09F5FD3CF8F70AC +:101920008093E90081E0089580E008958091F201BC +:1019300087FF11C08091E80082FD05C08091F10110 +:101940008111F8CF11C08091E8008B770BC0809196 +:10195000F101882349F08091E80080FFF8CF809161 +:10196000E8008E778093E80008952091E40030919C +:10197000E50095E64091EC00842F817040FF22C085 +:101980008091E80080FD1CC08091F101882391F0D6 +:10199000853091F08091EB0085FD10C04091E4000E +:1019A0005091E5004217530729F39A01915011F71E +:1019B00084E0089582E0089583E0089581E0089529 +:1019C00080E008954091E80042FFDECF08950E9434 +:1019D000550D0E945D0DE0EEF0E080818160808316 +:1019E000E8EDF0E080818F77808319BCA7EDB0E04F +:1019F0008C918E7F8C9380818F7E80831092F001FA +:101A000008950F931F93CF93DF930E94550D0E946B +:101A10005D0DC8EDD0E088818F77888388818068EC +:101A2000888388818F7D888319BC1092F101109280 +:101A3000ED011092EF011092EE0100EE10E0F801BE +:101A400080818B7F808388818160888342E060E031 +:101A500080E00E94610CE1EEF0E080818E7F808367 +:101A6000E2EEF0E080818160808380818860808305 +:101A7000F80180818E7F8083888180618883DF91F7 +:101A8000CF911F910F910895E8EDF0E080818F7E56 +:101A90008083E7EDF0E080818160808384E082BF15 +:101AA00081E08093F0010C94010DE8EDF0E080817D +:101AB0008E7F80831092E20008951092DA001092D7 +:101AC000E10008951F920F920FB60F9211242F93E9 +:101AD0003F934F935F936F937F938F939F93AF93B6 +:101AE000BF93EF93FF938091E10082FF0BC0809141 +:101AF000E20082FF07C08091E1008B7F8093E100CC +:101B00000E94C90F8091DA0080FF1FC08091D80029 +:101B100080FF1BC08091DA008E7F8093DA00809175 +:101B2000D90080FF0DC080E189BD82E189BD09B483 +:101B300000FEFDCF81E08093F1010E94C40905C041 +:101B400019BC1092F1010E94D2098091E10080FF3E +:101B500019C08091E20080FF15C08091E2008E7F65 +:101B60008093E2008091E20080618093E2008091A6 +:101B7000D80080628093D80019BC85E08093F10181 +:101B80000E94D6098091E10084FF30C08091E2007C +:101B900084FF2CC080E189BD82E189BD09B400FECB +:101BA000FDCF8091D8008F7D8093D8008091E10097 +:101BB0008F7E8093E1008091E2008F7E8093E2002F +:101BC0008091E20081608093E2008091ED018823A2 +:101BD00011F084E007C08091E30087FD02C081E03E +:101BE00001C083E08093F1010E94D8098091E10057 +:101BF00083FF29C08091E20083FF25C08091E1002E +:101C0000877F8093E10082E08093F1011092ED01E3 +:101C10008091E1008E7F8093E1008091E2008E7FD1 +:101C20008093E2008091E20080618093E20042E0D4 +:101C300060E080E00E94610C8091F00088608093F9 +:101C4000F0000E94D509FF91EF91BF91AF919F9154 +:101C50008F917F916F915F914F913F912F910F9055 +:101C60000FBE0F901F9018951F920F920FB60F92F4 +:101C700011242F933F934F935F936F937F938F9391 +:101C80009F93AF93BF93CF93DF93EF93FF93C09155 +:101C9000E900CF708091EC00D82FD17080FDD0E8A2 +:101CA0001092E9008091F000877F8093F000789493 +:101CB0000E94780E1092E9008091F0008860809375 +:101CC000F000CD2BCF70C093E900FF91EF91DF9131 +:101CD000CF91BF91AF919F918F917F916F915F91C4 +:101CE0004F913F912F910F900FBE0F901F9018951D +:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3 +:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115 +:101D1000F10091938E13FBCF0E94F4098091E800AB +:101D200083FF1FC18091F2019091F301492F50E090 +:101D30004A30510508F015C1FA01EA5AFF4F0C94D8 +:101D4000B323803881F0823809F00BC18091F6010D +:101D50008F708093E9008091EB0085FB882780F9E4 +:101D60001092E90006C08091EE019091EF0191116F +:101D700082609091E800977F9093E8008093F10053 +:101D80001092F100C8C0282F2D7F09F0EAC08823E7 +:101D900019F0823061F0E5C08091F401813009F0E2 +:101DA000E0C0933009F080E08093EF012BC0809178 +:101DB000F401811127C08091F6018F7009F4D1C020 +:101DC0008093E9002091EB0020FF1CC0933021F4A8 +:101DD0008091EB00806214C09091EB009061909331 +:101DE000EB0021E030E0A90102C0440F551F8A95A5 +:101DF000E2F74093EA001092EA008091EB008860DD +:101E00008093EB001092E9008091E800877F86C004 +:101E10008111A7C01091F4011F778091E3008078B1 +:101E2000812B8093E3008091E800877F8093E80016 +:101E30000E94960C8091E80080FFFCCF8091E30027 +:101E400080688093E300111102C082E001C083E04A +:101E50008093F10186C08058823008F082C0809162 +:101E6000F4019091F5018C3D53E0950779F583E0FD +:101E70008A838AE289834FB7F894DE01139620E0C3 +:101E80003EE051E2E32FF0E050935700E49120FF51 +:101E900003C0E295EF703F5FEF708E2F90E0EA3065 +:101EA00010F0C79601C0C0968D939D932F5F24318B +:101EB00049F74FBF8091E800877F8093E8006AE28E +:101EC00070E0CE0101960E949D0B14C0AE014F5FE1 +:101ED0005F4F6091F6010E94E40ABC01009709F48B +:101EE00040C09091E800977F9093E80089819A81A3 +:101EF0000E94000C8091E8008B778093E80031C04D +:101F0000803879F58091E800877F8093E8008091A0 +:101F1000ED018093F1008091E8008E778093E800D6 +:101F20000E94960C1EC081111CC09091F401923049 +:101F3000C0F48091E800877F8093E8009093ED01E2 +:101F40000E94960C8091ED01811106C08091E30002 +:101F500087FD02C081E001C084E08093F1010E940E +:101F6000E0098091E80083FF0AC08091E800877F44 +:101F70008093E8008091EB0080628093EB00AA964A +:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A +:101F900008950895CF938091F1018823A1F0C09115 +:101FA000E900CF709091EC00892F817090FD80E85E +:101FB000C82B1092E9008091E80083FD0E94780E02 +:101FC000CF70C093E900CF910895909375018093ED +:101FD00074010895E0917401F0917501309721F03A +:101FE0000190F081E02D099480E00895E091740162 +:101FF000F0917501309721F00280F381E02D099472 +:102000000895E0917401F0917501309721F00480FA +:10201000F581E02D099408952091720130917301AA +:102020008217930771F09093730180937201E0918E +:102030007401F0917501309721F00680F781E02D51 +:1020400009940895209170013091710182179307CE +:1020500071F09093710180937001E0917401F0919F +:102060007501309721F00084F185E02D09940895E1 +:1020700008950C9438100E94921B0E9433030C9414 +:10208000541C9F92AF92BF92CF92DF92EF92FF9239 +:102090000F931F93CF93DF9300D000D000D0CDB724 +:1020A000DEB70E944B030DE010E0AA24A394B12CEC +:1020B000902E802F0E943904980129583E4F6901C3 +:1020C000F901F080F826A1F40150110988F78FEF8B +:1020D00089838A831B820E949B1B8160782F9D834A +:1020E0008C8349815A816B818D810E94D8102FC0C9 +:1020F0009091DA0191FF04C08E830E943F048E818B +:1021000025E030E0A501022E01C0440F0A94EAF751 +:10211000E42E4F21C1F029839A828E2191E009F4A7 +:1021200090E09B830E949B1B8160782F9D838C8312 +:1021300049815A816B818D810E94D810F60180817E +:10214000E826E08204C021503109E0F6BDCF0E94AC +:102150003B1F109176010E94EA0F1817B9F00E94F8 +:10216000EA0F8093760126960FB6F894DEBF0FBE75 +:10217000CDBFDF91CF911F910F91FF90EF90DF9036 +:10218000CF90BF90AF909F900C94E30826960FB627 +:10219000F894DEBF0FBECDBFDF91CF911F910F919D +:1021A000FF90EF90DF90CF90BF90AF909F900895F9 +:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82 +:1021C0000FBECDBF4F83588769877A878B87DE0123 +:1021D000119686E0FD0111928A95E9F785E0FE01EE +:1021E000379601900D928A95E1F749815A816B816A +:1021F0007C818D819E810E9421172B960FB6F894C9 +:10220000DEBF0FBECDBFDF91CF910895CF9388235E +:1022100009F4C2C0C82F823859F40E94EA0F81FD28 +:10222000BBC089E30E94FB190E94C81A89E30CC055 +:10223000833879F40E94EA0F80FDAEC083E50E94E6 +:10224000FB190E94C81A83E50E943D1ACF910C9495 +:10225000C81A843859F40E94EA0F82FD9DC087E4B1 +:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6 +:10227000813A48F48C2F0E947E2181118DC08C2FD1 +:102280000E94FB19E3CF80E28C0F883048F4C770BE +:1022900081E001C0880FCA95EAF70E94811AD6CF63 +:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB +:1022B00083E890E005C081E890E002C082E890E009 +:1022C000CF910C940C1088E58C0F833108F064C01A +:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118 +:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186 +:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106 +:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173 +:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB +:1023200038C082EE90E035C089EE90E032C08AEE8F +:1023300090E02FC085EB90E02CC086EB90E029C0A8 +:1023400087EB90E026C08CEC90E023C08DEC90E011 +:1023500020C083E891E01DC08AE891E01AC082E9BC +:1023600091E017C084E991E014C081E292E011C0CD +:1023700083E292E00EC084E292E00BC085E292E03C +:1023800008C086E292E005C087E292E002C08AE2DD +:1023900092E0CF910C942210CF910895882309F4F4 +:1023A0004BC0823859F40E94EA0F81FF45C089E38F +:1023B0000E94FB190E94C81A89E30CC0833871F48B +:1023C0000E94EA0F80FF38C083E50E94FB190E943B +:1023D000C81A83E50E943D1A0C94C81A843859F42F +:1023E0000E94EA0F82FF28C087E40E94FB190E9426 +:1023F000C81A87E4EFCF9CEF980F913A58F390E218 +:10240000980F983050F4877091E001C0990F8A9529 +:10241000EAF7892F0E94871ADFCF9BE5980F933048 +:1024200020F480E090E00C940C10885A833120F462 +:1024300080E090E00C9422100895882321F00E94FF +:10244000811A0C94C81A0895882321F00E94871AD3 +:102450000C94C81A08957F928F929F92AF92BF9268 +:10246000CF92DF92EF92FF920F931F93CF93DF9360 +:102470001F92CDB7DEB77C01C62E772EFC010581F9 +:1024800002950F70128111110E949E1A0E94F41978 +:10249000882379F0112369F080E28C0D883048F0B0 +:1024A00082E00E94DD190E94F41991E0D82ED9260D +:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C +:1024C0000C94B323872D807F072D0F70882311F084 +:1024D0000295007F112389F0002309F490C180E266 +:1024E0008C0D883020F4802F0E94811A03C0802F29 +:1024F0000E94911A0E94C81A82C18C2D0E94CE118E +:10250000002309F495C180E28C0D883020F4802FDF +:102510000E94871A03C0802F0E94971A0E94C81A2F +:1025200087C1972D907F872D8F70903211F0829503 +:10253000807FCC2021F0F1E0CF16B1F01EC0112336 +:1025400049F0002309F414C1013009F011C10E94BF +:10255000B11A6EC1002319F0013009F469C18983F1 +:102560000E94B41A89810AC1112321F0023008F0B7 +:102570005FC1FEC001115CC101C1112321F0002324 +:1025800009F4F6C03CC1002309F4F8C03EC1872D10 +:1025900086958695837090E0009719F0019761F019 +:1025A00047C1112321F08C2D972D937002C080E03C +:1025B00090E00E940C103CC1112321F08C2D972D2E +:1025C000937002C080E090E00E94221031C18C2DF7 +:1025D000112319F00E94431E02C00E94AB1E0E94EC +:1025E000301F26C1872D837009F052C0111120C100 +:1025F0008C2D829586958770880F880F9C2D9F70F3 +:10260000892E912CA12CB12C082E04C0880C991C69 +:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041 +:1026200020E030E0B901A80104C0440F551F661F27 +:10263000771F8A95D2F7CB01BA0160957095809586 +:10264000909503C060E070E0CB01272D269526957C +:10265000237030E02230310569F02330310589F0F4 +:10266000682979298A299B292130310571F00E9436 +:102670006918DEC0682979298A299B290E94851852 +:10268000D7C00E946918C501B4010E944D18D0C07E +:10269000112319F0872D817001C08695882309F4D4 +:1026A000C7C08C2D829586958770880F880F9C2DCA +:1026B0009F70892E912CA12CB12C082E04C0880C5F +:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC +:1026D00010E020E030E0B901A80104C0440F551F0C +:1026E000661F771F8A95D2F7CB01BA016095709566 +:1026F0008095909503C060E070E0CB01272D269572 +:1027000026952370422F50E04230510569F0433046 +:10271000510589F0682979298A299B294130510579 +:1027200071F00E94431984C0682979298A299B295C +:102730000E945F197DC00E944319C501B4010E9427 +:10274000271976C08C2D90E0FC01E05EF109E5319F +:10275000F10508F050C0E059FF4F0C94B3230C2D45 +:102760000F70872D8F71112331F00E94C018802FB8 +:102770000E941D125DC00E94E118802F0E94241249 +:1027800057C0112339F0011153C0872D8F710E945A +:1027900006194EC0023008F04BC0F7CF112339F0B4 +:1027A000872D8F710E94C01843C01123C9F3872D54 +:1027B0008F710E94E1183CC0112329F0872D8F7181 +:1027C0000E94AB1835C00E94A11832C0112351F0ED +:1027D000172D1F71812F0E94C01863E0812F0E9466 +:1027E000D41926C081E00E94DD19023008F182E090 +:1027F0000E94DD191DC0112331F0002389F28C2DB8 +:102800000E94061115C0002391F28C2D0E94CE115A +:102810000FC0472D4F706C2DC7010E9415050E94F7 +:10282000C51706C0472D4F706C2DC7010E94F205D9 +:10283000DD20F9F00E94D01980FD1BC0F701128243 +:102840000E94CA190E94C018C7010E9448140E9421 +:10285000CA190F90DF91CF911F910F91FF90EF90C8 +:10286000DF90CF90BF90AF909F908F907F900C940F +:10287000E1180F90DF91CF911F910F91FF90EF9092 +:10288000DF90CF90BF90AF909F908F907F900895F2 +:102890000F931F93CF93DF93EC01888199812B8154 +:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B +:1028B0000E944A05882371F0688179818A810E948B +:1028C000C6198C010E947B190E944218B801CE01E2 +:1028D0000E942B12DF91CF911F910F9108950E94BA +:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471 +:1028F000E11F0E94301F80E090E00E940C1080E0F9 +:1029000090E00C9422100E948E1A0C946F140E9476 +:10291000BB19292F22952F7030E02C3031054CF453 +:102920002A3031056CF42250310922303105A8F4E7 +:1029300007C02C30310569F02F30310551F00DC042 +:10294000803F69F018F4803E40F409C0843F29F4C8 +:1029500006C093FB882780F9089580E0089581E000 +:102960000895CF93DF9300D000D01F92CDB7DEB78C +:102970000F900F900F900F900F90DF91CF910895CF +:10298000CF93DF9300D000D000D0CDB7DEB726962E +:102990000FB6F894DEBF0FBECDBFDF91CF91089583 +:1029A0001F93CF93DF93C091850116E0809186013C +:1029B000C81799F0D0E01C9FF0011D9FF00D112465 +:1029C000E957FE4F408151816281738184819581F5 +:1029D0000E94C0142196C770E9CFDF91CF911F915B +:1029E00008954091B7015091B8016091B90170917B +:1029F000BA018091BB019091BC010C94C0148091EC +:102A0000BC0182958F7009F054C08091B901882370 +:102A100009F44FC080918501A09186016091B701B2 +:102A20007091B8014091BA015091BB01B6E08A178C +:102A300009F43FC090E041155105C1F17F3F11F409 +:102A40006F3FA1F1B89FF001B99FF00D1124E95734 +:102A5000FE4F218172132AC02081621327C0228178 +:102A6000211124C0238134812417350710F421500B +:102A70003109241B350B283C3105C0F42091BC01E1 +:102A80002F7020612093BC0126E0289FF001299F30 +:102A9000F00D1124E457FE4F80818F708061808398 +:102AA00087EB91E00E9448140C94D0140196877033 +:102AB000BECF0895CF92DF92EF92FF920F931F93B4 +:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32 +:102AD0000FBECDBF8C0185E0F801DE011D9601908F +:102AE0000D928A95E1F7D8014C9111965C9111975E +:102AF00012966C9112971396CD90DC9014973091AA +:102B0000B7017091B8018091BA019091BB01009713 +:102B100009F46BC17F3F19F43F3F09F466C1E090AF +:102B2000B901EE2009F4C0C02091BC01C816D90635 +:102B300028F0F601E81BF90BCF0104C080959095B1 +:102B40008C0D9D1DFF24F394883C910578F0F12CA9 +:102B5000207F09F0C6C07C2DD98AC88A89890E9445 +:102B6000B11487EB91E00E944814B1C0822F807F9E +:102B700009F046C0751314C0341312C0611110C09F +:102B80002F7020612093BC010E94F11487EB91E02B +:102B90000E9448148091BC01D80115968C932EC0D8 +:102BA000CD2819F15F3F11F44F3FF9F0F62E611176 +:102BB0001CC0809185012091860136E0821709F4BE +:102BC0005AC090E0389FF001399FF00D1124E95769 +:102BD000FE4F7181571306C07081471303C0728185 +:102BE000711103C001968770E9CFF62E662309F4B0 +:102BF00018C18091BC0181608093BC01F12C11C18E +:102C0000751308C0341306C0611104C08091BC0163 +:102C1000D801C3C04D875E878D859E856A8B0E94D3 +:102C200087146A898823E1F16623D1F12091BC01E0 +:102C3000822F82958F7090E0029774F08091B70197 +:102C40009091B80198878F831986DB86CA862C8776 +:102C5000CE0107960E94481486E0F801A7EBB1E088 +:102C600001900D928A95E1F70E94FF140E94F114E1 +:102C7000FF24F394D6C04D875E878D859E850E9484 +:102C8000BB19292F22952F7030E0223031050CF02E +:102C9000BCC09F7009F0B6C0805E883008F4C1C027 +:102CA000C8010E944814E4CFC816D90608F453C0DE +:102CB000F601E81BF90BCF01883C910508F450C0E0 +:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E +:102CD000F1E086E0DF011D928A95E9F70E94F11488 +:102CE000A0C0751314C0341312C0611110C08091BC +:102CF000BC01F8018583C8010E94481486E0E7EB17 +:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C +:102D10005E878D859E856A8B0E9487146A898823C9 +:102D200009F4BECF662309F4BBCF2091BC01822FEA +:102D300082958F7090E002970CF48ECF8091B7014E +:102D40009091B8019A8389831B82DD82CC822E8385 +:102D5000CE0101967FCF809590958C0D9D1DACCFB7 +:102D6000F62E662309F49CCF75132EC034132CC0A5 +:102D70002091BC0120FD1FC0822F82958F70D9F059 +:102D8000D80115962C9315978F3049F08F5F982FA7 +:102D90009295907F822F8F70892B15968C93C80106 +:102DA0000E94481486E0F801A7EBB1E001900D9273 +:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7 +:102DC0000D928A95E1F72DC04D875E878D859E8592 +:102DD0000E948714811140CF8091BC018160809353 +:102DE000BC01C8010E9448141CC0662309F458CFD6 +:102DF0004D875E878D859E850E948714882309F400 +:102E00004FCF2ACF811148CF0CC0243031050CF0B0 +:102E100047CF9F7009F440CFF8019581907F09F06A +:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D +:102E3000DF91CF911F910F91FF90EF90DF90CF9096 +:102E400008951F93CF93DF93CDB7DEB72C970FB6BE +:102E5000F894DEBF0FBECDBF4F83588769877A874E +:102E60008B879C87CE0107960E945A15882369F0AC +:102E70008F8198852A853B85232BF1F19F3F09F0AF +:102E800063C08F3F09F060C037C086E0FE0137960F +:102E9000DE01119601900D928A95E1F76F81788598 +:102EA000EA85FB85309741F17F3F11F46F3F21F1B7 +:102EB0002091860130E0C9010196877099274091E1 +:102EC000850150E08417950709F447C069837A8328 +:102ED000FD83EC8396E0929FD001939FB00D112467 +:102EE000A957BE4FFE01319601900D929A95E1F7D8 +:102EF000809386010E94D01416E080918501909104 +:102F000086018917C1F1189FC001112489579E4F6E +:102F10000E945A15882379F1E09185011E9FF001E6 +:102F20001124E957FE4F4081518162817381848170 +:102F300095810E94C0148091850190E00196877070 +:102F4000992780938501D9CF4F81588569857A85E6 +:102F50008B859C850E94C014CFCF0E948314109251 +:102F6000860110928501E7EBF1E086E0DF011D921A +:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45 +:102F8000CDBFDF91CF911F910895EF92FF920F93E4 +:102F90001F93CF93DF938C01009709F46CC0F12C41 +:102FA000EE24E394E8012196F8018491843740F4FB +:102FB000843008F051C0813081F0823019F15BC05B +:102FC000853709F444C0A8F19CE7980F903708F0C2 +:102FD00052C08F770E94CE1141C00E5F1F4FFE017D +:102FE000C49180E28C0F883048F4C7708E2D01C0E8 +:102FF000880FCA95EAF70E94A11A14C08C2F0E946C +:1030000006112DC00E5F1F4FFE01C49180E28C0F90 +:10301000883058F4C7708E2D01C0880FCA95EAF722 +:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3 +:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3 +:103040009FE00197F1F700C00000C150F6CF0E5F7E +:103050001F4FFE01F49003C00E9406118E018F2DB8 +:10306000882309F49FCFEFE9FFE03197F1F700C023 +:1030700000008150F5CFDF91CF911F910F91FF900C +:10308000EF90089508956093C1017093C2018093F9 +:10309000C3019093C4010C946F140F931F9300917C +:1030A000C1011091C2012091C3013091C401DC0122 +:1030B000CB01802B912BA22BB32B8093C10190933A +:1030C000C201A093C301B093C4011F910F910C944E +:1030D0006F140F931F930091C1011091C2012091B1 +:1030E000C3013091C401DC01CB0180239123A223D1 +:1030F000B3238093C1019093C201A093C301B09305 +:10310000C4011F910F910C946F140F931F930091A2 +:10311000C1011091C2012091C3013091C401DC01B1 +:10312000CB0180279127A227B3278093C1019093D9 +:10313000C201A093C301B093C4011F910F910C94DD +:103140006F141092BD011092BE011092BF01109237 +:10315000C0010C946F1441E050E060E070E004C0E6 +:10316000440F551F661F771F8A95D2F74093BD0104 +:103170005093BE016093BF017093C0010C946F1413 +:1031800041E050E060E070E004C0440F551F661F4E +:10319000771F8A95D2F78091BD019091BE01A091D1 +:1031A000BF01B091C001482B592B6A2B7B2B409358 +:1031B000BD015093BE016093BF017093C0010C9498 +:1031C0006F1441E050E060E070E004C0440F551F10 +:1031D000661F771F8A95D2F7409550956095709538 +:1031E0008091BD019091BE01A091BF01B091C0013D +:1031F000482359236A237B234093BD015093BE018A +:103200006093BF017093C0010C946F1441E050E0D3 +:1032100060E070E004C0440F551F661F771F8A9559 +:10322000D2F78091BD019091BE01A091BF01B091F4 +:10323000C001482759276A277B274093BD01509337 +:10324000BE016093BF017093C0010C946F140F9383 +:103250001F930091BD011091BE012091BF013091DB +:10326000C001DC01CB01802B912BA22BB32B8093CF +:10327000BD019093BE01A093BF01B093C0011F9107 +:103280000F910C946F140F931F930091BD01109137 +:10329000BE012091BF013091C001DC01CB01802330 +:1032A0009123A223B3238093BD019093BE01A093E9 +:1032B000BF01B093C0011F910F910C946F140F9335 +:1032C0001F930091BD011091BE012091BF0130916B +:1032D000C001DC01CB0180279127A227B32780936F +:1032E000BD019093BE01A093BF01B093C0011F9197 +:1032F0000F910C946F140895CF92DF92EF92FF928A +:103300000F931F93CF93DF938C01C090C101D09096 +:10331000C201E090C301F090C4018091BD01909181 +:10332000BE01A091BF01B091C001C82AD92AEA2AE2 +:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520 +:10334000A795979587950A94D2F780FF06C0B80194 +:103350008C2F0E944808019721F4219760F780E0A4 +:1033600001C08C2FDF91CF911F910F91FF90EF90B3 +:10337000DF90CF900895CF93DF93EC010E947C19EA +:10338000BE010E944808DF91CF910895CB010E94B1 +:10339000BB1908958091C5018595859585950895FA +:1033A0008091C5018770089598E0899F900111244C +:1033B000262B2093C5010C94C0182091C50180953F +:1033C00082238093C501982F977069F430E0482FCD +:1033D000552747FD50952417350729F08595859584 +:1033E00085950C94E11808959091C501977081E03E +:1033F00009F480E0089590910C01992321F09091B7 +:103400000D01911109C020910E0130910F01F901B8 +:1034100032969FEF40E01FC0982F9695969596950F +:103420009F3050F5E0910E01F0910F01E90FF11D71 +:10343000877021E030E0A90102C0440F551F8A9532 +:10344000E2F7CA019181892B818308959F3F39F06A +:103450004F5F4E3041F051915813F8CF0DC05111CC +:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08 +:1034700097FDFA9582830895089590910C01992300 +:1034800021F090910D01911109C020910E01309110 +:103490000F01F9013296205F3F4F1FC0982F96957C +:1034A000969596959F30F0F4E0910E01F0910F0102 +:1034B000E90FF11D877021E030E0A90102C0440F3F +:1034C000551F8A95E2F7CA018095918189238183EE +:1034D00008953196E217F30729F090819813F9CFF8 +:1034E0001082F7CF089581E090E0E0910E01F09115 +:1034F0000F01E80FF91F1082019680319105A9F79D +:1035000008959091D901892B8093D90108958095D0 +:103510009091D90189238093D90108951092D901FE +:1035200008959091D801892B8093D80108958095B2 +:103530009091D80189238093D80108951092D801E1 +:1035400008959091D701892B8093D7010895809594 +:103550009091D70189238093D70108951092D701C4 +:1035600008958093C60108951092C6010895809130 +:103570000E0190910F01FC0131969C01205F3F4F9D +:1035800080E0919191118F5FE217F307D1F70895D1 +:10359000E0910E01F0910F018091D9018083E091BB +:1035A0000E01F0910F0190818091D801892B8083C9 +:1035B000E0910E01F0910F0190818091D701892B4C +:1035C00080838091C601882361F0E0910E01F09123 +:1035D0000F019081892B80830E94B71A811110926C +:1035E000C60180910E0190910F010C94F60F20E01E +:1035F000009739F0AC0141505109842395232F5F86 +:10360000F7CF822F0895CF92DF92EF92FF926C0155 +:10361000EE24FF24C114D104E104F10421F0C70118 +:10362000B60120E101C020E0C72ED82EE92EFF24EC +:10363000C114D104E104F10419F0285FC701B601F7 +:103640006B017C0154E0F694E794D794C7945A95A3 +:10365000D1F7C114D104E104F10419F02C5FC701C2 +:10366000B6016B017C0142E0F694E794D794C794CD +:103670004A95D1F7C114D104E104F10419F02E5F89 +:10368000C701B601DC01CB01B695A7959795879543 +:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5 +:1036A000DF90CF9008958091F101843021F1109244 +:1036B000DB0120E488E190E00FB6F894A8958093B0 +:1036C00060000FBE2093600080E00E94E30883B793 +:1036D000817F846083BF83B7816083BF789488953E +:1036E00083B78E7F83BF88E10FB6F8948093600024 +:1036F000109260000FBE0895089508950E947C1BEB +:103700000E944B030E947D1B0E94400491E08111A6 +:1037100001C090E0892F08950E9483140E94EA0F4F +:103720000C94E30882E084BD93E095BD9AEF97BDC9 +:1037300080936E0008952FB7F8948091DC019091EA +:10374000DD01A091DE01B091DF012FBF0895CF927E +:10375000DF92EF92FF920F931F932FB7F89440914F +:10376000DC015091DD016091DE017091DF012FBF1E +:103770006A017B01EE24FF248C0120E030E0C016BA +:10378000D106E206F30610F4415051099A01281BB4 +:10379000390BC9011F910F91FF90EF90DF90CF90EF +:1037A00008951F920F920FB60F9211248F939F933B +:1037B000AF93BF938091DC019091DD01A091DE0178 +:1037C000B091DF010196A11DB11D8093DC019093A2 +:1037D000DD01A093DE01B093DF01BF91AF919F9116 +:1037E0008F910F900FBE0F901F9018950E94E70CBD +:1037F000F8942FEF87EA91E6215080409040E1F75E +:1038000000C0000087E090EBDC018093FB01909307 +:10381000FC01A093FD01B093FE019CE088E10FB68E +:10382000F894A895809360000FBE90936000FFCF3E +:10383000EF92FF920F931F93CF93DF93D82FCDE09A +:103840008C2F0E94390405E010E0E82EF12CC7010E +:10385000002E02C0959587950A94E2F780FF09C073 +:10386000602F7C2F80E00E94F305D81302C081E016 +:1038700006C00150110958F7C15010F780E0DF91E0 +:10388000CF911F910F91FF90EF900895CF93C82F84 +:103890008CE20E94181C882321F08C2FCF910C946D +:1038A000181C80E0CF910895CF930E949B1D811139 +:1038B00002C00E94811DC5E6C15049F00E944B0321 +:1038C0008FE39CE90197F1F700C00000F5CF89E292 +:1038D0000E94461C811113C18AE20E94461C81117C +:1038E0000E94811D85E00E94461C81110E94F61BEA +:1038F0000E94A61D8093DA0187E00E94461C88235F +:10390000A9F18BE10E94461C882351F08091DA01D5 +:1039100081FB222720F991E0922790FB81F90EC0CC +:103920008EE00E94461C882361F08091DA0182FBC0 +:10393000222720F991E0922790FB82F98093DA0107 +:1039400015C080E10E94461C9091DA01882341F065 +:1039500093FB222720F981E0822780FB93F904C0A2 +:10396000892F809580FB90F99093DA018091DA019C +:103970000E94AA1D0E94B81D8093FA0180EE0E9449 +:10398000461C882341F08091FA01982F909590FB76 +:1039900080F98093FA0189E30E94461C882359F03C +:1039A0008091FA0181FB222720F991E0922790FB78 +:1039B00081F98093FA0182EE0E94461C882359F017 +:1039C0008091FA0182FB222720F991E0922790FB57 +:1039D00082F98093FA0186EE0E94461C882359F0F2 +:1039E0008091FA0183FB222720F991E0922790FB36 +:1039F00083F98093FA0183EE0E94461C882359F0D4 +:103A00008091FA0184FB222720F991E0922790FB14 +:103A100084F98093FA0185E30E94461C882359F0BB +:103A20008091FA0185FB222720F991E0922790FBF3 +:103A300085F98093FA0181E30E94461C882359F09E +:103A40008091FA0186FB222720F991E0922790FBD2 +:103A500086F98093FA0181E10E94461C882359F07F +:103A60008091FA0187FB222720F991E0922790FBB1 +:103A700087F98093FA018091FA010E94BC1D809120 +:103A8000FA0187FB882780F980930D0187E20E9465 +:103A9000461CC82F8EE10E94461C8111C2608FE136 +:103AA0000E94461C8111C46080E20E94461C811164 +:103AB000C86081E20E94461C8111C06182E20E94BE +:103AC000461C8111C06283E20E94461C8111C064C1 +:103AD00084E20E94461C882311F0C06802C0CC23F7 +:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4 +:103AF000682F70E080E090E0CF910C944318CF9154 +:103B000008956DEE7EEF80E090E00E94ED2360E08E +:103B100082E090E00E94DB2360E083E090E00E947E +:103B2000DB2360E084E090E00E94DB2360E085E03E +:103B300090E00C94DB2380E090E00E94D52321E00C +:103B40008D3E9E4F09F020E0822F089582E090E0A4 +:103B50000C94CD23682F82E090E00C94DB2383E06B +:103B600090E00C94CD23682F83E090E00C94DB234D +:103B700084E090E00C94CD23682F84E090E00C94D6 +:103B8000DB238091E20180FF0BC06091130185E08F +:103B9000689FB001112475956795759567952BC041 +:103BA00081FF09C06091130185E0689FB001112475 +:103BB0007595679520C082FF07C06091130185E06D +:103BC000689FB001112417C09091E3019923D1F0AF +:103BD00060911201961788F72091130185E0289FC4 +:103BE00090011124929FA001939F500D112470E029 +:103BF000CA010E949F236038710540F46115710568 +:103C000039F002C065E070E0862F08958FE70895CF +:103C100081E008958091E20180FF08C06091110168 +:103C200070E0759567957595679521C081FF06C011 +:103C30006091110170E07595679519C082FF04C00D +:103C40006091110170E010C09091E3019923C1F0DF +:103C5000609110019617A0F780911101899FC00112 +:103C6000112470E00E949F236038710528F46115CB +:103C7000710521F0862F08958FE7089581E008955A +:103C800061E070E0F4CF803F21F40E94C11D819576 +:103C900004C0813F29F40E94C11D8093E60108956C +:103CA000823F21F40E94C11D819504C0833F29F405 +:103CB0000E94C11D8093E5010895893F19F40E9477 +:103CC0000A1E05C08A3F31F40E940A1E8195809326 +:103CD000E70108958B3F21F40E940A1E819504C0DC +:103CE0008C3F29F40E940A1E8093E8010895843FC6 +:103CF00021F48091E401816017C0853F21F4809117 +:103D0000E401826011C0863F21F48091E401846067 +:103D10000BC0873F21F48091E401886005C0883F93 +:103D200031F48091E40180618093E40108958D3F36 +:103D300021F48091E20181600BC08E3F21F48091DB +:103D4000E201826005C08F3F29F48091E201846026 +:103D50008093E2010895803F39F48091E60187FF66 +:103D60006CC01092E60169C0813F29F48091E601A0 +:103D70001816BCF362C09091E501823F29F497FFC9 +:103D80005CC01092E50159C0833F19F41916CCF3B9 +:103D900054C0893F41F48091E70118160CF04DC0E2 +:103DA0001092E7014AC08A3F29F48091E70187FF1A +:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6 +:103DC0001092E8013AC08C3F29F48091E80118165E +:103DD000BCF333C0843F21F48091E4018E7F17C08F +:103DE000853F21F48091E4018D7F11C0863F21F44D +:103DF0008091E4018B7F0BC0873F21F48091E40127 +:103E0000877F05C0883F31F48091E4018F7E8093E5 +:103E1000E40113C08D3F21F48091E2018E7F0BC03D +:103E20008E3F21F48091E2018D7F05C08F3F29F400 +:103E30008091E2018B7F8093E2018091E501811105 +:103E40000EC08091E60181110AC08091E7018111C5 +:103E500006C08091E801811102C01092E30108952B +:103E600084EE91E00E9401100E949B1B9093E1015F +:103E70008093E00108951F93CF93DF938091E00139 +:103E80009091E1010E94A71BAC019091E30199235D +:103E900021F02091140130E006C0209115018AE044 +:103EA000289F900111244217530708F486C080917F +:103EB000E501C091E601D091E7011091E80181117F +:103EC00007C0C11176C0D11174C0111172C075C084 +:103ED0009F3F19F09F5F9093E301181624F40E940E +:103EE000C11D8093E5018091E50187FF05C00E9417 +:103EF000C11D81958093E5011C1624F40E94C11D0B +:103F00008093E6018091E60187FF05C00E94C11DF4 +:103F100081958093E6016091E501662339F1C091B6 +:103F2000E601CC2319F1772767FD7095872F972F2E +:103F30000E94B02223E333E343E35FE30E941423B0 +:103F40000E947D226093E5016C2F772767FD7095B5 +:103F5000872F972F0E94B02223E333E343E35FE3ED +:103F60000E9414230E947D226093E6011D1624F412 +:103F70000E940A1E8093E7018091E70187FF05C038 +:103F80000E940A1E81958093E701111624F40E9475 +:103F90000A1E8093E8018091E80187FF05C00E9416 +:103FA0000A1E81958093E801DF91CF911F910C94B7 +:103FB000301F9F3F09F08ECF96CFDF91CF911F9199 +:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE +:103FD0001092E3011092E2010895833081F128F4F8 +:103FE000813059F08230D1F00895853009F449C00C +:103FF000B8F1863009F456C0089580911501262F36 +:1040000030E0280F311D2F3F310524F4680F6093F5 +:10401000150108958FEF8093150108958091140183 +:10402000262F30E0280F311D2F3F310524F4680F73 +:104030006093140108958FEF809314010895809187 +:104040001301262F30E0280F311D2F3F310524F4B6 +:10405000680F6093130108958FEF80931301089503 +:1040600080911201262F30E0280F311D2F3F31059E +:1040700024F4680F6093120108958FEF809312016A +:10408000089580911101262F30E0280F311D2F3F18 +:10409000310524F4680F6093110108958FEF809328 +:1040A0001101089580911001262F30E0280F311D55 +:1040B0002F3F310524F4680F6093100108958FEFAE +:1040C000809310010895833011F128F4813049F074 +:1040D000823091F00895853081F120F18630C1F170 +:1040E000089580911501681720F4861B80931501AF +:1040F000089510921501089580911401681720F415 +:10410000861B8093140108951092140108958091E4 +:104110001301681720F4861B8093130108951092F1 +:104120001301089580911201681720F4861B809373 +:1041300012010895109212010895809111016817DB +:1041400020F4861B809311010895109211010895A7 +:1041500080911001681720F4861B80931001089548 +:104160001092100108950F931F938D3109F46BC0C5 +:1041700008F03FC08E3009F47FC0C0F4873009F4E6 +:1041800069C068F4863009F0B1C08091DA01817F9E +:104190008E7F8093DA0181E08093EA01A8C08830A5 +:1041A00009F4A2C08B3009F49FC0A0C0863109F485 +:1041B0009BC078F4803109F472C0813109F096C057 +:1041C0000E94831490910D0181E0892780930D0155 +:1041D0008BC0893109F488C08B3109F087C0809188 +:1041E000DA0181FB222720F991E0922790FB81F9E7 +:1041F0004CC0853309F470C048F4873209F46CC0B0 +:1042000008F459C0893209F467C070C0833438F4A7 +:104210008A3308F04EC0883309F466C067C083341F +:1042200009F45AC0883409F061C00E9483140FEF6A +:1042300013ED20E3015010402040E1F700C00000E2 +:104240000E94F61B51C00E9437220E94EA0F0E9472 +:10425000E3084AC09091DA01892F8095817080FB34 +:1042600090F929F0966098609093DA0140C0997FA8 +:10427000977F9093DA0138C08091DA0182FB222780 +:1042800020F991E0922790FB82F98093DA0199233B +:1042900059F18091DA0181608093DA0125C0809123 +:1042A000DA0183FB222720F991E0922790FB83F922 +:1042B000ECCF895301C08D5141E050E060E070E0E7 +:1042C0008A019B0104C0000F111F221F331F8A9512 +:1042D000D2F7C901B80104C061E070E080E090E06D +:1042E0000E9443180E94831481E001C080E01F9166 +:1042F0000F91089580E0089580E00895CF93C82F2E +:104300008091EA01813079F018F08230E9F187C0BC +:10431000E0910E01F0910F018081813169F08232CC +:1043200009F07FC009C0E0910E01F0910F0180817A +:10433000813111F0823261F48C2F0E947A21811137 +:1043400004C08C2F0E94B3201DC081E090E01AC0F1 +:104350008C2F0E947C21811114C0C43179F048F463 +:10436000CB3079F0C03109F060C082E08093EA017F +:1043700008C0C93219F0C83321F057C01092EA01C1 +:1043800054C081E0817053C0C93289F118F5C4313D +:1043900071F1A8F4C73009F046C08AE08093150196 +:1043A00094E19093140193E0909313018093120190 +:1043B00088E08093110188E28093100134C0CE51CF +:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB +:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC +:1043E00013C0C13579F0C235F1F461E00DC08091A0 +:1043F000E901882319F01092E90115C081E080934A +:10440000EA0115C061E006C08091E9010E94ED1F3C +:104410000AC06AE08091E9010E94632004C0109202 +:10442000EA0180E004C081E002C080E0ABCFCF9120 +:104430000895E1E8F0E08081886080838081816078 +:1044400080838FB7F89493E09093890090ED9093D8 +:1044500088008FBF0895EFE6F0E08081826080835E +:104460000895EFE6F0E080818D7F80830895EFE688 +:10447000F0E0908182E08927808308951F920F9257 +:104480000FB60F9211242F933F934F935F936F9327 +:104490007F938F939F93AF93BF93EF93FF938091FD +:1044A000EB019091EC0101969093EC018093EB016C +:1044B000811103C082E00E94E308E091EC01E695DF +:1044C000E695F0E0EC54FB4FE4918091EB018E1304 +:1044D00003C080E00E94E308FF91EF91BF91AF918C +:1044E0009F918F917F916F915F914F913F912F910C +:1044F0000F900FBE0F901F90189504D06894B111C3 +:104500008DC0089570D088F09F5790F0B92F9927EB +:10451000B751A0F0D1F0660F771F881F991F1AF0CE +:10452000BA95C9F712C0B13081F077D0B1E00895E3 +:1045300074C0672F782F8827B85F39F0B93FCCF364 +:10454000869577956795B395D9F73EF490958095C4 +:10455000709561957F4F8F4F9F4F0895E89409C0E4 +:1045600097FB3EF490958095709561957F4F8F4FA6 +:104570009F4F9923A9F0F92F96E9BB279395F695BC +:10458000879577956795B795F111F8CFFAF4BB0F3A +:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E +:1045A000882311F096E911C0772321F09EE8872F28 +:1045B000762F05C0662371F096E8862F70E060E0E4 +:1045C0002AF09A95660F771F881FDAF7880F96955D +:1045D000879597F9089557FD9058440F551F59F046 +:1045E0005F3F71F04795880F97FB991F61F09F3FE0 +:1045F00079F087950895121613061406551FF2CF09 +:104600004695F1DF08C0161617061806991FF1CF58 +:1046100086957105610508940895E894BB2766277F +:104620007727CB0197F908950BD078C069D028F08F +:104630006ED018F0952309F05AC05FC01124EECF58 +:10464000CADFA0F3959FD1F3950F50E0551F629FED +:10465000F001729FBB27F00DB11D639FAA27F00DDB +:10466000B11DAA1F649F6627B00DA11D661F829F02 +:104670002227B00DA11D621F739FB00DA11D621FE7 +:10468000839FA00D611D221F749F3327A00D611D04 +:10469000231F849F600D211D822F762F6A2F1124E6 +:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39 +:1046B000BB1F661F771F881F91505040A9F79E3F70 +:1046C000510570F014C0AACF5F3FECF3983EDCF3C5 +:1046D000869577956795B795F795E7959F5FC1F7AD +:1046E000FE2B880F911D9695879597F9089597F958 +:1046F0009F6780E870E060E008959FEF80EC089588 +:1047000000240A94161617061806090608950024B0 +:104710000A9412161306140605060895092E03942A +:10472000000C11F4882352F0BB0F40F4BF2B11F49E +:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF +:10474000072E16F4009407D077FD09D00E94B923F4 +:1047500007FC05D03EF4909581959F4F0895709584 +:1047600061957F4F0895EE0FFF1F0590F491E02DA6 +:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8 +:10478000B70710F0A61BB70B881F991F5A95A9F7FA +:1047900080959095BC01CD010895F999FECF92BD09 +:1047A00081BDF89A992780B50895A8E1B0E042E06C +:1047B00050E00C94F523262FF999FECF92BD81BDD0 +:1047C000F89A019700B4021639F01FBA20BD0FB64F +:1047D000F894FA9AF99A0FBE08950196272F0E942D +:1047E000DC230C94DB23DC01CB01FC01F999FECF27 +:1047F00006C0F2BDE1BDF89A319600B40D92415069 +:0A4800005040B8F70895F894FFCF78 +:10480A000220E508730950091C09E8080101C701DB +:10481A0028080A03140A3F4D363975042804F2039E +:10482A00B9034C0365037E039703010203040506DB +:04483A000708090062 +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/msc/img/code_layer.png b/keyboards/ergodox_ez/keymaps/msc/img/code_layer.png new file mode 100644 index 000000000..7b5efaae7 Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/msc/img/code_layer.png differ diff --git a/keyboards/ergodox_ez/keymaps/msc/img/main_layer.png b/keyboards/ergodox_ez/keymaps/msc/img/main_layer.png new file mode 100644 index 000000000..65f92dda1 Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/msc/img/main_layer.png differ diff --git a/keyboards/ergodox_ez/keymaps/msc/img/media_layer.png b/keyboards/ergodox_ez/keymaps/msc/img/media_layer.png new file mode 100644 index 000000000..a69799b07 Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/msc/img/media_layer.png differ diff --git a/keyboards/ergodox_ez/keymaps/msc/keymap.c b/keyboards/ergodox_ez/keymaps/msc/keymap.c new file mode 100644 index 000000000..e567e513f --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/msc/keymap.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 | ; |' / Cmd | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | Cmd | Alt |AltShf| Left | Right| | Left | Down | Up |Right | L2 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | 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), + KC_LGUI,KC_LALT, 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, 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_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TG(MDIA), + 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 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | Mute | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | Prev |VolDn |VolUp | Next | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | Lclk | Rclk |------| |------| |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_TRNS, KC_TRNS, + 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, + KC_TRNS, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, 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/keyboards/ergodox_ez/keymaps/msc/readme.md b/keyboards/ergodox_ez/keymaps/msc/readme.md new file mode 100644 index 000000000..0d14fcbd2 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/msc/readme.md @@ -0,0 +1,32 @@ +# MSC Configuration + +### Based mostly on the ErgoDox EZ default layout with optimizations for coding on osx. + +#### Expecting the user to rely on Coder Layer this keymap removes some of the duplicate symbol keys in the lower portions of the board and replaces them with arrow keys and modifiers. The Media Layer is also updated to match the change in the arrow keys and the left and right click buttons are moved under the thumb position. The Media layer is now reached with toggle button in the lower right. + +### Main Layer + +![Main Layer](img/main_layer.png) + +### Code Layer + +![Code Layer](img/code_layer.png) + +### Media Layer + +![Media Layer](img/media_layer.png) + +## Changelog + +Version 1.0 + +- Changed the temp code layer key in the bottom right to toggle media layer +- Changed the temp media key to only be ";" +- Changed right hand bottom row to match vim home row nav directions +- Changed media keys to match arrow key changes +- Changed media left and right click to spacebar and backspace locations +- Changed bottom left to Cmd +- Changed single quote on left bottom row to alt + +#### Coming Soon: +- A new layer for Blender editing with a focus on left hand shortcut and a righthand num pad to control the view in Blender. diff --git a/keyboards/ergodox_ez/keymaps/naps62/README.md b/keyboards/ergodox_ez/keymaps/naps62/README.md new file mode 100644 index 000000000..14728e4cc --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/naps62/README.md @@ -0,0 +1,29 @@ +# ErgoDox EZ naps62 Configuration + +## Motivation + +I wanted a layout that suited my Linux & Vim usage. I also didn't like the lack of efficient access to some of the more common special characters used in programming. + +## Key features / changes + +### Base Layer (L1) + +* **No `MT(mod, kc)` keys (modifier when pressed, key when tapped).** Those keys work with a global timeout. When a key press is shorter than the timeout, it's considered a tap, otherwise it's a hold. I couldn't find any particular timeout that would work for me. I need to use mods extremely fast, but also want the confort of using them more slowly in other occasions. So I gave up on this feature altogether. +* **Direct access to `{}[]`.** When programming, these are used extremely often. I was still getting used to the coder layer, and I prefer the arrows on the home row, so I used the bottom-right keys for this. +* **Layer keys everywhere.** I either use my little finger or my index finger to go to L1, whichever is more confortable in any given situation. L2 is not used while coding/writing, so I don't need an extremely-optimized access to it. +* **Lang key.** This is nothing more than `Super-Space` combo, which in my systems (both Linux & Windows) is the shortcut to change the keyboard language. I'm Portuguese, so I often cycle between US layout for coding, and PT layout for writing. +* **Special chars on the right-most column.** I only use Ctrl & Shift keys on the left side, so I used the right keys to include some of the more useful special characters as well. + +### Coder Layer (L2) + +* The `=` and `-` signs where nowhere to be found. `-` was already on the base layer, but it's still useful to have a fully-featured NumPad on the coder layer. + +### Media Layer (L3) + +* **Better media keys**. Why was Play/Pause so far away? And where was Mute? I put all my media keys close to each other, including the missing ones +* **Arrow keys on home row.** I use vim, so I'm always on my home row. I use this sometimes to get around, but not as often as to need them on the base row. I'm fine with them here +* I don't use mouse keys. They're still set up, and I made some changes as an experiment, but I mostly forgot they exist by now. + +## Author + +[Miguel Palhas](https://github.com/naps62) diff --git a/keyboards/ergodox_ez/keymaps/naps62/compiled.hex b/keyboards/ergodox_ez/keymaps/naps62/compiled.hex new file mode 100644 index 000000000..02cbf8be3 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/naps62/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947A020C94BE020C94BE020C94BE02B4 +:100010000C94BE020C94BE020C94BE020C94BE0260 +:100020000C94BE020C94BE020C94620D0C94340E1F +:100030000C94BE020C94BE020C94BE020C94BE0240 +:100040000C94BE020C943E220C94BE020C94BE0290 +:100050000C94BE020C94D11B0C94BE020C94BE02F4 +:100060000C94BE020C94BE020C94BE020C94BE0210 +:100070000C94BE020C94BE020C94BE020C94BE0200 +:100080000C94BE020C94BE020C94BE020C94BE02F0 +:100090000C94BE020C94BE020C94BE020C94BE02E0 +:1000A0000C94BE020C94BE020C94BE02A10EC30EB0 +:1000B000B10FC30EB10F080F2B0FB10F800F930FAD +:1000C0006212621291129112C712E71218141814D8 +:1000D000F2121814A213A2130914181418141214EB +:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300 +:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0 +:10010000C113CE13D513DC13E6130000F0A12900B0 +:100110002B00E000E100015200001E00140004006A +:100120001D003500E3001F001A0016001B003400FC +:10013000E200200008000700060031002C0021002A +:100140001500090019000252E300220017000A00FE +:10015000050000004A002C08025200000152000075 +:100160004D00290002520000015200004B00230004 +:100170001C000B00110000004900240018000D00B5 +:1001800010002F024C0025000C000E00360030023B +:100190002C00260012000F0037002F002800270037 +:1001A00013003300380030002A002A0031003400E8 +:1001B0002D000152000001000100010001000100BA +:1001C00000003A001E0220022202010001003B0052 +:1001D0001F0221022302010001003C002F0226021F +:1001E0002F00010001003D00300227023000010015 +:1001F00001003E003102350035020000010001001F +:1002000001000000010000000100010001000000E9 +:100210000100000001003F005200510024020000D4 +:1002200001004000240021001E002E0001004100BA +:10023000250022001F003700010042002600230095 +:10024000200027000100430025022E0231002D006E +:1002500001004400450001000100010000000050C1 +:10026000010001000100010000000100010004087C +:1002700001000100010001001A0816080100010038 +:10028000F50001000808070801000100F400010062 +:10029000F400F10001000100010001001708F30063 +:1002A0000100000001000100010000000100000049 +:1002B0000100010001000000010000000100010038 +:1002C0000100500001000000010001000100510088 +:1002D000AA00AE000100010001005200A900AC001C +:1002E000B700010001004F00A800AB00B6000100FC +:1002F00001000100010001000100010001000100F6 +:1003000001000100000016034500720067006F0045 +:1003100044006F007800200045005A0000001603DA +:100320004500720067006F0044006F0078002000F5 +:1003300045005A0000000403090409026D0004018D +:1003400000A0FA09040000010301010009211101C4 +:100350000001223F000705810308000A090401008B +:100360000103010200092111010001224D000705CE +:10037000820308000A0904020001030000000921A9 +:10038000110100012236000705830308000A090451 +:1003900003000103000000092111010001223900BE +:1003A000070584031000011201100100000008ED90 +:1003B000FE071301000102000105010906A1010564 +:1003C0000719E029E7150025019508750181020547 +:1003D000081901290595057501910295017503918B +:1003E0000105071900297715002501957875018108 +:1003F00002C005010980A101850216010026B7008F +:100400001A01002AB700751095018100C0050C097A +:1004100001A1018503160100269C021A01002A9CF5 +:1004200002751095018100C005010902A1010901B1 +:10043000A10005091901290515002501950575017A +:10044000810295017503810105010930093115818A +:10045000257F95027508810609381581257F95014C +:1004600075088106050C0A38021581257F950175EE +:10047000088106C0C005010906A101050719E02988 +:10048000E715002501950875018102950175088120 +:100490000105081901290595057501910295017558 +:1004A0000391010507190029FF150025FF95067521 +:1004B000088100C0000000000000000000000001F2 +:1004C0000204060A0F17202C3A4A5D71879DB3C7B4 +:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF +:1004E0003A2C20170F0A0604020100000000000049 +:1004F0000000000011241FBECFEFDAE0DEBFCDBF49 +:1005000004B603FE24C08091FB019091FC01A091F0 +:10051000FD01B091FE018730904BA740B04BB9F47C +:100520001092FB011092FC011092FD011092FE014D +:1005300014BE84B7877F84BF88E10FB6F894809398 +:100540006000109260000FBEE0E0FFE3099511E04B +:10055000A0E0B1E0EAE0F8E402C005900D92A43317 +:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0 +:10057000B107E1F70E94A60A0C9403240C94000032 +:100580001092B9008AE08093B800089594EA90939D +:10059000BC009091BC0097FFFCCF9091B900987F70 +:1005A000983021F0903111F081E008958093BB00E4 +:1005B00084E88093BC008091BC0087FFFCCF8091D1 +:1005C000B900887F883111F0803471F780E0089598 +:1005D00084E98093BC008091BC0084FDFCCF089529 +:1005E0008093BB0084E88093BC008091BC0087FFAF +:1005F000FCCF9091B900987F81E0983209F480E0B7 +:10060000089584E88093BC008091BC0087FFFCCFF4 +:100610008091BB00089580910101811115C080E493 +:100620000E94C6028093010181110CC082E10E94E8 +:10063000F00280930101811105C08FEF0E94F0024A +:10064000809301010E94E80284B1807F84B985B162 +:10065000807F85B98AB1837F8AB98BB1837F8BB95B +:100660003E98469808950E94C604809301010E9416 +:100670000B0380B38C7080BB81B3836F81BBA5E318 +:10068000B1E0E3E4F1E08EE08E0F11921D928E1343 +:10069000FCCF0C94B004BF92CF92DF92EF92FF9206 +:1006A0000F931F93CF93DF9380910101882379F0FB +:1006B000809134018F5F80933401811108C00E94C2 +:1006C000C60480930101811102C00E94580405E311 +:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407 +:1006E000E394F12CC730D10500F58091010181110F +:1006F00064C080E40E94C60280930101811112C08F +:1007000082E10E94F0028093010181110BC0C701B8 +:100710000C2E01C0880F0A94EAF780950E94F0021F +:10072000809301010E94E80248C0CA30A1F028F479 +:10073000C83059F0C93061F005C0CC3089F070F094 +:10074000CD3089F0209A289810C0219A29980DC0A0 +:10075000229A2A980AC0239A2B9807C0529A01C05D +:10076000539A5B9802C03E9A469890EA9A95F1F7A0 +:100770009FB1799902C082E001C080E091709D250F +:10078000982B7C9902C084E001C080E0892B7D9980 +:1007900002C038E001C030E0832B7E9902C020E126 +:1007A00001C020E0822B9FB19095991F9927991F36 +:1007B0009295990F907E892B0FC080910101811134 +:1007C00049C080E40E94C60280930101882379F128 +:1007D000B12C0E94E8028B2DF8019081981719F036 +:1007E0008083C09200010E940B0321960F5F1F4F70 +:1007F000CE30D10509F076CF80910001882361F1D8 +:10080000815080930001882339F08FE99FE00197A0 +:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F +:10082000CF01825F91919D938E13FCCF15C083E120 +:100830000E94F002809301018111CACF81E40E94DD +:10084000C602809301018111C3CF0E940103B82E1B +:10085000B094BFCF80E0C0CF0E94560481E0DF910A +:10086000CF911F910F91FF90EF90DF90CF90BF90AD +:100870000895E82FF0E0ED5BFE4F80810895089524 +:100880000F931F93CF93DF93C3E4D1E010E00C2FBD +:10089000025F899190E00E94F71A180F0C13F9CFAC +:1008A000812FDF91CF911F910F9108950C94260510 +:1008B00056985E9825982D9826982E9827982F98C8 +:1008C0008FEF90E0909389008093880090938B0045 +:1008D00080938A0090938D0080938C00259A2D9AA6 +:1008E0002FEF80E792E0215080409040E1F700C078 +:1008F0000000269A2E9A2FEF80E792E02150804048 +:100900009040E1F700C00000279A2F9A2FEF80E770 +:1009100092E0215080409040E1F700C0000025980F +:100920002D982FEF80E792E0215080409040E1F732 +:1009300000C0000026982E982FEF80E792E021500B +:1009400080409040E1F700C0000027982F9856980B +:100950005E9825982D9826982E9827982F98089578 +:1009600089EA8093800089E08093810024982C9804 +:100970003F988AB18F748AB96E98479A8BB1806B11 +:100980008BB9769A0E9458040C94250580E28093D6 +:1009900001018091510181110EC00E94C00281E0CD +:1009A000809351012FEF83ED90E3215080409040E0 +:1009B000E1F700C0000080E40E94C60280930101BC +:1009C00081112EC00E94F00280930101811128C084 +:1009D0000E94F00280930101811122C08FE30E94E6 +:1009E000F0028093010181111BC00E94E80280E4A3 +:1009F0000E94C60280930101811112C08CE00E9406 +:100A0000F0028093010181110BC00E94F0028093DB +:100A10000101811105C08FE30E94F0028093010162 +:100A20000E94E80280910101089561110BC0FC0150 +:100A30008281882321F085EE0E94061103C085EE95 +:100A40000E94CE1180E090E0089508956091BD016C +:100A50007091BE018091BF019091C0010E94031B63 +:100A600056985E9825982D9826982E9827982F9816 +:100A7000813019F0823021F00895259A2D9A089539 +:100A8000269A2E9A089581E0089581E008950C94A5 +:100A9000450508950F931F93CF93DF938C01FC01BD +:100AA000C081D181CE010E947C19BE010E94F30554 +:100AB000EC01B8010E944705882309F48DC0F801B4 +:100AC0008281882309F44AC080915D0181111FC091 +:100AD000C431F0E5DF0709F051C00E94490581E00B +:100AE00080935D010E949B1B90935C0180935B014E +:100AF0001092540110925601109255011092580113 +:100B00001092570110925A011092590165C08091BC +:100B10005B0190915C010E94A71B883C910570F4D9 +:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB +:100B3000D183C0838F5F809354014EC0C43880E559 +:100B4000D80721F0C538D04501F13AC0F8018281BB +:100B5000882341F01092520182E01EC0C438E0E5C3 +:100B6000DE0759F580915201811106C086E20E948C +:100B7000061186E20E94CE1182E01CC0C438F0E566 +:100B8000DF0741F3C538D045D9F4F80182818823C5 +:100B900031F01092530180E20E941D121DC080911D +:100BA0005301811106C087E20E94061187E20E946C +:100BB000CE1180E20E9424120FC0C538D04529F31F +:100BC00081E08093520180935301C801DF91CF915E +:100BD0001F910F910C94430580E0DF91CF911F91FD +:100BE0000F910895089596E0799FF001112494E5FE +:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F +:100C0000E25FFE4F859194910895880F991FFC0132 +:100C1000E657F040859194910895880F991FFC0143 +:100C2000E65FFE4F8591949108950F931F93CF93A4 +:100C3000DF93EC01811520E3920750F5C11580E2A6 +:100C4000D80708F0C3C0CB3BD10590F4C83AD10512 +:100C500008F06AC0C53AD10508F05BC0C430D105C0 +:100C600008F0D0C1219709F0CAC101E010E00AC222 +:100C7000CF3FD10511F008F0C5C1C03FD10508F044 +:100C8000A2C0CE01805E9109089708F4BBC1B7C12C +:100C9000C13090E5D90709F4A2C020F5C0318FE436 +:100CA000D80770F4C11590E4D90708F094C0C115B5 +:100CB00021E3D20708F0A3C1DD278E01106CE2C149 +:100CC000C115D04509F09BC10E9483148FEF94E3B6 +:100CD0002CE0815090402040E1F700C000000E94CD +:100CE000F61BD0C1C11597E5D90758F4C03121E5ED +:100CF000D20708F01CC1C43180E5D80708F475C0DC +:100D00007EC1CE0190578115904108F078C1DF7007 +:100D100073C1C53AD10509F477C1C63AD10509F0C6 +:100D200076C102E810E4AEC1C83AD10509F472C137 +:100D3000C93AD10509F471C1CA3AD10509F470C1A3 +:100D4000CB3AD10509F46FC1CC3AD10509F46EC193 +:100D5000CD3AD10509F46DC1C03BD10509F46CC190 +:100D6000CE3AD10509F46BC1CF3AD10509F46AC175 +:100D7000C13BD10509F469C1C23BD10509F468C181 +:100D8000C33BD10509F467C1C43BD10509F466C171 +:100D9000C53BD10509F465C1C63BD10509F464C161 +:100DA000C73BD10509F463C1C83BD10509F462C151 +:100DB000C93BD10509F461C1CA3BD10509F460C141 +:100DC00000E014E45FC18E0110655CC1CE019F702C +:100DD0000E940D0658C1DF708E01106A53C18091C8 +:100DE000DA0181608093DA014DC10E949B1D81115F +:100DF00002C00E94811D0E94B81D90E09093FB01EB +:100E00008093FA01C23080E5D80721F48091FA017D +:100E1000816086C0C43090E5D90721F48091FA0141 +:100E200082607EC0C63020E5D20721F48091FA01AD +:100E3000846076C0C83080E5D80719F48091FA0143 +:100E400027C0CA3090E5D90721F48091FA0180616A +:100E500067C0CC3020E5D20721F48091FA0180628E +:100E60005FC0CE3080E5D80721F48091FA0180641C +:100E700057C0C03190E5D90721F48091FA0180680C +:100E80004FC0C23120E5D20729F48091FA01846075 +:100E9000886046C0C33080E5D80721F48091FA010C +:100EA0008E7F3EC0C53090E5D90721F48091FA01CC +:100EB0008D7F36C0C73020E5D20721F48091FA013A +:100EC0008B7F2EC0C93080E5D80719F48091FA01D4 +:100ED00026C0CB3090E5D90721F48091FA018F7EAE +:100EE0001FC0CD3020E5D20721F48091FA018F7D1B +:100EF00017C0CF3080E5D80721F48091FA018F7BAD +:100F00000FC0C13190E5D90721F48091FA018F77A4 +:100F100007C0C331D04531F48091FA018B7F877FC0 +:100F20008093FA018091FA010E94BC1DABC08D2F05 +:100F300099278F70992781309105D9F49E012370EC +:100F4000332702C0880F991F2A95E2F79C688E010B +:100F500044E0000F111F4A95E1F700271370802B22 +:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA +:100F70002FC08230910531F4DC2FCC278E01016F18 +:100F8000106A80C08330910569F4CE01837099277F +:100F900001E010E002C0000F111F8A95E2F7C801BE +:100FA0009C680FC084309105B9F4CE0183709927F5 +:100FB00001E010E002C0000F111F8A95E2F7C8019E +:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029 +:100FD0008C010C2B1D2B56C08530910531F4DC2F74 +:100FE000CC278E01046F106A4DC0069709F04AC0E5 +:100FF000CF71DD27DC2FCC278E01106243C000E0CB +:1010000010E040C08E013EC001E810E43BC003E8A0 +:1010100010E438C002EE14E435C009EE14E432C026 +:101020000AEE14E42FC005EB14E42CC006EB14E424 +:1010300029C007EB14E426C00CEC14E423C00DEC2B +:1010400014E420C003E815E41DC00AE815E41AC042 +:1010500002E915E417C004E915E414C001E216E43E +:1010600011C003E216E40EC004E216E40BC005E270 +:1010700016E408C006E216E405C007E216E402C062 +:101080000AE216E4C801DF91CF911F910F910895F4 +:1010900096E0799FF001112494E5899FE00DF11D00 +:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149 +:1010B0009491803E9105E0F4803C910558F5813390 +:1010C000910509F46FC048F48932910509F463C0B1 +:1010D0008A32910509F46DC072C089339105E9F037 +:1010E00082389105D1F08533910509F44DC067C070 +:1010F000833E910581F138F4803E9105B9F0823E3E +:101100009105D9F05CC0863E910561F1873E91055D +:10111000A1F155C00E94050608952091FA0120FD15 +:1011200002C021FF4CC080EE90E049C08091FA01DE +:1011300080FFF9CF89E390E042C08091FA0182FFFD +:101140000EC08091FA0184FF03C080E090E037C0B8 +:1011500083EE90E034C08091FA0182FFF2CF82EEFC +:1011600090E02DC08091FA0183FF0BC08091FA01BD +:1011700084FDEBCF87EE90E022C08091FA0183FFDF +:10118000F5CF86EE90E01BC08091FA0185FF07C085 +:1011900089E290E014C08091FA0185FFF9CF85E3E0 +:1011A00090E00DC08091FA0186FF07C08AE290E0CE +:1011B00006C08091FA0186FFF9CF81E390E00E949A +:1011C0001506089508950C94E20880916E01089523 +:1011D000CF93DF9300D01F92CDB7DEB79C018091F3 +:1011E000F101843019F593E099833B832A8390932E +:1011F000E9008FEF9091E800815095FD06C095EDD4 +:101200009A95F1F700008111F5CF8091E80085FFF4 +:101210000DC040E050E063E070E0CE0101960E9416 +:10122000520B8091E8008E778093E8000F900F902A +:101230000F90DF91CF910895CF93DF9300D01F924D +:10124000CDB7DEB72091F101243021F522E02983CA +:101250009B838A8383E08093E9008FEF9091E8007D +:10126000815095FD06C095ED9A95F1F7000081112A +:10127000F5CF8091E80085FF0DC040E050E063E0CD +:1012800070E0CE0101960E94520B8091E8008E77AB +:101290008093E8000F900F900F90DF91CF91089509 +:1012A0002091F1012430F1F422E02093E9002FEFA6 +:1012B0003091E800215035FD06C035ED3A95F1F743 +:1012C00000002111F5CF2091E80025FF0BC040E080 +:1012D00050E065E070E00E94520B8091E8008E774C +:1012E0008093E8000895CF93DF93EC019091F10192 +:1012F000943009F046C080910C018823D9F0809188 +:101300000D018823B9F09093E9008FEF9091E800E8 +:10131000815095FD06C095E19A95F1F70000811185 +:10132000F5CF8091E80085FF2CC040E050E060E1FF +:1013300070E017C081E08093E9008FEF9091E800A2 +:10134000815095FD06C095ED9A95F1F70000811149 +:10135000F5CF8091E80085FF14C040E050E068E0E0 +:1013600070E0CE010E94520B8091E8008E7780934E +:10137000E80080E1FE01AEE5B1E001900D928A95B2 +:10138000E1F7DF91CF9108958091F001811109C0BB +:101390000E94E70C0E94440D8091E20084608093DB +:1013A000E20008951092F001089508950C942B2204 +:1013B0000E948C1B0E9431220E94EA0F0C94E308C9 +:1013C00042E061EC81E00E94610C42E061EC82E06D +:1013D0000E94610C42E061EC83E00E94610C42E1FA +:1013E00061EC84E00C94610C8091F301833009F48A +:1013F00055C030F4813071F0823009F48EC0089508 +:101400008A3009F47AC08B3009F460C0893009F061 +:101410009CC020C08091F201813A09F096C0809171 +:10142000E800877F8093E8008091F6019091F701B2 +:10143000892B21F460E18EE591E003C060E080E05B +:1014400090E070E00E949D0B8091E8008B77809384 +:10145000E80008958091F201813209F076C0809110 +:10146000F6019091F701009719F0039709F06DC00C +:101470008091E800877F8093E8008091E80082FDFA +:1014800005C08091F1018111F8CF5FC08091F1001A +:1014900080936E018091E8008B7753C08091F201B8 +:1014A000813A09F052C08091F6019091F701892BA1 +:1014B00009F04BC08091E800877F8093E80080911D +:1014C000E80080FFFCCF80910C0136C08091F201D2 +:1014D0008132D9F58091F6019091F701892BA9F518 +:1014E0008091E800877F8093E8000E94960C8091AD +:1014F000F40180930C010C9483148091F2018132E9 +:1015000021F58091E800877F8093E8000E94960C87 +:101510008091F50180936F0108958091F201813AE5 +:10152000A1F48091E800877F8093E8008091E80033 +:1015300080FFFCCF80916F018093F1008091E800E3 +:101540008E778093E8000C94960C089584B7877F7B +:1015500084BF88E10FB6F894809360001092600019 +:101560000FBE90E080E80FB6F894809361009093EE +:1015700061000FBE0E9439100E94E70C0E94440DCA +:101580008091E20084608093E20078940E94CA0F08 +:101590000E943B1082E091E00E94E50F0E94192218 +:1015A0008091F101853069F40E94531B8091EF0115 +:1015B0008823B1F30E947E1B882391F30E943C0B89 +:1015C000EFCF0E944110ECCF292F33272330310574 +:1015D000C9F064F42130310581F02230310509F081 +:1015E00043C08DE690E02AE333E042C0213231056A +:1015F000F1F02232310541F137C082E190E027EA73 +:1016000033E036C099278130910541F08230910551 +:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4 +:1016200002C0E6E0F3E0849190E09F0121C06430C5 +:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5 +:10164000318189E090E014C0643070F470E0FB01F7 +:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47 +:10166000FE4F808190E004C080E090E020E030E018 +:10167000FA0131832083089580E189BD82E189BD2B +:1016800009B400FEFDCF8091D8008F7D8093D800F3 +:101690008091E00082608093E0008091E00081FD15 +:1016A000FCCF0895CF92DF92EF92FF920F931F939A +:1016B000CF93DF93EC018B016A010E94B50C81117D +:1016C00033C0C114D10439F0F60180819181081B27 +:1016D000190BC80FD91FE12CF12C0115110519F1B7 +:1016E0008091E80085FD16C08091E8008E77809398 +:1016F000E800C114D10449F0F60180819181E80E1F +:10170000F91EF182E08285E00FC00E94B50C8823AB +:1017100021F30AC089918093F10001501109FFEF74 +:10172000EF1AFF0ADACF80E0DF91CF911F910F917E +:10173000FF90EF90DF90CF9008952091F8013091C5 +:10174000F9012617370748F06115710539F4209122 +:10175000E8002E772093E80001C0B90140E0611550 +:101760007105A9F12091F101222309F443C025302C +:1017700009F442C02091E80023FD40C02091E80018 +:1017800022FD32C02091E80020FFE9CF4091F30014 +:101790002091F20030E0342BFC01CF01611571057E +:1017A00059F02830310540F481918093F100615067 +:1017B00071092F5F3F4FF1CF41E02830310509F02B +:1017C00040E02091E8002E772093E800C8CF411137 +:1017D000C9CF0AC08091F101882361F0853061F0A2 +:1017E0008091E80083FD0AC08091E80082FFF2CF7B +:1017F00080E0089582E0089583E0089581E00895EF +:101800002091F8013091F9012617370748F061154A +:10181000710539F42091E8002E772093E80001C08B +:10182000B901FC0120E06115710591F18091F10190 +:10183000882309F440C0853009F43FC08091E80056 +:1018400083FD3DC08091E80082FD2FC08091E800BB +:1018500080FFE9CF2091F3008091F20090E0922B7D +:101860006115710559F08830910540F42491209359 +:10187000F1003196615071090196F2CF21E008978D +:1018800009F020E08091E8008E778093E800CBCFCC +:101890002111CCCF0AC08091F101882361F08530FD +:1018A00061F08091E80083FD0AC08091E80082FF2A +:1018B000F2CF80E0089582E0089583E0089581E00A +:1018C0000895982F973058F59093E900981739F0BC +:1018D0007091EC002091ED005091F00003C0242F96 +:1018E000762F50E021FF19C03091EB003E7F3093FE +:1018F000EB003091ED003D7F3093ED003091EB0037 +:1019000031603093EB007093EC002093ED00509326 +:10191000F0002091EE0027FF07C09F5FD3CF8F70AC +:101920008093E90081E0089580E008958091F201BC +:1019300087FF11C08091E80082FD05C08091F10110 +:101940008111F8CF11C08091E8008B770BC0809196 +:10195000F101882349F08091E80080FFF8CF809161 +:10196000E8008E778093E80008952091E40030919C +:10197000E50095E64091EC00842F817040FF22C085 +:101980008091E80080FD1CC08091F101882391F0D6 +:10199000853091F08091EB0085FD10C04091E4000E +:1019A0005091E5004217530729F39A01915011F71E +:1019B00084E0089582E0089583E0089581E0089529 +:1019C00080E008954091E80042FFDECF08950E9434 +:1019D000550D0E945D0DE0EEF0E080818160808316 +:1019E000E8EDF0E080818F77808319BCA7EDB0E04F +:1019F0008C918E7F8C9380818F7E80831092F001FA +:101A000008950F931F93CF93DF930E94550D0E946B +:101A10005D0DC8EDD0E088818F77888388818068EC +:101A2000888388818F7D888319BC1092F101109280 +:101A3000ED011092EF011092EE0100EE10E0F801BE +:101A400080818B7F808388818160888342E060E031 +:101A500080E00E94610CE1EEF0E080818E7F808367 +:101A6000E2EEF0E080818160808380818860808305 +:101A7000F80180818E7F8083888180618883DF91F7 +:101A8000CF911F910F910895E8EDF0E080818F7E56 +:101A90008083E7EDF0E080818160808384E082BF15 +:101AA00081E08093F0010C94010DE8EDF0E080817D +:101AB0008E7F80831092E20008951092DA001092D7 +:101AC000E10008951F920F920FB60F9211242F93E9 +:101AD0003F934F935F936F937F938F939F93AF93B6 +:101AE000BF93EF93FF938091E10082FF0BC0809141 +:101AF000E20082FF07C08091E1008B7F8093E100CC +:101B00000E94C90F8091DA0080FF1FC08091D80029 +:101B100080FF1BC08091DA008E7F8093DA00809175 +:101B2000D90080FF0DC080E189BD82E189BD09B483 +:101B300000FEFDCF81E08093F1010E94C40905C041 +:101B400019BC1092F1010E94D2098091E10080FF3E +:101B500019C08091E20080FF15C08091E2008E7F65 +:101B60008093E2008091E20080618093E2008091A6 +:101B7000D80080628093D80019BC85E08093F10181 +:101B80000E94D6098091E10084FF30C08091E2007C +:101B900084FF2CC080E189BD82E189BD09B400FECB +:101BA000FDCF8091D8008F7D8093D8008091E10097 +:101BB0008F7E8093E1008091E2008F7E8093E2002F +:101BC0008091E20081608093E2008091ED018823A2 +:101BD00011F084E007C08091E30087FD02C081E03E +:101BE00001C083E08093F1010E94D8098091E10057 +:101BF00083FF29C08091E20083FF25C08091E1002E +:101C0000877F8093E10082E08093F1011092ED01E3 +:101C10008091E1008E7F8093E1008091E2008E7FD1 +:101C20008093E2008091E20080618093E20042E0D4 +:101C300060E080E00E94610C8091F00088608093F9 +:101C4000F0000E94D509FF91EF91BF91AF919F9154 +:101C50008F917F916F915F914F913F912F910F9055 +:101C60000FBE0F901F9018951F920F920FB60F92F4 +:101C700011242F933F934F935F936F937F938F9391 +:101C80009F93AF93BF93CF93DF93EF93FF93C09155 +:101C9000E900CF708091EC00D82FD17080FDD0E8A2 +:101CA0001092E9008091F000877F8093F000789493 +:101CB0000E94780E1092E9008091F0008860809375 +:101CC000F000CD2BCF70C093E900FF91EF91DF9131 +:101CD000CF91BF91AF919F918F917F916F915F91C4 +:101CE0004F913F912F910F900FBE0F901F9018951D +:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3 +:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115 +:101D1000F10091938E13FBCF0E94F4098091E800AB +:101D200083FF1FC18091F2019091F301492F50E090 +:101D30004A30510508F015C1FA01EA5AFF4F0C94D8 +:101D4000B323803881F0823809F00BC18091F6010D +:101D50008F708093E9008091EB0085FB882780F9E4 +:101D60001092E90006C08091EE019091EF0191116F +:101D700082609091E800977F9093E8008093F10053 +:101D80001092F100C8C0282F2D7F09F0EAC08823E7 +:101D900019F0823061F0E5C08091F401813009F0E2 +:101DA000E0C0933009F080E08093EF012BC0809178 +:101DB000F401811127C08091F6018F7009F4D1C020 +:101DC0008093E9002091EB0020FF1CC0933021F4A8 +:101DD0008091EB00806214C09091EB009061909331 +:101DE000EB0021E030E0A90102C0440F551F8A95A5 +:101DF000E2F74093EA001092EA008091EB008860DD +:101E00008093EB001092E9008091E800877F86C004 +:101E10008111A7C01091F4011F778091E3008078B1 +:101E2000812B8093E3008091E800877F8093E80016 +:101E30000E94960C8091E80080FFFCCF8091E30027 +:101E400080688093E300111102C082E001C083E04A +:101E50008093F10186C08058823008F082C0809162 +:101E6000F4019091F5018C3D53E0950779F583E0FD +:101E70008A838AE289834FB7F894DE01139620E0C3 +:101E80003EE051E2E32FF0E050935700E49120FF51 +:101E900003C0E295EF703F5FEF708E2F90E0EA3065 +:101EA00010F0C79601C0C0968D939D932F5F24318B +:101EB00049F74FBF8091E800877F8093E8006AE28E +:101EC00070E0CE0101960E949D0B14C0AE014F5FE1 +:101ED0005F4F6091F6010E94E40ABC01009709F48B +:101EE00040C09091E800977F9093E80089819A81A3 +:101EF0000E94000C8091E8008B778093E80031C04D +:101F0000803879F58091E800877F8093E8008091A0 +:101F1000ED018093F1008091E8008E778093E800D6 +:101F20000E94960C1EC081111CC09091F401923049 +:101F3000C0F48091E800877F8093E8009093ED01E2 +:101F40000E94960C8091ED01811106C08091E30002 +:101F500087FD02C081E001C084E08093F1010E940E +:101F6000E0098091E80083FF0AC08091E800877F44 +:101F70008093E8008091EB0080628093EB00AA964A +:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A +:101F900008950895CF938091F1018823A1F0C09115 +:101FA000E900CF709091EC00892F817090FD80E85E +:101FB000C82B1092E9008091E80083FD0E94780E02 +:101FC000CF70C093E900CF910895909375018093ED +:101FD00074010895E0917401F0917501309721F03A +:101FE0000190F081E02D099480E00895E091740162 +:101FF000F0917501309721F00280F381E02D099472 +:102000000895E0917401F0917501309721F00480FA +:10201000F581E02D099408952091720130917301AA +:102020008217930771F09093730180937201E0918E +:102030007401F0917501309721F00680F781E02D51 +:1020400009940895209170013091710182179307CE +:1020500071F09093710180937001E0917401F0919F +:102060007501309721F00084F185E02D09940895E1 +:1020700008950C9438100E94921B0E9433030C9414 +:10208000541C9F92AF92BF92CF92DF92EF92FF9239 +:102090000F931F93CF93DF9300D000D000D0CDB724 +:1020A000DEB70E944B030DE010E0AA24A394B12CEC +:1020B000902E802F0E943904980129583E4F6901C3 +:1020C000F901F080F826A1F40150110988F78FEF8B +:1020D00089838A831B820E949B1B8160782F9D834A +:1020E0008C8349815A816B818D810E94D8102FC0C9 +:1020F0009091DA0191FF04C08E830E943F048E818B +:1021000025E030E0A501022E01C0440F0A94EAF751 +:10211000E42E4F21C1F029839A828E2191E009F4A7 +:1021200090E09B830E949B1B8160782F9D838C8312 +:1021300049815A816B818D810E94D810F60180817E +:10214000E826E08204C021503109E0F6BDCF0E94AC +:102150003B1F109176010E94EA0F1817B9F00E94F8 +:10216000EA0F8093760126960FB6F894DEBF0FBE75 +:10217000CDBFDF91CF911F910F91FF90EF90DF9036 +:10218000CF90BF90AF909F900C94E30826960FB627 +:10219000F894DEBF0FBECDBFDF91CF911F910F919D +:1021A000FF90EF90DF90CF90BF90AF909F900895F9 +:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82 +:1021C0000FBECDBF4F83588769877A878B87DE0123 +:1021D000119686E0FD0111928A95E9F785E0FE01EE +:1021E000379601900D928A95E1F749815A816B816A +:1021F0007C818D819E810E9421172B960FB6F894C9 +:10220000DEBF0FBECDBFDF91CF910895CF9388235E +:1022100009F4C2C0C82F823859F40E94EA0F81FD28 +:10222000BBC089E30E94FB190E94C81A89E30CC055 +:10223000833879F40E94EA0F80FDAEC083E50E94E6 +:10224000FB190E94C81A83E50E943D1ACF910C9495 +:10225000C81A843859F40E94EA0F82FD9DC087E4B1 +:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6 +:10227000813A48F48C2F0E947E2181118DC08C2FD1 +:102280000E94FB19E3CF80E28C0F883048F4C770BE +:1022900081E001C0880FCA95EAF70E94811AD6CF63 +:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB +:1022B00083E890E005C081E890E002C082E890E009 +:1022C000CF910C940C1088E58C0F833108F064C01A +:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118 +:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186 +:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106 +:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173 +:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB +:1023200038C082EE90E035C089EE90E032C08AEE8F +:1023300090E02FC085EB90E02CC086EB90E029C0A8 +:1023400087EB90E026C08CEC90E023C08DEC90E011 +:1023500020C083E891E01DC08AE891E01AC082E9BC +:1023600091E017C084E991E014C081E292E011C0CD +:1023700083E292E00EC084E292E00BC085E292E03C +:1023800008C086E292E005C087E292E002C08AE2DD +:1023900092E0CF910C942210CF910895882309F4F4 +:1023A0004BC0823859F40E94EA0F81FF45C089E38F +:1023B0000E94FB190E94C81A89E30CC0833871F48B +:1023C0000E94EA0F80FF38C083E50E94FB190E943B +:1023D000C81A83E50E943D1A0C94C81A843859F42F +:1023E0000E94EA0F82FF28C087E40E94FB190E9426 +:1023F000C81A87E4EFCF9CEF980F913A58F390E218 +:10240000980F983050F4877091E001C0990F8A9529 +:10241000EAF7892F0E94871ADFCF9BE5980F933048 +:1024200020F480E090E00C940C10885A833120F462 +:1024300080E090E00C9422100895882321F00E94FF +:10244000811A0C94C81A0895882321F00E94871AD3 +:102450000C94C81A08957F928F929F92AF92BF9268 +:10246000CF92DF92EF92FF920F931F93CF93DF9360 +:102470001F92CDB7DEB77C01C62E772EFC010581F9 +:1024800002950F70128111110E949E1A0E94F41978 +:10249000882379F0112369F080E28C0D883048F0B0 +:1024A00082E00E94DD190E94F41991E0D82ED9260D +:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C +:1024C0000C94B323872D807F072D0F70882311F084 +:1024D0000295007F112389F0002309F490C180E266 +:1024E0008C0D883020F4802F0E94811A03C0802F29 +:1024F0000E94911A0E94C81A82C18C2D0E94CE118E +:10250000002309F495C180E28C0D883020F4802FDF +:102510000E94871A03C0802F0E94971A0E94C81A2F +:1025200087C1972D907F872D8F70903211F0829503 +:10253000807FCC2021F0F1E0CF16B1F01EC0112336 +:1025400049F0002309F414C1013009F011C10E94BF +:10255000B11A6EC1002319F0013009F469C18983F1 +:102560000E94B41A89810AC1112321F0023008F0B7 +:102570005FC1FEC001115CC101C1112321F0002324 +:1025800009F4F6C03CC1002309F4F8C03EC1872D10 +:1025900086958695837090E0009719F0019761F019 +:1025A00047C1112321F08C2D972D937002C080E03C +:1025B00090E00E940C103CC1112321F08C2D972D2E +:1025C000937002C080E090E00E94221031C18C2DF7 +:1025D000112319F00E94431E02C00E94AB1E0E94EC +:1025E000301F26C1872D837009F052C0111120C100 +:1025F0008C2D829586958770880F880F9C2D9F70F3 +:10260000892E912CA12CB12C082E04C0880C991C69 +:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041 +:1026200020E030E0B901A80104C0440F551F661F27 +:10263000771F8A95D2F7CB01BA0160957095809586 +:10264000909503C060E070E0CB01272D269526957C +:10265000237030E02230310569F02330310589F0F4 +:10266000682979298A299B292130310571F00E9436 +:102670006918DEC0682979298A299B290E94851852 +:10268000D7C00E946918C501B4010E944D18D0C07E +:10269000112319F0872D817001C08695882309F4D4 +:1026A000C7C08C2D829586958770880F880F9C2DCA +:1026B0009F70892E912CA12CB12C082E04C0880C5F +:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC +:1026D00010E020E030E0B901A80104C0440F551F0C +:1026E000661F771F8A95D2F7CB01BA016095709566 +:1026F0008095909503C060E070E0CB01272D269572 +:1027000026952370422F50E04230510569F0433046 +:10271000510589F0682979298A299B294130510579 +:1027200071F00E94431984C0682979298A299B295C +:102730000E945F197DC00E944319C501B4010E9427 +:10274000271976C08C2D90E0FC01E05EF109E5319F +:10275000F10508F050C0E059FF4F0C94B3230C2D45 +:102760000F70872D8F71112331F00E94C018802FB8 +:102770000E941D125DC00E94E118802F0E94241249 +:1027800057C0112339F0011153C0872D8F710E945A +:1027900006194EC0023008F04BC0F7CF112339F0B4 +:1027A000872D8F710E94C01843C01123C9F3872D54 +:1027B0008F710E94E1183CC0112329F0872D8F7181 +:1027C0000E94AB1835C00E94A11832C0112351F0ED +:1027D000172D1F71812F0E94C01863E0812F0E9466 +:1027E000D41926C081E00E94DD19023008F182E090 +:1027F0000E94DD191DC0112331F0002389F28C2DB8 +:102800000E94061115C0002391F28C2D0E94CE115A +:102810000FC0472D4F706C2DC7010E9415050E94F7 +:10282000C51706C0472D4F706C2DC7010E94F205D9 +:10283000DD20F9F00E94D01980FD1BC0F701128243 +:102840000E94CA190E94C018C7010E9448140E9421 +:10285000CA190F90DF91CF911F910F91FF90EF90C8 +:10286000DF90CF90BF90AF909F908F907F900C940F +:10287000E1180F90DF91CF911F910F91FF90EF9092 +:10288000DF90CF90BF90AF909F908F907F900895F2 +:102890000F931F93CF93DF93EC01888199812B8154 +:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B +:1028B0000E944A05882371F0688179818A810E948B +:1028C000C6198C010E947B190E944218B801CE01E2 +:1028D0000E942B12DF91CF911F910F9108950E94BA +:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471 +:1028F000E11F0E94301F80E090E00E940C1080E0F9 +:1029000090E00C9422100E948E1A0C946F140E9476 +:10291000BB19292F22952F7030E02C3031054CF453 +:102920002A3031056CF42250310922303105A8F4E7 +:1029300007C02C30310569F02F30310551F00DC042 +:10294000803F69F018F4803E40F409C0843F29F4C8 +:1029500006C093FB882780F9089580E0089581E000 +:102960000895CF93DF9300D000D01F92CDB7DEB78C +:102970000F900F900F900F900F90DF91CF910895CF +:10298000CF93DF9300D000D000D0CDB7DEB726962E +:102990000FB6F894DEBF0FBECDBFDF91CF91089583 +:1029A0001F93CF93DF93C091850116E0809186013C +:1029B000C81799F0D0E01C9FF0011D9FF00D112465 +:1029C000E957FE4F408151816281738184819581F5 +:1029D0000E94C0142196C770E9CFDF91CF911F915B +:1029E00008954091B7015091B8016091B90170917B +:1029F000BA018091BB019091BC010C94C0148091EC +:102A0000BC0182958F7009F054C08091B901882370 +:102A100009F44FC080918501A09186016091B701B2 +:102A20007091B8014091BA015091BB01B6E08A178C +:102A300009F43FC090E041155105C1F17F3F11F409 +:102A40006F3FA1F1B89FF001B99FF00D1124E95734 +:102A5000FE4F218172132AC02081621327C0228178 +:102A6000211124C0238134812417350710F421500B +:102A70003109241B350B283C3105C0F42091BC01E1 +:102A80002F7020612093BC0126E0289FF001299F30 +:102A9000F00D1124E457FE4F80818F708061808398 +:102AA00087EB91E00E9448140C94D0140196877033 +:102AB000BECF0895CF92DF92EF92FF920F931F93B4 +:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32 +:102AD0000FBECDBF8C0185E0F801DE011D9601908F +:102AE0000D928A95E1F7D8014C9111965C9111975E +:102AF00012966C9112971396CD90DC9014973091AA +:102B0000B7017091B8018091BA019091BB01009713 +:102B100009F46BC17F3F19F43F3F09F466C1E090AF +:102B2000B901EE2009F4C0C02091BC01C816D90635 +:102B300028F0F601E81BF90BCF0104C080959095B1 +:102B40008C0D9D1DFF24F394883C910578F0F12CA9 +:102B5000207F09F0C6C07C2DD98AC88A89890E9445 +:102B6000B11487EB91E00E944814B1C0822F807F9E +:102B700009F046C0751314C0341312C0611110C09F +:102B80002F7020612093BC010E94F11487EB91E02B +:102B90000E9448148091BC01D80115968C932EC0D8 +:102BA000CD2819F15F3F11F44F3FF9F0F62E611176 +:102BB0001CC0809185012091860136E0821709F4BE +:102BC0005AC090E0389FF001399FF00D1124E95769 +:102BD000FE4F7181571306C07081471303C0728185 +:102BE000711103C001968770E9CFF62E662309F4B0 +:102BF00018C18091BC0181608093BC01F12C11C18E +:102C0000751308C0341306C0611104C08091BC0163 +:102C1000D801C3C04D875E878D859E856A8B0E94D3 +:102C200087146A898823E1F16623D1F12091BC01E0 +:102C3000822F82958F7090E0029774F08091B70197 +:102C40009091B80198878F831986DB86CA862C8776 +:102C5000CE0107960E94481486E0F801A7EBB1E088 +:102C600001900D928A95E1F70E94FF140E94F114E1 +:102C7000FF24F394D6C04D875E878D859E850E9484 +:102C8000BB19292F22952F7030E0223031050CF02E +:102C9000BCC09F7009F0B6C0805E883008F4C1C027 +:102CA000C8010E944814E4CFC816D90608F453C0DE +:102CB000F601E81BF90BCF01883C910508F450C0E0 +:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E +:102CD000F1E086E0DF011D928A95E9F70E94F11488 +:102CE000A0C0751314C0341312C0611110C08091BC +:102CF000BC01F8018583C8010E94481486E0E7EB17 +:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C +:102D10005E878D859E856A8B0E9487146A898823C9 +:102D200009F4BECF662309F4BBCF2091BC01822FEA +:102D300082958F7090E002970CF48ECF8091B7014E +:102D40009091B8019A8389831B82DD82CC822E8385 +:102D5000CE0101967FCF809590958C0D9D1DACCFB7 +:102D6000F62E662309F49CCF75132EC034132CC0A5 +:102D70002091BC0120FD1FC0822F82958F70D9F059 +:102D8000D80115962C9315978F3049F08F5F982FA7 +:102D90009295907F822F8F70892B15968C93C80106 +:102DA0000E94481486E0F801A7EBB1E001900D9273 +:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7 +:102DC0000D928A95E1F72DC04D875E878D859E8592 +:102DD0000E948714811140CF8091BC018160809353 +:102DE000BC01C8010E9448141CC0662309F458CFD6 +:102DF0004D875E878D859E850E948714882309F400 +:102E00004FCF2ACF811148CF0CC0243031050CF0B0 +:102E100047CF9F7009F440CFF8019581907F09F06A +:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D +:102E3000DF91CF911F910F91FF90EF90DF90CF9096 +:102E400008951F93CF93DF93CDB7DEB72C970FB6BE +:102E5000F894DEBF0FBECDBF4F83588769877A874E +:102E60008B879C87CE0107960E945A15882369F0AC +:102E70008F8198852A853B85232BF1F19F3F09F0AF +:102E800063C08F3F09F060C037C086E0FE0137960F +:102E9000DE01119601900D928A95E1F76F81788598 +:102EA000EA85FB85309741F17F3F11F46F3F21F1B7 +:102EB0002091860130E0C9010196877099274091E1 +:102EC000850150E08417950709F447C069837A8328 +:102ED000FD83EC8396E0929FD001939FB00D112467 +:102EE000A957BE4FFE01319601900D929A95E1F7D8 +:102EF000809386010E94D01416E080918501909104 +:102F000086018917C1F1189FC001112489579E4F6E +:102F10000E945A15882379F1E09185011E9FF001E6 +:102F20001124E957FE4F4081518162817381848170 +:102F300095810E94C0148091850190E00196877070 +:102F4000992780938501D9CF4F81588569857A85E6 +:102F50008B859C850E94C014CFCF0E948314109251 +:102F6000860110928501E7EBF1E086E0DF011D921A +:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45 +:102F8000CDBFDF91CF911F910895EF92FF920F93E4 +:102F90001F93CF93DF938C01009709F46CC0F12C41 +:102FA000EE24E394E8012196F8018491843740F4FB +:102FB000843008F051C0813081F0823019F15BC05B +:102FC000853709F444C0A8F19CE7980F903708F0C2 +:102FD00052C08F770E94CE1141C00E5F1F4FFE017D +:102FE000C49180E28C0F883048F4C7708E2D01C0E8 +:102FF000880FCA95EAF70E94A11A14C08C2F0E946C +:1030000006112DC00E5F1F4FFE01C49180E28C0F90 +:10301000883058F4C7708E2D01C0880FCA95EAF722 +:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3 +:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3 +:103040009FE00197F1F700C00000C150F6CF0E5F7E +:103050001F4FFE01F49003C00E9406118E018F2DB8 +:10306000882309F49FCFEFE9FFE03197F1F700C023 +:1030700000008150F5CFDF91CF911F910F91FF900C +:10308000EF90089508956093C1017093C2018093F9 +:10309000C3019093C4010C946F140F931F9300917C +:1030A000C1011091C2012091C3013091C401DC0122 +:1030B000CB01802B912BA22BB32B8093C10190933A +:1030C000C201A093C301B093C4011F910F910C944E +:1030D0006F140F931F930091C1011091C2012091B1 +:1030E000C3013091C401DC01CB0180239123A223D1 +:1030F000B3238093C1019093C201A093C301B09305 +:10310000C4011F910F910C946F140F931F930091A2 +:10311000C1011091C2012091C3013091C401DC01B1 +:10312000CB0180279127A227B3278093C1019093D9 +:10313000C201A093C301B093C4011F910F910C94DD +:103140006F141092BD011092BE011092BF01109237 +:10315000C0010C946F1441E050E060E070E004C0E6 +:10316000440F551F661F771F8A95D2F74093BD0104 +:103170005093BE016093BF017093C0010C946F1413 +:1031800041E050E060E070E004C0440F551F661F4E +:10319000771F8A95D2F78091BD019091BE01A091D1 +:1031A000BF01B091C001482B592B6A2B7B2B409358 +:1031B000BD015093BE016093BF017093C0010C9498 +:1031C0006F1441E050E060E070E004C0440F551F10 +:1031D000661F771F8A95D2F7409550956095709538 +:1031E0008091BD019091BE01A091BF01B091C0013D +:1031F000482359236A237B234093BD015093BE018A +:103200006093BF017093C0010C946F1441E050E0D3 +:1032100060E070E004C0440F551F661F771F8A9559 +:10322000D2F78091BD019091BE01A091BF01B091F4 +:10323000C001482759276A277B274093BD01509337 +:10324000BE016093BF017093C0010C946F140F9383 +:103250001F930091BD011091BE012091BF013091DB +:10326000C001DC01CB01802B912BA22BB32B8093CF +:10327000BD019093BE01A093BF01B093C0011F9107 +:103280000F910C946F140F931F930091BD01109137 +:10329000BE012091BF013091C001DC01CB01802330 +:1032A0009123A223B3238093BD019093BE01A093E9 +:1032B000BF01B093C0011F910F910C946F140F9335 +:1032C0001F930091BD011091BE012091BF0130916B +:1032D000C001DC01CB0180279127A227B32780936F +:1032E000BD019093BE01A093BF01B093C0011F9197 +:1032F0000F910C946F140895CF92DF92EF92FF928A +:103300000F931F93CF93DF938C01C090C101D09096 +:10331000C201E090C301F090C4018091BD01909181 +:10332000BE01A091BF01B091C001C82AD92AEA2AE2 +:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520 +:10334000A795979587950A94D2F780FF06C0B80194 +:103350008C2F0E944808019721F4219760F780E0A4 +:1033600001C08C2FDF91CF911F910F91FF90EF90B3 +:10337000DF90CF900895CF93DF93EC010E947C19EA +:10338000BE010E944808DF91CF910895CB010E94B1 +:10339000BB1908958091C5018595859585950895FA +:1033A0008091C5018770089598E0899F900111244C +:1033B000262B2093C5010C94C0182091C50180953F +:1033C00082238093C501982F977069F430E0482FCD +:1033D000552747FD50952417350729F08595859584 +:1033E00085950C94E11808959091C501977081E03E +:1033F00009F480E0089590910C01992321F09091B7 +:103400000D01911109C020910E0130910F01F901B8 +:1034100032969FEF40E01FC0982F9695969596950F +:103420009F3050F5E0910E01F0910F01E90FF11D71 +:10343000877021E030E0A90102C0440F551F8A9532 +:10344000E2F7CA019181892B818308959F3F39F06A +:103450004F5F4E3041F051915813F8CF0DC05111CC +:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08 +:1034700097FDFA9582830895089590910C01992300 +:1034800021F090910D01911109C020910E01309110 +:103490000F01F9013296205F3F4F1FC0982F96957C +:1034A000969596959F30F0F4E0910E01F0910F0102 +:1034B000E90FF11D877021E030E0A90102C0440F3F +:1034C000551F8A95E2F7CA018095918189238183EE +:1034D00008953196E217F30729F090819813F9CFF8 +:1034E0001082F7CF089581E090E0E0910E01F09115 +:1034F0000F01E80FF91F1082019680319105A9F79D +:1035000008959091D901892B8093D90108958095D0 +:103510009091D90189238093D90108951092D901FE +:1035200008959091D801892B8093D80108958095B2 +:103530009091D80189238093D80108951092D801E1 +:1035400008959091D701892B8093D7010895809594 +:103550009091D70189238093D70108951092D701C4 +:1035600008958093C60108951092C6010895809130 +:103570000E0190910F01FC0131969C01205F3F4F9D +:1035800080E0919191118F5FE217F307D1F70895D1 +:10359000E0910E01F0910F018091D9018083E091BB +:1035A0000E01F0910F0190818091D801892B8083C9 +:1035B000E0910E01F0910F0190818091D701892B4C +:1035C00080838091C601882361F0E0910E01F09123 +:1035D0000F019081892B80830E94B71A811110926C +:1035E000C60180910E0190910F010C94F60F20E01E +:1035F000009739F0AC0141505109842395232F5F86 +:10360000F7CF822F0895CF92DF92EF92FF926C0155 +:10361000EE24FF24C114D104E104F10421F0C70118 +:10362000B60120E101C020E0C72ED82EE92EFF24EC +:10363000C114D104E104F10419F0285FC701B601F7 +:103640006B017C0154E0F694E794D794C7945A95A3 +:10365000D1F7C114D104E104F10419F02C5FC701C2 +:10366000B6016B017C0142E0F694E794D794C794CD +:103670004A95D1F7C114D104E104F10419F02E5F89 +:10368000C701B601DC01CB01B695A7959795879543 +:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5 +:1036A000DF90CF9008958091F101843021F1109244 +:1036B000DB0120E488E190E00FB6F894A8958093B0 +:1036C00060000FBE2093600080E00E94E30883B793 +:1036D000817F846083BF83B7816083BF789488953E +:1036E00083B78E7F83BF88E10FB6F8948093600024 +:1036F000109260000FBE0895089508950E947C1BEB +:103700000E944B030E947D1B0E94400491E08111A6 +:1037100001C090E0892F08950E9483140E94EA0F4F +:103720000C94E30882E084BD93E095BD9AEF97BDC9 +:1037300080936E0008952FB7F8948091DC019091EA +:10374000DD01A091DE01B091DF012FBF0895CF927E +:10375000DF92EF92FF920F931F932FB7F89440914F +:10376000DC015091DD016091DE017091DF012FBF1E +:103770006A017B01EE24FF248C0120E030E0C016BA +:10378000D106E206F30610F4415051099A01281BB4 +:10379000390BC9011F910F91FF90EF90DF90CF90EF +:1037A00008951F920F920FB60F9211248F939F933B +:1037B000AF93BF938091DC019091DD01A091DE0178 +:1037C000B091DF010196A11DB11D8093DC019093A2 +:1037D000DD01A093DE01B093DF01BF91AF919F9116 +:1037E0008F910F900FBE0F901F9018950E94E70CBD +:1037F000F8942FEF87EA91E6215080409040E1F75E +:1038000000C0000087E090EBDC018093FB01909307 +:10381000FC01A093FD01B093FE019CE088E10FB68E +:10382000F894A895809360000FBE90936000FFCF3E +:10383000EF92FF920F931F93CF93DF93D82FCDE09A +:103840008C2F0E94390405E010E0E82EF12CC7010E +:10385000002E02C0959587950A94E2F780FF09C073 +:10386000602F7C2F80E00E94F305D81302C081E016 +:1038700006C00150110958F7C15010F780E0DF91E0 +:10388000CF911F910F91FF90EF900895CF93C82F84 +:103890008CE20E94181C882321F08C2FCF910C946D +:1038A000181C80E0CF910895CF930E949B1D811139 +:1038B00002C00E94811DC5E6C15049F00E944B0321 +:1038C0008FE39CE90197F1F700C00000F5CF89E292 +:1038D0000E94461C811113C18AE20E94461C81117C +:1038E0000E94811D85E00E94461C81110E94F61BEA +:1038F0000E94A61D8093DA0187E00E94461C88235F +:10390000A9F18BE10E94461C882351F08091DA01D5 +:1039100081FB222720F991E0922790FB81F90EC0CC +:103920008EE00E94461C882361F08091DA0182FBC0 +:10393000222720F991E0922790FB82F98093DA0107 +:1039400015C080E10E94461C9091DA01882341F065 +:1039500093FB222720F981E0822780FB93F904C0A2 +:10396000892F809580FB90F99093DA018091DA019C +:103970000E94AA1D0E94B81D8093FA0180EE0E9449 +:10398000461C882341F08091FA01982F909590FB76 +:1039900080F98093FA0189E30E94461C882359F03C +:1039A0008091FA0181FB222720F991E0922790FB78 +:1039B00081F98093FA0182EE0E94461C882359F017 +:1039C0008091FA0182FB222720F991E0922790FB57 +:1039D00082F98093FA0186EE0E94461C882359F0F2 +:1039E0008091FA0183FB222720F991E0922790FB36 +:1039F00083F98093FA0183EE0E94461C882359F0D4 +:103A00008091FA0184FB222720F991E0922790FB14 +:103A100084F98093FA0185E30E94461C882359F0BB +:103A20008091FA0185FB222720F991E0922790FBF3 +:103A300085F98093FA0181E30E94461C882359F09E +:103A40008091FA0186FB222720F991E0922790FBD2 +:103A500086F98093FA0181E10E94461C882359F07F +:103A60008091FA0187FB222720F991E0922790FBB1 +:103A700087F98093FA018091FA010E94BC1D809120 +:103A8000FA0187FB882780F980930D0187E20E9465 +:103A9000461CC82F8EE10E94461C8111C2608FE136 +:103AA0000E94461C8111C46080E20E94461C811164 +:103AB000C86081E20E94461C8111C06182E20E94BE +:103AC000461C8111C06283E20E94461C8111C064C1 +:103AD00084E20E94461C882311F0C06802C0CC23F7 +:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4 +:103AF000682F70E080E090E0CF910C944318CF9154 +:103B000008956DEE7EEF80E090E00E94ED2360E08E +:103B100082E090E00E94DB2360E083E090E00E947E +:103B2000DB2360E084E090E00E94DB2360E085E03E +:103B300090E00C94DB2380E090E00E94D52321E00C +:103B40008D3E9E4F09F020E0822F089582E090E0A4 +:103B50000C94CD23682F82E090E00C94DB2383E06B +:103B600090E00C94CD23682F83E090E00C94DB234D +:103B700084E090E00C94CD23682F84E090E00C94D6 +:103B8000DB238091E20180FF0BC06091130185E08F +:103B9000689FB001112475956795759567952BC041 +:103BA00081FF09C06091130185E0689FB001112475 +:103BB0007595679520C082FF07C06091130185E06D +:103BC000689FB001112417C09091E3019923D1F0AF +:103BD00060911201961788F72091130185E0289FC4 +:103BE00090011124929FA001939F500D112470E029 +:103BF000CA010E949F236038710540F46115710568 +:103C000039F002C065E070E0862F08958FE70895CF +:103C100081E008958091E20180FF08C06091110168 +:103C200070E0759567957595679521C081FF06C011 +:103C30006091110170E07595679519C082FF04C00D +:103C40006091110170E010C09091E3019923C1F0DF +:103C5000609110019617A0F780911101899FC00112 +:103C6000112470E00E949F236038710528F46115CB +:103C7000710521F0862F08958FE7089581E008955A +:103C800061E070E0F4CF803F21F40E94C11D819576 +:103C900004C0813F29F40E94C11D8093E60108956C +:103CA000823F21F40E94C11D819504C0833F29F405 +:103CB0000E94C11D8093E5010895893F19F40E9477 +:103CC0000A1E05C08A3F31F40E940A1E8195809326 +:103CD000E70108958B3F21F40E940A1E819504C0DC +:103CE0008C3F29F40E940A1E8093E8010895843FC6 +:103CF00021F48091E401816017C0853F21F4809117 +:103D0000E401826011C0863F21F48091E401846067 +:103D10000BC0873F21F48091E401886005C0883F93 +:103D200031F48091E40180618093E40108958D3F36 +:103D300021F48091E20181600BC08E3F21F48091DB +:103D4000E201826005C08F3F29F48091E201846026 +:103D50008093E2010895803F39F48091E60187FF66 +:103D60006CC01092E60169C0813F29F48091E601A0 +:103D70001816BCF362C09091E501823F29F497FFC9 +:103D80005CC01092E50159C0833F19F41916CCF3B9 +:103D900054C0893F41F48091E70118160CF04DC0E2 +:103DA0001092E7014AC08A3F29F48091E70187FF1A +:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6 +:103DC0001092E8013AC08C3F29F48091E80118165E +:103DD000BCF333C0843F21F48091E4018E7F17C08F +:103DE000853F21F48091E4018D7F11C0863F21F44D +:103DF0008091E4018B7F0BC0873F21F48091E40127 +:103E0000877F05C0883F31F48091E4018F7E8093E5 +:103E1000E40113C08D3F21F48091E2018E7F0BC03D +:103E20008E3F21F48091E2018D7F05C08F3F29F400 +:103E30008091E2018B7F8093E2018091E501811105 +:103E40000EC08091E60181110AC08091E7018111C5 +:103E500006C08091E801811102C01092E30108952B +:103E600084EE91E00E9401100E949B1B9093E1015F +:103E70008093E00108951F93CF93DF938091E00139 +:103E80009091E1010E94A71BAC019091E30199235D +:103E900021F02091140130E006C0209115018AE044 +:103EA000289F900111244217530708F486C080917F +:103EB000E501C091E601D091E7011091E80181117F +:103EC00007C0C11176C0D11174C0111172C075C084 +:103ED0009F3F19F09F5F9093E301181624F40E940E +:103EE000C11D8093E5018091E50187FF05C00E9417 +:103EF000C11D81958093E5011C1624F40E94C11D0B +:103F00008093E6018091E60187FF05C00E94C11DF4 +:103F100081958093E6016091E501662339F1C091B6 +:103F2000E601CC2319F1772767FD7095872F972F2E +:103F30000E94B02223E333E343E35FE30E941423B0 +:103F40000E947D226093E5016C2F772767FD7095B5 +:103F5000872F972F0E94B02223E333E343E35FE3ED +:103F60000E9414230E947D226093E6011D1624F412 +:103F70000E940A1E8093E7018091E70187FF05C038 +:103F80000E940A1E81958093E701111624F40E9475 +:103F90000A1E8093E8018091E80187FF05C00E9416 +:103FA0000A1E81958093E801DF91CF911F910C94B7 +:103FB000301F9F3F09F08ECF96CFDF91CF911F9199 +:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE +:103FD0001092E3011092E2010895833081F128F4F8 +:103FE000813059F08230D1F00895853009F449C00C +:103FF000B8F1863009F456C0089580911501262F36 +:1040000030E0280F311D2F3F310524F4680F6093F5 +:10401000150108958FEF8093150108958091140183 +:10402000262F30E0280F311D2F3F310524F4680F73 +:104030006093140108958FEF809314010895809187 +:104040001301262F30E0280F311D2F3F310524F4B6 +:10405000680F6093130108958FEF80931301089503 +:1040600080911201262F30E0280F311D2F3F31059E +:1040700024F4680F6093120108958FEF809312016A +:10408000089580911101262F30E0280F311D2F3F18 +:10409000310524F4680F6093110108958FEF809328 +:1040A0001101089580911001262F30E0280F311D55 +:1040B0002F3F310524F4680F6093100108958FEFAE +:1040C000809310010895833011F128F4813049F074 +:1040D000823091F00895853081F120F18630C1F170 +:1040E000089580911501681720F4861B80931501AF +:1040F000089510921501089580911401681720F415 +:10410000861B8093140108951092140108958091E4 +:104110001301681720F4861B8093130108951092F1 +:104120001301089580911201681720F4861B809373 +:1041300012010895109212010895809111016817DB +:1041400020F4861B809311010895109211010895A7 +:1041500080911001681720F4861B80931001089548 +:104160001092100108950F931F938D3109F46BC0C5 +:1041700008F03FC08E3009F47FC0C0F4873009F4E6 +:1041800069C068F4863009F0B1C08091DA01817F9E +:104190008E7F8093DA0181E08093EA01A8C08830A5 +:1041A00009F4A2C08B3009F49FC0A0C0863109F485 +:1041B0009BC078F4803109F472C0813109F096C057 +:1041C0000E94831490910D0181E0892780930D0155 +:1041D0008BC0893109F488C08B3109F087C0809188 +:1041E000DA0181FB222720F991E0922790FB81F9E7 +:1041F0004CC0853309F470C048F4873209F46CC0B0 +:1042000008F459C0893209F467C070C0833438F4A7 +:104210008A3308F04EC0883309F466C067C083341F +:1042200009F45AC0883409F061C00E9483140FEF6A +:1042300013ED20E3015010402040E1F700C00000E2 +:104240000E94F61B51C00E9437220E94EA0F0E9472 +:10425000E3084AC09091DA01892F8095817080FB34 +:1042600090F929F0966098609093DA0140C0997FA8 +:10427000977F9093DA0138C08091DA0182FB222780 +:1042800020F991E0922790FB82F98093DA0199233B +:1042900059F18091DA0181608093DA0125C0809123 +:1042A000DA0183FB222720F991E0922790FB83F922 +:1042B000ECCF895301C08D5141E050E060E070E0E7 +:1042C0008A019B0104C0000F111F221F331F8A9512 +:1042D000D2F7C901B80104C061E070E080E090E06D +:1042E0000E9443180E94831481E001C080E01F9166 +:1042F0000F91089580E0089580E00895CF93C82F2E +:104300008091EA01813079F018F08230E9F187C0BC +:10431000E0910E01F0910F018081813169F08232CC +:1043200009F07FC009C0E0910E01F0910F0180817A +:10433000813111F0823261F48C2F0E947A21811137 +:1043400004C08C2F0E94B3201DC081E090E01AC0F1 +:104350008C2F0E947C21811114C0C43179F048F463 +:10436000CB3079F0C03109F060C082E08093EA017F +:1043700008C0C93219F0C83321F057C01092EA01C1 +:1043800054C081E0817053C0C93289F118F5C4313D +:1043900071F1A8F4C73009F046C08AE08093150196 +:1043A00094E19093140193E0909313018093120190 +:1043B00088E08093110188E28093100134C0CE51CF +:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB +:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC +:1043E00013C0C13579F0C235F1F461E00DC08091A0 +:1043F000E901882319F01092E90115C081E080934A +:10440000EA0115C061E006C08091E9010E94ED1F3C +:104410000AC06AE08091E9010E94632004C0109202 +:10442000EA0180E004C081E002C080E0ABCFCF9120 +:104430000895E1E8F0E08081886080838081816078 +:1044400080838FB7F89493E09093890090ED9093D8 +:1044500088008FBF0895EFE6F0E08081826080835E +:104460000895EFE6F0E080818D7F80830895EFE688 +:10447000F0E0908182E08927808308951F920F9257 +:104480000FB60F9211242F933F934F935F936F9327 +:104490007F938F939F93AF93BF93EF93FF938091FD +:1044A000EB019091EC0101969093EC018093EB016C +:1044B000811103C082E00E94E308E091EC01E695DF +:1044C000E695F0E0EC54FB4FE4918091EB018E1304 +:1044D00003C080E00E94E308FF91EF91BF91AF918C +:1044E0009F918F917F916F915F914F913F912F910C +:1044F0000F900FBE0F901F90189504D06894B111C3 +:104500008DC0089570D088F09F5790F0B92F9927EB +:10451000B751A0F0D1F0660F771F881F991F1AF0CE +:10452000BA95C9F712C0B13081F077D0B1E00895E3 +:1045300074C0672F782F8827B85F39F0B93FCCF364 +:10454000869577956795B395D9F73EF490958095C4 +:10455000709561957F4F8F4F9F4F0895E89409C0E4 +:1045600097FB3EF490958095709561957F4F8F4FA6 +:104570009F4F9923A9F0F92F96E9BB279395F695BC +:10458000879577956795B795F111F8CFFAF4BB0F3A +:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E +:1045A000882311F096E911C0772321F09EE8872F28 +:1045B000762F05C0662371F096E8862F70E060E0E4 +:1045C0002AF09A95660F771F881FDAF7880F96955D +:1045D000879597F9089557FD9058440F551F59F046 +:1045E0005F3F71F04795880F97FB991F61F09F3FE0 +:1045F00079F087950895121613061406551FF2CF09 +:104600004695F1DF08C0161617061806991FF1CF58 +:1046100086957105610508940895E894BB2766277F +:104620007727CB0197F908950BD078C069D028F08F +:104630006ED018F0952309F05AC05FC01124EECF58 +:10464000CADFA0F3959FD1F3950F50E0551F629FED +:10465000F001729FBB27F00DB11D639FAA27F00DDB +:10466000B11DAA1F649F6627B00DA11D661F829F02 +:104670002227B00DA11D621F739FB00DA11D621FE7 +:10468000839FA00D611D221F749F3327A00D611D04 +:10469000231F849F600D211D822F762F6A2F1124E6 +:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39 +:1046B000BB1F661F771F881F91505040A9F79E3F70 +:1046C000510570F014C0AACF5F3FECF3983EDCF3C5 +:1046D000869577956795B795F795E7959F5FC1F7AD +:1046E000FE2B880F911D9695879597F9089597F958 +:1046F0009F6780E870E060E008959FEF80EC089588 +:1047000000240A94161617061806090608950024B0 +:104710000A9412161306140605060895092E03942A +:10472000000C11F4882352F0BB0F40F4BF2B11F49E +:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF +:10474000072E16F4009407D077FD09D00E94B923F4 +:1047500007FC05D03EF4909581959F4F0895709584 +:1047600061957F4F0895EE0FFF1F0590F491E02DA6 +:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8 +:10478000B70710F0A61BB70B881F991F5A95A9F7FA +:1047900080959095BC01CD010895F999FECF92BD09 +:1047A00081BDF89A992780B50895A8E1B0E042E06C +:1047B00050E00C94F523262FF999FECF92BD81BDD0 +:1047C000F89A019700B4021639F01FBA20BD0FB64F +:1047D000F894FA9AF99A0FBE08950196272F0E942D +:1047E000DC230C94DB23DC01CB01FC01F999FECF27 +:1047F00006C0F2BDE1BDF89A319600B40D92415069 +:0A4800005040B8F70895F894FFCF78 +:10480A000220E508730950091C09E8080101C701DB +:10481A0028080A03140A3F4D363975042804F2039E +:10482A00B9034C0365037E039703010203040506DB +:04483A000708090062 +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/naps62/keymap.c b/keyboards/ergodox_ez/keymaps/naps62/keymap.c new file mode 100644 index 000000000..d8c28423c --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/naps62/keymap.c @@ -0,0 +1,187 @@ +#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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | Esc | 1 ! | 2 @ | 3 # | 4 $ | 5 % | Lang | | Esc | 6 ^ | 7 & | 8 * | 9 ( | 0 ) | Bckspc | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | L2 | | L2 | Y | U | I | O | P | \ | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Ctrl | A | S | D | F | G |------| |------| H | J | K | L | ; : | ' " | + * |--------+------+------+------+------+------| L1 | | L1 |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , < | . > | / ? | - _ | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | L1 | ` ~ | ' " | \ | | L2 | | { | } | [ { | ] } | L1 | + * `----------------------------------' `----------------------------------' + * ,--------------. ,---------------. + * | Home | End | | PgUp |Insert | + * ,------|-------|------| |-------+-------+------. + * | | | LGui | | Del | | | + * | Space| Alt |------| |-------| Enter |Space | + * | | | LGui | | Bcsp | | | + * `---------------------' `----------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, LGUI(KC_SPC), + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(2), + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(1), + MO(1), KC_GRV, KC_QUOT, KC_BSLS, MO(2), + + KC_HOME, KC_END, + KC_LGUI, + KC_SPC, KC_LALT, KC_LGUI, + + // right hand + KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + MO(2), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + MO(1), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_MINS, + KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, MO(1), + + KC_PGUP, KC_INS, + KC_DEL, + KC_BSPC, 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_EQL,KC_DOT, KC_0, KC_MINS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | |GuiUp | Expl | | Term | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | |GuiLft|GuiDwn|GuiRgt| | |------| |------| Left | Down | Up |Right | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | |Browsr| | | | |VolDwn|VolUp | Mute | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | | Play | Prev | Next | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | |Brwser|Brwser| + * | Lclk | Rclk |------| |------|Fwd |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +KEYMAP( + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, LGUI(KC_W), LGUI(KC_E), KC_BTN1, LGUI(KC_T), KC_TRNS, + KC_TRNS, LGUI(KC_A), LGUI(KC_S), LGUI(KC_D), 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_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_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, + KC_MPLY, KC_MPRV, KC_MNXT, 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) { + // 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/keyboards/ergodox_ez/keymaps/ordinary/compiled.hex b/keyboards/ergodox_ez/keymaps/ordinary/compiled.hex new file mode 100644 index 000000000..501f14f9f --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/ordinary/compiled.hex @@ -0,0 +1,1182 @@ +:100000000C94ED020C9431030C9431030C943103E5 +:100010000C9431030C9431030C9431030C94310390 +:100020000C9431030C9431030C94C10F0C94931075 +:100030000C9431030C9431030C9431030C94310370 +:100040000C9431030C94FD220C9431030C94310375 +:100050000C9431030C94DF1D0C9431030C94310388 +:100060000C9431030C9431030C9431030C94310340 +:100070000C9431030C9431030C9431030C94310330 +:100080000C9431030C9431030C9431030C94310320 +:100090000C9431030C9431030C9431030C94310310 +:1000A0000C9431030C9431030C943103AB05DF0540 +:1000B00004064206AB05E8052606500605070507B7 +:1000C000D406DC06E406F2060011221110122211F9 +:1000D000101267118A111012DF11F211C114C1142C +:1000E000F014F01426154615771677165115771665 +:1000F0000116011668167716771671160E160E166B +:100100000E160E160E160E160E160E160E160E16CF +:100110000E160E160E160E160E160E1620162D168E +:1001200034163B16451600000000000000000000D9 +:10013000000000000000000000000AC80BC80CC846 +:100140000DC80EC80FC810C811C80D200C200B30E8 +:100150000A30E00000001E00140004001D0000072B +:100160004E001F001A0016001B00000F4C0020005C +:10017000080007000600E2002A002100150009001F +:100180001900E3004B00220017000A0005000000E0 +:100190004A0029002F0000002B0200004D002D0016 +:1001A000300000002B000000500023001C000B005A +:1001B000110000004F00240018000D001000E7009F +:1001C000520025000C000E003600E6002C00260030 +:1001D00012000F003700000F280027001300330023 +:1001E000380000075100112010200F200E30E400CD +:1001F00000000100010001000100E00000003A00E1 +:100200001E0220022202000751003B001F022102B1 +:100210002302000F28003C002F0226022F00E200DC +:100220002C003D00300227023000E30052003E0067 +:10023000240235003502000050002900360200007B +:100240002B0000004F002D00370200002B020000A1 +:100250004A003F0031023800310000004D004000EC +:10026000240021001E0027684B00410025002200C9 +:100270001F0037644C0042002600230020002E6F30 +:100280002A004300380025022D002E674E00010091 +:1002900001000100010028610000010001000100CF +:1002A0000100E000000044006600A6000000000716 +:1002B000B50045001430F2001630F600000068006A +:1002C000F000F100F100F400B60069001530F30011 +:1002D0001730F500B4006A00A900AA00A8000000C9 +:1002E000B8002900F9000000FA000000B900000081 +:1002F000F9000000FA000000AC006B00460053005B +:1003000000000000AB006C004A0050004D0049683E +:10031000A9006D005200510051004C64AE006E0007 +:100320004B004F004E00000FAD006F00B100B30056 +:1003300000000007AA000100010001000100E40024 +:10034000000001000100010001000100000029007F +:100350000100010001000100010001000100010095 +:100360000100010001000100010001000100010085 +:100370000100010001000100010001000100010075 +:100380000100010001000000010001000100000067 +:100390000100000001000100010000000100000058 +:1003A0000100010001000100010000000100010046 +:1003B0000100010001000100010001000100010035 +:1003C0000100010001000100010001000100010025 +:1003D00001002A00010001000100010001000100EC +:1003E00001000100E5000100000016034500720055 +:1003F00067006F0044006F007800200045005A003D +:10040000000016034500720067006F0044006F0093 +:100410007800200045005A00000004030904090286 +:100420006D00040100A0FA090400000103010100AD +:100430000921110100012240000705810308000A7B +:100440000904010001030102000921110100012238 +:100450004D000705820308000A0904020001030099 +:10046000000009211101000122360007058303085D +:10047000000A090403000103000000092111010022 +:100480000122390007058403100001120110010048 +:10049000000008EDFE07130100010200010501093B +:1004A00006A101050719E029E71500250195087542 +:1004B000018102050819012905950575019102952B +:1004C000017503910105071900297715002501958C +:1004D0007875018102C005010980A101850216011C +:1004E0000026B7001A01002AB70075109501810097 +:1004F000C0050C0901A1018503160100269C021A02 +:1005000001002A9C02751095018100C005010902B5 +:10051000A1010901A10005091901290515002501FD +:100520009505750181029501750381010501093069 +:1005300009311581257F95027508810609381581D5 +:10054000257F950175088106050C0A38021581255D +:100550007F950175088106C0C005010906A1010546 +:100560000719E029E7150025019508750181029515 +:100570000175088101050819012905950575019185 +:10058000029501750391010507190029FF15002641 +:10059000FF00950675088100C00000000000000003 +:1005A00000000000010204060A0F17202C3A4A5DE1 +:1005B00071879DB3C7DAE9F5FCFFFCF5E9DAC7B34B +:1005C0009D87715D4A3A2C20170F0A06040201002C +:1005D0000000000000000000000011241FBECFEF4B +:1005E000DAE0DEBFCDBF04B603FE24C08091050271 +:1005F00090910602A0910702B09108028730904BBB +:10060000A740B04BB9F41092050210920602109266 +:1006100007021092080214BE84B7877F84BF88E166 +:100620000FB6F89480936000109260000FBEE0E077 +:10063000FFE3099511E0A0E0B1E0E8E8F9E402C0C9 +:1006400005900D92A433B107D9F712E0A4E3B1E00D +:1006500001C01D92A530B107E1F70E94090D0C946D +:10066000C2240C9400001092B9008AE08093B80074 +:10067000089594EA9093BC009091BC0097FFFCCF42 +:100680009091B900987F983021F0903111F081E07D +:1006900008958093BB0084E88093BC008091BC00E7 +:1006A00087FFFCCF8091B900887F883111F08034BA +:1006B00071F780E0089584E98093BC008091BC00CC +:1006C00084FDFCCF08958093BB0084E88093BC0038 +:1006D0008091BC0087FFFCCF9091B900987F81E0AA +:1006E000983209F480E0089584E88093BC008091FA +:1006F000BC0087FFFCCF8091BB00089580B38C7055 +:1007000080BB81B3836F81BB08958091010181110A +:1007100015C080E40E9439038093010181110CC04F +:1007200082E10E94630380930101811105C08FEF74 +:100730000E946303809301010E945B0384B1807F68 +:1007400084B985B1807F85B98AB1837F8AB98BB13D +:10075000837F8BB93E98469808950E944F058093F9 +:1007600001010E9485030E947E03A5E3B1E0E3E45A +:10077000F1E08EE08E0F11921D928E13FCCF0C943F +:1007800039050E944F05809301010E9485030E9454 +:100790007E03A5E3B1E0E3E4F1E08EE08E0F119279 +:1007A0001D928E13FCCF0895BF92CF92DF92EF92ED +:1007B000FF920F931F93CF93DF93809101018823C2 +:1007C00079F0809134018F5F80933401811108C0EA +:1007D0000E944F0580930101811102C00E94E10433 +:1007E00005E311E0C0E0D0E0DD24D39482E0C82E20 +:1007F000EE24E394F12CC730D10500F5809101017E +:10080000811164C080E40E94390380930101811149 +:1008100012C082E10E9463038093010181110BC029 +:10082000C7010C2E01C0880F0A94EAF780950E9438 +:100830006303809301010E945B0348C0CA30A1F0AA +:1008400028F4C83059F0C93061F005C0CC3089F0C7 +:1008500070F0CD3089F0209A289810C0219A2998FC +:100860000DC0229A2A980AC0239A2B9807C0529A40 +:1008700001C0539A5B9802C03E9A469890EA9A95B6 +:10088000F1F79FB1799902C082E001C080E09170D8 +:100890009D25982B7C9902C084E001C080E0892BC3 +:1008A0007D9902C038E001C030E0832B7E9902C000 +:1008B00020E101C020E0822B9FB19095991F9927DC +:1008C000991F9295990F907E892B0FC080910101FD +:1008D000811149C080E40E9439038093010188237B +:1008E00079F1B12C0E945B038B2DF8019081981750 +:1008F00019F08083C09200010E94850321960F5F4A +:100900001F4FCE30D10509F076CF809100018823AA +:1009100061F1815080930001882339F08FE99FE0D5 +:100920000197F1F700C0000020C0A3E4B1E0E5E3C7 +:10093000F1E0CF01825F91919D938E13FCCF15C0A2 +:1009400083E10E946303809301018111CACF81E496 +:100950000E943903809301018111C3CF0E94740367 +:10096000B82EB094BFCF80E0C0CF0E94DF0481E0FA +:10097000DF91CF911F910F91FF90EF90DF90CF907B +:10098000BF900895E82FF0E0ED5BFE4F8081089561 +:1009900008950F931F93CF93DF93C3E4D1E010E04A +:1009A0000C2F025F899190E00E94561D180F0C13C6 +:1009B000F9CF812FDF91CF911F910F9108950C9462 +:1009C000090756985E9825982D9826982E9827986E +:1009D0002F988FEF90E090938900809388009093F8 +:1009E0008B0080938A0090938D0080938C00259AD1 +:1009F0002D9A2FEF80E792E0215080409040E1F760 +:100A000000C00000269A2E9A2FEF80E792E0215036 +:100A100080409040E1F700C00000279A2F9A2FEF06 +:100A200080E792E0215080409040E1F700C0000054 +:100A300025982D982FEF80E792E02150804090403C +:100A4000E1F700C0000026982E982FEF80E792E093 +:100A5000215080409040E1F700C0000027982F9877 +:100A600056985E9825982D9826982E9827982F9816 +:100A7000089589EA8093800089E08093810024981A +:100A80002C983F988AB18F748AB96E98479A8BB127 +:100A9000806B8BB9769A0E94E1040C94080780E27F +:100AA000809301018091510181110EC00E94330396 +:100AB00081E0809351012FEF83ED90E3215080403E +:100AC0009040E1F700C0000080E40E943903809369 +:100AD000010181112EC00E946303809301018111E5 +:100AE00028C00E94630380930101811122C08FE31B +:100AF0000E9463038093010181111BC00E945B036C +:100B000080E40E94390380930101811112C08CE0BE +:100B10000E9463038093010181110BC00E94630353 +:100B200080930101811105C08FE30E9463038093CC +:100B300001010E945B03809101010895462F50E05E +:100B4000FA013A97EE30F10508F05FC1DC01EA5A8C +:100B5000FF4F0C94722412962C9112978091580199 +:100B6000909159012223F9F015962C91207FD9F408 +:100B700001968330910510F082E090E09093590146 +:100B800080935801809158019091590182309105CC +:100B900029F489E30E94651389E30EC0019709F0E7 +:100BA00034C181EEFAC001979093590180935801A6 +:100BB000892B09F02AC181EE0E942D1426C11296BC +:100BC0002C918091560190915701222379F090C089 +:100BD00012963C91129715962C9180915601909106 +:100BE0005701207F31117AC009F09FC0019790937F +:100BF000570180935601892B09F007C18091530159 +:100C0000811103C181E067C012963C91129715963D +:100C10002C918091540190915501207F332361F0F4 +:100C2000222309F491C0009709F08EC0209152014F +:100C300021118AC08BE2B1C02223B1F00097A1F448 +:100C400020915201211110C08BE2B6CF12963C9137 +:100C5000129715962C918091540190915501207F07 +:100C6000311168C009F08DC00197909355018093B0 +:100C70005401892B09F0C9C0809152018111C5C06E +:100C800082E029C012969C91129715968C91992317 +:100C9000B1F0982F907F79F080FD0DC085E37DC085 +:100CA00012969C91129715968C91992379F0982F12 +:100CB000907F09F06FC083E00E941F1BA6C0982F91 +:100CC000907F41F080FD06C085E376CF982F907F1E +:100CD00009F066C083E00E94401B97C0222341F0C8 +:100CE000009731F420915301211102C084E355C0D3 +:100CF00001968330910510F082E090E090935701C7 +:100D00008093560180915601909157018230910550 +:100D100029F0019709F079C081E0CECF909153017D +:100D200081E089278093530170C0009709F05ECF5E +:100D300084E342CF222341F0009731F42091520105 +:100D4000211102C081E329C001968330910510F082 +:100D500082E090E09093550180935401809154017A +:100D6000909155018230910529F0019709F04DC00D +:100D700082E0A2CF9091520181E0892780935201B5 +:100D800044C0009709F070CF2091520121116CCF1F +:100D900081E312CF80FD8FCF8EE20E94651335C0B4 +:100DA00080FD98CF8EE208CF12968C91882311F0A7 +:100DB00080EF0FC080EF12C012968C91882311F043 +:100DC00080EF15C080EF1AC012968C91882329F00D +:100DD00081EF0E94FC1E82EF0DC081EF0E94641F14 +:100DE00082EF0FC012968C91882339F081EF0E9418 +:100DF000FC1E83EF0E94FC1E06C081EF0E94641F50 +:100E000083EF0E94641F0E94E91F80E090E0089534 +:100E100008958091580190915901892B19F0259AD4 +:100E20002D9A0DC0E0910E01F0910F01808185FD9A +:100E3000F6CF0E94491281FDF2CF25982D9880911E +:100E4000C60181FF03C0269A2E9A02C026982E98CA +:100E50008091C60182FF03C0279A2F9A0895279890 +:100E60002F98089581E0089581E008950C94340747 +:100E70000895282F882339F090E02A3010F44D96F9 +:100E800008950697089587E290E00895AF92BF9283 +:100E9000DF92EF92FF920F931F93CF93DF938C011A +:100EA000FC01C081D181CE010E94DB1BBE010E94EA +:100EB000B60AEC01B8010E943607882309F4C9C1BB +:100EC000F8018281882309F4BEC0809166018111F6 +:100ED0001FC0C431F0E7DF0709F0B5C10E94380731 +:100EE00081E0809366010E94A91D90936501809323 +:100EF000640110925D0110925F0110925E011092E8 +:100F00006101109260011092630110926201A1C10F +:100F100080916401909165010E94B51D883C910506 +:100F200070F480915D01E82FF0E0EE0FFF1FE25AB0 +:100F3000FE4FD183C0838F5F80935D018AC1C13032 +:100F400020E8D20708F451C0F8018281882309F40F +:100F50007EC05E01E894B7F880915C01813079F041 +:100F600050F08230C1F482EE0E94651387E50E9442 +:100F7000651387E50EC082EE0E9465130CC080EEFB +:100F80000E94651381EE0E94651388E10E9465133B +:100F900088E10E942D148CE0E82EF12CC5010E2C66 +:100FA00002C0969587950A94E2F78F700E943907E0 +:100FB000D82E0E9465138D2D0E942D14F4E0EF1A97 +:100FC000F1082CEFE2162FEFF20641F780915C0159 +:100FD000813029F010F0823041F482EE04C080EEBE +:100FE0000E942D1481EE0E942D14C43180E7D80791 +:100FF00068F4C23090E7D90708F046C0C115E0E7B1 +:10100000DE0771F0C130D047A1F10CC1C33320E736 +:10101000D20709F4D8C0C433D04709F4EBC002C1E9 +:10102000F8018281882309F402C10E94E216FFEFD1 +:1010300024E38CE0F15020408040E1F700C0000044 +:101040000E94041E06C1C13080E8D80770F2C43186 +:1010500020E7D20708F0B3C0C23080E7D807A0F479 +:10106000C11590E7D90709F4E2C0C130D04709F0B3 +:10107000D9C0F8018281882309F4D9C08091E301A5 +:1010800081608093E301E5C0F8018281882309F43F +:10109000CEC00E945E1E811102C00E94441E0E94AA +:1010A000711E90E09093F7018093F601C230F0E753 +:1010B000DF0721F48091F60181607AC0C33020E718 +:1010C000D20721F48091F601826072C0C43080E7BB +:1010D000D80721F48091F60184606AC0C53090E79A +:1010E000D90719F48091F60127C0C630E0E7DE0782 +:1010F00021F48091F60180615BC0C730F0E7DF0723 +:1011000021F48091F601806253C0C83020E7D207F5 +:1011100021F48091F60180644BC0C93080E7D80784 +:1011200021F48091F601806843C0CA3090E7D90766 +:1011300029F48091F601846088603AC0CB30E0E702 +:10114000DE0721F48091F6018E7F32C0CC30F0E7CB +:10115000DF0721F48091F6018D7F2AC0CD3020E792 +:10116000D20721F48091F6018B7F22C0CE3080E738 +:10117000D80719F48091F6011AC08091F601CF309A +:1011800090E7D90711F48F7E13C0C031E0E7DE0786 +:1011900011F48F7D0DC0C131F0E7DF0711F48F7BB3 +:1011A00007C0C231D04711F48F7702C08B7F877F91 +:1011B0008093F6018091F6010E94751E4AC0C333E8 +:1011C000F0E7DF07A1F4F8018281882321F0109273 +:1011D0005A0182E016C080915A01811106C086E250 +:1011E0000E94651386E20E942D1482E018C0C43369 +:1011F000D047C1F4F8018281882331F010925B015D +:1012000080E20E947C1425C080915B01811106C0A0 +:1012100087E20E94651387E20E942D1480E20E94FB +:10122000831417C081E080935A0180935B01C80149 +:10123000DF91CF911F910F91FF90EF90DF90BF90C2 +:10124000AF900C943207C130F0E8DF0708F081CE90 +:10125000CCCE80E0DF91CF911F910F91FF90EF9066 +:10126000DF90BF90AF90089526E0729FF0011124A7 +:1012700044E5849FE00DF11D1124E60FF11DEE0FF2 +:10128000FF1FE65BFE4F859194910E94C80A81156D +:1012900060E49607B0F5811570E3970708F0DEC0AB +:1012A000803E9105D8F4803C910508F06CC0883AE6 +:1012B000910578F4853A910508F06BC0813091056D +:1012C00009F452C108F40FC18430910508F04CC1F3 +:1012D0000AC18B3B910508F467C005C18F3F91059A +:1012E00009F048F4803F910508F0ADC0883E9105B3 +:1012F00008F43AC1F8C0811520E2920708F0A5C0B1 +:101300000895811543E5940790F4811562E59607E9 +:1013100008F0C8C0811571E5970708F0BEC08115B7 +:1013200020E5920708F09DC09F70906A089581158E +:1013300045E59407D8F4811564E5960708F0C8C020 +:10134000482F4695469570E2479FA001112483706F +:10135000992721E030E0B90102C0660F771F8A9516 +:10136000E2F7CB01842B952B9A680895811576E5D9 +:10137000970708F4B2C09C0130562115304108F09F +:10138000B2C09F70AEC0FC01EE0FFF1FEA55F040E7 +:1013900062C0853A910509F4A9C0863A910509F021 +:1013A000A8C082E890E40895883A910509F4A4C0A1 +:1013B000893A910509F4A3C08A3A910509F4A2C0BB +:1013C0008B3A910509F4A1C08C3A910509F4A0C0AB +:1013D0008D3A910509F49FC0803B910509F49EC0A8 +:1013E0008E3A910509F49DC08F3A910509F49CC08D +:1013F000813B910509F49BC0823B910509F49AC099 +:10140000833B910509F499C0843B910509F498C088 +:10141000853B910509F497C0863B910509F496C078 +:10142000873B910509F495C0883B910509F494C068 +:10143000893B910509F493C08A3B910509F492C058 +:1014400080E094E4089590650895FC01FF70EE0F2C +:10145000FF1FEA5DFE4F8591949108959927906C46 +:101460000895482F437021E030E002C0220F331F5F +:101470004A95E2F73C68AC0164E0569547956A9559 +:10148000E1F74370342B8F708695869560E2869FD6 +:10149000C0011124822B932B0895982F8827816FE8 +:1014A000906A0895482F4695469570E2479FA0019F +:1014B00011248370992721E030E0B90102C0660F42 +:1014C000771F8A95E2F7CB01842B952B9C680895B2 +:1014D000982F8827846F906A08958F719927982F85 +:1014E00088279062089580E090E0089581E890E474 +:1014F000089583E890E4089582EE94E4089589EED7 +:1015000094E408958AEE94E4089585EB94E40895B4 +:1015100086EB94E4089587EB94E408958CEC94E4CE +:1015200008958DEC94E4089583E895E408958AE89D +:1015300095E4089582E995E4089584E995E4089591 +:1015400081E296E4089583E296E4089584E296E4C5 +:10155000089585E296E4089586E296E4089587E288 +:1015600096E408958AE296E40895089596E0799FB6 +:10157000F001112494E5899FE00DF11D1124E60F7F +:10158000F11DEE0FFF1FE65BFE4F859194910895CC +:101590008238910549F1B0F48133910509F458C0BE +:1015A00048F48932910509F44EC08A32910509F454 +:1015B00054C008958533910509F440C089339105DD +:1015C00099F00895833E910529F138F4803E910504 +:1015D00091F0823E9105A1F00895863E9105F9F0C3 +:1015E000873E910531F108952091F60120FD3AC022 +:1015F00021FD38C008958091F60180FD35C032C0CC +:101600008091F60182FF32C08091F60184FD30C0E6 +:1016100083EE39C08091F60182FD28C0F5CF80911C +:10162000F60183FF27C08091F60184FD21C087EE7B +:101630002AC08091F60183FD1DC0F5CF8091F6018F +:1016400085FD1AC01BC08091F60185FD17C014C02E +:101650008091F60186FD14C015C08091F60186FDCB +:1016600011C00EC080EE0FC089E30DC082EE0BC02A +:1016700080E009C086EE07C089E205C085E303C0AB +:101680008AE201C081E390E0089508950C94450B2F +:10169000809177010895CF93DF9300D01F92CDB74B +:1016A000DEB79C018091FC01843019F593E09983A9 +:1016B0003B832A839093E9008FEF9091E80081505B +:1016C00095FD06C095ED9A95F1F700008111F5CFD3 +:1016D0008091E80085FF0DC040E050E063E070E0DD +:1016E000CE0101960E94B10D8091E8008E77809323 +:1016F000E8000F900F900F90DF91CF910895CF9356 +:10170000DF9300D01F92CDB7DEB72091FC012430CB +:1017100021F522E029839B838A8383E08093E9007B +:101720008FEF9091E800815095FD06C095ED9A9558 +:10173000F1F700008111F5CF8091E80085FF0DC021 +:1017400040E050E063E070E0CE0101960E94B10DF0 +:101750008091E8008E778093E8000F900F900F90B3 +:10176000DF91CF9108952091FC012430F1F422E023 +:101770002093E9002FEF3091E800215035FD06C09D +:1017800035ED3A95F1F700002111F5CF2091E800F1 +:1017900025FF0BC040E050E065E070E00E94B10D15 +:1017A0008091E8008E778093E8000895CF93DF93CF +:1017B000EC019091FC01943009F046C080910C013D +:1017C0008823D9F080910D018823B9F09093E90026 +:1017D0008FEF9091E800815095FD06C095E19A95B4 +:1017E000F1F700008111F5CF8091E80085FF2CC052 +:1017F00040E050E060E170E017C081E08093E900D4 +:101800008FEF9091E800815095FD06C095ED9A9577 +:10181000F1F700008111F5CF8091E80085FF14C039 +:1018200040E050E068E070E0CE010E94B10D809190 +:10183000E8008E778093E80080E1FE01A7E6B1E042 +:1018400001900D928A95E1F7DF91CF9108958091F3 +:10185000FB01811109C00E94460F0E94A30F8091D5 +:10186000E20084608093E20008951092FB010895E5 +:1018700008950C94EA220E949A1D0E94F0220E9470 +:1018800049120C94460B42E061EC81E00E94C00ECC +:1018900042E061EC82E00E94C00E42E061EC83E035 +:1018A0000E94C00E42E161EC84E00C94C00E809175 +:1018B000FE01833009F455C030F4813071F082307C +:1018C00009F48EC008958A3009F47AC08B3009F487 +:1018D00060C0893009F09CC020C08091FD01813A30 +:1018E00009F096C08091E800877F8093E80080919E +:1018F000010290910202892B21F460E187E691E0D8 +:1019000003C060E080E090E070E00E94FC0D8091F8 +:10191000E8008B778093E80008958091FD01813283 +:1019200009F076C08091010290910202009719F0AF +:10193000039709F06DC08091E800877F8093E800ED +:101940008091E80082FD05C08091FC018111F8CFF3 +:101950005FC08091F100809377018091E8008B77E0 +:1019600053C08091FD01813A09F052C0809101027B +:1019700090910202892B09F04BC08091E800877F8B +:101980008093E8008091E80080FFFCCF80910C01FB +:1019900036C08091FD018132D9F58091010290918C +:1019A0000202892BA9F58091E800877F8093E800E7 +:1019B0000E94F50E8091FF0180930C010C94E216B9 +:1019C0008091FD01813221F58091E800877F80932D +:1019D000E8000E94F50E809100028093780108953E +:1019E0008091FD01813AA1F48091E800877F809386 +:1019F000E8008091E80080FFFCCF8091780180931F +:101A0000F1008091E8008E778093E8000C94F50E49 +:101A1000089584B7877F84BF88E10FB6F8948093D8 +:101A20006000109260000FBE80E880936100109209 +:101A300061000E9498120E94460F0E94A30F80919D +:101A4000E20084608093E20078940E9429120E9450 +:101A50009A1282E091E00E9444120E94D822809162 +:101A6000FC01853069F40E94621D8091FA0188238F +:101A7000B1F30E948C1D882391F30E949B0DEFCF40 +:101A80000E94A012ECCF292F332723303105C9F053 +:101A900064F42130310581F02230310509F043C072 +:101AA0008DE690E02EE134E042C021323105F1F0C4 +:101AB0002232310541F137C082E190E02BE834E079 +:101AC00036C099278130910541F08230910541F06F +:101AD000892B49F5EAE1F4E005C0E2E0F4E002C058 +:101AE000EAEEF3E0849190E09F0121C06430D8F4E5 +:101AF000E62FF0E0EE0FFF1FEE5DFE4F20813181FB +:101B000089E090E014C0643070F470E0FB01EE0FE7 +:101B1000FF1FE65EFE4F20813181FB01EA5EFE4F32 +:101B2000808190E004C080E090E020E030E0FA01A5 +:101B300031832083089580E189BD82E189BD09B4A4 +:101B400000FEFDCF8091D8008F7D8093D8008091DA +:101B5000E00082608093E0008091E00081FDFCCF96 +:101B60000895CF92DF92EF92FF920F931F93CF933E +:101B7000DF93EC018B016A010E94140F811133C0C5 +:101B8000C114D10439F0F60180819181081B190B31 +:101B9000C80FD91FE12CF12C0115110519F1809105 +:101BA000E80085FD16C08091E8008E778093E800FC +:101BB000C114D10449F0F60180819181E80EF91E2B +:101BC000F182E08285E00FC00E94140F882321F388 +:101BD0000AC089918093F10001501109FFEFEF1ABB +:101BE000FF0ADACF80E0DF91CF911F910F91FF9034 +:101BF000EF90DF90CF90089520910302309104027E +:101C00002617370748F06115710539F42091E8006F +:101C10002E772093E80001C0B90140E061157105FD +:101C2000A9F12091FC01222309F443C0253009F4D5 +:101C300042C02091E80023FD40C02091E80022FD31 +:101C400032C02091E80020FFE9CF4091F3002091BD +:101C5000F20030E0342BFC01CF016115710559F021 +:101C60002830310540F481918093F1006150710971 +:101C70002F5F3F4FF1CF41E02830310509F040E0C0 +:101C80002091E8002E772093E800C8CF4111C9CFFA +:101C90000AC08091FC01882361F0853061F0809159 +:101CA000E80083FD0AC08091E80082FFF2CF80E067 +:101CB000089582E0089583E0089581E008952091D9 +:101CC0000302309104022617370748F061157105A9 +:101CD00039F42091E8002E772093E80001C0B90183 +:101CE000FC0120E06115710591F18091FC018823D0 +:101CF00009F440C0853009F43FC08091E80083FDBD +:101D00003DC08091E80082FD2FC08091E80080FFF7 +:101D1000E9CF2091F3008091F20090E0922B6115C1 +:101D2000710559F08830910540F424912093F10019 +:101D30003196615071090196F2CF21E0089709F0C0 +:101D400020E08091E8008E778093E800CBCF2111CE +:101D5000CCCF0AC08091FC01882361F0853061F00E +:101D60008091E80083FD0AC08091E80082FFF2CFF5 +:101D700080E0089582E0089583E0089581E0089569 +:101D8000982F973058F59093E900981739F0709193 +:101D9000EC002091ED005091F00003C0242F762F2D +:101DA00050E021FF19C03091EB003E7F3093EB00F3 +:101DB0003091ED003D7F3093ED003091EB003160CC +:101DC0003093EB007093EC002093ED005093F00003 +:101DD0002091EE0027FF07C09F5FD3CF8F708093C5 +:101DE000E90081E0089580E008958091FD0187FF7A +:101DF00011C08091E80082FD05C08091FC01811135 +:101E0000F8CF11C08091E8008B770BC08091FC0166 +:101E1000882349F08091E80080FFF8CF8091E800A6 +:101E20008E778093E80008952091E4003091E500DA +:101E300095E64091EC00842F817040FF22C0809194 +:101E4000E80080FD1CC08091FC01882391F0853062 +:101E500091F08091EB0085FD10C04091E40050911D +:101E6000E5004217530729F39A01915011F784E0D6 +:101E7000089582E0089583E0089581E0089580E068 +:101E800008954091E80042FFDECF08950E94B40F0C +:101E90000E94BC0FE0EEF0E0808181608083E8ED7D +:101EA000F0E080818F77808319BCA7EDB0E08C9142 +:101EB0008E7F8C9380818F7E80831092FB010895AA +:101EC0000F931F93CF93DF930E94B40F0E94BC0F18 +:101ED000C8EDD0E088818F77888388818068888387 +:101EE00088818F7D888319BC1092FC011092F801C3 +:101EF0001092FA011092F90100EE10E0F8018081D1 +:101F00008B7F808388818160888342E060E080E00D +:101F10000E94C00EE1EEF0E080818E7F8083E2EED1 +:101F2000F0E0808181608083808188608083F80117 +:101F300080818E7F8083888180618883DF91CF91CB +:101F40001F910F910895E8EDF0E080818F7E8083EE +:101F5000E7EDF0E080818160808384E082BF81E0F2 +:101F60008093FB010C94600FE8EDF0E080818E7FA0 +:101F700080831092E20008951092DA001092E1003E +:101F800008951F920F920FB60F9211242F933F9333 +:101F90004F935F936F937F938F939F93AF93BF9371 +:101FA000EF93FF938091E10082FF0BC08091E200EC +:101FB00082FF07C08091E1008B7F8093E1000E9447 +:101FC00028128091DA0080FF1FC08091D80080FF26 +:101FD0001BC08091DA008E7F8093DA008091D90057 +:101FE00080FF0DC080E189BD82E189BD09B400FE9A +:101FF000FDCF81E08093FC010E94270C05C019BC35 +:102000001092FC010E94350C8091E10080FF19C004 +:102010008091E20080FF15C08091E2008E7F809366 +:10202000E2008091E20080618093E2008091D8001C +:1020300080628093D80019BC85E08093FC010E94E7 +:10204000390C8091E10084FF30C08091E20084FF70 +:102050002CC080E189BD82E189BD09B400FEFDCFBD +:102060008091D8008F7D8093D8008091E1008F7E91 +:102070008093E1008091E2008F7E8093E200809166 +:10208000E20081608093E2008091F801882311F0E2 +:1020900084E007C08091E30087FD02C081E001C0B9 +:1020A00083E08093FC010E943B0C8091E10083FF60 +:1020B00029C08091E20083FF25C08091E100877FE5 +:1020C0008093E10082E08093FC011092F8018091FE +:1020D000E1008E7F8093E1008091E2008E7F80930B +:1020E000E2008091E20080618093E20042E060E0E3 +:1020F00080E00E94C00E8091F00088608093F00024 +:102100000E94380CFF91EF91BF91AF919F918F91F9 +:102110007F916F915F914F913F912F910F900FBEE3 +:102120000F901F9018951F920F920FB60F921124C7 +:102130002F933F934F935F936F937F938F939F93CF +:10214000AF93BF93CF93DF93EF93FF93C091E900D9 +:10215000CF708091EC00D82FD17080FDD0E8109224 +:10216000E9008091F000877F8093F00078940E94CE +:10217000D7101092E9008091F00088608093F00001 +:10218000CD2BCF70C093E900FF91EF91DF91CF91FC +:10219000BF91AF919F918F917F916F915F914F917F +:1021A0003F912F910F900FBE0F901F9018951F9386 +:1021B000CF93DF93CDB7DEB7AA970FB6F894DEBF03 +:1021C0000FBECDBFEDEFF1E088E08E0F9091F100F2 +:1021D00091938E13FBCF0E94570C8091E80083FFF0 +:1021E0001FC18091FD019091FE01492F50E04A30BE +:1021F000510508F015C1FA01EC59FF4F0C947224F7 +:10220000803881F0823809F00BC1809101028F7013 +:102210008093E9008091EB0085FB882780F910927C +:10222000E90006C08091F9019091FA019111826054 +:102230009091E800977F9093E8008093F1001092CE +:10224000F100C8C0282F2D7F09F0EAC0882319F0BB +:10225000823061F0E5C08091FF01813009F0E0C07B +:10226000933009F080E08093FA012BC08091FF0148 +:10227000811127C0809101028F7009F4D1C0809331 +:10228000E9002091EB0020FF1CC0933021F48091E5 +:10229000EB00806214C09091EB0090619093EB0092 +:1022A00021E030E0A90102C0440F551F8A95E2F7F2 +:1022B0004093EA001092EA008091EB0088608093DE +:1022C000EB001092E9008091E800877F86C08111C1 +:1022D000A7C01091FF011F778091E3008078812BC8 +:1022E0008093E3008091E800877F8093E8000E945C +:1022F000F50E8091E80080FFFCCF8091E3008068BC +:102300008093E300111102C082E001C083E080935A +:10231000FC0186C08058823008F082C08091FF01A5 +:10232000909100028C3D53E0950779F583E08A8314 +:102330008AE289834FB7F894DE01139620E03EE0ED +:1023400051E2E32FF0E050935700E49120FF03C0E7 +:10235000E295EF703F5FEF708E2F90E0EA3010F063 +:10236000C79601C0C0968D939D932F5F243149F786 +:102370004FBF8091E800877F8093E8006AE270E0B9 +:10238000CE0101960E94FC0D14C0AE014F5F5F4F5D +:10239000609101020E94430DBC01009709F440C006 +:1023A0009091E800977F9093E80089819A810E943C +:1023B0005F0E8091E8008B778093E80031C0803811 +:1023C00079F58091E800877F8093E8008091F8019B +:1023D0008093F1008091E8008E778093E8000E945E +:1023E000F50E1EC081111CC09091FF019230C0F407 +:1023F0008091E800877F8093E8009093F8010E9425 +:10240000F50E8091F801811106C08091E30087FDEF +:1024100002C081E001C084E08093FC010E94430C73 +:102420008091E80083FF0AC08091E800877F809355 +:10243000E8008091EB0080628093EB00AA960FB6D3 +:10244000F894DEBF0FBECDBFDF91CF911F910895ED +:102450000895CF938091FC018823A1F0C091E900F9 +:10246000CF709091EC00892F817090FD80E8C82B8F +:102470001092E9008091E80083FD0E94D710CF7090 +:10248000C093E900CF91089590937E0180937D01E0 +:102490000895E0917D01F0917E01309721F0019047 +:1024A000F081E02D099480E00895E0917D01F091A4 +:1024B0007E01309721F00280F381E02D0994089588 +:1024C000E0917D01F0917E01309721F00480F5814B +:1024D000E02D0994089520917B0130917C018217B1 +:1024E000930771F090937C0180937B01E0917D01D3 +:1024F000F0917E01309721F00680F781E02D09945C +:1025000008952091790130917A018217930771F033 +:1025100090937A0180937901E0917D01F0917E01A1 +:10252000309721F00084F185E02D099408950895F5 +:102530000C9497120E94A01D0E94AD030C94261EBD +:102540009F92AF92BF92CF92DF92EF92FF920F9342 +:102550001F93CF93DF9300D000D000D0CDB7DEB76C +:102560000E94D4030DE010E0AA24A394B12C902E75 +:10257000802F0E94C204980120583E4F6901F90142 +:10258000F080F826A1F40150110988F78FEF8983B4 +:102590008A831B820E94A91D8160782F9D838C8372 +:1025A00049815A816B818D810E9437132FC0909190 +:1025B000E30191FF04C08E830E94C8048E8125E050 +:1025C00030E0A501022E01C0440F0A94EAF7E42E80 +:1025D0004F21C1F029839A828E2191E009F490E085 +:1025E0009B830E94A91D8160782F9D838C834981E4 +:1025F0005A816B818D810E943713F6018081E82614 +:10260000E08204C021503109E0F6BDCF0E94F41FE2 +:1026100010917F010E9449121817B9F00E944912C7 +:1026200080937F0126960FB6F894DEBF0FBECDBF14 +:10263000DF91CF911F910F91FF90EF90DF90CF909E +:10264000BF90AF909F900C94460B26960FB6F894CF +:10265000DEBF0FBECDBFDF91CF911F910F91FF90D5 +:10266000EF90DF90CF90BF90AF909F900895CF9361 +:10267000DF93CDB7DEB72B970FB6F894DEBF0FBE52 +:10268000CDBF4F83588769877A878B87DE01119684 +:1026900086E0FD0111928A95E9F785E0FE01379603 +:1026A00001900D928A95E1F749815A816B817C8175 +:1026B0008D819E810E9480192B960FB6F894DEBF03 +:1026C0000FBECDBFDF91CF910895CF93882309F43A +:1026D000C2C0C82F823859F40E94491281FDBBC084 +:1026E00089E30E945A1C0E94271D89E30CC083388D +:1026F00079F40E94491280FDAEC083E50E945A1C05 +:102700000E94271D83E50E949C1CCF910C94271DDD +:10271000843859F40E94491282FD9DC087E40E94CA +:102720005A1C0E94271D87E4EECF8CEF8C0F813A54 +:1027300048F48C2F0E943E2281118DC08C2F0E9464 +:102740005A1CE3CF80E28C0F883048F4C77081E0D8 +:1027500001C0880FCA95EAF70E94E01CD6CF8BE52E +:102760008C0F833078F4C53A29F0C63A31F083E80B +:1027700090E005C081E890E002C082E890E0CF914F +:102780000C946B1288E58C0F833108F064C0C83A52 +:1027900039F1C93A41F1CA3A49F1CB3A51F1CC3A4F +:1027A00059F1CD3A61F1C03B69F1CE3A71F1CF3ABE +:1027B00079F1C13B81F1C23B89F1C33B91F1C43B4B +:1027C00099F1C53BA1F1C63BA9F1C73BB1F1C83BAB +:1027D000B9F1C93BC1F1CA3BC9F180E090E038C012 +:1027E00082EE90E035C089EE90E032C08AEE90E053 +:1027F0002FC085EB90E02CC086EB90E029C087EBE2 +:1028000090E026C08CEC90E023C08DEC90E020C0DE +:1028100083E891E01DC08AE891E01AC082E991E066 +:1028200017C084E991E014C081E292E011C083E214 +:1028300092E00EC084E292E00BC085E292E008C014 +:1028400086E292E005C087E292E002C08AE292E06E +:10285000CF910C948112CF910895882309F44BC035 +:10286000823859F40E94491281FF45C089E30E94D1 +:102870005A1C0E94271D89E30CC0833871F40E9402 +:10288000491280FF38C083E50E945A1C0E94271D10 +:1028900083E50E949C1C0C94271D843859F40E94E7 +:1028A000491282FF28C087E40E945A1C0E94271DFB +:1028B00087E4EFCF9CEF980F913A58F390E2980F8E +:1028C000983050F4877091E001C0990F8A95EAF72B +:1028D000892F0E94E61CDFCF9BE5980F933020F4F0 +:1028E00080E090E00C946B12885A833120F480E0F1 +:1028F00090E00C9481120895882321F00E94E01C3E +:102900000C94271D0895882321F00E94E61C0C9446 +:10291000271D08957F928F929F92AF92BF92CF9280 +:10292000DF92EF92FF920F931F93CF93DF931F924B +:10293000CDB7DEB77C01C62E772EFC01058102954E +:102940000F70128111110E94FD1C0E94531C8823DC +:1029500079F0112369F080E28C0D883048F082E034 +:102960000E943C1C0E94531C91E0D82ED92601C025 +:10297000D12CE72DE295EF70F0E0E259FF4F0C9477 +:102980007224872D807F072D0F70882311F0029508 +:10299000007F112389F0002309F490C180E28C0D9F +:1029A000883020F4802F0E94E01C03C0802F0E94FA +:1029B000F01C0E94271D82C18C2D0E942D14002323 +:1029C00009F495C180E28C0D883020F4802F0E949C +:1029D000E61C03C0802F0E94F61C0E94271D87C1A1 +:1029E000972D907F872D8F70903211F08295807F88 +:1029F000CC2021F0F1E0CF16B1F01EC0112349F038 +:102A0000002309F414C1013009F011C10E94101D06 +:102A10006EC1002319F0013009F469C189830E9455 +:102A2000131D89810AC1112321F0023008F05FC112 +:102A3000FEC001115CC101C1112321F0002309F482 +:102A4000F6C03CC1002309F4F8C03EC1872D86952D +:102A50008695837090E0009719F0019761F047C167 +:102A6000112321F08C2D972D937002C080E090E00F +:102A70000E946B123CC1112321F08C2D972D937075 +:102A800002C080E090E00E94811231C18C2D1123A0 +:102A900019F00E94FC1E02C00E94641F0E94E91FE0 +:102AA00026C1872D837009F052C0111120C18C2DD1 +:102AB000829586958770880F880F9C2D9F70892E30 +:102AC000912CA12CB12C082E04C0880C991CAA1C96 +:102AD000BB1C0A94D2F7C4FE14C00FE010E020E043 +:102AE00030E0B901A80104C0440F551F661F771FCD +:102AF0008A95D2F7CB01BA01609570958095909533 +:102B000003C060E070E0CB01272D26952695237049 +:102B100030E02230310569F02330310589F0682931 +:102B200079298A299B292130310571F00E94C81A20 +:102B3000DEC0682979298A299B290E94E41AD7C016 +:102B40000E94C81AC501B4010E94AC1AD0C011235A +:102B500019F0872D817001C08695882309F4C7C0BC +:102B60008C2D829586958770880F880F9C2D9F707D +:102B7000892E912CA12CB12C082E04C0880C991CF4 +:102B8000AA1CBB1C0A94D2F7C4FE14C00FE010E0CC +:102B900020E030E0B901A80104C0440F551F661FB2 +:102BA000771F8A95D2F7CB01BA0160957095809511 +:102BB000909503C060E070E0CB01272D2695269507 +:102BC0002370422F50E04230510569F043305105E7 +:102BD00089F0682979298A299B294130510571F0AA +:102BE0000E94A21B84C0682979298A299B290E94F6 +:102BF000BE1B7DC00E94A21BC501B4010E94861BA2 +:102C000076C08C2D90E0FC01E05EF109E531F10524 +:102C100008F050C0E258FF4F0C9472240C2D0F7036 +:102C2000872D8F71112331F00E941F1B802F0E946E +:102C30007C145DC00E94401B802F0E94831457C0EB +:102C4000112339F0011153C0872D8F710E94651B2C +:102C50004EC0023008F04BC0F7CF112339F0872D5A +:102C60008F710E941F1B43C01123C9F3872D8F71E1 +:102C70000E94401B3CC0112329F0872D8F710E94B8 +:102C80000A1B35C00E94001B32C0112351F0172DC2 +:102C90001F71812F0E941F1B63E0812F0E94331C34 +:102CA00026C081E00E943C1C023008F182E00E94B4 +:102CB0003C1C1DC0112331F0002389F28C2D0E9491 +:102CC000651315C0002391F28C2D0E942D140FC0A6 +:102CD000472D4F706C2DC7010E949E050E94241A3B +:102CE00006C0472D4F706C2DC7010E94B50ADD202C +:102CF000F9F00E942F1C80FD1BC0F70112820E9478 +:102D0000291C0E941F1BC7010E94A7160E94291C94 +:102D10000F90DF91CF911F910F91FF90EF90DF9077 +:102D2000CF90BF90AF909F908F907F900C94401B5E +:102D30000F90DF91CF911F910F91FF90EF90DF9057 +:102D4000CF90BF90AF909F908F907F9008950F93FA +:102D50001F93CF93DF93EC01888199812B813C8174 +:102D6000232BB9F09F3F11F48F3F99F0CE010E94C1 +:102D70004607882371F0688179818A810E94251C29 +:102D80008C010E94DA1B0E94A11AB801CE010E9498 +:102D90008A14DF91CF911F910F9108950E94FD1C1D +:102DA0000E940D1D0E94D21C0E94271D0E949A2085 +:102DB0000E94E91F80E090E00E946B1280E090E0AA +:102DC0000C9481120E94ED1C0C94CE160E941A1CC9 +:102DD000292F22952F7030E02C3031054CF42A3009 +:102DE00031056CF42250310922303105A8F407C0B6 +:102DF0002C30310569F02F30310551F00DC0803F86 +:102E000069F018F4803E40F409C0843F29F406C0FC +:102E100093FB882780F9089580E0089581E0089564 +:102E2000CF93DF9300D000D01F92CDB7DEB70F90C5 +:102E30000F900F900F900F90DF91CF910895CF9347 +:102E4000DF9300D000D000D0CDB7DEB726960FB606 +:102E5000F894DEBF0FBECDBFDF91CF9108951F93D1 +:102E6000CF93DF93C0918E0116E080918F01C81738 +:102E700099F0D0E01C9FF0011D9FF00D1124E05748 +:102E8000FE4F4081518162817381848195810E94CE +:102E90001F172196C770E9CFDF91CF911F91089539 +:102EA0004091C0015091C1016091C2017091C30174 +:102EB0008091C4019091C5010C941F178091C501A8 +:102EC00082958F7009F054C08091C201882309F463 +:102ED0004FC080918E01A0918F016091C0017091CF +:102EE000C1014091C3015091C401B6E08A1709F4B1 +:102EF0003FC090E041155105C1F17F3F11F46F3F94 +:102F0000A1F1B89FF001B99FF00D1124E057FE4FD9 +:102F1000218172132AC02081621327C022812111CE +:102F200024C0238134812417350710F4215031093E +:102F3000241B350B283C3105C0F42091C5012F70AE +:102F400020612093C50126E0289FF001299FF00D04 +:102F50001124EB56FE4F80818F708061808380EC5E +:102F600091E00E94A7160C942F1701968770BECF90 +:102F70000895CF92DF92EF92FF920F931F93CF931A +:102F8000DF93CDB7DEB762970FB6F894DEBF0FBE02 +:102F9000CDBF8C0185E0F801DE011D9601900D92F8 +:102FA0008A95E1F7D8014C9111965C911197129690 +:102FB0006C9112971396CD90DC9014973091C001CC +:102FC0007091C1018091C3019091C401009709F4EF +:102FD0006BC17F3F19F43F3F09F466C1E090C20125 +:102FE000EE2009F4C0C02091C501C816D90628F00A +:102FF000F601E81BF90BCF0104C0809590958C0D6C +:103000009D1DFF24F394883C910578F0F12C207FDE +:1030100009F0C6C07C2DD98AC88A89890E941017F8 +:1030200080EC91E00E94A716B1C0822F807F09F04A +:1030300046C0751314C0341312C0611110C02F7034 +:1030400020612093C5010E94501780EC91E00E94FE +:10305000A7168091C501D80115968C932EC0CD2856 +:1030600019F15F3F11F44F3FF9F0F62E61111CC0CA +:1030700080918E0120918F0136E0821709F45AC0A9 +:1030800090E0389FF001399FF00D1124E057FE4F7A +:103090007181571306C07081471303C0728171118B +:1030A00003C001968770E9CFF62E662309F418C194 +:1030B0008091C50181608093C501F12C11C1751308 +:1030C00008C0341306C0611104C08091C501D80145 +:1030D000C3C04D875E878D859E856A8B0E94E616EC +:1030E0006A898823E1F16623D1F12091C501822FFD +:1030F00082958F7090E0029774F08091C00190915A +:10310000C10198878F831986DB86CA862C87CE01FA +:1031100007960E94A71686E0F801A0ECB1E00190A6 +:103120000D928A95E1F70E945E170E945017FF24C6 +:10313000F394D6C04D875E878D859E850E941A1CAC +:10314000292F22952F7030E0223031050CF0BCC0C1 +:103150009F7009F0B6C0805E883008F4C1C0C80115 +:103160000E94A716E4CFC816D90608F453C0F6018A +:10317000E81BF90BCF01883C910508F450C0F12CF5 +:103180007C2DD98AC88A89890E941017E0ECF1E069 +:1031900086E0DF011D928A95E9F70E945017A0C0D2 +:1031A000751314C0341312C0611110C08091C50191 +:1031B000F8018583C8010E94A71686E0E0ECF1E0E3 +:1031C000DF011D928A95E9F7FE2C8AC04D875E8744 +:1031D0008D859E856A8B0E94E6166A89882309F48C +:1031E000BECF662309F4BBCF2091C501822F829503 +:1031F0008F7090E002970CF48ECF8091C001909177 +:10320000C1019A8389831B82DD82CC822E83CE0109 +:1032100001967FCF809590958C0D9D1DACCFF62E9D +:10322000662309F49CCF75132EC034132CC0209153 +:10323000C50120FD1FC0822F82958F70D9F0D80163 +:1032400015962C9315978F3049F08F5F982F929594 +:10325000907F822F8F70892B15968C93C8010E94C6 +:10326000A71686E0F801A0ECB1E001900D928A95D6 +:10327000E1F793CF86E0F801A0ECB1E001900D9268 +:103280008A95E1F72DC04D875E878D859E850E94CA +:10329000E616811140CF8091C50181608093C50100 +:1032A000C8010E94A7161CC0662309F458CF4D8799 +:1032B0005E878D859E850E94E616882309F44FCF90 +:1032C0002ACF811148CF0CC0243031050CF047CFF4 +:1032D0009F7009F440CFF8019581907F09F03BCFB2 +:1032E0008F2D62960FB6F894DEBF0FBECDBFDF9173 +:1032F000CF911F910F91FF90EF90DF90CF900895A5 +:103300001F93CF93DF93CDB7DEB72C970FB6F8940A +:10331000DEBF0FBECDBF4F83588769877A878B8703 +:103320009C87CE0107960E94B917882369F08F8188 +:1033300098852A853B85232BF1F19F3F09F063C0D7 +:103340008F3F09F060C037C086E0FE013796DE018E +:10335000119601900D928A95E1F76F817885EA8543 +:10336000FB85309741F17F3F11F46F3F21F12091B0 +:103370008F0130E0C90101968770992740918E0135 +:1033800050E08417950709F447C069837A83FD8369 +:10339000EC8396E0929FD001939FB00D1124A0572B +:1033A000BE4FFE01319601900D929A95E1F7809300 +:1033B0008F010E942F1716E080918E0190918F014E +:1033C0008917C1F1189FC001112480579E4F0E9498 +:1033D000B917882379F1E0918E011E9FF001112425 +:1033E000E057FE4F408151816281738184819581D4 +:1033F0000E941F1780918E0190E001968770992797 +:1034000080938E01D9CF4F81588569857A858B85C8 +:103410009C850E941F17CFCF0E94E21610928F0149 +:1034200010928E01E0ECF1E086E0DF011D928A95BA +:10343000E9F7C1CF2C960FB6F894DEBF0FBECDBF13 +:10344000DF91CF911F910895EF92FF920F931F93F9 +:10345000CF93DF938C01009709F46CC0F12CEE241C +:10346000E394E8012196F8018491843740F4843094 +:1034700008F051C0813081F0823019F15BC085378E +:1034800009F444C0A8F19CE7980F903708F052C0A7 +:103490008F770E942D1441C00E5F1F4FFE01C49113 +:1034A00080E28C0F883048F4C7708E2D01C0880FE1 +:1034B000CA95EAF70E94001D14C08C2F0E94651364 +:1034C0002DC00E5F1F4FFE01C49180E28C0F88302B +:1034D00058F4C7708E2D01C0880FCA95EAF70E9474 +:1034E000061D0E94271D1AC08C2F0E942D1416C085 +:1034F0000E5F1F4FFE01C491CC2381F08FE99FE046 +:103500000197F1F700C00000C150F6CF0E5F1F4FCA +:10351000FE01F49003C00E9465138E018F2D882355 +:1035200009F49FCFEFE9FFE03197F1F700C0000009 +:103530008150F5CFDF91CF911F910F91FF90EF90C8 +:10354000089508956093CA017093CB018093CC01D4 +:103550009093CD010C94CE160F931F930091CA0146 +:103560001091CB012091CC013091CD01DC01CB0138 +:10357000802B912BA22BB32B8093CA019093CB016C +:10358000A093CC01B093CD011F910F910C94CE1656 +:103590000F931F930091CA011091CB012091CC0190 +:1035A0003091CD01DC01CB0180239123A223B323F1 +:1035B0008093CA019093CB01A093CC01B093CD012D +:1035C0001F910F910C94CE160F931F930091CA0177 +:1035D0001091CB012091CC013091CD01DC01CB01C8 +:1035E00080279127A227B3278093CA019093CB010C +:1035F000A093CC01B093CD011F910F910C94CE16E6 +:103600001092C6011092C7011092C8011092C90110 +:103610000C94CE1641E050E060E070E004C0440F2E +:10362000551F661F771F8A95D2F74093C6015093A6 +:10363000C7016093C8017093C9010C94CE1641E094 +:1036400050E060E070E004C0440F551F661F771F14 +:103650008A95D2F78091C6019091C701A091C801C7 +:10366000B091C901482B592B6A2B7B2B4093C60183 +:103670005093C7016093C8017093C9010C94CE1692 +:1036800041E050E060E070E004C0440F551F661F49 +:10369000771F8A95D2F740955095609570958091E7 +:1036A000C6019091C701A091C801B091C9014823FA +:1036B00059236A237B234093C6015093C70160932B +:1036C000C8017093C9010C94CE1641E050E060E04F +:1036D00070E004C0440F551F661F771F8A95D2F70C +:1036E0008091C6019091C701A091C801B091C90114 +:1036F000482759276A277B274093C6015093C70163 +:103700006093C8017093C9010C94CE160F931F9358 +:103710000091C6011091C7012091C8013091C901E3 +:10372000DC01CB01802B912BA22BB32B8093C60104 +:103730009093C701A093C801B093C9011F910F9145 +:103740000C94CE160F931F930091C6011091C701E0 +:103750002091C8013091C901DC01CB018023912364 +:10376000A223B3238093C6019093C701A093C801FD +:10377000B093C9011F910F910C94CE160F931F9314 +:103780000091C6011091C7012091C8013091C90173 +:10379000DC01CB0180279127A227B3278093C601A4 +:1037A0009093C701A093C801B093C9011F910F91D5 +:1037B0000C94CE160895CF92DF92EF92FF920F9362 +:1037C0001F93CF93DF938C01C090CA01D090CB019F +:1037D000E090CC01F090CD018091C6019091C7019D +:1037E000A091C801B091C901C82AD92AEA2AFB2AA6 +:1037F000CFE1D0E0D701C6010C2E04C0B695A79545 +:10380000979587950A94D2F780FF06C0B8018C2F50 +:103810000E943409019721F4219760F780E001C0EC +:103820008C2FDF91CF911F910F91FF90EF90DF9040 +:10383000CF900895CF93DF93EC010E94DB1BBE0174 +:103840000E943409DF91CF910895CB010E941A1C88 +:1038500008958091CE0185958595859508958091EF +:10386000CE018770089598E0899F90011124262B3E +:103870002093CE010C941F1B2091CE0180958223B2 +:103880008093CE01982F977069F430E0482F552728 +:1038900047FD50952417350729F085958595859521 +:1038A0000C94401B08959091CE01977081E009F42B +:1038B00080E0089590910C01992321F090910D01E1 +:1038C000911109C020910E0130910F01F90132963A +:1038D0009FEF40E01FC0982F9695969596959F3044 +:1038E00050F5E0910E01F0910F01E90FF11D877085 +:1038F00021E030E0A90102C0440F551F8A95E2F78C +:10390000CA019181892B818308959F3F39F04F5FD0 +:103910004E3041F051915813F8CF0DC05111F7CFEF +:10392000942FF5CF9F3F39F0F901E90FF11D97FD75 +:10393000FA9582830895089590910C01992321F0BE +:1039400090910D01911109C020910E0130910F014C +:10395000F9013296205F3F4F1FC0982F969596959C +:1039600096959F30F0F4E0910E01F0910F01E90F70 +:10397000F11D877021E030E0A90102C0440F551FFE +:103980008A95E2F7CA018095918189238183089500 +:103990003196E217F30729F090819813F9CF10823E +:1039A000F7CF089581E090E0E0910E01F0910F01D2 +:1039B000E80FF91F1082019680319105A9F708954B +:1039C0009091E201892B8093E20108958095909176 +:1039D000E20189238093E20108951092E2010895A3 +:1039E0009091E101892B8093E10108958095909158 +:1039F000E10189238093E10108951092E101089586 +:103A00009091E001892B8093E00108958095909139 +:103A1000E00189238093E00108951092E001089568 +:103A20008093CF0108951092CF01089580910E01E7 +:103A300090910F01FC0131969C01205F3F4F80E087 +:103A4000919191118F5FE217F307D1F70895E091FB +:103A50000E01F0910F018091E2018083E0910E014F +:103A6000F0910F0190818091E101892B8083E09199 +:103A70000E01F0910F0190818091E001892B8083EC +:103A80008091CF01882361F0E0910E01F0910F0148 +:103A90009081892B80830E94161D81111092CF0185 +:103AA00080910E0190910F010C94551220E0009727 +:103AB00039F0AC0141505109842395232F5FF7CF92 +:103AC000822F08958091FC01843021F11092E4014D +:103AD00020E488E190E00FB6F894A8958093600008 +:103AE0000FBE2093600080E00E94460B83B7817F69 +:103AF000846083BF83B7816083BF7894889583B7E0 +:103B00008E7F83BF88E10FB6F89480936000109297 +:103B100060000FBE089508950E94C1030E94D4035F +:103B20000E948B1D0E94C90491E0811101C090E0A8 +:103B3000892F08950E94E2160E9449120C94460BA8 +:103B400082E084BD93E095BD9AEF97BD80936E00AF +:103B500008952FB7F8948091E5019091E601A09126 +:103B6000E701B091E8012FBF0895CF92DF92EF9265 +:103B7000FF920F931F932FB7F8944091E501509156 +:103B8000E6016091E7017091E8012FBF6A017B01B6 +:103B9000EE24FF248C0120E030E0C016D106E206BE +:103BA000F30610F4415051099A01281B390BC90141 +:103BB0001F910F91FF90EF90DF90CF9008951F928B +:103BC0000F920FB60F9211248F939F93AF93BF93D1 +:103BD0008091E5019091E601A091E701B091E801A3 +:103BE0000196A11DB11D8093E5019093E601A0937C +:103BF000E701B093E801BF91AF919F918F910F9032 +:103C00000FBE0F901F9018950E94460FF8942FEF4B +:103C100087EA91E6215080409040E1F700C0000023 +:103C200087E090EBDC018093050290930602A0935D +:103C30000702B09308029CE088E10FB6F894A895BB +:103C4000809360000FBE90936000FFCF0E945E1EC5 +:103C5000811102C00E94441E0E94691E8093E301EC +:103C60000E94711E90E09093F7018093F60187FB0C +:103C7000882780F980930D010E946D1E682F70E0E7 +:103C800080E090E00C94A21A6DEE7EEF80E090E070 +:103C90000E94AC2460E082E090E00E949A2460E000 +:103CA00083E090E00E949A2460E084E090E00E942B +:103CB0009A2460E085E090E00C949A2480E090E003 +:103CC0000E94942421E08D3E9E4F09F020E0822F37 +:103CD000089582E090E00C948C2483E090E00C94B2 +:103CE0008C2484E090E00C948C24682F84E090E095 +:103CF0000C949A248091EB0180FF0BC0609113011A +:103D000085E0689FB0011124759567957595679555 +:103D10002BC081FF09C06091130185E0689FB0014D +:103D200011247595679520C082FF07C0609113012B +:103D300085E0689FB001112417C09091EC01992390 +:103D4000D1F060911201961788F72091130185E058 +:103D5000289F90011124929FA001939F500D112440 +:103D600070E0CA010E945E246038710540F461155C +:103D7000710539F002C065E070E0862F08958FE785 +:103D8000089581E008958091EB0180FF08C0609163 +:103D9000110170E0759567957595679521C081FF54 +:103DA00006C06091110170E07595679519C082FF9A +:103DB00004C06091110170E010C09091EC01992352 +:103DC000C1F0609110019617A0F780911101899FB1 +:103DD000C001112470E00E945E246038710528F44F +:103DE0006115710521F0862F08958FE7089581E010 +:103DF000089561E070E0F4CF803F21F40E947A1EC4 +:103E0000819504C0813F29F40E947A1E8093EF01BE +:103E10000895823F21F40E947A1E819504C0833F59 +:103E200029F40E947A1E8093EE010895893F19F4C7 +:103E30000E94C31E05C08A3F31F40E94C31E8195B3 +:103E40008093F00108958B3F21F40E94C31E819559 +:103E500004C08C3F29F40E94C31E8093F101089591 +:103E6000843F21F48091ED01816017C0853F21F4EA +:103E70008091ED01826011C0863F21F48091ED01B7 +:103E800084600BC0873F21F48091ED01886005C0FC +:103E9000883F31F48091ED0180618093ED010895B8 +:103EA0008D3F21F48091EB0181600BC08E3F21F4A6 +:103EB0008091EB01826005C08F3F29F48091EB0176 +:103EC00084608093EB010895803F39F48091EF0185 +:103ED00087FF6CC01092EF0169C0813F29F4809187 +:103EE000EF011816BCF362C09091EE01823F29F4F5 +:103EF00097FF5CC01092EE0159C0833F19F4191668 +:103F0000CCF354C0893F41F48091F00118160CF0B5 +:103F10004DC01092F0014AC08A3F29F48091F0010F +:103F200087FF44C0F6CF8B3F39F48091F10187FFC2 +:103F30003DC01092F1013AC08C3F29F48091F1010B +:103F40001816BCF333C0843F21F48091ED018E7FBD +:103F500017C0853F21F48091ED018D7F11C0863F10 +:103F600021F48091ED018B7F0BC0873F21F480917C +:103F7000ED01877F05C0883F31F48091ED018F7E90 +:103F80008093ED0113C08D3F21F48091EB018E7F72 +:103F90000BC08E3F21F48091EB018D7F05C08F3FD8 +:103FA00029F48091EB018B7F8093EB018091EE01EE +:103FB00081110EC08091EF0181110AC08091F00142 +:103FC000811106C08091F101811102C01092EC01B3 +:103FD00008958DEE91E00E9460120E94A91D9093B9 +:103FE000EA018093E90108951F93CF93DF938091B5 +:103FF000E9019091EA010E94B51DAC019091EC019C +:10400000992321F02091140130E006C02091150180 +:104010008AE0289F900111244217530708F486C0B4 +:104020008091EE01C091EF01D091F0011091F1016A +:10403000811107C0C11176C0D11174C0111172C0B5 +:1040400075C09F3F19F09F5F9093EC01181624F400 +:104050000E947A1E8093EE018091EE0187FF05C0D9 +:104060000E947A1E81958093EE011C1624F40E9412 +:104070007A1E8093EF018091EF0187FF05C00E94B7 +:104080007A1E81958093EF016091EE01662339F1EC +:10409000C091EF01CC2319F1772767FD7095872F29 +:1040A000972F0E946F2323E333E343E35FE30E94F0 +:1040B000D3230E943C236093EE016C2F772767FD8A +:1040C0007095872F972F0E946F2323E333E343E3F9 +:1040D0005FE30E94D3230E943C236093EF011D16EF +:1040E00024F40E94C31E8093F0018091F00187FFA9 +:1040F00005C00E94C31E81958093F001111624F41F +:104100000E94C31E8093F1018091F10187FF05C0D9 +:104110000E94C31E81958093F101DF91CF911F9181 +:104120000C94E91F9F3F09F08ECF96CFDF91CF917E +:104130001F910895EDEEF1E085E0DF011D928A9573 +:10414000E9F71092EC011092EB010895833081F1B0 +:1041500028F4813059F08230D1F00895853009F487 +:1041600049C0B8F1863009F456C008958091150110 +:10417000262F30E0280F311D2F3F310524F4680F22 +:104180006093150108958FEF809315010895809134 +:104190001401262F30E0280F311D2F3F310524F464 +:1041A000680F6093140108958FEF809314010895B0 +:1041B00080911301262F30E0280F311D2F3F31054C +:1041C00024F4680F6093130108958FEF8093130117 +:1041D000089580911201262F30E0280F311D2F3FC6 +:1041E000310524F4680F6093120108958FEF8093D6 +:1041F0001201089580911101262F30E0280F311D02 +:104200002F3F310524F4680F6093110108958FEF5B +:1042100080931101089580911001262F30E0280F1E +:10422000311D2F3F310524F4680F6093100108956C +:104230008FEF809310010895833011F128F48130BD +:1042400049F0823091F00895853081F120F1863077 +:10425000C1F1089580911501681720F4861B8093A1 +:1042600015010895109215010895809114016817A1 +:1042700020F4861B80931401089510921401089570 +:1042800080911301681720F4861B80931301089511 +:1042900010921301089580911201681720F4861B73 +:1042A00080931201089510921201089580911101D6 +:1042B000681720F4861B8093110108951092110154 +:1042C000089580911001681720F4861B80931001D7 +:1042D00008951092100108950F931F938D3109F4E2 +:1042E00071C008F045C0803109F485C008F58730F9 +:1042F00009F46FC068F4863009F0ADC08091E30125 +:10430000817F8E7F8093E30181E08093F301A4C0DD +:104310008B3009F49EC08E3009F09DC08091E3017E +:1043200082FB222720F991E0922790FB82F96CC052 +:10433000863109F48EC060F4813109F08CC00E948E +:10434000E21690910D0181E0892780930D0181C0D3 +:10435000893109F47EC08B3109F07DC08091E30181 +:1043600081FB222720F991E0922790FB81F94CC034 +:10437000853309F466C048F4873209F462C008F452 +:104380004FC0893209F45DC066C0833438F48A3383 +:1043900008F044C0883309F45CC05DC0833409F47C +:1043A00050C0883409F057C00E94E2160FEF13ED99 +:1043B00020E3015010402040E1F700C000000E94BF +:1043C000041E47C00E94F6220E9449120E94460B1A +:1043D00040C09091E301892F8095817080FB90F916 +:1043E00029F0966098609093E30136C0997F977F9B +:1043F0009093E3012EC08091E30183FB222720F9F3 +:1044000091E0922790FB83F98093E301992309F1CE +:104410008091E30181608093E3011BC0895301C057 +:104420008D5141E050E060E070E08A019B0104C0E2 +:10443000000F111F221F331F8A95D2F7C901B8013F +:1044400004C061E070E080E090E00E94A21A0E9447 +:10445000E21681E001C080E01F910F91089580E095 +:10446000089580E008958E518A3030F4E82FF0E00E +:10447000E65DFE4F8081089580E00895CF93C82FB8 +:104480008091F301813079F018F08230E9F186C033 +:10449000E0910E01F0910F018081813169F082324B +:1044A00009F07EC009C0E0910E01F0910F018081FA +:1044B000813111F0823261F48C2F0E942F22811100 +:1044C00004C08C2F0E946C211DC081E090E01AC0B6 +:1044D0008C2F0E943122811114C0C43179F048F42C +:1044E000CB3079F0C03109F05FC082E08093F301F6 +:1044F00008C0C93219F0C83321F056C01092F30138 +:1045000053C081E0817052C0C93281F110F5C431CD +:1045100069F1A8F4C73009F045C08AE0809315011D +:1045200094E19093140193E090931301809312010E +:1045300088E08093110188E28093100133C082EEFD +:104540008C0F863078F58C2F0E9433228093F201F5 +:1045500029C0CE34E9F020F4CB3421F56AE013C051 +:10456000C13579F0C235F1F461E00DC08091F201FE +:10457000882319F01092F20115C081E08093F301B5 +:1045800015C061E006C08091F2010E94A6200AC019 +:104590006AE08091F2010E941C2104C01092F30194 +:1045A00080E004C081E002C080E0ACCFCF910895EC +:1045B000E1E8F0E080818860808380818160808391 +:1045C0008FB7F89493E09093890090ED90938800D2 +:1045D0008FBF0895EFE6F0E08081826080830895C8 +:1045E000EFE6F0E080818D7F80830895EFE6F0E0D4 +:1045F000908182E08927808308951F920F920FB6E1 +:104600000F9211242F933F934F935F936F937F9358 +:104610008F939F93AF93BF93EF93FF938091F40198 +:104620009091F50101969093F5018093F401811129 +:1046300003C082E00E94460BE091F501E695E69505 +:10464000F0E0E756FA4FE4918091F4018E1303C035 +:1046500080E00E94460BFF91EF91BF91AF919F9137 +:104660008F917F916F915F914F913F912F910F901B +:104670000FBE0F901F90189504D06894B1118DC093 +:10468000089570D088F09F5790F0B92F9927B751AF +:10469000A0F0D1F0660F771F881F991F1AF0BA9506 +:1046A000C9F712C0B13081F077D0B1E0089574C07D +:1046B000672F782F8827B85F39F0B93FCCF38695FC +:1046C00077956795B395D9F73EF490958095709559 +:1046D00061957F4F8F4F9F4F0895E89409C097FBD6 +:1046E0003EF490958095709561957F4F8F4F9F4FC9 +:1046F0009923A9F0F92F96E9BB279395F69587950D +:1047000077956795B795F111F8CFFAF4BB0F11F4CF +:1047100060FF1BC06F5F7F4F8F4F9F4F16C0882376 +:1047200011F096E911C0772321F09EE8872F762FAC +:1047300005C0662371F096E8862F70E060E02AF0ED +:104740009A95660F771F881FDAF7880F96958795D9 +:1047500097F9089557FD9058440F551F59F05F3F42 +:1047600071F04795880F97FB991F61F09F3F79F093 +:1047700087950895121613061406551FF2CF469515 +:10478000F1DF08C0161617061806991FF1CF869597 +:104790007105610508940895E894BB27662777277B +:1047A000CB0197F908950BD078C069D028F06ED06E +:1047B00018F0952309F05AC05FC01124EECFCADF6C +:1047C000A0F3959FD1F3950F50E0551F629FF00124 +:1047D000729FBB27F00DB11D639FAA27F00DB11D7D +:1047E000AA1F649F6627B00DA11D661F829F222706 +:1047F000B00DA11D621F739FB00DA11D621F839F8D +:10480000A00D611D221F749F3327A00D611D231F62 +:10481000849F600D211D822F762F6A2F11249F57B0 +:1048200050408AF0E1F088234AF0EE0FFF1FBB1FD3 +:10483000661F771F881F91505040A9F79E3F510572 +:1048400070F014C0AACF5F3FECF3983EDCF386957E +:1048500077956795B795F795E7959F5FC1F7FE2B1D +:10486000880F911D9695879597F9089597F99F67F9 +:1048700080E870E060E008959FEF80EC08950024E8 +:104880000A941616170618060906089500240A94B5 +:1048900012161306140605060895092E0394000C3B +:1048A00011F4882352F0BB0F40F4BF2B11F460FFCA +:1048B00004C06F5F7F4F8F4F9F4F089597FB072E68 +:1048C00016F4009407D077FD09D00E94782407FCE5 +:1048D00005D03EF4909581959F4F08957095619510 +:1048E0007F4F0895EE0FFF1F0590F491E02D09947E +:1048F000AA1BBB1B51E107C0AA1FBB1FA617B70706 +:1049000010F0A61BB70B881F991F5A95A9F7809521 +:104910009095BC01CD010895F999FECF92BD81BD5E +:10492000F89A992780B50895A8E1B0E042E050E0F8 +:104930000C94B424262FF999FECF92BD81BDF89A2C +:10494000019700B4021639F01FBA20BD0FB6F894D3 +:10495000FA9AF99A0FBE08950196272F0E949B2478 +:104960000C949A24DC01CB01FC01F999FECF06C01E +:10497000F2BDE1BDF89A319600B40D92415050401D +:08498000B8F70895F894FFCF89 +:104988000220480BD60BB30B7F0B4B0B0101D00158 +:1049980028080A03140A404D363959050C05D6046F +:1049A8009D043004490462047B04010203040506E3 +:0449B80007080900E3 +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/ordinary/keymap.c b/keyboards/ergodox_ez/keymaps/ordinary/keymap.c new file mode 100644 index 000000000..778cbc63c --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/ordinary/keymap.c @@ -0,0 +1,454 @@ +#include "ergodox_ez.h" +#include "led.h" +#include "debug.h" +#include "action_layer.h" +#include "action_util.h" +#include "mousekey.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols layer +#define MDIA 2 // media layer +#define SPEC 3 // special layer + +#define LCaps 10 // left caps-shift key +#define LSymb 11 // left symbol-shift key +#define LMdia 12 // left media-shift key +#define LSpec 13 // left special-shift key +#define RCaps 14 // right caps-shift key +#define RSymb 15 // right symbol-shift key +#define RMdia 16 // right media-shift key +#define RSpec 17 // right special-shift key + +#define MUL 20 // mouse up left +#define MUR 21 // mouse up right +#define MDL 22 // mouse down left +#define MDR 23 // mouse down right + +/* + * The Ordinary Layout for the Ergodox EZ keyboard, v4 + * + * Modifications from default by Nicholas Keene ergodoxez@nicholaskeene.com + * + * No rights reserved. This software is in the public domain. + * Credit me if you are friendly but if you're a jerk don't bother. + * + * Details: readme.md + * https://github.com/nrrkeene/qmk_firmware/tree/master/keyboard/ergodox_ez/keymaps/ordinary + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/******* Base Layer ******************************************************************************************************** + * + * ,------------------------------------------------------. ,------------------------------------------------------. + * | Special `~ | 1 | 2 | 3 | 4 | 5 | ESC | | - | 6 | 7 | 8 | 9 | 0 | =+ Special | + * |------------+------+------+------+------+-------------| |------+------+------+------+------+------+------------| + * | Media Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \| Media | + * |------------+------+------+------+------+------| | | |------+------+------+------+------+------------| + * | Symbol | A | S | D | F | G |------| |------| H | J | K | L | ; | '" Symbol | + * |------------+------+------+------+------+------|Shift | | Tab |------+------+------+------+------+------------| + * | Capitals | Z | X | C | V | B | -Tab | | | N | M | , | . | / | Capitals | + * `------------+------+------+------+------+-------------' `-------------+------+------+------+------+------------' + * | LCtrl | Meh |Hyper | LAlt | LGui | | RGui | RAlt | Hyper| Meh | RCtrl | + * `-----------------------------------' `-----------------------------------' + * ,-------------. ,-------------. + * | Home | End | | Left | Right| + * ,------|------|------| |------+------+------. + * | | | PgUp | | Up | | | + * |Backsp| Del |------| |------| Enter| Space| + * | | | PgDn | | Down | | | + * `--------------------' `--------------------' + */ +[BASE] = KEYMAP( +// left hand + F(LSpec),KC_1,KC_2,KC_3 ,KC_4 ,KC_5 ,KC_ESC +,F(LMdia) ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC +,M(LSymb) ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G +,M(LCaps) ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,LSFT(KC_TAB) +,KC_LCTL ,KC_MEH ,KC_HYPR,KC_LALT,KC_LGUI + ,KC_HOME,KC_END + ,KC_PGUP + ,KC_BSPC,KC_DEL ,KC_PGDN + // right hand + ,KC_MINS ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,F(RSpec) + ,KC_RBRC ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,F(RMdia) + ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,F(RSymb) + ,KC_TAB ,KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH ,M(RCaps) + ,KC_RGUI,KC_RALT,KC_HYPR ,KC_MEH ,KC_RCTL + ,KC_LEFT ,KC_RGHT + ,KC_UP + ,KC_DOWN ,KC_ENT ,KC_SPC + ), + +/******* Symbols Layer ***************************************************************************************************** + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | Esc | | - | F6 | F7 | F8 | F9 | F10 | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | | ! | @ | { | } | & | < | | > | | | 7 | 8 | 9 | / | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | # | $ | ( | ) | ` |------| |------| / | 4 | 5 | 6 | * | | + * |-----------+------+------+------+------+------| Tab | | Shift|------+------+------+------+------+-----------| + * | | % | ^ | [ | ] | ~ | | | -Tab| \ | 1 | 2 | 3 | - | | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | LCtrl | Meh |Hyper | LAlt | LGui | |RGui/0|RAlt/.|Hypr/=|Meh/+ |RCtrl/Ent| + * `-----------------------------------' `-------------------------------------' + * ,-------------. ,-------------. + * | Left | Right| | Home | End | + * ,------|------|------| |------+------+------. + * | | | Up | | PgUp | | | + * |Space |Enter |------| |------|BackSp| Del | + * | | | Down | | PgDn | | | + * `--------------------' `--------------------' + */ +[SYMB] = KEYMAP( +// left hand + KC_TRNS ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_ESC +,KC_TRNS ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_AMPR ,LSFT(KC_COMM) +,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_TAB +,KC_LCTL ,KC_MEH ,KC_HYPR,KC_LALT ,KC_LGUI + ,KC_LEFT ,KC_RGHT + ,KC_UP + ,KC_SPC ,KC_ENT ,KC_DOWN + // right hand + ,KC_MINS ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_TRNS + ,LSFT(KC_DOT),KC_PIPE ,KC_7 ,KC_8 ,KC_9 ,KC_SLSH ,KC_TRNS + ,KC_SLSH ,KC_4 ,KC_5 ,KC_6 ,KC_ASTR ,KC_TRNS + ,LSFT(KC_TAB),KC_BSLS ,KC_1 ,KC_2 ,KC_3 ,KC_MINS ,KC_TRNS + ,GUI_T(KC_0),ALT_T(KC_DOT),ALL_T(KC_EQL),MEH_T(KC_PLUS),CTL_T(KC_ENT) + ,KC_HOME ,KC_END + ,KC_PGUP + ,KC_PGDN ,KC_BSPC ,KC_DEL +), + +/******* Media Layer ******************************************************************************************************* + * + * ,---------------------------------------------------------------. ,---------------------------------------------------------------. + * | | F11 | F12 | F13 | F14 | F15 | Esc | | | F16 | F17 | F18 | F19 | F20 | | + * |------+---------+---------+---------+---------+----------------| |------+---------+---------+---------+---------+---------+------| + * | |Shut Down|MouseUpLf|Mouse Up |MouseUpRg|Volume Up|Scroll| |Scroll|PrintScrn| Home | Up | PgUp | Mail | | + * |------+---------+---------+---------+---------+---------| Up | | Up |---------+---------+---------+---------+---------+------| + * | | Sleep |MouseLeft|MouseDown|MouseRght|Volume Dn|------| |------| Num Lock| Left | Down | Right | MyComp | | + * |------+---------+---------+---------+---------+---------|Scroll| |Scroll|---------+---------+---------+---------+---------+------| + * | | |MouseDnLf|MouseDown|MouseDnRg| Mute | Down | | Down | | End | Down | PgDn | | | + * `------+---------+---------+---------+---------+----------------' `----------------+---------+---------+---------+---------+------' + * |LCtrl| Meh | MClick | LClick | R Click| |Cmd/Insrt|Optn/Del | Hyper | Meh |RCtrl| + * `---------------------------------------------' `---------------------------------------------' + * ,-------------. ,-------------. + * | Stop |Refrsh| | Prev | Next | + * ,------|------|------| |------+------+------. + * |Brwser|Brwser|Search| |VolUp | | | + * |Back | Fwd |------| |------| Stop | Play-| + * | | | Home | |VolDn | | Pause| + * `--------------------' `--------------------' + */ +[MDIA] = KEYMAP( +// left hand + KC_TRNS ,KC_F11 ,KC_F12 ,KC_F13 ,KC_F14 ,KC_F15 ,KC_ESC +,KC_TRNS ,KC_POWER ,M(MUL) ,KC_MS_U ,M(MUR) ,KC_VOLU ,KC_WH_U +,KC_TRNS ,KC_SLEP ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_VOLD +,KC_TRNS ,KC_NO ,M(MDL) ,KC_MS_D ,M(MDR) ,KC_MUTE ,KC_WH_D +,KC_LCTL ,KC_MEH ,KC_BTN3 ,KC_BTN1 ,KC_BTN2 + ,KC_WSTP ,KC_WREF + ,KC_WSCH + ,KC_WBAK ,KC_NO ,KC_WHOM + // right hand + ,KC_NO ,KC_F16 ,KC_F17 ,KC_F18 ,KC_F19 ,KC_F20 ,KC_TRNS + ,KC_WH_U ,KC_PSCR ,KC_HOME ,KC_UP ,KC_PGUP ,KC_MAIL ,KC_TRNS + ,KC_NLCK ,KC_LEFT ,KC_DOWN ,KC_RIGHT,KC_MYCM ,KC_TRNS + ,KC_WH_D ,KC_NO ,KC_END ,KC_DOWN ,KC_PGDN ,KC_NO ,KC_TRNS + ,GUI_T(KC_INS),ALT_T(KC_DEL),KC_HYPR ,KC_MEH ,KC_RCTL + ,KC_MPRV ,KC_MNXT + ,KC_VOLU + ,KC_VOLD ,KC_MSTP ,KC_MPLY +), + +/******* Special Layer ***************************************************************************************************** + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | | Esc | | | | | | | | | | | | Bspc | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | | | | | | | | | | | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | |------| |------| | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | | | | | | | | | | RShift | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[SPEC] = KEYMAP( +// left hand + KC_TRNS ,KC_ESC ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,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_BSPC ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_RSFT + ,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[] = { + // the faux shift keys are implemented as macro taps + [LCaps] = ACTION_MACRO_TAP(LCaps) + ,[LSymb] = ACTION_MACRO_TAP(LSymb) + ,[LMdia] = ACTION_MACRO_TAP(LMdia) + ,[LSpec] = ACTION_MACRO_TAP(LSpec) + ,[RCaps] = ACTION_MACRO_TAP(RCaps) + ,[RSymb] = ACTION_MACRO_TAP(RSymb) + ,[RMdia] = ACTION_MACRO_TAP(RMdia) + ,[RSpec] = ACTION_MACRO_TAP(RSpec) +}; + +uint16_t caps_shift = 0; +uint16_t symb_shift = 0; +uint16_t mdia_shift = 0; + +bool symb_lock = false; +bool mdia_lock = false; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + // There are two shift keys for each layer so we increment a layer_shift var when one + // is pressed and decrement when one is released. If both are pressed at the same time + // then the layer is locked (or unlocked). The shift counts are bound between 0 and 2 + // only because sometimes rapid pressing led to irregular events; this way the states + // are self healing during use. + + case LCaps: // both caps-shift keys trigger Left Shift + case RCaps: // so they don't interfere with the magic combo + if (record->event.pressed && !record->tap.count) { + if(++caps_shift > 2) caps_shift = 2; + if(caps_shift == 2) { + register_code(KC_CAPS); + unregister_code(KC_CAPS); + } else if(caps_shift == 1) { + register_code(KC_LSFT); + } + } else { + if(--caps_shift < 0) caps_shift = 0; + if(caps_shift == 0) unregister_code(KC_LSFT); + } + break; + + case LSymb: + if (record->event.pressed) { + if(++symb_shift > 2) symb_shift = 2; + if(symb_shift == 2) { + symb_lock = !symb_lock; + } else if(symb_shift == 1) { + layer_on(SYMB); + } + } else { + if(--symb_shift < 0) symb_shift = 0; + if((symb_shift == 0) && (!symb_lock)) layer_off(SYMB); + } + break; + + case LMdia: + if (record->event.pressed) { + if (record->tap.count && (!mdia_shift) && (!mdia_lock)) { + register_code(KC_TAB); + } else { + if(++mdia_shift > 2) mdia_shift = 2; + if(mdia_shift == 2) { + mdia_lock = !mdia_lock; + } else if(mdia_shift == 1) { + layer_on(MDIA); + } + } + } else { + if(record->tap.count && (!mdia_shift) && (!mdia_lock)) { + unregister_code(KC_TAB); + } else { + if(--mdia_shift < 0) mdia_shift = 0; + if((!mdia_shift) && (!mdia_lock)) layer_off(MDIA); + } + } + break; + + case LSpec: + if (record->event.pressed) { + if (record->tap.count && !record->tap.interrupted) { + register_code(KC_GRV); + } else { + layer_on(SPEC); + } + } else { + if(record->tap.count && !record->tap.interrupted) { + unregister_code(KC_GRV); + } else { + layer_off(SPEC); + } + } + break; + + case RSymb: + if (record->event.pressed) { + if (record->tap.count && (!symb_shift) && (!symb_lock)) { + register_code(KC_QUOT); + } else { + if(++symb_shift > 2) symb_shift = 2; + if(symb_shift == 2) { + symb_lock = !symb_lock; + } else if(symb_shift == 1) { + layer_on(SYMB); + } + } + } else { + if(record->tap.count && symb_shift == 0) { + unregister_code(KC_QUOT); + } else { + if(--symb_shift < 0) symb_shift = 0; + if((!symb_shift) && (!symb_lock)) layer_off(SYMB); + } + } + break; + + case RMdia: + if (record->event.pressed) { + if (record->tap.count && (!mdia_shift) && (!mdia_lock)) { + register_code(KC_BSLS); + } else { + if(++mdia_shift > 2) mdia_shift = 2; + if(mdia_shift == 2) { + mdia_lock = !mdia_lock; + } else if(mdia_shift == 1) { + layer_on(MDIA); + } + } + } else { + if(record->tap.count && (!mdia_shift) && (!mdia_lock)) { + unregister_code(KC_BSLS); + } else { + if(--mdia_shift < 0) mdia_shift = 0; + if((!mdia_shift) && (!mdia_lock)) layer_off(MDIA); + } + } + break; + + case RSpec: + if (record->event.pressed) { + if (record->tap.count && !record->tap.interrupted) { + register_code(KC_EQL); + } else { + layer_on(SPEC); + } + } else { + if(record->tap.count && !record->tap.interrupted) { + unregister_code(KC_EQL); + } else { + layer_off(SPEC); + } + } + break; + + // mouse diagonals + + case MUL: // mouse up left + if (record->event.pressed) { + mousekey_on(KC_MS_UP); + mousekey_on(KC_MS_LEFT); + mousekey_send(); + } else { + mousekey_off(KC_MS_UP); + mousekey_off(KC_MS_LEFT); + mousekey_send(); + } + break; + + case MUR: // mouse up right + if (record->event.pressed) { + mousekey_on(KC_MS_UP); + mousekey_on(KC_MS_RIGHT); + mousekey_send(); + } else { + mousekey_off(KC_MS_UP); + mousekey_off(KC_MS_RIGHT); + mousekey_send(); + } + break; + + case MDL: // mouse down left + if (record->event.pressed) { + mousekey_on(KC_MS_DOWN); + mousekey_on(KC_MS_LEFT); + mousekey_send(); + } else { + mousekey_off(KC_MS_DOWN); + mousekey_off(KC_MS_LEFT); + mousekey_send(); + } + break; + + case MDR: // mouse down right + if (record->event.pressed) { + mousekey_on(KC_MS_DOWN); + mousekey_on(KC_MS_RIGHT); + mousekey_send(); + } else { + mousekey_off(KC_MS_DOWN); + mousekey_off(KC_MS_RIGHT); + mousekey_send(); + } + break; + + default: + // none + 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) { + // shift or caps lock turns on red light + if(caps_shift || (keyboard_report->mods & MOD_BIT(KC_RSFT)) || (host_keyboard_leds() & (1<\n\n\nTab"], +[{y:-0.75,x:3.5,c:"#cccccc"},"C",{x:10.5},"<\n,"], +[{y:-0.875,x:2.5},"X",{x:1},"V",{x:8.5},"M",{x:1},">\n."], +[{y:-0.875,x:5.5},"B",{x:6.5},"N"], +[{y:-0.875,c:"#2277ff",w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#cccccc"},"Z",{x:14.5},"?\n/",{c:"#2277ff",w:1.5},"\n\nCapitals\n\n\n\n\nShift"], +[{y:-0.375,x:3.5,c:"#77aaff"},"Option\n\n\nLAlt",{x:10.5},"Option\n\n\nRAlt"], +[{y:-0.875,x:2.5},"Hyper",{x:1},"Cmd\n\n\nSuper",{x:8.5},"Cmd\n\n\nSuper",{x:1},"Hyper"], +[{y:-0.75,x:0.5},"Ctrl\n\n\nLCtrl","Meh",{x:14.5},"Meh","Ctrl\n\n\nRCtrl"], +[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#54d6de"},"Home","End"], +[{h:2},"< Del\n\n\nBackspace",{h:2},"Del >\n\n\nDelete","Page\n\n\n\n\n\nUp"], +[{x:2},"Page\n\n\n\n\n\nDown"], +[{r:-30,rx:13,y:-1,x:-3},"Left","Right"], +[{x:-3},"Up",{h:2},"Enter",{h:2},"Space"], +[{x:-3},"Down"] + diff --git a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-media.png b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-media.png new file mode 100644 index 000000000..99e5ed80b Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-media.png differ diff --git a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-media.txt b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-media.txt new file mode 100644 index 000000000..4eccc9f35 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-media.txt @@ -0,0 +1,27 @@ +[{x:3.5,c:"#99de2a"},"F13",{x:10.5},"F18"], +[{y:-0.875,x:2.5},"F12",{x:1},"F14",{x:8.5},"F17",{x:1},"F19"], +[{y:-0.875,x:5.5},"F15",{c:"#ff4444"},"Esc",{x:4.5,c:"#737373",a:7},"",{c:"#99de2a",a:4},"F16"], +[{y:-0.875,c:"#2277ff",w:1.5},"Special\n\n\n\n\n\nShift",{c:"#99de2a"},"F11",{x:14.5},"F20",{c:"#2277ff",w:1.5},"\n\nSpecial\n\n\n\n\nShift"], +[{y:-0.375,x:3.5,c:"#ff8500"},"Mouse\n\n\n\n\n\nUp",{x:10.5},"Cursor\n\n\n\n\n\nUp"], +[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nUpLeft",{x:1},"Mouse\n\n\n\n\n\nUpRgt",{x:8.5,c:"#ffb063"},"Home",{x:1},"Page\n\n\n\n\n\nUp"], +[{y:-0.875,x:5.5,c:"#e6e067"},"Vol\n\n\n\n\n\nUp",{c:"#ffb063",h:1.5},"Scroll\n\n\n\n\n\nUp",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nUp",{c:"#e6e067"},"Print\n\n\n\n\n\nScreen"], +[{y:-0.875,c:"#000000",t:"#ff0000",w:1.5},"Media\n\n\n\n\n\nShift",{c:"#e6e067",t:"#000000"},"Shut\n\n\n\n\n\nDown",{x:14.5},"Mail",{c:"#000000",t:"#ff0000",w:1.5},"\n\nMedia\n\n\n\n\nShift"], +[{y:-0.375,x:3.5,c:"#ff8500",t:"#000000"},"Mouse\n\n\n\n\n\nDown",{x:10.5},"Cursor\n\n\n\n\n\nDown"], +[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nLeft",{x:1},"Mouse\n\n\n\n\n\nRight",{x:8.5},"Cursor\n\n\n\n\n\nLeft",{x:1},"Cursor\n\n\n\n\n\nRight"], +[{y:-0.875,x:5.5,c:"#e6e067"},"Vol\n\n\n\n\n\nDown",{x:6.5},"Num\n\n\n\n\n\nLock"], +[{y:-0.875,c:"#2277ff",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#e6e067"},"Sleep",{x:14.5},"My\n\n\n\n\n\nComp",{c:"#2277ff",w:1.5},"\n\nSymbols\n\n\n\n\nShift"], +[{y:-0.625,x:6.5,c:"#ffb063",h:1.5},"Scroll\n\n\n\n\n\nDown",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nDown"], +[{y:-0.75,x:3.5,c:"#ff8500"},"Mouse\n\n\n\n\n\nDown",{x:10.5},"Cursor\n\n\n\n\n\nDown"], +[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nDnLeft",{x:1},"Mouse\n\n\n\n\n\nDnRgt",{x:8.5,c:"#ffb063"},"End",{x:1},"Page\n\n\n\n\n\nDown"], +[{y:-0.875,x:5.5,c:"#e6e067"},"Mute",{x:6.5,c:"#737373",a:7},""], +[{y:-0.875,c:"#2277ff",a:4,w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#737373",a:7},"",{x:14.5},"",{c:"#2277ff",a:4,w:1.5},"\n\nCapitals\n\n\n\n\nShift"], +[{y:-0.375,x:3.5,c:"#ff8500"},"Middle\n\n\n\n\n\nClick",{x:10.5,c:"#ffb063",fa:[0,0,0,1]},"Delete\n\n\nOption"], +[{y:-0.875,x:2.5,c:"#ff8500"},"Left\n\n\n\n\n\nClick",{x:1},"Right\n\n\n\n\n\nClick",{x:8.5,c:"#ffb063"},"Insert\n\n\nCmd",{x:1,c:"#77aaff"},"Hyper"], +[{y:-0.75,x:0.5},"Ctrl\n\n\nLCtrl","Meh",{x:14.5},"Meh","Crtl\n\n\nRCtrl"], +[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#ccbb00"},"Stop\n\n\nBrowser","Reload\n\n\nBrowser"], +[{h:2},"< Web\n\n\nBrowser",{h:2},"Web >\n\n\nBrowser","Search\n\n\nBrowser"], +[{x:2},"Home\n\n\nBrowser"], +[{r:-30,rx:13,y:-1,x:-3},"Prev\n\n\nAudio\n\n\nTrack","Next\n\n\nAudio\n\n\nTrack"], +[{x:-3,c:"#e6e067"},"Vol\n\n\n\n\n\nUp",{c:"#ccbb00",h:2},"Stop\n\n\nAudio",{h:2},"Play\n\n\nAudio\n\n\nPause"], +[{x:-3,c:"#e6e067"},"Vol\n\n\n\n\n\nDown"] + diff --git a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-special.png b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-special.png new file mode 100644 index 000000000..6eecf447e Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-special.png differ diff --git a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-special.txt b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-special.txt new file mode 100644 index 000000000..a08827c6d --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-special.txt @@ -0,0 +1,27 @@ +[{x:3.5,a:7},"",{x:10.5},""], +[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""], +[{y:-0.875,x:5.5},"",{c:"#ff4444",a:4},"Esc",{x:4.5,c:"#cccccc",a:7},"",""], +[{y:-0.875,c:"#000000",t:"#ff0000",a:4,w:1.5},"Special\n\n\n\n\n\nShift",{c:"#ff4444",t:"#000000"},"Esc",{x:14.5,c:"#54d6de"},"Back\n\n\n\n\n\nspace",{c:"#000000",t:"#ff0000",w:1.5},"\n\nSpecial\n\n\n\n\nShift"], +[{y:-0.375,x:3.5,c:"#cccccc",t:"#000000",a:7},"",{x:10.5},""], +[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""], +[{y:-0.875,x:5.5},"",{h:1.5},"",{x:4.5,h:1.5},"",""], +[{y:-0.875,w:1.5},"","",{x:14.5},"",{w:1.5},""], +[{y:-0.375,x:3.5},"",{x:10.5},""], +[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""], +[{y:-0.875,x:5.5},"",{x:6.5},""], +[{y:-0.875,w:1.5},"","",{x:14.5},"",{w:1.5},""], +[{y:-0.625,x:6.5,h:1.5},"",{x:4.5,h:1.5},""], +[{y:-0.75,x:3.5},"",{x:10.5},""], +[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""], +[{y:-0.875,x:5.5},"",{x:6.5},""], +[{y:-0.875,w:1.5},"","",{x:14.5},"",{c:"#2277ff",w:1.5},"RShift"], +[{y:-0.375,x:3.5,c:"#cccccc"},"",{x:10.5},""], +[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""], +[{y:-0.75,x:0.5},"","",{x:14.5},"",""], +[{r:30,rx:6.5,ry:4.25,y:-1,x:1},"",""], +[{h:2},"",{h:2},"",""], +[{x:2},""], +[{r:-30,rx:13,y:-1,x:-3},"",""], +[{x:-3},"",{h:2},"",{h:2},""], +[{x:-3},""] + diff --git a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-symbol.png b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-symbol.png new file mode 100644 index 000000000..e4de64a96 Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-symbol.png differ diff --git a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt new file mode 100644 index 000000000..e199f5c59 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt @@ -0,0 +1,27 @@ +[{x:3.5,c:"#99de2a"},"F3",{x:10.5},"F8"], +[{y:-0.875,x:2.5},"F2",{x:1},"F4",{x:8.5},"F7",{x:1},"F9"], +[{y:-0.875,x:5.5},"F5",{c:"#ff4444"},"Esc",{x:4.5,c:"#bbddbb"},"_\n\n\n\n\n\n-",{c:"#99de2a"},"F6"], +[{y:-0.875,c:"#2277ff",w:1.5},"Special\n\n\n\n\n\nShift",{c:"#99de2a"},"F1",{x:14.5},"F10",{c:"#2277ff",w:1.5},"\n\nSpecial\n\n\n\n\nShift"], +[{y:-0.375,x:3.5,c:"#bbddbb"},"{",{x:10.5,c:"#89b087"},"8"], +[{y:-0.875,x:2.5,c:"#bbddbb"},"@",{x:1},"}",{x:8.5,c:"#89b087"},"7",{x:1},"9"], +[{y:-0.875,x:5.5,c:"#bbddbb"},"&",{h:1.5},"<",{x:4.5,h:1.5},">","|"], +[{y:-0.875,c:"#2277ff",w:1.5},"Media\n\n\n\n\n\nShift",{c:"#bbddbb"},"!",{x:14.5,c:"#89b087"},"/",{c:"#2277ff",w:1.5},"\n\nMedia\n\n\n\n\nShift"], +[{y:-0.375,x:3.5,c:"#bbddbb"},"(",{x:10.5,c:"#89b087"},"5"], +[{y:-0.875,x:2.5,c:"#bbddbb"},"$",{x:1},")",{x:8.5,c:"#89b087"},"4",{x:1},"6"], +[{y:-0.875,x:5.5,c:"#bbddbb"},"`",{x:6.5},"/"], +[{y:-0.875,c:"#000000",t:"#ff0000",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#bbddbb",t:"#000000"},"#",{x:14.5,c:"#89b087"},"*",{c:"#000000",t:"#ff0000",w:1.5},"\n\nSymbols\n\n\n\n\nShift"], +[{y:-0.625,x:6.5,c:"#54d6de",t:"#000000",fa:[0,0,0,1],h:1.5},"Tab >\n\n\nTab",{x:4.5,h:1.5},"< Tab\n\n\nShift Tab"], +[{y:-0.75,x:3.5,c:"#bbddbb"},"[",{x:10.5,c:"#89b087"},"2"], +[{y:-0.875,x:2.5,c:"#bbddbb"},"^",{x:1},"]",{x:8.5,c:"#89b087"},"1",{x:1},"3"], +[{y:-0.875,x:5.5,c:"#bbddbb"},"~",{x:6.5},"\\"], +[{y:-0.875,c:"#2277ff",w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#bbddbb"},"%",{x:14.5,c:"#89b087"},"-",{c:"#2277ff",w:1.5},"\n\nCapitals\n\n\n\n\nShift"], +[{y:-0.375,x:3.5,c:"#77aaff"},"Option\n\n\nLAlt",{x:10.5,c:"#89b087"},".\n\n\nOption"], +[{y:-0.875,x:2.5,c:"#77aaff"},"Hyper",{x:1},"Cmd\n\n\nSuper",{x:8.5,c:"#89b087"},"0\n\n\nCmd",{x:1},"=\n\n\nHyper"], +[{y:-0.75,x:0.5,c:"#77aaff"},"Ctrl\n\n\nLCtrl","Meh",{x:14.5,c:"#89b087"},"+\n\n\nMeh","Enter\n\n\nCtrl"], +[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#54d6de"},"Left","Right"], +[{h:2},"Space",{h:2},"Enter","Up"], +[{x:2},"Down"], +[{r:-30,rx:13,y:-1,x:-3},"Home","End"], +[{x:-3},"Page\n\n\n\n\n\nUp",{h:2},"< Del\n\n\nBackspace",{h:2},"Del >\n\n\nDelete"], +[{x:-3},"Page\n\n\n\n\n\nDown"] + diff --git a/keyboards/ergodox_ez/keymaps/ordinary/readme.md b/keyboards/ergodox_ez/keymaps/ordinary/readme.md new file mode 100644 index 000000000..6465cd79e --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/ordinary/readme.md @@ -0,0 +1,103 @@ +# The Ordinary Layout, a familiar and powerful layout # + +The Ordinary Layout is intended to be unremarkably mundane and remarkably useful. This layout maintains most key positions from common QWERTY keyboards, and it features enhanced Symbol and Media layers compared to the default Ergodox EZ layout. + +The Ordinary Layout is supposed to look mostly like a normal keyboard, except in the ways that the Ergodox key arrangement is unique. The thumbs are responsible for space, enter, plus both forward and backward delete; with only a couple exceptions, all other keys are in the same place they are found on traditional keyboards. + +Nicholas Keene +ordinarylayout@nicholaskeene.com +no rights reserved, use for any purposes, credit me if you are a nice person + +## The Base Layout ## + +* The light blue keys are modifiers: traditional Control, Option, and Command keys, plus Hyper and Meh +* The dark blue keys are Shift keys: Capitals Shift (traditional shift), Symbol Shift, and Media Shift; plus a Shift Lock key +* Several dark blue keys double for entry of characters which would typically be in those locations +* The turquoise keys are text navigation and manipulation +* The red keys is Escape and it is always found in that location no matter what + +![Ordinary base layout](ordinary-base.png) + +This layout puts the modifier keys along the bottom of the keyboard where they are on most keyboards. They are in the regular order, with the addition of Hyper and Meh keys. The modifier keys are all in the same place on all layers, although some layers also assign symbols on those buttons. On the outside edges are the Shift keys. The traditional shift key is called Capitals Shift and it is in the normal location. Above that are Symbols Shift and Media Shift. Each Shift key momentarily switches the layout to that layer, and if you use the Shift Lock button you can lock the layout to that layer. + +Touch typists will also find tilde, tab, equals/plus, slash/pipe, and quote/double-quote sharing space on those Shift keys where they would probably be on a common keyboard. Other than the turquoise keys the only buttons which move to new locations are the Brackets and Dash and Escape. Most touch typists dont touch-type brackets or dash anyway so only Escape really requires retraining of muscle memory, and see below for the Special Escape Sequence. + +The four big turquoise keys are arranged differently than in the default Ergodox EZ layout. The Ordinary Layout here copies the design of the old Fingerworks TouchStream keyboard, but also reflects the natural presumptions of the author -- me! I type the space character with my right hand, and to me it makes sense for the two delete keys to be next to one another. + +The Forward Tab and Backward Tab keys are in their locations mostly because I ended up with two extra buttons and needed something to do with them. My muscle memory from using the Truly Ergonomic Keyboard makes me look for the Tab key with my right index finger, so it is handy to have this redundant Tab, and the idea with the Backward Tab key is that it becomes easy to navigate text fields in forms, or to indent/unindent code. + +## The Symbols Layer ## + +* The light green keys are the eponymous symbols +* The bright green keys are F-Keys +* The dark green keys constitute a number pad +* The turquoise keys are the *reverse* of the turquoise keys on the base layer + +![Ordinary symbol layout](ordinary-symbol.png) + +The Ergodox EZ ships with the "Coder Layer" which I like to call the Symbols layer. There are some significant improvements in The Ordinary Layout over the default layout. + +The symbol keys are mostly the same as on the default layout, which did a good job in this regard, but with a few enhancements: + +* Angle brackets on this layer mean that curly, square, and angle brackets are all available on different layers of the same two buttons. Also, they mean that all kinds of brackets, including parentheses, are available on both the Base and Symbols layers. +* The slash, backslash, and pipe characters are grouped together as a memory aid. +* The & and | symbols are juxtaposed as a memory aid + +The number pad area here, in green, includes all four arithmetic operations in the same order found on most number pads and features an Enter key. The keycodes emitted here are normal numeric keycodes, not the number-pad specific keycodes emitted by most number pads, because this layout does not use a Num Lock key to switch the buttons between numeric keycodes and navigational keycodes. See the explanation in The Media Layout section about navigation using these same buttons. + +Finally, consider the turquoise text-nav keys. Here in the Symbols layer, these are *reversed* from the base layer, with the keys either mirrored or shifted. This is powerful! Often I find myself using the mouse with my right hand, and the left hand needs to press Enter. Instead of reaching the left hand over to the right side of the keyboard, now I simply tap Symbols to reverse the turquoise keys, and Enter is right where it should be. + +## The Media Layer ## + +* The dark orange keys on the left move the mouse cursor +* The dark orange keys on the right move the text cursor +* The light orange keys are for scrolling and paging +* The bright green keys are more F-keys +* The dark yellow keys signal Web and Audio applications +* The light yellow keys signal the operating system +* The dark gray keys do nothing in case you bump them by accident + +![Ordinary media layout](ordinary-media.png) + +This layer was inspired by the Media layer on the Ergodox EZ but takes it farther. The Fingerworks TouchStream keyboard had a very useful feature for controlling the text cursor easily and this layer does something similar. The left hand can move the mouse, the right hand moves the text cursor, in all four directions, in small or large increments. This greatly enhances navigation in text documents. + +Moreover, the orange keys on the right overlay the numberpad from the Symbols Layer, such that in the Media Layer the same keys can be used as if they were a number pad in navigational mode (Num Lock off). For instance, in traditional number pads the '3' key became 'Page Down', and so it is here. This means a user can do text navigation without moving either hand. + +Alas, the yellow keys have at best spotty success with common software. Good luck with those but don't expect too much. + +## Switching Between Layers ## + +In addition to Symbols and Media there is the Capitals layer which is exactly the same as pressing the shift key. Each layer is accessed by a shift key on each edge of the keyboard and corresponds to one of the three LEDs on the keyboard: Capitals (red), Symbols (green), Media (blue). The color of a layer illuminates when the layer is active. + +Shift buttons work in the expected way: press them and all of the keys switch to that layer; release them and the keys switch back to the base layer. If you press both of a pair of shift keys, the layer will lock on until you press both shift keys again. For instance, the widely and rightly loathed Caps Lock is engaged by pressing both Capitals Shift buttons. All the Shift keys work this way. + +Multiple layers can be turned on at once. The Capitals layer will affect characters on other layers to capitalize. Other layers, however, don't 'mix': Symbols blankets the base layout; Media blankets Symbols. + +## Special Sequences ## + +![Ordinary special layout](ordinary-special.png) + +### Escape ### + +The One True Location for the Escape key is segregated way up on the top left of the keyboard. The Ergodox does not have a physical button in such a location and the nearest one is home to the tilde (er, grave) which is commonly found there. In the Ordinary layout the Escape key is found on all layers in the prominent location in the corner next to the 5, whnich is easy to remember, and yet it isn't natural for those of us with muscle memory flicking our wrists up and to the left looking for Escape. + +The Ordinary layout offers as a consolation prize a Special sequence for Escape: Special Shift + 1. This is natural so you can tap the top left button, then the button next to it and get Escape. This gesture works in all layers. + +### Backspace ### + +At the top right corner of the Ergodox EZ you can a gesture similar to the special Escape sequence, using the 0 key, to produce a Backspace. Users of this keyboard and this layout are well advised to learn to use their thumbs for deleting text, but sometimes you are doing other computery things and just want to flick your digits up to the right and press backspace a bunch times. + +### RShift ### + +The Ordinary Layout locks layers by pressing both of a pair of shift keys. This interferes with the QMK firmware magic sequence, which is LShift+RShift. To work around this, both of the Capitals Shift keys produce a *Left Shift* keystroke. If for some reason a person needs *Right Shift* they can find it by pressing a Special Shift key, then the Capitals Shift key on the right side of the keyboard. + +**** + +The Ordinary Layout for the Ergodox EZ keyboard, v4 + +Modifications from default by Nicholas Keene ergodoxez@nicholaskeene.com + +No rights reserved. This software is in the public domain. Credit me if you are friendly but if you're a jerk don't bother. + +Details: readme.md + https://github.com/nrrkeene/qmk_firmware/tree/master/keyboard/ergodox_ez/keymaps/ordinary diff --git a/keyboards/ergodox_ez/keymaps/osx_de/compiled.hex b/keyboards/ergodox_ez/keymaps/osx_de/compiled.hex new file mode 100644 index 000000000..2233a8cbf --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/osx_de/compiled.hex @@ -0,0 +1,1216 @@ +:100000000C9412040C9456040C9456040C9456044C +:100010000C9456040C9456040C9456040C945604F8 +:100020000C9456040C9456040C9485100C9457119F +:100030000C9456040C9456040C9456040C945604D8 +:100040000C9456040C9411240C9456040C945604ED +:100050000C9456040C94F31E0C9456040C94560401 +:100060000C9456040C9456040C9456040C945604A8 +:100070000C9456040C9456040C9456040C94560498 +:100080000C9456040C9456040C9456040C94560488 +:100090000C9456040C9456040C9456040C94560478 +:1000A0000C9456040C9456040C9456048007EB06EA +:1000B000970739074A07680703072D0733072707FC +:1000C00062073E0744071B072107D106C411E6114A +:1000D000D412E611D4122B124E12D412A312B6125D +:1000E00085158515B415B415EA150A163B173B1787 +:1000F00015163B17C516C5162C173B173B1735179A +:10010000D216D216D216D216D216D216D216D216AF +:10011000D216D216D216D216D216D216D216D2169F +:10012000E416F116F816FF16091702E002E2012E96 +:10013000022E02E10002E002E102E20001E001E140 +:1001400001E20002E001E30119021902E30002E00A +:100150000001E00002E002E3016402640002E00248 +:10016000E30001E001E30001E10137023702E101B0 +:1001700038023801E10125022502E10002E002E136 +:10018000013102310002E002E10001E001E1000181 +:10019000E10137023702E10138023801E1010702CB +:1001A0000702E10001350235012002200002E302CE +:1001B000E10001E301E10001E10136023602E10163 +:1001C00038023801E10126022602E10001E101378F +:1001D000023702E10138023801E10126022602E17C +:1001E0000001E10136023602E10138023801E10185 +:1001F00025022502E10001E10137023702E1013861 +:10020000023801E20125022502E20001E101370284 +:100210003702E10138023801E10130023002E10029 +:1002200002E002E2013002300002E002E20001E0FE +:1002300001E20002E001E30106020602E30002E03F +:100240000001E00029002B00E200E1003541000040 +:100250001E00140004001D6105304D431F001A00EC +:1002600016001B0006304C002000080007000600A6 +:1002700052002A00210015000900190051004A000F +:10028000220017000A000500000002300430E300DD +:100290000000E200000002530430E7000000E60026 +:1002A0000000045323001C000B00110000002E6FFF +:1002B000240018000D00100050004B0025000C0019 +:1002C0000E0036004F002C00260012000F003700F1 +:1002D000E10828002700130033003861E1044E00D4 +:1002E0002D002F003464E5003041000001000100C2 +:1002F00001000100010000003A003500310001005A +:10030000010001003B0035022102350001004C00D4 +:100310003C001E0224062202010001003D002D02C5 +:1003200024022404010001003E00010037001104F2 +:1003300000000100010001000000010000000100B8 +:100340000F30010000000100000068003F0024069B +:100350002402240400004500400022042502110468 +:1003600031026900410023042602640050000100AC +:1003700042003500250452005100010043003502BF +:10038000260438004F006A0044001E02310021029A +:100390000100000001000100010001000100000057 +:1003A0000100010001000100010001000100F40052 +:1003B000F200FB00010001000100F000F100FA0072 +:1003C000010001000100F500F300FC000100010044 +:1003D0000100F900FA00F600000001000100010030 +:1003E0000000010000000100A80001000000010061 +:1003F0000000010001000100A900AA0000000100A6 +:1004000001000100010001000100010001000100E4 +:100410000100AC000100B600010001000100AB00CA +:1004200050000100010001000100520051000100D4 +:10043000AE000100010001004F00000001000100BA +:1004400001000100010000000100010001000100A5 +:100450000100010001000100010001000100010094 +:100460000100010001000100010001000100010084 +:100470000100010001000100010001000100010074 +:100480000000010001000100000001000000010067 +:1004900007300100000001000000010008300E30AC +:1004A0000B300100000001000C300A300D3001005B +:1004B00001000100010009300100010001000100FC +:1004C0000100010001000100010001000100010024 +:1004D0000100010001000100010001000100010014 +:1004E0000100000001000100010001000100000006 +:1004F00001000100010001000100010001000100F4 +:1005000050000100010001000100520051000100F3 +:1005100001000100010001004F0001000100010085 +:1005200001000100010001000000010001000100C4 +:1005300000000100000001000100010000000100B6 +:10054000000001003F0052005100230200000100A2 +:100550004000240021001E0027000100410025006A +:1005600022001F0037000100420026002300200067 +:10057000360001004300300230002402270201004F +:1005800044004500380001000100000001000100A6 +:10059000E1000100E0000000010001000100010095 +:1005A00001003D0001000100010001000100E00028 +:1005B000010001000100010001002C000100010008 +:1005C0000100010001003C000100010001000100E8 +:1005D00000003A00010001000000010000003B00A3 +:1005E0000F300100000001000000010001000100C7 +:1005F00001000100000001000100010001000100F4 +:1006000001000100010001000100010001000100E2 +:1006100001000100010001000100010001000100D2 +:1006200001000100010001000100010001000100C2 +:100630000100000016034500720067006F004400CF +:100640006F007800200045005A00000016034500A6 +:10065000720067006F0044006F00780020004500C2 +:100660005A0000000403090409026D00040100A0FF +:10067000FA09040000010301010009211101000130 +:100680002240000705810308000A09040100010354 +:10069000010200092111010001224D00070582031A +:1006A00008000A09040200010300000009211101E9 +:1006B00000012236000705830308000A090403002D +:1006C0000103000000092111010001223900070582 +:1006D00084031000011201100100000008EDFE0764 +:1006E0001301000102000105010906A10105071916 +:1006F000E029E71500250195087501810205081913 +:100700000129059505750191029501750391010572 +:10071000071900297715002501957875018102C018 +:1007200005010980A101850216010026B7001A0102 +:10073000002AB700751095018100C0050C0901A1C0 +:10074000018503160100269C021A01002A9C0275ED +:100750001095018100C005010902A1010901A10054 +:100760000509190129051500250195057501810265 +:100770009501750381010501093009311581257F36 +:1007800095027508810609381581257F9501750840 +:100790008106050C0A38021581257F9501750881AF +:1007A00006C0C005010906A101050719E029E715E2 +:1007B00000250195087501810295017508810105E3 +:1007C0000819012905950575019102950175039197 +:1007D000010507190029FF150026FF009506750879 +:1007E0008100C000000000000000000000000102C5 +:1007F00004060A0F17202C3A4A5D71879DB3C7DAA9 +:10080000E9F5FCFFFCF5E9DAC7B39D87715D4A3A6B +:100810002C20170F0A06040201000000000000004F +:100820000000000011241FBECFEFDAE0DEBFCDBF15 +:1008300004B603FE24C08091FF0190910002A091B4 +:100840000102B09102028730904BA740B04BB9F43F +:100850001092FF0110920002109201021092020207 +:1008600014BE84B7877F84BF88E10FB6F894809365 +:100870006000109260000FBEE0E0FFE3099511E018 +:10088000A0E0B1E0E0EBFBE402C005900D92A433E0 +:10089000B107D9F711E0A4E3B1E001C01D92AF3F69 +:1008A000B107E1F70E94CD0D0C94D6250C94000001 +:1008B0001092B9008AE08093B800089594EA90936A +:1008C000BC009091BC0097FFFCCF9091B900987F3D +:1008D000983021F0903111F081E008958093BB00B1 +:1008E00084E88093BC008091BC0087FFFCCF80919E +:1008F000B900887F883111F0803471F780E0089565 +:1009000084E98093BC008091BC0084FDFCCF0895F5 +:100910008093BB0084E88093BC008091BC0087FF7B +:10092000FCCF9091B900987F81E0983209F480E083 +:10093000089584E88093BC008091BC0087FFFCCFC1 +:100940008091BB00089580B38C7080BB81B3836FAE +:1009500081BB089580910101811115C080E40E943E +:100960005E048093010181110CC082E10E94880421 +:1009700080930101811105C08FEF0E94880480934C +:1009800001010E94800484B1807F84B985B1807F99 +:1009900085B98AB1837F8AB98BB1837F8BB93E9841 +:1009A000469808950E947406809301010E94AA044B +:1009B0000E94A304A5E3B1E0E3E4F1E08EE08E0F32 +:1009C00011921D928E13FCCF0C945E060E94740649 +:1009D000809301010E94AA040E94A304A5E3B1E050 +:1009E000E3E4F1E08EE08E0F11921D928E13FCCFA6 +:1009F0000895BF92CF92DF92EF92FF920F931F93D1 +:100A0000CF93DF9380910101882379F080913401A5 +:100A10008F5F80933401811108C00E947406809317 +:100A20000101811102C00E94060605E311E0C0E049 +:100A3000D0E0DD24D39482E0C82EEE24E394F12CA0 +:100A4000C730D10500F580910101811164C080E4B7 +:100A50000E945E0480930101811112C082E10E9414 +:100A600088048093010181110BC0C7010C2E01C0C5 +:100A7000880F0A94EAF780950E9488048093010108 +:100A80000E94800448C0CA30A1F028F4C83059F050 +:100A9000C93061F005C0CC3089F070F0CD3089F0FC +:100AA000209A289810C0219A29980DC0229A2A9835 +:100AB0000AC0239A2B9807C0529A01C0539A5B9898 +:100AC00002C03E9A469890EA9A95F1F79FB17999BB +:100AD00002C082E001C080E091709D25982B7C9936 +:100AE00002C084E001C080E0892B7D9902C038E01B +:100AF00001C030E0832B7E9902C020E101C020E0DC +:100B0000822B9FB19095991F9927991F9295990FC4 +:100B1000907E892B0FC080910101811149C080E432 +:100B20000E945E0480930101882379F1B12C0E9418 +:100B300080048B2DF8019081981719F08083C09262 +:100B400000010E94AA0421960F5F1F4FCE30D105ED +:100B500009F076CF80910001882361F18150809364 +:100B60000001882339F08FE99FE00197F1F700C079 +:100B7000000020C0A3E4B1E0E5E3F1E0CF01825F33 +:100B800091919D938E13FCCF15C083E10E94880440 +:100B9000809301018111CACF81E40E945E04809399 +:100BA00001018111C3CF0E949904B82EB094BFCF28 +:100BB00080E0C0CF0E94040681E0DF91CF911F91B9 +:100BC0000F91FF90EF90DF90CF90BF900895E82FA6 +:100BD000F0E0ED5BFE4F8081089508950F931F9321 +:100BE000CF93DF93C3E4D1E010E00C2F025F899133 +:100BF00090E00E941A1E180F0C13F9CF812FDF917D +:100C0000CF911F910F9108950C94C70756985E9845 +:100C100025982D9826982E9827982F988FEF90E05A +:100C2000909389008093880090938B0080938A0032 +:100C300090938D0080938C00259A2D9A2FEF80E75A +:100C400092E0215080409040E1F700C00000269AD9 +:100C50002E9A2FEF80E792E0215080409040E1F7FC +:100C600000C00000279A2F9A2FEF80E792E02150D2 +:100C700080409040E1F700C0000025982D982FEFAC +:100C800080E792E0215080409040E1F700C00000F2 +:100C900026982E982FEF80E792E0215080409040D8 +:100CA000E1F700C0000027982F9856985E98259885 +:100CB0002D9826982E9827982F98089589EA809342 +:100CC000800089E08093810024982C983F988AB115 +:100CD0008F748AB96E98479A8BB1806B8BB9769A6C +:100CE0000E9406060C94C60780E280930101809161 +:100CF000510181110EC00E94580481E0809351017E +:100D00002FEF83ED90E3215080409040E1F700C049 +:100D1000000080E40E945E048093010181112EC0D6 +:100D20000E94880480930101811128C00E948804D8 +:100D300080930101811122C08FE30E948804809377 +:100D4000010181111BC00E94800480E40E945E04A6 +:100D500080930101811112C08CE00E94880480936D +:100D6000010181110BC00E9488048093010181114F +:100D700005C08FE30E948804809301010E948004D3 +:100D8000809101010895462F50E04031510508F04F +:100D9000F1C0DC01FA01EA5AFF4F12968C910C94D3 +:100DA0008625882309F4E6C08091C0019091C10195 +:100DB000A091C201B091C30120E2822780729927DD +:100DC000AA27BB278093C0019093C101A093C201C1 +:100DD000B093C301CFC0882349F00E94BD1E9093F9 +:100DE00053018093520181E492E008958091520171 +:100DF000909153010E94C91E8739910508F0AEC039 +:100E000083E392E00895882349F00E94BD1E9093E9 +:100E10005301809352018EE292E008958091520135 +:100E2000909153010E94C91E8739910508F099C01D +:100E300080E292E00895882309F49CC08BE092E060 +:100E40000895882309F496C086EF91E008958823D9 +:100E500009F490C081EE91E00895882309F48AC0D6 +:100E60008CEC91E00895882309F484C087EB91E02D +:100E70000895811179C08DEA91E00895882309F4DD +:100E800079C084EA91E00895882309F473C08FE85B +:100E900091E00895882349F00E94BD1E909353016C +:100EA000809352018AE891E00895809152019091D7 +:100EB00053010E94C91E8739910508F058C08CE77C +:100EC00091E00895882309F455C087E691E00895DC +:100ED000882349F00E94BD1E9093530180935201D4 +:100EE00082E691E0089580915201909153010E9411 +:100EF000C91E8739910508F040C084E591E0089546 +:100F0000882349F00E94BD1E9093530180935201A3 +:100F100081E591E0089580915201909153010E94E2 +:100F2000C91E8739910560F583E491E0089588230F +:100F300049F00E94BD1E90935301809352018CE3AF +:100F400091E0089580915201909153010E94C91E31 +:100F500087399105C0F48AE291E008958EE392E02A +:100F6000089589E292E0089582EB91E0089585E882 +:100F700091E0089580E090E008958DE591E0089576 +:100F80008EE491E0089585E391E0089508956091DD +:100F9000C0017091C1018091C2019091C3010E9472 +:100FA000261E56985E9825982D9826982E98279854 +:100FB0002F988330C1F028F4813041F0823049F01D +:100FC0000895843049F0853051F00895259A2D9A7E +:100FD0000895269A2E9A0895259A2D9A04C0259A46 +:100FE0002D9A269A2E9A279A2F9A089581E008958D +:100FF00081E008950C94F8070895282F882339F08C +:1010000090E02A3010F44D9608950697089587E2EF +:1010100090E00895AF92BF92DF92EF92FF920F930C +:101020001F93CF93DF938C01FC01C081D181CE014E +:101030000E949F1CBE010E947A0BEC01B8010E9425 +:10104000FA07882309F4C9C1F8018281882309F4C9 +:10105000BEC08091600181111FC0C431F0E7DF077D +:1010600009F0B5C10E94FC0781E0809360010E94F5 +:10107000BD1E90935F0180935E0110925701109204 +:1010800059011092580110925B0110925A0110926E +:101090005D0110925C01A1C180915E0190915F01A0 +:1010A0000E94C91E883C910570F480915701E82F79 +:1010B000F0E0EE0FFF1FE85AFE4FD183C0838F5F31 +:1010C000809357018AC1C13020E8D20708F451C08B +:1010D000F8018281882309F47EC05E01E894B7F8A4 +:1010E00080915601813079F050F08230C1F482EE67 +:1010F0000E94291487E50E94291487E50EC082EE1C +:101100000E9429140CC080EE0E94291481EE0E94D6 +:10111000291488E10E94291488E10E94F1148CE0CE +:10112000E82EF12CC5010E2C02C0969587950A94E5 +:10113000E2F78F700E94FD07D82E0E9429148D2D92 +:101140000E94F114F4E0EF1AF1082CEFE2162FEFF1 +:10115000F20641F780915601813029F010F082307B +:1011600041F482EE04C080EE0E94F11481EE0E94F0 +:10117000F114C43180E7D80768F4C23090E7D9078A +:1011800008F046C0C115E0E7DE0771F0C130D04776 +:10119000A1F10CC1C33320E7D20709F4D8C0C4338E +:1011A000D04709F4EBC002C1F8018281882309F419 +:1011B00002C10E94A617FFEF24E38CE0F15020400B +:1011C0008040E1F700C000000E94181F06C1C13036 +:1011D00080E8D80770F2C43120E7D20708F0B3C026 +:1011E000C23080E7D807A0F4C11590E7D90709F409 +:1011F000E2C0C130D04709F0D9C0F801828188230C +:1012000009F4D9C08091DD0181608093DD01E5C0E2 +:10121000F8018281882309F4CEC00E94721F8111D7 +:1012200002C00E94581F0E94851F90E09093F10118 +:101230008093F001C230F0E7DF0721F48091F001E4 +:1012400081607AC0C33020E7D20721F48091F00199 +:10125000826072C0C43080E7D80721F48091F00129 +:1012600084606AC0C53090E7D90719F48091F00115 +:1012700027C0C630E0E7DE0721F48091F0018061ED +:101280005BC0C730F0E7DF0721F48091F001806296 +:1012900053C0C83020E7D20721F48091F001806468 +:1012A0004BC0C93080E7D80721F48091F0018068F5 +:1012B00043C0CA3090E7D90729F48091F0018460D7 +:1012C00088603AC0CB30E0E7DE0721F48091F0017E +:1012D0008E7F32C0CC30F0E7DF0721F48091F0013F +:1012E0008D7F2AC0CD3020E7D20721F48091F00114 +:1012F0008B7F22C0CE3080E7D80719F48091F001AF +:101300001AC08091F001CF3090E7D90711F48F7E99 +:1013100013C0C031E0E7DE0711F48F7D0DC0C1318D +:10132000F0E7DF0711F48F7B07C0C231D04711F41B +:101330008F7702C08B7F877F8093F0018091F001CF +:101340000E94891F4AC0C333F0E7DF07A1F4F80108 +:101350008281882321F01092540182E016C080918E +:101360005401811106C086E20E94291486E20E947F +:10137000F11482E018C0C433D047C1F4F80182816F +:10138000882331F01092550180E20E94401525C05B +:1013900080915501811106C087E20E94291487E2DD +:1013A0000E94F11480E20E94471517C081E08093EB +:1013B000540180935501C801DF91CF911F910F9186 +:1013C000FF90EF90DF90BF90AF900C94F607C13084 +:1013D000F0E8DF0708F081CECCCE80E0DF91CF913E +:1013E0001F910F91FF90EF90DF90BF90AF90089505 +:1013F00026E0729FF001112444E5849FE00DF11D69 +:101400001124E60FF11DEE0FFF1FEC5BFD4F8591E0 +:1014100094910E948C0B811560E49607B0F58115BC +:1014200070E3970708F0DEC0803E9105D8F4803C59 +:10143000910508F06CC0883A910578F4853A9105D9 +:1014400008F06BC08130910509F452C108F40FC156 +:101450008430910508F04CC10AC18B3B910508F41A +:1014600067C005C18F3F910509F048F4803F9105A1 +:1014700008F0ADC0883E910508F43AC1F8C0811566 +:1014800020E2920708F0A5C00895811543E594076E +:1014900090F4811562E5960708F0C8C0811571E5E2 +:1014A000970708F0BEC0811520E5920708F09DC09F +:1014B0009F70906A0895811545E59407D8F48115C9 +:1014C00064E5960708F0C8C0482F4695469570E237 +:1014D000479FA00111248370992721E030E0B901D2 +:1014E00002C0660F771F8A95E2F7CB01842B952BFC +:1014F0009A680895811576E5970708F4B2C09C01B3 +:1015000030562115304108F0B2C09F70AEC0FC01CA +:10151000EE0FFF1FEC53FF4F62C0853A910509F4AF +:10152000A9C0863A910509F0A8C082E890E4089520 +:10153000883A910509F4A4C0893A910509F4A3C039 +:101540008A3A910509F4A2C08B3A910509F4A1C029 +:101550008C3A910509F4A0C08D3A910509F49FC019 +:10156000803B910509F49EC08E3A910509F49DC017 +:101570008F3A910509F49CC0813B910509F49BC009 +:10158000823B910509F49AC0833B910509F499C007 +:10159000843B910509F498C0853B910509F497C0F7 +:1015A000863B910509F496C0873B910509F495C0E7 +:1015B000883B910509F494C0893B910509F493C0D7 +:1015C0008A3B910509F492C080E094E40895906507 +:1015D0000895FC01FF70EE0FFF1FEC5BFD4F85913E +:1015E000949108959927906C0895482F437021E0B5 +:1015F00030E002C0220F331F4A95E2F73C68AC018D +:1016000064E0569547956A95E1F74370342B8F70E7 +:101610008695869560E2869FC0011124822B932BCC +:101620000895982F8827816F906A0895482F4695CE +:10163000469570E2479FA00111248370992721E00D +:1016400030E0B90102C0660F771F8A95E2F7CB013F +:10165000842B952B9C680895982F8827846F906A17 +:1016600008958F719927982F88279062089580E0B8 +:1016700090E0089581E890E4089583E890E4089567 +:1016800082EE94E4089589EE94E408958AEE94E459 +:10169000089585EB94E4089586EB94E4089587EB30 +:1016A00094E408958CEC94E408958DEC94E408950A +:1016B00083E895E408958AE895E4089582E995E43D +:1016C000089584E995E4089581E296E4089583E21B +:1016D00096E4089584E296E4089585E296E40895F8 +:1016E00086E296E4089587E296E408958AE296E415 +:1016F0000895089596E0799FF001112494E5899F5B +:10170000E00DF11D1124E60FF11DEE0FFF1FEC5B44 +:10171000FD4F8591949108958238910549F1B0F477 +:101720008133910509F458C048F48932910509F4D0 +:101730004EC08A32910509F454C00895853391054D +:1017400009F440C08933910599F00895833E9105CD +:1017500029F138F4803E910591F0823E9105A1F087 +:101760000895863E9105F9F0873E910531F108957F +:101770002091F00120FD3AC021FD38C008958091EC +:10178000F00180FD35C032C08091F00182FF32C08F +:101790008091F00184FD30C083EE39C08091F0016A +:1017A00082FD28C0F5CF8091F00183FF27C0809192 +:1017B000F00184FD21C087EE2AC08091F00183FDF5 +:1017C0001DC0F5CF8091F00185FD1AC01BC080912E +:1017D000F00185FD17C014C08091F00186FD14C092 +:1017E00015C08091F00186FD11C00EC080EE0FC0C3 +:1017F00089E30DC082EE0BC080E009C086EE07C011 +:1018000089E205C085E303C08AE201C081E390E07C +:10181000089508950C94090C809171010895CF9357 +:10182000DF9300D01F92CDB7DEB79C018091F60107 +:10183000843019F593E099833B832A839093E900E0 +:101840008FEF9091E800815095FD06C095ED9A9537 +:10185000F1F700008111F5CF8091E80085FF0DC000 +:1018600040E050E063E070E0CE0101960E94750E0A +:101870008091E8008E778093E8000F900F900F9092 +:10188000DF91CF910895CF93DF9300D01F92CDB712 +:10189000DEB72091F601243021F522E029839B83D5 +:1018A0008A8383E08093E9008FEF9091E800815074 +:1018B00095FD06C095ED9A95F1F700008111F5CFE1 +:1018C0008091E80085FF0DC040E050E063E070E0EB +:1018D000CE0101960E94750E8091E8008E7780936C +:1018E000E8000F900F900F90DF91CF910895209115 +:1018F000F6012430F1F422E02093E9002FEF30913B +:10190000E800215035FD06C035ED3A95F1F70000AD +:101910002111F5CF2091E80025FF0BC040E050E0F9 +:1019200065E070E00E94750E8091E8008E778093EC +:10193000E8000895CF93DF93EC019091F601943085 +:1019400009F046C080910C018823D9F080910D01E7 +:101950008823B9F09093E9008FEF9091E8008150CF +:1019600095FD06C095E19A95F1F700008111F5CF3C +:101970008091E80085FF2CC040E050E060E170E01D +:1019800017C081E08093E9008FEF9091E8008150CB +:1019900095FD06C095ED9A95F1F700008111F5CF00 +:1019A0008091E80085FF14C040E050E068E070E0FE +:1019B000CE010E94750E8091E8008E778093E8003A +:1019C00080E1FE01A1E6B1E001900D928A95E1F778 +:1019D000DF91CF9108958091F501811109C00E9496 +:1019E0000A100E9467108091E20084608093E200F8 +:1019F00008951092F501089508950C94FE230E9415 +:101A0000AE1E0E9404240E940D130C940A0C42E0A6 +:101A100061EC81E00E94840F42E061EC82E00E9470 +:101A2000840F42E061EC83E00E94840F42E161ECAC +:101A300084E00C94840F8091F801833009F455C040 +:101A400030F4813071F0823009F48EC008958A300C +:101A500009F47AC08B3009F460C0893009F09CC069 +:101A600020C08091F701813A09F096C08091E8008A +:101A7000877F8093E8008091FB019091FC01892B86 +:101A800021F460E181E691E003C060E080E090E055 +:101A900070E00E94C00E8091E8008B778093E80090 +:101AA00008958091F701813209F076C08091FB01A1 +:101AB0009091FC01009719F0039709F06DC0809197 +:101AC000E800877F8093E8008091E80082FD05C0F0 +:101AD0008091F6018111F8CF5FC08091F100809371 +:101AE00071018091E8008B7753C08091F701813AB2 +:101AF00009F052C08091FB019091FC01892B09F003 +:101B00004BC08091E800877F8093E8008091E800D7 +:101B100080FFFCCF80910C0136C08091F7018132AB +:101B2000D9F58091FB019091FC01892BA9F5809159 +:101B3000E800877F8093E8000E94B90F8091F90147 +:101B400080930C010C94A6178091F701813221F546 +:101B50008091E800877F8093E8000E94B90F809110 +:101B6000FA018093720108958091F701813AA1F4FE +:101B70008091E800877F8093E8008091E80080FFF3 +:101B8000FCCF809172018093F1008091E8008E7704 +:101B90008093E8000C94B90F089584B7877F84BFC1 +:101BA00088E10FB6F89480936000109260000FBE39 +:101BB00080E880936100109261000E945C130E9493 +:101BC0000A100E9467108091E20084608093E20016 +:101BD00078940E94ED120E945E1382E091E00E94D0 +:101BE00008130E94EC238091F601853069F40E946D +:101BF000761E8091F4018823B1F30E94A01E8823F1 +:101C000091F30E945F0EEFCF0E946413ECCF292F57 +:101C1000332723303105C9F064F42130310581F0D8 +:101C20002230310509F043C08DE690E028E636E029 +:101C300042C021323105F1F02232310541F137C085 +:101C400082E190E025ED36E036C09927813091059C +:101C500041F08230910541F0892B49F5E4E6F6E048 +:101C600005C0ECE4F6E002C0E4E3F6E0849190E025 +:101C70009F0121C06430D8F4E62FF0E0EE0FFF1F83 +:101C8000EE5DFE4F2081318189E090E014C0643028 +:101C900070F470E0FB01EE0FFF1FE65EFE4F208147 +:101CA0003181FB01EA5EFE4F808190E004C080E05C +:101CB00090E020E030E0FA0131832083089580E154 +:101CC00089BD82E189BD09B400FEFDCF8091D800B5 +:101CD0008F7D8093D8008091E00082608093E00047 +:101CE0008091E00081FDFCCF0895CF92DF92EF92CA +:101CF000FF920F931F93CF93DF93EC018B016A0147 +:101D00000E94D80F811133C0C114D10439F0F601FB +:101D100080819181081B190BC80FD91FE12CF12C70 +:101D20000115110519F18091E80085FD16C080911B +:101D3000E8008E778093E800C114D10449F0F601E1 +:101D400080819181E80EF91EF182E08285E00FC06A +:101D50000E94D80F882321F30AC089918093F10053 +:101D600001501109FFEFEF1AFF0ADACF80E0DF918F +:101D7000CF911F910F91FF90EF90DF90CF9008953A +:101D80002091FD013091FE012617370748F06115BB +:101D9000710539F42091E8002E772093E80001C006 +:101DA000B90140E061157105A9F12091F6012223E6 +:101DB00009F443C0253009F442C02091E80023FD16 +:101DC00040C02091E80022FD32C02091E80020FFB1 +:101DD000E9CF4091F3002091F20030E0342BFC0178 +:101DE000CF016115710559F02830310540F481911A +:101DF0008093F100615071092F5F3F4FF1CF41E0B7 +:101E00002830310509F040E02091E8002E7720933A +:101E1000E800C8CF4111C9CF0AC08091F6018823DC +:101E200061F0853061F08091E80083FD0AC0809107 +:101E3000E80082FFF2CF80E0089582E0089583E019 +:101E4000089581E008952091FD013091FE0126174B +:101E5000370748F06115710539F42091E8002E77B5 +:101E60002093E80001C0B901FC0120E06115710573 +:101E700091F18091F601882309F440C0853009F47E +:101E80003FC08091E80083FD3DC08091E80082FD65 +:101E90002FC08091E80080FFE9CF2091F30080916E +:101EA000F20090E0922B6115710559F08830910590 +:101EB00040F424912093F10031966150710901960C +:101EC000F2CF21E0089709F020E08091E8008E77BA +:101ED0008093E800CBCF2111CCCF0AC08091F601CE +:101EE000882361F0853061F08091E80083FD0AC0AD +:101EF0008091E80082FFF2CF80E0089582E00895AB +:101F000083E0089581E00895982F973058F59093D5 +:101F1000E900981739F07091EC002091ED00509194 +:101F2000F00003C0242F762F50E021FF19C030911C +:101F3000EB003E7F3093EB003091ED003D7F30931E +:101F4000ED003091EB0031603093EB007093EC00CA +:101F50002093ED005093F0002091EE0027FF07C082 +:101F60009F5FD3CF8F708093E90081E0089580E078 +:101F700008958091F70187FF11C08091E80082FDEC +:101F800005C08091F6018111F8CF11C08091E80061 +:101F90008B770BC08091F601882349F08091E8008F +:101FA00080FFF8CF8091E8008E778093E800089555 +:101FB0002091E4003091E50095E64091EC00842FFB +:101FC000817040FF22C08091E80080FD1CC080919C +:101FD000F601882391F0853091F08091EB0085FD2A +:101FE00010C04091E4005091E5004217530729F3D7 +:101FF0009A01915011F784E0089582E0089583E0FA +:10200000089581E0089580E008954091E80042FF3E +:10201000DECF08950E9478100E948010E0EEF0E07C +:10202000808181608083E8EDF0E080818F7780831C +:1020300019BCA7EDB0E08C918E7F8C9380818F7E50 +:1020400080831092F50108950F931F93CF93DF9330 +:102050000E9478100E948010C8EDD0E088818F77B0 +:10206000888388818068888388818F7D888319BC74 +:102070001092F6011092F2011092F4011092F30105 +:1020800000EE10E0F80180818B7F80838881816081 +:10209000888342E060E080E00E94840FE1EEF0E09F +:1020A00080818E7F8083E2EEF0E08081816080839A +:1020B000808188608083F80180818E7F8083888121 +:1020C00080618883DF91CF911F910F910895E8ED92 +:1020D000F0E080818F7E8083E7EDF0E08081816099 +:1020E000808384E082BF81E08093F5010C9424100A +:1020F000E8EDF0E080818E7F80831092E200089509 +:102100001092DA001092E10008951F920F920FB61C +:102110000F9211242F933F934F935F936F937F936D +:102120008F939F93AF93BF93EF93FF938091E100C1 +:1021300082FF0BC08091E20082FF07C08091E10026 +:102140008B7F8093E1000E94EC128091DA0080FF87 +:102150001FC08091D80080FF1BC08091DA008E7F65 +:102160008093DA008091D90080FF0DC080E189BDA5 +:1021700082E189BD09B400FEFDCF81E08093F601C4 +:102180000E94EB0C05C019BC1092F6010E94F90CDC +:102190008091E10080FF19C08091E20080FF15C0AE +:1021A0008091E2008E7F8093E2008091E200806166 +:1021B0008093E2008091D80080628093D80019BC9F +:1021C00085E08093F6010E94FD0C8091E10084FF80 +:1021D00030C08091E20084FF2CC080E189BD82E1A3 +:1021E00089BD09B400FEFDCF8091D8008F7D80931A +:1021F000D8008091E1008F7E8093E1008091E20021 +:102200008F7E8093E2008091E20081608093E20003 +:102210008091F201882311F084E007C08091E300EF +:1022200087FD02C081E001C083E08093F6010E9437 +:10223000FF0C8091E10083FF29C08091E20083FFC1 +:1022400025C08091E100877F8093E10082E0809348 +:10225000F6011092F2018091E1008E7F8093E100FF +:102260008091E2008E7F8093E2008091E2008061A5 +:102270008093E20042E060E080E00E94840F809161 +:10228000F00088608093F0000E94FC0CFF91EF91B9 +:10229000BF91AF919F918F917F916F915F914F917E +:1022A0003F912F910F900FBE0F901F9018951F9286 +:1022B0000F920FB60F9211242F933F934F935F937A +:1022C0006F937F938F939F93AF93BF93CF93DF933E +:1022D000EF93FF93C091E900CF708091EC00D82F6D +:1022E000D17080FDD0E81092E9008091F000877FE6 +:1022F0008093F00078940E949B111092E9008091E5 +:10230000F00088608093F000CD2BCF70C093E9007F +:10231000FF91EF91DF91CF91BF91AF919F918F91FD +:102320007F916F915F914F913F912F910F900FBED1 +:102330000F901F9018951F93CF93DF93CDB7DEB703 +:10234000AA970FB6F894DEBF0FBECDBFE7EFF1E05E +:1023500088E08E0F9091F10091938E13FBCF0E9435 +:102360001B0D8091E80083FF1FC18091F7019091C0 +:10237000F801492F50E04A30510508F015C1FA0123 +:10238000EA59FF4F0C948625803881F0823809F095 +:102390000BC18091FB018F708093E9008091EB006D +:1023A00085FB882780F91092E90006C08091F3012F +:1023B0009091F401911182609091E800977F909341 +:1023C000E8008093F1001092F100C8C0282F2D7F03 +:1023D00009F0EAC0882319F0823061F0E5C08091ED +:1023E000F901813009F0E0C0933009F080E080937A +:1023F000F4012BC08091F901811127C08091FB016C +:102400008F7009F4D1C08093E9002091EB0020FF88 +:102410001CC0933021F48091EB00806214C0909135 +:10242000EB0090619093EB0021E030E0A90102C045 +:10243000440F551F8A95E2F74093EA001092EA0094 +:102440008091EB0088608093EB001092E90080910E +:10245000E800877F86C08111A7C01091F9011F771E +:102460008091E3008078812B8093E3008091E800E5 +:10247000877F8093E8000E94B90F8091E80080FF79 +:10248000FCCF8091E30080688093E300111102C0CB +:1024900082E001C083E08093F60186C080588230DC +:1024A00008F082C08091F9019091FA018C3D53E0CF +:1024B000950779F583E08A838AE289834FB7F89498 +:1024C000DE01139620E03EE051E2E32FF0E050936E +:1024D0005700E49120FF03C0E295EF703F5FEF707B +:1024E0008E2F90E0EA3010F0C79601C0C0968D9311 +:1024F0009D932F5F243149F74FBF8091E800877F7C +:102500008093E8006AE270E0CE0101960E94C00E5E +:1025100014C0AE014F5F5F4F6091FB010E94070E38 +:10252000BC01009709F440C09091E800977F909318 +:10253000E80089819A810E94230F8091E8008B77BF +:102540008093E80031C0803879F58091E800877F7A +:102550008093E8008091F2018093F1008091E8007F +:102560008E778093E8000E94B90F1EC081111CC0B5 +:102570009091F9019230C0F48091E800877F8093B8 +:10258000E8009093F2010E94B90F8091F20181114D +:1025900006C08091E30087FD02C081E001C084E0B5 +:1025A0008093F6010E94070D8091E80083FF0AC026 +:1025B0008091E800877F8093E8008091EB00806243 +:1025C0008093EB00AA960FB6F894DEBF0FBECDBF86 +:1025D000DF91CF911F9108950895CF938091F601D7 +:1025E0008823A1F0C091E900CF709091EC00892F71 +:1025F000817090FD80E8C82B1092E9008091E8007E +:1026000083FD0E949B11CF70C093E900CF91089584 +:1026100090937801809377010895E0917701F0918C +:102620007801309721F00190F081E02D099480E04D +:102630000895E0917701F0917801309721F00280C0 +:10264000F381E02D09940895E0917701F0917801EC +:10265000309721F00480F581E02D099408952091B0 +:102660007501309176018217930771F0909376018E +:1026700080937501E0917701F0917801309721F016 +:102680000680F781E02D099408952091730130911F +:1026900074018217930771F0909374018093730112 +:1026A000E0917701F0917801309721F00084F18575 +:1026B000E02D0994089508950C945B130E94B41EB4 +:1026C0000E94D2040C943A1F9F92AF92BF92CF9275 +:1026D000DF92EF92FF920F931F93CF93DF9300D07F +:1026E00000D000D0CDB7DEB70E94F9040DE010E0B5 +:1026F000AA24A394B12C902E802F0E94E705980164 +:1027000026583E4F6901F901F080F826A1F40150E6 +:10271000110988F78FEF89838A831B820E94BD1E6F +:102720008160782F9D838C8349815A816B818D8153 +:102730000E94FB132FC09091DD0191FF04C08E8396 +:102740000E94ED058E8125E030E0A501022E01C03A +:10275000440F0A94EAF7E42E4F21C1F029839A82AC +:102760008E2191E009F490E09B830E94BD1E816060 +:10277000782F9D838C8349815A816B818D810E9442 +:10278000FB13F6018081E826E08204C02150310964 +:10279000E0F6BDCF0E940821109179010E940D132F +:1027A0001817B9F00E940D138093790126960FB681 +:1027B000F894DEBF0FBECDBFDF91CF911F910F9177 +:1027C000FF90EF90DF90CF90BF90AF909F900C94D0 +:1027D0000A0C26960FB6F894DEBF0FBECDBFDF9170 +:1027E000CF911F910F91FF90EF90DF90CF90BF900E +:1027F000AF909F900895CF93DF93CDB7DEB72B971F +:102800000FB6F894DEBF0FBECDBF4F8358876987E0 +:102810007A878B87DE01119686E0FD0111928A95F9 +:10282000E9F785E0FE01379601900D928A95E1F770 +:1028300049815A816B817C818D819E810E94441ADD +:102840002B960FB6F894DEBF0FBECDBFDF91CF91B0 +:102850000895CF93882309F4C2C0C82F823859F451 +:102860000E940D1381FDBBC089E30E941E1D0E94C2 +:10287000EB1D89E30CC0833879F40E940D1380FDB1 +:10288000AEC083E50E941E1D0E94EB1D83E50E94E1 +:10289000601DCF910C94EB1D843859F40E940D13E8 +:1028A00082FD9DC087E40E941E1D0E94EB1D87E4EF +:1028B000EECF8CEF8C0F813A48F48C2F0E9452237C +:1028C00081118DC08C2F0E941E1DE3CF80E28C0FE2 +:1028D000883048F4C77081E001C0880FCA95EAF7D4 +:1028E0000E94A41DD6CF8BE58C0F833078F4C53AB7 +:1028F00029F0C63A31F083E890E005C081E890E025 +:1029000002C082E890E0CF910C942F1388E58C0FE1 +:10291000833108F064C0C83A39F1C93A41F1CA3A82 +:1029200049F1CB3A51F1CC3A59F1CD3A61F1C03B82 +:1029300069F1CE3A71F1CF3A79F1C13B81F1C23BF5 +:1029400089F1C33B91F1C43B99F1C53BA1F1C63B71 +:10295000A9F1C73BB1F1C83BB9F1C93BC1F1CA3BD1 +:10296000C9F180E090E038C082EE90E035C089EE99 +:1029700090E032C08AEE90E02FC085EB90E02CC052 +:1029800086EB90E029C087EB90E026C08CEC90E0CD +:1029900023C08DEC90E020C083E891E01DC08AE860 +:1029A00091E01AC082E991E017C084E991E014C077 +:1029B00081E292E011C083E292E00EC084E292E0F4 +:1029C0000BC085E292E008C086E292E005C087E293 +:1029D00092E002C08AE292E0CF910C944513CF912D +:1029E0000895882309F44BC0823859F40E940D13CE +:1029F00081FF45C089E30E941E1D0E94EB1D89E3F3 +:102A00000CC0833871F40E940D1380FF38C083E539 +:102A10000E941E1D0E94EB1D83E50E94601D0C9408 +:102A2000EB1D843859F40E940D1382FF28C087E4FF +:102A30000E941E1D0E94EB1D87E4EFCF9CEF980FB4 +:102A4000913A58F390E2980F983050F4877091E0E3 +:102A500001C0990F8A95EAF7892F0E94AA1DDFCF3E +:102A60009BE5980F933020F480E090E00C942F13B6 +:102A7000885A833120F480E090E00C944513089547 +:102A8000882321F00E94A41D0C94EB1D0895882337 +:102A900021F00E94AA1D0C94EB1D08957F928F9245 +:102AA0009F92AF92BF92CF92DF92EF92FF920F93DD +:102AB0001F93CF93DF931F92CDB7DEB77C01C62E55 +:102AC000772EFC01058102950F70128111110E9471 +:102AD000C11D0E94171D882379F0112369F080E23F +:102AE0008C0D883048F082E00E94001D0E94171D66 +:102AF00091E0D82ED92601C0D12CE72DE295EF70B8 +:102B0000F0E0E059FF4F0C948625872D807F072D3C +:102B10000F70882311F00295007F112389F00023A4 +:102B200009F490C180E28C0D883020F4802F0E943F +:102B3000A41D03C0802F0E94B41D0E94EB1D82C102 +:102B40008C2D0E94F114002309F495C180E28C0DB4 +:102B5000883020F4802F0E94AA1D03C0802F0E947D +:102B6000BA1D0E94EB1D87C1972D907F872D8F7016 +:102B7000903211F08295807FCC2021F0F1E0CF16C9 +:102B8000B1F01EC0112349F0002309F414C1013033 +:102B900009F011C10E94D41D6EC1002319F001304B +:102BA00009F469C189830E94D71D89810AC1112353 +:102BB00021F0023008F05FC1FEC001115CC101C10B +:102BC000112321F0002309F4F6C03CC1002309F4CD +:102BD000F8C03EC1872D86958695837090E000975A +:102BE00019F0019761F047C1112321F08C2D972D29 +:102BF000937002C080E090E00E942F133CC111232B +:102C000021F08C2D972D937002C080E090E00E94FF +:102C1000451331C18C2D112319F00E94102002C0E0 +:102C20000E9478200E94FD2026C1872D837009F024 +:102C300052C0111120C18C2D829586958770880F06 +:102C4000880F9C2D9F70892E912CA12CB12C082EC1 +:102C500004C0880C991CAA1CBB1C0A94D2F7C4FEA1 +:102C600014C00FE010E020E030E0B901A80104C07A +:102C7000440F551F661F771F8A95D2F7CB01BA0103 +:102C8000609570958095909503C060E070E0CB01F1 +:102C9000272D26952695237030E02230310569F0E6 +:102CA0002330310589F0682979298A299B29213027 +:102CB000310571F00E948C1BDEC0682979298A29B0 +:102CC0009B290E94A81BD7C00E948C1BC501B40180 +:102CD0000E94701BD0C0112319F0872D817001C094 +:102CE0008695882309F4C7C08C2D829586958770B8 +:102CF000880F880F9C2D9F70892E912CA12CB12CB0 +:102D0000082E04C0880C991CAA1CBB1C0A94D2F77C +:102D1000C4FE14C00FE010E020E030E0B901A801CB +:102D200004C0440F551F661F771F8A95D2F7CB0149 +:102D3000BA01609570958095909503C060E070E051 +:102D4000CB01272D269526952370422F50E0423047 +:102D5000510569F04330510589F0682979298A299C +:102D60009B294130510571F00E94661C84C068297E +:102D700079298A299B290E94821C7DC00E94661C99 +:102D8000C501B4010E944A1C76C08C2D90E0FC0164 +:102D9000E05EF109E531F10508F050C0E058FF4F61 +:102DA0000C9486250C2D0F70872D8F71112331F017 +:102DB0000E94E31B802F0E9440155DC00E94041CEE +:102DC000802F0E94471557C0112339F0011153C0BD +:102DD000872D8F710E94291C4EC0023008F04BC015 +:102DE000F7CF112339F0872D8F710E94E31B43C069 +:102DF0001123C9F3872D8F710E94041C3CC011233D +:102E000029F0872D8F710E94CE1B35C00E94C41BF4 +:102E100032C0112351F0172D1F71812F0E94E31B27 +:102E200063E0812F0E94F71C26C081E00E94001DF4 +:102E3000023008F182E00E94001D1DC0112331F014 +:102E4000002389F28C2D0E94291415C0002391F2D1 +:102E50008C2D0E94F1140FC0472D4F706C2DC701AF +:102E60000E94C3060E94E81A06C0472D4F706C2DC1 +:102E7000C7010E94790BDD20F9F00E94F31C80FD50 +:102E80001BC0F70112820E94ED1C0E94E31BC701C8 +:102E90000E946B170E94ED1C0F90DF91CF911F9144 +:102EA0000F91FF90EF90DF90CF90BF90AF909F90E9 +:102EB0008F907F900C94041C0F90DF91CF911F9105 +:102EC0000F91FF90EF90DF90CF90BF90AF909F90C9 +:102ED0008F907F9008950F931F93CF93DF93EC0112 +:102EE000888199812B813C81232BB9F09F3F11F47C +:102EF0008F3F99F0CE010E940A08882371F0688103 +:102F000079818A810E94E91C8C010E949E1C0E948A +:102F1000651BB801CE010E944E15DF91CF911F9124 +:102F20000F9108950E94C11D0E94D11D0E94961DFF +:102F30000E94EB1D0E94AE210E94FD2080E090E0E7 +:102F40000E942F1380E090E00C9445130E94B11D65 +:102F50000C9492170E94DE1C292F22952F7030E0CE +:102F60002C3031054CF42A3031056CF422503109F3 +:102F700022303105A8F407C02C30310569F02F301C +:102F8000310551F00DC0803F69F018F4803E40F4E7 +:102F900009C0843F29F406C093FB882780F908956F +:102FA00080E0089581E00895CF93DF9300D000D0B2 +:102FB0001F92CDB7DEB70F900F900F900F900F902C +:102FC000DF91CF910895CF93DF9300D000D000D050 +:102FD000CDB7DEB726960FB6F894DEBF0FBECDBFD5 +:102FE000DF91CF9108951F93CF93DF93C091880114 +:102FF00016E080918901C81799F0D0E01C9FF0017C +:103000001D9FF00D1124E657FE4F408151816281D2 +:103010007381848195810E94E3172196C770E9CF5F +:10302000DF91CF911F9108954091BA015091BB015A +:103030006091BC017091BD018091BE019091BF0172 +:103040000C94E3178091BF0182958F7009F054C0F2 +:103050008091BC01882309F44FC080918801A09120 +:1030600089016091BA017091BB014091BD015091FD +:10307000BE01B6E08A1709F43FC090E04115510542 +:10308000C1F17F3F11F46F3FA1F1B89FF001B99FEB +:10309000F00D1124E657FE4F218172132AC02081C2 +:1030A000621327C02281211124C023813481241777 +:1030B000350710F421503109241B350B283C31050C +:1030C000C0F42091BF012F7020612093BF0126E042 +:1030D000289FF001299FF00D1124E157FE4F8081B8 +:1030E0008F70806180838AEB91E00E946B170C9453 +:1030F000F31701968770BECF0895CF92DF92EF92BB +:10310000FF920F931F93CF93DF93CDB7DEB76297F4 +:103110000FB6F894DEBF0FBECDBF8C0185E0F8017D +:10312000DE011D9601900D928A95E1F7D8014C9130 +:1031300011965C91119712966C9112971396CD90FF +:10314000DC9014973091BA017091BB018091BD0160 +:103150009091BE01009709F46BC17F3F19F43F3F86 +:1031600009F466C1E090BC01EE2009F4C0C02091D2 +:10317000BF01C816D90628F0F601E81BF90BCF01EC +:1031800004C0809590958C0D9D1DFF24F394883C80 +:10319000910578F0F12C207F09F0C6C07C2DD98AEA +:1031A000C88A89890E94D4178AEB91E00E946B1724 +:1031B000B1C0822F807F09F046C0751314C034134C +:1031C00012C0611110C02F7020612093BF010E94B6 +:1031D00014188AEB91E00E946B178091BF01D8010F +:1031E00015968C932EC0CD2819F15F3F11F44F3FF7 +:1031F000F9F0F62E61111CC080918801209189019F +:1032000036E0821709F45AC090E0389FF001399FE8 +:10321000F00D1124E657FE4F7181571306C07081DF +:10322000471303C07281711103C001968770E9CF03 +:10323000F62E662309F418C18091BF018160809346 +:10324000BF01F12C11C1751308C0341306C0611100 +:1032500004C08091BF01D801C3C04D875E878D85B2 +:103260009E856A8B0E94AA176A898823E1F16623EA +:10327000D1F12091BF01822F82958F7090E002974B +:1032800074F08091BA019091BB0198878F83198661 +:10329000DB86CA862C87CE0107960E946B1786E0D4 +:1032A000F801AAEBB1E001900D928A95E1F70E9436 +:1032B00022180E941418FF24F394D6C04D875E870D +:1032C0008D859E850E94DE1C292F22952F7030E06F +:1032D000223031050CF0BCC09F7009F0B6C0805E92 +:1032E000883008F4C1C0C8010E946B17E4CFC8162B +:1032F000D90608F453C0F601E81BF90BCF01883C4E +:10330000910508F450C0F12C7C2DD98AC88A89898E +:103310000E94D417EAEBF1E086E0DF011D928A9566 +:10332000E9F70E941418A0C0751314C0341312C01A +:10333000611110C08091BF01F8018583C8010E940E +:103340006B1786E0EAEBF1E0DF011D928A95E9F761 +:10335000FE2C8AC04D875E878D859E856A8B0E9474 +:10336000AA176A89882309F4BECF662309F4BBCF64 +:103370002091BF01822F82958F7090E002970CF40C +:103380008ECF8091BA019091BB019A8389831B8271 +:10339000DD82CC822E83CE0101967FCF80959095E1 +:1033A0008C0D9D1DACCFF62E662309F49CCF7513B2 +:1033B0002EC034132CC02091BF0120FD1FC0822FCE +:1033C00082958F70D9F0D80115962C9315978F3070 +:1033D00049F08F5F982F9295907F822F8F70892B65 +:1033E00015968C93C8010E946B1786E0F801AAEB32 +:1033F000B1E001900D928A95E1F793CF86E0F80154 +:10340000AAEBB1E001900D928A95E1F72DC04D87AE +:103410005E878D859E850E94AA17811140CF80917D +:10342000BF0181608093BF01C8010E946B171CC05F +:10343000662309F458CF4D875E878D859E850E944F +:10344000AA17882309F44FCF2ACF811148CF0CC087 +:10345000243031050CF047CF9F7009F440CFF801BC +:103460009581907F09F03BCF8F2D62960FB6F8942F +:10347000DEBF0FBECDBFDF91CF911F910F91FF90A7 +:10348000EF90DF90CF9008951F93CF93DF93CDB748 +:10349000DEB72C970FB6F894DEBF0FBECDBF4F83BB +:1034A000588769877A878B879C87CE0107960E9409 +:1034B0007D18882369F08F8198852A853B85232B89 +:1034C000F1F19F3F09F063C08F3F09F060C037C042 +:1034D00086E0FE013796DE01119601900D928A95E5 +:1034E000E1F76F817885EA85FB85309741F17F3F71 +:1034F00011F46F3F21F12091890130E0C90101965B +:10350000877099274091880150E08417950709F446 +:1035100047C069837A83FD83EC8396E0929FD00154 +:10352000939FB00D1124A657BE4FFE013196019016 +:103530000D929A95E1F7809389010E94F31716E0A6 +:1035400080918801909189018917C1F1189FC0016C +:10355000112486579E4F0E947D18882379F1E091AF +:1035600088011E9FF0011124E657FE4F40815181D2 +:1035700062817381848195810E94E3178091880123 +:1035800090E001968770992780938801D9CF4F8169 +:10359000588569857A858B859C850E94E317CFCFF6 +:1035A0000E94A6171092890110928801EAEBF1E0BF +:1035B00086E0DF011D928A95E9F7C1CF2C960FB600 +:1035C000F894DEBF0FBECDBFDF91CF911F9108955C +:1035D000EF92FF920F931F93CF93DF938C0100978D +:1035E00009F46CC0F12CEE24E394E8012196F80173 +:1035F0008491843740F4843008F051C0813081F0E8 +:10360000823019F15BC0853709F444C0A8F19CE70A +:10361000980F903708F052C08F770E94F11441C084 +:103620000E5F1F4FFE01C49180E28C0F883048F47A +:10363000C7708E2D01C0880FCA95EAF70E94C41D7D +:1036400014C08C2F0E9429142DC00E5F1F4FFE0145 +:10365000C49180E28C0F883058F4C7708E2D01C061 +:10366000880FCA95EAF70E94CA1D0E94EB1D1AC076 +:103670008C2F0E94F11416C00E5F1F4FFE01C491E3 +:10368000CC2381F08FE99FE00197F1F700C00000A3 +:10369000C150F6CF0E5F1F4FFE01F49003C00E9491 +:1036A00029148E018F2D882309F49FCFEFE9FFE0C5 +:1036B0003197F1F700C000008150F5CFDF91CF9135 +:1036C0001F910F91FF90EF90089508956093C401AA +:1036D0007093C5018093C6019093C7010C94921713 +:1036E0000F931F930091C4011091C5012091C60151 +:1036F0003091C701DC01CB01802B912BA22BB32B86 +:103700008093C4019093C501A093C601B093C701F3 +:103710001F910F910C9492170F931F930091C40166 +:103720001091C5012091C6013091C701DC01CB0188 +:1037300080239123A223B3238093C4019093C501D6 +:10374000A093C601B093C7011F910F910C949217DB +:103750000F931F930091C4011091C5012091C601E0 +:103760003091C701DC01CB0180279127A227B32725 +:103770008093C4019093C501A093C601B093C70183 +:103780001F910F910C9492171092C0011092C101D9 +:103790001092C2011092C3010C94921741E050E0C4 +:1037A00060E070E004C0440F551F661F771F8A95C4 +:1037B000D2F74093C0015093C1016093C20170934E +:1037C000C3010C94921741E050E060E070E004C047 +:1037D000440F551F661F771F8A95D2F78091C0014D +:1037E0009091C101A091C201B091C301482B592B06 +:1037F0006A2B7B2B4093C0015093C1016093C2019F +:103800007093C3010C94921741E050E060E070E0C7 +:1038100004C0440F551F661F771F8A95D2F7409545 +:103820005095609570958091C0019091C101A091D3 +:10383000C201B091C301482359236A237B234093DB +:10384000C0015093C1016093C2017093C3010C94F5 +:10385000921741E050E060E070E004C0440F551F53 +:10386000661F771F8A95D2F78091C0019091C101A0 +:10387000A091C201B091C301482759276A277B272D +:103880004093C0015093C1016093C2017093C30182 +:103890000C9492170F931F930091C0011091C101D6 +:1038A0002091C2013091C301DC01CB01802B912B0F +:1038B000A22BB32B8093C0019093C101A093C201AE +:1038C000B093C3011F910F910C9492170F931F9304 +:1038D0000091C0011091C1012091C2013091C3013A +:1038E000DC01CB0180239123A223B3238093C00169 +:1038F0009093C101A093C201B093C3011F910F9196 +:103900000C9492170F931F930091C0011091C10165 +:103910002091C2013091C301DC01CB0180279127A6 +:10392000A227B3278093C0019093C101A093C20145 +:10393000B093C3011F910F910C9492170895CF92E9 +:10394000DF92EF92FF920F931F93CF93DF938C013F +:10395000C090C401D090C501E090C601F090C701AD +:103960008091C0019091C101A091C201B091C301A9 +:10397000C82AD92AEA2AFB2ACFE1D0E0D701C6011A +:103980000C2E04C0B695A795979587950A94D2F703 +:1039900080FF06C0B8018C2F0E94F809019721F41E +:1039A000219760F780E001C08C2FDF91CF911F91AC +:1039B0000F91FF90EF90DF90CF900895CF93DF931A +:1039C000EC010E949F1CBE010E94F809DF91CF917B +:1039D0000895CB010E94DE1C08958091C801859551 +:1039E0008595859508958091C8018770089598E020 +:1039F000899F90011124262B2093C8010C94E31B6E +:103A00002091C801809582238093C801982F9770D8 +:103A100069F430E0482F552747FD509524173507A6 +:103A200029F08595859585950C94041C08959091B1 +:103A3000C801977081E009F480E0089590910C012D +:103A4000992321F090910D01911109C020910E014F +:103A500030910F01F90132969FEF40E01FC0982F7F +:103A60009695969596959F3050F5E0910E01F091C0 +:103A70000F01E90FF11D877021E030E0A90102C0BC +:103A8000440F551F8A95E2F7CA019181892B8183E2 +:103A900008959F3F39F04F5F4E3041F051915813D8 +:103AA000F8CF0DC05111F7CF942FF5CF9F3F39F0CC +:103AB000F901E90FF11D97FDFA95828308950895A4 +:103AC00090910C01992321F090910D01911109C061 +:103AD00020910E0130910F01F9013296205F3F4F86 +:103AE0001FC0982F9695969596959F30F0F4E0918B +:103AF0000E01F0910F01E90FF11D877021E030E018 +:103B0000A90102C0440F551F8A95E2F7CA018095AA +:103B100091818923818308953196E217F30729F073 +:103B200090819813F9CF1082F7CF089581E090E04B +:103B3000E0910E01F0910F01E80FF91F108201963C +:103B400080319105A9F708959091DC01892B80932C +:103B5000DC01089580959091DC0189238093DC013C +:103B600008951092DC0108959091DB01892B8093D8 +:103B7000DB01089580959091DB0189238093DB011F +:103B800008951092DB0108959091DA01892B8093BA +:103B9000DA01089580959091DA0189238093DA0102 +:103BA00008951092DA0108958093C9010895109242 +:103BB000C901089580910E0190910F01FC01319689 +:103BC0009C01205F3F4F80E0919191118F5FE21740 +:103BD000F307D1F70895E0910E01F0910F01809164 +:103BE000DC018083E0910E01F0910F0190818091C2 +:103BF000DB01892B8083E0910E01F0910F01908110 +:103C00008091DA01892B80838091C901882361F03A +:103C1000E0910E01F0910F019081892B80830E9429 +:103C2000DA1D81111092C90180910E0190910F014E +:103C30000C94191320E0009739F0AC014150510960 +:103C4000842395232F5FF7CF822F0895CF92DF92A1 +:103C5000EF92FF926C01EE24FF24C114D104E10421 +:103C6000F10421F0C701B60120E101C020E0C72E18 +:103C7000D82EE92EFF24C114D104E104F10419F077 +:103C8000285FC701B6016B017C0154E0F694E7940C +:103C9000D794C7945A95D1F7C114D104E104F10423 +:103CA00019F02C5FC701B6016B017C0142E0F6946C +:103CB000E794D794C7944A95D1F7C114D104E1048D +:103CC000F10419F02E5FC701B601DC01CB01B695F6 +:103CD000A79597958795892B8A2B8B2B09F02F5FBA +:103CE000822FFF90EF90DF90CF9008958091F601A2 +:103CF000843021F11092DE0120E488E190E00FB6DB +:103D0000F894A895809360000FBE2093600080E037 +:103D10000E940A0C83B7817F846083BF83B7816070 +:103D200083BF7894889583B78E7F83BF88E10FB671 +:103D3000F89480936000109260000FBE089508957B +:103D40000E94E6040E94F9040E949F1E0E94EE0554 +:103D500091E0811101C090E0892F08950E94A6177B +:103D60000E940D130C940A0C82E084BD93E095BD73 +:103D70009AEF97BD80936E0008952FB7F8948091C5 +:103D8000DF019091E001A091E101B091E2012FBF2C +:103D90000895CF92DF92EF92FF920F931F932FB768 +:103DA000F8944091DF015091E0016091E101709140 +:103DB000E2012FBF6A017B01EE24FF248C0120E089 +:103DC00030E0C016D106E206F30610F44150510966 +:103DD0009A01281B390BC9011F910F91FF90EF9099 +:103DE000DF90CF9008951F920F920FB60F9211247B +:103DF0008F939F93AF93BF938091DF019091E001E8 +:103E0000A091E101B091E2010196A11DB11D809345 +:103E1000DF019093E001A093E101B093E201BF9133 +:103E2000AF919F918F910F900FBE0F901F9018959B +:103E30000E940A10F8942FEF87EA91E62150804003 +:103E40009040E1F700C0000087E090EBDC01809338 +:103E5000FF0190930002A0930102B09302029CE044 +:103E600088E10FB6F894A895809360000FBE9093F8 +:103E70006000FFCF0E94721F811102C00E94581F74 +:103E80000E947D1F8093DD010E94851F90E090932A +:103E9000F1018093F00187FB882780F980930D0161 +:103EA0000E94811F682F70E080E090E00C94661BF8 +:103EB0006DEE7EEF80E090E00E94C02560E082E041 +:103EC00090E00E94AE2560E083E090E00E94AE2585 +:103ED00060E084E090E00E94AE2560E085E090E044 +:103EE0000C94AE2580E090E00E94A82521E08D3E54 +:103EF0009E4F09F020E0822F089582E090E00C941C +:103F0000A02583E090E00C94A02584E090E00C9440 +:103F1000A025682F84E090E00C94AE258091E50107 +:103F200080FF0BC06091130185E0689FB0011124F0 +:103F300075956795759567952BC081FF09C0609150 +:103F4000130185E0689FB00111247595679520C025 +:103F500082FF07C06091130185E0689FB0011124C2 +:103F600017C09091E6019923D1F060911201961744 +:103F700088F72091130185E0289F90011124929FDA +:103F8000A001939F500D112470E0CA010E94722578 +:103F90006038710540F46115710539F002C065E0C3 +:103FA00070E0862F08958FE7089581E0089580914D +:103FB000E50180FF08C06091110170E0759567957B +:103FC0007595679521C081FF06C06091110170E071 +:103FD0007595679519C082FF04C06091110170E06A +:103FE00010C09091E6019923C1F0609110019617DD +:103FF000A0F780911101899FC001112470E00E94F7 +:1040000072256038710528F46115710521F0862F3D +:1040100008958FE7089581E0089561E070E0F4CF9E +:10402000803F21F40E948E1F819504C0813F29F4B6 +:104030000E948E1F8093E9010895823F21F40E941F +:104040008E1F819504C0833F29F40E948E1F8093A8 +:10405000E8010895893F19F40E94D71F05C08A3FDF +:1040600031F40E94D71F81958093EA0108958B3F18 +:1040700021F40E94D71F819504C08C3F29F40E942F +:10408000D71F8093EB010895843F21F48091E701CD +:10409000816017C0853F21F48091E701826011C0E3 +:1040A000863F21F48091E70184600BC0873F21F4B3 +:1040B0008091E701886005C0883F31F48091E70175 +:1040C00080618093E70108958D3F21F48091E5019F +:1040D00081600BC08E3F21F48091E501826005C0B4 +:1040E0008F3F29F48091E50184608093E501089574 +:1040F000803F39F48091E90187FF6CC01092E9019B +:1041000069C0813F29F48091E9011816BCF362C0AF +:104110009091E801823F29F497FF5CC01092E8017A +:1041200059C0833F19F41916CCF354C0893F41F4A8 +:104130008091EA0118160CF04DC01092EA014AC0B5 +:104140008A3F29F48091EA0187FF44C0F6CF8B3F74 +:1041500039F48091EB0187FF3DC01092EB013AC02A +:104160008C3F29F48091EB011816BCF333C0843FD7 +:1041700021F48091E7018E7F17C0853F21F4809163 +:10418000E7018D7F11C0863F21F48091E7018B7F8D +:104190000BC0873F21F48091E701877F05C0883FEE +:1041A00031F48091E7018F7E8093E70113C08D3F4A +:1041B00021F48091E5018E7F0BC08E3F21F4809128 +:1041C000E5018D7F05C08F3F29F48091E5018B7F4C +:1041D0008093E5018091E80181110EC08091E90191 +:1041E00081110AC08091EA01811106C08091EB0122 +:1041F000811102C01092E601089587EE91E00E94BD +:1042000024130E94BD1E9093E4018093E30108955E +:104210001F93CF93DF938091E3019091E4010E947B +:10422000C91EAC019091E601992321F0209114015F +:1042300030E006C0209115018AE0289F90011124EA +:104240004217530708F486C08091E801C091E90144 +:10425000D091EA011091EB01811107C0C11176C024 +:10426000D11174C0111172C075C09F3F19F09F5FCA +:104270009093E601181624F40E948E1F8093E801A3 +:104280008091E80187FF05C00E948E1F8195809371 +:10429000E8011C1624F40E948E1F8093E90180918E +:1042A000E90187FF05C00E948E1F81958093E90177 +:1042B0006091E801662339F1C091E901CC2319F13D +:1042C000772767FD7095872F972F0E94832423E31C +:1042D00033E343E35FE30E94E7240E9450246093AA +:1042E000E8016C2F772767FD7095872F972F0E9425 +:1042F000832423E333E343E35FE30E94E7240E9444 +:1043000050246093E9011D1624F40E94D71F809366 +:10431000EA018091EA0187FF05C00E94D71F8195BD +:104320008093EA01111624F40E94D71F8093EB01B9 +:104330008091EB0187FF05C00E94D71F8195809374 +:10434000EB01DF91CF911F910C94FD209F3F09F06D +:104350008ECF96CFDF91CF911F910895E7EEF1E0D8 +:1043600085E0DF011D928A95E9F71092E60110922F +:10437000E5010895833081F128F4813059F08230CD +:10438000D1F00895853009F449C0B8F1863009F4B8 +:1043900056C0089580911501262F30E0280F311D59 +:1043A0002F3F310524F4680F6093150108958FEFB6 +:1043B00080931501089580911401262F30E0280F75 +:1043C000311D2F3F310524F4680F609314010895C7 +:1043D0008FEF80931401089580911301262F30E010 +:1043E000280F311D2F3F310524F4680F609313010E +:1043F00008958FEF80931301089580911201262F65 +:1044000030E0280F311D2F3F310524F4680F6093F1 +:10441000120108958FEF8093120108958091110188 +:10442000262F30E0280F311D2F3F310524F4680F6F +:104430006093110108958FEF809311010895809189 +:104440001001262F30E0280F311D2F3F310524F4B5 +:10445000680F6093100108958FEF80931001089505 +:10446000833011F128F4813049F0823091F00895C1 +:10447000853081F120F18630C1F1089580911501D8 +:10448000681720F4861B809315010895109215017A +:10449000089580911401681720F4861B80931401FD +:1044A000089510921401089580911301681720F463 +:1044B000861B809313010895109213010895809133 +:1044C0001201681720F4861B809312010895109240 +:1044D0001201089580911101681720F4861B8093C2 +:1044E000110108951092110108958091100168172B +:1044F00020F4861B809310010895109210010895F6 +:104500000F931F938D3109F471C008F045C08031BD +:1045100009F485C008F5873009F46FC068F4863067 +:1045200009F0ADC08091DD01817F8E7F8093DD0138 +:1045300081E08093ED01A4C08B3009F49EC08E30E1 +:1045400009F09DC08091DD0182FB222720F991E0D6 +:10455000922790FB82F96CC0863109F48EC060F41A +:10456000813109F08CC00E94A61790910D0181E065 +:10457000892780930D0181C0893109F47EC08B3178 +:1045800009F07DC08091DD0181FB222720F991E0B7 +:10459000922790FB81F94CC0853309F466C048F43A +:1045A000873209F462C008F44FC0893209F45DC053 +:1045B00066C0833438F48A3308F044C0883309F481 +:1045C0005CC05DC0833409F450C0883409F057C022 +:1045D0000E94A6170FEF13ED20E30150104020407A +:1045E000E1F700C000000E94181F47C00E940A2483 +:1045F0000E940D130E940A0C40C09091DD01892F8A +:104600008095817080FB90F929F096609860909376 +:10461000DD0136C0997F977F9093DD012EC0809198 +:10462000DD0183FB222720F991E0922790FB83F99B +:104630008093DD01992309F18091DD0181608093F0 +:10464000DD011BC0895301C08D5141E050E060E0A5 +:1046500070E08A019B0104C0000F111F221F331F4D +:104660008A95D2F7C901B80104C061E070E080E02A +:1046700090E00E94661B0E94A61781E001C080E0C6 +:104680001F910F91089580E0089580E008958E5164 +:104690008A3030F4E82FF0E0E65DFE4F8081089527 +:1046A00080E00895CF93C82F8091ED01813079F09B +:1046B00018F08230E9F186C0E0910E01F0910F010F +:1046C0008081813169F0823209F07EC009C0E091B9 +:1046D0000E01F0910F018081813111F0823261F47D +:1046E0008C2F0E944323811104C08C2F0E948022B2 +:1046F0001DC081E090E01AC08C2F0E9445238111DB +:1047000014C0C43179F048F4CB3079F0C03109F0ED +:104710005FC082E08093ED0108C0C93219F0C83350 +:1047200021F056C01092ED0153C081E0817052C05B +:10473000C93281F110F5C43169F1A8F4C73009F02C +:1047400045C08AE08093150194E19093140193E0B1 +:10475000909313018093120188E08093110188E205 +:104760008093100133C082EE8C0F863078F58C2F49 +:104770000E9447238093EC0129C0CE34E9F020F455 +:10478000CB3421F56AE013C0C13579F0C235F1F4BC +:1047900061E00DC08091EC01882319F01092EC01CA +:1047A00015C081E08093ED0115C061E006C08091E5 +:1047B000EC010E94BA210AC06AE08091EC010E94DB +:1047C000302204C01092ED0180E004C081E002C0FC +:1047D00080E0ACCFCF910895E1E8F0E0808188607F +:1047E00080838081816080838FB7F89493E0909379 +:1047F000890090ED909388008FBF0895EFE6F0E078 +:104800008081826080830895EFE6F0E080818D7F73 +:1048100080830895EFE6F0E0908182E0892780832D +:1048200008951F920F920FB60F9211242F933F936A +:104830004F935F936F937F938F939F93AF93BF93A8 +:10484000EF93FF938091EE019091EF010196909389 +:10485000EF018093EE01811103C082E00E940A0CF7 +:10486000E091EF01E695E695F0E0ED51F84FE49127 +:104870008091EE018E1303C080E00E940A0CFF912C +:10488000EF91BF91AF919F918F917F916F915F91C8 +:104890004F913F912F910F900FBE0F901F90189541 +:1048A00004D06894B1118DC0089570D088F09F57DE +:1048B00090F0B92F9927B751A0F0D1F0660F771F6C +:1048C000881F991F1AF0BA95C9F712C0B13081F04C +:1048D00077D0B1E0089574C0672F782F8827B85F2C +:1048E00039F0B93FCCF3869577956795B395D9F7AD +:1048F0003EF490958095709561957F4F8F4F9F4FB7 +:104900000895E89409C097FB3EF4909580957095C2 +:1049100061957F4F8F4F9F4F9923A9F0F92F96E90B +:10492000BB279395F695879577956795B795F11180 +:10493000F8CFFAF4BB0F11F460FF1BC06F5F7F4F1D +:104940008F4F9F4F16C0882311F096E911C077232F +:1049500021F09EE8872F762F05C0662371F096E838 +:10496000862F70E060E02AF09A95660F771F881F07 +:10497000DAF7880F9695879597F9089557FD90581F +:10498000440F551F59F05F3F71F04795880F97FB13 +:10499000991F61F09F3F79F08795089512161306CD +:1049A0001406551FF2CF4695F1DF08C016161706FC +:1049B0001806991FF1CF8695710561050894089531 +:1049C000E894BB2766277727CB0197F908950BD08A +:1049D00078C069D028F06ED018F0952309F05AC03D +:1049E0005FC01124EECFCADFA0F3959FD1F3950FDE +:1049F00050E0551F629FF001729FBB27F00DB11D63 +:104A0000639FAA27F00DB11DAA1F649F6627B00DF2 +:104A1000A11D661F829F2227B00DA11D621F739FDB +:104A2000B00DA11D621F839FA00D611D221F749FE9 +:104A30003327A00D611D231F849F600D211D822F30 +:104A4000762F6A2F11249F5750408AF0E1F0882377 +:104A50004AF0EE0FFF1FBB1F661F771F881F915084 +:104A60005040A9F79E3F510570F014C0AACF5F3F98 +:104A7000ECF3983EDCF3869577956795B795F795B7 +:104A8000E7959F5FC1F7FE2B880F911D969587953F +:104A900097F9089597F99F6780E870E060E00895BE +:104AA0009FEF80EC089500240A9416161706180646 +:104AB0000906089500240A94121613061406050622 +:104AC0000895092E0394000C11F4882352F0BB0FB3 +:104AD00040F4BF2B11F460FF04C06F5F7F4F8F4F16 +:104AE0009F4F089597FB072E16F4009407D077FD8B +:104AF00009D00E948C2507FC05D03EF49095819545 +:104B00009F4F0895709561957F4F0895EE0FFF1F99 +:104B10000590F491E02D0994AA1BBB1B51E107C03D +:104B2000AA1FBB1FA617B70710F0A61BB70B881F3D +:104B3000991F5A95A9F780959095BC01CD010895CC +:104B4000F999FECF92BD81BDF89A992780B5089555 +:104B5000A8E1B0E042E050E00C94C825262FF99976 +:104B6000FECF92BD81BDF89A019700B4021639F0CC +:104B70001FBA20BD0FB6F894FA9AF99A0FBE08959D +:104B80000196272F0E94AF250C94AE25DC01CB01A6 +:104B9000FC01F999FECF06C0F2BDE1BDF89A31964D +:104BA00000B40D9241505040B8F70895F894FFCFEB +:104BB00002200C0C9A0C770C430C0F0C0101CA015B +:104BC00028080A03140A404D3639A3075607200760 +:104BD000E7067A069306AC06C5060102030405063D +:044BE00007080900B9 +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/osx_de/keymap.c b/keyboards/ergodox_ez/keymaps/osx_de/keymap.c new file mode 100644 index 000000000..554813d7e --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/osx_de/keymap.c @@ -0,0 +1,364 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_german_osx.h" + +#define BASE 0 +#define SYMB 1 +#define MDIA 2 +#define SMLY 3 +#define NUMB 4 +#define EGOS 5 + +#define M_CTRL_CMDV 0 +#define M_CTRL_CMDC 1 +#define M_MEH_SH_ACUT 2 +#define M_LGUI_SHFT 3 +#define M_CTL_SFT_HASH 4 +#define M_DE_OSX_CIRC_CTRLCMD 5 +#define M_DE_OSX_PLUS_CTRLALT 6 +#define SM_SMILE 7 +#define SM_SMIRK 8 +#define SM_CRY 9 +#define SM_SAD 10 +#define SM_HEART 11 +#define SM_LAUGH 12 +#define SM_KISS 13 +#define SM_FROWN 14 +#define M_TOGGLE_5 15 + +//Layout keymap.c generated with ErgodoxLayoutGenerator V1.0BETA1 +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[BASE]=KEYMAP( +//left half + KC_ESC, DE_OSX_1, DE_OSX_2, DE_OSX_3, DE_OSX_4, DE_OSX_5, M(M_CTL_SFT_HASH), + KC_TAB, DE_OSX_Q, DE_OSX_W, DE_OSX_E, DE_OSX_R, DE_OSX_T, KC_LGUI, + KC_LALT, DE_OSX_A, DE_OSX_S, DE_OSX_D, DE_OSX_F, DE_OSX_G, + KC_LSFT, CTL_T(DE_OSX_Y), DE_OSX_X, DE_OSX_C, DE_OSX_V, DE_OSX_B, KC_LALT, + LT(SYMB,DE_OSX_LESS), M(M_DE_OSX_CIRC_CTRLCMD), M(M_DE_OSX_PLUS_CTRLALT), KC_UP, KC_DOWN, + M(M_MEH_SH_ACUT), TG(MDIA), + KC_HOME, + KC_BSPC, KC_DEL, LT(SMLY,KC_END), + //right half + M(M_CTL_SFT_HASH), DE_OSX_6, DE_OSX_7, DE_OSX_8, DE_OSX_9, DE_OSX_0, DE_OSX_SS, + KC_RGUI, DE_OSX_Z, DE_OSX_U, DE_OSX_I, DE_OSX_O, DE_OSX_P, DE_OSX_UE, + DE_OSX_H, DE_OSX_J, DE_OSX_K, DE_OSX_L, DE_OSX_OE, ALT_T(DE_OSX_AE), + KC_RALT, DE_OSX_N, DE_OSX_M, DE_OSX_COMM, DE_OSX_DOT, CTL_T(DE_OSX_MINS), KC_RSFT, + KC_LEFT, KC_RIGHT, LGUI(KC_LSFT), LALT(KC_LSFT), LT(SYMB,DE_OSX_PLUS), + TG(NUMB), ALL_T(DE_OSX_ACUT), + KC_PGUP, + KC_PGDN, KC_ENT, KC_SPC), +[SYMB]=KEYMAP( +//left half + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS, DE_OSX_LESS, DE_OSX_MORE, DE_OSX_EXLM, DE_OSX_QST, KC_TRNS, KC_TRNS, + KC_TRNS, DE_OSX_HASH, DE_OSX_DLR, DE_OSX_BSLS, DE_OSX_SLSH, KC_DOT, + KC_TRNS, KC_TRNS, DE_OSX_LESS, DE_OSX_PERC, DE_OSX_PIPE, DE_OSX_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 half + M(M_TOGGLE_5), KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), DE_OSX_LESS, DE_OSX_MORE, DE_OSX_EXLM, + DE_OSX_SLSH, DE_OSX_LPRN, DE_OSX_RPRN, LALT(KC_8), LALT(KC_9), DE_OSX_HASH, + KC_TRNS, DE_OSX_PIPE, DE_OSX_TILD, DE_OSX_CIRC, KC_UP, DE_OSX_MINS, LSFT(KC_4), + DE_OSX_QUOT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, + KC_F13, KC_F12, + KC_F14, + KC_F15, KC_TRNS, KC_TRNS), +[MDIA]=KEYMAP( +//left half + 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 half + 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), +[SMLY]=KEYMAP( +//left half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 half + M(SM_SMILE), M(SM_SMIRK), M(SM_LAUGH), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, M(SM_FROWN), M(SM_SAD), M(SM_CRY), KC_TRNS, KC_TRNS, KC_TRNS, + M(SM_HEART), M(SM_KISS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), +[NUMB]=KEYMAP( +//left half + 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 half + 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, DE_OSX_MINS, + KC_TRNS, LSFT(KC_6), KC_1, KC_2, KC_3, LSFT(KC_7), KC_TRNS, + KC_0, KC_DOT, KC_COMM, DE_OSX_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), +[EGOS]=KEYMAP( +//left half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_F1, KC_F2, + KC_F3, + KC_SPC, KC_LCTL, KC_F4, + //right half + M(M_TOGGLE_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, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ +static uint16_t start; +switch(id) { +case M_TOGGLE_5: +//Macro: M_TOGGLE_5//----------------------- + if (record->event.pressed){ + layer_state ^= (1<<5); + layer_state &= (1<<5); + } + +break; +case M_CTRL_CMDC: +//Macro: M_CTRL_CMDC//----------------------- +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 M_DE_OSX_PLUS_CTRLALT: +//Macro: M_DE_OSX_PLUS_CTRLALT//----------------------- +if (record->event.pressed) { + start = timer_read(); + return MACRO(D(LCTRL),D(LALT),END); + } else { + if (timer_elapsed(start) >150) { + return MACRO(U(LCTRL),U(LALT),END); + } else { + return MACRO(U(LCTRL),U(LALT),T(RBRC),END); + } + } + +break; +case SM_KISS: +//Macro: SM_KISS//----------------------- +if (record->event.pressed) { + return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(RBRC),U(LSFT),END); + } + +break; +case SM_FROWN: +//Macro: SM_FROWN//----------------------- +if (record->event.pressed) { + return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LALT),T(8),U(LALT),END); + } + +break; +case SM_CRY: +//Macro: SM_CRY//----------------------- +if (record->event.pressed) { + return MACRO(D(LSFT),T(COMM),U(LSFT),T(SLSH),D(LSFT),T(8),U(LSFT),END); + } + +break; +case SM_SMILE: +//Macro: SM_SMILE//----------------------- +if (record->event.pressed) { + return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(9),U(LSFT),END); + } + +break; +case SM_SMIRK: +//Macro: SM_SMIRK//----------------------- +if (record->event.pressed) { + return MACRO(D(LSFT),T(COMM),U(LSFT),T(SLSH),D(LSFT),T(9),U(LSFT),END); + } + +break; +case M_LGUI_SHFT: +//Macro: M_LGUI_SHFT//----------------------- +if (record->event.pressed){ + return MACRO(D(LGUI),D(LSFT),END); + }else{ + return MACRO(U(LGUI),U(LSFT),END); + } + +break; +case SM_HEART: +//Macro: SM_HEART//----------------------- +if (record->event.pressed) { + return MACRO(T(GRV),T(3),END); + } + +break; +case SM_LAUGH: +//Macro: SM_LAUGH//----------------------- +if (record->event.pressed) { + return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(D),U(LSFT),END); + } + +break; +case M_CTL_SFT_HASH: +//Macro: M_CTL_SFT_HASH//----------------------- +if (record->event.pressed) { + start = timer_read(); + return MACRO(D(LCTRL),D(LSFT),END); + } else { + if (timer_elapsed(start) >150) { + return MACRO(U(LCTRL),U(LSFT),END); + } else { + return MACRO(U(LCTRL),U(LSFT),T(BSLS),END); + } + } + +break; +case SM_SAD: +//Macro: SM_SAD//----------------------- +if (record->event.pressed) { + return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(8),U(LSFT),END); + } + +break; +case M_DE_OSX_CIRC_CTRLCMD: +//Macro: M_DE_OSX_CIRC_CTRLCMD//----------------------- +if (record->event.pressed) { + start = timer_read(); + return MACRO(D(LCTRL),D(LGUI),END); + } else { + if (timer_elapsed(start) >150) { + return MACRO(U(LCTRL),U(LGUI),END); + } else { + return MACRO(U(LCTRL),U(LGUI),T(NUBS),END); + } + } + +break; +case M_CTRL_CMDV: +//Macro: M_CTRL_CMDV//----------------------- +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 M_MEH_SH_ACUT: +//Macro: M_MEH_SH_ACUT//----------------------- +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); + } + } + +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; + case SMLY: + + + ergodox_right_led_3_on(); + break; + case NUMB: + ergodox_right_led_1_on(); + + ergodox_right_led_3_on(); + break; + case EGOS: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + ergodox_right_led_3_on(); + break; +default: +// none +break; +} + +}; + diff --git a/keyboards/ergodox_ez/keymaps/osx_de/osx_de_highres.png b/keyboards/ergodox_ez/keymaps/osx_de/osx_de_highres.png new file mode 100644 index 000000000..d442a992c Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/osx_de/osx_de_highres.png differ diff --git a/keyboards/ergodox_ez/keymaps/osx_de/readme.md b/keyboards/ergodox_ez/keymaps/osx_de/readme.md new file mode 100644 index 000000000..5011a9dd6 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/osx_de/readme.md @@ -0,0 +1,41 @@ +#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 ist jetzt auf der rechten seite, neben Enter. Dafür hat der linke Daumen nun Backspace und Delete. +- die CMD- und Alt-Tasten sind in der Mitte einfach erreichbar. +- es gibt eine neue Layer die für Spiele genutzt werden kann (egosooter wie Counter Strike). Dort liegen die wichtigsten Tasten auf der linken Seite, im Daumenblock z.B. space und ctrl sowie die F-Tasten 1-4. Diese Layer ist über die Symbollayer erreichbar. +- 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 + +# Erstellt Mit Dem ErgodoxLayoutGenerator + +Der ErgodoxLayoutGenerator ist ein kleines Werkzeug, welches die Erstellung und Pflege der eigenen Keymaps erleichtern soll. Es ist in java geschrieben und kann [hier](https://github.com/sboesebeck/ErgodoxLayoutGenerator/releases) heruntergeladen werden. Damit das Tool funktioniert sollte das offizielle Oracle JDK in aktueller Version installiert sein. +Die Dokumentation für den ELG kann man [hier](https://boesebeck.name/2016/04/16/ergodoxlayoutgenerator-documentation/) nachlesen (momentan leider nur in Englisch verfügbar). + + + +------------------------------ + +# 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 + +# Created Using the ErgodoxLayoutGenerator + +The ErgodoxLayoutGenerator (ELG) is a little tool, which makes the creation and maintenance of keycaps a lot easier. It was written in Java and can be downloaded [here](https://github.com/sboesebeck/ErgodoxLayoutGenerator/releases). To use the tool, you need to have a current version of Oracles JDK installed. + +The documentation of the ELG can be viewed [here](https://boesebeck.name/2016/04/16/ergodoxlayoutgenerator-documentation/). + diff --git a/keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/compiled.hex b/keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/compiled.hex new file mode 100644 index 000000000..3351a628f --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/compiled.hex @@ -0,0 +1,1152 @@ +:100000000C9421030C9465030C9465030C94650314 +:100010000C9465030C9465030C9465030C946503C0 +:100020000C9465030C9465030C94850E0C94570F87 +:100030000C9465030C9465030C9465030C946503A0 +:100040000C9465030C9411220C9465030C946503C5 +:100050000C9465030C94F31C0C9465030C946503D9 +:100060000C9465030C9465030C9465030C94650370 +:100070000C9465030C9465030C9465030C94650360 +:100080000C9465030C9465030C9465030C94650350 +:100090000C9465030C9465030C9465030C94650340 +:1000A0000C9465030C9465030C946503C40FE60F70 +:1000B000D410E60FD4102B104E10D410A310B6108D +:1000C00085138513B413B413EA130A143B153B15B7 +:1000D00015143B15C514C5142C153B153B153515CA +:1000E000D214D214D214D214D214D214D214D214E0 +:1000F000D214D214D214D214D214D214D214D214D0 +:10010000E414F114F814FF14091529002B0003530B +:10011000E100354100001E000E000B001B61640071 +:100120004D001F00370004001400E1044C002000C3 +:1001300012000800340050002A00210036000C0094 +:100140002F004F004A0022001D001800330000005D +:100150000253E000E3000000E20000002E67E4002C +:10016000E7000000E60000002E6F230019000700E2 +:1001700005000000045324000A0017001300520079 +:100180004B002500060015001A0051002C00260027 +:100190000F0011001000E108280027002D001600B4 +:1001A0000D6130004E0038001C000942E50031416D +:1001B00000000100010001000100010000003A0000 +:1001C000350031000100010001003B003502210231 +:1001D000640001004C003C001E02240622020100C3 +:1001E00001003D002D0224022404010001003E0014 +:1001F00001003700110400000100010001000000AF +:1002000001000000010001000100000001000000E9 +:1002100001003F00240624022302000001004000E8 +:1002200022042502350001000100410023042602BA +:100230003502370001004200240425041F021E027B +:100240000100430031002604310201000100440096 +:10025000450001002D020100000001000100010025 +:10026000010001000000010001000100FB0001008D +:10027000010001000100F200F9000100010001008D +:10028000F000F100FA00F400010001000100F300A9 +:10029000FC00F5000100010001000100F600000073 +:1002A0000100010001000000010000000100010048 +:1002B0000100000001000000010001000100010038 +:1002C000010000000100010001000100A800A900D8 +:1002D0000100010001000100AC00AA00B60001000D +:1002E00001000100AB00500001000100010001000D +:1002F000520051000100AE000100010001004F005A +:10030000000029002B000100E100354100001E0023 +:10031000140004001D6164004D001F001A00160047 +:100320001B00E1044C0020000800070006005000FC +:100330002A0021001500090019004F004A00220080 +:1003400017000A000500000001001908E300000082 +:10035000E20000002E670608E7000000E60000004B +:100360002E6F23001C000B00110000000100240070 +:1003700018000D00100052004B0025000C000E006C +:10038000360051002C00260012000F003700E10853 +:100390002800270013003300386130004E002D0084 +:1003A0002F003442E500314100000100010001004E +:1003B0000100010000000100010001000100010036 +:1003C00001000100010050000100010001000100D6 +:1003D00052005100010001000100010001004F0026 +:1003E0000100010001000100010001000100000006 +:1003F00001000100010000000100000001000100F7 +:10040000010000000100000001003F005200510007 +:100410002302000001004000240021001E002700EC +:1004200001004100250022001F00370001004200AA +:100430002600230020002700010043003002300086 +:1004400024022E00010044004500010001000100CB +:10045000000016034500720067006F0044006F0043 +:100460007800200045005A00000016034500720085 +:1004700067006F0044006F007800200045005A00BC +:1004800000000403090409026D00040100A0FA0938 +:1004900004000001030101000921110100012240B3 +:1004A000000705810308000A090401000103010295 +:1004B00000092111010001224D00070582030800F7 +:1004C0000A090402000103000000092111010001D2 +:1004D0002236000705830308000A0904030001030C +:1004E00000000009211101000122390007058403E1 +:1004F0001000011201100100000008EDFE071301B9 +:10050000000102000105010906A101050719E02902 +:10051000E7150025019508750181020508190129D3 +:10052000059505750191029501750391010507195E +:1005300000297715002501957875018102C0050114 +:100540000980A101850216010026B7001A01002AC0 +:10055000B700751095018100C0050C0901A1018546 +:1005600003160100269C021A01002A9C02751095B0 +:10057000018100C005010902A1010901A1000509CD +:1005800019012905150025019505750181029501BF +:10059000750381010501093009311581257F950217 +:1005A0007508810609381581257F95017508810632 +:1005B000050C0A38021581257F950175088106C052 +:1005C000C005010906A101050719E029E715002565 +:1005D00001950875018102950175088101050819C9 +:1005E0000129059505750191029501750391010594 +:1005F00007190029FF150026FF00950675088100E0 +:10060000C00000000000000000000000010204061D +:100610000A0F17202C3A4A5D71879DB3C7DAE9F5B6 +:10062000FCFFFCF5E9DAC7B39D87715D4A3A2C20DF +:10063000170F0A060402010000000000000000007D +:10064000000011241FBECFEFDAE0DEBFCDBF04B63D +:1006500003FE24C08091FD019091FE01A091FF0155 +:10066000B09100028730904BA740B04BB9F4109284 +:10067000FD011092FE011092FF011092000214BEC3 +:1006800084B7877F84BF88E10FB6F89480936000B9 +:10069000109260000FBEE0E0FFE3099511E0A0E0DA +:1006A000B1E0E0EBF7E402C005900D92A433B1078E +:1006B000D9F711E0A4E3B1E001C01D92AD3FB1074D +:1006C000E1F70E94CD0B0C94D6230C9400001092FD +:1006D000B9008AE08093B800089594EA9093BC0032 +:1006E0009091BC0097FFFCCF9091B900987F983013 +:1006F00021F0903111F081E008958093BB0084E8EF +:100700008093BC008091BC0087FFFCCF8091B90032 +:10071000887F883111F0803471F780E0089584E992 +:100720008093BC008091BC0084FDFCCF0895809331 +:10073000BB0084E88093BC008091BC0087FFFCCFA5 +:100740009091B900987F81E0983209F480E0089593 +:1007500084E88093BC008091BC0087FFFCCF80912F +:10076000BB00089580B38C7080BB81B3836F81BB65 +:10077000089580910101811115C080E40E946D03EC +:100780008093010181110CC082E10E949703809344 +:100790000101811105C08FEF0E9497038093010131 +:1007A0000E948F0384B1807F84B985B1807F85B931 +:1007B0008AB1837F8AB98BB1837F8BB93E98469883 +:1007C00008950E948305809301010E94B9030E944D +:1007D000B203A5E3B1E0E3E4F1E08EE08E0F119205 +:1007E0001D928E13FCCF0C946D050E94830580939F +:1007F00001010E94B9030E94B203A5E3B1E0E3E462 +:10080000F1E08EE08E0F11921D928E13FCCF0895B1 +:10081000BF92CF92DF92EF92FF920F931F93CF93ED +:10082000DF9380910101882379F0809134018F5FFB +:1008300080933401811108C00E94830580930101D7 +:10084000811102C00E94150505E311E0C0E0D0E06F +:10085000DD24D39482E0C82EEE24E394F12CC7303B +:10086000D10500F580910101811164C080E40E94EE +:100870006D0380930101811112C082E10E949703F0 +:100880008093010181110BC0C7010C2E01C0880F9C +:100890000A94EAF780950E949703809301010E94D1 +:1008A0008F0348C0CA30A1F028F4C83059F0C930CD +:1008B00061F005C0CC3089F070F0CD3089F0209A1D +:1008C000289810C0219A29980DC0229A2A980AC007 +:1008D000239A2B9807C0529A01C0539A5B9802C082 +:1008E0003E9A469890EA9A95F1F79FB1799902C09D +:1008F00082E001C080E091709D25982B7C9902C018 +:1009000084E001C080E0892B7D9902C038E001C0FD +:1009100030E0832B7E9902C020E101C020E0822BD1 +:100920009FB19095991F9927991F9295990F907E45 +:10093000892B0FC080910101811149C080E40E9480 +:100940006D0380930101882379F1B12C0E948F03FC +:100950008B2DF8019081981719F08083C0920001C7 +:100960000E94B90321960F5F1F4FCE30D10509F0C9 +:1009700076CF80910001882361F18150809300013E +:10098000882339F08FE99FE00197F1F700C000005C +:1009900020C0A3E4B1E0E5E3F1E0CF01825F9191F3 +:1009A0009D938E13FCCF15C083E10E949703809323 +:1009B00001018111CACF81E40E946D03809301017E +:1009C0008111C3CF0E94A803B82EB094BFCF80E09E +:1009D000C0CF0E94130581E0DF91CF911F910F914D +:1009E000FF90EF90DF90CF90BF900895E82FF0E058 +:1009F000ED5BFE4F8081089508950F931F93CF9371 +:100A0000DF93C3E4D1E010E00C2F025F899190E006 +:100A10000E941A1C180F0C13F9CF812FDF91CF9170 +:100A20001F910F9108950C94E30556985E982598B0 +:100A30002D9826982E9827982F988FEF90E09093D6 +:100A400089008093880090938B0080938A00909314 +:100A50008D0080938C00259A2D9A2FEF80E792E0ED +:100A6000215080409040E1F700C00000269A2E9A65 +:100A70002FEF80E792E0215080409040E1F700C0E6 +:100A80000000279A2F9A2FEF80E792E021508040B4 +:100A90009040E1F700C0000025982D982FEF80E7E7 +:100AA00092E0215080409040E1F700C0000026987D +:100AB0002E982FEF80E792E0215080409040E1F7A0 +:100AC00000C0000027982F9856985E9825982D987A +:100AD00026982E9827982F98089589EA8093800069 +:100AE00089E08093810024982C983F988AB18F7474 +:100AF0008AB96E98479A8BB1806B8BB9769A0E94AF +:100B000015050C94E20580E280930101809151016A +:100B100081110EC00E94670381E0809351012FEF85 +:100B200083ED90E3215080409040E1F700C0000049 +:100B300080E40E946D038093010181112EC00E9408 +:100B4000970380930101811128C00E94970380932D +:100B50000101811122C08FE30E949703809301015C +:100B600081111BC00E948F0380E40E946D0380935B +:100B70000101811112C08CE00E9497038093010152 +:100B800081110BC00E94970380930101811105C060 +:100B90008FE30E949703809301010E948F0380914D +:100BA0000101089561110BC0FC018281882321F0AD +:100BB00085EE0E94291203C085EE0E94F11280E0AA +:100BC00090E0089508956091BE017091BF018091F9 +:100BD000C0019091C1010E94261C56985E982598EC +:100BE0002D9826982E9827982F98089581E008959B +:100BF00081E008950C94F8050895282F882339F092 +:100C000090E02A3010F44D9608950697089587E2F3 +:100C100090E00895AF92BF92DF92EF92FF920F9310 +:100C20001F93CF93DF938C01FC01C081D181CE0152 +:100C30000E949F1ABE010E947A09EC01B8010E942D +:100C4000FA05882309F4C9C1F8018281882309F4CF +:100C5000BEC080915E0181111FC0C431F0E7DF0783 +:100C600009F0B5C10E94FC0581E080935E010E94FD +:100C7000BD1C90935D0180935C0110925501109210 +:100C8000570110925601109259011092580110927A +:100C90005B0110925A01A1C180915C0190915D01AC +:100CA0000E94C91C883C910570F480915501E82F81 +:100CB000F0E0EE0FFF1FEA5AFE4FD183C0838F5F33 +:100CC000809355018AC1C13020E8D20708F451C091 +:100CD000F8018281882309F47EC05E01E894B7F8A8 +:100CE00080915401813079F050F08230C1F482EE6D +:100CF0000E94291287E50E94291287E50EC082EE24 +:100D00000E9429120CC080EE0E94291281EE0E94DE +:100D1000291288E10E94291288E10E94F1128CE0D8 +:100D2000E82EF12CC5010E2C02C0969587950A94E9 +:100D3000E2F78F700E94FD05D82E0E9429128D2D9A +:100D40000E94F112F4E0EF1AF1082CEFE2162FEFF7 +:100D5000F20641F780915401813029F010F0823081 +:100D600041F482EE04C080EE0E94F11281EE0E94F6 +:100D7000F112C43180E7D80768F4C23090E7D90790 +:100D800008F046C0C115E0E7DE0771F0C130D0477A +:100D9000A1F10CC1C33320E7D20709F4D8C0C43392 +:100DA000D04709F4EBC002C1F8018281882309F41D +:100DB00002C10E94A615FFEF24E38CE0F150204011 +:100DC0008040E1F700C000000E94181D06C1C1303C +:100DD00080E8D80770F2C43120E7D20708F0B3C02A +:100DE000C23080E7D807A0F4C11590E7D90709F40D +:100DF000E2C0C130D04709F0D9C0F8018281882310 +:100E000009F4D9C08091DB0181608093DB01E5C0EA +:100E1000F8018281882309F4CEC00E94721D8111DD +:100E200002C00E94581D0E94851D90E09093EF0122 +:100E30008093EE01C230F0E7DF0721F48091EE01EC +:100E400081607AC0C33020E7D20721F48091EE019F +:100E5000826072C0C43080E7D80721F48091EE012F +:100E600084606AC0C53090E7D90719F48091EE011B +:100E700027C0C630E0E7DE0721F48091EE018061F3 +:100E80005BC0C730F0E7DF0721F48091EE0180629C +:100E900053C0C83020E7D20721F48091EE0180646E +:100EA0004BC0C93080E7D80721F48091EE018068FB +:100EB00043C0CA3090E7D90729F48091EE018460DD +:100EC00088603AC0CB30E0E7DE0721F48091EE0184 +:100ED0008E7F32C0CC30F0E7DF0721F48091EE0145 +:100EE0008D7F2AC0CD3020E7D20721F48091EE011A +:100EF0008B7F22C0CE3080E7D80719F48091EE01B5 +:100F00001AC08091EE01CF3090E7D90711F48F7E9F +:100F100013C0C031E0E7DE0711F48F7D0DC0C13191 +:100F2000F0E7DF0711F48F7B07C0C231D04711F41F +:100F30008F7702C08B7F877F8093EE018091EE01D7 +:100F40000E94891D4AC0C333F0E7DF07A1F4F8010E +:100F50008281882321F01092520182E016C0809194 +:100F60005201811106C086E20E94291286E20E9487 +:100F7000F11282E018C0C433D047C1F4F801828175 +:100F8000882331F01092530180E20E94401325C063 +:100F900080915301811106C087E20E94291287E2E5 +:100FA0000E94F11280E20E94471317C081E08093F3 +:100FB000520180935301C801DF91CF911F910F918E +:100FC000FF90EF90DF90BF90AF900C94F605C1308A +:100FD000F0E8DF0708F081CECCCE80E0DF91CF9142 +:100FE0001F910F91FF90EF90DF90BF90AF90089509 +:100FF00026E0729FF001112444E5849FE00DF11D6D +:101000001124E60FF11DEE0FFF1FE65FFE4F8591E5 +:1010100094910E948C09811560E49607B0F58115C2 +:1010200070E3970708F0DEC0803E9105D8F4803C5D +:10103000910508F06CC0883A910578F4853A9105DD +:1010400008F06BC08130910509F452C108F40FC15A +:101050008430910508F04CC10AC18B3B910508F41E +:1010600067C005C18F3F910509F048F4803F9105A5 +:1010700008F0ADC0883E910508F43AC1F8C081156A +:1010800020E2920708F0A5C00895811543E5940772 +:1010900090F4811562E5960708F0C8C0811571E5E6 +:1010A000970708F0BEC0811520E5920708F09DC0A3 +:1010B0009F70906A0895811545E59407D8F48115CD +:1010C00064E5960708F0C8C0482F4695469570E23B +:1010D000479FA00111248370992721E030E0B901D6 +:1010E00002C0660F771F8A95E2F7CB01842B952B00 +:1010F0009A680895811576E5970708F4B2C09C01B7 +:1011000030562115304108F0B2C09F70AEC0FC01CE +:10111000EE0FFF1FE657F04062C0853A910509F4D3 +:10112000A9C0863A910509F0A8C082E890E4089524 +:10113000883A910509F4A4C0893A910509F4A3C03D +:101140008A3A910509F4A2C08B3A910509F4A1C02D +:101150008C3A910509F4A0C08D3A910509F49FC01D +:10116000803B910509F49EC08E3A910509F49DC01B +:101170008F3A910509F49CC0813B910509F49BC00D +:10118000823B910509F49AC0833B910509F499C00B +:10119000843B910509F498C0853B910509F497C0FB +:1011A000863B910509F496C0873B910509F495C0EB +:1011B000883B910509F494C0893B910509F493C0DB +:1011C0008A3B910509F492C080E094E4089590650B +:1011D0000895FC01FF70EE0FFF1FE65FFE4F859143 +:1011E000949108959927906C0895482F437021E0B9 +:1011F00030E002C0220F331F4A95E2F73C68AC0191 +:1012000064E0569547956A95E1F74370342B8F70EB +:101210008695869560E2869FC0011124822B932BD0 +:101220000895982F8827816F906A0895482F4695D2 +:10123000469570E2479FA00111248370992721E011 +:1012400030E0B90102C0660F771F8A95E2F7CB0143 +:10125000842B952B9C680895982F8827846F906A1B +:1012600008958F719927982F88279062089580E0BC +:1012700090E0089581E890E4089583E890E408956B +:1012800082EE94E4089589EE94E408958AEE94E45D +:10129000089585EB94E4089586EB94E4089587EB34 +:1012A00094E408958CEC94E408958DEC94E408950E +:1012B00083E895E408958AE895E4089582E995E441 +:1012C000089584E995E4089581E296E4089583E21F +:1012D00096E4089584E296E4089585E296E40895FC +:1012E00086E296E4089587E296E408958AE296E419 +:1012F0000895089596E0799FF001112494E5899F5F +:10130000E00DF11D1124E60FF11DEE0FFF1FE65F4A +:10131000FE4F8591949108958238910549F1B0F47A +:101320008133910509F458C048F48932910509F4D4 +:101330004EC08A32910509F454C008958533910551 +:1013400009F440C08933910599F00895833E9105D1 +:1013500029F138F4803E910591F0823E9105A1F08B +:101360000895863E9105F9F0873E910531F1089583 +:101370002091EE0120FD3AC021FD38C008958091F2 +:10138000EE0180FD35C032C08091EE0182FF32C097 +:101390008091EE0184FD30C083EE39C08091EE0172 +:1013A00082FD28C0F5CF8091EE0183FF27C0809198 +:1013B000EE0184FD21C087EE2AC08091EE0183FDFD +:1013C0001DC0F5CF8091EE0185FD1AC01BC0809134 +:1013D000EE0185FD17C014C08091EE0186FD14C09A +:1013E00015C08091EE0186FD11C00EC080EE0FC0C9 +:1013F00089E30DC082EE0BC080E009C086EE07C015 +:1014000089E205C085E303C08AE201C081E390E080 +:10141000089508950C94090A80916F010895CF935F +:10142000DF9300D01F92CDB7DEB79C018091F4010D +:10143000843019F593E099833B832A839093E900E4 +:101440008FEF9091E800815095FD06C095ED9A953B +:10145000F1F700008111F5CF8091E80085FF0DC004 +:1014600040E050E063E070E0CE0101960E94750C10 +:101470008091E8008E778093E8000F900F900F9096 +:10148000DF91CF910895CF93DF9300D01F92CDB716 +:10149000DEB72091F401243021F522E029839B83DB +:1014A0008A8383E08093E9008FEF9091E800815078 +:1014B00095FD06C095ED9A95F1F700008111F5CFE5 +:1014C0008091E80085FF0DC040E050E063E070E0EF +:1014D000CE0101960E94750C8091E8008E77809372 +:1014E000E8000F900F900F90DF91CF910895209119 +:1014F000F4012430F1F422E02093E9002FEF309141 +:10150000E800215035FD06C035ED3A95F1F70000B1 +:101510002111F5CF2091E80025FF0BC040E050E0FD +:1015200065E070E00E94750C8091E8008E778093F2 +:10153000E8000895CF93DF93EC019091F40194308B +:1015400009F046C080910C018823D9F080910D01EB +:101550008823B9F09093E9008FEF9091E8008150D3 +:1015600095FD06C095E19A95F1F700008111F5CF40 +:101570008091E80085FF2CC040E050E060E170E021 +:1015800017C081E08093E9008FEF9091E8008150CF +:1015900095FD06C095ED9A95F1F700008111F5CF04 +:1015A0008091E80085FF14C040E050E068E070E002 +:1015B000CE010E94750C8091E8008E778093E80040 +:1015C00080E1FE01AFE5B1E001900D928A95E1F76F +:1015D000DF91CF9108958091F301811109C00E949C +:1015E0000A0E0E94670E8091E20084608093E20000 +:1015F00008951092F301089508950C94FE210E941D +:10160000AE1C0E9404220E940D110C940A0A42E0B2 +:1016100061EC81E00E94840D42E061EC82E00E9476 +:10162000840D42E061EC83E00E94840D42E161ECB4 +:1016300084E00C94840D8091F601833009F455C048 +:1016400030F4813071F0823009F48EC008958A3010 +:1016500009F47AC08B3009F460C0893009F09CC06D +:1016600020C08091F501813A09F096C08091E80090 +:10167000877F8093E8008091F9019091FA01892B8E +:1016800021F460E18FE591E003C060E080E090E04C +:1016900070E00E94C00C8091E8008B778093E80096 +:1016A00008958091F501813209F076C08091F901A9 +:1016B0009091FA01009719F0039709F06DC080919D +:1016C000E800877F8093E8008091E80082FD05C0F4 +:1016D0008091F4018111F8CF5FC08091F100809377 +:1016E0006F018091E8008B7753C08091F501813ABA +:1016F00009F052C08091F9019091FA01892B09F00B +:101700004BC08091E800877F8093E8008091E800DB +:1017100080FFFCCF80910C0136C08091F5018132B1 +:10172000D9F58091F9019091FA01892BA9F5809161 +:10173000E800877F8093E8000E94B90D8091F7014F +:1017400080930C010C94A6158091F501813221F54E +:101750008091E800877F8093E8000E94B90D809116 +:10176000F8018093700108958091F501813AA1F408 +:101770008091E800877F8093E8008091E80080FFF7 +:10178000FCCF809170018093F1008091E8008E770A +:101790008093E8000C94B90D089584B7877F84BFC7 +:1017A00088E10FB6F89480936000109260000FBE3D +:1017B00080E880936100109261000E945C110E9499 +:1017C0000A0E0E94670E8091E20084608093E2001E +:1017D00078940E94ED100E945E1182E091E00E94D8 +:1017E00008110E94EC218091F401853069F40E9477 +:1017F000761C8091F2018823B1F30E94A01C8823FB +:1018000091F30E945F0CEFCF0E946411ECCF292F5F +:10181000332723303105C9F064F42130310581F0DC +:101820002230310509F043C08DE690E026E834E02F +:1018300042C021323105F1F02232310541F137C089 +:1018400082E190E023EF34E036C0992781309105A2 +:1018500041F08230910541F0892B49F5E2E8F4E04E +:1018600005C0EAE6F4E002C0E2E5F4E0849190E02D +:101870009F0121C06430D8F4E62FF0E0EE0FFF1F87 +:10188000EE5DFE4F2081318189E090E014C064302C +:1018900070F470E0FB01EE0FFF1FE65EFE4F20814B +:1018A0003181FB01EA5EFE4F808190E004C080E060 +:1018B00090E020E030E0FA0131832083089580E158 +:1018C00089BD82E189BD09B400FEFDCF8091D800B9 +:1018D0008F7D8093D8008091E00082608093E0004B +:1018E0008091E00081FDFCCF0895CF92DF92EF92CE +:1018F000FF920F931F93CF93DF93EC018B016A014B +:101900000E94D80D811133C0C114D10439F0F60101 +:1019100080819181081B190BC80FD91FE12CF12C74 +:101920000115110519F18091E80085FD16C080911F +:10193000E8008E778093E800C114D10449F0F601E5 +:1019400080819181E80EF91EF182E08285E00FC06E +:101950000E94D80D882321F30AC089918093F10059 +:1019600001501109FFEFEF1AFF0ADACF80E0DF9193 +:10197000CF911F910F91FF90EF90DF90CF9008953E +:101980002091FB013091FC012617370748F06115C3 +:10199000710539F42091E8002E772093E80001C00A +:1019A000B90140E061157105A9F12091F4012223EC +:1019B00009F443C0253009F442C02091E80023FD1A +:1019C00040C02091E80022FD32C02091E80020FFB5 +:1019D000E9CF4091F3002091F20030E0342BFC017C +:1019E000CF016115710559F02830310540F481911E +:1019F0008093F100615071092F5F3F4FF1CF41E0BB +:101A00002830310509F040E02091E8002E7720933E +:101A1000E800C8CF4111C9CF0AC08091F4018823E2 +:101A200061F0853061F08091E80083FD0AC080910B +:101A3000E80082FFF2CF80E0089582E0089583E01D +:101A4000089581E008952091FB013091FC01261753 +:101A5000370748F06115710539F42091E8002E77B9 +:101A60002093E80001C0B901FC0120E06115710577 +:101A700091F18091F401882309F440C0853009F484 +:101A80003FC08091E80083FD3DC08091E80082FD69 +:101A90002FC08091E80080FFE9CF2091F300809172 +:101AA000F20090E0922B6115710559F08830910594 +:101AB00040F424912093F100319661507109019610 +:101AC000F2CF21E0089709F020E08091E8008E77BE +:101AD0008093E800CBCF2111CCCF0AC08091F401D4 +:101AE000882361F0853061F08091E80083FD0AC0B1 +:101AF0008091E80082FFF2CF80E0089582E00895AF +:101B000083E0089581E00895982F973058F59093D9 +:101B1000E900981739F07091EC002091ED00509198 +:101B2000F00003C0242F762F50E021FF19C0309120 +:101B3000EB003E7F3093EB003091ED003D7F309322 +:101B4000ED003091EB0031603093EB007093EC00CE +:101B50002093ED005093F0002091EE0027FF07C086 +:101B60009F5FD3CF8F708093E90081E0089580E07C +:101B700008958091F50187FF11C08091E80082FDF2 +:101B800005C08091F4018111F8CF11C08091E80067 +:101B90008B770BC08091F401882349F08091E80095 +:101BA00080FFF8CF8091E8008E778093E800089559 +:101BB0002091E4003091E50095E64091EC00842FFF +:101BC000817040FF22C08091E80080FD1CC08091A0 +:101BD000F401882391F0853091F08091EB0085FD30 +:101BE00010C04091E4005091E5004217530729F3DB +:101BF0009A01915011F784E0089582E0089583E0FE +:101C0000089581E0089580E008954091E80042FF42 +:101C1000DECF08950E94780E0E94800EE0EEF0E084 +:101C2000808181608083E8EDF0E080818F77808320 +:101C300019BCA7EDB0E08C918E7F8C9380818F7E54 +:101C400080831092F30108950F931F93CF93DF9336 +:101C50000E94780E0E94800EC8EDD0E088818F77B8 +:101C6000888388818068888388818F7D888319BC78 +:101C70001092F4011092F0011092F2011092F10111 +:101C800000EE10E0F80180818B7F80838881816085 +:101C9000888342E060E080E00E94840DE1EEF0E0A5 +:101CA00080818E7F8083E2EEF0E08081816080839E +:101CB000808188608083F80180818E7F8083888125 +:101CC00080618883DF91CF911F910F910895E8ED96 +:101CD000F0E080818F7E8083E7EDF0E0808181609D +:101CE000808384E082BF81E08093F3010C94240E12 +:101CF000E8EDF0E080818E7F80831092E20008950D +:101D00001092DA001092E10008951F920F920FB620 +:101D10000F9211242F933F934F935F936F937F9371 +:101D20008F939F93AF93BF93EF93FF938091E100C5 +:101D300082FF0BC08091E20082FF07C08091E1002A +:101D40008B7F8093E1000E94EC108091DA0080FF8D +:101D50001FC08091D80080FF1BC08091DA008E7F69 +:101D60008093DA008091D90080FF0DC080E189BDA9 +:101D700082E189BD09B400FEFDCF81E08093F401CA +:101D80000E94EB0A05C019BC1092F4010E94F90AE6 +:101D90008091E10080FF19C08091E20080FF15C0B2 +:101DA0008091E2008E7F8093E2008091E20080616A +:101DB0008093E2008091D80080628093D80019BCA3 +:101DC00085E08093F4010E94FD0A8091E10084FF88 +:101DD00030C08091E20084FF2CC080E189BD82E1A7 +:101DE00089BD09B400FEFDCF8091D8008F7D80931E +:101DF000D8008091E1008F7E8093E1008091E20025 +:101E00008F7E8093E2008091E20081608093E20007 +:101E10008091F001882311F084E007C08091E300F5 +:101E200087FD02C081E001C083E08093F4010E943D +:101E3000FF0A8091E10083FF29C08091E20083FFC7 +:101E400025C08091E100877F8093E10082E080934C +:101E5000F4011092F0018091E1008E7F8093E10007 +:101E60008091E2008E7F8093E2008091E2008061A9 +:101E70008093E20042E060E080E00E94840D809167 +:101E8000F00088608093F0000E94FC0AFF91EF91BF +:101E9000BF91AF919F918F917F916F915F914F9182 +:101EA0003F912F910F900FBE0F901F9018951F928A +:101EB0000F920FB60F9211242F933F934F935F937E +:101EC0006F937F938F939F93AF93BF93CF93DF9342 +:101ED000EF93FF93C091E900CF708091EC00D82F71 +:101EE000D17080FDD0E81092E9008091F000877FEA +:101EF0008093F00078940E949B0F1092E9008091EB +:101F0000F00088608093F000CD2BCF70C093E90083 +:101F1000FF91EF91DF91CF91BF91AF919F918F9101 +:101F20007F916F915F914F913F912F910F900FBED5 +:101F30000F901F9018951F93CF93DF93CDB7DEB707 +:101F4000AA970FB6F894DEBF0FBECDBFE5EFF1E064 +:101F500088E08E0F9091F10091938E13FBCF0E9439 +:101F60001B0B8091E80083FF1FC18091F5019091C8 +:101F7000F601492F50E04A30510508F015C1FA0129 +:101F8000EA5AFF4F0C948623803881F0823809F09A +:101F90000BC18091F9018F708093E9008091EB0073 +:101FA00085FB882780F91092E90006C08091F10135 +:101FB0009091F201911182609091E800977F909347 +:101FC000E8008093F1001092F100C8C0282F2D7F07 +:101FD00009F0EAC0882319F0823061F0E5C08091F1 +:101FE000F701813009F0E0C0933009F080E0809380 +:101FF000F2012BC08091F701811127C08091F90176 +:102000008F7009F4D1C08093E9002091EB0020FF8C +:102010001CC0933021F48091EB00806214C0909139 +:10202000EB0090619093EB0021E030E0A90102C049 +:10203000440F551F8A95E2F74093EA001092EA0098 +:102040008091EB0088608093EB001092E900809112 +:10205000E800877F86C08111A7C01091F7011F7724 +:102060008091E3008078812B8093E3008091E800E9 +:10207000877F8093E8000E94B90D8091E80080FF7F +:10208000FCCF8091E30080688093E300111102C0CF +:1020900082E001C083E08093F40186C080588230E2 +:1020A00008F082C08091F7019091F8018C3D53E0D7 +:1020B000950779F583E08A838AE289834FB7F8949C +:1020C000DE01139620E03EE051E2E32FF0E0509372 +:1020D0005700E49120FF03C0E295EF703F5FEF707F +:1020E0008E2F90E0EA3010F0C79601C0C0968D9315 +:1020F0009D932F5F243149F74FBF8091E800877F80 +:102100008093E8006AE270E0CE0101960E94C00C64 +:1021100014C0AE014F5F5F4F6091F9010E94070C40 +:10212000BC01009709F440C09091E800977F90931C +:10213000E80089819A810E94230D8091E8008B77C5 +:102140008093E80031C0803879F58091E800877F7E +:102150008093E8008091F0018093F1008091E80085 +:102160008E778093E8000E94B90D1EC081111CC0BB +:102170009091F7019230C0F48091E800877F8093BE +:10218000E8009093F0010E94B90D8091F001811157 +:1021900006C08091E30087FD02C081E001C084E0B9 +:1021A0008093F4010E94070B8091E80083FF0AC02E +:1021B0008091E800877F8093E8008091EB00806247 +:1021C0008093EB00AA960FB6F894DEBF0FBECDBF8A +:1021D000DF91CF911F9108950895CF938091F401DD +:1021E0008823A1F0C091E900CF709091EC00892F75 +:1021F000817090FD80E8C82B1092E9008091E80082 +:1022000083FD0E949B0FCF70C093E900CF9108958A +:1022100090937601809375010895E0917501F09196 +:102220007601309721F00190F081E02D099480E053 +:102230000895E0917501F0917601309721F00280C8 +:10224000F381E02D09940895E0917501F0917601F4 +:10225000309721F00480F581E02D099408952091B4 +:102260007301309174018217930771F09093740198 +:1022700080937301E0917501F0917601309721F020 +:102280000680F781E02D0994089520917101309125 +:1022900072018217930771F090937201809371011C +:1022A000E0917501F0917601309721F00084F1857D +:1022B000E02D0994089508950C945B110E94B41CBC +:1022C0000E94E1030C943A1D9F92AF92BF92CF926D +:1022D000DF92EF92FF920F931F93CF93DF9300D083 +:1022E00000D000D0CDB7DEB70E9408040DE010E0AA +:1022F000AA24A394B12C902E802F0E94F60498015A +:1023000028583E4F6901F901F080F826A1F40150E8 +:10231000110988F78FEF89838A831B820E94BD1C75 +:102320008160782F9D838C8349815A816B818D8157 +:102330000E94FB112FC09091DB0191FF04C08E839E +:102340000E94FC048E8125E030E0A501022E01C030 +:10235000440F0A94EAF7E42E4F21C1F029839A82B0 +:102360008E2191E009F490E09B830E94BD1C816066 +:10237000782F9D838C8349815A816B818D810E9446 +:10238000FB11F6018081E826E08204C0215031096A +:10239000E0F6BDCF0E94081F109177010E940D1139 +:1023A0001817B9F00E940D118093770126960FB689 +:1023B000F894DEBF0FBECDBFDF91CF911F910F917B +:1023C000FF90EF90DF90CF90BF90AF909F900C94D4 +:1023D0000A0A26960FB6F894DEBF0FBECDBFDF9176 +:1023E000CF911F910F91FF90EF90DF90CF90BF9012 +:1023F000AF909F900895CF93DF93CDB7DEB72B9723 +:102400000FB6F894DEBF0FBECDBF4F8358876987E4 +:102410007A878B87DE01119686E0FD0111928A95FD +:10242000E9F785E0FE01379601900D928A95E1F774 +:1024300049815A816B817C818D819E810E944418E3 +:102440002B960FB6F894DEBF0FBECDBFDF91CF91B4 +:102450000895CF93882309F4C2C0C82F823859F455 +:102460000E940D1181FDBBC089E30E941E1B0E94CA +:10247000EB1B89E30CC0833879F40E940D1180FDB9 +:10248000AEC083E50E941E1B0E94EB1B83E50E94E9 +:10249000601BCF910C94EB1B843859F40E940D11F2 +:1024A00082FD9DC087E40E941E1B0E94EB1B87E4F7 +:1024B000EECF8CEF8C0F813A48F48C2F0E94522182 +:1024C00081118DC08C2F0E941E1BE3CF80E28C0FE8 +:1024D000883048F4C77081E001C0880FCA95EAF7D8 +:1024E0000E94A41BD6CF8BE58C0F833078F4C53ABD +:1024F00029F0C63A31F083E890E005C081E890E029 +:1025000002C082E890E0CF910C942F1188E58C0FE7 +:10251000833108F064C0C83A39F1C93A41F1CA3A86 +:1025200049F1CB3A51F1CC3A59F1CD3A61F1C03B86 +:1025300069F1CE3A71F1CF3A79F1C13B81F1C23BF9 +:1025400089F1C33B91F1C43B99F1C53BA1F1C63B75 +:10255000A9F1C73BB1F1C83BB9F1C93BC1F1CA3BD5 +:10256000C9F180E090E038C082EE90E035C089EE9D +:1025700090E032C08AEE90E02FC085EB90E02CC056 +:1025800086EB90E029C087EB90E026C08CEC90E0D1 +:1025900023C08DEC90E020C083E891E01DC08AE864 +:1025A00091E01AC082E991E017C084E991E014C07B +:1025B00081E292E011C083E292E00EC084E292E0F8 +:1025C0000BC085E292E008C086E292E005C087E297 +:1025D00092E002C08AE292E0CF910C944511CF9133 +:1025E0000895882309F44BC0823859F40E940D11D4 +:1025F00081FF45C089E30E941E1B0E94EB1B89E3FB +:102600000CC0833871F40E940D1180FF38C083E53F +:102610000E941E1B0E94EB1B83E50E94601B0C9412 +:10262000EB1B843859F40E940D1182FF28C087E407 +:102630000E941E1B0E94EB1B87E4EFCF9CEF980FBC +:10264000913A58F390E2980F983050F4877091E0E7 +:1026500001C0990F8A95EAF7892F0E94AA1BDFCF44 +:102660009BE5980F933020F480E090E00C942F11BC +:10267000885A833120F480E090E00C94451108954D +:10268000882321F00E94A41B0C94EB1B089588233F +:1026900021F00E94AA1B0C94EB1B08957F928F924D +:1026A0009F92AF92BF92CF92DF92EF92FF920F93E1 +:1026B0001F93CF93DF931F92CDB7DEB77C01C62E59 +:1026C000772EFC01058102950F70128111110E9475 +:1026D000C11B0E94171B882379F0112369F080E247 +:1026E0008C0D883048F082E00E94001B0E94171B6E +:1026F00091E0D82ED92601C0D12CE72DE295EF70BC +:10270000F0E0E05AFF4F0C948623872D807F072D41 +:102710000F70882311F00295007F112389F00023A8 +:1027200009F490C180E28C0D883020F4802F0E9443 +:10273000A41B03C0802F0E94B41B0E94EB1B82C10C +:102740008C2D0E94F112002309F495C180E28C0DBA +:10275000883020F4802F0E94AA1B03C0802F0E9483 +:10276000BA1B0E94EB1B87C1972D907F872D8F701E +:10277000903211F08295807FCC2021F0F1E0CF16CD +:10278000B1F01EC0112349F0002309F414C1013037 +:1027900009F011C10E94D41B6EC1002319F0013051 +:1027A00009F469C189830E94D71B89810AC1112359 +:1027B00021F0023008F05FC1FEC001115CC101C10F +:1027C000112321F0002309F4F6C03CC1002309F4D1 +:1027D000F8C03EC1872D86958695837090E000975E +:1027E00019F0019761F047C1112321F08C2D972D2D +:1027F000937002C080E090E00E942F113CC1112331 +:1028000021F08C2D972D937002C080E090E00E9403 +:10281000451131C18C2D112319F00E94101E02C0E8 +:102820000E94781E0E94FD1E26C1872D837009F02C +:1028300052C0111120C18C2D829586958770880F0A +:10284000880F9C2D9F70892E912CA12CB12C082EC5 +:1028500004C0880C991CAA1CBB1C0A94D2F7C4FEA5 +:1028600014C00FE010E020E030E0B901A80104C07E +:10287000440F551F661F771F8A95D2F7CB01BA0107 +:10288000609570958095909503C060E070E0CB01F5 +:10289000272D26952695237030E02230310569F0EA +:1028A0002330310589F0682979298A299B2921302B +:1028B000310571F00E948C19DEC0682979298A29B6 +:1028C0009B290E94A819D7C00E948C19C501B40188 +:1028D0000E947019D0C0112319F0872D817001C09A +:1028E0008695882309F4C7C08C2D829586958770BC +:1028F000880F880F9C2D9F70892E912CA12CB12CB4 +:10290000082E04C0880C991CAA1CBB1C0A94D2F780 +:10291000C4FE14C00FE010E020E030E0B901A801CF +:1029200004C0440F551F661F771F8A95D2F7CB014D +:10293000BA01609570958095909503C060E070E055 +:10294000CB01272D269526952370422F50E042304B +:10295000510569F04330510589F0682979298A29A0 +:102960009B294130510571F00E94661A84C0682984 +:1029700079298A299B290E94821A7DC00E94661AA1 +:10298000C501B4010E944A1A76C08C2D90E0FC016A +:10299000E05EF109E531F10508F050C0E059FF4F64 +:1029A0000C9486230C2D0F70872D8F71112331F01D +:1029B0000E94E319802F0E9440135DC00E94041AF8 +:1029C000802F0E94471357C0112339F0011153C0C3 +:1029D000872D8F710E94291A4EC0023008F04BC01B +:1029E000F7CF112339F0872D8F710E94E31943C06F +:1029F0001123C9F3872D8F710E94041A3CC0112343 +:102A000029F0872D8F710E94CE1935C00E94C419FC +:102A100032C0112351F0172D1F71812F0E94E3192D +:102A200063E0812F0E94F71A26C081E00E94001BFC +:102A3000023008F182E00E94001B1DC0112331F01A +:102A4000002389F28C2D0E94291215C0002391F2D7 +:102A50008C2D0E94F1120FC0472D4F706C2DC701B5 +:102A60000E94D2050E94E81806C0472D4F706C2DB9 +:102A7000C7010E947909DD20F9F00E94F31A80FD58 +:102A80001BC0F70112820E94ED1A0E94E319C701D0 +:102A90000E946B150E94ED1A0F90DF91CF911F914C +:102AA0000F91FF90EF90DF90CF90BF90AF909F90ED +:102AB0008F907F900C94041A0F90DF91CF911F910B +:102AC0000F91FF90EF90DF90CF90BF90AF909F90CD +:102AD0008F907F9008950F931F93CF93DF93EC0116 +:102AE000888199812B813C81232BB9F09F3F11F480 +:102AF0008F3F99F0CE010E940A06882371F0688109 +:102B000079818A810E94E91A8C010E949E1A0E9492 +:102B10006519B801CE010E944E13DF91CF911F912C +:102B20000F9108950E94C11B0E94D11B0E94961B09 +:102B30000E94EB1B0E94AE1F0E94FD1E80E090E0F1 +:102B40000E942F1180E090E00C9445110E94B11B6F +:102B50000C9492150E94DE1A292F22952F7030E0D6 +:102B60002C3031054CF42A3031056CF422503109F7 +:102B700022303105A8F407C02C30310569F02F3020 +:102B8000310551F00DC0803F69F018F4803E40F4EB +:102B900009C0843F29F406C093FB882780F9089573 +:102BA00080E0089581E00895CF93DF9300D000D0B6 +:102BB0001F92CDB7DEB70F900F900F900F900F9030 +:102BC000DF91CF910895CF93DF9300D000D000D054 +:102BD000CDB7DEB726960FB6F894DEBF0FBECDBFD9 +:102BE000DF91CF9108951F93CF93DF93C09186011A +:102BF00016E080918701C81799F0D0E01C9FF00182 +:102C00001D9FF00D1124E857FE4F408151816281D4 +:102C10007381848195810E94E3152196C770E9CF65 +:102C2000DF91CF911F9108954091B8015091B90162 +:102C30006091BA017091BB018091BC019091BD017E +:102C40000C94E3158091BD0182958F7009F054C0FA +:102C50008091BA01882309F44FC080918601A09128 +:102C600087016091B8017091B9014091BB01509109 +:102C7000BC01B6E08A1709F43FC090E04115510548 +:102C8000C1F17F3F11F46F3FA1F1B89FF001B99FEF +:102C9000F00D1124E857FE4F218172132AC02081C4 +:102CA000621327C02281211124C02381348124177B +:102CB000350710F421503109241B350B283C310510 +:102CC000C0F42091BD012F7020612093BD0126E04A +:102CD000289FF001299FF00D1124E357FE4F8081BA +:102CE0008F708061808388EB91E00E946B150C945B +:102CF000F31501968770BECF0895CF92DF92EF92C1 +:102D0000FF920F931F93CF93DF93CDB7DEB76297F8 +:102D10000FB6F894DEBF0FBECDBF8C0185E0F80181 +:102D2000DE011D9601900D928A95E1F7D8014C9134 +:102D300011965C91119712966C9112971396CD9003 +:102D4000DC9014973091B8017091B9018091BB016A +:102D50009091BC01009709F46BC17F3F19F43F3F8C +:102D600009F466C1E090BA01EE2009F4C0C02091D8 +:102D7000BD01C816D90628F0F601E81BF90BCF01F2 +:102D800004C0809590958C0D9D1DFF24F394883C84 +:102D9000910578F0F12C207F09F0C6C07C2DD98AEE +:102DA000C88A89890E94D41588EB91E00E946B152E +:102DB000B1C0822F807F09F046C0751314C0341350 +:102DC00012C0611110C02F7020612093BD010E94BC +:102DD000141688EB91E00E946B158091BD01D8011B +:102DE00015968C932EC0CD2819F15F3F11F44F3FFB +:102DF000F9F0F62E61111CC08091860120918701A7 +:102E000036E0821709F45AC090E0389FF001399FEC +:102E1000F00D1124E857FE4F7181571306C07081E1 +:102E2000471303C07281711103C001968770E9CF07 +:102E3000F62E662309F418C18091BD01816080934C +:102E4000BD01F12C11C1751308C0341306C0611106 +:102E500004C08091BD01D801C3C04D875E878D85B8 +:102E60009E856A8B0E94AA156A898823E1F16623F0 +:102E7000D1F12091BD01822F82958F7090E0029751 +:102E800074F08091B8019091B90198878F83198669 +:102E9000DB86CA862C87CE0107960E946B1586E0DA +:102EA000F801A8EBB1E001900D928A95E1F70E943C +:102EB00022160E941416FF24F394D6C04D875E8715 +:102EC0008D859E850E94DE1A292F22952F7030E075 +:102ED000223031050CF0BCC09F7009F0B6C0805E96 +:102EE000883008F4C1C0C8010E946B15E4CFC81631 +:102EF000D90608F453C0F601E81BF90BCF01883C52 +:102F0000910508F450C0F12C7C2DD98AC88A898992 +:102F10000E94D415E8EBF1E086E0DF011D928A956E +:102F2000E9F70E941416A0C0751314C0341312C020 +:102F3000611110C08091BD01F8018583C8010E9414 +:102F40006B1586E0E8EBF1E0DF011D928A95E9F769 +:102F5000FE2C8AC04D875E878D859E856A8B0E9478 +:102F6000AA156A89882309F4BECF662309F4BBCF6A +:102F70002091BD01822F82958F7090E002970CF412 +:102F80008ECF8091B8019091B9019A8389831B8279 +:102F9000DD82CC822E83CE0101967FCF80959095E5 +:102FA0008C0D9D1DACCFF62E662309F49CCF7513B6 +:102FB0002EC034132CC02091BD0120FD1FC0822FD4 +:102FC00082958F70D9F0D80115962C9315978F3074 +:102FD00049F08F5F982F9295907F822F8F70892B69 +:102FE00015968C93C8010E946B1586E0F801A8EB3A +:102FF000B1E001900D928A95E1F793CF86E0F80158 +:10300000A8EBB1E001900D928A95E1F72DC04D87B4 +:103010005E878D859E850E94AA15811140CF809183 +:10302000BD0181608093BD01C8010E946B151CC069 +:10303000662309F458CF4D875E878D859E850E9453 +:10304000AA15882309F44FCF2ACF811148CF0CC08D +:10305000243031050CF047CF9F7009F440CFF801C0 +:103060009581907F09F03BCF8F2D62960FB6F89433 +:10307000DEBF0FBECDBFDF91CF911F910F91FF90AB +:10308000EF90DF90CF9008951F93CF93DF93CDB74C +:10309000DEB72C970FB6F894DEBF0FBECDBF4F83BF +:1030A000588769877A878B879C87CE0107960E940D +:1030B0007D16882369F08F8198852A853B85232B8F +:1030C000F1F19F3F09F063C08F3F09F060C037C046 +:1030D00086E0FE013796DE01119601900D928A95E9 +:1030E000E1F76F817885EA85FB85309741F17F3F75 +:1030F00011F46F3F21F12091870130E0C901019661 +:10310000877099274091860150E08417950709F44C +:1031100047C069837A83FD83EC8396E0929FD00158 +:10312000939FB00D1124A857BE4FFE013196019018 +:103130000D929A95E1F7809387010E94F31516E0AE +:1031400080918601909187018917C1F1189FC00174 +:10315000112488579E4F0E947D16882379F1E091B3 +:1031600086011E9FF0011124E857FE4F40815181D6 +:1031700062817381848195810E94E315809186012B +:1031800090E001968770992780938601D9CF4F816F +:10319000588569857A858B859C850E94E315CFCFFC +:1031A0000E94A6151092870110928601E8EBF1E0CB +:1031B00086E0DF011D928A95E9F7C1CF2C960FB604 +:1031C000F894DEBF0FBECDBFDF91CF911F91089560 +:1031D000EF92FF920F931F93CF93DF938C01009791 +:1031E00009F46CC0F12CEE24E394E8012196F80177 +:1031F0008491843740F4843008F051C0813081F0EC +:10320000823019F15BC0853709F444C0A8F19CE70E +:10321000980F903708F052C08F770E94F11241C08A +:103220000E5F1F4FFE01C49180E28C0F883048F47E +:10323000C7708E2D01C0880FCA95EAF70E94C41B83 +:1032400014C08C2F0E9429122DC00E5F1F4FFE014B +:10325000C49180E28C0F883058F4C7708E2D01C065 +:10326000880FCA95EAF70E94CA1B0E94EB1B1AC07E +:103270008C2F0E94F11216C00E5F1F4FFE01C491E9 +:10328000CC2381F08FE99FE00197F1F700C00000A7 +:10329000C150F6CF0E5F1F4FFE01F49003C00E9495 +:1032A00029128E018F2D882309F49FCFEFE9FFE0CB +:1032B0003197F1F700C000008150F5CFDF91CF9139 +:1032C0001F910F91FF90EF90089508956093C201B0 +:1032D0007093C3018093C4019093C5010C9492151F +:1032E0000F931F930091C2011091C3012091C4015B +:1032F0003091C501DC01CB01802B912BA22BB32B8C +:103300008093C2019093C301A093C401B093C501FF +:103310001F910F910C9492150F931F930091C2016E +:103320001091C3012091C4013091C501DC01CB0192 +:1033300080239123A223B3238093C2019093C301DE +:10334000A093C401B093C5011F910F910C949215E5 +:103350000F931F930091C2011091C3012091C401EA +:103360003091C501DC01CB0180279127A227B3272B +:103370008093C2019093C301A093C401B093C5018F +:103380001F910F910C9492151092BE011092BF01E3 +:103390001092C0011092C1010C94921541E050E0CE +:1033A00060E070E004C0440F551F661F771F8A95C8 +:1033B000D2F74093BE015093BF016093C001709358 +:1033C000C1010C94921541E050E060E070E004C04F +:1033D000440F551F661F771F8A95D2F78091BE0153 +:1033E0009091BF01A091C001B091C101482B592B10 +:1033F0006A2B7B2B4093BE015093BF016093C001A9 +:103400007093C1010C94921541E050E060E070E0CF +:1034100004C0440F551F661F771F8A95D2F7409549 +:103420005095609570958091BE019091BF01A091DB +:10343000C001B091C101482359236A237B234093E3 +:10344000BE015093BF016093C0017093C1010C9401 +:10345000921541E050E060E070E004C0440F551F59 +:10346000661F771F8A95D2F78091BE019091BF01A8 +:10347000A091C001B091C101482759276A277B2735 +:103480004093BE015093BF016093C0017093C1018E +:103490000C9492150F931F930091BE011091BF01E0 +:1034A0002091C0013091C101DC01CB01802B912B17 +:1034B000A22BB32B8093BE019093BF01A093C001B8 +:1034C000B093C1011F910F910C9492150F931F930C +:1034D0000091BE011091BF012091C0013091C10146 +:1034E000DC01CB0180239123A223B3238093BE016F +:1034F0009093BF01A093C001B093C1011F910F91A0 +:103500000C9492150F931F930091BE011091BF016F +:103510002091C0013091C101DC01CB0180279127AE +:10352000A227B3278093BE019093BF01A093C0014F +:10353000B093C1011F910F910C9492150895CF92F1 +:10354000DF92EF92FF920F931F93CF93DF938C0143 +:10355000C090C201D090C301E090C401F090C501B9 +:103560008091BE019091BF01A091C001B091C101B5 +:10357000C82AD92AEA2AFB2ACFE1D0E0D701C6011E +:103580000C2E04C0B695A795979587950A94D2F707 +:1035900080FF06C0B8018C2F0E94F807019721F424 +:1035A000219760F780E001C08C2FDF91CF911F91B0 +:1035B0000F91FF90EF90DF90CF900895CF93DF931E +:1035C000EC010E949F1ABE010E94F807DF91CF9183 +:1035D0000895CB010E94DE1A08958091C601859559 +:1035E0008595859508958091C6018770089598E026 +:1035F000899F90011124262B2093C6010C94E31976 +:103600002091C601809582238093C601982F9770E0 +:1036100069F430E0482F552747FD509524173507AA +:1036200029F08595859585950C94041A08959091B7 +:10363000C601977081E009F480E0089590910C0133 +:10364000992321F090910D01911109C020910E0153 +:1036500030910F01F90132969FEF40E01FC0982F83 +:103660009695969596959F3050F5E0910E01F091C4 +:103670000F01E90FF11D877021E030E0A90102C0C0 +:10368000440F551F8A95E2F7CA019181892B8183E6 +:1036900008959F3F39F04F5F4E3041F051915813DC +:1036A000F8CF0DC05111F7CF942FF5CF9F3F39F0D0 +:1036B000F901E90FF11D97FDFA95828308950895A8 +:1036C00090910C01992321F090910D01911109C065 +:1036D00020910E0130910F01F9013296205F3F4F8A +:1036E0001FC0982F9695969596959F30F0F4E0918F +:1036F0000E01F0910F01E90FF11D877021E030E01C +:10370000A90102C0440F551F8A95E2F7CA018095AE +:1037100091818923818308953196E217F30729F077 +:1037200090819813F9CF1082F7CF089581E090E04F +:10373000E0910E01F0910F01E80FF91F1082019640 +:1037400080319105A9F708959091DA01892B809332 +:10375000DA01089580959091DA0189238093DA0146 +:1037600008951092DA0108959091D901892B8093E0 +:10377000D901089580959091D90189238093D90129 +:1037800008951092D90108959091D801892B8093C2 +:10379000D801089580959091D80189238093D8010C +:1037A00008951092D80108958093C701089510924A +:1037B000C701089580910E0190910F01FC0131968F +:1037C0009C01205F3F4F80E0919191118F5FE21744 +:1037D000F307D1F70895E0910E01F0910F01809168 +:1037E000DA018083E0910E01F0910F0190818091C8 +:1037F000D901892B8083E0910E01F0910F01908116 +:103800008091D801892B80838091C701882361F042 +:10381000E0910E01F0910F019081892B80830E942D +:10382000DA1B81111092C70180910E0190910F0156 +:103830000C94191120E0009739F0AC014150510966 +:10384000842395232F5FF7CF822F0895CF92DF92A5 +:10385000EF92FF926C01EE24FF24C114D104E10425 +:10386000F10421F0C701B60120E101C020E0C72E1C +:10387000D82EE92EFF24C114D104E104F10419F07B +:10388000285FC701B6016B017C0154E0F694E79410 +:10389000D794C7945A95D1F7C114D104E104F10427 +:1038A00019F02C5FC701B6016B017C0142E0F69470 +:1038B000E794D794C7944A95D1F7C114D104E10491 +:1038C000F10419F02E5FC701B601DC01CB01B695FA +:1038D000A79597958795892B8A2B8B2B09F02F5FBE +:1038E000822FFF90EF90DF90CF9008958091F401A8 +:1038F000843021F11092DC0120E488E190E00FB6E1 +:10390000F894A895809360000FBE2093600080E03B +:103910000E940A0A83B7817F846083BF83B7816076 +:1039200083BF7894889583B78E7F83BF88E10FB675 +:10393000F89480936000109260000FBE089508957F +:103940000E94F5030E9408040E949F1C0E94FD042F +:1039500091E0811101C090E0892F08950E94A61581 +:103960000E940D110C940A0A82E084BD93E095BD7B +:103970009AEF97BD80936E0008952FB7F8948091C9 +:10398000DD019091DE01A091DF01B091E0012FBF38 +:103990000895CF92DF92EF92FF920F931F932FB76C +:1039A000F8944091DD015091DE016091DF0170914A +:1039B000E0012FBF6A017B01EE24FF248C0120E08F +:1039C00030E0C016D106E206F30610F4415051096A +:1039D0009A01281B390BC9011F910F91FF90EF909D +:1039E000DF90CF9008951F920F920FB60F9211247F +:1039F0008F939F93AF93BF938091DD019091DE01F0 +:103A0000A091DF01B091E0010196A11DB11D80934D +:103A1000DD019093DE01A093DF01B093E001BF913F +:103A2000AF919F918F910F900FBE0F901F9018959F +:103A30000E940A0EF8942FEF87EA91E62150804009 +:103A40009040E1F700C0000087E090EBDC0180933C +:103A5000FD019093FE01A093FF01B09300029CE052 +:103A600088E10FB6F894A895809360000FBE9093FC +:103A70006000FFCF0E94721D811102C00E94581D7C +:103A80000E947D1D8093DB010E94851D90E0909334 +:103A9000EF018093EE0187FB882780F980930D0169 +:103AA0000E94811D682F70E080E090E00C94661900 +:103AB0006DEE7EEF80E090E00E94C02360E082E047 +:103AC00090E00E94AE2360E083E090E00E94AE238D +:103AD00060E084E090E00E94AE2360E085E090E04A +:103AE0000C94AE2380E090E00E94A82321E08D3E5C +:103AF0009E4F09F020E0822F089582E090E00C9420 +:103B0000A02383E090E00C94A02384E090E00C9448 +:103B1000A023682F84E090E00C94AE238091E30111 +:103B200080FF0BC06091130185E0689FB0011124F4 +:103B300075956795759567952BC081FF09C0609154 +:103B4000130185E0689FB00111247595679520C029 +:103B500082FF07C06091130185E0689FB0011124C6 +:103B600017C09091E4019923D1F06091120196174A +:103B700088F72091130185E0289F90011124929FDE +:103B8000A001939F500D112470E0CA010E9472237E +:103B90006038710540F46115710539F002C065E0C7 +:103BA00070E0862F08958FE7089581E00895809151 +:103BB000E30180FF08C06091110170E07595679581 +:103BC0007595679521C081FF06C06091110170E075 +:103BD0007595679519C082FF04C06091110170E06E +:103BE00010C09091E4019923C1F0609110019617E3 +:103BF000A0F780911101899FC001112470E00E94FB +:103C000072236038710528F46115710521F0862F43 +:103C100008958FE7089581E0089561E070E0F4CFA2 +:103C2000803F21F40E948E1D819504C0813F29F4BC +:103C30000E948E1D8093E7010895823F21F40E9427 +:103C40008E1D819504C0833F29F40E948E1D8093B0 +:103C5000E6010895893F19F40E94D71D05C08A3FE7 +:103C600031F40E94D71D81958093E80108958B3F20 +:103C700021F40E94D71D819504C08C3F29F40E9435 +:103C8000D71D8093E9010895843F21F48091E501D7 +:103C9000816017C0853F21F48091E501826011C0E9 +:103CA000863F21F48091E50184600BC0873F21F4B9 +:103CB0008091E501886005C0883F31F48091E5017D +:103CC00080618093E50108958D3F21F48091E301A7 +:103CD00081600BC08E3F21F48091E301826005C0BA +:103CE0008F3F29F48091E30184608093E30108957C +:103CF000803F39F48091E70187FF6CC01092E701A3 +:103D000069C0813F29F48091E7011816BCF362C0B5 +:103D10009091E601823F29F497FF5CC01092E60182 +:103D200059C0833F19F41916CCF354C0893F41F4AC +:103D30008091E80118160CF04DC01092E8014AC0BD +:103D40008A3F29F48091E80187FF44C0F6CF8B3F7A +:103D500039F48091E90187FF3DC01092E9013AC032 +:103D60008C3F29F48091E9011816BCF333C0843FDD +:103D700021F48091E5018E7F17C0853F21F4809169 +:103D8000E5018D7F11C0863F21F48091E5018B7F95 +:103D90000BC0873F21F48091E501877F05C0883FF4 +:103DA00031F48091E5018F7E8093E50113C08D3F52 +:103DB00021F48091E3018E7F0BC08E3F21F480912E +:103DC000E3018D7F05C08F3F29F48091E3018B7F54 +:103DD0008093E3018091E60181110EC08091E7019B +:103DE00081110AC08091E801811106C08091E9012A +:103DF000811102C01092E401089585EE91E00E94C5 +:103E000024110E94BD1C9093E2018093E10108956A +:103E10001F93CF93DF938091E1019091E2010E9483 +:103E2000C91CAC019091E401992321F02091140167 +:103E300030E006C0209115018AE0289F90011124EE +:103E40004217530708F486C08091E601C091E7014C +:103E5000D091E8011091E901811107C0C11176C02C +:103E6000D11174C0111172C075C09F3F19F09F5FCE +:103E70009093E401181624F40E948E1D8093E601AD +:103E80008091E60187FF05C00E948E1D8195809379 +:103E9000E6011C1624F40E948E1D8093E701809198 +:103EA000E70187FF05C00E948E1D81958093E70181 +:103EB0006091E601662339F1C091E701CC2319F145 +:103EC000772767FD7095872F972F0E94832223E322 +:103ED00033E343E35FE30E94E7220E9450226093B2 +:103EE000E6016C2F772767FD7095872F972F0E942B +:103EF000832223E333E343E35FE30E94E7220E944C +:103F000050226093E7011D1624F40E94D71D809370 +:103F1000E8018091E80187FF05C00E94D71D8195C7 +:103F20008093E801111624F40E94D71D8093E901C3 +:103F30008091E90187FF05C00E94D71D819580937C +:103F4000E901DF91CF911F910C94FD1E9F3F09F075 +:103F50008ECF96CFDF91CF911F910895E5EEF1E0DE +:103F600085E0DF011D928A95E9F71092E401109235 +:103F7000E3010895833081F128F4813059F08230D3 +:103F8000D1F00895853009F449C0B8F1863009F4BC +:103F900056C0089580911501262F30E0280F311D5D +:103FA0002F3F310524F4680F6093150108958FEFBA +:103FB00080931501089580911401262F30E0280F79 +:103FC000311D2F3F310524F4680F609314010895CB +:103FD0008FEF80931401089580911301262F30E014 +:103FE000280F311D2F3F310524F4680F6093130112 +:103FF00008958FEF80931301089580911201262F69 +:1040000030E0280F311D2F3F310524F4680F6093F5 +:10401000120108958FEF809312010895809111018C +:10402000262F30E0280F311D2F3F310524F4680F73 +:104030006093110108958FEF80931101089580918D +:104040001001262F30E0280F311D2F3F310524F4B9 +:10405000680F6093100108958FEF80931001089509 +:10406000833011F128F4813049F0823091F00895C5 +:10407000853081F120F18630C1F1089580911501DC +:10408000681720F4861B809315010895109215017E +:10409000089580911401681720F4861B8093140101 +:1040A000089510921401089580911301681720F467 +:1040B000861B809313010895109213010895809137 +:1040C0001201681720F4861B809312010895109244 +:1040D0001201089580911101681720F4861B8093C6 +:1040E000110108951092110108958091100168172F +:1040F00020F4861B809310010895109210010895FA +:104100000F931F938D3109F471C008F045C08031C1 +:1041100009F485C008F5873009F46FC068F486306B +:1041200009F0ADC08091DB01817F8E7F8093DB0140 +:1041300081E08093EB01A4C08B3009F49EC08E30E7 +:1041400009F09DC08091DB0182FB222720F991E0DC +:10415000922790FB82F96CC0863109F48EC060F41E +:10416000813109F08CC00E94A61590910D0181E06B +:10417000892780930D0181C0893109F47EC08B317C +:1041800009F07DC08091DB0181FB222720F991E0BD +:10419000922790FB81F94CC0853309F466C048F43E +:1041A000873209F462C008F44FC0893209F45DC057 +:1041B00066C0833438F48A3308F044C0883309F485 +:1041C0005CC05DC0833409F450C0883409F057C026 +:1041D0000E94A6150FEF13ED20E301501040204080 +:1041E000E1F700C000000E94181D47C00E940A228B +:1041F0000E940D110E940A0A40C09091DB01892F94 +:104200008095817080FB90F929F09660986090937A +:10421000DB0136C0997F977F9093DB012EC08091A0 +:10422000DB0183FB222720F991E0922790FB83F9A1 +:104230008093DB01992309F18091DB0181608093F8 +:10424000DB011BC0895301C08D5141E050E060E0AB +:1042500070E08A019B0104C0000F111F221F331F51 +:104260008A95D2F7C901B80104C061E070E080E02E +:1042700090E00E9466190E94A61581E001C080E0CE +:104280001F910F91089580E0089580E008958E5168 +:104290008A3030F4E82FF0E0E65DFE4F808108952B +:1042A00080E00895CF93C82F8091EB01813079F0A1 +:1042B00018F08230E9F186C0E0910E01F0910F0113 +:1042C0008081813169F0823209F07EC009C0E091BD +:1042D0000E01F0910F018081813111F0823261F481 +:1042E0008C2F0E944321811104C08C2F0E948020BA +:1042F0001DC081E090E01AC08C2F0E9445218111E1 +:1043000014C0C43179F048F4CB3079F0C03109F0F1 +:104310005FC082E08093EB0108C0C93219F0C83356 +:1043200021F056C01092EB0153C081E0817052C061 +:10433000C93281F110F5C43169F1A8F4C73009F030 +:1043400045C08AE08093150194E19093140193E0B5 +:10435000909313018093120188E08093110188E209 +:104360008093100133C082EE8C0F863078F58C2F4D +:104370000E9447218093EA0129C0CE34E9F020F45D +:10438000CB3421F56AE013C0C13579F0C235F1F4C0 +:1043900061E00DC08091EA01882319F01092EA01D2 +:1043A00015C081E08093EB0115C061E006C08091EB +:1043B000EA010E94BA1F0AC06AE08091EA010E94E5 +:1043C000302004C01092EB0180E004C081E002C004 +:1043D00080E0ACCFCF910895E1E8F0E08081886083 +:1043E00080838081816080838FB7F89493E090937D +:1043F000890090ED909388008FBF0895EFE6F0E07C +:104400008081826080830895EFE6F0E080818D7F77 +:1044100080830895EFE6F0E0908182E08927808331 +:1044200008951F920F920FB60F9211242F933F936E +:104430004F935F936F937F938F939F93AF93BF93AC +:10444000EF93FF938091EC019091ED010196909391 +:10445000ED018093EC01811103C082E00E940A0A01 +:10446000E091ED01E695E695F0E0EF5FF94FE4911C +:104470008091EC018E1303C080E00E940A0AFF9134 +:10448000EF91BF91AF919F918F917F916F915F91CC +:104490004F913F912F910F900FBE0F901F90189545 +:1044A00004D06894B1118DC0089570D088F09F57E2 +:1044B00090F0B92F9927B751A0F0D1F0660F771F70 +:1044C000881F991F1AF0BA95C9F712C0B13081F050 +:1044D00077D0B1E0089574C0672F782F8827B85F30 +:1044E00039F0B93FCCF3869577956795B395D9F7B1 +:1044F0003EF490958095709561957F4F8F4F9F4FBB +:104500000895E89409C097FB3EF4909580957095C6 +:1045100061957F4F8F4F9F4F9923A9F0F92F96E90F +:10452000BB279395F695879577956795B795F11184 +:10453000F8CFFAF4BB0F11F460FF1BC06F5F7F4F21 +:104540008F4F9F4F16C0882311F096E911C0772333 +:1045500021F09EE8872F762F05C0662371F096E83C +:10456000862F70E060E02AF09A95660F771F881F0B +:10457000DAF7880F9695879597F9089557FD905823 +:10458000440F551F59F05F3F71F04795880F97FB17 +:10459000991F61F09F3F79F08795089512161306D1 +:1045A0001406551FF2CF4695F1DF08C01616170600 +:1045B0001806991FF1CF8695710561050894089535 +:1045C000E894BB2766277727CB0197F908950BD08E +:1045D00078C069D028F06ED018F0952309F05AC041 +:1045E0005FC01124EECFCADFA0F3959FD1F3950FE2 +:1045F00050E0551F629FF001729FBB27F00DB11D67 +:10460000639FAA27F00DB11DAA1F649F6627B00DF6 +:10461000A11D661F829F2227B00DA11D621F739FDF +:10462000B00DA11D621F839FA00D611D221F749FED +:104630003327A00D611D231F849F600D211D822F34 +:10464000762F6A2F11249F5750408AF0E1F088237B +:104650004AF0EE0FFF1FBB1F661F771F881F915088 +:104660005040A9F79E3F510570F014C0AACF5F3F9C +:10467000ECF3983EDCF3869577956795B795F795BB +:10468000E7959F5FC1F7FE2B880F911D9695879543 +:1046900097F9089597F99F6780E870E060E00895C2 +:1046A0009FEF80EC089500240A941616170618064A +:1046B0000906089500240A94121613061406050626 +:1046C0000895092E0394000C11F4882352F0BB0FB7 +:1046D00040F4BF2B11F460FF04C06F5F7F4F8F4F1A +:1046E0009F4F089597FB072E16F4009407D077FD8F +:1046F00009D00E948C2307FC05D03EF4909581954B +:104700009F4F0895709561957F4F0895EE0FFF1F9D +:104710000590F491E02D0994AA1BBB1B51E107C041 +:10472000AA1FBB1FA617B70710F0A61BB70B881F41 +:10473000991F5A95A9F780959095BC01CD010895D0 +:10474000F999FECF92BD81BDF89A992780B5089559 +:10475000A8E1B0E042E050E00C94C823262FF9997C +:10476000FECF92BD81BDF89A019700B4021639F0D0 +:104770001FBA20BD0FB6F894FA9AF99A0FBE0895A1 +:104780000196272F0E94AF230C94AE23DC01CB01AE +:10479000FC01F999FECF06C0F2BDE1BDF89A319651 +:1047A00000B40D9241505040B8F70895F894FFCFEF +:1047B00002200C0A9A0A770A430A0F0A0101C8016B +:1047C00028080A03140A404D3639C10574053E0510 +:1047D00005059804B104CA04E304010203040506B4 +:0447E00007080900BD +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/keymap.c b/keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/keymap.c new file mode 100644 index 000000000..687a5cb8b --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/keymap.c @@ -0,0 +1,174 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#include "keymap_neo2.h" +#include "keymap_uk.h" +#include "keymap_colemak.h" +#include "keymap_french_osx.h" +#include "keymap_nordic.h" +#include "keymap_dvorak.h" +#include "keymap_german.h" +#include "keymap_norwegian.h" +#include "keymap_fr_ch.h" +#include "keymap_german_osx.h" +#include "keymap_spanish.h" +#include "keymap_bepo.h" + +#define BASE 0 +#define SYMB 1 +#define MDIA 2 +#define QWERTZ 3 +#define NUMB 4 + +#define UNUSED 0 + +//Layout keymap.c generated with ErgodoxLayoutGenerator V1.0BETA1 +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[BASE]=KEYMAP( +//left half + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LCTL, + KC_TAB, KC_K, KC_DOT, KC_O, KC_COMM, KC_Z, KC_LGUI, + TG(QWERTZ), KC_H, KC_A, KC_E, KC_I, KC_U, + KC_LSFT, CTL_T(KC_X), KC_Q, DE_AE, DE_UE, DE_OE, KC_LALT, + LT(SYMB,KC_GRV), DE_LESS, LALT(KC_LSFT), KC_LEFT, KC_RGHT, + TG(MDIA), MEH_T(LSFT(DE_ACUT)), + KC_HOME, + KC_BSPC, KC_DEL, KC_END, + //right half + KC_RCTL, KC_6, KC_7, KC_8, KC_9, KC_0, DE_OSX_MINS, + KC_RGUI, 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_RALT, KC_B, KC_P, KC_W, KC_M, CTL_T(KC_J), KC_RSFT, + KC_UP, KC_DOWN, LGUI(KC_LSFT), KC_RBRC, LT(SYMB,KC_BSLS), + ALL_T(DE_ACUT), TG(NUMB), + KC_PGUP, + KC_PGDN, KC_ENT, KC_SPC), +[SYMB]=KEYMAP( +//left half + 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 half + 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), +[MDIA]=KEYMAP( +//left half + 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 half + 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), +[QWERTZ]=KEYMAP( +//left half + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, LGUI(KC_V), + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LGUI, + KC_TRNS, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_LALT, + LT(SYMB,KC_GRV), DE_LESS, LALT(KC_LSFT), KC_LEFT, KC_RGHT, + KC_TRNS, MEH_T(LSFT(DE_ACUT)), + KC_HOME, + KC_BSPC, KC_DEL, KC_END, + //right half + LGUI(KC_C), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_RGUI, KC_Y, KC_U, KC_I, KC_O, KC_P, DE_UE, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(MDIA,DE_AE), + KC_RALT, KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + KC_UP, KC_DOWN, LGUI(KC_LSFT), KC_RBRC, LT(SYMB,KC_BSLS), + ALL_T(DE_ACUT), KC_TRNS, + KC_PGUP, + KC_PGDN, KC_ENT, KC_SPC), +[NUMB]=KEYMAP( +//left half + 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 half + 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[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ +switch(id) { +case UNUSED: +//Macro: UNUSED//----------------------- + + + + + + 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) { + +default: +// none +break; +} + +}; + diff --git a/keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png b/keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png new file mode 100644 index 000000000..193aa339e Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png differ diff --git a/keyboards/ergodox_ez/keymaps/osx_de_experimental/compiled.hex b/keyboards/ergodox_ez/keymaps/osx_de_experimental/compiled.hex new file mode 100644 index 000000000..3fe28d5e5 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/osx_de_experimental/compiled.hex @@ -0,0 +1,1228 @@ +:100000000C9446040C948A040C948A040C948A047C +:100010000C948A040C948A040C948A040C948A0428 +:100020000C948A040C948A040C94DF100C94B11183 +:100030000C948A040C948A040C948A040C948A0408 +:100040000C948A040C946B240C948A040C948A04F7 +:100050000C948A040C944D1F0C948A040C948A040A +:100060000C948A040C948A040C948A040C948A04D8 +:100070000C948A040C948A040C948A040C948A04C8 +:100080000C948A040C948A040C948A040C948A04B8 +:100090000C948A040C948A040C948A040C948A04A8 +:1000A0000C948A040C948A040C948A0405073F0774 +:1000B000510773078B07910797079D07A307A907A8 +:1000C000AE07B407DE07E307E807FF071E1240127A +:1000D0002E1340122E138512A8122E13FD12101388 +:1000E000DF15DF150E160E164416641695179517B4 +:1000F0006F1695171F171F178617951795178F17C8 +:100100002C172C172C172C172C172C172C172C17D7 +:100110002C172C172C172C172C172C172C172C17C7 +:100120003E174B1752175917631702E002E2012ED0 +:10013000022E02E10002E002E102E20001E001E140 +:1001400001E20002E002E3016402640002E002E373 +:100150000001E001E30001E10137023702E101386B +:10016000023801E10125022502E10001E101370227 +:100170003702E10138023801E10107020702E1001C +:1001800001350235012002200002E302E102E30210 +:10019000E102E302E102E302E102E302E102E3023F +:1001A000E102E302E102E302E102E302E102E3022F +:1001B000E102E302E102E302E102E302E102E3021F +:1001C000E102E302E102E302E102E302E102E3020F +:1001D000E102E302E102E302E102E302E102E302FF +:1001E000E102E302E102E302E102E302E102E302EF +:1001F000E102E302E102E302E102E302E102E302DF +:10020000E102E302E102E302E102E302E102E302CE +:10021000E102E302E102E302E102E302E102E302BE +:10022000E10001E301E10001E10136023602E101F2 +:1002300038023801E10126022602E10001E101371E +:10024000023702E10138023801E10126022602E10B +:100250000001E10136023602E10138023801E10114 +:1002600025022502E10001E10137023702E10138F0 +:10027000023801E20125022502E20001E101370214 +:100280003702E10138023801E10130023002E100B9 +:1002900002E002E2013002300002E002E20001E08E +:1002A00001E20001E10131023102E10029002B00ED +:1002B000E200E100354100001E00140004001D6151 +:1002C0000E304E001F001A0016001B0003304C00B9 +:1002D0002000080007000600E0022A0021001500A7 +:1002E0000900190000304B00220017000A00050029 +:1002F00000004A000230E3000000E20000004D0070 +:100300000B30E7000000E6000000500023001C0056 +:100310000B00110000004F00240018000D00100019 +:100320003167520025000C000E0036002E6F2C00A5 +:10033000260012000F003700E108280027001300F4 +:1003400033003861E10451002D002F003464E500D2 +:1003500030410000650001000100010001000000C3 +:100360003A00350031000100010001003B00350278 +:100370002102350001004C003C001E02240622022E +:10038000010001003D002D022402240401000100AF +:100390003E00010037001104000001003E00010092 +:1003A00000000100000001003F000100000001000A +:1003B000000068003F0024062402240400004500D9 +:1003C0004000220425021104310269004100230487 +:1003D000260201001F020100420035002504010031 +:1003E00001000100430035022604010001306A00CB +:1003F00044001E0231000100010000000100010064 +:1004000001000100010000000100010001000100E5 +:10041000010001000100F400F200FB0001000100F6 +:100420000100F000F100FA00010001000100F500F8 +:10043000F300FC00010001000100F900FA00F600E1 +:1004400000000100010001000000010000000100A7 +:1004500001000100000001000000AC0001000100EB +:10046000010001000000AB000100010001000100DB +:100470000100A90001000100010001000100AE001F +:1004800001000100010001005000A800010001006E +:10049000010052005100AA0001000100010001000A +:1004A0004F000000010001000100010001000000F8 +:1004B0000100010001000100010001000100010034 +:1004C0000100010001000100010001000100010024 +:1004D0000100010001000100010001000100010014 +:1004E0000100010001000100000001000100010005 +:1004F00000000100000001000730010000000100C1 +:1005000000000100083005300A3001000000010041 +:100510000C300D30043001000100010001000630F4 +:1005200001000100010001000100010001000100C3 +:1005300001000100010001000100010001000100B3 +:1005400001000100010001000100000001000100A4 +:100550000100010001000000010001000100010094 +:100560000100010001000100500001000100010034 +:1005700001005200510001000100010001000100D2 +:100580004F00010001000100010001000100010015 +:100590000000010001000100000001000000010056 +:1005A0000100010000000100000001003F002402E2 +:1005B00024022202000001004000240021001E004D +:1005C000270001004100250022001F003700010024 +:1005D00042002600230020003600010043003002C4 +:1005E00030000100270201004400450038000100EE +:1005F0000100000001000100E1000100E000000036 +:10060000010001000100010001003D0001000100A6 +:10061000010001000100E0000100010001000100F3 +:1006200001002C00010001000100010001003C005C +:10063000010001000100010000003A00010001007A +:100640000000010000003B0001000100000001006B +:100650000000010001000100010001000000010094 +:100660000100010001000100010001000100010082 +:100670000100010001000100010001000100010072 +:100680000100010001000100010001000130010032 +:1006900001000100010001000100000016034500F7 +:1006A000720067006F0044006F0078002000450072 +:1006B0005A00000016034500720067006F004400F6 +:1006C0006F007800200045005A0000000403090470 +:1006D00009026D00040100A0FA09040000010301F1 +:1006E00001000921110100012240000705810308D2 +:1006F000000A09040100010301020009211101009F +:1007000001224D000705820308000A0904020001C6 +:1007100003000000092111010001223600070583B2 +:100720000308000A09040300010300000009211165 +:100730000100012239000705840310000112011095 +:100740000100000008EDFE07130100010200010591 +:10075000010906A101050719E029E7150025019502 +:100760000875018102050819012905950575019192 +:1007700002950175039101050719002977150025D8 +:1007800001957875018102C005010980A1018502EA +:1007900016010026B7001A01002AB700751095014E +:1007A0008100C0050C0901A1018503160100269CEA +:1007B000021A01002A9C02751095018100C00501F2 +:1007C0000902A1010901A100050919012905150066 +:1007D00025019505750181029501750381010501CA +:1007E000093009311581257F950275088106093880 +:1007F0001581257F950175088106050C0A380215BB +:1008000081257F950175088106C0C005010906A1F3 +:1008100001050719E029E7150025019508750181F3 +:1008200002950175088101050819012905950575CD +:100830000191029501750391010507190029FF1522 +:100840000026FF00950675088100C000000000002A +:10085000000000000000010204060A0F17202C3AD5 +:100860004A5D71879DB3C7DAE9F5FCFFFCF5E9DA6B +:10087000C7B39D87715D4A3A2C20170F0A06040200 +:1008800001000000000000000000000011241FBE55 +:10089000CFEFDAE0DEBFCDBF04B603FE24C0809107 +:1008A000FF0190910002A0910102B09102028730F5 +:1008B000904BA740B04BB9F41092FF011092000288 +:1008C000109201021092020214BE84B7877F84BF87 +:1008D00088E10FB6F89480936000109260000FBE1C +:1008E000E0E0FFE3099511E0A0E0B1E0E4E6FCE41C +:1008F00002C005900D92A433B107D9F711E0A4E32B +:10090000B1E001C01D92AF3FB107E1F70E94270E91 +:100910000C9430260C9400001092B9008AE0809369 +:10092000B800089594EA9093BC009091BC0097FFA2 +:10093000FCCF9091B900987F983021F0903111F060 +:1009400081E008958093BB0084E88093BC0080918F +:10095000BC0087FFFCCF8091B900887F883111F0FF +:10096000803471F780E0089584E98093BC00809121 +:10097000BC0084FDFCCF08958093BB0084E8809385 +:10098000BC008091BC0087FFFCCF9091B900987F9C +:1009900081E0983209F480E0089584E88093BC00F7 +:1009A0008091BC0087FFFCCF8091BB00089580B38D +:1009B0008C7080BB81B3836F81BB089580910101EE +:1009C000811115C080E40E9492048093010181117D +:1009D0000CC082E10E94BC0480930101811105C01A +:1009E0008FEF0E94BC04809301010E94B40484B183 +:1009F000807F84B985B1807F85B98AB1837F8AB9C8 +:100A00008BB1837F8BB93E98469808950E94A806C3 +:100A1000809301010E94DE040E94D704A5E3B1E0A7 +:100A2000E3E4F1E08EE08E0F11921D928E13FCCF65 +:100A30000C9492060E94A806809301010E94DE0495 +:100A40000E94D704A5E3B1E0E3E4F1E08EE08E0F6D +:100A500011921D928E13FCCF0895BF92CF92DF9218 +:100A6000EF92FF920F931F93CF93DF938091010139 +:100A7000882379F0809134018F5F80933401811154 +:100A800008C00E94A80680930101811102C00E9443 +:100A90003A0605E311E0C0E0D0E0DD24D39482E023 +:100AA000C82EEE24E394F12CC730D10500F58091D7 +:100AB0000101811164C080E40E94920480930101CD +:100AC000811112C082E10E94BC0480930101811156 +:100AD0000BC0C7010C2E01C0880F0A94EAF780955D +:100AE0000E94BC04809301010E94B40448C0CA3033 +:100AF000A1F028F4C83059F0C93061F005C0CC30FD +:100B000089F070F0CD3089F0209A289810C0219A91 +:100B100029980DC0229A2A980AC0239A2B9807C0B8 +:100B2000529A01C0539A5B9802C03E9A469890EA46 +:100B30009A95F1F79FB1799902C082E001C080E0F7 +:100B400091709D25982B7C9902C084E001C080E0C3 +:100B5000892B7D9902C038E001C030E0832B7E995B +:100B600002C020E101C020E0822B9FB19095991F27 +:100B70009927991F9295990F907E892B0FC080918C +:100B80000101811149C080E40E9492048093010117 +:100B9000882379F1B12C0E94B4048B2DF801908147 +:100BA000981719F08083C09200010E94DE042196FC +:100BB0000F5F1F4FCE30D10509F076CF8091000135 +:100BC000882361F1815080930001882339F08FE9F7 +:100BD0009FE00197F1F700C0000020C0A3E4B1E05E +:100BE000E5E3F1E0CF01825F91919D938E13FCCFFD +:100BF00015C083E10E94BC04809301018111CACF1A +:100C000081E40E949204809301018111C3CF0E946C +:100C1000CD04B82EB094BFCF80E0C0CF0E9438067C +:100C200081E0DF91CF911F910F91FF90EF90DF90C6 +:100C3000CF90BF900895E82FF0E0ED5BFE4F8081EC +:100C4000089508950F931F93CF93DF93C3E4D1E0EA +:100C500010E00C2F025F899190E00E94741E180F23 +:100C60000C13F9CF812FDF91CF911F910F91089530 +:100C70000C94260856985E9825982D9826982E98BC +:100C800027982F988FEF90E09093890080938800A9 +:100C900090938B0080938A0090938D0080938C00BA +:100CA000259A2D9A2FEF80E792E0215080409040C6 +:100CB000E1F700C00000269A2E9A2FEF80E792E01D +:100CC000215080409040E1F700C00000279A2F9A01 +:100CD0002FEF80E792E0215080409040E1F700C084 +:100CE000000025982D982FEF80E792E0215080405A +:100CF0009040E1F700C0000026982E982FEF80E783 +:100D000092E0215080409040E1F700C00000279819 +:100D10002F9856985E9825982D9826982E98279863 +:100D20002F98089589EA8093800089E0809381005C +:100D300024982C983F988AB18F748AB96E98479AF4 +:100D40008BB1806B8BB9769A0E943A060C94250879 +:100D500080E2809301018091510181110EC00E94B7 +:100D60008C0481E0809351012FEF83ED90E32150BB +:100D700080409040E1F700C0000080E40E949204AF +:100D80008093010181112EC00E94BC048093010157 +:100D9000811128C00E94BC0480930101811122C0EE +:100DA0008FE30E94BC048093010181111BC00E944B +:100DB000B40480E40E94920480930101811112C066 +:100DC0008CE00E94BC048093010181110BC00E9441 +:100DD000BC0480930101811105C08FE30E94BC0413 +:100DE000809301010E94B404809101010895462F6F +:100DF00050E04031510508F01FC1DC01FA01EA5A08 +:100E0000FF4F12968C910C94E0258823A9F00E9444 +:100E1000171F90935301809352018091C0019091CC +:100E2000C101A091C201B091C30128E0822788705E +:100E30009927AA27BB27AEC08091C0019091C1011C +:100E4000A091C201B091C30128E082278870992740 +:100E5000AA27BB278093C0019093C101A093C20130 +:100E6000B093C30180915201909153010E94231FBE +:100E70008739910508F0E0C083EA92E0089588235D +:100E800009F4DAC08091C0019091C101A091C20122 +:100E9000B091C30120E2822780729927AA27BB273D +:100EA00079C0882339F00E94171F909353018093D3 +:100EB00052010AC080915201909153010E94231F58 +:100EC0008739910508F4B8C08091C0019091C101A3 +:100ED000A091C201B091C30120E1822780719927BE +:100EE000AA27BB2757C0882349F00E94171F909359 +:100EF0005301809352018EE992E00895809152014E +:100F0000909153010E94231F8739910508F08EC0EC +:100F100080E992E00895882309F48EC08BE792E07F +:100F20000895882309F488C086E692E0089588230E +:100F300009F482C081E592E00895882309F47CC019 +:100F40008CE392E00895882309F476C087E292E06A +:100F5000089581116EC089E891E00895882309F40D +:100F60006BC080E891E008958823E9F00E94171F84 +:100F700090935301809352018091C0019091C101DF +:100F8000A091C201B091C30124E082278470992707 +:100F9000AA27BB278093C0019093C101A093C201EF +:100FA000B093C30149C080915201909153010E94B6 +:100FB000231F8739910508F43FC0DECF8823E1F174 +:100FC0008BE691E008958823B9F186E591E00895D4 +:100FD000882349F00E94171F909353018093520178 +:100FE00081E591E0089580915201909153010E9412 +:100FF000231F8739910518F583E491E0089588232C +:1010000049F00E94171F90935301809352018CE383 +:1010100091E0089580915201909153010E94231F05 +:101020008739910578F48AE291E0089589E992E0A0 +:10103000089582E292E0089580E090E008958CE4C3 +:1010400091E0089585E391E0089508956091C001CD +:101050007091C1018091C2019091C3010E94801ED4 +:1010600056985E9825982D9826982E9827982F9810 +:10107000823061F018F4813031F00895843069F0E5 +:10108000853039F00895259A2D9A0895269A2E9A3A +:101090000895259A2D9A269A2E9A279A2F9A08957E +:1010A00081E0089581E008950C9452080895282F56 +:1010B000882339F090E02A3010F44D960895069771 +:1010C000089587E290E00895AF92BF92DF92EF9289 +:1010D000FF920F931F93CF93DF938C01FC01C0818C +:1010E000D181CE010E94F91CBE010E94D40BEC01FB +:1010F000B8010E945408882309F4C9C1F80182810B +:10110000882309F4BEC08091600181111FC0C431E1 +:10111000F0E7DF0709F0B5C10E94560881E080932F +:1011200060010E94171F90935F0180935E011092EF +:101130005701109259011092580110925B011092C0 +:101140005A0110925D0110925C01A1C180915E0173 +:1011500090915F010E94231F883C910570F480915B +:101160005701E82FF0E0EE0FFF1FE85AFE4FD18342 +:10117000C0838F5F809357018AC1C13020E8D207B6 +:1011800008F451C0F8018281882309F47EC05E0111 +:10119000E894B7F880915601813079F050F08230B0 +:1011A000C1F482EE0E94831487E50E94831487E5D0 +:1011B0000EC082EE0E9483140CC080EE0E94831445 +:1011C00081EE0E94831488E10E94831488E10E94CA +:1011D0004B158CE0E82EF12CC5010E2C02C0969523 +:1011E00087950A94E2F78F700E945708D82E0E94C4 +:1011F00083148D2D0E944B15F4E0EF1AF1082CEFAB +:10120000E2162FEFF20641F780915601813029F066 +:1012100010F0823041F482EE04C080EE0E944B1543 +:1012200081EE0E944B15C43180E7D80768F4C230C4 +:1012300090E7D90708F046C0C115E0E7DE0771F076 +:10124000C130D047A1F10CC1C33320E7D20709F464 +:10125000D8C0C433D04709F4EBC002C1F801828181 +:10126000882309F402C10E940018FFEF24E38CE0F8 +:10127000F15020408040E1F700C000000E94721F42 +:1012800006C1C13080E8D80770F2C43120E7D20728 +:1012900008F0B3C0C23080E7D807A0F4C11590E7CA +:1012A000D90709F4E2C0C130D04709F0D9C0F8012C +:1012B0008281882309F4D9C08091DD018160809307 +:1012C000DD01E5C0F8018281882309F4CEC00E94C7 +:1012D000CC1F811102C00E94B21F0E94DF1F90E04C +:1012E0009093F1018093F001C230F0E7DF0721F421 +:1012F0008091F00181607AC0C33020E7D20721F4E9 +:101300008091F001826072C0C43080E7D80721F478 +:101310008091F00184606AC0C53090E7D90719F464 +:101320008091F00127C0C630E0E7DE0721F480910C +:10133000F00180615BC0C730F0E7DF0721F48091E6 +:10134000F001806253C0C83020E7D20721F48091B9 +:10135000F00180644BC0C93080E7D80721F4809148 +:10136000F001806843C0CA3090E7D90729F4809122 +:10137000F001846088603AC0CB30E0E7DE0721F4FA +:101380008091F0018E7F32C0CC30F0E7DF0721F48E +:101390008091F0018D7F2AC0CD3020E7D20721F463 +:1013A0008091F0018B7F22C0CE3080E7D80719F4FE +:1013B0008091F0011AC08091F001CF3090E7D907F9 +:1013C00011F48F7E13C0C031E0E7DE0711F48F7D8A +:1013D0000DC0C131F0E7DF0711F48F7B07C0C231C8 +:1013E000D04711F48F7702C08B7F877F8093F00105 +:1013F0008091F0010E94E31F4AC0C333F0E7DF078A +:10140000A1F4F8018281882321F01092540182E036 +:1014100016C080915401811106C086E20E94831497 +:1014200086E20E944B1582E018C0C433D047C1F455 +:10143000F8018281882331F01092550180E20E94E8 +:101440009A1525C080915501811106C087E20E943E +:10145000831487E20E944B1580E20E94A11517C0F9 +:1014600081E08093540180935501C801DF91CF91B1 +:101470001F910F91FF90EF90DF90BF90AF900C9471 +:101480005008C130F0E8DF0708F081CECCCE80E014 +:10149000DF91CF911F910F91FF90EF90DF90BF9060 +:1014A000AF90089526E0729FF001112444E5849FD7 +:1014B000E00DF11D1124E60FF11DEE0FFF1FE455A5 +:1014C000FD4F859194910E94E60B811560E496078B +:1014D000B0F5811570E3970708F0DEC0803E9105F6 +:1014E000D8F4803C910508F06CC0883A910578F4F6 +:1014F000853A910508F06BC08130910509F452C11D +:1015000008F40FC18430910508F04CC10AC18B3B2F +:10151000910508F467C005C18F3F910509F048F4B3 +:10152000803F910508F0ADC0883E910508F43AC1AE +:10153000F8C0811520E2920708F0A5C00895811532 +:1015400043E5940790F4811562E5960708F0C8C05A +:10155000811571E5970708F0BEC0811520E5920757 +:1015600008F09DC09F70906A0895811545E5940725 +:10157000D8F4811564E5960708F0C8C0482F469551 +:10158000469570E2479FA00111248370992721E0BE +:1015900030E0B90102C0660F771F8A95E2F7CB01F0 +:1015A000842B952B9A680895811576E5970708F4A2 +:1015B000B2C09C0130562115304108F0B2C09F7076 +:1015C000AEC0FC01EE0FFF1FE45DFE4F62C0853A26 +:1015D000910509F4A9C0863A910509F0A8C082E8EE +:1015E00090E40895883A910509F4A4C0893A9105D8 +:1015F00009F4A3C08A3A910509F4A2C08B3A910577 +:1016000009F4A1C08C3A910509F4A0C08D3A910566 +:1016100009F49FC0803B910509F49EC08E3A910564 +:1016200009F49DC08F3A910509F49CC0813B910556 +:1016300009F49BC0823B910509F49AC0833B910554 +:1016400009F499C0843B910509F498C0853B910544 +:1016500009F497C0863B910509F496C0873B910534 +:1016600009F495C0883B910509F494C0893B910524 +:1016700009F493C08A3B910509F492C080E094E498 +:10168000089590650895FC01FF70EE0FFF1FE4556B +:10169000FD4F8591949108959927906C0895482F56 +:1016A000437021E030E002C0220F331F4A95E2F779 +:1016B0003C68AC0164E0569547956A95E1F7437044 +:1016C000342B8F708695869560E2869FC001112429 +:1016D000822B932B0895982F8827816F906A089505 +:1016E000482F4695469570E2479FA00111248370CC +:1016F000992721E030E0B90102C0660F771F8A9573 +:10170000E2F7CB01842B952B9C680895982F8827AE +:10171000846F906A08958F719927982F8827906217 +:10172000089580E090E0089581E890E4089583E8CA +:1017300090E4089582EE94E4089589EE94E4089587 +:101740008AEE94E4089585EB94E4089586EB94E49E +:10175000089587EB94E408958CEC94E408958DEC5F +:1017600094E4089583E895E408958AE895E408955B +:1017700082E995E4089584E995E4089581E296E488 +:10178000089583E296E4089584E296E4089585E25C +:1017900096E4089586E296E4089587E296E4089533 +:1017A0008AE296E40895089596E0799FF001112465 +:1017B00094E5899FE00DF11D1124E60FF11DEE0F58 +:1017C000FF1FE455FD4F859194910895823891054E +:1017D00049F1B0F48133910509F458C048F48932D5 +:1017E000910509F44EC08A32910509F454C0089558 +:1017F0008533910509F440C08933910599F0089526 +:10180000833E910529F138F4803E910591F0823EA6 +:101810009105A1F00895863E9105F9F0873E910566 +:1018200031F108952091F00120FD3AC021FD38C02A +:1018300008958091F00180FD35C032C08091F001A3 +:1018400082FF32C08091F00184FD30C083EE39C048 +:101850008091F00182FD28C0F5CF8091F00183FFD7 +:1018600027C08091F00184FD21C087EE2AC08091BD +:10187000F00183FD1DC0F5CF8091F00185FD1AC0F8 +:101880001BC08091F00185FD17C014C08091F0014C +:1018900086FD14C015C08091F00186FD11C00EC0F8 +:1018A00080EE0FC089E30DC082EE0BC080E009C05E +:1018B00086EE07C089E205C085E303C08AE201C065 +:1018C00081E390E0089508950C94630C8091710178 +:1018D0000895CF93DF9300D01F92CDB7DEB79C0160 +:1018E0008091F601843019F593E099833B832A8334 +:1018F0009093E9008FEF9091E800815095FD06C02C +:1019000095ED9A95F1F700008111F5CF8091E800EF +:1019100085FF0DC040E050E063E070E0CE0101962D +:101920000E94CF0E8091E8008E778093E8000F90A0 +:101930000F900F90DF91CF910895CF93DF9300D058 +:101940001F92CDB7DEB72091F601243021F522E0B9 +:1019500029839B838A8383E08093E9008FEF9091B2 +:10196000E800815095FD06C095ED9A95F1F70000CD +:101970008111F5CF8091E80085FF0DC040E050E077 +:1019800063E070E0CE0101960E94CF0E8091E800E6 +:101990008E778093E8000F900F900F90DF91CF919A +:1019A00008952091F6012430F1F422E02093E9001B +:1019B0002FEF3091E800215035FD06C035ED3A9506 +:1019C000F1F700002111F5CF2091E80025FF0BC0B1 +:1019D00040E050E065E070E00E94CF0E8091E800AA +:1019E0008E778093E8000895CF93DF93EC01909178 +:1019F000F601943009F046C080910C018823D9F09B +:101A000080910D018823B9F09093E9008FEF9091B8 +:101A1000E800815095FD06C095E19A95F1F7000028 +:101A20008111F5CF8091E80085FF2CC040E050E0A7 +:101A300060E170E017C081E08093E9008FEF909142 +:101A4000E800815095FD06C095ED9A95F1F70000EC +:101A50008111F5CF8091E80085FF14C040E050E08F +:101A600068E070E0CE010E94CF0E8091E8008E7792 +:101A70008093E80080E1FE01A1E6B1E001900D92C3 +:101A80008A95E1F7DF91CF9108958091F501811159 +:101A900009C00E9464100E94C1108091E20084601D +:101AA0008093E20008951092F501089508950C9432 +:101AB00058240E94081F0E945E240E9467130C9401 +:101AC000640C42E061EC81E00E94DE0F42E061ECD8 +:101AD00082E00E94DE0F42E061EC83E00E94DE0FB4 +:101AE00042E161EC84E00C94DE0F8091F8018330D8 +:101AF00009F455C030F4813071F0823009F48EC0A1 +:101B000008958A3009F47AC08B3009F460C08930B6 +:101B100009F09CC020C08091F701813A09F096C07D +:101B20008091E800877F8093E8008091FB0190918D +:101B3000FC01892B21F460E181E691E003C060E0C3 +:101B400080E090E070E00E941A0F8091E8008B77AF +:101B50008093E80008958091F701813209F076C002 +:101B60008091FB019091FC01009719F0039709F017 +:101B70006DC08091E800877F8093E8008091E80045 +:101B800082FD05C08091F6018111F8CF5FC0809180 +:101B9000F100809371018091E8008B7753C08091B0 +:101BA000F701813A09F052C08091FB019091FC014C +:101BB000892B09F04BC08091E800877F8093E80073 +:101BC0008091E80080FFFCCF80910C0136C08091AD +:101BD000F7018132D9F58091FB019091FC01892BAD +:101BE000A9F58091E800877F8093E8000E94131098 +:101BF0008091F90180930C010C9400188091F701F9 +:101C0000813221F58091E800877F8093E8000E946F +:101C100013108091FA018093720108958091F70169 +:101C2000813AA1F48091E800877F8093E800809159 +:101C3000E80080FFFCCF809172018093F1008091D9 +:101C4000E8008E778093E8000C941310089584B711 +:101C5000877F84BF88E10FB6F8948093600010926C +:101C600060000FBE80E880936100109261000E94C6 +:101C7000B6130E9464100E94C1108091E20084603B +:101C80008093E20078940E9447130E94B81382E088 +:101C900091E00E9462130E9446248091F6018530F3 +:101CA00069F40E94D01E8091F4018823B1F30E9450 +:101CB000FA1E882391F30E94B90EEFCF0E94BE1343 +:101CC000ECCF292F332723303105C9F064F42130BC +:101CD000310581F02230310509F043C08DE690E0F6 +:101CE00020ED36E042C021323105F1F022323105DB +:101CF00041F137C082E190E02DE337E036C099270B +:101D00008130910541F08230910541F0892B49F5F0 +:101D1000ECECF6E005C0E4EBF6E002C0ECE9F6E03E +:101D2000849190E09F0121C06430D8F4E62FF0E068 +:101D3000EE0FFF1FEE5DFE4F2081318189E090E0C4 +:101D400014C0643070F470E0FB01EE0FFF1FE65E1C +:101D5000FE4F20813181FB01EA5EFE4F808190E0E1 +:101D600004C080E090E020E030E0FA01318320837D +:101D7000089580E189BD82E189BD09B400FEFDCFEF +:101D80008091D8008F7D8093D8008091E0008260A0 +:101D90008093E0008091E00081FDFCCF0895CF9218 +:101DA000DF92EF92FF920F931F93CF93DF93EC019B +:101DB0008B016A010E943210811133C0C114D10419 +:101DC00039F0F60180819181081B190BC80FD91FCA +:101DD000E12CF12C0115110519F18091E80085FD28 +:101DE00016C08091E8008E778093E800C114D1047A +:101DF00049F0F60180819181E80EF91EF182E082BE +:101E000085E00FC00E943210882321F30AC0899117 +:101E10008093F10001501109FFEFEF1AFF0ADACFAA +:101E200080E0DF91CF911F910F91FF90EF90DF90B5 +:101E3000CF9008952091FD013091FE0126173707BC +:101E400048F06115710539F42091E8002E77209350 +:101E5000E80001C0B90140E061157105A9F12091C8 +:101E6000F601222309F443C0253009F442C0209131 +:101E7000E80023FD40C02091E80022FD32C02091FF +:101E8000E80020FFE9CF4091F3002091F20030E01C +:101E9000342BFC01CF016115710559F02830310553 +:101EA00040F481918093F100615071092F5F3F4FA1 +:101EB000F1CF41E02830310509F040E02091E80001 +:101EC0002E772093E800C8CF4111C9CF0AC0809176 +:101ED000F601882361F0853061F08091E80083FD90 +:101EE0000AC08091E80082FFF2CF80E0089582E08E +:101EF000089583E0089581E008952091FD013091D7 +:101F0000FE012617370748F06115710539F4209155 +:101F1000E8002E772093E80001C0B901FC0120E021 +:101F20006115710591F18091F601882309F440C093 +:101F3000853009F43FC08091E80083FD3DC0809169 +:101F4000E80082FD2FC08091E80080FFE9CF20915A +:101F5000F3008091F20090E0922B6115710559F029 +:101F60008830910540F424912093F100319661501E +:101F700071090196F2CF21E0089709F020E08091E5 +:101F8000E8008E778093E800CBCF2111CCCF0AC038 +:101F90008091F601882361F0853061F08091E8003E +:101FA00083FD0AC08091E80082FFF2CF80E00895AF +:101FB00082E0089583E0089581E00895982F973096 +:101FC00058F59093E900981739F07091EC00209142 +:101FD000ED005091F00003C0242F762F50E021FF38 +:101FE00019C03091EB003E7F3093EB003091ED0053 +:101FF0003D7F3093ED003091EB0031603093EB008A +:102000007093EC002093ED005093F0002091EE00CF +:1020100027FF07C09F5FD3CF8F708093E90081E0D7 +:10202000089580E008958091F70187FF11C08091A5 +:10203000E80082FD05C08091F6018111F8CF11C042 +:102040008091E8008B770BC08091F601882349F0DE +:102050008091E80080FFF8CF8091E8008E77809330 +:10206000E80008952091E4003091E50095E6409164 +:10207000EC00842F817040FF22C08091E80080FD39 +:102080001CC08091F601882391F0853091F08091F9 +:10209000EB0085FD10C04091E4005091E50042172F +:1020A000530729F39A01915011F784E0089582E0D3 +:1020B000089583E0089581E0089580E008954091B7 +:1020C000E80042FFDECF08950E94D2100E94DA108D +:1020D000E0EEF0E0808181608083E8EDF0E08081D7 +:1020E0008F77808319BCA7EDB0E08C918E7F8C93A5 +:1020F00080818F7E80831092F50108950F931F9346 +:10210000CF93DF930E94D2100E94DA10C8EDD0E086 +:1021100088818F77888388818068888388818F7D94 +:10212000888319BC1092F6011092F2011092F4010A +:102130001092F30100EE10E0F80180818B7F808324 +:1021400088818160888342E060E080E00E94DE0F49 +:10215000E1EEF0E080818E7F8083E2EEF0E080812E +:1021600081608083808188608083F80180818E7F98 +:102170008083888180618883DF91CF911F910F9147 +:102180000895E8EDF0E080818F7E8083E7EDF0E058 +:1021900080818160808384E082BF81E08093F5014B +:1021A0000C947E10E8EDF0E080818E7F80831092A9 +:1021B000E20008951092DA001092E10008951F9253 +:1021C0000F920FB60F9211242F933F934F935F936B +:1021D0006F937F938F939F93AF93BF93EF93FF93EF +:1021E0008091E10082FF0BC08091E20082FF07C076 +:1021F0008091E1008B7F8093E1000E9446138091E3 +:10220000DA0080FF1FC08091D80080FF1BC0809142 +:10221000DA008E7F8093DA008091D90080FF0DC0B4 +:1022200080E189BD82E189BD09B400FEFDCF81E076 +:102230008093F6010E94450D05C019BC1092F6016D +:102240000E94530D8091E10080FF19C08091E2004F +:1022500080FF15C08091E2008E7F8093E200809124 +:10226000E20080618093E2008091D80080628093D8 +:10227000D80019BC85E08093F6010E94570D80912B +:10228000E10084FF30C08091E20084FF2CC080E137 +:1022900089BD82E189BD09B400FEFDCF8091D800DF +:1022A0008F7D8093D8008091E1008F7E8093E10044 +:1022B0008091E2008F7E8093E2008091E200816055 +:1022C0008093E2008091F201882311F084E007C03E +:1022D0008091E30087FD02C081E001C083E080932C +:1022E000F6010E94590D8091E10083FF29C0809181 +:1022F000E20083FF25C08091E100877F8093E100A9 +:1023000082E08093F6011092F2018091E1008E7FCD +:102310008093E1008091E2008E7F8093E2008091C3 +:10232000E20080618093E20042E060E080E00E9491 +:10233000DE0F8091F00088608093F0000E94560DBF +:10234000FF91EF91BF91AF919F918F917F916F918D +:102350005F914F913F912F910F900FBE0F901F9063 +:1023600018951F920F920FB60F9211242F933F933F +:102370004F935F936F937F938F939F93AF93BF938D +:10238000CF93DF93EF93FF93C091E900CF708091DB +:10239000EC00D82FD17080FDD0E81092E900809138 +:1023A000F000877F8093F00078940E94F5111092DE +:1023B000E9008091F00088608093F000CD2BCF7011 +:1023C000C093E900FF91EF91DF91CF91BF91AF9161 +:1023D0009F918F917F916F915F914F913F912F913D +:1023E0000F900FBE0F901F9018951F93CF93DF9300 +:1023F000CDB7DEB7AA970FB6F894DEBF0FBECDBF3C +:10240000E7EFF1E088E08E0F9091F10091938E1349 +:10241000FBCF0E94750D8091E80083FF1FC1809162 +:10242000F7019091F801492F50E04A30510508F02A +:1024300015C1FA01EA59FF4F0C94E025803881F06C +:10244000823809F00BC18091FB018F708093E90005 +:102450008091EB0085FB882780F91092E90006C087 +:102460008091F3019091F401911182609091E800C4 +:10247000977F9093E8008093F1001092F100C8C01C +:10248000282F2D7F09F0EAC0882319F0823061F0EF +:10249000E5C08091F901813009F0E0C0933009F086 +:1024A00080E08093F4012BC08091F901811127C055 +:1024B0008091FB018F7009F4D1C08093E9002091D5 +:1024C000EB0020FF1CC0933021F48091EB00806270 +:1024D00014C09091EB0090619093EB0021E030E00C +:1024E000A90102C0440F551F8A95E2F74093EA0004 +:1024F0001092EA008091EB0088608093EB001092CC +:10250000E9008091E800877F86C08111A7C0109103 +:10251000F9011F778091E3008078812B8093E3009D +:102520008091E800877F8093E8000E9413108091DB +:10253000E80080FFFCCF8091E30080688093E30097 +:10254000111102C082E001C083E08093F60186C0D1 +:102550008058823008F082C08091F9019091FA0190 +:102560008C3D53E0950779F583E08A838AE289837D +:102570004FB7F894DE01139620E03EE051E2E32FDE +:10258000F0E050935700E49120FF03C0E295EF7014 +:102590003F5FEF708E2F90E0EA3010F0C79601C0D9 +:1025A000C0968D939D932F5F243149F74FBF809143 +:1025B000E800877F8093E8006AE270E0CE01019630 +:1025C0000E941A0F14C0AE014F5F5F4F6091FB0174 +:1025D0000E94610EBC01009709F440C09091E80090 +:1025E000977F9093E80089819A810E947D0F809166 +:1025F000E8008B778093E80031C0803879F58091CE +:10260000E800877F8093E8008091F2018093F100D9 +:102610008091E8008E778093E8000E9413101EC01E +:1026200081111CC09091F9019230C0F48091E800B2 +:10263000877F8093E8009093F2010E9413108091AD +:10264000F201811106C08091E30087FD02C081E0A4 +:1026500001C084E08093F6010E94610D8091E80042 +:1026600083FF0AC08091E800877F8093E800809113 +:10267000EB0080628093EB00AA960FB6F894DEBF61 +:102680000FBECDBFDF91CF911F9108950895CF93D5 +:102690008091F6018823A1F0C091E900CF7090915C +:1026A000EC00892F817090FD80E8C82B1092E90022 +:1026B0008091E80083FD0E94F511CF70C093E9007E +:1026C000CF91089590937801809377010895E091D8 +:1026D0007701F0917801309721F00190F081E02DA1 +:1026E000099480E00895E0917701F09178013097A6 +:1026F00021F00280F381E02D09940895E0917701A3 +:10270000F0917801309721F00480F581E02D099453 +:10271000089520917501309176018217930771F029 +:102720009093760180937501E0917701F0917801A3 +:10273000309721F00680F781E02D099408952091CB +:102740007301309174018217930771F090937401B3 +:1027500080937301E0917701F0917801309721F037 +:102760000084F185E02D0994089508950C94B51323 +:102770000E940E1F0E9406050C94941F9F92AF9218 +:10278000BF92CF92DF92EF92FF920F931F93CF935E +:10279000DF9300D000D000D0CDB7DEB70E942D056A +:1027A0000DE010E0AA24A394B12C902E802F0E945B +:1027B0001B06980126583E4F6901F901F080F82662 +:1027C000A1F40150110988F78FEF89838A831B8256 +:1027D0000E94171F8160782F9D838C8349815A81C5 +:1027E0006B818D810E9455142FC09091DD0191FF66 +:1027F00004C08E830E9421068E8125E030E0A50171 +:10280000022E01C0440F0A94EAF7E42E4F21C1F0D2 +:1028100029839A828E2191E009F490E09B830E94A3 +:10282000171F8160782F9D838C8349815A816B812A +:102830008D810E945514F6018081E826E08204C053 +:1028400021503109E0F6BDCF0E946221109179013B +:102850000E9467131817B9F00E94671380937901DB +:1028600026960FB6F894DEBF0FBECDBFDF91CF9195 +:102870001F910F91FF90EF90DF90CF90BF90AF909E +:102880009F900C94640C26960FB6F894DEBF0FBE92 +:10289000CDBFDF91CF911F910F91FF90EF90DF900F +:1028A000CF90BF90AF909F900895CF93DF93CDB717 +:1028B000DEB72B970FB6F894DEBF0FBECDBF4F83A8 +:1028C000588769877A878B87DE01119686E0FD013C +:1028D00011928A95E9F785E0FE01379601900D92F5 +:1028E0008A95E1F749815A816B817C818D819E8136 +:1028F0000E949E1A2B960FB6F894DEBF0FBECDBF76 +:10290000DF91CF910895CF93882309F4C2C0C82FD7 +:10291000823859F40E94671381FDBBC089E30E948D +:10292000781D0E94451E89E30CC0833879F40E940B +:10293000671380FDAEC083E50E94781D0E94451E8E +:1029400083E50E94BA1DCF910C94451E843859F43A +:102950000E94671382FD9DC087E40E94781D0E943B +:10296000451E87E4EECF8CEF8C0F813A48F48C2F14 +:102970000E94AC2381118DC08C2F0E94781DE3CF63 +:1029800080E28C0F883048F4C77081E001C0880F66 +:10299000CA95EAF70E94FE1DD6CF8BE58C0F8330D7 +:1029A00078F4C53A29F0C63A31F083E890E005C0E2 +:1029B00081E890E002C082E890E0CF910C94891306 +:1029C00088E58C0F833108F064C0C83A39F1C93A00 +:1029D00041F1CA3A49F1CB3A51F1CC3A59F1CD3AE9 +:1029E00061F1C03B69F1CE3A71F1CF3A79F1C13B67 +:1029F00081F1C23B89F1C33B91F1C43B99F1C53BE5 +:102A0000A1F1C63BA9F1C73BB1F1C83BB9F1C93B44 +:102A1000C1F1CA3BC9F180E090E038C082EE90E09D +:102A200035C089EE90E032C08AEE90E02FC085EB91 +:102A300090E02CC086EB90E029C087EB90E026C0A8 +:102A40008CEC90E023C08DEC90E020C083E891E016 +:102A50001DC08AE891E01AC082E991E017C084E9BC +:102A600091E014C081E292E011C083E292E00EC0D6 +:102A700084E292E00BC085E292E008C086E292E038 +:102A800005C087E292E002C08AE292E0CF910C9406 +:102A90009F13CF910895882309F44BC0823859F4CD +:102AA0000E94671381FF45C089E30E94781D0E9440 +:102AB000451E89E30CC0833871F40E94671380FFC0 +:102AC00038C083E50E94781D0E94451E83E50E9460 +:102AD000BA1D0C94451E843859F40E94671382FF76 +:102AE00028C087E40E94781D0E94451E87E4EFCF2E +:102AF0009CEF980F913A58F390E2980F983050F469 +:102B0000877091E001C0990F8A95EAF7892F0E949A +:102B1000041EDFCF9BE5980F933020F480E090E017 +:102B20000C948913885A833120F480E090E00C944F +:102B30009F130895882321F00E94FE1D0C94451ECA +:102B40000895882321F00E94041E0C94451E0895C8 +:102B50007F928F929F92AF92BF92CF92DF92EF922D +:102B6000FF920F931F93CF93DF931F92CDB7DEB7E2 +:102B70007C01C62E772EFC01058102950F70128113 +:102B800011110E941B1E0E94711D882379F01123D0 +:102B900069F080E28C0D883048F082E00E945A1D76 +:102BA0000E94711D91E0D82ED92601C0D12CE72DAD +:102BB000E295EF70F0E0E059FF4F0C94E025872D8F +:102BC000807F072D0F70882311F00295007F11235D +:102BD00089F0002309F490C180E28C0D883020F444 +:102BE000802F0E94FE1D03C0802F0E940E1E0E9497 +:102BF000451E82C18C2D0E944B15002309F495C1FE +:102C000080E28C0D883020F4802F0E94041E03C0C7 +:102C1000802F0E94141E0E94451E87C1972D907F11 +:102C2000872D8F70903211F08295807FCC2021F01B +:102C3000F1E0CF16B1F01EC0112349F0002309F4D2 +:102C400014C1013009F011C10E942E1E6EC1002373 +:102C500019F0013009F469C189830E94311E89810C +:102C60000AC1112321F0023008F05FC1FEC001113A +:102C70005CC101C1112321F0002309F4F6C03CC15D +:102C8000002309F4F8C03EC1872D86958695837090 +:102C900090E0009719F0019761F047C1112321F0EE +:102CA0008C2D972D937002C080E090E00E948913D4 +:102CB0003CC1112321F08C2D972D937002C080E030 +:102CC00090E00E949F1331C18C2D112319F00E94B6 +:102CD0006A2002C00E94D2200E94572126C1872D5F +:102CE000837009F052C0111120C18C2D82958695F8 +:102CF0008770880F880F9C2D9F70892E912CA12C96 +:102D0000B12C082E04C0880C991CAA1CBB1C0A9468 +:102D1000D2F7C4FE14C00FE010E020E030E0B901AB +:102D2000A80104C0440F551F661F771F8A95D2F76C +:102D3000CB01BA01609570958095909503C060E0D5 +:102D400070E0CB01272D26952695237030E02230A8 +:102D5000310569F02330310589F0682979298A29FC +:102D60009B292130310571F00E94E61BDEC06829E5 +:102D700079298A299B290E94021CD7C00E94E61B40 +:102D8000C501B4010E94CA1BD0C0112319F0872DC0 +:102D9000817001C08695882309F4C7C08C2D829567 +:102DA00086958770880F880F9C2D9F70892E912C97 +:102DB000A12CB12C082E04C0880C991CAA1CBB1C89 +:102DC0000A94D2F7C4FE14C00FE010E020E030E017 +:102DD000B901A80104C0440F551F661F771F8A95CB +:102DE000D2F7CB01BA01609570958095909503C09C +:102DF00060E070E0CB01272D269526952370422FA9 +:102E000050E04230510569F04330510589F068299E +:102E100079298A299B294130510571F00E94C01CF3 +:102E200084C0682979298A299B290E94DC1C7DC0DD +:102E30000E94C01CC501B4010E94A41C76C08C2D48 +:102E400090E0FC01E05EF109E531F10508F050C0C9 +:102E5000E058FF4F0C94E0250C2D0F70872D8F71DB +:102E6000112331F00E943D1C802F0E949A155DC0F5 +:102E70000E945E1C802F0E94A11557C0112339F0BB +:102E8000011153C0872D8F710E94831C4EC00230E8 +:102E900008F04BC0F7CF112339F0872D8F710E94B6 +:102EA0003D1C43C01123C9F3872D8F710E945E1C06 +:102EB0003CC0112329F0872D8F710E94281C35C03A +:102EC0000E941E1C32C0112351F0172D1F71812F3B +:102ED0000E943D1C63E0812F0E94511D26C081E0AD +:102EE0000E945A1D023008F182E00E945A1D1DC046 +:102EF000112331F0002389F28C2D0E94831415C018 +:102F0000002391F28C2D0E944B150FC0472D4F705E +:102F10006C2DC7010E94F7060E94421B06C0472D78 +:102F20004F706C2DC7010E94D30BDD20F9F00E9479 +:102F30004D1D80FD1BC0F70112820E94471D0E949B +:102F40003D1CC7010E94C5170E94471D0F90DF91CD +:102F5000CF911F910F91FF90EF90DF90CF90BF9096 +:102F6000AF909F908F907F900C945E1C0F90DF919C +:102F7000CF911F910F91FF90EF90DF90CF90BF9076 +:102F8000AF909F908F907F9008950F931F93CF9352 +:102F9000DF93EC01888199812B813C81232BB9F04F +:102FA0009F3F11F48F3F99F0CE010E94640888235F +:102FB00071F0688179818A810E94431D8C010E9491 +:102FC000F81C0E94BF1BB801CE010E94A815DF911A +:102FD000CF911F910F9108950E941B1E0E942B1EDE +:102FE0000E94F01D0E94451E0E9408220E94572147 +:102FF00080E090E00E94891380E090E00C949F13A1 +:103000000E940B1E0C94EC170E94381D292F22954C +:103010002F7030E02C3031054CF42A3031056CF43F +:103020002250310922303105A8F407C02C30310577 +:1030300069F02F30310551F00DC0803F69F018F470 +:10304000803E40F409C0843F29F406C093FB8827E2 +:1030500080F9089580E0089581E00895CF93DF938B +:1030600000D000D01F92CDB7DEB70F900F900F9019 +:103070000F900F90DF91CF910895CF93DF9300D001 +:1030800000D000D0CDB7DEB726960FB6F894DEBFDD +:103090000FBECDBFDF91CF9108951F93CF93DF93E4 +:1030A000C091880116E080918901C81799F0D0E09D +:1030B0001C9FF0011D9FF00D1124E657FE4F40812B +:1030C000518162817381848195810E943D1821968E +:1030D000C770E9CFDF91CF911F9108954091BA0158 +:1030E0005091BB016091BC017091BD018091BE0106 +:1030F0009091BF010C943D188091BF0182958F7013 +:1031000009F054C08091BC01882309F44FC080911C +:103110008801A09189016091BA017091BB01409131 +:10312000BD015091BE01B6E08A1709F43FC090E09E +:1031300041155105C1F17F3F11F46F3FA1F1B89FD7 +:10314000F001B99FF00D1124E657FE4F2181721353 +:103150002AC02081621327C02281211124C023812B +:1031600034812417350710F421503109241B350B05 +:10317000283C3105C0F42091BF012F7020612093BD +:10318000BF0126E0289FF001299FF00D1124E1578F +:10319000FE4F80818F70806180838AEB91E00E9476 +:1031A000C5170C944D1801968770BECF0895CF9225 +:1031B000DF92EF92FF920F931F93CF93DF93CDB7E0 +:1031C000DEB762970FB6F894DEBF0FBECDBF8C019D +:1031D00085E0F801DE011D9601900D928A95E1F7D8 +:1031E000D8014C9111965C91119712966C9112979F +:1031F0001396CD90DC9014973091BA017091BB0179 +:103200008091BD019091BE01009709F46BC17F3F91 +:1032100019F43F3F09F466C1E090BC01EE2009F4C7 +:10322000C0C02091BF01C816D90628F0F601E81BDE +:10323000F90BCF0104C0809590958C0D9D1DFF2446 +:10324000F394883C910578F0F12C207F09F0C6C0FA +:103250007C2DD98AC88A89890E942E188AEB91E030 +:103260000E94C517B1C0822F807F09F046C0751338 +:1032700014C0341312C0611110C02F70206120934C +:10328000BF010E946E188AEB91E00E94C5178091E1 +:10329000BF01D80115968C932EC0CD2819F15F3F40 +:1032A00011F44F3FF9F0F62E61111CC08091880196 +:1032B0002091890136E0821709F45AC090E0389FC6 +:1032C000F001399FF00D1124E657FE4F718157131D +:1032D00006C07081471303C07281711103C001964B +:1032E0008770E9CFF62E662309F418C18091BF01DB +:1032F00081608093BF01F12C11C1751308C0341394 +:1033000006C0611104C08091BF01D801C3C04D87C0 +:103310005E878D859E856A8B0E9404186A89882342 +:10332000E1F16623D1F12091BF01822F82958F7048 +:1033300090E0029774F08091BA019091BB01988758 +:103340008F831986DB86CA862C87CE0107960E945A +:10335000C51786E0F801AAEBB1E001900D928A95BD +:10336000E1F70E947C180E946E18FF24F394D6C0E7 +:103370004D875E878D859E850E94381D292F229559 +:103380002F7030E0223031050CF0BCC09F7009F086 +:10339000B6C0805E883008F4C1C0C8010E94C5175D +:1033A000E4CFC816D90608F453C0F601E81BF90BA0 +:1033B000CF01883C910508F450C0F12C7C2DD98AAE +:1033C000C88A89890E942E18EAEBF1E086E0DF01C5 +:1033D0001D928A95E9F70E946E18A0C0751314C05B +:1033E000341312C0611110C08091BF01F8018583B0 +:1033F000C8010E94C51786E0EAEBF1E0DF011D92EB +:103400008A95E9F7FE2C8AC04D875E878D859E855B +:103410006A8B0E9404186A89882309F4BECF662348 +:1034200009F4BBCF2091BF01822F82958F7090E06D +:1034300002970CF48ECF8091BA019091BB019A83D0 +:1034400089831B82DD82CC822E83CE0101967FCFC1 +:10345000809590958C0D9D1DACCFF62E662309F4BA +:103460009CCF75132EC034132CC02091BF0120FDBA +:103470001FC0822F82958F70D9F0D80115962C939A +:1034800015978F3049F08F5F982F9295907F822FFC +:103490008F70892B15968C93C8010E94C51786E002 +:1034A000F801AAEBB1E001900D928A95E1F793CF74 +:1034B00086E0F801AAEBB1E001900D928A95E1F760 +:1034C0002DC04D875E878D859E850E9404188111D1 +:1034D00040CF8091BF0181608093BF01C8010E94ED +:1034E000C5171CC0662309F458CF4D875E878D85AC +:1034F0009E850E940418882309F44FCF2ACF81119A +:1035000048CF0CC0243031050CF047CF9F7009F430 +:1035100040CFF8019581907F09F03BCF8F2D6296C7 +:103520000FB6F894DEBF0FBECDBFDF91CF911F91D4 +:103530000F91FF90EF90DF90CF9008951F93CF935E +:10354000DF93CDB7DEB72C970FB6F894DEBF0FBE72 +:10355000CDBF4F83588769877A878B879C87CE0139 +:1035600007960E94D718882369F08F8198852A854D +:103570003B85232BF1F19F3F09F063C08F3F09F09A +:1035800060C037C086E0FE013796DE0111960190DB +:103590000D928A95E1F76F817885EA85FB853097F2 +:1035A00041F17F3F11F46F3F21F12091890130E01B +:1035B000C9010196877099274091880150E08417CE +:1035C000950709F447C069837A83FD83EC8396E00D +:1035D000929FD001939FB00D1124A657BE4FFE01BC +:1035E000319601900D929A95E1F7809389010E949E +:1035F0004D1816E080918801909189018917C1F1D9 +:10360000189FC001112486579E4F0E94D718882307 +:1036100079F1E09188011E9FF0011124E657FE4FD9 +:103620004081518162817381848195810E943D181E +:103630008091880190E00196877099278093880196 +:10364000D9CF4F81588569857A858B859C850E9465 +:103650003D18CFCF0E940018109289011092880166 +:10366000EAEBF1E086E0DF011D928A95E9F7C1CF30 +:103670002C960FB6F894DEBF0FBECDBFDF91CF9171 +:103680001F910895EF92FF920F931F93CF93DF93B3 +:103690008C01009709F46CC0F12CEE24E394E8014E +:1036A0002196F8018491843740F4843008F051C0A9 +:1036B000813081F0823019F15BC0853709F444C054 +:1036C000A8F19CE7980F903708F052C08F770E94BE +:1036D0004B1541C00E5F1F4FFE01C49180E28C0F5D +:1036E000883048F4C7708E2D01C0880FCA95EAF75C +:1036F0000E941E1E14C08C2F0E9483142DC00E5FCA +:103700001F4FFE01C49180E28C0F883058F4C770BF +:103710008E2D01C0880FCA95EAF70E94241E0E94D0 +:10372000451E1AC08C2F0E944B1516C00E5F1F4FEE +:10373000FE01C491CC2381F08FE99FE00197F1F75E +:1037400000C00000C150F6CF0E5F1F4FFE01F49085 +:1037500003C00E9483148E018F2D882309F49FCF0C +:10376000EFE9FFE03197F1F700C000008150F5CF9D +:10377000DF91CF911F910F91FF90EF9008950895E1 +:103780006093C4017093C5018093C6019093C701F3 +:103790000C94EC170F931F930091C4011091C50175 +:1037A0002091C6013091C701DC01CB01802B912B08 +:1037B000A22BB32B8093C4019093C501A093C601A3 +:1037C000B093C7011F910F910C94EC170F931F93A7 +:1037D0000091C4011091C5012091C6013091C7012B +:1037E000DC01CB0180239123A223B3238093C40166 +:1037F0009093C501A093C601B093C7011F910F918B +:103800000C94EC170F931F930091C4011091C50104 +:103810002091C6013091C701DC01CB01802791279F +:10382000A227B3278093C4019093C501A093C6013A +:10383000B093C7011F910F910C94EC171092C00127 +:103840001092C1011092C2011092C3010C94EC17A6 +:1038500041E050E060E070E004C0440F551F661F77 +:10386000771F8A95D2F74093C0015093C1016093AE +:10387000C2017093C3010C94EC1741E050E060E08A +:1038800070E004C0440F551F661F771F8A95D2F75A +:103890008091C0019091C101A091C201B091C3017A +:1038A000482B592B6A2B7B2B4093C0015093C101AD +:1038B0006093C2017093C3010C94EC1741E050E097 +:1038C00060E070E004C0440F551F661F771F8A95A3 +:1038D000D2F740955095609570958091C001909178 +:1038E000C101A091C201B091C301482359236A23A9 +:1038F0007B234093C0015093C1016093C201709338 +:10390000C3010C94EC1741E050E060E070E004C0AB +:10391000440F551F661F771F8A95D2F78091C0010B +:103920009091C101A091C201B091C30148275927CC +:103930006A277B274093C0015093C1016093C20165 +:103940007093C3010C94EC170F931F930091C00167 +:103950001091C1012091C2013091C301DC01CB0162 +:10396000802B912BA22BB32B8093C0019093C1018C +:10397000A093C201B093C3011F910F910C94EC1757 +:103980000F931F930091C0011091C1012091C201BA +:103990003091C301DC01CB0180239123A223B32307 +:1039A0008093C0019093C101A093C201B093C30161 +:1039B0001F910F910C94EC170F931F930091C0016E +:1039C0001091C1012091C2013091C301DC01CB01F2 +:1039D00080279127A227B3278093C0019093C1012C +:1039E000A093C201B093C3011F910F910C94EC17E7 +:1039F0000895CF92DF92EF92FF920F931F93CF9390 +:103A0000DF938C01C090C401D090C501E090C60145 +:103A1000F090C7018091C0019091C101A091C201B5 +:103A2000B091C301C82AD92AEA2AFB2ACFE1D0E003 +:103A3000D701C6010C2E04C0B695A795979587951A +:103A40000A94D2F780FF06C0B8018C2F0E94520A58 +:103A5000019721F4219760F780E001C08C2FDF915E +:103A6000CF911F910F91FF90EF90DF90CF9008952D +:103A7000CF93DF93EC010E94F91CBE010E94520A11 +:103A8000DF91CF910895CB010E94381D0895809158 +:103A9000C80185958595859508958091C8018770A1 +:103AA000089598E0899F90011124262B2093C80146 +:103AB0000C943D1C2091C801809582238093C801FD +:103AC000982F977069F430E0482F552747FD50959F +:103AD0002417350729F08595859585950C945E1CEE +:103AE00008959091C801977081E009F480E00895ED +:103AF00090910C01992321F090910D01911109C031 +:103B000020910E0130910F01F90132969FEF40E0B4 +:103B10001FC0982F9695969596959F3050F5E091F9 +:103B20000E01F0910F01E90FF11D877021E030E0E7 +:103B3000A90102C0440F551F8A95E2F7CA0191817D +:103B4000892B818308959F3F39F04F5F4E3041F0BC +:103B500051915813F8CF0DC05111F7CF942FF5CFD5 +:103B60009F3F39F0F901E90FF11D97FDFA95828326 +:103B70000895089590910C01992321F090910D01E1 +:103B8000911109C020910E0130910F01F901329677 +:103B9000205F3F4F1FC0982F9695969596959F3022 +:103BA000F0F4E0910E01F0910F01E90FF11D877023 +:103BB00021E030E0A90102C0440F551F8A95E2F7C9 +:103BC000CA01809591818923818308953196E217F6 +:103BD000F30729F090819813F9CF1082F7CF089559 +:103BE00081E090E0E0910E01F0910F01E80FF91FE4 +:103BF0001082019680319105A9F708959091DC011A +:103C0000892B8093DC01089580959091DC018923B4 +:103C10008093DC0108951092DC0108959091DB01FE +:103C2000892B8093DB01089580959091DB01892396 +:103C30008093DB0108951092DB0108959091DA01E1 +:103C4000892B8093DA01089580959091DA01892378 +:103C50008093DA0108951092DA0108958093C901E2 +:103C600008951092C901089580910E0190910F015D +:103C7000FC0131969C01205F3F4F80E091919111B2 +:103C80008F5FE217F307D1F70895E0910E01F091ED +:103C90000F018091DC018083E0910E01F0910F0112 +:103CA00090818091DB01892B8083E0910E01F0915E +:103CB0000F0190818091DA01892B80838091C90165 +:103CC000882361F0E0910E01F0910F019081892B22 +:103CD00080830E94341E81111092C90180910E01CF +:103CE00090910F010C94731320E0009739F0AC0110 +:103CF00041505109842395232F5FF7CF822F0895D8 +:103D0000CF92DF92EF92FF926C01EE24FF24C11458 +:103D1000D104E104F10421F0C701B60120E101C0A2 +:103D200020E0C72ED82EE92EFF24C114D104E104CF +:103D3000F10419F0285FC701B6016B017C0154E062 +:103D4000F694E794D794C7945A95D1F7C114D10447 +:103D5000E104F10419F02C5FC701B6016B017C018D +:103D600042E0F694E794D794C7944A95D1F7C114EA +:103D7000D104E104F10419F02E5FC701B601DC01A2 +:103D8000CB01B695A79597958795892B8A2B8B2B79 +:103D900009F02F5F822FFF90EF90DF90CF90089572 +:103DA0008091F601843021F11092DE0120E488E157 +:103DB00090E00FB6F894A895809360000FBE209312 +:103DC000600080E00E94640C83B7817F846083BFC1 +:103DD00083B7816083BF7894889583B78E7F83BFD4 +:103DE00088E10FB6F89480936000109260000FBED7 +:103DF000089508950E941A050E942D050E94F91E3B +:103E00000E94220691E0811101C090E0892F08955F +:103E10000E9400180E9467130C94640C82E084BD19 +:103E200093E095BD9AEF97BD80936E0008952FB7EC +:103E3000F8948091DF019091E001A091E101B091AF +:103E4000E2012FBF0895CF92DF92EF92FF920F937E +:103E50001F932FB7F8944091DF015091E0016091DA +:103E6000E1017091E2012FBF6A017B01EE24FF2482 +:103E70008C0120E030E0C016D106E206F30610F413 +:103E8000415051099A01281B390BC9011F910F910B +:103E9000FF90EF90DF90CF9008951F920F920FB692 +:103EA0000F9211248F939F93AF93BF938091DF0163 +:103EB0009091E001A091E101B091E2010196A11D74 +:103EC000B11D8093DF019093E001A093E101B093D5 +:103ED000E201BF91AF919F918F910F900FBE0F9014 +:103EE0001F9018950E946410F8942FEF87EA91E6CE +:103EF000215080409040E1F700C0000087E090EB47 +:103F0000DC018093FF0190930002A0930102B09323 +:103F100002029CE088E10FB6F894A89580936000B7 +:103F20000FBE90936000FFCF0E94CC1F811102C092 +:103F30000E94B21F0E94D71F8093DD010E94DF1FE5 +:103F400090E09093F1018093F00187FB882780F93E +:103F500080930D010E94DB1F682F70E080E090E0ED +:103F60000C94C01B6DEE7EEF80E090E00E941A265C +:103F700060E082E090E00E94082660E083E090E04C +:103F80000E94082660E084E090E00E94082660E03D +:103F900085E090E00C94082680E090E00E940226E4 +:103FA00021E08D3E9E4F09F020E0822F089582E0AF +:103FB00090E00C94FA2583E090E00C94FA2584E0DC +:103FC00090E00C94FA25682F84E090E00C94082689 +:103FD0008091E50180FF0BC06091130185E0689F2F +:103FE000B001112475956795759567952BC081FF74 +:103FF00009C06091130185E0689FB0011124759597 +:10400000679520C082FF07C06091130185E0689F1B +:10401000B001112417C09091E6019923D1F060916D +:104020001201961788F72091130185E0289F9001CF +:104030001124929FA001939F500D112470E0CA019A +:104040000E94CC256038710540F46115710539F086 +:1040500002C065E070E0862F08958FE7089581E043 +:1040600008958091E50180FF08C06091110170E022 +:10407000759567957595679521C081FF06C060911C +:10408000110170E07595679519C082FF04C06091B9 +:10409000110170E010C09091E6019923C1F0609188 +:1040A00010019617A0F780911101899FC00111247A +:1040B00070E00E94CC256038710528F46115710507 +:1040C00021F0862F08958FE7089581E0089561E03B +:1040D00070E0F4CF803F21F40E94E81F819504C076 +:1040E000813F29F40E94E81F8093E9010895823FEF +:1040F00021F40E94E81F819504C0833F29F40E94A7 +:10410000E81F8093E8010895893F19F40E94312047 +:1041100005C08A3F31F40E94312081958093EA01E5 +:1041200008958B3F21F40E943120819504C08C3F7B +:1041300029F40E9431208093EB010895843F21F4FB +:104140008091E701816017C0853F21F48091E701EC +:10415000826011C0863F21F48091E70184600BC02A +:10416000873F21F48091E701886005C0883F31F4E2 +:104170008091E70180618093E70108958D3F21F4EC +:104180008091E50181600BC08E3F21F48091E501B3 +:10419000826005C08F3F29F48091E501846080939F +:1041A000E5010895803F39F48091E90187FF6CC0F3 +:1041B0001092E90169C0813F29F48091E901181644 +:1041C000BCF362C09091E801823F29F497FF5CC084 +:1041D0001092E80159C0833F19F41916CCF354C06A +:1041E000893F41F48091EA0118160CF04DC01092FD +:1041F000EA014AC08A3F29F48091EA0187FF44C05E +:10420000F6CF8B3F39F48091EB0187FF3DC01092D0 +:10421000EB013AC08C3F29F48091EB011816BCF3F6 +:1042200033C0843F21F48091E7018E7F17C0853F22 +:1042300021F48091E7018D7F11C0863F21F48091A8 +:10424000E7018B7F0BC0873F21F48091E701877FD7 +:1042500005C0883F31F48091E7018F7E8093E701AC +:1042600013C08D3F21F48091E5018E7F0BC08E3FFE +:1042700021F48091E5018D7F05C08F3F29F4809165 +:10428000E5018B7F8093E5018091E80181110EC0EB +:104290008091E90181110AC08091EA01811106C073 +:1042A0008091EB01811102C01092E601089587EE22 +:1042B00091E00E947E130E94171F9093E401809367 +:1042C000E30108951F93CF93DF938091E3019091D1 +:1042D000E4010E94231FAC019091E601992321F093 +:1042E0002091140130E006C0209115018AE0289F3A +:1042F000900111244217530708F486C08091E80109 +:10430000C091E901D091EA011091EB01811107C040 +:10431000C11176C0D11174C0111172C075C09F3F18 +:1043200019F09F5F9093E601181624F40E94E81F8D +:104330008093E8018091E80187FF05C00E94E81F93 +:1043400081958093E8011C1624F40E94E81F809355 +:10435000E9018091E90187FF05C00E94E81F81956E +:104360008093E9016091E801662339F1C091E90188 +:10437000CC2319F1772767FD7095872F972F0E941F +:10438000DD2423E333E343E35FE30E9441250E94FE +:10439000AA246093E8016C2F772767FD7095872F1B +:1043A000972F0E94DD2423E333E343E35FE30E947E +:1043B00041250E94AA246093E9011D1624F40E945D +:1043C00031208093EA018091EA0187FF05C00E94B5 +:1043D000312081958093EA01111624F40E94312046 +:1043E0008093EB018091EB0187FF05C00E94312093 +:1043F00081958093EB01DF91CF911F910C94572110 +:104400009F3F09F08ECF96CFDF91CF911F910895F6 +:10441000E7EEF1E085E0DF011D928A95E9F7109261 +:10442000E6011092E5010895833081F128F481308E +:1044300059F08230D1F00895853009F449C0B8F1BF +:10444000863009F456C0089580911501262F30E07A +:10445000280F311D2F3F310524F4680F609315019B +:1044600008958FEF80931501089580911401262FF0 +:1044700030E0280F311D2F3F310524F4680F609381 +:10448000140108958FEF8093140108958091130112 +:10449000262F30E0280F311D2F3F310524F4680FFF +:1044A0006093130108958FEF809313010895809115 +:1044B0001201262F30E0280F311D2F3F310524F443 +:1044C000680F6093120108958FEF80931201089591 +:1044D00080911101262F30E0280F311D2F3F31052B +:1044E00024F4680F6093110108958FEF80931101F8 +:1044F000089580911001262F30E0280F311D2F3FA5 +:10450000310524F4680F6093100108958FEF8093B4 +:1045100010010895833011F128F4813049F0823080 +:1045200091F00895853081F120F18630C1F1089530 +:1045300080911501681720F4861B8093150108955A +:1045400010921501089580911401681720F4861BBC +:10455000809314010895109214010895809113011D +:10456000681720F4861B809313010895109213019D +:10457000089580911201681720F4861B8093120120 +:10458000089510921201089580911101681720F486 +:10459000861B809311010895109211010895809156 +:1045A0001001681720F4861B809310010895109263 +:1045B000100108950F931F938D3109F471C008F015 +:1045C00045C0803109F485C008F5873009F46FC013 +:1045D00068F4863009F0ADC08091DD01817F8E7F67 +:1045E0008093DD0181E08093ED01A4C08B3009F45C +:1045F0009EC08E3009F09DC08091DD0182FB222794 +:1046000020F991E0922790FB82F96CC0863109F481 +:104610008EC060F4813109F08CC00E940018909126 +:104620000D0181E0892780930D0181C0893109F452 +:104630007EC08B3109F07DC08091DD0181FB222796 +:1046400020F991E0922790FB81F94CC0853309F461 +:1046500066C048F4873209F462C008F44FC089325A +:1046600009F45DC066C0833438F48A3308F044C06E +:10467000883309F45CC05DC0833409F450C08834C9 +:1046800009F057C00E9400180FEF13ED20E301500E +:1046900010402040E1F700C000000E94721F47C098 +:1046A0000E9464240E9467130E94640C40C0909191 +:1046B000DD01892F8095817080FB90F929F096604B +:1046C00098609093DD0136C0997F977F9093DD01CC +:1046D0002EC08091DD0183FB222720F991E09227F3 +:1046E00090FB83F98093DD01992309F18091DD012D +:1046F00081608093DD011BC0895301C08D5141E071 +:1047000050E060E070E08A019B0104C0000F111FBF +:10471000221F331F8A95D2F7C901B80104C061E096 +:1047200070E080E090E00E94C01B0E94001881E0D1 +:1047300001C080E01F910F91089580E0089580E00E +:1047400008958E518A3030F4E82FF0E0E65DFE4F98 +:104750008081089580E00895CF93C82F8091ED0166 +:10476000813079F018F08230E9F186C0E0910E01D5 +:10477000F0910F018081813169F0823209F07EC0B1 +:1047800009C0E0910E01F0910F018081813111F09B +:10479000823261F48C2F0E949D23811104C08C2FE2 +:1047A0000E94DA221DC081E090E01AC08C2F0E9486 +:1047B0009F23811114C0C43179F048F4CB3079F0D3 +:1047C000C03109F05FC082E08093ED0108C0C932BA +:1047D00019F0C83321F056C01092ED0153C081E0AA +:1047E000817052C0C93281F110F5C43169F1A8F469 +:1047F000C73009F045C08AE08093150194E1909399 +:10480000140193E0909313018093120188E0809348 +:10481000110188E28093100133C082EE8C0F863044 +:1048200078F58C2F0E94A1238093EC0129C0CE340F +:10483000E9F020F4CB3421F56AE013C0C13579F0FA +:10484000C235F1F461E00DC08091EC01882319F0CC +:104850001092EC0115C081E08093ED0115C061E07C +:1048600006C08091EC010E9414220AC06AE0809187 +:10487000EC010E948A2204C01092ED0180E004C085 +:1048800081E002C080E0ACCFCF910895E1E8F0E094 +:104890008081886080838081816080838FB7F89475 +:1048A00093E09093890090ED909388008FBF0895D6 +:1048B000EFE6F0E08081826080830895EFE6F0E02B +:1048C00080818D7F80830895EFE6F0E0908182E023 +:1048D0008927808308951F920F920FB60F9211249B +:1048E0002F933F934F935F936F937F938F939F93F8 +:1048F000AF93BF93EF93FF938091EE019091EF01FF +:1049000001969093EF018093EE01811103C082E044 +:104910000E94640CE091EF01E695E695F0E0E55B1E +:10492000F74FE4918091EE018E1303C080E00E9466 +:10493000640CFF91EF91BF91AF919F918F917F9107 +:104940006F915F914F913F912F910F900FBE0F90FC +:104950001F90189504D06894B1118DC0089570D03F +:1049600088F09F5790F0B92F9927B751A0F0D1F058 +:10497000660F771F881F991F1AF0BA95C9F712C0E2 +:10498000B13081F077D0B1E0089574C0672F782FEF +:104990008827B85F39F0B93FCCF38695779567954E +:1049A000B395D9F73EF490958095709561957F4FBA +:1049B0008F4F9F4F0895E89409C097FB3EF4909560 +:1049C0008095709561957F4F8F4F9F4F9923A9F0E8 +:1049D000F92F96E9BB279395F69587957795679577 +:1049E000B795F111F8CFFAF4BB0F11F460FF1BC0BB +:1049F0006F5F7F4F8F4F9F4F16C0882311F096E94E +:104A000011C0772321F09EE8872F762F05C06623FB +:104A100071F096E8862F70E060E02AF09A95660FB4 +:104A2000771F881FDAF7880F9695879597F908956D +:104A300057FD9058440F551F59F05F3F71F047954F +:104A4000880F97FB991F61F09F3F79F08795089534 +:104A5000121613061406551FF2CF4695F1DF08C053 +:104A6000161617061806991FF1CF86957105610570 +:104A700008940895E894BB2766277727CB0197F918 +:104A800008950BD078C069D028F06ED018F0952327 +:104A900009F05AC05FC01124EECFCADFA0F3959F82 +:104AA000D1F3950F50E0551F629FF001729FBB2715 +:104AB000F00DB11D639FAA27F00DB11DAA1F649FC1 +:104AC0006627B00DA11D661F829F2227B00DA11D74 +:104AD000621F739FB00DA11D621F839FA00D611DFA +:104AE000221F749F3327A00D611D231F849F600D1B +:104AF000211D822F762F6A2F11249F5750408AF054 +:104B0000E1F088234AF0EE0FFF1FBB1F661F771FDF +:104B1000881F91505040A9F79E3F510570F014C076 +:104B2000AACF5F3FECF3983EDCF3869577956795C7 +:104B3000B795F795E7959F5FC1F7FE2B880F911DFD +:104B40009695879597F9089597F99F6780E870E0A3 +:104B500060E008959FEF80EC089500240A941616F3 +:104B6000170618060906089500240A94121613065B +:104B7000140605060895092E0394000C11F48823E9 +:104B800052F0BB0F40F4BF2B11F460FF04C06F5F05 +:104B90007F4F8F4F9F4F089597FB072E16F4009479 +:104BA00007D077FD09D00E94E62507FC05D03EF42A +:104BB000909581959F4F0895709561957F4F0895C9 +:104BC000EE0FFF1F0590F491E02D0994AA1BBB1B6B +:104BD00051E107C0AA1FBB1FA617B70710F0A61BFD +:104BE000B70B881F991F5A95A9F780959095BC011E +:104BF000CD010895F999FECF92BD81BDF89A99270C +:104C000080B50895A8E1B0E042E050E00C9422267F +:104C1000262FF999FECF92BD81BDF89A019700B475 +:104C2000021639F01FBA20BD0FB6F894FA9AF99A15 +:104C30000FBE08950196272F0E9409260C9408267E +:104C4000DC01CB01FC01F999FECF06C0F2BDE1BD4C +:104C5000F89A319600B40D9241505040B8F708953B +:044C6000F894FFCFF6 +:104C64000220660CF40CD10C9D0C690C0101CA01E4 +:104C740028080A03140A404D36390B08BE07880772 +:104C84004F07E206FB0614072D070102030405067D +:044C94000708090004 +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/osx_de_experimental/keymap.c b/keyboards/ergodox_ez/keymaps/osx_de_experimental/keymap.c new file mode 100644 index 000000000..21d695894 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/osx_de_experimental/keymap.c @@ -0,0 +1,597 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_neo2.h" +#include "keymap_uk.h" +#include "keymap_colemak.h" +#include "keymap_nordic.h" +#include "keymap_dvorak.h" +#include "keymap_german.h" +#include "keymap_norwegian.h" +#include "keymap_fr_ch.h" +#include "keymap_german_osx.h" +#include "keymap_spanish.h" +#include "keymap_bepo.h" + + +/** +* This layout was generated using the ErgodoxLayoutGenerator (ELG). You can download it from https://github.com/sboesebeck/ErgodoxLayoutGenerator/releases +* documentation about it can be found here https://boesebeck.name/2016/04/16/ergodoxlayoutgenerator-documentation/ +* Thanks to the team of Erez Zukerman for building the great Ergodox-EZ! +* +* use at own risk! +**/ + +#define BASE 0 +#define SYMB 1 +#define MDIA 2 +#define SMLY 3 +#define NUMB 4 +#define EGOS 5 + +#define SMLY_TOG_QUOT 0 + +#define M_TOGGLE_5 1 + +#define TGH_NUM 2 + +#define M_DE_OSX_PLUS_CTRLALT 3 + +#define SM_KISS 4 + +#define SM_FROWN 5 + +#define SM_CRY 6 + +#define SM_SMILE 7 + +#define SM_SMIRK 8 + +#define M_LGUI_SHFT 9 + +#define SM_HEART 10 + +#define TOG_HLD_MDIA 11 + +#define SM_LAUGH 12 + +#define SM_SAD 13 + +#define M_DE_OSX_CIRC_CTRLCMD 14 + +#define M_MEH_SH_ACUT 15 + + +//Layout keymap.c generated with ErgodoxLayoutGenerator V1.0BETA1 +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/** +* Layer: BASE +* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ +* | ESC | 1 | 2 | 3 | 4 | 5 | Hold or toggle | | Hold or toggle | 6 | 7 | 8 | 9 | 0 | ß | +* | | | | | | | Layer NUMB | | Layer MDIA | | | | | | | +* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ +* | TAB | Q | W | E | R | T | Cmd | | Cmd | Z | U | I | O | P | Ü | +* | | | | | | | | | | | | | | | | +* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/\-------------------\ \-------------------\/-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ +* | Alt | A | S | D | F | G | | H | J | K | L | Ö | Ä | +* | | | | | | | | | | | | | ALT | +* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ +* | Shift | Y | X | C | V | B | Alt | | Alt | N | M | , | . | - | Shift | +* | | Ctrl | | | | | | | | | | | | Ctrl | | +* \-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\ \-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\ +* +* +* /-------------------//-------------------//-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------//-------------------//-------------------/ +* | < | LongPress / Type | LongPress / Type | Shift+Ctrl | Type | | # | ACUT | CMD+Shift | ALT+Shift | + | +* | SYMB | DE_OSX_CIRC_CTRLCMD| DE_OSX_PLUS_CTRAlt | | Toggle SMLY | | Meh | Hyper | | | SYMB | +* \-------------------\\-------------------\\-------------------\\-------------------\/-------------------//-------------------/ /-------------------//-------------------/ \-------------------\\-------------------\\-------------------\\-------------------\\-------------------\ +* | HOME | END | | LEFT | RIGHT | +* | | | | | | +* \-------------------\/-------------------/ /-------------------/\-------------------\ +* | PGUP | | UP | +* | | | | +* /-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------/ +* | BSPC | DEL | PGDN | | DOWN | ENT | SPC | +* | | | | | | | | +* \-------------------\\-------------------\\-------------------\ \-------------------\\-------------------\\-------------------\ +* +* +**/ +[BASE]=KEYMAP( +//left half + KC_ESC, DE_OSX_1, DE_OSX_2, DE_OSX_3, DE_OSX_4, DE_OSX_5, M(TGH_NUM), + KC_TAB, DE_OSX_Q, DE_OSX_W, DE_OSX_E, DE_OSX_R, DE_OSX_T, KC_LGUI, + KC_LALT, DE_OSX_A, DE_OSX_S, DE_OSX_D, DE_OSX_F, DE_OSX_G, + KC_LSFT, CTL_T(DE_OSX_Y), DE_OSX_X, DE_OSX_C, DE_OSX_V, DE_OSX_B, KC_LALT, + LT(SYMB,DE_OSX_LESS), M(M_DE_OSX_CIRC_CTRLCMD), M(M_DE_OSX_PLUS_CTRLALT), LSFT(KC_LCTRL), M(SMLY_TOG_QUOT), + KC_HOME, KC_END, + KC_PGUP, + KC_BSPC, KC_DEL, KC_PGDN, + //right half + M(TOG_HLD_MDIA), DE_OSX_6, DE_OSX_7, DE_OSX_8, DE_OSX_9, DE_OSX_0, DE_OSX_SS, + KC_RGUI, DE_OSX_Z, DE_OSX_U, DE_OSX_I, DE_OSX_O, DE_OSX_P, DE_OSX_UE, + DE_OSX_H, DE_OSX_J, DE_OSX_K, DE_OSX_L, DE_OSX_OE, ALT_T(DE_OSX_AE), + KC_RALT, DE_OSX_N, DE_OSX_M, DE_OSX_COMM, DE_OSX_DOT, CTL_T(DE_OSX_MINS), KC_RSFT, + MEH_T(DE_OSX_HASH), ALL_T(DE_OSX_ACUT), LGUI(KC_LSFT), LALT(KC_LSFT), LT(SYMB,DE_OSX_PLUS), + KC_LEFT, KC_RIGHT, + KC_UP, + KC_DOWN, KC_ENT, KC_SPC), +/** +* Layer: SYMB +* /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ +* | APPLICATION| F1 | F2 | F3 | F4 | F5 | F5 | | F6 | F6 | F7 | F8 | F9 | F10 | F11 | +* | | | | | | | | | | | | | | | | +* /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ +* | | < | > | ! | ? | | | | | \ | [ | ] | < | > | ! | +* | | | | | | | | | | | | | | | | +* /-----------//-----------//-----------//-----------//-----------//-----------/\-----------\ \-----------\/-----------//-----------//-----------//-----------//-----------//-----------/ +* | | # | $ | \ | / | . | | / | ( | ) | { | } | # | +* | | | | | | | | | | | | | | +* /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ +* | | | < | % | | | ~ | | | | | | ~ | | | | | +* | | | | | | | | | | | | | | | | +* \-----------\\-----------\\-----------\\-----------\\-----------\\-----------\\-----------\ \-----------\\-----------\\-----------\\-----------\\-----------\\-----------\\-----------\ +* +* +* /-----------//-----------//-----------//-----------//-----------/ /-----------//-----------//-----------//-----------//-----------/ +* | | | | | | | ' | DQOT | | Toggle 5 | | +* | | | | | | | | | | | | +* \-----------\\-----------\\-----------\\-----------\/-----------//-----------/ /-----------//-----------/ \-----------\\-----------\\-----------\\-----------\\-----------\ +* | | | | F13 | F12 | +* | | | | | | +* \-----------\/-----------/ /-----------/\-----------\ +* | | | F14 | +* | | | | +* /-----------//-----------//-----------/ /-----------//-----------//-----------/ +* | | DEL | | | F15 | | | +* | | | | | | | | +* \-----------\\-----------\\-----------\ \-----------\\-----------\\-----------\ +* +* +**/ +[SYMB]=KEYMAP( +//left half + KC_APPLICATION, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F5, + KC_TRNS, DE_OSX_LESS, DE_OSX_MORE, DE_OSX_EXLM, DE_OSX_QST, KC_TRNS, KC_TRNS, + KC_TRNS, DE_OSX_HASH, DE_OSX_DLR, DE_OSX_BSLS, DE_OSX_SLSH, KC_DOT, + KC_TRNS, KC_TRNS, DE_OSX_LESS, DE_OSX_PERC, DE_OSX_PIPE, DE_OSX_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 half + KC_F6, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, DE_OSX_BSLS, DE_OSX_LBRC, DE_OSX_RBRC, DE_OSX_LESS, DE_OSX_MORE, DE_OSX_EXLM, + DE_OSX_SLSH, DE_OSX_LPRN, DE_OSX_RPRN, DE_OSX_LCBR, DE_OSX_RCBR, DE_OSX_HASH, + KC_TRNS, DE_OSX_PIPE, DE_OSX_TILD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + DE_OSX_QUOT, DE_OSX_DQOT, KC_TRNS, M(M_TOGGLE_5), KC_TRNS, + KC_F13, KC_F12, + KC_F14, + KC_F15, KC_TRNS, KC_TRNS), +/** +* Layer: MDIA +* /-----//-----//-----//-----//-----//-----//-----/ /-----//-----//-----//-----//-----//-----//-----/ +* | | | | | | | | | | | | | | | | +* | | | | | | | | | | | | | | | | +* /-----//-----//-----//-----//-----//-----//-----/ /-----//-----//-----//-----//-----//-----//-----/ +* | | | BTN1 | U | BTN2 | U | | | | | | | | | | +* | | | | | | | | | | | | | | | | +* /-----//-----//-----//-----//-----//-----/\-----\ \-----\/-----//-----//-----//-----//-----//-----/ +* | | | L | D | R | D | | | | | | | | +* | | | | | | | | | | | | | | +* /-----//-----//-----//-----//-----//-----//-----/ /-----//-----//-----//-----//-----//-----//-----/ +* | | | L | D | R | BTN3 | | | | | | | | UP | | +* | | | | | | | | | | | | | | | | +* \-----\\-----\\-----\\-----\\-----\\-----\\-----\ \-----\\-----\\-----\\-----\\-----\\-----\\-----\ +* +* +* /-----//-----//-----//-----//-----/ /-----//-----//-----//-----//-----/ +* | | | | | | | | | LEFT | DOWN | RIGHT| +* | | | | | | | | | | | | +* \-----\\-----\\-----\\-----\/-----//-----/ /-----//-----/ \-----\\-----\\-----\\-----\\-----\ +* | | | | MPRV | MNXT | +* | | | | | | +* \-----\/-----/ /-----/\-----\ +* | | | VOLU | +* | | | | +* /-----//-----//-----/ /-----//-----//-----/ +* | | | | | VOLD | MUTE | MPLY | +* | | | | | | | | +* \-----\\-----\\-----\ \-----\\-----\\-----\ +* +* +**/ +[MDIA]=KEYMAP( +//left half + 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 half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_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_RIGHT, + KC_MPRV, KC_MNXT, + KC_VOLU, + KC_VOLD, KC_MUTE, KC_MPLY), +/** +* Layer: SMLY +* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ +* | | | | | | | | | Typing | Typing | Typing | | | | | +* | | | | | | | | | SM_SMILE| SM_SMIRK| SM_LAUGH| | | | | +* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ +* | | | | | | | | | | Typing | Typing | Typing | | | | +* | | | | | | | | | | SM_FROWN| SM_SAD | SM_CRY | | | | +* /--------//--------//--------//--------//--------//--------/\--------\ \--------\/--------//--------//--------//--------//--------//--------/ +* | | | | | | | | Typing | Typing | | | | | +* | | | | | | | | SM_HEART| SM_KISS | | | | | +* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ +* | | | | | | | | | | | | | | | | +* | | | | | | | | | | | | | | | | +* \--------\\--------\\--------\\--------\\--------\\--------\\--------\ \--------\\--------\\--------\\--------\\--------\\--------\\--------\ +* +* +* /--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------/ +* | | | | | | | | | | | | +* | | | | | | | | | | | | +* \--------\\--------\\--------\\--------\/--------//--------/ /--------//--------/ \--------\\--------\\--------\\--------\\--------\ +* | | | | | | +* | | | | | | +* \--------\/--------/ /--------/\--------\ +* | | | | +* | | | | +* /--------//--------//--------/ /--------//--------//--------/ +* | | | | | | | | +* | | | | | | | | +* \--------\\--------\\--------\ \--------\\--------\\--------\ +* +* +**/ +[SMLY]=KEYMAP( +//left half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 half + M(SM_SMILE), M(SM_SMIRK), M(SM_LAUGH), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, M(SM_FROWN), M(SM_SAD), M(SM_CRY), KC_TRNS, KC_TRNS, KC_TRNS, + M(SM_HEART), M(SM_KISS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), +/** +* Layer: NUMB +* /----//----//----//----//----//----//----/ /----//----//----//----//----//----//----/ +* | | | | | | | | | | F6 | F7 | F8 | F9 | F10 | F11 | +* | | | | | | | | | | | | | | | | +* /----//----//----//----//----//----//----/ /----//----//----//----//----//----//----/ +* | | | | UP | | | | | | / | 7 | 8 | 9 | * | F12 | +* | | | | | | | | | | | | | | | | +* /----//----//----//----//----//----/\----\ \----\/----//----//----//----//----//----/ +* | | | LEFT| DOWN| RGHT| | | / | 4 | 5 | 6 | + | - | +* | | | | | | | | | | | | | | +* /----//----//----//----//----//----//----/ /----//----//----//----//----//----//----/ +* | | | | | | | | | | % | 1 | 2 | 3 | | | +* | | | | | | | | | | | | | | | | +* \----\\----\\----\\----\\----\\----\\----\ \----\\----\\----\\----\\----\\----\\----\ +* +* +* /----//----//----//----//----/ /----//----//----//----//----/ +* | | | | | | | 0 | . | , | = | | +* | | | | | | | | | | | | +* \----\\----\\----\\----\/----//----/ /----//----/ \----\\----\\----\\----\\----\ +* | | | | | | +* | | | | | | +* \----\/----/ /----/\----\ +* | | | | +* | | | | +* /----//----//----/ /----//----//----/ +* | | | | | | | | +* | | | | | | | | +* \----\\----\\----\ \----\\----\\----\ +* +* +**/ +[NUMB]=KEYMAP( +//left half + 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 half + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, DE_OSX_SLSH, KC_7, KC_8, KC_9, DE_OSX_ASTR, KC_F12, + DE_OSX_SLSH, KC_4, KC_5, KC_6, DE_OSX_PLUS, DE_OSX_MINS, + KC_TRNS, DE_OSX_PERC, KC_1, KC_2, KC_3, KC_TRNS, KC_TRNS, + KC_0, KC_DOT, KC_COMM, DE_OSX_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), +/** +* Layer: EGOS +* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ +* | | | | | | | | | | | | | | | | +* | | | | | | | | | | | | | | | | +* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ +* | | | | | | | | | | | | | | | | +* | | | | | | | | | | | | | | | | +* /--------//--------//--------//--------//--------//--------/\--------\ \--------\/--------//--------//--------//--------//--------//--------/ +* | Shift | | | | | | | | | | | | | +* | | | | | | | | | | | | | | +* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ +* | | | | | | | | | | | | | | | | +* | | | | | | | | | | | | | | | | +* \--------\\--------\\--------\\--------\\--------\\--------\\--------\ \--------\\--------\\--------\\--------\\--------\\--------\\--------\ +* +* +* /--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------/ +* | Ctrl | | | | | | | | | Toggle 5| | +* | | | | | | | | | | | | +* \--------\\--------\\--------\\--------\/--------//--------/ /--------//--------/ \--------\\--------\\--------\\--------\\--------\ +* | F1 | F2 | | | | +* | | | | | | +* \--------\/--------/ /--------/\--------\ +* | F3 | | | +* | | | | +* /--------//--------//--------/ /--------//--------//--------/ +* | SPC | Ctrl | F4 | | | | | +* | | | | | | | | +* \--------\\--------\\--------\ \--------\\--------\\--------\ +* +* +**/ +[EGOS]=KEYMAP( +//left half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_F1, KC_F2, + KC_F3, + KC_SPC, KC_LCTL, KC_F4, + //right half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, M(M_TOGGLE_5), KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ +static uint16_t start; +switch(id) { +case SMLY_TOG_QUOT: +//Macro: SMLY_TOG_QUOT//----------------------- +if (record->event.pressed) { + start = timer_read(); + layer_state ^= (1<150) { + return MACRO_NONE; + } else { + return MACRO(DOWN(KC_LSFT),TYPE(DE_OSX_HASH),UP(KC_LSFT),END); + } + } + +break; +case M_TOGGLE_5: +//Macro: M_TOGGLE_5//----------------------- + if (record->event.pressed){ + layer_state ^= (1<<5); + layer_state &= (1<<5); + } + +break; +case TGH_NUM: +//Macro: TGH_NUM//----------------------- +if (record->event.pressed){ + start = timer_read(); + layer_state ^=(1< 150) { + layer_state^=(1<event.pressed) { + start = timer_read(); + return MACRO(DOWN(KC_LCTRL),DOWN(KC_LALT),END); + } else { + if (timer_elapsed(start) >150) { + return MACRO(U(LCTRL),U(LALT),END); + } else { + return MACRO(UP(KC_LCTRL),UP(KC_LALT),TYPE(KC_RBRC),END); + } + } + +break; +case SM_KISS: +//Macro: SM_KISS//----------------------- +if (record->event.pressed) { + return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_RBRC),UP(KC_LSFT),END); + } + +break; +case SM_FROWN: +//Macro: SM_FROWN//----------------------- +if (record->event.pressed) { + return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LALT),TYPE(KC_8),UP(KC_LALT),END); + } + +break; +case SM_CRY: +//Macro: SM_CRY//----------------------- +if (record->event.pressed) { + return MACRO(DOWN(KC_LSFT),TYPE(KC_COMM),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_8),UP(KC_LSFT),END); + } + +break; +case SM_SMILE: +//Macro: SM_SMILE//----------------------- +if (record->event.pressed) { + return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_9),UP(KC_LSFT),END); + } + +break; +case SM_SMIRK: +//Macro: SM_SMIRK//----------------------- +if (record->event.pressed) { + return MACRO(DOWN(KC_LSFT),TYPE(KC_COMM),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_9),UP(KC_LSFT),END); + } + +break; +case M_LGUI_SHFT: +//Macro: M_LGUI_SHFT//----------------------- +if (record->event.pressed){ + return MACRO(DOWN(KC_LGUI),DOWN(KC_LSFT),END); + }else{ + return MACRO(UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),U(LGUI),U(LSFT),END); + } + +break; +case SM_HEART: +//Macro: SM_HEART//----------------------- +if (record->event.pressed) { + return MACRO(TYPE(KC_GRV),TYPE(KC_3),END); + } + +break; +case TOG_HLD_MDIA: +//Macro: TOG_HLD_MDIA//----------------------- +if (record->event.pressed){ + start = timer_read(); + layer_state ^=(1< 150) { + layer_state^=(1<event.pressed) { + return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_D),UP(KC_LSFT),END); + } + +break; +case SM_SAD: +//Macro: SM_SAD//----------------------- +if (record->event.pressed) { + return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_8),UP(KC_LSFT),END); + } + +break; +case M_DE_OSX_CIRC_CTRLCMD: +//Macro: M_DE_OSX_CIRC_CTRLCMD//----------------------- +if (record->event.pressed) { + start = timer_read(); + return MACRO(DOWN(KC_LCTRL),DOWN(KC_LGUI),END); + } else { + if (timer_elapsed(start) >150) { + return MACRO(U(LCTRL),U(LGUI),END); + } else { + return MACRO(UP(KC_LCTRL),UP(KC_LGUI),TYPE(KC_NUBS),END); + } + } + +break; +case M_MEH_SH_ACUT: +//Macro: M_MEH_SH_ACUT//----------------------- +if (record->event.pressed) { + start = timer_read(); + return MACRO(DOWN(KC_LCTRL),DOWN(KC_LSFT),DOWN(KC_LALT),END); + } else { + if (timer_elapsed(start) >150) { + return MACRO(U(LCTRL),U(LSFT),U(LALT),END); + } else { + return MACRO(UP(KC_LCTRL),UP(KC_LALT),TYPE(DE_OSX_ACUT),UP(KC_LSFT),END); + } + } + +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; + case NUMB: + + + ergodox_right_led_3_on(); + break; + case EGOS: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + ergodox_right_led_3_on(); + break; +default: +// none +break; +} + +}; + diff --git a/keyboards/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png b/keyboards/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png new file mode 100644 index 000000000..031d874a7 Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png differ diff --git a/keyboards/ergodox_ez/keymaps/osx_de_experimental/readme.md b/keyboards/ergodox_ez/keymaps/osx_de_experimental/readme.md new file mode 100644 index 000000000..e6a101841 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/osx_de_experimental/readme.md @@ -0,0 +1,22 @@ + +# Ergodox und Ergodox-EZ experimentelles Layout + +dieses layout ist experimentell und wird im Lufe der Zeit viele Änderungen und Verbesserungen durchlaufen. Falls diese sich als vorteilhaft erweisen, werden sie evtl. auch in das `osx_de` layout übernommen. + + + +# Erstellt Mit Dem ErgodoxLayoutGenerator + +Der ErgodoxLayoutGenerator (ELG) ist ein kleines Werkzeug, welches die Erstellung und Pflege der eigenen Keymaps erleichtern soll. Es ist in java geschrieben und kann [hier](https://github.com/sboesebeck/ErgodoxLayoutGenerator/releases) heruntergeladen werden. Damit das Tool funktioniert sollte das offizielle Oracle JDK in aktueller Version installiert sein. +Die Dokumentation für den ELG kann man [hier](https://boesebeck.name/2016/04/16/ergodoxlayoutgenerator-documentation/) nachlesen (momentan leider nur in Englisch verfügbar). +--------------------------------------------------------------------------------------------------------------------- + +# Ergodox and Ergodox-EZ experimental layout + +This is an experimental layout which will undergo heavy changes over time. If changes prove to be good, they might also move into the `osx_de` layout. + +Created Using the ErgodoxLayoutGenerator + +The ErgodoxLayoutGenerator (ELG) is a little tool, which makes the creation and maintenance of keycaps a lot easier. It was written in Java and can be downloaded [here](https://github.com/sboesebeck/ErgodoxLayoutGenerator/releases). To use the tool, you need to have a current version of Oracles JDK installed. + +The documentation of the ELG can be viewed [here](https://boesebeck.name/2016/04/16/ergodoxlayoutgenerator-documentation/). \ No newline at end of file diff --git a/keyboards/ergodox_ez/keymaps/osx_fr/compiled.hex b/keyboards/ergodox_ez/keymaps/osx_fr/compiled.hex new file mode 100644 index 000000000..37112ba42 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/osx_fr/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947A020C94BE020C94BE020C94BE02B4 +:100010000C94BE020C94BE020C94BE020C94BE0260 +:100020000C94BE020C94BE020C94620D0C94340E1F +:100030000C94BE020C94BE020C94BE020C94BE0240 +:100040000C94BE020C943E220C94BE020C94BE0290 +:100050000C94BE020C94D11B0C94BE020C94BE02F4 +:100060000C94BE020C94BE020C94BE020C94BE0210 +:100070000C94BE020C94BE020C94BE020C94BE0200 +:100080000C94BE020C94BE020C94BE020C94BE02F0 +:100090000C94BE020C94BE020C94BE020C94BE02E0 +:1000A0000C94BE020C94BE020C94BE02A10EC30EB0 +:1000B000B10FC30EB10F080F2B0FB10F800F930FAD +:1000C0006212621291129112C712E71218141814D8 +:1000D000F2121814A213A2130914181418141214EB +:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300 +:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0 +:10010000C113CE13D513DC13E6130000F0A12E00AB +:100110004C002A00E100344100001E0014000400DD +:100120001D7164004D001F001A0016001B00E10441 +:100130002A00200008000700060050002C002100C3 +:100140001500090019004F004A00220017000A009C +:10015000050000006574500001540000007F00009D +:10016000E3004F000154000000770000E20023008C +:100170001C000B00110000002971240018000D0064 +:10018000100052004B0025000C000E0036425100BA +:100190002800260012000F0037002F002B00270038 +:1001A00013003300387130004E002D003200E300A0 +:1001B000E500C10000000100010001000100010094 +:1001C00000003A00250035023402010001003B0026 +:1001D000350030002F00010001003C002204220005 +:1001E0002206010001003D002D042D002D06010016 +:1001F00001003E000F063200110400000100010062 +:1002000001000000010000000100010001000000E9 +:100210000100000001003F00520051001E000000DC +:1002200001004000240221021E02010001004100E1 +:10023000250222021F0210000100420026022302B2 +:10024000200227020100430030023802370638003E +:100250000100440045000100010001000000010010 +:100260000100010001000100000001000100010087 +:1002700001000100010001000100F2000100010085 +:1002800001000100F000F1000100F4000100010094 +:100290000100F3000100F500010001000100010070 +:1002A0000100000001000100010000000100000049 +:1002B0000100010001000000010000000100010038 +:1002C0000100010001000000010001000100010027 +:1002D0000100A9000100010001000100AC00AA001A +:1002E000B600010001000100AB00A8000100010000 +:1002F0000100010001000100010001000100AE0049 +:1003000001000100000016034500720067006F0045 +:1003100044006F007800200045005A0000001603DA +:100320004500720067006F0044006F0078002000F5 +:1003300045005A0000000403090409026D0004018D +:1003400000A0FA09040000010301010009211101C4 +:100350000001223F000705810308000A090401008B +:100360000103010200092111010001224D000705CE +:10037000820308000A0904020001030000000921A9 +:10038000110100012236000705830308000A090451 +:1003900003000103000000092111010001223900BE +:1003A000070584031000011201100100000008ED90 +:1003B000FE071301000102000105010906A1010564 +:1003C0000719E029E7150025019508750181020547 +:1003D000081901290595057501910295017503918B +:1003E0000105071900297715002501957875018108 +:1003F00002C005010980A101850216010026B7008F +:100400001A01002AB700751095018100C0050C097A +:1004100001A1018503160100269C021A01002A9CF5 +:1004200002751095018100C005010902A1010901B1 +:10043000A10005091901290515002501950575017A +:10044000810295017503810105010930093115818A +:10045000257F95027508810609381581257F95014C +:1004600075088106050C0A38021581257F950175EE +:10047000088106C0C005010906A101050719E02988 +:10048000E715002501950875018102950175088120 +:100490000105081901290595057501910295017558 +:1004A0000391010507190029FF150025FF95067521 +:1004B000088100C0000000000000000000000001F2 +:1004C0000204060A0F17202C3A4A5D71879DB3C7B4 +:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF +:1004E0003A2C20170F0A0604020100000000000049 +:1004F0000000000011241FBECFEFDAE0DEBFCDBF49 +:1005000004B603FE24C08091FB019091FC01A091F0 +:10051000FD01B091FE018730904BA740B04BB9F47C +:100520001092FB011092FC011092FD011092FE014D +:1005300014BE84B7877F84BF88E10FB6F894809398 +:100540006000109260000FBEE0E0FFE3099511E04B +:10055000A0E0B1E0EAE0F8E402C005900D92A43317 +:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0 +:10057000B107E1F70E94A60A0C9403240C94000032 +:100580001092B9008AE08093B800089594EA90939D +:10059000BC009091BC0097FFFCCF9091B900987F70 +:1005A000983021F0903111F081E008958093BB00E4 +:1005B00084E88093BC008091BC0087FFFCCF8091D1 +:1005C000B900887F883111F0803471F780E0089598 +:1005D00084E98093BC008091BC0084FDFCCF089529 +:1005E0008093BB0084E88093BC008091BC0087FFAF +:1005F000FCCF9091B900987F81E0983209F480E0B7 +:10060000089584E88093BC008091BC0087FFFCCFF4 +:100610008091BB00089580910101811115C080E493 +:100620000E94C6028093010181110CC082E10E94E8 +:10063000F00280930101811105C08FEF0E94F0024A +:10064000809301010E94E80284B1807F84B985B162 +:10065000807F85B98AB1837F8AB98BB1837F8BB95B +:100660003E98469808950E94C604809301010E9416 +:100670000B0380B38C7080BB81B3836F81BBA5E318 +:10068000B1E0E3E4F1E08EE08E0F11921D928E1343 +:10069000FCCF0C94B004BF92CF92DF92EF92FF9206 +:1006A0000F931F93CF93DF9380910101882379F0FB +:1006B000809134018F5F80933401811108C00E94C2 +:1006C000C60480930101811102C00E94580405E311 +:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407 +:1006E000E394F12CC730D10500F58091010181110F +:1006F00064C080E40E94C60280930101811112C08F +:1007000082E10E94F0028093010181110BC0C701B8 +:100710000C2E01C0880F0A94EAF780950E94F0021F +:10072000809301010E94E80248C0CA30A1F028F479 +:10073000C83059F0C93061F005C0CC3089F070F094 +:10074000CD3089F0209A289810C0219A29980DC0A0 +:10075000229A2A980AC0239A2B9807C0529A01C05D +:10076000539A5B9802C03E9A469890EA9A95F1F7A0 +:100770009FB1799902C082E001C080E091709D250F +:10078000982B7C9902C084E001C080E0892B7D9980 +:1007900002C038E001C030E0832B7E9902C020E126 +:1007A00001C020E0822B9FB19095991F9927991F36 +:1007B0009295990F907E892B0FC080910101811134 +:1007C00049C080E40E94C60280930101882379F128 +:1007D000B12C0E94E8028B2DF8019081981719F036 +:1007E0008083C09200010E940B0321960F5F1F4F70 +:1007F000CE30D10509F076CF80910001882361F1D8 +:10080000815080930001882339F08FE99FE00197A0 +:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F +:10082000CF01825F91919D938E13FCCF15C083E120 +:100830000E94F002809301018111CACF81E40E94DD +:10084000C602809301018111C3CF0E940103B82E1B +:10085000B094BFCF80E0C0CF0E94560481E0DF910A +:10086000CF911F910F91FF90EF90DF90CF90BF90AD +:100870000895E82FF0E0ED5BFE4F80810895089524 +:100880000F931F93CF93DF93C3E4D1E010E00C2FBD +:10089000025F899190E00E94F71A180F0C13F9CFAC +:1008A000812FDF91CF911F910F9108950C94260510 +:1008B00056985E9825982D9826982E9827982F98C8 +:1008C0008FEF90E0909389008093880090938B0045 +:1008D00080938A0090938D0080938C00259A2D9AA6 +:1008E0002FEF80E792E0215080409040E1F700C078 +:1008F0000000269A2E9A2FEF80E792E02150804048 +:100900009040E1F700C00000279A2F9A2FEF80E770 +:1009100092E0215080409040E1F700C0000025980F +:100920002D982FEF80E792E0215080409040E1F732 +:1009300000C0000026982E982FEF80E792E021500B +:1009400080409040E1F700C0000027982F9856980B +:100950005E9825982D9826982E9827982F98089578 +:1009600089EA8093800089E08093810024982C9804 +:100970003F988AB18F748AB96E98479A8BB1806B11 +:100980008BB9769A0E9458040C94250580E28093D6 +:1009900001018091510181110EC00E94C00281E0CD +:1009A000809351012FEF83ED90E3215080409040E0 +:1009B000E1F700C0000080E40E94C60280930101BC +:1009C00081112EC00E94F00280930101811128C084 +:1009D0000E94F00280930101811122C08FE30E94E6 +:1009E000F0028093010181111BC00E94E80280E4A3 +:1009F0000E94C60280930101811112C08CE00E9406 +:100A0000F0028093010181110BC00E94F0028093DB +:100A10000101811105C08FE30E94F0028093010162 +:100A20000E94E80280910101089561110BC0FC0150 +:100A30008281882321F085EE0E94061103C085EE95 +:100A40000E94CE1180E090E0089508956091BD016C +:100A50007091BE018091BF019091C0010E94031B63 +:100A600056985E9825982D9826982E9827982F9816 +:100A7000813019F0823021F00895259A2D9A089539 +:100A8000269A2E9A089581E0089581E008950C94A5 +:100A9000450508950F931F93CF93DF938C01FC01BD +:100AA000C081D181CE010E947C19BE010E94F30554 +:100AB000EC01B8010E944705882309F48DC0F801B4 +:100AC0008281882309F44AC080915D0181111FC091 +:100AD000C431F0E5DF0709F051C00E94490581E00B +:100AE00080935D010E949B1B90935C0180935B014E +:100AF0001092540110925601109255011092580113 +:100B00001092570110925A011092590165C08091BC +:100B10005B0190915C010E94A71B883C910570F4D9 +:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB +:100B3000D183C0838F5F809354014EC0C43880E559 +:100B4000D80721F0C538D04501F13AC0F8018281BB +:100B5000882341F01092520182E01EC0C438E0E5C3 +:100B6000DE0759F580915201811106C086E20E948C +:100B7000061186E20E94CE1182E01CC0C438F0E566 +:100B8000DF0741F3C538D045D9F4F80182818823C5 +:100B900031F01092530180E20E941D121DC080911D +:100BA0005301811106C087E20E94061187E20E946C +:100BB000CE1180E20E9424120FC0C538D04529F31F +:100BC00081E08093520180935301C801DF91CF915E +:100BD0001F910F910C94430580E0DF91CF911F91FD +:100BE0000F910895089596E0799FF001112494E5FE +:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F +:100C0000E25FFE4F859194910895880F991FFC0132 +:100C1000E657F040859194910895880F991FFC0143 +:100C2000E65FFE4F8591949108950F931F93CF93A4 +:100C3000DF93EC01811520E3920750F5C11580E2A6 +:100C4000D80708F0C3C0CB3BD10590F4C83AD10512 +:100C500008F06AC0C53AD10508F05BC0C430D105C0 +:100C600008F0D0C1219709F0CAC101E010E00AC222 +:100C7000CF3FD10511F008F0C5C1C03FD10508F044 +:100C8000A2C0CE01805E9109089708F4BBC1B7C12C +:100C9000C13090E5D90709F4A2C020F5C0318FE436 +:100CA000D80770F4C11590E4D90708F094C0C115B5 +:100CB00021E3D20708F0A3C1DD278E01106CE2C149 +:100CC000C115D04509F09BC10E9483148FEF94E3B6 +:100CD0002CE0815090402040E1F700C000000E94CD +:100CE000F61BD0C1C11597E5D90758F4C03121E5ED +:100CF000D20708F01CC1C43180E5D80708F475C0DC +:100D00007EC1CE0190578115904108F078C1DF7007 +:100D100073C1C53AD10509F477C1C63AD10509F0C6 +:100D200076C102E810E4AEC1C83AD10509F472C137 +:100D3000C93AD10509F471C1CA3AD10509F470C1A3 +:100D4000CB3AD10509F46FC1CC3AD10509F46EC193 +:100D5000CD3AD10509F46DC1C03BD10509F46CC190 +:100D6000CE3AD10509F46BC1CF3AD10509F46AC175 +:100D7000C13BD10509F469C1C23BD10509F468C181 +:100D8000C33BD10509F467C1C43BD10509F466C171 +:100D9000C53BD10509F465C1C63BD10509F464C161 +:100DA000C73BD10509F463C1C83BD10509F462C151 +:100DB000C93BD10509F461C1CA3BD10509F460C141 +:100DC00000E014E45FC18E0110655CC1CE019F702C +:100DD0000E940D0658C1DF708E01106A53C18091C8 +:100DE000DA0181608093DA014DC10E949B1D81115F +:100DF00002C00E94811D0E94B81D90E09093FB01EB +:100E00008093FA01C23080E5D80721F48091FA017D +:100E1000816086C0C43090E5D90721F48091FA0141 +:100E200082607EC0C63020E5D20721F48091FA01AD +:100E3000846076C0C83080E5D80719F48091FA0143 +:100E400027C0CA3090E5D90721F48091FA0180616A +:100E500067C0CC3020E5D20721F48091FA0180628E +:100E60005FC0CE3080E5D80721F48091FA0180641C +:100E700057C0C03190E5D90721F48091FA0180680C +:100E80004FC0C23120E5D20729F48091FA01846075 +:100E9000886046C0C33080E5D80721F48091FA010C +:100EA0008E7F3EC0C53090E5D90721F48091FA01CC +:100EB0008D7F36C0C73020E5D20721F48091FA013A +:100EC0008B7F2EC0C93080E5D80719F48091FA01D4 +:100ED00026C0CB3090E5D90721F48091FA018F7EAE +:100EE0001FC0CD3020E5D20721F48091FA018F7D1B +:100EF00017C0CF3080E5D80721F48091FA018F7BAD +:100F00000FC0C13190E5D90721F48091FA018F77A4 +:100F100007C0C331D04531F48091FA018B7F877FC0 +:100F20008093FA018091FA010E94BC1DABC08D2F05 +:100F300099278F70992781309105D9F49E012370EC +:100F4000332702C0880F991F2A95E2F79C688E010B +:100F500044E0000F111F4A95E1F700271370802B22 +:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA +:100F70002FC08230910531F4DC2FCC278E01016F18 +:100F8000106A80C08330910569F4CE01837099277F +:100F900001E010E002C0000F111F8A95E2F7C801BE +:100FA0009C680FC084309105B9F4CE0183709927F5 +:100FB00001E010E002C0000F111F8A95E2F7C8019E +:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029 +:100FD0008C010C2B1D2B56C08530910531F4DC2F74 +:100FE000CC278E01046F106A4DC0069709F04AC0E5 +:100FF000CF71DD27DC2FCC278E01106243C000E0CB +:1010000010E040C08E013EC001E810E43BC003E8A0 +:1010100010E438C002EE14E435C009EE14E432C026 +:101020000AEE14E42FC005EB14E42CC006EB14E424 +:1010300029C007EB14E426C00CEC14E423C00DEC2B +:1010400014E420C003E815E41DC00AE815E41AC042 +:1010500002E915E417C004E915E414C001E216E43E +:1010600011C003E216E40EC004E216E40BC005E270 +:1010700016E408C006E216E405C007E216E402C062 +:101080000AE216E4C801DF91CF911F910F910895F4 +:1010900096E0799FF001112494E5899FE00DF11D00 +:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149 +:1010B0009491803E9105E0F4803C910558F5813390 +:1010C000910509F46FC048F48932910509F463C0B1 +:1010D0008A32910509F46DC072C089339105E9F037 +:1010E00082389105D1F08533910509F44DC067C070 +:1010F000833E910581F138F4803E9105B9F0823E3E +:101100009105D9F05CC0863E910561F1873E91055D +:10111000A1F155C00E94050608952091FA0120FD15 +:1011200002C021FF4CC080EE90E049C08091FA01DE +:1011300080FFF9CF89E390E042C08091FA0182FFFD +:101140000EC08091FA0184FF03C080E090E037C0B8 +:1011500083EE90E034C08091FA0182FFF2CF82EEFC +:1011600090E02DC08091FA0183FF0BC08091FA01BD +:1011700084FDEBCF87EE90E022C08091FA0183FFDF +:10118000F5CF86EE90E01BC08091FA0185FF07C085 +:1011900089E290E014C08091FA0185FFF9CF85E3E0 +:1011A00090E00DC08091FA0186FF07C08AE290E0CE +:1011B00006C08091FA0186FFF9CF81E390E00E949A +:1011C0001506089508950C94E20880916E01089523 +:1011D000CF93DF9300D01F92CDB7DEB79C018091F3 +:1011E000F101843019F593E099833B832A8390932E +:1011F000E9008FEF9091E800815095FD06C095EDD4 +:101200009A95F1F700008111F5CF8091E80085FFF4 +:101210000DC040E050E063E070E0CE0101960E9416 +:10122000520B8091E8008E778093E8000F900F902A +:101230000F90DF91CF910895CF93DF9300D01F924D +:10124000CDB7DEB72091F101243021F522E02983CA +:101250009B838A8383E08093E9008FEF9091E8007D +:10126000815095FD06C095ED9A95F1F7000081112A +:10127000F5CF8091E80085FF0DC040E050E063E0CD +:1012800070E0CE0101960E94520B8091E8008E77AB +:101290008093E8000F900F900F90DF91CF91089509 +:1012A0002091F1012430F1F422E02093E9002FEFA6 +:1012B0003091E800215035FD06C035ED3A95F1F743 +:1012C00000002111F5CF2091E80025FF0BC040E080 +:1012D00050E065E070E00E94520B8091E8008E774C +:1012E0008093E8000895CF93DF93EC019091F10192 +:1012F000943009F046C080910C018823D9F0809188 +:101300000D018823B9F09093E9008FEF9091E800E8 +:10131000815095FD06C095E19A95F1F70000811185 +:10132000F5CF8091E80085FF2CC040E050E060E1FF +:1013300070E017C081E08093E9008FEF9091E800A2 +:10134000815095FD06C095ED9A95F1F70000811149 +:10135000F5CF8091E80085FF14C040E050E068E0E0 +:1013600070E0CE010E94520B8091E8008E7780934E +:10137000E80080E1FE01AEE5B1E001900D928A95B2 +:10138000E1F7DF91CF9108958091F001811109C0BB +:101390000E94E70C0E94440D8091E20084608093DB +:1013A000E20008951092F001089508950C942B2204 +:1013B0000E948C1B0E9431220E94EA0F0C94E308C9 +:1013C00042E061EC81E00E94610C42E061EC82E06D +:1013D0000E94610C42E061EC83E00E94610C42E1FA +:1013E00061EC84E00C94610C8091F301833009F48A +:1013F00055C030F4813071F0823009F48EC0089508 +:101400008A3009F47AC08B3009F460C0893009F061 +:101410009CC020C08091F201813A09F096C0809171 +:10142000E800877F8093E8008091F6019091F701B2 +:10143000892B21F460E18EE591E003C060E080E05B +:1014400090E070E00E949D0B8091E8008B77809384 +:10145000E80008958091F201813209F076C0809110 +:10146000F6019091F701009719F0039709F06DC00C +:101470008091E800877F8093E8008091E80082FDFA +:1014800005C08091F1018111F8CF5FC08091F1001A +:1014900080936E018091E8008B7753C08091F201B8 +:1014A000813A09F052C08091F6019091F701892BA1 +:1014B00009F04BC08091E800877F8093E80080911D +:1014C000E80080FFFCCF80910C0136C08091F201D2 +:1014D0008132D9F58091F6019091F701892BA9F518 +:1014E0008091E800877F8093E8000E94960C8091AD +:1014F000F40180930C010C9483148091F2018132E9 +:1015000021F58091E800877F8093E8000E94960C87 +:101510008091F50180936F0108958091F201813AE5 +:10152000A1F48091E800877F8093E8008091E80033 +:1015300080FFFCCF80916F018093F1008091E800E3 +:101540008E778093E8000C94960C089584B7877F7B +:1015500084BF88E10FB6F894809360001092600019 +:101560000FBE90E080E80FB6F894809361009093EE +:1015700061000FBE0E9439100E94E70C0E94440DCA +:101580008091E20084608093E20078940E94CA0F08 +:101590000E943B1082E091E00E94E50F0E94192218 +:1015A0008091F101853069F40E94531B8091EF0115 +:1015B0008823B1F30E947E1B882391F30E943C0B89 +:1015C000EFCF0E944110ECCF292F33272330310574 +:1015D000C9F064F42130310581F02230310509F081 +:1015E00043C08DE690E02AE333E042C0213231056A +:1015F000F1F02232310541F137C082E190E027EA73 +:1016000033E036C099278130910541F08230910551 +:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4 +:1016200002C0E6E0F3E0849190E09F0121C06430C5 +:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5 +:10164000318189E090E014C0643070F470E0FB01F7 +:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47 +:10166000FE4F808190E004C080E090E020E030E018 +:10167000FA0131832083089580E189BD82E189BD2B +:1016800009B400FEFDCF8091D8008F7D8093D800F3 +:101690008091E00082608093E0008091E00081FD15 +:1016A000FCCF0895CF92DF92EF92FF920F931F939A +:1016B000CF93DF93EC018B016A010E94B50C81117D +:1016C00033C0C114D10439F0F60180819181081B27 +:1016D000190BC80FD91FE12CF12C0115110519F1B7 +:1016E0008091E80085FD16C08091E8008E77809398 +:1016F000E800C114D10449F0F60180819181E80E1F +:10170000F91EF182E08285E00FC00E94B50C8823AB +:1017100021F30AC089918093F10001501109FFEF74 +:10172000EF1AFF0ADACF80E0DF91CF911F910F917E +:10173000FF90EF90DF90CF9008952091F8013091C5 +:10174000F9012617370748F06115710539F4209122 +:10175000E8002E772093E80001C0B90140E0611550 +:101760007105A9F12091F101222309F443C025302C +:1017700009F442C02091E80023FD40C02091E80018 +:1017800022FD32C02091E80020FFE9CF4091F30014 +:101790002091F20030E0342BFC01CF01611571057E +:1017A00059F02830310540F481918093F100615067 +:1017B00071092F5F3F4FF1CF41E02830310509F02B +:1017C00040E02091E8002E772093E800C8CF411137 +:1017D000C9CF0AC08091F101882361F0853061F0A2 +:1017E0008091E80083FD0AC08091E80082FFF2CF7B +:1017F00080E0089582E0089583E0089581E00895EF +:101800002091F8013091F9012617370748F061154A +:10181000710539F42091E8002E772093E80001C08B +:10182000B901FC0120E06115710591F18091F10190 +:10183000882309F440C0853009F43FC08091E80056 +:1018400083FD3DC08091E80082FD2FC08091E800BB +:1018500080FFE9CF2091F3008091F20090E0922B7D +:101860006115710559F08830910540F42491209359 +:10187000F1003196615071090196F2CF21E008978D +:1018800009F020E08091E8008E778093E800CBCFCC +:101890002111CCCF0AC08091F101882361F08530FD +:1018A00061F08091E80083FD0AC08091E80082FF2A +:1018B000F2CF80E0089582E0089583E0089581E00A +:1018C0000895982F973058F59093E900981739F0BC +:1018D0007091EC002091ED005091F00003C0242F96 +:1018E000762F50E021FF19C03091EB003E7F3093FE +:1018F000EB003091ED003D7F3093ED003091EB0037 +:1019000031603093EB007093EC002093ED00509326 +:10191000F0002091EE0027FF07C09F5FD3CF8F70AC +:101920008093E90081E0089580E008958091F201BC +:1019300087FF11C08091E80082FD05C08091F10110 +:101940008111F8CF11C08091E8008B770BC0809196 +:10195000F101882349F08091E80080FFF8CF809161 +:10196000E8008E778093E80008952091E40030919C +:10197000E50095E64091EC00842F817040FF22C085 +:101980008091E80080FD1CC08091F101882391F0D6 +:10199000853091F08091EB0085FD10C04091E4000E +:1019A0005091E5004217530729F39A01915011F71E +:1019B00084E0089582E0089583E0089581E0089529 +:1019C00080E008954091E80042FFDECF08950E9434 +:1019D000550D0E945D0DE0EEF0E080818160808316 +:1019E000E8EDF0E080818F77808319BCA7EDB0E04F +:1019F0008C918E7F8C9380818F7E80831092F001FA +:101A000008950F931F93CF93DF930E94550D0E946B +:101A10005D0DC8EDD0E088818F77888388818068EC +:101A2000888388818F7D888319BC1092F101109280 +:101A3000ED011092EF011092EE0100EE10E0F801BE +:101A400080818B7F808388818160888342E060E031 +:101A500080E00E94610CE1EEF0E080818E7F808367 +:101A6000E2EEF0E080818160808380818860808305 +:101A7000F80180818E7F8083888180618883DF91F7 +:101A8000CF911F910F910895E8EDF0E080818F7E56 +:101A90008083E7EDF0E080818160808384E082BF15 +:101AA00081E08093F0010C94010DE8EDF0E080817D +:101AB0008E7F80831092E20008951092DA001092D7 +:101AC000E10008951F920F920FB60F9211242F93E9 +:101AD0003F934F935F936F937F938F939F93AF93B6 +:101AE000BF93EF93FF938091E10082FF0BC0809141 +:101AF000E20082FF07C08091E1008B7F8093E100CC +:101B00000E94C90F8091DA0080FF1FC08091D80029 +:101B100080FF1BC08091DA008E7F8093DA00809175 +:101B2000D90080FF0DC080E189BD82E189BD09B483 +:101B300000FEFDCF81E08093F1010E94C40905C041 +:101B400019BC1092F1010E94D2098091E10080FF3E +:101B500019C08091E20080FF15C08091E2008E7F65 +:101B60008093E2008091E20080618093E2008091A6 +:101B7000D80080628093D80019BC85E08093F10181 +:101B80000E94D6098091E10084FF30C08091E2007C +:101B900084FF2CC080E189BD82E189BD09B400FECB +:101BA000FDCF8091D8008F7D8093D8008091E10097 +:101BB0008F7E8093E1008091E2008F7E8093E2002F +:101BC0008091E20081608093E2008091ED018823A2 +:101BD00011F084E007C08091E30087FD02C081E03E +:101BE00001C083E08093F1010E94D8098091E10057 +:101BF00083FF29C08091E20083FF25C08091E1002E +:101C0000877F8093E10082E08093F1011092ED01E3 +:101C10008091E1008E7F8093E1008091E2008E7FD1 +:101C20008093E2008091E20080618093E20042E0D4 +:101C300060E080E00E94610C8091F00088608093F9 +:101C4000F0000E94D509FF91EF91BF91AF919F9154 +:101C50008F917F916F915F914F913F912F910F9055 +:101C60000FBE0F901F9018951F920F920FB60F92F4 +:101C700011242F933F934F935F936F937F938F9391 +:101C80009F93AF93BF93CF93DF93EF93FF93C09155 +:101C9000E900CF708091EC00D82FD17080FDD0E8A2 +:101CA0001092E9008091F000877F8093F000789493 +:101CB0000E94780E1092E9008091F0008860809375 +:101CC000F000CD2BCF70C093E900FF91EF91DF9131 +:101CD000CF91BF91AF919F918F917F916F915F91C4 +:101CE0004F913F912F910F900FBE0F901F9018951D +:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3 +:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115 +:101D1000F10091938E13FBCF0E94F4098091E800AB +:101D200083FF1FC18091F2019091F301492F50E090 +:101D30004A30510508F015C1FA01EA5AFF4F0C94D8 +:101D4000B323803881F0823809F00BC18091F6010D +:101D50008F708093E9008091EB0085FB882780F9E4 +:101D60001092E90006C08091EE019091EF0191116F +:101D700082609091E800977F9093E8008093F10053 +:101D80001092F100C8C0282F2D7F09F0EAC08823E7 +:101D900019F0823061F0E5C08091F401813009F0E2 +:101DA000E0C0933009F080E08093EF012BC0809178 +:101DB000F401811127C08091F6018F7009F4D1C020 +:101DC0008093E9002091EB0020FF1CC0933021F4A8 +:101DD0008091EB00806214C09091EB009061909331 +:101DE000EB0021E030E0A90102C0440F551F8A95A5 +:101DF000E2F74093EA001092EA008091EB008860DD +:101E00008093EB001092E9008091E800877F86C004 +:101E10008111A7C01091F4011F778091E3008078B1 +:101E2000812B8093E3008091E800877F8093E80016 +:101E30000E94960C8091E80080FFFCCF8091E30027 +:101E400080688093E300111102C082E001C083E04A +:101E50008093F10186C08058823008F082C0809162 +:101E6000F4019091F5018C3D53E0950779F583E0FD +:101E70008A838AE289834FB7F894DE01139620E0C3 +:101E80003EE051E2E32FF0E050935700E49120FF51 +:101E900003C0E295EF703F5FEF708E2F90E0EA3065 +:101EA00010F0C79601C0C0968D939D932F5F24318B +:101EB00049F74FBF8091E800877F8093E8006AE28E +:101EC00070E0CE0101960E949D0B14C0AE014F5FE1 +:101ED0005F4F6091F6010E94E40ABC01009709F48B +:101EE00040C09091E800977F9093E80089819A81A3 +:101EF0000E94000C8091E8008B778093E80031C04D +:101F0000803879F58091E800877F8093E8008091A0 +:101F1000ED018093F1008091E8008E778093E800D6 +:101F20000E94960C1EC081111CC09091F401923049 +:101F3000C0F48091E800877F8093E8009093ED01E2 +:101F40000E94960C8091ED01811106C08091E30002 +:101F500087FD02C081E001C084E08093F1010E940E +:101F6000E0098091E80083FF0AC08091E800877F44 +:101F70008093E8008091EB0080628093EB00AA964A +:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A +:101F900008950895CF938091F1018823A1F0C09115 +:101FA000E900CF709091EC00892F817090FD80E85E +:101FB000C82B1092E9008091E80083FD0E94780E02 +:101FC000CF70C093E900CF910895909375018093ED +:101FD00074010895E0917401F0917501309721F03A +:101FE0000190F081E02D099480E00895E091740162 +:101FF000F0917501309721F00280F381E02D099472 +:102000000895E0917401F0917501309721F00480FA +:10201000F581E02D099408952091720130917301AA +:102020008217930771F09093730180937201E0918E +:102030007401F0917501309721F00680F781E02D51 +:1020400009940895209170013091710182179307CE +:1020500071F09093710180937001E0917401F0919F +:102060007501309721F00084F185E02D09940895E1 +:1020700008950C9438100E94921B0E9433030C9414 +:10208000541C9F92AF92BF92CF92DF92EF92FF9239 +:102090000F931F93CF93DF9300D000D000D0CDB724 +:1020A000DEB70E944B030DE010E0AA24A394B12CEC +:1020B000902E802F0E943904980129583E4F6901C3 +:1020C000F901F080F826A1F40150110988F78FEF8B +:1020D00089838A831B820E949B1B8160782F9D834A +:1020E0008C8349815A816B818D810E94D8102FC0C9 +:1020F0009091DA0191FF04C08E830E943F048E818B +:1021000025E030E0A501022E01C0440F0A94EAF751 +:10211000E42E4F21C1F029839A828E2191E009F4A7 +:1021200090E09B830E949B1B8160782F9D838C8312 +:1021300049815A816B818D810E94D810F60180817E +:10214000E826E08204C021503109E0F6BDCF0E94AC +:102150003B1F109176010E94EA0F1817B9F00E94F8 +:10216000EA0F8093760126960FB6F894DEBF0FBE75 +:10217000CDBFDF91CF911F910F91FF90EF90DF9036 +:10218000CF90BF90AF909F900C94E30826960FB627 +:10219000F894DEBF0FBECDBFDF91CF911F910F919D +:1021A000FF90EF90DF90CF90BF90AF909F900895F9 +:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82 +:1021C0000FBECDBF4F83588769877A878B87DE0123 +:1021D000119686E0FD0111928A95E9F785E0FE01EE +:1021E000379601900D928A95E1F749815A816B816A +:1021F0007C818D819E810E9421172B960FB6F894C9 +:10220000DEBF0FBECDBFDF91CF910895CF9388235E +:1022100009F4C2C0C82F823859F40E94EA0F81FD28 +:10222000BBC089E30E94FB190E94C81A89E30CC055 +:10223000833879F40E94EA0F80FDAEC083E50E94E6 +:10224000FB190E94C81A83E50E943D1ACF910C9495 +:10225000C81A843859F40E94EA0F82FD9DC087E4B1 +:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6 +:10227000813A48F48C2F0E947E2181118DC08C2FD1 +:102280000E94FB19E3CF80E28C0F883048F4C770BE +:1022900081E001C0880FCA95EAF70E94811AD6CF63 +:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB +:1022B00083E890E005C081E890E002C082E890E009 +:1022C000CF910C940C1088E58C0F833108F064C01A +:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118 +:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186 +:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106 +:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173 +:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB +:1023200038C082EE90E035C089EE90E032C08AEE8F +:1023300090E02FC085EB90E02CC086EB90E029C0A8 +:1023400087EB90E026C08CEC90E023C08DEC90E011 +:1023500020C083E891E01DC08AE891E01AC082E9BC +:1023600091E017C084E991E014C081E292E011C0CD +:1023700083E292E00EC084E292E00BC085E292E03C +:1023800008C086E292E005C087E292E002C08AE2DD +:1023900092E0CF910C942210CF910895882309F4F4 +:1023A0004BC0823859F40E94EA0F81FF45C089E38F +:1023B0000E94FB190E94C81A89E30CC0833871F48B +:1023C0000E94EA0F80FF38C083E50E94FB190E943B +:1023D000C81A83E50E943D1A0C94C81A843859F42F +:1023E0000E94EA0F82FF28C087E40E94FB190E9426 +:1023F000C81A87E4EFCF9CEF980F913A58F390E218 +:10240000980F983050F4877091E001C0990F8A9529 +:10241000EAF7892F0E94871ADFCF9BE5980F933048 +:1024200020F480E090E00C940C10885A833120F462 +:1024300080E090E00C9422100895882321F00E94FF +:10244000811A0C94C81A0895882321F00E94871AD3 +:102450000C94C81A08957F928F929F92AF92BF9268 +:10246000CF92DF92EF92FF920F931F93CF93DF9360 +:102470001F92CDB7DEB77C01C62E772EFC010581F9 +:1024800002950F70128111110E949E1A0E94F41978 +:10249000882379F0112369F080E28C0D883048F0B0 +:1024A00082E00E94DD190E94F41991E0D82ED9260D +:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C +:1024C0000C94B323872D807F072D0F70882311F084 +:1024D0000295007F112389F0002309F490C180E266 +:1024E0008C0D883020F4802F0E94811A03C0802F29 +:1024F0000E94911A0E94C81A82C18C2D0E94CE118E +:10250000002309F495C180E28C0D883020F4802FDF +:102510000E94871A03C0802F0E94971A0E94C81A2F +:1025200087C1972D907F872D8F70903211F0829503 +:10253000807FCC2021F0F1E0CF16B1F01EC0112336 +:1025400049F0002309F414C1013009F011C10E94BF +:10255000B11A6EC1002319F0013009F469C18983F1 +:102560000E94B41A89810AC1112321F0023008F0B7 +:102570005FC1FEC001115CC101C1112321F0002324 +:1025800009F4F6C03CC1002309F4F8C03EC1872D10 +:1025900086958695837090E0009719F0019761F019 +:1025A00047C1112321F08C2D972D937002C080E03C +:1025B00090E00E940C103CC1112321F08C2D972D2E +:1025C000937002C080E090E00E94221031C18C2DF7 +:1025D000112319F00E94431E02C00E94AB1E0E94EC +:1025E000301F26C1872D837009F052C0111120C100 +:1025F0008C2D829586958770880F880F9C2D9F70F3 +:10260000892E912CA12CB12C082E04C0880C991C69 +:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041 +:1026200020E030E0B901A80104C0440F551F661F27 +:10263000771F8A95D2F7CB01BA0160957095809586 +:10264000909503C060E070E0CB01272D269526957C +:10265000237030E02230310569F02330310589F0F4 +:10266000682979298A299B292130310571F00E9436 +:102670006918DEC0682979298A299B290E94851852 +:10268000D7C00E946918C501B4010E944D18D0C07E +:10269000112319F0872D817001C08695882309F4D4 +:1026A000C7C08C2D829586958770880F880F9C2DCA +:1026B0009F70892E912CA12CB12C082E04C0880C5F +:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC +:1026D00010E020E030E0B901A80104C0440F551F0C +:1026E000661F771F8A95D2F7CB01BA016095709566 +:1026F0008095909503C060E070E0CB01272D269572 +:1027000026952370422F50E04230510569F0433046 +:10271000510589F0682979298A299B294130510579 +:1027200071F00E94431984C0682979298A299B295C +:102730000E945F197DC00E944319C501B4010E9427 +:10274000271976C08C2D90E0FC01E05EF109E5319F +:10275000F10508F050C0E059FF4F0C94B3230C2D45 +:102760000F70872D8F71112331F00E94C018802FB8 +:102770000E941D125DC00E94E118802F0E94241249 +:1027800057C0112339F0011153C0872D8F710E945A +:1027900006194EC0023008F04BC0F7CF112339F0B4 +:1027A000872D8F710E94C01843C01123C9F3872D54 +:1027B0008F710E94E1183CC0112329F0872D8F7181 +:1027C0000E94AB1835C00E94A11832C0112351F0ED +:1027D000172D1F71812F0E94C01863E0812F0E9466 +:1027E000D41926C081E00E94DD19023008F182E090 +:1027F0000E94DD191DC0112331F0002389F28C2DB8 +:102800000E94061115C0002391F28C2D0E94CE115A +:102810000FC0472D4F706C2DC7010E9415050E94F7 +:10282000C51706C0472D4F706C2DC7010E94F205D9 +:10283000DD20F9F00E94D01980FD1BC0F701128243 +:102840000E94CA190E94C018C7010E9448140E9421 +:10285000CA190F90DF91CF911F910F91FF90EF90C8 +:10286000DF90CF90BF90AF909F908F907F900C940F +:10287000E1180F90DF91CF911F910F91FF90EF9092 +:10288000DF90CF90BF90AF909F908F907F900895F2 +:102890000F931F93CF93DF93EC01888199812B8154 +:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B +:1028B0000E944A05882371F0688179818A810E948B +:1028C000C6198C010E947B190E944218B801CE01E2 +:1028D0000E942B12DF91CF911F910F9108950E94BA +:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471 +:1028F000E11F0E94301F80E090E00E940C1080E0F9 +:1029000090E00C9422100E948E1A0C946F140E9476 +:10291000BB19292F22952F7030E02C3031054CF453 +:102920002A3031056CF42250310922303105A8F4E7 +:1029300007C02C30310569F02F30310551F00DC042 +:10294000803F69F018F4803E40F409C0843F29F4C8 +:1029500006C093FB882780F9089580E0089581E000 +:102960000895CF93DF9300D000D01F92CDB7DEB78C +:102970000F900F900F900F900F90DF91CF910895CF +:10298000CF93DF9300D000D000D0CDB7DEB726962E +:102990000FB6F894DEBF0FBECDBFDF91CF91089583 +:1029A0001F93CF93DF93C091850116E0809186013C +:1029B000C81799F0D0E01C9FF0011D9FF00D112465 +:1029C000E957FE4F408151816281738184819581F5 +:1029D0000E94C0142196C770E9CFDF91CF911F915B +:1029E00008954091B7015091B8016091B90170917B +:1029F000BA018091BB019091BC010C94C0148091EC +:102A0000BC0182958F7009F054C08091B901882370 +:102A100009F44FC080918501A09186016091B701B2 +:102A20007091B8014091BA015091BB01B6E08A178C +:102A300009F43FC090E041155105C1F17F3F11F409 +:102A40006F3FA1F1B89FF001B99FF00D1124E95734 +:102A5000FE4F218172132AC02081621327C0228178 +:102A6000211124C0238134812417350710F421500B +:102A70003109241B350B283C3105C0F42091BC01E1 +:102A80002F7020612093BC0126E0289FF001299F30 +:102A9000F00D1124E457FE4F80818F708061808398 +:102AA00087EB91E00E9448140C94D0140196877033 +:102AB000BECF0895CF92DF92EF92FF920F931F93B4 +:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32 +:102AD0000FBECDBF8C0185E0F801DE011D9601908F +:102AE0000D928A95E1F7D8014C9111965C9111975E +:102AF00012966C9112971396CD90DC9014973091AA +:102B0000B7017091B8018091BA019091BB01009713 +:102B100009F46BC17F3F19F43F3F09F466C1E090AF +:102B2000B901EE2009F4C0C02091BC01C816D90635 +:102B300028F0F601E81BF90BCF0104C080959095B1 +:102B40008C0D9D1DFF24F394883C910578F0F12CA9 +:102B5000207F09F0C6C07C2DD98AC88A89890E9445 +:102B6000B11487EB91E00E944814B1C0822F807F9E +:102B700009F046C0751314C0341312C0611110C09F +:102B80002F7020612093BC010E94F11487EB91E02B +:102B90000E9448148091BC01D80115968C932EC0D8 +:102BA000CD2819F15F3F11F44F3FF9F0F62E611176 +:102BB0001CC0809185012091860136E0821709F4BE +:102BC0005AC090E0389FF001399FF00D1124E95769 +:102BD000FE4F7181571306C07081471303C0728185 +:102BE000711103C001968770E9CFF62E662309F4B0 +:102BF00018C18091BC0181608093BC01F12C11C18E +:102C0000751308C0341306C0611104C08091BC0163 +:102C1000D801C3C04D875E878D859E856A8B0E94D3 +:102C200087146A898823E1F16623D1F12091BC01E0 +:102C3000822F82958F7090E0029774F08091B70197 +:102C40009091B80198878F831986DB86CA862C8776 +:102C5000CE0107960E94481486E0F801A7EBB1E088 +:102C600001900D928A95E1F70E94FF140E94F114E1 +:102C7000FF24F394D6C04D875E878D859E850E9484 +:102C8000BB19292F22952F7030E0223031050CF02E +:102C9000BCC09F7009F0B6C0805E883008F4C1C027 +:102CA000C8010E944814E4CFC816D90608F453C0DE +:102CB000F601E81BF90BCF01883C910508F450C0E0 +:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E +:102CD000F1E086E0DF011D928A95E9F70E94F11488 +:102CE000A0C0751314C0341312C0611110C08091BC +:102CF000BC01F8018583C8010E94481486E0E7EB17 +:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C +:102D10005E878D859E856A8B0E9487146A898823C9 +:102D200009F4BECF662309F4BBCF2091BC01822FEA +:102D300082958F7090E002970CF48ECF8091B7014E +:102D40009091B8019A8389831B82DD82CC822E8385 +:102D5000CE0101967FCF809590958C0D9D1DACCFB7 +:102D6000F62E662309F49CCF75132EC034132CC0A5 +:102D70002091BC0120FD1FC0822F82958F70D9F059 +:102D8000D80115962C9315978F3049F08F5F982FA7 +:102D90009295907F822F8F70892B15968C93C80106 +:102DA0000E94481486E0F801A7EBB1E001900D9273 +:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7 +:102DC0000D928A95E1F72DC04D875E878D859E8592 +:102DD0000E948714811140CF8091BC018160809353 +:102DE000BC01C8010E9448141CC0662309F458CFD6 +:102DF0004D875E878D859E850E948714882309F400 +:102E00004FCF2ACF811148CF0CC0243031050CF0B0 +:102E100047CF9F7009F440CFF8019581907F09F06A +:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D +:102E3000DF91CF911F910F91FF90EF90DF90CF9096 +:102E400008951F93CF93DF93CDB7DEB72C970FB6BE +:102E5000F894DEBF0FBECDBF4F83588769877A874E +:102E60008B879C87CE0107960E945A15882369F0AC +:102E70008F8198852A853B85232BF1F19F3F09F0AF +:102E800063C08F3F09F060C037C086E0FE0137960F +:102E9000DE01119601900D928A95E1F76F81788598 +:102EA000EA85FB85309741F17F3F11F46F3F21F1B7 +:102EB0002091860130E0C9010196877099274091E1 +:102EC000850150E08417950709F447C069837A8328 +:102ED000FD83EC8396E0929FD001939FB00D112467 +:102EE000A957BE4FFE01319601900D929A95E1F7D8 +:102EF000809386010E94D01416E080918501909104 +:102F000086018917C1F1189FC001112489579E4F6E +:102F10000E945A15882379F1E09185011E9FF001E6 +:102F20001124E957FE4F4081518162817381848170 +:102F300095810E94C0148091850190E00196877070 +:102F4000992780938501D9CF4F81588569857A85E6 +:102F50008B859C850E94C014CFCF0E948314109251 +:102F6000860110928501E7EBF1E086E0DF011D921A +:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45 +:102F8000CDBFDF91CF911F910895EF92FF920F93E4 +:102F90001F93CF93DF938C01009709F46CC0F12C41 +:102FA000EE24E394E8012196F8018491843740F4FB +:102FB000843008F051C0813081F0823019F15BC05B +:102FC000853709F444C0A8F19CE7980F903708F0C2 +:102FD00052C08F770E94CE1141C00E5F1F4FFE017D +:102FE000C49180E28C0F883048F4C7708E2D01C0E8 +:102FF000880FCA95EAF70E94A11A14C08C2F0E946C +:1030000006112DC00E5F1F4FFE01C49180E28C0F90 +:10301000883058F4C7708E2D01C0880FCA95EAF722 +:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3 +:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3 +:103040009FE00197F1F700C00000C150F6CF0E5F7E +:103050001F4FFE01F49003C00E9406118E018F2DB8 +:10306000882309F49FCFEFE9FFE03197F1F700C023 +:1030700000008150F5CFDF91CF911F910F91FF900C +:10308000EF90089508956093C1017093C2018093F9 +:10309000C3019093C4010C946F140F931F9300917C +:1030A000C1011091C2012091C3013091C401DC0122 +:1030B000CB01802B912BA22BB32B8093C10190933A +:1030C000C201A093C301B093C4011F910F910C944E +:1030D0006F140F931F930091C1011091C2012091B1 +:1030E000C3013091C401DC01CB0180239123A223D1 +:1030F000B3238093C1019093C201A093C301B09305 +:10310000C4011F910F910C946F140F931F930091A2 +:10311000C1011091C2012091C3013091C401DC01B1 +:10312000CB0180279127A227B3278093C1019093D9 +:10313000C201A093C301B093C4011F910F910C94DD +:103140006F141092BD011092BE011092BF01109237 +:10315000C0010C946F1441E050E060E070E004C0E6 +:10316000440F551F661F771F8A95D2F74093BD0104 +:103170005093BE016093BF017093C0010C946F1413 +:1031800041E050E060E070E004C0440F551F661F4E +:10319000771F8A95D2F78091BD019091BE01A091D1 +:1031A000BF01B091C001482B592B6A2B7B2B409358 +:1031B000BD015093BE016093BF017093C0010C9498 +:1031C0006F1441E050E060E070E004C0440F551F10 +:1031D000661F771F8A95D2F7409550956095709538 +:1031E0008091BD019091BE01A091BF01B091C0013D +:1031F000482359236A237B234093BD015093BE018A +:103200006093BF017093C0010C946F1441E050E0D3 +:1032100060E070E004C0440F551F661F771F8A9559 +:10322000D2F78091BD019091BE01A091BF01B091F4 +:10323000C001482759276A277B274093BD01509337 +:10324000BE016093BF017093C0010C946F140F9383 +:103250001F930091BD011091BE012091BF013091DB +:10326000C001DC01CB01802B912BA22BB32B8093CF +:10327000BD019093BE01A093BF01B093C0011F9107 +:103280000F910C946F140F931F930091BD01109137 +:10329000BE012091BF013091C001DC01CB01802330 +:1032A0009123A223B3238093BD019093BE01A093E9 +:1032B000BF01B093C0011F910F910C946F140F9335 +:1032C0001F930091BD011091BE012091BF0130916B +:1032D000C001DC01CB0180279127A227B32780936F +:1032E000BD019093BE01A093BF01B093C0011F9197 +:1032F0000F910C946F140895CF92DF92EF92FF928A +:103300000F931F93CF93DF938C01C090C101D09096 +:10331000C201E090C301F090C4018091BD01909181 +:10332000BE01A091BF01B091C001C82AD92AEA2AE2 +:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520 +:10334000A795979587950A94D2F780FF06C0B80194 +:103350008C2F0E944808019721F4219760F780E0A4 +:1033600001C08C2FDF91CF911F910F91FF90EF90B3 +:10337000DF90CF900895CF93DF93EC010E947C19EA +:10338000BE010E944808DF91CF910895CB010E94B1 +:10339000BB1908958091C5018595859585950895FA +:1033A0008091C5018770089598E0899F900111244C +:1033B000262B2093C5010C94C0182091C50180953F +:1033C00082238093C501982F977069F430E0482FCD +:1033D000552747FD50952417350729F08595859584 +:1033E00085950C94E11808959091C501977081E03E +:1033F00009F480E0089590910C01992321F09091B7 +:103400000D01911109C020910E0130910F01F901B8 +:1034100032969FEF40E01FC0982F9695969596950F +:103420009F3050F5E0910E01F0910F01E90FF11D71 +:10343000877021E030E0A90102C0440F551F8A9532 +:10344000E2F7CA019181892B818308959F3F39F06A +:103450004F5F4E3041F051915813F8CF0DC05111CC +:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08 +:1034700097FDFA9582830895089590910C01992300 +:1034800021F090910D01911109C020910E01309110 +:103490000F01F9013296205F3F4F1FC0982F96957C +:1034A000969596959F30F0F4E0910E01F0910F0102 +:1034B000E90FF11D877021E030E0A90102C0440F3F +:1034C000551F8A95E2F7CA018095918189238183EE +:1034D00008953196E217F30729F090819813F9CFF8 +:1034E0001082F7CF089581E090E0E0910E01F09115 +:1034F0000F01E80FF91F1082019680319105A9F79D +:1035000008959091D901892B8093D90108958095D0 +:103510009091D90189238093D90108951092D901FE +:1035200008959091D801892B8093D80108958095B2 +:103530009091D80189238093D80108951092D801E1 +:1035400008959091D701892B8093D7010895809594 +:103550009091D70189238093D70108951092D701C4 +:1035600008958093C60108951092C6010895809130 +:103570000E0190910F01FC0131969C01205F3F4F9D +:1035800080E0919191118F5FE217F307D1F70895D1 +:10359000E0910E01F0910F018091D9018083E091BB +:1035A0000E01F0910F0190818091D801892B8083C9 +:1035B000E0910E01F0910F0190818091D701892B4C +:1035C00080838091C601882361F0E0910E01F09123 +:1035D0000F019081892B80830E94B71A811110926C +:1035E000C60180910E0190910F010C94F60F20E01E +:1035F000009739F0AC0141505109842395232F5F86 +:10360000F7CF822F0895CF92DF92EF92FF926C0155 +:10361000EE24FF24C114D104E104F10421F0C70118 +:10362000B60120E101C020E0C72ED82EE92EFF24EC +:10363000C114D104E104F10419F0285FC701B601F7 +:103640006B017C0154E0F694E794D794C7945A95A3 +:10365000D1F7C114D104E104F10419F02C5FC701C2 +:10366000B6016B017C0142E0F694E794D794C794CD +:103670004A95D1F7C114D104E104F10419F02E5F89 +:10368000C701B601DC01CB01B695A7959795879543 +:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5 +:1036A000DF90CF9008958091F101843021F1109244 +:1036B000DB0120E488E190E00FB6F894A8958093B0 +:1036C00060000FBE2093600080E00E94E30883B793 +:1036D000817F846083BF83B7816083BF789488953E +:1036E00083B78E7F83BF88E10FB6F8948093600024 +:1036F000109260000FBE0895089508950E947C1BEB +:103700000E944B030E947D1B0E94400491E08111A6 +:1037100001C090E0892F08950E9483140E94EA0F4F +:103720000C94E30882E084BD93E095BD9AEF97BDC9 +:1037300080936E0008952FB7F8948091DC019091EA +:10374000DD01A091DE01B091DF012FBF0895CF927E +:10375000DF92EF92FF920F931F932FB7F89440914F +:10376000DC015091DD016091DE017091DF012FBF1E +:103770006A017B01EE24FF248C0120E030E0C016BA +:10378000D106E206F30610F4415051099A01281BB4 +:10379000390BC9011F910F91FF90EF90DF90CF90EF +:1037A00008951F920F920FB60F9211248F939F933B +:1037B000AF93BF938091DC019091DD01A091DE0178 +:1037C000B091DF010196A11DB11D8093DC019093A2 +:1037D000DD01A093DE01B093DF01BF91AF919F9116 +:1037E0008F910F900FBE0F901F9018950E94E70CBD +:1037F000F8942FEF87EA91E6215080409040E1F75E +:1038000000C0000087E090EBDC018093FB01909307 +:10381000FC01A093FD01B093FE019CE088E10FB68E +:10382000F894A895809360000FBE90936000FFCF3E +:10383000EF92FF920F931F93CF93DF93D82FCDE09A +:103840008C2F0E94390405E010E0E82EF12CC7010E +:10385000002E02C0959587950A94E2F780FF09C073 +:10386000602F7C2F80E00E94F305D81302C081E016 +:1038700006C00150110958F7C15010F780E0DF91E0 +:10388000CF911F910F91FF90EF900895CF93C82F84 +:103890008CE20E94181C882321F08C2FCF910C946D +:1038A000181C80E0CF910895CF930E949B1D811139 +:1038B00002C00E94811DC5E6C15049F00E944B0321 +:1038C0008FE39CE90197F1F700C00000F5CF89E292 +:1038D0000E94461C811113C18AE20E94461C81117C +:1038E0000E94811D85E00E94461C81110E94F61BEA +:1038F0000E94A61D8093DA0187E00E94461C88235F +:10390000A9F18BE10E94461C882351F08091DA01D5 +:1039100081FB222720F991E0922790FB81F90EC0CC +:103920008EE00E94461C882361F08091DA0182FBC0 +:10393000222720F991E0922790FB82F98093DA0107 +:1039400015C080E10E94461C9091DA01882341F065 +:1039500093FB222720F981E0822780FB93F904C0A2 +:10396000892F809580FB90F99093DA018091DA019C +:103970000E94AA1D0E94B81D8093FA0180EE0E9449 +:10398000461C882341F08091FA01982F909590FB76 +:1039900080F98093FA0189E30E94461C882359F03C +:1039A0008091FA0181FB222720F991E0922790FB78 +:1039B00081F98093FA0182EE0E94461C882359F017 +:1039C0008091FA0182FB222720F991E0922790FB57 +:1039D00082F98093FA0186EE0E94461C882359F0F2 +:1039E0008091FA0183FB222720F991E0922790FB36 +:1039F00083F98093FA0183EE0E94461C882359F0D4 +:103A00008091FA0184FB222720F991E0922790FB14 +:103A100084F98093FA0185E30E94461C882359F0BB +:103A20008091FA0185FB222720F991E0922790FBF3 +:103A300085F98093FA0181E30E94461C882359F09E +:103A40008091FA0186FB222720F991E0922790FBD2 +:103A500086F98093FA0181E10E94461C882359F07F +:103A60008091FA0187FB222720F991E0922790FBB1 +:103A700087F98093FA018091FA010E94BC1D809120 +:103A8000FA0187FB882780F980930D0187E20E9465 +:103A9000461CC82F8EE10E94461C8111C2608FE136 +:103AA0000E94461C8111C46080E20E94461C811164 +:103AB000C86081E20E94461C8111C06182E20E94BE +:103AC000461C8111C06283E20E94461C8111C064C1 +:103AD00084E20E94461C882311F0C06802C0CC23F7 +:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4 +:103AF000682F70E080E090E0CF910C944318CF9154 +:103B000008956DEE7EEF80E090E00E94ED2360E08E +:103B100082E090E00E94DB2360E083E090E00E947E +:103B2000DB2360E084E090E00E94DB2360E085E03E +:103B300090E00C94DB2380E090E00E94D52321E00C +:103B40008D3E9E4F09F020E0822F089582E090E0A4 +:103B50000C94CD23682F82E090E00C94DB2383E06B +:103B600090E00C94CD23682F83E090E00C94DB234D +:103B700084E090E00C94CD23682F84E090E00C94D6 +:103B8000DB238091E20180FF0BC06091130185E08F +:103B9000689FB001112475956795759567952BC041 +:103BA00081FF09C06091130185E0689FB001112475 +:103BB0007595679520C082FF07C06091130185E06D +:103BC000689FB001112417C09091E3019923D1F0AF +:103BD00060911201961788F72091130185E0289FC4 +:103BE00090011124929FA001939F500D112470E029 +:103BF000CA010E949F236038710540F46115710568 +:103C000039F002C065E070E0862F08958FE70895CF +:103C100081E008958091E20180FF08C06091110168 +:103C200070E0759567957595679521C081FF06C011 +:103C30006091110170E07595679519C082FF04C00D +:103C40006091110170E010C09091E3019923C1F0DF +:103C5000609110019617A0F780911101899FC00112 +:103C6000112470E00E949F236038710528F46115CB +:103C7000710521F0862F08958FE7089581E008955A +:103C800061E070E0F4CF803F21F40E94C11D819576 +:103C900004C0813F29F40E94C11D8093E60108956C +:103CA000823F21F40E94C11D819504C0833F29F405 +:103CB0000E94C11D8093E5010895893F19F40E9477 +:103CC0000A1E05C08A3F31F40E940A1E8195809326 +:103CD000E70108958B3F21F40E940A1E819504C0DC +:103CE0008C3F29F40E940A1E8093E8010895843FC6 +:103CF00021F48091E401816017C0853F21F4809117 +:103D0000E401826011C0863F21F48091E401846067 +:103D10000BC0873F21F48091E401886005C0883F93 +:103D200031F48091E40180618093E40108958D3F36 +:103D300021F48091E20181600BC08E3F21F48091DB +:103D4000E201826005C08F3F29F48091E201846026 +:103D50008093E2010895803F39F48091E60187FF66 +:103D60006CC01092E60169C0813F29F48091E601A0 +:103D70001816BCF362C09091E501823F29F497FFC9 +:103D80005CC01092E50159C0833F19F41916CCF3B9 +:103D900054C0893F41F48091E70118160CF04DC0E2 +:103DA0001092E7014AC08A3F29F48091E70187FF1A +:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6 +:103DC0001092E8013AC08C3F29F48091E80118165E +:103DD000BCF333C0843F21F48091E4018E7F17C08F +:103DE000853F21F48091E4018D7F11C0863F21F44D +:103DF0008091E4018B7F0BC0873F21F48091E40127 +:103E0000877F05C0883F31F48091E4018F7E8093E5 +:103E1000E40113C08D3F21F48091E2018E7F0BC03D +:103E20008E3F21F48091E2018D7F05C08F3F29F400 +:103E30008091E2018B7F8093E2018091E501811105 +:103E40000EC08091E60181110AC08091E7018111C5 +:103E500006C08091E801811102C01092E30108952B +:103E600084EE91E00E9401100E949B1B9093E1015F +:103E70008093E00108951F93CF93DF938091E00139 +:103E80009091E1010E94A71BAC019091E30199235D +:103E900021F02091140130E006C0209115018AE044 +:103EA000289F900111244217530708F486C080917F +:103EB000E501C091E601D091E7011091E80181117F +:103EC00007C0C11176C0D11174C0111172C075C084 +:103ED0009F3F19F09F5F9093E301181624F40E940E +:103EE000C11D8093E5018091E50187FF05C00E9417 +:103EF000C11D81958093E5011C1624F40E94C11D0B +:103F00008093E6018091E60187FF05C00E94C11DF4 +:103F100081958093E6016091E501662339F1C091B6 +:103F2000E601CC2319F1772767FD7095872F972F2E +:103F30000E94B02223E333E343E35FE30E941423B0 +:103F40000E947D226093E5016C2F772767FD7095B5 +:103F5000872F972F0E94B02223E333E343E35FE3ED +:103F60000E9414230E947D226093E6011D1624F412 +:103F70000E940A1E8093E7018091E70187FF05C038 +:103F80000E940A1E81958093E701111624F40E9475 +:103F90000A1E8093E8018091E80187FF05C00E9416 +:103FA0000A1E81958093E801DF91CF911F910C94B7 +:103FB000301F9F3F09F08ECF96CFDF91CF911F9199 +:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE +:103FD0001092E3011092E2010895833081F128F4F8 +:103FE000813059F08230D1F00895853009F449C00C +:103FF000B8F1863009F456C0089580911501262F36 +:1040000030E0280F311D2F3F310524F4680F6093F5 +:10401000150108958FEF8093150108958091140183 +:10402000262F30E0280F311D2F3F310524F4680F73 +:104030006093140108958FEF809314010895809187 +:104040001301262F30E0280F311D2F3F310524F4B6 +:10405000680F6093130108958FEF80931301089503 +:1040600080911201262F30E0280F311D2F3F31059E +:1040700024F4680F6093120108958FEF809312016A +:10408000089580911101262F30E0280F311D2F3F18 +:10409000310524F4680F6093110108958FEF809328 +:1040A0001101089580911001262F30E0280F311D55 +:1040B0002F3F310524F4680F6093100108958FEFAE +:1040C000809310010895833011F128F4813049F074 +:1040D000823091F00895853081F120F18630C1F170 +:1040E000089580911501681720F4861B80931501AF +:1040F000089510921501089580911401681720F415 +:10410000861B8093140108951092140108958091E4 +:104110001301681720F4861B8093130108951092F1 +:104120001301089580911201681720F4861B809373 +:1041300012010895109212010895809111016817DB +:1041400020F4861B809311010895109211010895A7 +:1041500080911001681720F4861B80931001089548 +:104160001092100108950F931F938D3109F46BC0C5 +:1041700008F03FC08E3009F47FC0C0F4873009F4E6 +:1041800069C068F4863009F0B1C08091DA01817F9E +:104190008E7F8093DA0181E08093EA01A8C08830A5 +:1041A00009F4A2C08B3009F49FC0A0C0863109F485 +:1041B0009BC078F4803109F472C0813109F096C057 +:1041C0000E94831490910D0181E0892780930D0155 +:1041D0008BC0893109F488C08B3109F087C0809188 +:1041E000DA0181FB222720F991E0922790FB81F9E7 +:1041F0004CC0853309F470C048F4873209F46CC0B0 +:1042000008F459C0893209F467C070C0833438F4A7 +:104210008A3308F04EC0883309F466C067C083341F +:1042200009F45AC0883409F061C00E9483140FEF6A +:1042300013ED20E3015010402040E1F700C00000E2 +:104240000E94F61B51C00E9437220E94EA0F0E9472 +:10425000E3084AC09091DA01892F8095817080FB34 +:1042600090F929F0966098609093DA0140C0997FA8 +:10427000977F9093DA0138C08091DA0182FB222780 +:1042800020F991E0922790FB82F98093DA0199233B +:1042900059F18091DA0181608093DA0125C0809123 +:1042A000DA0183FB222720F991E0922790FB83F922 +:1042B000ECCF895301C08D5141E050E060E070E0E7 +:1042C0008A019B0104C0000F111F221F331F8A9512 +:1042D000D2F7C901B80104C061E070E080E090E06D +:1042E0000E9443180E94831481E001C080E01F9166 +:1042F0000F91089580E0089580E00895CF93C82F2E +:104300008091EA01813079F018F08230E9F187C0BC +:10431000E0910E01F0910F018081813169F08232CC +:1043200009F07FC009C0E0910E01F0910F0180817A +:10433000813111F0823261F48C2F0E947A21811137 +:1043400004C08C2F0E94B3201DC081E090E01AC0F1 +:104350008C2F0E947C21811114C0C43179F048F463 +:10436000CB3079F0C03109F060C082E08093EA017F +:1043700008C0C93219F0C83321F057C01092EA01C1 +:1043800054C081E0817053C0C93289F118F5C4313D +:1043900071F1A8F4C73009F046C08AE08093150196 +:1043A00094E19093140193E0909313018093120190 +:1043B00088E08093110188E28093100134C0CE51CF +:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB +:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC +:1043E00013C0C13579F0C235F1F461E00DC08091A0 +:1043F000E901882319F01092E90115C081E080934A +:10440000EA0115C061E006C08091E9010E94ED1F3C +:104410000AC06AE08091E9010E94632004C0109202 +:10442000EA0180E004C081E002C080E0ABCFCF9120 +:104430000895E1E8F0E08081886080838081816078 +:1044400080838FB7F89493E09093890090ED9093D8 +:1044500088008FBF0895EFE6F0E08081826080835E +:104460000895EFE6F0E080818D7F80830895EFE688 +:10447000F0E0908182E08927808308951F920F9257 +:104480000FB60F9211242F933F934F935F936F9327 +:104490007F938F939F93AF93BF93EF93FF938091FD +:1044A000EB019091EC0101969093EC018093EB016C +:1044B000811103C082E00E94E308E091EC01E695DF +:1044C000E695F0E0EC54FB4FE4918091EB018E1304 +:1044D00003C080E00E94E308FF91EF91BF91AF918C +:1044E0009F918F917F916F915F914F913F912F910C +:1044F0000F900FBE0F901F90189504D06894B111C3 +:104500008DC0089570D088F09F5790F0B92F9927EB +:10451000B751A0F0D1F0660F771F881F991F1AF0CE +:10452000BA95C9F712C0B13081F077D0B1E00895E3 +:1045300074C0672F782F8827B85F39F0B93FCCF364 +:10454000869577956795B395D9F73EF490958095C4 +:10455000709561957F4F8F4F9F4F0895E89409C0E4 +:1045600097FB3EF490958095709561957F4F8F4FA6 +:104570009F4F9923A9F0F92F96E9BB279395F695BC +:10458000879577956795B795F111F8CFFAF4BB0F3A +:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E +:1045A000882311F096E911C0772321F09EE8872F28 +:1045B000762F05C0662371F096E8862F70E060E0E4 +:1045C0002AF09A95660F771F881FDAF7880F96955D +:1045D000879597F9089557FD9058440F551F59F046 +:1045E0005F3F71F04795880F97FB991F61F09F3FE0 +:1045F00079F087950895121613061406551FF2CF09 +:104600004695F1DF08C0161617061806991FF1CF58 +:1046100086957105610508940895E894BB2766277F +:104620007727CB0197F908950BD078C069D028F08F +:104630006ED018F0952309F05AC05FC01124EECF58 +:10464000CADFA0F3959FD1F3950F50E0551F629FED +:10465000F001729FBB27F00DB11D639FAA27F00DDB +:10466000B11DAA1F649F6627B00DA11D661F829F02 +:104670002227B00DA11D621F739FB00DA11D621FE7 +:10468000839FA00D611D221F749F3327A00D611D04 +:10469000231F849F600D211D822F762F6A2F1124E6 +:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39 +:1046B000BB1F661F771F881F91505040A9F79E3F70 +:1046C000510570F014C0AACF5F3FECF3983EDCF3C5 +:1046D000869577956795B795F795E7959F5FC1F7AD +:1046E000FE2B880F911D9695879597F9089597F958 +:1046F0009F6780E870E060E008959FEF80EC089588 +:1047000000240A94161617061806090608950024B0 +:104710000A9412161306140605060895092E03942A +:10472000000C11F4882352F0BB0F40F4BF2B11F49E +:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF +:10474000072E16F4009407D077FD09D00E94B923F4 +:1047500007FC05D03EF4909581959F4F0895709584 +:1047600061957F4F0895EE0FFF1F0590F491E02DA6 +:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8 +:10478000B70710F0A61BB70B881F991F5A95A9F7FA +:1047900080959095BC01CD010895F999FECF92BD09 +:1047A00081BDF89A992780B50895A8E1B0E042E06C +:1047B00050E00C94F523262FF999FECF92BD81BDD0 +:1047C000F89A019700B4021639F01FBA20BD0FB64F +:1047D000F894FA9AF99A0FBE08950196272F0E942D +:1047E000DC230C94DB23DC01CB01FC01F999FECF27 +:1047F00006C0F2BDE1BDF89A319600B40D92415069 +:0A4800005040B8F70895F894FFCF78 +:10480A000220E508730950091C09E8080101C701DB +:10481A0028080A03140A3F4D363975042804F2039E +:10482A00B9034C0365037E039703010203040506DB +:04483A000708090062 +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/osx_fr/keymap.c b/keyboards/ergodox_ez/keymaps/osx_fr/keymap.c new file mode 100644 index 000000000..de951666d --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/osx_fr/keymap.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_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/keyboards/ergodox_ez/keymaps/osx_kinesis_pnut/compiled.hex b/keyboards/ergodox_ez/keymaps/osx_kinesis_pnut/compiled.hex new file mode 100644 index 000000000..8a7ad640d --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/osx_kinesis_pnut/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947A020C94BE020C94BE020C94BE02B4 +:100010000C94BE020C94BE020C94BE020C94BE0260 +:100020000C94BE020C94BE020C94620D0C94340E1F +:100030000C94BE020C94BE020C94BE020C94BE0240 +:100040000C94BE020C943E220C94BE020C94BE0290 +:100050000C94BE020C94D11B0C94BE020C94BE02F4 +:100060000C94BE020C94BE020C94BE020C94BE0210 +:100070000C94BE020C94BE020C94BE020C94BE0200 +:100080000C94BE020C94BE020C94BE020C94BE02F0 +:100090000C94BE020C94BE020C94BE020C94BE02E0 +:1000A0000C94BE020C94BE020C94BE02A10EC30EB0 +:1000B000B10FC30EB10F080F2B0FB10F800F930FAD +:1000C0006212621291129112C712E71218141814D8 +:1000D000F2121814A213A2130914181418141214EB +:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300 +:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0 +:10010000C113CE13D513DC13E6130000F0A13900A0 +:100110002B002900E100E10400001E00140004008F +:100120001D7135414D001F001A0016001B003400E0 +:100130004C00200008000700060050002A002100A3 +:100140001500090019004F004A00220017000A009C +:1001500005000000E300500001540000007F000093 +:1001600065744F00015400000077000029712300DE +:100170001C000B0011000000E300240018000D001B +:10018000100052002E0025000C000E003600510019 +:100190002C00260012000F0037002F002800270037 +:1001A00013003342387130002B002D003100340031 +:1001B000E500C10000000100010001000100010094 +:1001C00000003A001E0220022202010001003B0052 +:1001D0001F0221022302010001003C002F0226021F +:1001E0002F00010001003D00300227023000010015 +:1001F00001003E003102350035020000010001001F +:1002000001000000010000000100010001000000E9 +:100210000100000001003F005200510024020000D4 +:1002200001004000240021001E00010001004100E7 +:10023000250022001F003700010042002600230095 +:10024000200027000100430025022E0231002E006D +:100250000100440045000100010001000000010010 +:100260000100010001000100000001000100010087 +:1002700001000100010001000100F2000100010085 +:1002800001000100F000F1000100F4000100010094 +:100290000100F3000100F500010001000100010070 +:1002A0000100000001000100010000000100000049 +:1002B0000100010001000000010000000100010038 +:1002C0000100010001000000010001000100010027 +:1002D0000100A9000100010001000100AC00AA001A +:1002E000B600010001000100AB00A8000100010000 +:1002F0000100010001000100010001000100AE0049 +:1003000001000100000016034500720067006F0045 +:1003100044006F007800200045005A0000001603DA +:100320004500720067006F0044006F0078002000F5 +:1003300045005A0000000403090409026D0004018D +:1003400000A0FA09040000010301010009211101C4 +:100350000001223F000705810308000A090401008B +:100360000103010200092111010001224D000705CE +:10037000820308000A0904020001030000000921A9 +:10038000110100012236000705830308000A090451 +:1003900003000103000000092111010001223900BE +:1003A000070584031000011201100100000008ED90 +:1003B000FE071301000102000105010906A1010564 +:1003C0000719E029E7150025019508750181020547 +:1003D000081901290595057501910295017503918B +:1003E0000105071900297715002501957875018108 +:1003F00002C005010980A101850216010026B7008F +:100400001A01002AB700751095018100C0050C097A +:1004100001A1018503160100269C021A01002A9CF5 +:1004200002751095018100C005010902A1010901B1 +:10043000A10005091901290515002501950575017A +:10044000810295017503810105010930093115818A +:10045000257F95027508810609381581257F95014C +:1004600075088106050C0A38021581257F950175EE +:10047000088106C0C005010906A101050719E02988 +:10048000E715002501950875018102950175088120 +:100490000105081901290595057501910295017558 +:1004A0000391010507190029FF150025FF95067521 +:1004B000088100C0000000000000000000000001F2 +:1004C0000204060A0F17202C3A4A5D71879DB3C7B4 +:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF +:1004E0003A2C20170F0A0604020100000000000049 +:1004F0000000000011241FBECFEFDAE0DEBFCDBF49 +:1005000004B603FE24C08091FB019091FC01A091F0 +:10051000FD01B091FE018730904BA740B04BB9F47C +:100520001092FB011092FC011092FD011092FE014D +:1005300014BE84B7877F84BF88E10FB6F894809398 +:100540006000109260000FBEE0E0FFE3099511E04B +:10055000A0E0B1E0EAE0F8E402C005900D92A43317 +:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0 +:10057000B107E1F70E94A60A0C9403240C94000032 +:100580001092B9008AE08093B800089594EA90939D +:10059000BC009091BC0097FFFCCF9091B900987F70 +:1005A000983021F0903111F081E008958093BB00E4 +:1005B00084E88093BC008091BC0087FFFCCF8091D1 +:1005C000B900887F883111F0803471F780E0089598 +:1005D00084E98093BC008091BC0084FDFCCF089529 +:1005E0008093BB0084E88093BC008091BC0087FFAF +:1005F000FCCF9091B900987F81E0983209F480E0B7 +:10060000089584E88093BC008091BC0087FFFCCFF4 +:100610008091BB00089580910101811115C080E493 +:100620000E94C6028093010181110CC082E10E94E8 +:10063000F00280930101811105C08FEF0E94F0024A +:10064000809301010E94E80284B1807F84B985B162 +:10065000807F85B98AB1837F8AB98BB1837F8BB95B +:100660003E98469808950E94C604809301010E9416 +:100670000B0380B38C7080BB81B3836F81BBA5E318 +:10068000B1E0E3E4F1E08EE08E0F11921D928E1343 +:10069000FCCF0C94B004BF92CF92DF92EF92FF9206 +:1006A0000F931F93CF93DF9380910101882379F0FB +:1006B000809134018F5F80933401811108C00E94C2 +:1006C000C60480930101811102C00E94580405E311 +:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407 +:1006E000E394F12CC730D10500F58091010181110F +:1006F00064C080E40E94C60280930101811112C08F +:1007000082E10E94F0028093010181110BC0C701B8 +:100710000C2E01C0880F0A94EAF780950E94F0021F +:10072000809301010E94E80248C0CA30A1F028F479 +:10073000C83059F0C93061F005C0CC3089F070F094 +:10074000CD3089F0209A289810C0219A29980DC0A0 +:10075000229A2A980AC0239A2B9807C0529A01C05D +:10076000539A5B9802C03E9A469890EA9A95F1F7A0 +:100770009FB1799902C082E001C080E091709D250F +:10078000982B7C9902C084E001C080E0892B7D9980 +:1007900002C038E001C030E0832B7E9902C020E126 +:1007A00001C020E0822B9FB19095991F9927991F36 +:1007B0009295990F907E892B0FC080910101811134 +:1007C00049C080E40E94C60280930101882379F128 +:1007D000B12C0E94E8028B2DF8019081981719F036 +:1007E0008083C09200010E940B0321960F5F1F4F70 +:1007F000CE30D10509F076CF80910001882361F1D8 +:10080000815080930001882339F08FE99FE00197A0 +:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F +:10082000CF01825F91919D938E13FCCF15C083E120 +:100830000E94F002809301018111CACF81E40E94DD +:10084000C602809301018111C3CF0E940103B82E1B +:10085000B094BFCF80E0C0CF0E94560481E0DF910A +:10086000CF911F910F91FF90EF90DF90CF90BF90AD +:100870000895E82FF0E0ED5BFE4F80810895089524 +:100880000F931F93CF93DF93C3E4D1E010E00C2FBD +:10089000025F899190E00E94F71A180F0C13F9CFAC +:1008A000812FDF91CF911F910F9108950C94260510 +:1008B00056985E9825982D9826982E9827982F98C8 +:1008C0008FEF90E0909389008093880090938B0045 +:1008D00080938A0090938D0080938C00259A2D9AA6 +:1008E0002FEF80E792E0215080409040E1F700C078 +:1008F0000000269A2E9A2FEF80E792E02150804048 +:100900009040E1F700C00000279A2F9A2FEF80E770 +:1009100092E0215080409040E1F700C0000025980F +:100920002D982FEF80E792E0215080409040E1F732 +:1009300000C0000026982E982FEF80E792E021500B +:1009400080409040E1F700C0000027982F9856980B +:100950005E9825982D9826982E9827982F98089578 +:1009600089EA8093800089E08093810024982C9804 +:100970003F988AB18F748AB96E98479A8BB1806B11 +:100980008BB9769A0E9458040C94250580E28093D6 +:1009900001018091510181110EC00E94C00281E0CD +:1009A000809351012FEF83ED90E3215080409040E0 +:1009B000E1F700C0000080E40E94C60280930101BC +:1009C00081112EC00E94F00280930101811128C084 +:1009D0000E94F00280930101811122C08FE30E94E6 +:1009E000F0028093010181111BC00E94E80280E4A3 +:1009F0000E94C60280930101811112C08CE00E9406 +:100A0000F0028093010181110BC00E94F0028093DB +:100A10000101811105C08FE30E94F0028093010162 +:100A20000E94E80280910101089561110BC0FC0150 +:100A30008281882321F085EE0E94061103C085EE95 +:100A40000E94CE1180E090E0089508956091BD016C +:100A50007091BE018091BF019091C0010E94031B63 +:100A600056985E9825982D9826982E9827982F9816 +:100A7000813019F0823021F00895259A2D9A089539 +:100A8000269A2E9A089581E0089581E008950C94A5 +:100A9000450508950F931F93CF93DF938C01FC01BD +:100AA000C081D181CE010E947C19BE010E94F30554 +:100AB000EC01B8010E944705882309F48DC0F801B4 +:100AC0008281882309F44AC080915D0181111FC091 +:100AD000C431F0E5DF0709F051C00E94490581E00B +:100AE00080935D010E949B1B90935C0180935B014E +:100AF0001092540110925601109255011092580113 +:100B00001092570110925A011092590165C08091BC +:100B10005B0190915C010E94A71B883C910570F4D9 +:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB +:100B3000D183C0838F5F809354014EC0C43880E559 +:100B4000D80721F0C538D04501F13AC0F8018281BB +:100B5000882341F01092520182E01EC0C438E0E5C3 +:100B6000DE0759F580915201811106C086E20E948C +:100B7000061186E20E94CE1182E01CC0C438F0E566 +:100B8000DF0741F3C538D045D9F4F80182818823C5 +:100B900031F01092530180E20E941D121DC080911D +:100BA0005301811106C087E20E94061187E20E946C +:100BB000CE1180E20E9424120FC0C538D04529F31F +:100BC00081E08093520180935301C801DF91CF915E +:100BD0001F910F910C94430580E0DF91CF911F91FD +:100BE0000F910895089596E0799FF001112494E5FE +:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F +:100C0000E25FFE4F859194910895880F991FFC0132 +:100C1000E657F040859194910895880F991FFC0143 +:100C2000E65FFE4F8591949108950F931F93CF93A4 +:100C3000DF93EC01811520E3920750F5C11580E2A6 +:100C4000D80708F0C3C0CB3BD10590F4C83AD10512 +:100C500008F06AC0C53AD10508F05BC0C430D105C0 +:100C600008F0D0C1219709F0CAC101E010E00AC222 +:100C7000CF3FD10511F008F0C5C1C03FD10508F044 +:100C8000A2C0CE01805E9109089708F4BBC1B7C12C +:100C9000C13090E5D90709F4A2C020F5C0318FE436 +:100CA000D80770F4C11590E4D90708F094C0C115B5 +:100CB00021E3D20708F0A3C1DD278E01106CE2C149 +:100CC000C115D04509F09BC10E9483148FEF94E3B6 +:100CD0002CE0815090402040E1F700C000000E94CD +:100CE000F61BD0C1C11597E5D90758F4C03121E5ED +:100CF000D20708F01CC1C43180E5D80708F475C0DC +:100D00007EC1CE0190578115904108F078C1DF7007 +:100D100073C1C53AD10509F477C1C63AD10509F0C6 +:100D200076C102E810E4AEC1C83AD10509F472C137 +:100D3000C93AD10509F471C1CA3AD10509F470C1A3 +:100D4000CB3AD10509F46FC1CC3AD10509F46EC193 +:100D5000CD3AD10509F46DC1C03BD10509F46CC190 +:100D6000CE3AD10509F46BC1CF3AD10509F46AC175 +:100D7000C13BD10509F469C1C23BD10509F468C181 +:100D8000C33BD10509F467C1C43BD10509F466C171 +:100D9000C53BD10509F465C1C63BD10509F464C161 +:100DA000C73BD10509F463C1C83BD10509F462C151 +:100DB000C93BD10509F461C1CA3BD10509F460C141 +:100DC00000E014E45FC18E0110655CC1CE019F702C +:100DD0000E940D0658C1DF708E01106A53C18091C8 +:100DE000DA0181608093DA014DC10E949B1D81115F +:100DF00002C00E94811D0E94B81D90E09093FB01EB +:100E00008093FA01C23080E5D80721F48091FA017D +:100E1000816086C0C43090E5D90721F48091FA0141 +:100E200082607EC0C63020E5D20721F48091FA01AD +:100E3000846076C0C83080E5D80719F48091FA0143 +:100E400027C0CA3090E5D90721F48091FA0180616A +:100E500067C0CC3020E5D20721F48091FA0180628E +:100E60005FC0CE3080E5D80721F48091FA0180641C +:100E700057C0C03190E5D90721F48091FA0180680C +:100E80004FC0C23120E5D20729F48091FA01846075 +:100E9000886046C0C33080E5D80721F48091FA010C +:100EA0008E7F3EC0C53090E5D90721F48091FA01CC +:100EB0008D7F36C0C73020E5D20721F48091FA013A +:100EC0008B7F2EC0C93080E5D80719F48091FA01D4 +:100ED00026C0CB3090E5D90721F48091FA018F7EAE +:100EE0001FC0CD3020E5D20721F48091FA018F7D1B +:100EF00017C0CF3080E5D80721F48091FA018F7BAD +:100F00000FC0C13190E5D90721F48091FA018F77A4 +:100F100007C0C331D04531F48091FA018B7F877FC0 +:100F20008093FA018091FA010E94BC1DABC08D2F05 +:100F300099278F70992781309105D9F49E012370EC +:100F4000332702C0880F991F2A95E2F79C688E010B +:100F500044E0000F111F4A95E1F700271370802B22 +:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA +:100F70002FC08230910531F4DC2FCC278E01016F18 +:100F8000106A80C08330910569F4CE01837099277F +:100F900001E010E002C0000F111F8A95E2F7C801BE +:100FA0009C680FC084309105B9F4CE0183709927F5 +:100FB00001E010E002C0000F111F8A95E2F7C8019E +:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029 +:100FD0008C010C2B1D2B56C08530910531F4DC2F74 +:100FE000CC278E01046F106A4DC0069709F04AC0E5 +:100FF000CF71DD27DC2FCC278E01106243C000E0CB +:1010000010E040C08E013EC001E810E43BC003E8A0 +:1010100010E438C002EE14E435C009EE14E432C026 +:101020000AEE14E42FC005EB14E42CC006EB14E424 +:1010300029C007EB14E426C00CEC14E423C00DEC2B +:1010400014E420C003E815E41DC00AE815E41AC042 +:1010500002E915E417C004E915E414C001E216E43E +:1010600011C003E216E40EC004E216E40BC005E270 +:1010700016E408C006E216E405C007E216E402C062 +:101080000AE216E4C801DF91CF911F910F910895F4 +:1010900096E0799FF001112494E5899FE00DF11D00 +:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149 +:1010B0009491803E9105E0F4803C910558F5813390 +:1010C000910509F46FC048F48932910509F463C0B1 +:1010D0008A32910509F46DC072C089339105E9F037 +:1010E00082389105D1F08533910509F44DC067C070 +:1010F000833E910581F138F4803E9105B9F0823E3E +:101100009105D9F05CC0863E910561F1873E91055D +:10111000A1F155C00E94050608952091FA0120FD15 +:1011200002C021FF4CC080EE90E049C08091FA01DE +:1011300080FFF9CF89E390E042C08091FA0182FFFD +:101140000EC08091FA0184FF03C080E090E037C0B8 +:1011500083EE90E034C08091FA0182FFF2CF82EEFC +:1011600090E02DC08091FA0183FF0BC08091FA01BD +:1011700084FDEBCF87EE90E022C08091FA0183FFDF +:10118000F5CF86EE90E01BC08091FA0185FF07C085 +:1011900089E290E014C08091FA0185FFF9CF85E3E0 +:1011A00090E00DC08091FA0186FF07C08AE290E0CE +:1011B00006C08091FA0186FFF9CF81E390E00E949A +:1011C0001506089508950C94E20880916E01089523 +:1011D000CF93DF9300D01F92CDB7DEB79C018091F3 +:1011E000F101843019F593E099833B832A8390932E +:1011F000E9008FEF9091E800815095FD06C095EDD4 +:101200009A95F1F700008111F5CF8091E80085FFF4 +:101210000DC040E050E063E070E0CE0101960E9416 +:10122000520B8091E8008E778093E8000F900F902A +:101230000F90DF91CF910895CF93DF9300D01F924D +:10124000CDB7DEB72091F101243021F522E02983CA +:101250009B838A8383E08093E9008FEF9091E8007D +:10126000815095FD06C095ED9A95F1F7000081112A +:10127000F5CF8091E80085FF0DC040E050E063E0CD +:1012800070E0CE0101960E94520B8091E8008E77AB +:101290008093E8000F900F900F90DF91CF91089509 +:1012A0002091F1012430F1F422E02093E9002FEFA6 +:1012B0003091E800215035FD06C035ED3A95F1F743 +:1012C00000002111F5CF2091E80025FF0BC040E080 +:1012D00050E065E070E00E94520B8091E8008E774C +:1012E0008093E8000895CF93DF93EC019091F10192 +:1012F000943009F046C080910C018823D9F0809188 +:101300000D018823B9F09093E9008FEF9091E800E8 +:10131000815095FD06C095E19A95F1F70000811185 +:10132000F5CF8091E80085FF2CC040E050E060E1FF +:1013300070E017C081E08093E9008FEF9091E800A2 +:10134000815095FD06C095ED9A95F1F70000811149 +:10135000F5CF8091E80085FF14C040E050E068E0E0 +:1013600070E0CE010E94520B8091E8008E7780934E +:10137000E80080E1FE01AEE5B1E001900D928A95B2 +:10138000E1F7DF91CF9108958091F001811109C0BB +:101390000E94E70C0E94440D8091E20084608093DB +:1013A000E20008951092F001089508950C942B2204 +:1013B0000E948C1B0E9431220E94EA0F0C94E308C9 +:1013C00042E061EC81E00E94610C42E061EC82E06D +:1013D0000E94610C42E061EC83E00E94610C42E1FA +:1013E00061EC84E00C94610C8091F301833009F48A +:1013F00055C030F4813071F0823009F48EC0089508 +:101400008A3009F47AC08B3009F460C0893009F061 +:101410009CC020C08091F201813A09F096C0809171 +:10142000E800877F8093E8008091F6019091F701B2 +:10143000892B21F460E18EE591E003C060E080E05B +:1014400090E070E00E949D0B8091E8008B77809384 +:10145000E80008958091F201813209F076C0809110 +:10146000F6019091F701009719F0039709F06DC00C +:101470008091E800877F8093E8008091E80082FDFA +:1014800005C08091F1018111F8CF5FC08091F1001A +:1014900080936E018091E8008B7753C08091F201B8 +:1014A000813A09F052C08091F6019091F701892BA1 +:1014B00009F04BC08091E800877F8093E80080911D +:1014C000E80080FFFCCF80910C0136C08091F201D2 +:1014D0008132D9F58091F6019091F701892BA9F518 +:1014E0008091E800877F8093E8000E94960C8091AD +:1014F000F40180930C010C9483148091F2018132E9 +:1015000021F58091E800877F8093E8000E94960C87 +:101510008091F50180936F0108958091F201813AE5 +:10152000A1F48091E800877F8093E8008091E80033 +:1015300080FFFCCF80916F018093F1008091E800E3 +:101540008E778093E8000C94960C089584B7877F7B +:1015500084BF88E10FB6F894809360001092600019 +:101560000FBE90E080E80FB6F894809361009093EE +:1015700061000FBE0E9439100E94E70C0E94440DCA +:101580008091E20084608093E20078940E94CA0F08 +:101590000E943B1082E091E00E94E50F0E94192218 +:1015A0008091F101853069F40E94531B8091EF0115 +:1015B0008823B1F30E947E1B882391F30E943C0B89 +:1015C000EFCF0E944110ECCF292F33272330310574 +:1015D000C9F064F42130310581F02230310509F081 +:1015E00043C08DE690E02AE333E042C0213231056A +:1015F000F1F02232310541F137C082E190E027EA73 +:1016000033E036C099278130910541F08230910551 +:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4 +:1016200002C0E6E0F3E0849190E09F0121C06430C5 +:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5 +:10164000318189E090E014C0643070F470E0FB01F7 +:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47 +:10166000FE4F808190E004C080E090E020E030E018 +:10167000FA0131832083089580E189BD82E189BD2B +:1016800009B400FEFDCF8091D8008F7D8093D800F3 +:101690008091E00082608093E0008091E00081FD15 +:1016A000FCCF0895CF92DF92EF92FF920F931F939A +:1016B000CF93DF93EC018B016A010E94B50C81117D +:1016C00033C0C114D10439F0F60180819181081B27 +:1016D000190BC80FD91FE12CF12C0115110519F1B7 +:1016E0008091E80085FD16C08091E8008E77809398 +:1016F000E800C114D10449F0F60180819181E80E1F +:10170000F91EF182E08285E00FC00E94B50C8823AB +:1017100021F30AC089918093F10001501109FFEF74 +:10172000EF1AFF0ADACF80E0DF91CF911F910F917E +:10173000FF90EF90DF90CF9008952091F8013091C5 +:10174000F9012617370748F06115710539F4209122 +:10175000E8002E772093E80001C0B90140E0611550 +:101760007105A9F12091F101222309F443C025302C +:1017700009F442C02091E80023FD40C02091E80018 +:1017800022FD32C02091E80020FFE9CF4091F30014 +:101790002091F20030E0342BFC01CF01611571057E +:1017A00059F02830310540F481918093F100615067 +:1017B00071092F5F3F4FF1CF41E02830310509F02B +:1017C00040E02091E8002E772093E800C8CF411137 +:1017D000C9CF0AC08091F101882361F0853061F0A2 +:1017E0008091E80083FD0AC08091E80082FFF2CF7B +:1017F00080E0089582E0089583E0089581E00895EF +:101800002091F8013091F9012617370748F061154A +:10181000710539F42091E8002E772093E80001C08B +:10182000B901FC0120E06115710591F18091F10190 +:10183000882309F440C0853009F43FC08091E80056 +:1018400083FD3DC08091E80082FD2FC08091E800BB +:1018500080FFE9CF2091F3008091F20090E0922B7D +:101860006115710559F08830910540F42491209359 +:10187000F1003196615071090196F2CF21E008978D +:1018800009F020E08091E8008E778093E800CBCFCC +:101890002111CCCF0AC08091F101882361F08530FD +:1018A00061F08091E80083FD0AC08091E80082FF2A +:1018B000F2CF80E0089582E0089583E0089581E00A +:1018C0000895982F973058F59093E900981739F0BC +:1018D0007091EC002091ED005091F00003C0242F96 +:1018E000762F50E021FF19C03091EB003E7F3093FE +:1018F000EB003091ED003D7F3093ED003091EB0037 +:1019000031603093EB007093EC002093ED00509326 +:10191000F0002091EE0027FF07C09F5FD3CF8F70AC +:101920008093E90081E0089580E008958091F201BC +:1019300087FF11C08091E80082FD05C08091F10110 +:101940008111F8CF11C08091E8008B770BC0809196 +:10195000F101882349F08091E80080FFF8CF809161 +:10196000E8008E778093E80008952091E40030919C +:10197000E50095E64091EC00842F817040FF22C085 +:101980008091E80080FD1CC08091F101882391F0D6 +:10199000853091F08091EB0085FD10C04091E4000E +:1019A0005091E5004217530729F39A01915011F71E +:1019B00084E0089582E0089583E0089581E0089529 +:1019C00080E008954091E80042FFDECF08950E9434 +:1019D000550D0E945D0DE0EEF0E080818160808316 +:1019E000E8EDF0E080818F77808319BCA7EDB0E04F +:1019F0008C918E7F8C9380818F7E80831092F001FA +:101A000008950F931F93CF93DF930E94550D0E946B +:101A10005D0DC8EDD0E088818F77888388818068EC +:101A2000888388818F7D888319BC1092F101109280 +:101A3000ED011092EF011092EE0100EE10E0F801BE +:101A400080818B7F808388818160888342E060E031 +:101A500080E00E94610CE1EEF0E080818E7F808367 +:101A6000E2EEF0E080818160808380818860808305 +:101A7000F80180818E7F8083888180618883DF91F7 +:101A8000CF911F910F910895E8EDF0E080818F7E56 +:101A90008083E7EDF0E080818160808384E082BF15 +:101AA00081E08093F0010C94010DE8EDF0E080817D +:101AB0008E7F80831092E20008951092DA001092D7 +:101AC000E10008951F920F920FB60F9211242F93E9 +:101AD0003F934F935F936F937F938F939F93AF93B6 +:101AE000BF93EF93FF938091E10082FF0BC0809141 +:101AF000E20082FF07C08091E1008B7F8093E100CC +:101B00000E94C90F8091DA0080FF1FC08091D80029 +:101B100080FF1BC08091DA008E7F8093DA00809175 +:101B2000D90080FF0DC080E189BD82E189BD09B483 +:101B300000FEFDCF81E08093F1010E94C40905C041 +:101B400019BC1092F1010E94D2098091E10080FF3E +:101B500019C08091E20080FF15C08091E2008E7F65 +:101B60008093E2008091E20080618093E2008091A6 +:101B7000D80080628093D80019BC85E08093F10181 +:101B80000E94D6098091E10084FF30C08091E2007C +:101B900084FF2CC080E189BD82E189BD09B400FECB +:101BA000FDCF8091D8008F7D8093D8008091E10097 +:101BB0008F7E8093E1008091E2008F7E8093E2002F +:101BC0008091E20081608093E2008091ED018823A2 +:101BD00011F084E007C08091E30087FD02C081E03E +:101BE00001C083E08093F1010E94D8098091E10057 +:101BF00083FF29C08091E20083FF25C08091E1002E +:101C0000877F8093E10082E08093F1011092ED01E3 +:101C10008091E1008E7F8093E1008091E2008E7FD1 +:101C20008093E2008091E20080618093E20042E0D4 +:101C300060E080E00E94610C8091F00088608093F9 +:101C4000F0000E94D509FF91EF91BF91AF919F9154 +:101C50008F917F916F915F914F913F912F910F9055 +:101C60000FBE0F901F9018951F920F920FB60F92F4 +:101C700011242F933F934F935F936F937F938F9391 +:101C80009F93AF93BF93CF93DF93EF93FF93C09155 +:101C9000E900CF708091EC00D82FD17080FDD0E8A2 +:101CA0001092E9008091F000877F8093F000789493 +:101CB0000E94780E1092E9008091F0008860809375 +:101CC000F000CD2BCF70C093E900FF91EF91DF9131 +:101CD000CF91BF91AF919F918F917F916F915F91C4 +:101CE0004F913F912F910F900FBE0F901F9018951D +:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3 +:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115 +:101D1000F10091938E13FBCF0E94F4098091E800AB +:101D200083FF1FC18091F2019091F301492F50E090 +:101D30004A30510508F015C1FA01EA5AFF4F0C94D8 +:101D4000B323803881F0823809F00BC18091F6010D +:101D50008F708093E9008091EB0085FB882780F9E4 +:101D60001092E90006C08091EE019091EF0191116F +:101D700082609091E800977F9093E8008093F10053 +:101D80001092F100C8C0282F2D7F09F0EAC08823E7 +:101D900019F0823061F0E5C08091F401813009F0E2 +:101DA000E0C0933009F080E08093EF012BC0809178 +:101DB000F401811127C08091F6018F7009F4D1C020 +:101DC0008093E9002091EB0020FF1CC0933021F4A8 +:101DD0008091EB00806214C09091EB009061909331 +:101DE000EB0021E030E0A90102C0440F551F8A95A5 +:101DF000E2F74093EA001092EA008091EB008860DD +:101E00008093EB001092E9008091E800877F86C004 +:101E10008111A7C01091F4011F778091E3008078B1 +:101E2000812B8093E3008091E800877F8093E80016 +:101E30000E94960C8091E80080FFFCCF8091E30027 +:101E400080688093E300111102C082E001C083E04A +:101E50008093F10186C08058823008F082C0809162 +:101E6000F4019091F5018C3D53E0950779F583E0FD +:101E70008A838AE289834FB7F894DE01139620E0C3 +:101E80003EE051E2E32FF0E050935700E49120FF51 +:101E900003C0E295EF703F5FEF708E2F90E0EA3065 +:101EA00010F0C79601C0C0968D939D932F5F24318B +:101EB00049F74FBF8091E800877F8093E8006AE28E +:101EC00070E0CE0101960E949D0B14C0AE014F5FE1 +:101ED0005F4F6091F6010E94E40ABC01009709F48B +:101EE00040C09091E800977F9093E80089819A81A3 +:101EF0000E94000C8091E8008B778093E80031C04D +:101F0000803879F58091E800877F8093E8008091A0 +:101F1000ED018093F1008091E8008E778093E800D6 +:101F20000E94960C1EC081111CC09091F401923049 +:101F3000C0F48091E800877F8093E8009093ED01E2 +:101F40000E94960C8091ED01811106C08091E30002 +:101F500087FD02C081E001C084E08093F1010E940E +:101F6000E0098091E80083FF0AC08091E800877F44 +:101F70008093E8008091EB0080628093EB00AA964A +:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A +:101F900008950895CF938091F1018823A1F0C09115 +:101FA000E900CF709091EC00892F817090FD80E85E +:101FB000C82B1092E9008091E80083FD0E94780E02 +:101FC000CF70C093E900CF910895909375018093ED +:101FD00074010895E0917401F0917501309721F03A +:101FE0000190F081E02D099480E00895E091740162 +:101FF000F0917501309721F00280F381E02D099472 +:102000000895E0917401F0917501309721F00480FA +:10201000F581E02D099408952091720130917301AA +:102020008217930771F09093730180937201E0918E +:102030007401F0917501309721F00680F781E02D51 +:1020400009940895209170013091710182179307CE +:1020500071F09093710180937001E0917401F0919F +:102060007501309721F00084F185E02D09940895E1 +:1020700008950C9438100E94921B0E9433030C9414 +:10208000541C9F92AF92BF92CF92DF92EF92FF9239 +:102090000F931F93CF93DF9300D000D000D0CDB724 +:1020A000DEB70E944B030DE010E0AA24A394B12CEC +:1020B000902E802F0E943904980129583E4F6901C3 +:1020C000F901F080F826A1F40150110988F78FEF8B +:1020D00089838A831B820E949B1B8160782F9D834A +:1020E0008C8349815A816B818D810E94D8102FC0C9 +:1020F0009091DA0191FF04C08E830E943F048E818B +:1021000025E030E0A501022E01C0440F0A94EAF751 +:10211000E42E4F21C1F029839A828E2191E009F4A7 +:1021200090E09B830E949B1B8160782F9D838C8312 +:1021300049815A816B818D810E94D810F60180817E +:10214000E826E08204C021503109E0F6BDCF0E94AC +:102150003B1F109176010E94EA0F1817B9F00E94F8 +:10216000EA0F8093760126960FB6F894DEBF0FBE75 +:10217000CDBFDF91CF911F910F91FF90EF90DF9036 +:10218000CF90BF90AF909F900C94E30826960FB627 +:10219000F894DEBF0FBECDBFDF91CF911F910F919D +:1021A000FF90EF90DF90CF90BF90AF909F900895F9 +:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82 +:1021C0000FBECDBF4F83588769877A878B87DE0123 +:1021D000119686E0FD0111928A95E9F785E0FE01EE +:1021E000379601900D928A95E1F749815A816B816A +:1021F0007C818D819E810E9421172B960FB6F894C9 +:10220000DEBF0FBECDBFDF91CF910895CF9388235E +:1022100009F4C2C0C82F823859F40E94EA0F81FD28 +:10222000BBC089E30E94FB190E94C81A89E30CC055 +:10223000833879F40E94EA0F80FDAEC083E50E94E6 +:10224000FB190E94C81A83E50E943D1ACF910C9495 +:10225000C81A843859F40E94EA0F82FD9DC087E4B1 +:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6 +:10227000813A48F48C2F0E947E2181118DC08C2FD1 +:102280000E94FB19E3CF80E28C0F883048F4C770BE +:1022900081E001C0880FCA95EAF70E94811AD6CF63 +:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB +:1022B00083E890E005C081E890E002C082E890E009 +:1022C000CF910C940C1088E58C0F833108F064C01A +:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118 +:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186 +:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106 +:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173 +:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB +:1023200038C082EE90E035C089EE90E032C08AEE8F +:1023300090E02FC085EB90E02CC086EB90E029C0A8 +:1023400087EB90E026C08CEC90E023C08DEC90E011 +:1023500020C083E891E01DC08AE891E01AC082E9BC +:1023600091E017C084E991E014C081E292E011C0CD +:1023700083E292E00EC084E292E00BC085E292E03C +:1023800008C086E292E005C087E292E002C08AE2DD +:1023900092E0CF910C942210CF910895882309F4F4 +:1023A0004BC0823859F40E94EA0F81FF45C089E38F +:1023B0000E94FB190E94C81A89E30CC0833871F48B +:1023C0000E94EA0F80FF38C083E50E94FB190E943B +:1023D000C81A83E50E943D1A0C94C81A843859F42F +:1023E0000E94EA0F82FF28C087E40E94FB190E9426 +:1023F000C81A87E4EFCF9CEF980F913A58F390E218 +:10240000980F983050F4877091E001C0990F8A9529 +:10241000EAF7892F0E94871ADFCF9BE5980F933048 +:1024200020F480E090E00C940C10885A833120F462 +:1024300080E090E00C9422100895882321F00E94FF +:10244000811A0C94C81A0895882321F00E94871AD3 +:102450000C94C81A08957F928F929F92AF92BF9268 +:10246000CF92DF92EF92FF920F931F93CF93DF9360 +:102470001F92CDB7DEB77C01C62E772EFC010581F9 +:1024800002950F70128111110E949E1A0E94F41978 +:10249000882379F0112369F080E28C0D883048F0B0 +:1024A00082E00E94DD190E94F41991E0D82ED9260D +:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C +:1024C0000C94B323872D807F072D0F70882311F084 +:1024D0000295007F112389F0002309F490C180E266 +:1024E0008C0D883020F4802F0E94811A03C0802F29 +:1024F0000E94911A0E94C81A82C18C2D0E94CE118E +:10250000002309F495C180E28C0D883020F4802FDF +:102510000E94871A03C0802F0E94971A0E94C81A2F +:1025200087C1972D907F872D8F70903211F0829503 +:10253000807FCC2021F0F1E0CF16B1F01EC0112336 +:1025400049F0002309F414C1013009F011C10E94BF +:10255000B11A6EC1002319F0013009F469C18983F1 +:102560000E94B41A89810AC1112321F0023008F0B7 +:102570005FC1FEC001115CC101C1112321F0002324 +:1025800009F4F6C03CC1002309F4F8C03EC1872D10 +:1025900086958695837090E0009719F0019761F019 +:1025A00047C1112321F08C2D972D937002C080E03C +:1025B00090E00E940C103CC1112321F08C2D972D2E +:1025C000937002C080E090E00E94221031C18C2DF7 +:1025D000112319F00E94431E02C00E94AB1E0E94EC +:1025E000301F26C1872D837009F052C0111120C100 +:1025F0008C2D829586958770880F880F9C2D9F70F3 +:10260000892E912CA12CB12C082E04C0880C991C69 +:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041 +:1026200020E030E0B901A80104C0440F551F661F27 +:10263000771F8A95D2F7CB01BA0160957095809586 +:10264000909503C060E070E0CB01272D269526957C +:10265000237030E02230310569F02330310589F0F4 +:10266000682979298A299B292130310571F00E9436 +:102670006918DEC0682979298A299B290E94851852 +:10268000D7C00E946918C501B4010E944D18D0C07E +:10269000112319F0872D817001C08695882309F4D4 +:1026A000C7C08C2D829586958770880F880F9C2DCA +:1026B0009F70892E912CA12CB12C082E04C0880C5F +:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC +:1026D00010E020E030E0B901A80104C0440F551F0C +:1026E000661F771F8A95D2F7CB01BA016095709566 +:1026F0008095909503C060E070E0CB01272D269572 +:1027000026952370422F50E04230510569F0433046 +:10271000510589F0682979298A299B294130510579 +:1027200071F00E94431984C0682979298A299B295C +:102730000E945F197DC00E944319C501B4010E9427 +:10274000271976C08C2D90E0FC01E05EF109E5319F +:10275000F10508F050C0E059FF4F0C94B3230C2D45 +:102760000F70872D8F71112331F00E94C018802FB8 +:102770000E941D125DC00E94E118802F0E94241249 +:1027800057C0112339F0011153C0872D8F710E945A +:1027900006194EC0023008F04BC0F7CF112339F0B4 +:1027A000872D8F710E94C01843C01123C9F3872D54 +:1027B0008F710E94E1183CC0112329F0872D8F7181 +:1027C0000E94AB1835C00E94A11832C0112351F0ED +:1027D000172D1F71812F0E94C01863E0812F0E9466 +:1027E000D41926C081E00E94DD19023008F182E090 +:1027F0000E94DD191DC0112331F0002389F28C2DB8 +:102800000E94061115C0002391F28C2D0E94CE115A +:102810000FC0472D4F706C2DC7010E9415050E94F7 +:10282000C51706C0472D4F706C2DC7010E94F205D9 +:10283000DD20F9F00E94D01980FD1BC0F701128243 +:102840000E94CA190E94C018C7010E9448140E9421 +:10285000CA190F90DF91CF911F910F91FF90EF90C8 +:10286000DF90CF90BF90AF909F908F907F900C940F +:10287000E1180F90DF91CF911F910F91FF90EF9092 +:10288000DF90CF90BF90AF909F908F907F900895F2 +:102890000F931F93CF93DF93EC01888199812B8154 +:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B +:1028B0000E944A05882371F0688179818A810E948B +:1028C000C6198C010E947B190E944218B801CE01E2 +:1028D0000E942B12DF91CF911F910F9108950E94BA +:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471 +:1028F000E11F0E94301F80E090E00E940C1080E0F9 +:1029000090E00C9422100E948E1A0C946F140E9476 +:10291000BB19292F22952F7030E02C3031054CF453 +:102920002A3031056CF42250310922303105A8F4E7 +:1029300007C02C30310569F02F30310551F00DC042 +:10294000803F69F018F4803E40F409C0843F29F4C8 +:1029500006C093FB882780F9089580E0089581E000 +:102960000895CF93DF9300D000D01F92CDB7DEB78C +:102970000F900F900F900F900F90DF91CF910895CF +:10298000CF93DF9300D000D000D0CDB7DEB726962E +:102990000FB6F894DEBF0FBECDBFDF91CF91089583 +:1029A0001F93CF93DF93C091850116E0809186013C +:1029B000C81799F0D0E01C9FF0011D9FF00D112465 +:1029C000E957FE4F408151816281738184819581F5 +:1029D0000E94C0142196C770E9CFDF91CF911F915B +:1029E00008954091B7015091B8016091B90170917B +:1029F000BA018091BB019091BC010C94C0148091EC +:102A0000BC0182958F7009F054C08091B901882370 +:102A100009F44FC080918501A09186016091B701B2 +:102A20007091B8014091BA015091BB01B6E08A178C +:102A300009F43FC090E041155105C1F17F3F11F409 +:102A40006F3FA1F1B89FF001B99FF00D1124E95734 +:102A5000FE4F218172132AC02081621327C0228178 +:102A6000211124C0238134812417350710F421500B +:102A70003109241B350B283C3105C0F42091BC01E1 +:102A80002F7020612093BC0126E0289FF001299F30 +:102A9000F00D1124E457FE4F80818F708061808398 +:102AA00087EB91E00E9448140C94D0140196877033 +:102AB000BECF0895CF92DF92EF92FF920F931F93B4 +:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32 +:102AD0000FBECDBF8C0185E0F801DE011D9601908F +:102AE0000D928A95E1F7D8014C9111965C9111975E +:102AF00012966C9112971396CD90DC9014973091AA +:102B0000B7017091B8018091BA019091BB01009713 +:102B100009F46BC17F3F19F43F3F09F466C1E090AF +:102B2000B901EE2009F4C0C02091BC01C816D90635 +:102B300028F0F601E81BF90BCF0104C080959095B1 +:102B40008C0D9D1DFF24F394883C910578F0F12CA9 +:102B5000207F09F0C6C07C2DD98AC88A89890E9445 +:102B6000B11487EB91E00E944814B1C0822F807F9E +:102B700009F046C0751314C0341312C0611110C09F +:102B80002F7020612093BC010E94F11487EB91E02B +:102B90000E9448148091BC01D80115968C932EC0D8 +:102BA000CD2819F15F3F11F44F3FF9F0F62E611176 +:102BB0001CC0809185012091860136E0821709F4BE +:102BC0005AC090E0389FF001399FF00D1124E95769 +:102BD000FE4F7181571306C07081471303C0728185 +:102BE000711103C001968770E9CFF62E662309F4B0 +:102BF00018C18091BC0181608093BC01F12C11C18E +:102C0000751308C0341306C0611104C08091BC0163 +:102C1000D801C3C04D875E878D859E856A8B0E94D3 +:102C200087146A898823E1F16623D1F12091BC01E0 +:102C3000822F82958F7090E0029774F08091B70197 +:102C40009091B80198878F831986DB86CA862C8776 +:102C5000CE0107960E94481486E0F801A7EBB1E088 +:102C600001900D928A95E1F70E94FF140E94F114E1 +:102C7000FF24F394D6C04D875E878D859E850E9484 +:102C8000BB19292F22952F7030E0223031050CF02E +:102C9000BCC09F7009F0B6C0805E883008F4C1C027 +:102CA000C8010E944814E4CFC816D90608F453C0DE +:102CB000F601E81BF90BCF01883C910508F450C0E0 +:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E +:102CD000F1E086E0DF011D928A95E9F70E94F11488 +:102CE000A0C0751314C0341312C0611110C08091BC +:102CF000BC01F8018583C8010E94481486E0E7EB17 +:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C +:102D10005E878D859E856A8B0E9487146A898823C9 +:102D200009F4BECF662309F4BBCF2091BC01822FEA +:102D300082958F7090E002970CF48ECF8091B7014E +:102D40009091B8019A8389831B82DD82CC822E8385 +:102D5000CE0101967FCF809590958C0D9D1DACCFB7 +:102D6000F62E662309F49CCF75132EC034132CC0A5 +:102D70002091BC0120FD1FC0822F82958F70D9F059 +:102D8000D80115962C9315978F3049F08F5F982FA7 +:102D90009295907F822F8F70892B15968C93C80106 +:102DA0000E94481486E0F801A7EBB1E001900D9273 +:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7 +:102DC0000D928A95E1F72DC04D875E878D859E8592 +:102DD0000E948714811140CF8091BC018160809353 +:102DE000BC01C8010E9448141CC0662309F458CFD6 +:102DF0004D875E878D859E850E948714882309F400 +:102E00004FCF2ACF811148CF0CC0243031050CF0B0 +:102E100047CF9F7009F440CFF8019581907F09F06A +:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D +:102E3000DF91CF911F910F91FF90EF90DF90CF9096 +:102E400008951F93CF93DF93CDB7DEB72C970FB6BE +:102E5000F894DEBF0FBECDBF4F83588769877A874E +:102E60008B879C87CE0107960E945A15882369F0AC +:102E70008F8198852A853B85232BF1F19F3F09F0AF +:102E800063C08F3F09F060C037C086E0FE0137960F +:102E9000DE01119601900D928A95E1F76F81788598 +:102EA000EA85FB85309741F17F3F11F46F3F21F1B7 +:102EB0002091860130E0C9010196877099274091E1 +:102EC000850150E08417950709F447C069837A8328 +:102ED000FD83EC8396E0929FD001939FB00D112467 +:102EE000A957BE4FFE01319601900D929A95E1F7D8 +:102EF000809386010E94D01416E080918501909104 +:102F000086018917C1F1189FC001112489579E4F6E +:102F10000E945A15882379F1E09185011E9FF001E6 +:102F20001124E957FE4F4081518162817381848170 +:102F300095810E94C0148091850190E00196877070 +:102F4000992780938501D9CF4F81588569857A85E6 +:102F50008B859C850E94C014CFCF0E948314109251 +:102F6000860110928501E7EBF1E086E0DF011D921A +:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45 +:102F8000CDBFDF91CF911F910895EF92FF920F93E4 +:102F90001F93CF93DF938C01009709F46CC0F12C41 +:102FA000EE24E394E8012196F8018491843740F4FB +:102FB000843008F051C0813081F0823019F15BC05B +:102FC000853709F444C0A8F19CE7980F903708F0C2 +:102FD00052C08F770E94CE1141C00E5F1F4FFE017D +:102FE000C49180E28C0F883048F4C7708E2D01C0E8 +:102FF000880FCA95EAF70E94A11A14C08C2F0E946C +:1030000006112DC00E5F1F4FFE01C49180E28C0F90 +:10301000883058F4C7708E2D01C0880FCA95EAF722 +:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3 +:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3 +:103040009FE00197F1F700C00000C150F6CF0E5F7E +:103050001F4FFE01F49003C00E9406118E018F2DB8 +:10306000882309F49FCFEFE9FFE03197F1F700C023 +:1030700000008150F5CFDF91CF911F910F91FF900C +:10308000EF90089508956093C1017093C2018093F9 +:10309000C3019093C4010C946F140F931F9300917C +:1030A000C1011091C2012091C3013091C401DC0122 +:1030B000CB01802B912BA22BB32B8093C10190933A +:1030C000C201A093C301B093C4011F910F910C944E +:1030D0006F140F931F930091C1011091C2012091B1 +:1030E000C3013091C401DC01CB0180239123A223D1 +:1030F000B3238093C1019093C201A093C301B09305 +:10310000C4011F910F910C946F140F931F930091A2 +:10311000C1011091C2012091C3013091C401DC01B1 +:10312000CB0180279127A227B3278093C1019093D9 +:10313000C201A093C301B093C4011F910F910C94DD +:103140006F141092BD011092BE011092BF01109237 +:10315000C0010C946F1441E050E060E070E004C0E6 +:10316000440F551F661F771F8A95D2F74093BD0104 +:103170005093BE016093BF017093C0010C946F1413 +:1031800041E050E060E070E004C0440F551F661F4E +:10319000771F8A95D2F78091BD019091BE01A091D1 +:1031A000BF01B091C001482B592B6A2B7B2B409358 +:1031B000BD015093BE016093BF017093C0010C9498 +:1031C0006F1441E050E060E070E004C0440F551F10 +:1031D000661F771F8A95D2F7409550956095709538 +:1031E0008091BD019091BE01A091BF01B091C0013D +:1031F000482359236A237B234093BD015093BE018A +:103200006093BF017093C0010C946F1441E050E0D3 +:1032100060E070E004C0440F551F661F771F8A9559 +:10322000D2F78091BD019091BE01A091BF01B091F4 +:10323000C001482759276A277B274093BD01509337 +:10324000BE016093BF017093C0010C946F140F9383 +:103250001F930091BD011091BE012091BF013091DB +:10326000C001DC01CB01802B912BA22BB32B8093CF +:10327000BD019093BE01A093BF01B093C0011F9107 +:103280000F910C946F140F931F930091BD01109137 +:10329000BE012091BF013091C001DC01CB01802330 +:1032A0009123A223B3238093BD019093BE01A093E9 +:1032B000BF01B093C0011F910F910C946F140F9335 +:1032C0001F930091BD011091BE012091BF0130916B +:1032D000C001DC01CB0180279127A227B32780936F +:1032E000BD019093BE01A093BF01B093C0011F9197 +:1032F0000F910C946F140895CF92DF92EF92FF928A +:103300000F931F93CF93DF938C01C090C101D09096 +:10331000C201E090C301F090C4018091BD01909181 +:10332000BE01A091BF01B091C001C82AD92AEA2AE2 +:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520 +:10334000A795979587950A94D2F780FF06C0B80194 +:103350008C2F0E944808019721F4219760F780E0A4 +:1033600001C08C2FDF91CF911F910F91FF90EF90B3 +:10337000DF90CF900895CF93DF93EC010E947C19EA +:10338000BE010E944808DF91CF910895CB010E94B1 +:10339000BB1908958091C5018595859585950895FA +:1033A0008091C5018770089598E0899F900111244C +:1033B000262B2093C5010C94C0182091C50180953F +:1033C00082238093C501982F977069F430E0482FCD +:1033D000552747FD50952417350729F08595859584 +:1033E00085950C94E11808959091C501977081E03E +:1033F00009F480E0089590910C01992321F09091B7 +:103400000D01911109C020910E0130910F01F901B8 +:1034100032969FEF40E01FC0982F9695969596950F +:103420009F3050F5E0910E01F0910F01E90FF11D71 +:10343000877021E030E0A90102C0440F551F8A9532 +:10344000E2F7CA019181892B818308959F3F39F06A +:103450004F5F4E3041F051915813F8CF0DC05111CC +:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08 +:1034700097FDFA9582830895089590910C01992300 +:1034800021F090910D01911109C020910E01309110 +:103490000F01F9013296205F3F4F1FC0982F96957C +:1034A000969596959F30F0F4E0910E01F0910F0102 +:1034B000E90FF11D877021E030E0A90102C0440F3F +:1034C000551F8A95E2F7CA018095918189238183EE +:1034D00008953196E217F30729F090819813F9CFF8 +:1034E0001082F7CF089581E090E0E0910E01F09115 +:1034F0000F01E80FF91F1082019680319105A9F79D +:1035000008959091D901892B8093D90108958095D0 +:103510009091D90189238093D90108951092D901FE +:1035200008959091D801892B8093D80108958095B2 +:103530009091D80189238093D80108951092D801E1 +:1035400008959091D701892B8093D7010895809594 +:103550009091D70189238093D70108951092D701C4 +:1035600008958093C60108951092C6010895809130 +:103570000E0190910F01FC0131969C01205F3F4F9D +:1035800080E0919191118F5FE217F307D1F70895D1 +:10359000E0910E01F0910F018091D9018083E091BB +:1035A0000E01F0910F0190818091D801892B8083C9 +:1035B000E0910E01F0910F0190818091D701892B4C +:1035C00080838091C601882361F0E0910E01F09123 +:1035D0000F019081892B80830E94B71A811110926C +:1035E000C60180910E0190910F010C94F60F20E01E +:1035F000009739F0AC0141505109842395232F5F86 +:10360000F7CF822F0895CF92DF92EF92FF926C0155 +:10361000EE24FF24C114D104E104F10421F0C70118 +:10362000B60120E101C020E0C72ED82EE92EFF24EC +:10363000C114D104E104F10419F0285FC701B601F7 +:103640006B017C0154E0F694E794D794C7945A95A3 +:10365000D1F7C114D104E104F10419F02C5FC701C2 +:10366000B6016B017C0142E0F694E794D794C794CD +:103670004A95D1F7C114D104E104F10419F02E5F89 +:10368000C701B601DC01CB01B695A7959795879543 +:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5 +:1036A000DF90CF9008958091F101843021F1109244 +:1036B000DB0120E488E190E00FB6F894A8958093B0 +:1036C00060000FBE2093600080E00E94E30883B793 +:1036D000817F846083BF83B7816083BF789488953E +:1036E00083B78E7F83BF88E10FB6F8948093600024 +:1036F000109260000FBE0895089508950E947C1BEB +:103700000E944B030E947D1B0E94400491E08111A6 +:1037100001C090E0892F08950E9483140E94EA0F4F +:103720000C94E30882E084BD93E095BD9AEF97BDC9 +:1037300080936E0008952FB7F8948091DC019091EA +:10374000DD01A091DE01B091DF012FBF0895CF927E +:10375000DF92EF92FF920F931F932FB7F89440914F +:10376000DC015091DD016091DE017091DF012FBF1E +:103770006A017B01EE24FF248C0120E030E0C016BA +:10378000D106E206F30610F4415051099A01281BB4 +:10379000390BC9011F910F91FF90EF90DF90CF90EF +:1037A00008951F920F920FB60F9211248F939F933B +:1037B000AF93BF938091DC019091DD01A091DE0178 +:1037C000B091DF010196A11DB11D8093DC019093A2 +:1037D000DD01A093DE01B093DF01BF91AF919F9116 +:1037E0008F910F900FBE0F901F9018950E94E70CBD +:1037F000F8942FEF87EA91E6215080409040E1F75E +:1038000000C0000087E090EBDC018093FB01909307 +:10381000FC01A093FD01B093FE019CE088E10FB68E +:10382000F894A895809360000FBE90936000FFCF3E +:10383000EF92FF920F931F93CF93DF93D82FCDE09A +:103840008C2F0E94390405E010E0E82EF12CC7010E +:10385000002E02C0959587950A94E2F780FF09C073 +:10386000602F7C2F80E00E94F305D81302C081E016 +:1038700006C00150110958F7C15010F780E0DF91E0 +:10388000CF911F910F91FF90EF900895CF93C82F84 +:103890008CE20E94181C882321F08C2FCF910C946D +:1038A000181C80E0CF910895CF930E949B1D811139 +:1038B00002C00E94811DC5E6C15049F00E944B0321 +:1038C0008FE39CE90197F1F700C00000F5CF89E292 +:1038D0000E94461C811113C18AE20E94461C81117C +:1038E0000E94811D85E00E94461C81110E94F61BEA +:1038F0000E94A61D8093DA0187E00E94461C88235F +:10390000A9F18BE10E94461C882351F08091DA01D5 +:1039100081FB222720F991E0922790FB81F90EC0CC +:103920008EE00E94461C882361F08091DA0182FBC0 +:10393000222720F991E0922790FB82F98093DA0107 +:1039400015C080E10E94461C9091DA01882341F065 +:1039500093FB222720F981E0822780FB93F904C0A2 +:10396000892F809580FB90F99093DA018091DA019C +:103970000E94AA1D0E94B81D8093FA0180EE0E9449 +:10398000461C882341F08091FA01982F909590FB76 +:1039900080F98093FA0189E30E94461C882359F03C +:1039A0008091FA0181FB222720F991E0922790FB78 +:1039B00081F98093FA0182EE0E94461C882359F017 +:1039C0008091FA0182FB222720F991E0922790FB57 +:1039D00082F98093FA0186EE0E94461C882359F0F2 +:1039E0008091FA0183FB222720F991E0922790FB36 +:1039F00083F98093FA0183EE0E94461C882359F0D4 +:103A00008091FA0184FB222720F991E0922790FB14 +:103A100084F98093FA0185E30E94461C882359F0BB +:103A20008091FA0185FB222720F991E0922790FBF3 +:103A300085F98093FA0181E30E94461C882359F09E +:103A40008091FA0186FB222720F991E0922790FBD2 +:103A500086F98093FA0181E10E94461C882359F07F +:103A60008091FA0187FB222720F991E0922790FBB1 +:103A700087F98093FA018091FA010E94BC1D809120 +:103A8000FA0187FB882780F980930D0187E20E9465 +:103A9000461CC82F8EE10E94461C8111C2608FE136 +:103AA0000E94461C8111C46080E20E94461C811164 +:103AB000C86081E20E94461C8111C06182E20E94BE +:103AC000461C8111C06283E20E94461C8111C064C1 +:103AD00084E20E94461C882311F0C06802C0CC23F7 +:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4 +:103AF000682F70E080E090E0CF910C944318CF9154 +:103B000008956DEE7EEF80E090E00E94ED2360E08E +:103B100082E090E00E94DB2360E083E090E00E947E +:103B2000DB2360E084E090E00E94DB2360E085E03E +:103B300090E00C94DB2380E090E00E94D52321E00C +:103B40008D3E9E4F09F020E0822F089582E090E0A4 +:103B50000C94CD23682F82E090E00C94DB2383E06B +:103B600090E00C94CD23682F83E090E00C94DB234D +:103B700084E090E00C94CD23682F84E090E00C94D6 +:103B8000DB238091E20180FF0BC06091130185E08F +:103B9000689FB001112475956795759567952BC041 +:103BA00081FF09C06091130185E0689FB001112475 +:103BB0007595679520C082FF07C06091130185E06D +:103BC000689FB001112417C09091E3019923D1F0AF +:103BD00060911201961788F72091130185E0289FC4 +:103BE00090011124929FA001939F500D112470E029 +:103BF000CA010E949F236038710540F46115710568 +:103C000039F002C065E070E0862F08958FE70895CF +:103C100081E008958091E20180FF08C06091110168 +:103C200070E0759567957595679521C081FF06C011 +:103C30006091110170E07595679519C082FF04C00D +:103C40006091110170E010C09091E3019923C1F0DF +:103C5000609110019617A0F780911101899FC00112 +:103C6000112470E00E949F236038710528F46115CB +:103C7000710521F0862F08958FE7089581E008955A +:103C800061E070E0F4CF803F21F40E94C11D819576 +:103C900004C0813F29F40E94C11D8093E60108956C +:103CA000823F21F40E94C11D819504C0833F29F405 +:103CB0000E94C11D8093E5010895893F19F40E9477 +:103CC0000A1E05C08A3F31F40E940A1E8195809326 +:103CD000E70108958B3F21F40E940A1E819504C0DC +:103CE0008C3F29F40E940A1E8093E8010895843FC6 +:103CF00021F48091E401816017C0853F21F4809117 +:103D0000E401826011C0863F21F48091E401846067 +:103D10000BC0873F21F48091E401886005C0883F93 +:103D200031F48091E40180618093E40108958D3F36 +:103D300021F48091E20181600BC08E3F21F48091DB +:103D4000E201826005C08F3F29F48091E201846026 +:103D50008093E2010895803F39F48091E60187FF66 +:103D60006CC01092E60169C0813F29F48091E601A0 +:103D70001816BCF362C09091E501823F29F497FFC9 +:103D80005CC01092E50159C0833F19F41916CCF3B9 +:103D900054C0893F41F48091E70118160CF04DC0E2 +:103DA0001092E7014AC08A3F29F48091E70187FF1A +:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6 +:103DC0001092E8013AC08C3F29F48091E80118165E +:103DD000BCF333C0843F21F48091E4018E7F17C08F +:103DE000853F21F48091E4018D7F11C0863F21F44D +:103DF0008091E4018B7F0BC0873F21F48091E40127 +:103E0000877F05C0883F31F48091E4018F7E8093E5 +:103E1000E40113C08D3F21F48091E2018E7F0BC03D +:103E20008E3F21F48091E2018D7F05C08F3F29F400 +:103E30008091E2018B7F8093E2018091E501811105 +:103E40000EC08091E60181110AC08091E7018111C5 +:103E500006C08091E801811102C01092E30108952B +:103E600084EE91E00E9401100E949B1B9093E1015F +:103E70008093E00108951F93CF93DF938091E00139 +:103E80009091E1010E94A71BAC019091E30199235D +:103E900021F02091140130E006C0209115018AE044 +:103EA000289F900111244217530708F486C080917F +:103EB000E501C091E601D091E7011091E80181117F +:103EC00007C0C11176C0D11174C0111172C075C084 +:103ED0009F3F19F09F5F9093E301181624F40E940E +:103EE000C11D8093E5018091E50187FF05C00E9417 +:103EF000C11D81958093E5011C1624F40E94C11D0B +:103F00008093E6018091E60187FF05C00E94C11DF4 +:103F100081958093E6016091E501662339F1C091B6 +:103F2000E601CC2319F1772767FD7095872F972F2E +:103F30000E94B02223E333E343E35FE30E941423B0 +:103F40000E947D226093E5016C2F772767FD7095B5 +:103F5000872F972F0E94B02223E333E343E35FE3ED +:103F60000E9414230E947D226093E6011D1624F412 +:103F70000E940A1E8093E7018091E70187FF05C038 +:103F80000E940A1E81958093E701111624F40E9475 +:103F90000A1E8093E8018091E80187FF05C00E9416 +:103FA0000A1E81958093E801DF91CF911F910C94B7 +:103FB000301F9F3F09F08ECF96CFDF91CF911F9199 +:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE +:103FD0001092E3011092E2010895833081F128F4F8 +:103FE000813059F08230D1F00895853009F449C00C +:103FF000B8F1863009F456C0089580911501262F36 +:1040000030E0280F311D2F3F310524F4680F6093F5 +:10401000150108958FEF8093150108958091140183 +:10402000262F30E0280F311D2F3F310524F4680F73 +:104030006093140108958FEF809314010895809187 +:104040001301262F30E0280F311D2F3F310524F4B6 +:10405000680F6093130108958FEF80931301089503 +:1040600080911201262F30E0280F311D2F3F31059E +:1040700024F4680F6093120108958FEF809312016A +:10408000089580911101262F30E0280F311D2F3F18 +:10409000310524F4680F6093110108958FEF809328 +:1040A0001101089580911001262F30E0280F311D55 +:1040B0002F3F310524F4680F6093100108958FEFAE +:1040C000809310010895833011F128F4813049F074 +:1040D000823091F00895853081F120F18630C1F170 +:1040E000089580911501681720F4861B80931501AF +:1040F000089510921501089580911401681720F415 +:10410000861B8093140108951092140108958091E4 +:104110001301681720F4861B8093130108951092F1 +:104120001301089580911201681720F4861B809373 +:1041300012010895109212010895809111016817DB +:1041400020F4861B809311010895109211010895A7 +:1041500080911001681720F4861B80931001089548 +:104160001092100108950F931F938D3109F46BC0C5 +:1041700008F03FC08E3009F47FC0C0F4873009F4E6 +:1041800069C068F4863009F0B1C08091DA01817F9E +:104190008E7F8093DA0181E08093EA01A8C08830A5 +:1041A00009F4A2C08B3009F49FC0A0C0863109F485 +:1041B0009BC078F4803109F472C0813109F096C057 +:1041C0000E94831490910D0181E0892780930D0155 +:1041D0008BC0893109F488C08B3109F087C0809188 +:1041E000DA0181FB222720F991E0922790FB81F9E7 +:1041F0004CC0853309F470C048F4873209F46CC0B0 +:1042000008F459C0893209F467C070C0833438F4A7 +:104210008A3308F04EC0883309F466C067C083341F +:1042200009F45AC0883409F061C00E9483140FEF6A +:1042300013ED20E3015010402040E1F700C00000E2 +:104240000E94F61B51C00E9437220E94EA0F0E9472 +:10425000E3084AC09091DA01892F8095817080FB34 +:1042600090F929F0966098609093DA0140C0997FA8 +:10427000977F9093DA0138C08091DA0182FB222780 +:1042800020F991E0922790FB82F98093DA0199233B +:1042900059F18091DA0181608093DA0125C0809123 +:1042A000DA0183FB222720F991E0922790FB83F922 +:1042B000ECCF895301C08D5141E050E060E070E0E7 +:1042C0008A019B0104C0000F111F221F331F8A9512 +:1042D000D2F7C901B80104C061E070E080E090E06D +:1042E0000E9443180E94831481E001C080E01F9166 +:1042F0000F91089580E0089580E00895CF93C82F2E +:104300008091EA01813079F018F08230E9F187C0BC +:10431000E0910E01F0910F018081813169F08232CC +:1043200009F07FC009C0E0910E01F0910F0180817A +:10433000813111F0823261F48C2F0E947A21811137 +:1043400004C08C2F0E94B3201DC081E090E01AC0F1 +:104350008C2F0E947C21811114C0C43179F048F463 +:10436000CB3079F0C03109F060C082E08093EA017F +:1043700008C0C93219F0C83321F057C01092EA01C1 +:1043800054C081E0817053C0C93289F118F5C4313D +:1043900071F1A8F4C73009F046C08AE08093150196 +:1043A00094E19093140193E0909313018093120190 +:1043B00088E08093110188E28093100134C0CE51CF +:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB +:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC +:1043E00013C0C13579F0C235F1F461E00DC08091A0 +:1043F000E901882319F01092E90115C081E080934A +:10440000EA0115C061E006C08091E9010E94ED1F3C +:104410000AC06AE08091E9010E94632004C0109202 +:10442000EA0180E004C081E002C080E0ABCFCF9120 +:104430000895E1E8F0E08081886080838081816078 +:1044400080838FB7F89493E09093890090ED9093D8 +:1044500088008FBF0895EFE6F0E08081826080835E +:104460000895EFE6F0E080818D7F80830895EFE688 +:10447000F0E0908182E08927808308951F920F9257 +:104480000FB60F9211242F933F934F935F936F9327 +:104490007F938F939F93AF93BF93EF93FF938091FD +:1044A000EB019091EC0101969093EC018093EB016C +:1044B000811103C082E00E94E308E091EC01E695DF +:1044C000E695F0E0EC54FB4FE4918091EB018E1304 +:1044D00003C080E00E94E308FF91EF91BF91AF918C +:1044E0009F918F917F916F915F914F913F912F910C +:1044F0000F900FBE0F901F90189504D06894B111C3 +:104500008DC0089570D088F09F5790F0B92F9927EB +:10451000B751A0F0D1F0660F771F881F991F1AF0CE +:10452000BA95C9F712C0B13081F077D0B1E00895E3 +:1045300074C0672F782F8827B85F39F0B93FCCF364 +:10454000869577956795B395D9F73EF490958095C4 +:10455000709561957F4F8F4F9F4F0895E89409C0E4 +:1045600097FB3EF490958095709561957F4F8F4FA6 +:104570009F4F9923A9F0F92F96E9BB279395F695BC +:10458000879577956795B795F111F8CFFAF4BB0F3A +:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E +:1045A000882311F096E911C0772321F09EE8872F28 +:1045B000762F05C0662371F096E8862F70E060E0E4 +:1045C0002AF09A95660F771F881FDAF7880F96955D +:1045D000879597F9089557FD9058440F551F59F046 +:1045E0005F3F71F04795880F97FB991F61F09F3FE0 +:1045F00079F087950895121613061406551FF2CF09 +:104600004695F1DF08C0161617061806991FF1CF58 +:1046100086957105610508940895E894BB2766277F +:104620007727CB0197F908950BD078C069D028F08F +:104630006ED018F0952309F05AC05FC01124EECF58 +:10464000CADFA0F3959FD1F3950F50E0551F629FED +:10465000F001729FBB27F00DB11D639FAA27F00DDB +:10466000B11DAA1F649F6627B00DA11D661F829F02 +:104670002227B00DA11D621F739FB00DA11D621FE7 +:10468000839FA00D611D221F749F3327A00D611D04 +:10469000231F849F600D211D822F762F6A2F1124E6 +:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39 +:1046B000BB1F661F771F881F91505040A9F79E3F70 +:1046C000510570F014C0AACF5F3FECF3983EDCF3C5 +:1046D000869577956795B795F795E7959F5FC1F7AD +:1046E000FE2B880F911D9695879597F9089597F958 +:1046F0009F6780E870E060E008959FEF80EC089588 +:1047000000240A94161617061806090608950024B0 +:104710000A9412161306140605060895092E03942A +:10472000000C11F4882352F0BB0F40F4BF2B11F49E +:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF +:10474000072E16F4009407D077FD09D00E94B923F4 +:1047500007FC05D03EF4909581959F4F0895709584 +:1047600061957F4F0895EE0FFF1F0590F491E02DA6 +:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8 +:10478000B70710F0A61BB70B881F991F5A95A9F7FA +:1047900080959095BC01CD010895F999FECF92BD09 +:1047A00081BDF89A992780B50895A8E1B0E042E06C +:1047B00050E00C94F523262FF999FECF92BD81BDD0 +:1047C000F89A019700B4021639F01FBA20BD0FB64F +:1047D000F894FA9AF99A0FBE08950196272F0E942D +:1047E000DC230C94DB23DC01CB01FC01F999FECF27 +:1047F00006C0F2BDE1BDF89A319600B40D92415069 +:0A4800005040B8F70895F894FFCF78 +:10480A000220E508730950091C09E8080101C701DB +:10481A0028080A03140A3F4D363975042804F2039E +:10482A00B9034C0365037E039703010203040506DB +:04483A000708090062 +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/osx_kinesis_pnut/keymap.c b/keyboards/ergodox_ez/keymaps/osx_kinesis_pnut/keymap.c new file mode 100644 index 000000000..1032be549 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/osx_kinesis_pnut/keymap.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/keyboards/ergodox_ez/keymaps/plover/compiled.hex b/keyboards/ergodox_ez/keymaps/plover/compiled.hex new file mode 100644 index 000000000..5e04e2494 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/plover/compiled.hex @@ -0,0 +1,1169 @@ +:100000000C94CE020C9412030C9412030C94120361 +:100010000C9412030C9412030C9412030C9412030C +:100020000C9412030C9412030C94B60D0C94880ECD +:100030000C9412030C9412030C9412030C941203EC +:100040000C9412030C9492220C9412030C9412033D +:100050000C9412030C94251C0C9412030C941203A0 +:100060000C9412030C9412030C9412030C941203BC +:100070000C9412030C9412030C9412030C941203AC +:100080000C9412030C9412030C9412030C9412039C +:100090000C9412030C9412030C9412030C9412038C +:1000A0000C9412030C9412030C941203F50E170F08 +:1000B0000510170F05105C0F7F0F0510D40FE70F09 +:1000C000B612B612E512E5121B133B136C146C1436 +:1000D00046136C14F613F6135D146C146C1466144A +:1000E0000314031403140314031403140314031458 +:1000F0000314031403140314031403140314031448 +:1001000015142214291430143A140000F0A12E0002 +:100110002B002900E100354100001E0014000400FE +:100120001D713400E2001F001A0016001B00E104DC +:100130004C00200008000700060050002A002100A3 +:100140001500090019004F004D00220017000A0099 +:10015000050000006574E30001540000007F00000A +:100160004A004F000354000000770000E200230023 +:100170001C000B00110000002971240018000D0064 +:10018000100052004B0025000C000E0036005100FC +:100190002C00260012000F0037002F002800270037 +:1001A00013003342387130004E002D00310034000E +:1001B000E500C10000000100010001000100010094 +:1001C00000003A001E0220022202010001003B0052 +:1001D0001F0221022302010001003C002F0226021F +:1001E0002F00010001003D00300227023000010015 +:1001F00001003E003102350035020000010001001F +:1002000001000000010000000100010001000000E9 +:100210000100000001003F005200510024020000D4 +:1002200001004000240021001E00010001004100E7 +:10023000250022001F003700010042002600230095 +:10024000200027000100430025022E0231002E006D +:100250000100440045000100010001000000010010 +:100260000100010001000100000001000100010087 +:1002700001000100010001000100F2000100010085 +:10028000F5000100F000F1000100F400F4000100AD +:100290000100F3000100F500010001000100010070 +:1002A0000100000001000100010000000100000049 +:1002B0000100010001000000010000000100010038 +:1002C0000100F20001000000010001000100F10046 +:1002D0000100A900010001000100F000AC00AA002B +:1002E000B70001000100F300AB00A800B600010058 +:1002F0000100010001000100010001000100AE0049 +:1003000001000100000000000000000000000000EB +:10031000000000001E0014000400000000000000A7 +:100320001F001A001600000019000000200008003D +:100330000700000006000000210015000900000071 +:1003400000000000220017000A000000C4000000A6 +:10035000000000000000000000000100000000009C +:10036000000000000100000023001C000B00000042 +:1003700001000000240018000D0001000100000031 +:1003800025000C000E0001001000000026001200E5 +:100390000F000000110000002700130033000000D0 +:1003A0000000010001002F003400000000001603CF +:1003B0004500720067006F0044006F007800200065 +:1003C00045005A00000016034500720067006F00E8 +:1003D00044006F007800200045005A00000004032C +:1003E000090409026D00040100A0FA0904000001DB +:1003F00003010100092111010001223F00070581CD +:100400000308000A09040100010301020009211187 +:10041000010001224D000705820308000A090402B9 +:10042000000103000000092111010001223600072C +:1004300005830308000A0904030001030000000902 +:100440002111010001223900070584031000011267 +:1004500001100100000008EDFE0713010001020079 +:100460000105010906A101050719E029E715002585 +:100470000195087501810205081901290595057581 +:10048000019102950175039101050719002977155E +:10049000002501957875018102C005010980A1013F +:1004A000850216010026B7001A01002AB700751050 +:1004B00095018100C0050C0901A101850316010009 +:1004C000269C021A01002A9C02751095018100C029 +:1004D00005010902A1010901A10005091901290568 +:1004E00015002501950575018102950175038101AE +:1004F0000501093009311581257F950275088106AE +:1005000009381581257F950175088106050C0A3883 +:10051000021581257F950175088106C0C005010976 +:1005200006A101050719E029E715002501950875C1 +:1005300001810295017508810105081901290595B8 +:1005400005750191029501750391010507190029AF +:10055000FF150025FF950675088100C0000000000A +:1005600000000000000000010204060A0F17202C02 +:100570003A4A5D71879DB3C7DAE9F5FCFFFCF5E9FE +:10058000DAC7B39D87715D4A3A2C20170F0A06041B +:1005900002010000000000000000000011241FBE46 +:1005A000CFEFDAE0DEBFCDBF04B603FE24C08091FA +:1005B000FB019091FC01A091FD01B091FE018730FB +:1005C000904BA740B04BB9F41092FB011092FC0184 +:1005D0001092FD011092FE0114BE84B7877F84BF84 +:1005E00088E10FB6F89480936000109260000FBE0F +:1005F000E0E0FFE3099511E0A0E0B1E0E2EBF8E410 +:1006000002C005900D92A433B107D9F711E0A4E31D +:10061000B1E001C01D92AB3FB107E1F70E94FA0AB9 +:100620000C9457240C9400001092B9008AE0809337 +:10063000B800089594EA9093BC009091BC0097FF95 +:10064000FCCF9091B900987F983021F0903111F053 +:1006500081E008958093BB0084E88093BC00809182 +:10066000BC0087FFFCCF8091B900887F883111F0F2 +:10067000803471F780E0089584E98093BC00809114 +:10068000BC0084FDFCCF08958093BB0084E8809378 +:10069000BC008091BC0087FFFCCF9091B900987F8F +:1006A00081E0983209F480E0089584E88093BC00EA +:1006B0008091BC0087FFFCCF8091BB0008958091A2 +:1006C0000101811115C080E40E941A038093010189 +:1006D00081110CC082E10E944403809301018111C9 +:1006E00005C08FEF0E944403809301010E943C03E8 +:1006F00084B1807F84B985B1807F85B98AB1837FD9 +:100700008AB98BB1837F8BB93E98469808950E9431 +:100710001A05809301010E945F0380B38C7080BB37 +:1007200081B3836F81BBA5E3B1E0E3E4F1E08EE048 +:100730008E0F11921D928E13FCCF0C940405BF9264 +:10074000CF92DF92EF92FF920F931F93CF93DF939D +:1007500080910101882379F0809134018F5F80932B +:100760003401811108C00E941A0580930101811192 +:1007700002C00E94AC0405E311E0C0E0D0E0DD243B +:10078000D39482E0C82EEE24E394F12CC730D10537 +:1007900000F580910101811164C080E40E941A0378 +:1007A00080930101811112C082E10E944403809371 +:1007B000010181110BC0C7010C2E01C0880F0A94E2 +:1007C000EAF780950E944403809301010E943C0354 +:1007D00048C0CA30A1F028F4C83059F0C93061F0DF +:1007E00005C0CC3089F070F0CD3089F0209A28987F +:1007F00010C0219A29980DC0229A2A980AC0239ADB +:100800002B9807C0529A01C0539A5B9802C03E9A37 +:10081000469890EA9A95F1F79FB1799902C082E0E3 +:1008200001C080E091709D25982B7C9902C084E0E6 +:1008300001C080E0892B7D9902C038E001C030E022 +:10084000832B7E9902C020E101C020E0822B9FB162 +:100850009095991F9927991F9295990F907E892BB2 +:100860000FC080910101811149C080E40E941A03E8 +:1008700080930101882379F1B12C0E943C038B2DD8 +:10088000F8019081981719F08083C09200010E94AE +:100890005F0321960F5F1F4FCE30D10509F076CF51 +:1008A00080910001882361F18150809300018823A9 +:1008B00039F08FE99FE00197F1F700C0000020C0F8 +:1008C000A3E4B1E0E5E3F1E0CF01825F91919D9374 +:1008D0008E13FCCF15C083E10E9444038093010175 +:1008E0008111CACF81E40E941A0380930101811112 +:1008F000C3CF0E945503B82EB094BFCF80E0C0CFC5 +:100900000E94AA0481E0DF91CF911F910F91FF9087 +:10091000EF90DF90CF90BF900895E82FF0E0ED5B6F +:10092000FE4F8081089508950F931F93CF93DF9317 +:10093000C3E4D1E010E00C2F025F899190E00E94A7 +:100940004B1B180F0C13F9CF812FDF91CF911F9103 +:100950000F9108950C947A0556985E9825982D98D5 +:1009600026982E9827982F988FEF90E090938900E3 +:100970008093880090938B0080938A0090938D00E1 +:1009800080938C00259A2D9A2FEF80E792E02150DA +:1009900080409040E1F700C00000269A2E9A2FEF89 +:1009A00080E792E0215080409040E1F700C00000D5 +:1009B000279A2F9A2FEF80E792E0215080409040B5 +:1009C000E1F700C0000025982D982FEF80E792E016 +:1009D000215080409040E1F700C0000026982E98FA +:1009E0002FEF80E792E0215080409040E1F700C077 +:1009F000000027982F9856985E9825982D9826984D +:100A00002E9827982F98089589EA8093800089E08E +:100A10008093810024982C983F988AB18F748AB96A +:100A20006E98479A8BB1806B8BB9769A0E94AC0412 +:100A30000C94790580E2809301018091510181112C +:100A40000EC00E94140381E0809351012FEF83EDCB +:100A500090E3215080409040E1F700C0000080E426 +:100A60000E941A038093010181112EC00E94440349 +:100A700080930101811128C00E94440380930101E9 +:100A8000811122C08FE30E944403809301018111F0 +:100A90001BC00E943C0380E40E941A038093010162 +:100AA000811112C08CE00E944403809301018111E6 +:100AB0000BC00E94440380930101811105C08FE3A4 +:100AC0000E944403809301010E943C038091010134 +:100AD000089561110BC0FC018281882321F085EE0D +:100AE0000E945A1103C085EE0E94221280E090E01D +:100AF000089508956091BD017091BE018091BF017C +:100B00009091C0010E94571B56985E9825982D9889 +:100B100026982E9827982F98813019F0823021F04E +:100B20000895259A2D9A0895269A2E9A089581E07F +:100B3000089581E008950C94990508950F931F93EB +:100B4000CF93DF938C01FC01C081D181CE010E9443 +:100B5000D019BE010E944706EC01B8010E949B0516 +:100B6000882309F48DC0F8018281882309F44AC0E2 +:100B700080915D0181111FC0C431F0E5DF0709F0EC +:100B800051C00E949D0581E080935D010E94EF1B92 +:100B900090935C0180935B01109254011092560176 +:100BA00010925501109258011092570110925A015B +:100BB0001092590165C080915B0190915C010E9487 +:100BC000FB1B883C910570F480915401E82FF0E004 +:100BD000EE0FFF1FEB5AFE4FD183C0838F5F8093D0 +:100BE00054014EC0C43880E5D80721F0C538D0453F +:100BF00001F13AC0F8018281882341F0109252013C +:100C000082E01EC0C438E0E5DE0759F5809152014C +:100C1000811106C086E20E945A1186E20E942212C9 +:100C200082E01CC0C438F0E5DF0741F3C538D04589 +:100C3000D9F4F8018281882331F01092530180E2C7 +:100C40000E9471121DC080915301811106C087E27C +:100C50000E945A1187E20E94221280E20E947812BA +:100C60000FC0C538D04529F381E0809352018093AD +:100C70005301C801DF91CF911F910F910C949705FB +:100C800080E0DF91CF911F910F910895089596E034 +:100C9000799FF001112494E5899FE00DF11D112445 +:100CA000E60FF11DEE0FFF1FE25FFE4F859194915D +:100CB0000895880F991FFC01E657F04085919491A3 +:100CC0000895880F991FFC01E65FFE4F859194916E +:100CD00008950F931F93CF93DF93EC01811520E3C9 +:100CE000920750F5C11580E2D80708F0C3C0CB3B8E +:100CF000D10590F4C83AD10508F06AC0C53AD105CB +:100D000008F05BC0C430D10508F0D0C1219709F0CC +:100D1000CAC101E010E00AC2CF3FD10511F008F0CE +:100D2000C5C1C03FD10508F0A2C0CE01805E9109C7 +:100D3000089708F4BBC1B7C1C13090E5D90709F4E1 +:100D4000A2C020F5C0318FE4D80770F4C11590E43B +:100D5000D90708F094C0C11521E3D20708F0A3C158 +:100D6000DD278E01106CE2C1C115D04509F09BC191 +:100D70000E94D7148FEF94E32CE0815090402040E4 +:100D8000E1F700C000000E944A1CD0C1C11597E5E0 +:100D9000D90758F4C03121E5D20708F01CC1C4318D +:100DA00080E5D80708F475C07EC1CE019057811543 +:100DB000904108F078C1DF7073C1C53AD10509F4DC +:100DC00077C1C63AD10509F076C102E810E4AEC198 +:100DD000C83AD10509F472C1C93AD10509F471C103 +:100DE000CA3AD10509F470C1CB3AD10509F46FC1F3 +:100DF000CC3AD10509F46EC1CD3AD10509F46DC1E3 +:100E0000C03BD10509F46CC1CE3AD10509F46BC1E0 +:100E1000CF3AD10509F46AC1C13BD10509F469C1D2 +:100E2000C23BD10509F468C1C33BD10509F467C1D0 +:100E3000C43BD10509F466C1C53BD10509F465C1C0 +:100E4000C63BD10509F464C1C73BD10509F463C1B0 +:100E5000C83BD10509F462C1C93BD10509F461C1A0 +:100E6000CA3BD10509F460C100E014E45FC18E0102 +:100E700010655CC1CE019F700E94610658C1DF7091 +:100E80008E01106A53C18091DA0181608093DA018A +:100E90004DC10E94EF1D811102C00E94D51D0E940C +:100EA0000C1E90E09093FB018093FA01C23080E524 +:100EB000D80721F48091FA01816086C0C43090E5A2 +:100EC000D90721F48091FA0182607EC0C63020E506 +:100ED000D20721F48091FA01846076C0C83080E5A1 +:100EE000D80719F48091FA0127C0CA3090E5D907D4 +:100EF00021F48091FA01806167C0CC3020E5D207EF +:100F000021F48091FA0180625FC0CE3080E5D8077D +:100F100021F48091FA01806457C0C03190E5D9076F +:100F200021F48091FA0180684FC0C23120E5D207D8 +:100F300029F48091FA018460886046C0C33080E55E +:100F4000D80721F48091FA018E7F3EC0C53090E52C +:100F5000D90721F48091FA018D7F36C0C73020E592 +:100F6000D20721F48091FA018B7F2EC0C93080E531 +:100F7000D80719F48091FA0126C0CB3090E5D90743 +:100F800021F48091FA018F7E1FC0CD3020E5D20779 +:100F900021F48091FA018F7D17C0CF3080E5D8070A +:100FA00021F48091FA018F7B0FC0C13190E5D90700 +:100FB00021F48091FA018F7707C0C331D04531F415 +:100FC0008091FA018B7F877F8093FA018091FA01EB +:100FD0000E94101EABC08D2F99278F7099278130EA +:100FE0009105D9F49E012370332702C0880F991F01 +:100FF0002A95E2F79C688E0144E0000F111F4A9584 +:10100000E1F700271370802B912B53E0CC0FDD1FED +:101010005A95E1F7C076DD272FC08230910531F473 +:10102000DC2FCC278E01016F106A80C083309105C0 +:1010300069F4CE018370992701E010E002C0000F2F +:10104000111F8A95E2F7C8019C680FC08430910592 +:10105000B9F4CE018370992701E010E002C0000FBF +:10106000111F8A95E2F7C8019A6823E0CC0FDD1FB3 +:101070002A95E1F7C07ED7708C010C2B1D2B56C032 +:101080008530910531F4DC2FCC278E01046F106A76 +:101090004DC0069709F04AC0CF71DD27DC2FCC2761 +:1010A0008E01106243C000E010E040C08E013EC0DF +:1010B00001E810E43BC003E810E438C002EE14E499 +:1010C00035C009EE14E432C00AEE14E42FC005EB7B +:1010D00014E42CC006EB14E429C007EB14E426C08A +:1010E0000CEC14E423C00DEC14E420C003E815E478 +:1010F0001DC00AE815E41AC002E915E417C004E9A6 +:1011000015E414C001E216E411C003E216E40EC0B7 +:1011100004E216E40BC005E216E408C006E216E499 +:1011200005C007E216E402C00AE216E4C801DF9136 +:10113000CF911F910F91089596E0799FF0011124AE +:1011400094E5899FE00DF11D1124E60FF11DEE0FCE +:10115000FF1FE25FFE4F85919491803E9105E0F480 +:10116000803C910558F58133910509F46FC048F42E +:101170008932910509F463C08A32910509F46DC082 +:1011800072C089339105E9F082389105D1F0853339 +:10119000910509F44DC067C0833E910581F138F493 +:1011A000803E9105B9F0823E9105D9F05CC0863E43 +:1011B000910561F1873E9105A1F155C00E94590644 +:1011C00008952091FA0120FD02C021FF4CC080EE5D +:1011D00090E049C08091FA0180FFF9CF89E390E067 +:1011E00042C08091FA0182FF0EC08091FA0184FF13 +:1011F00003C080E090E037C083EE90E034C080917F +:10120000FA0182FFF2CF82EE90E02DC08091FA01C8 +:1012100083FF0BC08091FA0184FDEBCF87EE90E055 +:1012200022C08091FA0183FFF5CF86EE90E01BC0CB +:101230008091FA0185FF07C089E290E014C0809197 +:10124000FA0185FFF9CF85E390E00DC08091FA01A6 +:1012500086FF07C08AE290E006C08091FA0186FF0F +:10126000F9CF81E390E00E946906089508950C94F7 +:10127000360980916E010895CF93DF9300D01F92BD +:10128000CDB7DEB79C018091F101843019F593E070 +:1012900099833B832A839093E9008FEF9091E80034 +:1012A000815095FD06C095ED9A95F1F700008111EA +:1012B000F5CF8091E80085FF0DC040E050E063E08D +:1012C00070E0CE0101960E94A60B8091E8008E7717 +:1012D0008093E8000F900F900F90DF91CF910895C9 +:1012E000CF93DF9300D01F92CDB7DEB72091F101ED +:1012F000243021F522E029839B838A8383E0809335 +:10130000E9008FEF9091E800815095FD06C095EDC2 +:101310009A95F1F700008111F5CF8091E80085FFE3 +:101320000DC040E050E063E070E0CE0101960E9405 +:10133000A60B8091E8008E778093E8000F900F90C5 +:101340000F90DF91CF9108952091F1012430F1F4B5 +:1013500022E02093E9002FEF3091E800215035FD85 +:1013600006C035ED3A95F1F700002111F5CF209137 +:10137000E80025FF0BC040E050E065E070E00E940F +:10138000A60B8091E8008E778093E8000895CF93B4 +:10139000DF93EC019091F101943009F046C0809107 +:1013A0000C018823D9F080910D018823B9F0909326 +:1013B000E9008FEF9091E800815095FD06C095E11E +:1013C0009A95F1F700008111F5CF8091E80085FF33 +:1013D0002CC040E050E060E170E017C081E08093F5 +:1013E000E9008FEF9091E800815095FD06C095EDE2 +:1013F0009A95F1F700008111F5CF8091E80085FF03 +:1014000014C040E050E068E070E0CE010E94A60BFE +:101410008091E8008E778093E80080E1FE01AEE5E0 +:10142000B1E001900D928A95E1F7DF91CF91089597 +:101430008091F001811109C00E943B0D0E94980D1E +:101440008091E20084608093E20008951092F001A0 +:10145000089508950C947F220E94E01B0E9485222B +:101460000E943E100C94370942E061EC81E00E943A +:10147000B50C42E061EC82E00E94B50C42E061EC08 +:1014800083E00E94B50C42E161EC84E00C94B50C61 +:101490008091F301833009F455C030F4813071F04C +:1014A000823009F48EC008958A3009F47AC08B30F6 +:1014B00009F460C0893009F09CC020C08091F2011D +:1014C000813A09F096C08091E800877F8093E80018 +:1014D0008091F6019091F701892B21F460E18EE56E +:1014E00091E003C060E080E090E070E00E94F10BCA +:1014F0008091E8008B778093E80008958091F20155 +:10150000813209F076C08091F6019091F701009741 +:1015100019F0039709F06DC08091E800877F8093F0 +:10152000E8008091E80082FD05C08091F101811101 +:10153000F8CF5FC08091F10080936E018091E80048 +:101540008B7753C08091F201813A09F052C08091AB +:10155000F6019091F701892B09F04BC08091E800CA +:10156000877F8093E8008091E80080FFFCCF809126 +:101570000C0136C08091F2018132D9F58091F601DB +:101580009091F701892BA9F58091E800877F8093DE +:10159000E8000E94EA0C8091F40180930C010C9405 +:1015A000D7148091F201813221F58091E800877F84 +:1015B0008093E8000E94EA0C8091F50180936F010E +:1015C00008958091F201813AA1F48091E800877F2B +:1015D0008093E8008091E80080FFFCCF80916F014C +:1015E0008093F1008091E8008E778093E8000C945E +:1015F000EA0C089584B7877F84BF88E10FB6F8941A +:1016000080936000109260000FBE90E080E80FB6FB +:10161000F89480936100909361000FBE0E948D103A +:101620000E943B0D0E94980D8091E200846080939F +:10163000E20078940E941E100E948F1082E091E0D8 +:101640000E9439100E946D228091F101853069F469 +:101650000E94A71B8091EF018823B1F30E94D21B47 +:10166000882391F30E94900BEFCF0E949510ECCF4E +:10167000292F332723303105C9F064F42130310597 +:1016800081F02230310509F043C08DE690E022EE72 +:1016900033E042C021323105F1F02232310541F10F +:1016A00037C082E190E02FE434E036C099278130E2 +:1016B000910541F08230910541F0892B49F5EEED1D +:1016C000F3E005C0E6ECF3E002C0EEEAF3E084915B +:1016D00090E09F0121C06430D8F4E62FF0E0EE0FD7 +:1016E000FF1FEE5DFE4F2081318189E090E014C044 +:1016F000643070F470E0FB01EE0FFF1FE65EFE4FFA +:1017000020813181FB01EA5EFE4F808190E004C0C0 +:1017100080E090E020E030E0FA01318320830895FA +:1017200080E189BD82E189BD09B400FEFDCF8091D1 +:10173000D8008F7D8093D8008091E00082608093F4 +:10174000E0008091E00081FDFCCF0895CF92DF9210 +:10175000EF92FF920F931F93CF93DF93EC018B01D6 +:101760006A010E94090D811133C0C114D10439F0FE +:10177000F60180819181081B190BC80FD91FE12C3C +:10178000F12C0115110519F18091E80085FD16C0B5 +:101790008091E8008E778093E800C114D10449F06D +:1017A000F60180819181E80EF91EF182E08285E0E8 +:1017B0000FC00E94090D882321F30AC089918093EC +:1017C000F10001501109FFEFEF1AFF0ADACF80E0B4 +:1017D000DF91CF911F910F91FF90EF90DF90CF900D +:1017E00008952091F8013091F9012617370748F044 +:1017F0006115710539F42091E8002E772093E800F7 +:1018000001C0B90140E061157105A9F12091F10114 +:10181000222309F443C0253009F442C02091E80096 +:1018200023FD40C02091E80022FD32C02091E80055 +:1018300020FFE9CF4091F3002091F20030E0342BFB +:10184000FC01CF016115710559F02830310540F4D4 +:1018500081918093F100615071092F5F3F4FF1CF6B +:1018600041E02830310509F040E02091E8002E7772 +:101870002093E800C8CF4111C9CF0AC08091F1017F +:10188000882361F0853061F08091E80083FD0AC013 +:101890008091E80082FFF2CF80E0089582E0089511 +:1018A00083E0089581E008952091F8013091F901D5 +:1018B0002617370748F06115710539F42091E800C3 +:1018C0002E772093E80001C0B901FC0120E06115EA +:1018D000710591F18091F101882309F440C08530B0 +:1018E00009F43FC08091E80083FD3DC08091E8008D +:1018F00082FD2FC08091E80080FFE9CF2091F300A6 +:101900008091F20090E0922B6115710559F08830BA +:10191000910540F424912093F100319661507109B2 +:101920000196F2CF21E0089709F020E08091E800CD +:101930008E778093E800CBCF2111CCCF0AC0809165 +:10194000F101882361F0853061F08091E80083FD2A +:101950000AC08091E80082FFF2CF80E0089582E023 +:10196000089583E0089581E00895982F973058F501 +:101970009093E900981739F07091EC002091ED00F8 +:101980005091F00003C0242F762F50E021FF19C0A2 +:101990003091EB003E7F3093EB003091ED003D7FC6 +:1019A0003093ED003091EB0031603093EB00709399 +:1019B000EC002093ED005093F0002091EE0027FF03 +:1019C00007C09F5FD3CF8F708093E90081E00895B7 +:1019D00080E008958091F20187FF11C08091E800B6 +:1019E00082FD05C08091F1018111F8CF11C0809175 +:1019F000E8008B770BC08091F101882349F080913A +:101A0000E80080FFF8CF8091E8008E778093E800AF +:101A100008952091E4003091E50095E64091EC00B6 +:101A2000842F817040FF22C08091E80080FD1CC09F +:101A30008091F101882391F0853091F08091EB0045 +:101A400085FD10C04091E4005091E5004217530716 +:101A500029F39A01915011F784E0089582E00895E6 +:101A600083E0089581E0089580E008954091E800C2 +:101A700042FFDECF08950E94A90D0E94B10DE0EE55 +:101A8000F0E0808181608083E8EDF0E080818F77F5 +:101A9000808319BCA7EDB0E08C918E7F8C93808100 +:101AA0008F7E80831092F00108950F931F93CF9340 +:101AB000DF930E94A90D0E94B10DC8EDD0E088818E +:101AC0008F77888388818068888388818F7D8883E9 +:101AD00019BC1092F1011092ED011092EF011092D9 +:101AE000EE0100EE10E0F80180818B7F8083888119 +:101AF0008160888342E060E080E00E94B50CE1EE06 +:101B0000F0E080818E7F8083E2EEF0E08081816072 +:101B10008083808188608083F80180818E7F8083CC +:101B2000888180618883DF91CF911F910F91089503 +:101B3000E8EDF0E080818F7E8083E7EDF0E080814A +:101B40008160808384E082BF81E08093F0010C9407 +:101B5000550DE8EDF0E080818E7F80831092E200E9 +:101B600008951092DA001092E10008951F920F92EA +:101B70000FB60F9211242F933F934F935F936F9360 +:101B80007F938F939F93AF93BF93EF93FF93809136 +:101B9000E10082FF0BC08091E20082FF07C08091CC +:101BA000E1008B7F8093E1000E941D108091DA009C +:101BB00080FF1FC08091D80080FF1BC08091DA0099 +:101BC0008E7F8093DA008091D90080FF0DC080E184 +:101BD00089BD82E189BD09B400FEFDCF81E080931B +:101BE000F1010E94180A05C019BC1092F1010E946F +:101BF000260A8091E10080FF19C08091E20080FFF9 +:101C000015C08091E2008E7F8093E2008091E20017 +:101C100080618093E2008091D80080628093D80038 +:101C200019BC85E08093F1010E942A0A8091E100AD +:101C300084FF30C08091E20084FF2CC080E189BD28 +:101C400082E189BD09B400FEFDCF8091D8008F7D6F +:101C50008093D8008091E1008F7E8093E100809195 +:101C6000E2008F7E8093E2008091E20081608093A9 +:101C7000E2008091ED01882311F084E007C080919B +:101C8000E30087FD02C081E001C083E08093F101A1 +:101C90000E942C0A8091E10083FF29C08091E2001C +:101CA00083FF25C08091E100877F8093E10082E07F +:101CB0008093F1011092ED018091E1008E7F80937D +:101CC000E1008091E2008E7F8093E2008091E2004B +:101CD00080618093E20042E060E080E00E94B50C09 +:101CE0008091F00088608093F0000E94290AFF91A3 +:101CF000EF91BF91AF919F918F917F916F915F9184 +:101D00004F913F912F910F900FBE0F901F901895FC +:101D10001F920F920FB60F9211242F933F934F9360 +:101D20005F936F937F938F939F93AF93BF93CF9363 +:101D3000DF93EF93FF93C091E900CF708091EC00A7 +:101D4000D82FD17080FDD0E81092E9008091F0008A +:101D5000877F8093F00078940E94CC0E1092E90067 +:101D60008091F00088608093F000CD2BCF70C093FD +:101D7000E900FF91EF91DF91CF91BF91AF919F91DA +:101D80008F917F916F915F914F913F912F910F9024 +:101D90000FBE0F901F9018951F93CF93DF93CDB771 +:101DA000DEB7AA970FB6F894DEBF0FBECDBFE2EF45 +:101DB000F1E088E08E0F9091F10091938E13FBCFAC +:101DC0000E94480A8091E80083FF1FC18091F201C0 +:101DD0009091F301492F50E04A30510508F015C1A8 +:101DE000FA01EA5AFF4F0C940724803881F08238B8 +:101DF00009F00BC18091F6018F708093E90080910A +:101E0000EB0085FB882780F91092E90006C08091DD +:101E1000EE019091EF01911182609091E800977F1F +:101E20009093E8008093F1001092F100C8C0282F31 +:101E30002D7F09F0EAC0882319F0823061F0E5C0F7 +:101E40008091F401813009F0E0C0933009F080E026 +:101E50008093EF012BC08091F401811127C0809104 +:101E6000F6018F7009F4D1C08093E9002091EB0056 +:101E700020FF1CC0933021F48091EB00806214C0DD +:101E80009091EB0090619093EB0021E030E0A9018C +:101E900002C0440F551F8A95E2F74093EA00109262 +:101EA000EA008091EB0088608093EB001092E900DB +:101EB0008091E800877F86C08111A7C01091F4014E +:101EC0001F778091E3008078812B8093E3008091DD +:101ED000E800877F8093E8000E94EA0C8091E80088 +:101EE00080FFFCCF8091E30080688093E3001111B4 +:101EF00002C082E001C083E08093F10186C0805877 +:101F0000823008F082C08091F4019091F5018C3DFF +:101F100053E0950779F583E08A838AE289834FB796 +:101F2000F894DE01139620E03EE051E2E32FF0E06A +:101F300050935700E49120FF03C0E295EF703F5F9C +:101F4000EF708E2F90E0EA3010F0C79601C0C09677 +:101F50008D939D932F5F243149F74FBF8091E80007 +:101F6000877F8093E8006AE270E0CE0101960E94CC +:101F7000F10B14C0AE014F5F5F4F6091F6010E94FC +:101F8000380BBC01009709F440C09091E800977F9E +:101F90009093E80089819A810E94540C8091E80016 +:101FA0008B778093E80031C0803879F58091E80024 +:101FB000877F8093E8008091ED018093F10080910C +:101FC000E8008E778093E8000E94EA0C1EC0811121 +:101FD0001CC09091F4019230C0F48091E800877F9A +:101FE0008093E8009093ED010E94EA0C8091ED014E +:101FF000811106C08091E30087FD02C081E001C02D +:1020000084E08093F1010E94340A8091E80083FF0C +:102010000AC08091E800877F8093E8008091EB0000 +:1020200080628093EB00AA960FB6F894DEBF0FBED5 +:10203000CDBFDF91CF911F9108950895CF938091E7 +:10204000F1018823A1F0C091E900CF709091EC00DC +:10205000892F817090FD80E8C82B1092E900809153 +:10206000E80083FD0E94CC0ECF70C093E900CF91B1 +:10207000089590937501809374010895E09174011F +:10208000F0917501309721F00190F081E02D0994D5 +:1020900080E00895E0917401F0917501309721F08E +:1020A0000280F381E02D09940895E0917401F0918C +:1020B0007501309721F00480F581E02D0994089591 +:1020C00020917201309173018217930771F0909300 +:1020D000730180937201E0917401F0917501309762 +:1020E00021F00680F781E02D099408952091700178 +:1020F000309171018217930771F090937101809371 +:102100007001E0917401F0917501309721F0008425 +:10211000F185E02D0994089508950C948C100E9487 +:10212000E61B0E9487030C94A81C9F92AF92BF925B +:10213000CF92DF92EF92FF920F931F93CF93DF9393 +:1021400000D000D000D0CDB7DEB70E949F030DE0D5 +:1021500010E0AA24A394B12C902E802F0E948D040D +:10216000980129583E4F6901F901F080F826A1F441 +:102170000150110988F78FEF89838A831B820E949F +:10218000EF1B8160782F9D838C8349815A816B81FD +:102190008D810E942C112FC09091DA0191FF04C013 +:1021A0008E830E9493048E8125E030E0A501022EEB +:1021B00001C0440F0A94EAF7E42E4F21C1F02983AD +:1021C0009A828E2191E009F490E09B830E94EF1B9C +:1021D0008160782F9D838C8349815A816B818D81A9 +:1021E0000E942C11F6018081E826E08204C0215073 +:1021F0003109E0F6BDCF0E948F1F109176010E9439 +:102200003E101817B9F00E943E1080937601269672 +:102210000FB6F894DEBF0FBECDBFDF91CF911F91F7 +:102220000F91FF90EF90DF90CF90BF90AF909F9075 +:102230000C94370926960FB6F894DEBF0FBECDBFBB +:10224000DF91CF911F910F91FF90EF90DF90CF9092 +:10225000BF90AF909F900895CF93DF93CDB7DEB737 +:102260002B970FB6F894DEBF0FBECDBF4F835887B4 +:1022700069877A878B87DE01119686E0FD011192CE +:102280008A95E9F785E0FE01379601900D928A95CF +:10229000E1F749815A816B817C818D819E810E9409 +:1022A00075172B960FB6F894DEBF0FBECDBFDF912A +:1022B000CF910895CF93882309F4C2C0C82F8238E4 +:1022C00059F40E943E1081FDBBC089E30E944F1A61 +:1022D0000E941C1B89E30CC0833879F40E943E10D5 +:1022E00080FDAEC083E50E944F1A0E941C1B83E54F +:1022F0000E94911ACF910C941C1B843859F40E94AF +:102300003E1082FD9DC087E40E944F1A0E941C1B54 +:1023100087E4EECF8CEF8C0F813A48F48C2F0E942B +:10232000D22181118DC08C2F0E944F1AE3CF80E201 +:102330008C0F883048F4C77081E001C0880FCA95BF +:10234000EAF70E94D51AD6CF8BE58C0F833078F44C +:10235000C53A29F0C63A31F083E890E005C081E83B +:1023600090E002C082E890E0CF910C94601088E584 +:102370008C0F833108F064C0C83A39F1C93A41F191 +:10238000CA3A49F1CB3A51F1CC3A59F1CD3A61F11F +:10239000C03B69F1CE3A71F1CF3A79F1C13B81F19D +:1023A000C23B89F1C33B91F1C43B99F1C53BA1F11B +:1023B000C63BA9F1C73BB1F1C83BB9F1C93BC1F17B +:1023C000CA3BC9F180E090E038C082EE90E035C0B1 +:1023D00089EE90E032C08AEE90E02FC085EB90E06D +:1023E0002CC086EB90E029C087EB90E026C08CECF7 +:1023F00090E023C08DEC90E020C083E891E01DC008 +:102400008AE891E01AC082E991E017C084E991E07E +:1024100014C081E292E011C083E292E00EC084E237 +:1024200092E00BC085E292E008C086E292E005C02F +:1024300087E292E002C08AE292E0CF910C9476109B +:10244000CF910895882309F44BC0823859F40E9433 +:102450003E1081FF45C089E30E944F1A0E941C1B59 +:1024600089E30CC0833871F40E943E1080FF38C0AD +:1024700083E50E944F1A0E941C1B83E50E94911A5B +:102480000C941C1B843859F40E943E1082FF28C013 +:1024900087E40E944F1A0E941C1B87E4EFCF9CEF39 +:1024A000980F913A58F390E2980F983050F4877053 +:1024B00091E001C0990F8A95EAF7892F0E94DB1AF3 +:1024C000DFCF9BE5980F933020F480E090E00C94F0 +:1024D0006010885A833120F480E090E00C947610EC +:1024E0000895882321F00E94D51A0C941C1B08958E +:1024F000882321F00E94DB1A0C941C1B08957F9204 +:102500008F929F92AF92BF92CF92DF92EF92FF9203 +:102510000F931F93CF93DF931F92CDB7DEB77C014C +:10252000C62E772EFC01058102950F7012811111C4 +:102530000E94F21A0E94481A882379F0112369F048 +:1025400080E28C0D883048F082E00E94311A0E94AF +:10255000481A91E0D82ED92601C0D12CE72DE2955A +:10256000EF70F0E0E05AFF4F0C940724872D807F36 +:10257000072D0F70882311F00295007F112389F039 +:10258000002309F490C180E28C0D883020F4802F64 +:102590000E94D51A03C0802F0E94E51A0E941C1BBE +:1025A00082C18C2D0E942212002309F495C180E281 +:1025B0008C0D883020F4802F0E94DB1A03C0802FFE +:1025C0000E94EB1A0E941C1B87C1972D907F872DBC +:1025D0008F70903211F08295807FCC2021F0F1E055 +:1025E000CF16B1F01EC0112349F0002309F414C125 +:1025F000013009F011C10E94051B6EC1002319F0C2 +:10260000013009F469C189830E94081B89810AC1CC +:10261000112321F0023008F05FC1FEC001115CC13E +:1026200001C1112321F0002309F4F6C03CC10023AD +:1026300009F4F8C03EC1872D86958695837090E099 +:10264000009719F0019761F047C1112321F08C2DFB +:10265000972D937002C080E090E00E9460103CC112 +:10266000112321F08C2D972D937002C080E090E013 +:102670000E94761031C18C2D112319F00E94971EF3 +:1026800002C00E94FF1E0E94841F26C1872D8370F6 +:1026900009F052C0111120C18C2D8295869587704A +:1026A000880F880F9C2D9F70892E912CA12CB12C06 +:1026B000082E04C0880C991CAA1CBB1C0A94D2F7D3 +:1026C000C4FE14C00FE010E020E030E0B901A80122 +:1026D00004C0440F551F661F771F8A95D2F7CB01A0 +:1026E000BA01609570958095909503C060E070E0A8 +:1026F000CB01272D26952695237030E02230310519 +:1027000069F02330310589F0682979298A299B29C4 +:102710002130310571F00E94BD18DEC06829792989 +:102720008A299B290E94D918D7C00E94BD18C501CB +:10273000B4010E94A118D0C0112319F0872D817017 +:1027400001C08695882309F4C7C08C2D8295869593 +:102750008770880F880F9C2D9F70892E912CA12C3B +:10276000B12C082E04C0880C991CAA1CBB1C0A940E +:10277000D2F7C4FE14C00FE010E020E030E0B90151 +:10278000A80104C0440F551F661F771F8A95D2F712 +:10279000CB01BA01609570958095909503C060E07B +:1027A00070E0CB01272D269526952370422F50E00F +:1027B0004230510569F04330510589F06829792983 +:1027C0008A299B294130510571F00E94971984C0D4 +:1027D000682979298A299B290E94B3197DC00E9402 +:1027E0009719C501B4010E947B1976C08C2D90E029 +:1027F000FC01E05EF109E531F10508F050C0E05957 +:10280000FF4F0C9407240C2D0F70872D8F7111230F +:1028100031F00E941419802F0E9471125DC00E9435 +:102820003519802F0E94781257C0112339F00111F9 +:1028300053C0872D8F710E945A194EC0023008F084 +:102840004BC0F7CF112339F0872D8F710E941419D7 +:1028500043C01123C9F3872D8F710E9435193CC0E5 +:10286000112329F0872D8F710E94FF1835C00E9417 +:10287000F51832C0112351F0172D1F71812F0E94BE +:10288000141963E0812F0E94281A26C081E00E945B +:10289000311A023008F182E00E94311A1DC0112362 +:1028A00031F0002389F28C2D0E945A1115C00023AB +:1028B00091F28C2D0E9422120FC0472D4F706C2D6B +:1028C000C7010E9469050E94191806C0472D4F7064 +:1028D0006C2DC7010E944606DD20F9F00E94241AE3 +:1028E00080FD1BC0F70112820E941E1A0E9414195B +:1028F000C7010E949C140E941E1A0F90DF91CF9175 +:102900001F910F91FF90EF90DF90CF90BF90AF900D +:102910009F908F907F900C9435190F90DF91CF91FD +:102920001F910F91FF90EF90DF90CF90BF90AF90ED +:102930009F908F907F9008950F931F93CF93DF9375 +:10294000EC01888199812B813C81232BB9F09F3F39 +:1029500011F48F3F99F0CE010E949E05882371F0FB +:10296000688179818A810E941A1A8C010E94CF198C +:102970000E949618B801CE010E947F12DF91CF917C +:102980001F910F9108950E94F21A0E94021B0E944B +:10299000C71A0E941C1B0E9435200E94841F80E0E1 +:1029A00090E00E94601080E090E00C9476100E940D +:1029B000E21A0C94C3140E940F1A292F22952F702B +:1029C00030E02C3031054CF42A3031056CF42250C3 +:1029D000310922303105A8F407C02C30310569F0E7 +:1029E0002F30310551F00DC0803F69F018F4803E62 +:1029F00040F409C0843F29F406C093FB882780F97E +:102A0000089580E0089581E00895CF93DF9300D08A +:102A100000D01F92CDB7DEB70F900F900F900F90A0 +:102A20000F90DF91CF910895CF93DF9300D000D026 +:102A300000D0CDB7DEB726960FB6F894DEBF0FBE36 +:102A4000CDBFDF91CF9108951F93CF93DF93C091B6 +:102A5000850116E080918601C81799F0D0E01C9F8F +:102A6000F0011D9FF00D1124E957FE4F4081518167 +:102A700062817381848195810E9414152196C770AB +:102A8000E9CFDF91CF911F9108954091B701509107 +:102A9000B8016091B9017091BA018091BB01909128 +:102AA000BC010C9414158091BC0182958F7009F0C3 +:102AB00054C08091B901882309F44FC080918501E9 +:102AC000A09186016091B7017091B8014091BA015F +:102AD0005091BB01B6E08A1709F43FC090E0411560 +:102AE0005105C1F17F3F11F46F3FA1F1B89FF00193 +:102AF000B99FF00D1124E957FE4F218172132AC0AE +:102B00002081621327C02281211124C023813481B6 +:102B10002417350710F421503109241B350B283CAC +:102B20003105C0F42091BC012F7020612093BC01BD +:102B300026E0289FF001299FF00D1124E457FE4F55 +:102B400080818F708061808387EB91E00E949C146C +:102B50000C94241501968770BECF0895CF92DF9212 +:102B6000EF92FF920F931F93CF93DF93CDB7DEB712 +:102B700062970FB6F894DEBF0FBECDBF8C0185E023 +:102B8000F801DE011D9601900D928A95E1F7D801BA +:102B90004C9111965C91119712966C911297139625 +:102BA000CD90DC9014973091B7017091B80180916D +:102BB000BA019091BB01009709F46BC17F3F19F4F2 +:102BC0003F3F09F466C1E090B901EE2009F4C0C0AE +:102BD0002091BC01C816D90628F0F601E81BF90BB4 +:102BE000CF0104C0809590958C0D9D1DFF24F3941A +:102BF000883C910578F0F12C207F09F0C6C07C2D2F +:102C0000D98AC88A89890E94051587EB91E00E94BC +:102C10009C14B1C0822F807F09F046C0751314C088 +:102C2000341312C0611110C02F7020612093BC01B9 +:102C30000E94451587EB91E00E949C148091BC0195 +:102C4000D80115968C932EC0CD2819F15F3F11F451 +:102C50004F3FF9F0F62E61111CC080918501209143 +:102C6000860136E0821709F45AC090E0389FF001DF +:102C7000399FF00D1124E957FE4F7181571306C09B +:102C80007081471303C07281711103C00196877070 +:102C9000E9CFF62E662309F418C18091BC0181604A +:102CA0008093BC01F12C11C1751308C0341306C008 +:102CB000611104C08091BC01D801C3C04D875E87FB +:102CC0008D859E856A8B0E94DB146A898823E1F1D9 +:102CD0006623D1F12091BC01822F82958F7090E004 +:102CE000029774F08091B7019091B80198878F8313 +:102CF0001986DB86CA862C87CE0107960E949C1413 +:102D000086E0F801A7EBB1E001900D928A95E1F71A +:102D10000E9453150E944515FF24F394D6C04D8799 +:102D20005E878D859E850E940F1A292F22952F7010 +:102D300030E0223031050CF0BCC09F7009F0B6C005 +:102D4000805E883008F4C1C0C8010E949C14E4CFA2 +:102D5000C816D90608F453C0F601E81BF90BCF01D9 +:102D6000883C910508F450C0F12C7C2DD98AC88A82 +:102D700089890E940515E7EBF1E086E0DF011D92ED +:102D80008A95E9F70E944515A0C0751314C0341345 +:102D900012C0611110C08091BC01F8018583C80187 +:102DA0000E949C1486E0E7EBF1E0DF011D928A951A +:102DB000E9F7FE2C8AC04D875E878D859E856A8BDC +:102DC0000E94DB146A89882309F4BECF662309F4C4 +:102DD000BBCF2091BC01822F82958F7090E002972B +:102DE0000CF48ECF8091B7019091B8019A838983BA +:102DF0001B82DD82CC822E83CE0101967FCF80950F +:102E000090958C0D9D1DACCFF62E662309F49CCFBA +:102E100075132EC034132CC02091BC0120FD1FC09F +:102E2000822F82958F70D9F0D80115962C93159723 +:102E30008F3049F08F5F982F9295907F822F8F70FF +:102E4000892B15968C93C8010E949C1486E0F8018A +:102E5000A7EBB1E001900D928A95E1F793CF86E060 +:102E6000F801A7EBB1E001900D928A95E1F72DC032 +:102E70004D875E878D859E850E94DB14811140CF32 +:102E80008091BC0181608093BC01C8010E949C14A8 +:102E90001CC0662309F458CF4D875E878D859E85BB +:102EA0000E94DB14882309F44FCF2ACF811148CF29 +:102EB0000CC0243031050CF047CF9F7009F440CF8F +:102EC000F8019581907F09F03BCF8F2D62960FB668 +:102ED000F894DEBF0FBECDBFDF91CF911F910F9150 +:102EE000FF90EF90DF90CF9008951F93CF93DF93E3 +:102EF000CDB7DEB72C970FB6F894DEBF0FBECDBFAF +:102F00004F83588769877A878B879C87CE0107967E +:102F10000E94AE15882369F08F8198852A853B85AC +:102F2000232BF1F19F3F09F063C08F3F09F060C090 +:102F300037C086E0FE013796DE01119601900D92B2 +:102F40008A95E1F76F817885EA85FB85309741F1B5 +:102F50007F3F11F46F3F21F12091860130E0C901DC +:102F60000196877099274091850150E08417950755 +:102F700009F447C069837A83FD83EC8396E0929FCE +:102F8000D001939FB00D1124A957BE4FFE01319679 +:102F900001900D929A95E1F7809386010E94241585 +:102FA00016E080918501909186018917C1F1189FE3 +:102FB000C001112489579E4F0E94AE15882379F1D4 +:102FC000E09185011E9FF0011124E957FE4F4081D9 +:102FD000518162817381848195810E941415809151 +:102FE000850190E001968770992780938501D9CF5C +:102FF0004F81588569857A858B859C850E9414153B +:10300000CFCF0E94D7141092860110928501E7EB72 +:10301000F1E086E0DF011D928A95E9F7C1CF2C9699 +:103020000FB6F894DEBF0FBECDBFDF91CF911F91D9 +:103030000895EF92FF920F931F93CF93DF938C012C +:10304000009709F46CC0F12CEE24E394E80121967A +:10305000F8018491843740F4843008F051C0813005 +:1030600081F0823019F15BC0853709F444C0A8F1C2 +:103070009CE7980F903708F052C08F770E94221279 +:1030800041C00E5F1F4FFE01C49180E28C0F88305B +:1030900048F4C7708E2D01C0880FCA95EAF70E94C8 +:1030A000F51A14C08C2F0E945A112DC00E5F1F4FAD +:1030B000FE01C49180E28C0F883058F4C7708E2DC9 +:1030C00001C0880FCA95EAF70E94FB1A0E941C1BD8 +:1030D0001AC08C2F0E94221216C00E5F1F4FFE01D5 +:1030E000C491CC2381F08FE99FE00197F1F700C0F4 +:1030F0000000C150F6CF0E5F1F4FFE01F49003C0D9 +:103100000E945A118E018F2D882309F49FCFEFE979 +:10311000FFE03197F1F700C000008150F5CFDF915B +:10312000CF911F910F91FF90EF90089508956093B4 +:10313000C1017093C2018093C3019093C4010C94A8 +:10314000C3140F931F930091C1011091C2012091EC +:10315000C3013091C401DC01CB01802B912BA22B48 +:10316000B32B8093C1019093C201A093C301B0938C +:10317000C4011F910F910C94C3140F931F930091DE +:10318000C1011091C2012091C3013091C401DC0141 +:10319000CB0180239123A223B3238093C101909379 +:1031A000C201A093C301B093C4011F910F910C946D +:1031B000C3140F931F930091C1011091C20120917C +:1031C000C3013091C401DC01CB0180279127A227E4 +:1031D000B3278093C1019093C201A093C301B09320 +:1031E000C4011F910F910C94C3141092BD01109251 +:1031F000BE011092BF011092C0010C94C31441E0B3 +:1032000050E060E070E004C0440F551F661F771F58 +:103210008A95D2F74093BD015093BE016093BF01E0 +:103220007093C0010C94C31441E050E060E070E082 +:1032300004C0440F551F661F771F8A95D2F78091EF +:10324000BD019091BE01A091BF01B091C001482B7A +:10325000592B6A2B7B2B4093BD015093BE01609389 +:10326000BF017093C0010C94C31441E050E060E0D2 +:1032700070E004C0440F551F661F771F8A95D2F770 +:1032800040955095609570958091BD019091BE01DB +:10329000A091BF01B091C001482359236A237B2329 +:1032A0004093BD015093BE016093BF017093C00174 +:1032B0000C94C31441E050E060E070E004C0440F9F +:1032C000551F661F771F8A95D2F78091BD01909197 +:1032D000BE01A091BF01B091C001482759276A27BC +:1032E0007B274093BD015093BE016093BF01709353 +:1032F000C0010C94C3140F931F930091BD01109152 +:10330000BE012091BF013091C001DC01CB01802BB7 +:10331000912BA22BB32B8093BD019093BE01A09360 +:10332000BF01B093C0011F910F910C94C3140F9370 +:103330001F930091BD011091BE012091BF013091FA +:10334000C001DC01CB0180239123A223B32380930E +:10335000BD019093BE01A093BF01B093C0011F9126 +:103360000F910C94C3140F931F930091BD01109102 +:10337000BE012091BF013091C001DC01CB0180274B +:103380009127A227B3278093BD019093BE01A093FC +:10339000BF01B093C0011F910F910C94C314089505 +:1033A000CF92DF92EF92FF920F931F93CF93DF9311 +:1033B0008C01C090C101D090C201E090C301F09097 +:1033C000C4018091BD019091BE01A091BF01B09157 +:1033D000C001C82AD92AEA2AFB2ACFE1D0E0D701C6 +:1033E000C6010C2E04C0B695A795979587950A94AB +:1033F000D2F780FF06C0B8018C2F0E949C0801976D +:1034000021F4219760F780E001C08C2FDF91CF91EC +:103410001F910F91FF90EF90DF90CF900895CF9381 +:10342000DF93EC010E94D019BE010E949C08DF913D +:10343000CF910895CB010E940F1A08958091C50184 +:1034400085958595859508958091C5018770089526 +:1034500098E0899F90011124262B2093C5010C949C +:1034600014192091C501809582238093C501982F5E +:10347000977069F430E0482F552747FD5095241781 +:10348000350729F08595859585950C94351908950E +:103490009091C501977081E009F480E008959091C2 +:1034A0000C01992321F090910D01911109C02091F7 +:1034B0000E0130910F01F90132969FEF40E01FC0DD +:1034C000982F9695969596959F3050F5E0910E0120 +:1034D000F0910F01E90FF11D877021E030E0A901A3 +:1034E00002C0440F551F8A95E2F7CA019181892BCA +:1034F000818308959F3F39F04F5F4E3041F05191E5 +:103500005813F8CF0DC05111F7CF942FF5CF9F3F2F +:1035100039F0F901E90FF11D97FDFA9582830895BD +:10352000089590910C01992321F090910D01911132 +:1035300009C020910E0130910F01F9013296205FF0 +:103540003F4F1FC0982F9695969596959F30F0F413 +:10355000E0910E01F0910F01E90FF11D877021E05C +:1035600030E0A90102C0440F551F8A95E2F7CA0155 +:10357000809591818923818308953196E217F3071D +:1035800029F090819813F9CF1082F7CF089581E048 +:1035900090E0E0910E01F0910F01E80FF91F108209 +:1035A000019680319105A9F708959091D901892B51 +:1035B0008093D901089580959091D90189238093B2 +:1035C000D90108951092D90108959091D801892BBD +:1035D0008093D801089580959091D8018923809394 +:1035E000D80108951092D80108959091D701892BA0 +:1035F0008093D701089580959091D7018923809376 +:10360000D70108951092D70108958093C6010895B7 +:103610001092C601089580910E0190910F01FC0156 +:1036200031969C01205F3F4F80E0919191118F5F17 +:10363000E217F307D1F70895E0910E01F0910F0121 +:103640008091D9018083E0910E01F0910F0190816A +:103650008091D801892B8083E0910E01F0910F01B8 +:1036600090818091D701892B80838091C601882326 +:1036700061F0E0910E01F0910F019081892B808320 +:103680000E940B1B81111092C60180910E01909136 +:103690000F010C944A1020E0009739F0AC01415022 +:1036A0005109842395232F5FF7CF822F0895CF925E +:1036B000DF92EF92FF926C01EE24FF24C114D1043B +:1036C000E104F10421F0C701B60120E101C020E0CE +:1036D000C72ED82EE92EFF24C114D104E104F10431 +:1036E00019F0285FC701B6016B017C0154E0F69424 +:1036F000E794D794C7945A95D1F7C114D104E10443 +:10370000F10419F02C5FC701B6016B017C0142E0A6 +:10371000F694E794D794C7944A95D1F7C114D1048D +:10372000E104F10419F02E5FC701B601DC01CB0101 +:10373000B695A79597958795892B8A2B8B2B09F0A2 +:103740002F5F822FFF90EF90DF90CF9008958091B0 +:10375000F101843021F11092DB0120E488E190E056 +:103760000FB6F894A895809360000FBE2093600078 +:1037700080E00E94370983B7817F846083BF83B76D +:10378000816083BF7894889583B78E7F83BF88E1FB +:103790000FB6F89480936000109260000FBE0895F9 +:1037A000089508950E94D01B0E949F030E94D11B80 +:1037B0000E94940491E0811101C090E0892F089546 +:1037C0000E94D7140E943E100C94370982E084BDF9 +:1037D00093E095BD9AEF97BD80936E0008952FB743 +:1037E000F8948091DC019091DD01A091DE01B0910F +:1037F000DF012FBF0895CF92DF92EF92FF920F93D8 +:103800001F932FB7F8944091DC015091DD01609136 +:10381000DE017091DF012FBF6A017B01EE24FF24DE +:103820008C0120E030E0C016D106E206F30610F469 +:10383000415051099A01281B390BC9011F910F9161 +:10384000FF90EF90DF90CF9008951F920F920FB6E8 +:103850000F9211248F939F93AF93BF938091DC01BC +:103860009091DD01A091DE01B091DF010196A11DD3 +:10387000B11D8093DC019093DD01A093DE01B09334 +:10388000DF01BF91AF919F918F910F900FBE0F906D +:103890001F9018950E943B0DF8942FEF87EA91E650 +:1038A000215080409040E1F700C0000087E090EB9D +:1038B000DC018093FB019093FC01A093FD01B09388 +:1038C000FE019CE088E10FB6F894A8958093600013 +:1038D0000FBE90936000FFCFEF92FF920F931F9364 +:1038E000CF93DF93D82FCDE08C2F0E948D0405E07D +:1038F00010E0E82EF12CC701002E02C095958795A7 +:103900000A94E2F780FF09C0602F7C2F80E00E94BC +:103910004706D81302C081E006C00150110958F7CC +:10392000C15010F780E0DF91CF911F910F91FF9070 +:10393000EF900895CF93C82F8CE20E946C1C8823CF +:1039400021F08C2FCF910C946C1C80E0CF910895C6 +:10395000CF930E94EF1D811102C00E94D51DC5E6C4 +:10396000C15049F00E949F038FE39CE90197F1F752 +:1039700000C00000F5CF89E20E949A1C811113C19A +:103980008AE20E949A1C81110E94D51D85E00E9446 +:103990009A1C81110E944A1C0E94FA1D8093DA0130 +:1039A00087E00E949A1C8823A9F18BE10E949A1C4F +:1039B000882351F08091DA0181FB222720F991E0E0 +:1039C000922790FB81F90EC08EE00E949A1C8823FA +:1039D00061F08091DA0182FB222720F991E09227A1 +:1039E00090FB82F98093DA0115C080E10E949A1C55 +:1039F0009091DA01882341F093FB222720F981E09E +:103A0000822780FB93F904C0892F809580FB90F971 +:103A10009093DA018091DA010E94FE1D0E940C1E33 +:103A20008093FA0180EE0E949A1C882341F08091D5 +:103A3000FA01982F909590FB80F98093FA0189E321 +:103A40000E949A1C882359F08091FA0181FB222759 +:103A500020F991E0922790FB81F98093FA0182EEA0 +:103A60000E949A1C882359F08091FA0182FB222738 +:103A700020F991E0922790FB82F98093FA0186EE7B +:103A80000E949A1C882359F08091FA0183FB222717 +:103A900020F991E0922790FB83F98093FA0183EE5D +:103AA0000E949A1C882359F08091FA0184FB2227F6 +:103AB00020F991E0922790FB84F98093FA0185E345 +:103AC0000E949A1C882359F08091FA0185FB2227D5 +:103AD00020F991E0922790FB85F98093FA0181E328 +:103AE0000E949A1C882359F08091FA0186FB2227B4 +:103AF00020F991E0922790FB86F98093FA0181E109 +:103B00000E949A1C882359F08091FA0187FB222792 +:103B100020F991E0922790FB87F98093FA01809138 +:103B2000FA010E94101E8091FA0187FB882780F914 +:103B300080930D0187E20E949A1CC82F8EE10E949B +:103B40009A1C8111C2608FE10E949A1C8111C4608D +:103B500080E20E949A1C8111C86081E20E949A1C36 +:103B60008111C06182E20E949A1C8111C06283E2CD +:103B70000E949A1C8111C06484E20E949A1C8823CE +:103B800011F0C06802C0CC2329F08C2F0E94071EC0 +:103B90006C2F03C00E94031E682F70E080E090E04D +:103BA000CF910C949718CF9108956DEE7EEF80E041 +:103BB00090E00E94412460E082E090E00E942F2487 +:103BC00060E083E090E00E942F2460E084E090E0D9 +:103BD0000E942F2460E085E090E00C942F2480E088 +:103BE00090E00E94292421E08D3E9E4F09F020E0C4 +:103BF000822F089582E090E00C942124682F82E0C7 +:103C000090E00C942F2483E090E00C942124682F02 +:103C100083E090E00C942F2484E090E00C94212425 +:103C2000682F84E090E00C942F248091E20180FFC3 +:103C30000BC06091130185E0689FB0011124759558 +:103C40006795759567952BC081FF09C06091130139 +:103C500085E0689FB00111247595679520C082FFAB +:103C600007C06091130185E0689FB001112417C05F +:103C70009091E3019923D1F060911201961788F792 +:103C80002091130185E0289F90011124929FA001AB +:103C9000939F500D112470E0CA010E94F3236038F5 +:103CA000710540F46115710539F002C065E070E0FE +:103CB000862F08958FE7089581E008958091E201AD +:103CC00080FF08C06091110170E07595679575954A +:103CD000679521C081FF06C06091110170E0759564 +:103CE000679519C082FF04C06091110170E010C097 +:103CF0009091E3019923C1F0609110019617A0F70C +:103D000080911101899FC001112470E00E94F3236A +:103D10006038710528F46115710521F0862F08952A +:103D20008FE7089581E0089561E070E0F4CF803F6F +:103D300021F40E94151E819504C0813F29F40E9440 +:103D4000151E8093E6010895823F21F40E94151EFE +:103D5000819504C0833F29F40E94151E8093E501DC +:103D60000895893F19F40E945E1E05C08A3F31F410 +:103D70000E945E1E81958093E70108958B3F21F498 +:103D80000E945E1E819504C08C3F29F40E945E1E35 +:103D90008093E8010895843F21F48091E4018160DB +:103DA00017C0853F21F48091E401826011C0863FF5 +:103DB00021F48091E40184600BC0873F21F480915D +:103DC000E401886005C0883F31F48091E40180619E +:103DD0008093E40108958D3F21F48091E201816098 +:103DE0000BC08E3F21F48091E201826005C08F3FBD +:103DF00029F48091E20184608093E2010895803F7C +:103E000039F48091E60187FF6CC01092E60169C029 +:103E1000813F29F48091E6011816BCF362C09091AD +:103E2000E501823F29F497FF5CC01092E50159C07B +:103E3000833F19F41916CCF354C0893F41F48091A3 +:103E4000E70118160CF04DC01092E7014AC08A3FF6 +:103E500029F48091E70187FF44C0F6CF8B3F39F406 +:103E60008091E80187FF3DC01092E8013AC08C3F85 +:103E700029F48091E8011816BCF333C0843F21F483 +:103E80008091E4018E7F17C0853F21F48091E40189 +:103E90008D7F11C0863F21F48091E4018B7F0BC0A0 +:103EA000873F21F48091E401877F05C0883F31F48A +:103EB0008091E4018F7E8093E40113C08D3F21F453 +:103EC0008091E2018E7F0BC08E3F21F48091E20150 +:103ED0008D7F05C08F3F29F48091E2018B7F809315 +:103EE000E2018091E50181110EC08091E60181110E +:103EF0000AC08091E701811106C08091E80181111B +:103F000002C01092E301089584EE91E00E945510E2 +:103F10000E94EF1B9093E1018093E00108951F93AD +:103F2000CF93DF938091E0019091E1010E94FB1B10 +:103F3000AC019091E301992321F02091140130E02C +:103F400006C0209115018AE0289F90011124421794 +:103F5000530708F486C08091E501C091E601D09135 +:103F6000E7011091E801811107C0C11176C0D1119C +:103F700074C0111172C075C09F3F19F09F5F90937C +:103F8000E301181624F40E94151E8093E501809128 +:103F9000E50187FF05C00E94151E81958093E5010C +:103FA0001C1624F40E94151E8093E6018091E60100 +:103FB00087FF05C00E94151E81958093E6016091E0 +:103FC000E501662339F1C091E601CC2319F1772789 +:103FD00067FD7095872F972F0E94042323E333E317 +:103FE00043E35FE30E9468230E94D1226093E501CE +:103FF0006C2F772767FD7095872F972F0E940423DA +:1040000023E333E343E35FE30E9468230E94D1226A +:104010006093E6011D1624F40E945E1E8093E70162 +:104020008091E70187FF05C00E945E1E8195809305 +:10403000E701111624F40E945E1E8093E80180912E +:10404000E80187FF05C00E945E1E81958093E8010C +:10405000DF91CF911F910C94841F9F3F09F08ECF69 +:1040600096CFDF91CF911F910895E4EEF1E085E0C6 +:10407000DF011D928A95E9F71092E3011092E201A7 +:104080000895833081F128F4813059F08230D1F0E5 +:104090000895853009F449C0B8F1863009F456C056 +:1040A000089580911501262F30E0280F311D2F3FF4 +:1040B000310524F4680F6093150108958FEF809304 +:1040C0001501089580911401262F30E0280F311D2D +:1040D0002F3F310524F4680F6093140108958FEF8A +:1040E00080931401089580911301262F30E0280F4A +:1040F000311D2F3F310524F4680F6093130108959B +:104100008FEF80931301089580911201262F30E0E4 +:10411000280F311D2F3F310524F4680F60931201E1 +:1041200008958FEF80931201089580911101262F39 +:1041300030E0280F311D2F3F310524F4680F6093C4 +:10414000110108958FEF809311010895809110015E +:10415000262F30E0280F311D2F3F310524F4680F42 +:104160006093100108958FEF8093100108958330BC +:1041700011F128F4813049F0823091F008958530B2 +:1041800081F120F18630C1F1089580911501681701 +:1041900020F4861B8093150108951092150108954F +:1041A00080911401681720F4861B809314010895F0 +:1041B00010921401089580911301681720F4861B52 +:1041C00080931301089510921301089580911201B4 +:1041D000681720F4861B8093120108951092120133 +:1041E000089580911101681720F4861B80931101B6 +:1041F000089510921101089580911001681720F41C +:10420000861B8093100108951092100108950F935A +:104210001F938D3109F46BC008F03FC08E3009F454 +:104220007FC0C0F4873009F469C068F4863009F0B3 +:10423000B1C08091DA01817F8E7F8093DA0181E0C5 +:104240008093EA01A8C0883009F4A2C08B3009F439 +:104250009FC0A0C0863109F49BC078F4803109F476 +:1042600072C0813109F096C00E94D71490910D015F +:1042700081E0892780930D018BC0893109F488C0C2 +:104280008B3109F087C08091DA0181FB222720F968 +:1042900091E0922790FB81F94CC0853309F470C0FE +:1042A00048F4873209F46CC008F459C0893209F423 +:1042B00067C070C0833438F48A3308F04EC0883346 +:1042C00009F466C067C0833409F45AC0883409F021 +:1042D00061C00E94D7140FEF13ED20E3015010408E +:1042E0002040E1F700C000000E944A1C51C00E941B +:1042F0008B220E943E100E9437094AC09091DA0139 +:10430000892F8095817080FB90F929F096609860E4 +:104310009093DA0140C0997F977F9093DA0138C07B +:104320008091DA0182FB222720F991E0922790FB0D +:1043300082F98093DA01992359F18091DA01816041 +:104340008093DA0125C08091DA0183FB222720F9CE +:1043500091E0922790FB83F9ECCF895301C08D51F6 +:1043600041E050E060E070E08A019B0104C0000F72 +:10437000111F221F331F8A95D2F7C901B80104C04B +:1043800061E070E080E090E00E9497180E94D714EE +:1043900081E001C080E01F910F91089580E00895B1 +:1043A00080E00895CF93C82F8091EA01813079F0A1 +:1043B00018F08230E9F187C0E0910E01F0910F0111 +:1043C0008081813169F0823209F07FC009C0E091BB +:1043D0000E01F0910F018081813111F0823261F480 +:1043E0008C2F0E94CE21811104C08C2F0E940721A6 +:1043F0001DC081E090E01AC08C2F0E94D021811155 +:1044000014C0C43179F048F4CB3079F0C03109F0F0 +:1044100060C082E08093EA0108C0C93219F0C83355 +:1044200021F057C01092EA0154C081E0817053C05E +:10443000C93289F118F5C43171F1A8F4C73009F017 +:1044400046C08AE08093150194E19093140193E0B3 +:10445000909313018093120188E08093110188E208 +:104460008093100134C0CE51C63088F5EC2FF0E0B7 +:10447000E65DFE4F80818093E90129C0CE34E9F0EA +:1044800020F4CB3421F56AE013C0C13579F0C23590 +:10449000F1F461E00DC08091E901882319F01092D8 +:1044A000E90115C081E08093EA0115C061E006C012 +:1044B0008091E9010E9441200AC06AE08091E901EF +:1044C0000E94B72004C01092EA0180E004C081E09D +:1044D00002C080E0ABCFCF910895E1E8F0E08081A9 +:1044E000886080838081816080838FB7F89493E0B7 +:1044F0009093890090ED909388008FBF0895EFE628 +:10450000F0E08081826080830895EFE6F0E08081B2 +:104510008D7F80830895EFE6F0E0908182E0892727 +:10452000808308951F920F920FB60F9211242F933C +:104530003F934F935F936F937F938F939F93AF932B +:10454000BF93EF93FF938091EB019091EC01019663 +:104550009093EC018093EB01811103C082E00E94F3 +:104560003709E091EC01E695E695F0E0E45AFA4F60 +:10457000E4918091EB018E1303C080E00E94370923 +:10458000FF91EF91BF91AF919F918F917F916F912B +:104590005F914F913F912F910F900FBE0F901F9001 +:1045A000189504D06894B1118DC0089570D088F02A +:1045B0009F5790F0B92F9927B751A0F0D1F0660F0F +:1045C000771F881F991F1AF0BA95C9F712C0B1302A +:1045D00081F077D0B1E0089574C0672F782F8827D5 +:1045E000B85F39F0B93FCCF3869577956795B39569 +:1045F000D9F73EF490958095709561957F4F8F4FD8 +:104600009F4F0895E89409C097FB3EF490958095DC +:10461000709561957F4F8F4F9F4F9923A9F0F92F88 +:1046200096E9BB279395F695879577956795B79506 +:10463000F111F8CFFAF4BB0F11F460FF1BC06F5FEC +:104640007F4F8F4F9F4F16C0882311F096E911C0FE +:10465000772321F09EE8872F762F05C0662371F01F +:1046600096E8862F70E060E02AF09A95660F771F33 +:10467000881FDAF7880F9695879597F9089557FD63 +:104680009058440F551F59F05F3F71F04795880FC0 +:1046900097FB991F61F09F3F79F087950895121657 +:1046A00013061406551FF2CF4695F1DF08C0161603 +:1046B00017061806991FF1CF8695710561050894B4 +:1046C0000895E894BB2766277727CB0197F90895CB +:1046D0000BD078C069D028F06ED018F0952309F07F +:1046E0005AC05FC01124EECFCADFA0F3959FD1F36B +:1046F000950F50E0551F629FF001729FBB27F00D90 +:10470000B11D639FAA27F00DB11DAA1F649F6627E4 +:10471000B00DA11D661F829F2227B00DA11D621F33 +:10472000739FB00DA11D621F839FA00D611D221FED +:10473000749F3327A00D611D231F849F600D211DD1 +:10474000822F762F6A2F11249F5750408AF0E1F074 +:1047500088234AF0EE0FFF1FBB1F661F771F881FBD +:1047600091505040A9F79E3F510570F014C0AACF58 +:104770005F3FECF3983EDCF3869577956795B795A8 +:10478000F795E7959F5FC1F7FE2B880F911D9695D2 +:10479000879597F9089597F99F6780E870E060E042 +:1047A00008959FEF80EC089500240A9416161706CA +:1047B00018060906089500240A9412161306140612 +:1047C00005060895092E0394000C11F4882352F075 +:1047D000BB0F40F4BF2B11F460FF04C06F5F7F4F2D +:1047E0008F4F9F4F089597FB072E16F4009407D024 +:1047F00077FD09D00E940D2407FC05D03EF490956A +:1048000081959F4F0895709561957F4F0895EE0FA4 +:10481000FF1F0590F491E02D0994AA1BBB1B51E1E9 +:1048200007C0AA1FBB1FA617B70710F0A61BB70B20 +:10483000881F991F5A95A9F780959095BC01CD01C5 +:104840000895F999FECF92BD81BDF89A992780B558 +:104850000895A8E1B0E042E050E00C944924262FEE +:10486000F999FECF92BD81BDF89A019700B4021666 +:1048700039F01FBA20BD0FB6F894FA9AF99A0FBE14 +:1048800008950196272F0E9430240C942F24DC01D8 +:10489000CB01FC01F999FECF06C0F2BDE1BDF89A4B +:1048A000319600B40D9241505040B8F70895F894F5 +:0248B000FFCF38 +:1048B20002203909C709A40970093C090101C7018D +:1048C20028080A03140A3F4D36391D05D0049A04FC +:1048D2006104F4030D0426043F04010203040506E7 +:0448E20007080900BA +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/plover/keymap.c b/keyboards/ergodox_ez/keymaps/plover/keymap.c new file mode 100644 index 000000000..a991e6082 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/plover/keymap.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/keyboards/ergodox_ez/keymaps/plums/compiled.hex b/keyboards/ergodox_ez/keymaps/plums/compiled.hex new file mode 100644 index 000000000..5d928815a --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/plums/compiled.hex @@ -0,0 +1,1165 @@ +:100000000C9483020C94C7020C94C7020C94C70290 +:100010000C94C7020C94C7020C94C7020C94C7023C +:100020000C94C7020C94C7020C94960D0C94680EA5 +:100030000C94C7020C94C7020C94C7020C94C7021C +:100040000C94C7020C9472220C94C7020C94C70241 +:100050000C94C7020C94051C0C94C7020C94C702A4 +:100060000C94C7020C94C7020C94C7020C94C702EC +:100070000C94C7020C94C7020C94C7020C94C702DC +:100080000C94C7020C94C7020C94C7020C94C702CC +:100090000C94C7020C94C7020C94C7020C94C702BC +:1000A0000C94C7020C94C7020C94C702D50EF70E2D +:1000B000E50FF70EE50F3C0F5F0FE50FB40FC70F0D +:1000C00096129612C512C512FB121B134C144C1437 +:1000D00026134C14D613D6133D144C144C1446144A +:1000E000E313E313E313E313E313E313E313E31360 +:1000F000E313E313E313E313E313E313E313E31350 +:10010000F5130214091410141A1401E40135023510 +:1001100002E40001E00104020402E00000C801C89A +:1001200035002B00E300E100002000001E00140059 +:1001300004001D002F024D001F001A0016001B00B6 +:1001400026022900200008000700060031022A00CC +:10015000210015000900190033024A00220017008F +:100160000A0005000000E2083E002F0000000154D4 +:100170000000E200100F3000000002540000E60012 +:1001800023001C000B0011000000AE00240018002A +:100190000D0010002D004B0025000C000E00360055 +:1001A0002E002C00260012000F0037002702280026 +:1001B000270013003300380030024E00A800310041 +:1001C0003400E500012000000100010001000100F1 +:1001D000010000003A001E0220022202010001007C +:1001E0003B001F0221022302010001003C002F02FC +:1001F00026022F00010001003D00300227023000DE +:10020000010001003E00310235003502000001000E +:1002100001000100000001000000010001000100D8 +:1002200000000100000001003F000100500001003B +:100230000000010040000100510001000100010028 +:1002400041000100520001000100010042000100D4 +:100250004F00010001000100430001000100010006 +:100260000100010044004500010001000100000000 +:100270000100010001000100A900000001000100CF +:1002800001000100AA0001000100010001000100BD +:10029000AC0001000100010001000100AB00010001 +:1002A0000100010001000100010001000100010046 +:1002B0000100010000000100010001000000010038 +:1002C0000000010001000100000001000000010029 +:1002D00001000100F2000100000001000100010026 +:1002E000F1000100F400010001000100F000010034 +:1002F000F500B60001000100F3000100010001005B +:1003000001000100010001000100010001000100E5 +:1003100001000100010000001603450072006700A3 +:100320006F0044006F007800200045005A00000074 +:1003300016034500720067006F0044006F007800EC +:10034000200045005A0000000403090409026D0062 +:10035000040100A0FA0904000001030101000921C1 +:1003600011010001223F000705810308000A09046A +:1003700001000103010200092111010001224D00C9 +:100380000705820308000A090402000103000000B7 +:100390000921110100012236000705830308000A24 +:1003A00009040300010300000009211101000122DA +:1003B000390007058403100001120110010000003C +:1003C00008EDFE071301000102000105010906A165 +:1003D00001050719E029E715002501950875018138 +:1003E0000205081901290595057501910295017508 +:1003F00003910105071900297715002501957875E6 +:10040000018102C005010980A101850216010026B3 +:10041000B7001A01002AB700751095018100C005C8 +:100420000C0901A1018503160100269C021A010096 +:100430002A9C02751095018100C005010902A101E5 +:100440000901A100050919012905150025019505D6 +:10045000750181029501750381010501093009319A +:100460001581257F95027508810609381581257F3C +:10047000950175088106050C0A38021581257F95BE +:100480000175088106C0C005010906A1010507190B +:10049000E029E71500250195087501810295017590 +:1004A0000881010508190129059505750191029535 +:1004B00001750391010507190029FF150025FF9516 +:1004C0000675088100C00000000000000000000068 +:1004D00000010204060A0F17202C3A4A5D71879D1D +:1004E000B3C7DAE9F5FCFFFCF5E9DAC7B39D87711C +:1004F0005D4A3A2C20170F0A060402010000000092 +:1005000000000000000011241FBECFEFDAE0DEBFC4 +:10051000CDBF04B603FE24C08091FB019091FC0185 +:10052000A091FD01B091FE018730904BA740B04BE8 +:10053000B9F41092FB011092FC011092FD0110928F +:10054000FE0114BE84B7877F84BF88E10FB6F8949C +:1005500080936000109260000FBEE0E0FFE3099519 +:1005600011E0A0E0B1E0E2E7F8E402C005900D92EE +:10057000A433B107D9F711E0A4E3B1E001C01D92A3 +:10058000AB3FB107E1F70E94DA0A0C9437240C94D0 +:1005900000001092B9008AE08093B800089594EAB0 +:1005A0009093BC009091BC0097FFFCCF9091B90054 +:1005B000987F983021F0903111F081E00895809378 +:1005C000BB0084E88093BC008091BC0087FFFCCF17 +:1005D0008091B900887F883111F0803471F780E014 +:1005E000089584E98093BC008091BC0084FDFCCF19 +:1005F00008958093BB0084E88093BC008091BC0088 +:1006000087FFFCCF9091B900987F81E0983209F480 +:1006100080E0089584E88093BC008091BC0087FF4F +:10062000FCCF8091BB00089580910101811115C01C +:1006300080E40E94CF028093010181110CC082E10D +:100640000E94F90280930101811105C08FEF0E9481 +:10065000F902809301010E94F10284B1807F84B984 +:1006600085B1807F85B98AB1837F8AB98BB1837F59 +:100670008BB93E98469808950E94CF04809301015B +:100680000E94140380B38C7080BB81B3836F81BBE5 +:10069000A5E3B1E0E3E4F1E08EE08E0F11921D924C +:1006A0008E13FCCF0C94B904BF92CF92DF92EF92DD +:1006B000FF920F931F93CF93DF93809101018823C3 +:1006C00079F0809134018F5F80933401811108C0EB +:1006D0000E94CF0480930101811102C00E94610435 +:1006E00005E311E0C0E0D0E0DD24D39482E0C82E21 +:1006F000EE24E394F12CC730D10500F5809101017F +:10070000811164C080E40E94CF02809301018111B5 +:1007100012C082E10E94F9028093010181110BC095 +:10072000C7010C2E01C0880F0A94EAF780950E9439 +:10073000F902809301010E94F10248C0CA30A1F081 +:1007400028F4C83059F0C93061F005C0CC3089F0C8 +:1007500070F0CD3089F0209A289810C0219A2998FD +:100760000DC0229A2A980AC0239A2B9807C0529A41 +:1007700001C0539A5B9802C03E9A469890EA9A95B7 +:10078000F1F79FB1799902C082E001C080E09170D9 +:100790009D25982B7C9902C084E001C080E0892BC4 +:1007A0007D9902C038E001C030E0832B7E9902C001 +:1007B00020E101C020E0822B9FB19095991F9927DD +:1007C000991F9295990F907E892B0FC080910101FE +:1007D000811149C080E40E94CF02809301018823E7 +:1007E00079F1B12C0E94F1028B2DF80190819817BC +:1007F00019F08083C09200010E94140321960F5FBC +:100800001F4FCE30D10509F076CF809100018823AB +:1008100061F1815080930001882339F08FE99FE0D6 +:100820000197F1F700C0000020C0A3E4B1E0E5E3C8 +:10083000F1E0CF01825F91919D938E13FCCF15C0A3 +:1008400083E10E94F902809301018111CACF81E402 +:100850000E94CF02809301018111C3CF0E940A033D +:10086000B82EB094BFCF80E0C0CF0E945F0481E07B +:10087000DF91CF911F910F91FF90EF90DF90CF907C +:10088000BF900895E82FF0E0ED5BFE4F8081089562 +:1008900008950F931F93CF93DF93C3E4D1E010E04B +:1008A0000C2F025F899190E00E942B1B180F0C13F4 +:1008B000F9CF812FDF91CF911F910F9108950C9463 +:1008C0005A0556985E9825982D9826982E98279820 +:1008D0002F988FEF90E090938900809388009093F9 +:1008E0008B0080938A0090938D0080938C00259AD2 +:1008F0002D9A2FEF80E792E0215080409040E1F761 +:1009000000C00000269A2E9A2FEF80E792E0215037 +:1009100080409040E1F700C00000279A2F9A2FEF07 +:1009200080E792E0215080409040E1F700C0000055 +:1009300025982D982FEF80E792E02150804090403D +:10094000E1F700C0000026982E982FEF80E792E094 +:10095000215080409040E1F700C0000027982F9878 +:1009600056985E9825982D9826982E9827982F9817 +:10097000089589EA8093800089E08093810024981B +:100980002C983F988AB18F748AB96E98479A8BB128 +:10099000806B8BB9769A0E9461040C94590580E2B1 +:1009A000809301018091510181110EC00E94C90202 +:1009B00081E0809351012FEF83ED90E3215080403F +:1009C0009040E1F700C0000080E40E94CF028093D5 +:1009D000010181112EC00E94F90280930101811151 +:1009E00028C00E94F90280930101811122C08FE387 +:1009F0000E94F9028093010181111BC00E94F10243 +:100A000080E40E94CF0280930101811112C08CE02A +:100A10000E94F9028093010181110BC00E94F9022A +:100A200080930101811105C08FE30E94F902809338 +:100A300001010E94F102809101010895CF93DF939B +:100A4000EC01662319F06130C9F015C09A818D81DF +:100A5000992349F0982F907F21F080FF22C08F705A +:100A60008D8380EE17C0807F19F480EE0E94021201 +:100A70008D818F708D8380E090E018C09A818D8188 +:100A8000992359F0982F907F21F080FF0DC08F702F +:100A90008D8384EE0E943A11EECF807F49F784EE79 +:100AA000E5CF83E191E002C08AE091E0DF91CF9150 +:100AB000089508956091BD017091BE018091BF01BC +:100AC0009091C0010E94371B56985E9825982D98EA +:100AD00026982E9827982F98813019F0823021F08F +:100AE0000895259A2D9A0895269A2E9A089581E0C0 +:100AF000089581E008950C94790508950F931F934C +:100B0000CF93DF938C01FC01C081D181CE010E9483 +:100B1000B019BE010E942706EC01B8010E947B05B6 +:100B2000882309F48DC0F8018281882309F44AC022 +:100B300080915D0181111FC0C431F0E5DF0709F02C +:100B400051C00E947D0581E080935D010E94CF1B12 +:100B500090935C0180935B011092540110925601B6 +:100B600010925501109258011092570110925A019B +:100B70001092590165C080915B0190915C010E94C7 +:100B8000DB1B883C910570F480915401E82FF0E064 +:100B9000EE0FFF1FEB5AFE4FD183C0838F5F809310 +:100BA00054014EC0C43880E5D80721F0C538D0457F +:100BB00001F13AC0F8018281882341F0109252017C +:100BC00082E01EC0C438E0E5DE0759F5809152018D +:100BD000811106C086E20E943A1186E20E9402124A +:100BE00082E01CC0C438F0E5DF0741F3C538D045CA +:100BF000D9F4F8018281882331F01092530180E208 +:100C00000E9451121DC080915301811106C087E2DC +:100C10000E943A1187E20E94021280E20E9458125A +:100C20000FC0C538D04529F381E0809352018093ED +:100C30005301C801DF91CF911F910F910C9477055B +:100C400080E0DF91CF911F910F910895089596E074 +:100C5000799FF001112494E5899FE00DF11D112485 +:100C6000E60FF11DEE0FFF1FE05EFE4F85919491A0 +:100C70000895880F991FFC01E456F04085919491E6 +:100C80000895880F991FFC01E45EFE4F85919491B1 +:100C900008950F931F93CF93DF93EC01811520E309 +:100CA000920750F5C11580E2D80708F0C3C0CB3BCE +:100CB000D10590F4C83AD10508F06AC0C53AD1050B +:100CC00008F05BC0C430D10508F0D0C1219709F00D +:100CD000CAC101E010E00AC2CF3FD10511F008F00F +:100CE000C5C1C03FD10508F0A2C0CE01805E910908 +:100CF000089708F4BBC1B7C1C13090E5D90709F422 +:100D0000A2C020F5C0318FE4D80770F4C11590E47B +:100D1000D90708F094C0C11521E3D20708F0A3C198 +:100D2000DD278E01106CE2C1C115D04509F09BC1D1 +:100D30000E94B7148FEF94E32CE081509040204044 +:100D4000E1F700C000000E942A1CD0C1C11597E540 +:100D5000D90758F4C03121E5D20708F01CC1C431CD +:100D600080E5D80708F475C07EC1CE019057811583 +:100D7000904108F078C1DF7073C1C53AD10509F41C +:100D800077C1C63AD10509F076C102E810E4AEC1D8 +:100D9000C83AD10509F472C1C93AD10509F471C143 +:100DA000CA3AD10509F470C1CB3AD10509F46FC133 +:100DB000CC3AD10509F46EC1CD3AD10509F46DC123 +:100DC000C03BD10509F46CC1CE3AD10509F46BC121 +:100DD000CF3AD10509F46AC1C13BD10509F469C113 +:100DE000C23BD10509F468C1C33BD10509F467C111 +:100DF000C43BD10509F466C1C53BD10509F465C101 +:100E0000C63BD10509F464C1C73BD10509F463C1F0 +:100E1000C83BD10509F462C1C93BD10509F461C1E0 +:100E2000CA3BD10509F460C100E014E45FC18E0142 +:100E300010655CC1CE019F700E94410658C1DF70F1 +:100E40008E01106A53C18091DA0181608093DA01CA +:100E50004DC10E94CF1D811102C00E94B51D0E948C +:100E6000EC1D90E09093FB018093FA01C23080E585 +:100E7000D80721F48091FA01816086C0C43090E5E2 +:100E8000D90721F48091FA0182607EC0C63020E546 +:100E9000D20721F48091FA01846076C0C83080E5E1 +:100EA000D80719F48091FA0127C0CA3090E5D90714 +:100EB00021F48091FA01806167C0CC3020E5D2072F +:100EC00021F48091FA0180625FC0CE3080E5D807BE +:100ED00021F48091FA01806457C0C03190E5D907B0 +:100EE00021F48091FA0180684FC0C23120E5D20719 +:100EF00029F48091FA018460886046C0C33080E59F +:100F0000D80721F48091FA018E7F3EC0C53090E56C +:100F1000D90721F48091FA018D7F36C0C73020E5D2 +:100F2000D20721F48091FA018B7F2EC0C93080E571 +:100F3000D80719F48091FA0126C0CB3090E5D90783 +:100F400021F48091FA018F7E1FC0CD3020E5D207B9 +:100F500021F48091FA018F7D17C0CF3080E5D8074A +:100F600021F48091FA018F7B0FC0C13190E5D90740 +:100F700021F48091FA018F7707C0C331D04531F455 +:100F80008091FA018B7F877F8093FA018091FA012B +:100F90000E94F01DABC08D2F99278F70992781304B +:100FA0009105D9F49E012370332702C0880F991F41 +:100FB0002A95E2F79C688E0144E0000F111F4A95C4 +:100FC000E1F700271370802B912B53E0CC0FDD1F2E +:100FD0005A95E1F7C076DD272FC08230910531F4B4 +:100FE000DC2FCC278E01016F106A80C08330910501 +:100FF00069F4CE018370992701E010E002C0000F70 +:10100000111F8A95E2F7C8019C680FC084309105D2 +:10101000B9F4CE018370992701E010E002C0000FFF +:10102000111F8A95E2F7C8019A6823E0CC0FDD1FF3 +:101030002A95E1F7C07ED7708C010C2B1D2B56C072 +:101040008530910531F4DC2FCC278E01046F106AB6 +:101050004DC0069709F04AC0CF71DD27DC2FCC27A1 +:101060008E01106243C000E010E040C08E013EC01F +:1010700001E810E43BC003E810E438C002EE14E4D9 +:1010800035C009EE14E432C00AEE14E42FC005EBBB +:1010900014E42CC006EB14E429C007EB14E426C0CA +:1010A0000CEC14E423C00DEC14E420C003E815E4B8 +:1010B0001DC00AE815E41AC002E915E417C004E9E6 +:1010C00015E414C001E216E411C003E216E40EC0F8 +:1010D00004E216E40BC005E216E408C006E216E4DA +:1010E00005C007E216E402C00AE216E4C801DF9177 +:1010F000CF911F910F91089596E0799FF0011124EF +:1011000094E5899FE00DF11D1124E60FF11DEE0F0E +:10111000FF1FE05EFE4F85919491803E9105E0F4C3 +:10112000803C910558F58133910509F46FC048F46E +:101130008932910509F463C08A32910509F46DC0C2 +:1011400072C089339105E9F082389105D1F0853379 +:10115000910509F44DC067C0833E910581F138F4D3 +:10116000803E9105B9F0823E9105D9F05CC0863E83 +:10117000910561F1873E9105A1F155C00E943906A4 +:1011800008952091FA0120FD02C021FF4CC080EE9D +:1011900090E049C08091FA0180FFF9CF89E390E0A7 +:1011A00042C08091FA0182FF0EC08091FA0184FF53 +:1011B00003C080E090E037C083EE90E034C08091BF +:1011C000FA0182FFF2CF82EE90E02DC08091FA0109 +:1011D00083FF0BC08091FA0184FDEBCF87EE90E096 +:1011E00022C08091FA0183FFF5CF86EE90E01BC00C +:1011F0008091FA0185FF07C089E290E014C08091D8 +:10120000FA0185FFF9CF85E390E00DC08091FA01E6 +:1012100086FF07C08AE290E006C08091FA0186FF4F +:10122000F9CF81E390E00E944906089508950C9457 +:10123000160980916E010895CF93DF9300D01F921D +:10124000CDB7DEB79C018091F101843019F593E0B0 +:1012500099833B832A839093E9008FEF9091E80074 +:10126000815095FD06C095ED9A95F1F7000081112A +:10127000F5CF8091E80085FF0DC040E050E063E0CD +:1012800070E0CE0101960E94860B8091E8008E7777 +:101290008093E8000F900F900F90DF91CF91089509 +:1012A000CF93DF9300D01F92CDB7DEB72091F1012D +:1012B000243021F522E029839B838A8383E0809375 +:1012C000E9008FEF9091E800815095FD06C095ED03 +:1012D0009A95F1F700008111F5CF8091E80085FF24 +:1012E0000DC040E050E063E070E0CE0101960E9446 +:1012F000860B8091E8008E778093E8000F900F9026 +:101300000F90DF91CF9108952091F1012430F1F4F5 +:1013100022E02093E9002FEF3091E800215035FDC5 +:1013200006C035ED3A95F1F700002111F5CF209177 +:10133000E80025FF0BC040E050E065E070E00E944F +:10134000860B8091E8008E778093E8000895CF9314 +:10135000DF93EC019091F101943009F046C0809147 +:101360000C018823D9F080910D018823B9F0909366 +:10137000E9008FEF9091E800815095FD06C095E15E +:101380009A95F1F700008111F5CF8091E80085FF73 +:101390002CC040E050E060E170E017C081E0809335 +:1013A000E9008FEF9091E800815095FD06C095ED22 +:1013B0009A95F1F700008111F5CF8091E80085FF43 +:1013C00014C040E050E068E070E0CE010E94860B5F +:1013D0008091E8008E778093E80080E1FE01AEE521 +:1013E000B1E001900D928A95E1F7DF91CF910895D8 +:1013F0008091F001811109C00E941B0D0E94780D9F +:101400008091E20084608093E20008951092F001E0 +:10141000089508950C945F220E94C01B0E946522CB +:101420000E941E100C94170942E061EC81E00E94BA +:10143000950C42E061EC82E00E94950C42E061EC88 +:1014400083E00E94950C42E161EC84E00C94950CE1 +:101450008091F301833009F455C030F4813071F08C +:10146000823009F48EC008958A3009F47AC08B3036 +:1014700009F460C0893009F09CC020C08091F2015D +:10148000813A09F096C08091E800877F8093E80058 +:101490008091F6019091F701892B21F460E18EE5AE +:1014A00091E003C060E080E090E070E00E94D10B2A +:1014B0008091E8008B778093E80008958091F20195 +:1014C000813209F076C08091F6019091F701009782 +:1014D00019F0039709F06DC08091E800877F809331 +:1014E000E8008091E80082FD05C08091F101811142 +:1014F000F8CF5FC08091F10080936E018091E80089 +:101500008B7753C08091F201813A09F052C08091EB +:10151000F6019091F701892B09F04BC08091E8000A +:10152000877F8093E8008091E80080FFFCCF809166 +:101530000C0136C08091F2018132D9F58091F6011B +:101540009091F701892BA9F58091E800877F80931E +:10155000E8000E94CA0C8091F40180930C010C9465 +:10156000B7148091F201813221F58091E800877FE4 +:101570008093E8000E94CA0C8091F50180936F016E +:1015800008958091F201813AA1F48091E800877F6B +:101590008093E8008091E80080FFFCCF80916F018C +:1015A0008093F1008091E8008E778093E8000C949E +:1015B000CA0C089584B7877F84BF88E10FB6F8947A +:1015C00080936000109260000FBE90E080E80FB63C +:1015D000F89480936100909361000FBE0E946D109B +:1015E0000E941B0D0E94780D8091E2008460809320 +:1015F000E20078940E94FE0F0E946F1082E091E05A +:101600000E9419100E944D228091F101853069F4E9 +:101610000E94871B8091EF018823B1F30E94B21BC7 +:10162000882391F30E94700BEFCF0E947510ECCFCE +:10163000292F332723303105C9F064F421303105D7 +:1016400081F02230310509F043C08DE690E02CE4B2 +:1016500033E042C021323105F1F02232310541F14F +:1016600037C082E190E029EB33E036C09927813022 +:10167000910541F08230910541F0892B49F5E8E46C +:10168000F3E005C0E0E3F3E002C0E8E1F3E08491B9 +:1016900090E09F0121C06430D8F4E62FF0E0EE0F17 +:1016A000FF1FEE5DFE4F2081318189E090E014C084 +:1016B000643070F470E0FB01EE0FFF1FE65EFE4F3A +:1016C00020813181FB01EA5EFE4F808190E004C001 +:1016D00080E090E020E030E0FA013183208308953B +:1016E00080E189BD82E189BD09B400FEFDCF809112 +:1016F000D8008F7D8093D8008091E0008260809335 +:10170000E0008091E00081FDFCCF0895CF92DF9250 +:10171000EF92FF920F931F93CF93DF93EC018B0116 +:101720006A010E94E90C811133C0C114D10439F05F +:10173000F60180819181081B190BC80FD91FE12C7C +:10174000F12C0115110519F18091E80085FD16C0F5 +:101750008091E8008E778093E800C114D10449F0AD +:10176000F60180819181E80EF91EF182E08285E028 +:101770000FC00E94E90C882321F30AC0899180934D +:10178000F10001501109FFEFEF1AFF0ADACF80E0F4 +:10179000DF91CF911F910F91FF90EF90DF90CF904D +:1017A00008952091F8013091F9012617370748F084 +:1017B0006115710539F42091E8002E772093E80037 +:1017C00001C0B90140E061157105A9F12091F10155 +:1017D000222309F443C0253009F442C02091E800D7 +:1017E00023FD40C02091E80022FD32C02091E80096 +:1017F00020FFE9CF4091F3002091F20030E0342B3C +:10180000FC01CF016115710559F02830310540F414 +:1018100081918093F100615071092F5F3F4FF1CFAB +:1018200041E02830310509F040E02091E8002E77B2 +:101830002093E800C8CF4111C9CF0AC08091F101BF +:10184000882361F0853061F08091E80083FD0AC053 +:101850008091E80082FFF2CF80E0089582E0089551 +:1018600083E0089581E008952091F8013091F90115 +:101870002617370748F06115710539F42091E80003 +:101880002E772093E80001C0B901FC0120E061152A +:10189000710591F18091F101882309F440C08530F0 +:1018A00009F43FC08091E80083FD3DC08091E800CD +:1018B00082FD2FC08091E80080FFE9CF2091F300E6 +:1018C0008091F20090E0922B6115710559F08830FB +:1018D000910540F424912093F100319661507109F3 +:1018E0000196F2CF21E0089709F020E08091E8000E +:1018F0008E778093E800CBCF2111CCCF0AC08091A6 +:10190000F101882361F0853061F08091E80083FD6A +:101910000AC08091E80082FFF2CF80E0089582E063 +:10192000089583E0089581E00895982F973058F541 +:101930009093E900981739F07091EC002091ED0038 +:101940005091F00003C0242F762F50E021FF19C0E2 +:101950003091EB003E7F3093EB003091ED003D7F06 +:101960003093ED003091EB0031603093EB007093D9 +:10197000EC002093ED005093F0002091EE0027FF43 +:1019800007C09F5FD3CF8F708093E90081E00895F7 +:1019900080E008958091F20187FF11C08091E800F6 +:1019A00082FD05C08091F1018111F8CF11C08091B5 +:1019B000E8008B770BC08091F101882349F080917A +:1019C000E80080FFF8CF8091E8008E778093E800F0 +:1019D00008952091E4003091E50095E64091EC00F7 +:1019E000842F817040FF22C08091E80080FD1CC0E0 +:1019F0008091F101882391F0853091F08091EB0086 +:101A000085FD10C04091E4005091E5004217530756 +:101A100029F39A01915011F784E0089582E0089526 +:101A200083E0089581E0089580E008954091E80002 +:101A300042FFDECF08950E94890D0E94910DE0EED5 +:101A4000F0E0808181608083E8EDF0E080818F7735 +:101A5000808319BCA7EDB0E08C918E7F8C93808140 +:101A60008F7E80831092F00108950F931F93CF9380 +:101A7000DF930E94890D0E94910DC8EDD0E088810E +:101A80008F77888388818068888388818F7D888329 +:101A900019BC1092F1011092ED011092EF01109219 +:101AA000EE0100EE10E0F80180818B7F8083888159 +:101AB0008160888342E060E080E00E94950CE1EE66 +:101AC000F0E080818E7F8083E2EEF0E080818160B3 +:101AD0008083808188608083F80180818E7F80830D +:101AE000888180618883DF91CF911F910F91089544 +:101AF000E8EDF0E080818F7E8083E7EDF0E080818B +:101B00008160808384E082BF81E08093F0010C9447 +:101B1000350DE8EDF0E080818E7F80831092E20049 +:101B200008951092DA001092E10008951F920F922A +:101B30000FB60F9211242F933F934F935F936F93A0 +:101B40007F938F939F93AF93BF93EF93FF93809176 +:101B5000E10082FF0BC08091E20082FF07C080910C +:101B6000E1008B7F8093E1000E94FD0F8091DA00FD +:101B700080FF1FC08091D80080FF1BC08091DA00D9 +:101B80008E7F8093DA008091D90080FF0DC080E1C4 +:101B900089BD82E189BD09B400FEFDCF81E080935B +:101BA000F1010E94F80905C019BC1092F1010E94D0 +:101BB000060A8091E10080FF19C08091E20080FF59 +:101BC00015C08091E2008E7F8093E2008091E20058 +:101BD00080618093E2008091D80080628093D80079 +:101BE00019BC85E08093F1010E940A0A8091E1000E +:101BF00084FF30C08091E20084FF2CC080E189BD69 +:101C000082E189BD09B400FEFDCF8091D8008F7DAF +:101C10008093D8008091E1008F7E8093E1008091D5 +:101C2000E2008F7E8093E2008091E20081608093E9 +:101C3000E2008091ED01882311F084E007C08091DB +:101C4000E30087FD02C081E001C083E08093F101E1 +:101C50000E940C0A8091E10083FF29C08091E2007C +:101C600083FF25C08091E100877F8093E10082E0BF +:101C70008093F1011092ED018091E1008E7F8093BD +:101C8000E1008091E2008E7F8093E2008091E2008B +:101C900080618093E20042E060E080E00E94950C69 +:101CA0008091F00088608093F0000E94090AFF9103 +:101CB000EF91BF91AF919F918F917F916F915F91C4 +:101CC0004F913F912F910F900FBE0F901F9018953D +:101CD0001F920F920FB60F9211242F933F934F93A1 +:101CE0005F936F937F938F939F93AF93BF93CF93A4 +:101CF000DF93EF93FF93C091E900CF708091EC00E8 +:101D0000D82FD17080FDD0E81092E9008091F000CA +:101D1000877F8093F00078940E94AC0E1092E900C7 +:101D20008091F00088608093F000CD2BCF70C0933D +:101D3000E900FF91EF91DF91CF91BF91AF919F911A +:101D40008F917F916F915F914F913F912F910F9064 +:101D50000FBE0F901F9018951F93CF93DF93CDB7B1 +:101D6000DEB7AA970FB6F894DEBF0FBECDBFE2EF85 +:101D7000F1E088E08E0F9091F10091938E13FBCFEC +:101D80000E94280A8091E80083FF1FC18091F20120 +:101D90009091F301492F50E04A30510508F015C1E8 +:101DA000FA01EA5AFF4F0C94E723803881F0823819 +:101DB00009F00BC18091F6018F708093E90080914A +:101DC000EB0085FB882780F91092E90006C080911E +:101DD000EE019091EF01911182609091E800977F60 +:101DE0009093E8008093F1001092F100C8C0282F72 +:101DF0002D7F09F0EAC0882319F0823061F0E5C038 +:101E00008091F401813009F0E0C0933009F080E066 +:101E10008093EF012BC08091F401811127C0809144 +:101E2000F6018F7009F4D1C08093E9002091EB0096 +:101E300020FF1CC0933021F48091EB00806214C01D +:101E40009091EB0090619093EB0021E030E0A901CC +:101E500002C0440F551F8A95E2F74093EA001092A2 +:101E6000EA008091EB0088608093EB001092E9001B +:101E70008091E800877F86C08111A7C01091F4018E +:101E80001F778091E3008078812B8093E30080911D +:101E9000E800877F8093E8000E94CA0C8091E800E8 +:101EA00080FFFCCF8091E30080688093E3001111F4 +:101EB00002C082E001C083E08093F10186C08058B7 +:101EC000823008F082C08091F4019091F5018C3D40 +:101ED00053E0950779F583E08A838AE289834FB7D7 +:101EE000F894DE01139620E03EE051E2E32FF0E0AB +:101EF00050935700E49120FF03C0E295EF703F5FDD +:101F0000EF708E2F90E0EA3010F0C79601C0C096B7 +:101F10008D939D932F5F243149F74FBF8091E80047 +:101F2000877F8093E8006AE270E0CE0101960E940C +:101F3000D10B14C0AE014F5F5F4F6091F6010E945C +:101F4000180BBC01009709F440C09091E800977FFE +:101F50009093E80089819A810E94340C8091E80076 +:101F60008B778093E80031C0803879F58091E80064 +:101F7000877F8093E8008091ED018093F10080914C +:101F8000E8008E778093E8000E94CA0C1EC0811181 +:101F90001CC09091F4019230C0F48091E800877FDA +:101FA0008093E8009093ED010E94CA0C8091ED01AE +:101FB000811106C08091E30087FD02C081E001C06D +:101FC00084E08093F1010E94140A8091E80083FF6D +:101FD0000AC08091E800877F8093E8008091EB0041 +:101FE00080628093EB00AA960FB6F894DEBF0FBE16 +:101FF000CDBFDF91CF911F9108950895CF93809128 +:10200000F1018823A1F0C091E900CF709091EC001C +:10201000892F817090FD80E8C82B1092E900809193 +:10202000E80083FD0E94AC0ECF70C093E900CF9111 +:10203000089590937501809374010895E09174015F +:10204000F0917501309721F00190F081E02D099415 +:1020500080E00895E0917401F0917501309721F0CE +:102060000280F381E02D09940895E0917401F091CC +:102070007501309721F00480F581E02D09940895D1 +:1020800020917201309173018217930771F0909340 +:10209000730180937201E0917401F09175013097A2 +:1020A00021F00680F781E02D0994089520917001B8 +:1020B000309171018217930771F0909371018093B1 +:1020C0007001E0917401F0917501309721F0008466 +:1020D000F185E02D0994089508950C946C100E94E8 +:1020E000C61B0E943C030C94881C9F92AF92BF9227 +:1020F000CF92DF92EF92FF920F931F93CF93DF93D4 +:1021000000D000D000D0CDB7DEB70E9454030DE060 +:1021100010E0AA24A394B12C902E802F0E94420498 +:10212000980129583E4F6901F901F080F826A1F481 +:102130000150110988F78FEF89838A831B820E94DF +:10214000CF1B8160782F9D838C8349815A816B815D +:102150008D810E940C112FC09091DA0191FF04C073 +:102160008E830E9448048E8125E030E0A501022E76 +:1021700001C0440F0A94EAF7E42E4F21C1F02983ED +:102180009A828E2191E009F490E09B830E94CF1BFC +:102190008160782F9D838C8349815A816B818D81E9 +:1021A0000E940C11F6018081E826E08204C02150D3 +:1021B0003109E0F6BDCF0E946F1F109176010E9499 +:1021C0001E101817B9F00E941E10809376012696F3 +:1021D0000FB6F894DEBF0FBECDBFDF91CF911F9138 +:1021E0000F91FF90EF90DF90CF90BF90AF909F90B6 +:1021F0000C94170926960FB6F894DEBF0FBECDBF1C +:10220000DF91CF911F910F91FF90EF90DF90CF90D2 +:10221000BF90AF909F900895CF93DF93CDB7DEB777 +:102220002B970FB6F894DEBF0FBECDBF4F835887F4 +:1022300069877A878B87DE01119686E0FD0111920E +:102240008A95E9F785E0FE01379601900D928A950F +:10225000E1F749815A816B817C818D819E810E9449 +:1022600055172B960FB6F894DEBF0FBECDBFDF918A +:10227000CF910895CF93882309F4C2C0C82F823824 +:1022800059F40E941E1081FDBBC089E30E942F1AE1 +:102290000E94FC1A89E30CC0833879F40E941E1056 +:1022A00080FDAEC083E50E942F1A0E94FC1A83E5D0 +:1022B0000E94711ACF910C94FC1A843859F40E9430 +:1022C0001E1082FD9DC087E40E942F1A0E94FC1AF6 +:1022D00087E4EECF8CEF8C0F813A48F48C2F0E946C +:1022E000B22181118DC08C2F0E942F1AE3CF80E282 +:1022F0008C0F883048F4C77081E001C0880FCA9500 +:10230000EAF70E94B51AD6CF8BE58C0F833078F4AC +:10231000C53A29F0C63A31F083E890E005C081E87B +:1023200090E002C082E890E0CF910C94401088E5E4 +:102330008C0F833108F064C0C83A39F1C93A41F1D1 +:10234000CA3A49F1CB3A51F1CC3A59F1CD3A61F15F +:10235000C03B69F1CE3A71F1CF3A79F1C13B81F1DD +:10236000C23B89F1C33B91F1C43B99F1C53BA1F15B +:10237000C63BA9F1C73BB1F1C83BB9F1C93BC1F1BB +:10238000CA3BC9F180E090E038C082EE90E035C0F1 +:1023900089EE90E032C08AEE90E02FC085EB90E0AD +:1023A0002CC086EB90E029C087EB90E026C08CEC37 +:1023B00090E023C08DEC90E020C083E891E01DC048 +:1023C0008AE891E01AC082E991E017C084E991E0BF +:1023D00014C081E292E011C083E292E00EC084E278 +:1023E00092E00BC085E292E008C086E292E005C070 +:1023F00087E292E002C08AE292E0CF910C945610FC +:10240000CF910895882309F44BC0823859F40E9473 +:102410001E1081FF45C089E30E942F1A0E94FC1AFA +:1024200089E30CC0833871F40E941E1080FF38C00D +:1024300083E50E942F1A0E94FC1A83E50E94711AFC +:102440000C94FC1A843859F40E941E1082FF28C094 +:1024500087E40E942F1A0E94FC1A87E4EFCF9CEFBA +:10246000980F913A58F390E2980F983050F4877093 +:1024700091E001C0990F8A95EAF7892F0E94BB1A53 +:10248000DFCF9BE5980F933020F480E090E00C9430 +:102490004010885A833120F480E090E00C9456106C +:1024A0000895882321F00E94B51A0C94FC1A08950F +:1024B000882321F00E94BB1A0C94FC1A08957F9285 +:1024C0008F929F92AF92BF92CF92DF92EF92FF9244 +:1024D0000F931F93CF93DF931F92CDB7DEB77C018D +:1024E000C62E772EFC01058102950F701281111105 +:1024F0000E94D21A0E94281A882379F0112369F0C9 +:1025000080E28C0D883048F082E00E94111A0E940F +:10251000281A91E0D82ED92601C0D12CE72DE295BA +:10252000EF70F0E0E05AFF4F0C94E723872D807F97 +:10253000072D0F70882311F00295007F112389F079 +:10254000002309F490C180E28C0D883020F4802FA4 +:102550000E94B51A03C0802F0E94C51A0E94FC1A5F +:1025600082C18C2D0E940212002309F495C180E2E1 +:102570008C0D883020F4802F0E94BB1A03C0802F5E +:102580000E94CB1A0E94FC1A87C1972D907F872D3D +:102590008F70903211F08295807FCC2021F0F1E095 +:1025A000CF16B1F01EC0112349F0002309F414C165 +:1025B000013009F011C10E94E51A6EC1002319F023 +:1025C000013009F469C189830E94E81A89810AC12E +:1025D000112321F0023008F05FC1FEC001115CC17F +:1025E00001C1112321F0002309F4F6C03CC10023EE +:1025F00009F4F8C03EC1872D86958695837090E0DA +:10260000009719F0019761F047C1112321F08C2D3B +:10261000972D937002C080E090E00E9440103CC172 +:10262000112321F08C2D972D937002C080E090E053 +:102630000E94561031C18C2D112319F00E94771E73 +:1026400002C00E94DF1E0E94641F26C1872D837076 +:1026500009F052C0111120C18C2D8295869587708A +:10266000880F880F9C2D9F70892E912CA12CB12C46 +:10267000082E04C0880C991CAA1CBB1C0A94D2F713 +:10268000C4FE14C00FE010E020E030E0B901A80162 +:1026900004C0440F551F661F771F8A95D2F7CB01E0 +:1026A000BA01609570958095909503C060E070E0E8 +:1026B000CB01272D26952695237030E02230310559 +:1026C00069F02330310589F0682979298A299B2905 +:1026D0002130310571F00E949D18DEC068297929EA +:1026E0008A299B290E94B918D7C00E949D18C5014C +:1026F000B4010E948118D0C0112319F0872D817078 +:1027000001C08695882309F4C7C08C2D82958695D3 +:102710008770880F880F9C2D9F70892E912CA12C7B +:10272000B12C082E04C0880C991CAA1CBB1C0A944E +:10273000D2F7C4FE14C00FE010E020E030E0B90191 +:10274000A80104C0440F551F661F771F8A95D2F752 +:10275000CB01BA01609570958095909503C060E0BB +:1027600070E0CB01272D269526952370422F50E04F +:102770004230510569F04330510589F068297929C3 +:102780008A299B294130510571F00E94771984C034 +:10279000682979298A299B290E9493197DC00E9462 +:1027A0007719C501B4010E945B1976C08C2D90E0A9 +:1027B000FC01E05EF109E531F10508F050C0E05997 +:1027C000FF4F0C94E7230C2D0F70872D8F71112371 +:1027D00031F00E94F418802F0E9451125DC00E94B7 +:1027E0001519802F0E94581257C0112339F001117A +:1027F00053C0872D8F710E943A194EC0023008F0E5 +:102800004BC0F7CF112339F0872D8F710E94F41838 +:1028100043C01123C9F3872D8F710E9415193CC045 +:10282000112329F0872D8F710E94DF1835C00E9477 +:10283000D51832C0112351F0172D1F71812F0E941E +:10284000F41863E0812F0E94081A26C081E00E94DC +:10285000111A023008F182E00E94111A1DC01123E2 +:1028600031F0002389F28C2D0E943A1115C000230B +:1028700091F28C2D0E9402120FC0472D4F706C2DCB +:10288000C7010E941E050E94F91706C0472D4F7010 +:102890006C2DC7010E942606DD20F9F00E94041A63 +:1028A00080FD1BC0F70112820E94FE190E94F418DD +:1028B000C7010E947C140E94FE190F90DF91CF91F6 +:1028C0001F910F91FF90EF90DF90CF90BF90AF904E +:1028D0009F908F907F900C9415190F90DF91CF915E +:1028E0001F910F91FF90EF90DF90CF90BF90AF902E +:1028F0009F908F907F9008950F931F93CF93DF93B6 +:10290000EC01888199812B813C81232BB9F09F3F79 +:1029100011F48F3F99F0CE010E947E05882371F05B +:10292000688179818A810E94FA198C010E94AF190D +:102930000E947618B801CE010E945F12DF91CF91FC +:102940001F910F9108950E94D21A0E94E21A0E94CC +:10295000A71A0E94FC1A0E9415200E94641F80E0A2 +:1029600090E00E94401080E090E00C9456100E948D +:10297000C21A0C94A3140E94EF19292F22952F70CC +:1029800030E02C3031054CF42A3031056CF4225003 +:10299000310922303105A8F407C02C30310569F027 +:1029A0002F30310551F00DC0803F69F018F4803EA2 +:1029B00040F409C0843F29F406C093FB882780F9BE +:1029C000089580E0089581E00895CF93DF9300D0CB +:1029D00000D01F92CDB7DEB70F900F900F900F90E1 +:1029E0000F90DF91CF910895CF93DF9300D000D067 +:1029F00000D0CDB7DEB726960FB6F894DEBF0FBE77 +:102A0000CDBFDF91CF9108951F93CF93DF93C091F6 +:102A1000850116E080918601C81799F0D0E01C9FCF +:102A2000F0011D9FF00D1124E957FE4F40815181A7 +:102A300062817381848195810E94F4142196C7700C +:102A4000E9CFDF91CF911F9108954091B701509147 +:102A5000B8016091B9017091BA018091BB01909168 +:102A6000BC010C94F4148091BC0182958F7009F024 +:102A700054C08091B901882309F44FC08091850129 +:102A8000A09186016091B7017091B8014091BA019F +:102A90005091BB01B6E08A1709F43FC090E04115A0 +:102AA0005105C1F17F3F11F46F3FA1F1B89FF001D3 +:102AB000B99FF00D1124E957FE4F218172132AC0EE +:102AC0002081621327C02281211124C023813481F7 +:102AD0002417350710F421503109241B350B283CED +:102AE0003105C0F42091BC012F7020612093BC01FE +:102AF00026E0289FF001299FF00D1124E457FE4F96 +:102B000080818F708061808387EB91E00E947C14CC +:102B10000C94041501968770BECF0895CF92DF9272 +:102B2000EF92FF920F931F93CF93DF93CDB7DEB752 +:102B300062970FB6F894DEBF0FBECDBF8C0185E063 +:102B4000F801DE011D9601900D928A95E1F7D801FA +:102B50004C9111965C91119712966C911297139665 +:102B6000CD90DC9014973091B7017091B8018091AD +:102B7000BA019091BB01009709F46BC17F3F19F432 +:102B80003F3F09F466C1E090B901EE2009F4C0C0EE +:102B90002091BC01C816D90628F0F601E81BF90BF4 +:102BA000CF0104C0809590958C0D9D1DFF24F3945A +:102BB000883C910578F0F12C207F09F0C6C07C2D6F +:102BC000D98AC88A89890E94E51487EB91E00E941E +:102BD0007C14B1C0822F807F09F046C0751314C0E9 +:102BE000341312C0611110C02F7020612093BC01FA +:102BF0000E94251587EB91E00E947C148091BC0116 +:102C0000D80115968C932EC0CD2819F15F3F11F491 +:102C10004F3FF9F0F62E61111CC080918501209183 +:102C2000860136E0821709F45AC090E0389FF0011F +:102C3000399FF00D1124E957FE4F7181571306C0DB +:102C40007081471303C07281711103C001968770B0 +:102C5000E9CFF62E662309F418C18091BC0181608A +:102C60008093BC01F12C11C1751308C0341306C048 +:102C7000611104C08091BC01D801C3C04D875E873B +:102C80008D859E856A8B0E94BB146A898823E1F139 +:102C90006623D1F12091BC01822F82958F7090E044 +:102CA000029774F08091B7019091B80198878F8353 +:102CB0001986DB86CA862C87CE0107960E947C1473 +:102CC00086E0F801A7EBB1E001900D928A95E1F75B +:102CD0000E9433150E942515FF24F394D6C04D871A +:102CE0005E878D859E850E94EF19292F22952F7072 +:102CF00030E0223031050CF0BCC09F7009F0B6C046 +:102D0000805E883008F4C1C0C8010E947C14E4CF02 +:102D1000C816D90608F453C0F601E81BF90BCF0119 +:102D2000883C910508F450C0F12C7C2DD98AC88AC2 +:102D300089890E94E514E7EBF1E086E0DF011D924E +:102D40008A95E9F70E942515A0C0751314C03413A5 +:102D500012C0611110C08091BC01F8018583C801C7 +:102D60000E947C1486E0E7EBF1E0DF011D928A957A +:102D7000E9F7FE2C8AC04D875E878D859E856A8B1C +:102D80000E94BB146A89882309F4BECF662309F424 +:102D9000BBCF2091BC01822F82958F7090E002976B +:102DA0000CF48ECF8091B7019091B8019A838983FA +:102DB0001B82DD82CC822E83CE0101967FCF80954F +:102DC00090958C0D9D1DACCFF62E662309F49CCFFB +:102DD00075132EC034132CC02091BC0120FD1FC0E0 +:102DE000822F82958F70D9F0D80115962C93159764 +:102DF0008F3049F08F5F982F9295907F822F8F7040 +:102E0000892B15968C93C8010E947C1486E0F801EA +:102E1000A7EBB1E001900D928A95E1F793CF86E0A0 +:102E2000F801A7EBB1E001900D928A95E1F72DC072 +:102E30004D875E878D859E850E94BB14811140CF92 +:102E40008091BC0181608093BC01C8010E947C1408 +:102E50001CC0662309F458CF4D875E878D859E85FB +:102E60000E94BB14882309F44FCF2ACF811148CF89 +:102E70000CC0243031050CF047CF9F7009F440CFCF +:102E8000F8019581907F09F03BCF8F2D62960FB6A8 +:102E9000F894DEBF0FBECDBFDF91CF911F910F9190 +:102EA000FF90EF90DF90CF9008951F93CF93DF9323 +:102EB000CDB7DEB72C970FB6F894DEBF0FBECDBFEF +:102EC0004F83588769877A878B879C87CE010796BF +:102ED0000E948E15882369F08F8198852A853B850D +:102EE000232BF1F19F3F09F063C08F3F09F060C0D1 +:102EF00037C086E0FE013796DE01119601900D92F3 +:102F00008A95E1F76F817885EA85FB85309741F1F5 +:102F10007F3F11F46F3F21F12091860130E0C9011C +:102F20000196877099274091850150E08417950795 +:102F300009F447C069837A83FD83EC8396E0929F0E +:102F4000D001939FB00D1124A957BE4FFE013196B9 +:102F500001900D929A95E1F7809386010E940415E5 +:102F600016E080918501909186018917C1F1189F23 +:102F7000C001112489579E4F0E948E15882379F134 +:102F8000E09185011E9FF0011124E957FE4F408119 +:102F9000518162817381848195810E94F4148091B2 +:102FA000850190E001968770992780938501D9CF9C +:102FB0004F81588569857A858B859C850E94F4149C +:102FC000CFCF0E94B7141092860110928501E7EBD3 +:102FD000F1E086E0DF011D928A95E9F7C1CF2C96DA +:102FE0000FB6F894DEBF0FBECDBFDF91CF911F911A +:102FF0000895EF92FF920F931F93CF93DF938C016D +:10300000009709F46CC0F12CEE24E394E8012196BA +:10301000F8018491843740F4843008F051C0813045 +:1030200081F0823019F15BC0853709F444C0A8F102 +:103030009CE7980F903708F052C08F770E940212D9 +:1030400041C00E5F1F4FFE01C49180E28C0F88309B +:1030500048F4C7708E2D01C0880FCA95EAF70E9408 +:10306000D51A14C08C2F0E943A112DC00E5F1F4F2D +:10307000FE01C49180E28C0F883058F4C7708E2D09 +:1030800001C0880FCA95EAF70E94DB1A0E94FC1A59 +:103090001AC08C2F0E94021216C00E5F1F4FFE0135 +:1030A000C491CC2381F08FE99FE00197F1F700C034 +:1030B0000000C150F6CF0E5F1F4FFE01F49003C019 +:1030C0000E943A118E018F2D882309F49FCFEFE9DA +:1030D000FFE03197F1F700C000008150F5CFDF919C +:1030E000CF911F910F91FF90EF90089508956093F5 +:1030F000C1017093C2018093C3019093C4010C94E9 +:10310000A3140F931F930091C1011091C20120914C +:10311000C3013091C401DC01CB01802B912BA22B88 +:10312000B32B8093C1019093C201A093C301B093CC +:10313000C4011F910F910C94A3140F931F9300913E +:10314000C1011091C2012091C3013091C401DC0181 +:10315000CB0180239123A223B3238093C1019093B9 +:10316000C201A093C301B093C4011F910F910C94AD +:10317000A3140F931F930091C1011091C2012091DC +:10318000C3013091C401DC01CB0180279127A22724 +:10319000B3278093C1019093C201A093C301B09360 +:1031A000C4011F910F910C94A3141092BD011092B1 +:1031B000BE011092BF011092C0010C94A31441E013 +:1031C00050E060E070E004C0440F551F661F771F99 +:1031D0008A95D2F74093BD015093BE016093BF0121 +:1031E0007093C0010C94A31441E050E060E070E0E3 +:1031F00004C0440F551F661F771F8A95D2F7809130 +:10320000BD019091BE01A091BF01B091C001482BBA +:10321000592B6A2B7B2B4093BD015093BE016093C9 +:10322000BF017093C0010C94A31441E050E060E032 +:1032300070E004C0440F551F661F771F8A95D2F7B0 +:1032400040955095609570958091BD019091BE011B +:10325000A091BF01B091C001482359236A237B2369 +:103260004093BD015093BE016093BF017093C001B4 +:103270000C94A31441E050E060E070E004C0440FFF +:10328000551F661F771F8A95D2F78091BD019091D7 +:10329000BE01A091BF01B091C001482759276A27FC +:1032A0007B274093BD015093BE016093BF01709393 +:1032B000C0010C94A3140F931F930091BD011091B2 +:1032C000BE012091BF013091C001DC01CB01802BF8 +:1032D000912BA22BB32B8093BD019093BE01A093A1 +:1032E000BF01B093C0011F910F910C94A3140F93D1 +:1032F0001F930091BD011091BE012091BF0130913B +:10330000C001DC01CB0180239123A223B32380934E +:10331000BD019093BE01A093BF01B093C0011F9166 +:103320000F910C94A3140F931F930091BD01109162 +:10333000BE012091BF013091C001DC01CB0180278B +:103340009127A227B3278093BD019093BE01A0933C +:10335000BF01B093C0011F910F910C94A314089565 +:10336000CF92DF92EF92FF920F931F93CF93DF9351 +:103370008C01C090C101D090C201E090C301F090D7 +:10338000C4018091BD019091BE01A091BF01B09197 +:10339000C001C82AD92AEA2AFB2ACFE1D0E0D70106 +:1033A000C6010C2E04C0B695A795979587950A94EB +:1033B000D2F780FF06C0B8018C2F0E947C080197CD +:1033C00021F4219760F780E001C08C2FDF91CF912D +:1033D0001F910F91FF90EF90DF90CF900895CF93C2 +:1033E000DF93EC010E94B019BE010E947C08DF91BE +:1033F000CF910895CB010E94EF1908958091C501E6 +:1034000085958595859508958091C5018770089566 +:1034100098E0899F90011124262B2093C5010C94DC +:10342000F4182091C501809582238093C501982FBF +:10343000977069F430E0482F552747FD50952417C1 +:10344000350729F08595859585950C94151908956E +:103450009091C501977081E009F480E00895909102 +:103460000C01992321F090910D01911109C0209137 +:103470000E0130910F01F90132969FEF40E01FC01D +:10348000982F9695969596959F3050F5E0910E0160 +:10349000F0910F01E90FF11D877021E030E0A901E3 +:1034A00002C0440F551F8A95E2F7CA019181892B0A +:1034B000818308959F3F39F04F5F4E3041F0519125 +:1034C0005813F8CF0DC05111F7CF942FF5CF9F3F70 +:1034D00039F0F901E90FF11D97FDFA9582830895FE +:1034E000089590910C01992321F090910D01911173 +:1034F00009C020910E0130910F01F9013296205F31 +:103500003F4F1FC0982F9695969596959F30F0F453 +:10351000E0910E01F0910F01E90FF11D877021E09C +:1035200030E0A90102C0440F551F8A95E2F7CA0195 +:10353000809591818923818308953196E217F3075D +:1035400029F090819813F9CF1082F7CF089581E088 +:1035500090E0E0910E01F0910F01E80FF91F108249 +:10356000019680319105A9F708959091D901892B91 +:103570008093D901089580959091D90189238093F2 +:10358000D90108951092D90108959091D801892BFD +:103590008093D801089580959091D80189238093D4 +:1035A000D80108951092D80108959091D701892BE0 +:1035B0008093D701089580959091D70189238093B6 +:1035C000D70108951092D70108958093C6010895F8 +:1035D0001092C601089580910E0190910F01FC0197 +:1035E00031969C01205F3F4F80E0919191118F5F58 +:1035F000E217F307D1F70895E0910E01F0910F0162 +:103600008091D9018083E0910E01F0910F019081AA +:103610008091D801892B8083E0910E01F0910F01F8 +:1036200090818091D701892B80838091C601882366 +:1036300061F0E0910E01F0910F019081892B808360 +:103640000E94EB1A81111092C60180910E01909197 +:103650000F010C942A1020E0009739F0AC01415082 +:103660005109842395232F5FF7CF822F0895CF929E +:10367000DF92EF92FF926C01EE24FF24C114D1047B +:10368000E104F10421F0C701B60120E101C020E00E +:10369000C72ED82EE92EFF24C114D104E104F10471 +:1036A00019F0285FC701B6016B017C0154E0F69464 +:1036B000E794D794C7945A95D1F7C114D104E10483 +:1036C000F10419F02C5FC701B6016B017C0142E0E7 +:1036D000F694E794D794C7944A95D1F7C114D104CE +:1036E000E104F10419F02E5FC701B601DC01CB0142 +:1036F000B695A79597958795892B8A2B8B2B09F0E3 +:103700002F5F822FFF90EF90DF90CF9008958091F0 +:10371000F101843021F11092DB0120E488E190E096 +:103720000FB6F894A895809360000FBE20936000B8 +:1037300080E00E94170983B7817F846083BF83B7CD +:10374000816083BF7894889583B78E7F83BF88E13B +:103750000FB6F89480936000109260000FBE089539 +:10376000089508950E94B01B0E9454030E94B11B4B +:103770000E94490491E0811101C090E0892F0895D1 +:103780000E94B7140E941E100C94170982E084BD99 +:1037900093E095BD9AEF97BD80936E0008952FB783 +:1037A000F8948091DC019091DD01A091DE01B0914F +:1037B000DF012FBF0895CF92DF92EF92FF920F9318 +:1037C0001F932FB7F8944091DC015091DD01609177 +:1037D000DE017091DF012FBF6A017B01EE24FF241F +:1037E0008C0120E030E0C016D106E206F30610F4AA +:1037F000415051099A01281B390BC9011F910F91A2 +:10380000FF90EF90DF90CF9008951F920F920FB628 +:103810000F9211248F939F93AF93BF938091DC01FC +:103820009091DD01A091DE01B091DF010196A11D13 +:10383000B11D8093DC019093DD01A093DE01B09374 +:10384000DF01BF91AF919F918F910F900FBE0F90AD +:103850001F9018950E941B0DF8942FEF87EA91E6B0 +:10386000215080409040E1F700C0000087E090EBDD +:10387000DC018093FB019093FC01A093FD01B093C8 +:10388000FE019CE088E10FB6F894A8958093600053 +:103890000FBE90936000FFCFEF92FF920F931F93A4 +:1038A000CF93DF93D82FCDE08C2F0E94420405E008 +:1038B00010E0E82EF12CC701002E02C095958795E7 +:1038C0000A94E2F780FF09C0602F7C2F80E00E94FD +:1038D0002706D81302C081E006C00150110958F72D +:1038E000C15010F780E0DF91CF911F910F91FF90B1 +:1038F000EF900895CF93C82F8CE20E944C1C882330 +:1039000021F08C2FCF910C944C1C80E0CF91089526 +:10391000CF930E94CF1D811102C00E94B51DC5E644 +:10392000C15049F00E9454038FE39CE90197F1F7DD +:1039300000C00000F5CF89E20E947A1C811113C1FA +:103940008AE20E947A1C81110E94B51D85E00E94C6 +:103950007A1C81110E942A1C0E94DA1D8093DA01D0 +:1039600087E00E947A1C8823A9F18BE10E947A1CCF +:10397000882351F08091DA0181FB222720F991E020 +:10398000922790FB81F90EC08EE00E947A1C88235A +:1039900061F08091DA0182FB222720F991E09227E1 +:1039A00090FB82F98093DA0115C080E10E947A1CB5 +:1039B0009091DA01882341F093FB222720F981E0DE +:1039C000822780FB93F904C0892F809580FB90F9B2 +:1039D0009093DA018091DA010E94DE1D0E94EC1DB5 +:1039E0008093FA0180EE0E947A1C882341F0809136 +:1039F000FA01982F909590FB80F98093FA0189E362 +:103A00000E947A1C882359F08091FA0181FB2227B9 +:103A100020F991E0922790FB81F98093FA0182EEE0 +:103A20000E947A1C882359F08091FA0182FB222798 +:103A300020F991E0922790FB82F98093FA0186EEBB +:103A40000E947A1C882359F08091FA0183FB222777 +:103A500020F991E0922790FB83F98093FA0183EE9D +:103A60000E947A1C882359F08091FA0184FB222756 +:103A700020F991E0922790FB84F98093FA0185E385 +:103A80000E947A1C882359F08091FA0185FB222735 +:103A900020F991E0922790FB85F98093FA0181E368 +:103AA0000E947A1C882359F08091FA0186FB222714 +:103AB00020F991E0922790FB86F98093FA0181E149 +:103AC0000E947A1C882359F08091FA0187FB2227F3 +:103AD00020F991E0922790FB87F98093FA01809179 +:103AE000FA010E94F01D8091FA0187FB882780F976 +:103AF00080930D0187E20E947A1CC82F8EE10E94FC +:103B00007A1C8111C2608FE10E947A1C8111C4600D +:103B100080E20E947A1C8111C86081E20E947A1CB6 +:103B20008111C06182E20E947A1C8111C06283E22D +:103B30000E947A1C8111C06484E20E947A1C88234E +:103B400011F0C06802C0CC2329F08C2F0E94E71D21 +:103B50006C2F03C00E94E31D682F70E080E090E0AE +:103B6000CF910C947718CF9108956DEE7EEF80E0A1 +:103B700090E00E94212460E082E090E00E940F2407 +:103B800060E083E090E00E940F2460E084E090E039 +:103B90000E940F2460E085E090E00C940F2480E008 +:103BA00090E00E94092421E08D3E9E4F09F020E024 +:103BB000822F089582E090E00C940124682F82E027 +:103BC00090E00C940F2483E090E00C940124682F83 +:103BD00083E090E00C940F2484E090E00C940124A6 +:103BE000682F84E090E00C940F248091E20180FF24 +:103BF0000BC06091130185E0689FB0011124759599 +:103C00006795759567952BC081FF09C06091130179 +:103C100085E0689FB00111247595679520C082FFEB +:103C200007C06091130185E0689FB001112417C09F +:103C30009091E3019923D1F060911201961788F7D2 +:103C40002091130185E0289F90011124929FA001EB +:103C5000939F500D112470E0CA010E94D323603855 +:103C6000710540F46115710539F002C065E070E03E +:103C7000862F08958FE7089581E008958091E201ED +:103C800080FF08C06091110170E07595679575958A +:103C9000679521C081FF06C06091110170E07595A4 +:103CA000679519C082FF04C06091110170E010C0D7 +:103CB0009091E3019923C1F0609110019617A0F74C +:103CC00080911101899FC001112470E00E94D323CB +:103CD0006038710528F46115710521F0862F08956B +:103CE0008FE7089581E0089561E070E0F4CF803FB0 +:103CF00021F40E94F51D819504C0813F29F40E94A2 +:103D0000F51D8093E6010895823F21F40E94F51D80 +:103D1000819504C0833F29F40E94F51D8093E5013D +:103D20000895893F19F40E943E1E05C08A3F31F470 +:103D30000E943E1E81958093E70108958B3F21F4F8 +:103D40000E943E1E819504C08C3F29F40E943E1EB5 +:103D50008093E8010895843F21F48091E40181601B +:103D600017C0853F21F48091E401826011C0863F35 +:103D700021F48091E40184600BC0873F21F480919D +:103D8000E401886005C0883F31F48091E4018061DE +:103D90008093E40108958D3F21F48091E2018160D8 +:103DA0000BC08E3F21F48091E201826005C08F3FFD +:103DB00029F48091E20184608093E2010895803FBC +:103DC00039F48091E60187FF6CC01092E60169C06A +:103DD000813F29F48091E6011816BCF362C09091EE +:103DE000E501823F29F497FF5CC01092E50159C0BC +:103DF000833F19F41916CCF354C0893F41F48091E4 +:103E0000E70118160CF04DC01092E7014AC08A3F36 +:103E100029F48091E70187FF44C0F6CF8B3F39F446 +:103E20008091E80187FF3DC01092E8013AC08C3FC5 +:103E300029F48091E8011816BCF333C0843F21F4C3 +:103E40008091E4018E7F17C0853F21F48091E401C9 +:103E50008D7F11C0863F21F48091E4018B7F0BC0E0 +:103E6000873F21F48091E401877F05C0883F31F4CA +:103E70008091E4018F7E8093E40113C08D3F21F493 +:103E80008091E2018E7F0BC08E3F21F48091E20190 +:103E90008D7F05C08F3F29F48091E2018B7F809355 +:103EA000E2018091E50181110EC08091E60181114E +:103EB0000AC08091E701811106C08091E80181115B +:103EC00002C01092E301089584EE91E00E94351043 +:103ED0000E94CF1B9093E1018093E00108951F930E +:103EE000CF93DF938091E0019091E1010E94DB1B71 +:103EF000AC019091E301992321F02091140130E06D +:103F000006C0209115018AE0289F900111244217D4 +:103F1000530708F486C08091E501C091E601D09175 +:103F2000E7011091E801811107C0C11176C0D111DC +:103F300074C0111172C075C09F3F19F09F5F9093BC +:103F4000E301181624F40E94F51D8093E501809189 +:103F5000E50187FF05C00E94F51D81958093E5016D +:103F60001C1624F40E94F51D8093E6018091E60161 +:103F700087FF05C00E94F51D81958093E601609141 +:103F8000E501662339F1C091E601CC2319F17727C9 +:103F900067FD7095872F972F0E94E42223E333E378 +:103FA00043E35FE30E9448230E94B1226093E5014E +:103FB0006C2F772767FD7095872F972F0E94E4223B +:103FC00023E333E343E35FE30E9448230E94B122EB +:103FD0006093E6011D1624F40E943E1E8093E701C3 +:103FE0008091E70187FF05C00E943E1E8195809366 +:103FF000E701111624F40E943E1E8093E80180918F +:10400000E80187FF05C00E943E1E81958093E8016C +:10401000DF91CF911F910C94641F9F3F09F08ECFC9 +:1040200096CFDF91CF911F910895E4EEF1E085E006 +:10403000DF011D928A95E9F71092E3011092E201E7 +:104040000895833081F128F4813059F08230D1F025 +:104050000895853009F449C0B8F1863009F456C096 +:10406000089580911501262F30E0280F311D2F3F34 +:10407000310524F4680F6093150108958FEF809344 +:104080001501089580911401262F30E0280F311D6D +:104090002F3F310524F4680F6093140108958FEFCA +:1040A00080931401089580911301262F30E0280F8A +:1040B000311D2F3F310524F4680F609313010895DB +:1040C0008FEF80931301089580911201262F30E025 +:1040D000280F311D2F3F310524F4680F6093120122 +:1040E00008958FEF80931201089580911101262F7A +:1040F00030E0280F311D2F3F310524F4680F609305 +:10410000110108958FEF809311010895809110019E +:10411000262F30E0280F311D2F3F310524F4680F82 +:104120006093100108958FEF8093100108958330FC +:1041300011F128F4813049F0823091F008958530F2 +:1041400081F120F18630C1F1089580911501681741 +:1041500020F4861B8093150108951092150108958F +:1041600080911401681720F4861B80931401089530 +:1041700010921401089580911301681720F4861B92 +:1041800080931301089510921301089580911201F4 +:10419000681720F4861B8093120108951092120173 +:1041A000089580911101681720F4861B80931101F6 +:1041B000089510921101089580911001681720F45C +:1041C000861B8093100108951092100108950F939B +:1041D0001F938D3109F46BC008F03FC08E3009F495 +:1041E0007FC0C0F4873009F469C068F4863009F0F4 +:1041F000B1C08091DA01817F8E7F8093DA0181E006 +:104200008093EA01A8C0883009F4A2C08B3009F479 +:104210009FC0A0C0863109F49BC078F4803109F4B6 +:1042200072C0813109F096C00E94B71490910D01BF +:1042300081E0892780930D018BC0893109F488C002 +:104240008B3109F087C08091DA0181FB222720F9A8 +:1042500091E0922790FB81F94CC0853309F470C03E +:1042600048F4873209F46CC008F459C0893209F463 +:1042700067C070C0833438F48A3308F04EC0883386 +:1042800009F466C067C0833409F45AC0883409F061 +:1042900061C00E94B7140FEF13ED20E301501040EE +:1042A0002040E1F700C000000E942A1C51C00E947B +:1042B0006B220E941E100E9417094AC09091DA01D9 +:1042C000892F8095817080FB90F929F09660986025 +:1042D0009093DA0140C0997F977F9093DA0138C0BC +:1042E0008091DA0182FB222720F991E0922790FB4E +:1042F00082F98093DA01992359F18091DA01816082 +:104300008093DA0125C08091DA0183FB222720F90E +:1043100091E0922790FB83F9ECCF895301C08D5136 +:1043200041E050E060E070E08A019B0104C0000FB2 +:10433000111F221F331F8A95D2F7C901B80104C08B +:1043400061E070E080E090E00E9477180E94B7146E +:1043500081E001C080E01F910F91089580E00895F1 +:1043600080E00895CF93C82F8091EA01813079F0E1 +:1043700018F08230E9F187C0E0910E01F0910F0151 +:104380008081813169F0823209F07FC009C0E091FB +:104390000E01F0910F018081813111F0823261F4C0 +:1043A0008C2F0E94AE21811104C08C2F0E94E72027 +:1043B0001DC081E090E01AC08C2F0E94B0218111B5 +:1043C00014C0C43179F048F4CB3079F0C03109F031 +:1043D00060C082E08093EA0108C0C93219F0C83396 +:1043E00021F057C01092EA0154C081E0817053C09F +:1043F000C93289F118F5C43171F1A8F4C73009F058 +:1044000046C08AE08093150194E19093140193E0F3 +:10441000909313018093120188E08093110188E248 +:104420008093100134C0CE51C63088F5EC2FF0E0F7 +:10443000E65DFE4F80818093E90129C0CE34E9F02A +:1044400020F4CB3421F56AE013C0C13579F0C235D0 +:10445000F1F461E00DC08091E901882319F0109218 +:10446000E90115C081E08093EA0115C061E006C052 +:104470008091E9010E9421200AC06AE08091E9014F +:104480000E94972004C01092EA0180E004C081E0FD +:1044900002C080E0ABCFCF910895E1E8F0E08081E9 +:1044A000886080838081816080838FB7F89493E0F7 +:1044B0009093890090ED909388008FBF0895EFE668 +:1044C000F0E08081826080830895EFE6F0E08081F3 +:1044D0008D7F80830895EFE6F0E0908182E0892768 +:1044E000808308951F920F920FB60F9211242F937D +:1044F0003F934F935F936F937F938F939F93AF936C +:10450000BF93EF93FF938091EB019091EC010196A3 +:104510009093EC018093EB01811103C082E00E9433 +:104520001709E091EC01E695E695F0E0EA53FB4FC0 +:10453000E4918091EB018E1303C080E00E94170983 +:10454000FF91EF91BF91AF919F918F917F916F916B +:104550005F914F913F912F910F900FBE0F901F9041 +:10456000189504D06894B1118DC0089570D088F06A +:104570009F5790F0B92F9927B751A0F0D1F0660F4F +:10458000771F881F991F1AF0BA95C9F712C0B1306A +:1045900081F077D0B1E0089574C0672F782F882715 +:1045A000B85F39F0B93FCCF3869577956795B395A9 +:1045B000D9F73EF490958095709561957F4F8F4F18 +:1045C0009F4F0895E89409C097FB3EF4909580951D +:1045D000709561957F4F8F4F9F4F9923A9F0F92FC9 +:1045E00096E9BB279395F695879577956795B79547 +:1045F000F111F8CFFAF4BB0F11F460FF1BC06F5F2D +:104600007F4F8F4F9F4F16C0882311F096E911C03E +:10461000772321F09EE8872F762F05C0662371F05F +:1046200096E8862F70E060E02AF09A95660F771F73 +:10463000881FDAF7880F9695879597F9089557FDA3 +:104640009058440F551F59F05F3F71F04795880F00 +:1046500097FB991F61F09F3F79F087950895121697 +:1046600013061406551FF2CF4695F1DF08C0161643 +:1046700017061806991FF1CF8695710561050894F4 +:104680000895E894BB2766277727CB0197F908950B +:104690000BD078C069D028F06ED018F0952309F0BF +:1046A0005AC05FC01124EECFCADFA0F3959FD1F3AB +:1046B000950F50E0551F629FF001729FBB27F00DD0 +:1046C000B11D639FAA27F00DB11DAA1F649F662725 +:1046D000B00DA11D661F829F2227B00DA11D621F74 +:1046E000739FB00DA11D621F839FA00D611D221F2E +:1046F000749F3327A00D611D231F849F600D211D12 +:10470000822F762F6A2F11249F5750408AF0E1F0B4 +:1047100088234AF0EE0FFF1FBB1F661F771F881FFD +:1047200091505040A9F79E3F510570F014C0AACF98 +:104730005F3FECF3983EDCF3869577956795B795E8 +:10474000F795E7959F5FC1F7FE2B880F911D969512 +:10475000879597F9089597F99F6780E870E060E082 +:1047600008959FEF80EC089500240A94161617060A +:1047700018060906089500240A9412161306140652 +:1047800005060895092E0394000C11F4882352F0B5 +:10479000BB0F40F4BF2B11F460FF04C06F5F7F4F6D +:1047A0008F4F9F4F089597FB072E16F4009407D064 +:1047B00077FD09D00E94ED2307FC05D03EF49095CB +:1047C00081959F4F0895709561957F4F0895EE0FE5 +:1047D000FF1F0590F491E02D0994AA1BBB1B51E12A +:1047E00007C0AA1FBB1FA617B70710F0A61BB70B61 +:1047F000881F991F5A95A9F780959095BC01CD0106 +:104800000895F999FECF92BD81BDF89A992780B598 +:104810000895A8E1B0E042E050E00C942924262F4E +:10482000F999FECF92BD81BDF89A019700B40216A6 +:1048300039F01FBA20BD0FB6F894FA9AF99A0FBE54 +:1048400008950196272F0E9410240C940F24DC0158 +:10485000CB01FC01F999FECF06C0F2BDE1BDF89A8B +:10486000319600B40D9241505040B8F70895F89435 +:02487000FFCF78 +:1048720002201909A709840950091C090101C7016D +:1048820028080A03140A3F4D363987043A040404FF +:10489200CB035E0377039003A90301020304050619 +:0448A20007080900FA +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/plums/keymap.c b/keyboards/ergodox_ez/keymaps/plums/keymap.c new file mode 100644 index 000000000..46eb2e42b --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/plums/keymap.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 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | F5 | |Hypr+M| 6 | 7 | 8 | 9 | 0 | Mute | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | LGui | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | + * |--------+------+------+------+------+------| SYMB | | MDIA |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Ca/Ctl| { | ( | | | : | | - | = | ) | } |C`/Ctl| + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | LGA | LAlt | | RAlt | Play | + * ,------|------|------| |------+------+------. + * | | | Home | | PgUp | | | + * |Backsp| Esc |------| |------|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_F5, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, + KC_LGUI, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, TG(SYMB), + F(0), KC_LCBR, KC_LPRN,KC_PIPE,KC_COLN, + LGUI(KC_LALT), KC_LALT, + KC_HOME, + KC_BSPC, KC_ESC, KC_END, + // right hand + HYPR(KC_M), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MUTE, + KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + TG(MDIA), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_MINS, KC_EQL, KC_RPRN, KC_RCBR, F(1), + KC_RALT, KC_MPLY, + KC_PGUP, + KC_PGDN, KC_ENT, KC_SPC + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | | | | | | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Left | Down | Up | Right| | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, + KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------|MsLeft|MsDown| MsUp |MsRght| | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |VolUp |VolDn | Prev | Next | | | LClk | RClk | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_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_VOLD, KC_MPRV, KC_MNXT, 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_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_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_MACRO_TAP(0), // FN0 - Ctrl + a (For screen/tmux) + [1] = ACTION_MACRO_TAP(1) // FN1 - Ctrl + ` (For quake style console) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // this is the function signature -- just copy/paste it into your keymap file as it is. +{ + switch(id) { + case 0: + if (record->event.pressed) { + if (record->tap.count) { + if (record->tap.interrupted) { + record->tap.count = 0; + // hold press action + register_code(KC_LCTL); + } else { + // tap press action + return MACRO( D(LCTL), T(A), U(LCTL), END ); + } + } else { + // hold press action + register_code(KC_LCTL); + } + } else { + if (record->tap.count) { + // tap release action + } else { + // hold release action + unregister_code(KC_LCTL); + } + record->tap.count = 0; + } + break; + case 1: + if (record->event.pressed) { + if (record->tap.count) { + if (record->tap.interrupted) { + record->tap.count = 0; + // hold press action + register_code(KC_RCTL); + } else { + // tap press action + return MACRO( DOWN(KC_RCTL), TYPE(KC_GRV), UP(KC_RCTL), END ); + } + } else { + // hold press action + register_code(KC_RCTL); + } + } else { + if (record->tap.count) { + // tap release action + } else { + // hold release action + unregister_code(KC_RCTL); + } + record->tap.count = 0; + } + 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/keyboards/ergodox_ez/keymaps/plums/plums.png b/keyboards/ergodox_ez/keymaps/plums/plums.png new file mode 100644 index 000000000..2f127c4ca Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/plums/plums.png differ diff --git a/keyboards/ergodox_ez/keymaps/plums/readme.md b/keyboards/ergodox_ez/keymaps/plums/readme.md new file mode 100644 index 000000000..b72329eef --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/plums/readme.md @@ -0,0 +1,11 @@ +# ErgoDox EZ Plums Configuration + +## Changelog + +* Apr 23, 2016 (v0.1.0): + * Shortcut for iTerm2 quake style dropdown (Ctrl+`) + * Shortcut for screen/tmux (Ctrl+a) + * Shortcut for shush (Hyper+m) + * Combo modifier for LGUI + LALT + +![Plums](plums.png) diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/compiled.hex b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/compiled.hex new file mode 100644 index 000000000..74449a955 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/compiled.hex @@ -0,0 +1,1098 @@ +:100000000C94D1010C9415020C9415020C94150259 +:100010000C9415020C9415020C9415020C94150204 +:100020000C9415020C9415020C941E0D0C94F00DFA +:100030000C9415020C9415020C9415020C941502E4 +:100040000C9415020C945A200C9415020C94150271 +:100050000C9415020C943C1B0C9415020C94150284 +:100060000C9415020C9415020C9415020C941502B4 +:100070000C9415020C9415020C9415020C941502A4 +:100080000C9415020C9415020C9415020C94150294 +:100090000C9415020C9415020C9415020C94150284 +:1000A0000C9415020C9415020C9415025D0E7F0E33 +:1000B0006D0F7F0E6D0FC40EE70E6D0F3C0F4F0FCF +:1000C0001E121E124D124D128312A312D413D413FA +:1000D000AE12D4135E135E13C513D413D413CE1310 +:1000E0006B136B136B136B136B136B136B136B1320 +:1000F0006B136B136B136B136B136B136B136B1310 +:100100007D138A1391139813A21335002B002961D4 +:10011000E1003A0000001E00140004001D003B0036 +:10012000E2001F001A0016001B003C00296120009D +:100130000700080006003D002A0021000900170002 +:100140001900E300A90022000E000A0005000000CB +:10015000AA003E00310000002F000000A8003F0070 +:100160000000000030000000AE0023000D001C0065 +:1001700013000000AB002400180011001000E7007D +:10018000AC00250015000C00360050002C002600A5 +:100190000F001200370051003400270033000B001D +:1001A00038005200E6002E002D002800E5004F0028 +:1001B000000016034500720067006F0044006F00E6 +:1001C0007800200045005A00000016034500720028 +:1001D00067006F0044006F007800200045005A005F +:1001E00000000403090409026D00040100A0FA09DB +:1001F0000400000103010100092111010001224056 +:10020000000705810308000A090401000103010237 +:1002100000092111010001224D0007058203080099 +:100220000A09040200010300000009211101000174 +:100230002236000705830308000A090403000103AE +:100240000000000921110100012239000705840383 +:100250001000011201100100000008EDFE0713015B +:10026000000102000105010906A101050719E029A5 +:10027000E715002501950875018102050819012976 +:100280000595057501910295017503910105071901 +:1002900000297715002501957875018102C00501B7 +:1002A0000980A101850216010026B7001A01002A63 +:1002B000B700751095018100C0050C0901A10185E9 +:1002C00003160100269C021A01002A9C0275109553 +:1002D000018100C005010902A1010901A100050970 +:1002E0001901290515002501950575018102950162 +:1002F000750381010501093009311581257F9502BA +:100300007508810609381581257F950175088106D4 +:10031000050C0A38021581257F950175088106C0F4 +:10032000C005010906A101050719E029E715002507 +:10033000019508750181029501750881010508196B +:100340000129059505750191029501750391010536 +:1003500007190029FF150026FF0095067508810082 +:10036000C0000000000000000000000001020406C0 +:100370000A0F17202C3A4A5D71879DB3C7DAE9F559 +:10038000FCFFFCF5E9DAC7B39D87715D4A3A2C2082 +:10039000170F0A0604020100000000000000000020 +:1003A000000011241FBECFEFDAE0DEBFCDBF04B6E0 +:1003B00003FE24C08091FD019091FE01A091FF01F8 +:1003C000B09100028730904BA740B04BB9F4109227 +:1003D000FD011092FE011092FF011092000214BE66 +:1003E00084B7877F84BF88E10FB6F894809360005C +:1003F000109260000FBEE0E0FFE3099511E0A0E07D +:10040000B1E0E2E4F4E402C005900D92A433B10738 +:10041000D9F711E0A4E3B1E001C01D92AD3FB107EF +:10042000E1F70E94660A0C941F220C9400001092BF +:10043000B9008AE08093B800089594EA9093BC00D4 +:100440009091BC0097FFFCCF9091B900987F9830B5 +:1004500021F0903111F081E008958093BB0084E891 +:100460008093BC008091BC0087FFFCCF8091B900D5 +:10047000887F883111F0803471F780E0089584E935 +:100480008093BC008091BC0084FDFCCF08958093D4 +:10049000BB0084E88093BC008091BC0087FFFCCF48 +:1004A0009091B900987F81E0983209F480E0089536 +:1004B00084E88093BC008091BC0087FFFCCF8091D2 +:1004C000BB00089580B38C7080BB81B3836F81BB08 +:1004D000089580910101811115C080E40E941D02E0 +:1004E0008093010181110CC082E10E944702809338 +:1004F0000101811105C08FEF0E9447028093010125 +:100500000E943F0284B1807F84B985B1807F85B924 +:100510008AB1837F8AB98BB1837F8BB93E98469825 +:1005200008950E943304809301010E9469020E9491 +:100530006202A5E3B1E0E3E4F1E08EE08E0F1192F8 +:100540001D928E13FCCF0C941D040E9433048093E3 +:1005500001010E9469020E946202A5E3B1E0E3E4A6 +:10056000F1E08EE08E0F11921D928E13FCCF089554 +:10057000BF92CF92DF92EF92FF920F931F93CF9390 +:10058000DF9380910101882379F0809134018F5F9E +:1005900080933401811108C00E94330480930101CB +:1005A000811102C00E94C50305E311E0C0E0D0E064 +:1005B000DD24D39482E0C82EEE24E394F12CC730DE +:1005C000D10500F580910101811164C080E40E9491 +:1005D0001D0280930101811112C082E10E94470235 +:1005E0008093010181110BC0C7010C2E01C0880F3F +:1005F0000A94EAF780950E944702809301010E94C5 +:100600003F0248C0CA30A1F028F4C83059F0C930C0 +:1006100061F005C0CC3089F070F0CD3089F0209ABF +:10062000289810C0219A29980DC0229A2A980AC0A9 +:10063000239A2B9807C0529A01C0539A5B9802C024 +:100640003E9A469890EA9A95F1F79FB1799902C03F +:1006500082E001C080E091709D25982B7C9902C0BA +:1006600084E001C080E0892B7D9902C038E001C0A0 +:1006700030E0832B7E9902C020E101C020E0822B74 +:100680009FB19095991F9927991F9295990F907EE8 +:10069000892B0FC080910101811149C080E40E9423 +:1006A0001D0280930101882379F1B12C0E943F0241 +:1006B0008B2DF8019081981719F08083C09200016A +:1006C0000E94690221960F5F1F4FCE30D10509F0BD +:1006D00076CF80910001882361F1815080930001E1 +:1006E000882339F08FE99FE00197F1F700C00000FF +:1006F00020C0A3E4B1E0E5E3F1E0CF01825F919196 +:100700009D938E13FCCF15C083E10E944702809316 +:1007100001018111CACF81E40E941D028093010171 +:100720008111C3CF0E945802B82EB094BFCF80E091 +:10073000C0CF0E94C30381E0DF91CF911F910F9141 +:10074000FF90EF90DF90CF90BF900895E82FF0E0FA +:10075000ED5BFE4F8081089508950F931F93CF9313 +:10076000DF93C3E4D1E010E00C2F025F899190E0A9 +:100770000E94B31A180F0C13F9CF812FDF91CF917C +:100780001F910F9108950C948E0456985E982598A9 +:100790002D9826982E9827982F988FEF90E0909379 +:1007A00089008093880090938B0080938A009093B7 +:1007B0008D0080938C00259A2D9A2FEF80E792E090 +:1007C000215080409040E1F700C00000269A2E9A08 +:1007D0002FEF80E792E0215080409040E1F700C089 +:1007E0000000279A2F9A2FEF80E792E02150804057 +:1007F0009040E1F700C0000025982D982FEF80E78A +:1008000092E0215080409040E1F700C0000026981F +:100810002E982FEF80E792E0215080409040E1F742 +:1008200000C0000027982F9856985E9825982D981C +:1008300026982E9827982F98089589EA809380000B +:1008400089E08093810024982C983F988AB18F7416 +:100850008AB96E98479A8BB1806B8BB9769A0E9451 +:10086000C5030C94850480E28093010180915101BD +:1008700081110EC00E94170281E0809351012FEF79 +:1008800083ED90E3215080409040E1F700C00000EC +:1008900080E40E941D028093010181112EC00E94FC +:1008A000470280930101811128C00E944702809372 +:1008B0000101811122C08FE30E9447028093010150 +:1008C00081111BC00E943F0280E40E941D028093A0 +:1008D0000101811112C08CE00E9447028093010146 +:1008E00081110BC00E94470280930101811105C054 +:1008F0008FE30E944702809301010E943F02809192 +:100900000101089580E090E0089556985E9825983A +:100910002D9826982E9827982F980895089581E06D +:10092000089581E008950C9491040895282F882358 +:1009300039F090E02A3010F44D9608950697089506 +:1009400087E290E00895AF92BF92DF92EF92FF921C +:100950000F931F93CF93DF938C01FC01C081D18152 +:10096000CE010E943819BE010E941308EC01B801A3 +:100970000E949304882309F4C9C1F8018281882365 +:1009800009F4BEC080915E0181111FC0C431F0E73F +:10099000DF0709F0B5C10E94950481E080935E01F4 +:1009A0000E94061B90935D0180935C01109255019B +:1009B000109257011092560110925901109258014D +:1009C00010925B0110925A01A1C180915C0190913B +:1009D0005D010E94121B883C910570F480915501C5 +:1009E000E82FF0E0EE0FFF1FEA5AFE4FD183C083DD +:1009F0008F5F809355018AC1C13020E8D20708F487 +:100A000051C0F8018281882309F47EC05E01E89418 +:100A1000B7F880915401813079F050F08230C1F400 +:100A200082EE0E94C21087E50E94C21087E50EC0C8 +:100A300082EE0E94C2100CC080EE0E94C21081EEB5 +:100A40000E94C21088E10E94C21088E10E948A11AF +:100A50008CE0E82EF12CC5010E2C02C096958795EE +:100A60000A94E2F78F700E949604D82E0E94C2105A +:100A70008D2D0E948A11F4E0EF1AF1082CEFE21696 +:100A80002FEFF20641F780915401813029F010F0E8 +:100A9000823041F482EE04C080EE0E948A1181EE21 +:100AA0000E948A11C43180E7D80768F4C23090E709 +:100AB000D90708F046C0C115E0E7DE0771F0C13084 +:100AC000D047A1F10CC1C33320E7D20709F4D8C045 +:100AD000C433D04709F4EBC002C1F80182818823F6 +:100AE00009F402C10E943F14FFEF24E38CE0F150AF +:100AF00020408040E1F700C000000E94611B06C159 +:100B0000C13080E8D80770F2C43120E7D20708F07E +:100B1000B3C0C23080E7D807A0F4C11590E7D90769 +:100B200009F4E2C0C130D04709F0D9C0F801828190 +:100B3000882309F4D9C08091DB0181608093DB01B7 +:100B4000E5C0F8018281882309F4CEC00E94BB1B56 +:100B5000811102C00E94A11B0E94CE1B90E09093C5 +:100B6000EF018093EE01C230F0E7DF0721F48091BE +:100B7000EE0181607AC0C33020E7D20721F4809172 +:100B8000EE01826072C0C43080E7D80721F4809102 +:100B9000EE0184606AC0C53090E7D90719F48091EE +:100BA000EE0127C0C630E0E7DE0721F48091EE01B8 +:100BB00080615BC0C730F0E7DF0721F48091EE0170 +:100BC000806253C0C83020E7D20721F48091EE0143 +:100BD00080644BC0C93080E7D80721F48091EE01D2 +:100BE000806843C0CA3090E7D90729F48091EE01AC +:100BF000846088603AC0CB30E0E7DE0721F4809162 +:100C0000EE018E7F32C0CC30F0E7DF0721F4809117 +:100C1000EE018D7F2AC0CD3020E7D20721F48091EC +:100C2000EE018B7F22C0CE3080E7D80719F4809187 +:100C3000EE011AC08091EE01CF3090E7D90711F490 +:100C40008F7E13C0C031E0E7DE0711F48F7D0DC049 +:100C5000C131F0E7DF0711F48F7B07C0C231D04705 +:100C600011F48F7702C08B7F877F8093EE01809194 +:100C7000EE010E94D21B4AC0C333F0E7DF07A1F4A4 +:100C8000F8018281882321F01092520182E016C07F +:100C900080915201811106C086E20E94C21086E254 +:100CA0000E948A1182E018C0C433D047C1F4F80111 +:100CB0008281882331F01092530180E20E94D91181 +:100CC00025C080915301811106C087E20E94C210A5 +:100CD00087E20E948A1180E20E94E01117C081E041 +:100CE0008093520180935301C801DF91CF911F91EE +:100CF0000F91FF90EF90DF90BF90AF900C948F0416 +:100D0000C130F0E8DF0708F081CECCCE80E0DF9183 +:100D1000CF911F910F91FF90EF90DF90BF90AF9018 +:100D2000089526E0729FF001112444E5849FE00DB0 +:100D3000F11D1124E60FF11DEE0FFF1FE65FFE4FC0 +:100D4000859194910E942508811560E49607B0F57D +:100D5000811570E3970708F0DEC0803E9105D8F456 +:100D6000803C910508F06CC0883A910578F4853A8A +:100D7000910508F06BC08130910509F452C108F467 +:100D80000FC18430910508F04CC10AC18B3B91051D +:100D900008F467C005C18F3F910509F048F4803F12 +:100DA000910508F0ADC0883E910508F43AC1F8C03D +:100DB000811520E2920708F0A5C00895811543E54A +:100DC000940790F4811562E5960708F0C8C0811574 +:100DD00071E5970708F0BEC0811520E5920708F07D +:100DE0009DC09F70906A0895811545E59407D8F4D9 +:100DF000811564E5960708F0C8C0482F46954695CA +:100E000070E2479FA00111248370992721E030E010 +:100E1000B90102C0660F771F8A95E2F7CB01842BD8 +:100E2000952B9A680895811576E5970708F4B2C066 +:100E30009C0130562115304108F0B2C09F70AEC001 +:100E4000FC01EE0FFF1FE657F04062C0853A9105A6 +:100E500009F4A9C0863A910509F0A8C082E890E497 +:100E60000895883A910509F4A4C0893A910509F4D6 +:100E7000A3C08A3A910509F4A2C08B3A910509F4FE +:100E8000A1C08C3A910509F4A0C08D3A910509F4EE +:100E90009FC0803B910509F49EC08E3A910509F4EC +:100EA0009DC08F3A910509F49CC0813B910509F4DE +:100EB0009BC0823B910509F49AC0833B910509F4DC +:100EC00099C0843B910509F498C0853B910509F4CC +:100ED00097C0863B910509F496C0873B910509F4BC +:100EE00095C0883B910509F494C0893B910509F4AC +:100EF00093C08A3B910509F492C080E094E4089580 +:100F000090650895FC01FF70EE0FFF1FE65FFE4F36 +:100F10008591949108959927906C0895482F437076 +:100F200021E030E002C0220F331F4A95E2F73C680F +:100F3000AC0164E0569547956A95E1F74370342B10 +:100F40008F708695869560E2869FC0011124822B62 +:100F5000932B0895982F8827816F906A0895482FC2 +:100F60004695469570E2479FA0011124837099270A +:100F700021E030E0B90102C0660F771F8A95E2F7E1 +:100F8000CB01842B952B9C680895982F8827846F1C +:100F9000906A08958F719927982F882790620895F5 +:100FA00080E090E0089581E890E4089583E890E47B +:100FB000089582EE94E4089589EE94E408958AEE0B +:100FC00094E4089585EB94E4089586EB94E4089501 +:100FD00087EB94E408958CEC94E408958DEC94E40C +:100FE000089583E895E408958AE895E4089582E9F0 +:100FF00095E4089584E995E4089581E296E40895DE +:1010000083E296E4089584E296E4089585E296E406 +:10101000089586E296E4089587E296E408958AE2C8 +:1010200096E40895089596E0799FF001112494E5DF +:10103000899FE00DF11D1124E60FF11DEE0FFF1F3A +:10104000E65FFE4F8591949108958238910549F1AC +:10105000B0F48133910509F458C048F48932910500 +:1010600009F44EC08A32910509F454C008958533BD +:10107000910509F440C08933910599F00895833EA4 +:10108000910529F138F4803E910591F0823E910559 +:10109000A1F00895863E9105F9F0873E910531F162 +:1010A00008952091EE0120FD3AC021FD38C0089539 +:1010B0008091EE0180FD35C032C08091EE0182FF4B +:1010C00032C08091EE0184FD30C083EE39C0809142 +:1010D000EE0182FD28C0F5CF8091EE0183FF27C08D +:1010E0008091EE0184FD21C087EE2AC08091EE013F +:1010F00083FD1DC0F5CF8091EE0185FD1AC01BC098 +:101100008091EE0185FD17C014C08091EE0186FD2F +:1011100014C015C08091EE0186FD11C00EC080EE96 +:101120000FC089E30DC082EE0BC080E009C086EEDF +:1011300007C089E205C085E303C08AE201C081E3FC +:1011400090E0089508950C94A20880916F0108958D +:10115000CF93DF9300D01F92CDB7DEB79C01809173 +:10116000F401843019F593E099833B832A839093AB +:10117000E9008FEF9091E800815095FD06C095ED54 +:101180009A95F1F700008111F5CF8091E80085FF75 +:101190000DC040E050E063E070E0CE0101960E9497 +:1011A0000E0B8091E8008E778093E8000F900F90EF +:1011B0000F90DF91CF910895CF93DF9300D01F92CE +:1011C000CDB7DEB72091F401243021F522E0298348 +:1011D0009B838A8383E08093E9008FEF9091E800FE +:1011E000815095FD06C095ED9A95F1F700008111AB +:1011F000F5CF8091E80085FF0DC040E050E063E04E +:1012000070E0CE0101960E940E0B8091E8008E776F +:101210008093E8000F900F900F90DF91CF91089589 +:101220002091F4012430F1F422E02093E9002FEF23 +:101230003091E800215035FD06C035ED3A95F1F7C3 +:1012400000002111F5CF2091E80025FF0BC040E000 +:1012500050E065E070E00E940E0B8091E8008E7710 +:101260008093E8000895CF93DF93EC019091F4010F +:10127000943009F046C080910C018823D9F0809108 +:101280000D018823B9F09093E9008FEF9091E80069 +:10129000815095FD06C095E19A95F1F70000811106 +:1012A000F5CF8091E80085FF2CC040E050E060E180 +:1012B00070E017C081E08093E9008FEF9091E80023 +:1012C000815095FD06C095ED9A95F1F700008111CA +:1012D000F5CF8091E80085FF14C040E050E068E061 +:1012E00070E0CE010E940E0B8091E8008E77809313 +:1012F000E80080E1FE01AFE5B1E001900D928A9532 +:10130000E1F7DF91CF9108958091F301811109C038 +:101310000E94A30C0E94000D8091E20084608093E3 +:10132000E20008951092F301089508950C94472067 +:101330000E94F71A0E944D200E94A60F0C94A30849 +:1013400042E061EC81E00E941D0C42E061EC82E031 +:101350000E941D0C42E061EC83E00E941D0C42E102 +:1013600061EC84E00C941D0C8091F601833009F44B +:1013700055C030F4813071F0823009F48EC0089588 +:101380008A3009F47AC08B3009F460C0893009F0E2 +:101390009CC020C08091F501813A09F096C08091EF +:1013A000E800877F8093E8008091F9019091FA012D +:1013B000892B21F460E18FE591E003C060E080E0DB +:1013C00090E070E00E94590B8091E8008B77809349 +:1013D000E80008958091F501813209F076C080918E +:1013E000F9019091FA01009719F0039709F06DC087 +:1013F0008091E800877F8093E8008091E80082FD7B +:1014000005C08091F4018111F8CF5FC08091F10097 +:1014100080936F018091E8008B7753C08091F50134 +:10142000813A09F052C08091F9019091FA01892B1B +:1014300009F04BC08091E800877F8093E80080919D +:10144000E80080FFFCCF80910C0136C08091F5014F +:101450008132D9F58091F9019091FA01892BA9F592 +:101460008091E800877F8093E8000E94520C809171 +:10147000F70180930C010C943F148091F5018132A7 +:1014800021F58091E800877F8093E8000E94520C4C +:101490008091F8018093700108958091F501813A5F +:1014A000A1F48091E800877F8093E8008091E800B4 +:1014B00080FFFCCF809170018093F1008091E80063 +:1014C0008E778093E8000C94520C089584B7877F40 +:1014D00084BF88E10FB6F89480936000109260009A +:1014E0000FBE80E880936100109261000E94F50FAA +:1014F0000E94A30C0E94000D8091E2008460809302 +:10150000E20078940E94860F0E94F70F82E091E03B +:101510000E94A10F0E9435208091F401853069F46A +:101520000E94BF1A8091F2018823B1F30E94E91A48 +:10153000882391F30E94F80AEFCF0E94FD0FECCFB1 +:10154000292F332723303105C9F064F421303105C8 +:1015500081F02230310509F043C08DE690E026EE9F +:1015600031E042C021323105F1F02232310541F142 +:1015700037C082E190E023E532E036C09927813020 +:10158000910541F08230910541F0892B49F5E2EE59 +:10159000F1E005C0EAECF1E002C0E2EBF1E0849199 +:1015A00090E09F0121C06430D8F4E62FF0E0EE0F08 +:1015B000FF1FEE5DFE4F2081318189E090E014C075 +:1015C000643070F470E0FB01EE0FFF1FE65EFE4F2B +:1015D00020813181FB01EA5EFE4F808190E004C0F2 +:1015E00080E090E020E030E0FA013183208308952C +:1015F00080E189BD82E189BD09B400FEFDCF809103 +:10160000D8008F7D8093D8008091E0008260809325 +:10161000E0008091E00081FDFCCF0895CF92DF9241 +:10162000EF92FF920F931F93CF93DF93EC018B0107 +:101630006A010E94710C811133C0C114D10439F0C8 +:10164000F60180819181081B190BC80FD91FE12C6D +:10165000F12C0115110519F18091E80085FD16C0E6 +:101660008091E8008E778093E800C114D10449F09E +:10167000F60180819181E80EF91EF182E08285E019 +:101680000FC00E94710C882321F30AC089918093B6 +:10169000F10001501109FFEFEF1AFF0ADACF80E0E5 +:1016A000DF91CF911F910F91FF90EF90DF90CF903E +:1016B00008952091FB013091FC012617370748F06F +:1016C0006115710539F42091E8002E772093E80028 +:1016D00001C0B90140E061157105A9F12091F40143 +:1016E000222309F443C0253009F442C02091E800C8 +:1016F00023FD40C02091E80022FD32C02091E80087 +:1017000020FFE9CF4091F3002091F20030E0342B2C +:10171000FC01CF016115710559F02830310540F405 +:1017200081918093F100615071092F5F3F4FF1CF9C +:1017300041E02830310509F040E02091E8002E77A3 +:101740002093E800C8CF4111C9CF0AC08091F401AD +:10175000882361F0853061F08091E80083FD0AC044 +:101760008091E80082FFF2CF80E0089582E0089542 +:1017700083E0089581E008952091FB013091FC0100 +:101780002617370748F06115710539F42091E800F4 +:101790002E772093E80001C0B901FC0120E061151B +:1017A000710591F18091F401882309F440C08530DE +:1017B00009F43FC08091E80083FD3DC08091E800BE +:1017C00082FD2FC08091E80080FFE9CF2091F300D7 +:1017D0008091F20090E0922B6115710559F08830EC +:1017E000910540F424912093F100319661507109E4 +:1017F0000196F2CF21E0089709F020E08091E800FF +:101800008E778093E800CBCF2111CCCF0AC0809196 +:10181000F401882361F0853061F08091E80083FD58 +:101820000AC08091E80082FFF2CF80E0089582E054 +:10183000089583E0089581E00895982F973058F532 +:101840009093E900981739F07091EC002091ED0029 +:101850005091F00003C0242F762F50E021FF19C0D3 +:101860003091EB003E7F3093EB003091ED003D7FF7 +:101870003093ED003091EB0031603093EB007093CA +:10188000EC002093ED005093F0002091EE0027FF34 +:1018900007C09F5FD3CF8F708093E90081E00895E8 +:1018A00080E008958091F50187FF11C08091E800E4 +:1018B00082FD05C08091F4018111F8CF11C08091A3 +:1018C000E8008B770BC08091F401882349F0809168 +:1018D000E80080FFF8CF8091E8008E778093E800E1 +:1018E00008952091E4003091E50095E64091EC00E8 +:1018F000842F817040FF22C08091E80080FD1CC0D1 +:101900008091F401882391F0853091F08091EB0073 +:1019100085FD10C04091E4005091E5004217530747 +:1019200029F39A01915011F784E0089582E0089517 +:1019300083E0089581E0089580E008954091E800F3 +:1019400042FFDECF08950E94110D0E94190DE0EEB6 +:10195000F0E0808181608083E8EDF0E080818F7726 +:10196000808319BCA7EDB0E08C918E7F8C93808131 +:101970008F7E80831092F30108950F931F93CF936E +:10198000DF930E94110D0E94190DC8EDD0E08881EF +:101990008F77888388818068888388818F7D88831A +:1019A00019BC1092F4011092F0011092F201109201 +:1019B000F10100EE10E0F80180818B7F8083888147 +:1019C0008160888342E060E080E00E941D0CE1EECF +:1019D000F0E080818E7F8083E2EEF0E080818160A4 +:1019E0008083808188608083F80180818E7F8083FE +:1019F000888180618883DF91CF911F910F91089535 +:101A0000E8EDF0E080818F7E8083E7EDF0E080817B +:101A10008160808384E082BF81E08093F3010C9435 +:101A2000BD0CE8EDF0E080818E7F80831092E200B3 +:101A300008951092DA001092E10008951F920F921B +:101A40000FB60F9211242F933F934F935F936F9391 +:101A50007F938F939F93AF93BF93EF93FF93809167 +:101A6000E10082FF0BC08091E20082FF07C08091FD +:101A7000E1008B7F8093E1000E94850F8091DA0066 +:101A800080FF1FC08091D80080FF1BC08091DA00CA +:101A90008E7F8093DA008091D90080FF0DC080E1B5 +:101AA00089BD82E189BD09B400FEFDCF81E080934C +:101AB000F4010E94840905C019BC1092F4010E942F +:101AC00092098091E10080FF19C08091E20080FFBF +:101AD00015C08091E2008E7F8093E2008091E20049 +:101AE00080618093E2008091D80080628093D8006A +:101AF00019BC85E08093F4010E9496098091E10071 +:101B000084FF30C08091E20084FF2CC080E189BD59 +:101B100082E189BD09B400FEFDCF8091D8008F7DA0 +:101B20008093D8008091E1008F7E8093E1008091C6 +:101B3000E2008F7E8093E2008091E20081608093DA +:101B4000E2008091F001882311F084E007C08091C9 +:101B5000E30087FD02C081E001C083E08093F401CF +:101B60000E9498098091E10083FF29C08091E200E2 +:101B700083FF25C08091E100877F8093E10082E0B0 +:101B80008093F4011092F0018091E1008E7F8093A8 +:101B9000E1008091E2008E7F8093E2008091E2007C +:101BA00080618093E20042E060E080E00E941D0CD2 +:101BB0008091F00088608093F0000E949509FF9169 +:101BC000EF91BF91AF919F918F917F916F915F91B5 +:101BD0004F913F912F910F900FBE0F901F9018952E +:101BE0001F920F920FB60F9211242F933F934F9392 +:101BF0005F936F937F938F939F93AF93BF93CF9395 +:101C0000DF93EF93FF93C091E900CF708091EC00D8 +:101C1000D82FD17080FDD0E81092E9008091F000BB +:101C2000877F8093F00078940E94340E1092E90030 +:101C30008091F00088608093F000CD2BCF70C0932E +:101C4000E900FF91EF91DF91CF91BF91AF919F910B +:101C50008F917F916F915F914F913F912F910F9055 +:101C60000FBE0F901F9018951F93CF93DF93CDB7A2 +:101C7000DEB7AA970FB6F894DEBF0FBECDBFE5EF73 +:101C8000F1E088E08E0F9091F10091938E13FBCFDD +:101C90000E94B4098091E80083FF1FC18091F50183 +:101CA0009091F601492F50E04A30510508F015C1D6 +:101CB000FA01EA5AFF4F0C94CF21803881F0823824 +:101CC00009F00BC18091F9018F708093E900809138 +:101CD000EB0085FB882780F91092E90006C080910F +:101CE000F1019091F201911182609091E800977F4B +:101CF0009093E8008093F1001092F100C8C0282F63 +:101D00002D7F09F0EAC0882319F0823061F0E5C028 +:101D10008091F701813009F0E0C0933009F080E054 +:101D20008093F2012BC08091F701811127C080912F +:101D3000F9018F7009F4D1C08093E9002091EB0084 +:101D400020FF1CC0933021F48091EB00806214C00E +:101D50009091EB0090619093EB0021E030E0A901BD +:101D600002C0440F551F8A95E2F74093EA00109293 +:101D7000EA008091EB0088608093EB001092E9000C +:101D80008091E800877F86C08111A7C01091F7017C +:101D90001F778091E3008078812B8093E30080910E +:101DA000E800877F8093E8000E94520C8091E80051 +:101DB00080FFFCCF8091E30080688093E3001111E5 +:101DC00002C082E001C083E08093F40186C08058A5 +:101DD000823008F082C08091F7019091F8018C3D2B +:101DE00053E0950779F583E08A838AE289834FB7C8 +:101DF000F894DE01139620E03EE051E2E32FF0E09C +:101E000050935700E49120FF03C0E295EF703F5FCD +:101E1000EF708E2F90E0EA3010F0C79601C0C096A8 +:101E20008D939D932F5F243149F74FBF8091E80038 +:101E3000877F8093E8006AE270E0CE0101960E94FD +:101E4000590B14C0AE014F5F5F4F6091F9010E94C2 +:101E5000A00ABC01009709F440C09091E800977F68 +:101E60009093E80089819A810E94BC0B8091E800E0 +:101E70008B778093E80031C0803879F58091E80055 +:101E8000877F8093E8008091F0018093F10080913A +:101E9000E8008E778093E8000E94520C1EC08111EA +:101EA0001CC09091F7019230C0F48091E800877FC8 +:101EB0008093E8009093F0010E94520C8091F00111 +:101EC000811106C08091E30087FD02C081E001C05E +:101ED00084E08093F4010E94A0098091E80083FFD0 +:101EE0000AC08091E800877F8093E8008091EB0032 +:101EF00080628093EB00AA960FB6F894DEBF0FBE07 +:101F0000CDBFDF91CF911F9108950895CF93809118 +:101F1000F4018823A1F0C091E900CF709091EC000A +:101F2000892F817090FD80E8C82B1092E900809184 +:101F3000E80083FD0E94340ECF70C093E900CF917A +:101F4000089590937601809375010895E09175014D +:101F5000F0917601309721F00190F081E02D099405 +:101F600080E00895E0917501F0917601309721F0BD +:101F70000280F381E02D09940895E0917501F091BC +:101F80007601309721F00480F581E02D09940895C1 +:101F900020917301309174018217930771F090932F +:101FA000740180937301E0917501F091760130978F +:101FB00021F00680F781E02D0994089520917101A8 +:101FC000309172018217930771F0909372018093A0 +:101FD0007101E0917501F0917601309721F0008454 +:101FE000F185E02D0994089508950C94F40F0E9452 +:101FF000FD1A0E9491020C94831B9F92AF92BF9294 +:10200000CF92DF92EF92FF920F931F93CF93DF93C4 +:1020100000D000D000D0CDB7DEB70E94B8020DE0EE +:1020200010E0AA24A394B12C902E802F0E94A60326 +:10203000980128583E4F6901F901F080F826A1F473 +:102040000150110988F78FEF89838A831B820E94D0 +:10205000061B8160782F9D838C8349815A816B8117 +:102060008D810E9494102FC09091DB0191FF04C0DC +:102070008E830E94AC038E8125E030E0A501022E04 +:1020800001C0440F0A94EAF7E42E4F21C1F02983DE +:102090009A828E2191E009F490E09B830E94061BB6 +:1020A0008160782F9D838C8349815A816B818D81DA +:1020B0000E949410F6018081E826E08204C021503D +:1020C0003109E0F6BDCF0E94511D109177010E94A9 +:1020D000A60F1817B9F00E94A60F809377012696D5 +:1020E0000FB6F894DEBF0FBECDBFDF91CF911F9129 +:1020F0000F91FF90EF90DF90CF90BF90AF909F90A7 +:102100000C94A30826960FB6F894DEBF0FBECDBF81 +:10211000DF91CF911F910F91FF90EF90DF90CF90C3 +:10212000BF90AF909F900895CF93DF93CDB7DEB768 +:102130002B970FB6F894DEBF0FBECDBF4F835887E5 +:1021400069877A878B87DE01119686E0FD011192FF +:102150008A95E9F785E0FE01379601900D928A9500 +:10216000E1F749815A816B817C818D819E810E943A +:10217000DD162B960FB6F894DEBF0FBECDBFDF91F4 +:10218000CF910895CF93882309F4C2C0C82F823815 +:1021900059F40E94A60F81FDBBC089E30E94B719C4 +:1021A0000E94841A89E30CC0833879F40E94A60F38 +:1021B00080FDAEC083E50E94B7190E94841A83E5B2 +:1021C0000E94F919CF910C94841A843859F40E9412 +:1021D000A60F82FD9DC087E40E94B7190E94841A51 +:1021E00087E4EECF8CEF8C0F813A48F48C2F0E945D +:1021F0009B1F81118DC08C2F0E94B719E3CF80E205 +:102200008C0F883048F4C77081E001C0880FCA95F0 +:10221000EAF70E943D1AD6CF8BE58C0F833078F415 +:10222000C53A29F0C63A31F083E890E005C081E86C +:1022300090E002C082E890E0CF910C94C80F88E54E +:102240008C0F833108F064C0C83A39F1C93A41F1C2 +:10225000CA3A49F1CB3A51F1CC3A59F1CD3A61F150 +:10226000C03B69F1CE3A71F1CF3A79F1C13B81F1CE +:10227000C23B89F1C33B91F1C43B99F1C53BA1F14C +:10228000C63BA9F1C73BB1F1C83BB9F1C93BC1F1AC +:10229000CA3BC9F180E090E038C082EE90E035C0E2 +:1022A00089EE90E032C08AEE90E02FC085EB90E09E +:1022B0002CC086EB90E029C087EB90E026C08CEC28 +:1022C00090E023C08DEC90E020C083E891E01DC039 +:1022D0008AE891E01AC082E991E017C084E991E0B0 +:1022E00014C081E292E011C083E292E00EC084E269 +:1022F00092E00BC085E292E008C086E292E005C061 +:1023000087E292E002C08AE292E0CF910C94DE0F65 +:10231000CF910895882309F44BC0823859F40E9464 +:10232000A60F81FF45C089E30E94B7190E94841A55 +:1023300089E30CC0833871F40E94A60F80FF38C077 +:1023400083E50E94B7190E94841A83E50E94F91957 +:102350000C94841A843859F40E94A60F82FF28C076 +:1023600087E40E94B7190E94841A87E4EFCF9CEF9C +:10237000980F913A58F390E2980F983050F4877084 +:1023800091E001C0990F8A95EAF7892F0E94431ABC +:10239000DFCF9BE5980F933020F480E090E00C9421 +:1023A000C80F885A833120F480E090E00C94DE0F4F +:1023B0000895882321F00E943D1A0C94841A0895F0 +:1023C000882321F00E94431A0C94841A08957F9266 +:1023D0008F929F92AF92BF92CF92DF92EF92FF9235 +:1023E0000F931F93CF93DF931F92CDB7DEB77C017E +:1023F000C62E772EFC01058102950F7012811111F6 +:102400000E945A1A0E94B019882379F0112369F0AA +:1024100080E28C0D883048F082E00E9499190E9479 +:10242000B01991E0D82ED92601C0D12CE72DE29524 +:10243000EF70F0E0E05AFF4F0C94CF21872D807FA2 +:10244000072D0F70882311F00295007F112389F06A +:10245000002309F490C180E28C0D883020F4802F95 +:102460000E943D1A03C0802F0E944D1A0E94841AB8 +:1024700082C18C2D0E948A11002309F495C180E24B +:102480008C0D883020F4802F0E94431A03C0802FC7 +:102490000E94531A0E94841A87C1972D907F872D1E +:1024A0008F70903211F08295807FCC2021F0F1E086 +:1024B000CF16B1F01EC0112349F0002309F414C156 +:1024C000013009F011C10E946D1A6EC1002319F08C +:1024D000013009F469C189830E94701A89810AC197 +:1024E000112321F0023008F05FC1FEC001115CC170 +:1024F00001C1112321F0002309F4F6C03CC10023DF +:1025000009F4F8C03EC1872D86958695837090E0CA +:10251000009719F0019761F047C1112321F08C2D2C +:10252000972D937002C080E090E00E94C80F3CC1DC +:10253000112321F08C2D972D937002C080E090E044 +:102540000E94DE0F31C18C2D112319F00E94591CFD +:1025500002C00E94C11C0E94461D26C1872D8370A7 +:1025600009F052C0111120C18C2D8295869587707B +:10257000880F880F9C2D9F70892E912CA12CB12C37 +:10258000082E04C0880C991CAA1CBB1C0A94D2F704 +:10259000C4FE14C00FE010E020E030E0B901A80153 +:1025A00004C0440F551F661F771F8A95D2F7CB01D1 +:1025B000BA01609570958095909503C060E070E0D9 +:1025C000CB01272D26952695237030E0223031054A +:1025D00069F02330310589F0682979298A299B29F6 +:1025E0002130310571F00E942518DEC06829792953 +:1025F0008A299B290E944118D7C00E942518C5012D +:10260000B4010E940918D0C0112319F0872D8170E0 +:1026100001C08695882309F4C7C08C2D82958695C4 +:102620008770880F880F9C2D9F70892E912CA12C6C +:10263000B12C082E04C0880C991CAA1CBB1C0A943F +:10264000D2F7C4FE14C00FE010E020E030E0B90182 +:10265000A80104C0440F551F661F771F8A95D2F743 +:10266000CB01BA01609570958095909503C060E0AC +:1026700070E0CB01272D269526952370422F50E040 +:102680004230510569F04330510589F068297929B4 +:102690008A299B294130510571F00E94FF1884C09E +:1026A000682979298A299B290E941B197DC00E94CB +:1026B000FF18C501B4010E94E31876C08C2D90E08C +:1026C000FC01E05EF109E531F10508F050C0E05988 +:1026D000FF4F0C94CF210C2D0F70872D8F7111237C +:1026E00031F00E947C18802F0E94D9115DC00E9499 +:1026F0009D18802F0E94E01157C0112339F001115D +:1027000053C0872D8F710E94C2184EC0023008F04E +:102710004BC0F7CF112339F0872D8F710E947C18A1 +:1027200043C01123C9F3872D8F710E949D183CC0AF +:10273000112329F0872D8F710E94671835C00E94E0 +:102740005D1832C0112351F0172D1F71812F0E9487 +:102750007C1863E0812F0E94901926C081E00E94BE +:102760009919023008F182E00E9499191DC01123C5 +:1027700031F0002389F28C2D0E94C21015C0002375 +:1027800091F28C2D0E948A110FC0472D4F706C2D35 +:10279000C7010E9482040E94811706C0472D4F7016 +:1027A0006C2DC7010E941208DD20F9F00E948C19DF +:1027B00080FD1BC0F70112820E9486190E947C18BE +:1027C000C7010E9404140E9486190F90DF91CF91D7 +:1027D0001F910F91FF90EF90DF90CF90BF90AF903F +:1027E0009F908F907F900C949D180F90DF91CF91C8 +:1027F0001F910F91FF90EF90DF90CF90BF90AF901F +:102800009F908F907F9008950F931F93CF93DF93A6 +:10281000EC01888199812B813C81232BB9F09F3F6A +:1028200011F48F3F99F0CE010E94A304882371F028 +:10283000688179818A810E9482198C010E943719EE +:102840000E94FE17B801CE010E94E711DF91CF91DF +:102850001F910F9108950E945A1A0E946A1A0E94AD +:102860002F1A0E94841A0E94F71D0E94461D80E0C4 +:1028700090E00E94C80F80E090E00C94DE0F0E9470 +:102880004A1A0C942B140E947719292F22952F7025 +:1028900030E02C3031054CF42A3031056CF42250F4 +:1028A000310922303105A8F407C02C30310569F018 +:1028B0002F30310551F00DC0803F69F018F4803E93 +:1028C00040F409C0843F29F406C093FB882780F9AF +:1028D000089580E0089581E00895CF93DF9300D0BC +:1028E00000D01F92CDB7DEB70F900F900F900F90D2 +:1028F0000F90DF91CF910895CF93DF9300D000D058 +:1029000000D0CDB7DEB726960FB6F894DEBF0FBE67 +:10291000CDBFDF91CF9108951F93CF93DF93C091E7 +:10292000860116E080918701C81799F0D0E01C9FBE +:10293000F0011D9FF00D1124E857FE4F4081518199 +:1029400062817381848195810E947C142196C77075 +:10295000E9CFDF91CF911F9108954091B801509137 +:10296000B9016091BA017091BB018091BC01909155 +:10297000BD010C947C148091BD0182958F7009F08B +:1029800054C08091BA01882309F44FC08091860118 +:10299000A09187016091B8017091B9014091BB018C +:1029A0005091BC01B6E08A1709F43FC090E0411590 +:1029B0005105C1F17F3F11F46F3FA1F1B89FF001C4 +:1029C000B99FF00D1124E857FE4F218172132AC0E0 +:1029D0002081621327C02281211124C023813481E8 +:1029E0002417350710F421503109241B350B283CDE +:1029F0003105C0F42091BD012F7020612093BD01ED +:102A000026E0289FF001299FF00D1124E357FE4F87 +:102A100080818F708061808388EB91E00E94041434 +:102A20000C948C1401968770BECF0895CF92DF92DC +:102A3000EF92FF920F931F93CF93DF93CDB7DEB743 +:102A400062970FB6F894DEBF0FBECDBF8C0185E054 +:102A5000F801DE011D9601900D928A95E1F7D801EB +:102A60004C9111965C91119712966C911297139656 +:102A7000CD90DC9014973091B8017091B90180919C +:102A8000BB019091BC01009709F46BC17F3F19F421 +:102A90003F3F09F466C1E090BA01EE2009F4C0C0DE +:102AA0002091BD01C816D90628F0F601E81BF90BE4 +:102AB000CF0104C0809590958C0D9D1DFF24F3944B +:102AC000883C910578F0F12C207F09F0C6C07C2D60 +:102AD000D98AC88A89890E946D1488EB91E00E9486 +:102AE0000414B1C0822F807F09F046C0751314C052 +:102AF000341312C0611110C02F7020612093BD01EA +:102B00000E94AD1488EB91E00E9404148091BD01F5 +:102B1000D80115968C932EC0CD2819F15F3F11F482 +:102B20004F3FF9F0F62E61111CC080918601209173 +:102B3000870136E0821709F45AC090E0389FF0010F +:102B4000399FF00D1124E857FE4F7181571306C0CD +:102B50007081471303C07281711103C001968770A1 +:102B6000E9CFF62E662309F418C18091BD0181607A +:102B70008093BD01F12C11C1751308C0341306C038 +:102B8000611104C08091BD01D801C3C04D875E872B +:102B90008D859E856A8B0E9443146A898823E1F1A2 +:102BA0006623D1F12091BD01822F82958F7090E034 +:102BB000029774F08091B8019091B90198878F8342 +:102BC0001986DB86CA862C87CE0107960E940414DC +:102BD00086E0F801A8EBB1E001900D928A95E1F74B +:102BE0000E94BB140E94AD14FF24F394D6C04D87FD +:102BF0005E878D859E850E947719292F22952F70DB +:102C000030E0223031050CF0BCC09F7009F0B6C036 +:102C1000805E883008F4C1C0C8010E940414E4CF6B +:102C2000C816D90608F453C0F601E81BF90BCF010A +:102C3000883C910508F450C0F12C7C2DD98AC88AB3 +:102C400089890E946D14E8EBF1E086E0DF011D92B6 +:102C50008A95E9F70E94AD14A0C0751314C034130F +:102C600012C0611110C08091BD01F8018583C801B7 +:102C70000E94041486E0E8EBF1E0DF011D928A95E2 +:102C8000E9F7FE2C8AC04D875E878D859E856A8B0D +:102C90000E9443146A89882309F4BECF662309F48D +:102CA000BBCF2091BD01822F82958F7090E002975B +:102CB0000CF48ECF8091B8019091B9019A838983E9 +:102CC0001B82DD82CC822E83CE0101967FCF809540 +:102CD00090958C0D9D1DACCFF62E662309F49CCFEC +:102CE00075132EC034132CC02091BD0120FD1FC0D0 +:102CF000822F82958F70D9F0D80115962C93159755 +:102D00008F3049F08F5F982F9295907F822F8F7030 +:102D1000892B15968C93C8010E94041486E0F80153 +:102D2000A8EBB1E001900D928A95E1F793CF86E090 +:102D3000F801A8EBB1E001900D928A95E1F72DC062 +:102D40004D875E878D859E850E944314811140CFFB +:102D50008091BD0181608093BD01C8010E9404146F +:102D60001CC0662309F458CF4D875E878D859E85EC +:102D70000E944314882309F44FCF2ACF811148CFF2 +:102D80000CC0243031050CF047CF9F7009F440CFC0 +:102D9000F8019581907F09F03BCF8F2D62960FB699 +:102DA000F894DEBF0FBECDBFDF91CF911F910F9181 +:102DB000FF90EF90DF90CF9008951F93CF93DF9314 +:102DC000CDB7DEB72C970FB6F894DEBF0FBECDBFE0 +:102DD0004F83588769877A878B879C87CE010796B0 +:102DE0000E941615882369F08F8198852A853B8576 +:102DF000232BF1F19F3F09F063C08F3F09F060C0C2 +:102E000037C086E0FE013796DE01119601900D92E3 +:102E10008A95E1F76F817885EA85FB85309741F1E6 +:102E20007F3F11F46F3F21F12091870130E0C9010C +:102E30000196877099274091860150E08417950785 +:102E400009F447C069837A83FD83EC8396E0929FFF +:102E5000D001939FB00D1124A857BE4FFE013196AB +:102E600001900D929A95E1F7809387010E948C144E +:102E700016E080918601909187018917C1F1189F12 +:102E8000C001112488579E4F0E941615882379F19E +:102E9000E09186011E9FF0011124E857FE4F40810A +:102EA000518162817381848195810E947C1480911B +:102EB000860190E001968770992780938601D9CF8B +:102EC0004F81588569857A858B859C850E947C1405 +:102ED000CFCF0E943F141092870110928601E8EB39 +:102EE000F1E086E0DF011D928A95E9F7C1CF2C96CB +:102EF0000FB6F894DEBF0FBECDBFDF91CF911F910B +:102F00000895EF92FF920F931F93CF93DF938C015D +:102F1000009709F46CC0F12CEE24E394E8012196AB +:102F2000F8018491843740F4843008F051C0813036 +:102F300081F0823019F15BC0853709F444C0A8F1F3 +:102F40009CE7980F903708F052C08F770E948A1143 +:102F500041C00E5F1F4FFE01C49180E28C0F88308C +:102F600048F4C7708E2D01C0880FCA95EAF70E94F9 +:102F70005D1A14C08C2F0E94C2102DC00E5F1F4F0F +:102F8000FE01C49180E28C0F883058F4C7708E2DFA +:102F900001C0880FCA95EAF70E94631A0E94841A3A +:102FA0001AC08C2F0E948A1116C00E5F1F4FFE019F +:102FB000C491CC2381F08FE99FE00197F1F700C025 +:102FC0000000C150F6CF0E5F1F4FFE01F49003C00A +:102FD0000E94C2108E018F2D882309F49FCFEFE944 +:102FE000FFE03197F1F700C000008150F5CFDF918D +:102FF000CF911F910F91FF90EF90089508956093E6 +:10300000C2017093C3018093C4019093C5010C94D5 +:103010002B140F931F930091C2011091C3012091B3 +:10302000C4013091C501DC01CB01802B912BA22B77 +:10303000B32B8093C2019093C301A093C401B093BA +:10304000C5011F910F910C942B140F931F930091A6 +:10305000C2011091C3012091C4013091C501DC016E +:10306000CB0180239123A223B3238093C2019093A9 +:10307000C301A093C401B093C5011F910F910C949B +:103080002B140F931F930091C2011091C301209143 +:10309000C4013091C501DC01CB0180279127A22713 +:1030A000B3278093C2019093C301A093C401B0934E +:1030B000C5011F910F910C942B141092BE01109218 +:1030C000BF011092C0011092C1010C942B1441E079 +:1030D00050E060E070E004C0440F551F661F771F8A +:1030E0008A95D2F74093BE015093BF016093C0010F +:1030F0007093C1010C942B1441E050E060E070E04B +:1031000004C0440F551F661F771F8A95D2F7809120 +:10311000BE019091BF01A091C001B091C101482BA7 +:10312000592B6A2B7B2B4093BE015093BF016093B8 +:10313000C0017093C1010C942B1441E050E060E099 +:1031400070E004C0440F551F661F771F8A95D2F7A1 +:1031500040955095609570958091BE019091BF010A +:10316000A091C001B091C101482359236A237B2358 +:103170004093BE015093BF016093C0017093C101A1 +:103180000C942B1441E050E060E070E004C0440F68 +:10319000551F661F771F8A95D2F78091BE019091C7 +:1031A000BF01A091C001B091C101482759276A27EA +:1031B0007B274093BE015093BF016093C001709381 +:1031C000C1010C942B140F931F930091BE01109119 +:1031D000BF012091C0013091C101DC01CB01802BE6 +:1031E000912BA22BB32B8093BE019093BF01A09390 +:1031F000C001B093C1011F910F910C942B140F9338 +:103200001F930091BE011091BF012091C001309128 +:10321000C101DC01CB0180239123A223B32380933E +:10322000BE019093BF01A093C001B093C1011F9153 +:103230000F910C942B140F931F930091BE011091CA +:10324000BF012091C0013091C101DC01CB01802779 +:103250009127A227B3278093BE019093BF01A0932B +:10326000C001B093C1011F910F910C942B140895CC +:10327000CF92DF92EF92FF920F931F93CF93DF9342 +:103280008C01C090C201D090C301E090C401F090C5 +:10329000C5018091BE019091BF01A091C001B09184 +:1032A000C101C82AD92AEA2AFB2ACFE1D0E0D701F6 +:1032B000C6010C2E04C0B695A795979587950A94DC +:1032C000D2F780FF06C0B8018C2F0E9491060197AB +:1032D00021F4219760F780E001C08C2FDF91CF911E +:1032E0001F910F91FF90EF90DF90CF900895CF93B3 +:1032F000DF93EC010E943819BE010E949106DF9114 +:10330000CF910895CB010E94771908958091C6014D +:1033100085958595859508958091C6018770089556 +:1033200098E0899F90011124262B2093C6010C94CC +:103330007C182091C601809582238093C601982F26 +:10334000977069F430E0482F552747FD50952417B2 +:10335000350729F08595859585950C949D180895D8 +:103360009091C601977081E009F480E008959091F2 +:103370000C01992321F090910D01911109C0209128 +:103380000E0130910F01F90132969FEF40E01FC00E +:10339000982F9695969596959F3050F5E0910E0151 +:1033A000F0910F01E90FF11D877021E030E0A901D4 +:1033B00002C0440F551F8A95E2F7CA019181892BFB +:1033C000818308959F3F39F04F5F4E3041F0519116 +:1033D0005813F8CF0DC05111F7CF942FF5CF9F3F61 +:1033E00039F0F901E90FF11D97FDFA9582830895EF +:1033F000089590910C01992321F090910D01911164 +:1034000009C020910E0130910F01F9013296205F21 +:103410003F4F1FC0982F9695969596959F30F0F444 +:10342000E0910E01F0910F01E90FF11D877021E08D +:1034300030E0A90102C0440F551F8A95E2F7CA0186 +:10344000809591818923818308953196E217F3074E +:1034500029F090819813F9CF1082F7CF089581E079 +:1034600090E0E0910E01F0910F01E80FF91F10823A +:10347000019680319105A9F708959091DA01892B81 +:103480008093DA01089580959091DA0189238093E1 +:10349000DA0108951092DA0108959091D901892BEB +:1034A0008093D901089580959091D90189238093C3 +:1034B000D90108951092D90108959091D801892BCE +:1034C0008093D801089580959091D80189238093A5 +:1034D000D80108951092D80108958093C7010895E6 +:1034E0001092C701089580910E0190910F01FC0187 +:1034F00031969C01205F3F4F80E0919191118F5F49 +:10350000E217F307D1F70895E0910E01F0910F0152 +:103510008091DA018083E0910E01F0910F0190819A +:103520008091D901892B8083E0910E01F0910F01E8 +:1035300090818091D801892B80838091C701882355 +:1035400061F0E0910E01F0910F019081892B808351 +:103550000E94731A81111092C70180910E019091FF +:103560000F010C94B20F20E0009739F0AC014150EC +:103570005109842395232F5FF7CF822F08958091DF +:10358000F401843021F11092DC0120E488E190E024 +:103590000FB6F894A895809360000FBE209360004A +:1035A00080E00E94A30883B7817F846083BF83B7D4 +:1035B000816083BF7894889583B78E7F83BF88E1CD +:1035C0000FB6F89480936000109260000FBE0895CB +:1035D00008950E94A5020E94B8020E94E81A0E9463 +:1035E000AD0391E0811101C090E0892F08950E9400 +:1035F0003F140E94A60F0C94A30882E084BD93E0C0 +:1036000095BD9AEF97BD80936E0008952FB7F894FB +:103610008091DD019091DE01A091DF01B091E00188 +:103620002FBF0895CF92DF92EF92FF920F931F93D7 +:103630002FB7F8944091DD015091DE016091DF01D8 +:103640007091E0012FBF6A017B01EE24FF248C0101 +:1036500020E030E0C016D106E206F30610F4415037 +:1036600051099A01281B390BC9011F910F91FF9035 +:10367000EF90DF90CF9008951F920F920FB60F92A8 +:1036800011248F939F93AF93BF938091DD0190910D +:10369000DE01A091DF01B091E0010196A11DB11DF5 +:1036A0008093DD019093DE01A093DF01B093E001F0 +:1036B000BF91AF919F918F910F900FBE0F901F9070 +:1036C00018950E94A30CF8942FEF87EA91E62150F9 +:1036D00080409040E1F700C0000087E090EBDC0103 +:1036E0008093FD019093FE01A093FF01B09300022F +:1036F0009CE088E10FB6F894A895809360000FBE17 +:1037000090936000FFCF0E94BB1B811102C00E94FA +:10371000A11B0E94C61B8093DB010E94CE1B90E080 +:103720009093EF018093EE0187FB882780F98093C7 +:103730000D010E94CA1B682F70E080E090E00C949D +:10374000FF176DEE7EEF80E090E00E94092260E0BE +:1037500082E090E00E94F72160E083E090E00E9428 +:10376000F72160E084E090E00E94F72160E085E0CE +:1037700090E00C94F72180E090E00E94F12121E09C +:103780008D3E9E4F09F020E0822F089582E090E068 +:103790000C94E92183E090E00C94E92184E090E02E +:1037A0000C94E921682F84E090E00C94F72180913B +:1037B000E30180FF0BC06091130185E0689FB001B9 +:1037C000112475956795759567952BC081FF09C084 +:1037D0006091130185E0689FB0011124759567958C +:1037E00020C082FF07C06091130185E0689FB0018F +:1037F000112417C09091E4019923D1F06091120136 +:10380000961788F72091130185E0289F90011124D5 +:10381000929FA001939F500D112470E0CA010E9455 +:10382000BB216038710540F46115710539F002C0A3 +:1038300065E070E0862F08958FE7089581E0089590 +:103840008091E30180FF08C06091110170E07595DF +:1038500067957595679521C081FF06C0609111013C +:1038600070E07595679519C082FF04C060911101E1 +:1038700070E010C09091E4019923C1F060911001B3 +:103880009617A0F780911101899FC001112470E063 +:103890000E94BB216038710528F46115710521F083 +:1038A000862F08958FE7089581E0089561E070E024 +:1038B000F4CF803F21F40E94D71B819504C0813F43 +:1038C00029F40E94D71B8093E7010895823F21F4D9 +:1038D0000E94D71B819504C0833F29F40E94D71B07 +:1038E0008093E6010895893F19F40E94201C05C0C9 +:1038F0008A3F31F40E94201C81958093E80108954D +:103900008B3F21F40E94201C819504C08C3F29F438 +:103910000E94201C8093E9010895843F21F4809146 +:10392000E501816017C0853F21F48091E501826047 +:1039300011C0863F21F48091E50184600BC0873F70 +:1039400021F48091E501886005C0883F31F48091C1 +:10395000E50180618093E50108958D3F21F4809118 +:10396000E30181600BC08E3F21F48091E30182600E +:1039700005C08F3F29F48091E30184608093E301C7 +:103980000895803F39F48091E70187FF6CC0109261 +:10399000E70169C0813F29F48091E7011816BCF363 +:1039A00062C09091E601823F29F497FF5CC01092BB +:1039B000E60159C0833F19F41916CCF354C0893F6E +:1039C00041F48091E80118160CF04DC01092E80106 +:1039D0004AC08A3F29F48091E80187FF44C0F6CFAE +:1039E0008B3F39F48091E90187FF3DC01092E901D6 +:1039F0003AC08C3F29F48091E9011816BCF333C01A +:103A0000843F21F48091E5018E7F17C0853F21F42A +:103A10008091E5018D7F11C0863F21F48091E50101 +:103A20008B7F0BC0873F21F48091E501877F05C024 +:103A3000883F31F48091E5018F7E8093E50113C0CA +:103A40008D3F21F48091E3018E7F0BC08E3F21F4E6 +:103A50008091E3018D7F05C08F3F29F48091E301C0 +:103A60008B7F8093E3018091E60181110EC08091EC +:103A7000E70181110AC08091E801811106C080919F +:103A8000E901811102C01092E401089585EE91E0F0 +:103A90000E94BD0F0E94061B9093E2018093E101FA +:103AA00008951F93CF93DF938091E1019091E201FC +:103AB0000E94121BAC019091E401992321F0209106 +:103AC000140130E006C0209115018AE0289F900182 +:103AD00011244217530708F486C08091E601C09173 +:103AE000E701D091E8011091E901811107C0C111EE +:103AF00076C0D11174C0111172C075C09F3F19F00A +:103B00009F5F9093E401181624F40E94D71B8093C2 +:103B1000E6018091E60187FF05C00E94D71B8195D1 +:103B20008093E6011C1624F40E94D71B8093E701C2 +:103B30008091E70187FF05C00E94D71B8195809384 +:103B4000E7016091E601662339F1C091E701CC23DA +:103B500019F1772767FD7095872F972F0E94CC204A +:103B600023E333E343E35FE30E9430210E94992083 +:103B70006093E6016C2F772767FD7095872F972F4D +:103B80000E94CC2023E333E343E35FE30E94302130 +:103B90000E9499206093E7011D1624F40E94201CC6 +:103BA0008093E8018091E80187FF05C00E94201CF6 +:103BB00081958093E801111624F40E94201C8093C3 +:103BC000E9018091E90187FF05C00E94201C8195D1 +:103BD0008093E901DF91CF911F910C94461D9F3F87 +:103BE00009F08ECF96CFDF91CF911F910895E5EE2A +:103BF000F1E085E0DF011D928A95E9F71092E4017A +:103C00001092E3010895833081F128F4813059F056 +:103C10008230D1F00895853009F449C0B8F186307A +:103C200009F456C0089580911501262F30E0280F21 +:103C3000311D2F3F310524F4680F6093150108955D +:103C40008FEF80931501089580911401262F30E0A5 +:103C5000280F311D2F3F310524F4680F60931401A4 +:103C600008958FEF80931401089580911301262FFA +:103C700030E0280F311D2F3F310524F4680F609389 +:103C8000130108958FEF809313010895809112011D +:103C9000262F30E0280F311D2F3F310524F4680F07 +:103CA0006093120108958FEF80931201089580911F +:103CB0001101262F30E0280F311D2F3F310524F44C +:103CC000680F6093110108958FEF8093110108959B +:103CD00080911001262F30E0280F311D2F3F310534 +:103CE00024F4680F6093100108958FEF8093100102 +:103CF0000895833011F128F4813049F0823091F039 +:103D00000895853081F120F18630C1F108958091C8 +:103D10001501681720F4861B8093150108951092F1 +:103D20001501089580911401681720F4861B809373 +:103D300014010895109214010895809113016817D9 +:103D400020F4861B809313010895109213010895A7 +:103D500080911201681720F4861B80931201089548 +:103D600010921201089580911101681720F4861BAA +:103D7000809311010895109211010895809110010E +:103D8000681720F4861B809310010895109210018B +:103D900008950F931F938D3109F471C008F045C049 +:103DA000803109F485C008F5873009F46FC068F4E4 +:103DB000863009F0ADC08091DB01817F8E7F8093DA +:103DC000DB0181E08093EB01A4C08B3009F49EC03D +:103DD0008E3009F09DC08091DB0182FB222720F903 +:103DE00091E0922790FB82F96CC0863109F48EC075 +:103DF00060F4813109F08CC00E943F1490910D0154 +:103E000081E0892780930D0181C0893109F47EC04A +:103E10008B3109F07DC08091DB0181FB222720F9E5 +:103E200091E0922790FB81F94CC0853309F466C07C +:103E300048F4873209F462C008F44FC0893209F4AB +:103E40005DC066C0833438F48A3308F044C08833D8 +:103E500009F45CC05DC0833409F450C0883409F0B3 +:103E600057C00E943F140FEF13ED20E301501040A4 +:103E70002040E1F700C000000E94611B47C00E9483 +:103E800053200E94A60F0E94A30840C09091DB011E +:103E9000892F8095817080FB90F929F09660986059 +:103EA0009093DB0136C0997F977F9093DB012EC002 +:103EB0008091DB0183FB222720F991E0922790FB80 +:103EC00083F98093DB01992309F18091DB01816003 +:103ED0008093DB011BC0895301C08D5141E050E04C +:103EE00060E070E08A019B0104C0000F111F221FD7 +:103EF000331F8A95D2F7C901B80104C061E070E0B0 +:103F000080E090E00E94FF170E943F1481E001C012 +:103F100080E01F910F91089580E0089580E008955A +:103F20008E518A3030F4E82FF0E0E65DFE4F80815C +:103F3000089580E00895CF93C82F8091EB018130E0 +:103F400079F018F08230E9F186C0E0910E01F0912D +:103F50000F018081813169F0823209F07EC009C091 +:103F6000E0910E01F0910F018081813111F08232D8 +:103F700061F48C2F0E948C1F811104C08C2F0E9431 +:103F8000C91E1DC081E090E01AC08C2F0E948E1FB8 +:103F9000811114C0C43179F048F4CB3079F0C031CC +:103FA00009F05FC082E08093EB0108C0C93219F0CC +:103FB000C83321F056C01092EB0153C081E08170EC +:103FC00052C0C93281F110F5C43169F1A8F4C7308B +:103FD00009F045C08AE08093150194E190931401A3 +:103FE00093E0909313018093120188E08093110174 +:103FF00088E28093100133C082EE8C0F863078F512 +:104000008C2F0E94901F8093EA0129C0CE34E9F0E2 +:1040100020F4CB3421F56AE013C0C13579F0C23504 +:10402000F1F461E00DC08091EA01882319F010924B +:10403000EA0115C081E08093EB0115C061E006C084 +:104040008091EA010E94031E0AC06AE08091EA01A1 +:104050000E94791E04C01092EB0180E004C081E050 +:1040600002C080E0ACCFCF910895E1E8F0E080811C +:10407000886080838081816080838FB7F89493E02B +:104080009093890090ED909388008FBF0895EFE69C +:10409000F0E08081826080830895EFE6F0E0808127 +:1040A0008D7F80830895EFE6F0E0908182E089279C +:1040B000808308951F920F920FB60F9211242F93B1 +:1040C0003F934F935F936F937F938F939F93AF93A0 +:1040D000BF93EF93FF938091EC019091ED010196D6 +:1040E0009093ED018093EC01811103C082E00E9466 +:1040F000A308E091ED01E695E695F0E0EF59FC4F5D +:10410000E4918091EC018E1303C080E00E94A3082B +:10411000FF91EF91BF91AF919F918F917F916F919F +:104120005F914F913F912F910F900FBE0F901F9075 +:10413000189504D06894B1118DC0089570D088F09E +:104140009F5790F0B92F9927B751A0F0D1F0660F83 +:10415000771F881F991F1AF0BA95C9F712C0B1309E +:1041600081F077D0B1E0089574C0672F782F882749 +:10417000B85F39F0B93FCCF3869577956795B395DD +:10418000D9F73EF490958095709561957F4F8F4F4C +:104190009F4F0895E89409C097FB3EF49095809551 +:1041A000709561957F4F8F4F9F4F9923A9F0F92FFD +:1041B00096E9BB279395F695879577956795B7957B +:1041C000F111F8CFFAF4BB0F11F460FF1BC06F5F61 +:1041D0007F4F8F4F9F4F16C0882311F096E911C073 +:1041E000772321F09EE8872F762F05C0662371F094 +:1041F00096E8862F70E060E02AF09A95660F771FA8 +:10420000881FDAF7880F9695879597F9089557FDD7 +:104210009058440F551F59F05F3F71F04795880F34 +:1042200097FB991F61F09F3F79F0879508951216CB +:1042300013061406551FF2CF4695F1DF08C0161677 +:1042400017061806991FF1CF869571056105089428 +:104250000895E894BB2766277727CB0197F908953F +:104260000BD078C069D028F06ED018F0952309F0F3 +:104270005AC05FC01124EECFCADFA0F3959FD1F3DF +:10428000950F50E0551F629FF001729FBB27F00D04 +:10429000B11D639FAA27F00DB11DAA1F649F662759 +:1042A000B00DA11D661F829F2227B00DA11D621FA8 +:1042B000739FB00DA11D621F839FA00D611D221F62 +:1042C000749F3327A00D611D231F849F600D211D46 +:1042D000822F762F6A2F11249F5750408AF0E1F0E9 +:1042E00088234AF0EE0FFF1FBB1F661F771F881F32 +:1042F00091505040A9F79E3F510570F014C0AACFCD +:104300005F3FECF3983EDCF3869577956795B7951C +:10431000F795E7959F5FC1F7FE2B880F911D969546 +:10432000879597F9089597F99F6780E870E060E0B6 +:1043300008959FEF80EC089500240A94161617063E +:1043400018060906089500240A9412161306140686 +:1043500005060895092E0394000C11F4882352F0E9 +:10436000BB0F40F4BF2B11F460FF04C06F5F7F4FA1 +:104370008F4F9F4F089597FB072E16F4009407D098 +:1043800077FD09D00E94D52107FC05D03EF4909519 +:1043900081959F4F0895709561957F4F0895EE0F19 +:1043A000FF1F0590F491E02D0994AA1BBB1B51E15E +:1043B00007C0AA1FBB1FA617B70710F0A61BB70B95 +:1043C000881F991F5A95A9F780959095BC01CD013A +:1043D0000895F999FECF92BD81BDF89A992780B5CD +:1043E0000895A8E1B0E042E050E00C941122262F9D +:1043F000F999FECF92BD81BDF89A019700B40216DB +:1044000039F01FBA20BD0FB6F894FA9AF99A0FBE88 +:1044100008950196272F0E94F8210C94F721DC01C2 +:10442000CB01FC01F999FECF06C0F2BDE1BDF89ABF +:10443000319600B40D9241505040B8F70895F89469 +:02444000FFCFAC +:104442000220A50833091009DC08A8080101C801E7 +:1044520028080A03140A404D36392103D4029E0269 +:104462006502F80111022A02430201020304050651 +:04447200070809002E +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/keymap.c b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/keymap.c new file mode 100644 index 000000000..a66971bef --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/keymap.c @@ -0,0 +1,46 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = KEYMAP( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F5, + KC_TAB, KC_Q, KC_W, KC_D, KC_F, KC_K, KC_BSLS, + CTL_T(KC_ESC), KC_A, KC_S, KC_E, KC_T, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, + KC_F1, KC_F2, KC_F3, KC_F4, KC_LGUI, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLD, KC_MUTE, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLU, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_BSPC, CTL_T(KC_ESC), KC_LALT, + // + /*-*/ KC_F6, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + /*-*/ KC_NO, KC_J, KC_U, KC_R, KC_L, KC_SCLN, KC_MINS, + /*-*/ /*-*/ KC_Y, KC_N, KC_I, KC_O, KC_H, KC_ENT, + /*-*/ KC_RBRC, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + /*-*/ /*-*/ /*-*/ KC_RGUI, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, + KC_MPLY, KC_MNXT, + KC_MPRV, + KC_RALT, KC_QUOT, KC_SPC + ) +}; + +const uint16_t PROGMEM fn_actions[] = { +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { +}; diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/readme.md b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/readme.md new file mode 100644 index 000000000..80475ab21 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/readme.md @@ -0,0 +1,28 @@ +# Roman's Layout + +There is only one layer based on [Norman layout](https://normanlayout.info/). + +Looking for multiple-layer layouts? + +- [Symbols, arrows, plover, HJKL arrows](../romanzolotarev-norman-plover-osx-hjkl/) +- [Same with IJKL arrows](../romanzolotarev-norman-plover-osx/) + +[![keyboard-layout](romanzolotarev-norman-osx.png)](http://www.keyboard-layout-editor.com/#/gists/9e89d54f1ea6eeeb7dab1b2d19d28195) + +## Functional Keys + +- Tap `F1` to mute microphone via [Shush](http://mizage.com/shush/). +- Tap `F2` to copy screenshot to the clipboard. +- Hold `SHIFT` and tap `F2` to save screenshot as a file. +- Tap `F3`, `F4`, `F5`, `F6` to resize a window via [Divvy](http://mizage.com/divvy/). + +## CTRL/ESC + +CTRL and ESC are frequently used in Vim. + +- Tap `CTRL/ESC` to send `ESC`. +- Hold `CTRL/ESC` to use as `CTRL`. + +## Activate N-rollover + +- Hold left `SHIFT` and right `SHIRT` and then tap `N`. diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.png b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.png new file mode 100644 index 000000000..4b9433be2 Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.png differ diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/compiled.hex b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/compiled.hex new file mode 100644 index 000000000..59b9fa1d1 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/compiled.hex @@ -0,0 +1,1169 @@ +:100000000C94D0020C9414030C9414030C94140359 +:100010000C9414030C9414030C9414030C94140304 +:100020000C9414030C9414030C94BC0D0C948E0EBD +:100030000C9414030C9414030C9414030C941403E4 +:100040000C9414030C9498220C9414030C94140331 +:100050000C9414030C942B1C0C9414030C94140394 +:100060000C9414030C9414030C9414030C941403B4 +:100070000C9414030C9414030C9414030C941403A4 +:100080000C9414030C9414030C9414030C94140394 +:100090000C9414030C9414030C9414030C94140384 +:1000A0000C9414030C9414030C941403FB0E1D0FF6 +:1000B0000B101D0F0B10620F850F0B10DA0FED0FD9 +:1000C000BC12BC12EB12EB12211341137214721406 +:1000D0004C137214FC13FC136314721472146C141A +:1000E0000914091409140914091409140914091428 +:1000F0000914091409140914091409140914091418 +:100100001B1428142F14361440140000F0A1F0A280 +:10011000F0A335002B002971E1003A0000001E0019 +:10012000140004001D003B00C1001F001A0016004F +:100130001B003C0029712000070008000600E200B7 +:100140002A002100090017001900E300A90022007D +:100150000E000A0005000000AA0069000254000019 +:100160002F000000A8006A003100000030000000ED +:10017000AE0023000D001C0013000000AB002400A3 +:10018000180011001000E700AC00250015000C005D +:100190003600E6002C0026000F00120037003D005C +:1001A0003400270033000B0038003E00C3002E004F +:1001B0002D002800E5003F000000010001000100C3 +:1001C00001000100000001001E001E0201000100EC +:1001D000010001001F001F020100010001000100D9 +:1001E0002000200201000100010001002100210285 +:1001F00001000100010001002200220201000000B4 +:1002000001000100010000000100000001000100E8 +:100210000100000001000000010001002300230292 +:10022000010000000100010024002402010001007F +:10023000010001002500250201000100010001006C +:10024000260026020100010001000100270027020C +:100250000100010001000100010001000100010096 +:10026000000000000000000000000100000000008D +:100270001E00140004000100000000001F001A000E +:10028000160001001900000020000800070000000F +:100290000600000021001500090000000100000018 +:1002A000220017000A000000010001000100000008 +:1002B000000000000100010000000000000000003C +:1002C0000100000023001C000B00000001000000E2 +:1002D000240018000D0000000100000025000C00A3 +:1002E0000E00000010000000260012000F000000A9 +:1002F0001100000027001300330000000000000080 +:1003000000002F0034000000000001000100010087 +:1003100001000100000001000100010001000100D6 +:10032000010001000100F2000100010001000100D4 +:100330000100F00001000100010001000100F100D6 +:10034000F4000100010001000100F300F5000000CD +:100350000100010001000000010000000100010097 +:100360000100000001000000010001000100500038 +:100370000100000001000100010051000100010026 +:100380000100010001005200010001000100010014 +:1003900001004F0001000100010001000100010007 +:1003A0000100010001000100010001000100010045 +:1003B000000016034500720067006F0044006F00E4 +:1003C0007800200045005A00000016034500720026 +:1003D00067006F0044006F007800200045005A005D +:1003E00000000403090409026D00040100A0FA09D9 +:1003F0000400000103010100092111010001223F55 +:10040000000705810308000A090401000103010235 +:1004100000092111010001224D0007058203080097 +:100420000A09040200010300000009211101000172 +:100430002236000705830308000A090403000103AC +:100440000000000921110100012239000705840381 +:100450001000011201100100000008EDFE07130159 +:10046000000102000105010906A101050719E029A3 +:10047000E715002501950875018102050819012974 +:1004800005950575019102950175039101050719FF +:1004900000297715002501957875018102C00501B5 +:1004A0000980A101850216010026B7001A01002A61 +:1004B000B700751095018100C0050C0901A10185E7 +:1004C00003160100269C021A01002A9C0275109551 +:1004D000018100C005010902A1010901A10005096E +:1004E0001901290515002501950575018102950160 +:1004F000750381010501093009311581257F9502B8 +:100500007508810609381581257F950175088106D2 +:10051000050C0A38021581257F950175088106C0F2 +:10052000C005010906A101050719E029E715002505 +:100530000195087501810295017508810105081969 +:100540000129059505750191029501750391010534 +:1005500007190029FF150025FF950675088100C0C1 +:100560000000000000000000000000010204060A74 +:100570000F17202C3A4A5D71879DB3C7DAE9F5FC65 +:10058000FFFCF5E9DAC7B39D87715D4A3A2C201765 +:100590000F0A060402010000000000000000000035 +:1005A00011241FBECFEFDAE0DEBFCDBF04B603FEDD +:1005B00024C08091FB019091FC01A091FD01B091BC +:1005C000FE018730904BA740B04BB9F41092FB016D +:1005D0001092FC011092FD011092FE0114BE84B72E +:1005E000877F84BF88E10FB6F894809360001092F3 +:1005F00060000FBEE0E0FFE3099511E0A0E0B1E08C +:10060000EEEBF8E402C005900D92A433B107D9F7E0 +:1006100011E0A4E3B1E001C01D92AB3FB107E1F7E7 +:100620000E94000B0C945D240C9400001092B90001 +:100630008AE08093B800089594EA9093BC0090916A +:10064000BC0097FFFCCF9091B900987F983021F0C3 +:10065000903111F081E008958093BB0084E880938D +:10066000BC008091BC0087FFFCCF8091B900887FDF +:10067000883111F0803471F780E0089584E9809327 +:10068000BC008091BC0084FDFCCF08958093BB002A +:1006900084E88093BC008091BC0087FFFCCF9091E0 +:1006A000B900987F81E0983209F480E0089584E8E9 +:1006B0008093BC008091BC0087FFFCCF8091BB0081 +:1006C000089580910101811115C080E40E941C03EE +:1006D0008093010181110CC082E10E944603809346 +:1006E0000101811105C08FEF0E9446038093010133 +:1006F0000E943E0384B1807F84B985B1807F85B933 +:100700008AB1837F8AB98BB1837F8BB93E98469833 +:1007100008950E941C05809301010E94610380B32B +:100720008C7080BB81B3836F81BBA5E3B1E0E3E450 +:10073000F1E08EE08E0F11921D928E13FCCF0C947F +:100740000605BF92CF92DF92EF92FF920F931F9315 +:10075000CF93DF9380910101882379F08091340158 +:100760008F5F80933401811108C00E941C05809323 +:100770000101811102C00E94AE0405E311E0C0E056 +:10078000D0E0DD24D39482E0C82EEE24E394F12C53 +:10079000C730D10500F580910101811164C080E46A +:1007A0000E941C0380930101811112C082E10E940A +:1007B00046038093010181110BC0C7010C2E01C0BB +:1007C000880F0A94EAF780950E94460380930101FE +:1007D0000E943E0348C0CA30A1F028F4C83059F046 +:1007E000C93061F005C0CC3089F070F0CD3089F0AF +:1007F000209A289810C0219A29980DC0229A2A98E8 +:100800000AC0239A2B9807C0529A01C0539A5B984A +:1008100002C03E9A469890EA9A95F1F79FB179996D +:1008200002C082E001C080E091709D25982B7C99E8 +:1008300002C084E001C080E0892B7D9902C038E0CD +:1008400001C030E0832B7E9902C020E101C020E08E +:10085000822B9FB19095991F9927991F9295990F77 +:10086000907E892B0FC080910101811149C080E4E5 +:100870000E941C0380930101882379F1B12C0E940E +:100880003E038B2DF8019081981719F08083C09258 +:1008900000010E94610321960F5F1F4FCE30D105EA +:1008A00009F076CF80910001882361F18150809317 +:1008B0000001882339F08FE99FE00197F1F700C02C +:1008C000000020C0A3E4B1E0E5E3F1E0CF01825FE6 +:1008D00091919D938E13FCCF15C083E10E94460336 +:1008E000809301018111CACF81E40E941C0380938F +:1008F00001018111C3CF0E945703B82EB094BFCF1E +:1009000080E0C0CF0E94AC0481E0DF91CF911F91C5 +:100910000F91FF90EF90DF90CF90BF900895E82F58 +:10092000F0E0ED5BFE4F8081089508950F931F93D3 +:10093000CF93DF93C3E4D1E010E00C2F025F8991E5 +:1009400090E00E94511B180F0C13F9CF812FDF91FB +:10095000CF911F910F9108950C947C0556985E9845 +:1009600025982D9826982E9827982F988FEF90E00D +:10097000909389008093880090938B0080938A00E5 +:1009800090938D0080938C00259A2D9A2FEF80E70D +:1009900092E0215080409040E1F700C00000269A8C +:1009A0002E9A2FEF80E792E0215080409040E1F7AF +:1009B00000C00000279A2F9A2FEF80E792E0215085 +:1009C00080409040E1F700C0000025982D982FEF5F +:1009D00080E792E0215080409040E1F700C00000A5 +:1009E00026982E982FEF80E792E02150804090408B +:1009F000E1F700C0000027982F9856985E98259838 +:100A00002D9826982E9827982F98089589EA8093F4 +:100A1000800089E08093810024982C983F988AB1C7 +:100A20008F748AB96E98479A8BB1806B8BB9769A1E +:100A30000E94AE040C947B0580E2809301018091BA +:100A4000510181110EC00E94160381E08093510173 +:100A50002FEF83ED90E3215080409040E1F700C0FC +:100A6000000080E40E941C038093010181112EC0CC +:100A70000E94460380930101811128C00E94460311 +:100A800080930101811122C08FE30E94460380936D +:100A9000010181111BC00E943E0380E40E941C03DF +:100AA00080930101811112C08CE00E944603809363 +:100AB000010181110BC00E94460380930101811145 +:100AC00005C08FE30E944603809301010E943E030C +:100AD00080910101089561110BC0FC01828188237E +:100AE00021F085EE0E94601103C085EE0E9428125D +:100AF00080E090E0089508956091BD017091BE017D +:100B00008091BF019091C0010E945D1B56985E9834 +:100B100025982D9826982E9827982F98823039F06E +:100B2000833041F0813041F4259A2D9A0895269A18 +:100B30002E9A0895279A2F9A089581E0089581E0CA +:100B400008950C949F0508950F931F93CF93DF93FF +:100B50008C01FC01C081D181CE010E94D619BE0159 +:100B60000E944D06EC01B8010E94A105882309F4FA +:100B70008DC0F8018281882309F44AC080915D010B +:100B800081111FC0C431F0E5DF0709F051C00E9498 +:100B9000A30581E080935D010E94F51B90935C01A9 +:100BA00080935B01109254011092560110925501EE +:100BB000109258011092570110925A011092590147 +:100BC00065C080915B0190915C010E94011C883C92 +:100BD000910570F480915401E82FF0E0EE0FFF1FB3 +:100BE000EB5AFE4FD183C0838F5F809354014EC078 +:100BF000C43880E5D80721F0C538D04501F13AC0A6 +:100C0000F8018281882341F01092520182E01EC0D7 +:100C1000C438E0E5DE0759F580915201811106C024 +:100C200086E20E94601186E20E94281282E01CC0C7 +:100C3000C438F0E5DF0741F3C538D045D9F4F801F1 +:100C40008281882331F01092530180E20E94771252 +:100C50001DC080915301811106C087E20E9460117E +:100C600087E20E94281280E20E947E120FC0C538DF +:100C7000D04529F381E08093520180935301C8014C +:100C8000DF91CF911F910F910C949D0580E0DF9132 +:100C9000CF911F910F910895089596E0799FF001EB +:100CA000112494E5899FE00DF11D1124E60FF11D3B +:100CB000EE0FFF1FEE5EFE4F859194910895880F11 +:100CC000991FFC01E657F040859194910895880F93 +:100CD000991FFC01E65FFE4F8591949108950F9353 +:100CE0001F93CF93DF93EC01811520E3920750F51A +:100CF000C11580E2D80708F0C3C0CB3BD10590F402 +:100D0000C83AD10508F06AC0C53AD10508F05BC001 +:100D1000C430D10508F0D0C1219709F0CAC101E063 +:100D200010E00AC2CF3FD10511F008F0C5C1C03FA5 +:100D3000D10508F0A2C0CE01805E9109089708F4A1 +:100D4000BBC1B7C1C13090E5D90709F4A2C020F5F5 +:100D5000C0318FE4D80770F4C11590E4D90708F0CA +:100D600094C0C11521E3D20708F0A3C1DD278E018D +:100D7000106CE2C1C115D04509F09BC10E94DD1481 +:100D80008FEF94E32CE0815090402040E1F700C0C9 +:100D900000000E94501CD0C1C11597E5D90758F436 +:100DA000C03121E5D20708F01CC1C43180E5D80765 +:100DB00008F475C07EC1CE0190578115904108F0AE +:100DC00078C1DF7073C1C53AD10509F477C1C63A5D +:100DD000D10509F076C102E810E4AEC1C83AD105E8 +:100DE00009F472C1C93AD10509F471C1CA3AD105F1 +:100DF00009F470C1CB3AD10509F46FC1CC3AD105E1 +:100E000009F46EC1CD3AD10509F46DC1C03BD105DD +:100E100009F46CC1CE3AD10509F46BC1CF3AD105C2 +:100E200009F46AC1C13BD10509F469C1C23BD105CE +:100E300009F468C1C33BD10509F467C1C43BD105BE +:100E400009F466C1C53BD10509F465C1C63BD105AE +:100E500009F464C1C73BD10509F463C1C83BD1059E +:100E600009F462C1C93BD10509F461C1CA3BD1058E +:100E700009F460C100E014E45FC18E0110655CC13B +:100E8000CE019F700E94670658C1DF708E01106A04 +:100E900053C18091DA0181608093DA014DC10E94D3 +:100EA000F51D811102C00E94DB1D0E94121E90E000 +:100EB0009093FB018093FA01C23080E5D80721F4BA +:100EC0008091FA01816086C0C43090E5D90721F491 +:100ED0008091FA0182607EC0C63020E5D20721F4FD +:100EE0008091FA01846076C0C83080E5D80719F493 +:100EF0008091FA0127C0CA3090E5D90721F480918A +:100F0000FA01806167C0CC3020E5D20721F48091DE +:100F1000FA0180625FC0CE3080E5D80721F480916D +:100F2000FA01806457C0C03190E5D90721F480915F +:100F3000FA0180684FC0C23120E5D20729F48091C0 +:100F4000FA018460886046C0C33080E5D80721F488 +:100F50008091FA018E7F3EC0C53090E5D90721F41B +:100F60008091FA018D7F36C0C73020E5D20721F489 +:100F70008091FA018B7F2EC0C93080E5D80719F423 +:100F80008091FA0126C0CB3090E5D90721F48091F9 +:100F9000FA018F7E1FC0CD3020E5D20721F4809169 +:100FA000FA018F7D17C0CF3080E5D80721F48091FA +:100FB000FA018F7B0FC0C13190E5D90721F48091F0 +:100FC000FA018F7707C0C331D04531F48091FA011F +:100FD0008B7F877F8093FA018091FA010E94161E11 +:100FE000ABC08D2F99278F70992781309105D9F447 +:100FF0009E012370332702C0880F991F2A95E2F7BC +:101000009C688E0144E0000F111F4A95E1F700270C +:101010001370802B912B53E0CC0FDD1F5A95E1F715 +:10102000C076DD272FC08230910531F4DC2FCC272C +:101030008E01016F106A80C08330910569F4CE0182 +:101040008370992701E010E002C0000F111F8A95FC +:10105000E2F7C8019C680FC084309105B9F4CE0155 +:101060008370992701E010E002C0000F111F8A95DC +:10107000E2F7C8019A6823E0CC0FDD1F2A95E1F75B +:10108000C07ED7708C010C2B1D2B56C0853091056E +:1010900031F4DC2FCC278E01046F106A4DC0069707 +:1010A00009F04AC0CF71DD27DC2FCC278E011062FA +:1010B00043C000E010E040C08E013EC001E810E4F3 +:1010C0003BC003E810E438C002EE14E435C009EE7A +:1010D00014E432C00AEE14E42FC005EB14E42CC073 +:1010E00006EB14E429C007EB14E426C00CEC14E46E +:1010F00023C00DEC14E420C003E815E41DC00AE889 +:1011000015E41AC002E915E417C004E915E414C097 +:1011100001E216E411C003E216E40EC004E216E494 +:101120000BC005E216E408C006E216E405C007E2BB +:1011300016E402C00AE216E4C801DF91CF911F91C4 +:101140000F91089596E0799FF001112494E5899F0D +:10115000E00DF11D1124E60FF11DEE0FFF1FEE5EF5 +:10116000FE4F85919491803E9105E0F4803C91057D +:1011700058F58133910509F46FC048F4893291051F +:1011800009F463C08A32910509F46DC072C08933D5 +:101190009105E9F082389105D1F08533910509F484 +:1011A0004DC067C0833E910581F138F4803E9105C2 +:1011B000B9F0823E9105D9F05CC0863E910561F19F +:1011C000873E9105A1F155C00E945F0608952091C8 +:1011D000FA0120FD02C021FF4CC080EE90E049C022 +:1011E0008091FA0180FFF9CF89E390E042C08091BD +:1011F000FA0182FF0EC08091FA0184FF03C080E0F3 +:1012000090E037C083EE90E034C08091FA0182FF15 +:10121000F2CF82EE90E02DC08091FA0183FF0BC0E7 +:101220008091FA0184FDEBCF87EE90E022C080919F +:10123000FA0183FFF5CF86EE90E01BC08091FA01A2 +:1012400085FF07C089E290E014C08091FA0185FF14 +:10125000F9CF85E390E00DC08091FA0186FF07C0C9 +:101260008AE290E006C08091FA0186FFF9CF81E31F +:1012700090E00E946F06089508950C943C098091B7 +:101280006E010895CF93DF9300D01F92CDB7DEB7E4 +:101290009C018091F101843019F593E099833B839F +:1012A0002A839093E9008FEF9091E800815095FD9B +:1012B00006C095ED9A95F1F700008111F5CF809168 +:1012C000E80085FF0DC040E050E063E070E0CE0133 +:1012D00001960E94AC0B8091E8008E778093E80025 +:1012E0000F900F900F90DF91CF910895CF93DF93E0 +:1012F00000D01F92CDB7DEB72091F101243021F547 +:1013000022E029839B838A8383E08093E9008FEF27 +:101310009091E800815095FD06C095ED9A95F1F702 +:1013200000008111F5CF8091E80085FF0DC040E0FD +:1013300050E063E070E0CE0101960E94AC0B80911A +:10134000E8008E778093E8000F900F900F90DF9168 +:10135000CF9108952091F1012430F1F422E02093FF +:10136000E9002FEF3091E800215035FD06C035ED42 +:101370003A95F1F700002111F5CF2091E80025FF03 +:101380000BC040E050E065E070E00E94AC0B809143 +:10139000E8008E778093E8000895CF93DF93EC0107 +:1013A0009091F101943009F046C080910C0188239E +:1013B000D9F080910D018823B9F09093E9008FEF67 +:1013C0009091E800815095FD06C095E19A95F1F75E +:1013D00000008111F5CF8091E80085FF2CC040E02E +:1013E00050E060E170E017C081E08093E9008FEF8A +:1013F0009091E800815095FD06C095ED9A95F1F722 +:1014000000008111F5CF8091E80085FF14C040E015 +:1014100050E068E070E0CE010E94AC0B8091E800E3 +:101420008E778093E80080E1FE01AEE5B1E00190A7 +:101430000D928A95E1F7DF91CF9108958091F001A7 +:10144000811109C00E94410D0E949E0D8091E20011 +:1014500084608093E20008951092F0010895089549 +:101460000C9485220E94E61B0E948B220E9444104D +:101470000C943D0942E061EC81E00E94BB0C42E02B +:1014800061EC82E00E94BB0C42E061EC83E00E94D0 +:10149000BB0C42E161EC84E00C94BB0C8091F30145 +:1014A000833009F455C030F4813071F0823009F492 +:1014B0008EC008958A3009F47AC08B3009F460C078 +:1014C000893009F09CC020C08091F201813A09F076 +:1014D00096C08091E800877F8093E8008091F601B4 +:1014E0009091F701892B21F460E18EE591E003C032 +:1014F00060E080E090E070E00E94F70B8091E800EF +:101500008B778093E80008958091F201813209F091 +:1015100076C08091F6019091F701009719F003973A +:1015200009F06DC08091E800877F8093E80080918A +:10153000E80082FD05C08091F1018111F8CF5FC004 +:101540008091F10080936E018091E8008B7753C009 +:101550008091F201813A09F052C08091F601909198 +:10156000F701892B09F04BC08091E800877F8093B9 +:10157000E8008091E80080FFFCCF80910C0136C02C +:101580008091F2018132D9F58091F6019091F701B5 +:10159000892BA9F58091E800877F8093E8000E945D +:1015A000F00C8091F40180930C010C94DD14809177 +:1015B000F201813221F58091E800877F8093E80075 +:1015C0000E94F00C8091F50180936F010895809145 +:1015D000F201813AA1F48091E800877F8093E800CE +:1015E0008091E80080FFFCCF80916F018093F10033 +:1015F0008091E8008E778093E8000C94F00C0895B9 +:1016000084B7877F84BF88E10FB6F8948093600029 +:10161000109260000FBE90E080E80FB6F8948093BF +:101620006100909361000FBE0E9493100E94410DD3 +:101630000E949E0D8091E20084608093E200789485 +:101640000E9424100E94951082E091E00E943F10B9 +:101650000E9473228091F101853069F40E94AD1BD4 +:101660008091EF018823B1F30E94D81B882391F366 +:101670000E94960BEFCF0E949B10ECCF292F3327AF +:1016800023303105C9F064F42130310581F0223076 +:10169000310509F043C08DE690E026EE33E042C00C +:1016A00021323105F1F02232310541F137C082E1BA +:1016B00090E023E534E036C099278130910541F070 +:1016C0008230910541F0892B49F5E2EEF3E005C047 +:1016D000EAECF3E002C0E2EBF3E0849190E09F01DA +:1016E00021C06430D8F4E62FF0E0EE0FFF1FEE5D6E +:1016F000FE4F2081318189E090E014C0643070F4A5 +:1017000070E0FB01EE0FFF1FE65EFE4F208131818E +:10171000FB01EA5EFE4F808190E004C080E090E033 +:1017200020E030E0FA0131832083089580E189BD13 +:1017300082E189BD09B400FEFDCF8091D8008F7D84 +:101740008093D8008091E00082608093E0008091D7 +:10175000E00081FDFCCF0895CF92DF92EF92FF92DF +:101760000F931F93CF93DF93EC018B016A010E94CB +:101770000F0D811133C0C114D10439F0F6018081FD +:101780009181081B190BC80FD91FE12CF12C0115F1 +:10179000110519F18091E80085FD16C08091E800DF +:1017A0008E778093E800C114D10449F0F60180815E +:1017B0009181E80EF91EF182E08285E00FC00E945F +:1017C0000F0D882321F30AC089918093F100015005 +:1017D0001109FFEFEF1AFF0ADACF80E0DF91CF9116 +:1017E0001F910F91FF90EF90DF90CF90089520917F +:1017F000F8013091F9012617370748F06115710596 +:1018000039F42091E8002E772093E80001C0B90157 +:1018100040E061157105A9F12091F101222309F43D +:1018200043C0253009F442C02091E80023FD40C0A8 +:101830002091E80022FD32C02091E80020FFE9CF8E +:101840004091F3002091F20030E0342BFC01CF01F5 +:101850006115710559F02830310540F4819180936C +:10186000F100615071092F5F3F4FF1CF41E0283007 +:10187000310509F040E02091E8002E772093E80040 +:10188000C8CF4111C9CF0AC08091F101882361F00E +:10189000853061F08091E80083FD0AC08091E80006 +:1018A00082FFF2CF80E0089582E0089583E00895FA +:1018B00081E008952091F8013091F901261737074A +:1018C00048F06115710539F42091E8002E772093D6 +:1018D000E80001C0B901FC0120E06115710591F13A +:1018E0008091F101882309F440C0853009F43FC09C +:1018F0008091E80083FD3DC08091E80082FD2FC00B +:101900008091E80080FFE9CF2091F3008091F20000 +:1019100090E0922B6115710559F08830910540F4E3 +:1019200024912093F1003196615071090196F2CF14 +:1019300021E0089709F020E08091E8008E778093FD +:10194000E800CBCF2111CCCF0AC08091F1018823D0 +:1019500061F0853061F08091E80083FD0AC08091DC +:10196000E80082FFF2CF80E0089582E0089583E0EE +:10197000089581E00895982F973058F59093E900E5 +:10198000981739F07091EC002091ED005091F00023 +:1019900003C0242F762F50E021FF19C03091EB00B7 +:1019A0003E7F3093EB003091ED003D7F3093ED00B2 +:1019B0003091EB0031603093EB007093EC0020939A +:1019C000ED005093F0002091EE0027FF07C09F5FCD +:1019D000D3CF8F708093E90081E0089580E008956F +:1019E0008091F20187FF11C08091E80082FD05C05F +:1019F0008091F1018111F8CF11C08091E8008B77BF +:101A00000BC08091F101882349F08091E80080FFAC +:101A1000F8CF8091E8008E778093E80008952091B8 +:101A2000E4003091E50095E64091EC00842F817050 +:101A300040FF22C08091E80080FD1CC08091F10130 +:101A4000882391F0853091F08091EB0085FD10C0E6 +:101A50004091E4005091E5004217530729F39A01A1 +:101A6000915011F784E0089582E0089583E008958D +:101A700081E0089580E008954091E80042FFDECFC4 +:101A800008950E94AF0D0E94B70DE0EEF0E0808156 +:101A900081608083E8EDF0E080818F77808319BCDE +:101AA000A7EDB0E08C918E7F8C9380818F7E8083B8 +:101AB0001092F00108950F931F93CF93DF930E942C +:101AC000AF0D0E94B70DC8EDD0E088818F77888375 +:101AD00088818068888388818F7D888319BC109273 +:101AE000F1011092ED011092EF011092EE0100EE63 +:101AF00010E0F80180818B7F8083888181608883FA +:101B000042E060E080E00E94BB0CE1EEF0E080810A +:101B10008E7F8083E2EEF0E080818160808380812F +:101B200088608083F80180818E7F808388818061D6 +:101B30008883DF91CF911F910F910895E8EDF0E038 +:101B400080818F7E8083E7EDF0E0808181608083FB +:101B500084E082BF81E08093F0010C945B0DE8ED9E +:101B6000F0E080818E7F80831092E20008951092D1 +:101B7000DA001092E10008951F920F920FB60F92B3 +:101B800011242F933F934F935F936F937F938F9382 +:101B90009F93AF93BF93EF93FF938091E10082FFF8 +:101BA0000BC08091E20082FF07C08091E1008B7F33 +:101BB0008093E1000E9423108091DA0080FF1FC013 +:101BC0008091D80080FF1BC08091DA008E7F8093C7 +:101BD000DA008091D90080FF0DC080E189BD82E1EB +:101BE00089BD09B400FEFDCF81E08093F1010E9420 +:101BF0001E0A05C019BC1092F1010E942C0A8091A6 +:101C0000E10080FF19C08091E20080FF15C0809143 +:101C1000E2008E7F8093E2008091E20080618093F9 +:101C2000E2008091D80080628093D80019BC85E0E2 +:101C30008093F1010E94300A8091E10084FF30C05E +:101C40008091E20084FF2CC080E189BD82E189BDE2 +:101C500009B400FEFDCF8091D8008F7D8093D8001D +:101C60008091E1008F7E8093E1008091E2008F7E81 +:101C70008093E2008091E20081608093E200809195 +:101C8000ED01882311F084E007C08091E30087FD17 +:101C900002C081E001C083E08093F1010E94320A1A +:101CA0008091E10083FF29C08091E20083FF25C07D +:101CB0008091E100877F8093E10082E08093F101D1 +:101CC0001092ED018091E1008E7F8093E100809180 +:101CD000E2008E7F8093E2008091E2008061809339 +:101CE000E20042E060E080E00E94BB0C8091F000E6 +:101CF00088608093F0000E942F0AFF91EF91BF91BE +:101D0000AF919F918F917F916F915F914F913F9193 +:101D10002F910F900FBE0F901F9018951F920F924A +:101D20000FB60F9211242F933F934F935F936F93AE +:101D30007F938F939F93AF93BF93CF93DF93EF9353 +:101D4000FF93C091E900CF708091EC00D82FD17043 +:101D500080FDD0E81092E9008091F000877F8093A9 +:101D6000F00078940E94D20E1092E9008091F00069 +:101D700088608093F000CD2BCF70C093E900FF9175 +:101D8000EF91DF91CF91BF91AF919F918F917F9113 +:101D90006F915F914F913F912F910F900FBE0F90D8 +:101DA0001F9018951F93CF93DF93CDB7DEB7AA97F7 +:101DB0000FB6F894DEBF0FBECDBFE2EFF1E088E0D2 +:101DC0008E0F9091F10091938E13FBCF0E944E0ADB +:101DD0008091E80083FF1FC18091F2019091F3018F +:101DE000492F50E04A30510508F015C1FA01EA5A6E +:101DF000FF4F0C940D24803881F0823809F00BC11C +:101E00008091F6018F708093E9008091EB0085FB53 +:101E1000882780F91092E90006C08091EE01909128 +:101E2000EF01911182609091E800977F9093E80014 +:101E30008093F1001092F100C8C0282F2D7F09F087 +:101E4000EAC0882319F0823061F0E5C08091F40186 +:101E5000813009F0E0C0933009F080E08093EF0119 +:101E60002BC08091F401811127C08091F6018F7001 +:101E700009F4D1C08093E9002091EB0020FF1CC041 +:101E8000933021F48091EB00806214C09091EB00BC +:101E900090619093EB0021E030E0A90102C0440F73 +:101EA000551F8A95E2F74093EA001092EA0080916C +:101EB000EB0088608093EB001092E9008091E800CD +:101EC000877F86C08111A7C01091F4011F77809190 +:101ED000E3008078812B8093E3008091E800877F86 +:101EE0008093E8000E94F00C8091E80080FFFCCF16 +:101EF0008091E30080688093E300111102C082E0CA +:101F000001C083E08093F10186C08058823008F0E0 +:101F100082C08091F4019091F5018C3D53E09507CA +:101F200079F583E08A838AE289834FB7F894DE01EA +:101F3000139620E03EE051E2E32FF0E0509357008B +:101F4000E49120FF03C0E295EF703F5FEF708E2FAA +:101F500090E0EA3010F0C79601C0C0968D939D9333 +:101F60002F5F243149F74FBF8091E800877F80932E +:101F7000E8006AE270E0CE0101960E94F70B14C0FF +:101F8000AE014F5F5F4F6091F6010E943E0BBC01B6 +:101F9000009709F440C09091E800977F9093E80083 +:101FA00089819A810E945A0C8091E8008B778093F6 +:101FB000E80031C0803879F58091E800877F809310 +:101FC000E8008091ED018093F1008091E8008E7728 +:101FD0008093E8000E94F00C1EC081111CC09091FB +:101FE000F4019230C0F48091E800877F8093E8008C +:101FF0009093ED010E94F00C8091ED01811106C0DB +:102000008091E30087FD02C081E001C084E08093FD +:10201000F1010E943A0A8091E80083FF0AC0809192 +:10202000E800877F8093E8008091EB0080628093D6 +:10203000EB00AA960FB6F894DEBF0FBECDBFDF91BE +:10204000CF911F9108950895CF938091F101882336 +:10205000A1F0C091E900CF709091EC00892F8170C0 +:1020600090FD80E8C82B1092E9008091E80083FD84 +:102070000E94D20ECF70C093E900CF910895909343 +:102080007501809374010895E0917401F0917501D8 +:10209000309721F00190F081E02D099480E00895BF +:1020A000E0917401F0917501309721F00280F38185 +:1020B000E02D09940895E0917401F0917501309735 +:1020C00021F00480F581E02D09940895209172019A +:1020D000309173018217930771F09093730180938D +:1020E0007201E0917401F0917501309721F0068042 +:1020F000F781E02D099408952091700130917101CC +:102100008217930771F09093710180937001E091B1 +:102110007401F0917501309721F00084F185E02D74 +:102120000994089508950C9492100E94EC1B0E944B +:1021300089030C94AE1C9F92AF92BF92CF92DF9214 +:10214000EF92FF920F931F93CF93DF9300D000D0B5 +:1021500000D0CDB7DEB70E94A1030DE010E0AA24A5 +:10216000A394B12C902E802F0E948F04980129589F +:102170003E4F6901F901F080F826A1F401501109E0 +:1021800088F78FEF89838A831B820E94F51B816009 +:10219000782F9D838C8349815A816B818D810E9428 +:1021A00032112FC09091DA0191FF04C08E830E94FA +:1021B00095048E8125E030E0A501022E01C0440F78 +:1021C0000A94EAF7E42E4F21C1F029839A828E21E6 +:1021D00091E009F490E09B830E94F51B8160782FC9 +:1021E0009D838C8349815A816B818D810E9432113C +:1021F000F6018081E826E08204C021503109E0F632 +:10220000BDCF0E94951F109176010E9444101817AF +:10221000B9F00E9444108093760126960FB6F89488 +:10222000DEBF0FBECDBFDF91CF911F910F91FF9009 +:10223000EF90DF90CF90BF90AF909F900C943D09AE +:1022400026960FB6F894DEBF0FBECDBFDF91CF91BB +:102250001F910F91FF90EF90DF90CF90BF90AF90C4 +:102260009F900895CF93DF93CDB7DEB72B970FB62E +:10227000F894DEBF0FBECDBF4F83588769877A873A +:102280008B87DE01119686E0FD0111928A95E9F7B0 +:1022900085E0FE01379601900D928A95E1F749811C +:1022A0005A816B817C818D819E810E947B172B9648 +:1022B0000FB6F894DEBF0FBECDBFDF91CF9108956A +:1022C000CF93882309F4C2C0C82F823859F40E94E2 +:1022D000441081FDBBC089E30E94551A0E94221B55 +:1022E00089E30CC0833879F40E94441080FDAEC0AD +:1022F00083E50E94551A0E94221B83E50E94971ACB +:10230000CF910C94221B843859F40E94441082FD12 +:102310009DC087E40E94551A0E94221B87E4EECFDD +:102320008CEF8C0F813A48F48C2F0E94D8218111B8 +:102330008DC08C2F0E94551AE3CF80E28C0F88301D +:1023400048F4C77081E001C0880FCA95EAF70E947F +:10235000DB1AD6CF8BE58C0F833078F4C53A29F0A1 +:10236000C63A31F083E890E005C081E890E002C011 +:1023700082E890E0CF910C94661088E58C0F833151 +:1023800008F064C0C83A39F1C93A41F1CA3A49F192 +:10239000CB3A51F1CC3A59F1CD3A61F1C03B69F1F8 +:1023A000CE3A71F1CF3A79F1C13B81F1C23B89F16B +:1023B000C33B91F1C43B99F1C53BA1F1C63BA9F1E7 +:1023C000C73BB1F1C83BB9F1C93BC1F1CA3BC9F147 +:1023D00080E090E038C082EE90E035C089EE90E079 +:1023E00032C08AEE90E02FC085EB90E02CC086EBE7 +:1023F00090E029C087EB90E026C08CEC90E023C0F1 +:102400008DEC90E020C083E891E01DC08AE891E067 +:102410001AC082E991E017C084E991E014C081E21A +:1024200092E011C083E292E00EC084E292E00BC021 +:1024300085E292E008C086E292E005C087E292E081 +:1024400002C08AE292E0CF910C947C10CF91089563 +:10245000882309F44BC0823859F40E94441081FF4C +:1024600045C089E30E94551A0E94221B89E30CC0D3 +:10247000833871F40E94441080FF38C083E50E94C5 +:10248000551A0E94221B83E50E94971A0C94221B66 +:10249000843859F40E94441082FF28C087E40E94C7 +:1024A000551A0E94221B87E4EFCF9CEF980F913AB8 +:1024B00058F390E2980F983050F4877091E001C083 +:1024C000990F8A95EAF7892F0E94E11ADFCF9BE5E1 +:1024D000980F933020F480E090E00C946610885AB6 +:1024E000833120F480E090E00C947C1008958823E0 +:1024F00021F00E94DB1A0C94221B0895882321F0FE +:102500000E94E11A0C94221B08957F928F929F9251 +:10251000AF92BF92CF92DF92EF92FF920F931F93F1 +:10252000CF93DF931F92CDB7DEB77C01C62E772EF7 +:10253000FC01058102950F70128111110E94F81A99 +:102540000E944E1A882379F0112369F080E28C0DE5 +:10255000883048F082E00E94371A0E944E1A91E0BB +:10256000D82ED92601C0D12CE72DE295EF70F0E0EE +:10257000E05AFF4F0C940D24872D807F072D0F709C +:10258000882311F00295007F112389F0002309F4BC +:1025900090C180E28C0D883020F4802F0E94DB1ADD +:1025A00003C0802F0E94EB1A0E94221B82C18C2D37 +:1025B0000E942812002309F495C180E28C0D883016 +:1025C00020F4802F0E94E11A03C0802F0E94F11A8C +:1025D0000E94221B87C1972D907F872D8F7090328C +:1025E00011F08295807FCC2021F0F1E0CF16B1F080 +:1025F0001EC0112349F0002309F414C1013009F071 +:1026000011C10E940B1B6EC1002319F0013009F4A7 +:1026100069C189830E940E1B89810AC1112321F09F +:10262000023008F05FC1FEC001115CC101C111237D +:1026300021F0002309F4F6C03CC1002309F4F8C0DE +:102640003EC1872D86958695837090E0009719F09E +:10265000019761F047C1112321F08C2D972D9370C4 +:1026600002C080E090E00E9466103CC1112321F07E +:102670008C2D972D937002C080E090E00E947C101A +:1026800031C18C2D112319F00E949D1E02C00E94A1 +:10269000051F0E948A1F26C1872D837009F052C032 +:1026A000111120C18C2D829586958770880F880F17 +:1026B0009C2D9F70892E912CA12CB12C082E04C02A +:1026C000880C991CAA1CBB1C0A94D2F7C4FE14C027 +:1026D0000FE010E020E030E0B901A80104C0440F91 +:1026E000551F661F771F8A95D2F7CB01BA016095F7 +:1026F00070958095909503C060E070E0CB01272D28 +:1027000026952695237030E02230310569F023307C +:10271000310589F0682979298A299B2921303105D9 +:1027200071F00E94C318DEC0682979298A299B2983 +:102730000E94DF18D7C00E94C318C501B4010E94CF +:10274000A718D0C0112319F0872D817001C086957C +:10275000882309F4C7C08C2D829586958770880FD1 +:10276000880F9C2D9F70892E912CA12CB12C082EA6 +:1027700004C0880C991CAA1CBB1C0A94D2F7C4FE86 +:1027800014C00FE010E020E030E0B901A80104C05F +:10279000440F551F661F771F8A95D2F7CB01BA01E8 +:1027A000609570958095909503C060E070E0CB01D6 +:1027B000272D269526952370422F50E04230510553 +:1027C00069F04330510589F0682979298A299B29C4 +:1027D0004130510571F00E949D1984C06829792902 +:1027E0008A299B290E94B9197DC00E949D19C501A3 +:1027F000B4010E94811976C08C2D90E0FC01E05E4E +:10280000F109E531F10508F050C0E059FF4F0C9493 +:102810000D240C2D0F70872D8F71112331F00E9424 +:102820001A19802F0E9477125DC00E943B19802FD9 +:102830000E947E1257C0112339F0011153C0872D19 +:102840008F710E9460194EC0023008F04BC0F7CF64 +:10285000112339F0872D8F710E941A1943C011235B +:10286000C9F3872D8F710E943B193CC0112329F0B9 +:10287000872D8F710E94051935C00E94FB1832C048 +:10288000112351F0172D1F71812F0E941A1963E037 +:10289000812F0E942E1A26C081E00E94371A023032 +:1028A00008F182E00E94371A1DC0112331F0002385 +:1028B00089F28C2D0E94601115C0002391F28C2D9D +:1028C0000E9428120FC0472D4F706C2DC7010E9427 +:1028D0006B050E941F1806C0472D4F706C2DC70155 +:1028E0000E944C06DD20F9F00E942A1A80FD1BC0D0 +:1028F000F70112820E94241A0E941A19C7010E942D +:10290000A2140E94241A0F90DF91CF911F910F9172 +:10291000FF90EF90DF90CF90BF90AF909F908F90FF +:102920007F900C943B190F90DF91CF911F910F91E5 +:10293000FF90EF90DF90CF90BF90AF909F908F90DF +:102940007F9008950F931F93CF93DF93EC018881BD +:1029500099812B813C81232BB9F09F3F11F48F3F4C +:1029600099F0CE010E94A405882371F068817981D5 +:102970008A810E94201A8C010E94D5190E949C18FD +:10298000B801CE010E948512DF91CF911F910F9166 +:1029900008950E94F81A0E94081B0E94CD1A0E94F6 +:1029A000221B0E943B200E948A1F80E090E00E9430 +:1029B000661080E090E00C947C100E94E81A0C9461 +:1029C000C9140E94151A292F22952F7030E02C303F +:1029D00031054CF42A3031056CF422503109223093 +:1029E0003105A8F407C02C30310569F02F303105CE +:1029F00051F00DC0803F69F018F4803E40F409C0EA +:102A0000843F29F406C093FB882780F9089580E06D +:102A1000089581E00895CF93DF9300D000D01F92F6 +:102A2000CDB7DEB70F900F900F900F900F90DF9102 +:102A3000CF910895CF93DF9300D000D000D0CDB7D1 +:102A4000DEB726960FB6F894DEBF0FBECDBFDF917E +:102A5000CF9108951F93CF93DF93C091850116E026 +:102A600080918601C81799F0D0E01C9FF0011D9F4E +:102A7000F00D1124E957FE4F40815181628173812D +:102A8000848195810E941A152196C770E9CFDF9144 +:102A9000CF911F9108954091B7015091B801609175 +:102AA000B9017091BA018091BB019091BC010C9465 +:102AB0001A158091BC0182958F7009F054C08091E5 +:102AC000B901882309F44FC080918501A091860146 +:102AD0006091B7017091B8014091BA015091BB016A +:102AE000B6E08A1709F43FC090E041155105C1F1E5 +:102AF0007F3F11F46F3FA1F1B89FF001B99FF00D36 +:102B00001124E957FE4F218172132AC020816213DC +:102B100027C02281211124C0238134812417350745 +:102B200010F421503109241B350B283C3105C0F429 +:102B30002091BC012F7020612093BC0126E0289FCA +:102B4000F001299FF00D1124E457FE4F80818F7012 +:102B50008061808387EB91E00E94A2140C942A1577 +:102B600001968770BECF0895CF92DF92EF92FF92C9 +:102B70000F931F93CF93DF93CDB7DEB762970FB656 +:102B8000F894DEBF0FBECDBF8C0185E0F801DE01F9 +:102B90001D9601900D928A95E1F7D8014C911196FE +:102BA0005C91119712966C9112971396CD90DC90D0 +:102BB00014973091B7017091B8018091BA0190914A +:102BC000BB01009709F46BC17F3F19F43F3F09F443 +:102BD00066C1E090B901EE2009F4C0C02091BC01AB +:102BE000C816D90628F0F601E81BF90BCF0104C07E +:102BF000809590958C0D9D1DFF24F394883C910544 +:102C000078F0F12C207F09F0C6C07C2DD98AC88AC3 +:102C100089890E940B1587EB91E00E94A214B1C034 +:102C2000822F807F09F046C0751314C0341312C080 +:102C3000611110C02F7020612093BC010E944B15C0 +:102C400087EB91E00E94A2148091BC01D8011596F7 +:102C50008C932EC0CD2819F15F3F11F44F3FF9F04E +:102C6000F62E61111CC0809185012091860136E00D +:102C7000821709F45AC090E0389FF001399FF00D97 +:102C80001124E957FE4F7181571306C07081471315 +:102C900003C07281711103C001968770E9CFF62ECF +:102CA000662309F418C18091BC0181608093BC0146 +:102CB000F12C11C1751308C0341306C0611104C092 +:102CC0008091BC01D801C3C04D875E878D859E85EC +:102CD0006A8B0E94E1146A898823E1F16623D1F1AD +:102CE0002091BC01822F82958F7090E0029774F042 +:102CF0008091B7019091B80198878F831986DB8600 +:102D0000CA862C87CE0107960E94A21486E0F8019D +:102D1000A7EBB1E001900D928A95E1F70E94591559 +:102D20000E944B15FF24F394D6C04D875E878D8596 +:102D30009E850E94151A292F22952F7030E022308F +:102D400031050CF0BCC09F7009F0B6C0805E8830C1 +:102D500008F4C1C0C8010E94A214E4CFC816D90665 +:102D600008F453C0F601E81BF90BCF01883C91052C +:102D700008F450C0F12C7C2DD98AC88A89890E9418 +:102D80000B15E7EBF1E086E0DF011D928A95E9F78C +:102D90000E944B15A0C0751314C0341312C06111EA +:102DA00010C08091BC01F8018583C8010E94A21463 +:102DB00086E0E7EBF1E0DF011D928A95E9F7FE2C52 +:102DC0008AC04D875E878D859E856A8B0E94E1143F +:102DD0006A89882309F4BECF662309F4BBCF20910A +:102DE000BC01822F82958F7090E002970CF48ECFF9 +:102DF0008091B7019091B8019A8389831B82DD820B +:102E0000CC822E83CE0101967FCF809590958C0D3C +:102E10009D1DACCFF62E662309F49CCF75132EC0F2 +:102E200034132CC02091BC0120FD1FC0822F82953D +:102E30008F70D9F0D80115962C9315978F3049F0E3 +:102E40008F5F982F9295907F822F8F70892B159688 +:102E50008C93C8010E94A21486E0F801A7EBB1E0B0 +:102E600001900D928A95E1F793CF86E0F801A7EBE8 +:102E7000B1E001900D928A95E1F72DC04D875E87F4 +:102E80008D859E850E94E114811140CF8091BC0107 +:102E900081608093BC01C8010E94A2141CC06623FB +:102EA00009F458CF4D875E878D859E850E94E11479 +:102EB000882309F44FCF2ACF811148CF0CC024308A +:102EC00031050CF047CF9F7009F440CFF801958190 +:102ED000907F09F03BCF8F2D62960FB6F894DEBF3E +:102EE0000FBECDBFDF91CF911F910F91FF90EF905B +:102EF000DF90CF9008951F93CF93DF93CDB7DEB7C8 +:102F00002C970FB6F894DEBF0FBECDBF4F83588706 +:102F100069877A878B879C87CE0107960E94B415B4 +:102F2000882369F08F8198852A853B85232BF1F1D1 +:102F30009F3F09F063C08F3F09F060C037C086E053 +:102F4000FE013796DE01119601900D928A95E1F708 +:102F50006F817885EA85FB85309741F17F3F11F4D9 +:102F60006F3F21F12091860130E0C9010196877001 +:102F700099274091850150E08417950709F447C0CF +:102F800069837A83FD83EC8396E0929FD001939FBF +:102F9000B00D1124A957BE4FFE01319601900D923C +:102FA0009A95E1F7809386010E942A1516E0809198 +:102FB0008501909186018917C1F1189FC0011124E4 +:102FC00089579E4F0E94B415882379F1E0918501BD +:102FD0001E9FF0011124E957FE4F4081518162810B +:102FE0007381848195810E941A158091850190E0FA +:102FF00001968770992780938501D9CF4F81588595 +:1030000069857A858B859C850E941A15CFCF0E9491 +:10301000DD141092860110928501E7EBF1E086E065 +:10302000DF011D928A95E9F7C1CF2C960FB6F8946F +:10303000DEBF0FBECDBFDF91CF911F910895EF92FC +:10304000FF920F931F93CF93DF938C01009709F4A6 +:103050006CC0F12CEE24E394E8012196F8018491F0 +:10306000843740F4843008F051C0813081F08230E0 +:1030700019F15BC0853709F444C0A8F19CE7980FAB +:10308000903708F052C08F770E94281241C00E5F1F +:103090001F4FFE01C49180E28C0F883048F4C77046 +:1030A0008E2D01C0880FCA95EAF70E94FB1A14C042 +:1030B0008C2F0E9460112DC00E5F1F4FFE01C49126 +:1030C00080E28C0F883058F4C7708E2D01C0880FB5 +:1030D000CA95EAF70E94011B0E94221B1AC08C2F7E +:1030E0000E94281216C00E5F1F4FFE01C491CC2310 +:1030F00081F08FE99FE00197F1F700C00000C15017 +:10310000F6CF0E5F1F4FFE01F49003C00E946011C6 +:103110008E018F2D882309F49FCFEFE9FFE03197CF +:10312000F1F700C000008150F5CFDF91CF911F91E2 +:103130000F91FF90EF90089508956093C1017093EF +:10314000C2018093C3019093C4010C94C9140F93DE +:103150001F930091C1011091C2012091C3013091D0 +:10316000C401DC01CB01802B912BA22BB32B8093CC +:10317000C1019093C201A093C301B093C4011F91F8 +:103180000F910C94C9140F931F930091C1011091DA +:10319000C2012091C3013091C401DC01CB01802325 +:1031A0009123A223B3238093C1019093C201A093E2 +:1031B000C301B093C4011F910F910C94C9140F93D4 +:1031C0001F930091C1011091C2012091C301309160 +:1031D000C401DC01CB0180279127A227B32780936C +:1031E000C1019093C201A093C301B093C4011F9188 +:1031F0000F910C94C9141092BD011092BE0110924F +:10320000BF011092C0010C94C91441E050E060E08D +:1032100070E004C0440F551F661F771F8A95D2F7D0 +:103220004093BD015093BE016093BF017093C001F4 +:103230000C94C91441E050E060E070E004C0440F19 +:10324000551F661F771F8A95D2F78091BD01909117 +:10325000BE01A091BF01B091C001482B592B6A2B30 +:103260007B2B4093BD015093BE016093BF017093CF +:10327000C0010C94C91441E050E060E070E004C06B +:10328000440F551F661F771F8A95D2F740955095BA +:10329000609570958091BD019091BE01A091BF0194 +:1032A000B091C001482359236A237B234093BD0179 +:1032B0005093BE016093BF017093C0010C94C91478 +:1032C00041E050E060E070E004C0440F551F661F0D +:1032D000771F8A95D2F78091BD019091BE01A09190 +:1032E000BF01B091C001482759276A277B27409327 +:1032F000BD015093BE016093BF017093C0010C9457 +:10330000C9140F931F930091BD011091BE0120912C +:10331000BF013091C001DC01CB01802B912BA22B8E +:10332000B32B8093BD019093BE01A093BF01B093D6 +:10333000C0011F910F910C94C9140F931F9300911A +:10334000BD011091BE012091BF013091C001DC018F +:10335000CB0180239123A223B3238093BD019093BB +:10336000BE01A093BF01B093C0011F910F910C94B7 +:10337000C9140F931F930091BD011091BE012091BC +:10338000BF013091C001DC01CB0180279127A2272A +:10339000B3278093BD019093BE01A093BF01B0936A +:1033A000C0011F910F910C94C9140895CF92DF9220 +:1033B000EF92FF920F931F93CF93DF938C01C090F6 +:1033C000C101D090C201E090C301F090C40180918E +:1033D000BD019091BE01A091BF01B091C001C82A6A +:1033E000D92AEA2AFB2ACFE1D0E0D701C6010C2E68 +:1033F00004C0B695A795979587950A94D2F780FF54 +:1034000006C0B8018C2F0E94A208019721F42197D1 +:1034100060F780E001C08C2FDF91CF911F910F9159 +:10342000FF90EF90DF90CF900895CF93DF93EC0162 +:103430000E94D619BE010E94A208DF91CF91089583 +:10344000CB010E94151A08958091C5018595859537 +:10345000859508958091C5018770089598E0899FAA +:1034600090011124262B2093C5010C941A19209148 +:10347000C501809582238093C501982F977069F4C8 +:1034800030E0482F552747FD50952417350729F080 +:103490008595859585950C943B1908959091C50166 +:1034A000977081E009F480E0089590910C019923D0 +:1034B00021F090910D01911109C020910E013091E0 +:1034C0000F01F90132969FEF40E01FC0982F9695AB +:1034D000969596959F3050F5E0910E01F0910F0171 +:1034E000E90FF11D877021E030E0A90102C0440F0F +:1034F000551F8A95E2F7CA019181892B818308952E +:103500009F3F39F04F5F4E3041F051915813F8CF43 +:103510000DC05111F7CF942FF5CF9F3F39F0F9012E +:10352000E90FF11D97FDFA95828308950895909112 +:103530000C01992321F090910D01911109C0209166 +:103540000E0130910F01F9013296205F3F4F1FC0ED +:10355000982F9695969596959F30F0F4E0910E01F0 +:10356000F0910F01E90FF11D877021E030E0A90112 +:1035700002C0440F551F8A95E2F7CA0180959181D8 +:103580008923818308953196E217F30729F090810A +:103590009813F9CF1082F7CF089581E090E0E09181 +:1035A0000E01F0910F01E80FF91F10820196803192 +:1035B0009105A9F708959091D901892B8093D9019C +:1035C000089580959091D90189238093D901089518 +:1035D0001092D90108959091D801892B8093D80138 +:1035E000089580959091D80189238093D8010895FA +:1035F0001092D80108959091D701892B8093D7011B +:10360000089580959091D70189238093D7010895DB +:103610001092D70108958093C60108951092C601B3 +:10362000089580910E0190910F01FC0131969C014B +:10363000205F3F4F80E0919191118F5FE217F30778 +:10364000D1F70895E0910E01F0910F018091D90119 +:103650008083E0910E01F0910F0190818091D8015B +:10366000892B8083E0910E01F0910F019081809170 +:10367000D701892B80838091C601882361F0E09176 +:103680000E01F0910F019081892B80830E94111B04 +:1036900081111092C60180910E0190910F010C943E +:1036A000501020E0009739F0AC01415051098423BB +:1036B00095232F5FF7CF822F0895CF92DF92EF925D +:1036C000FF926C01EE24FF24C114D104E104F10443 +:1036D00021F0C701B60120E101C020E0C72ED82E9D +:1036E000E92EFF24C114D104E104F10419F0285F8C +:1036F000C701B6016B017C0154E0F694E794D794BE +:10370000C7945A95D1F7C114D104E104F10419F01A +:103710002C5FC701B6016B017C0142E0F694E7948F +:10372000D794C7944A95D1F7C114D104E104F104A8 +:1037300019F02E5FC701B601DC01CB01B695A79544 +:1037400097958795892B8A2B8B2B09F02F5F822FDA +:10375000FF90EF90DF90CF9008958091F101843039 +:1037600021F11092DB0120E488E190E00FB6F8949B +:10377000A895809360000FBE2093600080E00E94B7 +:103780003D0983B7817F846083BF83B7816083BF36 +:103790007894889583B78E7F83BF88E10FB6F894BD +:1037A00080936000109260000FBE08950895089500 +:1037B0000E94D61B0E94A1030E94D71B0E94960460 +:1037C00091E0811101C090E0892F08950E94DD14DD +:1037D0000E9444100C943D0982E084BD93E095BDA5 +:1037E0009AEF97BD80936E0008952FB7F89480915B +:1037F000DC019091DD01A091DE01B091DF012FBFCE +:103800000895CF92DF92EF92FF920F931F932FB7FD +:10381000F8944091DC015091DD016091DE017091DE +:10382000DF012FBF6A017B01EE24FF248C0120E021 +:1038300030E0C016D106E206F30610F441505109FB +:103840009A01281B390BC9011F910F91FF90EF902E +:10385000DF90CF9008951F920F920FB60F92112410 +:103860008F939F93AF93BF938091DC019091DD0183 +:10387000A091DE01B091DF010196A11DB11D8093E1 +:10388000DC019093DD01A093DE01B093DF01BF91D5 +:10389000AF919F918F910F900FBE0F901F90189531 +:1038A0000E94410DF8942FEF87EA91E62150804065 +:1038B0009040E1F700C0000087E090EBDC018093CE +:1038C000FB019093FC01A093FD01B093FE019CE0ED +:1038D00088E10FB6F894A895809360000FBE90938E +:1038E0006000FFCFEF92FF920F931F93CF93DF9370 +:1038F000D82FCDE08C2F0E948F0405E010E0E82E39 +:10390000F12CC701002E02C0959587950A94E2F725 +:1039100080FF09C0602F7C2F80E00E944D06D813E5 +:1039200002C081E006C00150110958F7C15010F7DC +:1039300080E0DF91CF911F910F91FF90EF9008955C +:10394000CF93C82F8CE20E94721C882321F08C2F09 +:10395000CF910C94721C80E0CF910895CF930E9478 +:10396000F51D811102C00E94DB1DC5E6C15049F062 +:103970000E94A1038FE39CE90197F1F700C00000CA +:10398000F5CF89E20E94A01C811113C18AE20E9436 +:10399000A01C81110E94DB1D85E00E94A01C8111EA +:1039A0000E94501C0E94001E8093DA0187E00E9452 +:1039B000A01C8823A9F18BE10E94A01C882351F050 +:1039C0008091DA0181FB222720F991E0922790FB78 +:1039D00081F90EC08EE00E94A01C882361F08091C6 +:1039E000DA0182FB222720F991E0922790FB82F9ED +:1039F0008093DA0115C080E10E94A01C9091DA0149 +:103A0000882341F093FB222720F981E0822780FB65 +:103A100093F904C0892F809580FB90F99093DA0187 +:103A20008091DA010E94041E0E94121E8093FA0106 +:103A300080EE0E94A01C882341F08091FA01982F0B +:103A4000909590FB80F98093FA0189E30E94A01C75 +:103A5000882359F08091FA0181FB222720F991E017 +:103A6000922790FB81F98093FA0182EE0E94A01CBC +:103A7000882359F08091FA0182FB222720F991E0F6 +:103A8000922790FB82F98093FA0186EE0E94A01C97 +:103A9000882359F08091FA0183FB222720F991E0D5 +:103AA000922790FB83F98093FA0183EE0E94A01C79 +:103AB000882359F08091FA0184FB222720F991E0B4 +:103AC000922790FB84F98093FA0185E30E94A01C61 +:103AD000882359F08091FA0185FB222720F991E093 +:103AE000922790FB85F98093FA0181E30E94A01C44 +:103AF000882359F08091FA0186FB222720F991E072 +:103B0000922790FB86F98093FA0181E10E94A01C24 +:103B1000882359F08091FA0187FB222720F991E050 +:103B2000922790FB87F98093FA018091FA010E9415 +:103B3000161E8091FA0187FB882780F980930D017A +:103B400087E20E94A01CC82F8EE10E94A01C811158 +:103B5000C2608FE10E94A01C8111C46080E20E94BB +:103B6000A01C8111C86081E20E94A01C8111C0616B +:103B700082E20E94A01C8111C06283E20E94A01C0C +:103B80008111C06484E20E94A01C882311F0C068E7 +:103B900002C0CC2329F08C2F0E940D1E6C2F03C075 +:103BA0000E94091E682F70E080E090E0CF910C9495 +:103BB0009D18CF9108956DEE7EEF80E090E00E9419 +:103BC000472460E082E090E00E94352460E083E0DA +:103BD00090E00E94352460E084E090E00E9435246B +:103BE00060E085E090E00C94352480E090E00E9455 +:103BF0002F2421E08D3E9E4F09F020E0822F089572 +:103C000082E090E00C942724682F82E090E00C94EE +:103C1000352483E090E00C942724682F83E090E023 +:103C20000C94352484E090E00C942724682F84E0E1 +:103C300090E00C9435248091E20180FF0BC06091EC +:103C4000130185E0689FB0011124759567957595FE +:103C500067952BC081FF09C06091130185E0689FC3 +:103C6000B00111247595679520C082FF07C060914F +:103C7000130185E0689FB001112417C09091E30102 +:103C80009923D1F060911201961788F720911301C2 +:103C900085E0289F90011124929FA001939F500DD1 +:103CA000112470E0CA010E94F9236038710540F4C4 +:103CB0006115710539F002C065E070E0862F089546 +:103CC0008FE7089581E008958091E20180FF08C0A8 +:103CD0006091110170E0759567957595679521C0A4 +:103CE00081FF06C06091110170E07595679519C05C +:103CF00082FF04C06091110170E010C09091E30157 +:103D00009923C1F0609110019617A0F780911101DD +:103D1000899FC001112470E00E94F9236038710569 +:103D200028F46115710521F0862F08958FE7089515 +:103D300081E0089561E070E0F4CF803F21F40E94BB +:103D40001B1E819504C0813F29F40E941B1E809395 +:103D5000E6010895823F21F40E941B1E819504C054 +:103D6000833F29F40E941B1E8093E5010895893F3B +:103D700019F40E94641E05C08A3F31F40E94641E3B +:103D800081958093E70108958B3F21F40E94641E82 +:103D9000819504C08C3F29F40E94641E8093E80141 +:103DA0000895843F21F48091E401816017C0853F2C +:103DB00021F48091E401826011C0863F21F480915A +:103DC000E40184600BC0873F21F48091E4018860A6 +:103DD00005C0883F31F48091E40180618093E40163 +:103DE00008958D3F21F48091E20181600BC08E3FE8 +:103DF00021F48091E201826005C08F3F29F4809117 +:103E0000E20184608093E2010895803F39F480915B +:103E1000E60187FF6CC01092E60169C0813F29F47A +:103E20008091E6011816BCF362C09091E501823FD3 +:103E300029F497FF5CC01092E50159C0833F19F443 +:103E40001916CCF354C0893F41F48091E70118164C +:103E50000CF04DC01092E7014AC08A3F29F48091CE +:103E6000E70187FF44C0F6CF8B3F39F48091E8012A +:103E700087FF3DC01092E8013AC08C3F29F4809141 +:103E8000E8011816BCF333C0843F21F48091E401AB +:103E90008E7F17C0853F21F48091E4018D7F11C092 +:103EA000863F21F48091E4018B7F0BC0873F21F492 +:103EB0008091E401877F05C0883F31F48091E4015F +:103EC0008F7E8093E40113C08D3F21F48091E20145 +:103ED0008E7F0BC08E3F21F48091E2018D7F05C063 +:103EE0008F3F29F48091E2018B7F8093E2018091E2 +:103EF000E50181110EC08091E60181110AC0809117 +:103F0000E701811106C08091E801811102C0109281 +:103F1000E301089584EE91E00E945B100E94F51B7E +:103F20009093E1018093E00108951F93CF93DF9375 +:103F30008091E0019091E1010E94011CAC019091FF +:103F4000E301992321F02091140130E006C0209173 +:103F500015018AE0289F900111244217530708F4A5 +:103F600086C08091E501C091E601D091E7011091F2 +:103F7000E801811107C0C11176C0D11174C01111BF +:103F800072C075C09F3F19F09F5F9093E3011816B0 +:103F900024F40E941B1E8093E5018091E50187FFB8 +:103FA00005C00E941B1E81958093E5011C1624F418 +:103FB0000E941B1E8093E6018091E60187FF05C0E9 +:103FC0000E941B1E81958093E6016091E5016623A6 +:103FD00039F1C091E601CC2319F1772767FD70957F +:103FE000872F972F0E940A2323E333E343E35FE302 +:103FF0000E946E230E94D7226093E5016C2F7727E1 +:1040000067FD7095872F972F0E940A2323E333E3E0 +:1040100043E35FE30E946E230E94D7226093E60190 +:104020001D1624F40E94641E8093E7018091E7012D +:1040300087FF05C00E94641E81958093E7011116D9 +:1040400024F40E94641E8093E8018091E80187FFB8 +:1040500005C00E94641E81958093E801DF91CF9195 +:104060001F910C948A1F9F3F09F08ECF96CFDF914E +:10407000CF911F910895E4EEF1E085E0DF011D92FC +:104080008A95E9F71092E3011092E20108958330D6 +:1040900081F128F4813059F08230D1F008958530D3 +:1040A00009F449C0B8F1863009F456C008958091EA +:1040B0001501262F30E0280F311D2F3F310524F444 +:1040C000680F6093150108958FEF8093150108958F +:1040D00080911401262F30E0280F311D2F3F31052C +:1040E00024F4680F6093140108958FEF80931401F6 +:1040F000089580911301262F30E0280F311D2F3FA6 +:10410000310524F4680F6093130108958FEF8093B5 +:104110001301089580911201262F30E0280F311DE0 +:104120002F3F310524F4680F6093120108958FEF3B +:1041300080931201089580911101262F30E0280FFD +:10414000311D2F3F310524F4680F6093110108954C +:104150008FEF80931101089580911001262F30E098 +:10416000280F311D2F3F310524F4680F6093100193 +:1041700008958FEF809310010895833011F128F492 +:10418000813049F0823091F00895853081F120F13D +:104190008630C1F1089580911501681720F4861BBF +:1041A00080931501089510921501089580911401CE +:1041B000681720F4861B809314010895109214014F +:1041C000089580911301681720F4861B80931301D2 +:1041D000089510921301089580911201681720F438 +:1041E000861B809312010895109212010895809108 +:1041F0001101681720F4861B809311010895109215 +:104200001101089580911001681720F4861B809396 +:10421000100108951092100108950F931F938D318E +:1042200009F46BC008F03FC08E3009F47FC0C0F4C1 +:10423000873009F469C068F4863009F0B1C0809114 +:10424000DA01817F8E7F8093DA0181E08093EA0139 +:10425000A8C0883009F4A2C08B3009F49FC0A0C068 +:10426000863109F49BC078F4803109F472C0813141 +:1042700009F096C00E94DD1490910D0181E089271C +:1042800080930D018BC0893109F488C08B3109F00E +:1042900087C08091DA0181FB222720F991E09227E3 +:1042A00090FB81F94CC0853309F470C048F4873223 +:1042B00009F46CC008F459C0893209F467C070C0B1 +:1042C000833438F48A3308F04EC0883309F466C06A +:1042D00067C0833409F45AC0883409F061C00E9471 +:1042E000DD140FEF13ED20E3015010402040E1F703 +:1042F00000C000000E94501C51C00E9491220E94E8 +:1043000044100E943D094AC09091DA01892F80959E +:10431000817080FB90F929F0966098609093DA01A3 +:1043200040C0997F977F9093DA0138C08091DA017D +:1043300082FB222720F991E0922790FB82F980935B +:10434000DA01992359F18091DA0181608093DA01D1 +:1043500025C08091DA0183FB222720F991E0922782 +:1043600090FB83F9ECCF895301C08D5141E050E0BF +:1043700060E070E08A019B0104C0000F111F221F42 +:10438000331F8A95D2F7C901B80104C061E070E01B +:1043900080E090E00E949D180E94DD1481E001C041 +:1043A00080E01F910F91089580E0089580E00895C6 +:1043B000CF93C82F8091EA01813079F018F08230D4 +:1043C000E9F187C0E0910E01F0910F018081813108 +:1043D00069F0823209F07FC009C0E0910E01F091CE +:1043E0000F018081813111F0823261F48C2F0E94A3 +:1043F000D421811104C08C2F0E940D211DC081E0A9 +:1044000090E01AC08C2F0E94D621811114C0C431B3 +:1044100079F048F4CB3079F0C03109F060C082E027 +:104420008093EA0108C0C93219F0C83321F057C09F +:104430001092EA0154C081E0817053C0C93289F101 +:1044400018F5C43171F1A8F4C73009F046C08AE00C +:104450008093150194E19093140193E090931301DC +:104460008093120188E08093110188E2809310010B +:1044700034C0CE51C63088F5EC2FF0E0E65DFE4F3B +:1044800080818093E90129C0CE34E9F020F4CB3457 +:1044900021F56AE013C0C13579F0C235F1F461E06D +:1044A0000DC08091E901882319F01092E90115C02F +:1044B00081E08093EA0115C061E006C08091E901C6 +:1044C0000E9447200AC06AE08091E9010E94BD2055 +:1044D00004C01092EA0180E004C081E002C080E0E4 +:1044E000ABCFCF910895E1E8F0E0808188608083D0 +:1044F0008081816080838FB7F89493E090938900E6 +:1045000090ED909388008FBF0895EFE6F0E08081F2 +:10451000826080830895EFE6F0E080818D7F808364 +:104520000895EFE6F0E0908182E089278083089586 +:104530001F920F920FB60F9211242F933F934F9318 +:104540005F936F937F938F939F93AF93BF93EF93FB +:10455000FF938091EB019091EC0101969093EC0117 +:104560008093EB01811103C082E00E943D09E0913C +:10457000EC01E695E695F0E0E05AFA4FE49180917F +:10458000EB018E1303C080E00E943D09FF91EF9183 +:10459000BF91AF919F918F917F916F915F914F915B +:1045A0003F912F910F900FBE0F901F90189504D040 +:1045B0006894B1118DC0089570D088F09F5790F025 +:1045C000B92F9927B751A0F0D1F0660F771F881F38 +:1045D000991F1AF0BA95C9F712C0B13081F077D09F +:1045E000B1E0089574C0672F782F8827B85F39F03D +:1045F000B93FCCF3869577956795B395D9F73EF497 +:1046000090958095709561957F4F8F4F9F4F08953E +:10461000E89409C097FB3EF490958095709561955C +:104620007F4F8F4F9F4F9923A9F0F92F96E9BB2712 +:104630009395F695879577956795B795F111F8CF8E +:10464000FAF4BB0F11F460FF1BC06F5F7F4F8F4FF9 +:104650009F4F16C0882311F096E911C0772321F0EF +:104660009EE8872F762F05C0662371F096E8862F87 +:1046700070E060E02AF09A95660F771F881FDAF7DE +:10468000880F9695879597F9089557FD9058440F90 +:10469000551F59F05F3F71F04795880F97FB991FA1 +:1046A00061F09F3F79F0879508951216130614065E +:1046B000551FF2CF4695F1DF08C0161617061806EB +:1046C000991FF1CF86957105610508940895E894C6 +:1046D000BB2766277727CB0197F908950BD078C0C1 +:1046E00069D028F06ED018F0952309F05AC05FC049 +:1046F0001124EECFCADFA0F3959FD1F3950F50E0C0 +:10470000551F629FF001729FBB27F00DB11D639F83 +:10471000AA27F00DB11DAA1F649F6627B00DA11D29 +:10472000661F829F2227B00DA11D621F739FB00DCF +:10473000A11D621F839FA00D611D221F749F33273F +:10474000A00D611D231F849F600D211D822F762FD8 +:104750006A2F11249F5750408AF0E1F088234AF0D5 +:10476000EE0FFF1FBB1F661F771F881F9150504021 +:10477000A9F79E3F510570F014C0AACF5F3FECF33C +:10478000983EDCF3869577956795B795F795E7950D +:104790009F5FC1F7FE2B880F911D9695879597F91E +:1047A000089597F99F6780E870E060E008959FEFB3 +:1047B00080EC089500240A941616170618060906B8 +:1047C000089500240A941216130614060506089587 +:1047D000092E0394000C11F4882352F0BB0F40F40F +:1047E000BF2B11F460FF04C06F5F7F4F8F4F9F4F4F +:1047F000089597FB072E16F4009407D077FD09D093 +:104800000E94132407FC05D03EF4909581959F4F9C +:104810000895709561957F4F0895EE0FFF1F0590E5 +:10482000F491E02D0994AA1BBB1B51E107C0AA1FFC +:10483000BB1FA617B70710F0A61BB70B881F991F41 +:104840005A95A9F780959095BC01CD010895F999E5 +:10485000FECF92BD81BDF89A992780B50895A8E151 +:10486000B0E042E050E00C944F24262FF999FECF9F +:1048700092BD81BDF89A019700B4021639F01FBAB3 +:1048800020BD0FB6F894FA9AF99A0FBE08950196D2 +:10489000272F0E9436240C943524DC01CB01FC0127 +:1048A000F999FECF06C0F2BDE1BDF89A319600B489 +:0E48B0000D9241505040B8F70895F894FFCF94 +:1048BE0002203F09CD09AA09760942090101C70163 +:1048CE0028080A03140A3F4D36392105D4049E04E4 +:1048DE006504F80311042A044304010203040506C7 +:0448EE0007080900AE +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c new file mode 100644 index 000000000..7c9f67381 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c @@ -0,0 +1,134 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 +#define SYMB 1 +#define PLVR 2 +#define ARRW 3 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = KEYMAP( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F14, + KC_TAB, KC_Q, KC_W, KC_D, KC_F, KC_K, TG(PLVR), + CTL_T(KC_ESC), KC_A, KC_S, KC_E, KC_T, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, + KC_F1, KC_F2, KC_F3, KC_LALT, KC_LGUI, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLD, KC_MUTE, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLU, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_BSPC, CTL_T(KC_ESC), KC_FN1, + // + /*-*/ KC_F15, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + /*-*/ KC_BSLS, KC_J, KC_U, KC_R, KC_L, KC_SCLN, KC_MINS, + /*-*/ /*-*/ KC_Y, KC_N, KC_I, KC_O, KC_H, KC_ENT, + /*-*/ KC_RBRC, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + /*-*/ /*-*/ /*-*/ KC_RGUI, KC_RALT, KC_F4, KC_F5, KC_F6, + KC_MPLY, KC_MNXT, + KC_MPRV, + KC_FN3, KC_QUOT, KC_SPC + ), + [SYMB] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, + KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + // + /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + /*-*/ /*-*/ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS, + /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ), + [PLVR] = KEYMAP( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, + 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_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_C, KC_V, KC_NO, + // + /*-*/ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + /*-*/ KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO, + /*-*/ /*-*/ 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_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_NO, KC_N, KC_M + ), + [ARRW] = 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_MS_L, KC_MS_U, KC_MS_D, KC_MS_R, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + // + /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ KC_LEFT, KC_DOWN, KC_UP, 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, KC_TRNS + ), +}; + +const uint16_t PROGMEM fn_actions[] = { + [SYMB] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Symbols Layer + [PLVR] = ACTION_LAYER_TAP_TOGGLE(PLVR), // FN2 - Momentary Plover Layer + [ARRW] = ACTION_LAYER_TAP_TOGGLE(ARRW), // FN3 - Momentary Arrows Layer +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } 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 PLVR: + ergodox_right_led_2_on(); + break; + case ARRW: + ergodox_right_led_3_on(); + break; + default: + break; + } +}; diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md new file mode 100644 index 000000000..4188d2b50 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md @@ -0,0 +1,50 @@ +# Roman's Layout + +There are four layers: + +- **BASE** is [Norman layout](https://normanlayout.info/). +- **SYMB** for numbers and symbols. +- **PLVR** is optimized for [Plover](http://www.openstenoproject.org). +- **ARRW** for navigation (same fingers for arrows as HJKL on QWERTY). + +Looking for IJKL arrows? [Here we +go](../romanzolotarev-norman-plover-osx/). + +[![keyboard-layout](romanzolotarev-norman-plover-osx-hjkl.png)](rttp://www.keyboard-layout-editor.com/#/gists/56ffedceb0668dda47c993e7271563e0) + +## Switching + +- Tap `SYMB` to toggle **SYMB**. +- Tap `ARRW` to toggle **ARRW**. +- Hold `SYMB` (or `ARRW`) to activate **SYMB** (or **ARRW**) while holding. +- Tap `PLVR` to toggle **PLVR**. + +## LEDs + +- Red: SYMB is on. +- Green: PLVR is on. +- Blue: ARRW is on. + +## Functional Keys + +- Tap `F1` to mute microphone via [Shush](http://mizage.com/shush/). +- Tap `F2` to copy screenshot to the clipboard. +- Hold `SHIFT` and tap `F2` to save screenshot as a file. +- Tap `F3`, `F4`, `F5`, `F6` to resize a window via [Divvy](http://mizage.com/divvy/). +- Tap `F14`, `F15` to adjust display brightness. + +**IMPORTANT**: If you have another keyboard connected via Bluetooth, then +`F14` and `F15` will not work. Turn off that Bluetooth keyboard. Re-plug +you ErgoDox. Enjoy! + +## CTRL/ESC + +Both of those keys are frequently used in Vim. + +- Tap `CTRL/ESC` to send `ESC`. +- Hold `CTRL/ESC` to use as `CTRL`. + +## Activate N-rollover + +- While in **BASE** hold left `SHIFT` and right `SHIRT` and then tap `N`. +- Then you can activate **PLVR** and use ErgoDox EZ for steno. diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.png b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.png new file mode 100644 index 000000000..cdc535f79 Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.png differ diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/compiled.hex b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/compiled.hex new file mode 100644 index 000000000..66d01f1c6 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/compiled.hex @@ -0,0 +1,1169 @@ +:100000000C94D0020C9414030C9414030C94140359 +:100010000C9414030C9414030C9414030C94140304 +:100020000C9414030C9414030C94BC0D0C948E0EBD +:100030000C9414030C9414030C9414030C941403E4 +:100040000C9414030C9498220C9414030C94140331 +:100050000C9414030C942B1C0C9414030C94140394 +:100060000C9414030C9414030C9414030C941403B4 +:100070000C9414030C9414030C9414030C941403A4 +:100080000C9414030C9414030C9414030C94140394 +:100090000C9414030C9414030C9414030C94140384 +:1000A0000C9414030C9414030C941403FB0E1D0FF6 +:1000B0000B101D0F0B10620F850F0B10DA0FED0FD9 +:1000C000BC12BC12EB12EB12211341137214721406 +:1000D0004C137214FC13FC136314721472146C141A +:1000E0000914091409140914091409140914091428 +:1000F0000914091409140914091409140914091418 +:100100001B1428142F14361440140000F0A1F0A280 +:10011000F0A335002B002971E1003A0000001E0019 +:10012000140004001D003B00C1001F001A0016004F +:100130001B003C0029712000070008000600E200B7 +:100140002A002100090017001900E300A90022007D +:100150000E000A0005000000AA0069000254000019 +:100160002F000000A8006A003100000030000000ED +:10017000AE0023000D001C0013000000AB002400A3 +:10018000180011001000E700AC00250015000C005D +:100190003600E6002C0026000F00120037003D005C +:1001A0003400270033000B0038003E00C3002E004F +:1001B0002D002800E5003F000000010001000100C3 +:1001C00001000100000001001E001E0201000100EC +:1001D000010001001F001F020100010001000100D9 +:1001E0002000200201000100010001002100210285 +:1001F00001000100010001002200220201000000B4 +:1002000001000100010000000100000001000100E8 +:100210000100000001000000010001002300230292 +:10022000010000000100010024002402010001007F +:10023000010001002500250201000100010001006C +:10024000260026020100010001000100270027020C +:100250000100010001000100010001000100010096 +:10026000000000000000000000000100000000008D +:100270001E00140004000100000000001F001A000E +:10028000160001001900000020000800070000000F +:100290000600000021001500090000000100000018 +:1002A000220017000A000000010001000100000008 +:1002B000000000000100010000000000000000003C +:1002C0000100000023001C000B00000001000000E2 +:1002D000240018000D0000000100000025000C00A3 +:1002E0000E00000010000000260012000F000000A9 +:1002F0001100000027001300330000000000000080 +:1003000000002F0034000000000001000100010087 +:1003100001000100000001000100010001000100D6 +:1003200001000100F400F2000100010001000100E1 +:10033000F000F1000100010001000100F500F300F0 +:1003400001000100010001000100010001000000A6 +:100350000100010001000000010000000100010097 +:100360000100000001000000010001000100010087 +:100370000100000001000100010050000100010027 +:1003800001000100520051000100010001000100C4 +:1003900001004F0001000100010001000100010007 +:1003A0000100010001000100010001000100010045 +:1003B000000016034500720067006F0044006F00E4 +:1003C0007800200045005A00000016034500720026 +:1003D00067006F0044006F007800200045005A005D +:1003E00000000403090409026D00040100A0FA09D9 +:1003F0000400000103010100092111010001223F55 +:10040000000705810308000A090401000103010235 +:1004100000092111010001224D0007058203080097 +:100420000A09040200010300000009211101000172 +:100430002236000705830308000A090403000103AC +:100440000000000921110100012239000705840381 +:100450001000011201100100000008EDFE07130159 +:10046000000102000105010906A101050719E029A3 +:10047000E715002501950875018102050819012974 +:1004800005950575019102950175039101050719FF +:1004900000297715002501957875018102C00501B5 +:1004A0000980A101850216010026B7001A01002A61 +:1004B000B700751095018100C0050C0901A10185E7 +:1004C00003160100269C021A01002A9C0275109551 +:1004D000018100C005010902A1010901A10005096E +:1004E0001901290515002501950575018102950160 +:1004F000750381010501093009311581257F9502B8 +:100500007508810609381581257F950175088106D2 +:10051000050C0A38021581257F950175088106C0F2 +:10052000C005010906A101050719E029E715002505 +:100530000195087501810295017508810105081969 +:100540000129059505750191029501750391010534 +:1005500007190029FF150025FF950675088100C0C1 +:100560000000000000000000000000010204060A74 +:100570000F17202C3A4A5D71879DB3C7DAE9F5FC65 +:10058000FFFCF5E9DAC7B39D87715D4A3A2C201765 +:100590000F0A060402010000000000000000000035 +:1005A00011241FBECFEFDAE0DEBFCDBF04B603FEDD +:1005B00024C08091FB019091FC01A091FD01B091BC +:1005C000FE018730904BA740B04BB9F41092FB016D +:1005D0001092FC011092FD011092FE0114BE84B72E +:1005E000877F84BF88E10FB6F894809360001092F3 +:1005F00060000FBEE0E0FFE3099511E0A0E0B1E08C +:10060000EEEBF8E402C005900D92A433B107D9F7E0 +:1006100011E0A4E3B1E001C01D92AB3FB107E1F7E7 +:100620000E94000B0C945D240C9400001092B90001 +:100630008AE08093B800089594EA9093BC0090916A +:10064000BC0097FFFCCF9091B900987F983021F0C3 +:10065000903111F081E008958093BB0084E880938D +:10066000BC008091BC0087FFFCCF8091B900887FDF +:10067000883111F0803471F780E0089584E9809327 +:10068000BC008091BC0084FDFCCF08958093BB002A +:1006900084E88093BC008091BC0087FFFCCF9091E0 +:1006A000B900987F81E0983209F480E0089584E8E9 +:1006B0008093BC008091BC0087FFFCCF8091BB0081 +:1006C000089580910101811115C080E40E941C03EE +:1006D0008093010181110CC082E10E944603809346 +:1006E0000101811105C08FEF0E9446038093010133 +:1006F0000E943E0384B1807F84B985B1807F85B933 +:100700008AB1837F8AB98BB1837F8BB93E98469833 +:1007100008950E941C05809301010E94610380B32B +:100720008C7080BB81B3836F81BBA5E3B1E0E3E450 +:10073000F1E08EE08E0F11921D928E13FCCF0C947F +:100740000605BF92CF92DF92EF92FF920F931F9315 +:10075000CF93DF9380910101882379F08091340158 +:100760008F5F80933401811108C00E941C05809323 +:100770000101811102C00E94AE0405E311E0C0E056 +:10078000D0E0DD24D39482E0C82EEE24E394F12C53 +:10079000C730D10500F580910101811164C080E46A +:1007A0000E941C0380930101811112C082E10E940A +:1007B00046038093010181110BC0C7010C2E01C0BB +:1007C000880F0A94EAF780950E94460380930101FE +:1007D0000E943E0348C0CA30A1F028F4C83059F046 +:1007E000C93061F005C0CC3089F070F0CD3089F0AF +:1007F000209A289810C0219A29980DC0229A2A98E8 +:100800000AC0239A2B9807C0529A01C0539A5B984A +:1008100002C03E9A469890EA9A95F1F79FB179996D +:1008200002C082E001C080E091709D25982B7C99E8 +:1008300002C084E001C080E0892B7D9902C038E0CD +:1008400001C030E0832B7E9902C020E101C020E08E +:10085000822B9FB19095991F9927991F9295990F77 +:10086000907E892B0FC080910101811149C080E4E5 +:100870000E941C0380930101882379F1B12C0E940E +:100880003E038B2DF8019081981719F08083C09258 +:1008900000010E94610321960F5F1F4FCE30D105EA +:1008A00009F076CF80910001882361F18150809317 +:1008B0000001882339F08FE99FE00197F1F700C02C +:1008C000000020C0A3E4B1E0E5E3F1E0CF01825FE6 +:1008D00091919D938E13FCCF15C083E10E94460336 +:1008E000809301018111CACF81E40E941C0380938F +:1008F00001018111C3CF0E945703B82EB094BFCF1E +:1009000080E0C0CF0E94AC0481E0DF91CF911F91C5 +:100910000F91FF90EF90DF90CF90BF900895E82F58 +:10092000F0E0ED5BFE4F8081089508950F931F93D3 +:10093000CF93DF93C3E4D1E010E00C2F025F8991E5 +:1009400090E00E94511B180F0C13F9CF812FDF91FB +:10095000CF911F910F9108950C947C0556985E9845 +:1009600025982D9826982E9827982F988FEF90E00D +:10097000909389008093880090938B0080938A00E5 +:1009800090938D0080938C00259A2D9A2FEF80E70D +:1009900092E0215080409040E1F700C00000269A8C +:1009A0002E9A2FEF80E792E0215080409040E1F7AF +:1009B00000C00000279A2F9A2FEF80E792E0215085 +:1009C00080409040E1F700C0000025982D982FEF5F +:1009D00080E792E0215080409040E1F700C00000A5 +:1009E00026982E982FEF80E792E02150804090408B +:1009F000E1F700C0000027982F9856985E98259838 +:100A00002D9826982E9827982F98089589EA8093F4 +:100A1000800089E08093810024982C983F988AB1C7 +:100A20008F748AB96E98479A8BB1806B8BB9769A1E +:100A30000E94AE040C947B0580E2809301018091BA +:100A4000510181110EC00E94160381E08093510173 +:100A50002FEF83ED90E3215080409040E1F700C0FC +:100A6000000080E40E941C038093010181112EC0CC +:100A70000E94460380930101811128C00E94460311 +:100A800080930101811122C08FE30E94460380936D +:100A9000010181111BC00E943E0380E40E941C03DF +:100AA00080930101811112C08CE00E944603809363 +:100AB000010181110BC00E94460380930101811145 +:100AC00005C08FE30E944603809301010E943E030C +:100AD00080910101089561110BC0FC01828188237E +:100AE00021F085EE0E94601103C085EE0E9428125D +:100AF00080E090E0089508956091BD017091BE017D +:100B00008091BF019091C0010E945D1B56985E9834 +:100B100025982D9826982E9827982F98823039F06E +:100B2000833041F0813041F4259A2D9A0895269A18 +:100B30002E9A0895279A2F9A089581E0089581E0CA +:100B400008950C949F0508950F931F93CF93DF93FF +:100B50008C01FC01C081D181CE010E94D619BE0159 +:100B60000E944D06EC01B8010E94A105882309F4FA +:100B70008DC0F8018281882309F44AC080915D010B +:100B800081111FC0C431F0E5DF0709F051C00E9498 +:100B9000A30581E080935D010E94F51B90935C01A9 +:100BA00080935B01109254011092560110925501EE +:100BB000109258011092570110925A011092590147 +:100BC00065C080915B0190915C010E94011C883C92 +:100BD000910570F480915401E82FF0E0EE0FFF1FB3 +:100BE000EB5AFE4FD183C0838F5F809354014EC078 +:100BF000C43880E5D80721F0C538D04501F13AC0A6 +:100C0000F8018281882341F01092520182E01EC0D7 +:100C1000C438E0E5DE0759F580915201811106C024 +:100C200086E20E94601186E20E94281282E01CC0C7 +:100C3000C438F0E5DF0741F3C538D045D9F4F801F1 +:100C40008281882331F01092530180E20E94771252 +:100C50001DC080915301811106C087E20E9460117E +:100C600087E20E94281280E20E947E120FC0C538DF +:100C7000D04529F381E08093520180935301C8014C +:100C8000DF91CF911F910F910C949D0580E0DF9132 +:100C9000CF911F910F910895089596E0799FF001EB +:100CA000112494E5899FE00DF11D1124E60FF11D3B +:100CB000EE0FFF1FEE5EFE4F859194910895880F11 +:100CC000991FFC01E657F040859194910895880F93 +:100CD000991FFC01E65FFE4F8591949108950F9353 +:100CE0001F93CF93DF93EC01811520E3920750F51A +:100CF000C11580E2D80708F0C3C0CB3BD10590F402 +:100D0000C83AD10508F06AC0C53AD10508F05BC001 +:100D1000C430D10508F0D0C1219709F0CAC101E063 +:100D200010E00AC2CF3FD10511F008F0C5C1C03FA5 +:100D3000D10508F0A2C0CE01805E9109089708F4A1 +:100D4000BBC1B7C1C13090E5D90709F4A2C020F5F5 +:100D5000C0318FE4D80770F4C11590E4D90708F0CA +:100D600094C0C11521E3D20708F0A3C1DD278E018D +:100D7000106CE2C1C115D04509F09BC10E94DD1481 +:100D80008FEF94E32CE0815090402040E1F700C0C9 +:100D900000000E94501CD0C1C11597E5D90758F436 +:100DA000C03121E5D20708F01CC1C43180E5D80765 +:100DB00008F475C07EC1CE0190578115904108F0AE +:100DC00078C1DF7073C1C53AD10509F477C1C63A5D +:100DD000D10509F076C102E810E4AEC1C83AD105E8 +:100DE00009F472C1C93AD10509F471C1CA3AD105F1 +:100DF00009F470C1CB3AD10509F46FC1CC3AD105E1 +:100E000009F46EC1CD3AD10509F46DC1C03BD105DD +:100E100009F46CC1CE3AD10509F46BC1CF3AD105C2 +:100E200009F46AC1C13BD10509F469C1C23BD105CE +:100E300009F468C1C33BD10509F467C1C43BD105BE +:100E400009F466C1C53BD10509F465C1C63BD105AE +:100E500009F464C1C73BD10509F463C1C83BD1059E +:100E600009F462C1C93BD10509F461C1CA3BD1058E +:100E700009F460C100E014E45FC18E0110655CC13B +:100E8000CE019F700E94670658C1DF708E01106A04 +:100E900053C18091DA0181608093DA014DC10E94D3 +:100EA000F51D811102C00E94DB1D0E94121E90E000 +:100EB0009093FB018093FA01C23080E5D80721F4BA +:100EC0008091FA01816086C0C43090E5D90721F491 +:100ED0008091FA0182607EC0C63020E5D20721F4FD +:100EE0008091FA01846076C0C83080E5D80719F493 +:100EF0008091FA0127C0CA3090E5D90721F480918A +:100F0000FA01806167C0CC3020E5D20721F48091DE +:100F1000FA0180625FC0CE3080E5D80721F480916D +:100F2000FA01806457C0C03190E5D90721F480915F +:100F3000FA0180684FC0C23120E5D20729F48091C0 +:100F4000FA018460886046C0C33080E5D80721F488 +:100F50008091FA018E7F3EC0C53090E5D90721F41B +:100F60008091FA018D7F36C0C73020E5D20721F489 +:100F70008091FA018B7F2EC0C93080E5D80719F423 +:100F80008091FA0126C0CB3090E5D90721F48091F9 +:100F9000FA018F7E1FC0CD3020E5D20721F4809169 +:100FA000FA018F7D17C0CF3080E5D80721F48091FA +:100FB000FA018F7B0FC0C13190E5D90721F48091F0 +:100FC000FA018F7707C0C331D04531F48091FA011F +:100FD0008B7F877F8093FA018091FA010E94161E11 +:100FE000ABC08D2F99278F70992781309105D9F447 +:100FF0009E012370332702C0880F991F2A95E2F7BC +:101000009C688E0144E0000F111F4A95E1F700270C +:101010001370802B912B53E0CC0FDD1F5A95E1F715 +:10102000C076DD272FC08230910531F4DC2FCC272C +:101030008E01016F106A80C08330910569F4CE0182 +:101040008370992701E010E002C0000F111F8A95FC +:10105000E2F7C8019C680FC084309105B9F4CE0155 +:101060008370992701E010E002C0000F111F8A95DC +:10107000E2F7C8019A6823E0CC0FDD1F2A95E1F75B +:10108000C07ED7708C010C2B1D2B56C0853091056E +:1010900031F4DC2FCC278E01046F106A4DC0069707 +:1010A00009F04AC0CF71DD27DC2FCC278E011062FA +:1010B00043C000E010E040C08E013EC001E810E4F3 +:1010C0003BC003E810E438C002EE14E435C009EE7A +:1010D00014E432C00AEE14E42FC005EB14E42CC073 +:1010E00006EB14E429C007EB14E426C00CEC14E46E +:1010F00023C00DEC14E420C003E815E41DC00AE889 +:1011000015E41AC002E915E417C004E915E414C097 +:1011100001E216E411C003E216E40EC004E216E494 +:101120000BC005E216E408C006E216E405C007E2BB +:1011300016E402C00AE216E4C801DF91CF911F91C4 +:101140000F91089596E0799FF001112494E5899F0D +:10115000E00DF11D1124E60FF11DEE0FFF1FEE5EF5 +:10116000FE4F85919491803E9105E0F4803C91057D +:1011700058F58133910509F46FC048F4893291051F +:1011800009F463C08A32910509F46DC072C08933D5 +:101190009105E9F082389105D1F08533910509F484 +:1011A0004DC067C0833E910581F138F4803E9105C2 +:1011B000B9F0823E9105D9F05CC0863E910561F19F +:1011C000873E9105A1F155C00E945F0608952091C8 +:1011D000FA0120FD02C021FF4CC080EE90E049C022 +:1011E0008091FA0180FFF9CF89E390E042C08091BD +:1011F000FA0182FF0EC08091FA0184FF03C080E0F3 +:1012000090E037C083EE90E034C08091FA0182FF15 +:10121000F2CF82EE90E02DC08091FA0183FF0BC0E7 +:101220008091FA0184FDEBCF87EE90E022C080919F +:10123000FA0183FFF5CF86EE90E01BC08091FA01A2 +:1012400085FF07C089E290E014C08091FA0185FF14 +:10125000F9CF85E390E00DC08091FA0186FF07C0C9 +:101260008AE290E006C08091FA0186FFF9CF81E31F +:1012700090E00E946F06089508950C943C098091B7 +:101280006E010895CF93DF9300D01F92CDB7DEB7E4 +:101290009C018091F101843019F593E099833B839F +:1012A0002A839093E9008FEF9091E800815095FD9B +:1012B00006C095ED9A95F1F700008111F5CF809168 +:1012C000E80085FF0DC040E050E063E070E0CE0133 +:1012D00001960E94AC0B8091E8008E778093E80025 +:1012E0000F900F900F90DF91CF910895CF93DF93E0 +:1012F00000D01F92CDB7DEB72091F101243021F547 +:1013000022E029839B838A8383E08093E9008FEF27 +:101310009091E800815095FD06C095ED9A95F1F702 +:1013200000008111F5CF8091E80085FF0DC040E0FD +:1013300050E063E070E0CE0101960E94AC0B80911A +:10134000E8008E778093E8000F900F900F90DF9168 +:10135000CF9108952091F1012430F1F422E02093FF +:10136000E9002FEF3091E800215035FD06C035ED42 +:101370003A95F1F700002111F5CF2091E80025FF03 +:101380000BC040E050E065E070E00E94AC0B809143 +:10139000E8008E778093E8000895CF93DF93EC0107 +:1013A0009091F101943009F046C080910C0188239E +:1013B000D9F080910D018823B9F09093E9008FEF67 +:1013C0009091E800815095FD06C095E19A95F1F75E +:1013D00000008111F5CF8091E80085FF2CC040E02E +:1013E00050E060E170E017C081E08093E9008FEF8A +:1013F0009091E800815095FD06C095ED9A95F1F722 +:1014000000008111F5CF8091E80085FF14C040E015 +:1014100050E068E070E0CE010E94AC0B8091E800E3 +:101420008E778093E80080E1FE01AEE5B1E00190A7 +:101430000D928A95E1F7DF91CF9108958091F001A7 +:10144000811109C00E94410D0E949E0D8091E20011 +:1014500084608093E20008951092F0010895089549 +:101460000C9485220E94E61B0E948B220E9444104D +:101470000C943D0942E061EC81E00E94BB0C42E02B +:1014800061EC82E00E94BB0C42E061EC83E00E94D0 +:10149000BB0C42E161EC84E00C94BB0C8091F30145 +:1014A000833009F455C030F4813071F0823009F492 +:1014B0008EC008958A3009F47AC08B3009F460C078 +:1014C000893009F09CC020C08091F201813A09F076 +:1014D00096C08091E800877F8093E8008091F601B4 +:1014E0009091F701892B21F460E18EE591E003C032 +:1014F00060E080E090E070E00E94F70B8091E800EF +:101500008B778093E80008958091F201813209F091 +:1015100076C08091F6019091F701009719F003973A +:1015200009F06DC08091E800877F8093E80080918A +:10153000E80082FD05C08091F1018111F8CF5FC004 +:101540008091F10080936E018091E8008B7753C009 +:101550008091F201813A09F052C08091F601909198 +:10156000F701892B09F04BC08091E800877F8093B9 +:10157000E8008091E80080FFFCCF80910C0136C02C +:101580008091F2018132D9F58091F6019091F701B5 +:10159000892BA9F58091E800877F8093E8000E945D +:1015A000F00C8091F40180930C010C94DD14809177 +:1015B000F201813221F58091E800877F8093E80075 +:1015C0000E94F00C8091F50180936F010895809145 +:1015D000F201813AA1F48091E800877F8093E800CE +:1015E0008091E80080FFFCCF80916F018093F10033 +:1015F0008091E8008E778093E8000C94F00C0895B9 +:1016000084B7877F84BF88E10FB6F8948093600029 +:10161000109260000FBE90E080E80FB6F8948093BF +:101620006100909361000FBE0E9493100E94410DD3 +:101630000E949E0D8091E20084608093E200789485 +:101640000E9424100E94951082E091E00E943F10B9 +:101650000E9473228091F101853069F40E94AD1BD4 +:101660008091EF018823B1F30E94D81B882391F366 +:101670000E94960BEFCF0E949B10ECCF292F3327AF +:1016800023303105C9F064F42130310581F0223076 +:10169000310509F043C08DE690E026EE33E042C00C +:1016A00021323105F1F02232310541F137C082E1BA +:1016B00090E023E534E036C099278130910541F070 +:1016C0008230910541F0892B49F5E2EEF3E005C047 +:1016D000EAECF3E002C0E2EBF3E0849190E09F01DA +:1016E00021C06430D8F4E62FF0E0EE0FFF1FEE5D6E +:1016F000FE4F2081318189E090E014C0643070F4A5 +:1017000070E0FB01EE0FFF1FE65EFE4F208131818E +:10171000FB01EA5EFE4F808190E004C080E090E033 +:1017200020E030E0FA0131832083089580E189BD13 +:1017300082E189BD09B400FEFDCF8091D8008F7D84 +:101740008093D8008091E00082608093E0008091D7 +:10175000E00081FDFCCF0895CF92DF92EF92FF92DF +:101760000F931F93CF93DF93EC018B016A010E94CB +:101770000F0D811133C0C114D10439F0F6018081FD +:101780009181081B190BC80FD91FE12CF12C0115F1 +:10179000110519F18091E80085FD16C08091E800DF +:1017A0008E778093E800C114D10449F0F60180815E +:1017B0009181E80EF91EF182E08285E00FC00E945F +:1017C0000F0D882321F30AC089918093F100015005 +:1017D0001109FFEFEF1AFF0ADACF80E0DF91CF9116 +:1017E0001F910F91FF90EF90DF90CF90089520917F +:1017F000F8013091F9012617370748F06115710596 +:1018000039F42091E8002E772093E80001C0B90157 +:1018100040E061157105A9F12091F101222309F43D +:1018200043C0253009F442C02091E80023FD40C0A8 +:101830002091E80022FD32C02091E80020FFE9CF8E +:101840004091F3002091F20030E0342BFC01CF01F5 +:101850006115710559F02830310540F4819180936C +:10186000F100615071092F5F3F4FF1CF41E0283007 +:10187000310509F040E02091E8002E772093E80040 +:10188000C8CF4111C9CF0AC08091F101882361F00E +:10189000853061F08091E80083FD0AC08091E80006 +:1018A00082FFF2CF80E0089582E0089583E00895FA +:1018B00081E008952091F8013091F901261737074A +:1018C00048F06115710539F42091E8002E772093D6 +:1018D000E80001C0B901FC0120E06115710591F13A +:1018E0008091F101882309F440C0853009F43FC09C +:1018F0008091E80083FD3DC08091E80082FD2FC00B +:101900008091E80080FFE9CF2091F3008091F20000 +:1019100090E0922B6115710559F08830910540F4E3 +:1019200024912093F1003196615071090196F2CF14 +:1019300021E0089709F020E08091E8008E778093FD +:10194000E800CBCF2111CCCF0AC08091F1018823D0 +:1019500061F0853061F08091E80083FD0AC08091DC +:10196000E80082FFF2CF80E0089582E0089583E0EE +:10197000089581E00895982F973058F59093E900E5 +:10198000981739F07091EC002091ED005091F00023 +:1019900003C0242F762F50E021FF19C03091EB00B7 +:1019A0003E7F3093EB003091ED003D7F3093ED00B2 +:1019B0003091EB0031603093EB007093EC0020939A +:1019C000ED005093F0002091EE0027FF07C09F5FCD +:1019D000D3CF8F708093E90081E0089580E008956F +:1019E0008091F20187FF11C08091E80082FD05C05F +:1019F0008091F1018111F8CF11C08091E8008B77BF +:101A00000BC08091F101882349F08091E80080FFAC +:101A1000F8CF8091E8008E778093E80008952091B8 +:101A2000E4003091E50095E64091EC00842F817050 +:101A300040FF22C08091E80080FD1CC08091F10130 +:101A4000882391F0853091F08091EB0085FD10C0E6 +:101A50004091E4005091E5004217530729F39A01A1 +:101A6000915011F784E0089582E0089583E008958D +:101A700081E0089580E008954091E80042FFDECFC4 +:101A800008950E94AF0D0E94B70DE0EEF0E0808156 +:101A900081608083E8EDF0E080818F77808319BCDE +:101AA000A7EDB0E08C918E7F8C9380818F7E8083B8 +:101AB0001092F00108950F931F93CF93DF930E942C +:101AC000AF0D0E94B70DC8EDD0E088818F77888375 +:101AD00088818068888388818F7D888319BC109273 +:101AE000F1011092ED011092EF011092EE0100EE63 +:101AF00010E0F80180818B7F8083888181608883FA +:101B000042E060E080E00E94BB0CE1EEF0E080810A +:101B10008E7F8083E2EEF0E080818160808380812F +:101B200088608083F80180818E7F808388818061D6 +:101B30008883DF91CF911F910F910895E8EDF0E038 +:101B400080818F7E8083E7EDF0E0808181608083FB +:101B500084E082BF81E08093F0010C945B0DE8ED9E +:101B6000F0E080818E7F80831092E20008951092D1 +:101B7000DA001092E10008951F920F920FB60F92B3 +:101B800011242F933F934F935F936F937F938F9382 +:101B90009F93AF93BF93EF93FF938091E10082FFF8 +:101BA0000BC08091E20082FF07C08091E1008B7F33 +:101BB0008093E1000E9423108091DA0080FF1FC013 +:101BC0008091D80080FF1BC08091DA008E7F8093C7 +:101BD000DA008091D90080FF0DC080E189BD82E1EB +:101BE00089BD09B400FEFDCF81E08093F1010E9420 +:101BF0001E0A05C019BC1092F1010E942C0A8091A6 +:101C0000E10080FF19C08091E20080FF15C0809143 +:101C1000E2008E7F8093E2008091E20080618093F9 +:101C2000E2008091D80080628093D80019BC85E0E2 +:101C30008093F1010E94300A8091E10084FF30C05E +:101C40008091E20084FF2CC080E189BD82E189BDE2 +:101C500009B400FEFDCF8091D8008F7D8093D8001D +:101C60008091E1008F7E8093E1008091E2008F7E81 +:101C70008093E2008091E20081608093E200809195 +:101C8000ED01882311F084E007C08091E30087FD17 +:101C900002C081E001C083E08093F1010E94320A1A +:101CA0008091E10083FF29C08091E20083FF25C07D +:101CB0008091E100877F8093E10082E08093F101D1 +:101CC0001092ED018091E1008E7F8093E100809180 +:101CD000E2008E7F8093E2008091E2008061809339 +:101CE000E20042E060E080E00E94BB0C8091F000E6 +:101CF00088608093F0000E942F0AFF91EF91BF91BE +:101D0000AF919F918F917F916F915F914F913F9193 +:101D10002F910F900FBE0F901F9018951F920F924A +:101D20000FB60F9211242F933F934F935F936F93AE +:101D30007F938F939F93AF93BF93CF93DF93EF9353 +:101D4000FF93C091E900CF708091EC00D82FD17043 +:101D500080FDD0E81092E9008091F000877F8093A9 +:101D6000F00078940E94D20E1092E9008091F00069 +:101D700088608093F000CD2BCF70C093E900FF9175 +:101D8000EF91DF91CF91BF91AF919F918F917F9113 +:101D90006F915F914F913F912F910F900FBE0F90D8 +:101DA0001F9018951F93CF93DF93CDB7DEB7AA97F7 +:101DB0000FB6F894DEBF0FBECDBFE2EFF1E088E0D2 +:101DC0008E0F9091F10091938E13FBCF0E944E0ADB +:101DD0008091E80083FF1FC18091F2019091F3018F +:101DE000492F50E04A30510508F015C1FA01EA5A6E +:101DF000FF4F0C940D24803881F0823809F00BC11C +:101E00008091F6018F708093E9008091EB0085FB53 +:101E1000882780F91092E90006C08091EE01909128 +:101E2000EF01911182609091E800977F9093E80014 +:101E30008093F1001092F100C8C0282F2D7F09F087 +:101E4000EAC0882319F0823061F0E5C08091F40186 +:101E5000813009F0E0C0933009F080E08093EF0119 +:101E60002BC08091F401811127C08091F6018F7001 +:101E700009F4D1C08093E9002091EB0020FF1CC041 +:101E8000933021F48091EB00806214C09091EB00BC +:101E900090619093EB0021E030E0A90102C0440F73 +:101EA000551F8A95E2F74093EA001092EA0080916C +:101EB000EB0088608093EB001092E9008091E800CD +:101EC000877F86C08111A7C01091F4011F77809190 +:101ED000E3008078812B8093E3008091E800877F86 +:101EE0008093E8000E94F00C8091E80080FFFCCF16 +:101EF0008091E30080688093E300111102C082E0CA +:101F000001C083E08093F10186C08058823008F0E0 +:101F100082C08091F4019091F5018C3D53E09507CA +:101F200079F583E08A838AE289834FB7F894DE01EA +:101F3000139620E03EE051E2E32FF0E0509357008B +:101F4000E49120FF03C0E295EF703F5FEF708E2FAA +:101F500090E0EA3010F0C79601C0C0968D939D9333 +:101F60002F5F243149F74FBF8091E800877F80932E +:101F7000E8006AE270E0CE0101960E94F70B14C0FF +:101F8000AE014F5F5F4F6091F6010E943E0BBC01B6 +:101F9000009709F440C09091E800977F9093E80083 +:101FA00089819A810E945A0C8091E8008B778093F6 +:101FB000E80031C0803879F58091E800877F809310 +:101FC000E8008091ED018093F1008091E8008E7728 +:101FD0008093E8000E94F00C1EC081111CC09091FB +:101FE000F4019230C0F48091E800877F8093E8008C +:101FF0009093ED010E94F00C8091ED01811106C0DB +:102000008091E30087FD02C081E001C084E08093FD +:10201000F1010E943A0A8091E80083FF0AC0809192 +:10202000E800877F8093E8008091EB0080628093D6 +:10203000EB00AA960FB6F894DEBF0FBECDBFDF91BE +:10204000CF911F9108950895CF938091F101882336 +:10205000A1F0C091E900CF709091EC00892F8170C0 +:1020600090FD80E8C82B1092E9008091E80083FD84 +:102070000E94D20ECF70C093E900CF910895909343 +:102080007501809374010895E0917401F0917501D8 +:10209000309721F00190F081E02D099480E00895BF +:1020A000E0917401F0917501309721F00280F38185 +:1020B000E02D09940895E0917401F0917501309735 +:1020C00021F00480F581E02D09940895209172019A +:1020D000309173018217930771F09093730180938D +:1020E0007201E0917401F0917501309721F0068042 +:1020F000F781E02D099408952091700130917101CC +:102100008217930771F09093710180937001E091B1 +:102110007401F0917501309721F00084F185E02D74 +:102120000994089508950C9492100E94EC1B0E944B +:1021300089030C94AE1C9F92AF92BF92CF92DF9214 +:10214000EF92FF920F931F93CF93DF9300D000D0B5 +:1021500000D0CDB7DEB70E94A1030DE010E0AA24A5 +:10216000A394B12C902E802F0E948F04980129589F +:102170003E4F6901F901F080F826A1F401501109E0 +:1021800088F78FEF89838A831B820E94F51B816009 +:10219000782F9D838C8349815A816B818D810E9428 +:1021A00032112FC09091DA0191FF04C08E830E94FA +:1021B00095048E8125E030E0A501022E01C0440F78 +:1021C0000A94EAF7E42E4F21C1F029839A828E21E6 +:1021D00091E009F490E09B830E94F51B8160782FC9 +:1021E0009D838C8349815A816B818D810E9432113C +:1021F000F6018081E826E08204C021503109E0F632 +:10220000BDCF0E94951F109176010E9444101817AF +:10221000B9F00E9444108093760126960FB6F89488 +:10222000DEBF0FBECDBFDF91CF911F910F91FF9009 +:10223000EF90DF90CF90BF90AF909F900C943D09AE +:1022400026960FB6F894DEBF0FBECDBFDF91CF91BB +:102250001F910F91FF90EF90DF90CF90BF90AF90C4 +:102260009F900895CF93DF93CDB7DEB72B970FB62E +:10227000F894DEBF0FBECDBF4F83588769877A873A +:102280008B87DE01119686E0FD0111928A95E9F7B0 +:1022900085E0FE01379601900D928A95E1F749811C +:1022A0005A816B817C818D819E810E947B172B9648 +:1022B0000FB6F894DEBF0FBECDBFDF91CF9108956A +:1022C000CF93882309F4C2C0C82F823859F40E94E2 +:1022D000441081FDBBC089E30E94551A0E94221B55 +:1022E00089E30CC0833879F40E94441080FDAEC0AD +:1022F00083E50E94551A0E94221B83E50E94971ACB +:10230000CF910C94221B843859F40E94441082FD12 +:102310009DC087E40E94551A0E94221B87E4EECFDD +:102320008CEF8C0F813A48F48C2F0E94D8218111B8 +:102330008DC08C2F0E94551AE3CF80E28C0F88301D +:1023400048F4C77081E001C0880FCA95EAF70E947F +:10235000DB1AD6CF8BE58C0F833078F4C53A29F0A1 +:10236000C63A31F083E890E005C081E890E002C011 +:1023700082E890E0CF910C94661088E58C0F833151 +:1023800008F064C0C83A39F1C93A41F1CA3A49F192 +:10239000CB3A51F1CC3A59F1CD3A61F1C03B69F1F8 +:1023A000CE3A71F1CF3A79F1C13B81F1C23B89F16B +:1023B000C33B91F1C43B99F1C53BA1F1C63BA9F1E7 +:1023C000C73BB1F1C83BB9F1C93BC1F1CA3BC9F147 +:1023D00080E090E038C082EE90E035C089EE90E079 +:1023E00032C08AEE90E02FC085EB90E02CC086EBE7 +:1023F00090E029C087EB90E026C08CEC90E023C0F1 +:102400008DEC90E020C083E891E01DC08AE891E067 +:102410001AC082E991E017C084E991E014C081E21A +:1024200092E011C083E292E00EC084E292E00BC021 +:1024300085E292E008C086E292E005C087E292E081 +:1024400002C08AE292E0CF910C947C10CF91089563 +:10245000882309F44BC0823859F40E94441081FF4C +:1024600045C089E30E94551A0E94221B89E30CC0D3 +:10247000833871F40E94441080FF38C083E50E94C5 +:10248000551A0E94221B83E50E94971A0C94221B66 +:10249000843859F40E94441082FF28C087E40E94C7 +:1024A000551A0E94221B87E4EFCF9CEF980F913AB8 +:1024B00058F390E2980F983050F4877091E001C083 +:1024C000990F8A95EAF7892F0E94E11ADFCF9BE5E1 +:1024D000980F933020F480E090E00C946610885AB6 +:1024E000833120F480E090E00C947C1008958823E0 +:1024F00021F00E94DB1A0C94221B0895882321F0FE +:102500000E94E11A0C94221B08957F928F929F9251 +:10251000AF92BF92CF92DF92EF92FF920F931F93F1 +:10252000CF93DF931F92CDB7DEB77C01C62E772EF7 +:10253000FC01058102950F70128111110E94F81A99 +:102540000E944E1A882379F0112369F080E28C0DE5 +:10255000883048F082E00E94371A0E944E1A91E0BB +:10256000D82ED92601C0D12CE72DE295EF70F0E0EE +:10257000E05AFF4F0C940D24872D807F072D0F709C +:10258000882311F00295007F112389F0002309F4BC +:1025900090C180E28C0D883020F4802F0E94DB1ADD +:1025A00003C0802F0E94EB1A0E94221B82C18C2D37 +:1025B0000E942812002309F495C180E28C0D883016 +:1025C00020F4802F0E94E11A03C0802F0E94F11A8C +:1025D0000E94221B87C1972D907F872D8F7090328C +:1025E00011F08295807FCC2021F0F1E0CF16B1F080 +:1025F0001EC0112349F0002309F414C1013009F071 +:1026000011C10E940B1B6EC1002319F0013009F4A7 +:1026100069C189830E940E1B89810AC1112321F09F +:10262000023008F05FC1FEC001115CC101C111237D +:1026300021F0002309F4F6C03CC1002309F4F8C0DE +:102640003EC1872D86958695837090E0009719F09E +:10265000019761F047C1112321F08C2D972D9370C4 +:1026600002C080E090E00E9466103CC1112321F07E +:102670008C2D972D937002C080E090E00E947C101A +:1026800031C18C2D112319F00E949D1E02C00E94A1 +:10269000051F0E948A1F26C1872D837009F052C032 +:1026A000111120C18C2D829586958770880F880F17 +:1026B0009C2D9F70892E912CA12CB12C082E04C02A +:1026C000880C991CAA1CBB1C0A94D2F7C4FE14C027 +:1026D0000FE010E020E030E0B901A80104C0440F91 +:1026E000551F661F771F8A95D2F7CB01BA016095F7 +:1026F00070958095909503C060E070E0CB01272D28 +:1027000026952695237030E02230310569F023307C +:10271000310589F0682979298A299B2921303105D9 +:1027200071F00E94C318DEC0682979298A299B2983 +:102730000E94DF18D7C00E94C318C501B4010E94CF +:10274000A718D0C0112319F0872D817001C086957C +:10275000882309F4C7C08C2D829586958770880FD1 +:10276000880F9C2D9F70892E912CA12CB12C082EA6 +:1027700004C0880C991CAA1CBB1C0A94D2F7C4FE86 +:1027800014C00FE010E020E030E0B901A80104C05F +:10279000440F551F661F771F8A95D2F7CB01BA01E8 +:1027A000609570958095909503C060E070E0CB01D6 +:1027B000272D269526952370422F50E04230510553 +:1027C00069F04330510589F0682979298A299B29C4 +:1027D0004130510571F00E949D1984C06829792902 +:1027E0008A299B290E94B9197DC00E949D19C501A3 +:1027F000B4010E94811976C08C2D90E0FC01E05E4E +:10280000F109E531F10508F050C0E059FF4F0C9493 +:102810000D240C2D0F70872D8F71112331F00E9424 +:102820001A19802F0E9477125DC00E943B19802FD9 +:102830000E947E1257C0112339F0011153C0872D19 +:102840008F710E9460194EC0023008F04BC0F7CF64 +:10285000112339F0872D8F710E941A1943C011235B +:10286000C9F3872D8F710E943B193CC0112329F0B9 +:10287000872D8F710E94051935C00E94FB1832C048 +:10288000112351F0172D1F71812F0E941A1963E037 +:10289000812F0E942E1A26C081E00E94371A023032 +:1028A00008F182E00E94371A1DC0112331F0002385 +:1028B00089F28C2D0E94601115C0002391F28C2D9D +:1028C0000E9428120FC0472D4F706C2DC7010E9427 +:1028D0006B050E941F1806C0472D4F706C2DC70155 +:1028E0000E944C06DD20F9F00E942A1A80FD1BC0D0 +:1028F000F70112820E94241A0E941A19C7010E942D +:10290000A2140E94241A0F90DF91CF911F910F9172 +:10291000FF90EF90DF90CF90BF90AF909F908F90FF +:102920007F900C943B190F90DF91CF911F910F91E5 +:10293000FF90EF90DF90CF90BF90AF909F908F90DF +:102940007F9008950F931F93CF93DF93EC018881BD +:1029500099812B813C81232BB9F09F3F11F48F3F4C +:1029600099F0CE010E94A405882371F068817981D5 +:102970008A810E94201A8C010E94D5190E949C18FD +:10298000B801CE010E948512DF91CF911F910F9166 +:1029900008950E94F81A0E94081B0E94CD1A0E94F6 +:1029A000221B0E943B200E948A1F80E090E00E9430 +:1029B000661080E090E00C947C100E94E81A0C9461 +:1029C000C9140E94151A292F22952F7030E02C303F +:1029D00031054CF42A3031056CF422503109223093 +:1029E0003105A8F407C02C30310569F02F303105CE +:1029F00051F00DC0803F69F018F4803E40F409C0EA +:102A0000843F29F406C093FB882780F9089580E06D +:102A1000089581E00895CF93DF9300D000D01F92F6 +:102A2000CDB7DEB70F900F900F900F900F90DF9102 +:102A3000CF910895CF93DF9300D000D000D0CDB7D1 +:102A4000DEB726960FB6F894DEBF0FBECDBFDF917E +:102A5000CF9108951F93CF93DF93C091850116E026 +:102A600080918601C81799F0D0E01C9FF0011D9F4E +:102A7000F00D1124E957FE4F40815181628173812D +:102A8000848195810E941A152196C770E9CFDF9144 +:102A9000CF911F9108954091B7015091B801609175 +:102AA000B9017091BA018091BB019091BC010C9465 +:102AB0001A158091BC0182958F7009F054C08091E5 +:102AC000B901882309F44FC080918501A091860146 +:102AD0006091B7017091B8014091BA015091BB016A +:102AE000B6E08A1709F43FC090E041155105C1F1E5 +:102AF0007F3F11F46F3FA1F1B89FF001B99FF00D36 +:102B00001124E957FE4F218172132AC020816213DC +:102B100027C02281211124C0238134812417350745 +:102B200010F421503109241B350B283C3105C0F429 +:102B30002091BC012F7020612093BC0126E0289FCA +:102B4000F001299FF00D1124E457FE4F80818F7012 +:102B50008061808387EB91E00E94A2140C942A1577 +:102B600001968770BECF0895CF92DF92EF92FF92C9 +:102B70000F931F93CF93DF93CDB7DEB762970FB656 +:102B8000F894DEBF0FBECDBF8C0185E0F801DE01F9 +:102B90001D9601900D928A95E1F7D8014C911196FE +:102BA0005C91119712966C9112971396CD90DC90D0 +:102BB00014973091B7017091B8018091BA0190914A +:102BC000BB01009709F46BC17F3F19F43F3F09F443 +:102BD00066C1E090B901EE2009F4C0C02091BC01AB +:102BE000C816D90628F0F601E81BF90BCF0104C07E +:102BF000809590958C0D9D1DFF24F394883C910544 +:102C000078F0F12C207F09F0C6C07C2DD98AC88AC3 +:102C100089890E940B1587EB91E00E94A214B1C034 +:102C2000822F807F09F046C0751314C0341312C080 +:102C3000611110C02F7020612093BC010E944B15C0 +:102C400087EB91E00E94A2148091BC01D8011596F7 +:102C50008C932EC0CD2819F15F3F11F44F3FF9F04E +:102C6000F62E61111CC0809185012091860136E00D +:102C7000821709F45AC090E0389FF001399FF00D97 +:102C80001124E957FE4F7181571306C07081471315 +:102C900003C07281711103C001968770E9CFF62ECF +:102CA000662309F418C18091BC0181608093BC0146 +:102CB000F12C11C1751308C0341306C0611104C092 +:102CC0008091BC01D801C3C04D875E878D859E85EC +:102CD0006A8B0E94E1146A898823E1F16623D1F1AD +:102CE0002091BC01822F82958F7090E0029774F042 +:102CF0008091B7019091B80198878F831986DB8600 +:102D0000CA862C87CE0107960E94A21486E0F8019D +:102D1000A7EBB1E001900D928A95E1F70E94591559 +:102D20000E944B15FF24F394D6C04D875E878D8596 +:102D30009E850E94151A292F22952F7030E022308F +:102D400031050CF0BCC09F7009F0B6C0805E8830C1 +:102D500008F4C1C0C8010E94A214E4CFC816D90665 +:102D600008F453C0F601E81BF90BCF01883C91052C +:102D700008F450C0F12C7C2DD98AC88A89890E9418 +:102D80000B15E7EBF1E086E0DF011D928A95E9F78C +:102D90000E944B15A0C0751314C0341312C06111EA +:102DA00010C08091BC01F8018583C8010E94A21463 +:102DB00086E0E7EBF1E0DF011D928A95E9F7FE2C52 +:102DC0008AC04D875E878D859E856A8B0E94E1143F +:102DD0006A89882309F4BECF662309F4BBCF20910A +:102DE000BC01822F82958F7090E002970CF48ECFF9 +:102DF0008091B7019091B8019A8389831B82DD820B +:102E0000CC822E83CE0101967FCF809590958C0D3C +:102E10009D1DACCFF62E662309F49CCF75132EC0F2 +:102E200034132CC02091BC0120FD1FC0822F82953D +:102E30008F70D9F0D80115962C9315978F3049F0E3 +:102E40008F5F982F9295907F822F8F70892B159688 +:102E50008C93C8010E94A21486E0F801A7EBB1E0B0 +:102E600001900D928A95E1F793CF86E0F801A7EBE8 +:102E7000B1E001900D928A95E1F72DC04D875E87F4 +:102E80008D859E850E94E114811140CF8091BC0107 +:102E900081608093BC01C8010E94A2141CC06623FB +:102EA00009F458CF4D875E878D859E850E94E11479 +:102EB000882309F44FCF2ACF811148CF0CC024308A +:102EC00031050CF047CF9F7009F440CFF801958190 +:102ED000907F09F03BCF8F2D62960FB6F894DEBF3E +:102EE0000FBECDBFDF91CF911F910F91FF90EF905B +:102EF000DF90CF9008951F93CF93DF93CDB7DEB7C8 +:102F00002C970FB6F894DEBF0FBECDBF4F83588706 +:102F100069877A878B879C87CE0107960E94B415B4 +:102F2000882369F08F8198852A853B85232BF1F1D1 +:102F30009F3F09F063C08F3F09F060C037C086E053 +:102F4000FE013796DE01119601900D928A95E1F708 +:102F50006F817885EA85FB85309741F17F3F11F4D9 +:102F60006F3F21F12091860130E0C9010196877001 +:102F700099274091850150E08417950709F447C0CF +:102F800069837A83FD83EC8396E0929FD001939FBF +:102F9000B00D1124A957BE4FFE01319601900D923C +:102FA0009A95E1F7809386010E942A1516E0809198 +:102FB0008501909186018917C1F1189FC0011124E4 +:102FC00089579E4F0E94B415882379F1E0918501BD +:102FD0001E9FF0011124E957FE4F4081518162810B +:102FE0007381848195810E941A158091850190E0FA +:102FF00001968770992780938501D9CF4F81588595 +:1030000069857A858B859C850E941A15CFCF0E9491 +:10301000DD141092860110928501E7EBF1E086E065 +:10302000DF011D928A95E9F7C1CF2C960FB6F8946F +:10303000DEBF0FBECDBFDF91CF911F910895EF92FC +:10304000FF920F931F93CF93DF938C01009709F4A6 +:103050006CC0F12CEE24E394E8012196F8018491F0 +:10306000843740F4843008F051C0813081F08230E0 +:1030700019F15BC0853709F444C0A8F19CE7980FAB +:10308000903708F052C08F770E94281241C00E5F1F +:103090001F4FFE01C49180E28C0F883048F4C77046 +:1030A0008E2D01C0880FCA95EAF70E94FB1A14C042 +:1030B0008C2F0E9460112DC00E5F1F4FFE01C49126 +:1030C00080E28C0F883058F4C7708E2D01C0880FB5 +:1030D000CA95EAF70E94011B0E94221B1AC08C2F7E +:1030E0000E94281216C00E5F1F4FFE01C491CC2310 +:1030F00081F08FE99FE00197F1F700C00000C15017 +:10310000F6CF0E5F1F4FFE01F49003C00E946011C6 +:103110008E018F2D882309F49FCFEFE9FFE03197CF +:10312000F1F700C000008150F5CFDF91CF911F91E2 +:103130000F91FF90EF90089508956093C1017093EF +:10314000C2018093C3019093C4010C94C9140F93DE +:103150001F930091C1011091C2012091C3013091D0 +:10316000C401DC01CB01802B912BA22BB32B8093CC +:10317000C1019093C201A093C301B093C4011F91F8 +:103180000F910C94C9140F931F930091C1011091DA +:10319000C2012091C3013091C401DC01CB01802325 +:1031A0009123A223B3238093C1019093C201A093E2 +:1031B000C301B093C4011F910F910C94C9140F93D4 +:1031C0001F930091C1011091C2012091C301309160 +:1031D000C401DC01CB0180279127A227B32780936C +:1031E000C1019093C201A093C301B093C4011F9188 +:1031F0000F910C94C9141092BD011092BE0110924F +:10320000BF011092C0010C94C91441E050E060E08D +:1032100070E004C0440F551F661F771F8A95D2F7D0 +:103220004093BD015093BE016093BF017093C001F4 +:103230000C94C91441E050E060E070E004C0440F19 +:10324000551F661F771F8A95D2F78091BD01909117 +:10325000BE01A091BF01B091C001482B592B6A2B30 +:103260007B2B4093BD015093BE016093BF017093CF +:10327000C0010C94C91441E050E060E070E004C06B +:10328000440F551F661F771F8A95D2F740955095BA +:10329000609570958091BD019091BE01A091BF0194 +:1032A000B091C001482359236A237B234093BD0179 +:1032B0005093BE016093BF017093C0010C94C91478 +:1032C00041E050E060E070E004C0440F551F661F0D +:1032D000771F8A95D2F78091BD019091BE01A09190 +:1032E000BF01B091C001482759276A277B27409327 +:1032F000BD015093BE016093BF017093C0010C9457 +:10330000C9140F931F930091BD011091BE0120912C +:10331000BF013091C001DC01CB01802B912BA22B8E +:10332000B32B8093BD019093BE01A093BF01B093D6 +:10333000C0011F910F910C94C9140F931F9300911A +:10334000BD011091BE012091BF013091C001DC018F +:10335000CB0180239123A223B3238093BD019093BB +:10336000BE01A093BF01B093C0011F910F910C94B7 +:10337000C9140F931F930091BD011091BE012091BC +:10338000BF013091C001DC01CB0180279127A2272A +:10339000B3278093BD019093BE01A093BF01B0936A +:1033A000C0011F910F910C94C9140895CF92DF9220 +:1033B000EF92FF920F931F93CF93DF938C01C090F6 +:1033C000C101D090C201E090C301F090C40180918E +:1033D000BD019091BE01A091BF01B091C001C82A6A +:1033E000D92AEA2AFB2ACFE1D0E0D701C6010C2E68 +:1033F00004C0B695A795979587950A94D2F780FF54 +:1034000006C0B8018C2F0E94A208019721F42197D1 +:1034100060F780E001C08C2FDF91CF911F910F9159 +:10342000FF90EF90DF90CF900895CF93DF93EC0162 +:103430000E94D619BE010E94A208DF91CF91089583 +:10344000CB010E94151A08958091C5018595859537 +:10345000859508958091C5018770089598E0899FAA +:1034600090011124262B2093C5010C941A19209148 +:10347000C501809582238093C501982F977069F4C8 +:1034800030E0482F552747FD50952417350729F080 +:103490008595859585950C943B1908959091C50166 +:1034A000977081E009F480E0089590910C019923D0 +:1034B00021F090910D01911109C020910E013091E0 +:1034C0000F01F90132969FEF40E01FC0982F9695AB +:1034D000969596959F3050F5E0910E01F0910F0171 +:1034E000E90FF11D877021E030E0A90102C0440F0F +:1034F000551F8A95E2F7CA019181892B818308952E +:103500009F3F39F04F5F4E3041F051915813F8CF43 +:103510000DC05111F7CF942FF5CF9F3F39F0F9012E +:10352000E90FF11D97FDFA95828308950895909112 +:103530000C01992321F090910D01911109C0209166 +:103540000E0130910F01F9013296205F3F4F1FC0ED +:10355000982F9695969596959F30F0F4E0910E01F0 +:10356000F0910F01E90FF11D877021E030E0A90112 +:1035700002C0440F551F8A95E2F7CA0180959181D8 +:103580008923818308953196E217F30729F090810A +:103590009813F9CF1082F7CF089581E090E0E09181 +:1035A0000E01F0910F01E80FF91F10820196803192 +:1035B0009105A9F708959091D901892B8093D9019C +:1035C000089580959091D90189238093D901089518 +:1035D0001092D90108959091D801892B8093D80138 +:1035E000089580959091D80189238093D8010895FA +:1035F0001092D80108959091D701892B8093D7011B +:10360000089580959091D70189238093D7010895DB +:103610001092D70108958093C60108951092C601B3 +:10362000089580910E0190910F01FC0131969C014B +:10363000205F3F4F80E0919191118F5FE217F30778 +:10364000D1F70895E0910E01F0910F018091D90119 +:103650008083E0910E01F0910F0190818091D8015B +:10366000892B8083E0910E01F0910F019081809170 +:10367000D701892B80838091C601882361F0E09176 +:103680000E01F0910F019081892B80830E94111B04 +:1036900081111092C60180910E0190910F010C943E +:1036A000501020E0009739F0AC01415051098423BB +:1036B00095232F5FF7CF822F0895CF92DF92EF925D +:1036C000FF926C01EE24FF24C114D104E104F10443 +:1036D00021F0C701B60120E101C020E0C72ED82E9D +:1036E000E92EFF24C114D104E104F10419F0285F8C +:1036F000C701B6016B017C0154E0F694E794D794BE +:10370000C7945A95D1F7C114D104E104F10419F01A +:103710002C5FC701B6016B017C0142E0F694E7948F +:10372000D794C7944A95D1F7C114D104E104F104A8 +:1037300019F02E5FC701B601DC01CB01B695A79544 +:1037400097958795892B8A2B8B2B09F02F5F822FDA +:10375000FF90EF90DF90CF9008958091F101843039 +:1037600021F11092DB0120E488E190E00FB6F8949B +:10377000A895809360000FBE2093600080E00E94B7 +:103780003D0983B7817F846083BF83B7816083BF36 +:103790007894889583B78E7F83BF88E10FB6F894BD +:1037A00080936000109260000FBE08950895089500 +:1037B0000E94D61B0E94A1030E94D71B0E94960460 +:1037C00091E0811101C090E0892F08950E94DD14DD +:1037D0000E9444100C943D0982E084BD93E095BDA5 +:1037E0009AEF97BD80936E0008952FB7F89480915B +:1037F000DC019091DD01A091DE01B091DF012FBFCE +:103800000895CF92DF92EF92FF920F931F932FB7FD +:10381000F8944091DC015091DD016091DE017091DE +:10382000DF012FBF6A017B01EE24FF248C0120E021 +:1038300030E0C016D106E206F30610F441505109FB +:103840009A01281B390BC9011F910F91FF90EF902E +:10385000DF90CF9008951F920F920FB60F92112410 +:103860008F939F93AF93BF938091DC019091DD0183 +:10387000A091DE01B091DF010196A11DB11D8093E1 +:10388000DC019093DD01A093DE01B093DF01BF91D5 +:10389000AF919F918F910F900FBE0F901F90189531 +:1038A0000E94410DF8942FEF87EA91E62150804065 +:1038B0009040E1F700C0000087E090EBDC018093CE +:1038C000FB019093FC01A093FD01B093FE019CE0ED +:1038D00088E10FB6F894A895809360000FBE90938E +:1038E0006000FFCFEF92FF920F931F93CF93DF9370 +:1038F000D82FCDE08C2F0E948F0405E010E0E82E39 +:10390000F12CC701002E02C0959587950A94E2F725 +:1039100080FF09C0602F7C2F80E00E944D06D813E5 +:1039200002C081E006C00150110958F7C15010F7DC +:1039300080E0DF91CF911F910F91FF90EF9008955C +:10394000CF93C82F8CE20E94721C882321F08C2F09 +:10395000CF910C94721C80E0CF910895CF930E9478 +:10396000F51D811102C00E94DB1DC5E6C15049F062 +:103970000E94A1038FE39CE90197F1F700C00000CA +:10398000F5CF89E20E94A01C811113C18AE20E9436 +:10399000A01C81110E94DB1D85E00E94A01C8111EA +:1039A0000E94501C0E94001E8093DA0187E00E9452 +:1039B000A01C8823A9F18BE10E94A01C882351F050 +:1039C0008091DA0181FB222720F991E0922790FB78 +:1039D00081F90EC08EE00E94A01C882361F08091C6 +:1039E000DA0182FB222720F991E0922790FB82F9ED +:1039F0008093DA0115C080E10E94A01C9091DA0149 +:103A0000882341F093FB222720F981E0822780FB65 +:103A100093F904C0892F809580FB90F99093DA0187 +:103A20008091DA010E94041E0E94121E8093FA0106 +:103A300080EE0E94A01C882341F08091FA01982F0B +:103A4000909590FB80F98093FA0189E30E94A01C75 +:103A5000882359F08091FA0181FB222720F991E017 +:103A6000922790FB81F98093FA0182EE0E94A01CBC +:103A7000882359F08091FA0182FB222720F991E0F6 +:103A8000922790FB82F98093FA0186EE0E94A01C97 +:103A9000882359F08091FA0183FB222720F991E0D5 +:103AA000922790FB83F98093FA0183EE0E94A01C79 +:103AB000882359F08091FA0184FB222720F991E0B4 +:103AC000922790FB84F98093FA0185E30E94A01C61 +:103AD000882359F08091FA0185FB222720F991E093 +:103AE000922790FB85F98093FA0181E30E94A01C44 +:103AF000882359F08091FA0186FB222720F991E072 +:103B0000922790FB86F98093FA0181E10E94A01C24 +:103B1000882359F08091FA0187FB222720F991E050 +:103B2000922790FB87F98093FA018091FA010E9415 +:103B3000161E8091FA0187FB882780F980930D017A +:103B400087E20E94A01CC82F8EE10E94A01C811158 +:103B5000C2608FE10E94A01C8111C46080E20E94BB +:103B6000A01C8111C86081E20E94A01C8111C0616B +:103B700082E20E94A01C8111C06283E20E94A01C0C +:103B80008111C06484E20E94A01C882311F0C068E7 +:103B900002C0CC2329F08C2F0E940D1E6C2F03C075 +:103BA0000E94091E682F70E080E090E0CF910C9495 +:103BB0009D18CF9108956DEE7EEF80E090E00E9419 +:103BC000472460E082E090E00E94352460E083E0DA +:103BD00090E00E94352460E084E090E00E9435246B +:103BE00060E085E090E00C94352480E090E00E9455 +:103BF0002F2421E08D3E9E4F09F020E0822F089572 +:103C000082E090E00C942724682F82E090E00C94EE +:103C1000352483E090E00C942724682F83E090E023 +:103C20000C94352484E090E00C942724682F84E0E1 +:103C300090E00C9435248091E20180FF0BC06091EC +:103C4000130185E0689FB0011124759567957595FE +:103C500067952BC081FF09C06091130185E0689FC3 +:103C6000B00111247595679520C082FF07C060914F +:103C7000130185E0689FB001112417C09091E30102 +:103C80009923D1F060911201961788F720911301C2 +:103C900085E0289F90011124929FA001939F500DD1 +:103CA000112470E0CA010E94F9236038710540F4C4 +:103CB0006115710539F002C065E070E0862F089546 +:103CC0008FE7089581E008958091E20180FF08C0A8 +:103CD0006091110170E0759567957595679521C0A4 +:103CE00081FF06C06091110170E07595679519C05C +:103CF00082FF04C06091110170E010C09091E30157 +:103D00009923C1F0609110019617A0F780911101DD +:103D1000899FC001112470E00E94F9236038710569 +:103D200028F46115710521F0862F08958FE7089515 +:103D300081E0089561E070E0F4CF803F21F40E94BB +:103D40001B1E819504C0813F29F40E941B1E809395 +:103D5000E6010895823F21F40E941B1E819504C054 +:103D6000833F29F40E941B1E8093E5010895893F3B +:103D700019F40E94641E05C08A3F31F40E94641E3B +:103D800081958093E70108958B3F21F40E94641E82 +:103D9000819504C08C3F29F40E94641E8093E80141 +:103DA0000895843F21F48091E401816017C0853F2C +:103DB00021F48091E401826011C0863F21F480915A +:103DC000E40184600BC0873F21F48091E4018860A6 +:103DD00005C0883F31F48091E40180618093E40163 +:103DE00008958D3F21F48091E20181600BC08E3FE8 +:103DF00021F48091E201826005C08F3F29F4809117 +:103E0000E20184608093E2010895803F39F480915B +:103E1000E60187FF6CC01092E60169C0813F29F47A +:103E20008091E6011816BCF362C09091E501823FD3 +:103E300029F497FF5CC01092E50159C0833F19F443 +:103E40001916CCF354C0893F41F48091E70118164C +:103E50000CF04DC01092E7014AC08A3F29F48091CE +:103E6000E70187FF44C0F6CF8B3F39F48091E8012A +:103E700087FF3DC01092E8013AC08C3F29F4809141 +:103E8000E8011816BCF333C0843F21F48091E401AB +:103E90008E7F17C0853F21F48091E4018D7F11C092 +:103EA000863F21F48091E4018B7F0BC0873F21F492 +:103EB0008091E401877F05C0883F31F48091E4015F +:103EC0008F7E8093E40113C08D3F21F48091E20145 +:103ED0008E7F0BC08E3F21F48091E2018D7F05C063 +:103EE0008F3F29F48091E2018B7F8093E2018091E2 +:103EF000E50181110EC08091E60181110AC0809117 +:103F0000E701811106C08091E801811102C0109281 +:103F1000E301089584EE91E00E945B100E94F51B7E +:103F20009093E1018093E00108951F93CF93DF9375 +:103F30008091E0019091E1010E94011CAC019091FF +:103F4000E301992321F02091140130E006C0209173 +:103F500015018AE0289F900111244217530708F4A5 +:103F600086C08091E501C091E601D091E7011091F2 +:103F7000E801811107C0C11176C0D11174C01111BF +:103F800072C075C09F3F19F09F5F9093E3011816B0 +:103F900024F40E941B1E8093E5018091E50187FFB8 +:103FA00005C00E941B1E81958093E5011C1624F418 +:103FB0000E941B1E8093E6018091E60187FF05C0E9 +:103FC0000E941B1E81958093E6016091E5016623A6 +:103FD00039F1C091E601CC2319F1772767FD70957F +:103FE000872F972F0E940A2323E333E343E35FE302 +:103FF0000E946E230E94D7226093E5016C2F7727E1 +:1040000067FD7095872F972F0E940A2323E333E3E0 +:1040100043E35FE30E946E230E94D7226093E60190 +:104020001D1624F40E94641E8093E7018091E7012D +:1040300087FF05C00E94641E81958093E7011116D9 +:1040400024F40E94641E8093E8018091E80187FFB8 +:1040500005C00E94641E81958093E801DF91CF9195 +:104060001F910C948A1F9F3F09F08ECF96CFDF914E +:10407000CF911F910895E4EEF1E085E0DF011D92FC +:104080008A95E9F71092E3011092E20108958330D6 +:1040900081F128F4813059F08230D1F008958530D3 +:1040A00009F449C0B8F1863009F456C008958091EA +:1040B0001501262F30E0280F311D2F3F310524F444 +:1040C000680F6093150108958FEF8093150108958F +:1040D00080911401262F30E0280F311D2F3F31052C +:1040E00024F4680F6093140108958FEF80931401F6 +:1040F000089580911301262F30E0280F311D2F3FA6 +:10410000310524F4680F6093130108958FEF8093B5 +:104110001301089580911201262F30E0280F311DE0 +:104120002F3F310524F4680F6093120108958FEF3B +:1041300080931201089580911101262F30E0280FFD +:10414000311D2F3F310524F4680F6093110108954C +:104150008FEF80931101089580911001262F30E098 +:10416000280F311D2F3F310524F4680F6093100193 +:1041700008958FEF809310010895833011F128F492 +:10418000813049F0823091F00895853081F120F13D +:104190008630C1F1089580911501681720F4861BBF +:1041A00080931501089510921501089580911401CE +:1041B000681720F4861B809314010895109214014F +:1041C000089580911301681720F4861B80931301D2 +:1041D000089510921301089580911201681720F438 +:1041E000861B809312010895109212010895809108 +:1041F0001101681720F4861B809311010895109215 +:104200001101089580911001681720F4861B809396 +:10421000100108951092100108950F931F938D318E +:1042200009F46BC008F03FC08E3009F47FC0C0F4C1 +:10423000873009F469C068F4863009F0B1C0809114 +:10424000DA01817F8E7F8093DA0181E08093EA0139 +:10425000A8C0883009F4A2C08B3009F49FC0A0C068 +:10426000863109F49BC078F4803109F472C0813141 +:1042700009F096C00E94DD1490910D0181E089271C +:1042800080930D018BC0893109F488C08B3109F00E +:1042900087C08091DA0181FB222720F991E09227E3 +:1042A00090FB81F94CC0853309F470C048F4873223 +:1042B00009F46CC008F459C0893209F467C070C0B1 +:1042C000833438F48A3308F04EC0883309F466C06A +:1042D00067C0833409F45AC0883409F061C00E9471 +:1042E000DD140FEF13ED20E3015010402040E1F703 +:1042F00000C000000E94501C51C00E9491220E94E8 +:1043000044100E943D094AC09091DA01892F80959E +:10431000817080FB90F929F0966098609093DA01A3 +:1043200040C0997F977F9093DA0138C08091DA017D +:1043300082FB222720F991E0922790FB82F980935B +:10434000DA01992359F18091DA0181608093DA01D1 +:1043500025C08091DA0183FB222720F991E0922782 +:1043600090FB83F9ECCF895301C08D5141E050E0BF +:1043700060E070E08A019B0104C0000F111F221F42 +:10438000331F8A95D2F7C901B80104C061E070E01B +:1043900080E090E00E949D180E94DD1481E001C041 +:1043A00080E01F910F91089580E0089580E00895C6 +:1043B000CF93C82F8091EA01813079F018F08230D4 +:1043C000E9F187C0E0910E01F0910F018081813108 +:1043D00069F0823209F07FC009C0E0910E01F091CE +:1043E0000F018081813111F0823261F48C2F0E94A3 +:1043F000D421811104C08C2F0E940D211DC081E0A9 +:1044000090E01AC08C2F0E94D621811114C0C431B3 +:1044100079F048F4CB3079F0C03109F060C082E027 +:104420008093EA0108C0C93219F0C83321F057C09F +:104430001092EA0154C081E0817053C0C93289F101 +:1044400018F5C43171F1A8F4C73009F046C08AE00C +:104450008093150194E19093140193E090931301DC +:104460008093120188E08093110188E2809310010B +:1044700034C0CE51C63088F5EC2FF0E0E65DFE4F3B +:1044800080818093E90129C0CE34E9F020F4CB3457 +:1044900021F56AE013C0C13579F0C235F1F461E06D +:1044A0000DC08091E901882319F01092E90115C02F +:1044B00081E08093EA0115C061E006C08091E901C6 +:1044C0000E9447200AC06AE08091E9010E94BD2055 +:1044D00004C01092EA0180E004C081E002C080E0E4 +:1044E000ABCFCF910895E1E8F0E0808188608083D0 +:1044F0008081816080838FB7F89493E090938900E6 +:1045000090ED909388008FBF0895EFE6F0E08081F2 +:10451000826080830895EFE6F0E080818D7F808364 +:104520000895EFE6F0E0908182E089278083089586 +:104530001F920F920FB60F9211242F933F934F9318 +:104540005F936F937F938F939F93AF93BF93EF93FB +:10455000FF938091EB019091EC0101969093EC0117 +:104560008093EB01811103C082E00E943D09E0913C +:10457000EC01E695E695F0E0E05AFA4FE49180917F +:10458000EB018E1303C080E00E943D09FF91EF9183 +:10459000BF91AF919F918F917F916F915F914F915B +:1045A0003F912F910F900FBE0F901F90189504D040 +:1045B0006894B1118DC0089570D088F09F5790F025 +:1045C000B92F9927B751A0F0D1F0660F771F881F38 +:1045D000991F1AF0BA95C9F712C0B13081F077D09F +:1045E000B1E0089574C0672F782F8827B85F39F03D +:1045F000B93FCCF3869577956795B395D9F73EF497 +:1046000090958095709561957F4F8F4F9F4F08953E +:10461000E89409C097FB3EF490958095709561955C +:104620007F4F8F4F9F4F9923A9F0F92F96E9BB2712 +:104630009395F695879577956795B795F111F8CF8E +:10464000FAF4BB0F11F460FF1BC06F5F7F4F8F4FF9 +:104650009F4F16C0882311F096E911C0772321F0EF +:104660009EE8872F762F05C0662371F096E8862F87 +:1046700070E060E02AF09A95660F771F881FDAF7DE +:10468000880F9695879597F9089557FD9058440F90 +:10469000551F59F05F3F71F04795880F97FB991FA1 +:1046A00061F09F3F79F0879508951216130614065E +:1046B000551FF2CF4695F1DF08C0161617061806EB +:1046C000991FF1CF86957105610508940895E894C6 +:1046D000BB2766277727CB0197F908950BD078C0C1 +:1046E00069D028F06ED018F0952309F05AC05FC049 +:1046F0001124EECFCADFA0F3959FD1F3950F50E0C0 +:10470000551F629FF001729FBB27F00DB11D639F83 +:10471000AA27F00DB11DAA1F649F6627B00DA11D29 +:10472000661F829F2227B00DA11D621F739FB00DCF +:10473000A11D621F839FA00D611D221F749F33273F +:10474000A00D611D231F849F600D211D822F762FD8 +:104750006A2F11249F5750408AF0E1F088234AF0D5 +:10476000EE0FFF1FBB1F661F771F881F9150504021 +:10477000A9F79E3F510570F014C0AACF5F3FECF33C +:10478000983EDCF3869577956795B795F795E7950D +:104790009F5FC1F7FE2B880F911D9695879597F91E +:1047A000089597F99F6780E870E060E008959FEFB3 +:1047B00080EC089500240A941616170618060906B8 +:1047C000089500240A941216130614060506089587 +:1047D000092E0394000C11F4882352F0BB0F40F40F +:1047E000BF2B11F460FF04C06F5F7F4F8F4F9F4F4F +:1047F000089597FB072E16F4009407D077FD09D093 +:104800000E94132407FC05D03EF4909581959F4F9C +:104810000895709561957F4F0895EE0FFF1F0590E5 +:10482000F491E02D0994AA1BBB1B51E107C0AA1FFC +:10483000BB1FA617B70710F0A61BB70B881F991F41 +:104840005A95A9F780959095BC01CD010895F999E5 +:10485000FECF92BD81BDF89A992780B50895A8E151 +:10486000B0E042E050E00C944F24262FF999FECF9F +:1048700092BD81BDF89A019700B4021639F01FBAB3 +:1048800020BD0FB6F894FA9AF99A0FBE08950196D2 +:10489000272F0E9436240C943524DC01CB01FC0127 +:1048A000F999FECF06C0F2BDE1BDF89A319600B489 +:0E48B0000D9241505040B8F70895F894FFCF94 +:1048BE0002203F09CD09AA09760942090101C70163 +:1048CE0028080A03140A3F4D36392105D4049E04E4 +:1048DE006504F80311042A044304010203040506C7 +:0448EE0007080900AE +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/keymap.c b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/keymap.c new file mode 100644 index 000000000..9971b834c --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/keymap.c @@ -0,0 +1,134 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 +#define SYMB 1 +#define PLVR 2 +#define ARRW 3 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = KEYMAP( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F14, + KC_TAB, KC_Q, KC_W, KC_D, KC_F, KC_K, TG(PLVR), + CTL_T(KC_ESC), KC_A, KC_S, KC_E, KC_T, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, + KC_F1, KC_F2, KC_F3, KC_LALT, KC_LGUI, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLD, KC_MUTE, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLU, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_BSPC, CTL_T(KC_ESC), KC_FN1, + // + /*-*/ KC_F15, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + /*-*/ KC_BSLS, KC_J, KC_U, KC_R, KC_L, KC_SCLN, KC_MINS, + /*-*/ /*-*/ KC_Y, KC_N, KC_I, KC_O, KC_H, KC_ENT, + /*-*/ KC_RBRC, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + /*-*/ /*-*/ /*-*/ KC_RGUI, KC_RALT, KC_F4, KC_F5, KC_F6, + KC_MPLY, KC_MNXT, + KC_MPRV, + KC_FN3, KC_QUOT, KC_SPC + ), + [SYMB] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, + KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + // + /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + /*-*/ /*-*/ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS, + /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ), + [PLVR] = KEYMAP( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, + 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_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_C, KC_V, KC_NO, + // + /*-*/ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + /*-*/ KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO, + /*-*/ /*-*/ 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_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_NO, KC_N, KC_M + ), + [ARRW] = 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_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_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_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_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, KC_TRNS + ), +}; + +const uint16_t PROGMEM fn_actions[] = { + [SYMB] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Symbols Layer + [PLVR] = ACTION_LAYER_TAP_TOGGLE(PLVR), // FN2 - Momentary Plover Layer + [ARRW] = ACTION_LAYER_TAP_TOGGLE(ARRW), // FN3 - Momentary Arrows Layer +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } 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 PLVR: + ergodox_right_led_2_on(); + break; + case ARRW: + ergodox_right_led_3_on(); + break; + default: + break; + } +}; diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/readme.md b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/readme.md new file mode 100644 index 000000000..804c52a76 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/readme.md @@ -0,0 +1,50 @@ +# Roman's Layout + +There are four layers: + +- **BASE** is [Norman layout](https://normanlayout.info/). +- **SYMB** for numbers and symbols. +- **PLVR** is optimized for [Plover](http://www.openstenoproject.org). +- **ARRW** for navigation (same fingers for arrows as IJKL on QWERTY). + +Looking for HJKL arrows? [Here we +go](../romanzolotarev-norman-plover-osx-hjkl/). + +[![keyboard-layout](romanzolotarev-norman-plover-osx.png)](http://www.keyboard-layout-editor.com/#/gists/8ebcb701ecb763944417) + +## Switching + +- Tap `SYMB` to toggle **SYMB**. +- Tap `ARRW` to toggle **ARRW**. +- Hold `SYMB` (or `ARRW`) to activate **SYMB** (or **ARRW**) while holding. +- Tap `PLVR` to toggle **PLVR**. + +## LEDs + +- Red: SYMB is on. +- Green: PLVR is on. +- Blue: ARRW is on. + +## Functional Keys + +- Tap `F1` to mute microphone via [Shush](http://mizage.com/shush/). +- Tap `F2` to copy screenshot to the clipboard. +- Hold `SHIFT` and tap `F2` to save screenshot as a file. +- Tap `F3`, `F4`, `F5`, `F6` to resize a window via [Divvy](http://mizage.com/divvy/). +- Tap `F14`, `F15` to adjust display brightness. + +**IMPORTANT**: If you have another keyboard connected via Bluetooth, then +`F14` and `F15` will not work. Turn off that Bluetooth keyboard. Re-plug +you ErgoDox. Enjoy! + +## CTRL/ESC + +Both of those keys are frequently used in Vim. + +- Tap `CTRL/ESC` to send `ESC`. +- Hold `CTRL/ESC` to use as `CTRL`. + +## Activate N-rollover + +- While in **BASE** hold left `SHIFT` and right `SHIRT` and then tap `N`. +- Then you can activate **PLVR** and use ErgoDox EZ for steno. diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/romanzolotarev-norman-plover-osx.png b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/romanzolotarev-norman-plover-osx.png new file mode 100644 index 000000000..10b0752be Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/romanzolotarev-norman-plover-osx.png differ diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/compiled.hex b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/compiled.hex new file mode 100644 index 000000000..1debb026a --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/compiled.hex @@ -0,0 +1,1120 @@ +:100000000C9425020C9469020C9469020C94690208 +:100010000C9469020C9469020C9469020C946902B4 +:100020000C9469020C9469020C94800D0C94520E8D +:100030000C9469020C9469020C9469020C94690294 +:100040000C9469020C940C210C9469020C946902C2 +:100050000C9469020C94EE1B0C9469020C946902D6 +:100060000C9469020C9469020C9469020C94690264 +:100070000C9469020C9469020C9469020C94690254 +:100080000C9469020C9469020C9469020C94690244 +:100090000C9469020C9469020C9469020C94690234 +:1000A0000C9469020C9469020C946902BF0EE10E73 +:1000B000CF0FE10ECF0F260F490FCF0F9E0FB10FBD +:1000C00080128012AF12AF12E512051336143614E7 +:1000D00010133614C013C0132714361436143014FA +:1000E000CD13CD13CD13CD13CD13CD13CD13CD1310 +:1000F000CD13CD13CD13CD13CD13CD13CD13CD1300 +:10010000DF13EC13F313FA13041435002B00E00093 +:10011000E1003A0000001E00140004001D003B0036 +:10012000E2001F001A0016001B003C00296120009D +:100130000700080006003D002A0021000900170002 +:100140001900E300A90022000E000A0005000000CB +:10015000AA003E00310000002F000000A8003F0070 +:100160000153000030000000AE0023000D001C0011 +:1001700013000000AB002400180011001000E7007D +:10018000AC00250015000C00360050002C002600A5 +:100190000F001200370051003400270033000B001D +:1001A00038005200E6002E002D002800E5004F0028 +:1001B0000000010001000100010001000000010039 +:1001C0000100010001000100010001000100010027 +:1001D000010001000100010008000700010001000A +:1001E00001000100150009000100010001000100EB +:1001F00017000100010000000100010001000000E3 +:1002000001000000010001000100000001000000E9 +:10021000010001001C000B001100000001000100A2 +:1002200018000D0001000100010001000C000E008B +:10023000010001000100010012000F000100010097 +:100240000100010013003300010001000100010062 +:1002500001000100010001000000160345007200CA +:1002600067006F0044006F007800200045005A00CE +:10027000000016034500720067006F0044006F0025 +:100280007800200045005A00000004030904090218 +:100290006D00040100A0FA0904000001030101003F +:1002A0000921110100012240000705810308000A0D +:1002B00009040100010301020009211101000122CA +:1002C0004D000705820308000A090402000103002B +:1002D00000000921110100012236000705830308EF +:1002E000000A0904030001030000000921110100B4 +:1002F00001223900070584031000011201100100DA +:10030000000008EDFE0713010001020001050109CC +:1003100006A101050719E029E715002501950875D3 +:1003200001810205081901290595057501910295BC +:10033000017503910105071900297715002501951D +:100340007875018102C005010980A10185021601AD +:100350000026B7001A01002AB70075109501810028 +:10036000C0050C0901A1018503160100269C021A93 +:1003700001002A9C02751095018100C00501090247 +:10038000A1010901A100050919012905150025018F +:1003900095057501810295017503810105010930FB +:1003A00009311581257F9502750881060938158167 +:1003B000257F950175088106050C0A3802158125EF +:1003C0007F950175088106C0C005010906A10105D8 +:1003D0000719E029E71500250195087501810295A7 +:1003E0000175088101050819012905950575019117 +:1003F000029501750391010507190029FF150026D3 +:10040000FF00950675088100C00000000000000094 +:1004100000000000010204060A0F17202C3A4A5D72 +:1004200071879DB3C7DAE9F5FCFFFCF5E9DAC7B3DC +:100430009D87715D4A3A2C20170F0A0604020100BD +:100440000000000000000000000011241FBECFEFDC +:10045000DAE0DEBFCDBF04B603FE24C08091FD010B +:100460009091FE01A091FF01B09100028730904B66 +:10047000A740B04BB9F41092FD011092FE0110920A +:10048000FF011092000214BE84B7877F84BF88E109 +:100490000FB6F89480936000109260000FBEE0E009 +:1004A000FFE3099511E0A0E0B1E0E6EAF5E402C05F +:1004B00005900D92A433B107D9F711E0A4E3B1E0A0 +:1004C00001C01D92AD3FB107E1F70E94C80A0C942C +:1004D000D1220C9400001092B9008AE08093B800F9 +:1004E000089594EA9093BC009091BC0097FFFCCFD4 +:1004F0009091B900987F983021F0903111F081E00F +:1005000008958093BB0084E88093BC008091BC0078 +:1005100087FFFCCF8091B900887F883111F080344B +:1005200071F780E0089584E98093BC008091BC005D +:1005300084FDFCCF08958093BB0084E88093BC00C9 +:100540008091BC0087FFFCCF9091B900987F81E03B +:10055000983209F480E0089584E88093BC0080918B +:10056000BC0087FFFCCF8091BB00089580B38C70E6 +:1005700080BB81B3836F81BB08958091010181119C +:1005800015C080E40E9471028093010181110CC0AA +:1005900082E10E949B0280930101811105C08FEFCF +:1005A0000E949B02809301010E94930284B1807F8C +:1005B00084B985B1807F85B98AB1837F8AB98BB1CF +:1005C000837F8BB93E98469808950E948704809354 +:1005D00001010E94BD020E94B602A5E3B1E0E3E47E +:1005E000F1E08EE08E0F11921D928E13FCCF0C94D1 +:1005F00071040E948704809301010E94BD020E9441 +:10060000B602A5E3B1E0E3E4F1E08EE08E0F1192D3 +:100610001D928E13FCCF0895BF92CF92DF92EF927E +:10062000FF920F931F93CF93DF9380910101882353 +:1006300079F0809134018F5F80933401811108C07B +:100640000E94870480930101811102C00E94190455 +:1006500005E311E0C0E0D0E0DD24D39482E0C82EB1 +:10066000EE24E394F12CC730D10500F5809101010F +:10067000811164C080E40E947102809301018111A4 +:1006800012C082E10E949B028093010181110BC084 +:10069000C7010C2E01C0880F0A94EAF780950E94CA +:1006A0009B02809301010E94930248C0CA30A1F0CE +:1006B00028F4C83059F0C93061F005C0CC3089F059 +:1006C00070F0CD3089F0209A289810C0219A29988E +:1006D0000DC0229A2A980AC0239A2B9807C0529AD2 +:1006E00001C0539A5B9802C03E9A469890EA9A9548 +:1006F000F1F79FB1799902C082E001C080E091706A +:100700009D25982B7C9902C084E001C080E0892B54 +:100710007D9902C038E001C030E0832B7E9902C091 +:1007200020E101C020E0822B9FB19095991F99276D +:10073000991F9295990F907E892B0FC0809101018E +:10074000811149C080E40E947102809301018823D5 +:1007500079F1B12C0E9493028B2DF80190819817AA +:1007600019F08083C09200010E94BD0221960F5FA4 +:100770001F4FCE30D10509F076CF8091000188233C +:1007800061F1815080930001882339F08FE99FE067 +:100790000197F1F700C0000020C0A3E4B1E0E5E359 +:1007A000F1E0CF01825F91919D938E13FCCF15C034 +:1007B00083E10E949B02809301018111CACF81E4F1 +:1007C0000E947102809301018111C3CF0E94AC028B +:1007D000B82EB094BFCF80E0C0CF0E94170481E054 +:1007E000DF91CF911F910F91FF90EF90DF90CF900D +:1007F000BF900895E82FF0E0ED5BFE4F80810895F3 +:1008000008950F931F93CF93DF93C3E4D1E010E0DB +:100810000C2F025F899190E00E94151B180F0C139A +:10082000F9CF812FDF91CF911F910F9108950C94F3 +:10083000DA0456985E9825982D9826982E98279831 +:100840002F988FEF90E09093890080938800909389 +:100850008B0080938A0090938D0080938C00259A62 +:100860002D9A2FEF80E792E0215080409040E1F7F1 +:1008700000C00000269A2E9A2FEF80E792E02150C8 +:1008800080409040E1F700C00000279A2F9A2FEF98 +:1008900080E792E0215080409040E1F700C00000E6 +:1008A00025982D982FEF80E792E0215080409040CE +:1008B000E1F700C0000026982E982FEF80E792E025 +:1008C000215080409040E1F700C0000027982F9809 +:1008D00056985E9825982D9826982E9827982F98A8 +:1008E000089589EA8093800089E0809381002498AC +:1008F0002C983F988AB18F748AB96E98479A8BB1B9 +:10090000806B8BB9769A0E9419040C94D90480E20A +:10091000809301018091510181110EC00E946B02F0 +:1009200081E0809351012FEF83ED90E321508040CF +:100930009040E1F700C0000080E40E9471028093C3 +:10094000010181112EC00E949B028093010181113F +:1009500028C00E949B0280930101811122C08FE375 +:100960000E949B028093010181111BC00E9493028F +:1009700080E40E94710280930101811112C08CE019 +:100980000E949B028093010181110BC00E949B0277 +:1009900080930101811105C08FE30E949B02809327 +:1009A00001010E94930280910101089580E090E08E +:1009B000089508956091BE017091BF018091C001BA +:1009C0009091C1010E94211B56985E9825982D9800 +:1009D00026982E9827982F98813011F4259A2D9AD1 +:1009E000089581E0089581E008950C94F30408953A +:1009F000282F882339F090E02A3010F44D9608957E +:100A00000697089587E290E00895AF92BF92DF9233 +:100A1000EF92FF920F931F93CF93DF938C01FC0112 +:100A2000C081D181CE010E949A19BE010E94750831 +:100A3000EC01B8010E94F504882309F4C9C1F8014A +:100A40008281882309F4BEC080915E0181111FC09C +:100A5000C431F0E7DF0709F0B5C10E94F70481E077 +:100A600080935E010E94B81B90935D0180935C01AE +:100A7000109255011092570110925601109259018F +:100A80001092580110925B0110925A01A1C18091FD +:100A90005C0190915D010E94C41B883C910570F43B +:100AA00080915501E82FF0E0EE0FFF1FEA5AFE4F4C +:100AB000D183C0838F5F809355018AC1C13020E804 +:100AC000D20708F451C0F8018281882309F47EC05E +:100AD0005E01E894B7F880915401813079F050F0CC +:100AE0008230C1F482EE0E94241187E50E94241115 +:100AF00087E50EC082EE0E9424110CC080EE0E9499 +:100B0000241181EE0E94241188E10E94241188E1C1 +:100B10000E94EC118CE0E82EF12CC5010E2C02C0D5 +:100B2000969587950A94E2F78F700E94F804D82E64 +:100B30000E9424118D2D0E94EC11F4E0EF1AF108AF +:100B40002CEFE2162FEFF20641F78091540181302D +:100B500029F010F0823041F482EE04C080EE0E9451 +:100B6000EC1181EE0E94EC11C43180E7D80768F4E3 +:100B7000C23090E7D90708F046C0C115E0E7DE07AC +:100B800071F0C130D047A1F10CC1C33320E7D207C7 +:100B900009F4D8C0C433D04709F4EBC002C1F8014E +:100BA0008281882309F402C10E94A114FFEF24E38B +:100BB0008CE0F15020408040E1F700C000000E942E +:100BC000131C06C1C13080E8D80770F2C43120E799 +:100BD000D20708F0B3C0C23080E7D807A0F4C1152F +:100BE00090E7D90709F4E2C0C130D04709F0D9C075 +:100BF000F8018281882309F4D9C08091DB018160EA +:100C00008093DB01E5C0F8018281882309F4CEC01E +:100C10000E946D1C811102C00E94531C0E94801C06 +:100C200090E09093EF018093EE01C230F0E7DF0790 +:100C300021F48091EE0181607AC0C33020E7D207B1 +:100C400021F48091EE01826072C0C43080E7D80741 +:100C500021F48091EE0184606AC0C53090E7D90725 +:100C600019F48091EE0127C0C630E0E7DE0721F4D9 +:100C70008091EE0180615BC0C730F0E7DF0721F4AF +:100C80008091EE01806253C0C83020E7D20721F482 +:100C90008091EE0180644BC0C93080E7D80721F411 +:100CA0008091EE01806843C0CA3090E7D90729F4EB +:100CB0008091EE01846088603AC0CB30E0E7DE07C7 +:100CC00021F48091EE018E7F32C0CC30F0E7DF0757 +:100CD00021F48091EE018D7F2AC0CD3020E7D2072C +:100CE00021F48091EE018B7F22C0CE3080E7D807BF +:100CF00019F48091EE011AC08091EE01CF3090E797 +:100D0000D90711F48F7E13C0C031E0E7DE0711F47C +:100D10008F7D0DC0C131F0E7DF0711F48F7B07C075 +:100D2000C231D04711F48F7702C08B7F877F8093C9 +:100D3000EE018091EE010E94841C4AC0C333F0E7AB +:100D4000DF07A1F4F8018281882321F0109252017B +:100D500082E016C080915201811106C086E20E9495 +:100D6000241186E20E94EC1182E018C0C433D047FF +:100D7000C1F4F8018281882331F01092530180E29E +:100D80000E943B1225C080915301811106C087E269 +:100D90000E94241187E20E94EC1180E20E9442121C +:100DA00017C081E08093520180935301C801DF9105 +:100DB000CF911F910F91FF90EF90DF90BF90AF9078 +:100DC0000C94F104C130F0E8DF0708F081CECCCEFE +:100DD00080E0DF91CF911F910F91FF90EF90DF9016 +:100DE000BF90AF90089526E0729FF001112444E572 +:100DF000849FE00DF11D1124E60FF11DEE0FFF1F82 +:100E0000E65FFE4F859194910E948708811560E40A +:100E10009607B0F5811570E3970708F0DEC0803EB5 +:100E20009105D8F4803C910508F06CC0883A910592 +:100E300078F4853A910508F06BC08130910509F48A +:100E400052C108F40FC18430910508F04CC10AC1A9 +:100E50008B3B910508F467C005C18F3F910509F0F0 +:100E600048F4803F910508F0ADC0883E910508F434 +:100E70003AC1F8C0811520E2920708F0A5C0089594 +:100E8000811543E5940790F4811562E5960708F013 +:100E9000C8C0811571E5970708F0BEC0811520E52F +:100EA000920708F09DC09F70906A0895811545E5EE +:100EB0009407D8F4811564E5960708F0C8C0482F58 +:100EC0004695469570E2479FA001112483709927AB +:100ED00021E030E0B90102C0660F771F8A95E2F782 +:100EE000CB01842B952B9A680895811576E5970799 +:100EF00008F4B2C09C0130562115304108F0B2C050 +:100F00009F70AEC0FC01EE0FFF1FE657F04062C0BD +:100F1000853A910509F4A9C0863A910509F0A8C05F +:100F200082E890E40895883A910509F4A4C0893ACA +:100F3000910509F4A3C08A3A910509F4A2C08B3A3D +:100F4000910509F4A1C08C3A910509F4A0C08D3A2D +:100F5000910509F49FC0803B910509F49EC08E3A2B +:100F6000910509F49DC08F3A910509F49CC0813B1D +:100F7000910509F49BC0823B910509F49AC0833B1B +:100F8000910509F499C0843B910509F498C0853B0B +:100F9000910509F497C0863B910509F496C0873BFB +:100FA000910509F495C0883B910509F494C0893BEB +:100FB000910509F493C08A3B910509F492C080E041 +:100FC00094E4089590650895FC01FF70EE0FFF1FF3 +:100FD000E65FFE4F8591949108959927906C08954E +:100FE000482F437021E030E002C0220F331F4A95A2 +:100FF000E2F73C68AC0164E0569547956A95E1F7E5 +:101000004370342B8F708695869560E2869FC00171 +:101010001124822B932B0895982F8827816F906A33 +:101020000895482F4695469570E2479FA0011124E8 +:101030008370992721E030E0B90102C0660F771F65 +:101040008A95E2F7CB01842B952B9C680895982F05 +:101050008827846F906A08958F719927982F882721 +:101060009062089580E090E0089581E890E408950A +:1010700083E890E4089582EE94E4089589EE94E480 +:1010800008958AEE94E4089585EB94E4089586EB40 +:1010900094E4089587EB94E408958CEC94E4089527 +:1010A0008DEC94E4089583E895E408958AE895E446 +:1010B000089582E995E4089584E995E4089581E22C +:1010C00096E4089583E296E4089584E296E4089510 +:1010D00085E296E4089586E296E4089587E296E430 +:1010E00008958AE296E40895089596E0799FF001C4 +:1010F000112494E5899FE00DF11D1124E60FF11DE7 +:10110000EE0FFF1FE65FFE4F8591949108958238A0 +:10111000910549F1B0F48133910509F458C048F4C0 +:101120008932910509F44EC08A32910509F454C000 +:1011300008958533910509F440C08933910599F0EC +:101140000895833E910529F138F4803E910591F090 +:10115000823E9105A1F00895863E9105F9F0873E03 +:10116000910531F108952091EE0120FD3AC021FD55 +:1011700038C008958091EE0180FD35C032C0809165 +:10118000EE0182FF32C08091EE0184FD30C083EE1B +:1011900039C08091EE0182FD28C0F5CF8091EE012B +:1011A00083FF27C08091EE0184FD21C087EE2AC015 +:1011B0008091EE0183FD1DC0F5CF8091EE0185FD8C +:1011C0001AC01BC08091EE0185FD17C014C080912C +:1011D000EE0186FD14C015C08091EE0186FD11C0A0 +:1011E0000EC080EE0FC089E30DC082EE0BC080E020 +:1011F00009C086EE07C089E205C085E303C08AE224 +:1012000001C081E390E0089508950C940409809151 +:101210006F010895CF93DF9300D01F92CDB7DEB753 +:101220009C018091F401843019F593E099833B830C +:101230002A839093E9008FEF9091E800815095FD0B +:1012400006C095ED9A95F1F700008111F5CF8091D8 +:10125000E80085FF0DC040E050E063E070E0CE01A3 +:1012600001960E94700B8091E8008E778093E800D1 +:101270000F900F900F90DF91CF910895CF93DF9350 +:1012800000D01F92CDB7DEB72091F401243021F5B4 +:1012900022E029839B838A8383E08093E9008FEF98 +:1012A0009091E800815095FD06C095ED9A95F1F773 +:1012B00000008111F5CF8091E80085FF0DC040E06E +:1012C00050E063E070E0CE0101960E94700B8091C7 +:1012D000E8008E778093E8000F900F900F90DF91D9 +:1012E000CF9108952091F4012430F1F422E020936D +:1012F000E9002FEF3091E800215035FD06C035EDB3 +:101300003A95F1F700002111F5CF2091E80025FF73 +:101310000BC040E050E065E070E00E94700B8091EF +:10132000E8008E778093E8000895CF93DF93EC0177 +:101330009091F401943009F046C080910C0188230B +:10134000D9F080910D018823B9F09093E9008FEFD7 +:101350009091E800815095FD06C095E19A95F1F7CE +:1013600000008111F5CF8091E80085FF2CC040E09E +:1013700050E060E170E017C081E08093E9008FEFFA +:101380009091E800815095FD06C095ED9A95F1F792 +:1013900000008111F5CF8091E80085FF14C040E086 +:1013A00050E068E070E0CE010E94700B8091E80090 +:1013B0008E778093E80080E1FE01AFE5B1E0019017 +:1013C0000D928A95E1F7DF91CF9108958091F30115 +:1013D000811109C00E94050D0E94620D8091E200FA +:1013E00084608093E20008951092F30108950895B7 +:1013F0000C94F9200E94A91B0E94FF200E94081053 +:101400000C94050942E061EC81E00E947F0C42E00F +:1014100061EC82E00E947F0C42E061EC83E00E947C +:101420007F0C42E161EC84E00C947F0C8091F6012A +:10143000833009F455C030F4813071F0823009F402 +:101440008EC008958A3009F47AC08B3009F460C0E8 +:10145000893009F09CC020C08091F501813A09F0E3 +:1014600096C08091E800877F8093E8008091F90121 +:101470009091FA01892B21F460E18FE591E003C09E +:1014800060E080E090E070E00E94BB0B8091E8009B +:101490008B778093E80008958091F501813209F0FF +:1014A00076C08091F9019091FA01009719F00397A5 +:1014B00009F06DC08091E800877F8093E8008091FB +:1014C000E80082FD05C08091F4018111F8CF5FC072 +:1014D0008091F10080936F018091E8008B7753C079 +:1014E0008091F501813A09F052C08091F901909103 +:1014F000FA01892B09F04BC08091E800877F809327 +:10150000E8008091E80080FFFCCF80910C0136C09C +:101510008091F5018132D9F58091F9019091FA011C +:10152000892BA9F58091E800877F8093E8000E94CD +:10153000B40C8091F70180930C010C94A11480915C +:10154000F501813221F58091E800877F8093E800E2 +:101550000E94B40C8091F8018093700108958091ED +:10156000F501813AA1F48091E800877F8093E8003B +:101570008091E80080FFFCCF809170018093F100A2 +:101580008091E8008E778093E8000C94B40C089565 +:1015900084B7877F84BF88E10FB6F894809360009A +:1015A000109260000FBE80E880936100109261008D +:1015B0000E9457100E94050D0E94620D8091E2006A +:1015C00084608093E20078940E94E80F0E94591092 +:1015D00082E091E00E9403100E94E7208091F401D4 +:1015E000853069F40E94711B8091F2018823B1F368 +:1015F0000E949B1B882391F30E945A0BEFCF0E94FD +:101600005F10ECCF292F332723303105C9F064F464 +:101610002130310581F02230310509F043C08DE6DB +:1016200090E02EE832E042C021323105F1F0223262 +:10163000310541F137C082E190E02BEF32E036C056 +:1016400099278130910541F08230910541F0892B35 +:1016500049F5EAE8F2E005C0E2E7F2E002C0EAE5B7 +:10166000F2E0849190E09F0121C06430D8F4E62F2D +:10167000F0E0EE0FFF1FEE5DFE4F2081318189E02B +:1016800090E014C0643070F470E0FB01EE0FFF1FB7 +:10169000E65EFE4F20813181FB01EA5EFE4F8081D4 +:1016A00090E004C080E090E020E030E0FA01318377 +:1016B0002083089580E189BD82E189BD09B400FEDF +:1016C000FDCF8091D8008F7D8093D8008091E0007D +:1016D00082608093E0008091E00081FDFCCF08955E +:1016E000CF92DF92EF92FF920F931F93CF93DF93EE +:1016F000EC018B016A010E94D30C811133C0C1142B +:10170000D10439F0F60180819181081B190BC80FB3 +:10171000D91FE12CF12C0115110519F18091E80078 +:1017200085FD16C08091E8008E778093E800C11493 +:10173000D10449F0F60180819181E80EF91EF18211 +:10174000E08285E00FC00E94D30C882321F30AC0F9 +:1017500089918093F10001501109FFEFEF1AFF0A00 +:10176000DACF80E0DF91CF911F910F91FF90EF9042 +:10177000DF90CF9008952091FB013091FC01261756 +:10178000370748F06115710539F42091E8002E778C +:101790002093E80001C0B90140E061157105A9F18D +:1017A0002091F401222309F443C0253009F442C0FA +:1017B0002091E80023FD40C02091E80022FD32C0C6 +:1017C0002091E80020FFE9CF4091F3002091F20042 +:1017D00030E0342BFC01CF016115710559F0283040 +:1017E000310540F481918093F100615071092F5FC0 +:1017F0003F4FF1CF41E02830310509F040E0209122 +:10180000E8002E772093E800C8CF4111C9CF0AC065 +:101810008091F401882361F0853061F08091E800C7 +:1018200083FD0AC08091E80082FFF2CF80E0089536 +:1018300082E0089583E0089581E008952091FB01FE +:101840003091FC012617370748F06115710539F40E +:101850002091E8002E772093E80001C0B901FC0137 +:1018600020E06115710591F18091F401882309F45C +:1018700040C0853009F43FC08091E80083FD3DC041 +:101880008091E80082FD2FC08091E80080FFE9CFC1 +:101890002091F3008091F20090E0922B6115710588 +:1018A00059F08830910540F424912093F10031964D +:1018B000615071090196F2CF21E0089709F020E00C +:1018C0008091E8008E778093E800CBCF2111CCCFB8 +:1018D0000AC08091F401882361F0853061F0809125 +:1018E000E80083FD0AC08091E80082FFF2CF80E02B +:1018F000089582E0089583E0089581E00895982F87 +:10190000973058F59093E900981739F07091EC00F2 +:101910002091ED005091F00003C0242F762F50E06D +:1019200021FF19C03091EB003E7F3093EB003091E6 +:10193000ED003D7F3093ED003091EB00316030934E +:10194000EB007093EC002093ED005093F000209199 +:10195000EE0027FF07C09F5FD3CF8F708093E90011 +:1019600081E0089580E008958091F50187FF11C01E +:101970008091E80082FD05C08091F4018111F8CFCB +:1019800011C08091E8008B770BC08091F40188230F +:1019900049F08091E80080FFF8CF8091E8008E77D1 +:1019A0008093E80008952091E4003091E50095E6E9 +:1019B0004091EC00842F817040FF22C08091E800AC +:1019C00080FD1CC08091F401882391F0853091F056 +:1019D0008091EB0085FD10C04091E4005091E5003E +:1019E0004217530729F39A01915011F784E00895A3 +:1019F00082E0089583E0089581E0089580E00895ED +:101A00004091E80042FFDECF08950E94730D0E94CE +:101A10007B0DE0EEF0E0808181608083E8EDF0E016 +:101A200080818F77808319BCA7EDB0E08C918E7F89 +:101A30008C9380818F7E80831092F30108950F93A1 +:101A40001F93CF93DF930E94730D0E947B0DC8ED0F +:101A5000D0E088818F7788838881806888838881B7 +:101A60008F7D888319BC1092F4011092F0011092BE +:101A7000F2011092F10100EE10E0F80180818B7FFD +:101A8000808388818160888342E060E080E00E94FA +:101A90007F0CE1EEF0E080818E7F8083E2EEF0E06B +:101AA000808181608083808188608083F80180816B +:101AB0008E7F8083888180618883DF91CF911F91A1 +:101AC0000F910895E8EDF0E080818F7E8083E7ED4F +:101AD000F0E080818160808384E082BF81E0809338 +:101AE000F3010C941F0DE8EDF0E080818E7F808380 +:101AF0001092E20008951092DA001092E100089529 +:101B00001F920F920FB60F9211242F933F934F9372 +:101B10005F936F937F938F939F93AF93BF93EF9355 +:101B2000FF938091E10082FF0BC08091E20082FF71 +:101B300007C08091E1008B7F8093E1000E94E70F56 +:101B40008091DA0080FF1FC08091D80080FF1BC009 +:101B50008091DA008E7F8093DA008091D90080FF37 +:101B60000DC080E189BD82E189BD09B400FEFDCFD1 +:101B700081E08093F4010E94E60905C019BC10922F +:101B8000F4010E94F4098091E10080FF19C0809166 +:101B9000E20080FF15C08091E2008E7F8093E2001A +:101BA0008091E20080618093E2008091D8008062A1 +:101BB0008093D80019BC85E08093F4010E94F80955 +:101BC0008091E10084FF30C08091E20084FF2CC04E +:101BD00080E189BD82E189BD09B400FEFDCF80911D +:101BE000D8008F7D8093D8008091E1008F7E809314 +:101BF000E1008091E2008F7E8093E2008091E2001C +:101C000081608093E2008091F001882311F084E0EC +:101C100007C08091E30087FD02C081E001C083E03E +:101C20008093F4010E94FA098091E10083FF29C0AA +:101C30008091E20083FF25C08091E100877F80933F +:101C4000E10082E08093F4011092F0018091E100C4 +:101C50008E7F8093E1008091E2008E7F8093E2008E +:101C60008091E20080618093E20042E060E080E0E9 +:101C70000E947F0C8091F00088608093F0000E94A9 +:101C8000F709FF91EF91BF91AF919F918F917F9154 +:101C90006F915F914F913F912F910F900FBE0F90D9 +:101CA0001F9018951F920F920FB60F9211242F9329 +:101CB0003F934F935F936F937F938F939F93AF93D4 +:101CC000BF93CF93DF93EF93FF93C091E900CF7061 +:101CD0008091EC00D82FD17080FDD0E81092E900FF +:101CE0008091F000877F8093F00078940E94960E98 +:101CF0001092E9008091F00088608093F000CD2B75 +:101D0000CF70C093E900FF91EF91DF91CF91BF9128 +:101D1000AF919F918F917F916F915F914F913F9183 +:101D20002F910F900FBE0F901F9018951F93CF9378 +:101D3000DF93CDB7DEB7AA970FB6F894DEBF0FBE1C +:101D4000CDBFE5EFF1E088E08E0F9091F100919327 +:101D50008E13FBCF0E94160A8091E80083FF1FC1FB +:101D60008091F5019091F601492F50E04A305105DC +:101D700008F015C1FA01EA5AFF4F0C94812280380D +:101D800081F0823809F00BC18091F9018F70809346 +:101D9000E9008091EB0085FB882780F91092E9002B +:101DA00006C08091F1019091F201911182609091B1 +:101DB000E800977F9093E8008093F1001092F10083 +:101DC000C8C0282F2D7F09F0EAC0882319F082307F +:101DD00061F0E5C08091F701813009F0E0C09330F7 +:101DE00009F080E08093F2012BC08091F70181110E +:101DF00027C08091F9018F7009F4D1C08093E90068 +:101E00002091EB0020FF1CC0933021F48091EB0067 +:101E1000806214C09091EB0090619093EB0021E000 +:101E200030E0A90102C0440F551F8A95E2F74093A4 +:101E3000EA001092EA008091EB0088608093EB004A +:101E40001092E9008091E800877F86C08111A7C0C9 +:101E50001091F7011F778091E3008078812B8093A8 +:101E6000E3008091E800877F8093E8000E94B40C33 +:101E70008091E80080FFFCCF8091E3008068809330 +:101E8000E300111102C082E001C083E08093F401FD +:101E900086C08058823008F082C08091F70190910E +:101EA000F8018C3D53E0950779F583E08A838AE257 +:101EB00089834FB7F894DE01139620E03EE051E2AB +:101EC000E32FF0E050935700E49120FF03C0E29528 +:101ED000EF703F5FEF708E2F90E0EA3010F0C79602 +:101EE00001C0C0968D939D932F5F243149F74FBF5A +:101EF0008091E800877F8093E8006AE270E0CE017D +:101F000001960E94BB0B14C0AE014F5F5F4F609102 +:101F1000F9010E94020BBC01009709F440C09091A6 +:101F2000E800977F9093E80089819A810E941E0CB7 +:101F30008091E8008B778093E80031C0803879F594 +:101F40008091E800877F8093E8008091F001809382 +:101F5000F1008091E8008E778093E8000E94B40C35 +:101F60001EC081111CC09091F7019230C0F4809185 +:101F7000E800877F8093E8009093F0010E94B40C02 +:101F80008091F001811106C08091E30087FD02C0BD +:101F900081E001C084E08093F4010E94020A8091F4 +:101FA000E80083FF0AC08091E800877F8093E80003 +:101FB0008091EB0080628093EB00AA960FB6F894B4 +:101FC000DEBF0FBECDBFDF91CF911F910895089561 +:101FD000CF938091F4018823A1F0C091E900CF70E4 +:101FE0009091EC00892F817090FD80E8C82B1092B1 +:101FF000E9008091E80083FD0E94960ECF70C093A7 +:10200000E900CF910895909376018093750108952A +:10201000E0917501F0917601309721F00190F08107 +:10202000E02D099480E00895E0917501F09176012A +:10203000309721F00280F381E02D09940895E0911A +:102040007501F0917601309721F00480F581E02D43 +:1020500009940895209173013091740182179307B8 +:1020600071F09093740180937301E0917501F09188 +:102070007601309721F00680F781E02D09940895CC +:1020800020917101309172018217930771F0909342 +:10209000720180937101E0917501F09176013097A2 +:1020A00021F00084F185E02D0994089508950C94A1 +:1020B00056100E94AF1B0E94E5020C94351C9F92A3 +:1020C000AF92BF92CF92DF92EF92FF920F931F9346 +:1020D000CF93DF9300D000D000D0CDB7DEB70E9401 +:1020E0000C030DE010E0AA24A394B12C902E802FB5 +:1020F0000E94FA03980128583E4F6901F901F080C7 +:10210000F826A1F40150110988F78FEF89838A839B +:102110001B820E94B81B8160782F9D838C8349812C +:102120005A816B818D810E94F6102FC09091DB0146 +:1021300091FF04C08E830E9400048E8125E030E070 +:10214000A501022E01C0440F0A94EAF7E42E4F21A4 +:10215000C1F029839A828E2191E009F490E09B835B +:102160000E94B81B8160782F9D838C8349815A819E +:102170006B818D810E94F610F6018081E826E08255 +:1021800004C021503109E0F6BDCF0E94031E10911A +:1021900077010E9408101817B9F00E940810809368 +:1021A000770126960FB6F894DEBF0FBECDBFDF9144 +:1021B000CF911F910F91FF90EF90DF90CF90BF9044 +:1021C000AF909F900C94050926960FB6F894DEBF49 +:1021D0000FBECDBFDF91CF911F910F91FF90EF9078 +:1021E000DF90CF90BF90AF909F900895CF93DF93F3 +:1021F000CDB7DEB72B970FB6F894DEBF0FBECDBFBD +:102200004F83588769877A878B87DE01119686E02E +:10221000FD0111928A95E9F785E0FE01379601905C +:102220000D928A95E1F749815A816B817C818D817C +:102230009E810E943F172B960FB6F894DEBF0FBE0B +:10224000CDBFDF91CF910895CF93882309F4C2C009 +:10225000C82F823859F40E94081081FDBBC089E361 +:102260000E94191A0E94E61A89E30CC0833879F497 +:102270000E94081080FDAEC083E50E94191A0E94DA +:10228000E61A83E50E945B1ACF910C94E61A843813 +:1022900059F40E94081082FD9DC087E40E94191A1B +:1022A0000E94E61A87E4EECF8CEF8C0F813A48F457 +:1022B0008C2F0E944D2081118DC08C2F0E94191AE5 +:1022C000E3CF80E28C0F883048F4C77081E001C012 +:1022D000880FCA95EAF70E949F1AD6CF8BE58C0F1C +:1022E000833078F4C53A29F0C63A31F083E890E0BB +:1022F00005C081E890E002C082E890E0CF910C94A4 +:102300002A1088E58C0F833108F064C0C83A39F18F +:10231000C93A41F1CA3A49F1CB3A51F1CC3A59F1B3 +:10232000CD3A61F1C03B69F1CE3A71F1CF3A79F122 +:10233000C13B81F1C23B89F1C33B91F1C43B99F1AF +:10234000C53BA1F1C63BA9F1C73BB1F1C83BB9F10F +:10235000C93BC1F1CA3BC9F180E090E038C082EED0 +:1023600090E035C089EE90E032C08AEE90E02FC058 +:1023700085EB90E02CC086EB90E029C087EB90E0E5 +:1023800026C08CEC90E023C08DEC90E020C083E868 +:1023900091E01DC08AE891E01AC082E991E017C07F +:1023A00084E991E014C081E292E011C083E292E0FE +:1023B0000EC084E292E00BC085E292E008C086E2A3 +:1023C00092E005C087E292E002C08AE292E0CF91FB +:1023D0000C944010CF910895882309F44BC08238A3 +:1023E00059F40E94081081FF45C089E30E94191A20 +:1023F0000E94E61A89E30CC0833871F40E94081029 +:1024000080FF38C083E50E94191A0E94E61A83E50E +:102410000E945B1A0C94E61A843859F40E94081042 +:1024200082FF28C087E40E94191A0E94E61A87E4F6 +:10243000EFCF9CEF980F913A58F390E2980F9830B5 +:1024400050F4877091E001C0990F8A95EAF7892FBF +:102450000E94A51ADFCF9BE5980F933020F480E00F +:1024600090E00C942A10885A833120F480E090E0A8 +:102470000C9440100895882321F00E949F1A0C9418 +:10248000E61A0895882321F00E94A51A0C94E61AF2 +:1024900008957F928F929F92AF92BF92CF92DF92D8 +:1024A000EF92FF920F931F93CF93DF931F92CDB7BD +:1024B000DEB77C01C62E772EFC01058102950F70D8 +:1024C000128111110E94BC1A0E94121A882379F0FD +:1024D000112369F080E28C0D883048F082E00E9480 +:1024E000FB190E94121A91E0D82ED92601C0D12CD6 +:1024F000E72DE295EF70F0E0E05AFF4F0C94812257 +:10250000872D807F072D0F70882311F00295007FA3 +:10251000112389F0002309F490C180E28C0D8830EA +:1025200020F4802F0E949F1A03C0802F0E94AF1AB0 +:102530000E94E61A82C18C2D0E94EC11002309F43E +:1025400095C180E28C0D883020F4802F0E94A51A5E +:1025500003C0802F0E94B51A0E94E61A87C1972DEA +:10256000907F872D8F70903211F08295807FCC20E4 +:1025700021F0F1E0CF16B1F01EC0112349F0002385 +:1025800009F414C1013009F011C10E94CF1A6EC1C3 +:10259000002319F0013009F469C189830E94D21A1D +:1025A00089810AC1112321F0023008F05FC1FEC009 +:1025B00001115CC101C1112321F0002309F4F6C00F +:1025C0003CC1002309F4F8C03EC1872D869586954D +:1025D000837090E0009719F0019761F047C11123D3 +:1025E00021F08C2D972D937002C080E090E00E9426 +:1025F0002A103CC1112321F08C2D972D937002C01D +:1026000080E090E00E94401031C18C2D112319F020 +:102610000E940B1D02C00E94731D0E94F81D26C15E +:10262000872D837009F052C0111120C18C2D829525 +:1026300086958770880F880F9C2D9F70892E912C0E +:10264000A12CB12C082E04C0880C991CAA1CBB1C00 +:102650000A94D2F7C4FE14C00FE010E020E030E08E +:10266000B901A80104C0440F551F661F771F8A9542 +:10267000D2F7CB01BA01609570958095909503C013 +:1026800060E070E0CB01272D26952695237030E081 +:102690002230310569F02330310589F06829792924 +:1026A0008A299B292130310571F00E948718DEC0EC +:1026B000682979298A299B290E94A318D7C00E94DA +:1026C0008718C501B4010E946B18D0C0112319F0FE +:1026D000872D817001C08695882309F4C7C08C2D91 +:1026E000829586958770880F880F9C2D9F70892E04 +:1026F000912CA12CB12C082E04C0880C991CAA1C6A +:10270000BB1C0A94D2F7C4FE14C00FE010E020E016 +:1027100030E0B901A80104C0440F551F661F771FA0 +:102720008A95D2F7CB01BA01609570958095909506 +:1027300003C060E070E0CB01272D2695269523701D +:10274000422F50E04230510569F04330510589F085 +:10275000682979298A299B294130510571F00E9405 +:10276000611984C0682979298A299B290E947D19C9 +:102770007DC00E946119C501B4010E94451976C04F +:102780008C2D90E0FC01E05EF109E531F10508F0E7 +:1027900050C0E059FF4F0C9481220C2D0F70872DF3 +:1027A0008F71112331F00E94DE18802F0E943B129E +:1027B0005DC00E94FF18802F0E94421257C0112353 +:1027C00039F0011153C0872D8F710E9424194EC01A +:1027D000023008F04BC0F7CF112339F0872D8F71ED +:1027E0000E94DE1843C01123C9F3872D8F710E9408 +:1027F000FF183CC0112329F0872D8F710E94C91842 +:1028000035C00E94BF1832C0112351F0172D1F711F +:10281000812F0E94DE1863E0812F0E94F21926C0EA +:1028200081E00E94FB19023008F182E00E94FB194E +:102830001DC0112331F0002389F28C2D0E94241138 +:1028400015C0002391F28C2D0E94EC110FC0472D72 +:102850004F706C2DC7010E94D6040E94E31706C07A +:10286000472D4F706C2DC7010E947408DD20F9F0D0 +:102870000E94EE1980FD1BC0F70112820E94E81928 +:102880000E94DE18C7010E9466140E94E8190F908A +:10289000DF91CF911F910F91FF90EF90DF90CF903C +:1028A000BF90AF909F908F907F900C94FF180F90E7 +:1028B000DF91CF911F910F91FF90EF90DF90CF901C +:1028C000BF90AF909F908F907F9008950F931F932C +:1028D000CF93DF93EC01888199812B813C81232B5D +:1028E000B9F09F3F11F48F3F99F0CE010E9405058A +:1028F000882371F0688179818A810E94E4198C01B2 +:102900000E9499190E946018B801CE010E944912D4 +:10291000DF91CF911F910F9108950E94BC1A0E94E0 +:10292000CC1A0E94911A0E94E61A0E94A91E0E94C7 +:10293000F81D80E090E00E942A1080E090E00C9466 +:1029400040100E94AC1A0C948D140E94D919292FA2 +:1029500022952F7030E02C3031054CF42A303105AF +:102960006CF42250310922303105A8F407C02C3014 +:10297000310569F02F30310551F00DC0803F69F00D +:1029800018F4803E40F409C0843F29F406C093FB4C +:10299000882780F9089580E0089581E00895CF9315 +:1029A000DF9300D000D01F92CDB7DEB70F900F900D +:1029B0000F900F900F90DF91CF910895CF93DF93F9 +:1029C00000D000D000D0CDB7DEB726960FB6F89471 +:1029D000DEBF0FBECDBFDF91CF9108951F93CF9380 +:1029E000DF93C091860116E080918701C81799F0A6 +:1029F000D0E01C9FF0011D9FF00D1124E857FE4F01 +:102A00004081518162817381848195810E94DE14AD +:102A10002196C770E9CFDF91CF911F910895409122 +:102A2000B8015091B9016091BA017091BB018091D8 +:102A3000BC019091BD010C94DE148091BD01829582 +:102A40008F7009F054C08091BA01882309F44FC0F7 +:102A500080918601A09187016091B8017091B901C0 +:102A60004091BB015091BC01B6E08A1709F43FC008 +:102A700090E041155105C1F17F3F11F46F3FA1F185 +:102A8000B89FF001B99FF00D1124E857FE4F218146 +:102A900072132AC02081621327C02281211124C011 +:102AA000238134812417350710F421503109241B68 +:102AB000350B283C3105C0F42091BD012F702061F9 +:102AC0002093BD0126E0289FF001299FF00D1124DD +:102AD000E357FE4F80818F708061808388EB91E0A7 +:102AE0000E9466140C94EE1401968770BECF089570 +:102AF000CF92DF92EF92FF920F931F93CF93DF93CA +:102B0000CDB7DEB762970FB6F894DEBF0FBECDBF6C +:102B10008C0185E0F801DE011D9601900D928A95E9 +:102B2000E1F7D8014C9111965C91119712966C9136 +:102B300012971396CD90DC9014973091B801709154 +:102B4000B9018091BB019091BC01009709F46BC160 +:102B50007F3F19F43F3F09F466C1E090BA01EE20CF +:102B600009F4C0C02091BD01C816D90628F0F601AD +:102B7000E81BF90BCF0104C0809590958C0D9D1D2D +:102B8000FF24F394883C910578F0F12C207F09F024 +:102B9000C6C07C2DD98AC88A89890E94CF1488EB47 +:102BA00091E00E946614B1C0822F807F09F046C078 +:102BB000751314C0341312C0611110C02F7020613E +:102BC0002093BD010E940F1588EB91E00E946614CE +:102BD0008091BD01D80115968C932EC0CD2819F196 +:102BE0005F3F11F44F3FF9F0F62E61111CC0809148 +:102BF00086012091870136E0821709F45AC090E0DF +:102C0000389FF001399FF00D1124E857FE4F718174 +:102C1000571306C07081471303C07281711103C03E +:102C200001968770E9CFF62E662309F418C18091CA +:102C3000BD0181608093BD01F12C11C1751308C0E5 +:102C4000341306C0611104C08091BD01D801C3C016 +:102C50004D875E878D859E856A8B0E94A5146A8943 +:102C60008823E1F16623D1F12091BD01822F829565 +:102C70008F7090E0029774F08091B8019091B90143 +:102C800098878F831986DB86CA862C87CE010796A4 +:102C90000E94661486E0F801A8EBB1E001900D9265 +:102CA0008A95E1F70E941D150E940F15FF24F394E9 +:102CB000D6C04D875E878D859E850E94D919292FA4 +:102CC00022952F7030E0223031050CF0BCC09F708F +:102CD00009F0B6C0805E883008F4C1C0C8010E9407 +:102CE0006614E4CFC816D90608F453C0F601E81BF1 +:102CF000F90BCF01883C910508F450C0F12C7C2DD4 +:102D0000D98AC88A89890E94CF14E8EBF1E086E06D +:102D1000DF011D928A95E9F70E940F15A0C0751377 +:102D200014C0341312C0611110C08091BD01F801AC +:102D30008583C8010E94661486E0E8EBF1E0DF01BC +:102D40001D928A95E9F7FE2C8AC04D875E878D8596 +:102D50009E856A8B0E94A5146A89882309F4BECFD8 +:102D6000662309F4BBCF2091BD01822F82958F701D +:102D700090E002970CF48ECF8091B8019091B90148 +:102D80009A8389831B82DD82CC822E83CE010196B9 +:102D90007FCF809590958C0D9D1DACCFF62E662330 +:102DA00009F49CCF75132EC034132CC02091BD01A3 +:102DB00020FD1FC0822F82958F70D9F0D801159603 +:102DC0002C9315978F3049F08F5F982F9295907FB5 +:102DD000822F8F70892B15968C93C8010E946614E0 +:102DE00086E0F801A8EBB1E001900D928A95E1F739 +:102DF00093CF86E0F801A8EBB1E001900D928A959F +:102E0000E1F72DC04D875E878D859E850E94A514B4 +:102E1000811140CF8091BD0181608093BD01C801C7 +:102E20000E9466141CC0662309F458CF4D875E8744 +:102E30008D859E850E94A514882309F44FCF2ACF43 +:102E4000811148CF0CC0243031050CF047CF9F7062 +:102E500009F440CFF8019581907F09F03BCF8F2D89 +:102E600062960FB6F894DEBF0FBECDBFDF91CF9153 +:102E70001F910F91FF90EF90DF90CF9008951F93D7 +:102E8000CF93DF93CDB7DEB72C970FB6F894DEBFA4 +:102E90000FBECDBF4F83588769877A878B879C8702 +:102EA000CE0107960E947815882369F08F81988556 +:102EB0002A853B85232BF1F19F3F09F063C08F3FAB +:102EC00009F060C037C086E0FE013796DE0111963A +:102ED00001900D928A95E1F76F817885EA85FB85EF +:102EE000309741F17F3F11F46F3F21F1209187012D +:102EF00030E0C9010196877099274091860150E022 +:102F00008417950709F447C069837A83FD83EC83AE +:102F100096E0929FD001939FB00D1124A857BE4F09 +:102F2000FE01319601900D929A95E1F78093870109 +:102F30000E94EE1416E08091860190918701891716 +:102F4000C1F1189FC001112488579E4F0E94781527 +:102F5000882379F1E09186011E9FF0011124E85742 +:102F6000FE4F4081518162817381848195810E94ED +:102F7000DE148091860190E00196877099278093F6 +:102F80008601D9CF4F81588569857A858B859C8547 +:102F90000E94DE14CFCF0E94A114109287011092DC +:102FA0008601E8EBF1E086E0DF011D928A95E9F702 +:102FB000C1CF2C960FB6F894DEBF0FBECDBFDF9108 +:102FC000CF911F910895EF92FF920F931F93CF938C +:102FD000DF938C01009709F46CC0F12CEE24E3948C +:102FE000E8012196F8018491843740F4843008F098 +:102FF00051C0813081F0823019F15BC0853709F40E +:1030000044C0A8F19CE7980F903708F052C08F7722 +:103010000E94EC1141C00E5F1F4FFE01C49180E27F +:103020008C0F883048F4C7708E2D01C0880FCA9568 +:10303000EAF70E94BF1A14C08C2F0E9424112DC0E1 +:103040000E5F1F4FFE01C49180E28C0F883058F450 +:10305000C7708E2D01C0880FCA95EAF70E94C51A65 +:103060000E94E61A1AC08C2F0E94EC1116C00E5F47 +:103070001F4FFE01C491CC2381F08FE99FE001979F +:10308000F1F700C00000C150F6CF0E5F1F4FFE01E8 +:10309000F49003C00E9424118E018F2D882309F41F +:1030A0009FCFEFE9FFE03197F1F700C000008150BA +:1030B000F5CFDF91CF911F910F91FF90EF90089581 +:1030C00008956093C2017093C3018093C4019093EB +:1030D000C5010C948D140F931F930091C2011091A0 +:1030E000C3012091C4013091C501DC01CB01802BCB +:1030F000912BA22BB32B8093C2019093C301A09379 +:10310000C401B093C5011F910F910C948D140F93BE +:103110001F930091C2011091C3012091C40130910D +:10312000C501DC01CB0180239123A223B32380932B +:10313000C2019093C301A093C401B093C5011F9134 +:103140000F910C948D140F931F930091C201109155 +:10315000C3012091C4013091C501DC01CB0180275E +:103160009127A227B3278093C2019093C301A09314 +:10317000C401B093C5011F910F910C948D1410924E +:10318000BE011092BF011092C0011092C1010C94B7 +:103190008D1441E050E060E070E004C0440F551F22 +:1031A000661F771F8A95D2F74093BE015093BF01E7 +:1031B0006093C0017093C1010C948D1441E050E004 +:1031C00060E070E004C0440F551F661F771F8A95AA +:1031D000D2F78091BE019091BF01A091C001B09142 +:1031E000C101482B592B6A2B7B2B4093BE01509376 +:1031F000BF016093C0017093C1010C948D1441E034 +:1032000050E060E070E004C0440F551F661F771F58 +:103210008A95D2F740955095609570958091BE0142 +:103220009091BF01A091C001B091C10148235923E1 +:103230006A237B234093BE015093BF016093C0017A +:103240007093C1010C948D1441E050E060E070E097 +:1032500004C0440F551F661F771F8A95D2F78091CF +:10326000BE019091BF01A091C001B091C10148275A +:1032700059276A277B274093BE015093BF01609373 +:10328000C0017093C1010C948D140F931F93009192 +:10329000BE011091BF012091C0013091C101DC013C +:1032A000CB01802B912BA22BB32B8093BE0190934B +:1032B000BF01A093C001B093C1011F910F910C9465 +:1032C0008D140F931F930091BE011091BF012091A7 +:1032D000C0013091C101DC01CB0180239123A223E5 +:1032E000B3238093BE019093BF01A093C001B0931C +:1032F000C1011F910F910C948D140F931F93009196 +:10330000BE011091BF012091C0013091C101DC01CB +:10331000CB0180279127A227B3278093BE019093EA +:10332000BF01A093C001B093C1011F910F910C94F4 +:103330008D140895CF92DF92EF92FF920F931F9317 +:10334000CF93DF938C01C090C201D090C301E09075 +:10335000C401F090C5018091BE019091BF01A09180 +:10336000C001B091C101C82AD92AEA2AFB2ACFE1BB +:10337000D0E0D701C6010C2E04C0B695A79597954D +:1033800087950A94D2F780FF06C0B8018C2F0E945F +:10339000F306019721F4219760F780E001C08C2F9C +:1033A000DF91CF911F910F91FF90EF90DF90CF9021 +:1033B0000895CF93DF93EC010E949A19BE010E94F9 +:1033C000F306DF91CF910895CB010E94D91908959A +:1033D0008091C60185958595859508958091C60152 +:1033E0008770089598E0899F90011124262B2093DF +:1033F000C6010C94DE182091C6018095822380932B +:10340000C601982F977069F430E0482F552747FD83 +:1034100050952417350729F08595859585950C9449 +:10342000FF1808959091C601977081E009F480E03B +:10343000089590910C01992321F090910D01911123 +:1034400009C020910E0130910F01F90132969FEFD2 +:1034500040E01FC0982F9695969596959F3050F511 +:10346000E0910E01F0910F01E90FF11D877021E04D +:1034700030E0A90102C0440F551F8A95E2F7CA0146 +:103480009181892B818308959F3F39F04F5F4E30A2 +:1034900041F051915813F8CF0DC05111F7CF942F2F +:1034A000F5CF9F3F39F0F901E90FF11D97FDFA952E +:1034B00082830895089590910C01992321F09091B1 +:1034C0000D01911109C020910E0130910F01F901F8 +:1034D0003296205F3F4F1FC0982F969596959695F0 +:1034E0009F30F0F4E0910E01F0910F01E90FF11D12 +:1034F000877021E030E0A90102C0440F551F8A9572 +:10350000E2F7CA01809591818923818308953196DC +:10351000E217F30729F090819813F9CF1082F7CFC3 +:10352000089581E090E0E0910E01F0910F01E80F25 +:10353000F91F1082019680319105A9F708959091A5 +:10354000DA01892B8093DA01089580959091DA0150 +:1035500089238093DA0108951092DA0108959091F9 +:10356000D901892B8093D901089580959091D90133 +:1035700089238093D90108951092D90108959091DB +:10358000D801892B8093D801089580959091D80116 +:1035900089238093D80108951092D80108958093CB +:1035A000C70108951092C701089580910E0190916E +:1035B0000F01FC0131969C01205F3F4F80E091910B +:1035C00091118F5FE217F307D1F70895E0910E0193 +:1035D000F0910F018091DA018083E0910E01F0916A +:1035E0000F0190818091D901892B8083E0910E0198 +:1035F000F0910F0190818091D801892B8083809177 +:10360000C701882361F0E0910E01F0910F019081D4 +:10361000892B80830E94D51A81111092C701809155 +:103620000E0190910F010C94141020E0009739F0D6 +:10363000AC0141505109842395232F5FF7CF822F8E +:103640000895CF92DF92EF92FF926C01EE24FF2457 +:10365000C114D104E104F10421F0C701B60120E155 +:1036600001C020E0C72ED82EE92EFF24C114D104BA +:10367000E104F10419F0285FC701B6016B017C0178 +:1036800054E0F694E794D794C7945A95D1F7C114AF +:10369000D104E104F10419F02C5FC701B6016B01FC +:1036A0007C0142E0F694E794D794C7944A95D1F709 +:1036B000C114D104E104F10419F02E5FC701B60171 +:1036C000DC01CB01B695A79597958795892B8A2B19 +:1036D0008B2B09F02F5F822FFF90EF90DF90CF9020 +:1036E00008958091F401843021F11092DC0120E4EE +:1036F00088E190E00FB6F894A895809360000FBE23 +:103700002093600080E00E94050983B7817F846078 +:1037100083BF83B7816083BF7894889583B78E7F9A +:1037200083BF88E10FB6F894809360001092600028 +:103730000FBE089508950E94F9020E940C030E9492 +:103740009A1B0E94010491E0811101C090E0892F31 +:1037500008950E94A1140E9408100C94050982E0AB +:1037600084BD93E095BD9AEF97BD80936E00089558 +:103770002FB7F8948091DD019091DE01A091DF01D7 +:10378000B091E0012FBF0895CF92DF92EF92FF92A8 +:103790000F931F932FB7F8944091DD015091DE01F4 +:1037A0006091DF017091E0012FBF6A017B01EE247F +:1037B000FF248C0120E030E0C016D106E206F306BB +:1037C00010F4415051099A01281B390BC9011F916E +:1037D0000F91FF90EF90DF90CF9008951F920F927E +:1037E0000FB60F9211248F939F93AF93BF93809145 +:1037F000DD019091DE01A091DF01B091E001019621 +:10380000A11DB11D8093DD019093DE01A093DF0126 +:10381000B093E001BF91AF919F918F910F900FBE38 +:103820000F901F9018950E94050DF8942FEF87EACE +:1038300091E6215080409040E1F700C0000087E011 +:1038400090EBDC018093FD019093FE01A093FF01BA +:10385000B09300029CE088E10FB6F894A89580939D +:1038600060000FBE90936000FFCF0E946D1C81111D +:1038700002C00E94531C0E94781C8093DB010E94AE +:10388000801C90E09093EF018093EE0187FB8827E6 +:1038900080F980930D010E947C1C682F70E080E00D +:1038A00090E00C9461186DEE7EEF80E090E00E9455 +:1038B000BB2260E082E090E00E94A92260E083E009 +:1038C00090E00E94A92260E084E090E00E94A9229A +:1038D00060E085E090E00C94A92280E090E00E94F6 +:1038E000A32221E08D3E9E4F09F020E0822F089513 +:1038F00082E090E00C949B2283E090E00C949B2269 +:1039000084E090E00C949B22682F84E090E00C947B +:10391000A9228091E30180FF0BC06091130185E033 +:10392000689FB001112475956795759567952BC0B3 +:1039300081FF09C06091130185E0689FB0011124E7 +:103940007595679520C082FF07C06091130185E0DF +:10395000689FB001112417C09091E4019923D1F020 +:1039600060911201961788F72091130185E0289F36 +:1039700090011124929FA001939F500D112470E09B +:10398000CA010E946D226038710540F4611571050D +:1039900039F002C065E070E0862F08958FE7089542 +:1039A00081E008958091E30180FF08C060911101DA +:1039B00070E0759567957595679521C081FF06C084 +:1039C0006091110170E07595679519C082FF04C080 +:1039D0006091110170E010C09091E4019923C1F051 +:1039E000609110019617A0F780911101899FC00185 +:1039F000112470E00E946D226038710528F4611571 +:103A0000710521F0862F08958FE7089581E00895CC +:103A100061E070E0F4CF803F21F40E94891C819521 +:103A200004C0813F29F40E94891C8093E701089516 +:103A3000823F21F40E94891C819504C0833F29F4B0 +:103A40000E94891C8093E6010895893F19F40E9421 +:103A5000D21C05C08A3F31F40E94D21C819580930C +:103A6000E80108958B3F21F40E94D21C819504C087 +:103A70008C3F29F40E94D21C8093E9010895843F71 +:103A800021F48091E501816017C0853F21F4809188 +:103A9000E501826011C0863F21F48091E5018460D8 +:103AA0000BC0873F21F48091E501886005C0883F05 +:103AB00031F48091E50180618093E50108958D3FA7 +:103AC00021F48091E30181600BC08E3F21F480914D +:103AD000E301826005C08F3F29F48091E301846097 +:103AE0008093E3010895803F39F48091E70187FFD7 +:103AF0006CC01092E70169C0813F29F48091E70111 +:103B00001816BCF362C09091E601823F29F497FF3A +:103B10005CC01092E60159C0833F19F41916CCF32A +:103B200054C0893F41F48091E80118160CF04DC053 +:103B30001092E8014AC08A3F29F48091E80187FF8A +:103B400044C0F6CF8B3F39F48091E90187FF3DC037 +:103B50001092E9013AC08C3F29F48091E9011816CE +:103B6000BCF333C0843F21F48091E5018E7F17C000 +:103B7000853F21F48091E5018D7F11C0863F21F4BE +:103B80008091E5018B7F0BC0873F21F48091E50197 +:103B9000877F05C0883F31F48091E5018F7E809357 +:103BA000E50113C08D3F21F48091E3018E7F0BC0AE +:103BB0008E3F21F48091E3018D7F05C08F3F29F472 +:103BC0008091E3018B7F8093E3018091E601811175 +:103BD0000EC08091E70181110AC08091E801811136 +:103BE00006C08091E901811102C01092E40108959C +:103BF00085EE91E00E941F100E94B81B9093E20195 +:103C00008093E10108951F93CF93DF938091E101A9 +:103C10009091E2010E94C41BAC019091E4019923B0 +:103C200021F02091140130E006C0209115018AE0B6 +:103C3000289F900111244217530708F486C08091F1 +:103C4000E601C091E701D091E8011091E9018111ED +:103C500007C0C11176C0D11174C0111172C075C0F6 +:103C60009F3F19F09F5F9093E401181624F40E947F +:103C7000891C8093E6018091E60187FF05C00E94C0 +:103C8000891C81958093E6011C1624F40E94891CEE +:103C90008093E7018091E70187FF05C00E94891C9E +:103CA00081958093E7016091E601662339F1C09127 +:103CB000E701CC2319F1772767FD7095872F972FA0 +:103CC0000E947E2123E333E343E35FE30E94E2218A +:103CD0000E944B216093E6016C2F772767FD70955A +:103CE000872F972F0E947E2123E333E343E35FE393 +:103CF0000E94E2210E944B216093E7011D1624F4EB +:103D00000E94D21C8093E8018091E80187FF05C0E2 +:103D10000E94D21C81958093E801111624F40E9420 +:103D2000D21C8093E9018091E90187FF05C00E94C0 +:103D3000D21C81958093E901DF91CF911F910C9462 +:103D4000F81D9F3F09F08ECF96CFDF91CF911F9145 +:103D50000895E5EEF1E085E0DF011D928A95E9F72F +:103D60001092E4011092E3010895833081F128F468 +:103D7000813059F08230D1F00895853009F449C07E +:103D8000B8F1863009F456C0089580911501262FA8 +:103D900030E0280F311D2F3F310524F4680F609368 +:103DA000150108958FEF80931501089580911401F6 +:103DB000262F30E0280F311D2F3F310524F4680FE6 +:103DC0006093140108958FEF8093140108958091FA +:103DD0001301262F30E0280F311D2F3F310524F429 +:103DE000680F6093130108958FEF80931301089576 +:103DF00080911201262F30E0280F311D2F3F310511 +:103E000024F4680F6093120108958FEF80931201DC +:103E1000089580911101262F30E0280F311D2F3F8A +:103E2000310524F4680F6093110108958FEF80939A +:103E30001101089580911001262F30E0280F311DC7 +:103E40002F3F310524F4680F6093100108958FEF20 +:103E5000809310010895833011F128F4813049F0E6 +:103E6000823091F00895853081F120F18630C1F1E2 +:103E7000089580911501681720F4861B8093150121 +:103E8000089510921501089580911401681720F487 +:103E9000861B809314010895109214010895809157 +:103EA0001301681720F4861B809313010895109264 +:103EB0001301089580911201681720F4861B8093E6 +:103EC000120108951092120108958091110168174E +:103ED00020F4861B8093110108951092110108951A +:103EE00080911001681720F4861B809310010895BB +:103EF0001092100108950F931F938D3109F471C032 +:103F000008F045C0803109F485C008F5873009F410 +:103F10006FC068F4863009F0ADC08091DB01817F0D +:103F20008E7F8093DB0181E08093EB01A4C08B3016 +:103F300009F49EC08E3009F09DC08091DB0182FBA8 +:103F4000222720F991E0922790FB82F96CC08631FC +:103F500009F48EC060F4813109F08CC00E94A11474 +:103F600090910D0181E0892780930D0181C08931F5 +:103F700009F47EC08B3109F07DC08091DB0181FBAB +:103F8000222720F991E0922790FB81F94CC08533DC +:103F900009F466C048F4873209F462C008F44FC0DF +:103FA000893209F45DC066C0833438F48A3308F07E +:103FB00044C0883309F45CC05DC0833409F450C048 +:103FC000883409F057C00E94A1140FEF13ED20E3CD +:103FD000015010402040E1F700C000000E94131C77 +:103FE00047C00E9405210E9408100E94050940C098 +:103FF0009091DB01892F8095817080FB90F929F0E9 +:10400000966098609093DB0136C0997F977F90937C +:10401000DB012EC08091DB0183FB222720F991E098 +:10402000922790FB83F98093DB01992309F180911A +:10403000DB0181608093DB011BC0895301C08D517E +:1040400041E050E060E070E08A019B0104C0000F95 +:10405000111F221F331F8A95D2F7C901B80104C06E +:1040600061E070E080E090E00E9461180E94A1147D +:1040700081E001C080E01F910F91089580E00895D4 +:1040800080E008958E518A3030F4E82FF0E0E65D4C +:10409000FE4F8081089580E00895CF93C82F8091CE +:1040A000EB01813079F018F08230E9F186C0E091BF +:1040B0000E01F0910F018081813169F0823209F0A7 +:1040C0007EC009C0E0910E01F0910F018081813125 +:1040D00011F0823261F48C2F0E943E20811104C0C5 +:1040E0008C2F0E947B1F1DC081E090E01AC08C2F96 +:1040F0000E944020811114C0C43179F048F4CB30C3 +:1041000079F0C03109F05FC082E08093EB0108C014 +:10411000C93219F0C83321F056C01092EB0153C0D8 +:1041200081E0817052C0C93281F110F5C43169F16A +:10413000A8F4C73009F045C08AE08093150194E1E6 +:104140009093140193E0909313018093120188E0FF +:104150008093110188E28093100133C082EE8C0FAE +:10416000863078F58C2F0E9442208093EA0129C086 +:10417000CE34E9F020F4CB3421F56AE013C0C13528 +:1041800079F0C235F1F461E00DC08091EA01882335 +:1041900019F01092EA0115C081E08093EB0115C07F +:1041A00061E006C08091EA010E94B51E0AC06AE083 +:1041B0008091EA010E942B1F04C01092EB0180E065 +:1041C00004C081E002C080E0ACCFCF910895E1E867 +:1041D000F0E08081886080838081816080838FB7F8 +:1041E000F89493E09093890090ED909388008FBFAE +:1041F0000895EFE6F0E08081826080830895EFE625 +:10420000F0E080818D7F80830895EFE6F0E090817B +:1042100082E08927808308951F920F920FB60F9234 +:1042200011242F933F934F935F936F937F938F93BB +:104230009F93AF93BF93EF93FF938091EC01909185 +:10424000ED0101969093ED018093EC01811103C083 +:1042500082E00E940509E091ED01E695E695F0E027 +:10426000E75FFB4FE4918091EC018E1303C080E087 +:104270000E940509FF91EF91BF91AF919F918F919E +:104280007F916F915F914F913F912F910F900FBE52 +:104290000F901F90189504D06894B1118DC00895A7 +:1042A00070D088F09F5790F0B92F9927B751A0F0A0 +:1042B000D1F0660F771F881F991F1AF0BA95C9F7BA +:1042C00012C0B13081F077D0B1E0089574C0672F8B +:1042D000782F8827B85F39F0B93FCCF3869577956A +:1042E0006795B395D9F73EF4909580957095619553 +:1042F0007F4F8F4F9F4F0895E89409C097FB3EF47E +:1043000090958095709561957F4F8F4F9F4F992322 +:10431000A9F0F92F96E9BB279395F69587957795A0 +:104320006795B795F111F8CFFAF4BB0F11F460FF60 +:104330001BC06F5F7F4F8F4F9F4F16C0882311F0B8 +:1043400096E911C0772321F09EE8872F762F05C0CC +:10435000662371F096E8862F70E060E02AF09A9567 +:10436000660F771F881FDAF7880F9695879597F95C +:10437000089557FD9058440F551F59F05F3F71F055 +:104380004795880F97FB991F61F09F3F79F08795BC +:104390000895121613061406551FF2CF4695F1DF45 +:1043A00008C0161617061806991FF1CF86957105D5 +:1043B000610508940895E894BB2766277727CB0109 +:1043C00097F908950BD078C069D028F06ED018F016 +:1043D000952309F05AC05FC01124EECFCADFA0F3C5 +:1043E000959FD1F3950F50E0551F629FF001729F8A +:1043F000BB27F00DB11D639FAA27F00DB11DAA1FA9 +:10440000649F6627B00DA11D661F829F2227B00DF5 +:10441000A11D621F739FB00DA11D621F839FA00D80 +:10442000611D221F749F3327A00D611D231F849FD0 +:10443000600D211D822F762F6A2F11249F57504027 +:104440008AF0E1F088234AF0EE0FFF1FBB1F661FC2 +:10445000771F881F91505040A9F79E3F510570F07B +:1044600014C0AACF5F3FECF3983EDCF386957795B6 +:104470006795B795F795E7959F5FC1F7FE2B880F76 +:10448000911D9695879597F9089597F99F6780E80C +:1044900070E060E008959FEF80EC089500240A9496 +:1044A0001616170618060906089500240A9412160F +:1044B0001306140605060895092E0394000C11F442 +:1044C000882352F0BB0F40F4BF2B11F460FF04C0EF +:1044D0006F5F7F4F8F4F9F4F089597FB072E16F406 +:1044E000009407D077FD09D00E94872207FC05D0F1 +:1044F0003EF4909581959F4F0895709561957F4FFB +:104500000895EE0FFF1F0590F491E02D0994AA1B6A +:10451000BB1B51E107C0AA1FBB1FA617B70710F0AE +:10452000A61BB70B881F991F5A95A9F780959095E0 +:10453000BC01CD010895F999FECF92BD81BDF89AD5 +:10454000992780B50895A8E1B0E042E050E00C94CE +:10455000C322262FF999FECF92BD81BDF89A01970B +:1045600000B4021639F01FBA20BD0FB6F894FA9ABB +:10457000F99A0FBE08950196272F0E94AA220C9443 +:10458000A922DC01CB01FC01F999FECF06C0F2BDE6 +:10459000E1BDF89A319600B40D9241505040B8F701 +:0645A0000895F894FFCF1E +:1045A60002200709950972093E090A090101C80195 +:1045B60028080A03140A404D3639C9037C0346030A +:1045C6000D03A002B902D202EB02010203040506A2 +:0445D60007080900C9 +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/keymap.c b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/keymap.c new file mode 100644 index 000000000..dedac694e --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/keymap.c @@ -0,0 +1,74 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 +#define QWRT 1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = KEYMAP( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F5, + KC_TAB, KC_Q, KC_W, KC_D, KC_F, KC_K, KC_BSLS, + KC_LCTL, KC_A, KC_S, KC_E, KC_T, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, + KC_F1, KC_F2, KC_F3, KC_F4, KC_LGUI, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLD, KC_MUTE, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLU, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_BSPC, CTL_T(KC_ESC), KC_LALT, + // + /*-*/ KC_F6, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + /*-*/ TG(QWRT), KC_J, KC_U, KC_R, KC_L, KC_SCLN, KC_MINS, + /*-*/ /*-*/ KC_Y, KC_N, KC_I, KC_O, KC_H, KC_ENT, + /*-*/ KC_RBRC, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + /*-*/ /*-*/ /*-*/ KC_RGUI, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, + KC_MPLY, KC_MNXT, + KC_MPRV, + KC_RALT, KC_QUOT, KC_SPC + ), + [QWRT] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_E, KC_R, KC_T, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_D, KC_F, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + // + /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TRNS, + /*-*/ /*-*/ KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_TRNS, + /*-*/ KC_TRNS, KC_N, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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[] = { +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + 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 QWRT: + ergodox_right_led_1_on(); + break; + default: + break; + } +}; diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/readme.md b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/readme.md new file mode 100644 index 000000000..0e78c130b --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/readme.md @@ -0,0 +1,34 @@ +# Roman's Layout + +There are two layers: + +- **BASE** is [Norman layout](https://normanlayout.info/). +- **QWRT** is QWERTY. + +[![keyboard-layout](romanzolotarev-norman-qwerty-osx.png)](http://www.keyboard-layout-editor.com/#/gists/3b236f450da474dc506a5a80390c3cc7) + +## Switching + +- Tap `QWRT` to toggle **QWRT**. + +## LEDs + +- Red: QWRT is on. + +## Functional Keys + +- Tap `F1` to mute microphone via [Shush](http://mizage.com/shush/). +- Tap `F2` to copy screenshot to the clipboard. +- Hold `SHIFT` and tap `F2` to save screenshot as a file. +- Tap `F3`, `F4`, `F5`, `F6` to resize a window via [Divvy](http://mizage.com/divvy/). + +## CTRL/ESC + +Both CTRL and ESC are frequently used in Vim. + +- Tap `CTRL/ESC` to send `ESC`. +- Hold `CTRL/ESC` to use as `CTRL`. + +## Activate N-rollover + +- Hold left `SHIFT` and right `SHIRT` and then tap `N`. diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.png b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.png new file mode 100644 index 000000000..34762ecb7 Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.png differ diff --git a/keyboards/ergodox_ez/keymaps/sneako/README.md b/keyboards/ergodox_ez/keymaps/sneako/README.md new file mode 100644 index 000000000..8dd110ee6 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/sneako/README.md @@ -0,0 +1,6 @@ +# ergodox_keymap + +Based on the default Ergodox EZ firmware + +Replaced the left side Bksp with a Crtl/Esc, this really helps in vim. +Removed the Ctrls from the Z and / keys. diff --git a/keyboards/ergodox_ez/keymaps/sneako/compiled.hex b/keyboards/ergodox_ez/keymaps/sneako/compiled.hex new file mode 100644 index 000000000..d32589092 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/sneako/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947A020C94BE020C94BE020C94BE02B4 +:100010000C94BE020C94BE020C94BE020C94BE0260 +:100020000C94BE020C94BE020C94620D0C94340E1F +:100030000C94BE020C94BE020C94BE020C94BE0240 +:100040000C94BE020C943E220C94BE020C94BE0290 +:100050000C94BE020C94D11B0C94BE020C94BE02F4 +:100060000C94BE020C94BE020C94BE020C94BE0210 +:100070000C94BE020C94BE020C94BE020C94BE0200 +:100080000C94BE020C94BE020C94BE020C94BE02F0 +:100090000C94BE020C94BE020C94BE020C94BE02E0 +:1000A0000C94BE020C94BE020C94BE02A10EC30EB0 +:1000B000B10FC30EB10F080F2B0FB10F800F930FAD +:1000C0006212621291129112C712E71218141814D8 +:1000D000F2121814A213A2130914181418141214EB +:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300 +:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0 +:10010000C113CE13D513DC13E6130000F0A12E00AB +:100110004C002971E100354100001E00140004006C +:100120001D0034004D001F001A0016001B00E104E2 +:100130002A00200008000700060050002C002100C3 +:100140001500090019004F004A00220017000A009C +:10015000050000006574500001540000007F00009D +:10016000E3004F000154000000770000E20023008C +:100170001C000B00110000002971240018000D0064 +:10018000100052004B0025000C000E0036005100FC +:100190002800260012000F0037002F002B00270038 +:1001A00013003342380030004E002D003100347807 +:1001B000E500C10000000100010001000100010094 +:1001C00000003A001E0220022202010001003B0052 +:1001D0001F0221022302010001003C002F0226021F +:1001E0002F00010001003D00300227023000010015 +:1001F00001003E003102350035020000010001001F +:1002000001000000010000000100010001000000E9 +:100210000100000001003F005200510024020000D4 +:1002200001004000240021001E00010001004100E7 +:10023000250022001F003700010042002600230095 +:10024000200027000100430025022E0231002E006D +:100250000100440045000100010001000000010010 +:100260000100010001000100000001000100010087 +:1002700001000100010001000100F2000100010085 +:1002800001000100F000F1000100F4000100010094 +:100290000100F3000100F500010001000100010070 +:1002A0000100000001000100010000000100000049 +:1002B0000100010001000000010000000100010038 +:1002C0000100010001000000010001000100010027 +:1002D0000100A9000100010001000100AC00AA001A +:1002E000B600010001000100AB00A8000100010000 +:1002F0000100010001000100010001000100AE0049 +:1003000001000100000016034500720067006F0045 +:1003100044006F007800200045005A0000001603DA +:100320004500720067006F0044006F0078002000F5 +:1003300045005A0000000403090409026D0004018D +:1003400000A0FA09040000010301010009211101C4 +:100350000001223F000705810308000A090401008B +:100360000103010200092111010001224D000705CE +:10037000820308000A0904020001030000000921A9 +:10038000110100012236000705830308000A090451 +:1003900003000103000000092111010001223900BE +:1003A000070584031000011201100100000008ED90 +:1003B000FE071301000102000105010906A1010564 +:1003C0000719E029E7150025019508750181020547 +:1003D000081901290595057501910295017503918B +:1003E0000105071900297715002501957875018108 +:1003F00002C005010980A101850216010026B7008F +:100400001A01002AB700751095018100C0050C097A +:1004100001A1018503160100269C021A01002A9CF5 +:1004200002751095018100C005010902A1010901B1 +:10043000A10005091901290515002501950575017A +:10044000810295017503810105010930093115818A +:10045000257F95027508810609381581257F95014C +:1004600075088106050C0A38021581257F950175EE +:10047000088106C0C005010906A101050719E02988 +:10048000E715002501950875018102950175088120 +:100490000105081901290595057501910295017558 +:1004A0000391010507190029FF150025FF95067521 +:1004B000088100C0000000000000000000000001F2 +:1004C0000204060A0F17202C3A4A5D71879DB3C7B4 +:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF +:1004E0003A2C20170F0A0604020100000000000049 +:1004F0000000000011241FBECFEFDAE0DEBFCDBF49 +:1005000004B603FE24C08091FB019091FC01A091F0 +:10051000FD01B091FE018730904BA740B04BB9F47C +:100520001092FB011092FC011092FD011092FE014D +:1005300014BE84B7877F84BF88E10FB6F894809398 +:100540006000109260000FBEE0E0FFE3099511E04B +:10055000A0E0B1E0EAE0F8E402C005900D92A43317 +:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0 +:10057000B107E1F70E94A60A0C9403240C94000032 +:100580001092B9008AE08093B800089594EA90939D +:10059000BC009091BC0097FFFCCF9091B900987F70 +:1005A000983021F0903111F081E008958093BB00E4 +:1005B00084E88093BC008091BC0087FFFCCF8091D1 +:1005C000B900887F883111F0803471F780E0089598 +:1005D00084E98093BC008091BC0084FDFCCF089529 +:1005E0008093BB0084E88093BC008091BC0087FFAF +:1005F000FCCF9091B900987F81E0983209F480E0B7 +:10060000089584E88093BC008091BC0087FFFCCFF4 +:100610008091BB00089580910101811115C080E493 +:100620000E94C6028093010181110CC082E10E94E8 +:10063000F00280930101811105C08FEF0E94F0024A +:10064000809301010E94E80284B1807F84B985B162 +:10065000807F85B98AB1837F8AB98BB1837F8BB95B +:100660003E98469808950E94C604809301010E9416 +:100670000B0380B38C7080BB81B3836F81BBA5E318 +:10068000B1E0E3E4F1E08EE08E0F11921D928E1343 +:10069000FCCF0C94B004BF92CF92DF92EF92FF9206 +:1006A0000F931F93CF93DF9380910101882379F0FB +:1006B000809134018F5F80933401811108C00E94C2 +:1006C000C60480930101811102C00E94580405E311 +:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407 +:1006E000E394F12CC730D10500F58091010181110F +:1006F00064C080E40E94C60280930101811112C08F +:1007000082E10E94F0028093010181110BC0C701B8 +:100710000C2E01C0880F0A94EAF780950E94F0021F +:10072000809301010E94E80248C0CA30A1F028F479 +:10073000C83059F0C93061F005C0CC3089F070F094 +:10074000CD3089F0209A289810C0219A29980DC0A0 +:10075000229A2A980AC0239A2B9807C0529A01C05D +:10076000539A5B9802C03E9A469890EA9A95F1F7A0 +:100770009FB1799902C082E001C080E091709D250F +:10078000982B7C9902C084E001C080E0892B7D9980 +:1007900002C038E001C030E0832B7E9902C020E126 +:1007A00001C020E0822B9FB19095991F9927991F36 +:1007B0009295990F907E892B0FC080910101811134 +:1007C00049C080E40E94C60280930101882379F128 +:1007D000B12C0E94E8028B2DF8019081981719F036 +:1007E0008083C09200010E940B0321960F5F1F4F70 +:1007F000CE30D10509F076CF80910001882361F1D8 +:10080000815080930001882339F08FE99FE00197A0 +:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F +:10082000CF01825F91919D938E13FCCF15C083E120 +:100830000E94F002809301018111CACF81E40E94DD +:10084000C602809301018111C3CF0E940103B82E1B +:10085000B094BFCF80E0C0CF0E94560481E0DF910A +:10086000CF911F910F91FF90EF90DF90CF90BF90AD +:100870000895E82FF0E0ED5BFE4F80810895089524 +:100880000F931F93CF93DF93C3E4D1E010E00C2FBD +:10089000025F899190E00E94F71A180F0C13F9CFAC +:1008A000812FDF91CF911F910F9108950C94260510 +:1008B00056985E9825982D9826982E9827982F98C8 +:1008C0008FEF90E0909389008093880090938B0045 +:1008D00080938A0090938D0080938C00259A2D9AA6 +:1008E0002FEF80E792E0215080409040E1F700C078 +:1008F0000000269A2E9A2FEF80E792E02150804048 +:100900009040E1F700C00000279A2F9A2FEF80E770 +:1009100092E0215080409040E1F700C0000025980F +:100920002D982FEF80E792E0215080409040E1F732 +:1009300000C0000026982E982FEF80E792E021500B +:1009400080409040E1F700C0000027982F9856980B +:100950005E9825982D9826982E9827982F98089578 +:1009600089EA8093800089E08093810024982C9804 +:100970003F988AB18F748AB96E98479A8BB1806B11 +:100980008BB9769A0E9458040C94250580E28093D6 +:1009900001018091510181110EC00E94C00281E0CD +:1009A000809351012FEF83ED90E3215080409040E0 +:1009B000E1F700C0000080E40E94C60280930101BC +:1009C00081112EC00E94F00280930101811128C084 +:1009D0000E94F00280930101811122C08FE30E94E6 +:1009E000F0028093010181111BC00E94E80280E4A3 +:1009F0000E94C60280930101811112C08CE00E9406 +:100A0000F0028093010181110BC00E94F0028093DB +:100A10000101811105C08FE30E94F0028093010162 +:100A20000E94E80280910101089561110BC0FC0150 +:100A30008281882321F085EE0E94061103C085EE95 +:100A40000E94CE1180E090E0089508956091BD016C +:100A50007091BE018091BF019091C0010E94031B63 +:100A600056985E9825982D9826982E9827982F9816 +:100A7000813019F0823021F00895259A2D9A089539 +:100A8000269A2E9A089581E0089581E008950C94A5 +:100A9000450508950F931F93CF93DF938C01FC01BD +:100AA000C081D181CE010E947C19BE010E94F30554 +:100AB000EC01B8010E944705882309F48DC0F801B4 +:100AC0008281882309F44AC080915D0181111FC091 +:100AD000C431F0E5DF0709F051C00E94490581E00B +:100AE00080935D010E949B1B90935C0180935B014E +:100AF0001092540110925601109255011092580113 +:100B00001092570110925A011092590165C08091BC +:100B10005B0190915C010E94A71B883C910570F4D9 +:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB +:100B3000D183C0838F5F809354014EC0C43880E559 +:100B4000D80721F0C538D04501F13AC0F8018281BB +:100B5000882341F01092520182E01EC0C438E0E5C3 +:100B6000DE0759F580915201811106C086E20E948C +:100B7000061186E20E94CE1182E01CC0C438F0E566 +:100B8000DF0741F3C538D045D9F4F80182818823C5 +:100B900031F01092530180E20E941D121DC080911D +:100BA0005301811106C087E20E94061187E20E946C +:100BB000CE1180E20E9424120FC0C538D04529F31F +:100BC00081E08093520180935301C801DF91CF915E +:100BD0001F910F910C94430580E0DF91CF911F91FD +:100BE0000F910895089596E0799FF001112494E5FE +:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F +:100C0000E25FFE4F859194910895880F991FFC0132 +:100C1000E657F040859194910895880F991FFC0143 +:100C2000E65FFE4F8591949108950F931F93CF93A4 +:100C3000DF93EC01811520E3920750F5C11580E2A6 +:100C4000D80708F0C3C0CB3BD10590F4C83AD10512 +:100C500008F06AC0C53AD10508F05BC0C430D105C0 +:100C600008F0D0C1219709F0CAC101E010E00AC222 +:100C7000CF3FD10511F008F0C5C1C03FD10508F044 +:100C8000A2C0CE01805E9109089708F4BBC1B7C12C +:100C9000C13090E5D90709F4A2C020F5C0318FE436 +:100CA000D80770F4C11590E4D90708F094C0C115B5 +:100CB00021E3D20708F0A3C1DD278E01106CE2C149 +:100CC000C115D04509F09BC10E9483148FEF94E3B6 +:100CD0002CE0815090402040E1F700C000000E94CD +:100CE000F61BD0C1C11597E5D90758F4C03121E5ED +:100CF000D20708F01CC1C43180E5D80708F475C0DC +:100D00007EC1CE0190578115904108F078C1DF7007 +:100D100073C1C53AD10509F477C1C63AD10509F0C6 +:100D200076C102E810E4AEC1C83AD10509F472C137 +:100D3000C93AD10509F471C1CA3AD10509F470C1A3 +:100D4000CB3AD10509F46FC1CC3AD10509F46EC193 +:100D5000CD3AD10509F46DC1C03BD10509F46CC190 +:100D6000CE3AD10509F46BC1CF3AD10509F46AC175 +:100D7000C13BD10509F469C1C23BD10509F468C181 +:100D8000C33BD10509F467C1C43BD10509F466C171 +:100D9000C53BD10509F465C1C63BD10509F464C161 +:100DA000C73BD10509F463C1C83BD10509F462C151 +:100DB000C93BD10509F461C1CA3BD10509F460C141 +:100DC00000E014E45FC18E0110655CC1CE019F702C +:100DD0000E940D0658C1DF708E01106A53C18091C8 +:100DE000DA0181608093DA014DC10E949B1D81115F +:100DF00002C00E94811D0E94B81D90E09093FB01EB +:100E00008093FA01C23080E5D80721F48091FA017D +:100E1000816086C0C43090E5D90721F48091FA0141 +:100E200082607EC0C63020E5D20721F48091FA01AD +:100E3000846076C0C83080E5D80719F48091FA0143 +:100E400027C0CA3090E5D90721F48091FA0180616A +:100E500067C0CC3020E5D20721F48091FA0180628E +:100E60005FC0CE3080E5D80721F48091FA0180641C +:100E700057C0C03190E5D90721F48091FA0180680C +:100E80004FC0C23120E5D20729F48091FA01846075 +:100E9000886046C0C33080E5D80721F48091FA010C +:100EA0008E7F3EC0C53090E5D90721F48091FA01CC +:100EB0008D7F36C0C73020E5D20721F48091FA013A +:100EC0008B7F2EC0C93080E5D80719F48091FA01D4 +:100ED00026C0CB3090E5D90721F48091FA018F7EAE +:100EE0001FC0CD3020E5D20721F48091FA018F7D1B +:100EF00017C0CF3080E5D80721F48091FA018F7BAD +:100F00000FC0C13190E5D90721F48091FA018F77A4 +:100F100007C0C331D04531F48091FA018B7F877FC0 +:100F20008093FA018091FA010E94BC1DABC08D2F05 +:100F300099278F70992781309105D9F49E012370EC +:100F4000332702C0880F991F2A95E2F79C688E010B +:100F500044E0000F111F4A95E1F700271370802B22 +:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA +:100F70002FC08230910531F4DC2FCC278E01016F18 +:100F8000106A80C08330910569F4CE01837099277F +:100F900001E010E002C0000F111F8A95E2F7C801BE +:100FA0009C680FC084309105B9F4CE0183709927F5 +:100FB00001E010E002C0000F111F8A95E2F7C8019E +:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029 +:100FD0008C010C2B1D2B56C08530910531F4DC2F74 +:100FE000CC278E01046F106A4DC0069709F04AC0E5 +:100FF000CF71DD27DC2FCC278E01106243C000E0CB +:1010000010E040C08E013EC001E810E43BC003E8A0 +:1010100010E438C002EE14E435C009EE14E432C026 +:101020000AEE14E42FC005EB14E42CC006EB14E424 +:1010300029C007EB14E426C00CEC14E423C00DEC2B +:1010400014E420C003E815E41DC00AE815E41AC042 +:1010500002E915E417C004E915E414C001E216E43E +:1010600011C003E216E40EC004E216E40BC005E270 +:1010700016E408C006E216E405C007E216E402C062 +:101080000AE216E4C801DF91CF911F910F910895F4 +:1010900096E0799FF001112494E5899FE00DF11D00 +:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149 +:1010B0009491803E9105E0F4803C910558F5813390 +:1010C000910509F46FC048F48932910509F463C0B1 +:1010D0008A32910509F46DC072C089339105E9F037 +:1010E00082389105D1F08533910509F44DC067C070 +:1010F000833E910581F138F4803E9105B9F0823E3E +:101100009105D9F05CC0863E910561F1873E91055D +:10111000A1F155C00E94050608952091FA0120FD15 +:1011200002C021FF4CC080EE90E049C08091FA01DE +:1011300080FFF9CF89E390E042C08091FA0182FFFD +:101140000EC08091FA0184FF03C080E090E037C0B8 +:1011500083EE90E034C08091FA0182FFF2CF82EEFC +:1011600090E02DC08091FA0183FF0BC08091FA01BD +:1011700084FDEBCF87EE90E022C08091FA0183FFDF +:10118000F5CF86EE90E01BC08091FA0185FF07C085 +:1011900089E290E014C08091FA0185FFF9CF85E3E0 +:1011A00090E00DC08091FA0186FF07C08AE290E0CE +:1011B00006C08091FA0186FFF9CF81E390E00E949A +:1011C0001506089508950C94E20880916E01089523 +:1011D000CF93DF9300D01F92CDB7DEB79C018091F3 +:1011E000F101843019F593E099833B832A8390932E +:1011F000E9008FEF9091E800815095FD06C095EDD4 +:101200009A95F1F700008111F5CF8091E80085FFF4 +:101210000DC040E050E063E070E0CE0101960E9416 +:10122000520B8091E8008E778093E8000F900F902A +:101230000F90DF91CF910895CF93DF9300D01F924D +:10124000CDB7DEB72091F101243021F522E02983CA +:101250009B838A8383E08093E9008FEF9091E8007D +:10126000815095FD06C095ED9A95F1F7000081112A +:10127000F5CF8091E80085FF0DC040E050E063E0CD +:1012800070E0CE0101960E94520B8091E8008E77AB +:101290008093E8000F900F900F90DF91CF91089509 +:1012A0002091F1012430F1F422E02093E9002FEFA6 +:1012B0003091E800215035FD06C035ED3A95F1F743 +:1012C00000002111F5CF2091E80025FF0BC040E080 +:1012D00050E065E070E00E94520B8091E8008E774C +:1012E0008093E8000895CF93DF93EC019091F10192 +:1012F000943009F046C080910C018823D9F0809188 +:101300000D018823B9F09093E9008FEF9091E800E8 +:10131000815095FD06C095E19A95F1F70000811185 +:10132000F5CF8091E80085FF2CC040E050E060E1FF +:1013300070E017C081E08093E9008FEF9091E800A2 +:10134000815095FD06C095ED9A95F1F70000811149 +:10135000F5CF8091E80085FF14C040E050E068E0E0 +:1013600070E0CE010E94520B8091E8008E7780934E +:10137000E80080E1FE01AEE5B1E001900D928A95B2 +:10138000E1F7DF91CF9108958091F001811109C0BB +:101390000E94E70C0E94440D8091E20084608093DB +:1013A000E20008951092F001089508950C942B2204 +:1013B0000E948C1B0E9431220E94EA0F0C94E308C9 +:1013C00042E061EC81E00E94610C42E061EC82E06D +:1013D0000E94610C42E061EC83E00E94610C42E1FA +:1013E00061EC84E00C94610C8091F301833009F48A +:1013F00055C030F4813071F0823009F48EC0089508 +:101400008A3009F47AC08B3009F460C0893009F061 +:101410009CC020C08091F201813A09F096C0809171 +:10142000E800877F8093E8008091F6019091F701B2 +:10143000892B21F460E18EE591E003C060E080E05B +:1014400090E070E00E949D0B8091E8008B77809384 +:10145000E80008958091F201813209F076C0809110 +:10146000F6019091F701009719F0039709F06DC00C +:101470008091E800877F8093E8008091E80082FDFA +:1014800005C08091F1018111F8CF5FC08091F1001A +:1014900080936E018091E8008B7753C08091F201B8 +:1014A000813A09F052C08091F6019091F701892BA1 +:1014B00009F04BC08091E800877F8093E80080911D +:1014C000E80080FFFCCF80910C0136C08091F201D2 +:1014D0008132D9F58091F6019091F701892BA9F518 +:1014E0008091E800877F8093E8000E94960C8091AD +:1014F000F40180930C010C9483148091F2018132E9 +:1015000021F58091E800877F8093E8000E94960C87 +:101510008091F50180936F0108958091F201813AE5 +:10152000A1F48091E800877F8093E8008091E80033 +:1015300080FFFCCF80916F018093F1008091E800E3 +:101540008E778093E8000C94960C089584B7877F7B +:1015500084BF88E10FB6F894809360001092600019 +:101560000FBE90E080E80FB6F894809361009093EE +:1015700061000FBE0E9439100E94E70C0E94440DCA +:101580008091E20084608093E20078940E94CA0F08 +:101590000E943B1082E091E00E94E50F0E94192218 +:1015A0008091F101853069F40E94531B8091EF0115 +:1015B0008823B1F30E947E1B882391F30E943C0B89 +:1015C000EFCF0E944110ECCF292F33272330310574 +:1015D000C9F064F42130310581F02230310509F081 +:1015E00043C08DE690E02AE333E042C0213231056A +:1015F000F1F02232310541F137C082E190E027EA73 +:1016000033E036C099278130910541F08230910551 +:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4 +:1016200002C0E6E0F3E0849190E09F0121C06430C5 +:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5 +:10164000318189E090E014C0643070F470E0FB01F7 +:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47 +:10166000FE4F808190E004C080E090E020E030E018 +:10167000FA0131832083089580E189BD82E189BD2B +:1016800009B400FEFDCF8091D8008F7D8093D800F3 +:101690008091E00082608093E0008091E00081FD15 +:1016A000FCCF0895CF92DF92EF92FF920F931F939A +:1016B000CF93DF93EC018B016A010E94B50C81117D +:1016C00033C0C114D10439F0F60180819181081B27 +:1016D000190BC80FD91FE12CF12C0115110519F1B7 +:1016E0008091E80085FD16C08091E8008E77809398 +:1016F000E800C114D10449F0F60180819181E80E1F +:10170000F91EF182E08285E00FC00E94B50C8823AB +:1017100021F30AC089918093F10001501109FFEF74 +:10172000EF1AFF0ADACF80E0DF91CF911F910F917E +:10173000FF90EF90DF90CF9008952091F8013091C5 +:10174000F9012617370748F06115710539F4209122 +:10175000E8002E772093E80001C0B90140E0611550 +:101760007105A9F12091F101222309F443C025302C +:1017700009F442C02091E80023FD40C02091E80018 +:1017800022FD32C02091E80020FFE9CF4091F30014 +:101790002091F20030E0342BFC01CF01611571057E +:1017A00059F02830310540F481918093F100615067 +:1017B00071092F5F3F4FF1CF41E02830310509F02B +:1017C00040E02091E8002E772093E800C8CF411137 +:1017D000C9CF0AC08091F101882361F0853061F0A2 +:1017E0008091E80083FD0AC08091E80082FFF2CF7B +:1017F00080E0089582E0089583E0089581E00895EF +:101800002091F8013091F9012617370748F061154A +:10181000710539F42091E8002E772093E80001C08B +:10182000B901FC0120E06115710591F18091F10190 +:10183000882309F440C0853009F43FC08091E80056 +:1018400083FD3DC08091E80082FD2FC08091E800BB +:1018500080FFE9CF2091F3008091F20090E0922B7D +:101860006115710559F08830910540F42491209359 +:10187000F1003196615071090196F2CF21E008978D +:1018800009F020E08091E8008E778093E800CBCFCC +:101890002111CCCF0AC08091F101882361F08530FD +:1018A00061F08091E80083FD0AC08091E80082FF2A +:1018B000F2CF80E0089582E0089583E0089581E00A +:1018C0000895982F973058F59093E900981739F0BC +:1018D0007091EC002091ED005091F00003C0242F96 +:1018E000762F50E021FF19C03091EB003E7F3093FE +:1018F000EB003091ED003D7F3093ED003091EB0037 +:1019000031603093EB007093EC002093ED00509326 +:10191000F0002091EE0027FF07C09F5FD3CF8F70AC +:101920008093E90081E0089580E008958091F201BC +:1019300087FF11C08091E80082FD05C08091F10110 +:101940008111F8CF11C08091E8008B770BC0809196 +:10195000F101882349F08091E80080FFF8CF809161 +:10196000E8008E778093E80008952091E40030919C +:10197000E50095E64091EC00842F817040FF22C085 +:101980008091E80080FD1CC08091F101882391F0D6 +:10199000853091F08091EB0085FD10C04091E4000E +:1019A0005091E5004217530729F39A01915011F71E +:1019B00084E0089582E0089583E0089581E0089529 +:1019C00080E008954091E80042FFDECF08950E9434 +:1019D000550D0E945D0DE0EEF0E080818160808316 +:1019E000E8EDF0E080818F77808319BCA7EDB0E04F +:1019F0008C918E7F8C9380818F7E80831092F001FA +:101A000008950F931F93CF93DF930E94550D0E946B +:101A10005D0DC8EDD0E088818F77888388818068EC +:101A2000888388818F7D888319BC1092F101109280 +:101A3000ED011092EF011092EE0100EE10E0F801BE +:101A400080818B7F808388818160888342E060E031 +:101A500080E00E94610CE1EEF0E080818E7F808367 +:101A6000E2EEF0E080818160808380818860808305 +:101A7000F80180818E7F8083888180618883DF91F7 +:101A8000CF911F910F910895E8EDF0E080818F7E56 +:101A90008083E7EDF0E080818160808384E082BF15 +:101AA00081E08093F0010C94010DE8EDF0E080817D +:101AB0008E7F80831092E20008951092DA001092D7 +:101AC000E10008951F920F920FB60F9211242F93E9 +:101AD0003F934F935F936F937F938F939F93AF93B6 +:101AE000BF93EF93FF938091E10082FF0BC0809141 +:101AF000E20082FF07C08091E1008B7F8093E100CC +:101B00000E94C90F8091DA0080FF1FC08091D80029 +:101B100080FF1BC08091DA008E7F8093DA00809175 +:101B2000D90080FF0DC080E189BD82E189BD09B483 +:101B300000FEFDCF81E08093F1010E94C40905C041 +:101B400019BC1092F1010E94D2098091E10080FF3E +:101B500019C08091E20080FF15C08091E2008E7F65 +:101B60008093E2008091E20080618093E2008091A6 +:101B7000D80080628093D80019BC85E08093F10181 +:101B80000E94D6098091E10084FF30C08091E2007C +:101B900084FF2CC080E189BD82E189BD09B400FECB +:101BA000FDCF8091D8008F7D8093D8008091E10097 +:101BB0008F7E8093E1008091E2008F7E8093E2002F +:101BC0008091E20081608093E2008091ED018823A2 +:101BD00011F084E007C08091E30087FD02C081E03E +:101BE00001C083E08093F1010E94D8098091E10057 +:101BF00083FF29C08091E20083FF25C08091E1002E +:101C0000877F8093E10082E08093F1011092ED01E3 +:101C10008091E1008E7F8093E1008091E2008E7FD1 +:101C20008093E2008091E20080618093E20042E0D4 +:101C300060E080E00E94610C8091F00088608093F9 +:101C4000F0000E94D509FF91EF91BF91AF919F9154 +:101C50008F917F916F915F914F913F912F910F9055 +:101C60000FBE0F901F9018951F920F920FB60F92F4 +:101C700011242F933F934F935F936F937F938F9391 +:101C80009F93AF93BF93CF93DF93EF93FF93C09155 +:101C9000E900CF708091EC00D82FD17080FDD0E8A2 +:101CA0001092E9008091F000877F8093F000789493 +:101CB0000E94780E1092E9008091F0008860809375 +:101CC000F000CD2BCF70C093E900FF91EF91DF9131 +:101CD000CF91BF91AF919F918F917F916F915F91C4 +:101CE0004F913F912F910F900FBE0F901F9018951D +:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3 +:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115 +:101D1000F10091938E13FBCF0E94F4098091E800AB +:101D200083FF1FC18091F2019091F301492F50E090 +:101D30004A30510508F015C1FA01EA5AFF4F0C94D8 +:101D4000B323803881F0823809F00BC18091F6010D +:101D50008F708093E9008091EB0085FB882780F9E4 +:101D60001092E90006C08091EE019091EF0191116F +:101D700082609091E800977F9093E8008093F10053 +:101D80001092F100C8C0282F2D7F09F0EAC08823E7 +:101D900019F0823061F0E5C08091F401813009F0E2 +:101DA000E0C0933009F080E08093EF012BC0809178 +:101DB000F401811127C08091F6018F7009F4D1C020 +:101DC0008093E9002091EB0020FF1CC0933021F4A8 +:101DD0008091EB00806214C09091EB009061909331 +:101DE000EB0021E030E0A90102C0440F551F8A95A5 +:101DF000E2F74093EA001092EA008091EB008860DD +:101E00008093EB001092E9008091E800877F86C004 +:101E10008111A7C01091F4011F778091E3008078B1 +:101E2000812B8093E3008091E800877F8093E80016 +:101E30000E94960C8091E80080FFFCCF8091E30027 +:101E400080688093E300111102C082E001C083E04A +:101E50008093F10186C08058823008F082C0809162 +:101E6000F4019091F5018C3D53E0950779F583E0FD +:101E70008A838AE289834FB7F894DE01139620E0C3 +:101E80003EE051E2E32FF0E050935700E49120FF51 +:101E900003C0E295EF703F5FEF708E2F90E0EA3065 +:101EA00010F0C79601C0C0968D939D932F5F24318B +:101EB00049F74FBF8091E800877F8093E8006AE28E +:101EC00070E0CE0101960E949D0B14C0AE014F5FE1 +:101ED0005F4F6091F6010E94E40ABC01009709F48B +:101EE00040C09091E800977F9093E80089819A81A3 +:101EF0000E94000C8091E8008B778093E80031C04D +:101F0000803879F58091E800877F8093E8008091A0 +:101F1000ED018093F1008091E8008E778093E800D6 +:101F20000E94960C1EC081111CC09091F401923049 +:101F3000C0F48091E800877F8093E8009093ED01E2 +:101F40000E94960C8091ED01811106C08091E30002 +:101F500087FD02C081E001C084E08093F1010E940E +:101F6000E0098091E80083FF0AC08091E800877F44 +:101F70008093E8008091EB0080628093EB00AA964A +:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A +:101F900008950895CF938091F1018823A1F0C09115 +:101FA000E900CF709091EC00892F817090FD80E85E +:101FB000C82B1092E9008091E80083FD0E94780E02 +:101FC000CF70C093E900CF910895909375018093ED +:101FD00074010895E0917401F0917501309721F03A +:101FE0000190F081E02D099480E00895E091740162 +:101FF000F0917501309721F00280F381E02D099472 +:102000000895E0917401F0917501309721F00480FA +:10201000F581E02D099408952091720130917301AA +:102020008217930771F09093730180937201E0918E +:102030007401F0917501309721F00680F781E02D51 +:1020400009940895209170013091710182179307CE +:1020500071F09093710180937001E0917401F0919F +:102060007501309721F00084F185E02D09940895E1 +:1020700008950C9438100E94921B0E9433030C9414 +:10208000541C9F92AF92BF92CF92DF92EF92FF9239 +:102090000F931F93CF93DF9300D000D000D0CDB724 +:1020A000DEB70E944B030DE010E0AA24A394B12CEC +:1020B000902E802F0E943904980129583E4F6901C3 +:1020C000F901F080F826A1F40150110988F78FEF8B +:1020D00089838A831B820E949B1B8160782F9D834A +:1020E0008C8349815A816B818D810E94D8102FC0C9 +:1020F0009091DA0191FF04C08E830E943F048E818B +:1021000025E030E0A501022E01C0440F0A94EAF751 +:10211000E42E4F21C1F029839A828E2191E009F4A7 +:1021200090E09B830E949B1B8160782F9D838C8312 +:1021300049815A816B818D810E94D810F60180817E +:10214000E826E08204C021503109E0F6BDCF0E94AC +:102150003B1F109176010E94EA0F1817B9F00E94F8 +:10216000EA0F8093760126960FB6F894DEBF0FBE75 +:10217000CDBFDF91CF911F910F91FF90EF90DF9036 +:10218000CF90BF90AF909F900C94E30826960FB627 +:10219000F894DEBF0FBECDBFDF91CF911F910F919D +:1021A000FF90EF90DF90CF90BF90AF909F900895F9 +:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82 +:1021C0000FBECDBF4F83588769877A878B87DE0123 +:1021D000119686E0FD0111928A95E9F785E0FE01EE +:1021E000379601900D928A95E1F749815A816B816A +:1021F0007C818D819E810E9421172B960FB6F894C9 +:10220000DEBF0FBECDBFDF91CF910895CF9388235E +:1022100009F4C2C0C82F823859F40E94EA0F81FD28 +:10222000BBC089E30E94FB190E94C81A89E30CC055 +:10223000833879F40E94EA0F80FDAEC083E50E94E6 +:10224000FB190E94C81A83E50E943D1ACF910C9495 +:10225000C81A843859F40E94EA0F82FD9DC087E4B1 +:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6 +:10227000813A48F48C2F0E947E2181118DC08C2FD1 +:102280000E94FB19E3CF80E28C0F883048F4C770BE +:1022900081E001C0880FCA95EAF70E94811AD6CF63 +:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB +:1022B00083E890E005C081E890E002C082E890E009 +:1022C000CF910C940C1088E58C0F833108F064C01A +:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118 +:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186 +:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106 +:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173 +:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB +:1023200038C082EE90E035C089EE90E032C08AEE8F +:1023300090E02FC085EB90E02CC086EB90E029C0A8 +:1023400087EB90E026C08CEC90E023C08DEC90E011 +:1023500020C083E891E01DC08AE891E01AC082E9BC +:1023600091E017C084E991E014C081E292E011C0CD +:1023700083E292E00EC084E292E00BC085E292E03C +:1023800008C086E292E005C087E292E002C08AE2DD +:1023900092E0CF910C942210CF910895882309F4F4 +:1023A0004BC0823859F40E94EA0F81FF45C089E38F +:1023B0000E94FB190E94C81A89E30CC0833871F48B +:1023C0000E94EA0F80FF38C083E50E94FB190E943B +:1023D000C81A83E50E943D1A0C94C81A843859F42F +:1023E0000E94EA0F82FF28C087E40E94FB190E9426 +:1023F000C81A87E4EFCF9CEF980F913A58F390E218 +:10240000980F983050F4877091E001C0990F8A9529 +:10241000EAF7892F0E94871ADFCF9BE5980F933048 +:1024200020F480E090E00C940C10885A833120F462 +:1024300080E090E00C9422100895882321F00E94FF +:10244000811A0C94C81A0895882321F00E94871AD3 +:102450000C94C81A08957F928F929F92AF92BF9268 +:10246000CF92DF92EF92FF920F931F93CF93DF9360 +:102470001F92CDB7DEB77C01C62E772EFC010581F9 +:1024800002950F70128111110E949E1A0E94F41978 +:10249000882379F0112369F080E28C0D883048F0B0 +:1024A00082E00E94DD190E94F41991E0D82ED9260D +:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C +:1024C0000C94B323872D807F072D0F70882311F084 +:1024D0000295007F112389F0002309F490C180E266 +:1024E0008C0D883020F4802F0E94811A03C0802F29 +:1024F0000E94911A0E94C81A82C18C2D0E94CE118E +:10250000002309F495C180E28C0D883020F4802FDF +:102510000E94871A03C0802F0E94971A0E94C81A2F +:1025200087C1972D907F872D8F70903211F0829503 +:10253000807FCC2021F0F1E0CF16B1F01EC0112336 +:1025400049F0002309F414C1013009F011C10E94BF +:10255000B11A6EC1002319F0013009F469C18983F1 +:102560000E94B41A89810AC1112321F0023008F0B7 +:102570005FC1FEC001115CC101C1112321F0002324 +:1025800009F4F6C03CC1002309F4F8C03EC1872D10 +:1025900086958695837090E0009719F0019761F019 +:1025A00047C1112321F08C2D972D937002C080E03C +:1025B00090E00E940C103CC1112321F08C2D972D2E +:1025C000937002C080E090E00E94221031C18C2DF7 +:1025D000112319F00E94431E02C00E94AB1E0E94EC +:1025E000301F26C1872D837009F052C0111120C100 +:1025F0008C2D829586958770880F880F9C2D9F70F3 +:10260000892E912CA12CB12C082E04C0880C991C69 +:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041 +:1026200020E030E0B901A80104C0440F551F661F27 +:10263000771F8A95D2F7CB01BA0160957095809586 +:10264000909503C060E070E0CB01272D269526957C +:10265000237030E02230310569F02330310589F0F4 +:10266000682979298A299B292130310571F00E9436 +:102670006918DEC0682979298A299B290E94851852 +:10268000D7C00E946918C501B4010E944D18D0C07E +:10269000112319F0872D817001C08695882309F4D4 +:1026A000C7C08C2D829586958770880F880F9C2DCA +:1026B0009F70892E912CA12CB12C082E04C0880C5F +:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC +:1026D00010E020E030E0B901A80104C0440F551F0C +:1026E000661F771F8A95D2F7CB01BA016095709566 +:1026F0008095909503C060E070E0CB01272D269572 +:1027000026952370422F50E04230510569F0433046 +:10271000510589F0682979298A299B294130510579 +:1027200071F00E94431984C0682979298A299B295C +:102730000E945F197DC00E944319C501B4010E9427 +:10274000271976C08C2D90E0FC01E05EF109E5319F +:10275000F10508F050C0E059FF4F0C94B3230C2D45 +:102760000F70872D8F71112331F00E94C018802FB8 +:102770000E941D125DC00E94E118802F0E94241249 +:1027800057C0112339F0011153C0872D8F710E945A +:1027900006194EC0023008F04BC0F7CF112339F0B4 +:1027A000872D8F710E94C01843C01123C9F3872D54 +:1027B0008F710E94E1183CC0112329F0872D8F7181 +:1027C0000E94AB1835C00E94A11832C0112351F0ED +:1027D000172D1F71812F0E94C01863E0812F0E9466 +:1027E000D41926C081E00E94DD19023008F182E090 +:1027F0000E94DD191DC0112331F0002389F28C2DB8 +:102800000E94061115C0002391F28C2D0E94CE115A +:102810000FC0472D4F706C2DC7010E9415050E94F7 +:10282000C51706C0472D4F706C2DC7010E94F205D9 +:10283000DD20F9F00E94D01980FD1BC0F701128243 +:102840000E94CA190E94C018C7010E9448140E9421 +:10285000CA190F90DF91CF911F910F91FF90EF90C8 +:10286000DF90CF90BF90AF909F908F907F900C940F +:10287000E1180F90DF91CF911F910F91FF90EF9092 +:10288000DF90CF90BF90AF909F908F907F900895F2 +:102890000F931F93CF93DF93EC01888199812B8154 +:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B +:1028B0000E944A05882371F0688179818A810E948B +:1028C000C6198C010E947B190E944218B801CE01E2 +:1028D0000E942B12DF91CF911F910F9108950E94BA +:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471 +:1028F000E11F0E94301F80E090E00E940C1080E0F9 +:1029000090E00C9422100E948E1A0C946F140E9476 +:10291000BB19292F22952F7030E02C3031054CF453 +:102920002A3031056CF42250310922303105A8F4E7 +:1029300007C02C30310569F02F30310551F00DC042 +:10294000803F69F018F4803E40F409C0843F29F4C8 +:1029500006C093FB882780F9089580E0089581E000 +:102960000895CF93DF9300D000D01F92CDB7DEB78C +:102970000F900F900F900F900F90DF91CF910895CF +:10298000CF93DF9300D000D000D0CDB7DEB726962E +:102990000FB6F894DEBF0FBECDBFDF91CF91089583 +:1029A0001F93CF93DF93C091850116E0809186013C +:1029B000C81799F0D0E01C9FF0011D9FF00D112465 +:1029C000E957FE4F408151816281738184819581F5 +:1029D0000E94C0142196C770E9CFDF91CF911F915B +:1029E00008954091B7015091B8016091B90170917B +:1029F000BA018091BB019091BC010C94C0148091EC +:102A0000BC0182958F7009F054C08091B901882370 +:102A100009F44FC080918501A09186016091B701B2 +:102A20007091B8014091BA015091BB01B6E08A178C +:102A300009F43FC090E041155105C1F17F3F11F409 +:102A40006F3FA1F1B89FF001B99FF00D1124E95734 +:102A5000FE4F218172132AC02081621327C0228178 +:102A6000211124C0238134812417350710F421500B +:102A70003109241B350B283C3105C0F42091BC01E1 +:102A80002F7020612093BC0126E0289FF001299F30 +:102A9000F00D1124E457FE4F80818F708061808398 +:102AA00087EB91E00E9448140C94D0140196877033 +:102AB000BECF0895CF92DF92EF92FF920F931F93B4 +:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32 +:102AD0000FBECDBF8C0185E0F801DE011D9601908F +:102AE0000D928A95E1F7D8014C9111965C9111975E +:102AF00012966C9112971396CD90DC9014973091AA +:102B0000B7017091B8018091BA019091BB01009713 +:102B100009F46BC17F3F19F43F3F09F466C1E090AF +:102B2000B901EE2009F4C0C02091BC01C816D90635 +:102B300028F0F601E81BF90BCF0104C080959095B1 +:102B40008C0D9D1DFF24F394883C910578F0F12CA9 +:102B5000207F09F0C6C07C2DD98AC88A89890E9445 +:102B6000B11487EB91E00E944814B1C0822F807F9E +:102B700009F046C0751314C0341312C0611110C09F +:102B80002F7020612093BC010E94F11487EB91E02B +:102B90000E9448148091BC01D80115968C932EC0D8 +:102BA000CD2819F15F3F11F44F3FF9F0F62E611176 +:102BB0001CC0809185012091860136E0821709F4BE +:102BC0005AC090E0389FF001399FF00D1124E95769 +:102BD000FE4F7181571306C07081471303C0728185 +:102BE000711103C001968770E9CFF62E662309F4B0 +:102BF00018C18091BC0181608093BC01F12C11C18E +:102C0000751308C0341306C0611104C08091BC0163 +:102C1000D801C3C04D875E878D859E856A8B0E94D3 +:102C200087146A898823E1F16623D1F12091BC01E0 +:102C3000822F82958F7090E0029774F08091B70197 +:102C40009091B80198878F831986DB86CA862C8776 +:102C5000CE0107960E94481486E0F801A7EBB1E088 +:102C600001900D928A95E1F70E94FF140E94F114E1 +:102C7000FF24F394D6C04D875E878D859E850E9484 +:102C8000BB19292F22952F7030E0223031050CF02E +:102C9000BCC09F7009F0B6C0805E883008F4C1C027 +:102CA000C8010E944814E4CFC816D90608F453C0DE +:102CB000F601E81BF90BCF01883C910508F450C0E0 +:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E +:102CD000F1E086E0DF011D928A95E9F70E94F11488 +:102CE000A0C0751314C0341312C0611110C08091BC +:102CF000BC01F8018583C8010E94481486E0E7EB17 +:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C +:102D10005E878D859E856A8B0E9487146A898823C9 +:102D200009F4BECF662309F4BBCF2091BC01822FEA +:102D300082958F7090E002970CF48ECF8091B7014E +:102D40009091B8019A8389831B82DD82CC822E8385 +:102D5000CE0101967FCF809590958C0D9D1DACCFB7 +:102D6000F62E662309F49CCF75132EC034132CC0A5 +:102D70002091BC0120FD1FC0822F82958F70D9F059 +:102D8000D80115962C9315978F3049F08F5F982FA7 +:102D90009295907F822F8F70892B15968C93C80106 +:102DA0000E94481486E0F801A7EBB1E001900D9273 +:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7 +:102DC0000D928A95E1F72DC04D875E878D859E8592 +:102DD0000E948714811140CF8091BC018160809353 +:102DE000BC01C8010E9448141CC0662309F458CFD6 +:102DF0004D875E878D859E850E948714882309F400 +:102E00004FCF2ACF811148CF0CC0243031050CF0B0 +:102E100047CF9F7009F440CFF8019581907F09F06A +:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D +:102E3000DF91CF911F910F91FF90EF90DF90CF9096 +:102E400008951F93CF93DF93CDB7DEB72C970FB6BE +:102E5000F894DEBF0FBECDBF4F83588769877A874E +:102E60008B879C87CE0107960E945A15882369F0AC +:102E70008F8198852A853B85232BF1F19F3F09F0AF +:102E800063C08F3F09F060C037C086E0FE0137960F +:102E9000DE01119601900D928A95E1F76F81788598 +:102EA000EA85FB85309741F17F3F11F46F3F21F1B7 +:102EB0002091860130E0C9010196877099274091E1 +:102EC000850150E08417950709F447C069837A8328 +:102ED000FD83EC8396E0929FD001939FB00D112467 +:102EE000A957BE4FFE01319601900D929A95E1F7D8 +:102EF000809386010E94D01416E080918501909104 +:102F000086018917C1F1189FC001112489579E4F6E +:102F10000E945A15882379F1E09185011E9FF001E6 +:102F20001124E957FE4F4081518162817381848170 +:102F300095810E94C0148091850190E00196877070 +:102F4000992780938501D9CF4F81588569857A85E6 +:102F50008B859C850E94C014CFCF0E948314109251 +:102F6000860110928501E7EBF1E086E0DF011D921A +:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45 +:102F8000CDBFDF91CF911F910895EF92FF920F93E4 +:102F90001F93CF93DF938C01009709F46CC0F12C41 +:102FA000EE24E394E8012196F8018491843740F4FB +:102FB000843008F051C0813081F0823019F15BC05B +:102FC000853709F444C0A8F19CE7980F903708F0C2 +:102FD00052C08F770E94CE1141C00E5F1F4FFE017D +:102FE000C49180E28C0F883048F4C7708E2D01C0E8 +:102FF000880FCA95EAF70E94A11A14C08C2F0E946C +:1030000006112DC00E5F1F4FFE01C49180E28C0F90 +:10301000883058F4C7708E2D01C0880FCA95EAF722 +:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3 +:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3 +:103040009FE00197F1F700C00000C150F6CF0E5F7E +:103050001F4FFE01F49003C00E9406118E018F2DB8 +:10306000882309F49FCFEFE9FFE03197F1F700C023 +:1030700000008150F5CFDF91CF911F910F91FF900C +:10308000EF90089508956093C1017093C2018093F9 +:10309000C3019093C4010C946F140F931F9300917C +:1030A000C1011091C2012091C3013091C401DC0122 +:1030B000CB01802B912BA22BB32B8093C10190933A +:1030C000C201A093C301B093C4011F910F910C944E +:1030D0006F140F931F930091C1011091C2012091B1 +:1030E000C3013091C401DC01CB0180239123A223D1 +:1030F000B3238093C1019093C201A093C301B09305 +:10310000C4011F910F910C946F140F931F930091A2 +:10311000C1011091C2012091C3013091C401DC01B1 +:10312000CB0180279127A227B3278093C1019093D9 +:10313000C201A093C301B093C4011F910F910C94DD +:103140006F141092BD011092BE011092BF01109237 +:10315000C0010C946F1441E050E060E070E004C0E6 +:10316000440F551F661F771F8A95D2F74093BD0104 +:103170005093BE016093BF017093C0010C946F1413 +:1031800041E050E060E070E004C0440F551F661F4E +:10319000771F8A95D2F78091BD019091BE01A091D1 +:1031A000BF01B091C001482B592B6A2B7B2B409358 +:1031B000BD015093BE016093BF017093C0010C9498 +:1031C0006F1441E050E060E070E004C0440F551F10 +:1031D000661F771F8A95D2F7409550956095709538 +:1031E0008091BD019091BE01A091BF01B091C0013D +:1031F000482359236A237B234093BD015093BE018A +:103200006093BF017093C0010C946F1441E050E0D3 +:1032100060E070E004C0440F551F661F771F8A9559 +:10322000D2F78091BD019091BE01A091BF01B091F4 +:10323000C001482759276A277B274093BD01509337 +:10324000BE016093BF017093C0010C946F140F9383 +:103250001F930091BD011091BE012091BF013091DB +:10326000C001DC01CB01802B912BA22BB32B8093CF +:10327000BD019093BE01A093BF01B093C0011F9107 +:103280000F910C946F140F931F930091BD01109137 +:10329000BE012091BF013091C001DC01CB01802330 +:1032A0009123A223B3238093BD019093BE01A093E9 +:1032B000BF01B093C0011F910F910C946F140F9335 +:1032C0001F930091BD011091BE012091BF0130916B +:1032D000C001DC01CB0180279127A227B32780936F +:1032E000BD019093BE01A093BF01B093C0011F9197 +:1032F0000F910C946F140895CF92DF92EF92FF928A +:103300000F931F93CF93DF938C01C090C101D09096 +:10331000C201E090C301F090C4018091BD01909181 +:10332000BE01A091BF01B091C001C82AD92AEA2AE2 +:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520 +:10334000A795979587950A94D2F780FF06C0B80194 +:103350008C2F0E944808019721F4219760F780E0A4 +:1033600001C08C2FDF91CF911F910F91FF90EF90B3 +:10337000DF90CF900895CF93DF93EC010E947C19EA +:10338000BE010E944808DF91CF910895CB010E94B1 +:10339000BB1908958091C5018595859585950895FA +:1033A0008091C5018770089598E0899F900111244C +:1033B000262B2093C5010C94C0182091C50180953F +:1033C00082238093C501982F977069F430E0482FCD +:1033D000552747FD50952417350729F08595859584 +:1033E00085950C94E11808959091C501977081E03E +:1033F00009F480E0089590910C01992321F09091B7 +:103400000D01911109C020910E0130910F01F901B8 +:1034100032969FEF40E01FC0982F9695969596950F +:103420009F3050F5E0910E01F0910F01E90FF11D71 +:10343000877021E030E0A90102C0440F551F8A9532 +:10344000E2F7CA019181892B818308959F3F39F06A +:103450004F5F4E3041F051915813F8CF0DC05111CC +:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08 +:1034700097FDFA9582830895089590910C01992300 +:1034800021F090910D01911109C020910E01309110 +:103490000F01F9013296205F3F4F1FC0982F96957C +:1034A000969596959F30F0F4E0910E01F0910F0102 +:1034B000E90FF11D877021E030E0A90102C0440F3F +:1034C000551F8A95E2F7CA018095918189238183EE +:1034D00008953196E217F30729F090819813F9CFF8 +:1034E0001082F7CF089581E090E0E0910E01F09115 +:1034F0000F01E80FF91F1082019680319105A9F79D +:1035000008959091D901892B8093D90108958095D0 +:103510009091D90189238093D90108951092D901FE +:1035200008959091D801892B8093D80108958095B2 +:103530009091D80189238093D80108951092D801E1 +:1035400008959091D701892B8093D7010895809594 +:103550009091D70189238093D70108951092D701C4 +:1035600008958093C60108951092C6010895809130 +:103570000E0190910F01FC0131969C01205F3F4F9D +:1035800080E0919191118F5FE217F307D1F70895D1 +:10359000E0910E01F0910F018091D9018083E091BB +:1035A0000E01F0910F0190818091D801892B8083C9 +:1035B000E0910E01F0910F0190818091D701892B4C +:1035C00080838091C601882361F0E0910E01F09123 +:1035D0000F019081892B80830E94B71A811110926C +:1035E000C60180910E0190910F010C94F60F20E01E +:1035F000009739F0AC0141505109842395232F5F86 +:10360000F7CF822F0895CF92DF92EF92FF926C0155 +:10361000EE24FF24C114D104E104F10421F0C70118 +:10362000B60120E101C020E0C72ED82EE92EFF24EC +:10363000C114D104E104F10419F0285FC701B601F7 +:103640006B017C0154E0F694E794D794C7945A95A3 +:10365000D1F7C114D104E104F10419F02C5FC701C2 +:10366000B6016B017C0142E0F694E794D794C794CD +:103670004A95D1F7C114D104E104F10419F02E5F89 +:10368000C701B601DC01CB01B695A7959795879543 +:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5 +:1036A000DF90CF9008958091F101843021F1109244 +:1036B000DB0120E488E190E00FB6F894A8958093B0 +:1036C00060000FBE2093600080E00E94E30883B793 +:1036D000817F846083BF83B7816083BF789488953E +:1036E00083B78E7F83BF88E10FB6F8948093600024 +:1036F000109260000FBE0895089508950E947C1BEB +:103700000E944B030E947D1B0E94400491E08111A6 +:1037100001C090E0892F08950E9483140E94EA0F4F +:103720000C94E30882E084BD93E095BD9AEF97BDC9 +:1037300080936E0008952FB7F8948091DC019091EA +:10374000DD01A091DE01B091DF012FBF0895CF927E +:10375000DF92EF92FF920F931F932FB7F89440914F +:10376000DC015091DD016091DE017091DF012FBF1E +:103770006A017B01EE24FF248C0120E030E0C016BA +:10378000D106E206F30610F4415051099A01281BB4 +:10379000390BC9011F910F91FF90EF90DF90CF90EF +:1037A00008951F920F920FB60F9211248F939F933B +:1037B000AF93BF938091DC019091DD01A091DE0178 +:1037C000B091DF010196A11DB11D8093DC019093A2 +:1037D000DD01A093DE01B093DF01BF91AF919F9116 +:1037E0008F910F900FBE0F901F9018950E94E70CBD +:1037F000F8942FEF87EA91E6215080409040E1F75E +:1038000000C0000087E090EBDC018093FB01909307 +:10381000FC01A093FD01B093FE019CE088E10FB68E +:10382000F894A895809360000FBE90936000FFCF3E +:10383000EF92FF920F931F93CF93DF93D82FCDE09A +:103840008C2F0E94390405E010E0E82EF12CC7010E +:10385000002E02C0959587950A94E2F780FF09C073 +:10386000602F7C2F80E00E94F305D81302C081E016 +:1038700006C00150110958F7C15010F780E0DF91E0 +:10388000CF911F910F91FF90EF900895CF93C82F84 +:103890008CE20E94181C882321F08C2FCF910C946D +:1038A000181C80E0CF910895CF930E949B1D811139 +:1038B00002C00E94811DC5E6C15049F00E944B0321 +:1038C0008FE39CE90197F1F700C00000F5CF89E292 +:1038D0000E94461C811113C18AE20E94461C81117C +:1038E0000E94811D85E00E94461C81110E94F61BEA +:1038F0000E94A61D8093DA0187E00E94461C88235F +:10390000A9F18BE10E94461C882351F08091DA01D5 +:1039100081FB222720F991E0922790FB81F90EC0CC +:103920008EE00E94461C882361F08091DA0182FBC0 +:10393000222720F991E0922790FB82F98093DA0107 +:1039400015C080E10E94461C9091DA01882341F065 +:1039500093FB222720F981E0822780FB93F904C0A2 +:10396000892F809580FB90F99093DA018091DA019C +:103970000E94AA1D0E94B81D8093FA0180EE0E9449 +:10398000461C882341F08091FA01982F909590FB76 +:1039900080F98093FA0189E30E94461C882359F03C +:1039A0008091FA0181FB222720F991E0922790FB78 +:1039B00081F98093FA0182EE0E94461C882359F017 +:1039C0008091FA0182FB222720F991E0922790FB57 +:1039D00082F98093FA0186EE0E94461C882359F0F2 +:1039E0008091FA0183FB222720F991E0922790FB36 +:1039F00083F98093FA0183EE0E94461C882359F0D4 +:103A00008091FA0184FB222720F991E0922790FB14 +:103A100084F98093FA0185E30E94461C882359F0BB +:103A20008091FA0185FB222720F991E0922790FBF3 +:103A300085F98093FA0181E30E94461C882359F09E +:103A40008091FA0186FB222720F991E0922790FBD2 +:103A500086F98093FA0181E10E94461C882359F07F +:103A60008091FA0187FB222720F991E0922790FBB1 +:103A700087F98093FA018091FA010E94BC1D809120 +:103A8000FA0187FB882780F980930D0187E20E9465 +:103A9000461CC82F8EE10E94461C8111C2608FE136 +:103AA0000E94461C8111C46080E20E94461C811164 +:103AB000C86081E20E94461C8111C06182E20E94BE +:103AC000461C8111C06283E20E94461C8111C064C1 +:103AD00084E20E94461C882311F0C06802C0CC23F7 +:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4 +:103AF000682F70E080E090E0CF910C944318CF9154 +:103B000008956DEE7EEF80E090E00E94ED2360E08E +:103B100082E090E00E94DB2360E083E090E00E947E +:103B2000DB2360E084E090E00E94DB2360E085E03E +:103B300090E00C94DB2380E090E00E94D52321E00C +:103B40008D3E9E4F09F020E0822F089582E090E0A4 +:103B50000C94CD23682F82E090E00C94DB2383E06B +:103B600090E00C94CD23682F83E090E00C94DB234D +:103B700084E090E00C94CD23682F84E090E00C94D6 +:103B8000DB238091E20180FF0BC06091130185E08F +:103B9000689FB001112475956795759567952BC041 +:103BA00081FF09C06091130185E0689FB001112475 +:103BB0007595679520C082FF07C06091130185E06D +:103BC000689FB001112417C09091E3019923D1F0AF +:103BD00060911201961788F72091130185E0289FC4 +:103BE00090011124929FA001939F500D112470E029 +:103BF000CA010E949F236038710540F46115710568 +:103C000039F002C065E070E0862F08958FE70895CF +:103C100081E008958091E20180FF08C06091110168 +:103C200070E0759567957595679521C081FF06C011 +:103C30006091110170E07595679519C082FF04C00D +:103C40006091110170E010C09091E3019923C1F0DF +:103C5000609110019617A0F780911101899FC00112 +:103C6000112470E00E949F236038710528F46115CB +:103C7000710521F0862F08958FE7089581E008955A +:103C800061E070E0F4CF803F21F40E94C11D819576 +:103C900004C0813F29F40E94C11D8093E60108956C +:103CA000823F21F40E94C11D819504C0833F29F405 +:103CB0000E94C11D8093E5010895893F19F40E9477 +:103CC0000A1E05C08A3F31F40E940A1E8195809326 +:103CD000E70108958B3F21F40E940A1E819504C0DC +:103CE0008C3F29F40E940A1E8093E8010895843FC6 +:103CF00021F48091E401816017C0853F21F4809117 +:103D0000E401826011C0863F21F48091E401846067 +:103D10000BC0873F21F48091E401886005C0883F93 +:103D200031F48091E40180618093E40108958D3F36 +:103D300021F48091E20181600BC08E3F21F48091DB +:103D4000E201826005C08F3F29F48091E201846026 +:103D50008093E2010895803F39F48091E60187FF66 +:103D60006CC01092E60169C0813F29F48091E601A0 +:103D70001816BCF362C09091E501823F29F497FFC9 +:103D80005CC01092E50159C0833F19F41916CCF3B9 +:103D900054C0893F41F48091E70118160CF04DC0E2 +:103DA0001092E7014AC08A3F29F48091E70187FF1A +:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6 +:103DC0001092E8013AC08C3F29F48091E80118165E +:103DD000BCF333C0843F21F48091E4018E7F17C08F +:103DE000853F21F48091E4018D7F11C0863F21F44D +:103DF0008091E4018B7F0BC0873F21F48091E40127 +:103E0000877F05C0883F31F48091E4018F7E8093E5 +:103E1000E40113C08D3F21F48091E2018E7F0BC03D +:103E20008E3F21F48091E2018D7F05C08F3F29F400 +:103E30008091E2018B7F8093E2018091E501811105 +:103E40000EC08091E60181110AC08091E7018111C5 +:103E500006C08091E801811102C01092E30108952B +:103E600084EE91E00E9401100E949B1B9093E1015F +:103E70008093E00108951F93CF93DF938091E00139 +:103E80009091E1010E94A71BAC019091E30199235D +:103E900021F02091140130E006C0209115018AE044 +:103EA000289F900111244217530708F486C080917F +:103EB000E501C091E601D091E7011091E80181117F +:103EC00007C0C11176C0D11174C0111172C075C084 +:103ED0009F3F19F09F5F9093E301181624F40E940E +:103EE000C11D8093E5018091E50187FF05C00E9417 +:103EF000C11D81958093E5011C1624F40E94C11D0B +:103F00008093E6018091E60187FF05C00E94C11DF4 +:103F100081958093E6016091E501662339F1C091B6 +:103F2000E601CC2319F1772767FD7095872F972F2E +:103F30000E94B02223E333E343E35FE30E941423B0 +:103F40000E947D226093E5016C2F772767FD7095B5 +:103F5000872F972F0E94B02223E333E343E35FE3ED +:103F60000E9414230E947D226093E6011D1624F412 +:103F70000E940A1E8093E7018091E70187FF05C038 +:103F80000E940A1E81958093E701111624F40E9475 +:103F90000A1E8093E8018091E80187FF05C00E9416 +:103FA0000A1E81958093E801DF91CF911F910C94B7 +:103FB000301F9F3F09F08ECF96CFDF91CF911F9199 +:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE +:103FD0001092E3011092E2010895833081F128F4F8 +:103FE000813059F08230D1F00895853009F449C00C +:103FF000B8F1863009F456C0089580911501262F36 +:1040000030E0280F311D2F3F310524F4680F6093F5 +:10401000150108958FEF8093150108958091140183 +:10402000262F30E0280F311D2F3F310524F4680F73 +:104030006093140108958FEF809314010895809187 +:104040001301262F30E0280F311D2F3F310524F4B6 +:10405000680F6093130108958FEF80931301089503 +:1040600080911201262F30E0280F311D2F3F31059E +:1040700024F4680F6093120108958FEF809312016A +:10408000089580911101262F30E0280F311D2F3F18 +:10409000310524F4680F6093110108958FEF809328 +:1040A0001101089580911001262F30E0280F311D55 +:1040B0002F3F310524F4680F6093100108958FEFAE +:1040C000809310010895833011F128F4813049F074 +:1040D000823091F00895853081F120F18630C1F170 +:1040E000089580911501681720F4861B80931501AF +:1040F000089510921501089580911401681720F415 +:10410000861B8093140108951092140108958091E4 +:104110001301681720F4861B8093130108951092F1 +:104120001301089580911201681720F4861B809373 +:1041300012010895109212010895809111016817DB +:1041400020F4861B809311010895109211010895A7 +:1041500080911001681720F4861B80931001089548 +:104160001092100108950F931F938D3109F46BC0C5 +:1041700008F03FC08E3009F47FC0C0F4873009F4E6 +:1041800069C068F4863009F0B1C08091DA01817F9E +:104190008E7F8093DA0181E08093EA01A8C08830A5 +:1041A00009F4A2C08B3009F49FC0A0C0863109F485 +:1041B0009BC078F4803109F472C0813109F096C057 +:1041C0000E94831490910D0181E0892780930D0155 +:1041D0008BC0893109F488C08B3109F087C0809188 +:1041E000DA0181FB222720F991E0922790FB81F9E7 +:1041F0004CC0853309F470C048F4873209F46CC0B0 +:1042000008F459C0893209F467C070C0833438F4A7 +:104210008A3308F04EC0883309F466C067C083341F +:1042200009F45AC0883409F061C00E9483140FEF6A +:1042300013ED20E3015010402040E1F700C00000E2 +:104240000E94F61B51C00E9437220E94EA0F0E9472 +:10425000E3084AC09091DA01892F8095817080FB34 +:1042600090F929F0966098609093DA0140C0997FA8 +:10427000977F9093DA0138C08091DA0182FB222780 +:1042800020F991E0922790FB82F98093DA0199233B +:1042900059F18091DA0181608093DA0125C0809123 +:1042A000DA0183FB222720F991E0922790FB83F922 +:1042B000ECCF895301C08D5141E050E060E070E0E7 +:1042C0008A019B0104C0000F111F221F331F8A9512 +:1042D000D2F7C901B80104C061E070E080E090E06D +:1042E0000E9443180E94831481E001C080E01F9166 +:1042F0000F91089580E0089580E00895CF93C82F2E +:104300008091EA01813079F018F08230E9F187C0BC +:10431000E0910E01F0910F018081813169F08232CC +:1043200009F07FC009C0E0910E01F0910F0180817A +:10433000813111F0823261F48C2F0E947A21811137 +:1043400004C08C2F0E94B3201DC081E090E01AC0F1 +:104350008C2F0E947C21811114C0C43179F048F463 +:10436000CB3079F0C03109F060C082E08093EA017F +:1043700008C0C93219F0C83321F057C01092EA01C1 +:1043800054C081E0817053C0C93289F118F5C4313D +:1043900071F1A8F4C73009F046C08AE08093150196 +:1043A00094E19093140193E0909313018093120190 +:1043B00088E08093110188E28093100134C0CE51CF +:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB +:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC +:1043E00013C0C13579F0C235F1F461E00DC08091A0 +:1043F000E901882319F01092E90115C081E080934A +:10440000EA0115C061E006C08091E9010E94ED1F3C +:104410000AC06AE08091E9010E94632004C0109202 +:10442000EA0180E004C081E002C080E0ABCFCF9120 +:104430000895E1E8F0E08081886080838081816078 +:1044400080838FB7F89493E09093890090ED9093D8 +:1044500088008FBF0895EFE6F0E08081826080835E +:104460000895EFE6F0E080818D7F80830895EFE688 +:10447000F0E0908182E08927808308951F920F9257 +:104480000FB60F9211242F933F934F935F936F9327 +:104490007F938F939F93AF93BF93EF93FF938091FD +:1044A000EB019091EC0101969093EC018093EB016C +:1044B000811103C082E00E94E308E091EC01E695DF +:1044C000E695F0E0EC54FB4FE4918091EB018E1304 +:1044D00003C080E00E94E308FF91EF91BF91AF918C +:1044E0009F918F917F916F915F914F913F912F910C +:1044F0000F900FBE0F901F90189504D06894B111C3 +:104500008DC0089570D088F09F5790F0B92F9927EB +:10451000B751A0F0D1F0660F771F881F991F1AF0CE +:10452000BA95C9F712C0B13081F077D0B1E00895E3 +:1045300074C0672F782F8827B85F39F0B93FCCF364 +:10454000869577956795B395D9F73EF490958095C4 +:10455000709561957F4F8F4F9F4F0895E89409C0E4 +:1045600097FB3EF490958095709561957F4F8F4FA6 +:104570009F4F9923A9F0F92F96E9BB279395F695BC +:10458000879577956795B795F111F8CFFAF4BB0F3A +:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E +:1045A000882311F096E911C0772321F09EE8872F28 +:1045B000762F05C0662371F096E8862F70E060E0E4 +:1045C0002AF09A95660F771F881FDAF7880F96955D +:1045D000879597F9089557FD9058440F551F59F046 +:1045E0005F3F71F04795880F97FB991F61F09F3FE0 +:1045F00079F087950895121613061406551FF2CF09 +:104600004695F1DF08C0161617061806991FF1CF58 +:1046100086957105610508940895E894BB2766277F +:104620007727CB0197F908950BD078C069D028F08F +:104630006ED018F0952309F05AC05FC01124EECF58 +:10464000CADFA0F3959FD1F3950F50E0551F629FED +:10465000F001729FBB27F00DB11D639FAA27F00DDB +:10466000B11DAA1F649F6627B00DA11D661F829F02 +:104670002227B00DA11D621F739FB00DA11D621FE7 +:10468000839FA00D611D221F749F3327A00D611D04 +:10469000231F849F600D211D822F762F6A2F1124E6 +:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39 +:1046B000BB1F661F771F881F91505040A9F79E3F70 +:1046C000510570F014C0AACF5F3FECF3983EDCF3C5 +:1046D000869577956795B795F795E7959F5FC1F7AD +:1046E000FE2B880F911D9695879597F9089597F958 +:1046F0009F6780E870E060E008959FEF80EC089588 +:1047000000240A94161617061806090608950024B0 +:104710000A9412161306140605060895092E03942A +:10472000000C11F4882352F0BB0F40F4BF2B11F49E +:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF +:10474000072E16F4009407D077FD09D00E94B923F4 +:1047500007FC05D03EF4909581959F4F0895709584 +:1047600061957F4F0895EE0FFF1F0590F491E02DA6 +:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8 +:10478000B70710F0A61BB70B881F991F5A95A9F7FA +:1047900080959095BC01CD010895F999FECF92BD09 +:1047A00081BDF89A992780B50895A8E1B0E042E06C +:1047B00050E00C94F523262FF999FECF92BD81BDD0 +:1047C000F89A019700B4021639F01FBA20BD0FB64F +:1047D000F894FA9AF99A0FBE08950196272F0E942D +:1047E000DC230C94DB23DC01CB01FC01F999FECF27 +:1047F00006C0F2BDE1BDF89A319600B40D92415069 +:0A4800005040B8F70895F894FFCF78 +:10480A000220E508730950091C09E8080101C701DB +:10481A0028080A03140A3F4D363975042804F2039E +:10482A00B9034C0365037E039703010203040506DB +:04483A000708090062 +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/sneako/keymap.c b/keyboards/ergodox_ez/keymaps/sneako/keymap.c new file mode 100644 index 000000000..0c6863102 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/sneako/keymap.c @@ -0,0 +1,187 @@ +// Based on `default_osx` +// Replace left Bksp with Ctrl/Esc +// Remove the Ctrl from Z and / +#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 | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * |Ctrl/Esc| A | S | D | F | G |------| |------| H | J | K | L |; / L2| LGui | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | 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), + 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), + 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),GUI_T(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_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/keyboards/ergodox_ez/keymaps/software_neo2/compiled.hex b/keyboards/ergodox_ez/keymaps/software_neo2/compiled.hex new file mode 100644 index 000000000..a4aafc138 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/software_neo2/compiled.hex @@ -0,0 +1,1147 @@ +:100000000C9424020C9468020C9468020C9468020C +:100010000C9468020C9468020C9468020C946802B8 +:100020000C9468020C9468020C94090D0C94DB0D7E +:100030000C9468020C9468020C9468020C94680298 +:100040000C9468020C94E5210C9468020C946802EC +:100050000C9468020C94781B0C9468020C9468024F +:100060000C9468020C9468020C9468020C94680268 +:100070000C9468020C9468020C9468020C94680258 +:100080000C9468020C9468020C9468020C94680248 +:100090000C9468020C9468020C9468020C94680238 +:1000A0000C9468020C9468020C946802480E6A0E64 +:1000B000580F6A0E580FAF0ED20E580F270F3A0F77 +:1000C00009120912381238126E128E12BF13BF13A2 +:1000D0009912BF1349134913B013BF13BF13B913B8 +:1000E00056135613561356135613561356135613C8 +:1000F00056135613561356135613561356135613B8 +:10010000681375137C1383138D1323024C0039007D +:10011000E100640000001E00140004001D714A008C +:1001200039001F001A0016001B734E002A00200021 +:100130000800070006744B002B0021001500090081 +:1001400019004D006400220017000A00050000009D +:100150006574AE0001540000007F0000E300AB00B6 +:100160000154000000770000E20023001C000B0097 +:10017000110000002971240018000D00100050002B +:10018000E60025000C000E00360051002800260075 +:1001900012000F00370052002C002700130033001C +:1001A00038004F0031002D002F003400E5002900F9 +:1001B00000000100010001000100010000003A0000 +:1001C0000100F700FB00010001003B00F400F20019 +:1001D000FA00FD00F5003C00F000F100F900FE001F +:1001E000F4003D00F500F300FC00FF0001003E00BC +:1001F0000100F800F600000001000100010000000D +:1002000001000000010001000100000001000000E9 +:1002100001003F0001000100B400000001004000A7 +:10022000AA00AC00B600010001004100A800AD002A +:10023000B5000100B7004200A900AE00B9000100FE +:10024000B60043000100AB00B7000100010044000C +:100250004500010001000100000016034500720086 +:1002600067006F0044006F007800200045005A00CE +:10027000000016034500720067006F0044006F0025 +:100280007800200045005A00000004030904090218 +:100290006D00040100A0FA0904000001030101003F +:1002A000092111010001223F000705810308000A0E +:1002B00009040100010301020009211101000122CA +:1002C0004D000705820308000A090402000103002B +:1002D00000000921110100012236000705830308EF +:1002E000000A0904030001030000000921110100B4 +:1002F00001223900070584031000011201100100DA +:10030000000008EDFE0713010001020001050109CC +:1003100006A101050719E029E715002501950875D3 +:1003200001810205081901290595057501910295BC +:10033000017503910105071900297715002501951D +:100340007875018102C005010980A10185021601AD +:100350000026B7001A01002AB70075109501810028 +:10036000C0050C0901A1018503160100269C021A93 +:1003700001002A9C02751095018100C00501090247 +:10038000A1010901A100050919012905150025018F +:1003900095057501810295017503810105010930FB +:1003A00009311581257F9502750881060938158167 +:1003B000257F950175088106050C0A3802158125EF +:1003C0007F950175088106C0C005010906A10105D8 +:1003D0000719E029E71500250195087501810295A7 +:1003E0000175088101050819012905950575019117 +:1003F000029501750391010507190029FF150025D4 +:10040000FF950675088100C0000000000000000094 +:10041000000000010204060A0F17202C3A4A5D7101 +:10042000879DB3C7DAE9F5FCFFFCF5E9DAC7B39DB0 +:1004300087715D4A3A2C20170F0A0604020100005A +:10044000000000000000000011241FBECFEFDAE022 +:10045000DEBFCDBF04B603FE24C08091FB019091A6 +:10046000FC01A091FD01B091FE018730904BA740A7 +:10047000B04BB9F41092FB011092FC011092FD01F7 +:100480001092FE0114BE84B7877F84BF88E10FB647 +:10049000F89480936000109260000FBEE0E0FFE3EC +:1004A000099511E0A0E0B1E0E8E5F7E402C00590AD +:1004B0000D92A433B107D9F711E0A4E3B1E001C074 +:1004C0001D92AB3FB107E1F70E944D0A0C94AA239D +:1004D0000C9400001092B9008AE08093B80008954F +:1004E00094EA9093BC009091BC0097FFFCCF909150 +:1004F000B900987F983021F0903111F081E0089593 +:100500008093BB0084E88093BC008091BC0087FF8F +:10051000FCCF8091B900887F883111F0803471F769 +:1005200080E0089584E98093BC008091BC0084FD44 +:10053000FCCF08958093BB0084E88093BC00809139 +:10054000BC0087FFFCCF9091B900987F81E0983282 +:1005500009F480E0089584E88093BC008091BC0099 +:1005600087FFFCCF8091BB0008958091010181112C +:1005700015C080E40E9470028093010181110CC0BB +:1005800082E10E949A0280930101811105C08FEFE0 +:100590000E949A02809301010E94920284B1807F9E +:1005A00084B985B1807F85B98AB1837F8AB98BB1DF +:1005B000837F8BB93E98469808950E94700480937B +:1005C00001010E94B50280B38C7080BB81B3836F40 +:1005D00081BBA5E3B1E0E3E4F1E08EE08E0F119280 +:1005E0001D928E13FCCF0C945A04BF92CF92DF92CF +:1005F000EF92FF920F931F93CF93DF9380910101AE +:10060000882379F0809134018F5F809334018111C8 +:1006100008C00E94700480930101811102C00E94F1 +:10062000020405E311E0C0E0D0E0DD24D39482E0D1 +:10063000C82EEE24E394F12CC730D10500F580914B +:100640000101811164C080E40E9470028093010165 +:10065000811112C082E10E949A02809301018111EE +:100660000BC0C7010C2E01C0880F0A94EAF78095D1 +:100670000E949A02809301010E94920248C0CA30EF +:10068000A1F028F4C83059F0C93061F005C0CC3071 +:1006900089F070F0CD3089F0209A289810C0219A06 +:1006A00029980DC0229A2A980AC0239A2B9807C02D +:1006B000529A01C0539A5B9802C03E9A469890EABB +:1006C0009A95F1F79FB1799902C082E001C080E06C +:1006D00091709D25982B7C9902C084E001C080E038 +:1006E000892B7D9902C038E001C030E0832B7E99D0 +:1006F00002C020E101C020E0822B9FB19095991F9C +:100700009927991F9295990F907E892B0FC0809100 +:100710000101811149C080E40E94700280930101AF +:10072000882379F1B12C0E9492028B2DF8019081DF +:10073000981719F08083C09200010E94B50221969B +:100740000F5F1F4FCE30D10509F076CF80910001A9 +:10075000882361F1815080930001882339F08FE96B +:100760009FE00197F1F700C0000020C0A3E4B1E0D2 +:10077000E5E3F1E0CF01825F91919D938E13FCCF71 +:1007800015C083E10E949A02809301018111CACFB2 +:1007900081E40E947002809301018111C3CF0E9405 +:1007A000AB02B82EB094BFCF80E0C0CF0E9400044F +:1007B00081E0DF91CF911F910F91FF90EF90DF903B +:1007C000CF90BF900895E82FF0E0ED5BFE4F808161 +:1007D000089508950F931F93CF93DF93C3E4D1E05F +:1007E00010E00C2F025F899190E00E949E1A180F72 +:1007F0000C13F9CF812FDF91CF911F910F910895A5 +:100800000C94D00456985E9825982D9826982E988A +:1008100027982F988FEF90E090938900809388001D +:1008200090938B0080938A0090938D0080938C002E +:10083000259A2D9A2FEF80E792E02150804090403A +:10084000E1F700C00000269A2E9A2FEF80E792E091 +:10085000215080409040E1F700C00000279A2F9A75 +:100860002FEF80E792E0215080409040E1F700C0F8 +:10087000000025982D982FEF80E792E021508040CE +:100880009040E1F700C0000026982E982FEF80E7F7 +:1008900092E0215080409040E1F700C0000027988E +:1008A0002F9856985E9825982D9826982E982798D8 +:1008B0002F98089589EA8093800089E080938100D1 +:1008C00024982C983F988AB18F748AB96E98479A69 +:1008D0008BB1806B8BB9769A0E9402040C94CF0482 +:1008E00080E2809301018091510181110EC00E942C +:1008F0006A0281E0809351012FEF83ED90E3215054 +:1009000080409040E1F700C0000080E40E94700247 +:100910008093010181112EC00E949A0280930101EF +:10092000811128C00E949A0280930101811122C086 +:100930008FE30E949A028093010181111BC00E94E3 +:10094000920280E40E94700280930101811112C022 +:100950008CE00E949A028093010181110BC00E94D9 +:100960009A0280930101811105C08FE30E949A02CF +:10097000809301010E94920280910101089561110A +:100980000BC0FC018281882321F085EE0E94AD100E +:1009900003C085EE0E94751180E090E008950895EF +:1009A0006091BD017091BE018091BF019091C00125 +:1009B0000E94AA1A56985E9825982D9826982E98E7 +:1009C00027982F98813019F4269A2E9A08955698D0 +:1009D0005E98089581E0089581E008950C94EC04F8 +:1009E00008950F931F93CF93DF938C01FC01C08177 +:1009F000D181CE010E942319BE010E949A05EC010B +:100A0000B8010E94EE04882309F48DC0F8018281A8 +:100A1000882309F44AC080915D0181111FC0C4314F +:100A2000F0E5DF0709F051C00E94F00481E08093F7 +:100A30005D010E94421B90935C0180935B011092C8 +:100A400054011092560110925501109258011092C3 +:100A5000570110925A011092590165C080915B01B3 +:100A600090915C010E944E1B883C910570F480912E +:100A70005401E82FF0E0EE0FFF1FEB5AFE4FD18339 +:100A8000C0838F5F809354014EC0C43880E5D8077F +:100A900021F0C538D04501F13AC0F80182818823A0 +:100AA00041F01092520182E01EC0C438E0E5DE073A +:100AB00059F580915201811106C086E20E94AD1065 +:100AC00086E20E94751182E01CC0C438F0E5DF07A1 +:100AD00041F3C538D045D9F4F8018281882331F03B +:100AE0001092530180E20E94C4111DC080915301F5 +:100AF000811106C087E20E94AD1087E20E94751145 +:100B000080E20E94CB110FC0C538D04529F381E0A7 +:100B10008093520180935301C801DF91CF911F91BF +:100B20000F910C94EA0480E0DF91CF911F910F9117 +:100B30000895089596E0799FF001112494E5899F26 +:100B4000E00DF11D1124E60FF11DEE0FFF1FE65F12 +:100B5000FE4F859194910895880F991FFC01E657E7 +:100B6000F040859194910895880F991FFC01E65FEC +:100B7000FE4F8591949108950F931F93CF93DF9328 +:100B8000EC01811520E3920750F5C11580E2D807EA +:100B900008F0C3C0CB3BD10590F4C83AD10508F0AA +:100BA0006AC0C53AD10508F05BC0C430D10508F071 +:100BB000D0C1219709F0CAC101E010E00AC2CF3FBD +:100BC000D10511F008F0C5C1C03FD10508F0A2C0A1 +:100BD000CE01805E9109089708F4BBC1B7C1C1304E +:100BE00090E5D90709F4A2C020F5C0318FE4D807F9 +:100BF00070F4C11590E4D90708F094C0C11521E341 +:100C0000D20708F0A3C1DD278E01106CE2C1C11527 +:100C1000D04509F09BC10E942A148FEF94E32CE089 +:100C2000815090402040E1F700C000000E949D1BD1 +:100C3000D0C1C11597E5D90758F4C03121E5D207D5 +:100C400008F01CC1C43180E5D80708F475C07EC126 +:100C5000CE0190578115904108F078C1DF7073C1C3 +:100C6000C53AD10509F477C1C63AD10509F076C174 +:100C700002E810E4AEC1C83AD10509F472C1C93A1C +:100C8000D10509F471C1CA3AD10509F470C1CB3A52 +:100C9000D10509F46FC1CC3AD10509F46EC1CD3A42 +:100CA000D10509F46DC1C03BD10509F46CC1CE3A40 +:100CB000D10509F46BC1CF3AD10509F46AC1C13B32 +:100CC000D10509F469C1C23BD10509F468C1C33B30 +:100CD000D10509F467C1C43BD10509F466C1C53B20 +:100CE000D10509F465C1C63BD10509F464C1C73B10 +:100CF000D10509F463C1C83BD10509F462C1C93B00 +:100D0000D10509F461C1CA3BD10509F460C100E015 +:100D100014E45FC18E0110655CC1CE019F700E941A +:100D2000B40558C1DF708E01106A53C18091DA0199 +:100D300081608093DA014DC10E94421D811102C081 +:100D40000E94281D0E945F1D90E09093FB018093FC +:100D5000FA01C23080E5D80721F48091FA01816060 +:100D600086C0C43090E5D90721F48091FA018260F1 +:100D70007EC0C63020E5D20721F48091FA0184605C +:100D800076C0C83080E5D80719F48091FA0127C0F1 +:100D9000CA3090E5D90721F48091FA01806167C0DB +:100DA000CC3020E5D20721F48091FA0180625FC047 +:100DB000CE3080E5D80721F48091FA01806457C0D5 +:100DC000C03190E5D90721F48091FA0180684FC0C5 +:100DD000C23120E5D20729F48091FA01846088604D +:100DE00046C0C33080E5D80721F48091FA018E7F98 +:100DF0003EC0C53090E5D90721F48091FA018D7F7E +:100E000036C0C73020E5D20721F48091FA018B7FEC +:100E10002EC0C93080E5D80719F48091FA0126C0A8 +:100E2000CB3090E5D90721F48091FA018F7E1FC065 +:100E3000CD3020E5D20721F48091FA018F7D17C0D3 +:100E4000CF3080E5D80721F48091FA018F7B0FC065 +:100E5000C13190E5D90721F48091FA018F7707C05D +:100E6000C331D04531F48091FA018B7F877F809325 +:100E7000FA018091FA010E94631DABC08D2F992762 +:100E80008F70992781309105D9F49E012370332703 +:100E900002C0880F991F2A95E2F79C688E0144E0F2 +:100EA000000F111F4A95E1F700271370802B912B3B +:100EB00053E0CC0FDD1F5A95E1F7C076DD272FC038 +:100EC0008230910531F4DC2FCC278E01016F106A3E +:100ED00080C08330910569F4CE018370992701E0C9 +:100EE00010E002C0000F111F8A95E2F7C8019C684C +:100EF0000FC084309105B9F4CE018370992701E0C9 +:100F000010E002C0000F111F8A95E2F7C8019A682D +:100F100023E0CC0FDD1F2A95E1F7C07ED7708C014E +:100F20000C2B1D2B56C08530910531F4DC2FCC27BE +:100F30008E01046F106A4DC0069709F04AC0CF7148 +:100F4000DD27DC2FCC278E01106243C000E010E0CB +:100F500040C08E013EC001E810E43BC003E810E44D +:100F600038C002EE14E435C009EE14E432C00AEED3 +:100F700014E42FC005EB14E42CC006EB14E429C0E4 +:100F800007EB14E426C00CEC14E423C00DEC14E4CD +:100F900020C003E815E41DC00AE815E41AC002E900 +:100FA00015E417C004E915E414C001E216E411C009 +:100FB00003E216E40EC004E216E40BC005E216E4F8 +:100FC00008C006E216E405C007E216E402C00AE221 +:100FD00016E4C801DF91CF911F910F91089596E01B +:100FE000799FF001112494E5899FE00DF11D1124F2 +:100FF000E60FF11DEE0FFF1FE65FFE4F8591949106 +:10100000803E9105E0F4803C910558F581339105CF +:1010100009F46FC048F48932910509F463C08A323B +:10102000910509F46DC072C089339105E9F08238E9 +:101030009105D1F08533910509F44DC067C0833E19 +:10104000910581F138F4803E9105B9F0823E910519 +:10105000D9F05CC0863E910561F1873E9105A1F112 +:1010600055C00E94AC0508952091FA0120FD02C0F0 +:1010700021FF4CC080EE90E049C08091FA0180FFD2 +:10108000F9CF89E390E042C08091FA0182FF0EC05F +:101090008091FA0184FF03C080E090E037C083EEC6 +:1010A00090E034C08091FA0182FFF2CF82EE90E0AE +:1010B0002DC08091FA0183FF0BC08091FA0184FD5D +:1010C000EBCF87EE90E022C08091FA0183FFF5CF4D +:1010D00086EE90E01BC08091FA0185FF07C089E28F +:1010E00090E014C08091FA0185FFF9CF85E390E08C +:1010F0000DC08091FA0186FF07C08AE290E006C029 +:101100008091FA0186FFF9CF81E390E00E94BC054F +:10111000089508950C94890880916E010895CF93E5 +:10112000DF9300D01F92CDB7DEB79C018091F10113 +:10113000843019F593E099833B832A839093E900E7 +:101140008FEF9091E800815095FD06C095ED9A953E +:10115000F1F700008111F5CF8091E80085FF0DC007 +:1011600040E050E063E070E0CE0101960E94F90A91 +:101170008091E8008E778093E8000F900F900F9099 +:10118000DF91CF910895CF93DF9300D01F92CDB719 +:10119000DEB72091F101243021F522E029839B83E1 +:1011A0008A8383E08093E9008FEF9091E80081507B +:1011B00095FD06C095ED9A95F1F700008111F5CFE8 +:1011C0008091E80085FF0DC040E050E063E070E0F2 +:1011D000CE0101960E94F90A8091E8008E778093F3 +:1011E000E8000F900F900F90DF91CF91089520911C +:1011F000F1012430F1F422E02093E9002FEF309147 +:10120000E800215035FD06C035ED3A95F1F70000B4 +:101210002111F5CF2091E80025FF0BC040E050E000 +:1012200065E070E00E94F90A8091E8008E77809373 +:10123000E8000895CF93DF93EC019091F101943091 +:1012400009F046C080910C018823D9F080910D01EE +:101250008823B9F09093E9008FEF9091E8008150D6 +:1012600095FD06C095E19A95F1F700008111F5CF43 +:101270008091E80085FF2CC040E050E060E170E024 +:1012800017C081E08093E9008FEF9091E8008150D2 +:1012900095FD06C095ED9A95F1F700008111F5CF07 +:1012A0008091E80085FF14C040E050E068E070E005 +:1012B000CE010E94F90A8091E8008E778093E800C1 +:1012C00080E1FE01AEE5B1E001900D928A95E1F773 +:1012D000DF91CF9108958091F001811109C00E94A2 +:1012E0008E0C0E94EB0C8091E20084608093E200FF +:1012F00008951092F001089508950C94D2210E944F +:10130000331B0E94D8210E94910F0C948A0842E05E +:1013100061EC81E00E94080C42E061EC82E00E94F6 +:10132000080C42E061EC83E00E94080C42E161ECB1 +:1013300084E00C94080C8091F301833009F455C0CB +:1013400030F4813071F0823009F48EC008958A3013 +:1013500009F47AC08B3009F460C0893009F09CC070 +:1013600020C08091F201813A09F096C08091E80096 +:10137000877F8093E8008091F6019091F701892B97 +:1013800021F460E18EE591E003C060E080E090E050 +:1013900070E00E94440B8091E8008B778093E80016 +:1013A00008958091F201813209F076C08091F601B2 +:1013B0009091F701009719F0039709F06DC08091A3 +:1013C000E800877F8093E8008091E80082FD05C0F7 +:1013D0008091F1018111F8CF5FC08091F10080937D +:1013E0006E018091E8008B7753C08091F201813AC1 +:1013F00009F052C08091F6019091F701892B09F014 +:101400004BC08091E800877F8093E8008091E800DE +:1014100080FFFCCF80910C0136C08091F2018132B7 +:10142000D9F58091F6019091F701892BA9F580916A +:10143000E800877F8093E8000E943D0C8091F401D2 +:1014400080930C010C942A148091F201813221F5D1 +:101450008091E800877F8093E8000E943D0C809196 +:10146000F50180936F0108958091F201813AA1F412 +:101470008091E800877F8093E8008091E80080FFFA +:10148000FCCF80916F018093F1008091E8008E770E +:101490008093E8000C943D0C089584B7877F84BF47 +:1014A00088E10FB6F89480936000109260000FBE40 +:1014B00090E080E80FB6F89480936100909361000B +:1014C0000FBE0E94E00F0E948E0C0E94EB0C8091D8 +:1014D000E20084608093E20078940E94710F0E9481 +:1014E000E20F82E091E00E948C0F0E94C021809167 +:1014F000F101853069F40E94FA1A8091EF01882386 +:10150000B1F30E94251B882391F30E94E30AEFCFD9 +:101510000E94E80FECCF292F332723303105C9F083 +:1015200064F42130310581F02230310509F043C0E7 +:101530008DE690E02EE832E042C021323105F1F034 +:101540002232310541F137C082E190E02BEF32E0E9 +:1015500036C099278130910541F08230910541F0E4 +:10156000892B49F5EAE8F2E005C0E2E7F2E002C0C3 +:10157000EAE5F2E0849190E09F0121C06430D8F464 +:10158000E62FF0E0EE0FFF1FEE5DFE4F2081318170 +:1015900089E090E014C0643070F470E0FB01EE0F5D +:1015A000FF1FE65EFE4F20813181FB01EA5EFE4FA8 +:1015B000808190E004C080E090E020E030E0FA011B +:1015C00031832083089580E189BD82E189BD09B41A +:1015D00000FEFDCF8091D8008F7D8093D800809150 +:1015E000E00082608093E0008091E00081FDFCCF0C +:1015F0000895CF92DF92EF92FF920F931F93CF93B4 +:10160000DF93EC018B016A010E945C0C811133C0F5 +:10161000C114D10439F0F60180819181081B190BA6 +:10162000C80FD91FE12CF12C0115110519F180917A +:10163000E80085FD16C08091E8008E778093E80071 +:10164000C114D10449F0F60180819181E80EF91EA0 +:10165000F182E08285E00FC00E945C0C882321F3B8 +:101660000AC089918093F10001501109FFEFEF1A30 +:10167000FF0ADACF80E0DF91CF911F910F91FF90A9 +:10168000EF90DF90CF9008952091F8013091F9010B +:101690002617370748F06115710539F42091E800E5 +:1016A0002E772093E80001C0B90140E06115710573 +:1016B000A9F12091F101222309F443C0253009F456 +:1016C00042C02091E80023FD40C02091E80022FDA7 +:1016D00032C02091E80020FFE9CF4091F300209133 +:1016E000F20030E0342BFC01CF016115710559F097 +:1016F0002830310540F481918093F10061507109E7 +:101700002F5F3F4FF1CF41E02830310509F040E035 +:101710002091E8002E772093E800C8CF4111C9CF6F +:101720000AC08091F101882361F0853061F08091D9 +:10173000E80083FD0AC08091E80082FFF2CF80E0DC +:10174000089582E0089583E0089581E0089520914E +:10175000F8013091F9012617370748F06115710536 +:1017600039F42091E8002E772093E80001C0B901F8 +:10177000FC0120E06115710591F18091F101882350 +:1017800009F440C0853009F43FC08091E80083FD32 +:101790003DC08091E80082FD2FC08091E80080FF6D +:1017A000E9CF2091F3008091F20090E0922B611537 +:1017B000710559F08830910540F424912093F1008F +:1017C0003196615071090196F2CF21E0089709F036 +:1017D00020E08091E8008E778093E800CBCF211144 +:1017E000CCCF0AC08091F101882361F0853061F08F +:1017F0008091E80083FD0AC08091E80082FFF2CF6B +:1018000080E0089582E0089583E0089581E00895DE +:10181000982F973058F59093E900981739F0709108 +:10182000EC002091ED005091F00003C0242F762FA2 +:1018300050E021FF19C03091EB003E7F3093EB0068 +:101840003091ED003D7F3093ED003091EB00316041 +:101850003093EB007093EC002093ED005093F00078 +:101860002091EE0027FF07C09F5FD3CF8F7080933A +:10187000E90081E0089580E008958091F20187FFFA +:1018800011C08091E80082FD05C08091F1018111B5 +:10189000F8CF11C08091E8008B770BC08091F101E7 +:1018A000882349F08091E80080FFF8CF8091E8001C +:1018B0008E778093E80008952091E4003091E50050 +:1018C00095E64091EC00842F817040FF22C080910A +:1018D000E80080FD1CC08091F101882391F08530E3 +:1018E00091F08091EB0085FD10C04091E400509193 +:1018F000E5004217530729F39A01915011F784E04C +:10190000089582E0089583E0089581E0089580E0DD +:1019100008954091E80042FFDECF08950E94FC0C3C +:101920000E94040DE0EEF0E0808181608083E8EDAC +:10193000F0E080818F77808319BCA7EDB0E08C91B7 +:101940008E7F8C9380818F7E80831092F00108952A +:101950000F931F93CF93DF930E94FC0C0E94040D02 +:10196000C8EDD0E088818F778883888180688883FC +:1019700088818F7D888319BC1092F1011092ED014E +:101980001092EF011092EE0100EE10E0F80180815C +:101990008B7F808388818160888342E060E080E083 +:1019A0000E94080CE1EEF0E080818E7F8083E2EE01 +:1019B000F0E0808181608083808188608083F8018D +:1019C00080818E7F8083888180618883DF91CF9141 +:1019D0001F910F910895E8EDF0E080818F7E808364 +:1019E000E7EDF0E080818160808384E082BF81E068 +:1019F0008093F0010C94A80CE8EDF0E080818E7FDC +:101A000080831092E20008951092DA001092E100B3 +:101A100008951F920F920FB60F9211242F933F93A8 +:101A20004F935F936F937F938F939F93AF93BF93E6 +:101A3000EF93FF938091E10082FF0BC08091E20061 +:101A400082FF07C08091E1008B7F8093E1000E94BC +:101A5000700F8091DA0080FF1FC08091D80080FF56 +:101A60001BC08091DA008E7F8093DA008091D900CC +:101A700080FF0DC080E189BD82E189BD09B400FE0F +:101A8000FDCF81E08093F1010E946B0905C019BC74 +:101A90001092F1010E9479098091E10080FF19C044 +:101AA0008091E20080FF15C08091E2008E7F8093DC +:101AB000E2008091E20080618093E2008091D80092 +:101AC00080628093D80019BC85E08093F1010E9468 +:101AD0007D098091E10084FF30C08091E20084FFA5 +:101AE0002CC080E189BD82E189BD09B400FEFDCF33 +:101AF0008091D8008F7D8093D8008091E1008F7E07 +:101B00008093E1008091E2008F7E8093E2008091DB +:101B1000E20081608093E2008091ED01882311F062 +:101B200084E007C08091E30087FD02C081E001C02E +:101B300083E08093F1010E947F098091E10083FF9F +:101B400029C08091E20083FF25C08091E100877F5A +:101B50008093E10082E08093F1011092ED01809189 +:101B6000E1008E7F8093E1008091E2008E7F809380 +:101B7000E2008091E20080618093E20042E060E058 +:101B800080E00E94080C8091F00088608093F00053 +:101B90000E947C09FF91EF91BF91AF919F918F912E +:101BA0007F916F915F914F913F912F910F900FBE59 +:101BB0000F901F9018951F920F920FB60F9211243D +:101BC0002F933F934F935F936F937F938F939F9345 +:101BD000AF93BF93CF93DF93EF93FF93C091E9004F +:101BE000CF708091EC00D82FD17080FDD0E810929A +:101BF000E9008091F000877F8093F00078940E9444 +:101C00001F0E1092E9008091F00088608093F00030 +:101C1000CD2BCF70C093E900FF91EF91DF91CF9171 +:101C2000BF91AF919F918F917F916F915F914F91F4 +:101C30003F912F910F900FBE0F901F9018951F93FB +:101C4000CF93DF93CDB7DEB7AA970FB6F894DEBF78 +:101C50000FBECDBFE2EFF1E088E08E0F9091F10072 +:101C600091938E13FBCF0E949B098091E80083FF24 +:101C70001FC18091F2019091F301492F50E04A3049 +:101C8000510508F015C1FA01EA5AFF4F0C945A2386 +:101C9000803881F0823809F00BC18091F6018F7095 +:101CA0008093E9008091EB0085FB882780F91092F2 +:101CB000E90006C08091EE019091EF0191118260E0 +:101CC0009091E800977F9093E8008093F100109244 +:101CD000F100C8C0282F2D7F09F0EAC0882319F031 +:101CE000823061F0E5C08091F401813009F0E0C0FC +:101CF000933009F080E08093EF012BC08091F401D4 +:101D0000811127C08091F6018F7009F4D1C08093B2 +:101D1000E9002091EB0020FF1CC0933021F480915A +:101D2000EB00806214C09091EB0090619093EB0007 +:101D300021E030E0A90102C0440F551F8A95E2F767 +:101D40004093EA001092EA008091EB008860809353 +:101D5000EB001092E9008091E800877F86C0811136 +:101D6000A7C01091F4011F778091E3008078812B48 +:101D70008093E3008091E800877F8093E8000E94D1 +:101D80003D0C8091E80080FFFCCF8091E3008068EB +:101D90008093E300111102C082E001C083E08093D0 +:101DA000F10186C08058823008F082C08091F40131 +:101DB0009091F5018C3D53E0950779F583E08A8396 +:101DC0008AE289834FB7F894DE01139620E03EE063 +:101DD00051E2E32FF0E050935700E49120FF03C05D +:101DE000E295EF703F5FEF708E2F90E0EA3010F0D9 +:101DF000C79601C0C0968D939D932F5F243149F7FC +:101E00004FBF8091E800877F8093E8006AE270E02E +:101E1000CE0101960E94440B14C0AE014F5F5F4F8C +:101E20006091F6010E948B0ABC01009709F440C042 +:101E30009091E800977F9093E80089819A810E94B1 +:101E4000A70B8091E8008B778093E80031C0803841 +:101E500079F58091E800877F8093E8008091ED011B +:101E60008093F1008091E8008E778093E8000E94D3 +:101E70003D0C1EC081111CC09091F4019230C0F441 +:101E80008091E800877F8093E8009093ED010E94A5 +:101E90003D0C8091ED01811106C08091E30087FD2A +:101EA00002C081E001C084E08093F1010E948709B3 +:101EB0008091E80083FF0AC08091E800877F8093CB +:101EC000E8008091EB0080628093EB00AA960FB649 +:101ED000F894DEBF0FBECDBFDF91CF911F91089563 +:101EE0000895CF938091F1018823A1F0C091E9007A +:101EF000CF709091EC00892F817090FD80E8C82B05 +:101F00001092E9008091E80083FD0E941F0ECF70BF +:101F1000C093E900CF910895909375018093740167 +:101F20000895E0917401F0917501309721F00190CE +:101F3000F081E02D099480E00895E0917401F09122 +:101F40007501309721F00280F381E02D0994089506 +:101F5000E0917401F0917501309721F00480F581D2 +:101F6000E02D099408952091720130917301821738 +:101F7000930771F09093730180937201E091740163 +:101F8000F0917501309721F00680F781E02D0994DA +:101F9000089520917001309171018217930771F0BB +:101FA0009093710180937001E0917401F09175013B +:101FB000309721F00084F185E02D0994089508956B +:101FC0000C94DF0F0E94391B0E94DD020C94FB1B56 +:101FD0009F92AF92BF92CF92DF92EF92FF920F93B8 +:101FE0001F93CF93DF9300D000D000D0CDB7DEB7E2 +:101FF0000E94F5020DE010E0AA24A394B12C902ECB +:10200000802F0E94E303980129583E4F6901F9018E +:10201000F080F826A1F40150110988F78FEF898329 +:102020008A831B820E94421B8160782F9D838C8350 +:1020300049815A816B818D810E947F102FC09091C0 +:10204000DA0191FF04C08E830E94E9038E8125E0AE +:1020500030E0A501022E01C0440F0A94EAF7E42EF5 +:102060004F21C1F029839A828E2191E009F490E0FA +:102070009B830E94421B8160782F9D838C834981C2 +:102080005A816B818D810E947F10F6018081E82644 +:10209000E08204C021503109E0F6BDCF0E94E21E6B +:1020A000109176010E94910F1817B9F00E94910FBC +:1020B0008093760126960FB6F894DEBF0FBECDBF93 +:1020C000DF91CF911F910F91FF90EF90DF90CF9014 +:1020D000BF90AF909F900C948A0826960FB6F89404 +:1020E000DEBF0FBECDBFDF91CF911F910F91FF904B +:1020F000EF90DF90CF90BF90AF909F900895CF93D7 +:10210000DF93CDB7DEB72B970FB6F894DEBF0FBEC7 +:10211000CDBF4F83588769877A878B87DE011196F9 +:1021200086E0FD0111928A95E9F785E0FE01379678 +:1021300001900D928A95E1F749815A816B817C81EA +:102140008D819E810E94C8162B960FB6F894DEBF33 +:102150000FBECDBFDF91CF910895CF93882309F4AF +:10216000C2C0C82F823859F40E94910F81FDBBC0B4 +:1021700089E30E94A2190E946F1A89E30CC0833878 +:1021800079F40E94910F80FDAEC083E50E94A219F0 +:102190000E946F1A83E50E94E419CF910C946F1A84 +:1021A000843859F40E94910F82FD9DC087E40E94FB +:1021B000A2190E946F1A87E4EECF8CEF8C0F813A40 +:1021C00048F48C2F0E94252181118DC08C2F0E94F4 +:1021D000A219E3CF80E28C0F883048F4C77081E009 +:1021E00001C0880FCA95EAF70E94281AD6CF8BE55E +:1021F0008C0F833078F4C53A29F0C63A31F083E881 +:1022000090E005C081E890E002C082E890E0CF91C4 +:102210000C94B30F88E58C0F833108F064C0C83A82 +:1022200039F1C93A41F1CA3A49F1CB3A51F1CC3AC4 +:1022300059F1CD3A61F1C03B69F1CE3A71F1CF3A33 +:1022400079F1C13B81F1C23B89F1C33B91F1C43BC0 +:1022500099F1C53BA1F1C63BA9F1C73BB1F1C83B20 +:10226000B9F1C93BC1F1CA3BC9F180E090E038C087 +:1022700082EE90E035C089EE90E032C08AEE90E0C8 +:102280002FC085EB90E02CC086EB90E029C087EB57 +:1022900090E026C08CEC90E023C08DEC90E020C054 +:1022A00083E891E01DC08AE891E01AC082E991E0DC +:1022B00017C084E991E014C081E292E011C083E28A +:1022C00092E00EC084E292E00BC085E292E008C08A +:1022D00086E292E005C087E292E002C08AE292E0E4 +:1022E000CF910C94C90FCF910895882309F44BC066 +:1022F000823859F40E94910F81FF45C089E30E9402 +:10230000A2190E946F1A89E30CC0833871F40E94ED +:10231000910F80FF38C083E50E94A2190E946F1AB6 +:1023200083E50E94E4190C946F1A843859F40E94D2 +:10233000910F82FF28C087E40E94A2190E946F1AA1 +:1023400087E4EFCF9CEF980F913A58F390E2980F03 +:10235000983050F4877091E001C0990F8A95EAF7A0 +:10236000892F0E942E1ADFCF9BE5980F933020F41F +:1023700080E090E00C94B30F885A833120F480E021 +:1023800090E00C94C90F0895882321F00E94281A28 +:102390000C946F1A0895882321F00E942E1A0C9431 +:1023A0006F1A08957F928F929F92AF92BF92CF92B1 +:1023B000DF92EF92FF920F931F93CF93DF931F92C1 +:1023C000CDB7DEB77C01C62E772EFC0105810295C4 +:1023D0000F70128111110E94451A0E949B198823C7 +:1023E00079F0112369F080E28C0D883048F082E0AA +:1023F0000E9484190E949B1991E0D82ED92601C011 +:10240000D12CE72DE295EF70F0E0E05AFF4F0C94ED +:102410005A23872D807F072D0F70882311F0029596 +:10242000007F112389F0002309F490C180E28C0D14 +:10243000883020F4802F0E94281A03C0802F0E9429 +:10244000381A0E946F1A82C18C2D0E9475110023C8 +:1024500009F495C180E28C0D883020F4802F0E9411 +:102460002E1A03C0802F0E943E1A0E946F1A87C145 +:10247000972D907F872D8F70903211F08295807FFD +:10248000CC2021F0F1E0CF16B1F01EC0112349F0AD +:10249000002309F414C1013009F011C10E94581A37 +:1024A0006EC1002319F0013009F469C189830E94CB +:1024B0005B1A89810AC1112321F0023008F05FC143 +:1024C000FEC001115CC101C1112321F0002309F4F8 +:1024D000F6C03CC1002309F4F8C03EC1872D8695A3 +:1024E0008695837090E0009719F0019761F047C1DD +:1024F000112321F08C2D972D937002C080E090E085 +:102500000E94B30F3CC1112321F08C2D972D9370A5 +:1025100002C080E090E00E94C90F31C18C2D1123D0 +:1025200019F00E94EA1D02C00E94521E0E94D71E8E +:1025300026C1872D837009F052C0111120C18C2D46 +:10254000829586958770880F880F9C2D9F70892EA5 +:10255000912CA12CB12C082E04C0880C991CAA1C0B +:10256000BB1C0A94D2F7C4FE14C00FE010E020E0B8 +:1025700030E0B901A80104C0440F551F661F771F42 +:102580008A95D2F7CB01BA016095709580959095A8 +:1025900003C060E070E0CB01272D269526952370BF +:1025A00030E02230310569F02330310589F06829A7 +:1025B00079298A299B292130310571F00E94101850 +:1025C000DEC0682979298A299B290E942C18D7C046 +:1025D0000E941018C501B4010E94F417D0C0112345 +:1025E00019F0872D817001C08695882309F4C7C032 +:1025F0008C2D829586958770880F880F9C2D9F70F3 +:10260000892E912CA12CB12C082E04C0880C991C69 +:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041 +:1026200020E030E0B901A80104C0440F551F661F27 +:10263000771F8A95D2F7CB01BA0160957095809586 +:10264000909503C060E070E0CB01272D269526957C +:102650002370422F50E04230510569F0433051055C +:1026600089F0682979298A299B294130510571F01F +:102670000E94EA1884C0682979298A299B290E9426 +:1026800006197DC00E94EA18C501B4010E94CE1847 +:1026900076C08C2D90E0FC01E05EF109E531F1059A +:1026A00008F050C0E059FF4F0C945A230C2D0F70C6 +:1026B000872D8F71112331F00E946718802F0E949F +:1026C000C4115DC00E948818802F0E94CB1157C092 +:1026D000112339F0011153C0872D8F710E94AD185D +:1026E0004EC0023008F04BC0F7CF112339F0872DD0 +:1026F0008F710E94671843C01123C9F3872D8F7112 +:102700000E9488183CC0112329F0872D8F710E94E8 +:10271000521835C00E94481832C0112351F0172DAD +:102720001F71812F0E94671863E0812F0E947B191F +:1027300026C081E00E948419023008F182E00E94E4 +:1027400084191DC0112331F0002389F28C2D0E94C1 +:10275000AD1015C0002391F28C2D0E9475110FC091 +:10276000472D4F706C2DC7010E94BF040E946C174B +:1027700006C0472D4F706C2DC7010E949905DD20C2 +:10278000F9F00E94771980FD1BC0F70112820E94A8 +:1027900071190E946718C7010E94EF130E947119F6 +:1027A0000F90DF91CF911F910F91FF90EF90DF90ED +:1027B000CF90BF90AF909F908F907F900C9488188F +:1027C0000F90DF91CF911F910F91FF90EF90DF90CD +:1027D000CF90BF90AF909F908F907F9008950F9370 +:1027E0001F93CF93DF93EC01888199812B813C81EA +:1027F000232BB9F09F3F11F48F3F99F0CE010E9437 +:10280000F104882371F0688179818A810E946D19B1 +:102810008C010E9422190E94E917B801CE010E9482 +:10282000D211DF91CF911F910F9108950E94451A07 +:102830000E94551A0E941A1A0E946F1A0E94881F3D +:102840000E94D71E80E090E00E94B30F80E090E0ED +:102850000C94C90F0E94351A0C9416140E94621928 +:10286000292F22952F7030E02C3031054CF42A307E +:1028700031056CF42250310922303105A8F407C02B +:102880002C30310569F02F30310551F00DC0803FFB +:1028900069F018F4803E40F409C0843F29F406C072 +:1028A00093FB882780F9089580E0089581E00895DA +:1028B000CF93DF9300D000D01F92CDB7DEB70F903B +:1028C0000F900F900F900F90DF91CF910895CF93BD +:1028D000DF9300D000D000D0CDB7DEB726960FB67C +:1028E000F894DEBF0FBECDBFDF91CF9108951F9347 +:1028F000CF93DF93C091850116E080918601C817C0 +:1029000099F0D0E01C9FF0011D9FF00D1124E957B4 +:10291000FE4F4081518162817381848195810E9443 +:1029200067142196C770E9CFDF91CF911F91089569 +:102930004091B7015091B8016091B9017091BA010D +:102940008091BB019091BC010C9467148091BC01F3 +:1029500082958F7009F054C08091B901882309F4E1 +:102960004FC080918501A09186016091B70170915F +:10297000B8014091BA015091BB01B6E08A1709F441 +:102980003FC090E041155105C1F17F3F11F46F3F09 +:10299000A1F1B89FF001B99FF00D1124E957FE4F46 +:1029A000218172132AC02081621327C02281211144 +:1029B00024C0238134812417350710F421503109B4 +:1029C000241B350B283C3105C0F42091BC012F702D +:1029D00020612093BC0126E0289FF001299FF00D83 +:1029E0001124E457FE4F80818F708061808387EBD4 +:1029F00091E00E94EF130C94771401968770BECF7C +:102A00000895CF92DF92EF92FF920F931F93CF938F +:102A1000DF93CDB7DEB762970FB6F894DEBF0FBE77 +:102A2000CDBF8C0185E0F801DE011D9601900D926D +:102A30008A95E1F7D8014C9111965C911197129605 +:102A40006C9112971396CD90DC9014973091B7014A +:102A50007091B8018091BA019091BB01009709F47F +:102A60006BC17F3F19F43F3F09F466C1E090B901A3 +:102A7000EE2009F4C0C02091BC01C816D90628F088 +:102A8000F601E81BF90BCF0104C0809590958C0DE1 +:102A90009D1DFF24F394883C910578F0F12C207F54 +:102AA00009F0C6C07C2DD98AC88A89890E94581429 +:102AB00087EB91E00E94EF13B1C0822F807F09F075 +:102AC00046C0751314C0341312C0611110C02F70AA +:102AD00020612093BC010E94981487EB91E00E9432 +:102AE000EF138091BC01D80115968C932EC0CD2890 +:102AF00019F15F3F11F44F3FF9F0F62E61111CC040 +:102B0000809185012091860136E0821709F45AC030 +:102B100090E0389FF001399FF00D1124E957FE4FE6 +:102B20007181571306C07081471303C07281711100 +:102B300003C001968770E9CFF62E662309F418C109 +:102B40008091BC0181608093BC01F12C11C175138F +:102B500008C0341306C0611104C08091BC01D801C3 +:102B6000C3C04D875E878D859E856A8B0E942E141B +:102B70006A898823E1F16623D1F12091BC01822F7B +:102B800082958F7090E0029774F08091B7019091D8 +:102B9000B80198878F831986DB86CA862C87CE0179 +:102BA00007960E94EF1386E0F801A7EBB1E00190D1 +:102BB0000D928A95E1F70E94A6140E949814FF24B2 +:102BC000F394D6C04D875E878D859E850E946219DD +:102BD000292F22952F7030E0223031050CF0BCC037 +:102BE0009F7009F0B6C0805E883008F4C1C0C8018B +:102BF0000E94EF13E4CFC816D90608F453C0F601BB +:102C0000E81BF90BCF01883C910508F450C0F12C6A +:102C10007C2DD98AC88A89890E945814E7EBF1E093 +:102C200086E0DF011D928A95E9F70E949814A0C002 +:102C3000751314C0341312C0611110C08091BC010F +:102C4000F8018583C8010E94EF1386E0E7EBF1E00D +:102C5000DF011D928A95E9F7FE2C8AC04D875E87B9 +:102C60008D859E856A8B0E942E146A89882309F4BB +:102C7000BECF662309F4BBCF2091BC01822F829581 +:102C80008F7090E002970CF48ECF8091B7019091F5 +:102C9000B8019A8389831B82DD82CC822E83CE0188 +:102CA00001967FCF809590958C0D9D1DACCFF62E13 +:102CB000662309F49CCF75132EC034132CC02091C9 +:102CC000BC0120FD1FC0822F82958F70D9F0D801E2 +:102CD00015962C9315978F3049F08F5F982F92950A +:102CE000907F822F8F70892B15968C93C8010E943C +:102CF000EF1386E0F801A7EBB1E001900D928A9501 +:102D0000E1F793CF86E0F801A7EBB1E001900D92D7 +:102D10008A95E1F72DC04D875E878D859E850E943F +:102D20002E14811140CF8091BC0181608093BC0141 +:102D3000C8010E94EF131CC0662309F458CF4D87C9 +:102D40005E878D859E850E942E14882309F44FCFBF +:102D50002ACF811148CF0CC0243031050CF047CF69 +:102D60009F7009F440CFF8019581907F09F03BCF27 +:102D70008F2D62960FB6F894DEBF0FBECDBFDF91E8 +:102D8000CF911F910F91FF90EF90DF90CF9008951A +:102D90001F93CF93DF93CDB7DEB72C970FB6F89480 +:102DA000DEBF0FBECDBF4F83588769877A878B8779 +:102DB0009C87CE0107960E940115882369F08F81B8 +:102DC00098852A853B85232BF1F19F3F09F063C04D +:102DD0008F3F09F060C037C086E0FE013796DE0104 +:102DE000119601900D928A95E1F76F817885EA85B9 +:102DF000FB85309741F17F3F11F46F3F21F1209126 +:102E0000860130E0C90101968770992740918501BC +:102E100050E08417950709F447C069837A83FD83DE +:102E2000EC8396E0929FD001939FB00D1124A95797 +:102E3000BE4FFE01319601900D929A95E1F7809375 +:102E400086010E94771416E0809185019091860199 +:102E50008917C1F1189FC001112489579E4F0E9404 +:102E60000115882379F1E09185011E9FF00111245D +:102E7000E957FE4F40815181628173818481958140 +:102E80000E9467148091850190E0019687709927D0 +:102E900080938501D9CF4F81588569857A858B8547 +:102EA0009C850E946714CFCF0E942A14109286013D +:102EB00010928501E7EBF1E086E0DF011D928A9533 +:102EC000E9F7C1CF2C960FB6F894DEBF0FBECDBF89 +:102ED000DF91CF911F910895EF92FF920F931F936F +:102EE000CF93DF938C01009709F46CC0F12CEE2492 +:102EF000E394E8012196F8018491843740F484300A +:102F000008F051C0813081F0823019F15BC0853703 +:102F100009F444C0A8F19CE7980F903708F052C01C +:102F20008F770E94751141C00E5F1F4FFE01C49143 +:102F300080E28C0F883048F4C7708E2D01C0880F56 +:102F4000CA95EAF70E94481A14C08C2F0E94AD104F +:102F50002DC00E5F1F4FFE01C49180E28C0F8830A0 +:102F600058F4C7708E2D01C0880FCA95EAF70E94E9 +:102F70004E1A0E946F1A1AC08C2F0E94751116C02B +:102F80000E5F1F4FFE01C491CC2381F08FE99FE0BB +:102F90000197F1F700C00000C150F6CF0E5F1F4F40 +:102FA000FE01F49003C00E94AD108E018F2D882386 +:102FB00009F49FCFEFE9FFE03197F1F700C000007F +:102FC0008150F5CFDF91CF911F910F91FF90EF903E +:102FD000089508956093C1017093C2018093C30165 +:102FE0009093C4010C9416140F931F930091C10188 +:102FF0001091C2012091C3013091C401DC01CB01C9 +:10300000802B912BA22BB32B8093C1019093C201F3 +:10301000A093C301B093C4011F910F910C94161497 +:103020000F931F930091C1011091C2012091C30120 +:103030003091C401DC01CB0180239123A223B3236F +:103040008093C1019093C201A093C301B093C401C6 +:103050001F910F910C9416140F931F930091C101AF +:103060001091C2012091C3013091C401DC01CB0158 +:1030700080279127A227B3278093C1019093C20193 +:10308000A093C301B093C4011F910F910C94161427 +:103090001092BD011092BE011092BF011092C001AA +:1030A0000C94161441E050E060E070E004C0440F5E +:1030B000551F661F771F8A95D2F74093BD01509325 +:1030C000BE016093BF017093C0010C94161441E0DF +:1030D00050E060E070E004C0440F551F661F771F8A +:1030E0008A95D2F78091BD019091BE01A091BF0158 +:1030F000B091C001482B592B6A2B7B2B4093BD010B +:103100005093BE016093BF017093C0010C941614DC +:1031100041E050E060E070E004C0440F551F661FBE +:10312000771F8A95D2F7409550956095709580915C +:10313000BD019091BE01A091BF01B091C001482393 +:1031400059236A237B234093BD015093BE016093B2 +:10315000BF017093C0010C94161441E050E060E090 +:1031600070E004C0440F551F661F771F8A95D2F781 +:103170008091BD019091BE01A091BF01B091C001AD +:10318000482759276A277B274093BD015093BE01EA +:103190006093BF017093C0010C9416140F931F939A +:1031A0000091BD011091BE012091BF013091C0017D +:1031B000DC01CB01802B912BA22BB32B8093BD0183 +:1031C0009093BE01A093BF01B093C0011F910F91D6 +:1031D0000C9416140F931F930091BD011091BE0122 +:1031E0002091BF013091C001DC01CB0180239123EC +:1031F000A223B3238093BD019093BE01A093BF018E +:10320000B093C0011F910F910C9416140F931F934C +:103210000091BD011091BE012091BF013091C0010C +:10322000DC01CB0180279127A227B3278093BD0122 +:103230009093BE01A093BF01B093C0011F910F9165 +:103240000C9416140895CF92DF92EF92FF920F9391 +:103250001F93CF93DF938C01C090C101D090C20126 +:10326000E090C301F090C4018091BD019091BE0136 +:10327000A091BF01B091C001C82AD92AEA2AFB2A2D +:10328000CFE1D0E0D701C6010C2E04C0B695A795BA +:10329000979587950A94D2F780FF06C0B8018C2FC6 +:1032A0000E94EF07019721F4219760F780E001C0A9 +:1032B0008C2FDF91CF911F910F91FF90EF90DF90B6 +:1032C000CF900895CF93DF93EC010E942319BE01A4 +:1032D0000E94EF07DF91CF910895CB010E94621900 +:1032E00008958091C501859585958595089580916E +:1032F000C5018770089598E0899F90011124262BBD +:103300002093C5010C9467182091C50180958223F4 +:103310008093C501982F977069F430E0482F5527A6 +:1033200047FD50952417350729F085958595859596 +:103330000C94881808959091C501977081E009F464 +:1033400080E0089590910C01992321F090910D0156 +:10335000911109C020910E0130910F01F9013296AF +:103360009FEF40E01FC0982F9695969596959F30B9 +:1033700050F5E0910E01F0910F01E90FF11D8770FA +:1033800021E030E0A90102C0440F551F8A95E2F701 +:10339000CA019181892B818308959F3F39F04F5F46 +:1033A0004E3041F051915813F8CF0DC05111F7CF65 +:1033B000942FF5CF9F3F39F0F901E90FF11D97FDEB +:1033C000FA9582830895089590910C01992321F034 +:1033D00090910D01911109C020910E0130910F01C2 +:1033E000F9013296205F3F4F1FC0982F9695969512 +:1033F00096959F30F0F4E0910E01F0910F01E90FE6 +:10340000F11D877021E030E0A90102C0440F551F73 +:103410008A95E2F7CA018095918189238183089575 +:103420003196E217F30729F090819813F9CF1082B3 +:10343000F7CF089581E090E0E0910E01F0910F0147 +:10344000E80FF91F1082019680319105A9F70895C0 +:103450009091D901892B8093D901089580959091FD +:10346000D90189238093D90108951092D901089533 +:103470009091D801892B8093D801089580959091DF +:10348000D80189238093D80108951092D801089516 +:103490009091D701892B8093D701089580959091C1 +:1034A000D70189238093D70108951092D7010895F9 +:1034B0008093C60108951092C601089580910E016F +:1034C00090910F01FC0131969C01205F3F4F80E0FD +:1034D000919191118F5FE217F307D1F70895E09171 +:1034E0000E01F0910F018091D9018083E0910E01CE +:1034F000F0910F0190818091D801892B8083E09118 +:103500000E01F0910F0190818091D701892B80836A +:103510008091C601882361F0E0910E01F0910F01C6 +:103520009081892B80830E945E1A81111092C601BE +:1035300080910E0190910F010C949D0F20E0009757 +:1035400039F0AC0141505109842395232F5FF7CF07 +:10355000822F0895CF92DF92EF92FF926C01EE24BA +:10356000FF24C114D104E104F10421F0C701B60124 +:1035700020E101C020E0C72ED82EE92EFF24C1147F +:10358000D104E104F10419F0285FC701B6016B0111 +:103590007C0154E0F694E794D794C7945A95D1F7F8 +:1035A000C114D104E104F10419F02C5FC701B60184 +:1035B0006B017C0142E0F694E794D794C7944A9556 +:1035C000D1F7C114D104E104F10419F02E5FC70151 +:1035D000B601DC01CB01B695A79597958795892B08 +:1035E0008A2B8B2B09F02F5F822FFF90EF90DF90BB +:1035F000CF9008958091F101843021F11092DB0188 +:1036000020E488E190E00FB6F894A89580936000DC +:103610000FBE2093600080E00E948A0883B7817FFC +:10362000846083BF83B7816083BF7894889583B7B4 +:103630008E7F83BF88E10FB6F8948093600010926C +:1036400060000FBE0895089508950E94231B0E94F4 +:10365000F5020E94241B0E94EA0391E0811101C03F +:1036600090E0892F08950E942A140E94910F0C94D3 +:103670008A0882E084BD93E095BD9AEF97BD809360 +:103680006E0008952FB7F8948091DC019091DD01D0 +:10369000A091DE01B091DF012FBF0895CF92DF929C +:1036A000EF92FF920F931F932FB7F8944091DC0194 +:1036B0005091DD016091DE017091DF012FBF6A0141 +:1036C0007B01EE24FF248C0120E030E0C016D106FF +:1036D000E206F30610F4415051099A01281B390BF8 +:1036E000C9011F910F91FF90EF90DF90CF90089547 +:1036F0001F920F920FB60F9211248F939F93AF9347 +:10370000BF938091DC019091DD01A091DE01B09129 +:10371000DF010196A11DB11D8093DC019093DD01B5 +:10372000A093DE01B093DF01BF91AF919F918F9184 +:103730000F900FBE0F901F9018950E948E0CF8945A +:103740002FEF87EA91E6215080409040E1F700C0DA +:10375000000087E090EBDC018093FB019093FC017B +:10376000A093FD01B093FE019CE088E10FB6F894B0 +:10377000A895809360000FBE90936000FFCFEF92FA +:10378000FF920F931F93CF93DF93D82FCDE08C2F11 +:103790000E94E30305E010E0E82EF12CC701002EA3 +:1037A00002C0959587950A94E2F780FF09C0602FC3 +:1037B0007C2F80E00E949A05D81302C081E006C0E9 +:1037C0000150110958F7C15010F780E0DF91CF91F7 +:1037D0001F910F91FF90EF900895CF93C82F8CE227 +:1037E0000E94BF1B882321F08C2FCF910C94BF1B0C +:1037F00080E0CF910895CF930E94421D811102C0B5 +:103800000E94281DC5E6C15049F00E94F5028FE3D1 +:103810009CE90197F1F700C00000F5CF89E20E9412 +:10382000ED1B811113C18AE20E94ED1B81110E94E0 +:10383000281D85E00E94ED1B81110E949D1B0E94A6 +:103840004D1D8093DA0187E00E94ED1B8823A9F1CA +:103850008BE10E94ED1B882351F08091DA0181FBFE +:10386000222720F991E0922790FB81F90EC08EE08B +:103870000E94ED1B882361F08091DA0182FB2227F0 +:1038800020F991E0922790FB82F98093DA0115C02C +:1038900080E10E94ED1B9091DA01882341F093FBB7 +:1038A000222720F981E0822780FB93F904C0892F29 +:1038B000809580FB90F99093DA018091DA010E9463 +:1038C000511D0E945F1D8093FA0180EE0E94ED1B46 +:1038D000882341F08091FA01982F909590FB80F910 +:1038E0008093FA0189E30E94ED1B882359F08091AF +:1038F000FA0181FB222720F991E0922790FB81F9C0 +:103900008093FA0182EE0E94ED1B882359F080918A +:10391000FA0182FB222720F991E0922790FB82F99D +:103920008093FA0186EE0E94ED1B882359F0809166 +:10393000FA0183FB222720F991E0922790FB83F97B +:103940008093FA0183EE0E94ED1B882359F0809149 +:10395000FA0184FB222720F991E0922790FB84F959 +:103960008093FA0185E30E94ED1B882359F0809132 +:10397000FA0185FB222720F991E0922790FB85F937 +:103980008093FA0181E30E94ED1B882359F0809116 +:10399000FA0186FB222720F991E0922790FB86F915 +:1039A0008093FA0181E10E94ED1B882359F08091F8 +:1039B000FA0187FB222720F991E0922790FB87F9F3 +:1039C0008093FA018091FA010E94631D8091FA01AF +:1039D00087FB882780F980930D0187E20E94ED1B09 +:1039E000C82F8EE10E94ED1B8111C2608FE10E9401 +:1039F000ED1B8111C46080E20E94ED1B8111C86043 +:103A000081E20E94ED1B8111C06182E20E94ED1BE8 +:103A10008111C06283E20E94ED1B8111C06484E2C7 +:103A20000E94ED1B882311F0C06802C0CC2329F04E +:103A30008C2F0E945A1D6C2F03C00E94561D682FA8 +:103A400070E080E090E0CF910C94EA17CF91089558 +:103A50006DEE7EEF80E090E00E94942360E082E0D3 +:103A600090E00E94822360E083E090E00E94822345 +:103A700060E084E090E00E94822360E085E090E0D6 +:103A80000C94822380E090E00E947C2321E08D3E14 +:103A90009E4F09F020E0822F089582E090E00C9480 +:103AA0007423682F82E090E00C94822383E090E0FE +:103AB0000C947423682F83E090E00C94822384E0BC +:103AC00090E00C947423682F84E090E00C9482239F +:103AD0008091E20180FF0BC06091130185E0689F37 +:103AE000B001112475956795759567952BC081FF79 +:103AF00009C06091130185E0689FB001112475959C +:103B0000679520C082FF07C06091130185E0689F20 +:103B1000B001112417C09091E3019923D1F0609175 +:103B20001201961788F72091130185E0289F9001D4 +:103B30001124929FA001939F500D112470E0CA019F +:103B40000E9446236038710540F46115710539F013 +:103B500002C065E070E0862F08958FE7089581E048 +:103B600008958091E20180FF08C06091110170E02A +:103B7000759567957595679521C081FF06C0609121 +:103B8000110170E07595679519C082FF04C06091BE +:103B9000110170E010C09091E3019923C1F0609190 +:103BA00010019617A0F780911101899FC00111247F +:103BB00070E00E9446236038710528F46115710594 +:103BC00021F0862F08958FE7089581E0089561E040 +:103BD00070E0F4CF803F21F40E94681D819504C0FD +:103BE000813F29F40E94681D8093E6010895823F79 +:103BF00021F40E94681D819504C0833F29F40E942E +:103C0000681D8093E5010895893F19F40E94B11D54 +:103C100005C08A3F31F40E94B11D81958093E70170 +:103C200008958B3F21F40E94B11D819504C08C3F03 +:103C300029F40E94B11D8093E8010895843F21F486 +:103C40008091E401816017C0853F21F48091E401F7 +:103C5000826011C0863F21F48091E40184600BC032 +:103C6000873F21F48091E401886005C0883F31F4EA +:103C70008091E40180618093E40108958D3F21F4F7 +:103C80008091E20181600BC08E3F21F48091E201BE +:103C9000826005C08F3F29F48091E20184608093A7 +:103CA000E2010895803F39F48091E60187FF6CC0FE +:103CB0001092E60169C0813F29F48091E60118164F +:103CC000BCF362C09091E501823F29F497FF5CC08C +:103CD0001092E50159C0833F19F41916CCF354C072 +:103CE000893F41F48091E70118160CF04DC0109205 +:103CF000E7014AC08A3F29F48091E70187FF44C069 +:103D0000F6CF8B3F39F48091E80187FF3DC01092D8 +:103D1000E8013AC08C3F29F48091E8011816BCF301 +:103D200033C0843F21F48091E4018E7F17C0853F2A +:103D300021F48091E4018D7F11C0863F21F48091B0 +:103D4000E4018B7F0BC0873F21F48091E401877FE2 +:103D500005C0883F31F48091E4018F7E8093E401B7 +:103D600013C08D3F21F48091E2018E7F0BC08E3F06 +:103D700021F48091E2018D7F05C08F3F29F480916D +:103D8000E2018B7F8093E2018091E50181110EC0F9 +:103D90008091E60181110AC08091E701811106C07E +:103DA0008091E801811102C01092E301089584EE30 +:103DB00091E00E94A80F0E94421B9093E101809322 +:103DC000E00108951F93CF93DF938091E0019091DC +:103DD000E1010E944E1BAC019091E301992321F077 +:103DE0002091140130E006C0209115018AE0289F3F +:103DF000900111244217530708F486C08091E50111 +:103E0000C091E601D091E7011091E801811107C04E +:103E1000C11176C0D11174C0111172C075C09F3F1D +:103E200019F09F5F9093E301181624F40E94681D17 +:103E30008093E5018091E50187FF05C00E94681D20 +:103E400081958093E5011C1624F40E94681D8093DF +:103E5000E6018091E60187FF05C00E94681D8195FB +:103E60008093E6016091E501662339F1C091E60196 +:103E7000CC2319F1772767FD7095872F972F0E9424 +:103E8000572223E333E343E35FE30E94BB220E9414 +:103E900024226093E5016C2F772767FD7095872FAB +:103EA000972F0E94572223E333E343E35FE30E940B +:103EB000BB220E9424226093E6011D1624F40E9476 +:103EC000B11D8093E7018091E70187FF05C00E9443 +:103ED000B11D81958093E701111624F40E94B11D54 +:103EE0008093E8018091E80187FF05C00E94B11D21 +:103EF00081958093E801DF91CF911F910C94D71E9B +:103F00009F3F09F08ECF96CFDF91CF911F910895FB +:103F1000E4EEF1E085E0DF011D928A95E9F7109269 +:103F2000E3011092E2010895833081F128F4813099 +:103F300059F08230D1F00895853009F449C0B8F1C4 +:103F4000863009F456C0089580911501262F30E07F +:103F5000280F311D2F3F310524F4680F60931501A0 +:103F600008958FEF80931501089580911401262FF5 +:103F700030E0280F311D2F3F310524F4680F609386 +:103F8000140108958FEF8093140108958091130117 +:103F9000262F30E0280F311D2F3F310524F4680F04 +:103FA0006093130108958FEF80931301089580911A +:103FB0001201262F30E0280F311D2F3F310524F448 +:103FC000680F6093120108958FEF80931201089596 +:103FD00080911101262F30E0280F311D2F3F310530 +:103FE00024F4680F6093110108958FEF80931101FD +:103FF000089580911001262F30E0280F311D2F3FAA +:10400000310524F4680F6093100108958FEF8093B9 +:1040100010010895833011F128F4813049F0823085 +:1040200091F00895853081F120F18630C1F1089535 +:1040300080911501681720F4861B8093150108955F +:1040400010921501089580911401681720F4861BC1 +:104050008093140108951092140108958091130122 +:10406000681720F4861B80931301089510921301A2 +:10407000089580911201681720F4861B8093120125 +:10408000089510921201089580911101681720F48B +:10409000861B80931101089510921101089580915B +:1040A0001001681720F4861B809310010895109268 +:1040B000100108950F931F938D3109F46BC008F020 +:1040C0003FC08E3009F47FC0C0F4873009F469C066 +:1040D00068F4863009F0B1C08091DA01817F8E7F6B +:1040E0008093DA0181E08093EA01A8C0883009F466 +:1040F000A2C08B3009F49FC0A0C0863109F49BC0D8 +:1041000078F4803109F472C0813109F096C00E94C0 +:104110002A1490910D0181E0892780930D018BC0B5 +:10412000893109F488C08B3109F087C08091DA01A8 +:1041300081FB222720F991E0922790FB81F94CC066 +:10414000853309F470C048F4873209F46CC008F470 +:1041500059C0893209F467C070C0833438F48A3397 +:1041600008F04EC0883309F466C067C0833409F490 +:104170005AC0883409F061C00E942A140FEF13ED71 +:1041800020E3015010402040E1F700C000000E94F1 +:104190009D1B51C00E94DE210E94910F0E948A083F +:1041A0004AC09091DA01892F8095817080FB90F947 +:1041B00029F0966098609093DA0140C0997F977FCC +:1041C0009093DA0138C08091DA0182FB222720F92E +:1041D00091E0922790FB82F98093DA01992359F1BB +:1041E0008091DA0181608093DA0125C08091DA0143 +:1041F00083FB222720F991E0922790FB83F9ECCFF3 +:10420000895301C08D5141E050E060E070E08A01C7 +:104210009B0104C0000F111F221F331F8A95D2F784 +:10422000C901B80104C061E070E080E090E00E9444 +:10423000EA170E942A1481E001C080E01F910F91CB +:10424000089580E0089580E00895CF93C82F80916D +:10425000EA01813079F018F08230E9F187C0E0910D +:104260000E01F0910F018081813169F0823209F0F5 +:104270007FC009C0E0910E01F0910F018081813172 +:1042800011F0823261F48C2F0E942121811104C02F +:104290008C2F0E945A201DC081E090E01AC08C2F04 +:1042A0000E942321811114C0C43179F048F4CB302D +:1042B00079F0C03109F060C082E08093EA0108C063 +:1042C000C93219F0C83321F057C01092EA0154C026 +:1042D00081E0817053C0C93289F118F5C43171F1A0 +:1042E000A8F4C73009F046C08AE08093150194E134 +:1042F0009093140193E0909313018093120188E04E +:104300008093110188E28093100134C0CE51C630F1 +:1043100088F5EC2FF0E0E65DFE4F80818093E901A7 +:1043200029C0CE34E9F020F4CB3421F56AE013C083 +:10433000C13579F0C235F1F461E00DC08091E90139 +:10434000882319F01092E90115C081E08093EA01F9 +:1043500015C061E006C08091E9010E94941F0AC067 +:104360006AE08091E9010E940A2004C01092EA01EB +:1043700080E004C081E002C080E0ABCFCF9108951F +:10438000E1E8F0E0808188608083808181608083C3 +:104390008FB7F89493E09093890090ED9093880004 +:1043A0008FBF0895EFE6F0E08081826080830895FA +:1043B000EFE6F0E080818D7F80830895EFE6F0E006 +:1043C000908182E08927808308951F920F920FB613 +:1043D0000F9211242F933F934F935F936F937F938B +:1043E0008F939F93AF93BF93EF93FF938091EB01D4 +:1043F0009091EC0101969093EC018093EB01811177 +:1044000003C082E00E948A08E091EC01E695E695FF +:10441000F0E0E85FFB4FE4918091EB018E1303C065 +:1044200080E00E948A08FF91EF91BF91AF919F9128 +:104430008F917F916F915F914F913F912F910F904D +:104440000FBE0F901F90189504D06894B1118DC0C5 +:10445000089570D088F09F5790F0B92F9927B751E1 +:10446000A0F0D1F0660F771F881F991F1AF0BA9538 +:10447000C9F712C0B13081F077D0B1E0089574C0AF +:10448000672F782F8827B85F39F0B93FCCF386952E +:1044900077956795B395D9F73EF49095809570958B +:1044A00061957F4F8F4F9F4F0895E89409C097FB08 +:1044B0003EF490958095709561957F4F8F4F9F4FFB +:1044C0009923A9F0F92F96E9BB279395F69587953F +:1044D00077956795B795F111F8CFFAF4BB0F11F402 +:1044E00060FF1BC06F5F7F4F8F4F9F4F16C08823A9 +:1044F00011F096E911C0772321F09EE8872F762FDF +:1045000005C0662371F096E8862F70E060E02AF01F +:104510009A95660F771F881FDAF7880F969587950B +:1045200097F9089557FD9058440F551F59F05F3F74 +:1045300071F04795880F97FB991F61F09F3F79F0C5 +:1045400087950895121613061406551FF2CF469547 +:10455000F1DF08C0161617061806991FF1CF8695C9 +:104560007105610508940895E894BB2766277727AD +:10457000CB0197F908950BD078C069D028F06ED0A0 +:1045800018F0952309F05AC05FC01124EECFCADF9E +:10459000A0F3959FD1F3950F50E0551F629FF00156 +:1045A000729FBB27F00DB11D639FAA27F00DB11DAF +:1045B000AA1F649F6627B00DA11D661F829F222738 +:1045C000B00DA11D621F739FB00DA11D621F839FBF +:1045D000A00D611D221F749F3327A00D611D231F95 +:1045E000849F600D211D822F762F6A2F11249F57E3 +:1045F00050408AF0E1F088234AF0EE0FFF1FBB1F06 +:10460000661F771F881F91505040A9F79E3F5105A4 +:1046100070F014C0AACF5F3FECF3983EDCF38695B0 +:1046200077956795B795F795E7959F5FC1F7FE2B4F +:10463000880F911D9695879597F9089597F99F672B +:1046400080E870E060E008959FEF80EC089500241A +:104650000A941616170618060906089500240A94E7 +:1046600012161306140605060895092E0394000C6D +:1046700011F4882352F0BB0F40F4BF2B11F460FFFC +:1046800004C06F5F7F4F8F4F9F4F089597FB072E9A +:1046900016F4009407D077FD09D00E94602307FC30 +:1046A00005D03EF4909581959F4F08957095619542 +:1046B0007F4F0895EE0FFF1F0590F491E02D0994B0 +:1046C000AA1BBB1B51E107C0AA1FBB1FA617B70738 +:1046D00010F0A61BB70B881F991F5A95A9F7809554 +:1046E0009095BC01CD010895F999FECF92BD81BD91 +:1046F000F89A992780B50895A8E1B0E042E050E02B +:104700000C949C23262FF999FECF92BD81BDF89A77 +:10471000019700B4021639F01FBA20BD0FB6F89405 +:10472000FA9AF99A0FBE08950196272F0E948323C3 +:104730000C948223DC01CB01FC01F999FECF06C069 +:10474000F2BDE1BDF89A319600B40D92415050404F +:08475000B8F70895F894FFCFBB +:1047580002208C081A09F708C3088F080101C7014D +:1047680028080A03140A3F4D3639C9037C03460357 +:104778000D03A002B902D202EB02010203040506EE +:044788000708090015 +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/software_neo2/keymap.c b/keyboards/ergodox_ez/keymaps/software_neo2/keymap.c new file mode 100644 index 000000000..2eaba0d7d --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/software_neo2/keymap.c @@ -0,0 +1,139 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "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/keyboards/ergodox_ez/keymaps/supercoder/README.md b/keyboards/ergodox_ez/keymaps/supercoder/README.md new file mode 100644 index 000000000..97bf7f583 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/supercoder/README.md @@ -0,0 +1,29 @@ +SuperCoder 2000 layout for the ErgoDox +================================================== + +![SuperCoder 2000](images/supercoder_2000.jpg) + +Ever found yourself in need of entering binary codes rapidly? Ever wanted to use +all ten fingers to do so? Ever felt your SuperCoder 2000 too limiting, by only +having three buttons? We heard you! With this layout for the ErgoDox EZ, you +will be able to tap in binary at an unparalleled speed and accuracy! Efficiency +never seen before! + +Behold the Ultimate SuperCoder 2000 layout! + +![SuperCoder layout](images/layout.png) + +### To use it... + +To use this piece of top quality engineering, you can either +[download the hex file][hex] we have prepared for you, or you can compile it on +your own: + + [hex]: https://raw.githubusercontent.com/algernon/ergodox-supercoder/master/supercoder.hex + +``` +$ git clone https://github.com/jackhumbert/qmk_firmware.git +$ cd qmk_firmware/keyboards/ergodox_ez +$ git clone https://github.com/algernon/ergodox-supercoder.git keymaps/supercoder +$ make KEYMAP=supercoder +``` diff --git a/keyboards/ergodox_ez/keymaps/supercoder/compiled.hex b/keyboards/ergodox_ez/keymaps/supercoder/compiled.hex new file mode 100644 index 000000000..e4113a757 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/supercoder/compiled.hex @@ -0,0 +1,1122 @@ +:100000000C94D0010C9414020C9414020C9414025D +:100010000C9414020C9414020C9414020C94140208 +:100020000C9414020C9414020C948F0C0C94610D1B +:100030000C9414020C9414020C9414020C941402E8 +:100040000C9414020C941B210C9414020C941402B2 +:100050000C9414020C94AE1A0C9414020C94140216 +:100060000C9414020C9414020C9414020C941402B8 +:100070000C9414020C9414020C9414020C941402A8 +:100080000C9414020C9414020C9414020C94140298 +:100090000C9414020C9414020C9414020C94140288 +:1000A0000C9414020C9414020C941402CE0DF00D56 +:1000B000DE0EF00DDE0E350E580EDE0EAD0EC00E4D +:1000C0008F118F11BE11BE11F41114124513451377 +:1000D0001F124513CF12CF123613451345133F138A +:1000E000DC12DC12DC12DC12DC12DC12DC12DC12A0 +:1000F000DC12DC12DC12DC12DC12DC12DC12DC1290 +:10010000EE12FB1202130913131327002700270016 +:1001100027002700000027002700270027002700CE +:100120002800270027002700270027002800270095 +:100130002700270027002700280027002700270086 +:10014000270027002800270027002700270000009D +:1001500028002700270000002700000028001E00BC +:100160001E0000001E00000028001E001E001E00D1 +:100170001E00000028001E001E001E001E001E00A3 +:1001800028001E001E001E001E001E0028001E006B +:100190001E001E001E001E0028001E001E001E0065 +:1001A0001E001E0028001E001E001E001E001E0055 +:1001B000000016034500720067006F0044006F00E6 +:1001C0007800200045005A00000016034500720028 +:1001D00067006F0044006F007800200045005A005F +:1001E00000000403090409026D00040100A0FA09DB +:1001F0000400000103010100092111010001223F57 +:10020000000705810308000A090401000103010237 +:1002100000092111010001224D0007058203080099 +:100220000A09040200010300000009211101000174 +:100230002236000705830308000A090403000103AE +:100240000000000921110100012239000705840383 +:100250001000011201100100000008EDFE0713015B +:10026000000102000105010906A101050719E029A5 +:10027000E715002501950875018102050819012976 +:100280000595057501910295017503910105071901 +:1002900000297715002501957875018102C00501B7 +:1002A0000980A101850216010026B7001A01002A63 +:1002B000B700751095018100C0050C0901A10185E9 +:1002C00003160100269C021A01002A9C0275109553 +:1002D000018100C005010902A1010901A100050970 +:1002E0001901290515002501950575018102950162 +:1002F000750381010501093009311581257F9502BA +:100300007508810609381581257F950175088106D4 +:10031000050C0A38021581257F950175088106C0F4 +:10032000C005010906A101050719E029E715002507 +:10033000019508750181029501750881010508196B +:100340000129059505750191029501750391010536 +:1003500007190029FF150025FF950675088100C0C3 +:100360000000000000000000000000010204060A76 +:100370000F17202C3A4A5D71879DB3C7DAE9F5FC67 +:10038000FFFCF5E9DAC7B39D87715D4A3A2C201767 +:100390000F0A060402010000000000000000000037 +:1003A00011241FBECFEFDAE0DEBFCDBF04B603FEDF +:1003B00024C08091FB019091FC01A091FD01B091BE +:1003C000FE018730904BA740B04BB9F41092FB016F +:1003D0001092FC011092FD011092FE0114BE84B730 +:1003E000877F84BF88E10FB6F894809360001092F5 +:1003F00060000FBEE0E0FFE3099511E0A0E0B1E08E +:10040000E4ECF5E402C005900D92A433B107D9F7EE +:1004100011E0A4E3B1E001C01D92AB3FB107E1F7E9 +:100420000E94D3090C94E0220C9400001092B900B1 +:100430008AE08093B800089594EA9093BC0090916C +:10044000BC0097FFFCCF9091B900987F983021F0C5 +:10045000903111F081E008958093BB0084E880938F +:10046000BC008091BC0087FFFCCF8091B900887FE1 +:10047000883111F0803471F780E0089584E9809329 +:10048000BC008091BC0084FDFCCF08958093BB002C +:1004900084E88093BC008091BC0087FFFCCF9091E2 +:1004A000B900987F81E0983209F480E0089584E8EB +:1004B0008093BC008091BC0087FFFCCF8091BB0083 +:1004C000089580910101811115C080E40E941C02F1 +:1004D0008093010181110CC082E10E944602809349 +:1004E0000101811105C08FEF0E9446028093010136 +:1004F0000E943E0284B1807F84B985B1807F85B936 +:100500008AB1837F8AB98BB1837F8BB93E98469835 +:1005100008950E941C04809301010E94610280B32F +:100520008C7080BB81B3836F81BBA5E3B1E0E3E452 +:10053000F1E08EE08E0F11921D928E13FCCF0C9481 +:100540000604BF92CF92DF92EF92FF920F931F9318 +:10055000CF93DF9380910101882379F0809134015A +:100560008F5F80933401811108C00E941C04809326 +:100570000101811102C00E94AE0305E311E0C0E059 +:10058000D0E0DD24D39482E0C82EEE24E394F12C55 +:10059000C730D10500F580910101811164C080E46C +:1005A0000E941C0280930101811112C082E10E940D +:1005B00046028093010181110BC0C7010C2E01C0BE +:1005C000880F0A94EAF780950E9446028093010101 +:1005D0000E943E0248C0CA30A1F028F4C83059F049 +:1005E000C93061F005C0CC3089F070F0CD3089F0B1 +:1005F000209A289810C0219A29980DC0229A2A98EA +:100600000AC0239A2B9807C0529A01C0539A5B984C +:1006100002C03E9A469890EA9A95F1F79FB179996F +:1006200002C082E001C080E091709D25982B7C99EA +:1006300002C084E001C080E0892B7D9902C038E0CF +:1006400001C030E0832B7E9902C020E101C020E090 +:10065000822B9FB19095991F9927991F9295990F79 +:10066000907E892B0FC080910101811149C080E4E7 +:100670000E941C0280930101882379F1B12C0E9411 +:100680003E028B2DF8019081981719F08083C0925B +:1006900000010E94610221960F5F1F4FCE30D105ED +:1006A00009F076CF80910001882361F18150809319 +:1006B0000001882339F08FE99FE00197F1F700C02E +:1006C000000020C0A3E4B1E0E5E3F1E0CF01825FE8 +:1006D00091919D938E13FCCF15C083E10E94460239 +:1006E000809301018111CACF81E40E941C02809392 +:1006F00001018111C3CF0E945702B82EB094BFCF21 +:1007000080E0C0CF0E94AC0381E0DF91CF911F91C8 +:100710000F91FF90EF90DF90CF90BF900895E82F5A +:10072000F0E0ED5BFE4F8081089508950F931F93D5 +:10073000CF93DF93C3E4D1E010E00C2F025F8991E7 +:1007400090E00E94241A180F0C13F9CF812FDF912B +:10075000CF911F910F9108950C946F0456985E9855 +:1007600025982D9826982E9827982F988FEF90E00F +:10077000909389008093880090938B0080938A00E7 +:1007800090938D0080938C00259A2D9A2FEF80E70F +:1007900092E0215080409040E1F700C00000269A8E +:1007A0002E9A2FEF80E792E0215080409040E1F7B1 +:1007B00000C00000279A2F9A2FEF80E792E0215087 +:1007C00080409040E1F700C0000025982D982FEF61 +:1007D00080E792E0215080409040E1F700C00000A7 +:1007E00026982E982FEF80E792E02150804090408D +:1007F000E1F700C0000027982F9856985E9825983A +:100800002D9826982E9827982F98089589EA8093F6 +:10081000800089E08093810024982C983F988AB1C9 +:100820008F748AB96E98479A8BB1806B8BB9769A20 +:100830000E94AE030C946E0480E2809301018091CB +:10084000510181110EC00E94160281E08093510176 +:100850002FEF83ED90E3215080409040E1F700C0FE +:10086000000080E40E941C028093010181112EC0CF +:100870000E94460280930101811128C00E94460215 +:1008800080930101811122C08FE30E944602809370 +:10089000010181111BC00E943E0280E40E941C02E3 +:1008A00080930101811112C08CE00E944602809366 +:1008B000010181110BC00E94460280930101811148 +:1008C00005C08FE30E944602809301010E943E0210 +:1008D00080910101089580E090E0089508950895C1 +:1008E00081E0089581E008950C94720408950F93B7 +:1008F0001F93CF93DF938C01FC01C081D181CE0186 +:100900000E94A918BE010E942005EC01B8010E94B6 +:100910007404882309F48DC0F8018281882309F4C6 +:100920004AC080915D0181111FC0C431F0E5DF072D +:1009300009F051C00E94760481E080935D010E941D +:10094000781A90935C0180935B011092540110928D +:1009500056011092550110925801109257011092B1 +:100960005A011092590165C080915B0190915C0120 +:100970000E94841A883C910570F480915401E82FFC +:10098000F0E0EE0FFF1FEB5AFE4FD183C0838F5F65 +:10099000809354014EC0C43880E5D80721F0C53893 +:1009A000D04501F13AC0F8018281882341F01092CC +:1009B000520182E01EC0C438E0E5DE0759F580919F +:1009C0005201811106C086E20E94331086E20E9425 +:1009D000FB1082E01CC0C438F0E5DF0741F3C538E6 +:1009E000D045D9F4F8018281882331F01092530167 +:1009F00080E20E944A111DC080915301811106C0FE +:100A000087E20E94331087E20E94FB1080E20E947E +:100A100051110FC0C538D04529F381E080935201B0 +:100A200080935301C801DF91CF911F910F910C94D6 +:100A3000700480E0DF91CF911F910F910895089588 +:100A400096E0799FF001112494E5899FE00DF11D56 +:100A50001124E60FF11DEE0FFF1FE65FFE4F85919B +:100A600094910895880F991FFC01E657F0408591F5 +:100A700094910895880F991FFC01E65FFE4F8591C0 +:100A8000949108950F931F93CF93DF93EC018115F9 +:100A900020E3920750F5C11580E2D80708F0C3C0E3 +:100AA000CB3BD10590F4C83AD10508F06AC0C53AED +:100AB000D10508F05BC0C430D10508F0D0C1219742 +:100AC00009F0CAC101E010E00AC2CF3FD10511F020 +:100AD00008F0C5C1C03FD10508F0A2C0CE01805EBC +:100AE0009109089708F4BBC1B7C1C13090E5D90797 +:100AF00009F4A2C020F5C0318FE4D80770F4C11505 +:100B000090E4D90708F094C0C11521E3D20708F09A +:100B1000A3C1DD278E01106CE2C1C115D04509F0DB +:100B20009BC10E94B0138FEF94E32CE08150904062 +:100B30002040E1F700C000000E94D31AD0C1C115C7 +:100B400097E5D90758F4C03121E5D20708F01CC158 +:100B5000C43180E5D80708F475C07EC1CE01905736 +:100B60008115904108F078C1DF7073C1C53AD10595 +:100B700009F477C1C63AD10509F076C102E810E45C +:100B8000AEC1C83AD10509F472C1C93AD10509F418 +:100B900071C1CA3AD10509F470C1CB3AD10509F443 +:100BA0006FC1CC3AD10509F46EC1CD3AD10509F433 +:100BB0006DC1C03BD10509F46CC1CE3AD10509F431 +:100BC0006BC1CF3AD10509F46AC1C13BD10509F423 +:100BD00069C1C23BD10509F468C1C33BD10509F421 +:100BE00067C1C43BD10509F466C1C53BD10509F411 +:100BF00065C1C63BD10509F464C1C73BD10509F401 +:100C000063C1C83BD10509F462C1C93BD10509F4F0 +:100C100061C1CA3BD10509F460C100E014E45FC1C1 +:100C20008E0110655CC1CE019F700E943A0558C1CB +:100C3000DF708E01106A53C18091DA018160809368 +:100C4000DA014DC10E94781C811102C00E945E1C15 +:100C50000E94951C90E09093FB018093FA01C230B2 +:100C600080E5D80721F48091FA01816086C0C43004 +:100C700090E5D90721F48091FA0182607EC0C630E8 +:100C800020E5D20721F48091FA01846076C0C83053 +:100C900080E5D80719F48091FA0127C0CA3090E5A1 +:100CA000D90721F48091FA01806167C0CC3020E53A +:100CB000D20721F48091FA0180625FC0CE3080E5D6 +:100CC000D80721F48091FA01806457C0C03190E5C3 +:100CD000D90721F48091FA0180684FC0C23120E524 +:100CE000D20729F48091FA018460886046C0C3303D +:100CF00080E5D80721F48091FA018E7F3EC0C5308F +:100D000090E5D90721F48091FA018D7F36C0C73074 +:100D100020E5D20721F48091FA018B7F2EC0C930E3 +:100D200080E5D80719F48091FA0126C0CB3090E510 +:100D3000D90721F48091FA018F7E1FC0CD3020E5C4 +:100D4000D20721F48091FA018F7D17C0CF3080E562 +:100D5000D80721F48091FA018F7B0FC0C13190E553 +:100D6000D90721F48091FA018F7707C0C331D045AC +:100D700031F48091FA018B7F877F8093FA01809113 +:100D8000FA010E94991CABC08D2F99278F7099276B +:100D900081309105D9F49E012370332702C0880F5A +:100DA000991F2A95E2F79C688E0144E0000F111FFD +:100DB0004A95E1F700271370802B912B53E0CC0F5D +:100DC000DD1F5A95E1F7C076DD272FC082309105EF +:100DD00031F4DC2FCC278E01016F106A80C0833084 +:100DE000910569F4CE018370992701E010E002C0FB +:100DF000000F111F8A95E2F7C8019C680FC084306C +:100E00009105B9F4CE018370992701E010E002C08A +:100E1000000F111F8A95E2F7C8019A6823E0CC0FF2 +:100E2000DD1F2A95E1F7C07ED7708C010C2B1D2B9E +:100E300056C08530910531F4DC2FCC278E01046F2C +:100E4000106A4DC0069709F04AC0CF71DD27DC2F2C +:100E5000CC278E01106243C000E010E040C08E013C +:100E60003EC001E810E43BC003E810E438C002EEE5 +:100E700014E435C009EE14E432C00AEE14E42FC0C5 +:100E800005EB14E42CC006EB14E429C007EB14E4D2 +:100E900026C00CEC14E423C00DEC14E420C003E8DD +:100EA00015E41DC00AE815E41AC002E915E417C0EC +:100EB00004E915E414C001E216E411C003E216E4EB +:100EC0000EC004E216E40BC005E216E408C006E218 +:100ED00016E405C007E216E402C00AE216E4C801FF +:100EE000DF91CF911F910F91089596E0799FF001C6 +:100EF000112494E5899FE00DF11D1124E60FF11DE9 +:100F0000EE0FFF1FE65FFE4F85919491803E9105A5 +:100F1000E0F4803C910558F58133910509F46FC0E8 +:100F200048F48932910509F463C08A32910509F4C5 +:100F30006DC072C089339105E9F082389105D1F016 +:100F40008533910509F44DC067C0833E910581F159 +:100F500038F4803E9105B9F0823E9105D9F05CC02D +:100F6000863E910561F1873E9105A1F155C00E9431 +:100F7000320508952091FA0120FD02C021FF4CC0E6 +:100F800080EE90E049C08091FA0180FFF9CF89E3BB +:100F900090E042C08091FA0182FF0EC08091FA0178 +:100FA00084FF03C080E090E037C083EE90E034C05F +:100FB0008091FA0182FFF2CF82EE90E02DC0809105 +:100FC000FA0183FF0BC08091FA0184FDEBCF87EE1D +:100FD00090E022C08091FA0183FFF5CF86EE90E089 +:100FE0001BC08091FA0185FF07C089E290E014C020 +:100FF0008091FA0185FFF9CF85E390E00DC08091E3 +:10100000FA0186FF07C08AE290E006C08091FA01EB +:1010100086FFF9CF81E390E00E944205089508958C +:101020000C940F0880916E010895CF93DF9300D048 +:101030001F92CDB7DEB79C018091F101843019F584 +:1010400093E099833B832A839093E9008FEF9091FB +:10105000E800815095FD06C095ED9A95F1F70000E6 +:101060008111F5CF8091E80085FF0DC040E050E090 +:1010700063E070E0CE0101960E947F0A8091E80053 +:101080008E778093E8000F900F900F90DF91CF91B3 +:101090000895CF93DF9300D01F92CDB7DEB7209194 +:1010A000F101243021F522E029839B838A8383E0A8 +:1010B0008093E9008FEF9091E800815095FD06C084 +:1010C00095ED9A95F1F700008111F5CF8091E80038 +:1010D00085FF0DC040E050E063E070E0CE01019676 +:1010E0000E947F0A8091E8008E778093E8000F903D +:1010F0000F900F90DF91CF9108952091F10124304E +:10110000F1F422E02093E9002FEF3091E800215024 +:1011100035FD06C035ED3A95F1F700002111F5CF08 +:101120002091E80025FF0BC040E050E065E070E052 +:101130000E947F0A8091E8008E778093E8000895EE +:10114000CF93DF93EC019091F101943009F046C008 +:1011500080910C018823D9F080910D018823B9F08A +:101160009093E9008FEF9091E800815095FD06C0C3 +:1011700095E19A95F1F700008111F5CF8091E80093 +:1011800085FF2CC040E050E060E170E017C081E0D6 +:101190008093E9008FEF9091E800815095FD06C0A3 +:1011A00095ED9A95F1F700008111F5CF8091E80057 +:1011B00085FF14C040E050E068E070E0CE010E947E +:1011C0007F0A8091E8008E778093E80080E1FE013D +:1011D000AEE5B1E001900D928A95E1F7DF91CF91F4 +:1011E00008958091F001811109C00E94140C0E94A1 +:1011F000710C8091E20084608093E2000895109267 +:10120000F001089508950C9408210E94691A0E9423 +:101210000E210E94170F0C94100842E061EC81E04F +:101220000E948E0B42E061EC82E00E948E0B42E055 +:1012300061EC83E00E948E0B42E161EC84E00C944F +:101240008E0B8091F301833009F455C030F4813066 +:1012500071F0823009F48EC008958A3009F47AC0A2 +:101260008B3009F460C0893009F09CC020C08091A7 +:10127000F201813A09F096C08091E800877F80935F +:10128000E8008091F6019091F701892B21F460E14B +:101290008EE591E003C060E080E090E070E00E94A5 +:1012A000CA0A8091E8008B778093E80008958091C6 +:1012B000F201813209F076C08091F6019091F70138 +:1012C000009719F0039709F06DC08091E800877FBF +:1012D0008093E8008091E80082FD05C08091F101D3 +:1012E0008111F8CF5FC08091F10080936E018091F1 +:1012F000E8008B7753C08091F201813A09F052C027 +:101300008091F6019091F701892B09F04BC08091F3 +:10131000E800877F8093E8008091E80080FFFCCFA1 +:1013200080910C0136C08091F2018132D9F5809113 +:10133000F6019091F701892BA9F58091E800877F4C +:101340008093E8000E94C30B8091F40180930C010C +:101350000C94B0138091F201813221F58091E80064 +:10136000877F8093E8000E94C30B8091F5018093F2 +:101370006F0108958091F201813AA1F48091E80013 +:10138000877F8093E8008091E80080FFFCCF809108 +:101390006F018093F1008091E8008E778093E800E0 +:1013A0000C94C30B089584B7877F84BF88E10FB680 +:1013B000F89480936000109260000FBE90E080E887 +:1013C0000FB6F89480936100909361000FBE0E9465 +:1013D000660F0E94140C0E94710C8091E2008460E0 +:1013E0008093E20078940E94F70E0E94680F82E0DA +:1013F00091E00E94120F0E94F6208091F101853049 +:1014000069F40E94301A8091EF018823B1F30E94A1 +:101410005B1A882391F30E94690AEFCF0E946E0F36 +:10142000ECCF292F332723303105C9F064F4213064 +:10143000310581F02230310509F043C08DE690E09E +:1014400026EE31E042C021323105F1F02232310581 +:1014500041F137C082E190E023E532E036C09927C0 +:101460008130910541F08230910541F0892B49F599 +:10147000E2EEF1E005C0EAECF1E002C0E2EBF1E0FF +:10148000849190E09F0121C06430D8F4E62FF0E011 +:10149000EE0FFF1FEE5DFE4F2081318189E090E06D +:1014A00014C0643070F470E0FB01EE0FFF1FE65EC5 +:1014B000FE4F20813181FB01EA5EFE4F808190E08A +:1014C00004C080E090E020E030E0FA013183208326 +:1014D000089580E189BD82E189BD09B400FEFDCF98 +:1014E0008091D8008F7D8093D8008091E000826049 +:1014F0008093E0008091E00081FDFCCF0895CF92C1 +:10150000DF92EF92FF920F931F93CF93DF93EC0143 +:101510008B016A010E94E20B811133C0C114D10416 +:1015200039F0F60180819181081B190BC80FD91F72 +:10153000E12CF12C0115110519F18091E80085FDD0 +:1015400016C08091E8008E778093E800C114D10422 +:1015500049F0F60180819181E80EF91EF182E08266 +:1015600085E00FC00E94E20B882321F30AC0899115 +:101570008093F10001501109FFEFEF1AFF0ADACF53 +:1015800080E0DF91CF911F910F91FF90EF90DF905E +:10159000CF9008952091F8013091F901261737076F +:1015A00048F06115710539F42091E8002E772093F9 +:1015B000E80001C0B90140E061157105A9F1209171 +:1015C000F101222309F443C0253009F442C02091DF +:1015D000E80023FD40C02091E80022FD32C02091A8 +:1015E000E80020FFE9CF4091F3002091F20030E0C5 +:1015F000342BFC01CF016115710559F028303105FC +:1016000040F481918093F100615071092F5F3F4F49 +:10161000F1CF41E02830310509F040E02091E800A9 +:101620002E772093E800C8CF4111C9CF0AC080911E +:10163000F101882361F0853061F08091E80083FD3D +:101640000AC08091E80082FFF2CF80E0089582E036 +:10165000089583E0089581E008952091F801309184 +:10166000F9012617370748F06115710539F4209103 +:10167000E8002E772093E80001C0B901FC0120E0CA +:101680006115710591F18091F101882309F440C041 +:10169000853009F43FC08091E80083FD3DC0809112 +:1016A000E80082FD2FC08091E80080FFE9CF209103 +:1016B000F3008091F20090E0922B6115710559F0D2 +:1016C0008830910540F424912093F10031966150C7 +:1016D00071090196F2CF21E0089709F020E080918E +:1016E000E8008E778093E800CBCF2111CCCF0AC0E1 +:1016F0008091F101882361F0853061F08091E800EC +:1017000083FD0AC08091E80082FFF2CF80E0089557 +:1017100082E0089583E0089581E00895982F97303E +:1017200058F59093E900981739F07091EC002091EA +:10173000ED005091F00003C0242F762F50E021FFE0 +:1017400019C03091EB003E7F3093EB003091ED00FB +:101750003D7F3093ED003091EB0031603093EB0032 +:101760007093EC002093ED005093F0002091EE0078 +:1017700027FF07C09F5FD3CF8F708093E90081E080 +:10178000089580E008958091F20187FF11C0809153 +:10179000E80082FD05C08091F1018111F8CF11C0F0 +:1017A0008091E8008B770BC08091F101882349F08C +:1017B0008091E80080FFF8CF8091E8008E778093D9 +:1017C000E80008952091E4003091E50095E640910D +:1017D000EC00842F817040FF22C08091E80080FDE2 +:1017E0001CC08091F101882391F0853091F08091A7 +:1017F000EB0085FD10C04091E4005091E5004217D8 +:10180000530729F39A01915011F784E0089582E07B +:10181000089583E0089581E0089580E0089540915F +:10182000E80042FFDECF08950E94820C0E948A0CDD +:10183000E0EEF0E0808181608083E8EDF0E080817F +:101840008F77808319BCA7EDB0E08C918E7F8C934D +:1018500080818F7E80831092F00108950F931F93F3 +:10186000CF93DF930E94820C0E948A0CC8EDD0E0D7 +:1018700088818F77888388818068888388818F7D3D +:10188000888319BC1092F1011092ED011092EF01C2 +:101890001092EE0100EE10E0F80180818B7F8083D2 +:1018A00088818160888342E060E080E00E948E0B46 +:1018B000E1EEF0E080818E7F8083E2EEF0E08081D7 +:1018C00081608083808188608083F80180818E7F41 +:1018D0008083888180618883DF91CF911F910F91F0 +:1018E0000895E8EDF0E080818F7E8083E7EDF0E001 +:1018F00080818160808384E082BF81E08093F001F9 +:101900000C942E0CE8EDF0E080818E7F80831092A5 +:10191000E20008951092DA001092E10008951F92FB +:101920000F920FB60F9211242F933F934F935F9313 +:101930006F937F938F939F93AF93BF93EF93FF9397 +:101940008091E10082FF0BC08091E20082FF07C01E +:101950008091E1008B7F8093E1000E94F60E8091E0 +:10196000DA0080FF1FC08091D80080FF1BC08091EB +:10197000DA008E7F8093DA008091D90080FF0DC05D +:1019800080E189BD82E189BD09B400FEFDCF81E01F +:101990008093F1010E94F10805C019BC1092F10179 +:1019A0000E94FF088091E10080FF19C08091E20051 +:1019B00080FF15C08091E2008E7F8093E2008091CD +:1019C000E20080618093E2008091D8008062809381 +:1019D000D80019BC85E08093F1010E940309809131 +:1019E000E10084FF30C08091E20084FF2CC080E1E0 +:1019F00089BD82E189BD09B400FEFDCF8091D80088 +:101A00008F7D8093D8008091E1008F7E8093E100EC +:101A10008091E2008F7E8093E2008091E2008160FD +:101A20008093E2008091ED01882311F084E007C0EB +:101A30008091E30087FD02C081E001C083E08093D4 +:101A4000F1010E9405098091E10083FF29C0809186 +:101A5000E20083FF25C08091E100877F8093E10051 +:101A600082E08093F1011092ED018091E1008E7F80 +:101A70008093E1008091E2008E7F8093E20080916C +:101A8000E20080618093E20042E060E080E00E943A +:101A90008E0B8091F00088608093F0000E94020914 +:101AA000FF91EF91BF91AF919F918F917F916F9136 +:101AB0005F914F913F912F910F900FBE0F901F900C +:101AC00018951F920F920FB60F9211242F933F93E8 +:101AD0004F935F936F937F938F939F93AF93BF9336 +:101AE000CF93DF93EF93FF93C091E900CF70809184 +:101AF000EC00D82FD17080FDD0E81092E9008091E1 +:101B0000F000877F8093F00078940E94A50D1092DA +:101B1000E9008091F00088608093F000CD2BCF70B9 +:101B2000C093E900FF91EF91DF91CF91BF91AF9109 +:101B30009F918F917F916F915F914F913F912F91E5 +:101B40000F900FBE0F901F9018951F93CF93DF93A8 +:101B5000CDB7DEB7AA970FB6F894DEBF0FBECDBFE4 +:101B6000E2EFF1E088E08E0F9091F10091938E13F7 +:101B7000FBCF0E9421098091E80083FF1FC1809163 +:101B8000F2019091F301492F50E04A30510508F0DD +:101B900015C1FA01EA5AFF4F0C949022803881F067 +:101BA000823809F00BC18091F6018F708093E900B3 +:101BB0008091EB0085FB882780F91092E90006C030 +:101BC0008091EE019091EF01911182609091E80077 +:101BD000977F9093E8008093F1001092F100C8C0C5 +:101BE000282F2D7F09F0EAC0882319F0823061F098 +:101BF000E5C08091F401813009F0E0C0933009F034 +:101C000080E08093EF012BC08091F401811127C007 +:101C10008091F6018F7009F4D1C08093E900209182 +:101C2000EB0020FF1CC0933021F48091EB00806218 +:101C300014C09091EB0090619093EB0021E030E0B4 +:101C4000A90102C0440F551F8A95E2F74093EA00AC +:101C50001092EA008091EB0088608093EB00109274 +:101C6000E9008091E800877F86C08111A7C01091AC +:101C7000F4011F778091E3008078812B8093E3004B +:101C80008091E800877F8093E8000E94C30B8091D9 +:101C9000E80080FFFCCF8091E30080688093E30040 +:101CA000111102C082E001C083E08093F10186C07F +:101CB0008058823008F082C08091F4019091F50143 +:101CC0008C3D53E0950779F583E08A838AE2898326 +:101CD0004FB7F894DE01139620E03EE051E2E32F87 +:101CE000F0E050935700E49120FF03C0E295EF70BD +:101CF0003F5FEF708E2F90E0EA3010F0C79601C082 +:101D0000C0968D939D932F5F243149F74FBF8091EB +:101D1000E800877F8093E8006AE270E0CE010196D8 +:101D20000E94CA0A14C0AE014F5F5F4F6091F60176 +:101D30000E94110ABC01009709F440C09091E8008C +:101D4000977F9093E80089819A810E942D0B809162 +:101D5000E8008B778093E80031C0803879F5809176 +:101D6000E800877F8093E8008091ED018093F10087 +:101D70008091E8008E778093E8000E94C30B1EC01C +:101D800081111CC09091F4019230C0F48091E80060 +:101D9000877F8093E8009093ED010E94C30B8091B0 +:101DA000ED01811106C08091E30087FD02C081E052 +:101DB00001C084E08093F1010E940D098091E80048 +:101DC00083FF0AC08091E800877F8093E8008091BC +:101DD000EB0080628093EB00AA960FB6F894DEBF0A +:101DE0000FBECDBFDF91CF911F9108950895CF937E +:101DF0008091F1018823A1F0C091E900CF7090910A +:101E0000EC00892F817090FD80E8C82B1092E900CA +:101E10008091E80083FD0E94A50DCF70C093E9007A +:101E2000CF91089590937501809374010895E09186 +:101E30007401F0917501309721F00190F081E02D4F +:101E4000099480E00895E0917401F0917501309754 +:101E500021F00280F381E02D09940895E09174014E +:101E6000F0917501309721F00480F581E02D0994FF +:101E7000089520917201309173018217930771F0D8 +:101E80009093730180937201E0917401F091750158 +:101E9000309721F00680F781E02D09940895209174 +:101EA0007001309171018217930771F09093710165 +:101EB00080937001E0917401F0917501309721F0E9 +:101EC0000084F185E02D0994089508950C94650F20 +:101ED0000E946F1A0E9489020C94311B9F92AF924C +:101EE000BF92CF92DF92EF92FF920F931F93CF9307 +:101EF000DF9300D000D000D0CDB7DEB70E94A102A2 +:101F00000DE010E0AA24A394B12C902E802F0E9403 +:101F10008F03980129583E4F6901F901F080F82696 +:101F2000A1F40150110988F78FEF89838A831B82FE +:101F30000E94781A8160782F9D838C8349815A8111 +:101F40006B818D810E9405102FC09091DA0191FF65 +:101F500004C08E830E9495038E8125E030E0A501A8 +:101F6000022E01C0440F0A94EAF7E42E4F21C1F07B +:101F700029839A828E2191E009F490E09B830E944C +:101F8000781A8160782F9D838C8349815A816B8177 +:101F90008D810E940510F6018081E826E08204C050 +:101FA00021503109E0F6BDCF0E94181E1091760134 +:101FB0000E94170F1817B9F00E94170F809376012F +:101FC00026960FB6F894DEBF0FBECDBFDF91CF913E +:101FD0001F910F91FF90EF90DF90CF90BF90AF9047 +:101FE0009F900C94100826960FB6F894DEBF0FBE93 +:101FF000CDBFDF91CF911F910F91FF90EF90DF90B8 +:10200000CF90BF90AF909F900895CF93DF93CDB7BF +:10201000DEB72B970FB6F894DEBF0FBECDBF4F8350 +:10202000588769877A878B87DE01119686E0FD01E4 +:1020300011928A95E9F785E0FE01379601900D929D +:102040008A95E1F749815A816B817C818D819E81DE +:102050000E944E162B960FB6F894DEBF0FBECDBF72 +:10206000DF91CF910895CF93882309F4C2C0C82F80 +:10207000823859F40E94170F81FDBBC089E30E948A +:1020800028190E94F51989E30CC0833879F40E945D +:10209000170F80FDAEC083E50E9428190E94F51934 +:1020A00083E50E946A19CF910C94F519843859F48C +:1020B0000E94170F82FD9DC087E40E9428190E948C +:1020C000F51987E4EECF8CEF8C0F813A48F48C2F12 +:1020D0000E945B2081118DC08C2F0E942819E3CFB4 +:1020E00080E28C0F883048F4C77081E001C0880F0F +:1020F000CA95EAF70E94AE19D6CF8BE58C0F8330D4 +:1021000078F4C53A29F0C63A31F083E890E005C08A +:1021100081E890E002C082E890E0CF910C94390F02 +:1021200088E58C0F833108F064C0C83A39F1C93AA8 +:1021300041F1CA3A49F1CB3A51F1CC3A59F1CD3A91 +:1021400061F1C03B69F1CE3A71F1CF3A79F1C13B0F +:1021500081F1C23B89F1C33B91F1C43B99F1C53B8D +:10216000A1F1C63BA9F1C73BB1F1C83BB9F1C93BED +:10217000C1F1CA3BC9F180E090E038C082EE90E046 +:1021800035C089EE90E032C08AEE90E02FC085EB3A +:1021900090E02CC086EB90E029C087EB90E026C051 +:1021A0008CEC90E023C08DEC90E020C083E891E0BF +:1021B0001DC08AE891E01AC082E991E017C084E965 +:1021C00091E014C081E292E011C083E292E00EC07F +:1021D00084E292E00BC085E292E008C086E292E0E1 +:1021E00005C087E292E002C08AE292E0CF910C94AF +:1021F0004F0FCF910895882309F44BC0823859F4CA +:102200000E94170F81FF45C089E30E9428190E9490 +:10221000F51989E30CC0833871F40E94170F80FF11 +:1022200038C083E50E9428190E94F51983E50E94B1 +:102230006A190C94F519843859F40E94170F82FF1B +:1022400028C087E40E9428190E94F51987E4EFCF7F +:102250009CEF980F913A58F390E2980F983050F411 +:10226000877091E001C0990F8A95EAF7892F0E9443 +:10227000B419DFCF9BE5980F933020F480E090E015 +:102280000C94390F885A833120F480E090E00C944C +:102290004F0F0895882321F00E94AE190C94F51970 +:1022A0000895882321F00E94B4190C94F51908951B +:1022B0007F928F929F92AF92BF92CF92DF92EF92D6 +:1022C000FF920F931F93CF93DF931F92CDB7DEB78B +:1022D0007C01C62E772EFC01058102950F701281BC +:1022E00011110E94CB190E942119882379F0112322 +:1022F00069F080E28C0D883048F082E00E940A1973 +:102300000E94211991E0D82ED92601C0D12CE72DA9 +:10231000E295EF70F0E0E05AFF4F0C949022872D89 +:10232000807F072D0F70882311F00295007F112305 +:1023300089F0002309F490C180E28C0D883020F4EC +:10234000802F0E94AE1903C0802F0E94BE190E94E8 +:10235000F51982C18C2D0E94FB10002309F495C150 +:1023600080E28C0D883020F4802F0E94B41903C0C5 +:10237000802F0E94C4190E94F51987C1972D907F64 +:10238000872D8F70903211F08295807FCC2021F0C4 +:10239000F1E0CF16B1F01EC0112349F0002309F47B +:1023A00014C1013009F011C10E94DE196EC1002371 +:1023B00019F0013009F469C189830E94E11989810A +:1023C0000AC1112321F0023008F05FC1FEC00111E3 +:1023D0005CC101C1112321F0002309F4F6C03CC106 +:1023E000002309F4F8C03EC1872D86958695837039 +:1023F00090E0009719F0019761F047C1112321F097 +:102400008C2D972D937002C080E090E00E94390FD0 +:102410003CC1112321F08C2D972D937002C080E0D8 +:1024200090E00E944F0F31C18C2D112319F00E94B2 +:10243000201D02C00E94881D0E940D1E26C1872DEE +:10244000837009F052C0111120C18C2D82958695A0 +:102450008770880F880F9C2D9F70892E912CA12C3E +:10246000B12C082E04C0880C991CAA1CBB1C0A9411 +:10247000D2F7C4FE14C00FE010E020E030E0B90154 +:10248000A80104C0440F551F661F771F8A95D2F715 +:10249000CB01BA01609570958095909503C060E07E +:1024A00070E0CB01272D26952695237030E0223051 +:1024B000310569F02330310589F0682979298A29A5 +:1024C0009B292130310571F00E949617DEC06829E2 +:1024D00079298A299B290E94B217D7C00E94961792 +:1024E000C501B4010E947A17D0C0112319F0872DBD +:1024F000817001C08695882309F4C7C08C2D829510 +:1025000086958770880F880F9C2D9F70892E912C3F +:10251000A12CB12C082E04C0880C991CAA1CBB1C31 +:102520000A94D2F7C4FE14C00FE010E020E030E0BF +:10253000B901A80104C0440F551F661F771F8A9573 +:10254000D2F7CB01BA01609570958095909503C044 +:1025500060E070E0CB01272D269526952370422F51 +:1025600050E04230510569F04330510589F0682947 +:1025700079298A299B294130510571F00E947018F0 +:1025800084C0682979298A299B290E948C187DC0DA +:102590000E947018C501B4010E94541876C08C2D99 +:1025A00090E0FC01E05EF109E531F10508F050C072 +:1025B000E059FF4F0C9490220C2D0F70872D8F71D6 +:1025C000112331F00E94ED17802F0E944A115DC047 +:1025D0000E940E18802F0E94511157C0112339F00C +:1025E000011153C0872D8F710E9433184EC00230E5 +:1025F00008F04BC0F7CF112339F0872D8F710E945F +:10260000ED1743C01123C9F3872D8F710E940E1857 +:102610003CC0112329F0872D8F710E94D81735C037 +:102620000E94CE1732C0112351F0172D1F71812F38 +:102630000E94ED1763E0812F0E94011926C081E0FE +:102640000E940A19023008F182E00E940A191DC096 +:10265000112331F0002389F28C2D0E94331015C014 +:10266000002391F28C2D0E94FB100FC0472D4F705C +:102670006C2DC7010E946B040E94F21606C0472D04 +:102680004F706C2DC7010E941F05DD20F9F00E94DC +:10269000FD1880FD1BC0F70112820E94F7180E94EE +:1026A000ED17C7010E9475130E94F7180F90DF9174 +:1026B000CF911F910F91FF90EF90DF90CF90BF903F +:1026C000AF909F908F907F900C940E180F90DF9199 +:1026D000CF911F910F91FF90EF90DF90CF90BF901F +:1026E000AF909F908F907F9008950F931F93CF93FB +:1026F000DF93EC01888199812B813C81232BB9F0F8 +:102700009F3F11F48F3F99F0CE010E9477048823F8 +:1027100071F0688179818A810E94F3188C010E948E +:10272000A8180E946F17B801CE010E945811DF91BE +:10273000CF911F910F9108950E94CB190E94DB1930 +:102740000E94A0190E94F5190E94BE1E0E940D1E33 +:1027500080E090E00E94390F80E090E00C944F0FF1 +:102760000E94BB190C949C130E94E818292F2295F3 +:102770002F7030E02C3031054CF42A3031056CF4E8 +:102780002250310922303105A8F407C02C30310520 +:1027900069F02F30310551F00DC0803F69F018F419 +:1027A000803E40F409C0843F29F406C093FB88278B +:1027B00080F9089580E0089581E00895CF93DF9334 +:1027C00000D000D01F92CDB7DEB70F900F900F90C2 +:1027D0000F900F90DF91CF910895CF93DF9300D0AA +:1027E00000D000D0CDB7DEB726960FB6F894DEBF86 +:1027F0000FBECDBFDF91CF9108951F93CF93DF938D +:10280000C091850116E080918601C81799F0D0E04B +:102810001C9FF0011D9FF00D1124E957FE4F4081D0 +:10282000518162817381848195810E94ED1321968B +:10283000C770E9CFDF91CF911F9108954091B70103 +:102840005091B8016091B9017091BA018091BB01BA +:102850009091BC010C94ED138091BC0182958F7016 +:1028600009F054C08091B901882309F44FC08091C8 +:102870008501A09186016091B7017091B8014091E6 +:10288000BA015091BB01B6E08A1709F43FC090E04D +:1028900041155105C1F17F3F11F46F3FA1F1B89F80 +:1028A000F001B99FF00D1124E957FE4F21817213F9 +:1028B0002AC02081621327C02281211124C02381D4 +:1028C00034812417350710F421503109241B350BAE +:1028D000283C3105C0F42091BC012F702061209369 +:1028E000BC0126E0289FF001299FF00D1124E45738 +:1028F000FE4F80818F708061808387EB91E00E9422 +:1029000075130C94FD1301968770BECF0895CF9276 +:10291000DF92EF92FF920F931F93CF93DF93CDB788 +:10292000DEB762970FB6F894DEBF0FBECDBF8C0145 +:1029300085E0F801DE011D9601900D928A95E1F780 +:10294000D8014C9111965C91119712966C91129747 +:102950001396CD90DC9014973091B7017091B80127 +:102960008091BA019091BB01009709F46BC17F3F40 +:1029700019F43F3F09F466C1E090B901EE2009F473 +:10298000C0C02091BC01C816D90628F0F601E81B8A +:10299000F90BCF0104C0809590958C0D9D1DFF24EF +:1029A000F394883C910578F0F12C207F09F0C6C0A3 +:1029B0007C2DD98AC88A89890E94DE1387EB91E031 +:1029C0000E947513B1C0822F807F09F046C0751335 +:1029D00014C0341312C0611110C02F7020612093F5 +:1029E000BC010E941E1487EB91E00E947513809138 +:1029F000BC01D80115968C932EC0CD2819F15F3FEC +:102A000011F44F3FF9F0F62E61111CC08091850141 +:102A10002091860136E0821709F45AC090E0389F71 +:102A2000F001399FF00D1124E957FE4F71815713C2 +:102A300006C07081471303C07281711103C00196F3 +:102A40008770E9CFF62E662309F418C18091BC0186 +:102A500081608093BC01F12C11C1751308C034133F +:102A600006C0611104C08091BC01D801C3C04D876C +:102A70005E878D859E856A8B0E94B4136A89882340 +:102A8000E1F16623D1F12091BC01822F82958F70F4 +:102A900090E0029774F08091B7019091B801988707 +:102AA0008F831986DB86CA862C87CE0107960E9403 +:102AB000751386E0F801A7EBB1E001900D928A95BD +:102AC000E1F70E942C140E941E14FF24F394D6C038 +:102AD0004D875E878D859E850E94E818292F229557 +:102AE0002F7030E0223031050CF0BCC09F7009F02F +:102AF000B6C0805E883008F4C1C0C8010E9475135A +:102B0000E4CFC816D90608F453C0F601E81BF90B48 +:102B1000CF01883C910508F450C0F12C7C2DD98A56 +:102B2000C88A89890E94DE13E7EBF1E086E0DF01C5 +:102B30001D928A95E9F70E941E14A0C0751314C057 +:102B4000341312C0611110C08091BC01F80185835B +:102B5000C8010E94751386E0E7EBF1E0DF011D92EA +:102B60008A95E9F7FE2C8AC04D875E878D859E8504 +:102B70006A8B0E94B4136A89882309F4BECF662346 +:102B800009F4BBCF2091BC01822F82958F7090E019 +:102B900002970CF48ECF8091B7019091B8019A837F +:102BA00089831B82DD82CC822E83CE0101967FCF6A +:102BB000809590958C0D9D1DACCFF62E662309F463 +:102BC0009CCF75132EC034132CC02091BC0120FD66 +:102BD0001FC0822F82958F70D9F0D80115962C9343 +:102BE00015978F3049F08F5F982F9295907F822FA5 +:102BF0008F70892B15968C93C8010E94751386E0FF +:102C0000F801A7EBB1E001900D928A95E1F793CF1F +:102C100086E0F801A7EBB1E001900D928A95E1F70B +:102C20002DC04D875E878D859E850E94B4138111CE +:102C300040CF8091BC0181608093BC01C8010E949B +:102C400075131CC0662309F458CF4D875E878D85A8 +:102C50009E850E94B413882309F44FCF2ACF811197 +:102C600048CF0CC0243031050CF047CF9F7009F4D9 +:102C700040CFF8019581907F09F03BCF8F2D629670 +:102C80000FB6F894DEBF0FBECDBFDF91CF911F917D +:102C90000F91FF90EF90DF90CF9008951F93CF9307 +:102CA000DF93CDB7DEB72C970FB6F894DEBF0FBE1B +:102CB000CDBF4F83588769877A878B879C87CE01E2 +:102CC00007960E948714882369F08F8198852A854A +:102CD0003B85232BF1F19F3F09F063C08F3F09F043 +:102CE00060C037C086E0FE013796DE011196019084 +:102CF0000D928A95E1F76F817885EA85FB8530979B +:102D000041F17F3F11F46F3F21F12091860130E0C6 +:102D1000C9010196877099274091850150E0841779 +:102D2000950709F447C069837A83FD83EC8396E0B5 +:102D3000929FD001939FB00D1124A957BE4FFE0161 +:102D4000319601900D929A95E1F7809386010E9449 +:102D5000FD1316E080918501909186018917C1F1DC +:102D6000189FC001112489579E4F0E948714882301 +:102D700079F1E09185011E9FF0011124E957FE4F82 +:102D80004081518162817381848195810E94ED131C +:102D90008091850190E00196877099278093850145 +:102DA000D9CF4F81588569857A858B859C850E940E +:102DB000ED13CFCF0E94B0131092860110928501BF +:102DC000E7EBF1E086E0DF011D928A95E9F7C1CFDC +:102DD0002C960FB6F894DEBF0FBECDBFDF91CF911A +:102DE0001F910895EF92FF920F931F93CF93DF935C +:102DF0008C01009709F46CC0F12CEE24E394E801F7 +:102E00002196F8018491843740F4843008F051C051 +:102E1000813081F0823019F15BC0853709F444C0FC +:102E2000A8F19CE7980F903708F052C08F770E9466 +:102E3000FB1041C00E5F1F4FFE01C49180E28C0F5A +:102E4000883048F4C7708E2D01C0880FCA95EAF704 +:102E50000E94CE1914C08C2F0E9433102DC00E5F1B +:102E60001F4FFE01C49180E28C0F883058F4C77068 +:102E70008E2D01C0880FCA95EAF70E94D4190E94CE +:102E8000F5191AC08C2F0E94FB1016C00E5F1F4F41 +:102E9000FE01C491CC2381F08FE99FE00197F1F707 +:102EA00000C00000C150F6CF0E5F1F4FFE01F4902E +:102EB00003C00E9433108E018F2D882309F49FCF09 +:102EC000EFE9FFE03197F1F700C000008150F5CF46 +:102ED000DF91CF911F910F91FF90EF90089508958A +:102EE0006093C1017093C2018093C3019093C401A8 +:102EF0000C949C130F931F930091C1011091C20178 +:102F00002091C3013091C401DC01CB01802B912BB6 +:102F1000A22BB32B8093C1019093C201A093C30154 +:102F2000B093C4011F910F910C949C130F931F93A6 +:102F30000091C1011091C2012091C3013091C401DF +:102F4000DC01CB0180239123A223B3238093C10111 +:102F50009093C201A093C301B093C4011F910F913C +:102F60000C949C130F931F930091C1011091C20107 +:102F70002091C3013091C401DC01CB01802791274E +:102F8000A227B3278093C1019093C201A093C301EC +:102F9000B093C4011F910F910C949C131092BD012A +:102FA0001092BE011092BF011092C0010C949C13AC +:102FB00041E050E060E070E004C0440F551F661F20 +:102FC000771F8A95D2F74093BD015093BE0160935D +:102FD000BF017093C0010C949C1341E050E060E08D +:102FE00070E004C0440F551F661F771F8A95D2F703 +:102FF0008091BD019091BE01A091BF01B091C0012F +:10300000482B592B6A2B7B2B4093BD015093BE015B +:103010006093BF017093C0010C949C1341E050E099 +:1030200060E070E004C0440F551F661F771F8A954B +:10303000D2F740955095609570958091BD01909123 +:10304000BE01A091BF01B091C001482359236A235A +:103050007B234093BD015093BE016093BF017093E9 +:10306000C0010C949C1341E050E060E070E004C0AB +:10307000440F551F661F771F8A95D2F78091BD01B7 +:103080009091BE01A091BF01B091C001482759277E +:103090006A277B274093BD015093BE016093BF0117 +:1030A0007093C0010C949C130F931F930091BD016A +:1030B0001091BE012091BF013091C001DC01CB0114 +:1030C000802B912BA22BB32B8093BD019093BE013B +:1030D000A093BF01B093C0011F910F910C949C135A +:1030E0000F931F930091BD011091BE012091BF016C +:1030F0003091C001DC01CB0180239123A223B323B3 +:103100008093BD019093BE01A093BF01B093C00115 +:103110001F910F910C949C130F931F930091BD016D +:103120001091BE012091BF013091C001DC01CB01A3 +:1031300080279127A227B3278093BD019093BE01DA +:10314000A093BF01B093C0011F910F910C949C13E9 +:103150000895CF92DF92EF92FF920F931F93CF9338 +:10316000DF938C01C090C101D090C201E090C301F7 +:10317000F090C4018091BD019091BE01A091BF016A +:10318000B091C001C82AD92AEA2AFB2ACFE1D0E0AF +:10319000D701C6010C2E04C0B695A79597958795C3 +:1031A0000A94D2F780FF06C0B8018C2F0E947507E1 +:1031B000019721F4219760F780E001C08C2FDF9107 +:1031C000CF911F910F91FF90EF90DF90CF900895D6 +:1031D000CF93DF93EC010E94A918BE010E947507EE +:1031E000DF91CF910895CB010E94E8180895809156 +:1031F000C50185958595859508958091C501877050 +:10320000089598E0899F90011124262B2093C501F1 +:103210000C94ED172091C501809582238093C50100 +:10322000982F977069F430E0482F552747FD509547 +:103230002417350729F08595859585950C940E18EA +:1032400008959091C501977081E009F480E0089598 +:1032500090910C01992321F090910D01911109C0D9 +:1032600020910E0130910F01F90132969FEF40E05D +:103270001FC0982F9695969596959F3050F5E091A2 +:103280000E01F0910F01E90FF11D877021E030E090 +:10329000A90102C0440F551F8A95E2F7CA01918126 +:1032A000892B818308959F3F39F04F5F4E3041F065 +:1032B00051915813F8CF0DC05111F7CF942FF5CF7E +:1032C0009F3F39F0F901E90FF11D97FDFA958283CF +:1032D0000895089590910C01992321F090910D018A +:1032E000911109C020910E0130910F01F901329620 +:1032F000205F3F4F1FC0982F9695969596959F30CB +:10330000F0F4E0910E01F0910F01E90FF11D8770CB +:1033100021E030E0A90102C0440F551F8A95E2F771 +:10332000CA01809591818923818308953196E2179E +:10333000F30729F090819813F9CF1082F7CF089501 +:1033400081E090E0E0910E01F0910F01E80FF91F8C +:103350001082019680319105A9F708959091D901C5 +:10336000892B8093D901089580959091D901892363 +:103370008093D90108951092D90108959091D801B0 +:10338000892B8093D801089580959091D801892345 +:103390008093D80108951092D80108959091D70193 +:1033A000892B8093D701089580959091D701892327 +:1033B0008093D70108951092D70108958093C60194 +:1033C00008951092C601089580910E0190910F0109 +:1033D000FC0131969C01205F3F4F80E0919191115B +:1033E0008F5FE217F307D1F70895E0910E01F09196 +:1033F0000F018091D9018083E0910E01F0910F01BE +:1034000090818091D801892B8083E0910E01F09109 +:103410000F0190818091D701892B80838091C60113 +:10342000882361F0E0910E01F0910F019081892BCA +:1034300080830E94E41981111092C60180910E01CF +:1034400090910F010C94230F20E0009739F0AC010C +:1034500041505109842395232F5FF7CF822F089580 +:103460008091F101843021F11092DB0120E488E1A8 +:1034700090E00FB6F894A895809360000FBE20935B +:10348000600080E00E94100883B7817F846083BF62 +:1034900083B7816083BF7894889583B78E7F83BF1D +:1034A00088E10FB6F89480936000109260000FBE20 +:1034B0000895089508950E94591A0E94A1020E9439 +:1034C0005A1A0E94960391E0811101C090E0892F61 +:1034D00008950E94B0130E94170F0C94100882E008 +:1034E00084BD93E095BD9AEF97BD80936E000895DB +:1034F0002FB7F8948091DC019091DD01A091DE015D +:10350000B091DF012FBF0895CF92DF92EF92FF922B +:103510000F931F932FB7F8944091DC015091DD0178 +:103520006091DE017091DF012FBF6A017B01EE2403 +:10353000FF248C0120E030E0C016D106E206F3063D +:1035400010F4415051099A01281B390BC9011F91F0 +:103550000F91FF90EF90DF90CF9008951F920F9200 +:103560000FB60F9211248F939F93AF93BF938091C7 +:10357000DC019091DD01A091DE01B091DF010196A7 +:10358000A11DB11D8093DC019093DD01A093DE01AC +:10359000B093DF01BF91AF919F918F910F900FBEBC +:1035A0000F901F9018950E94140CF8942FEF87EA43 +:1035B00091E6215080409040E1F700C0000087E094 +:1035C00090EBDC018093FB019093FC01A093FD0143 +:1035D000B093FE019CE088E10FB6F894A895809323 +:1035E00060000FBE90936000FFCFEF92FF920F93A9 +:1035F0001F93CF93DF93D82FCDE08C2F0E948F03A2 +:1036000005E010E0E82EF12CC701002E02C09595D0 +:1036100087950A94E2F780FF09C0602F7C2F80E035 +:103620000E942005D81302C081E006C00150110994 +:1036300058F7C15010F780E0DF91CF911F910F91A3 +:10364000FF90EF900895CF93C82F8CE20E94F51A57 +:10365000882321F08C2FCF910C94F51A80E0CF9124 +:103660000895CF930E94781C811102C00E945E1CB5 +:10367000C5E6C15049F00E94A1028FE39CE9019781 +:10368000F1F700C00000F5CF89E20E94231B8111F1 +:1036900013C18AE20E94231B81110E945E1C85E0F7 +:1036A0000E94231B81110E94D31A0E94831C8093C5 +:1036B000DA0187E00E94231B8823A9F18BE10E9495 +:1036C000231B882351F08091DA0181FB222720F906 +:1036D00091E0922790FB81F90EC08EE00E94231B9F +:1036E000882361F08091DA0182FB222720F991E0A2 +:1036F000922790FB82F98093DA0115C080E10E9445 +:10370000231B9091DA01882341F093FB222720F9B3 +:1037100081E0822780FB93F904C0892F809580FB8C +:1037200090F99093DA018091DA010E94871C0E943F +:10373000951C8093FA0180EE0E94231B882341F0A0 +:103740008091FA01982F909590FB80F98093FA016F +:1037500089E30E94231B882359F08091FA0181FBA1 +:10376000222720F991E0922790FB81F98093FA01BA +:1037700082EE0E94231B882359F08091FA0182FB7C +:10378000222720F991E0922790FB82F98093FA0199 +:1037900086EE0E94231B882359F08091FA0183FB57 +:1037A000222720F991E0922790FB83F98093FA0178 +:1037B00083EE0E94231B882359F08091FA0184FB39 +:1037C000222720F991E0922790FB84F98093FA0157 +:1037D00085E30E94231B882359F08091FA0185FB21 +:1037E000222720F991E0922790FB85F98093FA0136 +:1037F00081E30E94231B882359F08091FA0186FB04 +:10380000222720F991E0922790FB86F98093FA0114 +:1038100081E10E94231B882359F08091FA0187FBE4 +:10382000222720F991E0922790FB87F98093FA01F3 +:103830008091FA010E94991C8091FA0187FB8827E8 +:1038400080F980930D0187E20E94231BC82F8EE12F +:103850000E94231B8111C2608FE10E94231B8111F2 +:10386000C46080E20E94231B8111C86081E20E9433 +:10387000231B8111C06182E20E94231B8111C0625F +:1038800083E20E94231B8111C06484E20E94231BF7 +:10389000882311F0C06802C0CC2329F08C2F0E942D +:1038A000901C6C2F03C00E948C1C682F70E080E07D +:1038B00090E0CF910C947017CF9108956DEE7EEF4C +:1038C00080E090E00E94CA2260E082E090E00E94E6 +:1038D000B82260E083E090E00E94B82260E084E0DB +:1038E00090E00E94B82260E085E090E00C94B8225D +:1038F00080E090E00E94B22221E08D3E9E4F09F0D0 +:1039000020E0822F089582E090E00C94AA22682F94 +:1039100082E090E00C94B82283E090E00C94AA221C +:10392000682F83E090E00C94B82284E090E00C943F +:10393000AA22682F84E090E00C94B8228091E201E2 +:1039400080FF0BC06091130185E0689FB0011124D6 +:1039500075956795759567952BC081FF09C0609136 +:10396000130185E0689FB00111247595679520C00B +:1039700082FF07C06091130185E0689FB0011124A8 +:1039800017C09091E3019923D1F06091120196172D +:1039900088F72091130185E0289F90011124929FC0 +:1039A000A001939F500D112470E0CA010E947C2257 +:1039B0006038710540F46115710539F002C065E0A9 +:1039C00070E0862F08958FE7089581E00895809133 +:1039D000E20180FF08C06091110170E07595679564 +:1039E0007595679521C081FF06C06091110170E057 +:1039F0007595679519C082FF04C06091110170E050 +:103A000010C09091E3019923C1F0609110019617C5 +:103A1000A0F780911101899FC001112470E00E94DC +:103A20007C226038710528F46115710521F0862F1C +:103A300008958FE7089581E0089561E070E0F4CF84 +:103A4000803F21F40E949E1C819504C0813F29F48F +:103A50000E949E1C8093E6010895823F21F40E94FB +:103A60009E1C819504C0833F29F40E949E1C809374 +:103A7000E5010895893F19F40E94E71C05C08A3FBB +:103A800031F40E94E71C81958093E70108958B3FF4 +:103A900021F40E94E71C819504C08C3F29F40E9408 +:103AA000E71C8093E8010895843F21F48091E401AC +:103AB000816017C0853F21F48091E401826011C0CC +:103AC000863F21F48091E40184600BC0873F21F49C +:103AD0008091E401886005C0883F31F48091E40161 +:103AE00080618093E40108958D3F21F48091E2018B +:103AF00081600BC08E3F21F48091E201826005C09D +:103B00008F3F29F48091E20184608093E20108955F +:103B1000803F39F48091E60187FF6CC01092E60186 +:103B200069C0813F29F48091E6011816BCF362C098 +:103B30009091E501823F29F497FF5CC01092E50166 +:103B400059C0833F19F41916CCF354C0893F41F48E +:103B50008091E70118160CF04DC01092E7014AC0A1 +:103B60008A3F29F48091E70187FF44C0F6CF8B3F5D +:103B700039F48091E80187FF3DC01092E8013AC016 +:103B80008C3F29F48091E8011816BCF333C0843FC0 +:103B900021F48091E4018E7F17C0853F21F480914C +:103BA000E4018D7F11C0863F21F48091E4018B7F79 +:103BB0000BC0873F21F48091E401877F05C0883FD7 +:103BC00031F48091E4018F7E8093E40113C08D3F36 +:103BD00021F48091E2018E7F0BC08E3F21F4809111 +:103BE000E2018D7F05C08F3F29F48091E2018B7F38 +:103BF0008093E2018091E50181110EC08091E60180 +:103C000081110AC08091E701811106C08091E8010D +:103C1000811102C01092E301089584EE91E00E94A8 +:103C20002E0F0E94781A9093E1018093E00108958D +:103C30001F93CF93DF938091E0019091E1010E9467 +:103C4000841AAC019091E301992321F02091140191 +:103C500030E006C0209115018AE0289F90011124D0 +:103C60004217530708F486C08091E501C091E60130 +:103C7000D091E7011091E801811107C0C11176C010 +:103C8000D11174C0111172C075C09F3F19F09F5FB0 +:103C90009093E301181624F40E949E1C8093E50182 +:103CA0008091E50187FF05C00E949E1C819580934D +:103CB000E5011C1624F40E949E1C8093E60180916D +:103CC000E60187FF05C00E949E1C81958093E60156 +:103CD0006091E501662339F1C091E601CC2319F129 +:103CE000772767FD7095872F972F0E948D2123E3FB +:103CF00033E343E35FE30E94F1210E945A21609382 +:103D0000E5016C2F772767FD7095872F972F0E940D +:103D10008D2123E333E343E35FE30E94F1210E941B +:103D20005A216093E6011D1624F40E94E71C80933B +:103D3000E7018091E70187FF05C00E94E71C81959C +:103D40008093E701111624F40E94E71C8093E80198 +:103D50008091E80187FF05C00E94E71C8195809350 +:103D6000E801DF91CF911F910C940D1E9F3F09F048 +:103D70008ECF96CFDF91CF911F910895E4EEF1E0C1 +:103D800085E0DF011D928A95E9F71092E301109218 +:103D9000E2010895833081F128F4813059F08230B6 +:103DA000D1F00895853009F449C0B8F1863009F49E +:103DB00056C0089580911501262F30E0280F311D3F +:103DC0002F3F310524F4680F6093150108958FEF9C +:103DD00080931501089580911401262F30E0280F5B +:103DE000311D2F3F310524F4680F609314010895AD +:103DF0008FEF80931401089580911301262F30E0F6 +:103E0000280F311D2F3F310524F4680F60931301F3 +:103E100008958FEF80931301089580911201262F4A +:103E200030E0280F311D2F3F310524F4680F6093D7 +:103E3000120108958FEF809312010895809111016E +:103E4000262F30E0280F311D2F3F310524F4680F55 +:103E50006093110108958FEF80931101089580916F +:103E60001001262F30E0280F311D2F3F310524F49B +:103E7000680F6093100108958FEF809310010895EB +:103E8000833011F128F4813049F0823091F00895A7 +:103E9000853081F120F18630C1F1089580911501BE +:103EA000681720F4861B8093150108951092150160 +:103EB000089580911401681720F4861B80931401E3 +:103EC000089510921401089580911301681720F449 +:103ED000861B809313010895109213010895809119 +:103EE0001201681720F4861B809312010895109226 +:103EF0001201089580911101681720F4861B8093A8 +:103F00001101089510921101089580911001681710 +:103F100020F4861B809310010895109210010895DB +:103F20000F931F938D3109F46BC008F03FC08E30A2 +:103F300009F47FC0C0F4873009F469C068F48630A2 +:103F400009F0B1C08091DA01817F8E7F8093DA0120 +:103F500081E08093EA01A8C0883009F4A2C08B30C8 +:103F600009F49FC0A0C0863109F49BC078F4803169 +:103F700009F472C0813109F096C00E94B01390918B +:103F80000D0181E0892780930D018BC0893109F4EF +:103F900088C08B3109F087C08091DA0181FB22272C +:103FA00020F991E0922790FB81F94CC0853309F408 +:103FB00070C048F4873209F46CC008F459C08932E3 +:103FC00009F467C070C0833438F48A3308F04EC0F7 +:103FD000883309F466C067C0833409F45AC0883452 +:103FE00009F061C00E94B0130FEF13ED20E3015000 +:103FF00010402040E1F700C000000E94D31A51C0D9 +:104000000E9414210E94170F0E9410084AC090912C +:10401000DA01892F8095817080FB90F929F09660F4 +:1040200098609093DA0140C0997F977F9093DA016E +:1040300038C08091DA0182FB222720F991E0922793 +:1040400090FB82F98093DA01992359F18091DA018A +:1040500081608093DA0125C08091DA0183FB2227F9 +:1040600020F991E0922790FB83F9ECCF895301C0AE +:104070008D5141E050E060E070E08A019B0104C096 +:10408000000F111F221F331F8A95D2F7C901B801F3 +:1040900004C061E070E080E090E00E9470170E9430 +:1040A000B01381E001C080E01F910F91089580E07E +:1040B000089580E00895CF93C82F8091EA01813060 +:1040C00079F018F08230E9F187C0E0910E01F091AB +:1040D0000F018081813169F0823209F07FC009C00F +:1040E000E0910E01F0910F018081813111F0823257 +:1040F00061F48C2F0E945720811104C08C2F0E94E4 +:10410000901F1DC081E090E01AC08C2F0E945920A2 +:10411000811114C0C43179F048F4CB3079F0C0314A +:1041200009F060C082E08093EA0108C0C93219F04A +:10413000C83321F057C01092EA0154C081E0817069 +:1041400053C0C93289F118F5C43171F1A8F4C730F0 +:1041500009F046C08AE08093150194E19093140120 +:1041600093E0909313018093120188E080931101F2 +:1041700088E28093100134C0CE51C63088F5EC2F10 +:10418000F0E0E65DFE4F80818093E90129C0CE34E6 +:10419000E9F020F4CB3421F56AE013C0C13579F0A1 +:1041A000C235F1F461E00DC08091E901882319F076 +:1041B0001092E90115C081E08093EA0115C061E029 +:1041C00006C08091E9010E94CA1E0AC06AE080917F +:1041D000E9010E94401F04C01092EA0180E004C07F +:1041E00081E002C080E0ABCFCF910895E1E8F0E03C +:1041F0008081886080838081816080838FB7F8941C +:1042000093E09093890090ED909388008FBF08957C +:10421000EFE6F0E08081826080830895EFE6F0E0D1 +:1042200080818D7F80830895EFE6F0E0908182E0C9 +:104230008927808308951F920F920FB60F92112441 +:104240002F933F934F935F936F937F938F939F939E +:10425000AF93BF93EF93FF938091EB019091EC01AB +:1042600001969093EC018093EB01811103C082E0F1 +:104270000E941008E091EC01E695E695F0E0E05A26 +:10428000FC4FE4918091EB018E1303C080E00E940B +:104290001008FF91EF91BF91AF919F918F917F9106 +:1042A0006F915F914F913F912F910F900FBE0F90A3 +:1042B0001F90189504D06894B1118DC0089570D0E6 +:1042C00088F09F5790F0B92F9927B751A0F0D1F0FF +:1042D000660F771F881F991F1AF0BA95C9F712C089 +:1042E000B13081F077D0B1E0089574C0672F782F96 +:1042F0008827B85F39F0B93FCCF3869577956795F5 +:10430000B395D9F73EF490958095709561957F4F60 +:104310008F4F9F4F0895E89409C097FB3EF4909506 +:104320008095709561957F4F8F4F9F4F9923A9F08E +:10433000F92F96E9BB279395F6958795779567951D +:10434000B795F111F8CFFAF4BB0F11F460FF1BC061 +:104350006F5F7F4F8F4F9F4F16C0882311F096E9F4 +:1043600011C0772321F09EE8872F762F05C06623A2 +:1043700071F096E8862F70E060E02AF09A95660F5B +:10438000771F881FDAF7880F9695879597F9089514 +:1043900057FD9058440F551F59F05F3F71F04795F6 +:1043A000880F97FB991F61F09F3F79F087950895DB +:1043B000121613061406551FF2CF4695F1DF08C0FA +:1043C000161617061806991FF1CF86957105610517 +:1043D00008940895E894BB2766277727CB0197F9BF +:1043E00008950BD078C069D028F06ED018F09523CE +:1043F00009F05AC05FC01124EECFCADFA0F3959F29 +:10440000D1F3950F50E0551F629FF001729FBB27BB +:10441000F00DB11D639FAA27F00DB11DAA1F649F67 +:104420006627B00DA11D661F829F2227B00DA11D1A +:10443000621F739FB00DA11D621F839FA00D611DA0 +:10444000221F749F3327A00D611D231F849F600DC1 +:10445000211D822F762F6A2F11249F5750408AF0FA +:10446000E1F088234AF0EE0FFF1FBB1F661F771F86 +:10447000881F91505040A9F79E3F510570F014C01D +:10448000AACF5F3FECF3983EDCF38695779567956E +:10449000B795F795E7959F5FC1F7FE2B880F911DA4 +:1044A0009695879597F9089597F99F6780E870E04A +:1044B00060E008959FEF80EC089500240A9416169A +:1044C000170618060906089500240A941216130602 +:1044D000140605060895092E0394000C11F4882390 +:1044E00052F0BB0F40F4BF2B11F460FF04C06F5FAC +:1044F0007F4F8F4F9F4F089597FB072E16F4009420 +:1045000007D077FD09D00E94962207FC05D03EF423 +:10451000909581959F4F0895709561957F4F08956F +:10452000EE0FFF1F0590F491E02D0994AA1BBB1B11 +:1045300051E107C0AA1FBB1FA617B70710F0A61BA3 +:10454000B70B881F991F5A95A9F780959095BC01C4 +:10455000CD010895F999FECF92BD81BDF89A9927B2 +:1045600080B50895A8E1B0E042E050E00C94D2227A +:10457000262FF999FECF92BD81BDF89A019700B41C +:10458000021639F01FBA20BD0FB6F894FA9AF99ABC +:104590000FBE08950196272F0E94B9220C94B822CD +:1045A000DC01CB01FC01F999FECF06C0F2BDE1BDF3 +:1045B000F89A319600B40D9241505040B8F70895E2 +:0445C000F894FFCF9D +:1045C40002201208A0087D08490815080101C70146 +:1045D40028080A03140A3F4D36392103D4029E02E7 +:1045E4006502F80111022A024302010203040506CE +:0445F40007080900AB +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/supercoder/config_user.h b/keyboards/ergodox_ez/keymaps/supercoder/config_user.h new file mode 100644 index 000000000..8da138372 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/supercoder/config_user.h @@ -0,0 +1,9 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H 1 + +#include "config.h" + +#undef LOCKING_SUPPORT_ENABLE +#undef LOCKING_RESYNC_ENABLE + +#endif diff --git a/keyboards/ergodox_ez/keymaps/supercoder/images/layout.png b/keyboards/ergodox_ez/keymaps/supercoder/images/layout.png new file mode 100644 index 000000000..c72958c6e Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/supercoder/images/layout.png differ diff --git a/keyboards/ergodox_ez/keymaps/supercoder/images/supercoder_2000.jpg b/keyboards/ergodox_ez/keymaps/supercoder/images/supercoder_2000.jpg new file mode 100644 index 000000000..d690eaf02 Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/supercoder/images/supercoder_2000.jpg differ diff --git a/keyboards/ergodox_ez/keymaps/supercoder/keymap.c b/keyboards/ergodox_ez/keymaps/supercoder/keymap.c new file mode 100644 index 000000000..ca21d30fd --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/supercoder/keymap.c @@ -0,0 +1,75 @@ +/* + * SuperCoder 2000 layout + */ + +#include "ergodox_ez.h" + +/* Layers */ + +#define SC2K 0 // default layer + +/* The Keymap */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Keymap 0: Base Layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 1 | 1 | 1 | 1 | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 1 | 1 | 1 | 1 | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | 0 | 0 | 0 | 0 | 0 | 0 |------| |------| 1 | 1 | 1 | 1 | 1 | 1 | + * |-----------+------+------+------+------+------| 0 | | 1 |------+------+------+------+------+-----------| + * | 0 | 0 | 0 | 0 | 0 | 0 | | | | 1 | 1 | 1 | 1 | 1 | 1 | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 1 | 1 | + * `-----------------------------------' `-----------------------------------' + * ,-------------. ,-------------. + * | DONE | DONE | | DONE | DONE | + * ,------|------|------| |------+------+------. + * | | | DONE | | DONE | | | + * | DONE | DONE |------| |------| DONE | DONE | + * | | | DONE | | DONE | | | + * `--------------------' `--------------------' + */ +[SC2K] = KEYMAP( + // left hand + KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 +,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 +,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 +,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 +,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 + + ,KC_ENT ,KC_ENT + ,KC_ENT + ,KC_ENT ,KC_ENT ,KC_ENT + + // right hand + ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 + ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 + ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 + ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 + ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 + + ,KC_ENT ,KC_ENT + ,KC_ENT + ,KC_ENT ,KC_ENT ,KC_ENT + ), +}; + +const uint16_t PROGMEM fn_actions[] = { +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + 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) { +} diff --git a/keyboards/ergodox_ez/keymaps/supercoder/makefile.mk b/keyboards/ergodox_ez/keymaps/supercoder/makefile.mk new file mode 100644 index 000000000..41a195d9c --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/supercoder/makefile.mk @@ -0,0 +1,6 @@ +BOOTMAGIC_ENABLE=no +COMMAND_ENABLE=no +SLEEP_LED_ENABLE=no +UNICODE_ENABLE=no +MOUSEKEY_ENABLE=no +EXTRAKEY_ENABLE=no diff --git a/keyboards/ergodox_ez/keymaps/techtomas/compiled.hex b/keyboards/ergodox_ez/keymaps/techtomas/compiled.hex new file mode 100644 index 000000000..6bab27524 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/techtomas/compiled.hex @@ -0,0 +1,1169 @@ +:100000000C94D1020C9415030C9415030C94150355 +:100010000C9415030C9415030C9415030C94150300 +:100020000C9415030C9415030C94BD0D0C948F0EB9 +:100030000C9415030C9415030C9415030C941503E0 +:100040000C9415030C9499220C9415030C9415032D +:100050000C9415030C942C1C0C9415030C94150390 +:100060000C9415030C9415030C9415030C941503B0 +:100070000C9415030C9415030C9415030C941503A0 +:100080000C9415030C9415030C9415030C94150390 +:100090000C9415030C9415030C9415030C94150380 +:1000A0000C9415030C9415030C941503FC0E1E0FF1 +:1000B0000C101E0F0C10630F860F0C10DB0FEE0FD1 +:1000C000BD12BD12EC12EC122213421373147314FE +:1000D0004D137314FD13FD136414731473146D1412 +:1000E0000A140A140A140A140A140A140A140A1420 +:1000F0000A140A140A140A140A140A140A140A1410 +:100100001C1429143014371441140000F0A1F0A27B +:10011000F0A335422B77297FE100504100001E00FB +:10012000140004001D004F434D431F001A00160029 +:100130001B00E0004C002000080007000600E20061 +:100140002A002100150009001900E3004A4122009D +:1001500017000A0005000000E0002C082F00000036 +:100160002B000000E3002D00300000002B020000F7 +:10017000E30423001C000B0011000000E302240034 +:1001800018000D001000E7004B4225000C000E0087 +:10019000360052002C00260012000F0037005100DC +:1001A00028002700130033423842C3004E412E007E +:1001B0003177347FE500C10000000100010001003B +:1001C0000100010000003A001E022002220201008C +:1001D00001003B001F0221022302010001003C003C +:1001E0002F0226022F00010001003D0030022702ED +:1001F0003000010001003E003102350035020000F0 +:1002000001000100360200006900000001002B001F +:10021000370200006A00000001003F003302330093 +:100220002402000001004000240021001E002700DD +:1002300001004100250022001F003700010042009C +:100240002600230020002E0001004300310025027B +:100250002D002E020100440045000100280001008D +:100260000000010001000100010001000000010088 +:10027000140801001D080100010001001A08010016 +:100280001B08010001000100010001000608010037 +:100290000100010001000100190801000100010036 +:1002A0000100010006010000010001002B02000016 +:1002B0000100000001000100AE000000A8000000E5 +:1002C00001000100AC00AA000100000001000100D3 +:1002D000AB00A900010001000100010001000100C4 +:1002E0000100010001000100010001000100010006 +:1002F00001000100460001000100010001000100B1 +:1003000001000100010001000000A5000100010042 +:1003100001000100000001000100010001000100D6 +:10032000010001000100F2000100010001000100D4 +:10033000F000F10001000100010001000100F300E4 +:1003400001000100E20001000100F400F5000000DE +:10035000E1000100010000000100000001000100B7 +:1003600001000000010000004A00010001005000EF +:10037000010000004D0001000100510001000100DA +:100380000100010001005200010001000100010014 +:1003900001004F0001000100010001000100010007 +:1003A0000100010001000100010001000100010045 +:1003B000000016034500720067006F0044006F00E4 +:1003C0007800200045005A00000016034500720026 +:1003D00067006F0044006F007800200045005A005D +:1003E00000000403090409026D00040100A0FA09D9 +:1003F0000400000103010100092111010001224054 +:10040000000705810308000A090401000103010235 +:1004100000092111010001224D0007058203080097 +:100420000A09040200010300000009211101000172 +:100430002236000705830308000A090403000103AC +:100440000000000921110100012239000705840381 +:100450001000011201100100000008EDFE07130159 +:10046000000102000105010906A101050719E029A3 +:10047000E715002501950875018102050819012974 +:1004800005950575019102950175039101050719FF +:1004900000297715002501957875018102C00501B5 +:1004A0000980A101850216010026B7001A01002A61 +:1004B000B700751095018100C0050C0901A10185E7 +:1004C00003160100269C021A01002A9C0275109551 +:1004D000018100C005010902A1010901A10005096E +:1004E0001901290515002501950575018102950160 +:1004F000750381010501093009311581257F9502B8 +:100500007508810609381581257F950175088106D2 +:10051000050C0A38021581257F950175088106C0F2 +:10052000C005010906A101050719E029E715002505 +:100530000195087501810295017508810105081969 +:100540000129059505750191029501750391010534 +:1005500007190029FF150026FF0095067508810080 +:10056000C0000000000000000000000001020406BE +:100570000A0F17202C3A4A5D71879DB3C7DAE9F557 +:10058000FCFFFCF5E9DAC7B39D87715D4A3A2C2080 +:10059000170F0A060402010000000000000000001E +:1005A000000011241FBECFEFDAE0DEBFCDBF04B6DE +:1005B00003FE24C08091FB019091FC01A091FD01FC +:1005C000B091FE018730904BA740B04BB9F4109228 +:1005D000FB011092FC011092FD011092FE0114BE6D +:1005E00084B7877F84BF88E10FB6F894809360005A +:1005F000109260000FBEE0E0FFE3099511E0A0E07B +:10060000B1E0E0ECF8E402C005900D92A433B1072C +:10061000D9F711E0A4E3B1E001C01D92AB3FB107EF +:10062000E1F70E94010B0C945E240C9400001092E0 +:10063000B9008AE08093B800089594EA9093BC00D2 +:100640009091BC0097FFFCCF9091B900987F9830B3 +:1006500021F0903111F081E008958093BB0084E88F +:100660008093BC008091BC0087FFFCCF8091B900D3 +:10067000887F883111F0803471F780E0089584E933 +:100680008093BC008091BC0084FDFCCF08958093D2 +:10069000BB0084E88093BC008091BC0087FFFCCF46 +:1006A0009091B900987F81E0983209F480E0089534 +:1006B00084E88093BC008091BC0087FFFCCF8091D0 +:1006C000BB00089580910101811115C080E40E9452 +:1006D0001D038093010181110CC082E10E94470338 +:1006E00080930101811105C08FEF0E944703809321 +:1006F00001010E943F0384B1807F84B985B1807F6E +:1007000085B98AB1837F8AB98BB1837F8BB93E98D3 +:10071000469808950E941D05809301010E9462037E +:1007200080B38C7080BB81B3836F81BBA5E3B1E0E4 +:10073000E3E4F1E08EE08E0F11921D928E13FCCF58 +:100740000C940705BF92CF92DF92EF92FF920F9326 +:100750001F93CF93DF9380910101882379F08091DB +:1007600034018F5F80933401811108C00E941D0500 +:1007700080930101811102C00E94AF0405E311E0E2 +:10078000C0E0D0E0DD24D39482E0C82EEE24E394D0 +:10079000F12CC730D10500F580910101811164C0B1 +:1007A00080E40E941D0380930101811112C082E147 +:1007B0000E9447038093010181110BC0C7010C2ED9 +:1007C00001C0880F0A94EAF780950E94470380933E +:1007D00001010E943F0348C0CA30A1F028F4C8308C +:1007E00059F0C93061F005C0CC3089F070F0CD30DF +:1007F00089F0209A289810C0219A29980DC0229A31 +:100800002A980AC0239A2B9807C0529A01C0539A7B +:100810005B9802C03E9A469890EA9A95F1F79FB18C +:10082000799902C082E001C080E091709D25982BEB +:100830007C9902C084E001C080E0892B7D9902C0D0 +:1008400038E001C030E0832B7E9902C020E101C076 +:1008500020E0822B9FB19095991F9927991F92951F +:10086000990F907E892B0FC080910101811149C0A1 +:1008700080E40E941D0380930101882379F1B12C4B +:100880000E943F038B2DF8019081981719F0808307 +:10089000C09200010E94620321960F5F1F4FCE306D +:1008A000D10509F076CF80910001882361F1815054 +:1008B00080930001882339F08FE99FE00197F1F7D9 +:1008C00000C0000020C0A3E4B1E0E5E3F1E0CF0107 +:1008D000825F91919D938E13FCCF15C083E10E949E +:1008E0004703809301018111CACF81E40E941D0357 +:1008F000809301018111C3CF0E945803B82EB09498 +:10090000BFCF80E0C0CF0E94AD0481E0DF91CF91E6 +:100910001F910F91FF90EF90DF90CF90BF900895BF +:10092000E82FF0E0ED5BFE4F8081089508950F936E +:100930001F93CF93DF93C3E4D1E010E00C2F025F4D +:10094000899190E00E94521B180F0C13F9CF812F50 +:10095000DF91CF911F910F9108950C947D055698CA +:100960005E9825982D9826982E9827982F988FEF87 +:1009700090E0909389008093880090938B008093FF +:100980008A0090938D0080938C00259A2D9A2FEFEA +:1009900080E792E0215080409040E1F700C00000E5 +:1009A000269A2E9A2FEF80E792E0215080409040C7 +:1009B000E1F700C00000279A2F9A2FEF80E792E01E +:1009C000215080409040E1F700C0000025982D980C +:1009D0002FEF80E792E0215080409040E1F700C087 +:1009E000000026982E982FEF80E792E0215080405B +:1009F0009040E1F700C0000027982F9856985E9825 +:100A000025982D9826982E9827982F98089589EA4A +:100A10008093800089E08093810024982C983F98EF +:100A20008AB18F748AB96E98479A8BB1806B8BB9F3 +:100A3000769A0E94AF040C947C0580E280930101B9 +:100A40008091510181110EC00E94170381E08093B3 +:100A500051012FEF83ED90E3215080409040E1F76A +:100A600000C0000080E40E941D03809301018111F9 +:100A70002EC00E94470380930101811128C00E946B +:100A8000470380930101811122C08FE30E94470335 +:100A90008093010181111BC00E943F0380E40E94EA +:100AA0001D0380930101811112C08CE00E94470355 +:100AB0008093010181110BC00E94470380930101C3 +:100AC000811105C08FE30E944703809301010E94BA +:100AD0003F0380910101089561110BC0FC018281E7 +:100AE000882321F085EE0E94611103C085EE0E94EB +:100AF000291280E090E0089508956091BD01709101 +:100B0000BE018091BF019091C0010E945E1B56986A +:100B10005E9825982D9826982E9827982F988230A1 +:100B200039F0833041F0813041F4259A2D9A0895AF +:100B3000269A2E9A0895279A2F9A089581E008956B +:100B400081E008950C94A00508950F931F93CF930F +:100B5000DF938C01FC01C081D181CE010E94D719A5 +:100B6000BE010E944E06EC01B8010E94A205882336 +:100B700009F48DC0F8018281882309F44AC080916C +:100B80005D0181111FC0C431F0E5DF0709F051C0DC +:100B90000E94A40581E080935D010E94F61B909362 +:100BA0005C0180935B0110925401109256011092E7 +:100BB0005501109258011092570110925A0110924B +:100BC000590165C080915B0190915C010E94021CFB +:100BD000883C910570F480915401E82FF0E0EE0F0D +:100BE000FF1FEB5AFE4FD183C0838F5F8093540168 +:100BF0004EC0C43880E5D80721F0C538D04501F192 +:100C00003AC0F8018281882341F01092520182E0BB +:100C10001EC0C438E0E5DE0759F58091520181110C +:100C200006C086E20E94611186E20E94291282E0DB +:100C30001CC0C438F0E5DF0741F3C538D045D9F40E +:100C4000F8018281882331F01092530180E20E94E2 +:100C500078121DC080915301811106C087E20E9465 +:100C6000611187E20E94291280E20E947F120FC068 +:100C7000C538D04529F381E0809352018093530118 +:100C8000C801DF91CF911F910F910C949E0580E0D8 +:100C9000DF91CF911F910F910895089596E0799F6C +:100CA000F001112494E5899FE00DF11D1124E60F58 +:100CB000F11DEE0FFF1FEE5EFE4F8591949108959A +:100CC000880F991FFC01E657F04085919491089593 +:100CD000880F991FFC01E65FFE4F8591949108955E +:100CE0000F931F93CF93DF93EC01811520E39207BD +:100CF00050F5C11580E2D80708F0C3C0CB3BD10541 +:100D000090F4C83AD10508F06AC0C53AD10508F098 +:100D10005BC0C430D10508F0D0C1219709F0CAC129 +:100D200001E010E00AC2CF3FD10511F008F0C5C1C3 +:100D3000C03FD10508F0A2C0CE01805E910908979E +:100D400008F4BBC1B7C1C13090E5D90709F4A2C00E +:100D500020F5C0318FE4D80770F4C11590E4D907AD +:100D600008F094C0C11521E3D20708F0A3C1DD2724 +:100D70008E01106CE2C1C115D04509F09BC10E94E3 +:100D8000DE148FEF94E32CE0815090402040E1F797 +:100D900000C000000E94511CD0C1C11597E5D907C1 +:100DA00058F4C03121E5D20708F01CC1C43180E5F8 +:100DB000D80708F475C07EC1CE01905781159041C7 +:100DC00008F078C1DF7073C1C53AD10509F477C165 +:100DD000C63AD10509F076C102E810E4AEC1C83ABE +:100DE000D10509F472C1C93AD10509F471C1CA3AF1 +:100DF000D10509F470C1CB3AD10509F46FC1CC3AE1 +:100E0000D10509F46EC1CD3AD10509F46DC1C03BDD +:100E1000D10509F46CC1CE3AD10509F46BC1CF3AC2 +:100E2000D10509F46AC1C13BD10509F469C1C23BCE +:100E3000D10509F468C1C33BD10509F467C1C43BBE +:100E4000D10509F466C1C53BD10509F465C1C63BAE +:100E5000D10509F464C1C73BD10509F463C1C83B9E +:100E6000D10509F462C1C93BD10509F461C1CA3B8E +:100E7000D10509F460C100E014E45FC18E01106582 +:100E80005CC1CE019F700E94680658C1DF708E0160 +:100E9000106A53C18091DA0181608093DA014DC1FB +:100EA0000E94F61D811102C00E94DC1D0E94131ECB +:100EB00090E09093FB018093FA01C23080E5D8075F +:100EC00021F48091FA01816086C0C43090E5D90791 +:100ED00021F48091FA0182607EC0C63020E5D207FD +:100EE00021F48091FA01846076C0C83080E5D8078B +:100EF00019F48091FA0127C0CA3090E5D90721F48E +:100F00008091FA01806167C0CC3020E5D20721F4DE +:100F10008091FA0180625FC0CE3080E5D80721F46D +:100F20008091FA01806457C0C03190E5D90721F45F +:100F30008091FA0180684FC0C23120E5D20729F4C0 +:100F40008091FA018460886046C0C33080E5D8078C +:100F500021F48091FA018E7F3EC0C53090E5D9071B +:100F600021F48091FA018D7F36C0C73020E5D20789 +:100F700021F48091FA018B7F2EC0C93080E5D8071B +:100F800019F48091FA0126C0CB3090E5D90721F4FD +:100F90008091FA018F7E1FC0CD3020E5D20721F469 +:100FA0008091FA018F7D17C0CF3080E5D80721F4FA +:100FB0008091FA018F7B0FC0C13190E5D90721F4F0 +:100FC0008091FA018F7707C0C331D04531F4809109 +:100FD000FA018B7F877F8093FA018091FA010E944A +:100FE000171EABC08D2F99278F70992781309105DF +:100FF000D9F49E012370332702C0880F991F2A95C8 +:10100000E2F79C688E0144E0000F111F4A95E1F75A +:1010100000271370802B912B53E0CC0FDD1F5A95C6 +:10102000E1F7C076DD272FC08230910531F4DC2F47 +:10103000CC278E01016F106A80C08330910569F45E +:10104000CE018370992701E010E002C0000F111F4C +:101050008A95E2F7C8019C680FC084309105B9F405 +:10106000CE018370992701E010E002C0000F111F2C +:101070008A95E2F7C8019A6823E0CC0FDD1F2A9514 +:10108000E1F7C07ED7708C010C2B1D2B56C085302C +:10109000910531F4DC2FCC278E01046F106A4DC00E +:1010A000069709F04AC0CF71DD27DC2FCC278E01CF +:1010B000106243C000E010E040C08E013EC001E875 +:1010C00010E43BC003E810E438C002EE14E435C07D +:1010D00009EE14E432C00AEE14E42FC005EB14E468 +:1010E0002CC006EB14E429C007EB14E426C00CEC7A +:1010F00014E423C00DEC14E420C003E815E41DC083 +:101100000AE815E41AC002E915E417C004E915E479 +:1011100014C001E216E411C003E216E40EC004E2BA +:1011200016E40BC005E216E408C006E216E405C0AA +:1011300007E216E402C00AE216E4C801DF91CF918B +:101140001F910F91089596E0799FF001112494E585 +:10115000899FE00DF11D1124E60FF11DEE0FFF1F19 +:10116000EE5EFE4F85919491803E9105E0F4803CC7 +:10117000910558F58133910509F46FC048F489321F +:10118000910509F463C08A32910509F46DC072C0FB +:1011900089339105E9F082389105D1F085339105C5 +:1011A00009F44DC067C0833E910581F138F4803E5B +:1011B0009105B9F0823E9105D9F05CC0863E91055B +:1011C00061F1873E9105A1F155C00E946006089526 +:1011D0002091FA0120FD02C021FF4CC080EE90E07A +:1011E00049C08091FA0180FFF9CF89E390E042C0C5 +:1011F0008091FA0182FF0EC08091FA0184FF03C042 +:1012000080E090E037C083EE90E034C08091FA0136 +:1012100082FFF2CF82EE90E02DC08091FA0183FF31 +:101220000BC08091FA0184FDEBCF87EE90E022C0E5 +:101230008091FA0183FFF5CF86EE90E01BC080918C +:10124000FA0185FF07C089E290E014C08091FA019D +:1012500085FFF9CF85E390E00DC08091FA0186FF0C +:1012600007C08AE290E006C08091FA0186FFF9CFBC +:1012700081E390E00E947006089508950C943D0962 +:1012800080916E010895CF93DF9300D01F92CDB768 +:10129000DEB79C018091F101843019F593E09983C8 +:1012A0003B832A839093E9008FEF9091E80081506F +:1012B00095FD06C095ED9A95F1F700008111F5CFE7 +:1012C0008091E80085FF0DC040E050E063E070E0F1 +:1012D000CE0101960E94AD0B8091E8008E7780933D +:1012E000E8000F900F900F90DF91CF910895CF936A +:1012F000DF9300D01F92CDB7DEB72091F1012430EB +:1013000021F522E029839B838A8383E08093E9008F +:101310008FEF9091E800815095FD06C095ED9A956C +:10132000F1F700008111F5CF8091E80085FF0DC035 +:1013300040E050E063E070E0CE0101960E94AD0B0A +:101340008091E8008E778093E8000F900F900F90C7 +:10135000DF91CF9108952091F1012430F1F422E042 +:101360002093E9002FEF3091E800215035FD06C0B1 +:1013700035ED3A95F1F700002111F5CF2091E80005 +:1013800025FF0BC040E050E065E070E00E94AD0B2F +:101390008091E8008E778093E8000895CF93DF93E3 +:1013A000EC019091F101943009F046C080910C015C +:1013B0008823D9F080910D018823B9F09093E9003A +:1013C0008FEF9091E800815095FD06C095E19A95C8 +:1013D000F1F700008111F5CF8091E80085FF2CC066 +:1013E00040E050E060E170E017C081E08093E900E8 +:1013F0008FEF9091E800815095FD06C095ED9A958C +:10140000F1F700008111F5CF8091E80085FF14C04D +:1014100040E050E068E070E0CE010E94AD0B8091AA +:10142000E8008E778093E80080E1FE01AEE5B1E050 +:1014300001900D928A95E1F7DF91CF910895809107 +:10144000F001811109C00E94420D0E949F0D809100 +:10145000E20084608093E20008951092F001089504 +:1014600008950C9486220E94E71B0E948C220E9401 +:1014700045100C943E0942E061EC81E00E94BC0CF6 +:1014800042E061EC82E00E94BC0C42E061EC83E04F +:101490000E94BC0C42E161EC84E00C94BC0C809195 +:1014A000F301833009F455C030F4813071F082309B +:1014B00009F48EC008958A3009F47AC08B3009F49B +:1014C00060C0893009F09CC020C08091F201813A4F +:1014D00009F096C08091E800877F8093E8008091B2 +:1014E000F6019091F701892B21F460E18EE591E0FE +:1014F00003C060E080E090E070E00E94F80B809113 +:10150000E8008B778093E80008958091F2018132A2 +:1015100009F076C08091F6019091F701009719F0DB +:10152000039709F06DC08091E800877F8093E80001 +:101530008091E80082FD05C08091F1018111F8CF12 +:101540005FC08091F10080936E018091E8008B77FD +:1015500053C08091F201813A09F052C08091F601A6 +:101560009091F701892B09F04BC08091E800877FAB +:101570008093E8008091E80080FFFCCF80910C010F +:1015800036C08091F2018132D9F58091F6019091B7 +:10159000F701892BA9F58091E800877F8093E80007 +:1015A0000E94F10C8091F40180930C010C94DE14E4 +:1015B0008091F201813221F58091E800877F80934C +:1015C000E8000E94F10C8091F50180936F0108956D +:1015D0008091F201813AA1F48091E800877F8093A5 +:1015E000E8008091E80080FFFCCF80916F0180933C +:1015F000F1008091E8008E778093E8000C94F10C64 +:10160000089584B7877F84BF88E10FB6F8948093EC +:101610006000109260000FBE90E080E80FB6F89472 +:1016200080936100909361000FBE0E9494100E940D +:10163000420D0E949F0D8091E20084608093E20041 +:1016400078940E9425100E94961082E091E00E94FA +:1016500040100E9474228091F101853069F40E944B +:10166000AE1B8091EF018823B1F30E94D91B882320 +:1016700091F30E94970BEFCF0E949C10ECCF292F83 +:10168000332723303105C9F064F42130310581F06E +:101690002230310509F043C08DE690E026EE33E0BC +:1016A00042C021323105F1F02232310541F137C01B +:1016B00082E190E023E534E036C09927813091053E +:1016C00041F08230910541F0892B49F5E2EEF3E0DB +:1016D00005C0EAECF3E002C0E2EBF3E0849190E0B5 +:1016E0009F0121C06430D8F4E62FF0E0EE0FFF1F19 +:1016F000EE5DFE4F2081318189E090E014C06430BE +:1017000070F470E0FB01EE0FFF1FE65EFE4F2081DC +:101710003181FB01EA5EFE4F808190E004C080E0F1 +:1017200090E020E030E0FA0131832083089580E1E9 +:1017300089BD82E189BD09B400FEFDCF8091D8004A +:101740008F7D8093D8008091E00082608093E000DC +:101750008091E00081FDFCCF0895CF92DF92EF925F +:10176000FF920F931F93CF93DF93EC018B016A01DC +:101770000E94100D811133C0C114D10439F0F6015B +:1017800080819181081B190BC80FD91FE12CF12C06 +:101790000115110519F18091E80085FD16C08091B1 +:1017A000E8008E778093E800C114D10449F0F60177 +:1017B00080819181E80EF91EF182E08285E00FC000 +:1017C0000E94100D882321F30AC089918093F100B3 +:1017D00001501109FFEFEF1AFF0ADACF80E0DF9125 +:1017E000CF911F910F91FF90EF90DF90CF900895D0 +:1017F0002091F8013091F9012617370748F061155B +:10180000710539F42091E8002E772093E80001C09B +:10181000B90140E061157105A9F12091F101222380 +:1018200009F443C0253009F442C02091E80023FDAB +:1018300040C02091E80022FD32C02091E80020FF46 +:10184000E9CF4091F3002091F20030E0342BFC010D +:10185000CF016115710559F02830310540F48191AF +:101860008093F100615071092F5F3F4FF1CF41E04C +:101870002830310509F040E02091E8002E772093D0 +:10188000E800C8CF4111C9CF0AC08091F101882377 +:1018900061F0853061F08091E80083FD0AC080919D +:1018A000E80082FFF2CF80E0089582E0089583E0AF +:1018B000089581E008952091F8013091F9012617EB +:1018C000370748F06115710539F42091E8002E774B +:1018D0002093E80001C0B901FC0120E06115710509 +:1018E00091F18091F101882309F440C0853009F419 +:1018F0003FC08091E80083FD3DC08091E80082FDFB +:101900002FC08091E80080FFE9CF2091F300809103 +:10191000F20090E0922B6115710559F08830910525 +:1019200040F424912093F1003196615071090196A1 +:10193000F2CF21E0089709F020E08091E8008E774F +:101940008093E800CBCF2111CCCF0AC08091F10168 +:10195000882361F0853061F08091E80083FD0AC042 +:101960008091E80082FFF2CF80E0089582E0089540 +:1019700083E0089581E00895982F973058F590936B +:10198000E900981739F07091EC002091ED0050912A +:10199000F00003C0242F762F50E021FF19C03091B2 +:1019A000EB003E7F3093EB003091ED003D7F3093B4 +:1019B000ED003091EB0031603093EB007093EC0060 +:1019C0002093ED005093F0002091EE0027FF07C018 +:1019D0009F5FD3CF8F708093E90081E0089580E00E +:1019E00008958091F20187FF11C08091E80082FD87 +:1019F00005C08091F1018111F8CF11C08091E800FC +:101A00008B770BC08091F101882349F08091E80029 +:101A100080FFF8CF8091E8008E778093E8000895EA +:101A20002091E4003091E50095E64091EC00842F90 +:101A3000817040FF22C08091E80080FD1CC0809131 +:101A4000F101882391F0853091F08091EB0085FDC4 +:101A500010C04091E4005091E5004217530729F36C +:101A60009A01915011F784E0089582E0089583E08F +:101A7000089581E0089580E008954091E80042FFD4 +:101A8000DECF08950E94B00D0E94B80DE0EEF0E0A8 +:101A9000808181608083E8EDF0E080818F778083B2 +:101AA00019BCA7EDB0E08C918E7F8C9380818F7EE6 +:101AB00080831092F00108950F931F93CF93DF93CB +:101AC0000E94B00D0E94B80DC8EDD0E088818F77DC +:101AD000888388818068888388818F7D888319BC0A +:101AE0001092F1011092ED011092EF011092EE01AF +:101AF00000EE10E0F80180818B7F80838881816017 +:101B0000888342E060E080E00E94BC0CE1EEF0E0FF +:101B100080818E7F8083E2EEF0E08081816080832F +:101B2000808188608083F80180818E7F80838881B6 +:101B300080618883DF91CF911F910F910895E8ED27 +:101B4000F0E080818F7E8083E7EDF0E0808181602E +:101B5000808384E082BF81E08093F0010C945C0D6F +:101B6000E8EDF0E080818E7F80831092E20008959E +:101B70001092DA001092E10008951F920F920FB6B2 +:101B80000F9211242F933F934F935F936F937F9303 +:101B90008F939F93AF93BF93EF93FF938091E10057 +:101BA00082FF0BC08091E20082FF07C08091E100BC +:101BB0008B7F8093E1000E9424108091DA0080FFE7 +:101BC0001FC08091D80080FF1BC08091DA008E7FFB +:101BD0008093DA008091D90080FF0DC080E189BD3B +:101BE00082E189BD09B400FEFDCF81E08093F1015F +:101BF0000E941F0A05C019BC1092F1010E942D0A13 +:101C00008091E10080FF19C08091E20080FF15C043 +:101C10008091E2008E7F8093E2008091E2008061FB +:101C20008093E2008091D80080628093D80019BC34 +:101C300085E08093F1010E94310A8091E10084FFE8 +:101C400030C08091E20084FF2CC080E189BD82E138 +:101C500089BD09B400FEFDCF8091D8008F7D8093AF +:101C6000D8008091E1008F7E8093E1008091E200B6 +:101C70008F7E8093E2008091E20081608093E20099 +:101C80008091ED01882311F084E007C08091E3008A +:101C900087FD02C081E001C083E08093F1010E94D2 +:101CA000330A8091E10083FF29C08091E20083FF25 +:101CB00025C08091E100877F8093E10082E08093DE +:101CC000F1011092ED018091E1008E7F8093E1009F +:101CD0008091E2008E7F8093E2008091E20080613B +:101CE0008093E20042E060E080E00E94BC0C8091C2 +:101CF000F00088608093F0000E94300AFF91EF911D +:101D0000BF91AF919F918F917F916F915F914F9113 +:101D10003F912F910F900FBE0F901F9018951F921B +:101D20000F920FB60F9211242F933F934F935F930F +:101D30006F937F938F939F93AF93BF93CF93DF93D3 +:101D4000EF93FF93C091E900CF708091EC00D82F02 +:101D5000D17080FDD0E81092E9008091F000877F7B +:101D60008093F00078940E94D30E1092E900809145 +:101D7000F00088608093F000CD2BCF70C093E90015 +:101D8000FF91EF91DF91CF91BF91AF919F918F9193 +:101D90007F916F915F914F913F912F910F900FBE67 +:101DA0000F901F9018951F93CF93DF93CDB7DEB799 +:101DB000AA970FB6F894DEBF0FBECDBFE2EFF1E0F9 +:101DC00088E08E0F9091F10091938E13FBCF0E94CB +:101DD0004F0A8091E80083FF1FC18091F20190912A +:101DE000F301492F50E04A30510508F015C1FA01BE +:101DF000EA5AFF4F0C940E24803881F0823809F0A3 +:101E00000BC18091F6018F708093E9008091EB0007 +:101E100085FB882780F91092E90006C08091EE01C9 +:101E20009091EF01911182609091E800977F9093DB +:101E3000E8008093F1001092F100C8C0282F2D7F98 +:101E400009F0EAC0882319F0823061F0E5C0809182 +:101E5000F401813009F0E0C0933009F080E0809314 +:101E6000EF012BC08091F401811127C08091F60110 +:101E70008F7009F4D1C08093E9002091EB0020FF1E +:101E80001CC0933021F48091EB00806214C09091CB +:101E9000EB0090619093EB0021E030E0A90102C0DB +:101EA000440F551F8A95E2F74093EA001092EA002A +:101EB0008091EB0088608093EB001092E9008091A4 +:101EC000E800877F86C08111A7C01091F4011F77B9 +:101ED0008091E3008078812B8093E3008091E8007B +:101EE000877F8093E8000E94F10C8091E80080FFDA +:101EF000FCCF8091E30080688093E300111102C061 +:101F000082E001C083E08093F10186C08058823076 +:101F100008F082C08091F4019091F5018C3D53E06E +:101F2000950779F583E08A838AE289834FB7F8942D +:101F3000DE01139620E03EE051E2E32FF0E0509303 +:101F40005700E49120FF03C0E295EF703F5FEF7010 +:101F50008E2F90E0EA3010F0C79601C0C0968D93A6 +:101F60009D932F5F243149F74FBF8091E800877F11 +:101F70008093E8006AE270E0CE0101960E94F80BBF +:101F800014C0AE014F5F5F4F6091F6010E943F0B9E +:101F9000BC01009709F440C09091E800977F9093AE +:101FA000E80089819A810E945B0C8091E8008B7720 +:101FB0008093E80031C0803879F58091E800877F10 +:101FC0008093E8008091ED018093F1008091E8001A +:101FD0008E778093E8000E94F10C1EC081111CC016 +:101FE0009091F4019230C0F48091E800877F809353 +:101FF000E8009093ED010E94F10C8091ED018111B8 +:1020000006C08091E30087FD02C081E001C084E04A +:102010008093F1010E943B0A8091E80083FF0AC08F +:102020008091E800877F8093E8008091EB008062D8 +:102030008093EB00AA960FB6F894DEBF0FBECDBF1B +:10204000DF91CF911F9108950895CF938091F10171 +:102050008823A1F0C091E900CF709091EC00892F06 +:10206000817090FD80E8C82B1092E9008091E80013 +:1020700083FD0E94D30ECF70C093E900CF910895E5 +:1020800090937501809374010895E0917401F0912B +:102090007501309721F00190F081E02D099480E0E6 +:1020A0000895E0917401F0917501309721F002805C +:1020B000F381E02D09940895E0917401F091750188 +:1020C000309721F00480F581E02D09940895209146 +:1020D0007201309173018217930771F0909373012D +:1020E00080937201E0917401F0917501309721F0B5 +:1020F0000680F781E02D09940895209170013091B8 +:1021000071018217930771F09093710180937001B0 +:10211000E0917401F0917501309721F00084F18510 +:10212000E02D0994089508950C9493100E94ED1BDE +:102130000E948A030C94AF1C9F92AF92BF92CF92E1 +:10214000DF92EF92FF920F931F93CF93DF9300D014 +:1021500000D000D0CDB7DEB70E94A2030DE010E0A2 +:10216000AA24A394B12C902E802F0E949004980151 +:1021700029583E4F6901F901F080F826A1F4015079 +:10218000110988F78FEF89838A831B820E94F61BCF +:102190008160782F9D838C8349815A816B818D81E9 +:1021A0000E9433112FC09091DA0191FF04C08E83F9 +:1021B0000E9496048E8125E030E0A501022E01C028 +:1021C000440F0A94EAF7E42E4F21C1F029839A8242 +:1021D0008E2191E009F490E09B830E94F61B8160C0 +:1021E000782F9D838C8349815A816B818D810E94D8 +:1021F0003311F6018081E826E08204C021503109C4 +:10220000E0F6BDCF0E94961F109176010E94451006 +:102210001817B9F00E9445108093760126960FB6E4 +:10222000F894DEBF0FBECDBFDF91CF911F910F910C +:10223000FF90EF90DF90CF90BF90AF909F900C9465 +:102240003E0926960FB6F894DEBF0FBECDBFDF91D4 +:10225000CF911F910F91FF90EF90DF90CF90BF90A3 +:10226000AF909F900895CF93DF93CDB7DEB72B97B4 +:102270000FB6F894DEBF0FBECDBF4F835887698776 +:102280007A878B87DE01119686E0FD0111928A958F +:10229000E9F785E0FE01379601900D928A95E1F706 +:1022A00049815A816B817C818D819E810E947C173E +:1022B0002B960FB6F894DEBF0FBECDBFDF91CF9146 +:1022C0000895CF93882309F4C2C0C82F823859F4E7 +:1022D0000E94451081FDBBC089E30E94561A0E94EE +:1022E000231B89E30CC0833879F40E94451080FDDC +:1022F000AEC083E50E94561A0E94231B83E50E940C +:10230000981ACF910C94231B843859F40E944510DD +:1023100082FD9DC087E40E94561A0E94231B87E419 +:10232000EECF8CEF8C0F813A48F48C2F0E94D9218C +:1023300081118DC08C2F0E94561AE3CF80E28C0F42 +:10234000883048F4C77081E001C0880FCA95EAF769 +:102350000E94DC1AD6CF8BE58C0F833078F4C53A17 +:1023600029F0C63A31F083E890E005C081E890E0BA +:1023700002C082E890E0CF910C94671088E58C0F42 +:10238000833108F064C0C83A39F1C93A41F1CA3A18 +:1023900049F1CB3A51F1CC3A59F1CD3A61F1C03B18 +:1023A00069F1CE3A71F1CF3A79F1C13B81F1C23B8B +:1023B00089F1C33B91F1C43B99F1C53BA1F1C63B07 +:1023C000A9F1C73BB1F1C83BB9F1C93BC1F1CA3B67 +:1023D000C9F180E090E038C082EE90E035C089EE2F +:1023E00090E032C08AEE90E02FC085EB90E02CC0E8 +:1023F00086EB90E029C087EB90E026C08CEC90E063 +:1024000023C08DEC90E020C083E891E01DC08AE8F5 +:1024100091E01AC082E991E017C084E991E014C00C +:1024200081E292E011C083E292E00EC084E292E089 +:102430000BC085E292E008C086E292E005C087E228 +:1024400092E002C08AE292E0CF910C947D10CF918D +:102450000895882309F44BC0823859F40E9445102E +:1024600081FF45C089E30E94561A0E94231B89E31D +:102470000CC0833871F40E94451080FF38C083E59A +:102480000E94561A0E94231B83E50E94981A0C94FE +:10249000231B843859F40E94451082FF28C087E42A +:1024A0000E94561A0E94231B87E4EFCF9CEF980FDF +:1024B000913A58F390E2980F983050F4877091E079 +:1024C00001C0990F8A95EAF7892F0E94E21ADFCF9F +:1024D0009BE5980F933020F480E090E00C94671017 +:1024E000885A833120F480E090E00C947D100895A8 +:1024F000882321F00E94DC1A0C94231B0895882362 +:1025000021F00E94E21A0C94231B08957F928F926F +:102510009F92AF92BF92CF92DF92EF92FF920F9372 +:102520001F93CF93DF931F92CDB7DEB77C01C62EEA +:10253000772EFC01058102950F70128111110E9406 +:10254000F91A0E944F1A882379F0112369F080E26A +:102550008C0D883048F082E00E94381A0E944F1A91 +:1025600091E0D82ED92601C0D12CE72DE295EF704D +:10257000F0E0E05AFF4F0C940E24872D807F072D4A +:102580000F70882311F00295007F112389F000233A +:1025900009F490C180E28C0D883020F4802F0E94D5 +:1025A000DC1A03C0802F0E94EC1A0E94231B82C1F8 +:1025B0008C2D0E942912002309F495C180E28C0D14 +:1025C000883020F4802F0E94E21A03C0802F0E94DE +:1025D000F21A0E94231B87C1972D907F872D8F7041 +:1025E000903211F08295807FCC2021F0F1E0CF165F +:1025F000B1F01EC0112349F0002309F414C10130C9 +:1026000009F011C10E940C1B6EC1002319F00130AA +:1026100009F469C189830E940F1B89810AC11123B2 +:1026200021F0023008F05FC1FEC001115CC101C1A0 +:10263000112321F0002309F4F6C03CC1002309F462 +:10264000F8C03EC1872D86958695837090E00097EF +:1026500019F0019761F047C1112321F08C2D972DBE +:10266000937002C080E090E00E9467103CC111238B +:1026700021F08C2D972D937002C080E090E00E9495 +:102680007D1031C18C2D112319F00E949E1E02C0B5 +:102690000E94061F0E948B1F26C1872D837009F0A0 +:1026A00052C0111120C18C2D829586958770880F9C +:1026B000880F9C2D9F70892E912CA12CB12C082E57 +:1026C00004C0880C991CAA1CBB1C0A94D2F7C4FE37 +:1026D00014C00FE010E020E030E0B901A80104C010 +:1026E000440F551F661F771F8A95D2F7CB01BA0199 +:1026F000609570958095909503C060E070E0CB0187 +:10270000272D26952695237030E02230310569F07B +:102710002330310589F0682979298A299B292130BC +:10272000310571F00E94C418DEC0682979298A2910 +:102730009B290E94E018D7C00E94C418C501B401AB +:102740000E94A818D0C0112319F0872D817001C0F4 +:102750008695882309F4C7C08C2D8295869587704D +:10276000880F880F9C2D9F70892E912CA12CB12C45 +:10277000082E04C0880C991CAA1CBB1C0A94D2F712 +:10278000C4FE14C00FE010E020E030E0B901A80161 +:1027900004C0440F551F661F771F8A95D2F7CB01DF +:1027A000BA01609570958095909503C060E070E0E7 +:1027B000CB01272D269526952370422F50E04230DD +:1027C000510569F04330510589F0682979298A2932 +:1027D0009B294130510571F00E949E1984C06829DF +:1027E00079298A299B290E94BA197DC00E949E19C5 +:1027F000C501B4010E94821976C08C2D90E0FC01C5 +:10280000E05EF109E531F10508F050C0E059FF4FF5 +:102810000C940E240C2D0F70872D8F71112331F025 +:102820000E941B19802F0E9478125DC00E943C19E3 +:10283000802F0E947F1257C0112339F0011153C01D +:10284000872D8F710E9461194EC0023008F04BC075 +:10285000F7CF112339F0872D8F710E941B1943C0C8 +:102860001123C9F3872D8F710E943C193CC011239D +:1028700029F0872D8F710E94061935C00E94FC181F +:1028800032C0112351F0172D1F71812F0E941B1987 +:1028900063E0812F0E942F1A26C081E00E94381A1F +:1028A000023008F182E00E94381A1DC0112331F075 +:1028B000002389F28C2D0E94611115C0002391F232 +:1028C0008C2D0E9429120FC0472D4F706C2DC7010F +:1028D0000E946C050E94201806C0472D4F706C2D79 +:1028E000C7010E944D06DD20F9F00E942B1A80FDE1 +:1028F0001BC0F70112820E94251A0E941B19C701F2 +:102900000E94A3140E94251A0F90DF91CF911F916E +:102910000F91FF90EF90DF90CF90BF90AF909F907E +:102920008F907F900C943C190F90DF91CF911F9165 +:102930000F91FF90EF90DF90CF90BF90AF909F905E +:102940008F907F9008950F931F93CF93DF93EC01A7 +:10295000888199812B813C81232BB9F09F3F11F411 +:102960008F3F99F0CE010E94A505882371F0688100 +:1029700079818A810E94211A8C010E94D6190E94B5 +:102980009D18B801CE010E948612DF91CF911F9150 +:102990000F9108950E94F91A0E94091B0E94CE1AF5 +:1029A0000E94231B0E943C200E948B1F80E090E02D +:1029B0000E94671080E090E00C947D100E94E91A5C +:1029C0000C94CA140E94161A292F22952F7030E0F9 +:1029D0002C3031054CF42A3031056CF42250310989 +:1029E00022303105A8F407C02C30310569F02F30B2 +:1029F000310551F00DC0803F69F018F4803E40F47D +:102A000009C0843F29F406C093FB882780F9089504 +:102A100080E0089581E00895CF93DF9300D000D047 +:102A20001F92CDB7DEB70F900F900F900F900F90C1 +:102A3000DF91CF910895CF93DF9300D000D000D0E5 +:102A4000CDB7DEB726960FB6F894DEBF0FBECDBF6A +:102A5000DF91CF9108951F93CF93DF93C0918501AC +:102A600016E080918601C81799F0D0E01C9FF00114 +:102A70001D9FF00D1124E957FE4F40815181628165 +:102A80007381848195810E941B152196C770E9CFBF +:102A9000DF91CF911F9108954091B7015091B801F6 +:102AA0006091B9017091BA018091BB019091BC0114 +:102AB0000C941B158091BC0182958F7009F054C055 +:102AC0008091B901882309F44FC080918501A091BC +:102AD00086016091B7017091B8014091BA0150919F +:102AE000BB01B6E08A1709F43FC090E041155105DB +:102AF000C1F17F3F11F46F3FA1F1B89FF001B99F81 +:102B0000F00D1124E957FE4F218172132AC0208154 +:102B1000621327C02281211124C02381348124170C +:102B2000350710F421503109241B350B283C3105A1 +:102B3000C0F42091BC012F7020612093BC0126E0DD +:102B4000289FF001299FF00D1124E457FE4F80814A +:102B50008F708061808387EB91E00E94A3140C94B6 +:102B60002B1501968770BECF0895CF92DF92EF921A +:102B7000FF920F931F93CF93DF93CDB7DEB762978A +:102B80000FB6F894DEBF0FBECDBF8C0185E0F80113 +:102B9000DE011D9601900D928A95E1F7D8014C91C6 +:102BA00011965C91119712966C9112971396CD9095 +:102BB000DC9014973091B7017091B8018091BA01FF +:102BC0009091BB01009709F46BC17F3F19F43F3F1F +:102BD00009F466C1E090B901EE2009F4C0C020916B +:102BE000BC01C816D90628F0F601E81BF90BCF0185 +:102BF00004C0809590958C0D9D1DFF24F394883C16 +:102C0000910578F0F12C207F09F0C6C07C2DD98A7F +:102C1000C88A89890E940C1587EB91E00E94A31451 +:102C2000B1C0822F807F09F046C0751314C03413E1 +:102C300012C0611110C02F7020612093BC010E944E +:102C40004C1587EB91E00E94A3148091BC01D80140 +:102C500015968C932EC0CD2819F15F3F11F44F3F8C +:102C6000F9F0F62E61111CC080918501209186013A +:102C700036E0821709F45AC090E0389FF001399F7E +:102C8000F00D1124E957FE4F7181571306C0708172 +:102C9000471303C07281711103C001968770E9CF99 +:102CA000F62E662309F418C18091BC0181608093DF +:102CB000BC01F12C11C1751308C0341306C0611199 +:102CC00004C08091BC01D801C3C04D875E878D854B +:102CD0009E856A8B0E94E2146A898823E1F166234B +:102CE000D1F12091BC01822F82958F7090E00297E4 +:102CF00074F08091B7019091B80198878F831986FD +:102D0000DB86CA862C87CE0107960E94A31486E034 +:102D1000F801A7EBB1E001900D928A95E1F70E94CE +:102D20005A150E944C15FF24F394D6C04D875E8738 +:102D30008D859E850E94161A292F22952F7030E0CE +:102D4000223031050CF0BCC09F7009F0B6C0805E27 +:102D5000883008F4C1C0C8010E94A314E4CFC8168B +:102D6000D90608F453C0F601E81BF90BCF01883CE3 +:102D7000910508F450C0F12C7C2DD98AC88A898924 +:102D80000E940C15E7EBF1E086E0DF011D928A95C9 +:102D9000E9F70E944C15A0C0751314C0341312C07B +:102DA000611110C08091BC01F8018583C8010E94A7 +:102DB000A31486E0E7EBF1E0DF011D928A95E9F7C5 +:102DC000FE2C8AC04D875E878D859E856A8B0E940A +:102DD000E2146A89882309F4BECF662309F4BBCFC5 +:102DE0002091BC01822F82958F7090E002970CF4A5 +:102DF0008ECF8091B7019091B8019A8389831B820D +:102E0000DD82CC822E83CE0101967FCF8095909576 +:102E10008C0D9D1DACCFF62E662309F49CCF751347 +:102E20002EC034132CC02091BC0120FD1FC0822F66 +:102E300082958F70D9F0D80115962C9315978F3005 +:102E400049F08F5F982F9295907F822F8F70892BFA +:102E500015968C93C8010E94A31486E0F801A7EB95 +:102E6000B1E001900D928A95E1F793CF86E0F801E9 +:102E7000A7EBB1E001900D928A95E1F72DC04D8747 +:102E80005E878D859E850E94E214811140CF8091DE +:102E9000BC0181608093BC01C8010E94A3141CC0C6 +:102EA000662309F458CF4D875E878D859E850E94E5 +:102EB000E214882309F44FCF2ACF811148CF0CC0E8 +:102EC000243031050CF047CF9F7009F440CFF80152 +:102ED0009581907F09F03BCF8F2D62960FB6F894C5 +:102EE000DEBF0FBECDBFDF91CF911F910F91FF903D +:102EF000EF90DF90CF9008951F93CF93DF93CDB7DE +:102F0000DEB72C970FB6F894DEBF0FBECDBF4F8350 +:102F1000588769877A878B879C87CE0107960E949E +:102F2000B515882369F08F8198852A853B85232BE9 +:102F3000F1F19F3F09F063C08F3F09F060C037C0D7 +:102F400086E0FE013796DE01119601900D928A957A +:102F5000E1F76F817885EA85FB85309741F17F3F06 +:102F600011F46F3F21F12091860130E0C9010196F3 +:102F7000877099274091850150E08417950709F4DF +:102F800047C069837A83FD83EC8396E0929FD001EA +:102F9000939FB00D1124A957BE4FFE0131960190A9 +:102FA0000D929A95E1F7809386010E942B1516E009 +:102FB00080918501909186018917C1F1189FC00108 +:102FC000112489579E4F0E94B515882379F1E0910D +:102FD00085011E9FF0011124E957FE4F4081518168 +:102FE00062817381848195810E941B158091850186 +:102FF00090E001968770992780938501D9CF4F8102 +:10300000588569857A858B859C850E941B15CFCF55 +:103010000E94DE141092860110928501E7EBF1E028 +:1030200086E0DF011D928A95E9F7C1CF2C960FB695 +:10303000F894DEBF0FBECDBFDF91CF911F910895F1 +:10304000EF92FF920F931F93CF93DF938C01009722 +:1030500009F46CC0F12CEE24E394E8012196F80108 +:103060008491843740F4843008F051C0813081F07D +:10307000823019F15BC0853709F444C0A8F19CE7A0 +:10308000980F903708F052C08F770E94291241C0E4 +:103090000E5F1F4FFE01C49180E28C0F883048F410 +:1030A000C7708E2D01C0880FCA95EAF70E94FC1ADE +:1030B00014C08C2F0E9461112DC00E5F1F4FFE01A6 +:1030C000C49180E28C0F883058F4C7708E2D01C0F7 +:1030D000880FCA95EAF70E94021B0E94231B1AC0A0 +:1030E0008C2F0E94291216C00E5F1F4FFE01C49143 +:1030F000CC2381F08FE99FE00197F1F700C0000039 +:10310000C150F6CF0E5F1F4FFE01F49003C00E9426 +:1031100061118E018F2D882309F49FCFEFE9FFE025 +:103120003197F1F700C000008150F5CFDF91CF91CA +:103130001F910F91FF90EF90089508956093C10142 +:103140007093C2018093C3019093C4010C94CA147C +:103150000F931F930091C1011091C2012091C301EF +:103160003091C401DC01CB01802B912BA22BB32B1E +:103170008093C1019093C201A093C301B093C40195 +:103180001F910F910C94CA140F931F930091C101CA +:103190001091C2012091C3013091C401DC01CB0127 +:1031A00080239123A223B3238093C1019093C20172 +:1031B000A093C301B093C4011F910F910C94CA1442 +:1031C0000F931F930091C1011091C2012091C3017F +:1031D0003091C401DC01CB0180279127A227B327BE +:1031E0008093C1019093C201A093C301B093C40125 +:1031F0001F910F910C94CA141092BD011092BE0140 +:103200001092BF011092C0010C94CA1441E050E02A +:1032100060E070E004C0440F551F661F771F8A9559 +:10322000D2F74093BD015093BE016093BF017093EC +:10323000C0010C94CA1441E050E060E070E004C0AA +:10324000440F551F661F771F8A95D2F78091BD01E5 +:103250009091BE01A091BF01B091C001482B592BA4 +:103260006A2B7B2B4093BD015093BE016093BF013D +:103270007093C0010C94CA1441E050E060E070E02B +:1032800004C0440F551F661F771F8A95D2F74095DB +:103290005095609570958091BD019091BE01A0916F +:1032A000BF01B091C001482359236A237B23409377 +:1032B000BD015093BE016093BF017093C0010C9497 +:1032C000CA1441E050E060E070E004C0440F551FB4 +:1032D000661F771F8A95D2F78091BD019091BE013C +:1032E000A091BF01B091C001482759276A277B27C9 +:1032F0004093BD015093BE016093BF017093C00124 +:103300000C94CA140F931F930091BD011091BE013C +:103310002091BF013091C001DC01CB01802B912BAA +:10332000A22BB32B8093BD019093BE01A093BF014C +:10333000B093C0011F910F910C94CA140F931F9367 +:103340000091BD011091BE012091BF013091C001DB +:10335000DC01CB0180239123A223B3238093BD0101 +:103360009093BE01A093BF01B093C0011F910F9134 +:103370000C94CA140F931F930091BD011091BE01CC +:103380002091BF013091C001DC01CB018027912742 +:10339000A227B3278093BD019093BE01A093BF01E4 +:1033A000B093C0011F910F910C94CA140895CF924D +:1033B000DF92EF92FF920F931F93CF93DF938C01D5 +:1033C000C090C101D090C201E090C301F090C4014F +:1033D0008091BD019091BE01A091BF01B091C0014B +:1033E000C82AD92AEA2AFB2ACFE1D0E0D701C601B0 +:1033F0000C2E04C0B695A795979587950A94D2F799 +:1034000080FF06C0B8018C2F0E94A308019721F409 +:10341000219760F780E001C08C2FDF91CF911F9141 +:103420000F91FF90EF90DF90CF900895CF93DF93AF +:10343000EC010E94D719BE010E94A308DF91CF9131 +:103440000895CB010E94161A08958091C5018595B3 +:103450008595859508958091C5018770089598E0B8 +:10346000899F90011124262B2093C5010C941B19D0 +:103470002091C501809582238093C501982F977074 +:1034800069F430E0482F552747FD5095241735073C +:1034900029F08595859585950C943C190895909112 +:1034A000C501977081E009F480E0089590910C01C6 +:1034B000992321F090910D01911109C020910E01E5 +:1034C00030910F01F90132969FEF40E01FC0982F15 +:1034D0009695969596959F3050F5E0910E01F09156 +:1034E0000F01E90FF11D877021E030E0A90102C052 +:1034F000440F551F8A95E2F7CA019181892B818378 +:1035000008959F3F39F04F5F4E3041F0519158136D +:10351000F8CF0DC05111F7CF942FF5CF9F3F39F061 +:10352000F901E90FF11D97FDFA9582830895089539 +:1035300090910C01992321F090910D01911109C0F6 +:1035400020910E0130910F01F9013296205F3F4F1B +:103550001FC0982F9695969596959F30F0F4E09120 +:103560000E01F0910F01E90FF11D877021E030E0AD +:10357000A90102C0440F551F8A95E2F7CA01809540 +:1035800091818923818308953196E217F30729F009 +:1035900090819813F9CF1082F7CF089581E090E0E1 +:1035A000E0910E01F0910F01E80FF91F10820196D2 +:1035B00080319105A9F708959091D901892B8093C5 +:1035C000D901089580959091D90189238093D901DB +:1035D00008951092D90108959091D801892B809374 +:1035E000D801089580959091D80189238093D801BE +:1035F00008951092D80108959091D701892B809356 +:10360000D701089580959091D70189238093D701A0 +:1036100008951092D70108958093C60108951092DD +:10362000C601089580910E0190910F01FC01319621 +:103630009C01205F3F4F80E0919191118F5FE217D5 +:10364000F307D1F70895E0910E01F0910F018091F9 +:10365000D9018083E0910E01F0910F01908180915A +:10366000D801892B8083E0910E01F0910F019081A8 +:103670008091D701892B80838091C601882361F0D6 +:10368000E0910E01F0910F019081892B80830E94BF +:10369000121B81111092C60180910E0190910F01B1 +:1036A0000C94511020E0009739F0AC0141505109C1 +:1036B000842395232F5FF7CF822F0895CF92DF9237 +:1036C000EF92FF926C01EE24FF24C114D104E104B7 +:1036D000F10421F0C701B60120E101C020E0C72EAE +:1036E000D82EE92EFF24C114D104E104F10419F00D +:1036F000285FC701B6016B017C0154E0F694E794A2 +:10370000D794C7945A95D1F7C114D104E104F104B8 +:1037100019F02C5FC701B6016B017C0142E0F69401 +:10372000E794D794C7944A95D1F7C114D104E10422 +:10373000F10419F02E5FC701B601DC01CB01B6958B +:10374000A79597958795892B8A2B8B2B09F02F5F4F +:10375000822FFF90EF90DF90CF9008958091F1013C +:10376000843021F11092DB0120E488E190E00FB673 +:10377000F894A895809360000FBE2093600080E0CD +:103780000E943E0983B7817F846083BF83B78160D5 +:1037900083BF7894889583B78E7F83BF88E10FB607 +:1037A000F89480936000109260000FBE0895089511 +:1037B00008950E94D71B0E94A2030E94D81B0E945A +:1037C000970491E0811101C090E0892F08950E9433 +:1037D000DE140E9445100C943E0982E084BD93E003 +:1037E00095BD9AEF97BD80936E0008952FB7F8941A +:1037F0008091DC019091DD01A091DE01B091DF01AB +:103800002FBF0895CF92DF92EF92FF920F931F93F5 +:103810002FB7F8944091DC015091DD016091DE01F9 +:103820007091DF012FBF6A017B01EE24FF248C0120 +:1038300020E030E0C016D106E206F30610F4415055 +:1038400051099A01281B390BC9011F910F91FF9053 +:10385000EF90DF90CF9008951F920F920FB60F92C6 +:1038600011248F939F93AF93BF938091DC0190912C +:10387000DD01A091DE01B091DF010196A11DB11D16 +:103880008093DC019093DD01A093DE01B093DF0112 +:10389000BF91AF919F918F910F900FBE0F901F908E +:1038A00018950E94420DF8942FEF87EA91E6215077 +:1038B00080409040E1F700C0000087E090EBDC0121 +:1038C0008093FB019093FC01A093FD01B093FE0156 +:1038D0009CE088E10FB6F894A895809360000FBE35 +:1038E00090936000FFCFEF92FF920F931F93CF93BF +:1038F000DF93D82FCDE08C2F0E94900405E010E0DC +:10390000E82EF12CC701002E02C0959587950A94E8 +:10391000E2F780FF09C0602F7C2F80E00E944E06F6 +:10392000D81302C081E006C00150110958F7C150F8 +:1039300010F780E0DF91CF911F910F91FF90EF90F2 +:103940000895CF93C82F8CE20E94731C882321F026 +:103950008C2FCF910C94731C80E0CF910895CF935E +:103960000E94F61D811102C00E94DC1DC5E6C150F7 +:1039700049F00E94A2038FE39CE90197F1F700C090 +:103980000000F5CF89E20E94A11C811113C18AE2D7 +:103990000E94A11C81110E94DC1D85E00E94A11CD7 +:1039A00081110E94511C0E94011E8093DA0187E060 +:1039B0000E94A11C8823A9F18BE10E94A11C8823ED +:1039C00051F08091DA0181FB222720F991E09227C2 +:1039D00090FB81F90EC08EE00E94A11C882361F04B +:1039E0008091DA0182FB222720F991E0922790FB57 +:1039F00082F98093DA0115C080E10E94A11C9091A8 +:103A0000DA01882341F093FB222720F981E0822705 +:103A100080FB93F904C0892F809580FB90F99093E7 +:103A2000DA018091DA010E94051E0E94131E809324 +:103A3000FA0180EE0E94A11C882341F08091FA01D6 +:103A4000982F909590FB80F98093FA0189E30E946A +:103A5000A11C882359F08091FA0181FB222720F9CB +:103A600091E0922790FB81F98093FA0182EE0E9407 +:103A7000A11C882359F08091FA0182FB222720F9AA +:103A800091E0922790FB82F98093FA0186EE0E94E2 +:103A9000A11C882359F08091FA0183FB222720F989 +:103AA00091E0922790FB83F98093FA0183EE0E94C4 +:103AB000A11C882359F08091FA0184FB222720F968 +:103AC00091E0922790FB84F98093FA0185E30E94AC +:103AD000A11C882359F08091FA0185FB222720F947 +:103AE00091E0922790FB85F98093FA0181E30E948F +:103AF000A11C882359F08091FA0186FB222720F926 +:103B000091E0922790FB86F98093FA0181E10E946F +:103B1000A11C882359F08091FA0187FB222720F904 +:103B200091E0922790FB87F98093FA018091FA0146 +:103B30000E94171E8091FA0187FB882780F98093E5 +:103B40000D0187E20E94A11CC82F8EE10E94A11CDA +:103B50008111C2608FE10E94A11C8111C46080E2CA +:103B60000E94A11C8111C86081E20E94A11C8111E8 +:103B7000C06182E20E94A11C8111C06283E20E94A6 +:103B8000A11C8111C06484E20E94A11C882311F051 +:103B9000C06802C0CC2329F08C2F0E940E1E6C2F0F +:103BA00003C00E940A1E682F70E080E090E0CF9171 +:103BB0000C949E18CF9108956DEE7EEF80E090E01A +:103BC0000E94482460E082E090E00E94362460E099 +:103BD00083E090E00E94362460E084E090E00E9460 +:103BE000362460E085E090E00C94362480E090E09C +:103BF0000E94302421E08D3E9E4F09F020E0822F6C +:103C0000089582E090E00C942824682F82E090E0F0 +:103C10000C94362483E090E00C942824682F83E0F1 +:103C200090E00C94362484E090E00C942824682FD3 +:103C300084E090E00C9436248091E20180FF0BC078 +:103C40006091130185E0689FB00111247595679517 +:103C5000759567952BC081FF09C06091130185E0C0 +:103C6000689FB00111247595679520C082FF07C039 +:103C70006091130185E0689FB001112417C09091F5 +:103C8000E3019923D1F060911201961788F72091F2 +:103C9000130185E0289F90011124929FA001939F1A +:103CA000500D112470E0CA010E94FA23603871059A +:103CB00040F46115710539F002C065E070E0862FAF +:103CC00008958FE7089581E008958091E20180FFD3 +:103CD00008C06091110170E07595679575956795BD +:103CE00021C081FF06C06091110170E07595679554 +:103CF00019C082FF04C06091110170E010C0909162 +:103D0000E3019923C1F0609110019617A0F780910B +:103D10001101899FC001112470E00E94FA236038CC +:103D2000710528F46115710521F0862F08958FE73C +:103D3000089581E0089561E070E0F4CF803F21F4C0 +:103D40000E941C1E819504C0813F29F40E941C1E04 +:103D50008093E6010895823F21F40E941C1E819504 +:103D600004C0833F29F40E941C1E8093E50108953E +:103D7000893F19F40E94651E05C08A3F31F40E94F4 +:103D8000651E81958093E70108958B3F21F40E9481 +:103D9000651E819504C08C3F29F40E94651E8093A6 +:103DA000E8010895843F21F48091E401816017C007 +:103DB000853F21F48091E401826011C0863F21F4A7 +:103DC0008091E40184600BC0873F21F48091E4017D +:103DD000886005C0883F31F48091E4018061809360 +:103DE000E40108958D3F21F48091E20181600BC0D0 +:103DF0008E3F21F48091E201826005C08F3F29F45B +:103E00008091E20184608093E2010895803F39F45B +:103E10008091E60187FF6CC01092E60169C0813F86 +:103E200029F48091E6011816BCF362C09091E50177 +:103E3000823F29F497FF5CC01092E50159C0833F8F +:103E400019F41916CCF354C0893F41F48091E7016D +:103E500018160CF04DC01092E7014AC08A3F29F4B1 +:103E60008091E70187FF44C0F6CF8B3F39F4809102 +:103E7000E80187FF3DC01092E8013AC08C3F29F469 +:103E80008091E8011816BCF333C0843F21F480917F +:103E9000E4018E7F17C0853F21F48091E4018D7F7E +:103EA00011C0863F21F48091E4018B7F0BC0873FD6 +:103EB00021F48091E401877F05C0883F31F480912F +:103EC000E4018F7E8093E40113C08D3F21F4809143 +:103ED000E2018E7F0BC08E3F21F48091E2018D7F45 +:103EE00005C08F3F29F48091E2018B7F8093E2012E +:103EF0008091E50181110EC08091E60181110AC017 +:103F00008091E701811106C08091E801811102C012 +:103F10001092E301089584EE91E00E945C100E94EB +:103F2000F61B9093E1018093E00108951F93CF93D6 +:103F3000DF938091E0019091E1010E94021CAC01AD +:103F40009091E301992321F02091140130E006C003 +:103F5000209115018AE0289F9001112442175307F0 +:103F600008F486C08091E501C091E601D091E70197 +:103F70001091E801811107C0C11176C0D11174C040 +:103F8000111172C075C09F3F19F09F5F9093E301BC +:103F9000181624F40E941C1E8093E5018091E5010F +:103FA00087FF05C00E941C1E81958093E5011C16A9 +:103FB00024F40E941C1E8093E6018091E60187FF95 +:103FC00005C00E941C1E81958093E6016091E50169 +:103FD000662339F1C091E601CC2319F1772767FDFB +:103FE0007095872F972F0E940B2323E333E343E33E +:103FF0005FE30E946F230E94D8226093E5016C2F3B +:10400000772767FD7095872F972F0E940B2323E357 +:1040100033E343E35FE30E946F230E94D82260935F +:10402000E6011D1624F40E94651E8093E70180912D +:10403000E70187FF05C00E94651E81958093E70117 +:10404000111624F40E94651E8093E8018091E80116 +:1040500087FF05C00E94651E81958093E801DF916E +:10406000CF911F910C948B1F9F3F09F08ECF96CF5D +:10407000DF91CF911F910895E4EEF1E085E0DF013B +:104080001D928A95E9F71092E3011092E2010895DA +:10409000833081F128F4813059F08230D1F00895D5 +:1040A000853009F449C0B8F1863009F456C0089546 +:1040B00080911501262F30E0280F311D2F3F31054B +:1040C00024F4680F6093150108958FEF8093150114 +:1040D000089580911401262F30E0280F311D2F3FC5 +:1040E000310524F4680F6093140108958FEF8093D5 +:1040F0001401089580911301262F30E0280F311DFF +:104100002F3F310524F4680F6093130108958FEF5A +:1041100080931301089580911201262F30E0280F1B +:10412000311D2F3F310524F4680F6093120108956B +:104130008FEF80931201089580911101262F30E0B6 +:10414000280F311D2F3F310524F4680F60931101B2 +:1041500008958FEF80931101089580911001262F0B +:1041600030E0280F311D2F3F310524F4680F609394 +:10417000100108958FEF809310010895833011F19D +:1041800028F4813049F0823091F00895853081F132 +:1041900020F18630C1F1089580911501681720F44F +:1041A000861B809315010895109215010895809142 +:1041B0001401681720F4861B80931401089510924F +:1041C0001401089580911301681720F4861B8093D1 +:1041D0001301089510921301089580911201681738 +:1041E00020F4861B80931201089510921201089505 +:1041F00080911101681720F4861B809311010895A6 +:1042000010921101089580911001681720F4861B07 +:104210008093100108951092100108950F931F9339 +:104220008D3109F46BC008F03FC08E3009F47FC0B7 +:10423000C0F4873009F469C068F4863009F0B1C071 +:104240008091DA01817F8E7F8093DA0181E0809313 +:10425000EA01A8C0883009F4A2C08B3009F49FC0DD +:10426000A0C0863109F49BC078F4803109F472C093 +:10427000813109F096C00E94DE1490910D0181E019 +:10428000892780930D018BC0893109F488C08B3157 +:1042900009F087C08091DA0181FB222720F991E0A3 +:1042A000922790FB81F94CC0853309F470C048F423 +:1042B000873209F46CC008F459C0893209F467C028 +:1042C00070C0833438F48A3308F04EC0883309F460 +:1042D00066C067C0833409F45AC0883409F061C0ED +:1042E0000E94DE140FEF13ED20E301501040204038 +:1042F000E1F700C000000E94511C51C00E949222B0 +:104300000E9445100E943E094AC09091DA01892F0F +:104310008095817080FB90F929F096609860909369 +:10432000DA0140C0997F977F9093DA0138C080917D +:10433000DA0182FB222720F991E0922790FB82F993 +:104340008093DA01992359F18091DA018160809399 +:10435000DA0125C08091DA0183FB222720F991E060 +:10436000922790FB83F9ECCF895301C08D5141E036 +:1043700050E060E070E08A019B0104C0000F111F53 +:10438000221F331F8A95D2F7C901B80104C061E02A +:1043900070E080E090E00E949E180E94DE1481E0B0 +:1043A00001C080E01F910F91089580E0089580E0A2 +:1043B0000895CF93C82F8091EA01813079F018F0E9 +:1043C0008230E9F187C0E0910E01F0910F01808108 +:1043D000813169F0823209F07FC009C0E0910E019D +:1043E000F0910F018081813111F0823261F48C2FC4 +:1043F0000E94D521811104C08C2F0E940E211DC066 +:1044000081E090E01AC08C2F0E94D721811114C046 +:10441000C43179F048F4CB3079F0C03109F060C094 +:1044200082E08093EA0108C0C93219F0C83321F054 +:1044300057C01092EA0154C081E0817053C0C93264 +:1044400089F118F5C43171F1A8F4C73009F046C0FC +:104450008AE08093150194E19093140193E0909386 +:1044600013018093120188E08093110188E2809308 +:10447000100134C0CE51C63088F5EC2FF0E0E65D77 +:10448000FE4F80818093E90129C0CE34E9F020F409 +:10449000CB3421F56AE013C0C13579F0C235F1F4AF +:1044A00061E00DC08091E901882319F01092E901C3 +:1044B00015C081E08093EA0115C061E006C08091DB +:1044C000E9010E9448200AC06AE08091E9010E9447 +:1044D000BE2004C01092EA0180E004C081E002C066 +:1044E00080E0ABCFCF910895E1E8F0E08081886073 +:1044F00080838081816080838FB7F89493E090936C +:10450000890090ED909388008FBF0895EFE6F0E06A +:104510008081826080830895EFE6F0E080818D7F66 +:1045200080830895EFE6F0E0908182E08927808320 +:1045300008951F920F920FB60F9211242F933F935D +:104540004F935F936F937F938F939F93AF93BF939B +:10455000EF93FF938091EB019091EC010196909382 +:10456000EC018093EB01811103C082E00E943E09BF +:10457000E091EC01E695E695F0E0EF59FA4FE49111 +:104580008091EB018E1303C080E00E943E09FF91F1 +:10459000EF91BF91AF919F918F917F916F915F91BB +:1045A0004F913F912F910F900FBE0F901F90189534 +:1045B00004D06894B1118DC0089570D088F09F57D1 +:1045C00090F0B92F9927B751A0F0D1F0660F771F5F +:1045D000881F991F1AF0BA95C9F712C0B13081F03F +:1045E00077D0B1E0089574C0672F782F8827B85F1F +:1045F00039F0B93FCCF3869577956795B395D9F7A0 +:104600003EF490958095709561957F4F8F4F9F4FA9 +:104610000895E89409C097FB3EF4909580957095B5 +:1046200061957F4F8F4F9F4F9923A9F0F92F96E9FE +:10463000BB279395F695879577956795B795F11173 +:10464000F8CFFAF4BB0F11F460FF1BC06F5F7F4F10 +:104650008F4F9F4F16C0882311F096E911C0772322 +:1046600021F09EE8872F762F05C0662371F096E82B +:10467000862F70E060E02AF09A95660F771F881FFA +:10468000DAF7880F9695879597F9089557FD905812 +:10469000440F551F59F05F3F71F04795880F97FB06 +:1046A000991F61F09F3F79F08795089512161306C0 +:1046B0001406551FF2CF4695F1DF08C016161706EF +:1046C0001806991FF1CF8695710561050894089524 +:1046D000E894BB2766277727CB0197F908950BD07D +:1046E00078C069D028F06ED018F0952309F05AC030 +:1046F0005FC01124EECFCADFA0F3959FD1F3950FD1 +:1047000050E0551F629FF001729FBB27F00DB11D55 +:10471000639FAA27F00DB11DAA1F649F6627B00DE5 +:10472000A11D661F829F2227B00DA11D621F739FCE +:10473000B00DA11D621F839FA00D611D221F749FDC +:104740003327A00D611D231F849F600D211D822F23 +:10475000762F6A2F11249F5750408AF0E1F088236A +:104760004AF0EE0FFF1FBB1F661F771F881F915077 +:104770005040A9F79E3F510570F014C0AACF5F3F8B +:10478000ECF3983EDCF3869577956795B795F795AA +:10479000E7959F5FC1F7FE2B880F911D9695879532 +:1047A00097F9089597F99F6780E870E060E00895B1 +:1047B0009FEF80EC089500240A9416161706180639 +:1047C0000906089500240A94121613061406050615 +:1047D0000895092E0394000C11F4882352F0BB0FA6 +:1047E00040F4BF2B11F460FF04C06F5F7F4F8F4F09 +:1047F0009F4F089597FB072E16F4009407D077FD7E +:1048000009D00E94142407FC05D03EF490958195B0 +:104810009F4F0895709561957F4F0895EE0FFF1F8C +:104820000590F491E02D0994AA1BBB1B51E107C030 +:10483000AA1FBB1FA617B70710F0A61BB70B881F30 +:10484000991F5A95A9F780959095BC01CD010895BF +:10485000F999FECF92BD81BDF89A992780B5089548 +:10486000A8E1B0E042E050E00C945024262FF999E2 +:10487000FECF92BD81BDF89A019700B4021639F0BF +:104880001FBA20BD0FB6F894FA9AF99A0FBE089590 +:104890000196272F0E9437240C943624DC01CB018B +:1048A000FC01F999FECF06C0F2BDE1BDF89A319640 +:1048B00000B40D9241505040B8F70895F894FFCFDE +:1048C00002204009CE09AB09770943090101C7015C +:1048D00028080A03140A404D36392105D4049E04E1 +:1048E0006504F80311042A044304010203040506C5 +:0448F00007080900AC +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/techtomas/keymap.c b/keyboards/ergodox_ez/keymaps/techtomas/keymap.c new file mode 100644 index 000000000..1ff6618b9 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/techtomas/keymap.c @@ -0,0 +1,231 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define APP 2 // app layer +#define CNTL 3 // control layer + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | L2/` | 1 | 2 | 3 | 4 | 5 |CmdSpc| | - | 6 | 7 | 8 | 9 | 0 | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | MEH/Tab| Q | W | E | R | T | [ | | ] | Y | U | I | O | P | MEH/\ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * |Hyp/Esc | A | S | D | F | G |------| |------| H | J | K | L | L2/; | Hyp/' | + * |--------+------+------+------+------+------| Tab | | STab |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | L2// | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |L1/Lft|L3/Rht| LCtl | LAlt | LGui | | Rgui | Up | Dn | L3 | L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | LCtl | LGui | |AltGui|ShfGui| + * ,-------|------|------| |------+--------+------. + * | | |L1/Hom| |L2/PUp| | | + * | Backsp|Delete|------| |------| Enter | Space | + * | | |L3/End| |L1/PDn| | | + * `--------------------' `-----------------------' + */ +// 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 + LT(APP,KC_GRV), KC_1, KC_2, KC_3, KC_4, KC_5, LGUI(KC_SPC), + MEH_T(KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, + ALL_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, KC_TAB, + LT(SYMB,KC_LEFT), LT(CNTL,KC_RIGHT), KC_LCTL, KC_LALT, KC_LGUI, + KC_LCTL, KC_LGUI, + LT(SYMB,KC_HOME), + KC_BSPC, KC_DELETE, LT(CNTL,KC_END), + // right hand + KC_MINS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, MEH_T(KC_BSLS), + KC_H, KC_J, KC_K, KC_L, LT(APP,KC_SCLN), ALL_T(KC_QUOT), + S(KC_TAB), KC_N, KC_M, KC_COMM, KC_DOT, LT(APP,KC_SLSH), KC_RSFT, + KC_RGUI, KC_UP, KC_DOWN, KC_FN3, KC_FN1, + LALT(KC_LGUI), S(KC_LGUI), + LT(APP,KC_PGUP), + LT(SYMB,KC_PGDN), KC_ENT, KC_SPC + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | Tab | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | < | | > | : | 7 | 8 | 9 | / | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| ; | 4 | 5 | 6 | * | | + * |--------+------+------+------+------+------| F14 | | F15 |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | - | Entr | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | 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,S(KC_COMM), + 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_F14, + 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_TAB, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + S(KC_DOT), KC_COLN, KC_7, KC_8, KC_9, KC_BSLS, KC_F12, + KC_SCLN, KC_4, KC_5, KC_6, KC_ASTR, KC_TRNS, + KC_F15, KC_AMPR, KC_1, KC_2, KC_3, KC_MINS, KC_ENT, + KC_0, KC_DOT, KC_EQL, KC_PLUS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: App Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | CmdQ | CmdW | | | | Stab | | Play | Prev | Next | | |PrtSc | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------| VolDn|VolUp | | | | | + * |--------+------+------+------+------+------| | | Mute |------+------+------+------+------+--------| + * | | CmdZ | CmdX | CmdC | CmdY | CtrlC| | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// Control +[APP] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, LGUI(KC_Q), LGUI(KC_W), KC_TRNS, KC_TRNS, KC_TRNS, S(KC_TAB), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), LCTL(KC_C), 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_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, + KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 3: Control Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | Pwr | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| Lclk |------| |------| Lft | Down | Up | Right| | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | Rclk | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Shift| | | Home | End | + * ,------|------|------| |------+------+------. + * | | | LAtl | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// Control +[CNTL] = KEYMAP( + KC_PWR, 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_BTN1, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN2, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LSFT, KC_TRNS, + KC_LALT, + 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_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_HOME, KC_END, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB), + [2] = ACTION_LAYER_TAP_TOGGLE(APP), + [3] = ACTION_LAYER_TAP_TOGGLE(CNTL) // 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; + case 3: + ergodox_right_led_3_on(); + break; + default: + // none + break; + } + +}; diff --git a/keyboards/ergodox_ez/keymaps/techtomas/readme.md b/keyboards/ergodox_ez/keymaps/techtomas/readme.md new file mode 100644 index 000000000..36e0591a8 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/techtomas/readme.md @@ -0,0 +1,57 @@ +# Techtomas Configuration + +## Base Layer + +The base layer is a merge of what I liked with the default layout and the ordinary layout. The thumb cluster is more like the Kinesis advantage and the top row of the cluster is convient for use on the mac. + +* The Caps Lock postion handles [Hyper/Esc](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) +* The Tab key toggles MEH. +* The top vertical mods on the left and right are [ and ]. +* The bottom vertical mods on the left and right are tab and shift+tab +* The HYPER and MEH key are made in the same location on the right side of the board as well. Using Keyboard Maestro for OS X makes one-handed shortcuts very easy. +* Layer switching is focused around the thumb clusters plus some additional locations for convience. + +## Symbol Layer +The symbol layer can be tap/toggled with the bottom right key and also toggled on the thumb clusters. + +The bottom two vertical mods are set to F14 and F15 which is the default for changing screen brightness on the mac + +## App Layer +The app layer is used to control media playback and also some application shortcuts (OS X Focused). +It can be toggled on the left board in the top left corner (tilde/grave) or using your pinky on the right side of the board using either ; or /. +There is one additional toggle on the right thumb cluster for quick access to play and mute key combos. + +### Current App shortcuts defined +* Q = CMD+Q +* W = CMD+W +* Z = CMD+Z +* X = CMD+X +* C = CMD+C +* V = CMD+V +* B = CTRL+C +* P = Print Screen + +## Control Layer +The control layer is meant to help easily navigate and select text. It can also be stacked ontop of the Symbol layer when needed. + +The right arrow key and End key toggle the control layer on the left board. There is also a tap toggle for the layer in the same position on the right side of the board. + +On the left board you have mouse control with left & right click in the location of the G and B keys. +On the right board you have vim-style arrow keys using hjkl + +The left thumb cluster moves shift and alt within easy reach while holding the toggle (end). So far I've found this convient to navigate and skip around text when using the hjkl arrow keys. I found that it was easy to get the alt key stuck on depending on what key you released first so I added the PREVENT_STUCK_MODIFIERS to the config.h to help with that. + +## Changelog + +* May 4th, 2016 (v1.2): + * Moved layer toggles around to match my habbits of typing + * Enabled Prevent Stuck Modifers in my config.h (L3 + Alt on cluster would get stuck) + * Changed media layer to be more like an app layer with some quick shortcuts (mac centric) + * Moved around the base layer arrow keys so mod keys were more accesible + +* Apr 29, 2016 (V1.1): + * Added F14 and F15 to symbol layer + * Added control layer toggle to A key. + +* Apr 28, 2016 (V1.0): + * Modified config based on the default layout plus inspiration from the ordinary layout diff --git a/keyboards/ergodox_ez/keymaps/tm2030/README.md b/keyboards/ergodox_ez/keymaps/tm2030/README.md new file mode 100644 index 000000000..ae69adf78 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/tm2030/README.md @@ -0,0 +1,136 @@ +# TypeMatrix™ 2030 inspired layout + +This is a [TypeMatrix™ 2030](http://typematrix.com/2030/features.php) inspired layout for the ErgoDox EZ. The _TypeMatrix_ is a nice small ergonomic keyboard with a matrix layout, and it provides several nice features like `enter`, `backspace` and `delete` at the center, bigger `shift` keys and international `cut`, `copy` and `paste` keys. + +The idea in this ErgoDox layout is to make it is as close as possible to the TM2030, such that it would be easy to switch between the TM and the ErgoDox. No _fancy_ features have been implemented, as this is intended to be a base for further customization if desired. Some keys have been duplicated in order to accomodate for most people. + +Most of the TM2030 features are supported except +* automatic window switching (alt-tab key, at the left of the space key) +* show desktop key (at the right of the space key) +* 102/106 modes + +Dvorak mode is even supported by pressing [`Magic`](/TMK_README.md#magic-commands)+`1` (`Magic` is by default `LShift`+`RShift`) + +Some keys had to be moved around to fit into the ErgoDox, especially the `F1`-`F12` keys and the arrow keys. + +## Base Layer +This is the default layer, close to the TM with the following differences: + + - Top row (with the `F`-keys) and rightmost column (with application shortcuts) are removed, the corresponding keys are displaced elsewhere. + - Bottom-left keys are reorganized on a single row as: `Ctrl`, `fn`, `Gui`, `Play`, `App`/`Alt`. + - `shuffle` and `desktop` are not supported. + - `right-shift` is moved on `'`, `\` and on the right thumb (the latter is actually the only _true_ `right-shift`, and must be used in the `Magic` key combination). + - `right-ctrl` is moved on `End`. + - `]` is moved in place of the dash (`-`). + - Dash (`-`) and `=` are moved on bottom right row. + - Arrows and `PgUp`/`PgDn` are moved on the thumbs. + +``` +,--------------------------------------------------. ,--------------------------------------------------. +| ` | 1 | 2 | 3 | 4 | 5 | Del | | Del | 6 | 7 | 8 | 9 | 0 | ] | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| Tab | Q | W | E | R | T |Backsp| |Backsp| Y | U | I | O | P | [ | +|--------+------+------+------+------+------|ace | |ace |------+------+------+------+------+--------| +| LShift | A | S | D | F | G |------| |------| H | J | K | L | ; | '/Shift| +|--------+------+------+------+------+------|Enter | |Enter |------+------+------+------+------+--------| +| LShift | Z | X | C | V | B | | | | N | M | , | . | / | \/Shift| +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + |LCtrl | fn | LGui | Play |App/Alt| | RAlt | - | Home | = |End/Ctl| + `-----------------------------------' `-----------------------------------' + ,--------------. ,-------------. + |Esc/Alt| num | | Left |Right | + ,------+-------+------| |------+------+------. + | | | PgUp | | Up | | | + |Space |LShift |------| |------|RShift|Space | + | | | PgDn | | Down | | | + `---------------------' `--------------------' +``` + +### Layer Switching +- Use `num` to toggle the Numeric Layer. +- Hold `fn` to temporarily activate the Numeric & Fn Layers. + +As on the original TM 2030, when `num` layer is activated, holding `fn` disables it but enables the other `fn` keys. + +## Dvorak Layer +Same as Layer 0 but with _Dvorak_ layout, to use with QWERTY OS layout. + +Enable Dvorak layout with [`Magic`](/TMK_README.md#magic-commands)+`1` (`LShift`+`RShift`+`1`), disable with `Magic`-`0`. + +The middle (green) led indicates when the Dvorak layer is activated. + + ,--------------------------------------------------. ,--------------------------------------------------. + | ` | 1 | 2 | 3 | 4 | 5 | Del | | Del | 6 | 7 | 8 | 9 | 0 | = | + |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + | Tab | ' | , | . | P | Y |Backsp| |Backsp| F | G | C | R | L | / | + |--------+------+------+------+------+------|ace | |ace |------+------+------+------+------+--------| + | LShift | A | O | E | U | I |------| |------| D | H | T | N | S | -/Shift| + |--------+------+------+------+------+------|Enter | |Enter |------+------+------+------+------+--------| + | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | \/Shift| + `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + |LCtrl | fn | LGui | Play |App/Alt| | RAlt | [ | Home | ] |End/Ctl| + `-----------------------------------' `-----------------------------------' + ,--------------. ,-------------. + |Esc/Alt| num | | Left |Right | + ,------+-------+------| |------+------+------. + | | | PgUp | | Up | | | + |Space |LShift |------| |------|RShift|Space | + | | | PgDn | | Down | | | + `---------------------' `--------------------' + +## Numeric Layer +Numeric layer close to the TM when toggling `num`, with the following differences: + +- Numpad is displaced by 1 to the top left. +- Arrows are displaced by 1 to the left. +- Provides access to `F1`-`F12`, `caps-lock` and `num-lock`. + +The numeric layer is indicated with the left (red) led. Caps-lock is indicated with the right (blue) led. + + ,--------------------------------------------------. ,--------------------------------------------------. + | | F1 | F2 | F3 | F4 | F5 | | | | | | Tab | / | * | - | + |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + | | F6 | F7 | F8 | F9 | F10 | | | | | Home | 7 | 8 | 9 | + | + |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + | | F11 | F12 | | | |------| |------| Up | End | 4 | 5 | 6 | + | + |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + | | | | | | | | | Left | Down | Right| 1 | 2 | 3 |KpEnter | + `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | | | | | | | 0 | 00 | . |Etr/Ctl| + `----------------------------------' `-----------------------------------' + ,-------------. ,-------------. + | | | |n.lock|c.lock| + ,------|------|------| |------+------+------. + | | | | | | | | + | | |------| |------| | | + | | | | | | | | + `--------------------' `--------------------' + +## Fn Layer +Activated simultaneously with the Numeric layer when holding the `fn` key. As on the TM, it provides access to the following features: +- `cut`, `copy` and `paste` +- `volume up`, `volume down` and `mute` — as opposed to the TM, these are only on left hand +- `previous track` and `next track` +- `calculator`, `mail` and `browser home` +- `insert`, `power`, `sleep`, `wake`, `print screen`, `scroll-lock` and `pause` + +Note: the `eject` key does not work due to jackhumbert/qmk_firmware#82 + + ,--------------------------------------------------. ,--------------------------------------------------. + | | | | | | |Insert| |Insert|Eject |Power |Sleep | Wake |PrtScr|ScrollLk| + |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + | | | | | | |VolUp | | | | | | | | Pause | + |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + | | | | Calc | Mail |Browsr|------| |------| | | | | | | + |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + | | | cut | copy |paste | Mute |VolDn | | | | | | | | | + `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | | | | | | | | | | | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + | | | | | | + ,------|------|------| |------+------+------. + | | | | | Next | | | + | Mute | |------| |------| | | + | | | | | Prev | | | + `--------------------' `--------------------' diff --git a/keyboards/ergodox_ez/keymaps/tm2030/compiled.hex b/keyboards/ergodox_ez/keymaps/tm2030/compiled.hex new file mode 100644 index 000000000..35837dc30 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/tm2030/compiled.hex @@ -0,0 +1,1224 @@ +:100000000C94CA040C940E050C940E050C940E0569 +:100010000C940E050C940E050C940E050C940E0514 +:100020000C940E050C940E050C94C30F0C949510B3 +:100030000C940E050C940E050C940E050C940E05F4 +:100040000C940E050C944F240C940E050C940E0584 +:100050000C940E050C94E21D0C940E050C940E05E8 +:100060000C940E050C940E050C940E050C940E05C4 +:100070000C940E050C940E050C940E050C940E05B4 +:100080000C940E050C940E050C940E050C940E05A4 +:100090000C940E050C940E050C940E050C940E0594 +:1000A0000C940E050C940E050C940E0502112411EF +:1000B00012122411121269118C111212E111F41191 +:1000C000C314C314F214F2142815481579167916BE +:1000D00053157916031603166A16791679167316D0 +:1000E00010161016101610161016101610161016E0 +:1000F00010161016101610161016101610161016D0 +:1001000022162F1636163D16471675190162026221 +:10011000016202620035002B00E100E100E0000016 +:10012000001E00140004001D0002304E001F001AC3 +:100130000016001B00E300E1002000080007000695 +:1001400000AE002C00210015000900190065744B59 +:1001500000220017000A000500000029744C002A44 +:100160000000002800000008544C002A000000286D +:10017000000000500023001C000B00110000004F85 +:1001800000240018000D001000E600520025000CAD +:10019000000E0036002D002C00260012000F003744 +:1001A000004A00E50027001300330038002E0051FC +:1001B0000030002F00347231724D71000035002B79 +:1001C00000E100E100E00000001E00340004003304 +:1001D0000002304E001F00360012001400E300E160 +:1001E000002000370008000D00AE002C0021001395 +:1001F0000018000E0065744B0022001C000C001B50 +:1002000000000029744C002A0000002800000008AB +:10021000544C002A00000028000000500023000970 +:10022000000700050000004F0024000A000B00102A +:1002300000E60052002500060017001A002F002CCF +:100240000026001500110019004A00E50027000FE4 +:100250000016001D00300051002E0038002D7231B4 +:10026000724D71000000000000000000000000005E +:10027000000000000000000000000000000000007E +:10028000000000000000000000000000000000006E +:10029000000000000000000000000000000000005E +:1002A000000000000000000000000000000000004E +:1002B000000000000000000000000000000000003E +:1002C000000000000000000000000000000000002E +:1002D000000000000000000000000000000000001E +:1002E000000000000000000000000000000000000E +:1002F00000000000000000000000000000000000FE +:1003000000000000000000000000000000000000ED +:1003100000000000000000000000000000000000DD +:1003200000000000000000000000000000000000CD +:1003300000000000000000000000000000000000BD +:1003400000000000000000000000000000000000AD +:10035000000000000000000000000000000000009D +:10036000000000000000000000000000000000008D +:10037000000000000000000000000000000000007D +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000000000004D +:1003B000000000000000000000000000000000003D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:1004000000000000000000000000000000000000EC +:1004100000000000000000000000000000000000DC +:1004200000000000000000000000000000000000CC +:1004300000000000000000000000000000000000BC +:1004400000000000000000000000000000000000AC +:10045000000000000000000000000000000000009C +:10046000000000000000000000000000000000008C +:10047000000000000000000000000000000000007C +:10048000000000000000000000000000000000006C +:10049000000000000000000000000000000000005C +:1004A000000000000000000000000000000000004C +:1004B000000000000000000000000000000000003C +:1004C000000000000000000000000000000000002C +:1004D000000000000000000000000000000000001C +:1004E000000000000000000000000000000000000C +:1004F00000000000000000000000000000000000FC +:1005000000000000000000000000000000000000EB +:1005100000000000000000000000000000000000DB +:1005200000000000000000000000000000000000CB +:1005300000000000000000000000000000000000BB +:1005400000000000000000000000000000000000AB +:10055000000000000000000000000000000000009B +:10056000000000000000000000000000000000008B +:10057000000000000000000000000000000000007B +:10058000000000000000000000000000000000006B +:10059000000000000000000000000000000000005B +:1005A000000000000000000000000000000000004B +:1005B000000000000000000000000000000000003B +:1005C000000000000000000000000000000000002B +:1005D000000000000000000000000000000000001B +:1005E000000000000000000000000000000000000B +:1005F00000000000000000000000000000000000FB +:1006000000000000000000000000000000000000EA +:1006100000000000000000000000000000000000DA +:1006200000000000000000000000000000000000CA +:1006300000000000000000000000000000000000BA +:1006400000000000000000000000000000000000AA +:100650000000000000010001000100010001000095 +:10066000003A003F0044000100010001003B00404F +:100670000045000100010001003C004100010001B3 +:1006800000010001003D00420001000100010001E5 +:10069000003E0043000100010000000100010001D4 +:1006A00000000001000000010001000100000050F6 +:1006B00000000053003F00010052005100000039CB +:1006C0000040004A004D004F00010001002B005F78 +:1006D000005C00590062000100540060005D005A97 +:1006E0000001300100550061005E005B0063000105 +:1006F00000560057005700580058710000010001D3 +:1007000000010001000100000001000100010001E2 +:1007100000010001000100010001004C0201000184 +:100720000001000100B20049010100A80001000120 +:1007300000B10049020100010001000100B500A85C +:1007400000000001004900A9000000AA000000010B +:1007500000490001000000010000000100B000019C +:10076000000100010000000100A5000100010001DE +:10077000000100AC00A60001000100010001000121 +:1007800000A7000100010001000100010046000176 +:1007900000010001000100AB00470048000100011A +:1007A000000100000016034500720067006F00445E +:1007B000006F007800200045005A00000016034535 +:1007C00000720067006F0044006F00780020004551 +:1007D000005A0000000403090409026D000401002E +:1007E000A0FA090400000103010100092111010020 +:1007F00001223F000705810308000A0904010001E6 +:1008000003010200092111010001224D00070582A8 +:100810000308000A09040200010300000009211175 +:100820000100012236000705830308000A090403BA +:100830000001030000000921110100012239000715 +:100840000584031000011201100100000008EDFEF4 +:10085000071301000102000105010906A1010507B6 +:1008600019E029E7150025019508750181020508A1 +:1008700019012905950575019102950175039101ED +:100880000507190029771500250195787501810262 +:10089000C005010980A101850216010026B7001AD2 +:1008A00001002AB700751095018100C0050C0901EF +:1008B000A1018503160100269C021A01002A9C0250 +:1008C000751095018100C005010902A1010901A16E +:1008D00000050919012905150025019505750181F6 +:1008E0000295017503810105010930093115812542 +:1008F0007F95027508810609381581257F95017558 +:10090000088106050C0A38021581257F95017508B6 +:100910008106C0C005010906A101050719E029E704 +:100920001500250195087501810295017508810161 +:1009300005081901290595057501910295017503B1 +:1009400091010507190029FF150025FF9506750877 +:100950008100C00000000000000000000000010253 +:1009600004060A0F17202C3A4A5D71879DB3C7DA37 +:10097000E9F5FCFFFCF5E9DAC7B39D87715D4A3AFA +:100980002C20170F0A0604020100000000000000DE +:100990000000000011241FBECFEFDAE0DEBFCDBFA4 +:1009A00004B603FE24C08091FB019091FC01A0914C +:1009B000FD01B091FE018730904BA740B04BB9F4D8 +:1009C0001092FB011092FC011092FD011092FE01A9 +:1009D00014BE84B7877F84BF88E10FB6F8948093F4 +:1009E0006000109260000FBEE0E0FFE3099511E0A7 +:1009F000A0E0B1E0ECE2FCE402C005900D92A4336B +:100A0000B107D9F711E0A4E3B1E001C01D92AB3FFB +:100A1000B107E1F70E94070D0C9414260C94000016 +:100A20001092B9008AE08093B800089594EA9093F8 +:100A3000BC009091BC0097FFFCCF9091B900987FCB +:100A4000983021F0903111F081E008958093BB003F +:100A500084E88093BC008091BC0087FFFCCF80912C +:100A6000B900887F883111F0803471F780E00895F3 +:100A700084E98093BC008091BC0084FDFCCF089584 +:100A80008093BB0084E88093BC008091BC0087FF0A +:100A9000FCCF9091B900987F81E0983209F480E012 +:100AA000089584E88093BC008091BC0087FFFCCF50 +:100AB0008091BB00089580910101811115C080E4EF +:100AC0000E9416058093010181110CC082E10E94F1 +:100AD000400580930101811105C08FEF0E94400500 +:100AE000809301010E94380584B1807F84B985B16B +:100AF000807F85B98AB1837F8AB98BB1837F8BB9B7 +:100B00003E98469808950E941607809301010E941E +:100B10005B0580B38C7080BB81B3836F81BBA5E321 +:100B2000B1E0E3E4F1E08EE08E0F11921D928E139E +:100B3000FCCF0C940007BF92CF92DF92EF92FF920E +:100B40000F931F93CF93DF9380910101882379F056 +:100B5000809134018F5F80933401811108C00E941D +:100B6000160780930101811102C00E94A80605E3C7 +:100B700011E0C0E0D0E0DD24D39482E0C82EEE2462 +:100B8000E394F12CC730D10500F58091010181116A +:100B900064C080E40E94160580930101811112C097 +:100BA00082E10E9440058093010181110BC0C701C1 +:100BB0000C2E01C0880F0A94EAF780950E94400528 +:100BC000809301010E94380548C0CA30A1F028F482 +:100BD000C83059F0C93061F005C0CC3089F070F0F0 +:100BE000CD3089F0209A289810C0219A29980DC0FC +:100BF000229A2A980AC0239A2B9807C0529A01C0B9 +:100C0000539A5B9802C03E9A469890EA9A95F1F7FB +:100C10009FB1799902C082E001C080E091709D256A +:100C2000982B7C9902C084E001C080E0892B7D99DB +:100C300002C038E001C030E0832B7E9902C020E181 +:100C400001C020E0822B9FB19095991F9927991F91 +:100C50009295990F907E892B0FC08091010181118F +:100C600049C080E40E94160580930101882379F130 +:100C7000B12C0E9438058B2DF8019081981719F03E +:100C80008083C09200010E945B0521960F5F1F4F79 +:100C9000CE30D10509F076CF80910001882361F133 +:100CA000815080930001882339F08FE99FE00197FC +:100CB000F1F700C0000020C0A3E4B1E0E5E3F1E0FB +:100CC000CF01825F91919D938E13FCCF15C083E17C +:100CD0000E944005809301018111CACF81E40E94E6 +:100CE0001605809301018111C3CF0E945105B82ED2 +:100CF000B094BFCF80E0C0CF0E94A60681E0DF9114 +:100D0000CF911F910F91FF90EF90DF90CF90BF9008 +:100D10000895E82FF0E0ED5BFE4F8081089508957F +:100D20000F931F93CF93DF93C3E4D1E010E00C2F18 +:100D3000025F899190E00E94581D180F0C13F9CFA3 +:100D4000812FDF91CF911F910F9108950C947B0714 +:100D500056985E9825982D9826982E9827982F9823 +:100D60008FEF90E0909389008093880090938B00A0 +:100D700080938A0090938D0080938C00259A2D9A01 +:100D80002FEF80E792E0215080409040E1F700C0D3 +:100D90000000269A2E9A2FEF80E792E021508040A3 +:100DA0009040E1F700C00000279A2F9A2FEF80E7CC +:100DB00092E0215080409040E1F700C0000025986B +:100DC0002D982FEF80E792E0215080409040E1F78E +:100DD00000C0000026982E982FEF80E792E0215067 +:100DE00080409040E1F700C0000027982F98569867 +:100DF0005E9825982D9826982E9827982F980895D4 +:100E000089EA8093800089E08093810024982C985F +:100E10003F988AB18F748AB96E98479A8BB1806B6C +:100E20008BB9769A0E94A8060C947A0780E2809388 +:100E300001018091510181110EC00E94100581E0D5 +:100E4000809351012FEF83ED90E32150804090403B +:100E5000E1F700C0000080E40E94160580930101C4 +:100E600081112EC00E94400580930101811128C08C +:100E70000E94400580930101811122C08FE30E94EE +:100E800040058093010181111BC00E94380580E458 +:100E90000E94160580930101811112C08CE00E940E +:100EA00040058093010181110BC00E944005809391 +:100EB0000101811105C08FE30E944005809301016B +:100EC0000E943805809101010895613049F0623037 +:100ED00059F488E00E94671B89E00E94671B04C0E8 +:100EE000FC018281811103C080E090E008958AE0D6 +:100EF00091E00895089556985E9825982D98269823 +:100F00002E9827982F988091BD019091BE01A091B5 +:100F1000BF01B091C00190FF02C0259A2D9A809127 +:100F2000C1019091C201A091C301B091C401029787 +:100F3000A105B10511F4269A2E9A0E944B1281FF49 +:100F400002C0279A2F9A089581E0089581E00895BC +:100F50000C94A60708950F931F93CF93DF938C01F2 +:100F6000FC01C081D181CE010E94DD1BBE010E9427 +:100F70005408EC01B8010E94A807882309F48DC029 +:100F8000F8018281882309F44AC080915D018111B2 +:100F90001FC0C431F0E5DF0709F051C00E94AA0765 +:100FA00081E080935D010E94AC1D90935C01809371 +:100FB0005B0110925401109256011092550110924B +:100FC00058011092570110925A011092590165C0B0 +:100FD00080915B0190915C010E94B81D883C910555 +:100FE00070F480915401E82FF0E0EE0FFF1FEB5AF0 +:100FF000FE4FD183C0838F5F809354014EC0C438AD +:1010000080E5D80721F0C538D04501F13AC0F80194 +:101010008281882341F01092520182E01EC0C438C0 +:10102000E0E5DE0759F580915201811106C086E2A4 +:101030000E94671386E20E942F1482E01CC0C4380D +:10104000F0E5DF0741F3C538D045D9F4F8018281D6 +:10105000882331F01092530180E20E947E141DC05B +:1010600080915301811106C087E20E94671387E2D5 +:101070000E942F1480E20E9485140FC0C538D0450D +:1010800029F381E08093520180935301C801DF91DD +:10109000CF911F910F910C94A40780E0DF91CF9125 +:1010A0001F910F910895089596E0799FF001112402 +:1010B00094E5899FE00DF11D1124E60FF11DEE0F5F +:1010C000FF1FEB5EFE4F859194910895880F991F45 +:1010D000FC01EB56F040859194910895880F991F7B +:1010E000FC01EB5EFE4F8591949108950F931F9341 +:1010F000CF93DF93EC01811520E3920750F5C115E2 +:1011000080E2D80708F0C3C0CB3BD10590F4C83AC1 +:10111000D10508F06AC0C53AD10508F05BC0C430FB +:10112000D10508F0D0C1219709F0CAC101E010E053 +:101130000AC2CF3FD10511F008F0C5C1C03FD105AB +:1011400008F0A2C0CE01805E9109089708F4BBC1E7 +:10115000B7C1C13090E5D90709F4A2C020F5C0316C +:101160008FE4D80770F4C11590E4D90708F094C053 +:10117000C11521E3D20708F0A3C1DD278E01106C51 +:10118000E2C1C115D04509F09BC10E94E4168FEF62 +:1011900094E32CE0815090402040E1F700C0000033 +:1011A0000E94071ED0C1C11597E5D90758F4C03178 +:1011B00021E5D20708F01CC1C43180E5D80708F446 +:1011C00075C07EC1CE0190578115904108F078C15D +:1011D000DF7073C1C53AD10509F477C1C63AD105AC +:1011E00009F076C102E810E4AEC1C83AD10509F4AD +:1011F00072C1C93AD10509F471C1CA3AD10509F4DD +:1012000070C1CB3AD10509F46FC1CC3AD10509F4CC +:101210006EC1CD3AD10509F46DC1C03BD10509F4C9 +:101220006CC1CE3AD10509F46BC1CF3AD10509F4AE +:101230006AC1C13BD10509F469C1C23BD10509F4BA +:1012400068C1C33BD10509F467C1C43BD10509F4AA +:1012500066C1C53BD10509F465C1C63BD10509F49A +:1012600064C1C73BD10509F463C1C83BD10509F48A +:1012700062C1C93BD10509F461C1CA3BD10509F47A +:1012800060C100E014E45FC18E0110655CC1CE0155 +:101290009F700E946E0858C1DF708E01106A53C1A2 +:1012A0008091DA0181608093DA014DC10E94AC1F08 +:1012B000811102C00E94921F0E94C91F90E090936A +:1012C000FB018093FA01C23080E5D80721F48091B8 +:1012D000FA01816086C0C43090E5D90721F480917D +:1012E000FA0182607EC0C63020E5D20721F48091E9 +:1012F000FA01846076C0C83080E5D80719F480917F +:10130000FA0127C0CA3090E5D90721F48091FA018B +:10131000806167C0CC3020E5D20721F48091FA01CA +:1013200080625FC0CE3080E5D80721F48091FA0159 +:10133000806457C0C03190E5D90721F48091FA014B +:1013400080684FC0C23120E5D20729F48091FA01AC +:101350008460886046C0C33080E5D80721F480915E +:10136000FA018E7F3EC0C53090E5D90721F4809107 +:10137000FA018D7F36C0C73020E5D20721F4809175 +:10138000FA018B7F2EC0C93080E5D80719F480910F +:10139000FA0126C0CB3090E5D90721F48091FA01FB +:1013A0008F7E1FC0CD3020E5D20721F48091FA0155 +:1013B0008F7D17C0CF3080E5D80721F48091FA01E6 +:1013C0008F7B0FC0C13190E5D90721F48091FA01DC +:1013D0008F7707C0C331D04531F48091FA018B7FFC +:1013E000877F8093FA018091FA010E94CD1FABC0E4 +:1013F0008D2F99278F70992781309105D9F49E01FF +:101400002370332702C0880F991F2A95E2F79C6842 +:101410008E0144E0000F111F4A95E1F70027137079 +:10142000802B912B53E0CC0FDD1F5A95E1F7C0764E +:10143000DD272FC08230910531F4DC2FCC278E01BF +:10144000016F106A80C08330910569F4CE0183700A +:10145000992701E010E002C0000F111F8A95E2F702 +:10146000C8019C680FC084309105B9F4CE01837027 +:10147000992701E010E002C0000F111F8A95E2F7E2 +:10148000C8019A6823E0CC0FDD1F2A95E1F7C07EE2 +:10149000D7708C010C2B1D2B56C08530910531F473 +:1014A000DC2FCC278E01046F106A4DC0069709F01F +:1014B0004AC0CF71DD27DC2FCC278E01106243C0DC +:1014C00000E010E040C08E013EC001E810E43BC0E7 +:1014D00003E810E438C002EE14E435C009EE14E469 +:1014E00032C00AEE14E42FC005EB14E42CC006EB66 +:1014F00014E429C007EB14E426C00CEC14E423C068 +:101500000DEC14E420C003E815E41DC00AE815E45E +:101510001AC002E915E417C004E915E414C001E299 +:1015200016E411C003E216E40EC004E216E40BC098 +:1015300005E216E408C006E216E405C007E216E478 +:1015400002C00AE216E4C801DF91CF911F910F910A +:10155000089596E0799FF001112494E5899FE00DAC +:10156000F11D1124E60FF11DEE0FFF1FEB5EFE4F84 +:1015700085919491803E9105E0F4803C910558F569 +:101580008133910509F46FC048F48932910509F45B +:1015900063C08A32910509F46DC072C08933910528 +:1015A000E9F082389105D1F08533910509F44DC0F9 +:1015B00067C0833E910581F138F4803E9105B9F012 +:1015C000823E9105D9F05CC0863E910561F1873E6F +:1015D0009105A1F155C00E94660808952091FA0175 +:1015E00020FD02C021FF4CC080EE90E049C08091F8 +:1015F000FA0180FFF9CF89E390E042C08091FA01BF +:1016000082FF0EC08091FA0184FF03C080E090E069 +:1016100037C083EE90E034C08091FA0182FFF2CFB0 +:1016200082EE90E02DC08091FA0183FF0BC0809183 +:10163000FA0184FDEBCF87EE90E022C08091FA01A1 +:1016400083FFF5CF86EE90E01BC08091FA0185FF05 +:1016500007C089E290E014C08091FA0185FFF9CFBC +:1016600085E390E00DC08091FA0186FF07C08AE211 +:1016700090E006C08091FA0186FFF9CF81E390E007 +:101680000E947608089508950C94430B80916E0192 +:101690000895CF93DF9300D01F92CDB7DEB79C01A2 +:1016A0008091F101843019F593E099833B832A837B +:1016B0009093E9008FEF9091E800815095FD06C06E +:1016C00095ED9A95F1F700008111F5CF8091E80032 +:1016D00085FF0DC040E050E063E070E0CE01019670 +:1016E0000E94B30D8091E8008E778093E8000F9000 +:1016F0000F900F90DF91CF910895CF93DF9300D09B +:101700001F92CDB7DEB72091F101243021F522E000 +:1017100029839B838A8383E08093E9008FEF9091F4 +:10172000E800815095FD06C095ED9A95F1F700000F +:101730008111F5CF8091E80085FF0DC040E050E0B9 +:1017400063E070E0CE0101960E94B30D8091E80045 +:101750008E778093E8000F900F900F90DF91CF91DC +:1017600008952091F1012430F1F422E02093E90062 +:101770002FEF3091E800215035FD06C035ED3A9548 +:10178000F1F700002111F5CF2091E80025FF0BC0F3 +:1017900040E050E065E070E00E94B30D8091E80009 +:1017A0008E778093E8000895CF93DF93EC019091BA +:1017B000F101943009F046C080910C018823D9F0E2 +:1017C00080910D018823B9F09093E9008FEF9091FB +:1017D000E800815095FD06C095E19A95F1F700006B +:1017E0008111F5CF8091E80085FF2CC040E050E0EA +:1017F00060E170E017C081E08093E9008FEF909185 +:10180000E800815095FD06C095ED9A95F1F700002E +:101810008111F5CF8091E80085FF14C040E050E0D1 +:1018200068E070E0CE010E94B30D8091E8008E77F1 +:101830008093E80080E1FE01AEE5B1E001900D92F9 +:101840008A95E1F7DF91CF9108958091F0018111A0 +:1018500009C00E94480F0E94A50F8091E200846099 +:101860008093E20008951092F001089508950C9479 +:101870003C240E949D1D0E9442240E944B120C9405 +:10188000440B42E061EC81E00E94C20E42E061EC58 +:1018900082E00E94C20E42E061EC83E00E94C20E30 +:1018A00042E161EC84E00C94C20E8091F30183303C +:1018B00009F455C030F4813071F0823009F48EC0E3 +:1018C00008958A3009F47AC08B3009F460C08930F9 +:1018D00009F09CC020C08091F201813A09F096C0C5 +:1018E0008091E800877F8093E8008091F6019091D5 +:1018F000F701892B21F460E18EE591E003C060E0FF +:1019000080E090E070E00E94FE0D8091E8008B770F +:101910008093E80008958091F201813209F076C049 +:101920008091F6019091F701009719F0039709F063 +:101930006DC08091E800877F8093E8008091E80087 +:1019400082FD05C08091F1018111F8CF5FC08091C7 +:10195000F10080936E018091E8008B7753C08091F5 +:10196000F201813A09F052C08091F6019091F7019D +:10197000892B09F04BC08091E800877F8093E800B5 +:101980008091E80080FFFCCF80910C0136C08091EF +:10199000F2018132D9F58091F6019091F701892BFE +:1019A000A9F58091E800877F8093E8000E94F70EF8 +:1019B0008091F40180930C010C94E4168091F20163 +:1019C000813221F58091E800877F8093E8000E94B2 +:1019D000F70E8091F50180936F0108958091F201D7 +:1019E000813AA1F48091E800877F8093E80080919C +:1019F000E80080FFFCCF80916F018093F10080911F +:101A0000E8008E778093E8000C94F70E089584B771 +:101A1000877F84BF88E10FB6F894809360001092AE +:101A200060000FBE90E080E80FB6F89480936100EC +:101A3000909361000FBE0E949A120E94480F0E946C +:101A4000A50F8091E20084608093E20078940E9468 +:101A50002B120E949C1282E091E00E9446120E948A +:101A60002A248091F101853069F40E94641D8091DF +:101A7000EF018823B1F30E948F1D882391F30E9408 +:101A80009D0DEFCF0E94A212ECCF292F33272330D8 +:101A90003105C9F064F42130310581F0223031057F +:101AA00009F043C08DE690E029ED37E042C02132D5 +:101AB0003105F1F02232310541F137C082E190E089 +:101AC00026E438E036C099278130910541F0823014 +:101AD000910541F0892B49F5E5EDF7E005C0EDEB07 +:101AE000F7E002C0E5EAF7E0849190E09F0121C0B1 +:101AF0006430D8F4E62FF0E0EE0FFF1FEE5DFE4FEE +:101B00002081318189E090E014C0643070F470E08D +:101B1000FB01EE0FFF1FE65EFE4F20813181FB01CE +:101B2000EA5EFE4F808190E004C080E090E020E01B +:101B300030E0FA0131832083089580E189BD82E19C +:101B400089BD09B400FEFDCF8091D8008F7D8093C0 +:101B5000D8008091E00082608093E0008091E000F6 +:101B600081FDFCCF0895CF92DF92EF92FF920F9309 +:101B70001F93CF93DF93EC018B016A010E94160F34 +:101B8000811133C0C114D10439F0F60180819181F3 +:101B9000081B190BC80FD91FE12CF12C01151105D9 +:101BA00019F18091E80085FD16C08091E8008E77DC +:101BB0008093E800C114D10449F0F601808191813D +:101BC000E80EF91EF182E08285E00FC00E94160F38 +:101BD000882321F30AC089918093F10001501109F3 +:101BE000FFEFEF1AFF0ADACF80E0DF91CF911F916C +:101BF0000F91FF90EF90DF90CF9008952091F80122 +:101C00003091F9012617370748F06115710539F44D +:101C10002091E8002E772093E80001C0B90140E050 +:101C200061157105A9F12091F101222309F443C046 +:101C3000253009F442C02091E80023FD40C02091E6 +:101C4000E80022FD32C02091E80020FFE9CF40915A +:101C5000F3002091F20030E0342BFC01CF0161153C +:101C6000710559F02830310540F481918093F100DD +:101C7000615071092F5F3F4FF1CF41E028303105AE +:101C800009F040E02091E8002E772093E800C8CFCB +:101C90004111C9CF0AC08091F101882361F08530DC +:101CA00061F08091E80083FD0AC08091E80082FF26 +:101CB000F2CF80E0089582E0089583E0089581E006 +:101CC00008952091F8013091F9012617370748F05F +:101CD0006115710539F42091E8002E772093E80012 +:101CE00001C0B901FC0120E06115710591F18091FD +:101CF000F101882309F440C0853009F43FC0809188 +:101D0000E80083FD3DC08091E80082FD2FC08091F6 +:101D1000E80080FFE9CF2091F3008091F20090E08D +:101D2000922B6115710559F08830910540F424918A +:101D30002093F1003196615071090196F2CF21E0B4 +:101D4000089709F020E08091E8008E778093E80002 +:101D5000CBCF2111CCCF0AC08091F101882361F053 +:101D6000853061F08091E80083FD0AC08091E80031 +:101D700082FFF2CF80E0089582E0089583E0089525 +:101D800081E00895982F973058F59093E9009817BF +:101D900039F07091EC002091ED005091F00003C0FB +:101DA000242F762F50E021FF19C03091EB003E7FA9 +:101DB0003093EB003091ED003D7F3093ED0030919A +:101DC000EB0031603093EB007093EC002093ED005A +:101DD0005093F0002091EE0027FF07C09F5FD3CF04 +:101DE0008F708093E90081E0089580E008958091EC +:101DF000F20187FF11C08091E80082FD05C080914B +:101E0000F1018111F8CF11C08091E8008B770BC0F0 +:101E10008091F101882349F08091E80080FFF8CF9C +:101E20008091E8008E778093E80008952091E40087 +:101E30003091E50095E64091EC00842F817040FFE1 +:101E400022C08091E80080FD1CC08091F1018823B0 +:101E500091F0853091F08091EB0085FD10C04091AC +:101E6000E4005091E5004217530729F39A0191507D +:101E700011F784E0089582E0089583E0089581E0F9 +:101E8000089580E008954091E80042FFDECF089574 +:101E90000E94B60F0E94BE0FE0EEF0E080818160EC +:101EA0008083E8EDF0E080818F77808319BCA7ED17 +:101EB000B0E08C918E7F8C9380818F7E8083109296 +:101EC000F00108950F931F93CF93DF930E94B60FF5 +:101ED0000E94BE0FC8EDD0E088818F77888388810B +:101EE0008068888388818F7D888319BC1092F10176 +:101EF0001092ED011092EF011092EE0100EE10E051 +:101F0000F80180818B7F808388818160888342E0B3 +:101F100060E080E00E94C20EE1EEF0E080818E7F02 +:101F20008083E2EEF0E08081816080838081886040 +:101F30008083F80180818E7F80838881806188839F +:101F4000DF91CF911F910F910895E8EDF0E080812E +:101F50008F7E8083E7EDF0E080818160808384E084 +:101F600082BF81E08093F0010C94620FE8EDF0E015 +:101F700080818E7F80831092E20008951092DA00B3 +:101F80001092E10008951F920F920FB60F92112444 +:101F90002F933F934F935F936F937F938F939F9371 +:101FA000AF93BF93EF93FF938091E10082FF0BC04B +:101FB0008091E20082FF07C08091E1008B7F8093D7 +:101FC000E1000E942A128091DA0080FF1FC08091F8 +:101FD000D80080FF1BC08091DA008E7F8093DA00EA +:101FE0008091D90080FF0DC080E189BD82E189BD6B +:101FF00009B400FEFDCF81E08093F1010E94250C21 +:1020000005C019BC1092F1010E94330C8091E100CF +:1020100080FF19C08091E20080FF15C08091E2002E +:102020008E7F8093E2008091E20080618093E200E5 +:102030008091D80080628093D80019BC85E080939D +:10204000F1010E94370C8091E10084FF30C0809143 +:10205000E20084FF2CC080E189BD82E189BD09B422 +:1020600000FEFDCF8091D8008F7D8093D8008091B5 +:10207000E1008F7E8093E1008091E2008F7E80936B +:10208000E2008091E20081608093E2008091ED01A6 +:10209000882311F084E007C08091E30087FD02C02F +:1020A00081E001C083E08093F1010E94390C8091AE +:1020B000E10083FF29C08091E20083FF25C0809169 +:1020C000E100877F8093E10082E08093F10110922C +:1020D000ED018091E1008E7F8093E1008091E2002C +:1020E0008E7F8093E2008091E20080618093E20025 +:1020F00042E060E080E00E94C20E8091F0008860C3 +:102100008093F0000E94360CFF91EF91BF91AF9148 +:102110009F918F917F916F915F914F913F912F91FF +:102120000F900FBE0F901F9018951F920F920FB631 +:102130000F9211242F933F934F935F936F937F934D +:102140008F939F93AF93BF93CF93DF93EF93FF93BF +:10215000C091E900CF708091EC00D82FD17080FD44 +:10216000D0E81092E9008091F000877F8093F00022 +:1021700078940E94D9101092E9008091F000886054 +:102180008093F000CD2BCF70C093E900FF91EF91C9 +:10219000DF91CF91BF91AF919F918F917F916F917F +:1021A0005F914F913F912F910F900FBE0F901F9015 +:1021B00018951F93CF93DF93CDB7DEB7AA970FB6CD +:1021C000F894DEBF0FBECDBFE2EFF1E088E08E0FE6 +:1021D0009091F10091938E13FBCF0E94550C80914A +:1021E000E80083FF1FC18091F2019091F301492F14 +:1021F00050E04A30510508F015C1FA01EA5AFF4F84 +:102200000C94C425803881F0823809F00BC180918C +:10221000F6018F708093E9008091EB0085FB8827A1 +:1022200080F91092E90006C08091EE019091EF01D3 +:10223000911182609091E800977F9093E8008093DD +:10224000F1001092F100C8C0282F2D7F09F0EAC0DC +:10225000882319F0823061F0E5C08091F40181306B +:1022600009F0E0C0933009F080E08093EF012BC0CB +:102270008091F401811127C08091F6018F7009F4DB +:10228000D1C08093E9002091EB0020FF1CC0933067 +:1022900021F48091EB00806214C09091EB0090617A +:1022A0009093EB0021E030E0A90102C0440F551FDC +:1022B0008A95E2F74093EA001092EA008091EB00E1 +:1022C00088608093EB001092E9008091E800877F9E +:1022D00086C08111A7C01091F4011F778091E3009F +:1022E0008078812B8093E3008091E800877F809342 +:1022F000E8000E94F70E8091E80080FFFCCF8091FB +:10230000E30080688093E300111102C082E001C005 +:1023100083E08093F10186C08058823008F082C04B +:102320008091F4019091F5018C3D53E0950779F58A +:1023300083E08A838AE289834FB7F894DE0113969B +:1023400020E03EE051E2E32FF0E050935700E491AB +:1023500020FF03C0E295EF703F5FEF708E2F90E09B +:10236000EA3010F0C79601C0C0968D939D932F5F01 +:10237000243149F74FBF8091E800877F8093E800C0 +:102380006AE270E0CE0101960E94FE0D14C0AE011B +:102390004F5F5F4F6091F6010E94450DBC010097B1 +:1023A00009F440C09091E800977F9093E8008981FC +:1023B0009A810E94610E8091E8008B778093E800FB +:1023C00031C0803879F58091E800877F8093E800FC +:1023D0008091ED018093F1008091E8008E778093E9 +:1023E000E8000E94F70E1EC081111CC09091F401FC +:1023F0009230C0F48091E800877F8093E80090934A +:10240000ED010E94F70E8091ED01811106C08091CF +:10241000E30087FD02C081E001C084E08093F10108 +:102420000E94410C8091E80083FF0AC08091E8007F +:10243000877F8093E8008091EB0080628093EB00BF +:10244000AA960FB6F894DEBF0FBECDBFDF91CF9135 +:102450001F9108950895CF938091F1018823A1F0F1 +:10246000C091E900CF709091EC00892F817090FDB0 +:1024700080E8C82B1092E9008091E80083FD0E945B +:10248000D910CF70C093E900CF9108959093750152 +:10249000809374010895E0917401F0917501309773 +:1024A00021F00190F081E02D099480E00895E09101 +:1024B0007401F0917501309721F00280F381E02DD5 +:1024C00009940895E0917401F0917501309721F01D +:1024D0000480F581E02D09940895209172013091D6 +:1024E00073018217930771F09093730180937201C7 +:1024F000E0917401F0917501309721F00680F78129 +:10250000E02D099408952091700130917101821796 +:10251000930771F09093710180937001E0917401C1 +:10252000F0917501309721F00084F185E02D099438 +:10253000089508950C9499120E94A31D0E9483058A +:102540000C94651E9F92AF92BF92CF92DF92EF9252 +:10255000FF920F931F93CF93DF9300D000D000D052 +:10256000CDB7DEB70E949B050DE010E0AA24A3942E +:10257000B12C902E802F0E948906980129583E4F39 +:102580006901F901F080F826A1F40150110988F7DA +:102590008FEF89838A831B820E94AC1D8160782F14 +:1025A0009D838C8349815A816B818D810E9439136F +:1025B0002FC09091DA0191FF04C08E830E948F0694 +:1025C0008E8125E030E0A501022E01C0440F0A945F +:1025D000EAF7E42E4F21C1F029839A828E2191E0FF +:1025E00009F490E09B830E94AC1D8160782F9D834D +:1025F0008C8349815A816B818D810E943913F60148 +:102600008081E826E08204C021503109E0F6BDCF88 +:102610000E944C21109176010E944B121817B9F0BC +:102620000E944B128093760126960FB6F894DEBF77 +:102630000FBECDBFDF91CF911F910F91FF90EF9013 +:10264000DF90CF90BF90AF909F900C94440B269654 +:102650000FB6F894DEBF0FBECDBFDF91CF911F91B3 +:102660000F91FF90EF90DF90CF90BF90AF909F9031 +:102670000895CF93DF93CDB7DEB72B970FB6F894BD +:10268000DEBF0FBECDBF4F83588769877A878B87A0 +:10269000DE01119686E0FD0111928A95E9F785E049 +:1026A000FE01379601900D928A95E1F749815A8192 +:1026B0006B817C818D819E810E9482192B960FB641 +:1026C000F894DEBF0FBECDBFDF91CF910895CF93B9 +:1026D000882309F4C2C0C82F823859F40E944B12D3 +:1026E00081FDBBC089E30E945C1C0E94291D89E317 +:1026F0000CC0833879F40E944B1280FDAEC083E594 +:102700000E945C1C0E94291D83E50E949E1CCF91A3 +:102710000C94291D843859F40E944B1282FD9DC0EF +:1027200087E40E945C1C0E94291D87E4EECF8CEF99 +:102730008C0F813A48F48C2F0E948F2381118DC019 +:102740008C2F0E945C1CE3CF80E28C0F883048F411 +:10275000C77081E001C0880FCA95EAF70E94E21CA9 +:10276000D6CF8BE58C0F833078F4C53A29F0C63A82 +:1027700031F083E890E005C081E890E002C082E893 +:1027800090E0CF910C946D1288E58C0F833108F0A6 +:1027900064C0C83A39F1C93A41F1CA3A49F1CB3A71 +:1027A00051F1CC3A59F1CD3A61F1C03B69F1CE3AE1 +:1027B00071F1CF3A79F1C13B81F1C23B89F1C33B61 +:1027C00091F1C43B99F1C53BA1F1C63BA9F1C73BCF +:1027D000B1F1C83BB9F1C93BC1F1CA3BC9F180E0D5 +:1027E00090E038C082EE90E035C089EE90E032C0D3 +:1027F0008AEE90E02FC085EB90E02CC086EB90E055 +:1028000029C087EB90E026C08CEC90E023C08DECD3 +:1028100090E020C083E891E01DC08AE891E01AC0F2 +:1028200082E991E017C084E991E014C081E292E06E +:1028300011C083E292E00EC084E292E00BC085E218 +:1028400092E008C086E292E005C087E292E002C012 +:102850008AE292E0CF910C948312CF91089588235D +:1028600009F44BC0823859F40E944B1281FF45C0D5 +:1028700089E30E945C1C0E94291D89E30CC08338F7 +:1028800071F40E944B1280FF38C083E50E945C1CEB +:102890000E94291D83E50E949E1C0C94291D8438EA +:1028A00059F40E944B1282FF28C087E40E945C1CEE +:1028B0000E94291D87E4EFCF9CEF980F913A58F3BF +:1028C00090E2980F983050F4877091E001C0990F12 +:1028D0008A95EAF7892F0E94E81CDFCF9BE5980FC5 +:1028E000933020F480E090E00C946D12885A83318C +:1028F00020F480E090E00C9483120895882321F066 +:102900000E94E21C0C94291D0895882321F00E9446 +:10291000E81C0C94291D08957F928F929F92AF928C +:10292000BF92CF92DF92EF92FF920F931F93CF93BC +:10293000DF931F92CDB7DEB77C01C62E772EFC0148 +:10294000058102950F70128111110E94FF1C0E94D7 +:10295000551C882379F0112369F080E28C0D8830B2 +:1029600048F082E00E943E1C0E94551C91E0D82E47 +:10297000D92601C0D12CE72DE295EF70F0E0E05AA6 +:10298000FF4F0C94C425872D807F072D0F7088235F +:1029900011F00295007F112389F0002309F490C102 +:1029A00080E28C0D883020F4802F0E94E21C03C04E +:1029B000802F0E94F21C0E94291D82C18C2D0E9432 +:1029C0002F14002309F495C180E28C0D883020F487 +:1029D000802F0E94E81C03C0802F0E94F81C0E94D8 +:1029E000291D87C1972D907F872D8F70903211F010 +:1029F0008295807FCC2021F0F1E0CF16B1F01EC08F +:102A0000112349F0002309F414C1013009F011C168 +:102A10000E94121D6EC1002319F0013009F469C132 +:102A200089830E94151D89810AC1112321F002307A +:102A300008F05FC1FEC001115CC101C1112321F08A +:102A4000002309F4F6C03CC1002309F4F8C03EC1DC +:102A5000872D86958695837090E0009719F00197F1 +:102A600061F047C1112321F08C2D972D937002C086 +:102A700080E090E00E946D123CC1112321F08C2D6A +:102A8000972D937002C080E090E00E94831231C1C4 +:102A90008C2D112319F00E94542002C00E94BC20EA +:102AA0000E94412126C1872D837009F052C0111167 +:102AB00020C18C2D829586958770880F880F9C2D5C +:102AC0009F70892E912CA12CB12C082E04C0880C4B +:102AD000991CAA1CBB1C0A94D2F7C4FE14C00FE0B8 +:102AE00010E020E030E0B901A80104C0440F551FF8 +:102AF000661F771F8A95D2F7CB01BA016095709552 +:102B00008095909503C060E070E0CB01272D26955D +:102B10002695237030E02230310569F023303105ED +:102B200089F0682979298A299B292130310571F09A +:102B30000E94CA1ADEC0682979298A299B290E9425 +:102B4000E61AD7C00E94CA1AC501B4010E94AE1A83 +:102B5000D0C0112319F0872D817001C0869588237C +:102B600009F4C7C08C2D829586958770880F880FD1 +:102B70009C2D9F70892E912CA12CB12C082E04C065 +:102B8000880C991CAA1CBB1C0A94D2F7C4FE14C062 +:102B90000FE010E020E030E0B901A80104C0440FCC +:102BA000551F661F771F8A95D2F7CB01BA01609532 +:102BB00070958095909503C060E070E0CB01272D63 +:102BC000269526952370422F50E04230510569F03A +:102BD0004330510589F0682979298A299B29413098 +:102BE000510571F00E94A41B84C0682979298A29A3 +:102BF0009B290E94C01B7DC00E94A41BC501B4017B +:102C00000E94881B76C08C2D90E0FC01E05EF109EB +:102C1000E531F10508F050C0E059FF4F0C94C42590 +:102C20000C2D0F70872D8F71112331F00E94211B05 +:102C3000802F0E947E145DC00E94421B802F0E9444 +:102C4000851457C0112339F0011153C0872D8F719E +:102C50000E94671B4EC0023008F04BC0F7CF112313 +:102C600039F0872D8F710E94211B43C01123C9F3B6 +:102C7000872D8F710E94421B3CC0112329F0872DA4 +:102C80008F710E940C1B35C00E94021B32C01123A1 +:102C900051F0172D1F71812F0E94211B63E0812F9E +:102CA0000E94351C26C081E00E943E1C023008F1C3 +:102CB00082E00E943E1C1DC0112331F0002389F2E6 +:102CC0008C2D0E94671315C0002391F28C2D0E9459 +:102CD0002F140FC0472D4F706C2DC7010E94650740 +:102CE0000E94261A06C0472D4F706C2DC7010E9406 +:102CF0005308DD20F9F00E94311C80FD1BC0F70154 +:102D000012820E942B1C0E94211BC7010E94A9163F +:102D10000E942B1C0F90DF91CF911F910F91FF907C +:102D2000EF90DF90CF90BF90AF909F908F907F906B +:102D30000C94421B0F90DF91CF911F910F91FF9048 +:102D4000EF90DF90CF90BF90AF909F908F907F904B +:102D500008950F931F93CF93DF93EC01888199819E +:102D60002B813C81232BB9F09F3F11F48F3F99F0C9 +:102D7000CE010E94AB07882371F0688179818A8136 +:102D80000E94271C8C010E94DC1B0E94A31AB80120 +:102D9000CE010E948C14DF91CF911F910F91089565 +:102DA0000E94FF1C0E940F1D0E94D41C0E94291D1E +:102DB0000E94F2210E94412180E090E00E946D1269 +:102DC00080E090E00C9483120E94EF1C0C94D016CB +:102DD0000E941C1C292F22952F7030E02C303105C9 +:102DE0004CF42A3031056CF422503109223031057F +:102DF000A8F407C02C30310569F02F30310551F0AF +:102E00000DC0803F69F018F4803E40F409C0843F53 +:102E100029F406C093FB882780F9089580E008957F +:102E200081E00895CF93DF9300D000D01F92CDB7FB +:102E3000DEB70F900F900F900F900F90DF91CF9112 +:102E40000895CF93DF9300D000D000D0CDB7DEB788 +:102E500026960FB6F894DEBF0FBECDBFDF91CF919F +:102E600008951F93CF93DF93C091850116E0809161 +:102E70008601C81799F0D0E01C9FF0011D9FF00D4E +:102E80001124E957FE4F4081518162817381848111 +:102E900095810E9421172196C770E9CFDF91CF91CC +:102EA0001F9108954091B7015091B8016091B90107 +:102EB0007091BA018091BB019091BC010C942117D3 +:102EC0008091BC0182958F7009F054C08091B90146 +:102ED000882309F44FC080918501A09186016091FB +:102EE000B7017091B8014091BA015091BB01B6E0B1 +:102EF0008A1709F43FC090E041155105C1F17F3FA9 +:102F000011F46F3FA1F1B89FF001B99FF00D1124AA +:102F1000E957FE4F218172132AC02081621327C016 +:102F20002281211124C0238134812417350710F414 +:102F300021503109241B350B283C3105C0F4209168 +:102F4000BC012F7020612093BC0126E0289FF00176 +:102F5000299FF00D1124E457FE4F80818F7080610E +:102F6000808387EB91E00E94A9160C94311701969B +:102F70008770BECF0895CF92DF92EF92FF920F93AA +:102F80001F93CF93DF93CDB7DEB762970FB6F89458 +:102F9000DEBF0FBECDBF8C0185E0F801DE011D96BE +:102FA00001900D928A95E1F7D8014C9111965C91B0 +:102FB000119712966C9112971396CD90DC901497FE +:102FC0003091B7017091B8018091BA019091BB0125 +:102FD000009709F46BC17F3F19F43F3F09F466C1C4 +:102FE000E090B901EE2009F4C0C02091BC01C816E0 +:102FF000D90628F0F601E81BF90BCF0104C0809533 +:1030000090958C0D9D1DFF24F394883C910578F0DC +:10301000F12C207F09F0C6C07C2DD98AC88A898905 +:103020000E94121787EB91E00E94A916B1C0822F6F +:10303000807F09F046C0751314C0341312C06111AB +:1030400010C02F7020612093BC010E94521787EBA3 +:1030500091E00E94A9168091BC01D80115968C932D +:103060002EC0CD2819F15F3F11F44F3FF9F0F62E35 +:1030700061111CC0809185012091860136E0821784 +:1030800009F45AC090E0389FF001399FF00D1124E7 +:10309000E957FE4F7181571306C07081471303C073 +:1030A0007281711103C001968770E9CFF62E6623F5 +:1030B00009F418C18091BC0181608093BC01F12C9E +:1030C00011C1751308C0341306C0611104C080918A +:1030D000BC01D801C3C04D875E878D859E856A8BF4 +:1030E0000E94E8166A898823E1F16623D1F12091D4 +:1030F000BC01822F82958F7090E0029774F08091CE +:10310000B7019091B80198878F831986DB86CA86AC +:103110002C87CE0107960E94A91686E0F801A7EB3E +:10312000B1E001900D928A95E1F70E9460170E942C +:103130005217FF24F394D6C04D875E878D859E85F8 +:103140000E941C1C292F22952F7030E0223031055F +:103150000CF0BCC09F7009F0B6C0805E883008F4E7 +:10316000C1C0C8010E94A916E4CFC816D90608F448 +:1031700053C0F601E81BF90BCF01883C910508F418 +:1031800050C0F12C7C2DD98AC88A89890E941217D7 +:10319000E7EBF1E086E0DF011D928A95E9F70E94F6 +:1031A0005217A0C0751314C0341312C0611110C09F +:1031B0008091BC01F8018583C8010E94A91686E0B0 +:1031C000E7EBF1E0DF011D928A95E9F7FE2C8AC05A +:1031D0004D875E878D859E856A8B0E94E8166A8979 +:1031E000882309F4BECF662309F4BBCF2091BC012C +:1031F000822F82958F7090E002970CF48ECF809191 +:10320000B7019091B8019A8389831B82DD82CC82B9 +:103210002E83CE0101967FCF809590958C0D9D1DBC +:10322000ACCFF62E662309F49CCF75132EC0341351 +:103230002CC02091BC0120FD1FC0822F82958F7071 +:10324000D9F0D80115962C9315978F3049F08F5FE0 +:10325000982F9295907F822F8F70892B15968C9343 +:10326000C8010E94A91686E0F801A7EBB1E0019021 +:103270000D928A95E1F793CF86E0F801A7EBB1E0D4 +:1032800001900D928A95E1F72DC04D875E878D855F +:103290009E850E94E816811140CF8091BC0181601B +:1032A0008093BC01C8010E94A9161CC0662309F4C2 +:1032B00058CF4D875E878D859E850E94E8168823AE +:1032C00009F44FCF2ACF811148CF0CC024303105EB +:1032D0000CF047CF9F7009F440CFF8019581907FA3 +:1032E00009F03BCF8F2D62960FB6F894DEBF0FBE6C +:1032F000CDBFDF91CF911F910F91FF90EF90DF90A5 +:10330000CF9008951F93CF93DF93CDB7DEB72C975F +:103310000FB6F894DEBF0FBECDBF4F8358876987C5 +:103320007A878B879C87CE0107960E94BB178823DC +:1033300069F08F8198852A853B85232BF1F19F3F8A +:1033400009F063C08F3F09F060C037C086E0FE011E +:103350003796DE01119601900D928A95E1F76F8103 +:103360007885EA85FB85309741F17F3F11F46F3F07 +:1033700021F12091860130E0C901019687709927DB +:103380004091850150E08417950709F447C069838F +:103390007A83FD83EC8396E0929FD001939FB00DDA +:1033A0001124A957BE4FFE01319601900D929A95B6 +:1033B000E1F7809386010E94311716E08091850124 +:1033C000909186018917C1F1189FC0011124895776 +:1033D0009E4F0E94BB17882379F1E09185011E9FC3 +:1033E000F0011124E957FE4F4081518162817381C0 +:1033F000848195810E9421178091850190E001963A +:103400008770992780938501D9CF4F815885698529 +:103410007A858B859C850E942117CFCF0E94E41668 +:103420001092860110928501E7EBF1E086E0DF0162 +:103430001D928A95E9F7C1CF2C960FB6F894DEBF9E +:103440000FBECDBFDF91CF911F910895EF92FF92F4 +:103450000F931F93CF93DF938C01009709F46CC0F7 +:10346000F12CEE24E394E8012196F801849184374D +:1034700040F4843008F051C0813081F0823019F17D +:103480005BC0853709F444C0A8F19CE7980F9037DA +:1034900008F052C08F770E942F1441C00E5F1F4F5B +:1034A000FE01C49180E28C0F883048F4C7708E2DE5 +:1034B00001C0880FCA95EAF70E94021D14C08C2F24 +:1034C0000E9467132DC00E5F1F4FFE01C49180E262 +:1034D0008C0F883058F4C7708E2D01C0880FCA95A4 +:1034E000EAF70E94081D0E94291D1AC08C2F0E9415 +:1034F0002F1416C00E5F1F4FFE01C491CC2381F024 +:103500008FE99FE00197F1F700C00000C150F6CFAE +:103510000E5F1F4FFE01F49003C00E9467138E01DF +:103520008F2D882309F49FCFEFE9FFE03197F1F762 +:1035300000C000008150F5CFDF91CF911F910F9116 +:10354000FF90EF90089508956093C1017093C201B8 +:103550008093C3019093C4010C94D0160F931F93D2 +:103560000091C1011091C2012091C3013091C401A9 +:10357000DC01CB01802B912BA22BB32B8093C101BB +:103580009093C201A093C301B093C4011F910F9106 +:103590000C94D0160F931F930091C1011091C2019A +:1035A0002091C3013091C401DC01CB018023912320 +:1035B000A223B3238093C1019093C201A093C301BE +:1035C000B093C4011F910F910C94D0160F931F93C9 +:1035D0000091C1011091C2012091C3013091C40139 +:1035E000DC01CB0180279127A227B3278093C1015B +:1035F0009093C201A093C301B093C4011F910F9196 +:103600000C94D0161092BD011092BE011092BF0111 +:103610001092C0010C94D01641E050E060E070E0E0 +:1036200004C0440F551F661F771F8A95D2F7409339 +:10363000BD015093BE016093BF017093C0010C9413 +:10364000D01641E050E060E070E004C0440F551F28 +:10365000661F771F8A95D2F78091BD019091BE01B8 +:10366000A091BF01B091C001482B592B6A2B7B2B35 +:103670004093BD015093BE016093BF017093C001A0 +:103680000C94D01641E050E060E070E004C0440FBC +:10369000551F661F771F8A95D2F740955095609504 +:1036A00070958091BD019091BE01A091BF01B09134 +:1036B000C001482359236A237B234093BD015093C3 +:1036C000BE016093BF017093C0010C94D01641E01D +:1036D00050E060E070E004C0440F551F661F771F84 +:1036E0008A95D2F78091BD019091BE01A091BF0152 +:1036F000B091C001482759276A277B274093BD0115 +:103700005093BE016093BF017093C0010C94D0161A +:103710000F931F930091BD011091BE012091BF0135 +:103720003091C001DC01CB01802B912BA22BB32B5C +:103730008093BD019093BE01A093BF01B093C001DF +:103740001F910F910C94D0160F931F930091BD0100 +:103750001091BE012091BF013091C001DC01CB016D +:1037600080239123A223B3238093BD019093BE01B4 +:10377000A093BF01B093C0011F910F910C94D0167C +:103780000F931F930091BD011091BE012091BF01C5 +:103790003091C001DC01CB0180279127A227B327FC +:1037A0008093BD019093BE01A093BF01B093C0016F +:1037B0001F910F910C94D0160895CF92DF92EF9243 +:1037C000FF920F931F93CF93DF938C01C090C101A1 +:1037D000D090C201E090C301F090C4018091BD017E +:1037E0009091BE01A091BF01B091C001C82AD92A11 +:1037F000EA2AFB2ACFE1D0E0D701C6010C2E04C093 +:10380000B695A795979587950A94D2F780FF06C03D +:10381000B8018C2F0E94A90A019721F4219760F723 +:1038200080E001C08C2FDF91CF911F910F91FF900D +:10383000EF90DF90CF900895CF93DF93EC010E943B +:10384000DD1BBE010E94A90ADF91CF910895CB0133 +:103850000E941C1C08958091C501859585958595CC +:1038600008958091C5018770089598E0899F90011F +:103870001124262B2093C5010C94211B2091C501F6 +:10388000809582238093C501982F977069F430E06A +:10389000482F552747FD50952417350729F0859562 +:1038A000859585950C94421B08959091C50197705C +:1038B00081E009F480E0089590910C01992321F0B2 +:1038C00090910D01911109C020910E0130910F01CD +:1038D000F90132969FEF40E01FC0982F969596957C +:1038E00096959F3050F5E0910E01F0910F01E90F90 +:1038F000F11D877021E030E0A90102C0440F551F7F +:103900008A95E2F7CA019181892B818308959F3FAF +:1039100039F04F5F4E3041F051915813F8CF0DC040 +:103920005111F7CF942FF5CF9F3F39F0F901E90FEF +:10393000F11D97FDFA9582830895089590910C01E9 +:10394000992321F090910D01911109C020910E0150 +:1039500030910F01F9013296205F3F4F1FC0982F21 +:103960009695969596959F30F0F4E0910E01F09122 +:103970000F01E90FF11D877021E030E0A90102C0BD +:10398000440F551F8A95E2F7CA01809591818923DA +:10399000818308953196E217F30729F090819813F7 +:1039A000F9CF1082F7CF089581E090E0E0910E0109 +:1039B000F0910F01E80FF91F1082019680319105F7 +:1039C000A9F708959091D901892B8093D901089581 +:1039D00080959091D90189238093D90108951092FF +:1039E000D90108959091D801892B8093D801089529 +:1039F00080959091D80189238093D80108951092E1 +:103A0000D80108959091D701892B8093D70108950B +:103A100080959091D70189238093D70108951092C2 +:103A2000D70108958093C60108951092C6010895A4 +:103A300080910E0190910F01FC0131969C01205F55 +:103A40003F4F80E0919191118F5FE217F307D1F71B +:103A50000895E0910E01F0910F018091D9018083CA +:103A6000E0910E01F0910F0190818091D801892B96 +:103A70008083E0910E01F0910F0190818091D70138 +:103A8000892B80838091C601882361F0E0910E012B +:103A9000F0910F019081892B80830E94181D811164 +:103AA0001092C60180910E0190910F010C94571253 +:103AB00020E0009739F0AC0141505109842395234F +:103AC0002F5FF7CF822F08958091F101843021F18B +:103AD0001092DB0120E488E190E00FB6F894A895FD +:103AE000809360000FBE2093600080E00E94440B32 +:103AF00083B7817F846083BF83B7816083BF7894FD +:103B0000889583B78E7F83BF88E10FB6F894809342 +:103B10006000109260000FBE0895089508950E94FD +:103B20008D1D0E949B050E948E1D0E94900691E0B3 +:103B3000811101C090E0892F08950E94E4160E942F +:103B40004B120C94440B82E084BD93E095BD9AEF38 +:103B500097BD80936E0008952FB7F8948091DC0193 +:103B60009091DD01A091DE01B091DF012FBF08959A +:103B7000CF92DF92EF92FF920F931F932FB7F8949B +:103B80004091DC015091DD016091DE017091DF0117 +:103B90002FBF6A017B01EE24FF248C0120E030E07E +:103BA000C016D106E206F30610F4415051099A01FD +:103BB000281B390BC9011F910F91FF90EF90DF90E7 +:103BC000CF9008951F920F920FB60F9211248F93EA +:103BD0009F93AF93BF938091DC019091DD01A09101 +:103BE000DE01B091DF010196A11DB11D8093DC01C2 +:103BF0009093DD01A093DE01B093DF01BF91AF91FF +:103C00009F918F910F900FBE0F901F9018950E945B +:103C1000480FF8942FEF87EA91E6215080409040BA +:103C2000E1F700C0000087E090EBDC018093FB012E +:103C30009093FC01A093FD01B093FE019CE088E10C +:103C40000FB6F894A895809360000FBE9093600023 +:103C5000FFCFEF92FF920F931F93CF93DF93D82F55 +:103C6000CDE08C2F0E94890605E010E0E82EF12CB3 +:103C7000C701002E02C0959587950A94E2F780FF50 +:103C800009C0602F7C2F80E00E945408D81302C026 +:103C900081E006C00150110958F7C15010F780E0CB +:103CA000DF91CF911F910F91FF90EF900895CF93E7 +:103CB000C82F8CE20E94291E882321F08C2FCF91DF +:103CC0000C94291E80E0CF910895CF930E94AC1FE1 +:103CD000811102C00E94921FC5E6C15049F00E94A6 +:103CE0009B058FE39CE90197F1F700C00000F5CF39 +:103CF00089E20E94571E811113C18AE20E94571E59 +:103D000081110E94921F85E00E94571E81110E941E +:103D1000071E0E94B71F8093DA0187E00E94571E9A +:103D20008823A9F18BE10E94571E882351F08091CE +:103D3000DA0181FB222720F991E0922790FB81F99B +:103D40000EC08EE00E94571E882361F08091DA0138 +:103D500082FB222720F991E0922790FB82F9809341 +:103D6000DA0115C080E10E94571E9091DA01882384 +:103D700041F093FB222720F981E0822780FB93F911 +:103D800004C0892F809580FB90F99093DA0180918F +:103D9000DA010E94BB1F0E94C91F8093FA0180EEC6 +:103DA0000E94571E882341F08091FA01982F909528 +:103DB00090FB80F98093FA0189E30E94571E8823C3 +:103DC00059F08091FA0181FB222720F991E0922796 +:103DD00090FB81F98093FA0182EE0E94571E88239E +:103DE00059F08091FA0182FB222720F991E0922775 +:103DF00090FB82F98093FA0186EE0E94571E882379 +:103E000059F08091FA0183FB222720F991E0922753 +:103E100090FB83F98093FA0183EE0E94571E88235A +:103E200059F08091FA0184FB222720F991E0922732 +:103E300090FB84F98093FA0185E30E94571E882342 +:103E400059F08091FA0185FB222720F991E0922711 +:103E500090FB85F98093FA0181E30E94571E882325 +:103E600059F08091FA0186FB222720F991E09227F0 +:103E700090FB86F98093FA0181E10E94571E882306 +:103E800059F08091FA0187FB222720F991E09227CF +:103E900090FB87F98093FA018091FA010E94CD1F6F +:103EA0008091FA0187FB882780F980930D0187E2D2 +:103EB0000E94571EC82F8EE10E94571E8111C260BA +:103EC0008FE10E94571E8111C46080E20E94571E3C +:103ED0008111C86081E20E94571E8111C06182E297 +:103EE0000E94571E8111C06283E20E94571E8111F9 +:103EF000C06484E20E94571E882311F0C06802C08B +:103F0000CC2329F08C2F0E94C41F6C2F03C00E9469 +:103F1000C01F682F70E080E090E0CF910C94A41A4D +:103F2000CF9108956DEE7EEF80E090E00E94FE2537 +:103F300060E082E090E00E94EC2560E083E090E0A9 +:103F40000E94EC2560E084E090E00E94EC2560E0B7 +:103F500085E090E00C94EC2580E090E00E94E6255E +:103F600021E08D3E9E4F09F020E0822F089582E0EF +:103F700090E00C94DE25682F82E090E00C94EC2514 +:103F800083E090E00C94DE25682F83E090E00C94B1 +:103F9000EC2584E090E00C94DE25682F84E090E02E +:103FA0000C94EC258091E20180FF0BC0609113011D +:103FB00085E0689FB00111247595679575956795A3 +:103FC0002BC081FF09C06091130185E0689FB0019B +:103FD00011247595679520C082FF07C06091130179 +:103FE00085E0689FB001112417C09091E3019923E7 +:103FF000D1F060911201961788F72091130185E0A6 +:10400000289F90011124929FA001939F500D11248D +:1040100070E0CA010E94B0256038710540F4611556 +:10402000710539F002C065E070E0862F08958FE7D2 +:10403000089581E008958091E20180FF08C06091B9 +:10404000110170E0759567957595679521C081FFA1 +:1040500006C06091110170E07595679519C082FFE7 +:1040600004C06091110170E010C09091E3019923A8 +:10407000C1F0609110019617A0F780911101899FFE +:10408000C001112470E00E94B0256038710528F449 +:104090006115710521F0862F08958FE7089581E05D +:1040A000089561E070E0F4CF803F21F40E94D21FB8 +:1040B000819504C0813F29F40E94D21F8093E601BC +:1040C0000895823F21F40E94D21F819504C0833F4E +:1040D00029F40E94D21F8093E5010895893F19F4C5 +:1040E0000E941B2005C08A3F31F40E941B2081954D +:1040F0008093E70108958B3F21F40E941B20819556 +:1041000004C08C3F29F40E941B208093E80108958D +:10411000843F21F48091E401816017C0853F21F440 +:104120008091E401826011C0863F21F48091E40116 +:1041300084600BC0873F21F48091E401886005C052 +:10414000883F31F48091E40180618093E401089517 +:104150008D3F21F48091E20181600BC08E3F21F4FC +:104160008091E201826005C08F3F29F48091E201D5 +:1041700084608093E2010895803F39F48091E601E4 +:1041800087FF6CC01092E60169C0813F29F48091DD +:10419000E6011816BCF362C09091E501823F29F454 +:1041A00097FF5CC01092E50159C0833F19F41916BE +:1041B000CCF354C0893F41F48091E70118160CF00C +:1041C0004DC01092E7014AC08A3F29F48091E7016F +:1041D00087FF44C0F6CF8B3F39F48091E80187FF19 +:1041E0003DC01092E8013AC08C3F29F48091E8016B +:1041F0001816BCF333C0843F21F48091E4018E7F14 +:1042000017C0853F21F48091E4018D7F11C0863F66 +:1042100021F48091E4018B7F0BC0873F21F48091D2 +:10422000E401877F05C0883F31F48091E4018F7EEF +:104230008093E40113C08D3F21F48091E2018E7FD1 +:104240000BC08E3F21F48091E2018D7F05C08F3F2E +:1042500029F48091E2018B7F8093E2018091E50156 +:1042600081110EC08091E60181110AC08091E701A1 +:10427000811106C08091E801811102C01092E30112 +:10428000089584EE91E00E9462120E94AC1D90930A +:10429000E1018093E00108951F93CF93DF93809114 +:1042A000E0019091E1010E94B81DAC019091E30101 +:1042B000992321F02091140130E006C020911501CE +:1042C0008AE0289F900111244217530708F486C002 +:1042D0008091E501C091E601D091E7011091E801DC +:1042E000811107C0C11176C0D11174C0111172C003 +:1042F00075C09F3F19F09F5F9093E301181624F457 +:104300000E94D21F8093E5018091E50187FF05C0DF +:104310000E94D21F81958093E5011C1624F40E940F +:10432000D21F8093E6018091E60187FF05C00E94BD +:10433000D21F81958093E6016091E501662339F1F2 +:10434000C091E601CC2319F1772767FD7095872F7F +:10435000972F0E94C12423E333E343E35FE30E94EA +:1043600025250E948E246093E5016C2F772767FD39 +:104370007095872F972F0E94C12423E333E343E3F3 +:104380005FE30E9425250E948E246093E6011D169E +:1043900024F40E941B208093E7018091E70187FFAE +:1043A00005C00E941B2081958093E701111624F41B +:1043B0000E941B208093E8018091E80187FF05C0DF +:1043C0000E941B2081958093E801DF91CF911F917E +:1043D0000C9441219F3F09F08ECF96CFDF91CF9172 +:1043E0001F910895E4EEF1E085E0DF011D928A95CA +:1043F000E9F71092E3011092E2010895833081F110 +:1044000028F4813059F08230D1F00895853009F4D4 +:1044100049C0B8F1863009F456C00895809115015D +:10442000262F30E0280F311D2F3F310524F4680F6F +:104430006093150108958FEF809315010895809181 +:104440001401262F30E0280F311D2F3F310524F4B1 +:10445000680F6093140108958FEF809314010895FD +:1044600080911301262F30E0280F311D2F3F310599 +:1044700024F4680F6093130108958FEF8093130164 +:10448000089580911201262F30E0280F311D2F3F13 +:10449000310524F4680F6093120108958FEF809323 +:1044A0001201089580911101262F30E0280F311D4F +:1044B0002F3F310524F4680F6093110108958FEFA9 +:1044C00080931101089580911001262F30E0280F6C +:1044D000311D2F3F310524F4680F609310010895BA +:1044E0008FEF809310010895833011F128F481300B +:1044F00049F0823091F00895853081F120F18630C5 +:10450000C1F1089580911501681720F4861B8093EE +:1045100015010895109215010895809114016817EE +:1045200020F4861B809314010895109214010895BD +:1045300080911301681720F4861B8093130108955E +:1045400010921301089580911201681720F4861BC0 +:104550008093120108951092120108958091110123 +:10456000681720F4861B80931101089510921101A1 +:10457000089580911001681720F4861B8093100124 +:1045800008951092100108950F931F938D3109F42F +:104590006BC008F03FC08E3009F47FC0C0F4873094 +:1045A00009F469C068F4863009F0B1C08091DA017D +:1045B000817F8E7F8093DA0181E08093EA01A8C039 +:1045C000883009F4A2C08B3009F49FC0A0C08631A6 +:1045D00009F49BC078F4803109F472C0813109F08C +:1045E00096C00E94E41690910D0181E08927809386 +:1045F0000D018BC0893109F488C08B3109F087C067 +:104600008091DA0181FB222720F991E0922790FB2B +:1046100081F94CC0853309F470C048F4873209F43D +:104620006CC008F459C0893209F467C070C0833483 +:1046300038F48A3308F04EC0883309F466C067C086 +:10464000833409F45AC0883409F061C00E94E4162A +:104650000FEF13ED20E3015010402040E1F700C0C0 +:1046600000000E94071E51C00E9448240E944B1265 +:104670000E94440B4AC09091DA01892F8095817085 +:1046800080FB90F929F0966098609093DA0140C021 +:10469000997F977F9093DA0138C08091DA0182FB8D +:1046A000222720F991E0922790FB82F98093DA018A +:1046B000992359F18091DA0181608093DA0125C054 +:1046C0008091DA0183FB222720F991E0922790FB69 +:1046D00083F9ECCF895301C08D5141E050E060E097 +:1046E00070E08A019B0104C0000F111F221F331FBD +:1046F0008A95D2F7C901B80104C061E070E080E09A +:1047000090E00E94A41A0E94E41681E001C080E0BB +:104710001F910F91089580E0089580E00895CF9350 +:10472000C82F8091EA01813079F018F08230E9F1E8 +:1047300087C0E0910E01F0910F018081813169F015 +:10474000823209F07FC009C0E0910E01F0910F01A3 +:104750008081813111F0823261F48C2F0E948B2391 +:10476000811104C08C2F0E94C4221DC081E090E002 +:104770001AC08C2F0E948D23811114C0C43179F08E +:1047800048F4CB3079F0C03109F060C082E080930A +:10479000EA0108C0C93219F0C83321F057C010929D +:1047A000EA0154C081E0817053C0C93289F118F523 +:1047B000C43171F1A8F4C73009F046C08AE0809393 +:1047C000150194E19093140193E090931301809369 +:1047D000120188E08093110188E28093100134C0B7 +:1047E000CE51C63088F5EC2FF0E0E65DFE4F8081BB +:1047F0008093E90129C0CE34E9F020F4CB3421F5CF +:104800006AE013C0C13579F0C235F1F461E00DC042 +:104810008091E901882319F01092E90115C081E027 +:104820008093EA0115C061E006C08091E9010E9411 +:10483000FE210AC06AE08091E9010E94742204C04E +:104840001092EA0180E004C081E002C080E0ABCFBA +:10485000CF910895E1E8F0E08081886080838081D5 +:10486000816080838FB7F89493E09093890090EDF6 +:10487000909388008FBF0895EFE6F0E0808182601A +:1048800080830895EFE6F0E080818D7F8083089536 +:10489000EFE6F0E0908182E08927808308951F92FF +:1048A0000F920FB60F9211242F933F934F935F9364 +:1048B0006F937F938F939F93AF93BF93EF93FF93E8 +:1048C0008091EB019091EC0101969093EC01809323 +:1048D000EB01811103C082E00E94440BE091EC01E6 +:1048E000E695E695F0E0ED5AF64FE4918091EB0104 +:1048F0008E1303C080E00E94440BFF91EF91BF91A3 +:10490000AF919F918F917F916F915F914F913F9167 +:104910002F910F900FBE0F901F90189504D06894A0 +:10492000B1118DC0089570D088F09F5790F0B92FC5 +:104930009927B751A0F0D1F0660F771F881F991FF4 +:104940001AF0BA95C9F712C0B13081F077D0B1E052 +:10495000089574C0672F782F8827B85F39F0B93F62 +:10496000CCF3869577956795B395D9F73EF49095F6 +:104970008095709561957F4F8F4F9F4F0895E89474 +:1049800009C097FB3EF490958095709561957F4F97 +:104990008F4F9F4F9923A9F0F92F96E9BB27939545 +:1049A000F695879577956795B795F111F8CFFAF455 +:1049B000BB0F11F460FF1BC06F5F7F4F8F4F9F4F86 +:1049C00016C0882311F096E911C0772321F09EE8E4 +:1049D000872F762F05C0662371F096E8862F70E04A +:1049E00060E02AF09A95660F771F881FDAF7880F24 +:1049F0009695879597F9089557FD9058440F551F40 +:104A000059F05F3F71F04795880F97FB991F61F050 +:104A10009F3F79F087950895121613061406551FC7 +:104A2000F2CF4695F1DF08C0161617061806991F33 +:104A3000F1CF86957105610508940895E894BB2728 +:104A400066277727CB0197F908950BD078C069D0F6 +:104A500028F06ED018F0952309F05AC05FC01124D9 +:104A6000EECFCADFA0F3959FD1F3950F50E0551F0D +:104A7000629FF001729FBB27F00DB11D639FAA27B3 +:104A8000F00DB11DAA1F649F6627B00DA11D661F02 +:104A9000829F2227B00DA11D621F739FB00DA11D23 +:104AA000621F839FA00D611D221F749F3327A00DDD +:104AB000611D231F849F600D211D822F762F6A2F79 +:104AC00011249F5750408AF0E1F088234AF0EE0FFE +:104AD000FF1FBB1F661F771F881F91505040A9F70B +:104AE0009E3F510570F014C0AACF5F3FECF3983E93 +:104AF000DCF3869577956795B795F795E7959F5F72 +:104B0000C1F7FE2B880F911D9695879597F908950B +:104B100097F99F6780E870E060E008959FEF80EC70 +:104B2000089500240A941616170618060906089513 +:104B300000240A9412161306140605060895092E79 +:104B40000394000C11F4882352F0BB0F40F4BF2BE8 +:104B500011F460FF04C06F5F7F4F8F4F9F4F089528 +:104B600097FB072E16F4009407D077FD09D00E941A +:104B7000CA2507FC05D03EF4909581959F4F089576 +:104B8000709561957F4F0895EE0FFF1F0590F4918A +:104B9000E02D0994AA1BBB1B51E107C0AA1FBB1F34 +:104BA000A617B70710F0A61BB70B881F991F5A95B9 +:104BB000A9F780959095BC01CD010895F999FECF94 +:104BC00092BD81BDF89A992780B50895A8E1B0E01B +:104BD00042E050E00C940626262FF999FECF92BDB4 +:104BE00081BDF89A019700B4021639F01FBA20BDB2 +:104BF0000FB6F894FA9AF99A0FBE08950196272FE6 +:104C00000E94ED250C94EC25DC01CB01FC01F99907 +:104C1000FECF06C0F2BDE1BDF89A319600B40D9208 +:0C4C200041505040B8F70895F894FFCFC1 +:104C2C000220460BD40BB10B7D0B490B0101C701C4 +:104C3C0028080A03140A3F4D36391409C70891088D +:104C4C005808EB0704081D08360801020304050682 +:044C5C00070809003C +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/tm2030/keymap.c b/keyboards/ergodox_ez/keymaps/tm2030/keymap.c new file mode 100644 index 000000000..ca8075226 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/tm2030/keymap.c @@ -0,0 +1,242 @@ +/* TypeMatrix-2030-like keymap */ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "led.h" + +#define BASE 0 // default layer +#define DVRK 1 // Dvorak layer +#define NUMR 8 // numeric layer +#define FNLR 9 // fn layer + +#define MDBL0 1 +#define MFNLR 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | Del | | Del | 6 | 7 | 8 | 9 | 0 | ] | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T |Backsp| |Backsp| Y | U | I | O | P | [ | + * |--------+------+------+------+------+------|ace | |ace |------+------+------+------+------+--------| + * | LShift | A | S | D | F | G |------| |------| H | J | K | L | ; | '/Shift| + * |--------+------+------+------+------+------|Enter | |Enter |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | \/Shift| + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |LCtrl | fn | LGui | Play |App/Alt| | RAlt | - | Home | = |End/Ctl| + * `-----------------------------------' `-----------------------------------' + * ,--------------. ,-------------. + * |Esc/Alt| num | | Left |Right | + * ,------+-------+------| |------+------+------. + * | | | PgUp | | Up | | | + * |Space |LShift |------| |------|RShift|Space | + * | | | PgDn | | Down | | | + * `---------------------' `--------------------' + */ +// 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_Q, KC_W, KC_E, KC_R, KC_T, KC_BSPC, + KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ENT, + KC_LCTL, M(MFNLR), KC_LGUI,KC_MPLY,ALT_T(KC_APP), + + ALT_T(KC_ESC), TG(NUMR), + KC_PGUP, + KC_SPC, KC_LSFT, KC_PGDN, + + // right hand + KC_DELT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RBRC, + KC_BSPC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, SFT_T(KC_QUOT), + KC_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_BSLS), + KC_RALT, KC_MINS, KC_HOME, KC_EQL, CTL_T(KC_END), + + KC_LEFT, KC_RGHT, + KC_UP, + KC_DOWN, KC_RSFT, KC_SPC + ), +/* Dvorak layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | Del | | Del | 6 | 7 | 8 | 9 | 0 | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | ' | , | . | P | Y |Backsp| |Backsp| F | G | C | R | L | / | + * |--------+------+------+------+------+------|ace | |ace |------+------+------+------+------+--------| + * | LShift | A | O | E | U | I |------| |------| D | H | T | N | S | -/Shift| + * |--------+------+------+------+------+------|Enter | |Enter |------+------+------+------+------+--------| + * | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | \/Shift| + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |LCtrl | fn | LGui | Play |App/Alt| | RAlt | [ | Home | ] |End/Ctl| + * `-----------------------------------' `-----------------------------------' + * ,--------------. ,-------------. + * |Esc/Alt| num | | Left |Right | + * ,------+-------+------| |------+------+------. + * | | | PgUp | | Up | | | + * |Space |LShift |------| |------|RShift|Space | + * | | | PgDn | | Down | | | + * `---------------------' `--------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[DVRK] = 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, KC_BSPC, + KC_LSFT, KC_A, KC_O, KC_E, KC_U, KC_I, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_ENT, + KC_LCTL, M(MFNLR), KC_LGUI, KC_MPLY, ALT_T(KC_APP), + + ALT_T(KC_ESC), TG(NUMR), + KC_PGUP, + KC_SPC, KC_LSFT, KC_PGDN, + + // right hand + KC_DELT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + KC_BSPC, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, + KC_D, KC_H, KC_T, KC_N, KC_S, SFT_T(KC_MINS), + KC_ENT, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_T(KC_BSLS), + KC_RALT, KC_LBRC, KC_HOME, KC_RBRC, CTL_T(KC_END), + + KC_LEFT, KC_RGHT, + KC_UP, + KC_DOWN, KC_RSFT, KC_SPC + ), +/* Numeric Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | | | Tab | / | * | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | F6 | F7 | F8 | F9 | F10 | | | | | Home | 7 | 8 | 9 | + | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | F11 | F12 | | | |------| |------| Up | End | 4 | 5 | 6 | + | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | Left | Down | Right| 1 | 2 | 3 |KpEnter | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | 0 | 00 | . |Etr/Ctl| + * `----------------------------------' `-----------------------------------' + * ,-------------. ,-------------. + * | | | |n.lock|c.lock| + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[NUMR] = KEYMAP( + // left hand + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, + KC_TRNS, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_TAB, KC_PSLS, KC_PAST, KC_PMNS, + KC_TRNS, KC_TRNS, KC_HOME, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_UP, KC_END, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LEFT, KC_DOWN, KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_TRNS, KC_P0, M(MDBL0),KC_PDOT, CTL_T(KC_PENT), + + KC_NLCK, KC_CAPS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* fn layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | |Insert| |Insert|Eject |Power |Sleep | Wake |PrtScr|ScrollLk| + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | |VolUp | | | | | | | | Pause | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | Calc | Mail |Browsr|------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | cut | copy |paste | Mute |VolDn | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | Next | | | + * | Mute | |------| |------| | | + * | | | | | Prev | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[FNLR] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_MAIL, KC_WHOM, + KC_TRNS, KC_TRNS, LSFT(KC_DELT),LCTL(KC_INS),LSFT(KC_INS), KC_MUTE, KC_VOLD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_MUTE, KC_TRNS, KC_TRNS, + // right hand + KC_INS, KC_EJCT, KC_PWR, KC_SLEP, KC_WAKE, KC_PSCR, KC_SLCK, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_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_MNXT, KC_TRNS, KC_TRNS +), +}; + +const uint16_t PROGMEM fn_actions[] = { +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case MDBL0: + if (record->event.pressed) { + return MACRO( I(25), T(P0), T(P0), END ); + } + break; + case MFNLR: + layer_invert(NUMR); + layer_invert(FNLR); + 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) { + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + // led 1: numeric layer + if (layer_state & (1 << NUMR)) { + ergodox_right_led_1_on(); + } + // led 2: Dvorak layer + if (default_layer_state == 1 << DVRK) { + ergodox_right_led_2_on(); + } + // led 3: caps lock + if (host_keyboard_leds() & (1<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/keyboards/ergodox_ez/keymaps/tonyabra_osx/readme.md b/keyboards/ergodox_ez/keymaps/tonyabra_osx/readme.md new file mode 100644 index 000000000..f9d76efc2 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/tonyabra_osx/readme.md @@ -0,0 +1,5 @@ +# ErgoDox EZ OS X Simplified Configuration + +This keyboard configuration replaces the hyper and meh keys with the command key. It also removes all of the meta keys that require a "hold" because I found that I hesitate when I type, which can accidentally fire those combinations. On the upper left of the left hand, I mimicked the Mac placement of tab and escape, and on the upper right of the right hand, I placed an additional enter key for convenience when breezing through prompts. + +This is my standard working configuration for now, but I can see myself tweaking it as I use it more. I highly recommend you do the same. \ No newline at end of file diff --git a/keyboards/ergodox_ez/keymaps/townk_osx/compiled.hex b/keyboards/ergodox_ez/keymaps/townk_osx/compiled.hex new file mode 100644 index 000000000..c8db30edf --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/townk_osx/compiled.hex @@ -0,0 +1,1171 @@ +:100000000C9495020C94D9020C94D9020C94D90248 +:100010000C94D9020C94D9020C94D9020C94D902F4 +:100020000C94D9020C94D9020C94670E0C94390FDD +:100030000C94D9020C94D9020C94D9020C94D902D4 +:100040000C94D9020C94A3220C94D9020C94D902DA +:100050000C94D9020C94851D0C94D9020C94D902ED +:100060000C94D9020C94D9020C94D9020C94D902A4 +:100070000C94D9020C94D9020C94D9020C94D90294 +:100080000C94D9020C94D9020C94D9020C94D90284 +:100090000C94D9020C94D9020C94D9020C94D90274 +:1000A0000C94D9020C94D9020C94D902A60FC80F53 +:1000B000B610C80FB6100D103010B610851098107D +:1000C0006913691395139513D813F8135315531522 +:1000D00003145315B014B0144415531553154D158E +:1000E000BD14BD14BD14BD14BD14BD14BD14BD1488 +:1000F000BD14BD14BD14BD14BD14BD14BD14BD1478 +:10010000CE14DB14E214E914F314021902E3000123 +:10011000E3011900020602E30001E30106000213F5 +:100120000001E00104020402E001130002290001C1 +:10013000E00104020402E00129000000F4A2002210 +:1001400030A135002B003161C200C10000001E004B +:10015000140004001D0001534D001F001A0016007A +:100160001B00E0004C002000080007000600E20031 +:100170002A002100150009001900E3004A002200AE +:1001800017000A00050000000A3029006B67000014 +:100190006D6F00000B3066006C6700006E6F000032 +:1001A0000C3023001C000B00110000000D30240057 +:1001B00018000D001000E7004B0025000C000E0099 +:1001C0003600E6002C00260012000F0037002F61D9 +:1001D00028002700130033003800C3004E002D0014 +:1001E0002E003461C200C10000000000FF00FE00CC +:1001F000FD00000000000000000000000000010001 +:100200000000F400F900F200FB0000000000F5001F +:10021000F000F100000000000000F600FA00F3001A +:10022000FC000000000000000000000000000000D2 +:1002300000000000000000000000000000002B0291 +:100240002B0000005800000000009C005F005C00D4 +:10025000590000000000540060005D005A00620078 +:100260000000550061005E005B0063000000230297 +:100270005700560067008500010026022702000093 +:10028000000001000000000000000000000000006D +:100290000000000000003900E100010000003A0009 +:1002A000AD00B0000000000000003B00BC00AC004E +:1002B0000000010000003C00AF00AE0000000100A3 +:1002C00000003D00BB00AB000000010000003E004C +:1002D000000000000000000000003F0001000000DE +:1002E00001000000000040000100000001000000CB +:1002F000000041000000500000000000000042002B +:100300000000510000000100000043000000520006 +:10031000000001000000440000004F000000010048 +:100320000000450000000000000000000000A900DF +:10033000AA00A800E50001000000160345007200B5 +:1003400067006F0044006F007800200045005A00ED +:10035000000016034500720067006F0044006F0044 +:100360007800200045005A00000004030904090237 +:100370006D00040100A0FA0904000001030101005E +:100380000921110100012240000705810308000A2C +:1003900009040100010301020009211101000122E9 +:1003A0004D000705820308000A090402000103004A +:1003B000000009211101000122360007058303080E +:1003C000000A0904030001030000000921110100D3 +:1003D00001223900070584031000011201100100F9 +:1003E000000008EDFE0713010001020001050109EC +:1003F00006A101050719E029E715002501950875F3 +:1004000001810205081901290595057501910295DB +:10041000017503910105071900297715002501953C +:100420007875018102C005010980A10185021601CC +:100430000026B7001A01002AB70075109501810047 +:10044000C0050C0901A1018503160100269C021AB2 +:1004500001002A9C02751095018100C00501090266 +:10046000A1010901A10005091901290515002501AE +:10047000950575018102950175038101050109301A +:1004800009311581257F9502750881060938158186 +:10049000257F950175088106050C0A38021581250E +:1004A0007F950175088106C0C005010906A10105F7 +:1004B0000719E029E71500250195087501810295C6 +:1004C0000175088101050819012905950575019136 +:1004D000029501750391010507190029FF150026F2 +:1004E000FF00950675088100C000000000000000B4 +:1004F00000000000010204060A0F17202C3A4A5D92 +:1005000071879DB3C7DAE9F5FCFFFCF5E9DAC7B3FB +:100510009D87715D4A3A2C20170F0A0604020100DC +:100520000000000000000000000011241FBECFEFFB +:10053000DAE0DEBFCDBF04B603FE24C08091030223 +:1005400090910402A0910502B09106028730904B71 +:10055000A740B04BB9F4109203021092040210921B +:1005600005021092060214BE84B7877F84BF88E11B +:100570000FB6F89480936000109260000FBEE0E028 +:10058000FFE3099511E0A0E0B1E0E4EDF8E402C07A +:1005900005900D92A433B107D9F712E0A4E3B1E0BE +:1005A00001C01D92A330B107E1F70E94AF0B0C947C +:1005B00068240C9400001092B9008AE08093B8007F +:1005C000089594EA9093BC009091BC0097FFFCCFF3 +:1005D0009091B900987F983021F0903111F081E02E +:1005E00008958093BB0084E88093BC008091BC0098 +:1005F00087FFFCCF8091B900887F883111F080346B +:1006000071F780E0089584E98093BC008091BC007C +:1006100084FDFCCF08958093BB0084E88093BC00E8 +:100620008091BC0087FFFCCF9091B900987F81E05A +:10063000983209F480E0089584E88093BC008091AA +:10064000BC0087FFFCCF8091BB00089580B38C7005 +:1006500080BB81B3836F81BB0895809101018111BB +:1006600015C080E40E94E1028093010181110CC059 +:1006700082E10E940B0380930101811105C08FEF7D +:100680000E940B03809301010E94030384B1807FC9 +:1006900084B985B1807F85B98AB1837F8AB98BB1EE +:1006A000837F8BB93E98469808950E94F704809303 +:1006B00001010E942D030E942603A5E3B1E0E3E4BB +:1006C000F1E08EE08E0F11921D928E13FCCF0C94F0 +:1006D000E1040E94F704809301010E942D030E940F +:1006E0002603A5E3B1E0E3E4F1E08EE08E0F119282 +:1006F0001D928E13FCCF0895BF92CF92DF92EF929E +:10070000FF920F931F93CF93DF9380910101882372 +:1007100079F0809134018F5F80933401811108C09A +:100720000E94F70480930101811102C00E94890494 +:1007300005E311E0C0E0D0E0DD24D39482E0C82ED0 +:10074000EE24E394F12CC730D10500F5809101012E +:10075000811164C080E40E94E10280930101811153 +:1007600012C082E10E940B038093010181110BC032 +:10077000C7010C2E01C0880F0A94EAF780950E94E9 +:100780000B03809301010E94030348C0CA30A1F00B +:1007900028F4C83059F0C93061F005C0CC3089F078 +:1007A00070F0CD3089F0209A289810C0219A2998AD +:1007B0000DC0229A2A980AC0239A2B9807C0529AF1 +:1007C00001C0539A5B9802C03E9A469890EA9A9567 +:1007D000F1F79FB1799902C082E001C080E0917089 +:1007E0009D25982B7C9902C084E001C080E0892B74 +:1007F0007D9902C038E001C030E0832B7E9902C0B1 +:1008000020E101C020E0822B9FB19095991F99278C +:10081000991F9295990F907E892B0FC080910101AD +:10082000811149C080E40E94E10280930101882384 +:1008300079F1B12C0E9403038B2DF8019081981758 +:1008400019F08083C09200010E942D0321960F5F52 +:100850001F4FCE30D10509F076CF8091000188235B +:1008600061F1815080930001882339F08FE99FE086 +:100870000197F1F700C0000020C0A3E4B1E0E5E378 +:10088000F1E0CF01825F91919D938E13FCCF15C053 +:1008900083E10E940B03809301018111CACF81E49F +:1008A0000E94E102809301018111C3CF0E941C03C9 +:1008B000B82EB094BFCF80E0C0CF0E94870481E003 +:1008C000DF91CF911F910F91FF90EF90DF90CF902C +:1008D000BF900895E82FF0E0ED5BFE4F8081089512 +:1008E00008950F931F93CF93DF93C3E4D1E010E0FB +:1008F0000C2F025F899190E00E94AC1C180F0C1322 +:10090000F9CF812FDF91CF911F910F9108950C9412 +:100910007A0556985E9825982D9826982E982798AF +:100920002F988FEF90E090938900809388009093A8 +:100930008B0080938A0090938D0080938C00259A81 +:100940002D9A2FEF80E792E0215080409040E1F710 +:1009500000C00000269A2E9A2FEF80E792E02150E7 +:1009600080409040E1F700C00000279A2F9A2FEFB7 +:1009700080E792E0215080409040E1F700C0000005 +:1009800025982D982FEF80E792E0215080409040ED +:10099000E1F700C0000026982E982FEF80E792E044 +:1009A000215080409040E1F700C0000027982F9828 +:1009B00056985E9825982D9826982E9827982F98C7 +:1009C000089589EA8093800089E0809381002498CB +:1009D0002C983F988AB18F748AB96E98479A8BB1D8 +:1009E000806B8BB9769A0E9489040C94790580E219 +:1009F000809301018091510181110EC00E94DB02A0 +:100A000081E0809351012FEF83ED90E321508040EE +:100A10009040E1F700C0000080E40E94E102809372 +:100A2000010181112EC00E940B03809301018111ED +:100A300028C00E940B0380930101811122C08FE323 +:100A40000E940B038093010181111BC00E940303CC +:100A500080E40E94E10280930101811112C08CE0C8 +:100A60000E940B038093010181110BC00E940B03B4 +:100A700080930101811105C08FE30E940B038093D5 +:100A800001010E940303809101010895FC016B3074 +:100A900079F018F46A3031F01DC06C3079F06D30A7 +:100AA00099F018C08281811118C08CE291E00895FC +:100AB0008281811115C08EE191E0089582818111BA +:100AC00012C084E191E00895828181110FC08AE013 +:100AD00091E0089580E090E008958FE291E008951C +:100AE00081E291E0089589E191E008958FE091E03D +:100AF00008950895CF936091BF017091C0018091D6 +:100B0000C1019091C2010E94B81CC82F56985E98EE +:100B100025982D9826982E9827982F988FE090E06A +:100B2000909389008093880090938B0080938A0033 +:100B300090938D0080938C00CC2329F0C13029F450 +:100B4000C093520102C01092520180915201813033 +:100B500011F4279A2F9A0E94EF10867011F0259AAF +:100B60002D9AC23041F40E94351B811104C0279890 +:100B70002F98269A2E9AE0910E01F0910F01808114 +:100B8000982F927259F08D7D49F48FEF90E09093F9 +:100B9000890080938800259A2D9A08C00E94621CC3 +:100BA000827221F00E94081B882379F3CF91089567 +:100BB00081E0089581E008950C94DA050895282FC6 +:100BC000882339F090E02A3010F44D960895069766 +:100BD000089587E290E00895AF92BF92DF92EF927E +:100BE000FF920F931F93CF93DF938C01FC01C08181 +:100BF000D181CE010E94B11ABE010E945C09EC01B4 +:100C0000B8010E94DC05882309F4C9C1F80182817A +:100C1000882309F4BEC080915F0181111FC0C431D7 +:100C2000F0E7DF0709F0B5C10E94DE0581E080939F +:100C30005F010E944F1D90935E0180935D011092B1 +:100C40005601109258011092570110925A011092B9 +:100C5000590110925C0110925B01A1C180915D016C +:100C600090915E010E945B1D883C910570F480911B +:100C70005601E82FF0E0EE0FFF1FE95AFE4FD18337 +:100C8000C0838F5F809356018AC1C13020E8D207AC +:100C900008F451C0F8018281882309F47EC05E0106 +:100CA000E894B7F880915501813079F050F08230A6 +:100CB000C1F482EE0E940B1287E50E940B1287E5B9 +:100CC0000EC082EE0E940B120CC080EE0E940B122E +:100CD00081EE0E940B1288E10E940B1288E10E94B3 +:100CE000D3128CE0E82EF12CC5010E2C02C0969593 +:100CF00087950A94E2F78F700E94DF05D82E0E9434 +:100D00000B128D2D0E94D312F4E0EF1AF1082CEF94 +:100D1000E2162FEFF20641F780915501813029F05C +:100D200010F0823041F482EE04C080EE0E94D312B3 +:100D300081EE0E94D312C43180E7D80768F4C23034 +:100D400090E7D90708F046C0C115E0E7DE0771F06B +:100D5000C130D047A1F10CC1C33320E7D20709F459 +:100D6000D8C0C433D04709F4EBC002C1F801828176 +:100D7000882309F402C10E94B815FFEF24E38CE038 +:100D8000F15020408040E1F700C000000E94AA1D01 +:100D900006C1C13080E8D80770F2C43120E7D2071D +:100DA00008F0B3C0C23080E7D807A0F4C11590E7BF +:100DB000D90709F4E2C0C130D04709F0D9C0F80121 +:100DC0008281882309F4D9C08091E10181608093F8 +:100DD000E101E5C0F8018281882309F4CEC00E94B8 +:100DE000041E811102C00E94EA1D0E94171E90E09D +:100DF0009093F5018093F401C230F0E7DF0721F40E +:100E00008091F40181607AC0C33020E7D20721F4D9 +:100E10008091F401826072C0C43080E7D80721F469 +:100E20008091F40184606AC0C53090E7D90719F455 +:100E30008091F40127C0C630E0E7DE0721F48091FD +:100E4000F40180615BC0C730F0E7DF0721F48091D7 +:100E5000F401806253C0C83020E7D20721F48091AA +:100E6000F40180644BC0C93080E7D80721F4809139 +:100E7000F401806843C0CA3090E7D90729F4809113 +:100E8000F401846088603AC0CB30E0E7DE0721F4EB +:100E90008091F4018E7F32C0CC30F0E7DF0721F47F +:100EA0008091F4018D7F2AC0CD3020E7D20721F454 +:100EB0008091F4018B7F22C0CE3080E7D80719F4EF +:100EC0008091F4011AC08091F401CF3090E7D907E6 +:100ED00011F48F7E13C0C031E0E7DE0711F48F7D7F +:100EE0000DC0C131F0E7DF0711F48F7B07C0C231BD +:100EF000D04711F48F7702C08B7F877F8093F401F6 +:100F00008091F4010E941B1E4AC0C333F0E7DF0743 +:100F1000A1F4F8018281882321F01092530182E02C +:100F200016C080915301811106C086E20E940B1207 +:100F300086E20E94D31282E018C0C433D047C1F4C5 +:100F4000F8018281882331F01092540180E20E94DE +:100F5000221325C080915401811106C087E20E94AE +:100F60000B1287E20E94D31280E20E94291317C05D +:100F700081E08093530180935401C801DF91CF91A8 +:100F80001F910F91FF90EF90DF90BF90AF900C9466 +:100F9000D805C130F0E8DF0708F081CECCCE80E084 +:100FA000DF91CF911F910F91FF90EF90DF90BF9055 +:100FB000AF90089526E0729FF001112444E5849FCC +:100FC000E00DF11D1124E60FF11DEE0FFF1FEE5B8A +:100FD000FE4F859194910E946E09811560E49607F9 +:100FE000B0F5811570E3970708F0DEC0803E9105EB +:100FF000D8F4803C910508F06CC0883A910578F4EB +:10100000853A910508F06BC08130910509F452C111 +:1010100008F40FC18430910508F04CC10AC18B3B24 +:10102000910508F467C005C18F3F910509F048F4A8 +:10103000803F910508F0ADC0883E910508F43AC1A3 +:10104000F8C0811520E2920708F0A5C00895811527 +:1010500043E5940790F4811562E5960708F0C8C04F +:10106000811571E5970708F0BEC0811520E592074C +:1010700008F09DC09F70906A0895811545E594071A +:10108000D8F4811564E5960708F0C8C0482F469546 +:10109000469570E2479FA00111248370992721E0B3 +:1010A00030E0B90102C0660F771F8A95E2F7CB01E5 +:1010B000842B952B9A680895811576E5970708F497 +:1010C000B2C09C0130562115304108F0B2C09F706B +:1010D000AEC0FC01EE0FFF1FE654F04062C0853A3F +:1010E000910509F4A9C0863A910509F0A8C082E8E3 +:1010F00090E40895883A910509F4A4C0893A9105CD +:1011000009F4A3C08A3A910509F4A2C08B3A91056B +:1011100009F4A1C08C3A910509F4A0C08D3A91055B +:1011200009F49FC0803B910509F49EC08E3A910559 +:1011300009F49DC08F3A910509F49CC0813B91054B +:1011400009F49BC0823B910509F49AC0833B910549 +:1011500009F499C0843B910509F498C0853B910539 +:1011600009F497C0863B910509F496C0873B910529 +:1011700009F495C0883B910509F494C0893B910519 +:1011800009F493C08A3B910509F492C080E094E48D +:10119000089590650895FC01FF70EE0FFF1FE65C57 +:1011A000FE4F8591949108959927906C0895482F4A +:1011B000437021E030E002C0220F331F4A95E2F76E +:1011C0003C68AC0164E0569547956A95E1F7437039 +:1011D000342B8F708695869560E2869FC00111241E +:1011E000822B932B0895982F8827816F906A0895FA +:1011F000482F4695469570E2479FA00111248370C1 +:10120000992721E030E0B90102C0660F771F8A9567 +:10121000E2F7CB01842B952B9C680895982F8827A3 +:10122000846F906A08958F719927982F882790620C +:10123000089580E090E0089581E890E4089583E8BF +:1012400090E4089582EE94E4089589EE94E408957C +:101250008AEE94E4089585EB94E4089586EB94E493 +:10126000089587EB94E408958CEC94E408958DEC54 +:1012700094E4089583E895E408958AE895E4089550 +:1012800082E995E4089584E995E4089581E296E47D +:10129000089583E296E4089584E296E4089585E251 +:1012A00096E4089586E296E4089587E296E4089528 +:1012B0008AE296E40895089596E0799FF00111245A +:1012C00094E5899FE00DF11D1124E60FF11DEE0F4D +:1012D000FF1FEE5BFE4F8591949108958238910532 +:1012E00049F1B0F48133910509F458C048F48932CA +:1012F000910509F44EC08A32910509F454C008954D +:101300008533910509F440C08933910599F008951A +:10131000833E910529F138F4803E910591F0823E9B +:101320009105A1F00895863E9105F9F0873E91055B +:1013300031F108952091F40120FD3AC021FD38C01B +:1013400008958091F40180FD35C032C08091F40190 +:1013500082FF32C08091F40184FD30C083EE39C039 +:101360008091F40182FD28C0F5CF8091F40183FFC4 +:1013700027C08091F40184FD21C087EE2AC08091AE +:10138000F40183FD1DC0F5CF8091F40185FD1AC0E5 +:101390001BC08091F40185FD17C014C08091F40139 +:1013A00086FD14C015C08091F40186FD11C00EC0E9 +:1013B00080EE0FC089E30DC082EE0BC080E009C053 +:1013C00086EE07C089E205C085E303C08AE201C05A +:1013D00081E390E0089508950C94EB0980917001E9 +:1013E0000895CF93DF9300D01F92CDB7DEB79C0155 +:1013F0008091FA01843019F593E099833B832A8325 +:101400009093E9008FEF9091E800815095FD06C020 +:1014100095ED9A95F1F700008111F5CF8091E800E4 +:1014200085FF0DC040E050E063E070E0CE01019622 +:101430000E94570C8091E8008E778093E8000F900F +:101440000F900F90DF91CF910895CF93DF9300D04D +:101450001F92CDB7DEB72091FA01243021F522E0AA +:1014600029839B838A8383E08093E9008FEF9091A7 +:10147000E800815095FD06C095ED9A95F1F70000C2 +:101480008111F5CF8091E80085FF0DC040E050E06C +:1014900063E070E0CE0101960E94570C8091E80055 +:1014A0008E778093E8000F900F900F90DF91CF918F +:1014B00008952091FA012430F1F422E02093E9000C +:1014C0002FEF3091E800215035FD06C035ED3A95FB +:1014D000F1F700002111F5CF2091E80025FF0BC0A6 +:1014E00040E050E065E070E00E94570C8091E80019 +:1014F0008E778093E8000895CF93DF93EC0190916D +:10150000FA01943009F046C080910C018823D9F08B +:1015100080910D018823B9F09093E9008FEF9091AD +:10152000E800815095FD06C095E19A95F1F700001D +:101530008111F5CF8091E80085FF2CC040E050E09C +:1015400060E170E017C081E08093E9008FEF909137 +:10155000E800815095FD06C095ED9A95F1F70000E1 +:101560008111F5CF8091E80085FF14C040E050E084 +:1015700068E070E0CE010E94570C8091E8008E7701 +:101580008093E80080E1FE01A0E6B1E001900D92B9 +:101590008A95E1F7DF91CF9108958091F90181114A +:1015A00009C00E94EC0D0E94490E8091E200846007 +:1015B0008093E20008951092F901089508950C9423 +:1015C00090220E94401D0E9496220E94EF100C94CF +:1015D000EC0942E061EC81E00E94660D42E061ECC2 +:1015E00082E00E94660D42E061EC83E00E94660D9D +:1015F00042E161EC84E00C94660D8091FC01833043 +:1016000009F455C030F4813071F0823009F48EC095 +:1016100008958A3009F47AC08B3009F460C08930AB +:1016200009F09CC020C08091FB01813A09F096C06E +:101630008091E800877F8093E8008091FF0190917E +:101640000002892B21F460E180E691E003C060E0B4 +:1016500080E090E070E00E94A20C8091E8008B771F +:101660008093E80008958091FB01813209F076C0F3 +:101670008091FF0190910002009719F0039709F003 +:101680006DC08091E800877F8093E8008091E8003A +:1016900082FD05C08091FA018111F8CF5FC0809171 +:1016A000F100809370018091E8008B7753C08091A6 +:1016B000FB01813A09F052C08091FF019091000234 +:1016C000892B09F04BC08091E800877F8093E80068 +:1016D0008091E80080FFFCCF80910C0136C08091A2 +:1016E000FB018132D9F58091FF0190910002892B95 +:1016F000A9F58091E800877F8093E8000E949B0D08 +:101700008091FD0180930C010C94B8158091FB0130 +:10171000813221F58091E800877F8093E8000E9464 +:101720009B0D8091FE018093710108958091FB01D2 +:10173000813AA1F48091E800877F8093E80080914E +:10174000E80080FFFCCF809171018093F1008091CF +:10175000E8008E778093E8000C949B0D089584B781 +:10176000877F84BF88E10FB6F89480936000109261 +:1017700060000FBE80E880936100109261000E94BB +:101780003E110E94EC0D0E94490E8091E20084609F +:101790008093E20078940E94CF100E94401182E072 +:1017A00091E00E94EA100E947E228091FA01853029 +:1017B00069F40E94081D8091F8018823B1F30E940A +:1017C000321D882391F30E94410CEFCF0E944611F5 +:1017D000ECCF292F332723303105C9F064F42130B1 +:1017E000310581F02230310509F043C08DE690E0EB +:1017F0002EE633E042C021323105F1F022323105CC +:1018000041F137C082E190E02BED33E036C09927FB +:101810008130910541F08230910541F0892B49F5E5 +:10182000EAE6F3E005C0E2E5F3E002C0EAE3F3E054 +:10183000849190E09F0121C06430D8F4E62FF0E05D +:10184000EE0FFF1FEE5DFE4F2081318189E090E0B9 +:1018500014C0643070F470E0FB01EE0FFF1FE65E11 +:10186000FE4F20813181FB01EA5EFE4F808190E0D6 +:1018700004C080E090E020E030E0FA013183208372 +:10188000089580E189BD82E189BD09B400FEFDCFE4 +:101890008091D8008F7D8093D8008091E000826095 +:1018A0008093E0008091E00081FDFCCF0895CF920D +:1018B000DF92EF92FF920F931F93CF93DF93EC0190 +:1018C0008B016A010E94BA0D811133C0C114D10489 +:1018D00039F0F60180819181081B190BC80FD91FBF +:1018E000E12CF12C0115110519F18091E80085FD1D +:1018F00016C08091E8008E778093E800C114D1046F +:1019000049F0F60180819181E80EF91EF182E082B2 +:1019100085E00FC00E94BA0D882321F30AC0899187 +:101920008093F10001501109FFEFEF1AFF0ADACF9F +:1019300080E0DF91CF911F910F91FF90EF90DF90AA +:10194000CF900895209101023091020226173707A7 +:1019500048F06115710539F42091E8002E77209345 +:10196000E80001C0B90140E061157105A9F12091BD +:10197000FA01222309F443C0253009F442C0209122 +:10198000E80023FD40C02091E80022FD32C02091F4 +:10199000E80020FFE9CF4091F3002091F20030E011 +:1019A000342BFC01CF016115710559F02830310548 +:1019B00040F481918093F100615071092F5F3F4F96 +:1019C000F1CF41E02830310509F040E02091E800F6 +:1019D0002E772093E800C8CF4111C9CF0AC080916B +:1019E000FA01882361F0853061F08091E80083FD81 +:1019F0000AC08091E80082FFF2CF80E0089582E083 +:101A0000089583E0089581E00895209101023091C6 +:101A100002022617370748F06115710539F4209145 +:101A2000E8002E772093E80001C0B901FC0120E016 +:101A30006115710591F18091FA01882309F440C084 +:101A4000853009F43FC08091E80083FD3DC080915E +:101A5000E80082FD2FC08091E80080FFE9CF20914F +:101A6000F3008091F20090E0922B6115710559F01E +:101A70008830910540F424912093F1003196615013 +:101A800071090196F2CF21E0089709F020E08091DA +:101A9000E8008E778093E800CBCF2111CCCF0AC02D +:101AA0008091FA01882361F0853061F08091E8002F +:101AB00083FD0AC08091E80082FFF2CF80E00895A4 +:101AC00082E0089583E0089581E00895982F97308B +:101AD00058F59093E900981739F07091EC00209137 +:101AE000ED005091F00003C0242F762F50E021FF2D +:101AF00019C03091EB003E7F3093EB003091ED0048 +:101B00003D7F3093ED003091EB0031603093EB007E +:101B10007093EC002093ED005093F0002091EE00C4 +:101B200027FF07C09F5FD3CF8F708093E90081E0CC +:101B3000089580E008958091FB0187FF11C0809196 +:101B4000E80082FD05C08091FA018111F8CF11C033 +:101B50008091E8008B770BC08091FA01882349F0CF +:101B60008091E80080FFF8CF8091E8008E77809325 +:101B7000E80008952091E4003091E50095E6409159 +:101B8000EC00842F817040FF22C08091E80080FD2E +:101B90001CC08091FA01882391F0853091F08091EA +:101BA000EB0085FD10C04091E4005091E500421724 +:101BB000530729F39A01915011F784E0089582E0C8 +:101BC000089583E0089581E0089580E008954091AC +:101BD000E80042FFDECF08950E945A0E0E94620E76 +:101BE000E0EEF0E0808181608083E8EDF0E08081CC +:101BF0008F77808319BCA7EDB0E08C918E7F8C939A +:101C000080818F7E80831092F90108950F931F9336 +:101C1000CF93DF930E945A0E0E94620EC8EDD0E06F +:101C200088818F77888388818068888388818F7D89 +:101C3000888319BC1092FA011092F6011092F801F3 +:101C40001092F70100EE10E0F80180818B7F808315 +:101C500088818160888342E060E080E00E94660DB8 +:101C6000E1EEF0E080818E7F8083E2EEF0E0808123 +:101C700081608083808188608083F80180818E7F8D +:101C80008083888180618883DF91CF911F910F913C +:101C90000895E8EDF0E080818F7E8083E7EDF0E04D +:101CA00080818160808384E082BF81E08093F9013C +:101CB0000C94060EE8EDF0E080818E7F8083109218 +:101CC000E20008951092DA001092E10008951F9248 +:101CD0000F920FB60F9211242F933F934F935F9360 +:101CE0006F937F938F939F93AF93BF93EF93FF93E4 +:101CF0008091E10082FF0BC08091E20082FF07C06B +:101D00008091E1008B7F8093E1000E94CE10809152 +:101D1000DA0080FF1FC08091D80080FF1BC0809137 +:101D2000DA008E7F8093DA008091D90080FF0DC0A9 +:101D300080E189BD82E189BD09B400FEFDCF81E06B +:101D40008093FA010E94CD0A05C019BC1092FA01D5 +:101D50000E94DB0A8091E10080FF19C08091E200BF +:101D600080FF15C08091E2008E7F8093E200809119 +:101D7000E20080618093E2008091D80080628093CD +:101D8000D80019BC85E08093FA010E94DF0A809197 +:101D9000E10084FF30C08091E20084FF2CC080E12C +:101DA00089BD82E189BD09B400FEFDCF8091D800D4 +:101DB0008F7D8093D8008091E1008F7E8093E10039 +:101DC0008091E2008F7E8093E2008091E20081604A +:101DD0008093E2008091F601882311F084E007C02F +:101DE0008091E30087FD02C081E001C083E0809321 +:101DF000FA010E94E10A8091E10083FF29C08091ED +:101E0000E20083FF25C08091E100877F8093E1009D +:101E100082E08093FA011092F6018091E1008E7FBA +:101E20008093E1008091E2008E7F8093E2008091B8 +:101E3000E20080618093E20042E060E080E00E9486 +:101E4000660D8091F00088608093F0000E94DE0AA9 +:101E5000FF91EF91BF91AF919F918F917F916F9182 +:101E60005F914F913F912F910F900FBE0F901F9058 +:101E700018951F920F920FB60F9211242F933F9334 +:101E80004F935F936F937F938F939F93AF93BF9382 +:101E9000CF93DF93EF93FF93C091E900CF708091D0 +:101EA000EC00D82FD17080FDD0E81092E90080912D +:101EB000F000877F8093F00078940E947D0F10924D +:101EC000E9008091F00088608093F000CD2BCF7006 +:101ED000C093E900FF91EF91DF91CF91BF91AF9156 +:101EE0009F918F917F916F915F914F913F912F9132 +:101EF0000F900FBE0F901F9018951F93CF93DF93F5 +:101F0000CDB7DEB7AA970FB6F894DEBF0FBECDBF30 +:101F1000EBEFF1E088E08E0F9091F10091938E133A +:101F2000FBCF0E94FD0A8091E80083FF1FC18091D2 +:101F3000FB019091FC01492F50E04A30510508F017 +:101F400015C1FA01EA5AFF4F0C941824803881F029 +:101F5000823809F00BC18091FF018F708093E900F6 +:101F60008091EB0085FB882780F91092E90006C07C +:101F70008091F7019091F801911182609091E800B1 +:101F8000977F9093E8008093F1001092F100C8C011 +:101F9000282F2D7F09F0EAC0882319F0823061F0E4 +:101FA000E5C08091FD01813009F0E0C0933009F077 +:101FB00080E08093F8012BC08091FD01811127C042 +:101FC0008091FF018F7009F4D1C08093E9002091C6 +:101FD000EB0020FF1CC0933021F48091EB00806265 +:101FE00014C09091EB0090619093EB0021E030E001 +:101FF000A90102C0440F551F8A95E2F74093EA00F9 +:102000001092EA008091EB0088608093EB001092C0 +:10201000E9008091E800877F86C08111A7C01091F8 +:10202000FD011F778091E3008078812B8093E3008E +:102030008091E800877F8093E8000E949B0D80914B +:10204000E80080FFFCCF8091E30080688093E3008C +:10205000111102C082E001C083E08093FA0186C0C2 +:102060008058823008F082C08091FD019091FE017D +:102070008C3D53E0950779F583E08A838AE2898372 +:102080004FB7F894DE01139620E03EE051E2E32FD3 +:10209000F0E050935700E49120FF03C0E295EF7009 +:1020A0003F5FEF708E2F90E0EA3010F0C79601C0CE +:1020B000C0968D939D932F5F243149F74FBF809138 +:1020C000E800877F8093E8006AE270E0CE01019625 +:1020D0000E94A20C14C0AE014F5F5F4F6091FF01E0 +:1020E0000E94E90BBC01009709F440C09091E80000 +:1020F000977F9093E80089819A810E94050D8091D5 +:10210000E8008B778093E80031C0803879F58091C2 +:10211000E800877F8093E8008091F6018093F100CA +:102120008091E8008E778093E8000E949B0D1EC08E +:1021300081111CC09091FD019230C0F48091E800A3 +:10214000877F8093E8009093F6010E949B0D809119 +:10215000F601811106C08091E30087FD02C081E095 +:1021600001C084E08093FA010E94E90A8091E800AE +:1021700083FF0AC08091E800877F8093E800809108 +:10218000EB0080628093EB00AA960FB6F894DEBF56 +:102190000FBECDBFDF91CF911F9108950895CF93CA +:1021A0008091FA018823A1F0C091E900CF7090914D +:1021B000EC00892F817090FD80E8C82B1092E90017 +:1021C0008091E80083FD0E947D0FCF70C093E900ED +:1021D000CF91089590937701809376010895E091CF +:1021E0007601F0917701309721F00190F081E02D98 +:1021F000099480E00895E0917601F091770130979D +:1022000021F00280F381E02D09940895E091760198 +:10221000F0917701309721F00480F581E02D099449 +:10222000089520917401309175018217930771F020 +:102230009093750180937401E0917601F09177019C +:10224000309721F00680F781E02D099408952091C0 +:102250007201309173018217930771F090937301AB +:1022600080937201E0917601F0917701309721F02F +:102270000084F185E02D0994089508950C943D1192 +:102280000E94461D0E9455030C94CC1D9F92AF9254 +:10229000BF92CF92DF92EF92FF920F931F93CF9353 +:1022A000DF9300D000D000D0CDB7DEB70E947C0312 +:1022B0000DE010E0AA24A394B12C902E802F0E9450 +:1022C0006A04980127583E4F6901F901F080F82609 +:1022D000A1F40150110988F78FEF89838A831B824B +:1022E0000E944F1D8160782F9D838C8349815A8184 +:1022F0006B818D810E94DD112FC09091E10191FFD2 +:1023000004C08E830E9470048E8125E030E0A50118 +:10231000022E01C0440F0A94EAF7E42E4F21C1F0C7 +:1023200029839A828E2191E009F490E09B830E9498 +:102330004F1D8160782F9D838C8349815A816B81E9 +:102340008D810E94DD11F6018081E826E08204C0C3 +:1023500021503109E0F6BDCF0E949A1F10917801FB +:102360000E94EF101817B9F00E94EF1080937801C7 +:1023700026960FB6F894DEBF0FBECDBFDF91CF918A +:102380001F910F91FF90EF90DF90CF90BF90AF9093 +:102390009F900C94EC0926960FB6F894DEBF0FBE02 +:1023A000CDBFDF91CF911F910F91FF90EF90DF9004 +:1023B000CF90BF90AF909F900895CF93DF93CDB70C +:1023C000DEB72B970FB6F894DEBF0FBECDBF4F839D +:1023D000588769877A878B87DE01119686E0FD0131 +:1023E00011928A95E9F785E0FE01379601900D92EA +:1023F0008A95E1F749815A816B817C818D819E812B +:102400000E9456182B960FB6F894DEBF0FBECDBFB4 +:10241000DF91CF910895CF93882309F4C2C0C82FCC +:10242000823859F40E94EF1081FDBBC089E30E94FD +:10243000991B0E94761C89E30CC0833879F40E94B2 +:10244000EF1080FDAEC083E50E94991B0E94761CB0 +:1024500083E50E94DB1BCF910C94761C843859F4E1 +:102460000E94EF1082FD9DC087E40E94991B0E948C +:10247000761C87E4EECF8CEF8C0F813A48F48C2FDA +:102480000E94E42181118DC08C2F0E94991BE3CF03 +:1024900080E28C0F883048F4C77081E001C0880F5B +:1024A000CA95EAF70E94221CD6CF8BE58C0F8330A9 +:1024B00078F4C53A29F0C63A31F083E890E005C0D7 +:1024C00081E890E002C082E890E0CF910C94111175 +:1024D00088E58C0F833108F064C0C83A39F1C93AF5 +:1024E00041F1CA3A49F1CB3A51F1CC3A59F1CD3ADE +:1024F00061F1C03B69F1CE3A71F1CF3A79F1C13B5C +:1025000081F1C23B89F1C33B91F1C43B99F1C53BD9 +:10251000A1F1C63BA9F1C73BB1F1C83BB9F1C93B39 +:10252000C1F1CA3BC9F180E090E038C082EE90E092 +:1025300035C089EE90E032C08AEE90E02FC085EB86 +:1025400090E02CC086EB90E029C087EB90E026C09D +:102550008CEC90E023C08DEC90E020C083E891E00B +:102560001DC08AE891E01AC082E991E017C084E9B1 +:1025700091E014C081E292E011C083E292E00EC0CB +:1025800084E292E00BC085E292E008C086E292E02D +:1025900005C087E292E002C08AE292E0CF910C94FB +:1025A0002711CF910895882309F44BC0823859F43C +:1025B0000E94EF1081FF45C089E30E94991B0E9491 +:1025C000761C89E30CC0833871F40E94EF1080FF01 +:1025D00038C083E50E94991B0E94761C83E50E9407 +:1025E000DB1B0C94761C843859F40E94EF1082FF98 +:1025F00028C087E40E94991B0E94761C87E4EFCFD5 +:102600009CEF980F913A58F390E2980F983050F45D +:10261000877091E001C0990F8A95EAF7892F0E948F +:10262000281CDFCF9BE5980F933020F480E090E0EA +:102630000C941111885A833120F480E090E00C94BE +:1026400027110895882321F00E94221C0C94761CE7 +:102650000895882321F00E94281C0C94761C08956C +:102660008F929F92AF92BF92DF92EF92FF920F9361 +:102670001F93CF93DF937C01D62FC72FFC010281DC +:10268000158112951F700E94351B882319F082E076 +:102690000E94771B01110E943F1C0E94921B8823FD +:1026A00079F0002369F080E28D0F883048F082E0F5 +:1026B0000E94771B0E94921B91E0D82ED92601C060 +:1026C000D12CEC2FE295EF70F0E0E05AFF4F0C9424 +:1026D00018248C2F807FCF70882311F0C295C07F83 +:1026E000002389F0CC2309F4C4C180E28D0F883027 +:1026F00020F48C2F0E94221C03C08C2F0E94321CBD +:102700000E94761CB6C18D2F0E94D312CC2309F4EF +:10271000CAC1D05E8C2FD83018F40E94281C02C089 +:102720000E94381C0E94761CBEC18C2F807FCF7007 +:10273000803211F0C295C07FDD2319F0D13029F12C +:102740002DC0002381F0112369F1113021F48C2F69 +:102750000E94521CA8C1123029F50E945B1C8C2FCC +:102760000E94021B1FC0112369F0113041F40E9426 +:102770001F1C8C2309F497C10E94051B03C0123053 +:1027800009F491C10E945B1C11C0002321F012309A +:1027900008F089C107C0111186C108C0002321F0CB +:1027A000111167C18C2FF1C011116AC18C2FF3C0B8 +:1027B0008C2F86958695837090E0009719F001978D +:1027C00061F071C1002321F08D2F9C2F937002C006 +:1027D00080E090E00E94111166C1002321F08D2F4E +:1027E0009C2F937002C080E090E00E9427115BC193 +:1027F0008D2F002319F00E94A21E02C00E940A1F02 +:102800000E948F1F50C18C2F837009F050C001119E +:102810004AC18D2F829586958770880F880F9D2FCE +:102820009F70892E912CA12CB12C082E04C0880CED +:10283000991CAA1CBB1C0A94D2F7D4FF14C00FE049 +:1028400010E020E030E0B901A80104C0440F551F9A +:10285000661F771F8A95D2F7CB01BA0160957095F4 +:102860008095909503C060E070E0CB01C695C69559 +:10287000C370D0E0C230D10561F0C330D10581F022 +:10288000682979298A299B29219771F00E949E192C +:102890000AC1682979298A299B290E94BA1903C18A +:1028A0000E949E19C501B4010E948219FCC0002338 +:1028B00019F08C2F817001C08695882309F4F3C02C +:1028C0008D2F829586958770880F880F9D2F9F701A +:1028D000892E912CA12CB12C082E04C0880C991C97 +:1028E000AA1CBB1C0A94D2F7D4FF14C00FE010E05E +:1028F00020E030E0B901A80104C0440F551F661F55 +:10290000771F8A95D2F7CB01BA01609570958095B3 +:10291000909503C060E070E0CB01C695C695C3708A +:102920004C2F50E04230510569F04330510589F099 +:10293000682979298A299B294130510571F00E9423 +:10294000781AB1C0682979298A299B290E94941A8A +:10295000AAC00E94781AC501B4010E945C1AA3C0E3 +:102960008D2F90E0FC01E05EF109E531F10508F002 +:102970007BC0E059FF4F0C941824DF708C2F8F71AF +:10298000002331F00E94F5198D2F0E9422138BC075 +:102990000E94161A8D2F0E94291385C0002339F03A +:1029A000111181C08C2F8F710E943B1A7CC0123094 +:1029B00008F079C0F7CF002339F08C2F8F710E9477 +:1029C000F51971C00023C9F38C2F8F710E94161A5C +:1029D0006AC0002329F08C2F8F710E94E01963C018 +:1029E0000E94D61960C00023B9F00E94FF1A0E940D +:1029F000281C0E94311B843029F40E94701B8C2FEC +:102A00008F7162C0123008F06CC0CF718C2F0E94A1 +:102A1000F51963E08C2F0DC00E94FF1A0E94221C42 +:102A20001230A0F00E94701B0E94051B64E08C2FE6 +:102A30008F71DF91CF911F910F91FF90EF90DF90F9 +:102A4000BF90AF909F908F900C94601B81E0DF91BE +:102A5000CF911F910F91FF90EF90DF90BF90AF90BB +:102A60009F908F900C94771B002339F0112309F469 +:102A7000A4CF8D2F0E940B1216C0112309F4A4CFEE +:102A80008D2F0E94D3120FC04C2F4F706D2FC70196 +:102A90000E9446050E94FA1806C04C2F4F706D2FF9 +:102AA000C7010E945B09DD20E1F00E94311B80FD1F +:102AB00018C0F70112820E942B1B0E94F519C70152 +:102AC0000E947D150E942B1BDF91CF911F910F91CA +:102AD000FF90EF90DF90BF90AF909F908F900C94FD +:102AE000161ADF91CF911F910F91FF90EF90DF9019 +:102AF000BF90AF909F908F9008950F931F93CF93A7 +:102B0000DF93EC01888199812B813C81232BB9F0E3 +:102B10009F3F11F48F3F99F0CE010E94EC0588236E +:102B200071F0688179818A810E94FB1A8C010E9470 +:102B3000B01A0E947719B801CE010E943013DF91BC +:102B4000CF911F910F9108950E943F1C0E944F1C2E +:102B50000E94111C0E94761C0E9440200E948F1F20 +:102B600080E090E00E94111180E090E00C94271129 +:102B70000E942F1C0C94A4150E94F01A292F229554 +:102B80002F7030E02C3031054CF42A3031056CF4D4 +:102B90002250310922303105A8F407C02C3031050C +:102BA00069F02F30310551F00DC0803F69F018F405 +:102BB000803E40F409C0843F29F406C093FB882777 +:102BC00080F9089580E0089581E00895CF93DF9320 +:102BD00000D000D01F92CDB7DEB70F900F900F90AE +:102BE0000F900F90DF91CF910895CF93DF9300D096 +:102BF00000D000D0CDB7DEB726960FB6F894DEBF72 +:102C00000FBECDBFDF91CF9108951F93CF93DF9378 +:102C1000C091870116E080918801C81799F0D0E033 +:102C20001C9FF0011D9FF00D1124E757FE4F4081BE +:102C3000518162817381848195810E94F51521966D +:102C4000C770E9CFDF91CF911F9108954091B901ED +:102C50005091BA016091BB017091BC018091BD019E +:102C60009091BE010C94F5158091BE0182958F70F4 +:102C700009F054C08091BB01882309F44FC08091B2 +:102C80008701A09188016091B9017091BA014091CA +:102C9000BC015091BD01B6E08A1709F43FC090E035 +:102CA00041155105C1F17F3F11F46F3FA1F1B89F6C +:102CB000F001B99FF00D1124E757FE4F21817213E7 +:102CC0002AC02081621327C02281211124C02381C0 +:102CD00034812417350710F421503109241B350B9A +:102CE000283C3105C0F42091BE012F702061209353 +:102CF000BE0126E0289FF001299FF00D1124E25724 +:102D0000FE4F80818F708061808389EB91E00E940B +:102D10007D150C94051601968770BECF0895CF924D +:102D2000DF92EF92FF920F931F93CF93DF93CDB774 +:102D3000DEB762970FB6F894DEBF0FBECDBF8C0131 +:102D400085E0F801DE011D9601900D928A95E1F76C +:102D5000D8014C9111965C91119712966C91129733 +:102D60001396CD90DC9014973091B9017091BA010F +:102D70008091BC019091BD01009709F46BC17F3F28 +:102D800019F43F3F09F466C1E090BB01EE2009F45D +:102D9000C0C02091BE01C816D90628F0F601E81B74 +:102DA000F90BCF0104C0809590958C0D9D1DFF24DB +:102DB000F394883C910578F0F12C207F09F0C6C08F +:102DC0007C2DD98AC88A89890E94E61589EB91E011 +:102DD0000E947D15B1C0822F807F09F046C0751317 +:102DE00014C0341312C0611110C02F7020612093E1 +:102DF000BE010E94261689EB91E00E947D1580910C +:102E0000BE01D80115968C932EC0CD2819F15F3FD5 +:102E100011F44F3FF9F0F62E61111CC0809187012B +:102E20002091880136E0821709F45AC090E0389F5B +:102E3000F001399FF00D1124E757FE4F71815713B0 +:102E400006C07081471303C07281711103C00196DF +:102E50008770E9CFF62E662309F418C18091BE0170 +:102E600081608093BE01F12C11C1751308C0341329 +:102E700006C0611104C08091BE01D801C3C04D8756 +:102E80005E878D859E856A8B0E94BC156A89882322 +:102E9000E1F16623D1F12091BE01822F82958F70DE +:102EA00090E0029774F08091B9019091BA019887EF +:102EB0008F831986DB86CA862C87CE0107960E94EF +:102EC0007D1586E0F801A9EBB1E001900D928A959D +:102ED000E1F70E9434160E942616FF24F394D6C010 +:102EE0004D875E878D859E850E94F01A292F229539 +:102EF0002F7030E0223031050CF0BCC09F7009F01B +:102F0000B6C0805E883008F4C1C0C8010E947D153B +:102F1000E4CFC816D90608F453C0F601E81BF90B34 +:102F2000CF01883C910508F450C0F12C7C2DD98A42 +:102F3000C88A89890E94E615E9EBF1E086E0DF01A5 +:102F40001D928A95E9F70E942616A0C0751314C039 +:102F5000341312C0611110C08091BE01F801858345 +:102F6000C8010E947D1586E0E9EBF1E0DF011D92CA +:102F70008A95E9F7FE2C8AC04D875E878D859E85F0 +:102F80006A8B0E94BC156A89882309F4BECF662328 +:102F900009F4BBCF2091BE01822F82958F7090E003 +:102FA00002970CF48ECF8091B9019091BA019A8367 +:102FB00089831B82DD82CC822E83CE0101967FCF56 +:102FC000809590958C0D9D1DACCFF62E662309F44F +:102FD0009CCF75132EC034132CC02091BE0120FD50 +:102FE0001FC0822F82958F70D9F0D80115962C932F +:102FF00015978F3049F08F5F982F9295907F822F91 +:103000008F70892B15968C93C8010E947D1586E0E0 +:10301000F801A9EBB1E001900D928A95E1F793CF09 +:1030200086E0F801A9EBB1E001900D928A95E1F7F5 +:103030002DC04D875E878D859E850E94BC158111B0 +:1030400040CF8091BE0181608093BE01C8010E9483 +:103050007D151CC0662309F458CF4D875E878D858A +:103060009E850E94BC15882309F44FCF2ACF811179 +:1030700048CF0CC0243031050CF047CF9F7009F4C5 +:1030800040CFF8019581907F09F03BCF8F2D62965C +:103090000FB6F894DEBF0FBECDBFDF91CF911F9169 +:1030A0000F91FF90EF90DF90CF9008951F93CF93F3 +:1030B000DF93CDB7DEB72C970FB6F894DEBF0FBE07 +:1030C000CDBF4F83588769877A878B879C87CE01CE +:1030D00007960E948F16882369F08F8198852A852C +:1030E0003B85232BF1F19F3F09F063C08F3F09F02F +:1030F00060C037C086E0FE013796DE011196019070 +:103100000D928A95E1F76F817885EA85FB85309786 +:1031100041F17F3F11F46F3F21F12091880130E0B0 +:10312000C9010196877099274091870150E0841763 +:10313000950709F447C069837A83FD83EC8396E0A1 +:10314000929FD001939FB00D1124A757BE4FFE014F +:10315000319601900D929A95E1F7809388010E9433 +:10316000051616E080918701909188018917C1F1B9 +:10317000189FC001112487579E4F0E948F168823E5 +:1031800079F1E09187011E9FF0011124E757FE4F6E +:103190004081518162817381848195810E94F515FE +:1031A0008091870190E0019687709927809387012D +:1031B000D9CF4F81588569857A858B859C850E94FA +:1031C000F515CFCF0E94B815109288011092870193 +:1031D000E9EBF1E086E0DF011D928A95E9F7C1CFC6 +:1031E0002C960FB6F894DEBF0FBECDBFDF91CF9106 +:1031F0001F910895EF92FF920F931F93CF93DF9348 +:103200008C01009709F46CC0F12CEE24E394E801E2 +:103210002196F8018491843740F4843008F051C03D +:10322000813081F0823019F15BC0853709F444C0E8 +:10323000A8F19CE7980F903708F052C08F770E9452 +:10324000D31241C00E5F1F4FFE01C49180E28C0F6C +:10325000883048F4C7708E2D01C0880FCA95EAF7F0 +:103260000E94421C14C08C2F0E940B122DC00E5FB6 +:103270001F4FFE01C49180E28C0F883058F4C77054 +:103280008E2D01C0880FCA95EAF70E94481C0E9443 +:10329000761C1AC08C2F0E94D31216C00E5F1F4FCF +:1032A000FE01C491CC2381F08FE99FE00197F1F7F3 +:1032B00000C00000C150F6CF0E5F1F4FFE01F4901A +:1032C00003C00E940B128E018F2D882309F49FCF1B +:1032D000EFE9FFE03197F1F700C000008150F5CF32 +:1032E000DF91CF911F910F91FF90EF900895089576 +:1032F0006093C3017093C4018093C5019093C6018C +:103300000C94A4150F931F930091C3011091C40155 +:103310002091C5013091C601DC01CB01802B912B9E +:10332000A22BB32B8093C3019093C401A093C5013A +:10333000B093C6011F910F910C94A4150F931F9386 +:103340000091C3011091C4012091C5013091C601C3 +:10335000DC01CB0180239123A223B3238093C301FB +:103360009093C401A093C501B093C6011F910F9122 +:103370000C94A4150F931F930091C3011091C401E5 +:103380002091C5013091C601DC01CB018027912736 +:10339000A227B3278093C3019093C401A093C501D2 +:1033A000B093C6011F910F910C94A4151092BF0108 +:1033B0001092C0011092C1011092C2010C94A41588 +:1033C00041E050E060E070E004C0440F551F661F0C +:1033D000771F8A95D2F74093BF015093C001609345 +:1033E000C1017093C2010C94A41541E050E060E06B +:1033F00070E004C0440F551F661F771F8A95D2F7EF +:103400008091BF019091C001A091C101B091C20112 +:10341000482B592B6A2B7B2B4093BF015093C00143 +:103420006093C1017093C2010C94A41541E050E077 +:1034300060E070E004C0440F551F661F771F8A9537 +:10344000D2F740955095609570958091BF0190910D +:10345000C001A091C101B091C201482359236A2340 +:103460007B234093BF015093C0016093C1017093CF +:10347000C2010C94A41541E050E060E070E004C08B +:10348000440F551F661F771F8A95D2F78091BF01A1 +:103490009091C001A091C101B091C2014827592764 +:1034A0006A277B274093BF015093C0016093C101FD +:1034B0007093C2010C94A4150F931F930091BF0148 +:1034C0001091C0012091C1013091C201DC01CB01FA +:1034D000802B912BA22BB32B8093BF019093C00123 +:1034E000A093C101B093C2011F910F910C94A41538 +:1034F0000F931F930091BF011091C0012091C10152 +:103500003091C201DC01CB0180239123A223B3239C +:103510008093BF019093C001A093C101B093C201F9 +:103520001F910F910C94A4150F931F930091BF014D +:103530001091C0012091C1013091C201DC01CB0189 +:1035400080279127A227B3278093BF019093C001C2 +:10355000A093C101B093C2011F910F910C94A415C7 +:103560000895CF92DF92EF92FF920F931F93CF9324 +:10357000DF938C01C090C301D090C401E090C501DD +:10358000F090C6018091BF019091C001A091C1014E +:10359000B091C201C82AD92AEA2AFB2ACFE1D0E099 +:1035A000D701C6010C2E04C0B695A79597958795AF +:1035B0000A94D2F780FF06C0B8018C2F0E94DA0768 +:1035C000019721F4219760F780E001C08C2FDF91F3 +:1035D000CF911F910F91FF90EF90DF90CF900895C2 +:1035E000CF93DF93EC010E94B11ABE010E94DA076B +:1035F000DF91CF910895CB010E94F01A0895809138 +:10360000CC0108958093CC0108951092CC010895C7 +:103610000E944F1D2091CA013091CB018217930760 +:1036200050F00E944F1D2091CA013091CB01821BA6 +:10363000930B9C010AC00E944F1D2091CA0130913A +:10364000CB0120953095280F391F81E0283B3B4066 +:1036500008F480E008958091C90185958595859548 +:1036600008958091C901877008950E944F1D20918F +:10367000C7013091C80182179307A8F00E944F1D1F +:103680002091C7013091C801821B930B883B9B405E +:1036900010F480E013C08091C90182FB882780F973 +:1036A00091E089270BC00E944F1D2091C7013091E6 +:1036B000C80120953095820F931FE8CF817008953F +:1036C00098E0899F90011124262B2093C9010E9424 +:1036D000F5190E944F1D9093C8018093C70108956A +:1036E0001092C9011092C8011092C701089520914B +:1036F000C901809582238093C901982F977089F41E +:1037000030E0482F552747FD50952417350749F0DD +:103710008595859585950E94161A1092C80110927C +:10372000C70108959091C901977081E009F480E084 +:10373000089590910C01992321F090910D01911120 +:1037400009C020910E0130910F01F90132969FEFCF +:1037500040E01FC0982F9695969596959F3050F50E +:10376000E0910E01F0910F01E90FF11D877021E04A +:1037700030E0A90102C0440F551F8A95E2F7CA0143 +:103780009181892B818308959F3F39F04F5F4E309F +:1037900041F051915813F8CF0DC05111F7CF942F2C +:1037A000F5CF9F3F39F0F901E90FF11D97FDFA952B +:1037B00082830895089590910C01992321F09091AE +:1037C0000D01911109C020910E0130910F01F901F5 +:1037D0003296205F3F4F1FC0982F969596959695ED +:1037E0009F30F0F4E0910E01F0910F01E90FF11D0F +:1037F000877021E030E0A90102C0440F551F8A956F +:10380000E2F7CA01809591818923818308953196D9 +:10381000E217F30729F090819813F9CF1082F7CFC0 +:10382000089581E090E0E0910E01F0910F01E80F22 +:10383000F91F1082019680319105A9F708958091B2 +:10384000E00108959091E001892B8093E0010895B3 +:1038500080959091E00189238093E0010895109272 +:10386000E00108959091DF01892B8093DF01089595 +:1038700080959091DF0189238093DF010895109254 +:10388000DF0108959091DE01892B8093DE01089578 +:1038900080959091DE0189238093DE010895109236 +:1038A000DE0108958093CD010E944F1D9093CB01BE +:1038B0008093CA0108951092CD011092CB0110920D +:1038C000CA0108958091CD01089580910E019091D3 +:1038D0000F01FC0131969C01205F3F4F80E09191E8 +:1038E00091118F5FE217F307D1F70895E0910E0170 +:1038F000F0910F018091E0018083E0910E01F09141 +:103900000F0190818091DF01892B8083E0910E016E +:10391000F0910F0190818091DE01892B808380914D +:10392000CD01882399F00E94081B81110E945B1C25 +:10393000E0910E01F0910F0190818091CD01892BD2 +:1039400080830E94651C81110E945B1C80910E0186 +:1039500090910F010C94FB1020E0009739F0AC011E +:1039600041505109842395232F5FF7CF822F08956B +:10397000CF92DF92EF92FF926C01EE24FF24C114EC +:10398000D104E104F10421F0C701B60120E101C036 +:1039900020E0C72ED82EE92EFF24C114D104E10463 +:1039A000F10419F0285FC701B6016B017C0154E0F6 +:1039B000F694E794D794C7945A95D1F7C114D104DB +:1039C000E104F10419F02C5FC701B6016B017C0121 +:1039D00042E0F694E794D794C7944A95D1F7C1147E +:1039E000D104E104F10419F02E5FC701B601DC0136 +:1039F000CB01B695A79597958795892B8A2B8B2B0D +:103A000009F02F5F822FFF90EF90DF90CF90089505 +:103A10008091FA01843021F11092E20120E488E1E2 +:103A200090E00FB6F894A895809360000FBE2093A5 +:103A3000600080E00E94EC0983B7817F846083BFCF +:103A400083B7816083BF7894889583B78E7F83BF67 +:103A500088E10FB6F89480936000109260000FBE6A +:103A6000089508950E9469030E947C030E94311DFD +:103A70000E94710491E0811101C090E0892F0895A6 +:103A80000E94B8150E94EF100C94EC0982E084BDEE +:103A900093E095BD9AEF97BD80936E0008952FB780 +:103AA000F8948091E3019091E401A091E501B09137 +:103AB000E6012FBF0895CF92DF92EF92FF920F930E +:103AC0001F932FB7F8944091E3015091E401609166 +:103AD000E5017091E6012FBF6A017B01EE24FF240E +:103AE0008C0120E030E0C016D106E206F30610F4A7 +:103AF000415051099A01281B390BC9011F910F919F +:103B0000FF90EF90DF90CF9008951F920F920FB625 +:103B10000F9211248F939F93AF93BF938091E301F2 +:103B20009091E401A091E501B091E6010196A11DFB +:103B3000B11D8093E3019093E401A093E501B0935C +:103B4000E601BF91AF919F918F910F900FBE0F90A3 +:103B50001F9018950E94EC0DF8942FEF87EA91E6DC +:103B6000215080409040E1F700C0000087E090EBDA +:103B7000DC018093030290930402A0930502B093AA +:103B800006029CE088E10FB6F894A8958093600047 +:103B90000FBE90936000FFCF0E94041E811102C0EF +:103BA0000E94EA1D0E940F1E8093E1010E94171ED1 +:103BB00090E09093F5018093F40187FB882780F9CA +:103BC00080930D010E94131E682F70E080E090E04A +:103BD0000C9478196DEE7EEF80E090E00E94522404 +:103BE00060E082E090E00E94402460E083E090E0AA +:103BF0000E94402460E084E090E00E94402460E065 +:103C000085E090E00C94402480E090E00E943A240B +:103C100021E08D3E9E4F09F020E0822F089582E042 +:103C200090E00C94322483E090E00C94322484E001 +:103C300090E00C943224682F84E090E00C944024AF +:103C40008091E90180FF0BC06091130185E0689FBE +:103C5000B001112475956795759567952BC081FF07 +:103C600009C06091130185E0689FB001112475952A +:103C7000679520C082FF07C06091130185E0689FAF +:103C8000B001112417C09091EA019923D1F06091FD +:103C90001201961788F72091130185E0289F900163 +:103CA0001124929FA001939F500D112470E0CA012E +:103CB0000E9404246038710540F46115710539F0E3 +:103CC00002C065E070E0862F08958FE7089581E0D7 +:103CD00008958091E90180FF08C06091110170E0B2 +:103CE000759567957595679521C081FF06C06091B0 +:103CF000110170E07595679519C082FF04C060914D +:103D0000110170E010C09091EA019923C1F0609117 +:103D100010019617A0F780911101899FC00111240D +:103D200070E00E9404246038710528F46115710563 +:103D300021F0862F08958FE7089581E0089561E0CE +:103D400070E0F4CF803F21F40E94201E819504C0D2 +:103D5000813F29F40E94201E8093ED010895823F47 +:103D600021F40E94201E819504C0833F29F40E9403 +:103D7000201E8093EC010895893F19F40E94691E6A +:103D800005C08A3F31F40E94691E81958093EE013F +:103D900008958B3F21F40E94691E819504C08C3FD9 +:103DA00029F40E94691E8093EF010895843F21F455 +:103DB0008091EB01816017C0853F21F48091EB0178 +:103DC000826011C0863F21F48091EB0184600BC0BA +:103DD000873F21F48091EB01886005C0883F31F472 +:103DE0008091EB0180618093EB0108958D3F21F478 +:103DF0008091E90181600BC08E3F21F48091E9013F +:103E0000826005C08F3F29F48091E901846080932E +:103E1000E9010895803F39F48091ED0187FF6CC07E +:103E20001092ED0169C0813F29F48091ED011816CF +:103E3000BCF362C09091EC01823F29F497FF5CC013 +:103E40001092EC0159C0833F19F41916CCF354C0F9 +:103E5000893F41F48091EE0118160CF04DC010928C +:103E6000EE014AC08A3F29F48091EE0187FF44C0E9 +:103E7000F6CF8B3F39F48091EF0187FF3DC0109260 +:103E8000EF013AC08C3F29F48091EF011816BCF382 +:103E900033C0843F21F48091EB018E7F17C0853FB2 +:103EA00021F48091EB018D7F11C0863F21F4809138 +:103EB000EB018B7F0BC0873F21F48091EB01877F63 +:103EC00005C0883F31F48091EB018F7E8093EB0138 +:103ED00013C08D3F21F48091E9018E7F0BC08E3F8E +:103EE00021F48091E9018D7F05C08F3F29F48091F5 +:103EF000E9018B7F8093E9018091EC0181110EC073 +:103F00008091ED0181110AC08091EE01811106C0FE +:103F10008091EF01811102C01092EA0108958BEEA9 +:103F200091E00E9406110E944F1D9093E80180933A +:103F3000E70108951F93CF93DF938091E70190915C +:103F4000E8010E945B1DAC019091EA01992321F0E8 +:103F50002091140130E006C0209115018AE0289FCD +:103F6000900111244217530708F486C08091EC0198 +:103F7000C091ED01D091EE011091EF01811107C0C8 +:103F8000C11176C0D11174C0111172C075C09F3FAC +:103F900019F09F5F9093EA01181624F40E94201EE6 +:103FA0008093EC018091EC0187FF05C00E94201EE8 +:103FB00081958093EC011C1624F40E94201E8093AE +:103FC000ED018091ED0187FF05C00E94201E8195C3 +:103FD0008093ED016091EC01662339F1C091ED0110 +:103FE000CC2319F1772767FD7095872F972F0E94B3 +:103FF000152323E333E343E35FE30E9479230E9425 +:10400000E2226093EC016C2F772767FD7095872F74 +:10401000972F0E94152323E333E343E35FE30E94DA +:1040200079230E94E2226093ED011D1624F40E9480 +:10403000691E8093EE018091EE0187FF05C00E940A +:10404000691E81958093EE01111624F40E94691E69 +:104050008093EF018091EF0187FF05C00E94691EE8 +:1040600081958093EF01DF91CF911F910C948F1F69 +:104070009F3F09F08ECF96CFDF91CF911F9108958A +:10408000EBEEF1E085E0DF011D928A95E9F71092F1 +:10409000EA011092E9010895833081F128F481301A +:1040A00059F08230D1F00895853009F449C0B8F153 +:1040B000863009F456C0089580911501262F30E00E +:1040C000280F311D2F3F310524F4680F609315012F +:1040D00008958FEF80931501089580911401262F84 +:1040E00030E0280F311D2F3F310524F4680F609315 +:1040F000140108958FEF80931401089580911301A6 +:10410000262F30E0280F311D2F3F310524F4680F92 +:104110006093130108958FEF8093130108958091A8 +:104120001201262F30E0280F311D2F3F310524F4D6 +:10413000680F6093120108958FEF80931201089524 +:1041400080911101262F30E0280F311D2F3F3105BE +:1041500024F4680F6093110108958FEF809311018B +:10416000089580911001262F30E0280F311D2F3F38 +:10417000310524F4680F6093100108958FEF809348 +:1041800010010895833011F128F4813049F0823014 +:1041900091F00895853081F120F18630C1F10895C4 +:1041A00080911501681720F4861B809315010895EE +:1041B00010921501089580911401681720F4861B50 +:1041C00080931401089510921401089580911301B1 +:1041D000681720F4861B8093130108951092130131 +:1041E000089580911201681720F4861B80931201B4 +:1041F000089510921201089580911101681720F41A +:10420000861B8093110108951092110108958091E9 +:104210001001681720F4861B8093100108951092F6 +:10422000100108950F931F938D3109F471C008F0A8 +:1042300045C0803109F485C008F5873009F46FC0A6 +:1042400068F4863009F0ADC08091E101817F8E7FF6 +:104250008093E10181E08093F101A4C08B3009F4E7 +:104260009EC08E3009F09DC08091E10182FB222723 +:1042700020F991E0922790FB82F96CC0863109F415 +:104280008EC060F4813109F08CC00E94B815909105 +:104290000D0181E0892780930D0181C0893109F4E6 +:1042A0007EC08B3109F07DC08091E10181FB222726 +:1042B00020F991E0922790FB81F94CC0853309F4F5 +:1042C00066C048F4873209F462C008F44FC08932EE +:1042D00009F45DC066C0833438F48A3308F044C002 +:1042E000883309F45CC05DC0833409F450C088345D +:1042F00009F057C00E94B8150FEF13ED20E30150ED +:1043000010402040E1F700C000000E94AA1D47C0F5 +:104310000E949C220E94EF100E94EC0940C09091E4 +:10432000E101892F8095817080FB90F929F09660DA +:1043300098609093E10136C0997F977F9093E10157 +:104340002EC08091E10183FB222720F991E0922782 +:1043500090FB83F98093E101992309F18091E101B8 +:1043600081608093E1011BC0895301C08D5141E000 +:1043700050E060E070E08A019B0104C0000F111F53 +:10438000221F331F8A95D2F7C901B80104C061E02A +:1043900070E080E090E00E9478190E94B81581E0FA +:1043A00001C080E01F910F91089580E0089580E0A2 +:1043B00008958E518A3030F4E82FF0E0E65DFE4F2C +:1043C0008081089580E00895CF93C82F8091F101F6 +:1043D000813079F018F08230E9F186C0E0910E0169 +:1043E000F0910F018081813169F0823209F07EC045 +:1043F00009C0E0910E01F0910F018081813111F02F +:10440000823261F48C2F0E94D521811104C08C2F3F +:104410000E9412211DC081E090E01AC08C2F0E94E2 +:10442000D721811114C0C43179F048F4CB3079F030 +:10443000C03109F05FC082E08093F10108C0C93249 +:1044400019F0C83321F056C01092F10153C081E039 +:10445000817052C0C93281F110F5C43169F1A8F4FC +:10446000C73009F045C08AE08093150194E190932C +:10447000140193E0909313018093120188E08093DC +:10448000110188E28093100133C082EE8C0F8630D8 +:1044900078F58C2F0E94D9218093F00129C0CE3469 +:1044A000E9F020F4CB3421F56AE013C0C13579F08E +:1044B000C235F1F461E00DC08091F001882319F05C +:1044C0001092F00115C081E08093F10115C061E008 +:1044D00006C08091F0010E944C200AC06AE08091E1 +:1044E000F0010E94C22004C01092F10180E004C0DB +:1044F00081E002C080E0ACCFCF910895E1E8F0E028 +:104500008081886080838081816080838FB7F89408 +:1045100093E09093890090ED909388008FBF089569 +:10452000EFE6F0E08081826080830895EFE6F0E0BE +:1045300080818D7F80830895EFE6F0E0908182E0B6 +:104540008927808308951F920F920FB60F9211242E +:104550002F933F934F935F936F937F938F939F938B +:10456000AF93BF93EF93FF938091F2019091F3018A +:1045700001969093F3018093F201811103C082E0D0 +:104580000E94EC09E091F301E695E695F0E0E75131 +:10459000FB4FE4918091F2018E1303C080E00E94F2 +:1045A000EC09FF91EF91BF91AF919F918F917F9116 +:1045B0006F915F914F913F912F910F900FBE0F9090 +:1045C0001F90189504D06894B1118DC0089570D0D3 +:1045D00088F09F5790F0B92F9927B751A0F0D1F0EC +:1045E000660F771F881F991F1AF0BA95C9F712C076 +:1045F000B13081F077D0B1E0089574C0672F782F83 +:104600008827B85F39F0B93FCCF3869577956795E1 +:10461000B395D9F73EF490958095709561957F4F4D +:104620008F4F9F4F0895E89409C097FB3EF49095F3 +:104630008095709561957F4F8F4F9F4F9923A9F07B +:10464000F92F96E9BB279395F6958795779567950A +:10465000B795F111F8CFFAF4BB0F11F460FF1BC04E +:104660006F5F7F4F8F4F9F4F16C0882311F096E9E1 +:1046700011C0772321F09EE8872F762F05C066238F +:1046800071F096E8862F70E060E02AF09A95660F48 +:10469000771F881FDAF7880F9695879597F9089501 +:1046A00057FD9058440F551F59F05F3F71F04795E3 +:1046B000880F97FB991F61F09F3F79F087950895C8 +:1046C000121613061406551FF2CF4695F1DF08C0E7 +:1046D000161617061806991FF1CF86957105610504 +:1046E00008940895E894BB2766277727CB0197F9AC +:1046F00008950BD078C069D028F06ED018F09523BB +:1047000009F05AC05FC01124EECFCADFA0F3959F15 +:10471000D1F3950F50E0551F629FF001729FBB27A8 +:10472000F00DB11D639FAA27F00DB11DAA1F649F54 +:104730006627B00DA11D661F829F2227B00DA11D07 +:10474000621F739FB00DA11D621F839FA00D611D8D +:10475000221F749F3327A00D611D231F849F600DAE +:10476000211D822F762F6A2F11249F5750408AF0E7 +:10477000E1F088234AF0EE0FFF1FBB1F661F771F73 +:10478000881F91505040A9F79E3F510570F014C00A +:10479000AACF5F3FECF3983EDCF38695779567955B +:1047A000B795F795E7959F5FC1F7FE2B880F911D91 +:1047B0009695879597F9089597F99F6780E870E037 +:1047C00060E008959FEF80EC089500240A94161687 +:1047D000170618060906089500240A9412161306EF +:1047E000140605060895092E0394000C11F488237D +:1047F00052F0BB0F40F4BF2B11F460FF04C06F5F99 +:104800007F4F8F4F9F4F089597FB072E16F400940C +:1048100007D077FD09D00E941E2407FC05D03EF486 +:10482000909581959F4F0895709561957F4F08955C +:10483000EE0FFF1F0590F491E02D0994AA1BBB1BFE +:1048400051E107C0AA1FBB1FA617B70710F0A61B90 +:10485000B70B881F991F5A95A9F780959095BC01B1 +:10486000CD010895F999FECF92BD81BDF89A99279F +:1048700080B50895A8E1B0E042E050E00C945A24DD +:10488000262FF999FECF92BD81BDF89A019700B409 +:10489000021639F01FBA20BD0FB6F894FA9AF99AA9 +:1048A0000FBE08950196272F0E9441240C944024A6 +:1048B000DC01CB01FC01F999FECF06C0F2BDE1BDE0 +:1048C000F89A319600B40D9241505040B8F70895CF +:0448D000F894FFCF8A +:1048D4000220EE097C0A590A250AF1090101CE01D8 +:1048E40028080A03140A404D3639A9045C04260436 +:1048F400ED0380039903B203CB030102030405060D +:044904000708090097 +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/townk_osx/config.h b/keyboards/ergodox_ez/keymaps/townk_osx/config.h new file mode 100644 index 000000000..58ba690af --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/townk_osx/config.h @@ -0,0 +1,92 @@ +/* +Copyright 2012 Jun Wako +Copyright 2013 Oleg Kostyuk + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x1307 +#define DEVICE_VER 0x0001 +#define MANUFACTURER ErgoDox EZ +#define PRODUCT ErgoDox EZ +#define DESCRIPTION t.m.k. keyboard firmware for Ergodox + +/* key matrix size */ +#define MATRIX_ROWS 14 +#define MATRIX_COLS 6 + +#define MOUSEKEY_DELAY 100 +#define MOUSEKEY_INTERVAL 20 +#define MOUSEKEY_MAX_SPEED 3 +#define MOUSEKEY_TIME_TO_MAX 10 + +#define TAPPING_TOGGLE 1 + +#define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } +#define ROWS (int []){ D0, D5, B5, B6 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 2 +#define TAPPING_TERM 200 +#define IGNORE_MOD_TAP_INTERRUPT // this makes it possible to do rolling combos (zx) with keys that convert to other keys on hold (z becomes ctrl when you hold it, and when this option isn't enabled, z rapidly followed by x actually sends Ctrl-x. That's bad.) + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || \ + keyboard_report->mods == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) \ +) + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION +//#define DEBUG_MATRIX_SCAN_RATE +#define ONESHOT_TAP_TOGGLE 2 +#define ONESHOT_TIMEOUT 3000 + +#endif diff --git a/keyboards/ergodox_ez/keymaps/townk_osx/keymap.c b/keyboards/ergodox_ez/keymaps/townk_osx/keymap.c new file mode 100644 index 000000000..07e58a491 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/townk_osx/keymap.c @@ -0,0 +1,285 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "action_util.h" +#include "led.h" +#include "keymap.h" +#include "timer.h" + +/* + +# Why this Layout + +This layout was based on Kinesis layout and other ErgoDox user layouts +available. It's target to be used on a MacOS but I'm pretty sure it can be +addapted to Windows and/or Linux easily. + +## Function Key + +The `fn` key work almost like it would in any other keyboard with the exception +it has a semi-sticky behavior. What does that mean? + +Well, if you press the `fn` and release it, the keyboard will be put on the +_function layout_ and the next key stroke will be processed as if the `fn` key +was pressed. Aftwards, the leyout get back to _normal_. If you hold `fn` and +press any other key, when you release them, the keyboard leyout is back to +_normal_. + +While pressing the `fn` with the left hand and strikeing the other keys on the +right hand is farly easy, the same cannot being said for the other keys on the +left side. So, instead of trying to do contorcionism with my left hand, I +decided to do a semi-sticky version of `fn`. This way, I can press the `fn` +key with my pinky, release it and press the `1` key to issue an `F1` to the +operating system. + +## Key-Pad Key + +The `key pad` key is a layout switch key. If pressed, it will put the keyboard +on the _key pad layout_ and stay there until key is pressed again. + +This is used to make the keyboard behave mostly like a **num pad keyboard**. + +## Notes +- Regardless in which layout you are, keys from other layouts are not + accessible. This means that if you are on the _key pad layout_, the left hand + will be pretty much unusable. + Of course that like anything else, there are exceptions to this rule. + Modifiers should remain accessible throughout the layers. +- The _shift key_ is, like the _function key_, also configured to have a sticky + behavior. +- All sticky keys have a timeout of 3 seconds. + +*/ +#define BASE 0 +#define KEYPAD 1 +#define FN 2 + +#define MACRO_TMUX_ESC 10 +#define MACRO_TMUX_PASTE 11 +#define MACRO_OSX_COPY 12 +#define MACRO_OSX_PASTE 13 + +#define M_TESC M(MACRO_TMUX_ESC) +#define M_TPASTE M(MACRO_TMUX_PASTE) +#define M_OSXCPY M(MACRO_OSX_COPY) +#define M_OSXPST M(MACRO_OSX_PASTE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Base Layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | `~ | 1 | 2 | 3 | 4 | 5 | ESC | | Pwr | 6 | 7 | 8 | 9 | 0 | - _ | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | Tab | Q | W | E | R | T | F16 | | F17 | Y | U | I | O | P | = + | + * |-----------+------+------+------+------+------| Meh | | Meh |------+------+------+------+------+-----------| + * | \ (Ctrl) | A | S | D | F | G |------| |------| H | J | K | L | ; | ' " (Ctrl)| + * |-----------+------+------+------+------+------| F18 | | F19 |------+------+------+------+------+-----------| + * | LShift | Z | X | C | V | B | Hyper| | Hyper| N | M | , | . | / | RShift | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | FN | KPAD |LCtrl | LAlt | LGui | | RGui | RAlt | RCtrl| KPAD | FN | + * `-----------------------------------' `-----------------------------------' + * ,-------------. ,-------------. + * | M(0) | M(1) | | M(2) | M(3) | + * ,------|------|------| |------+------+------. + * | | | Home | | PgUp | | | + * |Backsp| Del |------| |------| Enter| Space| + * | | | End | | PgDn | | | + * `--------------------' `--------------------' + * + * M(0) = Ctrk+A Esc + * (this is used to issue the Esc key to the Tmux application) + * M(1) = Ctrk+A P + * (this is used to issue the Paste key to the Tmux application) + * M(2) = Cmd+C + * M(3) = Cmd+V + */ +[BASE]=KEYMAP(//left half + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, MEH_T(KC_F16), + CTL_T(KC_BSLS), KC_A, KC_S, KC_D, KC_F, KC_G, + KC_FN2, KC_Z, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_F18), + KC_FN1, TG(KEYPAD), KC_LCTRL, KC_LALT, KC_LGUI, + M_TESC, M_TPASTE, + KC_HOME, + KC_BSPC, KC_DELT, KC_END, + //right half + KC_POWER, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + MEH_T(KC_F17), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_EQL, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, CTL_T(KC_QUOT), + ALL_T(KC_F19), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_FN2, + KC_RGUI, KC_RALT, CTL_T(KC_LBRC), KC_FN3, KC_FN1, + M_OSXCPY, M_OSXPST, + KC_PGUP, + KC_PGDN, KC_ENT, KC_SPC), + +/* Keymap 1: KeyPad Layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | | | LClk | RClk | MClk | | | | BTab | Clear| / | * | ^ | ( | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | M.Accel 2 | |ScrlUp| U |ScrlDn| | | | Tab | 7 | 8 | 9 | + | ) | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | M.Accel 1 | | L | D | R | |------| |------| 4 | 5 | 6 | - | | | + * |-----------+------+------+------+------+------| | |Return|------+------+------+------+------+-----------| + * | M.Accel 0 | |ScrlL | |ScrlR | | | | | 1 | 2 | 3 | = | | | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | XXXX | | | | | 0 | . | , | XXXX | | + * `-----------------------------------' `-----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | XXXX | | + * | | |------| |------| XXXX | | + * | | | | | | XXXX | | + * `--------------------' `--------------------' + */ +[KEYPAD]=KEYMAP(//left half + KC_NO, KC_NO, KC_MS_BTN1, KC_MS_BTN2, KC_MS_BTN3, KC_NO, KC_NO, + KC_MS_ACCEL2, KC_NO, KC_MS_WH_UP, KC_MS_U, KC_MS_WH_DOWN, KC_NO, KC_NO, + KC_MS_ACCEL1, KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, + KC_MS_ACCEL0, KC_NO, KC_MS_WH_LEFT, KC_NO, KC_MS_WH_RIGHT, KC_NO, KC_NO, + KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, + KC_NO, + KC_NO, KC_NO, KC_NO, + //right half + LSFT(KC_TAB), KC_CLEAR, KC_KP_SLASH, KC_KP_ASTERISK, KC_CIRCUMFLEX, KC_LPRN, KC_NO, + KC_TAB, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, KC_RPRN, KC_NO, + KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_MINUS, KC_NO, KC_NO, + KC_KP_ENTER, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_EQUAL, KC_NO, KC_NO, + KC_KP_0, KC_KP_DOT, KC_KP_COMMA, KC_TRNS, KC_NO, + KC_NO, KC_NO, + KC_NO, + KC_NO, KC_TRNS, KC_NO), + +/* Keymap 2: Functions Layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | Vol. Up | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | | Stop | Rw | Rec | FF | | XXXX | | XXXX | | | | | | Vol. Down | + * |-----------+------+------+------+------+------| XXXX | | XXXX |------+------+------+------+------+-----------| + * | CapsLock | Eject| Prev | Play | Next | |------| |------| Left | Down | Up | Right| | Mute | + * |-----------+------+------+------+------+------| XXXX | | XXXX |------+------+------+------+------+-----------| + * | L Shift | | | | | | XXXX | | XXXX | | | | | | R Shift | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | XXXXX | | XXXX | XXXX | XXXX | | XXXX | XXXX | XXXX | | XXXXX | + * `-----------------------------------' `-----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + * + * XXX = These keys are transparent keys that, when pressed, they issue the key from the previous layer. + */ +[FN]=KEYMAP(//left half + KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + KC_NO, KC_MEDIA_STOP, KC_MEDIA_REWIND, KC_MEDIA_SELECT, KC_MEDIA_FAST_FORWARD, KC_NO, KC_TRNS, + KC_CAPS, KC_MEDIA_EJECT, KC_MEDIA_PREV_TRACK, KC_MEDIA_PLAY_PAUSE, KC_MEDIA_NEXT_TRACK, KC_NO, + KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, + KC_NO, KC_NO, + KC_NO, + KC_NO, KC_NO, KC_NO, + //right half + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_VOLU, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLD, + KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_NO, KC_MUTE, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_RSFT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, + KC_NO, KC_NO, + KC_NO, + KC_NO, KC_NO, KC_NO)}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_ONESHOT(FN), + [2] = ACTION_MODS_ONESHOT(MOD_LSFT), // Sticky shift light. Tap for the next keypress to be shifted. Hold for regular shift. + [3] = ACTION_LAYER_TAP_KEY(KEYPAD, KC_RBRC), +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + // MACRODOWN only works in this function + switch(id) { + case MACRO_TMUX_ESC: + if (record->event.pressed) { + return MACRO(D(LCTRL), T(A), U(LCTRL), D(ESC), END); + } + return MACRO(U(ESC), END); + case MACRO_TMUX_PASTE: + if (record->event.pressed) { + return MACRO(D(LCTRL), T(A), U(LCTRL), D(P), END); + } + return MACRO(U(P), END); + case MACRO_OSX_COPY: + if (record->event.pressed) { + return MACRO(D(LGUI), D(C), END); + } + return MACRO(U(C), U(LGUI), END); + case MACRO_OSX_PASTE: + if (record->event.pressed) { + return MACRO(D(LGUI), D(V), END); + } + return MACRO(U(V), U(LGUI), END); + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { +}; + +uint8_t current_layer = BASE; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + uint8_t layer = biton32(layer_state); + + ergodox_led_all_off(); + ergodox_led_all_set(LED_BRIGHTNESS_LO); + + switch (layer) { + case BASE: + current_layer = BASE; + break; + case KEYPAD: + current_layer = KEYPAD; + break; + default: + // none + break; + } + + // layer leds + if (current_layer == KEYPAD) { + ergodox_right_led_3_on(); + } + + // capslock + if (host_keyboard_leds() & (3<mods & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) && // is shift pressed and there is no other + !(keyboard_report->mods & (~MOD_BIT(KC_LSFT) & ~MOD_BIT(KC_RSFT)))) || // modifier being pressed as well + (get_oneshot_mods() & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) && !has_oneshot_mods_timed_out())) { // or the one shot shift didn't timed out + ergodox_right_led_1_set(LED_BRIGHTNESS_HI); + ergodox_right_led_1_on(); + } +}; diff --git a/keyboards/ergodox_ez/keymaps/townk_osx/makefile.mk b/keyboards/ergodox_ez/keymaps/townk_osx/makefile.mk new file mode 100644 index 000000000..e757557bd --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/townk_osx/makefile.mk @@ -0,0 +1,4 @@ +# I don't want my keyboard blinking lights when is suppose to be asleep. +SLEEP_LED_ENABLE = no + +CONFIG_H = keymaps/$(KEYMAP)/config.h diff --git a/keyboards/ergodox_ez/keymaps/townk_osx/readme.md b/keyboards/ergodox_ez/keymaps/townk_osx/readme.md new file mode 100644 index 000000000..c2853ca17 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/townk_osx/readme.md @@ -0,0 +1,77 @@ +# Townk's Keymap + +Trying to take care of an enjury on my arm I borrow an ergonomic keyboard from +a frient ([Kinesis Advantage](http://www.kinesis-ergo.com/shop/advantage-pro-for-pc-mac/)). + +I really enjoyed my time with it but there were some anoyancies: + +* The curvature on the keys bothered me since I'm a Vim user and using the + motion keys on my editor was awkard. +* I had to spend too much time remapping the keyboard to make some symbol keys + more accessible to me. +* The fact that my hands had to stay close to each other was a bit stressfull + to my sholders. + +After a long research I find out that Ergodox EZ would be perfect for my needs +and purchase one. Before the keyboard even got in my hands I started to think +on the layout I would use on it and soon enough I planed couple adjustments +from the Kinesis I was using so far. + +## The layout + +Here are the layout mapping in images so you can have a glimpse on it: + +![Base Layout](townk_osx_base.png) +![fn Layout](townk_osx_fn.png) +![Keypad & Mouse Layout](townk_osx_keypad.png) + +Notice that, differently from the default behavior, my layer keys are not transparent +by default, which means that if you press any non-labeled white key, nothing will be +handled to the OS. + +### One shot keys + +It all started with the access to the function keys (F1, F2, F3...), since +those keys are located on a different layer I needed a way to press them with +minimal effort without disrupting my flow. + +For me, togglihg a layer to press a button and than toggle it back is a waste +of time (although I admit it's a single tap from what I have), so I decided to +do it as a one shot key. I could press it and the next pressed key would be +handled by the target layer which just after it delivers the key to the OS it +would get back to the previous layer. + +After setting up my layout to do just that I realized that occasionally I +would stop myseld on the middle of the process and the one shot layer would be +still triggered until I press any other key. So to prevent me from tapping +keys I don't want I added a timeout of 3 seconds for the one shot actions. + +Ultimately I tested the shift key as a one shot one and really like it, so +here you have it, all the one shot keys on my layout. + +## Glossary + +If you're not familiar with the Mac symbols used on some keys, here is a +reference to them: + +| Symbol | Description | +| :----: | ------------------- | +| ⌘ | Command | +| ⇪ | Caps Lock | +| ⇧ | Shift | +| ⌥ | Option (alt) | +| ⎋ | Esc | +| ⇥ | Tab forward | +| ⇤ | Tab backward | +| ⌃ | Control | +| ␣ | Space | +| ⌫ | Backspace | +| ⌦ | Delete | +| ⏎ | Enter | +| ⌤ | Return | +| ⌽ | Power on/off button | +| ↖ | Home | +| ↘ | End | +| ⇞ | Page up | +| ⇟ | Page down | +| ⌧ | Clear | diff --git a/keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_base.png b/keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_base.png new file mode 100644 index 000000000..f9bc8b443 Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_base.png differ diff --git a/keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_fn.png b/keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_fn.png new file mode 100644 index 000000000..983b72348 Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_fn.png differ diff --git a/keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_keypad.png b/keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_keypad.png new file mode 100644 index 000000000..8f04b4327 Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_keypad.png differ diff --git a/keyboards/ergodox_ez/keymaps/twey/compiled.hex b/keyboards/ergodox_ez/keymaps/twey/compiled.hex new file mode 100644 index 000000000..dafb36705 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/twey/compiled.hex @@ -0,0 +1,1178 @@ +:100000000C94CE020C9412030C9412030C94120361 +:100010000C9412030C9412030C9412030C9412030C +:100020000C9412030C9412030C94040E0C94D60E30 +:100030000C9412030C9412030C9412030C941203EC +:100040000C9412030C94E0220C9412030C941203EF +:100050000C9412030C94731C0C9412030C94120352 +:100060000C9412030C9412030C9412030C941203BC +:100070000C9412030C9412030C9412030C941203AC +:100080000C9412030C9412030C9412030C9412039C +:100090000C9412030C9412030C9412030C9412038C +:1000A0000C9412030C9412030C941203430F650F6B +:1000B0005310650F5310AA0FCD0F53102210351097 +:1000C000041304133313331369138913BA14BA14C2 +:1000D0009413BA1444144414AB14BA14BA14B414D8 +:1000E00051145114511451145114511451145114E8 +:1000F00051145114511451145114511451145114D8 +:100100006314701477147E1488140000F0A32E007A +:100110004C002A00E100015200001E0034000400DF +:1001200033000000E3001F00360012001400350009 +:1001300028002000370008000D005000E2002100D8 +:10014000130018000E004F00000022001C000C00DD +:100150001B0000004B000030290000002B000000B5 +:100160004E00000039000000280000004A00230073 +:1001700009000700050000004D0024000A000B00E4 +:1001800010005200E6002500060017001A0051007A +:10019000E40026001500110019002F002C00270094 +:1001A0000F0016001D0030000352310038002D00F2 +:1001B000E500015200000100010001000100010002 +:1001C00000003A001E0220022202010001003B0052 +:1001D0001F0221022302010001003C002F0226021F +:1001E0002F00010001003D00300227023000010015 +:1001F00001003E003102350035020000010001001F +:1002000001000000010000000100010001000000E9 +:100210000100000001003F005200510024020000D4 +:1002200001004000240021001E00010001004100E7 +:10023000250022001F003700010042002600230095 +:10024000200027000100430025022E0231002E006D +:100250000100440045000100010001000000000011 +:100260000000000000000100000000001E0014005B +:1002700014000000000000001E001A00160000001C +:10028000190000001E000800070001000600000021 +:100290001E00150009000100000000001E001C00E7 +:1002A0001C000000000001001C0000001C000000F9 +:1002B000000000001C0000001C0000000000000006 +:1002C0001E001C001C000000000000001E001800A2 +:1002D0000D000100000000001E000C000E000100D7 +:1002E000100000001E0012000F00000011000000AE +:1002F0001E00130033000000010000001E002F004C +:1003000034000100000001000100010001000100B3 +:1003100000000100010001000100010001000100D6 +:100320000100F2000100010001000100F000F100F5 +:100330000100F400010001000100F3000100F500DC +:1003400001000100010001000100000001000100A6 +:100350000100000001000000010001000100000098 +:100360000100000001000100010001000100000087 +:1003700001000100B600AC000100A900010001006D +:100380000100AE000100AA00B6000100B700AB00FA +:100390000100A800010001000100010001000100AE +:1003A000010001000100010001000100000016032E +:1003B0004500720067006F0044006F007800200065 +:1003C00045005A00000016034500720067006F00E8 +:1003D00044006F007800200045005A00000004032C +:1003E000090409026D00040100A0FA0904000001DB +:1003F00003010100092111010001223F00070581CD +:100400000308000A09040100010301020009211187 +:10041000010001224D000705820308000A090402B9 +:10042000000103000000092111010001223600072C +:1004300005830308000A0904030001030000000902 +:100440002111010001223900070584031000011267 +:1004500001100100000008EDFE0713010001020079 +:100460000105010906A101050719E029E715002585 +:100470000195087501810205081901290595057581 +:10048000019102950175039101050719002977155E +:10049000002501957875018102C005010980A1013F +:1004A000850216010026B7001A01002AB700751050 +:1004B00095018100C0050C0901A101850316010009 +:1004C000269C021A01002A9C02751095018100C029 +:1004D00005010902A1010901A10005091901290568 +:1004E00015002501950575018102950175038101AE +:1004F0000501093009311581257F950275088106AE +:1005000009381581257F950175088106050C0A3883 +:10051000021581257F950175088106C0C005010976 +:1005200006A101050719E029E715002501950875C1 +:1005300001810295017508810105081901290595B8 +:1005400005750191029501750391010507190029AF +:10055000FF150025FF950675088100C0000000000A +:1005600000000000000000010204060A0F17202C02 +:100570003A4A5D71879DB3C7DAE9F5FCFFFCF5E9FE +:10058000DAC7B39D87715D4A3A2C20170F0A06041B +:1005900002010000000000000000000011241FBE46 +:1005A000CFEFDAE0DEBFCDBF04B603FE24C08091FA +:1005B000FB019091FC01A091FD01B091FE018730FB +:1005C000904BA740B04BB9F41092FB011092FC0184 +:1005D0001092FD011092FE0114BE84B7877F84BF84 +:1005E00088E10FB6F89480936000109260000FBE0F +:1005F000E0E0FFE3099511E0A0E0B1E0EEE4F9E40A +:1006000002C005900D92A433B107D9F711E0A4E31D +:10061000B1E001C01D92AB3FB107E1F70E94480B6A +:100620000C94A5240C9400001092B9008AE08093E9 +:10063000B800089594EA9093BC009091BC0097FF95 +:10064000FCCF9091B900987F983021F0903111F053 +:1006500081E008958093BB0084E88093BC00809182 +:10066000BC0087FFFCCF8091B900887F883111F0F2 +:10067000803471F780E0089584E98093BC00809114 +:10068000BC0084FDFCCF08958093BB0084E8809378 +:10069000BC008091BC0087FFFCCF9091B900987F8F +:1006A00081E0983209F480E0089584E88093BC00EA +:1006B0008091BC0087FFFCCF8091BB0008958091A2 +:1006C0000101811115C080E40E941A038093010189 +:1006D00081110CC082E10E944403809301018111C9 +:1006E00005C08FEF0E944403809301010E943C03E8 +:1006F00084B1807F84B985B1807F85B98AB1837FD9 +:100700008AB98BB1837F8BB93E98469808950E9431 +:100710001A05809301010E945F0380B38C7080BB37 +:1007200081B3836F81BBA5E3B1E0E3E4F1E08EE048 +:100730008E0F11921D928E13FCCF0C940405BF9264 +:10074000CF92DF92EF92FF920F931F93CF93DF939D +:1007500080910101882379F0809134018F5F80932B +:100760003401811108C00E941A0580930101811192 +:1007700002C00E94AC0405E311E0C0E0D0E0DD243B +:10078000D39482E0C82EEE24E394F12CC730D10537 +:1007900000F580910101811164C080E40E941A0378 +:1007A00080930101811112C082E10E944403809371 +:1007B000010181110BC0C7010C2E01C0880F0A94E2 +:1007C000EAF780950E944403809301010E943C0354 +:1007D00048C0CA30A1F028F4C83059F0C93061F0DF +:1007E00005C0CC3089F070F0CD3089F0209A28987F +:1007F00010C0219A29980DC0229A2A980AC0239ADB +:100800002B9807C0529A01C0539A5B9802C03E9A37 +:10081000469890EA9A95F1F79FB1799902C082E0E3 +:1008200001C080E091709D25982B7C9902C084E0E6 +:1008300001C080E0892B7D9902C038E001C030E022 +:10084000832B7E9902C020E101C020E0822B9FB162 +:100850009095991F9927991F9295990F907E892BB2 +:100860000FC080910101811149C080E40E941A03E8 +:1008700080930101882379F1B12C0E943C038B2DD8 +:10088000F8019081981719F08083C09200010E94AE +:100890005F0321960F5F1F4FCE30D10509F076CF51 +:1008A00080910001882361F18150809300018823A9 +:1008B00039F08FE99FE00197F1F700C0000020C0F8 +:1008C000A3E4B1E0E5E3F1E0CF01825F91919D9374 +:1008D0008E13FCCF15C083E10E9444038093010175 +:1008E0008111CACF81E40E941A0380930101811112 +:1008F000C3CF0E945503B82EB094BFCF80E0C0CFC5 +:100900000E94AA0481E0DF91CF911F910F91FF9087 +:10091000EF90DF90CF90BF900895E82FF0E0ED5B6F +:10092000FE4F8081089508950F931F93CF93DF9317 +:10093000C3E4D1E010E00C2F025F899190E00E94A7 +:10094000991B180F0C13F9CF812FDF91CF911F91B5 +:100950000F9108950C94B40556985E9825982D989B +:1009600026982E9827982F988FEF90E090938900E3 +:100970008093880090938B0080938A0090938D00E1 +:1009800080938C00259A2D9A2FEF80E792E02150DA +:1009900080409040E1F700C00000269A2E9A2FEF89 +:1009A00080E792E0215080409040E1F700C00000D5 +:1009B000279A2F9A2FEF80E792E0215080409040B5 +:1009C000E1F700C0000025982D982FEF80E792E016 +:1009D000215080409040E1F700C0000026982E98FA +:1009E0002FEF80E792E0215080409040E1F700C077 +:1009F000000027982F9856985E9825982D9826984D +:100A00002E9827982F98089589EA8093800089E08E +:100A10008093810024982C983F988AB18F748AB96A +:100A20006E98479A8BB1806B8BB9769A0E94AC0412 +:100A30000C94B30580E280930101809151018111F2 +:100A40000EC00E94140381E0809351012FEF83EDCB +:100A500090E3215080409040E1F700C0000080E426 +:100A60000E941A038093010181112EC00E94440349 +:100A700080930101811128C00E94440380930101E9 +:100A8000811122C08FE30E944403809301018111F0 +:100A90001BC00E943C0380E40E941A038093010162 +:100AA000811112C08CE00E944403809301018111E6 +:100AB0000BC00E94440380930101811105C08FE3A4 +:100AC0000E944403809301010E943C038091010134 +:100AD0000895CF93DF93EC016091BD017091BE0149 +:100AE0008091BF019091C0010E94A51BCD2BE9F020 +:100AF000823021F082E00E94621903C082E00E94ED +:100B0000831988E00E94A81185E10E94A81189E05C +:100B10000E94A81189E10E94A81182E10E94A811F7 +:100B20008FE0DF91CF910C94A81188E00E947012A1 +:100B300085E10E94701289E00E94701289E10E9492 +:100B4000701282E10E9470128FE0DF91CF910C94BD +:100B50007012611105C0FC01828190E00E9469055C +:100B600080E090E0089508950F931F938091BD0158 +:100B70009091BE01A091BF01B091C0018C019D0177 +:100B80000470112722273327AC01BD014870552777 +:100B90006627772756985E9825982D9826982E9840 +:100BA00027982F9881FF02C0259A2D9A012B022B9E +:100BB000032B11F0269A2E9A452B462B472B11F02A +:100BC000279A2F9A1F910F91089581E0089581E04F +:100BD00008950C94E70508950F931F93CF93DF9327 +:100BE0008C01FC01C081D181CE010E941E1ABE0180 +:100BF0000E949506EC01B8010E94E905882309F4DA +:100C00008DC0F8018281882309F44AC080915D017A +:100C100081111FC0C431F0E5DF0709F051C00E9407 +:100C2000EB0581E080935D010E943D1C90935C0187 +:100C300080935B011092540110925601109255015D +:100C4000109258011092570110925A0110925901B6 +:100C500065C080915B0190915C010E94491C883CB9 +:100C6000910570F480915401E82FF0E0EE0FFF1F22 +:100C7000EB5AFE4FD183C0838F5F809354014EC0E7 +:100C8000C43880E5D80721F0C538D04501F13AC015 +:100C9000F8018281882341F01092520182E01EC047 +:100CA000C438E0E5DE0759F580915201811106C094 +:100CB00086E20E94A81186E20E94701282E01CC0A7 +:100CC000C438F0E5DF0741F3C538D045D9F4F80161 +:100CD0008281882331F01092530180E20E94BF127A +:100CE0001DC080915301811106C087E20E94A811A6 +:100CF00087E20E94701280E20E94C6120FC0C538BF +:100D0000D04529F381E08093520180935301C801BB +:100D1000DF91CF911F910F910C94E50580E0DF9159 +:100D2000CF911F910F910895089596E0799FF0015A +:100D3000112494E5899FE00DF11D1124E60FF11DAA +:100D4000EE0FFF1FE25FFE4F859194910895880F8B +:100D5000991FFC01E657F040859194910895880F02 +:100D6000991FFC01E65FFE4F8591949108950F93C2 +:100D70001F93CF93DF93EC01811520E3920750F589 +:100D8000C11580E2D80708F0C3C0CB3BD10590F471 +:100D9000C83AD10508F06AC0C53AD10508F05BC071 +:100DA000C430D10508F0D0C1219709F0CAC101E0D3 +:100DB00010E00AC2CF3FD10511F008F0C5C1C03F15 +:100DC000D10508F0A2C0CE01805E9109089708F411 +:100DD000BBC1B7C1C13090E5D90709F4A2C020F565 +:100DE000C0318FE4D80770F4C11590E4D90708F03A +:100DF00094C0C11521E3D20708F0A3C1DD278E01FD +:100E0000106CE2C1C115D04509F09BC10E942515A7 +:100E10008FEF94E32CE0815090402040E1F700C038 +:100E200000000E94981CD0C1C11597E5D90758F45D +:100E3000C03121E5D20708F01CC1C43180E5D807D4 +:100E400008F475C07EC1CE0190578115904108F01D +:100E500078C1DF7073C1C53AD10509F477C1C63ACC +:100E6000D10509F076C102E810E4AEC1C83AD10557 +:100E700009F472C1C93AD10509F471C1CA3AD10560 +:100E800009F470C1CB3AD10509F46FC1CC3AD10550 +:100E900009F46EC1CD3AD10509F46DC1C03BD1054D +:100EA00009F46CC1CE3AD10509F46BC1CF3AD10532 +:100EB00009F46AC1C13BD10509F469C1C23BD1053E +:100EC00009F468C1C33BD10509F467C1C43BD1052E +:100ED00009F466C1C53BD10509F465C1C63BD1051E +:100EE00009F464C1C73BD10509F463C1C83BD1050E +:100EF00009F462C1C93BD10509F461C1CA3BD105FE +:100F000009F460C100E014E45FC18E0110655CC1AA +:100F1000CE019F700E94AF0658C1DF708E01106A2B +:100F200053C18091DA0181608093DA014DC10E9442 +:100F30003D1E811102C00E94231E0E945A1E90E095 +:100F40009093FB018093FA01C23080E5D80721F429 +:100F50008091FA01816086C0C43090E5D90721F400 +:100F60008091FA0182607EC0C63020E5D20721F46C +:100F70008091FA01846076C0C83080E5D80719F402 +:100F80008091FA0127C0CA3090E5D90721F48091F9 +:100F9000FA01806167C0CC3020E5D20721F480914E +:100FA000FA0180625FC0CE3080E5D80721F48091DD +:100FB000FA01806457C0C03190E5D90721F48091CF +:100FC000FA0180684FC0C23120E5D20729F4809130 +:100FD000FA018460886046C0C33080E5D80721F4F8 +:100FE0008091FA018E7F3EC0C53090E5D90721F48B +:100FF0008091FA018D7F36C0C73020E5D20721F4F9 +:101000008091FA018B7F2EC0C93080E5D80719F492 +:101010008091FA0126C0CB3090E5D90721F4809168 +:10102000FA018F7E1FC0CD3020E5D20721F48091D8 +:10103000FA018F7D17C0CF3080E5D80721F4809169 +:10104000FA018F7B0FC0C13190E5D90721F480915F +:10105000FA018F7707C0C331D04531F48091FA018E +:101060008B7F877F8093FA018091FA010E945E1E38 +:10107000ABC08D2F99278F70992781309105D9F4B6 +:101080009E012370332702C0880F991F2A95E2F72B +:101090009C688E0144E0000F111F4A95E1F700277C +:1010A0001370802B912B53E0CC0FDD1F5A95E1F785 +:1010B000C076DD272FC08230910531F4DC2FCC279C +:1010C0008E01016F106A80C08330910569F4CE01F2 +:1010D0008370992701E010E002C0000F111F8A956C +:1010E000E2F7C8019C680FC084309105B9F4CE01C5 +:1010F0008370992701E010E002C0000F111F8A954C +:10110000E2F7C8019A6823E0CC0FDD1F2A95E1F7CA +:10111000C07ED7708C010C2B1D2B56C085309105DD +:1011200031F4DC2FCC278E01046F106A4DC0069776 +:1011300009F04AC0CF71DD27DC2FCC278E01106269 +:1011400043C000E010E040C08E013EC001E810E462 +:101150003BC003E810E438C002EE14E435C009EEE9 +:1011600014E432C00AEE14E42FC005EB14E42CC0E2 +:1011700006EB14E429C007EB14E426C00CEC14E4DD +:1011800023C00DEC14E420C003E815E41DC00AE8F8 +:1011900015E41AC002E915E417C004E915E414C007 +:1011A00001E216E411C003E216E40EC004E216E404 +:1011B0000BC005E216E408C006E216E405C007E22B +:1011C00016E402C00AE216E4C801DF91CF911F9134 +:1011D0000F91089596E0799FF001112494E5899F7D +:1011E000E00DF11D1124E60FF11DEE0FFF1FE25F70 +:1011F000FE4F85919491803E9105E0F4803C9105ED +:1012000058F58133910509F46FC048F4893291058E +:1012100009F463C08A32910509F46DC072C0893344 +:101220009105E9F082389105D1F08533910509F4F3 +:101230004DC067C0833E910581F138F4803E910531 +:10124000B9F0823E9105D9F05CC0863E910561F10E +:10125000873E9105A1F155C00E94A70608952091EF +:10126000FA0120FD02C021FF4CC080EE90E049C091 +:101270008091FA0180FFF9CF89E390E042C080912C +:10128000FA0182FF0EC08091FA0184FF03C080E062 +:1012900090E037C083EE90E034C08091FA0182FF85 +:1012A000F2CF82EE90E02DC08091FA0183FF0BC057 +:1012B0008091FA0184FDEBCF87EE90E022C080910F +:1012C000FA0183FFF5CF86EE90E01BC08091FA0112 +:1012D00085FF07C089E290E014C08091FA0185FF84 +:1012E000F9CF85E390E00DC08091FA0186FF07C039 +:1012F0008AE290E006C08091FA0186FFF9CF81E38F +:1013000090E00E94B706089508950C948409809196 +:101310006E010895CF93DF9300D01F92CDB7DEB753 +:101320009C018091F101843019F593E099833B830E +:101330002A839093E9008FEF9091E800815095FD0A +:1013400006C095ED9A95F1F700008111F5CF8091D7 +:10135000E80085FF0DC040E050E063E070E0CE01A2 +:1013600001960E94F40B8091E8008E778093E8004C +:101370000F900F900F90DF91CF910895CF93DF934F +:1013800000D01F92CDB7DEB72091F101243021F5B6 +:1013900022E029839B838A8383E08093E9008FEF97 +:1013A0009091E800815095FD06C095ED9A95F1F772 +:1013B00000008111F5CF8091E80085FF0DC040E06D +:1013C00050E063E070E0CE0101960E94F40B809142 +:1013D000E8008E778093E8000F900F900F90DF91D8 +:1013E000CF9108952091F1012430F1F422E020936F +:1013F000E9002FEF3091E800215035FD06C035EDB2 +:101400003A95F1F700002111F5CF2091E80025FF72 +:101410000BC040E050E065E070E00E94F40B80916A +:10142000E8008E778093E8000895CF93DF93EC0176 +:101430009091F101943009F046C080910C0188230D +:10144000D9F080910D018823B9F09093E9008FEFD6 +:101450009091E800815095FD06C095E19A95F1F7CD +:1014600000008111F5CF8091E80085FF2CC040E09D +:1014700050E060E170E017C081E08093E9008FEFF9 +:101480009091E800815095FD06C095ED9A95F1F791 +:1014900000008111F5CF8091E80085FF14C040E085 +:1014A00050E068E070E0CE010E94F40B8091E8000B +:1014B0008E778093E80080E1FE01AEE5B1E0019017 +:1014C0000D928A95E1F7DF91CF9108958091F00117 +:1014D000811109C00E94890D0E94E60D8091E200F1 +:1014E00084608093E20008951092F00108950895B9 +:1014F0000C94CD220E942E1C0E94D3220E948C109C +:101500000C94850942E061EC81E00E94030D42E009 +:1015100061EC82E00E94030D42E061EC83E00E94F6 +:10152000030D42E161EC84E00C94030D8091F30122 +:10153000833009F455C030F4813071F0823009F401 +:101540008EC008958A3009F47AC08B3009F460C0E7 +:10155000893009F09CC020C08091F201813A09F0E5 +:1015600096C08091E800877F8093E8008091F60123 +:101570009091F701892B21F460E18EE591E003C0A1 +:1015800060E080E090E070E00E943F0C8091E80015 +:101590008B778093E80008958091F201813209F001 +:1015A00076C08091F6019091F701009719F00397AA +:1015B00009F06DC08091E800877F8093E8008091FA +:1015C000E80082FD05C08091F1018111F8CF5FC074 +:1015D0008091F10080936E018091E8008B7753C079 +:1015E0008091F201813A09F052C08091F601909108 +:1015F000F701892B09F04BC08091E800877F809329 +:10160000E8008091E80080FFFCCF80910C0136C09B +:101610008091F2018132D9F58091F6019091F70124 +:10162000892BA9F58091E800877F8093E8000E94CC +:10163000380D8091F40180930C010C942515809154 +:10164000F201813221F58091E800877F8093E800E4 +:101650000E94380D8091F50180936F01089580916B +:10166000F201813AA1F48091E800877F8093E8003D +:101670008091E80080FFFCCF80916F018093F100A2 +:101680008091E8008E778093E8000C94380D0895DF +:1016900084B7877F84BF88E10FB6F8948093600099 +:1016A000109260000FBE90E080E80FB6F89480932F +:1016B0006100909361000FBE0E94DB100E94890DB3 +:1016C0000E94E60D8091E20084608093E2007894AD +:1016D0000E946C100E94DD1082E091E00E94871051 +:1016E0000E94BB228091F101853069F40E94F51BB4 +:1016F0008091EF018823B1F30E94201C882391F38D +:101700000E94DE0BEFCF0E94E310ECCF292F33278E +:1017100023303105C9F064F42130310581F02230E5 +:10172000310509F043C08DE690E022EE33E042C07F +:1017300021323105F1F02232310541F137C082E129 +:1017400090E02FE434E036C099278130910541F0D4 +:101750008230910541F0892B49F5EEEDF3E005C0AB +:10176000E6ECF3E002C0EEEAF3E0849190E09F0142 +:1017700021C06430D8F4E62FF0E0EE0FFF1FEE5DDD +:10178000FE4F2081318189E090E014C0643070F414 +:1017900070E0FB01EE0FFF1FE65EFE4F20813181FE +:1017A000FB01EA5EFE4F808190E004C080E090E0A3 +:1017B00020E030E0FA0131832083089580E189BD83 +:1017C00082E189BD09B400FEFDCF8091D8008F7DF4 +:1017D0008093D8008091E00082608093E000809147 +:1017E000E00081FDFCCF0895CF92DF92EF92FF924F +:1017F0000F931F93CF93DF93EC018B016A010E943B +:10180000570D811133C0C114D10439F0F601808124 +:101810009181081B190BC80FD91FE12CF12C011560 +:10182000110519F18091E80085FD16C08091E8004E +:101830008E778093E800C114D10449F0F6018081CD +:101840009181E80EF91EF182E08285E00FC00E94CE +:10185000570D882321F30AC089918093F10001502C +:101860001109FFEFEF1AFF0ADACF80E0DF91CF9185 +:101870001F910F91FF90EF90DF90CF9008952091EE +:10188000F8013091F9012617370748F06115710505 +:1018900039F42091E8002E772093E80001C0B901C7 +:1018A00040E061157105A9F12091F101222309F4AD +:1018B00043C0253009F442C02091E80023FD40C018 +:1018C0002091E80022FD32C02091E80020FFE9CFFE +:1018D0004091F3002091F20030E0342BFC01CF0165 +:1018E0006115710559F02830310540F481918093DC +:1018F000F100615071092F5F3F4FF1CF41E0283077 +:10190000310509F040E02091E8002E772093E800AF +:10191000C8CF4111C9CF0AC08091F101882361F07D +:10192000853061F08091E80083FD0AC08091E80075 +:1019300082FFF2CF80E0089582E0089583E0089569 +:1019400081E008952091F8013091F90126173707B9 +:1019500048F06115710539F42091E8002E77209345 +:10196000E80001C0B901FC0120E06115710591F1A9 +:101970008091F101882309F440C0853009F43FC00B +:101980008091E80083FD3DC08091E80082FD2FC07A +:101990008091E80080FFE9CF2091F3008091F20070 +:1019A00090E0922B6115710559F08830910540F453 +:1019B00024912093F1003196615071090196F2CF84 +:1019C00021E0089709F020E08091E8008E7780936D +:1019D000E800CBCF2111CCCF0AC08091F101882340 +:1019E00061F0853061F08091E80083FD0AC080914C +:1019F000E80082FFF2CF80E0089582E0089583E05E +:101A0000089581E00895982F973058F59093E90054 +:101A1000981739F07091EC002091ED005091F00092 +:101A200003C0242F762F50E021FF19C03091EB0026 +:101A30003E7F3093EB003091ED003D7F3093ED0021 +:101A40003091EB0031603093EB007093EC00209309 +:101A5000ED005093F0002091EE0027FF07C09F5F3C +:101A6000D3CF8F708093E90081E0089580E00895DE +:101A70008091F20187FF11C08091E80082FD05C0CE +:101A80008091F1018111F8CF11C08091E8008B772E +:101A90000BC08091F101882349F08091E80080FF1C +:101AA000F8CF8091E8008E778093E8000895209128 +:101AB000E4003091E50095E64091EC00842F8170C0 +:101AC00040FF22C08091E80080FD1CC08091F101A0 +:101AD000882391F0853091F08091EB0085FD10C056 +:101AE0004091E4005091E5004217530729F39A0111 +:101AF000915011F784E0089582E0089583E00895FD +:101B000081E0089580E008954091E80042FFDECF33 +:101B100008950E94F70D0E94FF0DE0EEF0E0808135 +:101B200081608083E8EDF0E080818F77808319BC4D +:101B3000A7EDB0E08C918E7F8C9380818F7E808327 +:101B40001092F00108950F931F93CF93DF930E949B +:101B5000F70D0E94FF0DC8EDD0E088818F77888354 +:101B600088818068888388818F7D888319BC1092E2 +:101B7000F1011092ED011092EF011092EE0100EED2 +:101B800010E0F80180818B7F808388818160888369 +:101B900042E060E080E00E94030DE1EEF0E0808131 +:101BA0008E7F8083E2EEF0E080818160808380819F +:101BB00088608083F80180818E7F80838881806146 +:101BC0008883DF91CF911F910F910895E8EDF0E0A8 +:101BD00080818F7E8083E7EDF0E08081816080836B +:101BE00084E082BF81E08093F0010C94A30DE8EDC6 +:101BF000F0E080818E7F80831092E2000895109241 +:101C0000DA001092E10008951F920F920FB60F9222 +:101C100011242F933F934F935F936F937F938F93F1 +:101C20009F93AF93BF93EF93FF938091E10082FF67 +:101C30000BC08091E20082FF07C08091E1008B7FA2 +:101C40008093E1000E946B108091DA0080FF1FC03A +:101C50008091D80080FF1BC08091DA008E7F809336 +:101C6000DA008091D90080FF0DC080E189BD82E15A +:101C700089BD09B400FEFDCF81E08093F1010E948F +:101C8000660A05C019BC1092F1010E94740A809185 +:101C9000E10080FF19C08091E20080FF15C08091B3 +:101CA000E2008E7F8093E2008091E2008061809369 +:101CB000E2008091D80080628093D80019BC85E052 +:101CC0008093F1010E94780A8091E10084FF30C086 +:101CD0008091E20084FF2CC080E189BD82E189BD52 +:101CE00009B400FEFDCF8091D8008F7D8093D8008D +:101CF0008091E1008F7E8093E1008091E2008F7EF1 +:101D00008093E2008091E20081608093E200809104 +:101D1000ED01882311F084E007C08091E30087FD86 +:101D200002C081E001C083E08093F1010E947A0A41 +:101D30008091E10083FF29C08091E20083FF25C0EC +:101D40008091E100877F8093E10082E08093F10140 +:101D50001092ED018091E1008E7F8093E1008091EF +:101D6000E2008E7F8093E2008091E20080618093A8 +:101D7000E20042E060E080E00E94030D8091F0000C +:101D800088608093F0000E94770AFF91EF91BF91E5 +:101D9000AF919F918F917F916F915F914F913F9103 +:101DA0002F910F900FBE0F901F9018951F920F92BA +:101DB0000FB60F9211242F933F934F935F936F931E +:101DC0007F938F939F93AF93BF93CF93DF93EF93C3 +:101DD000FF93C091E900CF708091EC00D82FD170B3 +:101DE00080FDD0E81092E9008091F000877F809319 +:101DF000F00078940E941A0F1092E9008091F00090 +:101E000088608093F000CD2BCF70C093E900FF91E4 +:101E1000EF91DF91CF91BF91AF919F918F917F9182 +:101E20006F915F914F913F912F910F900FBE0F9047 +:101E30001F9018951F93CF93DF93CDB7DEB7AA9766 +:101E40000FB6F894DEBF0FBECDBFE2EFF1E088E041 +:101E50008E0F9091F10091938E13FBCF0E94960A02 +:101E60008091E80083FF1FC18091F2019091F301FE +:101E7000492F50E04A30510508F015C1FA01EA5ADD +:101E8000FF4F0C945524803881F0823809F00BC143 +:101E90008091F6018F708093E9008091EB0085FBC3 +:101EA000882780F91092E90006C08091EE01909198 +:101EB000EF01911182609091E800977F9093E80084 +:101EC0008093F1001092F100C8C0282F2D7F09F0F7 +:101ED000EAC0882319F0823061F0E5C08091F401F6 +:101EE000813009F0E0C0933009F080E08093EF0189 +:101EF0002BC08091F401811127C08091F6018F7071 +:101F000009F4D1C08093E9002091EB0020FF1CC0B0 +:101F1000933021F48091EB00806214C09091EB002B +:101F200090619093EB0021E030E0A90102C0440FE2 +:101F3000551F8A95E2F74093EA001092EA008091DB +:101F4000EB0088608093EB001092E9008091E8003C +:101F5000877F86C08111A7C01091F4011F778091FF +:101F6000E3008078812B8093E3008091E800877FF5 +:101F70008093E8000E94380D8091E80080FFFCCF3C +:101F80008091E30080688093E300111102C082E039 +:101F900001C083E08093F10186C08058823008F050 +:101FA00082C08091F4019091F5018C3D53E095073A +:101FB00079F583E08A838AE289834FB7F894DE015A +:101FC000139620E03EE051E2E32FF0E050935700FB +:101FD000E49120FF03C0E295EF703F5FEF708E2F1A +:101FE00090E0EA3010F0C79601C0C0968D939D93A3 +:101FF0002F5F243149F74FBF8091E800877F80939E +:10200000E8006AE270E0CE0101960E943F0C14C025 +:10201000AE014F5F5F4F6091F6010E94860BBC01DD +:10202000009709F440C09091E800977F9093E800F2 +:1020300089819A810E94A20C8091E8008B7780931D +:10204000E80031C0803879F58091E800877F80937F +:10205000E8008091ED018093F1008091E8008E7797 +:102060008093E8000E94380D1EC081111CC0909121 +:10207000F4019230C0F48091E800877F8093E800FB +:102080009093ED010E94380D8091ED01811106C001 +:102090008091E30087FD02C081E001C084E080936D +:1020A000F1010E94820A8091E80083FF0AC08091BA +:1020B000E800877F8093E8008091EB008062809346 +:1020C000EB00AA960FB6F894DEBF0FBECDBFDF912E +:1020D000CF911F9108950895CF938091F1018823A6 +:1020E000A1F0C091E900CF709091EC00892F817030 +:1020F00090FD80E8C82B1092E9008091E80083FDF4 +:102100000E941A0FCF70C093E900CF910895909369 +:102110007501809374010895E0917401F091750147 +:10212000309721F00190F081E02D099480E008952E +:10213000E0917401F0917501309721F00280F381F4 +:10214000E02D09940895E0917401F09175013097A4 +:1021500021F00480F581E02D099408952091720109 +:10216000309173018217930771F0909373018093FC +:102170007201E0917401F0917501309721F00680B1 +:10218000F781E02D0994089520917001309171013B +:102190008217930771F09093710180937001E09121 +:1021A0007401F0917501309721F00084F185E02DE4 +:1021B0000994089508950C94DA100E94341C0E942A +:1021C00087030C94F61C9F92AF92BF92CF92DF923E +:1021D000EF92FF920F931F93CF93DF9300D000D025 +:1021E00000D0CDB7DEB70E949F030DE010E0AA2417 +:1021F000A394B12C902E802F0E948D049801295811 +:102200003E4F6901F901F080F826A1F4015011094F +:1022100088F78FEF89838A831B820E943D1C81602F +:10222000782F9D838C8349815A816B818D810E9497 +:102230007A112FC09091DA0191FF04C08E830E9421 +:1022400093048E8125E030E0A501022E01C0440FE9 +:102250000A94EAF7E42E4F21C1F029839A828E2155 +:1022600091E009F490E09B830E943D1C8160782FEF +:102270009D838C8349815A816B818D810E947A1163 +:10228000F6018081E826E08204C021503109E0F6A1 +:10229000BDCF0E94DD1F109176010E948C1018178F +:1022A000B9F00E948C108093760126960FB6F894B0 +:1022B000DEBF0FBECDBFDF91CF911F910F91FF9079 +:1022C000EF90DF90CF90BF90AF909F900C948509D6 +:1022D00026960FB6F894DEBF0FBECDBFDF91CF912B +:1022E0001F910F91FF90EF90DF90CF90BF90AF9034 +:1022F0009F900895CF93DF93CDB7DEB72B970FB69E +:10230000F894DEBF0FBECDBF4F83588769877A87A9 +:102310008B87DE01119686E0FD0111928A95E9F71F +:1023200085E0FE01379601900D928A95E1F749818B +:102330005A816B817C818D819E810E94C3172B966F +:102340000FB6F894DEBF0FBECDBFDF91CF910895D9 +:10235000CF93882309F4C2C0C82F823859F40E9451 +:102360008C1081FDBBC089E30E949D1A0E946A1BEC +:1023700089E30CC0833879F40E948C1080FDAEC0D4 +:1023800083E50E949D1A0E946A1B83E50E94DF1A62 +:10239000CF910C946A1B843859F40E948C1082FDF2 +:1023A0009DC087E40E949D1A0E946A1B87E4EECFBD +:1023B0008CEF8C0F813A48F48C2F0E9420228111DF +:1023C0008DC08C2F0E949D1AE3CF80E28C0F883045 +:1023D00048F4C77081E001C0880FCA95EAF70E94EF +:1023E000231BD6CF8BE58C0F833078F4C53A29F0C8 +:1023F000C63A31F083E890E005C081E890E002C081 +:1024000082E890E0CF910C94AE1088E58C0F833178 +:1024100008F064C0C83A39F1C93A41F1CA3A49F101 +:10242000CB3A51F1CC3A59F1CD3A61F1C03B69F167 +:10243000CE3A71F1CF3A79F1C13B81F1C23B89F1DA +:10244000C33B91F1C43B99F1C53BA1F1C63BA9F156 +:10245000C73BB1F1C83BB9F1C93BC1F1CA3BC9F1B6 +:1024600080E090E038C082EE90E035C089EE90E0E8 +:1024700032C08AEE90E02FC085EB90E02CC086EB56 +:1024800090E029C087EB90E026C08CEC90E023C060 +:102490008DEC90E020C083E891E01DC08AE891E0D7 +:1024A0001AC082E991E017C084E991E014C081E28A +:1024B00092E011C083E292E00EC084E292E00BC091 +:1024C00085E292E008C086E292E005C087E292E0F1 +:1024D00002C08AE292E0CF910C94C410CF9108958B +:1024E000882309F44BC0823859F40E948C1081FF74 +:1024F00045C089E30E949D1A0E946A1B89E30CC0B3 +:10250000833871F40E948C1080FF38C083E50E94EC +:102510009D1A0E946A1B83E50E94DF1A0C946A1BB5 +:10252000843859F40E948C1082FF28C087E40E94EE +:102530009D1A0E946A1B87E4EFCF9CEF980F913A97 +:1025400058F390E2980F983050F4877091E001C0F2 +:10255000990F8A95EAF7892F0E94291BDFCF9BE507 +:10256000980F933020F480E090E00C94AE10885ADD +:10257000833120F480E090E00C94C4100895882307 +:1025800021F00E94231B0C946A1B0895882321F0DC +:102590000E94291B0C946A1B08957F928F929F9230 +:1025A000AF92BF92CF92DF92EF92FF920F931F9361 +:1025B000CF93DF931F92CDB7DEB77C01C62E772E67 +:1025C000FC01058102950F70128111110E94401BC0 +:1025D0000E94961A882379F0112369F080E28C0D0D +:1025E000883048F082E00E947F1A0E94961A91E09B +:1025F000D82ED92601C0D12CE72DE295EF70F0E05E +:10260000E05AFF4F0C945524872D807F072D0F70C3 +:10261000882311F00295007F112389F0002309F42B +:1026200090C180E28C0D883020F4802F0E94231B03 +:1026300003C0802F0E94331B0E946A1B82C18C2D15 +:102640000E947012002309F495C180E28C0D88303D +:1026500020F4802F0E94291B03C0802F0E94391B69 +:102660000E946A1B87C1972D907F872D8F709032B3 +:1026700011F08295807FCC2021F0F1E0CF16B1F0EF +:102680001EC0112349F0002309F414C1013009F0E0 +:1026900011C10E94531B6EC1002319F0013009F4CF +:1026A00069C189830E94561B89810AC1112321F0C7 +:1026B000023008F05FC1FEC001115CC101C11123ED +:1026C00021F0002309F4F6C03CC1002309F4F8C04E +:1026D0003EC1872D86958695837090E0009719F00E +:1026E000019761F047C1112321F08C2D972D937034 +:1026F00002C080E090E00E94AE103CC1112321F0A6 +:102700008C2D972D937002C080E090E00E94C41041 +:1027100031C18C2D112319F00E94E51E02C00E94C8 +:102720004D1F0E94D21F26C1872D837009F052C011 +:10273000111120C18C2D829586958770880F880F86 +:102740009C2D9F70892E912CA12CB12C082E04C099 +:10275000880C991CAA1CBB1C0A94D2F7C4FE14C096 +:102760000FE010E020E030E0B901A80104C0440F00 +:10277000551F661F771F8A95D2F7CB01BA01609566 +:1027800070958095909503C060E070E0CB01272D97 +:1027900026952695237030E02230310569F02330EC +:1027A000310589F0682979298A299B292130310549 +:1027B00071F00E940B19DEC0682979298A299B29AA +:1027C0000E942719D7C00E940B19C501B4010E94AD +:1027D000EF18D0C0112319F0872D817001C08695A4 +:1027E000882309F4C7C08C2D829586958770880F41 +:1027F000880F9C2D9F70892E912CA12CB12C082E16 +:1028000004C0880C991CAA1CBB1C0A94D2F7C4FEF5 +:1028100014C00FE010E020E030E0B901A80104C0CE +:10282000440F551F661F771F8A95D2F7CB01BA0157 +:10283000609570958095909503C060E070E0CB0145 +:10284000272D269526952370422F50E042305105C2 +:1028500069F04330510589F0682979298A299B2933 +:102860004130510571F00E94E51984C06829792929 +:102870008A299B290E94011A7DC00E94E519C50181 +:10288000B4010E94C91976C08C2D90E0FC01E05E75 +:10289000F109E531F10508F050C0E059FF4F0C9403 +:1028A00055240C2D0F70872D8F71112331F00E944C +:1028B0006219802F0E94BF125DC00E948319802F71 +:1028C0000E94C61257C0112339F0011153C0872D41 +:1028D0008F710E94A8194EC0023008F04BC0F7CF8C +:1028E000112339F0872D8F710E94621943C0112383 +:1028F000C9F3872D8F710E9483193CC0112329F0E1 +:10290000872D8F710E944D1935C00E94431932C026 +:10291000112351F0172D1F71812F0E94621963E05E +:10292000812F0E94761A26C081E00E947F1A023011 +:1029300008F182E00E947F1A1DC0112331F00023AC +:1029400089F28C2D0E94A81115C0002391F28C2DC4 +:102950000E9470120FC0472D4F706C2DC7010E944E +:10296000A9050E94671806C0472D4F706C2DC7013E +:102970000E949406DD20F9F00E94721A80FD1BC0AF +:10298000F70112820E946C1A0E946219C7010E940C +:10299000EA140E946C1A0F90DF91CF911F910F9152 +:1029A000FF90EF90DF90CF90BF90AF909F908F906F +:1029B0007F900C9483190F90DF91CF911F910F910D +:1029C000FF90EF90DF90CF90BF90AF909F908F904F +:1029D0007F9008950F931F93CF93DF93EC0188812D +:1029E00099812B813C81232BB9F09F3F11F48F3FBC +:1029F00099F0CE010E94EC05882371F068817981FD +:102A00008A810E94681A8C010E941D1A0E94E41893 +:102A1000B801CE010E94CD12DF91CF911F910F918D +:102A200008950E94401B0E94501B0E94151B0E948B +:102A30006A1B0E9483200E94D21F80E090E00E94C7 +:102A4000AE1080E090E00C94C4100E94301B0C94F7 +:102A500011150E945D1A292F22952F7030E02C301D +:102A600031054CF42A3031056CF422503109223002 +:102A70003105A8F407C02C30310569F02F3031053D +:102A800051F00DC0803F69F018F4803E40F409C059 +:102A9000843F29F406C093FB882780F9089580E0DD +:102AA000089581E00895CF93DF9300D000D01F9266 +:102AB000CDB7DEB70F900F900F900F900F90DF9172 +:102AC000CF910895CF93DF9300D000D000D0CDB741 +:102AD000DEB726960FB6F894DEBF0FBECDBFDF91EE +:102AE000CF9108951F93CF93DF93C091850116E096 +:102AF00080918601C81799F0D0E01C9FF0011D9FBE +:102B0000F00D1124E957FE4F40815181628173819C +:102B1000848195810E9462152196C770E9CFDF916B +:102B2000CF911F9108954091B7015091B8016091E4 +:102B3000B9017091BA018091BB019091BC010C94D4 +:102B400062158091BC0182958F7009F054C080910C +:102B5000B901882309F44FC080918501A0918601B5 +:102B60006091B7017091B8014091BA015091BB01D9 +:102B7000B6E08A1709F43FC090E041155105C1F154 +:102B80007F3F11F46F3FA1F1B89FF001B99FF00DA5 +:102B90001124E957FE4F218172132AC0208162134C +:102BA00027C02281211124C02381348124173507B5 +:102BB00010F421503109241B350B283C3105C0F499 +:102BC0002091BC012F7020612093BC0126E0289F3A +:102BD000F001299FF00D1124E457FE4F80818F7082 +:102BE0008061808387EB91E00E94EA140C94721557 +:102BF00001968770BECF0895CF92DF92EF92FF9239 +:102C00000F931F93CF93DF93CDB7DEB762970FB6C5 +:102C1000F894DEBF0FBECDBF8C0185E0F801DE0168 +:102C20001D9601900D928A95E1F7D8014C9111966D +:102C30005C91119712966C9112971396CD90DC903F +:102C400014973091B7017091B8018091BA019091B9 +:102C5000BB01009709F46BC17F3F19F43F3F09F4B2 +:102C600066C1E090B901EE2009F4C0C02091BC011A +:102C7000C816D90628F0F601E81BF90BCF0104C0ED +:102C8000809590958C0D9D1DFF24F394883C9105B3 +:102C900078F0F12C207F09F0C6C07C2DD98AC88A33 +:102CA00089890E94531587EB91E00E94EA14B1C014 +:102CB000822F807F09F046C0751314C0341312C0F0 +:102CC000611110C02F7020612093BC010E949315E8 +:102CD00087EB91E00E94EA148091BC01D80115961F +:102CE0008C932EC0CD2819F15F3F11F44F3FF9F0BE +:102CF000F62E61111CC0809185012091860136E07D +:102D0000821709F45AC090E0389FF001399FF00D06 +:102D10001124E957FE4F7181571306C07081471384 +:102D200003C07281711103C001968770E9CFF62E3E +:102D3000662309F418C18091BC0181608093BC01B5 +:102D4000F12C11C1751308C0341306C0611104C001 +:102D50008091BC01D801C3C04D875E878D859E855B +:102D60006A8B0E9429156A898823E1F16623D1F1D3 +:102D70002091BC01822F82958F7090E0029774F0B1 +:102D80008091B7019091B80198878F831986DB866F +:102D9000CA862C87CE0107960E94EA1486E0F801C5 +:102DA000A7EBB1E001900D928A95E1F70E94A11581 +:102DB0000E949315FF24F394D6C04D875E878D85BE +:102DC0009E850E945D1A292F22952F7030E02230B7 +:102DD00031050CF0BCC09F7009F0B6C0805E883031 +:102DE00008F4C1C0C8010E94EA14E4CFC816D9068D +:102DF00008F453C0F601E81BF90BCF01883C91059C +:102E000008F450C0F12C7C2DD98AC88A89890E9487 +:102E10005315E7EBF1E086E0DF011D928A95E9F7B3 +:102E20000E949315A0C0751314C0341312C0611111 +:102E300010C08091BC01F8018583C8010E94EA148A +:102E400086E0E7EBF1E0DF011D928A95E9F7FE2CC1 +:102E50008AC04D875E878D859E856A8B0E94291565 +:102E60006A89882309F4BECF662309F4BBCF209179 +:102E7000BC01822F82958F7090E002970CF48ECF68 +:102E80008091B7019091B8019A8389831B82DD827A +:102E9000CC822E83CE0101967FCF809590958C0DAC +:102EA0009D1DACCFF62E662309F49CCF75132EC062 +:102EB00034132CC02091BC0120FD1FC0822F8295AD +:102EC0008F70D9F0D80115962C9315978F3049F053 +:102ED0008F5F982F9295907F822F8F70892B1596F8 +:102EE0008C93C8010E94EA1486E0F801A7EBB1E0D8 +:102EF00001900D928A95E1F793CF86E0F801A7EB58 +:102F0000B1E001900D928A95E1F72DC04D875E8763 +:102F10008D859E850E942915811140CF8091BC012D +:102F200081608093BC01C8010E94EA141CC0662322 +:102F300009F458CF4D875E878D859E850E9429159F +:102F4000882309F44FCF2ACF811148CF0CC02430F9 +:102F500031050CF047CF9F7009F440CFF8019581FF +:102F6000907F09F03BCF8F2D62960FB6F894DEBFAD +:102F70000FBECDBFDF91CF911F910F91FF90EF90CA +:102F8000DF90CF9008951F93CF93DF93CDB7DEB737 +:102F90002C970FB6F894DEBF0FBECDBF4F83588776 +:102FA00069877A878B879C87CE0107960E94FC15DC +:102FB000882369F08F8198852A853B85232BF1F141 +:102FC0009F3F09F063C08F3F09F060C037C086E0C3 +:102FD000FE013796DE01119601900D928A95E1F778 +:102FE0006F817885EA85FB85309741F17F3F11F449 +:102FF0006F3F21F12091860130E0C9010196877071 +:1030000099274091850150E08417950709F447C03E +:1030100069837A83FD83EC8396E0929FD001939F2E +:10302000B00D1124A957BE4FFE01319601900D92AB +:103030009A95E1F7809386010E94721516E08091BF +:103040008501909186018917C1F1189FC001112453 +:1030500089579E4F0E94FC15882379F1E0918501E4 +:103060001E9FF0011124E957FE4F4081518162817A +:103070007381848195810E9462158091850190E021 +:1030800001968770992780938501D9CF4F81588504 +:1030900069857A858B859C850E946215CFCF0E94B9 +:1030A00025151092860110928501E7EBF1E086E08C +:1030B000DF011D928A95E9F7C1CF2C960FB6F894DF +:1030C000DEBF0FBECDBFDF91CF911F910895EF926C +:1030D000FF920F931F93CF93DF938C01009709F416 +:1030E0006CC0F12CEE24E394E8012196F801849160 +:1030F000843740F4843008F051C0813081F0823050 +:1031000019F15BC0853709F444C0A8F19CE7980F1A +:10311000903708F052C08F770E94701241C00E5F46 +:103120001F4FFE01C49180E28C0F883048F4C770B5 +:103130008E2D01C0880FCA95EAF70E94431B14C068 +:103140008C2F0E94A8112DC00E5F1F4FFE01C4914D +:1031500080E28C0F883058F4C7708E2D01C0880F24 +:10316000CA95EAF70E94491B0E946A1B1AC08C2F5D +:103170000E94701216C00E5F1F4FFE01C491CC2337 +:1031800081F08FE99FE00197F1F700C00000C15086 +:10319000F6CF0E5F1F4FFE01F49003C00E94A811EE +:1031A0008E018F2D882309F49FCFEFE9FFE031973F +:1031B000F1F700C000008150F5CFDF91CF911F9152 +:1031C0000F91FF90EF90089508956093C10170935F +:1031D000C2018093C3019093C4010C9411150F9305 +:1031E0001F930091C1011091C2012091C301309140 +:1031F000C401DC01CB01802B912BA22BB32B80933C +:10320000C1019093C201A093C301B093C4011F9167 +:103210000F910C9411150F931F930091C101109100 +:10322000C2012091C3013091C401DC01CB01802394 +:103230009123A223B3238093C1019093C201A09351 +:10324000C301B093C4011F910F910C9411150F93FA +:103250001F930091C1011091C2012091C3013091CF +:10326000C401DC01CB0180279127A227B3278093DB +:10327000C1019093C201A093C301B093C4011F91F7 +:103280000F910C9411151092BD011092BE01109275 +:10329000BF011092C0010C94111541E050E060E0B4 +:1032A00070E004C0440F551F661F771F8A95D2F740 +:1032B0004093BD015093BE016093BF017093C00164 +:1032C0000C94111541E050E060E070E004C0440F40 +:1032D000551F661F771F8A95D2F78091BD01909187 +:1032E000BE01A091BF01B091C001482B592B6A2BA0 +:1032F0007B2B4093BD015093BE016093BF0170933F +:10330000C0010C94111541E050E060E070E004C091 +:10331000440F551F661F771F8A95D2F74095509529 +:10332000609570958091BD019091BE01A091BF0103 +:10333000B091C001482359236A237B234093BD01E8 +:103340005093BE016093BF017093C0010C9411159E +:1033500041E050E060E070E004C0440F551F661F7C +:10336000771F8A95D2F78091BD019091BE01A091FF +:10337000BF01B091C001482759276A277B27409396 +:10338000BD015093BE016093BF017093C0010C94C6 +:1033900011150F931F930091BD011091BE01209153 +:1033A000BF013091C001DC01CB01802B912BA22BFE +:1033B000B32B8093BD019093BE01A093BF01B09346 +:1033C000C0011F910F910C9411150F931F93009141 +:1033D000BD011091BE012091BF013091C001DC01FF +:1033E000CB0180239123A223B3238093BD0190932B +:1033F000BE01A093BF01B093C0011F910F910C9427 +:1034000011150F931F930091BD011091BE012091E2 +:10341000BF013091C001DC01CB0180279127A22799 +:10342000B3278093BD019093BE01A093BF01B093D9 +:10343000C0011F910F910C9411150895CF92DF9246 +:10344000EF92FF920F931F93CF93DF938C01C09065 +:10345000C101D090C201E090C301F090C4018091FD +:10346000BD019091BE01A091BF01B091C001C82AD9 +:10347000D92AEA2AFB2ACFE1D0E0D701C6010C2ED7 +:1034800004C0B695A795979587950A94D2F780FFC3 +:1034900006C0B8018C2F0E94EA08019721F42197F9 +:1034A00060F780E001C08C2FDF91CF911F910F91C9 +:1034B000FF90EF90DF90CF900895CF93DF93EC01D2 +:1034C0000E941E1ABE010E94EA08DF91CF91089562 +:1034D000CB010E945D1A08958091C501859585955F +:1034E000859508958091C5018770089598E0899F1A +:1034F00090011124262B2093C5010C946219209170 +:10350000C501809582238093C501982F977069F437 +:1035100030E0482F552747FD50952417350729F0EF +:103520008595859585950C94831908959091C5018D +:10353000977081E009F480E0089590910C0199233F +:1035400021F090910D01911109C020910E0130914F +:103550000F01F90132969FEF40E01FC0982F96951A +:10356000969596959F3050F5E0910E01F0910F01E0 +:10357000E90FF11D877021E030E0A90102C0440F7E +:10358000551F8A95E2F7CA019181892B818308959D +:103590009F3F39F04F5F4E3041F051915813F8CFB3 +:1035A0000DC05111F7CF942FF5CF9F3F39F0F9019E +:1035B000E90FF11D97FDFA95828308950895909182 +:1035C0000C01992321F090910D01911109C02091D6 +:1035D0000E0130910F01F9013296205F3F4F1FC05D +:1035E000982F9695969596959F30F0F4E0910E0160 +:1035F000F0910F01E90FF11D877021E030E0A90182 +:1036000002C0440F551F8A95E2F7CA018095918147 +:103610008923818308953196E217F30729F0908179 +:103620009813F9CF1082F7CF089581E090E0E091F0 +:103630000E01F0910F01E80FF91F10820196803101 +:103640009105A9F708959091D901892B8093D9010B +:10365000089580959091D90189238093D901089587 +:103660001092D90108959091D801892B8093D801A7 +:10367000089580959091D80189238093D801089569 +:103680001092D80108959091D701892B8093D7018A +:10369000089580959091D70189238093D70108954B +:1036A0001092D70108958093C60108951092C60123 +:1036B000089580910E0190910F01FC0131969C01BB +:1036C000205F3F4F80E0919191118F5FE217F307E8 +:1036D000D1F70895E0910E01F0910F018091D90189 +:1036E0008083E0910E01F0910F0190818091D801CB +:1036F000892B8083E0910E01F0910F0190818091E0 +:10370000D701892B80838091C601882361F0E091E5 +:103710000E01F0910F019081892B80830E94591B2B +:1037200081111092C60180910E0190910F010C94AD +:10373000981020E0009739F0AC01415051098423E2 +:1037400095232F5FF7CF822F0895CF92DF92EF92CC +:10375000FF926C01EE24FF24C114D104E104F104B2 +:1037600021F0C701B60120E101C020E0C72ED82E0C +:10377000E92EFF24C114D104E104F10419F0285FFB +:10378000C701B6016B017C0154E0F694E794D7942D +:10379000C7945A95D1F7C114D104E104F10419F08A +:1037A0002C5FC701B6016B017C0142E0F694E794FF +:1037B000D794C7944A95D1F7C114D104E104F10418 +:1037C00019F02E5FC701B601DC01CB01B695A795B4 +:1037D00097958795892B8A2B8B2B09F02F5F822F4A +:1037E000FF90EF90DF90CF9008958091F1018430A9 +:1037F00021F11092DB0120E488E190E00FB6F8940B +:10380000A895809360000FBE2093600080E00E9426 +:10381000850983B7817F846083BF83B7816083BF5D +:103820007894889583B78E7F83BF88E10FB6F8942C +:1038300080936000109260000FBE0895089508956F +:103840000E941E1C0E949F030E941F1C0E94940441 +:1038500091E0811101C090E0892F08950E94251503 +:103860000E948C100C94850982E084BD93E095BD84 +:103870009AEF97BD80936E0008952FB7F8948091CA +:10388000DC019091DD01A091DE01B091DF012FBF3D +:103890000895CF92DF92EF92FF920F931F932FB76D +:1038A000F8944091DC015091DD016091DE0170914E +:1038B000DF012FBF6A017B01EE24FF248C0120E091 +:1038C00030E0C016D106E206F30610F4415051096B +:1038D0009A01281B390BC9011F910F91FF90EF909E +:1038E000DF90CF9008951F920F920FB60F92112480 +:1038F0008F939F93AF93BF938091DC019091DD01F3 +:10390000A091DE01B091DF010196A11DB11D809350 +:10391000DC019093DD01A093DE01B093DF01BF9144 +:10392000AF919F918F910F900FBE0F901F901895A0 +:103930000E94890DF8942FEF87EA91E6215080408C +:103940009040E1F700C0000087E090EBDC0180933D +:10395000FB019093FC01A093FD01B093FE019CE05C +:1039600088E10FB6F894A895809360000FBE9093FD +:103970006000FFCFEF92FF920F931F93CF93DF93DF +:10398000D82FCDE08C2F0E948D0405E010E0E82EAA +:10399000F12CC701002E02C0959587950A94E2F795 +:1039A00080FF09C0602F7C2F80E00E949506D8130D +:1039B00002C081E006C00150110958F7C15010F74C +:1039C00080E0DF91CF911F910F91FF90EF900895CC +:1039D000CF93C82F8CE20E94BA1C882321F08C2F31 +:1039E000CF910C94BA1C80E0CF910895CF930E94A0 +:1039F0003D1E811102C00E94231EC5E6C15049F040 +:103A00000E949F038FE39CE90197F1F700C000003B +:103A1000F5CF89E20E94E81C811113C18AE20E945D +:103A2000E81C81110E94231E85E00E94E81C811180 +:103A30000E94981C0E94481E8093DA0187E00E9431 +:103A4000E81C8823A9F18BE10E94E81C882351F02F +:103A50008091DA0181FB222720F991E0922790FBE7 +:103A600081F90EC08EE00E94E81C882361F08091ED +:103A7000DA0182FB222720F991E0922790FB82F95C +:103A80008093DA0115C080E10E94E81C9091DA0170 +:103A9000882341F093FB222720F981E0822780FBD5 +:103AA00093F904C0892F809580FB90F99093DA01F7 +:103AB0008091DA010E944C1E0E945A1E8093FA01E6 +:103AC00080EE0E94E81C882341F08091FA01982F33 +:103AD000909590FB80F98093FA0189E30E94E81C9D +:103AE000882359F08091FA0181FB222720F991E087 +:103AF000922790FB81F98093FA0182EE0E94E81CE4 +:103B0000882359F08091FA0182FB222720F991E065 +:103B1000922790FB82F98093FA0186EE0E94E81CBE +:103B2000882359F08091FA0183FB222720F991E044 +:103B3000922790FB83F98093FA0183EE0E94E81CA0 +:103B4000882359F08091FA0184FB222720F991E023 +:103B5000922790FB84F98093FA0185E30E94E81C88 +:103B6000882359F08091FA0185FB222720F991E002 +:103B7000922790FB85F98093FA0181E30E94E81C6B +:103B8000882359F08091FA0186FB222720F991E0E1 +:103B9000922790FB86F98093FA0181E10E94E81C4C +:103BA000882359F08091FA0187FB222720F991E0C0 +:103BB000922790FB87F98093FA018091FA010E9485 +:103BC0005E1E8091FA0187FB882780F980930D01A2 +:103BD00087E20E94E81CC82F8EE10E94E81C811138 +:103BE000C2608FE10E94E81C8111C46080E20E94E3 +:103BF000E81C8111C86081E20E94E81C8111C0614B +:103C000082E20E94E81C8111C06283E20E94E81CEB +:103C10008111C06484E20E94E81C882311F0C0680E +:103C200002C0CC2329F08C2F0E94551E6C2F03C09C +:103C30000E94511E682F70E080E090E0CF910C94BC +:103C4000E518CF9108956DEE7EEF80E090E00E9440 +:103C50008F2460E082E090E00E947D2460E083E0B9 +:103C600090E00E947D2460E084E090E00E947D244A +:103C700060E085E090E00C947D2480E090E00E947C +:103C8000772421E08D3E9E4F09F020E0822F089599 +:103C900082E090E00C946F24682F82E090E00C9416 +:103CA0007D2483E090E00C946F24682F83E090E003 +:103CB0000C947D2484E090E00C946F24682F84E0C1 +:103CC00090E00C947D248091E20180FF0BC0609114 +:103CD000130185E0689FB00111247595679575956E +:103CE00067952BC081FF09C06091130185E0689F33 +:103CF000B00111247595679520C082FF07C06091BF +:103D0000130185E0689FB001112417C09091E30171 +:103D10009923D1F060911201961788F72091130131 +:103D200085E0289F90011124929FA001939F500D40 +:103D3000112470E0CA010E9441246038710540F4EA +:103D40006115710539F002C065E070E0862F0895B5 +:103D50008FE7089581E008958091E20180FF08C017 +:103D60006091110170E0759567957595679521C013 +:103D700081FF06C06091110170E07595679519C0CB +:103D800082FF04C06091110170E010C09091E301C6 +:103D90009923C1F0609110019617A0F7809111014D +:103DA000899FC001112470E00E9441246038710590 +:103DB00028F46115710521F0862F08958FE7089585 +:103DC00081E0089561E070E0F4CF803F21F40E942B +:103DD000631E819504C0813F29F40E94631E809375 +:103DE000E6010895823F21F40E94631E819504C07C +:103DF000833F29F40E94631E8093E5010895893F63 +:103E000019F40E94AC1E05C08A3F31F40E94AC1E1A +:103E100081958093E70108958B3F21F40E94AC1EA9 +:103E2000819504C08C3F29F40E94AC1E8093E80168 +:103E30000895843F21F48091E401816017C0853F9B +:103E400021F48091E401826011C0863F21F48091C9 +:103E5000E40184600BC0873F21F48091E401886015 +:103E600005C0883F31F48091E40180618093E401D2 +:103E700008958D3F21F48091E20181600BC08E3F57 +:103E800021F48091E201826005C08F3F29F4809186 +:103E9000E20184608093E2010895803F39F48091CB +:103EA000E60187FF6CC01092E60169C0813F29F4EA +:103EB0008091E6011816BCF362C09091E501823F43 +:103EC00029F497FF5CC01092E50159C0833F19F4B3 +:103ED0001916CCF354C0893F41F48091E7011816BC +:103EE0000CF04DC01092E7014AC08A3F29F480913E +:103EF000E70187FF44C0F6CF8B3F39F48091E8019A +:103F000087FF3DC01092E8013AC08C3F29F48091B0 +:103F1000E8011816BCF333C0843F21F48091E4011A +:103F20008E7F17C0853F21F48091E4018D7F11C001 +:103F3000863F21F48091E4018B7F0BC0873F21F401 +:103F40008091E401877F05C0883F31F48091E401CE +:103F50008F7E8093E40113C08D3F21F48091E201B4 +:103F60008E7F0BC08E3F21F48091E2018D7F05C0D2 +:103F70008F3F29F48091E2018B7F8093E201809151 +:103F8000E50181110EC08091E60181110AC0809186 +:103F9000E701811106C08091E801811102C01092F1 +:103FA000E301089584EE91E00E94A3100E943D1C5D +:103FB0009093E1018093E00108951F93CF93DF93E5 +:103FC0008091E0019091E1010E94491CAC01909127 +:103FD000E301992321F02091140130E006C02091E3 +:103FE00015018AE0289F900111244217530708F415 +:103FF00086C08091E501C091E601D091E701109162 +:10400000E801811107C0C11176C0D11174C011112E +:1040100072C075C09F3F19F09F5F9093E30118161F +:1040200024F40E94631E8093E5018091E50187FFDF +:1040300005C00E94631E81958093E5011C1624F43F +:104040000E94631E8093E6018091E60187FF05C010 +:104050000E94631E81958093E6016091E5016623CD +:1040600039F1C091E601CC2319F1772767FD7095EE +:10407000872F972F0E94522323E333E343E35FE329 +:104080000E94B6230E941F236093E5016C2F7727BF +:1040900067FD7095872F972F0E94522323E333E308 +:1040A00043E35FE30E94B6230E941F236093E6016F +:1040B0001D1624F40E94AC1E8093E7018091E70155 +:1040C00087FF05C00E94AC1E81958093E701111601 +:1040D00024F40E94AC1E8093E8018091E80187FFE0 +:1040E00005C00E94AC1E81958093E801DF91CF91BD +:1040F0001F910C94D21F9F3F09F08ECF96CFDF9176 +:10410000CF911F910895E4EEF1E085E0DF011D926B +:104110008A95E9F71092E3011092E2010895833045 +:1041200081F128F4813059F08230D1F00895853042 +:1041300009F449C0B8F1863009F456C00895809159 +:104140001501262F30E0280F311D2F3F310524F4B3 +:10415000680F6093150108958FEF809315010895FE +:1041600080911401262F30E0280F311D2F3F31059B +:1041700024F4680F6093140108958FEF8093140165 +:10418000089580911301262F30E0280F311D2F3F15 +:10419000310524F4680F6093130108958FEF809325 +:1041A0001301089580911201262F30E0280F311D50 +:1041B0002F3F310524F4680F6093120108958FEFAB +:1041C00080931201089580911101262F30E0280F6D +:1041D000311D2F3F310524F4680F609311010895BC +:1041E0008FEF80931101089580911001262F30E008 +:1041F000280F311D2F3F310524F4680F6093100103 +:1042000008958FEF809310010895833011F128F401 +:10421000813049F0823091F00895853081F120F1AC +:104220008630C1F1089580911501681720F4861B2E +:10423000809315010895109215010895809114013D +:10424000681720F4861B80931401089510921401BE +:10425000089580911301681720F4861B8093130141 +:10426000089510921301089580911201681720F4A7 +:10427000861B809312010895109212010895809177 +:104280001101681720F4861B809311010895109284 +:104290001101089580911001681720F4861B809306 +:1042A000100108951092100108950F931F938D31FE +:1042B00009F46BC008F03FC08E3009F47FC0C0F431 +:1042C000873009F469C068F4863009F0B1C0809184 +:1042D000DA01817F8E7F8093DA0181E08093EA01A9 +:1042E000A8C0883009F4A2C08B3009F49FC0A0C0D8 +:1042F000863109F49BC078F4803109F472C08131B1 +:1043000009F096C00E94251590910D0181E0892742 +:1043100080930D018BC0893109F488C08B3109F07D +:1043200087C08091DA0181FB222720F991E0922752 +:1043300090FB81F94CC0853309F470C048F4873292 +:1043400009F46CC008F459C0893209F467C070C020 +:10435000833438F48A3308F04EC0883309F466C0D9 +:1043600067C0833409F45AC0883409F061C00E94E0 +:1043700025150FEF13ED20E3015010402040E1F729 +:1043800000C000000E94981C51C00E94D9220E94C7 +:104390008C100E9485094AC09091DA01892F80957E +:1043A000817080FB90F929F0966098609093DA0113 +:1043B00040C0997F977F9093DA0138C08091DA01ED +:1043C00082FB222720F991E0922790FB82F98093CB +:1043D000DA01992359F18091DA0181608093DA0141 +:1043E00025C08091DA0183FB222720F991E09227F2 +:1043F00090FB83F9ECCF895301C08D5141E050E02F +:1044000060E070E08A019B0104C0000F111F221FB1 +:10441000331F8A95D2F7C901B80104C061E070E08A +:1044200080E090E00E94E5180E94251581E001C01F +:1044300080E01F910F91089580E0089580E0089535 +:10444000CF93C82F8091EA01813079F018F0823043 +:10445000E9F187C0E0910E01F0910F018081813177 +:1044600069F0823209F07FC009C0E0910E01F0913D +:104470000F018081813111F0823261F48C2F0E9412 +:104480001C22811104C08C2F0E9455211DC081E087 +:1044900090E01AC08C2F0E941E22811114C0C431DA +:1044A00079F048F4CB3079F0C03109F060C082E097 +:1044B0008093EA0108C0C93219F0C83321F057C00F +:1044C0001092EA0154C081E0817053C0C93289F171 +:1044D00018F5C43171F1A8F4C73009F046C08AE07C +:1044E0008093150194E19093140193E0909313014C +:1044F0008093120188E08093110188E2809310017B +:1045000034C0CE51C63088F5EC2FF0E0E65DFE4FAA +:1045100080818093E90129C0CE34E9F020F4CB34C6 +:1045200021F56AE013C0C13579F0C235F1F461E0DC +:104530000DC08091E901882319F01092E90115C09E +:1045400081E08093EA0115C061E006C08091E90135 +:104550000E948F200AC06AE08091E9010E94052133 +:1045600004C01092EA0180E004C081E002C080E053 +:10457000ABCFCF910895E1E8F0E08081886080833F +:104580008081816080838FB7F89493E09093890055 +:1045900090ED909388008FBF0895EFE6F0E0808162 +:1045A000826080830895EFE6F0E080818D7F8083D4 +:1045B0000895EFE6F0E0908182E0892780830895F6 +:1045C0001F920F920FB60F9211242F933F934F9388 +:1045D0005F936F937F938F939F93AF93BF93EF936B +:1045E000FF938091EB019091EC0101969093EC0187 +:1045F0008093EB01811103C082E00E948509E09164 +:10460000EC01E695E695F0E0E45AFA4FE4918091EA +:10461000EB018E1303C080E00E948509FF91EF91AA +:10462000BF91AF919F918F917F916F915F914F91CA +:104630003F912F910F900FBE0F901F90189504D0AF +:104640006894B1118DC0089570D088F09F5790F094 +:10465000B92F9927B751A0F0D1F0660F771F881FA7 +:10466000991F1AF0BA95C9F712C0B13081F077D00E +:10467000B1E0089574C0672F782F8827B85F39F0AC +:10468000B93FCCF3869577956795B395D9F73EF406 +:1046900090958095709561957F4F8F4F9F4F0895AE +:1046A000E89409C097FB3EF49095809570956195CC +:1046B0007F4F8F4F9F4F9923A9F0F92F96E9BB2782 +:1046C0009395F695879577956795B795F111F8CFFE +:1046D000FAF4BB0F11F460FF1BC06F5F7F4F8F4F69 +:1046E0009F4F16C0882311F096E911C0772321F05F +:1046F0009EE8872F762F05C0662371F096E8862FF7 +:1047000070E060E02AF09A95660F771F881FDAF74D +:10471000880F9695879597F9089557FD9058440FFF +:10472000551F59F05F3F71F04795880F97FB991F10 +:1047300061F09F3F79F087950895121613061406CD +:10474000551FF2CF4695F1DF08C01616170618065A +:10475000991FF1CF86957105610508940895E89435 +:10476000BB2766277727CB0197F908950BD078C030 +:1047700069D028F06ED018F0952309F05AC05FC0B8 +:104780001124EECFCADFA0F3959FD1F3950F50E02F +:10479000551F629FF001729FBB27F00DB11D639FF3 +:1047A000AA27F00DB11DAA1F649F6627B00DA11D99 +:1047B000661F829F2227B00DA11D621F739FB00D3F +:1047C000A11D621F839FA00D611D221F749F3327AF +:1047D000A00D611D231F849F600D211D822F762F48 +:1047E0006A2F11249F5750408AF0E1F088234AF045 +:1047F000EE0FFF1FBB1F661F771F881F9150504091 +:10480000A9F79E3F510570F014C0AACF5F3FECF3AB +:10481000983EDCF3869577956795B795F795E7957C +:104820009F5FC1F7FE2B880F911D9695879597F98D +:10483000089597F99F6780E870E060E008959FEF22 +:1048400080EC089500240A94161617061806090627 +:10485000089500240A9412161306140605060895F6 +:10486000092E0394000C11F4882352F0BB0F40F47E +:10487000BF2B11F460FF04C06F5F7F4F8F4F9F4FBE +:10488000089597FB072E16F4009407D077FD09D002 +:104890000E945B2407FC05D03EF4909581959F4FC4 +:1048A0000895709561957F4F0895EE0FFF1F059055 +:1048B000F491E02D0994AA1BBB1B51E107C0AA1F6C +:1048C000BB1FA617B70710F0A61BB70B881F991FB1 +:1048D0005A95A9F780959095BC01CD010895F99955 +:1048E000FECF92BD81BDF89A992780B50895A8E1C1 +:1048F000B0E042E050E00C949724262FF999FECFC7 +:1049000092BD81BDF89A019700B4021639F01FBA22 +:1049100020BD0FB6F894FA9AF99A0FBE0895019641 +:10492000272F0E947E240C947D24DC01CB01FC0106 +:10493000F999FECF06C0F2BDE1BDF89A319600B4F8 +:0E4940000D9241505040B8F70895F894FFCF03 +:10494E0002208709150AF209BE098A090101C70169 +:10495E0028080A03140A3F4D36391D05D0049A045F +:10496E006104F4030D0426043F040102030405064A +:04497E00070809001D +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/twey/keymap.c b/keyboards/ergodox_ez/keymaps/twey/keymap.c new file mode 100644 index 000000000..019930f2a --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/twey/keymap.c @@ -0,0 +1,221 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_plover.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define STEN 2 // steno +#define MDIA 3 // media keys + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,---------------------------------------------------. ,---------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | STEN | | NONE | 6 | 7 | 8 | 9 | 0 | \ | + * |--------+------+------+------+-------+-------------| |-------+------+------+------+------+------+--------| + * | Del | ' | , | . | P | Y | Esc | | Caps | F | G | C | R | L | / | + * |--------+------+------+------+-------+------| | | |------+------+------+------+------+--------| + * | BkSp | A | O | E | U | I |------| |-------| D | H | T | N | S | - | + * |--------+------+------+------+-------+------| Tab | | Enter |------+------+------+------+------+--------| + * | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | RShift | + * `--------+------+------+------+-------+-------------' `--------------+------+------+------+------+--------' + * | L1 | NONE | Grv | Left | Right | | Up | Down | [ | ] | L1 | + * `-----------------------------------' `----------------------------------' + * ,--------------. ,---------------. + * | PgUp | PgDn | | Home | End | + * ,------|-------|------| |-------+-------+------. + * | | | NONE | | AltGr | | | + * | Alt | Enter |------| |-------| Space | Ctrl | + * | | | Supr | | ~MDIA | | | + * `---------------------' `----------------------' + */ +// 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, M(0), + KC_DELT, KC_QUOT, KC_COMM,KC_DOT, KC_P, KC_Y, KC_ESC, + KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_TAB, + MO(SYMB), KC_NO, KC_GRV, KC_LEFT,KC_RGHT, + KC_PGUP,KC_PGDN, + KC_NO, + KC_LALT,KC_ENT ,KC_LGUI, + // right hand + KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + KC_CAPS, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, + KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, + KC_ENT, KC_B, KC_M, KC_W, KC_V, KC_Z , KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, MO(SYMB), + KC_HOME, KC_END, + KC_RALT, + MO(MDIA),KC_SPC,KC_RCTL + ), +/* 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 +), + +[STEN] = KEYMAP( // layout: layer 2: Steno for Plover + // left hand + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_NO, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_STAR, + KC_NO, PV_LS, PV_LT, PV_LP, PV_LH, PV_STAR, + KC_NO, PV_LS, PV_LK, PV_LW, PV_LR, PV_STAR, PV_STAR, + KC_TRNS,KC_NO, KC_NO, KC_TRNS, KC_TRNS, + KC_NO, KC_NO, + KC_NO, + PV_A, PV_O, KC_NO, + // right hand + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + PV_STAR, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, + PV_STAR, PV_RF, PV_RP, PV_RL, PV_RT, PV_RD, + PV_STAR, PV_STAR, PV_RR, PV_RB, PV_RG, PV_RS, PV_RZ, + KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_TRNS, + KC_NO, KC_NO, + KC_NO, + KC_TRNS,PV_E, PV_U +), + +/* Keymap 3: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | Back | | Frwd | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | Prev | Play | Next | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// 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_WBAK, KC_TRNS, KC_WFWD, KC_TRNS, KC_TRNS, + KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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(MDIA) // FN1 - Momentary Layer 3 (Media) +}; + +void toggle_steno(int pressed) +{ + uint8_t layer = biton32(layer_state); + + if (pressed) { + if (layer != STEN) layer_on(STEN); else layer_off(STEN); + + register_code(PV_LP); + register_code(PV_LH); + register_code(PV_LR); + register_code(PV_O); + register_code(PV_RL); + register_code(PV_RG); + } else { + unregister_code(PV_LP); + unregister_code(PV_LH); + unregister_code(PV_LR); + unregister_code(PV_O); + unregister_code(PV_RL); + unregister_code(PV_RG); + } +} + +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: + toggle_steno(record->event.pressed); + 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) { + uint32_t layer0 = layer_state & (1UL << 0), + layer1 = layer_state & (1UL << 1), + layer2 = layer_state & (1UL << 2), + layer3 = layer_state & (1UL << 3); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + + if (layer1) ergodox_right_led_1_on(); + if (layer2) ergodox_right_led_2_on(); + if (layer3) ergodox_right_led_3_on(); +}; diff --git a/keyboards/ergodox_ez/keymaps/twey/readme.md b/keyboards/ergodox_ez/keymaps/twey/readme.md new file mode 100644 index 000000000..979e4261e --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/twey/readme.md @@ -0,0 +1,17 @@ +# Twey's Home Configuration +## Layers +- Layer 0: Non-ANSI Dvorak layout, with modified modifiers — all + modifiers on thumb keys, as well as return and space. +- Layer 1: Default symbol layout. +- Layer 2: Plover-oriented stenography layer. +- Layer 3: Extended media/mouse layout. + +## Unusual features +The Plover key (top right key on the left half) also sends my Plover +‘toggle’ chord (SH-FT) when pressed, as well as toggling the steno +layer, so you can toggle between steno and typing modes with a single +keypress. + +If you want to use this feature, you'll need to add the +`commands.json` dictionary to your Plover dictionaries, or define the +toggle stroke (`PHROLG`) yourself. diff --git a/keyboards/ergodox_ez/keymaps/workman_osx_mdw/compiled.hex b/keyboards/ergodox_ez/keymaps/workman_osx_mdw/compiled.hex new file mode 100644 index 000000000..8bde2f29d --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/workman_osx_mdw/compiled.hex @@ -0,0 +1,1213 @@ +:100000000C947B030C94BF030C94BF030C94BF03AC +:100010000C94BF030C94BF030C94BF030C94BF0358 +:100020000C94BF030C94BF030C946C100C943E1101 +:100030000C94BF030C94BF030C94BF030C94BF0338 +:100040000C94BF030C94F8230C94BF030C94BF03CF +:100050000C94BF030C94DA1E0C94BF030C94BF03E2 +:100060000C94BF030C94BF030C94BF030C94BF0308 +:100070000C94BF030C94BF030C94BF030C94BF03F8 +:100080000C94BF030C94BF030C94BF030C94BF03E8 +:100090000C94BF030C94BF030C94BF030C94BF03D8 +:1000A0000C94BF030C94BF030C94BF03AB11CD1190 +:1000B000BB12CD11BB1212123512BB128A129D1245 +:1000C0006C156C159B159B15D115F1152217221770 +:1000D000FC152217AC16AC161317221722171C1783 +:1000E000B916B916B916B916B916B916B916B91698 +:1000F000B916B916B916B916B916B916B916B91688 +:10010000CB16D816DF16E616F0160122022201C41D +:1001100002C4000121022101C402C4000120022006 +:1001200001C402C400011F021F01C402C400013146 +:10013000023101C402C40001E10131023102E101D6 +:10014000C402C4000126022601C402C40001250223 +:100150002501C402C4000124022401C402C4000118 +:1001600023022301C402C40001E10134023402E18C +:1001700001C402C400012D022D01C402C40001E12A +:100180000127022702E101C402C40001E1012502A6 +:100190002502E101C402C400011E021E01C402C402 +:1001A0000001E10130023002E101C402C40001E1BA +:1001B000012F022F02E101C402C40001270227011E +:1001C000C402C400012E022E01C402C40001E101D8 +:1001D00026022602E101C402C4000138023801C42B +:1001E00002C40001E1011E021E02E101C402C400BA +:1001F0000130023001C402C400012F022F01C402E9 +:10020000C40001E1012D022D02E101C402C400017C +:10021000E10121022102E101C402C40001E1011F48 +:10022000021F02E101C402C40001E1012E022E02FC +:10023000E101C402C40001E10138023802E101C455 +:1002400002C40001E10124022402E101C402C4004D +:1002500001E10122022202E101C402C4000000F017 +:10026000A101840884088A35002B00296FE1000071 +:100270000000001E00140004001D0000004D001FBF +:1002800000070016001B00E0002C00200015000BEA +:10029000001000E2002A0021001A0017000600E307 +:1002A000004A00220005000A00190000000000506A +:1002B00000015300000000000000004F0001530047 +:1002C0000000670000000023000D001C000E00006D +:1002D0000000002400090011000F0050004B002511 +:1002E00000180008003600510028002600130012F4 +:1002F00000370052002C00270033000C0038614FFB +:10030000004E002D0031003400E500C40000000163 +:1003100000010001000100010000003A0022023843 +:10032000002300010001003B0024022602240001FA +:100330000001003C0038022E002500010001003DB4 +:10034000002E0227002600010001003E001F022FA0 +:100350000231020000010001000100000001000064 +:100360000001000100010000000100000001003F49 +:10037000002102300238000000010040002D021E62 +:10038000001F000100010041002F00250220000194 +:10039000000100420030002702210001000100435B +:1003A000001E022D0022000100010044004500341F +:1003B0000001000100000001000100010001000136 +:1003C0000000000100010001000100010001000126 +:1003D000000100F2000100010001000100F000F145 +:1003E000000100F400010001000100F3000100F52C +:1003F00000010001000100010001000000010001F6 +:1004000000010000000100000001000100010000E7 +:1004100000010000000100010001000100010000D6 +:100420000001000100010001000100A9000100011C +:100430000001000100AC00AA00B6000100010001AB +:1004400000AB00A800010001000100010001000153 +:1004500000010001000100AE0001000100000001E8 +:1004600000010001000100010000003A0064306D4D +:10047000307830010001003B0065306E307930018A +:100480000001003C0066306F307A30010001003D11 +:1004900000673070307B30010001003E0068307131 +:1004A000307C30000001000100010000000100006C +:1004B0000001000100010000000100000001003FF8 +:1004C00000693072307D300000010040006A3073F6 +:1004D000307E300100010041006B3074307F30010C +:1004E00000010042006C3075308030010001004393 +:1004F00000823076308130010001004400450077F1 +:100500003001000100000016034500720067006F13 +:100510000044006F007800200045005A00000016DB +:10052000034500720067006F0044006F00780020F0 +:100530000045005A0000000403090409026D00048C +:100540000100A0FA090400000103010100092111C2 +:100550000100012240000705810308000A09040187 +:10056000000103010200092111010001224D0007D1 +:1005700005820308000A09040200010300000009C3 +:1005800021110100012236000705830308000A0932 +:1005900004030001030000000921110100012239B8 +:1005A000000705840310000112011001000000087B +:1005B000EDFE071301000102000105010906A1017A +:1005C000050719E029E71500250195087501810245 +:1005D0000508190129059505750191029501750315 +:1005E00091010507190029771500250195787501F6 +:1005F0008102C005010980A101850216010026B70C +:10060000001A01002AB700751095018100C0050C81 +:100610000901A1018503160100269C021A01002A86 +:100620009C02751095018100C005010902A1010914 +:1006300001A1000509190129051500250195057578 +:100640000181029501750381010501093009311508 +:1006500081257F95027508810609381581257F95CA +:100660000175088106050C0A38021581257F950160 +:1006700075088106C0C005010906A101050719E03A +:1006800029E7150025019508750181029501750876 +:10069000810105081901290595057501910295014A +:1006A000750391010507190029FF150026FF009524 +:1006B0000675088100C00000000000000000000076 +:1006C00000010204060A0F17202C3A4A5D71879D2B +:1006D000B3C7DAE9F5FCFFFCF5E9DAC7B39D87712A +:1006E0005D4A3A2C20170F0A0604020100000000A0 +:1006F00000000000000011241FBECFEFDAE0DEBFD3 +:10070000CDBF04B603FE24C08091FD019091FE018F +:10071000A091FF01B09100028730904BA740B04BF1 +:10072000B9F41092FD011092FE011092FF01109297 +:10073000000214BE84B7877F84BF88E10FB6F894A7 +:1007400080936000109260000FBEE0E0FFE3099527 +:1007500011E0A0E0B1E0EEE7FBE402C005900D92ED +:10076000A433B107D9F711E0A4E3B1E001C01D92B1 +:10077000AD3FB107E1F70E94B40D0C94BD250C9478 +:1007800000001092B9008AE08093B800089594EABE +:100790009093BC009091BC0097FFFCCF9091B90062 +:1007A000987F983021F0903111F081E00895809386 +:1007B000BB0084E88093BC008091BC0087FFFCCF25 +:1007C0008091B900887F883111F0803471F780E022 +:1007D000089584E98093BC008091BC0084FDFCCF27 +:1007E00008958093BB0084E88093BC008091BC0096 +:1007F00087FFFCCF9091B900987F81E0983209F48F +:1008000080E0089584E88093BC008091BC0087FF5D +:10081000FCCF8091BB00089580B38C7080BB81B306 +:10082000836F81BB089580910101811115C080E41F +:100830000E94C7038093010181110CC082E10E94D4 +:10084000F10380930101811105C08FEF0E94F10334 +:10085000809301010E94E90384B1807F84B985B14E +:10086000807F85B98AB1837F8AB98BB1837F8BB949 +:100870003E98469808950E94DD05809301010E94EC +:1008800013040E940C04A5E3B1E0E3E4F1E08EE080 +:100890008E0F11921D928E13FCCF0C94C7050E94EF +:1008A000DD05809301010E9413040E940C04A5E35E +:1008B000B1E0E3E4F1E08EE08E0F11921D928E1311 +:1008C000FCCF0895BF92CF92DF92EF92FF920F93E9 +:1008D0001F93CF93DF9380910101882379F080915A +:1008E00034018F5F80933401811108C00E94DD05BF +:1008F00080930101811102C00E946F0505E311E0A0 +:10090000C0E0D0E0DD24D39482E0C82EEE24E3944E +:10091000F12CC730D10500F580910101811164C02F +:1009200080E40E94C70380930101811112C082E11B +:100930000E94F1038093010181110BC0C7010C2EAD +:1009400001C0880F0A94EAF780950E94F103809312 +:1009500001010E94E90348C0CA30A1F028F4C83060 +:1009600059F0C93061F005C0CC3089F070F0CD305D +:1009700089F0209A289810C0219A29980DC0229AAF +:100980002A980AC0239A2B9807C0529A01C0539AFA +:100990005B9802C03E9A469890EA9A95F1F79FB10B +:1009A000799902C082E001C080E091709D25982B6A +:1009B0007C9902C084E001C080E0892B7D9902C04F +:1009C00038E001C030E0832B7E9902C020E101C0F5 +:1009D00020E0822B9FB19095991F9927991F92959E +:1009E000990F907E892B0FC080910101811149C020 +:1009F00080E40E94C70380930101882379F1B12C20 +:100A00000E94E9038B2DF8019081981719F08083DB +:100A1000C09200010E94130421960F5F1F4FCE3039 +:100A2000D10509F076CF80910001882361F18150D2 +:100A300080930001882339F08FE99FE00197F1F757 +:100A400000C0000020C0A3E4B1E0E5E3F1E0CF0185 +:100A5000825F91919D938E13FCCF15C083E10E941C +:100A6000F103809301018111CACF81E40E94C70381 +:100A7000809301018111C3CF0E940204B82EB0946B +:100A8000BFCF80E0C0CF0E946D0581E0DF91CF91A4 +:100A90001F910F91FF90EF90DF90CF90BF9008953E +:100AA000E82FF0E0ED5BFE4F8081089508950F93ED +:100AB0001F93CF93DF93C3E4D1E010E00C2F025FCC +:100AC000899190E00E94011E180F0C13F9CF812F1D +:100AD000DF91CF911F910F9108950C94C007569804 +:100AE0005E9825982D9826982E9827982F988FEF06 +:100AF00090E0909389008093880090938B0080937E +:100B00008A0090938D0080938C00259A2D9A2FEF68 +:100B100080E792E0215080409040E1F700C0000063 +:100B2000269A2E9A2FEF80E792E021508040904045 +:100B3000E1F700C00000279A2F9A2FEF80E792E09C +:100B4000215080409040E1F700C0000025982D988A +:100B50002FEF80E792E0215080409040E1F700C005 +:100B6000000026982E982FEF80E792E021508040D9 +:100B70009040E1F700C0000027982F9856985E98A3 +:100B800025982D9826982E9827982F98089589EAC9 +:100B90008093800089E08093810024982C983F986E +:100BA0008AB18F748AB96E98479A8BB1806B8BB972 +:100BB000769A0E946F050C94BF0780E28093010132 +:100BC0008091510181110EC00E94C10381E0809388 +:100BD00051012FEF83ED90E3215080409040E1F7E9 +:100BE00000C0000080E40E94C703809301018111CE +:100BF0002EC00E94F10380930101811128C00E9440 +:100C0000F10380930101811122C08FE30E94F1035F +:100C10008093010181111BC00E94E90380E40E94BE +:100C2000C70380930101811112C08CE00E94F1037F +:100C30008093010181110BC00E94F1038093010197 +:100C4000811105C08FE30E94F103809301010E948E +:100C5000E903809101010895CF93DF93EC0162379E +:100C600009F4C6C038F56A3609F483C098F46636CC +:100C700009F463C048F4643609F451C008F056C062 +:100C8000662309F441C01CC1683609F464C008F445 +:100C90005BC068C06E3609F48FC030F46C3609F45E +:100CA00076C008F46DC081C0603709F493C008F4C1 +:100CB0008AC097C06A3709F4D1C080F4663709F456 +:100CC000B3C030F4643709F4A1C008F498C0A5C0DB +:100CD000683709F4B7C008F4AEC0BAC06E3709F47B +:100CE000D5C030F46C3709F4C5C008F4BDC0C8C025 +:100CF000603809F4D7C008F4CFC0613809F4D8C00F +:100D0000623809F44BC0DCC08A81882321F085EE6B +:100D10000E941014D5C085EE0E94D814D1C00E9444 +:100D2000AB1B8A81882309F4CBC0CDC00E94AB1BCA +:100D30008A81882309F4C4C0C9C00E94AB1B8A8180 +:100D4000882309F4BDC0C5C00E94AB1B8A818823DB +:100D500009F4B6C0C1C00E94AB1B8A81882309F484 +:100D6000AFC0BDC00E94AB1B8A81882309F4A8C014 +:100D7000B9C00E94AB1B8A81882309F4A1C0B5C009 +:100D80000E94AB1B8A81882309F49AC0B1C00E94DB +:100D9000AB1B8A81882309F493C0ADC00E94AB1BB2 +:100DA0008A81882309F48CC0A9C00E94AB1B8A8168 +:100DB000882309F485C0A5C00E94AB1B8A818823C3 +:100DC00009F47EC0A1C00E94AB1B8A81882309F46C +:100DD00077C09DC00E94AB1B8A81882309F470C034 +:100DE00099C00E94AB1B8A81882309F469C095C011 +:100DF0000E94AB1B8A81882309F462C091C00E94C3 +:100E0000AB1B8A81882309F45BC08DC00E94AB1B99 +:100E10008A81882309F454C089C00E94AB1B8A814F +:100E2000882309F44DC085C00E94AB1B8A818823AA +:100E300009F446C081C00E94AB1B8A81882309F453 +:100E40003FC07DC00E94AB1B8A818823C9F17AC054 +:100E50000E94AB1B8A81882399F177C00E94AB1B4B +:100E60008A81882369F174C00E94AB1B8A81882320 +:100E700039F171C00E94AB1B8A81882309F16EC0D1 +:100E80000E94AB1B8A818823D9F06BC00E94AB1BE8 +:100E90008A818823A9F068C00E94AB1B8A818823BD +:100EA00079F065C00E94AB1B8A81882349F062C03B +:100EB0000E94AB1B8A81882319F08AE091E05CC014 +:100EC00080E090E059C080E592E056C083E492E073 +:100ED00053C086E392E050C089E292E04DC08CE1BD +:100EE00092E04AC08FE092E047C082E092E044C0C6 +:100EF00089EF91E041C080EF91E03EC083EE91E048 +:100F00003BC08AED91E038C08DEC91E035C084ECB7 +:100F100091E032C08BEB91E02FC08EEA91E02CC0C3 +:100F200081EA91E029C088E991E026C08BE891E050 +:100F300023C08EE791E020C085E791E01DC088E6E0 +:100F400091E01AC08FE591E017C086E591E014C0EA +:100F50008DE491E011C084E491E00EC087E391E05C +:100F60000BC08EE291E008C085E291E005C08CE103 +:100F700091E002C083E191E0DF91CF91089508955F +:100F80006091BE017091BF018091C0019091C1013B +:100F90000E940D1E56985E9825982D9826982E989A +:100FA00027982F98813019F0823021F00895259AE2 +:100FB0002D9A0895269A2E9A089581E0089581E049 +:100FC00008950C94DF070895282F882339F090E0C6 +:100FD0002A3010F44D9608950697089587E290E020 +:100FE0000895AF92BF92DF92EF92FF920F931F93FB +:100FF000CF93DF938C01FC01C081D181CE010E948F +:10100000861CBE010E94610BEC01B8010E94E10741 +:10101000882309F4C9C1F8018281882309F4BEC07C +:1010200080915E0181111FC0C431F0E7DF0709F034 +:10103000B5C10E94E30781E080935E010E94A41E77 +:1010400090935D0180935C011092550110925701BD +:1010500010925601109259011092580110925B01A2 +:1010600010925A01A1C180915C0190915D010E9492 +:10107000B01E883C910570F480915501E82FF0E096 +:10108000EE0FFF1FEA5AFE4FD183C0838F5F80931C +:1010900055018AC1C13020E8D20708F451C0F801D7 +:1010A0008281882309F47EC05E01E894B7F88091BC +:1010B0005401813079F050F08230C1F482EE0E9408 +:1010C000101487E50E94101487E50EC082EE0E947E +:1010D00010140CC080EE0E94101481EE0E941014B7 +:1010E00088E10E94101488E10E94D8148CE0E82E58 +:1010F000F12CC5010E2C02C0969587950A94E2F753 +:101100008F700E94E407D82E0E9410148D2D0E942B +:10111000D814F4E0EF1AF1082CEFE2162FEFF206E4 +:1011200041F780915401813029F010F0823041F470 +:1011300082EE04C080EE0E94D81481EE0E94D81482 +:10114000C43180E7D80768F4C23090E7D90708F0C7 +:1011500046C0C115E0E7DE0771F0C130D047A1F10C +:101160000CC1C33320E7D20709F4D8C0C433D04739 +:1011700009F4EBC002C1F8018281882309F402C19D +:101180000E948D17FFEF24E38CE0F1502040804057 +:10119000E1F700C000000E94FF1E06C1C13080E8D8 +:1011A000D80770F2C43120E7D20708F0B3C0C230CC +:1011B00080E7D807A0F4C11590E7D90709F4E2C089 +:1011C000C130D04709F0D9C0F8018281882309F4E1 +:1011D000D9C08091DB0181608093DB01E5C0F8011B +:1011E0008281882309F4CEC00E94591F811102C058 +:1011F0000E943F1F0E946C1F90E09093EF0180932C +:10120000EE01C230F0E7DF0721F48091EE0181604A +:101210007AC0C33020E7D20721F48091EE018260CA +:1012200072C0C43080E7D80721F48091EE01846059 +:101230006AC0C53090E7D90719F48091EE0127C044 +:10124000C630E0E7DE0721F48091EE0180615BC0EB +:10125000C730F0E7DF0721F48091EE01806253C0D0 +:10126000C83020E7D20721F48091EE0180644BC0A2 +:10127000C93080E7D80721F48091EE01806843C02F +:10128000CA3090E7D90729F48091EE018460886024 +:101290003AC0CB30E0E7DE0721F48091EE018E7F8B +:1012A00032C0CC30F0E7DF0721F48091EE018D7F72 +:1012B0002AC0CD3020E7D20721F48091EE018B7F48 +:1012C00022C0CE3080E7D80719F48091EE011AC011 +:1012D0008091EE01CF3090E7D90711F48F7E13C0D3 +:1012E000C031E0E7DE0711F48F7D0DC0C131F0E7BA +:1012F000DF0711F48F7B07C0C231D04711F48F771D +:1013000002C08B7F877F8093EE018091EE010E9467 +:10131000701F4AC0C333F0E7DF07A1F4F8018281F0 +:10132000882321F01092520182E016C08091520170 +:10133000811106C086E20E94101486E20E94D81431 +:1013400082E018C0C433D047C1F4F80182818823F9 +:1013500031F01092530180E20E94271525C0809140 +:101360005301811106C087E20E94101487E20E9497 +:10137000D81480E20E942E1517C081E0809352019C +:1013800080935301C801DF91CF911F910F91FF907E +:10139000EF90DF90BF90AF900C94DD07C130F0E884 +:1013A000DF0708F081CECCCE80E0DF91CF911F9196 +:1013B0000F91FF90EF90DF90BF90AF90089526E0DF +:1013C000729FF001112444E5849FE00DF11D11246A +:1013D000E60FF11DEE0FFF1FE959FD4F8591949126 +:1013E0000E94730B811560E49607B0F5811570E3D8 +:1013F000970708F0DEC0803E9105D8F4803C910547 +:1014000008F06CC0883A910578F4853A910508F0A7 +:101410006BC08130910509F452C108F40FC18430CA +:10142000910508F04CC10AC18B3B910508F467C0D7 +:1014300005C18F3F910509F048F4803F910508F000 +:10144000ADC0883E910508F43AC1F8C0811520E28C +:10145000920708F0A5C00895811543E5940790F41C +:10146000811562E5960708F0C8C0811571E59707F8 +:1014700008F0BEC0811520E5920708F09DC09F705E +:10148000906A0895811545E59407D8F4811564E5BF +:10149000960708F0C8C0482F4695469570E2479FCA +:1014A000A00111248370992721E030E0B90102C026 +:1014B000660F771F8A95E2F7CB01842B952B9A68EC +:1014C0000895811576E5970708F4B2C09C0130565F +:1014D0002115304108F0B2C09F70AEC0FC01EE0F84 +:1014E000FF1FE352FF4F62C0853A910509F4A9C07E +:1014F000863A910509F0A8C082E890E40895883AF8 +:10150000910509F4A4C0893A910509F4A3C08A3A67 +:10151000910509F4A2C08B3A910509F4A1C08C3A57 +:10152000910509F4A0C08D3A910509F49FC0803B54 +:10153000910509F49EC08E3A910509F49DC08F3A39 +:10154000910509F49CC0813B910509F49BC0823B45 +:10155000910509F49AC0833B910509F499C0843B35 +:10156000910509F498C0853B910509F497C0863B25 +:10157000910509F496C0873B910509F495C0883B15 +:10158000910509F494C0893B910509F493C08A3B05 +:10159000910509F492C080E094E40895906508955F +:1015A000FC01FF70EE0FFF1FE35AFD4F85919491F0 +:1015B00008959927906C0895482F437021E030E0FA +:1015C00002C0220F331F4A95E2F73C68AC0164E089 +:1015D000569547956A95E1F74370342B8F70869541 +:1015E000869560E2869FC0011124822B932B08957B +:1015F000982F8827816F906A0895482F46954695C1 +:1016000070E2479FA00111248370992721E030E008 +:10161000B90102C0660F771F8A95E2F7CB01842BD0 +:10162000952B9C680895982F8827846F906A089559 +:101630008F719927982F88279062089580E090E015 +:10164000089581E890E4089583E890E4089582EE97 +:1016500094E4089589EE94E408958AEE94E408955C +:1016600085EB94E4089586EB94E4089587EB94E485 +:1016700008958CEC94E408958DEC94E4089583E847 +:1016800095E408958AE895E4089582E995E408953B +:1016900084E995E4089581E296E4089583E296E46E +:1016A000089584E296E4089585E296E4089586E23A +:1016B00096E4089587E296E408958AE296E4089510 +:1016C000089596E0799FF001112494E5899FE00D3B +:1016D000F11D1124E60FF11DEE0FFF1FE959FD4F1B +:1016E0008591949108958238910549F1B0F4813340 +:1016F000910509F458C048F48932910509F44EC0A7 +:101700008A32910509F454C008958533910509F48E +:1017100040C08933910599F00895833E910529F1E0 +:1017200038F4803E910591F0823E9105A1F0089534 +:10173000863E9105F9F0873E910531F1089520919B +:10174000EE0120FD3AC021FD38C008958091EE01E0 +:1017500080FD35C032C08091EE0182FF32C08091A1 +:10176000EE0184FD30C083EE39C08091EE0182FD30 +:1017700028C0F5CF8091EE0183FF27C08091EE0154 +:1017800084FD21C087EE2AC08091EE0183FD1DC03B +:10179000F5CF8091EE0185FD1AC01BC08091EE014E +:1017A00085FD17C014C08091EE0186FD14C015C0E0 +:1017B0008091EE0186FD11C00EC080EE0FC089E35E +:1017C0000DC082EE0BC080E009C086EE07C089E242 +:1017D00005C085E303C08AE201C081E390E008957B +:1017E00008950C94F00B80916F010895CF93DF93CF +:1017F00000D01F92CDB7DEB79C018091F4018430F8 +:1018000019F593E099833B832A839093E9008FEF46 +:101810009091E800815095FD06C095ED9A95F1F7FD +:1018200000008111F5CF8091E80085FF0DC040E0F8 +:1018300050E063E070E0CE0101960E945C0E809162 +:10184000E8008E778093E8000F900F900F90DF9163 +:10185000CF910895CF93DF9300D01F92CDB7DEB71D +:101860002091F401243021F522E029839B838A838F +:1018700083E08093E9008FEF9091E800815095FD1F +:1018800006C095ED9A95F1F700008111F5CF809192 +:10189000E80085FF0DC040E050E063E070E0CE015D +:1018A00001960E945C0E8091E8008E778093E8009C +:1018B0000F900F900F90DF91CF9108952091F40138 +:1018C0002430F1F422E02093E9002FEF3091E8007A +:1018D000215035FD06C035ED3A95F1F70000211194 +:1018E000F5CF2091E80025FF0BC040E050E065E017 +:1018F00070E00E945C0E8091E8008E778093E80093 +:101900000895CF93DF93EC019091F401943009F0A6 +:1019100046C080910C018823D9F080910D01882365 +:10192000B9F09093E9008FEF9091E800815095FD18 +:1019300006C095E19A95F1F700008111F5CF8091ED +:10194000E80085FF2CC040E050E060E170E017C087 +:1019500081E08093E9008FEF9091E800815095FD40 +:1019600006C095ED9A95F1F700008111F5CF8091B1 +:10197000E80085FF14C040E050E068E070E0CE0170 +:101980000E945C0E8091E8008E778093E80080E1F1 +:10199000FE01AFE5B1E001900D928A95E1F7DF918C +:1019A000CF9108958091F301811109C00E94F10F38 +:1019B0000E944E108091E20084608093E2000895BE +:1019C0001092F301089508950C94E5230E94951E4A +:1019D0000E94EB230E94F4120C94F10B42E061ECA4 +:1019E00081E00E946B0F42E061EC82E00E946B0F8D +:1019F00042E061EC83E00E946B0F42E161EC84E025 +:101A00000C946B0F8091F601833009F455C030F4CB +:101A1000813071F0823009F48EC008958A3009F463 +:101A20007AC08B3009F460C0893009F09CC020C0B6 +:101A30008091F501813A09F096C08091E800877F96 +:101A40008093E8008091F9019091FA01892B21F4AB +:101A500060E18FE591E003C060E080E090E070E03D +:101A60000E94A70E8091E8008B778093E80008958C +:101A70008091F501813209F076C08091F901909151 +:101A8000FA01009719F0039709F06DC08091E80002 +:101A9000877F8093E8008091E80082FD05C08091F7 +:101AA000F4018111F8CF5FC08091F10080936F0144 +:101AB0008091E8008B7753C08091F501813A09F05D +:101AC00052C08091F9019091FA01892B09F04BC025 +:101AD0008091E800877F8093E8008091E80080FF94 +:101AE000FCCF80910C0136C08091F5018132D9F58F +:101AF0008091F9019091FA01892BA9F58091E80074 +:101B0000877F8093E8000E94A00F8091F701809367 +:101B10000C010C948D178091F501813221F5809193 +:101B2000E800877F8093E8000E94A00F8091F80171 +:101B30008093700108958091F501813AA1F480911C +:101B4000E800877F8093E8008091E80080FFFCCF69 +:101B5000809170018093F1008091E8008E778093EE +:101B6000E8000C94A00F089584B7877F84BF88E1B4 +:101B70000FB6F89480936000109260000FBE80E86A +:101B800080936100109261000E9443130E94F10F44 +:101B90000E944E108091E20084608093E20078946D +:101BA0000E94D4120E94451382E091E00E94EF123D +:101BB0000E94D3238091F401853069F40E945D1E58 +:101BC0008091F2018823B1F30E94871E882391F34C +:101BD0000E94460EEFCF0E944B13ECCF292F3327E4 +:101BE00023303105C9F064F42130310581F0223011 +:101BF000310509F043C08DE690E02BE335E042C0AB +:101C000021323105F1F02232310541F137C082E154 +:101C100090E028EA35E036C099278130910541F0FF +:101C20008230910541F0892B49F5E7E3F5E005C0E5 +:101C3000EFE1F5E002C0E7E0F5E0849190E09F017C +:101C400021C06430D8F4E62FF0E0EE0FFF1FEE5D08 +:101C5000FE4F2081318189E090E014C0643070F43F +:101C600070E0FB01EE0FFF1FE65EFE4F2081318129 +:101C7000FB01EA5EFE4F808190E004C080E090E0CE +:101C800020E030E0FA0131832083089580E189BDAE +:101C900082E189BD09B400FEFDCF8091D8008F7D1F +:101CA0008093D8008091E00082608093E000809172 +:101CB000E00081FDFCCF0895CF92DF92EF92FF927A +:101CC0000F931F93CF93DF93EC018B016A010E9466 +:101CD000BF0F811133C0C114D10439F0F6018081E6 +:101CE0009181081B190BC80FD91FE12CF12C01158C +:101CF000110519F18091E80085FD16C08091E8007A +:101D00008E778093E800C114D10449F0F6018081F8 +:101D10009181E80EF91EF182E08285E00FC00E94F9 +:101D2000BF0F882321F30AC089918093F1000150ED +:101D30001109FFEFEF1AFF0ADACF80E0DF91CF91B0 +:101D40001F910F91FF90EF90DF90CF900895209119 +:101D5000FB013091FC012617370748F0611571052A +:101D600039F42091E8002E772093E80001C0B901F2 +:101D700040E061157105A9F12091F401222309F4D5 +:101D800043C0253009F442C02091E80023FD40C043 +:101D90002091E80022FD32C02091E80020FFE9CF29 +:101DA0004091F3002091F20030E0342BFC01CF0190 +:101DB0006115710559F02830310540F48191809307 +:101DC000F100615071092F5F3F4FF1CF41E02830A2 +:101DD000310509F040E02091E8002E772093E800DB +:101DE000C8CF4111C9CF0AC08091F401882361F0A6 +:101DF000853061F08091E80083FD0AC08091E800A1 +:101E000082FFF2CF80E0089582E0089583E0089594 +:101E100081E008952091FB013091FC0126173707DE +:101E200048F06115710539F42091E8002E77209370 +:101E3000E80001C0B901FC0120E06115710591F1D4 +:101E40008091F401882309F440C0853009F43FC033 +:101E50008091E80083FD3DC08091E80082FD2FC0A5 +:101E60008091E80080FFE9CF2091F3008091F2009B +:101E700090E0922B6115710559F08830910540F47E +:101E800024912093F1003196615071090196F2CFAF +:101E900021E0089709F020E08091E8008E77809398 +:101EA000E800CBCF2111CCCF0AC08091F401882368 +:101EB00061F0853061F08091E80083FD0AC0809177 +:101EC000E80082FFF2CF80E0089582E0089583E089 +:101ED000089581E00895982F973058F59093E90080 +:101EE000981739F07091EC002091ED005091F000BE +:101EF00003C0242F762F50E021FF19C03091EB0052 +:101F00003E7F3093EB003091ED003D7F3093ED004C +:101F10003091EB0031603093EB007093EC00209334 +:101F2000ED005093F0002091EE0027FF07C09F5F67 +:101F3000D3CF8F708093E90081E0089580E0089509 +:101F40008091F50187FF11C08091E80082FD05C0F6 +:101F50008091F4018111F8CF11C08091E8008B7756 +:101F60000BC08091F401882349F08091E80080FF44 +:101F7000F8CF8091E8008E778093E8000895209153 +:101F8000E4003091E50095E64091EC00842F8170EB +:101F900040FF22C08091E80080FD1CC08091F401C8 +:101FA000882391F0853091F08091EB0085FD10C081 +:101FB0004091E4005091E5004217530729F39A013C +:101FC000915011F784E0089582E0089583E0089528 +:101FD00081E0089580E008954091E80042FFDECF5F +:101FE00008950E945F100E946710E0EEF0E080818B +:101FF00081608083E8EDF0E080818F77808319BC79 +:10200000A7EDB0E08C918E7F8C9380818F7E808352 +:102010001092F30108950F931F93CF93DF930E94C3 +:102020005F100E946710C8EDD0E088818F778883A9 +:1020300088818068888388818F7D888319BC10920D +:10204000F4011092F0011092F2011092F10100EEF1 +:1020500010E0F80180818B7F808388818160888394 +:1020600042E060E080E00E946B0FE1EEF0E08081F2 +:102070008E7F8083E2EEF0E08081816080838081CA +:1020800088608083F80180818E7F80838881806171 +:102090008883DF91CF911F910F910895E8EDF0E0D3 +:1020A00080818F7E8083E7EDF0E080818160808396 +:1020B00084E082BF81E08093F3010C940B10E8ED83 +:1020C000F0E080818E7F80831092E200089510926C +:1020D000DA001092E10008951F920F920FB60F924E +:1020E00011242F933F934F935F936F937F938F931D +:1020F0009F93AF93BF93EF93FF938091E10082FF93 +:102100000BC08091E20082FF07C08091E1008B7FCD +:102110008093E1000E94D3128091DA0080FF1FC0FB +:102120008091D80080FF1BC08091DA008E7F809361 +:10213000DA008091D90080FF0DC080E189BD82E185 +:1021400089BD09B400FEFDCF81E08093F4010E94B7 +:10215000D20C05C019BC1092F4010E94E00C8091D1 +:10216000E10080FF19C08091E20080FF15C08091DE +:10217000E2008E7F8093E2008091E2008061809394 +:10218000E2008091D80080628093D80019BC85E07D +:102190008093F4010E94E40C8091E10084FF30C040 +:1021A0008091E20084FF2CC080E189BD82E189BD7D +:1021B00009B400FEFDCF8091D8008F7D8093D800B8 +:1021C0008091E1008F7E8093E1008091E2008F7E1C +:1021D0008093E2008091E20081608093E200809130 +:1021E000F001882311F084E007C08091E30087FDAF +:1021F00002C081E001C083E08093F4010E94E60CFC +:102200008091E10083FF29C08091E20083FF25C017 +:102210008091E100877F8093E10082E08093F40168 +:102220001092F0018091E1008E7F8093E100809117 +:10223000E2008E7F8093E2008091E20080618093D3 +:10224000E20042E060E080E00E946B0F8091F000CD +:1022500088608093F0000E94E30CFF91EF91BF91A2 +:10226000AF919F918F917F916F915F914F913F912E +:102270002F910F900FBE0F901F9018951F920F92E5 +:102280000FB60F9211242F933F934F935F936F9349 +:102290007F938F939F93AF93BF93CF93DF93EF93EE +:1022A000FF93C091E900CF708091EC00D82FD170DE +:1022B00080FDD0E81092E9008091F000877F809344 +:1022C000F00078940E9482111092E9008091F00051 +:1022D00088608093F000CD2BCF70C093E900FF9110 +:1022E000EF91DF91CF91BF91AF919F918F917F91AE +:1022F0006F915F914F913F912F910F900FBE0F9073 +:102300001F9018951F93CF93DF93CDB7DEB7AA9791 +:102310000FB6F894DEBF0FBECDBFE5EFF1E088E069 +:102320008E0F9091F10091938E13FBCF0E94020DBE +:102330008091E80083FF1FC18091F5019091F60123 +:10234000492F50E04A30510508F015C1FA01EA5A08 +:10235000FF4F0C946D25803881F0823809F00BC155 +:102360008091F9018F708093E9008091EB0085FBEB +:10237000882780F91092E90006C08091F1019091C0 +:10238000F201911182609091E800977F9093E800AC +:102390008093F1001092F100C8C0282F2D7F09F022 +:1023A000EAC0882319F0823061F0E5C08091F7011E +:1023B000813009F0E0C0933009F080E08093F201B1 +:1023C0002BC08091F701811127C08091F9018F7096 +:1023D00009F4D1C08093E9002091EB0020FF1CC0DC +:1023E000933021F48091EB00806214C09091EB0057 +:1023F00090619093EB0021E030E0A90102C0440F0E +:10240000551F8A95E2F74093EA001092EA00809106 +:10241000EB0088608093EB001092E9008091E80067 +:10242000877F86C08111A7C01091F7011F77809127 +:10243000E3008078812B8093E3008091E800877F20 +:102440008093E8000E94A00F8091E80080FFFCCFFD +:102450008091E30080688093E300111102C082E064 +:1024600001C083E08093F40186C08058823008F078 +:1024700082C08091F7019091F8018C3D53E095075F +:1024800079F583E08A838AE289834FB7F894DE0185 +:10249000139620E03EE051E2E32FF0E05093570026 +:1024A000E49120FF03C0E295EF703F5FEF708E2F45 +:1024B00090E0EA3010F0C79601C0C0968D939D93CE +:1024C0002F5F243149F74FBF8091E800877F8093C9 +:1024D000E8006AE270E0CE0101960E94A70E14C0E7 +:1024E000AE014F5F5F4F6091F9010E94EE0DBC019C +:1024F000009709F440C09091E800977F9093E8001E +:1025000089819A810E940A0F8091E8008B778093DD +:10251000E80031C0803879F58091E800877F8093AA +:10252000E8008091F0018093F1008091E8008E77BF +:102530008093E8000E94A00F1EC081111CC09091E2 +:10254000F7019230C0F48091E800877F8093E80023 +:102550009093F0010E94A00F8091F001811106C0BC +:102560008091E30087FD02C081E001C084E0809398 +:10257000F4010E94EE0C8091E80083FF0AC0809174 +:10258000E800877F8093E8008091EB008062809371 +:10259000EB00AA960FB6F894DEBF0FBECDBFDF9159 +:1025A000CF911F9108950895CF938091F4018823CE +:1025B000A1F0C091E900CF709091EC00892F81705B +:1025C00090FD80E8C82B1092E9008091E80083FD1F +:1025D0000E948211CF70C093E900CF91089590932B +:1025E0007601809375010895E0917501F09176016F +:1025F000309721F00190F081E02D099480E008955A +:10260000E0917501F0917601309721F00280F3811D +:10261000E02D09940895E0917501F09176013097CD +:1026200021F00480F581E02D099408952091730133 +:10263000309174018217930771F090937401809325 +:102640007301E0917501F0917601309721F00680D9 +:10265000F781E02D09940895209171013091720164 +:102660008217930771F09093720180937101E0914A +:102670007501F0917601309721F00084F185E02D0D +:102680000994089508950C9442130E949B1E0E9481 +:102690003B040C94211F9F92AF92BF92CF92DF9286 +:1026A000EF92FF920F931F93CF93DF9300D000D050 +:1026B00000D0CDB7DEB70E9462040DE010E0AA247E +:1026C000A394B12C902E802F0E9450059801285879 +:1026D0003E4F6901F901F080F826A1F4015011097B +:1026E00088F78FEF89838A831B820E94A41E8160F2 +:1026F000782F9D838C8349815A816B818D810E94C3 +:10270000E2132FC09091DB0191FF04C08E830E94E1 +:1027100056058E8125E030E0A501022E01C0440F50 +:102720000A94EAF7E42E4F21C1F029839A828E2180 +:1027300091E009F490E09B830E94A41E8160782FB1 +:102740009D838C8349815A816B818D810E94E21324 +:10275000F6018081E826E08204C021503109E0F6CC +:10276000BDCF0E94EF20109177010E94F41218173C +:10277000B9F00E94F4128093770126960FB6F89470 +:10278000DEBF0FBECDBFDF91CF911F910F91FF90A4 +:10279000EF90DF90CF90BF90AF909F900C94F10B93 +:1027A00026960FB6F894DEBF0FBECDBFDF91CF9156 +:1027B0001F910F91FF90EF90DF90CF90BF90AF905F +:1027C0009F900895CF93DF93CDB7DEB72B970FB6C9 +:1027D000F894DEBF0FBECDBF4F83588769877A87D5 +:1027E0008B87DE01119686E0FD0111928A95E9F74B +:1027F00085E0FE01379601900D928A95E1F74981B7 +:102800005A816B817C818D819E810E942B1A2B962F +:102810000FB6F894DEBF0FBECDBFDF91CF91089504 +:10282000CF93882309F4C2C0C82F823859F40E947C +:10283000F41281FDBBC089E30E94051D0E94D21DD8 +:1028400089E30CC0833879F40E94F41280FDAEC095 +:1028500083E50E94051D0E94D21D83E50E94471D4D +:10286000CF910C94D21D843859F40E94F41282FD49 +:102870009DC087E40E94051D0E94D21D87E4EECF13 +:102880008CEF8C0F813A48F48C2F0E9439238111F0 +:102890008DC08C2F0E94051DE3CF80E28C0F883005 +:1028A00048F4C77081E001C0880FCA95EAF70E941A +:1028B0008B1DD6CF8BE58C0F833078F4C53A29F089 +:1028C000C63A31F083E890E005C081E890E002C0AC +:1028D00082E890E0CF910C94161388E58C0F833139 +:1028E00008F064C0C83A39F1C93A41F1CA3A49F12D +:1028F000CB3A51F1CC3A59F1CD3A61F1C03B69F193 +:10290000CE3A71F1CF3A79F1C13B81F1C23B89F105 +:10291000C33B91F1C43B99F1C53BA1F1C63BA9F181 +:10292000C73BB1F1C83BB9F1C93BC1F1CA3BC9F1E1 +:1029300080E090E038C082EE90E035C089EE90E013 +:1029400032C08AEE90E02FC085EB90E02CC086EB81 +:1029500090E029C087EB90E026C08CEC90E023C08B +:102960008DEC90E020C083E891E01DC08AE891E002 +:102970001AC082E991E017C084E991E014C081E2B5 +:1029800092E011C083E292E00EC084E292E00BC0BC +:1029900085E292E008C086E292E005C087E292E01C +:1029A00002C08AE292E0CF910C942C13CF9108954B +:1029B000882309F44BC0823859F40E94F41281FF35 +:1029C00045C089E30E94051D0E94D21D89E30CC009 +:1029D000833871F40E94F41280FF38C083E50E94AE +:1029E000051D0E94D21D83E50E94471D0C94D21D37 +:1029F000843859F40E94F41282FF28C087E40E94B0 +:102A0000051D0E94D21D87E4EFCF9CEF980F913AED +:102A100058F390E2980F983050F4877091E001C01D +:102A2000990F8A95EAF7892F0E94911DDFCF9BE5C8 +:102A3000980F933020F480E090E00C941613885A9D +:102A4000833120F480E090E00C942C1308958823C7 +:102A500021F00E948B1D0C94D21D0895882321F033 +:102A60000E94911D0C94D21D08957F928F929F9287 +:102A7000AF92BF92CF92DF92EF92FF920F931F938C +:102A8000CF93DF931F92CDB7DEB77C01C62E772E92 +:102A9000FC01058102950F70128111110E94A81D81 +:102AA0000E94FE1C882379F0112369F080E28C0DCE +:102AB000883048F082E00E94E71C0E94FE1C91E0F2 +:102AC000D82ED92601C0D12CE72DE295EF70F0E089 +:102AD000E05AFF4F0C946D25872D807F072D0F70D6 +:102AE000882311F00295007F112389F0002309F457 +:102AF00090C180E28C0D883020F4802F0E948B1DC5 +:102B000003C0802F0E949B1D0E94D21D82C18C2D6C +:102B10000E94D814002309F495C180E28C0D8830FE +:102B200020F4802F0E94911D03C0802F0E94A11DC0 +:102B30000E94D21D87C1972D907F872D8F70903274 +:102B400011F08295807FCC2021F0F1E0CF16B1F01A +:102B50001EC0112349F0002309F414C1013009F00B +:102B600011C10E94BB1D6EC1002319F0013009F490 +:102B700069C189830E94BE1D89810AC1112321F088 +:102B8000023008F05FC1FEC001115CC101C1112318 +:102B900021F0002309F4F6C03CC1002309F4F8C079 +:102BA0003EC1872D86958695837090E0009719F039 +:102BB000019761F047C1112321F08C2D972D93705F +:102BC00002C080E090E00E9416133CC1112321F066 +:102BD0008C2D972D937002C080E090E00E942C1302 +:102BE00031C18C2D112319F00E94F71F02C00E94E1 +:102BF0005F200E94E42026C1872D837009F052C017 +:102C0000111120C18C2D829586958770880F880FB1 +:102C10009C2D9F70892E912CA12CB12C082E04C0C4 +:102C2000880C991CAA1CBB1C0A94D2F7C4FE14C0C1 +:102C30000FE010E020E030E0B901A80104C0440F2B +:102C4000551F661F771F8A95D2F7CB01BA01609591 +:102C500070958095909503C060E070E0CB01272DC2 +:102C600026952695237030E02230310569F0233017 +:102C7000310589F0682979298A299B292130310574 +:102C800071F00E94731BDEC0682979298A299B296B +:102C90000E948F1BD7C00E94731BC501B4010E9404 +:102CA000571BD0C0112319F0872D817001C0869564 +:102CB000882309F4C7C08C2D829586958770880F6C +:102CC000880F9C2D9F70892E912CA12CB12C082E41 +:102CD00004C0880C991CAA1CBB1C0A94D2F7C4FE21 +:102CE00014C00FE010E020E030E0B901A80104C0FA +:102CF000440F551F661F771F8A95D2F7CB01BA0183 +:102D0000609570958095909503C060E070E0CB0170 +:102D1000272D269526952370422F50E042305105ED +:102D200069F04330510589F0682979298A299B295E +:102D30004130510571F00E944D1C84C068297929E9 +:102D40008A299B290E94691C7DC00E944D1CC501D7 +:102D5000B4010E94311C76C08C2D90E0FC01E05E35 +:102D6000F109E531F10508F050C0E059FF4F0C942E +:102D70006D250C2D0F70872D8F71112331F00E945E +:102D8000CA1B802F0E9427155DC00E94EB1B802F5D +:102D90000E942E1557C0112339F0011153C0872D01 +:102DA0008F710E94101C4EC0023008F04BC0F7CF4C +:102DB000112339F0872D8F710E94CA1B43C0112344 +:102DC000C9F3872D8F710E94EB1B3CC0112329F0A2 +:102DD000872D8F710E94B51B35C00E94AB1B32C07E +:102DE000112351F0172D1F71812F0E94CA1B63E020 +:102DF000812F0E94DE1C26C081E00E94E71C023069 +:102E000008F182E00E94E71C1DC0112331F000236D +:102E100089F28C2D0E94101415C0002391F28C2D84 +:102E20000E94D8140FC0472D4F706C2DC7010E940F +:102E30002C060E94CF1A06C0472D4F706C2DC7017B +:102E40000E94600BDD20F9F00E94DA1C80FD1BC09F +:102E5000F70112820E94D41C0E94CA1BC7010E9463 +:102E600052170E94D41C0F90DF91CF911F910F91A8 +:102E7000FF90EF90DF90CF90BF90AF909F908F909A +:102E80007F900C94EB1B0F90DF91CF911F910F91CE +:102E9000FF90EF90DF90CF90BF90AF909F908F907A +:102EA0007F9008950F931F93CF93DF93EC01888158 +:102EB00099812B813C81232BB9F09F3F11F48F3FE7 +:102EC00099F0CE010E94F107882371F06881798121 +:102ED0008A810E94D01C8C010E94851C0E944C1B80 +:102EE000B801CE010E943515DF91CF911F910F914E +:102EF00008950E94A81D0E94B81D0E947D1D0E9479 +:102F0000D21D0E9495210E94E42080E090E00E9462 +:102F1000161380E090E00C942C130E94981D0C94E2 +:102F200079170E94C51C292F22952F7030E02C3074 +:102F300031054CF42A3031056CF42250310922302D +:102F40003105A8F407C02C30310569F02F30310568 +:102F500051F00DC0803F69F018F4803E40F409C084 +:102F6000843F29F406C093FB882780F9089580E008 +:102F7000089581E00895CF93DF9300D000D01F9291 +:102F8000CDB7DEB70F900F900F900F900F90DF919D +:102F9000CF910895CF93DF9300D000D000D0CDB76C +:102FA000DEB726960FB6F894DEBF0FBECDBFDF9119 +:102FB000CF9108951F93CF93DF93C091860116E0C0 +:102FC00080918701C81799F0D0E01C9FF0011D9FE8 +:102FD000F00D1124E857FE4F4081518162817381C9 +:102FE000848195810E94CA172196C770E9CFDF912D +:102FF000CF911F9108954091B8015091B90160910E +:10300000BA017091BB018091BC019091BD010C94FB +:10301000CA178091BD0182958F7009F054C08091CC +:10302000BA01882309F44FC080918601A0918701DD +:103030006091B8017091B9014091BB015091BC0100 +:10304000B6E08A1709F43FC090E041155105C1F17F +:103050007F3F11F46F3FA1F1B89FF001B99FF00DD0 +:103060001124E857FE4F218172132AC02081621378 +:1030700027C02281211124C02381348124173507E0 +:1030800010F421503109241B350B283C3105C0F4C4 +:103090002091BD012F7020612093BD0126E0289F63 +:1030A000F001299FF00D1124E357FE4F80818F70AE +:1030B0008061808388EB91E00E9452170C94DA17AC +:1030C00001968770BECF0895CF92DF92EF92FF9264 +:1030D0000F931F93CF93DF93CDB7DEB762970FB6F1 +:1030E000F894DEBF0FBECDBF8C0185E0F801DE0194 +:1030F0001D9601900D928A95E1F7D8014C91119699 +:103100005C91119712966C9112971396CD90DC906A +:1031100014973091B8017091B9018091BB019091E1 +:10312000BC01009709F46BC17F3F19F43F3F09F4DC +:1031300066C1E090BA01EE2009F4C0C02091BD0143 +:10314000C816D90628F0F601E81BF90BCF0104C018 +:10315000809590958C0D9D1DFF24F394883C9105DE +:1031600078F0F12C207F09F0C6C07C2DD98AC88A5E +:1031700089890E94BB1788EB91E00E945217B1C069 +:10318000822F807F09F046C0751314C0341312C01B +:10319000611110C02F7020612093BD010E94FB17A8 +:1031A00088EB91E00E9452178091BD01D8011596DD +:1031B0008C932EC0CD2819F15F3F11F44F3FF9F0E9 +:1031C000F62E61111CC0809186012091870136E0A6 +:1031D000821709F45AC090E0389FF001399FF00D32 +:1031E0001124E857FE4F7181571306C070814713B1 +:1031F00003C07281711103C001968770E9CFF62E6A +:10320000662309F418C18091BD0181608093BD01DE +:10321000F12C11C1751308C0341306C0611104C02C +:103220008091BD01D801C3C04D875E878D859E8585 +:103230006A8B0E9491176A898823E1F16623D1F194 +:103240002091BD01822F82958F7090E0029774F0DB +:103250008091B8019091B90198878F831986DB8698 +:10326000CA862C87CE0107960E94521786E0F80185 +:10327000A8EBB1E001900D928A95E1F70E94091840 +:103280000E94FB17FF24F394D6C04D875E878D857F +:103290009E850E94C51C292F22952F7030E0223078 +:1032A00031050CF0BCC09F7009F0B6C0805E88305C +:1032B00008F4C1C0C8010E945217E4CFC816D9064D +:1032C00008F453C0F601E81BF90BCF01883C9105C7 +:1032D00008F450C0F12C7C2DD98AC88A89890E94B3 +:1032E000BB17E8EBF1E086E0DF011D928A95E9F774 +:1032F0000E94FB17A0C0751314C0341312C06111D3 +:1033000010C08091BD01F8018583C8010E94521749 +:1033100086E0E8EBF1E0DF011D928A95E9F7FE2CEB +:103320008AC04D875E878D859E856A8B0E94911726 +:103330006A89882309F4BECF662309F4BBCF2091A4 +:10334000BD01822F82958F7090E002970CF48ECF92 +:103350008091B8019091B9019A8389831B82DD82A3 +:10336000CC822E83CE0101967FCF809590958C0DD7 +:103370009D1DACCFF62E662309F49CCF75132EC08D +:1033800034132CC02091BD0120FD1FC0822F8295D7 +:103390008F70D9F0D80115962C9315978F3049F07E +:1033A0008F5F982F9295907F822F8F70892B159623 +:1033B0008C93C8010E94521786E0F801A8EBB1E097 +:1033C00001900D928A95E1F793CF86E0F801A8EB82 +:1033D000B1E001900D928A95E1F72DC04D875E878F +:1033E0008D859E850E949117811140CF8091BD01EE +:1033F00081608093BD01C8010E9452171CC06623E2 +:1034000009F458CF4D875E878D859E850E94911760 +:10341000882309F44FCF2ACF811148CF0CC0243024 +:1034200031050CF047CF9F7009F440CFF80195812A +:10343000907F09F03BCF8F2D62960FB6F894DEBFD8 +:103440000FBECDBFDF91CF911F910F91FF90EF90F5 +:10345000DF90CF9008951F93CF93DF93CDB7DEB762 +:103460002C970FB6F894DEBF0FBECDBF4F835887A1 +:1034700069877A878B879C87CE0107960E9464189C +:10348000882369F08F8198852A853B85232BF1F16C +:103490009F3F09F063C08F3F09F060C037C086E0EE +:1034A000FE013796DE01119601900D928A95E1F7A3 +:1034B0006F817885EA85FB85309741F17F3F11F474 +:1034C0006F3F21F12091870130E0C901019687709B +:1034D00099274091860150E08417950709F447C069 +:1034E00069837A83FD83EC8396E0929FD001939F5A +:1034F000B00D1124A857BE4FFE01319601900D92D8 +:103500009A95E1F7809387010E94DA1716E080917F +:103510008601909187018917C1F1189FC00111247C +:1035200088579E4F0E946418882379F1E0918601A4 +:103530001E9FF0011124E857FE4F408151816281A6 +:103540007381848195810E94CA178091860190E0E1 +:1035500001968770992780938601D9CF4F8158852E +:1035600069857A858B859C850E94CA17CFCF0E947A +:103570008D171092870110928601E8EBF1E086E04A +:10358000DF011D928A95E9F7C1CF2C960FB6F8940A +:10359000DEBF0FBECDBFDF91CF911F910895EF9297 +:1035A000FF920F931F93CF93DF938C01009709F441 +:1035B0006CC0F12CEE24E394E8012196F80184918B +:1035C000843740F4843008F051C0813081F082307B +:1035D00019F15BC0853709F444C0A8F19CE7980F46 +:1035E000903708F052C08F770E94D81441C00E5F08 +:1035F0001F4FFE01C49180E28C0F883048F4C770E1 +:103600008E2D01C0880FCA95EAF70E94AB1D14C029 +:103610008C2F0E9410142DC00E5F1F4FFE01C4910D +:1036200080E28C0F883058F4C7708E2D01C0880F4F +:10363000CA95EAF70E94B11D0E94D21D1AC08C2FB4 +:103640000E94D81416C00E5F1F4FFE01C491CC23F8 +:1036500081F08FE99FE00197F1F700C00000C150B1 +:10366000F6CF0E5F1F4FFE01F49003C00E941014AE +:103670008E018F2D882309F49FCFEFE9FFE031976A +:10368000F1F700C000008150F5CFDF91CF911F917D +:103690000F91FF90EF90089508956093C201709389 +:1036A000C3018093C4019093C5010C9479170F93C3 +:1036B0001F930091C2011091C3012091C401309168 +:1036C000C501DC01CB01802B912BA22BB32B809366 +:1036D000C2019093C301A093C401B093C5011F918F +:1036E0000F910C9479170F931F930091C2011091C1 +:1036F000C3012091C4013091C501DC01CB018023BD +:103700009123A223B3238093C2019093C301A0937A +:10371000C401B093C5011F910F910C9479170F93B9 +:103720001F930091C2011091C3012091C4013091F7 +:10373000C501DC01CB0180279127A227B327809305 +:10374000C2019093C301A093C401B093C5011F911E +:103750000F910C9479171092BE011092BF01109234 +:10376000C0011092C1010C94791741E050E060E073 +:1037700070E004C0440F551F661F771F8A95D2F76B +:103780004093BE015093BF016093C0017093C1018B +:103790000C94791741E050E060E070E004C0440F01 +:1037A000551F661F771F8A95D2F78091BE019091B1 +:1037B000BF01A091C001B091C101482B592B6A2BC8 +:1037C0007B2B4093BE015093BF016093C001709367 +:1037D000C1010C94791741E050E060E070E004C052 +:1037E000440F551F661F771F8A95D2F74095509555 +:1037F000609570958091BE019091BF01A091C0012C +:10380000B091C101482359236A237B234093BE0111 +:103810005093BF016093C0017093C1010C9479175C +:1038200041E050E060E070E004C0440F551F661FA7 +:10383000771F8A95D2F78091BE019091BF01A09128 +:10384000C001B091C101482759276A277B274093BF +:10385000BE015093BF016093C0017093C1010C94ED +:1038600079170F931F930091BE011091BF01209112 +:10387000C0013091C101DC01CB01802B912BA22B27 +:10388000B32B8093BE019093BF01A093C001B0936E +:10389000C1011F910F910C9479170F931F93009101 +:1038A000BE011091BF012091C0013091C101DC0126 +:1038B000CB0180239123A223B3238093BE01909355 +:1038C000BF01A093C001B093C1011F910F910C944F +:1038D00079170F931F930091BE011091BF012091A2 +:1038E000C0013091C101DC01CB0180279127A227C3 +:1038F000B3278093BE019093BF01A093C001B09302 +:10390000C1011F910F910C9479170895CF92DF9206 +:10391000EF92FF920F931F93CF93DF938C01C09090 +:10392000C201D090C301E090C401F090C501809124 +:10393000BE019091BF01A091C001B091C101C82A00 +:10394000D92AEA2AFB2ACFE1D0E0D701C6010C2E02 +:1039500004C0B695A795979587950A94D2F780FFEE +:1039600006C0B8018C2F0E94DF09019721F421972E +:1039700060F780E001C08C2FDF91CF911F910F91F4 +:10398000FF90EF90DF90CF900895CF93DF93EC01FD +:103990000E94861CBE010E94DF09DF91CF9108952D +:1039A000CB010E94C51C08958091C601859585951F +:1039B000859508958091C6018770089598E0899F44 +:1039C00090011124262B2093C6010C94CA1B209130 +:1039D000C601809582238093C601982F977069F461 +:1039E00030E0482F552747FD50952417350729F01B +:1039F0008595859585950C94EB1B08959091C6014E +:103A0000977081E009F480E0089590910C0199236A +:103A100021F090910D01911109C020910E0130917A +:103A20000F01F90132969FEF40E01FC0982F969545 +:103A3000969596959F3050F5E0910E01F0910F010B +:103A4000E90FF11D877021E030E0A90102C0440FA9 +:103A5000551F8A95E2F7CA019181892B81830895C8 +:103A60009F3F39F04F5F4E3041F051915813F8CFDE +:103A70000DC05111F7CF942FF5CF9F3F39F0F901C9 +:103A8000E90FF11D97FDFA958283089508959091AD +:103A90000C01992321F090910D01911109C0209101 +:103AA0000E0130910F01F9013296205F3F4F1FC088 +:103AB000982F9695969596959F30F0F4E0910E018B +:103AC000F0910F01E90FF11D877021E030E0A901AD +:103AD00002C0440F551F8A95E2F7CA018095918173 +:103AE0008923818308953196E217F30729F09081A5 +:103AF0009813F9CF1082F7CF089581E090E0E0911C +:103B00000E01F0910F01E80FF91F1082019680312C +:103B10009105A9F708959091DA01892B8093DA0134 +:103B2000089580959091DA0189238093DA010895B0 +:103B30001092DA0108959091D901892B8093D901CF +:103B4000089580959091D90189238093D901089592 +:103B50001092D90108959091D801892B8093D801B2 +:103B6000089580959091D80189238093D801089574 +:103B70001092D80108958093C70108951092C7014B +:103B8000089580910E0190910F01FC0131969C01E6 +:103B9000205F3F4F80E0919191118F5FE217F30713 +:103BA000D1F70895E0910E01F0910F018091DA01B3 +:103BB0008083E0910E01F0910F0190818091D901F5 +:103BC000892B8083E0910E01F0910F01908180910B +:103BD000D801892B80838091C701882361F0E0910F +:103BE0000E01F0910F019081892B80830E94C11DED +:103BF00081111092C70180910E0190910F010C94D8 +:103C0000001320E0009739F0AC01415051098423A2 +:103C100095232F5FF7CF822F0895CF92DF92EF92F7 +:103C2000FF926C01EE24FF24C114D104E104F104DD +:103C300021F0C701B60120E101C020E0C72ED82E37 +:103C4000E92EFF24C114D104E104F10419F0285F26 +:103C5000C701B6016B017C0154E0F694E794D79458 +:103C6000C7945A95D1F7C114D104E104F10419F0B5 +:103C70002C5FC701B6016B017C0142E0F694E7942A +:103C8000D794C7944A95D1F7C114D104E104F10443 +:103C900019F02E5FC701B601DC01CB01B695A795DF +:103CA00097958795892B8A2B8B2B09F02F5F822F75 +:103CB000FF90EF90DF90CF9008958091F4018430D1 +:103CC00021F11092DC0120E488E190E00FB6F89435 +:103CD000A895809360000FBE2093600080E00E9452 +:103CE000F10B83B7817F846083BF83B7816083BF1B +:103CF0007894889583B78E7F83BF88E10FB6F89458 +:103D000080936000109260000FBE089508950E9495 +:103D10004F040E9462040E94861E0E94570591E093 +:103D2000811101C090E0892F08950E948D170E9493 +:103D3000F4120C94F10B82E084BD93E095BD9AEFF0 +:103D400097BD80936E0008952FB7F8948091DD01A0 +:103D50009091DE01A091DF01B091E0012FBF0895A5 +:103D6000CF92DF92EF92FF920F931F932FB7F894A9 +:103D70004091DD015091DE016091DF017091E00121 +:103D80002FBF6A017B01EE24FF248C0120E030E08C +:103D9000C016D106E206F30610F4415051099A010B +:103DA000281B390BC9011F910F91FF90EF90DF90F5 +:103DB000CF9008951F920F920FB60F9211248F93F8 +:103DC0009F93AF93BF938091DD019091DE01A0910D +:103DD000DF01B091E0010196A11DB11D8093DD01CD +:103DE0009093DE01A093DF01B093E001BF91AF910A +:103DF0009F918F910F900FBE0F901F9018950E946A +:103E0000F10FF8942FEF87EA91E62150804090401F +:103E1000E1F700C0000087E090EBDC018093FD013A +:103E20009093FE01A093FF01B09300029CE088E113 +:103E30000FB6F894A895809360000FBE9093600031 +:103E4000FFCF0E94591F811102C00E943F1F0E9494 +:103E5000641F8093DB010E946C1F90E09093EF0140 +:103E60008093EE0187FB882780F980930D010E94E3 +:103E7000681F682F70E080E090E00C944D1B6DEEA1 +:103E80007EEF80E090E00E94A72560E082E090E075 +:103E90000E94952560E083E090E00E94952560E017 +:103EA00084E090E00E94952560E085E090E00C942D +:103EB000952580E090E00E948F2521E08D3E9E4F69 +:103EC00009F020E0822F089582E090E00C9487258D +:103ED00083E090E00C94872584E090E00C948725A3 +:103EE000682F84E090E00C9495258091E30180FF99 +:103EF0000BC06091130185E0689FB0011124759596 +:103F00006795759567952BC081FF09C06091130176 +:103F100085E0689FB00111247595679520C082FFE8 +:103F200007C06091130185E0689FB001112417C09C +:103F30009091E4019923D1F060911201961788F7CE +:103F40002091130185E0289F90011124929FA001E8 +:103F5000939F500D112470E0CA010E9459256038CA +:103F6000710540F46115710539F002C065E070E03B +:103F7000862F08958FE7089581E008958091E301E9 +:103F800080FF08C06091110170E075956795759587 +:103F9000679521C081FF06C06091110170E07595A1 +:103FA000679519C082FF04C06091110170E010C0D4 +:103FB0009091E4019923C1F0609110019617A0F748 +:103FC00080911101899FC001112470E00E94592540 +:103FD0006038710528F46115710521F0862F089568 +:103FE0008FE7089581E0089561E070E0F4CF803FAD +:103FF00021F40E94751F819504C0813F29F40E941D +:10400000751F8093E7010895823F21F40E94751F78 +:10401000819504C0833F29F40E94751F8093E601B7 +:104020000895893F19F40E94BE1F05C08A3F31F4EC +:104030000E94BE1F81958093E80108958B3F21F473 +:104040000E94BE1F819504C08C3F29F40E94BE1FB0 +:104050008093E9010895843F21F48091E501816016 +:1040600017C0853F21F48091E501826011C0863F31 +:1040700021F48091E50184600BC0873F21F4809199 +:10408000E501886005C0883F31F48091E5018061D9 +:104090008093E50108958D3F21F48091E3018160D3 +:1040A0000BC08E3F21F48091E301826005C08F3FF9 +:1040B00029F48091E30184608093E3010895803FB7 +:1040C00039F48091E70187FF6CC01092E70169C065 +:1040D000813F29F48091E7011816BCF362C09091EA +:1040E000E601823F29F497FF5CC01092E60159C0B7 +:1040F000833F19F41916CCF354C0893F41F48091E1 +:10410000E80118160CF04DC01092E8014AC08A3F31 +:1041100029F48091E80187FF44C0F6CF8B3F39F442 +:104120008091E90187FF3DC01092E9013AC08C3FC0 +:1041300029F48091E9011816BCF333C0843F21F4BF +:104140008091E5018E7F17C0853F21F48091E501C4 +:104150008D7F11C0863F21F48091E5018B7F0BC0DC +:10416000873F21F48091E501877F05C0883F31F4C6 +:104170008091E5018F7E8093E50113C08D3F21F48E +:104180008091E3018E7F0BC08E3F21F48091E3018B +:104190008D7F05C08F3F29F48091E3018B7F809351 +:1041A000E3018091E60181110EC08091E701811148 +:1041B0000AC08091E801811106C08091E901811156 +:1041C00002C01092E401089585EE91E00E940B1365 +:1041D0000E94A41E9093E2018093E10108951F9331 +:1041E000CF93DF938091E1019091E2010E94B01E94 +:1041F000AC019091E401992321F02091140130E069 +:1042000006C0209115018AE0289F900111244217D1 +:10421000530708F486C08091E601C091E701D09170 +:10422000E8011091E901811107C0C11176C0D111D7 +:1042300074C0111172C075C09F3F19F09F5F9093B9 +:10424000E401181624F40E94751F8093E601809102 +:10425000E60187FF05C00E94751F81958093E601E6 +:104260001C1624F40E94751F8093E7018091E701DA +:1042700087FF05C00E94751F81958093E7016091BB +:10428000E601662339F1C091E701CC2319F17727C4 +:1042900067FD7095872F972F0E946A2423E333E3ED +:1042A00043E35FE30E94CE240E9437246093E6013B +:1042B0006C2F772767FD7095872F972F0E946A24B0 +:1042C00023E333E343E35FE30E94CE240E943724D9 +:1042D0006093E7011D1624F40E94BE1F8093E8013D +:1042E0008091E80187FF05C00E94BE1F81958093E1 +:1042F000E801111624F40E94BE1F8093E901809109 +:10430000E90187FF05C00E94BE1F81958093E901E6 +:10431000DF91CF911F910C94E4209F3F09F08ECF45 +:1043200096CFDF91CF911F910895E5EEF1E085E002 +:10433000DF011D928A95E9F71092E4011092E301E2 +:104340000895833081F128F4813059F08230D1F022 +:104350000895853009F449C0B8F1863009F456C093 +:10436000089580911501262F30E0280F311D2F3F31 +:10437000310524F4680F6093150108958FEF809341 +:104380001501089580911401262F30E0280F311D6A +:104390002F3F310524F4680F6093140108958FEFC7 +:1043A00080931401089580911301262F30E0280F87 +:1043B000311D2F3F310524F4680F609313010895D8 +:1043C0008FEF80931301089580911201262F30E022 +:1043D000280F311D2F3F310524F4680F609312011F +:1043E00008958FEF80931201089580911101262F77 +:1043F00030E0280F311D2F3F310524F4680F609302 +:10440000110108958FEF809311010895809110019B +:10441000262F30E0280F311D2F3F310524F4680F7F +:104420006093100108958FEF8093100108958330F9 +:1044300011F128F4813049F0823091F008958530EF +:1044400081F120F18630C1F108958091150168173E +:1044500020F4861B8093150108951092150108958C +:1044600080911401681720F4861B8093140108952D +:1044700010921401089580911301681720F4861B8F +:1044800080931301089510921301089580911201F1 +:10449000681720F4861B8093120108951092120170 +:1044A000089580911101681720F4861B80931101F3 +:1044B000089510921101089580911001681720F459 +:1044C000861B8093100108951092100108950F9398 +:1044D0001F938D3109F471C008F045C0803109F493 +:1044E00085C008F5873009F46FC068F4863009F09C +:1044F000ADC08091DB01817F8E7F8093DB0181E005 +:104500008093EB01A4C08B3009F49EC08E3009F07B +:104510009DC08091DB0182FB222720F991E0922748 +:1045200090FB82F96CC0863109F48EC060F4813151 +:1045300009F08CC00E948D1790910D0181E08927B0 +:1045400080930D0181C0893109F47EC08B3109F05F +:104550007DC08091DB0181FB222720F991E0922729 +:1045600090FB81F94CC0853309F466C048F487326A +:1045700009F462C008F44FC0893209F45DC066C016 +:10458000833438F48A3308F044C0883309F45CC0BB +:104590005DC0833409F450C0883409F057C00E94CC +:1045A0008D170FEF13ED20E3015010402040E1F78D +:1045B00000C000000E94FF1E47C00E94F1230E941D +:1045C000F4120E94F10B40C09091DB01892F80957D +:1045D000817080FB90F929F0966098609093DB01E0 +:1045E00036C0997F977F9093DB012EC08091DB01CD +:1045F00083FB222720F991E0922790FB83F9809397 +:10460000DB01992309F18091DB0181608093DB015B +:104610001BC0895301C08D5141E050E060E070E063 +:104620008A019B0104C0000F111F221F331F8A95AE +:10463000D2F7C901B80104C061E070E080E090E009 +:104640000E944D1B0E948D1781E001C080E01F91E8 +:104650000F91089580E0089580E008958E518A308A +:1046600030F4E82FF0E0E65DFE4F8081089580E0B1 +:104670000895CF93C82F8091EB01813079F018F025 +:104680008230E9F186C0E0910E01F0910F01808146 +:10469000813169F0823209F07EC009C0E0910E01DB +:1046A000F0910F018081813111F0823261F48C2F01 +:1046B0000E942A23811104C08C2F0E9467221DC0F2 +:1046C00081E090E01AC08C2F0E942C23811114C02D +:1046D000C43179F048F4CB3079F0C03109F05FC0D3 +:1046E00082E08093EB0108C0C93219F0C83321F091 +:1046F00056C01092EB0153C081E0817052C0C932A4 +:1047000081F110F5C43169F1A8F4C73009F045C052 +:104710008AE08093150194E19093140193E09093C3 +:1047200013018093120188E08093110188E2809345 +:10473000100133C082EE8C0F863078F58C2F0E94EA +:104740002E238093EA0129C0CE34E9F020F4CB3443 +:1047500021F56AE013C0C13579F0C235F1F461E0AA +:104760000DC08091EA01882319F01092EA0115C06A +:1047700081E08093EB0115C061E006C08091EA0101 +:104780000E94A1210AC06AE08091EA010E941722DA +:1047900004C01092EB0180E004C081E002C080E020 +:1047A000ACCFCF910895E1E8F0E08081886080830C +:1047B0008081816080838FB7F89493E09093890023 +:1047C00090ED909388008FBF0895EFE6F0E0808130 +:1047D000826080830895EFE6F0E080818D7F8083A2 +:1047E0000895EFE6F0E0908182E0892780830895C4 +:1047F0001F920F920FB60F9211242F933F934F9356 +:104800005F936F937F938F939F93AF93BF93EF9338 +:10481000FF938091EC019091ED0101969093ED0151 +:104820008093EC01811103C082E00E94F10BE091C2 +:10483000ED01E695E695F0E0EA54F94FE4918091B8 +:10484000EC018E1303C080E00E94F10BFF91EF9109 +:10485000BF91AF919F918F917F916F915F914F9198 +:104860003F912F910F900FBE0F901F90189504D07D +:104870006894B1118DC0089570D088F09F5790F062 +:10488000B92F9927B751A0F0D1F0660F771F881F75 +:10489000991F1AF0BA95C9F712C0B13081F077D0DC +:1048A000B1E0089574C0672F782F8827B85F39F07A +:1048B000B93FCCF3869577956795B395D9F73EF4D4 +:1048C00090958095709561957F4F8F4F9F4F08957C +:1048D000E89409C097FB3EF490958095709561959A +:1048E0007F4F8F4F9F4F9923A9F0F92F96E9BB2750 +:1048F0009395F695879577956795B795F111F8CFCC +:10490000FAF4BB0F11F460FF1BC06F5F7F4F8F4F36 +:104910009F4F16C0882311F096E911C0772321F02C +:104920009EE8872F762F05C0662371F096E8862FC4 +:1049300070E060E02AF09A95660F771F881FDAF71B +:10494000880F9695879597F9089557FD9058440FCD +:10495000551F59F05F3F71F04795880F97FB991FDE +:1049600061F09F3F79F0879508951216130614069B +:10497000551FF2CF4695F1DF08C016161706180628 +:10498000991FF1CF86957105610508940895E89403 +:10499000BB2766277727CB0197F908950BD078C0FE +:1049A00069D028F06ED018F0952309F05AC05FC086 +:1049B0001124EECFCADFA0F3959FD1F3950F50E0FD +:1049C000551F629FF001729FBB27F00DB11D639FC1 +:1049D000AA27F00DB11DAA1F649F6627B00DA11D67 +:1049E000661F829F2227B00DA11D621F739FB00D0D +:1049F000A11D621F839FA00D611D221F749F33277D +:104A0000A00D611D231F849F600D211D822F762F15 +:104A10006A2F11249F5750408AF0E1F088234AF012 +:104A2000EE0FFF1FBB1F661F771F881F915050405E +:104A3000A9F79E3F510570F014C0AACF5F3FECF379 +:104A4000983EDCF3869577956795B795F795E7954A +:104A50009F5FC1F7FE2B880F911D9695879597F95B +:104A6000089597F99F6780E870E060E008959FEFF0 +:104A700080EC089500240A941616170618060906F5 +:104A8000089500240A9412161306140605060895C4 +:104A9000092E0394000C11F4882352F0BB0F40F44C +:104AA000BF2B11F460FF04C06F5F7F4F8F4F9F4F8C +:104AB000089597FB072E16F4009407D077FD09D0D0 +:104AC0000E94732507FC05D03EF4909581959F4F79 +:104AD0000895709561957F4F0895EE0FFF1F059023 +:104AE000F491E02D0994AA1BBB1B51E107C0AA1F3A +:104AF000BB1FA617B70710F0A61BB70B881F991F7F +:104B00005A95A9F780959095BC01CD010895F99922 +:104B1000FECF92BD81BDF89A992780B50895A8E18E +:104B2000B0E042E050E00C94AF25262FF999FECF7B +:104B300092BD81BDF89A019700B4021639F01FBAF0 +:104B400020BD0FB6F894FA9AF99A0FBE089501960F +:104B5000272F0E9496250C949525DC01CB01FC01A2 +:104B6000F999FECF06C0F2BDE1BDF89A319600B4C6 +:0E4B70000D9241505040B8F70895F894FFCFD1 +:104B7E000220F30B810C5E0C2A0CF60B0101C8010E +:104B8E0028080A03140A404D363976062906F3051D +:104B9E00BA054D0566057F05980501020304050655 +:044BAE0007080900EB +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/workman_osx_mdw/keymap.c b/keyboards/ergodox_ez/keymaps/workman_osx_mdw/keymap.c new file mode 100644 index 000000000..c9c0f4c27 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/workman_osx_mdw/keymap.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; + } + 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/keyboards/ergodox_ez/keymaps/zweihander-osx/compiled.hex b/keyboards/ergodox_ez/keymaps/zweihander-osx/compiled.hex new file mode 100644 index 000000000..56a19987f --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/zweihander-osx/compiled.hex @@ -0,0 +1,1173 @@ +:100000000C94D3020C9417030C9417030C9417034D +:100010000C9417030C9417030C9417030C941703F8 +:100020000C9417030C9417030C94DA0D0C94AC0E7B +:100030000C9417030C9417030C9417030C941703D8 +:100040000C9417030C94B6220C9417030C9417030A +:100050000C9417030C94491C0C9417030C9417036D +:100060000C9417030C9417030C9417030C941703A8 +:100070000C9417030C9417030C9417030C94170398 +:100080000C9417030C9417030C9417030C94170388 +:100090000C9417030C9417030C9417030C94170378 +:1000A0000C9417030C9417030C941703190F3B0FB0 +:1000B00029103B0F2910800FA30F2910F80F0B10E8 +:1000C000DA12DA12091309133F135F139014901414 +:1000D0006A1390141A141A148114901490148A1428 +:1000E0002714271427142714271427142714271438 +:1000F0002714271427142714271427142714271428 +:10010000391446144D1454145E14750A01E2012C7E +:10011000022C02E2746401160216010402040109B1 +:1001200002090104020401150215010C020C012848 +:10013000022800750A01E2012C022C02E27464011B +:10014000170217010802080115021501100210011B +:100150000C020C0111021101040204010F020F0133 +:1001600028022800750A01E2012C022C02E27464C4 +:100170000105020501050205010802080107020741 +:10018000010C020C011702170128022800750A0150 +:10019000E30116021602E301E3012B022B02E30145 +:1001A000E30115021502E300750A01E301160216C8 +:1001B00002E301E3012B022B02E3000000F0A12E79 +:1001C000004C002A00E100E00000001E00140004C2 +:1001D000001D00E200E2001F001A0016001B00E3F1 +:1001E000002A00200008000700060050002C002113 +:1001F000001500090019004F004B00220017000AEB +:1002000000050000003500015401520000E3000029 +:10021000003400015401520000E3000000290023D3 +:10022000001C000B00110000002A00240018000D23 +:1002300000100052004E0025000C000E0036005148 +:10024000002800260012000F0037002F002B002787 +:10025000001300334238713000E0002D00310034CB +:1002600078E5002C00000001000100010001000100 +:100270000000003A002F0036020100010001003B9F +:1002800000300037020100010001003C002F02266F +:10029000020100010001003D0030022702010001BF +:1002A0000001003E003402340001000000010001A2 +:1002B0000001000000010000000100010001000039 +:1002C000000100000001003F0038002D0024020062 +:1002D0000001004000240021001E0027004A0041C8 +:1002E00000250022001F00370001004200260023E5 +:1002F00000200050000100430025022E022E004F76 +:10030000004D004400450001000100010000000113 +:10031000000100010001000100000069000100016E +:10032000000100010001006A000100043001000129 +:1003300000010001004B004E00010001000100011E +:100340000001300100010001004A000100033001FA +:100350000002300000010001000100000001000067 +:100360000001001408010000000100000001001A53 +:100370000830082F082C0200000100350A520C50EA +:10038000002C00A9000100350852005100AC00AA61 +:100390000019080100510C4F00AB00A8000608012D +:1003A0000001000100010001001B08A5000100AED2 +:1003B0000001000100000016034500720067006F95 +:1003C0000044006F007800200045005A000000162D +:1003D000034500720067006F0044006F0078002042 +:1003E0000045005A0000000403090409026D0004DE +:1003F0000100A0FA09040000010301010009211114 +:10040000010001223F000705810308000A090401D9 +:10041000000103010200092111010001224D000722 +:1004200005820308000A0904020001030000000914 +:1004300021110100012236000705830308000A0983 +:100440000403000103000000092111010001223909 +:1004500000070584031000011201100100000008CC +:10046000EDFE071301000102000105010906A101CB +:10047000050719E029E71500250195087501810296 +:100480000508190129059505750191029501750366 +:100490009101050719002977150025019578750147 +:1004A0008102C005010980A101850216010026B75D +:1004B000001A01002AB700751095018100C0050CD3 +:1004C0000901A1018503160100269C021A01002AD8 +:1004D0009C02751095018100C005010902A1010966 +:1004E00001A10005091901290515002501950575CA +:1004F000018102950175038101050109300931155A +:1005000081257F95027508810609381581257F951B +:100510000175088106050C0A38021581257F9501B1 +:1005200075088106C0C005010906A101050719E08B +:1005300029E71500250195087501810295017508C7 +:10054000810105081901290595057501910295019B +:10055000750391010507190029FF150025FF950670 +:1005600075088100C00000000000000000000000CD +:10057000010204060A0F17202C3A4A5D71879DB3C9 +:10058000C7DAE9F5FCFFFCF5E9DAC7B39D87715DD1 +:100590004A3A2C20170F0A0604020100000000004E +:1005A00000000000000011241FBECFEFDAE0DEBF24 +:1005B000CDBF04B603FE24C08091FB019091FC01E5 +:1005C000A091FD01B091FE018730904BA740B04B48 +:1005D000B9F41092FB011092FC011092FD011092EF +:1005E000FE0114BE84B7877F84BF88E10FB6F894FC +:1005F00080936000109260000FBEE0E0FFE3099579 +:1006000011E0A0E0B1E0EAEFF8E402C005900D923D +:10061000A433B107D9F711E0A4E3B1E001C01D9202 +:10062000AB3FB107E1F70E941E0B0C947B240C94A6 +:1006300000001092B9008AE08093B800089594EA0F +:100640009093BC009091BC0097FFFCCF9091B900B3 +:10065000987F983021F0903111F081E008958093D7 +:10066000BB0084E88093BC008091BC0087FFFCCF76 +:100670008091B900887F883111F0803471F780E073 +:10068000089584E98093BC008091BC0084FDFCCF78 +:1006900008958093BB0084E88093BC008091BC00E7 +:1006A00087FFFCCF9091B900987F81E0983209F4E0 +:1006B00080E0089584E88093BC008091BC0087FFAF +:1006C000FCCF8091BB00089580910101811115C07C +:1006D00080E40E941F038093010181110CC082E11C +:1006E0000E94490380930101811105C08FEF0E9490 +:1006F0004903809301010E94410384B1807F84B942 +:1007000085B1807F85B98AB1837F8AB98BB1837FB8 +:100710008BB93E98469808950E941F058093010169 +:100720000E94640380B38C7080BB81B3836F81BBF4 +:10073000A5E3B1E0E3E4F1E08EE08E0F11921D92AB +:100740008E13FCCF0C940905BF92CF92DF92EF92EB +:10075000FF920F931F93CF93DF9380910101882322 +:1007600079F0809134018F5F80933401811108C04A +:100770000E941F0580930101811102C00E94B104F3 +:1007800005E311E0C0E0D0E0DD24D39482E0C82E80 +:10079000EE24E394F12CC730D10500F580910101DE +:1007A000811164C080E40E941F03809301018111C4 +:1007B00012C082E10E9449038093010181110BC0A4 +:1007C000C7010C2E01C0880F0A94EAF780950E9499 +:1007D0004903809301010E94410348C0CA30A1F03F +:1007E00028F4C83059F0C93061F005C0CC3089F028 +:1007F00070F0CD3089F0209A289810C0219A29985D +:100800000DC0229A2A980AC0239A2B9807C0529AA0 +:1008100001C0539A5B9802C03E9A469890EA9A9516 +:10082000F1F79FB1799902C082E001C080E0917038 +:100830009D25982B7C9902C084E001C080E0892B23 +:100840007D9902C038E001C030E0832B7E9902C060 +:1008500020E101C020E0822B9FB19095991F99273C +:10086000991F9295990F907E892B0FC0809101015D +:10087000811149C080E40E941F03809301018823F5 +:1008800079F1B12C0E9441038B2DF80190819817CA +:1008900019F08083C09200010E94640321960F5FCB +:1008A0001F4FCE30D10509F076CF8091000188230B +:1008B00061F1815080930001882339F08FE99FE036 +:1008C0000197F1F700C0000020C0A3E4B1E0E5E328 +:1008D000F1E0CF01825F91919D938E13FCCF15C003 +:1008E00083E10E944903809301018111CACF81E411 +:1008F0000E941F03809301018111C3CF0E945A03FC +:10090000B82EB094BFCF80E0C0CF0E94AF0481E08A +:10091000DF91CF911F910F91FF90EF90DF90CF90DB +:10092000BF900895E82FF0E0ED5BFE4F80810895C1 +:1009300008950F931F93CF93DF93C3E4D1E010E0AA +:100940000C2F025F899190E00E946F1B180F0C130F +:10095000F9CF812FDF91CF911F910F9108950C94C2 +:100960009E0556985E9825982D9826982E9827983B +:100970002F988FEF90E09093890080938800909358 +:100980008B0080938A0090938D0080938C00259A31 +:100990002D9A2FEF80E792E0215080409040E1F7C0 +:1009A00000C00000269A2E9A2FEF80E792E0215097 +:1009B00080409040E1F700C00000279A2F9A2FEF67 +:1009C00080E792E0215080409040E1F700C00000B5 +:1009D00025982D982FEF80E792E02150804090409D +:1009E000E1F700C0000026982E982FEF80E792E0F4 +:1009F000215080409040E1F700C0000027982F98D8 +:100A000056985E9825982D9826982E9827982F9876 +:100A1000089589EA8093800089E08093810024987A +:100A20002C983F988AB18F748AB96E98479A8BB187 +:100A3000806B8BB9769A0E94B1040C949D0580E27C +:100A4000809301018091510181110EC00E94190310 +:100A500081E0809351012FEF83ED90E3215080409E +:100A60009040E1F700C0000080E40E941F038093E3 +:100A7000010181112EC00E9449038093010181115F +:100A800028C00E94490380930101811122C08FE395 +:100A90000E9449038093010181111BC00E94410300 +:100AA00080E40E941F0380930101811112C08CE039 +:100AB0000E9449038093010181110BC00E944903E8 +:100AC00080930101811105C08FE30E944903809347 +:100AD00001010E944103809101010895FC016230EF +:100AE000B9F028F4662341F0613061F023C063302F +:100AF000A9F06430C9F01EC082818823D9F088EA49 +:100B000091E0089582818823A9F08DE891E008950D +:100B10008281882379F084E691E008958281882398 +:100B200049F083E391E008958281882319F08AE0F7 +:100B300091E0089580E090E0089508956091BD01EE +:100B40007091BE018091BF019091C0010E947B1BFA +:100B500056985E9825982D9826982E9827982F9825 +:100B6000813019F0823021F00895259A2D9A089548 +:100B7000269A2E9A089581E0089581E008950C94B4 +:100B8000BD0508950F931F93CF93DF938C01FC0154 +:100B9000C081D181CE010E94F419BE010E946B0672 +:100BA000EC01B8010E94BF05882309F48DC0F8014B +:100BB0008281882309F44AC080915D0181111FC0A0 +:100BC000C431F0E5DF0709F051C00E94C10581E0A2 +:100BD00080935D010E94131C90935C0180935B01E4 +:100BE0001092540110925601109255011092580122 +:100BF0001092570110925A011092590165C08091CC +:100C00005B0190915C010E941F1C883C910570F46F +:100C100080915401E82FF0E0EE0FFF1FEB5AFE4FDA +:100C2000D183C0838F5F809354014EC0C43880E568 +:100C3000D80721F0C538D04501F13AC0F8018281CA +:100C4000882341F01092520182E01EC0C438E0E5D2 +:100C5000DE0759F580915201811106C086E20E949B +:100C60007E1186E20E94461282E01CC0C438F0E584 +:100C7000DF0741F3C538D045D9F4F80182818823D4 +:100C800031F01092530180E20E9495121DC08091B4 +:100C90005301811106C087E20E947E1187E20E9403 +:100CA000461280E20E949C120FC0C538D04529F33D +:100CB00081E08093520180935301C801DF91CF916D +:100CC0001F910F910C94BB0580E0DF91CF911F9194 +:100CD0000F910895089596E0799FF001112494E50D +:100CE000899FE00DF11D1124E60FF11DEE0FFF1F8E +:100CF000E154FE4F859194910895880F991FFC014E +:100D0000E55CFF4F859194910895880F991FFC0130 +:100D1000E554FE4F8591949108950F931F93CF93BF +:100D2000DF93EC01811520E3920750F5C11580E2B5 +:100D3000D80708F0C3C0CB3BD10590F4C83AD10521 +:100D400008F06AC0C53AD10508F05BC0C430D105CF +:100D500008F0D0C1219709F0CAC101E010E00AC231 +:100D6000CF3FD10511F008F0C5C1C03FD10508F053 +:100D7000A2C0CE01805E9109089708F4BBC1B7C13B +:100D8000C13090E5D90709F4A2C020F5C0318FE445 +:100D9000D80770F4C11590E4D90708F094C0C115C4 +:100DA00021E3D20708F0A3C1DD278E01106CE2C158 +:100DB000C115D04509F09BC10E94FB148FEF94E34D +:100DC0002CE0815090402040E1F700C000000E94DC +:100DD0006E1CD0C1C11597E5D90758F4C03121E583 +:100DE000D20708F01CC1C43180E5D80708F475C0EB +:100DF0007EC1CE0190578115904108F078C1DF7017 +:100E000073C1C53AD10509F477C1C63AD10509F0D5 +:100E100076C102E810E4AEC1C83AD10509F472C146 +:100E2000C93AD10509F471C1CA3AD10509F470C1B2 +:100E3000CB3AD10509F46FC1CC3AD10509F46EC1A2 +:100E4000CD3AD10509F46DC1C03BD10509F46CC19F +:100E5000CE3AD10509F46BC1CF3AD10509F46AC184 +:100E6000C13BD10509F469C1C23BD10509F468C190 +:100E7000C33BD10509F467C1C43BD10509F466C180 +:100E8000C53BD10509F465C1C63BD10509F464C170 +:100E9000C73BD10509F463C1C83BD10509F462C160 +:100EA000C93BD10509F461C1CA3BD10509F460C150 +:100EB00000E014E45FC18E0110655CC1CE019F703B +:100EC0000E94850658C1DF708E01106A53C180915F +:100ED000DA0181608093DA014DC10E94131E8111F5 +:100EE00002C00E94F91D0E94301E90E09093FB0109 +:100EF0008093FA01C23080E5D80721F48091FA018D +:100F0000816086C0C43090E5D90721F48091FA0150 +:100F100082607EC0C63020E5D20721F48091FA01BC +:100F2000846076C0C83080E5D80719F48091FA0152 +:100F300027C0CA3090E5D90721F48091FA01806179 +:100F400067C0CC3020E5D20721F48091FA0180629D +:100F50005FC0CE3080E5D80721F48091FA0180642B +:100F600057C0C03190E5D90721F48091FA0180681B +:100F70004FC0C23120E5D20729F48091FA01846084 +:100F8000886046C0C33080E5D80721F48091FA011B +:100F90008E7F3EC0C53090E5D90721F48091FA01DB +:100FA0008D7F36C0C73020E5D20721F48091FA0149 +:100FB0008B7F2EC0C93080E5D80719F48091FA01E3 +:100FC00026C0CB3090E5D90721F48091FA018F7EBD +:100FD0001FC0CD3020E5D20721F48091FA018F7D2A +:100FE00017C0CF3080E5D80721F48091FA018F7BBC +:100FF0000FC0C13190E5D90721F48091FA018F77B4 +:1010000007C0C331D04531F48091FA018B7F877FCF +:101010008093FA018091FA010E94341EABC08D2F9B +:1010200099278F70992781309105D9F49E012370FB +:10103000332702C0880F991F2A95E2F79C688E011A +:1010400044E0000F111F4A95E1F700271370802B31 +:10105000912B53E0CC0FDD1F5A95E1F7C076DD27C9 +:101060002FC08230910531F4DC2FCC278E01016F27 +:10107000106A80C08330910569F4CE01837099278E +:1010800001E010E002C0000F111F8A95E2F7C801CD +:101090009C680FC084309105B9F4CE018370992704 +:1010A00001E010E002C0000F111F8A95E2F7C801AD +:1010B0009A6823E0CC0FDD1F2A95E1F7C07ED77038 +:1010C0008C010C2B1D2B56C08530910531F4DC2F83 +:1010D000CC278E01046F106A4DC0069709F04AC0F4 +:1010E000CF71DD27DC2FCC278E01106243C000E0DA +:1010F00010E040C08E013EC001E810E43BC003E8B0 +:1011000010E438C002EE14E435C009EE14E432C035 +:101110000AEE14E42FC005EB14E42CC006EB14E433 +:1011200029C007EB14E426C00CEC14E423C00DEC3A +:1011300014E420C003E815E41DC00AE815E41AC051 +:1011400002E915E417C004E915E414C001E216E44D +:1011500011C003E216E40EC004E216E40BC005E27F +:1011600016E408C006E216E405C007E216E402C071 +:101170000AE216E4C801DF91CF911F910F91089503 +:1011800096E0799FF001112494E5899FE00DF11D0F +:101190001124E60FF11DEE0FFF1FE154FE4F859164 +:1011A0009491803E9105E0F4803C910558F581339F +:1011B000910509F46FC048F48932910509F463C0C0 +:1011C0008A32910509F46DC072C089339105E9F046 +:1011D00082389105D1F08533910509F44DC067C07F +:1011E000833E910581F138F4803E9105B9F0823E4D +:1011F0009105D9F05CC0863E910561F1873E91056D +:10120000A1F155C00E947D0608952091FA0120FDAC +:1012100002C021FF4CC080EE90E049C08091FA01ED +:1012200080FFF9CF89E390E042C08091FA0182FF0C +:101230000EC08091FA0184FF03C080E090E037C0C7 +:1012400083EE90E034C08091FA0182FFF2CF82EE0B +:1012500090E02DC08091FA0183FF0BC08091FA01CC +:1012600084FDEBCF87EE90E022C08091FA0183FFEE +:10127000F5CF86EE90E01BC08091FA0185FF07C094 +:1012800089E290E014C08091FA0185FFF9CF85E3EF +:1012900090E00DC08091FA0186FF07C08AE290E0DD +:1012A00006C08091FA0186FFF9CF81E390E00E94A9 +:1012B0008D06089508950C945A0980916E01089541 +:1012C000CF93DF9300D01F92CDB7DEB79C01809102 +:1012D000F101843019F593E099833B832A8390933D +:1012E000E9008FEF9091E800815095FD06C095EDE3 +:1012F0009A95F1F700008111F5CF8091E80085FF04 +:101300000DC040E050E063E070E0CE0101960E9425 +:10131000CA0B8091E8008E778093E8000F900F90C1 +:101320000F90DF91CF910895CF93DF9300D01F925C +:10133000CDB7DEB72091F101243021F522E02983D9 +:101340009B838A8383E08093E9008FEF9091E8008C +:10135000815095FD06C095ED9A95F1F70000811139 +:10136000F5CF8091E80085FF0DC040E050E063E0DC +:1013700070E0CE0101960E94CA0B8091E8008E7742 +:101380008093E8000F900F900F90DF91CF91089518 +:101390002091F1012430F1F422E02093E9002FEFB5 +:1013A0003091E800215035FD06C035ED3A95F1F752 +:1013B00000002111F5CF2091E80025FF0BC040E08F +:1013C00050E065E070E00E94CA0B8091E8008E77E3 +:1013D0008093E8000895CF93DF93EC019091F101A1 +:1013E000943009F046C080910C018823D9F0809197 +:1013F0000D018823B9F09093E9008FEF9091E800F8 +:10140000815095FD06C095E19A95F1F70000811194 +:10141000F5CF8091E80085FF2CC040E050E060E10E +:1014200070E017C081E08093E9008FEF9091E800B1 +:10143000815095FD06C095ED9A95F1F70000811158 +:10144000F5CF8091E80085FF14C040E050E068E0EF +:1014500070E0CE010E94CA0B8091E8008E778093E5 +:10146000E80080E1FE01AEE5B1E001900D928A95C1 +:10147000E1F7DF91CF9108958091F001811109C0CA +:101480000E945F0D0E94BC0D8091E20084608093F9 +:10149000E20008951092F001089508950C94A3229B +:1014A0000E94041C0E94A9220E9462100C945B09F5 +:1014B00042E061EC81E00E94D90C42E061EC82E004 +:1014C0000E94D90C42E061EC83E00E94D90C42E119 +:1014D00061EC84E00C94D90C8091F301833009F421 +:1014E00055C030F4813071F0823009F48EC0089517 +:1014F0008A3009F47AC08B3009F460C0893009F071 +:101500009CC020C08091F201813A09F096C0809180 +:10151000E800877F8093E8008091F6019091F701C1 +:10152000892B21F460E18EE591E003C060E080E06A +:1015300090E070E00E94150C8091E8008B7780931A +:10154000E80008958091F201813209F076C080911F +:10155000F6019091F701009719F0039709F06DC01B +:101560008091E800877F8093E8008091E80082FD09 +:1015700005C08091F1018111F8CF5FC08091F10029 +:1015800080936E018091E8008B7753C08091F201C7 +:10159000813A09F052C08091F6019091F701892BB0 +:1015A00009F04BC08091E800877F8093E80080912C +:1015B000E80080FFFCCF80910C0136C08091F201E1 +:1015C0008132D9F58091F6019091F701892BA9F527 +:1015D0008091E800877F8093E8000E940E0D809143 +:1015E000F40180930C010C94FB148091F201813280 +:1015F00021F58091E800877F8093E8000E940E0D1E +:101600008091F50180936F0108958091F201813AF4 +:10161000A1F48091E800877F8093E8008091E80042 +:1016200080FFFCCF80916F018093F1008091E800F2 +:101630008E778093E8000C940E0D089584B7877F11 +:1016400084BF88E10FB6F894809360001092600028 +:101650000FBE90E080E80FB6F894809361009093FD +:1016600061000FBE0E94B1100E945F0D0E94BC0D70 +:101670008091E20084608093E20078940E9442109E +:101680000E94B31082E091E00E945D100E949122BE +:101690008091F101853069F40E94CB1B8091EF01AC +:1016A0008823B1F30E94F61B882391F30E94B40BA8 +:1016B000EFCF0E94B910ECCF292F3327233031050B +:1016C000C9F064F42130310581F02230310509F090 +:1016D00043C08DE690E02BEE33E042C0213231056D +:1016E000F1F02232310541F137C082E190E028E586 +:1016F00034E036C099278130910541F08230910560 +:1017000041F0892B49F5E7EEF3E005C0EFECF3E09B +:1017100002C0E7EBF3E0849190E09F0121C06430C8 +:10172000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081B4 +:10173000318189E090E014C0643070F470E0FB0106 +:10174000EE0FFF1FE65EFE4F20813181FB01EA5E56 +:10175000FE4F808190E004C080E090E020E030E027 +:10176000FA0131832083089580E189BD82E189BD3A +:1017700009B400FEFDCF8091D8008F7D8093D80002 +:101780008091E00082608093E0008091E00081FD24 +:10179000FCCF0895CF92DF92EF92FF920F931F93A9 +:1017A000CF93DF93EC018B016A010E942D0D811113 +:1017B00033C0C114D10439F0F60180819181081B36 +:1017C000190BC80FD91FE12CF12C0115110519F1C6 +:1017D0008091E80085FD16C08091E8008E778093A7 +:1017E000E800C114D10449F0F60180819181E80E2E +:1017F000F91EF182E08285E00FC00E942D0D882342 +:1018000021F30AC089918093F10001501109FFEF83 +:10181000EF1AFF0ADACF80E0DF91CF911F910F918D +:10182000FF90EF90DF90CF9008952091F8013091D4 +:10183000F9012617370748F06115710539F4209131 +:10184000E8002E772093E80001C0B90140E061155F +:101850007105A9F12091F101222309F443C025303B +:1018600009F442C02091E80023FD40C02091E80027 +:1018700022FD32C02091E80020FFE9CF4091F30023 +:101880002091F20030E0342BFC01CF01611571058D +:1018900059F02830310540F481918093F100615076 +:1018A00071092F5F3F4FF1CF41E02830310509F03A +:1018B00040E02091E8002E772093E800C8CF411146 +:1018C000C9CF0AC08091F101882361F0853061F0B1 +:1018D0008091E80083FD0AC08091E80082FFF2CF8A +:1018E00080E0089582E0089583E0089581E00895FE +:1018F0002091F8013091F9012617370748F061155A +:10190000710539F42091E8002E772093E80001C09A +:10191000B901FC0120E06115710591F18091F1019F +:10192000882309F440C0853009F43FC08091E80065 +:1019300083FD3DC08091E80082FD2FC08091E800CA +:1019400080FFE9CF2091F3008091F20090E0922B8C +:101950006115710559F08830910540F42491209368 +:10196000F1003196615071090196F2CF21E008979C +:1019700009F020E08091E8008E778093E800CBCFDB +:101980002111CCCF0AC08091F101882361F085300C +:1019900061F08091E80083FD0AC08091E80082FF39 +:1019A000F2CF80E0089582E0089583E0089581E019 +:1019B0000895982F973058F59093E900981739F0CB +:1019C0007091EC002091ED005091F00003C0242FA5 +:1019D000762F50E021FF19C03091EB003E7F30930D +:1019E000EB003091ED003D7F3093ED003091EB0046 +:1019F00031603093EB007093EC002093ED00509336 +:101A0000F0002091EE0027FF07C09F5FD3CF8F70BB +:101A10008093E90081E0089580E008958091F201CB +:101A200087FF11C08091E80082FD05C08091F1011F +:101A30008111F8CF11C08091E8008B770BC08091A5 +:101A4000F101882349F08091E80080FFF8CF809170 +:101A5000E8008E778093E80008952091E4003091AB +:101A6000E50095E64091EC00842F817040FF22C094 +:101A70008091E80080FD1CC08091F101882391F0E5 +:101A8000853091F08091EB0085FD10C04091E4001D +:101A90005091E5004217530729F39A01915011F72D +:101AA00084E0089582E0089583E0089581E0089538 +:101AB00080E008954091E80042FFDECF08950E9443 +:101AC000CD0D0E94D50DE0EEF0E080818160808335 +:101AD000E8EDF0E080818F77808319BCA7EDB0E05E +:101AE0008C918E7F8C9380818F7E80831092F00109 +:101AF00008950F931F93CF93DF930E94CD0D0E9403 +:101B0000D50DC8EDD0E088818F7788838881806883 +:101B1000888388818F7D888319BC1092F10110928F +:101B2000ED011092EF011092EE0100EE10E0F801CD +:101B300080818B7F808388818160888342E060E040 +:101B400080E00E94D90CE1EEF0E080818E7F8083FE +:101B5000E2EEF0E080818160808380818860808314 +:101B6000F80180818E7F8083888180618883DF9106 +:101B7000CF911F910F910895E8EDF0E080818F7E65 +:101B80008083E7EDF0E080818160808384E082BF24 +:101B900081E08093F0010C94790DE8EDF0E0808114 +:101BA0008E7F80831092E20008951092DA001092E6 +:101BB000E10008951F920F920FB60F9211242F93F8 +:101BC0003F934F935F936F937F938F939F93AF93C5 +:101BD000BF93EF93FF938091E10082FF0BC0809150 +:101BE000E20082FF07C08091E1008B7F8093E100DB +:101BF0000E9441108091DA0080FF1FC08091D800C0 +:101C000080FF1BC08091DA008E7F8093DA00809184 +:101C1000D90080FF0DC080E189BD82E189BD09B492 +:101C200000FEFDCF81E08093F1010E943C0A05C0D7 +:101C300019BC1092F1010E944A0A8091E10080FFD4 +:101C400019C08091E20080FF15C08091E2008E7F74 +:101C50008093E2008091E20080618093E2008091B5 +:101C6000D80080628093D80019BC85E08093F10190 +:101C70000E944E0A8091E10084FF30C08091E20012 +:101C800084FF2CC080E189BD82E189BD09B400FEDA +:101C9000FDCF8091D8008F7D8093D8008091E100A6 +:101CA0008F7E8093E1008091E2008F7E8093E2003E +:101CB0008091E20081608093E2008091ED018823B1 +:101CC00011F084E007C08091E30087FD02C081E04D +:101CD00001C083E08093F1010E94500A8091E100ED +:101CE00083FF29C08091E20083FF25C08091E1003D +:101CF000877F8093E10082E08093F1011092ED01F3 +:101D00008091E1008E7F8093E1008091E2008E7FE0 +:101D10008093E2008091E20080618093E20042E0E3 +:101D200060E080E00E94D90C8091F0008860809390 +:101D3000F0000E944D0AFF91EF91BF91AF919F91EA +:101D40008F917F916F915F914F913F912F910F9064 +:101D50000FBE0F901F9018951F920F920FB60F9203 +:101D600011242F933F934F935F936F937F938F93A0 +:101D70009F93AF93BF93CF93DF93EF93FF93C09164 +:101D8000E900CF708091EC00D82FD17080FDD0E8B1 +:101D90001092E9008091F000877F8093F0007894A2 +:101DA0000E94F00E1092E9008091F000886080930C +:101DB000F000CD2BCF70C093E900FF91EF91DF9140 +:101DC000CF91BF91AF919F918F917F916F915F91D3 +:101DD0004F913F912F910F900FBE0F901F9018952C +:101DE0001F93CF93DF93CDB7DEB7AA970FB6F894C2 +:101DF000DEBF0FBECDBFE2EFF1E088E08E0F909125 +:101E0000F10091938E13FBCF0E946C0A8091E80041 +:101E100083FF1FC18091F2019091F301492F50E09F +:101E20004A30510508F015C1FA01EA5AFF4F0C94E7 +:101E30002B24803881F0823809F00BC18091F601A3 +:101E40008F708093E9008091EB0085FB882780F9F3 +:101E50001092E90006C08091EE019091EF0191117E +:101E600082609091E800977F9093E8008093F10062 +:101E70001092F100C8C0282F2D7F09F0EAC08823F6 +:101E800019F0823061F0E5C08091F401813009F0F1 +:101E9000E0C0933009F080E08093EF012BC0809187 +:101EA000F401811127C08091F6018F7009F4D1C02F +:101EB0008093E9002091EB0020FF1CC0933021F4B7 +:101EC0008091EB00806214C09091EB009061909340 +:101ED000EB0021E030E0A90102C0440F551F8A95B4 +:101EE000E2F74093EA001092EA008091EB008860EC +:101EF0008093EB001092E9008091E800877F86C014 +:101F00008111A7C01091F4011F778091E3008078C0 +:101F1000812B8093E3008091E800877F8093E80025 +:101F20000E940E0D8091E80080FFFCCF8091E300BD +:101F300080688093E300111102C082E001C083E059 +:101F40008093F10186C08058823008F082C0809171 +:101F5000F4019091F5018C3D53E0950779F583E00C +:101F60008A838AE289834FB7F894DE01139620E0D2 +:101F70003EE051E2E32FF0E050935700E49120FF60 +:101F800003C0E295EF703F5FEF708E2F90E0EA3074 +:101F900010F0C79601C0C0968D939D932F5F24319A +:101FA00049F74FBF8091E800877F8093E8006AE29D +:101FB00070E0CE0101960E94150C14C0AE014F5F77 +:101FC0005F4F6091F6010E945C0BBC01009709F421 +:101FD00040C09091E800977F9093E80089819A81B2 +:101FE0000E94780C8091E8008B778093E80031C0E4 +:101FF000803879F58091E800877F8093E8008091B0 +:10200000ED018093F1008091E8008E778093E800E5 +:102010000E940E0D1EC081111CC09091F4019230DF +:10202000C0F48091E800877F8093E8009093ED01F1 +:102030000E940E0D8091ED01811106C08091E30098 +:1020400087FD02C081E001C084E08093F1010E941D +:10205000580A8091E80083FF0AC08091E800877FDA +:102060008093E8008091EB0080628093EB00AA9659 +:102070000FB6F894DEBF0FBECDBFDF91CF911F9199 +:1020800008950895CF938091F1018823A1F0C09124 +:10209000E900CF709091EC00892F817090FD80E86D +:1020A000C82B1092E9008091E80083FD0E94F00E99 +:1020B000CF70C093E900CF910895909375018093FC +:1020C00074010895E0917401F0917501309721F049 +:1020D0000190F081E02D099480E00895E091740171 +:1020E000F0917501309721F00280F381E02D099481 +:1020F0000895E0917401F0917501309721F004800A +:10210000F581E02D099408952091720130917301B9 +:102110008217930771F09093730180937201E0919D +:102120007401F0917501309721F00680F781E02D60 +:1021300009940895209170013091710182179307DD +:1021400071F09093710180937001E0917401F091AE +:102150007501309721F00084F185E02D09940895F0 +:1021600008950C94B0100E940A1C0E948C030C94D9 +:10217000CC1C9F92AF92BF92CF92DF92EF92FF92D0 +:102180000F931F93CF93DF9300D000D000D0CDB733 +:10219000DEB70E94A4030DE010E0AA24A394B12CA2 +:1021A000902E802F0E949204980129583E4F690179 +:1021B000F901F080F826A1F40150110988F78FEF9A +:1021C00089838A831B820E94131C8160782F9D83E0 +:1021D0008C8349815A816B818D810E9450112FC05F +:1021E0009091DA0191FF04C08E830E9498048E8141 +:1021F00025E030E0A501022E01C0440F0A94EAF761 +:10220000E42E4F21C1F029839A828E2191E009F4B6 +:1022100090E09B830E94131C8160782F9D838C83A8 +:1022200049815A816B818D810E945011F601808114 +:10223000E826E08204C021503109E0F6BDCF0E94BB +:10224000B31F109176010E9462101817B9F00E9416 +:1022500062108093760126960FB6F894DEBF0FBE0B +:10226000CDBFDF91CF911F910F91FF90EF90DF9045 +:10227000CF90BF90AF909F900C945B0926960FB6BD +:10228000F894DEBF0FBECDBFDF91CF911F910F91AC +:10229000FF90EF90DF90CF90BF90AF909F90089508 +:1022A000CF93DF93CDB7DEB72B970FB6F894DEBF91 +:1022B0000FBECDBF4F83588769877A878B87DE0132 +:1022C000119686E0FD0111928A95E9F785E0FE01FD +:1022D000379601900D928A95E1F749815A816B8179 +:1022E0007C818D819E810E9499172B960FB6F89460 +:1022F000DEBF0FBECDBFDF91CF910895CF9388236E +:1023000009F4C2C0C82F823859F40E94621081FDBE +:10231000BBC089E30E94731A0E94401B89E30CC072 +:10232000833879F40E94621080FDAEC083E50E947C +:10233000731A0E94401B83E50E94B51ACF910C943A +:10234000401B843859F40E94621082FD9DC087E4CE +:102350000E94731A0E94401B87E4EECF8CEF8C0F13 +:10236000813A48F48C2F0E94F62181118DC08C2F68 +:102370000E94731AE3CF80E28C0F883048F4C77054 +:1023800081E001C0880FCA95EAF70E94F91AD6CFFA +:102390008BE58C0F833078F4C53A29F0C63A31F0DA +:1023A00083E890E005C081E890E002C082E890E018 +:1023B000CF910C94841088E58C0F833108F064C0B1 +:1023C000C83A39F1C93A41F1CA3A49F1CB3A51F127 +:1023D000CC3A59F1CD3A61F1C03B69F1CE3A71F195 +:1023E000CF3A79F1C13B81F1C23B89F1C33B91F115 +:1023F000C43B99F1C53BA1F1C63BA9F1C73BB1F183 +:10240000C83BB9F1C93BC1F1CA3BC9F180E090E0DA +:1024100038C082EE90E035C089EE90E032C08AEE9E +:1024200090E02FC085EB90E02CC086EB90E029C0B7 +:1024300087EB90E026C08CEC90E023C08DEC90E020 +:1024400020C083E891E01DC08AE891E01AC082E9CB +:1024500091E017C084E991E014C081E292E011C0DC +:1024600083E292E00EC084E292E00BC085E292E04B +:1024700008C086E292E005C087E292E002C08AE2EC +:1024800092E0CF910C949A10CF910895882309F48B +:102490004BC0823859F40E94621081FF45C089E325 +:1024A0000E94731A0E94401B89E30CC0833871F4A8 +:1024B0000E94621080FF38C083E50E94731A0E9458 +:1024C000401B83E50E94B51A0C94401B843859F4D4 +:1024D0000E94621082FF28C087E40E94731A0E9443 +:1024E000401B87E4EFCF9CEF980F913A58F390E2AE +:1024F000980F983050F4877091E001C0990F8A9539 +:10250000EAF7892F0E94FF1ADFCF9BE5980F9330DF +:1025100020F480E090E00C948410885A833120F4F9 +:1025200080E090E00C949A100895882321F00E9496 +:10253000F91A0C94401B0895882321F00E94FF1A79 +:102540000C94401B08957F928F929F92AF92BF92FE +:10255000CF92DF92EF92FF920F931F93CF93DF936F +:102560001F92CDB7DEB77C01C62E772EFC01058108 +:1025700002950F70128111110E94161B0E946C1A95 +:10258000882379F0112369F080E28C0D883048F0BF +:1025900082E00E94551A0E946C1A91E0D82ED9262A +:1025A00001C0D12CE72DE295EF70F0E0E05AFF4F2B +:1025B0000C942B24872D807F072D0F70882311F01A +:1025C0000295007F112389F0002309F490C180E275 +:1025D0008C0D883020F4802F0E94F91A03C0802FC0 +:1025E0000E94091B0E94401B82C18C2D0E94461232 +:1025F000002309F495C180E28C0D883020F4802FEF +:102600000E94FF1A03C0802F0E940F1B0E94401BD4 +:1026100087C1972D907F872D8F70903211F0829512 +:10262000807FCC2021F0F1E0CF16B1F01EC0112345 +:1026300049F0002309F414C1013009F011C10E94CE +:10264000291B6EC1002319F0013009F469C1898387 +:102650000E942C1B89810AC1112321F0023008F04D +:102660005FC1FEC001115CC101C1112321F0002333 +:1026700009F4F6C03CC1002309F4F8C03EC1872D1F +:1026800086958695837090E0009719F0019761F028 +:1026900047C1112321F08C2D972D937002C080E04B +:1026A00090E00E9484103CC1112321F08C2D972DC5 +:1026B000937002C080E090E00E949A1031C18C2D8E +:1026C000112319F00E94BB1E02C00E94231F0E940A +:1026D000A81F26C1872D837009F052C0111120C197 +:1026E0008C2D829586958770880F880F9C2D9F7002 +:1026F000892E912CA12CB12C082E04C0880C991C79 +:10270000AA1CBB1C0A94D2F7C4FE14C00FE010E050 +:1027100020E030E0B901A80104C0440F551F661F36 +:10272000771F8A95D2F7CB01BA0160957095809595 +:10273000909503C060E070E0CB01272D269526958B +:10274000237030E02230310569F02330310589F003 +:10275000682979298A299B292130310571F00E9445 +:10276000E118DEC0682979298A299B290E94FD1871 +:10277000D7C00E94E118C501B4010E94C518D0C09D +:10278000112319F0872D817001C08695882309F4E3 +:10279000C7C08C2D829586958770880F880F9C2DD9 +:1027A0009F70892E912CA12CB12C082E04C0880C6E +:1027B000991CAA1CBB1C0A94D2F7C4FE14C00FE0DB +:1027C00010E020E030E0B901A80104C0440F551F1B +:1027D000661F771F8A95D2F7CB01BA016095709575 +:1027E0008095909503C060E070E0CB01272D269581 +:1027F00026952370422F50E04230510569F0433056 +:10280000510589F0682979298A299B294130510588 +:1028100071F00E94BB1984C0682979298A299B29F3 +:102820000E94D7197DC00E94BB19C501B4010E9446 +:102830009F1976C08C2D90E0FC01E05EF109E53136 +:10284000F10508F050C0E059FF4F0C942B240C2DDB +:102850000F70872D8F71112331F00E943819802F4E +:102860000E9495125DC00E945919802F0E949C12EF +:1028700057C0112339F0011153C0872D8F710E9469 +:102880007E194EC0023008F04BC0F7CF112339F04B +:10289000872D8F710E94381943C01123C9F3872DEA +:1028A0008F710E9459193CC0112329F0872D8F7117 +:1028B0000E94231935C00E94191932C0112351F00A +:1028C000172D1F71812F0E94381963E0812F0E94FC +:1028D0004C1A26C081E00E94551A023008F182E0AD +:1028E0000E94551A1DC0112331F0002389F28C2D4E +:1028F0000E947E1115C0002391F28C2D0E94461279 +:102900000FC0472D4F706C2DC7010E946E050E94AD +:102910003D1806C0472D4F706C2DC7010E946A06F6 +:10292000DD20F9F00E94481A80FD1BC0F7011282D9 +:102930000E94421A0E943819C7010E94C0140E94C6 +:10294000421A0F90DF91CF911F910F91FF90EF905E +:10295000DF90CF90BF90AF909F908F907F900C941E +:1029600059190F90DF91CF911F910F91FF90EF9028 +:10297000DF90CF90BF90AF909F908F907F90089501 +:102980000F931F93CF93DF93EC01888199812B8163 +:102990003C81232BB9F09F3F11F48F3F99F0CE017A +:1029A0000E94C205882371F0688179818A810E9422 +:1029B0003E1A8C010E94F3190E94BA18B801CE0188 +:1029C0000E94A312DF91CF911F910F9108950E9451 +:1029D000161B0E94261B0E94EB1A0E94401B0E949D +:1029E00059200E94A81F80E090E00E94841080E09F +:1029F00090E00C949A100E94061B0C94E7140E941D +:102A0000331A292F22952F7030E02C3031054CF4E9 +:102A10002A3031056CF42250310922303105A8F4F6 +:102A200007C02C30310569F02F30310551F00DC051 +:102A3000803F69F018F4803E40F409C0843F29F4D7 +:102A400006C093FB882780F9089580E0089581E00F +:102A50000895CF93DF9300D000D01F92CDB7DEB79B +:102A60000F900F900F900F900F90DF91CF910895DE +:102A7000CF93DF9300D000D000D0CDB7DEB726963D +:102A80000FB6F894DEBF0FBECDBFDF91CF91089592 +:102A90001F93CF93DF93C091850116E0809186014B +:102AA000C81799F0D0E01C9FF0011D9FF00D112474 +:102AB000E957FE4F40815181628173818481958104 +:102AC0000E9438152196C770E9CFDF91CF911F91F1 +:102AD00008954091B7015091B8016091B90170918A +:102AE000BA018091BB019091BC010C943815809182 +:102AF000BC0182958F7009F054C08091B901882380 +:102B000009F44FC080918501A09186016091B701C1 +:102B10007091B8014091BA015091BB01B6E08A179B +:102B200009F43FC090E041155105C1F17F3F11F418 +:102B30006F3FA1F1B89FF001B99FF00D1124E95743 +:102B4000FE4F218172132AC02081621327C0228187 +:102B5000211124C0238134812417350710F421501A +:102B60003109241B350B283C3105C0F42091BC01F0 +:102B70002F7020612093BC0126E0289FF001299F3F +:102B8000F00D1124E457FE4F80818F7080618083A7 +:102B900087EB91E00E94C0140C9448150196877051 +:102BA000BECF0895CF92DF92EF92FF920F931F93C3 +:102BB000CF93DF93CDB7DEB762970FB6F894DEBF41 +:102BC0000FBECDBF8C0185E0F801DE011D9601909E +:102BD0000D928A95E1F7D8014C9111965C9111976D +:102BE00012966C9112971396CD90DC9014973091B9 +:102BF000B7017091B8018091BA019091BB01009723 +:102C000009F46BC17F3F19F43F3F09F466C1E090BE +:102C1000B901EE2009F4C0C02091BC01C816D90644 +:102C200028F0F601E81BF90BCF0104C080959095C0 +:102C30008C0D9D1DFF24F394883C910578F0F12CB8 +:102C4000207F09F0C6C07C2DD98AC88A89890E9454 +:102C5000291587EB91E00E94C014B1C0822F807FBC +:102C600009F046C0751314C0341312C0611110C0AE +:102C70002F7020612093BC010E94691587EB91E0C1 +:102C80000E94C0148091BC01D80115968C932EC06F +:102C9000CD2819F15F3F11F44F3FF9F0F62E611185 +:102CA0001CC0809185012091860136E0821709F4CD +:102CB0005AC090E0389FF001399FF00D1124E95778 +:102CC000FE4F7181571306C07081471303C0728194 +:102CD000711103C001968770E9CFF62E662309F4BF +:102CE00018C18091BC0181608093BC01F12C11C19D +:102CF000751308C0341306C0611104C08091BC0173 +:102D0000D801C3C04D875E878D859E856A8B0E94E2 +:102D1000FF146A898823E1F16623D1F12091BC0177 +:102D2000822F82958F7090E0029774F08091B701A6 +:102D30009091B80198878F831986DB86CA862C8785 +:102D4000CE0107960E94C01486E0F801A7EBB1E01F +:102D500001900D928A95E1F70E9477150E946915FE +:102D6000FF24F394D6C04D875E878D859E850E9493 +:102D7000331A292F22952F7030E0223031050CF0C4 +:102D8000BCC09F7009F0B6C0805E883008F4C1C036 +:102D9000C8010E94C014E4CFC816D90608F453C075 +:102DA000F601E81BF90BCF01883C910508F450C0EF +:102DB000F12C7C2DD98AC88A89890E942915E7EBD4 +:102DC000F1E086E0DF011D928A95E9F70E9469151E +:102DD000A0C0751314C0341312C0611110C08091CB +:102DE000BC01F8018583C8010E94C01486E0E7EBAE +:102DF000F1E0DF011D928A95E9F7FE2C8AC04D872C +:102E00005E878D859E856A8B0E94FF146A89882360 +:102E100009F4BECF662309F4BBCF2091BC01822FF9 +:102E200082958F7090E002970CF48ECF8091B7015D +:102E30009091B8019A8389831B82DD82CC822E8394 +:102E4000CE0101967FCF809590958C0D9D1DACCFC6 +:102E5000F62E662309F49CCF75132EC034132CC0B4 +:102E60002091BC0120FD1FC0822F82958F70D9F068 +:102E7000D80115962C9315978F3049F08F5F982FB6 +:102E80009295907F822F8F70892B15968C93C80115 +:102E90000E94C01486E0F801A7EBB1E001900D920A +:102EA0008A95E1F793CF86E0F801A7EBB1E00190B6 +:102EB0000D928A95E1F72DC04D875E878D859E85A1 +:102EC0000E94FF14811140CF8091BC0181608093EA +:102ED000BC01C8010E94C0141CC0662309F458CF6D +:102EE0004D875E878D859E850E94FF14882309F497 +:102EF0004FCF2ACF811148CF0CC0243031050CF0C0 +:102F000047CF9F7009F440CFF8019581907F09F079 +:102F10003BCF8F2D62960FB6F894DEBF0FBECDBFAC +:102F2000DF91CF911F910F91FF90EF90DF90CF90A5 +:102F300008951F93CF93DF93CDB7DEB72C970FB6CD +:102F4000F894DEBF0FBECDBF4F83588769877A875D +:102F50008B879C87CE0107960E94D215882369F043 +:102F60008F8198852A853B85232BF1F19F3F09F0BE +:102F700063C08F3F09F060C037C086E0FE0137961E +:102F8000DE01119601900D928A95E1F76F817885A7 +:102F9000EA85FB85309741F17F3F11F46F3F21F1C6 +:102FA0002091860130E0C9010196877099274091F0 +:102FB000850150E08417950709F447C069837A8337 +:102FC000FD83EC8396E0929FD001939FB00D112476 +:102FD000A957BE4FFE01319601900D929A95E1F7E7 +:102FE000809386010E94481516E08091850190919A +:102FF00086018917C1F1189FC001112489579E4F7E +:103000000E94D215882379F1E09185011E9FF0017D +:103010001124E957FE4F408151816281738184817F +:1030200095810E9438158091850190E00196877006 +:10303000992780938501D9CF4F81588569857A85F5 +:103040008B859C850E943815CFCF0E94FB1410926F +:10305000860110928501E7EBF1E086E0DF011D9229 +:103060008A95E9F7C1CF2C960FB6F894DEBF0FBE54 +:10307000CDBFDF91CF911F910895EF92FF920F93F3 +:103080001F93CF93DF938C01009709F46CC0F12C50 +:10309000EE24E394E8012196F8018491843740F40A +:1030A000843008F051C0813081F0823019F15BC06A +:1030B000853709F444C0A8F19CE7980F903708F0D1 +:1030C00052C08F770E94461241C00E5F1F4FFE0113 +:1030D000C49180E28C0F883048F4C7708E2D01C0F7 +:1030E000880FCA95EAF70E94191B14C08C2F0E9402 +:1030F0007E112DC00E5F1F4FFE01C49180E28C0F28 +:10310000883058F4C7708E2D01C0880FCA95EAF731 +:103110000E941F1B0E94401B1AC08C2F0E94461247 +:1031200016C00E5F1F4FFE01C491CC2381F08FE9C2 +:103130009FE00197F1F700C00000C150F6CF0E5F8D +:103140001F4FFE01F49003C00E947E118E018F2D4F +:10315000882309F49FCFEFE9FFE03197F1F700C032 +:1031600000008150F5CFDF91CF911F910F91FF901B +:10317000EF90089508956093C1017093C201809308 +:10318000C3019093C4010C94E7140F931F93009113 +:10319000C1011091C2012091C3013091C401DC0131 +:1031A000CB01802B912BA22BB32B8093C101909349 +:1031B000C201A093C301B093C4011F910F910C945D +:1031C000E7140F931F930091C1011091C201209148 +:1031D000C3013091C401DC01CB0180239123A223E0 +:1031E000B3238093C1019093C201A093C301B09314 +:1031F000C4011F910F910C94E7140F931F9300913A +:10320000C1011091C2012091C3013091C401DC01C0 +:10321000CB0180279127A227B3278093C1019093E8 +:10322000C201A093C301B093C4011F910F910C94EC +:10323000E7141092BD011092BE011092BF011092CE +:10324000C0010C94E71441E050E060E070E004C07D +:10325000440F551F661F771F8A95D2F74093BD0113 +:103260005093BE016093BF017093C0010C94E714AA +:1032700041E050E060E070E004C0440F551F661F5D +:10328000771F8A95D2F78091BD019091BE01A091E0 +:10329000BF01B091C001482B592B6A2B7B2B409367 +:1032A000BD015093BE016093BF017093C0010C94A7 +:1032B000E71441E050E060E070E004C0440F551FA7 +:1032C000661F771F8A95D2F7409550956095709547 +:1032D0008091BD019091BE01A091BF01B091C0014C +:1032E000482359236A237B234093BD015093BE0199 +:1032F0006093BF017093C0010C94E71441E050E06B +:1033000060E070E004C0440F551F661F771F8A9568 +:10331000D2F78091BD019091BE01A091BF01B09103 +:10332000C001482759276A277B274093BD01509346 +:10333000BE016093BF017093C0010C94E7140F931A +:103340001F930091BD011091BE012091BF013091EA +:10335000C001DC01CB01802B912BA22BB32B8093DE +:10336000BD019093BE01A093BF01B093C0011F9116 +:103370000F910C94E7140F931F930091BD011091CE +:10338000BE012091BF013091C001DC01CB0180233F +:103390009123A223B3238093BD019093BE01A093F8 +:1033A000BF01B093C0011F910F910C94E7140F93CC +:1033B0001F930091BD011091BE012091BF0130917A +:1033C000C001DC01CB0180279127A227B32780937E +:1033D000BD019093BE01A093BF01B093C0011F91A6 +:1033E0000F910C94E7140895CF92DF92EF92FF9221 +:1033F0000F931F93CF93DF938C01C090C101D090A6 +:10340000C201E090C301F090C4018091BD01909190 +:10341000BE01A091BF01B091C001C82AD92AEA2AF1 +:10342000FB2ACFE1D0E0D701C6010C2E04C0B6952F +:10343000A795979587950A94D2F780FF06C0B801A3 +:103440008C2F0E94C008019721F4219760F780E03B +:1034500001C08C2FDF91CF911F910F91FF90EF90C2 +:10346000DF90CF900895CF93DF93EC010E94F41981 +:10347000BE010E94C008DF91CF910895CB010E9448 +:10348000331A08958091C501859585958595089590 +:103490008091C5018770089598E0899F900111245B +:1034A000262B2093C5010C9438192091C5018095D5 +:1034B00082238093C501982F977069F430E0482FDC +:1034C000552747FD50952417350729F08595859593 +:1034D00085950C94591908959091C501977081E0D4 +:1034E00009F480E0089590910C01992321F09091C6 +:1034F0000D01911109C020910E0130910F01F901C8 +:1035000032969FEF40E01FC0982F9695969596951E +:103510009F3050F5E0910E01F0910F01E90FF11D80 +:10352000877021E030E0A90102C0440F551F8A9541 +:10353000E2F7CA019181892B818308959F3F39F079 +:103540004F5F4E3041F051915813F8CF0DC05111DB +:10355000F7CF942FF5CF9F3F39F0F901E90FF11D17 +:1035600097FDFA9582830895089590910C0199230F +:1035700021F090910D01911109C020910E0130911F +:103580000F01F9013296205F3F4F1FC0982F96958B +:10359000969596959F30F0F4E0910E01F0910F0111 +:1035A000E90FF11D877021E030E0A90102C0440F4E +:1035B000551F8A95E2F7CA018095918189238183FD +:1035C00008953196E217F30729F090819813F9CF07 +:1035D0001082F7CF089581E090E0E0910E01F09124 +:1035E0000F01E80FF91F1082019680319105A9F7AC +:1035F00008959091D901892B8093D90108958095E0 +:103600009091D90189238093D90108951092D9010D +:1036100008959091D801892B8093D80108958095C1 +:103620009091D80189238093D80108951092D801F0 +:1036300008959091D701892B8093D70108958095A3 +:103640009091D70189238093D70108951092D701D3 +:1036500008958093C60108951092C601089580913F +:103660000E0190910F01FC0131969C01205F3F4FAC +:1036700080E0919191118F5FE217F307D1F70895E0 +:10368000E0910E01F0910F018091D9018083E091CA +:103690000E01F0910F0190818091D801892B8083D8 +:1036A000E0910E01F0910F0190818091D701892B5B +:1036B00080838091C601882361F0E0910E01F09132 +:1036C0000F019081892B80830E942F1B8111109202 +:1036D000C60180910E0190910F010C946E1020E0B4 +:1036E000009739F0AC0141505109842395232F5F95 +:1036F000F7CF822F0895CF92DF92EF92FF926C0165 +:10370000EE24FF24C114D104E104F10421F0C70127 +:10371000B60120E101C020E0C72ED82EE92EFF24FB +:10372000C114D104E104F10419F0285FC701B60106 +:103730006B017C0154E0F694E794D794C7945A95B2 +:10374000D1F7C114D104E104F10419F02C5FC701D1 +:10375000B6016B017C0142E0F694E794D794C794DC +:103760004A95D1F7C114D104E104F10419F02E5F98 +:10377000C701B601DC01CB01B695A7959795879552 +:10378000892B8A2B8B2B09F02F5F822FFF90EF90D4 +:10379000DF90CF9008958091F101843021F1109253 +:1037A000DB0120E488E190E00FB6F894A8958093BF +:1037B00060000FBE2093600080E00E945B0983B729 +:1037C000817F846083BF83B7816083BF789488954D +:1037D00083B78E7F83BF88E10FB6F8948093600033 +:1037E000109260000FBE0895089508950E94F41B82 +:1037F0000E94A4030E94F51B0E94990491E081118C +:1038000001C090E0892F08950E94FB140E9462106D +:103810000C945B0982E084BD93E095BD9AEF97BD5F +:1038200080936E0008952FB7F8948091DC019091F9 +:10383000DD01A091DE01B091DF012FBF0895CF928D +:10384000DF92EF92FF920F931F932FB7F89440915E +:10385000DC015091DD016091DE017091DF012FBF2D +:103860006A017B01EE24FF248C0120E030E0C016C9 +:10387000D106E206F30610F4415051099A01281BC3 +:10388000390BC9011F910F91FF90EF90DF90CF90FE +:1038900008951F920F920FB60F9211248F939F934A +:1038A000AF93BF938091DC019091DD01A091DE0187 +:1038B000B091DF010196A11DB11D8093DC019093B1 +:1038C000DD01A093DE01B093DF01BF91AF919F9125 +:1038D0008F910F900FBE0F901F9018950E945F0D53 +:1038E000F8942FEF87EA91E6215080409040E1F76D +:1038F00000C0000087E090EBDC018093FB01909317 +:10390000FC01A093FD01B093FE019CE088E10FB69D +:10391000F894A895809360000FBE90936000FFCF4D +:10392000EF92FF920F931F93CF93DF93D82FCDE0A9 +:103930008C2F0E94920405E010E0E82EF12CC701C4 +:10394000002E02C0959587950A94E2F780FF09C082 +:10395000602F7C2F80E00E946B06D81302C081E0AC +:1039600006C00150110958F7C15010F780E0DF91EF +:10397000CF911F910F91FF90EF900895CF93C82F93 +:103980008CE20E94901C882321F08C2FCF910C9404 +:10399000901C80E0CF910895CF930E94131E811157 +:1039A00002C00E94F91DC5E6C15049F00E94A4035F +:1039B0008FE39CE90197F1F700C00000F5CF89E2A1 +:1039C0000E94BE1C811113C18AE20E94BE1C81119B +:1039D0000E94F91D85E00E94BE1C81110E946E1C90 +:1039E0000E941E1E8093DA0187E00E94BE1C88237D +:1039F000A9F18BE10E94BE1C882351F08091DA016D +:103A000081FB222720F991E0922790FB81F90EC0DB +:103A10008EE00E94BE1C882361F08091DA0182FB57 +:103A2000222720F991E0922790FB82F98093DA0116 +:103A300015C080E10E94BE1C9091DA01882341F0FC +:103A400093FB222720F981E0822780FB93F904C0B1 +:103A5000892F809580FB90F99093DA018091DA01AB +:103A60000E94221E0E94301E8093FA0180EE0E9466 +:103A7000BE1C882341F08091FA01982F909590FB0D +:103A800080F98093FA0189E30E94BE1C882359F0D3 +:103A90008091FA0181FB222720F991E0922790FB87 +:103AA00081F98093FA0182EE0E94BE1C882359F0AE +:103AB0008091FA0182FB222720F991E0922790FB66 +:103AC00082F98093FA0186EE0E94BE1C882359F089 +:103AD0008091FA0183FB222720F991E0922790FB45 +:103AE00083F98093FA0183EE0E94BE1C882359F06B +:103AF0008091FA0184FB222720F991E0922790FB24 +:103B000084F98093FA0185E30E94BE1C882359F052 +:103B10008091FA0185FB222720F991E0922790FB02 +:103B200085F98093FA0181E30E94BE1C882359F035 +:103B30008091FA0186FB222720F991E0922790FBE1 +:103B400086F98093FA0181E10E94BE1C882359F016 +:103B50008091FA0187FB222720F991E0922790FBC0 +:103B600087F98093FA018091FA010E94341E8091B6 +:103B7000FA0187FB882780F980930D0187E20E9474 +:103B8000BE1CC82F8EE10E94BE1C8111C2608FE155 +:103B90000E94BE1C8111C46080E20E94BE1C811183 +:103BA000C86081E20E94BE1C8111C06182E20E9455 +:103BB000BE1C8111C06283E20E94BE1C8111C064E0 +:103BC00084E20E94BE1C882311F0C06802C0CC238E +:103BD00029F08C2F0E942B1E6C2F03C00E94271EE1 +:103BE000682F70E080E090E0CF910C94BB18CF91EB +:103BF00008956DEE7EEF80E090E00E94652460E025 +:103C000082E090E00E94532460E083E090E00E9414 +:103C1000532460E084E090E00E94532460E085E05B +:103C200090E00C94532480E090E00E944D2421E029 +:103C30008D3E9E4F09F020E0822F089582E090E0B3 +:103C40000C944524682F82E090E00C94532483E088 +:103C500090E00C944524682F83E090E00C9453246A +:103C600084E090E00C944524682F84E090E00C946C +:103C700053248091E20180FF0BC06091130185E025 +:103C8000689FB001112475956795759567952BC050 +:103C900081FF09C06091130185E0689FB001112484 +:103CA0007595679520C082FF07C06091130185E07C +:103CB000689FB001112417C09091E3019923D1F0BE +:103CC00060911201961788F72091130185E0289FD3 +:103CD00090011124929FA001939F500D112470E038 +:103CE000CA010E9417246038710540F461157105FE +:103CF00039F002C065E070E0862F08958FE70895DF +:103D000081E008958091E20180FF08C06091110177 +:103D100070E0759567957595679521C081FF06C020 +:103D20006091110170E07595679519C082FF04C01C +:103D30006091110170E010C09091E3019923C1F0EE +:103D4000609110019617A0F780911101899FC00121 +:103D5000112470E00E9417246038710528F4611561 +:103D6000710521F0862F08958FE7089581E0089569 +:103D700061E070E0F4CF803F21F40E94391E81950C +:103D800004C0813F29F40E94391E8093E601089502 +:103D9000823F21F40E94391E819504C0833F29F49B +:103DA0000E94391E8093E5010895893F19F40E940D +:103DB000821E05C08A3F31F40E94821E8195809345 +:103DC000E70108958B3F21F40E94821E819504C073 +:103DD0008C3F29F40E94821E8093E8010895843F5D +:103DE00021F48091E401816017C0853F21F4809126 +:103DF000E401826011C0863F21F48091E401846077 +:103E00000BC0873F21F48091E401886005C0883FA2 +:103E100031F48091E40180618093E40108958D3F45 +:103E200021F48091E20181600BC08E3F21F48091EA +:103E3000E201826005C08F3F29F48091E201846035 +:103E40008093E2010895803F39F48091E60187FF75 +:103E50006CC01092E60169C0813F29F48091E601AF +:103E60001816BCF362C09091E501823F29F497FFD8 +:103E70005CC01092E50159C0833F19F41916CCF3C8 +:103E800054C0893F41F48091E70118160CF04DC0F1 +:103E90001092E7014AC08A3F29F48091E70187FF29 +:103EA00044C0F6CF8B3F39F48091E80187FF3DC0D5 +:103EB0001092E8013AC08C3F29F48091E80118166D +:103EC000BCF333C0843F21F48091E4018E7F17C09E +:103ED000853F21F48091E4018D7F11C0863F21F45C +:103EE0008091E4018B7F0BC0873F21F48091E40136 +:103EF000877F05C0883F31F48091E4018F7E8093F5 +:103F0000E40113C08D3F21F48091E2018E7F0BC04C +:103F10008E3F21F48091E2018D7F05C08F3F29F40F +:103F20008091E2018B7F8093E2018091E501811114 +:103F30000EC08091E60181110AC08091E7018111D4 +:103F400006C08091E801811102C01092E30108953A +:103F500084EE91E00E9479100E94131C9093E1017D +:103F60008093E00108951F93CF93DF938091E00148 +:103F70009091E1010E941F1CAC019091E3019923F3 +:103F800021F02091140130E006C0209115018AE053 +:103F9000289F900111244217530708F486C080918E +:103FA000E501C091E601D091E7011091E80181118E +:103FB00007C0C11176C0D11174C0111172C075C093 +:103FC0009F3F19F09F5F9093E301181624F40E941D +:103FD000391E8093E5018091E50187FF05C00E94AD +:103FE000391E81958093E5011C1624F40E94391E28 +:103FF0008093E6018091E60187FF05C00E94391E8B +:1040000081958093E6016091E501662339F1C091C5 +:10401000E601CC2319F1772767FD7095872F972F3D +:104020000E94282323E333E343E35FE30E948C23CE +:104030000E94F5226093E5016C2F772767FD70954C +:10404000872F972F0E94282323E333E343E35FE383 +:104050000E948C230E94F5226093E6011D1624F431 +:104060000E94821E8093E7018091E70187FF05C0CF +:104070000E94821E81958093E701111624F40E940C +:10408000821E8093E8018091E80187FF05C00E94AD +:10409000821E81958093E801DF91CF911F910C944E +:1040A000A81F9F3F09F08ECF96CFDF91CF911F9130 +:1040B0000895E4EEF1E085E0DF011D928A95E9F7CD +:1040C0001092E3011092E2010895833081F128F407 +:1040D000813059F08230D1F00895853009F449C01B +:1040E000B8F1863009F456C0089580911501262F45 +:1040F00030E0280F311D2F3F310524F4680F609305 +:10410000150108958FEF8093150108958091140192 +:10411000262F30E0280F311D2F3F310524F4680F82 +:104120006093140108958FEF809314010895809196 +:104130001301262F30E0280F311D2F3F310524F4C5 +:10414000680F6093130108958FEF80931301089512 +:1041500080911201262F30E0280F311D2F3F3105AD +:1041600024F4680F6093120108958FEF8093120179 +:10417000089580911101262F30E0280F311D2F3F27 +:10418000310524F4680F6093110108958FEF809337 +:104190001101089580911001262F30E0280F311D64 +:1041A0002F3F310524F4680F6093100108958FEFBD +:1041B000809310010895833011F128F4813049F083 +:1041C000823091F00895853081F120F18630C1F17F +:1041D000089580911501681720F4861B80931501BE +:1041E000089510921501089580911401681720F424 +:1041F000861B8093140108951092140108958091F4 +:104200001301681720F4861B809313010895109200 +:104210001301089580911201681720F4861B809382 +:1042200012010895109212010895809111016817EA +:1042300020F4861B809311010895109211010895B6 +:1042400080911001681720F4861B80931001089557 +:104250001092100108950F931F938D3109F46BC0D4 +:1042600008F03FC08E3009F47FC0C0F4873009F4F5 +:1042700069C068F4863009F0B1C08091DA01817FAD +:104280008E7F8093DA0181E08093EA01A8C08830B4 +:1042900009F4A2C08B3009F49FC0A0C0863109F494 +:1042A0009BC078F4803109F472C0813109F096C066 +:1042B0000E94FB1490910D0181E0892780930D01EC +:1042C0008BC0893109F488C08B3109F087C0809197 +:1042D000DA0181FB222720F991E0922790FB81F9F6 +:1042E0004CC0853309F470C048F4873209F46CC0BF +:1042F00008F459C0893209F467C070C0833438F4B7 +:104300008A3308F04EC0883309F466C067C083342E +:1043100009F45AC0883409F061C00E94FB140FEF01 +:1043200013ED20E3015010402040E1F700C00000F1 +:104330000E946E1C51C00E94AF220E9462100E9417 +:104340005B094AC09091DA01892F8095817080FBCA +:1043500090F929F0966098609093DA0140C0997FB7 +:10436000977F9093DA0138C08091DA0182FB22278F +:1043700020F991E0922790FB82F98093DA0199234A +:1043800059F18091DA0181608093DA0125C0809132 +:10439000DA0183FB222720F991E0922790FB83F931 +:1043A000ECCF895301C08D5141E050E060E070E0F6 +:1043B0008A019B0104C0000F111F221F331F8A9521 +:1043C000D2F7C901B80104C061E070E080E090E07C +:1043D0000E94BB180E94FB1481E001C080E01F9185 +:1043E0000F91089580E0089580E00895CF93C82F3D +:1043F0008091EA01813079F018F08230E9F187C0CC +:10440000E0910E01F0910F018081813169F08232DB +:1044100009F07FC009C0E0910E01F0910F01808189 +:10442000813111F0823261F48C2F0E94F2218111CE +:1044300004C08C2F0E942B211DC081E090E01AC087 +:104440008C2F0E94F421811114C0C43179F048F4FA +:10445000CB3079F0C03109F060C082E08093EA018E +:1044600008C0C93219F0C83321F057C01092EA01D0 +:1044700054C081E0817053C0C93289F118F5C4314C +:1044800071F1A8F4C73009F046C08AE080931501A5 +:1044900094E19093140193E090931301809312019F +:1044A00088E08093110188E28093100134C0CE51DE +:1044B000C63088F5EC2FF0E0E65DFE4F80818093FA +:1044C000E90129C0CE34E9F020F4CB3421F56AE0CB +:1044D00013C0C13579F0C235F1F461E00DC08091AF +:1044E000E901882319F01092E90115C081E0809359 +:1044F000EA0115C061E006C08091E9010E946520D3 +:104500000AC06AE08091E9010E94DB2004C0109299 +:10451000EA0180E004C081E002C080E0ABCFCF912F +:104520000895E1E8F0E08081886080838081816087 +:1045300080838FB7F89493E09093890090ED9093E7 +:1045400088008FBF0895EFE6F0E08081826080836D +:104550000895EFE6F0E080818D7F80830895EFE697 +:10456000F0E0908182E08927808308951F920F9266 +:104570000FB60F9211242F933F934F935F936F9336 +:104580007F938F939F93AF93BF93EF93FF9380910C +:10459000EB019091EC0101969093EC018093EB017B +:1045A000811103C082E00E945B09E091EC01E69575 +:1045B000E695F0E0EB59FA4FE4918091EB018E1310 +:1045C00003C080E00E945B09FF91EF91BF91AF9122 +:1045D0009F918F917F916F915F914F913F912F911B +:1045E0000F900FBE0F901F90189504D06894B111D2 +:1045F0008DC0089570D088F09F5790F0B92F9927FB +:10460000B751A0F0D1F0660F771F881F991F1AF0DD +:10461000BA95C9F712C0B13081F077D0B1E00895F2 +:1046200074C0672F782F8827B85F39F0B93FCCF373 +:10463000869577956795B395D9F73EF490958095D3 +:10464000709561957F4F8F4F9F4F0895E89409C0F3 +:1046500097FB3EF490958095709561957F4F8F4FB5 +:104660009F4F9923A9F0F92F96E9BB279395F695CB +:10467000879577956795B795F111F8CFFAF4BB0F49 +:1046800011F460FF1BC06F5F7F4F8F4F9F4F16C0AD +:10469000882311F096E911C0772321F09EE8872F37 +:1046A000762F05C0662371F096E8862F70E060E0F3 +:1046B0002AF09A95660F771F881FDAF7880F96956C +:1046C000879597F9089557FD9058440F551F59F055 +:1046D0005F3F71F04795880F97FB991F61F09F3FEF +:1046E00079F087950895121613061406551FF2CF18 +:1046F0004695F1DF08C0161617061806991FF1CF68 +:1047000086957105610508940895E894BB2766278E +:104710007727CB0197F908950BD078C069D028F09E +:104720006ED018F0952309F05AC05FC01124EECF67 +:10473000CADFA0F3959FD1F3950F50E0551F629FFC +:10474000F001729FBB27F00DB11D639FAA27F00DEA +:10475000B11DAA1F649F6627B00DA11D661F829F11 +:104760002227B00DA11D621F739FB00DA11D621FF6 +:10477000839FA00D611D221F749F3327A00D611D13 +:10478000231F849F600D211D822F762F6A2F1124F5 +:104790009F5750408AF0E1F088234AF0EE0FFF1F48 +:1047A000BB1F661F771F881F91505040A9F79E3F7F +:1047B000510570F014C0AACF5F3FECF3983EDCF3D4 +:1047C000869577956795B795F795E7959F5FC1F7BC +:1047D000FE2B880F911D9695879597F9089597F967 +:1047E0009F6780E870E060E008959FEF80EC089597 +:1047F00000240A94161617061806090608950024C0 +:104800000A9412161306140605060895092E039439 +:10481000000C11F4882352F0BB0F40F4BF2B11F4AD +:1048200060FF04C06F5F7F4F8F4F9F4F089597FBCE +:10483000072E16F4009407D077FD09D00E9431248A +:1048400007FC05D03EF4909581959F4F0895709593 +:1048500061957F4F0895EE0FFF1F0590F491E02DB5 +:104860000994AA1BBB1B51E107C0AA1FBB1FA617B7 +:10487000B70710F0A61BB70B881F991F5A95A9F709 +:1048800080959095BC01CD010895F999FECF92BD18 +:1048900081BDF89A992780B50895A8E1B0E042E07B +:1048A00050E00C946D24262FF999FECF92BD81BD66 +:1048B000F89A019700B4021639F01FBA20BD0FB65E +:1048C000F894FA9AF99A0FBE08950196272F0E943C +:1048D00054240C945324DC01CB01FC01F999FECF44 +:1048E00006C0F2BDE1BDF89A319600B40D92415078 +:0A48F0005040B8F70895F894FFCF88 +:1048FA0002205D09EB09C809940960090101C70191 +:10490A0028080A03140A3F4D36392605D904A30498 +:10491A006A04FD0316042F04480401020304050671 +:04492A000708090071 +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/zweihander-osx/keymap.c b/keyboards/ergodox_ez/keymaps/zweihander-osx/keymap.c new file mode 100644 index 000000000..3444152bc --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/zweihander-osx/keymap.c @@ -0,0 +1,233 @@ +#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 SGWK 0 // "sagewick", ⌘S ⌘⇥ +#define SGWF 1 // "sagewick freshly", ⌘S ⌘⇥ ⌘R +#define BBED 2 // BBEdit +#define TMNL 3 // Terminal +#define SAFA 4 // Safari +#define ALFRED_LEAD_TIME 100 // time, in milliseconds, to let Alfred come to the fore and accept keyboard input + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | L1 | | L1 | 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | ⌦ | Q | W | E | R | T | ~L1 | | ~L1 | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | ⌫ | A | S | D | F | G |------| |------| H | J | K | L |; / L2| ' / L⌘ | + * |--------+------+------+------+------+------| L⌘ | | L⌘ |------+------+------+------+------+--------| + * | L⇧ | Z | X | C | V | B | | | | N | M | , | . | / / ⌃| R⇧ | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | L⌃ | L⌥ | L⌘ | ← | → | | ↑ | ↓ | [ | ] | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,---------------. + * | `~ | '" | | ⎋ | ⌫ | + * ,------|------|------| |------+--------+------. + * | | | PgUp | | PgDn | | | + * | | ⌫ |------| |------| ⇥ |Enter | + * | | | L⌥ | | L⌃ | | | + * `--------------------' `----------------------' + */ +// 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, TG(SYMB), + KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(SYMB), + KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LGUI, + KC_LCTL, KC_LALT, KC_LGUI,KC_LEFT,KC_RGHT, + KC_GRV, KC_QUOT, + KC_PGUP, + KC_SPC,KC_BSPC,KC_LALT, + // right hand + TG(SYMB), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + MO(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),GUI_T(KC_QUOT), + KC_LGUI, KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_SPC , + KC_ESC, KC_BSPC, + KC_PGDN, + KC_LCTL, KC_TAB, KC_ENT + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | [ | ] | { | } | " | | | | / | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | < | > | ( | ) | ' |------| |------| - | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | & | 1 | 2 | 3 | = | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | 0 | . | ← | → | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | Home | | | + * | | |------| |------| | | + * | | | | | End | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,KC_LBRC,KC_RBRC,KC_LCBR,KC_RCBR,KC_DQUO,KC_TRNS, + KC_TRNS,KC_LABK,KC_RABK,KC_LPRN,KC_RPRN,KC_QUOT, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,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_SLSH, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, + KC_MINS, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, + KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_EQL, KC_TRNS, + KC_0, KC_DOT, KC_LEFT, KC_RGHT, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_HOME, + KC_END , KC_TRNS, KC_TRNS +), +/* Keymap 2: Media keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F14 | F15 | | | | | | ⌘Q | ⌘W | ⌘⇧` | ⌘` | | | Power | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | PgUp |⌘S⌘⇥⌘R| Term | | | | ⌘] | ⌥⌘↑ | ↑ | ⌥⌘↓ | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |Safari| PgDn | | |------| |------| ⌘[ | ← | ↓ | → | | ⏯ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | |BBEdit| | | |L⇧+Spc| Spc | ⏮ | ⏭ | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | Home | | End | | | + * | | |------| |------| ⌘C | ⌘V | + * | | | | | ⌘X | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[MDIA] = KEYMAP( + KC_TRNS, KC_F14 , KC_F15 , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, /* F14 dims screen, F15 brightens */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, M(SGWF), M(TMNL), KC_TRNS, + KC_TRNS, KC_TRNS, M(SAFA), KC_PGDN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M(BBED), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_HOME, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + LGUI(KC_Q), LGUI(KC_W), LGUI(LSFT(KC_GRV)), LGUI(KC_GRV), KC_TRNS, KC_TRNS, KC_PWR, + KC_TRNS, LGUI(KC_RBRC), LGUI(LALT(KC_UP)), KC_UP , LGUI(LALT(KC_DOWN)), KC_TRNS, KC_TRNS, + LGUI(KC_LBRC), KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_MPLY, + KC_TRNS, LSFT(KC_SPC), KC_SPC , KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, + KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + LGUI(KC_X), LGUI(KC_C), LGUI(KC_V) +), +}; + +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 SGWK: + if (record->event.pressed) { + return MACRO( + I(10), + D(LGUI), T(S), U(LGUI), + D(LGUI), T(TAB), U(LGUI), + END); + } + break; + case SGWF: + if (record->event.pressed) { + return MACRO( + I(10), + D(LGUI), T(S), U(LGUI), + D(LGUI), T(TAB), U(LGUI), + D(LGUI), T(R), U(LGUI), + END); + } + break; + case BBED: + if (record->event.pressed) { + return MACRO( + I(10), + D(LALT), T(SPC), U(LALT), W(ALFRED_LEAD_TIME), + T(B), T(B), T(E), T(D), T(I), T(T), + T(ENT), + END); + } + break; + case TMNL: + if (record->event.pressed) { + return MACRO( + I(10), + D(LALT), T(SPC), U(LALT), W(ALFRED_LEAD_TIME), + T(T), T(E), T(R), T(M), T(I), T(N), T(A), T(L), + T(ENT), + END); + } + break; + case SAFA: + if (record->event.pressed) { + return MACRO( + I(10), + D(LALT), T(SPC), U(LALT), W(ALFRED_LEAD_TIME), + T(S), T(A), T(F), T(A), T(R), T(I), + T(ENT), + END); + } + 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/keyboards/ergodox_ez/keymaps/zweihander-osx/readme.markdown b/keyboards/ergodox_ez/keymaps/zweihander-osx/readme.markdown new file mode 100644 index 000000000..7bce7c690 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/zweihander-osx/readme.markdown @@ -0,0 +1,45 @@ +# The Zweihander Layout + +NB: the backtick (\`) is special in Markdown. If I write ⌘\` in this readme, I mean “command-backtick”, not “command-backslash-backtick”. + +This layout is tuned for people who… + + +## use OS X + +This layout doesn’t make any concessions for Windows use. While it should work fine in Windows, I’m not about to devote precious keyboard space to Windows-specific shortcuts. + + +## mouse left-handed while doing other things with the right hand + +I tend to have my mouse in my left hand, but I like to use my other hand to make things go faster. I’ve added a bunch of buttons to the media layer to speed up browsing in Safari and Finder: + +- Close Window (⌘W) +- Back (⌘[) +- Forward (⌘]) +- Open and Close Parent Folder (⌥⌘↓) +- Go Up and Close Just-Left Folder (⌥⌘↑) +- Cycle through open windows in current application (⌘\` and ⌘⇧\`) +- Cycle through tabs in current window (⌥⇥ and ⌥⇧⇥) +- Space (page down in browsers; Quick Look in the Finder) +- Shift-Space (page up in web browsers) + +Because moving letter-by-letter is way slower than moving word-by-word, I added Option (⌥) to the bottommost button on the left side. This key can be held easily while holding ; (activate media layer) and pressing J and L to move left and right by word. + + +## use lots of modifier keys in OS X menu-item shortcuts + +I wanted to preserve the feel of a number of shortcuts that involve pressing lots of modifier keys at once; this is why the bottom left of the keyboard has shift, control, option, and command in the usual spaces. Further, some common shortcuts I press have a key on the right side of the keyboard. These shortcuts include: + +- Empty Trash Without Asking for Confirmation (⇧⌥⌘⌫) +- Shut Down Without Asking for Confirmation (⇧⌥⌘ power) + + +## use Emacs-style shortcuts + +I press C-a, C-e, and C-k all the time. It’s difficult to press these key combinations with the control key on the bottom left and I’m too quick on the draw for the control function on the / key to work reliably, so the bottommost thumb button on the right side is another control key. + + +## use spreadsheets + +All the common spreadsheet operations (+-*/=) are now on the right side of the symbol layer. diff --git a/keyboards/ergodox_ez/matrix.c b/keyboards/ergodox_ez/matrix.c new file mode 100644 index 000000000..2a7dfba21 --- /dev/null +++ b/keyboards/ergodox_ez/matrix.c @@ -0,0 +1,363 @@ +/* + +Note for ErgoDox EZ customizers: Here be dragons! +This is not a file you want to be messing with. +All of the interesting stuff for you is under keymaps/ :) +Love, Erez + +Copyright 2013 Oleg Kostyuk + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +/* + * scan matrix + */ +#include +#include +#include +#include +#include "action_layer.h" +#include "print.h" +#include "debug.h" +#include "util.h" +#include "matrix.h" +#include "ergodox_ez.h" +#include "i2cmaster.h" +#ifdef DEBUG_MATRIX_SCAN_RATE +#include "timer.h" +#endif + +#ifndef DEBOUNCE +# define DEBOUNCE 5 +#endif +static uint8_t debouncing = DEBOUNCE; + +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; +static matrix_row_t matrix_debouncing[MATRIX_ROWS]; + +static matrix_row_t read_cols(uint8_t row); +static void init_cols(void); +static void unselect_rows(void); +static void select_row(uint8_t row); + +static uint8_t mcp23018_reset_loop; + +#ifdef DEBUG_MATRIX_SCAN_RATE +uint32_t matrix_timer; +uint32_t matrix_scan_count; +#endif + + +__attribute__ ((weak)) +void matrix_init_kb(void) { +} + +__attribute__ ((weak)) +void matrix_scan_kb(void) { +} + +inline +uint8_t matrix_rows(void) +{ + return MATRIX_ROWS; +} + +inline +uint8_t matrix_cols(void) +{ + return MATRIX_COLS; +} + +void matrix_init(void) +{ + // initialize row and col + + mcp23018_status = init_mcp23018(); + + + unselect_rows(); + init_cols(); + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + matrix_debouncing[i] = 0; + } + +#ifdef DEBUG_MATRIX_SCAN_RATE + matrix_timer = timer_read32(); + matrix_scan_count = 0; +#endif + + matrix_init_kb(); + +} + +void matrix_power_up(void) { + mcp23018_status = init_mcp23018(); + + unselect_rows(); + init_cols(); + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + matrix_debouncing[i] = 0; + } + +#ifdef DEBUG_MATRIX_SCAN_RATE + matrix_timer = timer_read32(); + matrix_scan_count = 0; +#endif + +} + +uint8_t matrix_scan(void) +{ + if (mcp23018_status) { // if there was an error + if (++mcp23018_reset_loop == 0) { + // since mcp23018_reset_loop is 8 bit - we'll try to reset once in 255 matrix scans + // this will be approx bit more frequent than once per second + print("trying to reset mcp23018\n"); + mcp23018_status = init_mcp23018(); + if (mcp23018_status) { + print("left side not responding\n"); + } else { + print("left side attached\n"); + ergodox_blink_all_leds(); + } + } + } + +#ifdef DEBUG_MATRIX_SCAN_RATE + matrix_scan_count++; + + uint32_t timer_now = timer_read32(); + if (TIMER_DIFF_32(timer_now, matrix_timer)>1000) { + print("matrix scan frequency: "); + pdec(matrix_scan_count); + print("\n"); + + matrix_timer = timer_now; + matrix_scan_count = 0; + } +#endif + + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + select_row(i); + matrix_row_t cols = read_cols(i); + if (matrix_debouncing[i] != cols) { + matrix_debouncing[i] = cols; + if (debouncing) { + debug("bounce!: "); debug_hex(debouncing); debug("\n"); + } + debouncing = DEBOUNCE; + } + unselect_rows(); + } + + if (debouncing) { + if (--debouncing) { + _delay_ms(1); + } else { + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = matrix_debouncing[i]; + } + } + } + + + matrix_scan_kb(); + + return 1; +} + +bool matrix_is_modified(void) +{ + if (debouncing) return false; + return true; +} + +inline +bool matrix_is_on(uint8_t row, uint8_t col) +{ + return (matrix[row] & ((matrix_row_t)1< http://jump.to/fleury +* File: $Id: twimaster.c,v 1.3 2005/07/02 11:14:21 Peter Exp $ +* Software: AVR-GCC 3.4.3 / avr-libc 1.2.3 +* Target: any AVR device with hardware TWI +* Usage: API compatible with I2C Software Library i2cmaster.h +**************************************************************************/ +#include +#include + +#include + + +/* define CPU frequency in Mhz here if not defined in Makefile */ +#ifndef F_CPU +#define F_CPU 16000000UL +#endif + +/* I2C clock in Hz */ +#define SCL_CLOCK 400000L + + +/************************************************************************* + Initialization of the I2C bus interface. Need to be called only once +*************************************************************************/ +void i2c_init(void) +{ + /* initialize TWI clock + * minimal values in Bit Rate Register (TWBR) and minimal Prescaler + * bits in the TWI Status Register should give us maximal possible + * I2C bus speed - about 444 kHz + * + * for more details, see 20.5.2 in ATmega16/32 secification + */ + + TWSR = 0; /* no prescaler */ + TWBR = 10; /* must be >= 10 for stable operation */ + +}/* i2c_init */ + + +/************************************************************************* + Issues a start condition and sends address and transfer direction. + return 0 = device accessible, 1= failed to access device +*************************************************************************/ +unsigned char i2c_start(unsigned char address) +{ + uint8_t twst; + + // send START condition + TWCR = (1<= 0: + if section['name'] == 'layout_config': + config.update(loads("\n".join( + section['code_lines'] + ))) + elif section['sub_name'].startswith('layer'): + layer_name = section['sub_name'] + config['layer_lines'][layer_name] = section['code_lines'] + + reset_section() + + def amend_section(line_index, line): + section['end_line'] = line_index + section['code_lines'].append(line) + + config = DEFAULT_CONFIG.copy() + config.update({ + 'layer_lines': collections.OrderedDict(), + 'macro_ids': {'UM'}, + 'unicode_macros': {}, + }) + + section = {} + reset_section() + + with io.open(path, encoding="utf-8") as fh: + for i, line in enumerate(fh): + if line.startswith("#"): + start_section(i, line) + elif line.startswith(" "): + amend_section(i, line[4:]) + else: + # TODO: maybe parse description + pass + + end_section() + assert 'layout' in config + return config + +# header file parsing + +IF0_RE = re.compile(r""" + ^ + #if 0 + $.*? + #endif +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +COMMENT_RE = re.compile(r""" + /\* + .*? + \*/" +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +def read_header_file(path): + with io.open(path, encoding="utf-8") as fh: + data = fh.read() + data, _ = COMMENT_RE.subn("", data) + data, _ = IF0_RE.subn("", data) + return data + + +def regex_partial(re_str_fmt, flags): + def partial(*args, **kwargs): + re_str = re_str_fmt.format(*args, **kwargs) + return re.compile(re_str, flags) + return partial + + +KEYDEF_REP = regex_partial(r""" + #define + \s + ( + (?:{}) # the prefixes + (?:\w+) # the key name + ) # capture group end +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +ENUM_RE = re.compile(r""" + ( + enum + \s\w+\s + \{ + .*? # the enum content + \} + ; + ) # capture group end +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +ENUM_KEY_REP = regex_partial(r""" + ( + {} # the prefixes + \w+ # the key name + ) # capture group end +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +def parse_keydefs(config, data): + prefix_options = "|".join(config['key_prefixes']) + keydef_re = KEYDEF_REP(prefix_options) + enum_key_re = ENUM_KEY_REP(prefix_options) + for match in keydef_re.finditer(data): + yield match.groups()[0] + + for enum_match in ENUM_RE.finditer(data): + enum = enum_match.groups()[0] + for key_match in enum_key_re.finditer(enum): + yield key_match.groups()[0] + + +def parse_valid_keys(config, out_path): + basepath = os.path.abspath(os.path.join(os.path.dirname(out_path))) + dirpaths = [] + subpaths = [] + while len(subpaths) < 6: + path = os.path.join(basepath, *subpaths) + dirpaths.append(path) + dirpaths.append(os.path.join(path, "tmk_core", "common")) + dirpaths.append(os.path.join(path, "quantum")) + subpaths.append('..') + + includes = set(config['keymaps_includes']) + includes.add("keycode.h") + + valid_keycodes = set() + for dirpath, include in it.product(dirpaths, includes): + include_path = os.path.join(dirpath, include) + if os.path.exists(include_path): + header_data = read_header_file(include_path) + valid_keycodes.update( + parse_keydefs(config, header_data) + ) + return valid_keycodes + + +# Keymap Parsing + +def iter_raw_codes(layer_lines, filler, separator): + filler_re = re.compile("[" + filler + " ]") + for line in layer_lines: + line, _ = filler_re.subn("", line.strip()) + if not line: + continue + codes = line.split(separator) + for code in codes[1:-1]: + yield code + + +def iter_indexed_codes(raw_codes, key_indexes): + key_rows = {} + key_indexes_flat = [] + + for row_index, key_indexes in enumerate(key_indexes): + for key_index in key_indexes: + key_rows[key_index] = row_index + key_indexes_flat.extend(key_indexes) + assert len(raw_codes) == len(key_indexes_flat) + for raw_code, key_index in zip(raw_codes, key_indexes_flat): + # we keep track of the row mostly for layout purposes + yield raw_code, key_index, key_rows[key_index] + + +LAYER_CHANGE_RE = re.compile(r""" + (DF|TG|MO)\(\d+\) +""", re.VERBOSE) + + +MACRO_RE = re.compile(r""" + M\(\w+\) +""", re.VERBOSE) + + +UNICODE_RE = re.compile(r""" + U[0-9A-F]{4} +""", re.VERBOSE) + + +NON_CODE = re.compile(r""" + ^[^A-Z0-9_]$ +""", re.VERBOSE) + + +def parse_uni_code(raw_code): + macro_id = "UC_" + ( + unicodedata.name(raw_code) + .replace(" ", "_") + .replace("-", "_") + ) + code = "M({})".format(macro_id) + uc_hex = "{:04X}".format(ord(raw_code)) + return code, macro_id, uc_hex + + +def parse_key_code(raw_code, key_prefixes, valid_keycodes): + if raw_code in valid_keycodes: + return raw_code + + for prefix in key_prefixes: + code = prefix + raw_code + if code in valid_keycodes: + return code + + +def parse_code(raw_code, key_prefixes, valid_keycodes): + if not raw_code: + return 'KC_TRNS', None, None + + if LAYER_CHANGE_RE.match(raw_code): + return raw_code, None, None + + if MACRO_RE.match(raw_code): + macro_id = raw_code[2:-1] + return raw_code, macro_id, None + + if UNICODE_RE.match(raw_code): + hex_code = raw_code[1:] + return parse_uni_code(chr(int(hex_code, 16))) + + if NON_CODE.match(raw_code): + return parse_uni_code(raw_code) + + code = parse_key_code(raw_code, key_prefixes, valid_keycodes) + return code, None, None + + +def parse_keymap(config, key_indexes, layer_lines, valid_keycodes): + keymap = {} + raw_codes = list(iter_raw_codes( + layer_lines, config['filler'], config['separator'] + )) + indexed_codes = iter_indexed_codes(raw_codes, key_indexes) + key_prefixes = config['key_prefixes'] + for raw_code, key_index, row_index in indexed_codes: + code, macro_id, uc_hex = parse_code( + raw_code, key_prefixes, valid_keycodes + ) + # TODO: line numbers for invalid codes + err_msg = "Could not parse key '{}' on row {}".format( + raw_code, row_index + ) + assert code is not None, err_msg + # print(repr(raw_code), repr(code), macro_id, uc_hex) + if macro_id: + config['macro_ids'].add(macro_id) + if uc_hex: + config['unicode_macros'][macro_id] = uc_hex + keymap[key_index] = (code, row_index) + return keymap + + +def parse_keymaps(config, valid_keycodes): + keymaps = collections.OrderedDict() + key_indexes = config.get( + 'key_indexes', KEYBOARD_LAYOUTS[config['layout']] + ) + # TODO: maybe validate key_indexes + + for layer_name, layer_lines, in config['layer_lines'].items(): + keymaps[layer_name] = parse_keymap( + config, key_indexes, layer_lines, valid_keycodes + ) + return keymaps + +# keymap.c output + +USERCODE = """ +// 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 L1: + ergodox_right_led_1_on(); + break; + case L2: + ergodox_right_led_2_on(); + break; + case L3: + ergodox_right_led_3_on(); + break; + case L4: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + break; + case L5: + ergodox_right_led_1_on(); + ergodox_right_led_3_on(); + break; + // case L6: + // ergodox_right_led_2_on(); + // ergodox_right_led_3_on(); + // break; + // case L7: + // ergodox_right_led_1_on(); + // ergodox_right_led_2_on(); + // ergodox_right_led_3_on(); + // break; + default: + ergodox_board_led_off(); + break; + } +}; +""" + +MACROCODE = """ +#define UC_MODE_WIN 0 +#define UC_MODE_LINUX 1 +#define UC_MODE_OSX 2 + +// TODO: allow default mode to be configured +static uint16_t unicode_mode = UC_MODE_WIN; + +uint16_t hextokeycode(uint8_t hex) {{ + if (hex == 0x0) {{ + return KC_P0; + }} + if (hex < 0xA) {{ + return KC_P1 + (hex - 0x1); + }} + return KC_A + (hex - 0xA); +}} + +void unicode_action_function(uint16_t hi, uint16_t lo) {{ + switch (unicode_mode) {{ + case UC_MODE_WIN: + register_code(KC_LALT); + + register_code(KC_PPLS); + unregister_code(KC_PPLS); + + register_code(hextokeycode((hi & 0xF0) >> 4)); + unregister_code(hextokeycode((hi & 0xF0) >> 4)); + register_code(hextokeycode((hi & 0x0F))); + unregister_code(hextokeycode((hi & 0x0F))); + register_code(hextokeycode((lo & 0xF0) >> 4)); + unregister_code(hextokeycode((lo & 0xF0) >> 4)); + register_code(hextokeycode((lo & 0x0F))); + unregister_code(hextokeycode((lo & 0x0F))); + + unregister_code(KC_LALT); + break; + case UC_MODE_LINUX: + register_code(KC_LCTL); + register_code(KC_LSFT); + + register_code(KC_U); + unregister_code(KC_U); + + register_code(hextokeycode((hi & 0xF0) >> 4)); + unregister_code(hextokeycode((hi & 0xF0) >> 4)); + register_code(hextokeycode((hi & 0x0F))); + unregister_code(hextokeycode((hi & 0x0F))); + register_code(hextokeycode((lo & 0xF0) >> 4)); + unregister_code(hextokeycode((lo & 0xF0) >> 4)); + register_code(hextokeycode((lo & 0x0F))); + unregister_code(hextokeycode((lo & 0x0F))); + + unregister_code(KC_LCTL); + unregister_code(KC_LSFT); + break; + case UC_MODE_OSX: + break; + }} +}} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {{ + if (!record->event.pressed) {{ + return MACRO_NONE; + }} + // MACRODOWN only works in this function + switch(id) {{ + case UM: + unicode_mode = (unicode_mode + 1) % 2; + break; +{macro_cases} +{unicode_macro_cases} + default: + break; + }} + return MACRO_NONE; +}}; +""" + + +UNICODE_MACRO_TEMPLATE = """ +case {macro_id}: + unicode_action_function(0x{hi:02x}, 0x{lo:02x}); + break; +""".strip() + + +def unicode_macro_cases(config): + for macro_id, uc_hex in config['unicode_macros'].items(): + hi = int(uc_hex, 16) >> 8 + lo = int(uc_hex, 16) & 0xFF + unimacro_keys = ", ".join( + "T({})".format( + "KP_" + digit if digit.isdigit() else digit + ) for digit in uc_hex + ) + yield UNICODE_MACRO_TEMPLATE.format( + macro_id=macro_id, hi=hi, lo=lo + ) + + +def iter_keymap_lines(keymap, row_indents=None): + col_widths = {} + col = 0 + # first pass, figure out the column widths + prev_row_index = None + for code, row_index in keymap.values(): + if row_index != prev_row_index: + col = 0 + if row_indents: + col = row_indents[row_index] + col_widths[col] = max(len(code), col_widths.get(col, 0)) + prev_row_index = row_index + col += 1 + + # second pass, yield the cell values + col = 0 + prev_row_index = None + for key_index in sorted(keymap): + code, row_index = keymap[key_index] + if row_index != prev_row_index: + col = 0 + yield "\n" + if row_indents: + for indent_col in range(row_indents[row_index]): + pad = " " * (col_widths[indent_col] - 4) + yield (" /*-*/" + pad) + col = row_indents[row_index] + else: + yield pad + yield " {}".format(code) + if key_index < len(keymap) - 1: + yield "," + # This will be yielded on the next iteration when + # we know that we're not at the end of a line. + pad = " " * (col_widths[col] - len(code)) + prev_row_index = row_index + col += 1 + + +def iter_keymap_parts(config, keymaps): + # includes + for include_path in config['keymaps_includes']: + yield '#include "{}"\n'.format(include_path) + + yield "\n" + + # definitions + for i, macro_id in enumerate(sorted(config['macro_ids'])): + yield "#define {} {}\n".format(macro_id, i) + + yield "\n" + + for i, layer_name in enumerate(config['layer_lines']): + yield '#define L{0:<3} {0:<5} // {1}\n'.format(i, layer_name) + + yield "\n" + + # keymaps + yield "const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\n" + + for i, layer_name in enumerate(config['layer_lines']): + # comment + layer_lines = config['layer_lines'][layer_name] + prefixed_lines = " * " + " * ".join(layer_lines) + yield "/*\n{} */\n".format(prefixed_lines) + + # keymap codes + keymap = keymaps[layer_name] + row_indents = ROW_INDENTS.get(config['layout']) + keymap_lines = "".join(iter_keymap_lines(keymap, row_indents)) + yield "[L{0}] = KEYMAP({1}\n),\n".format(i, keymap_lines) + + yield "};\n\n" + + # no idea what this is for + yield "const uint16_t PROGMEM fn_actions[] = {};\n" + + # macros + yield MACROCODE.format( + macro_cases="", + unicode_macro_cases="\n".join(unicode_macro_cases(config)), + ) + + # TODO: dynamically create blinking lights + yield USERCODE + + +def main(argv=sys.argv[1:]): + if not argv or '-h' in argv or '--help' in argv: + print(__doc__) + return 0 + + in_path = os.path.abspath(argv[0]) + if not os.path.exists(in_path): + print("No such file '{}'".format(in_path)) + return 1 + + if len(argv) > 1: + out_path = os.path.abspath(argv[1]) + else: + dirname = os.path.dirname(in_path) + out_path = os.path.join(dirname, "keymap.c") + + config = parse_config(in_path) + valid_keys = parse_valid_keys(config, out_path) + keymaps = parse_keymaps(config, valid_keys) + + with io.open(out_path, mode="w", encoding="utf-8") as fh: + for part in iter_keymap_parts(config, keymaps): + fh.write(part) + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/keyboards/ergodox_ez/util/readme.md b/keyboards/ergodox_ez/util/readme.md new file mode 100644 index 000000000..26c5e5d99 --- /dev/null +++ b/keyboards/ergodox_ez/util/readme.md @@ -0,0 +1,3 @@ +# ErgoDox EZ Utilities + +The Python script in this directory, by [mbarkhau](https://github.com/mbarkhau) allows you to write out a basic ErgoDox EZ keymap using Markdown notation, and then transpile it to C, which you can then compile. It's experimental, but if you're not comfortable using C, it's a nice option. diff --git a/keyboards/gh60/Makefile b/keyboards/gh60/Makefile new file mode 100644 index 000000000..39a9cc0ae --- /dev/null +++ b/keyboards/gh60/Makefile @@ -0,0 +1,74 @@ + + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +# CONSOLE_ENABLE ?= yes # Console for debug(+400) +# COMMAND_ENABLE ?= yes # Commands for debug and configuration +KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend +NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality +# MIDI_ENABLE ?= YES # MIDI controls +# UNICODE_ENABLE ?= YES # Unicode +# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID + + +ifndef QUANTUM_DIR + include ../../Makefile +endif + diff --git a/keyboards/gh60/README.md b/keyboards/gh60/README.md new file mode 100644 index 000000000..35c13375c --- /dev/null +++ b/keyboards/gh60/README.md @@ -0,0 +1,60 @@ +## gh60 Rev C keyboard firmware + +![gh60 Rev C PCB](gh60revc.jpg) + + /* Column pin configuration + * col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 + * pin: F0 F1 E6 C7 C6 B6 D4 B1 B7 B5 B4 D7 D6 B3 (Rev.C) + */ + + /* Row pin configuration + * row: 0 1 2 3 4 + * pin: D0 D1 D2 D3 D5 + */ + + GPIO pads + 0 F7 WASD LEDs + 1 F6 ESC LED + 2 F5 FN LED + 3 F4 POKER Arrow LEDs + + B2 Capslock LED + B0 not connected + +Functions to controls LED clusters + + gh60_caps_led_on() + gh60_poker_leds_on() + gh60_fn_led_on() + gh60_esc_led_on() + gh60_wasd_leds_on() + + gh60_caps_led_off() + gh60_poker_leds_off() + gh60_fn_led_off() + gh60_esc_led_off() + gh60_wasd_leds_off() + +====================== + +## Quantum MK Firmware + +For the full Quantum feature list, see [the parent README.md](/README.md). + +## Building + +Download or clone the whole firmware and navigate to the keyboards/gh60_rev_c folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default +To build with the default keymap, simply run `make`. + +### Other Keymaps +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` in the keymaps folder, and see keymap document (you can find in top README.md) and existent keymap files. + +To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: +``` +$ make KEYMAP=[default|jack|] +``` +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboards/gh60/config.h b/keyboards/gh60/config.h new file mode 100644 index 000000000..4813c4e78 --- /dev/null +++ b/keyboards/gh60/config.h @@ -0,0 +1,161 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER geekhack +#define PRODUCT GH60 +#define DESCRIPTION t.m.k. keyboard firmware for GH60 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ + #define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 } +// Rev A +// #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B0, B5, B4, D7, D6, B3 } +// Rev B/C + #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/gh60/gh60.c b/keyboards/gh60/gh60.c new file mode 100644 index 000000000..6da4d8ee3 --- /dev/null +++ b/keyboards/gh60/gh60.c @@ -0,0 +1,68 @@ +#include "gh60.h" +#include "led.h" + +__attribute__ ((weak)) +void matrix_init_user(void) { + // leave this function blank - it can be defined in a keymap file +}; + +__attribute__ ((weak)) +void matrix_scan_user(void) { + // leave this function blank - it can be defined in a keymap file +} + +__attribute__ ((weak)) +bool process_action_user(keyrecord_t *record) { + // leave this function blank - it can be defined in a keymap file + return true; +} + +__attribute__ ((weak)) +void led_set_user(uint8_t usb_led) { + // leave this function blank - it can be defined in a keymap file +} + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + matrix_init_user(); +} + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +} + +bool process_action_kb(keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + return process_action_user(record); +} + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + + if (usb_led & (1< + +/* GH60 LEDs + * GPIO pads + * 0 F7 WASD LEDs + * 1 F6 ESC LED + * 2 F5 FN LED + * 3 F4 POKER Arrow LEDs + * B2 Capslock LED + * B0 not connected + */ +inline void gh60_caps_led_on(void) { DDRB |= (1<<2); PORTB &= ~(1<<2); } +inline void gh60_poker_leds_on(void) { DDRF |= (1<<4); PORTF &= ~(1<<4); } +inline void gh60_fn_led_on(void) { DDRF |= (1<<5); PORTF &= ~(1<<5); } +inline void gh60_esc_led_on(void) { DDRF |= (1<<6); PORTF &= ~(1<<6); } +inline void gh60_wasd_leds_on(void) { DDRF |= (1<<7); PORTF &= ~(1<<7); } + +inline void gh60_caps_led_off(void) { DDRB &= ~(1<<2); PORTB &= ~(1<<2); } +inline void gh60_poker_leds_off(void) { DDRF &= ~(1<<4); PORTF &= ~(1<<4); } +inline void gh60_fn_led_off(void) { DDRF &= ~(1<<5); PORTF &= ~(1<<5); } +inline void gh60_esc_led_off(void) { DDRF &= ~(1<<6); PORTF &= ~(1<<6); } +inline void gh60_wasd_leds_off(void) { DDRF &= ~(1<<7); PORTF &= ~(1<<7); } + +/* GH60 keymap definition macro + * K2C, K31 and K3C are extra keys for ISO + */ +#define KEYMAP( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \ +) { \ + { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D }, \ + { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D }, \ + { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D }, \ + { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D }, \ + { KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_NO, KC_##K45, KC_NO, KC_NO, KC_NO, KC_##K49, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D } \ +} + +/* ANSI valiant. No extra keys for ISO */ +#define KEYMAP_ANSI( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ + K40, K41, K42, K45, K4A, K4B, K4C, K4D \ +) KEYMAP( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, NO, K2D, \ + K30, NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, NO, K3D, \ + K40, K41, K42, K45, NO, K4A, K4B, K4C, K4D \ +) + +#define KEYMAP_HHKB( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K49,\ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3C, \ + K40, K41, K42, K45, K4A, K4B, K4C, K4D \ +) KEYMAP( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, NO, K2D, \ + K30, NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \ +) + +void matrix_init_user(void); +void matrix_scan_user(void); +bool process_action_user(keyrecord_t *record); +void led_set_user(uint8_t usb_led); + +#endif diff --git a/keyboards/gh60/gh60revc.jpg b/keyboards/gh60/gh60revc.jpg new file mode 100644 index 000000000..6c88ad244 Binary files /dev/null and b/keyboards/gh60/gh60revc.jpg differ diff --git a/keyboards/gh60/keymaps/default/compiled.hex b/keyboards/gh60/keymaps/default/compiled.hex new file mode 100644 index 000000000..5c253e970 --- /dev/null +++ b/keyboards/gh60/keymaps/default/compiled.hex @@ -0,0 +1,1019 @@ +:100000000C9428020C946C020C946C020C946C02FC +:100010000C946C020C946C020C946C020C946C02A8 +:100020000C946C020C946C020C94A50B0C94770C41 +:100030000C949B190C946C020C946C020C946C0242 +:100040000C946C020C946C020C946C020C946C0278 +:100050000C946C020C94031A0C946C020C946C02B9 +:100060000C946C020C946C020C946C020C946C0258 +:100070000C946C020C946C020C946C020C946C0248 +:100080000C946C020C946C020C946C020C946C0238 +:100090000C946C020C946C020C946C020C946C0228 +:1000A0000C946C020C946C020C946C02E40C060D23 +:1000B000F40D060DF40D4B0D6E0DF40DC30DD60DA4 +:1000C000B310B310E210E21021114111711271123C +:1000D0004C117112FC11FC116212711271126B122F +:1000E0000912091209120912091209120912091238 +:1000F0000912091209120912091209120912091228 +:10010000191227122E1235123F12F1A1048A29006A +:100110001E001F00200021002200230024002500D3 +:10012000260027002D002E0035002B0014001A0099 +:100130000800150017001C0018000C001200130026 +:100140002F0030002A0039000400160007000900C3 +:100150000A000B000D000E000F00330034000000F9 +:100160002800E100C1001D001B0006001900050069 +:1001700011001000360037003800C000E500E00034 +:10018000E300E200000000002C000000000000007E +:100190003100E600E7006500E40029003A003B007A +:1001A0003C003D003E003F00400041004200430053 +:1001B000440045000100010001005200010001005F +:1001C0000100010001000100010001000100010027 +:1001D00001000100500051004F000100010001002A +:1001E0000100010001000100010001000100010007 +:1001F00001000100010001000100010001000100F7 +:1002000001000100010001000100010001000100E6 +:1002100000000000010000000000000001000100DB +:1002200001000100010001000100010001000100C6 +:1002300001000100010001000100010001000100B6 +:1002400001000100010001000100010001000100A6 +:100250000100010001000100010001000100010096 +:100260000100010001000100010001000100010086 +:100270000100010001000100010001000100010076 +:100280000100010001000100010001000100010066 +:100290000100010052000100010001000000000007 +:1002A00001000000000000000100010050005100AA +:1002B0004F000A03470048003600300000001203D8 +:1002C0006700650065006B006800610063006B00FB +:1002D00000000403090409026D00040100A0FA09EA +:1002E0000400000103010100092111010001223F66 +:1002F000000705810308000A090401000103010247 +:1003000000092111010001224D00070582030800A8 +:100310000A09040200010300000009211101000183 +:100320002236000705830308000A090403000103BD +:100330000000000921110100012239000705840392 +:100340001000011201100100000008EDFE606001C4 +:10035000000102000105010906A101050719E029B4 +:10036000E715002501950875018102050819012985 +:100370000595057501910295017503910105071910 +:1003800000297715002501957875018102C00501C6 +:100390000980A101850216010026B7001A01002A72 +:1003A000B700751095018100C0050C0901A10185F8 +:1003B00003160100269C021A01002A9C0275109562 +:1003C000018100C005010902A1010901A10005097F +:1003D0001901290515002501950575018102950171 +:1003E000750381010501093009311581257F9502C9 +:1003F0007508810609381581257F950175088106E4 +:10040000050C0A38021581257F950175088106C003 +:10041000C005010906A101050719E029E715002516 +:10042000019508750181029501750881010508197A +:100430000129059505750191029501750391010545 +:1004400007190029FF150025FF950675088100C0D2 +:1004500011241FBECFEFDAE0DEBFCDBF04B603FE2E +:1004600024C08091F1019091F201A091F301B0912B +:10047000F4018730904BA740B04BB9F41092F101D2 +:100480001092F2011092F3011092F40114BE84B79D +:10049000877F84BF88E10FB6F89480936000109244 +:1004A00060000FBEE0E0F8E3099511E0A0E0B1E0E4 +:1004B000EEE5FFE302C005900D92AC33B107D9F72A +:1004C00011E0ACE3B1E001C01D92A13FB107E1F73B +:1004D0000E94EB080C94AD1F0C940000089581E07D +:1004E000089508950C946E020C9490020C946F027F +:1004F00081FF02C0229A01C022982A980C947102AE +:1005000061110BC0FC018281882321F085EE0E94DD +:10051000620F03C085EE0E941F1080E090E00895F6 +:100520008091B70181FF04C0879A8F98859A03C094 +:1005300087988F9885988D9882FF04C0849A8C98AC +:10054000869A03C084988C9886988E98089581E046 +:1005500008950C94A70208950F931F93CF93DF93F0 +:100560008C01FC01C081D181CE010E94D517BE0152 +:100570000E945903EC01B8010E94A902882309F4E2 +:100580008DC0F8018281882309F44AC08091470117 +:1005900081111FC0C431F0E5DF0709F051C00E948E +:1005A000AB0281E0809347010E94CD1990934601F0 +:1005B0008093450110923E011092400110923F013C +:1005C0001092420110924101109244011092430195 +:1005D00065C080914501909146010E94D919883CDF +:1005E000910570F480913E01E82FF0E0EE0FFF1FBF +:1005F000E15CFE4FD183C0838F5F80933E014EC08C +:10060000C43880E5D80721F0C538D04501F13AC09B +:10061000F8018281882341F010923C0182E01EC0E3 +:10062000C438E0E5DE0759F580913C01811106C030 +:1006300086E20E94620F86E20E941F1082E01CC0C8 +:10064000C438F0E5DF0741F3C538D045D9F4F801E7 +:100650008281882331F010923D0180E20E946E1069 +:100660001DC080913D01811106C087E20E94620F8A +:1006700087E20E941F1080E20E9475100FC0C538EB +:10068000D04529F381E080933C0180933D01C8016E +:10069000DF91CF911F910F910C94760280E0DF9152 +:1006A000CF911F910F9108950C9472020C947402D3 +:1006B00008959EE0799FF001112496E4899FE00D52 +:1006C000F11D1124E60FF11DEE0FFF1FE25FFE4F3B +:1006D000859194910895880F991FFC01E657F04089 +:1006E000859194910895880F991FFC01E65FFE4F54 +:1006F0008591949108950F931F93CF93DF93EC010D +:10070000811520E3920750F5C11580E2D80708F063 +:10071000C3C0CB3BD10590F4C83AD10508F06AC0FC +:10072000C53AD10508F05BC0C430D10508F0D0C18E +:10073000219709F0CAC101E010E00AC2CF3FD105FC +:1007400011F008F0C5C1C03FD10508F0A2C0CE012C +:10075000805E9109089708F4BBC1B7C1C13090E52C +:10076000D90709F4A2C020F5C0318FE4D80770F48E +:10077000C11590E4D90708F094C0C11521E3D20750 +:1007800008F0A3C1DD278E01106CE2C1C115D04570 +:1007900009F09BC10E94DC128FEF94E32CE08150A2 +:1007A00090402040E1F700C000000E94281AD0C10C +:1007B000C11597E5D90758F4C03121E5D20708F0F3 +:1007C0001CC1C43180E5D80708F475C07EC1CE01D4 +:1007D00090578115904108F078C1DF7073C1C53A18 +:1007E000D10509F477C1C63AD10509F076C102E80E +:1007F00010E4AEC1C83AD10509F472C1C93AD105B5 +:1008000009F471C1CA3AD10509F470C1CB3AD105D6 +:1008100009F46FC1CC3AD10509F46EC1CD3AD105C6 +:1008200009F46DC1C03BD10509F46CC1CE3AD105C4 +:1008300009F46BC1CF3AD10509F46AC1C13BD105B6 +:1008400009F469C1C23BD10509F468C1C33BD105B4 +:1008500009F467C1C43BD10509F466C1C53BD105A4 +:1008600009F465C1C63BD10509F464C1C73BD10594 +:1008700009F463C1C83BD10509F462C1C93BD10584 +:1008800009F461C1CA3BD10509F460C100E014E478 +:100890005FC18E0110655CC1CE019F700E94730321 +:1008A00058C1DF708E01106A53C18091D4018160FC +:1008B0008093D4014DC10E94D51B811102C00E94BA +:1008C000BB1B0E94F21B90E09093F1018093F0011A +:1008D000C23080E5D80721F48091F001816086C0A4 +:1008E000C43090E5D90721F48091F00182607EC088 +:1008F000C63020E5D20721F48091F001846076C0F3 +:10090000C83080E5D80719F48091F00127C0CA30BB +:1009100090E5D90721F48091F001806167C0CC3067 +:1009200020E5D20721F48091F00180625FC0CE30D3 +:1009300080E5D80721F48091F001806457C0C03170 +:1009400090E5D90721F48091F00180684FC0C23151 +:1009500020E5D20729F48091F0018460886046C0C8 +:10096000C33080E5D80721F48091F0018E7F3EC02E +:10097000C53090E5D90721F48091F0018D7F36C014 +:10098000C73020E5D20721F48091F0018B7F2EC083 +:10099000C93080E5D80719F48091F00126C0CB302A +:1009A00090E5D90721F48091F0018F7E1FC0CD30F2 +:1009B00020E5D20721F48091F0018F7D17C0CF3060 +:1009C00080E5D80721F48091F0018F7B0FC0C13101 +:1009D00090E5D90721F48091F0018F7707C0C331EA +:1009E000D04531F48091F0018B7F877F8093F001B7 +:1009F0008091F0010E94F61BABC08D2F99278F705C +:100A0000992781309105D9F49E012370332702C0C4 +:100A1000880F991F2A95E2F79C688E0144E0000F29 +:100A2000111F4A95E1F700271370802B912B53E09B +:100A3000CC0FDD1F5A95E1F7C076DD272FC082303D +:100A4000910531F4DC2FCC278E01016F106A80C034 +:100A50008330910569F4CE018370992701E010E09D +:100A600002C0000F111F8A95E2F7C8019C680FC0F1 +:100A700084309105B9F4CE018370992701E010E02C +:100A800002C0000F111F8A95E2F7C8019A6823E09F +:100A9000CC0FDD1F2A95E1F7C07ED7708C010C2B9F +:100AA0001D2B56C08530910531F4DC2FCC278E01EB +:100AB000046F106A4DC0069709F04AC0CF71DD2758 +:100AC000DC2FCC278E01106243C000E010E040C054 +:100AD0008E013EC001E810E43BC003E810E438C0DA +:100AE00002EE14E435C009EE14E432C00AEE14E458 +:100AF0002FC005EB14E42CC006EB14E429C007EB6F +:100B000014E426C00CEC14E423C00DEC14E420C063 +:100B100003E815E41DC00AE815E41AC002E915E46B +:100B200017C004E915E414C001E216E411C003E2A1 +:100B300016E40EC004E216E40BC005E216E408C099 +:100B400006E216E405C007E216E402C00AE216E473 +:100B5000C801DF91CF911F910F9108959EE0799F79 +:100B6000F001112496E4899FE00DF11D1124E60F98 +:100B7000F11DEE0FFF1FE25FFE4F85919491803EC5 +:100B80009105E0F4803C910558F58133910509F415 +:100B90006FC048F48932910509F463C08A32910527 +:100BA00009F46DC072C089339105E9F0823891056E +:100BB000D1F08533910509F44DC067C0833E91059E +:100BC00081F138F4803E9105B9F0823E9105D9F06B +:100BD0005CC0863E910561F1873E9105A1F155C04B +:100BE0000E946B0308952091F00120FD02C021FFB7 +:100BF0004CC080EE90E049C08091F00180FFF9CFB9 +:100C000089E390E042C08091F00182FF0EC08091A4 +:100C1000F00184FF03C080E090E037C083EE90E0F5 +:100C200034C08091F00182FFF2CF82EE90E02DC0BF +:100C30008091F00183FF0BC08091F00184FDEBCF28 +:100C400087EE90E022C08091F00183FFF5CF86EE21 +:100C500090E01BC08091F00185FF07C089E290E021 +:100C600014C08091F00185FFF9CF85E390E00DC0BD +:100C70008091F00186FF07C08AE290E006C0809173 +:100C8000F00186FFF9CF81E390E00E947B03089595 +:100C90000C947802E82FF0E0ED5DFE4F8081E82FA4 +:100CA000EF70F0E082958F7021E030E0A90102C082 +:100CB000440F551F8A95E2F740A308950F931F93A1 +:100CC000CF93DF9385B7806885BF85B7806885BF80 +:100CD000C4E0D0E001E010E0FE01ED5DFE4F808158 +:100CE000E82FEF70F0E021A182958F70A80102C07B +:100CF000440F551F8A95E2F7CA01822B81A38C2FDE +:100D00000E944A06219740F78DE090E061E070E094 +:100D1000FC01EB5EFE4F2081E22FEF70F0E042A17C +:100D200022952F70DB0102C0AA0FBB1F2A95E2F7A4 +:100D30009D01242B22A3019758F7DF91CF911F919A +:100D40000F910C945403EF92FF920F931F93CF9344 +:100D5000DF9302E511E0C4E0EE24E394F12CD5E04A +:100D60008C2F0E944A068DE090E040E050E0FC01AC +:100D7000EB5EFE4F6081E62FEF70F0E020A130E0E7 +:100D800062956F7002C0359527956A95E2F720FD50 +:100D900009C09701082E02C0220F331F0A94E2F700 +:100DA000422B532B019718F7F801929182918F01F2 +:100DB0008417950721F051834083D09300018C2F35 +:100DC0000E944A06C15060F68091000187FD1FC055 +:100DD0008150809300018F3F39F08FE99FE00197A8 +:100DE000F1F700C0000013C080E090E0FC01EE5A73 +:100DF000FE4FDC01A85BBE4F18962D913C911997D0 +:100E0000318720870297863FEFEF9E0779F70E9490 +:100E1000560381E0DF91CF911F910F91FF90EF90EA +:100E20000895E82FF0E0EE0FFF1FEE5AFE4F80818D +:100E30009181089508950F931F93CF930CE511E0CE +:100E4000C0E0F801929182918F010E945019C80F61 +:100E5000F1E002351F07A9F78C2FCF911F910F9159 +:100E6000089580916C010895CF93DF9300D01F9275 +:100E7000CDB7DEB79C018091E701843019F593E08E +:100E800099833B832A839093E9008FEF9091E80048 +:100E9000815095FD06C095ED9A95F1F700008111FE +:100EA000F5CF8091E80085FF0DC040E050E063E0A1 +:100EB00070E0CE0101960E9495098091E8008E773E +:100EC0008093E8000F900F900F90DF91CF910895DD +:100ED000CF93DF9300D01F92CDB7DEB72091E7010B +:100EE000243021F522E029839B838A8383E0809349 +:100EF000E9008FEF9091E800815095FD06C095EDD7 +:100F00009A95F1F700008111F5CF8091E80085FFF7 +:100F10000DC040E050E063E070E0CE0101960E9419 +:100F200095098091E8008E778093E8000F900F90EC +:100F30000F90DF91CF9108952091E7012430F1F4D3 +:100F400022E02093E9002FEF3091E800215035FD99 +:100F500006C035ED3A95F1F700002111F5CF20914B +:100F6000E80025FF0BC040E050E065E070E00E9423 +:100F700095098091E8008E778093E8000895CF93DB +:100F8000DF93EC019091E701943009F046C0809125 +:100F90000B018823D9F080910C018823B9F090933C +:100FA000E9008FEF9091E800815095FD06C095E132 +:100FB0009A95F1F700008111F5CF8091E80085FF47 +:100FC0002CC040E050E060E170E017C081E0809309 +:100FD000E9008FEF9091E800815095FD06C095EDF6 +:100FE0009A95F1F700008111F5CF8091E80085FF17 +:100FF00014C040E050E068E070E0CE010E94950926 +:101000008091E8008E778093E80080E1FE01ACE5F6 +:10101000B1E001900D928A95E1F7DF91CF910895AB +:101020008091E601811109C00E942A0B0E94870B62 +:101030008091E20084608093E20008951092E601BE +:101040000895089508950C94951942E061EC81E0AB +:101050000E94A40A42E061EC82E00E94A40A42E0FD +:1010600061EC83E00E94A40A42E161EC84E00C940C +:10107000A40A8091E901833009F455C030F481302D +:1010800071F0823009F48EC008958A3009F47AC074 +:101090008B3009F460C0893009F09CC020C0809179 +:1010A000E801813A09F096C08091E800877F80933B +:1010B000E8008091EC019091ED01892B21F460E131 +:1010C0008CE591E003C060E080E090E070E00E9479 +:1010D000E0098091E8008B778093E8000895809183 +:1010E000E801813209F076C08091EC019091ED0128 +:1010F000009719F0039709F06DC08091E800877F91 +:101100008093E8008091E80082FD05C08091E701AE +:101110008111F8CF5FC08091F10080936C018091C4 +:10112000E8008B7753C08091E801813A09F052C002 +:101130008091EC019091ED01892B09F04BC08091D9 +:10114000E800877F8093E8008091E80080FFFCCF73 +:1011500080910B0136C08091E8018132D9F58091F0 +:10116000EC019091ED01892BA9F58091E800877F32 +:101170008093E8000E94D90A8091EA0180930B01D4 +:101180000C94DC128091E801813221F58091E80015 +:10119000877F8093E8000E94D90A8091EB018093B9 +:1011A0006D0108958091E801813AA1F48091E800F1 +:1011B000877F8093E8008091E80080FFFCCF8091DA +:1011C0006D018093F1008091E8008E778093E800B4 +:1011D0000C94D90A089584B7877F84BF88E10FB63D +:1011E000F89480936000109260000FBE90E080E859 +:1011F0000FB6F89480936100909361000FBE0E9437 +:101200007C0E0E942A0B0E94870B8091E200846072 +:101210008093E20078940E940D0E0E947E0E81E081 +:1012200091E00E94280E8091E701853069F40E94C8 +:101230005C198091E5018823B1F30E948719882306 +:1012400091F30E947F09EFCF0E94840EECCF292FEB +:10125000332723303105C9F064F42130310581F0A2 +:101260002230310509F043C08DE690E026ED32E0F2 +:1012700042C021323105F1F02232310541F137C04F +:1012800082E190E023E433E036C099278130910574 +:1012900041F08230910541F0892B49F5E2EDF2E011 +:1012A00005C0EEEBF2E002C0E2EBF2E0849190E0E8 +:1012B0009F0121C06430D8F4E62FF0E0EE0FFF1F4D +:1012C000EC5CFE4F2081318189E090E014C06430F5 +:1012D00070F470E0FB01EE0FFF1FE45DFE4F208114 +:1012E0003181FB01E85DFE4F808190E004C080E029 +:1012F00090E020E030E0FA0131832083089580E11E +:1013000089BD82E189BD09B400FEFDCF8091D8007E +:101310008F7D8093D8008091E00082608093E00010 +:101320008091E00081FDFCCF0895CF92DF92EF9293 +:10133000FF920F931F93CF93DF93EC018B016A0110 +:101340000E94F80A811133C0C114D10439F0F601AA +:1013500080819181081B190BC80FD91FE12CF12C3A +:101360000115110519F18091E80085FD16C08091E5 +:10137000E8008E778093E800C114D10449F0F601AB +:1013800080819181E80EF91EF182E08285E00FC034 +:101390000E94F80A882321F30AC089918093F10002 +:1013A00001501109FFEFEF1AFF0ADACF80E0DF9159 +:1013B000CF911F910F91FF90EF90DF90CF90089504 +:1013C0002091EE013091EF012617370748F06115A3 +:1013D000710539F42091E8002E772093E80001C0D0 +:1013E000B90140E061157105A9F12091E7012223BF +:1013F00009F443C0253009F442C02091E80023FDE0 +:1014000040C02091E80022FD32C02091E80020FF7A +:10141000E9CF4091F3002091F20030E0342BFC0141 +:10142000CF016115710559F02830310540F48191E3 +:101430008093F100615071092F5F3F4FF1CF41E080 +:101440002830310509F040E02091E8002E77209304 +:10145000E800C8CF4111C9CF0AC08091E7018823B5 +:1014600061F0853061F08091E80083FD0AC08091D1 +:10147000E80082FFF2CF80E0089582E0089583E0E3 +:10148000089581E008952091EE013091EF01261733 +:10149000370748F06115710539F42091E8002E777F +:1014A0002093E80001C0B901FC0120E0611571053D +:1014B00091F18091E701882309F440C0853009F457 +:1014C0003FC08091E80083FD3DC08091E80082FD2F +:1014D0002FC08091E80080FFE9CF2091F300809138 +:1014E000F20090E0922B6115710559F0883091055A +:1014F00040F424912093F1003196615071090196D6 +:10150000F2CF21E0089709F020E08091E8008E7783 +:101510008093E800CBCF2111CCCF0AC08091E701A6 +:10152000882361F0853061F08091E80083FD0AC076 +:101530008091E80082FFF2CF80E0089582E0089574 +:1015400083E0089581E00895982F973058F590939F +:10155000E900981739F07091EC002091ED0050915E +:10156000F00003C0242F762F50E021FF19C03091E6 +:10157000EB003E7F3093EB003091ED003D7F3093E8 +:10158000ED003091EB0031603093EB007093EC0094 +:101590002093ED005093F0002091EE0027FF07C04C +:1015A0009F5FD3CF8F708093E90081E0089580E042 +:1015B00008958091E80187FF11C08091E80082FDC5 +:1015C00005C08091E7018111F8CF11C08091E8003A +:1015D0008B770BC08091E701882349F08091E80068 +:1015E00080FFF8CF8091E8008E778093E80008951F +:1015F0002091E4003091E50095E64091EC00842FC5 +:10160000817040FF22C08091E80080FD1CC0809165 +:10161000E701882391F0853091F08091EB0085FD02 +:1016200010C04091E4005091E5004217530729F3A0 +:101630009A01915011F784E0089582E0089583E0C3 +:10164000089581E0089580E008954091E80042FF08 +:10165000DECF08950E94980B0E94A00BE0EEF0E010 +:10166000808181608083E8EDF0E080818F778083E6 +:1016700019BCA7EDB0E08C918E7F8C9380818F7E1A +:1016800080831092E60108950F931F93CF93DF9309 +:101690000E94980B0E94A00BC8EDD0E088818F7744 +:1016A000888388818068888388818F7D888319BC3E +:1016B0001092E7011092E3011092E5011092E4010B +:1016C00000EE10E0F80180818B7F8083888181604B +:1016D000888342E060E080E00E94A40AE1EEF0E04E +:1016E00080818E7F8083E2EEF0E080818160808364 +:1016F000808188608083F80180818E7F80838881EB +:1017000080618883DF91CF911F910F910895E8ED5B +:10171000F0E080818F7E8083E7EDF0E08081816062 +:10172000808384E082BF81E08093E6010C94440BC7 +:10173000E8EDF0E080818E7F80831092E2000895D2 +:101740001092DA001092E10008951F920F920FB6E6 +:101750000F9211242F933F934F935F936F937F9337 +:101760008F939F93AF93BF93EF93FF938091E1008B +:1017700082FF0BC08091E20082FF07C08091E100F0 +:101780008B7F8093E1000E940C0E8091DA0080FF35 +:101790001FC08091D80080FF1BC08091DA008E7F2F +:1017A0008093DA008091D90080FF0DC080E189BD6F +:1017B00082E189BD09B400FEFDCF81E08093E7019D +:1017C0000E94100805C019BC1092E7010E941E0873 +:1017D0008091E10080FF19C08091E20080FF15C078 +:1017E0008091E2008E7F8093E2008091E200806130 +:1017F0008093E2008091D80080628093D80019BC69 +:1018000085E08093E7010E9422088091E10084FF37 +:1018100030C08091E20084FF2CC080E189BD82E16C +:1018200089BD09B400FEFDCF8091D8008F7D8093E3 +:10183000D8008091E1008F7E8093E1008091E200EA +:101840008F7E8093E2008091E20081608093E200CD +:101850008091E301882311F084E007C08091E300C8 +:1018600087FD02C081E001C083E08093E7010E9410 +:1018700023088091E10083FF29C08091E20083FF6B +:1018800025C08091E100877F8093E10082E0809312 +:10189000E7011092E3018091E1008E7F8093E100E7 +:1018A0008091E2008E7F8093E2008091E20080616F +:1018B0008093E20042E060E080E00E94A40A809110 +:1018C000F00088608093F0000E942108FF91EF9162 +:1018D000BF91AF919F918F917F916F915F914F9148 +:1018E0003F912F910F900FBE0F901F9018951F9250 +:1018F0000F920FB60F9211242F933F934F935F9344 +:101900006F937F938F939F93AF93BF93CF93DF9307 +:10191000EF93FF93C091E900CF708091EC00D82F36 +:10192000D17080FDD0E81092E9008091F000877FAF +:101930008093F00078940E94BB0C1092E900809193 +:10194000F00088608093F000CD2BCF70C093E90049 +:10195000FF91EF91DF91CF91BF91AF919F918F91C7 +:101960007F916F915F914F913F912F910F900FBE9B +:101970000F901F9018951F93CF93DF93CDB7DEB7CD +:10198000AA970FB6F894DEBF0FBECDBFE8EEF1E028 +:1019900088E08E0F9091F10091938E13FBCF0E94FF +:1019A00039088091E80083FF1FC18091E801909180 +:1019B000E901492F50E04A30510508F015C1FA01FC +:1019C000EA5AFF4F0C945D1F803881F0823809F08D +:1019D0000BC18091EC018F708093E9008091EB0046 +:1019E00085FB882780F91092E90006C08091E40108 +:1019F0009091E501911182609091E800977F90931A +:101A0000E8008093F1001092F100C8C0282F2D7FCC +:101A100009F0EAC0882319F0823061F0E5C08091B6 +:101A2000EA01813009F0E0C0933009F080E0809352 +:101A3000E5012BC08091EA01811127C08091EC0162 +:101A40008F7009F4D1C08093E9002091EB0020FF52 +:101A50001CC0933021F48091EB00806214C09091FF +:101A6000EB0090619093EB0021E030E0A90102C00F +:101A7000440F551F8A95E2F74093EA001092EA005E +:101A80008091EB0088608093EB001092E9008091D8 +:101A9000E800877F86C08111A7C01091EA011F77F7 +:101AA0008091E3008078812B8093E3008091E800AF +:101AB000877F8093E8000E94D90A8091E80080FF28 +:101AC000FCCF8091E30080688093E300111102C095 +:101AD00082E001C083E08093E70186C080588230B5 +:101AE00008F082C08091EA019091EB018C3D53E0B7 +:101AF000950779F583E08A838AE289834FB7F89462 +:101B0000DE01139620E03EE051E2E32FF0E0509337 +:101B10005700E49120FF03C0E295EF703F5FEF7044 +:101B20008E2F90E0EA3010F0C79601C0C0968D93DA +:101B30009D932F5F243149F74FBF8091E800877F45 +:101B40008093E8006AE270E0CE0101960E94E0090D +:101B500014C0AE014F5F5F4F6091EC010E942709F6 +:101B6000BC01009709F440C09091E800977F9093E2 +:101B7000E80089819A810E94430A8091E8008B776E +:101B80008093E80031C0803879F58091E800877F44 +:101B90008093E8008091E3018093F1008091E80058 +:101BA0008E778093E8000E94D90A1EC081111CC064 +:101BB0009091EA019230C0F48091E800877F809391 +:101BC000E8009093E3010E94D90A8091E30181111A +:101BD00006C08091E30087FD02C081E001C084E07F +:101BE0008093E7010E9425088091E80083FF0AC0E6 +:101BF0008091E800877F8093E8008091EB0080620D +:101C00008093EB00AA960FB6F894DEBF0FBECDBF4F +:101C1000DF91CF911F9108950895CF938091E701AF +:101C20008823A1F0C091E900CF709091EC00892F3A +:101C3000817090FD80E8C82B1092E9008091E80047 +:101C400083FD0E94BB0CCF70C093E900CF91089533 +:101C500090937301809372010895E0917201F09165 +:101C60007301309721F00190F081E02D099480E01C +:101C70000895E0917201F0917301309721F0028094 +:101C8000F381E02D09940895E0917201F0917301C0 +:101C9000309721F00480F581E02D0994089520917A +:101CA0007001309171018217930771F09093710167 +:101CB00080937001E0917201F0917301309721F0EF +:101CC0000680F781E02D0994089520916E013091EE +:101CD0006F018217930771F090936F0180936E01EB +:101CE000E0917201F0917301309721F00084F18549 +:101CF000E02D0994089508950C947B0E0E94C41958 +:101D00000E945E060C948E1A5F926F927F928F9261 +:101D10009F92AF92BF92CF92DF92EF92FF920F937A +:101D20001F93CF93DF9300D000D01F92CDB7DEB7C3 +:101D30000E94A3069FE7C92E91E0D92E04E010E08F +:101D4000AA24A394B12C502E802F0E9411074C017D +:101D5000F601729062906F01682679266114710411 +:101D6000A1F40150110978F78FEF89838A831B82D0 +:101D70000E94CD198160782F9D838C8349815A817F +:101D80006B818D810E94340F38C08091D40181FD18 +:101D90000E941A072DE030E07501022E02C0EE0C01 +:101DA000FF1C0A94E2F7C70186219721892B09F1CC +:101DB00029835A828E209F2091E0892809F490E09F +:101DC0009B830E94CD198160782F9D838C834981EC +:101DD0005A816B818D810E94340F000F111FF80111 +:101DE000EB58FE4F80819181E826F926F182E0824E +:101DF00004C02150310980F6B4CF0E94751D1091A6 +:101E000074010E942D0E1817D1F00E942D0E8093A0 +:101E100074010F900F900F900F900F90DF91CF9162 +:101E20001F910F91FF90EF90DF90CF90BF90AF90F8 +:101E30009F908F907F906F905F900C9448060F90CA +:101E40000F900F900F900F90DF91CF911F910F91F6 +:101E5000FF90EF90DF90CF90BF90AF909F908F90CA +:101E60007F906F905F900895CF93DF93CDB7DEB7EB +:101E70002B970FB6F894DEBF0FBECDBF4F835887A8 +:101E800069877A878B87DE01119686E0FD011192C2 +:101E90008A95E9F785E0FE01379601900D928A95C3 +:101EA000E1F749815A816B817C818D819E810E94FD +:101EB0007A152B960FB6F894DEBF0FBECDBFDF911B +:101EC000CF910895882309F4B9C0823859F40E944B +:101ED0002D0E81FDB3C089E30E9454180E94211980 +:101EE00089E30CC0833871F40E942D0E80FDA6C0DA +:101EF00083E50E9454180E94211983E50E949618D8 +:101F00000C942119843859F40E942D0E82FD96C03C +:101F100087E40E9454180E94211987E4EFCF9CEFB8 +:101F2000980F913A18F40E945418EACF90E2980F53 +:101F3000983050F4877091E001C0990F8A95EAF7C4 +:101F4000892F0E94DA18DCCF9BE5980F933070F44C +:101F5000853A29F0863A31F083E890E005C081E8BF +:101F600090E002C082E890E00C944F0E98E5980F44 +:101F7000933108F063C0883A39F1893A41F18A3ADD +:101F800049F18B3A51F18C3A59F18D3A61F1803B2C +:101F900069F18E3A71F18F3A79F1813B81F1823B9F +:101FA00089F1833B91F1843B99F1853BA1F1863B1B +:101FB000A9F1873BB1F1883BB9F1893BC1F18A3B7B +:101FC000C9F180E090E038C082EE90E035C089EE43 +:101FD00090E032C08AEE90E02FC085EB90E02CC0FC +:101FE00086EB90E029C087EB90E026C08CEC90E077 +:101FF00023C08DEC90E020C083E891E01DC08AE80A +:1020000091E01AC082E991E017C084E991E014C020 +:1020100081E292E011C083E292E00EC084E292E09D +:102020000BC085E292E008C086E292E005C087E23C +:1020300092E002C08AE292E00C94650E0895882333 +:1020400009F44BC0823859F40E942D0E81FF45C01F +:1020500089E30E9454180E94211989E30CC0833837 +:1020600071F40E942D0E80FF38C083E50E94541841 +:102070000E94211983E50E9496180C942119843836 +:1020800059F40E942D0E82FF28C087E40E94541844 +:102090000E94211987E4EFCF9CEF980F913A58F3F3 +:1020A00090E2980F983050F4877091E001C0990F3A +:1020B0008A95EAF7892F0E94E018DFCF9BE5980FF9 +:1020C000933020F480E090E00C944F0E885A8331D6 +:1020D00020F480E090E00C94650E0895882321F0B0 +:1020E0000E94DA180C9421190895882321F00E9487 +:1020F000E0180C94211908957F928F929F92AF92CD +:10210000BF92CF92DF92EF92FF920F931F93CF93E4 +:10211000DF931F92CDB7DEB77C01C62E772EFC0170 +:10212000058102950F70128111110E94F7180E940B +:102130004D18882379F0112369F080E28C0D8830E6 +:1021400048F082E00E9436180E944D1891E0D82E87 +:10215000D92601C0D12CE72DE295EF70F0E0E05ACE +:10216000FF4F0C945D1F872D807F072D0F708823F4 +:1021700011F00295007F112389F0002309F498C122 +:1021800080E28C0D883020F4802F0E94DA1803C082 +:10219000802F0E94EA180E9421198AC18C2D0E946A +:1021A0001F10002309F49DC180E28C0D883020F4BB +:1021B000802F0E94E01803C0802F0E94F0180E9418 +:1021C00021198FC1872D807F972D9F70803211F448 +:1021D000892F03C0892F8295807FCC2021F0F1E0E8 +:1021E000CF16A1F01DC0112339F0002319F10130E1 +:1021F00009F50E940A1975C1002319F0013009F48C +:1022000070C189830E940D19898110C1112321F0A9 +:10221000063008F066C10EC0053008F062C106C184 +:10222000112359F0002331F0F701958190FF40C14F +:102230009F7095830E946E1054C1002309F4F6C06C +:102240003DC1872D86958695837090E0009719F0A3 +:10225000019761F046C1112321F08C2D972D9370C9 +:1022600002C080E090E00E944F0E3BC1112321F09C +:102270008C2D972D937002C080E090E00E94650E37 +:1022800030C18C2D112319F00E947D1C02C00E94C8 +:10229000E51C0E946A1D25C1872D837009F052C07C +:1022A00011111FC18C2D829586958770880F880F1C +:1022B0009C2D9F70892E912CA12CB12C082E04C02E +:1022C000880C991CAA1CBB1C0A94D2F7C4FE14C02B +:1022D0000FE010E020E030E0B901A80104C0440F95 +:1022E000551F661F771F8A95D2F7CB01BA016095FB +:1022F00070958095909503C060E070E0CB01272D2C +:1023000026952695237030E02230310569F0233080 +:10231000310589F0682979298A299B2921303105DD +:1023200071F00E94C216DDC0682979298A299B298B +:102330000E94DE16D6C00E94C216C501B4010E94DA +:10234000A616CFC0112319F0872D817001C0869584 +:10235000882309F4C6C08C2D829586958770880FD6 +:10236000880F9C2D9F70892E912CA12CB12C082EAA +:1023700004C0880C991CAA1CBB1C0A94D2F7C4FE8A +:1023800014C00FE010E020E030E0B901A80104C063 +:10239000440F551F661F771F8A95D2F7CB01BA01EC +:1023A000609570958095909503C060E070E0CB01DA +:1023B000272D269526952370422F50E04230510557 +:1023C00069F04330510589F0682979298A299B29C8 +:1023D0004130510571F00E949C1783C0682979290A +:1023E0008A299B290E94B8177CC00E949C17C501AE +:1023F000B4010E94801775C08C2D90E0FC01E05E56 +:10240000F109E531F10508F04FC0E059FF4F0C9498 +:102410005D1F0C2D0F70872D8F71112321F00E94ED +:102420001917802F07CF0E943A17802F0E9475102E +:1024300058C0112341F0053008F053C0872D8F712B +:102440000E945F174EC0063008F04BC0F7CF112333 +:1024500039F0872D8F710E94191743C01123C9F3DA +:10246000872D8F710E943A173CC0112329F0872DC8 +:102470008F710E94041735C00E94FA1632C01123D2 +:1024800051F0172D1F71812F0E94191763E0812FC2 +:102490000E942D1826C081E00E943618023008F1F3 +:1024A00082E00E9436181DC0112331F0002389F20A +:1024B0008C2D0E94620F15C0002391F28C2D0E947A +:1024C0001F100FC0472D4F706C2DC7010E94800256 +:1024D0000E941E1606C0472D4F706C2DC7010E942A +:1024E0005803DD20F9F00E94291880FD1BC0F70178 +:1024F00012820E9423180E941917C7010E94A1127C +:102500000E9423180F90DF91CF911F910F91FF90A0 +:10251000EF90DF90CF90BF90AF909F908F907F9083 +:102520000C943A170F90DF91CF911F910F91FF906C +:10253000EF90DF90CF90BF90AF909F908F907F9063 +:1025400008950F931F93CF93DF93EC0188819981B6 +:102550002B813C81232BB9F09F3F11F48F3F99F0E1 +:10256000CE010E94AC02882371F0688179818A8152 +:102570000E941F188C010E94D4170E949B16B8015C +:10258000CE010E947C10DF91CF911F910F91089591 +:102590000E94F7180E9407190E94CC180E94211966 +:1025A0000E941B1E0E946A1D80E090E00E944F0E58 +:1025B00080E090E00C94650E0E94E7180C94C8121D +:1025C0000E941418292F22952F7030E02C303105ED +:1025D0004CF42A3031056CF4225031092230310597 +:1025E000A8F407C02C30310569F02F30310551F0C7 +:1025F0000DC0803F69F018F4803E40F409C0843F6C +:1026000029F406C093FB882780F9089580E0089597 +:1026100081E00895CF93DF9300D000D01F92CDB713 +:10262000DEB70F900F900F900F900F90DF91CF912A +:102630000895CF93DF9300D000D000D0CDB7DEB7A0 +:1026400026960FB6F894DEBF0FBECDBFDF91CF91B7 +:1026500008951F93CF93DF93C0917F0116E080917F +:102660008001C81799F0D0E01C9FF0011D9FF00D6C +:102670001124EF57FE4F4081518162817381848123 +:1026800095810E9419132196C770E9CFDF91CF91F0 +:102690001F9108954091B1015091B2016091B30131 +:1026A0007091B4018091B5019091B6010C94191309 +:1026B0008091B60182958F7009F054C08091B3016A +:1026C000882309F44FC080917F01A091800160911F +:1026D000B1017091B2014091B4015091B501B6E0E1 +:1026E0008A1709F43FC090E041155105C1F17F3FC1 +:1026F00011F46F3FA1F1B89FF001B99FF00D1124C3 +:10270000EF57FE4F218172132AC02081621327C028 +:102710002281211124C0238134812417350710F42C +:1027200021503109241B350B283C3105C0F4209180 +:10273000B6012F7020612093B60126E0289FF0019A +:10274000299FF00D1124EA57FE4F80818F70806120 +:10275000808381EB91E00E94A1120C9429130196D1 +:102760008770BECF0895CF92DF92EF92FF920F93C2 +:102770001F93CF93DF93CDB7DEB762970FB6F89470 +:10278000DEBF0FBECDBF8C0185E0F801DE011D96D6 +:1027900001900D928A95E1F7D8014C9111965C91C8 +:1027A000119712966C9112971396CD90DC90149716 +:1027B0003091B1017091B2018091B4019091B50155 +:1027C000009709F46BC17F3F19F43F3F09F466C1DC +:1027D000E090B301EE2009F4C0C02091B601C81604 +:1027E000D90628F0F601E81BF90BCF0104C080954B +:1027F00090958C0D9D1DFF24F394883C910578F0F5 +:10280000F12C207F09F0C6C07C2DD98AC88A89891D +:102810000E940A1381EB91E00E94A112B1C0822FA5 +:10282000807F09F046C0751314C0341312C06111C3 +:1028300010C02F7020612093B6010E944A1381EBD3 +:1028400091E00E94A1128091B601D80115968C9357 +:102850002EC0CD2819F15F3F11F44F3FF9F0F62E4D +:1028600061111CC080917F012091800136E08217A8 +:1028700009F45AC090E0389FF001399FF00D1124FF +:10288000EF57FE4F7181571306C07081471303C085 +:102890007281711103C001968770E9CFF62E66230D +:1028A00009F418C18091B60181608093B601F12CC2 +:1028B00011C1751308C0341306C0611104C08091A2 +:1028C000B601D801C3C04D875E878D859E856A8B12 +:1028D0000E94E0126A898823E1F16623D1F12091F8 +:1028E000B601822F82958F7090E0029774F08091EC +:1028F000B1019091B20198878F831986DB86CA86D1 +:102900002C87CE0107960E94A11286E0F801A1EB68 +:10291000B1E001900D928A95E1F70E9458130E9450 +:102920004A13FF24F394D6C04D875E878D859E851C +:102930000E941418292F22952F7030E02230310583 +:102940000CF0BCC09F7009F0B6C0805E883008F4FF +:10295000C1C0C8010E94A112E4CFC816D90608F46C +:1029600053C0F601E81BF90BCF01883C910508F430 +:1029700050C0F12C7C2DD98AC88A89890E940A13FB +:10298000E1EBF1E086E0DF011D928A95E9F70E9414 +:102990004A13A0C0751314C0341312C0611110C0C3 +:1029A0008091B601F8018583C8010E94A11286E0DA +:1029B000E1EBF1E0DF011D928A95E9F7FE2C8AC078 +:1029C0004D875E878D859E856A8B0E94E0126A899D +:1029D000882309F4BECF662309F4BBCF2091B6014A +:1029E000822F82958F7090E002970CF48ECF8091A9 +:1029F000B1019091B2019A8389831B82DD82CC82DE +:102A00002E83CE0101967FCF809590958C0D9D1DD4 +:102A1000ACCFF62E662309F49CCF75132EC0341369 +:102A20002CC02091B60120FD1FC0822F82958F708F +:102A3000D9F0D80115962C9315978F3049F08F5FF8 +:102A4000982F9295907F822F8F70892B15968C935B +:102A5000C8010E94A11286E0F801A1EBB1E001904B +:102A60000D928A95E1F793CF86E0F801A1EBB1E0F2 +:102A700001900D928A95E1F72DC04D875E878D8577 +:102A80009E850E94E012811140CF8091B601816045 +:102A90008093B601C8010E94A1121CC0662309F4EC +:102AA00058CF4D875E878D859E850E94E0128823D2 +:102AB00009F44FCF2ACF811148CF0CC02430310503 +:102AC0000CF047CF9F7009F440CFF8019581907FBB +:102AD00009F03BCF8F2D62960FB6F894DEBF0FBE84 +:102AE000CDBFDF91CF911F910F91FF90EF90DF90BD +:102AF000CF9008951F93CF93DF93CDB7DEB72C9778 +:102B00000FB6F894DEBF0FBECDBF4F8358876987DD +:102B10007A878B879C87CE0107960E94B313882300 +:102B200069F08F8198852A853B85232BF1F19F3FA2 +:102B300009F063C08F3F09F060C037C086E0FE0136 +:102B40003796DE01119601900D928A95E1F76F811B +:102B50007885EA85FB85309741F17F3F11F46F3F1F +:102B600021F12091800130E0C901019687709927F9 +:102B700040917F0150E08417950709F447C06983AD +:102B80007A83FD83EC8396E0929FD001939FB00DF2 +:102B90001124AF57BE4FFE01319601900D929A95C8 +:102BA000E1F7809380010E94291316E080917F0154 +:102BB000909180018917C1F1189FC00111248F578E +:102BC0009E4F0E94B313882379F1E0917F011E9FED +:102BD000F0011124EF57FE4F4081518162817381D2 +:102BE000848195810E94191380917F0190E0019664 +:102BF0008770992780937F01D9CF4F815885698548 +:102C00007A858B859C850E941913CFCF0E94DC1298 +:102C10001092800110927F01E1EBF1E086E0DF018C +:102C20001D928A95E9F7C1CF2C960FB6F894DEBFB6 +:102C30000FBECDBFDF91CF911F910895EF92FF920C +:102C40000F931F93CF93DF938C01009709F46CC00F +:102C5000F12CEE24E394E8012196F8018491843765 +:102C600040F4843008F051C0813081F0823019F195 +:102C70005BC0853709F444C0A8F19CE7980F9037F2 +:102C800008F052C08F770E941F1041C00E5F1F4F87 +:102C9000FE01C49180E28C0F883048F4C7708E2DFD +:102CA00001C0880FCA95EAF70E94FA1814C08C2F49 +:102CB0000E94620F2DC00E5F1F4FFE01C49180E283 +:102CC0008C0F883058F4C7708E2D01C0880FCA95BC +:102CD000EAF70E9400190E9421191AC08C2F0E9445 +:102CE0001F1016C00E5F1F4FFE01C491CC2381F050 +:102CF0008FE99FE00197F1F700C00000C150F6CFC7 +:102D00000E5F1F4FFE01F49003C00E94620F8E0100 +:102D10008F2D882309F49FCFEFE9FFE03197F1F77A +:102D200000C000008150F5CFDF91CF911F910F912E +:102D3000FF90EF90089508956093BB017093BC01DC +:102D40008093BD019093BE010C94C8120F931F9302 +:102D50000091BB011091BC012091BD013091BE01D9 +:102D6000DC01CB01802B912BA22BB32B8093BB01D9 +:102D70009093BC01A093BD01B093BE011F910F9130 +:102D80000C94C8120F931F930091BB011091BC01CA +:102D90002091BD013091BE01DC01CB018023912344 +:102DA000A223B3238093BB019093BC01A093BD01E8 +:102DB000B093BE011F910F910C94C8120F931F93F3 +:102DC0000091BB011091BC012091BD013091BE0169 +:102DD000DC01CB0180279127A227B3278093BB0179 +:102DE0009093BC01A093BD01B093BE011F910F91C0 +:102DF0000C94C8121092B7011092B8011092B90148 +:102E00001092BA010C94C81241E050E060E070E00A +:102E100004C0440F551F661F771F8A95D2F7409351 +:102E2000B7015093B8016093B9017093BA010C9443 +:102E3000C81241E050E060E070E004C0440F551F4C +:102E4000661F771F8A95D2F78091B7019091B801DC +:102E5000A091B901B091BA01482B592B6A2B7B2B59 +:102E60004093B7015093B8016093B9017093BA01D0 +:102E70000C94C81241E050E060E070E004C0440FE0 +:102E8000551F661F771F8A95D2F74095509560951C +:102E900070958091B7019091B801A091B901B0915E +:102EA000BA01482359236A237B234093B7015093E7 +:102EB000B8016093B9017093BA010C94C81241E053 +:102EC00050E060E070E004C0440F551F661F771F9C +:102ED0008A95D2F78091B7019091B801A091B9017C +:102EE000B091BA01482759276A277B274093B70139 +:102EF0005093B8016093B9017093BA010C94C81251 +:102F00000F931F930091B7011091B8012091B9015F +:102F10003091BA01DC01CB01802B912BA22BB32B7A +:102F20008093B7019093B801A093B901B093BA010F +:102F30001F910F910C94C8120F931F930091B7012A +:102F40001091B8012091B9013091BA01DC01CB0197 +:102F500080239123A223B3238093B7019093B801D8 +:102F6000A093B901B093BA011F910F910C94C812AC +:102F70000F931F930091B7011091B8012091B901EF +:102F80003091BA01DC01CB0180279127A227B3271A +:102F90008093B7019093B801A093B901B093BA019F +:102FA0001F910F910C94C8120895CF92DF92EF9267 +:102FB000FF920F931F93CF93DF938C01C090BB01BF +:102FC000D090BC01E090BD01F090BE018091B701AE +:102FD0009091B801A091B901B091BA01C82AD92A3B +:102FE000EA2AFB2ACFE1D0E0D701C6010C2E04C0AB +:102FF000B695A795979587950A94D2F780FF06C056 +:10300000B8018C2F0E94AE05019721F4219760F73B +:1030100080E001C08C2FDF91CF911F910F91FF9025 +:10302000EF90DF90CF900895CF93DF93EC010E9453 +:10303000D517BE010E94AE05DF91CF910895CB0157 +:103040000E94141808958091BF01859585958595F6 +:1030500008958091BF018770089598E0899F90013D +:103060001124262B2093BF010C9419172091BF0126 +:10307000809582238093BF01982F977069F430E088 +:10308000482F552747FD50952417350729F085957A +:10309000859585950C943A1708959091BF01977086 +:1030A00081E009F480E0089590910B01992321F0CB +:1030B00090910C01911109C020910D0130910E01E8 +:1030C000F90132969FEF40E01FC0982F9695969594 +:1030D00096959F3050F5E0910D01F0910E01E90FAA +:1030E000F11D877021E030E0A90102C0440F551F97 +:1030F0008A95E2F7CA019181892B818308959F3FC8 +:1031000039F04F5F4E3041F051915813F8CF0DC058 +:103110005111F7CF942FF5CF9F3F39F0F901E90F07 +:10312000F11D97FDFA9582830895089590910B0102 +:10313000992321F090910C01911109C020910D016A +:1031400030910E01F9013296205F3F4F1FC0982F3A +:103150009695969596959F30F0F4E0910D01F0913B +:103160000E01E90FF11D877021E030E0A90102C0D6 +:10317000440F551F8A95E2F7CA01809591818923F2 +:10318000818308953196E217F30729F0908198130F +:10319000F9CF1082F7CF089581E090E0E0910D0122 +:1031A000F0910E01E80FF91F108201968031910510 +:1031B000A9F708959091D301892B8093D3010895A5 +:1031C00080959091D30189238093D3010895109223 +:1031D000D30108959091D201892B8093D201089553 +:1031E00080959091D20189238093D2010895109205 +:1031F000D20108959091D101892B8093D101089536 +:1032000080959091D10189238093D10108951092E6 +:10321000D10108958093C00108951092C0010895CE +:1032200080910D0190910E01FC0131969C01205F6F +:103230003F4F80E0919191118F5FE217F307D1F733 +:103240000895E0910D01F0910E018091D3018083EA +:10325000E0910D01F0910E0190818091D201892BB6 +:103260008083E0910D01F0910E0190818091D10158 +:10327000892B80838091C001882361F0E0910D014A +:10328000F0910E019081892B80830E941019811189 +:103290001092C00180910D0190910E010C94390E95 +:1032A00020E0009739F0AC01415051098423952367 +:1032B0002F5FF7CF822F08958091E701843021F1AD +:1032C0001092D50120E488E190E00FB6F894A8951B +:1032D000809360000FBE2093600080E00E9448064B +:1032E00083B7817F846083BF83B7816083BF789415 +:1032F000889583B78E7F83BF88E10FB6F89480935B +:103300006000109260000FBE0895089508950E9415 +:1033100085190E94A3060E9486190E941B0791E04E +:10332000811101C090E0892F08950E94DC120E9453 +:103330002D0E0C9448061F920F920FB60F92112477 +:103340008F939F93AF93BF938091D501811113C049 +:103350008091D6019091D701A091D801B091D90167 +:103360004196A11DB11D8093D6019093D701A093E2 +:10337000D801B093D901BF91AF919F918F910F90D8 +:103380000FBE0F901F90189582E084BD93E095BD0D +:103390009AEF97BD80936E0008952FB7F8948091AF +:1033A000D6019091D701A091D801B091D9012FBF3A +:1033B0000895CF92DF92EF92FF920F931F932FB752 +:1033C000F8944091D6015091D7016091D801709145 +:1033D000D9012FBF6A017B01EE24FF248C0120E07C +:1033E00030E0C016D106E206F30610F44150510950 +:1033F0009A01281B390BC9011F910F91FF90EF9083 +:10340000DF90CF9008951F920F920FB60F92112464 +:103410008F939F93AF93BF938091D6019091D701E3 +:10342000A091D801B091D9010196A11DB11D809341 +:10343000D6019093D701A093D801B093D901BF9141 +:10344000AF919F918F910F900FBE0F901F90189585 +:103450000E942A0BF8942FEF87EA91E621508040D2 +:103460009040E1F700C0000087E090EBDC01809322 +:10347000F1019093F201A093F301B093F4019CE069 +:1034800088E10FB6F894A895809360000FBE9093E2 +:103490006000FFCFCF92DF92EF92FF920F931F93C6 +:1034A000CF93DF93D82FC4E0EE24E394F12C8C2F3C +:1034B0000E9411076C010DE010E09701002E02C080 +:1034C000220F331F0A94E2F72C213D21232B49F0D0 +:1034D000602F7C2F80E00E945903D81302C081E046 +:1034E00006C00150110948F7C15008F780E0DF918C +:1034F000CF911F910F91FF90EF90DF90CF900895A3 +:10350000CF93C82F8CE20E944A1A882321F08C2F77 +:10351000CF910C944A1A80E0CF910895CF930E94E6 +:10352000D51B811102C00E94BB1BC5E6C15049F0EA +:103530000E94A3068FE39CE90197F1F700C0000009 +:10354000F5CF89E20E94801A811113C18AE20E949C +:10355000801A81110E94BB1B85E00E94801A811194 +:103560000E94281A0E94E01B8093D40187E00E94E9 +:10357000801A8823A9F18BE10E94801A882351F0D8 +:103580008091D40181FB222720F991E0922790FBC2 +:1035900081F90EC08EE00E94801A882361F080912C +:1035A000D40182FB222720F991E0922790FB82F937 +:1035B0008093D40115C080E10E94801A9091D401BB +:1035C000882341F093FB222720F981E0822780FBAA +:1035D00093F904C0892F809580FB90F99093D401D2 +:1035E0008091D4010E94E41B0E94F21B8093F001A1 +:1035F00080EE0E94801A882341F08091F001982F7C +:10360000909590FB80F98093F00189E30E94801AE5 +:10361000882359F08091F00181FB222720F991E065 +:10362000922790FB81F98093F00182EE0E94801A2C +:10363000882359F08091F00182FB222720F991E044 +:10364000922790FB82F98093F00186EE0E94801A07 +:10365000882359F08091F00183FB222720F991E023 +:10366000922790FB83F98093F00183EE0E94801AE9 +:10367000882359F08091F00184FB222720F991E002 +:10368000922790FB84F98093F00185E30E94801AD1 +:10369000882359F08091F00185FB222720F991E0E1 +:1036A000922790FB85F98093F00181E30E94801AB4 +:1036B000882359F08091F00186FB222720F991E0C0 +:1036C000922790FB86F98093F00181E10E94801A95 +:1036D000882359F08091F00187FB222720F991E09F +:1036E000922790FB87F98093F0018091F0010E946E +:1036F000F61B8091F00187FB882780F980930C01ED +:1037000087E20E94801AC82F8EE10E94801A8111E0 +:10371000C2608FE10E94801A8111C46080E20E9421 +:10372000801A8111C86081E20E94801A8111C061F3 +:1037300082E20E94801A8111C06283E20E94801A94 +:103740008111C06484E20E94801A882311F0C0684D +:1037500002C0CC2329F08C2F0E94ED1B6C2F03C0DC +:103760000E94E91B682F70E080E090E0CF910C94FC +:103770009C16CF9108956DEE7EEF80E090E00E9460 +:10378000971F60E082E090E00E94851F60E083E088 +:1037900090E00E94851F60E084E090E00E94851F19 +:1037A00060E085E090E00C94851F80E090E00E944E +:1037B0007F1F21E08D3E9E4F09F020E0822F08956B +:1037C00082E090E00C94771F682F82E090E00C94E8 +:1037D000851F83E090E00C94771F682F83E090E0D2 +:1037E0000C94851F84E090E00C94771F682F84E090 +:1037F00090E00C94851F8091DC0180FF0BC06091EC +:10380000120185E0689FB001112475956795759543 +:1038100067952BC081FF09C06091120185E0689F08 +:10382000B00111247595679520C082FF07C0609193 +:10383000120185E0689FB001112417C09091DD014D +:103840009923D1F060911101961788F72091120108 +:1038500085E0289F90011124929FA001939F500D15 +:10386000112470E0CA010E94491F6038710540F4BC +:103870006115710539F002C065E070E0862F08958A +:103880008FE7089581E008958091DC0180FF08C0F2 +:103890006091100170E0759567957595679521C0E9 +:1038A00081FF06C06091100170E07595679519C0A1 +:1038B00082FF04C06091100170E010C09091DD01A2 +:1038C0009923C1F060910F019617A0F78091100124 +:1038D000899FC001112470E00E94491F6038710562 +:1038E00028F46115710521F0862F08958FE708955A +:1038F00081E0089561E070E0F4CF803F21F40E9400 +:10390000FB1B819504C0813F29F40E94FB1B80931F +:10391000E0010895823F21F40E94FB1B819504C0C1 +:10392000833F29F40E94FB1B8093DF010895893FA8 +:1039300019F40E94441C05C08A3F31F40E94441CC3 +:1039400081958093E10108958B3F21F40E94441CEE +:10395000819504C08C3F29F40E94441C8093E201AD +:103960000895843F21F48091DE01816017C0853F76 +:1039700021F48091DE01826011C0863F21F48091A4 +:10398000DE0184600BC0873F21F48091DE018860F6 +:1039900005C0883F31F48091DE0180618093DE01B3 +:1039A00008958D3F21F48091DC0181600BC08E3F32 +:1039B00021F48091DC01826005C08F3F29F4809161 +:1039C000DC0184608093DC010895803F39F48091AC +:1039D000E00187FF6CC01092E00169C0813F29F4CB +:1039E0008091E0011816BCF362C09091DF01823F24 +:1039F00029F497FF5CC01092DF0159C0833F19F48E +:103A00001916CCF354C0893F41F48091E101181696 +:103A10000CF04DC01092E1014AC08A3F29F4809118 +:103A2000E10187FF44C0F6CF8B3F39F48091E2017A +:103A300087FF3DC01092E2013AC08C3F29F480918B +:103A4000E2011816BCF333C0843F21F48091DE01FB +:103A50008E7F17C0853F21F48091DE018D7F11C0DC +:103A6000863F21F48091DE018B7F0BC0873F21F4DC +:103A70008091DE01877F05C0883F31F48091DE01AF +:103A80008F7E8093DE0113C08D3F21F48091DC0195 +:103A90008E7F0BC08E3F21F48091DC018D7F05C0AD +:103AA0008F3F29F48091DC018B7F8093DC01809132 +:103AB000DF0181110EC08091E00181110AC0809167 +:103AC000E101811106C08091E201811102C01092D2 +:103AD000DD0108958EED91E00E94440E0E94CD1903 +:103AE0009093DB018093DA0108951F93CF93DF93C6 +:103AF0008091DA019091DB010E94D919AC0190917B +:103B0000DD01992321F02091130130E006C02091BE +:103B100014018AE0289F900111244217530708F4EA +:103B200086C08091DF01C091E001D091E101109148 +:103B3000E201811107C0C11176C0D11174C0111109 +:103B400072C075C09F3F19F09F5F9093DD011816FA +:103B500024F40E94FB1B8093DF018091DF0187FF2B +:103B600005C00E94FB1B81958093DF011C1624F485 +:103B70000E94FB1B8093E0018091E00187FF05C05C +:103B80000E94FB1B81958093E0016091DF01662319 +:103B900039F1C091E001CC2319F1772767FD7095C9 +:103BA000872F972F0E945A1E23E333E343E35FE3FB +:103BB0000E94BE1E0E94271E6093DF016C2F772794 +:103BC00067FD7095872F972F0E945A1E23E333E3DA +:103BD00043E35FE30E94BE1E0E94271E6093E00144 +:103BE0001D1624F40E94441C8093E1018091E101A0 +:103BF00087FF05C00E94441C81958093E101111646 +:103C000024F40E94441C8093E2018091E20187FF2A +:103C100005C00E94441C81958093E201DF91CF9101 +:103C20001F910C946A1D9F3F09F08ECF96CFDF91B4 +:103C3000CF911F910895EEEDF1E085E0DF011D9237 +:103C40008A95E9F71092DD011092DC01089504D005 +:103C50006894B1118DC0089570D088F09F5790F08E +:103C6000B92F9927B751A0F0D1F0660F771F881FA1 +:103C7000991F1AF0BA95C9F712C0B13081F077D008 +:103C8000B1E0089574C0672F782F8827B85F39F0A6 +:103C9000B93FCCF3869577956795B395D9F73EF400 +:103CA00090958095709561957F4F8F4F9F4F0895A8 +:103CB000E89409C097FB3EF49095809570956195C6 +:103CC0007F4F8F4F9F4F9923A9F0F92F96E9BB277C +:103CD0009395F695879577956795B795F111F8CFF8 +:103CE000FAF4BB0F11F460FF1BC06F5F7F4F8F4F63 +:103CF0009F4F16C0882311F096E911C0772321F059 +:103D00009EE8872F762F05C0662371F096E8862FF0 +:103D100070E060E02AF09A95660F771F881FDAF747 +:103D2000880F9695879597F9089557FD9058440FF9 +:103D3000551F59F05F3F71F04795880F97FB991F0A +:103D400061F09F3F79F087950895121613061406C7 +:103D5000551FF2CF4695F1DF08C016161706180654 +:103D6000991FF1CF86957105610508940895E8942F +:103D7000BB2766277727CB0197F908950BD078C02A +:103D800069D028F06ED018F0952309F05AC05FC0B2 +:103D90001124EECFCADFA0F3959FD1F3950F50E029 +:103DA000551F629FF001729FBB27F00DB11D639FED +:103DB000AA27F00DB11DAA1F649F6627B00DA11D93 +:103DC000661F829F2227B00DA11D621F739FB00D39 +:103DD000A11D621F839FA00D611D221F749F3327A9 +:103DE000A00D611D231F849F600D211D822F762F42 +:103DF0006A2F11249F5750408AF0E1F088234AF03F +:103E0000EE0FFF1FBB1F661F771F881F915050408A +:103E1000A9F79E3F510570F014C0AACF5F3FECF3A5 +:103E2000983EDCF3869577956795B795F795E79576 +:103E30009F5FC1F7FE2B880F911D9695879597F987 +:103E4000089597F99F6780E870E060E008959FEF1C +:103E500080EC089500240A94161617061806090621 +:103E6000089500240A9412161306140605060895F0 +:103E7000092E0394000C11F4882352F0BB0F40F478 +:103E8000BF2B11F460FF04C06F5F7F4F8F4F9F4FB8 +:103E9000089597FB072E16F4009407D077FD09D0FC +:103EA0000E94631F07FC05D03EF4909581959F4FBB +:103EB0000895709561957F4F0895EE0FFF1F05904F +:103EC000F491E02D0994AA1BBB1B51E107C0AA1F66 +:103ED000BB1FA617B70710F0A61BB70B881F991FAB +:103EE0005A95A9F780959095BC01CD010895F9994F +:103EF000FECF92BD81BDF89A992780B50895A8E1BB +:103F0000B0E042E050E00C949F1F262FF999FECFBD +:103F100092BD81BDF89A019700B4021639F01FBA1C +:103F200020BD0FB6F894FA9AF99A0FBE089501963B +:103F3000272F0E94861F0C94851FDC01CB01FC01FA +:103F4000F999FECF06C0F2BDE1BDF89A319600B4F2 +:0E3F50000D9241505040B8F70895F894FFCFFD +:103F5E00FF3107BF079C07680734070101C101281D +:103F6E0008140A321E0F1F6C76666349137353438F +:103F7E0079693309192939593F4D36391104C4036A +:0C3F8E008E035503E80201031A033303FD +:00000001FF diff --git a/keyboards/gh60/keymaps/default/keymap.c b/keyboards/gh60/keymaps/default/keymap.c new file mode 100644 index 000000000..3622be41b --- /dev/null +++ b/keyboards/gh60/keymaps/default/keymap.c @@ -0,0 +1,69 @@ +#include "gh60.h" +#include "action_layer.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: qwerty */ + KEYMAP( + ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, GRV, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSPC, \ + CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT,NO, ENT, \ + LSFT,FN1, Z, X, C, V, B, N, M, COMM,DOT, SLSH,FN0, RSFT, \ + LCTL,LGUI,LALT, SPC, BSLS,RALT,RGUI,APP, RCTL), + /* 1: fn */ + KEYMAP( + ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ + TRNS,TRNS,UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS,TRNS), + /* 2: arrows */ + KEYMAP( + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,UP, \ + TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,LEFT,DOWN,RGHT), +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay + [1] = ACTION_LAYER_TOGGLE(2), // toggle arrow overlay +}; + +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; +}; + +void matrix_scan_user(void) { + +//Layer LED indicators + uint32_t layer = layer_state; + + if (layer & (1<<1)) { + gh60_wasd_leds_on(); + gh60_fn_led_on(); + } else { + gh60_wasd_leds_off(); + gh60_fn_led_off(); + } + + if (layer & (1<<2)) { + gh60_poker_leds_on(); + gh60_esc_led_on(); + } else { + gh60_poker_leds_off(); + gh60_esc_led_off(); + } + +}; diff --git a/keyboards/gh60/pinout.txt b/keyboards/gh60/pinout.txt new file mode 100644 index 000000000..3787f938e --- /dev/null +++ b/keyboards/gh60/pinout.txt @@ -0,0 +1,18 @@ + /* Column pin configuration + * col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 + * pin: F0 F1 E6 C7 C6 B6 D4 B1 B7 B5 B4 D7 D6 B3 (Rev.C) + */ + + /* Row pin configuration + * row: 0 1 2 3 4 + * pin: D0 D1 D2 D3 D5 + */ + + GPIO pads + 0 F7 WASD LEDs + 1 F6 ESC LED + 2 F5 FN LED + 3 F4 POKER Arrow LEDs + + B2 Capslock LED + B0 not connected \ No newline at end of file diff --git a/keyboards/hhkb/Makefile b/keyboards/hhkb/Makefile new file mode 100644 index 000000000..53eece396 --- /dev/null +++ b/keyboards/hhkb/Makefile @@ -0,0 +1,86 @@ + + +# project specific files +SRC = matrix.c + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +#OPT_DEFS += -DBOOTLOADER_SIZE=4096 + +# as per original hasu settings +OPT_DEFS += -DBOOTLOADER_SIZE=512 + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= yes # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +CUSTOM_MATRIX ?= yes # Custom matrix file for the HHKB +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend +# NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality +# MIDI_ENABLE ?= YES # MIDI controls +# UNICODE_ENABLE ?= YES # Unicode +# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID + + + +ifndef QUANTUM_DIR + include ../../Makefile +endif + +debug-on: EXTRAFLAGS += -DDEBUG -DDEBUG_ACTION +debug-on: all + +debug-off: EXTRAFLAGS += -DNO_DEBUG -DNO_PRINT +debug-off: OPT_DEFS := $(filter-out -DCONSOLE_ENABLE,$(OPT_DEFS)) +debug-off: all diff --git a/keyboards/hhkb/README.md b/keyboards/hhkb/README.md new file mode 100644 index 000000000..2bfec7aa5 --- /dev/null +++ b/keyboards/hhkb/README.md @@ -0,0 +1,180 @@ +hhkb_qmk keyboard firmware +====================== + +## Quantum MK Firmware + +You have access to a bunch of goodies! Check out the Makefile to enable/disable some of the features. Uncomment the `#` to enable them. Setting them to `no` does nothing and will only confuse future you. + + BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality + MIDI_ENABLE = yes # MIDI controls + # UNICODE_ENABLE = yes # Unicode support - this is commented out, just as an example. You have to use #, not // + BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID + +## Quick aliases to common actions + +Your keymap can include shortcuts to common operations (called "function actions" in tmk). + +### Switching and toggling layers + +`MO(layer)` - momentary switch to *layer*. As soon as you let go of the key, the layer is deactivated and you pop back out to the previous layer. When you apply this to a key, that same key must be set as `KC_TRNS` on the destination layer. Otherwise, you won't make it back to the original layer when you release the key (and you'll get a keycode sent). You can only switch to layers *above* your current layer. If you're on layer 0 and you use `MO(1)`, that will switch to layer 1 just fine. But if you include `MO(3)` on layer 5, that won't do anything for you -- because layer 3 is lower than layer 5 on the stack. + +`LT(layer, kc)` - momentary switch to *layer* when held, and *kc* when tapped. Like `MO()`, this only works upwards in the layer stack (`layer` must be higher than the current layer). + +`TG(layer)` - toggles a layer on or off. As with `MO()`, you should set this key as `KC_TRNS` in the destination layer so that tapping it again actually toggles back to the original layer. Only works upwards in the layer stack. + +### Fun with modifier keys + +* `LSFT(kc)` - applies left Shift to *kc* (keycode) - `S(kc)` is an alias +* `RSFT(kc)` - applies right Shift to *kc* +* `LCTL(kc)` - applies left Control to *kc* +* `RCTL(kc)` - applies right Control to *kc* +* `LALT(kc)` - applies left Alt to *kc* +* `RALT(kc)` - applies right Alt to *kc* +* `LGUI(kc)` - applies left GUI (command/win) to *kc* +* `RGUI(kc)` - applies right GUI (command/win) to *kc* + +You can also chain these, like this: + + LALT(LCTL(KC_DEL)) -- this makes a key that sends Alt, Control, and Delete in a single keypress. + +The following shortcuts automatically add `LSFT()` to keycodes to get commonly used symbols. Their long names are also available and documented in `/quantum/keymap_common.h`. + + KC_TILD ~ + KC_EXLM ! + KC_AT @ + KC_HASH # + KC_DLR $ + KC_PERC % + KC_CIRC ^ + KC_AMPR & + KC_ASTR * + KC_LPRN ( + KC_RPRN ) + KC_UNDS _ + KC_PLUS + + KC_LCBR { + KC_RCBR } + KC_PIPE | + KC_COLN : + +`MT(mod, kc)` - is *mod* (modifier key - MOD_LCTL, MOD_LSFT) when held, and *kc* when tapped. In other words, you can have a key that sends Esc (or the letter O or whatever) when you tap it, but works as a Control key or a Shift key when you hold it down. + +These are the values you can use for the `mod` in `MT()` (right-hand modifiers are not available): + + * MOD_LCTL + * MOD_LSFT + * MOD_LALT + * MOD_LGUI + +These can also be combined like `MOD_LCTL | MOD_LSFT` e.g. `MT(MOD_LCTL | MOD_LSFT, KC_ESC)` which would activate Control and Shift when held, and send Escape when tapped. + +We've added shortcuts to make common modifier/tap (mod-tap) mappings more compact: + + * `CTL_T(kc)` - is LCTL when held and *kc* when tapped + * `SFT_T(kc)` - is LSFT when held and *kc* when tapped + * `ALT_T(kc)` - is LALT when held and *kc* when tapped + * `GUI_T(kc)` - is LGUI when held and *kc* when tapped + * `ALL_T(kc)` - is Hyper (all mods) when held and *kc* when tapped. To read more about what you can do with a Hyper key, see [this blog post by Brett Terpstra](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) + +### Temporarily setting the default layer + +`DF(layer)` - sets default layer to *layer*. The default layer is the one at the "bottom" of the layer stack - the ultimate fallback layer. This currently does not persist over power loss. When you plug the keyboard back in, layer 0 will always be the default. It is theoretically possible to work around that, but that's not what `DF` does. + +### Remember: These are just aliases + +These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk ACTION_* functions, please see the [TMK documentation](https://github.com/jackhumbert/qmk_firmware/blob/master/tmk_core/doc/keymap.md#2-action). + +Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - the benefit here is being able to use more than 32 function actions (up to 4096), if you happen to need them. + +## Macro shortcuts: Send a whole string when pressing just one key + +Instead of using the `ACTION_MACRO` function, you can simply use `M(n)` to access macro *n* - *n* will get passed into the `action_get_macro` as the `id`, and you can use a switch statement to trigger it. This gets called on the keydown and keyup, so you'll need to use an if statement testing `record->event.pressed` (see keymap_default.c). + +```c +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // this is the function signature -- just copy/paste it into your keymap file as it is. +{ + switch(id) { + case 0: // this would trigger when you hit a key mapped as M(0) + if (record->event.pressed) { + return MACRO( I(255), T(H), T(E), T(L), T(L), W(255), T(O), END ); // this sends the string 'hello' when the macro executes + } + break; + } + return MACRO_NONE; +}; +``` +A macro can include the following commands: + +* I() change interval of stroke in milliseconds. +* D() press key. +* U() release key. +* T() type key(press and release). +* W() wait (milliseconds). +* END end mark. + +So above you can see the stroke interval changed to 255ms between each keystroke, then a bunch of keys being typed, waits a while, then the macro ends. + +Note: Using macros to have your keyboard send passwords for you is a bad idea. + +### Additional keycode aliases for software-implemented layouts (Colemak, Dvorak, etc) + +Everything is assuming you're in Qwerty (in software) by default, but there is built-in support for using a Colemak or Dvorak layout by including this at the top of your keymap: + + #include "keymap_.h" + +Where is "colemak" or "dvorak". After including this line, you will get access to: + + * `CM_*` for all of the Colemak-equivalent characters + * `DV_*` for all of the Dvorak-equivalent characters + +These implementations assume you're using Colemak or Dvorak on your OS, not on your keyboard - this is referred to as a software-implemented layout. If your computer is in Qwerty and your keymap is in Colemak or Dvorak, this is referred to as a firmware-implemented layout, and you won't need these features. + +To give an example, if you're using software-implemented Colemak, and want to get an `F`, you would use `CM_F` - `KC_F` under these same circumstances would result in `T`. + +## Additional language support + +In `quantum/keymap_extras/`, you'll see various language files - these work the same way as the alternative layout ones do. Most are defined by their two letter country/language code followed by an underscore and a 4-letter abbreviation of its name. `FR_UGRV` which will result in a `ù` when using a software-implemented AZERTY layout. It's currently difficult to send such characters in just the firmware (but it's being worked on - see Unicode support). + +## Unicode support + +You can currently send 4 hex digits with your OS-specific modifier key (RALT for OSX with the "Unicode Hex Input" layout) - this is currently limited to supporting one OS at a time, and requires a recompile for switching. 8 digit hex codes are being worked on. The keycode function is `UC(n)`, where *n* is a 4 digit hexidecimal. Enable from the Makefile. + +## Other firmware shortcut keycodes + +* `RESET` - puts the MCU in DFU mode for flashing new firmware (with `make dfu`) +* `DEBUG` - the firmware into debug mode - you'll need hid_listen to see things +* `BL_ON` - turns the backlight on +* `BL_OFF` - turns the backlight off +* `BL_` - sets the backlight to level *n* +* `BL_INC` - increments the backlight level by one +* `BL_DEC` - decrements the backlight level by one +* `BL_TOGG` - toggles the backlight +* `BL_STEP` - steps through the backlight levels + +Enable the backlight from the Makefile. + +## MIDI functionalty + +This is still a WIP, but check out `quantum/keymap_midi.c` to see what's happening. Enable from the Makefile. + +## Bluetooth functionality + +This requires [some hardware changes](https://www.reddit.com/r/MechanicalKeyboards/comments/3psx0q/the_planck_keyboard_with_bluetooth_guide_and/?ref=search_posts), but can be enabled via the Makefile. The firmware will still output characters via USB, so be aware of this when charging via a computer. It would make sense to have a switch on the Bluefruit to turn it off at will. + +## Building + +Download or clone the whole firmware and navigate to the keyboards/planck folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use `make dfu` to program your PCB once you hit the reset button. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default +To build with the default keymap, simply run `make`. + +### Other Keymaps +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a file in the keymaps folder named `.c` and see keymap document (you can find in top README.md) and existent keymap files. + +To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: +``` +$ make KEYMAP=[default|jack|] +``` +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboards/hhkb/config.h b/keyboards/hhkb/config.h new file mode 100644 index 000000000..ee66e4457 --- /dev/null +++ b/keyboards/hhkb/config.h @@ -0,0 +1,71 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0xCAFE +#define DEVICE_VER 0x0104 +#define MANUFACTURER q.m.k +#define PRODUCT HHKB mod +#define DESCRIPTION q.m.k keyboard firmware for HHKB + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 8 + +#define TAPPING_TERM 200 + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +//#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +//#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* + * Feature disable options + * These options are also useful to firmware size reduction. +*/ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/hhkb/hhkb.c b/keyboards/hhkb/hhkb.c new file mode 100644 index 000000000..6897026c6 --- /dev/null +++ b/keyboards/hhkb/hhkb.c @@ -0,0 +1,29 @@ +#include "hhkb.h" + +__attribute__ ((weak)) +void matrix_init_user(void) { + // leave these blank +}; + +__attribute__ ((weak)) +void matrix_scan_user(void) { + // leave these blank +}; + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + if (matrix_init_user) { + (*matrix_init_user)(); + } +}; + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + if (matrix_scan_user) { + (*matrix_scan_user)(); + } +}; diff --git a/keyboards/hhkb/hhkb.h b/keyboards/hhkb/hhkb.h new file mode 100644 index 000000000..093d7aeab --- /dev/null +++ b/keyboards/hhkb/hhkb.h @@ -0,0 +1,30 @@ +#ifndef HHKB_H +#define HHKB_H + +#include "matrix.h" +#include "keymap.h" +//#include "backlight.h" +#include + +#define KEYMAP( \ + K31, K30, K00, K10, K11, K20, K21, K40, K41, K60, K61, K70, K71, K50, K51, \ + K32, K01, K02, K13, K12, K23, K22, K42, K43, K62, K63, K73, K72, K52, \ + K33, K04, K03, K14, K15, K24, K25, K45, K44, K65, K64, K74, K53, \ + K34, K05, K06, K07, K16, K17, K26, K46, K66, K76, K75, K55, K54, \ + K35, K36, K37, K57, K56) \ + \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07 }, \ + { K10, K11, K12, K13, K14, K15, K16, K17 }, \ + { K20, K21, K22, K23, K24, K25, K26, KC_NO }, \ + { K30, K31, K32, K33, K34, K35, K36, K37 }, \ + { K40, K41, K42, K43, K44, K45, K46, KC_NO }, \ + { K50, K51, K52, K53, K54, K55, K56, K57 }, \ + { K60, K61, K62, K63, K64, K65, K66, KC_NO }, \ + { K70, K71, K72, K73, K74, K75, K76, KC_NO } \ +} + +void matrix_init_user(void); +void matrix_scan_user(void); + +#endif diff --git a/keyboards/hhkb/hhkb_avr.h b/keyboards/hhkb/hhkb_avr.h new file mode 100644 index 000000000..7ea6322c7 --- /dev/null +++ b/keyboards/hhkb/hhkb_avr.h @@ -0,0 +1,167 @@ +#ifndef HHKB_AVR_H +#define HHKB_AVR_H + +#include +#include +#include +#include +#include + + +// Timer resolution check +#if (1000000/TIMER_RAW_FREQ > 20) +# error "Timer resolution(>20us) is not enough for HHKB matrix scan tweak on V-USB." +#endif + + +/* + * HHKB Matrix I/O + * + * row: HC4051[A,B,C] selects scan row0-7 + * row-ext: [En0,En1] row extention for JP + * col: LS145[A,B,C,D] selects scan col0-7 and enable(D) + * key: on: 0/off: 1 + * prev: hysteresis control: assert(1) when previous key state is on + */ + + +#if defined(__AVR_ATmega32U4__) +/* + * For TMK HHKB alt controller(ATMega32U4) + * + * row: PB0-2 + * col: PB3-5,6 + * key: PD7(pull-uped) + * prev: PB7 + * power: PD4(L:off/H:on) + * row-ext: PC6,7 for HHKB JP(active low) + */ +static inline void KEY_ENABLE(void) { (PORTB &= ~(1<<6)); } +static inline void KEY_UNABLE(void) { (PORTB |= (1<<6)); } +static inline bool KEY_STATE(void) { return (PIND & (1<<7)); } +static inline void KEY_PREV_ON(void) { (PORTB |= (1<<7)); } +static inline void KEY_PREV_OFF(void) { (PORTB &= ~(1<<7)); } +#ifdef HHKB_POWER_SAVING +static inline void KEY_POWER_ON(void) { + DDRB = 0xFF; PORTB = 0x40; // change pins output + DDRD |= (1<<4); PORTD |= (1<<4); // MOS FET switch on + /* Without this wait you will miss or get false key events. */ + _delay_ms(5); // wait for powering up +} +static inline void KEY_POWER_OFF(void) { + /* input with pull-up consumes less than without it when pin is open. */ + DDRB = 0x00; PORTB = 0xFF; // change pins input with pull-up + DDRD |= (1<<4); PORTD &= ~(1<<4); // MOS FET switch off +} +static inline bool KEY_POWER_STATE(void) { return PORTD & (1<<4); } +#else +static inline void KEY_POWER_ON(void) {} +static inline void KEY_POWER_OFF(void) {} +static inline bool KEY_POWER_STATE(void) { return true; } +#endif +static inline void KEY_INIT(void) +{ + /* row,col,prev: output */ + DDRB = 0xFF; + PORTB = 0x40; // unable + /* key: input with pull-up */ + DDRD &= ~0x80; + PORTD |= 0x80; +#ifdef HHKB_JP + /* row extention for HHKB JP */ + DDRC |= (1<<6|1<<7); + PORTC |= (1<<6|1<<7); +#endif + KEY_UNABLE(); + KEY_PREV_OFF(); + + KEY_POWER_OFF(); +} +static inline void KEY_SELECT(uint8_t ROW, uint8_t COL) +{ + PORTB = (PORTB & 0xC0) | (((COL) & 0x07)<<3) | ((ROW) & 0x07); +#ifdef HHKB_JP + if ((ROW) & 0x08) PORTC = (PORTC & ~(1<<6|1<<7)) | (1<<6); + else PORTC = (PORTC & ~(1<<6|1<<7)) | (1<<7); +#endif +} + + +#elif defined(__AVR_AT90USB1286__) +/* + * For Teensy++(AT90USB1286) + * + * HHKB pro HHKB pro2 + * row: PB0-2 (6-8) (5-7) + * col: PB3-5,6 (9-12) (8-11) + * key: PE6(pull-uped) (4) (3) + * prev: PE7 (5) (4) + * + * TODO: convert into 'staitc inline' function + */ +#define KEY_INIT() do { \ + DDRB |= 0x7F; \ + DDRE |= (1<<7); \ + DDRE &= ~(1<<6); \ + PORTE |= (1<<6); \ +} while (0) +#define KEY_SELECT(ROW, COL) (PORTB = (PORTB & 0xC0) | \ + (((COL) & 0x07)<<3) | \ + ((ROW) & 0x07)) +#define KEY_ENABLE() (PORTB &= ~(1<<6)) +#define KEY_UNABLE() (PORTB |= (1<<6)) +#define KEY_STATE() (PINE & (1<<6)) +#define KEY_PREV_ON() (PORTE |= (1<<7)) +#define KEY_PREV_OFF() (PORTE &= ~(1<<7)) +#define KEY_POWER_ON() +#define KEY_POWER_OFF() +#define KEY_POWER_STATE() true + + +#else +# error "define code for matrix scan" +#endif + + +#if 0 +// For ATMega328P with V-USB +// +// #elif defined(__AVR_ATmega328P__) +// Ports for V-USB +// key: PB0(pull-uped) +// prev: PB1 +// row: PB2-4 +// col: PC0-2,3 +// power: PB5(Low:on/Hi-z:off) +#define KEY_INIT() do { \ + DDRB |= 0x3E; \ + DDRB &= ~(1<<0); \ + PORTB |= 1<<0; \ + DDRC |= 0x0F; \ + KEY_UNABLE(); \ + KEY_PREV_OFF(); \ +} while (0) +#define KEY_SELECT(ROW, COL) do { \ + PORTB = (PORTB & 0xE3) | ((ROW) & 0x07)<<2; \ + PORTC = (PORTC & 0xF8) | ((COL) & 0x07); \ +} while (0) +#define KEY_ENABLE() (PORTC &= ~(1<<3)) +#define KEY_UNABLE() (PORTC |= (1<<3)) +#define KEY_STATE() (PINB & (1<<0)) +#define KEY_PREV_ON() (PORTB |= (1<<1)) +#define KEY_PREV_OFF() (PORTB &= ~(1<<1)) +// Power supply switching +#define KEY_POWER_ON() do { \ + KEY_INIT(); \ + PORTB &= ~(1<<5); \ + _delay_ms(1); \ +} while (0) +#define KEY_POWER_OFF() do { \ + DDRB &= ~0x3F; \ + PORTB &= ~0x3F; \ + DDRC &= ~0x0F; \ + PORTC &= ~0x0F; \ +} while (0) +#endif + +#endif diff --git a/keyboards/hhkb/keymaps/default/compiled.hex b/keyboards/hhkb/keymaps/default/compiled.hex new file mode 100644 index 000000000..b3af69527 --- /dev/null +++ b/keyboards/hhkb/keymaps/default/compiled.hex @@ -0,0 +1,1381 @@ +:100000000C9452060C9496060C9496060C94960644 +:100010000C9496060C9496060C9496060C949606F0 +:100020000C9496060C9496060C945A110C942C126F +:100030000C941C1F0C9496060C9496060C94960631 +:100040000C9496060C9496060C9496060C949606C0 +:100050000C9496060C94BC1F0C9496060C94960671 +:100060000C9496060C9496060C9496060C949606A0 +:100070000C9496060C9496060C9496060C94960690 +:100080000C9496060C9496060C9496060C94960680 +:100090000C9496060C9496060C9496060C94960670 +:1000A0000C9496060C9496060C9496069912BB1224 +:1000B000A913BB12A91300132313A91378138B13CD +:1000C0006516651694169416D316F316231823187E +:1000D000FE162318AE17AE171418231823181D1870 +:1000E000BB17BB17BB17BB17BB17BB17BB17BB1780 +:1000F000BB17BB17BB17BB17BB17BB17BB17BB1770 +:10010000CB17D917E017E717F117253032583A20E7 +:10011000253038620A000A722F63203031323334BE +:100120003536370A001F0014001A00160004001D9F +:10013000001B000600200021001500080007000930 +:100140000019000500220023001C0017000A000B04 +:1001500000110000001E0029002B00E000E100E279 +:1001600000E3002C002400250018000C000E000DF8 +:100170000010000000310035002A0028000152E57F +:1001800000E600E700260027001200130033000FEE +:1001900000360000002D002E0030002F0034003803 +:1001A00000370000003B0001000100A900AA000187 +:1001B00000010001003C003D0001000100A8000119 +:1001C00000010001003E003F000100010001005558 +:1001D00000570000003A00A50039000100010001AD +:1001E000000100010040004100010046004A0054A7 +:1001F000005600000049004C002A00580001000190 +:100200000001000100420043004700480050004B3D +:10021000004D00000044004500010052004F005115 +:10022000004E0000000A44454255473A20656E6181 +:10023000626C65642E0A005B735D004B6579626FCA +:100240006172642073746172742E0A005B575D00E2 +:100250005B535D005B525D005B445D005B435D0092 +:100260001203480048004B00420020006D006F0060 +:10027000640000000C0371002E006D002E006B0066 +:1002800000000403090409027400040100A0FA0933 +:100290000400000103010100092111010001223FB6 +:1002A000000705810308000A090401000103010297 +:1002B00000092111010001224D00070582030800F9 +:1002C0000A090402000103000000092111010001D4 +:1002D0002236000705830308000A0904030002030D +:1002E00000000009211101000122200007058403FC +:1002F0002000010705040320000112011001000085 +:100300000008EDFEFECA0401010200010631FF09EA +:1003100074A1010975150025FF9520750881020952 +:1003200076150025FF952075089102C0050109800A +:10033000A101850216010026B7001A01002AB700A4 +:10034000751095018100C0050C0901A101850316F6 +:100350000100269C021A01002A9C02751095018159 +:1003600000C005010902A1010901A1000509190147 +:100370002905150025019505750181029501750373 +:1003800081010501093009311581257F9502750824 +:10039000810609381581257F950175088106050CB0 +:1003A0000A38021581257F950175088106C0C005B0 +:1003B000010906A101050719E029E71500250195A6 +:1003C0000875018102950175088101050819012947 +:1003D00005950575019102950175039101050719B0 +:1003E0000029FF150025FF950675088100C00A0049 +:1003F0002530325820006B6579626F6172645F72DC +:1004000065706F72743A20004B6579626F61726437 +:10041000204C4544732073746174653A2025780A32 +:1004200000646F6E652E0A00626F6F676D616769A9 +:1004300063207363616E3A202E2E2E2000290A005D +:100440002575002F002575005D280025640020001B +:10045000256400200025640020002564007C002520 +:10046000303258006D6F7573656B6579205B62740F +:100470006E7C782079207620685D287265702F6107 +:10048000636C293A205B006D6B5F776865656C5F14 +:1004900074696D655F746F5F6D6178203D202564C0 +:1004A0000A006D6B5F776865656C5F6D61785F737F +:1004B00070656564203D2025640A006D6B5F74697A +:1004C0006D655F746F5F6D6178203D2025640A0063 +:1004D0006D6B5F6D61785F7370656564203D20258D +:1004E000640A006D6B5F696E74657276616C203DA5 +:1004F0002025640A006D6B5F64656C6179203D2086 +:1005000025640A006D6B5F776865656C5F74696D63 +:10051000655F746F5F6D6178203D2025640A006D12 +:100520006B5F776865656C5F6D61785F737065653B +:1005300064203D2025640A006D6B5F74696D655F02 +:10054000746F5F6D6178203D2025640A006D6B5FDC +:100550006D61785F7370656564203D2025640A00D5 +:100560006D6B5F696E74657276616C203D202564E9 +:100570000A006D6B5F64656C6179203D2025640A1B +:10058000000A00257500363A20776865656C5F744F +:10059000696D655F746F5F6D61783A20000A0025B0 +:1005A0007500353A20776865656C5F6D61785F73BB +:1005B000706565643A20000A00257500343A20749D +:1005C000696D655F746F5F6D61783A20000A002580 +:1005D0007500333A206D61785F73706565643A2009 +:1005E000000A00257500323A20696E7465727661E2 +:1005F0006C286D73293A20000A00257500313A20D5 +:1006000064656C6179282A31306D73293A20000ABB +:10061000092D2056616C756573202D0A004D3E0032 +:100620004D25643E20003F0073657420646566615B +:10063000756C740A00433E2000776865726520641B +:10064000656C74613A20637572736F723D25642C1A +:1006500020776865656C3D25640A5365652068747C +:1006600074703A2F2F656E2E77696B6970656469B7 +:10067000612E6F72672F77696B692F4D6F75736588 +:100680005F6B6579730A000A092D204D6F757365DC +:100690006B6579202D0A4553432F713A09717569AD +:1006A000740A313A0964656C6179282A31306D73B6 +:1006B000290A323A09696E74657276616C286D7325 +:1006C000290A333A096D61785F73706565640A348D +:1006D0003A0974696D655F746F5F6D61780A353AC8 +:1006E00009776865656C5F6D61785F7370656564D7 +:1006F0000A363A09776865656C5F74696D655F7481 +:100700006F5F6D61780A0A703A097072696E7420C1 +:1007100076616C7565730A643A0973657420646563 +:100720006661756C74730A75703A092B310A646FCF +:10073000776E3A092D310A706775703A092B31309E +:100740000A7067646F776E3A092D31300A0A737048 +:10075000656564203D2064656C7461202A206D61AC +:10076000785F7370656564202A2028726570656102 +:1007700074202F2074696D655F746F5F6D617829D7 +:100780000A003F004D3E2000433E20004C25640AF5 +:100790000074696D65725F636F756E743A20253001 +:1007A000346C580A006B6579626F6172645F6964CA +:1007B0006C653A2025580A006B6579626F61726436 +:1007C0005F70726F746F636F6C3A2025580A00680F +:1007D0006F73745F6B6579626F6172645F6C65647F +:1007E0007328293A2025580A000A092D20537461DC +:1007F000747573202D0A004743433A20342E392E56 +:1008000032204156522D4C4942433A20312E382E47 +:1008100031204156525F415243483A206176723549 +:100820000A004F5054494F4E533A204C55464120F0 +:10083000424F4F544D41474943204D4F5553454B2F +:1008400045592045585452414B455920434F4E532A +:100850004F4C4520434F4D4D414E44203531320AD7 +:10086000004255494C443A20313637313865662DBF +:100870006469727479202832333A33393A32382035 +:100880004A756E2020392032303136290A00564907 +:10089000443A2030784645454428712E6D2E6B2908 +:1008A000205049443A203078434146452848484B37 +:1008B00042206D6F6429205645523A2030783031FD +:1008C00030340A00444553433A20712E6D2E6B207C +:1008D0006B6579626F617264206669726D776172AF +:1008E0006520666F722048484B420A000A092D2095 +:1008F00056657273696F6E202D0A000A092D204318 +:100900006F6E736F6C65202D0A4553432F713A0942 +:10091000717569740A6D3A096D6F7573656B6579E8 +:100920000A000A092D204D61676963202D0A443AA7 +:10093000094465627567204D65737361676520546E +:100940006F67676C650A583A094D6174726978205F +:100950004465627567204D6F646520546F67676CEE +:1009600065202D2053686F77206B657970726573F1 +:1009700073657320696E206D617472697820677287 +:1009800069640A4B3A094B6579626F61726420446D +:100990006562756720546F67676C65202D2053680A +:1009A0006F77206B65797072657373207265706FF5 +:1009B00072740A4D3A094465627567204D6F75730C +:1009C0006520546F67676C650A563A0956657273FD +:1009D000696F6E0A533A095374617475730A433A26 +:1009E00009416374697661746520436F6E736F6C3F +:1009F00065204D6F64650A46312D4631303A095302 +:100A0000776974636820746F204C61796572203057 +:100A10002D392028463130203D204C30290A302DF8 +:100A2000393A0953776974636820746F204C61798F +:100A3000657220302D390A4553433A09537769745A +:100A4000636820746F204C617965722030202861C2 +:100A50006C7465726E617465206B65792031290A4A +:100A600047524156453A0953776974636820746F59 +:100A7000204C6179657220302028616C7465726E3B +:100A8000617465206B65792032290A5041555345C0 +:100A90003A094A756D7020746F20426F6F746C6FE5 +:100AA0006164657220285265736574290A453A09A4 +:100AB0005072696E7420454550524F4D20536574F5 +:100AC00074696E67730A000A002575002E6E6B72DA +:100AD0006F3A20000A002575002E737761705F62FF +:100AE00061636B736C6173685F6261636B73706188 +:100AF00063653A20000A002575002E737761705FE8 +:100B000067726176655F6573633A20000A00257538 +:100B1000002E6E6F5F6775693A20000A0025750028 +:100B20002E737761705F72616C745F726775693A7A +:100B300020000A002575002E737761705F6C616C70 +:100B4000745F6C6775693A20000A002575002E6392 +:100B50006170736C6F636B5F746F5F636F6E7472E1 +:100B60006F6C3A20000A002575002E737761705F64 +:100B7000636F6E74726F6C5F636170736C6F636BC5 +:100B80003A20000A0025303258006B65796D61709B +:100B90005F636F6E6669672E7261773A20000A00A4 +:100BA0002575002E6D6F7573653A20000A00257556 +:100BB000002E6B6579626F6172643A20000A00252D +:100BC00075002E6D61747269783A20000A002575EF +:100BD000002E656E61626C653A20000A0025303295 +:100BE000580064656275675F636F6E6669672E7231 +:100BF00061773A20000A0025750064656661756CAE +:100C0000745F6C617965723A20003F000A6D6F7500 +:100C100073653A206F66660A000A6D6F7573653AF0 +:100C2000206F6E0A000A6B6579626F6172643A2008 +:100C30006F66660A000A6B6579626F6172643A20BA +:100C40006F6E0A000A6D61747269783A206F666689 +:100C50000A000A6D61747269783A206F6E0A000AA0 +:100C600064656275673A206F66660A000A646562A9 +:100C700075673A206F6E0A000A0A4A756D70696ED0 +:100C80006720746F20626F6F746C6F616465722E81 +:100C90002E2E2000433E20006565636F6E666967F7 +:100CA0003A0A000011241FBECFEFDAE0DEBFCDBF4D +:100CB00004B603FE24C08091E0019091E101A0916F +:100CC000E201B091E3018730904BA740B04BB9F4FB +:100CD0001092E0011092E1011092E2011092E30102 +:100CE00014BE84B7877F84BF88E10FB6F8948093E1 +:100CF0006000109260000FBEE0E0FFE3099511E094 +:100D0000A0E0B1E0ECEFF5E502C005900D92A23352 +:100D1000B107D9F711E0A2E3B1E001C01D92A03EF6 +:100D2000B107E1F70E94940E0C94FC2A0C94000089 +:100D3000FF93EF93E0913201F0913301309709F086 +:100D40000995EF91FF910895FC018591803011F094 +:100D5000EFDFFBCF0895FF27E0E230E247FF0CC052 +:100D6000419597FF09C0EDE260957095809590954B +:100D7000611D711D811D911D27FF02C0219530E36A +:100D800050E2AA27660F771F881F991FAA1FA41772 +:100D900010F0A41B63955A95A9F7AA3008F0A95F33 +:100DA000A05DAF93F395611571058105910541F73C +:100DB000ED3211F4EF93F395F21718F43F93F39596 +:100DC000FBCF8F91B5DFFA95E1F70895E991F9919D +:100DD0008591803021F0853219F0AADFF9CF08958E +:100DE00020E0E89455915532C1F3503311F46894E2 +:100DF00055915A3348F4505390F3220F022E220F8C +:100E0000220F200D250FF4CF0EF421958991999191 +:100E1000533619F3533729F1533559F1BC0188275B +:100E20009927E8945C3621F48991999168945591B9 +:100E3000543639F446EF7EF077FF0DC08FEF9FEF09 +:100E40000AC055374AE039F0583540E121F05236B2 +:100E500042E009F00895FF93EF937DDFEF91FF915A +:100E6000B7CFFF93EF93FC0181918030B9F360DF3E +:100E7000FBCFFF93EF9368DFF1CFDF93CF93CDB735 +:100E8000DEB72596A3DFCF91DF9108958FEF84B968 +:100E900080E485B957985F9A2E9A2F98ECE3F1E099 +:100EA00088E08E0F11928E13FDCFE4E3F1E088E02D +:100EB0008E0F11928E13FDCF8CE391E0909347013A +:100EC0008093460184E391E090934501809344012F +:100ED0000895EF92FF920F931F93CF93DF9380912A +:100EE0004401909145012091460130914701309392 +:100EF0004501209344019093470180934601C0E04F +:100F0000D0E0EE24E394F12C0FEF10E020E030E08D +:100F100085B1807C8C2BA90193E0440F551F9A95D5 +:100F2000E1F7842B85B98AE18A95F1F700C0E09159 +:100F30004401F0914501EC0FFD1F808190E0022EED +:100F400002C0959587950A94E2F780FD2F9A95E364 +:100F50009A95F1F70000E6B52E988AE18A95F1F7A7 +:100F600000C04091460150914701DA01AC0FBD1F0E +:100F70004F9B0AC0C701022E01C0880F0A94EAF7EE +:100F800080959C91892308C06C91C701022E01C0F5 +:100F9000880F0A94EAF7862B8C9386B56E2F70E043 +:100FA0008E1728F086B590E0861B970B06C0E6B535 +:100FB000C801861B970B8E0F911D069758F0E09184 +:100FC0004401F0914501EC0FFD1F8081FA01EC0F07 +:100FD000FD1F80839AE19A95F1F700C02F982E9A11 +:100FE0008BE291E00197F1F700C000002F5F3F4FC7 +:100FF0002830310509F08CCFA0914601B09147010E +:10100000AC0FBD1FE0914401F0914501EC0FFD1FB5 +:101010009C918081981751F00E945A1F609348015B +:101020007093490180934A0190934B012196C830F7 +:10103000D10509F06BCF8091D601853021F08091E8 +:10104000D601811111C060914801709149018091D0 +:101050004A0190914B010E94901F613177428105B6 +:10106000910510F00E94DF1E81E0DF91CF911F916A +:101070000F91FF90EF900895209146013091470124 +:10108000F901E80FF11D808108950F931F93CF930D +:10109000DF9386E191E00E94A406C0E0D0E00AE080 +:1010A00011E0E0914601F0914701EC0FFD1F8081B6 +:1010B0000E94C91E1F928F93DF93CF931F930F93AC +:1010C0000E943D0721960F900F900F900F900F9068 +:1010D0000F90C830D10529F7DF91CF911F910F9163 +:1010E00008951F93CF93DF93C7E0D0E010E0E09125 +:1010F0004601F0914701EC0FFD1F808190E00E94B6 +:10110000BD1E180F219798F7812FDF91CF911F9166 +:1011100008950895089561110BC0FC018281882310 +:1011200021F085EE0E94591503C085EE0E94F81546 +:1011300080E090E0089581E0089581E008950C94A6 +:101140009D0808950F931F93CF93DF938C01FC01AB +:10115000C081D181CE010E94871DBE010E944B0932 +:10116000EC01B8010E949F08882309F48DC0F801A2 +:101170008281882309F44AC08091570181111FC0E0 +:10118000C431F0E5DF0709F051C00E94A10881E0F9 +:10119000809357010E944E1F9093560180935501F2 +:1011A00010924E011092500110924F011092520174 +:1011B00010925101109254011092530165C0809118 +:1011C0005501909156010E94661F883C910570F46C +:1011D00080914E01E82FF0E0EE0FFF1FE15BFE4F24 +:1011E000D183C0838F5F80934E014EC0C43880E5A9 +:1011F000D80721F0C538D04501F13AC0F801828105 +:10120000882341F010924C0182E01EC0C438E0E512 +:10121000DE0759F580914C01811106C086E20E94DB +:10122000591586E20E94F81582E01CC0C438F0E52A +:10123000DF0741F3C538D045D9F4F801828188230E +:1012400031F010924D0180E20E9420161DC0809165 +:101250004D01811106C087E20E94591587E20E9464 +:10126000F81580E20E9427160FC0C538D04529F333 +:1012700081E080934C0180934D01C801DF91CF91B3 +:101280001F910F910C949B0880E0DF91CF911F91EB +:101290000F9108950895E72FF0E098E0899FE00D01 +:1012A000F11D112483E0EE0FFF1F8A95E1F7E60F91 +:1012B000F11DEE0FFF1FEB5DFE4F85919491089598 +:1012C000880F991FFC01EB55F0408591949108958A +:1012D000880F991FFC01EB5DFE4F85919491089555 +:1012E0000F931F93CF93DF93EC01811520E39207B7 +:1012F00050F5C11580E2D80708F0C3C0CB3BD1053B +:1013000090F4C83AD10508F06AC0C53AD10508F092 +:101310005BC0C430D10508F0D4C1219709F0CEC11B +:1013200001E010E00EC2CF3FD10511F008F0C9C1B5 +:10133000C03FD10508F0A2C0CE01805E9109089798 +:1013400008F4BFC1BBC1C13090E5D90709F4A2C000 +:1013500020F5C0318FE4D80770F4C11590E4D907A7 +:1013600008F094C0C11521E3D20708F0A7C1DD271A +:101370008E01106CE6C1C115D04509F09FC10E94D5 +:101380008E188FEF94E32CE0815090402040E1F7DD +:1013900000C000000E94E11FD4C1C11597E5D90724 +:1013A00058F4C03121E5D20708F020C1C43180E5EE +:1013B000D80708F479C082C1CE01905781159041B9 +:1013C00008F07CC1DF7077C1C53AD10509F47BC153 +:1013D000C63AD10509F07AC102E810E4B2C1C83AB0 +:1013E000D10509F476C1C93AD10509F475C1CA3AE3 +:1013F000D10509F474C1CB3AD10509F473C1CC3AD3 +:10140000D10509F472C1CD3AD10509F471C1C03BCF +:10141000D10509F470C1CE3AD10509F46FC1CF3AB4 +:10142000D10509F46EC1C13BD10509F46DC1C23BC0 +:10143000D10509F46CC1C33BD10509F46BC1C43BB0 +:10144000D10509F46AC1C53BD10509F469C1C63BA0 +:10145000D10509F468C1C73BD10509F467C1C83B90 +:10146000D10509F466C1C93BD10509F465C1CA3B80 +:10147000D10509F464C100E014E463C18E01106574 +:1014800060C1CE019F700E9468095CC1DF708E014F +:10149000106A57C185E292E00E94A4068091C101C2 +:1014A00081608093C1014DC10E948721811102C0DA +:1014B0000E946D210E94A42190E09093E00180930E +:1014C000DF01C23080E5D80721F48091DF0181601F +:1014D00086C0C43090E5D90721F48091DF01826095 +:1014E0007EC0C63020E5D20721F48091DF01846000 +:1014F00076C0C83080E5D80719F48091DF0127C095 +:10150000CA3090E5D90721F48091DF01806167C07E +:10151000CC3020E5D20721F48091DF0180625FC0EA +:10152000CE3080E5D80721F48091DF01806457C078 +:10153000C03190E5D90721F48091DF0180684FC068 +:10154000C23120E5D20729F48091DF0184608860F0 +:1015500046C0C33080E5D80721F48091DF018E7F3B +:101560003EC0C53090E5D90721F48091DF018D7F21 +:1015700036C0C73020E5D20721F48091DF018B7F90 +:101580002EC0C93080E5D80719F48091DF0126C04C +:10159000CB3090E5D90721F48091DF018F7E1FC009 +:1015A000CD3020E5D20721F48091DF018F7D17C077 +:1015B000CF3080E5D80721F48091DF018F7B0FC009 +:1015C000C13190E5D90721F48091DF018F7707C001 +:1015D000C331D04531F48091DF018B7F877F8093C9 +:1015E000DF018091DF010E94A821ABC08D2F9927D8 +:1015F0008F70992781309105D9F49E01237033278C +:1016000002C0880F991F2A95E2F79C688E0144E07A +:10161000000F111F4A95E1F700271370802B912BC3 +:1016200053E0CC0FDD1F5A95E1F7C076DD272FC0C0 +:101630008230910531F4DC2FCC278E01016F106AC6 +:1016400080C08330910569F4CE018370992701E051 +:1016500010E002C0000F111F8A95E2F7C8019C68D4 +:101660000FC084309105B9F4CE018370992701E051 +:1016700010E002C0000F111F8A95E2F7C8019A68B6 +:1016800023E0CC0FDD1F2A95E1F7C07ED7708C01D7 +:101690000C2B1D2B56C08530910531F4DC2FCC2747 +:1016A0008E01046F106A4DC0069709F04AC0CF71D1 +:1016B000DD27DC2FCC278E01106243C000E010E054 +:1016C00040C08E013EC001E810E43BC003E810E4D6 +:1016D00038C002EE14E435C009EE14E432C00AEE5C +:1016E00014E42FC005EB14E42CC006EB14E429C06D +:1016F00007EB14E426C00CEC14E423C00DEC14E456 +:1017000020C003E815E41DC00AE815E41AC002E988 +:1017100015E417C004E915E414C001E216E411C091 +:1017200003E216E40EC004E216E40BC005E216E480 +:1017300008C006E216E405C007E216E402C00AE2A9 +:1017400016E4C801DF91CF911F910F910895E72F03 +:10175000F0E098E0899FE00DF11D112483E0EE0F89 +:10176000FF1F8A95E1F7E60FF11DEE0FFF1FEB5DFE +:10177000FE4F85919491803E9105E0F4803C910567 +:1017800058F58133910509F46FC048F48932910509 +:1017900009F463C08A32910509F46DC072C08933BF +:1017A0009105E9F082389105D1F08533910509F46E +:1017B0004DC067C0833E910581F138F4803E9105AC +:1017C000B9F0823E9105D9F05CC0863E910561F189 +:1017D000873E9105A1F155C00E94600908952091AE +:1017E000DF0120FD02C021FF4CC080EE90E049C027 +:1017F0008091DF0180FFF9CF89E390E042C08091C2 +:10180000DF0182FF0EC08091DF0184FF03C080E012 +:1018100090E037C083EE90E034C08091DF0182FF1A +:10182000F2CF82EE90E02DC08091DF0183FF0BC0EC +:101830008091DF0184FDEBCF87EE90E022C08091A4 +:10184000DF0183FFF5CF86EE90E01BC08091DF01C2 +:1018500085FF07C089E290E014C08091DF0185FF19 +:10186000F9CF85E390E00DC08091DF0186FF07C0CE +:101870008AE290E006C08091DF0186FFF9CF81E324 +:1018800090E00E947009089508950C94440C809192 +:10189000630108959FB7F89410925A019FBF9091E9 +:1018A000D601943009F057C09091E9009F703091B3 +:1018B000EC00232F217030FD20E8922B24E02093B0 +:1018C000E9002091EB0020FF43C02091EE0027FFAC +:1018D0003FC020915801222321F02091E80025FFEC +:1018E00037C01092580126E03091E80035FD15C050 +:1018F0003091D601343061F53091EB0035FD28C0D0 +:10190000215021F481E08093580122C0EFE9FFE0EB +:101910003197F1F700C00000E7CF8093F10080918C +:10192000E80085FD0AC08091E80080FFFCCF80912F +:10193000E8008E778093E80006C08FB7F89421E026 +:1019400020935A018FBF9F709093E90080E0089523 +:101950009F709093E9008FEF0895CF93DF9300D0AD +:101960001F92CDB7DEB79C018091D601843019F566 +:1019700093E099833B832A839093E9008FEF9091C2 +:10198000E800815095FD06C095ED9A95F1F70000AD +:101990008111F5CF8091E80085FF0DC040E050E057 +:1019A00063E070E0CE0101960E944A0F8091E8004A +:1019B0008E778093E8000F900F900F90DF91CF917A +:1019C0000895CF93DF9300D01F92CDB7DEB720915B +:1019D000D601243021F522E029839B838A8383E08A +:1019E0008093E9008FEF9091E800815095FD06C04B +:1019F00095ED9A95F1F700008111F5CF8091E800FF +:101A000085FF0DC040E050E063E070E0CE0101963C +:101A10000E944A0F8091E8008E778093E8000F9033 +:101A20000F900F90DF91CF9108952091D60124302F +:101A3000F1F422E02093E9002FEF3091E8002150EB +:101A400035FD06C035ED3A95F1F700002111F5CFCF +:101A50002091E80025FF0BC040E050E065E070E019 +:101A60000E944A0F8091E8008E778093E8000895E5 +:101A7000CF93DF932091D601243039F521E02093D4 +:101A8000E9002FEF3091E800215035FD06C035ED1B +:101A90003A95F1F700002111F5CF2091E80025FFDC +:101AA00014C0EC0140E050E068E070E00E944A0F92 +:101AB0008091E8008E778093E80088E0FE01ABE536 +:101AC000B1E001900D928A95E1F7DF91CF910895F1 +:101AD0008CE592E00E94A4068091D501811109C095 +:101AE0000E94DF100E943C118091E200846080938C +:101AF000E200089588E592E00E94A4061092D501C4 +:101B0000089584E592E00C94A40680E592E00C949C +:101B1000A4068CE492E00E94A4060C94161F209167 +:101B200059012F5F822F62E30E948C2A992319F0BA +:101B30002093590108951092590180915A018823E8 +:101B400071F18091D601843041F58091E9008F7068 +:101B50002091EC00922F917020FD90E8892B94E069 +:101B60009093E9009091EB0090FF14C09091EE00EB +:101B700097FF10C09091E80095FF03C01092F1000C +:101B8000F9CF9091E80090FF05C09091E8009E7712 +:101B90009093E8008F708093E90010925A010895A5 +:101BA00042E061EC81E00E94591042E061EC82E089 +:101BB0000E94591042E061EC83E00E94591042E219 +:101BC00061EC84E00C9459108091D801833009F4C1 +:101BD00053C030F4813071F0823009F48CC0089524 +:101BE0008A3009F478C08B3009F45EC0893009F07E +:101BF0009AC020C08091D701813A09F094C08091A9 +:101C0000E800877F8093E8008091DB019091DC0100 +:101C1000892B21F468E08BE591E003C060E080E06F +:101C200090E070E00E94950F8091E8008B778093A0 +:101C3000E80008958091D701813209F074C0809145 +:101C4000DB019091DC01892B09F06DC08091E800E7 +:101C5000877F8093E8008091E80082FD05C0809135 +:101C6000D6018111F8CF5FC08091F10080936301AC +:101C70008091E8008B7753C08091D701813A09F0B9 +:101C800052C08091DB019091DC01892B09F04BC09F +:101C90008091E800877F8093E8008091E80080FFD2 +:101CA000FCCF80910A0136C08091D7018132D9F5ED +:101CB0008091DB019091DC01892BA9F58091E800EE +:101CC000877F8093E8000E948E108091D9018093D5 +:101CD0000A010C948E188091D701813221F58091F0 +:101CE000E800877F8093E8000E948E108091DA01DF +:101CF0008093640108958091D701813AA1F4809185 +:101D0000E800877F8093E8008091E80080FFFCCFA7 +:101D1000809164018093F1008091E8008E77809338 +:101D2000E8000C948E10089584B7877F84BF88E103 +:101D30000FB6F89480936000109260000FBE90E0A0 +:101D400080E80FB6F89480936100909361000FBE15 +:101D50000E946E140E94DF100E943C118091E200EC +:101D600084608093E2008AE49CE00E94B81E78942C +:101D70000E94C1130E94701480E091E00E94DC1365 +:101D80008BE392E00E94A4068091D601853089F40D +:101D900087E392E00E94A4060E94DF1E8091D40196 +:101DA000882391F30E94081F882371F30E94340F47 +:101DB000EBCF0E949414E8CF292F3327233031052D +:101DC000C9F064F42130310581F02230310509F089 +:101DD00043C084E790E026E832E042C0213231057A +:101DE000F1F02232310541F137C082E190E02AEF73 +:101DF00032E036C099278130910541F0823091055B +:101E000041F0892B49F5E2E8F2E005C0E4E7F2E0B1 +:101E100002C0E0E6F2E0849190E09F0121C06430CE +:101E2000D8F4E62FF0E0EE0FFF1FE15EFE4F2081B9 +:101E3000318189E090E014C0643070F470E0FB01FF +:101E4000EE0FFF1FE95EFE4F20813181FB01ED5E49 +:101E5000FE4F808190E004C080E090E020E030E020 +:101E6000FA0131832083089580E189BD82E189BD33 +:101E700009B400FEFDCF8091D8008F7D8093D800FB +:101E80008091E00082608093E0008091E00081FD1D +:101E9000FCCF0895CF92DF92EF92FF920F931F93A2 +:101EA000CF93DF93EC018B016A010E94AD10811189 +:101EB00033C0C114D10439F0F60180819181081B2F +:101EC000190BC80FD91FE12CF12C0115110519F1BF +:101ED0008091E80085FD16C08091E8008E778093A0 +:101EE000E800C114D10449F0F60180819181E80E27 +:101EF000F91EF182E08285E00FC00E94AD108823B8 +:101F000021F30AC089918093F10001501109FFEF7C +:101F1000EF1AFF0ADACF80E0DF91CF911F910F9186 +:101F2000FF90EF90DF90CF9008952091DD013091E8 +:101F3000DE012617370748F06115710539F4209145 +:101F4000E8002E772093E80001C0B90140E0611558 +:101F50007105A9F12091D601222309F443C025304F +:101F600009F442C02091E80023FD40C02091E80020 +:101F700022FD32C02091E80020FFE9CF4091F3001C +:101F80002091F20030E0342BFC01CF016115710586 +:101F900059F02830310540F481918093F10061506F +:101FA00071092F5F3F4FF1CF41E02830310509F033 +:101FB00040E02091E8002E772093E800C8CF41113F +:101FC000C9CF0AC08091D601882361F0853061F0C5 +:101FD0008091E80083FD0AC08091E80082FFF2CF83 +:101FE00080E0089582E0089583E0089581E00895F7 +:101FF0002091DD013091DE012617370748F0611589 +:10200000710539F42091E8002E772093E80001C093 +:10201000B901FC0120E06115710591F18091D601B3 +:10202000882309F440C0853009F43FC08091E8005E +:1020300083FD3DC08091E80082FD2FC08091E800C3 +:1020400080FFE9CF2091F3008091F20090E0922B85 +:102050006115710559F08830910540F42491209361 +:10206000F1003196615071090196F2CF21E0089795 +:1020700009F020E08091E8008E778093E800CBCFD4 +:102080002111CCCF0AC08091D601882361F0853020 +:1020900061F08091E80083FD0AC08091E80082FF32 +:1020A000F2CF80E0089582E0089583E0089581E012 +:1020B0000895982F973058F59093E900981739F0C4 +:1020C0007091EC002091ED005091F00003C0242F9E +:1020D000762F50E021FF19C03091EB003E7F309306 +:1020E000EB003091ED003D7F3093ED003091EB003F +:1020F00031603093EB007093EC002093ED0050932F +:10210000F0002091EE0027FF07C09F5FD3CF8F70B4 +:102110008093E90081E0089580E008958091D701DF +:1021200087FF11C08091E80082FD05C08091D60133 +:102130008111F8CF11C08091E8008B770BC080919E +:10214000D601882349F08091E80080FFF8CF809184 +:10215000E8008E778093E80008952091E4003091A4 +:10216000E50095E64091EC00842F817040FF22C08D +:102170008091E80080FD1CC08091D601882391F0F9 +:10218000853091F08091EB0085FD10C04091E40016 +:102190005091E5004217530729F39A01915011F726 +:1021A00084E0089582E0089583E0089581E0089531 +:1021B00080E008954091E80042FFDECF08950E943C +:1021C0004D110E945511E0EEF0E080818160808326 +:1021D000E8EDF0E080818F77808319BCA7EDB0E057 +:1021E0008C918E7F8C9380818F7E80831092D5011D +:1021F00008950F931F93CF93DF930E944D110E9478 +:102200005511C8EDD0E088818F77888388818068F8 +:10221000888388818F7D888319BC1092D6011092A3 +:10222000D2011092D4011092D30100EE10E0F80117 +:1022300080818B7F808388818160888342E060E039 +:1022400080E00E945910E1EEF0E080818E7F808373 +:10225000E2EEF0E08081816080838081886080830D +:10226000F80180818E7F8083888180618883DF91FF +:10227000CF911F910F910895E8EDF0E080818F7E5E +:102280008083E7EDF0E080818160808384E082BF1D +:1022900081E08093D5010C94F910E8EDF0E08081A5 +:1022A0008E7F80831092E20008951092DA001092DF +:1022B000E10008951F920F920FB60F9211242F93F1 +:1022C0003F934F935F936F937F938F939F93AF93BE +:1022D000BF93EF93FF938091E10082FF0BC0809149 +:1022E000E20082FF07C08091E1008B7F8093E100D4 +:1022F0000E948F0D8091DA0080FF1FC08091D8006E +:1023000080FF1BC08091DA008E7F8093DA0080917D +:10231000D90080FF0DC080E189BD82E189BD09B48B +:1023200000FEFDCF81E08093D6010E94680D05C0BC +:1023300019BC1092D6010E947A0D8091E10080FFB5 +:1023400019C08091E20080FF15C08091E2008E7F6D +:102350008093E2008091E20080618093E2008091AE +:10236000D80080628093D80019BC85E08093D601A4 +:102370000E94850D8091E10084FF30C08091E200D1 +:1023800084FF2CC080E189BD82E189BD09B400FED3 +:10239000FDCF8091D8008F7D8093D8008091E1009F +:1023A0008F7E8093E1008091E2008F7E8093E20037 +:1023B0008091E20081608093E2008091D2018823C5 +:1023C00011F084E007C08091E30087FD02C081E046 +:1023D00001C083E08093D6010E94890D8091E100C5 +:1023E00083FF29C08091E20083FF25C08091E10036 +:1023F000877F8093E10082E08093D6011092D20122 +:102400008091E1008E7F8093E1008091E2008E7FD9 +:102410008093E2008091E20080618093E20042E0DC +:1024200060E080E00E9459108091F0008860809305 +:10243000F0000E94810DFF91EF91BF91AF919F91AC +:102440008F917F916F915F914F913F912F910F905D +:102450000FBE0F901F9018951F920F920FB60F92FC +:1024600011242F933F934F935F936F937F938F9399 +:102470009F93AF93BF93CF93DF93EF93FF93C0915D +:10248000E900CF708091EC00D82FD17080FDD0E8AA +:102490001092E9008091F000877F8093F00078949B +:1024A0000E9470121092E9008091F0008860809381 +:1024B000F000CD2BCF70C093E900FF91EF91DF9139 +:1024C000CF91BF91AF919F918F917F916F915F91CC +:1024D0004F913F912F910F900FBE0F901F90189525 +:1024E0001F93CF93DF93CDB7DEB7AA970FB6F894BB +:1024F000DEBF0FBECDBFE7EDF1E088E08E0F90911B +:10250000F10091938E13FBCF0E94E40D8091E800BF +:1025100083FF1FC18091D7019091D801492F50E0CE +:102520004A30510508F015C1FA01EA5AFF4F0C94E0 +:10253000AC2A803881F0823809F00BC18091DB0130 +:102540008F708093E9008091EB0085FB882780F9EC +:102550001092E90006C08091D3019091D4019111AD +:1025600082609091E800977F9093E8008093F1005B +:102570001092F100C8C0282F2D7F09F0EAC08823EF +:1025800019F0823061F0E5C08091D901813009F005 +:10259000E0C0933009F080E08093D4012BC080919B +:1025A000D901811127C08091DB018F7009F4D1C05E +:1025B0008093E9002091EB0020FF1CC0933021F4B0 +:1025C0008091EB00806214C09091EB009061909339 +:1025D000EB0021E030E0A90102C0440F551F8A95AD +:1025E000E2F74093EA001092EA008091EB008860E5 +:1025F0008093EB001092E9008091E800877F86C00D +:102600008111A7C01091D9011F778091E3008078D4 +:10261000812B8093E3008091E800877F8093E8001E +:102620000E948E108091E80080FFFCCF8091E30033 +:1026300080688093E300111102C082E001C083E052 +:102640008093D60186C08058823008F082C0809185 +:10265000D9019091DA018C3D53E0950779F583E03B +:102660008A838AE289834FB7F894DE01139620E0CB +:102670003EE051E2E32FF0E050935700E49120FF59 +:1026800003C0E295EF703F5FEF708E2F90E0EA306D +:1026900010F0C79601C0C0968D939D932F5F243193 +:1026A00049F74FBF8091E800877F8093E8006AE296 +:1026B00070E0CE0101960E94950F14C0AE014F5FED +:1026C0005F4F6091DB010E94DC0EBC01009709F4B2 +:1026D00040C09091E800977F9093E80089819A81AB +:1026E0000E94F80F8091E8008B778093E80031C05A +:1026F000803879F58091E800877F8093E8008091A9 +:10270000D2018093F1008091E8008E778093E800F9 +:102710000E948E101EC081111CC09091D901923070 +:10272000C0F48091E800877F8093E8009093D20105 +:102730000E948E108091D201811106C08091E30029 +:1027400087FD02C081E001C084E08093D6010E9431 +:10275000D00D8091E80083FF0AC08091E800877F58 +:102760008093E8008091EB0080628093EB00AA9652 +:102770000FB6F894DEBF0FBECDBFDF91CF911F9192 +:102780000895CF938091D6018823A1F0C091E900EC +:10279000CF709091EC00892F817090FD80E8C82B5C +:1027A0001092E9008091E80083FD0E947012CF70C2 +:1027B000C093E900CF91089590936A0180936901D5 +:1027C0000895E0916901F0916A01309721F001903C +:1027D000F081E02D099480E00895EF92FF920F932D +:1027E0001F93CF93DF93E0916901F0916A013097D5 +:1027F000B1F18C010280F381E02D09958091C10136 +:1028000082FF2DC080FF04C086EF93E00E94A406E3 +:10281000E80118E080EFE82E83E0F82E8091C101F6 +:1028200080FF0BC088811F928F93FF92EF920E94CE +:102830003D070F900F900F900F901150219611119E +:10284000EDCF8091C10180FF0AC08EEE93E0DF9151 +:10285000CF911F910F91FF90EF900C94A406DF9100 +:10286000CF911F910F91FF90EF900895E091690132 +:10287000F0916A01309721F00480F581E02D0994F0 +:10288000089520916701309168018217930771F0D4 +:102890009093680180936701E0916901F0916A016A +:1028A000309721F00680F781E02D0994089520915A +:1028B0006501309166018217930771F0909366016C +:1028C00080936501E0916901F0916A01309721F0F0 +:1028D0000084F185E02D0994089508950C946D14F9 +:1028E0000E94451F0E9446070C943F20CF93DF9320 +:1028F0001F92CDB7DEB79091C10192FF10C090FF3B +:102900000EC01F928F9328E034E03F932F9389836A +:102910000E943D070F900F900F900F9089810F90AC +:10292000DF91CF910C94450C9F92AF92BF92CF92C2 +:10293000DF92EF92FF920F931F93CF93DF9300D01C +:1029400000D000D0CDB7DEB70E94690707E010E0E5 +:10295000AA24A394B12C902E802F0E943C089801A9 +:1029600024593E4F6901F901F080F826A1F4015085 +:10297000110988F78FEF89838A831B820E944E1F7B +:102980008160782F9D838C8349815A816B818D81F1 +:102990000E942B152FC09091C10191FF04C08E831E +:1029A0000E9445088E8127E030E0A501022E01C07B +:1029B000440F0A94EAF7E42E4F21C1F029839A824A +:1029C0008E2191E009F490E09B830E944E1F81606C +:1029D000782F9D838C8349815A816B818D810E94E0 +:1029E0002B15F6018081E826E08204C021503109D0 +:1029F000E0F6BDCF0E94A92310916B010E94E11364 +:102A00001817B9F00E94E11380936B0126960FB658 +:102A1000F894DEBF0FBECDBFDF91CF911F910F9114 +:102A2000FF90EF90DF90CF90BF90AF909F900C946D +:102A3000761426960FB6F894DEBF0FBECDBFDF9199 +:102A4000CF911F910F91FF90EF90DF90CF90BF90AB +:102A5000AF909F900895CF93DF93CDB7DEB72B97BC +:102A60000FB6F894DEBF0FBECDBF4F83588769877E +:102A70007A878B87DE01119686E0FD0111928A9597 +:102A8000E9F785E0FE01379601900D928A95E1F70E +:102A900049815A816B817C818D819E810E942C1B92 +:102AA0002B960FB6F894DEBF0FBECDBFDF91CF914E +:102AB0000895CF93882309F499C0C82F8CEF8C0F09 +:102AC000813A48F48C2F0E94152881118FC08C2FD9 +:102AD0000E94061E0CC080E28C0F883058F4C7702C +:102AE00081E001C0880FCA95EAF70E94421ECF918B +:102AF0000C94891E8BE58C0F833078F4C53A29F04D +:102B0000C63A31F083E890E005C081E890E002C069 +:102B100082E890E0CF910C94411488E58C0F8331CA +:102B200008F064C0C83A39F1C93A41F1CA3A49F1EA +:102B3000CB3A51F1CC3A59F1CD3A61F1C03B69F150 +:102B4000CE3A71F1CF3A79F1C13B81F1C23B89F1C3 +:102B5000C33B91F1C43B99F1C53BA1F1C63BA9F13F +:102B6000C73BB1F1C83BB9F1C93BC1F1CA3BC9F19F +:102B700080E090E038C082EE90E035C089EE90E0D1 +:102B800032C08AEE90E02FC085EB90E02CC086EB3F +:102B900090E029C087EB90E026C08CEC90E023C049 +:102BA0008DEC90E020C083E891E01DC08AE891E0C0 +:102BB0001AC082E991E017C084E991E014C081E273 +:102BC00092E011C083E292E00EC084E292E00BC07A +:102BD00085E292E008C086E292E005C087E292E0DA +:102BE00002C08AE292E0CF910C945714CF910895DD +:102BF000882329F19CEF980F913A18F40E94231E24 +:102C00000DC090E2980F983058F4877091E001C0A1 +:102C1000990F8A95EAF7892F0E94481E0C94891E05 +:102C20009BE5980F933020F480E090E00C944114E1 +:102C3000885A833120F480E090E00C945714089572 +:102C4000882321F00E94421E0C94891E0895882337 +:102C500021F00E94481E0C94891E08957F928F9245 +:102C60009F92AF92BF92CF92DF92EF92FF920F931B +:102C70001F93CF93DF931F92CDB7DEB77C01C62E93 +:102C8000772EFC01058102950F70128111110E94AF +:102C90005F1E0E94FF1D882379F0112369F080E2F6 +:102CA0008C0D883048F082E00E94E81D0E94FF1DD4 +:102CB00091E0D82ED92601C0D12CE72DE295EF70F6 +:102CC000F0E0E05AFF4F0C94AC2A872D807F072D4F +:102CD0000F70882311F00295007F112389F00023E3 +:102CE00009F498C180E28C0D883020F4802F0E9476 +:102CF000421E03C0802F0E94521E0E94891E8AC15C +:102D00008C2D0E94F815002309F49DC180E28C0DE2 +:102D1000883020F4802F0E94481E03C0802F0E941C +:102D2000581E0E94891E8FC1872D807F972D9F700E +:102D3000803211F4892F03C0892F8295807FCC20A7 +:102D400021F0F1E0CF16A1F01DC0112339F00023CE +:102D500019F1013009F50E94721E75C1002319F0A6 +:102D6000013009F470C189830E94751E898110C1E8 +:102D7000112321F0063008F066C10EC0053008F0BE +:102D800062C106C1112359F0002331F0F70195818A +:102D900090FF40C19F7095830E94201654C100236C +:102DA00009F4F6C03DC1872D86958695837090E025 +:102DB000009719F0019761F046C1112321F08C2D85 +:102DC000972D937002C080E090E00E9441143BC1B7 +:102DD000112321F08C2D972D937002C080E090E09C +:102DE0000E94571430C18C2D112319F00E942F22FC +:102DF00002C00E9497220E941C2325C1872D837048 +:102E000009F052C011111FC18C2D829586958770D3 +:102E1000880F880F9C2D9F70892E912CA12CB12C8E +:102E2000082E04C0880C991CAA1CBB1C0A94D2F75B +:102E3000C4FE14C00FE010E020E030E0B901A801AA +:102E400004C0440F551F661F771F8A95D2F7CB0128 +:102E5000BA01609570958095909503C060E070E030 +:102E6000CB01272D26952695237030E022303105A1 +:102E700069F02330310589F0682979298A299B294D +:102E80002130310571F00E94741CDDC06829792958 +:102E90008A299B290E94901CD6C00E94741CC501DF +:102EA000B4010E94581CCFC0112319F0872D8170E6 +:102EB00001C08695882309F4C6C08C2D829586951D +:102EC0008770880F880F9C2D9F70892E912CA12CC4 +:102ED000B12C082E04C0880C991CAA1CBB1C0A9497 +:102EE000D2F7C4FE14C00FE010E020E030E0B901DA +:102EF000A80104C0440F551F661F771F8A95D2F79B +:102F0000CB01BA01609570958095909503C060E003 +:102F100070E0CB01272D269526952370422F50E097 +:102F20004230510569F04330510589F0682979290B +:102F30008A299B294130510571F00E944E1D83C0A2 +:102F4000682979298A299B290E946A1D7CC00E94D0 +:102F50004E1DC501B4010E94321D75C08C2D90E03C +:102F6000FC01E05EF109E531F10508F04FC0E059E0 +:102F7000FF4F0C94AC2A0C2D0F70872D8F711123ED +:102F800021F00E94CB1C802F07CF0E94EC1C802FC9 +:102F90000E94271658C0112341F0053008F053C095 +:102FA000872D8F710E94111D4EC0063008F04BC056 +:102FB000F7CF112339F0872D8F710E94CB1C43C0AE +:102FC0001123C9F3872D8F710E94EC1C3CC0112383 +:102FD00029F0872D8F710E94B61C35C00E94AC1C51 +:102FE00032C0112351F0172D1F71812F0E94CB1C6D +:102FF00063E0812F0E94DF1D26C081E00E94E81D52 +:10300000023008F182E00E94E81D1DC0112331F05A +:10301000002389F28C2D0E94591515C0002391F2CE +:103020008C2D0E94F8150FC0472D4F706C2DC701D5 +:103030000E948B080E94D01B06C0472D4F706C2D3C +:10304000C7010E944A09DD20F9F00E94DB1D80FDC6 +:103050001BC0F70112820E94D51D0E94CB1CC70124 +:103060000E9453180E94D51D0F90DF91CF911F91A0 +:103070000F91FF90EF90DF90CF90BF90AF909F9017 +:103080008F907F900C94EC1C0F90DF91CF911F914B +:103090000F91FF90EF90DF90CF90BF90AF909F90F7 +:1030A0008F907F9008950F931F93CF93DF93EC0140 +:1030B000888199812B813C81232BB9F09F3F11F4AA +:1030C0008F3F99F0CE010E94A208882371F0688199 +:1030D00079818A810E94D11D8C010E94861D0E94E7 +:1030E0004D1CB801CE010E942E16DF91CF911F9189 +:1030F0000F9108950E945F1E0E946F1E0E94341E51 +:103100000E94891E0E944F240E941C2380E090E0B0 +:103110000E94411480E090E00C9457140E944F1ECE +:103120000C947A180E94C61D292F22952F7030E02A +:103130002C3031054CF42A3031056CF42250310921 +:1031400022303105A8F407C02C30310569F02F304A +:10315000310551F00DC0803F69F018F4803E40F415 +:1031600009C0843F29F406C093FB882780F908959D +:1031700080E0089581E00895CF93DF9300D000D0E0 +:103180001F92CDB7DEB70F900F900F900F900F905A +:10319000DF91CF910895CF93DF9300D000D000D07E +:1031A000CDB7DEB726960FB6F894DEBF0FBECDBF03 +:1031B000DF91CF9108951F93CF93DF93C091740156 +:1031C00016E080917501C81799F0D0E01C9FF001BE +:1031D0001D9FF00D1124EA58FE4F408151816281FC +:1031E0007381848195810E94CB182196C770E9CFA5 +:1031F000DF91CF911F9108954091A6015091A701B1 +:103200006091A8017091A9018091AA019091AB01F0 +:103210000C94CB188091AB0182958F7009F054C04B +:103220008091A801882309F44FC080917401A09176 +:1032300075016091A6017091A7014091A90150917B +:10324000AA01B6E08A1709F43FC090E04115510584 +:10325000C1F17F3F11F46F3FA1F1B89FF001B99F19 +:10326000F00D1124EA58FE4F218172132AC02081EB +:10327000621327C02281211124C0238134812417A5 +:10328000350710F421503109241B350B283C31053A +:10329000C0F42091AB012F7020612093AB0126E098 +:1032A000289FF001299FF00D1124E558FE4F8081E1 +:1032B0008F708061808386EA91E00E9453180C949D +:1032C000DB1801968770BECF0895CF92DF92EF9200 +:1032D000FF920F931F93CF93DF93CDB7DEB7629723 +:1032E0000FB6F894DEBF0FBECDBF8C0185E0F801AC +:1032F000DE011D9601900D928A95E1F7D8014C915F +:1033000011965C91119712966C9112971396CD902D +:10331000DC9014973091A6017091A7018091A901CA +:103320009091AA01009709F46BC17F3F19F43F3FC8 +:1033300009F466C1E090A801EE2009F4C0C0209114 +:10334000AB01C816D90628F0F601E81BF90BCF012E +:1033500004C0809590958C0D9D1DFF24F394883CAE +:10336000910578F0F12C207F09F0C6C07C2DD98A18 +:10337000C88A89890E94BC1886EA91E00E94531885 +:10338000B1C0822F807F09F046C0751314C034137A +:1033900012C0611110C02F7020612093AB010E94F8 +:1033A000FC1886EA91E00E9453188091AB01D80185 +:1033B00015968C932EC0CD2819F15F3F11F44F3F25 +:1033C000F9F0F62E61111CC08091740120917501F5 +:1033D00036E0821709F45AC090E0389FF001399F17 +:1033E000F00D1124EA58FE4F7181571306C0708109 +:1033F000471303C07281711103C001968770E9CF32 +:10340000F62E662309F418C18091AB018160809388 +:10341000AB01F12C11C1751308C0341306C0611142 +:1034200004C08091AB01D801C3C04D875E878D85F4 +:103430009E856A8B0E9492186A898823E1F166232F +:10344000D1F12091AB01822F82958F7090E002978D +:1034500074F08091A6019091A70198878F831986B7 +:10346000DB86CA862C87CE0107960E94531886E019 +:10347000F801A6EAB1E001900D928A95E1F70E9469 +:103480000A190E94FC18FF24F394D6C04D875E876A +:103490008D859E850E94C61D292F22952F7030E0B4 +:1034A000223031050CF0BCC09F7009F0B6C0805EC0 +:1034B000883008F4C1C0C8010E945318E4CFC81670 +:1034C000D90608F453C0F601E81BF90BCF01883C7C +:1034D000910508F450C0F12C7C2DD98AC88A8989BD +:1034E0000E94BC18E6EAF1E086E0DF011D928A95B1 +:1034F000E9F70E94FC18A0C0751314C0341312C061 +:10350000611110C08091AB01F8018583C8010E9450 +:10351000531886E0E6EAF1E0DF011D928A95E9F7AB +:10352000FE2C8AC04D875E878D859E856A8B0E94A2 +:1035300092186A89882309F4BECF662309F4BBCFA9 +:103540002091AB01822F82958F7090E002970CF44E +:103550008ECF8091A6019091A7019A8389831B82C7 +:10356000DD82CC822E83CE0101967FCF809590950F +:103570008C0D9D1DACCFF62E662309F49CCF7513E0 +:103580002EC034132CC02091AB0120FD1FC0822F10 +:1035900082958F70D9F0D80115962C9315978F309E +:1035A00049F08F5F982F9295907F822F8F70892B93 +:1035B00015968C93C8010E94531886E0F801A6EA7C +:1035C000B1E001900D928A95E1F793CF86E0F80182 +:1035D000A6EAB1E001900D928A95E1F72DC04D87E2 +:1035E0005E878D859E850E949218811140CF8091C3 +:1035F000AB0181608093AB01C8010E9453181CC0CD +:10360000662309F458CF4D875E878D859E850E947D +:103610009218882309F44FCF2ACF811148CF0CC0CC +:10362000243031050CF047CF9F7009F440CFF801EA +:103630009581907F09F03BCF8F2D62960FB6F8945D +:10364000DEBF0FBECDBFDF91CF911F910F91FF90D5 +:10365000EF90DF90CF9008951F93CF93DF93CDB776 +:10366000DEB72C970FB6F894DEBF0FBECDBF4F83E9 +:10367000588769877A878B879C87CE0107960E9437 +:103680006519882369F08F8198852A853B85232BCE +:10369000F1F19F3F09F063C08F3F09F060C037C070 +:1036A00086E0FE013796DE01119601900D928A9513 +:1036B000E1F76F817885EA85FB85309741F17F3F9F +:1036C00011F46F3F21F12091750130E0C90101969D +:1036D000877099274091740150E08417950709F489 +:1036E00047C069837A83FD83EC8396E0929FD00183 +:1036F000939FB00D1124AA58BE4FFE013196019040 +:103700000D929A95E1F7809375010E94DB1816E0FF +:1037100080917401909175018917C1F1189FC001C2 +:1037200011248A589E4F0E946519882379F1E091EF +:1037300074011E9FF0011124EA58FE4F408151810F +:1037400062817381848195810E94CB18809174017C +:1037500090E001968770992780937401D9CF4F81AB +:10376000588569857A858B859C850E94CB18CFCF3B +:103770000E948E181092750110927401E6EAF1E031 +:1037800086E0DF011D928A95E9F7C1CF2C960FB62E +:10379000F894DEBF0FBECDBFDF91CF911F9108958A +:1037A000EF92FF920F931F93CF93DF938C010097BB +:1037B00009F46CC0F12CEE24E394E8012196F801A1 +:1037C0008491843740F4843008F051C0813081F016 +:1037D000823019F15BC0853709F444C0A8F19CE739 +:1037E000980F903708F052C08F770E94F81541C0AB +:1037F0000E5F1F4FFE01C49180E28C0F883048F4A9 +:10380000C7708E2D01C0880FCA95EAF70E94621E0C +:1038100014C08C2F0E9459152DC00E5F1F4FFE0142 +:10382000C49180E28C0F883058F4C7708E2D01C08F +:10383000880FCA95EAF70E94681E0E94891E1AC066 +:103840008C2F0E94F81516C00E5F1F4FFE01C49109 +:10385000CC2381F08FE99FE00197F1F700C00000D1 +:10386000C150F6CF0E5F1F4FFE01F49003C00E94BF +:1038700059158E018F2D882309F49FCFEFE9FFE0C2 +:103880003197F1F700C000008150F5CFDF91CF9163 +:103890001F910F91FF90EF90089508956093B001EC +:1038A0007093B1018093B2019093B3010C947A1894 +:1038B0000F931F930091B0011091B1012091B201BB +:1038C0003091B301DC01CB01802B912BA22BB32BC8 +:1038D0008093B0019093B101A093B201B093B30172 +:1038E0001F910F910C947A180F931F930091B001C0 +:1038F0001091B1012091B2013091B301DC01CB01F3 +:1039000080239123A223B3238093B0019093B1012C +:10391000A093B201B093B3011F910F910C947A1848 +:103920000F931F930091B0011091B1012091B2014A +:103930003091B301DC01CB0180279127A227B32767 +:103940008093B0019093B101A093B201B093B30101 +:103950001F910F910C947A181092AC011092AD0146 +:103960001092AE011092AF010C947A1841E050E031 +:1039700060E070E004C0440F551F661F771F8A95F2 +:10398000D2F74093AC015093AD016093AE017093B8 +:10399000AF010C947A1841E050E060E070E004C0A0 +:1039A000440F551F661F771F8A95D2F78091AC018F +:1039B0009091AD01A091AE01B091AF01482B592B70 +:1039C0006A2B7B2B4093AC015093AD016093AE0109 +:1039D0007093AF010C947A1841E050E060E070E021 +:1039E00004C0440F551F661F771F8A95D2F7409574 +:1039F0005095609570958091AC019091AD01A0912A +:103A0000AE01B091AF01482359236A237B23409331 +:103A1000AC015093AD016093AE017093AF010C9473 +:103A20007A1841E050E060E070E004C0440F551F98 +:103A3000661F771F8A95D2F78091AC019091AD01F6 +:103A4000A091AE01B091AF01482759276A277B2783 +:103A50004093AC015093AD016093AE017093AF0100 +:103A60000C947A180F931F930091AC011091AD0143 +:103A70002091AE013091AF01DC01CB01802B912B65 +:103A8000A22BB32B8093AC019093AD01A093AE0118 +:103A9000B093AF011F910F910C947A180F931F935D +:103AA0000091AC011091AD012091AE013091AF01B8 +:103AB000DC01CB0180239123A223B3238093AC01AB +:103AC0009093AD01A093AE01B093AF011F910F9100 +:103AD0000C947A180F931F930091AC011091AD01D3 +:103AE0002091AE013091AF01DC01CB0180279127FD +:103AF000A227B3278093AC019093AD01A093AE01B0 +:103B0000B093AF011F910F910C947A180895CF9242 +:103B1000DF92EF92FF920F931F93CF93DF938C016D +:103B2000C090B001D090B101E090B201F090B3012B +:103B30008091AC019091AD01A091AE01B091AF0127 +:103B4000C82AD92AEA2AFB2ACFE1D0E0D701C60148 +:103B50000C2E04C0B695A795979587950A94D2F731 +:103B600080FF06C0B8018C2F0E94A70B019721F49B +:103B7000219760F780E001C08C2FDF91CF911F91DA +:103B80000F91FF90EF90DF90CF900895CF93DF9348 +:103B9000EC010E94871DBE010E94A70BDF91CF910F +:103BA0000895CB010E94C61D08958091B4018595AA +:103BB0008595859508958091B4018770089598E062 +:103BC000899F90011124262B2093B4010C94CB1CC7 +:103BD0002091B401809582238093B401982F97702F +:103BE00069F430E0482F552747FD509524173507D5 +:103BF00029F08595859585950C94EC1C08959091F8 +:103C0000B401977081E009F480E0089520910B01E0 +:103C100030910C01F90132969FEF40E05191581715 +:103C200089F09F3F19F4511101C0942F4F5F463026 +:103C3000A9F79F3F39F0F901E90FF11D97FDFA95BA +:103C400082830895089520910B0130910C01F901B0 +:103C50003296285F3F4F9081981301C010823196B1 +:103C6000E217F307C1F7089581E090E0E0910B01BE +:103C7000F0910C01E80FF91F108201968830910530 +:103C8000A9F708959091C001892B8093C0010895F0 +:103C900080959091C00189238093C001089510926E +:103CA000C00108959091BF01892B8093BF010895B1 +:103CB00080959091BF0189238093BF010895109250 +:103CC000BF0108959091BE01892B8093BE01089594 +:103CD00080959091BE0189238093BE010895109232 +:103CE000BE0108958093B50108951092B50108951D +:103CF00080910B0190910C01FC0131969C01285F91 +:103D00003F4F80E0919191118F5FE217F307D1F758 +:103D10000895E0910B01F0910C018091C001808326 +:103D2000E0910B01F0910C0190818091BF01892BF2 +:103D30008083E0910B01F0910C0190818091BE0194 +:103D4000892B80838091B501882361F0E0910B017C +:103D5000F0910C019081892B80830E94781E811143 +:103D60001092B50180910B0190910C010C94ED1310 +:103D70009093330180933201089520E0009739F049 +:103D8000AC0141505109842395232F5FF7CF822F37 +:103D900008958295982F9C7C392F36953695282F3B +:103DA000237344E0249FC0011124932F982B292FC3 +:103DB0002A7A2695892F8575880F822B0895809100 +:103DC000D601843021F11092C20120E488E190E014 +:103DD0000FB6F894A895809360000FBE2093600002 +:103DE00080E00E94450C83B7817F846083BF83B7E6 +:103DF000816083BF7894889583B78E7F83BF88E185 +:103E00000FB6F89480936000109260000FBE089582 +:103E10000E9489080E9469070E948A080E9471080E +:103E200091E0811101C090E0892F08950E948E18C1 +:103E30000E94E1130C94450C1F920F920FB60F9243 +:103E400011248F939F93AF93BF938091C2018111EF +:103E500013C08091C3019091C401A091C501B0919C +:103E6000C6014196A11DB11D8093C3019093C40169 +:103E7000A093C501B093C601BF91AF919F918F915F +:103E80000F900FBE0F901F90189582E084BD93E0B5 +:103E900095BD9AEF97BD80936E0008952FB7F89463 +:103EA0008091C3019091C401A091C501B091C60158 +:103EB0002FBF08952FB7F8946091C3017091C4018A +:103EC0008091C5019091C6012FBF0895CF92DF92D6 +:103ED000EF92FF920F931F932FB7F8944091C30175 +:103EE0005091C4016091C5017091C6012FBF6A0154 +:103EF0007B01EE24FF248C0120E030E0C016D106C7 +:103F0000E206F30610F4415051099A01281B390BBF +:103F1000C9011F910F91FF90EF90DF90CF9008950E +:103F2000CF92DF92EF92FF920F931F932FB7F894E7 +:103F3000C090C301D090C401E090C501F090C601CB +:103F40002FBF97018601061B170B280B390BC616CE +:103F5000D706E806F90618F0C901B80106C0C9017C +:103F6000B80161507109810991091F910F91FF906A +:103F7000EF90DF90CF9008951F920F920FB60F929F +:103F800011248F939F93AF93BF938091C30190911E +:103F9000C401A091C501B091C6010196A11DB11D3A +:103FA0008093C3019093C401A093C501B093C6014F +:103FB000BF91AF919F918F910F900FBE0F901F9067 +:103FC00018950E94DF10F8942FEF87EA91E62150B0 +:103FD00080409040E1F700C0000087E090EBDC01FA +:103FE0008093E0019093E101A093E201B093E3019B +:103FF0009CE088E10FB6F894A895809360000FBE0E +:1040000090936000FFCFEF92FF920F931F93CF9397 +:10401000DF93D82FC7E08C2F0E943C0807E010E008 +:10402000E82EF12CC701002E02C0959587950A94C1 +:10403000E2F780FF09C0602F7C2F80E00E944B09CF +:10404000D81302C081E006C00150110958F7C150D1 +:1040500010F780E0DF91CF911F910F91FF90EF90CB +:104060000895CF93C82F8CE20E940320882321F06B +:104070008C2FCF910C94032080E0CF910895CF93A3 +:104080000E948721811102C00E946D2188E294E084 +:104090000E94A406C5E6C15049F00E9469078FE35B +:1040A0009CE90197F1F700C00000F5CF81E294E0B0 +:1040B0000E94A40689E20E94312081110CC18AE28B +:1040C0000E94312081110E946D2185E00E943120E3 +:1040D00081110E94E11F0E9492218093C10187E01B +:1040E0000E9431208823A9F18BE10E94312088238E +:1040F00051F08091C10181FB222720F991E09227A4 +:1041000090FB81F90EC08EE00E943120882361F07F +:104110008091C10182FB222720F991E0922790FB38 +:1041200082F98093C10115C080E10E9431209091F5 +:10413000C101882341F093FB222720F981E08227E7 +:1041400080FB93F904C0892F809580FB90F99093B0 +:10415000C1018091C1010E9496210E94A4218093F7 +:10416000DF0180EE0E943120882341F08091DF0141 +:10417000982F909590FB80F98093DF0189E30E944E +:104180003120882359F08091DF0181FB222720F91B +:1041900091E0922790FB81F98093DF0182EE0E94EB +:1041A0003120882359F08091DF0182FB222720F9FA +:1041B00091E0922790FB82F98093DF0186EE0E94C6 +:1041C0003120882359F08091DF0183FB222720F9D9 +:1041D00091E0922790FB83F98093DF0183EE0E94A8 +:1041E0003120882359F08091DF0184FB222720F9B8 +:1041F00091E0922790FB84F98093DF0185E30E9490 +:104200003120882359F08091DF0185FB222720F996 +:1042100091E0922790FB85F98093DF0181E30E9472 +:104220003120882359F08091DF0186FB222720F975 +:1042300091E0922790FB86F98093DF0181E10E9453 +:104240003120882359F08091DF0187FB222720F954 +:1042500091E0922790FB87F98093DF018091DF0145 +:104260000E94A82187E20E943120C82F8EE10E947F +:1042700031208111C2608FE10E9431208111C46020 +:1042800080E20E9431208111C86081E20E943120C9 +:104290008111C06182E20E9431208111C06283E2FB +:1042A0000E9431208111C06484E20E943120882361 +:1042B00011F0C06802C0CC2329F08C2F0E949F21EE +:1042C0006C2F03C00E949B21682F70E080E090E07B +:1042D000CF910C944E1CCF9108956DEE7EEF80E04F +:1042E00090E00E94E62A60E082E090E00E94D42AFA +:1042F00060E083E090E00E94D42A60E084E090E0F7 +:104300000E94D42A60E085E090E00C94D42A80E0FA +:1043100090E00E94CE2A21E08D3E9E4F09F020E0E1 +:10432000822F089582E090E00C94C62A682F82E0E4 +:1043300090E00C94D42A83E090E00C94C62A682F75 +:1043400083E090E00C94D42A84E090E00C94C62A98 +:10435000682F84E090E00C94D42A8091C90180FFFA +:104360000BC06091100185E0689FB0011124759524 +:104370006795759567952BC081FF09C06091100105 +:1043800085E0689FB00111247595679520C082FF74 +:1043900007C06091100185E0689FB001112417C02B +:1043A0009091CA019923D1F060910F01961788F777 +:1043B0002091100185E0289F90011124929FA00177 +:1043C000939F500D112470E0CA010E94982A603812 +:1043D000710540F46115710539F002C065E070E0C7 +:1043E000862F08958FE7089581E008958091C9018F +:1043F00080FF08C060910E0170E075956795759516 +:10440000679521C081FF06C060910E0170E075952F +:10441000679519C082FF04C060910E0170E010C062 +:104420009091CA019923C1F060910D019617A0F7F0 +:1044300080910E01899FC001112470E00E94982A8A +:104440006038710528F46115710521F0862F0895F3 +:104450008FE7089581E0089561E070E0F4CF803F38 +:1044600021F40E94AD21819504C0813F29F40E946E +:10447000AD218093CD010895823F21F40E94AD21AA +:10448000819504C0833F29F40E94AD218093CC0123 +:104490000895893F19F40E94F62105C08A3F31F43E +:1044A0000E94F62181958093CE0108958B3F21F4DF +:1044B0000E94F621819504C08C3F29F40E94F621C8 +:1044C0008093CF010895843F21F48091CB018160D6 +:1044D00017C0853F21F48091CB01826011C0863FD7 +:1044E00021F48091CB0184600BC0873F21F480913F +:1044F000CB01886005C0883F31F48091CB01806199 +:104500008093CB0108958D3F21F48091C901816092 +:104510000BC08E3F21F48091C901826005C08F3F9E +:1045200029F48091C90184608093C9010895803F76 +:1045300039F48091CD0187FF6CC01092CD0169C024 +:10454000813F29F48091CD011816BCF362C090918F +:10455000CC01823F29F497FF5CC01092CC0159C076 +:10456000833F19F41916CCF354C0893F41F480916C +:10457000CE0118160CF04DC01092CE014AC08A3FF1 +:1045800029F48091CE0187FF44C0F6CF8B3F39F4E8 +:104590008091CF0187FF3DC01092CF013AC08C3F80 +:1045A00029F48091CF011816BCF333C0843F21F465 +:1045B0008091CB018E7F17C0853F21F48091CB0184 +:1045C0008D7F11C0863F21F48091CB018B7F0BC082 +:1045D000873F21F48091CB01877F05C0883F31F46C +:1045E0008091CB018F7E8093CB0113C08D3F21F44E +:1045F0008091C9018E7F0BC08E3F21F48091C9014B +:104600008D7F05C08F3F29F48091C9018B7F8093F6 +:10461000C9018091CC0181110EC08091CD01811121 +:104620000AC08091CE01811106C08091CF01811115 +:1046300002C01092CA0108958091C10183FF7EC01B +:1046400084E694E00E94A4068091CB011F928F9390 +:104650008FE594E09F938F930E943D078DE594E052 +:104660000E94A4068091CC01282F332727FD309586 +:104670003F938F938AE594E09F938F930E943D0729 +:1046800088E594E00E94A4068091CD01282F33276D +:1046900027FD30953F938F9385E594E09F938F930B +:1046A0000E943D0783E594E00E94A4068091CE011C +:1046B000282F332727FD30953F938F9380E594E093 +:1046C0009F938F930E943D078EE494E00E94A4067E +:1046D0008091CF01282F332727FD30953F938F936B +:1046E0008BE494E09F938F930E943D0788E494E0CD +:1046F0000E94A4068091CA011F928F9385E494E0E2 +:104700009F938F930E943D0783E494E00E94A40648 +:104710008091C9011F928F9380E494E09F938F93BF +:104720000E943D078DE394E00E94A4068DB79EB7DA +:104730004C960FB6F8949EBF0FBE8DBF8BEC91E0E8 +:104740000E9436140E944E1F9093C8018093C701A7 +:1047500008951F93CF93DF938091C7019091C80173 +:104760000E94661FAC019091CA01992321F020910B +:10477000110130E006C0209112018AE0289F9001CB +:1047800011244217530708F486C08091CC01C091D0 +:10479000CD01D091CE011091CF01811107C0C1117F +:1047A00076C0D11174C0111172C075C09F3F19F04D +:1047B0009F5F9093CA01181624F40E94AD21809344 +:1047C000CC018091CC0187FF05C00E94AD2181956D +:1047D0008093CC011C1624F40E94AD218093CD015E +:1047E0008091CD0187FF05C00E94AD218195809306 +:1047F000CD016091CC01662339F1C091CD01CC236C +:1048000019F1772767FD7095872F972F0E949D29B3 +:1048100023E333E343E35FE30E94012A0E946A2912 +:104820006093CC016C2F772767FD7095872F972FAA +:104830000E949D2923E333E343E35FE30E94012ABF +:104840000E946A296093CD011D1624F40E94F6216E +:104850008093CE018091CE0187FF05C00E94F62192 +:1048600081958093CE01111624F40E94F621809345 +:10487000CF018091CF0187FF05C00E94F62181956D +:104880008093CF01DF91CF911F910C941C239F3F08 +:1048900009F08ECF96CFDF91CF911F910895EBEC69 +:1048A000F1E085E0DF011D928A95E9F71092CA01D7 +:1048B0001092C901089587E896E00E94A4061F920D +:1048C00081E08F931F9285E08F9389E396E09F9319 +:1048D0008F930E943D070F900F900F900F900F90B5 +:1048E0000F9008958330E9F128F4813061F082302F +:1048F00009F10895853009F462C008F449C0863092 +:1049000009F474C0089580911201262F30E0280F19 +:10491000311D2F3F310524F4680F6093120103C04D +:104920008FEF80931201809112011F928F9382E783 +:1049300095E072C080911101262F30E0280F311DC3 +:104940002F3F310524F4680F6093110103C08FEFEE +:1049500080931101809111011F928F9380E695E061 +:104960005BC080911001262F30E0280F311D2F3FB2 +:10497000310524F4680F6093100103C08FEF80931A +:104980001001809110011F928F938DE495E044C037 +:1049900080910F01262F30E0280F311D2F3F310568 +:1049A00024F4680F60930F0103C08FEF80930F0111 +:1049B00080910F011F928F9388E395E02DC0809125 +:1049C0000E01262F30E0280F311D2F3F310524F432 +:1049D000680F60930E0103C08FEF80930E018091EA +:1049E0000E011F928F938FE195E016C080910D010B +:1049F000262F30E0280F311D2F3F310524F4680F9A +:104A000060930D0103C08FEF80930D0180910D0124 +:104A10001F928F9384E095E09F938F930E943D07B0 +:104A20000F900F900F900F900895833081F128F42C +:104A3000813059F08230D1F00895853009F449C0B1 +:104A4000B8F1863009F456C00895809112016817B4 +:104A500020F4861B8093120102C0109212018091F3 +:104A600012011F928F9385EF94E054C08091110141 +:104A7000681720F4861B8093110102C01092110167 +:104A8000809111011F928F9383EE94E043C0809137 +:104A90001001681720F4861B8093100102C0109249 +:104AA0001001809110011F928F9380ED94E032C02D +:104AB00080910F01681720F4861B80930F0102C0BC +:104AC00010920F0180910F011F928F938BEB94E056 +:104AD00021C080910E01681720F4861B80930E017F +:104AE00002C010920E0180910E011F928F9382EAF4 +:104AF00094E010C080910D01681720F4861B80930C +:104B00000D0102C010920D0180910D011F928F9333 +:104B100087E894E09F938F930E943D070F900F903A +:104B20000F900F900895CF93C82F1F928F938CE80A +:104B300097E09F938F930E943D0781E090E0A0E073 +:104B4000B0E0BC01CD0104C0660F771F881F991F1C +:104B5000CA95D2F70E944E1C0F900F900F900F90A5 +:104B6000CF910C948E18CF938732B0F58E3108F028 +:104B70004AC28E3009F4C4C100F5873009F48DC1F2 +:104B8000A8F4863009F045C28091C101817F8E7FF3 +:104B90008093C1018BEF98E00E94A40684E99CE019 +:104BA0000E94A40681E08093D10175C1883009F488 +:104BB0003FC08B3009F46BC12CC2863109F4E6C1C9 +:104BC00020F4803109F4B0C124C2893109F4C7C18D +:104BD0008B3109F481C11DC2883309F458C150F4E6 +:104BE000893209F412C2853309F40FC2873209F4FD +:104BF0000CC20FC2833409F408C228F48A3308F4C3 +:104C000008C2895303C2883409F003C20E948E1877 +:104C100088E79CE00E94A4069FEF23ED80E391507B +:104C200020408040E1F700C000000E94E11F33C136 +:104C300088E99CE00E94A4068AEF9BE00E94A406FB +:104C40000E949B211F928F9387EF9BE09F938F93EE +:104C50000E943D0785EF9BE00E94A4060E949221DE +:104C6000C82F82EE9BE00E94A4061F92CF938DED89 +:104C70009BE09F938F930E943D078BED9BE00E94EA +:104C8000A40681ED9BE00E94A4068C2F81701F92E8 +:104C90008F938EEC9BE09F938F930E943D078CEC4B +:104CA0009BE00E94A40682EC9BE00E94A406C1FB4C +:104CB000882780F91F928F938FEB9BE09F938F93B0 +:104CC0000E943D078DEB9BE00E94A40681EB9BE0D8 +:104CD0000E94A406C2FB882780F91F928F938EEA58 +:104CE0009BE09F938F930E943D078CEA9BE00E947C +:104CF000A40683EA9BE00E94A406C3FBCC27C0F96C +:104D00001F92CF9380EA9BE09F938F930E943D0771 +:104D10008EE99BE00E94A4060E94A421C82F8AE885 +:104D20009BE00E94A4061F92CF9385E89BE09F938F +:104D30008F930E943D0783E89BE00E94A4068AE6C9 +:104D40009BE00E94A4068C2F81701F928F9387E6B0 +:104D50009BE09F938F930E943D078DB79EB78096EF +:104D60000FB6F8949EBF0FBE8DBF85E69BE00E94F4 +:104D7000A4068EE49BE00E94A406C1FB882780F96C +:104D80001F928F938BE49BE09F938F930E943D072C +:104D900089E49BE00E94A40687E39BE00E94A406AE +:104DA000C2FB882780F91F928F9384E39BE09F9337 +:104DB0008F930E943D0782E39BE00E94A40680E25D +:104DC0009BE00E94A406C3FB882780F91F928F9363 +:104DD0008DE19BE09F938F930E943D078BE19BE0C9 +:104DE0000E94A40681E19BE00E94A406C4FB8827E0 +:104DF00080F91F928F938EE09BE09F938F930E9488 +:104E00003D078CE09BE00E94A4068AEF9AE00E9496 +:104E1000A406C5FB882780F91F928F9387EF9AE03D +:104E20009F938F930E943D0785EF9AE00E94A4060E +:104E300089ED9AE00E94A406C6FB882780F91F929C +:104E40008F9386ED9AE09F938F930E943D0784EDA8 +:104E50009AE00E94A4068CEC9AE00E94A406C7FB8C +:104E6000CC27C0F91F92CF9389EC9AE09F938F9340 +:104E70000E943D0787EC9AE00E94A4068DB79EB77A +:104E80004C960FB6F8949EBF0FBE8DBF04C082E251 +:104E900099E00E94A406C1E0C1C08091C101C82F61 +:104EA000C095C170C0FB80F98093C101CC2349F04B +:104EB0008CE69CE00E94A4068091C1018660886017 +:104EC00048C08FE59CE00E94A4068091C101897FC3 +:104ED000877F8093C101DFCF9091C10191FBCC27E7 +:104EE000C0F981E0C827892FC0FB81F98093C101F7 +:104EF000CC2319F082E59CE027C084E49CE0C9CF74 +:104F00009091C10192FBCC27C0F981E0C827892F7D +:104F1000C0FB82F98093C101CC2319F085E39CE0AA +:104F200013C085E29CE0B5CF9091C10193FBCC27E3 +:104F3000C0F981E0C827892FC0FB83F98093C101A4 +:104F4000CC2351F089E19CE00E94A4068091C1012C +:104F500081608093C10162C08CE09CE09ACF8CEEAE +:104F600098E00E94A40684EC98E00E94A4068EE8D3 +:104F700098E00E94A40681E698E00E94A40682E2DE +:104F800098E00E94A40687EF97E083CF89EE97E030 +:104F90000E94A4060E94E1131F928F938FEC97E06A +:104FA0009F938F930E943D0780910A011F928F93D8 +:104FB00088EB97E09F938F930E943D078091640157 +:104FC0001F928F9385EA97E09F938F930E943D07EE +:104FD0008091C3019091C401A091C501B091C60117 +:104FE000BF93AF939F938F9381E997E09F938F93A4 +:104FF0000E943D078DB79EB742960FB6F8949EBFAC +:105000000FBE8DBF48CF8D5101C080E00E94932517 +:1050100042CF8AE09CE00E94A406C0E08C2FCF9192 +:10502000089580E0089580E00895CF93C82F80917F +:10503000D101813071F020F0823009F44BC042C1BF +:10504000E0910B01F0910C018081823209F03CC1AA +:1050500007C0E0910B01F0910C018081823261F474 +:105060008C2F0E941128811104C08C2F0E94B3251F +:105070002FC081E090E02CC08C2F0E94132881115A +:1050800026C0C431E1F070F4CB3081F0C031D1F4EE +:105090000E945B2484E897E00E94A40682E080934B +:1050A000D10115C0C93259F0C83361F48BEF98E0D3 +:1050B0000E94A40688E897E00E94A40608C0109207 +:1050C000D10104C182E897E00E94A406FFC081E0FC +:1050D0008170FEC0C43228F5CE3108F0C1C0CB309B +:1050E000A1F1D0F4C73009F0D3C08EE18093120152 +:1050F00082E3809311018AE08093100184E1809320 +:105100000F0188E080930E0188E280930D0188E210 +:1051100096E00E94A406BFC0C33149F1C431C1F07A +:10512000B7C0CB3409F4A9C028F4C93289F0C83318 +:1051300061F0AEC0C13509F49EC0C23509F499C012 +:10514000CE3409F0A5C06AE09EC00E945B24A3C0D3 +:105150008091D001882319F01092D0019CC085E382 +:1051600096E00E94A40681E08093D101B1C08FE057 +:1051700096E00E94A4068DEF95E00E94A40680911F +:1051800012011F928F938AEF95E09F938F930E9455 +:105190003D0788EF95E00E94A40686EE95E00E9408 +:1051A000A406809111011F928F9383EE95E09F9347 +:1051B0008F930E943D0781EE95E00E94A40682ED48 +:1051C00095E00E94A406809110011F928F938FECAE +:1051D00095E09F938F930E943D078DEC95E00E9490 +:1051E000A4068CEB95E00E94A40680910F011F920B +:1051F0008F9389EB95E09F938F930E943D0787EBF8 +:1052000095E00E94A40682EA95E00E94A40680919F +:105210000E011F928F938FE995E09F938F930E94C9 +:105220003D078DE995E00E94A40686E895E00E947E +:10523000A40680910D011F928F9383E895E09F93C0 +:105240008F930E943D0781E895E00E94A4068DB7E8 +:105250009EB748960FB6F8949EBF0FBE8DBF1BC079 +:10526000CE51EC2FF0E0E95DFE4F80818093D001BC +:1052700012C061E003C061E006C06AE08091D00125 +:105280000E94722408C08091D0010E94152503C09D +:1052900086E296E013C08091D001882369F01F92C6 +:1052A0008F9380E296E09F938F930E943D070F902B +:1052B0000F900F900F9004C08DE196E00E94A4061D +:1052C00081E006C01092D10180E002C080E000CFF2 +:1052D000CF91089504D06894B1118DC0089570D015 +:1052E00088F09F5790F0B92F9927B751A0F0D1F0CF +:1052F000660F771F881F991F1AF0BA95C9F712C059 +:10530000B13081F077D0B1E0089574C0672F782F65 +:105310008827B85F39F0B93FCCF3869577956795C4 +:10532000B395D9F73EF490958095709561957F4F30 +:105330008F4F9F4F0895E89409C097FB3EF49095D6 +:105340008095709561957F4F8F4F9F4F9923A9F05E +:10535000F92F96E9BB279395F695879577956795ED +:10536000B795F111F8CFFAF4BB0F11F460FF1BC031 +:105370006F5F7F4F8F4F9F4F16C0882311F096E9C4 +:1053800011C0772321F09EE8872F762F05C0662372 +:1053900071F096E8862F70E060E02AF09A95660F2B +:1053A000771F881FDAF7880F9695879597F90895E4 +:1053B00057FD9058440F551F59F05F3F71F04795C6 +:1053C000880F97FB991F61F09F3F79F087950895AB +:1053D000121613061406551FF2CF4695F1DF08C0CA +:1053E000161617061806991FF1CF869571056105E7 +:1053F00008940895E894BB2766277727CB0197F98F +:1054000008950BD078C069D028F06ED018F095239D +:1054100009F05AC05FC01124EECFCADFA0F3959FF8 +:10542000D1F3950F50E0551F629FF001729FBB278B +:10543000F00DB11D639FAA27F00DB11DAA1F649F37 +:105440006627B00DA11D661F829F2227B00DA11DEA +:10545000621F739FB00DA11D621F839FA00D611D70 +:10546000221F749F3327A00D611D231F849F600D91 +:10547000211D822F762F6A2F11249F5750408AF0CA +:10548000E1F088234AF0EE0FFF1FBB1F661F771F56 +:10549000881F91505040A9F79E3F510570F014C0ED +:1054A000AACF5F3FECF3983EDCF38695779567953E +:1054B000B795F795E7959F5FC1F7FE2B880F911D74 +:1054C0009695879597F9089597F99F6780E870E01A +:1054D00060E008959FEF80EC089500240A9416166A +:1054E000170618060906089500240A9412161306D2 +:1054F000140605060895092E0394000C11F4882360 +:1055000052F0BB0F40F4BF2B11F460FF04C06F5F7B +:105510007F4F8F4F9F4F0895991B79E004C0991FCB +:10552000961708F0961B881F7A95C9F780950895FD +:1055300097FB072E16F4009407D077FD09D00E9440 +:10554000B22A07FC05D03EF4909581959F4F0895AF +:10555000709561957F4F0895EE0FFF1F0590F491B0 +:10556000E02D0994AA1BBB1B51E107C0AA1FBB1F5A +:10557000A617B70710F0A61BB70B881F991F5A95DF +:10558000A9F780959095BC01CD010895F999FECFBA +:1055900092BD81BDF89A992780B50895A8E1B0E041 +:1055A00042E050E00C94EE2A262FF999FECF92BDEE +:1055B00081BDF89A019700B4021639F01FBA20BDD8 +:1055C0000FB6F894FA9AF99A0FBE08950196272F0C +:1055D0000E94D52A0C94D42ADC01CB01FC01F99954 +:1055E000FECF06C0F2BDE1BDF89A319600B40D922F +:0C55F00041505040B8F70895F894FFCFE8 +:1055FC00470C380D150DE10CAD0C01B60128081443 +:10560C000A321E3F4D3620AF0362032C030C039865 +:10561C0002B102CA02E302010203040506070809EB +:02562C0000007C +:00000001FF diff --git a/keyboards/hhkb/keymaps/default/keymap.c b/keyboards/hhkb/keymaps/default/keymap.c new file mode 100644 index 000000000..bd5dd8372 --- /dev/null +++ b/keyboards/hhkb/keymaps/default/keymap.c @@ -0,0 +1,78 @@ +/* -*- eval: (turn-on-orgtbl); -*- + * default HHKB Layout + */ +#include "hhkb.h" + +#define BASE 0 +#define HHKB 1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* BASE Level: Default Layer + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Cont | A | S | D | F | G | H | J | K | L | ; | ' | Ent | | | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Fn0 | | | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + + |------+------+-----------------------+------+------| + | LAlt | LGUI | ******* Space ******* | RGUI | RAlt | + |------+------+-----------------------+------+------| + */ + + [BASE] = KEYMAP( // default layer + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \ + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB), \ + KC_LALT, KC_LGUI, /* */ KC_SPC, KC_RGUI, KC_RALT), + + + + /* Layer HHKB: HHKB mode (HHKB Fn) + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | Pwr | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | Caps | | | | | | | | Psc | Slk | Pus | Up | | Backs | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | | VoD | VoU | Mut | | | * | / | Hom | PgU | Lef | Rig | Enter | | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | | | | | | | + | - | End | PgD | Dow | | | | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + + |------+------+----------------------+------+------+ + | **** | **** | ******************** | **** | **** | + |------+------+----------------------+------+------+ + + */ + + [HHKB] = KEYMAP( + KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, \ + KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC, \ + KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)}; + + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboards/hhkb/keymaps/lxol/compiled.hex b/keyboards/hhkb/keymaps/lxol/compiled.hex new file mode 100644 index 000000000..63d3691c4 --- /dev/null +++ b/keyboards/hhkb/keymaps/lxol/compiled.hex @@ -0,0 +1,1421 @@ +:100000000C9493070C94D7070C94D7070C94D7073C +:100010000C94D7070C94D7070C94D7070C94D707E8 +:100020000C94D7070C94D7070C949B120C946D1367 +:100030000C945D200C94D7070C94D7070C94D70729 +:100040000C94D7070C94D7070C94D7070C94D707B8 +:100050000C94D7070C94FD200C94D7070C94D70769 +:100060000C94D7070C94D7070C94D7070C94D70798 +:100070000C94D7070C94D7070C94D7070C94D70788 +:100080000C94D7070C94D7070C94D7070C94D70778 +:100090000C94D7070C94D7070C94D7070C94D70768 +:1000A0000C94D7070C94D7070C94D707DA13FC13DA +:1000B000EA14FC13EA1441146414EA14B914CC14BD +:1000C000A617A617D517D51714183418641964196C +:1000D0003F186419EF18EF185519641964195E195F +:1000E000FC18FC18FC18FC18FC18FC18FC18FC1870 +:1000F000FC18FC18FC18FC18FC18FC18FC18FC1860 +:100100000C191A19211928193219253032583A2098 +:10011000253038620A000A722F63203031323334BE +:100120003536370A0028311F0014001A001644041F +:10013000461D001B000600200021001500080007D6 +:1001400000090019000500220023001C0017000A06 +:10015000000B00110000001E0029002B00E000E150 +:1001600000E200E3002C002400250018000C000E23 +:10017000000D0010000000310035002A00C0000210 +:1001800052E500E600E700260027001200130033C6 +:10019000450F43360000002D002E0030002F0034A4 +:1001A000003800370000001F0014001A0016460433 +:1001B000441D001B00060020002100150008000758 +:1001C00000090019000500220023001C0017000A86 +:1001D000000B00110000001E0029002B00E000E1D0 +:1001E00000E700E6002C002400250018000C000E9B +:1001F000000D0010000000310035002A00C0000290 +:1002000052E500E700E60026002700120013003345 +:10021000430F45360000002D002E0030002F003423 +:10022000003800370000003B0001000100A900AACF +:10023000000100010001003C003D0001000100A898 +:10024000000100010001003E003F0001000100012B +:10025000005500570000003A00A5003900010001D8 +:100260000001000100010040004100010046004A79 +:100270000054005600000049004C002A00580001BC +:100280000001000100010042004300470048005007 +:10029000004B004D00000044004500010052004F9B +:1002A0000051004E0000001F1814181A18161804E8 +:1002B000181D181B180618201821181518081807DB +:1002C00018091819180518221823181C1817180AC5 +:1002D000180B18111800001E1829182B18E018E127 +:1002E00018E200E3002C182418251818180C180E12 +:1002F000180D1810180000311835182A18C0000100 +:1003000000E518E600E70026182718121813180150 +:10031000000100361800002D182E1830182F183440 +:10032000183818371800001F0814081A08010001AF +:10033000001D081B080608200821081508080807E2 +:1003400008090819080508220823081C0817080AC4 +:10035000080B08110800001E0829082B08E008E116 +:1003600000E200E3002C082408250818080C080EF9 +:10037000080D0810080000310835082A08C00001DF +:1003800000E500E600E300260827081208130833FA +:10039000080F08360800002D082E0830082F0834F2 +:1003A000083808370800001F1414141A141614040F +:1003B000141D141B140614201421141514081407FA +:1003C00014091419140514221423141C1417140AE4 +:1003D000140B14111400001E1429142B14E014E142 +:1003E00014E200E3002C142414251418140C140E29 +:1003F000140D1410140000311435142A14C0000117 +:1004000000E514E600E70026142714121413140163 +:10041000000100361400002D142E1430142F143453 +:10042000143814371400001F0414041A04010001C6 +:10043000001D041B040604200421041504080407FD +:1004400004090419040504220423041C0417040AE3 +:10045000040B04110400001E0429042B04E004E131 +:1004600000E200E3002C042404250418040C040E0C +:10047000040D0410040000310435042A04C00001F6 +:1004800000E500E600E30026042704120413043309 +:10049000040F04360400002D042E0430042F04340D +:1004A000043804370400000A44454255473A2065A1 +:1004B0006E61626C65642E0A005B735D004B65794A +:1004C000626F6172642073746172742E0A005B57EC +:1004D0005D005B535D005B525D005B445D005B4310 +:1004E0005D001203480048004B00420020006D00F0 +:1004F0006F00640000000C0371002E006D002E00E0 +:100500006B0000000403090409027400040100A048 +:10051000FA09040000010301010009211101000191 +:10052000223F000705810308000A090401000103B6 +:10053000010200092111010001224D00070582037B +:1005400008000A090402000103000000092111014A +:1005500000012236000705830308000A090403008E +:1005600002030000000921110100012220000705FB +:10057000840320000107050403200001120110017B +:1005800000000008EDFEFECA040101020001063170 +:10059000FF0974A1010975150025FF9520750881D3 +:1005A000020976150025FF952075089102C0050106 +:1005B0000980A101850216010026B7001A01002A50 +:1005C000B700751095018100C0050C0901A10185D6 +:1005D00003160100269C021A01002A9C0275109540 +:1005E000018100C005010902A1010901A10005095D +:1005F000190129051500250195057501810295014F +:10060000750381010501093009311581257F9502A6 +:100610007508810609381581257F950175088106C1 +:10062000050C0A38021581257F950175088106C0E1 +:10063000C005010906A101050719E029E7150025F4 +:100640000195087501810295017508810105081958 +:100650000129059505750191029501750391010523 +:1006600007190029FF150025FF950675088100C0B0 +:100670000A002530325820006B6579626F61726420 +:100680005F7265706F72743A20004B6579626F61BA +:100690007264204C4544732073746174653A20255C +:1006A000780A00646F6E652E0A00626F6F676D6175 +:1006B000676963207363616E3A202E2E2E20002915 +:1006C0000A002575002F002575005D2800256400AF +:1006D0002000256400200025640020002564007CA3 +:1006E0000025303258006D6F7573656B6579205B3E +:1006F00062746E7C782079207620685D287265703F +:100700002F61636C293A205B006D6B5F77686565CC +:100710006C5F74696D655F746F5F6D6178203D20FB +:1007200025640A006D6B5F776865656C5F6D617845 +:100730005F7370656564203D2025640A006D6B5F02 +:1007400074696D655F746F5F6D6178203D2025640D +:100750000A006D6B5F6D61785F7370656564203D45 +:100760002025640A006D6B5F696E74657276616C3A +:10077000203D2025640A006D6B5F64656C61792003 +:100780003D2025640A006D6B5F776865656C5F745A +:10079000696D655F746F5F6D6178203D2025640A27 +:1007A000006D6B5F776865656C5F6D61785F737016 +:1007B000656564203D2025640A006D6B5F74696D7A +:1007C000655F746F5F6D6178203D2025640A006D60 +:1007D0006B5F6D61785F7370656564203D20256493 +:1007E0000A006D6B5F696E74657276616C203D20E6 +:1007F00025640A006D6B5F64656C6179203D20257E +:10080000640A000A00257500363A20776865656C31 +:100810005F74696D655F746F5F6D61783A20000A7F +:1008200000257500353A20776865656C5F6D6178E5 +:100830005F73706565643A20000A00257500343ADC +:100840002074696D655F746F5F6D61783A20000A8E +:1008500000257500333A206D61785F7370656564BB +:100860003A20000A00257500323A20696E746572DC +:1008700076616C286D73293A20000A0025750031D5 +:100880003A2064656C6179282A31306D73293A20E9 +:10089000000A092D2056616C756573202D0A004DE4 +:1008A0003E004D25643E20003F0073657420646562 +:1008B0006661756C740A00433E2000776865726556 +:1008C0002064656C74613A20637572736F723D25A4 +:1008D000642C20776865656C3D25640A5365652046 +:1008E000687474703A2F2F656E2E77696B69706526 +:1008F0006469612E6F72672F77696B692F4D6F7511 +:1009000073655F6B6579730A000A092D204D6F7559 +:1009100073656B6579202D0A4553432F713A097130 +:100920007569740A313A0964656C6179282A313035 +:100930006D73290A323A09696E74657276616C28A2 +:100940006D73290A333A096D61785F737065656468 +:100950000A343A0974696D655F746F5F6D61780A76 +:10096000353A09776865656C5F6D61785F737065AE +:1009700065640A363A09776865656C5F74696D6508 +:100980005F746F5F6D61780A0A703A097072696E00 +:10099000742076616C7565730A643A097365742016 +:1009A00064656661756C74730A75703A092B310A57 +:1009B000646F776E3A092D310A706775703A092BAA +:1009C00031300A7067646F776E3A092D31300A0A48 +:1009D0007370656564203D2064656C7461202A2015 +:1009E0006D61785F7370656564202A202872657078 +:1009F000656174202F2074696D655F746F5F6D6130 +:100A000078290A003F004D3E2000433E20004C253F +:100A1000640A0074696D65725F636F756E743A2065 +:100A20002530346C580A006B6579626F6172645FBF +:100A300069646C653A2025580A006B6579626F61BC +:100A400072645F70726F746F636F6C3A2025580A1E +:100A500000686F73745F6B6579626F6172645F6C5D +:100A600065647328293A2025580A000A092D205365 +:100A70007461747573202D0A004743433A20342E65 +:100A8000392E32204156522D4C4942433A20312EC4 +:100A9000382E31204156525F415243483A20617608 +:100AA00072350A004F5054494F4E533A204C554628 +:100AB0004120424F4F544D41474943204D4F5553DC +:100AC000454B45592045585452414B455920434FB9 +:100AD0004E534F4C4520434F4D4D414E44203531F0 +:100AE000320A004255494C443A2031363731386594 +:100AF000662D6469727479202832333A33393A3476 +:100B000039204A756E2020392032303136290A00CA +:100B10005649443A2030784645454428712E6D2E7A +:100B20006B29205049443A203078434146452848B3 +:100B3000484B42206D6F6429205645523A20307848 +:100B4000303130340A00444553433A20712E6D2E23 +:100B50006B206B6579626F617264206669726D7774 +:100B600061726520666F722048484B420A000A098C +:100B70002D2056657273696F6E202D0A000A092DAB +:100B800020436F6E736F6C65202D0A4553432F71A0 +:100B90003A09717569740A6D3A096D6F7573656B01 +:100BA00065790A000A092D204D61676963202D0AC5 +:100BB000443A094465627567204D657373616765E2 +:100BC00020546F67676C650A583A094D6174726901 +:100BD00078204465627567204D6F646520546F67A7 +:100BE000676C65202D2053686F77206B6579707274 +:100BF000657373657320696E206D61747269782006 +:100C0000677269640A4B3A094B6579626F61726475 +:100C100020446562756720546F67676C65202D20DE +:100C200053686F77206B6579707265737320726596 +:100C3000706F72740A4D3A094465627567204D6F92 +:100C400075736520546F67676C650A563A09566577 +:100C50007273696F6E0A533A095374617475730A3B +:100C6000433A09416374697661746520436F6E731A +:100C70006F6C65204D6F64650A46312D4631303A00 +:100C80000953776974636820746F204C61796572C9 +:100C900020302D392028463130203D204C30290A83 +:100CA000302D393A0953776974636820746F204C8A +:100CB0006179657220302D390A4553433A095377DB +:100CC0006974636820746F204C61796572203020EC +:100CD00028616C7465726E617465206B6579203172 +:100CE000290A47524156453A095377697463682087 +:100CF000746F204C6179657220302028616C7465B6 +:100D0000726E617465206B65792032290A504155F5 +:100D100053453A094A756D7020746F20426F6F74A5 +:100D20006C6F6164657220285265736574290A4589 +:100D30003A095072696E7420454550524F4D205308 +:100D4000657474696E67730A000A002575002E6E5B +:100D50006B726F3A20000A002575002E7377617060 +:100D60005F6261636B736C6173685F6261636B7315 +:100D7000706163653A20000A002575002E73776163 +:100D8000705F67726176655F6573633A20000A0081 +:100D90002575002E6E6F5F6775693A20000A002581 +:100DA00075002E737761705F72616C745F72677526 +:100DB000693A20000A002575002E737761705F6C18 +:100DC000616C745F6C6775693A20000A00257500D4 +:100DD0002E636170736C6F636B5F746F5F636F6EB4 +:100DE00074726F6C3A20000A002575002E737761CB +:100DF000705F636F6E74726F6C5F636170736C6F42 +:100E0000636B3A20000A0025303258006B65796D1B +:100E100061705F636F6E6669672E7261773A20005A +:100E20000A002575002E6D6F7573653A20000A0063 +:100E30002575002E6B6579626F6172643A20000A35 +:100E4000002575002E6D61747269783A20000A00E1 +:100E50002575002E656E61626C653A20000A0025DA +:100E60003032580064656275675F636F6E666967EC +:100E70002E7261773A20000A00257500646566616C +:100E8000756C745F6C617965723A20003F000A6D81 +:100E90006F7573653A206F66660A000A6D6F757329 +:100EA000653A206F6E0A000A6B6579626F61726441 +:100EB0003A206F66660A000A6B6579626F61726438 +:100EC0003A206F6E0A000A6D61747269783A206F79 +:100ED00066660A000A6D61747269783A206F6E0A5C +:100EE000000A64656275673A206F66660A000A64E4 +:100EF000656275673A206F6E0A000A0A4A756D705E +:100F0000696E6720746F20626F6F746C6F616465C7 +:100F1000722E2E2E2000433E20006565636F6E66A4 +:100F200069673A0A000011241FBECFEFDAE0DEBF86 +:100F3000CDBF04B603FE24C08091E0019091E10191 +:100F4000A091E201B091E3018730904BA740B04BF4 +:100F5000B9F41092E0011092E1011092E2011092B6 +:100F6000E30114BE84B7877F84BF88E10FB6F8948D +:100F700080936000109260000FBEE0E0FFE30995EF +:100F800011E0A0E0B1E0EEE7F8E502C005900D92B7 +:100F9000A233B107D9F711E0A2E3B1E001C01D927D +:100FA000A03EB107E1F70E94D50F0C943D2C0C94A4 +:100FB0000000FF93EF93E0913201F09133013097FD +:100FC00009F00995EF91FF910895FC01859180301A +:100FD00011F0EFDFFBCF0895FF27E0E230E247FF9B +:100FE0000CC0419597FF09C0EDE260957095809522 +:100FF0009095611D711D811D911D27FF02C02195D6 +:1010000030E350E2AA27660F771F881F991FAA1F97 +:10101000A41710F0A41B63955A95A9F7AA3008F0FD +:10102000A95FA05DAF93F3956115710581059105E9 +:1010300041F7ED3211F4EF93F395F21718F43F9363 +:10104000F395FBCF8F91B5DFFA95E1F70895E9911C +:10105000F9918591803021F0853219F0AADFF9CF1E +:10106000089520E0E89455915532C1F3503311F4BE +:10107000689455915A3348F4505390F3220F022E3E +:10108000220F220F200D250FF4CF0EF42195899108 +:101090009991533619F3533729F1533559F1BC015E +:1010A00088279927E8945C3621F48991999168946E +:1010B0005591543639F446EF7EF077FF0DC08FEF2F +:1010C0009FEF0AC055374AE039F0583540E121F02A +:1010D000523642E009F00895FF93EF937DDFEF91E0 +:1010E000FF91B7CFFF93EF93FC0181918030B9F36B +:1010F00060DFFBCFFF93EF9368DFF1CFDF93CF93F8 +:10110000CDB7DEB72596A3DFCF91DF9108958FEF9E +:1011100084B980E485B957985F9A2E9A2F98ECE3AA +:10112000F1E088E08E0F11928E13FDCFE4E3F1E041 +:1011300088E08E0F11928E13FDCF8CE391E0909397 +:1011400047018093460184E391E0909345018093A9 +:1011500044010895EF92FF920F931F93CF93DF9373 +:1011600080914401909145012091460130914701C1 +:1011700030934501209344019093470180934601A9 +:10118000C0E0D0E0EE24E394F12C0FEF10E020E07B +:1011900030E085B1807C8C2BA90193E0440F551F72 +:1011A0009A95E1F7842B85B98AE18A95F1F700C019 +:1011B000E0914401F0914501EC0FFD1F808190E02A +:1011C000022E02C0959587950A94E2F780FD2F9A2A +:1011D00095E39A95F1F70000E6B52E988AE18A9595 +:1011E000F1F700C04091460150914701DA01AC0F80 +:1011F000BD1F4F9B0AC0C701022E01C0880F0A9471 +:10120000EAF780959C91892308C06C91C701022E52 +:1012100001C0880F0A94EAF7862B8C9386B56E2F4F +:1012200070E08E1728F086B590E0861B970B06C0FD +:10123000E6B5C801861B970B8E0F911D069758F0D7 +:10124000E0914401F0914501EC0FFD1F8081FA010E +:10125000EC0FFD1F80839AE19A95F1F700C02F985B +:101260002E9A8BE291E00197F1F700C000002F5F0A +:101270003F4F2830310509F08CCFA0914601B09145 +:101280004701AC0FBD1FE0914401F0914501EC0F07 +:10129000FD1F9C918081981751F00E949B206093C4 +:1012A00048017093490180934A0190934B01219624 +:1012B000C830D10509F06BCF8091D601853021F07F +:1012C0008091D601811111C060914801709149014E +:1012D00080914A0190914B010E94D1206131774267 +:1012E0008105910510F00E94202081E0DF91CF91CF +:1012F0001F910F91FF90EF9008952091460130913A +:101300004701F901E80FF11D808108950F931F93A4 +:10131000CF93DF9386E191E00E94E507C0E0D0E043 +:101320000AE011E0E0914601F0914701EC0FFD1F4A +:1013300080810E940A201F928F93DF93CF931F9387 +:101340000F930E947E0821960F900F900F900F90A0 +:101350000F900F90C830D10529F7DF91CF911F91E1 +:101360000F9108951F93CF93DF93C7E0D0E010E073 +:10137000E0914601F0914701EC0FFD1F808190E064 +:101380000E94FE1F180F219798F7812FDF91CF91B0 +:101390001F9108950895089561110BC0FC01828189 +:1013A000882321F085EE0E949A1603C085EE0E94E4 +:1013B000391780E090E0089581E0089581E0089574 +:1013C0000C94DE0908950F931F93CF93DF938C0144 +:1013D000FC01C081D181CE010E94C81EBE010E94C5 +:1013E0008C0AEC01B8010E94E009882309F48DC041 +:1013F000F8018281882309F44AC080915701811144 +:101400001FC0C431F0E5DF0709F051C00E94E209B6 +:1014100081E0809357010E948F2090935601809322 +:10142000550110924E011092500110924F011092EE +:10143000520110925101109254011092530165C053 +:1014400080915501909156010E94A720883C9105FA +:1014500070F480914E01E82FF0E0EE0FFF1FE15B8A +:10146000FE4FD183C0838F5F80934E014EC0C4383E +:1014700080E5D80721F0C538D04501F13AC0F80120 +:101480008281882341F010924C0182E01EC0C43852 +:10149000E0E5DE0759F580914C01811106C086E236 +:1014A0000E949A1686E20E94391782E01CC0C43856 +:1014B000F0E5DF0741F3C538D045D9F4F801828162 +:1014C000882331F010924D0180E20E9461171DC007 +:1014D00080914D01811106C087E20E949A1687E231 +:1014E0000E94391780E20E9468170FC0C538D045A6 +:1014F00029F381E080934C0180934D01C801DF9175 +:10150000CF911F910F910C94DC0980E0DF91CF9176 +:101510001F910F9108950895E72FF0E098E0899FBB +:10152000E00DF11D112483E0EE0FFF1F8A95E1F716 +:10153000E60FF11DEE0FFF1FE95DFE4F85919491BF +:101540000895880F991FFC01EB55F0408591949107 +:101550000895880F991FFC01EB5DFE4F85919491D2 +:1015600008950F931F93CF93DF93EC01811520E330 +:10157000920750F5C11580E2D80708F0C3C0CB3BF5 +:10158000D10590F4C83AD10508F06AC0C53AD10532 +:1015900008F05BC0C430D10508F0D4C1219709F030 +:1015A000CEC101E010E00EC2CF3FD10511F008F02E +:1015B000C9C1C03FD10508F0A2C0CE01805E91092B +:1015C000089708F4BFC1BBC1C13090E5D90709F441 +:1015D000A2C020F5C0318FE4D80770F4C11590E4A3 +:1015E000D90708F094C0C11521E3D20708F0A7C1BC +:1015F000DD278E01106CE6C1C115D04509F09FC1F1 +:101600000E94CF198FEF94E32CE08150904020404E +:10161000E1F700C000000E942221D4C1C11597E566 +:10162000D90758F4C03121E5D20708F020C1C431F0 +:1016300080E5D80708F479C082C1CE0190578115A2 +:10164000904108F07CC1DF7077C1C53AD10509F43B +:101650007BC1C63AD10509F07AC102E810E4B2C1F3 +:10166000C83AD10509F476C1C93AD10509F475C162 +:10167000CA3AD10509F474C1CB3AD10509F473C152 +:10168000CC3AD10509F472C1CD3AD10509F471C142 +:10169000C03BD10509F470C1CE3AD10509F46FC140 +:1016A000CF3AD10509F46EC1C13BD10509F46DC132 +:1016B000C23BD10509F46CC1C33BD10509F46BC130 +:1016C000C43BD10509F46AC1C53BD10509F469C120 +:1016D000C63BD10509F468C1C73BD10509F467C110 +:1016E000C83BD10509F466C1C93BD10509F465C100 +:1016F000CA3BD10509F464C100E014E463C18E0162 +:10170000106560C1CE019F700E94A90A5CC1DF70A4 +:101710008E01106A57C187EA94E00E94E507809124 +:10172000C10181608093C1014DC10E94C822811115 +:1017300002C00E94AE220E94E52290E09093E00158 +:101740008093DF01C23080E5D80721F48091DF016A +:10175000816086C0C43090E5D90721F48091DF0113 +:1017600082607EC0C63020E5D20721F48091DF017F +:10177000846076C0C83080E5D80719F48091DF0115 +:1017800027C0CA3090E5D90721F48091DF0180613C +:1017900067C0CC3020E5D20721F48091DF01806260 +:1017A0005FC0CE3080E5D80721F48091DF018064EE +:1017B00057C0C03190E5D90721F48091DF018068DE +:1017C0004FC0C23120E5D20729F48091DF01846047 +:1017D000886046C0C33080E5D80721F48091DF01DE +:1017E0008E7F3EC0C53090E5D90721F48091DF019E +:1017F0008D7F36C0C73020E5D20721F48091DF010C +:101800008B7F2EC0C93080E5D80719F48091DF01A5 +:1018100026C0CB3090E5D90721F48091DF018F7E7F +:101820001FC0CD3020E5D20721F48091DF018F7DEC +:1018300017C0CF3080E5D80721F48091DF018F7B7E +:101840000FC0C13190E5D90721F48091DF018F7776 +:1018500007C0C331D04531F48091DF018B7F877F92 +:101860008093DF018091DF010E94E922ABC08D2FC0 +:1018700099278F70992781309105D9F49E012370A3 +:10188000332702C0880F991F2A95E2F79C688E01C2 +:1018900044E0000F111F4A95E1F700271370802BD9 +:1018A000912B53E0CC0FDD1F5A95E1F7C076DD2771 +:1018B0002FC08230910531F4DC2FCC278E01016FCF +:1018C000106A80C08330910569F4CE018370992736 +:1018D00001E010E002C0000F111F8A95E2F7C80175 +:1018E0009C680FC084309105B9F4CE0183709927AC +:1018F00001E010E002C0000F111F8A95E2F7C80155 +:101900009A6823E0CC0FDD1F2A95E1F7C07ED770DF +:101910008C010C2B1D2B56C08530910531F4DC2F2A +:10192000CC278E01046F106A4DC0069709F04AC09B +:10193000CF71DD27DC2FCC278E01106243C000E081 +:1019400010E040C08E013EC001E810E43BC003E857 +:1019500010E438C002EE14E435C009EE14E432C0DD +:101960000AEE14E42FC005EB14E42CC006EB14E4DB +:1019700029C007EB14E426C00CEC14E423C00DECE2 +:1019800014E420C003E815E41DC00AE815E41AC0F9 +:1019900002E915E417C004E915E414C001E216E4F5 +:1019A00011C003E216E40EC004E216E40BC005E227 +:1019B00016E408C006E216E405C007E216E402C019 +:1019C0000AE216E4C801DF91CF911F910F910895AB +:1019D000E72FF0E098E0899FE00DF11D112483E0EE +:1019E000EE0FFF1F8A95E1F7E60FF11DEE0FFF1FC7 +:1019F000E95DFE4F85919491803E9105E0F4803C35 +:101A0000910558F58133910509F46FC048F4893286 +:101A1000910509F463C08A32910509F46DC072C062 +:101A200089339105E9F082389105D1F0853391052C +:101A300009F44DC067C0833E910581F138F4803EC2 +:101A40009105B9F0823E9105D9F05CC0863E9105C2 +:101A500061F1873E9105A1F155C00E94A10A089548 +:101A60002091DF0120FD02C021FF4CC080EE90E0FC +:101A700049C08091DF0180FFF9CF89E390E042C047 +:101A80008091DF0182FF0EC08091DF0184FF03C0DF +:101A900080E090E037C083EE90E034C08091DF01B9 +:101AA00082FFF2CF82EE90E02DC08091DF0183FFB4 +:101AB0000BC08091DF0184FDEBCF87EE90E022C068 +:101AC0008091DF0183FFF5CF86EE90E01BC080910F +:101AD000DF0185FF07C089E290E014C08091DF013B +:101AE00085FFF9CF85E390E00DC08091DF0186FF8F +:101AF00007C08AE290E006C08091DF0186FFF9CF3F +:101B000081E390E00E94B10A089508950C94850D38 +:101B10008091630108959FB7F89410925A019FBF76 +:101B20009091D601943009F057C09091E9009F70D0 +:101B30003091EC00232F217030FD20E8922B24E01F +:101B40002093E9002091EB0020FF43C02091EE009C +:101B500027FF3FC020915801222321F02091E80067 +:101B600025FF37C01092580126E03091E80035FD7E +:101B700015C03091D601343061F53091EB0035FD60 +:101B800028C0215021F481E08093580122C0EFE960 +:101B9000FFE03197F1F700C00000E7CF8093F1003C +:101BA0008091E80085FD0AC08091E80080FFFCCFAD +:101BB0008091E8008E778093E80006C08FB7F89494 +:101BC00021E020935A018FBF9F709093E90080E03D +:101BD00008959F709093E9008FEF0895CF93DF935E +:101BE00000D01F92CDB7DEB79C018091D601843022 +:101BF00019F593E099833B832A839093E9008FEF53 +:101C00009091E800815095FD06C095ED9A95F1F709 +:101C100000008111F5CF8091E80085FF0DC040E004 +:101C200050E063E070E0CE0101960E948B1080913D +:101C3000E8008E778093E8000F900F900F90DF916F +:101C4000CF910895CF93DF9300D01F92CDB7DEB729 +:101C50002091D601243021F522E029839B838A83B9 +:101C600083E08093E9008FEF9091E800815095FD2B +:101C700006C095ED9A95F1F700008111F5CF80919E +:101C8000E80085FF0DC040E050E063E070E0CE0169 +:101C900001960E948B108091E8008E778093E80077 +:101CA0000F900F900F90DF91CF9108952091D60162 +:101CB0002430F1F422E02093E9002FEF3091E80086 +:101CC000215035FD06C035ED3A95F1F700002111A0 +:101CD000F5CF2091E80025FF0BC040E050E065E023 +:101CE00070E00E948B108091E8008E778093E8006E +:101CF0000895CF93DF932091D601243039F521E068 +:101D00002093E9002FEF3091E800215035FD06C007 +:101D100035ED3A95F1F700002111F5CF2091E8005B +:101D200025FF14C0EC0140E050E068E070E00E9444 +:101D30008B108091E8008E778093E80088E0FE01A8 +:101D4000ABE5B1E001900D928A95E1F7DF91CF917B +:101D500008958EED94E00E94E5078091D5018111F0 +:101D600009C00E9420120E947D128091E2008460CE +:101D70008093E20008958AED94E00E94E5071092B6 +:101D8000D501089586ED94E00C94E50782ED94E08A +:101D90000C94E5078EEC94E00E94E5070C94572024 +:101DA000209159012F5F822F62E30E94CD2B99234E +:101DB00019F02093590108951092590180915A0108 +:101DC000882371F18091D601843041F58091E9003A +:101DD0008F702091EC00922F917020FD90E8892B5C +:101DE00094E09093E9009091EB0090FF14C09091E3 +:101DF000EE0097FF10C09091E80095FF03C010928D +:101E0000F100F9CF9091E80090FF05C09091E800B3 +:101E10009E779093E8008F708093E90010925A01AA +:101E2000089542E061EC81E00E949A1142E061EC89 +:101E300082E00E949A1142E061EC83E00E949A11D4 +:101E400042E261EC84E00C949A118091D8018330D5 +:101E500009F453C030F4813071F0823009F48CC041 +:101E600008958A3009F478C08B3009F45EC0893057 +:101E700009F09AC020C08091D701813A09F094C03E +:101E80008091E800877F8093E8008091DB0190914A +:101E9000DC01892B21F468E08BE591E003C060E070 +:101EA00080E090E070E00E94D6108091E8008B778F +:101EB0008093E80008958091D701813209F074C0C1 +:101EC0008091DB019091DC01892B09F06DC080913C +:101ED000E800877F8093E8008091E80082FD05C0DC +:101EE0008091D6018111F8CF5FC08091F10080937D +:101EF00063018091E8008B7753C08091D701813ACC +:101F000009F052C08091DB019091DC01892B09F02E +:101F10004BC08091E800877F8093E8008091E800C3 +:101F200080FFFCCF80910A0136C08091D7018132B9 +:101F3000D9F58091DB019091DC01892BA9F5809185 +:101F4000E800877F8093E8000E94CF118091D9013B +:101F500080930A010C94CF198091D701813221F529 +:101F60008091E800877F8093E8000E94CF118091E4 +:101F7000DA018093640108958091D701813AA1F438 +:101F80008091E800877F8093E8008091E80080FFDF +:101F9000FCCF809164018093F1008091E8008E77FE +:101FA0008093E8000C94CF11089584B7877F84BF95 +:101FB00088E10FB6F89480936000109260000FBE25 +:101FC00090E080E80FB6F8948093610090936100F0 +:101FD0000FBE0E94AF150E9420120E947D128091B8 +:101FE000E20084608093E2008BE89DE00E94F91F8C +:101FF00078940E9402150E94B11580E091E00E9441 +:102000001D158DEB94E00E94E5078091D601853087 +:1020100089F489EB94E00E94E5070E9420208091DA +:10202000D401882391F30E944920882371F30E94F0 +:102030007510EBCF0E94D515E8CF292F3327233019 +:102040003105C9F064F42130310581F022303105C9 +:1020500009F043C084E790E028E035E042C0213237 +:102060003105F1F02232310541F137C082E190E0D3 +:102070002CE735E036C099278130910541F0823058 +:10208000910541F0892B49F5E4E0F5E005C0E6EF64 +:10209000F4E002C0E2EEF4E0849190E09F0121C000 +:1020A0006430D8F4E62FF0E0EE0FFF1FE15EFE4F44 +:1020B0002081318189E090E014C0643070F470E0D8 +:1020C000FB01EE0FFF1FE95EFE4F20813181FB0116 +:1020D000ED5EFE4F808190E004C080E090E020E063 +:1020E00030E0FA0131832083089580E189BD82E1E7 +:1020F00089BD09B400FEFDCF8091D8008F7D80930B +:10210000D8008091E00082608093E0008091E00040 +:1021100081FDFCCF0895CF92DF92EF92FF920F9353 +:102120001F93CF93DF93EC018B016A010E94EE11A4 +:10213000811133C0C114D10439F0F601808191813D +:10214000081B190BC80FD91FE12CF12C0115110523 +:1021500019F18091E80085FD16C08091E8008E7726 +:102160008093E800C114D10449F0F6018081918187 +:10217000E80EF91EF182E08285E00FC00E94EE11A8 +:10218000882321F30AC089918093F100015011093D +:10219000FFEFEF1AFF0ADACF80E0DF91CF911F91B6 +:1021A0000F91FF90EF90DF90CF9008952091DD0187 +:1021B0003091DE012617370748F06115710539F4B3 +:1021C0002091E8002E772093E80001C0B90140E09B +:1021D00061157105A9F12091D601222309F443C0AC +:1021E000253009F442C02091E80023FD40C0209131 +:1021F000E80022FD32C02091E80020FFE9CF4091A5 +:10220000F3002091F20030E0342BFC01CF01611586 +:10221000710559F02830310540F481918093F10027 +:10222000615071092F5F3F4FF1CF41E028303105F8 +:1022300009F040E02091E8002E772093E800C8CF15 +:102240004111C9CF0AC08091D601882361F0853041 +:1022500061F08091E80083FD0AC08091E80082FF70 +:10226000F2CF80E0089582E0089583E0089581E050 +:1022700008952091DD013091DE012617370748F0DF +:102280006115710539F42091E8002E772093E8005C +:1022900001C0B901FC0120E06115710591F1809147 +:1022A000D601882309F440C0853009F43FC08091ED +:1022B000E80083FD3DC08091E80082FD2FC0809141 +:1022C000E80080FFE9CF2091F3008091F20090E0D8 +:1022D000922B6115710559F08830910540F42491D5 +:1022E0002093F1003196615071090196F2CF21E0FF +:1022F000089709F020E08091E8008E778093E8004D +:10230000CBCF2111CCCF0AC08091D601882361F0B8 +:10231000853061F08091E80083FD0AC08091E8007B +:1023200082FFF2CF80E0089582E0089583E008956F +:1023300081E00895982F973058F59093E900981709 +:1023400039F07091EC002091ED005091F00003C045 +:10235000242F762F50E021FF19C03091EB003E7FF3 +:102360003093EB003091ED003D7F3093ED003091E4 +:10237000EB0031603093EB007093EC002093ED00A4 +:102380005093F0002091EE0027FF07C09F5FD3CF4E +:102390008F708093E90081E0089580E00895809136 +:1023A000D70187FF11C08091E80082FD05C08091B0 +:1023B000D6018111F8CF11C08091E8008B770BC056 +:1023C0008091D601882349F08091E80080FFF8CF02 +:1023D0008091E8008E778093E80008952091E400D2 +:1023E0003091E50095E64091EC00842F817040FF2C +:1023F00022C08091E80080FD1CC08091D601882316 +:1024000091F0853091F08091EB0085FD10C04091F6 +:10241000E4005091E5004217530729F39A019150C7 +:1024200011F784E0089582E0089583E0089581E043 +:10243000089580E008954091E80042FFDECF0895BE +:102440000E948E120E949612E0EEF0E08081816080 +:102450008083E8EDF0E080818F77808319BCA7ED61 +:10246000B0E08C918E7F8C9380818F7E80831092E0 +:10247000D50108950F931F93CF93DF930E948E127F +:102480000E949612C8EDD0E088818F77888388817A +:102490008068888388818F7D888319BC1092D601DB +:1024A0001092D2011092D4011092D30100EE10E0EC +:1024B000F80180818B7F808388818160888342E0FE +:1024C00060E080E00E949A11E1EEF0E080818E7F72 +:1024D0008083E2EEF0E0808181608083808188608B +:1024E0008083F80180818E7F8083888180618883EA +:1024F000DF91CF911F910F910895E8EDF0E0808179 +:102500008F7E8083E7EDF0E080818160808384E0CE +:1025100082BF81E08093D5010C943A12E8EDF0E09F +:1025200080818E7F80831092E20008951092DA00FD +:102530001092E10008951F920F920FB60F9211248E +:102540002F933F934F935F936F937F938F939F93BB +:10255000AF93BF93EF93FF938091E10082FF0BC095 +:102560008091E20082FF07C08091E1008B7F809321 +:10257000E1000E94D00E8091DA0080FF1FC08091A0 +:10258000D80080FF1BC08091DA008E7F8093DA0034 +:102590008091D90080FF0DC080E189BD82E189BDB5 +:1025A00009B400FEFDCF81E08093D6010E94A90E00 +:1025B00005C019BC1092D6010E94BB0E8091E100AB +:1025C00080FF19C08091E20080FF15C08091E20079 +:1025D0008E7F8093E2008091E20080618093E20030 +:1025E0008091D80080628093D80019BC85E08093E8 +:1025F000D6010E94C60E8091E10084FF30C0809118 +:10260000E20084FF2CC080E189BD82E189BD09B46C +:1026100000FEFDCF8091D8008F7D8093D8008091FF +:10262000E1008F7E8093E1008091E2008F7E8093B5 +:10263000E2008091E20081608093E2008091D2010B +:10264000882311F084E007C08091E30087FD02C079 +:1026500081E001C083E08093D6010E94CA0E809180 +:10266000E10083FF29C08091E20083FF25C08091B3 +:10267000E100877F8093E10082E08093D601109291 +:10268000D2018091E1008E7F8093E1008091E20091 +:102690008E7F8093E2008091E20080618093E2006F +:1026A00042E060E080E00E949A118091F000886032 +:1026B0008093F0000E94C20EFF91EF91BF91AF9105 +:1026C0009F918F917F916F915F914F913F912F914A +:1026D0000F900FBE0F901F9018951F920F920FB67C +:1026E0000F9211242F933F934F935F936F937F9398 +:1026F0008F939F93AF93BF93CF93DF93EF93FF930A +:10270000C091E900CF708091EC00D82FD17080FD8E +:10271000D0E81092E9008091F000877F8093F0006C +:1027200078940E94B1131092E9008091F0008860C3 +:102730008093F000CD2BCF70C093E900FF91EF9113 +:10274000DF91CF91BF91AF919F918F917F916F91C9 +:102750005F914F913F912F910F900FBE0F901F905F +:1027600018951F93CF93DF93CDB7DEB7AA970FB617 +:10277000F894DEBF0FBECDBFE7EDF1E088E08E0F2D +:102780009091F10091938E13FBCF0E94250F8091C1 +:10279000E80083FF1FC18091D7019091D801492F94 +:1027A00050E04A30510508F015C1FA01EA5AFF4FCE +:1027B0000C94ED2B803881F0823809F00BC18091A8 +:1027C000DB018F708093E9008091EB0085FB882707 +:1027D00080F91092E90006C08091D3019091D40154 +:1027E000911182609091E800977F9093E800809328 +:1027F000F1001092F100C8C0282F2D7F09F0EAC027 +:10280000882319F0823061F0E5C08091D9018130D0 +:1028100009F0E0C0933009F080E08093D4012BC030 +:102820008091D901811127C08091DB018F7009F45B +:10283000D1C08093E9002091EB0020FF1CC09330B1 +:1028400021F48091EB00806214C09091EB009061C4 +:102850009093EB0021E030E0A90102C0440F551F26 +:102860008A95E2F74093EA001092EA008091EB002B +:1028700088608093EB001092E9008091E800877FE8 +:1028800086C08111A7C01091D9011F778091E30004 +:102890008078812B8093E3008091E800877F80938C +:1028A000E8000E94CF118091E80080FFFCCF80916A +:1028B000E30080688093E300111102C082E001C050 +:1028C00083E08093D60186C08058823008F082C0B1 +:1028D0008091D9019091DA018C3D53E0950779F50B +:1028E00083E08A838AE289834FB7F894DE011396E6 +:1028F00020E03EE051E2E32FF0E050935700E491F6 +:1029000020FF03C0E295EF703F5FEF708E2F90E0E5 +:10291000EA3010F0C79601C0C0968D939D932F5F4B +:10292000243149F74FBF8091E800877F8093E8000A +:102930006AE270E0CE0101960E94D61014C0AE018A +:102940004F5F5F4F6091DB010E941D10BC0100973B +:1029500009F440C09091E800977F9093E800898146 +:102960009A810E9439118091E8008B778093E8006A +:1029700031C0803879F58091E800877F8093E80046 +:102980008091D2018093F1008091E8008E7780934E +:10299000E8000E94CF111EC081111CC09091D90186 +:1029A0009230C0F48091E800877F8093E800909394 +:1029B000D2010E94CF118091D201811106C0809175 +:1029C000E30087FD02C081E001C084E08093D6016E +:1029D0000E94110F8091E80083FF0AC08091E800F7 +:1029E000877F8093E8008091EB0080628093EB000A +:1029F000AA960FB6F894DEBF0FBECDBFDF91CF9180 +:102A00001F910895CF938091D6018823A1F0C091A2 +:102A1000E900CF709091EC00892F817090FD80E8E3 +:102A2000C82B1092E9008091E80083FD0E94B11349 +:102A3000CF70C093E900CF91089590936A0180937D +:102A400069010895E0916901F0916A01309721F0E0 +:102A50000190F081E02D099480E00895EF92FF92BB +:102A60000F931F93CF93DF93E0916901F0916A0177 +:102A70003097B1F18C010280F381E02D09958091AE +:102A8000C10182FF2DC080FF04C088E796E00E944C +:102A9000E507E80118E082E7E82E86E0F82E80914D +:102AA000C10180FF0BC088811F928F93FF92EF922C +:102AB0000E947E080F900F900F900F90115021965A +:102AC0001111EDCF8091C10180FF0AC080E796E02F +:102AD000DF91CF911F910F91FF90EF900C94E5073C +:102AE000DF91CF911F910F91FF90EF900895E091AA +:102AF0006901F0916A01309721F00480F581E02DA1 +:102B00000994089520916701309168018217930715 +:102B100071F09093680180936701E0916901F091F1 +:102B20006A01309721F00680F781E02D099408951D +:102B300020916501309166018217930771F090939F +:102B4000660180936501E0916901F0916A01309717 +:102B500021F00084F185E02D0994089508950C94E6 +:102B6000AE150E9486200E9487080C948021CF9386 +:102B7000DF931F92CDB7DEB79091C10192FF10C0D5 +:102B800090FF0EC01F928F932AE836E03F932F9359 +:102B900089830E947E080F900F900F900F9089817B +:102BA0000F90DF91CF910C94860D9F92AF92BF92C0 +:102BB000CF92DF92EF92FF920F931F93CF93DF9309 +:102BC00000D000D000D0CDB7DEB70E94AA0807E041 +:102BD00010E0AA24A394B12C902E802F0E947D098E +:102BE000980124593E4F6901F901F080F826A1F4BB +:102BF0000150110988F78FEF89838A831B820E9415 +:102C00008F208160782F9D838C8349815A816B81CD +:102C10008D810E946C162FC09091C10191FF04C05C +:102C20008E830E9486098E8127E030E0A501022E66 +:102C300001C0440F0A94EAF7E42E4F21C1F0298322 +:102C40009A828E2191E009F490E09B830E948F206C +:102C50008160782F9D838C8349815A816B818D811E +:102C60000E946C16F6018081E826E08204C02150A3 +:102C70003109E0F6BDCF0E94EA2410916B010E9459 +:102C800022151817B9F00E94221580936B01269621 +:102C90000FB6F894DEBF0FBECDBFDF91CF911F916D +:102CA0000F91FF90EF90DF90CF90BF90AF909F90EB +:102CB0000C94B71526960FB6F894DEBF0FBECDBFA5 +:102CC000DF91CF911F910F91FF90EF90DF90CF9008 +:102CD000BF90AF909F900895CF93DF93CDB7DEB7AD +:102CE0002B970FB6F894DEBF0FBECDBF4F8358872A +:102CF00069877A878B87DE01119686E0FD01119244 +:102D00008A95E9F785E0FE01379601900D928A9544 +:102D1000E1F749815A816B817C818D819E810E947E +:102D20006D1C2B960FB6F894DEBF0FBECDBFDF91A2 +:102D3000CF910895CF93882309F499C0C82F8CEFC1 +:102D40008C0F813A48F48C2F0E94562981118FC034 +:102D50008C2F0E94471F0CC080E28C0F883058F4E3 +:102D6000C77081E001C0880FCA95EAF70E94831FEF +:102D7000CF910C94CA1F8BE58C0F833078F4C53A41 +:102D800029F0C63A31F083E890E005C081E890E090 +:102D900002C082E890E0CF910C94821588E58C0FF8 +:102DA000833108F064C0C83A39F1C93A41F1CA3AEE +:102DB00049F1CB3A51F1CC3A59F1CD3A61F1C03BEE +:102DC00069F1CE3A71F1CF3A79F1C13B81F1C23B61 +:102DD00089F1C33B91F1C43B99F1C53BA1F1C63BDD +:102DE000A9F1C73BB1F1C83BB9F1C93BC1F1CA3B3D +:102DF000C9F180E090E038C082EE90E035C089EE05 +:102E000090E032C08AEE90E02FC085EB90E02CC0BD +:102E100086EB90E029C087EB90E026C08CEC90E038 +:102E200023C08DEC90E020C083E891E01DC08AE8CB +:102E300091E01AC082E991E017C084E991E014C0E2 +:102E400081E292E011C083E292E00EC084E292E05F +:102E50000BC085E292E008C086E292E005C087E2FE +:102E600092E002C08AE292E0CF910C949815CF9143 +:102E70000895882329F19CEF980F913A18F40E9445 +:102E8000641F0DC090E2980F983058F4877091E05D +:102E900001C0990F8A95EAF7892F0E94891F0C9427 +:102EA000CA1F9BE5980F933020F480E090E00C94CB +:102EB0008215885A833120F480E090E00C949815B4 +:102EC0000895882321F00E94831F0C94CA1F08953F +:102ED000882321F00E94891F0C94CA1F08957F92B5 +:102EE0008F929F92AF92BF92CF92DF92EF92FF921A +:102EF0000F931F93CF93DF931F92CDB7DEB77C0163 +:102F0000C62E772EFC01058102950F7012811111DA +:102F10000E94A01F0E94401F882379F0112369F0AE +:102F200080E28C0D883048F082E00E94291F0E94C8 +:102F3000401F91E0D82ED92601C0D12CE72DE29573 +:102F4000EF70F0E0E05AFF4F0C94ED2B872D807F5F +:102F5000072D0F70882311F00295007F112389F04F +:102F6000002309F498C180E28C0D883020F4802F72 +:102F70000E94831F03C0802F0E94931F0E94CA1FBC +:102F80008AC18C2D0E943917002309F49DC180E26B +:102F90008C0D883020F4802F0E94891F03C0802F61 +:102FA0000E94991F0E94CA1F8FC1872D807F972D75 +:102FB0009F70803211F4892F03C0892F8295807F02 +:102FC000CC2021F0F1E0CF16A1F01DC0112339F083 +:102FD000002319F1013009F50E94B31F75C10023C8 +:102FE00019F0013009F470C189830E94B61F8981EC +:102FF00010C1112321F0063008F066C10EC0053063 +:1030000008F062C106C1112359F0002331F0F70125 +:10301000958190FF40C19F7095830E94611754C1B4 +:10302000002309F4F6C03DC1872D869586958370EF +:1030300090E0009719F0019761F046C1112321F04B +:103040008C2D972D937002C080E090E00E94821535 +:103050003BC1112321F08C2D972D937002C080E08D +:1030600090E00E94981530C18C2D112319F00E9418 +:10307000702302C00E94D8230E945D2425C1872DA1 +:10308000837009F052C011111FC18C2D8295869555 +:103090008770880F880F9C2D9F70892E912CA12CF2 +:1030A000B12C082E04C0880C991CAA1CBB1C0A94C5 +:1030B000D2F7C4FE14C00FE010E020E030E0B90108 +:1030C000A80104C0440F551F661F771F8A95D2F7C9 +:1030D000CB01BA01609570958095909503C060E032 +:1030E00070E0CB01272D26952695237030E0223005 +:1030F000310569F02330310589F0682979298A2959 +:103100009B292130310571F00E94B51DDDC0682971 +:1031100079298A299B290E94D11DD6C00E94B51DFC +:10312000C501B4010E94991DCFC0112319F0872D4C +:10313000817001C08695882309F4C6C08C2D8295C4 +:1031400086958770880F880F9C2D9F70892E912CF3 +:10315000A12CB12C082E04C0880C991CAA1CBB1CE5 +:103160000A94D2F7C4FE14C00FE010E020E030E073 +:10317000B901A80104C0440F551F661F771F8A9527 +:10318000D2F7CB01BA01609570958095909503C0F8 +:1031900060E070E0CB01272D269526952370422F05 +:1031A00050E04230510569F04330510589F06829FB +:1031B00079298A299B294130510571F00E948F1E7F +:1031C00083C0682979298A299B290E94AB1E7CC06B +:1031D0000E948F1EC501B4010E94731E75C08C2D04 +:1031E00090E0FC01E05EF109E531F10508F04FC027 +:1031F000E059FF4F0C94ED2B0C2D0F70872D8F7124 +:10320000112321F00E940C1E802F07CF0E942D1E3B +:10321000802F0E94681758C0112341F0053008F034 +:1032200053C0872D8F710E94521E4EC0063008F089 +:103230004BC0F7CF112339F0872D8F710E940C1EE0 +:1032400043C01123C9F3872D8F710E942D1E3CC0EE +:10325000112329F0872D8F710E94F71D35C00E9420 +:10326000ED1D32C0112351F0172D1F71812F0E94C7 +:103270000C1E63E0812F0E94201F26C081E00E9467 +:10328000291F023008F182E00E94291F1DC011236E +:1032900031F0002389F28C2D0E949A1615C000236C +:1032A00091F28C2D0E9439170FC0472D4F706C2D55 +:1032B000C7010E94CC090E94111D06C0472D4F7006 +:1032C0006C2DC7010E948B0ADD20F9F00E941C1FA3 +:1032D00080FD1BC0F70112820E94161F0E940C1E67 +:1032E000C7010E9494190E94161F0F90DF91CF9181 +:1032F0001F910F91FF90EF90DF90CF90BF90AF9014 +:103300009F908F907F900C942D1E0F90DF91CF9106 +:103310001F910F91FF90EF90DF90CF90BF90AF90F3 +:103320009F908F907F9008950F931F93CF93DF937B +:10333000EC01888199812B813C81232BB9F09F3F3F +:1033400011F48F3F99F0CE010E94E309882371F0B8 +:10335000688179818A810E94121F8C010E94C71E98 +:103360000E948E1DB801CE010E946F17DF91CF9190 +:103370001F910F9108950E94A01F0E94B01F0E94EC +:10338000751F0E94CA1F0E9490250E945D2480E044 +:1033900090E00E94821580E090E00C9498150E94C5 +:1033A000901F0C94BB190E94071F292F22952F7084 +:1033B00030E02C3031054CF42A3031056CF42250C9 +:1033C000310922303105A8F407C02C30310569F0ED +:1033D0002F30310551F00DC0803F69F018F4803E68 +:1033E00040F409C0843F29F406C093FB882780F984 +:1033F000089580E0089581E00895CF93DF9300D091 +:1034000000D01F92CDB7DEB70F900F900F900F90A6 +:103410000F90DF91CF910895CF93DF9300D000D02C +:1034200000D0CDB7DEB726960FB6F894DEBF0FBE3C +:10343000CDBFDF91CF9108951F93CF93DF93C091BC +:10344000740116E080917501C81799F0D0E01C9FB7 +:10345000F0011D9FF00D1124EA58FE4F408151816B +:1034600062817381848195810E940C1A2196C770B4 +:10347000E9CFDF91CF911F9108954091A60150911E +:10348000A7016091A8017091A9018091AA01909172 +:10349000AB010C940C1A8091AB0182958F7009F0EE +:1034A00054C08091A801882309F44FC08091740111 +:1034B000A09175016091A6017091A7014091A901A9 +:1034C0005091AA01B6E08A1709F43FC090E0411577 +:1034D0005105C1F17F3F11F46F3FA1F1B89FF00199 +:1034E000B99FF00D1124EA58FE4F218172132AC0B2 +:1034F0002081621327C02281211124C023813481BD +:103500002417350710F421503109241B350B283CB2 +:103510003105C0F42091AB012F7020612093AB01E5 +:1035200026E0289FF001299FF00D1124E558FE4F59 +:1035300080818F708061808386EA91E00E94941977 +:103540000C941C1A01968770BECF0895CF92DF921B +:10355000EF92FF920F931F93CF93DF93CDB7DEB718 +:1035600062970FB6F894DEBF0FBECDBF8C0185E029 +:10357000F801DE011D9601900D928A95E1F7D801C0 +:103580004C9111965C91119712966C91129713962B +:10359000CD90DC9014973091A6017091A701809195 +:1035A000A9019091AA01009709F46BC17F3F19F41A +:1035B0003F3F09F466C1E090A801EE2009F4C0C0C5 +:1035C0002091AB01C816D90628F0F601E81BF90BCB +:1035D000CF0104C0809590958C0D9D1DFF24F39420 +:1035E000883C910578F0F12C207F09F0C6C07C2D35 +:1035F000D98AC88A89890E94FD1986EA91E00E94C9 +:103600009419B1C0822F807F09F046C0751314C091 +:10361000341312C0611110C02F7020612093AB01D0 +:103620000E943D1A86EA91E00E9494198091AB01B4 +:10363000D80115968C932EC0CD2819F15F3F11F457 +:103640004F3FF9F0F62E61111CC08091740120915A +:10365000750136E0821709F45AC090E0389FF001F6 +:10366000399FF00D1124EA58FE4F7181571306C09F +:103670007081471303C07281711103C00196877076 +:10368000E9CFF62E662309F418C18091AB01816061 +:103690008093AB01F12C11C1751308C0341306C01F +:1036A000611104C08091AB01D801C3C04D875E8712 +:1036B0008D859E856A8B0E94D3196A898823E1F1E2 +:1036C0006623D1F12091AB01822F82958F7090E01B +:1036D000029774F08091A6019091A70198878F833B +:1036E0001986DB86CA862C87CE0107960E9494191C +:1036F00086E0F801A6EAB1E001900D928A95E1F723 +:103700000E944B1A0E943D1AFF24F394D6C04D87A5 +:103710005E878D859E850E94071F292F22952F7019 +:1037200030E0223031050CF0BCC09F7009F0B6C00B +:10373000805E883008F4C1C0C8010E949419E4CFAB +:10374000C816D90608F453C0F601E81BF90BCF01DF +:10375000883C910508F450C0F12C7C2DD98AC88A88 +:1037600089890E94FD19E6EAF1E086E0DF011D92F9 +:103770008A95E9F70E943D1AA0C0751314C034134E +:1037800012C0611110C08091AB01F8018583C8019E +:103790000E94941986E0E6EAF1E0DF011D928A9525 +:1037A000E9F7FE2C8AC04D875E878D859E856A8BE2 +:1037B0000E94D3196A89882309F4BECF662309F4CD +:1037C000BBCF2091AB01822F82958F7090E0029742 +:1037D0000CF48ECF8091A6019091A7019A838983E2 +:1037E0001B82DD82CC822E83CE0101967FCF809515 +:1037F00090958C0D9D1DACCFF62E662309F49CCFC1 +:1038000075132EC034132CC02091AB0120FD1FC0B6 +:10381000822F82958F70D9F0D80115962C93159729 +:103820008F3049F08F5F982F9295907F822F8F7005 +:10383000892B15968C93C8010E94941986E0F80193 +:10384000A6EAB1E001900D928A95E1F793CF86E068 +:10385000F801A6EAB1E001900D928A95E1F72DC03A +:103860004D875E878D859E850E94D319811140CF3B +:103870008091AB0181608093AB01C8010E949419D3 +:103880001CC0662309F458CF4D875E878D859E85C1 +:103890000E94D319882309F44FCF2ACF811148CF32 +:1038A0000CC0243031050CF047CF9F7009F440CF95 +:1038B000F8019581907F09F03BCF8F2D62960FB66E +:1038C000F894DEBF0FBECDBFDF91CF911F910F9156 +:1038D000FF90EF90DF90CF9008951F93CF93DF93E9 +:1038E000CDB7DEB72C970FB6F894DEBF0FBECDBFB5 +:1038F0004F83588769877A878B879C87CE01079685 +:103900000E94A61A882369F08F8198852A853B85B5 +:10391000232BF1F19F3F09F063C08F3F09F060C096 +:1039200037C086E0FE013796DE01119601900D92B8 +:103930008A95E1F76F817885EA85FB85309741F1BB +:103940007F3F11F46F3F21F12091750130E0C901F3 +:103950000196877099274091740150E0841795076C +:1039600009F447C069837A83FD83EC8396E0929FD4 +:10397000D001939FB00D1124AA58BE4FFE0131967D +:1039800001900D929A95E1F7809375010E941C1A9F +:1039900016E080917401909175018917C1F1189F0B +:1039A000C00111248A589E4F0E94A61A882379F1DB +:1039B000E09174011E9FF0011124EA58FE4F4081EE +:1039C000518162817381848195810E940C1A80915A +:1039D000740190E001968770992780937401D9CF84 +:1039E0004F81588569857A858B859C850E940C1A44 +:1039F000CFCF0E94CF191092750110927401E6EAA0 +:103A0000F1E086E0DF011D928A95E9F7C1CF2C969F +:103A10000FB6F894DEBF0FBECDBFDF91CF911F91DF +:103A20000895EF92FF920F931F93CF93DF938C0132 +:103A3000009709F46CC0F12CEE24E394E801219680 +:103A4000F8018491843740F4843008F051C081300B +:103A500081F0823019F15BC0853709F444C0A8F1C8 +:103A60009CE7980F903708F052C08F770E94391763 +:103A700041C00E5F1F4FFE01C49180E28C0F883061 +:103A800048F4C7708E2D01C0880FCA95EAF70E94CE +:103A9000A31F14C08C2F0E949A162DC00E5F1F4FBB +:103AA000FE01C49180E28C0F883058F4C7708E2DCF +:103AB00001C0880FCA95EAF70E94A91F0E94CA1F79 +:103AC0001AC08C2F0E94391716C00E5F1F4FFE01BF +:103AD000C491CC2381F08FE99FE00197F1F700C0FA +:103AE0000000C150F6CF0E5F1F4FFE01F49003C0DF +:103AF0000E949A168E018F2D882309F49FCFEFE93B +:103B0000FFE03197F1F700C000008150F5CFDF9161 +:103B1000CF911F910F91FF90EF90089508956093BA +:103B2000B0017093B1018093B2019093B3010C94F2 +:103B3000BB190F931F930091B0011091B101209117 +:103B4000B2013091B301DC01CB01802B912BA22B70 +:103B5000B32B8093B0019093B101A093B201B093C5 +:103B6000B3011F910F910C94BB190F931F930091F8 +:103B7000B0011091B1012091B2013091B301DC018B +:103B8000CB0180239123A223B3238093B001909390 +:103B9000B101A093B201B093B3011F910F910C94A6 +:103BA000BB190F931F930091B0011091B1012091A7 +:103BB000B2013091B301DC01CB0180279127A2270C +:103BC000B3278093B0019093B101A093B201B09359 +:103BD000B3011F910F910C94BB191092AC0110927C +:103BE000AD011092AE011092AF010C94BB1941E0EF +:103BF00050E060E070E004C0440F551F661F771F5F +:103C00008A95D2F74093AC015093AD016093AE0119 +:103C10007093AF010C94BB1941E050E060E070E09C +:103C200004C0440F551F661F771F8A95D2F78091F5 +:103C3000AC019091AD01A091AE01B091AF01482BC4 +:103C4000592B6A2B7B2B4093AC015093AD016093B1 +:103C5000AE017093AF010C94BB1941E050E060E0FD +:103C600070E004C0440F551F661F771F8A95D2F776 +:103C700040955095609570958091AC019091AD0103 +:103C8000A091AE01B091AF01482359236A237B2351 +:103C90004093AC015093AD016093AE017093AF01BE +:103CA0000C94BB1941E050E060E070E004C0440FA8 +:103CB000551F661F771F8A95D2F78091AC019091AE +:103CC000AD01A091AE01B091AF01482759276A27F5 +:103CD0007B274093AC015093AD016093AE0170938C +:103CE000AF010C94BB190F931F930091AC0110917D +:103CF000AD012091AE013091AF01DC01CB01802BF1 +:103D0000912BA22BB32B8093AC019093AD01A09388 +:103D1000AE01B093AF011F910F910C94BB190F939B +:103D20001F930091AC011091AD012091AE01309133 +:103D3000AF01DC01CB0180239123A223B323809325 +:103D4000AC019093AD01A093AE01B093AF011F9170 +:103D50000F910C94BB190F931F930091AC0110911C +:103D6000AD012091AE013091AF01DC01CB01802784 +:103D70009127A227B3278093AC019093AD01A09324 +:103D8000AE01B093AF011F910F910C94BB19089530 +:103D9000CF92DF92EF92FF920F931F93CF93DF9317 +:103DA0008C01C090B001D090B101E090B201F090D0 +:103DB000B3018091AC019091AD01A091AE01B091A1 +:103DC000AF01C82AD92AEA2AFB2ACFE1D0E0D701DD +:103DD000C6010C2E04C0B695A795979587950A94B1 +:103DE000D2F780FF06C0B8018C2F0E94E80C019723 +:103DF00021F4219760F780E001C08C2FDF91CF91F3 +:103E00001F910F91FF90EF90DF90CF900895CF9387 +:103E1000DF93EC010E94C81EBE010E94E80CDF91F6 +:103E2000CF910895CB010E94071F08958091B4019E +:103E300085958595859508958091B401877008953D +:103E400098E0899F90011124262B2093B4010C94B3 +:103E50000C1E2091B401809582238093B401982F89 +:103E6000977069F430E0482F552747FD5095241787 +:103E7000350729F08595859585950C942D1E089517 +:103E80009091B401977081E009F480E00895209149 +:103E90000B0130910C01F90132969FEF40E05191F6 +:103EA000581789F09F3F19F4511101C0942F4F5FAB +:103EB0004630A9F79F3F39F0F901E90FF11D97FD51 +:103EC000FA9582830895089520910B0130910C0199 +:103ED000F9013296285F3F4F9081981301C01082FC +:103EE0003196E217F307C1F7089581E090E0E09181 +:103EF0000B01F0910C01E80FF91F10820196883038 +:103F00009105A9F708959091C001892B8093C00174 +:103F1000089580959091C00189238093C0010895F0 +:103F20001092C00108959091BF01892B8093BF0129 +:103F3000089580959091BF0189238093BF010895D2 +:103F40001092BF0108959091BE01892B8093BE010C +:103F5000089580959091BE0189238093BE010895B4 +:103F60001092BE0108958093B50108951092B50195 +:103F7000089580910B0190910C01FC0131969C01F8 +:103F8000285F3F4F80E0919191118F5FE217F30717 +:103F9000D1F70895E0910B01F0910C018091C001DF +:103FA0008083E0910B01F0910C0190818091BF0121 +:103FB000892B8083E0910B01F0910C01908180911D +:103FC000BE01892B80838091B501882361F0E09147 +:103FD0000B01F0910C019081892B80830E94B91F05 +:103FE00081111092B50180910B0190910C010C94FC +:103FF0002E159093330180933201089520E00097AD +:1040000039F0AC0141505109842395232F5FF7CF3C +:10401000822F08958295982F9C7C392F369536955E +:10402000282F237344E0249FC0011124932F982B41 +:10403000292F2A7A2695892F8575880F822B089536 +:104040008091D601843021F11092C20120E488E1F0 +:1040500090E00FB6F894A895809360000FBE20936F +:10406000600080E00E94860D83B7817F846083BFFB +:1040700083B7816083BF7894889583B78E7F83BF31 +:1040800088E10FB6F89480936000109260000FBE34 +:1040900008950E94CA090E94AA080E94CB090E94A2 +:1040A000B20991E0811101C090E0892F08950E942A +:1040B000CF190E9422150C94860D1F920F920FB6F5 +:1040C0000F9211248F939F93AF93BF938091C2015E +:1040D000811113C08091C3019091C401A091C501C9 +:1040E000B091C6014196A11DB11D8093C30190936B +:1040F000C401A093C501B093C601BF91AF919F9138 +:104100008F910F900FBE0F901F90189582E084BD85 +:1041100093E095BD9AEF97BD80936E0008952FB7F9 +:10412000F8948091C3019091C401A091C501B09110 +:10413000C6012FBF08952FB7F8946091C301709105 +:10414000C4018091C5019091C6012FBF0895CF92FF +:10415000DF92EF92FF920F931F932FB7F894409145 +:10416000C3015091C4016091C5017091C6012FBF78 +:104170006A017B01EE24FF248C0120E030E0C016B0 +:10418000D106E206F30610F4415051099A01281BAA +:10419000390BC9011F910F91FF90EF90DF90CF90E5 +:1041A0000895CF92DF92EF92FF920F931F932FB754 +:1041B000F894C090C301D090C401E090C501F09084 +:1041C000C6012FBF97018601061B170B280B390B61 +:1041D000C616D706E806F90618F0C901B80106C0E8 +:1041E000C901B80161507109810991091F910F91AD +:1041F000FF90EF90DF90CF9008951F920F920FB62F +:104200000F9211248F939F93AF93BF938091C3011B +:104210009091C401A091C501B091C6010196A11D64 +:10422000B11D8093C3019093C401A093C501B093C5 +:10423000C601BF91AF919F918F910F900FBE0F90CC +:104240001F9018950E942012F8942FEF87EA91E6AC +:10425000215080409040E1F700C0000087E090EBE3 +:10426000DC018093E0019093E101A093E201B0931F +:10427000E3019CE088E10FB6F894A8958093600074 +:104280000FBE90936000FFCFEF92FF920F931F93AA +:10429000CF93DF93D82FC7E08C2F0E947D0907E0D2 +:1042A00010E0E82EF12CC701002E02C095958795ED +:1042B0000A94E2F780FF09C0602F7C2F80E00E9403 +:1042C0008C0AD81302C081E006C00150110958F7CA +:1042D000C15010F780E0DF91CF911F910F91FF90B7 +:1042E000EF900895CF93C82F8CE20E944421882339 +:1042F00021F08C2FCF910C94442180E0CF91089530 +:10430000CF930E94C822811102C00E94AE228AEA85 +:1043100096E00E94E507C5E6C15049F00E94AA0850 +:104320008FE39CE90197F1F700C00000F5CF83EA25 +:1043300096E00E94E50789E20E94722181110CC17A +:104340008AE20E94722181110E94AE2285E00E94C1 +:10435000722181110E9422210E94D3228093C101E7 +:1043600087E00E9472218823A9F18BE10E947221CB +:10437000882351F08091C10181FB222720F991E02F +:10438000922790FB81F90EC08EE00E947221882353 +:1043900061F08091C10182FB222720F991E09227F0 +:1043A00090FB82F98093C10115C080E10E947221C7 +:1043B0009091C101882341F093FB222720F981E0ED +:1043C000822780FB93F904C0892F809580FB90F9A8 +:1043D0009093C1018091C1010E94D7220E94E522E1 +:1043E0008093DF0180EE0E947221882341F080914A +:1043F000DF01982F909590FB80F98093DF0189E38E +:104400000E947221882359F08091DF0181FB2227CD +:1044100020F991E0922790FB81F98093DF0182EEF1 +:104420000E947221882359F08091DF0182FB2227AC +:1044300020F991E0922790FB82F98093DF0186EECC +:104440000E947221882359F08091DF0183FB22278B +:1044500020F991E0922790FB83F98093DF0183EEAE +:104460000E947221882359F08091DF0184FB22276A +:1044700020F991E0922790FB84F98093DF0185E396 +:104480000E947221882359F08091DF0185FB222749 +:1044900020F991E0922790FB85F98093DF0181E379 +:1044A0000E947221882359F08091DF0186FB222728 +:1044B00020F991E0922790FB86F98093DF0181E15A +:1044C0000E947221882359F08091DF0187FB222707 +:1044D00020F991E0922790FB87F98093DF0180918A +:1044E000DF010E94E92287E20E947221C82F8EE13B +:1044F0000E9472218111C2608FE10E94722181119C +:10450000C46080E20E9472218111C86081E20E9431 +:1045100072218111C06182E20E9472218111C06208 +:1045200083E20E9472218111C06484E20E947221A0 +:10453000882311F0C06802C0CC2329F08C2F0E9480 +:10454000E0226C2F03C00E94DC22682F70E080E024 +:1045500090E0CF910C948F1DCF9108956DEE7EEF7A +:1045600080E090E00E94272C60E082E090E00E94D2 +:10457000152C60E083E090E00E94152C60E084E060 +:1045800090E00E94152C60E085E090E00C94152CE2 +:1045900080E090E00E940F2C21E08D3E9E4F09F0BC +:1045A00020E0822F089582E090E00C94072C682F81 +:1045B00082E090E00C94152C83E090E00C94072CA2 +:1045C000682F83E090E00C94152C84E090E00C942C +:1045D000072C682F84E090E00C94152C8091C90181 +:1045E00080FF0BC06091100185E0689FB00111242D +:1045F00075956795759567952BC081FF09C060918A +:10460000100185E0689FB00111247595679520C061 +:1046100082FF07C06091100185E0689FB0011124FE +:1046200017C09091CA019923D1F060910F0196179C +:1046300088F72091100185E0289F90011124929F16 +:10464000A001939F500D112470E0CA010E94D92B44 +:104650006038710540F46115710539F002C065E0FC +:1046600070E0862F08958FE7089581E00895809186 +:10467000C90180FF08C060910E0170E075956795D3 +:104680007595679521C081FF06C060910E0170E0AD +:104690007595679519C082FF04C060910E0170E0A6 +:1046A00010C09091CA019923C1F060910D01961735 +:1046B000A0F780910E01899FC001112470E00E9433 +:1046C000D92B6038710528F46115710521F0862F0A +:1046D00008958FE7089581E0089561E070E0F4CFD8 +:1046E000803F21F40E94EE22819504C0813F29F48D +:1046F0000E94EE228093CD010895823F21F40E9412 +:10470000EE22819504C0833F29F40E94EE2280931B +:10471000CC010895893F19F40E94372305C08A3FD0 +:1047200031F40E94372381958093CE0108958B3F09 +:1047300021F40E943723819504C08C3F29F40E9404 +:1047400037238093CF010895843F21F48091CB01DA +:10475000816017C0853F21F48091CB01826011C038 +:10476000863F21F48091CB0184600BC0873F21F408 +:104770008091CB01886005C0883F31F48091CB01E6 +:1047800080618093CB0108958D3F21F48091C90110 +:1047900081600BC08E3F21F48091C901826005C009 +:1047A0008F3F29F48091C90184608093C9010895E5 +:1047B000803F39F48091CD0187FF6CC01092CD010C +:1047C00069C0813F29F48091CD011816BCF362C005 +:1047D0009091CC01823F29F497FF5CC01092CC01EC +:1047E00059C0833F19F41916CCF354C0893F41F4E2 +:1047F0008091CE0118160CF04DC01092CE014AC027 +:104800008A3F29F48091CE0187FF44C0F6CF8B3FC9 +:1048100039F48091CF0187FF3DC01092CF013AC09B +:104820008C3F29F48091CF011816BCF333C0843F2C +:1048300021F48091CB018E7F17C0853F21F48091B8 +:10484000CB018D7F11C0863F21F48091CB018B7FFE +:104850000BC0873F21F48091CB01877F05C0883F43 +:1048600031F48091CB018F7E8093CB0113C08D3FBB +:1048700021F48091C9018E7F0BC08E3F21F480917D +:10488000C9018D7F05C08F3F29F48091C9018B7FBD +:104890008093C9018091CC0181110EC08091CD011E +:1048A00081110AC08091CE01811106C08091CF0193 +:1048B000811102C01092CA0108958091C10183FF45 +:1048C0007EC086EE96E00E94E5078091CB011F92A4 +:1048D0008F9381EE96E09F938F930E947E088FEDD9 +:1048E00096E00E94E5078091CC01282F332727FD11 +:1048F00030953F938F938CED96E09F938F930E941A +:104900007E088AED96E00E94E5078091CD01282F70 +:10491000332727FD30953F938F9387ED96E09F9344 +:104920008F930E947E0885ED96E00E94E5078091B6 +:10493000CE01282F332727FD30953F938F9382EDAB +:1049400096E09F938F930E947E0880ED96E00E94F0 +:10495000E5078091CF01282F332727FD30953F931E +:104960008F938DEC96E09F938F930E947E088AEC44 +:1049700096E00E94E5078091CA011F928F9387EC11 +:1049800096E09F938F930E947E0885EC96E00E94AC +:10499000E5078091C9011F928F9382EC96E09F9367 +:1049A0008F930E947E088FEB96E00E94E5078DB7FB +:1049B0009EB74C960FB6F8949EBF0FBE8DBF8BEC82 +:1049C00091E00E9477150E948F209093C8018093F8 +:1049D000C70108951F93CF93DF938091C7019091F2 +:1049E000C8010E94A720AC019091CA01992321F02F +:1049F0002091110130E006C0209112018AE0289F29 +:104A0000900111244217530708F486C08091CC010D +:104A1000C091CD01D091CE011091CF01811107C07D +:104A2000C11176C0D11174C0111172C075C09F3F01 +:104A300019F09F5F9093CA01181624F40E94EE2289 +:104A40008093CC018091CC0187FF05C00E94EE22AB +:104A500081958093CC011C1624F40E94EE22809351 +:104A6000CD018091CD0187FF05C00E94EE22819586 +:104A70008093CD016091CC01662339F1C091CD01C5 +:104A8000CC2319F1772767FD7095872F972F0E9408 +:104A9000DE2A23E333E343E35FE30E94422B0E94D9 +:104AA000AB2A6093CC016C2F772767FD7095872F19 +:104AB000972F0E94DE2A23E333E343E35FE30E9460 +:104AC000422B0E94AB2A6093CD011D1624F40E9454 +:104AD00037238093CE018091CE0187FF05C00E94CD +:104AE000372381958093CE01111624F40E94372339 +:104AF0008093CF018091CF0187FF05C00E943723AB +:104B000081958093CF01DF91CF911F910C945D240B +:104B10009F3F09F08ECF96CFDF91CF911F910895DF +:104B2000EBECF1E085E0DF011D928A95E9F7109248 +:104B3000CA011092C901089589E099E00E94E50731 +:104B40001F9281E08F931F9285E08F938BEB98E00B +:104B50009F938F930E947E080F900F900F900F905D +:104B60000F900F9008958330E9F128F4813061F0BF +:104B7000823009F10895853009F462C008F449C013 +:104B8000863009F474C0089580911201262F30E018 +:104B9000280F311D2F3F310524F4680F6093120157 +:104BA00003C08FEF80931201809112011F928F93A7 +:104BB00084EF97E072C080911101262F30E0280F1A +:104BC000311D2F3F310524F4680F6093110103C09C +:104BD0008FEF80931101809111011F928F9382EECC +:104BE00097E05BC080911001262F30E0280F311D27 +:104BF0002F3F310524F4680F6093100103C08FEF3D +:104C000080931001809110011F928F938FEC97E099 +:104C100044C080910F01262F30E0280F311D2F3F17 +:104C2000310524F4680F60930F0103C08FEF809368 +:104C30000F0180910F011F928F938AEB97E02DC097 +:104C400080910E01262F30E0280F311D2F3F3105B6 +:104C500024F4680F60930E0103C08FEF80930E0160 +:104C600080910E011F928F9381EA97E016C0809188 +:104C70000D01262F30E0280F311D2F3F310524F480 +:104C8000680F60930D0103C08FEF80930D01809139 +:104C90000D011F928F9386E897E09F938F930E9458 +:104CA0007E080F900F900F900F900895833081F140 +:104CB00028F4813059F08230D1F00895853009F41C +:104CC00049C0B8F1863009F456C0089580911201A8 +:104CD000681720F4861B8093120102C01092120103 +:104CE000809112011F928F9387E797E054C08091C3 +:104CF0001101681720F4861B8093110102C01092E5 +:104D00001101809111011F928F9385E697E043C0B6 +:104D100080911001681720F4861B8093100102C057 +:104D200010921001809110011F928F9382E597E0FD +:104D300032C080910F01681720F4861B80930F0109 +:104D400002C010920F0180910F011F928F938DE38B +:104D500097E021C080910E01681720F4861B809394 +:104D60000E0102C010920E0180910E011F928F93CE +:104D700084E297E010C080910D01681720F4861B33 +:104D800080930D0102C010920D0180910D011F92C0 +:104D90008F9389E097E09F938F930E947E080F90F6 +:104DA0000F900F900F900895CF93C82F1F928F935D +:104DB0008EE09AE09F938F930E947E0881E090E0BE +:104DC000A0E0B0E0BC01CD0104C0660F771F881FD2 +:104DD000991FCA95D2F70E948F1D0F900F900F90C8 +:104DE0000F90CF910C94CF19CF938732B0F58E31BD +:104DF00008F04AC28E3009F4C4C100F5873009F4C6 +:104E00008DC1A8F4863009F045C28091C101817F2F +:104E10008E7F8093C1018DE79BE00E94E50786E1CC +:104E20009FE00E94E50781E08093D10175C1883041 +:104E300009F43FC08B3009F46BC12CC2863109F4F0 +:104E4000E6C120F4803109F4B0C124C2893109F4EB +:104E5000C7C18B3109F481C11DC2883309F458C11F +:104E600050F4893209F412C2853309F40FC2873233 +:104E700009F40CC20FC2833409F408C228F48A333F +:104E800008F408C2895303C2883409F003C20E949F +:104E9000CF198AEF9EE00E94E5079FEF23ED80E3A4 +:104EA000915020408040E1F700C000000E94222184 +:104EB00033C18AE19FE00E94E5078CE79EE00E94F3 +:104EC000E5070E94DC221F928F9389E79EE09F9363 +:104ED0008F930E947E0887E79EE00E94E5070E946C +:104EE000D322C82F84E69EE00E94E5071F92CF934D +:104EF0008FE59EE09F938F930E947E088DE59EE054 +:104F00000E94E50783E59EE00E94E5078C2F8170F3 +:104F10001F928F9380E59EE09F938F930E947E085F +:104F20008EE49EE00E94E50784E49EE00E94E5078F +:104F3000C1FB882780F91F928F9381E49EE09F93A5 +:104F40008F930E947E088FE39EE00E94E50783E333 +:104F50009EE00E94E507C2FB882780F91F928F938D +:104F600080E39EE09F938F930E947E088EE29EE0F6 +:104F70000E94E50785E29EE00E94E507C3FBCC277F +:104F8000C0F91F92CF9382E29EE09F938F930E947D +:104F90007E0880E29EE00E94E5070E94E522C82F7D +:104FA0008CE09EE00E94E5071F92CF9387E09EE091 +:104FB0009F938F930E947E0885E09EE00E94E50704 +:104FC0008CEE9DE00E94E5078C2F81701F928F93DD +:104FD00089EE9DE09F938F930E947E088DB79EB7C8 +:104FE00080960FB6F8949EBF0FBE8DBF87EE9DE0F2 +:104FF0000E94E50780ED9DE00E94E507C1FB882740 +:1050000080F91F928F938DEC9DE09F938F930E9468 +:105010007E088BEC9DE00E94E50789EB9DE00E94F5 +:10502000E507C2FB882780F91F928F9386EB9DE0EE +:105030009F938F930E947E0884EB9DE00E94E5077A +:1050400082EA9DE00E94E507C3FB882780F91F9252 +:105050008F938FE99DE09F938F930E947E088DE947 +:105060009DE00E94E50783E99DE00E94E507C4FBFF +:10507000882780F91F928F9380E99DE09F938F93FB +:105080000E947E088EE89DE00E94E5078CE79DE087 +:105090000E94E507C5FB882780F91F928F9389E757 +:1050A0009DE09F938F930E947E0887E79DE00E947A +:1050B000E5078BE59DE00E94E507C6FB882780F9A0 +:1050C0001F928F9388E59DE09F938F930E947E08A7 +:1050D00086E59DE00E94E5078EE49DE00E94E507DD +:1050E000C7FBCC27C0F91F92CF938BE49DE09F9321 +:1050F0008F930E947E0889E49DE00E94E5078DB7AA +:105100009EB74C960FB6F8949EBF0FBE8DBF04C0DD +:1051100084EA9BE00E94E507C1E0C1C08091C10123 +:10512000C82FC095C170C0FB80F98093C101CC230A +:1051300049F08EEE9EE00E94E5078091C1018660F5 +:10514000886048C081EE9EE00E94E5078091C10121 +:10515000897F877F8093C101DFCF9091C10191FB4F +:10516000CC27C0F981E0C827892FC0FB81F9809343 +:10517000C101CC2319F084ED9EE027C086EC9EE0AF +:10518000C9CF9091C10192FBCC27C0F981E0C8271B +:10519000892FC0FB82F98093C101CC2319F087EBE2 +:1051A0009EE013C087EA9EE0B5CF9091C10193FBCA +:1051B000CC27C0F981E0C827892FC0FB83F98093F1 +:1051C000C101CC2351F08BE99EE00E94E50780915C +:1051D000C10181608093C10162C08EE89EE09ACFD8 +:1051E0008EE69BE00E94E50786E49BE00E94E507CF +:1051F00080E19BE00E94E50783EE9AE00E94E507CC +:1052000084EA9AE00E94E50789E79AE083CF8BE67B +:105210009AE00E94E5070E9422151F928F9381E574 +:105220009AE09F938F930E947E0880910A011F92BB +:105230008F938AE39AE09F938F930E947E088091D8 +:1052400064011F928F9387E29AE09F938F930E944D +:105250007E088091C3019091C401A091C501B091D5 +:10526000C601BF93AF939F938F9383E19AE09F937F +:105270008F930E947E088DB79EB742960FB6F89422 +:105280009EBF0FBE8DBF48CF8D5101C080E00E94F0 +:10529000D42642CF8CE89EE00E94E507C0E08C2F28 +:1052A000CF91089580E0089580E00895CF93C82FAE +:1052B0008091D101813071F020F0823009F44BC02F +:1052C00042C1E0910B01F0910C018081823209F022 +:1052D0003CC107C0E0910B01F0910C01808182324A +:1052E00061F48C2F0E945229811104C08C2F0E94DE +:1052F000F4262FC081E090E02CC08C2F0E9454290E +:10530000811126C0C431E1F070F4CB3081F0C0319E +:10531000D1F40E949C2586E09AE00E94E50782E095 +:105320008093D10115C0C93259F0C83361F48DE7BB +:105330009BE00E94E5078AE09AE00E94E50708C02A +:105340001092D10104C184E09AE00E94E507FFC0F9 +:1053500081E08170FEC0C43228F5CE3108F0C1C0B2 +:10536000CB30A1F1D0F4C73009F0D3C08EE18093E7 +:10537000120182E3809311018AE08093100184E19D +:1053800080930F0188E080930E0188E280930D01E5 +:105390008AEA98E00E94E507BFC0C33149F1C431F1 +:1053A000C1F0B7C0CB3409F4A9C028F4C93289F0E0 +:1053B000C83361F0AEC0C13509F49EC0C23509F4EE +:1053C00099C0CE3409F0A5C06AE09EC00E949C2519 +:1053D000A3C08091D001882319F01092D0019CC005 +:1053E00087EB98E00E94E50781E08093D101B1C08E +:1053F00081E998E00E94E5078FE798E00E94E507C1 +:10540000809112011F928F938CE798E09F938F9366 +:105410000E947E088AE798E00E94E50788E698E007 +:105420000E94E507809111011F928F9385E698E015 +:105430009F938F930E947E0883E698E00E94E50781 +:1054400084E598E00E94E507809110011F928F93F8 +:1054500081E598E09F938F930E947E088FE498E007 +:105460000E94E5078EE398E00E94E50780910F0116 +:105470001F928F938BE398E09F938F930E947E08F7 +:1054800089E398E00E94E50784E298E00E94E5073E +:1054900080910E011F928F9381E298E09F938F93EA +:1054A0000E947E088FE198E00E94E50788E098E07E +:1054B0000E94E50780910D011F928F9385E098E08F +:1054C0009F938F930E947E0883E098E00E94E507F7 +:1054D0008DB79EB748960FB6F8949EBF0FBE8DBF8E +:1054E0001BC0CE51EC2FF0E0E95DFE4F8081809330 +:1054F000D00112C061E003C061E006C06AE08091A3 +:10550000D0010E94B32508C08091D0010E94562688 +:1055100003C088EA98E013C08091D001882369F025 +:105520001F928F9382EA98E09F938F930E947E0848 +:105530000F900F900F900F9004C08FE998E00E9499 +:10554000E50781E006C01092D10180E002C080E052 +:1055500000CFCF91089504D06894B1118DC0089503 +:1055600070D088F09F5790F0B92F9927B751A0F0CD +:10557000D1F0660F771F881F991F1AF0BA95C9F7E7 +:1055800012C0B13081F077D0B1E0089574C0672FB8 +:10559000782F8827B85F39F0B93FCCF38695779597 +:1055A0006795B395D9F73EF4909580957095619580 +:1055B0007F4F8F4F9F4F0895E89409C097FB3EF4AB +:1055C00090958095709561957F4F8F4F9F4F992350 +:1055D000A9F0F92F96E9BB279395F69587957795CE +:1055E0006795B795F111F8CFFAF4BB0F11F460FF8E +:1055F0001BC06F5F7F4F8F4F9F4F16C0882311F0E6 +:1056000096E911C0772321F09EE8872F762F05C0F9 +:10561000662371F096E8862F70E060E02AF09A9594 +:10562000660F771F881FDAF7880F9695879597F989 +:10563000089557FD9058440F551F59F05F3F71F082 +:105640004795880F97FB991F61F09F3F79F08795E9 +:105650000895121613061406551FF2CF4695F1DF72 +:1056600008C0161617061806991FF1CF8695710502 +:10567000610508940895E894BB2766277727CB0136 +:1056800097F908950BD078C069D028F06ED018F043 +:10569000952309F05AC05FC01124EECFCADFA0F3F2 +:1056A000959FD1F3950F50E0551F629FF001729FB7 +:1056B000BB27F00DB11D639FAA27F00DB11DAA1FD6 +:1056C000649F6627B00DA11D661F829F2227B00D23 +:1056D000A11D621F739FB00DA11D621F839FA00DAE +:1056E000611D221F749F3327A00D611D231F849FFE +:1056F000600D211D822F762F6A2F11249F57504055 +:105700008AF0E1F088234AF0EE0FFF1FBB1F661FEF +:10571000771F881F91505040A9F79E3F510570F0A8 +:1057200014C0AACF5F3FECF3983EDCF386957795E3 +:105730006795B795F795E7959F5FC1F7FE2B880FA3 +:10574000911D9695879597F9089597F99F6780E839 +:1057500070E060E008959FEF80EC089500240A94C3 +:105760001616170618060906089500240A9412163C +:105770001306140605060895092E0394000C11F46F +:10578000882352F0BB0F40F4BF2B11F460FF04C01C +:105790006F5F7F4F8F4F9F4F0895991B79E004C033 +:1057A000991F961708F0961B881F7A95C9F7809560 +:1057B000089597FB072E16F4009407D077FD09D0C3 +:1057C0000E94F32B07FC05D03EF4909581959F4FE6 +:1057D0000895709561957F4F0895EE0FFF1F059016 +:1057E000F491E02D0994AA1BBB1B51E107C0AA1F2D +:1057F000BB1FA617B70710F0A61BB70B881F991F72 +:105800005A95A9F780959095BC01CD010895F99915 +:10581000FECF92BD81BDF89A992780B50895A8E181 +:10582000B0E042E050E00C942F2C262FF999FECFE7 +:1058300092BD81BDF89A019700B4021639F01FBAE3 +:1058400020BD0FB6F894FA9AF99A0FBE0895019602 +:10585000272F0E94162C0C94152CDC01CB01FC0187 +:10586000F999FECF06C0F2BDE1BDF89A319600B4B9 +:0E5870000D9241505040B8F70895F894FFCFC4 +:10587E00880D790E560E220EEE0D01B60128081473 +:10588E000A321E3F4D36203106E405AE058E051A4E +:10589E000533054C056505010203040506070809D5 +:0258AE000000F8 +:00000001FF diff --git a/keyboards/hhkb/keymaps/lxol/keymap.c b/keyboards/hhkb/keymaps/lxol/keymap.c new file mode 100644 index 000000000..ccf1e0704 --- /dev/null +++ b/keyboards/hhkb/keymaps/lxol/keymap.c @@ -0,0 +1,208 @@ +/* -*- eval: (turn-on-orgtbl); -*- + * lxol HHKB Layout + */ +#include "hhkb.h" + +#define BASE 0 +#define WIN 1 +#define HHKB 2 +#define RGUILEV 3 +#define LGUILEV 4 +#define RALTLEV 5 +#define LALTLEV 6 + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Layer 0: Default Layer + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Contro | A | S | D | F | G | H | J | K | L | ; | ' | RCtl/Ent | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Shift | Z | X | C | V | B | N | M | , | . | Fn2 | Shift | Fn0 | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + + |------+------+-------+------+------| + | LAlt | LGUI | Space | RGUI | RAlt | + |------+------+-------+------+------| + */ + + [BASE] = KEYMAP( // layer 0 : default + + + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \ + KC_LCTL, LT(LALTLEV,KC_A), LT(LGUILEV,KC_S), KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, LT(RGUILEV,KC_L), LT(RALTLEV,KC_SCLN), KC_QUOT, KC_FN0, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB), \ + KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT), + + + + /* Layer 1: HHKB mode (HHKB Fn) + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | Pwr | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | Caps | | | | | | | | Psc | Slk | Pus | Up | | Backs | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | | VoD | VoU | Mut | | | * | / | Hom | PgU | Lef | Rig | Enter | | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + | | | | | | | + | - | End | PgD | Dow | | | | | + |------+-----+-----+-----+----+----+----+----+-----+-----+-----+-----+-------+-------+-----| + + |---+---+---+---+---| + | | | | | | + |---+---+---+---+---| + */ + + [HHKB] = KEYMAP( + KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, \ + KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC, \ + KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + + /* Layer LGUI: All keys with RGUI modifier + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Contro | A | S | D | F | G | H | J | K | | ; | ' | RCtl/Ent | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Shift | Z | X | C | V | B | N | M | , | . | Fn2 | Shift | Fn0 | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + + |------+------+-------+------+------| + | LAlt | LGUI | Space | RGUI | RAlt | + |------+------+-------+------+------| + */ + + [RGUILEV] = KEYMAP( // Right GUI layer by KC_L + + RGUI(KC_ESC), RGUI(KC_1), RGUI(KC_2), RGUI(KC_3), RGUI(KC_4), RGUI(KC_5), RGUI(KC_6), RGUI(KC_7), RGUI(KC_8), RGUI(KC_9), RGUI(KC_0), RGUI(KC_MINS), RGUI(KC_EQL), RGUI(KC_BSLS), RGUI(KC_GRV), \ + RGUI(KC_TAB), RGUI(KC_Q), RGUI(KC_W), RGUI(KC_E), RGUI(KC_R), RGUI(KC_T), RGUI(KC_Y), RGUI(KC_U), RGUI(KC_I), RGUI(KC_O), RGUI(KC_P), RGUI(KC_LBRC), RGUI(KC_RBRC), RGUI(KC_BSPC), \ + RGUI(KC_LCTL), RGUI(KC_A), RGUI(KC_S), RGUI(KC_D), RGUI(KC_F), RGUI(KC_G), RGUI(KC_H), RGUI(KC_J), RGUI(KC_K), KC_TRNS, KC_TRNS, RGUI(KC_QUOT), KC_FN0, \ + RGUI(KC_LSFT), RGUI(KC_Z), RGUI(KC_X), RGUI(KC_C), RGUI(KC_V), RGUI(KC_B), RGUI(KC_N), RGUI(KC_M), RGUI(KC_COMM), RGUI(KC_DOT), RGUI(KC_SLSH), RGUI(KC_RSFT), KC_TRNS, \ + KC_LALT, KC_LGUI, RGUI(KC_SPC), KC_RGUI, KC_RALT), + + /* Layer LGUI: All keys with LGUI modifier + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Contro | A | S | D | F | G | H | J | K | | ; | ' | RCtl/Ent | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Shift | Z | X | C | V | B | N | M | , | . | Fn2 | Shift | Fn0 | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + + |------+------+-------+------+------| + | LAlt | LGUI | Space | LGUI | RAlt | + |------+------+-------+------+------| + */ + + [LGUILEV] = KEYMAP( // Right GUI layer by KC_L + + LGUI(KC_ESC), LGUI(KC_1), LGUI(KC_2), LGUI(KC_3), LGUI(KC_4), LGUI(KC_5), LGUI(KC_6), LGUI(KC_7), LGUI(KC_8), LGUI(KC_9), LGUI(KC_0), LGUI(KC_MINS), LGUI(KC_EQL), LGUI(KC_BSLS), LGUI(KC_GRV), \ + LGUI(KC_TAB), LGUI(KC_Q), LGUI(KC_W), LGUI(KC_E), LGUI(KC_R), LGUI(KC_T), LGUI(KC_Y), LGUI(KC_U), LGUI(KC_I), LGUI(KC_O), LGUI(KC_P), LGUI(KC_LBRC), LGUI(KC_RBRC), LGUI(KC_BSPC), \ + LGUI(KC_LCTL), KC_TRNS, KC_TRNS, LGUI(KC_D), LGUI(KC_F), LGUI(KC_G), LGUI(KC_H), LGUI(KC_J), LGUI(KC_K), LGUI(KC_L), LGUI(KC_SCLN), LGUI(KC_QUOT), KC_FN0, \ + KC_LSFT, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), LGUI(KC_B), LGUI(KC_N), LGUI(KC_M), LGUI(KC_COMM), LGUI(KC_DOT), LGUI(KC_SLSH), KC_RSFT, KC_TRNS, \ + KC_LALT, KC_LGUI, LGUI(KC_SPC), KC_LGUI, KC_RALT), + + /* Layer LALT: All keys with RALT modifier + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Contro | A | S | D | F | G | H | J | K | | ; | ' | RCtl/Ent | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Shift | Z | X | C | V | B | N | M | , | . | Fn2 | Shift | Fn0 | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + + |------+------+-------+------+------| + | LAlt | LGUI | Space | RGUI | RAlt | + |------+------+-------+------+------| + */ + + [RALTLEV] = KEYMAP( // Right ALT layer by KC_L + + RALT(KC_ESC), RALT(KC_1), RALT(KC_2), RALT(KC_3), RALT(KC_4), RALT(KC_5), RALT(KC_6), RALT(KC_7), RALT(KC_8), RALT(KC_9), RALT(KC_0), RALT(KC_MINS), RALT(KC_EQL), RALT(KC_BSLS), RALT(KC_GRV), \ + RALT(KC_TAB), RALT(KC_Q), RALT(KC_W), RALT(KC_E), RALT(KC_R), RALT(KC_T), RALT(KC_Y), RALT(KC_U), RALT(KC_I), RALT(KC_O), RALT(KC_P), RALT(KC_LBRC), RALT(KC_RBRC), RALT(KC_BSPC), \ + RALT(KC_LCTL), RALT(KC_A), RALT(KC_S), RALT(KC_D), RALT(KC_F), RALT(KC_G), RALT(KC_H), RALT(KC_J), RALT(KC_K), KC_TRNS, KC_TRNS, RALT(KC_QUOT), KC_FN0, \ + RALT(KC_LSFT), RALT(KC_Z), RALT(KC_X), RALT(KC_C), RALT(KC_V), RALT(KC_B), RALT(KC_N), RALT(KC_M), RALT(KC_COMM), RALT(KC_DOT), RALT(KC_SLSH), RALT(KC_RSFT), KC_TRNS, \ + KC_LALT, KC_LGUI, RALT(KC_SPC), KC_RGUI, KC_RALT), + + /* Layer LALT: All keys with LALT modifier + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Contro | A | S | D | F | G | H | J | K | | ; | ' | RCtl/Ent | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + | Shift | Z | X | C | V | B | N | M | , | . | Fn2 | Shift | Fn0 | | | + |--------+---+---+---+---+---+---+---+---+---+-----+-------+----------+-------+---| + + |------+------+-------+------+------| + | LAlt | LGUI | Space | LGUI | RAlt | + |------+------+-------+------+------| + */ + + [LALTLEV] = KEYMAP( // Right ALT layer by KC_L + + LALT(KC_ESC), LALT(KC_1), LALT(KC_2), LALT(KC_3), LALT(KC_4), LALT(KC_5), LALT(KC_6), LALT(KC_7), LALT(KC_8), LALT(KC_9), LALT(KC_0), LALT(KC_MINS), LALT(KC_EQL), LALT(KC_BSLS), LALT(KC_GRV), \ + LALT(KC_TAB), LALT(KC_Q), LALT(KC_W), LALT(KC_E), LALT(KC_R), LALT(KC_T), LALT(KC_Y), LALT(KC_U), LALT(KC_I), LALT(KC_O), LALT(KC_P), LALT(KC_LBRC), LALT(KC_RBRC), LALT(KC_BSPC), \ + LALT(KC_LCTL), KC_TRNS, KC_TRNS, LALT(KC_D), LALT(KC_F), LALT(KC_G), LALT(KC_H), LALT(KC_J), LALT(KC_K), LALT(KC_L), LALT(KC_SCLN), LALT(KC_QUOT), KC_FN0, \ + KC_LSFT, LALT(KC_Z), LALT(KC_X), LALT(KC_C), LALT(KC_V), LALT(KC_B), LALT(KC_N), LALT(KC_M), LALT(KC_COMM), LALT(KC_DOT), LALT(KC_SLSH), KC_RSFT, KC_TRNS, \ + KC_LALT, KC_LGUI, LALT(KC_SPC), KC_LGUI, KC_RALT), + + + /* Layer WIN: Win layer + |--------+---+---+---+---+---+---+---+---+---+---+-------+----------+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + |--------+---+---+---+---+---+---+---+---+---+---+-------+----------+-------+---| + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | + |--------+---+---+---+---+---+---+---+---+---+---+-------+----------+-------+---| + | Contro | A | S | D | F | G | H | J | K | L | ; | ' | RCtl/Ent | | | + |--------+---+---+---+---+---+---+---+---+---+---+-------+----------+-------+---| + | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Fn0 | | | + |--------+---+---+---+---+---+---+---+---+---+---+-------+----------+-------+---| + + |------+------+-------+------+------| + | LGui | LAlt | Space | RGui | Ralt | + |------+------+-------+------+------| + */ + + [WIN] = KEYMAP( // BASE level with swapped GUI/ALT + + + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \ + KC_LCTL, LT(LGUILEV,KC_A), LT(LALTLEV,KC_S), KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, LT(RALTLEV,KC_L), LT(RGUILEV,KC_SCLN), KC_QUOT, KC_FN0, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(HHKB), \ + KC_RGUI, KC_RALT, KC_SPC, KC_RALT, KC_RGUI)}; + + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_ENT) // RControl with tap Enter* +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboards/hhkb/matrix.c b/keyboards/hhkb/matrix.c new file mode 100644 index 000000000..2dfb2f5e1 --- /dev/null +++ b/keyboards/hhkb/matrix.c @@ -0,0 +1,204 @@ +/* +Copyright 2011 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +/* + * scan matrix + */ +#include +#include +#include +#include "print.h" +#include "debug.h" +#include "util.h" +#include "timer.h" +#include "matrix.h" +#include "hhkb_avr.h" +#include +#include "suspend.h" +#include "lufa.h" + + +// matrix power saving +#define MATRIX_POWER_SAVE 10000 +static uint32_t matrix_last_modified = 0; + +// matrix state buffer(1:on, 0:off) +static matrix_row_t *matrix; +static matrix_row_t *matrix_prev; +static matrix_row_t _matrix0[MATRIX_ROWS]; +static matrix_row_t _matrix1[MATRIX_ROWS]; + + +inline +uint8_t matrix_rows(void) +{ + return MATRIX_ROWS; +} + +inline +uint8_t matrix_cols(void) +{ + return MATRIX_COLS; +} + +void matrix_init(void) +{ +#ifdef DEBUG + debug_enable = true; + debug_keyboard = true; +#endif + + KEY_INIT(); + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_ROWS; i++) _matrix0[i] = 0x00; + for (uint8_t i=0; i < MATRIX_ROWS; i++) _matrix1[i] = 0x00; + matrix = _matrix0; + matrix_prev = _matrix1; +} + +uint8_t matrix_scan(void) +{ + uint8_t *tmp; + + tmp = matrix_prev; + matrix_prev = matrix; + matrix = tmp; + + // power on + if (!KEY_POWER_STATE()) KEY_POWER_ON(); + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + for (uint8_t col = 0; col < MATRIX_COLS; col++) { + KEY_SELECT(row, col); + _delay_us(5); + + // Not sure this is needed. This just emulates HHKB controller's behaviour. + if (matrix_prev[row] & (1< 20/(1000000/TIMER_RAW_FREQ)) { + matrix[row] = matrix_prev[row]; + } + + _delay_us(5); + KEY_PREV_OFF(); + KEY_UNABLE(); + + // NOTE: KEY_STATE keep its state in 20us after KEY_ENABLE. + // This takes 25us or more to make sure KEY_STATE returns to idle state. +#ifdef HHKB_JP + // Looks like JP needs faster scan due to its twice larger matrix + // or it can drop keys in fast key typing + _delay_us(30); +#else + _delay_us(75); +#endif + } + if (matrix[row] ^ matrix_prev[row]) matrix_last_modified = timer_read32(); + } + // power off + if (KEY_POWER_STATE() && + (USB_DeviceState == DEVICE_STATE_Suspended || + USB_DeviceState == DEVICE_STATE_Unattached ) && + timer_elapsed32(matrix_last_modified) > MATRIX_POWER_SAVE) { + KEY_POWER_OFF(); + suspend_power_down(); + } + return 1; +} + +bool matrix_is_modified(void) +{ + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + if (matrix[i] != matrix_prev[i]) + return true; + } + return false; +} + +inline +bool matrix_has_ghost(void) +{ + return false; +} + +inline +bool matrix_is_on(uint8_t row, uint8_t col) +{ + return (matrix[row] & (1<= 0; --r) { + count += bitpop16(matrix_get_row(r)); + } + return count; +} + +void matrix_power_up(void) { + KEY_POWER_ON(); +} +void matrix_power_down(void) { + KEY_POWER_OFF(); +} diff --git a/keyboards/jd45/Makefile b/keyboards/jd45/Makefile new file mode 100644 index 000000000..75d544f16 --- /dev/null +++ b/keyboards/jd45/Makefile @@ -0,0 +1,71 @@ + + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= yes # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend +# NKRO_ENABLE ?= yes # USB Nkey Rollover - not yet supported in LUFA +BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality +MIDI_ENABLE ?= YES # MIDI controls +# UNICODE_ENABLE ?= YES # Unicode +BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID + +ifndef QUANTUM_DIR + include ../../Makefile +endif diff --git a/keyboards/jd45/config.h b/keyboards/jd45/config.h new file mode 100644 index 000000000..ffedb6a1a --- /dev/null +++ b/keyboards/jd45/config.h @@ -0,0 +1,80 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER geekhack +#define PRODUCT JD45 +#define DESCRIPTION q.m.k. keyboard firmware for JD45 + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 13 + +/* Planck PCB default pin-out */ +#define MATRIX_ROW_PINS { F0, F1, F5, B4 } +#define MATRIX_COL_PINS { F4, D7, B5, B6, C6, C7, D4, D6, D5, D0, D1, D2, B0 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +#define NO_DEBUG + +/* disable print */ +#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/jd45/jd45.c b/keyboards/jd45/jd45.c new file mode 100644 index 000000000..5437b2bff --- /dev/null +++ b/keyboards/jd45/jd45.c @@ -0,0 +1,81 @@ +#include "jd45.h" + +__attribute__ ((weak)) +void matrix_init_user(void) { + +}; + +__attribute__ ((weak)) +void matrix_scan_user(void) { + +}; + +#define CHANNEL OCR1C + +void backlight_init_ports(void) +{ + + // Setup PB7 as output and output low. + DDRB |= (1<<7); + PORTB &= ~(1<<7); + + // Use full 16-bit resolution. + ICR1 = 0xFFFF; + + // I could write a wall of text here to explain... but TL;DW + // Go read the ATmega32u4 datasheet. + // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on + + // Pin PB7 = OCR1C (Timer 1, Channel C) + // Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0 + // (i.e. start high, go low when counter matches.) + // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0 + // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1 + + TCCR1A = _BV(COM1C1) | _BV(WGM11); // = 0b00001010; + TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; + + backlight_init(); +} + +void backlight_set(uint8_t level) +{ + if ( level == 0 ) + { + // Turn off PWM control on PB7, revert to output low. + TCCR1A &= ~(_BV(COM1C1)); + CHANNEL = 0x0; + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + } + else if ( level == BACKLIGHT_LEVELS ) + { + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + // Turn on PWM control of PB7 + TCCR1A |= _BV(COM1C1); + // Set the brightness + CHANNEL = 0xFFFF; + } + else + { + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + // Turn on PWM control of PB7 + TCCR1A |= _BV(COM1C1); + // Set the brightness + CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); + } +} + +void matrix_init_kb(void) { + #ifdef BACKLIGHT_ENABLE + backlight_init_ports(); + #endif + + matrix_init_user(); +}; + +void matrix_scan_kb(void) { + matrix_scan_user(); +}; diff --git a/keyboards/jd45/jd45.h b/keyboards/jd45/jd45.h new file mode 100644 index 000000000..1e9de2123 --- /dev/null +++ b/keyboards/jd45/jd45.h @@ -0,0 +1,13 @@ +#ifndef JD45_H +#define JD45_H + +#include "matrix.h" +#include "keymap.h" +#include "backlight.h" +#include +#include + +void matrix_init_user(void); +void matrix_scan_user(void); + +#endif diff --git a/keyboards/jd45/keymaps/default/compiled.hex b/keyboards/jd45/keymaps/default/compiled.hex new file mode 100644 index 000000000..cc20ee3c5 --- /dev/null +++ b/keyboards/jd45/keymaps/default/compiled.hex @@ -0,0 +1,1113 @@ +:100000000C9480010C94C4010C94C4010C94C401A0 +:100010000C94C4010C94C4010C94C4010C94C4014C +:100020000C94C4010C94C4010C94D40B0C94A60C35 +:100030000C94B2190C94C4010C94C4010C94C40126 +:100040000C94C4010C94C4010C94C4010C94C4011C +:100050000C94C4010C941A1A0C94C4010C94C4019D +:100060000C94C4010C946C0E0C94C4010C94C40147 +:100070000C94C4010C94C4010C94C4010C94C401EC +:100080000C94C4010C94C4010C94C4010C94C401DC +:100090000C94C4010C94C4010C94C4010C94C401CC +:1000A0000C94C4010C94C4010C94C401130D350DBF +:1000B000230E350D230E7A0D9D0D230EF20D050E28 +:1000C0002E112E115D115D119C11BC111213121312 +:1000D000C711121377127712DE12E71212130C13E4 +:1000E0008412841284128412841284128412841260 +:1000F0008412841284128412841284128412841250 +:100100009412A212A912B012BA12290014001A00F5 +:100110000800150017001C0018000C001200130046 +:1001200034002A002B0004001600070009000A0012 +:100130000B000D000E000F00330028000000E1004E +:100140001D001B00060019000500110010003600FC +:1001500037003800E50000004800E000E2004C00F5 +:100160002C0000004C0000005000520051004F00D5 +:1001700000000A034A004400340035000000120366 +:100180006700650065006B006800610063006B003C +:1001900000000403090409027400040100A0FA0924 +:1001A00004000001030101000921110100012240A6 +:1001B000000705810308000A090401000103010288 +:1001C00000092111010001224D00070582030800EA +:1001D0000A090402000103000000092111010001C5 +:1001E0002236000705830308000A090403000203FE +:1001F00000000009211101000122200007058403ED +:100200002000010705040320000112011001000075 +:100210000008EDFE60600100010200010631FF09E7 +:1002200074A1010975150025FF9520750881020943 +:1002300076150025FF952075089102C005010980FB +:10024000A101850216010026B7001A01002AB70095 +:10025000751095018100C0050C0901A101850316E7 +:100260000100269C021A01002A9C0275109501814A +:1002700000C005010902A1010901A1000509190138 +:100280002905150025019505750181029501750364 +:1002900081010501093009311581257F9502750815 +:1002A000810609381581257F950175088106050CA1 +:1002B0000A38021581257F950175088106C0C005A1 +:1002C000010906A101050719E029E7150025019597 +:1002D0000875018102950175088101050819012938 +:1002E00005950575019102950175039101050719A1 +:1002F0000029FF150026FF00950675088100C00043 +:1003000011241FBECFEFDAE0DEBFCDBF04B603FE7F +:1003100024C08091ED029091EE02A091EF02B09185 +:10032000F0028730904BA740B04BB9F41092ED0229 +:100330001092EE021092EF021092F00214BE84B7F7 +:10034000877F84BF88E10FB6F89480936000109295 +:1003500060000FBEE0E0F8E3099511E0A0E0B1E035 +:10036000E8E2F5E402C005900D92A434B107D9F794 +:1003700012E0A4E4B1E001C01D92AD3EB107E1F787 +:100380000E9443090C9492220C9400000895089551 +:10039000279A2F988FEF9FEF909387008093860086 +:1003A0008AE08093800089E1809381000C94692029 +:1003B000282F81110BC080918000877F809380005F +:1003C00010928D0010928C002F9808952F98809194 +:1003D0008000886080938000233019F48FEF9FEFB6 +:1003E0000FC083E090E0821B9109880F991F2FEFC7 +:1003F0003FEFA90102C0569547958A95E2F7CA01D9 +:1004000090938D0080938C0008950E94C8010C94F5 +:10041000C6010C94C70181E0089581E008950C9411 +:100420000D0208950F931F93CF93DF938C01FC016E +:10043000C081D181CE010E947618BE010E9446057E +:10044000EC01B8010E940F02882309F470C1F80181 +:100450008281882309F45BC080914F0181111FC004 +:10046000C431F0E7DF0709F00AC10E94110281E000 +:1004700080934F010E94E41990934E0180934D01A7 +:1004800010924601109248011092470110924A01C1 +:100490001092490110924C0110924B0148C1809179 +:1004A0004D0190914E010E94F019883C910570F425 +:1004B00080914601E82FF0E0EE0FFF1FE95BFE4F51 +:1004C000D183C0838F5F8093460131C1C43120E75F +:1004D000D20708F024C1C23080E7D80710F5C11553 +:1004E00090E7D90709F0DAC0F8018281882309F47E +:1004F000BFC00E947D13FFEF24E38CE0F150204049 +:100500008040E1F700C000000E943F1A10C1C431D2 +:10051000F0E7DF0708F0CFC0C23020E7D20708F4C9 +:100520009BC0F8018281882309F4A2C00E94F11BBC +:10053000811102C00E94D21B0E940E1C90E0909379 +:10054000DE028093DD02C230F0E7DF0721F4809104 +:10055000DD0281607AC0C33020E7D20721F48091A8 +:10056000DD02826072C0C43080E7D80721F4809138 +:10057000DD0284606AC0C53090E7D90719F4809124 +:10058000DD0227C0C630E0E7DE0721F48091DD02FE +:1005900080615BC0C730F0E7DF0721F48091DD02A6 +:1005A000806253C0C83020E7D20721F48091DD0279 +:1005B00080644BC0C93080E7D80721F48091DD0208 +:1005C000806843C0CA3090E7D90729F48091DD02E2 +:1005D000846088603AC0CB30E0E7DE0721F4809188 +:1005E000DD028E7F32C0CC30F0E7DF0721F480914E +:1005F000DD028D7F2AC0CD3020E7D20721F4809123 +:10060000DD028B7F22C0CE3080E7D80719F48091BD +:10061000DD021AC08091DD02CF3090E7D90711F4D6 +:100620008F7E13C0C031E0E7DE0711F48F7D0DC06F +:10063000C131F0E7DF0711F48F7B07C0C231D0472B +:1006400011F48F7702C08B7F877F8093DD028091CA +:10065000DD020E94121C6BC0C11580E7D80741F073 +:10066000C130D047F1F081E080934401809345018F +:10067000C801DF91CF911F910F910C940B02C431EF +:1006800020E7D20708F04BC0C23080E7D80708F057 +:1006900048CFC11590E7D90709F42BCFC130D04717 +:1006A00011F7F8018281882319F38091CC028160CF +:1006B0008093CC023CC0C333E0E7DE07A1F4F8012D +:1006C0008281882321F01092440182E017C080913A +:1006D0004401811106C086E20E94D20F86E20E9488 +:1006E0009A1082E019C0C433D04709F0BCCFF8019A +:1006F0008281882331F01092450180E20E94E91046 +:1007000016C080914501811106C087E20E94D20F78 +:1007100087E20E949A1080E20E94F01008C0C33362 +:10072000F0E7DF0761F2C433D04709F39CCF80E0E4 +:10073000DF91CF911F910F9108950C9405020C94B5 +:1007400009022DE0729FF001112434E3839FE00D34 +:10075000F11D1124E60FF11DEE0FFF1FE65FFE4FA6 +:10076000859194910E945805811540E5940708F001 +:1007700047C0811520E4920708F013C1883E910517 +:1007800020F5803E910508F07CC1883A910578F407 +:10079000853A910508F0A5C08130910509F471C131 +:1007A00008F42EC18430910508F06BC129C18B3B40 +:1007B000910508F4A1C0803C910508F421C1FC0119 +:1007C000EE0FFF1FE657F040E6C0811530E29307B9 +:1007D00058F4811541E0940708F053C1803F91051A +:1007E00008F40EC190650895811520E3920708F082 +:1007F000D5C0FC01FF70EE0FFF1FE65FFE4FCBC0C0 +:10080000811535E5930708F043C0811544E5940749 +:1008100008F0DEC0811522E5920708F5811531E563 +:10082000930708F0C1C0482F437021E030E002C0B8 +:10083000220F331F4A95E2F73C68AC0164E05695FD +:1008400047956A95E1F74370342B8F7086958695AE +:1008500040E2849FC0011124822B932B0895282FFE +:1008600026952695AC01437055278115934508F0D0 +:10087000A0C080E2289F9001112481E090E002C096 +:10088000880F991F4A95E2F7822B932B9C68089555 +:100890008F3240E7940790F48F3120E7920708F0F9 +:1008A000A2C0811536E5930708F497C09C01305625 +:1008B0002115304108F0A4C09F7093C0803320E719 +:1008C000920709F497C008F492C0813340E7940777 +:1008D00009F493C08233904709F092C080E093ED11 +:1008E0000895853A910509F48EC0863A910509F07C +:1008F0008DC082E890E40895883A910509F489C092 +:10090000893A910509F488C08A3A910509F487C0AB +:100910008B3A910509F486C08C3A910509F485C09B +:100920008D3A910509F484C0803B910509F483C098 +:100930008E3A910509F482C08F3A910509F481C07D +:10094000813B910509F480C0823B910509F47FC089 +:10095000833B910509F47EC0843B910509F47DC079 +:10096000853B910509F47CC0863B910509F47BC069 +:10097000873B910509F47AC0883B910509F479C059 +:10098000893B910509F478C08A3B910509F477C049 +:1009900080E094E408958591949108959927906C4E +:1009A00008959F70906A0895982F8827816F906AA4 +:1009B000089590E2299F9001112481E090E002C007 +:1009C000880F991F4A95E2F7822B932B9A68089516 +:1009D000982F8827846F906A08958F719927982F90 +:1009E0008827906208958F519047946D089580E014 +:1009F00091ED089580E090ED089580E092ED0895E6 +:100A000080E090E0089581E890E4089583E890E420 +:100A1000089582EE94E4089589EE94E408958AEEB0 +:100A200094E4089585EB94E4089586EB94E40895A6 +:100A300087EB94E408958CEC94E408958DEC94E4B1 +:100A4000089583E895E408958AE895E4089582E995 +:100A500095E4089584E995E4089581E296E4089583 +:100A600083E296E4089584E296E4089585E296E4AC +:100A7000089586E296E4089587E296E408958AE26E +:100A800096E4089580E090E0089508959DE0799FB0 +:100A9000F001112494E3899FE00DF11D1124E60F6C +:100AA000F11DEE0FFF1FE65FFE4F859194910895B3 +:100AB0008238910549F1B0F48133910509F458C0A9 +:100AC00048F48932910509F44EC08A32910509F43F +:100AD00054C008958533910509F440C089339105C8 +:100AE00099F00895833E910529F138F4803E9105EF +:100AF00091F0823E9105A1F00895863E9105F9F0AE +:100B0000873E910531F108952091DD0220FD3AC024 +:100B100021FD38C008958091DD0280FD35C032C0CE +:100B20008091DD0282FF32C08091DD0284FD30C001 +:100B300083EE39C08091DD0282FD28C0F5CF80911F +:100B4000DD0283FF27C08091DD0284FD21C087EE96 +:100B50002AC08091DD0283FD1DC0F5CF8091DD02AA +:100B600085FD1AC01BC08091DD0285FD17C014C031 +:100B70008091DD0286FD14C015C08091DD0286FDE6 +:100B800011C00EC080EE0FC089E30DC082EE0BC015 +:100B900080E009C086EE07C089E205C085E303C096 +:100BA0008AE201C081E390E0089508950C94D50590 +:100BB000E82FF0E0EF5DFE4F8081E82FEF70F0E06E +:100BC00082958F7021E030E0A90102C0440F551FCB +:100BD0008A95E2F740A308950F931F93CF93DF9375 +:100BE00085B7806885BF85B7806885BFC3E0D0E0E2 +:100BF00001E010E0FE01EF5DFE4F8081E82FEF7015 +:100C0000F0E021A182958F70A80102C0440F551F0A +:100C10008A95E2F7CA01822B81A38C2F0E94D80506 +:100C2000219740F78CE090E061E070E0FC01EC5E21 +:100C3000FE4F2081E22FEF70F0E042A122952F704D +:100C4000DB0102C0AA0FBB1F2A95E2F79D01242BEE +:100C500022A3019758F7DF91CF911F910F910C9428 +:100C60009D03EF92FF920F931F93CF93DF9308E5BD +:100C700011E0C3E0EE24E394F12CD5E08C2F0E9428 +:100C8000D8058CE090E040E050E0FC01EC5EFE4FC7 +:100C90006081E62FEF70F0E020A130E062956F7088 +:100CA00002C0359527956A95E2F720FD09C09701A6 +:100CB000082E02C0220F331F0A94E2F7422B532B57 +:100CC000019718F7F801929182918F018417950787 +:100CD00021F051834083D09300018C2F0E94D805CE +:100CE000C15060F68091000187FD2CC08150809337 +:100CF00000018F3F39F08FE99FE00197F1F700C0C5 +:100D0000000020C0809156019091570190935F019F +:100D100080935E01809154019091550190935D0103 +:100D200080935C01809152019091530190935B01FB +:100D300080935A01809150019091510190935901F3 +:100D4000809358010E949F0381E0DF91CF911F9112 +:100D50000F91FF90EF900895E82FF0E0EE0FFF1F46 +:100D6000E85AFE4F808191810895089580916C0129 +:100D700008950F931F93CF93DF9300D000D01F925D +:100D8000CDB7DEB79C018091610190916201281777 +:100D9000390709F493C03093620120936101223E28 +:100DA0003105F1F1293E310559F12A3E310559F15C +:100DB000253B310559F1263B310551F1273B3105E2 +:100DC00051F12C3C310561F12D3C310531F12338D5 +:100DD00081E0380729F12A3891E0390709F12239F1 +:100DE00081E03807E9F0243991E03907C9F0213270 +:100DF00082E03807B9F0233292E0390789F415C050 +:100E000090E040E114C090E040E211C092E001C0E7 +:100E100094E040E00CC090E1FCCF90E040E407C0DB +:100E200090E0F7CF90E044E002C090E041E089011B +:100E30008DEF4C839D830E94560E80E00E94560EDB +:100E400082E00E94560E4C81842F0E94560E9D8196 +:100E5000892F0E94560E80E00E94560E80E00E946C +:100E6000560E80E00E94560E80E00E94560E809141 +:100E7000E302843019F583E089831B830A8380931E +:100E8000E9008FEF9091E800815095FD06C095ED47 +:100E90009A95F1F700008111F5CF8091E80085FF68 +:100EA0000DC040E050E063E070E0CE0101960E948A +:100EB000C4098091E8008E778093E8000F900F902E +:100EC0000F900F900F90DF91CF911F910F91089588 +:100ED000CF93DF9300D01F92CDB7DEB72091E3020E +:100EE000243021F522E029839B838A8383E0809349 +:100EF000E9008FEF9091E800815095FD06C095EDD7 +:100F00009A95F1F700008111F5CF8091E80085FFF7 +:100F10000DC040E050E063E070E0CE0101960E9419 +:100F2000C4098091E8008E778093E8000F900F90BD +:100F30000F90DF91CF910895CF93DF93EC018DEF68 +:100F40000E94560E80E00E94560E83E00E94560ECC +:100F500088810E94560E89810E94560E8A810E94C5 +:100F6000560E8B810E94560E8C810E94560E80E098 +:100F70000E94560E8091E3028430F9F482E080935F +:100F8000E9008FEF9091E800815095FD06C095ED46 +:100F90009A95F1F700008111F5CF8091E80085FF67 +:100FA0000CC040E050E065E070E0CE010E94C40952 +:100FB0008091E8008E778093E800DF91CF910895CB +:100FC000EF92FF920F931F93CF93DF93EC018DEF7E +:100FD0000E94560E8E017E0188E0E80EF11CF80199 +:100FE00081918F010E94560E0E151F05C1F7809149 +:100FF000E302843039F581E08093E9008FEF90912E +:10100000E800815095FD06C0F5EDFA95F1F7000076 +:101010008111F5CF8091E80085FF14C040E050E0D9 +:1010200068E070E0CE010E94C4098091E8008E77EC +:101030008093E80088E0FE01A4E6B1E001900D9203 +:101040008A95E1F7DF91CF911F910F91FF90EF907B +:1010500008958091E202811109C00E94590B0E94FB +:10106000B60B8091E20084608093E20008951092B4 +:10107000E2020895089508950C94A7192091600143 +:101080002F5F822F62E30E942222992319F020937E +:10109000600108951092600180916301882371F1CD +:1010A0008091E302843041F58091E9008F702091B6 +:1010B000EC00922F917020FD90E8892B94E09093A2 +:1010C000E9009091EB0090FF14C09091EE0097FF23 +:1010D00010C09091E80095FF03C01092F100F9CF85 +:1010E0009091E80090FF05C09091E8009E77909362 +:1010F000E8008F708093E90010926301089542E048 +:1011000061EC81E00E94D30A42E061EC82E00E943F +:10111000D30A42E061EC83E00E94D30A42E261EC30 +:1011200084E00C94D30A8091E502833009F453C023 +:1011300030F4813071F0823009F48CC008958A3027 +:1011400009F478C08B3009F45EC0893009F09AC088 +:1011500020C08091E402813A09F094C08091E800B7 +:10116000877F8093E8008091E8029091E902892BC3 +:1011700021F468E084E691E003C060E080E090E064 +:1011800070E00E940F0A8091E8008B778093E8005E +:1011900008958091E402813209F074C08091E802E0 +:1011A0009091E902892B09F06DC08091E800877F5A +:1011B0008093E8008091E80082FD05C08091E30201 +:1011C0008111F8CF5FC08091F10080936C01809114 +:1011D000E8008B7753C08091E402813A09F052C055 +:1011E0008091E8029091E902892B09F04BC080912F +:1011F000E800877F8093E8008091E80080FFFCCFC3 +:1012000080910B0136C08091E4028132D9F5809142 +:10121000E8029091E902892BA9F58091E800877F87 +:101220008093E8000E94080B8091E60280930B01F6 +:101230000C947D138091E402813221F58091E800C5 +:10124000877F8093E8000E94080B8091E7028093DB +:101250006D0108958091E402813AA1F48091E80043 +:10126000877F8093E8008091E80080FFFCCF809129 +:101270006D018093F1008091E8008E778093E80003 +:101280000C94080B089584B7877F84BF88E10FB65C +:10129000F89480936000109260000FBE80E8809305 +:1012A0006100109261000E94EA0E0E94590B0E9498 +:1012B000B60B8091E20084608093E20078940E94F3 +:1012C000580E0E943B0E0E94EC0E81E091E00E94BD +:1012D000960E0E94F40EFDCF292F332723303105BF +:1012E000C9F064F42130310581F02230310509F074 +:1012F00043C084E790E026E931E042C02132310565 +:10130000F1F02232310541F137C082E190E02AE06C +:1013100032E036C099278130910541F08230910545 +:1013200041F0892B49F5E2E9F1E005C0EEE7F1E093 +:1013300002C0E2E7F1E0849190E09F0121C06430B7 +:10134000D8F4E62FF0E0EE0FFF1FEF5CFE4F208198 +:10135000318189E090E014C0643070F470E0FB01EA +:10136000EE0FFF1FE75DFE4F20813181FB01EB5D3A +:10137000FE4F808190E004C080E090E020E030E00B +:10138000FA01318320830895CF92DF92EF92FF928A +:101390000F931F93CF93DF93EC018B016A010E949F +:1013A000270B811133C0C114D10439F0F6018081BB +:1013B0009181081B190BC80FD91FE12CF12C0115C5 +:1013C000110519F18091E80085FD16C08091E800B3 +:1013D0008E778093E800C114D10449F0F601808132 +:1013E0009181E80EF91EF182E08285E00FC00E9433 +:1013F000270B882321F30AC089918093F1000150C3 +:101400001109FFEFEF1AFF0ADACF80E0DF91CF91E9 +:101410001F910F91FF90EF90DF90CF900895209152 +:10142000EA023091EB022617370748F06115710583 +:1014300039F42091E8002E772093E80001C0B9012B +:1014400040E061157105A9F12091E302222309F41E +:1014500043C0253009F442C02091E80023FD40C07C +:101460002091E80022FD32C02091E80020FFE9CF62 +:101470004091F3002091F20030E0342BFC01CF01C9 +:101480006115710559F02830310540F48191809340 +:10149000F100615071092F5F3F4FF1CF41E02830DB +:1014A000310509F040E02091E8002E772093E80014 +:1014B000C8CF4111C9CF0AC08091E302882361F0EF +:1014C000853061F08091E80083FD0AC08091E800DA +:1014D00082FFF2CF80E0089582E0089583E00895CE +:1014E00081E008952091EA023091EB022617370738 +:1014F00048F06115710539F42091E8002E772093AA +:10150000E80001C0B901FC0120E06115710591F10D +:101510008091E302882309F440C0853009F43FC07C +:101520008091E80083FD3DC08091E80082FD2FC0DE +:101530008091E80080FFE9CF2091F3008091F200D4 +:1015400090E0922B6115710559F08830910540F4B7 +:1015500024912093F1003196615071090196F2CFE8 +:1015600021E0089709F020E08091E8008E778093D1 +:10157000E800CBCF2111CCCF0AC08091E3028823B1 +:1015800061F0853061F08091E80083FD0AC08091B0 +:10159000E80082FFF2CF80E0089582E0089583E0C2 +:1015A000089581E00895982F973058F59093E900B9 +:1015B000981739F07091EC002091ED005091F000F7 +:1015C00003C0242F762F50E021FF19C03091EB008B +:1015D0003E7F3093EB003091ED003D7F3093ED0086 +:1015E0003091EB0031603093EB007093EC0020936E +:1015F000ED005093F0002091EE0027FF07C09F5FA1 +:10160000D3CF8F708093E90081E0089580E0089542 +:101610008091E40287FF11C08091E80082FD05C03F +:101620008091E3028111F8CF11C08091E8008B779F +:101630000BC08091E302882349F08091E80080FF8D +:10164000F8CF8091E8008E778093E800089520918C +:10165000E4003091E50095E64091EC00842F817024 +:1016600040FF22C08091E80080FD1CC08091E30211 +:10167000882391F0853091F08091EB0085FD10C0BA +:101680004091E4005091E5004217530729F39A0175 +:10169000915011F784E0089582E0089583E0089561 +:1016A00081E0089580E008954091E80042FFDECF98 +:1016B00008950E94C70B0E94CF0BE0EEF0E08081FE +:1016C00081608083E8EDF0E080818F77808319BCB2 +:1016D000A7EDB0E08C918E7F8C9380818F7E80838C +:1016E0001092E20208950F931F93CF93DF930E940D +:1016F000C70B0E94CF0BC8EDD0E088818F7788831D +:1017000088818068888388818F7D888319BC109246 +:10171000E3021092DF021092E1021092E00200EE6A +:1017200010E0F80180818B7F8083888181608883CD +:1017300042E060E080E00E94D30AE1EEF0E08081C8 +:101740008E7F8083E2EEF0E0808181608083808103 +:1017500088608083F80180818E7F808388818061AA +:101760008883DF91CF911F910F910895E8EDF0E00C +:1017700080818F7E8083E7EDF0E0808181608083CF +:1017800084E082BF81E08093E2020C94730BE8ED69 +:10179000F0E080818E7F80831092E20008951092A5 +:1017A000DA001092E10008951F920F920FB60F9287 +:1017B00011242F933F934F935F936F937F938F9356 +:1017C0009F93AF93BF93EF93FF938091E10082FFCC +:1017D0000BC08091E20082FF07C08091E1008B7F07 +:1017E0008093E1000E943E088091DA0080FF1FC0D4 +:1017F0008091D80080FF1BC08091DA008E7F80939B +:10180000DA008091D90080FF0DC080E189BD82E1BE +:1018100089BD09B400FEFDCF81E08093E3020E9400 +:10182000290805C019BC1092E3020E943708809174 +:10183000E10080FF19C08091E20080FF15C0809117 +:10184000E2008E7F8093E2008091E20080618093CD +:10185000E2008091D80080628093D80019BC85E0B6 +:101860008093E3020E943B088091E10084FF30C036 +:101870008091E20084FF2CC080E189BD82E189BDB6 +:1018800009B400FEFDCF8091D8008F7D8093D800F1 +:101890008091E1008F7E8093E1008091E2008F7E55 +:1018A0008093E2008091E20081608093E200809169 +:1018B000DF02882311F084E007C08091E30087FDF8 +:1018C00002C081E001C083E08093E3020E943C08F3 +:1018D0008091E10083FF29C08091E20083FF25C051 +:1018E0008091E100877F8093E10082E08093E302B2 +:1018F0001092DF028091E1008E7F8093E100809161 +:10190000E2008E7F8093E2008091E200806180930C +:10191000E20042E060E080E00E94D30A8091F000A3 +:1019200088608093F0000E943A08FF91EF91BF9188 +:10193000AF919F918F917F916F915F914F913F9167 +:101940002F910F900FBE0F901F9018951F920F921E +:101950000FB60F9211242F933F934F935F936F9382 +:101960007F938F939F93AF93BF93CF93DF93EF9327 +:10197000FF93C091E900CF708091EC00D82FD17017 +:1019800080FDD0E81092E9008091F000877F80937D +:10199000F00078940E94EA0C1092E9008091F00027 +:1019A00088608093F000CD2BCF70C093E900FF9149 +:1019B000EF91DF91CF91BF91AF919F918F917F91E7 +:1019C0006F915F914F913F912F910F900FBE0F90AC +:1019D0001F9018951F93CF93DF93CDB7DEB7AA97CB +:1019E0000FB6F894DEBF0FBECDBFE4EEF2E088E0A4 +:1019F0008E0F9091F10091938E13FBCF0E9493086C +:101A00008091E80083FF1FC18091E4029091E5027C +:101A1000492F50E04A30510508F015C1FA01EA5A41 +:101A2000FF4F0C944222803881F0823809F00BC1BC +:101A30008091E8028F708093E9008091EB0085FB34 +:101A4000882780F91092E90006C08091E002909109 +:101A5000E102911182609091E800977F9093E800F5 +:101A60008093F1001092F100C8C0282F2D7F09F05B +:101A7000EAC0882319F0823061F0E5C08091E60267 +:101A8000813009F0E0C0933009F080E08093E102FA +:101A90002BC08091E602811127C08091E8028F70EF +:101AA00009F4D1C08093E9002091EB0020FF1CC015 +:101AB000933021F48091EB00806214C09091EB0090 +:101AC00090619093EB0021E030E0A90102C0440F47 +:101AD000551F8A95E2F74093EA001092EA00809140 +:101AE000EB0088608093EB001092E9008091E800A1 +:101AF000877F86C08111A7C01091E6021F77809171 +:101B0000E3008078812B8093E3008091E800877F59 +:101B10008093E8000E94080B8091E80080FFFCCFD2 +:101B20008091E30080688093E300111102C082E09D +:101B300001C083E08093E30286C08058823008F0C1 +:101B400082C08091E6029091E7028C3D53E09507B8 +:101B500079F583E08A838AE289834FB7F894DE01BE +:101B6000139620E03EE051E2E32FF0E0509357005F +:101B7000E49120FF03C0E295EF703F5FEF708E2F7E +:101B800090E0EA3010F0C79601C0C0968D939D9307 +:101B90002F5F243149F74FBF8091E800877F809302 +:101BA000E8006AE270E0CE0101960E940F0A14C0BC +:101BB000AE014F5F5F4F6091E8020E946C09BC016B +:101BC000009709F440C09091E800977F9093E80057 +:101BD00089819A810E94720A8091E8008B778093B4 +:101BE000E80031C0803879F58091E800877F8093E4 +:101BF000E8008091DF028093F1008091E8008E7709 +:101C00008093E8000E94080B1EC081111CC09091B7 +:101C1000E6029230C0F48091E800877F8093E8006C +:101C20009093DF020E94080B8091DF02811106C0B1 +:101C30008091E30087FD02C081E001C084E08093D1 +:101C4000E3020E947F088091E80083FF0AC0809130 +:101C5000E800877F8093E8008091EB0080628093AA +:101C6000EB00AA960FB6F894DEBF0FBECDBFDF9192 +:101C7000CF911F910895CF938091E3028823A1F023 +:101C8000C091E900CF709091EC00892F817090FD98 +:101C900080E8C82B1092E9008091E80083FD0E9443 +:101CA000EA0CCF70C093E900CF9108950C94650EB3 +:101CB00087E68093CC001092CD0088E08093C90025 +:101CC00086E08093CA00789408959091C80095FFAB +:101CD000FCCF8093CE0008951F920F920FB60F9203 +:101CE00011242F933F934F938F939F93EF93FF93E1 +:101CF00080916F0190E09C012F5F3F4F40916E01FA +:101D0000421741F03091CE00FC01E059FE4F308384 +:101D100020936F01FF91EF919F918F914F913F9190 +:101D20002F910F900FBE0F901F90189590937502F2 +:101D3000809374020895E0917402F09175023097D7 +:101D400021F00190F081E02D099480E00895E09168 +:101D50007402F0917502309721F00280F381E02D3A +:101D600009940895E0917402F0917502309721F082 +:101D70000480F581E02D099408952091720230913C +:101D800073028217930771F090937302809372022B +:101D9000E0917402F0917502309721F00680F7818E +:101DA000E02D0994089520917002309171028217FC +:101DB000930771F09093710280937002E091740226 +:101DC000F0917502309721F00084F185E02D09949F +:101DD000089508950C94E90E0E94DB190E94EC0509 +:101DE0000E94A91A0C9469205F926F927F928F9241 +:101DF0009F92AF92BF92CF92DF92EF92FF920F939A +:101E00001F93CF93DF9300D000D01F92CDB7DEB7E2 +:101E10000E9431069FE7C92E92E0D92E03E010E020 +:101E2000AA24A394B12C502E802F0E94AC064C0102 +:101E3000F601729062906F01682679266114710430 +:101E4000A1F40150110978F78FEF89838A831B82EF +:101E50000E94E4198160782F9D838C8349815A8187 +:101E60006B818D810E94A40F38C08091CC0281FDCE +:101E70000E94B5062CE030E07501022E02C0EE0C87 +:101E8000FF1C0A94E2F7C70186219721892B09F1EB +:101E900029835A828E209F2091E0892809F490E0BE +:101EA0009B830E94E4198160782F9D838C834981F4 +:101EB0005A816B818D810E94A40F000F111FF801C0 +:101EC000E958FD4F80819181E826F926F182E08270 +:101ED00004C02150310980F6B4CF0E949A1D1091A0 +:101EE00076020E949B0E1817D1F00E949B0E8093E1 +:101EF00076020F900F900F900F900F90DF91CF917F +:101F00001F910F91FF90EF90DF90CF90BF90AF9017 +:101F10009F908F907F906F905F900C94D6050F905C +:101F20000F900F900F900F90DF91CF911F910F9115 +:101F3000FF90EF90DF90CF90BF90AF909F908F90E9 +:101F40007F906F905F900895CF93DF93CDB7DEB70A +:101F50002B970FB6F894DEBF0FBECDBF4F835887C7 +:101F600069877A878B87DE01119686E0FD011192E1 +:101F70008A95E9F785E0FE01379601900D928A95E2 +:101F8000E1F749815A816B817C818D819E810E941C +:101F90001B162B960FB6F894DEBF0FBECDBFDF9198 +:101FA000CF910895CF93882309F4C2C0C82F8238F7 +:101FB00059F40E949B0E81FDBBC089E30E94F51875 +:101FC0000E94781989E30CC0833879F40E949B0E33 +:101FD00080FDAEC083E50E94F5180E94781983E564 +:101FE0000E941219CF910C947819843859F40E94E8 +:101FF0009B0E82FD9DC087E40E94F5180E9478190F +:1020000087E4EECF8CEF8C0F813A48F48C2F0E943E +:10201000D21F81118DC08C2F0E94F518E3CF80E272 +:102020008C0F883048F4C77081E001C0880FCA95D2 +:10203000EAF70E943119D6CF8BE58C0F833078F404 +:10204000C53A29F0C63A31F083E890E005C081E84E +:1020500090E002C082E890E0CF910C94BD0E88E53C +:102060008C0F833108F064C0C83A39F1C93A41F1A4 +:10207000CA3A49F1CB3A51F1CC3A59F1CD3A61F132 +:10208000C03B69F1CE3A71F1CF3A79F1C13B81F1B0 +:10209000C23B89F1C33B91F1C43B99F1C53BA1F12E +:1020A000C63BA9F1C73BB1F1C83BB9F1C93BC1F18E +:1020B000CA3BC9F180E090E038C082EE90E035C0C4 +:1020C00089EE90E032C08AEE90E02FC085EB90E080 +:1020D0002CC086EB90E029C087EB90E026C08CEC0A +:1020E00090E023C08DEC90E020C083E891E01DC01B +:1020F0008AE891E01AC082E991E017C084E991E092 +:1021000014C081E292E011C083E292E00EC084E24A +:1021100092E00BC085E292E008C086E292E005C042 +:1021200087E292E002C08AE292E0CF910C94D30E53 +:10213000CF910895882309F44BC0823859F40E9446 +:102140009B0E81FF45C089E30E94F5180E94781913 +:1021500089E30CC0833871F40E949B0E80FF38C065 +:1021600083E50E94F5180E94781983E50E941219F0 +:102170000C947819843859F40E949B0E82FF28C071 +:1021800087E40E94F5180E94781987E4EFCF9CEF4E +:10219000980F913A58F390E2980F983050F4877066 +:1021A00091E001C0990F8A95EAF7892F0E943719AB +:1021B000DFCF9BE5980F933020F480E090E00C9403 +:1021C000BD0E885A833120F480E090E00C94D30E49 +:1021D0000895882321F00E9431190C9478190895EC +:1021E000882321F00E9437190C94781908957F9262 +:1021F0008F929F92AF92BF92CF92DF92EF92FF9217 +:102200000F931F93CF93DF931F92CDB7DEB77C015F +:10221000C62E772EFC01058102950F7012811111D7 +:102220000E944E190E94EE18882379F0112369F05C +:1022300080E28C0D883048F082E00E94D7180E941E +:10224000EE1891E0D82ED92601C0D12CE72DE295C9 +:10225000EF70F0E0E05AFF4F0C944222872D807F10 +:10226000072D0F70882311F00295007F112389F04C +:10227000002309F499C180E28C0D883020F4802F6E +:102280000E94311903C0802F0E9441190E947819C1 +:102290008BC18C2D0E949A10002309F4C3C180E2E7 +:1022A0008C0D883020F4802F0E94371903C0802FB6 +:1022B0000E9447190E947819B5C1872D807F972DFC +:1022C0009F70803211F4892F03C0892F8295807FFF +:1022D000CC2021F0F1E0CF16A1F01DC0112339F080 +:1022E000002319F1013009F50E9461199BC10023F7 +:1022F00019F0013009F496C189830E94641989811B +:1023000010C1112321F0063008F08CC10EC0053039 +:1023100008F088C106C1112359F0002331F0F701FC +:10232000958190FF41C19F7095830E94E9107AC109 +:10233000002309F4F6C03EC1872D869586958370EB +:1023400090E0009719F0019761F06CC1112321F022 +:102350008C2D972D937002C080E090E00E94BD0EFE +:1023600061C1112321F08C2D972D937002C080E064 +:1023700090E00E94D30E56C18C2D112319F00E94BB +:10238000A21C02C00E940A1D0E948F1D4BC1872DF6 +:10239000837009F052C0111145C18C2D829586952C +:1023A0008770880F880F9C2D9F70892E912CA12CEF +:1023B000B12C082E04C0880C991CAA1CBB1C0A94C2 +:1023C000D2F7C4FE14C00FE010E020E030E0B90105 +:1023D000A80104C0440F551F661F771F8A95D2F7C6 +:1023E000CB01BA01609570958095909503C060E02F +:1023F00070E0CB01272D26952695237030E0223002 +:10240000310569F02330310589F0682979298A2955 +:102410009B292130310571F00E94631703C168299F +:1024200079298A299B290E947F17FCC00E94631783 +:10243000C501B4010E944717F5C0112319F0872D7B +:10244000817001C08695882309F4ECC08C2D82959B +:1024500086958770880F880F9C2D9F70892E912CF0 +:10246000A12CB12C082E04C0880C991CAA1CBB1CE2 +:102470000A94D2F7C4FE14C00FE010E020E030E070 +:10248000B901A80104C0440F551F661F771F8A9524 +:10249000D2F7CB01BA01609570958095909503C0F5 +:1024A00060E070E0CB01272D269526952370422F02 +:1024B00050E04230510569F04330510589F06829F8 +:1024C00079298A299B294130510571F00E943D18D4 +:1024D000A9C0682979298A299B290E945918A2C074 +:1024E0000E943D18C501B4010E9421189BC08C2D8B +:1024F00090E0FC01E05EF109E531F10508F050C023 +:10250000E059FF4F0C9442220C2D0F70872D8F71D4 +:10251000112321F00E94BA17802F07CF0E94DB17EA +:10252000802F0E94F0107EC0112341F0053008F08A +:1025300079C0872D8F710E94001874C0063008F092 +:1025400071C0F7CF112339F0872D8F710E94BA1710 +:1025500069C01123C9F3872D8F710E94DB1762C0F8 +:10256000112329F0872D8F710E94A5175BC00E944F +:102570009B1758C0112351F0172D1F71812F0E94F6 +:10258000BA1763E0812F0E94CE184CC081E00E94F0 +:10259000D718023008F446C082E00E94D71842C023 +:1025A000112331F0002381F28C2D0E94D20F3AC00A +:1025B000002389F28C2D0E949A1034C0472D4F7051 +:1025C0006C2DC7010E9442050E94BF162BC011113D +:1025D00029C0472D4F7050E042305105B9F04CF4FE +:1025E0004115510581F041305105E1F40E949120DF +:1025F00019C04330510569F04430510599F48C2DD0 +:102600000E94E3200FC00E947A200CC00E94AD20DF +:1026100009C00E94C02006C0472D4F706C2DC70115 +:102620000E944505DD20F9F00E94CA1880FD1BC0FC +:10263000F70112820E94C4180E94BA17C7010E94B3 +:1026400042130E94C4180F90DF91CF911F910F91F8 +:10265000FF90EF90DF90CF90BF90AF909F908F90C2 +:102660007F900C94DB170F90DF91CF911F910F910A +:10267000FF90EF90DF90CF90BF90AF909F908F90A2 +:102680007F9008950F931F93CF93DF93EC01888180 +:1026900099812B813C81232BB9F09F3F11F48F3F0F +:1026A00099F0CE010E941202882371F0688179812D +:1026B0008A810E94C0188C010E9475180E943C17E4 +:1026C000B801CE010E94F710DF91CF911F910F91B9 +:1026D00008950E944E190E945E190E9423190E94BB +:1026E00078190E94401E0E948F1D80E090E00E9499 +:1026F000BD0E80E090E00C94D30E0E943E190C9425 +:1027000069130E94B518292F22952F7030E02C30C4 +:1027100031054CF42A3031056CF422503109223055 +:102720003105A8F407C02C30310569F02F30310590 +:1027300051F00DC0803F69F018F4803E40F409C0AC +:10274000843F29F406C093FB882780F9089580E030 +:10275000089581E00895CF93DF9300D000D01F92B9 +:10276000CDB7DEB70F900F900F900F900F90DF91C5 +:10277000CF910895CF93DF9300D000D000D0CDB794 +:10278000DEB726960FB6F894DEBF0FBECDBFDF9141 +:10279000CF9108951F93CF93DF93C0917F0216E0EE +:1027A00080918002C81799F0D0E01C9FF0011D9F16 +:1027B000F00D1124EF57FD4F4081518162817381EB +:1027C000848195810E94BA132196C770E9CFDF9169 +:1027D000CF911F9108954091B1025091B202609142 +:1027E000B3027091B4028091B5029091B6020C943C +:1027F000BA138091B60282958F7009F054C080910F +:10280000B302882309F44FC080917F02A091800217 +:102810006091B1027091B2024091B4025091B50240 +:10282000B6E08A1709F43FC090E041155105C1F1A7 +:102830007F3F11F46F3FA1F1B89FF001B99FF00DF8 +:102840001124EF57FD4F218172132AC0208162139A +:1028500027C02281211124C0238134812417350708 +:1028600010F421503109241B350B283C3105C0F4EC +:102870002091B6022F7020612093B60226E0289F97 +:10288000F001299FF00D1124EA57FD4F80818F70D0 +:102890008061808381EB92E00E9442130C94CA1302 +:1028A00001968770BECF0895CF92DF92EF92FF928C +:1028B0000F931F93CF93DF93CDB7DEB762970FB619 +:1028C000F894DEBF0FBECDBF8C0185E0F801DE01BC +:1028D0001D9601900D928A95E1F7D8014C911196C1 +:1028E0005C91119712966C9112971396CD90DC9093 +:1028F00014973091B1027091B2028091B40290911C +:10290000B502009709F46BC17F3F19F43F3F09F40A +:1029100066C1E090B302EE2009F4C0C02091B60277 +:10292000C816D90628F0F601E81BF90BCF0104C040 +:10293000809590958C0D9D1DFF24F394883C910506 +:1029400078F0F12C207F09F0C6C07C2DD98AC88A86 +:1029500089890E94AB1381EB92E00E944213B1C0BF +:10296000822F807F09F046C0751314C0341312C043 +:10297000611110C02F7020612093B6020E94EB13EA +:1029800081EB92E00E9442138091B602D801159625 +:102990008C932EC0CD2819F15F3F11F44F3FF9F011 +:1029A000F62E61111CC080917F022091800236E0DA +:1029B000821709F45AC090E0389FF001399FF00D5A +:1029C0001124EF57FD4F7181571306C070814713D3 +:1029D00003C07281711103C001968770E9CFF62E92 +:1029E000662309F418C18091B60281608093B60213 +:1029F000F12C11C1751308C0341306C0611104C055 +:102A00008091B602D801C3C04D875E878D859E85B3 +:102A10006A8B0E9481136A898823E1F16623D1F1D0 +:102A20002091B602822F82958F7090E0029774F009 +:102A30008091B1029091B20298878F831986DB86CC +:102A4000CA862C87CE0107960E94421386E0F801C1 +:102A5000A1EBB2E001900D928A95E1F70E94F91383 +:102A60000E94EB13FF24F394D6C04D875E878D85BB +:102A70009E850E94B518292F22952F7030E02230B4 +:102A800031050CF0BCC09F7009F0B6C0805E883084 +:102A900008F4C1C0C8010E944213E4CFC816D90689 +:102AA00008F453C0F601E81BF90BCF01883C9105EF +:102AB00008F450C0F12C7C2DD98AC88A89890E94DB +:102AC000AB13E1EBF2E086E0DF011D928A95E9F7B6 +:102AD0000E94EB13A0C0751314C0341312C061110F +:102AE00010C08091B602F8018583C8010E9442138C +:102AF00086E0E1EBF2E0DF011D928A95E9F7FE2C1A +:102B00008AC04D875E878D859E856A8B0E94811362 +:102B10006A89882309F4BECF662309F4BBCF2091CC +:102B2000B602822F82958F7090E002970CF48ECFC0 +:102B30008091B1029091B2029A8389831B82DD82D7 +:102B4000CC822E83CE0101967FCF809590958C0DFF +:102B50009D1DACCFF62E662309F49CCF75132EC0B5 +:102B600034132CC02091B60220FD1FC0822F829505 +:102B70008F70D9F0D80115962C9315978F3049F0A6 +:102B80008F5F982F9295907F822F8F70892B15964B +:102B90008C93C8010E94421386E0F801A1EBB2E0D9 +:102BA00001900D928A95E1F793CF86E0F801A1EBB1 +:102BB000B2E001900D928A95E1F72DC04D875E87B6 +:102BC0008D859E850E948113811140CF8091B60230 +:102BD00081608093B602C8010E9442131CC0662324 +:102BE00009F458CF4D875E878D859E850E9481139D +:102BF000882309F44FCF2ACF811148CF0CC024304D +:102C000031050CF047CF9F7009F440CFF801958152 +:102C1000907F09F03BCF8F2D62960FB6F894DEBF00 +:102C20000FBECDBFDF91CF911F910F91FF90EF901D +:102C3000DF90CF9008951F93CF93DF93CDB7DEB78A +:102C40002C970FB6F894DEBF0FBECDBF4F835887C9 +:102C500069877A878B879C87CE0107960E945414D8 +:102C6000882369F08F8198852A853B85232BF1F194 +:102C70009F3F09F063C08F3F09F060C037C086E016 +:102C8000FE013796DE01119601900D928A95E1F7CB +:102C90006F817885EA85FB85309741F17F3F11F49C +:102CA0006F3F21F12091800230E0C90101968770C9 +:102CB000992740917F0250E08417950709F447C097 +:102CC00069837A83FD83EC8396E0929FD001939F82 +:102CD000B00D1124AF57BD4FFE01319601900D92FA +:102CE0009A95E1F7809380020E94CA1316E08091C2 +:102CF0007F02909180028917C1F1189FC0011124B1 +:102D00008F579D4F0E945414882379F1E0917F02E0 +:102D10001E9FF0011124EF57FD4F408151816281C8 +:102D20007381848195810E94BA1380917F0290E023 +:102D300001968770992780937F02D9CF4F8158855C +:102D400069857A858B859C850E94BA13CFCF0E94B6 +:102D50007D131092800210927F02E1EBF2E086E098 +:102D6000DF011D928A95E9F7C1CF2C960FB6F89432 +:102D7000DEBF0FBECDBFDF91CF911F910895EF92BF +:102D8000FF920F931F93CF93DF938C01009709F469 +:102D90006CC0F12CEE24E394E8012196F8018491B3 +:102DA000843740F4843008F051C0813081F08230A3 +:102DB00019F15BC0853709F444C0A8F19CE7980F6E +:102DC000903708F052C08F770E949A1041C00E5F72 +:102DD0001F4FFE01C49180E28C0F883048F4C77009 +:102DE0008E2D01C0880FCA95EAF70E94511914C0B0 +:102DF0008C2F0E94D20F2DC00E5F1F4FFE01C49179 +:102E000080E28C0F883058F4C7708E2D01C0880F77 +:102E1000CA95EAF70E9457190E9478191AC08C2F98 +:102E20000E949A1016C00E5F1F4FFE01C491CC2362 +:102E300081F08FE99FE00197F1F700C00000C150D9 +:102E4000F6CF0E5F1F4FFE01F49003C00E94D20F19 +:102E50008E018F2D882309F49FCFEFE9FFE0319792 +:102E6000F1F700C000008150F5CFDF91CF911F91A5 +:102E70000F91FF90EF90089508956093BB027093B7 +:102E8000BC028093BD029093BE020C9469130F9311 +:102E90001F930091BB021091BC022091BD023091A2 +:102EA000BE02DC01CB01802B912BA22BB32B809394 +:102EB000BB029093BC02A093BD02B093BE021F91CF +:102EC0000F910C9469130F931F930091BB02109103 +:102ED000BC022091BD023091BE02DC01CB018023F7 +:102EE0009123A223B3238093BB029093BC02A093AF +:102EF000BD02B093BE021F910F910C9469130F9302 +:102F00001F930091BB021091BC022091BD02309131 +:102F1000BE02DC01CB0180279127A227B327809333 +:102F2000BB029093BC02A093BD02B093BE021F915E +:102F30000F910C9469131092B7021092B80210927C +:102F4000B9021092BA020C94691341E050E060E0BB +:102F500070E004C0440F551F661F771F8A95D2F793 +:102F60004093B7025093B8026093B9027093BA02CB +:102F70000C94691341E050E060E070E004C0440F3D +:102F8000551F661F771F8A95D2F78091B7029091DF +:102F9000B802A091B902B091BA02482B592B6A2B02 +:102FA0007B2B4093B7025093B8026093B9027093A1 +:102FB000BA020C94691341E050E060E070E004C094 +:102FC000440F551F661F771F8A95D2F7409550957D +:102FD000609570958091B7029091B802A091B90266 +:102FE000B091BA02482359236A237B234093B70246 +:102FF0005093B8026093B9027093BA020C946913AB +:1030000041E050E060E070E004C0440F551F661FCF +:10301000771F8A95D2F78091B7029091B802A0915C +:10302000B902B091BA02482759276A277B274093F3 +:10303000B7025093B8026093B9027093BA020C942D +:1030400069130F931F930091B7021091B80220915A +:10305000B9023091BA02DC01CB01802B912BA22B5B +:10306000B32B8093B7029093B802A093B902B093A8 +:10307000BA021F910F910C9469130F931F93009143 +:10308000B7021091B8022091B9023091BA02DC0166 +:10309000CB0180239123A223B3238093B702909383 +:1030A000B802A093B902B093BA021F910F910C9489 +:1030B00069130F931F930091B7021091B8022091EA +:1030C000B9023091BA02DC01CB0180279127A227F7 +:1030D000B3278093B7029093B802A093B902B0933C +:1030E000BA021F910F910C9469130895CF92DF9249 +:1030F000EF92FF920F931F93CF93DF938C01C090B9 +:10310000BB02D090BC02E090BD02F090BE02809164 +:10311000B7029091B802A091B902B091BA02C82A40 +:10312000D92AEA2AFB2ACFE1D0E0D701C6010C2E2A +:1031300004C0B695A795979587950A94D2F780FF16 +:1031400006C0B8018C2F0E94A103019721F421979A +:1031500060F780E001C08C2FDF91CF911F910F911C +:10316000FF90EF90DF90CF900895CF93DF93EC0125 +:103170000E947618BE010E94A103DF91CF910895AD +:10318000CB010E94B51808958091BF028595859561 +:10319000859508958091BF028770089598E0899F72 +:1031A00090011124262B2093BF020C94BA17209172 +:1031B000BF02809582238093BF02982F977069F495 +:1031C00030E0482F552747FD50952417350729F043 +:1031D0008595859585950C94DB1708959091BF0290 +:1031E000977081E009F480E0089520910C013091FE +:1031F0000D01F90132969FEF40E05191581789F087 +:103200009F3F19F4511101C0942F4F5F4630A9F729 +:103210009F3F39F0F901E90FF11D97FDFA9582837F +:103220000895089520910C0130910D01F901329615 +:10323000285F3F4F9081981301C010823196E217AA +:10324000F307C1F7089581E090E0E0910C01F0915F +:103250000D01E80FF91F1082019688309105A9F73A +:1032600008959091CB02892B8093CB02089580958D +:103270009091CB0289238093CB0208951092CB02C8 +:1032800008959091CA02892B8093CA02089580956F +:103290009091CA0289238093CA0208951092CA02AB +:1032A00008959091C902892B8093C9020895809551 +:1032B0009091C90289238093C90208951092C9028E +:1032C00008958093C00208951092C00208958091DD +:1032D0000C0190910D01FC0131969C01285F3F4F3C +:1032E00080E0919191118F5FE217F307D1F7089574 +:1032F000E0910C01F0910D018091CB028083E0916F +:103300000C01F0910D0190818091CA02892B80837C +:10331000E0910C01F0910D0190818091C902892BFF +:1033200080838091C002882361F0E0910C01F091CC +:103330000D019081892B80830E9467198111109261 +:10334000C00280910C0190910D010C94A70E0E9477 +:103350007D1380E00E94D8010E9469200E949B0E8C +:103360000C94D6051F920F920FB60F9211248F93D3 +:103370009F93AF93BF938091CD02811113C0809131 +:10338000CE029091CF02A091D002B091D10241968D +:10339000A11DB11D8093CE029093CF02A093D002C5 +:1033A000B093D102BF91AF919F918F910F900FBEBB +:1033B0000F901F90189582E084BD93E095BD9AEF21 +:1033C00097BD80936E0008952FB7F8948091CE0238 +:1033D0009091CF02A091D002B091D1022FBF089559 +:1033E000CF92DF92EF92FF920F931F932FB7F89433 +:1033F0004091CE025091CF026091D0027091D102E3 +:103400002FBF6A017B01EE24FF248C0120E030E015 +:10341000C016D106E206F30610F4415051099A0194 +:10342000281B390BC9011F910F91FF90EF90DF907E +:10343000CF9008951F920F920FB60F9211248F9381 +:103440009F93AF93BF938091CE029091CF02A091B2 +:10345000D002B091D1020196A11DB11D8093CE0280 +:103460009093CF02A093D002B093D102BF91AF91BD +:103470009F918F910F900FBE0F901F9018950E94F3 +:10348000590BF8942FEF87EA91E621508040904045 +:10349000E1F700C0000087E090EBDC018093ED02D3 +:1034A0009093EE02A093EF02B093F0029CE088E1CB +:1034B0000FB6F894A895809360000FBE90936000BB +:1034C000FFCFAF92BF92CF92DF92EF92FF920F9316 +:1034D0001F93CF93C3E0CC24C394D12CE82EF12CBE +:1034E0008C2F0E94AC065C010CE010E09601002ECF +:1034F00002C0220F331F0A94E2F72A213B21232B1B +:1035000051F0602F7C2F80E00E944605E816F906F6 +:1035100011F481E006C00150110940F7C15000F7D5 +:1035200080E0CF911F910F91FF90EF90DF90CF90AF +:10353000BF90AF900895CF93C82F8CE20E94611A7C +:10354000882321F08C2FCF910C94611A80E0CF91C9 +:103550000895CF930E94F11B811102C00E94D21BDB +:10356000C5E6C15049F00E9431068FE39CE90197FE +:10357000F1F700C00000F5CF89E20E949B1A81118B +:103580000FC18AE20E949B1A81110E94D21B85E022 +:103590000E949B1A81110E943F1A0E94FC1B80937B +:1035A000CC0287E00E949B1A8823A9F18BE10E943C +:1035B0009B1A882351F08091CC0281FB222720F9AD +:1035C00091E0922790FB81F90EC08EE00E949B1A39 +:1035D000882361F08091CC0282FB222720F991E0C0 +:1035E000922790FB82F98093CC0215C080E10E9463 +:1035F0009B1A9091CC02882341F093FB222720F95B +:1036000081E0822780FB93F904C0892F809580FB9D +:1036100090F99093CC028091CC020E94001C0E94F1 +:103620000E1C90E09093DE028093DD0280EE0E94FB +:103630009B1A882341F08091DD02982F909590FB92 +:1036400080F98093DD0289E30E949B1A882359F058 +:103650008091DD0281FB222720F991E0922790FBE7 +:1036600081F98093DD0282EE0E949B1A882359F033 +:103670008091DD0282FB222720F991E0922790FBC6 +:1036800082F98093DD0286EE0E949B1A882359F00E +:103690008091DD0283FB222720F991E0922790FBA5 +:1036A00083F98093DD0283EE0E949B1A882359F0F0 +:1036B0008091DD0284FB222720F991E0922790FB84 +:1036C00084F98093DD0285E30E949B1A882359F0D8 +:1036D0008091DD0285FB222720F991E0922790FB63 +:1036E00085F98093DD0281E30E949B1A882359F0BB +:1036F0008091DD0286FB222720F991E0922790FB42 +:1037000086F98093DD0281E10E949B1A882359F09B +:103710008091DD0287FB222720F991E0922790FB20 +:1037200087F98093DD028091DD020E94121C87E2FE +:103730000E949B1AC82F8EE10E949B1A8111C260C1 +:103740008FE10E949B1A8111C46080E20E949B1A43 +:103750008111C86081E20E949B1A8111C06182E2DE +:103760000E949B1A8111C06283E20E949B1A811100 +:10377000C06484E20E949B1A882311F0C06802C0D2 +:10378000CC2329F08C2F0E94091C6C2F03C00E94AF +:10379000051C682F70E080E090E0CF910C943D17FD +:1037A000CF9108956DEE7EEF80E090E00E947C2244 +:1037B00060E082E090E00E946A2260E083E090E0B6 +:1037C0000E946A2260E084E090E00E946A2260E049 +:1037D00085E090E00E946A2260E086E090E00C9430 +:1037E0006A2280E090E00E94642221E08D3E9E4F9C +:1037F00009F020E0822F089582E090E00C945C2292 +:10380000682F82E090E00C946A2283E090E00C94B0 +:103810005C22682F83E090E00C946A2284E090E0C0 +:103820000C945C22682F84E090E00C946A2286E07D +:1038300090E00C945C22682F86E090E00C946A2261 +:103840008091D40280FF0BC06091110185E0689FD8 +:10385000B001112475956795759567952BC081FF0B +:1038600009C06091110185E0689FB0011124759530 +:10387000679520C082FF07C06091110185E0689FB5 +:10388000B001112417C09091D5029923D1F0609115 +:103890001001961788F72091110185E0289F90016B +:1038A0001124929FA001939F500D112470E0CA0132 +:1038B0000E942E226038710540F46115710539F0BF +:1038C00002C065E070E0862F08958FE7089581E0DB +:1038D00008958091D40280FF08C060910F0170E0CC +:1038E000759567957595679521C081FF06C06091B4 +:1038F0000F0170E07595679519C082FF04C0609153 +:103900000F0170E010C09091D5029923C1F0609131 +:103910000E019617A0F780910F01899FC001112415 +:1039200070E00E942E226038710528F4611571053F +:1039300021F0862F08958FE7089581E0089561E0D2 +:1039400070E0F4CF803F21F40E94201C819504C0D8 +:10395000813F29F40E94201C8093D8020895823F61 +:1039600021F40E94201C819504C0833F29F40E9409 +:10397000201C8093D7020895893F19F40E94691C86 +:1039800005C08A3F31F40E94691C81958093D90259 +:1039900008958B3F21F40E94691C819504C08C3FDF +:1039A00029F40E94691C8093DA020895843F21F46F +:1039B0008091D602816017C0853F21F48091D602A4 +:1039C000826011C0863F21F48091D60284600BC0D2 +:1039D000873F21F48091D602886005C0883F31F48A +:1039E0008091D60280618093D60208958D3F21F4A4 +:1039F0008091D40281600BC08E3F21F48091D4026B +:103A0000826005C08F3F29F48091D4028460809346 +:103A1000D4020895803F39F48091D80287FF6CC0AA +:103A20001092D80269C0813F29F48091D8021816FB +:103A3000BCF362C09091D702823F29F497FF5CC02B +:103A40001092D70259C0833F19F41916CCF354C011 +:103A5000893F41F48091D90218160CF04DC01092A4 +:103A6000D9024AC08A3F29F48091D90287FF44C015 +:103A7000F6CF8B3F39F48091DA0287FF3DC0109278 +:103A8000DA023AC08C3F29F48091DA021816BCF3AE +:103A900033C0843F21F48091D6028E7F17C0853FCA +:103AA00021F48091D6028D7F11C0863F21F4809150 +:103AB000D6028B7F0BC0873F21F48091D602877F8F +:103AC00005C0883F31F48091D6028F7E8093D60264 +:103AD00013C08D3F21F48091D4028E7F0BC08E3FA6 +:103AE00021F48091D4028D7F05C08F3F29F480910D +:103AF000D4028B7F8093D4028091D70281110EC0B3 +:103B00008091D80281110AC08091D902811106C02A +:103B10008091DA02811102C01092D502089586EDDB +:103B200092E00E94B20E0E94E4199093D302809317 +:103B3000D20208951F93CF93DF938091D202909188 +:103B4000D3020E94F019AC019091D502992321F083 +:103B50002091120130E006C0209113018AE0289FD5 +:103B6000900111244217530708F486C08091D702B0 +:103B7000C091D802D091D9021091DA02811107C008 +:103B8000C11176C0D11174C0111172C075C09F3FB0 +:103B900019F09F5F9093D502181624F40E94201C00 +:103BA0008093D7028091D70287FF05C00E94201C16 +:103BB00081958093D7021C1624F40E94201C8093C8 +:103BC000D8028091D80287FF05C00E94201C8195F1 +:103BD0008093D8026091D702662339F1C091D80250 +:103BE000CC2319F1772767FD7095872F972F0E94B7 +:103BF000332123E333E343E35FE30E9497210E94F1 +:103C000000216093D7026C2F772767FD7095872F6F +:103C1000972F0E94332123E333E343E35FE30E94C2 +:103C200097210E9400216093D8021D1624F40E945F +:103C3000691C8093D9028091D90287FF05C00E9438 +:103C4000691C81958093D902111624F40E94691C85 +:103C50008093DA028091DA0287FF05C00E94691C16 +:103C600081958093DA02DF91CF911F910C948F1D83 +:103C70009F3F09F08ECF96CFDF91CF911F9108958E +:103C8000E6EDF2E085E0DF011D928A95E9F71092FA +:103C9000D5021092D4020895833081F128F4813046 +:103CA00059F08230D1F00895853009F449C0B8F157 +:103CB000863009F456C0089580911301262F30E014 +:103CC000280F311D2F3F310524F4680F6093130135 +:103CD00008958FEF80931301089580911201262F8C +:103CE00030E0280F311D2F3F310524F4680F609319 +:103CF000120108958FEF80931201089580911101B0 +:103D0000262F30E0280F311D2F3F310524F4680F96 +:103D10006093110108958FEF8093110108958091B0 +:103D20001001262F30E0280F311D2F3F310524F4DC +:103D3000680F6093100108958FEF8093100108952C +:103D400080910F01262F30E0280F311D2F3F3105C4 +:103D500024F4680F60930F0108958FEF80930F0193 +:103D6000089580910E01262F30E0280F311D2F3F3E +:103D7000310524F4680F60930E0108958FEF80934E +:103D80000E010895833011F128F4813049F082301A +:103D900091F00895853081F120F18630C1F10895C8 +:103DA00080911301681720F4861B809313010895F6 +:103DB00010921301089580911201681720F4861B58 +:103DC00080931201089510921201089580911101BB +:103DD000681720F4861B8093110108951092110139 +:103DE000089580911001681720F4861B80931001BC +:103DF000089510921001089580910F01681720F422 +:103E0000861B80930F01089510920F0108958091F1 +:103E10000E01681720F4861B80930E0108951092FE +:103E20000E0108950F931F93873208F040C08E3122 +:103E300008F08AC08E3009F474C0C0F4873009F4E9 +:103E40005EC068F4863009F09AC08091CC02817F10 +:103E50008E7F8093CC0281E08093DC0291C0883019 +:103E600009F486C08B3009F483C089C0863109F417 +:103E70007FC068F4803109F082C08091CC0283FB5E +:103E8000222720F991E0922790FB83F953C08931D2 +:103E900009F46EC08B3109F072C08091CC0281FBB5 +:103EA000222720F991E0922790FB81F943C08833C3 +:103EB00009F45EC050F4893209F45CC0853309F41A +:103EC00059C0873209F456C05AC0833409F452C02D +:103ED00028F48A3308F453C0895337C0883409F072 +:103EE0004EC00E947D130FEF13ED20E301501040F0 +:103EF0002040E1F700C000000E943F1A39C09091B5 +:103F0000CC02892F8095817080FB90F929F0966012 +:103F100098609093CC0234C0997F977F9093CC02A5 +:103F200027C08091CC0282FB222720F991E09227C2 +:103F300090FB82F98093CC029923D1F08091CC023E +:103F400081608093CC0214C08D5141E050E060E06C +:103F500070E08A019B0104C0000F111F221F331F54 +:103F60008A95D2F7C901B8010E943D170E947D13BE +:103F700081E006C061E070E080E090E0F5CF80E095 +:103F80001F910F91089580E0089580E008958E516B +:103F90008A3030F4E82FF0E0E75CFE4F808108952E +:103FA00080E00895CF93C82F8091DC02813069F0C2 +:103FB00018F08230C9F183C0E0910C01F0910D013D +:103FC0008081823209F07DC007C0E0910C01F09140 +:103FD0000D018081823261F48C2F0E94C31F8111F8 +:103FE00004C08C2F0E94121F1DC081E090E01AC0F7 +:103FF0008C2F0E94C51F811114C0C43179F048F480 +:10400000CB3079F0C03109F060C082E08093DC02EF +:1040100008C0C93219F0C83321F057C01092DC0231 +:1040200054C081E0817053C0C93289F118F5C431A0 +:1040300071F1B0F4C73009F046C08EE180931301EE +:1040400082E3809312018AE08093110184E18093DE +:10405000100188E080930F0188E280930E0133C045 +:1040600082EE8C0F863078F58C2F0E94C71F8093CC +:10407000DB0229C0CE34E9F020F4CB3421F56AE02C +:1040800013C0C13579F0C235F1F461E00DC0809103 +:10409000DB02882319F01092DB0215C081E08093C7 +:1040A000DC0215C061E006C08091DB020E944C1E5C +:1040B0000AC06AE08091DB020E94C21E04C0109216 +:1040C000DC0280E004C081E002C080E0ABCFCF9191 +:1040D00008950E94F11B811102C00E94D21B0E9410 +:1040E000171C8093EC0280FF02C0869501C080E01F +:1040F0000C94D8018091EC02982F9695292F30E0EE +:10410000233031054CF49F5F990F8170892B8160BA +:104110008093EC020E941B1C8091EC0286950C940B +:10412000D8018091EC02982F969591F09158990FB3 +:104130008170892B8093EC028E7F91E009F490E0EE +:104140008091EC0290FB80F98093EC020E941B1C92 +:104150008091EC0286950C94D8018091EC02982F06 +:10416000909590FB80F98093EC020E941B1C80913B +:10417000EC0280FF02C0869501C080E00C94D8015B +:104180009091EC02892F86958F5F8F7791708430A4 +:1041900028F4880F892B8093EC0202C09093EC02E4 +:1041A0008091EC028E7F91E009F490E08091EC0226 +:1041B00090FB80F98093EC020E941B1C8091EC0222 +:1041C00086950C94D8012091EC02922F9695892720 +:1041D000982F990F822F8170892B8093EC028E7F0C +:1041E00091E009F490E08091EC0290FB80F98093DB +:1041F000EC020E941B1C8091EC0286950C94D80165 +:1042000004D06894B1118DC0089570D088F09F5784 +:1042100090F0B92F9927B751A0F0D1F0660F771F12 +:10422000881F991F1AF0BA95C9F712C0B13081F0F2 +:1042300077D0B1E0089574C0672F782F8827B85FD2 +:1042400039F0B93FCCF3869577956795B395D9F753 +:104250003EF490958095709561957F4F8F4F9F4F5D +:104260000895E89409C097FB3EF490958095709569 +:1042700061957F4F8F4F9F4F9923A9F0F92F96E9B2 +:10428000BB279395F695879577956795B795F11127 +:10429000F8CFFAF4BB0F11F460FF1BC06F5F7F4FC4 +:1042A0008F4F9F4F16C0882311F096E911C07723D6 +:1042B00021F09EE8872F762F05C0662371F096E8DF +:1042C000862F70E060E02AF09A95660F771F881FAE +:1042D000DAF7880F9695879597F9089557FD9058C6 +:1042E000440F551F59F05F3F71F04795880F97FBBA +:1042F000991F61F09F3F79F0879508951216130674 +:104300001406551FF2CF4695F1DF08C016161706A2 +:104310001806991FF1CF86957105610508940895D7 +:10432000E894BB2766277727CB0197F908950BD030 +:1043300078C069D028F06ED018F0952309F05AC0E3 +:104340005FC01124EECFCADFA0F3959FD1F3950F84 +:1043500050E0551F629FF001729FBB27F00DB11D09 +:10436000639FAA27F00DB11DAA1F649F6627B00D99 +:10437000A11D661F829F2227B00DA11D621F739F82 +:10438000B00DA11D621F839FA00D611D221F749F90 +:104390003327A00D611D231F849F600D211D822FD7 +:1043A000762F6A2F11249F5750408AF0E1F088231E +:1043B0004AF0EE0FFF1FBB1F661F771F881F91502B +:1043C0005040A9F79E3F510570F014C0AACF5F3F3F +:1043D000ECF3983EDCF3869577956795B795F7955E +:1043E000E7959F5FC1F7FE2B880F911D96958795E6 +:1043F00097F9089597F99F6780E870E060E0089565 +:104400009FEF80EC089500240A94161617061806EC +:104410000906089500240A941216130614060506C8 +:104420000895092E0394000C11F4882352F0BB0F59 +:1044300040F4BF2B11F460FF04C06F5F7F4F8F4FBC +:104440009F4F0895991B79E004C0991F961708F0B3 +:10445000961B881F7A95C9F78095089597FB072EBC +:1044600016F4009407D077FD09D00E94482207FC7B +:1044700005D03EF4909581959F4F08957095619574 +:104480007F4F0895EE0FFF1F0590F491E02D0994E2 +:10449000AA1BBB1B51E107C0AA1FBB1FA617B7076A +:1044A00010F0A61BB70B881F991F5A95A9F7809586 +:1044B0009095BC01CD010895F999FECF92BD81BDC3 +:1044C000F89A992780B50895A8E1B0E042E050E05D +:1044D0000C948422262FF999FECF92BD81BDF89AC3 +:1044E000019700B4021639F01FBA20BD0FB6F89438 +:1044F000FA9AF99A0FBE08950196272F0E946B220F +:104500000C946A22DC01CB01FC01F999FECF06C0B4 +:10451000F2BDE1BDF89A319600B40D924150504081 +:08452000B8F70895F894FFCFED +:10452800FFB606E0079C076807B90601C10228081C +:10453800140A321E4F795363667649695909192955 +:10454800030F1F5F43404D3620BF0272023C021C1E +:1045580002A801C101DA01F30101020304050607FB +:04456800080900003E +:00000001FF diff --git a/keyboards/jd45/keymaps/default/keymap.c b/keyboards/jd45/keymaps/default/keymap.c new file mode 100644 index 000000000..05dd46e79 --- /dev/null +++ b/keyboards/jd45/keymaps/default/keymap.c @@ -0,0 +1,31 @@ +#include "jd45.h" +#include "backlight.h" + +/* this keymap is to provide a basic keyboard layout for testing the matrix + * for more practical and complicated keymap refer to other keymaps in the same folder + */ +/* JD45 keymap definition macro + */ +#define KEYMAP( \ + K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, K13, \ + K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, \ + K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, K37, \ + K38, K39, K40, K41, K42, K43, K44, K45, K46, K47 \ +) { \ + { KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K10, KC_##K11, KC_##K12, KC_##K13 }, \ + { KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_NO }, \ + { KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_NO }, \ + { KC_##K38, KC_##K39, KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_##K43, KC_NO, KC_##K44, KC_##K45, KC_##K46, KC_##K47, KC_NO } \ +} + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = KEYMAP( + ESC, Q, W, E, R, T, Y, U, I, O, P, QUOT, BSPC, + TAB, A, S, D, F, G, H, J, K, L, SCLN, ENT, + LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, RSFT, + PAUSE, LCTL, LALT, DEL, SPC, DEL, LEFT, UP, DOWN, RIGHT ), +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; diff --git a/keyboards/jd45/keymaps/justin/compiled.hex b/keyboards/jd45/keymaps/justin/compiled.hex new file mode 100644 index 000000000..3f0ab6524 --- /dev/null +++ b/keyboards/jd45/keymaps/justin/compiled.hex @@ -0,0 +1,1153 @@ +:100000000C94AA020C94EE020C94EE020C94EE02F4 +:100010000C94EE020C94EE020C94EE020C94EE02A0 +:100020000C94EE020C94EE020C94170D0C94E90D56 +:100030000C94F51A0C94EE020C94EE020C94EE0261 +:100040000C94EE020C94EE020C94EE020C94EE0270 +:100050000C94EE020C945D1B0C94EE020C94EE02D8 +:100060000C94EE020C94AF0F0C94EE020C94EE0282 +:100070000C94EE020C94EE020C94EE020C94EE0240 +:100080000C94EE020C94EE020C94EE020C94EE0230 +:100090000C94EE020C94EE020C94EE020C94EE0220 +:1000A0000C94EE020C94EE020C94EE02560E780EB6 +:1000B000660F780E660FBD0EE00E660F350F480F07 +:1000C00071127112A012A012DF12FF1255145514F2 +:1000D0000A135514BA13BA1321142A1455144F14C1 +:1000E000C713C713C713C713C713C713C713C71340 +:1000F000C713C713C713C713C713C713C713C71330 +:10010000D713E513EC13F313FD137500011E021E44 +:10011000011F021F012002200121022101220222CF +:10012000012302230124022401250225012802289B +:10013000007500011E021E011F021F012002200186 +:10014000210221012202220123022301240224018F +:1001500025022501280228007500011E021E011F2C +:10016000021F01200220012102210122022201237B +:100170000223012402240125022501280228002D42 +:1001800021F1A1F1A2F1A33522E7323932E2A42B09 +:1001900021000000C001C002C000000000000000FB +:1001A000000000000000000000000000000000004F +:1001B00000000000000000000000D200D000D129A3 +:1001C0000014001A00090013000A000D000F0018A7 +:1001D000001C00330034002A00C80004001500167B +:1001E00000170007000B00110008000C0012002887 +:1001F000000000E1001D001B000600190005000EB4 +:10020000001000360037003800C6000000C400E3CC +:1002100000C700C200C10000002C000000C500E6BD +:1002200000C300C00000000100CA00CB00CC0001E8 +:100230000001000100010001000100010052004C1A +:1002400000010001000100010001000100010001A6 +:10025000004A004B0050004F000000010001000167 +:1002600000010001000100010001004D004E00519D +:100270000001000000010001000100010001000078 +:100280000001000000010001000100010000000168 +:10029000000100010001000100010001002400250F +:1002A00000260027000100010001000100010001FB +:1002B00000010001002F002100220023003700016F +:1002C00000000001000100010001000100010030F8 +:1002D000001E001F0020003100010000000100DDB1 +:1002E000000100010001000000480000002E002D68 +:1002F0000001000100000001003A003B003C003D0D +:10030000003E003F004000410042004300440045E1 +:1003100000010001000100010001000100010001D5 +:1003200000010001000100010000000100010001C6 +:1003300000010001000100010001000100010001B5 +:1003400000010000000100010001000100010000A7 +:100350000001000000010001000100010000000197 +:10036000000100010001000100010001002400253E +:10037000002600270001000100010001000100012A +:1003800000010001002F002100220023003700019E +:100390000000000100010001000100010001003027 +:1003A000001E001F0020003100010000000100DDE0 +:1003B000000100010001000000480000002E002D97 +:1003C000000100010000000A034A00440034003527 +:1003D00000000012036700650065006B00680061A3 +:1003E0000063006B000000040309040902740004A8 +:1003F0000100A0FA09040000010301010009211114 +:100400000100012240000705810308000A090401D8 +:10041000000103010200092111010001224D000722 +:1004200005820308000A0904020001030000000914 +:1004300021110100012236000705830308000A0983 +:100440000403000203000000092111010001222021 +:1004500000070584032000010705040320000112A2 +:1004600001100100000008EDFE60600100010200C3 +:10047000010631FF0974A1010975150025FF9520BA +:10048000750881020976150025FF952075089102EF +:10049000C005010980A101850216010026B7001AD6 +:1004A00001002AB700751095018100C0050C0901F3 +:1004B000A1018503160100269C021A01002A9C0254 +:1004C000751095018100C005010902A1010901A172 +:1004D00000050919012905150025019505750181FA +:1004E0000295017503810105010930093115812546 +:1004F0007F95027508810609381581257F9501755C +:10050000088106050C0A38021581257F95017508BA +:100510008106C0C005010906A101050719E029E708 +:100520001500250195087501810295017508810165 +:1005300005081901290595057501910295017503B5 +:1005400091010507190029FF150026FF0095067582 +:10055000088100C011241FBECFEFDAE0DEBFCDBF9F +:1005600004B603FE24C08091ED029091EE02A091AA +:10057000EF02B091F0028730904BA740B04BB9F436 +:100580001092ED021092EE021092EF021092F00221 +:1005900014BE84B7877F84BF88E10FB6F894809338 +:1005A0006000109260000FBEE0E0F8E3099511E0F2 +:1005B000A0E0B1E0EEEAF7E402C005900D92A434A9 +:1005C000B107D9F712E0A4E4B1E001C01D92AD3E3D +:1005D000B107E1F70E94860A0C94D5230C94000021 +:1005E00008950895279A2F988FEF9FEF9093870093 +:1005F000809386008AE08093800089E18093810067 +:100600000C94AC21282F81110BC080918000877F32 +:100610008093800010928D0010928C002F98089586 +:100620002F9880918000886080938000233019F497 +:100630008FEF9FEF0FC083E090E0821B9109880F3E +:10064000991F2FEF3FEFA90102C0569547958A9554 +:10065000E2F7CA0190938D0080938C0008950E9468 +:10066000F2020C94F0020C94F102FC01613051F0A2 +:1006700018F0623069F012C08281882379F088E531 +:1006800091E008958281882349F081E391E0089503 +:100690008281882319F08AE091E0089580E090E05B +:1006A000089581E0089581E008950C94530308951E +:1006B0000F931F93CF93DF938C01FC01C081D181F5 +:1006C000CE010E94B919BE010E948906EC01B80151 +:1006D0000E945503882309F470C1F80182818823A0 +:1006E00009F45BC080914F0181111FC0C431F0E754 +:1006F000DF0709F00AC10E94570381E080934F0190 +:100700000E94271B90934E0180934D011092460149 +:10071000109248011092470110924A01109249012B +:1007200010924C0110924B0148C180914D01909163 +:100730004E010E94331B883C910570F48091460164 +:10074000E82FF0E0EE0FFF1FE95BFE4FD183C0837F +:100750008F5F8093460131C1C43120E7D20708F092 +:1007600024C1C23080E7D80710F5C11590E7D9073A +:1007700009F0DAC0F8018281882309F4BFC00E9421 +:10078000C014FFEF24E38CE0F15020408040E1F7FB +:1007900000C000000E94821B10C1C431F0E7DF07D7 +:1007A00008F0CFC0C23020E7D20708F49BC0F801A0 +:1007B0008281882309F4A2C00E94341D811102C0E5 +:1007C0000E94151D0E94511D90E09093DE028093BF +:1007D000DD02C230F0E7DF0721F48091DD028160A5 +:1007E0007AC0C33020E7D20721F48091DD02826015 +:1007F00072C0C43080E7D80721F48091DD028460A4 +:100800006AC0C53090E7D90719F48091DD0227C08E +:10081000C630E0E7DE0721F48091DD0280615BC035 +:10082000C730F0E7DF0721F48091DD02806253C01A +:10083000C83020E7D20721F48091DD0280644BC0EC +:10084000C93080E7D80721F48091DD02806843C079 +:10085000CA3090E7D90729F48091DD02846088606E +:100860003AC0CB30E0E7DE0721F48091DD028E7FD5 +:1008700032C0CC30F0E7DF0721F48091DD028D7FBC +:100880002AC0CD3020E7D20721F48091DD028B7F92 +:1008900022C0CE3080E7D80719F48091DD021AC05B +:1008A0008091DD02CF3090E7D90711F48F7E13C01D +:1008B000C031E0E7DE0711F48F7D0DC0C131F0E7F4 +:1008C000DF0711F48F7B07C0C231D04711F48F7757 +:1008D00002C08B7F877F8093DD028091DD020E94C2 +:1008E000551D6BC0C11580E7D80741F0C130D04716 +:1008F000F1F081E08093440180934501C801DF91CC +:10090000CF911F910F910C945103C43120E7D2076E +:1009100008F04BC0C23080E7D80708F048CFC115B7 +:1009200090E7D90709F42BCFC130D04711F7F80170 +:100930008281882319F38091CC0281608093CC025C +:100940003CC0C333E0E7DE07A1F4F80182818823CD +:1009500021F01092440182E017C08091440181117E +:1009600006C086E20E94151186E20E94DD1182E037 +:1009700019C0C433D04709F0BCCFF8018281882365 +:1009800031F01092450180E20E942C1216C0809135 +:100990004501811106C087E20E94151187E20E947D +:1009A000DD1180E20E94331208C0C333F0E7DF0795 +:1009B00061F2C433D04709F39CCF80E0DF91CF913F +:1009C0001F910F9108950C942F030C9433032DE085 +:1009D000729FF001112434E3839FE00DF11D112477 +:1009E000E60FF11DEE0FFF1FE154FE4F859194912C +:1009F0000E949B06811540E5940708F047C08115C9 +:100A000020E4920708F013C1883E910520F5803E4E +:100A1000910508F07CC1883A910578F4853A9105F2 +:100A200008F0A5C08130910509F471C108F42EC108 +:100A30008430910508F06BC129C18B3B910508F406 +:100A4000A1C0803C910508F421C1FC01EE0FFF1FFD +:100A5000E150F040E6C0811530E2930758F481156B +:100A600041E0940708F053C1803F910508F40EC19E +:100A700090650895811520E3920708F0D5C0FC0128 +:100A8000FF70EE0FFF1FE158FE4FCBC0811535E51B +:100A9000930708F043C0811544E5940708F0DEC0D1 +:100AA000811522E5920708F5811531E5930708F0D5 +:100AB000C1C0482F437021E030E002C0220F331F35 +:100AC0004A95E2F73C68AC0164E0569547956A9513 +:100AD000E1F74370342B8F708695869540E2849FB2 +:100AE000C0011124822B932B0895282F269526953B +:100AF000AC01437055278115934508F0A0C080E2F2 +:100B0000289F9001112481E090E002C0880F991F76 +:100B10004A95E2F7822B932B9C6808958F3240E729 +:100B2000940790F48F3120E7920708F0A2C0811556 +:100B300036E5930708F497C09C01305621153041E3 +:100B400008F0A4C09F7093C0803320E7920709F497 +:100B500097C008F492C0813340E7940709F493C02A +:100B60008233904709F092C080E093ED0895853A72 +:100B7000910509F48EC0863A910509F08DC082E88E +:100B800090E40895883A910509F489C0893A91055D +:100B900009F488C08A3A910509F487C08B3A910517 +:100BA00009F486C08C3A910509F485C08D3A910507 +:100BB00009F484C0803B910509F483C08E3A910505 +:100BC00009F482C08F3A910509F481C0813B9105F7 +:100BD00009F480C0823B910509F47FC0833B9105F5 +:100BE00009F47EC0843B910509F47DC0853B9105E5 +:100BF00009F47CC0863B910509F47BC0873B9105D5 +:100C000009F47AC0883B910509F479C0893B9105C4 +:100C100009F478C08A3B910509F477C080E094E438 +:100C200008958591949108959927906C08959F70E7 +:100C3000906A0895982F8827816F906A089590E2AE +:100C4000299F9001112481E090E002C0880F991F34 +:100C50004A95E2F7822B932B9A680895982F88275C +:100C6000846F906A08958F719927982F88279062D2 +:100C700008958F519047946D089580E091ED089507 +:100C800080E090ED089580E092ED089580E090E09E +:100C9000089581E890E4089583E890E4089582EE51 +:100CA00094E4089589EE94E408958AEE94E4089516 +:100CB00085EB94E4089586EB94E4089587EB94E43F +:100CC00008958CEC94E408958DEC94E4089583E801 +:100CD00095E408958AE895E4089582E995E40895F5 +:100CE00084E995E4089581E296E4089583E296E428 +:100CF000089584E296E4089585E296E4089586E2F4 +:100D000096E4089587E296E408958AE296E40895C9 +:100D100008959DE0799FF001112494E3899FE00DEF +:100D2000F11D1124E60FF11DEE0FFF1FE154FE4FE0 +:100D30008591949108958238910549F1B0F48133F9 +:100D4000910509F458C048F48932910509F44EC060 +:100D50008A32910509F454C008958533910509F448 +:100D600040C08933910599F00895833E910529F19A +:100D700038F4803E910591F0823E9105A1F00895EE +:100D8000863E9105F9F0873E910531F10895209155 +:100D9000DD0220FD3AC021FD38C008958091DD02BA +:100DA00080FD35C032C08091DD0282FF32C080916B +:100DB000DD0284FD30C083EE39C08091DD0282FD0A +:100DC00028C0F5CF8091DD0283FF27C08091DD022E +:100DD00084FD21C087EE2AC08091DD0283FD1DC005 +:100DE000F5CF8091DD0285FD1AC01BC08091DD0228 +:100DF00085FD17C014C08091DD0286FD14C015C0AA +:100E00008091DD0286FD11C00EC080EE0FC089E327 +:100E10000DC082EE0BC080E009C086EE07C089E2FB +:100E200005C085E303C08AE201C081E390E0089534 +:100E300008950C941807E82FF0E0EF5DFE4F8081D5 +:100E4000E82FEF70F0E082958F7021E030E0A9018B +:100E500002C0440F551F8A95E2F740A308950F93EF +:100E60001F93CF93DF9385B7806885BF85B7806870 +:100E700085BFC3E0D0E001E010E0FE01EF5DFE4F72 +:100E80008081E82FEF70F0E021A182958F70A8019A +:100E900002C0440F551F8A95E2F7CA01822B81A335 +:100EA0008C2F0E941B07219740F78CE090E061E0B7 +:100EB00070E0FC01EC5EFE4F2081E22FEF70F0E06D +:100EC00042A122952F70DB0102C0AA0FBB1F2A95F9 +:100ED000E2F79D01242B22A3019758F7DF91CF91D0 +:100EE0001F910F910C94E304EF92FF920F931F93C5 +:100EF000CF93DF9308E511E0C3E0EE24E394F12CF7 +:100F0000D5E08C2F0E941B078CE090E040E050E081 +:100F1000FC01EC5EFE4F6081E62FEF70F0E020A157 +:100F200030E062956F7002C0359527956A95E2F7BB +:100F300020FD09C09701082E02C0220F331F0A941A +:100F4000E2F7422B532B019718F7F8019291829107 +:100F50008F018417950721F051834083D0930001BE +:100F60008C2F0E941B07C15060F68091000187FD05 +:100F70002CC08150809300018F3F39F08FE99FE0B2 +:100F80000197F1F700C0000020C0809156019091B8 +:100F9000570190935F0180935E018091540190917D +:100FA000550190935D0180935C0180915201909175 +:100FB000530190935B0180935A018091500190916D +:100FC000510190935901809358010E94E50481E0FA +:100FD000DF91CF911F910F91FF90EF900895E82F2F +:100FE000F0E0EE0FFF1FE85AFE4F808191810895D7 +:100FF000089580916C0108950F931F93CF93DF9311 +:1010000000D000D01F92CDB7DEB79C018091610166 +:10101000909162012817390709F493C03093620157 +:1010200020936101223E3105F1F1293E310559F14C +:101030002A3E310559F1253B310559F1263B310551 +:1010400051F1273B310551F12C3C310561F12D3C2B +:10105000310531F1233881E0380729F12A3891E050 +:10106000390709F1223981E03807E9F0243991E0A4 +:101070003907C9F0213282E03807B9F0233292E013 +:10108000390789F415C090E040E114C090E040E2D7 +:1010900011C092E001C094E040E00CC090E1FCCFB0 +:1010A00090E040E407C090E0F7CF90E044E002C059 +:1010B00090E041E089018DEF4C839D830E94990F60 +:1010C00080E00E94990F82E00E94990F4C81842F4A +:1010D0000E94990F9D81892F0E94990F80E00E94A4 +:1010E000990F80E00E94990F80E00E94990F80E0A4 +:1010F0000E94990F8091E302843019F583E089837F +:101100001B830A838093E9008FEF9091E800815060 +:1011100095FD06C095ED9A95F1F700008111F5CF88 +:101120008091E80085FF0DC040E050E063E070E092 +:10113000CE0101960E94070B8091E8008E77809384 +:10114000E8000F900F900F900F900F90DF91CF91CC +:101150001F910F910895CF93DF9300D01F92CDB7C9 +:10116000DEB72091E302243021F522E029839B831E +:101170008A8383E08093E9008FEF9091E8008150AB +:1011800095FD06C095ED9A95F1F700008111F5CF18 +:101190008091E80085FF0DC040E050E063E070E022 +:1011A000CE0101960E94070B8091E8008E77809314 +:1011B000E8000F900F900F90DF91CF910895CF939B +:1011C000DF93EC018DEF0E94990F80E00E94990F50 +:1011D00083E00E94990F88810E94990F89810E9463 +:1011E000990F8A810E94990F8B810E94990F8C819F +:1011F0000E94990F80E00E94990F8091E302843051 +:10120000F9F482E08093E9008FEF9091E80081503B +:1012100095FD06C095ED9A95F1F700008111F5CF87 +:101220008091E80085FF0CC040E050E065E070E090 +:10123000CE010E94070B8091E8008E778093E80032 +:10124000DF91CF910895EF92FF920F931F93CF9369 +:10125000DF93EC018DEF0E94990F8E017E0188E0F3 +:10126000E80EF11CF80181918F010E94990F0E1573 +:101270001F05C1F78091E302843039F581E0809346 +:10128000E9008FEF9091E800815095FD06C0F5EDE3 +:10129000FA95F1F700008111F5CF8091E80085FF04 +:1012A00014C040E050E068E070E0CE010E94070BFF +:1012B0008091E8008E778093E80088E0FE01A4E644 +:1012C000B1E001900D928A95E1F7DF91CF911F91E6 +:1012D0000F91FF90EF9008958091E202811109C073 +:1012E0000E949C0C0E94F90C8091E2008460809323 +:1012F000E20008951092E2020895089508950C9472 +:10130000EA1A209160012F5F822F62E30E94652319 +:10131000992319F020936001089510926001809143 +:101320006301882371F18091E302843041F580915B +:10133000E9008F702091EC00922F917020FD90E8D1 +:10134000892B94E09093E9009091EB0090FF14C0FA +:101350009091EE0097FF10C09091E80095FF03C0B8 +:101360001092F100F9CF9091E80090FF05C09091A4 +:10137000E8009E779093E8008F708093E9001092C8 +:101380006301089542E061EC81E00E94160C42E0A6 +:1013900061EC82E00E94160C42E061EC83E00E9466 +:1013A000160C42E261EC84E00C94160C8091E5028C +:1013B000833009F453C030F4813071F0823009F485 +:1013C0008CC008958A3009F478C08B3009F45EC06F +:1013D000893009F09AC020C08091E402813A09F076 +:1013E00094C08091E800877F8093E8008091E802B4 +:1013F0009091E902892B21F468E084E691E003C032 +:1014000060E080E090E070E00E94520B8091E80084 +:101410008B778093E80008958091E402813209F08F +:1014200074C08091E8029091E902892B09F06DC0A7 +:101430008091E800877F8093E8008091E80082FD3A +:1014400005C08091E3028111F8CF5FC08091F10067 +:1014500080936C018091E8008B7753C08091E40207 +:10146000813A09F052C08091E8029091E902892BFB +:1014700009F04BC08091E800877F8093E80080915D +:10148000E80080FFFCCF80910B0136C08091E40220 +:101490008132D9F58091E8029091E902892BA9F572 +:1014A0008091E800877F8093E8000E944B0C809138 +:1014B000E60280930B010C94C0148091E402813207 +:1014C00021F58091E800877F8093E8000E944B0C13 +:1014D0008091E70280936D0108958091E402813A42 +:1014E000A1F48091E800877F8093E8008091E80074 +:1014F00080FFFCCF80916D018093F1008091E80026 +:101500008E778093E8000C944B0C089584B7877F06 +:1015100084BF88E10FB6F894809360001092600059 +:101520000FBE80E880936100109261000E942D1030 +:101530000E949C0C0E94F90C8091E20084608093D0 +:10154000E20078940E949B0F0E947E0F0E942F1051 +:1015500081E091E00E94D90F0E943710FDCF292F22 +:10156000332723303105C9F064F42130310581F08F +:101570002230310509F043C084E790E02BEE33E0E0 +:1015800042C021323105F1F02232310541F137C03C +:1015900082E190E02FE534E036C099278130910553 +:1015A00041F08230910541F0892B49F5E7EEF3E0F7 +:1015B00005C0E3EDF3E002C0E7ECF3E0849190E0D6 +:1015C0009F0121C06430D8F4E62FF0E0EE0FFF1F3A +:1015D000EF5CFE4F2081318189E090E014C06430DF +:1015E00070F470E0FB01EE0FFF1FE75DFE4F2081FE +:1015F0003181FB01EB5DFE4F808190E004C080E013 +:1016000090E020E030E0FA01318320830895CF920A +:10161000DF92EF92FF920F931F93CF93DF93EC0132 +:101620008B016A010E946A0C811133C0C114D1047C +:1016300039F0F60180819181081B190BC80FD91F61 +:10164000E12CF12C0115110519F18091E80085FDBF +:1016500016C08091E8008E778093E800C114D10411 +:1016600049F0F60180819181E80EF91EF182E08255 +:1016700085E00FC00E946A0C882321F30AC089917B +:101680008093F10001501109FFEFEF1AFF0ADACF42 +:1016900080E0DF91CF911F910F91FF90EF90DF904D +:1016A000CF9008952091EA023091EB022617370778 +:1016B00048F06115710539F42091E8002E772093E8 +:1016C000E80001C0B90140E061157105A9F1209160 +:1016D000E302222309F443C0253009F442C02091DB +:1016E000E80023FD40C02091E80022FD32C0209197 +:1016F000E80020FFE9CF4091F3002091F20030E0B4 +:10170000342BFC01CF016115710559F028303105EA +:1017100040F481918093F100615071092F5F3F4F38 +:10172000F1CF41E02830310509F040E02091E80098 +:101730002E772093E800C8CF4111C9CF0AC080910D +:10174000E302882361F0853061F08091E80083FD39 +:101750000AC08091E80082FFF2CF80E0089582E025 +:10176000089583E0089581E008952091EA02309180 +:10177000EB022617370748F06115710539F42091FF +:10178000E8002E772093E80001C0B901FC0120E0B9 +:101790006115710591F18091E302882309F440C03D +:1017A000853009F43FC08091E80083FD3DC0809101 +:1017B000E80082FD2FC08091E80080FFE9CF2091F2 +:1017C000F3008091F20090E0922B6115710559F0C1 +:1017D0008830910540F424912093F10031966150B6 +:1017E00071090196F2CF21E0089709F020E080917D +:1017F000E8008E778093E800CBCF2111CCCF0AC0D0 +:101800008091E302882361F0853061F08091E800E7 +:1018100083FD0AC08091E80082FFF2CF80E0089546 +:1018200082E0089583E0089581E00895982F97302D +:1018300058F59093E900981739F07091EC002091D9 +:10184000ED005091F00003C0242F762F50E021FFCF +:1018500019C03091EB003E7F3093EB003091ED00EA +:101860003D7F3093ED003091EB0031603093EB0021 +:101870007093EC002093ED005093F0002091EE0067 +:1018800027FF07C09F5FD3CF8F708093E90081E06F +:10189000089580E008958091E40287FF11C080914F +:1018A000E80082FD05C08091E3028111F8CF11C0EC +:1018B0008091E8008B770BC08091E302882349F088 +:1018C0008091E80080FFF8CF8091E8008E778093C8 +:1018D000E80008952091E4003091E50095E64091FC +:1018E000EC00842F817040FF22C08091E80080FDD1 +:1018F0001CC08091E302882391F0853091F08091A3 +:10190000EB0085FD10C04091E4005091E5004217C6 +:10191000530729F39A01915011F784E0089582E06A +:10192000089583E0089581E0089580E0089540914E +:10193000E80042FFDECF08950E940A0D0E94120DBA +:10194000E0EEF0E0808181608083E8EDF0E080816E +:101950008F77808319BCA7EDB0E08C918E7F8C933C +:1019600080818F7E80831092E20208950F931F93EF +:10197000CF93DF930E940A0D0E94120DC8EDD0E0B4 +:1019800088818F77888388818068888388818F7D2C +:10199000888319BC1092E3021092DF021092E102D8 +:1019A0001092E00200EE10E0F80180818B7F8083CE +:1019B00088818160888342E060E080E00E94160CAC +:1019C000E1EEF0E080818E7F8083E2EEF0E08081C6 +:1019D00081608083808188608083F80180818E7F30 +:1019E0008083888180618883DF91CF911F910F91DF +:1019F0000895E8EDF0E080818F7E8083E7EDF0E0F0 +:101A000080818160808384E082BF81E08093E202F4 +:101A10000C94B60CE8EDF0E080818E7F808310920C +:101A2000E20008951092DA001092E10008951F92EA +:101A30000F920FB60F9211242F933F934F935F9302 +:101A40006F937F938F939F93AF93BF93EF93FF9386 +:101A50008091E10082FF0BC08091E20082FF07C00D +:101A60008091E1008B7F8093E1000E948109809149 +:101A7000DA0080FF1FC08091D80080FF1BC08091DA +:101A8000DA008E7F8093DA008091D90080FF0DC04C +:101A900080E189BD82E189BD09B400FEFDCF81E00E +:101AA0008093E3020E946C0905C019BC1092E30206 +:101AB0000E947A098091E10080FF19C08091E200C4 +:101AC00080FF15C08091E2008E7F8093E2008091BC +:101AD000E20080618093E2008091D8008062809370 +:101AE000D80019BC85E08093E3020E947E098091B2 +:101AF000E10084FF30C08091E20084FF2CC080E1CF +:101B000089BD82E189BD09B400FEFDCF8091D80076 +:101B10008F7D8093D8008091E1008F7E8093E100DB +:101B20008091E2008F7E8093E2008091E2008160EC +:101B30008093E2008091DF02882311F084E007C0E7 +:101B40008091E30087FD02C081E001C083E08093C3 +:101B5000E3020E947F098091E10083FF29C0809108 +:101B6000E20083FF25C08091E100877F8093E10040 +:101B700082E08093E3021092DF028091E1008E7F89 +:101B80008093E1008091E2008E7F8093E20080915B +:101B9000E20080618093E20042E060E080E00E9429 +:101BA000160C8091F00088608093F0000E947D09FF +:101BB000FF91EF91BF91AF919F918F917F916F9125 +:101BC0005F914F913F912F910F900FBE0F901F90FB +:101BD00018951F920F920FB60F9211242F933F93D7 +:101BE0004F935F936F937F938F939F93AF93BF9325 +:101BF000CF93DF93EF93FF93C091E900CF70809173 +:101C0000EC00D82FD17080FDD0E81092E9008091CF +:101C1000F000877F8093F00078940E942D0E109240 +:101C2000E9008091F00088608093F000CD2BCF70A8 +:101C3000C093E900FF91EF91DF91CF91BF91AF91F8 +:101C40009F918F917F916F915F914F913F912F91D4 +:101C50000F900FBE0F901F9018951F93CF93DF9397 +:101C6000CDB7DEB7AA970FB6F894DEBF0FBECDBFD3 +:101C7000E4EEF2E088E08E0F9091F10091938E13E4 +:101C8000FBCF0E94D6098091E80083FF1FC180919D +:101C9000E4029091E502492F50E04A30510508F0E6 +:101CA00015C1FA01EA5AFF4F0C948523803881F060 +:101CB000823809F00BC18091E8028F708093E900AF +:101CC0008091EB0085FB882780F91092E90006C01F +:101CD0008091E0029091E102911182609091E80080 +:101CE000977F9093E8008093F1001092F100C8C0B4 +:101CF000282F2D7F09F0EAC0882319F0823061F087 +:101D0000E5C08091E602813009F0E0C0933009F02F +:101D100080E08093E1022BC08091E602811127C010 +:101D20008091E8028F7009F4D1C08093E90020917E +:101D3000EB0020FF1CC0933021F48091EB00806207 +:101D400014C09091EB0090619093EB0021E030E0A3 +:101D5000A90102C0440F551F8A95E2F74093EA009B +:101D60001092EA008091EB0088608093EB00109263 +:101D7000E9008091E800877F86C08111A7C010919B +:101D8000E6021F778091E3008078812B8093E30047 +:101D90008091E800877F8093E8000E944B0C80913F +:101DA000E80080FFFCCF8091E30080688093E3002F +:101DB000111102C082E001C083E08093E30286C07B +:101DC0008058823008F082C08091E6029091E7024C +:101DD0008C3D53E0950779F583E08A838AE2898315 +:101DE0004FB7F894DE01139620E03EE051E2E32F76 +:101DF000F0E050935700E49120FF03C0E295EF70AC +:101E00003F5FEF708E2F90E0EA3010F0C79601C070 +:101E1000C0968D939D932F5F243149F74FBF8091DA +:101E2000E800877F8093E8006AE270E0CE010196C7 +:101E30000E94520B14C0AE014F5F5F4F6091E802E9 +:101E40000E94AF0ABC01009709F440C09091E800DD +:101E5000977F9093E80089819A810E94B50B8091C9 +:101E6000E8008B778093E80031C0803879F5809165 +:101E7000E800877F8093E8008091DF028093F10083 +:101E80008091E8008E778093E8000E944B0C1EC082 +:101E900081111CC09091E6029230C0F48091E8005C +:101EA000877F8093E8009093DF020E944B0C809123 +:101EB000DF02811106C08091E30087FD02C081E04E +:101EC00001C084E08093E3020E94C2098091E8008F +:101ED00083FF0AC08091E800877F8093E8008091AB +:101EE000EB0080628093EB00AA960FB6F894DEBFF9 +:101EF0000FBECDBFDF91CF911F910895CF938091F9 +:101F0000E3028823A1F0C091E900CF709091EC002A +:101F1000892F817090FD80E8C82B1092E900809194 +:101F2000E80083FD0E942D0ECF70C093E900CF9191 +:101F300008950C94A80F87E68093CC001092CD00F2 +:101F400088E08093C90086E08093CA007894089561 +:101F50009091C80095FFFCCF8093CE0008951F920A +:101F60000F920FB60F9211242F933F934F938F939D +:101F70009F93EF93FF9380916F0190E09C012F5FFF +:101F80003F4F40916E01421741F03091CE00FC016D +:101F9000E059FE4F308320936F01FF91EF919F91A5 +:101FA0008F914F913F912F910F900FBE0F901F90E7 +:101FB000189590937502809374020895E0917402CD +:101FC000F0917502309721F00190F081E02D099495 +:101FD00080E00895E0917402F0917502309721F04D +:101FE0000280F381E02D09940895E0917402F0914C +:101FF0007502309721F00480F581E02D0994089551 +:1020000020917202309173028217930771F09093BE +:10201000730280937202E0917402F091750230971E +:1020200021F00680F781E02D099408952091700237 +:10203000309171028217930771F09093710280932F +:102040007002E0917402F0917502309721F00084E3 +:10205000F185E02D0994089508950C942C100E94A8 +:102060001E1B0E942F070E94EC1B0C94AC215F9258 +:102070006F927F928F929F92AF92BF92CF92DF9298 +:10208000EF92FF920F931F93CF93DF9300D000D076 +:102090001F92CDB7DEB70E9474079FE7C92E92E06A +:1020A000D92E03E010E0AA24A394B12C502E802F47 +:1020B0000E94EF074C01F601729062906F01682652 +:1020C000792661147104A1F40150110978F78FEF9A +:1020D00089838A831B820E94271B8160782F9D83BE +:1020E0008C8349815A816B818D810E94E71038C0B1 +:1020F0008091CC0281FD0E94F8072CE030E0750150 +:10210000022E02C0EE0CFF1C0A94E2F7C7018621E2 +:102110009721892B09F129835A828E209F2091E0F3 +:10212000892809F490E09B830E94271B8160782F07 +:102130009D838C8349815A816B818D810E94E71038 +:10214000000F111FF801E958FD4F80819181E826A9 +:10215000F926F182E08204C02150310980F6B4CF23 +:102160000E94DD1E109176020E94DE0F1817D1F03A +:102170000E94DE0F809376020F900F900F900F90C9 +:102180000F90DF91CF911F910F91FF90EF90DF9013 +:10219000CF90BF90AF909F908F907F906F905F9007 +:1021A0000C9419070F900F900F900F900F90DF91E4 +:1021B000CF911F910F91FF90EF90DF90CF90BF9044 +:1021C000AF909F908F907F906F905F900895CF9386 +:1021D000DF93CDB7DEB72B970FB6F894DEBF0FBEF7 +:1021E000CDBF4F83588769877A878B87DE01119629 +:1021F00086E0FD0111928A95E9F785E0FE013796A8 +:1022000001900D928A95E1F749815A816B817C8119 +:102210008D819E810E945E172B960FB6F894DEBFCB +:102220000FBECDBFDF91CF910895CF93882309F4DE +:10223000C2C0C82F823859F40E94DE0F81FDBBC096 +:1022400089E30E94381A0E94BB1A89E30CC08338C4 +:1022500079F40E94DE0F80FDAEC083E50E94381A3B +:102260000E94BB1A83E50E94551ACF910C94BB1AA9 +:10227000843859F40E94DE0F82FD9DC087E40E94DD +:10228000381A0E94BB1A87E4EECF8CEF8C0F813A8C +:1022900048F48C2F0E94152181118DC08C2F0E9433 +:1022A000381AE3CF80E28C0F883048F4C77081E0A1 +:1022B00001C0880FCA95EAF70E94741AD6CF8BE541 +:1022C0008C0F833078F4C53A29F0C63A31F083E8B0 +:1022D00090E005C081E890E002C082E890E0CF91F4 +:1022E0000C94001088E58C0F833108F064C0C83A64 +:1022F00039F1C93A41F1CA3A49F1CB3A51F1CC3AF4 +:1023000059F1CD3A61F1C03B69F1CE3A71F1CF3A62 +:1023100079F1C13B81F1C23B89F1C33B91F1C43BEF +:1023200099F1C53BA1F1C63BA9F1C73BB1F1C83B4F +:10233000B9F1C93BC1F1CA3BC9F180E090E038C0B6 +:1023400082EE90E035C089EE90E032C08AEE90E0F7 +:102350002FC085EB90E02CC086EB90E029C087EB86 +:1023600090E026C08CEC90E023C08DEC90E020C083 +:1023700083E891E01DC08AE891E01AC082E991E00B +:1023800017C084E991E014C081E292E011C083E2B9 +:1023900092E00EC084E292E00BC085E292E008C0B9 +:1023A00086E292E005C087E292E002C08AE292E013 +:1023B000CF910C941610CF910895882309F44BC047 +:1023C000823859F40E94DE0F81FF45C089E30E94E4 +:1023D000381A0E94BB1A89E30CC0833871F40E943A +:1023E000DE0F80FF38C083E50E94381A0E94BB1AB6 +:1023F00083E50E94551A0C94BB1A843859F40E9444 +:10240000DE0F82FF28C087E40E94381A0E94BB1AA0 +:1024100087E4EFCF9CEF980F913A58F390E2980F32 +:10242000983050F4877091E001C0990F8A95EAF7CF +:10243000892F0E947A1ADFCF9BE5980F933020F402 +:1024400080E090E00C940010885A833120F480E002 +:1024500090E00C9416100895882321F00E94741ABD +:102460000C94BB1A0895882321F00E947A1A0C94C8 +:10247000BB1A08957F928F929F92AF92BF92CF9294 +:10248000DF92EF92FF920F931F93CF93DF931F92F0 +:10249000CDB7DEB77C01C62E772EFC0105810295F3 +:1024A0000F70128111110E94911A0E94311A882313 +:1024B00079F0112369F080E28C0D883048F082E0D9 +:1024C0000E941A1A0E94311A91E0D82ED92601C012 +:1024D000D12CE72DE295EF70F0E0E05AFF4F0C941D +:1024E0008523872D807F072D0F70882311F002959B +:1024F000007F112389F0002309F499C180E28C0D3B +:10250000883020F4802F0E94741A03C0802F0E940C +:10251000841A0E94BB1A8BC18C2D0E94DD110023EE +:1025200009F4C3C180E28C0D883020F4802F0E9412 +:102530007A1A03C0802F0E948A1A0E94BB1AB5C162 +:10254000872D807F972D9F70803211F4892F03C0D3 +:10255000892F8295807FCC2021F0F1E0CF16A1F069 +:102560001DC0112339F0002319F1013009F50E9433 +:10257000A41A9BC1002319F0013009F496C1898384 +:102580000E94A71A898110C1112321F0063008F09A +:102590008CC10EC0053008F088C106C1112359F066 +:1025A000002331F0F701958190FF41C19F70958321 +:1025B0000E942C127AC1002309F4F6C03EC1872D77 +:1025C00086958695837090E0009719F0019761F0E9 +:1025D0006CC1112321F08C2D972D937002C080E0E7 +:1025E00090E00E94001061C1112321F08C2D972DE5 +:1025F000937002C080E090E00E94161056C18C2DAE +:10260000112319F00E94E51D02C00E944D1E0E9478 +:10261000D21E4BC1872D837009F052C0111145C1E4 +:102620008C2D829586958770880F880F9C2D9F70C2 +:10263000892E912CA12CB12C082E04C0880C991C39 +:10264000AA1CBB1C0A94D2F7C4FE14C00FE010E011 +:1026500020E030E0B901A80104C0440F551F661FF7 +:10266000771F8A95D2F7CB01BA0160957095809556 +:10267000909503C060E070E0CB01272D269526954C +:10268000237030E02230310569F02330310589F0C4 +:10269000682979298A299B292130310571F00E9406 +:1026A000A61803C1682979298A299B290E94C21882 +:1026B000FCC00E94A618C501B4010E948A18F5C08A +:1026C000112319F0872D817001C08695882309F4A4 +:1026D000ECC08C2D829586958770880F880F9C2D75 +:1026E0009F70892E912CA12CB12C082E04C0880C2F +:1026F000991CAA1CBB1C0A94D2F7C4FE14C00FE09C +:1027000010E020E030E0B901A80104C0440F551FDB +:10271000661F771F8A95D2F7CB01BA016095709535 +:102720008095909503C060E070E0CB01272D269541 +:1027300026952370422F50E04230510569F0433016 +:10274000510589F0682979298A299B294130510549 +:1027500071F00E948019A9C0682979298A299B29CA +:102760000E949C19A2C00E948019C501B4010E9458 +:1027700064199BC08C2D90E0FC01E05EF109E5310D +:10278000F10508F050C0E059FF4F0C9485230C2D43 +:102790000F70872D8F71112321F00E94FD18802F5B +:1027A00007CF0E941E19802F0E9433127EC0112372 +:1027B00041F0053008F079C0872D8F710E944319D0 +:1027C00074C0063008F071C0F7CF112339F0872D9F +:1027D0008F710E94FD1869C01123C9F3872D8F7175 +:1027E0000E941E1962C0112329F0872D8F710E944B +:1027F000E8185BC00E94DE1858C0112351F0172D55 +:102800001F71812F0E94FD1863E0812F0E94111A11 +:102810004CC081E00E941A1A023008F446C082E0DF +:102820000E941A1A42C0112331F0002381F28C2D2C +:102830000E9415113AC0002389F28C2D0E94DD11EF +:1028400034C0472D4F706C2DC7010E9435030E9484 +:1028500002182BC0111129C0472D4F7050E0423093 +:102860005105B9F04CF44115510581F04130510545 +:10287000E1F40E94D42119C04330510569F044307D +:10288000510599F48C2D0E9426220FC00E94BD2173 +:102890000CC00E94F02109C00E94032206C0472DEF +:1028A0004F706C2DC7010E948806DD20F9F00E9450 +:1028B0000D1A80FD1BC0F70112820E94071A0E94A8 +:1028C000FD18C7010E9485140E94071A0F90DF911E +:1028D000CF911F910F91FF90EF90DF90CF90BF901D +:1028E000AF909F908F907F900C941E190F90DF9166 +:1028F000CF911F910F91FF90EF90DF90CF90BF90FD +:10290000AF909F908F907F9008950F931F93CF93D8 +:10291000DF93EC01888199812B813C81232BB9F0D5 +:102920009F3F11F48F3F99F0CE010E9458038823F6 +:1029300071F0688179818A810E94031A8C010E945A +:10294000B8190E947F18B801CE010E943A12DF9197 +:10295000CF911F910F9108950E94911A0E94A11A80 +:102960000E94661A0E94BB1A0E94831F0E94D21EF8 +:1029700080E090E00E94001080E090E00C9416103F +:102980000E94811A0C94AC140E94F819292F2295E8 +:102990002F7030E02C3031054CF42A3031056CF4C6 +:1029A0002250310922303105A8F407C02C303105FE +:1029B00069F02F30310551F00DC0803F69F018F4F7 +:1029C000803E40F409C0843F29F406C093FB882769 +:1029D00080F9089580E0089581E00895CF93DF9312 +:1029E00000D000D01F92CDB7DEB70F900F900F90A0 +:1029F0000F900F90DF91CF910895CF93DF9300D088 +:102A000000D000D0CDB7DEB726960FB6F894DEBF63 +:102A10000FBECDBFDF91CF9108951F93CF93DF936A +:102A2000C0917F0216E080918002C81799F0D0E033 +:102A30001C9FF0011D9FF00D1124EF57FD4F4081A9 +:102A4000518162817381848195810E94FD14219658 +:102A5000C770E9CFDF91CF911F9108954091B102E6 +:102A60005091B2026091B3027091B4028091B502AC +:102A70009091B6020C94FD148091B60282958F70ED +:102A800009F054C08091B302882309F44FC08091AB +:102A90007F02A09180026091B1027091B2024091D8 +:102AA000B4025091B502B6E08A1709F43FC090E035 +:102AB00041155105C1F17F3F11F46F3FA1F1B89F5E +:102AC000F001B99FF00D1124EF57FD4F21817213D2 +:102AD0002AC02081621327C02281211124C02381B2 +:102AE00034812417350710F421503109241B350B8C +:102AF000283C3105C0F42091B6022F70206120934C +:102B0000B60226E0289FF001299FF00D1124EA5714 +:102B1000FD4F80818F708061808381EB92E00E9405 +:102B200085140C940D1501968770BECF0895CF9231 +:102B3000DF92EF92FF920F931F93CF93DF93CDB766 +:102B4000DEB762970FB6F894DEBF0FBECDBF8C0123 +:102B500085E0F801DE011D9601900D928A95E1F75E +:102B6000D8014C9111965C91119712966C91129725 +:102B70001396CD90DC9014973091B1027091B2020F +:102B80008091B4029091B502009709F46BC17F3F28 +:102B900019F43F3F09F466C1E090B302EE2009F456 +:102BA000C0C02091B602C816D90628F0F601E81B6D +:102BB000F90BCF0104C0809590958C0D9D1DFF24CD +:102BC000F394883C910578F0F12C207F09F0C6C081 +:102BD0007C2DD98AC88A89890E94EE1481EB92E003 +:102BE0000E948514B1C0822F807F09F046C0751302 +:102BF00014C0341312C0611110C02F7020612093D3 +:102C0000B6020E942E1581EB92E00E9485148091FD +:102C1000B602D80115968C932EC0CD2819F15F3FCE +:102C200011F44F3FF9F0F62E61111CC080917F0224 +:102C30002091800236E0821709F45AC090E0389F54 +:102C4000F001399FF00D1124EF57FD4F718157139B +:102C500006C07081471303C07281711103C00196D1 +:102C60008770E9CFF62E662309F418C18091B60269 +:102C700081608093B602F12C11C1751308C0341322 +:102C800006C0611104C08091B602D801C3C04D874F +:102C90005E878D859E856A8B0E94C4146A8988230D +:102CA000E1F16623D1F12091B602822F82958F70D7 +:102CB00090E0029774F08091B1029091B2029887EF +:102CC0008F831986DB86CA862C87CE0107960E94E1 +:102CD000851486E0F801A1EBB2E001900D928A958F +:102CE000E1F70E943C150E942E15FF24F394D6C0F4 +:102CF0004D875E878D859E850E94F819292F229524 +:102D00002F7030E0223031050CF0BCC09F7009F00C +:102D1000B6C0805E883008F4C1C0C8010E94851426 +:102D2000E4CFC816D90608F453C0F601E81BF90B26 +:102D3000CF01883C910508F450C0F12C7C2DD98A34 +:102D4000C88A89890E94EE14E1EBF2E086E0DF0197 +:102D50001D928A95E9F70E942E15A0C0751314C024 +:102D6000341312C0611110C08091B602F80185833E +:102D7000C8010E94851486E0E1EBF2E0DF011D92BC +:102D80008A95E9F7FE2C8AC04D875E878D859E85E2 +:102D90006A8B0E94C4146A89882309F4BECF662313 +:102DA00009F4BBCF2091B602822F82958F7090E0FC +:102DB00002970CF48ECF8091B1029091B2029A8367 +:102DC00089831B82DD82CC822E83CE0101967FCF48 +:102DD000809590958C0D9D1DACCFF62E662309F441 +:102DE0009CCF75132EC034132CC02091B60220FD49 +:102DF0001FC0822F82958F70D9F0D80115962C9321 +:102E000015978F3049F08F5F982F9295907F822F82 +:102E10008F70892B15968C93C8010E94851486E0CB +:102E2000F801A1EBB2E001900D928A95E1F793CF02 +:102E300086E0F801A1EBB2E001900D928A95E1F7EE +:102E40002DC04D875E878D859E850E94C41481119B +:102E500040CF8091B60281608093B602C8010E9483 +:102E600085141CC0662309F458CF4D875E878D8575 +:102E70009E850E94C414882309F44FCF2ACF811164 +:102E800048CF0CC0243031050CF047CF9F7009F4B7 +:102E900040CFF8019581907F09F03BCF8F2D62964E +:102EA0000FB6F894DEBF0FBECDBFDF91CF911F915B +:102EB0000F91FF90EF90DF90CF9008951F93CF93E5 +:102EC000DF93CDB7DEB72C970FB6F894DEBF0FBEF9 +:102ED000CDBF4F83588769877A878B879C87CE01C0 +:102EE00007960E949715882369F08F8198852A8517 +:102EF0003B85232BF1F19F3F09F063C08F3F09F021 +:102F000060C037C086E0FE013796DE011196019061 +:102F10000D928A95E1F76F817885EA85FB85309778 +:102F200041F17F3F11F46F3F21F12091800230E0A9 +:102F3000C90101968770992740917F0250E084175C +:102F4000950709F447C069837A83FD83EC8396E093 +:102F5000929FD001939FB00D1124AF57BD4FFE013A +:102F6000319601900D929A95E1F7809380020E942C +:102F70000D1516E080917F02909180028917C1F1B2 +:102F8000189FC00111248F579D4F0E9497158823C9 +:102F900079F1E0917F021E9FF0011124EF57FD4F60 +:102FA0004081518162817381848195810E94FD14E9 +:102FB00080917F0290E001968770992780937F022D +:102FC000D9CF4F81588569857A858B859C850E94EC +:102FD000FD14CFCF0E94C0141092800210927F0285 +:102FE000E1EBF2E086E0DF011D928A95E9F7C1CFBF +:102FF0002C960FB6F894DEBF0FBECDBFDF91CF91F8 +:103000001F910895EF92FF920F931F93CF93DF9339 +:103010008C01009709F46CC0F12CEE24E394E801D4 +:103020002196F8018491843740F4843008F051C02F +:10303000813081F0823019F15BC0853709F444C0DA +:10304000A8F19CE7980F903708F052C08F770E9444 +:10305000DD1141C00E5F1F4FFE01C49180E28C0F55 +:10306000883048F4C7708E2D01C0880FCA95EAF7E2 +:103070000E94941A14C08C2F0E9415112DC00E5F4F +:103080001F4FFE01C49180E28C0F883058F4C77046 +:103090008E2D01C0880FCA95EAF70E949A1A0E94E5 +:1030A000BB1A1AC08C2F0E94DD1116C00E5F1F4F75 +:1030B000FE01C491CC2381F08FE99FE00197F1F7E5 +:1030C00000C00000C150F6CF0E5F1F4FFE01F4900C +:1030D00003C00E9415118E018F2D882309F49FCF04 +:1030E000EFE9FFE03197F1F700C000008150F5CF24 +:1030F000DF91CF911F910F91FF90EF900895089568 +:103100006093BB027093BC028093BD029093BE0299 +:103110000C94AC140F931F930091BB021091BC024E +:103120002091BD023091BE02DC01CB01802B912B9E +:10313000A22BB32B8093BB029093BC02A093BD0241 +:10314000B093BE021F910F910C94AC140F931F9378 +:103150000091BB021091BC022091BD023091BE02D1 +:10316000DC01CB0180239123A223B3238093BB02F4 +:103170009093BC02A093BD02B093BE021F910F9129 +:103180000C94AC140F931F930091BB021091BC02DE +:103190002091BD023091BE02DC01CB018027912736 +:1031A000A227B3278093BB029093BC02A093BD02D9 +:1031B000B093BE021F910F910C94AC141092B70201 +:1031C0001092B8021092B9021092BA020C94AC1488 +:1031D00041E050E060E070E004C0440F551F661FFE +:1031E000771F8A95D2F74093B7025093B802609345 +:1031F000B9027093BA020C94AC1441E050E060E064 +:1032000070E004C0440F551F661F771F8A95D2F7E0 +:103210008091B7029091B802A091B902B091BA0220 +:10322000482B592B6A2B7B2B4093B7025093B80243 +:103230006093B9027093BA020C94AC1441E050E070 +:1032400060E070E004C0440F551F661F771F8A9529 +:10325000D2F740955095609570958091B702909106 +:10326000B802A091B902B091BA02482359236A2347 +:103270007B234093B7025093B8026093B9027093D6 +:10328000BA020C94AC1441E050E060E070E004C07D +:10329000440F551F661F771F8A95D2F78091B7029A +:1032A0009091B802A091B902B091BA02482759276B +:1032B0006A277B274093B7025093B8026093B90204 +:1032C0007093BA020C94AC140F931F930091B70241 +:1032D0001091B8022091B9023091BA02DC01CB0101 +:1032E000802B912BA22BB32B8093B7029093B80223 +:1032F000A093B902B093BA021F910F910C94AC1431 +:103300000F931F930091B7021091B8022091B90258 +:103310003091BA02DC01CB0180239123A223B32395 +:103320008093B7029093B802A093B902B093BA0207 +:103330001F910F910C94AC140F931F930091B7023F +:103340001091B8022091B9023091BA02DC01CB0190 +:1033500080279127A227B3278093B7029093B802C2 +:10336000A093B902B093BA021F910F910C94AC14C0 +:103370000895CF92DF92EF92FF920F931F93CF9316 +:10338000DF938C01C090BB02D090BC02E090BD02E4 +:10339000F090BE028091B7029091B802A091B9025C +:1033A000B091BA02C82AD92AEA2AFB2ACFE1D0E092 +:1033B000D701C6010C2E04C0B695A79597958795A1 +:1033C0000A94D2F780FF06C0B8018C2F0E94E70450 +:1033D000019721F4219760F780E001C08C2FDF91E5 +:1033E000CF911F910F91FF90EF90DF90CF900895B4 +:1033F000CF93DF93EC010E94B919BE010E94E7044C +:10340000DF91CF910895CB010E94F8190895809122 +:10341000BF0285958595859508958091BF02877037 +:10342000089598E0899F90011124262B2093BF02D4 +:103430000C94FD182091BF02809582238093BF02D7 +:10344000982F977069F430E0482F552747FD509525 +:103450002417350729F08595859585950C941E19B7 +:1034600008959091BF02977081E009F480E008957B +:1034700020910C0130910D01F90132969FEF40E04F +:103480005191581789F09F3F19F4511101C0942FA1 +:103490004F5F4630A9F79F3F39F0F901E90FF11D61 +:1034A00097FDFA9582830895089520910C0130913B +:1034B0000D01F9013296285F3F4F9081981301C0AA +:1034C00010823196E217F307C1F7089581E090E08A +:1034D000E0910C01F0910D01E80FF91F10820196A7 +:1034E00088309105A9F708959091CB02892B80939C +:1034F000CB02089580959091CB0289238093CB02D3 +:1035000008951092CB0208959091CA02892B80935E +:10351000CA02089580959091CA0289238093CA02B5 +:1035200008951092CA0208959091C902892B809340 +:10353000C902089580959091C90289238093C90298 +:1035400008951092C90208958093C00208951092C0 +:10355000C002089580910C0190910D01FC013196FB +:103560009C01285F3F4F80E0919191118F5FE2179E +:10357000F307D1F70895E0910C01F0910D018091CE +:10358000CB028083E0910C01F0910D01908180913C +:10359000CA02892B8083E0910C01F0910D0190818A +:1035A0008091C902892B80838091C002882361F0B9 +:1035B000E0910C01F0910D019081892B80830E9494 +:1035C000AA1A81111092C00280910C0190910D01F4 +:1035D0000C94EA0F0E94C01480E00E9402030E9433 +:1035E000AC210E94DE0F0C9419071F920F920FB6A8 +:1035F0000F9211248F939F93AF93BF938091CD022D +:10360000811113C08091CE029091CF02A091D0027F +:10361000B091D1024196A11DB11D8093CE0290932D +:10362000CF02A093D002B093D102BF91AF919F91EE +:103630008F910F900FBE0F901F90189582E084BD60 +:1036400093E095BD9AEF97BD80936E0008952FB7D4 +:10365000F8948091CE029091CF02A091D002B091C7 +:10366000D1022FBF0895CF92DF92EF92FF920F9376 +:103670001F932FB7F8944091CE025091CF026091E2 +:10368000D0027091D1022FBF6A017B01EE24FF248A +:103690008C0120E030E0C016D106E206F30610F4FB +:1036A000415051099A01281B390BC9011F910F91F3 +:1036B000FF90EF90DF90CF9008951F920F920FB67A +:1036C0000F9211248F939F93AF93BF938091CE025B +:1036D0009091CF02A091D002B091D1020196A11D8C +:1036E000B11D8093CE029093CF02A093D002B093ED +:1036F000D102BF91AF919F918F910F900FBE0F900C +:103700001F9018950E949C0CF8942FEF87EA91E681 +:10371000215080409040E1F700C0000087E090EB2E +:10372000DC018093ED029093EE02A093EF02B09340 +:10373000F0029CE088E10FB6F894A89580936000B1 +:103740000FBE90936000FFCFAF92BF92CF92DF92F7 +:10375000EF92FF920F931F93CF93C3E0CC24C394B7 +:10376000D12CE82EF12C8C2F0E94EF075C010CE08D +:1037700010E09601002E02C0220F331F0A94E2F7D8 +:103780002A213B21232B51F0602F7C2F80E00E94C7 +:103790008906E816F90611F481E006C00150110906 +:1037A00040F7C15000F780E0CF911F910F91FF903B +:1037B000EF90DF90CF90BF90AF900895CF93C82F38 +:1037C0008CE20E94A41B882321F08C2FCF910C94B3 +:1037D000A41B80E0CF910895CF930E94341D8111E6 +:1037E00002C00E94151DC5E6C15049F00E94740731 +:1037F0008FE39CE90197F1F700C00000F5CF89E263 +:103800000E94DE1B81110FC18AE20E94DE1B811122 +:103810000E94151D85E00E94DE1B81110E94821B03 +:103820000E943F1D8093CC0287E00E94DE1B88230C +:10383000A9F18BE10E94DE1B882351F08091CC021C +:1038400081FB222720F991E0922790FB81F90EC09D +:103850008EE00E94DE1B882361F08091CC0282FB07 +:10386000222720F991E0922790FB82F98093CC02E5 +:1038700015C080E10E94DE1B9091CC02882341F0AC +:1038800093FB222720F981E0822780FB93F904C073 +:10389000892F809580FB90F99093CC028091CC0287 +:1038A0000E94431D0E94511D90E09093DE02809380 +:1038B000DD0280EE0E94DE1B882341F08091DD0254 +:1038C000982F909590FB80F98093DD0289E30E9408 +:1038D000DE1B882359F08091DD0281FB222720F92D +:1038E00091E0922790FB81F98093DD0282EE0E94A5 +:1038F000DE1B882359F08091DD0282FB222720F90C +:1039000091E0922790FB82F98093DD0286EE0E947F +:10391000DE1B882359F08091DD0283FB222720F9EA +:1039200091E0922790FB83F98093DD0283EE0E9461 +:10393000DE1B882359F08091DD0284FB222720F9C9 +:1039400091E0922790FB84F98093DD0285E30E9449 +:10395000DE1B882359F08091DD0285FB222720F9A8 +:1039600091E0922790FB85F98093DD0281E30E942C +:10397000DE1B882359F08091DD0286FB222720F987 +:1039800091E0922790FB86F98093DD0281E10E940D +:10399000DE1B882359F08091DD0287FB222720F966 +:1039A00091E0922790FB87F98093DD028091DD0200 +:1039B0000E94551D87E20E94DE1BC82F8EE10E94E7 +:1039C000DE1B8111C2608FE10E94DE1B8111C46089 +:1039D00080E20E94DE1B8111C86081E20E94DE1B32 +:1039E0008111C06182E20E94DE1B8111C06283E20C +:1039F0000E94DE1B8111C06484E20E94DE1B8823CA +:103A000011F0C06802C0CC2329F08C2F0E944C1DFD +:103A10006C2F03C00E94481D682F70E080E090E08A +:103A2000CF910C948018CF9108956DEE7EEF80E0D9 +:103A300090E00E94BF2360E082E090E00E94AD230E +:103A400060E083E090E00E94AD2360E084E090E0DD +:103A50000E94AD2360E085E090E00E94AD2360E02D +:103A600086E090E00C94AD2380E090E00E94A723D4 +:103A700021E08D3E9E4F09F020E0822F089582E0E4 +:103A800090E00C949F23682F82E090E00C94AD238B +:103A900083E090E00C949F23682F83E090E00C94E7 +:103AA000AD2384E090E00C949F23682F84E090E0A5 +:103AB0000C94AD2386E090E00C949F23682F86E061 +:103AC00090E00C94AD238091D40280FF0BC06091F4 +:103AD000110185E0689FB001112475956795759572 +:103AE00067952BC081FF09C06091110185E0689F37 +:103AF000B00111247595679520C082FF07C06091C1 +:103B0000110185E0689FB001112417C09091D50282 +:103B10009923D1F060911001961788F72091110137 +:103B200085E0289F90011124929FA001939F500D42 +:103B3000112470E0CA010E9471236038710540F4BD +:103B40006115710539F002C065E070E0862F0895B7 +:103B50008FE7089581E008958091D40280FF08C026 +:103B600060910F0170E0759567957595679521C017 +:103B700081FF06C060910F0170E07595679519C0CF +:103B800082FF04C060910F0170E010C09091D502D7 +:103B90009923C1F060910E019617A0F780910F0153 +:103BA000899FC001112470E00E9471236038710563 +:103BB00028F46115710521F0862F08958FE7089587 +:103BC00081E0089561E070E0F4CF803F21F40E942D +:103BD000631D819504C0813F29F40E94631D809379 +:103BE000D8020895823F21F40E94631D819504C08C +:103BF000833F29F40E94631D8093D7020895893F73 +:103C000019F40E94AC1D05C08A3F31F40E94AC1D1E +:103C100081958093D90208958B3F21F40E94AC1DB9 +:103C2000819504C08C3F29F40E94AC1D8093DA0278 +:103C30000895843F21F48091D602816017C0853FAA +:103C400021F48091D602826011C0863F21F48091D8 +:103C5000D60284600BC0873F21F48091D602886031 +:103C600005C0883F31F48091D60280618093D602EE +:103C700008958D3F21F48091D40281600BC08E3F66 +:103C800021F48091D402826005C08F3F29F4809195 +:103C9000D40284608093D4020895803F39F48091E7 +:103CA000D80287FF6CC01092D80269C0813F29F406 +:103CB0008091D8021816BCF362C09091D702823F5F +:103CC00029F497FF5CC01092D70259C0833F19F4C2 +:103CD0001916CCF354C0893F41F48091D9021816CB +:103CE0000CF04DC01092D9024AC08A3F29F480914D +:103CF000D90287FF44C0F6CF8B3F39F48091DA02B6 +:103D000087FF3DC01092DA023AC08C3F29F48091BF +:103D1000DA021816BCF333C0843F21F48091D60236 +:103D20008E7F17C0853F21F48091D6028D7F11C010 +:103D3000863F21F48091D6028B7F0BC0873F21F410 +:103D40008091D602877F05C0883F31F48091D602EA +:103D50008F7E8093D60213C08D3F21F48091D402D0 +:103D60008E7F0BC08E3F21F48091D4028D7F05C0E1 +:103D70008F3F29F48091D4028B7F8093D40280916D +:103D8000D70281110EC08091D80281110AC08091A2 +:103D9000D902811106C08091DA02811102C010920D +:103DA000D502089586ED92E00E94F50F0E94271B30 +:103DB0009093D3028093D20208951F93CF93DF9301 +:103DC0008091D2029091D3020E94331BAC0190915A +:103DD000D502992321F02091120130E006C02091F4 +:103DE00013018AE0289F900111244217530708F419 +:103DF00086C08091D702C091D802D091D90210918B +:103E0000DA02811107C0C11176C0D11174C011113D +:103E100072C075C09F3F19F09F5F9093D50218162E +:103E200024F40E94631D8093D7028091D70287FFFC +:103E300005C00E94631D81958093D7021C1624F44F +:103E40000E94631D8093D8028091D80287FF05C02D +:103E50000E94631D81958093D8026091D7026623EA +:103E600039F1C091D802CC2319F1772767FD7095FD +:103E7000872F972F0E94762223E333E343E35FE308 +:103E80000E94DA220E9443226093D7026C2F772788 +:103E900067FD7095872F972F0E94762223E333E3E7 +:103EA00043E35FE30E94DA220E9443226093D80238 +:103EB0001D1624F40E94AC1D8093D9028091D90272 +:103EC00087FF05C00E94AC1D81958093D902111611 +:103ED00024F40E94AC1D8093DA028091DA0287FFFD +:103EE00005C00E94AC1D81958093DA02DF91CF91CD +:103EF0001F910C94D21E9F3F09F08ECF96CFDF9179 +:103F0000CF911F910895E6EDF2E085E0DF011D926B +:103F10008A95E9F71092D5021092D4020895833061 +:103F200081F128F4813059F08230D1F00895853044 +:103F300009F449C0B8F1863009F456C0089580915B +:103F40001301262F30E0280F311D2F3F310524F4B7 +:103F5000680F6093130108958FEF80931301089504 +:103F600080911201262F30E0280F311D2F3F31059F +:103F700024F4680F6093120108958FEF809312016B +:103F8000089580911101262F30E0280F311D2F3F19 +:103F9000310524F4680F6093110108958FEF809329 +:103FA0001101089580911001262F30E0280F311D56 +:103FB0002F3F310524F4680F6093100108958FEFAF +:103FC00080931001089580910F01262F30E0280F73 +:103FD000311D2F3F310524F4680F60930F010895C0 +:103FE0008FEF80930F01089580910E01262F30E00E +:103FF000280F311D2F3F310524F4680F60930E0107 +:1040000008958FEF80930E010895833011F128F405 +:10401000813049F0823091F00895853081F120F1AE +:104020008630C1F1089580911301681720F4861B32 +:104030008093130108951092130108958091120145 +:10404000681720F4861B80931201089510921201C4 +:10405000089580911101681720F4861B8093110147 +:10406000089510921101089580911001681720F4AD +:10407000861B80931001089510921001089580917D +:104080000F01681720F4861B80930F01089510928A +:104090000F01089580910E01681720F4861B80930C +:1040A0000E01089510920E0108950F931F93873209 +:1040B00008F040C08E3108F08AC08E3009F474C018 +:1040C000C0F4873009F45EC068F4863009F09AC005 +:1040D0008091CC02817F8E7F8093CC0281E080939F +:1040E000DC0291C0883009F486C08B3009F483C0AB +:1040F00089C0863109F47FC068F4803109F082C03C +:104100008091CC0283FB222720F991E0922790FB3B +:1041100083F953C0893109F46EC08B3109F072C044 +:104120008091CC0281FB222720F991E0922790FB1D +:1041300081F943C0883309F45EC050F4893209F430 +:104140005CC0853309F459C0873209F456C05AC09F +:10415000833409F452C028F48A3308F453C08953D5 +:1041600037C0883409F04EC00E94C0140FEF13ED21 +:1041700020E3015010402040E1F700C000000E9401 +:10418000821B39C09091CC02892F8095817080FB71 +:1041900090F929F0966098609093CC0234C0997F92 +:1041A000977F9093CC0227C08091CC0282FB22277C +:1041B00020F991E0922790FB82F98093CC02992319 +:1041C000D1F08091CC0281608093CC0214C08D51DB +:1041D00041E050E060E070E08A019B0104C0000F04 +:1041E000111F221F331F8A95D2F7C901B8010E94FF +:1041F00080180E94C01481E006C061E070E080E099 +:1042000090E0F5CF80E01F910F91089580E0089530 +:1042100080E008958E518A3030F4E82FF0E0E75CBA +:10422000FE4F8081089580E00895CF93C82F80913C +:10423000DC02813069F018F08230C9F183C0E0916E +:104240000C01F0910D018081823209F07DC007C020 +:10425000E0910C01F0910D018081823261F48C2F8C +:104260000E940621811104C08C2F0E9455201DC080 +:1042700081E090E01AC08C2F0E940821811114C0A7 +:10428000C43179F048F4CB3079F0C03109F060C026 +:1042900082E08093DC0208C0C93219F0C83321F0F3 +:1042A00057C01092DC0254C081E0817053C0C93203 +:1042B00089F118F5C43171F1B0F4C73009F046C086 +:1042C0008EE18093130182E3809312018AE0809350 +:1042D000110184E18093100188E080930F0188E24E +:1042E00080930E0133C082EE8C0F863078F58C2FD0 +:1042F0000E940A218093DB0229C0CE34E9F020F429 +:10430000CB3421F56AE013C0C13579F0C235F1F440 +:1043100061E00DC08091DB02882319F01092DB026E +:1043200015C081E08093DC0215C061E006C0809179 +:10433000DB020E948F1F0AC06AE08091DB020E94AC +:10434000052004C01092DC0280E004C081E002C0BD +:1043500080E0ABCFCF9108950E94341D811102C03F +:104360000E94151D0E945A1D8093EC0280FF02C01E +:10437000869501C080E00C9402038091EC02982F96 +:104380009695292F30E0233031054CF49F5F990F2B +:104390008170892B81608093EC020E945E1D809168 +:1043A000EC0286950C9402038091EC02982F96956E +:1043B00091F09158990F8170892B8093EC028E7F38 +:1043C00091E009F490E08091EC0290FB80F98093F9 +:1043D000EC020E945E1D8091EC0286950C94020313 +:1043E0008091EC02982F909590FB80F98093EC02DD +:1043F0000E945E1D8091EC0280FF02C0869501C084 +:1044000080E00C9402039091EC02892F86958F5FD7 +:104410008F779170843028F4880F892B8093EC0279 +:1044200002C09093EC028091EC028E7F91E009F43F +:1044300090E08091EC0290FB80F98093EC020E9466 +:104440005E1D8091EC0286950C9402032091EC0293 +:10445000922F96958927982F990F822F8170892BFB +:104460008093EC028E7F91E009F490E08091EC0261 +:1044700090FB80F98093EC020E945E1D8091EC021B +:1044800086950C94020304D06894B1118DC00895F0 +:1044900070D088F09F5790F0B92F9927B751A0F0AE +:1044A000D1F0660F771F881F991F1AF0BA95C9F7C8 +:1044B00012C0B13081F077D0B1E0089574C0672F99 +:1044C000782F8827B85F39F0B93FCCF38695779578 +:1044D0006795B395D9F73EF4909580957095619561 +:1044E0007F4F8F4F9F4F0895E89409C097FB3EF48C +:1044F00090958095709561957F4F8F4F9F4F992331 +:10450000A9F0F92F96E9BB279395F69587957795AE +:104510006795B795F111F8CFFAF4BB0F11F460FF6E +:104520001BC06F5F7F4F8F4F9F4F16C0882311F0C6 +:1045300096E911C0772321F09EE8872F762F05C0DA +:10454000662371F096E8862F70E060E02AF09A9575 +:10455000660F771F881FDAF7880F9695879597F96A +:10456000089557FD9058440F551F59F05F3F71F063 +:104570004795880F97FB991F61F09F3F79F08795CA +:104580000895121613061406551FF2CF4695F1DF53 +:1045900008C0161617061806991FF1CF86957105E3 +:1045A000610508940895E894BB2766277727CB0117 +:1045B00097F908950BD078C069D028F06ED018F024 +:1045C000952309F05AC05FC01124EECFCADFA0F3D3 +:1045D000959FD1F3950F50E0551F629FF001729F98 +:1045E000BB27F00DB11D639FAA27F00DB11DAA1FB7 +:1045F000649F6627B00DA11D661F829F2227B00D04 +:10460000A11D621F739FB00DA11D621F839FA00D8E +:10461000611D221F749F3327A00D611D231F849FDE +:10462000600D211D822F762F6A2F11249F57504035 +:104630008AF0E1F088234AF0EE0FFF1FBB1F661FD0 +:10464000771F881F91505040A9F79E3F510570F089 +:1046500014C0AACF5F3FECF3983EDCF386957795C4 +:104660006795B795F795E7959F5FC1F7FE2B880F84 +:10467000911D9695879597F9089597F99F6780E81A +:1046800070E060E008959FEF80EC089500240A94A4 +:104690001616170618060906089500240A9412161D +:1046A0001306140605060895092E0394000C11F450 +:1046B000882352F0BB0F40F4BF2B11F460FF04C0FD +:1046C0006F5F7F4F8F4F9F4F0895991B79E004C014 +:1046D000991F961708F0961B881F7A95C9F7809541 +:1046E000089597FB072E16F4009407D077FD09D0A4 +:1046F0000E948B2307FC05D03EF4909581959F4F37 +:104700000895709561957F4F0895EE0FFF1F0590F6 +:10471000F491E02D0994AA1BBB1B51E107C0AA1F0D +:10472000BB1FA617B70710F0A61BB70B881F991F52 +:104730005A95A9F780959095BC01CD010895F999F6 +:10474000FECF92BD81BDF89A992780B50895A8E162 +:10475000B0E042E050E00C94C723262FF999FECF39 +:1047600092BD81BDF89A019700B4021639F01FBAC4 +:1047700020BD0FB6F894FA9AF99A0FBE08950196E3 +:10478000272F0E94AE230C94AD23DC01CB01FC014A +:10479000F999FECF06C0F2BDE1BDF89A319600B49A +:0E47A0000D9241505040B8F70895F894FFCFA5 +:1047AE00FFF9072309DF08AB08FC0701C10228083F +:1047BE00140A321E4F7953636676496959091929CD +:1047CE00030F1F5F43404D36201405C7049104713B +:1047DE0004FD0316042F0448040102030405060712 +:0447EE0008090000B6 +:00000001FF diff --git a/keyboards/jd45/keymaps/justin/keymap.c b/keyboards/jd45/keymaps/justin/keymap.c new file mode 100644 index 000000000..f261b5463 --- /dev/null +++ b/keyboards/jd45/keymaps/justin/keymap.c @@ -0,0 +1,101 @@ +#include "jd45.h" +#include "backlight.h" + +/* JD45 keymap definition macro + */ +#define KEYMAP( \ + K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, K13, \ + K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, \ + K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, K37, \ + K38, K39, K40, K41, K42, K43, K44, K45, K46, K47 \ +) { \ + { KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K10, KC_##K11, KC_##K12, KC_##K13 }, \ + { KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_NO }, \ + { KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_NO }, \ + { KC_##K38, KC_##K39, KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_##K43, KC_NO, KC_##K44, KC_##K45, KC_##K46, KC_##K47, KC_NO } \ +} + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = KEYMAP( + ESC, Q, W, F, P, G, J, L, U, Y, SCLN, QUOT, BSPC, + FN8, A, R, S, T, D, H, N, E, I, O, ENT, + LSFT, Z, X, C, V, B, K, M, COMM, DOT, SLSH, FN6, + FN4, LGUI, FN7, FN2, FN1, SPC, FN5, RALT, FN3, FN0 ), +[1] = KEYMAP( + TRNS, FN10, FN11, FN12, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, UP, DEL, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, HOME, PGUP, LEFT, RGHT, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, END, PGDN, DOWN, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS ), +[2] = KEYMAP( + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, 7, 8, 9, 0, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LBRC, 4, 5, 6, DOT, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, RBRC, 1, 2, 3, BSLS, TRNS, + TRNS,FN29, TRNS, TRNS, TRNS, PAUSE, EQL, MINS, TRNS, TRNS ), +[3] = KEYMAP( + TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS ), +[4] = KEYMAP( + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, 7, 8, 9, 0, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LBRC, 4, 5, 6, DOT, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, RBRC, 1, 2, 3, BSLS, TRNS, + TRNS,FN29, TRNS, TRNS, TRNS, PAUSE, EQL, MINS, TRNS, TRNS ), +}; + +enum macro_id { + PSWD1, + PSWD2, + PSWD3, +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_MINS), + [1] = ACTION_LAYER_MOMENTARY(1), // FN1 + [2] = ACTION_LAYER_MOMENTARY(2), // FN2 + [3] = ACTION_LAYER_MOMENTARY(3), // FN3 + [4] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_GRV), + [5] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_RGUI), + [6] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_CAPS), + [7] = ACTION_LAYER_MODS(4, MOD_LSFT), // FN4 + [8] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_TAB), + + [10] = ACTION_MACRO(PSWD1), + [11] = ACTION_MACRO(PSWD2), + [12] = ACTION_MACRO(PSWD3), + + [29] = ACTION_BACKLIGHT_TOGGLE(), + [30] = ACTION_BACKLIGHT_INCREASE(), + [31] = ACTION_BACKLIGHT_DECREASE() + +}; + +/* + * Macro definition + */ +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch (id) { + case PSWD1: + return (record->event.pressed ? + MACRO( I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END ) : + MACRO_NONE ); + case PSWD2: + return (record->event.pressed ? + MACRO( I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END ) : + MACRO_NONE ); + case PSWD3: + return (record->event.pressed ? + MACRO( I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END ) : + MACRO_NONE ); + //case VOLUP: + // return (record->event.pressed ? + // MACRO( D(VOLU), U(VOLU), END ) : + // MACRO_NONE ); + //case ALT_TAB: + // return (record->event.pressed ? + // MACRO( D(LALT), D(TAB), END ) : + // MACRO( U(TAB), END )); + } + return MACRO_NONE; +} diff --git a/keyboards/kc60/Makefile b/keyboards/kc60/Makefile new file mode 100644 index 000000000..9717b519c --- /dev/null +++ b/keyboards/kc60/Makefile @@ -0,0 +1,76 @@ + + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= yes # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE ?= no # USB Nkey Rollover +BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality +MIDI_ENABLE ?= no # MIDI controls +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE ?= no # Audio output on port C6 + + +ifndef QUANTUM_DIR + include ../../Makefile +endif + diff --git a/keyboards/kc60/README.md b/keyboards/kc60/README.md new file mode 100644 index 000000000..1f03e200e --- /dev/null +++ b/keyboards/kc60/README.md @@ -0,0 +1,27 @@ +KC60 (version 2.0) keyboard firmware +====================== + +## Quantum MK Firmware +For the full Quantum feature list, see [the parent README.md](/README.md). + +## Building +Download or clone the whole firmware and navigate to the keyboards/kc60 folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default +To build with the default keymap, simply run `make`. + +### Other Keymaps +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` in the keymaps folder, and see keymap document (you can find in top README.md) and existent keymap files. + +To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: +``` +$ make KEYMAP=[default|jack|] +``` +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. + +## WS2812 Support +![Image of KC60 with RGB Underglow](keymaps/ws2812/ws2812_example.jpg) + +Build with WS2812 Support by running `make KEYMAP=ws2812`. diff --git a/keyboards/kc60/config.h b/keyboards/kc60/config.h new file mode 100644 index 000000000..91d4e09c2 --- /dev/null +++ b/keyboards/kc60/config.h @@ -0,0 +1,162 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER You +#define PRODUCT kc60v2 +#define DESCRIPTION A custom keyboard + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ + +// Possible pins for columns include: F1 F0 E6 D7 D6 D4 C7 C6 B7 B5 B4 B3 B1 B0 +// Pins for rows include: D0 D1 F6 F7 D5 +// KC60 Version 2 +#define MATRIX_ROW_PINS { D0, D1, F6, F7, D5 } +#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B7, D4, B1, B0, B5, B4, D7, D6, B3 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/kc60/kc60.c b/keyboards/kc60/kc60.c new file mode 100644 index 000000000..0a578b2b8 --- /dev/null +++ b/keyboards/kc60/kc60.c @@ -0,0 +1,111 @@ +#include "kc60.h" + +__attribute__ ((weak)) + void matrix_init_user(void) { + // leave this function blank - it can be defined in a keymap file + }; + +__attribute__ ((weak)) + void matrix_scan_user(void) { + // leave this function blank - it can be defined in a keymap file + } + +__attribute__ ((weak)) + bool process_action_user(keyrecord_t *record) { + // leave this function blank - it can be defined in a keymap file + return true; + } + +__attribute__ ((weak)) + void led_set_user(uint8_t usb_led) { + // leave this function blank - it can be defined in a keymap file + } + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + +#ifdef BACKLIGHT_ENABLE + backlight_init_ports(); +#endif + + matrix_init_user(); +} + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +} + +bool process_action_kb(keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + return process_action_user(record); +} + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + + led_set_user(usb_led); +} + +#ifdef BACKLIGHT_ENABLE +#define CHANNEL OCR1B + +void backlight_init_ports() +{ + + // Setup PB6 as output and output low. + DDRB |= (1<<6); + PORTB &= ~(1<<6); + + // Use full 16-bit resolution. + ICR1 = 0xFFFF; + + // I could write a wall of text here to explain... but TL;DW + // Go read the ATmega32u4 datasheet. + // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on + + // Pin PB7 = OCR1C (Timer 1, Channel C) + // Compare Output Mode = Clear on compare match, Channel C = COM1B1=1 COM1C0=0 + // (i.e. start high, go low when counter matches.) + // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0 + // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1 + + TCCR1A = _BV(COM1B1) | _BV(WGM11); // = 0b00001010; + TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; + + backlight_init(); +} + +void backlight_set(uint8_t level) +{ + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB6)); + + if ( level == 0 ) + { + // Turn off PWM control on PB6, revert to output low. + TCCR1A &= ~(_BV(COM1B1)); + CHANNEL = 0x0; + } + else if ( level == BACKLIGHT_LEVELS) + { + // Turn on PWM control of PB6 + TCCR1A |= _BV(COM1B1); + // Set the brightness + CHANNEL = 0xFFFF; + } + else + { + // Turn on PWM control of PB6 + TCCR1A |= _BV(COM1B1); + // Set the brightness + CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); + } +} + +#endif diff --git a/keyboards/kc60/kc60.h b/keyboards/kc60/kc60.h new file mode 100644 index 000000000..a54edfef4 --- /dev/null +++ b/keyboards/kc60/kc60.h @@ -0,0 +1,36 @@ +#ifndef KC60_H +#define KC60_H + +#include "matrix.h" +#include "keymap.h" +#ifdef BACKLIGHT_ENABLE +#include "backlight.h" +#endif +#include +#include + +// This a shortcut to help you visually see your layout. +// The first section contains all of the arguements +// The second converts the arguments into a multi-dimensional array +#define KEYMAP( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K41, K42, K45, K4A, K4B, K4C, K4D \ + ) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ + { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, KC_NO,K4A, K4B, K4C, K4D } \ +} + +void matrix_init_user(void); +void matrix_scan_user(void); +bool process_action_user(keyrecord_t *record); + +void led_set_user(uint8_t usb_led); +void backlight_init_ports(void); + +#endif diff --git a/keyboards/kc60/keymaps/default/compiled.hex b/keyboards/kc60/keymaps/default/compiled.hex new file mode 100644 index 000000000..c8233506d --- /dev/null +++ b/keyboards/kc60/keymaps/default/compiled.hex @@ -0,0 +1,1451 @@ +:100000000C9472060C94B6060C94B6060C94B606C4 +:100010000C94B6060C94B6060C94B6060C94B60670 +:100020000C94B6060C94B6060C94AB110C947D128D +:100030000C9454200C94B6060C94B6060C94B60698 +:100040000C94B6060C94B6060C94B6060C94B60640 +:100050000C94B6060C94BB200C94B6060C94B60611 +:100060000C94B6060C94B6060C94B6060C94B60620 +:100070000C94B6060C94B6060C94B6060C94B60610 +:100080000C94B6060C94B6060C94B6060C94B60600 +:100090000C94B6060C94B6060C94B6060C94B606F0 +:1000A0000C94B6060C94B6060C94B606E212041331 +:1000B000EF130413EF1346136913EF13BE13D11399 +:1000C0001A171A17491749178917AB17FA18FA1888 +:1000D000B617FA185D185D18C718CF18FA18F51872 +:1000E0006A186A186A186A186A186A186A186A1800 +:1000F0006A186A186A186A186A186A186A186A18F0 +:100100007A188A1891189818A21829001E001F0042 +:1001100020002100220023002400250026002700C3 +:100120002D002E002A002B0014001A0008001500D4 +:1001300017001C0018000C00120013002F003000E4 +:100140003100390004001600070009000A000B0006 +:100150000D000E000F003300340000002800E10005 +:1001600000001D001B000600190005001100100012 +:100170003600370038000000E500E000E200E30050 +:10018000000000002C000000000000000000E7005C +:10019000E600E40000500A44454255473A20656EA7 +:1001A00061626C65642E0A005374617465206F6629 +:1001B00020726F772025583A2025303136620A00A8 +:1001C00048756D616E2D7265616461626C65206D4C +:1001D00061747269782073746174653A0D0A004421 +:1001E00065626F756E63696E672064656C61792006 +:1001F00072656D61696E696E673A2025580A005B09 +:10020000735D004B6579626F617264207374617213 +:10021000742E0A005B575D005B535D005B525D000E +:100220005B445D005B435D000E036B0063003600C2 +:100230003000760032000000080359006F0075009E +:1002400000000403090409027400040100A0FA0973 +:1002500004000001030101000921110100012240F5 +:10026000000705810308000A0904010001030102D7 +:1002700000092111010001224D0007058203080039 +:100280000A09040200010300000009211101000114 +:100290002236000705830308000A0904030002034D +:1002A000000000092111010001222000070584033C +:1002B00020000107050403200001120110010000C5 +:1002C0000008EDFE60600100010200010631FF0937 +:1002D00074A1010975150025FF9520750881020993 +:1002E00076150025FF952075089102C0050109804B +:1002F000A101850216010026B7001A01002AB700E5 +:10030000751095018100C0050C0901A10185031636 +:100310000100269C021A01002A9C02751095018199 +:1003200000C005010902A1010901A1000509190187 +:1003300029051500250195057501810295017503B3 +:1003400081010501093009311581257F9502750864 +:10035000810609381581257F950175088106050CF0 +:100360000A38021581257F950175088106C0C005F0 +:10037000010906A101050719E029E71500250195E6 +:100380000875018102950175088101050819012987 +:1003900005950575019102950175039101050719F0 +:1003A0000029FF150026FF00950675088100C00A88 +:1003B000002530325820006B6579626F6172645F8E +:1003C0007265706F72743A20004B6579626F61726A +:1003D00064204C4544732073746174653A20257819 +:1003E0000A00646F6E652E0A00626F6F676D616749 +:1003F0006963207363616E3A202E2E2E2000290A35 +:10040000002575002F002575005D2800256400205B +:1004100000256400200025640020002564007C0085 +:1004200025303258006D6F7573656B6579205B629E +:10043000746E7C782079207620685D287265702F34 +:1004400061636C293A205B006D6B5F776865656C52 +:100450005F74696D655F746F5F6D6178203D202505 +:10046000640A006D6B5F776865656C5F6D61785FCE +:100470007370656564203D2025640A006D6B5F74B0 +:10048000696D655F746F5F6D6178203D2025640A3A +:10049000006D6B5F6D61785F7370656564203D20F2 +:1004A00025640A006D6B5F696E74657276616C20FD +:1004B0003D2025640A006D6B5F64656C6179203DA9 +:1004C0002025640A006D6B5F776865656C5F7469F1 +:1004D0006D655F746F5F6D6178203D2025640A0053 +:1004E0006D6B5F776865656C5F6D61785F73706574 +:1004F0006564203D2025640A006D6B5F74696D653D +:100500005F746F5F6D6178203D2025640A006D6B1C +:100510005F6D61785F7370656564203D2025640AB6 +:10052000006D6B5F696E74657276616C203D20258D +:10053000640A006D6B5F64656C6179203D20256401 +:100540000A000A00257500363A20776865656C5FF9 +:1005500074696D655F746F5F6D61783A20000A00A1 +:10056000257500353A20776865656C5F6D61785F49 +:1005700073706565643A20000A00257500343A20DE +:1005800074696D655F746F5F6D61783A20000A0071 +:10059000257500333A206D61785F73706565643A44 +:1005A00020000A00257500323A20696E7465727663 +:1005B000616C286D73293A20000A00257500313AD4 +:1005C0002064656C6179282A31306D73293A2000E6 +:1005D0000A092D2056616C756573202D0A004D3E69 +:1005E000004D25643E20003F0073657420646566FD +:1005F00061756C740A00433E20007768657265205F +:1006000064656C74613A20637572736F723D256422 +:100610002C20776865656C3D25640A536565206804 +:100620007474703A2F2F656E2E77696B69706564EC +:1006300069612E6F72672F77696B692F4D6F7573C4 +:10064000655F6B6579730A000A092D204D6F75731C +:10065000656B6579202D0A4553432F713A097175F1 +:1006600069740A313A0964656C6179282A31306D00 +:1006700073290A323A09696E74657276616C286D65 +:1006800073290A333A096D61785F73706565640A8E +:10069000343A0974696D655F746F5F6D61780A350E +:1006A0003A09776865656C5F6D61785F7370656541 +:1006B000640A363A09776865656C5F74696D655FD1 +:1006C000746F5F6D61780A0A703A097072696E74AE +:1006D0002076616C7565730A643A097365742064E9 +:1006E000656661756C74730A75703A092B310A641A +:1006F0006F776E3A092D310A706775703A092B31A0 +:10070000300A7067646F776E3A092D31300A0A73C8 +:1007100070656564203D2064656C7461202A206DDD +:1007200061785F7370656564202A20287265706542 +:100730006174202F2074696D655F746F5F6D6178DF +:10074000290A003F004D3E2000433E20004C256416 +:100750000A0074696D65725F636F756E743A202567 +:1007600030346C580A006B6579626F6172645F693E +:10077000646C653A2025580A006B6579626F617276 +:10078000645F70726F746F636F6C3A2025580A0053 +:10079000686F73745F6B6579626F6172645F6C65BB +:1007A000647328293A2025580A000A092D20537419 +:1007B00061747573202D0A004743433A20342E3864 +:1007C0002E31204156522D4C4942433A20312E3889 +:1007D0002E3073766E204156525F415243483A2084 +:1007E000617672350A004F5054494F4E533A204CAF +:1007F00055464120424F4F544D41474943204D4FAC +:100800005553454B45592045585452414B45592065 +:10081000434F4E534F4C4520434F4D4D414E442086 +:10082000343039360A004255494C443A203865384C +:1008300039313730202831333A32333A3434204A90 +:10084000756E2031342032303136290A0056494441 +:100850003A2030784645454428596F75292050493B +:10086000443A20307836303630286B633630763272 +:1008700029205645523A203078303030310A004431 +:100880004553433A204120637573746F6D206B6547 +:1008900079626F6172640A000A092D2056657273CD +:1008A000696F6E202D0A000A092D20436F6E736F49 +:1008B0006C65202D0A4553432F713A09717569748F +:1008C0000A6D3A096D6F7573656B65790A000A09DF +:1008D0002D204D61676963202D0A443A0944656201 +:1008E0007567204D65737361676520546F67676C2A +:1008F000650A583A094D61747269782044656275D9 +:1009000067204D6F646520546F67676C65202D20EC +:1009100053686F77206B65797072657373657320A8 +:10092000696E206D617472697820677269640A4B20 +:100930003A094B6579626F6172642044656275673C +:1009400020546F67676C65202D2053686F77206B8C +:1009500065797072657373207265706F72740A4D79 +:100960003A094465627567204D6F75736520546F51 +:1009700067676C650A563A0956657273696F6E0A45 +:10098000533A095374617475730A433A09416374A5 +:10099000697661746520436F6E736F6C65204D6F6F +:1009A00064650A46312D4631303A095377697463DC +:1009B0006820746F204C6179657220302D392028B1 +:1009C000463130203D204C30290A302D393A095328 +:1009D000776974636820746F204C61796572203088 +:1009E0002D390A4553433A09537769746368207473 +:1009F0006F204C6179657220302028616C746572BB +:100A00006E617465206B65792031290A4752415621 +:100A1000453A0953776974636820746F204C617993 +:100A2000657220302028616C7465726E6174652077 +:100A30006B65792032290A50415553453A094A7568 +:100A40006D7020746F20426F6F746C6F616465729B +:100A500020285265736574290A453A095072696EF7 +:100A60007420454550524F4D2053657474696E672C +:100A7000730A000A002575002E6C6576656C3A20B5 +:100A8000000A002575002E656E61626C653A2000D3 +:100A90000A0025303258006261636B6C69676874C4 +:100AA0005F636F6E6669672E7261773A20000A0095 +:100AB0002575002E6E6B726F3A20000A00257500B6 +:100AC0002E737761705F6261636B736C6173685FD3 +:100AD0006261636B73706163653A20000A0025757B +:100AE000002E737761705F67726176655F6573630F +:100AF0003A20000A002575002E6E6F5F6775693A0F +:100B000020000A002575002E737761705F72616C9A +:100B1000745F726775693A20000A002575002E73AC +:100B20007761705F6C616C745F6C6775693A200007 +:100B30000A002575002E636170736C6F636B5F74C0 +:100B40006F5F636F6E74726F6C3A20000A002575D8 +:100B5000002E737761705F636F6E74726F6C5F638A +:100B60006170736C6F636B3A20000A002530325855 +:100B7000006B65796D61705F636F6E6669672E7279 +:100B800061773A20000A002575002E6D6F75736538 +:100B90003A20000A002575002E6B6579626F61723C +:100BA000643A20000A002575002E6D617472697820 +:100BB0003A20000A002575002E656E61626C653A68 +:100BC00020000A00253032580064656275675F6353 +:100BD0006F6E6669672E7261773A20000A0025758C +:100BE0000064656661756C745F6C617965723A204A +:100BF000003F000A6D6F7573653A206F66660A00E4 +:100C00000A6D6F7573653A206F6E0A000A6B65791D +:100C1000626F6172643A206F66660A000A6B6579DA +:100C2000626F6172643A206F6E0A000A6D617472BD +:100C300069783A206F66660A000A6D617472697895 +:100C40003A206F6E0A000A64656275673A206F6623 +:100C5000660A000A64656275673A206F6E0A000AC8 +:100C60000A4A756D70696E6720746F20626F6F74C9 +:100C70006C6F616465722E2E2E2000433E2000654D +:100C800065636F6E6669673A0A006261636B6C69DF +:100C900067687420737465703A2025750A00626174 +:100CA000636B6C6967687420746F67676C653A2062 +:100CB00025750A006261636B6C69676874206465FE +:100CC0006372656173653A2025750A006261636B22 +:100CD0006C6967687420696E6372656173653A2038 +:100CE00025750A0011241FBECFEFDAE0DEBFCDBFAD +:100CF00004B603FE24C08091F3019091F401A09109 +:100D0000F501B091F6018730904BA740B04BB9F494 +:100D10001092F3011092F4011092F5011092F60175 +:100D200014BE84B7877F84BF88E10FB6F8948093A0 +:100D30006000109260000FBEE0E0F8E3099511E05A +:100D4000A0E0B1E0EEE4FAE502C005900D92A63411 +:100D5000B107D9F721E0A6E4B1E001C01D92A33F9D +:100D6000B207E1F70E94EB0E0C94252D0C940000C5 +:100D7000FF93EF93E0914601F0914701309709F01E +:100D80000995EF91FF910895FC018591803011F054 +:100D9000EFDFFBCF0895FF27E0E230E247FF0CC012 +:100DA000419597FF09C0EDE260957095809590950B +:100DB000611D711D811D911D27FF02C0219530E32A +:100DC00050E2AA27660F771F881F991FAA1FA41732 +:100DD00010F0A41B63955A95A9F7AA3008F0A95FF3 +:100DE000A05DAF93F395611571058105910541F7FC +:100DF000ED3211F4EF93F395F21718F43F93F39556 +:100E0000FBCF8F91B5DFFA95E1F70895E991F9915C +:100E10008591803021F0853219F0AADFF9CF08954D +:100E200020E0E89455915532C1F3503311F46894A1 +:100E300055915A3348F4505390F3220F022E220F4B +:100E4000220F200D250FF4CF0EF421958991999151 +:100E5000533619F3533729F1533559F1BC0188271B +:100E60009927E8945C3621F4899199916894559179 +:100E7000543639F446EF7EF077FF0DC08FEF9FEFC9 +:100E80000AC055374AE039F0583540E121F0523672 +:100E900042E009F00895FF93EF937DDFEF91FF911A +:100EA000B7CFFF93EF93FC0181918030B9F360DFFE +:100EB000FBCFFF93EF9368DFF1CFDF93CF93CDB7F5 +:100EC000DEB72596A3DFCF91DF91089508950895A9 +:100ED00081E0089508950C9467070C9468070C94BA +:100EE0006A07269A2E988FEF9FEF90938700809342 +:100EF000860082E28093800089E1809381000C94D7 +:100F0000AF2A0E9471070C9466072E9881110AC0BF +:100F1000809180008F7D8093800010928B001092D2 +:100F20008A000895833041F480918000806280932C +:100F300080008FEF9FEF12C090918000906290939D +:100F4000800023E030E0281B3109220F331F8FEF90 +:100F50009FEF02C0969587952A95E2F790938B00B4 +:100F600080938A00089580E090E0089581E00895DC +:100F70000C94B60708950F931F93CF93DF93EC0162 +:100F800008811981C8010E94931EB8010E9454086B +:100F90008C01BE010E94B807882309F47AC08A81B7 +:100FA0008823C9F18091530181111EC0043180E56D +:100FB000180789F50E94BA0781E0809353010E94C7 +:100FC0008620909352018093510110924A01109211 +:100FD0004C0110924B0110924E0110924D01109253 +:100FE000500110924F0155C08091510190915201D2 +:100FF0000E949220883C910570F480914A01E82F6C +:10100000F0E0EE0FFF1FE55BFE4F118300838F5F63 +:1010100080934A013EC0043880E5180721F0053866 +:101020001045A1F02AC08A81882321F0109248013E +:1010300082E012C080914801811106C086E20E94C0 +:10104000B81586E20E94801682E014C08A81882347 +:1010500031F01092490180E20E94CF161AC08091AF +:101060004901811106C087E20E94B81587E20E94FB +:10107000801680E20E94D6160CC081E08093480161 +:1010800080934901CE01DF91CF911F910F910C9474 +:101090006D0780E0DF91CF911F910F9108950C941F +:1010A00081070C946B0708959EE0799FF00111244D +:1010B00096E4899FE00DF11D1124E60FF11DEE0F5E +:1010C000FF1FE65FFE4F859194910895880F991F49 +:1010D00086579040FC01859194910895880F991F3F +:1010E000865F9E4FFC018591949108950F931F9305 +:1010F000CF93DF93EC01811521E39207A0F58115D1 +:1011000030E3930708F0D7C0883E9105D8F4803EBD +:10111000910508F06FC0883A910578F4853A9105F9 +:1011200008F06AC08130910509F4F8C108F4F3C1F0 +:101130008430910508F05EC0EEC18B3B910508F448 +:1011400066C0E9C1C11580E2D80708F0AFC0C1157B +:1011500091E0D90708F04EC0C03FD10508F4DBC1CB +:101160008E0110651CC2803820E5920700F580379B +:1011700030E5930708F0A3C0C11580E5D80709F44E +:10118000ACC050F4CE01905480319F4008F0C3C1F0 +:101190008E011F70106A03C2C13030E5D30709F415 +:1011A000AAC0C43180E5D80708F4AFC0B4C1C338C1 +:1011B00090E5D90709F48EC050F4C13830E5D30763 +:1011C00009F482C008F083C000E011EDE8C1C0312D +:1011D00091E5D90708F49FC1C11527E5D20708F4A6 +:1011E00036C1CE0190578115904108F094C18E010F +:1011F0001F708FC18E01D3C1853A910509F491C149 +:10120000863A910509F490C103E810E4C8C1883A10 +:10121000910509F48CC1893A910509F48BC18A3A88 +:10122000910509F48AC18B3A910509F489C18C3A78 +:10123000910509F488C18D3A910509F487C1803B75 +:10124000910509F486C18E3A910509F485C18F3A5A +:10125000910509F484C1813B910509F483C1823B66 +:10126000910509F482C1833B910509F481C1843B56 +:10127000910509F480C1853B910509F47FC1863B46 +:10128000910509F47EC1873B910509F47DC1883B36 +:10129000910509F47CC1893B910509F47BC18A3B26 +:1012A000910509F07AC10AE216E479C1CE019F7076 +:1012B0000E946E0875C18C011127106C70C18C01E1 +:1012C0000F701127146D6BC100E010ED68C100E0D4 +:1012D00012ED65C100E013ED62C10E9468198FEF45 +:1012E00094E32CE0815090402040E1F700C00000E2 +:1012F0000E94E02054C186E991E00E94C4068091DA +:10130000D30181608093D3014AC10E94932281114D +:1013100002C00E9474220E94B02290E09093F201D9 +:101320008093F101C23030E5D30721F48091F101BF +:10133000816086C0C43080E5D80721F48091F10136 +:1013400082607EC0C63090E5D90721F48091F1011A +:10135000846076C0C83020E5D20719F48091F1018D +:1013600027C0CA3030E5D30721F48091F1018061B4 +:1013700067C0CC3080E5D80721F48091F10180620C +:101380005FC0CE3090E5D90721F48091F1018064EF +:1013900057C0C03120E5D20721F48091F101806867 +:1013A0004FC0C23130E5D30729F48091F101846048 +:1013B000886046C0C33080E5D80721F48091F101F0 +:1013C0008E7F3EC0C53090E5D90721F48091F101B0 +:1013D0008D7F36C0C73020E5D20721F48091F1011E +:1013E0008B7F2EC0C93030E5D30719F48091F1010D +:1013F00026C0CB3080E5D80721F48091F1018F7EA3 +:101400001FC0CD3090E5D90721F48091F1018F7D87 +:1014100017C0CF3020E5D20721F48091F1018F7BF6 +:101420000FC0C13130E5D30721F48091F1018F77EE +:1014300007C0C331D04531F48091F1018B7F877FA4 +:101440008093F1018091F1010E94B422A8C08D2FF8 +:1014500099278F70992781309105E9F48E010370E7 +:1014600011279C0102C0220F331F0A95E2F7890160 +:101470001C68CE01E4E0880F991FEA95E1F7882700 +:101480009370082B192BF3E0CC0FDD1FFA95E1F7D1 +:10149000C076DD272CC08230910529F41C2F00274F +:1014A000016F106A7CC08330910561F4CE018370B6 +:1014B000992701E010E002C0000F111F8A95E2F7A2 +:1014C0001C680EC084309105A9F4CE018370992761 +:1014D00001E010E002C0000F111F8A95E2F71A68C0 +:1014E00063E0CC0FDD1F6A95E1F7C07ED7700C2B4F +:1014F0001D2B55C08530910529F41C2F0027046F42 +:10150000106A4DC0069709F04AC0CF71DD271C2F25 +:101510000027106244C000E010E041C001E010E08C +:101520003EC001E810E43BC002E810E438C002EE1F +:1015300014E435C009EE14E432C00AEE14E42FC0FE +:1015400005EB14E42CC006EB14E429C007EB14E40B +:1015500026C00CEC14E423C00DEC14E420C003E816 +:1015600015E41DC00AE815E41AC002E915E417C025 +:1015700004E915E414C001E216E411C003E216E424 +:101580000EC004E216E40BC005E216E408C006E251 +:1015900016E405C007E216E402C000E014E4C80146 +:1015A000DF91CF911F910F9108959EE0799FF001F7 +:1015B000112496E4899FE00DF11D1124E60FF11D21 +:1015C000EE0FFF1FE65FFE4F85919491803E9105DF +:1015D000E0F4803C910558F58133910509F46FC022 +:1015E00048F48932910509F463C08A32910509F4FF +:1015F0006DC072C089339105E9F082389105D1F050 +:101600008533910509F44DC067C0833E910581F192 +:1016100038F4803E9105B9F0823E9105D9F05CC066 +:10162000863E910561F1873E9105A1F155C00E946A +:10163000660808952091F10120FD02C021FF4CC0F1 +:1016400080EE90E049C08091F10180FFF9CF89E3FD +:1016500090E042C08091F10182FF0EC08091F101C3 +:1016600084FF03C080E090E037C083EE90E034C098 +:101670008091F10182FFF2CF82EE90E02DC0809147 +:10168000F10183FF0BC08091F10184FDEBCF87EE68 +:1016900090E022C08091F10183FFF5CF86EE90E0CB +:1016A0001BC08091F10185FF07C089E290E014C062 +:1016B0008091F10185FFF9CF85E390E00DC0809125 +:1016C000F10186FF07C08AE290E006C08091F10137 +:1016D00086FFF9CF81E390E00E94760808950C948C +:1016E0006F07E82FF0E0EE5DFE4F8081E82FEF708E +:1016F000F0E0282F22952F7081E090E0022E01C0AB +:10170000880F0A94EAF780A308950F931F93CF934D +:10171000DF9385B7806885BF85B7806885BFC4E0E3 +:10172000D0E001E010E0FE01EE5DFE4F8081E82F89 +:10173000EF70F0E021A182958F70A80102C0440FE4 +:10174000551F8A95E2F7242B21A38C2F0E94710B41 +:10175000219748F78DE090E041E050E0FC01EC5E1D +:10176000FE4F2081E22FEF70F0E062A122952F70F2 +:10177000DA0102C0AA0FBB1F2A95E2F76A2B62A307 +:10178000019760F7DF91CF911F910F910C944F0853 +:10179000EF92FF920F931F93CF93DF93CEE5D1E0AB +:1017A00084E0E82E01E010E095E0F92E8E2D0E94F5 +:1017B000710B2DE030E040E050E0F901EC5EFE4FAF +:1017C0008081E82FEF70F0E060A170E082958F706B +:1017D00002C0759567958A95E2F760FD09C0B8016A +:1017E000022E02C0660F771F0A94E2F7462B572B92 +:1017F0002150310910F73A912A912417350721F029 +:1018000059834883F09200018E2D0E94710BEA9457 +:101810009FEFE912CBCF2091000127FD2EC08091D0 +:10182000D30180FF10C0822F992787FD90959F9349 +:101830002F938FED91E09F938F930E945D070F9000 +:101840000F900F900F9080910001815080930001C4 +:1018500087FD07C08FE99FE00197F1F700C0000006 +:101860000CC0A8E6B1E0EEE5F1E0929182919E9382 +:101870008E9391E0E435F907C1F70E94510881E0A9 +:10188000DF91CF911F910F91FF90EF900895E82F76 +:10189000F0E0EE0FFF1FE25AFE4F80819181089524 +:1018A000EF92FF920F931F93CF93DF938091D30119 +:1018B00080FF04C080EC91E00E94C4060EE511E0B8 +:1018C000C0E0D0E048EAE42E41E0F42E8091D3015C +:1018D00080FF13C0F801808191810E94F01F9F93C7 +:1018E0008F93DF93CF93FF92EF920E945D070F904B +:1018F0000F900F900F900F900F9021960E5F1F4F3B +:10190000C530D10519F7DF91CF911F910F91FF904D +:10191000EF9008951F93CF93DF93C8E6D1E010E0D6 +:101920009A918A910E94D21F180F81E0CE35D80774 +:10193000B9F7812FDF91CF911F91089580917301A5 +:1019400008959FB7F89410926A019FBF9091E801A3 +:10195000943009F058C09091E9009F702091EC00FC +:1019600020FF02C020E801C020E0292B94E09093E2 +:10197000E9009091EB0090FF43C09091EE0097FF3B +:101980003FC090916801992321F09091E80095FF64 +:1019900037C01092680196E03091E80035FD15C01F +:1019A0003091E801343061F53091EB0035FD28C00D +:1019B000915021F481E08093680122C0EFE9FFE0BB +:1019C0003197F1F700C00000E7CF8093F1008091DC +:1019D000E80085FD0AC08091E80080FFFCCF80917F +:1019E000E8008E778093E80006C08FB7F89491E006 +:1019F00090936A018FBF2F702093E90080E00895D3 +:101A00002F702093E9008FEF0895CF93DF9300D0DC +:101A10001F92CDB7DEB72091E801243019F523E0FD +:101A200029839B838A832093E9008FEF9091E800BC +:101A3000815095FD06C095ED9A95F1F70000811152 +:101A4000F5CF8091E80085FF0DC040E050E063E0F5 +:101A500070E0CE0101960E949E0F8091E8008E7783 +:101A60008093E8000F900F900F90DF91CF91089531 +:101A7000CF93DF9300D01F92CDB7DEB72091E8015E +:101A8000243021F522E029839B838A8383E080939D +:101A9000E9008FEF9091E800815095FD06C095ED2B +:101AA0009A95F1F700008111F5CF8091E80085FF4C +:101AB0000DC040E050E063E070E0CE0101960E946E +:101AC0009E0F8091E8008E778093E8000F900F9032 +:101AD0000F90DF91CF9108952091E8012430F1F427 +:101AE00022E02093E9002FEF3091E800215035FDEE +:101AF00006C035ED3A95F1F700002111F5CF2091A0 +:101B0000E80025FF0BC040E050E065E070E00E9477 +:101B10009E0F8091E8008E778093E8000895CF9320 +:101B2000DF93EC018091E801843039F581E0809306 +:101B3000E9008FEF9091E800815095FD06C095ED8A +:101B40009A95F1F700008111F5CF8091E80085FFAB +:101B500014C040E050E068E070E0CE010E949E0FAB +:101B60008091E8008E778093E80088E0FE01ABE684 +:101B7000B1E001900D928A95E1F7DF91CF91089540 +:101B800084E292E00E94C4068091E701811109C0BD +:101B90000E9430110E948D118091E2008460809338 +:101BA000E200089580E292E00E94C4061092E701EC +:101BB00008958CE192E00C94C40688E192E00C94C4 +:101BC000C40684E192E00E94C4060C9449208091EE +:101BD00069018F5F8093690162E30E94B52C9111C6 +:101BE00035C01092690180916A01882379F1809152 +:101BF000E801843049F58091E9008F709091EC0004 +:101C000090FF02C090E801C090E0982B84E08093A0 +:101C1000E9008091EB0080FF14C08091EE0087FF07 +:101C200010C08091E80085FF03C01092F100F9CF49 +:101C30008091E80080FF05C08091E8008E77809356 +:101C4000E8009F709093E90010926A01089542E0C5 +:101C500061EC81E00E94AA1042E061EC82E00E9407 +:101C6000AA1042E061EC83E00E94AA1042E261EC1B +:101C700084E00C94AA108091EA01833009F453C0E7 +:101C800030F4813071F0823009F48CC008958A30CC +:101C900009F478C08B3009F45EC0893009F09AC02D +:101CA00020C08091E901813A09F094C08091E80058 +:101CB000877F8093E8008091ED019091EE01892B60 +:101CC00021F060E080E090E003C068E08BE691E006 +:101CD00070E00E94E70F8091E8008B778093E80026 +:101CE00008958091E901813209F074C08091ED017D +:101CF0009091EE01892B09F06DC08091E800877FFB +:101D00008093E8008091E80082FD05C08091E801A1 +:101D10008111F8CF5FC08091F100809373018091B1 +:101D2000E8008B7753C08091E901813A09F052C0F5 +:101D30008091ED019091EE01892B09F04BC08091CB +:101D4000E800877F8093E8008091E80080FFFCCF67 +:101D500080910B0136C08091E9018132D9F58091E3 +:101D6000ED019091EE01892BA9F58091E800877F24 +:101D70008093E8000E94DF108091EB0180930B01BB +:101D80000C9468198091E901813221F58091E80075 +:101D9000877F8093E8000E94DF108091EC018093A0 +:101DA000740108958091E901813AA1F48091E800DD +:101DB000877F8093E8008091E80080FFFCCF8091CE +:101DC00074018093F1008091E8008E778093E800A1 +:101DD0000C94DF10089584B7877F84BF88E10FB625 +:101DE000F89480936000109260000FBE80E88093AA +:101DF0006100109261000E94B2140E9430110E9492 +:101E00008D118091E20084608093E20081EA9CE081 +:101E10000E94CD1F78940E9407140E94B41481E0A0 +:101E200091E00E94241483E092E00E94C406809115 +:101E3000E801853089F48FEF91E00E94C4060E948A +:101E40000A208091E601882391F30E94382088239C +:101E500071F30E94880FEBCF0E94DA14E8CF292F8C +:101E6000332723303105A9F06CF42130310509F412 +:101E700042C02230310509F043C084E790E026E4F7 +:101E800032E042C021323105C9F02232310519F168 +:101E900037C099278130910541F08230910541F09A +:101EA000892B71F5E2E4F2E005C0E8E3F2E002C05C +:101EB000E8E2F2E0849190E09F0126C0643000F5F2 +:101EC000E62FF0E0EE0FFF1FED5CFE4F2081318129 +:101ED00089E090E019C0643098F4E62FF0E0DF016B +:101EE000AA0FBB1FA55DBE4F2D913C91E95DFE4F32 +:101EF000808190E009C082E190E02AEB32E004C0EA +:101F000080E090E020E030E0FA0131832083089502 +:101F100080E189BD82E189BD09B400FEFDCF8091D9 +:101F2000D8008F7D8093D8008091E00082608093FC +:101F3000E0008091E00081FDFCCF0895CF92DF9218 +:101F4000EF92FF920F931F93CF93DF937C018B014E +:101F5000EA010E940011811131C0209731F088817F +:101F60009981081B190BE80EF91EC12CD12C011503 +:101F7000110519F18091E80085FD14C08091E800F9 +:101F80008E778093E800209741F0888199818C0DAD +:101F90009D1D9983888385E011C00E9400118823CC +:101FA00031F30CC0F70181917F018093F100015062 +:101FB0001109FFEFCF1ADF0ADACF80E0DF91CF916E +:101FC0001F910F91FF90EF90DF90CF900895209197 +:101FD000EF013091F0012617370748F061157105C0 +:101FE00039F42091E8002E772093E80001C0B90170 +:101FF000FC0120E061157105B9F18091E8018823A9 +:1020000009F440C0853009F43FC08091E80083FDA9 +:102010003DC08091E80082FF06C08091E80082FF09 +:1020200026C080E008958091E80080FFE3CF2091F2 +:10203000F3008091F20090E0922B6115710551F050 +:102040008830910538F421912093F1006150710995 +:102050000196F3CF21E0089709F020E08091E80095 +:102060008E778093E800C6CF2111C7CFD6CF80915D +:10207000E801882339F0853039F08091E80083FF4A +:10208000CCCF04C082E0089583E0089581E00895F4 +:102090002091EF013091F0012617370748F06115C4 +:1020A000710539F42091E8002E772093E80001C0F3 +:1020B000B901FC0120E061157105C1F18091E801D1 +:1020C000882309F441C0853009F440C08091E800BC +:1020D00083FD3EC08091E80082FF06C08091E80049 +:1020E00082FF27C080E008958091E80080FFE3CF61 +:1020F0002091F3008091F20090E0922B6115710520 +:1021000059F08830910540F424912093F1003196E4 +:10211000615071090196F2CF21E0089709F020E0A3 +:102120008091E8008E778093E800C5CF2111C6CF5B +:10213000D5CF8091E801882339F0853039F080913E +:10214000E80083FFCBCF04C082E0089583E00895C8 +:1021500081E00895982F973058F59093E9009817EB +:1021600039F07091EC002091ED005091F00003C027 +:10217000242F762F50E021FF19C03091EB003E7FD5 +:102180003093EB003091ED003D7F3093ED003091C6 +:10219000EB0031603093EB007093EC002093ED0086 +:1021A0005093F0002091EE0027FF07C09F5FD3CF30 +:1021B0008F708093E90081E0089580E00895809118 +:1021C000E90187FD05C08091E80080FF0EC012C0C4 +:1021D0008091E80082FD05C08091E8018111F8CF6F +:1021E00008958091E8008B7708C08091E801811103 +:1021F000EACF08958091E8008E778093E8000895F3 +:102200008091E4009091E50045E62091EC0020FFEC +:1022100021C02091E80020FD21C02091E801222367 +:1022200089F0253089F02091EB0025FD0FC0209129 +:10223000E4003091E5002817390739F3415041F0A7 +:10224000C901E3CF82E0089583E0089581E0089515 +:1022500084E008952091E80022FFDFCF80E0089518 +:102260000E949E110E94A611E0EEF0E08081816044 +:102270008083E8EDF0E080818F77808319BCA7ED43 +:10228000B0E08C918E7F8C9380818F7E80831092C2 +:10229000E70108950F931F93CF93DF930E949E1140 +:1022A0000E94A611C8EDD0E088818F77888388814D +:1022B0008068888388818F7D888319BC1092E801AB +:1022C0001092E4011092E6011092E50100EE10E098 +:1022D000F80180818B7F808388818160888342E0E0 +:1022E00060E080E00E94AA10E1EEF0E080818E7F45 +:1022F0008083E2EEF0E0808181608083808188606D +:102300008083F80180818E7F8083888180618883CB +:10231000DF91CF911F910F910895E8EDF0E080815A +:102320008F7E8083E7EDF0E080818160808384E0B0 +:1023300082BF81E08093E7010C944A11E8EDF0E060 +:1023400080818E7F80831092E20008951092DA00DF +:102350001092E10008951F920F920FB60F92112470 +:102360002F933F934F935F936F937F938F939F939D +:10237000AF93BF93EF93FF938091E10082FF0BC077 +:102380008091E20082FF07C08091E1008B7F809303 +:10239000E1000E94E70D8091DA0080FF1FC080916C +:1023A000D80080FF1BC08091DA008E7F8093DA0016 +:1023B0008091D90080FF0DC080E189BD82E189BD97 +:1023C00009B400FEFDCF81E08093E8010E94C00DBA +:1023D00005C019BC1092E8010E94D20D8091E10065 +:1023E00080FF19C08091E20080FF15C08091E2005B +:1023F0008E7F8093E2008091E20080618093E20012 +:102400008091D80080628093D80019BC85E08093C9 +:10241000E8010E94DD0D8091E10084FF30C08091D1 +:10242000E20084FF2CC080E189BD82E189BD09B44E +:1024300000FEFDCF8091D8008F7D8093D8008091E1 +:10244000E1008F7E8093E1008091E2008F7E809397 +:10245000E2008091E20081608093E2008091E401DB +:10246000882311F084E007C08091E30087FF02C059 +:1024700083E001C081E08093E8010E94E10D80913A +:10248000E10083FF29C08091E20083FF25C0809195 +:10249000E100877F8093E10082E08093E801109261 +:1024A000E4018091E1008E7F8093E1008091E20061 +:1024B0008E7F8093E2008091E20080618093E20051 +:1024C00042E060E080E00E94AA108091F000886005 +:1024D0008093F0000E94D90DFF91EF91BF91AF91D1 +:1024E0009F918F917F916F915F914F913F912F912C +:1024F0000F900FBE0F901F9018951F920F920FB65E +:102500000F9211242F933F934F935F936F937F9379 +:102510008F939F93AF93BF93CF93EF93FF93C0910C +:10252000E900CF708091EC001092E9008091F000FA +:10253000877F8093F00078940E94B9121092E9008E +:102540008091F00088608093F000C093E900FF91D3 +:10255000EF91CF91BF91AF919F918F917F916F91AB +:102560005F914F913F912F910F900FBE0F901F9051 +:1025700018951F93CF93DF93CDB7DEB7AA970FB609 +:10258000F894DEBF0FBECDBFE9EEF1E08091F1001F +:10259000819321E0E13FF207C9F70E943B0E809151 +:1025A000E80083FF1CC12091E9013091EA01832FEB +:1025B00090E08A30910508F012C1FC01EA5AFF4F01 +:1025C0000C94D52C203881F0223809F008C1809174 +:1025D000ED018F708093E9008091EB0085FB8827E7 +:1025E00080F91092E90006C08091E5019091E60122 +:1025F000911182609091E800977F9093E80080931A +:10260000F1001092F100C5C0822F8D7F09F0E7C064 +:10261000222319F0223061F0E2C08091EB01813079 +:1026200009F0DDC0333009F080E08093E60128C076 +:102630008091EB01811124C02091ED012F7009F4EC +:10264000CEC02093E9008091EB0080FF19C08091FB +:10265000EB00333011F4806211C080618093EB0095 +:1026600081E090E0022E01C0880F0A94EAF780937F +:10267000EA001092EA008091EB0088608093EB0002 +:102680001092E9008091E800877F86C02111A7C0E1 +:102690001091EB011F778091E3008078812B80936C +:1026A000E3008091E800877F8093E8000E94DF10BC +:1026B0008091E80080FFFCCF8091E30080688093E8 +:1026C000E300112311F083E001C082E08093E80170 +:1026D00086C02058223008F082C08091EB01909192 +:1026E000EC018C3D23E0920779F583E08A838AE24E +:1026F00089834FB7F894DE01139620E03EE051E263 +:10270000E32FF0E050935700E49120FF03C0E295DF +:10271000EF703F5FEF708E2F90E0EA3010F0C796B9 +:1027200001C0C0968D939D932F5F243149F74FBF11 +:102730008091E800877F8093E8006AE270E0CE0134 +:1027400001960E94E70F14C0AE014F5F5F4F60918A +:10275000ED010E942F0F009709F441C02091E8007D +:10276000277F2093E800BC0189819A810E9448104C +:102770008091E8008B778093E80031C0203879F5AC +:102780008091E800877F8093E8008091E401809346 +:10279000F1008091E8008E778093E8000E94DF10BE +:1027A0001EC021111CC09091EB019230C0F48091A9 +:1027B000E800877F8093E8009093E4010E94DF1097 +:1027C0008091E401811104C08091E30087FF02C081 +:1027D00084E001C081E08093E8010E94270E80918F +:1027E000E80083FF0AC08091E800877F8093E800BB +:1027F0008091EB0080628093EB00AA960FB6F8946C +:10280000DEBF0FBECDBFDF91CF911F910895CF9353 +:102810008091E8018823B1F08091E9008F70909158 +:10282000EC0090FF02C090E801C090E0C92FC82BD7 +:102830001092E9008091E80083FD0E94B912CF70E8 +:10284000C093E900CF91089590937A018093790124 +:102850000895E0917901F0917A01309721F001908B +:10286000F081E02D099480E00895FF920F931F936B +:10287000CF93DF938C01E0917901F0917A01309749 +:1028800099F10280F381E02D09958091D30182FFB7 +:102890002BC080FF04C087EB93E00E94C406E801D0 +:1028A00088E0F82E01EB13E08091D30180FF0BC08C +:1028B00088811F928F931F930F930E945D070F9043 +:1028C0000F900F900F90FA942196F110EDCF809118 +:1028D000D30180FF09C08FEA93E0DF91CF911F9170 +:1028E0000F91FF900C94C406DF91CF911F910F912F +:1028F000FF900895E0917901F0917A01309721F0ED +:102900000480F581E02D099408952091770130919C +:1029100078018217930771F0909378018093770183 +:10292000E0917901F0917A01309721F00680F781EA +:10293000E02D099408952091750130917601821758 +:10294000930771F09093760180937501E09179017E +:10295000F0917A01309721F00084F185E02D0994FF +:10296000089508950C94B1140E947D200E94850B57 +:102970000E9448210C94AF2ACF93DF931F92CDB7CA +:10298000DEB79091D30192FF10C090FF0EC01F924E +:102990008F9329EC33E03F932F9389830E945D0747 +:1029A0000F900F900F900F9089810F90DF91CF9132 +:1029B0000C946F0B5F926F927F928F929F92AF9267 +:1029C000BF92CF92DF92EF92FF920F931F93CF931C +:1029D000DF9300D000D01F92CDB7DEB70E94C80BA6 +:1029E00096E8C92E91E0D92E04E010E0AA24A39421 +:1029F000B12C502E802F0E94470C3C01F601F29022 +:102A0000E2906F01E826F926E114F104A1F40150E7 +:102A1000110978F78FEF89838A831B820E948620B1 +:102A20008160782F9D838C8349815A816B818D8150 +:102A30000E948A1538C08091D30181FD0E94500CFC +:102A40002DE030E04501022E02C0880C991C0A944A +:102A5000E2F7C4018E219F21892B09F129835A8233 +:102A60006820792081E0672809F480E08B830E9448 +:102A700086208160782F9D838C8349815A816B8168 +:102A80008D810E948A15F801EE0FFF1FE458FE4F5A +:102A900080819181882599259183808304C021506C +:102AA000310980F6B4CF0E94BD2410917B010E94B1 +:102AB00029141817D1F00E94291480937B010F90DC +:102AC0000F900F900F900F90DF91CF911F910F916A +:102AD000FF90EF90DF90CF90BF90AF909F908F903E +:102AE0007F906F905F900C94BC140F900F900F909C +:102AF0000F900F90DF91CF911F910F91FF90EF906A +:102B0000DF90CF90BF90AF909F908F907F906F900D +:102B10005F900895CF93DF93CDB7DEB72B970FB6B5 +:102B2000F894DEBF0FBECDBF4F83588769877A8781 +:102B30008B87DE01119686E0FD0111928A95E9F7F7 +:102B400085E0FE01379601900D928A95E1F7498163 +:102B50005A816B817C818D819E810E94381C2B96CD +:102B60000FB6F894DEBF0FBECDBFDF91CF910895B1 +:102B7000CF93C82F882309F4C1C0823859F40E942A +:102B8000291481FDBBC089E30E94131F0E949E1F70 +:102B900089E30CC0833879F40E94291480FDAEC00B +:102BA00083E50E94131F0E949E1F83E50E94341F2D +:102BB000CF910C949E1F843859F40E94291482FDF1 +:102BC0009DC087E40E94131F0E949E1F87E4EECFE2 +:102BD0008CEF8C0F813A48F48C2F0E945D29811173 +:102BE0008DC08C2F0E94131FE3CF80E28C0F8830A2 +:102BF00048F4C77081E001C0880FCA95EAF70E94C7 +:102C0000551FD6CF8BE58C0F833078F4C53A29F069 +:102C1000C63A31F482E890E005C081E890E002C055 +:102C200083E890E0CF910C94851488E58C0F833174 +:102C300008F064C0C83A39F1C93A41F1CA3A49F1D9 +:102C4000CB3A51F1CC3A59F1CD3A61F1C03B69F13F +:102C5000CE3A71F1CF3A79F1C13B81F1C23B89F1B2 +:102C6000C33B91F1C43B99F1C53BA1F1C63BA9F12E +:102C7000C73BB1F1C83BB9F1C93BC1F1CA3BC9F58A +:102C80008AE292E038C082EE90E035C089EE90E0B2 +:102C900032C08AEE90E02FC085EB90E02CC086EB2E +:102CA00090E029C087EB90E026C08CEC90E023C038 +:102CB0008DEC90E020C083E891E01DC08AE891E0AF +:102CC0001AC082E991E017C084E991E014C081E262 +:102CD00092E011C083E292E00EC084E292E00BC069 +:102CE00085E292E008C086E292E005C087E292E0C9 +:102CF00002C080E090E0CF910C949B14CF91089596 +:102D0000882309F44BC0823859F40E94291481FFAA +:102D100045C089E30E94131F0E949E1F89E30CC0D7 +:102D2000833871F40E94291480FF38C083E50E9423 +:102D3000131F0E949E1F83E50E94341F0C949E1F48 +:102D4000843859F40E94291482FF28C087E40E9425 +:102D5000131F0E949E1F87E4EFCF9CEF980F913ABC +:102D600058F390E2980F983050F4877091E001C0CA +:102D7000990F8A95EAF7892F0E945B1FDFCF9BE5A9 +:102D8000980F933020F480E090E00C948514885ADA +:102D9000833120F480E090E00C949B140895882304 +:102DA00021F00E94551F0C949E1F0895882321F046 +:102DB0000E945B1F0C949E1F08958F929F92AF926A +:102DC000BF92CF92DF92EF92FF920F931F93CF9318 +:102DD000DF931F92CDB7DEB74C01A62E472FFC0123 +:102DE000E580E2948FE0E822F280FF2021F07983F1 +:102DF0000E94721F498149830E940C1F49818823C8 +:102E000081F0FF2071F080E28A0D883050F082E07E +:102E10000E94F51E0E940C1FBB24B394B826498162 +:102E200001C0B12CE42FE295EF70F0E0E05AFF4FC3 +:102E30000C94D52C842F807F142F1F70882311F0C1 +:102E40001295107FFF2089F0112309F496C180E2CA +:102E50008A0D883020F4812F0E94551F03C0812FD6 +:102E60000E94651F0E949E1F88C18A2D0E948016A5 +:102E7000112309F4BFC180E28A0D883020F4812F2C +:102E80000E945B1F03C0812F0E946B1F0E949E1F28 +:102E9000B1C1242F207F842F8F70203211F08295B2 +:102EA000807FAA2021F0F1E0AF16B1F021C0FF2011 +:102EB00041F0EE2039F191E0E91224C00E94851F13 +:102EC00099C1EE2021F0E1E0EE1609F493C1898367 +:102ED0000E94881F89810BC1FF2029F0F5E0FE15B3 +:102EE00008F488C10FC094E09E1508F483C1FFC0A8 +:102EF000FF2059F0EE2031F0F401958190FF3DC1A3 +:102F00009F7095830E94CF1675C1EE2009F4EFC023 +:102F10003AC1242F26952695237030E021153105DE +:102F200021F02130310561F065C1FF2021F08A2DAB +:102F3000942F937002C080E090E00E9485145AC1E3 +:102F4000FF2021F08A2D942F937002C080E090E042 +:102F50000E949B144FC18A2DFF2019F00E94432329 +:102F600002C00E94AB230E94302444C1842F83708E +:102F700009F04EC0F1103EC12A2D229526952770EA +:102F8000220F220F8A2D8F70C82ED12CE12CF12C0C +:102F9000022E04C0CC0CDD1CEE1CFF1C0A94D2F7E0 +:102FA000A4FE10C06FE070E080E090E004C0660F07 +:102FB000771F881F991F2A95D2F760957095809585 +:102FC000909503C060E070E0CB01242F26952695F4 +:102FD000237030E02230310569F02330310589F06B +:102FE0006C297D298E299F292130310571F00E949D +:102FF0008A1D00C16C297D298E299F290E94A41D4C +:10300000F9C00E948A1DC701B6010E94701DF2C05E +:10301000FF2019F0842F817001C08695882309F460 +:10302000E9C02A2D229526952770220F220F8A2D7E +:103030008F70C82ED12CE12CF12C022E04C0CC0CA8 +:10304000DD1CEE1CFF1C0A94D2F7A4FE10C06FE03A +:1030500070E080E090E004C0660F771F881F991F22 +:103060002A95D2F7609570958095909503C060E0A1 +:1030700070E0CB01242F26952695237030E0223076 +:10308000310569F02330310589F06C297D298E29BD +:103090009F292130310571F00E945E1EABC06C2962 +:1030A0007D298E299F290E94781EA4C00E945E1E41 +:1030B000C701B6010E94441E9DC00A2D10E0F80110 +:1030C000E05EF109E531F10508F053C0E059FF4F2A +:1030D0000C94D52C1A2D1F70842F8F71FF2021F096 +:1030E0000E94DD1D812F0ECF0E94FE1D812F0E94A8 +:1030F000D61680C0FF2049F0F4E0FE1508F47AC02F +:10310000842F8F710E94231E75C085E08E1508F4F0 +:1031100071C0F6CFFF2039F0842F8F710E94DD1D22 +:1031200069C0FF20C9F3842F8F710E94FE1D62C009 +:10313000FF2029F0842F8F710E94C81D5BC00E9460 +:10314000BE1D58C0FF2051F0142F1F71812F0E9407 +:10315000DD1D63E0812F0E94EC1E4CC081E00E94C7 +:10316000F51E91E09E1508F045C082E00E94F51E14 +:1031700041C0FF2031F0EE2079F28A2D0E94B8156F +:1031800039C0EE2081F28A2D0E94801633C04F7024 +:103190006A2DC4010E94B3070E94E51C2BC0F110E8 +:1031A00029C0942F9F70492F50E042305105B9F04B +:1031B0004CF44115510581F041305105D9F40E947C +:1031C000EA2A18C04330510569F04430510591F4A2 +:1031D0008A2D0E94772B0EC00E94C02A0BC00E942D +:1031E000192B08C00E943F2B05C04F706A2DC401E7 +:1031F0000E945308BB20F1F00E94E81E80FD1AC017 +:10320000F40112820E94E21E0E94DD1DC4010E9490 +:1032100028190E94E21E0F90DF91CF911F910F910C +:10322000FF90EF90DF90CF90BF90AF909F908F90E6 +:103230000C94FE1D0F90DF91CF911F910F91FF9085 +:10324000EF90DF90CF90BF90AF909F908F900895B8 +:103250000F931F93CF93DF93EC01288139818B81EA +:103260009C81892B31F03F3F11F080E003C02F3F5C +:10327000E1F781E0811113C0CE010E94BB078823D2 +:1032800071F0688179818A810E94DE1E8C010E9422 +:10329000921E0E94651DB801CE010E94DD16DF91CD +:1032A000CF911F910F9108950E94721F0E94821F5B +:1032B0000E94471F0E949E1F0E945E250E9430248C +:1032C00080E090E00E94851480E090E00C949B14D4 +:1032D0000E94621F0C9454190E94D31E292F22951C +:1032E0002F7030E02C3031054CF42A3031056CF46D +:1032F0002250310922303105B0F407C02C3031059D +:1033000071F02F30310559F00EC0803F31F018F4C4 +:10331000803E48F402C0843F31F481E0089593FB7D +:10332000882780F9089580E00895CF93DF9300D037 +:1033300000D01F92CDB7DEB70F900F900F900F9077 +:103340000F90DF91CF910895CF93DF9300D000D0FD +:1033500000D0CDB7DEB726960FB6F894DEBF0FBE0D +:10336000CDBFDF91CF9108951F93CF93DF93C0918D +:10337000860116E080918701C81799F0D0E01C9F64 +:10338000F0011D9FF00D1124E857FE4F408151813F +:1033900062817381848195810E94A4192196C770EE +:1033A000E9CFDF91CF911F9108954091B8015091DD +:1033B000B9016091BA017091BB018091BC019091FB +:1033C000BD010C94A419CF938091BD0182958F709B +:1033D00009F05FC08091BA01882309F45AC0209196 +:1033E0008601A09187016091B8017091B901809127 +:1033F000BB019091BC0131E06F3F09F030E0B32F89 +:10340000C6E02A1709F445C0009721F07F3F21F458 +:103410004B2F03C041E001C040E030E040FD35C02B +:10342000C29FF001C39FF00D1124E857FE4F418168 +:1034300074132BC04081641328C04281411125C000 +:10344000438154814817590710F441505109481BD2 +:10345000590B483C5105C8F48091BD018F708061C3 +:103460008093BD0186E0829FF001839FF00D1124BF +:10347000E357FE4F80818F708061808388EB91E0FD +:103480000E942819CF910C94B4192F5F3F4F2770D9 +:10349000B8CFCF910895CF92DF92EF92FF920F9322 +:1034A0001F93CF93DF93CDB7DEB762970FB6F89433 +:1034B000DEBF0FBECDBF8C0185E0F801DE011D9699 +:1034C00001900D928A95E1F7D8014C9111965C918B +:1034D000119712966C9112971396ED90FC90149799 +:1034E0007091B801E091B9012091BB013091BC010C +:1034F0002115310531F0EF3F31F481E07F3F19F4C0 +:1035000003C081E001C080E0B82FB170CB2E80FDF8 +:103510006CC1D090BA01DD2009F4F5C0F091BD0175 +:10352000E216F30638F0C701821B930B883C910525 +:1035300048F09BC0209530952E0D3F1D283C31054D +:1035400008F093C08F2F807F09F052C0E51314C09C +:10355000741312C0D62E61110FC0FF70F061F0938A +:10356000BD010E94D51988EB91E00E942819809135 +:10357000BD01F80185836CC1EF2831F05F3F31F464 +:1035800081E04F3F19F403C081E001C080E080FD7D +:1035900003C081E0862701C080E0F82FF170FF2E84 +:1035A00080FF1CC0809186012091870136E0821740 +:1035B00009F428C190E0389FF001399FF00D1124E3 +:1035C000E857FE4F7181571306C07081471303C03F +:1035D0007281671303C001968770E9CFD62E6623E8 +:1035E00009F436C18091BD0181608093BD0153C053 +:1035F000E51308C0741306C0611104C0D801159604 +:10360000FC93AEC04D875E878D859E856A8B0E9438 +:103610006C196A89882329F1D62E662311F120912D +:10362000BD01822F82958F7090E002970CF460C0EC +:103630008091B8019091B90198878F831986FB8694 +:10364000EA862C87CE01079651C0E51731F14D87E8 +:103650005E878D859E856A8B0E946C196A898111AF +:103660002EC0C8010E942819A4C08F2F807F69F73F +:103670007E2DF98AE88A89890E94951988EB91E064 +:103680000E942819E8EBF1E086E0DF011D928A959F +:10369000E9F70E94D519D12CDBC07413D8CF611182 +:1036A000D6CFD8011596FC93C8010E942819E8EBE3 +:1036B000F1E086E0DF011D928A95E9F7C9C0D62EB8 +:1036C000662379F22091BD01822F82958F7090E060 +:1036D000029774F08091B8019091B9019A8389831F +:1036E0001B82FD82EC822E83CE0101960E94281956 +:1036F00086E0F801A8EBB1E001900D928A95E1F720 +:103700000E94E3196FC0E216F30628F0C701821B7E +:10371000930B9C0104C0209530952E0D3F1D283C35 +:10372000310508F052C0D62E662309F49ACFE5136E +:103730002CC074132AC08091BD0180FD1DC0982F3C +:1037400092959F70C9F0D80115968C9315979F306C +:1037500039F09F5F9295907F8F70892B15968C938F +:10376000C8010E94281986E0F801A8EBB1E0019099 +:103770000D928A95E1F736C086E0F801A8EBB1E03A +:1037800001900D928A95E1F763C04D875E878D8524 +:103790009E850E946C19882379F086E0F801A8EBD9 +:1037A000B1E001900D928A95E1F70E94E3190E9421 +:1037B000D519DD24D3944CC08091BD0181608093E4 +:1037C000BD01C8010E94281943C07E2DF98AE88AEC +:1037D00089890E949519E8EBF1E086E0DF011D92EE +:1037E0008A95E9F70E94D51933C0662309F439CFC9 +:1037F0004D875E878D859E850E946C19882309F40C +:1038000030CFCBCF4D875E878D859E850E94D31E9E +:10381000292F22952F7030E0223031052CF49F7033 +:1038200041F0811106C00CC0243031052CF49F708A +:1038300049F4805E883020F0C8010E942819CF2CFE +:10384000DC2C06C0D80115969C91907F91F7F8CF9B +:103850008D2D62960FB6F894DEBF0FBECDBFDF91FF +:10386000CF911F910F91FF90EF90DF90CF9008952F +:103870001F93CF93DF93CDB7DEB72C970FB6F89495 +:10388000DEBF0FBECDBF4F83588769877A878B878E +:103890009C87CE0107960E944B1A8823C1F02F8186 +:1038A00038858A859B85892B31F03F3F11F080E078 +:1038B00003C02F3FE1F781E0811147C04F81588558 +:1038C00069857A858B859C850E94A4193EC086E017 +:1038D000FE013796DE01119601900D928A95E1F76F +:1038E000FF81E8854A855B854115510531F0EF3F41 +:1038F00031F481E0FF3F19F403C081E001C080E0B2 +:1039000080FD23C02091870130E0C90101968770B6 +:1039100099276091860170E086179707F1F1F98386 +:10392000EA835D834C8396E0929FD001939FB00D14 +:103930001124A857BE4FFE01319601900D929A9521 +:10394000E1F7809387010E94B41916E08091860107 +:1039500090918701891779F1189FC0011124885728 +:103960009E4F0E944B1A882331F1E09186011E9FE1 +:10397000F0011124E857FE4F40815181628173812B +:10398000848195810E94A4198091860190E001961E +:103990008770992780938601D9CF0E946819109269 +:1039A000870110928601E8EBF1E086E0DF011D92CD +:1039B0008A95E9F7CACF2C960FB6F894DEBF0FBEF2 +:1039C000CDBFDF91CF911F910895EF92FF920F939A +:1039D0001F93CF93DF93FC01009709F46FC0F12C84 +:1039E000EE24E394EF0121968491843740F48430EF +:1039F00008F055C0813081F0823021F15FC08537F9 +:103A000009F447C0C0F19CE7980F903708F056C002 +:103A10008F770E94801645C08F010E5F1F4FFE01F9 +:103A2000849190E2980F983050F48770FE2D01C079 +:103A3000FF0F8A95EAF78F2F0E94751F15C00E940D +:103A4000B81514C08F010E5F1F4FFE01849190E2E4 +:103A5000980F983068F48770FE2D01C0FF0F8A958B +:103A6000EAF78F2F0E947B1F0E949E1FE80119C05A +:103A70000E948016FBCFCF010296FE01C491CC2399 +:103A800061F0EFE9FFE03197F1F700C00000C150AD +:103A9000F6CFCF010296FE01F490EC0102C00E9425 +:103AA000B8158F2D882341F0EFE9FFE03197F1F74A +:103AB00000C000008150F6CFFE0194CFDF91CF917E +:103AC0001F910F91FF90EF90089508956093C201A8 +:103AD0007093C3018093C4019093C5010C94541951 +:103AE0000F931F930091C2011091C3012091C40153 +:103AF0003091C501062B172B282B392B0093C201BF +:103B00001093C3012093C4013093C5011F910F91FD +:103B10000C9454190F931F930091C2011091C3018B +:103B20002091C4013091C50106231723282339238E +:103B30000093C2011093C3012093C4013093C501C7 +:103B40001F910F910C9454190F931F930091C20170 +:103B50001091C3012091C4013091C5010627172798 +:103B6000282739270093C2011093C3012093C40171 +:103B70003093C5011F910F910C9454191092BE01FE +:103B80001092BF011092C0011092C1010C945419FF +:103B900041E050E060E070E004C0440F551F661F34 +:103BA000771F8A95D2F74093BE015093BF0160936F +:103BB000C0017093C1010C94541941E050E060E0E1 +:103BC00070E004C0440F551F661F771F8A95D2F717 +:103BD0008091BE019091BF01A091C001B091C1013F +:103BE000842B952BA62BB72B8093BE019093BF01FE +:103BF000A093C001B093C1010C94541941E050E06E +:103C000060E070E004C0440F551F661F771F8A955F +:103C1000D2F740955095609570958091BE01909136 +:103C2000BF01A091C001B091C10184239523A623B7 +:103C3000B7238093BE019093BF01A093C001B093BE +:103C4000C1010C94541941E050E060E070E004C000 +:103C5000440F551F661F771F8A95D2F78091BE01CA +:103C60009091BF01A091C001B091C1018427952717 +:103C7000A627B7278093BE019093BF01A093C001F0 +:103C8000B093C1010C9454190F931F930091BE017E +:103C90001091BF012091C0013091C101062B172B5B +:103CA000282B392B0093BE011093BF012093C00134 +:103CB0003093C1011F910F910C9454190F931F93CE +:103CC0000091BE011091BF012091C0013091C1014E +:103CD00006231723282339230093BE011093BF0125 +:103CE0002093C0013093C1011F910F910C9454197E +:103CF0000F931F930091BE011091BF012091C0014D +:103D00003091C10106271727282739270093BE01C4 +:103D10001093BF012093C0013093C1011F910F91F7 +:103D20000C9454190895CF92DF92EF92FF920F9363 +:103D30001F93CF93DF93EC01C090C201D090C301D9 +:103D4000E090C401F090C5018091BE019091BF0147 +:103D5000A091C001B091C101C82AD92AEA2AFB2A40 +:103D60000FE110E0B701A601002E04C0769567951B +:103D7000579547950A94D2F740FD05C001501109A7 +:103D800088F780E007C0BE01802F0E94D50A019706 +:103D9000A9F3802FDF91CF911F910F91FF90EF90AA +:103DA000DF90CF900895CF93DF93EC010E94931E94 +:103DB000BE010E94D50ADF91CF910895CB010E94E8 +:103DC000D31E08958091C6018595859585950895A2 +:103DD0008091C6018770089598E0899F9001112411 +:103DE000622B6093C6010C94DD1D4091C601809545 +:103DF00084238093C601982F977069F450E0282F90 +:103E0000332727FD30954217530729F0859585956F +:103E100085950C94FE1D08959091C601977081E0E0 +:103E200009F480E0089540910C0150910D0120E0CB +:103E300030E09FEFFA01E20FF31F6281681799F0FB +:103E40009F3F19F4611101C0922F2F5F3F4F263021 +:103E5000310581F79F3F39F0FA01E90FF11D97FD18 +:103E6000FA9582830895089540910C0150910D01B7 +:103E700020E030E0FA01E20FF31F9281981301C0B5 +:103E800012822F5F3F4F26303105A1F7089581E060 +:103E900090E0E0910C01F0910D01E80FF91F108204 +:103EA000019688309105A9F708959091D201982B39 +:103EB0009093D201089580959091D2019823909388 +:103EC000D20108951092D20108959091D101982BBA +:103ED0009093D101089580959091D101982390936A +:103EE000D10108951092D10108959091D001982B9D +:103EF0009093D001089580959091D001982390934C +:103F0000D00108951092D00108958093C7010895BB +:103F10001092C701089540910C0150910D0120E0CD +:103F200030E080E0FA01E20FF31F918191118F5F81 +:103F30002F5F3F4F27303105A9F70895E0910C011D +:103F4000F0910D018091D2018083E0910C01F091FC +:103F50000D0180819091D101892B8083E0910C012A +:103F6000F0910D0180819091D001892B80839091F7 +:103F7000C701992361F0E0910C01F0910D0180815E +:103F8000892B80830E948B1F81111092C701809121 +:103F90000C0190910D010C9435149093470180937E +:103FA0004601089540E0009739F09C012150310905 +:103FB000822393234F5FF7CF842F08958295982F04 +:103FC0009C7C96959695837344E0849F9001112480 +:103FD000922B892F8A7A86959575990F892B08954A +:103FE0001F93CF93DF931F92CDB7DEB799830E94C3 +:103FF000DE1F182F9981892F0E94DE1F212F30E0AC +:10400000322F2227A901482BCA010F90DF91CF91AF +:104010001F9108958091E801843039F11092D40104 +:1040200020E488E190E00FB6F894A89580936000B2 +:104030000FBE2093600080E00E94850780E00E9410 +:104040006F0B83B7817F846083BF83B7816083BF39 +:104050007894889583B78E7F83BF88E10FB6F894F4 +:1040600080936000109260000FBE08950895089537 +:1040700080E00E9485070E9436200E94C80B0E94A3 +:1040800037200E948A0C91E0811101C090E0892FB5 +:1040900008950E94681980E00E9485070E94AF2A57 +:1040A0000E9429140C946F0B1F920F920FB60F925F +:1040B00011248F939F93AF93BF938091D40181116B +:1040C00013C08091D5019091D601A091D701B091F4 +:1040D000D8014196A11DB11D8093D5019093D601C1 +:1040E000A093D701B093D801BF91AF919F918F91C9 +:1040F0000F900FBE0F901F90189582E084BD93E043 +:1041000095BD9AEF97BD80936E0008952FB7F894F0 +:104110008091D5019091D601A091D701B091D8019D +:104120002FBF0895CF92DF92EF92FF920F931F93CC +:104130002FB7F8944091D5015091D6016091D701E5 +:104140007091D8012FBF6A017B01EE24FF248C01FE +:1041500020E030E0C016D106E206F30610F441502C +:104160005109481B590BCA011F910F91FF90EF9005 +:10417000DF90CF9008951F920F920FB60F921124E7 +:104180008F939F93AF93BF938091D5019091D60168 +:10419000A091D701B091D8010196A11DB11D8093C6 +:1041A000D5019093D601A093D701B093D801BF91C8 +:1041B000AF919F918F910F900FBE0F901F90189508 +:1041C0000E943011F8942FEF87EA91E62150804049 +:1041D0009040E1F700C0000087E090EBDC018093A5 +:1041E000F3019093F401A093F501B093F6012CE054 +:1041F00088E190E00FB6F894A895809360000FBE18 +:1042000020936000FFCFCF92DF92EF92FF920F9347 +:104210001F93CF93DF93C82E84E0D82E01E010E0E7 +:104220008D2D0E94470C7C01CDE0D0E098010C2E32 +:1042300002C0220F331F0A94E2F72E213F21232BC5 +:1042400049F06C2F7D2D80E00E945408C81202C0F6 +:1042500081E007C0219750F7DA948FEFD812E0CFB2 +:1042600080E0DF91CF911F910F91FF90EF90DF9051 +:10427000CF900895CF93C82F8CE20E94032188230A +:1042800021F08C2FCF910C94032180E0CF910895E1 +:10429000CF930E949322811102C00E94742289EE62 +:1042A00093E00E94C406C5E6C15049F00E94C80BC5 +:1042B0008FE39CE90197F1F700C00000F5CF82EE93 +:1042C00093E00E94C40689E20E943A2181110AC14A +:1042D0008AE20E943A2181110E94742285E00E94A4 +:1042E0003A2181110E94E0200E949E228093D301F6 +:1042F00087E00E943A21882399F18BE10E943A21BC +:10430000882351F09091D30191FB882780F921E017 +:10431000822780FB91F922C08EE00E943A218823F7 +:1043200051F09091D30192FB882780F921E08227F8 +:1043300080FB92F913C080E10E943A219091D30151 +:10434000882341F093FB882780F921E0822780FBB6 +:1043500093F904C0892F809580FB90F99093D30145 +:104360008091D3010E94A2220E94B0228093F10189 +:1043700080EE0E943A21882341F08091F101982F2C +:10438000909590FB80F98093F10189E30E943A2196 +:10439000882359F09091F10191FB882780F921E061 +:1043A000822780FB91F99093F10182EE0E943A21DD +:1043B000882359F09091F10192FB882780F921E040 +:1043C000822780FB92F99093F10186EE0E943A21B8 +:1043D000882359F09091F10193FB882780F921E01F +:1043E000822780FB93F99093F10183EE0E943A219A +:1043F000882359F09091F10194FB882780F921E0FE +:10440000822780FB94F99093F10185E30E943A2181 +:10441000882359F09091F10195FB882780F921E0DC +:10442000822780FB95F99093F10181E30E943A2164 +:10443000882359F09091F10196FB882780F921E0BB +:10444000822780FB96F99093F10181E10E943A2145 +:10445000882359F09091F10197FB882780F921E09A +:10446000822780FB97F99093F1018091F1010E94DE +:10447000B42287E20E943A21C82F8EE10E943A219D +:104480008111C2608FE10E943A218111C46080E2F3 +:104490000E943A218111C86081E20E943A21811173 +:1044A000C06182E20E943A218111C06283E20E94CF +:1044B0003A218111C06484E20E943A21882311F0DC +:1044C000C06802C0CC2329F08C2F0E94AB226C2F35 +:1044D00003C00E94A722682F70E080E090E0CF9197 +:1044E0000C94661DCF9108956DEE7EEF80E090E014 +:1044F0000E940F2D60E082E090E00E94FD2C60E0C1 +:1045000083E090E00E94FD2C60E084E090E00E9457 +:10451000FD2C60E085E090E00E94FD2C60E086E0EC +:1045200090E00C94FD2C80E090E00E94F72C21E0BC +:104530008D3E9E4F09F020E0822F089582E090E0AA +:104540000C94EF2C682F82E090E00C94FD2C83E01B +:1045500090E00C94EF2C682F83E090E00C94FD2CFD +:1045600084E090E00C94EF2C682F84E090E00C94B1 +:10457000FD2C86E090E00C94EF2C682F86E090E014 +:104580000C94FD2C8091DB0180FF0BC06091110128 +:1045900085E0689FB00111247595679575956795BD +:1045A0002AC081FF09C06091110185E0689FB001B8 +:1045B0001124759567951FC082FF07C06091110196 +:1045C00085E0689FB001112416C04091DC014423AE +:1045D000C9F060911001461788F72091110185E01C +:1045E000289F90011124429FC001439F900D1124E8 +:1045F00070E00E94C12C6038710540F461157105AE +:1046000039F002C065E070E0862F08958FE70895C5 +:1046100081E008958091DB0180FF08C060910F0167 +:1046200070E0759567957595679521C081FF06C007 +:1046300060910F0170E07595679519C082FF04C005 +:1046400060910F0170E010C08091DC018823C1F0FF +:1046500060910E018617A0F790910F01989FC001FD +:10466000112470E00E94C12C6038710528F4611596 +:10467000710521F0862F08958FE7089581E0089550 +:1046800061E070E0F4CF803F21F40E94C222819566 +:1046900004C0813F29F40E94C2228093DF01089563 +:1046A000823F21F40E94C222819504C0833F29F4F5 +:1046B0000E94C2228093DE010895893F19F40E946E +:1046C0000A2305C08A3F31F40E940A238195809312 +:1046D000E00108958B3F21F40E940A23819504C0D4 +:1046E0008C3F29F40E940A238093E1010895843FBE +:1046F00021F48091DD01816017C0853F21F4809114 +:10470000DD01826011C0863F21F48091DD0184606B +:104710000BC0873F21F48091DD01886005C0883F90 +:1047200031F48091DD0180618093DD0108958D3F3A +:1047300021F48091DB0181600BC08E3F21F48091D8 +:10474000DB01826005C08F3F29F48091DB0184602A +:104750008093DB010895803F39F48091DF0187FF6A +:104760006CC01092DF0169C0813F29F48091DF01A4 +:104770001816BCF362C09091DE01823F29F497FFC6 +:104780005CC01092DE0159C0833F19F41916CCF3B6 +:1047900054C0893F41F48091E00118160CF04DC0DF +:1047A0001092E0014AC08A3F29F48091E00187FF1E +:1047B00044C0F6CF8B3F39F48091E10187FF3DC0C3 +:1047C0001092E1013AC08C3F29F48091E101181662 +:1047D000BCF333C0843F21F48091DD018E7F17C08C +:1047E000853F21F48091DD018D7F11C0863F21F44A +:1047F0008091DD018B7F0BC0873F21F48091DD012B +:10480000877F05C0883F31F48091DD018F7E8093E2 +:10481000DD0113C08D3F21F48091DB018E7F0BC041 +:104820008E3F21F48091DB018D7F05C08F3F29F4FD +:104830008091DB018B7F8093DB018091DE01811110 +:104840000EC08091DF0181110AC08091E0018111C9 +:1048500006C08091E101811102C01092DC0108952F +:104860008091D30183FF7EC085E294E00E94C4065C +:104870008091DD011F928F9380E294E09F938F934C +:104880000E945D078EE194E00E94C4062091DE0143 +:10489000822F992787FD90959F932F938BE194E02A +:1048A0009F938F930E945D0789E194E00E94C40664 +:1048B0002091DF01822F992787FD90959F932F9359 +:1048C00086E194E09F938F930E945D0784E194E0DA +:1048D0000E94C4062091E001822F992787FD9095C0 +:1048E0009F932F9381E194E09F938F930E945D07A4 +:1048F0008FE094E00E94C4062091E101822F992765 +:1049000087FD90959F932F938CE094E09F938F93D6 +:104910000E945D0789E094E00E94C4068091DC015A +:104920001F928F9386E094E09F938F930E945D0780 +:1049300084E094E00E94C4068091DB011F928F9373 +:1049400081E094E09F938F930E945D078EEF93E048 +:104950000E94C4068DB79EB74C960FB6F8949EBFC2 +:104960000FBE8DBF8DED91E00E947A140E948620CB +:104970009093DA018093D90108951F93CF93DF9329 +:104980008091D9019091DA010E9492204091DC013E +:10499000442321F02091120130E006C02091130140 +:1049A0005AE0259F900111248217930708F482C0D2 +:1049B0008091DE011091DF01D091E001C091E10111 +:1049C000811107C0111105C0D11103C0CC2309F416 +:1049D00071C04F3F19F04F5F4093DC01181624F46B +:1049E0000E94C2228093DE018091DE0187FF05C014 +:1049F0000E94C22281958093DE01111624F40E9448 +:104A0000C2228093DF018091DF0187FF05C00E94F1 +:104A1000C22281958093DF016091DE01662339F126 +:104A20001091DF01112319F1772767FD7095872F0A +:104A3000972F0E94C62B23E333E343E35FE30E94F7 +:104A40002A2C0E94932B6093DE01612F772767FD4C +:104A50007095872F972F0E94C62B23E333E343E300 +:104A60005FE30E942A2C0E94932B6093DF011D16A6 +:104A700024F40E940A238093E0018091E00187FFE3 +:104A800005C00E940A2381958093E0011C1624F43E +:104A90000E940A238093E1018091E10187FF05C014 +:104AA0000E940A2381958093E101DF91CF911F91AC +:104AB0000C943024DF91CF911F910895EDEDF1E03A +:104AC00085E0DF011D928A95E9F71092DC011092D2 +:104AD000DB01089588E496E00E94C4061F9281E0FD +:104AE0008F931F9285E08F938AEF95E09F938F932A +:104AF0000E945D070F900F900F900F900F900F90F6 +:104B000008958330E9F128F4813061F0823009F1B1 +:104B10000895853009F462C008F449C0863009F46C +:104B200074C0089520911301862F90E0820F911D8B +:104B30008F3F910520F4620F6093130103C08FEF44 +:104B400080931301809113011F928F9383E395E06B +:104B500072C020911201862F90E0820F911D8F3F2D +:104B6000910520F4620F6093120103C08FEF8093D0 +:104B70001201809112011F928F9381E295E05BC038 +:104B800020911101862F90E0820F911D8F3F91059A +:104B900020F4620F6093110103C08FEF8093110125 +:104BA000809111011F928F938EE095E044C0209177 +:104BB0001001862F90E0820F911D8F3F910520F408 +:104BC000620F6093100103C08FEF809310018091FA +:104BD00010011F928F9389EF94E02DC020910F0157 +:104BE000862F90E0820F911D8F3F910520F4620F78 +:104BF00060930F0103C08FEF80930F0180910F012D +:104C00001F928F9380EE94E016C020910E01862FA4 +:104C100090E0820F911D8F3F910520F4620F609309 +:104C20000E0103C08FEF80930E0180910E011F9241 +:104C30008F9385EC94E09F938F930E945D070F9074 +:104C40000F900F900F900895833081F128F48130F8 +:104C500059F08230D1F00895853009F449C0B8F197 +:104C6000863009F456C0089580911301681720F426 +:104C7000861B8093130102C01092130180911301CF +:104C80001F928F9386EB94E054C0809112016817B5 +:104C900020F4861B8093120102C0109212018091B1 +:104CA00012011F928F9384EA94E043C08091110116 +:104CB000681720F4861B8093110102C01092110125 +:104CC000809111011F928F9381E994E032C080910D +:104CD0001001681720F4861B8093100102C0109207 +:104CE0001001809110011F928F938CE794E021C0F6 +:104CF00080910F01681720F4861B80930F0102C07A +:104D000010920F0180910F011F928F9383E694E020 +:104D100010C080910E01681720F4861B80930E014D +:104D200002C010920E0180910E011F928F9388E4B1 +:104D300094E09F938F930E945D070F900F900F90C8 +:104D40000F900895CF93C82F1F928F932DE437E0D3 +:104D50003F932F930E945D0761E070E080E090E058 +:104D600004C0660F771F881F991FCA95D2F70E944B +:104D7000661D0F900F900F900F90CF910C946819B3 +:104D8000CF938732B0F58E3108F085C28E3009F4AA +:104D900001C200F5873009F4CBC1A8F4863009F0D0 +:104DA00080C28091D301817F8E7F8093D30187EA77 +:104DB00098E00E94C4068BE79CE00E94C40681E054 +:104DC0008093E301B3C1883009F43FC08B3009F40C +:104DD000A9C167C2863109F421C220F4803109F4E7 +:104DE000ECC15FC2893109F402C28B3109F4BFC141 +:104DF00058C2883309F496C150F4893209F44DC27F +:104E0000853309F44AC2873209F447C24AC283345F +:104E100009F443C228F48A3308F443C289533EC2DA +:104E2000883409F03EC20E9468198FE59CE00E9418 +:104E3000C4069FEF23ED80E3915020408040E1F7CE +:104E400000C000000E94E02071C18FE79CE00E943A +:104E5000C40681EE9BE00E94C4060E94A7221F9216 +:104E60008F938EED9BE09F938F930E945D078CED57 +:104E70009BE00E94C4060E949E22C82F89EC9BE002 +:104E80000E94C4061F92CF9324EC3BE03F932F93E4 +:104E90000E945D0782EC9BE00E94C40688EB9BE0C9 +:104EA0000E94C4068C2F81701F928F9325EB3BE0EC +:104EB0003F932F930E945D0783EB9BE00E94C40603 +:104EC00089EA9BE00E94C406C1FB882780F91F92F3 +:104ED0008F9326EA3BE03F932F930E945D0784EA7D +:104EE0009BE00E94C40688E99BE00E94C406C2FBC6 +:104EF000882780F91F928F9325E93BE03F932F93FA +:104F00000E945D0783E99BE00E94C4068AE89BE05B +:104F10000E94C406C3FBCC27C0F91F92CF9387E839 +:104F20009BE09F938F930E945D0785E89BE00E9422 +:104F3000C4060E94B022C82F81E79BE00E94C406ED +:104F40001F92CF932CE63BE03F932F930E945D0787 +:104F50008AE69BE00E94C40681E59BE00E94C406AD +:104F60008C2F81701F928F932EE43BE03F932F9301 +:104F70000E945D078DB79EB780960FB6F8949EBFCE +:104F80000FBE8DBF8CE49BE00E94C40685E39BE0CE +:104F90000E94C406C1FB882780F91F928F9322E3E9 +:104FA0003BE03F932F930E945D0780E39BE00E94CC +:104FB000C4068EE19BE00E94C406C2FB882780F9EC +:104FC0001F928F932BE13BE03F932F930E945D074D +:104FD00089E19BE00E94C40687E09BE00E94C40632 +:104FE000C3FB882780F91F928F9324E03BE03F9317 +:104FF0002F930E945D0782E09BE00E94C40688EF29 +:105000009AE00E94C406C4FB882780F91F928F9300 +:1050100025EF3AE03F932F930E945D0783EF9AE0DC +:105020000E94C40681EE9AE00E94C406C5FB882750 +:1050300080F91F928F932EED3AE03F932F930E94B9 +:105040005D078CED9AE00E94C40680EC9AE00E9415 +:10505000C406C6FB882780F91F928F932DEB3AE098 +:105060003F932F930E945D078BEB9AE00E94C4064A +:1050700083EB9AE00E94C406C7FBCC27C0F91F92BD +:10508000CF9380EB9AE09F938F930E945D078EEA07 +:105090009AE00E94C4060E94B922C82F87E99AE0CC +:1050A0000E94C4061F92CF9322E93AE03F932F93C8 +:1050B0000E945D078DB79EB780960FB6F8949EBF8D +:1050C0000FBE8DBF80E99AE00E94C40686E89AE090 +:1050D0000E94C4068C2F81701F928F9323E83AE0C0 +:1050E0003F932F930E945D0781E89AE00E94C406D7 +:1050F00088E79AE00E94C406C6951F92CF9385E781 +:105100009AE09F938F930E945D0783E79AE00E9445 +:10511000C4068DB79EB708960FB6F8949EBF0FBE13 +:105120008DBF04C08EEC98E00E94C406C1E0BEC0F2 +:105130008091D301C82FC095C170C0FB80F98093C6 +:10514000D301CC2349F083E59CE00E94C406809102 +:10515000D3018660886045C086E49CE00E94C40656 +:105160008091D301897F877F8093D301DFCF8091A6 +:10517000D30181FBCC27C0F991E0C927C0FB81F99D +:105180008093D301CC2319F089E39CE025C08BE206 +:105190009CE0CACF8091D30182FBCC27C0F991E07B +:1051A000C927C0FB82F98093D301CC2319F08CE18D +:1051B0009CE012C08CE09CE0B7CF8091D30183FBD0 +:1051C000CC27C0F991E0C927C0FB83F98093D301B4 +:1051D000CC2351F080E09CE00E94C4068091D30172 +:1051E00081608093D30162C083EF9BE09DCF88E90B +:1051F00098E00E94C4068FE798E00E94C4068DE400 +:1052000098E00E94C40686E298E00E94C40686EEFA +:1052100097E00E94C40688EB97E086CF8AEA97E081 +:105220000E94C4060E9429141F928F9380E997E080 +:105230009F938F930E945D0780910B011F928F9324 +:1052400089E797E09F938F930E945D078091740197 +:105250001F928F9386E697E09F938F930E945D073E +:105260008091D5019091D601A091D701B091D8013C +:10527000BF93AF939F938F9382E597E09F938F9314 +:105280000E945D078DB79EB742960FB6F8949EBFF9 +:105290000FBE8DBF4BCF8D5101C080E00E94A22672 +:1052A00045CF81EF9BE00E94C406C0E08C2FCF91D8 +:1052B000089580E0089580E00895CF93C82F8091ED +:1052C000E301813071F020F0823009F448C03FC121 +:1052D000A0910C01B0910D018C91823209F039C17D +:1052E00007C0A0910C01B0910D018C91823249F45C +:1052F0008C2F0E94592981112FC08C2F0E94C0260B +:105300002CC08C2F0E945B29811126C0C431E1F092 +:1053100070F4CB3081F0C031D1F40E946A2585E46D +:1053200097E00E94C40682E08093E30115C0C93271 +:1053300059F0C83361F487EA98E00E94C40689E412 +:1053400097E00E94C40608C01092E30104C183E400 +:1053500097E00E94C406FFC081E08170FEC0C432A5 +:1053600028F5CE3108F0C1C0CB30A1F1D0F4C73060 +:1053700009F0D3C08EE18093130182E38093120180 +:105380008AE08093110184E18093100188E080938A +:105390000F0188E280930E0189EE95E00E94C40619 +:1053A000BFC0C33149F1C431C1F0B7C0CB3409F437 +:1053B000A9C028F4C93289F0C83361F0AEC0C13544 +:1053C00009F49EC0C23509F499C0CE3409F0A5C0D5 +:1053D0006AE09EC00E946A25A3C08091E2018823F2 +:1053E00019F01092E2019CC086EF95E00E94C4067D +:1053F00081E08093E301B1C080ED95E00E94C40696 +:105400008EEB95E00E94C406809113011F928F934A +:105410008BEB95E09F938F930E945D0789EB95E05E +:105420000E94C40687EA95E00E94C406809112019A +:105430001F928F9384EA95E09F938F930E945D075C +:1054400082EA95E00E94C40683E995E00E94C406C2 +:10545000809111011F928F9380E995E09F938F9324 +:105460000E945D078EE895E00E94C4068DE795E0F6 +:105470000E94C406809110011F928F938AE795E0E5 +:105480009F938F930E945D0788E795E00E94C40672 +:1054900083E695E00E94C40680910F011F928F93CE +:1054A00080E695E09F938F930E945D078EE595E0DF +:1054B0000E94C40687E495E00E94C40680910E0114 +:1054C0001F928F9384E495E09F938F930E945D07D2 +:1054D00082E495E00E94C4068DB79EB748960FB649 +:1054E000F8949EBF0FBE8DBF1BC0CE51EC2FF0E0D5 +:1054F000E55CFE4F80818093E20112C061E003C051 +:1055000061E006C06AE08091E2010E94812508C046 +:105510008091E2010E94242603C087EE95E013C02B +:105520008091E201882369F01F928F9381EE95E0CC +:105530009F938F930E945D070F900F900F900F9095 +:1055400004C08EED95E00E94C40681E006C0109272 +:10555000E30180E002C080E000CFCF9108950E9477 +:105560009322811102C00E9474220E94B92280936A +:10557000F20180FF02C0869501C080E00C9485078F +:105580008091F201982F9695292F30E02330310534 +:105590004CF49F5F990F8170892B81608093F20199 +:1055A0000E94BD228091D30180FF0FC08091F20143 +:1055B00086951F928F938CEC9CE09F938F930E9413 +:1055C0005D070F900F900F900F908091F2018695DC +:1055D0000C9485078091F201982F969591F091583F +:1055E000990F8170892B8093F2018E7F91E009F4ED +:1055F00090E08091F20190FB80F98093F2010E948B +:10560000BD228091D30180FF0FC08091F201869569 +:105610001F928F9384EB9CE09F938F930E945D0772 +:105620000F900F900F900F908091F20186950C943F +:1056300085078091F201982F909590FB80F98093D7 +:10564000F2010E94BD228091D30180FF0FC08091A2 +:10565000F20181701F928F938EE99CE09F938F934C +:105660000E945D070F900F900F900F908091F201B4 +:1056700080FF02C0869501C080E00C9485073091C0 +:10568000F201232F26952F5F2F77822F90E0317024 +:1056900004972CF4220F232B2093F20102C03093A5 +:1056A000F2018091F2018E7F91E009F490E0809107 +:1056B000F20190FB80F98093F2010E94BD2280915B +:1056C000D30180FF0FC08091F20186951F928F93C6 +:1056D0008AE89CE09F938F930E945D070F900F9044 +:1056E0000F900F908091F20186950C948507209180 +:1056F000F201922F96959827990F822F8170892B0E +:105700008093F2018E7F91E009F490E08091F201A4 +:1057100090FB80F98093F2010E94BD228091F201FA +:1057200086950C94850704D06894B1118DC00895B6 +:1057300070D088F09F5790F0B92F9927B751A0F0FB +:10574000D1F0660F771F881F991F1AF0BA95C9F715 +:1057500012C0B13081F077D0B1E0089574C0672FE6 +:10576000782F8827B85F39F0B93FCCF386957795C5 +:105770006795B395D9F73EF49095809570956195AE +:105780007F4F8F4F9F4F0895E89409C097FB3EF4D9 +:1057900090958095709561957F4F8F4F9F4F99237E +:1057A000A9F0F92F96E9BB279395F69587957795FC +:1057B0006795B795F111F8CFFAF4BB0F11F460FFBC +:1057C0001BC06F5F7F4F8F4F9F4F16C0882311F014 +:1057D00096E911C0772321F09EE8872F762F05C028 +:1057E000662371F096E8862F70E060E02AF09A95C3 +:1057F000660F771F881FDAF7880F9695879597F9B8 +:10580000089557FD9058440F551F59F05F3F71F0B0 +:105810004795880F97FB991F61F09F3F79F0879517 +:105820000895121613061406551FF2CF4695F1DFA0 +:1058300008C0161617061806991FF1CF8695710530 +:10584000610508940895E894BB2766277727CB0164 +:1058500097F908950BD078C069D028F06ED018F071 +:10586000952309F05AC05FC01124EECFCADFA0F320 +:10587000959FD1F3950F50E0551F629FF001729FE5 +:10588000BB27F00DB11D639FAA27F00DB11DAA1F04 +:10589000649F6627B00DA11D661F829F2227B00D51 +:1058A000A11D621F739FB00DA11D621F839FA00DDC +:1058B000611D221F749F3327A00D611D231F849F2C +:1058C000600D211D822F762F6A2F11249F57504083 +:1058D0008AF0E1F088234AF0EE0FFF1FBB1F661F1E +:1058E000771F881F91505040A9F79E3F510570F0D7 +:1058F00014C0AACF5F3FECF3983EDCF38695779512 +:105900006795B795F795E7959F5FC1F7FE2B880FD1 +:10591000911D9695879597F9089597F99F6780E867 +:1059200070E060E008959FEF80EC089500240A94F1 +:105930001616170618060906089500240A9412166A +:105940001306140605060895092E0394000C11F49D +:10595000882352F0BB0F40F4BF2B11F460FF04C04A +:105960006F5F7F4F8F4F9F4F0895991B79E004C061 +:10597000991F961708F0961B881F7A95C9F780958E +:10598000089597FB072E16F4009407D077FD09D0F1 +:105990000E94DB2C07FC05D03EF4909581959F4F2B +:1059A0000895709561957F4F0895EE0FFF1F059044 +:1059B000F491E02D0994AA1BBB1B51E107C0AA1F5B +:1059C000BB1FA617B70710F0A61BB70B881F991FA0 +:1059D0005A95A9F780959095BC01CD010895F99944 +:1059E000FECF92BD81BDF89A992780B50895A8E1B0 +:1059F000B0E042E050E00C94172D262FF999FECF2D +:105A000092BD81BDF89A019700B4021639F01FBA11 +:105A100020BD0FB6F894FA9AF99A0FBE0895019630 +:105A2000272F0E94FE2C0C94FD2CDC01CB01FC01E5 +:105A3000F999FECF06C0F2BDE1BDF89A319600B4E7 +:0E5A40000D9241505040B8F70895F894FFCFF2 +:105A4E00FF9E0C8F0D6C0D380D050D01C801280839 +:105A5E00140A321E0F1F6C76667349130353437973 +:105A6E00693309196F7F59404D36206F032203ECBD +:105A7E0002CC02580271028A02A30201020304053B +:065A8E00060708090000F4 +:00000001FF diff --git a/keyboards/kc60/keymaps/default/keymap.c b/keyboards/kc60/keymaps/default/keymap.c new file mode 100644 index 000000000..6f8352c69 --- /dev/null +++ b/keyboards/kc60/keymaps/default/keymap.c @@ -0,0 +1,24 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "kc60.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = KEYMAP( /* Basic QWERTY */ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \ + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, \ + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, RESET \ + ), +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + return MACRO_NONE; +}; diff --git a/keyboards/kc60/keymaps/sgoodwin/compiled.hex b/keyboards/kc60/keymaps/sgoodwin/compiled.hex new file mode 100644 index 000000000..0d9a356f7 --- /dev/null +++ b/keyboards/kc60/keymaps/sgoodwin/compiled.hex @@ -0,0 +1,1469 @@ +:100000000C9401070C9445070C9445070C94450784 +:100010000C9445070C9445070C9445070C94450730 +:100020000C9445070C9445070C943A120C940C134D +:100030000C94E3200C9445070C9445070C94450759 +:100040000C9445070C9445070C9445070C94450700 +:100050000C9445070C944A210C9445070C944507D1 +:100060000C9445070C9445070C9445070C944507E0 +:100070000C9445070C9445070C9445070C944507D0 +:100080000C9445070C9445070C9445070C944507C0 +:100090000C9445070C9445070C9445070C944507B0 +:1000A0000C9445070C9445070C9445077113931362 +:1000B0007E1493137E14D513F8137E144D1460141C +:1000C000A917A917D817D81718183A18891989190C +:1000D00045188919EC18EC1856195E1989198419F4 +:1000E000F918F918F918F918F918F918F918F91888 +:1000F000F918F918F918F918F918F918F918F91878 +:100100000919191920192719311929001E001F0072 +:1001100020002100220023002400250026002700C3 +:100120002D002E002A002B0014001A0009001300D5 +:100130000A000D000F0018001C0033002F003000D3 +:1001400031000252040015001600170007000B00D2 +:10015000110008000C001200340000002800E1002B +:1001600000001D001B000600190005000E00100015 +:100170003600370038000000E500E000E200E30050 +:10018000000000002C000000000000000000E7005C +:10019000E600E400015329001E001F00200021009A +:1001A0002200230024002500260027002D002E0019 +:1001B0002A002B0014001A000800150017001C006C +:1001C00018000C00120013002F0030003100025202 +:1001D00004001600070009000A000B000D000E00C5 +:1001E0000F003300340000002800E10000001D0073 +:1001F0001B00060019000500110010003600370032 +:1002000038000000E500E000E200E300000000002C +:100210002C000000000000000000E700E600E40001 +:10022000005335003A003B003C003D003E003F00DB +:100230004000410042004300440045004C000100E2 +:100240000100520001000100010001000100010055 +:100250000100520081508050835001005000510035 +:100260004F00010001000100010001005000510099 +:100270004F000000010001000000AC00AE00AB0028 +:10028000AA00A900A800010001000100010000006F +:100290000100010001000100000000002C0000002E +:1002A00000000000000001500050010000000A445E +:1002B000454255473A20656E61626C65642E0A00BE +:1002C0005374617465206F6620726F772025583AE9 +:1002D0002025303136620A0048756D616E2D7265D9 +:1002E000616461626C65206D6174726978207374F9 +:1002F0006174653A0D0A004465626F756E63696EDC +:10030000672064656C61792072656D61696E696EE4 +:10031000673A2025580A005B735D004B6579626F70 +:100320006172642073746172742E0A005B575D0001 +:100330005B535D005B525D005B445D005B435D00B1 +:100340000E036B00630036003000760032000000C0 +:10035000080359006F007500000004030904090236 +:100360007400040100A0FA09040000010301010067 +:100370000921110100012240000705810308000A3C +:1003800009040100010301020009211101000122F9 +:100390004D000705820308000A090402000103005A +:1003A000000009211101000122360007058303081E +:1003B000000A0904030002030000000921110100E2 +:1003C0000122200007058403200001070504032003 +:1003D00000011201100100000008EDFE6060010044 +:1003E000010200010631FF0974A1010975150025FC +:1003F000FF9520750881020976150025FF95207567 +:10040000089102C005010980A1018502160100269C +:10041000B7001A01002AB700751095018100C005C8 +:100420000C0901A1018503160100269C021A010096 +:100430002A9C02751095018100C005010902A101E5 +:100440000901A100050919012905150025019505D6 +:10045000750181029501750381010501093009319A +:100460001581257F95027508810609381581257F3C +:10047000950175088106050C0A38021581257F95BE +:100480000175088106C0C005010906A1010507190B +:10049000E029E71500250195087501810295017590 +:1004A0000881010508190129059505750191029535 +:1004B00001750391010507190029FF150026FF00AA +:1004C000950675088100C00A002530325820006B5F +:1004D0006579626F6172645F7265706F72743A20E1 +:1004E000004B6579626F617264204C4544732073E0 +:1004F000746174653A2025780A00646F6E652E0A6F +:1005000000626F6F676D61676963207363616E3A44 +:10051000202E2E2E2000290A002575002F0025757B +:10052000005D28002564002000256400200025646B +:100530000020002564007C0025303258006D6F7566 +:1005400073656B6579205B62746E7C7820792076A8 +:1005500020685D287265702F61636C293A205B000A +:100560006D6B5F776865656C5F74696D655F746FEF +:100570005F6D6178203D2025640A006D6B5F7768B0 +:1005800065656C5F6D61785F7370656564203D20A3 +:1005900025640A006D6B5F74696D655F746F5F6DD4 +:1005A0006178203D2025640A006D6B5F6D61785F86 +:1005B0007370656564203D2025640A006D6B5F697A +:1005C0006E74657276616C203D2025640A006D6B47 +:1005D0005F64656C6179203D2025640A006D6B5F66 +:1005E000776865656C5F74696D655F746F5F6D6179 +:1005F00078203D2025640A006D6B5F776865656C27 +:100600005F6D61785F7370656564203D2025640AC5 +:10061000006D6B5F74696D655F746F5F6D617820ED +:100620003D2025640A006D6B5F6D61785F737065B6 +:100630006564203D2025640A006D6B5F696E7465FA +:100640007276616C203D2025640A006D6B5F6465E5 +:100650006C6179203D2025640A000A00257500366A +:100660003A20776865656C5F74696D655F746F5F6C +:100670006D61783A20000A00257500353A207768C8 +:1006800065656C5F6D61785F73706565643A2000C5 +:100690000A00257500343A2074696D655F746F5FD8 +:1006A0006D61783A20000A00257500333A206D61AB +:1006B000785F73706565643A20000A002575003222 +:1006C0003A20696E74657276616C286D73293A20E0 +:1006D000000A00257500313A2064656C6179282A8A +:1006E00031306D73293A20000A092D2056616C754E +:1006F0006573202D0A004D3E004D25643E20003FCD +:10070000007365742064656661756C740A00433E0D +:10071000200077686572652064656C74613A2063B7 +:100720007572736F723D25642C20776865656C3D2A +:1007300025640A53656520687474703A2F2F656EBE +:100740002E77696B6970656469612E6F72672F77A8 +:10075000696B692F4D6F7573655F6B6579730A00FF +:100760000A092D204D6F7573656B6579202D0A453B +:1007700053432F713A09717569740A313A096465F6 +:100780006C6179282A31306D73290A323A09696E11 +:1007900074657276616C286D73290A333A096D614C +:1007A000785F73706565640A343A0974696D655FD2 +:1007B000746F5F6D61780A353A09776865656C5FBB +:1007C0006D61785F73706565640A363A09776865AC +:1007D000656C5F74696D655F746F5F6D61780A0A3F +:1007E000703A097072696E742076616C7565730A6F +:1007F000643A097365742064656661756C74730A84 +:1008000075703A092B310A646F776E3A092D310AF7 +:10081000706775703A092B31300A7067646F776EB4 +:100820003A092D31300A0A7370656564203D2064F1 +:10083000656C7461202A206D61785F7370656564F2 +:10084000202A2028726570656174202F2074696DDC +:10085000655F746F5F6D6178290A003F004D3E202F +:1008600000433E20004C25640A0074696D65725F88 +:10087000636F756E743A202530346C580A006B65CE +:1008800079626F6172645F69646C653A2025580A09 +:10089000006B6579626F6172645F70726F746F6311 +:1008A0006F6C3A2025580A00686F73745F6B657926 +:1008B000626F6172645F6C65647328293A20255801 +:1008C0000A000A092D20537461747573202D0A00E3 +:1008D0004743433A20342E382E31204156522D4C76 +:1008E0004942433A20312E382E3073766E204156DD +:1008F000525F415243483A20617672350A004F50A8 +:1009000054494F4E533A204C55464120424F4F5484 +:100910004D41474943204D4F5553454B455920457F +:10092000585452414B455920434F4E534F4C45204C +:10093000434F4D4D414E4420343039360A00425524 +:10094000494C443A20386538393137302D64697262 +:100950007479202831333A32393A3233204A756E6D +:100960002031342032303136290A005649443A20A9 +:1009700030784645454428596F7529205049443AF6 +:1009800020307836303630286B6336307632292086 +:100990005645523A203078303030310A00444553C1 +:1009A000433A204120637573746F6D206B657962E3 +:1009B0006F6172640A000A092D2056657273696FAF +:1009C0006E202D0A000A092D20436F6E736F6C652F +:1009D000202D0A4553432F713A09717569740A6DC8 +:1009E0003A096D6F7573656B65790A000A092D20E8 +:1009F0004D61676963202D0A443A09446562756751 +:100A0000204D65737361676520546F67676C650A75 +:100A1000583A094D6174726978204465627567209F +:100A20004D6F646520546F67676C65202D20536897 +:100A30006F77206B65797072657373657320696E6B +:100A4000206D617472697820677269640A4B3A0993 +:100A50004B6579626F6172642044656275672054EA +:100A60006F67676C65202D2053686F77206B657901 +:100A70007072657373207265706F72740A4D3A09F3 +:100A80004465627567204D6F75736520546F6767A5 +:100A90006C650A563A0956657273696F6E0A533A65 +:100AA000095374617475730A433A09416374697632 +:100AB00061746520436F6E736F6C65204D6F646564 +:100AC0000A46312D4631303A0953776974636820FC +:100AD000746F204C6179657220302D3920284631A1 +:100AE00030203D204C30290A302D393A095377699E +:100AF00074636820746F204C6179657220302D39E1 +:100B00000A4553433A0953776974636820746F2028 +:100B10004C6179657220302028616C7465726E6159 +:100B20007465206B65792031290A47524156453A50 +:100B30000953776974636820746F204C617965721A +:100B400020302028616C7465726E617465206B655D +:100B5000792032290A50415553453A094A756D703A +:100B600020746F20426F6F746C6F6164657220280F +:100B70005265736574290A453A095072696E74208A +:100B8000454550524F4D2053657474696E67730A22 +:100B9000000A002575002E6C6576656C3A20000A07 +:100BA000002575002E656E61626C653A20000A00B2 +:100BB00025303258006261636B6C696768745F63EB +:100BC0006F6E6669672E7261773A20000A0025759C +:100BD000002E6E6B726F3A20000A002575002E738E +:100BE0007761705F6261636B736C6173685F626190 +:100BF000636B73706163653A20000A002575002EEF +:100C0000737761705F67726176655F6573633A20C1 +:100C1000000A002575002E6E6F5F6775693A200027 +:100C20000A002575002E737761705F72616C745FC6 +:100C3000726775693A20000A002575002E73776186 +:100C4000705F6C616C745F6C6775693A20000A00B4 +:100C50002575002E636170736C6F636B5F746F5FDB +:100C6000636F6E74726F6C3A20000A002575002E57 +:100C7000737761705F636F6E74726F6C5F636170C6 +:100C8000736C6F636B3A20000A0025303258006B9A +:100C900065796D61705F636F6E6669672E726177EB +:100CA0003A20000A002575002E6D6F7573653A2095 +:100CB000000A002575002E6B6579626F6172643AD7 +:100CC00020000A002575002E6D61747269783A2043 +:100CD000000A002575002E656E61626C653A200081 +:100CE0000A00253032580064656275675F636F6E75 +:100CF0006669672E7261773A20000A0025750064E4 +:100D0000656661756C745F6C617965723A20003F4D +:100D1000000A6D6F7573653A206F66660A000A6D8A +:100D20006F7573653A206F6E0A000A6B6579626FA2 +:100D30006172643A206F66660A000A6B6579626FB9 +:100D40006172643A206F6E0A000A6D61747269788C +:100D50003A206F66660A000A6D61747269783A20FB +:100D60006F6E0A000A64656275673A206F66660AEC +:100D7000000A64656275673A206F6E0A000A0A4AC3 +:100D8000756D70696E6720746F20626F6F746C6F21 +:100D9000616465722E2E2E2000433E20006565633F +:100DA0006F6E6669673A0A006261636B6C696768B7 +:100DB0007420737465703A2025750A006261636B54 +:100DC0006C6967687420746F67676C653A20257575 +:100DD0000A006261636B6C696768742064656372A2 +:100DE000656173653A2025750A006261636B6C6901 +:100DF00067687420696E6372656173653A20257552 +:100E00000A0011241FBECFEFDAE0DEBFCDBF04B66B +:100E100003FE24C08091F3019091F401A091F501AB +:100E2000B091F6018730904BA740B04BB9F41092C7 +:100E3000F3011092F4011092F5011092F60114BE24 +:100E400084B7877F84BF88E10FB6F89480936000F1 +:100E5000109260000FBEE0E0F8E3099511E0A0E019 +:100E6000B1E0ECE6FBE502C005900D92A634B107B7 +:100E7000D9F721E0A6E4B1E001C01D92A33FB2077B +:100E8000E1F70E947A0F0C94B42D0C940000FF93AC +:100E9000EF93E0914601F0914701309709F00995F1 +:100EA000EF91FF910895FC018591803011F0EFDF03 +:100EB000FBCF0895FF27E0E230E247FF0CC04195E9 +:100EC00097FF09C0EDE26095709580959095611D42 +:100ED000711D811D911D27FF02C0219530E350E255 +:100EE000AA27660F771F881F991FAA1FA41710F043 +:100EF000A41B63955A95A9F7AA3008F0A95FA05DD5 +:100F0000AF93F395611571058105910541F7ED32B8 +:100F100011F4EF93F395F21718F43F93F395FBCF89 +:100F20008F91B5DFFA95E1F70895E991F9918591EF +:100F3000803021F0853219F0AADFF9CF089520E042 +:100F4000E89455915532C1F3503311F4689455919A +:100F50005A3348F4505390F3220F022E220F220FDF +:100F6000200D250FF4CF0EF42195899199915336D8 +:100F700019F3533729F1533559F1BC0188279927C3 +:100F8000E8945C3621F4899199916894559154368E +:100F900039F446EF7EF077FF0DC08FEF9FEF0AC068 +:100FA00055374AE039F0583540E121F0523642E0F9 +:100FB00009F00895FF93EF937DDFEF91FF91B7CF95 +:100FC000FF93EF93FC0181918030B9F360DFFBCF99 +:100FD000FF93EF9368DFF1CFDF93CF93CDB7DEB709 +:100FE0002596A3DFCF91DF9108950895089581E0BC +:100FF000089508950C94F6070C94F7070C94F907DC +:10100000269A2E988FEF9FEF90938700809386000B +:1010100082E28093800089E1809381000C943E2BD2 +:101020000E9400080C94F5072E9881110AC0809147 +:1010300080008F7D8093800010928B0010928A0038 +:101040000895833041F48091800080628093800015 +:101050008FEF9FEF12C0909180009062909380007C +:1010600023E030E0281B3109220F331F8FEF9FEF61 +:1010700002C0969587952A95E2F790938B0080930E +:101080008A00089580E090E0089581E008950C942E +:10109000450808950F931F93CF93DF93EC010881C8 +:1010A0001981C8010E94221FB8010E94E3088C0127 +:1010B000BE010E944708882309F47AC08A818823E8 +:1010C000C9F18091530181111EC0043180E51807D8 +:1010D00089F50E94490881E0809353010E941521FF +:1010E000909352018093510110924A0110924C0149 +:1010F00010924B0110924E0110924D01109250012E +:1011000010924F0155C080915101909152010E945F +:101110002121883C910570F480914A01E82FF0E08C +:10112000EE0FFF1FE55BFE4F118300838F5F8093FF +:101130004A013EC0043880E5180721F00538104503 +:10114000A1F02AC08A81882321F01092480182E010 +:1011500012C080914801811106C086E20E944716A4 +:1011600086E20E940F1782E014C08A81882331F042 +:101170001092490180E20E945E171AC080914901D5 +:10118000811106C087E20E94471687E20E940F176E +:1011900080E20E9465170CC081E080934801809333 +:1011A0004901CE01DF91CF911F910F910C94FC0763 +:1011B00080E0DF91CF911F910F9108950C9410085A +:1011C0000C94FA0708959EE0799FF001112496E4AB +:1011D000899FE00DF11D1124E60FF11DEE0FFF1F99 +:1011E000E65FFE4F859194910895880F991F865769 +:1011F0009040FC01859194910895880F991F865F16 +:101200009E4FFC018591949108950F931F93CF9366 +:10121000DF93EC01811521E39207A0F5811530E3FE +:10122000930708F0D7C0883E9105D8F4803E910519 +:1012300008F06FC0883A910578F4853A910508F076 +:101240006AC08130910509F4F8C108F4F3C1843013 +:10125000910508F05EC0EEC18B3B910508F466C0B5 +:10126000E9C1C11580E2D80708F0AFC0C11591E00F +:10127000D90708F04EC0C03FD10508F4DBC18E018C +:1012800010651CC2803820E5920700F5803730E5F4 +:10129000930708F0A3C0C11580E5D80709F4ACC0D6 +:1012A00050F4CE01905480319F4008F0C3C18E01AC +:1012B0001F70106A03C2C13030E5D30709F4AAC019 +:1012C000C43180E5D80708F4AFC0B4C1C33890E595 +:1012D000D90709F48EC050F4C13830E5D30709F4BA +:1012E00082C008F083C000E011EDE8C1C03191E593 +:1012F000D90708F49FC1C11527E5D20708F436C104 +:10130000CE0190578115904108F094C18E011F7055 +:101310008FC18E01D3C1853A910509F491C1863AF6 +:10132000910509F490C103E810E4C8C1883A910519 +:1013300009F48CC1893A910509F48BC18A3A910567 +:1013400009F48AC18B3A910509F489C18C3A910557 +:1013500009F488C18D3A910509F487C1803B910554 +:1013600009F486C18E3A910509F485C18F3A910539 +:1013700009F484C1813B910509F483C1823B910545 +:1013800009F482C1833B910509F481C1843B910535 +:1013900009F480C1853B910509F47FC1863B910525 +:1013A00009F47EC1873B910509F47DC1883B910515 +:1013B00009F47CC1893B910509F47BC18A3B910505 +:1013C00009F07AC10AE216E479C1CE019F700E9449 +:1013D000FD0875C18C011127106C70C18C010F7054 +:1013E0001127146D6BC100E010ED68C100E012ED33 +:1013F00065C100E013ED62C10E94F7198FEF94E31D +:101400002CE0815090402040E1F700C000000E9495 +:101410006F2154C18EEA92E00E9453078091D3015C +:1014200081608093D3014AC10E942223811102C0AE +:101430000E9403230E943F2390E09093F201809347 +:10144000F101C23030E5D30721F48091F1018160D0 +:1014500086C0C43080E5D80721F48091F101826014 +:101460007EC0C63090E5D90721F48091F1018460F7 +:1014700076C0C83020E5D20719F48091F10127C069 +:10148000CA3030E5D30721F48091F101806167C053 +:10149000CC3080E5D80721F48091F10180625FC0F3 +:1014A000CE3090E5D90721F48091F101806457C0D6 +:1014B000C03120E5D20721F48091F10180684FC04E +:1014C000C23130E5D30729F48091F101846088604E +:1014D00046C0C33080E5D80721F48091F1018E7FAA +:1014E0003EC0C53090E5D90721F48091F1018D7F90 +:1014F00036C0C73020E5D20721F48091F1018B7FFF +:101500002EC0C93030E5D30719F48091F10126C00F +:10151000CB3080E5D80721F48091F1018F7E1FC088 +:10152000CD3090E5D90721F48091F1018F7D17C06E +:10153000CF3020E5D20721F48091F1018F7B0FC0DD +:10154000C13130E5D30721F48091F1018F7707C0D5 +:10155000C331D04531F48091F1018B7F877F809337 +:10156000F1018091F1010E944323A8C08D2F99279A +:101570008F70992781309105E9F48E01037011274E +:101580009C0102C0220F331F0A95E2F789011C68F3 +:10159000CE01E4E0880F991FEA95E1F78827937060 +:1015A000082B192BF3E0CC0FDD1FFA95E1F7C0767D +:1015B000DD272CC08230910529F41C2F0027016FF4 +:1015C000106A7CC08330910561F4CE018370992745 +:1015D00001E010E002C0000F111F8A95E2F71C68BD +:1015E0000EC084309105A9F4CE018370992701E0E3 +:1015F00010E002C0000F111F8A95E2F71A6863E03D +:10160000CC0FDD1F6A95E1F7C07ED7700C2B1D2B28 +:1016100055C08530910529F41C2F0027046F106AEE +:101620004DC0069709F04AC0CF71DD271C2F002757 +:10163000106244C000E010E041C001E010E03EC094 +:1016400001E810E43BC002E810E438C002EE14E404 +:1016500035C009EE14E432C00AEE14E42FC005EBE5 +:1016600014E42CC006EB14E429C007EB14E426C0F4 +:101670000CEC14E423C00DEC14E420C003E815E4E2 +:101680001DC00AE815E41AC002E915E417C004E910 +:1016900015E414C001E216E411C003E216E40EC022 +:1016A00004E216E40BC005E216E408C006E216E404 +:1016B00005C007E216E402C000E014E4C801DF91AF +:1016C000CF911F910F9108959EE0799FF001112411 +:1016D00096E4899FE00DF11D1124E60FF11DEE0F38 +:1016E000FF1FE65FFE4F85919491803E9105E0F4E7 +:1016F000803C910558F58133910509F46FC048F499 +:101700008932910509F463C08A32910509F46DC0EC +:1017100072C089339105E9F082389105D1F08533A3 +:10172000910509F44DC067C0833E910581F138F4FD +:10173000803E9105B9F0823E9105D9F05CC0863EAD +:10174000910561F1873E9105A1F155C00E94F50810 +:1017500008952091F10120FD02C021FF4CC080EED0 +:1017600090E049C08091F10180FFF9CF89E390E0DA +:1017700042C08091F10182FF0EC08091F10184FF8F +:1017800003C080E090E037C083EE90E034C08091E9 +:10179000F10182FFF2CF82EE90E02DC08091F10145 +:1017A00083FF0BC08091F10184FDEBCF87EE90E0C9 +:1017B00022C08091F10183FFF5CF86EE90E01BC03F +:1017C0008091F10185FF07C089E290E014C080910B +:1017D000F10185FFF9CF85E390E00DC08091F10123 +:1017E00086FF07C08AE290E006C08091F10186FF83 +:1017F000F9CF81E390E00E94050908950C94FE075B +:10180000E82FF0E0EE5DFE4F8081E82FEF70F0E012 +:10181000282F22952F7081E090E0022E01C0880FC2 +:101820000A94EAF780A308950F931F93CF93DF9351 +:1018300085B7806885BF85B7806885BFC4E0D0E084 +:1018400001E010E0FE01EE5DFE4F8081E82FEF70B9 +:10185000F0E021A182958F70A80102C0440F551FAE +:101860008A95E2F7242B21A38C2F0E94000C21974C +:1018700048F78DE090E041E050E0FC01EC5EFE4F67 +:101880002081E22FEF70F0E062A122952F70DA0143 +:1018900002C0AA0FBB1F2A95E2F76A2B62A3019729 +:1018A00060F7DF91CF911F910F910C94DE08EF92BA +:1018B000FF920F931F93CF93DF93CEE5D1E084E0A7 +:1018C000E82E01E010E095E0F92E8E2D0E94000C2C +:1018D0002DE030E040E050E0F901EC5EFE4F808109 +:1018E000E82FEF70F0E060A170E082958F7002C089 +:1018F000759567958A95E2F760FD09C0B801022EDB +:1019000002C0660F771F0A94E2F7462B572B21502F +:10191000310910F73A912A912417350721F059839C +:101920004883F09200018E2D0E94000CEA949FEFF4 +:10193000E912CBCF2091000127FD2EC08091D30169 +:1019400080FF10C0822F992787FD90959F932F933A +:1019500087EF92E09F938F930E94EC070F900F9078 +:101960000F900F908091000181508093000187FDBE +:1019700007C08FE99FE00197F1F700C000000CC09D +:10198000A8E6B1E0EEE5F1E0929182919E938E930C +:1019900091E0E435F907C1F70E94E00881E0DF91AA +:1019A000CF911F910F91FF90EF900895E82FF0E0F5 +:1019B000EE0FFF1FE25AFE4F808191810895EF9252 +:1019C000FF920F931F93CF93DF938091D30180FFFA +:1019D00004C088ED92E00E9453070EE511E0C0E0DC +:1019E000D0E040ECE42E42E0F42E8091D30180FF61 +:1019F00013C0F801808191810E947F209F938F9373 +:101A0000DF93CF93FF92EF920E94EC070F900F901D +:101A10000F900F900F900F9021960E5F1F4FC530C3 +:101A2000D10519F7DF91CF911F910F91FF90EF90A2 +:101A300008951F93CF93DF93C8E6D1E010E09A9109 +:101A40008A910E946120180F81E0CE35D807B9F73E +:101A5000812FDF91CF911F91089580917301089597 +:101A60009FB7F89410926A019FBF9091E80194305B +:101A700009F058C09091E9009F702091EC0020FF80 +:101A800002C020E801C020E0292B94E09093E900F7 +:101A90009091EB0090FF43C09091EE0097FF3FC004 +:101AA00090916801992321F09091E80095FF37C04B +:101AB0001092680196E03091E80035FD15C0309134 +:101AC000E801343061F53091EB0035FD28C09150CC +:101AD00021F481E08093680122C0EFE9FFE03197B3 +:101AE000F1F700C00000E7CF8093F1008091E8009B +:101AF00085FD0AC08091E80080FFFCCF8091E8005E +:101B00008E778093E80006C08FB7F89491E09093A9 +:101B10006A018FBF2F702093E90080E008952F7035 +:101B20002093E9008FEF0895CF93DF9300D01F92A9 +:101B3000CDB7DEB72091E801243019F523E02983E1 +:101B40009B838A832093E9008FEF9091E800815076 +:101B500095FD06C095ED9A95F1F700008111F5CF3E +:101B60008091E80085FF0DC040E050E063E070E048 +:101B7000CE0101960E942D108091E8008E7780930F +:101B8000E8000F900F900F90DF91CF910895CF93C1 +:101B9000DF9300D01F92CDB7DEB72091E80124304B +:101BA00021F522E029839B838A8383E08093E900E7 +:101BB0008FEF9091E800815095FD06C095ED9A95C4 +:101BC000F1F700008111F5CF8091E80085FF0DC08D +:101BD00040E050E063E070E0CE0101960E942D10DD +:101BE0008091E8008E778093E8000F900F900F901F +:101BF000DF91CF9108952091E8012430F1F422E0A3 +:101C00002093E9002FEF3091E800215035FD06C008 +:101C100035ED3A95F1F700002111F5CF2091E8005C +:101C200025FF0BC040E050E065E070E00E942D1001 +:101C30008091E8008E778093E8000895CF93DF933A +:101C4000EC018091E801843039F581E08093E9006E +:101C50008FEF9091E800815095FD06C095ED9A9523 +:101C6000F1F700008111F5CF8091E80085FF14C0E5 +:101C700040E050E068E070E0CE010E942D108091BD +:101C8000E8008E778093E80088E0FE01ABE6B1E0E3 +:101C900001900D928A95E1F7DF91CF9108958CE341 +:101CA00093E00E9453078091E701811109C00E94CF +:101CB000BF110E941C128091E20084608093E200B8 +:101CC000089588E393E00E9453071092E701089576 +:101CD00084E393E00C94530780E393E00C94530760 +:101CE0008CE293E00E9453070C94D8208091690104 +:101CF0008F5F8093690162E30E94442D911135C08A +:101D00001092690180916A01882379F18091E8013C +:101D1000843049F58091E9008F709091EC0090FF3C +:101D200002C090E801C090E0982B84E08093E90025 +:101D30008091EB0080FF14C08091EE0087FF10C0FF +:101D40008091E80085FF03C01092F100F9CF8091E7 +:101D5000E80080FF05C08091E8008E778093E8005E +:101D60009F709093E90010926A01089542E061EC3F +:101D700081E00E94391142E061EC82E00E94391159 +:101D800042E061EC83E00E94391142E261EC84E0C0 +:101D90000C9439118091EA01833009F453C030F476 +:101DA000813071F0823009F48CC008958A3009F4D2 +:101DB00078C08B3009F45EC0893009F09AC020C029 +:101DC0008091E901813A09F094C08091E800877F11 +:101DD0008093E8008091ED019091EE01892B21F034 +:101DE00060E080E090E003C068E08BE691E070E0A6 +:101DF0000E9476108091E8008B778093E800089528 +:101E00008091E901813209F074C08091ED019091D7 +:101E1000EE01892B09F06DC08091E800877F8093E7 +:101E2000E8008091E80082FD05C08091E801811101 +:101E3000F8CF5FC08091F100809373018091E8003A +:101E40008B7753C08091E901813A09F052C08091AB +:101E5000ED019091EE01892B09F04BC08091E800D3 +:101E6000877F8093E8008091E80080FFFCCF80911D +:101E70000B0136C08091E9018132D9F58091ED01E5 +:101E80009091EE01892BA9F58091E800877F8093DE +:101E9000E8000E946E118091EB0180930B010C947D +:101EA000F7198091E901813221F58091E800877F5F +:101EB0008093E8000E946E118091EC018093740180 +:101EC00008958091E901813AA1F48091E800877F2B +:101ED0008093E8008091E80080FFFCCF809174013E +:101EE0008093F1008091E8008E778093E8000C9455 +:101EF0006E11089584B7877F84BF88E10FB6F89488 +:101F000080936000109260000FBE80E880936100B3 +:101F1000109261000E9441150E94BF110E941C1284 +:101F20008091E20084608093E20080E39DE00E9463 +:101F30005C2078940E9496140E94431581E091E001 +:101F40000E94B3148BE193E00E9453078091E80153 +:101F5000853089F487E193E00E9453070E9499201D +:101F60008091E601882391F30E94C720882371F3B2 +:101F70000E941710EBCF0E946915E8CF292F332755 +:101F800023303105A9F06CF42130310509F442C049 +:101F90002230310509F043C084E790E02EE533E0BC +:101FA00042C021323105C9F02232310519F137C062 +:101FB00099278130910541F08230910541F0892BBC +:101FC00071F5EAE5F3E005C0E0E5F3E002C0E0E426 +:101FD000F3E0849190E09F0126C0643000F5E62F85 +:101FE000F0E0EE0FFF1FED5CFE4F2081318189E0B4 +:101FF00090E019C0643098F4E62FF0E0DF01AA0FFA +:10200000BB1FA55DBE4F2D913C91E95DFE4F8081C8 +:1020100090E009C082E190E022ED33E004C080E06E +:1020200090E020E030E0FA0131832083089580E1E0 +:1020300089BD82E189BD09B400FEFDCF8091D80041 +:102040008F7D8093D8008091E00082608093E000D3 +:102050008091E00081FDFCCF0895CF92DF92EF9256 +:10206000FF920F931F93CF93DF937C018B01EA01C3 +:102070000E948F11811131C0209731F088819981A0 +:10208000081B190BE80EF91EC12CD12C01151105E6 +:1020900019F18091E80085FD14C08091E8008E77E9 +:1020A0008093E800209741F0888199818C0D9D1DD7 +:1020B0009983888385E011C00E948F11882331F3B2 +:1020C0000CC0F70181917F018093F100015011094B +:1020D000FFEFCF1ADF0ADACF80E0DF91CF911F91B7 +:1020E0000F91FF90EF90DF90CF9008952091EF0136 +:1020F0003091F0012617370748F06115710539F462 +:102100002091E8002E772093E80001C0B901FC017E +:1021100020E061157105B9F18091E801882309F487 +:1021200040C0853009F43FC08091E80083FD3DC088 +:102130008091E80082FF06C08091E80082FF26C0FF +:1021400080E008958091E80080FFE3CF2091F300C4 +:102150008091F20090E0922B6115710551F088306A +:10216000910538F421912093F10061507109019695 +:10217000F3CF21E0089709F020E08091E8008E7706 +:102180008093E800C6CF2111C7CFD6CF8091E80158 +:10219000882339F0853039F08091E80083FFCCCF77 +:1021A00004C082E0089583E0089581E008952091BD +:1021B000EF013091F0012617370748F061157105DE +:1021C00039F42091E8002E772093E80001C0B9018E +:1021D000FC0120E061157105C1F18091E8018823BF +:1021E00009F441C0853009F440C08091E80083FDC6 +:1021F0003EC08091E80082FF06C08091E80082FF27 +:1022000027C080E008958091E80080FFE3CF20910F +:10221000F3008091F20090E0922B6115710559F066 +:102220008830910540F424912093F100319661505B +:1022300071090196F2CF21E0089709F020E0809122 +:10224000E8008E778093E800C5CF2111C6CFD5CFA7 +:102250008091E801882339F0853039F08091E800D9 +:1022600083FFCBCF04C082E0089583E0089581E02E +:102270000895982F973058F59093E900981739F002 +:102280007091EC002091ED005091F00003C0242FDC +:10229000762F50E021FF19C03091EB003E7F309344 +:1022A000EB003091ED003D7F3093ED003091EB007D +:1022B00031603093EB007093EC002093ED0050936D +:1022C000F0002091EE0027FF07C09F5FD3CF8F70F3 +:1022D0008093E90081E0089580E008958091E9010C +:1022E00087FD05C08091E80080FF0EC012C080917C +:1022F000E80082FD05C08091E8018111F8CF0895C2 +:102300008091E8008B7708C08091E8018111EACFC5 +:1023100008958091E8008E778093E8000895809179 +:10232000E4009091E50045E62091EC0020FF21C0FB +:102330002091E80020FD21C02091E801222389F0AE +:10234000253089F02091EB0025FD0FC02091E4009D +:102350003091E5002817390739F3415041F0C901A0 +:10236000E3CF82E0089583E0089581E0089584E05A +:1023700008952091E80022FFDFCF80E008950E94B9 +:102380002D120E943512E0EEF0E0808181608083A2 +:10239000E8EDF0E080818F77808319BCA7EDB0E095 +:1023A0008C918E7F8C9380818F7E80831092E70149 +:1023B00008950F931F93CF93DF930E942D120E94D5 +:1023C0003512C8EDD0E088818F7788838881806856 +:1023D000888388818F7D888319BC1092E8011092D0 +:1023E000E4011092E6011092E50100EE10E0F80120 +:1023F00080818B7F808388818160888342E060E078 +:1024000080E00E943911E1EEF0E080818E7F8083D0 +:10241000E2EEF0E08081816080838081886080834B +:10242000F80180818E7F8083888180618883DF913D +:10243000CF911F910F910895E8EDF0E080818F7E9C +:102440008083E7EDF0E080818160808384E082BF5B +:1024500081E08093E7010C94D911E8EDF0E08081F0 +:102460008E7F80831092E20008951092DA0010921D +:10247000E10008951F920F920FB60F9211242F932F +:102480003F934F935F936F937F938F939F93AF93FC +:10249000BF93EF93FF938091E10082FF0BC0809187 +:1024A000E20082FF07C08091E1008B7F8093E10012 +:1024B0000E94760E8091DA0080FF1FC08091D800C4 +:1024C00080FF1BC08091DA008E7F8093DA008091BC +:1024D000D90080FF0DC080E189BD82E189BD09B4CA +:1024E00000FEFDCF81E08093E8010E944F0E05C001 +:1024F00019BC1092E8010E94610E8091E10080FFFA +:1025000019C08091E20080FF15C08091E2008E7FAB +:102510008093E2008091E20080618093E2008091EC +:10252000D80080628093D80019BC85E08093E801D0 +:102530000E946C0E8091E10084FF30C08091E20027 +:1025400084FF2CC080E189BD82E189BD09B400FE11 +:10255000FDCF8091D8008F7D8093D8008091E100DD +:102560008F7E8093E1008091E2008F7E8093E20075 +:102570008091E20081608093E2008091E4018823F1 +:1025800011F084E007C08091E30087FF02C083E080 +:1025900001C081E08093E8010E94700E8091E1000B +:1025A00083FF29C08091E20083FF25C08091E10074 +:1025B000877F8093E10082E08093E8011092E4013C +:1025C0008091E1008E7F8093E1008091E2008E7F18 +:1025D0008093E2008091E20080618093E20042E01B +:1025E00060E080E00E9439118091F0008860809363 +:1025F000F0000E94680EFF91EF91BF91AF919F9103 +:102600008F917F916F915F914F913F912F910F909B +:102610000FBE0F901F9018951F920F920FB60F923A +:1026200011242F933F934F935F936F937F938F93D7 +:102630009F93AF93BF93CF93EF93FF93C091E90024 +:10264000CF708091EC001092E9008091F000877FBC +:102650008093F00078940E9448131092E9008091D2 +:10266000F00088608093F000C093E900FF91EF9143 +:10267000CF91BF91AF919F918F917F916F915F911A +:102680004F913F912F910F900FBE0F901F90189573 +:102690001F93CF93DF93CDB7DEB7AA970FB6F89409 +:1026A000DEBF0FBECDBFE9EEF1E08091F100819376 +:1026B00021E0E13FF207C9F70E94CA0E8091E800CD +:1026C00083FF1CC12091E9013091EA01832F90E042 +:1026D0008A30910508F012C1FC01EA5AFF4F0C94B0 +:1026E000642D203881F0223809F008C18091ED0175 +:1026F0008F708093E9008091EB0085FB882780F93B +:102700001092E90006C08091E5019091E6019111D7 +:1027100082609091E800977F9093E8008093F100A9 +:102720001092F100C5C0822F8D7F09F0E7C02223EF +:1027300019F0223061F0E2C08091EB01813009F0A4 +:10274000DDC0333009F080E08093E60128C080913D +:10275000EB01811124C02091ED012F7009F4CEC04E +:102760002093E9008091EB0080FF19C08091EB007D +:10277000333011F4806211C080618093EB0081E0FE +:1027800090E0022E01C0880F0A94EAF78093EA00D5 +:102790001092EA008091EB0088608093EB00109229 +:1027A000E9008091E800877F86C02111A7C01091C1 +:1027B000EB011F778091E3008078812B8093E30009 +:1027C0008091E800877F8093E8000E946E118091DD +:1027D000E80080FFFCCF8091E30080688093E300F5 +:1027E000112311F083E001C082E08093E80186C0EC +:1027F0002058223008F082C08091EB019091EC01CA +:102800008C3D23E0920779F583E08A838AE289830D +:102810004FB7F894DE01139620E03EE051E2E32F3B +:10282000F0E050935700E49120FF03C0E295EF7071 +:102830003F5FEF708E2F90E0EA3010F0C79601C036 +:10284000C0968D939D932F5F243149F74FBF8091A0 +:10285000E800877F8093E8006AE270E0CE0101968D +:102860000E94761014C0AE014F5F5F4F6091ED0182 +:102870000E94BE0F009709F441C02091E800277F15 +:102880002093E800BC0189819A810E94D710809131 +:10289000E8008B778093E80031C0203879F580918B +:1028A000E800877F8093E8008091E4018093F10045 +:1028B0008091E8008E778093E8000E946E111EC020 +:1028C00021111CC09091EB019230C0F48091E8007E +:1028D000877F8093E8009093E4010E946E118091BD +:1028E000E401811104C08091E30087FF02C084E00D +:1028F00001C081E08093E8010E94B60E8091E8005B +:1029000083FF0AC08091E800877F8093E800809170 +:10291000EB0080628093EB00AA960FB6F894DEBFBE +:102920000FBECDBFDF91CF911F910895CF938091BE +:10293000E8018823B1F08091E9008F709091EC005C +:1029400090FF02C090E801C090E0C92FC82B109200 +:10295000E9008091E80083FD0E944813CF70C09386 +:10296000E900CF91089590937A01809379010895B9 +:10297000E0917901F0917A01309721F00190F08196 +:10298000E02D099480E00895FF920F931F93CF9359 +:10299000DF938C01E0917901F0917A01309799F100 +:1029A0000280F381E02D09958091D30182FF2BC035 +:1029B00080FF04C08FEC94E00E945307E80188E098 +:1029C000F82E09EC14E08091D30180FF0BC08881C0 +:1029D0001F928F931F930F930E94EC070F900F90FD +:1029E0000F900F90FA942196F110EDCF8091D301C2 +:1029F00080FF09C087EC94E0DF91CF911F910F9188 +:102A0000FF900C945307DF91CF911F910F91FF908E +:102A10000895E0917901F0917A01309721F00480D6 +:102A2000F581E02D09940895209177013091780186 +:102A30008217930771F09093780180937701E0916A +:102A40007901F0917A01309721F00680F781E02D2D +:102A500009940895209175013091760182179307AA +:102A600071F09093760180937501E0917901F09176 +:102A70007A01309721F00084F185E02D09940895C2 +:102A800008950C9440150E940C210E94140C0E9481 +:102A9000D7210C943E2BCF93DF931F92CDB7DEB797 +:102AA0009091D30192FF10C090FF0EC01F928F93A0 +:102AB00021EE34E03F932F9389830E94EC070F901F +:102AC0000F900F900F9089810F90DF91CF910C9410 +:102AD000FE0B5F926F927F928F929F92AF92BF9206 +:102AE000CF92DF92EF92FF920F931F93CF93DF93DA +:102AF00000D000D01F92CDB7DEB70E94570C96E8E9 +:102B0000C92E91E0D92E04E010E0AA24A394B12CA0 +:102B1000502E802F0E94D60C3C01F601F290E290DC +:102B20006F01E826F926E114F104A1F4015011091E +:102B300078F78FEF89838A831B820E941521816039 +:102B4000782F9D838C8349815A816B818D810E946E +:102B5000191638C08091D30181FD0E94DF0C2DE051 +:102B600030E04501022E02C0880C991C0A94E2F75D +:102B7000C4018E219F21892B09F129835A82682063 +:102B8000792081E0672809F480E08B830E94152179 +:102B90008160782F9D838C8349815A816B818D81DF +:102BA0000E941916F801EE0FFF1FE458FE4F8081B6 +:102BB0009181882599259183808304C02150310912 +:102BC00080F6B4CF0E944C2510917B010E94B8146E +:102BD0001817D1F00E94B81480937B010F900F90CA +:102BE0000F900F900F90DF91CF911F910F91FF9059 +:102BF000EF90DF90CF90BF90AF909F908F907F909D +:102C00006F905F900C944B150F900F900F900F905A +:102C10000F90DF91CF911F910F91FF90EF90DF9078 +:102C2000CF90BF90AF909F908F907F906F905F906C +:102C30000895CF93DF93CDB7DEB72B970FB6F894F7 +:102C4000DEBF0FBECDBF4F83588769877A878B87DA +:102C5000DE01119686E0FD0111928A95E9F785E083 +:102C6000FE01379601900D928A95E1F749815A81CC +:102C70006B817C818D819E810E94C71C2B960FB633 +:102C8000F894DEBF0FBECDBFDF91CF910895CF93F3 +:102C9000C82F882309F4C1C0823859F40E94B8149F +:102CA00081FDBBC089E30E94A21F0E942D2089E301 +:102CB0000CC0833879F40E94B81480FDAEC083E55F +:102CC0000E94A21F0E942D2083E50E94C31FCF9166 +:102CD0000C942D20843859F40E94B81482FD9DC0B4 +:102CE00087E40E94A21F0E942D2087E4EECF8CEF84 +:102CF0008C0F813A48F48C2F0E94EC2981118DC0F1 +:102D00008C2F0E94A21FE3CF80E28C0F883048F402 +:102D1000C77081E001C0880FCA95EAF70E94E41FDE +:102D2000D6CF8BE58C0F833078F4C53A29F0C63ABC +:102D300031F482E890E005C081E890E002C083E8C9 +:102D400090E0CF910C94141588E58C0F833108F036 +:102D500064C0C83A39F1C93A41F1CA3A49F1CB3AAB +:102D600051F1CC3A59F1CD3A61F1C03B69F1CE3A1B +:102D700071F1CF3A79F1C13B81F1C23B89F1C33B9B +:102D800091F1C43B99F1C53BA1F1C63BA9F1C73B09 +:102D9000B1F1C83BB9F1C93BC1F1CA3BC9F58AE2FF +:102DA00092E038C082EE90E035C089EE90E032C00B +:102DB0008AEE90E02FC085EB90E02CC086EB90E08F +:102DC00029C087EB90E026C08CEC90E023C08DEC0E +:102DD00090E020C083E891E01DC08AE891E01AC02D +:102DE00082E991E017C084E991E014C081E292E0A9 +:102DF00011C083E292E00EC084E292E00BC085E253 +:102E000092E008C086E292E005C087E292E002C04C +:102E100080E090E0CF910C942A15CF9108958823FB +:102E200009F44BC0823859F40E94B81481FF45C0A0 +:102E300089E30E94A21F0E942D2089E30CC08338E1 +:102E400071F40E94B81480FF38C083E50E94A21F6D +:102E50000E942D2083E50E94C31F0C942D208438EE +:102E600059F40E94B81482FF28C087E40E94A21F70 +:102E70000E942D2087E4EFCF9CEF980F913A58F3F2 +:102E800090E2980F983050F4877091E001C0990F4C +:102E90008A95EAF7892F0E94EA1FDFCF9BE5980FFA +:102EA000933020F480E090E00C941415885A83311C +:102EB00020F480E090E00C942A150895882321F0F6 +:102EC0000E94E41F0C942D200895882321F00E9475 +:102ED000EA1F0C942D2008958F929F92AF92BF927B +:102EE000CF92DF92EF92FF920F931F93CF93DF93D6 +:102EF0001F92CDB7DEB74C01A62E472FFC01E5800F +:102F0000E2948FE0E822F280FF2021F079830E9492 +:102F10000120498149830E949B1F4981882381F0B8 +:102F2000FF2071F080E28A0D883050F082E00E942C +:102F3000841F0E949B1FBB24B394B826498101C003 +:102F4000B12CE42FE295EF70F0E0E05AFF4F0C94C3 +:102F5000642D842F807F142F1F70882311F0129509 +:102F6000107FFF2089F0112309F496C180E28A0DB9 +:102F7000883020F4812F0E94E41F03C0812F0E941B +:102F8000F41F0E942D2088C18A2D0E940F17112343 +:102F900009F4BFC180E28A0D883020F4812F0E949D +:102FA000EA1F03C0812F0E94FA1F0E942D20B1C189 +:102FB000242F207F842F8F70203211F08295807F04 +:102FC000AA2021F0F1E0AF16B1F021C0FF2041F0BE +:102FD000EE2039F191E0E91224C00E94142099C139 +:102FE000EE2021F0E1E0EE1609F493C189830E94FE +:102FF000172089810BC1FF2029F0F5E0FE1508F4A8 +:1030000088C10FC094E09E1508F483C1FFC0FF2063 +:1030100059F0EE2031F0F401958190FF3DC19F7091 +:1030200095830E945E1775C1EE2009F4EFC03AC186 +:10303000242F26952695237030E02115310521F0A7 +:103040002130310561F065C1FF2021F08A2D942FD8 +:10305000937002C080E090E00E9414155AC1FF20D6 +:1030600021F08A2D942F937002C080E090E00E949E +:103070002A154FC18A2DFF2019F00E94D22302C0C9 +:103080000E943A240E94BF2444C1842F837009F017 +:103090004EC0F1103EC12A2D229526952770220F91 +:1030A000220F8A2D8F70C82ED12CE12CF12C022EEC +:1030B00004C0CC0CDD1CEE1CFF1C0A94D2F7A4FE4D +:1030C00010C06FE070E080E090E004C0660F771FF2 +:1030D000881F991F2A95D2F76095709580959095D5 +:1030E00003C060E070E0CB01242F26952695237065 +:1030F00030E02230310569F02330310589F06C2948 +:103100007D298E299F292130310571F00E94191ED9 +:1031100000C16C297D298E299F290E94331EF9C088 +:103120000E94191EC701B6010E94FF1DF2C0FF20B8 +:1031300019F0842F817001C08695882309F4E9C0B5 +:103140002A2D229526952770220F220F8A2D8F7007 +:10315000C82ED12CE12CF12C022E04C0CC0CDD1C8D +:10316000EE1CFF1C0A94D2F7A4FE10C06FE070E0C2 +:1031700080E090E004C0660F771F881F991F2A9592 +:10318000D2F7609570958095909503C060E070E0EF +:10319000CB01242F26952695237030E0223031056F +:1031A00069F02330310589F06C297D298E299F290A +:1031B0002130310571F00E94ED1EABC06C297D29D4 +:1031C0008E299F290E94071FA4C00E94ED1EC701DF +:1031D000B6010E94D31E9DC00A2D10E0F801E05EEA +:1031E000F109E531F10508F053C0E059FF4F0C94A7 +:1031F000642D1A2D1F70842F8F71FF2021F00E94E3 +:103200006C1E812F0ECF0E948D1E812F0E9465178C +:1032100080C0FF2049F0F4E0FE1508F47AC0842F46 +:103220008F710E94B21E75C085E08E1508F471C0C2 +:10323000F6CFFF2039F0842F8F710E946C1E69C079 +:10324000FF20C9F3842F8F710E948D1E62C0FF2062 +:1032500029F0842F8F710E94571E5BC00E944D1E63 +:1032600058C0FF2051F0142F1F71812F0E946C1E37 +:1032700063E0812F0E947B1F4CC081E00E94841F6D +:1032800091E09E1508F045C082E00E94841F41C075 +:10329000FF2031F0EE2079F28A2D0E94471639C0C6 +:1032A000EE2081F28A2D0E940F1733C04F706A2DD5 +:1032B000C4010E9442080E94741D2BC0F11029C055 +:1032C000942F9F70492F50E042305105B9F04CF4D3 +:1032D0004115510581F041305105D9F40E94792BF7 +:1032E00018C04330510569F04430510591F48A2DDE +:1032F0000E94062C0EC00E944F2B0BC00E94A82BD0 +:1033000008C00E94CE2B05C04F706A2DC4010E94D8 +:10331000E208BB20F1F00E94771F80FD1AC0F40183 +:1033200012820E94711F0E946C1EC4010E94B71974 +:103330000E94711F0F90DF91CF911F910F91FF900D +:10334000EF90DF90CF90BF90AF909F908F900C94B4 +:103350008D1E0F90DF91CF911F910F91FF90EF90F5 +:10336000DF90CF90BF90AF909F908F9008950F9374 +:103370001F93CF93DF93EC01288139818B819C814E +:10338000892B31F03F3F11F080E003C02F3FE1F780 +:1033900081E0811113C0CE010E944A08882371F098 +:1033A000688179818A810E946D1F8C010E94211F92 +:1033B0000E94F41DB801CE010E946C17DF91CF91DD +:1033C0001F910F9108950E9401200E9411200E94D8 +:1033D000D61F0E942D200E94ED250E94BF2480E070 +:1033E00090E00E94141580E090E00C942A150E9451 +:1033F000F11F0C94E3190E94621F292F22952F7050 +:1034000030E02C3031054CF42A3031056CF4225078 +:10341000310922303105B0F407C02C30310571F08C +:103420002F30310559F00EC0803F31F018F4803E46 +:1034300048F402C0843F31F481E0089593FB88276B +:1034400080F9089580E00895CF93DF9300D000D0F5 +:103450001F92CDB7DEB70F900F900F900F900F9087 +:10346000DF91CF910895CF93DF9300D000D000D0AB +:10347000CDB7DEB726960FB6F894DEBF0FBECDBF30 +:10348000DF91CF9108951F93CF93DF93C091860171 +:1034900016E080918701C81799F0D0E01C9FF001D9 +:1034A0001D9FF00D1124E857FE4F4081518162812C +:1034B0007381848195810E94331A2196C770E9CF68 +:1034C000DF91CF911F9108954091B8015091B901BA +:1034D0006091BA017091BB018091BC019091BD01D6 +:1034E0000C94331ACF938091BD0182958F7009F0AF +:1034F0005FC08091BA01882309F45AC020918601E7 +:10350000A09187016091B8017091B9018091BB01D0 +:103510009091BC0131E06F3F09F030E0B32FC6E07D +:103520002A1709F445C0009721F07F3F21F44B2F63 +:1035300003C041E001C040E030E040FD35C0C29F23 +:10354000F001C39FF00D1124E857FE4F4181741321 +:103550002BC04081641328C04281411125C04381A2 +:1035600054814817590710F441505109481B590B11 +:10357000483C5105C8F48091BD018F7080618093F3 +:10358000BD0186E0829FF001839FF00D1124E35777 +:10359000FE4F80818F708061808388EB91E00E9474 +:1035A000B719CF910C94431A2F5F3F4F2770B8CFB4 +:1035B000CF910895CF92DF92EF92FF920F931F93D6 +:1035C000CF93DF93CDB7DEB762970FB6F894DEBF27 +:1035D0000FBECDBF8C0185E0F801DE011D96019084 +:1035E0000D928A95E1F7D8014C9111965C91119753 +:1035F00012966C9112971396ED90FC90149770911F +:10360000B801E091B9012091BB013091BC012115B5 +:10361000310531F0EF3F31F481E07F3F19F403C011 +:1036200081E001C080E0B82FB170CB2E80FD6CC16D +:10363000D090BA01DD2009F4F5C0F091BD01E21689 +:10364000F30638F0C701821B930B883C910548F0C4 +:103650009BC0209530952E0D3F1D283C310508F06C +:1036600093C08F2F807F09F052C0E51314C07413EC +:1036700012C0D62E61110FC0FF70F061F093BD0132 +:103680000E94641A88EB91E00E94B7198091BD01F5 +:10369000F80185836CC1EF2831F05F3F31F481E0A0 +:1036A0004F3F19F403C081E001C080E080FD03C0FA +:1036B00081E0862701C080E0F82FF170FF2E80FFA7 +:1036C0001CC0809186012091870136E0821709F4A1 +:1036D00028C190E0389FF001399FF00D1124E85780 +:1036E000FE4F7181571306C07081471303C072816A +:1036F000671303C001968770E9CFD62E662309F4BD +:1037000036C18091BD0181608093BD0153C0E51336 +:1037100008C0741306C0611104C0D8011596FC934B +:10372000AEC04D875E878D859E856A8B0E94FB1992 +:103730006A89882329F1D62E662311F12091BD01D3 +:10374000822F82958F7090E002970CF460C0809178 +:10375000B8019091B90198878F831986FB86EA8614 +:103760002C87CE01079651C0E51731F14D875E8752 +:103770008D859E856A8B0E94FB196A8981112EC0F6 +:10378000C8010E94B719A4C08F2F807F69F77E2DD2 +:10379000F98AE88A89890E94241A88EB91E00E94BC +:1037A000B719E8EBF1E086E0DF011D928A95E9F7B1 +:1037B0000E94641AD12CDBC07413D8CF6111D6CF0C +:1037C000D8011596FC93C8010E94B719E8EBF1E007 +:1037D00086E0DF011D928A95E9F7C9C0D62E6623DF +:1037E00079F22091BD01822F82958F7090E002972F +:1037F00074F08091B8019091B9019A8389831B82FA +:10380000FD82EC822E83CE0101960E94B71986E0DC +:10381000F801A8EBB1E001900D928A95E1F70E94C2 +:10382000721A6FC0E216F30628F0C701821B930BD1 +:103830009C0104C0209530952E0D3F1D283C31057C +:1038400008F052C0D62E662309F49ACFE5132CC097 +:1038500074132AC08091BD0180FD1DC0982F9295E0 +:103860009F70C9F0D80115968C9315979F3039F049 +:103870009F5F9295907F8F70892B15968C93C801CE +:103880000E94B71986E0F801A8EBB1E001900D9213 +:103890008A95E1F736C086E0F801A8EBB1E0019027 +:1038A0000D928A95E1F763C04D875E878D859E8571 +:1038B0000E94FB19882379F086E0F801A8EBB1E0BB +:1038C00001900D928A95E1F70E94721A0E94641A83 +:1038D000DD24D3944CC08091BD0181608093BD01F3 +:1038E000C8010E94B71943C07E2DF98AE88A8989E8 +:1038F0000E94241AE8EBF1E086E0DF011D928A9530 +:10390000E9F70E94641A33C0662309F439CF4D8762 +:103910005E878D859E850E94FB19882309F430CF30 +:10392000CBCF4D875E878D859E850E94621F292F94 +:1039300022952F7030E0223031052CF49F7041F039 +:10394000811106C00CC0243031052CF49F7049F45D +:10395000805E883020F0C8010E94B719CF2CDC2C83 +:1039600006C0D80115969C91907F91F7F8CF8D2DC8 +:1039700062960FB6F894DEBF0FBECDBFDF91CF9138 +:103980001F910F91FF90EF90DF90CF9008951F93BC +:10399000CF93DF93CDB7DEB72C970FB6F894DEBF89 +:1039A0000FBECDBF4F83588769877A878B879C87E7 +:1039B000CE0107960E94DA1A8823C1F02F8138853C +:1039C0008A859B85892B31F03F3F11F080E003C051 +:1039D0002F3FE1F781E0811147C04F81588569850C +:1039E0007A858B859C850E94331A3EC086E0FE0155 +:1039F0003796DE01119601900D928A95E1F7FF81CD +:103A0000E8854A855B854115510531F0EF3F31F47A +:103A100081E0FF3F19F403C081E001C080E080FD38 +:103A200023C02091870130E0C90101968770992752 +:103A30006091860170E086179707F1F1F983EA83B8 +:103A40005D834C8396E0929FD001939FB00D11242B +:103A5000A857BE4FFE01319601900D929A95E1F75D +:103A6000809387010E94431A16E08091860190910D +:103A70008701891779F1189FC001112488579E4F3B +:103A80000E94DA1A882331F1E09186011E9FF0012D +:103A90001124E857FE4F40815181628173818481F6 +:103AA00095810E94331A8091860190E0019687707B +:103AB000992780938601D9CF0E94F7191092870128 +:103AC00010928601E8EBF1E086E0DF011D928A9515 +:103AD000E9F7CACF2C960FB6F894DEBF0FBECDBF64 +:103AE000DF91CF911F910895EF92FF920F931F9353 +:103AF000CF93DF93FC01009709F46FC0F12CEE2403 +:103B0000E394EF0121968491843740F4843008F0E7 +:103B100055C0813081F0823021F15FC0853709F4D2 +:103B200047C0C0F19CE7980F903708F056C08F77D8 +:103B30000E940F1745C08F010E5F1F4FFE01849139 +:103B400090E2980F983050F48770FE2D01C0FF0F5F +:103B50008A95EAF78F2F0E94042015C00E9447160D +:103B600014C08F010E5F1F4FFE01849190E2980FE9 +:103B7000983068F48770FE2D01C0FF0F8A95EAF730 +:103B80008F2F0E940A200E942D20E80119C00E9458 +:103B90000F17FBCFCF010296FE01C491CC2361F039 +:103BA000EFE9FFE03197F1F700C00000C150F6CF18 +:103BB000CF010296FE01F490EC0102C00E9447166C +:103BC0008F2D882341F0EFE9FFE03197F1F700C036 +:103BD00000008150F6CFFE0194CFDF91CF911F916D +:103BE0000F91FF90EF90089508956093C201709334 +:103BF000C3018093C4019093C5010C94E3190F9302 +:103C00001F930091C2011091C3012091C401309112 +:103C1000C501062B172B282B392B0093C2011093BB +:103C2000C3012093C4013093C5011F910F910C94DF +:103C3000E3190F931F930091C2011091C3012091CA +:103C4000C4013091C501062317232823392300938B +:103C5000C2011093C3012093C4013093C5011F9189 +:103C60000F910C94E3190F931F930091C2011091CF +:103C7000C3012091C4013091C501062717272827C9 +:103C800039270093C2011093C3012093C4013093DC +:103C9000C5011F910F910C94E3191092BE0110926F +:103CA000BF011092C0011092C1010C94E31941E0D0 +:103CB00050E060E070E004C0440F551F661F771F9E +:103CC0008A95D2F74093BE015093BF016093C00123 +:103CD0007093C1010C94E31941E050E060E070E0A2 +:103CE00004C0440F551F661F771F8A95D2F7809135 +:103CF000BE019091BF01A091C001B091C101842B80 +:103D0000952BA62BB72B8093BE019093BF01A09358 +:103D1000C001B093C1010C94E31941E050E060E0B0 +:103D200070E004C0440F551F661F771F8A95D2F7B5 +:103D300040955095609570958091BE019091BF011E +:103D4000A091C001B091C10184239523A623B7237C +:103D50008093BE019093BF01A093C001B093C101B5 +:103D60000C94E31941E050E060E070E004C0440FBF +:103D7000551F661F771F8A95D2F78091BE019091DB +:103D8000BF01A091C001B091C10184279527A6274A +:103D9000B7278093BE019093BF01A093C001B09359 +:103DA000C1010C94E3190F931F930091BE01109170 +:103DB000BF012091C0013091C101062B172B282B88 +:103DC000392B0093BE011093BF012093C0013093A3 +:103DD000C1011F910F910C94E3190F931F93009150 +:103DE000BE011091BF012091C0013091C101062395 +:103DF0001723282339230093BE011093BF0120937A +:103E0000C0013093C1011F910F910C94E3190F93DE +:103E10001F930091BE011091BF012091C00130910C +:103E2000C10106271727282739270093BE011093C1 +:103E3000BF012093C0013093C1011F910F910C94D9 +:103E4000E3190895CF92DF92EF92FF920F931F93A1 +:103E5000CF93DF93EC01C090C201D090C301E090FA +:103E6000C401F090C5018091BE019091BF01A09165 +:103E7000C001B091C101C82AD92AEA2AFB2A0FE160 +:103E800010E0B701A601002E04C0769567955795FE +:103E900047950A94D2F740FD05C00150110988F7F3 +:103EA00080E007C0BE01802F0E94640B0197A9F338 +:103EB000802FDF91CF911F910F91FF90EF90DF90B6 +:103EC000CF900895CF93DF93EC010E94221FBE0193 +:103ED0000E94640BDF91CF910895CB010E94621F75 +:103EE00008958091C6018595859585950895809161 +:103EF000C6018770089598E0899F90011124622B74 +:103F00006093C6010C946C1E4091C6018095842379 +:103F10008093C601982F977069F450E0282F3327BB +:103F200027FD30954217530729F08595859585958E +:103F30000C948D1E08959091C601977081E009F44C +:103F400080E0089540910C0150910D0120E030E097 +:103F50009FEFFA01E20FF31F6281681799F09F3F0C +:103F600019F4611101C0922F2F5F3F4F26303105A8 +:103F700081F79F3F39F0FA01E90FF11D97FDFA959E +:103F800082830895089540910C0150910D0120E025 +:103F900030E0FA01E20FF31F9281981301C0128200 +:103FA0002F5F3F4F26303105A1F7089581E090E063 +:103FB000E0910C01F0910D01E80FF91F10820196BC +:103FC00088309105A9F708959091D201982B90938C +:103FD000D201089580959091D20198239093D201B7 +:103FE00008951092D20108959091D101982B909349 +:103FF000D101089580959091D10198239093D1019A +:1040000008951092D10108959091D001982B90932A +:10401000D001089580959091D00198239093D0017C +:1040200008951092D00108958093C70108951092C9 +:10403000C701089540910C0150910D0120E030E03E +:1040400080E0FA01E20FF31F918191118F5F2F5FE2 +:104050003F4F27303105A9F70895E0910C01F09109 +:104060000D018091D2018083E0910C01F0910D014E +:1040700080819091D101892B8083E0910C01F09196 +:104080000D0180819091D001892B80839091C7018F +:10409000992361F0E0910C01F0910D018081892B51 +:1040A00080830E941A2081111092C70180910C0117 +:1040B00090910D010C94C414909347018093460194 +:1040C000089540E0009739F09C0121503109822386 +:1040D00093234F5FF7CF842F08958295982F9C7C70 +:1040E00096959695837344E0849F90011124922BBA +:1040F000892F8A7A86959575990F892B08951F9334 +:10410000CF93DF931F92CDB7DEB799830E946D20C6 +:10411000182F9981892F0E946D20212F30E0322F96 +:104120002227A901482BCA010F90DF91CF911F913F +:1041300008958091E801843039F11092D40120E48F +:1041400088E190E00FB6F894A895809360000FBEC8 +:104150002093600080E00E94140880E00E94FE0B23 +:1041600083B7817F846083BF83B7816083BF789486 +:10417000889583B78E7F83BF88E10FB6F8948093CC +:104180006000109260000FBE08950895089580E0C9 +:104190000E9414080E94C5200E94570C0E94C6204D +:1041A0000E94190D91E0811101C090E0892F0895BE +:1041B0000E94F71980E00E9414080E943E2B0E9482 +:1041C000B8140C94FE0B1F920F920FB60F9211248D +:1041D0008F939F93AF93BF938091D401811113C0AC +:1041E0008091D5019091D601A091D701B091D801CD +:1041F0004196A11DB11D8093D5019093D601A09346 +:10420000D701B093D801BF91AF919F918F910F903B +:104210000FBE0F901F90189582E084BD93E095BD6E +:104220009AEF97BD80936E0008952FB7F894809110 +:10423000D5019091D601A091D701B091D8012FBF9F +:104240000895CF92DF92EF92FF920F931F932FB7B3 +:10425000F8944091D5015091D6016091D7017091A9 +:10426000D8012FBF6A017B01EE24FF248C0120E0DE +:1042700030E0C016D106E206F30610F441505109B1 +:10428000481B590BCA011F910F91FF90EF90DF90CF +:10429000CF9008951F920F920FB60F9211248F9313 +:1042A0009F93AF93BF938091D5019091D601A09138 +:1042B000D701B091D8010196A11DB11D8093D50100 +:1042C0009093D601A093D701B093D801BF91AF913D +:1042D0009F918F910F900FBE0F901F9018950E9485 +:1042E000BF11F8942FEF87EA91E62150804090406B +:1042F000E1F700C0000087E090EBDC018093F30160 +:104300009093F401A093F501B093F6012CE088E1BD +:1043100090E00FB6F894A895809360000FBE2093AC +:104320006000FFCFCF92DF92EF92FF920F931F9327 +:10433000CF93DF93C82E84E0D82E01E010E08D2DBE +:104340000E94D60C7C01CDE0D0E098010C2E02C07A +:10435000220F331F0A94E2F72E213F21232B49F02D +:104360006C2F7D2D80E00E94E308C81202C081E01E +:1043700007C0219750F7DA948FEFD812E0CF80E092 +:10438000DF91CF911F910F91FF90EF90DF90CF9031 +:104390000895CF93C82F8CE20E949221882321F0A8 +:1043A0008C2FCF910C94922180E0CF910895CF93E0 +:1043B0000E942223811102C00E94032381E095E024 +:1043C0000E945307C5E6C15049F00E94570C8FE385 +:1043D0009CE90197F1F700C00000F5CF8AEF94E067 +:1043E0000E94530789E20E94C92181110AC18AE211 +:1043F0000E94C92181110E94032385E00E94C921E6 +:1044000081110E946F210E942D238093D30187E0A8 +:104410000E94C921882399F18BE10E94C921882338 +:1044200051F09091D30191FB882780F921E08227F8 +:1044300080FB91F922C08EE00E94C921882351F0AF +:104440009091D30192FB882780F921E0822780FB9D +:1044500092F913C080E10E94C9219091D301882371 +:1044600041F093FB882780F921E0822780FB93F9B4 +:1044700004C0892F809580FB90F99093D30180919F +:10448000D3010E9431230E943F238093F10180EEEB +:104490000E94C921882341F08091F101982F9095C5 +:1044A00090FB80F98093F10189E30E94C921882360 +:1044B00059F09091F10191FB882780F921E0822742 +:1044C00080FB91F99093F10182EE0E94C92188232B +:1044D00059F09091F10192FB882780F921E0822721 +:1044E00080FB92F99093F10186EE0E94C921882306 +:1044F00059F09091F10193FB882780F921E0822700 +:1045000080FB93F99093F10183EE0E94C9218823E7 +:1045100059F09091F10194FB882780F921E08227DE +:1045200080FB94F99093F10185E30E94C9218823CF +:1045300059F09091F10195FB882780F921E08227BD +:1045400080FB95F99093F10181E30E94C9218823B2 +:1045500059F09091F10196FB882780F921E082279C +:1045600080FB96F99093F10181E10E94C921882393 +:1045700059F09091F10197FB882780F921E082277B +:1045800080FB97F99093F1018091F1010E94432300 +:1045900087E20E94C921C82F8EE10E94C9218111A2 +:1045A000C2608FE10E94C9218111C46080E20E9433 +:1045B000C9218111C86081E20E94C9218111C061B5 +:1045C00082E20E94C9218111C06283E20E94C92156 +:1045D0008111C06484E20E94C921882311F0C0685F +:1045E00002C0CC2329F08C2F0E943A236C2F03C0E9 +:1045F0000E943623682F70E080E090E0CF910C9409 +:10460000F51DCF9108956DEE7EEF80E090E00E9461 +:104610009E2D60E082E090E00E948C2D60E083E0BF +:1046200090E00E948C2D60E084E090E00E948C2D50 +:1046300060E085E090E00E948C2D60E086E090E0F4 +:104640000C948C2D80E090E00E94862D21E08D3E20 +:104650009E4F09F020E0822F089582E090E00C94B4 +:104660007E2D682F82E090E00C948C2D83E090E00A +:104670000C947E2D682F83E090E00C948C2D84E0C8 +:1046800090E00C947E2D682F84E090E00C948C2DAB +:1046900086E090E00C947E2D682F86E090E00C94EC +:1046A0008C2D8091DB0180FF0BC06091110185E0B2 +:1046B000689FB001112475956795759567952AC017 +:1046C00081FF09C06091110185E0689FB00111244C +:1046D000759567951FC082FF07C06091110185E045 +:1046E000689FB001112416C04091DC014423C9F039 +:1046F00060911001461788F72091110185E0289FED +:1047000090011124429FC001439F900D112470E03D +:104710000E94502D6038710540F46115710539F023 +:1047200002C065E070E0862F08958FE7089581E06C +:1047300008958091DB0180FF08C060910F0170E057 +:10474000759567957595679521C081FF06C0609145 +:104750000F0170E07595679519C082FF04C06091E4 +:104760000F0170E010C08091DC018823C1F06091DE +:104770000E018617A0F790910F01989FC001112498 +:1047800070E00E94502D6038710528F461157105A4 +:1047900021F0862F08958FE7089581E0089561E064 +:1047A00070E0F4CF803F21F40E945123819504C032 +:1047B000813F29F40E9451238093DF010895823FB5 +:1047C00021F40E945123819504C0833F29F40E9463 +:1047D00051238093DE010895893F19F40E949923A3 +:1047E00005C08A3F31F40E94992381958093E001AE +:1047F00008958B3F21F40E949923819504C08C3F3A +:1048000029F40E9499238093E1010895843F21F4C3 +:104810008091DD01816017C0853F21F48091DD0129 +:10482000826011C0863F21F48091DD0184600BC05D +:10483000873F21F48091DD01886005C0883F31F415 +:104840008091DD0180618093DD0108958D3F21F429 +:104850008091DB0181600BC08E3F21F48091DB01F0 +:10486000826005C08F3F29F48091DB0184608093D2 +:10487000DB010895803F39F48091DF0187FF6CC030 +:104880001092DF0169C0813F29F48091DF01181681 +:10489000BCF362C09091DE01823F29F497FF5CC0B7 +:1048A0001092DE0159C0833F19F41916CCF354C09D +:1048B000893F41F48091E00118160CF04DC0109230 +:1048C000E0014AC08A3F29F48091E00187FF44C09B +:1048D000F6CF8B3F39F48091E10187FF3DC0109204 +:1048E000E1013AC08C3F29F48091E1011816BCF334 +:1048F00033C0843F21F48091DD018E7F17C0853F56 +:1049000021F48091DD018D7F11C0863F21F48091DB +:10491000DD018B7F0BC0873F21F48091DD01877F14 +:1049200005C0883F31F48091DD018F7E8093DD01E9 +:1049300013C08D3F21F48091DB018E7F0BC08E3F31 +:1049400021F48091DB018D7F05C08F3F29F4809198 +:10495000DB018B7F8093DB018091DE0181110EC032 +:104960008091DF0181110AC08091E001811106C0B0 +:104970008091E101811102C01092DC0108958091C3 +:10498000D30183FF7EC08DE395E00E9453078091A1 +:10499000DD011F928F9388E395E09F938F930E9490 +:1049A000EC0786E395E00E9453072091DE01822FF9 +:1049B000992787FD90959F932F9383E395E09F938D +:1049C0008F930E94EC0781E395E00E9453072091AA +:1049D000DF01822F992787FD90959F932F938EE279 +:1049E00095E09F938F930E94EC078CE295E00E94E4 +:1049F00053072091E001822F992787FD90959F937F +:104A00002F9389E295E09F938F930E94EC0787E2B2 +:104A100095E00E9453072091E101822F992787FD9D +:104A200090959F932F9384E295E09F938F930E949C +:104A3000EC0781E295E00E9453078091DC011F9210 +:104A40008F938EE195E09F938F930E94EC078CE10A +:104A500095E00E9453078091DB011F928F9389E1BB +:104A600095E09F938F930E94EC0786E195E00E946A +:104A700053078DB79EB74C960FB6F8949EBF0FBEE6 +:104A80008DBF8DED91E00E9409150E941521909334 +:104A9000DA018093D90108951F93CF93DF9380911A +:104AA000D9019091DA010E9421214091DC01442337 +:104AB00021F02091120130E006C0209113015AE04C +:104AC000259F900111248217930708F482C08091DA +:104AD000DE011091DF01D091E001C091E10181116F +:104AE00007C0111105C0D11103C0CC2309F471C056 +:104AF0004F3F19F04F5F4093DC01181624F40E94D9 +:104B000051238093DE018091DE0187FF05C00E9462 +:104B1000512381958093DE01111624F40E945123C4 +:104B20008093DF018091DF0187FF05C00E94512340 +:104B300081958093DF016091DE01662339F1109148 +:104B4000DF01112319F1772767FD7095872F972FC4 +:104B50000E94552C23E333E343E35FE30E94B92C27 +:104B60000E94222C6093DE01612F772767FD7095EC +:104B7000872F972F0E94552C23E333E343E35FE312 +:104B80000E94B92C0E94222C6093DF011D1624F490 +:104B90000E9499238093E0018091E00187FF05C086 +:104BA0000E94992381958093E0011C1624F40E94B1 +:104BB00099238093E1018091E10187FF05C00E9464 +:104BC000992381958093E101DF91CF911F910C94FE +:104BD000BF24DF91CF911F910895EDEDF1E085E0C5 +:104BE000DF011D928A95E9F71092DC011092DB013A +:104BF000089580E697E00E9453071F9281E08F930B +:104C00001F9285E08F9382E197E09F938F930E949C +:104C1000EC070F900F900F900F900F900F9008954A +:104C20008330E9F128F4813061F0823009F1089590 +:104C3000853009F462C008F449C0863009F474C0B4 +:104C4000089520911301862F90E0820F911D8F3FD0 +:104C5000910520F4620F6093130103C08FEF8093DE +:104C60001301809113011F928F938BE496E072C021 +:104C700020911201862F90E0820F911D8F3F9105A8 +:104C800020F4620F6093120103C08FEF8093120132 +:104C9000809112011F928F9389E396E05BC020916F +:104CA0001101862F90E0820F911D8F3F910520F416 +:104CB000620F6093110103C08FEF80931101809107 +:104CC00011011F928F9386E296E044C0209110015B +:104CD000862F90E0820F911D8F3F910520F4620F87 +:104CE0006093100103C08FEF809310018091100139 +:104CF0001F928F9381E196E02DC020910F01862FA6 +:104D000090E0820F911D8F3F910520F4620F609318 +:104D10000F0103C08FEF80930F0180910F011F924D +:104D20008F9388EF95E016C020910E01862F90E0BA +:104D3000820F911D8F3F910520F4620F60930E0149 +:104D400003C08FEF80930E0180910E011F928F930D +:104D50008DED95E09F938F930E94EC070F900F903D +:104D60000F900F900895833081F128F4813059F02D +:104D70008230D1F00895853009F449C0B8F1863009 +:104D800009F456C0089580911301681720F4861B1A +:104D90008093130102C010921301809113011F929E +:104DA0008F938EEC95E054C080911201681720F427 +:104DB000861B8093120102C0109212018091120191 +:104DC0001F928F938CEB95E043C08091110168177F +:104DD00020F4861B8093110102C010921101809172 +:104DE00011011F928F9389EA95E032C080911001E2 +:104DF000681720F4861B8093100102C010921001E6 +:104E0000809110011F928F9384E995E021C08091D9 +:104E10000F01681720F4861B80930F0102C01092C7 +:104E20000F0180910F011F928F938BE795E010C0C7 +:104E300080910E01681720F4861B80930E0102C03A +:104E400010920E0180910E011F928F9380E695E0E3 +:104E50009F938F930E94EC070F900F900F900F90ED +:104E60000895CF93C82F1F928F9325E638E03F9384 +:104E70002F930E94EC0761E070E080E090E004C0B6 +:104E8000660F771F881F991FCA95D2F70E94F51DDC +:104E90000F900F900F900F90CF910C94F719CF9324 +:104EA0008732B0F58E3108F085C28E3009F401C228 +:104EB00000F5873009F4CBC1A8F4863009F080C230 +:104EC0008091D301817F8E7F8093D30185EC99E01F +:104ED0000E94530789E99DE00E94530781E0809377 +:104EE000E301B3C1883009F43FC08B3009F4A9C194 +:104EF00067C2863109F421C220F4803109F4ECC183 +:104F00005FC2893109F402C28B3109F4BFC158C2B2 +:104F1000883309F496C150F4893209F44DC28533BF +:104F200009F44AC2873209F447C24AC2833409F4F9 +:104F300043C228F48A3308F443C289533EC28834FA +:104F400009F03EC20E94F7198DE79DE00E945307C9 +:104F50009FEF23ED80E3915020408040E1F700C0B7 +:104F600000000E946F2171C18DE99DE00E945307EE +:104F70008FEF9CE00E9453070E9436231F928F936D +:104F80008CEF9CE09F938F930E94EC078AEF9CE04C +:104F90000E9453070E942D23C82F87EE9CE00E9499 +:104FA00053071F92CF9322EE3CE03F932F930E9432 +:104FB000EC0780EE9CE00E94530786ED9CE00E9487 +:104FC00053078C2F81701F928F9323ED3CE03F930A +:104FD0002F930E94EC0781ED9CE00E94530787EC21 +:104FE0009CE00E945307C1FB882780F91F928F9392 +:104FF00024EC3CE03F932F930E94EC0782EC9CE072 +:105000000E94530786EB9CE00E945307C2FB88274F +:1050100080F91F928F9323EB3CE03F932F930E94E4 +:10502000EC0781EB9CE00E94530788EA9CE00E9419 +:105030005307C3FBCC27C0F91F92CF9385EA9CE0AE +:105040009F938F930E94EC0783EA9CE00E94530792 +:105050000E943F23C82F8FE89CE00E9453071F92B5 +:10506000CF932AE83CE03F932F930E94EC0788E817 +:105070009CE00E9453078FE69CE00E9453078C2F10 +:1050800081701F928F932CE63CE03F932F930E94F8 +:10509000EC078DB79EB780960FB6F8949EBF0FBEF3 +:1050A0008DBF8AE69CE00E94530783E59CE00E9446 +:1050B0005307C1FB882780F91F928F9320E53CE0BE +:1050C0003F932F930E94EC078EE49CE00E945307CD +:1050D0008CE39CE00E945307C2FB882780F91F9253 +:1050E0008F9329E33CE03F932F930E94EC0787E3E3 +:1050F0009CE00E94530785E29CE00E945307C3FB9B +:10510000882780F91F928F9322E23CE03F932F93F0 +:105110000E94EC0780E29CE00E94530786E19CE03D +:105120000E945307C4FB882780F91F928F9323E1C5 +:105130003CE03F932F930E94EC0781E19CE00E94AA +:1051400053078FEF9BE00E945307C5FB882780F928 +:105150001F928F932CEF3BE03F932F930E94EC071D +:105160008AEF9BE00E9453078EED9BE00E9453075D +:10517000C6FB882780F91F928F932BED3BE03F936E +:105180002F930E94EC0789ED9BE00E94530781ED6D +:105190009BE00E945307C7FBCC27C0F91F92CF9317 +:1051A0008EEC9BE09F938F930E94EC078CEC9BE02E +:1051B0000E9453070E944823C82F85EB9BE00E9462 +:1051C00053071F92CF9320EB3BE03F932F930E9416 +:1051D000EC078DB79EB780960FB6F8949EBF0FBEB2 +:1051E0008DBF8EEA9BE00E94530784EA9BE00E94F9 +:1051F00053078C2F81701F928F9321EA3BE03F93DE +:105200002F930E94EC078FE99BE00E94530786E9E9 +:105210009BE00E945307C6951F92CF9383E99BE0C2 +:105220009F938F930E94EC0781E99BE00E945307B4 +:105230008DB79EB708960FB6F8949EBF0FBE8DBF70 +:1052400004C08CEE99E00E945307C1E0BEC080917B +:10525000D301C82FC095C170C0FB80F98093D301E2 +:10526000CC2349F081E79DE00E9453078091D30150 +:105270008660886045C084E69DE00E945307809167 +:10528000D301897F877F8093D301DFCF8091D301C2 +:1052900081FBCC27C0F991E0C927C0FB81F980933D +:1052A000D301CC2319F087E59DE025C089E49DE07A +:1052B000CACF8091D30182FBCC27C0F991E0C927E6 +:1052C000C0FB82F98093D301CC2319F08AE39DE0DF +:1052D00012C08AE29DE0B7CF8091D30183FBCC2737 +:1052E000C0F991E0C927C0FB83F98093D301CC2397 +:1052F00051F08EE19DE00E9453078091D3018160BF +:105300008093D30162C081E19DE09DCF86EB99E05F +:105310000E9453078DE999E00E9453078BE699E0BC +:105320000E9453078EE399E00E9453078EEF98E0A6 +:105330000E94530780ED98E086CF82EC98E00E94AF +:1053400053070E94B8141F928F9388EA98E09F93A6 +:105350008F930E94EC0780910B011F928F9381E93C +:1053600098E09F938F930E94EC07809174011F92A5 +:105370008F938EE798E09F938F930E94EC07809124 +:10538000D5019091D601A091D701B091D801BF93DA +:10539000AF939F938F938AE698E09F938F930E9499 +:1053A000EC078DB79EB742960FB6F8949EBF0FBE1E +:1053B0008DBF4BCF8D5101C080E00E94312745CF7A +:1053C0008FE09DE00E945307C0E08C2FCF9108959D +:1053D00080E0089580E00895CF93C82F8091E30185 +:1053E000813071F020F0823009F448C03FC1A091B3 +:1053F0000C01B0910D018C91823209F039C107C0C6 +:10540000A0910C01B0910D018C91823249F48C2F46 +:105410000E94E82981112FC08C2F0E944F272CC099 +:105420008C2F0E94EA29811126C0C431E1F070F46A +:10543000CB3081F0C031D1F40E94F9258DE598E0A0 +:105440000E94530782E08093E30115C0C93259F0EE +:10545000C83361F485EC99E00E94530781E698E037 +:105460000E94530708C01092E30104C18BE598E045 +:105470000E945307FFC081E08170FEC0C43228F54E +:10548000CE3108F0C1C0CB30A1F1D0F4C73009F063 +:10549000D3C08EE18093130182E3809312018AE0EE +:1054A0008093110184E18093100188E080930F01C3 +:1054B00088E280930E0181E097E00E945307BFC00D +:1054C000C33149F1C431C1F0B7C0CB3409F4A9C02C +:1054D00028F4C93289F0C83361F0AEC0C13509F48F +:1054E0009EC0C23509F499C0CE3409F0A5C06AE067 +:1054F0009EC00E94F925A3C08091E201882319F083 +:105500001092E2019CC08EE097E00E94530781E078 +:105510008093E301B1C088EE96E00E94530786EDC8 +:1055200096E00E945307809113011F928F9383EDA1 +:1055300096E09F938F930E94EC0781ED96E00E9486 +:1055400053078FEB96E00E945307809112011F9240 +:105550008F938CEB96E09F938F930E94EC078AEBDE +:1055600096E00E9453078BEA96E00E9453078091D1 +:1055700011011F928F9388EA96E09F938F930E9468 +:10558000EC0786EA96E00E94530785E996E00E94C0 +:105590005307809110011F928F9382E996E09F93A9 +:1055A0008F930E94EC0780E996E00E9453078BE7F7 +:1055B00096E00E94530780910F011F928F9388E716 +:1055C00096E09F938F930E94EC0786E796E00E94F7 +:1055D00053078FE596E00E94530780910E011F92BA +:1055E0008F938CE596E09F938F930E94EC078AE55A +:1055F00096E00E9453078DB79EB748960FB6F89471 +:105600009EBF0FBE8DBF1BC0CE51EC2FF0E0E55CFE +:10561000FE4F80818093E20112C061E003C061E02F +:1056200006C06AE08091E2010E94102608C08091C5 +:10563000E2010E94B32603C08FEF96E013C0809171 +:10564000E201882369F01F928F9389EF96E09F9380 +:105650008F930E94EC070F900F900F900F9004C053 +:1056600086EF96E00E94530781E006C01092E301A6 +:1056700080E002C080E000CFCF9108950E942223F5 +:10568000811102C00E9403230E9448238093F201EB +:1056900080FF02C0869501C080E00C9414088091C0 +:1056A000F201982F9695292F30E0233031054CF4E4 +:1056B0009F5F990F8170892B81608093F2010E9416 +:1056C0004C238091D30180FF0FC08091F201869519 +:1056D0001F928F938AEE9DE09F938F930E94EC0719 +:1056E0000F900F900F900F908091F20186950C947F +:1056F00014088091F201982F969591F09158990F86 +:105700008170892B8093F2018E7F91E009F490E003 +:105710008091F20190FB80F98093F2010E944C236A +:105720008091D30180FF0FC08091F20186951F9276 +:105730008F9382ED9DE09F938F930E94EC070F90D3 +:105740000F900F900F908091F20186950C941408A1 +:105750008091F201982F909590FB80F98093F2014F +:105760000E944C238091D30180FF0FC08091F201F1 +:1057700081701F928F938CEB9DE09F938F930E947B +:10578000EC070F900F900F900F908091F20180FF27 +:1057900002C0869501C080E00C9414083091F2019B +:1057A000232F26952F5F2F77822F90E0317004975B +:1057B0002CF4220F232B2093F20102C03093F2012C +:1057C0008091F2018E7F91E009F490E08091F201E6 +:1057D00090FB80F98093F2010E944C238091D301C9 +:1057E00080FF0FC08091F20186951F928F9388EA07 +:1057F0009DE09F938F930E94EC070F900F900F9066 +:105800000F908091F20186950C9414082091F2017A +:10581000922F96959827990F822F8170892B8093CC +:10582000F2018E7F91E009F490E08091F20190FB0B +:1058300080F98093F2010E944C238091F2018695B9 +:105840000C94140804D06894B1118DC0089570D0E0 +:1058500088F09F5790F0B92F9927B751A0F0D1F059 +:10586000660F771F881F991F1AF0BA95C9F712C0E3 +:10587000B13081F077D0B1E0089574C0672F782FF0 +:105880008827B85F39F0B93FCCF38695779567954F +:10589000B395D9F73EF490958095709561957F4FBB +:1058A0008F4F9F4F0895E89409C097FB3EF4909561 +:1058B0008095709561957F4F8F4F9F4F9923A9F0E9 +:1058C000F92F96E9BB279395F69587957795679578 +:1058D000B795F111F8CFFAF4BB0F11F460FF1BC0BC +:1058E0006F5F7F4F8F4F9F4F16C0882311F096E94F +:1058F00011C0772321F09EE8872F762F05C06623FD +:1059000071F096E8862F70E060E02AF09A95660FB5 +:10591000771F881FDAF7880F9695879597F908956E +:1059200057FD9058440F551F59F05F3F71F0479550 +:10593000880F97FB991F61F09F3F79F08795089535 +:10594000121613061406551FF2CF4695F1DF08C054 +:10595000161617061806991FF1CF86957105610571 +:1059600008940895E894BB2766277727CB0197F919 +:1059700008950BD078C069D028F06ED018F0952328 +:1059800009F05AC05FC01124EECFCADFA0F3959F83 +:10599000D1F3950F50E0551F629FF001729FBB2716 +:1059A000F00DB11D639FAA27F00DB11DAA1F649FC2 +:1059B0006627B00DA11D661F829F2227B00DA11D75 +:1059C000621F739FB00DA11D621F839FA00D611DFB +:1059D000221F749F3327A00D611D231F849F600D1C +:1059E000211D822F762F6A2F11249F5750408AF055 +:1059F000E1F088234AF0EE0FFF1FBB1F661F771FE1 +:105A0000881F91505040A9F79E3F510570F014C077 +:105A1000AACF5F3FECF3983EDCF3869577956795C8 +:105A2000B795F795E7959F5FC1F7FE2B880F911DFE +:105A30009695879597F9089597F99F6780E870E0A4 +:105A400060E008959FEF80EC089500240A941616F4 +:105A5000170618060906089500240A94121613065C +:105A6000140605060895092E0394000C11F48823EA +:105A700052F0BB0F40F4BF2B11F460FF04C06F5F06 +:105A80007F4F8F4F9F4F0895991B79E004C0991F56 +:105A9000961708F0961B881F7A95C9F78095089588 +:105AA00097FB072E16F4009407D077FD09D00E94CB +:105AB0006A2D07FC05D03EF4909581959F4F08957F +:105AC000709561957F4F0895EE0FFF1F0590F4913B +:105AD000E02D0994AA1BBB1B51E107C0AA1FBB1FE5 +:105AE000A617B70710F0A61BB70B881F991F5A956A +:105AF000A9F780959095BC01CD010895F999FECF45 +:105B000092BD81BDF89A992780B50895A8E1B0E0CB +:105B100042E050E00C94A62D262FF999FECF92BDBD +:105B200081BDF89A019700B4021639F01FBA20BD62 +:105B30000FB6F894FA9AF99A0FBE08950196272F96 +:105B40000E948D2D0C948C2DDC01CB01FC01F99968 +:105B5000FECF06C0F2BDE1BDF89A319600B40D92B9 +:0C5B600041505040B8F70895F894FFCF72 +:105B6C00FF2D0D1E0EFB0DC70D940D01C80128084D +:105B7C00140A321E0F1F6C76667349130353437954 +:105B8C00693309196F7F59404D362087043A040454 +:105B9C0004E40370038903A203BB0301020304059D +:065BAC00060708090000D5 +:00000001FF diff --git a/keyboards/kc60/keymaps/sgoodwin/keymap.c b/keyboards/kc60/keymaps/sgoodwin/keymap.c new file mode 100644 index 000000000..99e95c232 --- /dev/null +++ b/keyboards/kc60/keymaps/sgoodwin/keymap.c @@ -0,0 +1,42 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "kc60.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * Toggles between colemak and qwerty by tapping the bottom right key. + * Holding capslock key gives a layer like the KBParadise v60. + */ + [0] = KEYMAP( /* Basic Colemak */ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \ + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, \ + MO(2), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_NO, KC_ENT, \ + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, \ + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, DF(1) \ + ), + [1] = KEYMAP( /* Basic QWERTY */ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \ + MO(2), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \ + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, \ + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, DF(0) \ + ), + [2] = KEYMAP( /* KBP v60-like arrows, media keys, etc */ + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \ + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, BL_INC, BL_DEC, BL_STEP, \ + KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO, KC_TRNS, \ + KC_TRNS, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, DEBUG, RESET, KC_TRNS, KC_NO \ + ), +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + return MACRO_NONE; +}; diff --git a/keyboards/kc60/keymaps/stanleylai/Makefile b/keyboards/kc60/keymaps/stanleylai/Makefile new file mode 100644 index 000000000..f7e4e2fe2 --- /dev/null +++ b/keyboards/kc60/keymaps/stanleylai/Makefile @@ -0,0 +1,25 @@ + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= no # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= no # Console for debug(+400) +COMMAND_ENABLE ?= no # Commands for debug and configuration +KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key +BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE ?= yes # Enable WS2812 underglow RGB strip +MIDI_ENABLE ?= no # MIDI controls +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE ?= no # Audio output on port C6 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE ?= yes # USB Nkey Rollover + +ifndef QUANTUM_DIR + include ../../Makefile +endif diff --git a/keyboards/kc60/keymaps/stanleylai/README.md b/keyboards/kc60/keymaps/stanleylai/README.md new file mode 100644 index 000000000..a7daa6e77 --- /dev/null +++ b/keyboards/kc60/keymaps/stanleylai/README.md @@ -0,0 +1,26 @@ +Stanley Lai's Split Right Shift with Dedicated Arrow Keys +====================== + +![Image of KC60 with RGB Underglow](../ws2812/ws2812_example.jpg) + +## Quantum MK Firmware +For the full Quantum feature list, see [the parent README.md](/README.md). + +## Keymap Notes +- Keymap setup with split Right Shift in mind. +- Right-side modifiers are setup as dedicated arrow keys + +### Base Layer Reference +- Fn Layer indicated on keycap front legends. +- Tapping Caps Lock key toggles Caps. Holding it down momentarily switches us to the Fn Layer. +- Holding down "Fn" and "Page Down" momentarily switches us to the RGB Layer. Tapping "Page Down" behaves as expected. +![Base Layer](base_layer.jpg) + +### RGB Layer Reference +![RGB Layer](rgb_layer.jpg) + +## WS2812 Support +By default, it is now setup for 16 LEDs on the PF5 breakout pin. See [included image](../ws2812/ws2812_wiring.jpg) for wiring reference. + +### Build +To build this keymap, simply run `make KEYMAP=stanleylai`. diff --git a/keyboards/kc60/keymaps/stanleylai/base_layer.png b/keyboards/kc60/keymaps/stanleylai/base_layer.png new file mode 100644 index 000000000..97235c6af Binary files /dev/null and b/keyboards/kc60/keymaps/stanleylai/base_layer.png differ diff --git a/keyboards/kc60/keymaps/stanleylai/compiled.hex b/keyboards/kc60/keymaps/stanleylai/compiled.hex new file mode 100644 index 000000000..b65c14cd4 --- /dev/null +++ b/keyboards/kc60/keymaps/stanleylai/compiled.hex @@ -0,0 +1,1773 @@ +:100000000C9408090C944F090C944F090C944F0957 +:100010000C944F090C944F090C944F090C944F0900 +:100020000C944F090C944F090C94C31B0C94951C11 +:100030000C942B2A0C944F090C944F090C944F09E3 +:100040000C944F090C944F090C944F090C944F09D0 +:100050000C944F090C94932A0C944F090C944F095B +:100060000C944F090C944F090C944F090C944F09B0 +:100070000C944F090C944F090C944F090C944F09A0 +:100080000C9462160C944F090C944F090C944F0970 +:100090000C944F090C944F090C944F090C944F0980 +:1000A0000C944F090C944F090C944F09570A740A89 +:1000B000A50A7B0A820A890A900A970A9E0A021DEB +:1000C000241D171E241D171E691D8C1D171EE11DE2 +:1000D000F41D4621462175217521B121CF2111231F +:1000E0001123DA2111237F227F22E522ED22112321 +:1000F0000C238C228C228C228C228C228C228C220F +:100100008C228C228C228C228C228C228C228C227F +:100110008C229C22AA22B122B822C22200F001F035 +:1001200002F003F004F005F006F007F008F00020FC +:100130001E001F00200021002200230024002500B3 +:10014000260027002D002E002A002B0014001A0084 +:100150000800150017001C0018000C001200130006 +:100160002F0030003100394104001600070009005B +:100170000A000B000D000E000F00330034000000D9 +:100180002800E10000001D001B000600190005000A +:100190001100100036003700380001515200E00015 +:1001A000E200E300000000002C000000000000005E +:1001B0000000E700500051004F0035003A003B00BE +:1001C0003C003D003E003F00400041004200430033 +:1001D000440045004C000000AC005200AB000000A1 +:1001E000000000000000000000004600470048003A +:1001F00049000100500051004F00000000000000C5 +:1002000000000000000000000000000000000100ED +:100210000000A800AA00A9000000000000000000E3 +:1002200000000000000001004B420100010001003D +:1002300000000000AE00000000000000000001000F +:100240004A004E004D000070000000000000000059 +:10025000000000000000000000000000000000009E +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000000000000000006E +:10029000000000000000000000000100000001203C +:1002A00002200320042005200620072008203270A9 +:1002B0003170010001000100010001000000000098 +:1002C000010000000000000000000100010001002A +:1002D00001000A44454255473A20656E61626C65EB +:1002E000642E0A005374617465206F6620726F7704 +:1002F0002025583A2025303136620A0048756D6154 +:100300006E2D7265616461626C65206D61747269E5 +:10031000782073746174653A0D0A004465626F75E4 +:100320006E63696E672064656C61792072656D61CA +:10033000696E696E673A2025580A0054494D455246 +:10034000332064697361626C65642E0A0054494D00 +:1003500045523320656E61626C65642E0A007267D7 +:10036000626C696768742073657420687376205BBB +:10037000454550524F4D5D3A2025752C25752C254D +:10038000750A007267626C6967687420746F6767CA +:100390006C653A207267626C696768745F636F6E40 +:1003A0006669672E656E61626C65203D2025750A61 +:1003B000007267626C69676874206D6F64653A20CB +:1003C00025750A007267626C696768745F696E6997 +:1003D00074207267626C696768745F636F6E6669C8 +:1003E000672E6D6F6465203D20302E205772697432 +:1003F000652064656661756C742076616C756573E3 +:1004000020746F20454550524F4D2E0A007267628E +:100410006C696768745F696E6974206565636F6E87 +:10042000666967206973206E6F7420656E61626C07 +:1004300065642E0A007267626C696768745F696E32 +:100440006974207374617274210A007267626C6946 +:100450006768745F696E69742063616C6C65642E93 +:100460000A007267626C696768745F636F6E6669C1 +:10047000672E76616C203D2025640A007267626CED +:10048000696768745F636F6E6669672E7361742055 +:100490003D2025640A007267626C696768745F6357 +:1004A0006F6E6669672E687565203D2025640A00B9 +:1004B0007267686C696768745F636F6E6669672EE0 +:1004C0006D6F6465203D2025640A007267626C6967 +:1004D0006768745F636F6E6669672E656E61626CD4 +:1004E00065203D2025640A007267626C6967687444 +:1004F0005F636F6E666967206570726F6D0A006575 +:1005000065636F6E6669675F7570646174655F725D +:1005100067626C696768745F64656661756C740AAC +:1005200000643214643214783C1E1E140A05000064 +:1005300000000101010202030405050607090A0B78 +:100540000C0E0F1112141517191B1D1F212325281E +:100550002A2C2F313436393B3E414346494C4F52C9 +:1005600055585A5D6164676A6D707376797C7F83D4 +:1005700086898C8F9295989B9EA2A5A7AAADB0B3B1 +:10058000B6B9BCBEC1C4C6C9CBCED0D3D5D7DADCD0 +:10059000DEE0E2E4E6E8EAEBEDEEF0F1F3F4F5F6A6 +:1005A000F8F9FAFAFBFCFDFDFEFEFEFFFFFFFFFF80 +:1005B000FFFFFEFEFEFDFDFCFBFAFAF9F8F6F5F48E +:1005C000F3F1F0EEEDEBEAE8E6E4E2E0DEDCDAD7C8 +:1005D000D5D3D0CECBC9C6C4C1BEBCB9B6B3B0ADFD +:1005E000AAA7A5A29E9B9895928F8C898683807CD2 +:1005F000797673706D6A6764615D5A5855524F4CD5 +:10060000494643413E3B393634312F2C2A28252395 +:10061000211F1D1B1917151412110F0E0C0B0A099F +:1006200007060505040302020101010000000001A4 +:100630000102020202020203030303030303030392 +:10064000030303030304040404040404040404046F +:100650000405050505050505050505060606060646 +:100660000606060707070707070708080808080817 +:100670000909090909090A0A0A0A0A0B0B0B0B0BDB +:100680000C0C0C0C0C0D0D0D0D0E0E0E0E0F0F0F95 +:10069000101010101111111212121313131414143C +:1006A0001515161616171718181919191A1A1B1BCB +:1006B0001C1C1D1D1E1E1F2020212122232324243B +:1006C000252626272828292A2B2B2C2D2E2F303083 +:1006D0003132333435363738393A3B3C3D3E3F4092 +:1006E000414244454647494A4B4C4E4F515253555F +:1006F00056585A5B5D5E6062636567696B6D6E70CC +:10070000727476797B7D7F818486888B8D909295BB +:10071000979A9D9FA2A5A8ABAEB1B4B7BABEC1C40B +:10072000C8CBCFD3D6DADEE2E6EAEEF2F8FF5B73AF +:100730005D004B6579626F617264207374617274DD +:100740002E0A005B575D005B535D005B525D005BF2 +:10075000445D005B435D000E036B006300360030B8 +:1007600000760032000000080359006F0075000099 +:10077000000403090409027400040100A0FA09043A +:1007800000000103010100092111010001224000C4 +:100790000705810308000A090401000103010200A2 +:1007A000092111010001224D000705820308000AFA +:1007B00009040200010300000009211101000122C7 +:1007C00036000705830308000A090403000203003A +:1007D00000000921110100012220000705840320E7 +:1007E00000010705040320000112011001000000B0 +:1007F00008EDFE60600100010200010631FF09748E +:10080000A1010975150025FF95207508810209765B +:10081000150025FF952075089102C005010980A1EA +:1008200001850216010026B7001A01002AB70075DB +:100830001095018100C0050C0901A1018503160175 +:1008400000269C021A01002A9C0275109501810065 +:10085000C005010902A1010901A100050919012929 +:100860000515002501950575018102950175038126 +:10087000010501093009311581257F95027508812F +:100880000609381581257F950175088106050C0A32 +:1008900038021581257F950175088106C0C00501C4 +:1008A0000906A101050719E029E7150025019508AA +:1008B0007501810295017508810105081901290555 +:1008C00095057501910295017503910105071900C0 +:1008D00029FF150026FF00950675088100C00A0053 +:1008E0002530325820006B6579626F6172645F72E7 +:1008F00065706F72743A20004B6579626F61726443 +:10090000204C4544732073746174653A2025780A3D +:1009100000646F6E652E0A00626F6F676D616769B4 +:1009200063207363616E3A202E2E2E2000290A0068 +:100930002575002F002575005D2800256400200026 +:10094000256400200025640020002564007C00252B +:10095000303258006D6F7573656B6579205B62741A +:100960006E7C782079207620685D287265702F6112 +:10097000636C293A205B006D6B5F776865656C5F1F +:1009800074696D655F746F5F6D6178203D202564CB +:100990000A006D6B5F776865656C5F6D61785F738A +:1009A00070656564203D2025640A006D6B5F746985 +:1009B0006D655F746F5F6D6178203D2025640A006E +:1009C0006D6B5F6D61785F7370656564203D202598 +:1009D000640A006D6B5F696E74657276616C203DB0 +:1009E0002025640A006D6B5F64656C6179203D2091 +:1009F00025640A006D6B5F776865656C5F74696D6F +:100A0000655F746F5F6D6178203D2025640A006D1D +:100A10006B5F776865656C5F6D61785F7370656546 +:100A200064203D2025640A006D6B5F74696D655F0D +:100A3000746F5F6D6178203D2025640A006D6B5FE7 +:100A40006D61785F7370656564203D2025640A00E0 +:100A50006D6B5F696E74657276616C203D202564F4 +:100A60000A006D6B5F64656C6179203D2025640A26 +:100A7000000A00257500363A20776865656C5F745A +:100A8000696D655F746F5F6D61783A20000A0025BB +:100A90007500353A20776865656C5F6D61785F73C6 +:100AA000706565643A20000A00257500343A2074A8 +:100AB000696D655F746F5F6D61783A20000A00258B +:100AC0007500333A206D61785F73706565643A2014 +:100AD000000A00257500323A20696E7465727661ED +:100AE0006C286D73293A20000A00257500313A20E0 +:100AF00064656C6179282A31306D73293A20000AC7 +:100B0000092D2056616C756573202D0A004D3E003D +:100B10004D25643E20003F00736574206465666166 +:100B2000756C740A00433E20007768657265206426 +:100B3000656C74613A20637572736F723D25642C25 +:100B400020776865656C3D25640A53656520687487 +:100B500074703A2F2F656E2E77696B6970656469C2 +:100B6000612E6F72672F77696B692F4D6F75736593 +:100B70005F6B6579730A000A092D204D6F757365E7 +:100B80006B6579202D0A4553432F713A09717569B8 +:100B9000740A313A0964656C6179282A31306D73C1 +:100BA000290A323A09696E74657276616C286D7330 +:100BB000290A333A096D61785F73706565640A3498 +:100BC0003A0974696D655F746F5F6D61780A353AD3 +:100BD00009776865656C5F6D61785F7370656564E2 +:100BE0000A363A09776865656C5F74696D655F748C +:100BF0006F5F6D61780A0A703A097072696E7420CD +:100C000076616C7565730A643A097365742064656E +:100C10006661756C74730A75703A092B310A646FDA +:100C2000776E3A092D310A706775703A092B3130A9 +:100C30000A7067646F776E3A092D31300A0A737053 +:100C4000656564203D2064656C7461202A206D61B7 +:100C5000785F7370656564202A202872657065610D +:100C600074202F2074696D655F746F5F6D617829E2 +:100C70000A003F004D3E2000433E20004C25640A00 +:100C80000074696D65725F636F756E743A2025300C +:100C9000346C580A006B6579626F6172645F6964D5 +:100CA0006C653A2025580A006B6579626F61726441 +:100CB0005F70726F746F636F6C3A2025580A00681A +:100CC0006F73745F6B6579626F6172645F6C65648A +:100CD0007328293A2025580A000A092D20537461E7 +:100CE000747573202D0A004743433A20352E332E66 +:100CF00030204156522D4C4942433A20322E302E5C +:100D000030204156525F415243483A206176723555 +:100D10000A004F5054494F4E533A204C55464120FB +:100D2000424F4F544D41474943204D4F5553454B3A +:100D300045592045585452414B455920434F4E5335 +:100D40004F4C4520434F4D4D414E442034303936B1 +:100D50000A004255494C443A20756E6B6E6F776EAF +:100D6000202830323A35383A3231204A756E2032F6 +:100D7000312032303136290A005649443A20307841 +:100D80004645454428596F7529205049443A20303A +:100D90007836303630286B63363076322920564527 +:100DA000523A203078303030310A00444553433ACB +:100DB000204120637573746F6D206B6579626F617C +:100DC00072640A000A092D2056657273696F6E20DD +:100DD0002D0A000A092D20436F6E736F6C65202D5C +:100DE0000A4553432F713A09717569740A6D3A09BE +:100DF0006D6F7573656B65790A000A092D204D6169 +:100E0000676963202D0A443A094465627567204D7D +:100E100065737361676520546F67676C650A583A3C +:100E2000094D6174726978204465627567204D6F61 +:100E3000646520546F67676C65202D2053686F7759 +:100E4000206B65797072657373657320696E206DB0 +:100E5000617472697820677269640A4B3A094B655C +:100E600079626F61726420446562756720546F67B0 +:100E7000676C65202D2053686F77206B65797072E1 +:100E8000657373207265706F72740A4D3A09446518 +:100E9000627567204D6F75736520546F67676C6569 +:100EA0000A563A0956657273696F6E0A533A0953C6 +:100EB00074617475730A433A0941637469766174A5 +:100EC0006520436F6E736F6C65204D6F64650A46D5 +:100ED000312D4631303A0953776974636820746F55 +:100EE000204C6179657220302D3920284631302020 +:100EF0003D204C30290A302D393A09537769746303 +:100F00006820746F204C6179657220302D390A4554 +:100F100053433A0953776974636820746F204C61B6 +:100F200079657220302028616C7465726E61746519 +:100F3000206B65792031290A47524156453A0953B9 +:100F4000776974636820746F204C61796572203012 +:100F50002028616C7465726E617465206B65792000 +:100F600032290A50415553453A094A756D7020742B +:100F70006F20426F6F746C6F6164657220285265D8 +:100F8000736574290A453A095072696E74204545A3 +:100F900050524F4D2053657474696E67730A000A8E +:100FA000002575002E6C6576656C3A20000A0025D8 +:100FB00075002E656E61626C653A20000A0025306E +:100FC0003258006261636B6C696768745F636F6E4F +:100FD0006669672E7261773A20000A002575002E37 +:100FE0006E6B726F3A20000A002575002E737761D0 +:100FF000705F6261636B736C6173685F6261636B86 +:1010000073706163653A20000A002575002E7377BE +:1010100061705F67726176655F6573633A20000A8D +:10102000002575002E6E6F5F6775693A20000A0013 +:101030002575002E737761705F72616C745F7267E3 +:1010400075693A20000A002575002E737761705F7C +:101050006C616C745F6C6775693A20000A002575D5 +:10106000002E636170736C6F636B5F746F5F636F8F +:101070006E74726F6C3A20000A002575002E73772B +:1010800061705F636F6E74726F6C5F636170736CBD +:101090006F636B3A20000A0025303258006B657987 +:1010A0006D61705F636F6E6669672E7261773A205B +:1010B000000A002575002E6D6F7573653A20000AD1 +:1010C000002575002E6B6579626F6172643A2000AD +:1010D0000A002575002E6D61747269783A20000A45 +:1010E000002575002E656E61626C653A20000A006D +:1010F000253032580064656275675F636F6E66699C +:10110000672E7261773A20000A00257500646566D3 +:1011100061756C745F6C617965723A20003F000AFA +:101120006D6F7573653A206F66660A000A6D6F759C +:1011300073653A206F6E0A000A6B6579626F61729F +:10114000643A206F66660A000A6B6579626F6172A5 +:10115000643A206F6E0A000A6D61747269783A20F1 +:101160006F66660A000A6D61747269783A206F6E64 +:101170000A000A64656275673A206F66660A000AAB +:1011800064656275673A206F6E0A000A0A4A756DD7 +:1011900070696E6720746F20626F6F746C6F61642A +:1011A00065722E2E2E2000433E20006565636F6E13 +:1011B0006669673A0A006261636B6C6967687420EC +:1011C000737465703A2025750A006261636B6C69FF +:1011D00067687420746F67676C653A2025750A002C +:1011E0006261636B6C6967687420646563726561D2 +:1011F00073653A2025750A006261636B6C696768E4 +:101200007420696E6372656173653A2025750A0002 +:1012100011241FBECFEFDAE0DEBFCDBF04B603FE60 +:1012200027C080913F0290914002A0914102B0916D +:1012300042028730904BA740B04BD1F410923F024E +:1012400010924002109241021092420214BE84B7E2 +:10125000877F84BF0FB6F894A8958091600088615D +:1012600080936000109260000FBEE0E0F8E3099503 +:1012700011E0A0E0B1E0E6E6FEE602C005900D92C6 +:10128000A634B107D9F722E0A6E4B1E001C01D926F +:10129000AF33B207E1F70E9404190C9431370C9474 +:1012A0000000FF93EF93E0914601F09147013097E2 +:1012B00009F00995EF91FF910895FC018591803027 +:1012C00011F0EFDFFBCF0895FF27E0E230E247FFA8 +:1012D0000CC0419597FF09C0EDE26095709580952F +:1012E0009095611D711D811D911D27FF02C02195E3 +:1012F00030E350E2AA27660F771F881F991FAA1FA5 +:10130000A41710F0A41B63955A95A9F7AA3008F00A +:10131000A95FA05DAF93F3956115710581059105F6 +:1013200041F7ED3211F4EF93F395F21718F43F9370 +:10133000F395FBCF8F91B5DFFA95E1F70895E99129 +:10134000F9918591803021F0853219F0AADFF9CF2B +:10135000089520E0E89455915532C1F3503311F4CB +:10136000689455915A3348F4505390F3220F022E4B +:10137000220F220F200D250FF4CF0EF42195899115 +:101380009991533619F3533729F1533559F1BC016B +:1013900088279927E8945C3621F48991999168947B +:1013A0005591543639F446EF7EF077FF0DC08FEF3C +:1013B0009FEF0AC055374AE039F0583540E121F037 +:1013C000523642E009F00895FF93EF937DDFEF91ED +:1013D000FF91B7CFFF93EF93FC0181918030B9F378 +:1013E00060DFFBCFFF93EF9368DFF1CFDF93CF9305 +:1013F000CDB7DEB72596A3DFCF91DF91089508958D +:101400000C94FF0981E0089508950C94FF090C9451 +:10141000020A0C94040A269A2E988FEF9FEF90935D +:1014200087008093860082E28093800089E1809328 +:1014300081000C949B340E940B0A0C94000A282F04 +:101440002E9880918000211108C08F7D80938000AC +:1014500010928B0010928A00089580628093800021 +:10146000233019F48FEF9FEF0FC083E090E0821BD1 +:101470009109880F991F2FEF3FEFA90102C05695E0 +:1014800047958A95E2F7CA0190938B0080938A0072 +:101490000895CF93DF93EC01862F90E0893091057A +:1014A00008F05AC0FC01EA5AFF4F0C94E3360E9440 +:1014B000292982729A81992369F0882319F085E39A +:1014C00090E002C089E290E00E94ED28DF91CF9188 +:1014D0000C947329882319F085E390E002C089E217 +:1014E00090E00E940A29F2CF8A818823A9F1DF9136 +:1014F000CF910C940D148A81882371F1DF91CF91E3 +:101500000C9479128A81882339F1DF91CF910C9460 +:1015100091128A81882301F1DF91CF910C94B0124E +:101520008A818823C9F0DF91CF910C94CB128A81F4 +:10153000882391F0DF91CF910C94E5128A81882362 +:1015400059F0DF91CF910C9400138A81882321F008 +:10155000DF91CF910C940314DF91CF91089581E036 +:1015600008950C94AF0A08950F931F93CF93DF93C0 +:101570008C01FC01C081D181CE010E946E28BE0188 +:101580000E94ED0DEC01B8010E94B10A882309F414 +:1015900074C1F8018281882309F45BC080915301F2 +:1015A00081111FC0C431F0E7DF0709F00AC10E94B2 +:1015B000B30A81E0809353010E945D2A9093520107 +:1015C0008093510110924A0110924C0110924B01EC +:1015D00010924E0110924D011092500110924F0145 +:1015E0004CC180915101909152010E94692A883C1E +:1015F000910570F480914A01E82FF0E0EE0FFF1F93 +:10160000E55BFE4FD183C0838F5F80934A0135C174 +:10161000C43120E7D20708F028C1C23080E7D807DC +:1016200010F5C11590E7D90709F0DAC0F8018281F9 +:10163000882309F4BFC00E947A23FFEF24E38CE0E3 +:10164000F15020408040E1F700C000000E94B82A1D +:1016500014C1C431F0E7DF0708F0D3C0C23020E77F +:10166000D20708F49BC0F8018281882309F4A2C044 +:101670000E94722C811102C00E94532C0E948F2C58 +:1016800090E09093F8018093F701C230F0E7DF0714 +:1016900021F48091F70181607AC0C33020E7D2073E +:1016A00021F48091F701826072C0C43080E7D807CE +:1016B00021F48091F70184606AC0C53090E7D907B2 +:1016C00019F48091F70127C0C630E0E7DE0721F466 +:1016D0008091F70180615BC0C730F0E7DF0721F43C +:1016E0008091F701806253C0C83020E7D20721F40F +:1016F0008091F70180644BC0C93080E7D80721F49E +:101700008091F701806843C0CA3090E7D90729F477 +:101710008091F701846088603AC0CB30E0E7DE0753 +:1017200021F48091F7018E7F32C0CC30F0E7DF07E3 +:1017300021F48091F7018D7F2AC0CD3020E7D207B8 +:1017400021F48091F7018B7F22C0CE3080E7D8074B +:1017500019F48091F7011AC08091F701CF3090E71A +:10176000D90711F48F7E13C0C031E0E7DE0711F412 +:101770008F7D0DC0C131F0E7DF0711F48F7B07C00B +:10178000C231D04711F48F7702C08B7F877F80935F +:10179000F7018091F7010E94932C6FC0C11580E77B +:1017A000D80741F0C130D047F1F081E08093480183 +:1017B00080934901C801DF91CF911F910F910C9443 +:1017C000070AC43120E7D20708F04FC0C23080E7D3 +:1017D000D80708F048CFC11590E7D90709F42BCFF7 +:1017E000C130D04711F7F8018281882319F382EDC7 +:1017F00092E00E945D098091E60181608093E6019C +:101800003CC0C333E0E7DE07A1F4F80182818823FE +:1018100021F01092480182E017C0809148018111A7 +:1018200006C086E20E94E31F86E20E94AB2082E0AF +:1018300019C0C433D04709F0B8CFF801828188239A +:1018400031F01092490182E10E94FA2016C0809185 +:101850004901811106C087E20E94E31F87E20E94CE +:10186000AB2082E10E94012108C0C333F0E7DF070B +:1018700061F2C433D04709F398CF80E0DF91CF9174 +:101880001F910F9108950C941B0A0C94050A26E4ED +:10189000829FC0011124FC013EE0739FE00DF11D09 +:1018A0001124E60FF11DEE0FFF1FE25DFE4F859143 +:1018B00094910E94000E811540E5940708F047C0FE +:1018C000811520E4920708F014C1883E910520F5A7 +:1018D000803E910508F07DC1883A910578F4853AFB +:1018E000910508F0A6C08130910509F472C108F491 +:1018F0002FC18430910508F06CC12AC18B3B910542 +:1019000008F4A2C0803C910508F422C1FC01EE0F4E +:10191000FF1FE456F040E7C0811530E2930758F40A +:10192000811541E0940708F054C1803F910508F407 +:101930000FC190650895811520E3920708F0D6C085 +:10194000FC01FF70EE0FFF1FE45EFE4FCCC081155F +:1019500035E5930708F044C0811544E5940708F085 +:10196000DFC0811522E5920710F5811531E5930757 +:1019700008F0C2C09C0154E0369527955A95E1F7CE +:10198000922F9370482F437021E030E002C0220F65 +:10199000331F4A95E2F73C68392B8F708695869500 +:1019A00040E2849FC0011124822B932B0895AC0147 +:1019B00043705527282F269526958115934508F0C5 +:1019C000A0C081E090E002C0880F991F4A95E2F71D +:1019D00040E2249F90011124822B932B9C68089550 +:1019E0008F3240E7940790F48F3120E7920708F098 +:1019F000A2C0811536E5930708F497C09C013056C4 +:101A00002115304108F0A4C09F7093C0803320E7B7 +:101A1000920709F497C008F492C0813340E7940715 +:101A200009F493C08233904709F092C080E093EDAF +:101A30000895853A910509F48EC0863A910509F01A +:101A40008DC082E890E40895883A910509F489C030 +:101A5000893A910509F488C08A3A910509F487C04A +:101A60008B3A910509F486C08C3A910509F485C03A +:101A70008D3A910509F484C0803B910509F483C037 +:101A80008E3A910509F482C08F3A910509F481C01C +:101A9000813B910509F480C0823B910509F47FC028 +:101AA000833B910509F47EC0843B910509F47DC018 +:101AB000853B910509F47CC0863B910509F47BC008 +:101AC000873B910509F47AC0883B910509F479C0F8 +:101AD000893B910509F478C08A3B910509F477C0E8 +:101AE00080E094E408958591949108959927906CED +:101AF00008959F70906A0895982F8827816F906A43 +:101B0000089581E090E002C0880F991F4A95E2F79E +:101B100040E2249F90011124822B932B9A68089510 +:101B2000982F8827846F906A08958F719927982F2E +:101B30008827906208958F519047946D089580E0B2 +:101B400091ED089580E090ED089580E092ED089584 +:101B500080E090E0089581E890E4089583E890E4BF +:101B6000089582EE94E4089589EE94E408958AEE4F +:101B700094E4089585EB94E4089586EB94E4089545 +:101B800087EB94E408958CEC94E408958DEC94E450 +:101B9000089583E895E408958AE895E4089582E934 +:101BA00095E4089584E995E4089581E296E4089522 +:101BB00083E296E4089584E296E4089585E296E44B +:101BC000089586E296E4089587E296E408958AE20D +:101BD00096E4089580E090E0089526E4829FC00195 +:101BE0001124FC012EE0729FE00DF11D1124E60F7F +:101BF000F11DEE0FFF1FE25DFE4F85919491089558 +:101C00008238910549F1B0F48133910509F459C046 +:101C100048F48932910509F44FC08A32910509F4DC +:101C200055C008958533910509F441C08933910564 +:101C300099F00895833E910531F138F4803E910585 +:101C400091F0823E9105A9F00895863E910501F13B +:101C5000873E910539F108952091F70120FD3BC0A1 +:101C600021FD39C008958091F70180FF34C089E3D8 +:101C700041C08091F70182FF30C08091F70184FD5F +:101C80002EC083EE37C08091F70182FD26C0F5CFCC +:101C90008091F70183FF25C08091F70184FD1FC06B +:101CA00087EE28C08091F70183FD1BC0F5CF80919E +:101CB000F70185FD18C019C08091F70185FD15C099 +:101CC00012C08091F70186FD12C013C08091F70108 +:101CD00086FD0FC00CC080EE0DC082EE0BC080E010 +:101CE00009C086EE07C089E205C085E303C08AE229 +:101CF00001C081E390E008950C94090AE82FF0E018 +:101D0000ED5DFE4F8081E82FEF70F0E082958F70DF +:101D100021E030E0A90102C0440F551F8A95E2F787 +:101D200040A308950F931F93CF93DF93C4E0D0E0B7 +:101D300001E010E0FE01ED5DFE4F8081E82FEF70C5 +:101D4000F0E021A182958F70A80102C0440F551FB9 +:101D50008A95E2F7CA01822B81A38C2F0E947E0E06 +:101D6000219740F78DE090E061E070E0FC01EB5ED0 +:101D7000FE4F2081E22FEF70F0E042A122952F70FC +:101D8000DB0102C0AA0FBB1F2A95E2F79D01242B9D +:101D900022A3019758F7DF91CF911F910F910895DA +:101DA0000F931F93CF93DF9385B7806885BF85B767 +:101DB000806885BFC4E0D0E001E010E0FE01ED5D89 +:101DC000FE4F8081E82FEF70F0E021A182958F70A7 +:101DD000A80102C0440F551F8A95E2F7CA01822B61 +:101DE00081A38C2F0E947E0E219740F78DE090E01A +:101DF00061E070E0FC01EB5EFE4F2081E22FEF70AE +:101E0000F0E042A122952F70DB0102C0AA0FBB1F98 +:101E10002A95E2F79D01242B22A3019758F7DF9121 +:101E2000CF911F910F910C94430CCF92DF92EF92C0 +:101E3000FF920F931F93CF93DF930EE511E078018C +:101E4000C4E0CC24C394D12CD5E08C2F0E947E0E0C +:101E50008DE090E040E050E0FC01EB5EFE4F6081E1 +:101E6000E62FEF70F0E020A130E062956F7002C0C5 +:101E7000359527956A95E2F720FD09C09601082E51 +:101E800002C0220F331F0A94E2F7422B532B019713 +:101E900018F7D7019E918E917D018417950721F047 +:101EA0004D935C93D09300018C2F0E947E0EC15005 +:101EB00060F68091000187FD2FC09091E60190FFB0 +:101EC00010C0282F082E000C330B3F938F938BE10B +:101ED00093E09F938F930E94F6090F900F900F90BD +:101EE0000F908091000181508093000187FD07C011 +:101EF000EFE9FFE03197F1F700C000000DC0E8E620 +:101F0000F1E084E591E0D8013E912E918D0132936C +:101F100022938A179B07B9F70E94450C81E0DF9155 +:101F2000CF911F910F91FF90EF90DF90CF90089588 +:101F3000E82FF0E0EE0FFF1FE25AFE4F8081918103 +:101F40000895EF92FF920F931F93CF93DF938091A9 +:101F5000E60180FF04C08CEF92E00E945D090EE56F +:101F600011E0C0E0D0E084EEE82E82E0F82E80910F +:101F7000E60180FF13C0F801808191810E94C5298C +:101F80009F938F93DF93CF93FF92EF920E94F60976 +:101F90000F900F900F900F900F900F9021960E5F63 +:101FA0001F4FC530D10519F7DF91CF911F910F91C8 +:101FB000FF90EF9008950F931F93CF9308E611E0E1 +:101FC000C0E0F801929182918F010E94A729C80F69 +:101FD000F1E00E351F07A9F78C2FCF911F910F91BC +:101FE000089521B3342F3095232331B3432B3FB7CA +:101FF000F894FC01680F791FE617F70789F08191C3 +:1020000098E041BB000000C087FF21BB880F0000A3 +:1020100000C000C000C021BB00C09A9591F7ECCF72 +:102020003FBF089520B3242B20BB9B01220F331FF9 +:10203000620F731F0E94F10F87EC90E00197F1F798 +:1020400000C00000089540E20C941210AF92BF92BD +:10205000CF92DF92EF92FF920F931F93CF93DF9374 +:102060006C01790150E0FA01E25DF94F44918FEF84 +:1020700090E0FC01E61BF109E25DF94FE491E09587 +:1020800009F495C0C42FD0E08E1B91098C9F90015C +:102090008D9F300D9C9F300D1124E32F8CE3A82ED3 +:1020A000B12CC601B5010E94BB36DC01623071055E +:1020B00009F446C0D0F46115710599F161307105DC +:1020C00009F079C0C31BD109B501681B790BC69F04 +:1020D000C001C79F900DD69F900D1124B5010E949D +:1020E000BB36032F060F142F67C06430710509F447 +:1020F0004BC0B8F16530710509F05DC0C31BD10953 +:10210000B501681B790BC69FC001C79F900DD69F74 +:10211000900D1124B5010E94BB36132FE32FE60F5B +:1021200044C0C31BD109CC9DC001CD9D900DDC9D49 +:10213000900D1124B5010E94BB36132F160F35C028 +:10214000C31BD109CA9FC001CB9F900DDA9F900D90 +:102150001124B5010E94BB36142F032FE32FE60F85 +:102160002BC0C31BD109B501681B790BC69FC001E9 +:10217000C79F900DD69F900D1124B5010E94BB36CC +:10218000132F160F032F0FC0C31BD109CA9FC00105 +:10219000CB9F900DDA9F900D1124B5010E94BB36A4 +:1021A000032F060F132FE42F07C0042F05C0E42FC1 +:1021B000142F042F01C0E0E0D70111960C93119762 +:1021C0001C931296EC93DF91CF911F910F91FF908A +:1021D000EF90DF90CF90BF90AF90089587E090E0B0 +:1021E0000C94F136AB01BC0187E090E00C940F3702 +:1021F0008091E60180FF08C08FEF94E09F938F935A +:102200000E94F6090F900F9083E08093F90180916E +:10221000FA01807884668F778093FA018CEC809342 +:10222000FB018093FC016091F9017091FA018091AA +:10223000FB019091FC010C94F2108091E60180FF6B +:1022400008C088EE94E09F938F930E94F6090F9048 +:102250000F908091E60180FF0FC08091F90181709D +:102260001F928F938BEC94E09F938F930E94F609BB +:102270000F900F900F900F908091E60180FF10C09B +:102280008091F90186958F731F928F9380EB94E074 +:102290009F938F930E94F6090F900F900F900F90CD +:1022A0008091E60180FF19C08091F901881F88277D +:1022B000881F9091FA01292F220F822B97FB9927D3 +:1022C00090F99F938F9386E994E09F938F930E9458 +:1022D000F6090F900F900F900F908091E60180FF0C +:1022E0000EC08091FB011F928F938CE794E09F9327 +:1022F0008F930E94F6090F900F900F900F9080918E +:10230000E60180FF0EC08091FC011F928F9382E650 +:1023100094E09F938F930E94F6090F900F900F9077 +:102320000F9008958091F90180FF06C060E170E090 +:1023300081E092E00C942310E3E0F2E0DF011197DA +:102340001C9211971C921082339682E0E333F807B7 +:10235000A9F7ECCFE3E0F2E0DF0111978C9311973E +:102360006C934083339692E0E333F907A9F70C941A +:102370009211EF92FF920F931F93CF93DF9300D0B0 +:102380001F92CDB7DEB7182FE92EF62E042F8091BD +:10239000F9019091FA01A091FB01B091FC018093A9 +:1023A000FD019093FE01A093FF01B0930002809184 +:1023B000F90180FF1FC09E012F5F3F4F812F9E2D8F +:1023C0000E9426108091FD0110FB87F98093FD018A +:1023D00016958091FE018078182BE0FA17F910937A +:1023E000FE01F092FF01009300024B8169818A8116 +:1023F0000E94AA110F900F900F90DF91CF911F9123 +:102400000F91FF90EF9008950F931F93CF93DF9359 +:10241000EC01062F142F9091F90190FF65C0892FD0 +:102420008E77823021F4CE010E94B9111BC0892F12 +:1024300086958F732EE3280F2F73243018F4109194 +:10244000FC0110C0865C8F73893060F4C92FCC1FEB +:10245000CC27CC1FD091FA018D2F880FC82BD7FB2A +:10246000DD27D0F98091F901C0FB87F98093F9014C +:10247000C6958091FA018078C82BD0FBC7F9C0932C +:10248000FA010093FB011093FC016091F901709136 +:10249000FA018091FB019091FC010E94F210809161 +:1024A000FC011F928F938091FB011F928F9380916B +:1024B000F901881F8827881F9091FA01292F220F80 +:1024C000822B97FB992790F99F938F938EE593E04A +:1024D0009F938F930E94F6098DB79EB708960FB60B +:1024E000F8949EBF0FBE8DBFDF91CF911F910F91CA +:1024F0000895E9EFF1E02081221F2227221F309169 +:10250000FA01432F440F842F822B37FB992790F930 +:10251000089668E671E00E94CF36438162810C9490 +:1025200004122091F901221F2227221F3091FA0163 +:10253000432F440F842F822B37FB992790F9883043 +:1025400091051CF4805A9E4F05C0089768E671E01B +:102550000E94CF364091FC016091FB010C94041263 +:102560006091FB01862F90E0883F910514F4685F2D +:1025700001C06FEF8091F901881F8827881F909113 +:10258000FA01292F220F97FB992790F94091FC011E +:10259000822B0C9404126091FB01862F90E0089727 +:1025A00014F0685001C060E08091F901881F88270D +:1025B000881F9091FA01292F220F97FB992790F9F4 +:1025C0004091FC01822B0C9404124091FC01842F59 +:1025D00090E0883F910514F4485F01C04FEF80916F +:1025E000F901881F8827881F9091FA01292F220F4F +:1025F00097FB992790F96091FB01822B0C940412B0 +:102600004091FC01842F90E0089714F0485001C0DD +:1026100040E08091F901881F8827881F9091FA0176 +:10262000292F220F97FB992790F96091FB01822BAC +:102630000C9404128091790181110FC081E0809384 +:10264000790189E0809391008FB7F89493E090939B +:10265000990090ED909398008FBF0895809171003C +:102660008260809371008091E60180FF08C08DE454 +:1026700093E09F938F930E94F6090F900F90089517 +:10268000809171008D7F809371008091E60180FFC1 +:1026900008C08BE393E09F938F930E94F6090F90FD +:1026A0000F9008959091F90190FF4BC0917881119E +:1026B00002C0926007C0883110F09E6203C08F7321 +:1026C000880F982B9093F9016091F9017091FA01AC +:1026D0008091FB019091FC010E94F2108091F90120 +:1026E00086958F731F928F9381EB93E09F938F93C7 +:1026F0000E94F6098091F901982F9E770F900F9014 +:102700000F900F90923019F40E94401307C08695E5 +:10271000825C8F73863110F40E942E138091F90130 +:10272000881F8827881F9091FA01292F220F97FB75 +:10273000992790F94091FC016091FB01822B0C9448 +:10274000041208958091E60181608093E6018BE494 +:1027500094E09F938F930E94F60981E080937A0121 +:102760008091E6010F900F9080FF08C085E394E010 +:102770009F938F930E94F6090F900F900E94722CE6 +:10278000811110C08091E60180FF08C08DE094E0C7 +:102790009F938F930E94F6090F900F900E94532CE5 +:1027A0000E94F8100E94EE106093F9017093FA01F4 +:1027B0008093FB019093FC016E77C1F48091E60158 +:1027C00080FF08C084EC93E09F938F930E94F609EA +:1027D0000F900F900E94F8100E94EE106093F90184 +:1027E0007093FA018093FB019093FC010E941D11EC +:1027F0000E941A138091F90180FF04C086958F739F +:102800000C94521308958091F90186958F738F5F10 +:10281000883108F081E00C9452138091F901982FCF +:10282000909590FB80F98093F9016091F901709186 +:10283000FA018091FB019091FC010E94F2108091BD +:10284000F90181701F928F9383E893E09F938F9398 +:102850000E94F6098091F9010F900F900F900F9050 +:1028600080FF04C086958F730C9452130E9440130E +:102870002FEF80E792E0215080409040E1F700C0C8 +:1028800000000C949211CF93C82F80917701909102 +:1028900078010E94692AEC2FF0E0E65DFA4FE4919E +:1028A000F0E08E179F0718F10E945D2A909378013F +:1028B00080937701E0917601F0E0E25DFA4F449178 +:1028C0008091F901881F8827881F9091FA01292F8C +:1028D000220F97FB992790F96091FB01822B0E94B0 +:1028E000B9118091760190E0019680937601CF91A5 +:1028F0000895CF93C82F80917401909175010E9423 +:10290000692AEC2FF0E0E95DFA4FE491F0E08E17D0 +:102910009F07E8F00E945D2A9093750180937401EF +:102920004091FC016091FB018091720190917301D3 +:102930000E94B9118091720190917301019668E62D +:1029400071E00E94BB369093730180937201CF9126 +:102950000895CF92DF92FF920F931F93CF93DF934F +:10296000F82E80917001909171010E94692AEF2DDB +:10297000E695F0E0E95DFA4FE491F0E08E179F07ED +:10298000C0F10E945D2A909371018093700101E073 +:1029900012E0C0E0D0E088E6C82EDD24D394809118 +:1029A0006E0190916F018C0F9D1FB6010E94BB3686 +:1029B00098014091FC016091FB010E9426106696EF +:1029C0000D5F1F4FC03681E0D80749F70E94921172 +:1029D00080916E0190916F01F0FE06C0019668E64D +:1029E00071E00E94BB3601C0019790936F01809304 +:1029F0006E01DF91CF911F910F91FF90DF90CF90EB +:102A000008958F929F92AF92BF92CF92DF92EF92F2 +:102A1000FF920F931F93CF93DF93C82F80FF03C0C4 +:102A2000DD24DA9402C0DD24D39480916C0190916E +:102A30006D010E94692AC695EC2FF0E0EC5DFA4F1B +:102A4000E491F0E08E179F0708F466C00E945D2AAB +:102A500090936D0180936C0191E0E92E92E0F92E44 +:102A600003E012E0C0E0D0E027E0822E912CF801D4 +:102A700031971082F7011082F801108287E0A82EAA +:102A8000B12CC12C80916B018C0D87FD805F082ECD +:102A9000000C990BC817D907E9F42091FC012A9D75 +:102AA000C0012B9D900D1124B4010E94CF36462FFA +:102AB0008091F901881F8827881F9091FA01592F6A +:102AC000550F97FB992790F997016091FB01852B92 +:102AD0000E942610CD0CF1E0AF1AB10899F62196AC +:102AE00083E0E80EF11C0D5F1F4FC031D10509F0E6 +:102AF000BECF0E94921180916B0191E0D91206C065 +:102B0000811102C08FE006C0815004C090E00196A0 +:102B10008F70992780936B01DF91CF911F910F9157 +:102B2000FF90EF90DF90CF90BF90AF909F908F90ED +:102B300008959F92AF92BF92CF92DF92EF92FF9251 +:102B40000F931F93CF93DF93CDB7DEB7E0970FB608 +:102B5000F894DEBF0FBECDBF182F80916901909110 +:102B60006A010E94692AE12FF0E0EF5DFA4FE491DB +:102B7000F0E08E179F0708F493C00E945D2A90939F +:102B80006A0180936901CE0101967C015E0193E0A8 +:102B9000A90EB11CC12CD12C8701F50131971082EF +:102BA000F7011082F5011082912C90910101809122 +:102BB0006801999E800D112487FD04C080311CF0AE +:102BC0008FE001C080E0082E000C990BC816D906D2 +:102BD000A1F48091F901881F8827881F9091FA013C +:102BE000592F550F97FB992790F997014091FC01B8 +:102BF0006091FB01852B0E9426109394F7E09F12B1 +:102C0000D4CF8FEFC81AD80A93E0E90EF11CE3E0A5 +:102C1000AE0EB11CF0E1CF16D10409F0BECFA3E097 +:102C2000B2E089E090E0FC01EF70FF279D012150A8 +:102C30003109AF01440F551FE40FF51FBF01600FAD +:102C4000711FFB014181F901408321503109FB01D2 +:102C50004081F9014083FB0122812C930196139658 +:102C60008931910501F70E949211909101018091A3 +:102C70006801913049F48A3F2CF489EF8093680110 +:102C80008FEF08C081500AC087313CF086E1809305 +:102C9000680181E08093010103C08F5F8093680128 +:102CA000E0960FB6F894DEBF0FBECDBFDF91CF9197 +:102CB0001F910F91FF90EF90DF90CF90BF90AF905A +:102CC0009F9008951F920F920FB60F9211242F9389 +:102CD0003F934F935F936F937F938F939F93AF93A4 +:102CE000BF93EF93FF938091F90186958F739EE3D5 +:102CF000980F9F73943020F482500E94431423C095 +:102D00009AE3980F9F73933020F486500E947914B1 +:102D10001AC097E3980F9F73963020F489500E9451 +:102D2000A91411C091E3980F9F73963020F48F502F +:102D30000E94011508C09BE2980F9F73933018F40E +:102D400085510E949915FF91EF91BF91AF919F918D +:102D50008F917F916F915F914F913F912F910F9044 +:102D60000FBE0F901F9018958091860108959FB710 +:102D7000F89410927D019FBF90913502943009F034 +:102D800057C09091E9009F703091EC00232F217083 +:102D900030FD20E8922B24E02093E9002091EB0005 +:102DA00020FF43C02091EE0027FF3FC020917B0110 +:102DB000222321F02091E80025FF37C010927B01EB +:102DC00026E03091E80035FD15C0309135023430F1 +:102DD00061F53091EB0035FD28C0215021F481E0F0 +:102DE00080937B0122C0EFE9FFE03197F1F700C04B +:102DF0000000E7CF8093F1008091E80085FD0AC0D4 +:102E00008091E80080FFFCCF8091E8008E7780936E +:102E1000E80006C08FB7F89421E020937D018FBFB2 +:102E20009F709093E90080E008959F709093E9006F +:102E30008FEF0895CF93DF9300D01F92CDB7DEB709 +:102E40009C0180913502843019F593E099833B838E +:102E50002A839093E9008FEF9091E800815095FDCF +:102E600006C095ED9A95F1F700008111F5CF80919C +:102E7000E80085FF0DC040E050E063E070E0CE0167 +:102E800001960E94B7198091E8008E778093E80040 +:102E90000F900F900F90DF91CF910895CF93DF9314 +:102EA00000D01F92CDB7DEB720913502243021F536 +:102EB00022E029839B838A8383E08093E9008FEF5C +:102EC0009091E800815095FD06C095ED9A95F1F737 +:102ED00000008111F5CF8091E80085FF0DC040E032 +:102EE00050E063E070E0CE0101960E94B719809136 +:102EF000E8008E778093E8000F900F900F90DF919D +:102F0000CF9108959C01809135028430F9F482E0DC +:102F10008093E9009FEF8091E800915085FD06C005 +:102F200085ED8A95F1F700009111F5CF8091E800C9 +:102F300085FF0CC040E050E065E070E0C9010E94F0 +:102F4000B7198091E8008E778093E8000895CF93B9 +:102F5000DF93EC0180913502843039F581E0809374 +:102F6000E9008FEF9091E800815095FD06C095ED46 +:102F70009A95F1F700008111F5CF8091E80085FF67 +:102F800014C040E050E068E070E0CE010E94B71944 +:102F90008091E8008E778093E80088E0FE01AEE73C +:102FA000B1E001900D928A95E1F7DF91CF910895FC +:102FB00083E597E00E945D0980913402811109C088 +:102FC0000E94481B0E94A51B8091E20084608093B0 +:102FD000E20008958FE497E00E945D0910923402A8 +:102FE00008958BE497E00C945D0987E497E00C94D6 +:102FF0005D0983E497E00E945D090C94202A2091EA +:103000007C012F5F822F62E30E94AF36992319F073 +:1030100020937C01089510927C0180917D0188238A +:1030200071F180913502843041F58091E9008F7013 +:103030002091EC00922F917020FD90E8892B94E074 +:103040009093E9009091EB0090FF14C09091EE00F6 +:1030500097FF10C09091E80095FF03C01092F10017 +:10306000F9CF9091E80090FF05C09091E8009E771D +:103070009093E8008F708093E90010927D0108958D +:1030800042E061EC81E00E94C11A42E061EC82E022 +:103090000E94C11A42E061EC83E00E94C11A42E240 +:1030A00061EC84E00C94C11A80913702833009F4FA +:1030B00053C030F4813071F0823009F48CC008952F +:1030C0008A3009F478C08B3009F45EC0893009F089 +:1030D0009AC020C080913602813A09F094C0809154 +:1030E000E800877F8093E80080913A0290913B024C +:1030F000892B21F468E08EE791E003C060E080E076 +:1031000090E070E00E94021A8091E8008B77809333 +:10311000E800089580913602813209F074C08091F0 +:103120003A0290913B02892B09F06DC08091E80032 +:10313000877F8093E8008091E80082FD05C0809140 +:1031400035028111F8CF5FC08091F1008093860134 +:103150008091E8008B7753C080913602813A09F064 +:1031600052C080913A0290913B02892B09F04BC0EA +:103170008091E800877F8093E8008091E80080FFDD +:10318000FCCF80910C0136C0809136028132D9F596 +:1031900080913A0290913B02892BA9F58091E80039 +:1031A000877F8093E8000E94F61A8091380280930E +:1031B0000C010C947A2380913602813221F58091A2 +:1031C000E800877F8093E8000E94F61A8091390218 +:1031D00080938701089580913602813AA1F480910D +:1031E000E800877F8093E8008091E80080FFFCCFB3 +:1031F000809187018093F1008091E8008E77809321 +:10320000E8000C94F61A089584B7877F84BF0FB640 +:10321000F894A89580916000886180936000109276 +:1032200060000FBE80E880936100109261000E94F0 +:10323000DB1E0E94481B0E94A51B8091E200846057 +:103240008093E20087EB96E10E94A22978940E9485 +:103250002F1E0E94DD1E82E091E00E944A1E82E342 +:1032600097E00E945D0980913502853089F48EE2F5 +:1032700097E00E945D090E94DF2980913302882334 +:1032800091F30E940F2A882371F30E94A119EBCFBA +:103290000E94051FE8CF292F332723303105C9F0BD +:1032A00060F42130310581F02230310509F041C050 +:1032B00084E790E025E737E040C021323105E1F0B6 +:1032C0002232310531F135C082E190E029EE37E05C +:1032D00034C099278130910549F028F0029749F5CB +:1032E000E7E5F7E005C0E1E7F7E002C0E7E6F7E071 +:1032F000849190E09F0121C06430D8F4E62FF0E083 +:10330000EE0FFF1FEC5CFE4F2081318189E090E0E1 +:1033100014C0643070F470E0FB01EE0FFF1FE45D39 +:10332000FE4F20813181FB01E85DFE4F808190E0FE +:1033300004C080E090E020E030E0FA013183208397 +:10334000089580E189BD82E189BD09B400FEFDCF09 +:103350008091D8008F7D8093D8008091E0008260BA +:103360008093E0008091E00081FDFCCF0895CF9232 +:10337000DF92EF92FF920F931F93CF93DF93EC01B5 +:103380008B016A010E94151B811133C0C114D10445 +:1033900039F0F60180819181081B190BC80FD91FE4 +:1033A000E12CF12C0115110519F18091E80085FD42 +:1033B00016C08091E8008E778093E800C114D10494 +:1033C00049F0F60180819181E80EF91EF182E082D8 +:1033D00085E00FC00E94151B882321F30AC0899144 +:1033E0008093F10001501109FFEFEF1AFF0ADACFC5 +:1033F00080E0DF91CF911F910F91FF90EF90DF90D0 +:10340000CF90089520913C0230913D022617370756 +:1034100048F06115710539F42091E8002E7720936A +:10342000E80001C0B901FC0120E06115710579F1E6 +:10343000809135028823F1F18530F1F18091E80027 +:1034400083FD3CC08091E80082FD2EC08091E800A1 +:1034500080FFEBCF2091F3008091F20090E0922B5F +:103460006115710551F08830910538F42191209350 +:10347000F100615071090196F3CF21E0089709F03E +:1034800020E08091E8008E778093E800CECF211174 +:10349000CFCF0AC080913502882361F0853061F07A +:1034A0008091E80083FD0AC08091E80082FFF2CF9E +:1034B00080E0089582E0089583E0089581E0089512 +:1034C00020913C0230913D022617370748F06115E4 +:1034D000710539F42091E8002E772093E80001C0AF +:1034E000B901FC0120E06115710591F1809135026F +:1034F000882309F440C0853009F43FC08091E8007A +:1035000083FD3DC08091E80082FD2FC08091E800DE +:1035100080FFE9CF2091F3008091F20090E0922BA0 +:103520006115710559F08830910540F4249120937C +:10353000F1003196615071090196F2CF21E00897B0 +:1035400009F020E08091E8008E778093E800CBCFEF +:103550002111CCCF0AC080913502882361F08530DB +:1035600061F08091E80083FD0AC08091E80082FF4D +:10357000F2CF80E0089582E0089583E0089581E02D +:103580000895982F973068F59093E900981739F0CF +:103590007091EC002091ED005091F00003C0242FB9 +:1035A000762F50E021FD02C09F5FECCF3091EB0001 +:1035B0003E7F3093EB003091ED003D7F3093ED0086 +:1035C0003091EB0031603093EB007093EC0020936E +:1035D000ED005093F0002091EE0027FDE5CF80E054 +:1035E00008958F708093E90081E0089580913602FC +:1035F00087FF11C08091E80082FD05C080913502EF +:103600008111F8CF11C08091E8008B770BC08091B9 +:103610003502882349F08091E80080FFF8CF80913F +:10362000E8008E778093E80008952091E4003091BF +:10363000E50095E64091EC00842F817040FF23C0A7 +:103640008091E80080FD1DC080913502882399F0AB +:10365000853099F08091EB0085FD11C04091E40028 +:103660005091E5002417350729F3915011F09A0184 +:10367000E1CF84E0089582E0089583E0089581E039 +:10368000089580E008954091E80042FFDDCF08955D +:103690000E94B61B0E94BE1BE0EEF0E080818160BC +:1036A0008083E8EDF0E080818F77808319BCA7EDFF +:1036B000B0E08C918E7F8C9380818F7E808310927E +:1036C000340208950F931F93CF93DF930E94B61B8C +:1036D0000E94BE1BC8EDD0E088818F7788838881E7 +:1036E0008068888388818F7D888319BC1092350219 +:1036F00010923102109233021092320200EE10E06A +:10370000F80180818B7F808388818160888342E09B +:1037100060E080E00E94C11AE1EEF0E080818E7FDF +:103720008083E2EEF0E08081816080838081886028 +:103730008083F80180818E7F808388818061888387 +:10374000DF91CF911F910F910895E8EDF0E0808116 +:103750008F7E8083E7EDF0E080818160808384E06C +:1037600082BF81E0809334020C94621BE8EDF0E0AC +:1037700080818E7F80831092E20008951092DA009B +:103780001092E10008951F920F920FB60F9211242C +:103790002F933F934F935F936F937F938F939F9359 +:1037A000AF93BF93EF93FF938091E10082FF0BC033 +:1037B0008091E20082FF07C08091E1008B7F8093BF +:1037C000E1000E94FF178091DA0080FF1FC0809106 +:1037D000D80080FF1BC08091DA008E7F8093DA00D2 +:1037E0008091D90080FF0DC080E189BD82E189BD53 +:1037F00009B400FEFDCF81E0809335020E94D81706 +:1038000005C019BC109235020E94EA178091E100B0 +:1038100080FF19C08091E20080FF15C08091E20016 +:103820008E7F8093E2008091E20080618093E200CD +:103830008091D80080628093D80019BC85E0809385 +:1038400035020E94F5178091E10084FF30C080911D +:10385000E20084FF2CC080E189BD82E189BD09B40A +:1038600000FEFDCF8091D8008F7D8093D80080919D +:10387000E1008F7E8093E1008091E2008F7E809353 +:10388000E2008091E20081608093E2008091310249 +:10389000882311F084E007C08091E30087FD02C017 +:1038A00081E001C083E0809335020E94F917809186 +:1038B000E10083FF29C08091E20083FF25C0809151 +:1038C000E100877F8093E10082E0809335021092CF +:1038D00031028091E1008E7F8093E1008091E200CF +:1038E0008E7F8093E2008091E20080618093E2000D +:1038F00042E060E080E00E94C11A8091F0008860A0 +:103900008093F0000E94F117FF91EF91BF91AF916A +:103910009F918F917F916F915F914F913F912F91E7 +:103920000F900FBE0F901F9018951F920F920FB619 +:103930000F9211242F933F934F935F936F937F9335 +:103940008F939F93AF93BF93CF93DF93EF93FF93A7 +:10395000C091E900CF708091EC00D82FD17080FD2C +:10396000D0E81092E9008091F000877F8093F0000A +:1039700078940E94D91C1092E9008091F000886030 +:103980008093F000CD2BCF70C093E900FF91EF91B1 +:10399000DF91CF91BF91AF919F918F917F916F9167 +:1039A0005F914F913F912F910F900FBE0F901F90FD +:1039B00018951F93CF93DF93CDB7DEB7AA970FB6B5 +:1039C000F894DEBF0FBECDBFE6E3F2E08091F100D8 +:1039D000819322E0EE33F207C9F70E9454188091D8 +:1039E000E80083FF24C18091360290913702492F6D +:1039F00050E04A30510508F01AC1FA01E15AFF4F70 +:103A00000C94E336803881F0823809F010C180913F +:103A10003A028F708093E9008091EB0085FB882744 +:103A200080F91092E90006C0809132029091330231 +:103A3000911182609091E800977F9093E8008093C5 +:103A4000F1001092F100C8C0282F2D7F09F0EFC0BF +:103A5000882319F0823061F0EAC080913802813009 +:103A600009F0E5C0933009F080E0809333022BC069 +:103A700080913802811127C080913A028F7009F439 +:103A8000D6C08093E9002091EB0020FF1CC093304A +:103A900021F48091EB00806214C09091EB00906162 +:103AA0009093EB0021E030E0A90102C0440F551FC4 +:103AB0008A95E2F74093EA001092EA008091EB00C9 +:103AC00088608093EB001092E9008091E800877F86 +:103AD00086C08111ACC0109138021F778091E3003D +:103AE0008078812B8093E3008091E800877F80932A +:103AF000E8000E94F61A8091E80080FFFCCF8091D8 +:103B0000E30080688093E300111102C082E001C0ED +:103B100083E0809335028BC08058823008F087C0E4 +:103B200080913802909139028C3D53E0950779F5E8 +:103B300083E08A838AE289834FB7F894DE01139683 +:103B400020E03EE051E2E32FF0E050935700E49193 +:103B500020FF03C0E295EF703F5FEF708E2F90E083 +:103B6000EA3010F0C79601C0C0968D939D932F5FE9 +:103B7000243149F74FBF8091E800877F8093E800A8 +:103B80006AE270E0CE0101960E94021A14C0AE01F2 +:103B90004F5F5F4F60913A020E944B19BC01892B25 +:103BA00009F445C09091E800977F9093E8008981DF +:103BB0009A810E94601A8091E8008B778093E800D8 +:103BC00036C08038A1F58091E800877F8093E800B7 +:103BD000809131028093F1008091E8008E7780938C +:103BE000E8000E94F61A23C0811121C0809138029A +:103BF0009091390299270297D4F48091E800877F49 +:103C00008093E80080913802809331020E94F61A76 +:103C100080913102811106C08091E30087FD02C0CE +:103C200081E001C084E0809335020E9440188091B9 +:103C3000E80083FF0AC08091E800877F8093E80056 +:103C40008091EB0080628093EB00AA960FB6F89407 +:103C5000DEBF0FBECDBFDF91CF911F910895CF93EF +:103C6000809135028823A1F0C091E900CF70909136 +:103C7000EC00892F817090FD80E8C82B1092E9003C +:103C80008091E80083FD0E94D91CCF70C093E900A9 +:103C9000CF91089590938D0180938C010895E091C8 +:103CA0008C01F0918D01309721F00190F081E02D91 +:103CB000099480E00895EF92FF921F93CF93DF93D2 +:103CC000F82E192FE0918C01F0918D013097A9F118 +:103CD0000280F381E02D09958091E60182FF2DC0DD +:103CE00080FF04C086EE98E00E945D09CF2DD12FA1 +:103CF00018E080EEE82E88E0F82E8091E60180FF43 +:103D00000BC088811F928F93FF92EF920E94F60959 +:103D10000F900F900F900F90115021961111EDCF31 +:103D20008091E60180FF09C08EED98E0DF91CF9190 +:103D30001F91FF90EF900C945D09DF91CF911F913F +:103D4000FF90EF900895E0918C01F0918D013097F4 +:103D500021F00480F581E02D0994089520918A01D5 +:103D600030918B012817390771F090938B01809364 +:103D70008A01E0918C01F0918D01309721F006804D +:103D8000F781E02D099408952091880130918901EF +:103D90002817390771F09093890180938801E09189 +:103DA0008C01F0918D01309721F00084F185E02D98 +:103DB0000994089508950C94DA1E0E94542A0E94D2 +:103DC000D00E0E94222B0E949B340C94A213CF93FE +:103DD000DF931F92CDB7DEB79091E60192FF10C03E +:103DE00090FF0EC01F928F9328EF38E03F932F93E0 +:103DF00089830E94F6090F900F900F900F90898190 +:103E00000F90DF91CF910C947C0E4F925F927F9236 +:103E10008F929F92AF92BF92CF92DF92EF92FF92DA +:103E20000F931F93CF93DF9300D000D01F92CDB795 +:103E3000DEB70E94150F99E9C92E91E0D92E04E052 +:103E400010E0AA24A394B12C702E802F0E94980F0A +:103E50004C01F601529042906F01482659264114B8 +:103E60005104A1F40150110978F78FEF89838A83F7 +:103E70001B820E945D2A8160782F9D838C834981FB +:103E80005A816B818D810E94B51F38C08091E601F7 +:103E900081FD0E94A10F2DE030E07501022E02C0CD +:103EA000EE0CFF1C0A94E2F7C2018E219F21892BA0 +:103EB00009F129837A828E209F2091E0892809F4D4 +:103EC00090E09B830E945D2A8160782F9D838C8384 +:103ED00049815A816B818D810E94B51F000F111F8E +:103EE000F801E157FE4F80819181E826F926F182A1 +:103EF000E08204C02150310980F6B4CF0E949D2E8B +:103F00000E944F1E90918E018917D1F00E944F1E82 +:103F100080938E010F900F900F900F900F90DF9174 +:103F2000CF911F910F91FF90EF90DF90CF90BF90B6 +:103F3000AF909F908F907F905F904F900C94E71E72 +:103F40000F900F900F900F900F90DF91CF911F91D6 +:103F50000F91FF90EF90DF90CF90BF90AF909F9028 +:103F60008F907F905F904F900895CF93DF93CDB760 +:103F7000DEB72B970FB6F894DEBF0FBECDBF4F83D1 +:103F8000588769877A878B87DE01119686E0FD0165 +:103F900011928A95E9F785E0FE01379601900D921E +:103FA0008A95E1F749815A816B817C818D819E815F +:103FB0000E9412262B960FB6F894DEBF0FBECDBF1F +:103FC000DF91CF910895CF93C82F882309F4C1C002 +:103FD000823859F40E944F1E81FDBBC089E30E94C4 +:103FE000ED280E94732989E30CC0833879F40E947C +:103FF0004F1E80FDAEC083E50E94ED280E9473290C +:1040000083E50E940A29CF910C947329843859F4CE +:104010000E944F1E82FD9DC087E40E94ED280E94F1 +:10402000732987E4EECF8CEF8C0F813A48F48C2F04 +:104030000E94463381118DC08C2F0E94ED28E3CF62 +:1040400080E28C0F883048F4C77081E001C0880F8F +:10405000CA95EAF70E942C29D6CF8BE58C0F8330C6 +:1040600078F4C53A29F0C63A31F083E890E005C00B +:1040700081E890E002C082E890E0CF910C94AE1EFF +:1040800088E58C0F833108F064C0C83A39F1C93A29 +:1040900041F1CA3A49F1CB3A51F1CC3A59F1CD3A12 +:1040A00061F1C03B69F1CE3A71F1CF3A79F1C13B90 +:1040B00081F1C23B89F1C33B91F1C43B99F1C53B0E +:1040C000A1F1C63BA9F1C73BB1F1C83BB9F1C93B6E +:1040D000C1F1CA3BC9F180E090E038C082EE90E0C7 +:1040E00035C089EE90E032C08AEE90E02FC085EBBB +:1040F00090E02CC086EB90E029C087EB90E026C0D2 +:104100008CEC90E023C08DEC90E020C083E891E03F +:104110001DC08AE891E01AC082E991E017C084E9E5 +:1041200091E014C081E292E011C083E292E00EC0FF +:1041300084E292E00BC085E292E008C086E292E061 +:1041400005C087E292E002C08AE292E0CF910C942F +:10415000C41ECF910895882309F44BC0823859F4C6 +:104160000E944F1E81FF45C089E30E94ED280E94F6 +:10417000732989E30CC0833871F40E944F1E80FFBD +:1041800038C083E50E94ED280E94732983E50E94D0 +:104190000A290C947329843859F40E944F1E82FF17 +:1041A00028C087E40E94ED280E94732987E4EFCF9E +:1041B0009CEF980F913A58F390E2980F983050F492 +:1041C000877091E001C0990F8A95EAF7892F0E94C4 +:1041D0003229DFCF9BE5980F933020F480E090E008 +:1041E0000C94AE1E885A833120F480E090E00C9449 +:1041F000C41E0895882321F00E942C290C94732951 +:104200000895882321F00E9432290C94732908957F +:104210008F929F92AF92BF92CF92DF92EF92FF92D6 +:104220000F931F93CF93DF931F92CDB7DEB77C011F +:10423000C62E472FFC01058102950F7012811123B4 +:1042400021F079830E944929498149830E94E62807 +:104250004981882381F0112371F080E28C0D883030 +:1042600050F082E00E94CF280E94E62891E0D82EEC +:10427000D926498101C0D12CE42FE295EF708E2F11 +:1042800090E0FC01E759FF4F0C94E336842F807FC8 +:10429000042F0F70882311F00295007F112389F0FD +:1042A000002309F488C180E28C0D883020F4802F2F +:1042B0000E942C2903C0802F0E943C290E94732950 +:1042C0007AC18C2D0E94AB20002309F4AAC180E2A0 +:1042D0008C0D883020F4802F0E94322903C0802F5B +:1042E0000E9442290E9473299CC1942F907F842FA1 +:1042F0008F70903211F08295807FCC2021F0F1E018 +:10430000CF16A1F01DC0112339F0002319F101309F +:1043100009F50E945C2985C1002319F0013009F4D8 +:1043200080C189830E945F29898103C1112321F003 +:10433000063008F076C10EC0053008F072C1F9C031 +:10434000112359F0002331F0F701958190FF33C11B +:104350009F7095830E94FA2064C1002309F4E9C08C +:1043600030C1842F86958695837019F0813061F075 +:1043700058C1112321F08C2D942F937002C080E03E +:1043800090E00E94AE1E4DC1112321F08C2D942F80 +:10439000937002C080E090E00E94C41E42C18C2D48 +:1043A000112319F00E94232D02C00E948B2D0E9420 +:1043B000102E37C1842F837009F04DC0111131C107 +:1043C0002C2D229526952770220F220F6C2D6F70B1 +:1043D000862F90E0A0E0B0E04C015D01022E04C009 +:1043E000880C991CAA1CBB1C0A94D2F7C4FE12C0EC +:1043F0008FE090E0A0E0B0E004C0880F991FAA1FF2 +:10440000BB1F2A95D2F7BC01CD01609570958095B0 +:10441000909503C060E070E0CB01242F269526958F +:104420002370223051F080F4682979298A299B2948 +:10443000213071F00E945B27F4C0682979298A290C +:104440009B290E947727EDC00E945B27C501B4011C +:104450000E943F27E6C0112319F0842F817001C00C +:104460008695882309F4DDC02C2D2295269527708A +:10447000220F220F6C2D6F70862F90E0A0E0B0E02D +:104480004C015D01022E04C0880C991CAA1CBB1CA7 +:104490000A94D2F7C4FE12C08FE090E0A0E0B0E032 +:1044A00004C0880F991FAA1FBB1F2A95D2F7BC0111 +:1044B000CD01609570958095909503C060E070E0A7 +:1044C000CB01242F269526952370223051F080F4BD +:1044D000682979298A299B29213071F00E94352881 +:1044E000A0C0682979298A299B290E94512899C04E +:1044F0000E943528C501B4010E94192892C08C2D54 +:1045000090E0FC01E05EF109E531F10508F04FC0F3 +:10451000E758FF4F0C94E3360C2D0F70842F8F71EA +:10452000112321F00E94B227802F14CF0E94D3279D +:10453000802F0E94012175C0112341F0053008F041 +:1045400070C0842F8F710E94F8276BC0063008F06E +:1045500068C0F7CF112339F0842F8F710E94B227E2 +:1045600060C01123C9F3842F8F710E94D32759C0D3 +:10457000112329F0842F8F710E949D2752C00E9421 +:1045800093274FC0112351F0142F1F71812F0E94C8 +:10459000B22763E0812F0E94C62843C081E00E94B9 +:1045A000CF280230F0F182E00E94CF283AC01123D8 +:1045B00031F0002389F28C2D0E94E31F32C00023CA +:1045C00091F28C2D0E94AB202CC04F706C2DC70136 +:1045D0000E94EA0D0E94B72624C0111122C0842F28 +:1045E0008F70823099F038F4882369F08130C9F4F3 +:1045F0000E94D63416C0833061F0843091F48C2D43 +:104600000E9461350EC00E94AC340BC00E9405357B +:1046100008C00E942B3505C04F706C2DC7010E9449 +:10462000490ADD20F1F00E94C22880FD1AC0F7017E +:1046300012820E94BC280E94B227C7010E943F2319 +:104640000E94BC280F90DF91CF911F910F91FF9096 +:10465000EF90DF90CF90BF90AF909F908F900C9491 +:10466000D3270F90DF91CF911F910F91FF90EF9083 +:10467000DF90CF90BF90AF909F908F9008950F9351 +:104680001F93CF93DF93EC018B819C81892BC9F021 +:1046900089818F3F19F488818F3F99F0CE010E9464 +:1046A000B40A882371F0688179818A810E94B828D0 +:1046B0008C010E946D280E943427B801CE010E940F +:1046C0000821DF91CF911F910F9108950E944929F0 +:1046D0000E9459290E941B290E9473290E94422F7F +:1046E0000E94102E80E090E00E94AE1E80E090E0DC +:1046F0000C94C41E0E9439290C9466230E94AD2894 +:10470000292F22952F702C3030F42A3048F4225073 +:10471000223098F405C02C3061F02F3051F00DC0DC +:10472000803F69F018F4803E40F409C0843F29F4CA +:1047300006C093FB882780F9089580E0089581E002 +:104740000895CF93DF9300D000D01F92CDB7DEB78E +:104750000F900F900F900F900F90DF91CF910895D1 +:10476000CF93DF9300D000D000D0CDB7DEB7269630 +:104770000FB6F894DEBF0FBECDBFDF91CF91089585 +:104780001F93CF93DF93C091990116E080919A0116 +:10479000C81799F0D0E01C9FF0011D9FF00D112467 +:1047A000E556FE4F408151816281738184819581FC +:1047B0000E94B0232196C770E9CFDF91CF911F915E +:1047C00008954091CB015091CC016091CD01709141 +:1047D000CE018091CF019091D0010C94B0238091B3 +:1047E000D00182958F7009F054C08091CD0188234B +:1047F00009F44FC080919901A0919A014091CE0196 +:104800005091CF016091CB017091CC01B6E08A1735 +:1048100009F43FC090E041155105C1F17F3F11F40B +:104820006F3FA1F1B89FF001B99FF00D1124E5563B +:10483000FE4F218127132AC02081261327C0228101 +:10484000211124C0238134812417350710F421500D +:104850003109241B350B283C3105C0F42091D001CF +:104860002F7020612093D00126E0289FF001299F1E +:10487000F00D1124E056FE4F80818F70806180839F +:104880008BEC91E00E943F230C94C023019687702B +:10489000BECF0895CF92DF92EF92FF920F931F93B6 +:1048A000CF93DF93CDB7DEB762970FB6F894DEBF34 +:1048B0000FBECDBF8C0185E0F801DE011D96019091 +:1048C0000D928A95E1F7D8014C9111965C91119760 +:1048D00012966C918091CE019091CF01009709F4CE +:1048E00075C13091CB017091CC017F3F19F43F3FEE +:1048F00009F46CC1F801C380D480E090CD01EE20B2 +:1049000009F4BEC02091D001C816D90628F0D601FE +:10491000A81BB90BCD0104C0809590958C0D9D1DF1 +:10492000FF24F394883C910578F0F12C207F09F066 +:10493000C4C07C2DD98AC88A89890E94A1238BECA6 +:1049400091E00E943F23AFC0822F807F09F045C0D5 +:10495000571313C0431311C061110FC02F70206192 +:104960002093D0010E94E1238BEC91E00E943F2331 +:104970008091D001F80185832EC0CD2819F15F3FC9 +:1049800011F44F3FF9F0F62E61111CC0809199018E +:1049900020919A0136E0821709F45BC090E0389FBD +:1049A000F001399FF00D1124E556FE4F7181571328 +:1049B00006C07081471303C07281711103C0019654 +:1049C0008770E9CFF62E662309F41CC18091D001CF +:1049D00081608093D001F12C15C1571309C0431396 +:1049E00007C0611105C08091D001F8018583C8C05E +:1049F0004D875E878D859E856A8B0E947E236A899E +:104A00008823D1F16623C1F12091D001822F8295B4 +:104A10008F7090E0029774F08091CB019091CC015F +:104A200098878F831986DB86CA862C87CE010796E6 +:104A30000E943F2386E0F801ABECB1E001900D92BB +:104A40008A95E1F70E94EF230E94E123FF24F3946B +:104A5000D9C04D875E878D859E850E94AD28292F00 +:104A600022952F70223008F0C1C09F7009F0BBC0A2 +:104A7000805E883008F4C6C0C8010E943F23E6CF9C +:104A8000C816D90608F453C0F601E81BF90BCF018C +:104A9000883C910508F450C0F12C7C2DD98AC88A35 +:104AA00089890E94A123EBECF1E086E0DF011D92F1 +:104AB0008A95E9F70E94E123A5C0571314C0431358 +:104AC00012C0611110C08091D001F8018583C80126 +:104AD0000E943F2386E0EBECF1E0DF011D928A9516 +:104AE000E9F7FE2C8FC04D875E878D859E856A8B8A +:104AF0000E947E236A89882309F4BECF662309F4C5 +:104B0000BBCF2091D001822F82958F7090E00297C9 +:104B10000CF490CF8091CB019091CC019A83898342 +:104B20001B82DD82CC822E83CE01019681CF8095BF +:104B300090958C0D9D1DACCFF62E662309F49CCF6D +:104B4000571333C0431331C02091D00120FD24C03E +:104B5000822F82958F70482F50E041155105E1F06A +:104B6000D80115962C9315974F30510549F08F5F5A +:104B7000982F9295907F822F8F70892B15968C930A +:104B8000C8010E943F2386E0F801ABECB1E0019040 +:104B90000D928A95E1F78ECF86E0F801ABECB1E09B +:104BA00001900D928A95E1F72DC04D875E878D8526 +:104BB0009E850E947E2381113DCF8091D00181602E +:104BC0008093D001C8010E943F231CC0662309F4D2 +:104BD00053CF4D875E878D859E850E947E238823D7 +:104BE00009F44ACF27CF811143CF0CC0243008F0FD +:104BF00043CF9F7009F43CCFD80115969C91907FCC +:104C000009F036CF8F2D62960FB6F894DEBF0FBE37 +:104C1000CDBFDF91CF911F910F91FF90EF90DF906B +:104C2000CF9008951F93CF93DF93CDB7DEB72C9726 +:104C30000FB6F894DEBF0FBECDBF4F83588769878C +:104C40007A878B879C87CE0107960E944A24882307 +:104C500071F08A859B85892B09F441C088858F3F37 +:104C600009F065C08F818F3F09F061C038C086E0D0 +:104C7000FE013796DE01119601900D928A95E1F7BB +:104C80006A857B856115710551F1FF81E885EF3FEC +:104C900011F4FF3F21F120919A0130E0C901019602 +:104CA000877099274091990150E08417950709F47E +:104CB00047C0F983EA837D836C8396E0929FD0019D +:104CC000939FB00D1124A556BE4FFE013196019061 +:104CD0000D929A95E1F780939A010E94C02316E005 +:104CE0008091990190919A018917B9F1189FC0019B +:104CF000112485569E4F0E944A24882371F1E09129 +:104D000099011E9FF0011124E556FE4F408151810B +:104D100062817381848195810E94B0238091990181 +:104D200090E001968770992780939901D9CF4F81A0 +:104D3000588569857A858B859C850E94B023CFCF65 +:104D40000E947A2310929A0110929901EBECF1E003 +:104D500086E0DF011D928A95E9F72C960FB6F8944C +:104D6000DEBF0FBECDBFDF91CF911F910895EF92AF +:104D7000FF920F931F93CF93DF938C01892B09F43C +:104D80006CC0F12CEE24E394E8012196F8018491A3 +:104D9000843740F4843008F051C0813081F0823093 +:104DA00019F15BC0853709F444C0A8F19CE7980F5E +:104DB000903708F052C08F770E94AB2041C00E5F41 +:104DC0001F4FFE01849190E2980F983050F4877045 +:104DD000FE2D01C0FF0F8A95EAF78F2F0E944C2904 +:104DE00014C00E94E31F2DC00E5F1F4FFE0184916F +:104DF00090E2980F983060F48770FE2D01C0FF0F8D +:104E00008A95EAF78F2F0E9452290E94732919C0B0 +:104E10000E94AB2016C00E5F1F4FFE01C491CC2331 +:104E200081F08FE99FE00197F1F700C00000C150C9 +:104E3000F6CF0E5F1F4FFE01F49003C00E94E31FE8 +:104E40008E018F2D882309F49FCFEFE9FFE0319782 +:104E5000F1F700C000008150F5CFDF91CF911F9195 +:104E60000F91FF90EF90089508956093D50170938E +:104E7000D6018093D7019093D8010C9466230F93A9 +:104E80001F930091D5011091D6012091D701309147 +:104E9000D801DC01CB01802B912BA22BB32B80936B +:104EA000D5019093D601A093D701B093D8011F915B +:104EB0000F910C9466230F931F930091D5011091CD +:104EC000D6012091D7013091D801DC01CB0180239C +:104ED0009123A223B3238093D5019093D601A0936D +:104EE000D701B093D8011F910F910C9466230F93B3 +:104EF0001F930091D5011091D6012091D7013091D7 +:104F0000D801DC01CB0180279127A227B32780930A +:104F1000D5019093D601A093D701B093D8011F91EA +:104F20000F910C9466231092D1011092D20110922D +:104F3000D3011092D4010C94662341E050E060E06C +:104F400070E004C0440F551F661F771F8A95D2F783 +:104F50004093D1015093D2016093D3017093D40157 +:104F60000C94662341E050E060E070E004C0440F20 +:104F7000551F661F771F8A95D2F78091D1019091B6 +:104F8000D201A091D301B091D401482B592B6A2BA7 +:104F90007B2B4093D1015093D2016093D301709346 +:104FA000D4010C94662341E050E060E070E004C05E +:104FB000440F551F661F771F8A95D2F7409550956D +:104FC000609570958091D1019091D201A091D3010B +:104FD000B091D401482359236A237B234093D10104 +:104FE0005093D2016093D3017093D4010C94662343 +:104FF00041E050E060E070E004C0440F551F661FC0 +:10500000771F8A95D2F78091D1019091D201A0911A +:10501000D301B091D401482759276A277B274093B1 +:10502000D1015093D2016093D3017093D4010C94B9 +:1050300066230F931F930091D1011091D20120910B +:10504000D3013091D401DC01CB01802B912BA22B19 +:10505000B32B8093D1019093D201A093D301B0934D +:10506000D4011F910F910C9466230F931F9300910D +:10507000D1011091D2012091D3013091D401DC01F2 +:10508000CB0180239123A223B3238093D10190935A +:10509000D201A093D301B093D4011F910F910C942E +:1050A00066230F931F930091D1011091D20120919B +:1050B000D3013091D401DC01CB0180279127A227B5 +:1050C000B3278093D1019093D201A093D301B093E1 +:1050D000D4011F910F910C9466230895CF92DF9213 +:1050E000EF92FF920F931F93CF93DF938C01C090A9 +:1050F000D101D090D201E090D301F090D401809101 +:10510000D5019091D601A091D701B091D801C82ABC +:10511000D92AEA2AFB2ACFE1D0E0D701C6010C2E1A +:1051200004C0B695A795979587950A94D2F780FD08 +:1051300004C0219790F780E007C0B8018C2F0E942F +:10514000470C0197B1F38C2FDF91CF911F910F91F5 +:10515000FF90EF90DF90CF900895CF93DF93EC0115 +:105160000E946E28BE010E94470CDF91CF910895E6 +:10517000CB010E94AD2808958091D9018595859530 +:10518000859508958091D9018770089598E0899F49 +:1051900090011124262B2093D9010C94B227209141 +:1051A000D901809582238093D901982F977069F453 +:1051B00030E0482F082E000C550B2417350729F036 +:1051C0008595859585950C94D32708959091D9015F +:1051D000977081E009F480E0089520910D013091ED +:1051E0000E01F90132969FEF40E05191851789F049 +:1051F0009F3F19F4511101C0942F4F5F4630A9F71A +:105200009F3F39F0F901E90FF11D97FDFA9582836F +:105210000895089520910D0130910E01F901329603 +:10522000285F3F4F9081891301C010823196E217A9 +:10523000F307C1F7089581E090E0E0910D01F0914E +:105240000E01E80FF91F1082019688309105A9F729 +:1052500008958091E50108959091E501892B80934F +:10526000E501089580959091E50189238093E501FA +:1052700008951092E50108959091E401892B80939F +:10528000E401089580959091E40189238093E401DD +:1052900008951092E40108959091E301892B809381 +:1052A000E301089580959091E30189238093E301C0 +:1052B00008951092E30108958093DA010895109201 +:1052C000DA01089580910D0190910E01FC01319653 +:1052D0009C01285F3F4F80E0919191118F5FE21711 +:1052E000F307D1F70895E0910D01F0910E0180913F +:1052F000E5018083E0910D01F0910E019081809194 +:10530000E401892B8083E0910D01F0910E019081E1 +:105310008091E301892B80838091DA01882361F0F9 +:10532000E0910D01F0910E019081892B80830E9404 +:10533000622981111092DA0180910D0190910E0184 +:105340000C945B1E9093470180934601089520E0E2 +:10535000009739F0AC0141505109842395232F5F08 +:10536000F7CF822F08958295982F937344E0949FEE +:10537000900111248C7C86958695282B822F85752B +:10538000880F2A7A2695822B08951F93CF93DF9357 +:105390001F92CDB7DEB799830E94B329182F998148 +:1053A000892F0E94B329212F30E0322F2227A90113 +:1053B000482BCA010F90DF91CF911F9108958091E2 +:1053C0003502843051F11092E70120E488E190E049 +:1053D0000FB6F894A895809360000FBE20936000EC +:1053E00080E00E941F0A80E00E947C0E83B7817FCC +:1053F000846083BF83B7816083BF7894889583B7C7 +:105400008E7F83BF0FB6F894A89580916000886165 +:1054100080936000109260000FBE0895089580E0B0 +:105420000E941F0A0E94920E0E94150F0E940E2ACF +:105430000E94DB0F91E0811101C090E0892F089557 +:105440000E947A2380E00E941F0A0E949B340E94DF +:105450004F1E0C947C0E1F920F920FB60F921124C8 +:105460008F939F93AF93BF938091E701811113C0F6 +:105470008091E8019091E901A091EA01B091EB01DE +:105480004196A11DB11D8093E8019093E901A0937D +:10549000EA01B093EB01BF91AF919F918F910F9073 +:1054A0000FBE0F901F90189582E084BD93E095BDCC +:1054B0009AEF97BD80936E0008952FB7F89480916E +:1054C000E8019091E901A091EA01B091EB012FBFB1 +:1054D0000895CF92DF92EF92FF920F931F932FB711 +:1054E000F8944091E8015091E9016091EA017091CE +:1054F000EB012FBF6A017B01EE24FF248C0120E029 +:1055000030E0C016D106E206F30610F4415051090E +:105510009A01281B390BC9011F910F91FF90EF9041 +:10552000DF90CF9008951F920F920FB60F92112423 +:105530008F939F93AF93BF938091E8019091E9017E +:10554000A091EA01B091EB010196A11DB11D8093DC +:10555000E8019093E901A093EA01B093EB01BF91B8 +:10556000AF919F918F910F900FBE0F901F90189544 +:105570000E94481BF8942FEF87EA91E62150804063 +:105580009040E1F700C0000087E090EBDC018093E1 +:105590003F0290934002A0934102B09342029CE0EC +:1055A00088E10FB6F894A895809360000FBE9093A1 +:1055B0006000FFCFAF92BF92CF92DF92EF92FF9247 +:1055C0000F931F93CF93C4E0CC24C394D12CE82E27 +:1055D000F12C8C2F0E94980F5C010DE010E0C601A9 +:1055E000002E02C0880F991F0A94E2F78A219B219E +:1055F000892B51F0602F7C2F80E00E94ED0DE81682 +:10560000F90611F481E006C00150110940F7C150BC +:1056100000F780E0CF911F910F91FF90EF90DF9006 +:10562000CF90BF90AF900895CF93C82F8CE20E9487 +:10563000DA2A882321F08C2FCF910C94DA2A80E08B +:10564000CF910895CF930E94722C811102C00E94C5 +:10565000532C88E199E00E945D09C5E6C15049F0EC +:105660000E94150F8FE39CE90197F1F700C000003D +:10567000F5CF81E199E00E945D0989E20E94142B37 +:1056800081110FC18AE20E94142B81110E94532CB8 +:1056900085E00E94142B81110E94B82A0E947D2C63 +:1056A0008093E60187E00E94142B8823A9F18BE107 +:1056B0000E94142B882351F08091E60181FB222760 +:1056C00020F991E0922790FB81F90EC08EE00E94B4 +:1056D000142B882361F08091E60182FB222720F9B8 +:1056E00091E0922790FB82F98093E60115C080E15A +:1056F0000E94142B9091E601882341F093FB22270E +:1057000020F981E0822780FB93F904C0892F8095DE +:1057100080FB90F99093E6018091E6010E94812C34 +:105720000E948F2C90E09093F8018093F70180EE17 +:105730000E94142B882341F08091F701982F9095B7 +:1057400090FB80F98093F70189E30E94142B882352 +:1057500059F08091F70181FB222720F991E09227EF +:1057600090FB81F98093F70182EE0E94142B88232D +:1057700059F08091F70182FB222720F991E09227CE +:1057800090FB82F98093F70186EE0E94142B882308 +:1057900059F08091F70183FB222720F991E09227AD +:1057A00090FB83F98093F70183EE0E94142B8823EA +:1057B00059F08091F70184FB222720F991E092278C +:1057C00090FB84F98093F70185E30E94142B8823D2 +:1057D00059F08091F70185FB222720F991E092276B +:1057E00090FB85F98093F70181E30E94142B8823B5 +:1057F00059F08091F70186FB222720F991E092274A +:1058000090FB86F98093F70181E10E94142B882395 +:1058100059F08091F70187FB222720F991E0922728 +:1058200090FB87F98093F7018091F7010E94932CF8 +:1058300087E20E94142BC82F8EE10E94142B811145 +:10584000C2608FE10E94142B8111C46080E20E942B +:10585000142B8111C86081E20E94142B8111C06158 +:1058600082E20E94142B8111C06283E20E94142BF9 +:105870008111C06484E20E94142B882311F0C06857 +:1058800002C0CC2329F08C2F0E948A2C6C2F03C0DD +:105890000E94862C682F70E080E090E0CF910C94FD +:1058A0003527CF9108956DEE7EEF80E090E00E9465 +:1058B0001B3760E082E090E00E94FD3660E083E00C +:1058C00090E00E94FD3660E084E090E00E94FD36AA +:1058D00060E085E090E00E94FD3660E086E090E0C8 +:1058E0000C94FD3680E090E00E94F73621E08D3E7A +:1058F0009E4F09F020E0822F089582E090E00C9402 +:10590000E936682F82E090E00C94FD3683E090E069 +:105910000C94E936682F83E090E00C94FD3684E027 +:1059200090E00C94E936682F84E090E00C94FD360A +:1059300086E090E00C94E936682F86E090E00C94C5 +:10594000FD368091EE0180FF0BC06091120185E071 +:10595000689FB001112475956795759567952BC063 +:1059600081FF09C06091120185E0689FB001112498 +:105970007595679520C082FF07C06091120185E090 +:10598000689FB001112417C09091EF019923D1F0C5 +:1059900060911101961788F72091120185E0289FE8 +:1059A00090011124929FA001939F500D112470E04B +:1059B000CA010E94CF366038710540F46115710547 +:1059C00019F406C065E070E0862F08958FE708950A +:1059D00081E008958091EE0180FF08C06091100180 +:1059E00070E0759567957595679521C081FF06C034 +:1059F0006091100170E07595679519C082FF04C031 +:105A00006091100170E010C09091EF01992399F01E +:105A100060910F019617A0F780911001899FC00136 +:105A2000112470E00E94CF366038710540F4611592 +:105A3000710519F406C061E070E0862F08958FE7C4 +:105A4000089581E00895803F21F40E94A12C819562 +:105A500004C0813F29F40E94A12C8093F201089593 +:105A6000823F21F40E94A12C819504C0833F29F438 +:105A70000E94A12C8093F1010895893F19F40E949E +:105A8000EA2C05C08A3F31F40E94EA2C819580936C +:105A9000F30108958B3F21F40E94EA2C819504C004 +:105AA0008C3F29F40E94EA2C8093F4010895843FEE +:105AB00021F48091F001816017C0853F21F480912D +:105AC000F001826011C0863F21F48091F001846072 +:105AD0000BC0873F21F48091F001886005C0883FAA +:105AE00031F48091F00180618093F00108958D3F41 +:105AF00021F48091EE0181600BC08E3F21F48091F2 +:105B0000EE01826005C08F3F29F48091EE01846030 +:105B10008093EE010895803F39F48091F20187FF70 +:105B20006CC01092F20169C0813F29F48091F201AA +:105B30001816BCF362C09091F101823F29F497FFDF +:105B40005CC01092F10159C0833F19F41916CCF3CF +:105B500054C0893F41F48091F30118160CF04DC0F8 +:105B60001092F3014AC08A3F29F48091F30187FF24 +:105B700044C0F6CF8B3F39F48091F40187FF3DC0DC +:105B80001092F4013AC08C3F29F48091F401181668 +:105B9000BCF333C0843F21F48091F0018E7F17C0A5 +:105BA000853F21F48091F0018D7F11C0863F21F463 +:105BB0008091F0018B7F0BC0873F21F48091F00131 +:105BC000877F05C0883F31F48091F0018F7E8093FC +:105BD000F00113C08D3F21F48091EE018E7F0BC048 +:105BE0008E3F21F48091EE018D7F05C08F3F29F417 +:105BF0008091EE018B7F8093EE018091F101811104 +:105C00000EC08091F20181110AC08091F3018111CF +:105C100006C08091F401811102C01092EF01089535 +:105C20008091E60183FF7EC084E599E00E945D09D2 +:105C30008091F0011F928F938FE499E09F938F934F +:105C40000E94F6098DE499E00E945D098091F101BE +:105C5000282F082E000C330B3F938F938AE499E092 +:105C60009F938F930E94F60988E499E00E945D0952 +:105C70008091F201282F082E000C330B3F938F9355 +:105C800085E499E09F938F930E94F60983E499E05D +:105C90000E945D098091F301282F082E000C330B20 +:105CA0003F938F9380E499E09F938F930E94F6092E +:105CB0008EE399E00E945D098091F401282F082E5F +:105CC000000C330B3F938F938BE399E09F938F935B +:105CD0000E94F60988E399E00E945D098091EF0136 +:105CE0001F928F9385E399E09F938F930E94F6090B +:105CF00083E399E00E945D098091EE011F928F93EA +:105D000080E399E09F938F930E94F6098DE299E0DA +:105D10000E945D098DB79EB74C960FB6F8949EBF52 +:105D20000FBE8DBF80EF91E00E94A31E0E945D2AEE +:105D30009093ED018093EC0108951F93CF93DF932F +:105D40008091EC019091ED010E94692AAC01909143 +:105D5000EF01992321F02091130130E006C020913A +:105D600014018AE0289F900111244217530708F478 +:105D700085C08091F101C091F201D091F3011091A1 +:105D8000F401811107C0C11175C0D11173C0111187 +:105D900071C074C09F3F19F09F5F9093EF01181678 +:105DA00024F40E94A12C8093F1018091F10187FFDE +:105DB00005C00E94A12C81958093F1011C1624F44A +:105DC0000E94A12C8093F2018091F20187FF05C00F +:105DD0000E94A12C81958093F2016091F1016623CC +:105DE00031F1C091F201CC2311F1062E000C770B9A +:105DF000880B990B0E94B63523E333E343E35FE35B +:105E00000E941A360E947E356093F1016C2FCC0FF0 +:105E1000770B880B990B0E94B63523E333E343E3FA +:105E20005FE30E941A360E947E356093F2011D16D0 +:105E300024F40E94EA2C8093F3018091F30187FF00 +:105E400005C00E94EA2C81958093F301111624F479 +:105E50000E94EA2C8093F4018091F40187FF05C031 +:105E60000E94EA2C81958093F401DF91CF911F91DC +:105E70000C94102E9F3F09F08FCFA0CFDF91CF91D0 +:105E80001F910895E0EFF1E085E0DF011D928A9512 +:105E9000E9F71092EF011092EE01089587E79BE079 +:105EA0000E945D091F9281E08F931F9285E08F937E +:105EB00089E29BE09F938F930E94F6090F900F90C9 +:105EC0000F900F900F900F9008958330E9F128F410 +:105ED000813061F0823009F10895853009F462C0A3 +:105EE00008F449C0863009F474C008958091140103 +:105EF000262F30E0280F311D2F3F310524F4680F85 +:105F00006093140103C08FEF8093140180911401FA +:105F10001F928F9382E69AE072C080911301262F20 +:105F200030E0280F311D2F3F310524F4680F6093B6 +:105F3000130103C08FEF80931301809113011F920F +:105F40008F9380E59AE05BC080911201262F30E0AC +:105F5000280F311D2F3F310524F4680F6093120183 +:105F600003C08FEF80931201809112011F928F93D3 +:105F70008DE39AE044C080911101262F30E0280F74 +:105F8000311D2F3F310524F4680F6093110103C0C8 +:105F90008FEF80931101809111011F928F9388E2FE +:105FA0009AE02DC080911001262F30E0280F311D7E +:105FB0002F3F310524F4680F6093100103C08FEF69 +:105FC00080931001809110011F928F938FE09AE0CF +:105FD00016C080910F01262F30E0280F311D2F3F72 +:105FE000310524F4680F60930F0103C08FEF809395 +:105FF0000F0180910F011F928F9384EF99E09F937F +:106000008F930E94F6090F900F900F900F900895B4 +:10601000833081F128F4813059F08230D1F0089535 +:10602000853009F449C0B8F1863009F456C00895A6 +:1060300080911401681720F4861B8093140102C01C +:1060400010921401809114011F928F9385EE99E0B4 +:1060500054C080911301681720F4861B80931301AC +:1060600002C010921301809113011F928F9383ED50 +:1060700099E043C080911201681720F4861B809339 +:10608000120102C010921201809112011F928F938F +:1060900080EC99E032C080911101681720F4861BD2 +:1060A0008093110102C010921101809111011F9281 +:1060B0008F938BEA99E021C080911001681720F43A +:1060C000861B8093100102C0109210018091100174 +:1060D0001F928F9382E999E010C080910F01681799 +:1060E00020F4861B80930F0102C010920F01809153 +:1060F0000F011F928F9387E799E09F938F930E94E0 +:10610000F6090F900F900F900F900895CF93C82F1E +:106110001F928F938CE79CE09F938F930E94F609C8 +:1061200081E090E0A0E0B0E0BC01CD0104C0660FCA +:10613000771F881F991FCA95D2F70E9435270F90A5 +:106140000F900F900F90CF910C947A23CF938732BA +:10615000B0F58E3108F088C28E3009F402C200F525 +:10616000873009F4CBC1A8F4863009F083C280914E +:10617000E601817F8E7F8093E60183ED9DE00E94A2 +:106180005D0987EA91E10E945D0981E08093F60153 +:10619000B3C1883009F43FC08B3009F4A9C16AC289 +:1061A000863109F424C220F4803109F4EEC162C2C0 +:1061B000893109F405C28B3109F4BFC15BC2883350 +:1061C00009F496C150F4893209F450C2853309F4B8 +:1061D0004DC2873209F44AC24DC2833409F446C223 +:1061E00028F48A3308F446C2895341C2883409F03E +:1061F00041C20E947A238BE891E10E945D099FEFE2 +:1062000023ED80E3915020408040E1F700C0000082 +:106210000E94B82A71C18BEA91E10E945D098DE06C +:1062200091E10E945D090E94862C1F928F938AE063 +:1062300091E19F938F930E94F60988E091E10E947B +:106240005D090E947D2CC82F85EF90E10E945D09B9 +:106250001F92CF9380EF90E19F938F930E94F60956 +:106260008EEE90E10E945D0984EE90E10E945D094E +:106270008C2F81701F928F9381EE90E19F938F936B +:106280000E94F6098FED90E10E945D0985ED90E195 +:106290000E945D09C1FB882780F91F928F9382EDD0 +:1062A00090E19F938F930E94F60980ED90E10E9408 +:1062B0005D0984EC90E10E945D09C2FB882780F9AA +:1062C0001F928F9381EC90E19F938F930E94F60928 +:1062D0008FEB90E10E945D0986EB90E10E945D09E1 +:1062E000C3FBCC27C0F91F92CF9383EB90E19F9320 +:1062F0008F930E94F60981EB90E10E945D090E9454 +:106300008F2CC82F8DE990E10E945D091F92CF93D9 +:1063100088E990E19F938F930E94F60986E990E1C6 +:106320000E945D098DE790E10E945D098C2F8170CC +:106330001F928F938AE790E19F938F930E94F609B3 +:106340008DB79EB780960FB6F8949EBF0FBE8DBFD7 +:1063500088E790E10E945D0981E690E10E945D0975 +:10636000C1FB882780F91F928F938EE590E19F9360 +:106370008F930E94F6098CE590E10E945D098AE402 +:1063800090E10E945D09C2FB882780F91F928F93DC +:1063900087E490E19F938F930E94F60985E490E152 +:1063A0000E945D0983E390E10E945D09C3FB882799 +:1063B00080F91F928F9380E390E19F938F930E94C7 +:1063C000F6098EE290E10E945D0984E290E10E946C +:1063D0005D09C4FB882780F91F928F9381E290E1C9 +:1063E0009F938F930E94F6098FE190E10E945D09CF +:1063F0008DE090E10E945D09C5FB882780F91F921E +:106400008F938AE090E19F938F930E94F60988E032 +:1064100090E10E945D098CEE9FE00E945D09C6FB41 +:10642000882780F91F928F9389EE9FE09F938F9327 +:106430000E94F60987EE9FE00E945D098FED9FE0C4 +:106440000E945D09C7FBCC27C0F91F92CF938CED4A +:106450009FE09F938F930E94F6098AED9FE00E9430 +:106460005D090E94982CC82F83EC9FE00E945D0973 +:106470001F92CF938EEB9FE09F938F930E94F6091C +:106480008DB79EB780960FB6F8949EBF0FBE8DBF96 +:106490008CEB9FE00E945D0982EB9FE00E945D090A +:1064A0008C2F81701F928F938FEA9FE09F938F9321 +:1064B0000E94F6098DEA9FE00E945D0984EA9FE050 +:1064C0000E945D09C6951F92CF9381EA9FE09F933A +:1064D0008F930E94F6098FE99FE00E945D098DB7B6 +:1064E0009EB708960FB6F8949EBF0FBE8DBF04C02E +:1064F0008AEF9DE00E945D09C1E0C1C08091E60184 +:10650000C82FC095C170C0FB80F98093E601CC23F1 +:1065100049F08FE791E10E945D098091E601866074 +:10652000886048C082E791E10E945D098091E601A0 +:10653000897F877F8093E601DFCF9091E60191FB11 +:10654000CC27C0F981E0C827892FC0FB81F980934F +:10655000E601CC2319F085E691E127C087E591E1BA +:10656000C9CF9091E60192FBCC27C0F981E0C82702 +:10657000892FC0FB82F98093E601CC2319F088E4CF +:1065800091E113C088E391E1B5CF9091E60193FBCF +:10659000CC27C0F981E0C827892FC0FB83F98093FD +:1065A000E601CC2351F08CE291E10E945D098091DB +:1065B000E60181608093E60162C08FE191E19ACFAC +:1065C00084EC9DE00E945D098BEA9DE00E945D09DC +:1065D00089E79DE00E945D0982E59DE00E945D09DA +:1065E00082E19DE00E945D0987EE9CE083CF89ED0A +:1065F0009CE00E945D090E944F1E1F928F938FEBBB +:106600009CE09F938F930E94F60980910C011F924A +:106610008F9388EA9CE09F938F930E94F609809164 +:1066200087011F928F9385E99CE09F938F930E942F +:10663000F6098091E8019091E901A091EA01B091F9 +:10664000EB01BF93AF939F938F9381E89CE09F935F +:106650008F930E94F6098DB79EB742960FB6F894B5 +:106660009EBF0FBE8DBF48CF8D5101C080E00E94FC +:10667000863042CF8DE191E10E945D09C0E08C2F10 +:10668000CF91089580E008950C944233CF93C82FA2 +:106690008091F601813071F020F0823009F44BC016 +:1066A00042C1E0910D01F0910E018081823209F02A +:1066B0003CC107C0E0910D01F0910E018081823252 +:1066C00061F48C2F0E944433811104C08C2F0E94EE +:1066D000A6302FC081E090E02CC08C2F0E94423366 +:1066E000811126C0C431E1F070F4CB3081F0C031AB +:1066F000D1F40E944E2F84E79CE00E945D0982E065 +:106700008093F60115C0C93259F0C83361F483EDA6 +:106710009DE00E945D0988E79CE00E945D0908C039 +:106720001092F60104C182E79CE00E945D09FFC05F +:1067300081E08170FEC0C43228F5CE3108F0C1C0BE +:10674000CB30A1F1D0F4C73009F0D3C08EE18093F3 +:10675000140182E3809313018AE08093120184E1A3 +:106760008093110188E08093100188E280930F01EB +:1067700088E19BE00E945D09BFC0C33149F1C4318B +:10678000C1F0B7C0CB3409F4A9C028F4C93289F0EC +:10679000C83361F0AEC0C13509F49EC0C23509F4FA +:1067A00099C0CE3409F0A5C06AE09EC00E944E2F69 +:1067B000A3C08091F501882319F01092F5019CC0C7 +:1067C00085E29BE00E945D0981E08093F601B1C003 +:1067D0008FEF9AE00E945D098DEE9AE00E945D09BC +:1067E000809114011F928F938AEE9AE09F938F936A +:1067F0000E94F60988EE9AE00E945D0986ED9AE013 +:106800000E945D09809113011F928F9383ED9AE09E +:106810009F938F930E94F60981ED9AE00E945D0993 +:1068200082EC9AE00E945D09809112011F928F9381 +:106830008FEB9AE09F938F930E94F6098DEB9AE07D +:106840000E945D098CEA9AE00E945D098091110125 +:106850001F928F9389EA9AE09F938F930E94F60983 +:1068600087EA9AE00E945D0982E99AE00E945D0948 +:10687000809110011F928F938FE89AE09F938F93DE +:106880000E94F6098DE89AE00E945D0986E79AE089 +:106890000E945D0980910F011F928F9383E79AE018 +:1068A0009F938F930E94F60981E79AE00E945D0909 +:1068B0008DB79EB748960FB6F8949EBF0FBE8DBF9A +:1068C0001BC0CE51EC2FF0E0E45CFE4F8081809342 +:1068D000F50112C061E003C061E006C06AE080918A +:1068E000F5010E94652F08C08091F5010E940830D3 +:1068F00003C086E19BE013C08091F501882369F015 +:106900001F928F9380E19BE09F938F930E94F609E3 +:106910000F900F900F900F9004C08DE09BE00E94AD +:106920005D0981E006C01092F60180E002C080E0BF +:1069300000CFCF9108950E94722C811102C00E9455 +:10694000532C0E94982C80933E0280FF02C08695B3 +:1069500001C080E00C941F0A80913E02982F96950A +:10696000292F30E0233031054CF49F5F990F81705F +:10697000892B816080933E020E949C2C8091E601CD +:1069800080FF0FC080913E0286951F928F9388EF03 +:1069900091E19F938F930E94F6090F900F900F90B3 +:1069A0000F9080913E0286950C941F0A80913E02C2 +:1069B000982F969591F09158990F8170892B80931B +:1069C0003E028E7F91E009F490E080913E0290FBC0 +:1069D00080F980933E020E949C2C8091E60180FF0A +:1069E0000FC080913E0286951F928F9380EE91E1B9 +:1069F0009F938F930E94F6090F900F900F900F9026 +:106A000080913E0286950C941F0A80913E02982F39 +:106A1000909590FB80F980933E020E949C2C80917F +:106A2000E60180FF0FC080913E0281701F928F931C +:106A30008AEC91E19F938F930E94F6090F900F903B +:106A40000F900F9080913E0280FF02C0869501C09A +:106A500080E00C941F0A90913E02892F86958F5FEB +:106A60008F779170843028F4880F892B80933E02B1 +:106A700002C090933E0280913E028E7F91E009F425 +:106A800090E080913E0290FB80F980933E020E944C +:106A90009C2C8091E60180FF0FC080913E0286957C +:106AA0001F928F9386EB91E19F938F930E94F6093B +:106AB0000F900F900F900F9080913E0286950C944E +:106AC0001F0A20913E02922F96958927982F990FA1 +:106AD000822F8170892B80933E028E7F91E009F492 +:106AE00090E080913E0290FB80F980933E020E94EC +:106AF0009C2C80913E0286950C941F0A0E9485353D +:106B00006894B1110C94143608950E94F93588F0F8 +:106B10009F5798F0B92F9927B751B0F0E1F0660F61 +:106B2000771F881F991F1AF0BA95C9F714C0B130A2 +:106B300091F00E941336B1E008950C941336672F3C +:106B4000782F8827B85F39F0B93FCCF386957795D1 +:106B50006795B395D9F73EF49095809570956195BA +:106B60007F4F8F4F9F4F0895E89409C097FB3EF4E5 +:106B700090958095709561957F4F8F4F9F4F99238A +:106B8000A9F0F92F96E9BB279395F6958795779508 +:106B90006795B795F111F8CFFAF4BB0F11F460FFC8 +:106BA0001BC06F5F7F4F8F4F9F4F16C0882311F020 +:106BB00096E911C0772321F09EE8872F762F05C034 +:106BC000662371F096E8862F70E060E02AF09A95CF +:106BD000660F771F881FDAF7880F9695879597F9C4 +:106BE000089557FD9058440F551F59F05F3F71F0BD +:106BF0004795880F97FB991F61F09F3F79F0879524 +:106C00000895121613061406551FF2CF4695F1DFAC +:106C100008C0161617061806991FF1CF869571053C +:106C2000610508940895E894BB2766277727CB0170 +:106C300097F908950E942D360C949E360E94903646 +:106C400038F00E94973620F0952311F00C94873687 +:106C50000C948D3611240C9414360E94F13570F387 +:106C6000959FC1F3950F50E0551F629FF001729FF1 +:106C7000BB27F00DB11D639FAA27F00DB11DAA1F00 +:106C8000649F6627B00DA11D661F829F2227B00D4D +:106C9000A11D621F739FB00DA11D621F839FA00DD8 +:106CA000611D221F749F3327A00D611D231F849F28 +:106CB000600D211D822F762F6A2F11249F5750407F +:106CC0009AF0F1F088234AF0EE0FFF1FBB1F661FFA +:106CD000771F881F91505040A9F79E3F510580F0C3 +:106CE0000C9487360C9414365F3FE4F3983ED4F34B +:106CF000869577956795B795F795E7959F5FC1F767 +:106D0000FE2B880F911D9695879597F9089597F911 +:106D10009F6780E870E060E008959FEF80EC089541 +:106D200000240A941616170618060906089500246A +:106D30000A9412161306140605060895092E0394E4 +:106D4000000C11F4882352F0BB0F40F4BF2B11F458 +:106D500060FF04C06F5F7F4F8F4F9F4F0895991B57 +:106D600079E004C0991F961708F0961B881F7A9542 +:106D7000C9F780950895AA1BBB1B51E107C0AA1F44 +:106D8000BB1FA617B70710F0A61BB70B881F991FCC +:106D90005A95A9F780959095BC01CD01089597FB70 +:106DA000072E16F4009407D077FD09D00E94BB3659 +:106DB00007FC05D03EF4909581959F4F08957095FE +:106DC00061957F4F0895EE0FFF1F0590F491E02D20 +:106DD0000994F999FECF92BD81BDF89A992780B5A3 +:106DE0000895A6E1B0E044E050E00C942337A8E118 +:106DF000B0E042E050E00C942337262FF999FECF03 +:106E000092BD81BDF89A019700B4021639F01FBAFD +:106E100020BD0FB6F894FA9AF99A0FBE089503961A +:106E2000272F0E94FE360E94FD36252F0E94FE3637 +:106E3000242F0C94FE360196272F0E94FE360C94C8 +:106E4000FD36DC01CB01FC01F999FECF06C0F2BD95 +:106E5000E1BDF89A319600B40D9241505040B8F718 +:066E60000895F894FFCF35 +:106E6600FFFFB416A71782174E171A1701DB012862 +:106E760008140A321E0F1F6C7666734913035343B8 +:106E860079693309196F7F59404D36209E0851089C +:106E96001B08FB078707A007B907D20701020304EF +:066EA600050607080900C3 +:00000001FF diff --git a/keyboards/kc60/keymaps/stanleylai/config.h b/keyboards/kc60/keymaps/stanleylai/config.h new file mode 100644 index 000000000..b5024a6d0 --- /dev/null +++ b/keyboards/kc60/keymaps/stanleylai/config.h @@ -0,0 +1,3 @@ +// Use configs from WS2812 enabled Keymap + +#include "../ws2812/config.h" diff --git a/keyboards/kc60/keymaps/stanleylai/keymap.c b/keyboards/kc60/keymaps/stanleylai/keymap.c new file mode 100644 index 000000000..a7ea6040d --- /dev/null +++ b/keyboards/kc60/keymaps/stanleylai/keymap.c @@ -0,0 +1,151 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "kc60.h" + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _FL 1 +#define _RGBL 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// See base_layer.png and rgb_layer.png for layout reference + +// Base Default Layer +// Mac Modifier Layout. Use BootMagic to toggle GUI and ALT positions. +[_BL] = KEYMAP( + F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \ + LT(_FL, KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_NO, KC_ENT, \ + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, MO(_FL), KC_UP, \ + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI,KC_LEFT, KC_DOWN, KC_RGHT), + +// Function layer +[_FL] = KEYMAP( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \ + KC_NO, KC_MPRV,KC_UP, KC_MNXT,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSCR,KC_SLCK, KC_PAUS, KC_INS, \ + KC_TRNS,KC_LEFT,KC_DOWN,KC_RGHT,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_TRNS,KC_NO, KC_MUTE,KC_VOLD,KC_VOLU,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, LT(_RGBL, KC_PGUP),\ + KC_TRNS,KC_TRNS,KC_TRNS, KC_MPLY, KC_TRNS,KC_HOME, KC_PGDN, KC_END), + +// RGB Layer +[_RGBL] = KEYMAP( + #ifdef RGBLIGHT_ENABLE + RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_TRNS,KC_NO, F(1), F(2), F(3), F(4), F(5), F(6), F(7), F(8), BL_STEP,BL_TOGG, KC_TRNS, KC_TRNS,\ + KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS), + #else + RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_STEP,BL_TOGG, KC_TRNS, KC_TRNS,\ + KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS), + #endif +}; + + +enum function_id { + SHIFT_ESC, + #ifdef RGBLIGHT_ENABLE + RGBLED_TOGGLE, + RGBLED_STEP_MODE, + RGBLED_INCREASE_HUE, + RGBLED_DECREASE_HUE, + RGBLED_INCREASE_SAT, + RGBLED_DECREASE_SAT, + RGBLED_INCREASE_VAL, + RGBLED_DECREASE_VAL, + #endif +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(SHIFT_ESC), + #ifdef RGBLIGHT_ENABLE + [1] = ACTION_FUNCTION(RGBLED_TOGGLE), + [2] = ACTION_FUNCTION(RGBLED_STEP_MODE), + [3] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), + [4] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), + [5] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), + [6] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), + [7] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), + [8] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), + #endif +}; + +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + static uint8_t shift_esc_shift_mask; + switch (id) { + case SHIFT_ESC: + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + + #ifdef RGBLIGHT_ENABLE + + case RGBLED_TOGGLE: + //led operations + if (record->event.pressed) { + rgblight_toggle(); + } + break; + case RGBLED_INCREASE_HUE: + if (record->event.pressed) { + rgblight_increase_hue(); + } + break; + case RGBLED_DECREASE_HUE: + if (record->event.pressed) { + rgblight_decrease_hue(); + } + break; + case RGBLED_INCREASE_SAT: + if (record->event.pressed) { + rgblight_increase_sat(); + } + break; + case RGBLED_DECREASE_SAT: + if (record->event.pressed) { + rgblight_decrease_sat(); + } + break; + case RGBLED_INCREASE_VAL: + if (record->event.pressed) { + rgblight_increase_val(); + } + break; + case RGBLED_DECREASE_VAL: + if (record->event.pressed) { + rgblight_decrease_val(); + } + break; + case RGBLED_STEP_MODE: + if (record->event.pressed) { + rgblight_step(); + } + break; + #endif + } +} diff --git a/keyboards/kc60/keymaps/stanleylai/rgb_layer.png b/keyboards/kc60/keymaps/stanleylai/rgb_layer.png new file mode 100644 index 000000000..2bba028bb Binary files /dev/null and b/keyboards/kc60/keymaps/stanleylai/rgb_layer.png differ diff --git a/keyboards/kc60/keymaps/ws2812/Makefile b/keyboards/kc60/keymaps/ws2812/Makefile new file mode 100644 index 000000000..d97e4d9f8 --- /dev/null +++ b/keyboards/kc60/keymaps/ws2812/Makefile @@ -0,0 +1,25 @@ + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= yes # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key +BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE ?= yes # Enable WS2812 underglow RGB strip +MIDI_ENABLE ?= no # MIDI controls +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE ?= no # Audio output on port C6 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE ?= no # USB Nkey Rollover + +ifndef QUANTUM_DIR + include ../../Makefile +endif diff --git a/keyboards/kc60/keymaps/ws2812/README.md b/keyboards/kc60/keymaps/ws2812/README.md new file mode 100644 index 000000000..af76f7ab1 --- /dev/null +++ b/keyboards/kc60/keymaps/ws2812/README.md @@ -0,0 +1,21 @@ +KC60 with WS2812 RGB Underglow +====================== + +![Image of KC60 with RGB Underglow](ws2812_example.jpg) + +## Quantum MK Firmware +For the full Quantum feature list, see [the parent README.md](/README.md). + +## WS2812 Support +By default, it is now setup for 16 LEDs on the PF5 breakout pin. See [included image](ws2812_wiring.jpg) for wiring reference. + +### Build +To build this keymap with WS2812 enabled, simply run `make KEYMAP=ws2812`. + +### Reference Images +![Wiring Reference](ws2812_wiring.jpg) +![RGB Strip turned on](ws2812_underside-lit.jpg) +![RGB Strip turned off](ws2812_underside.jpg) + +### Additional Credits +Keymap based on work by [TerryMatthews](https://github.com/TerryMathews) for GH60 Satan. diff --git a/keyboards/kc60/keymaps/ws2812/compiled.hex b/keyboards/kc60/keymaps/ws2812/compiled.hex new file mode 100644 index 000000000..c9580d3c6 --- /dev/null +++ b/keyboards/kc60/keymaps/ws2812/compiled.hex @@ -0,0 +1,1764 @@ +:100000000C94C2080C9409090C9409090C94090970 +:100010000C9409090C9409090C9409090C94090918 +:100020000C9409090C9409090C947D1B0C944F1C29 +:100030000C94E5290C9409090C9409090C940909FC +:100040000C9409090C9409090C9409090C940909E8 +:100050000C9409090C944D2A0C9409090C94090973 +:100060000C9409090C9409090C9409090C940909C8 +:100070000C9409090C9409090C9409090C940909B8 +:100080000C941C160C9409090C9409090C94090988 +:100090000C9409090C9409090C9409090C94090998 +:1000A0000C9409090C9409090C940909110A2E0AE7 +:1000B0005F0A350A3C0A430A4A0A510A580ABC1C1C +:1000C000DE1CD11DDE1CD11D231D461DD11D9B1D17 +:1000D000AE1D002100212F212F216B218921CB2250 +:1000E000CB229421CB22392239229F22A722CB2254 +:1000F000C622462246224622462246224622462240 +:1001000046224622462246224622462246224622AF +:100110004622562264226B2272227C2200F001F0D9 +:1001200002F003F004F005F006F007F008F00020FC +:100130001E001F00200021002200230024002500B3 +:10014000260027002D002E002A002B0014001A0084 +:100150000800150017001C0018000C001200130006 +:100160002F0030003100390004001600070009009C +:100170000A000B000D000E000F00330034000000D9 +:100180002800E10000001D001B000600190005000A +:10019000110010003600370038000000E500E000D4 +:1001A000E300E200000000002C000000000000005E +:1001B0000000E600E7000151E40035003A003B0092 +:1001C0003C003D003E003F00400041004200430033 +:1001D000440045004C0001000100520001000100F4 +:1001E0000100010001000100010001002F703070CA +:1001F00031700100500051004F000100010001006A +:1002000001000100010001000100010001000100E6 +:1002100001000120022003200420052006200720E1 +:10022000082001000100010001000100010001009F +:1002300000000000010000000000000000000100BC +:100240000100010000700A44454255473A20656E9E +:1002500061626C65642E0A005374617465206F6678 +:1002600020726F772025583A2025303136620A00F7 +:1002700048756D616E2D7265616461626C65206D9B +:1002800061747269782073746174653A0D0A004470 +:1002900065626F756E63696E672064656C61792055 +:1002A00072656D61696E696E673A2025580A00545F +:1002B000494D4552332064697361626C65642E0A4E +:1002C0000054494D45523320656E61626C65642E61 +:1002D0000A007267626C69676874207365742068CD +:1002E0007376205B454550524F4D5D3A2025752C65 +:1002F00025752C25750A007267626C696768742021 +:10030000746F67676C653A207267626C69676874BE +:100310005F636F6E6669672E656E61626C65203D16 +:100320002025750A007267626C69676874206D6FBA +:1003300064653A2025750A007267626C69676874A3 +:100340005F696E6974207267626C696768745F6365 +:100350006F6E6669672E6D6F6465203D20302E20BC +:1003600057726974652064656661756C7420766186 +:100370006C75657320746F20454550524F4D2E0AA1 +:10038000007267626C696768745F696E6974206582 +:1003900065636F6E666967206973206E6F74206590 +:1003A0006E61626C65642E0A007267626C696768D0 +:1003B000745F696E6974207374617274210A0072CB +:1003C00067626C696768745F696E69742063616CE9 +:1003D0006C65642E0A007267626C696768745F639B +:1003E0006F6E6669672E76616C203D2025640A0079 +:1003F0007267626C696768745F636F6E6669672EA7 +:10040000736174203D2025640A007267626C69671D +:1004100068745F636F6E6669672E687565203D203E +:1004200025640A007267686C696768745F636F6E41 +:100430006669672E6D6F6465203D2025640A007231 +:1004400067626C696768745F636F6E6669672E6563 +:100450006E61626C65203D2025640A007267626CE3 +:10046000696768745F636F6E666967206570726F35 +:100470006D0A006565636F6E6669675F75706461BC +:1004800074655F7267626C696768745F64656661F2 +:10049000756C740A00643214643214783C1E1E14A5 +:1004A0000A0500000000010101020203040505061F +:1004B00007090A0B0C0E0F1112141517191B1D1F1B +:1004C000212325282A2C2F313436393B3E414346FF +:1004D000494C4F5255585A5D6164676A6D70737626 +:1004E000797C7F8386898C8F9295989B9EA2A5A705 +:1004F000AAADB0B3B6B9BCBEC1C4C6C9CBCED0D309 +:10050000D5D7DADCDEE0E2E4E6E8EAEBEDEEF0F1A6 +:10051000F3F4F5F6F8F9FAFAFBFCFDFDFEFEFEFF3A +:10052000FFFFFFFFFFFFFEFEFEFDFDFCFBFAFAF9F9 +:10053000F8F6F5F4F3F1F0EEEDEBEAE8E6E4E2E0EC +:10054000DEDCDAD7D5D3D0CECBC9C6C4C1BEBCB9E8 +:10055000B6B3B0ADAAA7A5A29E9B9895928F8C89A1 +:100560008683807C797673706D6A6764615D5A58A2 +:1005700055524F4C494643413E3B393634312F2C7E +:100580002A282523211F1D1B1917151412110F0EC0 +:100590000C0B0A090706050504030202010101000C +:1005A000000000010102020202020203030303032E +:1005B0000303030303030303030404040404040404 +:1005C00004040404040505050505050505050506DF +:1005D00006060606060606070707070707070808B0 +:1005E000080808080909090909090A0A0A0A0A0B78 +:1005F0000B0B0B0B0C0C0C0C0C0D0D0D0D0E0E0E35 +:100600000E0F0F0F101010101111111212121313E0 +:100610001314141415151616161717181819191976 +:100620001A1A1B1B1C1C1D1D1E1E1F2020212122EF +:1006300023232424252626272828292A2B2B2C2D42 +:100640002E2F30303132333435363738393A3B3C5F +:100650003D3E3F40414244454647494A4B4C4E4F40 +:100660005152535556585A5B5D5E606263656769C7 +:100670006B6D6E70727476797B7D7F818486888BDA +:100680008D909295979A9D9FA2A5A8ABAEB1B4B755 +:10069000BABEC1C4C8CBCFD3D6DADEE2E6EAEEF208 +:1006A000F8FF5B735D004B6579626F617264207364 +:1006B000746172742E0A005B575D005B535D005BD2 +:1006C000525D005B445D005B435D000E036B0063A5 +:1006D0000036003000760032000000080359006F39 +:1006E00000750000000403090409027400040100FD +:1006F000A0FA090400000103010100092111010011 +:10070000012240000705810308000A0904010001D5 +:1007100003010200092111010001224D0007058299 +:100720000308000A09040200010300000009211166 +:100730000100012236000705830308000A090403AB +:10074000000203000000092111010001222000071E +:100750000584032000010705040320000112011095 +:100760000100000008EDFE606001000102000106CA +:1007700031FF0974A1010975150025FF9520750841 +:1007800081020976150025FF952075089102C005A4 +:10079000010980A101850216010026B7001A010097 +:1007A0002AB700751095018100C0050C0901A1014F +:1007B0008503160100269C021A01002A9C0275106E +:1007C00095018100C005010902A1010901A10005EF +:1007D0000919012905150025019505750181029565 +:1007E00001750381010501093009311581257F95C6 +:1007F000027508810609381581257F9501750881E4 +:1008000006050C0A38021581257F950175088106B9 +:10081000C0C005010906A101050719E029E7150077 +:10082000250195087501810295017508810105086A +:10083000190129059505750191029501750391012D +:100840000507190029FF150026FF00950675088188 +:1008500000C00A002530325820006B6579626F6154 +:1008600072645F7265706F72743A20004B657962D2 +:100870006F617264204C4544732073746174653AEF +:100880002025780A00646F6E652E0A00626F6F671C +:100890006D61676963207363616E3A202E2E2E208E +:1008A00000290A002575002F002575005D28002508 +:1008B00064002000256400200025640020002564D9 +:1008C000007C0025303258006D6F7573656B65795B +:1008D000205B62746E7C782079207620685D2872B7 +:1008E00065702F61636C293A205B006D6B5F7768E0 +:1008F00065656C5F74696D655F746F5F6D617820AD +:100900003D2025640A006D6B5F776865656C5F6DDF +:1009100061785F7370656564203D2025640A006D11 +:100920006B5F74696D655F746F5F6D6178203D20EA +:1009300025640A006D6B5F6D61785F737065656437 +:10094000203D2025640A006D6B5F696E74657276C8 +:10095000616C203D2025640A006D6B5F64656C61ED +:1009600079203D2025640A006D6B5F776865656CB2 +:100970005F74696D655F746F5F6D6178203D2025E0 +:10098000640A006D6B5F776865656C5F6D61785FA9 +:100990007370656564203D2025640A006D6B5F748B +:1009A000696D655F746F5F6D6178203D2025640A15 +:1009B000006D6B5F6D61785F7370656564203D20CD +:1009C00025640A006D6B5F696E74657276616C20D8 +:1009D0003D2025640A006D6B5F64656C6179203D84 +:1009E0002025640A000A00257500363A20776865DC +:1009F000656C5F74696D655F746F5F6D61783A20D7 +:100A0000000A00257500353A20776865656C5F6DD2 +:100A100061785F73706565643A20000A002575008F +:100A2000343A2074696D655F746F5F6D61783A2048 +:100A3000000A00257500333A206D61785F73706598 +:100A400065643A20000A00257500323A20696E7408 +:100A5000657276616C286D73293A20000A0025754D +:100A600000313A2064656C6179282A31306D732930 +:100A70003A20000A092D2056616C756573202D0AF5 +:100A8000004D3E004D25643E20003F0073657420FC +:100A900064656661756C740A00433E200077686582 +:100AA00072652064656C74613A20637572736F724D +:100AB0003D25642C20776865656C3D25640A536587 +:100AC0006520687474703A2F2F656E2E77696B6994 +:100AD00070656469612E6F72672F77696B692F4D3E +:100AE0006F7573655F6B6579730A000A092D204D78 +:100AF0006F7573656B6579202D0A4553432F713AE5 +:100B000009717569740A313A0964656C6179282A3A +:100B100031306D73290A323A09696E7465727661F3 +:100B20006C286D73290A333A096D61785F737065BB +:100B300065640A343A0974696D655F746F5F6D614D +:100B4000780A353A09776865656C5F6D61785F731F +:100B5000706565640A363A09776865656C5F746923 +:100B60006D655F746F5F6D61780A0A703A09707223 +:100B7000696E742076616C7565730A643A097365F1 +:100B8000742064656661756C74730A75703A092B1C +:100B9000310A646F776E3A092D310A706775703AC1 +:100BA000092B31300A7067646F776E3A092D313046 +:100BB0000A0A7370656564203D2064656C74612069 +:100BC0002A206D61785F7370656564202A20287221 +:100BD0006570656174202F2074696D655F746F5F47 +:100BE0006D6178290A003F004D3E2000433E200001 +:100BF0004C25640A0074696D65725F636F756E746D +:100C00003A202530346C580A006B6579626F617246 +:100C1000645F69646C653A2025580A006B657962E7 +:100C20006F6172645F70726F746F636F6C3A2025CE +:100C3000580A00686F73745F6B6579626F617264E4 +:100C40005F6C65647328293A2025580A000A092D2B +:100C500020537461747573202D0A004743433A2072 +:100C6000352E332E30204156522D4C4942433A20E6 +:100C7000322E302E30204156525F415243483A20A6 +:100C8000617672350A004F5054494F4E533A204C0A +:100C900055464120424F4F544D41474943204D4F07 +:100CA0005553454B45592045585452414B455920C1 +:100CB000434F4E534F4C4520434F4D4D414E4420E2 +:100CC000343039360A004255494C443A20756E6B2F +:100CD0006E6F776E202830323A35383A3435204AF4 +:100CE000756E2032312032303136290A005649449F +:100CF0003A2030784645454428596F752920504997 +:100D0000443A20307836303630286B6336307632CD +:100D100029205645523A203078303030310A00448C +:100D20004553433A204120637573746F6D206B65A2 +:100D300079626F6172640A000A092D205665727328 +:100D4000696F6E202D0A000A092D20436F6E736FA4 +:100D50006C65202D0A4553432F713A0971756974EA +:100D60000A6D3A096D6F7573656B65790A000A093A +:100D70002D204D61676963202D0A443A094465625C +:100D80007567204D65737361676520546F67676C85 +:100D9000650A583A094D6174726978204465627534 +:100DA00067204D6F646520546F67676C65202D2048 +:100DB00053686F77206B6579707265737365732004 +:100DC000696E206D617472697820677269640A4B7C +:100DD0003A094B6579626F61726420446562756798 +:100DE00020546F67676C65202D2053686F77206BE8 +:100DF00065797072657373207265706F72740A4DD5 +:100E00003A094465627567204D6F75736520546FAC +:100E100067676C650A563A0956657273696F6E0AA0 +:100E2000533A095374617475730A433A0941637400 +:100E3000697661746520436F6E736F6C65204D6FCA +:100E400064650A46312D4631303A09537769746337 +:100E50006820746F204C6179657220302D3920280C +:100E6000463130203D204C30290A302D393A095383 +:100E7000776974636820746F204C617965722030E3 +:100E80002D390A4553433A095377697463682074CE +:100E90006F204C6179657220302028616C74657216 +:100EA0006E617465206B65792031290A475241567D +:100EB000453A0953776974636820746F204C6179EF +:100EC000657220302028616C7465726E61746520D3 +:100ED0006B65792032290A50415553453A094A75C4 +:100EE0006D7020746F20426F6F746C6F61646572F7 +:100EF00020285265736574290A453A095072696E53 +:100F00007420454550524F4D2053657474696E6787 +:100F1000730A000A002575002E6C6576656C3A2010 +:100F2000000A002575002E656E61626C653A20002E +:100F30000A0025303258006261636B6C696768741F +:100F40005F636F6E6669672E7261773A20000A00F0 +:100F50002575002E6E6B726F3A20000A0025750011 +:100F60002E737761705F6261636B736C6173685F2E +:100F70006261636B73706163653A20000A002575D6 +:100F8000002E737761705F67726176655F6573636A +:100F90003A20000A002575002E6E6F5F6775693A6A +:100FA00020000A002575002E737761705F72616CF6 +:100FB000745F726775693A20000A002575002E7308 +:100FC0007761705F6C616C745F6C6775693A200063 +:100FD0000A002575002E636170736C6F636B5F741C +:100FE0006F5F636F6E74726F6C3A20000A00257534 +:100FF000002E737761705F636F6E74726F6C5F63E6 +:101000006170736C6F636B3A20000A0025303258B0 +:10101000006B65796D61705F636F6E6669672E72D4 +:1010200061773A20000A002575002E6D6F75736593 +:101030003A20000A002575002E6B6579626F617297 +:10104000643A20000A002575002E6D61747269787B +:101050003A20000A002575002E656E61626C653AC3 +:1010600020000A00253032580064656275675F63AE +:101070006F6E6669672E7261773A20000A002575E7 +:101080000064656661756C745F6C617965723A20A5 +:10109000003F000A6D6F7573653A206F66660A003F +:1010A0000A6D6F7573653A206F6E0A000A6B657979 +:1010B000626F6172643A206F66660A000A6B657936 +:1010C000626F6172643A206F6E0A000A6D61747219 +:1010D00069783A206F66660A000A6D6174726978F1 +:1010E0003A206F6E0A000A64656275673A206F667F +:1010F000660A000A64656275673A206F6E0A000A24 +:101100000A4A756D70696E6720746F20626F6F7424 +:101110006C6F616465722E2E2E2000433E200065A8 +:1011200065636F6E6669673A0A006261636B6C693A +:1011300067687420737465703A2025750A006261CF +:10114000636B6C6967687420746F67676C653A20BD +:1011500025750A006261636B6C6967687420646559 +:101160006372656173653A2025750A006261636B7D +:101170006C6967687420696E6372656173653A2093 +:1011800025750A0011241FBECFEFDAE0DEBFCDBF08 +:1011900004B603FE27C080913F0290914002A091C7 +:1011A0004102B09142028730904BA740B04BD1F43E +:1011B00010923F021092400210924102109242029D +:1011C00014BE84B7877F84BF0FB6F894A89580912A +:1011D0006000886180936000109260000FBEE0E0C4 +:1011E000F8E3099511E0A0E0B1E0EAEDFDE602C008 +:1011F00005900D92A634B107D9F722E0A6E4B1E03C +:1012000001C01D92AF33B207E1F70E94BE180C94E3 +:10121000EB360C940000FF93EF93E0914601F091C0 +:101220004701309709F00995EF91FF910895FC016E +:101230008591803011F0EFDFFBCF0895FF27E0E2CA +:1012400030E247FF0CC0419597FF09C0EDE2609581 +:10125000709580959095611D711D811D911D27FFD1 +:1012600002C0219530E350E2AA27660F771F881F3E +:10127000991FAA1FA41710F0A41B63955A95A9F7EC +:10128000AA3008F0A95FA05DAF93F39561157105D1 +:101290008105910541F7ED3211F4EF93F395F217C3 +:1012A00018F43F93F395FBCF8F91B5DFFA95E1F7F3 +:1012B0000895E991F9918591803021F0853219F0F6 +:1012C000AADFF9CF089520E0E89455915532C1F393 +:1012D000503311F4689455915A3348F4505390F3B5 +:1012E000220F022E220F220F200D250FF4CF0EF415 +:1012F000219589919991533619F3533729F1533533 +:1013000059F1BC0188279927E8945C3621F489912A +:10131000999168945591543639F446EF7EF077FFF1 +:101320000DC08FEF9FEF0AC055374AE039F05835AE +:1013300040E121F0523642E009F00895FF93EF9327 +:101340007DDFEF91FF91B7CFFF93EF93FC01819188 +:101350008030B9F360DFFBCFFF93EF9368DFF1CF0D +:10136000DF93CF93CDB7DEB72596A3DFCF91DF9183 +:10137000089508950C94B90981E0089508950C9496 +:10138000B9090C94BC090C94BE09269A2E988FEFCB +:101390009FEF909387008093860082E28093800085 +:1013A00089E1809381000C9455340E94C5090C9406 +:1013B000BA09282F2E9880918000211108C08F7DB6 +:1013C0008093800010928B0010928A0008958062B2 +:1013D00080938000233019F48FEF9FEF0FC083E0DC +:1013E00090E0821B9109880F991F2FEF3FEFA90111 +:1013F00002C0569547958A95E2F7CA0190938B00F3 +:1014000080938A000895CF93DF93EC01862F90E0BC +:101410008930910508F05AC0FC01EA5AFF4F0C943C +:101420009D360E94E32882729A81992369F088236D +:1014300019F085E390E002C089E290E00E94A728BD +:10144000DF91CF910C942D29882319F085E390E04A +:1014500002C089E290E00E94C428F2CF8A818823EA +:10146000A9F1DF91CF910C94C7138A81882371F180 +:10147000DF91CF910C9433128A81882339F1DF9167 +:10148000CF910C944B128A81882301F1DF91CF9187 +:101490000C946A128A818823C9F0DF91CF910C9451 +:1014A00085128A81882391F0DF91CF910C949F124D +:1014B0008A81882359F0DF91CF910C94BA128A81E6 +:1014C000882321F0DF91CF910C94BD13DF91CF9150 +:1014D000089581E008950C94690A08950F931F936D +:1014E000CF93DF938C01FC01C081D181CE010E949A +:1014F0002828BE010E94A70DEC01B8010E946B0ACA +:10150000882309F474C1F8018281882309F45BC03F +:101510008091530181111FC0C431F0E7DF0709F04A +:101520000AC10E946D0A81E0809353010E94172A2C +:10153000909352018093510110924A0110924C01F4 +:1015400010924B0110924E0110924D0110925001D9 +:1015500010924F014CC180915101909152010E9413 +:10156000232A883C910570F480914A01E82FF0E02D +:10157000EE0FFF1FE55BFE4FD183C0838F5F80932B +:101580004A0135C1C43120E7D20708F028C1C23072 +:1015900080E7D80710F5C11590E7D90709F0DAC040 +:1015A000F8018281882309F4BFC00E943423FFEF31 +:1015B00024E38CE0F15020408040E1F700C00000BF +:1015C0000E94722A14C1C431F0E7DF0708F0D3C0CB +:1015D000C23020E7D20708F49BC0F801828188233B +:1015E00009F4A2C00E942C2C811102C00E940D2C73 +:1015F0000E94492C90E09093F8018093F701C2304B +:10160000F0E7DF0721F48091F70181607AC0C330F1 +:1016100020E7D20721F48091F701826072C0C430C4 +:1016200080E7D80721F48091F70184606AC0C53053 +:1016300090E7D90719F48091F70127C0C630E0E799 +:10164000DE0721F48091F70180615BC0C730F0E7CD +:10165000DF0721F48091F701806253C0C83020E792 +:10166000D20721F48091F70180644BC0C93080E734 +:10167000D80721F48091F701806843C0CA3090E711 +:10168000D90729F48091F701846088603AC0CB3093 +:10169000E0E7DE0721F48091F7018E7F32C0CC3085 +:1016A000F0E7DF0721F48091F7018D7F2AC0CD306C +:1016B00020E7D20721F48091F7018B7F22C0CE3042 +:1016C00080E7D80719F48091F7011AC08091F701DB +:1016D000CF3090E7D90711F48F7E13C0C031E0E717 +:1016E000DE0711F48F7D0DC0C131F0E7DF0711F483 +:1016F0008F7B07C0C231D04711F48F7702C08B7F38 +:10170000877F8093F7018091F7010E944D2C6FC075 +:10171000C11580E7D80741F0C130D047F1F081E032 +:101720008093480180934901C801DF91CF911F91B7 +:101730000F910C94C109C43120E7D20708F04FC0C3 +:10174000C23080E7D80708F048CFC11590E7D90725 +:1017500009F42BCFC130D04711F7F80182818823DB +:1017600019F386E492E00E9417098091E6018160F6 +:101770008093E6013CC0C333E0E7DE07A1F4F80143 +:101780008281882321F01092480182E017C0809165 +:101790004801811106C086E20E949D1F86E20E94D8 +:1017A000652082E019C0C433D04709F0B8CFF801F2 +:1017B0008281882331F01092490182E10E94B42095 +:1017C00016C080914901811106C087E20E949D1FC9 +:1017D00087E20E94652082E10E94BB2008C0C333DB +:1017E000F0E7DF0761F2C433D04709F398CF80E018 +:1017F000DF91CF911F910F9108950C94D5090C940E +:10180000BF0926E4829FC0011124FC013EE0739FC2 +:10181000E00DF11D1124E60FF11DEE0FFF1FE25D3B +:10182000FE4F859194910E94BA0D811540E5940771 +:1018300008F047C0811520E4920708F014C1883EE3 +:10184000910520F5803E910508F07DC1883A91050B +:1018500078F4853A910508F0A6C08130910509F425 +:1018600072C108F42FC18430910508F06CC12AC1FF +:101870008B3B910508F4A2C0803C910508F422C17D +:10188000FC01EE0FFF1FE456F040E7C0811530E287 +:10189000930758F4811541E0940708F054C1803F44 +:1018A000910508F40FC190650895811520E3920712 +:1018B00008F0D6C0FC01FF70EE0FFF1FE45EFE4F84 +:1018C000CCC0811535E5930708F044C0811544E587 +:1018D000940708F0DFC0811522E5920710F5811505 +:1018E00031E5930708F0C2C09C0154E03695279576 +:1018F0005A95E1F7922F9370482F437021E030E022 +:1019000002C0220F331F4A95E2F73C68392B8F70D3 +:101910008695869540E2849FC0011124822B932BEB +:101920000895AC0143705527282F269526958115DB +:10193000934508F0A0C081E090E002C0880F991F95 +:101940004A95E2F740E2249F90011124822B932BC9 +:101950009C6808958F3240E7940790F48F3120E718 +:10196000920708F0A2C0811536E5930708F497C0E6 +:101970009C0130562115304108F0A4C09F7093C0DF +:10198000803320E7920709F497C008F492C08133AE +:1019900040E7940709F493C08233904709F092C05E +:1019A00080E093ED0895853A910509F48EC0863A5A +:1019B000910509F08DC082E890E40895883A910578 +:1019C00009F489C0893A910509F488C08A3A9105D9 +:1019D00009F487C08B3A910509F486C08C3A9105C9 +:1019E00009F485C08D3A910509F484C0803B9105C6 +:1019F00009F483C08E3A910509F482C08F3A9105AB +:101A000009F481C0813B910509F480C0823B9105B6 +:101A100009F47FC0833B910509F47EC0843B9105A6 +:101A200009F47DC0853B910509F47CC0863B910596 +:101A300009F47BC0873B910509F47AC0883B910586 +:101A400009F479C0893B910509F478C08A3B910576 +:101A500009F477C080E094E4089585919491089505 +:101A60009927906C08959F70906A0895982F882701 +:101A7000816F906A089581E090E002C0880F991FFD +:101A80004A95E2F740E2249F90011124822B932B88 +:101A90009A680895982F8827846F906A08958F71A7 +:101AA0009927982F8827906208958F519047946DB9 +:101AB000089580E091ED089580E090ED089580E034 +:101AC00092ED089580E090E0089581E890E4089513 +:101AD00083E890E4089582EE94E4089589EE94E416 +:101AE00008958AEE94E4089585EB94E4089586EBD6 +:101AF00094E4089587EB94E408958CEC94E40895BD +:101B00008DEC94E4089583E895E408958AE895E4DB +:101B1000089582E995E4089584E995E4089581E2C1 +:101B200096E4089583E296E4089584E296E40895A5 +:101B300085E296E4089586E296E4089587E296E4C5 +:101B400008958AE296E4089580E090E0089526E4FE +:101B5000829FC0011124FC012EE0729FE00DF11D57 +:101B60001124E60FF11DEE0FFF1FE25DFE4F859180 +:101B7000949108958238910549F1B0F4813391052B +:101B800009F459C048F48932910509F44FC08A32EA +:101B9000910509F455C008958533910509F441C0B4 +:101BA0008933910599F00895833E910531F138F418 +:101BB000803E910591F0823E9105A9F00895863E00 +:101BC000910501F1873E910539F108952091F701C2 +:101BD00020FD3BC021FD39C008958091F70180FFB1 +:101BE00034C089E341C08091F70182FF30C0809109 +:101BF000F70184FD2EC083EE37C08091F70182FD8E +:101C000026C0F5CF8091F70183FF25C08091F701B1 +:101C100084FD1FC087EE28C08091F70183FD1BC0A3 +:101C2000F5CF8091F70185FD18C019C08091F701AB +:101C300085FD15C012C08091F70186FD12C013C04A +:101C40008091F70186FD0FC00CC080EE0DC082EEC2 +:101C50000BC080E009C086EE07C089E205C085E3BD +:101C600003C08AE201C081E390E008950C94C309A7 +:101C7000E82FF0E0ED5DFE4F8081E82FEF70F0E09F +:101C800082958F7021E030E0A90102C0440F551FFA +:101C90008A95E2F740A308950F931F93CF93DF93A4 +:101CA000C4E0D0E001E010E0FE01ED5DFE4F808178 +:101CB000E82FEF70F0E021A182958F70A80102C09B +:101CC000440F551F8A95E2F7CA01822B81A38C2FFE +:101CD0000E94380E219740F78DE090E061E070E0BF +:101CE000FC01EB5EFE4F2081E22FEF70F0E042A19D +:101CF00022952F70DB0102C0AA0FBB1F2A95E2F7C5 +:101D00009D01242B22A3019758F7DF91CF911F91BA +:101D10000F9108950F931F93CF93DF9385B780683A +:101D200085BF85B7806885BFC4E0D0E001E010E0E2 +:101D3000FE01ED5DFE4F8081E82FEF70F0E021A104 +:101D400082958F70A80102C0440F551F8A95E2F753 +:101D5000CA01822B81A38C2F0E94380E219740F755 +:101D60008DE090E061E070E0FC01EB5EFE4F2081D1 +:101D7000E22FEF70F0E042A122952F70DB0102C04C +:101D8000AA0FBB1F2A95E2F79D01242B22A30197DE +:101D900058F7DF91CF911F910F910C94FD0BCF92CB +:101DA000DF92EF92FF920F931F93CF93DF930EE595 +:101DB00011E07801C4E0CC24C394D12CD5E08C2F61 +:101DC0000E94380E8DE090E040E050E0FC01EB5EB8 +:101DD000FE4F6081E62FEF70F0E020A130E06295C9 +:101DE0006F7002C0359527956A95E2F720FD09C00E +:101DF0009601082E02C0220F331F0A94E2F7422BED +:101E0000532B019718F7D7019E918E917D0184176E +:101E1000950721F04D935C93D09300018C2F0E9485 +:101E2000380EC15060F68091000187FD2FC090915F +:101E3000E60190FF10C0282F082E000C330B3F93B3 +:101E40008F938FE892E09F938F930E94B0090F9039 +:101E50000F900F900F9080910001815080930001AE +:101E600087FD07C0EFE9FFE03197F1F700C0000000 +:101E70000DC0E8E6F1E084E591E0D8013E912E91B5 +:101E80008D01329322938A179B07B9F70E94FF0BAB +:101E900081E0DF91CF911F910F91FF90EF90DF9044 +:101EA000CF900895E82FF0E0EE0FFF1FE25AFE4FAB +:101EB000808191810895EF92FF920F931F93CF93AA +:101EC000DF938091E60180FF04C080E792E00E94EA +:101ED00017090EE511E0C0E0D0E088E5E82E82E0C9 +:101EE000F82E8091E60180FF13C0F8018081918176 +:101EF0000E947F299F938F93DF93CF93FF92EF925E +:101F00000E94B0090F900F900F900F900F900F90BC +:101F100021960E5F1F4FC530D10519F7DF91CF9184 +:101F20001F910F91FF90EF9008950F931F93CF9300 +:101F300008E611E0C0E0F801929182918F010E94C1 +:101F40006129C80FF1E00E351F07A9F78C2FCF913B +:101F50001F910F91089521B3342F3095232331B36E +:101F6000432B3FB7F894FC01680F791FE617F7077A +:101F700089F0819198E041BB000000C087FF21BB40 +:101F8000880F000000C000C000C021BB00C09A95AF +:101F900091F7ECCF3FBF089520B3242B20BB9B01CA +:101FA000220F331F620F731F0E94AB0F87EC90E06C +:101FB0000197F1F700C00000089540E20C94CC0FA7 +:101FC000AF92BF92CF92DF92EF92FF920F931F9347 +:101FD000CF93DF936C01790150E0FA01EE55FA4F8F +:101FE00044918FEF90E0FC01E61BF109EE55FA4FAA +:101FF000E491E09509F495C0C42FD0E08E1B9109BF +:102000008C9F90018D9F300D9C9F300D1124E32FEC +:102010008CE3A82EB12CC601B5010E947536DC01F7 +:102020006230710509F446C0D0F46115710599F16B +:102030006130710509F079C0C31BD109B501681B76 +:10204000790BC69FC001C79F900DD69F900D11249C +:10205000B5010E947536032F060F142F67C0643038 +:10206000710509F44BC0B8F16530710509F05DC028 +:10207000C31BD109B501681B790BC69FC001C79F5F +:10208000900DD69F900D1124B5010E947536132F27 +:10209000E32FE60F44C0C31BD109CC9DC001CD9DE9 +:1020A000900DDC9D900D1124B5010E947536132F03 +:1020B000160F35C0C31BD109CA9FC001CB9F900D1D +:1020C000DA9F900D1124B5010E947536142F032F4D +:1020D000E32FE60F2BC0C31BD109B501681B790B99 +:1020E000C69FC001C79F900DD69F900D1124B501CA +:1020F0000E947536132F160F032F0FC0C31BD10973 +:10210000CA9FC001CB9F900DDA9F900D1124B5019D +:102110000E947536032F060F132FE42F07C0042FDC +:1021200005C0E42F142F042F01C0E0E0D701119661 +:102130000C9311971C931296EC93DF91CF911F9102 +:102140000F91FF90EF90DF90CF90BF90AF900895E8 +:1021500087E090E00C94AB36AB01BC0187E090E0E7 +:102160000C94C9368091E60180FF08C083E794E0B3 +:102170009F938F930E94B0090F900F9083E08093FC +:10218000F9018091FA01807884668F778093FA0153 +:102190008CEC8093FB018093FC016091F9017091BC +:1021A000FA018091FB019091FC010C94AC1080919C +:1021B000E60180FF08C08CE594E09F938F930E9416 +:1021C000B0090F900F908091E60180FF0FC08091C1 +:1021D000F90181701F928F938FE394E09F938F9307 +:1021E0000E94B0090F900F900F900F908091E60120 +:1021F00080FF10C08091F90186958F731F928F9395 +:1022000084E294E09F938F930E94B0090F900F9007 +:102210000F900F908091E60180FF19C08091F90125 +:10222000881F8827881F9091FA01292F220F822B5F +:1022300097FB992790F99F938F938AE094E09F935F +:102240008F930E94B0090F900F900F900F90809184 +:10225000E60180FF0EC08091FB011F928F9380EFFB +:1022600093E09F938F930E94B0090F900F900F906F +:102270000F908091E60180FF0EC08091FC011F92BB +:102280008F9386ED93E09F938F930E94B0090F90F8 +:102290000F900F900F9008958091F90180FF06C074 +:1022A00060E170E081E092E00C94DD0FE3E0F2E0A9 +:1022B000DF0111971C9211971C921082339682E0D5 +:1022C000E333F807A9F7ECCFE3E0F2E0DF01119781 +:1022D0008C9311976C934083339692E0E333F90724 +:1022E000A9F70C944C11EF92FF920F931F93CF9389 +:1022F000DF9300D01F92CDB7DEB7182FE92EF62E50 +:10230000042F8091F9019091FA01A091FB01B09105 +:10231000FC018093FD019093FE01A093FF01B09317 +:1023200000028091F90180FF1FC09E012F5F3F4F87 +:10233000812F9E2D0E94E00F8091FD0110FB87F9F7 +:102340008093FD0116958091FE018078182BE0FAAC +:1023500017F91093FE01F092FF01009300024B81E8 +:1023600069818A810E9464110F900F900F90DF9114 +:10237000CF911F910F91FF90EF9008950F931F93AE +:10238000CF93DF93EC01062F142F9091F90190FF6A +:1023900065C0892F8E77823021F4CE010E9473119F +:1023A0001BC0892F86958F732EE3280F2F7324303F +:1023B00018F41091FC0110C0865C8F73893060F4B2 +:1023C000C92FCC1FCC27CC1FD091FA018D2F880F9D +:1023D000C82BD7FBDD27D0F98091F901C0FB87F925 +:1023E0008093F901C6958091FA018078C82BD0FBC3 +:1023F000C7F9C093FA010093FB011093FC016091AF +:10240000F9017091FA018091FB019091FC010E9409 +:10241000AC108091FC011F928F938091FB011F9261 +:102420008F938091F901881F8827881F9091FA0166 +:10243000292F220F822B97FB992790F99F938F9337 +:1024400082ED92E09F938F930E94B0098DB79EB763 +:1024500008960FB6F8949EBF0FBE8DBFDF91CF9147 +:102460001F910F910895E9EFF1E02081221F2227AB +:10247000221F3091FA01432F440F842F822B37FB08 +:10248000992790F9089668E671E00E9489364381A1 +:1024900062810C94BE112091F901221F2227221F74 +:1024A0003091FA01432F440F842F822B37FB992759 +:1024B00090F9883091051CF4805A9E4F05C008970A +:1024C00068E671E00E9489364091FC016091FB0151 +:1024D0000C94BE116091FB01862F90E0883F91051E +:1024E00014F4685F01C06FEF8091F901881F88279D +:1024F000881F9091FA01292F220F97FB992790F9B5 +:102500004091FC01822B0C94BE116091FB01862F3F +:1025100090E0089714F0685001C060E08091F901E4 +:10252000881F8827881F9091FA01292F220F97FB77 +:10253000992790F94091FC01822B0C94BE11409197 +:10254000FC01842F90E0883F910514F4485F01C09E +:102550004FEF8091F901881F8827881F9091FA0119 +:10256000292F220F97FB992790F96091FB01822B6D +:102570000C94BE114091FC01842F90E0089714F058 +:10258000485001C040E08091F901881F8827881FCA +:102590009091FA01292F220F97FB992790F96091CA +:1025A000FB01822B0C94BE118091790181110FC027 +:1025B00081E08093790189E0809391008FB7F8944E +:1025C00093E09093990090ED909398008FBF0895B9 +:1025D000809171008260809371008091E60180FF9C +:1025E00008C081EC92E09F938F930E94B0090F90F6 +:1025F0000F900895809171008D7F8093710080917C +:10260000E60180FF08C08FEA92E09F938F930E94BB +:10261000B0090F900F9008959091F90190FF4BC071 +:102620009178811102C0926007C0883110F09E62DB +:1026300003C08F73880F982B9093F9016091F90173 +:102640007091FA018091FB019091FC010E94AC1005 +:102650008091F90186958F731F928F9385E293E0A5 +:102660009F938F930E94B0098091F901982F9E77D4 +:102670000F900F900F900F90923019F40E94FA1261 +:1026800007C08695825C8F73863110F40E94E81231 +:102690008091F901881F8827881F9091FA01292FBE +:1026A000220F97FB992790F94091FC016091FB0163 +:1026B000822B0C94BE1108958091E6018160809375 +:1026C000E6018FEB93E09F938F930E94B00981E026 +:1026D00080937A018091E6010F900F9080FF08C0EF +:1026E00089EA93E09F938F930E94B0090F900F9017 +:1026F0000E942C2C811110C08091E60180FF08C03F +:1027000081E893E09F938F930E94B0090F900F9000 +:102710000E940D2C0E94B2100E94A8106093F90133 +:102720007093FA018093FB019093FC016E77C1F4E2 +:102730008091E60180FF08C088E393E09F938F9328 +:102740000E94B0090F900F900E94B2100E94A81032 +:102750006093F9017093FA018093FB019093FC015F +:102760000E94D7100E94D4128091F90180FF04C00A +:1027700086958F730C940C1308958091F9018695BA +:102780008F738F5F883108F081E00C940C13809177 +:10279000F901982F909590FB80F98093F901609151 +:1027A000F9017091FA018091FB019091FC010E9466 +:1027B000AC108091F90181701F928F9387EF92E0A6 +:1027C0009F938F930E94B0098091F9010F900F9011 +:1027D0000F900F9080FF04C086958F730C940C139C +:1027E0000E94FA122FEF80E792E021508040904043 +:1027F000E1F700C000000C944C11CF93C82F8091DA +:102800007701909178010E94232AEC2FF0E0E256A4 +:10281000FB4FE491F0E08E179F0718F10E94172AF2 +:102820009093780180937701E0917601F0E0EE5586 +:10283000FB4F44918091F901881F8827881F909150 +:10284000FA01292F220F97FB992790F96091FB013C +:10285000822B0E9473118091760190E00196809303 +:102860007601CF910895CF93C82F809174019091F4 +:1028700075010E94232AEC2FF0E0E556FB4FE4910E +:10288000F0E08E179F07E8F00E94172A90937501D9 +:10289000809374014091FC016091FB018091720171 +:1028A000909173010E947311809172019091730154 +:1028B000019668E671E00E947536909373018093EB +:1028C0007201CF910895CF92DF92FF920F931F93E1 +:1028D000CF93DF93F82E80917001909171010E9447 +:1028E000232AEF2DE695F0E0E556FB4FE491F0E06A +:1028F0008E179F07C0F10E94172A90937101809351 +:10290000700101E012E0C0E0D0E088E6C82EDD24CE +:10291000D39480916E0190916F018C0F9D1FB60131 +:102920000E94753698014091FC016091FB010E9464 +:10293000E00F66960D5F1F4FC03681E0D80749F75C +:102940000E944C1180916E0190916F01F0FE06C0C3 +:10295000019668E671E00E94753601C00197909378 +:102960006F0180936E01DF91CF911F910F91FF90C6 +:10297000DF90CF9008958F929F92AF92BF92CF92A7 +:10298000DF92EF92FF920F931F93CF93DF93C82FA5 +:1029900080FF03C0DD24DA9402C0DD24D39480914B +:1029A0006C0190916D010E94232AC695EC2FF0E0F6 +:1029B000E856FB4FE491F0E08E179F0708F466C0DD +:1029C0000E94172A90936D0180936C0191E0E92E8B +:1029D00092E0F92E03E012E0C0E0D0E027E0822E82 +:1029E000912CF80131971082F7011082F8011082C2 +:1029F00087E0A82EB12CC12C80916B018C0D87FD36 +:102A0000805F082E000C990BC817D907E9F42091B4 +:102A1000FC012A9DC0012B9D900D1124B4010E9440 +:102A20008936462F8091F901881F8827881F909149 +:102A3000FA01592F550F97FB992790F9970160914B +:102A4000FB01852B0E94E00FCD0CF1E0AF1AB1081D +:102A500099F6219683E0E80EF11C0D5F1F4FC031FF +:102A6000D10509F0BECF0E944C1180916B0191E01D +:102A7000D91206C0811102C08FE006C0815004C087 +:102A800090E001968F70992780936B01DF91CF9131 +:102A90001F910F91FF90EF90DF90CF90BF90AF907C +:102AA0009F908F9008959F92AF92BF92CF92DF92A6 +:102AB000EF92FF920F931F93CF93DF93CDB7DEB7C3 +:102AC000E0970FB6F894DEBF0FBECDBF182F8091F0 +:102AD000690190916A010E94232AE12FF0E0EB56F0 +:102AE000FB4FE491F0E08E179F0708F493C00E941B +:102AF000172A90936A0180936901CE0101967C01A7 +:102B00005E0193E0A90EB11CC12CD12C8701F50107 +:102B100031971082F7011082F5011082912C90916B +:102B2000010180916801999E800D112487FD04C0E8 +:102B300080311CF08FE001C080E0082E000C990B62 +:102B4000C816D906A1F48091F901881F8827881F2B +:102B50009091FA01592F550F97FB992790F99701FA +:102B60004091FC016091FB01852B0E94E00F939442 +:102B7000F7E09F12D4CF8FEFC81AD80A93E0E90E7E +:102B8000F11CE3E0AE0EB11CF0E1CF16D10409F068 +:102B9000BECFA3E0B2E089E090E0FC01EF70FF2738 +:102BA0009D0121503109AF01440F551FE40FF51F5E +:102BB000BF01600F711FFB014181F901408321506A +:102BC0003109FB014081F9014083FB0122812C93F3 +:102BD000019613968931910501F70E944C1190914D +:102BE000010180916801913049F48A3F2CF489EF0A +:102BF000809368018FEF08C081500AC087313CF094 +:102C000086E18093680181E08093010103C08F5FBA +:102C100080936801E0960FB6F894DEBF0FBECDBF7B +:102C2000DF91CF911F910F91FF90EF90DF90CF90A8 +:102C3000BF90AF909F9008951F920F920FB60F9282 +:102C400011242F933F934F935F936F937F938F93B1 +:102C50009F93AF93BF93EF93FF938091F901869574 +:102C60008F739EE3980F9F73943020F482500E94DC +:102C7000FD1323C09AE3980F9F73933020F486507E +:102C80000E9433141AC097E3980F9F73963020F474 +:102C900089500E94631411C091E3980F9F7396307E +:102CA00020F48F500E94BB1408C09BE2980F9F73C2 +:102CB000933018F485510E945315FF91EF91BF9105 +:102CC000AF919F918F917F916F915F914F913F91C4 +:102CD0002F910F900FBE0F901F9018958091860135 +:102CE00008959FB7F89410927D019FBF909135028F +:102CF000943009F057C09091E9009F703091EC003A +:102D0000232F217030FD20E8922B24E02093E9004E +:102D10002091EB0020FF43C02091EE0027FF3FC031 +:102D200020917B01222321F02091E80025FF37C06C +:102D300010927B0126E03091E80035FD15C03091FE +:102D40003502343061F53091EB0035FD28C021505B +:102D500021F481E080937B0122C0EFE9FFE031970D +:102D6000F1F700C00000E7CF8093F1008091E80008 +:102D700085FD0AC08091E80080FFFCCF8091E800CB +:102D80008E778093E80006C08FB7F89421E02093F7 +:102D90007D018FBF9F709093E90080E008959F7040 +:102DA0009093E9008FEF0895CF93DF9300D01F92A7 +:102DB000CDB7DEB79C0180913502843019F593E0E0 +:102DC00099833B832A839093E9008FEF9091E800E9 +:102DD000815095FD06C095ED9A95F1F7000081119F +:102DE000F5CF8091E80085FF0DC040E050E063E042 +:102DF00070E0CE0101960E9471198091E8008E77F3 +:102E00008093E8000F900F900F90DF91CF9108957D +:102E1000CF93DF9300D01F92CDB7DEB7209135025C +:102E2000243021F522E029839B838A8383E08093E9 +:102E3000E9008FEF9091E800815095FD06C095ED77 +:102E40009A95F1F700008111F5CF8091E80085FF98 +:102E50000DC040E050E063E070E0CE0101960E94BA +:102E600071198091E8008E778093E8000F900F90A1 +:102E70000F90DF91CF9108959C01809135028430AD +:102E8000F9F482E08093E9009FEF8091E80091508F +:102E900085FD06C085ED8A95F1F700009111F5CF0B +:102EA0008091E80085FF0CC040E050E065E070E0F4 +:102EB000C9010E9471198091E8008E778093E80023 +:102EC0000895CF93DF93EC0180913502843039F57A +:102ED00081E08093E9008FEF9091E800815095FDAB +:102EE00006C095ED9A95F1F700008111F5CF80911C +:102EF000E80085FF14C040E050E068E070E0CE01DB +:102F00000E9471198091E8008E778093E80088E034 +:102F1000FE01AEE7B1E001900D928A95E1F7DF91F5 +:102F2000CF91089587EC96E00E94170980913402B2 +:102F3000811109C00E94021B0E945F1B8091E20068 +:102F400084608093E200089583EC96E00E94170964 +:102F50001092340208958FEB96E00C9417098BEBD6 +:102F600096E00C94170987EB96E00E9417090C94E1 +:102F7000DA2920917C012F5F822F62E30E9469365B +:102F8000992319F020937C01089510927C0180917F +:102F90007D01882371F180913502843041F5809163 +:102FA000E9008F702091EC00922F917020FD90E845 +:102FB000892B94E09093E9009091EB0090FF14C06E +:102FC0009091EE0097FF10C09091E80095FF03C02C +:102FD0001092F100F9CF9091E80090FF05C0909118 +:102FE000E8009E779093E8008F708093E90010923C +:102FF0007D01089542E061EC81E00E947B1A42E08D +:1030000061EC82E00E947B1A42E061EC83E00E9466 +:103010007B1A42E261EC84E00C947B1A80913702C7 +:10302000833009F453C030F4813071F0823009F4F8 +:103030008CC008958A3009F478C08B3009F45EC0E2 +:10304000893009F09AC020C080913602813A09F097 +:1030500094C08091E800877F8093E80080913A02D5 +:1030600090913B02892B21F468E08EE791E003C048 +:1030700060E080E090E070E00E94BC198091E80080 +:103080008B778093E800089580913602813209F0B1 +:1030900074C080913A0290913B02892B09F06DC077 +:1030A0008091E800877F8093E8008091E80082FDAE +:1030B00005C0809135028111F8CF5FC08091F10089 +:1030C000809386018091E8008B7753C0809136020F +:1030D000813A09F052C080913A0290913B02892BCB +:1030E00009F04BC08091E800877F8093E8008091D1 +:1030F000E80080FFFCCF80910C0136C08091360241 +:103100008132D9F580913A0290913B02892BA9F541 +:103110008091E800877F8093E8000E94B01A809138 +:10312000380280930C010C94342380913602813252 +:1031300021F58091E800877F8093E8000E94B01A13 +:103140008091390280938701089580913602813AF7 +:10315000A1F48091E800877F8093E8008091E800E7 +:1031600080FFFCCF809187018093F1008091E8007F +:103170008E778093E8000C94B01A089584B7877F07 +:1031800084BF0FB6F894A895809160008861809301 +:103190006000109260000FBE80E880936100109282 +:1031A00061000E94951E0E94021B0E945F1B80917D +:1031B000E20084608093E20081E796E10E945C294E +:1031C00078940E94E91D0E94971E82E091E00E947F +:1031D000041E86EA96E00E94170980913502853028 +:1031E00089F482EA96E00E9417090E949929809149 +:1031F0003302882391F30E94C929882371F30E9426 +:103200005B19EBCF0E94BF1EE8CF292F3327233055 +:103210003105C9F060F42130310581F022303105EB +:1032200009F041C084E790E029EE36E040C0213249 +:103230003105E1F02232310531F135C082E190E013 +:103240002DE537E034C099278130910549F028F009 +:10325000029749F5EBECF6E005C0E5EEF6E002C0BA +:10326000EBEDF6E0849190E09F0121C06430D8F44A +:10327000E62FF0E0EE0FFF1FEC5CFE4F2081318166 +:1032800089E090E014C0643070F470E0FB01EE0F50 +:10329000FF1FE45DFE4F20813181FB01E85DFE4FA1 +:1032A000808190E004C080E090E020E030E0FA010E +:1032B00031832083089580E189BD82E189BD09B40D +:1032C00000FEFDCF8091D8008F7D8093D800809143 +:1032D000E00082608093E0008091E00081FDFCCFFF +:1032E0000895CF92DF92EF92FF920F931F93CF93A7 +:1032F000DF93EC018B016A010E94CF1A811133C068 +:10330000C114D10439F0F60180819181081B190B99 +:10331000C80FD91FE12CF12C0115110519F180916D +:10332000E80085FD16C08091E8008E778093E80064 +:10333000C114D10449F0F60180819181E80EF91E93 +:10334000F182E08285E00FC00E94CF1A882321F32A +:103350000AC089918093F10001501109FFEFEF1A23 +:10336000FF0ADACF80E0DF91CF911F910F91FF909C +:10337000EF90DF90CF90089520913C0230913D0274 +:103380002617370748F06115710539F42091E800D8 +:103390002E772093E80001C0B901FC0120E06115FF +:1033A000710579F1809135028823F1F18530F1F1D1 +:1033B0008091E80083FD3CC08091E80082FD2EC032 +:1033C0008091E80080FFEBCF2091F3008091F20024 +:1033D00090E0922B6115710551F08830910538F419 +:1033E00021912093F100615071090196F3CF21E002 +:1033F000089709F020E08091E8008E778093E8003C +:10340000CECF2111CFCF0AC080913502882361F041 +:10341000853061F08091E80083FD0AC08091E8006A +:1034200082FFF2CF80E0089582E0089583E008955E +:1034300081E0089520913C0230913D022617370724 +:1034400048F06115710539F42091E8002E7720933A +:10345000E80001C0B901FC0120E06115710591F19E +:1034600080913502882309F440C0853009F43FC0BB +:103470008091E80083FD3DC08091E80082FD2FC06F +:103480008091E80080FFE9CF2091F3008091F20065 +:1034900090E0922B6115710559F08830910540F448 +:1034A00024912093F1003196615071090196F2CF79 +:1034B00021E0089709F020E08091E8008E77809362 +:1034C000E800CBCF2111CCCF0AC0809135028823F0 +:1034D00061F0853061F08091E80083FD0AC0809141 +:1034E000E80082FFF2CF80E0089582E0089583E053 +:1034F000089581E00895982F973068F59093E9003A +:10350000981739F07091EC002091ED005091F00087 +:1035100003C0242F762F50E021FD02C09F5FECCF27 +:103520003091EB003E7F3093EB003091ED003D7F1A +:103530003093ED003091EB0031603093EB007093ED +:10354000EC002093ED005093F0002091EE0027FD59 +:10355000E5CF80E008958F708093E90081E00895C1 +:103560008091360287FF11C08091E80082FD05C07E +:10357000809135028111F8CF11C08091E8008B77DE +:103580000BC080913502882349F08091E80080FFCC +:10359000F8CF8091E8008E778093E800089520911D +:1035A000E4003091E50095E64091EC00842F8170B5 +:1035B00040FF23C08091E80080FD1DC0809135024E +:1035C000882399F0853099F08091EB0085FD11C03A +:1035D0004091E4005091E5002417350729F39150FC +:1035E00011F09A01E1CF84E0089582E0089583E02C +:1035F000089581E0089580E008954091E80042FF39 +:10360000DDCF08950E94701B0E94781BE0EEF0E071 +:10361000808181608083E8EDF0E080818F77808316 +:1036200019BCA7EDB0E08C918E7F8C9380818F7E4A +:1036300080831092340208950F931F93CF93DF93EA +:103640000E94701B0E94781BC8EDD0E088818F77A4 +:10365000888388818068888388818F7D888319BC6E +:1036600010923502109231021092330210923202FF +:1036700000EE10E0F80180818B7F8083888181607B +:10368000888342E060E080E00E947B1AE1EEF0E097 +:1036900080818E7F8083E2EEF0E080818160808394 +:1036A000808188608083F80180818E7F808388811B +:1036B00080618883DF91CF911F910F910895E8ED8C +:1036C000F0E080818F7E8083E7EDF0E08081816093 +:1036D000808384E082BF81E0809334020C941C1BC1 +:1036E000E8EDF0E080818E7F80831092E200089503 +:1036F0001092DA001092E10008951F920F920FB617 +:103700000F9211242F933F934F935F936F937F9367 +:103710008F939F93AF93BF93EF93FF938091E100BB +:1037200082FF0BC08091E20082FF07C08091E10020 +:103730008B7F8093E1000E94B9178091DA0080FFAF +:103740001FC08091D80080FF1BC08091DA008E7F5F +:103750008093DA008091D90080FF0DC080E189BD9F +:1037600082E189BD09B400FEFDCF81E0809335027E +:103770000E94921705C019BC109235020E94A4172E +:103780008091E10080FF19C08091E20080FF15C0A8 +:103790008091E2008E7F8093E2008091E200806160 +:1037A0008093E2008091D80080628093D80019BC99 +:1037B00085E0809335020E94AF178091E10084FF7D +:1037C00030C08091E20084FF2CC080E189BD82E19D +:1037D00089BD09B400FEFDCF8091D8008F7D809314 +:1037E000D8008091E1008F7E8093E1008091E2001B +:1037F0008F7E8093E2008091E20081608093E200FE +:1038000080913102882311F084E007C08091E300A9 +:1038100087FD02C081E001C083E0809335020E94F1 +:10382000B3178091E10083FF29C08091E20083FFFC +:1038300025C08091E100877F8093E10082E0809342 +:103840003502109231028091E1008E7F8093E10079 +:103850008091E2008E7F8093E2008091E20080619F +:103860008093E20042E060E080E00E947B1A809159 +:10387000F00088608093F0000E94AB17FF91EF91F9 +:10388000BF91AF919F918F917F916F915F914F9178 +:103890003F912F910F900FBE0F901F9018951F9280 +:1038A0000F920FB60F9211242F933F934F935F9374 +:1038B0006F937F938F939F93AF93BF93CF93DF9338 +:1038C000EF93FF93C091E900CF708091EC00D82F67 +:1038D000D17080FDD0E81092E9008091F000877FE0 +:1038E0008093F00078940E94931C1092E9008091DC +:1038F000F00088608093F000CD2BCF70C093E9007A +:10390000FF91EF91DF91CF91BF91AF919F918F91F7 +:103910007F916F915F914F913F912F910F900FBECB +:103920000F901F9018951F93CF93DF93CDB7DEB7FD +:10393000AA970FB6F894DEBF0FBECDBFE6E3F2E064 +:103940008091F100819322E0EE33F207C9F70E94E3 +:103950000E188091E80083FF24C180913602909177 +:103960003702492F50E04A30510508F01AC1FA01D8 +:10397000E15AFF4F0C949D36803881F0823809F06F +:1039800010C180913A028F708093E9008091EB0022 +:1039900085FB882780F91092E90006C080913202E9 +:1039A00090913302911182609091E800977F9093FB +:1039B000E8008093F1001092F100C8C0282F2D7FFD +:1039C00009F0EFC0882319F0823061F0EAC08091DD +:1039D0003802813009F0E5C0933009F080E080932F +:1039E00033022BC080913802811127C080913A02A6 +:1039F0008F7009F4D6C08093E9002091EB0020FF7E +:103A00001CC0933021F48091EB00806214C090912F +:103A1000EB0090619093EB0021E030E0A90102C03F +:103A2000440F551F8A95E2F74093EA001092EA008E +:103A30008091EB0088608093EB001092E900809108 +:103A4000E800877F86C08111ACC0109138021F77D3 +:103A50008091E3008078812B8093E3008091E800DF +:103A6000877F8093E8000E94B01A8091E80080FF71 +:103A7000FCCF8091E30080688093E300111102C0C5 +:103A800082E001C083E0809335028BC08058823091 +:103A900008F087C080913802909139028C3D53E044 +:103AA000950779F583E08A838AE289834FB7F89492 +:103AB000DE01139620E03EE051E2E32FF0E0509368 +:103AC0005700E49120FF03C0E295EF703F5FEF7075 +:103AD0008E2F90E0EA3010F0C79601C0C0968D930B +:103AE0009D932F5F243149F74FBF8091E800877F76 +:103AF0008093E8006AE270E0CE0101960E94BC1952 +:103B000014C0AE014F5F5F4F60913A020E940519E9 +:103B1000BC01892B09F445C09091E800977F9093F0 +:103B2000E80089819A810E941A1A8091E8008B77B7 +:103B30008093E80036C08038A1F58091E800877F47 +:103B40008093E800809131028093F1008091E80039 +:103B50008E778093E8000E94B01A23C0811121C0A3 +:103B6000809138029091390299270297D4F480917C +:103B7000E800877F8093E8008091380280933102CB +:103B80000E94B01A80913102811106C08091E30039 +:103B900087FD02C081E001C084E0809335020E946D +:103BA000FA178091E80083FF0AC08091E800877FC0 +:103BB0008093E8008091EB0080628093EB00AA96EE +:103BC0000FB6F894DEBF0FBECDBFDF91CF911F912E +:103BD0000895CF93809135028823A1F0C091E90028 +:103BE000CF709091EC00892F817090FD80E8C82BF8 +:103BF0001092E9008091E80083FD0E94931CCF7031 +:103C0000C093E900CF91089590938D0180938C012A +:103C10000895E0918C01F0918D01309721F0019091 +:103C2000F081E02D099480E00895EF92FF921F93B8 +:103C3000CF93DF93F82E192FE0918C01F0918D0135 +:103C40003097A9F10280F381E02D09958091E6017A +:103C500082FF2DC080FF04C08AE598E00E9417090A +:103C6000CF2DD12F18E084E5E82E88E0F82E809142 +:103C7000E60180FF0BC088811F928F93FF92EF9225 +:103C80000E94B0090F900F900F900F901150219645 +:103C90001111EDCF8091E60180FF09C082E598E027 +:103CA000DF91CF911F91FF90EF900C941709DF9156 +:103CB000CF911F91FF90EF900895E0918C01F091CA +:103CC0008D01309721F00480F581E02D099408954D +:103CD00020918A0130918B012817390771F0909358 +:103CE0008B0180938A01E0918C01F0918D013097D6 +:103CF00021F00680F781E02D099408952091880134 +:103D0000309189012817390771F0909389018093C8 +:103D10008801E0918C01F0918D01309721F00084B1 +:103D2000F185E02D0994089508950C94941E0E9445 +:103D30000E2A0E948A0E0E94DC2A0E9455340C949E +:103D40005C13CF93DF931F92CDB7DEB79091E6015E +:103D500092FF10C090FF0EC01F928F932CE638E0A8 +:103D60003F932F9389830E94B0090F900F900F907B +:103D70000F9089810F90DF91CF910C94360E4F9266 +:103D80005F927F928F929F92AF92BF92CF92DF927B +:103D9000EF92FF920F931F93CF93DF9300D000D049 +:103DA0001F92CDB7DEB70E94CF0E99E9C92E91E0E0 +:103DB000D92E04E010E0AA24A394B12C702E802FF9 +:103DC0000E94520F4C01F601529042906F0148261A +:103DD000592641145104A1F40150110978F78FEFCD +:103DE00089838A831B820E94172A8160782F9D8392 +:103DF0008C8349815A816B818D810E946F1F38C0ED +:103E00008091E60181FD0E945B0F2DE030E075019D +:103E1000022E02C0EE0CFF1C0A94E2F7C2018E21B2 +:103E20009F21892B09F129837A828E209F2091E09E +:103E3000892809F490E09B830E94172A8160782FDB +:103E40009D838C8349815A816B818D810E946F1F74 +:103E5000000F111FF801E157FE4F80819181E82684 +:103E6000F926F182E08204C02150310980F6B4CFF6 +:103E70000E94572E0E94091E90918E018917D1F041 +:103E80000E94091E80938E010F900F900F900F904B +:103E90000F90DF91CF911F910F91FF90EF90DF90E6 +:103EA000CF90BF90AF909F908F907F905F904F90FA +:103EB0000C94A11E0F900F900F900F900F90DF9118 +:103EC000CF911F910F91FF90EF90DF90CF90BF9017 +:103ED000AF909F908F907F905F904F900895CF9379 +:103EE000DF93CDB7DEB72B970FB6F894DEBF0FBECA +:103EF000CDBF4F83588769877A878B87DE011196FC +:103F000086E0FD0111928A95E9F785E0FE0137967A +:103F100001900D928A95E1F749815A816B817C81EC +:103F20008D819E810E94CC252B960FB6F894DEBF22 +:103F30000FBECDBFDF91CF910895CF93C82F8823B7 +:103F400009F4C1C0823859F40E94091E81FDBBC02A +:103F500089E30E94A7280E942D2989E30CC0833899 +:103F600079F40E94091E80FDAEC083E50E94A72857 +:103F70000E942D2983E50E94C428CF910C942D29FD +:103F8000843859F40E94091E82FD9DC087E40E9476 +:103F9000A7280E942D2987E4EECF8CEF8C0F813A61 +:103FA00048F48C2F0E94003381118DC08C2F0E9409 +:103FB000A728E3CF80E28C0F883048F4C77081E0F7 +:103FC00001C0880FCA95EAF70E94E628D6CF8BE594 +:103FD0008C0F833078F4C53A29F0C63A31F083E883 +:103FE00090E005C081E890E002C082E890E0CF91C7 +:103FF0000C94681E88E58C0F833108F064C0C83AC1 +:1040000039F1C93A41F1CA3A49F1CB3A51F1CC3AC6 +:1040100059F1CD3A61F1C03B69F1CE3A71F1CF3A35 +:1040200079F1C13B81F1C23B89F1C33B91F1C43BC2 +:1040300099F1C53BA1F1C63BA9F1C73BB1F1C83B22 +:10404000B9F1C93BC1F1CA3BC9F180E090E038C089 +:1040500082EE90E035C089EE90E032C08AEE90E0CA +:104060002FC085EB90E02CC086EB90E029C087EB59 +:1040700090E026C08CEC90E023C08DEC90E020C056 +:1040800083E891E01DC08AE891E01AC082E991E0DE +:1040900017C084E991E014C081E292E011C083E28C +:1040A00092E00EC084E292E00BC085E292E008C08C +:1040B00086E292E005C087E292E002C08AE292E0E6 +:1040C000CF910C947E1ECF910895882309F44BC0A4 +:1040D000823859F40E94091E81FF45C089E30E947D +:1040E000A7280E942D2989E30CC0833871F40E940F +:1040F000091E80FF38C083E50E94A7280E942D2951 +:1041000083E50E94C4280C942D29843859F40E9418 +:10411000091E82FF28C087E40E94A7280E942D293B +:1041200087E4EFCF9CEF980F913A58F390E2980F05 +:10413000983050F4877091E001C0990F8A95EAF7A2 +:10414000892F0E94EC28DFCF9BE5980F933020F455 +:1041500080E090E00C94681E885A833120F480E05F +:1041600090E00C947E1E0895882321F00E94E6289A +:104170000C942D290895882321F00E94EC280C949A +:104180002D2908958F929F92AF92BF92CF92DF9286 +:10419000EF92FF920F931F93CF93DF931F92CDB7B0 +:1041A000DEB77C01C62E472FFC01058102950F70FA +:1041B0001281112321F079830E94032949814983C7 +:1041C0000E94A0284981882381F0112371F080E2A8 +:1041D0008C0D883050F082E00E9489280E94A0282F +:1041E00091E0D82ED926498101C0D12CE42FE29547 +:1041F000EF708E2F90E0FC01E759FF4F0C949D3635 +:10420000842F807F042F0F70882311F00295007F88 +:10421000112389F0002309F488C180E28C0D8830D5 +:1042200020F4802F0E94E62803C0802F0E94F628E9 +:104230000E942D297AC18C2D0E946520002309F44B +:10424000AAC180E28C0D883020F4802F0E94EC28D7 +:1042500003C0802F0E94FC280E942D299CC1942F0E +:10426000907F842F8F70903211F08295807FCC20C8 +:1042700021F0F1E0CF16A1F01DC0112339F0002389 +:1042800019F1013009F50E94162985C1002319F0A2 +:10429000013009F480C189830E941929898103C1F1 +:1042A000112321F0063008F076C10EC0053008F069 +:1042B00072C1F9C0112359F0002331F0F701958143 +:1042C00090FF33C19F7095830E94B42064C1002386 +:1042D00009F4E9C030C1842F86958695837019F062 +:1042E000813061F058C1112321F08C2D942F9370EF +:1042F00002C080E090E00E94681E4DC1112321F0B1 +:104300008C2D942F937002C080E090E00E947E1E5E +:1043100042C18C2D112319F00E94DD2C02C00E9495 +:10432000452D0E94CA2D37C1842F837009F04DC0DE +:10433000111131C12C2D229526952770220F220FA5 +:104340006C2D6F70862F90E0A0E0B0E04C015D0115 +:10435000022E04C0880C991CAA1CBB1C0A94D2F71C +:10436000C4FE12C08FE090E0A0E0B0E004C0880F6F +:10437000991FAA1FBB1F2A95D2F7BC01CD016095DA +:1043800070958095909503C060E070E0CB01242F7C +:10439000269526952370223051F080F468297929DA +:1043A0008A299B29213071F00E941527F4C06829C1 +:1043B00079298A299B290E943127EDC00E9415275F +:1043C000C501B4010E94F926E6C0112319F0842F1B +:1043D000817001C08695882309F4DDC02C2D2295BB +:1043E00026952770220F220F6C2D6F70862F90E07C +:1043F000A0E0B0E04C015D01022E04C0880C991CC5 +:10440000AA1CBB1C0A94D2F7C4FE12C08FE090E035 +:10441000A0E0B0E004C0880F991FAA1FBB1F2A9517 +:10442000D2F7BC01CD01609570958095909503C041 +:1044300060E070E0CB01242F269526952370223072 +:1044400051F080F4682979298A299B29213071F05B +:104450000E94EF27A0C0682979298A299B290E94F8 +:104460000B2899C00E94EF27C501B4010E94D327F1 +:1044700092C08C2D90E0FC01E05EF109E531F10580 +:1044800008F04FC0E758FF4F0C949D360C2D0F706D +:10449000842F8F71112321F00E946C27802F14CF5D +:1044A0000E948D27802F0E94BB2075C0112341F0F0 +:1044B000053008F070C0842F8F710E94B2276BC046 +:1044C000063008F068C0F7CF112339F0842F8F71C0 +:1044D0000E946C2760C01123C9F3842F8F710E9442 +:1044E0008D2759C0112329F0842F8F710E945727DF +:1044F00052C00E944D274FC0112351F0142F1F713D +:10450000812F0E946C2763E0812F0E94802843C086 +:1045100081E00E9489280230F0F182E00E9489281F +:104520003AC0112331F0002389F28C2D0E949D1F87 +:1045300032C0002391F28C2D0E9465202CC04F7058 +:104540006C2DC7010E94A40D0E94712624C0111178 +:1045500022C0842F8F70823099F038F4882369F05C +:104560008130C9F40E94903416C0833061F08430E9 +:1045700091F48C2D0E941B350EC00E9466340BC036 +:104580000E94BF3408C00E94E53405C04F706C2DF6 +:10459000C7010E94030ADD20F1F00E947C2880FD03 +:1045A0001AC0F70112820E9476280E946C27C70168 +:1045B0000E94F9220E9476280F90DF91CF911F91DF +:1045C0000F91FF90EF90DF90CF90BF90AF909F90B2 +:1045D0008F900C948D270F90DF91CF911F910F91A9 +:1045E000FF90EF90DF90CF90BF90AF909F908F9013 +:1045F00008950F931F93CF93DF93EC018B819C81E0 +:10460000892BC9F089818F3F19F488818F3F99F0F8 +:10461000CE010E946E0A882371F0688179818A81B7 +:104620000E9472288C010E9427280E94EE26B80161 +:10463000CE010E94C220DF91CF911F910F9108956A +:104640000E9403290E9413290E94D5280E942D2927 +:104650000E94FC2E0E94CA2D80E090E00E94681EFD +:1046600080E090E00C947E1E0E94F3280C9420239E +:104670000E946728292F22952F702C3030F42A3081 +:1046800048F42250223098F405C02C3061F02F30CD +:1046900051F00DC0803F69F018F4803E40F409C02D +:1046A000843F29F406C093FB882780F9089580E0B1 +:1046B000089581E00895CF93DF9300D000D01F923A +:1046C000CDB7DEB70F900F900F900F900F90DF9146 +:1046D000CF910895CF93DF9300D000D000D0CDB715 +:1046E000DEB726960FB6F894DEBF0FBECDBFDF91C2 +:1046F000CF9108951F93CF93DF93C091990116E056 +:1047000080919A01C81799F0D0E01C9FF0011D9F7D +:10471000F00D1124E556FE4F408151816281738175 +:10472000848195810E946A232196C770E9CFDF9129 +:10473000CF911F9108954091CB015091CC01609190 +:10474000CD017091CE018091CF019091D0010C9458 +:104750006A238091D00182958F7009F054C08091B6 +:10476000CD01882309F44FC080919901A0919A014D +:104770004091CE015091CF016091CB017091CC015D +:10478000B6E08A1709F43FC090E041155105C1F128 +:104790007F3F11F46F3FA1F1B89FF001B99FF00D79 +:1047A0001124E556FE4F218127132AC020812613AC +:1047B00027C02281211124C0238134812417350789 +:1047C00010F421503109241B350B283C3105C0F46D +:1047D0002091D0012F7020612093D00126E0289FE6 +:1047E000F001299FF00D1124E056FE4F80818F705B +:1047F000806180838BEC91E00E94F9220C947A23F3 +:1048000001968770BECF0895CF92DF92EF92FF920C +:104810000F931F93CF93DF93CDB7DEB762970FB699 +:10482000F894DEBF0FBECDBF8C0185E0F801DE013C +:104830001D9601900D928A95E1F7D8014C91119641 +:104840005C91119712966C918091CE019091CF015D +:10485000009709F475C13091CB017091CC017F3F75 +:1048600019F43F3F09F46CC1F801C380D480E09093 +:10487000CD01EE2009F4BEC02091D001C816D906A2 +:1048800028F0D601A81BB90BCD0104C080959095E6 +:104890008C0D9D1DFF24F394883C910578F0F12C3C +:1048A000207F09F0C4C07C2DD98AC88A89890E94DA +:1048B0005B238BEC91E00E94F922AFC0822F807FB6 +:1048C00009F045C0571313C0431311C061110FC045 +:1048D0002F7020612093D0010E949B238BEC91E0EC +:1048E0000E94F9228091D001F80185832EC0CD2845 +:1048F00019F15F3F11F44F3FF9F0F62E61111CC022 +:104900008091990120919A0136E0821709F45BC0E9 +:1049100090E0389FF001399FF00D1124E556FE4FCD +:104920007181571306C07081471303C072817111E2 +:1049300003C001968770E9CFF62E662309F41CC1E7 +:104940008091D00181608093D001F12C15C1571363 +:1049500009C0431307C0611105C08091D001F8015F +:104960008583C8C04D875E878D859E856A8B0E9432 +:1049700038236A898823D1F16623C1F12091D001BF +:10498000822F82958F7090E0029774F08091CB0116 +:104990009091CC0198878F831986DB86CA862C87F5 +:1049A000CE0107960E94F92286E0F801ABECB1E057 +:1049B00001900D928A95E1F70E94A9230E949B2302 +:1049C000FF24F394D9C04D875E878D859E850E9414 +:1049D0006728292F22952F70223008F0C1C09F70C0 +:1049E00009F0BBC0805E883008F4C6C0C8010E94D0 +:1049F000F922E6CFC816D90608F453C0F601E81B21 +:104A0000F90BCF01883C910508F450C0F12C7C2DA6 +:104A1000D98AC88A89890E945B23EBECF1E086E0A1 +:104A2000DF011D928A95E9F70E949B23A5C05713C9 +:104A300014C0431312C0611110C08091D001F8015D +:104A40008583C8010E94F92286E0EBECF1E0DF01EA +:104A50001D928A95E9F7FE2C8FC04D875E878D8564 +:104A60009E856A8B0E9438236A89882309F4BECF09 +:104A7000662309F4BBCF2091D001822F82958F70DD +:104A800090E002970CF490CF8091CB019091CC01F3 +:104A90009A8389831B82DD82CC822E83CE0101968C +:104AA00081CF809590958C0D9D1DACCFF62E662301 +:104AB00009F49CCF571333C0431331C02091D00168 +:104AC00020FD24C0822F82958F70482F50E0411521 +:104AD0005105E1F0D80115962C9315974F305105EB +:104AE00049F08F5F982F9295907F822F8F70892B3E +:104AF00015968C93C8010E94F92286E0F801ABEC70 +:104B0000B1E001900D928A95E1F78ECF86E0F80131 +:104B1000ABECB1E001900D928A95E1F72DC04D8785 +:104B20005E878D859E850E94382381113DCF8091BF +:104B3000D00181608093D001C8010E94F9221CC07D +:104B4000662309F453CF4D875E878D859E850E942D +:104B50003823882309F44ACF27CF811143CF0CC0D3 +:104B6000243008F043CF9F7009F43CCFD80115964C +:104B70009C91907F09F036CF8F2D62960FB6F894F6 +:104B8000DEBF0FBECDBFDF91CF911F910F91FF9080 +:104B9000EF90DF90CF9008951F93CF93DF93CDB721 +:104BA000DEB72C970FB6F894DEBF0FBECDBF4F8394 +:104BB000588769877A878B879C87CE0107960E94E2 +:104BC0000424882371F08A859B85892B09F441C0D0 +:104BD00088858F3F09F065C08F818F3F09F061C0E4 +:104BE00038C086E0FE013796DE01119601900D92E5 +:104BF0008A95E1F76A857B856115710551F1FF8121 +:104C0000E885EF3F11F4FF3F21F120919A0130E058 +:104C1000C9010196877099274091990150E0841746 +:104C2000950709F447C0F983EA837D836C8396E096 +:104C3000929FD001939FB00D1124A556BE4FFE0147 +:104C4000319601900D929A95E1F780939A010E9416 +:104C50007A2316E08091990190919A018917B9F110 +:104C6000189FC001112485569E4F0E94042488235A +:104C700071F1E09199011E9FF0011124E556FE4F5C +:104C80004081518162817381848195810E946A2370 +:104C90008091990190E001968770992780939901FE +:104CA000D9CF4F81588569857A858B859C850E94EF +:104CB0006A23CFCF0E94342310929A011092990157 +:104CC000EBECF1E086E0DF011D928A95E9F72C9686 +:104CD0000FB6F894DEBF0FBECDBFDF91CF911F910D +:104CE0000895EF92FF920F931F93CF93DF938C0160 +:104CF000892B09F46CC0F12CEE24E394E801219691 +:104D0000F8018491843740F4843008F051C0813038 +:104D100081F0823019F15BC0853709F444C0A8F1F5 +:104D20009CE7980F903708F052C08F770E9465205B +:104D300041C00E5F1F4FFE01849190E2980F9830A2 +:104D400050F48770FE2D01C0FF0F8A95EAF78F2F70 +:104D50000E94062914C00E949D1F2DC00E5F1F4F88 +:104D6000FE01849190E2980F983060F48770FE2DD8 +:104D700001C0FF0F8A95EAF78F2F0E940C290E942D +:104D80002D2919C00E94652016C00E5F1F4FFE011D +:104D9000C491CC2381F08FE99FE00197F1F700C027 +:104DA0000000C150F6CF0E5F1F4FFE01F49003C00C +:104DB0000E949D1F8E018F2D882309F49FCFEFE95C +:104DC000FFE03197F1F700C000008150F5CFDF918F +:104DD000CF911F910F91FF90EF90089508956093E8 +:104DE000D5017093D6018093D7019093D8010C948C +:104DF00020230F931F930091D5011091D60120918C +:104E0000D7013091D801DC01CB01802B912BA22B53 +:104E1000B32B8093D5019093D601A093D701B09383 +:104E2000D8011F910F910C9420230F931F93009191 +:104E3000D5011091D6012091D7013091D801DC0124 +:104E4000CB0180239123A223B3238093D501909398 +:104E5000D601A093D701B093D8011F910F910C9464 +:104E600020230F931F930091D5011091D60120911B +:104E7000D7013091D801DC01CB0180279127A227EF +:104E8000B3278093D5019093D601A093D701B09317 +:104E9000D8011F910F910C9420231092D1011092F0 +:104EA000D2011092D3011092D4010C94202341E03E +:104EB00050E060E070E004C0440F551F661F771F8C +:104EC0008A95D2F74093D1015093D2016093D301D8 +:104ED0007093D4010C94202341E050E060E070E036 +:104EE00004C0440F551F661F771F8A95D2F7809123 +:104EF000D1019091D201A091D301B091D401482B5E +:104F0000592B6A2B7B2B4093D1015093D201609394 +:104F1000D3017093D4010C94202341E050E060E071 +:104F200070E004C0440F551F661F771F8A95D2F7A3 +:104F300040955095609570958091D1019091D201E6 +:104F4000A091D301B091D401482359236A237B2334 +:104F50004093D1015093D2016093D3017093D40157 +:104F60000C94202341E050E060E070E004C0440F66 +:104F7000551F661F771F8A95D2F78091D1019091B6 +:104F8000D201A091D301B091D401482759276A27B3 +:104F90007B274093D1015093D2016093D30170934A +:104FA000D4010C9420230F931F930091D1011091F1 +:104FB000D2012091D3013091D401DC01CB01802BAF +:104FC000912BA22BB32B8093D1019093D201A0936C +:104FD000D301B093D4011F910F910C9420230F9310 +:104FE0001F930091D1011091D2012091D3013091F2 +:104FF000D401DC01CB0180239123A223B32380932E +:10500000D1019093D201A093D301B093D4011F9109 +:105010000F910C9420230F931F930091D1011091B5 +:10502000D2012091D3013091D401DC01CB01802742 +:105030009127A227B3278093D1019093D201A09307 +:10504000D301B093D4011F910F910C9420230895A4 +:10505000CF92DF92EF92FF920F931F93CF93DF9344 +:105060008C01C090D101D090D201E090D301F0909A +:10507000D4018091D5019091D601A091D701B09132 +:10508000D801C82AD92AEA2AFB2ACFE1D0E0D701E1 +:10509000C6010C2E04C0B695A795979587950A94DE +:1050A000D2F780FD04C0219790F780E007C0B801D7 +:1050B0008C2F0E94010C0197B1F38C2FDF91CF91BF +:1050C0001F910F91FF90EF90DF90CF900895CF93B5 +:1050D000DF93EC010E942828BE010E94010CDF91A1 +:1050E000CF910895CB010E94672808958091D9013E +:1050F00085958595859508958091D9018770089546 +:1051000098E0899F90011124262B2093D9010C94BB +:105110006C272091D901809582238093D901982F03 +:10512000977069F430E0482F082E000C550B2417B7 +:10513000350729F08595859585950C948D270895DB +:105140009091D901977081E009F480E00895209151 +:105150000D0130910E01F90132969FEF40E051911F +:10516000851789F09F3F19F4511101C0942F4F5FAB +:105170004630A9F79F3F39F0F901E90FF11D97FD7E +:10518000FA9582830895089520910D0130910E01C2 +:10519000F9013296285F3F4F9081891301C0108238 +:1051A0003196E217F307C1F7089581E090E0E091AE +:1051B0000D01F0910E01E80FF91F10820196883061 +:1051C0009105A9F708958091E50108959091E50171 +:1051D000892B8093E501089580959091E5018923BD +:1051E0008093E50108951092E50108959091E401FE +:1051F000892B8093E401089580959091E40189239F +:105200008093E40108951092E40108959091E301E0 +:10521000892B8093E301089580959091E301892380 +:105220008093E30108951092E30108958093DA01D9 +:1052300008951092DA01089580910D0190910E0168 +:10524000FC0131969C01285F3F4F80E091919111C4 +:105250008F5FE217F307D1F70895E0910D01F09108 +:105260000E018091E5018083E0910D01F0910E0126 +:1052700090818091E401892B8083E0910D01F09170 +:105280000E0190818091E301892B80838091DA0166 +:10529000882361F0E0910D01F0910E019081892B3E +:1052A00080830E941C2981111092DA0180910D01E6 +:1052B00090910E010C94151E909347018093460126 +:1052C000089520E0009739F0AC0141505109842342 +:1052D00095232F5FF7CF822F08958295982F937390 +:1052E00044E0949F900111248C7C86958695282B10 +:1052F000822F8575880F2A7A2695822B08951F9311 +:10530000CF93DF931F92CDB7DEB799830E946D29AB +:10531000182F9981892F0E946D29212F30E0322F7B +:105320002227A901482BCA010F90DF91CF911F912D +:10533000089580913502843051F11092E70120E404 +:1053400088E190E00FB6F894A895809360000FBEB6 +:105350002093600080E00E94D90980E00E94360E10 +:1053600083B7817F846083BF83B7816083BF789474 +:10537000889583B78E7F83BF0FB6F894A8958091E8 +:105380006000886180936000109260000FBE0895F5 +:10539000089580E00E94D9090E944C0E0E94CF0E11 +:1053A0000E94C8290E94950F91E0811101C090E0F0 +:1053B000892F08950E94342380E00E94D9090E9419 +:1053C00055340E94091E0C94360E1F920F920FB690 +:1053D0000F9211248F939F93AF93BF938091E70116 +:1053E000811113C08091E8019091E901A091EA0137 +:1053F000B091EB014196A11DB11D8093E8019093FE +:10540000E901A093EA01B093EB01BF91AF919F91A5 +:105410008F910F900FBE0F901F90189582E084BD62 +:1054200093E095BD9AEF97BD80936E0008952FB7D6 +:10543000F8948091E8019091E901A091EA01B0917E +:10544000EB012FBF0895CF92DF92EF92FF920F935F +:105450001F932FB7F8944091E8015091E9016091B2 +:10546000EA017091EB012FBF6A017B01EE24FF245A +:105470008C0120E030E0C016D106E206F30610F4FD +:10548000415051099A01281B390BC9011F910F91F5 +:10549000FF90EF90DF90CF9008951F920F920FB67C +:1054A0000F9211248F939F93AF93BF938091E80144 +:1054B0009091E901A091EA01B091EB010196A11D43 +:1054C000B11D8093E8019093E901A093EA01B093A4 +:1054D000EB01BF91AF919F918F910F900FBE0F90F5 +:1054E0001F9018950E94021BF8942FEF87EA91E60F +:1054F000215080409040E1F700C0000087E090EB31 +:10550000DC0180933F0290934002A0934102B0934C +:1055100042029CE088E10FB6F894A8958093600061 +:105520000FBE90936000FFCFAF92BF92CF92DF92F9 +:10553000EF92FF920F931F93CF93C4E0CC24C394B8 +:10554000D12CE82EF12C8C2F0E94520F5C010DE023 +:1055500010E0C601002E02C0880F991F0A94E2F7DE +:105560008A219B21892B51F0602F7C2F80E00E94A3 +:10557000A70DE816F90611F481E006C001501109E3 +:1055800040F7C15000F780E0CF911F910F91FF903D +:10559000EF90DF90CF90BF90AF900895CF93C82F3A +:1055A0008CE20E94942A882321F08C2FCF910C94B6 +:1055B000942A80E0CF910895CF930E942C2C8111E2 +:1055C00002C00E940D2C8CE898E00E941709C5E6E5 +:1055D000C15049F00E94CF0E8FE39CE90197F1F78B +:1055E00000C00000F5CF85E898E00E94170989E225 +:1055F0000E94CE2A81110FC18AE20E94CE2A811117 +:105600000E940D2C85E00E94CE2A81110E94722AF0 +:105610000E94372C8093E60187E00E94CE2A8823DF +:10562000A9F18BE10E94CE2A882351F08091E601F6 +:1056300081FB222720F991E0922790FB81F90EC08F +:105640008EE00E94CE2A882361F08091E60182FBE1 +:10565000222720F991E0922790FB82F98093E601BE +:1056600015C080E10E94CE2A9091E601882341F086 +:1056700093FB222720F981E0822780FB93F904C065 +:10568000892F809580FB90F99093E6018091E60147 +:105690000E943B2C0E94492C90E09093F80180934B +:1056A000F70180EE0E94CE2A882341F08091F70115 +:1056B000982F909590FB80F98093F70189E30E94E1 +:1056C000CE2A882359F08091F70181FB222720F907 +:1056D00091E0922790FB81F98093F70182EE0E947E +:1056E000CE2A882359F08091F70182FB222720F9E6 +:1056F00091E0922790FB82F98093F70186EE0E9459 +:10570000CE2A882359F08091F70183FB222720F9C4 +:1057100091E0922790FB83F98093F70183EE0E943A +:10572000CE2A882359F08091F70184FB222720F9A3 +:1057300091E0922790FB84F98093F70185E30E9422 +:10574000CE2A882359F08091F70185FB222720F982 +:1057500091E0922790FB85F98093F70181E30E9405 +:10576000CE2A882359F08091F70186FB222720F961 +:1057700091E0922790FB86F98093F70181E10E94E6 +:10578000CE2A882359F08091F70187FB222720F940 +:1057900091E0922790FB87F98093F7018091F701C0 +:1057A0000E944D2C87E20E94CE2AC82F8EE10E94D3 +:1057B000CE2A8111C2608FE10E94CE2A8111C4607D +:1057C00080E20E94CE2A8111C86081E20E94CE2A26 +:1057D0008111C06182E20E94CE2A8111C06283E2FF +:1057E0000E94CE2A8111C06484E20E94CE2A8823BE +:1057F00011F0C06802C0CC2329F08C2F0E94442CE9 +:105800006C2F03C00E94402C682F70E080E090E075 +:10581000CF910C94EF26CF9108956DEE7EEF80E04E +:1058200090E00E94D53660E082E090E00E94B736BA +:1058300060E083E090E00E94B73660E084E090E0B2 +:105840000E94B73660E085E090E00E94B73660E0E5 +:1058500086E090E00C94B73680E090E00E94B1368C +:1058600021E08D3E9E4F09F020E0822F089582E0D6 +:1058700090E00C94A336682F82E090E00C94B73649 +:1058800083E090E00C94A336682F83E090E00C94C2 +:10589000B73684E090E00C94A336682F84E090E063 +:1058A0000C94B73686E090E00C94A336682F86E01F +:1058B00090E00C94B7368091EE0180FF0BC06091B0 +:1058C000120185E0689FB001112475956795759563 +:1058D00067952BC081FF09C06091120185E0689F28 +:1058E000B00111247595679520C082FF07C06091B3 +:1058F000120185E0689FB001112417C09091EF015B +:105900009923D1F060911101961788F72091120127 +:1059100085E0289F90011124929FA001939F500D34 +:10592000112470E0CA010E9489366038710540F484 +:105930006115710519F406C065E070E0862F0895C1 +:105940008FE7089581E008958091EE0180FF08C0FF +:105950006091100170E0759567957595679521C008 +:1059600081FF06C06091100170E07595679519C0C0 +:1059700082FF04C06091100170E010C09091EF01AF +:10598000992399F060910F019617A0F7809110016B +:10599000899FC001112470E00E948936603871052A +:1059A00040F46115710519F406C061E070E0862FBE +:1059B00008958FE7089581E00895803F21F40E94C3 +:1059C0005B2C819504C0813F29F40E945B2C80935D +:1059D000F2010895823F21F40E945B2C819504C05E +:1059E000833F29F40E945B2C8093F1010895893F45 +:1059F00019F40E94A42C05C08A3F31F40E94A42C03 +:105A000081958093F30108958B3F21F40E94A42C8B +:105A1000819504C08C3F29F40E94A42C8093F4014A +:105A20000895843F21F48091F001816017C0853F83 +:105A300021F48091F001826011C0863F21F48091B1 +:105A4000F00184600BC0873F21F48091F0018860F1 +:105A500005C0883F31F48091F00180618093F001AE +:105A600008958D3F21F48091EE0181600BC08E3F3F +:105A700021F48091EE01826005C08F3F29F480916E +:105A8000EE0184608093EE010895803F39F48091A7 +:105A9000F20187FF6CC01092F20169C0813F29F4C6 +:105AA0008091F2011816BCF362C09091F101823F1F +:105AB00029F497FF5CC01092F10159C0833F19F49B +:105AC0001916CCF354C0893F41F48091F3011816A4 +:105AD0000CF04DC01092F3014AC08A3F29F4809126 +:105AE000F30187FF44C0F6CF8B3F39F48091F40176 +:105AF00087FF3DC01092F4013AC08C3F29F4809199 +:105B0000F4011816BCF333C0843F21F48091F001F6 +:105B10008E7F17C0853F21F48091F0018D7F11C0E9 +:105B2000863F21F48091F0018B7F0BC0873F21F4E9 +:105B30008091F001877F05C0883F31F48091F001AA +:105B40008F7E8093F00113C08D3F21F48091EE0190 +:105B50008E7F0BC08E3F21F48091EE018D7F05C0BA +:105B60008F3F29F48091EE018B7F8093EE0180912D +:105B7000F10181110EC08091F20181110AC0809162 +:105B8000F301811106C08091F401811102C01092CD +:105B9000EF0108958091E60183FF7EC088EC98E0D4 +:105BA0000E9417098091F0011F928F9383EC98E077 +:105BB0009F938F930E94B00981EC98E00E9417098F +:105BC0008091F101282F082E000C330B3F938F9307 +:105BD0008EEB98E09F938F930E94B0098CEB98E036 +:105BE0000E9417098091F201282F082E000C330B18 +:105BF0003F938F9389EB98E09F938F930E94B00916 +:105C000087EB98E00E9417098091F301282F082E56 +:105C1000000C330B3F938F9384EB98E09F938F930B +:105C20000E94B00982EB98E00E9417098091F4016C +:105C3000282F082E000C330B3F938F938FEA98E0A8 +:105C40009F938F930E94B0098CEA98E00E941709F5 +:105C50008091EF011F928F9389EA98E09F938F9331 +:105C60000E94B00987EA98E00E9417098091EE012E +:105C70001F928F9384EA98E09F938F930E94B009BC +:105C800081EA98E00E9417098DB79EB74C960FB62F +:105C9000F8949EBF0FBE8DBF80EF91E00E945D1E05 +:105CA0000E94172A9093ED018093EC0108951F93B1 +:105CB000CF93DF938091EC019091ED010E94232A14 +:105CC000AC019091EF01992321F02091130130E074 +:105CD00006C0209114018AE0289F900111244217E8 +:105CE000530708F485C08091F101C091F201D09171 +:105CF000F3011091F401811107C0C11175C0D111D8 +:105D000073C0111171C074C09F3F19F09F5F9093D1 +:105D1000EF01181624F40E945B2C8093F10180910E +:105D2000F10187FF05C00E945B2C81958093F101F2 +:105D30001C1624F40E945B2C8093F2018091F201E6 +:105D400087FF05C00E945B2C81958093F2016091D2 +:105D5000F101662331F1C091F201CC2311F1062E3D +:105D6000000C770B880B990B0E94703523E333E30B +:105D700043E35FE30E94D4350E9438356093F1011C +:105D80006C2FCC0F770B880B990B0E94703523E397 +:105D900033E343E35FE30E94D4350E9438356093D8 +:105DA000F2011D1624F40E94A42C8093F30180912B +:105DB000F30187FF05C00E94A42C81958093F30115 +:105DC000111624F40E94A42C8093F4018091F40114 +:105DD00087FF05C00E94A42C81958093F401DF9178 +:105DE000CF911F910C94CA2D9F3F09F08FCFA0CF68 +:105DF000DF91CF911F910895E0EFF1E085E0DF01A1 +:105E00001D928A95E9F71092EF011092EE01089524 +:105E10008BEE9AE00E9417091F9281E08F931F92E8 +:105E200085E08F938DE99AE09F938F930E94B0094C +:105E30000F900F900F900F900F900F900895833058 +:105E4000E9F128F4813061F0823009F1089585305C +:105E500009F462C008F449C0863009F474C008959A +:105E600080911401262F30E0280F311D2F3F31057E +:105E700024F4680F6093140103C08FEF8093140122 +:105E8000809114011F928F9386ED99E072C08091EA +:105E90001301262F30E0280F311D2F3F310524F448 +:105EA000680F6093130103C08FEF809313018091FB +:105EB00013011F928F9384EC99E05BC080911201D3 +:105EC000262F30E0280F311D2F3F310524F4680FB5 +:105ED0006093120103C08FEF809312018091120131 +:105EE0001F928F9381EB99E044C080911101262F7E +:105EF00030E0280F311D2F3F310524F4680F6093E7 +:105F0000110103C08FEF80931101809111011F9245 +:105F10008F938CE999E02DC080911001262F30E0FD +:105F2000280F311D2F3F310524F4680F60931001B5 +:105F300003C08FEF80931001809110011F928F9307 +:105F400083E899E016C080910F01262F30E0280FDA +:105F5000311D2F3F310524F4680F60930F0103C0FA +:105F60008FEF80930F0180910F011F928F9388E62E +:105F700099E09F938F930E94B0090F900F900F901C +:105F80000F900895833081F128F4813059F08230E8 +:105F9000D1F00895853009F449C0B8F1863009F48C +:105FA00056C0089580911401681720F4861B8093D1 +:105FB000140102C010921401809114011F928F935A +:105FC00089E599E054C080911301681720F4861B7D +:105FD0008093130102C010921301809113011F924C +:105FE0008F9387E499E043C080911201681720F4F1 +:105FF000861B8093120102C010921201809112013F +:106000001F928F9384E399E032C080911101681749 +:1060100020F4861B8093110102C01092110180911F +:1060200011011F928F938FE199E021C0809110019F +:10603000681720F4861B8093100102C01092100193 +:10604000809110011F928F9386E099E010C080919B +:106050000F01681720F4861B80930F0102C0109275 +:106060000F0180910F011F928F938BEE98E09F9309 +:106070008F930E94B0090F900F900F900F9008958A +:10608000CF93C82F1F928F9380EF9BE09F938F93A6 +:106090000E94B00981E090E0A0E0B0E0BC01CD0139 +:1060A00004C0660F771F881F991FCA95D2F70E94F8 +:1060B000EF260F900F900F900F90CF910C943423F8 +:1060C000CF938732B0F58E3108F088C28E3009F454 +:1060D00002C200F5873009F4CBC1A8F4863009F07C +:1060E00083C28091E601817F8E7F8093E60187E401 +:1060F0009DE00E9417098BE191E10E94170981E060 +:106100008093F601B3C1883009F43FC08B3009F4A5 +:10611000A9C16AC2863109F424C220F4803109F48D +:10612000EEC162C2893109F405C28B3109F4BFC1E5 +:106130005BC2883309F496C150F4893209F450C225 +:10614000853309F44DC2873209F44AC24DC2833403 +:1061500009F446C228F48A3308F446C2895341C27E +:10616000883409F041C20E9434238FEF90E10E94ED +:1061700017099FEF23ED80E3915020408040E1F725 +:1061800000C000000E94722A71C18FE191E10E945B +:10619000170981E890E10E9417090E94402C1F9284 +:1061A0008F938EE790E19F938F930E94B0098CE7C5 +:1061B00090E10E9417090E94372CC82F89E690E1D0 +:1061C0000E9417091F92CF9384E690E19F938F93CB +:1061D0000E94B00982E690E10E94170988E590E1EB +:1061E0000E9417098C2F81701F928F9385E590E193 +:1061F0009F938F930E94B00983E590E10E94170955 +:1062000089E490E10E941709C1FB882780F91F9259 +:106210008F9386E490E19F938F930E94B00984E46A +:1062200090E10E94170988E390E10E941709C2FBE0 +:10623000882780F91F928F9385E390E19F938F9336 +:106240000E94B00983E390E10E9417098AE290E17D +:106250000E941709C3FBCC27C0F91F92CF9387E296 +:1062600090E19F938F930E94B00985E290E10E9494 +:1062700017090E94492CC82F81E190E10E9417095B +:106280001F92CF938CE090E19F938F930E94B0096F +:106290008AE090E10E94170981EF9FE00E941709B0 +:1062A0008C2F81701F928F938EEE9FE09F938F9320 +:1062B0000E94B0098DB79EB780960FB6F8949EBF26 +:1062C0000FBE8DBF8CEE9FE00E94170985ED9FE009 +:1062D0000E941709C1FB882780F91F928F9382EDD6 +:1062E0009FE09F938F930E94B00980ED9FE00E94F2 +:1062F00017098EEB9FE00E941709C2FB882780F9DF +:106300001F928F938BEB9FE09F938F930E94B00916 +:1063100089EB9FE00E94170987EA9FE00E94170916 +:10632000C3FB882780F91F928F9384EA9FE09F9395 +:106330008F930E94B00982EA9FE00E94170988E9C2 +:106340009FE00E941709C4FB882780F91F928F9352 +:1063500085E99FE09F938F930E94B00983E99FE0B6 +:106360000E94170981E89FE00E941709C5FB882752 +:1063700080F91F928F938EE79FE09F938F930E94E7 +:10638000B0098CE79FE00E94170980E69FE00E9419 +:106390001709C6FB882780F91F928F938DE59FE030 +:1063A0009F938F930E94B0098BE59FE00E9417098D +:1063B00083E59FE00E941709C7FBCC27C0F91F9215 +:1063C000CF9380E59FE09F938F930E94B0098EE466 +:1063D0009FE00E9417090E94522CC82F87E39FE07C +:1063E0000E9417091F92CF9382E39FE09F938F93A0 +:1063F0000E94B0098DB79EB780960FB6F8949EBFE5 +:106400000FBE8DBF80E39FE00E94170986E29FE0E8 +:106410000E9417098C2F81701F928F9383E29FE057 +:106420009F938F930E94B00981E29FE00E94170919 +:1064300088E19FE00E941709C6951F92CF9385E1DE +:106440009FE09F938F930E94B00983E19FE00E9499 +:1064500017098DB79EB708960FB6F8949EBF0FBE6A +:106460008DBF04C08EE69DE00E941709C1E0C1C047 +:106470008091E601C82FC095C170C0FB80F9809360 +:10648000E601CC2349F083EF90E10E941709809147 +:10649000E6018660886048C086EE90E10E94170998 +:1064A0008091E601897F877F8093E601DFCF90911D +:1064B000E60191FBCC27C0F981E0C827892FC0FBFA +:1064C00081F98093E601CC2319F089ED90E127C092 +:1064D0008BEC90E1C9CF9091E60192FBCC27C0F9FB +:1064E00081E0C827892FC0FB82F98093E601CC2385 +:1064F00019F08CEB90E113C08CEA90E1B5CF90914C +:10650000E60193FBCC27C0F981E0C827892FC0FBA7 +:1065100083F98093E601CC2351F080EA90E10E9458 +:1065200017098091E60181608093E60162C083E9EA +:1065300090E19ACF88E39DE00E9417098FE19DE0EA +:106540000E9417098DEE9CE00E94170986EC9CE0E2 +:106550000E94170986E89CE00E9417098BE59CE0E1 +:1065600083CF8DE49CE00E9417090E94091E1F92B0 +:106570008F9383E39CE09F938F930E94B009809157 +:106580000C011F928F938CE19CE09F938F930E944C +:10659000B009809187011F928F9389E09CE09F93BF +:1065A0008F930E94B0098091E8019091E901A09138 +:1065B000EA01B091EB01BF93AF939F938F9385EF67 +:1065C0009BE09F938F930E94B0098DB79EB7429630 +:1065D0000FB6F8949EBF0FBE8DBF48CF8D5101C03E +:1065E00080E00E94403042CF81E990E10E9417098B +:1065F000C0E08C2FCF91089580E008950C94FC3278 +:10660000CF93C82F8091F601813071F020F0823055 +:1066100009F44BC042C1E0910D01F0910E0180815F +:10662000823209F03CC107C0E0910D01F0910E01EA +:106630008081823261F48C2F0E94FE32811104C06D +:106640008C2F0E9460302FC081E090E02CC08C2FF6 +:106650000E94FC32811126C0C431E1F070F4CB30CD +:1066600081F0C031D1F40E94082F88EE9BE00E9497 +:10667000170982E08093F60115C0C93259F0C8337A +:1066800061F487E49DE00E9417098CEE9BE00E9474 +:10669000170908C01092F60104C186EE9BE00E9423 +:1066A0001709FFC081E08170FEC0C43228F5CE31E9 +:1066B00008F0C1C0CB30A1F1D0F4C73009F0D3C08D +:1066C0008EE18093140182E3809313018AE080932A +:1066D000120184E18093110188E08093100188E227 +:1066E00080930F018CE89AE00E941709BFC0C33164 +:1066F00049F1C431C1F0B7C0CB3409F4A9C028F4C2 +:10670000C93289F0C83361F0AEC0C13509F49EC00A +:10671000C23509F499C0CE3409F0A5C06AE09EC024 +:106720000E94082FA3C08091F501882319F01092D0 +:10673000F5019CC089E99AE00E94170981E08093E5 +:10674000F601B1C083E79AE00E94170981E69AE05A +:106750000E941709809114011F928F938EE59AE091 +:106760009F938F930E94B0098CE59AE00E941709CD +:106770008AE49AE00E941709809113011F928F9377 +:1067800087E49AE09F938F930E94B00985E49AE092 +:106790000E94170986E39AE00E941709809112016E +:1067A0001F928F9383E39AE09F938F930E94B00987 +:1067B00081E39AE00E94170980E29AE00E9417099B +:1067C000809111011F928F938DE19AE09F938F9397 +:1067D0000E94B0098BE19AE00E94170986E09AE0D6 +:1067E0000E941709809110011F928F9383E09AE015 +:1067F0009F938F930E94B00981E09AE00E9417094D +:106800008AEE99E00E94170980910F011F928F93E1 +:1068100087EE99E09F938F930E94B00985EE99E0EF +:106820000E9417098DB79EB748960FB6F8949EBF81 +:106830000FBE8DBF1BC0CE51EC2FF0E0E45CFE4FCD +:1068400080818093F50112C061E003C061E006C061 +:106850006AE08091F5010E941F2F08C08091F50128 +:106860000E94C22F03C08AE89AE013C08091F5010C +:10687000882369F01F928F9384E89AE09F938F9307 +:106880000E94B0090F900F900F900F9004C081E804 +:106890009AE00E94170981E006C01092F60180E09C +:1068A00002C080E000CFCF9108950E942C2C81116E +:1068B00002C00E940D2C0E94522C80933E0280FF49 +:1068C00002C0869501C080E00C94D90980913E02F7 +:1068D000982F9695292F30E0233031054CF49F5F97 +:1068E000990F8170892B816080933E020E94562C03 +:1068F0008091E60180FF0FC080913E0286951F9235 +:106900008F938CE691E19F938F930E94B0090F9033 +:106910000F900F900F9080913E0286950C94D909AC +:1069200080913E02982F969591F09158990F817021 +:10693000892B80933E028E7F91E009F490E0809154 +:106940003E0290FB80F980933E020E94562C80917B +:10695000E60180FF0FC080913E0286951F928F93C3 +:1069600084E591E19F938F930E94B0090F900F905F +:106970000F900F9080913E0286950C94D9098091DA +:106980003E02982F909590FB80F980933E020E94E2 +:10699000562C8091E60180FF0FC080913E028170ED +:1069A0001F928F938EE391E19F938F930E94B00982 +:1069B0000F900F900F900F9080913E0280FF02C0C9 +:1069C000869501C080E00C94D90990913E02892FF0 +:1069D00086958F5F8F779170843028F4880F892B8C +:1069E00080933E0202C090933E0280913E028E7FD1 +:1069F00091E009F490E080913E0290FB80F9809351 +:106A00003E020E94562C8091E60180FF0FC08091CB +:106A10003E0286951F928F938AE291E19F938F9316 +:106A20000E94B0090F900F900F900F9080913E023E +:106A300086950C94D90920913E02922F969589272C +:106A4000982F990F822F8170892B80933E028E7F21 +:106A500091E009F490E080913E0290FB80F98093F0 +:106A60003E020E94562C80913E0286950C94D909D4 +:106A70000E943F356894B1110C94CE3508950E9460 +:106A8000B33588F09F5798F0B92F9927B751B0F0D8 +:106A9000E1F0660F771F881F991F1AF0BA95C9F7A2 +:106AA00014C0B13091F00E94CD35B1E008950C943E +:106AB000CD35672F782F8827B85F39F0B93FCCF3F1 +:106AC000869577956795B395D9F73EF4909580951F +:106AD000709561957F4F8F4F9F4F0895E89409C03F +:106AE00097FB3EF490958095709561957F4F8F4F01 +:106AF0009F4F9923A9F0F92F96E9BB279395F69517 +:106B0000879577956795B795F111F8CFFAF4BB0F94 +:106B100011F460FF1BC06F5F7F4F8F4F9F4F16C0F8 +:106B2000882311F096E911C0772321F09EE8872F82 +:106B3000762F05C0662371F096E8862F70E060E03E +:106B40002AF09A95660F771F881FDAF7880F9695B7 +:106B5000879597F9089557FD9058440F551F59F0A0 +:106B60005F3F71F04795880F97FB991F61F09F3F3A +:106B700079F087950895121613061406551FF2CF63 +:106B80004695F1DF08C0161617061806991FF1CFB3 +:106B900086957105610508940895E894BB276627DA +:106BA0007727CB0197F908950E94E7350C94583662 +:106BB0000E944A3638F00E94513620F0952311F099 +:106BC0000C9441360C94473611240C94CE350E9417 +:106BD000AB3570F3959FC1F3950F50E0551F629F41 +:106BE000F001729FBB27F00DB11D639FAA27F00D26 +:106BF000B11DAA1F649F6627B00DA11D661F829F4D +:106C00002227B00DA11D621F739FB00DA11D621F31 +:106C1000839FA00D611D221F749F3327A00D611D4E +:106C2000231F849F600D211D822F762F6A2F112430 +:106C30009F5750409AF0F1F088234AF0EE0FFF1F63 +:106C4000BB1F661F771F881F91505040A9F79E3FBA +:106C5000510580F00C9441360C94CE355F3FE4F33F +:106C6000983ED4F3869577956795B795F795E79510 +:106C70009F5FC1F7FE2B880F911D9695879597F919 +:106C8000089597F99F6780E870E060E008959FEFAE +:106C900080EC089500240A941616170618060906B3 +:106CA000089500240A941216130614060506089582 +:106CB000092E0394000C11F4882352F0BB0F40F40A +:106CC000BF2B11F460FF04C06F5F7F4F8F4F9F4F4A +:106CD0000895991B79E004C0991F961708F0961B38 +:106CE000881F7A95C9F780950895AA1BBB1B51E1AF +:106CF00007C0AA1FBB1FA617B70710F0A61BB70B2C +:106D0000881F991F5A95A9F780959095BC01CD01D0 +:106D1000089597FB072E16F4009407D077FD09D04D +:106D20000E94753607FC05D03EF4909581959F4FE3 +:106D30000895709561957F4F0895EE0FFF1F0590A0 +:106D4000F491E02D0994F999FECF92BD81BDF89A96 +:106D5000992780B50895A6E1B0E044E050E00C9496 +:106D6000DD36A8E1B0E042E050E00C94DD36262F9D +:106D7000F999FECF92BD81BDF89A019700B4021631 +:106D800039F01FBA20BD0FB6F894FA9AF99A0FBEDF +:106D900008950396272F0E94B8360E94B736252FF4 +:106DA0000E94B836242F0C94B8360196272F0E94E3 +:106DB000B8360C94B736DC01CB01FC01F999FECF53 +:106DC00006C0F2BDE1BDF89A319600B40D92415073 +:0A6DD0005040B8F70895F894FFCF83 +:106DDA00FFFF6E1661173C170817D41601DB01284E +:106DEA0008140A321E0F1F6C766673491303534345 +:106DFA0079693309196F7F59404D36201208C50742 +:106E0A008F076F07FB0614072D07460701020304C5 +:066E1A000506070809004F +:00000001FF diff --git a/keyboards/kc60/keymaps/ws2812/config.h b/keyboards/kc60/keymaps/ws2812/config.h new file mode 100644 index 000000000..933bb0d2d --- /dev/null +++ b/keyboards/kc60/keymaps/ws2812/config.h @@ -0,0 +1,10 @@ +#include "../../config.h" + +/* WS2812B RGB Underglow LED */ +#define ws2812_PORTREG PORTF +#define ws2812_DDRREG DDRF +#define ws2812_pin PF5 // Based on wiring depicted in ws2812_wiring.jpg +#define RGBLED_NUM 16 // Number of LEDs. Change this to match your use case. +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/kc60/keymaps/ws2812/keymap.c b/keyboards/kc60/keymaps/ws2812/keymap.c new file mode 100644 index 000000000..bd5bef787 --- /dev/null +++ b/keyboards/kc60/keymaps/ws2812/keymap.c @@ -0,0 +1,161 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "kc60.h" + +// Used for SHIFT_ESC +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _FL 1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: (Base Layer) Default Layer + * ,-----------------------------------------------------------. + * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | + * |-----------------------------------------------------------| + * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | + * |-----------------------------------------------------------| + * |Ctrl|Gui |Alt | Space |Alt |Gui |FN |Ctrl | + * `-----------------------------------------------------------' + */ +[_BL] = KEYMAP( + F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_NO, KC_ENT, \ + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_NO, KC_RSFT, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT,KC_RGUI, MO(_FL), KC_RCTL), + + /* Keymap _FL: Function Layer + * ,-----------------------------------------------------------. + * |~ |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| DEL | + * |-----------------------------------------------------------| + * | | |UP | | | | | | | | |BL-|BL+|BL | + * |-----------------------------------------------------------| + * | |LFT|DWN|RGT| | | | | | | | | + * |-----------------------------------------------------------| + * | |FN1|FN2|FN3|FN4|FN5|FN6|FN7|FN8| | | | + * |-----------------------------------------------------------| + * | | | | | | | |RSET| + * `-----------------------------------------------------------' + */ +[_FL] = KEYMAP( + #ifdef RGBLIGHT_ENABLE + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \ + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_INC, BL_TOGG, \ + 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, F(1), F(2), F(3), F(4), F(5), F(6), F(7), F(8), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET), + #else + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \ + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_INC, BL_TOGG, \ + 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET), + #endif +}; + +enum function_id { + SHIFT_ESC, + #ifdef RGBLIGHT_ENABLE + RGBLED_TOGGLE, + RGBLED_STEP_MODE, + RGBLED_INCREASE_HUE, + RGBLED_DECREASE_HUE, + RGBLED_INCREASE_SAT, + RGBLED_DECREASE_SAT, + RGBLED_INCREASE_VAL, + RGBLED_DECREASE_VAL + #endif +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(SHIFT_ESC), + #ifdef RGBLIGHT_ENABLE + [1] = ACTION_FUNCTION(RGBLED_TOGGLE), + [2] = ACTION_FUNCTION(RGBLED_STEP_MODE), + [3] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), + [4] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), + [5] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), + [6] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), + [7] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), + [8] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), + #endif +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + static uint8_t shift_esc_shift_mask; + switch (id) { + case SHIFT_ESC: + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + //led operations + #ifdef RGBLIGHT_ENABLE + case RGBLED_TOGGLE: + if (record->event.pressed) { + rgblight_toggle(); + } + break; + case RGBLED_INCREASE_HUE: + if (record->event.pressed) { + rgblight_increase_hue(); + } + break; + case RGBLED_DECREASE_HUE: + if (record->event.pressed) { + rgblight_decrease_hue(); + } + break; + case RGBLED_INCREASE_SAT: + if (record->event.pressed) { + rgblight_increase_sat(); + } + break; + case RGBLED_DECREASE_SAT: + if (record->event.pressed) { + rgblight_decrease_sat(); + } + break; + case RGBLED_INCREASE_VAL: + if (record->event.pressed) { + rgblight_increase_val(); + } + break; + case RGBLED_DECREASE_VAL: + if (record->event.pressed) { + rgblight_decrease_val(); + } + break; + case RGBLED_STEP_MODE: + if (record->event.pressed) { + rgblight_step(); + } + break; + #endif + } +} diff --git a/keyboards/kc60/keymaps/ws2812/ws2812_example.jpg b/keyboards/kc60/keymaps/ws2812/ws2812_example.jpg new file mode 100644 index 000000000..5c62cfded Binary files /dev/null and b/keyboards/kc60/keymaps/ws2812/ws2812_example.jpg differ diff --git a/keyboards/kc60/keymaps/ws2812/ws2812_underside-lit.jpg b/keyboards/kc60/keymaps/ws2812/ws2812_underside-lit.jpg new file mode 100644 index 000000000..2eab21433 Binary files /dev/null and b/keyboards/kc60/keymaps/ws2812/ws2812_underside-lit.jpg differ diff --git a/keyboards/kc60/keymaps/ws2812/ws2812_underside.jpg b/keyboards/kc60/keymaps/ws2812/ws2812_underside.jpg new file mode 100644 index 000000000..159d63904 Binary files /dev/null and b/keyboards/kc60/keymaps/ws2812/ws2812_underside.jpg differ diff --git a/keyboards/kc60/keymaps/ws2812/ws2812_wiring.jpg b/keyboards/kc60/keymaps/ws2812/ws2812_wiring.jpg new file mode 100644 index 000000000..61b749b66 Binary files /dev/null and b/keyboards/kc60/keymaps/ws2812/ws2812_wiring.jpg differ diff --git a/keyboards/phantom/Makefile b/keyboards/phantom/Makefile new file mode 100644 index 000000000..3a71fd0ee --- /dev/null +++ b/keyboards/phantom/Makefile @@ -0,0 +1,74 @@ + + +SRC = led.c + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= no # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= yes # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +RGBLIGHT_ENABLE ?=yes # Enable keyboard underlight functionality (+4870) +BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality (+1150) +MIDI_ENABLE ?= no # MIDI controls +AUDIO_ENABLE ?= no +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID + + +ifndef QUANTUM_DIR + include ../../Makefile +endif diff --git a/keyboards/phantom/config.h b/keyboards/phantom/config.h new file mode 100644 index 000000000..d5878766f --- /dev/null +++ b/keyboards/phantom/config.h @@ -0,0 +1,91 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0003 +#define MANUFACTURER PHANTOM +#define PRODUCT PHANTOM RGB MOD +#define DESCRIPTION QMK keyboard firmware for PHANTOM TKL + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 + +// ROWS: Top to bottom, COLS: Left to right +/* Row pin configuration +*/ +#define MATRIX_ROW_PINS { B5, B4, B3, B2, B1, B0 } +/* Column pin configuration + */ +#define MATRIX_COL_PINS { D5, C7, C6, D4, D0, E6, F0, F1, F4, F5, F6, F7, D7, D6, D1, D2, D3 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION ROW2COL + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* Underlight configuration + */ + #define ws2812_PORTREG PORTE + #define ws2812_DDRREG DDRE + #define ws2812_pin 2 + #define RGBLED_NUM 20 // Number of LEDs + #define RGBLIGHT_HUE_STEP 10 + #define RGBLIGHT_SAT_STEP 17 + #define RGBLIGHT_VAL_STEP 17 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/phantom/keymaps/default/compiled.hex b/keyboards/phantom/keymaps/default/compiled.hex new file mode 100644 index 000000000..5ee1e08d9 --- /dev/null +++ b/keyboards/phantom/keymaps/default/compiled.hex @@ -0,0 +1,1496 @@ +:100000000C945B070C949F070C949F070C949F071C +:100010000C949F070C949F070C949F070C949F07C8 +:100020000C949F070C949F070C94DB190C94AD1A49 +:100030000C94AA280C949F070C949F070C949F077C +:100040000C949F070C949F070C949F070C949F0798 +:100050000C949F070C9412290C949F070C949F07F3 +:100060000C949F070C949F070C949F070C949F0778 +:100070000C949F070C949F070C949F070C949F0768 +:100080000C9479140C949F070C949F070C949F0771 +:100090000C949F070C949F070C949F070C949F0748 +:1000A0000C949F070C949F070C949F0770088C0872 +:1000B000C40894089C08A408AC08B408BC081A1B1F +:1000C0003C1B2A1C3C1B2A1C811BA41B2A1CF91B41 +:1000D0000C1C781F781FA71FA71FE61F2B212B21A1 +:1000E0002B2106202B21B620B6201C212B212B21D1 +:1000F0002521C320C320C320C320C320C320C32085 +:10010000C320C320C320C320C320C320C320C320D7 +:10011000C320D320E120E820EF20F92000F001F0F7 +:1001200002F003F004F005F006F007F008F02900F3 +:1001300035003A003B003C003D003E003F004000DF +:10014000410042004300440045004600470048008B +:100150001E001F0020002100220023002400250093 +:10016000260027002D002E002A002A0049004A0000 +:100170004B002B0014001A000800150017001C008B +:1001800018000C00120013002F00300031004C004A +:100190004D004E00390004001600070009000A0057 +:1001A0000B000D000E000F00330034002800280063 +:1001B000280028002800E100E1001D001B000600C7 +:1001C0001900050011001000360037003800E50066 +:1001D000E500520052005200E000E300E2002C0073 +:1001E0002C002C002C002C002C002C00E600E7003A +:1001F0000151E400500051004F00010001000100D6 +:1002000001000100010001000100010001000100E6 +:1002100001000100010001000100010001000100D6 +:1002200001000100010001000100010001000100C6 +:1002300001000100007000700100010001000100D8 +:1002400001000100010001000100010001000100A6 +:100250000100010001000100010001000100010096 +:100260000100010001000100010001000100010086 +:100270000100010001005200010001000100010025 +:1002800001000100010001200220032004200520BC +:1002900006200720082001000100010001000100E4 +:1002A0000100010001000100010001000100010046 +:1002B0000100010001000100010001000100010036 +:1002C0000100010001000A44454255473A20656E8D +:1002D00061626C65642E0A005374617465206F66F8 +:1002E00020726F772025583A2025303136620A0077 +:1002F00048756D616E2D7265616461626C65206D1B +:1003000061747269782073746174653A0D0A0044EF +:1003100065626F756E63696E672064656C617920D4 +:1003200072656D61696E696E673A2025580A0054DE +:10033000494D4552332064697361626C65642E0ACD +:100340000054494D45523320656E61626C65642EE0 +:100350000A007267626C696768742073657420684C +:100360007376205B454550524F4D5D3A2025752CE4 +:1003700025752C25750A007267626C6967687420A0 +:10038000746F67676C653A207267626C696768743E +:100390005F636F6E6669672E656E61626C65203D96 +:1003A0002025750A007267626C69676874206D6F3A +:1003B00064653A2025750A007267626C6967687423 +:1003C0005F696E6974207267626C696768745F63E5 +:1003D0006F6E6669672E6D6F6465203D20302E203C +:1003E00057726974652064656661756C7420766106 +:1003F0006C75657320746F20454550524F4D2E0A21 +:10040000007267626C696768745F696E6974206501 +:1004100065636F6E666967206973206E6F7420650F +:100420006E61626C65642E0A007267626C6967684F +:10043000745F696E6974207374617274210A00724A +:1004400067626C696768745F696E69742063616C68 +:100450006C65642E0A007267626C696768745F631A +:100460006F6E6669672E76616C203D2025640A00F8 +:100470007267626C696768745F636F6E6669672E26 +:10048000736174203D2025640A007267626C69679D +:1004900068745F636F6E6669672E687565203D20BE +:1004A00025640A007267686C696768745F636F6EC1 +:1004B0006669672E6D6F6465203D2025640A0072B1 +:1004C00067626C696768745F636F6E6669672E65E3 +:1004D0006E61626C65203D2025640A007267626C63 +:1004E000696768745F636F6E666967206570726FB5 +:1004F0006D0A006565636F6E6669675F757064613C +:1005000074655F7267626C696768745F6465666171 +:10051000756C740A00643214643214783C1E1E1424 +:100520000A0500000000010101020203040505069E +:1005300007090A0B0C0E0F1112141517191B1D1F9A +:10054000212325282A2C2F313436393B3E4143467E +:10055000494C4F5255585A5D6164676A6D707376A5 +:10056000797C7F8386898C8F9295989B9EA2A5A784 +:10057000AAADB0B3B6B9BCBEC1C4C6C9CBCED0D388 +:10058000D5D7DADCDEE0E2E4E6E8EAEBEDEEF0F126 +:10059000F3F4F5F6F8F9FAFAFBFCFDFDFEFEFEFFBA +:1005A000FFFFFFFFFFFFFEFEFEFDFDFCFBFAFAF979 +:1005B000F8F6F5F4F3F1F0EEEDEBEAE8E6E4E2E06C +:1005C000DEDCDAD7D5D3D0CECBC9C6C4C1BEBCB968 +:1005D000B6B3B0ADAAA7A5A29E9B9895928F8C8921 +:1005E0008683807C797673706D6A6764615D5A5822 +:1005F00055524F4C494643413E3B393634312F2CFE +:100600002A282523211F1D1B1917151412110F0E3F +:100610000C0B0A090706050504030202010101008B +:1006200000000001010202020202020303030303AD +:100630000303030303030303030404040404040483 +:10064000040404040405050505050505050505065E +:10065000060606060606060707070707070708082F +:10066000080808080909090909090A0A0A0A0A0BF7 +:100670000B0B0B0B0C0C0C0C0C0D0D0D0D0E0E0EB4 +:100680000E0F0F0F10101010111111121212131360 +:1006900013141414151516161617171818191919F6 +:1006A0001A1A1B1B1C1C1D1D1E1E1F20202121226F +:1006B00023232424252626272828292A2B2B2C2DC2 +:1006C0002E2F30303132333435363738393A3B3CDF +:1006D0003D3E3F40414244454647494A4B4C4E4FC0 +:1006E0005152535556585A5B5D5E60626365676947 +:1006F0006B6D6E70727476797B7D7F818486888B5A +:100700008D909295979A9D9FA2A5A8ABAEB1B4B7D4 +:10071000BABEC1C4C8CBCFD3D6DADEE2E6EAEEF287 +:10072000F8FF5B735D004B6579626F6172642073E3 +:10073000746172742E0A005B575D005B535D005B51 +:10074000525D005B445D005B435D00200350004848 +:100750000041004E0054004F004D00200052004761 +:1007600000420020004D004F0044000000100350E4 +:1007700000480041004E0054004F004D00000004AE +:1007800003090409027400040100A0FA090400002E +:1007900001030101000921110100012240000705A8 +:1007A000810308000A090401000103000000092177 +:1007B000110100012236000705820308000A09041E +:1007C00002000203000000092111010001222000A3 +:1007D0000705830320000107050303200001090426 +:1007E000030001030000000921110100012239006A +:1007F000070584031000011201100100000008ED3C +:10080000FE606003000102000105010906A1010567 +:100810000719E029E71500250195087501810205F2 +:100820000819012905950575019102950175039136 +:1008300001050719002977150025019578750181B3 +:1008400002C00631FF0974A1010975150025FF9545 +:1008500020750881020976150025FF9520750891FD +:1008600002C005010980A101850216010026B7001A +:100870001A01002AB700751095018100C0050C0906 +:1008800001A1018503160100269C021A01002A9C81 +:1008900002751095018100C005010906A101050737 +:1008A00019E029E7150025019508750181029501D8 +:1008B0007508810105081901290595057501910241 +:1008C0009501750391010507190029FF150026FF01 +:1008D00000950675088100C00A00253032582000B6 +:1008E0006B6579626F6172645F7265706F72743A82 +:1008F00020004B6579626F617264204C454473201F +:1009000073746174653A2025780A0064656C5F6BC6 +:1009100065795F6269743A2063616E27742064654B +:100920006C3A20253032580A006164645F6B657947 +:100930005F6269743A2063616E2774206164643A6F +:1009400020253032580A00646F6E652E0A00626FEF +:100950006F676D61676963207363616E3A202E2E45 +:100960002E20003F00433E20004C25640A0074699D +:100970006D65725F636F756E743A202530346C5804 +:100980000A006B6579626F6172645F6E6B726F3AB9 +:100990002025580A006B6579626F6172645F696433 +:1009A0006C653A2025580A006B6579626F61726444 +:1009B0005F70726F746F636F6C3A2025580A00681D +:1009C0006F73745F6B6579626F6172645F6C65648D +:1009D0007328293A2025580A000A092D20537461EA +:1009E000747573202D0A004743433A20342E392E64 +:1009F00032204156522D4C4942433A20312E382E56 +:100A000031204156525F415243483A206176723557 +:100A10000A004F5054494F4E533A204C55464120FE +:100A2000424F4F544D414749432045585452414B42 +:100A3000455920434F4E534F4C4520434F4D4D4158 +:100A40004E44204E4B524F20343039360A00425526 +:100A5000494C443A20383963643532662D646972F2 +:100A60007479202831353A35353A3233204A756E5B +:100A70002032312032303136290A005649443A209A +:100A8000307846454544285048414E544F4D292022 +:100A90005049443A20307836303630285048414E5C +:100AA000544F4D20524742204D4F44292056455225 +:100AB0003A203078303030330A00444553433A20EE +:100AC000514D4B206B6579626F617264206669726B +:100AD0006D7761726520666F72205048414E544FA9 +:100AE0004D20544B4C0A000A092D2056657273693B +:100AF0006F6E202D0A000A092D20436F6E736F6CF4 +:100B000065202D0A4553432F713A09717569740A9E +:100B1000000A092D204D61676963202D0A443A09B6 +:100B20004465627567204D65737361676520546F16 +:100B300067676C650A583A094D6174726978204498 +:100B400065627567204D6F646520546F67676C65DB +:100B5000202D2053686F77206B65797072657373F1 +:100B6000657320696E206D6174726978206772699F +:100B7000640A4B3A094B6579626F6172642044657F +:100B800062756720546F67676C65202D2053686F0E +:100B900077206B65797072657373207265706F7200 +:100BA000740A4D3A094465627567204D6F75736527 +:100BB00020546F67676C650A563A09566572736907 +:100BC0006F6E0A533A095374617475730A433A0994 +:100BD000416374697661746520436F6E736F6C65F1 +:100BE000204D6F64650A46312D4631303A095377FE +:100BF0006974636820746F204C6179657220302DB0 +:100C0000392028463130203D204C30290A302D39FA +:100C10003A0953776974636820746F204C61796571 +:100C20007220302D390A4553433A0953776974636A +:100C30006820746F204C6179657220302028616CC7 +:100C40007465726E617465206B65792031290A477D +:100C5000524156453A0953776974636820746F208E +:100C60004C6179657220302028616C7465726E6108 +:100C70007465206B65792032290A50415553453AF5 +:100C8000094A756D7020746F20426F6F746C6F61CC +:100C900064657220285265736574290A453A0950C3 +:100CA00072696E7420454550524F4D2053657474DF +:100CB000696E67730A4E3A094E4B524F20546F6764 +:100CC000676C650A000A002575002E6E6B726F3A1C +:100CD00020000A002575002E737761705F626163E2 +:100CE0006B736C6173685F6261636B737061636582 +:100CF0003A20000A002575002E737761705F6772D5 +:100D00006176655F6573633A20000A002575002EE1 +:100D10006E6F5F6775693A20000A002575002E73B3 +:100D20007761705F72616C745F726775693A2000F9 +:100D30000A002575002E737761705F6C616C745FBB +:100D40006C6775693A20000A002575002E63617092 +:100D5000736C6F636B5F746F5F636F6E74726F6CD5 +:100D60003A20000A002575002E737761705F636F6B +:100D70006E74726F6C5F636170736C6F636B3A203B +:100D8000000A0025303258006B65796D61705F6331 +:100D90006F6E6669672E7261773A20000A002575CA +:100DA000002E6D6F7573653A20000A002575002EC0 +:100DB0006B6579626F6172643A20000A00257500E4 +:100DC0002E6D61747269783A20000A002575002E34 +:100DD000656E61626C653A20000A00253032580069 +:100DE00064656275675F636F6E6669672E726177AF +:100DF0003A20000A0025750064656661756C745FB1 +:100E00006C617965723A20003F004E4B524F3A2098 +:100E10006F66660A004E4B524F3A206F6E0A000A08 +:100E20006D6F7573653A206F66660A000A6D6F759F +:100E300073653A206F6E0A000A6B6579626F6172A2 +:100E4000643A206F66660A000A6B6579626F6172A8 +:100E5000643A206F6E0A000A6D61747269783A20F4 +:100E60006F66660A000A6D61747269783A206F6E67 +:100E70000A000A64656275673A206F66660A000AAE +:100E800064656275673A206F6E0A000A0A4A756DDA +:100E900070696E6720746F20626F6F746C6F61642D +:100EA00065722E2E2E2000433E20006565636F6E16 +:100EB0006669673A0A0011241FBECFEFDAE0DEBF91 +:100EC000CDBF04B603FE24C08091630290916402FA +:100ED000A0916502B09166028730904BA740B04B5D +:100EE000B9F410926302109264021092650210929B +:100EF000660214BE84B7877F84BF88E10FB6F8947A +:100F000080936000109260000FBEE0E0F8E3099566 +:100F100011E0A0E0B1E0EAE2FDE502C005900D922B +:100F2000AC33B107D9F712E0ACE3B1E001C01D92D8 +:100F3000A336B107E1F70E9419170C94932E0C9475 +:100F40000000FF93EF93E0913C01F0913D01309759 +:100F500009F00995EF91FF910895FC01859180308A +:100F600011F0EFDFFBCF0895FF27E0E230E247FF0B +:100F70000CC0419597FF09C0EDE260957095809592 +:100F80009095611D711D811D911D27FF02C0219546 +:100F900030E350E2AA27660F771F881F991FAA1F08 +:100FA000A41710F0A41B63955A95A9F7AA3008F06E +:100FB000A95FA05DAF93F39561157105810591055A +:100FC00041F7ED3211F4EF93F395F21718F43F93D4 +:100FD000F395FBCF8F91B5DFFA95E1F70895E9918D +:100FE000F9918591803021F0853219F0AADFF9CF8F +:100FF000089520E0E89455915532C1F3503311F42F +:10100000689455915A3348F4505390F3220F022EAE +:10101000220F220F200D250FF4CF0EF42195899178 +:101020009991533619F3533729F1533559F1BC01CE +:1010300088279927E8945C3621F4899199916894DE +:101040005591543639F446EF7EF077FF0DC08FEF9F +:101050009FEF0AC055374AE039F0583540E121F09A +:10106000523642E009F00895FF93EF937DDFEF9150 +:10107000FF91B7CFFF93EF93FC0181918030B9F3DB +:1010800060DFFBCFFF93EF9368DFF1CFDF93CF9368 +:10109000CDB7DEB72596A3DFCF91DF91089581FF0D +:1010A00002C02E9A01C02E9882FF02C02F9A089586 +:1010B0002F980895089508950E945A080C947C0C66 +:1010C0000C945B08CF93DF93DC01462F50E049304E +:1010D000510508F061C0FA01EA5AFF4F0C94452E01 +:1010E000EC010E94B227827280933E019A8199237B +:1010F00059F0882311F085E301C089E20E940A2794 +:10110000DF91CF910C94FC27882311F085E301C077 +:1011100089E20E945D27F4CF12968C918823E1F139 +:10112000DF91CF910C941C1212968C918823A1F11F +:10113000DF91CF910C94881012968C91882361F1E5 +:10114000DF91CF910C94A01012968C91882321F1FD +:10115000DF91CF910C94BF1012968C918823E1F00F +:10116000DF91CF910C94DA1012968C918823A1F024 +:10117000DF91CF910C94F41012968C91882361F03A +:10118000DF91CF910C940F1112968C91882321F04E +:10119000DF91CF910C941212DF91CF91089581E0ED +:1011A000089581E008950C94D10808950F931F933A +:1011B000CF93DF938C01FC01C081D181CE010E94CD +:1011C0008B26BE010E94ED0BEC01B8010E94D308F2 +:1011D000882309F474C1F8018281882309F45BC073 +:1011E00080914A0181111FC0C431F0E7DF0709F087 +:1011F0000AC10E94D50881E080934A010E94DC2840 +:10120000909349018093480110924101109243014B +:101210001092420110924501109244011092470130 +:10122000109246014CC180914801909149010E9461 +:10123000E828883C910570F480914101E82FF0E0A6 +:10124000EE0FFF1FEE5BFE4FD183C0838F5F809355 +:10125000410135C1C43120E7D20708F028C1C230AE +:1012600080E7D80710F5C11590E7D90709F0DAC073 +:10127000F8018281882309F4BFC00E949221FFEF08 +:1012800024E38CE0F15020408040E1F700C00000F2 +:101290000E94372914C1C431F0E7DF0708F0D3C03A +:1012A000C23020E7D20708F49BC0F801828188236E +:1012B00009F4A2C00E94F92A811102C00E94D82A12 +:1012C0000E94162B90E09093110280931002C2307E +:1012D000F0E7DF0721F48091100281607AC0C3300B +:1012E00020E7D20721F480911002826072C0C430DE +:1012F00080E7D80721F48091100284606AC0C5306D +:1013000090E7D90719F48091100227C0C630E0E7B2 +:10131000DE0721F48091100280615BC0C730F0E7E6 +:10132000DF0721F480911002806253C0C83020E7AB +:10133000D20721F48091100280644BC0C93080E74D +:10134000D80721F480911002806843C0CA3090E72A +:10135000D90729F480911002846088603AC0CB30AC +:10136000E0E7DE0721F4809110028E7F32C0CC309E +:10137000F0E7DF0721F4809110028D7F2AC0CD3085 +:1013800020E7D20721F4809110028B7F22C0CE305B +:1013900080E7D80719F4809110021AC080911002DA +:1013A000CF3090E7D90711F48F7E13C0C031E0E74A +:1013B000DE0711F48F7D0DC0C131F0E7DF0711F4B6 +:1013C0008F7B07C0C231D04711F48F7702C08B7F6B +:1013D000877F80931002809110020E941A2B6FC0A9 +:1013E000C11580E7D80741F0C130D047F1F081E066 +:1013F00080933F0180934001C801DF91CF911F91FD +:101400000F910C94CF08C43120E7D20708F04FC0E9 +:10141000C23080E7D80708F048CFC11590E7D90758 +:1014200009F42BCFC130D04711F7F801828188230E +:1014300019F386EC92E00E94AD0780910902816069 +:10144000809309023CC0C333E0E7DE07A1F4F80152 +:101450008281882321F010923F0182E017C08091A1 +:101460003F01811106C086E20E941C1E86E20E9496 +:10147000E41E82E019C0C433D04709F0B8CFF801A8 +:101480008281882331F01092400180E20E94331F54 +:1014900016C080914001811106C087E20E941C1E87 +:1014A00087E20E94E41E80E20E943A1F08C0C33314 +:1014B000F0E7DF0761F2C433D04709F398CF80E04B +:1014C000DF91CF911F910F9108950C945C080C94BB +:1014D000600821E1729FF001112446E6849FE00D2F +:1014E000F11D1124E60FF11DEE0FFF1FE25DFE4F0F +:1014F000859194910E94FF0B811560E49607B0F5E9 +:10150000811570E3970708F0DEC0803E9105D8F49E +:10151000803C910508F06CC0883A910578F4853AD2 +:10152000910508F06BC08130910509F452C108F4AF +:101530000FC18430910508F04CC10AC18B3B910565 +:1015400008F467C005C18F3F910509F048F4803F5A +:10155000910508F0ADC0883E910508F43AC1F8C085 +:10156000811520E2920708F0A5C00895811543E592 +:10157000940790F4811562E5960708F0C8C08115BC +:1015800071E5970708F0BEC0811520E5920708F0C5 +:101590009DC09F70906A0895811545E59407D8F421 +:1015A000811564E5960708F0C8C0482F4695469512 +:1015B00070E2479FA00111248370992721E030E059 +:1015C000B90102C0660F771F8A95E2F7CB01842B21 +:1015D000952B9A680895811576E5970708F4B2C0AF +:1015E0009C0130562115304108F0B2C09F70AEC04A +:1015F000FC01EE0FFF1FE456F04062C0853A9105F2 +:1016000009F4A9C0863A910509F0A8C082E890E4DF +:101610000895883A910509F4A4C0893A910509F41E +:10162000A3C08A3A910509F4A2C08B3A910509F446 +:10163000A1C08C3A910509F4A0C08D3A910509F436 +:101640009FC0803B910509F49EC08E3A910509F434 +:101650009DC08F3A910509F49CC0813B910509F426 +:101660009BC0823B910509F49AC0833B910509F424 +:1016700099C0843B910509F498C0853B910509F414 +:1016800097C0863B910509F496C0873B910509F404 +:1016900095C0883B910509F494C0893B910509F4F4 +:1016A00093C08A3B910509F492C080E094E40895C8 +:1016B00090650895FC01FF70EE0FFF1FE45EFE4F82 +:1016C0008591949108959927906C0895482F4370BF +:1016D00021E030E002C0220F331F4A95E2F73C6858 +:1016E000AC0164E0569547956A95E1F74370342B59 +:1016F0008F708695869560E2869FC0011124822BAB +:10170000932B0895982F8827816F906A0895482F0A +:101710004695469570E2479FA00111248370992752 +:1017200021E030E0B90102C0660F771F8A95E2F729 +:10173000CB01842B952B9C680895982F8827846F64 +:10174000906A08958F719927982F8827906208953D +:1017500080E090E0089581E890E4089583E890E4C3 +:10176000089582EE94E4089589EE94E408958AEE53 +:1017700094E4089585EB94E4089586EB94E4089549 +:1017800087EB94E408958CEC94E408958DEC94E454 +:10179000089583E895E408958AE895E4089582E938 +:1017A00095E4089584E995E4089581E296E4089526 +:1017B00083E296E4089584E296E4089585E296E44F +:1017C000089586E296E4089587E296E408958AE211 +:1017D00096E4089580E090E0089591E1799FF0010A +:1017E000112496E6899FE00DF11D1124E60FF11DED +:1017F000EE0FFF1FE25DFE4F8591949108958238B0 +:10180000910549F1B0F48133910509F458C048F4C9 +:101810008932910509F44EC08A32910509F454C009 +:1018200008958533910509F440C08933910599F0F5 +:101830000895833E910529F138F4803E910591F099 +:10184000823E9105A1F00895863E9105F9F0873E0C +:10185000910531F108952091100220FD3AC021FD3B +:1018600038C008958091100280FD35C032C080914B +:10187000100282FF32C08091100284FD30C083EEDE +:1018800039C08091100282FD28C0F5CF80911002EE +:1018900083FF27C08091100284FD21C087EE2AC0FB +:1018A0008091100283FD1DC0F5CF8091100285FD4F +:1018B0001AC01BC08091100285FD17C014C0809112 +:1018C000100286FD14C015C08091100286FD11C063 +:1018D0000EC080EE0FC089E30DC082EE0BC080E029 +:1018E00009C086EE07C089E205C085E303C08AE22D +:1018F00001C081E390E0089508950C944F08E82F0B +:10190000F0E0E05FFE4F8081E82FEF70F0E082951D +:101910008F7021E030E0A90102C0440F551F8A9565 +:10192000E2F740A308950F931F93CF93DF93C0E195 +:10193000D0E001E010E0FE01E05FFE4F8081E82F83 +:10194000EF70F0E021A182958F70A80102C0440FD2 +:10195000551F8A95E2F7CA01822B81A38C2F0E9422 +:101960007F0C219740F785E090E061E070E0FC019A +:10197000EF5DFE4F2081E22FEF70F0E042A1229553 +:101980002F70DB0102C0AA0FBB1F2A95E2F79D0151 +:10199000242B22A3019758F7DF91CF911F910F912C +:1019A00008950F931F93CF93DF9385B7806885BF0A +:1019B00085B7806885BFC0E1D0E001E010E0FE019E +:1019C000E05FFE4F8081E82FEF70F0E021A182956B +:1019D0008F70A80102C0440F551F8A95E2F7CA0113 +:1019E000822B81A38C2F0E947F0C219740F785E0EA +:1019F00090E061E070E0FC01EF5DFE4F2081E22F9E +:101A0000EF70F0E042A122952F70DB0102C0AA0F17 +:101A1000BB1F2A95E2F79D01242B22A3019758F7BB +:101A2000DF91CF911F910F910C94650AEF92FF9275 +:101A30000F931F93CF93DF930CE511E0C0E1EE24E9 +:101A4000E394F12CD5E08C2F0E947F0C85E090E090 +:101A500040E0FC01EF5DFE4F5081E52FEF70F0E0BC +:101A600020A130E052955F7002C0359527955A95B8 +:101A7000E2F720FD07C09701082E01C0220F0A944B +:101A8000EAF7422B019728F7F80182918F0184171A +:101A900019F04083D09300018C2F0E947F0CC1501D +:101AA00090F68091000187FD32C09091090290FF6D +:101AB00010C0282F332727FD30953F938F938FE059 +:101AC00093E09F938F930E9446080F900F900F9082 +:101AD0000F908091000181508093000187FD07C025 +:101AE0008FE99FE00197F1F700C0000010C080E08F +:101AF00090E0FC01E45AFE4FDC01A55BBE4F50961E +:101B00002C91208B01978F3EEFEF9E0791F70E945B +:101B1000670A81E0DF91CF911F910F91FF90EF90C5 +:101B200008958F929F92AF92BF92CF92DF92EF92E1 +:101B3000FF9291E001C0990F8A95EAF7292F40E1C1 +:101B400050E060E070E0CB01C12CD12C7601C39451 +:101B5000DA01A45ABE4F3C91322371F0460157017D +:101B6000042E04C0880C991CAA1CBB1C0A94D2F732 +:101B7000682979298A299B294150510948F7FF9002 +:101B8000EF90DF90CF90BF90AF909F908F9008958F +:101B90000F931F93CF93DF938091090280FF04C0BE +:101BA00080EF92E00E94AD07C0E0D0E008ED12E0C7 +:101BB0008091090280FF14C08C2F0E94910DCB01EF +:101BC0000E9452289F938F93DF93CF931F930F937D +:101BD0000E9446080F900F900F900F900F900F905B +:101BE0002196C630D10521F7DF91CF911F910F913A +:101BF0000895CF93DF93C5E0D0E08C2F0E94910D24 +:101C0000CB010E943028D80FC150B8F78D2FDF913B +:101C1000CF9108952EB1342F309523233EB1432B1D +:101C20003FB7F894FC01680F791FE617F70789F0B2 +:101C3000819198E04EB9000000C087FF2EB9880F4F +:101C4000000000C000C000C02EB900C09A9591F7F6 +:101C5000ECCF3FBF08952DB1242B2DB99B01220F4E +:101C6000331F620F731F0E940A0E87EC90E00197EA +:101C7000F1F700C00000089544E00C942B0ECF92C1 +:101C8000DF92EF92FF920F931F93CF93DF936C013C +:101C9000790150E0FA01EE5DF94F4491242F8FEF66 +:101CA00090E0FC01E61BF109EE5DF94FE491E0954F +:101CB00009F490C0C42FD0E08E1B91098C9FB00115 +:101CC0008D9F700D9C9F700D1124372FE72F0CE313 +:101CD00010E0C601B8010E941D2EDC0162307105C2 +:101CE00009F443C0C8F46115710589F161307105CB +:101CF00009F073C0C31BD109B801681B790BC69FDB +:101D0000C001C79F900DD69F900D1124B8010E946D +:101D10001D2E832FE42F5BC06430710509F44AC087 +:101D2000A8F16530710509F058C0C31BD109B8018D +:101D3000681B790BC69FC001C79F900DD69F900D61 +:101D40001124B8010E941D2E832F860F49C0C31B8A +:101D5000D109CC9DC001CD9D900DDC9D900D11242D +:101D6000B8010E941D2E832F22C0C31BD109CA9F18 +:101D7000C001CB9F900DDA9F900D1124B8010E94F5 +:101D80001D2E832F860F432FE22F2AC0C31BD1099C +:101D9000B801681B790BC69FC001C79F900DD69FE5 +:101DA000900D1124B8010E941D2E842F432FE32F84 +:101DB000E60F16C0C31BD109CA9FC001CB9F900D6F +:101DC000DA9F900D1124B8010E941D2E842F432FFD +:101DD000460F06C0842FE42F03C080E0E0E040E01F +:101DE000D70111964C931197EC9312968C93DF9137 +:101DF000CF911F910F91FF90EF90DF90CF900895BA +:101E000088E090E00C94532EAB01BC0188E090E098 +:101E10000C94712E8091090280FF08C083EF94E03A +:101E20009F938F930E9446080F900F9083E08093BA +:101E3000120280911302807884668F778093130258 +:101E40008CEC8093140280931502609112027091C1 +:101E5000130280911402909115020C94040F80914A +:101E6000090280FF08C08CED94E09F938F930E943D +:101E700046080F900F908091090280FF0FC080915B +:101E8000120281701F928F938FEB94E09F938F9338 +:101E90000E9446080F900F900F900F9080910902BA +:101EA00080FF10C08091120286958F731F928F93CE +:101EB00084EA94E09F938F930E9446080F900F90BE +:101EC0000F900F908091090280FF19C0809112023B +:101ED000881F8827881F90911302292F220F822B99 +:101EE00097FB992790F99F938F938AE894E09F93AB +:101EF0008F930E9446080F900F900F900F90809143 +:101F0000090280FF0EC0809114021F928F9380E718 +:101F100094E09F938F930E9446080F900F900F902C +:101F20000F908091090280FF0EC0809115021F92D0 +:101F30008F9386E594E09F938F930E9446080F90BD +:101F40000F900F900F9008958091120280FF06C0AD +:101F500064E170E08AE192E00C943C0E80E090E055 +:101F6000FC01E65EFD4F11821082128203968C33D3 +:101F70009105B1F7EDCF20E030E0F901E65EFD4FCD +:101F80008183608342832D5F3F4F2C333105A9F756 +:101F90000C94A40FEF92FF920F931F93CF93DF93B4 +:101FA00000D01F92CDB7DEB700911202109113023C +:101FB000209114023091150200931602109317021B +:101FC00020931802309319022091120220FF21C0A1 +:101FD000042FF62EE92E182F9E012F5F3F4F0E94EF +:101FE0003F0E8091160210FB87F98093160216951A +:101FF000809117028078182BE0FA17F910931702D6 +:10200000F0921802009319024B8169818A810E9423 +:10201000BB0F0F900F900F90DF91CF911F910F91F9 +:10202000FF90EF9008950F931F93CF93DF93EC01F0 +:10203000062F142F9091120290FF65C0892F8E7782 +:10204000823021F4CE010E94CA0F1BC0892F8695D1 +:102050008F732EE3280F2F73243018F4109115027C +:1020600010C0865C8F73893060F4C92FCC1FCC27D9 +:10207000CC1FD09113028D2F880FC82BD7FBDD27E3 +:10208000D0F980911202C0FB87F980931202C695A5 +:10209000809113028078C82BD0FBC7F9C09313023C +:1020A00000931402109315026091120270911302B2 +:1020B00080911402909115020E94040F80911502E4 +:1020C0001F928F93809114021F928F93809112021E +:1020D000881F8827881F90911302292F220F822B97 +:1020E00097FB992790F99F938F9382E593E09F93B5 +:1020F0008F930E9446088DB79EB708960FB6F89446 +:102100009EBF0FBE8DBFDF91CF911F910F9108959C +:10211000E2E1F2E02081221F2227221F30911302E8 +:10212000432F440F842F822B37FB992790F90A966F +:1021300068E671E00E94312E438162810C94131095 +:1021400020911202221F2227221F30911302432FB7 +:10215000440F842F822B37FB992790F98A30910501 +:102160001CF4825A9E4F01C00A9768E671E00E94F3 +:10217000312E40911502609114020C94131060915D +:102180001402862F90E08F3E910514F46F5E01C01B +:102190006FEF80911202881F8827881F9091130289 +:1021A000292F220F97FB992790F940911502822B36 +:1021B0000C94131060911402862F90E0419714F054 +:1021C000615101C060E080911202881F8827881F3A +:1021D00090911302292F220F97FB992790F9409194 +:1021E0001502822B0C94131040911502842F90E05D +:1021F0008F3E910514F44F5E01C04FEF80911202A3 +:10220000881F8827881F90911302292F220F97FB80 +:10221000992790F960911402822B0C94131040912D +:102220001502842F90E0419714F0415101C040E025 +:1022300080911202881F8827881F90911302292FEE +:10224000220F97FB992790F960911402822B0C942E +:10225000131080917E0181110FC081E080937E0177 +:1022600089E0809391008FB7F89493E09093990060 +:1022700090ED909398008FBF0895809171008260D7 +:10228000809371008091090280FF08C081E493E08F +:102290009F938F930E9446080F900F90089580910E +:1022A00071008D7F809371008091090280FF08C0CA +:1022B0008FE293E09F938F930E9446080F900F90B8 +:1022C00008959091120290FF4BC09178811102C045 +:1022D000926007C0883110F09E6203C08F73880F30 +:1022E000982B9093120260911202709113028091C8 +:1022F0001402909115020E94040F8091120286959B +:102300008F731F928F9385EA93E09F938F930E9420 +:10231000460880911202982F9E770F900F900F9091 +:102320000F90923019F40E944F1107C08695825C7D +:102330008F73863110F40E943D1180911202881F24 +:102340008827881F90911302292F220F97FB992726 +:1023500090F94091150260911402822B0C94131095 +:102360000895809109028160809309028FE394E0CF +:102370009F938F930E94460881E080937F01809114 +:1023800009020F900F9080FF08C089E294E09F93AC +:102390008F930E9446080F900F900E94F92A811196 +:1023A00010C08091090280FF08C081E094E09F93F3 +:1023B0008F930E9446080F900F900E94D82A0E9487 +:1023C0000A0F0E94000F6093120270931302809311 +:1023D0001402909315026E77C1F48091090280FF78 +:1023E00008C088EB93E09F938F930E9446080F905C +:1023F0000F900E940A0F0E94000F609312027093C8 +:10240000130280931402909315020E942F0F0E94D2 +:1024100029118091120280FF04C086958F730C945D +:10242000611108958091120286958F738F5F8831B4 +:1024300008F081E00C94611180911202982F909520 +:1024400090FB80F980931202609112027091130246 +:1024500080911402909115020E94040F8091120243 +:1024600081701F928F9387E793E09F938F930E94D1 +:102470004608809112020F900F900F900F9080FFEE +:1024800004C086958F730C9461110E944F112FEF39 +:1024900080E792E0215080409040E1F700C00000CA +:1024A0000C94A40FCF93C82F80917C0190917D0153 +:1024B0000E94E828EC2FF0E0E25EFA4FE491F0E0B1 +:1024C0008E179F0718F10E94DC2890937D0180935E +:1024D0007C01E0917B01F0E0EE5DFA4F4491809148 +:1024E0001202881F8827881F90911302292F220F1C +:1024F00097FB992790F960911402822B0E94CA0FD2 +:1025000080917B0190E0019680937B01CF910895AB +:10251000CF93C82F8091790190917A010E94E82889 +:10252000EC2FF0E0E55EFA4FE491F0E08E179F07A4 +:10253000E8F00E94DC2890937A0180937901409121 +:1025400015026091140280917701909178010E94A8 +:10255000CA0F8091770190917801019668E671E049 +:102560000E941D2E9093780180937701CF9108955A +:10257000CF92DF92FF920F931F93CF93DF93F82EAA +:1025800080917501909176010E94E828EF2DE695E3 +:10259000F0E0E55EFA4FE491F0E08E179F07E8F176 +:1025A0000E94DC2890937601809375010AE112E085 +:1025B000C0E0D0E088E6C82EDD24D394809173017A +:1025C000909174018C0F9D1FB6010E941D2E9801E1 +:1025D00040911502609114020E943F0E62960D5FB9 +:1025E0001F4FC83681E0D80749F70E94A40F2091F9 +:1025F000730130917401F0FE0AC0C9010196BE0159 +:102600000E941D2E909374018093730106C0215087 +:1026100031093093740120937301DF91CF911F91A1 +:102620000F91FF90DF90CF9008958F929F92AF927D +:10263000BF92CF92DF92EF92FF920F931F93CF93AF +:10264000DF93C82F80FF03C0DD24DA9402C0DD24AD +:10265000D39480917101909172010E94E828C695EF +:10266000EC2FF0E0E85EFA4FE491F0E08E179F0760 +:1026700008F467C00E94DC28909372018093710176 +:102680009AE1E92E92E0F92E0CE112E0C0E0D0E0F0 +:1026900027E0822E912CF80131971082F7011082E9 +:1026A000F801108287E0A82EB12CC12C8091700116 +:1026B0008C0D87FD8C5E992787FD9095C817D907EB +:1026C000E9F4209115022A9DC0012B9D900D112443 +:1026D000B4010E94312E462F80911202881F882754 +:1026E000881F90911302592F550F97FB992790F946 +:1026F000970160911402852B0E943F0ECD0CF1E0F2 +:10270000AF1AB10899F6219683E0E80EF11C0D5F2F +:102710001F4FC431D10509F0BECF0E94A40F809194 +:10272000700191E0D91206C0811102C083E107C097 +:10273000815005C090E00196BE010E94312E809329 +:102740007001DF91CF911F910F91FF90EF90DF907B +:10275000CF90BF90AF909F908F9008959F92AF922F +:10276000BF92CF92DF92EF92FF920F931F93CF937E +:10277000DF93CDB7DEB7EC970FB6F894DEBF0FBE90 +:10278000CDBF182F80916E0190916F010E94E828B3 +:10279000E12FF0E0EB5EFA4FE491F0E08E179F0737 +:1027A00008F495C00E94DC2890936F0180936E011D +:1027B000CE0101967C015E0193E0A90EB11CC12CF3 +:1027C000D12C8701F50131971082F7011082F501B4 +:1027D0001082912C9091010180916D01999E800D44 +:1027E000112487FD04C084311CF083E101C080E026 +:1027F000992787FD9095C816D906A1F480911202F9 +:10280000881F8827881F90911302592F550F97FB17 +:10281000992790F997014091150260911402852B38 +:102820000E943F0E9394F7E09F12D4CF8FEFC81A07 +:10283000D80A93E0E90EF11CE3E0AE0EB11CF4E11E +:10284000CF16D10409F0BECF2CE132E059E0E52EDD +:10285000F12C64E1C62ED12CC701B6010E94312EA5 +:10286000D9011197FC01EE0FFF1FE80FF91FE00FD0 +:10287000F11F81818C93119780818C938281F90162 +:102880008083FFEFEF1AFF0A2D5F3F4F8DE1E816BF +:10289000F10411F70E94A40F9091010180916D0144 +:1028A000913049F48A3F2CF489EF80936D018FEFCA +:1028B00008C081500AC08B313CF08AE180936D01E1 +:1028C00081E08093010103C08F5F80936D01EC96DE +:1028D0000FB6F894DEBF0FBECDBFDF91CF911F9131 +:1028E0000F91FF90EF90DF90CF90BF90AF909F90AF +:1028F00008951F920F920FB60F9211242F933F93BA +:102900004F935F936F937F938F939F93AF93BF93F7 +:10291000EF93FF938091120286958F739EE3980F39 +:102920009F73943020F482500E94521223C09AE385 +:10293000980F9F73933020F486500E9488121AC01B +:1029400097E3980F9F73963020F489500E94B81235 +:1029500011C091E3980F9F73963020F48F500E941E +:10296000151308C09BE2980F9F73933018F485519C +:102970000E94AE13FF91EF91BF91AF919F918F9104 +:102980007F916F915F914F913F912F910F900FBE6B +:102990000F901F90189580919301089508959FB707 +:1029A000F894109282019FBF90915A02943009F0DE +:1029B00057C09091E9009F703091EC00232F217057 +:1029C00030FD20E8922B23E02093E9002091EB00DA +:1029D00020FF43C02091EE0027FF3FC020918001DF +:1029E000222321F02091E80025FF37C010928001BA +:1029F00026E03091E80035FD15C030915A023430A0 +:102A000061F53091EB0035FD28C0215021F481E0C3 +:102A10008093800122C0EFE9FFE03197F1F700C019 +:102A20000000E7CF8093F1008091E80085FD0AC0A7 +:102A30008091E80080FFFCCF8091E8008E77809342 +:102A4000E80006C08FB7F89421E0209382018FBF81 +:102A50009F709093E90080E008959F709093E90043 +:102A60008FEF0895CF93DF9300D01F92CDB7DEB7DD +:102A700020915A02243021F523E029839B838A8305 +:102A800082E08093E9008FEF9091E800815095FDFE +:102A900006C095ED9A95F1F700008111F5CF809170 +:102AA000E80085FF0DC040E050E063E070E0CE013B +:102AB00001960E94CB178091E8008E778093E80002 +:102AC0000F900F900F90DF91CF910895CF93DF93E8 +:102AD00000D01F92CDB7DEB79C0180915A0284309E +:102AE00019F592E099833B832A839093E9008FEF55 +:102AF0009091E800815095FD06C095ED9A95F1F70B +:102B000000008111F5CF8091E80085FF0DC040E005 +:102B100050E063E070E0CE0101960E94CB178091F7 +:102B2000E8008E778093E8000F900F900F90DF9170 +:102B3000CF910895CF93DF93EC0190915A02943096 +:102B400009F046C080910C018823D9F080910D01D5 +:102B50008823B9F09093E9008FEF9091E8008150BD +:102B600095FD06C095E19A95F1F700008111F5CF2A +:102B70008091E80085FF2CC040E050E060E170E00B +:102B800017C081E08093E9008FEF9091E8008150B9 +:102B900095FD06C095ED9A95F1F700008111F5CFEE +:102BA0008091E80085FF14C040E050E068E070E0EC +:102BB000CE010E94CB178091E8008E778093E800C9 +:102BC00080E1FE01A3E8B1E001900D928A95E1F762 +:102BD000DF91CF91089587E497E00E94AD0780913F +:102BE0005902811109C00E9460190E94BD1980918B +:102BF000E20084608093E200089583E497E00E94FD +:102C0000AD071092590208958FE397E00C94AD0739 +:102C10008BE397E00C94AD0787E397E00E94AD0744 +:102C20000C94A428209181012F5F822F62E30E94DF +:102C3000112E992319F0209381010895109281019A +:102C400080918201882371F180915A02843041F58C +:102C50008091E9008F702091EC00922F917020FDFF +:102C600090E8892B93E09093E9009091EB0090FF1E +:102C700014C09091EE0097FF10C09091E80095FF6E +:102C800003C01092F100F9CF9091E80090FF05C0C9 +:102C90009091E8009E779093E8008F708093E90010 +:102CA00010928201089542E061EC81E00E94DA18FE +:102CB00042E061EC82E00E94DA1842E261EC83E0DB +:102CC0000E94DA1842E161EC84E00C94DA188091F9 +:102CD0005C02833009F455C030F4813071F08230E9 +:102CE00009F48EC008958A3009F47AC08B3009F453 +:102CF00060C0893009F09CC020C080915B02813A9D +:102D000009F096C08091E800877F8093E800809169 +:102D10005F0290916002892B21F460E183E891E0E9 +:102D200003C060E080E090E070E00E94161880919F +:102D3000E8008B778093E800089580915B028132F0 +:102D400009F076C080915F0290916002009719F0BF +:102D5000039709F06DC08091E800877F8093E800B9 +:102D60008091E80082FD05C080915A028111F8CF60 +:102D70005FC08091F100809393018091E8008B7790 +:102D800053C080915B02813A09F052C080915F028A +:102D900090916002892B09F04BC08091E800877FF9 +:102DA0008093E8008091E80080FFFCCF80910C01C7 +:102DB00036C080915B028132D9F580915F0290919B +:102DC0006002892BA9F58091E800877F8093E80055 +:102DD0000E940F1980915D0280930C010C94922146 +:102DE00080915B02813221F58091E800877F80939A +:102DF000E8000E940F1980915E028093940108956B +:102E000080915B02813AA1F48091E800877F8093F2 +:102E1000E8008091E80080FFFCCF809194018093CE +:102E2000F1008091E8008E778093E8000C940F19F0 +:102E3000089584B7877F84BF88E10FB6F8948093A4 +:102E40006000109260000FBE80E8809361001092D5 +:102E500061000E94E41C0E9460190E94BD198091CB +:102E6000E20084608093E2008FEC94E10E942B28C2 +:102E700078940E94421C0E94E61C82E091E00E942D +:102E80005D1C86E297E00E94AD0780915A02853072 +:102E900089F482E297E00E94AD070E946C2880913D +:102EA0005802882391F30E949628882371F30E9488 +:102EB000B517EBCF0E940C1DE8CF292F3327233005 +:102EC0003105C9F064F42130310581F0223031053B +:102ED00009F043C084E790E023E837E042C02132A4 +:102EE0003105F1F02232310541F137C082E190E045 +:102EF00027EF37E036C099278130910541F08230C5 +:102F0000910541F0892B49F5EFE7F7E005C0EDE6C3 +:102F1000F7E002C0EBE4F7E0849190E09F0121C06C +:102F20006430D8F4E62FF0E0EE0FFF1FED5CFE4FAB +:102F30002081318189E090E014C0643070F470E049 +:102F4000FB01EE0FFF1FE55DFE4F20813181FB018C +:102F5000E95DFE4F808190E004C080E090E020E0D9 +:102F600030E0FA0131832083089580E189BD82E158 +:102F700089BD09B400FEFDCF8091D8008F7D80937C +:102F8000D8008091E00082608093E0008091E000B2 +:102F900081FDFCCF0895CF92DF92EF92FF920F93C5 +:102FA0001F93CF93DF93EC018B016A010E942E19CE +:102FB000811133C0C114D10439F0F60180819181AF +:102FC000081B190BC80FD91FE12CF12C0115110595 +:102FD00019F18091E80085FD16C08091E8008E7798 +:102FE0008093E800C114D10449F0F60180819181F9 +:102FF000E80EF91EF182E08285E00FC00E942E19D2 +:10300000882321F30AC089918093F10001501109AE +:10301000FFEFEF1AFF0ADACF80E0DF91CF911F9127 +:103020000F91FF90EF90DF90CF9008952091610273 +:10303000309162022617370748F06115710539F49F +:103040002091E8002E772093E80001C0B90140E00C +:1030500061157105A9F120915A02222309F443C098 +:10306000253009F442C02091E80023FD40C02091A2 +:10307000E80022FD32C02091E80020FFE9CF409116 +:10308000F3002091F20030E0342BFC01CF016115F8 +:10309000710559F02830310540F481918093F10099 +:1030A000615071092F5F3F4FF1CF41E0283031056A +:1030B00009F040E02091E8002E772093E800C8CF87 +:1030C0004111C9CF0AC080915A02882361F085302E +:1030D00061F08091E80083FD0AC08091E80082FFE2 +:1030E000F2CF80E0089582E0089583E0089581E0C2 +:1030F000089520916102309162022617370748F047 +:103100006115710539F42091E8002E772093E800CD +:1031100001C0B901FC0120E06115710591F18091B8 +:103120005A02882309F440C0853009F43FC08091D9 +:10313000E80083FD3DC08091E80082FD2FC08091B2 +:10314000E80080FFE9CF2091F3008091F20090E049 +:10315000922B6115710559F08830910540F4249146 +:103160002093F1003196615071090196F2CF21E070 +:10317000089709F020E08091E8008E778093E800BE +:10318000CBCF2111CCCF0AC080915A02882361F0A5 +:10319000853061F08091E80083FD0AC08091E800ED +:1031A00082FFF2CF80E0089582E0089583E00895E1 +:1031B00081E00895982F973058F59093E90098177B +:1031C00039F07091EC002091ED005091F00003C0B7 +:1031D000242F762F50E021FF19C03091EB003E7F65 +:1031E0003093EB003091ED003D7F3093ED00309156 +:1031F000EB0031603093EB007093EC002093ED0016 +:103200005093F0002091EE0027FF07C09F5FD3CFBF +:103210008F708093E90081E0089580E008958091A7 +:103220005B0287FF11C08091E80082FD05C080919C +:103230005A028111F8CF11C08091E8008B770BC042 +:1032400080915A02882349F08091E80080FFF8CFEE +:103250008091E8008E778093E80008952091E40043 +:103260003091E50095E64091EC00842F817040FF9D +:1032700022C08091E80080FD1CC080915A02882302 +:1032800091F0853091F08091EB0085FD10C0409168 +:10329000E4005091E5004217530729F39A01915039 +:1032A00011F784E0089582E0089583E0089581E0B5 +:1032B000089580E008954091E80042FFDECF089530 +:1032C0000E94CE190E94D619E0EEF0E08081816064 +:1032D0008083E8EDF0E080818F77808319BCA7EDD3 +:1032E000B0E08C918E7F8C9380818F7E8083109252 +:1032F000590208950F931F93CF93DF930E94CE1925 +:103300000E94D619C8EDD0E088818F7788838881A4 +:103310008068888388818F7D888319BC10925A02C7 +:1033200010925602109258021092570200EE10E0CE +:10333000F80180818B7F808388818160888342E06F +:1033400060E080E00E94DA18E1EEF0E080818E7F9C +:103350008083E2EEF0E080818160808380818860FC +:103360008083F80180818E7F80838881806188835B +:10337000DF91CF911F910F910895E8EDF0E08081EA +:103380008F7E8083E7EDF0E080818160808384E040 +:1033900082BF81E0809359020C947A19E8EDF0E045 +:1033A00080818E7F80831092E20008951092DA006F +:1033B0001092E10008951F920F920FB60F92112400 +:1033C0002F933F934F935F936F937F938F939F932D +:1033D000AF93BF93EF93FF938091E10082FF0BC007 +:1033E0008091E20082FF07C08091E1008B7F809393 +:1033F000E1000E9412168091DA0080FF1FC08091C8 +:10340000D80080FF1BC08091DA008E7F8093DA00A5 +:103410008091D90080FF0DC080E189BD82E189BD26 +:1034200009B400FEFDCF81E080935A020E94EB15A3 +:1034300005C019BC10925A020E94FD158091E1004E +:1034400080FF19C08091E20080FF15C08091E200EA +:103450008E7F8093E2008091E20080618093E200A1 +:103460008091D80080628093D80019BC85E0809359 +:103470005A020E9408168091E10084FF30C08091BA +:10348000E20084FF2CC080E189BD82E189BD09B4DE +:1034900000FEFDCF8091D8008F7D8093D800809171 +:1034A000E1008F7E8093E1008091E2008F7E809327 +:1034B000E2008091E20081608093E20080915602F8 +:1034C000882311F084E007C08091E30087FD02C0EB +:1034D00081E001C083E080935A020E940C16809123 +:1034E000E10083FF29C08091E20083FF25C0809125 +:1034F000E100877F8093E10082E080935A0210927E +:1035000056028091E1008E7F8093E1008091E2007D +:103510008E7F8093E2008091E20080618093E200E0 +:1035200042E060E080E00E94DA188091F00088605C +:103530008093F0000E940416FF91EF91BF91AF912C +:103540009F918F917F916F915F914F913F912F91BB +:103550000F900FBE0F901F9018951F920F920FB6ED +:103560000F9211242F933F934F935F936F937F9309 +:103570008F939F93AF93BF93CF93DF93EF93FF937B +:10358000C091E900CF708091EC00D82FD17080FD00 +:10359000D0E81092E9008091F000877F8093F000DE +:1035A00078940E94F11A1092E9008091F0008860EE +:1035B0008093F000CD2BCF70C093E900FF91EF9185 +:1035C000DF91CF91BF91AF919F918F917F916F913B +:1035D0005F914F913F912F910F900FBE0F901F90D1 +:1035E00018951F93CF93DF93CDB7DEB7AA970FB689 +:1035F000F894DEBF0FBECDBFEBE5F2E088E08E0FA2 +:103600009091F10091938E13FBCF0E9467168091E9 +:10361000E80083FF1FC180915B0290915C02492FFB +:1036200050E04A30510508F015C1FA01E15AFF4F48 +:103630000C94452E803881F0823809F00BC18091BE +:103640005F028F708093E9008091EB0085FB8827F3 +:1036500080F91092E90006C08091570290915802BB +:10366000911182609091E800977F9093E800809399 +:10367000F1001092F100C8C0282F2D7F09F0EAC098 +:10368000882319F0823061F0E5C080915D028130BD +:1036900009F0E0C0933009F080E0809358022BC01D +:1036A00080915D02811127C080915F028F7009F4C3 +:1036B000D1C08093E9002091EB0020FF1CC0933023 +:1036C00021F48091EB00806214C09091EB00906136 +:1036D0009093EB0021E030E0A90102C0440F551F98 +:1036E0008A95E2F74093EA001092EA008091EB009D +:1036F00088608093EB001092E9008091E800877F5A +:1037000086C08111A7C010915D021F778091E300F0 +:103710008078812B8093E3008091E800877F8093FD +:10372000E8000E940F198091E80080FFFCCF809193 +:10373000E30080688093E300111102C082E001C0C1 +:1037400083E080935A0286C08058823008F082C09D +:1037500080915D0290915E028C3D53E0950779F572 +:1037600083E08A838AE289834FB7F894DE01139657 +:1037700020E03EE051E2E32FF0E050935700E49167 +:1037800020FF03C0E295EF703F5FEF708E2F90E057 +:10379000EA3010F0C79601C0C0968D939D932F5FBD +:1037A000243149F74FBF8091E800877F8093E8007C +:1037B0006AE270E0CE0101960E94161814C0AE01B4 +:1037C0004F5F5F4F60915F020E945D17BC010097E1 +:1037D00009F440C09091E800977F9093E8008981B8 +:1037E0009A810E9479188091E8008B778093E80095 +:1037F00031C0803879F58091E800877F8093E800B8 +:10380000809156028093F1008091E8008E7780933A +:10381000E8000E940F191EC081111CC090915D022A +:103820009230C0F48091E800877F8093E800909305 +:1038300056020E940F1980915602811106C0809194 +:10384000E30087FD02C081E001C084E080935A025A +:103850000E9453168091E80083FF0AC08091E8001F +:10386000877F8093E8008091EB0080628093EB007B +:10387000AA960FB6F894DEBF0FBECDBFDF91CF91F1 +:103880001F910895CF9380915A028823A1F0C0918F +:10389000E900CF709091EC00892F817090FD80E855 +:1038A000C82B1092E9008091E80083FD0E94F11A74 +:1038B000CF70C093E900CF91089590939A018093BF +:1038C00099010895E0919901F0919A01309721F0C2 +:1038D0000190F081E02D099480E00895EF92FF922D +:1038E0000F931F93CF93DF93E0919901F0919A0189 +:1038F0003097B1F18C010280F381E02D0995809120 +:10390000090282FF2DC080FF04C080EE98E00E9473 +:10391000AD07E80110E18AEDE82E88E0F82E8091ED +:10392000090280FF0BC088811F928F93FF92EF9254 +:103930000E9446080F900F900F900F901150219603 +:103940001111EDCF8091090280FF0AC088ED98E047 +:10395000DF91CF911F910F91FF90EF900C94AD07E5 +:10396000DF91CF911F910F91FF90EF9008952091DB +:103970009701309198018217930771F09093980105 +:1039800080939701E0919901F0919A01309721F08D +:103990000680F781E02D09940895209195013091DA +:1039A00096018217930771F0909396018093950189 +:1039B000E0919901F0919A01309721F00084F1850E +:1039C000E02D0994089508950C94E31C0E94D328D7 +:1039D0000E94D10C0E94A0290C94B111CF93DF93C7 +:1039E0001F92CDB7DEB79091090292FF10C090FFF1 +:1039F0000EC01F928F9322EF38E03F932F9389835D +:103A00000E9446080F900F900F900F9089810F90A1 +:103A1000DF91CF910C947D0C3F924F925F926F9209 +:103A20007F928F929F92AF92BF92CF92DF92EF924E +:103A3000FF920F931F93CF93DF93CDB7DEB72B97F2 +:103A40000FB6F894DEBF0FBECDBF0E94160D84EBFB +:103A500091E09F838E8305E010E0412C512C3201D0 +:103A60004394302E802F0E94910DEE81FF81F290C1 +:103A7000E290D290C290FF83EE834B015C018C24D4 +:103A80009D24AE24BF2481149104A104B104A1F4A7 +:103A90000150110930F78FEF89838A831B820E94BE +:103AA000DC288160782F9D838C8349815A816B81CA +:103AB0008D810E94EE1D57C0E0910902E1FF0AC00E +:103AC000688779878A879B870E94C80D9B858A852E +:103AD00079856885E0E1F0E0730162010E2E04C093 +:103AE000CC0CDD1CEE1CFF1C0A94D2F7A70196013A +:103AF000282139214A215B21232B242B252B79F1E5 +:103B0000E9833A82AB01BC014C215D216E217F210A +:103B100081E0452B462B472B09F480E08B830E94E4 +:103B2000DC288160782F9D838C8349815A816B8149 +:103B30008D810E94EE1D000F111F000F111FF80153 +:103B4000E456FE4F80819181A281B381C826D92697 +:103B5000EA26FB26C082D182E282F38204C031973A +:103B600008F0BACF95CF10919B010E94621C1817E4 +:103B7000E9F00E94621C80939B012B960FB6F8948B +:103B8000DEBF0FBECDBFDF91CF911F910F91FF9090 +:103B9000EF90DF90CF90BF90AF909F908F907F90ED +:103BA0006F905F904F903F900C94EE1C2B960FB649 +:103BB000F894DEBF0FBECDBFDF91CF911F910F9163 +:103BC000FF90EF90DF90CF90BF90AF909F908F903D +:103BD0007F906F905F904F903F900895CF93DF93C9 +:103BE000CDB7DEB72B970FB6F894DEBF0FBECDBFB3 +:103BF0004F83588769877A878B87DE01119686E025 +:103C0000FD0111928A95E9F785E0FE013796019052 +:103C10000D928A95E1F749815A816B817C818D8172 +:103C20009E810E9430242B960FB6F894DEBF0FBE03 +:103C3000CDBFDF91CF910895CF93882309F4C2C0FF +:103C4000C82F823859F40E94621C81FDBBC089E3F1 +:103C50000E940A270E94FC2789E30CC0833879F46C +:103C60000E94621C80FDAEC083E50E940A270E946C +:103C7000FC2783E50E945D27CF910C94FC278438B4 +:103C800059F40E94621C82FD9DC087E40E940A27AD +:103C90000E94FC2787E4EECF8CEF8C0F813A48F42A +:103CA0008C2F0E94C22D81118DC08C2F0E940A275B +:103CB000E3CF80E28C0F883048F4C77081E001C008 +:103CC000880FCA95EAF70E94B527D6CF8BE58C0FEF +:103CD000833078F4C53A29F0C63A31F083E890E0B1 +:103CE00005C081E890E002C082E890E0CF910C949A +:103CF000B71C88E58C0F833108F064C0C83A39F1ED +:103D0000C93A41F1CA3A49F1CB3A51F1CC3A59F1A9 +:103D1000CD3A61F1C03B69F1CE3A71F1CF3A79F118 +:103D2000C13B81F1C23B89F1C33B91F1C43B99F1A5 +:103D3000C53BA1F1C63BA9F1C73BB1F1C83BB9F105 +:103D4000C93BC1F1CA3BC9F180E090E038C082EEC6 +:103D500090E035C089EE90E032C08AEE90E02FC04E +:103D600085EB90E02CC086EB90E029C087EB90E0DB +:103D700026C08CEC90E023C08DEC90E020C083E85E +:103D800091E01DC08AE891E01AC082E991E017C075 +:103D900084E991E014C081E292E011C083E292E0F4 +:103DA0000EC084E292E00BC085E292E008C086E299 +:103DB00092E005C087E292E002C08AE292E0CF91F1 +:103DC0000C94CD1CCF910895882309F44BC0823800 +:103DD00059F40E94621C81FF45C089E30E940A27B2 +:103DE0000E94FC2789E30CC0833871F40E94621C96 +:103DF00080FF38C083E50E940A270E94FC2783E5E4 +:103E00000E945D270C94FC27843859F40E94621CA0 +:103E100082FF28C087E40E940A270E94FC2787E4CB +:103E2000EFCF9CEF980F913A58F390E2980F9830AB +:103E300050F4877091E001C0990F8A95EAF7892FB5 +:103E40000E94BB27DFCF9BE5980F933020F480E0E2 +:103E500090E00C94B71C885A833120F480E090E005 +:103E60000C94CD1C0895882321F00E94B5270C9452 +:103E7000FC270895882321F00E94BB270C94FC277F +:103E800008957F928F929F92AF92BF92CF92DF92CE +:103E9000EF92FF920F931F93CF93DF931F92CDB7B3 +:103EA000DEB77C01C62E772EFC01058102950F70CE +:103EB000128111110E94D2270E940327882379F0D2 +:103EC000112369F080E28C0D883048F082E00E9476 +:103ED000EC260E94032791E0D82ED92601C0D12CD0 +:103EE000E72DE295EF70F0E0E759FF4F0C94452E77 +:103EF000872D807F072D0F70882311F00295007F9A +:103F0000112389F0002309F48DC180E28C0D8830E3 +:103F100020F4802F0E94B52703C0802F0E94C52760 +:103F20000E94FC277FC18C2D0E94E41E002309F40F +:103F300092C180E28C0D883020F4802F0E94BB2734 +:103F400003C0802F0E94CB270E94FC2784C1872DAD +:103F5000807F972D9F70803211F4892F03C0892FA5 +:103F60008295807FCC2021F0F1E0CF16A1F01DC01A +:103F7000112339F0002319F1013009F50E94E527DA +:103F80006AC1002319F0013009F465C189830E94D8 +:103F9000E827898105C1112321F0063008F05BC1B3 +:103FA0000EC0053008F057C1FBC0112359F00023A3 +:103FB00031F0F701958190FF35C19F7095830E9484 +:103FC000331F49C1002309F4EBC032C1872D869508 +:103FD0008695837090E0009719F0019761F03BC1DE +:103FE000112321F08C2D972D937002C080E090E07A +:103FF0000E94B71C30C1112321F08C2D972D937096 +:1040000002C080E090E00E94CD1C25C1872D837006 +:1040100009F052C011111FC18C2D829586958770B1 +:10402000880F880F9C2D9F70892E912CA12CB12C6C +:10403000082E04C0880C991CAA1CBB1C0A94D2F739 +:10404000C4FE14C00FE010E020E030E0B901A80188 +:1040500004C0440F551F661F771F8A95D2F7CB0106 +:10406000BA01609570958095909503C060E070E00E +:10407000CB01272D26952695237030E0223031057F +:1040800069F02330310589F0682979298A299B292B +:104090002130310571F00E947825DDC06829792929 +:1040A0008A299B290E949425D6C00E947825C501A3 +:1040B000B4010E945C25CFC0112319F0872D8170B7 +:1040C00001C08695882309F4C6C08C2D82958695FB +:1040D0008770880F880F9C2D9F70892E912CA12CA2 +:1040E000B12C082E04C0880C991CAA1CBB1C0A9475 +:1040F000D2F7C4FE14C00FE010E020E030E0B901B8 +:10410000A80104C0440F551F661F771F8A95D2F778 +:10411000CB01BA01609570958095909503C060E0E1 +:1041200070E0CB01272D269526952370422F50E075 +:104130004230510569F04330510589F068297929E9 +:104140008A299B294130510571F00E94522683C073 +:10415000682979298A299B290E946E267CC00E94A1 +:104160005226C501B4010E94362675C08C2D90E000 +:10417000FC01E05EF109E531F10508F04FC0E758B8 +:10418000FF4F0C94452E0C2D0F70872D8F7111232E +:1041900021F00E94CF25802F12CF0E94F025802F82 +:1041A0000E943A1F58C0112341F0053008F053C057 +:1041B000872D8F710E9415264EC0063008F04BC027 +:1041C000F7CF112339F0872D8F710E94CF2543C07F +:1041D0001123C9F3872D8F710E94F0253CC0112354 +:1041E00029F0872D8F710E94BA2535C00E94B02515 +:1041F00032C0112351F0172D1F71812F0E94CF253E +:1042000063E0812F0E94E32626C081E00E94EC2615 +:10421000023008F182E00E94EC261DC0112331F02B +:10422000002389F28C2D0E941C1E15C0002391F2E0 +:104230008C2D0E94E41E0FC0472D4F706C2DC701BE +:104240000E94EA0B0E94D42406C0472D4F706C2DAB +:10425000C7010E946208DD20F9F00E94DF2680FD80 +:104260001BC0F70112820E94D9260E94CF25C701E8 +:104270000E945B210E94D9260F90DF91CF911F9160 +:104280000F91FF90EF90DF90CF90BF90AF909F90F5 +:104290008F907F900C94F0250F90DF91CF911F911C +:1042A0000F91FF90EF90DF90CF90BF90AF909F90D5 +:1042B0008F907F9008950F931F93CF93DF93EC011E +:1042C000888199812B813C81232BB9F09F3F11F488 +:1042D0008F3F99F0CE010E94D608882371F0688143 +:1042E00079818A810E94D5268C010E948A260E94AB +:1042F0005125B801CE010E94411FDF91CF911F913E +:104300000F9108950E94D2270E94E2270E94A427BD +:104310000E94FC2780E090E00E94B71C80E090E0C3 +:104320000C94CD1C0E94C2270C9482210E94CA26A4 +:10433000292F22952F7030E02C3031054CF42A3093 +:1043400031056CF42250310922303105A8F407C040 +:104350002C30310569F02F30310551F00DC0803F10 +:1043600069F018F4803E40F409C0843F29F406C087 +:1043700093FB882780F9089580E0089581E00895EF +:10438000CF93DF9300D000D01F92CDB7DEB70F9050 +:104390000F900F900F900F90DF91CF910895CF93D2 +:1043A000DF9300D000D000D0CDB7DEB726960FB691 +:1043B000F894DEBF0FBECDBFDF91CF9108951F935C +:1043C000CF93DF93C091B40116E08091B501C81777 +:1043D00099F0D0E01C9FF0011D9FF00D1124EA54CC +:1043E000FE4F4081518162817381848195810E9459 +:1043F000CF212196C770E9CFDF91CF911F9108950A +:104400004091E6015091E7016091E8017091E90166 +:104410008091EA019091EB010C94CF218091EB0106 +:1044200082958F7009F054C08091E801882309F4C7 +:104430004FC08091B401A091B5016091E6017091E7 +:10444000E7014091E9015091EA01B6E08A1709F4C9 +:104450003FC090E041155105C1F17F3F11F46F3F1E +:10446000A1F1B89FF001B99FF00D1124EA54FE4F5D +:10447000218172132AC02081621327C02281211159 +:1044800024C0238134812417350710F421503109C9 +:10449000241B350B283C3105C0F42091EB012F7013 +:1044A00020612093EB0126E0289FF001299FF00D69 +:1044B0001124E554FE4F80818F708061808386EEE9 +:1044C00091E00E945B210C94DF2101968770BECFA2 +:1044D0000895CF92DF92EF92FF920F931F93CF93A5 +:1044E000DF93CDB7DEB762970FB6F894DEBF0FBE8D +:1044F000CDBF8C0185E0F801DE011D9601900D9283 +:104500008A95E1F7D8014C9111965C91119712961A +:104510006C9112971396CD90DC9014973091E60130 +:104520007091E7018091E9019091EA01009709F407 +:104530006BC17F3F19F43F3F09F466C1E090E80189 +:10454000EE2009F4C0C02091EB01C816D90628F06E +:10455000F601E81BF90BCF0104C0809590958C0DF6 +:104560009D1DFF24F394883C910578F0F12C207F69 +:1045700009F0C6C07C2DD98AC88A89890E94C021C9 +:1045800086EE91E00E945B21B1C0822F807F09F00E +:1045900046C0751314C0341312C0611110C02F70BF +:1045A00020612093EB010E94002286EE91E00E94A0 +:1045B0005B218091EB01D80115968C932EC0CD28FC +:1045C00019F15F3F11F44F3FF9F0F62E61111CC055 +:1045D0008091B4012091B50136E0821709F45AC0E8 +:1045E00090E0389FF001399FF00D1124EA54FE4FFE +:1045F0007181571306C07081471303C07281711116 +:1046000003C001968770E9CFF62E662309F418C11E +:104610008091EB0181608093EB01F12C11C1751346 +:1046200008C0341306C0611104C08091EB01D801A9 +:10463000C3C04D875E878D859E856A8B0E949621BB +:104640006A898823E1F16623D1F12091EB01822F61 +:1046500082958F7090E0029774F08091E6019091BE +:10466000E70198878F831986DB86CA862C87CE015F +:1046700007960E945B2186E0F801A6EEB1E001906A +:104680000D928A95E1F70E940E220E940022FF24DB +:10469000F394D6C04D875E878D859E850E94CA267D +:1046A000292F22952F7030E0223031050CF0BCC04C +:1046B0009F7009F0B6C0805E883008F4C1C0C801A0 +:1046C0000E945B21E4CFC816D90608F453C0F60156 +:1046D000E81BF90BCF01883C910508F450C0F12C80 +:1046E0007C2DD98AC88A89890E94C021E6EEF1E032 +:1046F00086E0DF011D928A95E9F70E940022A0C0A2 +:10470000751314C0341312C0611110C08091EB01F5 +:10471000F8018583C8010E945B2186E0E6EEF1E0A6 +:10472000DF011D928A95E9F7FE2C8AC04D875E87CE +:104730008D859E856A8B0E9496216A89882309F45B +:10474000BECF662309F4BBCF2091EB01822F829567 +:104750008F7090E002970CF48ECF8091E6019091DB +:10476000E7019A8389831B82DD82CC822E83CE016E +:1047700001967FCF809590958C0D9D1DACCFF62E28 +:10478000662309F49CCF75132EC034132CC02091DE +:10479000EB0120FD1FC0822F82958F70D9F0D801C8 +:1047A00015962C9315978F3049F08F5F982F92951F +:1047B000907F822F8F70892B15968C93C8010E9451 +:1047C0005B2186E0F801A6EEB1E001900D928A959A +:1047D000E1F793CF86E0F801A6EEB1E001900D92EB +:1047E0008A95E1F72DC04D875E878D859E850E9455 +:1047F0009621811140CF8091EB0181608093EB0184 +:10480000C8010E945B211CC0662309F458CF4D8764 +:104810005E878D859E850E949621882309F44FCF5F +:104820002ACF811148CF0CC0243031050CF047CF7E +:104830009F7009F440CFF8019581907F09F03BCF3C +:104840008F2D62960FB6F894DEBF0FBECDBFDF91FD +:10485000CF911F910F91FF90EF90DF90CF9008952F +:104860001F93CF93DF93CDB7DEB72C970FB6F89495 +:10487000DEBF0FBECDBF4F83588769877A878B878E +:104880009C87CE0107960E946922882369F08F8158 +:1048900098852A853B85232BF1F19F3F09F063C062 +:1048A0008F3F09F060C037C086E0FE013796DE0119 +:1048B000119601900D928A95E1F76F817885EA85CE +:1048C000FB85309741F17F3F11F46F3F21F120913B +:1048D000B50130E0C9010196877099274091B40174 +:1048E00050E08417950709F447C069837A83FD83F4 +:1048F000EC8396E0929FD001939FB00D1124AA54AF +:10490000BE4FFE01319601900D929A95E1F780938A +:10491000B5010E94DF2116E08091B4019091B501AC +:104920008917C1F1189FC00111248A549E4F0E941B +:104930006922882379F1E091B4011E9FF0011124CE +:10494000EA54FE4F40815181628173818481958157 +:104950000E94CF218091B40190E001968770992741 +:104960008093B401D9CF4F81588569857A858B852D +:104970009C850E94CF21CFCF0E9492211092B50139 +:104980001092B401E6EEF1E086E0DF011D928A9517 +:10499000E9F7C1CF2C960FB6F894DEBF0FBECDBF9E +:1049A000DF91CF911F910895EF92FF920F931F9384 +:1049B000CF93DF938C01009709F46CC0F12CEE24A7 +:1049C000E394E8012196F8018491843740F484301F +:1049D00008F051C0813081F0823019F15BC0853719 +:1049E00009F444C0A8F19CE7980F903708F052C032 +:1049F0008F770E94E41E41C00E5F1F4FFE01C491DD +:104A000080E28C0F883048F4C7708E2D01C0880F6B +:104A1000CA95EAF70E94D52714C08C2F0E941C1E4D +:104A20002DC00E5F1F4FFE01C49180E28C0F8830B5 +:104A300058F4C7708E2D01C0880FCA95EAF70E94FE +:104A4000DB270E94FC271AC08C2F0E94E41E16C090 +:104A50000E5F1F4FFE01C491CC2381F08FE99FE0D0 +:104A60000197F1F700C00000C150F6CF0E5F1F4F55 +:104A7000FE01F49003C00E941C1E8E018F2D88231E +:104A800009F49FCFEFE9FFE03197F1F700C0000094 +:104A90008150F5CFDF91CF911F910F91FF90EF9053 +:104AA000089508956093F0017093F1018093F201ED +:104AB0009093F3010C9482210F931F930091F001C6 +:104AC0001091F1012091F2013091F301DC01CB0151 +:104AD000802B912BA22BB32B8093F0019093F101AB +:104AE000A093F201B093F3011F910F910C948221D6 +:104AF0000F931F930091F0011091F1012091F201A9 +:104B00003091F301DC01CB0180239123A223B32355 +:104B10008093F0019093F101A093F201B093F3011F +:104B20001F910F910C9482210F931F930091F0011C +:104B30001091F1012091F2013091F301DC01CB01E0 +:104B400080279127A227B3278093F0019093F1014A +:104B5000A093F201B093F3011F910F910C94822165 +:104B60001092EC011092ED011092EE011092EF0103 +:104B70000C94822141E050E060E070E004C0440FFA +:104B8000551F661F771F8A95D2F74093EC0150930B +:104B9000ED016093EE017093EF010C94822141E0EE +:104BA00050E060E070E004C0440F551F661F771F9F +:104BB0008A95D2F78091EC019091ED01A091EE01E0 +:104BC000B091EF01482B592B6A2B7B2B4093EC01C2 +:104BD0005093ED016093EE017093EF010C948221EC +:104BE00041E050E060E070E004C0440F551F661FD4 +:104BF000771F8A95D2F74095509560957095809172 +:104C0000EC019091ED01A091EE01B091EF014823EC +:104C100059236A237B234093EC015093ED01609369 +:104C2000EE017093EF010C94822141E050E060E0CE +:104C300070E004C0440F551F661F771F8A95D2F796 +:104C40008091EC019091ED01A091EE01B091EF0106 +:104C5000482759276A277B274093EC015093ED01A1 +:104C60006093EE017093EF010C9482210F931F93D8 +:104C70000091EC011091ED012091EE013091EF01D6 +:104C8000DC01CB01802B912BA22BB32B8093EC0169 +:104C90009093ED01A093EE01B093EF011F910F915E +:104CA0000C9482210F931F930091EC011091ED0160 +:104CB0002091EE013091EF01DC01CB0180239123A3 +:104CC000A223B3238093EC019093ED01A093EE0116 +:104CD000B093EF011F910F910C9482210F931F93BA +:104CE0000091EC011091ED012091EE013091EF0166 +:104CF000DC01CB0180279127A227B3278093EC0109 +:104D00009093ED01A093EE01B093EF011F910F91ED +:104D10000C9482210895CF92DF92EF92FF920F932D +:104D20001F93CF93DF938C01C090F001D090F101DD +:104D3000E090F201F090F3018091EC019091ED018F +:104D4000A091EE01B091EF01C82AD92AEA2AFB2AE4 +:104D5000CFE1D0E0D701C6010C2E04C0B695A795CF +:104D6000979587950A94D2F780FF06C0B8018C2FDB +:104D70000E94690A019721F4219760F780E001C041 +:104D80008C2FDF91CF911F910F91FF90EF90DF90CB +:104D9000CF900895CF93DF93EC010E948B26BE0144 +:104DA0000E94690ADF91CF910895CB010E94CA2623 +:104DB00008958091F4018595859585950895809154 +:104DC000F4018770089598E0899F90011124262BA3 +:104DD0002093F4010C94CF252091F4018095822337 +:104DE0008093F401982F977069F430E0482F55278D +:104DF00047FD50952417350729F0859585958595AC +:104E00000C94F02508959091F401977081E009F4D5 +:104E100080E0089590910C01992321F090910D016B +:104E2000911109C020910E0130910F01F9013296C4 +:104E30009FEF40E030C0982F9695969596959F30BD +:104E4000A0F4E0910E01F0910F01E90FF11D8770C0 +:104E500021E030E0A90102C0440F551F8A95E2F716 +:104E6000CA019181892B818308959091090290FF55 +:104E700023C01F928F9389E299E09F938F930E94A2 +:104E800046080F900F900F900F9008959F3F39F0B4 +:104E90004F5F4E3041F051915813F8CF0DC0511172 +:104EA000F7CF942FF5CF9F3F39F0F901E90FF11DAE +:104EB00097FDFA9582830895089590910C019923A6 +:104EC00021F090910D01911109C020910E013091B6 +:104ED0000F01F9013296205F3F4F30C0982F969511 +:104EE000969596959F30A8F4E0910E01F0910F01F0 +:104EF000E90FF11D877021E030E0A90102C0440FE5 +:104F0000551F8A95E2F7CA01809591818923818393 +:104F100008959091090290FF16C01F928F938BE025 +:104F200099E09F938F930E9446080F900F900F90E7 +:104F30000F9008953196E217F30729F090819813A6 +:104F4000F9CF1082F7CF089581E090E0E0910E0153 +:104F5000F0910F01E80FF91F108201968031910541 +:104F6000A9F7089580910802089590910802892B6D +:104F70008093080208958095909108028923809378 +:104F80000802089510920802089590910702892B53 +:104F9000809307020895809590910702892380935A +:104FA0000702089510920702089590910602892B36 +:104FB000809306020895809590910602892380933C +:104FC000060208951092060208958093F50108954F +:104FD0001092F501089580910E0190910F01FC014E +:104FE00031969C01205F3F4F80E0919191118F5F3E +:104FF000E217F307D1F70895E0910E01F0910F0148 +:10500000809108028083E0910E01F0910F01908160 +:1050100080910702892B8083E0910E01F0910F01AE +:10502000908180910602892B80838091F5018823ED +:1050300061F0E0910E01F0910F019081892B808346 +:105040000E94EB2781111092F50180910E01909141 +:105050000F010C946E1C90933D0180933C010895C8 +:1050600020E0009739F0AC01415051098423952389 +:105070002F5FF7CF822F08958295982F9C7C392F30 +:1050800036953695282F237344E0249FC0011124C0 +:10509000932F982B292F2A7A2695892F8575880F8B +:1050A000822B08951F93CF93DF931F92CDB7DEB766 +:1050B00099830E943C28182F9981892F0E943C28AF +:1050C000212F30E0322F2227A901482BCA010F904F +:1050D000DF91CF911F91089580915A02843021F180 +:1050E00010920A0220E488E190E00FB6F894A895A7 +:1050F000809360000FBE2093600080E00E947D0CD2 +:1051000083B7817F846083BF83B7816083BF7894D6 +:10511000889583B78E7F83BF88E10FB6F89480931C +:105120006000109260000FBE089508950E94930CD5 +:105130000E94160D0E9495280E94F90D91E08111A0 +:1051400001C090E0892F08950E9492210E94621C64 +:105150000C947D0C1F920F920FB60F9211248F9317 +:105160009F93AF93BF9380910A02811113C08091E6 +:105170000B0290910C02A0910D02B0910E0241968B +:10518000A11DB11D80930B0290930C02A0930D0200 +:10519000B0930E02BF91AF919F918F910F900FBE70 +:1051A0000F901F90189582E084BD93E095BD9AEF13 +:1051B00097BD80936E0008952FB7F89480910B02ED +:1051C00090910C02A0910D02B0910E022FBF089594 +:1051D000CF92DF92EF92FF920F931F932FB7F89425 +:1051E00040910B0250910C0260910D0270910E02E1 +:1051F0002FBF6A017B01EE24FF248C0120E030E008 +:10520000C016D106E206F30610F4415051099A0186 +:10521000281B390BC9011F910F91FF90EF90DF9070 +:10522000CF9008951F920F920FB60F9211248F9373 +:105230009F93AF93BF9380910B0290910C02A0912A +:105240000D02B0910E020196A11DB11D80930B02BB +:1052500090930C02A0930D02B0930E02BF91AF91F8 +:105260009F918F910F900FBE0F901F9018950E94E5 +:105270006019F8942FEF87EA91E621508040904022 +:10528000E1F700C0000087E090EBDC01809363024F +:1052900090936402A0936502B09366029CE088E15B +:1052A0000FB6F894A895809360000FBE90936000AD +:1052B000FFCF8F929F92AF92BF92EF92FF920F9388 +:1052C0001F93CF93C5E0E82EF12C8C2F0E94910DF7 +:1052D0004B015C0100E110E0D501C401002E04C0C7 +:1052E000B695A795979587950A94D2F780FF0AC03F +:1052F000602F7C2F80E00E94ED0BE816F90611F478 +:1053000081E006C00150110938F7C150F0F680E085 +:10531000CF911F910F91FF90EF90BF90AF909F9012 +:105320008F900895CF93C82F8CE20E94592988232B +:1053300021F08C2FCF910C94592980E0CF910895C2 +:10534000CF930E94F92A811102C00E94D82A8EE4CC +:1053500099E00E94AD07C5E6C15049F00E94160DC4 +:105360008FE39CE90197F1F700C00000F5CF87E4D7 +:1053700099E00E94AD0789E20E949229811116C12D +:105380008AE20E94922981110E94D82A85E00E9417 +:10539000922981110E9437290E94042B80930902CF +:1053A00087E00E9492298823A9F18BE10E9492292B +:1053B000882351F08091090281FB222720F991E096 +:1053C000922790FB81F90EC08EE00E9492298823DB +:1053D00061F08091090282FB222720F991E0922757 +:1053E00090FB82F98093090215C080E10E94922906 +:1053F00090910902882341F093FB222720F981E054 +:10540000822780FB93F904C0892F809580FB90F957 +:1054100090930902809109020E94082B0E94162B8A +:1054200090E0909311028093100280EE0E949229E6 +:10543000882341F080911002982F909590FB80F97D +:105440008093100289E30E949229882359F0809169 +:10545000100281FB222720F991E0922790FB81F92D +:105460008093100282EE0E949229882359F0809145 +:10547000100282FB222720F991E0922790FB82F90B +:105480008093100286EE0E949229882359F0809121 +:10549000100283FB222720F991E0922790FB83F9E9 +:1054A0008093100283EE0E949229882359F0809104 +:1054B000100284FB222720F991E0922790FB84F9C7 +:1054C0008093100285E30E949229882359F08091ED +:1054D000100285FB222720F991E0922790FB85F9A5 +:1054E0008093100281E30E949229882359F08091D1 +:1054F000100286FB222720F991E0922790FB86F983 +:105500008093100281E10E949229882359F08091B2 +:10551000100287FB222720F991E0922790FB87F960 +:1055200080931002809110020E941A2B8091100229 +:1055300087FB882780F980930D0187E20E949229DA +:10554000C82F8EE10E9492298111C2608FE10E94D2 +:1055500092298111C46080E20E9492298111C86061 +:1055600081E20E9492298111C06182E20E94922907 +:105570008111C06283E20E9492298111C06484E299 +:105580000E949229882311F0C06802C0CC2329F020 +:105590008C2F0E94112B6C2F03C00E940D2B682FA3 +:1055A00070E080E090E0CF910C945225CF91089567 +:1055B0006DEE7EEF80E090E00E947D2E60E082E064 +:1055C00090E00E945F2E60E083E090E00E945F2EFA +:1055D00060E084E090E00E945F2E60E085E090E073 +:1055E0000E945F2E40E050E0BA0188E090E00C9409 +:1055F000712E80E090E00E94592E21E08D3E9E4F5A +:1056000009F020E0822F089582E090E00C944B2E68 +:10561000682F82E090E00C945F2E83E090E00C9481 +:105620004B2E682F83E090E00C945F2E84E090E096 +:105630000C944B2E682F84E090E00C945F2ECF9357 +:10564000C82F1F928F9389E699E09F938F930E94B2 +:10565000460881E090E0A0E0B0E0BC01CD0104C0CC +:10566000660F771F881F991FCA95D2F70E9452258F +:105670000F900F900F900F90CF910C949221CF9399 +:105680008B3109F4D1C108F049C08E3009F4E0C172 +:1056900000F5873009F4A9C1A8F4863009F066C284 +:1056A00080910902817F8E7F8093090286EF9AE0C4 +:1056B0000E94AD0787EA9EE00E94AD0781E08093DB +:1056C0000F0291C1883009F45BC08B3009F487C1A7 +:1056D0004DC2813109F432C220F4803109F4CCC1C9 +:1056E00045C2863109F4E3C1893109F03FC287EE32 +:1056F0009AE00E94AD078AEB9AE00E94AD078BE723 +:105700009AE00E94AD078EE49AE00E94AD0782E124 +:105710009AE00E94AD0787EE99E063C1853309F4F2 +:1057200021C268F4873209F41DC228F48E3108F4CE +:105730001DC28D5118C2893209F414C217C28334B4 +:1057400038F48A3308F00CC2883309F448C10EC219 +:10575000833409F407C2883409F008C20E949221F8 +:105760008BE89EE00E94AD079FEF23ED80E3915010 +:1057700020408040E1F700C000000E94372933C17B +:105780008BEA9EE00E94AD0788EF9DE00E94AD0786 +:105790000E940D2B1F928F9385EF9DE09F938F9317 +:1057A0000E94460883EF9DE00E94AD070E94042BF3 +:1057B000C82F80EE9DE00E94AD071F92CF938BED26 +:1057C0009DE09F938F930E94460889ED9DE00E9483 +:1057D000AD078FEC9DE00E94AD078C2F81701F926A +:1057E0008F938CEC9DE09F938F930E9446088AECE8 +:1057F0009DE00E94AD0780EC9DE00E94AD07C1FBDB +:10580000882780F91F928F938DEB9DE09F938F9354 +:105810000E9446088BEB9DE00E94AD078FEA9DE059 +:105820000E94AD07C2FB882780F91F928F938CEAF4 +:105830009DE09F938F930E9446088AEA9DE00E9414 +:10584000AD0781EA9DE00E94AD07C3FBCC27C0F9FC +:105850001F92CF938EE99DE09F938F930E944608FD +:105860008CE99DE00E94AD070E94162BC82F88E8A6 +:105870009DE00E94AD071F92CF9383E89DE09F9328 +:105880008F930E94460881E89DE00E94AD0788E65C +:105890009DE00E94AD078C2F81701F928F9385E64B +:1058A0009DE09F938F930E9446088DB79EB7809688 +:1058B0000FB6F8949EBF0FBE8DBF83E69DE00E9499 +:1058C000AD078CE49DE00E94AD07C1FB882780F9FD +:1058D0001F928F9389E49DE09F938F930E944608C7 +:1058E00087E49DE00E94AD0785E39DE00E94AD073F +:1058F000C2FB882780F91F928F9382E39DE09F93DC +:105900008F930E94460880E39DE00E94AD078EE1E0 +:105910009DE00E94AD07C3FB882780F91F928F93FB +:105920008BE19DE09F938F930E94460889E19DE063 +:105930000E94AD078FE09DE00E94AD07C4FB882761 +:1059400080F91F928F938CE09DE09F938F930E942C +:1059500046088AE09DE00E94AD0788EF9CE00E9427 +:10596000AD07C5FB882780F91F928F9385EF9CE0D8 +:105970009F938F930E94460883EF9CE00E94AD079F +:1059800087ED9CE00E94AD07C6FB882780F91F9237 +:105990008F9384ED9CE09F938F930E94460882ED45 +:1059A0009CE00E94AD078AEC9CE00E94AD07C7FB1B +:1059B000CC27C0F91F92CF9387EC9CE09F938F93E5 +:1059C0000E94460885EC9CE00E94AD078DB79EB70B +:1059D0004C960FB6F8949EBF0FBE8DBF04C081E1F8 +:1059E0009BE00E94AD07C1E0C6C080910902C82FAC +:1059F000C095C170C0FB80F980930902CC2349F0A7 +:105A00008FE79EE00E94AD07809109028660886062 +:105A100048C082E79EE00E94AD0780910902897F1D +:105A2000877F80930902DFCF9091090291FBCC27F9 +:105A3000C0F981E0C827892FC0FB81F98093090252 +:105A4000CC2319F085E69EE027C087E59EE0C9CF0C +:105A50009091090292FBCC27C0F981E0C827892FD9 +:105A6000C0FB82F980930902CC2319F088E49EE000 +:105A700013C088E39EE0B5CF9091090293FBCC2739 +:105A8000C0F981E0C827892FC0FB83F98093090200 +:105A9000CC2351F08CE29EE00E94AD078091090278 +:105AA00081608093090267C08FE19EE09ACF89ED03 +:105AB00099E00E94AD070E94621C1F928F938FEBAA +:105AC00099E09F938F930E94460880910C011F924A +:105AD0008F9388EA99E09F938F930E944608809164 +:105AE00094011F928F9385E999E09F938F930E9471 +:105AF000460880910D011F928F9382E899E09F9351 +:105B00008F930E94460880910B0290910C02A09105 +:105B10000D02B0910E02BF93AF939F938F938EE6C9 +:105B200099E09F938F930E9446088DB79EB7469643 +:105B30000FB6F8949EBF0FBE8DBF55CF0E94922125 +:105B4000C0910D0181E0C827C0930D01CC2329F03D +:105B500085E19EE00E94AD070EC08AE09EE041CF45 +:105B6000895301C080E00E941F2B3DCF88E09EE05A +:105B70000E94AD07C0E08C2FCF91089580E008957A +:105B800080E00895CF93C82F80910F02882319F0E9 +:105B9000813049F03EC0E0910E01F0910F0180810B +:105BA0008232C9F507C0E0910E01F0910F018081AA +:105BB000823261F48C2F0E94BE2D811104C08C2F83 +:105BC0000E943F2B24C081E090E021C08C2F0E94D6 +:105BD000C02D81111BC0C43189F018F4CB3029F0DD +:105BE00010C0C93259F0C83361F486EF9AE00E94C0 +:105BF000AD0785E699E00E94AD0708C010920F023C +:105C00000CC083E699E00E94AD0707C081E0817077 +:105C100006C010920F0280E002C080E0F8CFCF9162 +:105C20000895991B79E004C0991F961708F0961BF8 +:105C3000881F7A95C9F780950895AA1BBB1B51E16F +:105C400007C0AA1FBB1FA617B70710F0A61BB70BEC +:105C5000881F991F5A95A9F780959095BC01CD0191 +:105C6000089597FB072E16F4009407D077FD09D00E +:105C70000E941D2E07FC05D03EF4909581959F4F04 +:105C80000895709561957F4F0895EE0FFF1F059061 +:105C9000F491E02D0994F999FECF92BD81BDF89A57 +:105CA000992780B50895A6E1B0E044E050E00C9457 +:105CB000852EA8E1B0E042E050E00C94852E262F1E +:105CC000F999FECF92BD81BDF89A019700B40216F2 +:105CD00039F01FBA20BD0FB6F894FA9AF99A0FBEA0 +:105CE00008950396272F0E94602E0E945F2E252F75 +:105CF0000E94602E242F0C94602E0196272F0E9464 +:105D0000602E0C945F2EDC01CB01FC01F999FECFD3 +:105D100006C0F2BDE1BDF89A319600B40D92415033 +:0A5D20005040B8F70895F894FFCF43 +:105D2A00FFFFCB149A15CE14661532150101F60140 +:105D3A0059766649096C0F1F4F5F6F7F7969192978 +:105D4A0039534333231303403620399808620842F3 +:0C5D5A000809089507AE07C707E7070017 +:00000001FF diff --git a/keyboards/phantom/keymaps/default/keymap.c b/keyboards/phantom/keymaps/default/keymap.c new file mode 100644 index 000000000..1368226aa --- /dev/null +++ b/keyboards/phantom/keymaps/default/keymap.c @@ -0,0 +1,169 @@ +#include "phantom.h" + +#ifdef RGBLIGHT_ENABLE +#include "rgblight.h" +#endif + +// Used for SHIFT_ESC +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _FL 1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: (Base Layer) Default Layer + * ,-----------------------------------------------------------------------------. + * |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| |Prnt|ScLk|Paus| + * |-----------------------------------------------------------| |--------------| + * | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backsp | | Ins|Home|PgUp| + * |-----------------------------------------------------------| |--------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| | Del| End|PgDn| + * |-----------------------------------------------------------| `--------------' + * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return | + * |-----------------------------------------------------------| ,----. + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | | Up | + * |-----------------------------------------------------------| ,-------------. + * |Ctrl|Gui |Alt | Space |ALT |GUI |_FL |CTRL | |Lft| Dn |Rig | + * `-----------------------------------------------------------' `-------------' + */ +[_BL] = KEYMAP( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DELETE, KC_END, KC_PGDN, \ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + /* Keymap _FL: Function Layer + * ,-----------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| |--------------| + * | | | | | | | | | | | | | | Reset | | | | | + * |-----------------------------------------------------------| |--------------| + * | | | | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| `--------------' + * | | | | | | | | | | | | | | + * |-----------------------------------------------------------| ,----. + * | | F1| F2| F3| F4| F5|F6 |F7 |F8 | | | | | | + * |-----------------------------------------------------------| ,-------------. + * | | | | | | | | | | | | | + * `-----------------------------------------------------------' `-------------' + */ +[_FL] = KEYMAP( + #ifdef RGBLIGHT_ENABLE + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_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, F(1), F(2), F(3), F(4), F(5), F(6), F(7), F(8), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + #else + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + #endif +}; + +enum function_id { + SHIFT_ESC, + #ifdef RGBLIGHT_ENABLE + RGBLED_TOGGLE, + RGBLED_STEP_MODE, + RGBLED_INCREASE_HUE, + RGBLED_DECREASE_HUE, + RGBLED_INCREASE_SAT, + RGBLED_DECREASE_SAT, + RGBLED_INCREASE_VAL, + RGBLED_DECREASE_VAL + #endif +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(SHIFT_ESC), + #ifdef RGBLIGHT_ENABLE + [1] = ACTION_FUNCTION(RGBLED_TOGGLE), + [2] = ACTION_FUNCTION(RGBLED_STEP_MODE), + [3] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), + [4] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), + [5] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), + [6] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), + [7] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), + [8] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), + #endif +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + static uint8_t shift_esc_shift_mask; + switch (id) { + case SHIFT_ESC: + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + //led operations + #ifdef RGBLIGHT_ENABLE + case RGBLED_TOGGLE: + if (record->event.pressed) { + rgblight_toggle(); + } + break; + case RGBLED_INCREASE_HUE: + if (record->event.pressed) { + rgblight_increase_hue(); + } + break; + case RGBLED_DECREASE_HUE: + if (record->event.pressed) { + rgblight_decrease_hue(); + } + break; + case RGBLED_INCREASE_SAT: + if (record->event.pressed) { + rgblight_increase_sat(); + } + break; + case RGBLED_DECREASE_SAT: + if (record->event.pressed) { + rgblight_decrease_sat(); + } + break; + case RGBLED_INCREASE_VAL: + if (record->event.pressed) { + rgblight_increase_val(); + } + break; + case RGBLED_DECREASE_VAL: + if (record->event.pressed) { + rgblight_decrease_val(); + } + break; + case RGBLED_STEP_MODE: + if (record->event.pressed) { + rgblight_step(); + } + break; + #endif + } +} diff --git a/keyboards/phantom/led.c b/keyboards/phantom/led.c new file mode 100644 index 000000000..b2459c774 --- /dev/null +++ b/keyboards/phantom/led.c @@ -0,0 +1,43 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include +#include "stdint.h" +#include "led.h" + +void led_init(void) { + // * Set our LED pins as output + DDRB |= (1<<6); + DDRB |= (1<<7); +} + +void led_set_kb(uint8_t usb_led) { + if (usb_led & (1< +#include "action_util.h" + +/* Phantom matrix layout + * ,-----------------------------------------------------------------------------. + * |00 |02| 03| 04| 05| | 06| 07| 08| 09| | 0a|0b |0c |0d | |0e |0f |0g | + * |-----------------------------------------------------------| |--------------| + * | 01| 10| 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1d | |1e |1f |1g | + * |-----------------------------------------------------------| |--------------| + * |20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2c| 2d| | 2e | 2f | 2g | + * |-----------------------------------------------------------| `--------------' + * |30 | 31| 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d | + * |-----------------------------------------------------------| ,----. + * | 40 | 42| 43| 44| 45| 46| 47| 48| 49| 4a| 4b| 4d | | 4f | + * |-----------------------------------------------------------| ,-------------. + * | 50 | 51 | 52 | 57 |5a | 5b | 5c | 5d | | 5e| 5f | 5g | + * `-----------------------------------------------------------' `-------------' + */ +// The first section contains all of the arguments +// The second converts the arguments into a two-dimensional array +#define KEYMAP( \ + k00, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ + k01, k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1d, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \ + k40, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4d, k4f, \ + k50, k51, k52, k57, k5a, k5b, k5c, k5d, k5e, k5f, k5g \ +) \ +{ \ + {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g}, \ + {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1d, k1d, k1e, k1f, k1g}, \ + {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g}, \ + {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3d, k3d, k3d, k3d}, \ + {k40, k40, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4d, k4d, k4f, k4f, k4f}, \ + {k50, k51, k52, k57, k57, k57, k57, k57, k57, k57, k5a, k5b, k5c, k5d, k5e, k5f, k5g} \ +} + +void matrix_init_user(void); +void matrix_scan_user(void); + +#endif diff --git a/keyboards/phantom/pinout.jpg b/keyboards/phantom/pinout.jpg new file mode 100644 index 000000000..30b0b8bf4 Binary files /dev/null and b/keyboards/phantom/pinout.jpg differ diff --git a/keyboards/phantom/pinout.txt b/keyboards/phantom/pinout.txt new file mode 100644 index 000000000..36f044d15 --- /dev/null +++ b/keyboards/phantom/pinout.txt @@ -0,0 +1 @@ +For WS2812B LED strip support, connect DIN from strip to PE2 on Teensy (see reference image pinout.jpg) \ No newline at end of file diff --git a/keyboards/planck/.gitignore b/keyboards/planck/.gitignore new file mode 100644 index 000000000..6e92f57d4 --- /dev/null +++ b/keyboards/planck/.gitignore @@ -0,0 +1 @@ +tags diff --git a/keyboards/planck/Makefile b/keyboards/planck/Makefile new file mode 100644 index 000000000..08e9205cb --- /dev/null +++ b/keyboards/planck/Makefile @@ -0,0 +1,73 @@ + + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= no # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +NKRO_ENABLE ?= no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality +MIDI_ENABLE ?= no # MIDI controls +AUDIO_ENABLE ?= no # Audio output on port C6 +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../Makefile +endif \ No newline at end of file diff --git a/keyboards/planck/README.md b/keyboards/planck/README.md new file mode 100644 index 000000000..47cfec032 --- /dev/null +++ b/keyboards/planck/README.md @@ -0,0 +1,31 @@ +Planck keyboard firmware +====================== +DIY/Assembled compact ortholinear 40% keyboard by [Ortholinear Keyboards](http://ortholinearkeyboards.com). + +## Quantum MK Firmware + +For the full Quantum feature list, see [the parent README.md](/README.md). + +## Building + +Download or clone the whole firmware and navigate to the keyboards/planck folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use `make dfu` to program your PCB once you hit the reset button. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default +To build with the default keymap, simply run `make`. + +### Other Keymaps +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` in the keymaps folder, and see keymap document (you can find in top README.md) and existent keymap files. + +To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: +``` +$ make KEYMAP=[default|jack|] +``` +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. + +### Notable forks (which some of the keymap files are from) +- [Shane's Fork](https://github.com/shanecelis/tmk_keyboard/tree/master/keyboard/planck) +- [Pierre's Fork](https://github.com/pcarrier/tmk_keyboard/blob/pcarrier/planck/keyboard/gh60/keymap_planck.c) +- [Nathan's Fork](https://github.com/nathanrosspowell/tmk_keyboard/tree/planck-jack/keyboard/planck) +- [Matthew's Fork](https://github.com/pepers/tmk_keyboard/tree/master/keyboard/planck_grid) diff --git a/keyboards/planck/config.h b/keyboards/planck/config.h new file mode 100644 index 000000000..b64893108 --- /dev/null +++ b/keyboards/planck/config.h @@ -0,0 +1,89 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Ortholinear Keyboards +#define PRODUCT The Planck Keyboard +#define DESCRIPTION A compact ortholinear keyboard + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +/* Planck PCB default pin-out */ +#define MATRIX_ROW_PINS { D0, D5, B5, B6 } +#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* ws2812 RGB LED */ +#define ws2812_PORTREG PORTD +#define ws2812_DDRREG DDRD +#define ws2812_pin PD1 +#define RGBLED_NUM 28 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/planck/keymaps/.gitignore b/keyboards/planck/keymaps/.gitignore new file mode 100644 index 000000000..24e5b0a1a --- /dev/null +++ b/keyboards/planck/keymaps/.gitignore @@ -0,0 +1 @@ +.build diff --git a/keyboards/planck/keymaps/README.md b/keyboards/planck/keymaps/README.md new file mode 100644 index 000000000..54fb5f6d9 --- /dev/null +++ b/keyboards/planck/keymaps/README.md @@ -0,0 +1,23 @@ +# How to add your own keymap + +Folders can be named however you'd like (will be approved upon merging), or should follow the format with a preceding `_`: + + _[ISO 3166-1 alpha-2 code*]_[layout variant]_[layout name/author] + +\* See full list: https://en.wikipedia.org/wiki/ISO_3166-1#Officially_assigned_code_elements + +and contain the following files: + +* `keymap.c` +* `readme.md` *recommended* +* `config.h` *optional*, found automatically when compiling +* `Makefile` *optional*, found automatically when compling + +When adding your keymap to this list, keep it organised alphabetically (select list, edit->sort lines), and use this format: + + * **folder_name** description + +# List of Planck keymaps + +* **default** default Planck layout +* **cbbrowne** cbbrowne's Planck layout \ No newline at end of file diff --git a/keyboards/planck/keymaps/alexey/Makefile b/keyboards/planck/keymaps/alexey/Makefile new file mode 100644 index 000000000..581e08cd0 --- /dev/null +++ b/keyboards/planck/keymaps/alexey/Makefile @@ -0,0 +1,25 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/alexey/compiled.hex b/keyboards/planck/keymaps/alexey/compiled.hex new file mode 100644 index 000000000..deddcea06 --- /dev/null +++ b/keyboards/planck/keymaps/alexey/compiled.hex @@ -0,0 +1,1444 @@ +:100000000C9461020C94A5020C94A5020C94A50218 +:100010000C94A5020C94A5020C94A5020C94A502C4 +:100020000C94A5020C94A5020C9452140C94241563 +:100030000C9486220C94A5020C94A5020C94A502A3 +:100040000C94A5020C9407030C94A5020C94A50231 +:100050000C94A5020C94EE220C94A5020C94A5021B +:100060000C94A5020C94A5020C94A5020C94A50274 +:100070000C94A5020C94A5020C94A5020C94A50264 +:100080000C94C70A0C94A5020C94A5020C94A5022A +:100090000C94A5020C94A5020C94A5020C94A50244 +:1000A0000C94A5020C94A5020C94A5029115B3150D +:1000B000A116B315A116F8151B16A11670168316F6 +:1000C0006D196D199C199C19DB19FB19511B511BDA +:1000D000061A511BB61AB61A1D1B261B511B4B1BA9 +:1000E000C31AC31AC31AC31AC31AC31AC31AC31A28 +:1000F000C31AC31AC31AC31AC31AC31AC31AC31A18 +:10010000D31AE11AE81AEF1AF91A07634236B79BB5 +:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 +:100120005763BD6DEDFD753EF6177231BF000000DF +:10013000803F08000000BE922449123EABAAAA2AC2 +:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD +:1001500000000000BF000000803F00000000000819 +:100160004178D3BB4387D1133D190E3CC3BD4282B6 +:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 +:10018000FFBE01C4FF7F3F00000000000000000030 +:1001900000000000000000010204060A0F17202CD6 +:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 +:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF +:1001C0000201000000000000000000002B001400ED +:1001D0001A000800150017001C0018000C0012007F +:1001E00013002A00290004001600070009000A0075 +:1001F0000B000D000E000F003300015201001D0026 +:100200001B00060019000500110010003600370021 +:10021000380001000030E300E200E000E1002C00C3 +:100220002C0002522D00340028000100010049007A +:100230004A0052004D004B000100400041004200C6 +:100240004300010001004C00500051004F004E00DF +:1002500001003D003E003F0044000100010001009C +:10026000010001000100010001003A003B003C00D8 +:100270004500010001000100010001000100010032 +:100280000100AA00A900AB00AE00010001001E029F +:100290001F022F02300231024B00240025002600ED +:1002A000250201000100200221022602270235005A +:1002B0004E002100220023002E0201000100220234 +:1002C00023022F003000350224021E001F002000F0 +:1002D000310001000100010049000100010001009E +:1002E00001000100010027002E0001002803540036 +:1002F00068006500200050006C0061006E00630023 +:100300006B0020004B006500790062006F00610007 +:100310007200640000002C034F007200740068003B +:100320006F006C0069006E006500610072002000C3 +:100330004B006500790062006F006100720064008C +:10034000730000000403090409026D00040100A009 +:10035000FA09040000010301010009211101000153 +:10036000223F000705810308000A09040100010378 +:10037000010200092111010001224D00070582033D +:1003800008000A090402000103000000092111010C +:1003900000012236000705830308000A0904030050 +:1003A00001030000000921110100012239000705A5 +:1003B00084031000011201100100000008EDFE602E +:1003C0006001000102000105010906A101050719EC +:1003D000E029E71500250195087501810205081936 +:1003E0000129059505750191029501750391010596 +:1003F000071900297715002501957875018102C03C +:1004000005010980A101850216010026B7001A0125 +:10041000002AB700751095018100C0050C0901A1E3 +:10042000018503160100269C021A01002A9C027510 +:100430001095018100C005010902A1010901A10077 +:100440000509190129051500250195057501810288 +:100450009501750381010501093009311581257F59 +:1004600095027508810609381581257F9501750863 +:100470008106050C0A38021581257F9501750881D2 +:1004800006C0C005010906A101050719E029E71505 +:100490000025019508750181029501750881010506 +:1004A00008190129059505750191029501750391BA +:1004B000010507190029FF150025FF95067508811C +:1004C00000C011241FBECFEFDAE0DEBFCDBF04B6FF +:1004D00003FE24C080911E0390911F03A09120036E +:1004E000B09121038730904BA740B04BB9F41092E4 +:1004F0001E0310921F03109220031092210314BEBA +:1005000084B7877F84BF88E10FB6F894809360003A +:10051000109260000FBEE0E0F8E3099511E0A0E062 +:10052000B1E0E6E6F9E502C005900D92A03CB10706 +:10053000D9F713E0A0ECB1E001C01D92AE31B107D4 +:10054000E1F70E9498110C94B12C0C9400000895CE +:10055000089581E0089508950C94A8020C94A902CE +:100560000C94AB020E947B2823E030E0281B310969 +:10057000220F2093C4010895282F2F988091800086 +:10058000211108C0877F8093800010928D00109207 +:100590008C001BC0886080938000233019F48FEF9B +:1005A0009FEF0FC083E090E0821B9109880F991F95 +:1005B0002FEF3FEFA90102C0569547958A95E2F7C4 +:1005C000CA0190938D0080938C000C94B2020E941B +:1005D000B20284E08093C3011092C0010895279A6B +:1005E0002F988FEF9FEF90938700809386008AE08B +:1005F0008093800089E1809381000E94E4270C941D +:10060000E7020E94EF026E9A769A0C94A7021F925C +:100610000F920FB60F9211242F933F938F939F93B6 +:10062000EF93FF93E091C101F091C201CF010196D8 +:100630009093C2018093C1010090C30102C0F6955E +:10064000E7950A94E2F7EF738091C001823019F4C4 +:10065000E03251F404C0813039F4EF3329F4809151 +:100660006F008D7F80936F00F0E0E457FE4FE491C0 +:1006700021E031E0E29FC001E39F900D1124009042 +:10068000C40102C0969587950A94E2F790938D0075 +:1006900080938C00FF91EF919F918F913F912F91CB +:1006A0000F900FBE0F901F90189561110DC0FC01A7 +:1006B0008281882331F085EE0E9411180E943B2828 +:1006C00003C085EE0E94D91880E090E0089581E093 +:1006D00008950C94670308950C940103809115020A +:1006E000882309F448C08091D1019091D2010097EC +:1006F00079F40E94B8229093D2018093D101809125 +:10070000D30190E0009771F48091D40190E00AC089 +:100710000E94C4222091000130910101281739075D +:1007200040F329C00197880F991F880F991FFC017A +:10073000EB52FE4F60817181828193810E942D0A6C +:10074000E091D30184E0E89FF0011124EB52FE4FC9 +:1007500060817181828193814FE050E00E94E50DBC +:100760008091D30190E001966091D40170E00E94E5 +:10077000612C8093D3010C94AC02109217020C945C +:10078000FA090895089581E0809317020C94C2033A +:10079000089508958F929F92AF92BF92EF92FF9229 +:1007A0000F931F93CF93DF93CDB7DEB7A3970FB609 +:1007B000F894DEBF0FBECDBF7C01FC01008111812A +:1007C000C8010E94B520B8010E94CC058C01B70178 +:1007D0000E946903882309F4CCC10032F0E51F07A9 +:1007E00041F4F7018281882309F458C00E94490E20 +:1007F000C0C10132F0E51F0741F4F701828188236F +:1008000009F44CC00E94520EB4C10232F0E51F0739 +:1008100051F4F7018281882309F440C00E94450EFB +:100820008111F0CFE3CF0332F0E51F0739F4F70170 +:100830008281882399F10E94C3039BC10432F0E5B1 +:100840001F0739F4F7018281882341F10E94BD031B +:1008500090C10532F0E51F0749F4F7018281882332 +:10086000E9F0809117028111F1CFE5CF0632F0E572 +:100870001F0739F4F7018281882381F00E94590E05 +:100880000AC00732F0E51F0749F4F7018281882387 +:1008900029F00E94640E0E94C9036BC18091170267 +:1008A000811105C0F70182818111CFC018C1003EBE +:1008B000110579F4F7018281882309F44DC00E9463 +:1008C000FA0981E080931602109215021092D40169 +:1008D00050C1023E110559F4F70182818823E1F1EC +:1008E0000E94FA09109216021092150242C1033EAC +:1008F000110591F4F7018281882371F10E94FA09B0 +:100900001092160281E0809315021092D30110928A +:10091000D2011092D1012DC10235110559F4F70110 +:100920008281882309F425C1809100019091010101 +:100930000A970DC00135110579F4F70182818823EA +:1009400009F417C180910001909101010A969093DA +:100950000101809300010DC14091040183E2EFE1A8 +:10096000F1E0DE01119601900D928A95E1F7F70111 +:10097000808121E030E02C0F3D1F280F311DC9017F +:100980002091020130910301FC01E20FF31F60810D +:10099000772767FD7095640F711D882777FD809517 +:1009A000982F0E94832920E030E040E451E40E9427 +:1009B000E8284B015C01F701218184E090E0821B73 +:1009C0009109BC01882777FD8095982F0E94832983 +:1009D0009B01AC01C501B4010E9480289B01AC01C0 +:1009E00060E070E080E090E40E94F62A20E030E0D1 +:1009F0004CED50E40E94932A4B015C01F701828187 +:100A00008823D1F04FE050E0C501B4010E94E50D0C +:100A1000809116028823A1F08091D40124E0829F66 +:100A2000F0011124EB52FE4F80829182A282B382A8 +:100A30008F5F8093D40104C0C501B4010E942D0AC8 +:100A40000F3F110508F02ECF94C08091D001811185 +:100A50001FC0043130E5130709F051C00E946B0339 +:100A600081E08093D0010E94B8229093CF018093BF +:100A7000CE011092C7011092C9011092C8011092C4 +:100A8000CB011092CA011092CD011092CC0171C01D +:100A90008091CE019091CF010E94C422883C9105A3 +:100AA00070F48091C701E82FF0E0EE0FFF1FE853CC +:100AB000FE4F118300838F5F8093C7015AC00438B3 +:100AC00080E5180721F00538104501F13AC0F7011B +:100AD0008281882341F01092C50182E01EC0043853 +:100AE00030E5130759F58091C501811106C086E2F2 +:100AF0000E94111886E20E94D91882E01CC00438B6 +:100B0000F0E51F0741F305381045D9F4F70182815C +:100B1000882331F01092C60180E20E94281929C072 +:100B20008091C601811106C087E20E94111887E2F8 +:100B30000E94D91880E20E942F191BC00538104569 +:100B400029F381E08093C5018093C601C701A39674 +:100B50000FB6F894DEBF0FBECDBFDF91CF911F91CE +:100B60000F91FF90EF90BF90AF909F908F900C945B +:100B7000AE0280E0A3960FB6F894DEBF0FBECDBFE5 +:100B8000DF91CF911F910F91FF90EF90BF90AF90A9 +:100B90009F908F90089508959CE0799FF001112413 +:100BA00090E3899FE00DF11D1124E60FF11DEE0F7A +:100BB000FF1FE453FE4F859194910895880F991F6C +:100BC000FC01E45BFF4F859194910895880F991F74 +:100BD000FC01E453FE4F8591949108950F931F9368 +:100BE000CF93DF93EC01811521E39207A0F5C115A6 +:100BF00080E3D80708F0D7C0C83ED105D8F4C03E7E +:100C0000D10508F007C2C83AD10578F4C53AD10534 +:100C100008F06AC0C130D10509F463C008F4F7C117 +:100C2000C430D10508F0F6C1F2C1CB3BD10508F4C0 +:100C300066C0EDC1C11590E2D90708F0AFC0C1157B +:100C400021E0D20708F0E6C1C03FD10508F4DFC1BA +:100C50008E0110651FC2C03880E5D80700F5C03787 +:100C600090E5D90708F0A3C0C11520E5D20709F423 +:100C7000ACC050F4CE01905480319F4008F0C7C101 +:100C8000DF708E01106A06C2C13080E5D80709F412 +:100C9000AEC0C43190E5D90708F4AFC0B8C1C338BD +:100CA00020E5D20709F48EC050F4C13890E5D90789 +:100CB00009F482C008F083C000E011EDEBC1C0313F +:100CC00081E5D80708F4A3C1C11597E5D90708F451 +:100CD00036C1CE0190578115904108F098C1DF7060 +:100CE00093C101E010E0D6C1C53AD10509F494C121 +:100CF000C63AD10509F093C102E810E4CBC1C83A65 +:100D0000D10509F48FC1C93AD10509F48EC1CA3A97 +:100D1000D10509F48DC1CB3AD10509F48CC1CC3A87 +:100D2000D10509F48BC1CD3AD10509F48AC1C03B84 +:100D3000D10509F489C1CE3AD10509F488C1CF3A69 +:100D4000D10509F487C1C13BD10509F486C1C23B75 +:100D5000D10509F485C1C33BD10509F484C1C43B65 +:100D6000D10509F483C1C53BD10509F482C1C63B55 +:100D7000D10509F481C1C73BD10509F480C1C83B45 +:100D8000D10509F47FC1C93BD10509F47EC1CA3B35 +:100D9000D10509F47DC100E014E47CC1CE019F704F +:100DA0000E94E60578C1DD278E01106C73C1CF70FB +:100DB000DD278E01146D6EC100E010ED6BC100E007 +:100DC00012ED68C100E013ED65C10E94BC1B0E94DA +:100DD000FA090E94C1038FEF94E32CE08150904008 +:100DE0002040E1F700C000000E94132353C180910E +:100DF000F20281608093F2024DC10E94742381113E +:100E000002C00E9450230E94872390E090931D030C +:100E100080931C03C23080E5D80721F480911C0325 +:100E2000816086C0C43090E5D90721F480911C030D +:100E300082607EC0C63020E5D20721F480911C0379 +:100E4000846076C0C83080E5D80719F480911C030F +:100E500027C0CA3090E5D90721F480911C03806136 +:100E600067C0CC3020E5D20721F480911C0380625A +:100E70005FC0CE3080E5D80721F480911C038064E8 +:100E800057C0C03190E5D90721F480911C038068D8 +:100E90004FC0C23120E5D20729F480911C03846041 +:100EA000886046C0C33080E5D80721F480911C03D8 +:100EB0008E7F3EC0C53090E5D90721F480911C0398 +:100EC0008D7F36C0C73020E5D20721F480911C0306 +:100ED0008B7F2EC0C93080E5D80719F480911C03A0 +:100EE00026C0CB3090E5D90721F480911C038F7E7A +:100EF0001FC0CD3020E5D20721F480911C038F7DE7 +:100F000017C0CF3080E5D80721F480911C038F7B78 +:100F10000FC0C13190E5D90721F480911C038F7770 +:100F200007C0C331D04531F480911C038B7F877F8C +:100F300080931C0380911C030E948B23ABC08D2FD8 +:100F400099278F70992781309105D9F49E012370DC +:100F5000332702C0880F991F2A95E2F79C688E01FB +:100F600044E0000F111F4A95E1F700271370802B12 +:100F7000912B53E0CC0FDD1F5A95E1F7C076DD27AA +:100F80002FC08230910531F4DC2FCC278E01016F08 +:100F9000106A80C08330910569F4CE01837099276F +:100FA00001E010E002C0000F111F8A95E2F7C801AE +:100FB0009C680FC084309105B9F4CE0183709927E5 +:100FC00001E010E002C0000F111F8A95E2F7C8018E +:100FD0009A6823E0CC0FDD1F2A95E1F7C07ED77019 +:100FE0008C010C2B1D2B56C08530910531F4DC2F64 +:100FF000CC278E01046F106A4DC0069709F04AC0D5 +:10100000CF71DD27DC2FCC278E01106243C000E0BA +:1010100010E040C08E013EC001E810E43BC003E890 +:1010200010E438C002EE14E435C009EE14E432C016 +:101030000AEE14E42FC005EB14E42CC006EB14E414 +:1010400029C007EB14E426C00CEC14E423C00DEC1B +:1010500014E420C003E815E41DC00AE815E41AC032 +:1010600002E915E417C004E915E414C001E216E42E +:1010700011C003E216E40EC004E216E40BC005E260 +:1010800016E408C006E216E405C007E216E402C052 +:101090000AE216E4C801DF91CF911F910F910895E4 +:1010A0009CE0799FF001112490E3899FE00DF11DF0 +:1010B0001124E60FF11DEE0FFF1FE453FE4F859143 +:1010C0009491803E9105E0F4803C910558F5813380 +:1010D000910509F46FC048F48932910509F463C0A1 +:1010E0008A32910509F46DC072C089339105E9F027 +:1010F00082389105D1F08533910509F44DC067C060 +:10110000833E910581F138F4803E9105B9F0823E2D +:101110009105D9F05CC0863E910561F1873E91054D +:10112000A1F155C00E94DE05089520911C0320FD09 +:1011300002C021FF4CC080EE90E049C080911C03AA +:1011400080FFF9CF89E390E042C080911C0382FFC9 +:101150000EC080911C0384FF03C080E090E037C084 +:1011600083EE90E034C080911C0382FFF2CF82EEC8 +:1011700090E02DC080911C0383FF0BC080911C0365 +:1011800084FDEBCF87EE90E022C080911C0383FFAB +:10119000F5CF86EE90E01BC080911C0385FF07C051 +:1011A00089E290E014C080911C0385FFF9CF85E3AC +:1011B00090E00DC080911C0386FF07C08AE290E09A +:1011C00006C080911C0386FFF9CF81E390E00E9466 +:1011D000EE0508950C94B002E82FF0E0E25BFE4FBC +:1011E0008081E82FEF70F0E082958F7021E030E091 +:1011F000A90102C0440F551F8A95E2F740A3089544 +:101200000F931F93CF93DF9385B7806885BF85B712 +:10121000806885BFC3E0D0E001E010E0FE01E25B42 +:10122000FE4F8081E82FEF70F0E021A182958F7052 +:10123000A80102C0440F551F8A95E2F7CA01822B0C +:1012400081A38C2F0E94EC08219740F78BE090E05F +:1012500061E070E0FC01EE5BFE4F2081E22FEF7059 +:10126000F0E042A122952F70DB0102C0AA0FBB1F44 +:101270002A95E2F79D01242B22A3019758F7DF91CD +:10128000CF911F910F910C946C03EF92FF920F93EB +:101290001F93CF93DF9300E212E0C3E0EE24E394C8 +:1012A000F12CD5E08C2F0E94EC088BE090E040E020 +:1012B00050E0FC01EE5BFE4F6081E62FEF70F0E046 +:1012C00020A130E062956F7002C0359527956A9530 +:1012D000E2F720FD09C09701082E02C0220F331F3C +:1012E0000A94E2F7422B532B019718F7F8019291D9 +:1012F00082918F018417950721F051834083D09309 +:1013000005018C2F0E94EC08C15060F68091050108 +:1013100087FD2CC08150809305018F3F39F08FE904 +:101320009FE00197F1F700C0000020C080911E02ED +:1013300090911F02909327028093260280911C02B5 +:1013400090911D02909325028093240280911A02AD +:1013500090911B02909323028093220280911802A5 +:101360009091190290932102809320020E946E03B3 +:1013700081E0DF91CF911F910F91FF90EF90089541 +:10138000E82FF0E0EE0FFF1FE05EFD4F80819181BE +:10139000089508950F931F93CF9308E212E0C0E0E1 +:1013A000F801929182918F010E943022C80FF2E0E1 +:1013B00000321F07A9F78C2FCF911F910F9108952D +:1013C0000E947423811102C00E9450230E9499231D +:1013D000809307033E9A809171008D7F8093710006 +:1013E00082E0809390008AE18093910081E0809375 +:1013F0002A02089580912A02811102C00E94E00908 +:1014000010927A0210927902809171008D7F809300 +:101410007100809190008F738093900010923C0235 +:1014200010923B0210927302109274021092750295 +:10143000109276021092720210927102E1E5F2E0CF +:10144000A1E4B2E011921192119211921D921D929B +:1014500082E0E137F807B1F70895CF92DF92EF927B +:10146000FF920F931F93CF93DF9320913B02222390 +:1014700009F484C06B017C0180912A02811102C0B1 +:101480000E94E00901E712E0C7E0D0E0A701960161 +:10149000F80192918291729162918F010E94E428E9 +:1014A000811131C0FE01EE0FFF1FEE0FFF1FEF5A3B +:1014B000FD4F1082118212821382DE01AA0FBB1F20 +:1014C000AF5BBD4F11961C921E92C730D105E9F05B +:1014D000219644815581668177814083518362835F +:1014E0007383148215821682178212968D919C91B5 +:1014F000139711969C938E9313961C921E9212979B +:1015000034961296E2CF219708F680917902909155 +:101510007A02019797FD05C090937A028093790231 +:1015200004C010927A02109279028091790290910F +:101530007A0220917702309178022817390724F037 +:101540001092780210927702892BC1F48091710079 +:101550008D7F80937100809190008F7380939000B5 +:101560001092730210927402109275021092760219 +:10157000109272021092710210923B02DF91CF9191 +:101580001F910F91FF90EF90DF90CF9008951F92E1 +:101590000F920FB60F9211244F925F926F927F922B +:1015A0008F929F92AF92BF92CF92DF92EF92FF9273 +:1015B0002F933F934F935F936F937F938F939F935B +:1015C000AF93BF93CF93DF93EF93FF9380913B0251 +:1015D000882309F49BC1C0917902D0917A021C162C +:1015E0001D060CF093C140902B0250902C0260908D +:1015F0002D0270902E0220E030E0A901C301B2015B +:101600000E948F2A18160CF065C0C130D10509F46C +:1016100052C08091770290917802BE010E94612CA5 +:101620007C01909378028093770280903D029090A5 +:101630003E02A0903F02B090400220E030E040E83F +:101640005FE3C501B4010E94802860933D0270935E +:101650003E0280933F0290934002F701EE0FFF1F7E +:10166000EE0FFF1FEF5AFD4FA301920160817181C0 +:10167000828193810E94E82820E030E040E05EE330 +:101680000E94932A9B01AC01C501B4010E948F2ADC +:1016900018168CF4C7010196BE010E94612C90932C +:1016A00078028093770210923D0210923E021092CF +:1016B0003F0210924002E0917702F0917802EE0F23 +:1016C000FF1FEE0FFF1FEF5AFD4F60817181828176 +:1016D0009381D0C0C0907302D0907402E0907502E4 +:1016E000F090760220E030E0A901C701B6010E9427 +:1016F000E4282197882309F4A2C0FE01EE0FFF1F02 +:10170000EE0FFF1FEF5AFD4F80809180A280B380C3 +:10171000A5019401C701B6010E94E42887FF31C0EA +:10172000A501940160E070E08CED93EC0E94E82844 +:1017300020E030E040E451E40E94E82820E030E07E +:1017400040E05FE30E94932A9B01AC0160E070E0FF +:1017500080E090E40E94F62A9B01AC01C501B4012F +:101760000E94932A9B01AC01C701B6010E94E428A4 +:1017700087FF07C0A701960160E070E08CED93E45D +:1017800039C0A5019401C701B6010E948F2A18161D +:101790000CF055C0A501940160E070E08CED93E47D +:1017A0000E94E82820E030E040E451E40E94E8286C +:1017B00020E030E040E05FE30E94932A9B01AC010F +:1017C00060E070E080E090E40E94F62A9B01AC01AA +:1017D000C501B4010E94932A9B01AC01C701B60167 +:1017E0000E948F2A18165CF5A701960160E070E050 +:1017F0008CED93EC0E94E82820E030E040E451E4D6 +:101800000E94E82820E030E040E05FE30E94932A55 +:101810009B01AC0160E070E080E090E40E94F62A59 +:101820009B01AC01C701B6010E94932A6093730229 +:1018300070937402809375029093760213C0FE0138 +:10184000EE0FFF1FEE0FFF1FEF5AFD4F80819181BA +:10185000A281B3818093730290937402A093750266 +:10186000B093760260917302709174028091750258 +:101870009091760220912802309129022F3F4FEF5C +:10188000340731F02F5F3F4F309329022093280215 +:101890000E946F0E6B017C0120E034E244EF51E4C2 +:1018A0000E94E42887FF08C086EFC82E88E2D82E61 +:1018B00084EFE82E81E4F82E20E030E040E051E4AF +:1018C000C701B6010E94932A9B01AC0160E074E25B +:1018D00084E79BE40E94E8286B017C010E94552963 +:1018E0007093970060939600209106013091070154 +:1018F0004091080150910901C701B6010E94932A45 +:101900000E945529709399006093980080913C0241 +:10191000882309F433C1C0903702D0903802E09098 +:101920003902F0903A0220E030E0A901C701B60187 +:101930000E948F2A1816D4F58091280290912902CE +:101940008F3F2FEF920729F0019690932902809301 +:101950002802C701B6010E946F0E20E030E040E08F +:1019600051E40E94932A9B01AC0160E074E284E799 +:101970009BE40E94E8286B017C010E94552970932A +:1019800097006093960020910601309107014091E5 +:10199000080150910901C701B6010E94932A0E94D3 +:1019A0005529709399006093980008C01092970091 +:1019B0001092960010929900109298006091310256 +:1019C000709132026F5F7F4F7093320260933102E9 +:1019D000209196003091970080E090E0232BF1F069 +:1019E000C0919600D09197000E9481296B017C01E3 +:1019F000BE0180E090E00E9481299B01AC016091D2 +:101A000033027091340280913502909136020E9427 +:101A1000E82820E03FEF4FE757E410C00E948129FB +:101A20006B017C0120E030EE4FEF54E46091330213 +:101A30007091340280913502909136020E94932A6F +:101A40009B01AC01C701B6010E948F2A87FD96C099 +:101A500080912F028F5F80932F0290E020910303EB +:101A60003091040382179307A0F080910E0388231E +:101A700019F010922F020DC0809171008D7F80931C +:101A80007100809190008F738093900010923C02BF +:101A90007DC080913002C0912F02811128C0C0907A +:101AA0000803D0900903E0900A03F0900B0320E0B4 +:101AB00030E0A901C701B6010E948F2A1816BCF4B4 +:101AC00081E0809330021092370210923802109217 +:101AD000390210923A02C0923302D0923402E0925C +:101AE0003502F0923602C150C0932F0243C01092CB +:101AF00030021092290210922802E0910503F09121 +:101B0000060348E0C49FE00DF11D112480819181FE +:101B1000A281B3818093370290933802A093390257 +:101B2000B0933A0220E030E040E85EE364817581E2 +:101B3000868197810E94932A6B017C0180910A0122 +:101B4000682F70E080E090E00E94812920E030E082 +:101B500048EC52E40E94E8289B01AC01C701B601A1 +:101B60000E94932A6093330270933402809335026B +:101B70009093360210923202109231028091070344 +:101B800080FD04C010923C0210923B02FF91EF9145 +:101B9000DF91CF91BF91AF919F918F917F916F9185 +:101BA0005F914F913F912F91FF90EF90DF90CF90F9 +:101BB000BF90AF909F908F907F906F905F904F906D +:101BC0000F900FBE0F901F901895CF92DF92EF925B +:101BD000FF92CF93DF936B017C01EA0180912A028F +:101BE000811102C00E94E0098091070380FF46C076 +:101BF0008091790290917A0208970CF03FC0809111 +:101C000071008D7F8093710080913C0281110E9450 +:101C1000FA0981E080933B02109229021092280277 +:101C200020E030E0A901C701B6010E948F2A1816F2 +:101C3000DCF48091790290917A02FC01EE0FFF1F93 +:101C4000EE0FFF1FEF5AFD4FC082D182E282F38276 +:101C5000FC01EE0FFF1FEF5BFD4FD183C0830196A8 +:101C600090937A02809379028091710082608093D0 +:101C7000710080919000806880939000DF91CF91F7 +:101C8000FF90EF90DF90CF900895809107038170CF +:101C90000895809107038160809307030E949D232C +:101CA0000C94C803809107038E7F809307030C94E4 +:101CB0009D2380917B0290E0019666E070E00E9497 +:101CC000612C80937B02089580917B0290E00197C4 +:101CD00066E070E00E94612C80937B0208958F92F1 +:101CE0009F92AF92BF92CF92DF92EF92FF920F93AB +:101CF0001F93CF93DF936B017C01C0912802D09199 +:101D00002902BE0180E090E00E9481294B015C0124 +:101D1000A701960160E070E08CE594E40E94E82859 +:101D20009B01AC01C501B4010E94932A0E94552970 +:101D300020917B02233009F473C028F4222351F050 +:101D40002130E9F02CC1243009F4A0C0253009F479 +:101D5000E0C025C180E090E0A0E0BFE380930601F1 +:101D600090930701A0930801B093090110922B02F0 +:101D700010922C0210922D0210922E0210C110927D +:101D80002B0210922C0210922D0210922E0264311E +:101D9000710540F46A30710560F520E030E040E8FC +:101DA0005EE32BC0693C710508F0AAC080E090E0BA +:101DB0000E94812920E030E040EA51E40E947F281F +:101DC00020E030E044E353E40E94E8289B01AC01AA +:101DD0000E94932A20E030E040E05EE30E94932AD4 +:101DE0009B01AC0160E070E080E09EE30E947F28F0 +:101DF00044C020E030E040E05FE3C701B6010E944C +:101E0000932A6B017C0180E090E0A0E0BEE3809328 +:101E1000060190930701A0930801B0930901BFC088 +:101E200010922B0210922C0210922D0210922E0270 +:101E30004AE0469F9001479F300D1124C90168EB8D +:101E40007BE00E944D2CBC016C5D754077FF03C0A8 +:101E5000719561957109882777FD8095982F0E946B +:101E600083292EE333EC4EE259E30E94932A20E0CB +:101E700030E040EC5EE30E9480286093060170939E +:101E80000701809308019093090189C010922B02E9 +:101E900010922C0210922D0210922E02CE0183700D +:101EA0009927892BE1F0BE016170772780E090E0EF +:101EB0000E94812920E030E040E05EE30E94932A06 +:101EC00020E030E040E45FE30E9480286093060158 +:101ED0007093070180930801909309010CC080E082 +:101EE00090E0A0E0BFE38093060190930701A093E8 +:101EF0000801B0930901C770DD27CD2B09F04FC051 +:101F00001092060110920701109208011092090127 +:101F100046C010922B0210922C0210922D021092A9 +:101F20002E0200E010E020E03FE300930601109352 +:101F3000070120930801309309016739710578F191 +:101F400080E090E00E94812920E030E047E153E406 +:101F50000E947F2820E030E04AE754E40E94E8280D +:101F600020E030E048E452E40E94932A20E030E090 +:101F700040EA51E40E94C5290E945029660F771F4C +:101F8000660F771FFB01EE5AFE4F2081318142819F +:101F90005381C701B6010E94932A6B017C01C701DE +:101FA000B601DF91CF911F910F91FF90EF90DF90DD +:101FB000CF90BF90AF909F908F90089580918C02AA +:101FC0000895CF93DF9300D01F92CDB7DEB79C0169 +:101FD00080911303843019F593E099833B832A831E +:101FE0009093E9008FEF9091E800815095FD06C035 +:101FF00095ED9A95F1F700008111F5CF8091E800F9 +:1020000085FF0DC040E050E063E070E0CE01019636 +:102010000E9442128091E8008E778093E8000F9032 +:102020000F900F90DF91CF910895CF93DF9300D061 +:102030001F92CDB7DEB720911303243021F522E0A3 +:1020400029839B838A8383E08093E9008FEF9091BB +:10205000E800815095FD06C095ED9A95F1F70000D6 +:102060008111F5CF8091E80085FF0DC040E050E080 +:1020700063E070E0CE0101960E9442128091E80078 +:102080008E778093E8000F900F900F90DF91CF91A3 +:102090000895209113032430F1F422E02093E90005 +:1020A0002FEF3091E800215035FD06C035ED3A950F +:1020B000F1F700002111F5CF2091E80025FF0BC0BA +:1020C00040E050E065E070E00E9442128091E8003C +:1020D0008E778093E8000895CF93DF93EC01909181 +:1020E0001303943009F046C0809115018823D9F07C +:1020F000809116018823B9F09093E9008FEF9091B9 +:10210000E800815095FD06C095E19A95F1F7000031 +:102110008111F5CF8091E80085FF2CC040E050E0B0 +:1021200060E170E017C081E08093E9008FEF90914B +:10213000E800815095FD06C095ED9A95F1F70000F5 +:102140008111F5CF8091E80085FF14C040E050E098 +:1021500068E070E0CE010E9442128091E8008E7724 +:102160008093E80080E1FE01ACE7B2E001900D92BF +:102170008A95E1F7DF91CF91089580911203811143 +:1021800009C00E94D7130E9434148091E200846039 +:102190008093E2000895109212030895089508951F +:1021A0000C947B2242E061EC81E00E94511342E0FA +:1021B00061EC82E00E94511342E061EC83E00E94F6 +:1021C000511342E161EC84E00C94511380911503AA +:1021D000833009F455C030F4813071F0823009F455 +:1021E0008EC008958A3009F47AC08B3009F460C03B +:1021F000893009F09CC020C080911403813A09F015 +:1022000096C08091E800877F8093E8008091180352 +:1022100090911903892B21F460E18CE792E003C0CF +:1022200060E080E090E070E00E948D128091E80014 +:102230008B778093E800089580911403813209F030 +:1022400076C08091180390911903009719F00397B5 +:1022500009F06DC08091E800877F8093E80080914D +:10226000E80082FD05C0809113038111F8CF5FC0A3 +:102270008091F10080938C028091E8008B7753C0AD +:1022800080911403813A09F052C080911803909113 +:102290001903892B09F04BC08091E800877F809358 +:1022A000E8008091E80080FFFCCF8091150136C0E6 +:1022B000809114038132D9F580911803909119030C +:1022C000892BA9F58091E800877F8093E8000E9420 +:1022D000861380911603809315010C94BC1B80918A +:1022E0001403813221F58091E800877F8093E80014 +:1022F0000E9486138091170380938D020895809128 +:102300001403813AA1F48091E800877F8093E8006C +:102310008091E80080FFFCCF80918D028093F100D6 +:102320008091E8008E778093E8000C9486130895DE +:1023300084B7877F84BF88E10FB6F89480936000EC +:10234000109260000FBE90E080E80FB6F894809382 +:102350006100909361000FBE0E9429170E94D7135D +:102360000E9434148091E20084608093E2007894AB +:102370000E94BA160E942B178BE091E00E94D5169E +:1023800080911303853069F40E943C2280911103EF +:102390008823B1F30E946A22882391F30E942C12B1 +:1023A000EFCF0E943317ECCF292F3327233031058D +:1023B000C9F064F42130310581F02230310509F093 +:1023C00043C08DE690E028E433E042C0213231057D +:1023D000F1F02232310541F137C082E190E025EB86 +:1023E00033E036C099278130910541F08230910564 +:1023F00041F0892B49F5E4E4F3E005C0E6E1F3E0C0 +:1024000002C0ECEEF2E0849190E09F0121C06430C4 +:10241000D8F4E62FF0E0EE0FFF1FE255FE4F2081CB +:10242000318189E090E014C0643070F470E0FB0109 +:10243000EE0FFF1FEA55FE4F20813181FB01EE5563 +:10244000FE4F808190E004C080E090E020E030E02A +:10245000FA0131832083089580E189BD82E189BD3D +:1024600009B400FEFDCF8091D8008F7D8093D80005 +:102470008091E00082608093E0008091E00081FD27 +:10248000FCCF0895CF92DF92EF92FF920F931F93AC +:10249000CF93DF93EC018B016A010E94A513811198 +:1024A00033C0C114D10439F0F60180819181081B39 +:1024B000190BC80FD91FE12CF12C0115110519F1C9 +:1024C0008091E80085FD16C08091E8008E778093AA +:1024D000E800C114D10449F0F60180819181E80E31 +:1024E000F91EF182E08285E00FC00E94A5138823C7 +:1024F00021F30AC089918093F10001501109FFEF87 +:10250000EF1AFF0ADACF80E0DF91CF911F910F9190 +:10251000FF90EF90DF90CF90089520911A033091B3 +:102520001B032617370748F06115710539F4209110 +:10253000E8002E772093E80001C0B90140E0611562 +:102540007105A9F120911303222309F443C025301A +:1025500009F442C02091E80023FD40C02091E8002A +:1025600022FD32C02091E80020FFE9CF4091F30026 +:102570002091F20030E0342BFC01CF016115710590 +:1025800059F02830310540F481918093F100615079 +:1025900071092F5F3F4FF1CF41E02830310509F03D +:1025A00040E02091E8002E772093E800C8CF411149 +:1025B000C9CF0AC080911303882361F0853061F090 +:1025C0008091E80083FD0AC08091E80082FFF2CF8D +:1025D00080E0089582E0089583E0089581E0089501 +:1025E00020911A0330911B032617370748F0611515 +:1025F000710539F42091E8002E772093E80001C09E +:10260000B901FC0120E06115710591F1809113037E +:10261000882309F440C0853009F43FC08091E80068 +:1026200083FD3DC08091E80082FD2FC08091E800CD +:1026300080FFE9CF2091F3008091F20090E0922B8F +:102640006115710559F08830910540F4249120936B +:10265000F1003196615071090196F2CF21E008979F +:1026600009F020E08091E8008E778093E800CBCFDE +:102670002111CCCF0AC080911303882361F08530EB +:1026800061F08091E80083FD0AC08091E80082FF3C +:10269000F2CF80E0089582E0089583E0089581E01C +:1026A0000895982F973058F59093E900981739F0CE +:1026B0007091EC002091ED005091F00003C0242FA8 +:1026C000762F50E021FF19C03091EB003E7F309310 +:1026D000EB003091ED003D7F3093ED003091EB0049 +:1026E00031603093EB007093EC002093ED00509339 +:1026F000F0002091EE0027FF07C09F5FD3CF8F70BF +:102700008093E90081E0089580E0089580911403AA +:1027100087FF11C08091E80082FD05C080911303FE +:102720008111F8CF11C08091E8008B770BC08091A8 +:102730001303882349F08091E80080FFF8CF80914F +:10274000E8008E778093E80008952091E4003091AE +:10275000E50095E64091EC00842F817040FF22C097 +:102760008091E80080FD1CC080911303882391F0C4 +:10277000853091F08091EB0085FD10C04091E40020 +:102780005091E5004217530729F39A01915011F730 +:1027900084E0089582E0089583E0089581E008953B +:1027A00080E008954091E80042FFDECF08950E9446 +:1027B00045140E944D14E0EEF0E08081816080833A +:1027C000E8EDF0E080818F77808319BCA7EDB0E061 +:1027D0008C918E7F8C9380818F7E808310921203E8 +:1027E00008950F931F93CF93DF930E9445140E9487 +:1027F0004D14C8EDD0E088818F7788838881806808 +:10280000888388818F7D888319BC1092130310926E +:102810000F03109211031092100300EE10E0F80164 +:1028200080818B7F808388818160888342E060E043 +:1028300080E00E945113E1EEF0E080818E7F808382 +:10284000E2EEF0E080818160808380818860808317 +:10285000F80180818E7F8083888180618883DF9109 +:10286000CF911F910F910895E8EDF0E080818F7E68 +:102870008083E7EDF0E080818160808384E082BF27 +:1028800081E0809312030C94F113E8EDF0E0808175 +:102890008E7F80831092E20008951092DA001092E9 +:1028A000E10008951F920F920FB60F9211242F93FB +:1028B0003F934F935F936F937F938F939F93AF93C8 +:1028C000BF93EF93FF938091E10082FF0BC0809153 +:1028D000E20082FF07C08091E1008B7F8093E100DE +:1028E0000E94B9168091DA0080FF1FC08091D80045 +:1028F00080FF1BC08091DA008E7F8093DA00809188 +:10290000D90080FF0DC080E189BD82E189BD09B495 +:1029100000FEFDCF81E0809313030E94BD1005C02F +:1029200019BC109213030E94CB108091E10080FF2C +:1029300019C08091E20080FF15C08091E2008E7F77 +:102940008093E2008091E20080618093E2008091B8 +:10295000D80080628093D80019BC85E0809313036F +:102960000E94CF108091E10084FF30C08091E2008E +:1029700084FF2CC080E189BD82E189BD09B400FEDD +:10298000FDCF8091D8008F7D8093D8008091E100A9 +:102990008F7E8093E1008091E2008F7E8093E20041 +:1029A0008091E20081608093E20080910F03882390 +:1029B00011F084E007C08091E30087FD02C081E050 +:1029C00001C083E0809313030E94D0108091E10046 +:1029D00083FF29C08091E20083FF25C08091E10040 +:1029E000877F8093E10082E08093130310920F03AE +:1029F0008091E1008E7F8093E1008091E2008E7FE4 +:102A00008093E2008091E20080618093E20042E0E6 +:102A100060E080E00E9451138091F0008860809314 +:102A2000F0000E94CE10FF91EF91BF91AF919F9166 +:102A30008F917F916F915F914F913F912F910F9067 +:102A40000FBE0F901F9018951F920F920FB60F9206 +:102A500011242F933F934F935F936F937F938F93A3 +:102A60009F93AF93BF93CF93DF93EF93FF93C09167 +:102A7000E900CF708091EC00D82FD17080FDD0E8B4 +:102A80001092E9008091F000877F8093F0007894A5 +:102A90000E9468151092E9008091F0008860809390 +:102AA000F000CD2BCF70C093E900FF91EF91DF9143 +:102AB000CF91BF91AF919F918F917F916F915F91D6 +:102AC0004F913F912F910F900FBE0F901F9018952F +:102AD0001F93CF93DF93CDB7DEB7AA970FB6F894C5 +:102AE000DEBF0FBECDBFE4E1F3E088E08E0F909132 +:102AF000F10091938E13FBCF0E94E6108091E800C5 +:102B000083FF1FC18091140390911503492F50E05A +:102B10004A30510508F015C1FA01EA5AFF4F0C94EA +:102B2000752C803881F0823809F00BC18091180330 +:102B30008F708093E9008091EB0085FB882780F9F6 +:102B40001092E90006C08091100390911103911139 +:102B500082609091E800977F9093E8008093F10065 +:102B60001092F100C8C0282F2D7F09F0EAC08823F9 +:102B700019F0823061F0E5C080911603813009F0D0 +:102B8000E0C0933009F080E0809311032BC0809166 +:102B90001603811127C0809118038F7009F4D1C0EA +:102BA0008093E9002091EB0020FF1CC0933021F4BA +:102BB0008091EB00806214C09091EB009061909343 +:102BC000EB0021E030E0A90102C0440F551F8A95B7 +:102BD000E2F74093EA001092EA008091EB008860EF +:102BE0008093EB001092E9008091E800877F86C017 +:102BF0008111A7C0109116031F778091E3008078A0 +:102C0000812B8093E3008091E800877F8093E80028 +:102C10000E9486138091E80080FFFCCF8091E30042 +:102C200080688093E300111102C082E001C083E05C +:102C30008093130386C08058823008F082C0809150 +:102C40001603909117038C3D53E0950779F583E0C7 +:102C50008A838AE289834FB7F894DE01139620E0D5 +:102C60003EE051E2E32FF0E050935700E49120FF63 +:102C700003C0E295EF703F5FEF708E2F90E0EA3077 +:102C800010F0C79601C0C0968D939D932F5F24319D +:102C900049F74FBF8091E800877F8093E8006AE2A0 +:102CA00070E0CE0101960E948D1214C0AE014F5FFC +:102CB0005F4F609118030E94D411BC01009709F482 +:102CC00040C09091E800977F9093E80089819A81B5 +:102CD0000E94F0128091E8008B778093E80031C069 +:102CE000803879F58091E800877F8093E8008091B3 +:102CF0000F038093F1008091E8008E778093E800C5 +:102D00000E9486131EC081111CC090911603923040 +:102D1000C0F48091E800877F8093E80090930F03D0 +:102D20000E94861380910F03811106C08091E300F9 +:102D300087FD02C081E001C084E0809313030E94FC +:102D4000D2108091E80083FF0AC08091E800877F5D +:102D50008093E8008091EB0080628093EB00AA965C +:102D60000FB6F894DEBF0FBECDBFDF91CF911F919C +:102D700008950895CF93809113038823A1F0C09103 +:102D8000E900CF709091EC00892F817090FD80E870 +:102D9000C82B1092E9008091E80083FD0E9468151D +:102DA000CF70C093E900CF910895909393028093E0 +:102DB00092020895E0919202F0919302309721F0EF +:102DC0000190F081E02D099480E00895E091920255 +:102DD000F0919302309721F00280F381E02D099465 +:102DE0000895E0919202F0919302309721F00480CF +:102DF000F581E02D0994089520919002309191027F +:102E00008217930771F09093910280939002E09162 +:102E10009202F0919302309721F00680F781E02D25 +:102E20000994089520918E0230918F0282179307A2 +:102E300071F090938F0280938E02E0919202F09154 +:102E40009302309721F00084F185E02D09940895D4 +:102E500008950C9428170E94AF220E9400090E9436 +:102E600035230C94E4275F926F927F928F929F920A +:102E7000AF92BF92CF92DF92EF92FF920F931F9388 +:102E8000CF93DF9300D000D01F92CDB7DEB70E9462 +:102E900045099DE9C92E92E0D92E03E010E0AA244D +:102EA000A394B12C502E802F0E94C0094C01F60132 +:102EB000729062906F016826792661147104A1F402 +:102EC0000150110978F78FEF89838A831B820E9452 +:102ED000B8228160782F9D838C8349815A816B81D0 +:102EE0008D810E94E31738C08091F20281FD0E941B +:102EF000C9092BE030E07501022E02C0EE0CFF1C68 +:102F00000A94E2F7C70186219721892B09F12983C9 +:102F10005A828E209F2091E0892809F490E09B83BB +:102F20000E94B8228160782F9D838C8349815A81C9 +:102F30006B818D810E94E317000F111FF801EB5682 +:102F4000FD4F80819181E826F926F182E08204C05C +:102F50002150310980F6B4CF0E941C2510919402B3 +:102F60000E94DA161817D1F00E94DA1680939402A4 +:102F70000F900F900F900F900F90DF91CF911F91B6 +:102F80000F91FF90EF90DF90CF90BF90AF909F9008 +:102F90008F907F906F905F900C94EA080F900F9045 +:102FA0000F900F900F90DF91CF911F910F91FF9095 +:102FB000EF90DF90CF90BF90AF909F908F907F90D9 +:102FC0006F905F900895CF93DF93CDB7DEB72B97C7 +:102FD0000FB6F894DEBF0FBECDBF4F835887698709 +:102FE0007A878B87DE01119686E0FD0111928A9522 +:102FF000E9F785E0FE01379601900D928A95E1F799 +:1030000049815A816B817C818D819E810E945A1EEB +:103010002B960FB6F894DEBF0FBECDBFDF91CF91D8 +:103020000895CF93882309F4C2C0C82F823859F479 +:103030000E94DA1681FDBBC089E30E9434210E9400 +:10304000012289E30CC0833879F40E94DA1680FDEE +:10305000AEC083E50E9434210E94012283E50E94D4 +:103060007621CF910C940122843859F40E94DA160B +:1030700082FD9DC087E40E9434210E94012287E4E2 +:10308000EECF8CEF8C0F813A48F48C2F0E944C27A6 +:1030900081118DC08C2F0E943421E3CF80E28C0FF0 +:1030A000883048F4C77081E001C0880FCA95EAF7FC +:1030B0000E94BA21D6CF8BE58C0F833078F4C53AC5 +:1030C00029F0C63A31F083E890E005C081E890E04D +:1030D00002C082E890E0CF910C94FC1688E58C0F3A +:1030E000833108F064C0C83A39F1C93A41F1CA3AAB +:1030F00049F1CB3A51F1CC3A59F1CD3A61F1C03BAB +:1031000069F1CE3A71F1CF3A79F1C13B81F1C23B1D +:1031100089F1C33B91F1C43B99F1C53BA1F1C63B99 +:10312000A9F1C73BB1F1C83BB9F1C93BC1F1CA3BF9 +:10313000C9F180E090E038C082EE90E035C089EEC1 +:1031400090E032C08AEE90E02FC085EB90E02CC07A +:1031500086EB90E029C087EB90E026C08CEC90E0F5 +:1031600023C08DEC90E020C083E891E01DC08AE888 +:1031700091E01AC082E991E017C084E991E014C09F +:1031800081E292E011C083E292E00EC084E292E01C +:103190000BC085E292E008C086E292E005C087E2BB +:1031A00092E002C08AE292E0CF910C941217CF9184 +:1031B0000895882309F44BC0823859F40E94DA1626 +:1031C00081FF45C089E30E9434210E94012289E3E6 +:1031D0000CC0833871F40E94DA1680FF38C083E592 +:1031E0000E9434210E94012283E50E9476210C94E2 +:1031F0000122843859F40E94DA1682FF28C087E43D +:103200000E9434210E94012287E4EFCF9CEF980FA7 +:10321000913A58F390E2980F983050F4877091E00B +:1032200001C0990F8A95EAF7892F0E94C021DFCF4C +:103230009BE5980F933020F480E090E00C94FC160E +:10324000885A833120F480E090E00C94121708959E +:10325000882321F00E94BA210C940122089588232A +:1032600021F00E94C0210C94012208957F928F9238 +:103270009F92AF92BF92CF92DF92EF92FF920F9305 +:103280001F93CF93DF931F92CDB7DEB77C01C62E7D +:10329000772EFC01058102950F70128111110E9499 +:1032A000D7210E942D21882379F0112369F080E233 +:1032B0008C0D883048F082E00E9416210E942D215A +:1032C00091E0D82ED92601C0D12CE72DE295EF70E0 +:1032D000F0E0E05AFF4F0C94752C872D807F072D6E +:1032E0000F70882311F00295007F112389F00023CD +:1032F00009F499C180E28C0D883020F4802F0E945F +:10330000BA2103C0802F0E94CA210E9401228BC1D2 +:103310008C2D0E94D918002309F4C3C180E28C0DC2 +:10332000883020F4802F0E94C02103C0802F0E948B +:10333000D0210E940122B5C1872D807F972D9F70DB +:10334000803211F4892F03C0892F8295807FCC2091 +:1033500021F0F1E0CF16A1F01DC0112339F00023B8 +:1033600019F1013009F50E94EA219BC1002319F0EF +:10337000013009F496C189830E94ED21898110C131 +:10338000112321F0063008F08CC10EC0053008F082 +:1033900088C106C1112359F0002331F0F70195814E +:1033A00090FF41C19F7095830E9428197AC1002324 +:1033B00009F4F6C03EC1872D86958695837090E00E +:1033C000009719F0019761F06CC1112321F08C2D49 +:1033D000972D937002C080E090E00E94FC1661C1BE +:1033E000112321F08C2D972D937002C080E090E086 +:1033F0000E94121756C18C2D112319F00E9424240B +:1034000002C00E948C240E9411254BC1872D83701D +:1034100009F052C0111145C18C2D82958695877097 +:10342000880F880F9C2D9F70892E912CA12CB12C78 +:10343000082E04C0880C991CAA1CBB1C0A94D2F745 +:10344000C4FE14C00FE010E020E030E0B901A80194 +:1034500004C0440F551F661F771F8A95D2F7CB0112 +:10346000BA01609570958095909503C060E070E01A +:10347000CB01272D26952695237030E0223031058B +:1034800069F02330310589F0682979298A299B2937 +:103490002130310571F00E94A21F03C168297929EA +:1034A0008A299B290E94BE1FFCC00E94A21FC50141 +:1034B000B4010E94861FF5C0112319F0872D817079 +:1034C00001C08695882309F4ECC08C2D82958695E1 +:1034D0008770880F880F9C2D9F70892E912CA12CAE +:1034E000B12C082E04C0880C991CAA1CBB1C0A9481 +:1034F000D2F7C4FE14C00FE010E020E030E0B901C4 +:10350000A80104C0440F551F661F771F8A95D2F784 +:10351000CB01BA01609570958095909503C060E0ED +:1035200070E0CB01272D269526952370422F50E081 +:103530004230510569F04330510589F068297929F5 +:103540008A299B294130510571F00E947C20A9C035 +:10355000682979298A299B290E949820A2C00E9463 +:103560007C20C501B4010E9460209BC08C2D90E09E +:10357000FC01E05EF109E531F10508F050C0E059C9 +:10358000FF4F0C94752C0C2D0F70872D8F7111230C +:1035900021F00E94F91F802F07CF0E941A20802F50 +:1035A0000E942F197EC0112341F0053008F079C028 +:1035B000872D8F710E943F2074C0063008F071C0C3 +:1035C000F7CF112339F0872D8F710E94F91F69C041 +:1035D0001123C9F3872D8F710E941A2062C0112315 +:1035E00029F0872D8F710E94E41F5BC00E94DA1FB3 +:1035F00058C0112351F0172D1F71812F0E94F91F00 +:1036000063E0812F0E940D214CC081E00E941621B1 +:10361000023008F446C082E00E94162142C0112305 +:1036200031F0002381F28C2D0E9411183AC0002342 +:1036300089F28C2D0E94D91834C0472D4F706C2D03 +:10364000C7010E9455030E94FE1E2BC0111129C004 +:10365000472D4F7050E042305105B9F04CF4411500 +:10366000510581F041305105E1F40E940C2819C048 +:103670004330510569F04430510599F48C2D0E9476 +:103680005E280FC00E94F5270CC00E94282809C0A0 +:103690000E943B2806C0472D4F706C2DC7010E9429 +:1036A000CB05DD20F9F00E94092180FD1BC0F70148 +:1036B00012820E9403210E94F91FC7010E94811BF0 +:1036C0000E9403210F90DF91CF911F910F91FF90E6 +:1036D000EF90DF90CF90BF90AF909F908F907F90B2 +:1036E0000C941A200F90DF91CF911F910F91FF90B2 +:1036F000EF90DF90CF90BF90AF909F908F907F9092 +:1037000008950F931F93CF93DF93EC0188819981E4 +:103710002B813C81232BB9F09F3F11F48F3F99F00F +:10372000CE010E94CA03882371F0688179818A8161 +:103730000E94FF208C010E94B4200E947B1FB801D0 +:10374000CE010E943619DF91CF911F910F910895FC +:103750000E94D7210E94E7210E94AC210E940122F1 +:103760000E94C2250E94112580E090E00E94FC1674 +:1037700080E090E00C9412170E94C7210C94A81BC3 +:103780000E94F420292F22952F7030E02C30310533 +:103790004CF42A3031056CF42250310922303105C5 +:1037A000A8F407C02C30310569F02F30310551F0F5 +:1037B0000DC0803F69F018F4803E40F409C0843F9A +:1037C00029F406C093FB882780F9089580E00895C6 +:1037D00081E00895CF93DF9300D000D01F92CDB742 +:1037E000DEB70F900F900F900F900F90DF91CF9159 +:1037F0000895CF93DF9300D000D000D0CDB7DEB7CF +:1038000026960FB6F894DEBF0FBECDBFDF91CF91E5 +:1038100008951F93CF93DF93C0919D0216E080918E +:103820009E02C81799F0D0E01C9FF0011D9FF00D7B +:103830001124E156FD4F4081518162817381848161 +:1038400095810E94F91B2196C770E9CFDF91CF9136 +:103850001F9108954091CF025091D0026091D10202 +:103860007091D2028091D3029091D4020C94F91BF2 +:103870008091D40282958F7009F054C08091D1025A +:10388000882309F44FC080919D02A0919E0260910F +:10389000CF027091D0024091D2025091D302B6E093 +:1038A0008A1709F43FC090E041155105C1F17F3FEF +:1038B00011F46F3FA1F1B89FF001B99FF00D1124F1 +:1038C000E156FD4F218172132AC02081621327C067 +:1038D0002281211124C0238134812417350710F45B +:1038E00021503109241B350B283C3105C0F42091AF +:1038F000D4022F7020612093D40226E0289FF0018B +:10390000299FF00D1124EC55FD4F80818F7080614F +:1039100080838FEC92E00E94811B0C94091C01961D +:103920008770BECF0895CF92DF92EF92FF920F93F0 +:103930001F93CF93DF93CDB7DEB762970FB6F8949E +:10394000DEBF0FBECDBF8C0185E0F801DE011D9604 +:1039500001900D928A95E1F7D8014C9111965C91F6 +:10396000119712966C9112971396CD90DC90149744 +:103970003091CF027091D0028091D2029091D30207 +:10398000009709F46BC17F3F19F43F3F09F466C10A +:10399000E090D102EE2009F4C0C02091D402C816F4 +:1039A000D90628F0F601E81BF90BCF0104C0809579 +:1039B00090958C0D9D1DFF24F394883C910578F023 +:1039C000F12C207F09F0C6C07C2DD98AC88A89894C +:1039D0000E94EA1B8FEC92E00E94811BB1C0822FF3 +:1039E000807F09F046C0751314C0341312C06111F2 +:1039F00010C02F7020612093D4020E942A1C8FECEB +:103A000092E00E94811B8091D402D80115968C937C +:103A10002EC0CD2819F15F3F11F44F3FF9F0F62E7B +:103A200061111CC080919D0220919E0236E0821798 +:103A300009F45AC090E0389FF001399FF00D11242D +:103A4000E156FD4F7181571306C07081471303C0C3 +:103A50007281711103C001968770E9CFF62E66233B +:103A600009F418C18091D40281608093D402F12CB2 +:103A700011C1751308C0341306C0611104C08091D0 +:103A8000D402D801C3C04D875E878D859E856A8B21 +:103A90000E94C01B6A898823E1F16623D1F120913D +:103AA000D402822F82958F7090E0029774F08091FB +:103AB000CF029091D00298878F831986DB86CA86C1 +:103AC0002C87CE0107960E94811B86E0F801AFEC9F +:103AD000B2E001900D928A95E1F70E94381C0E9495 +:103AE0002A1CFF24F394D6C04D875E878D859E8562 +:103AF0000E94F420292F22952F7030E022303105CA +:103B00000CF0BCC09F7009F0B6C0805E883008F42D +:103B1000C1C0C8010E94811BE4CFC816D90608F4B1 +:103B200053C0F601E81BF90BCF01883C910508F45E +:103B300050C0F12C7C2DD98AC88A89890E94EA1B41 +:103B4000EFECF2E086E0DF011D928A95E9F70E9432 +:103B50002A1CA0C0751314C0341312C0611110C008 +:103B60008091D402F8018583C8010E94811B86E000 +:103B7000EFECF2E0DF011D928A95E9F7FE2C8AC096 +:103B80004D875E878D859E856A8B0E94C01B6A89E2 +:103B9000882309F4BECF662309F4BBCF2091D40259 +:103BA000822F82958F7090E002970CF48ECF8091D7 +:103BB000CF029091D0029A8389831B82DD82CC82CE +:103BC0002E83CE0101967FCF809590958C0D9D1D03 +:103BD000ACCFF62E662309F49CCF75132EC0341398 +:103BE0002CC02091D40220FD1FC0822F82958F709F +:103BF000D9F0D80115962C9315978F3049F08F5F27 +:103C0000982F9295907F822F8F70892B15968C9389 +:103C1000C8010E94811B86E0F801AFECB2E0019080 +:103C20000D928A95E1F793CF86E0F801AFECB2E010 +:103C300001900D928A95E1F72DC04D875E878D85A5 +:103C40009E850E94C01B811140CF8091D40281606B +:103C50008093D402C8010E94811B1CC0662309F412 +:103C600058CF4D875E878D859E850E94C01B882317 +:103C700009F44FCF2ACF811148CF0CC02430310531 +:103C80000CF047CF9F7009F440CFF8019581907FE9 +:103C900009F03BCF8F2D62960FB6F894DEBF0FBEB2 +:103CA000CDBFDF91CF911F910F91FF90EF90DF90EB +:103CB000CF9008951F93CF93DF93CDB7DEB72C97A6 +:103CC0000FB6F894DEBF0FBECDBF4F83588769870C +:103CD0007A878B879C87CE0107960E94931C882346 +:103CE00069F08F8198852A853B85232BF1F19F3FD1 +:103CF00009F063C08F3F09F060C037C086E0FE0165 +:103D00003796DE01119601900D928A95E1F76F8149 +:103D10007885EA85FB85309741F17F3F11F46F3F4D +:103D200021F120919E0230E0C90101968770992708 +:103D300040919D0250E08417950709F447C06983BC +:103D40007A83FD83EC8396E0929FD001939FB00D20 +:103D50001124A156BD4FFE01319601900D929A9506 +:103D6000E1F780939E020E94091C16E080919D025B +:103D700090919E028917C1F1189FC00111248156AC +:103D80009D4F0E94931C882379F1E0919D021E9F14 +:103D9000F0011124E156FD4F408151816281738110 +:103DA000848195810E94F91B80919D0290E001968B +:103DB0008770992780939D02D9CF4F815885698557 +:103DC0007A858B859C850E94F91BCFCF0E94BC1BF6 +:103DD00010929E0210929D02EFECF2E086E0DF016D +:103DE0001D928A95E9F7C1CF2C960FB6F894DEBFE5 +:103DF0000FBECDBFDF91CF911F910895EF92FF923B +:103E00000F931F93CF93DF938C01009709F46CC03D +:103E1000F12CEE24E394E8012196F8018491843793 +:103E200040F4843008F051C0813081F0823019F1C3 +:103E30005BC0853709F444C0A8F19CE7980F903720 +:103E400008F052C08F770E94D91841C00E5F1F4FF3 +:103E5000FE01C49180E28C0F883048F4C7708E2D2B +:103E600001C0880FCA95EAF70E94DA2114C08C2F8E +:103E70000E9411182DC00E5F1F4FFE01C49180E2F9 +:103E80008C0F883058F4C7708E2D01C0880FCA95EA +:103E9000EAF70E94E0210E9401221AC08C2F0E94A2 +:103EA000D91816C00E5F1F4FFE01C491CC2381F0BC +:103EB0008FE99FE00197F1F700C00000C150F6CFF5 +:103EC0000E5F1F4FFE01F49003C00E9411188E0177 +:103ED0008F2D882309F49FCFEFE9FFE03197F1F7A9 +:103EE00000C000008150F5CFDF91CF911F910F915D +:103EF000FF90EF90089508956093D9027093DA02CD +:103F00008093DB029093DC020C94A81B0F931F9309 +:103F10000091D9021091DA022091DB023091DC028B +:103F2000DC01CB01802B912BA22BB32B8093D902E8 +:103F30009093DA02A093DB02B093DC021F910F9101 +:103F40000C94A81B0F931F930091D9021091DA02D1 +:103F50002091DB023091DC02DC01CB018023912334 +:103F6000A223B3238093D9029093DA02A093DB02B9 +:103F7000B093DC021F910F910C94A81B0F931F9319 +:103F80000091D9021091DA022091DB023091DC021B +:103F9000DC01CB0180279127A227B3278093D90288 +:103FA0009093DA02A093DB02B093DC021F910F9191 +:103FB0000C94A81B1092D5021092D6021092D70230 +:103FC0001092D8020C94A81B41E050E060E070E031 +:103FD00004C0440F551F661F771F8A95D2F7409380 +:103FE000D5025093D6026093D7027093D8020C94F6 +:103FF000A81B41E050E060E070E004C0440F551F92 +:10400000661F771F8A95D2F78091D5029091D602CC +:10401000A091D702B091D802482B592B6A2B7B2B49 +:104020004093D5025093D6026093D7027093D80282 +:104030000C94A81B41E050E060E070E004C0440F25 +:10404000551F661F771F8A95D2F74095509560954A +:1040500070958091D5029091D602A091D702B0912F +:10406000D802482359236A237B234093D5025093D7 +:10407000D6026093D7027093D8020C94A81B41E03B +:1040800050E060E070E004C0440F551F661F771FCA +:104090008A95D2F78091D5029091D602A091D7024D +:1040A000B091D802482759276A277B274093D50229 +:1040B0005093D6026093D7027093D8020C94A81B39 +:1040C0000F931F930091D5021091D6022091D70231 +:1040D0003091D802DC01CB01802B912BA22BB32B8A +:1040E0008093D5029093D602A093D702B093D802C2 +:1040F0001F910F910C94A81B0F931F930091D50251 +:104100001091D6022091D7023091D802DC01CB0168 +:1041100080239123A223B3238093D5029093D602C8 +:10412000A093D702B093D8021F910F910C94A81BB3 +:104130000F931F930091D5021091D6022091D702C0 +:104140003091D802DC01CB0180279127A227B32729 +:104150008093D5029093D602A093D702B093D80251 +:104160001F910F910C94A81B0895CF92DF92EF92AC +:10417000FF920F931F93CF93DF938C01C090D902CE +:10418000D090DA02E090DB02F090DC028091D50260 +:104190009091D602A091D702B091D802C82AD92A0C +:1041A000EA2AFB2ACFE1D0E0D701C6010C2E04C0D9 +:1041B000B695A795979587950A94D2F780FF06C084 +:1041C000B8018C2F0E945008019721F4219760F7C5 +:1041D00080E001C08C2FDF91CF911F910F91FF9054 +:1041E000EF90DF90CF900895CF93DF93EC010E9482 +:1041F000B520BE010E945008DF91CF910895CB01F8 +:104200000E94F42008958091DD028595859585951D +:1042100008958091DD028770089598E0899F90014C +:104220001124262B2093DD020C94F91F2091DD022E +:10423000809582238093DD02982F977069F430E097 +:10424000482F552747FD50952417350729F08595A8 +:10425000859585950C941A2008959091DD029770AC +:1042600081E009F480E0089590911501992321F0EF +:1042700090911601911109C02091170130911801F8 +:10428000F90132969FEF40E01FC0982F96959695C2 +:1042900096959F3050F5E0911701F0911801E90FC4 +:1042A000F11D877021E030E0A90102C0440F551FC5 +:1042B0008A95E2F7CA019181892B818308959F3FF6 +:1042C00039F04F5F4E3041F051915813F8CF0DC087 +:1042D0005111F7CF942FF5CF9F3F39F0F901E90F36 +:1042E000F11D97FDFA958283089508959091150127 +:1042F000992321F090911601911109C02091170185 +:1043000030911801F9013296205F3F4F1FC0982F5E +:104310009695969596959F30F0F4E0911701F0915F +:104320001801E90FF11D877021E030E0A90102C0FA +:10433000440F551F8A95E2F7CA0180959181892320 +:10434000818308953196E217F30729F0908198133D +:10435000F9CF1082F7CF089581E090E0E091170146 +:10436000F0911801E80FF91F108201968031910534 +:10437000A9F708959091F102892B8093F102089595 +:1043800080959091F10289238093F1020895109213 +:10439000F10208959091F002892B8093F002089524 +:1043A00080959091F00289238093F00208951092F5 +:1043B000F00208959091EF02892B8093EF02089507 +:1043C00080959091EF0289238093EF0208951092D7 +:1043D000EF0208958093DE0208951092DE020895A0 +:1043E0008091170190911801FC0131969C01205F8A +:1043F0003F4F80E0919191118F5FE217F307D1F762 +:104400000895E0911701F09118018091F1028083E5 +:10441000E0911701F091180190818091F002892BB1 +:104420008083E0911701F091180190818091EF0253 +:10443000892B80838091DE02882361F0E09117014F +:10444000F09118019081892B80830E94F0218111C5 +:104450001092DE0280911701909118010C94E616DB +:1044600020E0009739F0AC01415051098423952395 +:104470002F5FF7CF822F089580911303843039F195 +:104480001092F30220E488E190E00FB6F894A8952A +:10449000809360000FBE2093600080E00E94BC0209 +:1044A00080E00E94EA0883B7817F846083BF83B77E +:1044B000816083BF7894889583B78E7F83BF88E1BE +:1044C0000FB6F89480936000109260000FBE0895BC +:1044D0000895089580E00E94BC020E9468220E9414 +:1044E00045090E9469220E94CA0991E0811101C018 +:1044F00090E0892F08950E94BC1B80E00E94BC02BE +:104500000E94E4270E94DA160C94EA081F920F9288 +:104510000FB60F9211248F939F93AF93BF93809107 +:10452000F302811113C08091F4029091F502A091E1 +:10453000F602B091F7024196A11DB11D8093F402DD +:104540009093F502A093F602B093F702BF91AF915A +:104550009F918F910F900FBE0F901F90189582E042 +:1045600084BD93E095BD9AEF97BD80936E0008954A +:104570002FB7F8948091F4029091F502A091F60281 +:10458000B091F7022FBF0895CF92DF92EF92FF9282 +:104590000F931F932FB7F8944091F4025091F502B6 +:1045A0006091F6027091F7022FBF6A017B01EE2441 +:1045B000FF248C0120E030E0C016D106E206F306AD +:1045C00010F4415051099A01281B390BC9011F9160 +:1045D0000F91FF90EF90DF90CF9008951F920F9270 +:1045E0000FB60F9211248F939F93AF93BF93809137 +:1045F000F4029091F502A091F602B091F7020196B3 +:10460000A11DB11D8093F4029093F502A093F602D0 +:10461000B093F702BF91AF919F918F910F900FBE12 +:104620000F901F9018950E94D713F8942FEF87EAE8 +:1046300091E6215080409040E1F700C0000087E003 +:1046400090EBDC0180931E0390931F03A093200343 +:10465000B09321039CE088E10FB6F894A89580936D +:1046600060000FBE90936000FFCF0E947423811101 +:1046700002C00E9450230E947F238093F2020E9476 +:10468000872380931C0387FB882780F9809316017A +:104690000E948323682F70E080E090E00C947C1FE0 +:1046A0006DEE7EEF80E090E00E949B2C60E082E067 +:1046B00090E00E94892C60E083E090E00E94892CC9 +:1046C00060E084E090E00E94892C60E085E090E06A +:1046D0000E94892C60E086E090E00E94892C6FEFB8 +:1046E00087E090E00C94892C80E090E00E94832C7D +:1046F00021E08D3E9E4F09F020E0822F089582E058 +:1047000090E00C947B2C83E090E00C947B2C84E074 +:1047100090E00C947B2C682F84E090E00C94892C22 +:1047200086E090E00C947B2C682F86E090E00C945F +:10473000892C87E090E00C947B2C682F87E090E038 +:104740000C94892C8091FA0280FF0BC060911C01AF +:1047500085E0689FB00111247595679575956795FB +:104760002BC081FF09C060911C0185E0689FB001EA +:1047700011247595679520C082FF07C060911C01C8 +:1047800085E0689FB001112417C09091FB02992326 +:10479000D1F060911B01961788F720911C0185E0EC +:1047A000289F90011124929FA001939F500D1124E6 +:1047B00070E0CA010E94612C6038710540F46115F7 +:1047C000710539F002C065E070E0862F08958FE72B +:1047D000089581E008958091FA0280FF08C06091F9 +:1047E0001A0170E0759567957595679521C081FFF1 +:1047F00006C060911A0170E07595679519C082FF37 +:1048000004C060911A0170E010C09091FB029923DE +:10481000C1F0609119019617A0F780911A01899F44 +:10482000C001112470E00E94612C6038710528F4E9 +:104830006115710521F0862F08958FE7089581E0B5 +:10484000089561E070E0F4CF803F21F40E94A2233C +:10485000819504C0813F29F40E94A2238093FE0227 +:104860000895823F21F40E94A223819504C0833FD2 +:1048700029F40E94A2238093FD020895893F19F430 +:104880000E94EB2305C08A3F31F40E94EB238195FF +:104890008093FF0208958B3F21F40E94EB238195C2 +:1048A00004C08C3F29F40E94EB23809300030895F9 +:1048B000843F21F48091FC02816017C0853F21F480 +:1048C0008091FC02826011C0863F21F48091FC023D +:1048D00084600BC0873F21F48091FC02886005C092 +:1048E000883F31F48091FC0280618093FC0208953E +:1048F0008D3F21F48091FA0281600BC08E3F21F43C +:104900008091FA02826005C08F3F29F48091FA02FB +:1049100084608093FA020895803F39F48091FE020A +:1049200087FF6CC01092FE0269C0813F29F480911C +:10493000FE021816BCF362C09091FD02823F29F47A +:1049400097FF5CC01092FD0259C0833F19F41916FD +:10495000CCF354C0893F41F48091FF0218160CF04B +:104960004DC01092FF024AC08A3F29F48091FF0295 +:1049700087FF44C0F6CF8B3F39F48091000387FF57 +:104980003DC0109200033AC08C3F29F4809100038F +:104990001816BCF333C0843F21F48091FC028E7F53 +:1049A00017C0853F21F48091FC028D7F11C0863FA6 +:1049B00021F48091FC028B7F0BC0873F21F4809112 +:1049C000FC02877F05C0883F31F48091FC028F7E16 +:1049D0008093FC0213C08D3F21F48091FA028E7FF8 +:1049E0000BC08E3F21F48091FA028D7F05C08F3F6E +:1049F00029F48091FA028B7F8093FA028091FD0264 +:104A000081110EC08091FE0281110AC08091FF02C7 +:104A1000811106C080910003811102C01092FB0237 +:104A200008958CEF92E00E94F1160E94B8229093B4 +:104A3000F9028093F80208951F93CF93DF9380913A +:104A4000F8029091F9020E94C422AC019091FB02FD +:104A5000992321F020911D0130E006C020911E0114 +:104A60008AE0289F900111244217530708F486C05A +:104A70008091FD02C091FE02D091FF0210910003CF +:104A8000811107C0C11176C0D11174C0111172C05B +:104A900075C09F3F19F09F5F9093FB02181624F496 +:104AA0000E94A2238093FD028091FD0287FF05C032 +:104AB0000E94A22381958093FD021C1624F40E947B +:104AC000A2238093FE028091FE0287FF05C00E9410 +:104AD000A22381958093FE026091FD02662339F145 +:104AE000C091FE02CC2319F1772767FD7095872FBF +:104AF000972F0E94832923E333E343E35FE30E947C +:104B0000932A0E9450296093FD026C2F772767FD3E +:104B10007095872F972F0E94832923E333E343E384 +:104B20005FE30E94932A0E9450296093FE021D16A3 +:104B300024F40E94EB238093FF028091FF0287FF01 +:104B400005C00E94EB2381958093FF02111624F487 +:104B50000E94EB23809300038091000387FF05C030 +:104B60000E94EB23819580930003DF91CF911F91E9 +:104B70000C9411259F3F09F08ECF96CFDF91CF91F6 +:104B80001F910895ECEFF2E085E0DF011D928A9518 +:104B9000E9F71092FB021092FA020895833081F136 +:104BA00028F4813059F08230D1F00895853009F42D +:104BB00049C0B8F1863009F456C0089580911E01AD +:104BC000262F30E0280F311D2F3F310524F4680FC8 +:104BD00060931E0108958FEF80931E0108958091C8 +:104BE0001D01262F30E0280F311D2F3F310524F401 +:104BF000680F60931D0108958FEF80931D01089544 +:104C000080911C01262F30E0280F311D2F3F3105E8 +:104C100024F4680F60931C0108958FEF80931C01AA +:104C2000089580911B01262F30E0280F311D2F3F62 +:104C3000310524F4680F60931B0108958FEF809372 +:104C40001B01089580911A01262F30E0280F311D95 +:104C50002F3F310524F4680F60931A0108958FEFF8 +:104C600080931A01089580911901262F30E0280FB2 +:104C7000311D2F3F310524F4680F60931901089509 +:104C80008FEF809319010895833011F128F481305A +:104C900049F0823091F00895853081F120F186301D +:104CA000C1F1089580911E01681720F4861B80933E +:104CB0001E01089510921E01089580911D0168172C +:104CC00020F4861B80931D01089510921D01089504 +:104CD00080911C01681720F4861B80931C010895A5 +:104CE00010921C01089580911B01681720F4861B07 +:104CF00080931B01089510921B01089580911A0161 +:104D0000681720F4861B80931A01089510921A01E7 +:104D1000089580911901681720F4861B809319016A +:104D200008951092190108950F931F93873208F088 +:104D300048C08E3108F08DC0803109F477C008F585 +:104D4000873009F461C068F4863009F09DC0809115 +:104D5000F202817F8E7F8093F20281E080930203D2 +:104D600094C08B3009F489C08E3009F08DC08091D9 +:104D7000F20282FB222720F991E0922790FB82F930 +:104D80005EC0863109F479C060F4813109F07CC0DD +:104D90000E94BC1B9091160181E089278093160127 +:104DA0006CC0893109F469C08B3109F06DC0809104 +:104DB000F20281FB222720F991E0922790FB81F9F2 +:104DC0003EC0883309F459C050F4893209F457C001 +:104DD000853309F454C0873209F451C055C0833477 +:104DE00009F44DC028F48A3308F44EC0895332C008 +:104DF000883409F049C00E94BC1B0E94FA090E9435 +:104E0000C1030E94132339C09091F202892F80952B +:104E1000817080FB90F929F0966098609093F2027F +:104E200034C0997F977F9093F20227C08091F2025D +:104E300083FB222720F991E0922790FB83F980934E +:104E4000F2029923D1F08091F20281608093F20204 +:104E500014C08D5141E050E060E070E08A019B0198 +:104E600004C0000F111F221F331F8A95D2F7C901FA +:104E7000B8010E947C1F0E94BC1B81E006C061E05B +:104E800070E080E090E0F5CF80E01F910F910895F1 +:104E900080E0089580E00895CF93C82F80910203A9 +:104EA000813069F018F08230C9F184C0E0911701B7 +:104EB000F09118018081823209F07EC007C0E09134 +:104EC0001701F09118018081823261F48C2F0E94C9 +:104ED0004827811104C08C2F0E9494261DC081E0B8 +:104EE00090E01AC08C2F0E944A27811114C0C4314F +:104EF00079F048F4CB3079F0C03109F061C082E03C +:104F00008093020308C0C93219F0C83321F058C099 +:104F10001092020355C081E0817054C0C93291F1F2 +:104F200020F5C43179F1B0F4C73009F047C08EE103 +:104F300080931E0182E380931D018AE080931C010F +:104F400084E180931B0188E080931A0188E28093BA +:104F5000190134C0CE51C63088F5EC2FF0E0EA5488 +:104F6000FE4F80818093010329C0CE34E9F020F404 +:104F7000CB3421F56AE013C0C13579F0C235F1F4C4 +:104F800061E00DC080910103882319F010920103A4 +:104F900015C081E08093020315C061E006C08091D6 +:104FA00001030E94CE250AC06AE0809101030E949D +:104FB000442604C01092020380E004C081E002C0D5 +:104FC00080E0AACFCF9108950E947423811102C07E +:104FD0000E9450230E94902380931D0380FF02C0F3 +:104FE000869501C080E00C94BC0280911D03982F2F +:104FF0009695292F30E0233031054CF49F5F990FAF +:105000008170892B816080931D030E94942380917D +:105010001D0386950C94BC0280911D03982F9695D4 +:1050200091F09158990F8170892B80931D038E7F89 +:1050300091E009F490E080911D0390FB80F980934A +:105040001D030E94942380911D0386950C94BC023D +:1050500080911D03982F909590FB80F980931D03FC +:105060000E94942380911D0380FF02C0869501C099 +:1050700080E00C94BC0290911D03892F86958F5F70 +:105080008F779170843028F4880F892B80931D03CB +:1050900002C090931D0380911D038E7F91E009F45F +:1050A00090E080911D0390FB80F980931D030E9486 +:1050B000942380911D0386950C94BC0220911D03BE +:1050C000922F96958927982F990F822F8170892B7F +:1050D00080931D038E7F91E009F490E080911D0381 +:1050E00090FB80F980931D030E94942380911D03FF +:1050F00086950C94BC0280911D03869508955058A6 +:10510000BB27AA270ED0D1C1C2D130F0C7D120F021 +:1051100031F49F3F11F41EF4B7C10EF4E095E7FBA4 +:105120009FC1E92FD3D180F3BA17620773078407B1 +:10513000950718F071F49EF5EBC10EF4E0950B2E77 +:10514000BA2FA02D0B01B90190010C01CA01A001D9 +:105150001124FF27591B99F0593F50F4503E68F134 +:105160001A16F040A22F232F342F4427585FF3CF75 +:10517000469537952795A795F0405395C9F77EF446 +:105180001F16BA0B620B730B840BBAF09150A1F08F +:10519000FF0FBB1F661F771F881FC2F70EC0BA0F15 +:1051A000621F731F841F48F4879577956795B7959D +:1051B000F7959E3F08F0B3CF9395880F08F0992795 +:1051C000EE0F97958795089527D108F481E008950B +:1051D0000CD06BC163D140F05AD130F021F45F3F65 +:1051E00019F03EC1511195C14FC170D198F3992367 +:1051F000C9F35523B1F3951B550BBB27AA2762179B +:105200007307840738F09F5F5F4F220F331F441FDF +:10521000AA1FA9F333D00E2E3AF0E0E830D0915017 +:105220005040E695001CCAF729D0FE2F27D0660F04 +:10523000771F881FBB1F261737074807AB07B0E843 +:1052400009F0BB0B802DBF01FF2793585F4F2AF059 +:105250009E3F510568F004C15CC15F3FECF3983E8E +:10526000DCF3869577956795B795F7959F5FC9F7B6 +:10527000880F911D9695879597F90895E1E0660F3F +:10528000771F881FBB1F621773078407BA0720F0B8 +:10529000621B730B840BBA0BEE1F88F7E095089521 +:1052A00004D06894B11135C1089518D188F09F5782 +:1052B00090F0B92F9927B751A0F0D1F0660F771F62 +:1052C000881F991F1AF0BA95C9F712C0B13081F042 +:1052D0001FD1B1E008951CC1672F782F8827B85FD0 +:1052E00039F0B93FCCF3869577956795B395D9F7A3 +:1052F0003EF490958095709561957F4F8F4F9F4FAD +:105300000895E89409C097FB3EF4909580957095B8 +:1053100061957F4F8F4F9F4F9923A9F0F92F96E901 +:10532000BB279395F695879577956795B795F11176 +:10533000F8CFFAF4BB0F11F460FF1BC06F5F7F4F13 +:105340008F4F9F4F16C0882311F096E911C0772325 +:1053500021F09EE8872F762F05C0662371F096E82E +:10536000862F70E060E02AF09A95660F771F881FFD +:10537000DAF7880F9695879597F9089588D018F0F1 +:1053800011F08CD038F480C0C4C0E92F9FD0B0F3A6 +:105390005523C9F3E7FB6217730784079507A8F144 +:1053A00099F3E92FFF2788232AF03197660F771F9B +:1053B000881FDAF7952F5527442332F0915050403B +:1053C000220F331F441FD2F7BB27E91BF50B621BCB +:1053D000730B840BB109C1F222F4620F731F841F97 +:1053E000B11D31972AF0660F771F881FBB1FEFCFC3 +:1053F000915050405AF041F0882332F0660F771FE9 +:10540000881F91505040C1F7939530C0869577958D +:1054100067959F5FD9F7F8CF990F0008550FAA0B32 +:10542000E0E8FEEF16161706E807F907C0F01216B7 +:105430001306E407F50798F0621B730B840B950BBA +:1054400039F40A2661F0232B242B252B21F408950F +:105450000A2609F4A140A6958FEF811D811D0895AC +:1054600097F99F6780E870E060E008959F3F31F012 +:10547000915020F4879577956795B795880F911D82 +:105480009695879597F908959FEF80EC08950024ED +:105490000A941616170618060906089500240A9499 +:1054A00012161306140605060895092E0394000C1F +:1054B00011F4882352F0BB0F40F4BF2B11F460FFAE +:1054C00004C06F5F7F4F8F4F9F4F089557FD9058D7 +:1054D000440F551F59F05F3F71F04795880F97FBB8 +:1054E000991F61F09F3F79F0879508951216130672 +:1054F0001406551FF2CF4695F1DF08C016161706A1 +:105500001806991FF1CF86957105610508940895D5 +:10551000E894BB2766277727CB0197F908957CDFAE +:1055200008F48FEF08950BD0C0CFB1DF28F0B6DFBD +:1055300018F0952309F094CFA7CF1124EACFC6DF46 +:10554000A0F3959FD1F3950F50E0551F629FF00196 +:10555000729FBB27F00DB11D639FAA27F00DB11DEF +:10556000AA1F649F6627B00DA11D661F829F222778 +:10557000B00DA11D621F739FB00DA11D621F839FFF +:10558000A00D611D221F749F3327A00D611D231FD5 +:10559000849F600D211D822F762F6A2F11249F5723 +:1055A00050408AF0E1F088234AF0EE0FFF1FBB1F46 +:1055B000661F771F881F91505040A9F79E3F5105E5 +:1055C00070F04ECFA6CF5F3FECF3983EDCF38695AC +:1055D00077956795B795F795E7959F5FC1F7FE2B90 +:1055E000880F911D9695879597F90895FA01EE0F0A +:1055F000FF1F30962105310599F16115710561F4A0 +:105600008038BFE39B0749F168949038810561F0C9 +:105610008038BFEF9B0741F0992342F5FF3FE1053A +:105620003105210511F1E8940894E795D901AA23E1 +:1056300029F4AB2FBE2FF85FD0F310C0FF5F70F4DA +:10564000A695E0F7F73950F019F0FF3A38F49F7754 +:105650009F930CD00F9007FC905808953EF014CF04 +:1056600060E070E080E89FE308954FE79F775F93E5 +:105670004F933F932F939ED02F913F914F915F91E6 +:1056800052DF05C019F40EF0EBCE42CFFDCE26DF7F +:10569000C8F39638C0F707F80F92E8942BE33AEA7C +:1056A00048EB5FE74EDF0F920F920F924DB75EB758 +:1056B0000F92C0D0EAE0F1E016D04F915F91EF91E8 +:1056C000FF91E595EE1FFF1F49F0FE57E068442764 +:1056D000EE0F441FFA95E1F74195550B32D00F902C +:1056E00007FE26C00895DF93CF931F930F93FF9279 +:1056F000EF92DF927B018C01689405C0DA2EEF01F6 +:105700001EDFFE01E894A5912591359145915591B3 +:10571000AEF3EF0106DDFE019701A801DA9479F7F7 +:10572000DF90EF90FF900F911F91CF91DF9108953F +:105730009B01AC0160E070E080E89FE349CD90CE32 +:1057400095CECCDEE8F39923D9F3940F511DBBF32A +:105750009150504094F059F0882332F0660F771F33 +:10576000881F91505040C1F79E3F510544F7880F64 +:10577000911D9695879597F908955F3FACF0983EF7 +:105780009CF0BB27869577956795B79508F4B1602F +:105790009395C1F7BB0F58F711F460FFE8CF6F5F27 +:1057A0007F4F8F4F9F4FE3CFB4CE0EF05FCE6CCEC6 +:1057B000689456CE93DEC8F39923D1F3C6F3DF93F2 +:1057C000CF931F930F93FF92C92FDD2788232AF0D1 +:1057D0002197660F771F881FDAF720E030E040E856 +:1057E0005FEB9FE3883920F0803E30F021968F7781 +:1057F00087DCE2E3F1E003C083DCEFE5F1E073DF97 +:105800008B01BE01EC01FB2E6F5771097595771F57 +:10581000880B990B78DD28E132E741E35FE38FDE07 +:10582000AF2D9801AE01FF900F911F91CF91DF91A5 +:1058300078DC3BCEFA01DC01AA0FBB1F9B01AC0157 +:10584000BF5728F422273327442750781FC0B75169 +:1058500088F4AB2F0024469537952795011CA39516 +:10586000D2F3002069F0220F331F441FB395DAF3FF +:105870000DD045CC61307105A0E88A07B94630F4F7 +:105880009B01AC016627772788279078309621F016 +:1058900020833183428353830895AA1BBB1B51E1AC +:1058A00007C0AA1FBB1FA617B70710F0A61BB70B90 +:1058B000881F991F5A95A9F780959095BC01CD0135 +:1058C000089597FB072E16F4009407D077FD09D0B2 +:1058D0000E944D2C07FC05D03EF4909581959F4F7A +:1058E0000895709561957F4F0895EE0FFF1F059005 +:1058F000F491E02D0994F999FECF92BD81BDF89AFB +:10590000992780B50895A8E1B0E042E050E00C94FA +:10591000A32C262FF999FECF92BD81BDF89A01974D +:1059200000B4021639F01FBA20BD0FB6F894FA9AE7 +:10593000F99A0FBE08950196272F0E948A2C0C9485 +:10594000892CDC01CB01FC01F999FECF06C0F2BD28 +:10595000E1BDF89A319600B40D9241505040B8F72D +:065960000895F894FFCF4A +:10596600640007000CFF0000003F64DE0F6C104966 +:10597600101510E10F0101DF022808140A321E007B +:1059860002040507090B0C0E1011131517181A1C23 +:105996001D1F2123242628292B2D2F30323435375D +:1059A600393B1F0F03764F5F6F7F4969437909596A +:1059B60053633149803F5D8B803FF8BF803FCAE12A +:1059C600803F73ED803FCAE1803FF8BF803F5D8B2B +:1059D600803F3149803F0000803FF16D7F3F75EA8F +:1059E6007E3F4C827E3F833F7E3F84287E3F833FBF +:1059F6007E3F4C827E3F75EA7E3FF16D7F3F000021 +:105A0600803F3F4D3639830436040004C7035A03EA +:105A160073038C03A50301020304050607080900A6 +:00000001FF diff --git a/keyboards/planck/keymaps/alexey/keymap.c b/keyboards/planck/keymaps/alexey/keymap.c new file mode 100644 index 000000000..f3cdf3d6e --- /dev/null +++ b/keyboards/planck/keymaps/alexey/keymap.c @@ -0,0 +1,51 @@ +#include "keymap.h" +#include "planck.h" +#include "backlight.h" + +#define _QW 0 +#define _LW 1 +#define _RS 2 + +// This layout tries to imitate the Atreus keyboard + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_QW] = { /* Qwerty */ + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, MO(_LW)}, + {KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_TRNS}, + {M(0), KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_SPC, KC_SPC, MO(_RS), KC_MINS, KC_QUOT, KC_ENT, KC_TRNS} +}, +[_RS] = { /* RAISE */ + {KC_TRNS, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_PGUP, KC_7, KC_8, KC_9, KC_ASTR, KC_TRNS}, + {KC_TRNS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, KC_PGDN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS}, + {KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_EQL, KC_TRNS} +}, +[_LW] = { /* LOWER */ + {KC_TRNS, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, + {KC_TRNS, KC_DELETE, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_F4, KC_F5, KC_F6, KC_F11, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F12, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_TRNS} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + backlight_step(); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + diff --git a/keyboards/planck/keymaps/angerthosenear/Makefile b/keyboards/planck/keymaps/angerthosenear/Makefile new file mode 100644 index 000000000..581e08cd0 --- /dev/null +++ b/keyboards/planck/keymaps/angerthosenear/Makefile @@ -0,0 +1,25 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/angerthosenear/compiled.hex b/keyboards/planck/keymaps/angerthosenear/compiled.hex new file mode 100644 index 000000000..b584d6a93 --- /dev/null +++ b/keyboards/planck/keymaps/angerthosenear/compiled.hex @@ -0,0 +1,1449 @@ +:100000000C9496020C94DA020C94DA020C94DA0244 +:100010000C94DA020C94DA020C94DA020C94DA02F0 +:100020000C94DA020C94DA020C9478140C944A15AD +:100030000C94AC220C94DA020C94DA020C94DA02DE +:100040000C94DA020C943C030C94DA020C94DA025D +:100050000C94DA020C9414230C94DA020C94DA0255 +:100060000C94DA020C94DA020C94DA020C94DA02A0 +:100070000C94DA020C94DA020C94DA020C94DA0290 +:100080000C94ED0A0C94DA020C94DA020C94DA0265 +:100090000C94DA020C94DA020C94DA020C94DA0270 +:1000A0000C94DA020C94DA020C94DA02B715D91522 +:1000B000C716D915C7161E164116C7169616A916C5 +:1000C00093199319C219C219011A211A771B771BA8 +:1000D0002C1A771BDC1ADC1A431B4C1B771B711B79 +:1000E000E91AE91AE91AE91AE91AE91AE91AE91AF8 +:1000F000E91AE91AE91AE91AE91AE91AE91AE91AE8 +:10010000F91A071B0E1B151B1F1B07634236B79BF3 +:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 +:100120005763BD6DEDFD753EF6177231BF000000DF +:10013000803F08000000BE922449123EABAAAA2AC2 +:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD +:1001500000000000BF000000803F00000000000819 +:100160004178D3BB4387D1133D190E3CC3BD4282B6 +:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 +:10018000FFBE01C4FF7F3F00000000000000000030 +:1001900000000000000000010204060A0F17202CD6 +:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 +:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF +:1001C0000201000000000000000000000000F1A299 +:1001D000F1A3018C028C290014001A0008001500FC +:1001E00017001C0018000C00120013002A002B003E +:1001F00004001600070009000A000B000D000E00A5 +:100200000F0033002800E1001D001B00060019004C +:100210000500110010003600370038003400E000FF +:10022000E300E200835002202C002C00012050004B +:10023000510052004F0001000100010001000100C7 +:1002400001005F00600061005400560001000100E1 +:10025000010001000100010001005C005D005E0082 +:1002600055005700010001000100010001000100DC +:10027000010059005A005B006300580001000100B2 +:1002800001000100010002202C0062000120010099 +:1002900001000100010035001E001F0020002100A8 +:1002A0002200230024002500260027000100010071 +:1002B0000320042048120100010001002D002E003F +:1002C0002F00300031000100440045006800690043 +:1002D0006A006B006C006D006E006F000100010091 +:1002E00001000100010001000100AC000120AB0091 +:1002F000AA00A900AE0035021E021F022002210240 +:100300002202230224022502260227024C000100B9 +:100310000320042048120100010001002D022E02DA +:100320002F023002310201003A003B003C003D0048 +:100330003E003F0040004100420043000100010038 +:1003400001000100010002200100010001004A003B +:100350004E004B004D00280354006800650020004B +:1003600050006C0061006E0063006B0020004B00C9 +:100370006500790062006F00610072006400000097 +:100380002C034F007200740068006F006C0069005D +:100390006E0065006100720020004B00650079006E +:1003A00062006F00610072006400730000000403CB +:1003B000090409026D00040100A0FA09040000010B +:1003C00003010100092111010001223F00070581FD +:1003D0000308000A090401000103010200092111B8 +:1003E000010001224D000705820308000A090402EA +:1003F000000103000000092111010001223600075D +:1004000005830308000A0904030001030000000932 +:100410002111010001223900070584031000011297 +:1004200001100100000008EDFE6060010001020003 +:100430000105010906A101050719E029E7150025B5 +:1004400001950875018102050819012905950575B1 +:10045000019102950175039101050719002977158E +:10046000002501957875018102C005010980A1016F +:10047000850216010026B7001A01002AB700751080 +:1004800095018100C0050C0901A101850316010039 +:10049000269C021A01002A9C02751095018100C059 +:1004A00005010902A1010901A10005091901290598 +:1004B00015002501950575018102950175038101DE +:1004C0000501093009311581257F950275088106DE +:1004D00009381581257F950175088106050C0A38B4 +:1004E000021581257F950175088106C0C0050109A7 +:1004F00006A101050719E029E715002501950875F2 +:1005000001810295017508810105081901290595E8 +:1005100005750191029501750391010507190029DF +:10052000FF150025FF950675088100C011241FBE28 +:10053000CFEFDAE0DEBFCDBF04B603FE24C080916A +:100540001E0390911F03A0912003B09121038730D7 +:10055000904BA740B04BB9F410921E0310921F03AA +:10056000109220031092210314BE84B7877F84BFAA +:1005700088E10FB6F89480936000109260000FBE7F +:10058000E0E0F8E3099511E0A0E0B1E0E2EBF9E585 +:1005900002C005900D92A03CB107D9F713E0A0EC82 +:1005A000B1E001C01D92AE31B107E1F70E94BE116A +:1005B0000C94D72C0C9400000895089581E00895C0 +:1005C00008950C94DD020C94DE020C94E0020E946B +:1005D000A12823E030E0281B3109220F2093C40119 +:1005E0000895282F2F9880918000211108C0877FBF +:1005F0008093800010928D0010928C001BC0886048 +:1006000080938000233019F48FEF9FEF0FC083E0B9 +:1006100090E0821B9109880F991F2FEF3FEFA901EE +:1006200002C0569547958A95E2F7CA0190938D00CE +:1006300080938C000C94E7020E94E70284E0809390 +:10064000C3011092C0010895279A2F988FEF9FEF52 +:1006500090938700809386008AE08093800089E1F0 +:10066000809381000E940A280C941C030E9424039A +:100670006E9A769A0C94DC021F920F920FB60F922C +:1006800011242F933F938F939F93EF93FF93E091C8 +:10069000C101F091C201CF0101969093C2018093F4 +:1006A000C1010090C30102C0F695E7950A94E2F7F4 +:1006B000EF738091C001823019F4E03251F404C02C +:1006C000813039F4EF3329F480916F008D7F80936E +:1006D0006F00F0E0E457FE4FE49121E031E0E29F4B +:1006E000C001E39F900D11240090C40102C09695B3 +:1006F00087950A94E2F790938D0080938C00FF9188 +:10070000EF919F918F913F912F910F900FBE0F907E +:100710001F90189581E008950C948A0308950C9415 +:10072000360380911502882309F448C08091D101D5 +:100730009091D201009779F40E94DE229093D20129 +:100740008093D1018091D30190E0009771F4809162 +:10075000D40190E00AC00E94EA2220910001309169 +:1007600001012817390740F329C00197880F991F05 +:10077000880F991FFC01EB52FE4F608171818281CD +:1007800093810E94530AE091D30184E0E89FF00135 +:100790001124EB52FE4F60817181828193814FE081 +:1007A00050E00E940B0E8091D30190E00196609181 +:1007B000D40170E00E94872C8093D3010C94E10255 +:1007C000109217020C94200A0895089581E08093F6 +:1007D00017020C94E503089508958F929F92AF92AB +:1007E000BF92EF92FF920F931F93CF93DF93CDB7FA +:1007F000DEB7A3970FB6F894DEBF0FBECDBF7C0166 +:10080000FC0100811181C8010E94DB20B8010E9417 +:10081000F2058C01B7010E948C03882309F4CCC136 +:100820000032F0E51F0741F4F7018281882309F4C3 +:1008300058C00E946F0EC0C10132F0E51F0741F49D +:10084000F7018281882309F44CC00E94780EB4C15C +:100850000232F0E51F0751F4F7018281882309F481 +:1008600040C00E946B0E8111F0CFE3CF0332F0E560 +:100870001F0739F4F7018281882399F10E94E6036A +:100880009BC10432F0E51F0739F4F7018281882308 +:1008900041F10E94E00390C10532F0E51F0749F4E1 +:1008A000F70182818823E9F0809117028111F1CF4D +:1008B000E5CF0632F0E51F0739F4F701828188237E +:1008C00081F00E947F0E0AC00732F0E51F0749F44D +:1008D000F7018281882329F00E948A0E0E94EC038E +:1008E0006BC180911702811105C0F70182818111CE +:1008F000CFC018C1003E110579F4F7018281882329 +:1009000009F44DC00E94200A81E0809316021092E3 +:1009100015021092D40150C1023E110559F4F7019D +:1009200082818823E1F10E94200A1092160210921F +:10093000150242C1033E110591F4F701828188231B +:1009400071F10E94200A1092160281E08093150234 +:100950001092D3011092D2011092D1012DC1023513 +:10096000110559F4F7018281882309F425C180918A +:100970000001909101010A970DC00135110579F42C +:10098000F7018281882309F417C1809100019091B9 +:1009900001010A9690930101809300010DC14091DD +:1009A000040183E2EFE1F1E0DE01119601900D9286 +:1009B0008A95E1F7F701808121E030E02C0F3D1F9F +:1009C000280F311DC9012091020130910301FC0162 +:1009D000E20FF31F6081772767FD7095640F711D2B +:1009E000882777FD8095982F0E94A92920E030E084 +:1009F00040E451E40E940E294B015C01F701218182 +:100A000084E090E0821B9109BC01882777FD8095E6 +:100A1000982F0E94A9299B01AC01C501B4010E9435 +:100A2000A6289B01AC0160E070E080E090E40E94A9 +:100A30001C2B20E030E04CED50E40E94B92A4B0121 +:100A40005C01F70182818823D1F04FE050E0C501BD +:100A5000B4010E940B0E809116028823A1F08091B0 +:100A6000D40124E0829FF0011124EB52FE4F8082DA +:100A70009182A282B3828F5F8093D40104C0C501AA +:100A8000B4010E94530A0F3F110508F02ECF94C005 +:100A90008091D00181111FC0043130E5130709F0A6 +:100AA00051C00E948E0381E08093D0010E94DE221B +:100AB0009093CF018093CE011092C7011092C9018B +:100AC0001092C8011092CB011092CA011092CD0170 +:100AD0001092CC0171C08091CE019091CF010E9403 +:100AE000EA22883C910570F48091C701E82FF0E07C +:100AF000EE0FFF1FE853FE4F118300838F5F80933B +:100B0000C7015AC0043880E5180721F005381045A0 +:100B100001F13AC0F7018281882341F01092C501AA +:100B200082E01EC0043830E5130759F58091C501F5 +:100B3000811106C086E20E94371886E20E94FF18E3 +:100B400082E01CC00438F0E51F0741F3053810456A +:100B5000D9F4F7018281882331F01092C60180E236 +:100B60000E944E1929C08091C601811106C087E2FA +:100B70000E94371887E20E94FF1880E20E945519F0 +:100B80001BC00538104529F381E08093C50180938F +:100B9000C601C701A3960FB6F894DEBF0FBECDBF46 +:100BA000DF91CF911F910F91FF90EF90BF90AF9089 +:100BB0009F908F900C94E30280E0A3960FB6F89478 +:100BC000DEBF0FBECDBFDF91CF911F910F91FF9080 +:100BD000EF90BF90AF909F908F90089580E090E04D +:100BE000089508959CE0799FF001112490E3899F76 +:100BF000E00DF11D1124E60FF11DEE0FFF1FEA526B +:100C0000FE4F859194910895880F991FFC01E45B34 +:100C1000FF4F859194910895880F991FFC01E4532B +:100C2000FE4F8591949108950F931F93CF93DF9377 +:100C3000EC01811521E39207A0F5C11580E3D807E7 +:100C400008F0D7C0C83ED105D8F4C03ED10508F0A1 +:100C500007C2C83AD10578F4C53AD10508F06AC090 +:100C6000C130D10509F463C008F4F7C1C430D1051F +:100C700008F0F6C1F2C1CB3BD10508F466C0EDC166 +:100C8000C11590E2D90708F0AFC0C11521E0D20725 +:100C900008F0E6C1C03FD10508F4DFC18E01106540 +:100CA0001FC2C03880E5D80700F5C03790E5D907E6 +:100CB00008F0A3C0C11520E5D20709F4ACC050F478 +:100CC000CE01905480319F4008F0C7C1DF708E0183 +:100CD000106A06C2C13080E5D80709F4AEC0C4313D +:100CE00090E5D90708F4AFC0B8C1C33820E5D207F2 +:100CF00009F48EC050F4C13890E5D90709F482C0D8 +:100D000008F083C000E011EDEBC1C03181E5D807E8 +:100D100008F4A3C1C11597E5D90708F436C1CE017F +:100D200090578115904108F098C1DF7093C101E0A0 +:100D300010E0D6C1C53AD10509F494C1C63AD1052F +:100D400009F093C102E810E4CBC1C83AD10509F417 +:100D50008FC1C93AD10509F48EC1CA3AD10509F447 +:100D60008DC1CB3AD10509F48CC1CC3AD10509F437 +:100D70008BC1CD3AD10509F48AC1C03BD10509F434 +:100D800089C1CE3AD10509F488C1CF3AD10509F419 +:100D900087C1C13BD10509F486C1C23BD10509F425 +:100DA00085C1C33BD10509F484C1C43BD10509F415 +:100DB00083C1C53BD10509F482C1C63BD10509F405 +:100DC00081C1C73BD10509F480C1C83BD10509F4F5 +:100DD0007FC1C93BD10509F47EC1CA3BD10509F4E5 +:100DE0007DC100E014E47CC1CE019F700E940C061E +:100DF00078C1DD278E01106C73C1CF70DD278E01A5 +:100E0000146D6EC100E010ED6BC100E012ED68C121 +:100E100000E013ED65C10E94E21B0E94200A0E94BF +:100E2000E4038FEF94E32CE0815090402040E1F701 +:100E300000C000000E94392353C18091F2028160FA +:100E40008093F2024DC10E949A23811102C00E9438 +:100E500076230E94AD2390E090931D0380931C03A2 +:100E6000C23080E5D80721F480911C03816086C0E0 +:100E7000C43090E5D90721F480911C0382607EC0C4 +:100E8000C63020E5D20721F480911C03846076C02F +:100E9000C83080E5D80719F480911C0327C0CA30F8 +:100EA00090E5D90721F480911C03806167C0CC30A4 +:100EB00020E5D20721F480911C0380625FC0CE3010 +:100EC00080E5D80721F480911C03806457C0C031AD +:100ED00090E5D90721F480911C0380684FC0C2318E +:100EE00020E5D20729F480911C038460886046C005 +:100EF000C33080E5D80721F480911C038E7F3EC06B +:100F0000C53090E5D90721F480911C038D7F36C050 +:100F1000C73020E5D20721F480911C038B7F2EC0BF +:100F2000C93080E5D80719F480911C0326C0CB3066 +:100F300090E5D90721F480911C038F7E1FC0CD302E +:100F400020E5D20721F480911C038F7D17C0CF309C +:100F500080E5D80721F480911C038F7B0FC0C1313D +:100F600090E5D90721F480911C038F7707C0C33126 +:100F7000D04531F480911C038B7F877F80931C03C5 +:100F800080911C030E94B123ABC08D2F99278F70D5 +:100F9000992781309105D9F49E012370332702C02F +:100FA000880F991F2A95E2F79C688E0144E0000F94 +:100FB000111F4A95E1F700271370802B912B53E006 +:100FC000CC0FDD1F5A95E1F7C076DD272FC08230A8 +:100FD000910531F4DC2FCC278E01016F106A80C09F +:100FE0008330910569F4CE018370992701E010E008 +:100FF00002C0000F111F8A95E2F7C8019C680FC05C +:1010000084309105B9F4CE018370992701E010E096 +:1010100002C0000F111F8A95E2F7C8019A6823E009 +:10102000CC0FDD1F2A95E1F7C07ED7708C010C2B09 +:101030001D2B56C08530910531F4DC2FCC278E0155 +:10104000046F106A4DC0069709F04AC0CF71DD27C2 +:10105000DC2FCC278E01106243C000E010E040C0BE +:101060008E013EC001E810E43BC003E810E438C044 +:1010700002EE14E435C009EE14E432C00AEE14E4C2 +:101080002FC005EB14E42CC006EB14E429C007EBD9 +:1010900014E426C00CEC14E423C00DEC14E420C0CE +:1010A00003E815E41DC00AE815E41AC002E915E4D6 +:1010B00017C004E915E414C001E216E411C003E20C +:1010C00016E40EC004E216E40BC005E216E408C004 +:1010D00006E216E405C007E216E402C00AE216E4DE +:1010E000C801DF91CF911F910F9108959CE0799FE6 +:1010F000F001112490E3899FE00DF11D1124E60F0A +:10110000F11DEE0FFF1FEA52FE4F85919491803E34 +:101110009105E0F4803C910558F58133910509F47F +:101120006FC048F48932910509F463C08A32910591 +:1011300009F46DC072C089339105E9F082389105D8 +:10114000D1F08533910509F44DC067C0833E910508 +:1011500081F138F4803E9105B9F0823E9105D9F0D5 +:101160005CC0863E910561F1873E9105A1F155C0B5 +:101170000E940406089520911C0320FD02C021FF57 +:101180004CC080EE90E049C080911C0380FFF9CFF5 +:1011900089E390E042C080911C0382FF0EC08091E1 +:1011A0001C0384FF03C080E090E037C083EE90E032 +:1011B00034C080911C0382FFF2CF82EE90E02DC0FC +:1011C00080911C0383FF0BC080911C0384FDEBCF37 +:1011D00087EE90E022C080911C0383FFF5CF86EE5E +:1011E00090E01BC080911C0385FF07C089E290E05E +:1011F00014C080911C0385FFF9CF85E390E00DC0FA +:1012000080911C0386FF07C08AE290E006C08091AF +:101210001C0386FFF9CF81E390E00E941406089535 +:101220000C94E502E82FF0E0E25BFE4F8081E82FAE +:10123000EF70F0E082958F7021E030E0A90102C0EC +:10124000440F551F8A95E2F740A308950F931F930B +:10125000CF93DF9385B7806885BF85B7806885BFEA +:10126000C3E0D0E001E010E0FE01E25BFE4F8081D0 +:10127000E82FEF70F0E021A182958F70A80102C0E5 +:10128000440F551F8A95E2F7CA01822B81A38C2F48 +:101290000E941209219740F78BE090E061E070E036 +:1012A000FC01EE5BFE4F2081E22FEF70F0E042A1E7 +:1012B00022952F70DB0102C0AA0FBB1F2A95E2F70F +:1012C0009D01242B22A3019758F7DF91CF911F9105 +:1012D0000F910C948F03EF92FF920F931F93CF9374 +:1012E000DF9300E212E0C3E0EE24E394F12CD5E0BA +:1012F0008C2F0E9412098BE090E040E050E0FC014E +:10130000EE5BFE4F6081E62FEF70F0E020A130E051 +:1013100062956F7002C0359527956A95E2F720FDBA +:1013200009C09701082E02C0220F331F0A94E2F76A +:10133000422B532B019718F7F801929182918F015C +:101340008417950721F051834083D09305018C2F9A +:101350000E941209C15060F68091050187FD2CC0E2 +:101360008150809305018F3F39F08FE99FE001970D +:10137000F1F700C0000020C080911E0290911F0272 +:10138000909327028093260280911C0290911D0267 +:10139000909325028093240280911A0290911B025F +:1013A0009093230280932202809118029091190257 +:1013B00090932102809320020E94910381E0DF91AB +:1013C000CF911F910F91FF90EF900895E82FF0E0DB +:1013D000EE0FFF1FE05EFD4F80819181089508951B +:1013E0000F931F93CF9308E212E0C0E0F8019291AF +:1013F00082918F010E945622C80FF2E000321F072F +:10140000A9F78C2FCF911F910F9108950E949A23D5 +:10141000811102C00E9476230E94BF23809307039C +:101420003E9A809171008D7F8093710082E080935D +:1014300090008AE18093910081E080932A020895D0 +:1014400080912A02811102C00E94060A10927A023B +:1014500010927902809171008D7F8093710080914C +:1014600090008F738093900010923C0210923B0288 +:10147000109273021092740210927502109276020A +:101480001092720210927102E1E5F2E0A1E4B2E082 +:1014900011921192119211921D921D9282E0E137E8 +:1014A000F807B1F70895CF92DF92EF92FF920F9372 +:1014B0001F93CF93DF9320913B02222309F484C032 +:1014C0006B017C0180912A02811102C00E94060AF0 +:1014D00001E712E0C7E0D0E0A7019601F801929180 +:1014E0008291729162918F010E940A29811131C00B +:1014F000FE01EE0FFF1FEE0FFF1FEF5AFD4F108290 +:10150000118212821382DE01AA0FBB1FAF5BBD4F97 +:1015100011961C921E92C730D105E9F021964481A4 +:1015200055816681778140835183628373831482FE +:1015300015821682178212968D919C91139711969F +:101540009C938E9313961C921E9212973496129629 +:10155000E2CF219708F68091790290917A02019763 +:1015600097FD05C090937A028093790204C010928F +:101570007A02109279028091790290917A022091F8 +:101580007702309178022817390724F010927802F8 +:1015900010927702892BC1F4809171008D7F809326 +:1015A0007100809190008F7380939000109273026D +:1015B00010927402109275021092760210927202CA +:1015C0001092710210923B02DF91CF911F910F9107 +:1015D000FF90EF90DF90CF9008951F920F920FB67B +:1015E0000F9211244F925F926F927F928F929F92EF +:1015F000AF92BF92CF92DF92EF92FF922F933F93E1 +:101600004F935F936F937F938F939F93AF93BF930A +:10161000CF93DF93EF93FF9380913B02882309F4EC +:101620009BC1C0917902D0917A021C161D060CF064 +:1016300093C140902B0250902C0260902D0270902C +:101640002E0220E030E0A901C301B2010E94B52AB8 +:1016500018160CF065C0C130D10509F452C0809154 +:10166000770290917802BE010E94872C7C019093B2 +:1016700078028093770280903D0290903E02A09085 +:101680003F02B090400220E030E040E85FE3C50157 +:10169000B4010E94A62860933D0270933E0280939D +:1016A0003F0290934002F701EE0FFF1FEE0FFF1F66 +:1016B000EF5AFD4FA3019201608171818281938174 +:1016C0000E940E2920E030E040E05EE30E94B92A4B +:1016D0009B01AC01C501B4010E94B52A18168CF417 +:1016E000C7010196BE010E94872C909378028093D7 +:1016F000770210923D0210923E0210923F02109229 +:101700004002E0917702F0917802EE0FFF1FEE0F9A +:10171000FF1FEF5AFD4F6081718182819381D0C09C +:10172000C0907302D0907402E0907502F09076023F +:1017300020E030E0A901C701B6010E940A292197E3 +:10174000882309F4A2C0FE01EE0FFF1FEE0FFF1F5A +:10175000EF5AFD4F80809180A280B380A501940153 +:10176000C701B6010E940A2987FF31C0A501940173 +:1017700060E070E08CED93EC0E940E2920E030E0F8 +:1017800040E451E40E940E2920E030E040E05FE3B5 +:101790000E94B92A9B01AC0160E070E080E090E417 +:1017A0000E941C2B9B01AC01C501B4010E94B92A07 +:1017B0009B01AC01C701B6010E940A2987FF07C03F +:1017C000A701960160E070E08CED93E439C0A501BB +:1017D0009401C701B6010E94B52A18160CF055C035 +:1017E000A501940160E070E08CED93E40E940E2965 +:1017F00020E030E040E451E40E940E2920E030E097 +:1018000040E05FE30E94B92A9B01AC0160E070E018 +:1018100080E090E40E941C2B9B01AC01C501B40147 +:101820000E94B92A9B01AC01C701B6010E94B52AEA +:1018300018165CF5A701960160E070E08CED93EC62 +:101840000E940E2920E030E040E451E40E940E297D +:1018500020E030E040E05FE30E94B92A9B01AC0148 +:1018600060E070E080E090E40E941C2B9B01AC01E2 +:10187000C701B6010E94B92A609373027093740283 +:10188000809375029093760213C0FE01EE0FFF1F46 +:10189000EE0FFF1FEF5AFD4F80819181A281B3812E +:1018A0008093730290937402A0937502B0937602B2 +:1018B000609173027091740280917502909176022A +:1018C00020912802309129022F3F4FEF340731F049 +:1018D0002F5F3F4F30932902209328020E94950EDC +:1018E0006B017C0120E034E244EF51E40E940A29BC +:1018F00087FF08C086EFC82E88E2D82E84EFE82E36 +:1019000081E4F82E20E030E040E051E4C701B60168 +:101910000E94B92A9B01AC0160E074E284E79BE479 +:101920000E940E296B017C010E947B297093970015 +:1019300060939600209106013091070140910801C3 +:1019400050910901C701B6010E94B92A0E947B2962 +:10195000709399006093980080913C02882309F469 +:1019600033C1C0903702D0903802E0903902F09035 +:101970003A0220E030E0A901C701B6010E94B52A71 +:101980001816D4F580912802909129028F3F2FEFED +:10199000920729F001969093290280932802C701AB +:1019A000B6010E94950E20E030E040E051E40E9434 +:1019B000B92A9B01AC0160E074E284E79BE40E94D9 +:1019C0000E296B017C010E947B2970939700609324 +:1019D0009600209106013091070140910801509135 +:1019E0000901C701B6010E94B92A0E947B297093A0 +:1019F00099006093980008C010929700109296008A +:101A00001092990010929800609131027091320208 +:101A10006F5F7F4F70933202609331022091960086 +:101A20003091970080E090E0232BF1F0C091960078 +:101A3000D09197000E94A7296B017C01BE0180E034 +:101A400090E00E94A7299B01AC0160913302709144 +:101A5000340280913502909136020E940E2920E0D6 +:101A60003FEF4FE757E410C00E94A7296B017C01AC +:101A700020E030EE4FEF54E4609133027091340275 +:101A800080913502909136020E94B92A9B01AC01E7 +:101A9000C701B6010E94B52A87FD96C080912F022A +:101AA0008F5F80932F0290E0209103033091040315 +:101AB00082179307A0F080910E03882319F01092EB +:101AC0002F020DC0809171008D7F809371008091F5 +:101AD00090008F738093900010923C027DC08091A3 +:101AE0003002C0912F02811128C0C0900803D0900D +:101AF0000903E0900A03F0900B0320E030E0A90115 +:101B0000C701B6010E94B52A1816BCF481E0809383 +:101B1000300210923702109238021092390210925D +:101B20003A02C0923302D0923402E0923502F0922F +:101B30003602C150C0932F0243C01092300210925F +:101B4000290210922802E0910503F091060348E073 +:101B5000C49FE00DF11D112480819181A281B38188 +:101B60008093370290933802A0933902B0933A02DF +:101B700020E030E040E85EE36481758186819781F2 +:101B80000E94B92A6B017C0180910A01682F70E0E4 +:101B900080E090E00E94A72920E030E048EC52E489 +:101BA0000E940E299B01AC01C701B6010E94B92A0F +:101BB000609333027093340280933502909336021F +:101BC00010923202109231028091070380FD04C00E +:101BD00010923C0210923B02FF91EF91DF91CF9166 +:101BE000BF91AF919F918F917F916F915F914F9135 +:101BF0003F912F91FF90EF90DF90CF90BF90AF90EB +:101C00009F908F907F906F905F904F900F900FBE3E +:101C10000F901F901895CF92DF92EF92FF92CF9383 +:101C2000DF936B017C01EA0180912A02811102C0DD +:101C30000E94060A8091070380FF46C080917902C6 +:101C400090917A0208970CF03FC0809171008D7FCF +:101C50008093710080913C0281110E94200A81E0F2 +:101C600080933B02109229021092280220E030E07B +:101C7000A901C701B6010E94B52A1816DCF48091AB +:101C8000790290917A02FC01EE0FFF1FEE0FFF1F09 +:101C9000EF5AFD4FC082D182E282F382FC01EE0F47 +:101CA000FF1FEF5BFD4FD183C083019690937A02B3 +:101CB000809379028091710082608093710080919D +:101CC0009000806880939000DF91CF91FF90EF901B +:101CD000DF90CF90089580910703817008958091DF +:101CE00007038160809307030E94C3230C94EB03D6 +:101CF000809107038E7F809307030C94C323809108 +:101D00007B0290E0019666E070E00E94872C809351 +:101D10007B02089580917B0290E0019766E070E07D +:101D20000E94872C80937B0208958F929F92AF929E +:101D3000BF92CF92DF92EF92FF920F931F93CF93B8 +:101D4000DF936B017C01C0912802D0912902BE0172 +:101D500080E090E00E94A7294B015C01A701960159 +:101D600060E070E08CE594E40E940E299B01AC01D8 +:101D7000C501B4010E94B92A0E947B2920917B02EF +:101D8000233009F473C028F4222351F02130E9F004 +:101D90002CC1243009F4A0C0253009F4E0C025C1CD +:101DA00080E090E0A0E0BFE38093060190930701FC +:101DB000A0930801B093090110922B0210922C02FB +:101DC00010922D0210922E0210C110922B0210922E +:101DD0002C0210922D0210922E026431710540F4F3 +:101DE0006A30710560F520E030E040E85EE32BC02A +:101DF000693C710508F0AAC080E090E00E94A72924 +:101E000020E030E040EA51E40E94A52820E030E0E4 +:101E100044E353E40E940E299B01AC010E94B92ABD +:101E200020E030E040E05EE30E94B92A9B01AC0173 +:101E300060E070E080E09EE30E94A52844C020E0BE +:101E400030E040E05FE3C701B6010E94B92A6B01B0 +:101E50007C0180E090E0A0E0BEE3809306019093D7 +:101E60000701A0930801B0930901BFC010922B0293 +:101E700010922C0210922D0210922E024AE0469FE0 +:101E80009001479F300D1124C90168EB7BE00E944F +:101E9000732CBC016C5D754077FF03C07195619533 +:101EA0007109882777FD8095982F0E94A9292EE334 +:101EB00033EC4EE259E30E94B92A20E030E040ECD6 +:101EC0005EE30E94A6286093060170930701809349 +:101ED00008019093090189C010922B0210922C02E4 +:101EE00010922D0210922E02CE0183709927892B19 +:101EF000E1F0BE016170772780E090E00E94A729A1 +:101F000020E030E040E05EE30E94B92A20E030E0CB +:101F100040E45FE30E94A6286093060170930701E6 +:101F200080930801909309010CC080E090E0A0E04C +:101F3000BFE38093060190930701A0930801B0933B +:101F40000901C770DD27CD2B09F04FC010920601A3 +:101F500010920701109208011092090146C01092D8 +:101F60002B0210922C0210922D0210922E0200E0F1 +:101F700010E020E03FE30093060110930701209357 +:101F80000801309309016739710578F180E090E02C +:101F90000E94A72920E030E047E153E40E94A528F1 +:101FA00020E030E04AE754E40E940E2920E030E0CF +:101FB00048E452E40E94B92A20E030E040EA51E4CB +:101FC0000E94EB290E947629660F771F660F771F04 +:101FD000FB01EE5AFE4F2081318142815381C701BE +:101FE000B6010E94B92A6B017C01C701B601DF91DD +:101FF000CF911F910F91FF90EF90DF90CF90BF9006 +:10200000AF909F908F90089580918C020895CF9308 +:10201000DF9300D01F92CDB7DEB79C0180911303F0 +:10202000843019F593E099833B832A839093E900E8 +:102030008FEF9091E800815095FD06C095ED9A953F +:10204000F1F700008111F5CF8091E80085FF0DC008 +:1020500040E050E063E070E0CE0101960E9468121B +:102060008091E8008E778093E8000F900F900F909A +:10207000DF91CF910895CF93DF9300D01F92CDB71A +:10208000DEB720911303243021F522E029839B83BE +:102090008A8383E08093E9008FEF9091E80081507C +:1020A00095FD06C095ED9A95F1F700008111F5CFE9 +:1020B0008091E80085FF0DC040E050E063E070E0F3 +:1020C000CE0101960E9468128091E8008E7780937D +:1020D000E8000F900F900F90DF91CF91089520911D +:1020E00013032430F1F422E02093E9002FEF309124 +:1020F000E800215035FD06C035ED3A95F1F70000B6 +:102100002111F5CF2091E80025FF0BC040E050E001 +:1021100065E070E00E9468128091E8008E778093FD +:10212000E8000895CF93DF93EC019091130394306E +:1021300009F046C0809115018823D9F080911601DD +:102140008823B9F09093E9008FEF9091E8008150D7 +:1021500095FD06C095E19A95F1F700008111F5CF44 +:102160008091E80085FF2CC040E050E060E170E025 +:1021700017C081E08093E9008FEF9091E8008150D3 +:1021800095FD06C095ED9A95F1F700008111F5CF08 +:102190008091E80085FF14C040E050E068E070E006 +:1021A000CE010E9468128091E8008E778093E8004B +:1021B00080E1FE01ACE7B2E001900D928A95E1F773 +:1021C000DF91CF91089580911203811109C00E947F +:1021D000FD130E945A148091E20084608093E20013 +:1021E0000895109212030895089508950C94A12261 +:1021F00042E061EC81E00E94771342E061EC82E012 +:102200000E94771342E061EC83E00E94771342E181 +:1022100061EC84E00C94771380911503833009F40A +:1022200055C030F4813071F0823009F48EC00895C9 +:102230008A3009F47AC08B3009F460C0893009F023 +:102240009CC020C080911403813A09F096C080910F +:10225000E800877F8093E80080911803909119032C +:10226000892B21F460E18CE792E003C060E080E01C +:1022700090E070E00E94B3128091E8008B77809329 +:10228000E800089580911403813209F076C08091AE +:10229000180390911903009719F0039709F06DC086 +:1022A0008091E800877F8093E8008091E80082FDBC +:1022B00005C0809113038111F8CF5FC08091F100B8 +:1022C00080938C028091E8008B7753C08091140337 +:1022D000813A09F052C08091180390911903892B1B +:1022E00009F04BC08091E800877F8093E8008091DF +:1022F000E80080FFFCCF8091150136C08091140367 +:102300008132D9F58091180390911903892BA9F591 +:102310008091E800877F8093E8000E94AC13809151 +:102320001603809315010C94E21B809114038132F3 +:1023300021F58091E800877F8093E8000E94AC132C +:102340008091170380938D02089580911403813A40 +:10235000A1F48091E800877F8093E8008091E800F5 +:1023600080FFFCCF80918D028093F1008091E80086 +:102370008E778093E8000C94AC13089584B7877F20 +:1023800084BF88E10FB6F8948093600010926000DB +:102390000FBE90E080E80FB6F894809361009093B0 +:1023A00061000FBE0E944F170E94FD130E945A1435 +:1023B0008091E20084608093E20078940E94E016AD +:1023C0000E9451178BE091E00E94FB16809113034D +:1023D000853069F40E946222809111038823B1F351 +:1023E0000E949022882391F30E945212EFCF0E9404 +:1023F0005917ECCF292F332723303105C9F064F466 +:102400002130310581F02230310509F043C08DE6DD +:1024100090E022EB33E042C021323105F1F022326C +:10242000310541F137C082E190E02FE134E036C060 +:1024300099278130910541F08230910541F0892B37 +:1024400049F5EEEAF3E005C0E0E8F3E002C0E6E5B6 +:10245000F3E0849190E09F0121C06430D8F4E62F2E +:10246000F0E0EE0FFF1FE255FE4F2081318189E041 +:1024700090E014C0643070F470E0FB01EE0FFF1FB9 +:10248000EA55FE4F20813181FB01EE55FE4F8081E0 +:1024900090E004C080E090E020E030E0FA01318379 +:1024A0002083089580E189BD82E189BD09B400FEE1 +:1024B000FDCF8091D8008F7D8093D8008091E0007F +:1024C00082608093E0008091E00081FDFCCF089560 +:1024D000CF92DF92EF92FF920F931F93CF93DF93F0 +:1024E000EC018B016A010E94CB13811133C0C1142E +:1024F000D10439F0F60180819181081B190BC80FB6 +:10250000D91FE12CF12C0115110519F18091E8007A +:1025100085FD16C08091E8008E778093E800C11495 +:10252000D10449F0F60180819181E80EF91EF18213 +:10253000E08285E00FC00E94CB13882321F30AC0FC +:1025400089918093F10001501109FFEFEF1AFF0A02 +:10255000DACF80E0DF91CF911F910F91FF90EF9044 +:10256000DF90CF90089520911A0330911B03261716 +:10257000370748F06115710539F42091E8002E778E +:102580002093E80001C0B90140E061157105A9F18F +:1025900020911303222309F443C0253009F442C0DB +:1025A0002091E80023FD40C02091E80022FD32C0C8 +:1025B0002091E80020FFE9CF4091F3002091F20044 +:1025C00030E0342BFC01CF016115710559F0283042 +:1025D000310540F481918093F100615071092F5FC2 +:1025E0003F4FF1CF41E02830310509F040E0209124 +:1025F000E8002E772093E800C8CF4111C9CF0AC068 +:1026000080911303882361F0853061F08091E800A8 +:1026100083FD0AC08091E80082FFF2CF80E0089538 +:1026200082E0089583E0089581E0089520911A03DF +:1026300030911B032617370748F06115710539F4EF +:102640002091E8002E772093E80001C0B901FC0139 +:1026500020E06115710591F180911303882309F43D +:1026600040C0853009F43FC08091E80083FD3DC043 +:102670008091E80082FD2FC08091E80080FFE9CFC3 +:102680002091F3008091F20090E0922B611571058A +:1026900059F08830910540F424912093F10031964F +:1026A000615071090196F2CF21E0089709F020E00E +:1026B0008091E8008E778093E800CBCF2111CCCFBA +:1026C0000AC080911303882361F0853061F0809106 +:1026D000E80083FD0AC08091E80082FFF2CF80E02D +:1026E000089582E0089583E0089581E00895982F89 +:1026F000973058F59093E900981739F07091EC00F5 +:102700002091ED005091F00003C0242F762F50E06F +:1027100021FF19C03091EB003E7F3093EB003091E8 +:10272000ED003D7F3093ED003091EB003160309350 +:10273000EB007093EC002093ED005093F00020919B +:10274000EE0027FF07C09F5FD3CF8F708093E90013 +:1027500081E0089580E008958091140387FF11C0FF +:102760008091E80082FD05C0809113038111F8CFAC +:1027700011C08091E8008B770BC0809113038823F0 +:1027800049F08091E80080FFF8CF8091E8008E77D3 +:102790008093E80008952091E4003091E50095E6EB +:1027A0004091EC00842F817040FF22C08091E800AE +:1027B00080FD1CC080911303882391F0853091F037 +:1027C0008091EB0085FD10C04091E4005091E50040 +:1027D0004217530729F39A01915011F784E00895A5 +:1027E00082E0089583E0089581E0089580E00895EF +:1027F0004091E80042FFDECF08950E946B140E94D2 +:102800007314E0EEF0E0808181608083E8EDF0E019 +:1028100080818F77808319BCA7EDB0E08C918E7F8B +:102820008C9380818F7E80831092120308950F9382 +:102830001F93CF93DF930E946B140E947314C8ED13 +:10284000D0E088818F7788838881806888838881B9 +:102850008F7D888319BC1092130310920F0310927E +:1028600011031092100300EE10E0F80180818B7FBD +:10287000808388818160888342E060E080E00E94FC +:102880007713E1EEF0E080818E7F8083E2EEF0E06E +:10289000808181608083808188608083F80180816D +:1028A0008E7F8083888180618883DF91CF911F91A3 +:1028B0000F910895E8EDF0E080818F7E8083E7ED51 +:1028C000F0E080818160808384E082BF81E080933A +:1028D00012030C941714E8EDF0E080818E7F808362 +:1028E0001092E20008951092DA001092E10008952B +:1028F0001F920F920FB60F9211242F933F934F9375 +:102900005F936F937F938F939F93AF93BF93EF9357 +:10291000FF938091E10082FF0BC08091E20082FF73 +:1029200007C08091E1008B7F8093E1000E94DF1659 +:102930008091DA0080FF1FC08091D80080FF1BC00B +:102940008091DA008E7F8093DA008091D90080FF39 +:102950000DC080E189BD82E189BD09B400FEFDCFD3 +:1029600081E0809313030E94E31005C019BC10920C +:1029700013030E94F1108091E10080FF19C0809143 +:10298000E20080FF15C08091E2008E7F8093E2001C +:102990008091E20080618093E2008091D8008062A3 +:1029A0008093D80019BC85E0809313030E94F51032 +:1029B0008091E10084FF30C08091E20084FF2CC050 +:1029C00080E189BD82E189BD09B400FEFDCF80911F +:1029D000D8008F7D8093D8008091E1008F7E809316 +:1029E000E1008091E2008F7E8093E2008091E2001E +:1029F00081608093E20080910F03882311F084E0CE +:102A000007C08091E30087FD02C081E001C083E040 +:102A1000809313030E94F6108091E10083FF29C088 +:102A20008091E20083FF25C08091E100877F809341 +:102A3000E10082E08093130310920F038091E10084 +:102A40008E7F8093E1008091E2008E7F8093E20090 +:102A50008091E20080618093E20042E060E080E0EB +:102A60000E9477138091F00088608093F0000E94AC +:102A7000F410FF91EF91BF91AF919F918F917F9152 +:102A80006F915F914F913F912F910F900FBE0F90DB +:102A90001F9018951F920F920FB60F9211242F932B +:102AA0003F934F935F936F937F938F939F93AF93D6 +:102AB000BF93CF93DF93EF93FF93C091E900CF7063 +:102AC0008091EC00D82FD17080FDD0E81092E90001 +:102AD0008091F000877F8093F00078940E948E159B +:102AE0001092E9008091F00088608093F000CD2B77 +:102AF000CF70C093E900FF91EF91DF91CF91BF912B +:102B0000AF919F918F917F916F915F914F913F9185 +:102B10002F910F900FBE0F901F9018951F93CF937A +:102B2000DF93CDB7DEB7AA970FB6F894DEBF0FBE1E +:102B3000CDBFE4E1F3E088E08E0F9091F100919336 +:102B40008E13FBCF0E940C118091E80083FF1FC100 +:102B50008091140390911503492F50E04A3051059C +:102B600008F015C1FA01EA5AFF4F0C949B2C8038EB +:102B700081F0823809F00BC1809118038F70809327 +:102B8000E9008091EB0085FB882780F91092E9002D +:102B900006C0809110039091110391118260909171 +:102BA000E800977F9093E8008093F1001092F10085 +:102BB000C8C0282F2D7F09F0EAC0882319F0823081 +:102BC00061F0E5C080911603813009F0E0C09330D8 +:102BD00009F080E0809311032BC0809116038111CE +:102BE00027C0809118038F7009F4D1C08093E90049 +:102BF0002091EB0020FF1CC0933021F48091EB006A +:102C0000806214C09091EB0090619093EB0021E002 +:102C100030E0A90102C0440F551F8A95E2F74093A6 +:102C2000EA001092EA008091EB0088608093EB004C +:102C30001092E9008091E800877F86C08111A7C0CB +:102C4000109116031F778091E3008078812B809389 +:102C5000E3008091E800877F8093E8000E94AC1336 +:102C60008091E80080FFFCCF8091E3008068809332 +:102C7000E300111102C082E001C083E080931303DE +:102C800086C08058823008F082C0809116039091EF +:102C900017038C3D53E0950779F583E08A838AE238 +:102CA00089834FB7F894DE01139620E03EE051E2AD +:102CB000E32FF0E050935700E49120FF03C0E2952A +:102CC000EF703F5FEF708E2F90E0EA3010F0C79604 +:102CD00001C0C0968D939D932F5F243149F74FBF5C +:102CE0008091E800877F8093E8006AE270E0CE017F +:102CF00001960E94B31214C0AE014F5F5F4F609106 +:102D000018030E94FA11BC01009709F440C0909189 +:102D1000E800977F9093E80089819A810E941613BA +:102D20008091E8008B778093E80031C0803879F596 +:102D30008091E800877F8093E80080910F03809363 +:102D4000F1008091E8008E778093E8000E94AC1338 +:102D50001EC081111CC0909116039230C0F4809166 +:102D6000E800877F8093E80090930F030E94AC13E4 +:102D700080910F03811106C08091E30087FD02C09E +:102D800081E001C084E0809313030E94F8108091D9 +:102D9000E80083FF0AC08091E800877F8093E80005 +:102DA0008091EB0080628093EB00AA960FB6F894B6 +:102DB000DEBF0FBECDBFDF91CF911F910895089563 +:102DC000CF93809113038823A1F0C091E900CF70C5 +:102DD0009091EC00892F817090FD80E8C82B1092B3 +:102DE000E9008091E80083FD0E948E15CF70C093AA +:102DF000E900CF91089590939302809392020895F1 +:102E0000E0919202F0919302309721F00190F081CD +:102E1000E02D099480E00895E0919202F0919302F0 +:102E2000309721F00280F381E02D09940895E0911C +:102E30009202F0919302309721F00480F581E02D09 +:102E4000099408952091900230919102821793077E +:102E500071F09093910280939002E0919202F09130 +:102E60009302309721F00680F781E02D09940895B0 +:102E700020918E0230918F028217930771F0909308 +:102E80008F0280938E02E0919202F091930230972C +:102E900021F00084F185E02D0994089508950C94A3 +:102EA0004E170E94D5220E9426090E945B230C9493 +:102EB0000A285F926F927F928F929F92AF92BF92F9 +:102EC000CF92DF92EF92FF920F931F93CF93DF93F6 +:102ED00000D000D01F92CDB7DEB70E946B099DE9EC +:102EE000C92E92E0D92E03E010E0AA24A394B12CBD +:102EF000502E802F0E94E6094C01F60172906290DC +:102F00006F016826792661147104A1F4015011093A +:102F100078F78FEF89838A831B820E94DE2281608B +:102F2000782F9D838C8349815A816B818D810E948A +:102F3000091838C08091F20281FD0E94EF092BE050 +:102F400030E07501022E02C0EE0CFF1C0A94E2F77D +:102F5000C70186219721892B09F129835A828E2066 +:102F60009F2091E0892809F490E09B830E94DE2253 +:102F70008160782F9D838C8349815A816B818D81FB +:102F80000E940918000F111FF801EB56FD4F8081B8 +:102F90009181E826F926F182E08204C021503109AE +:102FA00080F6B4CF0E944225109194020E9400172F +:102FB0001817D1F00E940017809394020F900F9081 +:102FC0000F900F900F90DF91CF911F910F91FF9075 +:102FD000EF90DF90CF90BF90AF909F908F907F90B9 +:102FE0006F905F900C9410090F900F900F900F90BE +:102FF0000F90DF91CF911F910F91FF90EF90DF9095 +:10300000CF90BF90AF909F908F907F906F905F9088 +:103010000895CF93DF93CDB7DEB72B970FB6F89413 +:10302000DEBF0FBECDBF4F83588769877A878B87F6 +:10303000DE01119686E0FD0111928A95E9F785E09F +:10304000FE01379601900D928A95E1F749815A81E8 +:103050006B817C818D819E810E94801E2B960FB694 +:10306000F894DEBF0FBECDBFDF91CF910895CF930F +:10307000882309F4C2C0C82F823859F40E9400176F +:1030800081FDBBC089E30E945A210E94272289E367 +:103090000CC0833879F40E94001780FDAEC083E530 +:1030A0000E945A210E94272283E50E949C21CF91F1 +:1030B0000C942722843859F40E94001782FD9DC089 +:1030C00087E40E945A210E94272287E4EECF8CEFEA +:1030D0008C0F813A48F48C2F0E94722781118DC089 +:1030E0008C2F0E945A21E3CF80E28C0F883048F465 +:1030F000C77081E001C0880FCA95EAF70E94E021FD +:10310000D6CF8BE58C0F833078F4C53A29F0C63AD8 +:1031100031F083E890E005C081E890E002C082E8E9 +:1031200090E0CF910C94221788E58C0F833108F042 +:1031300064C0C83A39F1C93A41F1CA3A49F1CB3AC7 +:1031400051F1CC3A59F1CD3A61F1C03B69F1CE3A37 +:1031500071F1CF3A79F1C13B81F1C23B89F1C33BB7 +:1031600091F1C43B99F1C53BA1F1C63BA9F1C73B25 +:10317000B1F1C83BB9F1C93BC1F1CA3BC9F180E02B +:1031800090E038C082EE90E035C089EE90E032C029 +:103190008AEE90E02FC085EB90E02CC086EB90E0AB +:1031A00029C087EB90E026C08CEC90E023C08DEC2A +:1031B00090E020C083E891E01DC08AE891E01AC049 +:1031C00082E991E017C084E991E014C081E292E0C5 +:1031D00011C083E292E00EC084E292E00BC085E26F +:1031E00092E008C086E292E005C087E292E002C069 +:1031F0008AE292E0CF910C943817CF9108958823FA +:1032000009F44BC0823859F40E94001781FF45C071 +:1032100089E30E945A210E94272289E30CC0833847 +:1032200071F40E94001780FF38C083E50E945A2184 +:103230000E94272283E50E949C210C942722843837 +:1032400059F40E94001782FF28C087E40E945A2187 +:103250000E94272287E4EFCF9CEF980F913A58F312 +:1032600090E2980F983050F4877091E001C0990F68 +:103270008A95EAF7892F0E94E621DFCF9BE5980F18 +:10328000933020F480E090E00C942217885A833128 +:1032900020F480E090E00C9438170895882321F002 +:1032A0000E94E0210C9427220895882321F00E9497 +:1032B000E6210C94272208957F928F929F92AF92DD +:1032C000BF92CF92DF92EF92FF920F931F93CF9313 +:1032D000DF931F92CDB7DEB77C01C62E772EFC019F +:1032E000058102950F70128111110E94FD210E942B +:1032F0005321882379F0112369F080E28C0D883006 +:1033000048F082E00E943C210E94532191E0D82E97 +:10331000D92601C0D12CE72DE295EF70F0E0E05AFC +:10332000FF4F0C949B2C872D807F072D0F708823D7 +:1033300011F00295007F112389F0002309F499C14F +:1033400080E28C0D883020F4802F0E94E02103C0A1 +:10335000802F0E94F0210E9427228BC18C2D0E9479 +:10336000FF18002309F4C3C180E28C0D883020F4DB +:10337000802F0E94E62103C0802F0E94F6210E9428 +:103380002722B5C1872D807F972D9F70803211F441 +:10339000892F03C0892F8295807FCC2021F0F1E016 +:1033A000CF16A1F01DC0112339F0002319F101300F +:1033B00009F50E9410229BC1002319F0013009F485 +:1033C00096C189830E941322898110C1112321F0A3 +:1033D000063008F08CC10EC0053008F088C106C167 +:1033E000112359F0002331F0F701958190FF41C17D +:1033F0009F7095830E944E197AC1002309F4F6C08C +:103400003EC1872D86958695837090E0009719F0D0 +:10341000019761F06CC1112321F08C2D972D9370D1 +:1034200002C080E090E00E94221761C1112321F0C8 +:103430008C2D972D937002C080E090E00E94381789 +:1034400056C18C2D112319F00E944A2402C00E94FB +:10345000B2240E9437254BC1872D837009F052C0DA +:10346000111145C18C2D829586958770880F880F24 +:103470009C2D9F70892E912CA12CB12C082E04C05C +:10348000880C991CAA1CBB1C0A94D2F7C4FE14C059 +:103490000FE010E020E030E0B901A80104C0440FC3 +:1034A000551F661F771F8A95D2F7CB01BA01609529 +:1034B00070958095909503C060E070E0CB01272D5A +:1034C00026952695237030E02230310569F02330AF +:1034D000310589F0682979298A299B29213031050C +:1034E00071F00E94C81F03C1682979298A299B2984 +:1034F0000E94E41FFCC00E94C81FC501B4010E94C5 +:10350000AC1FF5C0112319F0872D817001C086957D +:10351000882309F4ECC08C2D829586958770880FDE +:10352000880F9C2D9F70892E912CA12CB12C082ED8 +:1035300004C0880C991CAA1CBB1C0A94D2F7C4FEB8 +:1035400014C00FE010E020E030E0B901A80104C091 +:10355000440F551F661F771F8A95D2F7CB01BA011A +:10356000609570958095909503C060E070E0CB0108 +:10357000272D269526952370422F50E04230510585 +:1035800069F04330510589F0682979298A299B29F6 +:103590004130510571F00E94A220A9C06829792903 +:1035A0008A299B290E94BE20A2C00E94A220C50198 +:1035B000B4010E9486209BC08C2D90E0FC01E05E4F +:1035C000F109E531F10508F050C0E059FF4F0C94C6 +:1035D0009B2C0C2D0F70872D8F71112321F00E94D1 +:1035E0001F20802F07CF0E944020802F0E94551956 +:1035F0007EC0112341F0053008F079C0872D8F710E +:103600000E94652074C0063008F071C0F7CF112306 +:1036100039F0872D8F710E941F2069C01123C9F3D3 +:10362000872D8F710E94402062C0112329F0872DC1 +:103630008F710E940A205BC00E94002058C0112395 +:1036400051F0172D1F71812F0E941F2063E0812FE1 +:103650000E9433214CC081E00E943C21023008F4DA +:1036600046C082E00E943C2142C0112331F0002379 +:1036700081F28C2D0E9437183AC0002389F28C2DDC +:103680000E94FF1834C0472D4F706C2DC7010E9457 +:10369000EE050E94241F2BC0111129C0472D4F7029 +:1036A00050E042305105B9F04CF44115510581F01C +:1036B00041305105E1F40E94322819C043305105D0 +:1036C00069F04430510599F48C2D0E9484280FC074 +:1036D0000E941B280CC00E944E2809C00E9461282D +:1036E00006C0472D4F706C2DC7010E94F105DD20EB +:1036F000F9F00E942F2180FD1BC0F70112820E9469 +:1037000029210E941F20C7010E94A71B0E94292176 +:103710000F90DF91CF911F910F91FF90EF90DF906D +:10372000CF90BF90AF909F908F907F900C9440204F +:103730000F90DF91CF911F910F91FF90EF90DF904D +:10374000CF90BF90AF909F908F907F9008950F93F0 +:103750001F93CF93DF93EC01888199812B813C816A +:10376000232BB9F09F3F11F48F3F99F0CE010E94B7 +:10377000ED03882371F0688179818A810E94252177 +:103780008C010E94DA200E94A11FB801CE010E9484 +:103790005C19DF91CF911F910F9108950E94FD2137 +:1037A0000E940D220E94D2210E9427220E94E82519 +:1037B0000E94372580E090E00E94221780E090E090 +:1037C0000C9438170E94ED210C94CE1B0E941A21F4 +:1037D000292F22952F7030E02C3031054CF42A30FF +:1037E00031056CF42250310922303105A8F407C0AC +:1037F0002C30310569F02F30310551F00DC0803F7C +:1038000069F018F4803E40F409C0843F29F406C0F2 +:1038100093FB882780F9089580E0089581E008955A +:10382000CF93DF9300D000D01F92CDB7DEB70F90BB +:103830000F900F900F900F90DF91CF910895CF933D +:10384000DF9300D000D000D0CDB7DEB726960FB6FC +:10385000F894DEBF0FBECDBFDF91CF9108951F93C7 +:10386000CF93DF93C0919D0216E080919E02C8170E +:1038700099F0D0E01C9FF0011D9FF00D1124E1563E +:10388000FD4F4081518162817381848195810E94C5 +:103890001F1C2196C770E9CFDF91CF911F9108952A +:1038A0004091CF025091D0026091D1027091D2022A +:1038B0008091D3029091D4020C941F1C8091D40269 +:1038C00082958F7009F054C08091D102882309F449 +:1038D0004FC080919D02A0919E026091CF02709195 +:1038E000D0024091D2025091D302B6E08A1709F477 +:1038F0003FC090E041155105C1F17F3F11F46F3F8A +:10390000A1F1B89FF001B99FF00D1124E156FD4FD0 +:10391000218172132AC02081621327C022812111C4 +:1039200024C0238134812417350710F42150310934 +:10393000241B350B283C3105C0F42091D4022F7094 +:1039400020612093D40226E0289FF001299FF00DEA +:103950001124EC55FD4F80818F70806180838FEC46 +:1039600092E00E94A71B0C942F1C01968770BECF7B +:103970000895CF92DF92EF92FF920F931F93CF9310 +:10398000DF93CDB7DEB762970FB6F894DEBF0FBEF8 +:10399000CDBF8C0185E0F801DE011D9601900D92EE +:1039A0008A95E1F7D8014C9111965C911197129686 +:1039B0006C9112971396CD90DC9014973091CF02B2 +:1039C0007091D0028091D2029091D302009709F4B5 +:1039D0006BC17F3F19F43F3F09F466C1E090D1020B +:1039E000EE2009F4C0C02091D402C816D90628F0F0 +:1039F000F601E81BF90BCF0104C0809590958C0D62 +:103A00009D1DFF24F394883C910578F0F12C207FD4 +:103A100009F0C6C07C2DD98AC88A89890E94101CE9 +:103A20008FEC92E00E94A71BB1C0822F807F09F02B +:103A300046C0751314C0341312C0611110C02F702A +:103A400020612093D4020E94501C8FEC92E00E94CF +:103A5000A71B8091D402D80115968C932EC0CD2837 +:103A600019F15F3F11F44F3FF9F0F62E61111CC0C0 +:103A700080919D0220919E0236E0821709F45AC07F +:103A800090E0389FF001399FF00D1124E156FD4F71 +:103A90007181571306C07081471303C07281711181 +:103AA00003C001968770E9CFF62E662309F418C18A +:103AB0008091D40281608093D402F12C11C17513DE +:103AC00008C0341306C0611104C08091D402D8012B +:103AD000C3C04D875E878D859E856A8B0E94E61BDD +:103AE0006A898823E1F16623D1F12091D402822FE3 +:103AF00082958F7090E0029774F08091CF02909140 +:103B0000D00298878F831986DB86CA862C87CE01E0 +:103B100007960E94A71B86E0F801AFECB2E0019087 +:103B20000D928A95E1F70E945E1C0E94501CFF24B2 +:103B3000F394D6C04D875E878D859E850E941A219D +:103B4000292F22952F7030E0223031050CF0BCC0B7 +:103B50009F7009F0B6C0805E883008F4C1C0C8010B +:103B60000E94A71BE4CFC816D90608F453C0F6017B +:103B7000E81BF90BCF01883C910508F450C0F12CEB +:103B80007C2DD98AC88A89890E94101CEFECF2E04A +:103B900086E0DF011D928A95E9F70E94501CA0C0C3 +:103BA000751314C0341312C0611110C08091D40277 +:103BB000F8018583C8010E94A71B86E0EFECF2E0C4 +:103BC000DF011D928A95E9F7FE2C8AC04D875E873A +:103BD0008D859E856A8B0E94E61B6A89882309F47D +:103BE000BECF662309F4BBCF2091D402822F8295E9 +:103BF0008F7090E002970CF48ECF8091CF0290915D +:103C0000D0029A8389831B82DD82CC822E83CE01EF +:103C100001967FCF809590958C0D9D1DACCFF62E93 +:103C2000662309F49CCF75132EC034132CC0209149 +:103C3000D40220FD1FC0822F82958F70D9F0D80149 +:103C400015962C9315978F3049F08F5F982F92958A +:103C5000907F822F8F70892B15968C93C8010E94BC +:103C6000A71B86E0F801AFECB2E001900D928A95B7 +:103C7000E1F793CF86E0F801AFECB2E001900D924E +:103C80008A95E1F72DC04D875E878D859E850E94C0 +:103C9000E61B811140CF8091D40281608093D402D1 +:103CA000C8010E94A71B1CC0662309F458CF4D878A +:103CB0005E878D859E850E94E61B882309F44FCF81 +:103CC0002ACF811148CF0CC0243031050CF047CFEA +:103CD0009F7009F440CFF8019581907F09F03BCFA8 +:103CE0008F2D62960FB6F894DEBF0FBECDBFDF9169 +:103CF000CF911F910F91FF90EF90DF90CF9008959B +:103D00001F93CF93DF93CDB7DEB72C970FB6F89400 +:103D1000DEBF0FBECDBF4F83588769877A878B87F9 +:103D20009C87CE0107960E94B91C882369F08F8179 +:103D300098852A853B85232BF1F19F3F09F063C0CD +:103D40008F3F09F060C037C086E0FE013796DE0184 +:103D5000119601900D928A95E1F76F817885EA8539 +:103D6000FB85309741F17F3F11F46F3F21F12091A6 +:103D70009E0230E0C90101968770992740919D020B +:103D800050E08417950709F447C069837A83FD835F +:103D9000EC8396E0929FD001939FB00D1124A15621 +:103DA000BD4FFE01319601900D929A95E1F78093F7 +:103DB0009E020E942F1C16E080919D0290919E020F +:103DC0008917C1F1189FC001112481569D4F0E948F +:103DD000B91C882379F1E0919D021E9FF001112406 +:103DE000E156FD4F408151816281738184819581CB +:103DF0000E941F1C80919D0290E001968770992778 +:103E000080939D02D9CF4F81588569857A858B85AE +:103E10009C850E941F1CCFCF0E94E21B10929E0225 +:103E200010929D02EFECF2E086E0DF011D928A9590 +:103E3000E9F7C1CF2C960FB6F894DEBF0FBECDBF09 +:103E4000DF91CF911F910895EF92FF920F931F93EF +:103E5000CF93DF938C01009709F46CC0F12CEE2412 +:103E6000E394E8012196F8018491843740F484308A +:103E700008F051C0813081F0823019F15BC0853784 +:103E800009F444C0A8F19CE7980F903708F052C09D +:103E90008F770E94FF1841C00E5F1F4FFE01C49133 +:103EA00080E28C0F883048F4C7708E2D01C0880FD7 +:103EB000CA95EAF70E94002214C08C2F0E9437187E +:103EC0002DC00E5F1F4FFE01C49180E28C0F883021 +:103ED00058F4C7708E2D01C0880FCA95EAF70E946A +:103EE00006220E9427221AC08C2F0E94FF1816C09B +:103EF0000E5F1F4FFE01C491CC2381F08FE99FE03C +:103F00000197F1F700C00000C150F6CF0E5F1F4FC0 +:103F1000FE01F49003C00E9437188E018F2D882374 +:103F200009F49FCFEFE9FFE03197F1F700C00000FF +:103F30008150F5CFDF91CF911F910F91FF90EF90BE +:103F4000089508956093D9027093DA028093DB029A +:103F50009093DC020C94CE1B0F931F930091D90217 +:103F60001091DA022091DB023091DC02DC01CB01FE +:103F7000802B912BA22BB32B8093D9029093DA0242 +:103F8000A093DB02B093DC021F910F910C94CE1B27 +:103F90000F931F930091D9021091DA022091DB0256 +:103FA0003091DC02DC01CB0180239123A223B323D7 +:103FB0008093D9029093DA02A093DB02B093DC02E3 +:103FC0001F910F910C94CE1B0F931F930091D90258 +:103FD0001091DA022091DB023091DC02DC01CB018E +:103FE00080279127A227B3278093D9029093DA02E2 +:103FF000A093DB02B093DC021F910F910C94CE1BB7 +:104000001092D5021092D6021092D7021092D802C6 +:104010000C94CE1B41E050E060E070E004C0440F1F +:10402000551F661F771F8A95D2F74093D50250938C +:10403000D6026093D7027093D8020C94CE1B41E055 +:1040400050E060E070E004C0440F551F661F771F0A +:104050008A95D2F78091D5029091D602A091D7028D +:10406000B091D802482B592B6A2B7B2B4093D50259 +:104070005093D6026093D7027093D8020C94CE1B53 +:1040800041E050E060E070E004C0440F551F661F3F +:10409000771F8A95D2F740955095609570958091DD +:1040A000D5029091D602A091D702B091D8024823B0 +:1040B00059236A237B234093D5025093D602609301 +:1040C000D7027093D8020C94CE1B41E050E060E020 +:1040D00070E004C0440F551F661F771F8A95D2F702 +:1040E0008091D5029091D602A091D702B091D802CA +:1040F000482759276A277B274093D5025093D60239 +:104100006093D7027093D8020C94CE1B0F931F9329 +:104110000091D5021091D6022091D7023091D80299 +:10412000DC01CB01802B912BA22BB32B8093D502EA +:104130009093D602A093D702B093D8021F910F910B +:104140000C94CE1B0F931F930091D5021091D602B1 +:104150002091D7023091D802DC01CB01802391233A +:10416000A223B3238093D5029093D602A093D702C3 +:10417000B093D8021F910F910C94CE1B0F931F93F5 +:104180000091D5021091D6022091D7023091D80229 +:10419000DC01CB0180279127A227B3278093D5028A +:1041A0009093D602A093D702B093D8021F910F919B +:1041B0000C94CE1B0895CF92DF92EF92FF920F9353 +:1041C0001F93CF93DF938C01C090D902D090DA0275 +:1041D000E090DB02F090DC028091D5029091D60253 +:1041E000A091D702B091D802C82AD92AEA2AFB2A7C +:1041F000CFE1D0E0D701C6010C2E04C0B695A7953B +:10420000979587950A94D2F780FF06C0B8018C2F46 +:104210000E947608019721F4219760F780E001C0A1 +:104220008C2FDF91CF911F910F91FF90EF90DF9036 +:10423000CF900895CF93DF93EC010E94DB20BE0165 +:104240000E947608DF91CF910895CB010E941A2138 +:1042500008958091DD0285958595859508958091D5 +:10426000DD028770089598E0899F90011124262B24 +:104270002093DD020C941F202091DD028095822383 +:104280008093DD02982F977069F430E0482F55270E +:1042900047FD50952417350729F085958595859517 +:1042A0000C94402008959091DD02977081E009F40C +:1042B00080E0089590911501992321F090911601C5 +:1042C000911109C02091170130911801F90132961E +:1042D0009FEF40E01FC0982F9695969596959F303A +:1042E00050F5E0911701F0911801E90FF11D877069 +:1042F00021E030E0A90102C0440F551F8A95E2F782 +:10430000CA019181892B818308959F3F39F04F5FC6 +:104310004E3041F051915813F8CF0DC05111F7CFE5 +:10432000942FF5CF9F3F39F0F901E90FF11D97FD6B +:10433000FA9582830895089590911501992321F0AB +:1043400090911601911109C0209117013091180127 +:10435000F9013296205F3F4F1FC0982F9695969592 +:1043600096959F30F0F4E0911701F0911801E90F54 +:10437000F11D877021E030E0A90102C0440F551FF4 +:104380008A95E2F7CA0180959181892381830895F6 +:104390003196E217F30729F090819813F9CF108234 +:1043A000F7CF089581E090E0E0911701F0911801B6 +:1043B000E80FF91F1082019680319105A9F7089541 +:1043C0009091F102892B8093F1020895809590914C +:1043D000F10289238093F10208951092F102089569 +:1043E0009091F002892B8093F0020895809590912E +:1043F000F00289238093F00208951092F00208954C +:104400009091EF02892B8093EF020895809590910F +:10441000EF0289238093EF0208951092EF0208952E +:104420008093DE0208951092DE02089580911701B4 +:1044300090911801FC0131969C01205F3F4F80E074 +:10444000919191118F5FE217F307D1F70895E091F1 +:104450001701F09118018091F1028083E09117011A +:10446000F091180190818091F002892B8083E09176 +:104470001701F091180190818091EF02892B8083C0 +:104480008091DE02882361F0E0911701F09118011C +:104490009081892B80830E94162281111092DE0266 +:1044A00080911701909118010C940C1720E000974F +:1044B00039F0AC0141505109842395232F5FF7CF88 +:1044C000822F089580911303843039F11092F30202 +:1044D00020E488E190E00FB6F894A89580936000FE +:1044E0000FBE2093600080E00E94F10280E00E94F5 +:1044F000100983B7817F846083BF83B7816083BFE6 +:104500007894889583B78E7F83BF88E10FB6F8943F +:1045100080936000109260000FBE08950895089582 +:1045200080E00E94F1020E948E220E946B090E948C +:104530008F220E94F00991E0811101C090E0892F43 +:1045400008950E94E21B80E00E94F1020E940A2866 +:104550000E9400170C9410091F920F920FB60F9231 +:1045600011248F939F93AF93BF938091F302811196 +:1045700013C08091F4029091F502A091F602B091DF +:10458000F7024196A11DB11D8093F4029093F502AC +:10459000A093F602B093F702BF91AF919F918F91D4 +:1045A0000F900FBE0F901F90189582E084BD93E08E +:1045B00095BD9AEF97BD80936E0008952FB7F8943C +:1045C0008091F4029091F502A091F602B091F70269 +:1045D0002FBF0895CF92DF92EF92FF920F931F9318 +:1045E0002FB7F8944091F4025091F5026091F602D1 +:1045F0007091F7022FBF6A017B01EE24FF248C012A +:1046000020E030E0C016D106E206F30610F4415077 +:1046100051099A01281B390BC9011F910F91FF9075 +:10462000EF90DF90CF9008951F920F920FB60F92E8 +:1046300011248F939F93AF93BF938091F402909135 +:10464000F502A091F602B091F7020196A11DB11DED +:104650008093F4029093F502A093F602B093F702D0 +:10466000BF91AF919F918F910F900FBE0F901F90B0 +:1046700018950E94FD13F8942FEF87EA91E62150D8 +:1046800080409040E1F700C0000087E090EBDC0143 +:1046900080931E0390931F03A0932003B0932103E4 +:1046A0009CE088E10FB6F894A895809360000FBE57 +:1046B00090936000FFCF0E949A23811102C00E9454 +:1046C00076230E94A5238093F2020E94AD2380935B +:1046D0001C0387FB882780F9809316010E94A92379 +:1046E000682F70E080E090E00C94A21F6DEE7EEFEA +:1046F00080E090E00E94C12C60E082E090E00E94A7 +:10470000AF2C60E083E090E00E94AF2C60E084E09A +:1047100090E00E94AF2C60E085E090E00E94AF2C1A +:1047200060E086E090E00E94AF2C6FEF87E090E0C1 +:104730000C94AF2C80E090E00E94A92C21E08D3EEB +:104740009E4F09F020E0822F089582E090E00C94C3 +:10475000A12C83E090E00C94A12C84E090E00C94D8 +:10476000A12C682F84E090E00C94AF2C86E090E0C0 +:104770000C94A12C682F86E090E00C94AF2C87E07D +:1047800090E00C94A12C682F87E090E00C94AF2C63 +:104790008091FA0280FF0BC060911C0185E0689F48 +:1047A000B001112475956795759567952BC081FFAC +:1047B00009C060911C0185E0689FB00111247595C6 +:1047C000679520C082FF07C060911C0185E0689F4B +:1047D000B001112417C09091FB029923D1F0609190 +:1047E0001B01961788F720911C0185E0289F9001F6 +:1047F0001124929FA001939F500D112470E0CA01D3 +:104800000E94872C6038710540F46115710539F0FC +:1048100002C065E070E0862F08958FE7089581E07B +:1048200008958091FA0280FF08C060911A0170E03B +:10483000759567957595679521C081FF06C0609154 +:104840001A0170E07595679519C082FF04C06091E8 +:104850001A0170E010C09091FB029923C1F06091A1 +:1048600019019617A0F780911A01899FC0011124A0 +:1048700070E00E94872C6038710528F4611571057D +:1048800021F0862F08958FE7089581E0089561E073 +:1048900070E0F4CF803F21F40E94C823819504C0CA +:1048A000813F29F40E94C8238093FE020895823F2D +:1048B00021F40E94C823819504C0833F29F40E94FB +:1048C000C8238093FD020895893F19F40E941124A2 +:1048D00005C08A3F31F40E94112481958093FF0224 +:1048E00008958B3F21F40E941124819504C08C3FD0 +:1048F00029F40E941124809300030895843F21F439 +:104900008091FC02816017C0853F21F48091FC02F8 +:10491000826011C0863F21F48091FC0284600BC04C +:10492000873F21F48091FC02886005C0883F31F404 +:104930008091FC0280618093FC0208958D3F21F4F8 +:104940008091FA0281600BC08E3F21F48091FA02BF +:10495000826005C08F3F29F48091FA0284608093C1 +:10496000FA020895803F39F48091FE0287FF6CC0FF +:104970001092FE0269C0813F29F48091FE02181650 +:10498000BCF362C09091FD02823F29F497FF5CC0A6 +:104990001092FD0259C0833F19F41916CCF354C08C +:1049A000893F41F48091FF0218160CF04DC010921F +:1049B000FF024AC08A3F29F48091FF0287FF44C06A +:1049C000F6CF8B3F39F48091000387FF3DC01092F2 +:1049D00000033AC08C3F29F4809100031816BCF301 +:1049E00033C0843F21F48091FC028E7F17C0853F45 +:1049F00021F48091FC028D7F11C0863F21F48091CB +:104A0000FC028B7F0BC0873F21F48091FC02877FE3 +:104A100005C0883F31F48091FC028F7E8093FC02B8 +:104A200013C08D3F21F48091FA028E7F0BC08E3F20 +:104A300021F48091FA028D7F05C08F3F29F4809187 +:104A4000FA028B7F8093FA028091FD0281110EC0E1 +:104A50008091FE0281110AC08091FF02811106C07F +:104A600080910003811102C01092FB0208958CEF27 +:104A700092E00E9417170E94DE229093F902809321 +:104A8000F80208951F93CF93DF938091F8029091DD +:104A9000F9020E94EA22AC019091FB02992321F0D5 +:104AA00020911D0130E006C020911E018AE0289F60 +:104AB000900111244217530708F486C08091FD022B +:104AC000C091FE02D091FF0210910003811107C036 +:104AD000C11176C0D11174C0111172C075C09F3F51 +:104AE00019F09F5F9093FB02181624F40E94C823CC +:104AF0008093FD028091FD0287FF05C00E94C823BC +:104B000081958093FD021C1624F40E94C823809393 +:104B1000FE028091FE0287FF05C00E94C823819596 +:104B20008093FE026091FD02662339F1C091FE027E +:104B3000CC2319F1772767FD7095872F972F0E9457 +:104B4000A92923E333E343E35FE30E94B92A0E94E8 +:104B500076296093FD026C2F772767FD7095872F6C +:104B6000972F0E94A92923E333E343E35FE30E94E5 +:104B7000B92A0E9476296093FE021D1624F40E9431 +:104B800011248093FF028091FF0287FF05C00E94DD +:104B9000112481958093FF02111624F40E941124A0 +:104BA000809300038091000387FF05C00E941124B9 +:104BB000819580930003DF91CF911F910C9437254D +:104BC0009F3F09F08ECF96CFDF91CF911F9108952F +:104BD000ECEFF2E085E0DF011D928A95E9F7109293 +:104BE000FB021092FA020895833081F128F481309B +:104BF00059F08230D1F00895853009F449C0B8F1F8 +:104C0000863009F456C0089580911E01262F30E0A9 +:104C1000280F311D2F3F310524F4680F60931E01CA +:104C200008958FEF80931E01089580911D01262F16 +:104C300030E0280F311D2F3F310524F4680F6093B9 +:104C40001D0108958FEF80931D01089580911C012F +:104C5000262F30E0280F311D2F3F310524F4680F37 +:104C600060931C0108958FEF80931C01089580913B +:104C70001B01262F30E0280F311D2F3F310524F472 +:104C8000680F60931B0108958FEF80931B010895B7 +:104C900080911A01262F30E0280F311D2F3F31055A +:104CA00024F4680F60931A0108958FEF80931A011E +:104CB000089580911901262F30E0280F311D2F3FD4 +:104CC000310524F4680F6093190108958FEF8093E4 +:104CD00019010895833011F128F4813049F08230B0 +:104CE00091F00895853081F120F18630C1F1089569 +:104CF00080911E01681720F4861B80931E01089581 +:104D000010921E01089580911D01681720F4861BE2 +:104D100080931D01089510921D01089580911C013A +:104D2000681720F4861B80931C01089510921C01C3 +:104D3000089580911B01681720F4861B80931B0146 +:104D4000089510921B01089580911A01681720F4AC +:104D5000861B80931A01089510921A01089580917C +:104D60001901681720F4861B809319010895109289 +:104D7000190108950F931F93873208F048C08E31B0 +:104D800008F08DC0803109F477C008F5873009F448 +:104D900061C068F4863009F09DC08091F202817F85 +:104DA0008E7F8093F20281E08093020394C08B3067 +:104DB00009F489C08E3009F08DC08091F20282FB27 +:104DC000222720F991E0922790FB82F95EC086317C +:104DD00009F479C060F4813109F07CC00E94E21BC3 +:104DE0009091160181E08927809316016CC089316A +:104DF00009F469C08B3109F06DC08091F20281FB2A +:104E0000222720F991E0922790FB81F93EC0883358 +:104E100009F459C050F4893209F457C0853309F4B4 +:104E200054C0873209F451C055C0833409F44DC0D1 +:104E300028F48A3308F44EC0895332C0883409F00C +:104E400049C00E94E21B0E94200A0E94E4030E94C3 +:104E5000392339C09091F202892F8095817080FBAF +:104E600090F929F0966098609093F20234C0997F8F +:104E7000977F9093F20227C08091F20283FB222752 +:104E800020F991E0922790FB83F98093F202992315 +:104E9000D1F08091F20281608093F20214C08D51B2 +:104EA00041E050E060E070E08A019B0104C0000F27 +:104EB000111F221F331F8A95D2F7C901B8010E9422 +:104EC000A21F0E94E21B81E006C061E070E080E06A +:104ED00090E0F5CF80E01F910F91089580E0089554 +:104EE00080E00895CF93C82F80910203813069F04C +:104EF00018F08230C9F184C0E0911701F0911801D7 +:104F00008081823209F07EC007C0E0911701F091E4 +:104F100018018081823261F48C2F0E946E278111EA +:104F200004C08C2F0E94BA261DC081E090E01AC0F8 +:104F30008C2F0E947027811114C0C43179F048F47D +:104F4000CB3079F0C03109F061C082E08093020378 +:104F500008C0C93219F0C83321F058C010920203BA +:104F600055C081E0817054C0C93291F120F5C4313F +:104F700079F1B0F4C73009F047C08EE180931E018B +:104F800082E380931D018AE080931C0184E1809379 +:104F90001B0188E080931A0188E28093190134C0D4 +:104FA000CE51C63088F5EC2FF0E0EA54FE4F8081F8 +:104FB0008093010329C0CE34E9F020F4CB3421F5ED +:104FC0006AE013C0C13579F0C235F1F461E00DC07B +:104FD00080910103882319F01092010315C081E02C +:104FE0008093020315C061E006C0809101030E9416 +:104FF000F4250AC06AE0809101030E946A2604C079 +:105000001092020380E004C081E002C080E0AACFD9 +:10501000CF9108950E949A23811102C00E947623A5 +:105020000E94B62380931D0380FF02C0869501C0B5 +:1050300080E00C94F10280911D03982F9695292F02 +:1050400030E0233031054CF49F5F990F8170892B3C +:10505000816080931D030E94BA2380911D03869571 +:105060000C94F10280911D03982F969591F0915820 +:10507000990F8170892B80931D038E7F91E009F435 +:1050800090E080911D0390FB80F980931D030E94A6 +:10509000BA2380911D0386950C94F10280911D0323 +:1050A000982F909590FB80F980931D030E94BA235E +:1050B00080911D0380FF02C0869501C080E00C94A2 +:1050C000F10290911D03892F86958F5F8F779170E4 +:1050D000843028F4880F892B80931D0302C090939D +:1050E0001D0380911D038E7F91E009F490E0809173 +:1050F0001D0390FB80F980931D030E94BA238091C9 +:105100001D0386950C94F10220911D03922F969514 +:105110008927982F990F822F8170892B80931D03E7 +:105120008E7F91E009F490E080911D0390FB80F95F +:1051300080931D030E94BA2380911D0386950C94D1 +:10514000F10280911D03869508955058BB27AA2728 +:105150000ED0D1C1C2D130F0C7D120F031F49F3F81 +:1051600011F41EF4B7C10EF4E095E7FB9FC1E92FDF +:10517000D3D180F3BA17620773078407950718F035 +:1051800071F49EF5EBC10EF4E0950B2EBA2FA02D15 +:105190000B01B90190010C01CA01A0011124FF27E4 +:1051A000591B99F0593F50F4503E68F11A16F040DF +:1051B000A22F232F342F4427585FF3CF46953795DE +:1051C0002795A795F0405395C9F77EF41F16BA0BA3 +:1051D000620B730B840BBAF09150A1F0FF0FBB1F51 +:1051E000661F771F881FC2F70EC0BA0F621F731F9A +:1051F000841F48F4879577956795B795F7959E3FF7 +:1052000008F0B3CF9395880F08F09927EE0F979584 +:105210008795089527D108F481E008950CD06BC1DB +:1052200063D140F05AD130F021F45F3F19F03EC114 +:10523000511195C14FC170D198F39923C9F35523EA +:10524000B1F3951B550BBB27AA2762177307840779 +:1052500038F09F5F5F4F220F331F441FAA1FA9F32F +:1052600033D00E2E3AF0E0E830D091505040E69521 +:10527000001CCAF729D0FE2F27D0660F771F881F82 +:10528000BB1F261737074807AB07B0E809F0BB0B71 +:10529000802DBF01FF2793585F4F2AF09E3F510595 +:1052A00068F004C15CC15F3FECF3983EDCF3869587 +:1052B00077956795B795F7959F5FC9F7880F911D0B +:1052C0009695879597F90895E1E0660F771F881FF7 +:1052D000BB1F621773078407BA0720F0621B730BAA +:1052E000840BBA0BEE1F88F7E095089504D06894FC +:1052F000B11135C1089518D188F09F5790F0B92F9A +:105300009927B751A0F0D1F0660F771F881F991F1A +:105310001AF0BA95C9F712C0B13081F01FD1B1E0CF +:1053200008951CC1672F782F8827B85F39F0B93FDF +:10533000CCF3869577956795B395D9F73EF490951C +:105340008095709561957F4F8F4F9F4F0895E8949A +:1053500009C097FB3EF490958095709561957F4FBD +:105360008F4F9F4F9923A9F0F92F96E9BB2793956B +:10537000F695879577956795B795F111F8CFFAF47B +:10538000BB0F11F460FF1BC06F5F7F4F8F4F9F4FAC +:1053900016C0882311F096E911C0772321F09EE80A +:1053A000872F762F05C0662371F096E8862F70E070 +:1053B00060E02AF09A95660F771F881FDAF7880F4A +:1053C0009695879597F9089588D018F011F08CD0AC +:1053D00038F480C0C4C0E92F9FD0B0F35523C9F37F +:1053E000E7FB6217730784079507A8F199F3E92F84 +:1053F000FF2788232AF03197660F771F881FDAF777 +:10540000952F5527442332F091505040220F331FDF +:10541000441FD2F7BB27E91BF50B621B730B840BF0 +:10542000B109C1F222F4620F731F841FB11D3197BD +:105430002AF0660F771F881FBB1FEFCF9150504097 +:105440005AF041F0882332F0660F771F881F915081 +:105450005040C1F7939530C08695779567959F5FCB +:10546000D9F7F8CF990F0008550FAA0BE0E8FEEF27 +:1054700016161706E807F907C0F012161306E40718 +:10548000F50798F0621B730B840B950B39F40A2611 +:1054900061F0232B242B252B21F408950A2609F4EF +:1054A000A140A6958FEF811D811D089597F99F67F3 +:1054B00080E870E060E008959F3F31F0915020F463 +:1054C000879577956795B795880F911D96958795E0 +:1054D00097F908959FEF80EC089500240A9416161A +:1054E000170618060906089500240A9412161306D2 +:1054F000140605060895092E0394000C11F4882360 +:1055000052F0BB0F40F4BF2B11F460FF04C06F5F7B +:105510007F4F8F4F9F4F089557FD9058440F551F51 +:1055200059F05F3F71F04795880F97FB991F61F025 +:105530009F3F79F087950895121613061406551F9C +:10554000F2CF4695F1DF08C0161617061806991F08 +:10555000F1CF86957105610508940895E894BB27FD +:1055600066277727CB0197F908957CDF08F48FEF42 +:1055700008950BD0C0CFB1DF28F0B6DF18F0952327 +:1055800009F094CFA7CF1124EACFC6DFA0F3959FEF +:10559000D1F3950F50E0551F629FF001729FBB271A +:1055A000F00DB11D639FAA27F00DB11DAA1F649FC6 +:1055B0006627B00DA11D661F829F2227B00DA11D79 +:1055C000621F739FB00DA11D621F839FA00D611DFF +:1055D000221F749F3327A00D611D231F849F600D20 +:1055E000211D822F762F6A2F11249F5750408AF059 +:1055F000E1F088234AF0EE0FFF1FBB1F661F771FE5 +:10560000881F91505040A9F79E3F510570F04ECF32 +:10561000A6CF5F3FECF3983EDCF3869577956795D0 +:10562000B795F795E7959F5FC1F7FE2B880F911D02 +:105630009695879597F90895FA01EE0FFF1F30961A +:105640002105310599F16115710561F48038BFE3D9 +:105650009B0749F168949038810561F08038BFEF6D +:105660009B0741F0992342F5FF3FE10531052105F4 +:1056700011F1E8940894E795D901AA2329F4AB2FF6 +:10568000BE2FF85FD0F310C0FF5F70F4A695E0F76F +:10569000F73950F019F0FF3A38F49F779F930CD008 +:1056A0000F9007FC905808953EF014CF60E070E032 +:1056B00080E89FE308954FE79F775F934F933F9371 +:1056C0002F939ED02F913F914F915F9152DF05C054 +:1056D00019F40EF0EBCE42CFFDCE26DFC8F396389C +:1056E000C0F707F80F92E8942BE33AEA48EB5FE73C +:1056F0004EDF0F920F920F924DB75EB70F92C0D050 +:10570000EAE0F1E016D04F915F91EF91FF91E595BE +:10571000EE1FFF1F49F0FE57E0684427EE0F441FBD +:10572000FA95E1F74195550B32D00F9007FE26C050 +:105730000895DF93CF931F930F93FF92EF92DF9221 +:105740007B018C01689405C0DA2EEF011EDFFE019B +:10575000E894A5912591359145915591AEF3EF01CE +:1057600006DDFE019701A801DA9479F7DF90EF904A +:10577000FF900F911F91CF91DF9108959B01AC0194 +:1057800060E070E080E89FE349CD90CE95CECCDE1E +:10579000E8F39923D9F3940F511DBBF39150504076 +:1057A00094F059F0882332F0660F771F881F9150CC +:1057B0005040C1F79E3F510544F7880F911D9695C3 +:1057C000879597F908955F3FACF0983E9CF0BB2712 +:1057D000869577956795B79508F4B1609395C1F76D +:1057E000BB0F58F711F460FFE8CF6F5F7F4F8F4F0B +:1057F0009F4FE3CFB4CE0EF05FCE6CCE689456CE02 +:1058000093DEC8F39923D1F3C6F3DF93CF931F93AD +:105810000F93FF92C92FDD2788232AF02197660F67 +:10582000771F881FDAF720E030E040E85FEB9FE366 +:10583000883920F0803E30F021968F7787DCE2E3D4 +:10584000F1E003C083DCEFE5F1E073DF8B01BE0123 +:10585000EC01FB2E6F5771097595771F880B990B1B +:1058600078DD28E132E741E35FE38FDEAF2D980179 +:10587000AE01FF900F911F91CF91DF9178DC3BCE6D +:10588000FA01DC01AA0FBB1F9B01AC01BF5728F432 +:1058900022273327442750781FC0B75188F4AB2FF5 +:1058A0000024469537952795011CA395D2F3002037 +:1058B00069F0220F331F441FB395DAF30DD045CCA6 +:1058C00061307105A0E88A07B94630F49B01AC014C +:1058D0006627772788279078309621F020833183B8 +:1058E000428353830895AA1BBB1B51E107C0AA1F23 +:1058F000BB1FA617B70710F0A61BB70B881F991F71 +:105900005A95A9F780959095BC01CD01089597FB14 +:10591000072E16F4009407D077FD09D00E94732C4F +:1059200007FC05D03EF4909581959F4F08957095A2 +:1059300061957F4F0895EE0FFF1F0590F491E02DC4 +:105940000994F999FECF92BD81BDF89A992780B547 +:105950000895A8E1B0E042E050E00C94C92C262F55 +:10596000F999FECF92BD81BDF89A019700B4021655 +:1059700039F01FBA20BD0FB6F894FA9AF99A0FBE03 +:1059800008950196272F0E94B02C0C94AF2CDC01B7 +:10599000CB01FC01F999FECF06C0F2BDE1BDF89A3A +:1059A000319600B40D9241505040B8F70895F894E4 +:0259B000FFCF27 +:1059B200640007000CFF0000003F64041092106FA7 +:1059C200103B1007100101DF022808140A321E00E2 +:1059D20002040507090B0C0E1011131517181A1CD7 +:1059E2001D1F2123242628292B2D2F303234353711 +:1059F200393B1F0F03764F5F6F7F4969437909591E +:105A020053633149803F5D8B803FF8BF803FCAE1DD +:105A1200803F73ED803FCAE1803FF8BF803F5D8BDE +:105A2200803F3149803F0000803FF16D7F3F75EA42 +:105A32007E3F4C827E3F833F7E3F84287E3F833F72 +:105A42007E3F4C827E3F75EA7E3FF16D7F3F0000D4 +:105A5200803F3F4D3639ED04A0046A043104C4038B +:105A6200DD03F6030F04010203040506070809001B +:00000001FF diff --git a/keyboards/planck/keymaps/angerthosenear/keymap.c b/keyboards/planck/keymaps/angerthosenear/keymap.c new file mode 100644 index 000000000..aa75a6771 --- /dev/null +++ b/keyboards/planck/keymaps/angerthosenear/keymap.c @@ -0,0 +1,39 @@ +#include "keymap.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = { /* Qwerty */ + {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT}, + {KC_LCTL, KC_LGUI, KC_LALT, BL_STEP, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + // Space is repeated to accommodate for both spacebar wiring positions +}, +[1] = { /* WASD + NumPad */ + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PSLS, KC_PMNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PAST, KC_PPLS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PDOT, KC_PENT, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_SPC, KC_P0, FUNC(1), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +}, +[2] = { /* RAISE */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS}, + {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[3] = { /* LOWER */ + {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_DEL}, + {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END} +} +}; + + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE + [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER + + [3] = ACTION_DEFAULT_LAYER_SET(0), + [4] = ACTION_DEFAULT_LAYER_SET(1), + +}; diff --git a/keyboards/planck/keymaps/austin/Makefile b/keyboards/planck/keymaps/austin/Makefile new file mode 100644 index 000000000..581e08cd0 --- /dev/null +++ b/keyboards/planck/keymaps/austin/Makefile @@ -0,0 +1,25 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/austin/compiled.hex b/keyboards/planck/keymaps/austin/compiled.hex new file mode 100644 index 000000000..fcd925dae --- /dev/null +++ b/keyboards/planck/keymaps/austin/compiled.hex @@ -0,0 +1,1449 @@ +:100000000C9496020C94DA020C94DA020C94DA0244 +:100010000C94DA020C94DA020C94DA020C94DA02F0 +:100020000C94DA020C94DA020C9478140C944A15AD +:100030000C94AC220C94DA020C94DA020C94DA02DE +:100040000C94DA020C943C030C94DA020C94DA025D +:100050000C94DA020C9414230C94DA020C94DA0255 +:100060000C94DA020C94DA020C94DA020C94DA02A0 +:100070000C94DA020C94DA020C94DA020C94DA0290 +:100080000C94ED0A0C94DA020C94DA020C94DA0265 +:100090000C94DA020C94DA020C94DA020C94DA0270 +:1000A0000C94DA020C94DA020C94DA02B715D91522 +:1000B000C716D915C7161E164116C7169616A916C5 +:1000C00093199319C219C219011A211A771B771BA8 +:1000D0002C1A771BDC1ADC1A431B4C1B771B711B79 +:1000E000E91AE91AE91AE91AE91AE91AE91AE91AF8 +:1000F000E91AE91AE91AE91AE91AE91AE91AE91AE8 +:10010000F91A071B0E1B151B1F1B07634236B79BF3 +:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 +:100120005763BD6DEDFD753EF6177231BF000000DF +:10013000803F08000000BE922449123EABAAAA2AC2 +:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD +:1001500000000000BF000000803F00000000000819 +:100160004178D3BB4387D1133D190E3CC3BD4282B6 +:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 +:10018000FFBE01C4FF7F3F00000000000000000030 +:1001900000000000000000010204060A0F17202CD6 +:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 +:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF +:1001C0000201000000000000000000000000F1A299 +:1001D000F1A3018C028C2B0014001A0008001500FA +:1001E00017001C0018000C00120013002A00290040 +:1001F00004001600070009000A000B000D000E00A5 +:100200000F0033003400E1001D001B000600190040 +:100210000500110010003600370038002800835018 +:10022000E300E200E00002202C002C00012050003E +:10023000510052004F002B0014001A000900130057 +:100240000A000D000F0018001C0033002A002900CE +:10025000040015001600170007000B00110008002D +:100260000C0012003400E1001D001B000600190004 +:1002700005000E0010003600370038002800C300CB +:10028000E300E200E00002202C002C0001205000DE +:10029000510052004F0035001E001F0020002100B9 +:1002A0002200230024002500260027002A00010048 +:1002B0000320042048120100010001002D002E003F +:1002C0002F00300031000100440045006800690043 +:1002D0006A006B006C006D006E006F000100010091 +:1002E0000100010001000100010001000120AB003C +:1002F000AA00A900AE0035021E021F022002210240 +:100300002202230224022502260227022A000100DB +:100310000320042048120100010001002D022E02DA +:100320002F023002310201003A003B003C003D0048 +:100330003E003F0040004100420043000100010038 +:100340000100010001000220010001000100AB00DA +:10035000AA00A900AE002803540068006500200030 +:1003600050006C0061006E0063006B0020004B00C9 +:100370006500790062006F00610072006400000097 +:100380002C034F007200740068006F006C0069005D +:100390006E0065006100720020004B00650079006E +:1003A00062006F00610072006400730000000403CB +:1003B000090409026D00040100A0FA09040000010B +:1003C00003010100092111010001223F00070581FD +:1003D0000308000A090401000103010200092111B8 +:1003E000010001224D000705820308000A090402EA +:1003F000000103000000092111010001223600075D +:1004000005830308000A0904030001030000000932 +:100410002111010001223900070584031000011297 +:1004200001100100000008EDFE6060010001020003 +:100430000105010906A101050719E029E7150025B5 +:1004400001950875018102050819012905950575B1 +:10045000019102950175039101050719002977158E +:10046000002501957875018102C005010980A1016F +:10047000850216010026B7001A01002AB700751080 +:1004800095018100C0050C0901A101850316010039 +:10049000269C021A01002A9C02751095018100C059 +:1004A00005010902A1010901A10005091901290598 +:1004B00015002501950575018102950175038101DE +:1004C0000501093009311581257F950275088106DE +:1004D00009381581257F950175088106050C0A38B4 +:1004E000021581257F950175088106C0C0050109A7 +:1004F00006A101050719E029E715002501950875F2 +:1005000001810295017508810105081901290595E8 +:1005100005750191029501750391010507190029DF +:10052000FF150025FF950675088100C011241FBE28 +:10053000CFEFDAE0DEBFCDBF04B603FE24C080916A +:100540001E0390911F03A0912003B09121038730D7 +:10055000904BA740B04BB9F410921E0310921F03AA +:10056000109220031092210314BE84B7877F84BFAA +:1005700088E10FB6F89480936000109260000FBE7F +:10058000E0E0F8E3099511E0A0E0B1E0E2EBF9E585 +:1005900002C005900D92A03CB107D9F713E0A0EC82 +:1005A000B1E001C01D92AE31B107E1F70E94BE116A +:1005B0000C94D72C0C9400000895089581E00895C0 +:1005C00008950C94DD020C94DE020C94E0020E946B +:1005D000A12823E030E0281B3109220F2093C40119 +:1005E0000895282F2F9880918000211108C0877FBF +:1005F0008093800010928D0010928C001BC0886048 +:1006000080938000233019F48FEF9FEF0FC083E0B9 +:1006100090E0821B9109880F991F2FEF3FEFA901EE +:1006200002C0569547958A95E2F7CA0190938D00CE +:1006300080938C000C94E7020E94E70284E0809390 +:10064000C3011092C0010895279A2F988FEF9FEF52 +:1006500090938700809386008AE08093800089E1F0 +:10066000809381000E940A280C941C030E9424039A +:100670006E9A769A0C94DC021F920F920FB60F922C +:1006800011242F933F938F939F93EF93FF93E091C8 +:10069000C101F091C201CF0101969093C2018093F4 +:1006A000C1010090C30102C0F695E7950A94E2F7F4 +:1006B000EF738091C001823019F4E03251F404C02C +:1006C000813039F4EF3329F480916F008D7F80936E +:1006D0006F00F0E0E457FE4FE49121E031E0E29F4B +:1006E000C001E39F900D11240090C40102C09695B3 +:1006F00087950A94E2F790938D0080938C00FF9188 +:10070000EF919F918F913F912F910F900FBE0F907E +:100710001F90189581E008950C948A0308950C9415 +:10072000360380911502882309F448C08091D101D5 +:100730009091D201009779F40E94DE229093D20129 +:100740008093D1018091D30190E0009771F4809162 +:10075000D40190E00AC00E94EA2220910001309169 +:1007600001012817390740F329C00197880F991F05 +:10077000880F991FFC01EB52FE4F608171818281CD +:1007800093810E94530AE091D30184E0E89FF00135 +:100790001124EB52FE4F60817181828193814FE081 +:1007A00050E00E940B0E8091D30190E00196609181 +:1007B000D40170E00E94872C8093D3010C94E10255 +:1007C000109217020C94200A0895089581E08093F6 +:1007D00017020C94E503089508958F929F92AF92AB +:1007E000BF92EF92FF920F931F93CF93DF93CDB7FA +:1007F000DEB7A3970FB6F894DEBF0FBECDBF7C0166 +:10080000FC0100811181C8010E94DB20B8010E9417 +:10081000F2058C01B7010E948C03882309F4CCC136 +:100820000032F0E51F0741F4F7018281882309F4C3 +:1008300058C00E946F0EC0C10132F0E51F0741F49D +:10084000F7018281882309F44CC00E94780EB4C15C +:100850000232F0E51F0751F4F7018281882309F481 +:1008600040C00E946B0E8111F0CFE3CF0332F0E560 +:100870001F0739F4F7018281882399F10E94E6036A +:100880009BC10432F0E51F0739F4F7018281882308 +:1008900041F10E94E00390C10532F0E51F0749F4E1 +:1008A000F70182818823E9F0809117028111F1CF4D +:1008B000E5CF0632F0E51F0739F4F701828188237E +:1008C00081F00E947F0E0AC00732F0E51F0749F44D +:1008D000F7018281882329F00E948A0E0E94EC038E +:1008E0006BC180911702811105C0F70182818111CE +:1008F000CFC018C1003E110579F4F7018281882329 +:1009000009F44DC00E94200A81E0809316021092E3 +:1009100015021092D40150C1023E110559F4F7019D +:1009200082818823E1F10E94200A1092160210921F +:10093000150242C1033E110591F4F701828188231B +:1009400071F10E94200A1092160281E08093150234 +:100950001092D3011092D2011092D1012DC1023513 +:10096000110559F4F7018281882309F425C180918A +:100970000001909101010A970DC00135110579F42C +:10098000F7018281882309F417C1809100019091B9 +:1009900001010A9690930101809300010DC14091DD +:1009A000040183E2EFE1F1E0DE01119601900D9286 +:1009B0008A95E1F7F701808121E030E02C0F3D1F9F +:1009C000280F311DC9012091020130910301FC0162 +:1009D000E20FF31F6081772767FD7095640F711D2B +:1009E000882777FD8095982F0E94A92920E030E084 +:1009F00040E451E40E940E294B015C01F701218182 +:100A000084E090E0821B9109BC01882777FD8095E6 +:100A1000982F0E94A9299B01AC01C501B4010E9435 +:100A2000A6289B01AC0160E070E080E090E40E94A9 +:100A30001C2B20E030E04CED50E40E94B92A4B0121 +:100A40005C01F70182818823D1F04FE050E0C501BD +:100A5000B4010E940B0E809116028823A1F08091B0 +:100A6000D40124E0829FF0011124EB52FE4F8082DA +:100A70009182A282B3828F5F8093D40104C0C501AA +:100A8000B4010E94530A0F3F110508F02ECF94C005 +:100A90008091D00181111FC0043130E5130709F0A6 +:100AA00051C00E948E0381E08093D0010E94DE221B +:100AB0009093CF018093CE011092C7011092C9018B +:100AC0001092C8011092CB011092CA011092CD0170 +:100AD0001092CC0171C08091CE019091CF010E9403 +:100AE000EA22883C910570F48091C701E82FF0E07C +:100AF000EE0FFF1FE853FE4F118300838F5F80933B +:100B0000C7015AC0043880E5180721F005381045A0 +:100B100001F13AC0F7018281882341F01092C501AA +:100B200082E01EC0043830E5130759F58091C501F5 +:100B3000811106C086E20E94371886E20E94FF18E3 +:100B400082E01CC00438F0E51F0741F3053810456A +:100B5000D9F4F7018281882331F01092C60180E236 +:100B60000E944E1929C08091C601811106C087E2FA +:100B70000E94371887E20E94FF1880E20E945519F0 +:100B80001BC00538104529F381E08093C50180938F +:100B9000C601C701A3960FB6F894DEBF0FBECDBF46 +:100BA000DF91CF911F910F91FF90EF90BF90AF9089 +:100BB0009F908F900C94E30280E0A3960FB6F89478 +:100BC000DEBF0FBECDBFDF91CF911F910F91FF9080 +:100BD000EF90BF90AF909F908F90089580E090E04D +:100BE000089508959CE0799FF001112490E3899F76 +:100BF000E00DF11D1124E60FF11DEE0FFF1FEA526B +:100C0000FE4F859194910895880F991FFC01E45B34 +:100C1000FF4F859194910895880F991FFC01E4532B +:100C2000FE4F8591949108950F931F93CF93DF9377 +:100C3000EC01811521E39207A0F5C11580E3D807E7 +:100C400008F0D7C0C83ED105D8F4C03ED10508F0A1 +:100C500007C2C83AD10578F4C53AD10508F06AC090 +:100C6000C130D10509F463C008F4F7C1C430D1051F +:100C700008F0F6C1F2C1CB3BD10508F466C0EDC166 +:100C8000C11590E2D90708F0AFC0C11521E0D20725 +:100C900008F0E6C1C03FD10508F4DFC18E01106540 +:100CA0001FC2C03880E5D80700F5C03790E5D907E6 +:100CB00008F0A3C0C11520E5D20709F4ACC050F478 +:100CC000CE01905480319F4008F0C7C1DF708E0183 +:100CD000106A06C2C13080E5D80709F4AEC0C4313D +:100CE00090E5D90708F4AFC0B8C1C33820E5D207F2 +:100CF00009F48EC050F4C13890E5D90709F482C0D8 +:100D000008F083C000E011EDEBC1C03181E5D807E8 +:100D100008F4A3C1C11597E5D90708F436C1CE017F +:100D200090578115904108F098C1DF7093C101E0A0 +:100D300010E0D6C1C53AD10509F494C1C63AD1052F +:100D400009F093C102E810E4CBC1C83AD10509F417 +:100D50008FC1C93AD10509F48EC1CA3AD10509F447 +:100D60008DC1CB3AD10509F48CC1CC3AD10509F437 +:100D70008BC1CD3AD10509F48AC1C03BD10509F434 +:100D800089C1CE3AD10509F488C1CF3AD10509F419 +:100D900087C1C13BD10509F486C1C23BD10509F425 +:100DA00085C1C33BD10509F484C1C43BD10509F415 +:100DB00083C1C53BD10509F482C1C63BD10509F405 +:100DC00081C1C73BD10509F480C1C83BD10509F4F5 +:100DD0007FC1C93BD10509F47EC1CA3BD10509F4E5 +:100DE0007DC100E014E47CC1CE019F700E940C061E +:100DF00078C1DD278E01106C73C1CF70DD278E01A5 +:100E0000146D6EC100E010ED6BC100E012ED68C121 +:100E100000E013ED65C10E94E21B0E94200A0E94BF +:100E2000E4038FEF94E32CE0815090402040E1F701 +:100E300000C000000E94392353C18091F2028160FA +:100E40008093F2024DC10E949A23811102C00E9438 +:100E500076230E94AD2390E090931D0380931C03A2 +:100E6000C23080E5D80721F480911C03816086C0E0 +:100E7000C43090E5D90721F480911C0382607EC0C4 +:100E8000C63020E5D20721F480911C03846076C02F +:100E9000C83080E5D80719F480911C0327C0CA30F8 +:100EA00090E5D90721F480911C03806167C0CC30A4 +:100EB00020E5D20721F480911C0380625FC0CE3010 +:100EC00080E5D80721F480911C03806457C0C031AD +:100ED00090E5D90721F480911C0380684FC0C2318E +:100EE00020E5D20729F480911C038460886046C005 +:100EF000C33080E5D80721F480911C038E7F3EC06B +:100F0000C53090E5D90721F480911C038D7F36C050 +:100F1000C73020E5D20721F480911C038B7F2EC0BF +:100F2000C93080E5D80719F480911C0326C0CB3066 +:100F300090E5D90721F480911C038F7E1FC0CD302E +:100F400020E5D20721F480911C038F7D17C0CF309C +:100F500080E5D80721F480911C038F7B0FC0C1313D +:100F600090E5D90721F480911C038F7707C0C33126 +:100F7000D04531F480911C038B7F877F80931C03C5 +:100F800080911C030E94B123ABC08D2F99278F70D5 +:100F9000992781309105D9F49E012370332702C02F +:100FA000880F991F2A95E2F79C688E0144E0000F94 +:100FB000111F4A95E1F700271370802B912B53E006 +:100FC000CC0FDD1F5A95E1F7C076DD272FC08230A8 +:100FD000910531F4DC2FCC278E01016F106A80C09F +:100FE0008330910569F4CE018370992701E010E008 +:100FF00002C0000F111F8A95E2F7C8019C680FC05C +:1010000084309105B9F4CE018370992701E010E096 +:1010100002C0000F111F8A95E2F7C8019A6823E009 +:10102000CC0FDD1F2A95E1F7C07ED7708C010C2B09 +:101030001D2B56C08530910531F4DC2FCC278E0155 +:10104000046F106A4DC0069709F04AC0CF71DD27C2 +:10105000DC2FCC278E01106243C000E010E040C0BE +:101060008E013EC001E810E43BC003E810E438C044 +:1010700002EE14E435C009EE14E432C00AEE14E4C2 +:101080002FC005EB14E42CC006EB14E429C007EBD9 +:1010900014E426C00CEC14E423C00DEC14E420C0CE +:1010A00003E815E41DC00AE815E41AC002E915E4D6 +:1010B00017C004E915E414C001E216E411C003E20C +:1010C00016E40EC004E216E40BC005E216E408C004 +:1010D00006E216E405C007E216E402C00AE216E4DE +:1010E000C801DF91CF911F910F9108959CE0799FE6 +:1010F000F001112490E3899FE00DF11D1124E60F0A +:10110000F11DEE0FFF1FEA52FE4F85919491803E34 +:101110009105E0F4803C910558F58133910509F47F +:101120006FC048F48932910509F463C08A32910591 +:1011300009F46DC072C089339105E9F082389105D8 +:10114000D1F08533910509F44DC067C0833E910508 +:1011500081F138F4803E9105B9F0823E9105D9F0D5 +:101160005CC0863E910561F1873E9105A1F155C0B5 +:101170000E940406089520911C0320FD02C021FF57 +:101180004CC080EE90E049C080911C0380FFF9CFF5 +:1011900089E390E042C080911C0382FF0EC08091E1 +:1011A0001C0384FF03C080E090E037C083EE90E032 +:1011B00034C080911C0382FFF2CF82EE90E02DC0FC +:1011C00080911C0383FF0BC080911C0384FDEBCF37 +:1011D00087EE90E022C080911C0383FFF5CF86EE5E +:1011E00090E01BC080911C0385FF07C089E290E05E +:1011F00014C080911C0385FFF9CF85E390E00DC0FA +:1012000080911C0386FF07C08AE290E006C08091AF +:101210001C0386FFF9CF81E390E00E941406089535 +:101220000C94E502E82FF0E0E25BFE4F8081E82FAE +:10123000EF70F0E082958F7021E030E0A90102C0EC +:10124000440F551F8A95E2F740A308950F931F930B +:10125000CF93DF9385B7806885BF85B7806885BFEA +:10126000C3E0D0E001E010E0FE01E25BFE4F8081D0 +:10127000E82FEF70F0E021A182958F70A80102C0E5 +:10128000440F551F8A95E2F7CA01822B81A38C2F48 +:101290000E941209219740F78BE090E061E070E036 +:1012A000FC01EE5BFE4F2081E22FEF70F0E042A1E7 +:1012B00022952F70DB0102C0AA0FBB1F2A95E2F70F +:1012C0009D01242B22A3019758F7DF91CF911F9105 +:1012D0000F910C948F03EF92FF920F931F93CF9374 +:1012E000DF9300E212E0C3E0EE24E394F12CD5E0BA +:1012F0008C2F0E9412098BE090E040E050E0FC014E +:10130000EE5BFE4F6081E62FEF70F0E020A130E051 +:1013100062956F7002C0359527956A95E2F720FDBA +:1013200009C09701082E02C0220F331F0A94E2F76A +:10133000422B532B019718F7F801929182918F015C +:101340008417950721F051834083D09305018C2F9A +:101350000E941209C15060F68091050187FD2CC0E2 +:101360008150809305018F3F39F08FE99FE001970D +:10137000F1F700C0000020C080911E0290911F0272 +:10138000909327028093260280911C0290911D0267 +:10139000909325028093240280911A0290911B025F +:1013A0009093230280932202809118029091190257 +:1013B00090932102809320020E94910381E0DF91AB +:1013C000CF911F910F91FF90EF900895E82FF0E0DB +:1013D000EE0FFF1FE05EFD4F80819181089508951B +:1013E0000F931F93CF9308E212E0C0E0F8019291AF +:1013F00082918F010E945622C80FF2E000321F072F +:10140000A9F78C2FCF911F910F9108950E949A23D5 +:10141000811102C00E9476230E94BF23809307039C +:101420003E9A809171008D7F8093710082E080935D +:1014300090008AE18093910081E080932A020895D0 +:1014400080912A02811102C00E94060A10927A023B +:1014500010927902809171008D7F8093710080914C +:1014600090008F738093900010923C0210923B0288 +:10147000109273021092740210927502109276020A +:101480001092720210927102E1E5F2E0A1E4B2E082 +:1014900011921192119211921D921D9282E0E137E8 +:1014A000F807B1F70895CF92DF92EF92FF920F9372 +:1014B0001F93CF93DF9320913B02222309F484C032 +:1014C0006B017C0180912A02811102C00E94060AF0 +:1014D00001E712E0C7E0D0E0A7019601F801929180 +:1014E0008291729162918F010E940A29811131C00B +:1014F000FE01EE0FFF1FEE0FFF1FEF5AFD4F108290 +:10150000118212821382DE01AA0FBB1FAF5BBD4F97 +:1015100011961C921E92C730D105E9F021964481A4 +:1015200055816681778140835183628373831482FE +:1015300015821682178212968D919C91139711969F +:101540009C938E9313961C921E9212973496129629 +:10155000E2CF219708F68091790290917A02019763 +:1015600097FD05C090937A028093790204C010928F +:101570007A02109279028091790290917A022091F8 +:101580007702309178022817390724F010927802F8 +:1015900010927702892BC1F4809171008D7F809326 +:1015A0007100809190008F7380939000109273026D +:1015B00010927402109275021092760210927202CA +:1015C0001092710210923B02DF91CF911F910F9107 +:1015D000FF90EF90DF90CF9008951F920F920FB67B +:1015E0000F9211244F925F926F927F928F929F92EF +:1015F000AF92BF92CF92DF92EF92FF922F933F93E1 +:101600004F935F936F937F938F939F93AF93BF930A +:10161000CF93DF93EF93FF9380913B02882309F4EC +:101620009BC1C0917902D0917A021C161D060CF064 +:1016300093C140902B0250902C0260902D0270902C +:101640002E0220E030E0A901C301B2010E94B52AB8 +:1016500018160CF065C0C130D10509F452C0809154 +:10166000770290917802BE010E94872C7C019093B2 +:1016700078028093770280903D0290903E02A09085 +:101680003F02B090400220E030E040E85FE3C50157 +:10169000B4010E94A62860933D0270933E0280939D +:1016A0003F0290934002F701EE0FFF1FEE0FFF1F66 +:1016B000EF5AFD4FA3019201608171818281938174 +:1016C0000E940E2920E030E040E05EE30E94B92A4B +:1016D0009B01AC01C501B4010E94B52A18168CF417 +:1016E000C7010196BE010E94872C909378028093D7 +:1016F000770210923D0210923E0210923F02109229 +:101700004002E0917702F0917802EE0FFF1FEE0F9A +:10171000FF1FEF5AFD4F6081718182819381D0C09C +:10172000C0907302D0907402E0907502F09076023F +:1017300020E030E0A901C701B6010E940A292197E3 +:10174000882309F4A2C0FE01EE0FFF1FEE0FFF1F5A +:10175000EF5AFD4F80809180A280B380A501940153 +:10176000C701B6010E940A2987FF31C0A501940173 +:1017700060E070E08CED93EC0E940E2920E030E0F8 +:1017800040E451E40E940E2920E030E040E05FE3B5 +:101790000E94B92A9B01AC0160E070E080E090E417 +:1017A0000E941C2B9B01AC01C501B4010E94B92A07 +:1017B0009B01AC01C701B6010E940A2987FF07C03F +:1017C000A701960160E070E08CED93E439C0A501BB +:1017D0009401C701B6010E94B52A18160CF055C035 +:1017E000A501940160E070E08CED93E40E940E2965 +:1017F00020E030E040E451E40E940E2920E030E097 +:1018000040E05FE30E94B92A9B01AC0160E070E018 +:1018100080E090E40E941C2B9B01AC01C501B40147 +:101820000E94B92A9B01AC01C701B6010E94B52AEA +:1018300018165CF5A701960160E070E08CED93EC62 +:101840000E940E2920E030E040E451E40E940E297D +:1018500020E030E040E05FE30E94B92A9B01AC0148 +:1018600060E070E080E090E40E941C2B9B01AC01E2 +:10187000C701B6010E94B92A609373027093740283 +:10188000809375029093760213C0FE01EE0FFF1F46 +:10189000EE0FFF1FEF5AFD4F80819181A281B3812E +:1018A0008093730290937402A0937502B0937602B2 +:1018B000609173027091740280917502909176022A +:1018C00020912802309129022F3F4FEF340731F049 +:1018D0002F5F3F4F30932902209328020E94950EDC +:1018E0006B017C0120E034E244EF51E40E940A29BC +:1018F00087FF08C086EFC82E88E2D82E84EFE82E36 +:1019000081E4F82E20E030E040E051E4C701B60168 +:101910000E94B92A9B01AC0160E074E284E79BE479 +:101920000E940E296B017C010E947B297093970015 +:1019300060939600209106013091070140910801C3 +:1019400050910901C701B6010E94B92A0E947B2962 +:10195000709399006093980080913C02882309F469 +:1019600033C1C0903702D0903802E0903902F09035 +:101970003A0220E030E0A901C701B6010E94B52A71 +:101980001816D4F580912802909129028F3F2FEFED +:10199000920729F001969093290280932802C701AB +:1019A000B6010E94950E20E030E040E051E40E9434 +:1019B000B92A9B01AC0160E074E284E79BE40E94D9 +:1019C0000E296B017C010E947B2970939700609324 +:1019D0009600209106013091070140910801509135 +:1019E0000901C701B6010E94B92A0E947B297093A0 +:1019F00099006093980008C010929700109296008A +:101A00001092990010929800609131027091320208 +:101A10006F5F7F4F70933202609331022091960086 +:101A20003091970080E090E0232BF1F0C091960078 +:101A3000D09197000E94A7296B017C01BE0180E034 +:101A400090E00E94A7299B01AC0160913302709144 +:101A5000340280913502909136020E940E2920E0D6 +:101A60003FEF4FE757E410C00E94A7296B017C01AC +:101A700020E030EE4FEF54E4609133027091340275 +:101A800080913502909136020E94B92A9B01AC01E7 +:101A9000C701B6010E94B52A87FD96C080912F022A +:101AA0008F5F80932F0290E0209103033091040315 +:101AB00082179307A0F080910E03882319F01092EB +:101AC0002F020DC0809171008D7F809371008091F5 +:101AD00090008F738093900010923C027DC08091A3 +:101AE0003002C0912F02811128C0C0900803D0900D +:101AF0000903E0900A03F0900B0320E030E0A90115 +:101B0000C701B6010E94B52A1816BCF481E0809383 +:101B1000300210923702109238021092390210925D +:101B20003A02C0923302D0923402E0923502F0922F +:101B30003602C150C0932F0243C01092300210925F +:101B4000290210922802E0910503F091060348E073 +:101B5000C49FE00DF11D112480819181A281B38188 +:101B60008093370290933802A0933902B0933A02DF +:101B700020E030E040E85EE36481758186819781F2 +:101B80000E94B92A6B017C0180910A01682F70E0E4 +:101B900080E090E00E94A72920E030E048EC52E489 +:101BA0000E940E299B01AC01C701B6010E94B92A0F +:101BB000609333027093340280933502909336021F +:101BC00010923202109231028091070380FD04C00E +:101BD00010923C0210923B02FF91EF91DF91CF9166 +:101BE000BF91AF919F918F917F916F915F914F9135 +:101BF0003F912F91FF90EF90DF90CF90BF90AF90EB +:101C00009F908F907F906F905F904F900F900FBE3E +:101C10000F901F901895CF92DF92EF92FF92CF9383 +:101C2000DF936B017C01EA0180912A02811102C0DD +:101C30000E94060A8091070380FF46C080917902C6 +:101C400090917A0208970CF03FC0809171008D7FCF +:101C50008093710080913C0281110E94200A81E0F2 +:101C600080933B02109229021092280220E030E07B +:101C7000A901C701B6010E94B52A1816DCF48091AB +:101C8000790290917A02FC01EE0FFF1FEE0FFF1F09 +:101C9000EF5AFD4FC082D182E282F382FC01EE0F47 +:101CA000FF1FEF5BFD4FD183C083019690937A02B3 +:101CB000809379028091710082608093710080919D +:101CC0009000806880939000DF91CF91FF90EF901B +:101CD000DF90CF90089580910703817008958091DF +:101CE00007038160809307030E94C3230C94EB03D6 +:101CF000809107038E7F809307030C94C323809108 +:101D00007B0290E0019666E070E00E94872C809351 +:101D10007B02089580917B0290E0019766E070E07D +:101D20000E94872C80937B0208958F929F92AF929E +:101D3000BF92CF92DF92EF92FF920F931F93CF93B8 +:101D4000DF936B017C01C0912802D0912902BE0172 +:101D500080E090E00E94A7294B015C01A701960159 +:101D600060E070E08CE594E40E940E299B01AC01D8 +:101D7000C501B4010E94B92A0E947B2920917B02EF +:101D8000233009F473C028F4222351F02130E9F004 +:101D90002CC1243009F4A0C0253009F4E0C025C1CD +:101DA00080E090E0A0E0BFE38093060190930701FC +:101DB000A0930801B093090110922B0210922C02FB +:101DC00010922D0210922E0210C110922B0210922E +:101DD0002C0210922D0210922E026431710540F4F3 +:101DE0006A30710560F520E030E040E85EE32BC02A +:101DF000693C710508F0AAC080E090E00E94A72924 +:101E000020E030E040EA51E40E94A52820E030E0E4 +:101E100044E353E40E940E299B01AC010E94B92ABD +:101E200020E030E040E05EE30E94B92A9B01AC0173 +:101E300060E070E080E09EE30E94A52844C020E0BE +:101E400030E040E05FE3C701B6010E94B92A6B01B0 +:101E50007C0180E090E0A0E0BEE3809306019093D7 +:101E60000701A0930801B0930901BFC010922B0293 +:101E700010922C0210922D0210922E024AE0469FE0 +:101E80009001479F300D1124C90168EB7BE00E944F +:101E9000732CBC016C5D754077FF03C07195619533 +:101EA0007109882777FD8095982F0E94A9292EE334 +:101EB00033EC4EE259E30E94B92A20E030E040ECD6 +:101EC0005EE30E94A6286093060170930701809349 +:101ED00008019093090189C010922B0210922C02E4 +:101EE00010922D0210922E02CE0183709927892B19 +:101EF000E1F0BE016170772780E090E00E94A729A1 +:101F000020E030E040E05EE30E94B92A20E030E0CB +:101F100040E45FE30E94A6286093060170930701E6 +:101F200080930801909309010CC080E090E0A0E04C +:101F3000BFE38093060190930701A0930801B0933B +:101F40000901C770DD27CD2B09F04FC010920601A3 +:101F500010920701109208011092090146C01092D8 +:101F60002B0210922C0210922D0210922E0200E0F1 +:101F700010E020E03FE30093060110930701209357 +:101F80000801309309016739710578F180E090E02C +:101F90000E94A72920E030E047E153E40E94A528F1 +:101FA00020E030E04AE754E40E940E2920E030E0CF +:101FB00048E452E40E94B92A20E030E040EA51E4CB +:101FC0000E94EB290E947629660F771F660F771F04 +:101FD000FB01EE5AFE4F2081318142815381C701BE +:101FE000B6010E94B92A6B017C01C701B601DF91DD +:101FF000CF911F910F91FF90EF90DF90CF90BF9006 +:10200000AF909F908F90089580918C020895CF9308 +:10201000DF9300D01F92CDB7DEB79C0180911303F0 +:10202000843019F593E099833B832A839093E900E8 +:102030008FEF9091E800815095FD06C095ED9A953F +:10204000F1F700008111F5CF8091E80085FF0DC008 +:1020500040E050E063E070E0CE0101960E9468121B +:102060008091E8008E778093E8000F900F900F909A +:10207000DF91CF910895CF93DF9300D01F92CDB71A +:10208000DEB720911303243021F522E029839B83BE +:102090008A8383E08093E9008FEF9091E80081507C +:1020A00095FD06C095ED9A95F1F700008111F5CFE9 +:1020B0008091E80085FF0DC040E050E063E070E0F3 +:1020C000CE0101960E9468128091E8008E7780937D +:1020D000E8000F900F900F90DF91CF91089520911D +:1020E00013032430F1F422E02093E9002FEF309124 +:1020F000E800215035FD06C035ED3A95F1F70000B6 +:102100002111F5CF2091E80025FF0BC040E050E001 +:1021100065E070E00E9468128091E8008E778093FD +:10212000E8000895CF93DF93EC019091130394306E +:1021300009F046C0809115018823D9F080911601DD +:102140008823B9F09093E9008FEF9091E8008150D7 +:1021500095FD06C095E19A95F1F700008111F5CF44 +:102160008091E80085FF2CC040E050E060E170E025 +:1021700017C081E08093E9008FEF9091E8008150D3 +:1021800095FD06C095ED9A95F1F700008111F5CF08 +:102190008091E80085FF14C040E050E068E070E006 +:1021A000CE010E9468128091E8008E778093E8004B +:1021B00080E1FE01ACE7B2E001900D928A95E1F773 +:1021C000DF91CF91089580911203811109C00E947F +:1021D000FD130E945A148091E20084608093E20013 +:1021E0000895109212030895089508950C94A12261 +:1021F00042E061EC81E00E94771342E061EC82E012 +:102200000E94771342E061EC83E00E94771342E181 +:1022100061EC84E00C94771380911503833009F40A +:1022200055C030F4813071F0823009F48EC00895C9 +:102230008A3009F47AC08B3009F460C0893009F023 +:102240009CC020C080911403813A09F096C080910F +:10225000E800877F8093E80080911803909119032C +:10226000892B21F460E18CE792E003C060E080E01C +:1022700090E070E00E94B3128091E8008B77809329 +:10228000E800089580911403813209F076C08091AE +:10229000180390911903009719F0039709F06DC086 +:1022A0008091E800877F8093E8008091E80082FDBC +:1022B00005C0809113038111F8CF5FC08091F100B8 +:1022C00080938C028091E8008B7753C08091140337 +:1022D000813A09F052C08091180390911903892B1B +:1022E00009F04BC08091E800877F8093E8008091DF +:1022F000E80080FFFCCF8091150136C08091140367 +:102300008132D9F58091180390911903892BA9F591 +:102310008091E800877F8093E8000E94AC13809151 +:102320001603809315010C94E21B809114038132F3 +:1023300021F58091E800877F8093E8000E94AC132C +:102340008091170380938D02089580911403813A40 +:10235000A1F48091E800877F8093E8008091E800F5 +:1023600080FFFCCF80918D028093F1008091E80086 +:102370008E778093E8000C94AC13089584B7877F20 +:1023800084BF88E10FB6F8948093600010926000DB +:102390000FBE90E080E80FB6F894809361009093B0 +:1023A00061000FBE0E944F170E94FD130E945A1435 +:1023B0008091E20084608093E20078940E94E016AD +:1023C0000E9451178BE091E00E94FB16809113034D +:1023D000853069F40E946222809111038823B1F351 +:1023E0000E949022882391F30E945212EFCF0E9404 +:1023F0005917ECCF292F332723303105C9F064F466 +:102400002130310581F02230310509F043C08DE6DD +:1024100090E022EB33E042C021323105F1F022326C +:10242000310541F137C082E190E02FE134E036C060 +:1024300099278130910541F08230910541F0892B37 +:1024400049F5EEEAF3E005C0E0E8F3E002C0E6E5B6 +:10245000F3E0849190E09F0121C06430D8F4E62F2E +:10246000F0E0EE0FFF1FE255FE4F2081318189E041 +:1024700090E014C0643070F470E0FB01EE0FFF1FB9 +:10248000EA55FE4F20813181FB01EE55FE4F8081E0 +:1024900090E004C080E090E020E030E0FA01318379 +:1024A0002083089580E189BD82E189BD09B400FEE1 +:1024B000FDCF8091D8008F7D8093D8008091E0007F +:1024C00082608093E0008091E00081FDFCCF089560 +:1024D000CF92DF92EF92FF920F931F93CF93DF93F0 +:1024E000EC018B016A010E94CB13811133C0C1142E +:1024F000D10439F0F60180819181081B190BC80FB6 +:10250000D91FE12CF12C0115110519F18091E8007A +:1025100085FD16C08091E8008E778093E800C11495 +:10252000D10449F0F60180819181E80EF91EF18213 +:10253000E08285E00FC00E94CB13882321F30AC0FC +:1025400089918093F10001501109FFEFEF1AFF0A02 +:10255000DACF80E0DF91CF911F910F91FF90EF9044 +:10256000DF90CF90089520911A0330911B03261716 +:10257000370748F06115710539F42091E8002E778E +:102580002093E80001C0B90140E061157105A9F18F +:1025900020911303222309F443C0253009F442C0DB +:1025A0002091E80023FD40C02091E80022FD32C0C8 +:1025B0002091E80020FFE9CF4091F3002091F20044 +:1025C00030E0342BFC01CF016115710559F0283042 +:1025D000310540F481918093F100615071092F5FC2 +:1025E0003F4FF1CF41E02830310509F040E0209124 +:1025F000E8002E772093E800C8CF4111C9CF0AC068 +:1026000080911303882361F0853061F08091E800A8 +:1026100083FD0AC08091E80082FFF2CF80E0089538 +:1026200082E0089583E0089581E0089520911A03DF +:1026300030911B032617370748F06115710539F4EF +:102640002091E8002E772093E80001C0B901FC0139 +:1026500020E06115710591F180911303882309F43D +:1026600040C0853009F43FC08091E80083FD3DC043 +:102670008091E80082FD2FC08091E80080FFE9CFC3 +:102680002091F3008091F20090E0922B611571058A +:1026900059F08830910540F424912093F10031964F +:1026A000615071090196F2CF21E0089709F020E00E +:1026B0008091E8008E778093E800CBCF2111CCCFBA +:1026C0000AC080911303882361F0853061F0809106 +:1026D000E80083FD0AC08091E80082FFF2CF80E02D +:1026E000089582E0089583E0089581E00895982F89 +:1026F000973058F59093E900981739F07091EC00F5 +:102700002091ED005091F00003C0242F762F50E06F +:1027100021FF19C03091EB003E7F3093EB003091E8 +:10272000ED003D7F3093ED003091EB003160309350 +:10273000EB007093EC002093ED005093F00020919B +:10274000EE0027FF07C09F5FD3CF8F708093E90013 +:1027500081E0089580E008958091140387FF11C0FF +:102760008091E80082FD05C0809113038111F8CFAC +:1027700011C08091E8008B770BC0809113038823F0 +:1027800049F08091E80080FFF8CF8091E8008E77D3 +:102790008093E80008952091E4003091E50095E6EB +:1027A0004091EC00842F817040FF22C08091E800AE +:1027B00080FD1CC080911303882391F0853091F037 +:1027C0008091EB0085FD10C04091E4005091E50040 +:1027D0004217530729F39A01915011F784E00895A5 +:1027E00082E0089583E0089581E0089580E00895EF +:1027F0004091E80042FFDECF08950E946B140E94D2 +:102800007314E0EEF0E0808181608083E8EDF0E019 +:1028100080818F77808319BCA7EDB0E08C918E7F8B +:102820008C9380818F7E80831092120308950F9382 +:102830001F93CF93DF930E946B140E947314C8ED13 +:10284000D0E088818F7788838881806888838881B9 +:102850008F7D888319BC1092130310920F0310927E +:1028600011031092100300EE10E0F80180818B7FBD +:10287000808388818160888342E060E080E00E94FC +:102880007713E1EEF0E080818E7F8083E2EEF0E06E +:10289000808181608083808188608083F80180816D +:1028A0008E7F8083888180618883DF91CF911F91A3 +:1028B0000F910895E8EDF0E080818F7E8083E7ED51 +:1028C000F0E080818160808384E082BF81E080933A +:1028D00012030C941714E8EDF0E080818E7F808362 +:1028E0001092E20008951092DA001092E10008952B +:1028F0001F920F920FB60F9211242F933F934F9375 +:102900005F936F937F938F939F93AF93BF93EF9357 +:10291000FF938091E10082FF0BC08091E20082FF73 +:1029200007C08091E1008B7F8093E1000E94DF1659 +:102930008091DA0080FF1FC08091D80080FF1BC00B +:102940008091DA008E7F8093DA008091D90080FF39 +:102950000DC080E189BD82E189BD09B400FEFDCFD3 +:1029600081E0809313030E94E31005C019BC10920C +:1029700013030E94F1108091E10080FF19C0809143 +:10298000E20080FF15C08091E2008E7F8093E2001C +:102990008091E20080618093E2008091D8008062A3 +:1029A0008093D80019BC85E0809313030E94F51032 +:1029B0008091E10084FF30C08091E20084FF2CC050 +:1029C00080E189BD82E189BD09B400FEFDCF80911F +:1029D000D8008F7D8093D8008091E1008F7E809316 +:1029E000E1008091E2008F7E8093E2008091E2001E +:1029F00081608093E20080910F03882311F084E0CE +:102A000007C08091E30087FD02C081E001C083E040 +:102A1000809313030E94F6108091E10083FF29C088 +:102A20008091E20083FF25C08091E100877F809341 +:102A3000E10082E08093130310920F038091E10084 +:102A40008E7F8093E1008091E2008E7F8093E20090 +:102A50008091E20080618093E20042E060E080E0EB +:102A60000E9477138091F00088608093F0000E94AC +:102A7000F410FF91EF91BF91AF919F918F917F9152 +:102A80006F915F914F913F912F910F900FBE0F90DB +:102A90001F9018951F920F920FB60F9211242F932B +:102AA0003F934F935F936F937F938F939F93AF93D6 +:102AB000BF93CF93DF93EF93FF93C091E900CF7063 +:102AC0008091EC00D82FD17080FDD0E81092E90001 +:102AD0008091F000877F8093F00078940E948E159B +:102AE0001092E9008091F00088608093F000CD2B77 +:102AF000CF70C093E900FF91EF91DF91CF91BF912B +:102B0000AF919F918F917F916F915F914F913F9185 +:102B10002F910F900FBE0F901F9018951F93CF937A +:102B2000DF93CDB7DEB7AA970FB6F894DEBF0FBE1E +:102B3000CDBFE4E1F3E088E08E0F9091F100919336 +:102B40008E13FBCF0E940C118091E80083FF1FC100 +:102B50008091140390911503492F50E04A3051059C +:102B600008F015C1FA01EA5AFF4F0C949B2C8038EB +:102B700081F0823809F00BC1809118038F70809327 +:102B8000E9008091EB0085FB882780F91092E9002D +:102B900006C0809110039091110391118260909171 +:102BA000E800977F9093E8008093F1001092F10085 +:102BB000C8C0282F2D7F09F0EAC0882319F0823081 +:102BC00061F0E5C080911603813009F0E0C09330D8 +:102BD00009F080E0809311032BC0809116038111CE +:102BE00027C0809118038F7009F4D1C08093E90049 +:102BF0002091EB0020FF1CC0933021F48091EB006A +:102C0000806214C09091EB0090619093EB0021E002 +:102C100030E0A90102C0440F551F8A95E2F74093A6 +:102C2000EA001092EA008091EB0088608093EB004C +:102C30001092E9008091E800877F86C08111A7C0CB +:102C4000109116031F778091E3008078812B809389 +:102C5000E3008091E800877F8093E8000E94AC1336 +:102C60008091E80080FFFCCF8091E3008068809332 +:102C7000E300111102C082E001C083E080931303DE +:102C800086C08058823008F082C0809116039091EF +:102C900017038C3D53E0950779F583E08A838AE238 +:102CA00089834FB7F894DE01139620E03EE051E2AD +:102CB000E32FF0E050935700E49120FF03C0E2952A +:102CC000EF703F5FEF708E2F90E0EA3010F0C79604 +:102CD00001C0C0968D939D932F5F243149F74FBF5C +:102CE0008091E800877F8093E8006AE270E0CE017F +:102CF00001960E94B31214C0AE014F5F5F4F609106 +:102D000018030E94FA11BC01009709F440C0909189 +:102D1000E800977F9093E80089819A810E941613BA +:102D20008091E8008B778093E80031C0803879F596 +:102D30008091E800877F8093E80080910F03809363 +:102D4000F1008091E8008E778093E8000E94AC1338 +:102D50001EC081111CC0909116039230C0F4809166 +:102D6000E800877F8093E80090930F030E94AC13E4 +:102D700080910F03811106C08091E30087FD02C09E +:102D800081E001C084E0809313030E94F8108091D9 +:102D9000E80083FF0AC08091E800877F8093E80005 +:102DA0008091EB0080628093EB00AA960FB6F894B6 +:102DB000DEBF0FBECDBFDF91CF911F910895089563 +:102DC000CF93809113038823A1F0C091E900CF70C5 +:102DD0009091EC00892F817090FD80E8C82B1092B3 +:102DE000E9008091E80083FD0E948E15CF70C093AA +:102DF000E900CF91089590939302809392020895F1 +:102E0000E0919202F0919302309721F00190F081CD +:102E1000E02D099480E00895E0919202F0919302F0 +:102E2000309721F00280F381E02D09940895E0911C +:102E30009202F0919302309721F00480F581E02D09 +:102E4000099408952091900230919102821793077E +:102E500071F09093910280939002E0919202F09130 +:102E60009302309721F00680F781E02D09940895B0 +:102E700020918E0230918F028217930771F0909308 +:102E80008F0280938E02E0919202F091930230972C +:102E900021F00084F185E02D0994089508950C94A3 +:102EA0004E170E94D5220E9426090E945B230C9493 +:102EB0000A285F926F927F928F929F92AF92BF92F9 +:102EC000CF92DF92EF92FF920F931F93CF93DF93F6 +:102ED00000D000D01F92CDB7DEB70E946B099DE9EC +:102EE000C92E92E0D92E03E010E0AA24A394B12CBD +:102EF000502E802F0E94E6094C01F60172906290DC +:102F00006F016826792661147104A1F4015011093A +:102F100078F78FEF89838A831B820E94DE2281608B +:102F2000782F9D838C8349815A816B818D810E948A +:102F3000091838C08091F20281FD0E94EF092BE050 +:102F400030E07501022E02C0EE0CFF1C0A94E2F77D +:102F5000C70186219721892B09F129835A828E2066 +:102F60009F2091E0892809F490E09B830E94DE2253 +:102F70008160782F9D838C8349815A816B818D81FB +:102F80000E940918000F111FF801EB56FD4F8081B8 +:102F90009181E826F926F182E08204C021503109AE +:102FA00080F6B4CF0E944225109194020E9400172F +:102FB0001817D1F00E940017809394020F900F9081 +:102FC0000F900F900F90DF91CF911F910F91FF9075 +:102FD000EF90DF90CF90BF90AF909F908F907F90B9 +:102FE0006F905F900C9410090F900F900F900F90BE +:102FF0000F90DF91CF911F910F91FF90EF90DF9095 +:10300000CF90BF90AF909F908F907F906F905F9088 +:103010000895CF93DF93CDB7DEB72B970FB6F89413 +:10302000DEBF0FBECDBF4F83588769877A878B87F6 +:10303000DE01119686E0FD0111928A95E9F785E09F +:10304000FE01379601900D928A95E1F749815A81E8 +:103050006B817C818D819E810E94801E2B960FB694 +:10306000F894DEBF0FBECDBFDF91CF910895CF930F +:10307000882309F4C2C0C82F823859F40E9400176F +:1030800081FDBBC089E30E945A210E94272289E367 +:103090000CC0833879F40E94001780FDAEC083E530 +:1030A0000E945A210E94272283E50E949C21CF91F1 +:1030B0000C942722843859F40E94001782FD9DC089 +:1030C00087E40E945A210E94272287E4EECF8CEFEA +:1030D0008C0F813A48F48C2F0E94722781118DC089 +:1030E0008C2F0E945A21E3CF80E28C0F883048F465 +:1030F000C77081E001C0880FCA95EAF70E94E021FD +:10310000D6CF8BE58C0F833078F4C53A29F0C63AD8 +:1031100031F083E890E005C081E890E002C082E8E9 +:1031200090E0CF910C94221788E58C0F833108F042 +:1031300064C0C83A39F1C93A41F1CA3A49F1CB3AC7 +:1031400051F1CC3A59F1CD3A61F1C03B69F1CE3A37 +:1031500071F1CF3A79F1C13B81F1C23B89F1C33BB7 +:1031600091F1C43B99F1C53BA1F1C63BA9F1C73B25 +:10317000B1F1C83BB9F1C93BC1F1CA3BC9F180E02B +:1031800090E038C082EE90E035C089EE90E032C029 +:103190008AEE90E02FC085EB90E02CC086EB90E0AB +:1031A00029C087EB90E026C08CEC90E023C08DEC2A +:1031B00090E020C083E891E01DC08AE891E01AC049 +:1031C00082E991E017C084E991E014C081E292E0C5 +:1031D00011C083E292E00EC084E292E00BC085E26F +:1031E00092E008C086E292E005C087E292E002C069 +:1031F0008AE292E0CF910C943817CF9108958823FA +:1032000009F44BC0823859F40E94001781FF45C071 +:1032100089E30E945A210E94272289E30CC0833847 +:1032200071F40E94001780FF38C083E50E945A2184 +:103230000E94272283E50E949C210C942722843837 +:1032400059F40E94001782FF28C087E40E945A2187 +:103250000E94272287E4EFCF9CEF980F913A58F312 +:1032600090E2980F983050F4877091E001C0990F68 +:103270008A95EAF7892F0E94E621DFCF9BE5980F18 +:10328000933020F480E090E00C942217885A833128 +:1032900020F480E090E00C9438170895882321F002 +:1032A0000E94E0210C9427220895882321F00E9497 +:1032B000E6210C94272208957F928F929F92AF92DD +:1032C000BF92CF92DF92EF92FF920F931F93CF9313 +:1032D000DF931F92CDB7DEB77C01C62E772EFC019F +:1032E000058102950F70128111110E94FD210E942B +:1032F0005321882379F0112369F080E28C0D883006 +:1033000048F082E00E943C210E94532191E0D82E97 +:10331000D92601C0D12CE72DE295EF70F0E0E05AFC +:10332000FF4F0C949B2C872D807F072D0F708823D7 +:1033300011F00295007F112389F0002309F499C14F +:1033400080E28C0D883020F4802F0E94E02103C0A1 +:10335000802F0E94F0210E9427228BC18C2D0E9479 +:10336000FF18002309F4C3C180E28C0D883020F4DB +:10337000802F0E94E62103C0802F0E94F6210E9428 +:103380002722B5C1872D807F972D9F70803211F441 +:10339000892F03C0892F8295807FCC2021F0F1E016 +:1033A000CF16A1F01DC0112339F0002319F101300F +:1033B00009F50E9410229BC1002319F0013009F485 +:1033C00096C189830E941322898110C1112321F0A3 +:1033D000063008F08CC10EC0053008F088C106C167 +:1033E000112359F0002331F0F701958190FF41C17D +:1033F0009F7095830E944E197AC1002309F4F6C08C +:103400003EC1872D86958695837090E0009719F0D0 +:10341000019761F06CC1112321F08C2D972D9370D1 +:1034200002C080E090E00E94221761C1112321F0C8 +:103430008C2D972D937002C080E090E00E94381789 +:1034400056C18C2D112319F00E944A2402C00E94FB +:10345000B2240E9437254BC1872D837009F052C0DA +:10346000111145C18C2D829586958770880F880F24 +:103470009C2D9F70892E912CA12CB12C082E04C05C +:10348000880C991CAA1CBB1C0A94D2F7C4FE14C059 +:103490000FE010E020E030E0B901A80104C0440FC3 +:1034A000551F661F771F8A95D2F7CB01BA01609529 +:1034B00070958095909503C060E070E0CB01272D5A +:1034C00026952695237030E02230310569F02330AF +:1034D000310589F0682979298A299B29213031050C +:1034E00071F00E94C81F03C1682979298A299B2984 +:1034F0000E94E41FFCC00E94C81FC501B4010E94C5 +:10350000AC1FF5C0112319F0872D817001C086957D +:10351000882309F4ECC08C2D829586958770880FDE +:10352000880F9C2D9F70892E912CA12CB12C082ED8 +:1035300004C0880C991CAA1CBB1C0A94D2F7C4FEB8 +:1035400014C00FE010E020E030E0B901A80104C091 +:10355000440F551F661F771F8A95D2F7CB01BA011A +:10356000609570958095909503C060E070E0CB0108 +:10357000272D269526952370422F50E04230510585 +:1035800069F04330510589F0682979298A299B29F6 +:103590004130510571F00E94A220A9C06829792903 +:1035A0008A299B290E94BE20A2C00E94A220C50198 +:1035B000B4010E9486209BC08C2D90E0FC01E05E4F +:1035C000F109E531F10508F050C0E059FF4F0C94C6 +:1035D0009B2C0C2D0F70872D8F71112321F00E94D1 +:1035E0001F20802F07CF0E944020802F0E94551956 +:1035F0007EC0112341F0053008F079C0872D8F710E +:103600000E94652074C0063008F071C0F7CF112306 +:1036100039F0872D8F710E941F2069C01123C9F3D3 +:10362000872D8F710E94402062C0112329F0872DC1 +:103630008F710E940A205BC00E94002058C0112395 +:1036400051F0172D1F71812F0E941F2063E0812FE1 +:103650000E9433214CC081E00E943C21023008F4DA +:1036600046C082E00E943C2142C0112331F0002379 +:1036700081F28C2D0E9437183AC0002389F28C2DDC +:103680000E94FF1834C0472D4F706C2DC7010E9457 +:10369000EE050E94241F2BC0111129C0472D4F7029 +:1036A00050E042305105B9F04CF44115510581F01C +:1036B00041305105E1F40E94322819C043305105D0 +:1036C00069F04430510599F48C2D0E9484280FC074 +:1036D0000E941B280CC00E944E2809C00E9461282D +:1036E00006C0472D4F706C2DC7010E94F105DD20EB +:1036F000F9F00E942F2180FD1BC0F70112820E9469 +:1037000029210E941F20C7010E94A71B0E94292176 +:103710000F90DF91CF911F910F91FF90EF90DF906D +:10372000CF90BF90AF909F908F907F900C9440204F +:103730000F90DF91CF911F910F91FF90EF90DF904D +:10374000CF90BF90AF909F908F907F9008950F93F0 +:103750001F93CF93DF93EC01888199812B813C816A +:10376000232BB9F09F3F11F48F3F99F0CE010E94B7 +:10377000ED03882371F0688179818A810E94252177 +:103780008C010E94DA200E94A11FB801CE010E9484 +:103790005C19DF91CF911F910F9108950E94FD2137 +:1037A0000E940D220E94D2210E9427220E94E82519 +:1037B0000E94372580E090E00E94221780E090E090 +:1037C0000C9438170E94ED210C94CE1B0E941A21F4 +:1037D000292F22952F7030E02C3031054CF42A30FF +:1037E00031056CF42250310922303105A8F407C0AC +:1037F0002C30310569F02F30310551F00DC0803F7C +:1038000069F018F4803E40F409C0843F29F406C0F2 +:1038100093FB882780F9089580E0089581E008955A +:10382000CF93DF9300D000D01F92CDB7DEB70F90BB +:103830000F900F900F900F90DF91CF910895CF933D +:10384000DF9300D000D000D0CDB7DEB726960FB6FC +:10385000F894DEBF0FBECDBFDF91CF9108951F93C7 +:10386000CF93DF93C0919D0216E080919E02C8170E +:1038700099F0D0E01C9FF0011D9FF00D1124E1563E +:10388000FD4F4081518162817381848195810E94C5 +:103890001F1C2196C770E9CFDF91CF911F9108952A +:1038A0004091CF025091D0026091D1027091D2022A +:1038B0008091D3029091D4020C941F1C8091D40269 +:1038C00082958F7009F054C08091D102882309F449 +:1038D0004FC080919D02A0919E026091CF02709195 +:1038E000D0024091D2025091D302B6E08A1709F477 +:1038F0003FC090E041155105C1F17F3F11F46F3F8A +:10390000A1F1B89FF001B99FF00D1124E156FD4FD0 +:10391000218172132AC02081621327C022812111C4 +:1039200024C0238134812417350710F42150310934 +:10393000241B350B283C3105C0F42091D4022F7094 +:1039400020612093D40226E0289FF001299FF00DEA +:103950001124EC55FD4F80818F70806180838FEC46 +:1039600092E00E94A71B0C942F1C01968770BECF7B +:103970000895CF92DF92EF92FF920F931F93CF9310 +:10398000DF93CDB7DEB762970FB6F894DEBF0FBEF8 +:10399000CDBF8C0185E0F801DE011D9601900D92EE +:1039A0008A95E1F7D8014C9111965C911197129686 +:1039B0006C9112971396CD90DC9014973091CF02B2 +:1039C0007091D0028091D2029091D302009709F4B5 +:1039D0006BC17F3F19F43F3F09F466C1E090D1020B +:1039E000EE2009F4C0C02091D402C816D90628F0F0 +:1039F000F601E81BF90BCF0104C0809590958C0D62 +:103A00009D1DFF24F394883C910578F0F12C207FD4 +:103A100009F0C6C07C2DD98AC88A89890E94101CE9 +:103A20008FEC92E00E94A71BB1C0822F807F09F02B +:103A300046C0751314C0341312C0611110C02F702A +:103A400020612093D4020E94501C8FEC92E00E94CF +:103A5000A71B8091D402D80115968C932EC0CD2837 +:103A600019F15F3F11F44F3FF9F0F62E61111CC0C0 +:103A700080919D0220919E0236E0821709F45AC07F +:103A800090E0389FF001399FF00D1124E156FD4F71 +:103A90007181571306C07081471303C07281711181 +:103AA00003C001968770E9CFF62E662309F418C18A +:103AB0008091D40281608093D402F12C11C17513DE +:103AC00008C0341306C0611104C08091D402D8012B +:103AD000C3C04D875E878D859E856A8B0E94E61BDD +:103AE0006A898823E1F16623D1F12091D402822FE3 +:103AF00082958F7090E0029774F08091CF02909140 +:103B0000D00298878F831986DB86CA862C87CE01E0 +:103B100007960E94A71B86E0F801AFECB2E0019087 +:103B20000D928A95E1F70E945E1C0E94501CFF24B2 +:103B3000F394D6C04D875E878D859E850E941A219D +:103B4000292F22952F7030E0223031050CF0BCC0B7 +:103B50009F7009F0B6C0805E883008F4C1C0C8010B +:103B60000E94A71BE4CFC816D90608F453C0F6017B +:103B7000E81BF90BCF01883C910508F450C0F12CEB +:103B80007C2DD98AC88A89890E94101CEFECF2E04A +:103B900086E0DF011D928A95E9F70E94501CA0C0C3 +:103BA000751314C0341312C0611110C08091D40277 +:103BB000F8018583C8010E94A71B86E0EFECF2E0C4 +:103BC000DF011D928A95E9F7FE2C8AC04D875E873A +:103BD0008D859E856A8B0E94E61B6A89882309F47D +:103BE000BECF662309F4BBCF2091D402822F8295E9 +:103BF0008F7090E002970CF48ECF8091CF0290915D +:103C0000D0029A8389831B82DD82CC822E83CE01EF +:103C100001967FCF809590958C0D9D1DACCFF62E93 +:103C2000662309F49CCF75132EC034132CC0209149 +:103C3000D40220FD1FC0822F82958F70D9F0D80149 +:103C400015962C9315978F3049F08F5F982F92958A +:103C5000907F822F8F70892B15968C93C8010E94BC +:103C6000A71B86E0F801AFECB2E001900D928A95B7 +:103C7000E1F793CF86E0F801AFECB2E001900D924E +:103C80008A95E1F72DC04D875E878D859E850E94C0 +:103C9000E61B811140CF8091D40281608093D402D1 +:103CA000C8010E94A71B1CC0662309F458CF4D878A +:103CB0005E878D859E850E94E61B882309F44FCF81 +:103CC0002ACF811148CF0CC0243031050CF047CFEA +:103CD0009F7009F440CFF8019581907F09F03BCFA8 +:103CE0008F2D62960FB6F894DEBF0FBECDBFDF9169 +:103CF000CF911F910F91FF90EF90DF90CF9008959B +:103D00001F93CF93DF93CDB7DEB72C970FB6F89400 +:103D1000DEBF0FBECDBF4F83588769877A878B87F9 +:103D20009C87CE0107960E94B91C882369F08F8179 +:103D300098852A853B85232BF1F19F3F09F063C0CD +:103D40008F3F09F060C037C086E0FE013796DE0184 +:103D5000119601900D928A95E1F76F817885EA8539 +:103D6000FB85309741F17F3F11F46F3F21F12091A6 +:103D70009E0230E0C90101968770992740919D020B +:103D800050E08417950709F447C069837A83FD835F +:103D9000EC8396E0929FD001939FB00D1124A15621 +:103DA000BD4FFE01319601900D929A95E1F78093F7 +:103DB0009E020E942F1C16E080919D0290919E020F +:103DC0008917C1F1189FC001112481569D4F0E948F +:103DD000B91C882379F1E0919D021E9FF001112406 +:103DE000E156FD4F408151816281738184819581CB +:103DF0000E941F1C80919D0290E001968770992778 +:103E000080939D02D9CF4F81588569857A858B85AE +:103E10009C850E941F1CCFCF0E94E21B10929E0225 +:103E200010929D02EFECF2E086E0DF011D928A9590 +:103E3000E9F7C1CF2C960FB6F894DEBF0FBECDBF09 +:103E4000DF91CF911F910895EF92FF920F931F93EF +:103E5000CF93DF938C01009709F46CC0F12CEE2412 +:103E6000E394E8012196F8018491843740F484308A +:103E700008F051C0813081F0823019F15BC0853784 +:103E800009F444C0A8F19CE7980F903708F052C09D +:103E90008F770E94FF1841C00E5F1F4FFE01C49133 +:103EA00080E28C0F883048F4C7708E2D01C0880FD7 +:103EB000CA95EAF70E94002214C08C2F0E9437187E +:103EC0002DC00E5F1F4FFE01C49180E28C0F883021 +:103ED00058F4C7708E2D01C0880FCA95EAF70E946A +:103EE00006220E9427221AC08C2F0E94FF1816C09B +:103EF0000E5F1F4FFE01C491CC2381F08FE99FE03C +:103F00000197F1F700C00000C150F6CF0E5F1F4FC0 +:103F1000FE01F49003C00E9437188E018F2D882374 +:103F200009F49FCFEFE9FFE03197F1F700C00000FF +:103F30008150F5CFDF91CF911F910F91FF90EF90BE +:103F4000089508956093D9027093DA028093DB029A +:103F50009093DC020C94CE1B0F931F930091D90217 +:103F60001091DA022091DB023091DC02DC01CB01FE +:103F7000802B912BA22BB32B8093D9029093DA0242 +:103F8000A093DB02B093DC021F910F910C94CE1B27 +:103F90000F931F930091D9021091DA022091DB0256 +:103FA0003091DC02DC01CB0180239123A223B323D7 +:103FB0008093D9029093DA02A093DB02B093DC02E3 +:103FC0001F910F910C94CE1B0F931F930091D90258 +:103FD0001091DA022091DB023091DC02DC01CB018E +:103FE00080279127A227B3278093D9029093DA02E2 +:103FF000A093DB02B093DC021F910F910C94CE1BB7 +:104000001092D5021092D6021092D7021092D802C6 +:104010000C94CE1B41E050E060E070E004C0440F1F +:10402000551F661F771F8A95D2F74093D50250938C +:10403000D6026093D7027093D8020C94CE1B41E055 +:1040400050E060E070E004C0440F551F661F771F0A +:104050008A95D2F78091D5029091D602A091D7028D +:10406000B091D802482B592B6A2B7B2B4093D50259 +:104070005093D6026093D7027093D8020C94CE1B53 +:1040800041E050E060E070E004C0440F551F661F3F +:10409000771F8A95D2F740955095609570958091DD +:1040A000D5029091D602A091D702B091D8024823B0 +:1040B00059236A237B234093D5025093D602609301 +:1040C000D7027093D8020C94CE1B41E050E060E020 +:1040D00070E004C0440F551F661F771F8A95D2F702 +:1040E0008091D5029091D602A091D702B091D802CA +:1040F000482759276A277B274093D5025093D60239 +:104100006093D7027093D8020C94CE1B0F931F9329 +:104110000091D5021091D6022091D7023091D80299 +:10412000DC01CB01802B912BA22BB32B8093D502EA +:104130009093D602A093D702B093D8021F910F910B +:104140000C94CE1B0F931F930091D5021091D602B1 +:104150002091D7023091D802DC01CB01802391233A +:10416000A223B3238093D5029093D602A093D702C3 +:10417000B093D8021F910F910C94CE1B0F931F93F5 +:104180000091D5021091D6022091D7023091D80229 +:10419000DC01CB0180279127A227B3278093D5028A +:1041A0009093D602A093D702B093D8021F910F919B +:1041B0000C94CE1B0895CF92DF92EF92FF920F9353 +:1041C0001F93CF93DF938C01C090D902D090DA0275 +:1041D000E090DB02F090DC028091D5029091D60253 +:1041E000A091D702B091D802C82AD92AEA2AFB2A7C +:1041F000CFE1D0E0D701C6010C2E04C0B695A7953B +:10420000979587950A94D2F780FF06C0B8018C2F46 +:104210000E947608019721F4219760F780E001C0A1 +:104220008C2FDF91CF911F910F91FF90EF90DF9036 +:10423000CF900895CF93DF93EC010E94DB20BE0165 +:104240000E947608DF91CF910895CB010E941A2138 +:1042500008958091DD0285958595859508958091D5 +:10426000DD028770089598E0899F90011124262B24 +:104270002093DD020C941F202091DD028095822383 +:104280008093DD02982F977069F430E0482F55270E +:1042900047FD50952417350729F085958595859517 +:1042A0000C94402008959091DD02977081E009F40C +:1042B00080E0089590911501992321F090911601C5 +:1042C000911109C02091170130911801F90132961E +:1042D0009FEF40E01FC0982F9695969596959F303A +:1042E00050F5E0911701F0911801E90FF11D877069 +:1042F00021E030E0A90102C0440F551F8A95E2F782 +:10430000CA019181892B818308959F3F39F04F5FC6 +:104310004E3041F051915813F8CF0DC05111F7CFE5 +:10432000942FF5CF9F3F39F0F901E90FF11D97FD6B +:10433000FA9582830895089590911501992321F0AB +:1043400090911601911109C0209117013091180127 +:10435000F9013296205F3F4F1FC0982F9695969592 +:1043600096959F30F0F4E0911701F0911801E90F54 +:10437000F11D877021E030E0A90102C0440F551FF4 +:104380008A95E2F7CA0180959181892381830895F6 +:104390003196E217F30729F090819813F9CF108234 +:1043A000F7CF089581E090E0E0911701F0911801B6 +:1043B000E80FF91F1082019680319105A9F7089541 +:1043C0009091F102892B8093F1020895809590914C +:1043D000F10289238093F10208951092F102089569 +:1043E0009091F002892B8093F0020895809590912E +:1043F000F00289238093F00208951092F00208954C +:104400009091EF02892B8093EF020895809590910F +:10441000EF0289238093EF0208951092EF0208952E +:104420008093DE0208951092DE02089580911701B4 +:1044300090911801FC0131969C01205F3F4F80E074 +:10444000919191118F5FE217F307D1F70895E091F1 +:104450001701F09118018091F1028083E09117011A +:10446000F091180190818091F002892B8083E09176 +:104470001701F091180190818091EF02892B8083C0 +:104480008091DE02882361F0E0911701F09118011C +:104490009081892B80830E94162281111092DE0266 +:1044A00080911701909118010C940C1720E000974F +:1044B00039F0AC0141505109842395232F5FF7CF88 +:1044C000822F089580911303843039F11092F30202 +:1044D00020E488E190E00FB6F894A89580936000FE +:1044E0000FBE2093600080E00E94F10280E00E94F5 +:1044F000100983B7817F846083BF83B7816083BFE6 +:104500007894889583B78E7F83BF88E10FB6F8943F +:1045100080936000109260000FBE08950895089582 +:1045200080E00E94F1020E948E220E946B090E948C +:104530008F220E94F00991E0811101C090E0892F43 +:1045400008950E94E21B80E00E94F1020E940A2866 +:104550000E9400170C9410091F920F920FB60F9231 +:1045600011248F939F93AF93BF938091F302811196 +:1045700013C08091F4029091F502A091F602B091DF +:10458000F7024196A11DB11D8093F4029093F502AC +:10459000A093F602B093F702BF91AF919F918F91D4 +:1045A0000F900FBE0F901F90189582E084BD93E08E +:1045B00095BD9AEF97BD80936E0008952FB7F8943C +:1045C0008091F4029091F502A091F602B091F70269 +:1045D0002FBF0895CF92DF92EF92FF920F931F9318 +:1045E0002FB7F8944091F4025091F5026091F602D1 +:1045F0007091F7022FBF6A017B01EE24FF248C012A +:1046000020E030E0C016D106E206F30610F4415077 +:1046100051099A01281B390BC9011F910F91FF9075 +:10462000EF90DF90CF9008951F920F920FB60F92E8 +:1046300011248F939F93AF93BF938091F402909135 +:10464000F502A091F602B091F7020196A11DB11DED +:104650008093F4029093F502A093F602B093F702D0 +:10466000BF91AF919F918F910F900FBE0F901F90B0 +:1046700018950E94FD13F8942FEF87EA91E62150D8 +:1046800080409040E1F700C0000087E090EBDC0143 +:1046900080931E0390931F03A0932003B0932103E4 +:1046A0009CE088E10FB6F894A895809360000FBE57 +:1046B00090936000FFCF0E949A23811102C00E9454 +:1046C00076230E94A5238093F2020E94AD2380935B +:1046D0001C0387FB882780F9809316010E94A92379 +:1046E000682F70E080E090E00C94A21F6DEE7EEFEA +:1046F00080E090E00E94C12C60E082E090E00E94A7 +:10470000AF2C60E083E090E00E94AF2C60E084E09A +:1047100090E00E94AF2C60E085E090E00E94AF2C1A +:1047200060E086E090E00E94AF2C6FEF87E090E0C1 +:104730000C94AF2C80E090E00E94A92C21E08D3EEB +:104740009E4F09F020E0822F089582E090E00C94C3 +:10475000A12C83E090E00C94A12C84E090E00C94D8 +:10476000A12C682F84E090E00C94AF2C86E090E0C0 +:104770000C94A12C682F86E090E00C94AF2C87E07D +:1047800090E00C94A12C682F87E090E00C94AF2C63 +:104790008091FA0280FF0BC060911C0185E0689F48 +:1047A000B001112475956795759567952BC081FFAC +:1047B00009C060911C0185E0689FB00111247595C6 +:1047C000679520C082FF07C060911C0185E0689F4B +:1047D000B001112417C09091FB029923D1F0609190 +:1047E0001B01961788F720911C0185E0289F9001F6 +:1047F0001124929FA001939F500D112470E0CA01D3 +:104800000E94872C6038710540F46115710539F0FC +:1048100002C065E070E0862F08958FE7089581E07B +:1048200008958091FA0280FF08C060911A0170E03B +:10483000759567957595679521C081FF06C0609154 +:104840001A0170E07595679519C082FF04C06091E8 +:104850001A0170E010C09091FB029923C1F06091A1 +:1048600019019617A0F780911A01899FC0011124A0 +:1048700070E00E94872C6038710528F4611571057D +:1048800021F0862F08958FE7089581E0089561E073 +:1048900070E0F4CF803F21F40E94C823819504C0CA +:1048A000813F29F40E94C8238093FE020895823F2D +:1048B00021F40E94C823819504C0833F29F40E94FB +:1048C000C8238093FD020895893F19F40E941124A2 +:1048D00005C08A3F31F40E94112481958093FF0224 +:1048E00008958B3F21F40E941124819504C08C3FD0 +:1048F00029F40E941124809300030895843F21F439 +:104900008091FC02816017C0853F21F48091FC02F8 +:10491000826011C0863F21F48091FC0284600BC04C +:10492000873F21F48091FC02886005C0883F31F404 +:104930008091FC0280618093FC0208958D3F21F4F8 +:104940008091FA0281600BC08E3F21F48091FA02BF +:10495000826005C08F3F29F48091FA0284608093C1 +:10496000FA020895803F39F48091FE0287FF6CC0FF +:104970001092FE0269C0813F29F48091FE02181650 +:10498000BCF362C09091FD02823F29F497FF5CC0A6 +:104990001092FD0259C0833F19F41916CCF354C08C +:1049A000893F41F48091FF0218160CF04DC010921F +:1049B000FF024AC08A3F29F48091FF0287FF44C06A +:1049C000F6CF8B3F39F48091000387FF3DC01092F2 +:1049D00000033AC08C3F29F4809100031816BCF301 +:1049E00033C0843F21F48091FC028E7F17C0853F45 +:1049F00021F48091FC028D7F11C0863F21F48091CB +:104A0000FC028B7F0BC0873F21F48091FC02877FE3 +:104A100005C0883F31F48091FC028F7E8093FC02B8 +:104A200013C08D3F21F48091FA028E7F0BC08E3F20 +:104A300021F48091FA028D7F05C08F3F29F4809187 +:104A4000FA028B7F8093FA028091FD0281110EC0E1 +:104A50008091FE0281110AC08091FF02811106C07F +:104A600080910003811102C01092FB0208958CEF27 +:104A700092E00E9417170E94DE229093F902809321 +:104A8000F80208951F93CF93DF938091F8029091DD +:104A9000F9020E94EA22AC019091FB02992321F0D5 +:104AA00020911D0130E006C020911E018AE0289F60 +:104AB000900111244217530708F486C08091FD022B +:104AC000C091FE02D091FF0210910003811107C036 +:104AD000C11176C0D11174C0111172C075C09F3F51 +:104AE00019F09F5F9093FB02181624F40E94C823CC +:104AF0008093FD028091FD0287FF05C00E94C823BC +:104B000081958093FD021C1624F40E94C823809393 +:104B1000FE028091FE0287FF05C00E94C823819596 +:104B20008093FE026091FD02662339F1C091FE027E +:104B3000CC2319F1772767FD7095872F972F0E9457 +:104B4000A92923E333E343E35FE30E94B92A0E94E8 +:104B500076296093FD026C2F772767FD7095872F6C +:104B6000972F0E94A92923E333E343E35FE30E94E5 +:104B7000B92A0E9476296093FE021D1624F40E9431 +:104B800011248093FF028091FF0287FF05C00E94DD +:104B9000112481958093FF02111624F40E941124A0 +:104BA000809300038091000387FF05C00E941124B9 +:104BB000819580930003DF91CF911F910C9437254D +:104BC0009F3F09F08ECF96CFDF91CF911F9108952F +:104BD000ECEFF2E085E0DF011D928A95E9F7109293 +:104BE000FB021092FA020895833081F128F481309B +:104BF00059F08230D1F00895853009F449C0B8F1F8 +:104C0000863009F456C0089580911E01262F30E0A9 +:104C1000280F311D2F3F310524F4680F60931E01CA +:104C200008958FEF80931E01089580911D01262F16 +:104C300030E0280F311D2F3F310524F4680F6093B9 +:104C40001D0108958FEF80931D01089580911C012F +:104C5000262F30E0280F311D2F3F310524F4680F37 +:104C600060931C0108958FEF80931C01089580913B +:104C70001B01262F30E0280F311D2F3F310524F472 +:104C8000680F60931B0108958FEF80931B010895B7 +:104C900080911A01262F30E0280F311D2F3F31055A +:104CA00024F4680F60931A0108958FEF80931A011E +:104CB000089580911901262F30E0280F311D2F3FD4 +:104CC000310524F4680F6093190108958FEF8093E4 +:104CD00019010895833011F128F4813049F08230B0 +:104CE00091F00895853081F120F18630C1F1089569 +:104CF00080911E01681720F4861B80931E01089581 +:104D000010921E01089580911D01681720F4861BE2 +:104D100080931D01089510921D01089580911C013A +:104D2000681720F4861B80931C01089510921C01C3 +:104D3000089580911B01681720F4861B80931B0146 +:104D4000089510921B01089580911A01681720F4AC +:104D5000861B80931A01089510921A01089580917C +:104D60001901681720F4861B809319010895109289 +:104D7000190108950F931F93873208F048C08E31B0 +:104D800008F08DC0803109F477C008F5873009F448 +:104D900061C068F4863009F09DC08091F202817F85 +:104DA0008E7F8093F20281E08093020394C08B3067 +:104DB00009F489C08E3009F08DC08091F20282FB27 +:104DC000222720F991E0922790FB82F95EC086317C +:104DD00009F479C060F4813109F07CC00E94E21BC3 +:104DE0009091160181E08927809316016CC089316A +:104DF00009F469C08B3109F06DC08091F20281FB2A +:104E0000222720F991E0922790FB81F93EC0883358 +:104E100009F459C050F4893209F457C0853309F4B4 +:104E200054C0873209F451C055C0833409F44DC0D1 +:104E300028F48A3308F44EC0895332C0883409F00C +:104E400049C00E94E21B0E94200A0E94E4030E94C3 +:104E5000392339C09091F202892F8095817080FBAF +:104E600090F929F0966098609093F20234C0997F8F +:104E7000977F9093F20227C08091F20283FB222752 +:104E800020F991E0922790FB83F98093F202992315 +:104E9000D1F08091F20281608093F20214C08D51B2 +:104EA00041E050E060E070E08A019B0104C0000F27 +:104EB000111F221F331F8A95D2F7C901B8010E9422 +:104EC000A21F0E94E21B81E006C061E070E080E06A +:104ED00090E0F5CF80E01F910F91089580E0089554 +:104EE00080E00895CF93C82F80910203813069F04C +:104EF00018F08230C9F184C0E0911701F0911801D7 +:104F00008081823209F07EC007C0E0911701F091E4 +:104F100018018081823261F48C2F0E946E278111EA +:104F200004C08C2F0E94BA261DC081E090E01AC0F8 +:104F30008C2F0E947027811114C0C43179F048F47D +:104F4000CB3079F0C03109F061C082E08093020378 +:104F500008C0C93219F0C83321F058C010920203BA +:104F600055C081E0817054C0C93291F120F5C4313F +:104F700079F1B0F4C73009F047C08EE180931E018B +:104F800082E380931D018AE080931C0184E1809379 +:104F90001B0188E080931A0188E28093190134C0D4 +:104FA000CE51C63088F5EC2FF0E0EA54FE4F8081F8 +:104FB0008093010329C0CE34E9F020F4CB3421F5ED +:104FC0006AE013C0C13579F0C235F1F461E00DC07B +:104FD00080910103882319F01092010315C081E02C +:104FE0008093020315C061E006C0809101030E9416 +:104FF000F4250AC06AE0809101030E946A2604C079 +:105000001092020380E004C081E002C080E0AACFD9 +:10501000CF9108950E949A23811102C00E947623A5 +:105020000E94B62380931D0380FF02C0869501C0B5 +:1050300080E00C94F10280911D03982F9695292F02 +:1050400030E0233031054CF49F5F990F8170892B3C +:10505000816080931D030E94BA2380911D03869571 +:105060000C94F10280911D03982F969591F0915820 +:10507000990F8170892B80931D038E7F91E009F435 +:1050800090E080911D0390FB80F980931D030E94A6 +:10509000BA2380911D0386950C94F10280911D0323 +:1050A000982F909590FB80F980931D030E94BA235E +:1050B00080911D0380FF02C0869501C080E00C94A2 +:1050C000F10290911D03892F86958F5F8F779170E4 +:1050D000843028F4880F892B80931D0302C090939D +:1050E0001D0380911D038E7F91E009F490E0809173 +:1050F0001D0390FB80F980931D030E94BA238091C9 +:105100001D0386950C94F10220911D03922F969514 +:105110008927982F990F822F8170892B80931D03E7 +:105120008E7F91E009F490E080911D0390FB80F95F +:1051300080931D030E94BA2380911D0386950C94D1 +:10514000F10280911D03869508955058BB27AA2728 +:105150000ED0D1C1C2D130F0C7D120F031F49F3F81 +:1051600011F41EF4B7C10EF4E095E7FB9FC1E92FDF +:10517000D3D180F3BA17620773078407950718F035 +:1051800071F49EF5EBC10EF4E0950B2EBA2FA02D15 +:105190000B01B90190010C01CA01A0011124FF27E4 +:1051A000591B99F0593F50F4503E68F11A16F040DF +:1051B000A22F232F342F4427585FF3CF46953795DE +:1051C0002795A795F0405395C9F77EF41F16BA0BA3 +:1051D000620B730B840BBAF09150A1F0FF0FBB1F51 +:1051E000661F771F881FC2F70EC0BA0F621F731F9A +:1051F000841F48F4879577956795B795F7959E3FF7 +:1052000008F0B3CF9395880F08F09927EE0F979584 +:105210008795089527D108F481E008950CD06BC1DB +:1052200063D140F05AD130F021F45F3F19F03EC114 +:10523000511195C14FC170D198F39923C9F35523EA +:10524000B1F3951B550BBB27AA2762177307840779 +:1052500038F09F5F5F4F220F331F441FAA1FA9F32F +:1052600033D00E2E3AF0E0E830D091505040E69521 +:10527000001CCAF729D0FE2F27D0660F771F881F82 +:10528000BB1F261737074807AB07B0E809F0BB0B71 +:10529000802DBF01FF2793585F4F2AF09E3F510595 +:1052A00068F004C15CC15F3FECF3983EDCF3869587 +:1052B00077956795B795F7959F5FC9F7880F911D0B +:1052C0009695879597F90895E1E0660F771F881FF7 +:1052D000BB1F621773078407BA0720F0621B730BAA +:1052E000840BBA0BEE1F88F7E095089504D06894FC +:1052F000B11135C1089518D188F09F5790F0B92F9A +:105300009927B751A0F0D1F0660F771F881F991F1A +:105310001AF0BA95C9F712C0B13081F01FD1B1E0CF +:1053200008951CC1672F782F8827B85F39F0B93FDF +:10533000CCF3869577956795B395D9F73EF490951C +:105340008095709561957F4F8F4F9F4F0895E8949A +:1053500009C097FB3EF490958095709561957F4FBD +:105360008F4F9F4F9923A9F0F92F96E9BB2793956B +:10537000F695879577956795B795F111F8CFFAF47B +:10538000BB0F11F460FF1BC06F5F7F4F8F4F9F4FAC +:1053900016C0882311F096E911C0772321F09EE80A +:1053A000872F762F05C0662371F096E8862F70E070 +:1053B00060E02AF09A95660F771F881FDAF7880F4A +:1053C0009695879597F9089588D018F011F08CD0AC +:1053D00038F480C0C4C0E92F9FD0B0F35523C9F37F +:1053E000E7FB6217730784079507A8F199F3E92F84 +:1053F000FF2788232AF03197660F771F881FDAF777 +:10540000952F5527442332F091505040220F331FDF +:10541000441FD2F7BB27E91BF50B621B730B840BF0 +:10542000B109C1F222F4620F731F841FB11D3197BD +:105430002AF0660F771F881FBB1FEFCF9150504097 +:105440005AF041F0882332F0660F771F881F915081 +:105450005040C1F7939530C08695779567959F5FCB +:10546000D9F7F8CF990F0008550FAA0BE0E8FEEF27 +:1054700016161706E807F907C0F012161306E40718 +:10548000F50798F0621B730B840B950B39F40A2611 +:1054900061F0232B242B252B21F408950A2609F4EF +:1054A000A140A6958FEF811D811D089597F99F67F3 +:1054B00080E870E060E008959F3F31F0915020F463 +:1054C000879577956795B795880F911D96958795E0 +:1054D00097F908959FEF80EC089500240A9416161A +:1054E000170618060906089500240A9412161306D2 +:1054F000140605060895092E0394000C11F4882360 +:1055000052F0BB0F40F4BF2B11F460FF04C06F5F7B +:105510007F4F8F4F9F4F089557FD9058440F551F51 +:1055200059F05F3F71F04795880F97FB991F61F025 +:105530009F3F79F087950895121613061406551F9C +:10554000F2CF4695F1DF08C0161617061806991F08 +:10555000F1CF86957105610508940895E894BB27FD +:1055600066277727CB0197F908957CDF08F48FEF42 +:1055700008950BD0C0CFB1DF28F0B6DF18F0952327 +:1055800009F094CFA7CF1124EACFC6DFA0F3959FEF +:10559000D1F3950F50E0551F629FF001729FBB271A +:1055A000F00DB11D639FAA27F00DB11DAA1F649FC6 +:1055B0006627B00DA11D661F829F2227B00DA11D79 +:1055C000621F739FB00DA11D621F839FA00D611DFF +:1055D000221F749F3327A00D611D231F849F600D20 +:1055E000211D822F762F6A2F11249F5750408AF059 +:1055F000E1F088234AF0EE0FFF1FBB1F661F771FE5 +:10560000881F91505040A9F79E3F510570F04ECF32 +:10561000A6CF5F3FECF3983EDCF3869577956795D0 +:10562000B795F795E7959F5FC1F7FE2B880F911D02 +:105630009695879597F90895FA01EE0FFF1F30961A +:105640002105310599F16115710561F48038BFE3D9 +:105650009B0749F168949038810561F08038BFEF6D +:105660009B0741F0992342F5FF3FE10531052105F4 +:1056700011F1E8940894E795D901AA2329F4AB2FF6 +:10568000BE2FF85FD0F310C0FF5F70F4A695E0F76F +:10569000F73950F019F0FF3A38F49F779F930CD008 +:1056A0000F9007FC905808953EF014CF60E070E032 +:1056B00080E89FE308954FE79F775F934F933F9371 +:1056C0002F939ED02F913F914F915F9152DF05C054 +:1056D00019F40EF0EBCE42CFFDCE26DFC8F396389C +:1056E000C0F707F80F92E8942BE33AEA48EB5FE73C +:1056F0004EDF0F920F920F924DB75EB70F92C0D050 +:10570000EAE0F1E016D04F915F91EF91FF91E595BE +:10571000EE1FFF1F49F0FE57E0684427EE0F441FBD +:10572000FA95E1F74195550B32D00F9007FE26C050 +:105730000895DF93CF931F930F93FF92EF92DF9221 +:105740007B018C01689405C0DA2EEF011EDFFE019B +:10575000E894A5912591359145915591AEF3EF01CE +:1057600006DDFE019701A801DA9479F7DF90EF904A +:10577000FF900F911F91CF91DF9108959B01AC0194 +:1057800060E070E080E89FE349CD90CE95CECCDE1E +:10579000E8F39923D9F3940F511DBBF39150504076 +:1057A00094F059F0882332F0660F771F881F9150CC +:1057B0005040C1F79E3F510544F7880F911D9695C3 +:1057C000879597F908955F3FACF0983E9CF0BB2712 +:1057D000869577956795B79508F4B1609395C1F76D +:1057E000BB0F58F711F460FFE8CF6F5F7F4F8F4F0B +:1057F0009F4FE3CFB4CE0EF05FCE6CCE689456CE02 +:1058000093DEC8F39923D1F3C6F3DF93CF931F93AD +:105810000F93FF92C92FDD2788232AF02197660F67 +:10582000771F881FDAF720E030E040E85FEB9FE366 +:10583000883920F0803E30F021968F7787DCE2E3D4 +:10584000F1E003C083DCEFE5F1E073DF8B01BE0123 +:10585000EC01FB2E6F5771097595771F880B990B1B +:1058600078DD28E132E741E35FE38FDEAF2D980179 +:10587000AE01FF900F911F91CF91DF9178DC3BCE6D +:10588000FA01DC01AA0FBB1F9B01AC01BF5728F432 +:1058900022273327442750781FC0B75188F4AB2FF5 +:1058A0000024469537952795011CA395D2F3002037 +:1058B00069F0220F331F441FB395DAF30DD045CCA6 +:1058C00061307105A0E88A07B94630F49B01AC014C +:1058D0006627772788279078309621F020833183B8 +:1058E000428353830895AA1BBB1B51E107C0AA1F23 +:1058F000BB1FA617B70710F0A61BB70B881F991F71 +:105900005A95A9F780959095BC01CD01089597FB14 +:10591000072E16F4009407D077FD09D00E94732C4F +:1059200007FC05D03EF4909581959F4F08957095A2 +:1059300061957F4F0895EE0FFF1F0590F491E02DC4 +:105940000994F999FECF92BD81BDF89A992780B547 +:105950000895A8E1B0E042E050E00C94C92C262F55 +:10596000F999FECF92BD81BDF89A019700B4021655 +:1059700039F01FBA20BD0FB6F894FA9AF99A0FBE03 +:1059800008950196272F0E94B02C0C94AF2CDC01B7 +:10599000CB01FC01F999FECF06C0F2BDE1BDF89A3A +:1059A000319600B40D9241505040B8F70895F894E4 +:0259B000FFCF27 +:1059B200640007000CFF0000003F64041092106FA7 +:1059C200103B1007100101DF022808140A321E00E2 +:1059D20002040507090B0C0E1011131517181A1CD7 +:1059E2001D1F2123242628292B2D2F303234353711 +:1059F200393B1F0F03764F5F6F7F4969437909591E +:105A020053633149803F5D8B803FF8BF803FCAE1DD +:105A1200803F73ED803FCAE1803FF8BF803F5D8BDE +:105A2200803F3149803F0000803FF16D7F3F75EA42 +:105A32007E3F4C827E3F833F7E3F84287E3F833F72 +:105A42007E3F4C827E3F75EA7E3FF16D7F3F0000D4 +:105A5200803F3F4D3639ED04A0046A043104C4038B +:105A6200DD03F6030F04010203040506070809001B +:00000001FF diff --git a/keyboards/planck/keymaps/austin/keymap.c b/keyboards/planck/keymaps/austin/keymap.c new file mode 100644 index 000000000..40f808654 --- /dev/null +++ b/keyboards/planck/keymaps/austin/keymap.c @@ -0,0 +1,39 @@ +#include "keymap.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = { /* Qwerty */ + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, + {BL_STEP, KC_LGUI, KC_LALT, KC_LCTL, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + // Space is repeated to accommadate for both spacebar wiring positions +}, +[1] = { /* Colemak */ + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, + {KC_FN3, KC_LGUI, KC_LALT, KC_LCTL, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[2] = { /* RAISE */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[3] = { /* LOWER */ + {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, + {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +} +}; + + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE + [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER + + [3] = ACTION_DEFAULT_LAYER_SET(0), + [4] = ACTION_DEFAULT_LAYER_SET(1), + +}; \ No newline at end of file diff --git a/keyboards/planck/keymaps/basic/Makefile b/keyboards/planck/keymaps/basic/Makefile new file mode 100644 index 000000000..0c0632da0 --- /dev/null +++ b/keyboards/planck/keymaps/basic/Makefile @@ -0,0 +1,25 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/basic/README.md b/keyboards/planck/keymaps/basic/README.md new file mode 100644 index 000000000..3a4824b5b --- /dev/null +++ b/keyboards/planck/keymaps/basic/README.md @@ -0,0 +1,2 @@ +# A more basic Planck Layout for copying + diff --git a/keyboards/planck/keymaps/basic/compiled.hex b/keyboards/planck/keymaps/basic/compiled.hex new file mode 100644 index 000000000..a4d94b6c4 --- /dev/null +++ b/keyboards/planck/keymaps/basic/compiled.hex @@ -0,0 +1,970 @@ +:100000000C9401020C9445020C9445020C94450298 +:100010000C9445020C9445020C9445020C94450244 +:100020000C9445020C9445020C94780B0C944A0CE9 +:100030000C946E190C9445020C9445020C944502E4 +:100040000C9445020C9445020C9445020C94450214 +:100050000C9445020C94D6190C9445020C9445025C +:100060000C9445020C9445020C9445020C944502F4 +:100070000C9445020C9445020C9445020C944502E4 +:100080000C9445020C9445020C9445020C944502D4 +:100090000C9445020C9445020C9445020C944502C4 +:1000A0000C9445020C9445020C944502B70CD90CF3 +:1000B000C70DD90CC70D1E0D410DC70D960DA90D0D +:1000C00086108610B510B510F410141144124412A5 +:1000D0001F114412CF11CF113512441244123E1297 +:1000E000DC11DC11DC11DC11DC11DC11DC11DC11A8 +:1000F000DC11DC11DC11DC11DC11DC11DC11DC1198 +:10010000EC11FA110112081212122B0014001A003D +:100110000800150017001C0018000C001200130046 +:100120002A00290004001600070009000A000B003D +:100130000D000E000F0033003400E1001D001B0015 +:1001400006001900050011001000360037003800C5 +:100150002800E500E000E200E30001302C002C0064 +:1001600002305000510052004F0035021E021F02A3 +:100170002002210222022302240225022602270253 +:100180002A004C003A003B003C003D003E003F008E +:100190002D022E022F0230023102010040004100E8 +:1001A00042004300440045003202640201000100A5 +:1001B00001000050010001000100010001000100E8 +:1001C0000100AB00AA00A900AE0035001E001F0010 +:1001D0002000210022002300240025002600270003 +:1001E0002A004C003A003B003C003D003E003F002E +:1001F0002D002E002F003000310001004000410092 +:100200004200430044004500320064000100010048 +:100210000100005001000100010001000100010087 +:100220000100AB00AA00A900AE002803540068003A +:100230006500200050006C0061006E0063006B00E0 +:1002400020004B006500790062006F0061007200C1 +:10025000640000002C034F007200740068006F00FF +:100260006C0069006E0065006100720020004B00A8 +:100270006500790062006F00610072006400730025 +:1002800000000403090409026D00040100A0FA093A +:1002900004000001030101000921110100012240B5 +:1002A000000705810308000A090401000103010297 +:1002B00000092111010001224D00070582030800F9 +:1002C0000A090402000103000000092111010001D4 +:1002D0002236000705830308000A0904030001030E +:1002E00000000009211101000122390007058403E3 +:1002F0001000011201100100000008EDFE60600115 +:10030000000102000105010906A101050719E02904 +:10031000E7150025019508750181020508190129D5 +:100320000595057501910295017503910105071960 +:1003300000297715002501957875018102C0050116 +:100340000980A101850216010026B7001A01002AC2 +:10035000B700751095018100C0050C0901A1018548 +:1003600003160100269C021A01002A9C02751095B2 +:10037000018100C005010902A1010901A1000509CF +:1003800019012905150025019505750181029501C1 +:10039000750381010501093009311581257F950219 +:1003A0007508810609381581257F95017508810634 +:1003B000050C0A38021581257F950175088106C054 +:1003C000C005010906A101050719E029E715002567 +:1003D00001950875018102950175088101050819CB +:1003E0000129059505750191029501750391010596 +:1003F00007190029FF150026FF00950675088100E2 +:10040000C00011241FBECFEFDAE0DEBFCDBF04B6BF +:1004100003FE24C08091E9019091EA01A091EB01D3 +:10042000B091EC018730904BA740B04BB9F41092DB +:10043000E9011092EA011092EB011092EC0114BE56 +:1004400084B7877F84BF88E10FB6F89480936000FB +:10045000109260000FBEE0E0F8E3099511E0A0E023 +:10046000B1E0E4E4FCE302C005900D92AA33B107C9 +:10047000D9F711E0AAE3B1E001C01D92A93EB1078E +:10048000E1F70E94C2080C94201E0C94000008950D +:10049000089581E0089508956E9A769A0C94470223 +:1004A0000C9448020C9449020C944B02613019F0F0 +:1004B000623049F013C0FC018281882311F081E091 +:1004C00007C081E009C0FC018281882321F082E01D +:1004D0000E94EC1603C082E00E940D1780E090E0BD +:1004E000089581E008950C94710208950F931F936D +:1004F000CF93DF938C01FC01C081D181CE010E949A +:10050000A817BE010E942303EC01B8010E947302E8 +:10051000882309F48DC0F8018281882309F44AC038 +:100520008091450181111FC0C431F0E5DF0709F05A +:1005300051C00E94750281E0809345010E94A0197C +:10054000909344018093430110923C0110923E012C +:1005500010923D011092400110923F011092420111 +:100560001092410165C080914301909144010E9425 +:10057000AC19883C910570F480913C01E82FF0E0C3 +:10058000EE0FFF1FE35CFE4FD183C0838F5F80932C +:100590003C014EC0C43880E5D80721F0C538D045AD +:1005A00001F13AC0F8018281882341F010923A01AA +:1005B00082E01EC0C438E0E5DE0759F580913A01BB +:1005C000811106C086E20E94350F86E20E94F20F7A +:1005D00082E01CC0C438F0E5DF0741F3C538D045E0 +:1005E000D9F4F8018281882331F010923B0180E236 +:1005F0000E9441101DC080913B01811106C087E21D +:100600000E94350F87E20E94F20F80E20E9448109C +:100610000FC0C538D04529F381E080933A0180931B +:100620003B01C801DF91CF911F910F910C945202B1 +:1006300080E0DF91CF911F910F9108950C944C02AF +:100640000C94500208959CE0799FF001112490E3EE +:10065000899FE00DF11D1124E60FF11DEE0FFF1F24 +:10066000E65FFE4F859194910895880F991FFC01D4 +:10067000E657F040859194910895880F991FFC01E9 +:10068000E65FFE4F8591949108950F931F93CF934A +:10069000DF93EC01811520E3920750F5C11580E24C +:1006A000D80708F0C3C0CB3BD10590F4C83AD105B8 +:1006B00008F06AC0C53AD10508F05BC0C430D10566 +:1006C00008F0D0C1219709F0CAC101E010E00AC2C8 +:1006D000CF3FD10511F008F0C5C1C03FD10508F0EA +:1006E000A2C0CE01805E9109089708F4BBC1B7C1D2 +:1006F000C13090E5D90709F4A2C020F5C0318FE4DC +:10070000D80770F4C11590E4D90708F094C0C1155A +:1007100021E3D20708F0A3C1DD278E01106CE2C1EE +:10072000C115D04509F09BC10E94AF128FEF94E331 +:100730002CE0815090402040E1F700C000000E9472 +:10074000FB19D0C1C11597E5D90758F4C03121E58F +:10075000D20708F01CC1C43180E5D80708F475C081 +:100760007EC1CE0190578115904108F078C1DF70AD +:1007700073C1C53AD10509F477C1C63AD10509F06C +:1007800076C102E810E4AEC1C83AD10509F472C1DD +:10079000C93AD10509F471C1CA3AD10509F470C149 +:1007A000CB3AD10509F46FC1CC3AD10509F46EC139 +:1007B000CD3AD10509F46DC1C03BD10509F46CC136 +:1007C000CE3AD10509F46BC1CF3AD10509F46AC11B +:1007D000C13BD10509F469C1C23BD10509F468C127 +:1007E000C33BD10509F467C1C43BD10509F466C117 +:1007F000C53BD10509F465C1C63BD10509F464C107 +:10080000C73BD10509F463C1C83BD10509F462C1F6 +:10081000C93BD10509F461C1CA3BD10509F460C1E6 +:1008200000E014E45FC18E0110655CC1CE019F70D1 +:100830000E943D0358C1DF708E01106A53C1809140 +:10084000CC0181608093CC014DC10E94521A81116C +:1008500002C00E94381A0E94651A90E09093E90144 +:100860008093E801C23080E5D80721F48091E80147 +:10087000816086C0C43090E5D90721F48091E801F9 +:1008800082607EC0C63020E5D20721F48091E80165 +:10089000846076C0C83080E5D80719F48091E801FB +:1008A00027C0CA3090E5D90721F48091E801806122 +:1008B00067C0CC3020E5D20721F48091E801806246 +:1008C0005FC0CE3080E5D80721F48091E8018064D4 +:1008D00057C0C03190E5D90721F48091E8018068C4 +:1008E0004FC0C23120E5D20729F48091E80184602D +:1008F000886046C0C33080E5D80721F48091E801C4 +:100900008E7F3EC0C53090E5D90721F48091E80183 +:100910008D7F36C0C73020E5D20721F48091E801F1 +:100920008B7F2EC0C93080E5D80719F48091E8018B +:1009300026C0CB3090E5D90721F48091E8018F7E65 +:100940001FC0CD3020E5D20721F48091E8018F7DD2 +:1009500017C0CF3080E5D80721F48091E8018F7B64 +:100960000FC0C13190E5D90721F48091E8018F775C +:1009700007C0C331D04531F48091E8018B7F877F78 +:100980008093E8018091E8010E94691AABC08D2F25 +:1009900099278F70992781309105D9F49E01237092 +:1009A000332702C0880F991F2A95E2F79C688E01B1 +:1009B00044E0000F111F4A95E1F700271370802BC8 +:1009C000912B53E0CC0FDD1F5A95E1F7C076DD2760 +:1009D0002FC08230910531F4DC2FCC278E01016FBE +:1009E000106A80C08330910569F4CE018370992725 +:1009F00001E010E002C0000F111F8A95E2F7C80164 +:100A00009C680FC084309105B9F4CE01837099279A +:100A100001E010E002C0000F111F8A95E2F7C80143 +:100A20009A6823E0CC0FDD1F2A95E1F7C07ED770CE +:100A30008C010C2B1D2B56C08530910531F4DC2F19 +:100A4000CC278E01046F106A4DC0069709F04AC08A +:100A5000CF71DD27DC2FCC278E01106243C000E070 +:100A600010E040C08E013EC001E810E43BC003E846 +:100A700010E438C002EE14E435C009EE14E432C0CC +:100A80000AEE14E42FC005EB14E42CC006EB14E4CA +:100A900029C007EB14E426C00CEC14E423C00DECD1 +:100AA00014E420C003E815E41DC00AE815E41AC0E8 +:100AB00002E915E417C004E915E414C001E216E4E4 +:100AC00011C003E216E40EC004E216E40BC005E216 +:100AD00016E408C006E216E405C007E216E402C008 +:100AE0000AE216E4C801DF91CF911F910F9108959A +:100AF0009CE0799FF001112490E3899FE00DF11DA6 +:100B00001124E60FF11DEE0FFF1FE65FFE4F8591EA +:100B10009491803E9105E0F4803C910558F5813335 +:100B2000910509F46FC048F48932910509F463C056 +:100B30008A32910509F46DC072C089339105E9F0DC +:100B400082389105D1F08533910509F44DC067C015 +:100B5000833E910581F138F4803E9105B9F0823EE3 +:100B60009105D9F05CC0863E910561F1873E910503 +:100B7000A1F155C00E94350308952091E80120FDA0 +:100B800002C021FF4CC080EE90E049C08091E80196 +:100B900080FFF9CF89E390E042C08091E80182FFB5 +:100BA0000EC08091E80184FF03C080E090E037C070 +:100BB00083EE90E034C08091E80182FFF2CF82EEB4 +:100BC00090E02DC08091E80183FF0BC08091E80187 +:100BD00084FDEBCF87EE90E022C08091E80183FF97 +:100BE000F5CF86EE90E01BC08091E80185FF07C03D +:100BF00089E290E014C08091E80185FFF9CF85E398 +:100C000090E00DC08091E80186FF07C08AE290E085 +:100C100006C08091E80186FFF9CF81E390E00E9451 +:100C2000450308950C945402E82FF0E0EF5DFE4F69 +:100C30008081E82FEF70F0E082958F7021E030E046 +:100C4000A90102C0440F551F8A95E2F740A30895F9 +:100C50000F931F93CF93DF9385B7806885BF85B7C8 +:100C6000806885BFC3E0D0E001E010E0FE01EF5DE9 +:100C7000FE4F8081E82FEF70F0E021A182958F7008 +:100C8000A80102C0440F551F8A95E2F7CA01822BC2 +:100C900081A38C2F0E941406219740F78BE090E0EF +:100CA00061E070E0FC01EB5EFE4F2081E22FEF700F +:100CB000F0E042A122952F70DB0102C0AA0FBB1FFA +:100CC0002A95E2F79D01242B22A3019758F7DF9183 +:100CD000CF911F910F910C941E03EF92FF920F93EF +:100CE0001F93CF93DF930EE411E0C3E0EE24E3946F +:100CF000F12CD5E08C2F0E9414068BE090E040E0B0 +:100D000050E0FC01EB5EFE4F6081E62FEF70F0E0FB +:100D100020A130E062956F7002C0359527956A95E5 +:100D2000E2F720FD09C09701082E02C0220F331FF1 +:100D30000A94E2F7422B532B019718F7F80192918E +:100D400082918F018417950721F051834083D093BE +:100D500000018C2F0E941406C15060F680910001A2 +:100D600087FD2CC08150809300018F3F39F08FE9BF +:100D70009FE00197F1F700C0000020C080914C0176 +:100D800090914D01909355018093540180914A01B7 +:100D900090914B01909353018093520180914801AF +:100DA00090914901909351018093500180914601A7 +:100DB0009091470190934F0180934E010E94200330 +:100DC00081E0DF91CF911F910F91FF90EF900895F7 +:100DD000E82FF0E0EE0FFF1FE25BFE4F8081918174 +:100DE000089508950F931F93CF9306E511E0C0E097 +:100DF000F801929182918F010E942319C80FF1E0AE +:100E00000E341F07A9F78C2FCF911F910F910895D2 +:100E1000809166010895CF93DF9300D01F92CDB7E4 +:100E2000DEB79C018091DF01843019F593E099834E +:100E30003B832A839093E9008FEF9091E8008150E3 +:100E400095FD06C095ED9A95F1F700008111F5CF5B +:100E50008091E80085FF0DC040E050E063E070E065 +:100E6000CE0101960E9468098091E8008E778093F8 +:100E7000E8000F900F900F90DF91CF910895CF93DE +:100E8000DF9300D01F92CDB7DEB72091DF01243071 +:100E900021F522E029839B838A8383E08093E90004 +:100EA0008FEF9091E800815095FD06C095ED9A95E1 +:100EB000F1F700008111F5CF8091E80085FF0DC0AA +:100EC00040E050E063E070E0CE0101960E946809C6 +:100ED0008091E8008E778093E8000F900F900F903C +:100EE000DF91CF9108952091DF012430F1F422E0C9 +:100EF0002093E9002FEF3091E800215035FD06C026 +:100F000035ED3A95F1F700002111F5CF2091E80079 +:100F100025FF0BC040E050E065E070E00E946809EA +:100F20008091E8008E778093E8000895CF93DF9357 +:100F3000EC019091DF01943009F046C080910B01E3 +:100F40008823D9F080910C018823B9F09093E900AF +:100F50008FEF9091E800815095FD06C095E19A953C +:100F6000F1F700008111F5CF8091E80085FF2CC0DA +:100F700040E050E060E170E017C081E08093E9005C +:100F80008FEF9091E800815095FD06C095ED9A9500 +:100F9000F1F700008111F5CF8091E80085FF14C0C2 +:100FA00040E050E068E070E0CE010E946809809166 +:100FB000E8008E778093E80080E1FE01A6E5B1E0CD +:100FC00001900D928A95E1F7DF91CF91089580917C +:100FD000DE01811109C00E94FD0A0E945A0B809116 +:100FE000E20084608093E20008951092DE0108958B +:100FF000089508950C94681942E061EC81E00E9424 +:10100000770A42E061EC82E00E94770A42E061ECFC +:1010100083E00E94770A42E161EC84E00C94770A55 +:101020008091E101833009F455C030F4813071F0D2 +:10103000823009F48EC008958A3009F47AC08B306A +:1010400009F460C0893009F09CC020C08091E001A3 +:10105000813A09F096C08091E800877F8093E8008C +:101060008091E4019091E501892B21F460E186E50E +:1010700091E003C060E080E090E070E00E94B3097E +:101080008091E8008B778093E80008958091E001DB +:10109000813209F076C08091E4019091E5010097DA +:1010A00019F0039709F06DC08091E800877F809365 +:1010B000E8008091E80082FD05C08091DF01811188 +:1010C000F8CF5FC08091F100809366018091E800C5 +:1010D0008B7753C08091E001813A09F052C0809132 +:1010E000E4019091E501892B09F04BC08091E80063 +:1010F000877F8093E8008091E80080FFFCCF80919B +:101100000B0136C08091E0018132D9F58091E40174 +:101110009091E501892BA9F58091E800877F809364 +:10112000E8000E94AC0A8091E20180930B010C94CC +:10113000AF128091E001813221F58091E800877F34 +:101140008093E8000E94AC0A8091E30180936701DC +:1011500008958091E001813AA1F48091E800877FB1 +:101160008093E8008091E80080FFFCCF80916701C8 +:101170008093F1008091E8008E778093E8000C94D2 +:10118000AC0A089584B7877F84BF88E10FB6F894CE +:1011900080936000109260000FBE80E88093610031 +:1011A000109261000E944F0E0E94FD0A0E945A0B8D +:1011B0008091E20084608093E20078940E94E00DC8 +:1011C0000E94510E81E091E00E94FB0D8091DF01B1 +:1011D000853069F40E942F198091DD018823B1F3D5 +:1011E0000E945A19882391F30E945209EFCF0E945E +:1011F000570EECCF292F332723303105C9F064F483 +:101200002130310581F02230310509F043C08DE6EF +:1012100090E026E832E042C021323105F1F022327E +:10122000310541F137C082E190E023EF32E036C072 +:1012300099278130910541F08230910541F0892B49 +:1012400049F5E2E8F2E005C0E4E5F2E002C0EAE2D6 +:10125000F2E0849190E09F0121C06430D8F4E62F41 +:10126000F0E0EE0FFF1FEF5CFE4F2081318189E03F +:1012700090E014C0643070F470E0FB01EE0FFF1FCB +:10128000E75DFE4F20813181FB01EB5DFE4F8081E8 +:1012900090E004C080E090E020E030E0FA0131838B +:1012A0002083089580E189BD82E189BD09B400FEF3 +:1012B000FDCF8091D8008F7D8093D8008091E00091 +:1012C00082608093E0008091E00081FDFCCF089572 +:1012D000CF92DF92EF92FF920F931F93CF93DF9302 +:1012E000EC018B016A010E94CB0A811133C0C11449 +:1012F000D10439F0F60180819181081B190BC80FC8 +:10130000D91FE12CF12C0115110519F18091E8008C +:1013100085FD16C08091E8008E778093E800C114A7 +:10132000D10449F0F60180819181E80EF91EF18225 +:10133000E08285E00FC00E94CB0A882321F30AC017 +:1013400089918093F10001501109FFEFEF1AFF0A14 +:10135000DACF80E0DF91CF911F910F91FF90EF9056 +:10136000DF90CF9008952091E6013091E701261794 +:10137000370748F06115710539F42091E8002E77A0 +:101380002093E80001C0B90140E061157105A9F1A1 +:101390002091DF01222309F443C0253009F442C023 +:1013A0002091E80023FD40C02091E80022FD32C0DA +:1013B0002091E80020FFE9CF4091F3002091F20056 +:1013C00030E0342BFC01CF016115710559F0283054 +:1013D000310540F481918093F100615071092F5FD4 +:1013E0003F4FF1CF41E02830310509F040E0209136 +:1013F000E8002E772093E800C8CF4111C9CF0AC07A +:101400008091DF01882361F0853061F08091E800F0 +:1014100083FD0AC08091E80082FFF2CF80E008954A +:1014200082E0089583E0089581E008952091E60127 +:101430003091E7012617370748F06115710539F437 +:101440002091E8002E772093E80001C0B901FC014B +:1014500020E06115710591F18091DF01882309F485 +:1014600040C0853009F43FC08091E80083FD3DC055 +:101470008091E80082FD2FC08091E80080FFE9CFD5 +:101480002091F3008091F20090E0922B611571059C +:1014900059F08830910540F424912093F100319661 +:1014A000615071090196F2CF21E0089709F020E020 +:1014B0008091E8008E778093E800CBCF2111CCCFCC +:1014C0000AC08091DF01882361F0853061F080914E +:1014D000E80083FD0AC08091E80082FFF2CF80E03F +:1014E000089582E0089583E0089581E00895982F9B +:1014F000973058F59093E900981739F07091EC0007 +:101500002091ED005091F00003C0242F762F50E081 +:1015100021FF19C03091EB003E7F3093EB003091FA +:10152000ED003D7F3093ED003091EB003160309362 +:10153000EB007093EC002093ED005093F0002091AD +:10154000EE0027FF07C09F5FD3CF8F708093E90025 +:1015500081E0089580E008958091E00187FF11C047 +:101560008091E80082FD05C08091DF018111F8CFF4 +:1015700011C08091E8008B770BC08091DF01882338 +:1015800049F08091E80080FFF8CF8091E8008E77E5 +:101590008093E80008952091E4003091E50095E6FD +:1015A0004091EC00842F817040FF22C08091E800C0 +:1015B00080FD1CC08091DF01882391F0853091F07F +:1015C0008091EB0085FD10C04091E4005091E50052 +:1015D0004217530729F39A01915011F784E00895B7 +:1015E00082E0089583E0089581E0089580E0089501 +:1015F0004091E80042FFDECF08950E946B0B0E94ED +:10160000730BE0EEF0E0808181608083E8EDF0E034 +:1016100080818F77808319BCA7EDB0E08C918E7F9D +:101620008C9380818F7E80831092DE0108950F93CA +:101630001F93CF93DF930E946B0B0E94730BC8ED37 +:10164000D0E088818F7788838881806888838881CB +:101650008F7D888319BC1092DF011092DB011092FC +:10166000DD011092DC0100EE10E0F80180818B7F3B +:10167000808388818160888342E060E080E00E940E +:10168000770AE1EEF0E080818E7F8083E2EEF0E089 +:10169000808181608083808188608083F80180817F +:1016A0008E7F8083888180618883DF91CF911F91B5 +:1016B0000F910895E8EDF0E080818F7E8083E7ED63 +:1016C000F0E080818160808384E082BF81E080934C +:1016D000DE010C94170BE8EDF0E080818E7F8083B3 +:1016E0001092E20008951092DA001092E10008953D +:1016F0001F920F920FB60F9211242F933F934F9387 +:101700005F936F937F938F939F93AF93BF93EF9369 +:10171000FF938091E10082FF0BC08091E20082FF85 +:1017200007C08091E1008B7F8093E1000E94DF0D74 +:101730008091DA0080FF1FC08091D80080FF1BC01D +:101740008091DA008E7F8093DA008091D90080FF4B +:101750000DC080E189BD82E189BD09B400FEFDCFE5 +:1017600081E08093DF010E94E70705C019BC109259 +:10177000DF010E94F5078091E10080FF19C0809190 +:10178000E20080FF15C08091E2008E7F8093E2002E +:101790008091E20080618093E2008091D8008062B5 +:1017A0008093D80019BC85E08093DF010E94F9077F +:1017B0008091E10084FF30C08091E20084FF2CC062 +:1017C00080E189BD82E189BD09B400FEFDCF809131 +:1017D000D8008F7D8093D8008091E1008F7E809328 +:1017E000E1008091E2008F7E8093E2008091E20030 +:1017F00081608093E2008091DB01882311F084E016 +:1018000007C08091E30087FD02C081E001C083E052 +:101810008093DF010E94FA078091E10083FF29C0D5 +:101820008091E20083FF25C08091E100877F809353 +:10183000E10082E08093DF011092DB018091E10002 +:101840008E7F8093E1008091E2008E7F8093E200A2 +:101850008091E20080618093E20042E060E080E0FD +:101860000E94770A8091F00088608093F0000E94C7 +:10187000F807FF91EF91BF91AF919F918F917F9169 +:101880006F915F914F913F912F910F900FBE0F90ED +:101890001F9018951F920F920FB60F9211242F933D +:1018A0003F934F935F936F937F938F939F93AF93E8 +:1018B000BF93CF93DF93EF93FF93C091E900CF7075 +:1018C0008091EC00D82FD17080FDD0E81092E90013 +:1018D0008091F000877F8093F00078940E948E0CB6 +:1018E0001092E9008091F00088608093F000CD2B89 +:1018F000CF70C093E900FF91EF91DF91CF91BF913D +:10190000AF919F918F917F916F915F914F913F9197 +:101910002F910F900FBE0F901F9018951F93CF938C +:10192000DF93CDB7DEB7AA970FB6F894DEBF0FBE30 +:10193000CDBFE0EEF1E088E08E0F9091F100919341 +:101940008E13FBCF0E9410088091E80083FF1FC117 +:101950008091E0019091E101492F50E04A3051051A +:1019600008F015C1FA01EA5AFF4F0C94D01D8038D7 +:1019700081F0823809F00BC18091E4018F7080936F +:10198000E9008091EB0085FB882780F91092E9003F +:1019900006C08091DC019091DD01911182609091EF +:1019A000E800977F9093E8008093F1001092F10097 +:1019B000C8C0282F2D7F09F0EAC0882319F0823093 +:1019C00061F0E5C08091E201813009F0E0C0933020 +:1019D00009F080E08093DD012BC08091E20181114C +:1019E00027C08091E4018F7009F4D1C08093E90091 +:1019F0002091EB0020FF1CC0933021F48091EB007C +:101A0000806214C09091EB0090619093EB0021E014 +:101A100030E0A90102C0440F551F8A95E2F74093B8 +:101A2000EA001092EA008091EB0088608093EB005E +:101A30001092E9008091E800877F86C08111A7C0DD +:101A40001091E2011F778091E3008078812B8093D1 +:101A5000E3008091E800877F8093E8000E94AC0A51 +:101A60008091E80080FFFCCF8091E3008068809344 +:101A7000E300111102C082E001C083E08093DF0126 +:101A800086C08058823008F082C08091E201909137 +:101A9000E3018C3D53E0950779F583E08A838AE280 +:101AA00089834FB7F894DE01139620E03EE051E2BF +:101AB000E32FF0E050935700E49120FF03C0E2953C +:101AC000EF703F5FEF708E2F90E0EA3010F0C79616 +:101AD00001C0C0968D939D932F5F243149F74FBF6E +:101AE0008091E800877F8093E8006AE270E0CE0191 +:101AF00001960E94B30914C0AE014F5F5F4F609121 +:101B0000E4010E94FA08BC01009709F440C09091DA +:101B1000E800977F9093E80089819A810E94160AD5 +:101B20008091E8008B778093E80031C0803879F5A8 +:101B30008091E800877F8093E8008091DB018093AB +:101B4000F1008091E8008E778093E8000E94AC0A53 +:101B50001EC081111CC09091E2019230C0F48091AE +:101B6000E800877F8093E8009093DB010E94AC0A35 +:101B70008091DB01811106C08091E30087FD02C0E6 +:101B800081E001C084E08093DF010E94FC07809126 +:101B9000E80083FF0AC08091E800877F8093E80017 +:101BA0008091EB0080628093EB00AA960FB6F894C8 +:101BB000DEBF0FBECDBFDF91CF911F910895089575 +:101BC000CF938091DF018823A1F0C091E900CF700D +:101BD0009091EC00892F817090FD80E8C82B1092C5 +:101BE000E9008091E80083FD0E948E0CCF70C093C5 +:101BF000E900CF91089590936D0180936C01089551 +:101C0000E0916C01F0916D01309721F00190F0812D +:101C1000E02D099480E00895E0916C01F0916D0150 +:101C2000309721F00280F381E02D09940895E0912E +:101C30006C01F0916D01309721F00480F581E02D69 +:101C40000994089520916A0130916B0182179307DE +:101C500071F090936B0180936A01E0916C01F091B7 +:101C60006D01309721F00680F781E02D09940895E9 +:101C700020916801309169018217930771F0909368 +:101C8000690180936801E0916C01F0916D013097DA +:101C900021F00084F185E02D0994089508950C94B5 +:101CA0004E0E0E9497190E9428060C941D1A5F92EE +:101CB0006F927F928F929F92AF92BF92CF92DF925C +:101CC000EF92FF920F931F93CF93DF9300D000D03A +:101CD0001F92CDB7DEB70E946D0697E7C92E91E03F +:101CE000D92E03E010E0AA24A394B12C502E802F0B +:101CF0000E94E8064C01F601729062906F0168261E +:101D0000792661147104A1F40150110978F78FEF5D +:101D100089838A831B820E94A0198160782F9D830A +:101D20008C8349815A816B818D810E94070F38C055 +:101D30008091CC0181FD0E94F1062BE030E075011D +:101D4000022E02C0EE0CFF1C0A94E2F7C7018621A6 +:101D50009721892B09F129835A828E209F2091E0B7 +:101D6000892809F490E09B830E94A0198160782F54 +:101D70009D838C8349815A816B818D810E94070FDD +:101D8000000F111FF801E159FE4F80819181E82673 +:101D9000F926F182E08204C02150310980F6B4CFE7 +:101DA0000E94E81B10916E010E94000E1817D1F0DE +:101DB0000E94000E80936E010F900F900F900F9075 +:101DC0000F90DF91CF911F910F91FF90EF90DF90D7 +:101DD000CF90BF90AF909F908F907F906F905F90CB +:101DE0000C9412060F900F900F900F900F90DF91B0 +:101DF000CF911F910F91FF90EF90DF90CF90BF9008 +:101E0000AF909F908F907F906F905F900895CF9349 +:101E1000DF93CDB7DEB72B970FB6F894DEBF0FBEBA +:101E2000CDBF4F83588769877A878B87DE011196EC +:101E300086E0FD0111928A95E9F785E0FE0137966B +:101E400001900D928A95E1F749815A816B817C81DD +:101E50008D819E810E944D152B960FB6F894DEBFA2 +:101E60000FBECDBFDF91CF910895882309F4B9C08B +:101E7000823859F40E94000E81FDB3C089E30E94AC +:101E800027180E94F41889E30CC0833871F40E946B +:101E9000000E80FDA6C083E50E9427180E94F4185A +:101EA00083E50E9469180C94F418843859F40E9450 +:101EB000000E82FD96C087E40E9427180E94F41845 +:101EC00087E4EFCF9CEF980F913A18F40E942718FF +:101ED000EACF90E2980F983050F4877091E001C0FB +:101EE000990F8A95EAF7892F0E94AD18DCCF9BE500 +:101EF000980F933070F4853A29F0863A31F083E8F0 +:101F000090E005C081E890E002C082E890E00C9487 +:101F1000220E98E5980F933108F063C0883A39F1A2 +:101F2000893A41F18A3A49F18B3A51F18C3A59F1A7 +:101F30008D3A61F1803B69F18E3A71F18F3A79F116 +:101F4000813B81F1823B89F1833B91F1843B99F1A3 +:101F5000853BA1F1863BA9F1873BB1F1883BB9F103 +:101F6000893BC1F18A3BC9F180E090E038C082EE44 +:101F700090E035C089EE90E032C08AEE90E02FC04C +:101F800085EB90E02CC086EB90E029C087EB90E0D9 +:101F900026C08CEC90E023C08DEC90E020C083E85C +:101FA00091E01DC08AE891E01AC082E991E017C073 +:101FB00084E991E014C081E292E011C083E292E0F2 +:101FC0000EC084E292E00BC085E292E008C086E297 +:101FD00092E005C087E292E002C08AE292E00C94AF +:101FE000380E0895882309F44BC0823859F40E94B2 +:101FF000000E81FF45C089E30E9427180E94F41853 +:1020000089E30CC0833871F40E94000E80FF38C051 +:1020100083E50E9427180E94F41883E50E9469183E +:102020000C94F418843859F40E94000E82FF28C0E2 +:1020300087E40E9427180E94F41887E4EFCF9CEFF2 +:10204000980F913A58F390E2980F983050F48770B7 +:1020500091E001C0990F8A95EAF7892F0E94B31881 +:10206000DFCF9BE5980F933020F480E090E00C9454 +:10207000220E885A833120F480E090E00C94380ED0 +:102080000895882321F00E94AD180C94F418089547 +:10209000882321F00E94B3180C94F41808957F92BD +:1020A0008F929F92AF92BF92CF92DF92EF92FF9268 +:1020B0000F931F93CF93DF931F92CDB7DEB77C01B1 +:1020C000C62E772EFC01058102950F701281111129 +:1020D0000E94CA180E942018882379F0112369F001 +:1020E00080E28C0D883048F082E00E9409180E943E +:1020F000201891E0D82ED92601C0D12CE72DE295E9 +:10210000EF70F0E0E05AFF4F0C94D01D872D807FD8 +:10211000072D0F70882311F00295007F112389F09D +:10212000002309F498C180E28C0D883020F4802FC0 +:102130000E94AD1803C0802F0E94BD180E94F418A1 +:102140008AC18C2D0E94F20F002309F49DC180E208 +:102150008C0D883020F4802F0E94B31803C0802F8C +:102160000E94C3180E94F4188FC1872D807F972D7D +:102170009F70803211F4892F03C0892F8295807F50 +:10218000CC2021F0F1E0CF16A1F01DC0112339F0D1 +:10219000002319F1013009F50E94DD1875C10023F3 +:1021A00019F0013009F470C189830E94E018898117 +:1021B00010C1112321F0063008F066C10EC00530B1 +:1021C00008F062C106C1112359F0002331F0F70174 +:1021D000958190FF40C19F7095830E94411054C12A +:1021E000002309F4F6C03DC1872D8695869583703E +:1021F00090E0009719F0019761F046C1112321F09A +:102200008C2D972D937002C080E090E00E94220EEA +:102210003BC1112321F08C2D972D937002C080E0DB +:1022200090E00E94380E30C18C2D112319F00E94CD +:10223000F01A02C00E94581B0E94DD1B25C1872D89 +:10224000837009F052C011111FC18C2D82958695A3 +:102250008770880F880F9C2D9F70892E912CA12C40 +:10226000B12C082E04C0880C991CAA1CBB1C0A9413 +:10227000D2F7C4FE14C00FE010E020E030E0B90156 +:10228000A80104C0440F551F661F771F8A95D2F717 +:10229000CB01BA01609570958095909503C060E080 +:1022A00070E0CB01272D26952695237030E0223053 +:1022B000310569F02330310589F0682979298A29A7 +:1022C0009B292130310571F00E949516DDC06829E7 +:1022D00079298A299B290E94B116D6C00E94951699 +:1022E000C501B4010E947916CFC0112319F0872DC2 +:1022F000817001C08695882309F4C6C08C2D829513 +:1023000086958770880F880F9C2D9F70892E912C41 +:10231000A12CB12C082E04C0880C991CAA1CBB1C33 +:102320000A94D2F7C4FE14C00FE010E020E030E0C1 +:10233000B901A80104C0440F551F661F771F8A9575 +:10234000D2F7CB01BA01609570958095909503C046 +:1023500060E070E0CB01272D269526952370422F53 +:1023600050E04230510569F04330510589F0682949 +:1023700079298A299B294130510571F00E946F17F4 +:1023800083C0682979298A299B290E948B177CC0E0 +:102390000E946F17C501B4010E94531775C08C2DA0 +:1023A00090E0FC01E05EF109E531F10508F04FC075 +:1023B000E059FF4F0C94D01D0C2D0F70872D8F719D +:1023C000112321F00E94EC16802F07CF0E940D17D9 +:1023D000802F0E94481058C0112341F0053008F0AA +:1023E00053C0872D8F710E9432174EC0063008F0FF +:1023F0004BC0F7CF112339F0872D8F710E94EC1657 +:1024000043C01123C9F3872D8F710E940D173CC063 +:10241000112329F0872D8F710E94D71635C00E9495 +:10242000CD1632C0112351F0172D1F71812F0E943C +:10243000EC1663E0812F0E94001826C081E00E9404 +:102440000918023008F182E00E9409181DC011230A +:1024500031F0002389F28C2D0E94350F15C0002326 +:1024600091F28C2D0E94F20F0FC0472D4F706C2DF2 +:10247000C7010E9456020E94F11506C0472D4F70F9 +:102480006C2DC7010E942203DD20F9F00E94FC1789 +:1024900080FD1BC0F70112820E94F6170E94EC1605 +:1024A000C7010E9474120E94F6170F90DF91CF911E +:1024B0001F910F91FF90EF90DF90CF90BF90AF9062 +:1024C0009F908F907F900C940D170F90DF91CF917C +:1024D0001F910F91FF90EF90DF90CF90BF90AF9042 +:1024E0009F908F907F9008950F931F93CF93DF93CA +:1024F000EC01888199812B813C81232BB9F09F3F8E +:1025000011F48F3F99F0CE010E947602882371F07A +:10251000688179818A810E94F2178C010E94A71735 +:102520000E946E16B801CE010E944F10DF91CF912C +:102530001F910F9108950E94CA180E94DA180E94F4 +:102540009F180E94F4180E948E1C0E94DD1B80E0E0 +:1025500090E00E94220E80E090E00C94380E0E94E1 +:10256000BA180C949B120E94E717292F22952F70FE +:1025700030E02C3031054CF42A3031056CF4225017 +:10258000310922303105A8F407C02C30310569F03B +:102590002F30310551F00DC0803F69F018F4803EB6 +:1025A00040F409C0843F29F406C093FB882780F9D2 +:1025B000089580E0089581E00895CF93DF9300D0DF +:1025C00000D01F92CDB7DEB70F900F900F900F90F5 +:1025D0000F90DF91CF910895CF93DF9300D000D07B +:1025E00000D0CDB7DEB726960FB6F894DEBF0FBE8B +:1025F000CDBFDF91CF9108951F93CF93DF93C0910B +:10260000770116E080917801C81799F0D0E01C9FFF +:10261000F0011D9FF00D1124E758FE4F40815181BC +:1026200062817381848195810E94EC122196C7702A +:10263000E9CFDF91CF911F9108954091A901509169 +:10264000AA016091AB017091AC018091AD019091B4 +:10265000AE010C94EC128091AE0182958F7009F05E +:1026600054C08091AB01882309F44FC08091770159 +:10267000A09178016091A9017091AA014091AC01EB +:102680005091AD01B6E08A1709F43FC090E04115C2 +:102690005105C1F17F3F11F46F3FA1F1B89FF001E7 +:1026A000B99FF00D1124E758FE4F218172132AC003 +:1026B0002081621327C02281211124C0238134810B +:1026C0002417350710F421503109241B350B283C01 +:1026D0003105C0F42091AE012F7020612093AE012E +:1026E00026E0289FF001299FF00D1124E258FE4FAB +:1026F00080818F708061808389EA91E00E947412EA +:102700000C94FC1201968770BECF0895CF92DF9291 +:10271000EF92FF920F931F93CF93DF93CDB7DEB766 +:1027200062970FB6F894DEBF0FBECDBF8C0185E077 +:10273000F801DE011D9601900D928A95E1F7D8010E +:102740004C9111965C91119712966C911297139679 +:10275000CD90DC9014973091A9017091AA018091DD +:10276000AC019091AD01009709F46BC17F3F19F462 +:102770003F3F09F466C1E090AB01EE2009F4C0C010 +:102780002091AE01C816D90628F0F601E81BF90B16 +:10279000CF0104C0809590958C0D9D1DFF24F3946E +:1027A000883C910578F0F12C207F09F0C6C07C2D83 +:1027B000D98AC88A89890E94DD1289EA91E00E943B +:1027C0007412B1C0822F807F09F046C0751314C007 +:1027D000341312C0611110C02F7020612093AE011C +:1027E0000E941D1389EA91E00E9474128091AE014B +:1027F000D80115968C932EC0CD2819F15F3F11F4A6 +:102800004F3FF9F0F62E61111CC0809177012091A5 +:10281000780136E0821709F45AC090E0389FF00141 +:10282000399FF00D1124E758FE4F7181571306C0F0 +:102830007081471303C07281711103C001968770C4 +:10284000E9CFF62E662309F418C18091AE018160AC +:102850008093AE01F12C11C1751308C0341306C06A +:10286000611104C08091AE01D801C3C04D875E875D +:102870008D859E856A8B0E94B3126A898823E1F157 +:102880006623D1F12091AE01822F82958F7090E066 +:10289000029774F08091A9019091AA0198878F8383 +:1028A0001986DB86CA862C87CE0107960E94741291 +:1028B00086E0F801A9EAB1E001900D928A95E1F76E +:1028C0000E942B130E941D13FF24F394D6C04D8742 +:1028D0005E878D859E850E94E717292F22952F7090 +:1028E00030E0223031050CF0BCC09F7009F0B6C05A +:1028F000805E883008F4C1C0C8010E947412E4CF21 +:10290000C816D90608F453C0F601E81BF90BCF012D +:10291000883C910508F450C0F12C7C2DD98AC88AD6 +:1029200089890E94DD12E9EAF1E086E0DF011D926B +:102930008A95E9F70E941D13A0C0751314C03413C3 +:1029400012C0611110C08091AE01F8018583C801E9 +:102950000E94741286E0E9EAF1E0DF011D928A9597 +:10296000E9F7FE2C8AC04D875E878D859E856A8B30 +:102970000E94B3126A89882309F4BECF662309F442 +:10298000BBCF2091AE01822F82958F7090E002978D +:102990000CF48ECF8091A9019091AA019A8389832A +:1029A0001B82DD82CC822E83CE0101967FCF809563 +:1029B00090958C0D9D1DACCFF62E662309F49CCF0F +:1029C00075132EC034132CC02091AE0120FD1FC002 +:1029D000822F82958F70D9F0D80115962C93159778 +:1029E0008F3049F08F5F982F9295907F822F8F7054 +:1029F000892B15968C93C8010E94741286E0F80109 +:102A0000A9EAB1E001900D928A95E1F793CF86E0B3 +:102A1000F801A9EAB1E001900D928A95E1F72DC085 +:102A20004D875E878D859E850E94B312811140CFB0 +:102A30008091AE0181608093AE01C8010E94741242 +:102A40001CC0662309F458CF4D875E878D859E850F +:102A50000E94B312882309F44FCF2ACF811148CFA7 +:102A60000CC0243031050CF047CF9F7009F440CFE3 +:102A7000F8019581907F09F03BCF8F2D62960FB6BC +:102A8000F894DEBF0FBECDBFDF91CF911F910F91A4 +:102A9000FF90EF90DF90CF9008951F93CF93DF9337 +:102AA000CDB7DEB72C970FB6F894DEBF0FBECDBF03 +:102AB0004F83588769877A878B879C87CE010796D3 +:102AC0000E948613882369F08F8198852A853B852B +:102AD000232BF1F19F3F09F063C08F3F09F060C0E5 +:102AE00037C086E0FE013796DE01119601900D9207 +:102AF0008A95E1F76F817885EA85FB85309741F10A +:102B00007F3F11F46F3F21F12091780130E0C9013E +:102B10000196877099274091770150E084179507B7 +:102B200009F447C069837A83FD83EC8396E0929F22 +:102B3000D001939FB00D1124A758BE4FFE013196CE +:102B400001900D929A95E1F7809378010E94FC1212 +:102B500016E080917701909178018917C1F1189F53 +:102B6000C001112487589E4F0E948613882379F153 +:102B7000E09177011E9FF0011124E758FE4F40813C +:102B8000518162817381848195810E94EC128091D0 +:102B9000770190E001968770992780937701D9CFCC +:102BA0004F81588569857A858B859C850E94EC12BA +:102BB000CFCF0E94AF121092780110927701E9EA0C +:102BC000F1E086E0DF011D928A95E9F7C1CF2C96EE +:102BD0000FB6F894DEBF0FBECDBFDF91CF911F912E +:102BE0000895EF92FF920F931F93CF93DF938C0181 +:102BF000009709F46CC0F12CEE24E394E8012196CF +:102C0000F8018491843740F4843008F051C0813059 +:102C100081F0823019F15BC0853709F444C0A8F116 +:102C20009CE7980F903708F052C08F770E94F20F00 +:102C300041C00E5F1F4FFE01C49180E28C0F8830AF +:102C400048F4C7708E2D01C0880FCA95EAF70E941C +:102C5000CD1814C08C2F0E94350F2DC00E5F1F4F52 +:102C6000FE01C49180E28C0F883058F4C7708E2D1D +:102C700001C0880FCA95EAF70E94D3180E94F41881 +:102C80001AC08C2F0E94F20F16C00E5F1F4FFE015C +:102C9000C491CC2381F08FE99FE00197F1F700C048 +:102CA0000000C150F6CF0E5F1F4FFE01F49003C02D +:102CB0000E94350F8E018F2D882309F49FCFEFE9F5 +:102CC000FFE03197F1F700C000008150F5CFDF91B0 +:102CD000CF911F910F91FF90EF9008950895609309 +:102CE000B3017093B4018093B5019093B6010C9435 +:102CF0009B120F931F930091B3011091B401209187 +:102D0000B5013091B601DC01CB01802B912BA22BB8 +:102D1000B32B8093B3019093B401A093B501B0930A +:102D2000B6011F910F910C949B120F931F9300916A +:102D3000B3011091B4012091B5013091B601DC01CD +:102D4000CB0180239123A223B3238093B3019093DB +:102D5000B401A093B501B093B6011F910F910C94EB +:102D60009B120F931F930091B3011091B401209116 +:102D7000B5013091B601DC01CB0180279127A22754 +:102D8000B3278093B3019093B401A093B501B0939E +:102D9000B6011F910F910C949B121092AF011092EB +:102DA000B0011092B1011092B2010C949B1241E05B +:102DB00050E060E070E004C0440F551F661F771FAD +:102DC0008A95D2F74093AF015093B0016093B1015F +:102DD0007093B2010C949B1241E050E060E070E00F +:102DE00004C0440F551F661F771F8A95D2F7809144 +:102DF000AF019091B001A091B101B091B201482B07 +:102E0000592B6A2B7B2B4093AF015093B0016093F9 +:102E1000B1017093B2010C949B1241E050E060E06C +:102E200070E004C0440F551F661F771F8A95D2F7C4 +:102E300040955095609570958091AF019091B0014B +:102E4000A091B101B091B201482359236A237B2399 +:102E50004093AF015093B0016093B1017093B20100 +:102E60000C949B1241E050E060E070E004C0440F1D +:102E7000551F661F771F8A95D2F78091AF019091F9 +:102E8000B001A091B101B091B201482759276A273A +:102E90007B274093AF015093B0016093B1017093D1 +:102EA000B2010C949B120F931F930091AF011091EC +:102EB000B0012091B1013091B201DC01CB01802B36 +:102EC000912BA22BB32B8093AF019093B001A093D1 +:102ED000B101B093B2011F910F910C949B120F930B +:102EE0001F930091AF011091B0012091B101309179 +:102EF000B201DC01CB0180239123A223B323809371 +:102F0000AF019093B001A093B101B093B2011F91B2 +:102F10000F910C949B120F931F930091AF0110918E +:102F2000B0012091B1013091B201DC01CB018027C9 +:102F30009127A227B3278093AF019093B001A0936C +:102F4000B101B093B2011F910F910C949B1208959F +:102F5000CF92DF92EF92FF920F931F93CF93DF9365 +:102F60008C01C090B301D090B401E090B501F09015 +:102F7000B6018091AF019091B001A091B101B091E3 +:102F8000B201C82AD92AEA2AFB2ACFE1D0E0D70128 +:102F9000C6010C2E04C0B695A795979587950A94FF +:102FA000D2F780FF06C0B8018C2F0E9478050197E8 +:102FB00021F4219760F780E001C08C2FDF91CF9141 +:102FC0001F910F91FF90EF90DF90CF900895CF93D6 +:102FD000DF93EC010E94A817BE010E947805DF91E3 +:102FE000CF910895CB010E94E71708958091B70112 +:102FF00085958595859508958091B7018770089589 +:1030000098E0899F90011124262B2093B7010C94FE +:10301000EC162091B701809582238093B701982FF9 +:10302000977069F430E0482F552747FD50952417D5 +:10303000350729F08595859585950C940D1708958C +:103040009091B701977081E009F480E00895909124 +:103050000B01992321F090910C01911109C020914D +:103060000D0130910E01F90132969FEF40E01FC033 +:10307000982F9695969596959F3050F5E0910D0175 +:10308000F0910E01E90FF11D877021E030E0A901F8 +:1030900002C0440F551F8A95E2F7CA019181892B1E +:1030A000818308959F3F39F04F5F4E3041F0519139 +:1030B0005813F8CF0DC05111F7CF942FF5CF9F3F84 +:1030C00039F0F901E90FF11D97FDFA958283089512 +:1030D000089590910B01992321F090910C01911189 +:1030E00009C020910D0130910E01F9013296205F47 +:1030F0003F4F1FC0982F9695969596959F30F0F468 +:10310000E0910D01F0910E01E90FF11D877021E0B2 +:1031100030E0A90102C0440F551F8A95E2F7CA01A9 +:10312000809591818923818308953196E217F30771 +:1031300029F090819813F9CF1082F7CF089581E09C +:1031400090E0E0910D01F0910E01E80FF91F10825F +:10315000019680319105A9F708959091CB01892BB3 +:103160008093CB01089580959091CB018923809322 +:10317000CB0108951092CB0108959091CA01892B3B +:103180008093CA01089580959091CA018923809304 +:10319000CA0108951092CA0108959091C901892B1E +:1031A0008093C901089580959091C90189238093E6 +:1031B000C90108951092C90108958093B801089536 +:1031C0001092B801089580910D0190910E01FC01BB +:1031D00031969C01205F3F4F80E0919191118F5F6C +:1031E000E217F307D1F70895E0910D01F0910E0178 +:1031F0008091CB018083E0910D01F0910E019081CF +:103200008091CA01892B8083E0910D01F0910E011C +:1032100090818091C901892B80838091B801882396 +:1032200061F0E0910D01F0910E019081892B808376 +:103230000E94E31881111092B80180910D019091C4 +:103240000E010C940C0E20E0009739F0AC014150B7 +:103250005109842395232F5FF7CF822F0895809102 +:10326000DF01843021F11092CD0120E488E190E06B +:103270000FB6F894A895809360000FBE209360006D +:1032800080E00E94120683B7817F846083BF83B78A +:10329000816083BF7894889583B78E7F83BF88E1F0 +:1032A0000FB6F89480936000109260000FBE0895EE +:1032B000089508950E9458190E946D060E94591998 +:1032C0000E94F20691E0811101C090E0892F0895DB +:1032D0000E94AF120E94000E0C9412061F920F92D1 +:1032E0000FB60F9211248F939F93AF93BF9380914A +:1032F000CD01811113C08091CE019091CF01A09199 +:10330000D001B091D1014196A11DB11D8093CE0194 +:103310009093CF01A093D001B093D101BF91AF9111 +:103320009F918F910F900FBE0F901F90189582E084 +:1033300084BD93E095BD9AEF97BD80936E0008958C +:103340002FB7F8948091CE019091CF01A091D00138 +:10335000B091D1012FBF0895CF92DF92EF92FF92EB +:103360000F931F932FB7F8944091CE015091CF0146 +:103370006091D0017091D1012FBF6A017B01EE24D1 +:10338000FF248C0120E030E0C016D106E206F306EF +:1033900010F4415051099A01281B390BC9011F91A2 +:1033A0000F91FF90EF90DF90CF9008951F920F92B2 +:1033B0000FB60F9211248F939F93AF93BF93809179 +:1033C000CE019091CF01A091D001B091D101019691 +:1033D000A11DB11D8093CE019093CF01A093D00188 +:1033E000B093D101BF91AF919F918F910F900FBE7C +:1033F0000F901F9018950E94FD0AF8942FEF87EA0E +:1034000091E6215080409040E1F700C0000087E045 +:1034100090EBDC018093E9019093EA01A093EB012A +:10342000B093EC019CE088E10FB6F894A8958093E6 +:1034300060000FBE90936000FFCF0E94521A81116E +:1034400002C00E94381A0E945D1A8093CC010E942B +:10345000651A8093E80187FB882780F980930C0127 +:103460000E94611A682F70E080E090E00C946F1663 +:103470006DEE7EEF80E090E00E940A1E60E082E048 +:1034800090E00E94F81D60E083E090E00E94F81D4B +:1034900060E084E090E00E94F81D60E085E090E04C +:1034A0000C94F81D80E090E00E94F21D21E08D3E1A +:1034B0009E4F09F020E0822F089582E090E00C9466 +:1034C000EA1D83E090E00C94EA1D84E090E00C9407 +:1034D000EA1D682F84E090E00C94F81D8091D401DF +:1034E00080FF0BC06091120185E0689FB00111243C +:1034F00075956795759567952BC081FF09C060919B +:10350000120185E0689FB00111247595679520C070 +:1035100082FF07C06091120185E0689FB00111240D +:1035200017C09091D5019923D1F0609111019617A0 +:1035300088F72091120185E0289F90011124929F25 +:10354000A001939F500D112470E0CA010E94BC1D80 +:103550006038710540F46115710539F002C065E00D +:1035600070E0862F08958FE7089581E00895809197 +:10357000D40180FF08C06091100170E075956795D7 +:103580007595679521C081FF06C06091100170E0BC +:103590007595679519C082FF04C06091100170E0B5 +:1035A00010C09091D5019923C1F060910F01961739 +:1035B000A0F780911001899FC001112470E00E9442 +:1035C000BC1D6038710528F46115710521F0862F46 +:1035D00008958FE7089581E0089561E070E0F4CFE9 +:1035E000803F21F40E946E1A819504C0813F29F426 +:1035F0000E946E1A8093D8010895823F21F40E94A0 +:103600006E1A819504C0833F29F40E946E1A80933C +:10361000D7010895893F19F40E94B71A05C08A3F5F +:1036200031F40E94B71A81958093D90108958B3F98 +:1036300021F40E94B71A819504C08C3F29F40E949E +:10364000B71A8093DA010895843F21F48091D6015E +:10365000816017C0853F21F48091D601826011C03E +:10366000863F21F48091D60184600BC0873F21F40E +:103670008091D601886005C0883F31F48091D601E1 +:1036800080618093D60108958D3F21F48091D4010B +:1036900081600BC08E3F21F48091D401826005C00F +:1036A0008F3F29F48091D40184608093D4010895E0 +:1036B000803F39F48091D80187FF6CC01092D80107 +:1036C00069C0813F29F48091D8011816BCF362C00B +:1036D0009091D701823F29F497FF5CC01092D701E7 +:1036E00059C0833F19F41916CCF354C0893F41F4F3 +:1036F0008091D90118160CF04DC01092D9014AC022 +:103700008A3F29F48091D90187FF44C0F6CF8B3FCF +:1037100039F48091DA0187FF3DC01092DA013AC096 +:103720008C3F29F48091DA011816BCF333C0843F32 +:1037300021F48091D6018E7F17C0853F21F48091BE +:10374000D6018D7F11C0863F21F48091D6018B7FF9 +:103750000BC0873F21F48091D601877F05C0883F49 +:1037600031F48091D6018F7E8093D60113C08D3FB6 +:1037700021F48091D4018E7F0BC08E3F21F4809183 +:10378000D4018D7F05C08F3F29F48091D4018B7FB8 +:103790008093D4018091D70181110EC08091D8010E +:1037A00081110AC08091D901811106C08091DA018E +:1037B000811102C01092D501089586ED91E00E941A +:1037C000170E0E94A0199093D3018093D2010895FF +:1037D0001F93CF93DF938091D2019091D3010E94E8 +:1037E000AC19AC019091D501992321F020911301DE +:1037F00030E006C0209114018AE0289F9001112436 +:103800004217530708F486C08091D701C091D801B0 +:10381000D091D9011091DA01811107C0C11176C090 +:10382000D11174C0111172C075C09F3F19F09F5F14 +:103830009093D501181624F40E946E1A8093D70134 +:103840008091D70187FF05C00E946E1A81958093F1 +:10385000D7011C1624F40E946E1A8093D80180911F +:10386000D80187FF05C00E946E1A81958093D80108 +:103870006091D701662339F1C091D801CC2319F1A9 +:10388000772767FD7095872F972F0E94CD1C23E324 +:1038900033E343E35FE30E94311D0E949A1C60936F +:1038A000D7016C2F772767FD7095872F972F0E9480 +:1038B000CD1C23E333E343E35FE30E94311D0E9409 +:1038C0009A1C6093D8011D1624F40E94B71A8093A5 +:1038D000D9018091D90187FF05C00E94B71A81954F +:1038E0008093D901111624F40E94B71A8093DA014B +:1038F0008091DA0187FF05C00E94B71A81958093F5 +:10390000DA01DF91CF911F910C94DD1B9F3F09F0ED +:103910008ECF96CFDF91CF911F910895E6EDF1E024 +:1039200085E0DF011D928A95E9F71092D50110928A +:10393000D401089504D06894B1118DC0089570D059 +:1039400088F09F5790F0B92F9927B751A0F0D1F088 +:10395000660F771F881F991F1AF0BA95C9F712C012 +:10396000B13081F077D0B1E0089574C0672F782F1F +:103970008827B85F39F0B93FCCF38695779567957E +:10398000B395D9F73EF490958095709561957F4FEA +:103990008F4F9F4F0895E89409C097FB3EF4909590 +:1039A0008095709561957F4F8F4F9F4F9923A9F018 +:1039B000F92F96E9BB279395F695879577956795A7 +:1039C000B795F111F8CFFAF4BB0F11F460FF1BC0EB +:1039D0006F5F7F4F8F4F9F4F16C0882311F096E97E +:1039E00011C0772321F09EE8872F762F05C066232C +:1039F00071F096E8862F70E060E02AF09A95660FE5 +:103A0000771F881FDAF7880F9695879597F908959D +:103A100057FD9058440F551F59F05F3F71F047957F +:103A2000880F97FB991F61F09F3F79F08795089564 +:103A3000121613061406551FF2CF4695F1DF08C083 +:103A4000161617061806991FF1CF869571056105A0 +:103A500008940895E894BB2766277727CB0197F948 +:103A600008950BD078C069D028F06ED018F0952357 +:103A700009F05AC05FC01124EECFCADFA0F3959FB2 +:103A8000D1F3950F50E0551F629FF001729FBB2745 +:103A9000F00DB11D639FAA27F00DB11DAA1F649FF1 +:103AA0006627B00DA11D661F829F2227B00DA11DA4 +:103AB000621F739FB00DA11D621F839FA00D611D2A +:103AC000221F749F3327A00D611D231F849F600D4B +:103AD000211D822F762F6A2F11249F5750408AF084 +:103AE000E1F088234AF0EE0FFF1FBB1F661F771F10 +:103AF000881F91505040A9F79E3F510570F014C0A7 +:103B0000AACF5F3FECF3983EDCF3869577956795F7 +:103B1000B795F795E7959F5FC1F7FE2B880F911D2D +:103B20009695879597F9089597F99F6780E870E0D3 +:103B300060E008959FEF80EC089500240A94161623 +:103B4000170618060906089500240A94121613068B +:103B5000140605060895092E0394000C11F4882319 +:103B600052F0BB0F40F4BF2B11F460FF04C06F5F35 +:103B70007F4F8F4F9F4F089597FB072E16F40094A9 +:103B800007D077FD09D00E94D61D07FC05D03EF472 +:103B9000909581959F4F0895709561957F4F0895F9 +:103BA000EE0FFF1F0590F491E02D0994AA1BBB1B9B +:103BB00051E107C0AA1FBB1FA617B70710F0A61B2D +:103BC000B70B881F991F5A95A9F780959095BC014E +:103BD000CD010895F999FECF92BD81BDF89A99273C +:103BE00080B50895A8E1B0E042E050E00C94121EC8 +:103BF000262FF999FECF92BD81BDF89A019700B4A6 +:103C0000021639F01FBA20BD0FB6F894FA9AF99A45 +:103C10000FBE08950196272F0E94F91D0C94F81DE0 +:103C2000DC01CB01FC01F999FECF06C0F2BDE1BD7C +:103C3000F89A319600B40D9241505040B8F708956B +:043C4000F894FFCF26 +:103C4400FF0807960773073F070B070101B901280F +:103C540008140A321E1F0F03764F5F6F7F496943B2 +:103C64007909595363404D3639C10374033E030542 +:0A3C7400039802B102CA02E3020045 +:00000001FF diff --git a/keyboards/planck/keymaps/basic/keymap.c b/keyboards/planck/keymaps/basic/keymap.c new file mode 100644 index 000000000..36a066e91 --- /dev/null +++ b/keyboards/planck/keymaps/basic/keymap.c @@ -0,0 +1,94 @@ +#include "planck.h" + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[0] = { + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {KC_RSFT, KC_LCTL, KC_LALT, KC_LGUI, M(1), KC_SPC, KC_SPC, M(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Reset | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[1] = { + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______}, + {RESET, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Reset | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[2] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______}, + {RESET, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + + +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case 1: + if (record->event.pressed) { + layer_on(1); + } else { + layer_off(1); + } + break; + case 2: + if (record->event.pressed) { + layer_on(2); + } else { + layer_off(2); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboards/planck/keymaps/bone2planck/Makefile b/keyboards/planck/keymaps/bone2planck/Makefile new file mode 100644 index 000000000..581e08cd0 --- /dev/null +++ b/keyboards/planck/keymaps/bone2planck/Makefile @@ -0,0 +1,25 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/bone2planck/compiled.hex b/keyboards/planck/keymaps/bone2planck/compiled.hex new file mode 100644 index 000000000..0d5287b3e --- /dev/null +++ b/keyboards/planck/keymaps/bone2planck/compiled.hex @@ -0,0 +1,1450 @@ +:100000000C9491020C94D5020C94D5020C94D50258 +:100010000C94D5020C94D5020C94D5020C94D50204 +:100020000C94D5020C94D5020C9482140C945415A3 +:100030000C94B6220C94D5020C94D5020C94D502E3 +:100040000C94D5020C9437030C94D5020C94D50271 +:100050000C94D5020C941E230C94D5020C94D5025A +:100060000C94D5020C94D5020C94D5020C94D502B4 +:100070000C94D5020C94D5020C94D5020C94D502A4 +:100080000C94F70A0C94D5020C94D5020C94D5026A +:100090000C94D5020C94D5020C94D5020C94D50284 +:1000A0000C94D5020C94D5020C94D502C115E3151D +:1000B000D116E315D11628164B16D116A016B31675 +:1000C0009D199D19CC19CC190B1A2B1A811B811B58 +:1000D000361A811BE61AE61A4D1B561B811B7B1B29 +:1000E000F31AF31AF31AF31AF31AF31AF31AF31AA8 +:1000F000F31AF31AF31AF31AF31AF31AF31AF31A98 +:10010000031B111B181B1F1B291B07634236B79BC0 +:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 +:100120005763BD6DEDFD753EF6177231BF000000DF +:10013000803F08000000BE922449123EABAAAA2AC2 +:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD +:1001500000000000BF000000803F00000000000819 +:100160004178D3BB4387D1133D190E3CC3BD4282B6 +:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 +:10018000FFBE01C4FF7F3F00000000000000000030 +:1001900000000000000000010204060A0F17202CD6 +:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 +:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF +:1001C00002010000000000000000000014000D000B +:1001D0000700180004001B0013000B000F001000A4 +:1001E0001A002D000152060017000C000800120032 +:1001F00005001100150016000A0001521600090042 +:1002000019002F00340033001D001C003600370099 +:100210000E001600E000E300E200035202522C0040 +:100220002C000252035229002B002800350214141E +:1002300038022514261435001E02640064022702C9 +:100240002302000001002D1424022414271430027C +:100250002D0225022602380037020100000031007D +:100260002102641430140814300022021F023102EB +:100270003602000001000100010001000100010040 +:1002800001000100010001000100010000004B001D +:100290002A0052004C004E000000240025002600D9 +:1002A0000000000000004A00500051004F004D00C7 +:1002B0003700210022002300360000001600000055 +:1002C0002B0049002800000027001E001F0020000E +:1002D00036021600010001000100010001000100CA +:1002E0000100010001000100010001000000000008 +:1002F0004600470048000000000040004100420066 +:100300004500000000000000A800AA00A9000000AD +:1003100020143D003E003F004400000001000000AA +:10032000AC00AE00AB0000001F143A003B003C00E4 +:100330004300010001000100010001000000010074 +:100340000100000001000100010001002803540029 +:1003500068006500200050006C0061006E006300C2 +:100360006B0020004B006500790062006F006100A7 +:100370007200640000002C034F00720074006800DB +:100380006F006C0069006E00650061007200200063 +:100390004B006500790062006F006100720064002C +:1003A000730000000403090409026D00040100A0A9 +:1003B000FA090400000103010100092111010001F3 +:1003C000223F000705810308000A09040100010318 +:1003D000010200092111010001224D0007058203DD +:1003E00008000A09040200010300000009211101AC +:1003F00000012236000705830308000A09040300F0 +:100400000103000000092111010001223900070544 +:1004100084031000011201100100000008EDFE60CD +:100420006001000102000105010906A1010507198B +:10043000E029E715002501950875018102050819D5 +:100440000129059505750191029501750391010535 +:10045000071900297715002501957875018102C0DB +:1004600005010980A101850216010026B7001A01C5 +:10047000002AB700751095018100C0050C0901A183 +:10048000018503160100269C021A01002A9C0275B0 +:100490001095018100C005010902A1010901A10017 +:1004A0000509190129051500250195057501810228 +:1004B0009501750381010501093009311581257FF9 +:1004C00095027508810609381581257F9501750803 +:1004D0008106050C0A38021581257F950175088172 +:1004E00006C0C005010906A101050719E029E715A5 +:1004F00000250195087501810295017508810105A6 +:100500000819012905950575019102950175039159 +:10051000010507190029FF150025FF9506750881BB +:1005200000C011241FBECFEFDAE0DEBFCDBF04B69E +:1005300003FE24C080911E0390911F03A09120030D +:10054000B09121038730904BA740B04BB9F4109283 +:100550001E0310921F03109220031092210314BE59 +:1005600084B7877F84BF88E10FB6F89480936000DA +:10057000109260000FBEE0E0F8E3099511E0A0E002 +:10058000B1E0E6ECF9E502C005900D92A03CB107A0 +:10059000D9F713E0A0ECB1E001C01D92AE31B10774 +:1005A000E1F70E94C8110C94E12C0C94000008950E +:1005B000089581E0089508950C94D8020C94D9020E +:1005C0000C94DB020E94AB2823E030E0281B3109A9 +:1005D000220F2093C4010895282F2F988091800026 +:1005E000211108C0877F8093800010928D001092A7 +:1005F0008C001BC0886080938000233019F48FEF3B +:100600009FEF0FC083E090E0821B9109880F991F34 +:100610002FEF3FEFA90102C0569547958A95E2F763 +:10062000CA0190938D0080938C000C94E2020E948A +:10063000E20284E08093C3011092C0010895279ADA +:100640002F988FEF9FEF90938700809386008AE02A +:100650008093800089E1809381000E9414280C948B +:1006600017030E941F036E9A769A0C94D7021F926A +:100670000F920FB60F9211242F933F938F939F9356 +:10068000EF93FF93E091C101F091C201CF01019678 +:100690009093C2018093C1010090C30102C0F695FE +:1006A000E7950A94E2F7EF738091C001823019F464 +:1006B000E03251F404C0813039F4EF3329F48091F1 +:1006C0006F008D7F80936F00F0E0E457FE4FE49160 +:1006D00021E031E0E29FC001E39F900D11240090E2 +:1006E000C40102C0969587950A94E2F790938D0015 +:1006F00080938C00FF91EF919F918F913F912F916B +:100700000F900FBE0F901F90189561110DC0FC0146 +:100710008281882331F085EE0E9441180E946B2867 +:1007200003C085EE0E94091980E090E0089581E001 +:1007300008950C94970308950C9431038091150249 +:10074000882309F448C08091D1019091D20100978B +:1007500079F40E94E8229093D2018093D101809194 +:10076000D30190E0009771F48091D40190E00AC029 +:100770000E94F422209100013091010128173907CD +:1007800040F329C00197880F991F880F991FFC011A +:10079000EB52FE4F60817181828193810E945D0ADC +:1007A000E091D30184E0E89FF0011124EB52FE4F69 +:1007B00060817181828193814FE050E00E94150E2B +:1007C0008091D30190E001966091D40170E00E9485 +:1007D000912C8093D3010C94DC02109217020C949C +:1007E0002A0A0895089581E0809317020C94F20379 +:1007F000089508958F929F92AF92BF92EF92FF92C9 +:100800000F931F93CF93DF93CDB7DEB7A3970FB6A8 +:10081000F894DEBF0FBECDBF7C01FC0100811181C9 +:10082000C8010E94E520B8010E94FC058C01B701B7 +:100830000E949903882309F4CCC10032F0E51F0718 +:1008400041F4F7018281882309F458C00E94790E8F +:10085000C0C10132F0E51F0741F4F701828188230E +:1008600009F44CC00E94820EB4C10232F0E51F07A9 +:1008700051F4F7018281882309F440C00E94750E6B +:100880008111F0CFE3CF0332F0E51F0739F4F70110 +:100890008281882399F10E94F3039BC10432F0E521 +:1008A0001F0739F4F7018281882341F10E94ED038B +:1008B00090C10532F0E51F0749F4F70182818823D2 +:1008C000E9F0809117028111F1CFE5CF0632F0E512 +:1008D0001F0739F4F7018281882381F00E94890E75 +:1008E0000AC00732F0E51F0749F4F7018281882327 +:1008F00029F00E94940E0E94F9036BC180911702A7 +:10090000811105C0F70182818111CFC018C1003E5D +:10091000110579F4F7018281882309F44DC00E9402 +:100920002A0A81E080931602109215021092D401D7 +:1009300050C1023E110559F4F70182818823E1F18B +:100940000E942A0A109216021092150242C1033E1A +:10095000110591F4F7018281882371F10E942A0A1E +:100960001092160281E0809315021092D30110922A +:10097000D2011092D1012DC10235110559F4F701B0 +:100980008281882309F425C18091000190910101A1 +:100990000A970DC00135110579F4F701828188238A +:1009A00009F417C180910001909101010A9690937A +:1009B0000101809300010DC14091040183E2EFE148 +:1009C000F1E0DE01119601900D928A95E1F7F701B1 +:1009D000808121E030E02C0F3D1F280F311DC9011F +:1009E0002091020130910301FC01E20FF31F6081AD +:1009F000772767FD7095640F711D882777FD8095B7 +:100A0000982F0E94B32920E030E040E451E40E9496 +:100A100018294B015C01F701218184E090E0821BE1 +:100A20009109BC01882777FD8095982F0E94B329F2 +:100A30009B01AC01C501B4010E94B0289B01AC012F +:100A400060E070E080E090E40E94262B20E030E03F +:100A50004CED50E40E94C32A4B015C01F7018281F6 +:100A60008823D1F04FE050E0C501B4010E94150E7B +:100A7000809116028823A1F08091D40124E0829F06 +:100A8000F0011124EB52FE4F80829182A282B38248 +:100A90008F5F8093D40104C0C501B4010E945D0A38 +:100AA0000F3F110508F02ECF94C08091D001811125 +:100AB0001FC0043130E5130709F051C00E949B03A9 +:100AC00081E08093D0010E94E8229093CF0180932F +:100AD000CE011092C7011092C9011092C801109264 +:100AE000CB011092CA011092CD011092CC0171C0BD +:100AF0008091CE019091CF010E94F422883C910513 +:100B000070F48091C701E82FF0E0EE0FFF1FE8536B +:100B1000FE4F118300838F5F8093C7015AC0043852 +:100B200080E5180721F00538104501F13AC0F701BA +:100B30008281882341F01092C50182E01EC00438F2 +:100B400030E5130759F58091C501811106C086E291 +:100B50000E94411886E20E94091982E01CC00438F4 +:100B6000F0E51F0741F305381045D9F4F7018281FC +:100B7000882331F01092C60180E20E94581929C0E2 +:100B80008091C601811106C087E20E94411887E268 +:100B90000E94091980E20E945F191BC005381045A8 +:100BA00029F381E08093C5018093C601C701A39614 +:100BB0000FB6F894DEBF0FBECDBFDF91CF911F916E +:100BC0000F91FF90EF90BF90AF909F908F900C94FB +:100BD000DE0280E0A3960FB6F894DEBF0FBECDBF55 +:100BE000DF91CF911F910F91FF90EF90BF90AF9049 +:100BF0009F908F90089508959CE0799FF0011124B3 +:100C000090E3899FE00DF11D1124E60FF11DEE0F19 +:100C1000FF1FE453FE4F859194910895880F991F0B +:100C2000FC01E45BFF4F859194910895880F991F13 +:100C3000FC01E453FE4F8591949108950F931F9307 +:100C4000CF93DF93EC01811521E39207A0F5C11545 +:100C500080E3D80708F0D7C0C83ED105D8F4C03E1D +:100C6000D10508F007C2C83AD10578F4C53AD105D4 +:100C700008F06AC0C130D10509F463C008F4F7C1B7 +:100C8000C430D10508F0F6C1F2C1CB3BD10508F460 +:100C900066C0EDC1C11590E2D90708F0AFC0C1151B +:100CA00021E0D20708F0E6C1C03FD10508F4DFC15A +:100CB0008E0110651FC2C03880E5D80700F5C03727 +:100CC00090E5D90708F0A3C0C11520E5D20709F4C3 +:100CD000ACC050F4CE01905480319F4008F0C7C1A1 +:100CE000DF708E01106A06C2C13080E5D80709F4B2 +:100CF000AEC0C43190E5D90708F4AFC0B8C1C3385D +:100D000020E5D20709F48EC050F4C13890E5D90728 +:100D100009F482C008F083C000E011EDEBC1C031DE +:100D200081E5D80708F4A3C1C11597E5D90708F4F0 +:100D300036C1CE0190578115904108F098C1DF70FF +:100D400093C101E010E0D6C1C53AD10509F494C1C0 +:100D5000C63AD10509F093C102E810E4CBC1C83A04 +:100D6000D10509F48FC1C93AD10509F48EC1CA3A37 +:100D7000D10509F48DC1CB3AD10509F48CC1CC3A27 +:100D8000D10509F48BC1CD3AD10509F48AC1C03B24 +:100D9000D10509F489C1CE3AD10509F488C1CF3A09 +:100DA000D10509F487C1C13BD10509F486C1C23B15 +:100DB000D10509F485C1C33BD10509F484C1C43B05 +:100DC000D10509F483C1C53BD10509F482C1C63BF5 +:100DD000D10509F481C1C73BD10509F480C1C83BE5 +:100DE000D10509F47FC1C93BD10509F47EC1CA3BD5 +:100DF000D10509F47DC100E014E47CC1CE019F70EF +:100E00000E94160678C1DD278E01106C73C1CF7069 +:100E1000DD278E01146D6EC100E010ED6BC100E0A6 +:100E200012ED68C100E013ED65C10E94EC1B0E9449 +:100E30002A0A0E94F1038FEF94E32CE08150904046 +:100E40002040E1F700C000000E94432353C180917D +:100E5000F20281608093F2024DC10E94A4238111AD +:100E600002C00E9480230E94B72390E090931D034C +:100E700080931C03C23080E5D80721F480911C03C5 +:100E8000816086C0C43090E5D90721F480911C03AD +:100E900082607EC0C63020E5D20721F480911C0319 +:100EA000846076C0C83080E5D80719F480911C03AF +:100EB00027C0CA3090E5D90721F480911C038061D6 +:100EC00067C0CC3020E5D20721F480911C038062FA +:100ED0005FC0CE3080E5D80721F480911C03806488 +:100EE00057C0C03190E5D90721F480911C03806878 +:100EF0004FC0C23120E5D20729F480911C038460E1 +:100F0000886046C0C33080E5D80721F480911C0377 +:100F10008E7F3EC0C53090E5D90721F480911C0337 +:100F20008D7F36C0C73020E5D20721F480911C03A5 +:100F30008B7F2EC0C93080E5D80719F480911C033F +:100F400026C0CB3090E5D90721F480911C038F7E19 +:100F50001FC0CD3020E5D20721F480911C038F7D86 +:100F600017C0CF3080E5D80721F480911C038F7B18 +:100F70000FC0C13190E5D90721F480911C038F7710 +:100F800007C0C331D04531F480911C038B7F877F2C +:100F900080931C0380911C030E94BB23ABC08D2F48 +:100FA00099278F70992781309105D9F49E0123707C +:100FB000332702C0880F991F2A95E2F79C688E019B +:100FC00044E0000F111F4A95E1F700271370802BB2 +:100FD000912B53E0CC0FDD1F5A95E1F7C076DD274A +:100FE0002FC08230910531F4DC2FCC278E01016FA8 +:100FF000106A80C08330910569F4CE01837099270F +:1010000001E010E002C0000F111F8A95E2F7C8014D +:101010009C680FC084309105B9F4CE018370992784 +:1010200001E010E002C0000F111F8A95E2F7C8012D +:101030009A6823E0CC0FDD1F2A95E1F7C07ED770B8 +:101040008C010C2B1D2B56C08530910531F4DC2F03 +:10105000CC278E01046F106A4DC0069709F04AC074 +:10106000CF71DD27DC2FCC278E01106243C000E05A +:1010700010E040C08E013EC001E810E43BC003E830 +:1010800010E438C002EE14E435C009EE14E432C0B6 +:101090000AEE14E42FC005EB14E42CC006EB14E4B4 +:1010A00029C007EB14E426C00CEC14E423C00DECBB +:1010B00014E420C003E815E41DC00AE815E41AC0D2 +:1010C00002E915E417C004E915E414C001E216E4CE +:1010D00011C003E216E40EC004E216E40BC005E200 +:1010E00016E408C006E216E405C007E216E402C0F2 +:1010F0000AE216E4C801DF91CF911F910F91089584 +:101100009CE0799FF001112490E3899FE00DF11D8F +:101110001124E60FF11DEE0FFF1FE453FE4F8591E2 +:101120009491803E9105E0F4803C910558F581331F +:10113000910509F46FC048F48932910509F463C040 +:101140008A32910509F46DC072C089339105E9F0C6 +:1011500082389105D1F08533910509F44DC067C0FF +:10116000833E910581F138F4803E9105B9F0823ECD +:101170009105D9F05CC0863E910561F1873E9105ED +:10118000A1F155C00E940E06089520911C0320FD78 +:1011900002C021FF4CC080EE90E049C080911C034A +:1011A00080FFF9CF89E390E042C080911C0382FF69 +:1011B0000EC080911C0384FF03C080E090E037C024 +:1011C00083EE90E034C080911C0382FFF2CF82EE68 +:1011D00090E02DC080911C0383FF0BC080911C0305 +:1011E00084FDEBCF87EE90E022C080911C0383FF4B +:1011F000F5CF86EE90E01BC080911C0385FF07C0F1 +:1012000089E290E014C080911C0385FFF9CF85E34B +:1012100090E00DC080911C0386FF07C08AE290E039 +:1012200006C080911C0386FFF9CF81E390E00E9405 +:101230001E0608950C94E002E82FF0E0E25BFE4FFA +:101240008081E82FEF70F0E082958F7021E030E030 +:10125000A90102C0440F551F8A95E2F740A30895E3 +:101260000F931F93CF93DF9385B7806885BF85B7B2 +:10127000806885BFC3E0D0E001E010E0FE01E25BE2 +:10128000FE4F8081E82FEF70F0E021A182958F70F2 +:10129000A80102C0440F551F8A95E2F7CA01822BAC +:1012A00081A38C2F0E941C09219740F78BE090E0CE +:1012B00061E070E0FC01EE5BFE4F2081E22FEF70F9 +:1012C000F0E042A122952F70DB0102C0AA0FBB1FE4 +:1012D0002A95E2F79D01242B22A3019758F7DF916D +:1012E000CF911F910F910C949C03EF92FF920F935B +:1012F0001F93CF93DF9300E212E0C3E0EE24E39468 +:10130000F12CD5E08C2F0E941C098BE090E040E08E +:1013100050E0FC01EE5BFE4F6081E62FEF70F0E0E5 +:1013200020A130E062956F7002C0359527956A95CF +:10133000E2F720FD09C09701082E02C0220F331FDB +:101340000A94E2F7422B532B019718F7F801929178 +:1013500082918F018417950721F051834083D093A8 +:1013600005018C2F0E941C09C15060F68091050177 +:1013700087FD2CC08150809305018F3F39F08FE9A4 +:101380009FE00197F1F700C0000020C080911E028D +:1013900090911F02909327028093260280911C0255 +:1013A00090911D02909325028093240280911A024D +:1013B00090911B0290932302809322028091180245 +:1013C0009091190290932102809320020E949E0323 +:1013D00081E0DF91CF911F910F91FF90EF900895E1 +:1013E000E82FF0E0EE0FFF1FE05EFD4F808191815E +:1013F000089508950F931F93CF9308E212E0C0E081 +:10140000F801929182918F010E946022C80FF2E050 +:1014100000321F07A9F78C2FCF911F910F910895CC +:101420000E94A423811102C00E9480230E94C9232C +:10143000809307033E9A809171008D7F80937100A5 +:1014400082E0809390008AE18093910081E0809314 +:101450002A02089580912A02811102C00E94100A76 +:1014600010927A0210927902809171008D7F8093A0 +:101470007100809190008F738093900010923C02D5 +:1014800010923B0210927302109274021092750235 +:10149000109276021092720210927102E1E5F2E06F +:1014A000A1E4B2E011921192119211921D921D923B +:1014B00082E0E137F807B1F70895CF92DF92EF921B +:1014C000FF920F931F93CF93DF9320913B02222330 +:1014D00009F484C06B017C0180912A02811102C051 +:1014E0000E94100A01E712E0C7E0D0E0A7019601D0 +:1014F000F80192918291729162918F010E94142958 +:10150000811131C0FE01EE0FFF1FEE0FFF1FEF5ADA +:10151000FD4F1082118212821382DE01AA0FBB1FBF +:10152000AF5BBD4F11961C921E92C730D105E9F0FA +:1015300021964481558166817781408351836283FE +:101540007383148215821682178212968D919C9154 +:10155000139711969C938E9313961C921E9212973A +:1015600034961296E2CF219708F6809179029091F5 +:101570007A02019797FD05C090937A0280937902D1 +:1015800004C010927A0210927902809179029091AF +:101590007A0220917702309178022817390724F0D7 +:1015A0001092780210927702892BC1F48091710019 +:1015B0008D7F80937100809190008F738093900055 +:1015C00010927302109274021092750210927602B9 +:1015D000109272021092710210923B02DF91CF9131 +:1015E0001F910F91FF90EF90DF90CF9008951F9281 +:1015F0000F920FB60F9211244F925F926F927F92CB +:101600008F929F92AF92BF92CF92DF92EF92FF9212 +:101610002F933F934F935F936F937F938F939F93FA +:10162000AF93BF93CF93DF93EF93FF9380913B02F0 +:10163000882309F49BC1C0917902D0917A021C16CB +:101640001D060CF093C140902B0250902C0260902C +:101650002D0270902E0220E030E0A901C301B201FA +:101660000E94BF2A18160CF065C0C130D10509F4DC +:1016700052C08091770290917802BE010E94912C15 +:101680007C01909378028093770280903D02909045 +:101690003E02A0903F02B090400220E030E040E8DF +:1016A0005FE3C501B4010E94B02860933D027093CE +:1016B0003E0280933F0290934002F701EE0FFF1F1E +:1016C000EE0FFF1FEF5AFD4FA30192016081718160 +:1016D000828193810E94182920E030E040E05EE39F +:1016E0000E94C32A9B01AC01C501B4010E94BF2A1C +:1016F00018168CF4C7010196BE010E94912C90939C +:1017000078028093770210923D0210923E0210926E +:101710003F0210924002E0917702F0917802EE0FC2 +:10172000FF1FEE0FFF1FEF5AFD4F60817181828115 +:101730009381D0C0C0907302D0907402E090750283 +:10174000F090760220E030E0A901C701B6010E94C6 +:1017500014292197882309F4A2C0FE01EE0FFF1F70 +:10176000EE0FFF1FEF5AFD4F80809180A280B38063 +:10177000A5019401C701B6010E94142987FF31C059 +:10178000A501940160E070E08CED93EC0E941829B3 +:1017900020E030E040E451E40E94182920E030E0ED +:1017A00040E05FE30E94C32A9B01AC0160E070E06F +:1017B00080E090E40E94262B9B01AC01C501B4019E +:1017C0000E94C32A9B01AC01C701B6010E941429E3 +:1017D00087FF07C0A701960160E070E08CED93E4FD +:1017E00039C0A5019401C701B6010E94BF2A18168D +:1017F0000CF055C0A501940160E070E08CED93E41D +:101800000E94182920E030E040E451E40E941829A9 +:1018100020E030E040E05FE30E94C32A9B01AC017E +:1018200060E070E080E090E40E94262B9B01AC0118 +:10183000C501B4010E94C32A9B01AC01C701B601D6 +:101840000E94BF2A18165CF5A701960160E070E0BF +:101850008CED93EC0E94182920E030E040E451E444 +:101860000E94182920E030E040E05FE30E94C32A94 +:101870009B01AC0160E070E080E090E40E94262BC8 +:101880009B01AC01C701B6010E94C32A6093730299 +:1018900070937402809375029093760213C0FE01D8 +:1018A000EE0FFF1FEE0FFF1FEF5AFD4F808191815A +:1018B000A281B3818093730290937402A093750206 +:1018C000B0937602609173027091740280917502F8 +:1018D0009091760220912802309129022F3F4FEFFC +:1018E000340731F02F5F3F4F3093290220932802B5 +:1018F0000E949F0E6B017C0120E034E244EF51E432 +:101900000E94142987FF08C086EFC82E88E2D82ECF +:1019100084EFE82E81E4F82E20E030E040E051E44E +:10192000C701B6010E94C32A9B01AC0160E074E2CA +:1019300084E79BE40E9418296B017C010E948529A1 +:1019400070939700609396002091060130910701F3 +:101950004091080150910901C701B6010E94C32AB4 +:101960000E948529709399006093980080913C02B1 +:10197000882309F433C1C0903702D0903802E09038 +:101980003902F0903A0220E030E0A901C701B60127 +:101990000E94BF2A1816D4F580912802909129023E +:1019A0008F3F2FEF920729F00196909329028093A1 +:1019B0002802C701B6010E949F0E20E030E040E0FF +:1019C00051E40E94C32A9B01AC0160E074E284E709 +:1019D0009BE40E9418296B017C010E948529709369 +:1019E0009700609396002091060130910701409185 +:1019F000080150910901C701B6010E94C32A0E9443 +:101A00008529709399006093980008C01092970000 +:101A100010929600109299001092980060913102F5 +:101A2000709132026F5F7F4F709332026093310288 +:101A3000209196003091970080E090E0232BF1F008 +:101A4000C0919600D09197000E94B1296B017C0152 +:101A5000BE0180E090E00E94B1299B01AC01609141 +:101A600033027091340280913502909136020E94C7 +:101A7000182920E03FEF4FE757E410C00E94B1293A +:101A80006B017C0120E030EE4FEF54E460913302B3 +:101A90007091340280913502909136020E94C32ADF +:101AA0009B01AC01C701B6010E94BF2A87FD96C009 +:101AB00080912F028F5F80932F0290E0209103038B +:101AC0003091040382179307A0F080910E038823BE +:101AD00019F010922F020DC0809171008D7F8093BC +:101AE0007100809190008F738093900010923C025F +:101AF0007DC080913002C0912F02811128C0C0901A +:101B00000803D0900903E0900A03F0900B0320E053 +:101B100030E0A901C701B6010E94BF2A1816BCF423 +:101B200081E08093300210923702109238021092B6 +:101B3000390210923A02C0923302D0923402E092FB +:101B40003502F0923602C150C0932F0243C010926A +:101B500030021092290210922802E0910503F091C0 +:101B6000060348E0C49FE00DF11D1124808191819E +:101B7000A281B3818093370290933802A0933902F7 +:101B8000B0933A0220E030E040E85EE36481758182 +:101B9000868197810E94C32A6B017C0180910A0192 +:101BA000682F70E080E090E00E94B12920E030E0F2 +:101BB00048EC52E40E9418299B01AC01C701B60110 +:101BC0000E94C32A609333027093340280933502DB +:101BD00090933602109232021092310280910703E4 +:101BE00080FD04C010923C0210923B02FF91EF91E5 +:101BF000DF91CF91BF91AF919F918F917F916F9125 +:101C00005F914F913F912F91FF90EF90DF90CF9098 +:101C1000BF90AF909F908F907F906F905F904F900C +:101C20000F900FBE0F901F901895CF92DF92EF92FA +:101C3000FF92CF93DF936B017C01EA0180912A022E +:101C4000811102C00E94100A8091070380FF46C0E4 +:101C50008091790290917A0208970CF03FC08091B0 +:101C600071008D7F8093710080913C0281110E94F0 +:101C70002A0A81E080933B021092290210922802E6 +:101C800020E030E0A901C701B6010E94BF2A181662 +:101C9000DCF48091790290917A02FC01EE0FFF1F33 +:101CA000EE0FFF1FEF5AFD4FC082D182E282F38216 +:101CB000FC01EE0FFF1FEF5BFD4FD183C083019648 +:101CC00090937A0280937902809171008260809370 +:101CD000710080919000806880939000DF91CF9197 +:101CE000FF90EF90DF90CF9008958091070381706F +:101CF0000895809107038160809307030E94CD239C +:101D00000C94F803809107038E7F809307030C9453 +:101D1000CD2380917B0290E0019666E070E00E9406 +:101D2000912C80937B02089580917B0290E0019733 +:101D300066E070E00E94912C80937B0208958F9260 +:101D40009F92AF92BF92CF92DF92EF92FF920F934A +:101D50001F93CF93DF936B017C01C0912802D09138 +:101D60002902BE0180E090E00E94B1294B015C0194 +:101D7000A701960160E070E08CE594E40E941829C8 +:101D80009B01AC01C501B4010E94C32A0E948529B0 +:101D900020917B02233009F473C028F4222351F0F0 +:101DA0002130E9F02CC1243009F4A0C0253009F419 +:101DB000E0C025C180E090E0A0E0BFE38093060191 +:101DC00090930701A0930801B093090110922B0290 +:101DD00010922C0210922D0210922E0210C110921D +:101DE0002B0210922C0210922D0210922E026431BE +:101DF000710540F46A30710560F520E030E040E89C +:101E00005EE32BC0693C710508F0AAC080E090E059 +:101E10000E94B12920E030E040EA51E40E94AF285E +:101E200020E030E044E353E40E9418299B01AC0118 +:101E30000E94C32A20E030E040E05EE30E94C32A13 +:101E40009B01AC0160E070E080E09EE30E94AF285F +:101E500044C020E030E040E05FE3C701B6010E94EB +:101E6000C32A6B017C0180E090E0A0E0BEE3809398 +:101E7000060190930701A0930801B0930901BFC028 +:101E800010922B0210922C0210922D0210922E0210 +:101E90004AE0469F9001479F300D1124C90168EB2D +:101EA0007BE00E947D2CBC016C5D754077FF03C018 +:101EB000719561957109882777FD8095982F0E940B +:101EC000B3292EE333EC4EE259E30E94C32A20E00B +:101ED00030E040EC5EE30E94B0286093060170930E +:101EE0000701809308019093090189C010922B0289 +:101EF00010922C0210922D0210922E02CE018370AD +:101F00009927892BE1F0BE016170772780E090E08E +:101F10000E94B12920E030E040E05EE30E94C32A45 +:101F200020E030E040E45FE30E94B02860930601C7 +:101F30007093070180930801909309010CC080E021 +:101F400090E0A0E0BFE38093060190930701A09387 +:101F50000801B0930901C770DD27CD2B09F04FC0F0 +:101F600010920601109207011092080110920901C7 +:101F700046C010922B0210922C0210922D02109249 +:101F80002E0200E010E020E03FE3009306011093F2 +:101F9000070120930801309309016739710578F131 +:101FA00080E090E00E94B12920E030E047E153E476 +:101FB0000E94AF2820E030E04AE754E40E9418294C +:101FC00020E030E048E452E40E94C32A20E030E000 +:101FD00040EA51E40E94F5290E948029660F771F8C +:101FE000660F771FFB01EE5AFE4F2081318142813F +:101FF0005381C701B6010E94C32A6B017C01C7014E +:10200000B601DF91CF911F910F91FF90EF90DF907C +:10201000CF90BF90AF909F908F90089580918C0249 +:102020000895CF93DF9300D01F92CDB7DEB79C0108 +:1020300080911303843019F593E099833B832A83BD +:102040009093E9008FEF9091E800815095FD06C0D4 +:1020500095ED9A95F1F700008111F5CF8091E80098 +:1020600085FF0DC040E050E063E070E0CE010196D6 +:102070000E9472128091E8008E778093E8000F90A2 +:102080000F900F90DF91CF910895CF93DF9300D001 +:102090001F92CDB7DEB720911303243021F522E043 +:1020A00029839B838A8383E08093E9008FEF90915B +:1020B000E800815095FD06C095ED9A95F1F7000076 +:1020C0008111F5CF8091E80085FF0DC040E050E020 +:1020D00063E070E0CE0101960E9472128091E800E8 +:1020E0008E778093E8000F900F900F90DF91CF9143 +:1020F0000895209113032430F1F422E02093E900A5 +:102100002FEF3091E800215035FD06C035ED3A95AE +:10211000F1F700002111F5CF2091E80025FF0BC059 +:1021200040E050E065E070E00E9472128091E800AB +:102130008E778093E8000895CF93DF93EC01909120 +:102140001303943009F046C0809115018823D9F01B +:10215000809116018823B9F09093E9008FEF909158 +:10216000E800815095FD06C095E19A95F1F70000D1 +:102170008111F5CF8091E80085FF2CC040E050E050 +:1021800060E170E017C081E08093E9008FEF9091EB +:10219000E800815095FD06C095ED9A95F1F7000095 +:1021A0008111F5CF8091E80085FF14C040E050E038 +:1021B00068E070E0CE010E9472128091E8008E7794 +:1021C0008093E80080E1FE01ACE7B2E001900D925F +:1021D0008A95E1F7DF91CF910895809112038111E3 +:1021E00009C00E9407140E9464148091E200846078 +:1021F0008093E200089510921203089508950895BF +:102200000C94AB2242E061EC81E00E94811342E039 +:1022100061EC82E00E94811342E061EC83E00E9465 +:10222000811342E161EC84E00C94811380911503E9 +:10223000833009F455C030F4813071F0823009F4F4 +:102240008EC008958A3009F47AC08B3009F460C0DA +:10225000893009F09CC020C080911403813A09F0B4 +:1022600096C08091E800877F8093E80080911803F2 +:1022700090911903892B21F460E18CE792E003C06F +:1022800060E080E090E070E00E94BD128091E80084 +:102290008B778093E800089580911403813209F0D0 +:1022A00076C08091180390911903009719F0039755 +:1022B00009F06DC08091E800877F8093E8008091ED +:1022C000E80082FD05C0809113038111F8CF5FC043 +:1022D0008091F10080938C028091E8008B7753C04D +:1022E00080911403813A09F052C0809118039091B3 +:1022F0001903892B09F04BC08091E800877F8093F8 +:10230000E8008091E80080FFFCCF8091150136C085 +:10231000809114038132D9F58091180390911903AB +:10232000892BA9F58091E800877F8093E8000E94BF +:10233000B61380911603809315010C94EC1B8091C9 +:102340001403813221F58091E800877F8093E800B3 +:102350000E94B6138091170380938D020895809197 +:102360001403813AA1F48091E800877F8093E8000C +:102370008091E80080FFFCCF80918D028093F10076 +:102380008091E8008E778093E8000C94B61308954E +:1023900084B7877F84BF88E10FB6F894809360008C +:1023A000109260000FBE90E080E80FB6F894809322 +:1023B0006100909361000FBE0E9459170E9407149C +:1023C0000E9464148091E20084608093E20078941B +:1023D0000E94EA160E945B178BE091E00E940517AD +:1023E00080911303853069F40E946C22809111035F +:1023F0008823B1F30E949A22882391F30E945C12F1 +:10240000EFCF0E946317ECCF292F332723303105FC +:10241000C9F064F42130310581F02230310509F032 +:1024200043C08DE690E028EA33E042C02132310516 +:10243000F1F02232310541F137C082E190E025E12F +:1024400034E036C099278130910541F08230910502 +:1024500041F0892B49F5E4EAF3E005C0E6E7F3E053 +:1024600002C0ECE4F3E0849190E09F0121C064306D +:10247000D8F4E62FF0E0EE0FFF1FE255FE4F20816B +:10248000318189E090E014C0643070F470E0FB01A9 +:10249000EE0FFF1FEA55FE4F20813181FB01EE5503 +:1024A000FE4F808190E004C080E090E020E030E0CA +:1024B000FA0131832083089580E189BD82E189BDDD +:1024C00009B400FEFDCF8091D8008F7D8093D800A5 +:1024D0008091E00082608093E0008091E00081FDC7 +:1024E000FCCF0895CF92DF92EF92FF920F931F934C +:1024F000CF93DF93EC018B016A010E94D513811108 +:1025000033C0C114D10439F0F60180819181081BD8 +:10251000190BC80FD91FE12CF12C0115110519F168 +:102520008091E80085FD16C08091E8008E77809349 +:10253000E800C114D10449F0F60180819181E80ED0 +:10254000F91EF182E08285E00FC00E94D513882336 +:1025500021F30AC089918093F10001501109FFEF26 +:10256000EF1AFF0ADACF80E0DF91CF911F910F9130 +:10257000FF90EF90DF90CF90089520911A03309153 +:102580001B032617370748F06115710539F42091B0 +:10259000E8002E772093E80001C0B90140E0611502 +:1025A0007105A9F120911303222309F443C02530BA +:1025B00009F442C02091E80023FD40C02091E800CA +:1025C00022FD32C02091E80020FFE9CF4091F300C6 +:1025D0002091F20030E0342BFC01CF016115710530 +:1025E00059F02830310540F481918093F100615019 +:1025F00071092F5F3F4FF1CF41E02830310509F0DD +:1026000040E02091E8002E772093E800C8CF4111E8 +:10261000C9CF0AC080911303882361F0853061F02F +:102620008091E80083FD0AC08091E80082FFF2CF2C +:1026300080E0089582E0089583E0089581E00895A0 +:1026400020911A0330911B032617370748F06115B4 +:10265000710539F42091E8002E772093E80001C03D +:10266000B901FC0120E06115710591F1809113031E +:10267000882309F440C0853009F43FC08091E80008 +:1026800083FD3DC08091E80082FD2FC08091E8006D +:1026900080FFE9CF2091F3008091F20090E0922B2F +:1026A0006115710559F08830910540F4249120930B +:1026B000F1003196615071090196F2CF21E008973F +:1026C00009F020E08091E8008E778093E800CBCF7E +:1026D0002111CCCF0AC080911303882361F085308B +:1026E00061F08091E80083FD0AC08091E80082FFDC +:1026F000F2CF80E0089582E0089583E0089581E0BC +:102700000895982F973058F59093E900981739F06D +:102710007091EC002091ED005091F00003C0242F47 +:10272000762F50E021FF19C03091EB003E7F3093AF +:10273000EB003091ED003D7F3093ED003091EB00E8 +:1027400031603093EB007093EC002093ED005093D8 +:10275000F0002091EE0027FF07C09F5FD3CF8F705E +:102760008093E90081E0089580E00895809114034A +:1027700087FF11C08091E80082FD05C0809113039E +:102780008111F8CF11C08091E8008B770BC0809148 +:102790001303882349F08091E80080FFF8CF8091EF +:1027A000E8008E778093E80008952091E40030914E +:1027B000E50095E64091EC00842F817040FF22C037 +:1027C0008091E80080FD1CC080911303882391F064 +:1027D000853091F08091EB0085FD10C04091E400C0 +:1027E0005091E5004217530729F39A01915011F7D0 +:1027F00084E0089582E0089583E0089581E00895DB +:1028000080E008954091E80042FFDECF08950E94E5 +:1028100075140E947D14E0EEF0E080818160808379 +:10282000E8EDF0E080818F77808319BCA7EDB0E000 +:102830008C918E7F8C9380818F7E80831092120387 +:1028400008950F931F93CF93DF930E9475140E94F6 +:102850007D14C8EDD0E088818F7788838881806877 +:10286000888388818F7D888319BC1092130310920E +:102870000F03109211031092100300EE10E0F80104 +:1028800080818B7F808388818160888342E060E0E3 +:1028900080E00E948113E1EEF0E080818E7F8083F2 +:1028A000E2EEF0E0808181608083808188608083B7 +:1028B000F80180818E7F8083888180618883DF91A9 +:1028C000CF911F910F910895E8EDF0E080818F7E08 +:1028D0008083E7EDF0E080818160808384E082BFC7 +:1028E00081E0809312030C942114E8EDF0E08081E4 +:1028F0008E7F80831092E20008951092DA00109289 +:10290000E10008951F920F920FB60F9211242F939A +:102910003F934F935F936F937F938F939F93AF9367 +:10292000BF93EF93FF938091E10082FF0BC08091F2 +:10293000E20082FF07C08091E1008B7F8093E1007D +:102940000E94E9168091DA0080FF1FC08091D800B4 +:1029500080FF1BC08091DA008E7F8093DA00809127 +:10296000D90080FF0DC080E189BD82E189BD09B435 +:1029700000FEFDCF81E0809313030E94ED1005C09F +:1029800019BC109213030E94FB108091E10080FF9C +:1029900019C08091E20080FF15C08091E2008E7F17 +:1029A0008093E2008091E20080618093E200809158 +:1029B000D80080628093D80019BC85E0809313030F +:1029C0000E94FF108091E10084FF30C08091E200FE +:1029D00084FF2CC080E189BD82E189BD09B400FE7D +:1029E000FDCF8091D8008F7D8093D8008091E10049 +:1029F0008F7E8093E1008091E2008F7E8093E200E1 +:102A00008091E20081608093E20080910F0388232F +:102A100011F084E007C08091E30087FD02C081E0EF +:102A200001C083E0809313030E9400118091E100B4 +:102A300083FF29C08091E20083FF25C08091E100DF +:102A4000877F8093E10082E08093130310920F034D +:102A50008091E1008E7F8093E1008091E2008E7F83 +:102A60008093E2008091E20080618093E20042E086 +:102A700060E080E00E9481138091F0008860809384 +:102A8000F0000E94FE10FF91EF91BF91AF919F91D6 +:102A90008F917F916F915F914F913F912F910F9007 +:102AA0000FBE0F901F9018951F920F920FB60F92A6 +:102AB00011242F933F934F935F936F937F938F9343 +:102AC0009F93AF93BF93CF93DF93EF93FF93C09107 +:102AD000E900CF708091EC00D82FD17080FDD0E854 +:102AE0001092E9008091F000877F8093F000789445 +:102AF0000E9498151092E9008091F0008860809300 +:102B0000F000CD2BCF70C093E900FF91EF91DF91E2 +:102B1000CF91BF91AF919F918F917F916F915F9175 +:102B20004F913F912F910F900FBE0F901F901895CE +:102B30001F93CF93DF93CDB7DEB7AA970FB6F89464 +:102B4000DEBF0FBECDBFE4E1F3E088E08E0F9091D1 +:102B5000F10091938E13FBCF0E9416118091E80033 +:102B600083FF1FC18091140390911503492F50E0FA +:102B70004A30510508F015C1FA01EA5AFF4F0C948A +:102B8000A52C803881F0823809F00BC180911803A0 +:102B90008F708093E9008091EB0085FB882780F996 +:102BA0001092E90006C080911003909111039111D9 +:102BB00082609091E800977F9093E8008093F10005 +:102BC0001092F100C8C0282F2D7F09F0EAC0882399 +:102BD00019F0823061F0E5C080911603813009F070 +:102BE000E0C0933009F080E0809311032BC0809106 +:102BF0001603811127C0809118038F7009F4D1C08A +:102C00008093E9002091EB0020FF1CC0933021F459 +:102C10008091EB00806214C09091EB0090619093E2 +:102C2000EB0021E030E0A90102C0440F551F8A9556 +:102C3000E2F74093EA001092EA008091EB0088608E +:102C40008093EB001092E9008091E800877F86C0B6 +:102C50008111A7C0109116031F778091E30080783F +:102C6000812B8093E3008091E800877F8093E800C8 +:102C70000E94B6138091E80080FFFCCF8091E300B2 +:102C800080688093E300111102C082E001C083E0FC +:102C90008093130386C08058823008F082C08091F0 +:102CA0001603909117038C3D53E0950779F583E067 +:102CB0008A838AE289834FB7F894DE01139620E075 +:102CC0003EE051E2E32FF0E050935700E49120FF03 +:102CD00003C0E295EF703F5FEF708E2F90E0EA3017 +:102CE00010F0C79601C0C0968D939D932F5F24313D +:102CF00049F74FBF8091E800877F8093E8006AE240 +:102D000070E0CE0101960E94BD1214C0AE014F5F6B +:102D10005F4F609118030E940412BC01009709F4F0 +:102D200040C09091E800977F9093E80089819A8154 +:102D30000E9420138091E8008B778093E80031C0D7 +:102D4000803879F58091E800877F8093E800809152 +:102D50000F038093F1008091E8008E778093E80064 +:102D60000E94B6131EC081111CC0909116039230B0 +:102D7000C0F48091E800877F8093E80090930F0370 +:102D80000E94B61380910F03811106C08091E30069 +:102D900087FD02C081E001C084E0809313030E949C +:102DA00002118091E80083FF0AC08091E800877FCC +:102DB0008093E8008091EB0080628093EB00AA96FC +:102DC0000FB6F894DEBF0FBECDBFDF91CF911F913C +:102DD00008950895CF93809113038823A1F0C091A3 +:102DE000E900CF709091EC00892F817090FD80E810 +:102DF000C82B1092E9008091E80083FD0E9498158D +:102E0000CF70C093E900CF9108959093930280937F +:102E100092020895E0919202F0919302309721F08E +:102E20000190F081E02D099480E00895E0919202F4 +:102E3000F0919302309721F00280F381E02D099404 +:102E40000895E0919202F0919302309721F004806E +:102E5000F581E02D0994089520919002309191021E +:102E60008217930771F09093910280939002E09102 +:102E70009202F0919302309721F00680F781E02DC5 +:102E80000994089520918E0230918F028217930742 +:102E900071F090938F0280938E02E0919202F091F4 +:102EA0009302309721F00084F185E02D0994089574 +:102EB00008950C9458170E94DF220E9430090E9446 +:102EC00065230C9414285F926F927F928F929F9249 +:102ED000AF92BF92CF92DF92EF92FF920F931F9328 +:102EE000CF93DF9300D000D01F92CDB7DEB70E9402 +:102EF00075099DE9C92E92E0D92E03E010E0AA24BD +:102F0000A394B12C502E802F0E94F0094C01F601A1 +:102F1000729062906F016826792661147104A1F4A1 +:102F20000150110978F78FEF89838A831B820E94F1 +:102F3000E8228160782F9D838C8349815A816B813F +:102F40008D810E94131838C08091F20281FD0E9489 +:102F5000F9092BE030E07501022E02C0EE0CFF1CD7 +:102F60000A94E2F7C70186219721892B09F1298369 +:102F70005A828E209F2091E0892809F490E09B835B +:102F80000E94E8228160782F9D838C8349815A8139 +:102F90006B818D810E941318000F111FF801EB56F1 +:102FA000FD4F80819181E826F926F182E08204C0FC +:102FB0002150310980F6B4CF0E944C251091940223 +:102FC0000E940A171817D1F00E940A1780939402E2 +:102FD0000F900F900F900F900F90DF91CF911F9156 +:102FE0000F91FF90EF90DF90CF90BF90AF909F90A8 +:102FF0008F907F906F905F900C941A090F900F90B4 +:103000000F900F900F90DF91CF911F910F91FF9034 +:10301000EF90DF90CF90BF90AF909F908F907F9078 +:103020006F905F900895CF93DF93CDB7DEB72B9766 +:103030000FB6F894DEBF0FBECDBF4F8358876987A8 +:103040007A878B87DE01119686E0FD0111928A95C1 +:10305000E9F785E0FE01379601900D928A95E1F738 +:1030600049815A816B817C818D819E810E948A1E5B +:103070002B960FB6F894DEBF0FBECDBFDF91CF9178 +:103080000895CF93882309F4C2C0C82F823859F419 +:103090000E940A1781FDBBC089E30E9464210E943F +:1030A000312289E30CC0833879F40E940A1780FD2D +:1030B000AEC083E50E9464210E94312283E50E9414 +:1030C000A621CF910C943122843859F40E940A171A +:1030D00082FD9DC087E40E9464210E94312287E422 +:1030E000EECF8CEF8C0F813A48F48C2F0E947C2716 +:1030F00081118DC08C2F0E946421E3CF80E28C0F60 +:10310000883048F4C77081E001C0880FCA95EAF79B +:103110000E94EA21D6CF8BE58C0F833078F4C53A34 +:1031200029F0C63A31F083E890E005C081E890E0EC +:1031300002C082E890E0CF910C942C1788E58C0FA8 +:10314000833108F064C0C83A39F1C93A41F1CA3A4A +:1031500049F1CB3A51F1CC3A59F1CD3A61F1C03B4A +:1031600069F1CE3A71F1CF3A79F1C13B81F1C23BBD +:1031700089F1C33B91F1C43B99F1C53BA1F1C63B39 +:10318000A9F1C73BB1F1C83BB9F1C93BC1F1CA3B99 +:10319000C9F180E090E038C082EE90E035C089EE61 +:1031A00090E032C08AEE90E02FC085EB90E02CC01A +:1031B00086EB90E029C087EB90E026C08CEC90E095 +:1031C00023C08DEC90E020C083E891E01DC08AE828 +:1031D00091E01AC082E991E017C084E991E014C03F +:1031E00081E292E011C083E292E00EC084E292E0BC +:1031F0000BC085E292E008C086E292E005C087E25B +:1032000092E002C08AE292E0CF910C944217CF91F3 +:103210000895882309F44BC0823859F40E940A1794 +:1032200081FF45C089E30E9464210E94312289E325 +:103230000CC0833871F40E940A1780FF38C083E500 +:103240000E9464210E94312283E50E94A6210C94F1 +:103250003122843859F40E940A1782FF28C087E47B +:103260000E9464210E94312287E4EFCF9CEF980FE7 +:10327000913A58F390E2980F983050F4877091E0AB +:1032800001C0990F8A95EAF7892F0E94F021DFCFBC +:103290009BE5980F933020F480E090E00C942C177D +:1032A000885A833120F480E090E00C94421708950E +:1032B000882321F00E94EA210C943122089588236A +:1032C00021F00E94F0210C94312208957F928F9278 +:1032D0009F92AF92BF92CF92DF92EF92FF920F93A5 +:1032E0001F93CF93DF931F92CDB7DEB77C01C62E1D +:1032F000772EFC01058102950F70128111110E9439 +:1033000007220E945D21882379F0112369F080E271 +:103310008C0D883048F082E00E9446210E945D2199 +:1033200091E0D82ED92601C0D12CE72DE295EF707F +:10333000F0E0E05AFF4F0C94A52C872D807F072DDD +:103340000F70882311F00295007F112389F000236C +:1033500009F499C180E28C0D883020F4802F0E94FE +:10336000EA2103C0802F0E94FA210E9431228BC1E2 +:103370008C2D0E940919002309F4C3C180E28C0D31 +:10338000883020F4802F0E94F02103C0802F0E94FB +:1033900000220E943122B5C1872D807F972D9F701A +:1033A000803211F4892F03C0892F8295807FCC2031 +:1033B00021F0F1E0CF16A1F01DC0112339F0002358 +:1033C00019F1013009F50E941A229BC1002319F05E +:1033D000013009F496C189830E941D22898110C1A0 +:1033E000112321F0063008F08CC10EC0053008F022 +:1033F00088C106C1112359F0002331F0F7019581EE +:1034000090FF41C19F7095830E9458197AC1002393 +:1034100009F4F6C03EC1872D86958695837090E0AD +:10342000009719F0019761F06CC1112321F08C2DE8 +:10343000972D937002C080E090E00E942C1761C12C +:10344000112321F08C2D972D937002C080E090E025 +:103450000E94421756C18C2D112319F00E9454244A +:1034600002C00E94BC240E9441254BC1872D83705D +:1034700009F052C0111145C18C2D82958695877037 +:10348000880F880F9C2D9F70892E912CA12CB12C18 +:10349000082E04C0880C991CAA1CBB1C0A94D2F7E5 +:1034A000C4FE14C00FE010E020E030E0B901A80134 +:1034B00004C0440F551F661F771F8A95D2F7CB01B2 +:1034C000BA01609570958095909503C060E070E0BA +:1034D000CB01272D26952695237030E0223031052B +:1034E00069F02330310589F0682979298A299B29D7 +:1034F0002130310571F00E94D21F03C1682979295A +:103500008A299B290E94EE1FFCC00E94D21FC50180 +:10351000B4010E94B61FF5C0112319F0872D8170E8 +:1035200001C08695882309F4ECC08C2D8295869580 +:103530008770880F880F9C2D9F70892E912CA12C4D +:10354000B12C082E04C0880C991CAA1CBB1C0A9420 +:10355000D2F7C4FE14C00FE010E020E030E0B90163 +:10356000A80104C0440F551F661F771F8A95D2F724 +:10357000CB01BA01609570958095909503C060E08D +:1035800070E0CB01272D269526952370422F50E021 +:103590004230510569F04330510589F06829792995 +:1035A0008A299B294130510571F00E94AC20A9C0A5 +:1035B000682979298A299B290E94C820A2C00E94D3 +:1035C000AC20C501B4010E9490209BC08C2D90E0DE +:1035D000FC01E05EF109E531F10508F050C0E05969 +:1035E000FF4F0C94A52C0C2D0F70872D8F7111237C +:1035F00021F00E942920802F07CF0E944A20802F8F +:103600000E945F197EC0112341F0053008F079C097 +:10361000872D8F710E946F2074C0063008F071C032 +:10362000F7CF112339F0872D8F710E94292069C0AF +:103630001123C9F3872D8F710E944A2062C0112384 +:1036400029F0872D8F710E9414205BC00E940A20F0 +:1036500058C0112351F0172D1F71812F0E9429206E +:1036600063E0812F0E943D214CC081E00E944621F1 +:10367000023008F446C082E00E94462142C0112375 +:1036800031F0002381F28C2D0E9441183AC00023B2 +:1036900089F28C2D0E94091934C0472D4F706C2D72 +:1036A000C7010E9485030E942E1F2BC0111129C043 +:1036B000472D4F7050E042305105B9F04CF44115A0 +:1036C000510581F041305105E1F40E943C2819C0B8 +:1036D0004330510569F04430510599F48C2D0E9416 +:1036E0008E280FC00E9425280CC00E94582809C0AF +:1036F0000E946B2806C0472D4F706C2DC7010E9499 +:10370000FB05DD20F9F00E94392180FD1BC0F70187 +:1037100012820E9433210E942920C7010E94B11BFE +:103720000E9433210F90DF91CF911F910F91FF9055 +:10373000EF90DF90CF90BF90AF909F908F907F9051 +:103740000C944A200F90DF91CF911F910F91FF9021 +:10375000EF90DF90CF90BF90AF909F908F907F9031 +:1037600008950F931F93CF93DF93EC018881998184 +:103770002B813C81232BB9F09F3F11F48F3F99F0AF +:10378000CE010E94FA03882371F0688179818A81D1 +:103790000E942F218C010E94E4200E94AB1FB801DF +:1037A000CE010E946619DF91CF911F910F9108956C +:1037B0000E9407220E9417220E94DC210E943122CF +:1037C0000E94F2250E94412580E090E00E942C1783 +:1037D00080E090E00C9442170E94F7210C94D81BD3 +:1037E0000E942421292F22952F7030E02C303105A2 +:1037F0004CF42A3031056CF4225031092230310565 +:10380000A8F407C02C30310569F02F30310551F094 +:103810000DC0803F69F018F4803E40F409C0843F39 +:1038200029F406C093FB882780F9089580E0089565 +:1038300081E00895CF93DF9300D000D01F92CDB7E1 +:10384000DEB70F900F900F900F900F90DF91CF91F8 +:103850000895CF93DF9300D000D000D0CDB7DEB76E +:1038600026960FB6F894DEBF0FBECDBFDF91CF9185 +:1038700008951F93CF93DF93C0919D0216E080912E +:103880009E02C81799F0D0E01C9FF0011D9FF00D1B +:103890001124E156FD4F4081518162817381848101 +:1038A00095810E94291C2196C770E9CFDF91CF91A5 +:1038B0001F9108954091CF025091D0026091D102A2 +:1038C0007091D2028091D3029091D4020C94291C61 +:1038D0008091D40282958F7009F054C08091D102FA +:1038E000882309F44FC080919D02A0919E026091AF +:1038F000CF027091D0024091D2025091D302B6E033 +:103900008A1709F43FC090E041155105C1F17F3F8E +:1039100011F46F3FA1F1B89FF001B99FF00D112490 +:10392000E156FD4F218172132AC02081621327C006 +:103930002281211124C0238134812417350710F4FA +:1039400021503109241B350B283C3105C0F420914E +:10395000D4022F7020612093D40226E0289FF0012A +:10396000299FF00D1124EC55FD4F80818F708061EF +:1039700080838FEC92E00E94B11B0C94391C01965D +:103980008770BECF0895CF92DF92EF92FF920F9390 +:103990001F93CF93DF93CDB7DEB762970FB6F8943E +:1039A000DEBF0FBECDBF8C0185E0F801DE011D96A4 +:1039B00001900D928A95E1F7D8014C9111965C9196 +:1039C000119712966C9112971396CD90DC901497E4 +:1039D0003091CF027091D0028091D2029091D302A7 +:1039E000009709F46BC17F3F19F43F3F09F466C1AA +:1039F000E090D102EE2009F4C0C02091D402C81694 +:103A0000D90628F0F601E81BF90BCF0104C0809518 +:103A100090958C0D9D1DFF24F394883C910578F0C2 +:103A2000F12C207F09F0C6C07C2DD98AC88A8989EB +:103A30000E941A1C8FEC92E00E94B11BB1C0822F31 +:103A4000807F09F046C0751314C0341312C0611191 +:103A500010C02F7020612093D4020E945A1C8FEC5A +:103A600092E00E94B11B8091D402D80115968C93EC +:103A70002EC0CD2819F15F3F11F44F3FF9F0F62E1B +:103A800061111CC080919D0220919E0236E0821738 +:103A900009F45AC090E0389FF001399FF00D1124CD +:103AA000E156FD4F7181571306C07081471303C063 +:103AB0007281711103C001968770E9CFF62E6623DB +:103AC00009F418C18091D40281608093D402F12C52 +:103AD00011C1751308C0341306C0611104C0809170 +:103AE000D402D801C3C04D875E878D859E856A8BC1 +:103AF0000E94F01B6A898823E1F16623D1F12091AD +:103B0000D402822F82958F7090E0029774F080919A +:103B1000CF029091D00298878F831986DB86CA8660 +:103B20002C87CE0107960E94B11B86E0F801AFEC0E +:103B3000B2E001900D928A95E1F70E94681C0E9404 +:103B40005A1CFF24F394D6C04D875E878D859E85D1 +:103B50000E942421292F22952F7030E02230310538 +:103B60000CF0BCC09F7009F0B6C0805E883008F4CD +:103B7000C1C0C8010E94B11BE4CFC816D90608F421 +:103B800053C0F601E81BF90BCF01883C910508F4FE +:103B900050C0F12C7C2DD98AC88A89890E941A1CB0 +:103BA000EFECF2E086E0DF011D928A95E9F70E94D2 +:103BB0005A1CA0C0751314C0341312C0611110C078 +:103BC0008091D402F8018583C8010E94B11B86E070 +:103BD000EFECF2E0DF011D928A95E9F7FE2C8AC036 +:103BE0004D875E878D859E856A8B0E94F01B6A8952 +:103BF000882309F4BECF662309F4BBCF2091D402F9 +:103C0000822F82958F7090E002970CF48ECF809176 +:103C1000CF029091D0029A8389831B82DD82CC826D +:103C20002E83CE0101967FCF809590958C0D9D1DA2 +:103C3000ACCFF62E662309F49CCF75132EC0341337 +:103C40002CC02091D40220FD1FC0822F82958F703E +:103C5000D9F0D80115962C9315978F3049F08F5FC6 +:103C6000982F9295907F822F8F70892B15968C9329 +:103C7000C8010E94B11B86E0F801AFECB2E00190F0 +:103C80000D928A95E1F793CF86E0F801AFECB2E0B0 +:103C900001900D928A95E1F72DC04D875E878D8545 +:103CA0009E850E94F01B811140CF8091D4028160DB +:103CB0008093D402C8010E94B11B1CC0662309F482 +:103CC00058CF4D875E878D859E850E94F01B882387 +:103CD00009F44FCF2ACF811148CF0CC024303105D1 +:103CE0000CF047CF9F7009F440CFF8019581907F89 +:103CF00009F03BCF8F2D62960FB6F894DEBF0FBE52 +:103D0000CDBFDF91CF911F910F91FF90EF90DF908A +:103D1000CF9008951F93CF93DF93CDB7DEB72C9745 +:103D20000FB6F894DEBF0FBECDBF4F8358876987AB +:103D30007A878B879C87CE0107960E94C31C8823B5 +:103D400069F08F8198852A853B85232BF1F19F3F70 +:103D500009F063C08F3F09F060C037C086E0FE0104 +:103D60003796DE01119601900D928A95E1F76F81E9 +:103D70007885EA85FB85309741F17F3F11F46F3FED +:103D800021F120919E0230E0C901019687709927A8 +:103D900040919D0250E08417950709F447C069835C +:103DA0007A83FD83EC8396E0929FD001939FB00DC0 +:103DB0001124A156BD4FFE01319601900D929A95A6 +:103DC000E1F780939E020E94391C16E080919D02CB +:103DD00090919E028917C1F1189FC001112481564C +:103DE0009D4F0E94C31C882379F1E0919D021E9F84 +:103DF000F0011124E156FD4F4081518162817381B0 +:103E0000848195810E94291C80919D0290E00196F9 +:103E10008770992780939D02D9CF4F8158856985F6 +:103E20007A858B859C850E94291CCFCF0E94EC1B34 +:103E300010929E0210929D02EFECF2E086E0DF010C +:103E40001D928A95E9F7C1CF2C960FB6F894DEBF84 +:103E50000FBECDBFDF91CF911F910895EF92FF92DA +:103E60000F931F93CF93DF938C01009709F46CC0DD +:103E7000F12CEE24E394E8012196F8018491843733 +:103E800040F4843008F051C0813081F0823019F163 +:103E90005BC0853709F444C0A8F19CE7980F9037C0 +:103EA00008F052C08F770E94091941C00E5F1F4F62 +:103EB000FE01C49180E28C0F883048F4C7708E2DCB +:103EC00001C0880FCA95EAF70E940A2214C08C2FFD +:103ED0000E9441182DC00E5F1F4FFE01C49180E269 +:103EE0008C0F883058F4C7708E2D01C0880FCA958A +:103EF000EAF70E9410220E9431221AC08C2F0E94E1 +:103F0000091916C00E5F1F4FFE01C491CC2381F02A +:103F10008FE99FE00197F1F700C00000C150F6CF94 +:103F20000E5F1F4FFE01F49003C00E9441188E01E6 +:103F30008F2D882309F49FCFEFE9FFE03197F1F748 +:103F400000C000008150F5CFDF91CF911F910F91FC +:103F5000FF90EF90089508956093D9027093DA026C +:103F60008093DB029093DC020C94D81B0F931F9379 +:103F70000091D9021091DA022091DB023091DC022B +:103F8000DC01CB01802B912BA22BB32B8093D90288 +:103F90009093DA02A093DB02B093DC021F910F91A1 +:103FA0000C94D81B0F931F930091D9021091DA0241 +:103FB0002091DB023091DC02DC01CB0180239123D4 +:103FC000A223B3238093D9029093DA02A093DB0259 +:103FD000B093DC021F910F910C94D81B0F931F9389 +:103FE0000091D9021091DA022091DB023091DC02BB +:103FF000DC01CB0180279127A227B3278093D90228 +:104000009093DA02A093DB02B093DC021F910F9130 +:104010000C94D81B1092D5021092D6021092D7029F +:104020001092D8020C94D81B41E050E060E070E0A0 +:1040300004C0440F551F661F771F8A95D2F740931F +:10404000D5025093D6026093D7027093D8020C9495 +:10405000D81B41E050E060E070E004C0440F551F01 +:10406000661F771F8A95D2F78091D5029091D6026C +:10407000A091D702B091D802482B592B6A2B7B2BE9 +:104080004093D5025093D6026093D7027093D80222 +:104090000C94D81B41E050E060E070E004C0440F95 +:1040A000551F661F771F8A95D2F7409550956095EA +:1040B00070958091D5029091D602A091D702B091CF +:1040C000D802482359236A237B234093D502509377 +:1040D000D6026093D7027093D8020C94D81B41E0AB +:1040E00050E060E070E004C0440F551F661F771F6A +:1040F0008A95D2F78091D5029091D602A091D702ED +:10410000B091D802482759276A277B274093D502C8 +:104110005093D6026093D7027093D8020C94D81BA8 +:104120000F931F930091D5021091D6022091D702D0 +:104130003091D802DC01CB01802B912BA22BB32B29 +:104140008093D5029093D602A093D702B093D80261 +:104150001F910F910C94D81B0F931F930091D502C0 +:104160001091D6022091D7023091D802DC01CB0108 +:1041700080239123A223B3238093D5029093D60268 +:10418000A093D702B093D8021F910F910C94D81B23 +:104190000F931F930091D5021091D6022091D70260 +:1041A0003091D802DC01CB0180279127A227B327C9 +:1041B0008093D5029093D602A093D702B093D802F1 +:1041C0001F910F910C94D81B0895CF92DF92EF921C +:1041D000FF920F931F93CF93DF938C01C090D9026E +:1041E000D090DA02E090DB02F090DC028091D50200 +:1041F0009091D602A091D702B091D802C82AD92AAC +:10420000EA2AFB2ACFE1D0E0D701C6010C2E04C078 +:10421000B695A795979587950A94D2F780FF06C023 +:10422000B8018C2F0E948008019721F4219760F734 +:1042300080E001C08C2FDF91CF911F910F91FF90F3 +:10424000EF90DF90CF900895CF93DF93EC010E9421 +:10425000E520BE010E948008DF91CF910895CB0137 +:104260000E94242108958091DD028595859585958C +:1042700008958091DD028770089598E0899F9001EC +:104280001124262B2093DD020C9429202091DD029D +:10429000809582238093DD02982F977069F430E037 +:1042A000482F552747FD50952417350729F0859548 +:1042B000859585950C944A2008959091DD0297701C +:1042C00081E009F480E0089590911501992321F08F +:1042D00090911601911109C0209117013091180198 +:1042E000F90132969FEF40E01FC0982F9695969562 +:1042F00096959F3050F5E0911701F0911801E90F64 +:10430000F11D877021E030E0A90102C0440F551F64 +:104310008A95E2F7CA019181892B818308959F3F95 +:1043200039F04F5F4E3041F051915813F8CF0DC026 +:104330005111F7CF942FF5CF9F3F39F0F901E90FD5 +:10434000F11D97FDFA9582830895089590911501C6 +:10435000992321F090911601911109C02091170124 +:1043600030911801F9013296205F3F4F1FC0982FFE +:104370009695969596959F30F0F4E0911701F091FF +:104380001801E90FF11D877021E030E0A90102C09A +:10439000440F551F8A95E2F7CA01809591818923C0 +:1043A000818308953196E217F30729F090819813DD +:1043B000F9CF1082F7CF089581E090E0E0911701E6 +:1043C000F0911801E80FF91F1082019680319105D4 +:1043D000A9F708959091F102892B8093F102089535 +:1043E00080959091F10289238093F10208951092B3 +:1043F000F10208959091F002892B8093F0020895C4 +:1044000080959091F00289238093F0020895109294 +:10441000F00208959091EF02892B8093EF020895A6 +:1044200080959091EF0289238093EF020895109276 +:10443000EF0208958093DE0208951092DE0208953F +:104440008091170190911801FC0131969C01205F29 +:104450003F4F80E0919191118F5FE217F307D1F701 +:104460000895E0911701F09118018091F102808385 +:10447000E0911701F091180190818091F002892B51 +:104480008083E0911701F091180190818091EF02F3 +:10449000892B80838091DE02882361F0E0911701EF +:1044A000F09118019081892B80830E942022811134 +:1044B0001092DE0280911701909118010C9416174A +:1044C00020E0009739F0AC01415051098423952335 +:1044D0002F5FF7CF822F089580911303843039F135 +:1044E0001092F30220E488E190E00FB6F894A895CA +:1044F000809360000FBE2093600080E00E94EC0279 +:1045000080E00E941A0983B7817F846083BF83B7EC +:10451000816083BF7894889583B78E7F83BF88E15D +:104520000FB6F89480936000109260000FBE08955B +:104530000895089580E00E94EC020E9498220E9453 +:1045400075090E9499220E94FA0991E0811101C027 +:1045500090E0892F08950E94EC1B80E00E94EC02FD +:104560000E9414280E940A170C941A091F920F9295 +:104570000FB60F9211248F939F93AF93BF938091A7 +:10458000F302811113C08091F4029091F502A09181 +:10459000F602B091F7024196A11DB11D8093F4027D +:1045A0009093F502A093F602B093F702BF91AF91FA +:1045B0009F918F910F900FBE0F901F90189582E0E2 +:1045C00084BD93E095BD9AEF97BD80936E000895EA +:1045D0002FB7F8948091F4029091F502A091F60221 +:1045E000B091F7022FBF0895CF92DF92EF92FF9222 +:1045F0000F931F932FB7F8944091F4025091F50256 +:104600006091F6027091F7022FBF6A017B01EE24E0 +:10461000FF248C0120E030E0C016D106E206F3064C +:1046200010F4415051099A01281B390BC9011F91FF +:104630000F91FF90EF90DF90CF9008951F920F920F +:104640000FB60F9211248F939F93AF93BF938091D6 +:10465000F4029091F502A091F602B091F702019652 +:10466000A11DB11D8093F4029093F502A093F60270 +:10467000B093F702BF91AF919F918F910F900FBEB2 +:104680000F901F9018950E940714F8942FEF87EA57 +:1046900091E6215080409040E1F700C0000087E0A3 +:1046A00090EBDC0180931E0390931F03A0932003E3 +:1046B000B09321039CE088E10FB6F894A89580930D +:1046C00060000FBE90936000FFCF0E94A423811171 +:1046D00002C00E9480230E94AF238093F2020E94B6 +:1046E000B72380931C0387FB882780F980931601EA +:1046F0000E94B323682F70E080E090E00C94AC1F20 +:104700006DEE7EEF80E090E00E94CB2C60E082E0D6 +:1047100090E00E94B92C60E083E090E00E94B92C08 +:1047200060E084E090E00E94B92C60E085E090E0D9 +:104730000E94B92C60E086E090E00E94B92C6FEFF7 +:1047400087E090E00C94B92C80E090E00E94B32CBC +:1047500021E08D3E9E4F09F020E0822F089582E0F7 +:1047600090E00C94AB2C83E090E00C94AB2C84E0B4 +:1047700090E00C94AB2C682F84E090E00C94B92C62 +:1047800086E090E00C94AB2C682F86E090E00C94CF +:10479000B92C87E090E00C94AB2C682F87E090E078 +:1047A0000C94B92C8091FA0280FF0BC060911C011F +:1047B00085E0689FB001112475956795759567959B +:1047C0002BC081FF09C060911C0185E0689FB0018A +:1047D00011247595679520C082FF07C060911C0168 +:1047E00085E0689FB001112417C09091FB029923C6 +:1047F000D1F060911B01961788F720911C0185E08C +:10480000289F90011124929FA001939F500D112485 +:1048100070E0CA010E94912C6038710540F4611566 +:10482000710539F002C065E070E0862F08958FE7CA +:10483000089581E008958091FA0280FF08C0609198 +:104840001A0170E0759567957595679521C081FF90 +:1048500006C060911A0170E07595679519C082FFD6 +:1048600004C060911A0170E010C09091FB0299237E +:10487000C1F0609119019617A0F780911A01899FE4 +:10488000C001112470E00E94912C6038710528F459 +:104890006115710521F0862F08958FE7089581E055 +:1048A000089561E070E0F4CF803F21F40E94D223AC +:1048B000819504C0813F29F40E94D2238093FE0297 +:1048C0000895823F21F40E94D223819504C0833F42 +:1048D00029F40E94D2238093FD020895893F19F4A0 +:1048E0000E941B2405C08A3F31F40E941B2481953D +:1048F0008093FF0208958B3F21F40E941B24819531 +:1049000004C08C3F29F40E941B2480930003089567 +:10491000843F21F48091FC02816017C0853F21F41F +:104920008091FC02826011C0863F21F48091FC02DC +:1049300084600BC0873F21F48091FC02886005C031 +:10494000883F31F48091FC0280618093FC020895DD +:104950008D3F21F48091FA0281600BC08E3F21F4DB +:104960008091FA02826005C08F3F29F48091FA029B +:1049700084608093FA020895803F39F48091FE02AA +:1049800087FF6CC01092FE0269C0813F29F48091BC +:10499000FE021816BCF362C09091FD02823F29F41A +:1049A00097FF5CC01092FD0259C0833F19F419169D +:1049B000CCF354C0893F41F48091FF0218160CF0EB +:1049C0004DC01092FF024AC08A3F29F48091FF0235 +:1049D00087FF44C0F6CF8B3F39F48091000387FFF7 +:1049E0003DC0109200033AC08C3F29F4809100032F +:1049F0001816BCF333C0843F21F48091FC028E7FF3 +:104A000017C0853F21F48091FC028D7F11C0863F45 +:104A100021F48091FC028B7F0BC0873F21F48091B1 +:104A2000FC02877F05C0883F31F48091FC028F7EB5 +:104A30008093FC0213C08D3F21F48091FA028E7F97 +:104A40000BC08E3F21F48091FA028D7F05C08F3F0D +:104A500029F48091FA028B7F8093FA028091FD0203 +:104A600081110EC08091FE0281110AC08091FF0267 +:104A7000811106C080910003811102C01092FB02D7 +:104A800008958CEF92E00E9421170E94E8229093F3 +:104A9000F9028093F80208951F93CF93DF938091DA +:104AA000F8029091F9020E94F422AC019091FB026D +:104AB000992321F020911D0130E006C020911E01B4 +:104AC0008AE0289F900111244217530708F486C0FA +:104AD0008091FD02C091FE02D091FF02109100036F +:104AE000811107C0C11176C0D11174C0111172C0FB +:104AF00075C09F3F19F09F5F9093FB02181624F436 +:104B00000E94D2238093FD028091FD0287FF05C0A1 +:104B10000E94D22381958093FD021C1624F40E94EA +:104B2000D2238093FE028091FE0287FF05C00E947F +:104B3000D22381958093FE026091FD02662339F1B4 +:104B4000C091FE02CC2319F1772767FD7095872F5E +:104B5000972F0E94B32923E333E343E35FE30E94EB +:104B6000C32A0E9480296093FD026C2F772767FD7E +:104B70007095872F972F0E94B32923E333E343E3F4 +:104B80005FE30E94C32A0E9480296093FE021D16E3 +:104B900024F40E941B248093FF028091FF0287FF70 +:104BA00005C00E941B2481958093FF02111624F4F6 +:104BB0000E941B24809300038091000387FF05C09F +:104BC0000E941B24819580930003DF91CF911F9158 +:104BD0000C9441259F3F09F08ECF96CFDF91CF9166 +:104BE0001F910895ECEFF2E085E0DF011D928A95B8 +:104BF000E9F71092FB021092FA020895833081F1D6 +:104C000028F4813059F08230D1F00895853009F4CC +:104C100049C0B8F1863009F456C0089580911E014C +:104C2000262F30E0280F311D2F3F310524F4680F67 +:104C300060931E0108958FEF80931E010895809167 +:104C40001D01262F30E0280F311D2F3F310524F4A0 +:104C5000680F60931D0108958FEF80931D010895E3 +:104C600080911C01262F30E0280F311D2F3F310588 +:104C700024F4680F60931C0108958FEF80931C014A +:104C8000089580911B01262F30E0280F311D2F3F02 +:104C9000310524F4680F60931B0108958FEF809312 +:104CA0001B01089580911A01262F30E0280F311D35 +:104CB0002F3F310524F4680F60931A0108958FEF98 +:104CC00080931A01089580911901262F30E0280F52 +:104CD000311D2F3F310524F4680F609319010895A9 +:104CE0008FEF809319010895833011F128F48130FA +:104CF00049F0823091F00895853081F120F18630BD +:104D0000C1F1089580911E01681720F4861B8093DD +:104D10001E01089510921E01089580911D016817CB +:104D200020F4861B80931D01089510921D010895A3 +:104D300080911C01681720F4861B80931C01089544 +:104D400010921C01089580911B01681720F4861BA6 +:104D500080931B01089510921B01089580911A0100 +:104D6000681720F4861B80931A01089510921A0187 +:104D7000089580911901681720F4861B809319010A +:104D800008951092190108950F931F93873208F028 +:104D900048C08E3108F08DC0803109F477C008F525 +:104DA000873009F461C068F4863009F09DC08091B5 +:104DB000F202817F8E7F8093F20281E08093020372 +:104DC00094C08B3009F489C08E3009F08DC0809179 +:104DD000F20282FB222720F991E0922790FB82F9D0 +:104DE0005EC0863109F479C060F4813109F07CC07D +:104DF0000E94EC1B9091160181E089278093160197 +:104E00006CC0893109F469C08B3109F06DC08091A3 +:104E1000F20281FB222720F991E0922790FB81F991 +:104E20003EC0883309F459C050F4893209F457C0A0 +:104E3000853309F454C0873209F451C055C0833416 +:104E400009F44DC028F48A3308F44EC0895332C0A7 +:104E5000883409F049C00E94EC1B0E942A0A0E9473 +:104E6000F1030E94432339C09091F202892F80956B +:104E7000817080FB90F929F0966098609093F2021F +:104E800034C0997F977F9093F20227C08091F202FD +:104E900083FB222720F991E0922790FB83F98093EE +:104EA000F2029923D1F08091F20281608093F202A4 +:104EB00014C08D5141E050E060E070E08A019B0138 +:104EC00004C0000F111F221F331F8A95D2F7C9019A +:104ED000B8010E94AC1F0E94EC1B81E006C061E09B +:104EE00070E080E090E0F5CF80E01F910F91089591 +:104EF00080E0089580E00895CF93C82F8091020349 +:104F0000813069F018F08230C9F184C0E091170156 +:104F1000F09118018081823209F07EC007C0E091D3 +:104F20001701F09118018081823261F48C2F0E9468 +:104F30007827811104C08C2F0E94C4261DC081E0F7 +:104F400090E01AC08C2F0E947A27811114C0C431BE +:104F500079F048F4CB3079F0C03109F061C082E0DB +:104F60008093020308C0C93219F0C83321F058C039 +:104F70001092020355C081E0817054C0C93291F192 +:104F800020F5C43179F1B0F4C73009F047C08EE1A3 +:104F900080931E0182E380931D018AE080931C01AF +:104FA00084E180931B0188E080931A0188E280935A +:104FB000190134C0CE51C63088F5EC2FF0E0EA5428 +:104FC000FE4F80818093010329C0CE34E9F020F4A4 +:104FD000CB3421F56AE013C0C13579F0C235F1F464 +:104FE00061E00DC080910103882319F01092010344 +:104FF00015C081E08093020315C061E006C0809176 +:1050000001030E94FE250AC06AE0809101030E940C +:10501000742604C01092020380E004C081E002C044 +:1050200080E0AACFCF9108950E94A423811102C0ED +:105030000E9480230E94C02380931D0380FF02C032 +:10504000869501C080E00C94EC0280911D03982F9E +:105050009695292F30E0233031054CF49F5F990F4E +:105060008170892B816080931D030E94C4238091ED +:105070001D0386950C94EC0280911D03982F969544 +:1050800091F09158990F8170892B80931D038E7F29 +:1050900091E009F490E080911D0390FB80F98093EA +:1050A0001D030E94C42380911D0386950C94EC027D +:1050B00080911D03982F909590FB80F980931D039C +:1050C0000E94C42380911D0380FF02C0869501C009 +:1050D00080E00C94EC0290911D03892F86958F5FE0 +:1050E0008F779170843028F4880F892B80931D036B +:1050F00002C090931D0380911D038E7F91E009F4FF +:1051000090E080911D0390FB80F980931D030E9425 +:10511000C42380911D0386950C94EC0220911D03FD +:10512000922F96958927982F990F822F8170892B1E +:1051300080931D038E7F91E009F490E080911D0320 +:1051400090FB80F980931D030E94C42380911D036E +:1051500086950C94EC0280911D0386950895505815 +:10516000BB27AA270ED0D1C1C2D130F0C7D120F0C1 +:1051700031F49F3F11F41EF4B7C10EF4E095E7FB44 +:105180009FC1E92FD3D180F3BA1762077307840751 +:10519000950718F071F49EF5EBC10EF4E0950B2E17 +:1051A000BA2FA02D0B01B90190010C01CA01A00179 +:1051B0001124FF27591B99F0593F50F4503E68F1D4 +:1051C0001A16F040A22F232F342F4427585FF3CF15 +:1051D000469537952795A795F0405395C9F77EF4E6 +:1051E0001F16BA0B620B730B840BBAF09150A1F02F +:1051F000FF0FBB1F661F771F881FC2F70EC0BA0FB5 +:10520000621F731F841F48F4879577956795B7953C +:10521000F7959E3F08F0B3CF9395880F08F0992734 +:10522000EE0F97958795089527D108F481E00895AA +:105230000CD06BC163D140F05AD130F021F45F3F04 +:1052400019F03EC1511195C14FC170D198F3992306 +:10525000C9F35523B1F3951B550BBB27AA2762173A +:105260007307840738F09F5F5F4F220F331F441F7F +:10527000AA1FA9F333D00E2E3AF0E0E830D09150B7 +:105280005040E695001CCAF729D0FE2F27D0660FA4 +:10529000771F881FBB1F261737074807AB07B0E8E3 +:1052A00009F0BB0B802DBF01FF2793585F4F2AF0F9 +:1052B0009E3F510568F004C15CC15F3FECF3983E2E +:1052C000DCF3869577956795B795F7959F5FC9F756 +:1052D000880F911D9695879597F90895E1E0660FDF +:1052E000771F881FBB1F621773078407BA0720F058 +:1052F000621B730B840BBA0BEE1F88F7E0950895C1 +:1053000004D06894B11135C1089518D188F09F5721 +:1053100090F0B92F9927B751A0F0D1F0660F771F01 +:10532000881F991F1AF0BA95C9F712C0B13081F0E1 +:105330001FD1B1E008951CC1672F782F8827B85F6F +:1053400039F0B93FCCF3869577956795B395D9F742 +:105350003EF490958095709561957F4F8F4F9F4F4C +:105360000895E89409C097FB3EF490958095709558 +:1053700061957F4F8F4F9F4F9923A9F0F92F96E9A1 +:10538000BB279395F695879577956795B795F11116 +:10539000F8CFFAF4BB0F11F460FF1BC06F5F7F4FB3 +:1053A0008F4F9F4F16C0882311F096E911C07723C5 +:1053B00021F09EE8872F762F05C0662371F096E8CE +:1053C000862F70E060E02AF09A95660F771F881F9D +:1053D000DAF7880F9695879597F9089588D018F091 +:1053E00011F08CD038F480C0C4C0E92F9FD0B0F346 +:1053F0005523C9F3E7FB6217730784079507A8F1E4 +:1054000099F3E92FFF2788232AF03197660F771F3A +:10541000881FDAF7952F5527442332F091505040DA +:10542000220F331F441FD2F7BB27E91BF50B621B6A +:10543000730B840BB109C1F222F4620F731F841F36 +:10544000B11D31972AF0660F771F881FBB1FEFCF62 +:10545000915050405AF041F0882332F0660F771F88 +:10546000881F91505040C1F7939530C0869577952D +:1054700067959F5FD9F7F8CF990F0008550FAA0BD2 +:10548000E0E8FEEF16161706E807F907C0F0121657 +:105490001306E407F50798F0621B730B840B950B5A +:1054A00039F40A2661F0232B242B252B21F40895AF +:1054B0000A2609F4A140A6958FEF811D811D08954C +:1054C00097F99F6780E870E060E008959F3F31F0B2 +:1054D000915020F4879577956795B795880F911D22 +:1054E0009695879597F908959FEF80EC089500248D +:1054F0000A941616170618060906089500240A9439 +:1055000012161306140605060895092E0394000CBE +:1055100011F4882352F0BB0F40F4BF2B11F460FF4D +:1055200004C06F5F7F4F8F4F9F4F089557FD905876 +:10553000440F551F59F05F3F71F04795880F97FB57 +:10554000991F61F09F3F79F0879508951216130611 +:105550001406551FF2CF4695F1DF08C01616170640 +:105560001806991FF1CF8695710561050894089575 +:10557000E894BB2766277727CB0197F908957CDF4E +:1055800008F48FEF08950BD0C0CFB1DF28F0B6DF5D +:1055900018F0952309F094CFA7CF1124EACFC6DFE6 +:1055A000A0F3959FD1F3950F50E0551F629FF00136 +:1055B000729FBB27F00DB11D639FAA27F00DB11D8F +:1055C000AA1F649F6627B00DA11D661F829F222718 +:1055D000B00DA11D621F739FB00DA11D621F839F9F +:1055E000A00D611D221F749F3327A00D611D231F75 +:1055F000849F600D211D822F762F6A2F11249F57C3 +:1056000050408AF0E1F088234AF0EE0FFF1FBB1FE5 +:10561000661F771F881F91505040A9F79E3F510584 +:1056200070F04ECFA6CF5F3FECF3983EDCF386954B +:1056300077956795B795F795E7959F5FC1F7FE2B2F +:10564000880F911D9695879597F90895FA01EE0FA9 +:10565000FF1F30962105310599F16115710561F43F +:105660008038BFE39B0749F168949038810561F069 +:105670008038BFEF9B0741F0992342F5FF3FE105DA +:105680003105210511F1E8940894E795D901AA2381 +:1056900029F4AB2FBE2FF85FD0F310C0FF5F70F47A +:1056A000A695E0F7F73950F019F0FF3A38F49F77F4 +:1056B0009F930CD00F9007FC905808953EF014CFA4 +:1056C00060E070E080E89FE308954FE79F775F9385 +:1056D0004F933F932F939ED02F913F914F915F9186 +:1056E00052DF05C019F40EF0EBCE42CFFDCE26DF1F +:1056F000C8F39638C0F707F80F92E8942BE33AEA1C +:1057000048EB5FE74EDF0F920F920F924DB75EB7F7 +:105710000F92C0D0EAE0F1E016D04F915F91EF9187 +:10572000FF91E595EE1FFF1F49F0FE57E068442703 +:10573000EE0F441FFA95E1F74195550B32D00F90CB +:1057400007FE26C00895DF93CF931F930F93FF9218 +:10575000EF92DF927B018C01689405C0DA2EEF0195 +:105760001EDFFE01E894A591259135914591559153 +:10577000AEF3EF0106DDFE019701A801DA9479F797 +:10578000DF90EF90FF900F911F91CF91DF910895DF +:105790009B01AC0160E070E080E89FE349CD90CED2 +:1057A00095CECCDEE8F39923D9F3940F511DBBF3CA +:1057B0009150504094F059F0882332F0660F771FD3 +:1057C000881F91505040C1F79E3F510544F7880F04 +:1057D000911D9695879597F908955F3FACF0983E97 +:1057E0009CF0BB27869577956795B79508F4B160CF +:1057F0009395C1F7BB0F58F711F460FFE8CF6F5FC7 +:105800007F4F8F4F9F4FE3CFB4CE0EF05FCE6CCE65 +:10581000689456CE93DEC8F39923D1F3C6F3DF9391 +:10582000CF931F930F93FF92C92FDD2788232AF070 +:105830002197660F771F881FDAF720E030E040E8F5 +:105840005FEB9FE3883920F0803E30F021968F7720 +:1058500087DCE2E3F1E003C083DCEFE5F1E073DF36 +:105860008B01BE01EC01FB2E6F5771097595771FF7 +:10587000880B990B78DD28E132E741E35FE38FDEA7 +:10588000AF2D9801AE01FF900F911F91CF91DF9145 +:1058900078DC3BCEFA01DC01AA0FBB1F9B01AC01F7 +:1058A000BF5728F422273327442750781FC0B75109 +:1058B00088F4AB2F0024469537952795011CA395B6 +:1058C000D2F3002069F0220F331F441FB395DAF39F +:1058D0000DD045CC61307105A0E88A07B94630F497 +:1058E0009B01AC016627772788279078309621F0B6 +:1058F00020833183428353830895AA1BBB1B51E14C +:1059000007C0AA1FBB1FA617B70710F0A61BB70B2F +:10591000881F991F5A95A9F780959095BC01CD01D4 +:10592000089597FB072E16F4009407D077FD09D051 +:105930000E947D2C07FC05D03EF4909581959F4FE9 +:105940000895709561957F4F0895EE0FFF1F0590A4 +:10595000F491E02D0994F999FECF92BD81BDF89A9A +:10596000992780B50895A8E1B0E042E050E00C949A +:10597000D32C262FF999FECF92BD81BDF89A0197BD +:1059800000B4021639F01FBA20BD0FB6F894FA9A87 +:10599000F99A0FBE08950196272F0E94BA2C0C94F5 +:1059A000B92CDC01CB01FC01F999FECF06C0F2BD98 +:1059B000E1BDF89A319600B40D9241505040B8F7CD +:0659C0000895F894FFCFEA +:1059C600640007000CFF0000003F640E109C107975 +:1059D60010451011100101DF022808140A321E00BA +:1059E60002040507090B0C0E1011131517181A1CC3 +:1059F6001D1F2123242628292B2D2F3032343537FD +:105A0600393B1F0F03764F5F6F7F49694379095909 +:105A160053633149803F5D8B803FF8BF803FCAE1C9 +:105A2600803F73ED803FCAE1803FF8BF803F5D8BCA +:105A3600803F3149803F0000803FF16D7F3F75EA2E +:105A46007E3F4C827E3F833F7E3F84287E3F833F5E +:105A56007E3F4C827E3F75EA7E3FF16D7F3F0000C0 +:105A6600803F3F4D3639E304960460042704BA03A9 +:105A7600D303EC0305040102030405060708090025 +:00000001FF diff --git a/keyboards/planck/keymaps/bone2planck/keymap.c b/keyboards/planck/keymaps/bone2planck/keymap.c new file mode 100644 index 000000000..f40b08685 --- /dev/null +++ b/keyboards/planck/keymaps/bone2planck/keymap.c @@ -0,0 +1,112 @@ + +#include "planck.h" +#ifdef BACKLIGHT_ENABLE +#include "backlight.h" +#endif +#include "keymap_german.h" + +/* This Layout tries to emulate the Bone2 Variant of Neo2, and is intended to be used with a German QWERTZ Softwarelayout. + It has Umlauts and "ß" as it is optimized for a mix of German & English. + My favourite features are the placement of the special characters often used for programming right on the home row + and the number & navigation block combo, so you never have to move your hands from their home position. + + Bone2 wiki page: http://wiki.neo-layout.org/wiki/Bone +*/ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Bone2 + * ,-----------------------------------------------------------------------------------. + * | Q | J | D | U | A | X | P | H | L | M | W | ẞ | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | M1 | C | T | I | E | O | B | N | R | S | G | M1 | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| F | V | Ü | Ä | Ö | Y | Z | , | . | K |Shift | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter | + * `-----------------------------------------------------------------------------------' + */ + [0] = { + { DE_Q, DE_J, DE_D, DE_U, DE_A, DE_X, DE_P, DE_H, DE_L, DE_M, DE_W, DE_SS }, + { MO(1), DE_C, DE_T, DE_I, DE_E, DE_O, DE_B, DE_N, DE_R, DE_S, DE_G, MO(1) }, + { DE_S, DE_F, DE_V, DE_UE, DE_AE, DE_OE, DE_Y, DE_Z, DE_COMM, DE_DOT, DE_K, DE_S }, + { KC_LCTL, KC_LGUI, KC_LALT, MO(3), MO(2), KC_SPC, KC_SPC, MO(2), MO(3), KC_ESC, KC_TAB, KC_ENT } + }, + + /* M1 Special Characters + * ,-----------------------------------------------------------------------------------. + * | ° | @ | _ | [ | ] | ^ | ! | < | > | = | & | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | M1 | \ | / | { | } | * | ? | ( | ) | - | : | M1 | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | # | $ | | | ~ | € | + | % | " | ' | ; | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter | + * `-----------------------------------------------------------------------------------' + */ + [1] = { + { DE_RING, DE_AT, DE_UNDS, DE_LBRC, DE_RBRC, DE_CIRC, DE_EXLM, DE_LESS, DE_MORE, DE_EQL, DE_AMPR, KC_NO }, + { KC_TRNS, DE_BSLS, DE_SLSH, DE_LCBR, DE_RCBR, DE_ASTR, DE_QST, DE_LPRN, DE_RPRN, DE_MINS, DE_COLN, KC_TRNS }, + { KC_NO , DE_HASH, DE_DLR, DE_PIPE, DE_TILD, DE_EURO, DE_PLUS, DE_PERC, DE_DQOT, DE_QUOT, DE_SCLN, KC_NO }, + { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS } + }, + + /* Navigation & Number Blocks + * ,-----------------------------------------------------------------------------------. + * | | PgUp | Bksp | Up | DEL | PgDn | | 7 | 8 | 9 | | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | Home | Lft | Down | Right| End | . | 4 | 5 | 6 | , | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| | Tab | Ins | Enter| | 0 | 1 | 2 | 3 | ; |Shift | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter | + * `-----------------------------------------------------------------------------------' + */ + [2] = { + { KC_NO, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_NO, DE_7, DE_8, DE_9, KC_NO, KC_NO }, + { KC_NO, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, DE_DOT, DE_4, DE_5, DE_6, DE_COMM, KC_NO }, + { DE_S, KC_NO, KC_TAB, KC_INS, KC_ENT, KC_NO, KC_0, DE_1, DE_2, DE_3, DE_SCLN, DE_S }, + { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS } + }, + + /* Function & Media Keys + * ,-----------------------------------------------------------------------------------. + * | | | Print|Scroll|Pause | | | F7 | F8 | F9 | F12 | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | Mute | Vol- | Vol+ | | ³ | F4 | F5 | F6 | F11 | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| | Prev | Play | Next | | ² | F1 | F2 | F3 | F10 |Shift | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt | M3 | | Space | | M3 | Esc | Tab |Enter | + * `-----------------------------------------------------------------------------------' + */ + [3] = { + { KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F12, KC_NO }, + { KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, DE_SQ3, KC_F4, KC_F5, KC_F6, KC_F11, KC_NO }, + { KC_TRNS, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, DE_SQ2, KC_F1, KC_F2, KC_F3, KC_F10, KC_TRNS}, + { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} + } +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch (id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); +#ifdef BACKLIGHT_ENABLE + backlight_step(); +#endif + } + else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboards/planck/keymaps/brandon/Makefile b/keyboards/planck/keymaps/brandon/Makefile new file mode 100644 index 000000000..581e08cd0 --- /dev/null +++ b/keyboards/planck/keymaps/brandon/Makefile @@ -0,0 +1,25 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/brandon/compiled.hex b/keyboards/planck/keymaps/brandon/compiled.hex new file mode 100644 index 000000000..2b6bb328d --- /dev/null +++ b/keyboards/planck/keymaps/brandon/compiled.hex @@ -0,0 +1,1456 @@ +:100000000C94C1020C9405030C9405030C94050395 +:100010000C9405030C9405030C9405030C94050340 +:100020000C9405030C9405030C94B2140C948415E1 +:100030000C94E6220C9405030C9405030C94050320 +:100040000C9405030C9467030C9405030C940503AE +:100050000C9405030C944E230C9405030C94050397 +:100060000C9405030C9405030C9405030C940503F0 +:100070000C9405030C9405030C9405030C940503E0 +:100080000C94270B0C9405030C9405030C940503A6 +:100090000C9405030C9405030C9405030C940503C0 +:1000A0000C9405030C9405030C940503F115131629 +:1000B00001171316011758167B160117D016E316F1 +:1000C000CD19CD19FC19FC193B1A5B1AB11BB11BD8 +:1000D000661AB11B161B161B7D1B861BB11BAB1BA7 +:1000E000231B231B231B231B231B231B231B231B20 +:1000F000231B231B231B231B231B231B231B231B10 +:10010000331B411B481B4F1B591B07634236B79BD0 +:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 +:100120005763BD6DEDFD753EF6177231BF000000DF +:10013000803F08000000BE922449123EABAAAA2AC2 +:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD +:1001500000000000BF000000803F00000000000819 +:100160004178D3BB4387D1133D190E3CC3BD4282B6 +:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 +:10018000FFBE01C4FF7F3F00000000000000000030 +:1001900000000000000000010204060A0F17202CD6 +:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 +:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF +:1001C00002010000000000000000000029001400EF +:1001D0001A000800150017001C0018000C0012007F +:1001E00013002A002B0004001600070009000A0073 +:1001F0000B000D000E000F0033003400E1001D0065 +:100200001B00060019000500110010003600370021 +:1002100038002872E000E200E300025403522C0090 +:100220002C0004525000510052004F0029001400CD +:100230001A00090013000A000D000F0018001C002E +:1002400033002A002B0004001500160017000700D9 +:100250000B00110008000C0012003400E1001D002A +:100260001B000600190005000E00100036003700C4 +:1002700038002872E000E200E300025403522C0030 +:100280002C0004525000510052004F000100420067 +:100290004300440045004B002202380024002500A2 +:1002A00026002A0001003E003F00400041004E00B1 +:1002B0004A002502210022002300310201003A00F9 +:1002C0003B003C003D004C004D0027001E001F007D +:1002D00020000100010001000100010001000100F7 +:1002E000010001005000510052004F0035021E0273 +:1002F0001F022002210222022302240225022602DA +:1003000027022A0001003A003B003C003D003E006D +:100310003F002D022E022F02300231020100400068 +:1003200041004200430044004500005301530030A7 +:100330000050010001000100010001000100010066 +:1003400001000100AB00AA00A900AE0035001E00AC +:100350001F00200021002200230024002500260089 +:1003600027002A0001003A003B003C003D003E000F +:100370003F002D002E002F00300031000100400012 +:100380004100420043004400450000530153003047 +:100390000050010001000100010001000100010006 +:1003A00001000100AB00AA00A900AE002803540020 +:1003B00068006500200050006C0061006E00630062 +:1003C0006B0020004B006500790062006F00610047 +:1003D0007200640000002C034F007200740068007B +:1003E0006F006C0069006E00650061007200200003 +:1003F0004B006500790062006F00610072006400CC +:10040000730000000403090409026D00040100A048 +:10041000FA09040000010301010009211101000192 +:10042000223F000705810308000A090401000103B7 +:10043000010200092111010001224D00070582037C +:1004400008000A090402000103000000092111014B +:1004500000012236000705830308000A090403008F +:1004600001030000000921110100012239000705E4 +:1004700084031000011201100100000008EDFE606D +:100480006001000102000105010906A1010507192B +:10049000E029E71500250195087501810205081975 +:1004A00001290595057501910295017503910105D5 +:1004B000071900297715002501957875018102C07B +:1004C00005010980A101850216010026B7001A0165 +:1004D000002AB700751095018100C0050C0901A123 +:1004E000018503160100269C021A01002A9C027550 +:1004F0001095018100C005010902A1010901A100B7 +:1005000005091901290515002501950575018102C7 +:100510009501750381010501093009311581257F98 +:1005200095027508810609381581257F95017508A2 +:100530008106050C0A38021581257F950175088111 +:1005400006C0C005010906A101050719E029E71544 +:100550000025019508750181029501750881010545 +:1005600008190129059505750191029501750391F9 +:10057000010507190029FF150025FF95067508815B +:1005800000C011241FBECFEFDAE0DEBFCDBF04B63E +:1005900003FE24C080911E0390911F03A0912003AD +:1005A000B09121038730904BA740B04BB9F4109223 +:1005B0001E0310921F03109220031092210314BEF9 +:1005C00084B7877F84BF88E10FB6F894809360007A +:1005D000109260000FBEE0E0F8E3099511E0A0E0A2 +:1005E000B1E0E6E2FAE502C005900D92A03CB10749 +:1005F000D9F713E0A0ECB1E001C01D92AE31B10714 +:10060000E1F70E94F8110C94112D0C94000008954C +:10061000089581E0089508950C9408030C9409034B +:100620000C940B030E94DB2823E030E0281B3109E7 +:10063000220F2093C4010895282F2F9880918000C5 +:10064000211108C0877F8093800010928D00109246 +:100650008C001BC0886080938000233019F48FEFDA +:100660009FEF0FC083E090E0821B9109880F991FD4 +:100670002FEF3FEFA90102C0569547958A95E2F703 +:10068000CA0190938D0080938C000C9412030E94F9 +:10069000120384E08093C3011092C0010895279A49 +:1006A0002F988FEF9FEF90938700809386008AE0CA +:1006B0008093800089E1809381000E9444280C94FB +:1006C00047030E944F036E9A769A0C9407031F9279 +:1006D0000F920FB60F9211242F933F938F939F93F6 +:1006E000EF93FF93E091C101F091C201CF01019618 +:1006F0009093C2018093C1010090C30102C0F6959E +:10070000E7950A94E2F7EF738091C001823019F403 +:10071000E03251F404C0813039F4EF3329F4809190 +:100720006F008D7F80936F00F0E0E457FE4FE491FF +:1007300021E031E0E29FC001E39F900D1124009081 +:10074000C40102C0969587950A94E2F790938D00B4 +:1007500080938C00FF91EF919F918F913F912F910A +:100760000F900FBE0F901F90189561110DC0FC01E6 +:100770008281882331F085EE0E9471180E949B28A7 +:1007800003C085EE0E94391980E090E0089581E071 +:1007900008950C94C70308950C9461038091150289 +:1007A000882309F448C08091D1019091D20100972B +:1007B00079F40E9418239093D2018093D101809103 +:1007C000D30190E0009771F48091D40190E00AC0C9 +:1007D0000E9424232091000130910101281739073C +:1007E00040F329C00197880F991F880F991FFC01BA +:1007F000EB52FE4F60817181828193810E948D0A4C +:10080000E091D30184E0E89FF0011124EB52FE4F08 +:1008100060817181828193814FE050E00E94450E9A +:100820008091D30190E001966091D40170E00E9424 +:10083000C12C8093D3010C940C03109217020C94DA +:100840005A0A0895089581E0809317020C942204B7 +:10085000089508958F929F92AF92BF92EF92FF9268 +:100860000F931F93CF93DF93CDB7DEB7A3970FB648 +:10087000F894DEBF0FBECDBF7C01FC010081118169 +:10088000C8010E941521B8010E942C068C01B701F5 +:100890000E94C903882309F4CCC10032F0E51F0788 +:1008A00041F4F7018281882309F458C00E94A90EFF +:1008B000C0C10132F0E51F0741F4F70182818823AE +:1008C00009F44CC00E94B20EB4C10232F0E51F0719 +:1008D00051F4F7018281882309F440C00E94A50EDB +:1008E0008111F0CFE3CF0332F0E51F0739F4F701B0 +:1008F0008281882399F10E9423049BC10432F0E590 +:100900001F0739F4F7018281882341F10E941D04F9 +:1009100090C10532F0E51F0749F4F7018281882371 +:10092000E9F0809117028111F1CFE5CF0632F0E5B1 +:100930001F0739F4F7018281882381F00E94B90EE4 +:100940000AC00732F0E51F0749F4F70182818823C6 +:1009500029F00E94C40E0E9429046BC180911702E5 +:10096000811105C0F70182818111CFC018C1003EFD +:10097000110579F4F7018281882309F44DC00E94A2 +:100980005A0A81E080931602109215021092D40147 +:1009900050C1023E110559F4F70182818823E1F12B +:1009A0000E945A0A109216021092150242C1033E8A +:1009B000110591F4F7018281882371F10E945A0A8E +:1009C0001092160281E0809315021092D3011092CA +:1009D000D2011092D1012DC10235110559F4F70150 +:1009E0008281882309F425C1809100019091010141 +:1009F0000A970DC00135110579F4F701828188232A +:100A000009F417C180910001909101010A96909319 +:100A10000101809300010DC14091040183E2EFE1E7 +:100A2000F1E0DE01119601900D928A95E1F7F70150 +:100A3000808121E030E02C0F3D1F280F311DC901BE +:100A40002091020130910301FC01E20FF31F60814C +:100A5000772767FD7095640F711D882777FD809556 +:100A6000982F0E94E32920E030E040E451E40E9406 +:100A700048294B015C01F701218184E090E0821B51 +:100A80009109BC01882777FD8095982F0E94E32962 +:100A90009B01AC01C501B4010E94E0289B01AC019F +:100AA00060E070E080E090E40E94562B20E030E0AF +:100AB0004CED50E40E94F32A4B015C01F701828166 +:100AC0008823D1F04FE050E0C501B4010E94450EEB +:100AD000809116028823A1F08091D40124E0829FA6 +:100AE000F0011124EB52FE4F80829182A282B382E8 +:100AF0008F5F8093D40104C0C501B4010E948D0AA8 +:100B00000F3F110508F02ECF94C08091D0018111C4 +:100B10001FC0043130E5130709F051C00E94CB0318 +:100B200081E08093D0010E9418239093CF0180939D +:100B3000CE011092C7011092C9011092C801109203 +:100B4000CB011092CA011092CD011092CC0171C05C +:100B50008091CE019091CF010E942423883C910581 +:100B600070F48091C701E82FF0E0EE0FFF1FE8530B +:100B7000FE4F118300838F5F8093C7015AC00438F2 +:100B800080E5180721F00538104501F13AC0F7015A +:100B90008281882341F01092C50182E01EC0043892 +:100BA00030E5130759F58091C501811106C086E231 +:100BB0000E94711886E20E94391982E01CC0043834 +:100BC000F0E51F0741F305381045D9F4F70182819C +:100BD000882331F01092C60180E20E94881929C052 +:100BE0008091C601811106C087E20E94711887E2D8 +:100BF0000E94391980E20E948F191BC005381045E8 +:100C000029F381E08093C5018093C601C701A396B3 +:100C10000FB6F894DEBF0FBECDBFDF91CF911F910D +:100C20000F91FF90EF90BF90AF909F908F900C949A +:100C30000E0380E0A3960FB6F894DEBF0FBECDBFC3 +:100C4000DF91CF911F910F91FF90EF90BF90AF90E8 +:100C50009F908F90089508959CE0799FF001112452 +:100C600090E3899FE00DF11D1124E60FF11DEE0FB9 +:100C7000FF1FE453FE4F859194910895880F991FAB +:100C8000FC01E45BFF4F859194910895880F991FB3 +:100C9000FC01E453FE4F8591949108950F931F93A7 +:100CA000CF93DF93EC01811521E39207A0F5C115E5 +:100CB00080E3D80708F0D7C0C83ED105D8F4C03EBD +:100CC000D10508F007C2C83AD10578F4C53AD10574 +:100CD00008F06AC0C130D10509F463C008F4F7C157 +:100CE000C430D10508F0F6C1F2C1CB3BD10508F400 +:100CF00066C0EDC1C11590E2D90708F0AFC0C115BB +:100D000021E0D20708F0E6C1C03FD10508F4DFC1F9 +:100D10008E0110651FC2C03880E5D80700F5C037C6 +:100D200090E5D90708F0A3C0C11520E5D20709F462 +:100D3000ACC050F4CE01905480319F4008F0C7C140 +:100D4000DF708E01106A06C2C13080E5D80709F451 +:100D5000AEC0C43190E5D90708F4AFC0B8C1C338FC +:100D600020E5D20709F48EC050F4C13890E5D907C8 +:100D700009F482C008F083C000E011EDEBC1C0317E +:100D800081E5D80708F4A3C1C11597E5D90708F490 +:100D900036C1CE0190578115904108F098C1DF709F +:100DA00093C101E010E0D6C1C53AD10509F494C160 +:100DB000C63AD10509F093C102E810E4CBC1C83AA4 +:100DC000D10509F48FC1C93AD10509F48EC1CA3AD7 +:100DD000D10509F48DC1CB3AD10509F48CC1CC3AC7 +:100DE000D10509F48BC1CD3AD10509F48AC1C03BC4 +:100DF000D10509F489C1CE3AD10509F488C1CF3AA9 +:100E0000D10509F487C1C13BD10509F486C1C23BB4 +:100E1000D10509F485C1C33BD10509F484C1C43BA4 +:100E2000D10509F483C1C53BD10509F482C1C63B94 +:100E3000D10509F481C1C73BD10509F480C1C83B84 +:100E4000D10509F47FC1C93BD10509F47EC1CA3B74 +:100E5000D10509F47DC100E014E47CC1CE019F708E +:100E60000E94460678C1DD278E01106C73C1CF70D9 +:100E7000DD278E01146D6EC100E010ED6BC100E046 +:100E800012ED68C100E013ED65C10E941C1C0E94B8 +:100E90005A0A0E9421048FEF94E32CE08150904085 +:100EA0002040E1F700C000000E94732353C18091ED +:100EB000F20281608093F2024DC10E94D42381111D +:100EC00002C00E94B0230E94E72390E090931D038C +:100ED00080931C03C23080E5D80721F480911C0365 +:100EE000816086C0C43090E5D90721F480911C034D +:100EF00082607EC0C63020E5D20721F480911C03B9 +:100F0000846076C0C83080E5D80719F480911C034E +:100F100027C0CA3090E5D90721F480911C03806175 +:100F200067C0CC3020E5D20721F480911C03806299 +:100F30005FC0CE3080E5D80721F480911C03806427 +:100F400057C0C03190E5D90721F480911C03806817 +:100F50004FC0C23120E5D20729F480911C03846080 +:100F6000886046C0C33080E5D80721F480911C0317 +:100F70008E7F3EC0C53090E5D90721F480911C03D7 +:100F80008D7F36C0C73020E5D20721F480911C0345 +:100F90008B7F2EC0C93080E5D80719F480911C03DF +:100FA00026C0CB3090E5D90721F480911C038F7EB9 +:100FB0001FC0CD3020E5D20721F480911C038F7D26 +:100FC00017C0CF3080E5D80721F480911C038F7BB8 +:100FD0000FC0C13190E5D90721F480911C038F77B0 +:100FE00007C0C331D04531F480911C038B7F877FCC +:100FF00080931C0380911C030E94EB23ABC08D2FB8 +:1010000099278F70992781309105D9F49E0123701B +:10101000332702C0880F991F2A95E2F79C688E013A +:1010200044E0000F111F4A95E1F700271370802B51 +:10103000912B53E0CC0FDD1F5A95E1F7C076DD27E9 +:101040002FC08230910531F4DC2FCC278E01016F47 +:10105000106A80C08330910569F4CE0183709927AE +:1010600001E010E002C0000F111F8A95E2F7C801ED +:101070009C680FC084309105B9F4CE018370992724 +:1010800001E010E002C0000F111F8A95E2F7C801CD +:101090009A6823E0CC0FDD1F2A95E1F7C07ED77058 +:1010A0008C010C2B1D2B56C08530910531F4DC2FA3 +:1010B000CC278E01046F106A4DC0069709F04AC014 +:1010C000CF71DD27DC2FCC278E01106243C000E0FA +:1010D00010E040C08E013EC001E810E43BC003E8D0 +:1010E00010E438C002EE14E435C009EE14E432C056 +:1010F0000AEE14E42FC005EB14E42CC006EB14E454 +:1011000029C007EB14E426C00CEC14E423C00DEC5A +:1011100014E420C003E815E41DC00AE815E41AC071 +:1011200002E915E417C004E915E414C001E216E46D +:1011300011C003E216E40EC004E216E40BC005E29F +:1011400016E408C006E216E405C007E216E402C091 +:101150000AE216E4C801DF91CF911F910F91089523 +:101160009CE0799FF001112490E3899FE00DF11D2F +:101170001124E60FF11DEE0FFF1FE453FE4F859182 +:101180009491803E9105E0F4803C910558F58133BF +:10119000910509F46FC048F48932910509F463C0E0 +:1011A0008A32910509F46DC072C089339105E9F066 +:1011B00082389105D1F08533910509F44DC067C09F +:1011C000833E910581F138F4803E9105B9F0823E6D +:1011D0009105D9F05CC0863E910561F1873E91058D +:1011E000A1F155C00E943E06089520911C0320FDE8 +:1011F00002C021FF4CC080EE90E049C080911C03EA +:1012000080FFF9CF89E390E042C080911C0382FF08 +:101210000EC080911C0384FF03C080E090E037C0C3 +:1012200083EE90E034C080911C0382FFF2CF82EE07 +:1012300090E02DC080911C0383FF0BC080911C03A4 +:1012400084FDEBCF87EE90E022C080911C0383FFEA +:10125000F5CF86EE90E01BC080911C0385FF07C090 +:1012600089E290E014C080911C0385FFF9CF85E3EB +:1012700090E00DC080911C0386FF07C08AE290E0D9 +:1012800006C080911C0386FFF9CF81E390E00E94A5 +:101290004E0608950C941003E82FF0E0E25BFE4F39 +:1012A0008081E82FEF70F0E082958F7021E030E0D0 +:1012B000A90102C0440F551F8A95E2F740A3089583 +:1012C0000F931F93CF93DF9385B7806885BF85B752 +:1012D000806885BFC3E0D0E001E010E0FE01E25B82 +:1012E000FE4F8081E82FEF70F0E021A182958F7092 +:1012F000A80102C0440F551F8A95E2F7CA01822B4C +:1013000081A38C2F0E944C09219740F78BE090E03D +:1013100061E070E0FC01EE5BFE4F2081E22FEF7098 +:10132000F0E042A122952F70DB0102C0AA0FBB1F83 +:101330002A95E2F79D01242B22A3019758F7DF910C +:10134000CF911F910F910C94CC03EF92FF920F93CA +:101350001F93CF93DF9300E212E0C3E0EE24E39407 +:10136000F12CD5E08C2F0E944C098BE090E040E0FE +:1013700050E0FC01EE5BFE4F6081E62FEF70F0E085 +:1013800020A130E062956F7002C0359527956A956F +:10139000E2F720FD09C09701082E02C0220F331F7B +:1013A0000A94E2F7422B532B019718F7F801929118 +:1013B00082918F018417950721F051834083D09348 +:1013C00005018C2F0E944C09C15060F680910501E7 +:1013D00087FD2CC08150809305018F3F39F08FE944 +:1013E0009FE00197F1F700C0000020C080911E022D +:1013F00090911F02909327028093260280911C02F5 +:1014000090911D02909325028093240280911A02EC +:1014100090911B02909323028093220280911802E4 +:101420009091190290932102809320020E94CE0392 +:1014300081E0DF91CF911F910F91FF90EF90089580 +:10144000E82FF0E0EE0FFF1FE05EFD4F80819181FD +:10145000089508950F931F93CF9308E212E0C0E020 +:10146000F801929182918F010E949022C80FF2E0C0 +:1014700000321F07A9F78C2FCF911F910F9108956C +:101480000E94D423811102C00E94B0230E94F9233C +:10149000809307033E9A809171008D7F8093710045 +:1014A00082E0809390008AE18093910081E08093B4 +:1014B0002A02089580912A02811102C00E94400AE6 +:1014C00010927A0210927902809171008D7F809340 +:1014D0007100809190008F738093900010923C0275 +:1014E00010923B02109273021092740210927502D5 +:1014F000109276021092720210927102E1E5F2E00F +:10150000A1E4B2E011921192119211921D921D92DA +:1015100082E0E137F807B1F70895CF92DF92EF92BA +:10152000FF920F931F93CF93DF9320913B022223CF +:1015300009F484C06B017C0180912A02811102C0F0 +:101540000E94400A01E712E0C7E0D0E0A70196013F +:10155000F80192918291729162918F010E944429C7 +:10156000811131C0FE01EE0FFF1FEE0FFF1FEF5A7A +:10157000FD4F1082118212821382DE01AA0FBB1F5F +:10158000AF5BBD4F11961C921E92C730D105E9F09A +:10159000219644815581668177814083518362839E +:1015A0007383148215821682178212968D919C91F4 +:1015B000139711969C938E9313961C921E921297DA +:1015C00034961296E2CF219708F680917902909195 +:1015D0007A02019797FD05C090937A028093790271 +:1015E00004C010927A02109279028091790290914F +:1015F0007A0220917702309178022817390724F077 +:101600001092780210927702892BC1F480917100B8 +:101610008D7F80937100809190008F7380939000F4 +:101620001092730210927402109275021092760258 +:10163000109272021092710210923B02DF91CF91D0 +:101640001F910F91FF90EF90DF90CF9008951F9220 +:101650000F920FB60F9211244F925F926F927F926A +:101660008F929F92AF92BF92CF92DF92EF92FF92B2 +:101670002F933F934F935F936F937F938F939F939A +:10168000AF93BF93CF93DF93EF93FF9380913B0290 +:10169000882309F49BC1C0917902D0917A021C166B +:1016A0001D060CF093C140902B0250902C026090CC +:1016B0002D0270902E0220E030E0A901C301B2019A +:1016C0000E94EF2A18160CF065C0C130D10509F44C +:1016D00052C08091770290917802BE010E94C12C85 +:1016E0007C01909378028093770280903D029090E5 +:1016F0003E02A0903F02B090400220E030E040E87F +:101700005FE3C501B4010E94E02860933D0270933D +:101710003E0280933F0290934002F701EE0FFF1FBD +:10172000EE0FFF1FEF5AFD4FA301920160817181FF +:10173000828193810E94482920E030E040E05EE30E +:101740000E94F32A9B01AC01C501B4010E94EF2A5B +:1017500018168CF4C7010196BE010E94C12C90930B +:1017600078028093770210923D0210923E0210920E +:101770003F0210924002E0917702F0917802EE0F62 +:10178000FF1FEE0FFF1FEF5AFD4F608171818281B5 +:101790009381D0C0C0907302D0907402E090750223 +:1017A000F090760220E030E0A901C701B6010E9466 +:1017B00044292197882309F4A2C0FE01EE0FFF1FE0 +:1017C000EE0FFF1FEF5AFD4F80809180A280B38003 +:1017D000A5019401C701B6010E94442987FF31C0C9 +:1017E000A501940160E070E08CED93EC0E94482923 +:1017F00020E030E040E451E40E94482920E030E05D +:1018000040E05FE30E94F32A9B01AC0160E070E0DE +:1018100080E090E40E94562B9B01AC01C501B4010D +:101820000E94F32A9B01AC01C701B6010E94442922 +:1018300087FF07C0A701960160E070E08CED93E49C +:1018400039C0A5019401C701B6010E94EF2A1816FC +:101850000CF055C0A501940160E070E08CED93E4BC +:101860000E94482920E030E040E451E40E944829E9 +:1018700020E030E040E05FE30E94F32A9B01AC01EE +:1018800060E070E080E090E40E94562B9B01AC0188 +:10189000C501B4010E94F32A9B01AC01C701B60146 +:1018A0000E94EF2A18165CF5A701960160E070E02F +:1018B0008CED93EC0E94482920E030E040E451E4B4 +:1018C0000E94482920E030E040E05FE30E94F32AD4 +:1018D0009B01AC0160E070E080E090E40E94562B38 +:1018E0009B01AC01C701B6010E94F32A6093730209 +:1018F00070937402809375029093760213C0FE0178 +:10190000EE0FFF1FEE0FFF1FEF5AFD4F80819181F9 +:10191000A281B3818093730290937402A0937502A5 +:10192000B093760260917302709174028091750297 +:101930009091760220912802309129022F3F4FEF9B +:10194000340731F02F5F3F4F309329022093280254 +:101950000E94CF0E6B017C0120E034E244EF51E4A1 +:101960000E94442987FF08C086EFC82E88E2D82E3F +:1019700084EFE82E81E4F82E20E030E040E051E4EE +:10198000C701B6010E94F32A9B01AC0160E074E23A +:1019900084E79BE40E9448296B017C010E94B529E1 +:1019A0007093970060939600209106013091070193 +:1019B0004091080150910901C701B6010E94F32A24 +:1019C0000E94B529709399006093980080913C0221 +:1019D000882309F433C1C0903702D0903802E090D8 +:1019E0003902F0903A0220E030E0A901C701B601C7 +:1019F0000E94EF2A1816D4F58091280290912902AE +:101A00008F3F2FEF920729F0019690932902809340 +:101A10002802C701B6010E94CF0E20E030E040E06E +:101A200051E40E94F32A9B01AC0160E074E284E778 +:101A30009BE40E9448296B017C010E94B5297093A8 +:101A40009700609396002091060130910701409124 +:101A5000080150910901C701B6010E94F32A0E94B2 +:101A6000B529709399006093980008C01092970070 +:101A70001092960010929900109298006091310295 +:101A8000709132026F5F7F4F709332026093310228 +:101A9000209196003091970080E090E0232BF1F0A8 +:101AA000C0919600D09197000E94E1296B017C01C2 +:101AB000BE0180E090E00E94E1299B01AC016091B1 +:101AC00033027091340280913502909136020E9467 +:101AD000482920E03FEF4FE757E410C00E94E1297A +:101AE0006B017C0120E030EE4FEF54E46091330253 +:101AF0007091340280913502909136020E94F32A4F +:101B00009B01AC01C701B6010E94EF2A87FD96C078 +:101B100080912F028F5F80932F0290E0209103032A +:101B20003091040382179307A0F080910E0388235D +:101B300019F010922F020DC0809171008D7F80935B +:101B40007100809190008F738093900010923C02FE +:101B50007DC080913002C0912F02811128C0C090B9 +:101B60000803D0900903E0900A03F0900B0320E0F3 +:101B700030E0A901C701B6010E94EF2A1816BCF493 +:101B800081E0809330021092370210923802109256 +:101B9000390210923A02C0923302D0923402E0929B +:101BA0003502F0923602C150C0932F0243C010920A +:101BB00030021092290210922802E0910503F09160 +:101BC000060348E0C49FE00DF11D1124808191813E +:101BD000A281B3818093370290933802A093390297 +:101BE000B0933A0220E030E040E85EE36481758122 +:101BF000868197810E94F32A6B017C0180910A0102 +:101C0000682F70E080E090E00E94E12920E030E061 +:101C100048EC52E40E9448299B01AC01C701B6017F +:101C20000E94F32A6093330270933402809335024A +:101C30009093360210923202109231028091070383 +:101C400080FD04C010923C0210923B02FF91EF9184 +:101C5000DF91CF91BF91AF919F918F917F916F91C4 +:101C60005F914F913F912F91FF90EF90DF90CF9038 +:101C7000BF90AF909F908F907F906F905F904F90AC +:101C80000F900FBE0F901F901895CF92DF92EF929A +:101C9000FF92CF93DF936B017C01EA0180912A02CE +:101CA000811102C00E94400A8091070380FF46C054 +:101CB0008091790290917A0208970CF03FC0809150 +:101CC00071008D7F8093710080913C0281110E9490 +:101CD0005A0A81E080933B02109229021092280256 +:101CE00020E030E0A901C701B6010E94EF2A1816D2 +:101CF000DCF48091790290917A02FC01EE0FFF1FD3 +:101D0000EE0FFF1FEF5AFD4FC082D182E282F382B5 +:101D1000FC01EE0FFF1FEF5BFD4FD183C0830196E7 +:101D200090937A028093790280917100826080930F +:101D3000710080919000806880939000DF91CF9136 +:101D4000FF90EF90DF90CF9008958091070381700E +:101D50000895809107038160809307030E94FD230B +:101D60000C942804809107038E7F809307030C94C2 +:101D7000FD2380917B0290E0019666E070E00E9476 +:101D8000C12C80937B02089580917B0290E00197A3 +:101D900066E070E00E94C12C80937B0208958F92D0 +:101DA0009F92AF92BF92CF92DF92EF92FF920F93EA +:101DB0001F93CF93DF936B017C01C0912802D091D8 +:101DC0002902BE0180E090E00E94E1294B015C0104 +:101DD000A701960160E070E08CE594E40E94482938 +:101DE0009B01AC01C501B4010E94F32A0E94B529F0 +:101DF00020917B02233009F473C028F4222351F090 +:101E00002130E9F02CC1243009F4A0C0253009F4B8 +:101E1000E0C025C180E090E0A0E0BFE38093060130 +:101E200090930701A0930801B093090110922B022F +:101E300010922C0210922D0210922E0210C11092BC +:101E40002B0210922C0210922D0210922E0264315D +:101E5000710540F46A30710560F520E030E040E83B +:101E60005EE32BC0693C710508F0AAC080E090E0F9 +:101E70000E94E12920E030E040EA51E40E94DF289E +:101E800020E030E044E353E40E9448299B01AC0188 +:101E90000E94F32A20E030E040E05EE30E94F32A53 +:101EA0009B01AC0160E070E080E09EE30E94DF28CF +:101EB00044C020E030E040E05FE3C701B6010E948B +:101EC000F32A6B017C0180E090E0A0E0BEE3809308 +:101ED000060190930701A0930801B0930901BFC0C8 +:101EE00010922B0210922C0210922D0210922E02B0 +:101EF0004AE0469F9001479F300D1124C90168EBCD +:101F00007BE00E94AD2CBC016C5D754077FF03C087 +:101F1000719561957109882777FD8095982F0E94AA +:101F2000E3292EE333EC4EE259E30E94F32A20E04A +:101F300030E040EC5EE30E94E0286093060170937D +:101F40000701809308019093090189C010922B0228 +:101F500010922C0210922D0210922E02CE0183704C +:101F60009927892BE1F0BE016170772780E090E02E +:101F70000E94E12920E030E040E05EE30E94F32A85 +:101F800020E030E040E45FE30E94E0286093060137 +:101F90007093070180930801909309010CC080E0C1 +:101FA00090E0A0E0BFE38093060190930701A09327 +:101FB0000801B0930901C770DD27CD2B09F04FC090 +:101FC0001092060110920701109208011092090167 +:101FD00046C010922B0210922C0210922D021092E9 +:101FE0002E0200E010E020E03FE300930601109392 +:101FF000070120930801309309016739710578F1D1 +:1020000080E090E00E94E12920E030E047E153E4E5 +:102010000E94DF2820E030E04AE754E40E9448298B +:1020200020E030E048E452E40E94F32A20E030E06F +:1020300040EA51E40E94252A0E94B029660F771FCA +:10204000660F771FFB01EE5AFE4F208131814281DE +:102050005381C701B6010E94F32A6B017C01C701BD +:10206000B601DF91CF911F910F91FF90EF90DF901C +:10207000CF90BF90AF909F908F90089580918C02E9 +:102080000895CF93DF9300D01F92CDB7DEB79C01A8 +:1020900080911303843019F593E099833B832A835D +:1020A0009093E9008FEF9091E800815095FD06C074 +:1020B00095ED9A95F1F700008111F5CF8091E80038 +:1020C00085FF0DC040E050E063E070E0CE01019676 +:1020D0000E94A2128091E8008E778093E8000F9012 +:1020E0000F900F90DF91CF910895CF93DF9300D0A1 +:1020F0001F92CDB7DEB720911303243021F522E0E3 +:1021000029839B838A8383E08093E9008FEF9091FA +:10211000E800815095FD06C095ED9A95F1F7000015 +:102120008111F5CF8091E80085FF0DC040E050E0BF +:1021300063E070E0CE0101960E94A2128091E80057 +:102140008E778093E8000F900F900F90DF91CF91E2 +:102150000895209113032430F1F422E02093E90044 +:102160002FEF3091E800215035FD06C035ED3A954E +:10217000F1F700002111F5CF2091E80025FF0BC0F9 +:1021800040E050E065E070E00E94A2128091E8001B +:102190008E778093E8000895CF93DF93EC019091C0 +:1021A0001303943009F046C0809115018823D9F0BB +:1021B000809116018823B9F09093E9008FEF9091F8 +:1021C000E800815095FD06C095E19A95F1F7000071 +:1021D0008111F5CF8091E80085FF2CC040E050E0F0 +:1021E00060E170E017C081E08093E9008FEF90918B +:1021F000E800815095FD06C095ED9A95F1F7000035 +:102200008111F5CF8091E80085FF14C040E050E0D7 +:1022100068E070E0CE010E94A2128091E8008E7703 +:102220008093E80080E1FE01ACE7B2E001900D92FE +:102230008A95E1F7DF91CF91089580911203811182 +:1022400009C00E9437140E9494148091E2008460B7 +:102250008093E2000895109212030895089508955E +:102260000C94DB2242E061EC81E00E94B11342E079 +:1022700061EC82E00E94B11342E061EC83E00E94D5 +:10228000B11342E161EC84E00C94B1138091150329 +:10229000833009F455C030F4813071F0823009F494 +:1022A0008EC008958A3009F47AC08B3009F460C07A +:1022B000893009F09CC020C080911403813A09F054 +:1022C00096C08091E800877F8093E8008091180392 +:1022D00090911903892B21F460E18CE792E003C00F +:1022E00060E080E090E070E00E94ED128091E800F4 +:1022F0008B778093E800089580911403813209F070 +:1023000076C08091180390911903009719F00397F4 +:1023100009F06DC08091E800877F8093E80080918C +:10232000E80082FD05C0809113038111F8CF5FC0E2 +:102330008091F10080938C028091E8008B7753C0EC +:1023400080911403813A09F052C080911803909152 +:102350001903892B09F04BC08091E800877F809397 +:10236000E8008091E80080FFFCCF8091150136C025 +:10237000809114038132D9F580911803909119034B +:10238000892BA9F58091E800877F8093E8000E945F +:10239000E61380911603809315010C941C1C809108 +:1023A0001403813221F58091E800877F8093E80053 +:1023B0000E94E6138091170380938D020895809107 +:1023C0001403813AA1F48091E800877F8093E800AC +:1023D0008091E80080FFFCCF80918D028093F10016 +:1023E0008091E8008E778093E8000C94E6130895BE +:1023F00084B7877F84BF88E10FB6F894809360002C +:10240000109260000FBE90E080E80FB6F8948093C1 +:102410006100909361000FBE0E9489170E943714DB +:102420000E9494148091E20084608093E20078948A +:102430000E941A170E948B178BE091E00E943517BB +:1024400080911303853069F40E949C2280911103CE +:102450008823B1F30E94CA22882391F30E948C1230 +:10246000EFCF0E949317ECCF292F3327233031056C +:10247000C9F064F42130310581F02230310509F0D2 +:1024800043C08DE690E028E034E042C021323105BF +:10249000F1F02232310541F137C082E190E025E7C9 +:1024A00034E036C099278130910541F082309105A2 +:1024B00041F0892B49F5E4E0F4E005C0E6EDF3E0F6 +:1024C00002C0ECEAF3E0849190E09F0121C0643007 +:1024D000D8F4E62FF0E0EE0FFF1FE255FE4F20810B +:1024E000318189E090E014C0643070F470E0FB0149 +:1024F000EE0FFF1FEA55FE4F20813181FB01EE55A3 +:10250000FE4F808190E004C080E090E020E030E069 +:10251000FA0131832083089580E189BD82E189BD7C +:1025200009B400FEFDCF8091D8008F7D8093D80044 +:102530008091E00082608093E0008091E00081FD66 +:10254000FCCF0895CF92DF92EF92FF920F931F93EB +:10255000CF93DF93EC018B016A010E940514811176 +:1025600033C0C114D10439F0F60180819181081B78 +:10257000190BC80FD91FE12CF12C0115110519F108 +:102580008091E80085FD16C08091E8008E778093E9 +:10259000E800C114D10449F0F60180819181E80E70 +:1025A000F91EF182E08285E00FC00E9405148823A5 +:1025B00021F30AC089918093F10001501109FFEFC6 +:1025C000EF1AFF0ADACF80E0DF91CF911F910F91D0 +:1025D000FF90EF90DF90CF90089520911A033091F3 +:1025E0001B032617370748F06115710539F4209150 +:1025F000E8002E772093E80001C0B90140E06115A2 +:102600007105A9F120911303222309F443C0253059 +:1026100009F442C02091E80023FD40C02091E80069 +:1026200022FD32C02091E80020FFE9CF4091F30065 +:102630002091F20030E0342BFC01CF0161157105CF +:1026400059F02830310540F481918093F1006150B8 +:1026500071092F5F3F4FF1CF41E02830310509F07C +:1026600040E02091E8002E772093E800C8CF411188 +:10267000C9CF0AC080911303882361F0853061F0CF +:102680008091E80083FD0AC08091E80082FFF2CFCC +:1026900080E0089582E0089583E0089581E0089540 +:1026A00020911A0330911B032617370748F0611554 +:1026B000710539F42091E8002E772093E80001C0DD +:1026C000B901FC0120E06115710591F180911303BE +:1026D000882309F440C0853009F43FC08091E800A8 +:1026E00083FD3DC08091E80082FD2FC08091E8000D +:1026F00080FFE9CF2091F3008091F20090E0922BCF +:102700006115710559F08830910540F424912093AA +:10271000F1003196615071090196F2CF21E00897DE +:1027200009F020E08091E8008E778093E800CBCF1D +:102730002111CCCF0AC080911303882361F085302A +:1027400061F08091E80083FD0AC08091E80082FF7B +:10275000F2CF80E0089582E0089583E0089581E05B +:102760000895982F973058F59093E900981739F00D +:102770007091EC002091ED005091F00003C0242FE7 +:10278000762F50E021FF19C03091EB003E7F30934F +:10279000EB003091ED003D7F3093ED003091EB0088 +:1027A00031603093EB007093EC002093ED00509378 +:1027B000F0002091EE0027FF07C09F5FD3CF8F70FE +:1027C0008093E90081E0089580E0089580911403EA +:1027D00087FF11C08091E80082FD05C0809113033E +:1027E0008111F8CF11C08091E8008B770BC08091E8 +:1027F0001303882349F08091E80080FFF8CF80918F +:10280000E8008E778093E80008952091E4003091ED +:10281000E50095E64091EC00842F817040FF22C0D6 +:102820008091E80080FD1CC080911303882391F003 +:10283000853091F08091EB0085FD10C04091E4005F +:102840005091E5004217530729F39A01915011F76F +:1028500084E0089582E0089583E0089581E008957A +:1028600080E008954091E80042FFDECF08950E9485 +:10287000A5140E94AD14E0EEF0E0808181608083B9 +:10288000E8EDF0E080818F77808319BCA7EDB0E0A0 +:102890008C918E7F8C9380818F7E80831092120327 +:1028A00008950F931F93CF93DF930E94A5140E9466 +:1028B000AD14C8EDD0E088818F77888388818068E7 +:1028C000888388818F7D888319BC109213031092AE +:1028D0000F03109211031092100300EE10E0F801A4 +:1028E00080818B7F808388818160888342E060E083 +:1028F00080E00E94B113E1EEF0E080818E7F808362 +:10290000E2EEF0E080818160808380818860808356 +:10291000F80180818E7F8083888180618883DF9148 +:10292000CF911F910F910895E8EDF0E080818F7EA7 +:102930008083E7EDF0E080818160808384E082BF66 +:1029400081E0809312030C945114E8EDF0E0808153 +:102950008E7F80831092E20008951092DA00109228 +:10296000E10008951F920F920FB60F9211242F933A +:102970003F934F935F936F937F938F939F93AF9307 +:10298000BF93EF93FF938091E10082FF0BC0809192 +:10299000E20082FF07C08091E1008B7F8093E1001D +:1029A0000E9419178091DA0080FF1FC08091D80023 +:1029B00080FF1BC08091DA008E7F8093DA008091C7 +:1029C000D90080FF0DC080E189BD82E189BD09B4D5 +:1029D00000FEFDCF81E0809313030E941D1105C00E +:1029E00019BC109213030E942B118091E10080FF0B +:1029F00019C08091E20080FF15C08091E2008E7FB7 +:102A00008093E2008091E20080618093E2008091F7 +:102A1000D80080628093D80019BC85E080931303AE +:102A20000E942F118091E10084FF30C08091E2006C +:102A300084FF2CC080E189BD82E189BD09B400FE1C +:102A4000FDCF8091D8008F7D8093D8008091E100E8 +:102A50008F7E8093E1008091E2008F7E8093E20080 +:102A60008091E20081608093E20080910F038823CF +:102A700011F084E007C08091E30087FD02C081E08F +:102A800001C083E0809313030E9430118091E10024 +:102A900083FF29C08091E20083FF25C08091E1007F +:102AA000877F8093E10082E08093130310920F03ED +:102AB0008091E1008E7F8093E1008091E2008E7F23 +:102AC0008093E2008091E20080618093E20042E026 +:102AD00060E080E00E94B1138091F00088608093F4 +:102AE000F0000E942E11FF91EF91BF91AF919F9145 +:102AF0008F917F916F915F914F913F912F910F90A7 +:102B00000FBE0F901F9018951F920F920FB60F9245 +:102B100011242F933F934F935F936F937F938F93E2 +:102B20009F93AF93BF93CF93DF93EF93FF93C091A6 +:102B3000E900CF708091EC00D82FD17080FDD0E8F3 +:102B40001092E9008091F000877F8093F0007894E4 +:102B50000E94C8151092E9008091F000886080936F +:102B6000F000CD2BCF70C093E900FF91EF91DF9182 +:102B7000CF91BF91AF919F918F917F916F915F9115 +:102B80004F913F912F910F900FBE0F901F9018956E +:102B90001F93CF93DF93CDB7DEB7AA970FB6F89404 +:102BA000DEBF0FBECDBFE4E1F3E088E08E0F909171 +:102BB000F10091938E13FBCF0E9446118091E800A3 +:102BC00083FF1FC18091140390911503492F50E09A +:102BD0004A30510508F015C1FA01EA5AFF4F0C942A +:102BE000D52C803881F0823809F00BC18091180310 +:102BF0008F708093E9008091EB0085FB882780F936 +:102C00001092E90006C08091100390911103911178 +:102C100082609091E800977F9093E8008093F100A4 +:102C20001092F100C8C0282F2D7F09F0EAC0882338 +:102C300019F0823061F0E5C080911603813009F00F +:102C4000E0C0933009F080E0809311032BC08091A5 +:102C50001603811127C0809118038F7009F4D1C029 +:102C60008093E9002091EB0020FF1CC0933021F4F9 +:102C70008091EB00806214C09091EB009061909382 +:102C8000EB0021E030E0A90102C0440F551F8A95F6 +:102C9000E2F74093EA001092EA008091EB0088602E +:102CA0008093EB001092E9008091E800877F86C056 +:102CB0008111A7C0109116031F778091E3008078DF +:102CC000812B8093E3008091E800877F8093E80068 +:102CD0000E94E6138091E80080FFFCCF8091E30022 +:102CE00080688093E300111102C082E001C083E09C +:102CF0008093130386C08058823008F082C0809190 +:102D00001603909117038C3D53E0950779F583E006 +:102D10008A838AE289834FB7F894DE01139620E014 +:102D20003EE051E2E32FF0E050935700E49120FFA2 +:102D300003C0E295EF703F5FEF708E2F90E0EA30B6 +:102D400010F0C79601C0C0968D939D932F5F2431DC +:102D500049F74FBF8091E800877F8093E8006AE2DF +:102D600070E0CE0101960E94ED1214C0AE014F5FDB +:102D70005F4F609118030E943412BC01009709F460 +:102D800040C09091E800977F9093E80089819A81F4 +:102D90000E9450138091E8008B778093E80031C047 +:102DA000803879F58091E800877F8093E8008091F2 +:102DB0000F038093F1008091E8008E778093E80004 +:102DC0000E94E6131EC081111CC090911603923020 +:102DD000C0F48091E800877F8093E80090930F0310 +:102DE0000E94E61380910F03811106C08091E300D9 +:102DF00087FD02C081E001C084E0809313030E943C +:102E000032118091E80083FF0AC08091E800877F3B +:102E10008093E8008091EB0080628093EB00AA969B +:102E20000FB6F894DEBF0FBECDBFDF91CF911F91DB +:102E300008950895CF93809113038823A1F0C09142 +:102E4000E900CF709091EC00892F817090FD80E8AF +:102E5000C82B1092E9008091E80083FD0E94C815FC +:102E6000CF70C093E900CF9108959093930280931F +:102E700092020895E0919202F0919302309721F02E +:102E80000190F081E02D099480E00895E091920294 +:102E9000F0919302309721F00280F381E02D0994A4 +:102EA0000895E0919202F0919302309721F004800E +:102EB000F581E02D099408952091900230919102BE +:102EC0008217930771F09093910280939002E091A2 +:102ED0009202F0919302309721F00680F781E02D65 +:102EE0000994089520918E0230918F0282179307E2 +:102EF00071F090938F0280938E02E0919202F09194 +:102F00009302309721F00084F185E02D0994089513 +:102F100008950C9488170E940F230E9460090E9454 +:102F200095230C9444285F926F927F928F929F9288 +:102F3000AF92BF92CF92DF92EF92FF920F931F93C7 +:102F4000CF93DF9300D000D01F92CDB7DEB70E94A1 +:102F5000A5099DE9C92E92E0D92E03E010E0AA242C +:102F6000A394B12C502E802F0E94200A4C01F60110 +:102F7000729062906F016826792661147104A1F441 +:102F80000150110978F78FEF89838A831B820E9491 +:102F900018238160782F9D838C8349815A816B81AE +:102FA0008D810E94431838C08091F20281FD0E94F9 +:102FB000290A2BE030E07501022E02C0EE0CFF1C46 +:102FC0000A94E2F7C70186219721892B09F1298309 +:102FD0005A828E209F2091E0892809F490E09B83FB +:102FE0000E9418238160782F9D838C8349815A81A8 +:102FF0006B818D810E944318000F111FF801EB5661 +:10300000FD4F80819181E826F926F182E08204C09B +:103010002150310980F6B4CF0E947C251091940292 +:103020000E943A171817D1F00E943A178093940221 +:103030000F900F900F900F900F90DF91CF911F91F5 +:103040000F91FF90EF90DF90CF90BF90AF909F9047 +:103050008F907F906F905F900C944A090F900F9023 +:103060000F900F900F90DF91CF911F910F91FF90D4 +:10307000EF90DF90CF90BF90AF909F908F907F9018 +:103080006F905F900895CF93DF93CDB7DEB72B9706 +:103090000FB6F894DEBF0FBECDBF4F835887698748 +:1030A0007A878B87DE01119686E0FD0111928A9561 +:1030B000E9F785E0FE01379601900D928A95E1F7D8 +:1030C00049815A816B817C818D819E810E94BA1ECB +:1030D0002B960FB6F894DEBF0FBECDBFDF91CF9118 +:1030E0000895CF93882309F4C2C0C82F823859F4B9 +:1030F0000E943A1781FDBBC089E30E9494210E947F +:10310000612289E30CC0833879F40E943A1780FD6C +:10311000AEC083E50E9494210E94612283E50E9453 +:10312000D621CF910C946122843859F40E943A1729 +:1031300082FD9DC087E40E9494210E94612287E461 +:10314000EECF8CEF8C0F813A48F48C2F0E94AC2785 +:1031500081118DC08C2F0E949421E3CF80E28C0FCF +:10316000883048F4C77081E001C0880FCA95EAF73B +:103170000E941A22D6CF8BE58C0F833078F4C53AA3 +:1031800029F0C63A31F083E890E005C081E890E08C +:1031900002C082E890E0CF910C945C1788E58C0F18 +:1031A000833108F064C0C83A39F1C93A41F1CA3AEA +:1031B00049F1CB3A51F1CC3A59F1CD3A61F1C03BEA +:1031C00069F1CE3A71F1CF3A79F1C13B81F1C23B5D +:1031D00089F1C33B91F1C43B99F1C53BA1F1C63BD9 +:1031E000A9F1C73BB1F1C83BB9F1C93BC1F1CA3B39 +:1031F000C9F180E090E038C082EE90E035C089EE01 +:1032000090E032C08AEE90E02FC085EB90E02CC0B9 +:1032100086EB90E029C087EB90E026C08CEC90E034 +:1032200023C08DEC90E020C083E891E01DC08AE8C7 +:1032300091E01AC082E991E017C084E991E014C0DE +:1032400081E292E011C083E292E00EC084E292E05B +:103250000BC085E292E008C086E292E005C087E2FA +:1032600092E002C08AE292E0CF910C947217CF9163 +:103270000895882309F44BC0823859F40E943A1704 +:1032800081FF45C089E30E9494210E94612289E365 +:103290000CC0833871F40E943A1780FF38C083E570 +:1032A0000E9494210E94612283E50E94D6210C9401 +:1032B0006122843859F40E943A1782FF28C087E4BB +:1032C0000E9494210E94612287E4EFCF9CEF980F27 +:1032D000913A58F390E2980F983050F4877091E04B +:1032E00001C0990F8A95EAF7892F0E942022DFCF2B +:1032F0009BE5980F933020F480E090E00C945C17ED +:10330000885A833120F480E090E00C94721708957D +:10331000882321F00E941A220C94612208958823A8 +:1033200021F00E9420220C94612208957F928F92B6 +:103330009F92AF92BF92CF92DF92EF92FF920F9344 +:103340001F93CF93DF931F92CDB7DEB77C01C62EBC +:10335000772EFC01058102950F70128111110E94D8 +:1033600037220E948D21882379F0112369F080E2B1 +:103370008C0D883048F082E00E9476210E948D21D9 +:1033800091E0D82ED92601C0D12CE72DE295EF701F +:10339000F0E0E05AFF4F0C94D52C872D807F072D4D +:1033A0000F70882311F00295007F112389F000230C +:1033B00009F499C180E28C0D883020F4802F0E949E +:1033C0001A2203C0802F0E942A220E9461228BC1F0 +:1033D0008C2D0E943919002309F4C3C180E28C0DA1 +:1033E000883020F4802F0E94202203C0802F0E946A +:1033F00030220E946122B5C1872D807F972D9F705A +:10340000803211F4892F03C0892F8295807FCC20D0 +:1034100021F0F1E0CF16A1F01DC0112339F00023F7 +:1034200019F1013009F50E944A229BC1002319F0CD +:10343000013009F496C189830E944D22898110C10F +:10344000112321F0063008F08CC10EC0053008F0C1 +:1034500088C106C1112359F0002331F0F70195818D +:1034600090FF41C19F7095830E9488197AC1002303 +:1034700009F4F6C03EC1872D86958695837090E04D +:10348000009719F0019761F06CC1112321F08C2D88 +:10349000972D937002C080E090E00E945C1761C19C +:1034A000112321F08C2D972D937002C080E090E0C5 +:1034B0000E94721756C18C2D112319F00E9484248A +:1034C00002C00E94EC240E9471254BC1872D83709D +:1034D00009F052C0111145C18C2D829586958770D7 +:1034E000880F880F9C2D9F70892E912CA12CB12CB8 +:1034F000082E04C0880C991CAA1CBB1C0A94D2F785 +:10350000C4FE14C00FE010E020E030E0B901A801D3 +:1035100004C0440F551F661F771F8A95D2F7CB0151 +:10352000BA01609570958095909503C060E070E059 +:10353000CB01272D26952695237030E022303105CA +:1035400069F02330310589F0682979298A299B2976 +:103550002130310571F00E94022003C168297929C8 +:103560008A299B290E941E20FCC00E940220C501BE +:10357000B4010E94E61FF5C0112319F0872D817058 +:1035800001C08695882309F4ECC08C2D8295869520 +:103590008770880F880F9C2D9F70892E912CA12CED +:1035A000B12C082E04C0880C991CAA1CBB1C0A94C0 +:1035B000D2F7C4FE14C00FE010E020E030E0B90103 +:1035C000A80104C0440F551F661F771F8A95D2F7C4 +:1035D000CB01BA01609570958095909503C060E02D +:1035E00070E0CB01272D269526952370422F50E0C1 +:1035F0004230510569F04330510589F06829792935 +:103600008A299B294130510571F00E94DC20A9C014 +:10361000682979298A299B290E94F820A2C00E9442 +:10362000DC20C501B4010E94C0209BC08C2D90E01D +:10363000FC01E05EF109E531F10508F050C0E05908 +:10364000FF4F0C94D52C0C2D0F70872D8F711123EB +:1036500021F00E945920802F07CF0E947A20802FCE +:103660000E948F197EC0112341F0053008F079C007 +:10367000872D8F710E949F2074C0063008F071C0A2 +:10368000F7CF112339F0872D8F710E94592069C01F +:103690001123C9F3872D8F710E947A2062C01123F4 +:1036A00029F0872D8F710E9444205BC00E943A2030 +:1036B00058C0112351F0172D1F71812F0E945920DE +:1036C00063E0812F0E946D214CC081E00E94762131 +:1036D000023008F446C082E00E94762142C01123E5 +:1036E00031F0002381F28C2D0E9471183AC0002322 +:1036F00089F28C2D0E94391934C0472D4F706C2DE2 +:10370000C7010E94B5030E945E1F2BC0111129C082 +:10371000472D4F7050E042305105B9F04CF441153F +:10372000510581F041305105E1F40E946C2819C027 +:103730004330510569F04430510599F48C2D0E94B5 +:10374000BE280FC00E9455280CC00E94882809C0BE +:103750000E949B2806C0472D4F706C2DC7010E9408 +:103760002B06DD20F9F00E94692180FD1BC0F701C6 +:1037700012820E9463210E945920C7010E94E11B0E +:103780000E9463210F90DF91CF911F910F91FF90C5 +:10379000EF90DF90CF90BF90AF909F908F907F90F1 +:1037A0000C947A200F90DF91CF911F910F91FF9091 +:1037B000EF90DF90CF90BF90AF909F908F907F90D1 +:1037C00008950F931F93CF93DF93EC018881998124 +:1037D0002B813C81232BB9F09F3F11F48F3F99F04F +:1037E000CE010E942A04882371F0688179818A8140 +:1037F0000E945F218C010E9414210E94DB1FB801EE +:10380000CE010E949619DF91CF911F910F910895DB +:103810000E9437220E9447220E940C220E946122AD +:103820000E9422260E94712580E090E00E945C1791 +:1038300080E090E00C9472170E9427220C94081CE0 +:103840000E945421292F22952F7030E02C30310511 +:103850004CF42A3031056CF4225031092230310504 +:10386000A8F407C02C30310569F02F30310551F034 +:103870000DC0803F69F018F4803E40F409C0843FD9 +:1038800029F406C093FB882780F9089580E0089505 +:1038900081E00895CF93DF9300D000D01F92CDB781 +:1038A000DEB70F900F900F900F900F90DF91CF9198 +:1038B0000895CF93DF9300D000D000D0CDB7DEB70E +:1038C00026960FB6F894DEBF0FBECDBFDF91CF9125 +:1038D00008951F93CF93DF93C0919D0216E08091CE +:1038E0009E02C81799F0D0E01C9FF0011D9FF00DBB +:1038F0001124E156FD4F40815181628173818481A1 +:1039000095810E94591C2196C770E9CFDF91CF9114 +:103910001F9108954091CF025091D0026091D10241 +:103920007091D2028091D3029091D4020C94591CD0 +:103930008091D40282958F7009F054C08091D10299 +:10394000882309F44FC080919D02A0919E0260914E +:10395000CF027091D0024091D2025091D302B6E0D2 +:103960008A1709F43FC090E041155105C1F17F3F2E +:1039700011F46F3FA1F1B89FF001B99FF00D112430 +:10398000E156FD4F218172132AC02081621327C0A6 +:103990002281211124C0238134812417350710F49A +:1039A00021503109241B350B283C3105C0F42091EE +:1039B000D4022F7020612093D40226E0289FF001CA +:1039C000299FF00D1124EC55FD4F80818F7080618F +:1039D00080838FEC92E00E94E11B0C94691C01969D +:1039E0008770BECF0895CF92DF92EF92FF920F9330 +:1039F0001F93CF93DF93CDB7DEB762970FB6F894DE +:103A0000DEBF0FBECDBF8C0185E0F801DE011D9643 +:103A100001900D928A95E1F7D8014C9111965C9135 +:103A2000119712966C9112971396CD90DC90149783 +:103A30003091CF027091D0028091D2029091D30246 +:103A4000009709F46BC17F3F19F43F3F09F466C149 +:103A5000E090D102EE2009F4C0C02091D402C81633 +:103A6000D90628F0F601E81BF90BCF0104C08095B8 +:103A700090958C0D9D1DFF24F394883C910578F062 +:103A8000F12C207F09F0C6C07C2DD98AC88A89898B +:103A90000E944A1C8FEC92E00E94E11BB1C0822F71 +:103AA000807F09F046C0751314C0341312C0611131 +:103AB00010C02F7020612093D4020E948A1C8FECCA +:103AC00092E00E94E11B8091D402D80115968C935C +:103AD0002EC0CD2819F15F3F11F44F3FF9F0F62EBB +:103AE00061111CC080919D0220919E0236E08217D8 +:103AF00009F45AC090E0389FF001399FF00D11246D +:103B0000E156FD4F7181571306C07081471303C002 +:103B10007281711103C001968770E9CFF62E66237A +:103B200009F418C18091D40281608093D402F12CF1 +:103B300011C1751308C0341306C0611104C080910F +:103B4000D402D801C3C04D875E878D859E856A8B60 +:103B50000E94201C6A898823E1F16623D1F120911B +:103B6000D402822F82958F7090E0029774F080913A +:103B7000CF029091D00298878F831986DB86CA8600 +:103B80002C87CE0107960E94E11B86E0F801AFEC7E +:103B9000B2E001900D928A95E1F70E94981C0E9474 +:103BA0008A1CFF24F394D6C04D875E878D859E8541 +:103BB0000E945421292F22952F7030E022303105A8 +:103BC0000CF0BCC09F7009F0B6C0805E883008F46D +:103BD000C1C0C8010E94E11BE4CFC816D90608F491 +:103BE00053C0F601E81BF90BCF01883C910508F49E +:103BF00050C0F12C7C2DD98AC88A89890E944A1C20 +:103C0000EFECF2E086E0DF011D928A95E9F70E9471 +:103C10008A1CA0C0751314C0341312C0611110C0E7 +:103C20008091D402F8018583C8010E94E11B86E0DF +:103C3000EFECF2E0DF011D928A95E9F7FE2C8AC0D5 +:103C40004D875E878D859E856A8B0E94201C6A89C0 +:103C5000882309F4BECF662309F4BBCF2091D40298 +:103C6000822F82958F7090E002970CF48ECF809116 +:103C7000CF029091D0029A8389831B82DD82CC820D +:103C80002E83CE0101967FCF809590958C0D9D1D42 +:103C9000ACCFF62E662309F49CCF75132EC03413D7 +:103CA0002CC02091D40220FD1FC0822F82958F70DE +:103CB000D9F0D80115962C9315978F3049F08F5F66 +:103CC000982F9295907F822F8F70892B15968C93C9 +:103CD000C8010E94E11B86E0F801AFECB2E0019060 +:103CE0000D928A95E1F793CF86E0F801AFECB2E050 +:103CF00001900D928A95E1F72DC04D875E878D85E5 +:103D00009E850E94201C811140CF8091D402816049 +:103D10008093D402C8010E94E11B1CC0662309F4F1 +:103D200058CF4D875E878D859E850E94201C8823F5 +:103D300009F44FCF2ACF811148CF0CC02430310570 +:103D40000CF047CF9F7009F440CFF8019581907F28 +:103D500009F03BCF8F2D62960FB6F894DEBF0FBEF1 +:103D6000CDBFDF91CF911F910F91FF90EF90DF902A +:103D7000CF9008951F93CF93DF93CDB7DEB72C97E5 +:103D80000FB6F894DEBF0FBECDBF4F83588769874B +:103D90007A878B879C87CE0107960E94F31C882325 +:103DA00069F08F8198852A853B85232BF1F19F3F10 +:103DB00009F063C08F3F09F060C037C086E0FE01A4 +:103DC0003796DE01119601900D928A95E1F76F8189 +:103DD0007885EA85FB85309741F17F3F11F46F3F8D +:103DE00021F120919E0230E0C90101968770992748 +:103DF00040919D0250E08417950709F447C06983FC +:103E00007A83FD83EC8396E0929FD001939FB00D5F +:103E10001124A156BD4FFE01319601900D929A9545 +:103E2000E1F780939E020E94691C16E080919D023A +:103E300090919E028917C1F1189FC00111248156EB +:103E40009D4F0E94F31C882379F1E0919D021E9FF3 +:103E5000F0011124E156FD4F40815181628173814F +:103E6000848195810E94591C80919D0290E0019669 +:103E70008770992780939D02D9CF4F815885698596 +:103E80007A858B859C850E94591CCFCF0E941C1C73 +:103E900010929E0210929D02EFECF2E086E0DF01AC +:103EA0001D928A95E9F7C1CF2C960FB6F894DEBF24 +:103EB0000FBECDBFDF91CF911F910895EF92FF927A +:103EC0000F931F93CF93DF938C01009709F46CC07D +:103ED000F12CEE24E394E8012196F80184918437D3 +:103EE00040F4843008F051C0813081F0823019F103 +:103EF0005BC0853709F444C0A8F19CE7980F903760 +:103F000008F052C08F770E94391941C00E5F1F4FD1 +:103F1000FE01C49180E28C0F883048F4C7708E2D6A +:103F200001C0880FCA95EAF70E943A2214C08C2F6C +:103F30000E9471182DC00E5F1F4FFE01C49180E2D8 +:103F40008C0F883058F4C7708E2D01C0880FCA9529 +:103F5000EAF70E9440220E9461221AC08C2F0E9420 +:103F6000391916C00E5F1F4FFE01C491CC2381F09A +:103F70008FE99FE00197F1F700C00000C150F6CF34 +:103F80000E5F1F4FFE01F49003C00E9471188E0156 +:103F90008F2D882309F49FCFEFE9FFE03197F1F7E8 +:103FA00000C000008150F5CFDF91CF911F910F919C +:103FB000FF90EF90089508956093D9027093DA020C +:103FC0008093DB029093DC020C94081C0F931F93E8 +:103FD0000091D9021091DA022091DB023091DC02CB +:103FE000DC01CB01802B912BA22BB32B8093D90228 +:103FF0009093DA02A093DB02B093DC021F910F9141 +:104000000C94081C0F931F930091D9021091DA02AF +:104010002091DB023091DC02DC01CB018023912373 +:10402000A223B3238093D9029093DA02A093DB02F8 +:10403000B093DC021F910F910C94081C0F931F93F7 +:104040000091D9021091DA022091DB023091DC025A +:10405000DC01CB0180279127A227B3278093D902C7 +:104060009093DA02A093DB02B093DC021F910F91D0 +:104070000C94081C1092D5021092D6021092D7020E +:104080001092D8020C94081C41E050E060E070E00F +:1040900004C0440F551F661F771F8A95D2F74093BF +:1040A000D5025093D6026093D7027093D8020C9435 +:1040B000081C41E050E060E070E004C0440F551F70 +:1040C000661F771F8A95D2F78091D5029091D6020C +:1040D000A091D702B091D802482B592B6A2B7B2B89 +:1040E0004093D5025093D6026093D7027093D802C2 +:1040F0000C94081C41E050E060E070E004C0440F04 +:10410000551F661F771F8A95D2F740955095609589 +:1041100070958091D5029091D602A091D702B0916E +:10412000D802482359236A237B234093D502509316 +:10413000D6026093D7027093D8020C94081C41E019 +:1041400050E060E070E004C0440F551F661F771F09 +:104150008A95D2F78091D5029091D602A091D7028C +:10416000B091D802482759276A277B274093D50268 +:104170005093D6026093D7027093D8020C94081C17 +:104180000F931F930091D5021091D6022091D70270 +:104190003091D802DC01CB01802B912BA22BB32BC9 +:1041A0008093D5029093D602A093D702B093D80201 +:1041B0001F910F910C94081C0F931F930091D5022F +:1041C0001091D6022091D7023091D802DC01CB01A8 +:1041D00080239123A223B3238093D5029093D60208 +:1041E000A093D702B093D8021F910F910C94081C92 +:1041F0000F931F930091D5021091D6022091D70200 +:104200003091D802DC01CB0180279127A227B32768 +:104210008093D5029093D602A093D702B093D80290 +:104220001F910F910C94081C0895CF92DF92EF928A +:10423000FF920F931F93CF93DF938C01C090D9020D +:10424000D090DA02E090DB02F090DC028091D5029F +:104250009091D602A091D702B091D802C82AD92A4B +:10426000EA2AFB2ACFE1D0E0D701C6010C2E04C018 +:10427000B695A795979587950A94D2F780FF06C0C3 +:10428000B8018C2F0E94B008019721F4219760F7A4 +:1042900080E001C08C2FDF91CF911F910F91FF9093 +:1042A000EF90DF90CF900895CF93DF93EC010E94C1 +:1042B0001521BE010E94B008DF91CF910895CB0176 +:1042C0000E94542108958091DD02859585958595FC +:1042D00008958091DD028770089598E0899F90018C +:1042E0001124262B2093DD020C9459202091DD020D +:1042F000809582238093DD02982F977069F430E0D7 +:10430000482F552747FD50952417350729F08595E7 +:10431000859585950C947A2008959091DD0297708B +:1043200081E009F480E0089590911501992321F02E +:1043300090911601911109C0209117013091180137 +:10434000F90132969FEF40E01FC0982F9695969501 +:1043500096959F3050F5E0911701F0911801E90F03 +:10436000F11D877021E030E0A90102C0440F551F04 +:104370008A95E2F7CA019181892B818308959F3F35 +:1043800039F04F5F4E3041F051915813F8CF0DC0C6 +:104390005111F7CF942FF5CF9F3F39F0F901E90F75 +:1043A000F11D97FDFA958283089508959091150166 +:1043B000992321F090911601911109C020911701C4 +:1043C00030911801F9013296205F3F4F1FC0982F9E +:1043D0009695969596959F30F0F4E0911701F0919F +:1043E0001801E90FF11D877021E030E0A90102C03A +:1043F000440F551F8A95E2F7CA0180959181892360 +:10440000818308953196E217F30729F0908198137C +:10441000F9CF1082F7CF089581E090E0E091170185 +:10442000F0911801E80FF91F108201968031910573 +:10443000A9F708959091F102892B8093F1020895D4 +:1044400080959091F10289238093F1020895109252 +:10445000F10208959091F002892B8093F002089563 +:1044600080959091F00289238093F0020895109234 +:10447000F00208959091EF02892B8093EF02089546 +:1044800080959091EF0289238093EF020895109216 +:10449000EF0208958093DE0208951092DE020895DF +:1044A0008091170190911801FC0131969C01205FC9 +:1044B0003F4F80E0919191118F5FE217F307D1F7A1 +:1044C0000895E0911701F09118018091F102808325 +:1044D000E0911701F091180190818091F002892BF1 +:1044E0008083E0911701F091180190818091EF0293 +:1044F000892B80838091DE02882361F0E09117018F +:10450000F09118019081892B80830E9450228111A3 +:104510001092DE0280911701909118010C944617B9 +:1045200020E0009739F0AC014150510984239523D4 +:104530002F5FF7CF822F089580911303843039F1D4 +:104540001092F30220E488E190E00FB6F894A89569 +:10455000809360000FBE2093600080E00E941C03E7 +:1045600080E00E944A0983B7817F846083BF83B75C +:10457000816083BF7894889583B78E7F83BF88E1FD +:104580000FB6F89480936000109260000FBE0895FB +:104590000895089580E00E941C030E94C8220E9492 +:1045A000A5090E94C9220E942A0A91E0811101C036 +:1045B00090E0892F08950E941C1C80E00E941C033B +:1045C0000E9444280E943A170C944A091F920F92A5 +:1045D0000FB60F9211248F939F93AF93BF93809147 +:1045E000F302811113C08091F4029091F502A09121 +:1045F000F602B091F7024196A11DB11D8093F4021D +:104600009093F502A093F602B093F702BF91AF9199 +:104610009F918F910F900FBE0F901F90189582E081 +:1046200084BD93E095BD9AEF97BD80936E00089589 +:104630002FB7F8948091F4029091F502A091F602C0 +:10464000B091F7022FBF0895CF92DF92EF92FF92C1 +:104650000F931F932FB7F8944091F4025091F502F5 +:104660006091F6027091F7022FBF6A017B01EE2480 +:10467000FF248C0120E030E0C016D106E206F306EC +:1046800010F4415051099A01281B390BC9011F919F +:104690000F91FF90EF90DF90CF9008951F920F92AF +:1046A0000FB60F9211248F939F93AF93BF93809176 +:1046B000F4029091F502A091F602B091F7020196F2 +:1046C000A11DB11D8093F4029093F502A093F60210 +:1046D000B093F702BF91AF919F918F910F900FBE52 +:1046E0000F901F9018950E943714F8942FEF87EAC7 +:1046F00091E6215080409040E1F700C0000087E043 +:1047000090EBDC0180931E0390931F03A093200382 +:10471000B09321039CE088E10FB6F894A8958093AC +:1047200060000FBE90936000FFCF0E94D4238111E0 +:1047300002C00E94B0230E94DF238093F2020E94F5 +:10474000E72380931C0387FB882780F98093160159 +:104750000E94E323682F70E080E090E00C94DC1F5F +:104760006DEE7EEF80E090E00E94FB2C60E082E046 +:1047700090E00E94E92C60E083E090E00E94E92C48 +:1047800060E084E090E00E94E92C60E085E090E049 +:104790000E94E92C60E086E090E00E94E92C6FEF37 +:1047A00087E090E00C94E92C80E090E00E94E32CFC +:1047B00021E08D3E9E4F09F020E0822F089582E097 +:1047C00090E00C94DB2C83E090E00C94DB2C84E0F4 +:1047D00090E00C94DB2C682F84E090E00C94E92CA2 +:1047E00086E090E00C94DB2C682F86E090E00C943F +:1047F000E92C87E090E00C94DB2C682F87E090E0B8 +:104800000C94E92C8091FA0280FF0BC060911C018E +:1048100085E0689FB001112475956795759567953A +:104820002BC081FF09C060911C0185E0689FB00129 +:1048300011247595679520C082FF07C060911C0107 +:1048400085E0689FB001112417C09091FB02992365 +:10485000D1F060911B01961788F720911C0185E02B +:10486000289F90011124929FA001939F500D112425 +:1048700070E0CA010E94C12C6038710540F46115D6 +:10488000710539F002C065E070E0862F08958FE76A +:10489000089581E008958091FA0280FF08C0609138 +:1048A0001A0170E0759567957595679521C081FF30 +:1048B00006C060911A0170E07595679519C082FF76 +:1048C00004C060911A0170E010C09091FB0299231E +:1048D000C1F0609119019617A0F780911A01899F84 +:1048E000C001112470E00E94C12C6038710528F4C9 +:1048F0006115710521F0862F08958FE7089581E0F5 +:10490000089561E070E0F4CF803F21F40E9402241A +:10491000819504C0813F29F40E9402248093FE0205 +:104920000895823F21F40E940224819504C0833FB0 +:1049300029F40E9402248093FD020895893F19F40E +:104940000E944B2405C08A3F31F40E944B2481957C +:104950008093FF0208958B3F21F40E944B248195A0 +:1049600004C08C3F29F40E944B24809300030895D7 +:10497000843F21F48091FC02816017C0853F21F4BF +:104980008091FC02826011C0863F21F48091FC027C +:1049900084600BC0873F21F48091FC02886005C0D1 +:1049A000883F31F48091FC0280618093FC0208957D +:1049B0008D3F21F48091FA0281600BC08E3F21F47B +:1049C0008091FA02826005C08F3F29F48091FA023B +:1049D00084608093FA020895803F39F48091FE024A +:1049E00087FF6CC01092FE0269C0813F29F480915C +:1049F000FE021816BCF362C09091FD02823F29F4BA +:104A000097FF5CC01092FD0259C0833F19F419163C +:104A1000CCF354C0893F41F48091FF0218160CF08A +:104A20004DC01092FF024AC08A3F29F48091FF02D4 +:104A300087FF44C0F6CF8B3F39F48091000387FF96 +:104A40003DC0109200033AC08C3F29F480910003CE +:104A50001816BCF333C0843F21F48091FC028E7F92 +:104A600017C0853F21F48091FC028D7F11C0863FE5 +:104A700021F48091FC028B7F0BC0873F21F4809151 +:104A8000FC02877F05C0883F31F48091FC028F7E55 +:104A90008093FC0213C08D3F21F48091FA028E7F37 +:104AA0000BC08E3F21F48091FA028D7F05C08F3FAD +:104AB00029F48091FA028B7F8093FA028091FD02A3 +:104AC00081110EC08091FE0281110AC08091FF0207 +:104AD000811106C080910003811102C01092FB0277 +:104AE00008958CEF92E00E9451170E941823909332 +:104AF000F9028093F80208951F93CF93DF9380917A +:104B0000F8029091F9020E942423AC019091FB02DB +:104B1000992321F020911D0130E006C020911E0153 +:104B20008AE0289F900111244217530708F486C099 +:104B30008091FD02C091FE02D091FF02109100030E +:104B4000811107C0C11176C0D11174C0111172C09A +:104B500075C09F3F19F09F5F9093FB02181624F4D5 +:104B60000E9402248093FD028091FD0287FF05C010 +:104B70000E94022481958093FD021C1624F40E9459 +:104B800002248093FE028091FE0287FF05C00E94EE +:104B9000022481958093FE026091FD02662339F123 +:104BA000C091FE02CC2319F1772767FD7095872FFE +:104BB000972F0E94E32923E333E343E35FE30E945B +:104BC000F32A0E94B0296093FD026C2F772767FDBE +:104BD0007095872F972F0E94E32923E333E343E364 +:104BE0005FE30E94F32A0E94B0296093FE021D1623 +:104BF00024F40E944B248093FF028091FF0287FFE0 +:104C000005C00E944B2481958093FF02111624F465 +:104C10000E944B24809300038091000387FF05C00E +:104C20000E944B24819580930003DF91CF911F91C7 +:104C30000C9471259F3F09F08ECF96CFDF91CF91D5 +:104C40001F910895ECEFF2E085E0DF011D928A9557 +:104C5000E9F71092FB021092FA020895833081F175 +:104C600028F4813059F08230D1F00895853009F46C +:104C700049C0B8F1863009F456C0089580911E01EC +:104C8000262F30E0280F311D2F3F310524F4680F07 +:104C900060931E0108958FEF80931E010895809107 +:104CA0001D01262F30E0280F311D2F3F310524F440 +:104CB000680F60931D0108958FEF80931D01089583 +:104CC00080911C01262F30E0280F311D2F3F310528 +:104CD00024F4680F60931C0108958FEF80931C01EA +:104CE000089580911B01262F30E0280F311D2F3FA2 +:104CF000310524F4680F60931B0108958FEF8093B2 +:104D00001B01089580911A01262F30E0280F311DD4 +:104D10002F3F310524F4680F60931A0108958FEF37 +:104D200080931A01089580911901262F30E0280FF1 +:104D3000311D2F3F310524F4680F60931901089548 +:104D40008FEF809319010895833011F128F4813099 +:104D500049F0823091F00895853081F120F186305C +:104D6000C1F1089580911E01681720F4861B80937D +:104D70001E01089510921E01089580911D0168176B +:104D800020F4861B80931D01089510921D01089543 +:104D900080911C01681720F4861B80931C010895E4 +:104DA00010921C01089580911B01681720F4861B46 +:104DB00080931B01089510921B01089580911A01A0 +:104DC000681720F4861B80931A01089510921A0127 +:104DD000089580911901681720F4861B80931901AA +:104DE00008951092190108950F931F93873208F0C8 +:104DF00048C08E3108F08DC0803109F477C008F5C5 +:104E0000873009F461C068F4863009F09DC0809154 +:104E1000F202817F8E7F8093F20281E08093020311 +:104E200094C08B3009F489C08E3009F08DC0809118 +:104E3000F20282FB222720F991E0922790FB82F96F +:104E40005EC0863109F479C060F4813109F07CC01C +:104E50000E941C1C9091160181E089278093160105 +:104E60006CC0893109F469C08B3109F06DC0809143 +:104E7000F20281FB222720F991E0922790FB81F931 +:104E80003EC0883309F459C050F4893209F457C040 +:104E9000853309F454C0873209F451C055C08334B6 +:104EA00009F44DC028F48A3308F44EC0895332C047 +:104EB000883409F049C00E941C1C0E945A0A0E94B2 +:104EC00021040E94732339C09091F202892F8095AA +:104ED000817080FB90F929F0966098609093F202BF +:104EE00034C0997F977F9093F20227C08091F2029D +:104EF00083FB222720F991E0922790FB83F980938E +:104F0000F2029923D1F08091F20281608093F20243 +:104F100014C08D5141E050E060E070E08A019B01D7 +:104F200004C0000F111F221F331F8A95D2F7C90139 +:104F3000B8010E94DC1F0E941C1C81E006C061E0D9 +:104F400070E080E090E0F5CF80E01F910F91089530 +:104F500080E0089580E00895CF93C82F80910203E8 +:104F6000813069F018F08230C9F184C0E0911701F6 +:104F7000F09118018081823209F07EC007C0E09173 +:104F80001701F09118018081823261F48C2F0E9408 +:104F9000A827811104C08C2F0E94F4261DC081E037 +:104FA00090E01AC08C2F0E94AA27811114C0C4312E +:104FB00079F048F4CB3079F0C03109F061C082E07B +:104FC0008093020308C0C93219F0C83321F058C0D9 +:104FD0001092020355C081E0817054C0C93291F132 +:104FE00020F5C43179F1B0F4C73009F047C08EE143 +:104FF00080931E0182E380931D018AE080931C014F +:1050000084E180931B0188E080931A0188E28093F9 +:10501000190134C0CE51C63088F5EC2FF0E0EA54C7 +:10502000FE4F80818093010329C0CE34E9F020F443 +:10503000CB3421F56AE013C0C13579F0C235F1F403 +:1050400061E00DC080910103882319F010920103E3 +:1050500015C081E08093020315C061E006C0809115 +:1050600001030E942E260AC06AE0809101030E947B +:10507000A42604C01092020380E004C081E002C0B4 +:1050800080E0AACFCF9108950E94D423811102C05D +:105090000E94B0230E94F02380931D0380FF02C072 +:1050A000869501C080E00C941C0380911D03982F0D +:1050B0009695292F30E0233031054CF49F5F990FEE +:1050C0008170892B816080931D030E94F42380915D +:1050D0001D0386950C941C0380911D03982F9695B3 +:1050E00091F09158990F8170892B80931D038E7FC9 +:1050F00091E009F490E080911D0390FB80F980938A +:105100001D030E94F42380911D0386950C941C03BB +:1051100080911D03982F909590FB80F980931D033B +:105120000E94F42380911D0380FF02C0869501C078 +:1051300080E00C941C0390911D03892F86958F5F4E +:105140008F779170843028F4880F892B80931D030A +:1051500002C090931D0380911D038E7F91E009F49E +:1051600090E080911D0390FB80F980931D030E94C5 +:10517000F42380911D0386950C941C0320911D033C +:10518000922F96958927982F990F822F8170892BBE +:1051900080931D038E7F91E009F490E080911D03C0 +:1051A00090FB80F980931D030E94F42380911D03DE +:1051B00086950C941C0380911D0386950895505884 +:1051C000BB27AA270ED0D1C1C2D130F0C7D120F061 +:1051D00031F49F3F11F41EF4B7C10EF4E095E7FBE4 +:1051E0009FC1E92FD3D180F3BA17620773078407F1 +:1051F000950718F071F49EF5EBC10EF4E0950B2EB7 +:10520000BA2FA02D0B01B90190010C01CA01A00118 +:105210001124FF27591B99F0593F50F4503E68F173 +:105220001A16F040A22F232F342F4427585FF3CFB4 +:10523000469537952795A795F0405395C9F77EF485 +:105240001F16BA0B620B730B840BBAF09150A1F0CE +:10525000FF0FBB1F661F771F881FC2F70EC0BA0F54 +:10526000621F731F841F48F4879577956795B795DC +:10527000F7959E3F08F0B3CF9395880F08F09927D4 +:10528000EE0F97958795089527D108F481E008954A +:105290000CD06BC163D140F05AD130F021F45F3FA4 +:1052A00019F03EC1511195C14FC170D198F39923A6 +:1052B000C9F35523B1F3951B550BBB27AA276217DA +:1052C0007307840738F09F5F5F4F220F331F441F1F +:1052D000AA1FA9F333D00E2E3AF0E0E830D0915057 +:1052E0005040E695001CCAF729D0FE2F27D0660F44 +:1052F000771F881FBB1F261737074807AB07B0E883 +:1053000009F0BB0B802DBF01FF2793585F4F2AF098 +:105310009E3F510568F004C15CC15F3FECF3983ECD +:10532000DCF3869577956795B795F7959F5FC9F7F5 +:10533000880F911D9695879597F90895E1E0660F7E +:10534000771F881FBB1F621773078407BA0720F0F7 +:10535000621B730B840BBA0BEE1F88F7E095089560 +:1053600004D06894B11135C1089518D188F09F57C1 +:1053700090F0B92F9927B751A0F0D1F0660F771FA1 +:10538000881F991F1AF0BA95C9F712C0B13081F081 +:105390001FD1B1E008951CC1672F782F8827B85F0F +:1053A00039F0B93FCCF3869577956795B395D9F7E2 +:1053B0003EF490958095709561957F4F8F4F9F4FEC +:1053C0000895E89409C097FB3EF4909580957095F8 +:1053D00061957F4F8F4F9F4F9923A9F0F92F96E941 +:1053E000BB279395F695879577956795B795F111B6 +:1053F000F8CFFAF4BB0F11F460FF1BC06F5F7F4F53 +:105400008F4F9F4F16C0882311F096E911C0772364 +:1054100021F09EE8872F762F05C0662371F096E86D +:10542000862F70E060E02AF09A95660F771F881F3C +:10543000DAF7880F9695879597F9089588D018F030 +:1054400011F08CD038F480C0C4C0E92F9FD0B0F3E5 +:105450005523C9F3E7FB6217730784079507A8F183 +:1054600099F3E92FFF2788232AF03197660F771FDA +:10547000881FDAF7952F5527442332F0915050407A +:10548000220F331F441FD2F7BB27E91BF50B621B0A +:10549000730B840BB109C1F222F4620F731F841FD6 +:1054A000B11D31972AF0660F771F881FBB1FEFCF02 +:1054B000915050405AF041F0882332F0660F771F28 +:1054C000881F91505040C1F7939530C086957795CD +:1054D00067959F5FD9F7F8CF990F0008550FAA0B72 +:1054E000E0E8FEEF16161706E807F907C0F01216F7 +:1054F0001306E407F50798F0621B730B840B950BFA +:1055000039F40A2661F0232B242B252B21F408954E +:105510000A2609F4A140A6958FEF811D811D0895EB +:1055200097F99F6780E870E060E008959F3F31F051 +:10553000915020F4879577956795B795880F911DC1 +:105540009695879597F908959FEF80EC089500242C +:105550000A941616170618060906089500240A94D8 +:1055600012161306140605060895092E0394000C5E +:1055700011F4882352F0BB0F40F4BF2B11F460FFED +:1055800004C06F5F7F4F8F4F9F4F089557FD905816 +:10559000440F551F59F05F3F71F04795880F97FBF7 +:1055A000991F61F09F3F79F08795089512161306B1 +:1055B0001406551FF2CF4695F1DF08C016161706E0 +:1055C0001806991FF1CF8695710561050894089515 +:1055D000E894BB2766277727CB0197F908957CDFEE +:1055E00008F48FEF08950BD0C0CFB1DF28F0B6DFFD +:1055F00018F0952309F094CFA7CF1124EACFC6DF86 +:10560000A0F3959FD1F3950F50E0551F629FF001D5 +:10561000729FBB27F00DB11D639FAA27F00DB11D2E +:10562000AA1F649F6627B00DA11D661F829F2227B7 +:10563000B00DA11D621F739FB00DA11D621F839F3E +:10564000A00D611D221F749F3327A00D611D231F14 +:10565000849F600D211D822F762F6A2F11249F5762 +:1056600050408AF0E1F088234AF0EE0FFF1FBB1F85 +:10567000661F771F881F91505040A9F79E3F510524 +:1056800070F04ECFA6CF5F3FECF3983EDCF38695EB +:1056900077956795B795F795E7959F5FC1F7FE2BCF +:1056A000880F911D9695879597F90895FA01EE0F49 +:1056B000FF1F30962105310599F16115710561F4DF +:1056C0008038BFE39B0749F168949038810561F009 +:1056D0008038BFEF9B0741F0992342F5FF3FE1057A +:1056E0003105210511F1E8940894E795D901AA2321 +:1056F00029F4AB2FBE2FF85FD0F310C0FF5F70F41A +:10570000A695E0F7F73950F019F0FF3A38F49F7793 +:105710009F930CD00F9007FC905808953EF014CF43 +:1057200060E070E080E89FE308954FE79F775F9324 +:105730004F933F932F939ED02F913F914F915F9125 +:1057400052DF05C019F40EF0EBCE42CFFDCE26DFBE +:10575000C8F39638C0F707F80F92E8942BE33AEABB +:1057600048EB5FE74EDF0F920F920F924DB75EB797 +:105770000F92C0D0EAE0F1E016D04F915F91EF9127 +:10578000FF91E595EE1FFF1F49F0FE57E0684427A3 +:10579000EE0F441FFA95E1F74195550B32D00F906B +:1057A00007FE26C00895DF93CF931F930F93FF92B8 +:1057B000EF92DF927B018C01689405C0DA2EEF0135 +:1057C0001EDFFE01E894A5912591359145915591F3 +:1057D000AEF3EF0106DDFE019701A801DA9479F737 +:1057E000DF90EF90FF900F911F91CF91DF9108957F +:1057F0009B01AC0160E070E080E89FE349CD90CE72 +:1058000095CECCDEE8F39923D9F3940F511DBBF369 +:105810009150504094F059F0882332F0660F771F72 +:10582000881F91505040C1F79E3F510544F7880FA3 +:10583000911D9695879597F908955F3FACF0983E36 +:105840009CF0BB27869577956795B79508F4B1606E +:105850009395C1F7BB0F58F711F460FFE8CF6F5F66 +:105860007F4F8F4F9F4FE3CFB4CE0EF05FCE6CCE05 +:10587000689456CE93DEC8F39923D1F3C6F3DF9331 +:10588000CF931F930F93FF92C92FDD2788232AF010 +:105890002197660F771F881FDAF720E030E040E895 +:1058A0005FEB9FE3883920F0803E30F021968F77C0 +:1058B00087DCE2E3F1E003C083DCEFE5F1E073DFD6 +:1058C0008B01BE01EC01FB2E6F5771097595771F97 +:1058D000880B990B78DD28E132E741E35FE38FDE47 +:1058E000AF2D9801AE01FF900F911F91CF91DF91E5 +:1058F00078DC3BCEFA01DC01AA0FBB1F9B01AC0197 +:10590000BF5728F422273327442750781FC0B751A8 +:1059100088F4AB2F0024469537952795011CA39555 +:10592000D2F3002069F0220F331F441FB395DAF33E +:105930000DD045CC61307105A0E88A07B94630F436 +:105940009B01AC016627772788279078309621F055 +:1059500020833183428353830895AA1BBB1B51E1EB +:1059600007C0AA1FBB1FA617B70710F0A61BB70BCF +:10597000881F991F5A95A9F780959095BC01CD0174 +:10598000089597FB072E16F4009407D077FD09D0F1 +:105990000E94AD2C07FC05D03EF4909581959F4F59 +:1059A0000895709561957F4F0895EE0FFF1F059044 +:1059B000F491E02D0994F999FECF92BD81BDF89A3A +:1059C000992780B50895A8E1B0E042E050E00C943A +:1059D000032D262FF999FECF92BD81BDF89A01972C +:1059E00000B4021639F01FBA20BD0FB6F894FA9A27 +:1059F000F99A0FBE08950196272F0E94EA2C0C9465 +:105A0000E92CDC01CB01FC01F999FECF06C0F2BD07 +:105A1000E1BDF89A319600B40D9241505040B8F76C +:065A20000895F894FFCF89 +:105A2600640007000CFF0000003F643E10CC10A984 +:105A360010751041100101DF022808140A321E00F9 +:105A460002040507090B0C0E1011131517181A1C62 +:105A56001D1F2123242628292B2D2F30323435379C +:105A6600393B1F0F03764F5F6F7F496943790959A9 +:105A760053633149803F5D8B803FF8BF803FCAE169 +:105A8600803F73ED803FCAE1803FF8BF803F5D8B6A +:105A9600803F3149803F0000803FF16D7F3F75EACE +:105AA6007E3F4C827E3F833F7E3F84287E3F833FFE +:105AB6007E3F4C827E3F75EA7E3FF16D7F3F000060 +:105AC600803F3F4D36394305F604C00487041A0467 +:105AD60033044C04650401020304050607080900A3 +:00000001FF diff --git a/keyboards/planck/keymaps/brandon/keymap.c b/keyboards/planck/keymaps/brandon/keymap.c new file mode 100644 index 000000000..2b89f86db --- /dev/null +++ b/keyboards/planck/keymaps/brandon/keymap.c @@ -0,0 +1,134 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "planck.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QW 0 +#define _CM 1 +#define _TK 2 +#define _LW 3 +#define _RS 4 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_QW] = { /* Qwerty */ +/* MIT Layout (QWERTY layer) + * + * ,-----------------------------------------------------------------------. + * | esc | q | w | e | r | t | y | u | i | o | p | bspc| + * |-----------------------------------------------------------------------| + * | tab | a | s | d | f | g | h | j | k | l | ; | ' | + * |-----------------------------------------------------------------------| + * |shift| z | x | c | v | b | n | m | , | . | / |enter| + * |-----------------------------------------------------------------------| + * | ctl | alt | win | TK |lower| spc |raise|left |down | up |right| + * `-----------------------------------------------------------------------' + */ + {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_LSFT, KC_ENT) }, + {KC_LCTL, KC_LALT, KC_LGUI, TG(_TK), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_CM] = { /* Colemak */ +/* MIT Layout (Colemak layer) + * + * ,-----------------------------------------------------------------------. + * | esc | q | w | f | p | g | j | l | u | y | ; | bspc| + * |-----------------------------------------------------------------------| + * | tab | a | r | s | t | d | h | n | e | i | o | ' | + * |-----------------------------------------------------------------------| + * |shift| z | x | c | v | b | k | m | , | . | / |enter| + * |-----------------------------------------------------------------------| + * | ctl | alt | win | TK |lower| spc |raise|left |down | up |right| + * `-----------------------------------------------------------------------' + */ + {KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_LSFT, KC_ENT)}, + {KC_LCTL, KC_LALT, KC_LGUI, TG(_TK), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_RS] = { /* RAISE */ +/* MIT Layout (RAISE layer) + * + * ,-----------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | bspc| + * |-----------------------------------------------------------------------| + * | tab | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |-----------------------------------------------------------------------| + * |shift| F7 | F8 | F9 | F10 | F11 | F12 | QW | CM | BL | RST |enter| + * |-----------------------------------------------------------------------| + * | ctl | alt | win | del |lower| spc |raise|next |vold |volu |PLAY | + * `-----------------------------------------------------------------------' + */ + + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), M(0), RESET, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[_LW] = { /* LOWER */ +/* MIT Layout (Colemak layer) + * + * ,-----------------------------------------------------------------------. + * | esc | q | w | f | p | g | j | l | u | y | ; | bspc| + * |-----------------------------------------------------------------------| + * | tab | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |-----------------------------------------------------------------------| + * |shift| F7 | F8 | F9 | F10 | F11 | F12 | QW | CM | BL | RST |enter| + * |-----------------------------------------------------------------------| + * | ctl | alt | win | TK |lower| spc |raise|next |vold |volu |PLAY | + * `-----------------------------------------------------------------------' + */ + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), M(0), RESET, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[_TK] = { /* Ten Key*/ +/* MIT Layout (Ten Key layer) + * + * ,-----------------------------------------------------------------------. + * | esc | F9 | F10 | F11 | F12 | PGUP| % | / | 7 | 8 | 9 | bspc| + * |-----------------------------------------------------------------------| + * | tab | F5 | F6 | F7 | F8 | PGDN| HOME| * | 4 | 5 | 6 | \ | + * |-----------------------------------------------------------------------| + * |shift| F1 | F2 | F3 | F4 | DEL | END | 0 | 1 | 2 | 3 |enter| + * |-----------------------------------------------------------------------| + * | ctl | alt | win | TK |lower| spc |raise|left |down | up |right| + * `-----------------------------------------------------------------------' + */ + {KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_PGUP, KC_PERC, KC_SLSH, KC_7, KC_8, KC_9, KC_BSPC}, + {KC_TRNS, KC_F5, KC_F6, KC_F7, KC_F8, KC_PGDN, KC_HOME, KC_ASTR, KC_4, KC_5, KC_6, KC_PIPE}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_DEL, KC_END, KC_0, KC_1, KC_2, KC_3, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +} + +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboards/planck/keymaps/cbbrowne/.gitignore b/keyboards/planck/keymaps/cbbrowne/.gitignore new file mode 100644 index 000000000..0cf0c6cc5 --- /dev/null +++ b/keyboards/planck/keymaps/cbbrowne/.gitignore @@ -0,0 +1 @@ +compiled.hex diff --git a/keyboards/planck/keymaps/cbbrowne/Makefile b/keyboards/planck/keymaps/cbbrowne/Makefile new file mode 100644 index 000000000..581e08cd0 --- /dev/null +++ b/keyboards/planck/keymaps/cbbrowne/Makefile @@ -0,0 +1,25 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/cbbrowne/config.h b/keyboards/planck/keymaps/cbbrowne/config.h new file mode 100644 index 000000000..2d3df59bd --- /dev/null +++ b/keyboards/planck/keymaps/cbbrowne/config.h @@ -0,0 +1,15 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +/* cbbrowne user configuration */ + +#define randadd 53 +#define randmul 181 +#define randmod 167 + +#endif + + + diff --git a/keyboards/planck/keymaps/cbbrowne/keymap.c b/keyboards/planck/keymaps/cbbrowne/keymap.c new file mode 100644 index 000000000..14a5be170 --- /dev/null +++ b/keyboards/planck/keymaps/cbbrowne/keymap.c @@ -0,0 +1,173 @@ +#include "planck.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif +#include "config.h" +#include "quantum.h" + +/* Each layer is given a name to aid in readability, which is then + used in the keymap matrix below. The underscores do not denote + anything - you can have a layer called STUFF or any other name. + + Layer names don't all need to be of the same length, obviously, and + you could also skip them entirely and just use numbers, though that + means needing to manage the numbers. + + It is preferable to keep the symbols short so that a line worth of + key mappings fits compactly onto a line of code. */ + +/* This was originally based on planck/keymaps/default/default.c, and + then cbbrowne has revised things */ + +/* Things I did not like about the default mapping + + - I found control too hard to get to. I use it more than Tab, so + switched it there. + - Having dash on [lower-j] is a bit nonintuitive, but may be OK + - I'll bet I should switch ESC/TAB + - I'm suspicious that I want to shift M(0) from [4][1] to [4][2], + and shift ESC off the first column so KC_LCTL and KC_LALT can + be on the first column. + - I needed to swap ' and ENTER + + - All of the above are done :-) + + - Dropped out support for Dvorak and friends. They aren't + improvements to me +*/ + + +/* Some interesting things implemented + + - There is a macro that writes out "cbbrowne" to show that I could + - There is a (somewhat cruddy) linear congruential random number + generator. + - I would like to be seeding it with clock info to make it look + more random + - There are two macros that use the random number generators + - one, M_RANDDIGIT, generates a random digit based on state + of the random number generator + - the other, M_RANDLETTER, generates a random letter based on state + of the random number generator + - in both, note the use of register_code()/unregister_code() + to indicate the desired key + - I do indeed want a sweet number pad! +*/ + +/* Other things to do... + + - Need to think about what zsh and readline actions I use lots + - Ought to ensure that Control-Alt-Delete is convenient enough + - How about Alt-F1 thru Alt-F8? + - What's the keystroke to get from X to console these days? + - A layer for doing console switching would not be a bad idea +*/ + +enum layers { + _QW = 0, /* Qwerty mapping */ + _LW, /* Lower layer, where top line has symbols !@#$%^&*() */ + _RS, /* Raised layer, where top line has digits 1234567890 */ + _KP, /* Key pad */ +}; + +enum macro_id { + M_LED = 0, + M_USERNAME, + M_RANDDIGIT, + M_RANDLETTER, + M_VERSION +}; + +/* Note that Planck has dimensions 4 rows x 12 columns */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_QW] = { /* Qwerty */ + {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT }, + {KC_TAB, M(M_LED), KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_RS] = { /* RAISE */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_KP), DF(_KP), RESET, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[_LW] = { /* LOWER */ + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_KP), DF(_KP), RESET, KC_TRNS}, + {KC_TRNS, DF(_KP), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[_KP] = { /* Key Pad */ + {KC_ESC, M(M_USERNAME), M(M_VERSION), KC_F10, KC_F11, KC_F12, KC_PGUP, KC_KP_ENTER, KC_7, KC_8, KC_9, KC_BSPC}, + {KC_LCTL, M(M_RANDDIGIT), KC_F5, KC_F6, KC_F7, KC_F8, KC_PGDN, KC_KP_MINUS, KC_4, KC_5, KC_6, KC_PIPE}, + {KC_LSFT, M(M_RANDLETTER), KC_F1, KC_F2, KC_F3, KC_F4, KC_DEL, KC_KP_PLUS, KC_1, KC_2, KC_3, KC_ENTER}, + {BL_STEP, M(M_LED), KC_LALT, KC_LGUI, KC_NO, KC_SPC, KC_SPC, DF(_QW), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT} +} +}; + +const uint16_t PROGMEM fn_actions[] = { +}; + +/* This bit of logic seeds a wee linear congruential random number generator */ +/* lots of prime numbers everywhere... */ +static uint16_t random_value = 157; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + uint8_t clockbyte=0; + clockbyte = TCNT1 % 256; + uint8_t rval; + // MACRODOWN only works in this function + switch(id) { + case M_LED: + if (record->event.pressed) { + register_code(KC_RSFT); +#ifdef BACKLIGHT_ENABLE + backlight_step(); +#endif + } else { + unregister_code(KC_RSFT); + } + break; + case M_USERNAME: + if (record->event.pressed) { + SEND_STRING("cbbrowne"); + } + break; + case M_VERSION: + if (record->event.pressed) { + SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP "@" QMK_VERSION "@" QMK_BUILDDATE); + } + break; + case M_RANDDIGIT: + /* Generate, based on random number generator, a keystroke for + a numeric digit chosen at random */ + random_value = ((random_value + randadd) * randmul) % randmod; + if (record->event.pressed) { + /* Here, we mix the LCRNG with low bits from one of the system + clocks via XOR in the theory that this may be more random + than either separately */ + rval = (random_value ^ clockbyte) % 10; + /* Note that KC_1 thru KC_0 are a contiguous range */ + register_code (KC_1 + rval); + unregister_code (KC_1 + rval); + } + break; + case M_RANDLETTER: + /* Generate, based on random number generator, a keystroke for + a letter chosen at random */ + /* Here, we mix the LCRNG with low bits from one of the system + clocks via XOR in the theory that this may be more random + than either separately */ + random_value = ((random_value + randadd) * randmul) % randmod; + if (record->event.pressed) { + rval = (random_value ^ clockbyte) % 26; + register_code (KC_A + rval); + unregister_code (KC_A + rval); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboards/planck/keymaps/cbbrowne/readme.md b/keyboards/planck/keymaps/cbbrowne/readme.md new file mode 100644 index 000000000..c676dd2c1 --- /dev/null +++ b/keyboards/planck/keymaps/cbbrowne/readme.md @@ -0,0 +1,64 @@ +cbbrowne custom keyboard +============================== + +Due to cbbrowne@acm.org +Christopher Browne + +This was originally based on the default keyboard map, but I have been +doing sundry experimentation: + +1. Experiments +---------------------------------------- + + * To figure things out about the toolset + * I'm an Emacs guy, so will be needing a fair bit of tuning + * It made sense to mess around some with keyboard maps. + - I tried added Workman alongside Dvorak and Colemak + - Boy, oh boy, these don't help!!! + - I have done 30 years of learning of Emacs key mappings, and + these alternative keyboards massively mess me up + - I added a keypad, originally based on keymaps/numpad.c, but + mighty substantially revised, as that one seems to be rotated 90 + degrees from usual conventions for number pads + * The keypad layer also includes some sample "hacks" of cool things, + all using actions attached in using the function action_get_macro() + - Key [1][2] aka "q" types out my name, cbbrowne, as a fun example + of a key generating a bunch of keystrokes. The keystroke is + sufficiently inconvenient that it isn't terribly practical for me + to use it, but hey, it shows how others might use this facility + in a more useful context. + - Key [2][2] aka "a" uses a random number generator to select a digit 0-9 at random + - Key [3][2] aka "z" uses a random number generator to select a letter a-z at random + - Key [1][3] aka "e" spits out the keymap version number + +2. Some code structure ideas +--------------------------------------------------- + + Each layer is given a name to aid in readability, which is then + used in the keymap matrix below. The underscores do not denote + anything - you can have a layer called STUFF or any other name. + + Layer names don't all need to be of the same length, obviously, and + you could also skip them entirely and just use numbers, though that + means needing to manage the numbers. + + It is preferable to keep the symbols short so that a line worth of + key mappings fits compactly onto a line of code. It might be an + interesting idea to express the maps rotated 90%, so that you + only need to fit 4 symbols onto each line, rather than 12. + + I used enums to manage layer IDs and macro IDs so that I don't need + to care (beyond "start at 0", and arguably that's not needed) about + their values. + +3. Things I did not like about the default mapping +--------------------------------------------------------- + + * I found control too hard to get to. I use it more than Tab, so + switched it there. + * Having dash on [lower-j] is a bit nonintuitive, but may be OK + * I switched ESC/TAB/M(0) around + * I'm suspicious that I want to shift M(0) from [4][1] to [4][2], + and shift ESC off the first column so KC_LCTL and KC_LALT can + be on the first column. + * I needed to swap ' and ENTER diff --git a/keyboards/planck/keymaps/charlie/Makefile b/keyboards/planck/keymaps/charlie/Makefile new file mode 100644 index 000000000..581e08cd0 --- /dev/null +++ b/keyboards/planck/keymaps/charlie/Makefile @@ -0,0 +1,25 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/charlie/compiled.hex b/keyboards/planck/keymaps/charlie/compiled.hex new file mode 100644 index 000000000..335b49d89 --- /dev/null +++ b/keyboards/planck/keymaps/charlie/compiled.hex @@ -0,0 +1,1445 @@ +:100000000C947D020C94C1020C94C1020C94C102A8 +:100010000C94C1020C94C1020C94C1020C94C10254 +:100020000C94C1020C94C1020C945F140C94311511 +:100030000C9493220C94C1020C94C1020C94C10242 +:100040000C94C1020C9423030C94C1020C94C102C1 +:100050000C94C1020C94FB220C94C1020C94C102BA +:100060000C94C1020C94C1020C94C1020C94C10204 +:100070000C94C1020C94C1020C94C1020C94C102F4 +:100080000C94D40A0C94C1020C94C1020C94C102C9 +:100090000C94C1020C94C1020C94C1020C94C102D4 +:1000A0000C94C1020C94C1020C94C1029E15C0159F +:1000B000AE16C015AE1605162816AE167D1690168D +:1000C0007A197A19A919A919E819081A5E1B5E1B71 +:1000D000131A5E1BC31AC31A2A1B331B5E1B581B41 +:1000E000D01AD01AD01AD01AD01AD01AD01AD01AC0 +:1000F000D01AD01AD01AD01AD01AD01AD01AD01AB0 +:10010000E01AEE1AF51AFC1A061B07634236B79B73 +:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 +:100120005763BD6DEDFD753EF6177231BF000000DF +:10013000803F08000000BE922449123EABAAAA2AC2 +:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD +:1001500000000000BF000000803F00000000000819 +:100160004178D3BB4387D1133D190E3CC3BD4282B6 +:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 +:10018000FFBE01C4FF7F3F00000000000000000030 +:1001900000000000000000010204060A0F17202CD6 +:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 +:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF +:1001C0000201000000000000000000000000018C9F +:1001D000028CF1A242070C0310022A041B074507F8 +:1001E0002D010B0116013E033B013B0327010B03CD +:1001F0001603400741071B032D022A032E021D018F +:100200001C011501290014001A0008001500170030 +:100210001C0018000C001200130002202A00040029 +:100220001600070009000A000B000D000E000F0069 +:10023000330034002B001D001B00060019000500D0 +:100240001100100036003700380028004C00E00094 +:100250000000E100E2002C000000500051005200BC +:100260004F0000004C0027001E001F00200021004E +:1002700022002300240025002600012012000A008D +:100280001600180017001B207000430044004000B7 +:10029000410042002B000420052006203A000720E0 +:1002A0006D006E0072006F0071000920360037008B +:1002B00015000B2003202C000C203B0008203C00E4 +:1002C00069000000290019201A2000000000000029 +:1002D000000000000000000000000000000000001E +:1002E00000000000000000000000000000001320DB +:1002F00014201520060000001620052000001720FD +:1003000000000000000000000D2000000E200F2063 +:100310001020112003202C00122000000000730088 +:100320000000000028035400680065002000500011 +:100330006C0061006E0063006B0020004B006500E4 +:10034000790062006F0061007200640000002C03FD +:100350004F007200740068006F006C0069006E004E +:1003600065006100720020004B00650079006200AA +:100370006F00610072006400730000000403090450 +:1003800009026D00040100A0FA0904000001030144 +:100390000100092111010001223F00070581030826 +:1003A000000A0904010001030102000921110100F2 +:1003B00001224D000705820308000A09040200011A +:1003C0000300000009211101000122360007058306 +:1003D0000308000A090403000103000000092111B9 +:1003E00001000122390007058403100001120110E9 +:1003F0000100000008EDFE6060010001020001053F +:10040000010906A101050719E029E7150025019555 +:1004100008750181020508190129059505750191E5 +:10042000029501750391010507190029771500252B +:1004300001957875018102C005010980A10185023D +:1004400016010026B7001A01002AB70075109501A1 +:100450008100C0050C0901A1018503160100269C3D +:10046000021A01002A9C02751095018100C0050145 +:100470000902A1010901A1000509190129051500B9 +:10048000250195057501810295017503810105011D +:10049000093009311581257F9502750881060938D3 +:1004A0001581257F950175088106050C0A3802150E +:1004B00081257F950175088106C0C005010906A147 +:1004C00001050719E029E715002501950875018147 +:1004D0000295017508810105081901290595057521 +:1004E0000191029501750391010507190029FF1576 +:1004F0000025FF950675088100C011241FBECFEFAF +:10050000DAE0DEBFCDBF04B603FE24C080911E0337 +:1005100090911F03A0912003B09121038730904B4D +:10052000A740B04BB9F410921E0310921F03109213 +:1005300020031092210314BE84B7877F84BF88E113 +:100540000FB6F89480936000109260000FBEE0E058 +:10055000F8E3099511E0A0E0B1E0E0E8F9E502C0B8 +:1005600005900D92A03CB107D9F713E0A0ECB1E0E3 +:1005700001C01D92AE31B107E1F70E94A5110C94A4 +:10058000BE2C0C9400000895089581E0089508950C +:100590000C94C4020C94C5020C94C7020E948828D3 +:1005A00023E030E0281B3109220F2093C401089575 +:1005B000282F2F9880918000211108C0877F809379 +:1005C000800010928D0010928C001BC08860809378 +:1005D0008000233019F48FEF9FEF0FC083E090E08D +:1005E000821B9109880F991F2FEF3FEFA90102C0CD +:1005F000569547958A95E2F7CA0190938D008093AE +:100600008C000C94CE020E94CE0284E08093C30141 +:100610001092C0010895279A2F988FEF9FEF909323 +:100620008700809386008AE08093800089E1809330 +:1006300081000E94F1270C9403030E940B036E9A21 +:10064000769A0C94C3021F920F920FB60F92112448 +:100650002F933F938F939F93EF93FF93E091C1016B +:10066000F091C201CF0101969093C2018093C10124 +:100670000090C30102C0F695E7950A94E2F7EF7384 +:100680008091C001823019F4E03251F404C081300D +:1006900039F4EF3329F480916F008D7F80936F00E0 +:1006A000F0E0E457FE4FE49121E031E0E29FC00129 +:1006B000E39F900D11240090C40102C09695879588 +:1006C0000A94E2F790938D0080938C00FF91EF9154 +:1006D0009F918F913F912F910F900FBE0F901F9080 +:1006E000189581E008950C94710308950C941D03EE +:1006F00080911502882309F448C08091D10190911E +:10070000D201009779F40E94C5229093D201809380 +:10071000D1018091D30190E0009771F48091D401D0 +:1007200090E00AC00E94D122209100013091010185 +:100730002817390740F329C00197880F991F880FA0 +:10074000991FFC01EB52FE4F608171818281938180 +:100750000E943A0AE091D30184E0E89FF00111245D +:10076000EB52FE4F60817181828193814FE050E0B6 +:100770000E94F20D8091D30190E001966091D40126 +:1007800070E00E946E2C8093D3010C94C8021092EA +:1007900017020C94070A0895089581E080931702C8 +:1007A0000C94CC03089508958F929F92AF92BF92BC +:1007B000EF92FF920F931F93CF93DF93CDB7DEB7E6 +:1007C000A3970FB6F894DEBF0FBECDBF7C01FC012E +:1007D00000811181C8010E94C220B8010E94D90580 +:1007E0008C01B7010E947303882309F4CCC1003245 +:1007F000F0E51F0741F4F7018281882309F458C00E +:100800000E94560EC0C10132F0E51F0741F4F70106 +:100810008281882309F44CC00E945F0EB4C1023269 +:10082000F0E51F0751F4F7018281882309F440C0E5 +:100830000E94520E8111F0CFE3CF0332F0E51F0783 +:1008400039F4F7018281882399F10E94CD039BC17D +:100850000432F0E51F0739F4F7018281882341F162 +:100860000E94C70390C10532F0E51F0749F4F70164 +:1008700082818823E9F0809117028111F1CFE5CFC1 +:100880000632F0E51F0739F4F7018281882381F0F1 +:100890000E94660E0AC00732F0E51F0749F4F7010F +:1008A0008281882329F00E94710E0E94D3036BC1BC +:1008B00080911702811105C0F70182818111CFC09B +:1008C00018C1003E110579F4F7018281882309F4EB +:1008D0004DC00E94070A81E0809316021092150213 +:1008E0001092D40150C1023E110559F4F7018281E2 +:1008F0008823E1F10E94070A109216021092150255 +:1009000042C1033E110591F4F7018281882371F100 +:100910000E94070A1092160281E08093150210923D +:10092000D3011092D2011092D1012DC102351105CF +:1009300059F4F7018281882309F425C180910001CF +:10094000909101010A970DC00135110579F4F70165 +:100950008281882309F417C18091000190910101DF +:100960000A9690930101809300010DC1409104010A +:1009700083E2EFE1F1E0DE01119601900D928A959C +:10098000E1F7F701808121E030E02C0F3D1F280FB7 +:10099000311DC9012091020130910301FC01E20FD8 +:1009A000F31F6081772767FD7095640F711D88279D +:1009B00077FD8095982F0E94902920E030E040E458 +:1009C00051E40E94F5284B015C01F701218184E08C +:1009D00090E0821B9109BC01882777FD8095982FB4 +:1009E0000E9490299B01AC01C501B4010E948D2891 +:1009F0009B01AC0160E070E080E090E40E94032B7A +:100A000020E030E04CED50E40E94A02A4B015C0154 +:100A1000F70182818823D1F04FE050E0C501B40195 +:100A20000E94F20D809116028823A1F08091D401DA +:100A300024E0829FF0011124EB52FE4F80829182CC +:100A4000A282B3828F5F8093D40104C0C501B40138 +:100A50000E943A0A0F3F110508F02ECF94C08091F2 +:100A6000D00181111FC0043130E5130709F051C0D6 +:100A70000E94750381E08093D0010E94C52290936B +:100A8000CF018093CE011092C7011092C90110923C +:100A9000C8011092CB011092CA011092CD011092A0 +:100AA000CC0171C08091CE019091CF010E94D122E2 +:100AB000883C910570F48091C701E82FF0E0EE0FBB +:100AC000FF1FE853FE4F118300838F5F8093C701A0 +:100AD0005AC0043880E5180721F00538104501F1A7 +:100AE0003AC0F7018281882341F01092C50182E06B +:100AF0001EC0043830E5130759F58091C5018111F6 +:100B000006C086E20E941E1886E20E94E61882E075 +:100B10001CC00438F0E51F0741F305381045D9F42F +:100B2000F7018281882331F01092C60180E20E9491 +:100B3000351929C08091C601811106C087E20E9443 +:100B40001E1887E20E94E61880E20E943C191BC032 +:100B50000538104529F381E08093C5018093C601D3 +:100B6000C701A3960FB6F894DEBF0FBECDBFDF91CD +:100B7000CF911F910F91FF90EF90BF90AF909F90FA +:100B80008F900C94CA0280E0A3960FB6F894DEBF53 +:100B90000FBECDBFDF91CF911F910F91FF90EF90CE +:100BA000BF90AF909F908F90089580E090E008955F +:100BB00008959CE0799FF001112490E3899FE00D56 +:100BC000F11D1124E60FF11DEE0FFF1FEC5FFD4F2D +:100BD000859194910895880F991FFC01E45BFF4F64 +:100BE000859194910895880F991FFC01E453FE4F5D +:100BF0008591949108950F931F93CF93DF93EC0108 +:100C0000811521E39207A0F5C11580E3D80708F00C +:100C1000D7C0C83ED105D8F4C03ED10508F007C200 +:100C2000C83AD10578F4C53AD10508F06AC0C13098 +:100C3000D10509F463C008F4F7C1C430D10508F048 +:100C4000F6C1F2C1CB3BD10508F466C0EDC1C115B8 +:100C500090E2D90708F0AFC0C11521E0D20708F033 +:100C6000E6C1C03FD10508F4DFC18E0110651FC287 +:100C7000C03880E5D80700F5C03790E5D90708F0FF +:100C8000A3C0C11520E5D20709F4ACC050F4CE01D1 +:100C9000905480319F4008F0C7C1DF708E01106A08 +:100CA00006C2C13080E5D80709F4AEC0C43190E572 +:100CB000D90708F4AFC0B8C1C33820E5D20709F49A +:100CC0008EC050F4C13890E5D90709F482C008F00D +:100CD00083C000E011EDEBC1C03181E5D80708F415 +:100CE000A3C1C11597E5D90708F436C1CE019057C5 +:100CF0008115904108F098C1DF7093C101E010E0C8 +:100D0000D6C1C53AD10509F494C1C63AD10509F056 +:100D100093C102E810E4CBC1C83AD10509F48FC1F0 +:100D2000C93AD10509F48EC1CA3AD10509F48DC179 +:100D3000CB3AD10509F48CC1CC3AD10509F48BC169 +:100D4000CD3AD10509F48AC1C03BD10509F489C166 +:100D5000CE3AD10509F488C1CF3AD10509F487C14B +:100D6000C13BD10509F486C1C23BD10509F485C157 +:100D7000C33BD10509F484C1C43BD10509F483C147 +:100D8000C53BD10509F482C1C63BD10509F481C137 +:100D9000C73BD10509F480C1C83BD10509F47FC127 +:100DA000C93BD10509F47EC1CA3BD10509F47DC117 +:100DB00000E014E47CC1CE019F700E94F30578C16D +:100DC000DD278E01106C73C1CF70DD278E01146D8D +:100DD0006EC100E010ED6BC100E012ED68C100E0F3 +:100DE00013ED65C10E94C91B0E94070A0E94CB0334 +:100DF0008FEF94E32CE0815090402040E1F700C059 +:100E000000000E94202353C18091F20281608093F0 +:100E1000F2024DC10E948123811102C00E945D2314 +:100E20000E94942390E090931D0380931C03C23092 +:100E300080E5D80721F480911C03816086C0C4300E +:100E400090E5D90721F480911C0382607EC0C630F2 +:100E500020E5D20721F480911C03846076C0C8305D +:100E600080E5D80719F480911C0327C0CA3090E5AB +:100E7000D90721F480911C03806167C0CC3020E544 +:100E8000D20721F480911C0380625FC0CE3080E5E0 +:100E9000D80721F480911C03806457C0C03190E5CD +:100EA000D90721F480911C0380684FC0C23120E52E +:100EB000D20729F480911C038460886046C0C33047 +:100EC00080E5D80721F480911C038E7F3EC0C53099 +:100ED00090E5D90721F480911C038D7F36C0C7307F +:100EE00020E5D20721F480911C038B7F2EC0C930EE +:100EF00080E5D80719F480911C0326C0CB3090E51B +:100F0000D90721F480911C038F7E1FC0CD3020E5CE +:100F1000D20721F480911C038F7D17C0CF3080E56C +:100F2000D80721F480911C038F7B0FC0C13190E55D +:100F3000D90721F480911C038F7707C0C331D045B6 +:100F400031F480911C038B7F877F80931C038091F9 +:100F50001C030E949823ABC08D2F99278F7099276F +:100F600081309105D9F49E012370332702C0880F88 +:100F7000991F2A95E2F79C688E0144E0000F111F2B +:100F80004A95E1F700271370802B912B53E0CC0F8B +:100F9000DD1F5A95E1F7C076DD272FC0823091051D +:100FA00031F4DC2FCC278E01016F106A80C08330B2 +:100FB000910569F4CE018370992701E010E002C029 +:100FC000000F111F8A95E2F7C8019C680FC084309A +:100FD0009105B9F4CE018370992701E010E002C0B9 +:100FE000000F111F8A95E2F7C8019A6823E0CC0F21 +:100FF000DD1F2A95E1F7C07ED7708C010C2B1D2BCD +:1010000056C08530910531F4DC2FCC278E01046F5A +:10101000106A4DC0069709F04AC0CF71DD27DC2F5A +:10102000CC278E01106243C000E010E040C08E016A +:101030003EC001E810E43BC003E810E438C002EE13 +:1010400014E435C009EE14E432C00AEE14E42FC0F3 +:1010500005EB14E42CC006EB14E429C007EB14E400 +:1010600026C00CEC14E423C00DEC14E420C003E80B +:1010700015E41DC00AE815E41AC002E915E417C01A +:1010800004E915E414C001E216E411C003E216E419 +:101090000EC004E216E40BC005E216E408C006E246 +:1010A00016E405C007E216E402C00AE216E4C8012D +:1010B000DF91CF911F910F9108959CE0799FF001EE +:1010C000112490E3899FE00DF11D1124E60FF11D1D +:1010D000EE0FFF1FEC5FFD4F85919491803E9105CF +:1010E000E0F4803C910558F58133910509F46FC017 +:1010F00048F48932910509F463C08A32910509F4F4 +:101100006DC072C089339105E9F082389105D1F044 +:101110008533910509F44DC067C0833E910581F187 +:1011200038F4803E9105B9F0823E9105D9F05CC05B +:10113000863E910561F1873E9105A1F155C00E945F +:10114000EB05089520911C0320FD02C021FF4CC037 +:1011500080EE90E049C080911C0380FFF9CF89E3C5 +:1011600090E042C080911C0382FF0EC080911C035E +:1011700084FF03C080E090E037C083EE90E034C08D +:1011800080911C0382FFF2CF82EE90E02DC080910F +:101190001C0383FF0BC080911C0384FDEBCF87EE03 +:1011A00090E022C080911C0383FFF5CF86EE90E093 +:1011B0001BC080911C0385FF07C089E290E014C02A +:1011C00080911C0385FFF9CF85E390E00DC08091ED +:1011D0001C0386FF07C08AE290E006C080911C03D2 +:1011E00086FFF9CF81E390E00E94FB0508950C94FF +:1011F000CC02E82FF0E0E25BFE4F8081E82FEF7039 +:10120000F0E082958F7021E030E0A90102C0440F28 +:10121000551F8A95E2F740A308950F931F93CF932C +:10122000DF9385B7806885BF85B7806885BFC3E0D9 +:10123000D0E001E010E0FE01E25BFE4F8081E82F8C +:10124000EF70F0E021A182958F70A80102C0440FD9 +:10125000551F8A95E2F7CA01822B81A38C2F0E9429 +:10126000F908219740F78BE090E061E070E0FC0125 +:10127000EE5BFE4F2081E22FEF70F0E042A122955D +:101280002F70DB0102C0AA0FBB1F2A95E2F79D0158 +:10129000242B22A3019758F7DF91CF911F910F9133 +:1012A0000C947603EF92FF920F931F93CF93DF93EB +:1012B00000E212E0C3E0EE24E394F12CD5E08C2FA1 +:1012C0000E94F9088BE090E040E050E0FC01EE5B0A +:1012D000FE4F6081E62FEF70F0E020A130E06295D4 +:1012E0006F7002C0359527956A95E2F720FD09C019 +:1012F0009701082E02C0220F331F0A94E2F7422BF7 +:10130000532B019718F7F801929182918F0184175E +:10131000950721F051834083D09305018C2F0E94C3 +:10132000F908C15060F68091050187FD2CC08150FD +:10133000809305018F3F39F08FE99FE00197F1F726 +:1013400000C0000020C080911E0290911F02909367 +:1013500027028093260280911C0290911D02909397 +:1013600025028093240280911A0290911B0290938F +:101370002302809322028091180290911902909387 +:101380002102809320020E94780381E0DF91CF91B7 +:101390001F910F91FF90EF900895E82FF0E0EE0F6E +:1013A000FF1FE05EFD4F80819181089508950F93A6 +:1013B0001F93CF9308E212E0C0E0F801929182916E +:1013C0008F010E943D22C80FF2E000321F07A9F7EB +:1013D0008C2FCF911F910F9108950E94812381112D +:1013E00002C00E945D230E94A623809307033E9AB9 +:1013F000809171008D7F8093710082E080939000D6 +:101400008AE18093910081E080932A02089580917F +:101410002A02811102C00E94ED0910927A021092F4 +:101420007902809171008D7F80937100809190008E +:101430008F738093900010923C0210923B021092A6 +:10144000730210927402109275021092760210923A +:10145000720210927102E1E5F2E0A1E4B2E01192B1 +:101460001192119211921D921D9282E0E137F807BC +:10147000B1F70895CF92DF92EF92FF920F931F93EF +:10148000CF93DF9320913B02222309F484C06B01A8 +:101490007C0180912A02811102C00E94ED0901E7BE +:1014A00012E0C7E0D0E0A7019601F8019291829185 +:1014B000729162918F010E94F128811131C0FE0169 +:1014C000EE0FFF1FEE0FFF1FEF5AFD4F108211822C +:1014D00012821382DE01AA0FBB1FAF5BBD4F1196B4 +:1014E0001C921E92C730D105E9F0219644815581A6 +:1014F000668177814083518362837383148215826E +:101500001682178212968D919C91139711969C9337 +:101510008E9313961C921E92129734961296E2CFD7 +:10152000219708F68091790290917A02019797FDB0 +:1015300005C090937A028093790204C010927A02D7 +:10154000109279028091790290917A02209177022B +:10155000309178022817390724F0109278021092FF +:101560007702892BC1F4809171008D7F8093710087 +:10157000809190008F73809390001092730210926C +:1015800074021092750210927602109272021092FA +:10159000710210923B02DF91CF911F910F91FF904A +:1015A000EF90DF90CF9008951F920F920FB60F9299 +:1015B00011244F925F926F927F928F929F92AF927F +:1015C000BF92CF92DF92EF92FF922F933F934F9370 +:1015D0005F936F937F938F939F93AF93BF93CF93BB +:1015E000DF93EF93FF9380913B02882309F49BC123 +:1015F000C0917902D0917A021C161D060CF093C19D +:1016000040902B0250902C0260902D0270902E0280 +:1016100020E030E0A901C301B2010E949C2A181603 +:101620000CF065C0C130D10509F452C08091770239 +:1016300090917802BE010E946E2C7C0190937802FA +:101640008093770280903D0290903E02A0903F02EE +:10165000B090400220E030E040E85FE3C501B40113 +:101660000E948D2860933D0270933E0280933F025A +:1016700090934002F701EE0FFF1FEE0FFF1FEF5A8E +:10168000FD4FA301920160817181828193810E944B +:10169000F52820E030E040E05EE30E94A02A9B01B4 +:1016A000AC01C501B4010E949C2A18168CF4C70134 +:1016B0000196BE010E946E2C90937802809377026F +:1016C00010923D0210923E0210923F021092400290 +:1016D000E0917702F0917802EE0FFF1FEE0FFF1FEF +:1016E000EF5AFD4F6081718182819381D0C0C0909B +:1016F0007302D0907402E0907502F090760220E0C0 +:1017000030E0A901C701B6010E94F1282197882382 +:1017100009F4A2C0FE01EE0FFF1FEE0FFF1FEF5AEC +:10172000FD4F80809180A280B380A5019401C70104 +:10173000B6010E94F12887FF31C0A501940160E045 +:1017400070E08CED93EC0E94F52820E030E040E45E +:1017500051E40E94F52820E030E040E05FE30E9481 +:10176000A02A9B01AC0160E070E080E090E40E9460 +:10177000032B9B01AC01C501B4010E94A02A9B016F +:10178000AC01C701B6010E94F12887FF07C0A7017D +:10179000960160E070E08CED93E439C0A5019401FE +:1017A000C701B6010E949C2A18160CF055C0A5016D +:1017B000940160E070E08CED93E40E94F52820E055 +:1017C00030E040E451E40E94F52820E030E040E0C1 +:1017D0005FE30E94A02A9B01AC0160E070E080E022 +:1017E00090E40E94032B9B01AC01C501B4010E944F +:1017F000A02A9B01AC01C701B6010E949C2A1816C1 +:101800005CF5A701960160E070E08CED93EC0E941E +:10181000F52820E030E040E451E40E94F52820E083 +:1018200030E040E05FE30E94A02A9B01AC0160E051 +:1018300070E080E090E40E94032B9B01AC01C701A3 +:10184000B6010E94A02A6093730270937402809381 +:1018500075029093760213C0FE01EE0FFF1FEE0F8C +:10186000FF1FEF5AFD4F80819181A281B381809348 +:10187000730290937402A0937502B0937602609104 +:10188000730270917402809175029091760220919A +:101890002802309129022F3F4FEF340731F02F5F9C +:1018A0003F4F30932902209328020E947C0E6B0147 +:1018B0007C0120E034E244EF51E40E94F12887FFEC +:1018C00008C086EFC82E88E2D82E84EFE82E81E487 +:1018D000F82E20E030E040E051E4C701B6010E945C +:1018E000A02A9B01AC0160E074E284E79BE40E94C3 +:1018F000F5286B017C010E94622970939700609328 +:101900009600209106013091070140910801509105 +:101910000901C701B6010E94A02A0E9462297093A2 +:1019200099006093980080913C02882309F433C1A8 +:10193000C0903702D0903802E0903902F0903A021D +:1019400020E030E0A901C701B6010E949C2A1816C8 +:10195000D4F580912802909129028F3F2FEF9207B2 +:1019600029F001969093290280932802C701B601BD +:101970000E947C0E20E030E040E051E40E94A02A6A +:101980009B01AC0160E074E284E79BE40E94F528CF +:101990006B017C010E94622970939700609396000E +:1019A00020910601309107014091080150910901F1 +:1019B000C701B6010E94A02A0E9462297093990073 +:1019C0006093980008C010929700109296001092B1 +:1019D00099001092980060913102709132026F5F0D +:1019E0007F4F7093320260933102209196003091C4 +:1019F000970080E090E0232BF1F0C0919600D09109 +:101A000097000E948E296B017C01BE0180E090E06E +:101A10000E948E299B01AC016091330270913402C7 +:101A200080913502909136020E94F52820E03FEF28 +:101A30004FE757E410C00E948E296B017C0120E023 +:101A400030EE4FEF54E46091330270913402809194 +:101A50003502909136020E94A02A9B01AC01C70179 +:101A6000B6010E949C2A87FD96C080912F028F5F4D +:101A700080932F0290E0209103033091040382179A +:101A80009307A0F080910E03882319F010922F0283 +:101A90000DC0809171008D7F8093710080919000C6 +:101AA0008F738093900010923C027DC08091300231 +:101AB000C0912F02811128C0C0900803D090090363 +:101AC000E0900A03F0900B0320E030E0A901C70189 +:101AD000B6010E949C2A1816BCF481E08093300263 +:101AE00010923702109238021092390210923A0284 +:101AF000C0923302D0923402E0923502F092360264 +:101B0000C150C0932F0243C010923002109229029C +:101B100010922802E0910503F091060348E0C49F6B +:101B2000E00DF11D112480819181A281B381809308 +:101B3000370290933802A0933902B0933A0220E022 +:101B400030E040E85EE364817581868197810E9480 +:101B5000A02A6B017C0180910A01682F70E080E06F +:101B600090E00E948E2920E030E048EC52E40E9490 +:101B7000F5289B01AC01C701B6010E94A02A609321 +:101B800033027093340280933502909336021092A0 +:101B90003202109231028091070380FD04C010923E +:101BA0003C0210923B02FF91EF91DF91CF91BF91E8 +:101BB000AF919F918F917F916F915F914F913F91E5 +:101BC0002F91FF90EF90DF90CF90BF90AF909F90BC +:101BD0008F907F906F905F904F900F900FBE0F90FF +:101BE0001F901895CF92DF92EF92FF92CF93DF93E1 +:101BF0006B017C01EA0180912A02811102C00E94DE +:101C0000ED098091070380FF46C080917902909191 +:101C10007A0208970CF03FC0809171008D7F80930D +:101C2000710080913C0281110E94070A81E080933B +:101C30003B02109229021092280220E030E0A90114 +:101C4000C701B6010E949C2A1816DCF48091790223 +:101C500090917A02FC01EE0FFF1FEE0FFF1FEF5A6B +:101C6000FD4FC082D182E282F382FC01EE0FFF1FA2 +:101C7000EF5BFD4FD183C083019690937A028093EE +:101C80007902809171008260809371008091900050 +:101C9000806880939000DF91CF91FF90EF90DF906C +:101CA000CF90089580910703817008958091070374 +:101CB0008160809307030E94AA230C94D203809131 +:101CC00007038E7F809307030C94AA2380917B02E5 +:101CD00090E0019666E070E00E946E2C80937B029B +:101CE000089580917B0290E0019766E070E00E9489 +:101CF0006E2C80937B0208958F929F92AF92BF9239 +:101D0000CF92DF92EF92FF920F931F93CF93DF93C7 +:101D10006B017C01C0912802D0912902BE0180E0B4 +:101D200090E00E948E294B015C01A701960160E0C2 +:101D300070E08CE594E40E94F5289B01AC01C5019C +:101D4000B4010E94A02A0E94622920917B022330C4 +:101D500009F473C028F4222351F02130E9F02CC19A +:101D6000243009F4A0C0253009F4E0C025C180E08A +:101D700090E0A0E0BFE38093060190930701A09359 +:101D80000801B093090110922B0210922C021092BC +:101D90002D0210922E0210C110922B0210922C02D2 +:101DA00010922D0210922E026431710540F46A30B7 +:101DB000710560F520E030E040E85EE32BC0693C4F +:101DC000710508F0AAC080E090E00E948E2920E012 +:101DD00030E040EA51E40E948C2820E030E044E307 +:101DE00053E40E94F5289B01AC010E94A02A20E048 +:101DF00030E040E05EE30E94A02A9B01AC0160E07D +:101E000070E080E09EE30E948C2844C020E030E037 +:101E100040E05FE3C701B6010E94A02A6B017C018C +:101E200080E090E0A0E0BEE380930601909307017C +:101E3000A0930801B0930901BFC010922B02109229 +:101E40002C0210922D0210922E024AE0469F900121 +:101E5000479F300D1124C90168EB7BE00E945A2C8A +:101E6000BC016C5D754077FF03C071956195710988 +:101E7000882777FD8095982F0E9490292EE333ECD8 +:101E80004EE259E30E94A02A20E030E040EC5EE3FD +:101E90000E948D28609306017093070180930801CA +:101EA0009093090189C010922B0210922C0210927B +:101EB0002D0210922E02CE0183709927892BE1F01A +:101EC000BE016170772780E090E00E948E2920E0BB +:101ED00030E040E05EE30E94A02A20E030E040E4F1 +:101EE0005FE30E948D286093060170930701809341 +:101EF0000801909309010CC080E090E0A0E0BFE3EE +:101F00008093060190930701A0930801B093090103 +:101F1000C770DD27CD2B09F04FC01092060110923B +:101F20000701109208011092090146C010922B027D +:101F300010922C0210922D0210922E0200E010E05E +:101F400020E03FE30093060110930701209308016E +:101F5000309309016739710578F180E090E00E94C3 +:101F60008E2920E030E047E153E40E948C2820E0F5 +:101F700030E04AE754E40E94F52820E030E048E4ED +:101F800052E40E94A02A20E030E040EA51E40E949E +:101F9000D2290E945D29660F771F660F771FFB010C +:101FA000EE5AFE4F2081318142815381C701B60133 +:101FB0000E94A02A6B017C01C701B601DF91CF917D +:101FC0001F910F91FF90EF90DF90CF90BF90AF9057 +:101FD0009F908F90089580918C020895CF93DF9306 +:101FE00000D01F92CDB7DEB79C01809113038430DF +:101FF00019F593E099833B832A839093E9008FEF4F +:102000009091E800815095FD06C095ED9A95F1F705 +:1020100000008111F5CF8091E80085FF0DC040E000 +:1020200050E063E070E0CE0101960E944F12809173 +:10203000E8008E778093E8000F900F900F90DF916B +:10204000CF910895CF93DF9300D01F92CDB7DEB725 +:1020500020911303243021F522E029839B838A8376 +:1020600083E08093E9008FEF9091E800815095FD27 +:1020700006C095ED9A95F1F700008111F5CF80919A +:10208000E80085FF0DC040E050E063E070E0CE0165 +:1020900001960E944F128091E8008E778093E800AD +:1020A0000F900F900F90DF91CF910895209113031F +:1020B0002430F1F422E02093E9002FEF3091E80082 +:1020C000215035FD06C035ED3A95F1F7000021119C +:1020D000F5CF2091E80025FF0BC040E050E065E01F +:1020E00070E00E944F128091E8008E778093E800A4 +:1020F0000895CF93DF93EC0190911303943009F08E +:1021000046C0809115018823D9F08091160188235B +:10211000B9F09093E9008FEF9091E800815095FD20 +:1021200006C095E19A95F1F700008111F5CF8091F5 +:10213000E80085FF2CC040E050E060E170E017C08F +:1021400081E08093E9008FEF9091E800815095FD48 +:1021500006C095ED9A95F1F700008111F5CF8091B9 +:10216000E80085FF14C040E050E068E070E0CE0178 +:102170000E944F128091E8008E778093E80080E102 +:10218000FE01ACE7B2E001900D928A95E1F7DF9194 +:10219000CF91089580911203811109C00E94E41328 +:1021A0000E9441148091E20084608093E2000895CF +:1021B000109212030895089508950C94882242E025 +:1021C00061EC81E00E945E1342E061EC82E00E94DB +:1021D0005E1342E061EC83E00E945E1342E161EC39 +:1021E00084E00C945E1380911503833009F455C08C +:1021F00030F4813071F0823009F48EC008958A3055 +:1022000009F47AC08B3009F460C0893009F09CC0B1 +:1022100020C080911403813A09F096C08091E800B3 +:10222000877F8093E8008091180390911903892B90 +:1022300021F460E18CE792E003C060E080E090E090 +:1022400070E00E949A128091E8008B778093E800FA +:10225000089580911403813209F076C080911803AB +:1022600090911903009719F0039709F06DC08091C0 +:10227000E800877F8093E8008091E80082FD05C038 +:10228000809113038111F8CF5FC08091F10080939A +:102290008C028091E8008B7753C080911403813ABF +:1022A00009F052C08091180390911903892B09F00D +:1022B0004BC08091E800877F8093E8008091E80020 +:1022C00080FFFCCF8091150136C0809114038132CC +:1022D000D9F58091180390911903892BA9F5809164 +:1022E000E800877F8093E8000E9493138091160393 +:1022F000809315010C94C91B80911403813221F540 +:102300008091E800877F8093E8000E94931380917A +:10231000170380938D02089580911403813AA1F4EC +:102320008091E800877F8093E8008091E80080FF3B +:10233000FCCF80918D028093F1008091E8008E7730 +:102340008093E8000C949313089584B7877F84BF2B +:1023500088E10FB6F89480936000109260000FBE81 +:1023600090E080E80FB6F89480936100909361004C +:102370000FBE0E9436170E94E4130E944114809100 +:10238000E20084608093E20078940E94C7160E9465 +:1023900038178BE091E00E94E2168091130385309C +:1023A00069F40E944922809111038823B1F30E94AD +:1023B0007722882391F30E943912EFCF0E944017B1 +:1023C000ECCF292F332723303105C9F064F42130B5 +:1023D000310581F02230310509F043C08DE690E0EF +:1023E00020E833E042C021323105F1F022323105DC +:1023F00041F137C082E190E02DEE33E036C09927FD +:102400008130910541F08230910541F0892B49F5E9 +:10241000ECE7F3E005C0EEE4F3E002C0E4E2F3E051 +:10242000849190E09F0121C06430D8F4E62FF0E061 +:10243000EE0FFF1FE255FE4F2081318189E090E0D1 +:1024400014C0643070F470E0FB01EE0FFF1FEA551A +:10245000FE4F20813181FB01EE55FE4F808190E0DF +:1024600004C080E090E020E030E0FA013183208376 +:10247000089580E189BD82E189BD09B400FEFDCFE8 +:102480008091D8008F7D8093D8008091E000826099 +:102490008093E0008091E00081FDFCCF0895CF9211 +:1024A000DF92EF92FF920F931F93CF93DF93EC0194 +:1024B0008B016A010E94B213811133C0C114D1048F +:1024C00039F0F60180819181081B190BC80FD91FC3 +:1024D000E12CF12C0115110519F18091E80085FD21 +:1024E00016C08091E8008E778093E800C114D10473 +:1024F00049F0F60180819181E80EF91EF182E082B7 +:1025000085E00FC00E94B213882321F30AC089918D +:102510008093F10001501109FFEFEF1AFF0ADACFA3 +:1025200080E0DF91CF911F910F91FF90EF90DF90AE +:10253000CF90089520911A0330911B032617370777 +:1025400048F06115710539F42091E8002E77209349 +:10255000E80001C0B90140E061157105A9F12091C1 +:102560001303222309F443C0253009F442C020910B +:10257000E80023FD40C02091E80022FD32C02091F8 +:10258000E80020FFE9CF4091F3002091F20030E015 +:10259000342BFC01CF016115710559F0283031054C +:1025A00040F481918093F100615071092F5F3F4F9A +:1025B000F1CF41E02830310509F040E02091E800FA +:1025C0002E772093E800C8CF4111C9CF0AC080916F +:1025D0001303882361F0853061F08091E80083FD6A +:1025E0000AC08091E80082FFF2CF80E0089582E087 +:1025F000089583E0089581E0089520911A033091B1 +:102600001B032617370748F06115710539F420912F +:10261000E8002E772093E80001C0B901FC0120E01A +:102620006115710591F180911303882309F440C06D +:10263000853009F43FC08091E80083FD3DC0809162 +:10264000E80082FD2FC08091E80080FFE9CF209153 +:10265000F3008091F20090E0922B6115710559F022 +:102660008830910540F424912093F1003196615017 +:1026700071090196F2CF21E0089709F020E08091DE +:10268000E8008E778093E800CBCF2111CCCF0AC031 +:1026900080911303882361F0853061F08091E80018 +:1026A00083FD0AC08091E80082FFF2CF80E00895A8 +:1026B00082E0089583E0089581E00895982F97308F +:1026C00058F59093E900981739F07091EC0020913B +:1026D000ED005091F00003C0242F762F50E021FF31 +:1026E00019C03091EB003E7F3093EB003091ED004C +:1026F0003D7F3093ED003091EB0031603093EB0083 +:102700007093EC002093ED005093F0002091EE00C8 +:1027100027FF07C09F5FD3CF8F708093E90081E0D0 +:10272000089580E008958091140387FF11C080917F +:10273000E80082FD05C0809113038111F8CF11C01C +:102740008091E8008B770BC080911303882349F0B8 +:102750008091E80080FFF8CF8091E8008E77809329 +:10276000E80008952091E4003091E50095E640915D +:10277000EC00842F817040FF22C08091E80080FD32 +:102780001CC080911303882391F0853091F08091D3 +:10279000EB0085FD10C04091E4005091E500421728 +:1027A000530729F39A01915011F784E0089582E0CC +:1027B000089583E0089581E0089580E008954091B0 +:1027C000E80042FFDECF08950E9452140E945A147E +:1027D000E0EEF0E0808181608083E8EDF0E08081D0 +:1027E0008F77808319BCA7EDB0E08C918E7F8C939E +:1027F00080818F7E80831092120308950F931F9320 +:10280000CF93DF930E9452140E945A14C8EDD0E077 +:1028100088818F77888388818068888388818F7D8D +:10282000888319BC1092130310920F0310921103A6 +:102830001092100300EE10E0F80180818B7F8083FE +:1028400088818160888342E060E080E00E945E13BE +:10285000E1EEF0E080818E7F8083E2EEF0E0808127 +:1028600081608083808188608083F80180818E7F91 +:102870008083888180618883DF91CF911F910F9140 +:102880000895E8EDF0E080818F7E8083E7EDF0E051 +:1028900080818160808384E082BF81E08093120325 +:1028A0000C94FE13E8EDF0E080818E7F808310921F +:1028B000E20008951092DA001092E10008951F924C +:1028C0000F920FB60F9211242F933F934F935F9364 +:1028D0006F937F938F939F93AF93BF93EF93FF93E8 +:1028E0008091E10082FF0BC08091E20082FF07C06F +:1028F0008091E1008B7F8093E1000E94C616809159 +:10290000DA0080FF1FC08091D80080FF1BC080913B +:10291000DA008E7F8093DA008091D90080FF0DC0AD +:1029200080E189BD82E189BD09B400FEFDCF81E06F +:10293000809313030E94CA1005C019BC10921303A0 +:102940000E94D8108091E10080FF19C08091E200C0 +:1029500080FF15C08091E2008E7F8093E20080911D +:10296000E20080618093E2008091D80080628093D1 +:10297000D80019BC85E0809313030E94DC1080917D +:10298000E10084FF30C08091E20084FF2CC080E130 +:1029900089BD82E189BD09B400FEFDCF8091D800D8 +:1029A0008F7D8093D8008091E1008F7E8093E1003D +:1029B0008091E2008F7E8093E2008091E20081604E +:1029C0008093E20080910F03882311F084E007C018 +:1029D0008091E30087FD02C081E001C083E0809325 +:1029E00013030E94DD108091E10083FF29C08091D4 +:1029F000E20083FF25C08091E100877F8093E100A2 +:102A000082E08093130310920F038091E1008E7F88 +:102A10008093E1008091E2008E7F8093E2008091BC +:102A2000E20080618093E20042E060E080E00E948A +:102A30005E138091F00088608093F0000E94DB10AC +:102A4000FF91EF91BF91AF919F918F917F916F9186 +:102A50005F914F913F912F910F900FBE0F901F905C +:102A600018951F920F920FB60F9211242F933F9338 +:102A70004F935F936F937F938F939F93AF93BF9386 +:102A8000CF93DF93EF93FF93C091E900CF708091D4 +:102A9000EC00D82FD17080FDD0E81092E900809131 +:102AA000F000877F8093F00078940E947515109253 +:102AB000E9008091F00088608093F000CD2BCF700A +:102AC000C093E900FF91EF91DF91CF91BF91AF915A +:102AD0009F918F917F916F915F914F913F912F9136 +:102AE0000F900FBE0F901F9018951F93CF93DF93F9 +:102AF000CDB7DEB7AA970FB6F894DEBF0FBECDBF35 +:102B0000E4E1F3E088E08E0F9091F10091938E1351 +:102B1000FBCF0E94F3108091E80083FF1FC18091DA +:102B2000140390911503492F50E04A30510508F0E5 +:102B300015C1FA01EA5AFF4F0C94822C803881F0BB +:102B4000823809F00BC1809118038F708093E900DF +:102B50008091EB0085FB882780F91092E90006C080 +:102B60008091100390911103911182609091E8007F +:102B7000977F9093E8008093F1001092F100C8C015 +:102B8000282F2D7F09F0EAC0882319F0823061F0E8 +:102B9000E5C080911603813009F0E0C0933009F060 +:102BA00080E0809311032BC080911603811127C010 +:102BB000809118038F7009F4D1C08093E9002091AF +:102BC000EB0020FF1CC0933021F48091EB00806269 +:102BD00014C09091EB0090619093EB0021E030E005 +:102BE000A90102C0440F551F8A95E2F74093EA00FD +:102BF0001092EA008091EB0088608093EB001092C5 +:102C0000E9008091E800877F86C08111A7C01091FC +:102C100016031F778091E3008078812B8093E30077 +:102C20008091E800877F8093E8000E949313809151 +:102C3000E80080FFFCCF8091E30080688093E30090 +:102C4000111102C082E001C083E08093130386C0AB +:102C50008058823008F082C080911603909117034B +:102C60008C3D53E0950779F583E08A838AE2898376 +:102C70004FB7F894DE01139620E03EE051E2E32FD7 +:102C8000F0E050935700E49120FF03C0E295EF700D +:102C90003F5FEF708E2F90E0EA3010F0C79601C0D2 +:102CA000C0968D939D932F5F243149F74FBF80913C +:102CB000E800877F8093E8006AE270E0CE01019629 +:102CC0000E949A1214C0AE014F5F5F4F60911803CB +:102CD0000E94E111BC01009709F440C09091E80006 +:102CE000977F9093E80089819A810E94FD128091DC +:102CF000E8008B778093E80031C0803879F58091C7 +:102D0000E800877F8093E80080910F038093F100B3 +:102D10008091E8008E778093E8000E9493131EC094 +:102D200081111CC0909116039230C0F48091E8008C +:102D3000877F8093E80090930F030E949313809104 +:102D40000F03811106C08091E30087FD02C081E07E +:102D500001C084E0809313030E94DF108091E8009B +:102D600083FF0AC08091E800877F8093E80080910C +:102D7000EB0080628093EB00AA960FB6F894DEBF5A +:102D80000FBECDBFDF91CF911F9108950895CF93CE +:102D9000809113038823A1F0C091E900CF70909136 +:102DA000EC00892F817090FD80E8C82B1092E9001B +:102DB0008091E80083FD0E947515CF70C093E900F3 +:102DC000CF91089590939302809392020895E09199 +:102DD0009202F0919302309721F00190F081E02D62 +:102DE000099480E00895E0919202F0919302309767 +:102DF00021F00280F381E02D09940895E091920280 +:102E0000F0919302309721F00480F581E02D099430 +:102E1000089520919002309191028217930771F0EA +:102E20009093910280939002E0919202F09193022C +:102E3000309721F00680F781E02D099408952091C4 +:102E40008E0230918F028217930771F090938F0258 +:102E500080938E02E0919202F0919302309721F0DC +:102E60000084F185E02D0994089508950C94351798 +:102E70000E94BC220E940D090E9442230C94F1275B +:102E80005F926F927F928F929F92AF92BF92CF92FA +:102E9000DF92EF92FF920F931F93CF93DF9300D0B7 +:102EA00000D01F92CDB7DEB70E9452099DE9C92E0E +:102EB00092E0D92E03E010E0AA24A394B12C502E66 +:102EC000802F0E94CD094C01F601729062906F0133 +:102ED0006826792661147104A1F40150110978F76C +:102EE0008FEF89838A831B820E94C5228160782F9D +:102EF0009D838C8349815A816B818D810E94F0175B +:102F000038C08091F20281FD0E94D6092BE030E0AA +:102F10007501022E02C0EE0CFF1C0A94E2F7C701F5 +:102F200086219721892B09F129835A828E209F209F +:102F300091E0892809F490E09B830E94C52281607A +:102F4000782F9D838C8349815A816B818D810E946A +:102F5000F017000F111FF801EB56FD4F8081918192 +:102F6000E826F926F182E08204C02150310980F67A +:102F7000B4CF0E942925109194020E94E7161817D9 +:102F8000D1F00E94E716809394020F900F900F905B +:102F90000F900F90DF91CF911F910F91FF90EF90C5 +:102FA000DF90CF90BF90AF909F908F907F906F9069 +:102FB0005F900C94F7080F900F900F900F900F9068 +:102FC000DF91CF911F910F91FF90EF90DF90CF9005 +:102FD000BF90AF909F908F907F906F905F9008957B +:102FE000CF93DF93CDB7DEB72B970FB6F894DEBF44 +:102FF0000FBECDBF4F83588769877A878B87DE01E5 +:10300000119686E0FD0111928A95E9F785E0FE01AF +:10301000379601900D928A95E1F749815A816B812B +:103020007C818D819E810E94671E2B960FB6F8943D +:10303000DEBF0FBECDBFDF91CF910895CF93882320 +:1030400009F4C2C0C82F823859F40E94E71681FDE6 +:10305000BBC089E30E9441210E940E2289E30CC07B +:10306000833879F40E94E71680FDAEC083E50E94A4 +:1030700041210E940E2283E50E948321CF910C946E +:103080000E22843859F40E94E71682FD9DC087E421 +:103090000E9441210E940E2287E4EECF8CEF8C0F1C +:1030A000813A48F48C2F0E94592781118DC08C2FB2 +:1030B0000E944121E3CF80E28C0F883048F4C77032 +:1030C00081E001C0880FCA95EAF70E94C721D6CFD8 +:1030D0008BE58C0F833078F4C53A29F0C63A31F08D +:1030E00083E890E005C081E890E002C082E890E0CB +:1030F000CF910C94091788E58C0F833108F064C0D8 +:10310000C83A39F1C93A41F1CA3A49F1CB3A51F1D9 +:10311000CC3A59F1CD3A61F1C03B69F1CE3A71F147 +:10312000CF3A79F1C13B81F1C23B89F1C33B91F1C7 +:10313000C43B99F1C53BA1F1C63BA9F1C73BB1F135 +:10314000C83BB9F1C93BC1F1CA3BC9F180E090E08D +:1031500038C082EE90E035C089EE90E032C08AEE51 +:1031600090E02FC085EB90E02CC086EB90E029C06A +:1031700087EB90E026C08CEC90E023C08DEC90E0D3 +:1031800020C083E891E01DC08AE891E01AC082E97E +:1031900091E017C084E991E014C081E292E011C08F +:1031A00083E292E00EC084E292E00BC085E292E0FE +:1031B00008C086E292E005C087E292E002C08AE29F +:1031C00092E0CF910C941F17CF910895882309F4B2 +:1031D0004BC0823859F40E94E71681FF45C089E34D +:1031E0000E9441210E940E2289E30CC0833871F4B1 +:1031F0000E94E71680FF38C083E50E9441210E94AB +:103200000E2283E50E9483210C940E22843859F407 +:103210000E94E71682FF28C087E40E9441210E9495 +:103220000E2287E4EFCF9CEF980F913A58F390E28B +:10323000980F983050F4877091E001C0990F8A95EB +:10324000EAF7892F0E94CD21DFCF9BE5980F9330BD +:1032500020F480E090E00C940917885A833120F420 +:1032600080E090E00C941F170895882321F00E94BD +:10327000C7210C940E220895882321F00E94CD21AD +:103280000C940E2208957F928F929F92AF92BF92DC +:10329000CF92DF92EF92FF920F931F93CF93DF9322 +:1032A0001F92CDB7DEB77C01C62E772EFC010581BB +:1032B00002950F70128111110E94E4210E943A219F +:1032C000882379F0112369F080E28C0D883048F072 +:1032D00082E00E9423210E943A2191E0D82ED92633 +:1032E00001C0D12CE72DE295EF70F0E0E05AFF4FDE +:1032F0000C94822C872D807F072D0F70882311F06E +:103300000295007F112389F0002309F499C180E21E +:103310008C0D883020F4802F0E94C72103C0802F9D +:103320000E94D7210E940E228BC18C2D0E94E6188C +:10333000002309F4C3C180E28C0D883020F4802F73 +:103340000E94CD2103C0802F0E94DD210E940E2209 +:10335000B5C1872D807F972D9F70803211F4892F02 +:1033600003C0892F8295807FCC2021F0F1E0CF1619 +:10337000A1F01DC0112339F0002319F1013009F526 +:103380000E94F7219BC1002319F0013009F496C176 +:1033900089830E94FA21898110C1112321F006300E +:1033A00008F08CC10EC0053008F088C106C1112399 +:1033B00059F0002331F0F701958190FF41C19F70D2 +:1033C00095830E9435197AC1002309F4F6C03EC1E5 +:1033D000872D86958695837090E0009719F0019768 +:1033E00061F06CC1112321F08C2D972D937002C0D8 +:1033F00080E090E00E94091761C1112321F08C2D1B +:10340000972D937002C080E090E00E941F1756C174 +:103410008C2D112319F00E94312402C00E9499249E +:103420000E941E254BC1872D837009F052C01111D7 +:1034300045C18C2D829586958770880F880F9C2DAD +:103440009F70892E912CA12CB12C082E04C0880CC1 +:10345000991CAA1CBB1C0A94D2F7C4FE14C00FE02E +:1034600010E020E030E0B901A80104C0440F551F6E +:10347000661F771F8A95D2F7CB01BA0160957095C8 +:103480008095909503C060E070E0CB01272D2695D4 +:103490002695237030E02230310569F02330310564 +:1034A00089F0682979298A299B292130310571F011 +:1034B0000E94AF1F03C1682979298A299B290E948C +:1034C000CB1FFCC00E94AF1FC501B4010E94931F17 +:1034D000F5C0112319F0872D817001C086958823CE +:1034E00009F4ECC08C2D829586958770880F880F23 +:1034F0009C2D9F70892E912CA12CB12C082E04C0DC +:10350000880C991CAA1CBB1C0A94D2F7C4FE14C0D8 +:103510000FE010E020E030E0B901A80104C0440F42 +:10352000551F661F771F8A95D2F7CB01BA016095A8 +:1035300070958095909503C060E070E0CB01272DD9 +:10354000269526952370422F50E04230510569F0B0 +:103550004330510589F0682979298A299B2941300E +:10356000510571F00E948920A9C0682979298A290A +:103570009B290E94A520A2C00E948920C501B401F8 +:103580000E946D209BC08C2D90E0FC01E05EF10953 +:10359000E531F10508F050C0E059FF4F0C94822C42 +:1035A0000C2D0F70872D8F71112321F00E940620A2 +:1035B000802F07CF0E942720802F0E943C197EC0B9 +:1035C000112341F0053008F079C0872D8F710E94DA +:1035D0004C2074C0063008F071C0F7CF112339F0C9 +:1035E000872D8F710E94062069C01123C9F3872D92 +:1035F0008F710E94272062C0112329F0872D8F71BF +:103600000E94F11F5BC00E94E71F58C0112351F0B8 +:10361000172D1F71812F0E94062063E0812F0E94C9 +:103620001A214CC081E00E942321023008F446C0D8 +:1036300082E00E94232142C0112331F0002381F255 +:103640008C2D0E941E183AC0002389F28C2D0E94F6 +:10365000E61834C0472D4F706C2DC7010E94D50568 +:103660000E940B1F2BC0111129C0472D4F7050E035 +:1036700042305105B9F04CF44115510581F041300B +:103680005105E1F40E94192819C04330510569F031 +:103690004430510599F48C2D0E946B280FC00E9474 +:1036A00002280CC00E94352809C00E94482806C084 +:1036B000472D4F706C2DC7010E94D805DD20F9F011 +:1036C0000E94162180FD1BC0F70112820E9410216A +:1036D0000E940620C7010E948E1B0E9410210F909D +:1036E000DF91CF911F910F91FF90EF90DF90CF90DE +:1036F000BF90AF909F908F907F900C9427200F9059 +:10370000DF91CF911F910F91FF90EF90DF90CF90BD +:10371000BF90AF909F908F907F9008950F931F93CD +:10372000CF93DF93EC01888199812B813C81232BFE +:10373000B9F09F3F11F48F3F99F0CE010E94D4035E +:10374000882371F0688179818A810E940C218C0123 +:103750000E94C1200E94881FB801CE010E94431917 +:10376000DF91CF911F910F9108950E94E4210E9453 +:10377000F4210E94B9210E940E220E94CF250E94AE +:103780001E2580E090E00E94091780E090E00C94F4 +:103790001F170E94D4210C94B51B0E940121292FD0 +:1037A00022952F7030E02C3031054CF42A30310551 +:1037B0006CF42250310922303105A8F407C02C30B6 +:1037C000310569F02F30310551F00DC0803F69F0AF +:1037D00018F4803E40F409C0843F29F406C093FBEE +:1037E000882780F9089580E0089581E00895CF93B7 +:1037F000DF9300D000D01F92CDB7DEB70F900F90AF +:103800000F900F900F90DF91CF910895CF93DF939A +:1038100000D000D000D0CDB7DEB726960FB6F89412 +:10382000DEBF0FBECDBFDF91CF9108951F93CF9321 +:10383000DF93C0919D0216E080919E02C81799F017 +:10384000D0E01C9FF0011D9FF00D1124E156FD4FAB +:103850004081518162817381848195810E94061C1F +:103860002196C770E9CFDF91CF911F9108954091C4 +:10387000CF025091D0026091D1027091D20280911A +:10388000D3029091D4020C94061C8091D4028295AC +:103890008F7009F054C08091D102882309F44FC081 +:1038A00080919D02A0919E026091CF027091D00202 +:1038B0004091D2025091D302B6E08A1709F43FC07A +:1038C00090E041155105C1F17F3F11F46F3FA1F127 +:1038D000B89FF001B99FF00D1124E156FD4F2181F1 +:1038E00072132AC02081621327C02281211124C0B3 +:1038F000238134812417350710F421503109241B0A +:10390000350B283C3105C0F42091D4022F70206182 +:103910002093D40226E0289FF001299FF00D112466 +:10392000EC55FD4F80818F70806180838FEC92E039 +:103930000E948E1B0C94161C01968770BECF0895B2 +:10394000CF92DF92EF92FF920F931F93CF93DF936B +:10395000CDB7DEB762970FB6F894DEBF0FBECDBF0E +:103960008C0185E0F801DE011D9601900D928A958B +:10397000E1F7D8014C9111965C91119712966C91D8 +:1039800012971396CD90DC9014973091CF027091DE +:10399000D0028091D2029091D302009709F46BC1BA +:1039A0007F3F19F43F3F09F466C1E090D102EE2059 +:1039B00009F4C0C02091D402C816D90628F0F60137 +:1039C000E81BF90BCF0104C0809590958C0D9D1DCF +:1039D000FF24F394883C910578F0F12C207F09F0C6 +:1039E000C6C07C2DD98AC88A89890E94F71B8FECB2 +:1039F00092E00E948E1BB1C0822F807F09F046C0EA +:103A0000751314C0341312C0611110C02F702061DF +:103A10002093D4020E94371C8FEC92E00E948E1BF0 +:103A20008091D402D80115968C932EC0CD2819F11F +:103A30005F3F11F44F3FF9F0F62E61111CC08091E9 +:103A40009D0220919E0236E0821709F45AC090E050 +:103A5000389FF001399FF00D1124E156FD4F71811F +:103A6000571306C07081471303C07281711103C0E0 +:103A700001968770E9CFF62E662309F418C180916C +:103A8000D40281608093D402F12C11C1751308C057 +:103A9000341306C0611104C08091D402D801C3C0A0 +:103AA0004D875E878D859E856A8B0E94CD1B6A89B6 +:103AB0008823E1F16623D1F12091D402822F8295EF +:103AC0008F7090E0029774F08091CF029091D002B5 +:103AD00098878F831986DB86CA862C87CE01079646 +:103AE0000E948E1B86E0F801AFECB2E001900D92CF +:103AF0008A95E1F70E94451C0E94371CFF24F3942D +:103B0000D6C04D875E878D859E850E940121292F15 +:103B100022952F7030E0223031050CF0BCC09F7030 +:103B200009F0B6C0805E883008F4C1C0C8010E94A8 +:103B30008E1BE4CFC816D90608F453C0F601E81B63 +:103B4000F90BCF01883C910508F450C0F12C7C2D75 +:103B5000D98AC88A89890E94F71BEFECF2E086E0D7 +:103B6000DF011D928A95E9F70E94371CA0C07513EA +:103B700014C0341312C0611110C08091D402F80136 +:103B80008583C8010E948E1B86E0EFECF2E0DF0126 +:103B90001D928A95E9F7FE2C8AC04D875E878D8538 +:103BA0009E856A8B0E94CD1B6A89882309F4BECF4B +:103BB000662309F4BBCF2091D402822F82958F70A7 +:103BC00090E002970CF48ECF8091CF029091D002BA +:103BD0009A8389831B82DD82CC822E83CE0101965B +:103BE0007FCF809590958C0D9D1DACCFF62E6623D2 +:103BF00009F49CCF75132EC034132CC02091D4022D +:103C000020FD1FC0822F82958F70D9F0D8011596A4 +:103C10002C9315978F3049F08F5F982F9295907F56 +:103C2000822F8F70892B15968C93C8010E948E1B52 +:103C300086E0F801AFECB2E001900D928A95E1F7D1 +:103C400093CF86E0F801AFECB2E001900D928A9537 +:103C5000E1F72DC04D875E878D859E850E94CD1B27 +:103C6000811140CF8091D40281608093D402C80139 +:103C70000E948E1B1CC0662309F458CF4D875E87B7 +:103C80008D859E850E94CD1B882309F44FCF2ACFB6 +:103C9000811148CF0CC0243031050CF047CF9F7004 +:103CA00009F440CFF8019581907F09F03BCF8F2D2B +:103CB00062960FB6F894DEBF0FBECDBFDF91CF91F5 +:103CC0001F910F91FF90EF90DF90CF9008951F9379 +:103CD000CF93DF93CDB7DEB72C970FB6F894DEBF46 +:103CE0000FBECDBF4F83588769877A878B879C87A4 +:103CF000CE0107960E94A01C882369F08F819885C9 +:103D00002A853B85232BF1F19F3F09F063C08F3F4C +:103D100009F060C037C086E0FE013796DE011196DB +:103D200001900D928A95E1F76F817885EA85FB8590 +:103D3000309741F17F3F11F46F3F21F120919E02B6 +:103D400030E0C90101968770992740919D0250E0AB +:103D50008417950709F447C069837A83FD83EC8350 +:103D600096E0929FD001939FB00D1124A156BD4FB4 +:103D7000FE01319601900D929A95E1F780939E0293 +:103D80000E94161C16E080919D0290919E02891758 +:103D9000C1F1189FC001112481569D4F0E94A01CA3 +:103DA000882379F1E0919D021E9FF0011124E156D4 +:103DB000FD4F4081518162817381848195810E9490 +:103DC000061C80919D0290E0019687709927809350 +:103DD0009D02D9CF4F81588569857A858B859C85D1 +:103DE0000E94061CCFCF0E94C91B10929E02109207 +:103DF0009D02EFECF2E086E0DF011D928A95E9F783 +:103E0000C1CF2C960FB6F894DEBF0FBECDBFDF91A9 +:103E1000CF911F910895EF92FF920F931F93CF932D +:103E2000DF938C01009709F46CC0F12CEE24E3942D +:103E3000E8012196F8018491843740F4843008F039 +:103E400051C0813081F0823019F15BC0853709F4AF +:103E500044C0A8F19CE7980F903708F052C08F77C4 +:103E60000E94E61841C00E5F1F4FFE01C49180E220 +:103E70008C0F883048F4C7708E2D01C0880FCA950A +:103E8000EAF70E94E72114C08C2F0E941E182DC053 +:103E90000E5F1F4FFE01C49180E28C0F883058F4F2 +:103EA000C7708E2D01C0880FCA95EAF70E94ED21D8 +:103EB0000E940E221AC08C2F0E94E61816C00E5FB8 +:103EC0001F4FFE01C491CC2381F08FE99FE0019741 +:103ED000F1F700C00000C150F6CF0E5F1F4FFE018A +:103EE000F49003C00E941E188E018F2D882309F4C0 +:103EF0009FCFEFE9FFE03197F1F700C0000081505C +:103F0000F5CFDF91CF911F910F91FF90EF90089522 +:103F100008956093D9027093DA028093DB02909344 +:103F2000DC020C94B51B0F931F930091D9021091E2 +:103F3000DA022091DB023091DC02DC01CB01802B24 +:103F4000912BA22BB32B8093D9029093DA02A093EA +:103F5000DB02B093DC021F910F910C94B51B0F9301 +:103F60001F930091D9021091DA022091DB02309167 +:103F7000DC02DC01CB0180239123A223B3238093B5 +:103F8000D9029093DA02A093DB02B093DC021F9176 +:103F90000F910C94B51B0F931F930091D9021091B0 +:103FA000DA022091DB023091DC02DC01CB018027B8 +:103FB0009127A227B3278093D9029093DA02A09386 +:103FC000DB02B093DC021F910F910C94B51B109291 +:103FD000D5021092D6021092D7021092D8020C94F9 +:103FE000B51B41E050E060E070E004C0440F551F95 +:103FF000661F771F8A95D2F74093D5025093D60259 +:104000006093D7027093D8020C94B51B41E050E046 +:1040100060E070E004C0440F551F661F771F8A954B +:10402000D2F78091D5029091D602A091D702B0919B +:10403000D802482B592B6A2B7B2B4093D5025093E7 +:10404000D6026093D7027093D8020C94B51B41E05E +:1040500050E060E070E004C0440F551F661F771FFA +:104060008A95D2F740955095609570958091D502CC +:104070009091D602A091D702B091D802482359233B +:104080006A237B234093D5025093D6026093D702D4 +:104090007093D8020C94B51B41E050E060E070E0F2 +:1040A00004C0440F551F661F771F8A95D2F7809171 +:1040B000D5029091D602A091D702B091D80248279C +:1040C00059276A277B274093D5025093D6026093E5 +:1040D000D7027093D8020C94B51B0F931F930091D5 +:1040E000D5021091D6022091D7023091D802DC017E +:1040F000CB01802B912BA22BB32B8093D5029093D5 +:10410000D602A093D702B093D8021F910F910C94BE +:10411000B51B0F931F930091D5021091D6022091E9 +:10412000D7023091D802DC01CB0180239123A22356 +:10413000B3238093D5029093D602A093D702B09375 +:10414000D8021F910F910C94B51B0F931F930091F0 +:10415000D5021091D6022091D7023091D802DC010D +:10416000CB0180279127A227B3278093D502909374 +:10417000D602A093D702B093D8021F910F910C944E +:10418000B51B0895CF92DF92EF92FF920F931F938A +:10419000CF93DF938C01C090D902D090DA02E090E7 +:1041A000DB02F090DC028091D5029091D602A091C2 +:1041B000D702B091D802C82AD92AEA2AFB2ACFE12D +:1041C000D0E0D701C6010C2E04C0B695A7959795EF +:1041D00087950A94D2F780FF06C0B8018C2F0E9401 +:1041E0005D08019721F4219760F780E001C08C2FD2 +:1041F000DF91CF911F910F91FF90EF90DF90CF90C3 +:104200000895CF93DF93EC010E94C220BE010E946B +:104210005D08DF91CF910895CB010E94012108959F +:104220008091DD0285958595859508958091DD02C3 +:104230008770089598E0899F90011124262B209380 +:10424000DD020C9406202091DD028095822380936C +:10425000DD02982F977069F430E0482F552747FD0D +:1042600050952417350729F08595859585950C94EB +:10427000272008959091DD02977081E009F480E095 +:10428000089590911501992321F0909116019111B3 +:1042900009C02091170130911801F90132969FEF62 +:1042A00040E01FC0982F9695969596959F3050F5B3 +:1042B000E0911701F0911801E90FF11D877021E0DD +:1042C00030E0A90102C0440F551F8A95E2F7CA01E8 +:1042D0009181892B818308959F3F39F04F5F4E3044 +:1042E00041F051915813F8CF0DC05111F7CF942FD1 +:1042F000F5CF9F3F39F0F901E90FF11D97FDFA95D0 +:1043000082830895089590911501992321F0909149 +:104310001601911109C02091170130911801F9017E +:104320003296205F3F4F1FC0982F96959695969591 +:104330009F30F0F4E0911701F0911801E90FF11DA1 +:10434000877021E030E0A90102C0440F551F8A9513 +:10435000E2F7CA018095918189238183089531967E +:10436000E217F30729F090819813F9CF1082F7CF65 +:10437000089581E090E0E0911701F0911801E80FB5 +:10438000F91F1082019680319105A9F70895909147 +:10439000F102892B8093F102089580959091F102AA +:1043A00089238093F10208951092F102089590916B +:1043B000F002892B8093F002089580959091F0028D +:1043C00089238093F00208951092F002089590914D +:1043D000EF02892B8093EF02089580959091EF0270 +:1043E00089238093EF0208951092EF02089580933D +:1043F000DE0208951092DE020895809117019091D7 +:104400001801FC0131969C01205F3F4F80E09191A3 +:1044100091118F5FE217F307D1F70895E09117012B +:10442000F09118018091F1028083E0911701F091E1 +:10443000180190818091F002892B8083E09117010F +:10444000F091180190818091EF02892B80838091F7 +:10445000DE02882361F0E0911701F091180190814C +:10446000892B80830E94FD2181111092DE028091B0 +:104470001701909118010C94F31620E0009739F081 +:10448000AC0141505109842395232F5FF7CF822F30 +:10449000089580911303843039F11092F30220E4DF +:1044A00088E190E00FB6F894A895809360000FBE65 +:1044B0002093600080E00E94D80280E00E94F7080C +:1044C00083B7817F846083BF83B7816083BF789423 +:1044D000889583B78E7F83BF88E10FB6F894809369 +:1044E0006000109260000FBE08950895089580E066 +:1044F0000E94D8020E9475220E9452090E947622D0 +:104500000E94D70991E0811101C090E0892F0895A0 +:104510000E94C91B80E00E94D8020E94F1270E94DD +:10452000E7160C94F7081F920F920FB60F92112402 +:104530008F939F93AF93BF938091F302811113C028 +:104540008091F4029091F502A091F602B091F702E9 +:104550004196A11DB11D8093F4029093F502A093A2 +:10456000F602B093F702BF91AF919F918F910F9098 +:104570000FBE0F901F90189582E084BD93E095BD0B +:104580009AEF97BD80936E0008952FB7F8948091AD +:10459000F4029091F502A091F602B091F7022FBFBC +:1045A0000895CF92DF92EF92FF920F931F932FB750 +:1045B000F8944091F4025091F5026091F6027091E6 +:1045C000F7022FBF6A017B01EE24FF248C0120E05B +:1045D00030E0C016D106E206F30610F4415051094E +:1045E0009A01281B390BC9011F910F91FF90EF9081 +:1045F000DF90CF9008951F920F920FB60F92112463 +:104600008F939F93AF93BF938091F4029091F502A3 +:10461000A091F602B091F7020196A11DB11D809301 +:10462000F4029093F502A093F602B093F702BF91C3 +:10463000AF919F918F910F900FBE0F901F90189583 +:104640000E94E413F8942FEF87EA91E6215080400E +:104650009040E1F700C0000087E090EBDC01809320 +:104660001E0390931F03A0932003B09321039CE0AB +:1046700088E10FB6F894A895809360000FBE9093E0 +:104680006000FFCF0E948123811102C00E945D2340 +:104690000E948C238093F2020E94942380931C0337 +:1046A00087FB882780F9809316010E949023682F4A +:1046B00070E080E090E00C94891F6DEE7EEF80E06A +:1046C00090E00E94A82C60E082E090E00E94962C8E +:1046D00060E083E090E00E94962C60E084E090E04F +:1046E0000E94962C60E085E090E00E94962C60E0AD +:1046F00086E090E00E94962C6FEF87E090E00C94AB +:10470000962C80E090E00E94902C21E08D3E9E4F00 +:1047100009F020E0822F089582E090E00C94882C2C +:1047200083E090E00C94882C84E090E00C94882C3A +:10473000682F84E090E00C94962C86E090E00C9436 +:10474000882C682F86E090E00C94962C87E090E00F +:104750000C94882C682F87E090E00C94962C809124 +:10476000FA0280FF0BC060911C0185E0689FB001D8 +:10477000112475956795759567952BC081FF09C0C4 +:1047800060911C0185E0689FB001112475956795C3 +:1047900020C082FF07C060911C0185E0689FB001C6 +:1047A000112417C09091FB029923D1F060911B0155 +:1047B000961788F720911C0185E0289F900111240D +:1047C000929FA001939F500D112470E0CA010E9496 +:1047D0006E2C6038710540F46115710539F002C026 +:1047E00065E070E0862F08958FE7089581E00895D1 +:1047F0008091FA0280FF08C060911A0170E07595FF +:1048000067957595679521C081FF06C060911A0173 +:1048100070E07595679519C082FF04C060911A0118 +:1048200070E010C09091FB029923C1F060911901D2 +:104830009617A0F780911A01899FC001112470E09A +:104840000E946E2C6038710528F46115710521F005 +:10485000862F08958FE7089581E0089561E070E064 +:10486000F4CF803F21F40E94AF23819504C0813FA3 +:1048700029F40E94AF238093FE020895823F21F421 +:104880000E94AF23819504C0833F29F40E94AF2387 +:104890008093FD020895893F19F40E94F82305C012 +:1048A0008A3F31F40E94F82381958093FF02089596 +:1048B0008B3F21F40E94F823819504C08C3F29F49A +:1048C0000E94F823809300030895843F21F480918F +:1048D000FC02816017C0853F21F48091FC02826058 +:1048E00011C0863F21F48091FC0284600BC0873F99 +:1048F00021F48091FC02886005C0883F31F48091EA +:10490000FC0280618093FC0208958D3F21F4809128 +:10491000FA0281600BC08E3F21F48091FA0282601E +:1049200005C08F3F29F48091FA0284608093FA02D7 +:104930000895803F39F48091FE0287FF6CC0109289 +:10494000FE0269C0813F29F48091FE021816BCF373 +:1049500062C09091FD02823F29F497FF5CC01092E3 +:10496000FD0259C0833F19F41916CCF354C0893F96 +:1049700041F48091FF0218160CF04DC01092FF0216 +:104980004AC08A3F29F48091FF0287FF44C0F6CFD6 +:104990008B3F39F48091000387FF3DC010920003E4 +:1049A0003AC08C3F29F4809100031816BCF333C041 +:1049B000843F21F48091FC028E7F17C0853F21F453 +:1049C0008091FC028D7F11C0863F21F48091FC0212 +:1049D0008B7F0BC0873F21F48091FC02877F05C04D +:1049E000883F31F48091FC028F7E8093FC0213C0DB +:1049F0008D3F21F48091FA028E7F0BC08E3F21F40F +:104A00008091FA028D7F05C08F3F29F48091FA02D0 +:104A10008B7F8093FA028091FD0281110EC08091FC +:104A2000FE0281110AC08091FF02811106C08091AF +:104A30000003811102C01092FB0208958CEF92E0F6 +:104A40000E94FE160E94C5229093F9028093F802FC +:104A500008951F93CF93DF938091F8029091F9020C +:104A60000E94D122AC019091FB02992321F0209168 +:104A70001D0130E006C020911E018AE0289F9001B0 +:104A800011244217530708F486C08091FD02C0919B +:104A9000FE02D091FF0210910003811107C0C111E5 +:104AA00076C0D11174C0111172C075C09F3F19F04A +:104AB0009F5F9093FB02181624F40E94AF2380930B +:104AC000FD028091FD0287FF05C00E94AF23819502 +:104AD0008093FD021C1624F40E94AF238093FE02F3 +:104AE0008091FE0287FF05C00E94AF2381958093CD +:104AF000FE026091FD02662339F1C091FE02CC23D3 +:104B000019F1772767FD7095872F972F0E949029BD +:104B100023E333E343E35FE30E94A02A0E945D297D +:104B20006093FD026C2F772767FD7095872F972F75 +:104B30000E94902923E333E343E35FE30E94A02A2A +:104B40000E945D296093FE021D1624F40E94F82342 +:104B50008093FF028091FF0287FF05C00E94F82327 +:104B600081958093FF02111624F40E94F82380930C +:104B700000038091000387FF05C00E94F823819500 +:104B800080930003DF91CF911F910C941E259F3FCE +:104B900009F08ECF96CFDF91CF911F910895ECEF62 +:104BA000F2E085E0DF011D928A95E9F71092FB02A1 +:104BB0001092FA020895833081F128F4813059F07F +:104BC0008230D1F00895853009F449C0B8F18630BB +:104BD00009F456C0089580911E01262F30E0280F59 +:104BE000311D2F3F310524F4680F60931E01089595 +:104BF0008FEF80931E01089580911D01262F30E0D4 +:104C0000280F311D2F3F310524F4680F60931D01DB +:104C100008958FEF80931D01089580911C01262F28 +:104C200030E0280F311D2F3F310524F4680F6093C9 +:104C30001C0108958FEF80931C01089580911B0142 +:104C4000262F30E0280F311D2F3F310524F4680F47 +:104C500060931B0108958FEF80931B01089580914D +:104C60001A01262F30E0280F311D2F3F310524F483 +:104C7000680F60931A0108958FEF80931A010895C9 +:104C800080911901262F30E0280F311D2F3F31056B +:104C900024F4680F6093190108958FEF8093190130 +:104CA0000895833011F128F4813049F0823091F079 +:104CB0000895853081F120F18630C1F10895809109 +:104CC0001E01681720F4861B80931E010895109220 +:104CD0001E01089580911D01681720F4861B8093A2 +:104CE0001D01089510921D01089580911C016817FF +:104CF00020F4861B80931C01089510921C010895D6 +:104D000080911B01681720F4861B80931B01089576 +:104D100010921B01089580911A01681720F4861BD8 +:104D200080931A01089510921A0108958091190133 +:104D3000681720F4861B80931901089510921901B9 +:104D400008950F931F93873208F048C08E3108F002 +:104D50008DC0803109F477C008F5873009F461C04F +:104D600068F4863009F09DC08091F202817F8E7FC9 +:104D70008093F20281E08093020394C08B3009F4A7 +:104D800089C08E3009F08DC08091F20282FB22270B +:104D900020F991E0922790FB82F95EC0863109F4F8 +:104DA00079C060F4813109F07CC00E94C91B9091E8 +:104DB000160181E08927809316016CC0893109F4BE +:104DC00069C08B3109F06DC08091F20281FB22270E +:104DD00020F991E0922790FB81F93EC0883309F4D5 +:104DE00059C050F4893209F457C0853309F454C0CE +:104DF000873209F451C055C0833409F44DC028F4FA +:104E00008A3308F44EC0895332C0883409F049C04F +:104E10000E94C91B0E94070A0E94CB030E94202304 +:104E200039C09091F202892F8095817080FB90F9B2 +:104E300029F0966098609093F20234C0997F977F32 +:104E40009093F20227C08091F20283FB222720F97F +:104E500091E0922790FB83F98093F2029923D1F09D +:104E60008091F20281608093F20214C08D5141E082 +:104E700050E060E070E08A019B0104C0000F111F48 +:104E8000221F331F8A95D2F7C901B8010E94891FDA +:104E90000E94C91B81E006C061E070E080E090E004 +:104EA000F5CF80E01F910F91089580E0089580E094 +:104EB0000895CF93C82F80910203813069F018F0D4 +:104EC0008230C9F184C0E0911701F091180180810E +:104ED000823209F07EC007C0E0911701F0911801FD +:104EE0008081823261F48C2F0E945527811104C089 +:104EF0008C2F0E94A1261DC081E090E01AC08C2F4B +:104F00000E945727811114C0C43179F048F4CB3086 +:104F100079F0C03109F061C082E08093020308C0DB +:104F2000C93219F0C83321F058C01092020355C09D +:104F300081E0817054C0C93291F120F5C43179F11A +:104F4000B0F4C73009F047C08EE180931E0182E3C0 +:104F500080931D018AE080931C0184E180931B01F2 +:104F600088E080931A0188E28093190134C0CE5101 +:104F7000C63088F5EC2FF0E0EA54FE4F8081809334 +:104F8000010329C0CE34E9F020F4CB3421F56AE0E6 +:104F900013C0C13579F0C235F1F461E00DC08091E4 +:104FA0000103882319F01092010315C081E080935A +:104FB000020315C061E006C0809101030E94DB2559 +:104FC0000AC06AE0809101030E94512604C0109239 +:104FD000020380E004C081E002C080E0AACFCF914C +:104FE00008950E948123811102C00E945D230E94C6 +:104FF0009D2380931D0380FF02C0869501C080E041 +:105000000C94D80280911D03982F9695292F30E09B +:10501000233031054CF49F5F990F8170892B81609B +:1050200080931D030E94A12380911D0386950C94FB +:10503000D80280911D03982F969591F09158990F61 +:105040008170892B80931D038E7F91E009F490E09D +:1050500080911D0390FB80F980931D030E94A12382 +:1050600080911D0386950C94D80280911D03982F82 +:10507000909590FB80F980931D030E94A12380915D +:105080001D0380FF02C0869501C080E00C94D80209 +:1050900090911D03892F86958F5F8F779170843053 +:1050A00028F4880F892B80931D0302C090931D0361 +:1050B00080911D038E7F91E009F490E080911D03A3 +:1050C00090FB80F980931D030E94A12380911D0312 +:1050D00086950C94D80220911D03922F96958927CE +:1050E000982F990F822F8170892B80931D038E7FBB +:1050F00091E009F490E080911D0390FB80F980938A +:105100001D030E94A12380911D0386950C94D80253 +:1051100080911D03869508955058BB27AA270ED06D +:10512000D1C1C2D130F0C7D120F031F49F3F11F48A +:105130001EF4B7C10EF4E095E7FB9FC1E92FD3D170 +:1051400080F3BA17620773078407950718F071F4A4 +:105150009EF5EBC10EF4E0950B2EBA2FA02D0B019E +:10516000B90190010C01CA01A0011124FF27591BAC +:1051700099F0593F50F4503E68F11A16F040A22FB2 +:10518000232F342F4427585FF3CF46953795279523 +:10519000A795F0405395C9F77EF41F16BA0B620B22 +:1051A000730B840BBAF09150A1F0FF0FBB1F661F69 +:1051B000771F881FC2F70EC0BA0F621F731F841FAC +:1051C00048F4879577956795B795F7959E3F08F0D2 +:1051D000B3CF9395880F08F09927EE0F9795879591 +:1051E000089527D108F481E008950CD06BC163D1F4 +:1051F00040F05AD130F021F45F3F19F03EC1511117 +:1052000095C14FC170D198F39923C9F35523B1F3D8 +:10521000951B550BBB27AA2762177307840738F025 +:105220009F5F5F4F220F331F441FAA1FA9F333D084 +:105230000E2E3AF0E0E830D091505040E695001C38 +:10524000CAF729D0FE2F27D0660F771F881FBB1FF4 +:10525000261737074807AB07B0E809F0BB0B802DCE +:10526000BF01FF2793585F4F2AF09E3F510568F01A +:1052700004C15CC15F3FECF3983EDCF38695779503 +:105280006795B795F7959F5FC9F7880F911D96951C +:10529000879597F90895E1E0660F771F881FBB1F78 +:1052A000621773078407BA0720F0621B730B840B25 +:1052B000BA0BEE1F88F7E095089504D06894B111F9 +:1052C00035C1089518D188F09F5790F0B92F9927CC +:1052D000B751A0F0D1F0660F771F881F991F1AF001 +:1052E000BA95C9F712C0B13081F01FD1B1E008956D +:1052F0001CC1672F782F8827B85F39F0B93FCCF3EE +:10530000869577956795B395D9F73EF490958095F6 +:10531000709561957F4F8F4F9F4F0895E89409C016 +:1053200097FB3EF490958095709561957F4F8F4FD8 +:105330009F4F9923A9F0F92F96E9BB279395F695EE +:10534000879577956795B795F111F8CFFAF4BB0F6C +:1053500011F460FF1BC06F5F7F4F8F4F9F4F16C0D0 +:10536000882311F096E911C0772321F09EE8872F5A +:10537000762F05C0662371F096E8862F70E060E016 +:105380002AF09A95660F771F881FDAF7880F96958F +:10539000879597F9089588D018F011F08CD038F4DB +:1053A00080C0C4C0E92F9FD0B0F35523C9F3E7FBF9 +:1053B0006217730784079507A8F199F3E92FFF2770 +:1053C00088232AF03197660F771F881FDAF7952F09 +:1053D0005527442332F091505040220F331F441F71 +:1053E000D2F7BB27E91BF50B621B730B840BB109CA +:1053F000C1F222F4620F731F841FB11D31972AF08E +:10540000660F771F881FBB1FEFCF915050405AF097 +:1054100041F0882332F0660F771F881F915050406B +:10542000C1F7939530C08695779567959F5FD9F7BB +:10543000F8CF990F0008550FAA0BE0E8FEEF1616FB +:105440001706E807F907C0F012161306E407F50778 +:1054500098F0621B730B840B950B39F40A2661F0EC +:10546000232B242B252B21F408950A2609F4A1408F +:10547000A6958FEF811D811D089597F99F6780E89C +:1054800070E060E008959F3F31F0915020F48795DF +:1054900077956795B795880F911D9695879597F99C +:1054A00008959FEF80EC089500240A9416161706BD +:1054B00018060906089500240A9412161306140605 +:1054C00005060895092E0394000C11F4882352F068 +:1054D000BB0F40F4BF2B11F460FF04C06F5F7F4F20 +:1054E0008F4F9F4F089557FD9058440F551F59F007 +:1054F0005F3F71F04795880F97FB991F61F09F3FC1 +:1055000079F087950895121613061406551FF2CFE9 +:105510004695F1DF08C0161617061806991FF1CF39 +:1055200086957105610508940895E894BB27662760 +:105530007727CB0197F908957CDF08F48FEF089562 +:105540000BD0C0CFB1DF28F0B6DF18F0952309F0FB +:1055500094CFA7CF1124EACFC6DFA0F3959FD1F354 +:10556000950F50E0551F629FF001729FBB27F00D11 +:10557000B11D639FAA27F00DB11DAA1F649F662766 +:10558000B00DA11D661F829F2227B00DA11D621FB5 +:10559000739FB00DA11D621F839FA00D611D221F6F +:1055A000749F3327A00D611D231F849F600D211D53 +:1055B000822F762F6A2F11249F5750408AF0E1F0F6 +:1055C00088234AF0EE0FFF1FBB1F661F771F881F3F +:1055D00091505040A9F79E3F510570F04ECFA6CF95 +:1055E0005F3FECF3983EDCF3869577956795B7952A +:1055F000F795E7959F5FC1F7FE2B880F911D969554 +:10560000879597F90895FA01EE0FFF1F309621054F +:10561000310599F16115710561F48038BFE39B078D +:1056200049F168949038810561F08038BFEF9B079D +:1056300041F0992342F5FF3FE1053105210511F1C4 +:10564000E8940894E795D901AA2329F4AB2FBE2F3B +:10565000F85FD0F310C0FF5F70F4A695E0F7F7395C +:1056600050F019F0FF3A38F49F779F930CD00F90C9 +:1056700007FC905808953EF014CF60E070E080E899 +:105680009FE308954FE79F775F934F933F932F9347 +:105690009ED02F913F914F915F9152DF05C019F439 +:1056A0000EF0EBCE42CFFDCE26DFC8F39638C0F722 +:1056B00007F80F92E8942BE33AEA48EB5FE74EDFF6 +:1056C0000F920F920F924DB75EB70F92C0D0EAE0E3 +:1056D000F1E016D04F915F91EF91FF91E595EE1FAC +:1056E000FF1F49F0FE57E0684427EE0F441FFA956C +:1056F000E1F74195550B32D00F9007FE26C0089573 +:10570000DF93CF931F930F93FF92EF92DF927B0172 +:105710008C01689405C0DA2EEF011EDFFE01E894CB +:10572000A5912591359145915591AEF3EF0106DD97 +:10573000FE019701A801DA9479F7DF90EF90FF90CE +:105740000F911F91CF91DF9108959B01AC0160E013 +:1057500070E080E89FE349CD90CE95CECCDEE8F3B3 +:105760009923D9F3940F511DBBF39150504094F0FD +:1057700059F0882332F0660F771F881F91505040F0 +:10578000C1F79E3F510544F7880F911D9695879567 +:1057900097F908955F3FACF0983E9CF0BB27869543 +:1057A00077956795B79508F4B1609395C1F7BB0FEE +:1057B00058F711F460FFE8CF6F5F7F4F8F4F9F4F17 +:1057C000E3CFB4CE0EF05FCE6CCE689456CE93DEAF +:1057D000C8F39923D1F3C6F3DF93CF931F930F93AD +:1057E000FF92C92FDD2788232AF02197660F771FA4 +:1057F000881FDAF720E030E040E85FEB9FE388396C +:1058000020F0803E30F021968F7787DCE2E3F1E0F4 +:1058100003C083DCEFE5F1E073DF8B01BE01EC0137 +:10582000FB2E6F5771097595771F880B990B78DDE3 +:1058300028E132E741E35FE38FDEAF2D9801AE014F +:10584000FF900F911F91CF91DF9178DC3BCEFA0151 +:10585000DC01AA0FBB1F9B01AC01BF5728F4222714 +:105860003327442750781FC0B75188F4AB2F00244A +:10587000469537952795011CA395D2F3002069F032 +:10588000220F331F441FB395DAF30DD045CC61309E +:105890007105A0E88A07B94630F49B01AC01662780 +:1058A000772788279078309621F0208331834283B0 +:1058B00053830895AA1BBB1B51E107C0AA1FBB1F3E +:1058C000A617B70710F0A61BB70B881F991F5A958C +:1058D000A9F780959095BC01CD01089597FB072EFF +:1058E00016F4009407D077FD09D00E945A2C07FCCB +:1058F00005D03EF4909581959F4F089570956195E0 +:105900007F4F0895EE0FFF1F0590F491E02D09944D +:10591000F999FECF92BD81BDF89A992780B5089577 +:10592000A8E1B0E042E050E00C94B02C262FF999A9 +:10593000FECF92BD81BDF89A019700B4021639F0EE +:105940001FBA20BD0FB6F894FA9AF99A0FBE0895BF +:105950000196272F0E94972C0C94962CDC01CB01EA +:10596000FC01F999FECF06C0F2BDE1BDF89A31966F +:1059700000B40D9241505040B8F70895F894FFCF0D +:10598000640007000CFF0000003F64EB0F79105625 +:10599000102210EE0F0101DF022808140A321E0047 +:1059A00002040507090B0C0E1011131517181A1C09 +:1059B0001D1F2123242628292B2D2F303234353743 +:1059C000393B1F0F03764F5F6F7F49694379095950 +:1059D00053633149803F5D8B803FF8BF803FCAE110 +:1059E000803F73ED803FCAE1803FF8BF803F5D8B11 +:1059F000803F3149803F0000803FF16D7F3F75EA75 +:105A00007E3F4C827E3F833F7E3F84287E3F833FA4 +:105A10007E3F4C827E3F75EA7E3FF16D7F3F000006 +:105A2000803F3F4D3639BB046E043804FF039203B8 +:105A3000AB03C403DD0301020304050607080900E4 +:00000001FF diff --git a/keyboards/planck/keymaps/charlie/keymap.c b/keyboards/planck/keymaps/charlie/keymap.c new file mode 100644 index 000000000..966c60d20 --- /dev/null +++ b/keyboards/planck/keymaps/charlie/keymap.c @@ -0,0 +1,54 @@ +#include "keymap.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = { /* Native */ + {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, FUNC(2)}, + {KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_TAB, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, + {KC_DEL, KC_LCTL, KC_NO, KC_LSFT, KC_LALT, KC_SPC, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + [1] = { /* QWERTY->PHOTOSHOP */ + {KC_DELETE, KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, FUNC(1)}, + {KC_O, KC_G, KC_S, KC_U, KC_T, FUNC(27), KC_F21, KC_F10, KC_F11, KC_F7, KC_F8, KC_F9}, + {KC_TAB, FUNC(4), FUNC(5), FUNC(6), KC_F1, FUNC(7), KC_F18, KC_F19, KC_F23, KC_F20, KC_F22, FUNC(9)}, + {KC_COMM, KC_DOT, KC_R, FUNC(11), FUNC(3), KC_SPC, FUNC(12), KC_F2, FUNC(8), KC_F3, KC_F14} + }, + [2] = { /* 2: FUNC(3 PHOTOSHOP */ + {KC_ESC, FUNC(25), FUNC(26), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO}, + {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, FUNC(19), FUNC(20), FUNC(21)}, + {KC_C, KC_NO, FUNC(22), FUNC(5), KC_NO, FUNC(23), KC_NO, KC_NO, KC_NO, KC_NO, FUNC(13), KC_NO}, + {FUNC(14), FUNC(15), FUNC(16), FUNC(17), FUNC(3), KC_SPC, FUNC(18), KC_NO, KC_NO, KC_F24, KC_NO} + } +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_DEFAULT_LAYER_SET(0), // set Qwerty layout + [2] = ACTION_DEFAULT_LAYER_SET(1), // set Photoshop presets + [3] = ACTION_LAYER_MOMENTARY(2), // Photoshop function layer + + [4] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F9), // photo folder AHK + [5] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_I), // select inverse + [6] = ACTION_MODS_KEY(MOD_LSFT, KC_M), // marquee select + [7] = ACTION_MODS_KEY(MOD_LALT, KC_BSPC), // fill + [8] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_X), // warp + [9] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT | MOD_LSFT, KC_F12), // merge all new layer + [10] = ACTION_MODS_KEY(MOD_LCTL, KC_MINS), // zoom out + [11] = ACTION_MODS_KEY(MOD_LCTL, KC_H), // RBG sliders + [12] = ACTION_MODS_KEY(MOD_LCTL, KC_S), // save + [13] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_F5), // layer mask from transparancy + [14] = ACTION_MODS_KEY(MOD_LCTL, KC_F2), // stroke + [15] = ACTION_MODS_KEY(MOD_LCTL | MOD_LSFT, KC_F2), // stroke layer + [16] = ACTION_MODS_KEY(MOD_LCTL, KC_0), // zoom 0 + [17] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_H), // HSV sliders + [18] = ACTION_MODS_KEY(MOD_LCTL | MOD_LSFT, KC_S), // save as + [19] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F7), // gaussian blur + [20] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F8), // motion blur + [21] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_X), // liquify filter + [22] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), // prev layer blending + [23] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_BSPC), // KC_NOrmal layer blending + [24] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), // next layer blending + [25] = ACTION_MODS_KEY(MOD_LCTL, KC_Z), // step back + [26] = ACTION_MODS_KEY(MOD_LCTL, KC_Y), // step forward + [27] = ACTION_MODS_KEY(MOD_LCTL, KC_R), // rasterize + +}; diff --git a/keyboards/planck/keymaps/daniel/Makefile b/keyboards/planck/keymaps/daniel/Makefile new file mode 100644 index 000000000..581e08cd0 --- /dev/null +++ b/keyboards/planck/keymaps/daniel/Makefile @@ -0,0 +1,25 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/daniel/compiled.hex b/keyboards/planck/keymaps/daniel/compiled.hex new file mode 100644 index 000000000..d7e56a3e2 --- /dev/null +++ b/keyboards/planck/keymaps/daniel/compiled.hex @@ -0,0 +1,1448 @@ +:100000000C9495020C94D9020C94D9020C94D90248 +:100010000C94D9020C94D9020C94D9020C94D902F4 +:100020000C94D9020C94D9020C9477140C944915B1 +:100030000C94AB220C94D9020C94D9020C94D902E2 +:100040000C94D9020C943B030C94D9020C94D90261 +:100050000C94D9020C9413230C94D9020C94D90259 +:100060000C94D9020C94D9020C94D9020C94D902A4 +:100070000C94D9020C94D9020C94D9020C94D90294 +:100080000C94EC0A0C94D9020C94D9020C94D90269 +:100090000C94D9020C94D9020C94D9020C94D90274 +:1000A0000C94D9020C94D9020C94D902B615D81527 +:1000B000C616D815C6161D164016C6169516A816CD +:1000C00092199219C119C119001A201A761B761BB0 +:1000D0002B1A761BDB1ADB1A421B4B1B761B701B81 +:1000E000E81AE81AE81AE81AE81AE81AE81AE81A00 +:1000F000E81AE81AE81AE81AE81AE81AE81AE81AF0 +:10010000F81A061B0D1B141B1E1B07634236B79BF8 +:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 +:100120005763BD6DEDFD753EF6177231BF000000DF +:10013000803F08000000BE922449123EABAAAA2AC2 +:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD +:1001500000000000BF000000803F00000000000819 +:100160004178D3BB4387D1133D190E3CC3BD4282B6 +:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 +:10018000FFBE01C4FF7F3F00000000000000000030 +:1001900000000000000000010204060A0F17202CD6 +:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 +:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF +:1001C0000201000000000000000000000000F1A19A +:1001D000F1A2F1A3290014001A000800150017006D +:1001E0001C0018000C00120013002A002B00040051 +:1001F0001600070009000A000B000D000E000F009A +:1002000033003400E1001D001B000600190005004A +:1002100011001000360037003800E5000320E00030 +:10022000E200E30002202C002C00012050005100CD +:1002300052004F0035001E021F022002210222023E +:10024000230224022502260227022E0001000100BB +:100250000100010001000100010001000100010096 +:100260002F00300001000100010001000100010029 +:10027000010001002D002D023100010001000100EC +:10028000010001000100010001000120AB00AA00F3 +:10029000A900AE0035021E001F0020002100220030 +:1002A000230024002500260027002E023A003B00F0 +:1002B0003C003D003E003F00400041004200430042 +:1002C0004400450039003A003B003C003D003E0040 +:1002D0003F004000410042004300280001000100AF +:1002E000010001000220010001000100AB00AA0092 +:1002F000A900AE00290014001A000800150017001C +:100300001C0018000C00120013004C002B0004000D +:100310001600070009000A000B000D000E000F0078 +:1003200033003400E1001D001B0006001900050029 +:1003300011001000360037003800E5000100E00031 +:10034000E200E30002202C002C00012050005100AC +:1003500052004F0028035400680065002000500040 +:100360006C0061006E0063006B0020004B006500B4 +:10037000790062006F0061007200640000002C03CD +:100380004F007200740068006F006C0069006E001E +:1003900065006100720020004B006500790062007A +:1003A0006F00610072006400730000000403090420 +:1003B00009026D00040100A0FA0904000001030114 +:1003C0000100092111010001223F000705810308F6 +:1003D000000A0904010001030102000921110100C2 +:1003E00001224D000705820308000A0904020001EA +:1003F00003000000092111010001223600070583D6 +:100400000308000A09040300010300000009211188 +:1004100001000122390007058403100001120110B8 +:100420000100000008EDFE6060010001020001050E +:10043000010906A101050719E029E7150025019525 +:1004400008750181020508190129059505750191B5 +:1004500002950175039101050719002977150025FB +:1004600001957875018102C005010980A10185020D +:1004700016010026B7001A01002AB7007510950171 +:100480008100C0050C0901A1018503160100269C0D +:10049000021A01002A9C02751095018100C0050115 +:1004A0000902A1010901A100050919012905150089 +:1004B00025019505750181029501750381010501ED +:1004C000093009311581257F9502750881060938A3 +:1004D0001581257F950175088106050C0A380215DE +:1004E00081257F950175088106C0C005010906A117 +:1004F00001050719E029E715002501950875018117 +:1005000002950175088101050819012905950575F0 +:100510000191029501750391010507190029FF1545 +:100520000025FF950675088100C011241FBECFEF7E +:10053000DAE0DEBFCDBF04B603FE24C080911E0307 +:1005400090911F03A0912003B09121038730904B1D +:10055000A740B04BB9F410921E0310921F031092E3 +:1005600020031092210314BE84B7877F84BF88E1E3 +:100570000FB6F89480936000109260000FBEE0E028 +:10058000F8E3099511E0A0E0B1E0E0EBF9E502C085 +:1005900005900D92A03CB107D9F713E0A0ECB1E0B3 +:1005A00001C01D92AE31B107E1F70E94BD110C945C +:1005B000D62C0C9400000895089581E008950895C4 +:1005C0000C94DC020C94DD020C94DF020E94A02843 +:1005D00023E030E0281B3109220F2093C401089545 +:1005E000282F2F9880918000211108C0877F809349 +:1005F000800010928D0010928C001BC08860809348 +:100600008000233019F48FEF9FEF0FC083E090E05C +:10061000821B9109880F991F2FEF3FEFA90102C09C +:10062000569547958A95E2F7CA0190938D0080937D +:100630008C000C94E6020E94E60284E08093C301E1 +:100640001092C0010895279A2F988FEF9FEF9093F3 +:100650008700809386008AE08093800089E1809300 +:1006600081000E9409280C941B030E9423036E9AA8 +:10067000769A0C94DB021F920F920FB60F92112400 +:100680002F933F938F939F93EF93FF93E091C1013B +:10069000F091C201CF0101969093C2018093C101F4 +:1006A0000090C30102C0F695E7950A94E2F7EF7354 +:1006B0008091C001823019F4E03251F404C08130DD +:1006C00039F4EF3329F480916F008D7F80936F00B0 +:1006D000F0E0E457FE4FE49121E031E0E29FC001F9 +:1006E000E39F900D11240090C40102C09695879558 +:1006F0000A94E2F790938D0080938C00FF91EF9124 +:100700009F918F913F912F910F900FBE0F901F904F +:10071000189581E008950C94890308950C9435038D +:1007200080911502882309F448C08091D1019091ED +:10073000D201009779F40E94DD229093D201809338 +:10074000D1018091D30190E0009771F48091D401A0 +:1007500090E00AC00E94E92220910001309101013D +:100760002817390740F329C00197880F991F880F70 +:10077000991FFC01EB52FE4F608171818281938150 +:100780000E94520AE091D30184E0E89FF001112415 +:10079000EB52FE4F60817181828193814FE050E086 +:1007A0000E940A0E8091D30190E001966091D401DD +:1007B00070E00E94862C8093D3010C94E00210928A +:1007C00017020C941F0A0895089581E08093170280 +:1007D0000C94E403089508958F929F92AF92BF9274 +:1007E000EF92FF920F931F93CF93DF93CDB7DEB7B6 +:1007F000A3970FB6F894DEBF0FBECDBF7C01FC01FE +:1008000000811181C8010E94DA20B8010E94F1051F +:100810008C01B7010E948B03882309F4CCC10032FC +:10082000F0E51F0741F4F7018281882309F458C0DD +:100830000E946E0EC0C10132F0E51F0741F4F701BE +:100840008281882309F44CC00E94770EB4C1023221 +:10085000F0E51F0751F4F7018281882309F440C0B5 +:100860000E946A0E8111F0CFE3CF0332F0E51F073B +:1008700039F4F7018281882399F10E94E5039BC135 +:100880000432F0E51F0739F4F7018281882341F132 +:100890000E94DF0390C10532F0E51F0749F4F7011C +:1008A00082818823E9F0809117028111F1CFE5CF91 +:1008B0000632F0E51F0739F4F7018281882381F0C1 +:1008C0000E947E0E0AC00732F0E51F0749F4F701C7 +:1008D0008281882329F00E94890E0E94EB036BC15C +:1008E00080911702811105C0F70182818111CFC06B +:1008F00018C1003E110579F4F7018281882309F4BB +:100900004DC00E941F0A81E08093160210921502CA +:100910001092D40150C1023E110559F4F7018281B1 +:100920008823E1F10E941F0A10921602109215020C +:1009300042C1033E110591F4F7018281882371F1D0 +:100940000E941F0A1092160281E0809315021092F5 +:10095000D3011092D2011092D1012DC1023511059F +:1009600059F4F7018281882309F425C1809100019F +:10097000909101010A970DC00135110579F4F70135 +:100980008281882309F417C18091000190910101AF +:100990000A9690930101809300010DC140910401DA +:1009A00083E2EFE1F1E0DE01119601900D928A956C +:1009B000E1F7F701808121E030E02C0F3D1F280F87 +:1009C000311DC9012091020130910301FC01E20FA8 +:1009D000F31F6081772767FD7095640F711D88276D +:1009E00077FD8095982F0E94A82920E030E040E410 +:1009F00051E40E940D294B015C01F701218184E043 +:100A000090E0821B9109BC01882777FD8095982F83 +:100A10000E94A8299B01AC01C501B4010E94A52830 +:100A20009B01AC0160E070E080E090E40E941B2B31 +:100A300020E030E04CED50E40E94B82A4B015C010C +:100A4000F70182818823D1F04FE050E0C501B40165 +:100A50000E940A0E809116028823A1F08091D40191 +:100A600024E0829FF0011124EB52FE4F808291829C +:100A7000A282B3828F5F8093D40104C0C501B40108 +:100A80000E94520A0F3F110508F02ECF94C08091AA +:100A9000D00181111FC0043130E5130709F051C0A6 +:100AA0000E948D0381E08093D0010E94DD2290930B +:100AB000CF018093CE011092C7011092C90110920C +:100AC000C8011092CB011092CA011092CD01109270 +:100AD000CC0171C08091CE019091CF010E94E9229A +:100AE000883C910570F48091C701E82FF0E0EE0F8B +:100AF000FF1FE853FE4F118300838F5F8093C70170 +:100B00005AC0043880E5180721F00538104501F176 +:100B10003AC0F7018281882341F01092C50182E03A +:100B20001EC0043830E5130759F58091C5018111C5 +:100B300006C086E20E94361886E20E94FE1882E015 +:100B40001CC00438F0E51F0741F305381045D9F4FF +:100B5000F7018281882331F01092C60180E20E9461 +:100B60004D1929C08091C601811106C087E20E94FB +:100B7000361887E20E94FE1880E20E9454191BC0BA +:100B80000538104529F381E08093C5018093C601A3 +:100B9000C701A3960FB6F894DEBF0FBECDBFDF919D +:100BA000CF911F910F91FF90EF90BF90AF909F90CA +:100BB0008F900C94E20280E0A3960FB6F894DEBF0B +:100BC0000FBECDBFDF91CF911F910F91FF90EF909E +:100BD000BF90AF909F908F90089580E090E008952F +:100BE00008959CE0799FF001112490E3899FE00D26 +:100BF000F11D1124E60FF11DEE0FFF1FEC52FE4F09 +:100C0000859194910895880F991FFC01E45BFF4F33 +:100C1000859194910895880F991FFC01E453FE4F2C +:100C20008591949108950F931F93CF93DF93EC01D7 +:100C3000811521E39207A0F5C11580E3D80708F0DC +:100C4000D7C0C83ED105D8F4C03ED10508F007C2D0 +:100C5000C83AD10578F4C53AD10508F06AC0C13068 +:100C6000D10509F463C008F4F7C1C430D10508F018 +:100C7000F6C1F2C1CB3BD10508F466C0EDC1C11588 +:100C800090E2D90708F0AFC0C11521E0D20708F003 +:100C9000E6C1C03FD10508F4DFC18E0110651FC257 +:100CA000C03880E5D80700F5C03790E5D90708F0CF +:100CB000A3C0C11520E5D20709F4ACC050F4CE01A1 +:100CC000905480319F4008F0C7C1DF708E01106AD8 +:100CD00006C2C13080E5D80709F4AEC0C43190E542 +:100CE000D90708F4AFC0B8C1C33820E5D20709F46A +:100CF0008EC050F4C13890E5D90709F482C008F0DD +:100D000083C000E011EDEBC1C03181E5D80708F4E4 +:100D1000A3C1C11597E5D90708F436C1CE01905794 +:100D20008115904108F098C1DF7093C101E010E097 +:100D3000D6C1C53AD10509F494C1C63AD10509F026 +:100D400093C102E810E4CBC1C83AD10509F48FC1C0 +:100D5000C93AD10509F48EC1CA3AD10509F48DC149 +:100D6000CB3AD10509F48CC1CC3AD10509F48BC139 +:100D7000CD3AD10509F48AC1C03BD10509F489C136 +:100D8000CE3AD10509F488C1CF3AD10509F487C11B +:100D9000C13BD10509F486C1C23BD10509F485C127 +:100DA000C33BD10509F484C1C43BD10509F483C117 +:100DB000C53BD10509F482C1C63BD10509F481C107 +:100DC000C73BD10509F480C1C83BD10509F47FC1F7 +:100DD000C93BD10509F47EC1CA3BD10509F47DC1E7 +:100DE00000E014E47CC1CE019F700E940B0678C124 +:100DF000DD278E01106C73C1CF70DD278E01146D5D +:100E00006EC100E010ED6BC100E012ED68C100E0C2 +:100E100013ED65C10E94E11B0E941F0A0E94E303BB +:100E20008FEF94E32CE0815090402040E1F700C028 +:100E300000000E94382353C18091F20281608093A8 +:100E4000F2024DC10E949923811102C00E947523B4 +:100E50000E94AC2390E090931D0380931C03C2304A +:100E600080E5D80721F480911C03816086C0C430DE +:100E700090E5D90721F480911C0382607EC0C630C2 +:100E800020E5D20721F480911C03846076C0C8302D +:100E900080E5D80719F480911C0327C0CA3090E57B +:100EA000D90721F480911C03806167C0CC3020E514 +:100EB000D20721F480911C0380625FC0CE3080E5B0 +:100EC000D80721F480911C03806457C0C03190E59D +:100ED000D90721F480911C0380684FC0C23120E5FE +:100EE000D20729F480911C038460886046C0C33017 +:100EF00080E5D80721F480911C038E7F3EC0C53069 +:100F000090E5D90721F480911C038D7F36C0C7304E +:100F100020E5D20721F480911C038B7F2EC0C930BD +:100F200080E5D80719F480911C0326C0CB3090E5EA +:100F3000D90721F480911C038F7E1FC0CD3020E59E +:100F4000D20721F480911C038F7D17C0CF3080E53C +:100F5000D80721F480911C038F7B0FC0C13190E52D +:100F6000D90721F480911C038F7707C0C331D04586 +:100F700031F480911C038B7F877F80931C038091C9 +:100F80001C030E94B023ABC08D2F99278F70992727 +:100F900081309105D9F49E012370332702C0880F58 +:100FA000991F2A95E2F79C688E0144E0000F111FFB +:100FB0004A95E1F700271370802B912B53E0CC0F5B +:100FC000DD1F5A95E1F7C076DD272FC082309105ED +:100FD00031F4DC2FCC278E01016F106A80C0833082 +:100FE000910569F4CE018370992701E010E002C0F9 +:100FF000000F111F8A95E2F7C8019C680FC084306A +:101000009105B9F4CE018370992701E010E002C088 +:10101000000F111F8A95E2F7C8019A6823E0CC0FF0 +:10102000DD1F2A95E1F7C07ED7708C010C2B1D2B9C +:1010300056C08530910531F4DC2FCC278E01046F2A +:10104000106A4DC0069709F04AC0CF71DD27DC2F2A +:10105000CC278E01106243C000E010E040C08E013A +:101060003EC001E810E43BC003E810E438C002EEE3 +:1010700014E435C009EE14E432C00AEE14E42FC0C3 +:1010800005EB14E42CC006EB14E429C007EB14E4D0 +:1010900026C00CEC14E423C00DEC14E420C003E8DB +:1010A00015E41DC00AE815E41AC002E915E417C0EA +:1010B00004E915E414C001E216E411C003E216E4E9 +:1010C0000EC004E216E40BC005E216E408C006E216 +:1010D00016E405C007E216E402C00AE216E4C801FD +:1010E000DF91CF911F910F9108959CE0799FF001BE +:1010F000112490E3899FE00DF11D1124E60FF11DED +:10110000EE0FFF1FEC52FE4F85919491803E9105AA +:10111000E0F4803C910558F58133910509F46FC0E6 +:1011200048F48932910509F463C08A32910509F4C3 +:101130006DC072C089339105E9F082389105D1F014 +:101140008533910509F44DC067C0833E910581F157 +:1011500038F4803E9105B9F0823E9105D9F05CC02B +:10116000863E910561F1873E9105A1F155C00E942F +:101170000306089520911C0320FD02C021FF4CC0EE +:1011800080EE90E049C080911C0380FFF9CF89E395 +:1011900090E042C080911C0382FF0EC080911C032E +:1011A00084FF03C080E090E037C083EE90E034C05D +:1011B00080911C0382FFF2CF82EE90E02DC08091DF +:1011C0001C0383FF0BC080911C0384FDEBCF87EED3 +:1011D00090E022C080911C0383FFF5CF86EE90E063 +:1011E0001BC080911C0385FF07C089E290E014C0FA +:1011F00080911C0385FFF9CF85E390E00DC08091BD +:101200001C0386FF07C08AE290E006C080911C03A1 +:1012100086FFF9CF81E390E00E94130608950C94B5 +:10122000E402E82FF0E0E25BFE4F8081E82FEF70F0 +:10123000F0E082958F7021E030E0A90102C0440FF8 +:10124000551F8A95E2F740A308950F931F93CF93FC +:10125000DF9385B7806885BF85B7806885BFC3E0A9 +:10126000D0E001E010E0FE01E25BFE4F8081E82F5C +:10127000EF70F0E021A182958F70A80102C0440FA9 +:10128000551F8A95E2F7CA01822B81A38C2F0E94F9 +:101290001109219740F78BE090E061E070E0FC01DC +:1012A000EE5BFE4F2081E22FEF70F0E042A122952D +:1012B0002F70DB0102C0AA0FBB1F2A95E2F79D0128 +:1012C000242B22A3019758F7DF91CF911F910F9103 +:1012D0000C948E03EF92FF920F931F93CF93DF93A3 +:1012E00000E212E0C3E0EE24E394F12CD5E08C2F71 +:1012F0000E9411098BE090E040E050E0FC01EE5BC1 +:10130000FE4F6081E62FEF70F0E020A130E06295A3 +:101310006F7002C0359527956A95E2F720FD09C0E8 +:101320009701082E02C0220F331F0A94E2F7422BC6 +:10133000532B019718F7F801929182918F0184172E +:10134000950721F051834083D09305018C2F0E9493 +:101350001109C15060F68091050187FD2CC08150B4 +:10136000809305018F3F39F08FE99FE00197F1F7F6 +:1013700000C0000020C080911E0290911F02909337 +:1013800027028093260280911C0290911D02909367 +:1013900025028093240280911A0290911B0290935F +:1013A0002302809322028091180290911902909357 +:1013B0002102809320020E94900381E0DF91CF916F +:1013C0001F910F91FF90EF900895E82FF0E0EE0F3E +:1013D000FF1FE05EFD4F80819181089508950F9376 +:1013E0001F93CF9308E212E0C0E0F801929182913E +:1013F0008F010E945522C80FF2E000321F07A9F7A3 +:101400008C2FCF911F910F9108950E9499238111E4 +:1014100002C00E9475230E94BE23809307033E9A58 +:10142000809171008D7F8093710082E080939000A5 +:101430008AE18093910081E080932A02089580914F +:101440002A02811102C00E94050A10927A021092AB +:101450007902809171008D7F80937100809190005E +:101460008F738093900010923C0210923B02109276 +:10147000730210927402109275021092760210920A +:10148000720210927102E1E5F2E0A1E4B2E0119281 +:101490001192119211921D921D9282E0E137F8078C +:1014A000B1F70895CF92DF92EF92FF920F931F93BF +:1014B000CF93DF9320913B02222309F484C06B0178 +:1014C0007C0180912A02811102C00E94050A01E775 +:1014D00012E0C7E0D0E0A7019601F8019291829155 +:1014E000729162918F010E940929811131C0FE0120 +:1014F000EE0FFF1FEE0FFF1FEF5AFD4F10821182FC +:1015000012821382DE01AA0FBB1FAF5BBD4F119683 +:101510001C921E92C730D105E9F021964481558175 +:10152000668177814083518362837383148215823D +:101530001682178212968D919C91139711969C9307 +:101540008E9313961C921E92129734961296E2CFA7 +:10155000219708F68091790290917A02019797FD80 +:1015600005C090937A028093790204C010927A02A7 +:10157000109279028091790290917A0220917702FB +:10158000309178022817390724F0109278021092CF +:101590007702892BC1F4809171008D7F8093710057 +:1015A000809190008F73809390001092730210923C +:1015B00074021092750210927602109272021092CA +:1015C000710210923B02DF91CF911F910F91FF901A +:1015D000EF90DF90CF9008951F920F920FB60F9269 +:1015E00011244F925F926F927F928F929F92AF924F +:1015F000BF92CF92DF92EF92FF922F933F934F9340 +:101600005F936F937F938F939F93AF93BF93CF938A +:10161000DF93EF93FF9380913B02882309F49BC1F2 +:10162000C0917902D0917A021C161D060CF093C16C +:1016300040902B0250902C0260902D0270902E0250 +:1016400020E030E0A901C301B2010E94B42A1816BB +:101650000CF065C0C130D10509F452C08091770209 +:1016600090917802BE010E94862C7C0190937802B2 +:101670008093770280903D0290903E02A0903F02BE +:10168000B090400220E030E040E85FE3C501B401E3 +:101690000E94A52860933D0270933E0280933F0212 +:1016A00090934002F701EE0FFF1FEE0FFF1FEF5A5E +:1016B000FD4FA301920160817181828193810E941B +:1016C0000D2920E030E040E05EE30E94B82A9B0153 +:1016D000AC01C501B4010E94B42A18168CF4C701EC +:1016E0000196BE010E94862C909378028093770227 +:1016F00010923D0210923E0210923F021092400260 +:10170000E0917702F0917802EE0FFF1FEE0FFF1FBE +:10171000EF5AFD4F6081718182819381D0C0C0906A +:101720007302D0907402E0907502F090760220E08F +:1017300030E0A901C701B6010E9409292197882339 +:1017400009F4A2C0FE01EE0FFF1FEE0FFF1FEF5ABC +:10175000FD4F80809180A280B380A5019401C701D4 +:10176000B6010E94092987FF31C0A501940160E0FC +:1017700070E08CED93EC0E940D2920E030E040E415 +:1017800051E40E940D2920E030E040E05FE30E9438 +:10179000B82A9B01AC0160E070E080E090E40E9418 +:1017A0001B2B9B01AC01C501B4010E94B82A9B010F +:1017B000AC01C701B6010E94092987FF07C0A70134 +:1017C000960160E070E08CED93E439C0A5019401CE +:1017D000C701B6010E94B42A18160CF055C0A50125 +:1017E000940160E070E08CED93E40E940D2920E00C +:1017F00030E040E451E40E940D2920E030E040E078 +:101800005FE30E94B82A9B01AC0160E070E080E0D9 +:1018100090E40E941B2B9B01AC01C501B4010E9406 +:10182000B82A9B01AC01C701B6010E94B42A181660 +:101830005CF5A701960160E070E08CED93EC0E94EE +:101840000D2920E030E040E451E40E940D2920E021 +:1018500030E040E05FE30E94B82A9B01AC0160E009 +:1018600070E080E090E40E941B2B9B01AC01C7015B +:10187000B6010E94B82A6093730270937402809339 +:1018800075029093760213C0FE01EE0FFF1FEE0F5C +:10189000FF1FEF5AFD4F80819181A281B381809318 +:1018A000730290937402A0937502B09376026091D4 +:1018B000730270917402809175029091760220916A +:1018C0002802309129022F3F4FEF340731F02F5F6C +:1018D0003F4F30932902209328020E94940E6B01FF +:1018E0007C0120E034E244EF51E40E94092987FFA3 +:1018F00008C086EFC82E88E2D82E84EFE82E81E457 +:10190000F82E20E030E040E051E4C701B6010E942B +:10191000B82A9B01AC0160E074E284E79BE40E947A +:101920000D296B017C010E947A29709397006093C6 +:1019300096002091060130910701409108015091D5 +:101940000901C701B6010E94B82A0E947A29709342 +:1019500099006093980080913C02882309F433C178 +:10196000C0903702D0903802E0903902F0903A02ED +:1019700020E030E0A901C701B6010E94B42A181680 +:10198000D4F580912802909129028F3F2FEF920782 +:1019900029F001969093290280932802C701B6018D +:1019A0000E94940E20E030E040E051E40E94B82A0A +:1019B0009B01AC0160E074E284E79BE40E940D2986 +:1019C0006B017C010E947A297093970060939600C6 +:1019D00020910601309107014091080150910901C1 +:1019E000C701B6010E94B82A0E947A297093990013 +:1019F0006093980008C01092970010929600109281 +:101A000099001092980060913102709132026F5FDC +:101A10007F4F709332026093310220919600309193 +:101A2000970080E090E0232BF1F0C0919600D091D8 +:101A300097000E94A6296B017C01BE0180E090E026 +:101A40000E94A6299B01AC0160913302709134027F +:101A500080913502909136020E940D2920E03FEFDF +:101A60004FE757E410C00E94A6296B017C0120E0DB +:101A700030EE4FEF54E46091330270913402809164 +:101A80003502909136020E94B82A9B01AC01C70131 +:101A9000B6010E94B42A87FD96C080912F028F5F05 +:101AA00080932F0290E0209103033091040382176A +:101AB0009307A0F080910E03882319F010922F0253 +:101AC0000DC0809171008D7F809371008091900096 +:101AD0008F738093900010923C027DC08091300201 +:101AE000C0912F02811128C0C0900803D090090333 +:101AF000E0900A03F0900B0320E030E0A901C70159 +:101B0000B6010E94B42A1816BCF481E0809330021A +:101B100010923702109238021092390210923A0253 +:101B2000C0923302D0923402E0923502F092360233 +:101B3000C150C0932F0243C010923002109229026C +:101B400010922802E0910503F091060348E0C49F3B +:101B5000E00DF11D112480819181A281B3818093D8 +:101B6000370290933802A0933902B0933A0220E0F2 +:101B700030E040E85EE364817581868197810E9450 +:101B8000B82A6B017C0180910A01682F70E080E027 +:101B900090E00E94A62920E030E048EC52E40E9448 +:101BA0000D299B01AC01C701B6010E94B82A6093C0 +:101BB0003302709334028093350290933602109270 +:101BC0003202109231028091070380FD04C010920E +:101BD0003C0210923B02FF91EF91DF91CF91BF91B8 +:101BE000AF919F918F917F916F915F914F913F91B5 +:101BF0002F91FF90EF90DF90CF90BF90AF909F908C +:101C00008F907F906F905F904F900F900FBE0F90CE +:101C10001F901895CF92DF92EF92FF92CF93DF93B0 +:101C20006B017C01EA0180912A02811102C00E94AD +:101C3000050A8091070380FF46C080917902909148 +:101C40007A0208970CF03FC0809171008D7F8093DD +:101C5000710080913C0281110E941F0A81E08093F3 +:101C60003B02109229021092280220E030E0A901E4 +:101C7000C701B6010E94B42A1816DCF480917902DB +:101C800090917A02FC01EE0FFF1FEE0FFF1FEF5A3B +:101C9000FD4FC082D182E282F382FC01EE0FFF1F72 +:101CA000EF5BFD4FD183C083019690937A028093BE +:101CB0007902809171008260809371008091900020 +:101CC000806880939000DF91CF91FF90EF90DF903C +:101CD000CF90089580910703817008958091070344 +:101CE0008160809307030E94C2230C94EA038091D1 +:101CF00007038E7F809307030C94C22380917B029D +:101D000090E0019666E070E00E94862C80937B0252 +:101D1000089580917B0290E0019766E070E00E9458 +:101D2000862C80937B0208958F929F92AF92BF92F0 +:101D3000CF92DF92EF92FF920F931F93CF93DF9397 +:101D40006B017C01C0912802D0912902BE0180E084 +:101D500090E00E94A6294B015C01A701960160E07A +:101D600070E08CE594E40E940D299B01AC01C50153 +:101D7000B4010E94B82A0E947A2920917B02233064 +:101D800009F473C028F4222351F02130E9F02CC16A +:101D9000243009F4A0C0253009F4E0C025C180E05A +:101DA00090E0A0E0BFE38093060190930701A09329 +:101DB0000801B093090110922B0210922C0210928C +:101DC0002D0210922E0210C110922B0210922C02A2 +:101DD00010922D0210922E026431710540F46A3087 +:101DE000710560F520E030E040E85EE32BC0693C1F +:101DF000710508F0AAC080E090E00E94A62920E0CA +:101E000030E040EA51E40E94A42820E030E044E3BE +:101E100053E40E940D299B01AC010E94B82A20E0E6 +:101E200030E040E05EE30E94B82A9B01AC0160E034 +:101E300070E080E09EE30E94A42844C020E030E0EF +:101E400040E05FE3C701B6010E94B82A6B017C0144 +:101E500080E090E0A0E0BEE380930601909307014C +:101E6000A0930801B0930901BFC010922B021092F9 +:101E70002C0210922D0210922E024AE0469F9001F1 +:101E8000479F300D1124C90168EB7BE00E94722C42 +:101E9000BC016C5D754077FF03C071956195710958 +:101EA000882777FD8095982F0E94A8292EE333EC90 +:101EB0004EE259E30E94B82A20E030E040EC5EE3B5 +:101EC0000E94A52860930601709307018093080182 +:101ED0009093090189C010922B0210922C0210924B +:101EE0002D0210922E02CE0183709927892BE1F0EA +:101EF000BE016170772780E090E00E94A62920E073 +:101F000030E040E05EE30E94B82A20E030E040E4A8 +:101F10005FE30E94A52860930601709307018093F8 +:101F20000801909309010CC080E090E0A0E0BFE3BD +:101F30008093060190930701A0930801B0930901D3 +:101F4000C770DD27CD2B09F04FC01092060110920B +:101F50000701109208011092090146C010922B024D +:101F600010922C0210922D0210922E0200E010E02E +:101F700020E03FE30093060110930701209308013E +:101F8000309309016739710578F180E090E00E9493 +:101F9000A62920E030E047E153E40E94A42820E095 +:101FA00030E04AE754E40E940D2920E030E048E4A4 +:101FB00052E40E94B82A20E030E040EA51E40E9456 +:101FC000EA290E947529660F771F660F771FFB01AC +:101FD000EE5AFE4F2081318142815381C701B60103 +:101FE0000E94B82A6B017C01C701B601DF91CF9135 +:101FF0001F910F91FF90EF90DF90CF90BF90AF9027 +:102000009F908F90089580918C020895CF93DF93D5 +:1020100000D01F92CDB7DEB79C01809113038430AE +:1020200019F593E099833B832A839093E9008FEF1E +:102030009091E800815095FD06C095ED9A95F1F7D5 +:1020400000008111F5CF8091E80085FF0DC040E0D0 +:1020500050E063E070E0CE0101960E94671280912B +:10206000E8008E778093E8000F900F900F90DF913B +:10207000CF910895CF93DF9300D01F92CDB7DEB7F5 +:1020800020911303243021F522E029839B838A8346 +:1020900083E08093E9008FEF9091E800815095FDF7 +:1020A00006C095ED9A95F1F700008111F5CF80916A +:1020B000E80085FF0DC040E050E063E070E0CE0135 +:1020C00001960E9467128091E8008E778093E80065 +:1020D0000F900F900F90DF91CF91089520911303EF +:1020E0002430F1F422E02093E9002FEF3091E80052 +:1020F000215035FD06C035ED3A95F1F7000021116C +:10210000F5CF2091E80025FF0BC040E050E065E0EE +:1021100070E00E9467128091E8008E778093E8005B +:102120000895CF93DF93EC0190911303943009F05D +:1021300046C0809115018823D9F08091160188232B +:10214000B9F09093E9008FEF9091E800815095FDF0 +:1021500006C095E19A95F1F700008111F5CF8091C5 +:10216000E80085FF2CC040E050E060E170E017C05F +:1021700081E08093E9008FEF9091E800815095FD18 +:1021800006C095ED9A95F1F700008111F5CF809189 +:10219000E80085FF14C040E050E068E070E0CE0148 +:1021A0000E9467128091E8008E778093E80080E1BA +:1021B000FE01ACE7B2E001900D928A95E1F7DF9164 +:1021C000CF91089580911203811109C00E94FC13E0 +:1021D0000E9459148091E20084608093E200089587 +:1021E000109212030895089508950C94A02242E0DD +:1021F00061EC81E00E94761342E061EC82E00E9493 +:10220000761342E061EC83E00E94761342E161ECD8 +:1022100084E00C94761380911503833009F455C043 +:1022200030F4813071F0823009F48EC008958A3024 +:1022300009F47AC08B3009F460C0893009F09CC081 +:1022400020C080911403813A09F096C08091E80083 +:10225000877F8093E8008091180390911903892B60 +:1022600021F460E18CE792E003C060E080E090E060 +:1022700070E00E94B2128091E8008B778093E800B2 +:10228000089580911403813209F076C0809118037B +:1022900090911903009719F0039709F06DC0809190 +:1022A000E800877F8093E8008091E80082FD05C008 +:1022B000809113038111F8CF5FC08091F10080936A +:1022C0008C028091E8008B7753C080911403813A8F +:1022D00009F052C08091180390911903892B09F0DD +:1022E0004BC08091E800877F8093E8008091E800F0 +:1022F00080FFFCCF8091150136C08091140381329C +:10230000D9F58091180390911903892BA9F5809133 +:10231000E800877F8093E8000E94AB13809116034A +:10232000809315010C94E11B80911403813221F5F7 +:102330008091E800877F8093E8000E94AB13809132 +:10234000170380938D02089580911403813AA1F4BC +:102350008091E800877F8093E8008091E80080FF0B +:10236000FCCF80918D028093F1008091E8008E7700 +:102370008093E8000C94AB13089584B7877F84BFE3 +:1023800088E10FB6F89480936000109260000FBE51 +:1023900090E080E80FB6F89480936100909361001C +:1023A0000FBE0E944E170E94FC130E945914809188 +:1023B000E20084608093E20078940E94DF160E941D +:1023C00050178BE091E00E94FA168091130385303C +:1023D00069F40E946122809111038823B1F30E9465 +:1023E0008F22882391F30E945112EFCF0E94581739 +:1023F000ECCF292F332723303105C9F064F4213085 +:10240000310581F02230310509F043C08DE690E0BE +:1024100020EB33E042C021323105F1F022323105A8 +:1024200041F137C082E190E02DE134E036C09927D8 +:102430008130910541F08230910541F0892B49F5B9 +:10244000ECEAF3E005C0EEE7F3E002C0E4E5F3E018 +:10245000849190E09F0121C06430D8F4E62FF0E031 +:10246000EE0FFF1FE255FE4F2081318189E090E0A1 +:1024700014C0643070F470E0FB01EE0FFF1FEA55EA +:10248000FE4F20813181FB01EE55FE4F808190E0AF +:1024900004C080E090E020E030E0FA013183208346 +:1024A000089580E189BD82E189BD09B400FEFDCFB8 +:1024B0008091D8008F7D8093D8008091E000826069 +:1024C0008093E0008091E00081FDFCCF0895CF92E1 +:1024D000DF92EF92FF920F931F93CF93DF93EC0164 +:1024E0008B016A010E94CA13811133C0C114D10447 +:1024F00039F0F60180819181081B190BC80FD91F93 +:10250000E12CF12C0115110519F18091E80085FDF0 +:1025100016C08091E8008E778093E800C114D10442 +:1025200049F0F60180819181E80EF91EF182E08286 +:1025300085E00FC00E94CA13882321F30AC0899145 +:102540008093F10001501109FFEFEF1AFF0ADACF73 +:1025500080E0DF91CF911F910F91FF90EF90DF907E +:10256000CF90089520911A0330911B032617370747 +:1025700048F06115710539F42091E8002E77209319 +:10258000E80001C0B90140E061157105A9F1209191 +:102590001303222309F443C0253009F442C02091DB +:1025A000E80023FD40C02091E80022FD32C02091C8 +:1025B000E80020FFE9CF4091F3002091F20030E0E5 +:1025C000342BFC01CF016115710559F0283031051C +:1025D00040F481918093F100615071092F5F3F4F6A +:1025E000F1CF41E02830310509F040E02091E800CA +:1025F0002E772093E800C8CF4111C9CF0AC080913F +:102600001303882361F0853061F08091E80083FD39 +:102610000AC08091E80082FFF2CF80E0089582E056 +:10262000089583E0089581E0089520911A03309180 +:102630001B032617370748F06115710539F42091FF +:10264000E8002E772093E80001C0B901FC0120E0EA +:102650006115710591F180911303882309F440C03D +:10266000853009F43FC08091E80083FD3DC0809132 +:10267000E80082FD2FC08091E80080FFE9CF209123 +:10268000F3008091F20090E0922B6115710559F0F2 +:102690008830910540F424912093F10031966150E7 +:1026A00071090196F2CF21E0089709F020E08091AE +:1026B000E8008E778093E800CBCF2111CCCF0AC001 +:1026C00080911303882361F0853061F08091E800E8 +:1026D00083FD0AC08091E80082FFF2CF80E0089578 +:1026E00082E0089583E0089581E00895982F97305F +:1026F00058F59093E900981739F07091EC0020910B +:10270000ED005091F00003C0242F762F50E021FF00 +:1027100019C03091EB003E7F3093EB003091ED001B +:102720003D7F3093ED003091EB0031603093EB0052 +:102730007093EC002093ED005093F0002091EE0098 +:1027400027FF07C09F5FD3CF8F708093E90081E0A0 +:10275000089580E008958091140387FF11C080914F +:10276000E80082FD05C0809113038111F8CF11C0EC +:102770008091E8008B770BC080911303882349F088 +:102780008091E80080FFF8CF8091E8008E778093F9 +:10279000E80008952091E4003091E50095E640912D +:1027A000EC00842F817040FF22C08091E80080FD02 +:1027B0001CC080911303882391F0853091F08091A3 +:1027C000EB0085FD10C04091E4005091E5004217F8 +:1027D000530729F39A01915011F784E0089582E09C +:1027E000089583E0089581E0089580E00895409180 +:1027F000E80042FFDECF08950E946A140E9472141E +:10280000E0EEF0E0808181608083E8EDF0E080819F +:102810008F77808319BCA7EDB0E08C918E7F8C936D +:1028200080818F7E80831092120308950F931F93EF +:10283000CF93DF930E946A140E947214C8EDD0E017 +:1028400088818F77888388818068888388818F7D5D +:10285000888319BC1092130310920F031092110376 +:102860001092100300EE10E0F80180818B7F8083CE +:1028700088818160888342E060E080E00E94761376 +:10288000E1EEF0E080818E7F8083E2EEF0E08081F7 +:1028900081608083808188608083F80180818E7F61 +:1028A0008083888180618883DF91CF911F910F9110 +:1028B0000895E8EDF0E080818F7E8083E7EDF0E021 +:1028C00080818160808384E082BF81E080931203F5 +:1028D0000C941614E8EDF0E080818E7F80831092D6 +:1028E000E20008951092DA001092E10008951F921C +:1028F0000F920FB60F9211242F933F934F935F9334 +:102900006F937F938F939F93AF93BF93EF93FF93B7 +:102910008091E10082FF0BC08091E20082FF07C03E +:102920008091E1008B7F8093E1000E94DE16809110 +:10293000DA0080FF1FC08091D80080FF1BC080910B +:10294000DA008E7F8093DA008091D90080FF0DC07D +:1029500080E189BD82E189BD09B400FEFDCF81E03F +:10296000809313030E94E21005C019BC1092130358 +:102970000E94F0108091E10080FF19C08091E20078 +:1029800080FF15C08091E2008E7F8093E2008091ED +:10299000E20080618093E2008091D80080628093A1 +:1029A000D80019BC85E0809313030E94F410809135 +:1029B000E10084FF30C08091E20084FF2CC080E100 +:1029C00089BD82E189BD09B400FEFDCF8091D800A8 +:1029D0008F7D8093D8008091E1008F7E8093E1000D +:1029E0008091E2008F7E8093E2008091E20081601E +:1029F0008093E20080910F03882311F084E007C0E8 +:102A00008091E30087FD02C081E001C083E08093F4 +:102A100013030E94F5108091E10083FF29C080918B +:102A2000E20083FF25C08091E100877F8093E10071 +:102A300082E08093130310920F038091E1008E7F58 +:102A40008093E1008091E2008E7F8093E20080918C +:102A5000E20080618093E20042E060E080E00E945A +:102A600076138091F00088608093F0000E94F3104C +:102A7000FF91EF91BF91AF919F918F917F916F9156 +:102A80005F914F913F912F910F900FBE0F901F902C +:102A900018951F920F920FB60F9211242F933F9308 +:102AA0004F935F936F937F938F939F93AF93BF9356 +:102AB000CF93DF93EF93FF93C091E900CF708091A4 +:102AC000EC00D82FD17080FDD0E81092E900809101 +:102AD000F000877F8093F00078940E948D1510920B +:102AE000E9008091F00088608093F000CD2BCF70DA +:102AF000C093E900FF91EF91DF91CF91BF91AF912A +:102B00009F918F917F916F915F914F913F912F9105 +:102B10000F900FBE0F901F9018951F93CF93DF93C8 +:102B2000CDB7DEB7AA970FB6F894DEBF0FBECDBF04 +:102B3000E4E1F3E088E08E0F9091F10091938E1321 +:102B4000FBCF0E940B118091E80083FF1FC1809191 +:102B5000140390911503492F50E04A30510508F0B5 +:102B600015C1FA01EA5AFF4F0C949A2C803881F073 +:102B7000823809F00BC1809118038F708093E900AF +:102B80008091EB0085FB882780F91092E90006C050 +:102B90008091100390911103911182609091E8004F +:102BA000977F9093E8008093F1001092F100C8C0E5 +:102BB000282F2D7F09F0EAC0882319F0823061F0B8 +:102BC000E5C080911603813009F0E0C0933009F030 +:102BD00080E0809311032BC080911603811127C0E0 +:102BE000809118038F7009F4D1C08093E90020917F +:102BF000EB0020FF1CC0933021F48091EB00806239 +:102C000014C09091EB0090619093EB0021E030E0D4 +:102C1000A90102C0440F551F8A95E2F74093EA00CC +:102C20001092EA008091EB0088608093EB00109294 +:102C3000E9008091E800877F86C08111A7C01091CC +:102C400016031F778091E3008078812B8093E30047 +:102C50008091E800877F8093E8000E94AB13809109 +:102C6000E80080FFFCCF8091E30080688093E30060 +:102C7000111102C082E001C083E08093130386C07B +:102C80008058823008F082C080911603909117031B +:102C90008C3D53E0950779F583E08A838AE2898346 +:102CA0004FB7F894DE01139620E03EE051E2E32FA7 +:102CB000F0E050935700E49120FF03C0E295EF70DD +:102CC0003F5FEF708E2F90E0EA3010F0C79601C0A2 +:102CD000C0968D939D932F5F243149F74FBF80910C +:102CE000E800877F8093E8006AE270E0CE010196F9 +:102CF0000E94B21214C0AE014F5F5F4F6091180383 +:102D00000E94F911BC01009709F440C09091E800BD +:102D1000977F9093E80089819A810E941513809192 +:102D2000E8008B778093E80031C0803879F5809196 +:102D3000E800877F8093E80080910F038093F10083 +:102D40008091E8008E778093E8000E94AB131EC04C +:102D500081111CC0909116039230C0F48091E8005C +:102D6000877F8093E80090930F030E94AB138091BC +:102D70000F03811106C08091E30087FD02C081E04E +:102D800001C084E0809313030E94F7108091E80053 +:102D900083FF0AC08091E800877F8093E8008091DC +:102DA000EB0080628093EB00AA960FB6F894DEBF2A +:102DB0000FBECDBFDF91CF911F9108950895CF939E +:102DC000809113038823A1F0C091E900CF70909106 +:102DD000EC00892F817090FD80E8C82B1092E900EB +:102DE0008091E80083FD0E948D15CF70C093E900AB +:102DF000CF91089590939302809392020895E09169 +:102E00009202F0919302309721F00190F081E02D31 +:102E1000099480E00895E0919202F0919302309736 +:102E200021F00280F381E02D09940895E09192024F +:102E3000F0919302309721F00480F581E02D099400 +:102E4000089520919002309191028217930771F0BA +:102E50009093910280939002E0919202F0919302FC +:102E6000309721F00680F781E02D09940895209194 +:102E70008E0230918F028217930771F090938F0228 +:102E800080938E02E0919202F0919302309721F0AC +:102E90000084F185E02D0994089508950C944D1750 +:102EA0000E94D4220E9425090E945A230C940928CA +:102EB0005F926F927F928F929F92AF92BF92CF92CA +:102EC000DF92EF92FF920F931F93CF93DF9300D087 +:102ED00000D01F92CDB7DEB70E946A099DE9C92EC6 +:102EE00092E0D92E03E010E0AA24A394B12C502E36 +:102EF000802F0E94E5094C01F601729062906F01EB +:102F00006826792661147104A1F40150110978F73B +:102F10008FEF89838A831B820E94DD228160782F54 +:102F20009D838C8349815A816B818D810E94081811 +:102F300038C08091F20281FD0E94EE092BE030E062 +:102F40007501022E02C0EE0CFF1C0A94E2F7C701C5 +:102F500086219721892B09F129835A828E209F206F +:102F600091E0892809F490E09B830E94DD22816032 +:102F7000782F9D838C8349815A816B818D810E943A +:102F80000818000F111FF801EB56FD4F8081918149 +:102F9000E826F926F182E08204C02150310980F64A +:102FA000B4CF0E944125109194020E94FF16181779 +:102FB000D1F00E94FF16809394020F900F900F9013 +:102FC0000F900F90DF91CF911F910F91FF90EF9095 +:102FD000DF90CF90BF90AF909F908F907F906F9039 +:102FE0005F900C940F090F900F900F900F900F901F +:102FF000DF91CF911F910F91FF90EF90DF90CF90D5 +:10300000BF90AF909F908F907F906F905F9008954A +:10301000CF93DF93CDB7DEB72B970FB6F894DEBF13 +:103020000FBECDBF4F83588769877A878B87DE01B4 +:10303000119686E0FD0111928A95E9F785E0FE017F +:10304000379601900D928A95E1F749815A816B81FB +:103050007C818D819E810E947F1E2B960FB6F894F5 +:10306000DEBF0FBECDBFDF91CF910895CF938823F0 +:1030700009F4C2C0C82F823859F40E94FF1681FD9E +:10308000BBC089E30E9459210E94262289E30CC01B +:10309000833879F40E94FF1680FDAEC083E50E945C +:1030A00059210E94262283E50E949B21CF910C94F6 +:1030B0002622843859F40E94FF1682FD9DC087E4C1 +:1030C0000E9459210E94262287E4EECF8CEF8C0FBC +:1030D000813A48F48C2F0E94712781118DC08C2F6A +:1030E0000E945921E3CF80E28C0F883048F4C770EA +:1030F00081E001C0880FCA95EAF70E94DF21D6CF90 +:103100008BE58C0F833078F4C53A29F0C63A31F05C +:1031100083E890E005C081E890E002C082E890E09A +:10312000CF910C94211788E58C0F833108F064C08F +:10313000C83A39F1C93A41F1CA3A49F1CB3A51F1A9 +:10314000CC3A59F1CD3A61F1C03B69F1CE3A71F117 +:10315000CF3A79F1C13B81F1C23B89F1C33B91F197 +:10316000C43B99F1C53BA1F1C63BA9F1C73BB1F105 +:10317000C83BB9F1C93BC1F1CA3BC9F180E090E05D +:1031800038C082EE90E035C089EE90E032C08AEE21 +:1031900090E02FC085EB90E02CC086EB90E029C03A +:1031A00087EB90E026C08CEC90E023C08DEC90E0A3 +:1031B00020C083E891E01DC08AE891E01AC082E94E +:1031C00091E017C084E991E014C081E292E011C05F +:1031D00083E292E00EC084E292E00BC085E292E0CE +:1031E00008C086E292E005C087E292E002C08AE26F +:1031F00092E0CF910C943717CF910895882309F46A +:103200004BC0823859F40E94FF1681FF45C089E304 +:103210000E9459210E94262289E30CC0833871F450 +:103220000E94FF1680FF38C083E50E9459210E944A +:10323000262283E50E949B210C942622843859F48F +:103240000E94FF1682FF28C087E40E9459210E9435 +:10325000262287E4EFCF9CEF980F913A58F390E243 +:10326000980F983050F4877091E001C0990F8A95BB +:10327000EAF7892F0E94E521DFCF9BE5980F933075 +:1032800020F480E090E00C942117885A833120F4D8 +:1032900080E090E00C9437170895882321F00E9475 +:1032A000DF210C9426220895882321F00E94E52135 +:1032B0000C94262208957F928F929F92AF92BF9294 +:1032C000CF92DF92EF92FF920F931F93CF93DF93F2 +:1032D0001F92CDB7DEB77C01C62E772EFC0105818B +:1032E00002950F70128111110E94FC210E9452213F +:1032F000882379F0112369F080E28C0D883048F042 +:1033000082E00E943B210E94522191E0D82ED926D2 +:1033100001C0D12CE72DE295EF70F0E0E05AFF4FAD +:103320000C949A2C872D807F072D0F70882311F025 +:103330000295007F112389F0002309F499C180E2EE +:103340008C0D883020F4802F0E94DF2103C0802F55 +:103350000E94EF210E9426228BC18C2D0E94FE1814 +:10336000002309F4C3C180E28C0D883020F4802F43 +:103370000E94E52103C0802F0E94F5210E94262291 +:10338000B5C1872D807F972D9F70803211F4892FD2 +:1033900003C0892F8295807FCC2021F0F1E0CF16E9 +:1033A000A1F01DC0112339F0002319F1013009F5F6 +:1033B0000E940F229BC1002319F0013009F496C12D +:1033C00089830E941222898110C1112321F00630C5 +:1033D00008F08CC10EC0053008F088C106C1112369 +:1033E00059F0002331F0F701958190FF41C19F70A2 +:1033F00095830E944D197AC1002309F4F6C03EC19D +:10340000872D86958695837090E0009719F0019737 +:1034100061F06CC1112321F08C2D972D937002C0A7 +:1034200080E090E00E94211761C1112321F08C2DD2 +:10343000972D937002C080E090E00E94371756C12C +:103440008C2D112319F00E94492402C00E94B1243E +:103450000E9436254BC1872D837009F052C011118F +:1034600045C18C2D829586958770880F880F9C2D7D +:103470009F70892E912CA12CB12C082E04C0880C91 +:10348000991CAA1CBB1C0A94D2F7C4FE14C00FE0FE +:1034900010E020E030E0B901A80104C0440F551F3E +:1034A000661F771F8A95D2F7CB01BA016095709598 +:1034B0008095909503C060E070E0CB01272D2695A4 +:1034C0002695237030E02230310569F02330310534 +:1034D00089F0682979298A299B292130310571F0E1 +:1034E0000E94C71F03C1682979298A299B290E9444 +:1034F000E31FFCC00E94C71FC501B4010E94AB1F9F +:10350000F5C0112319F0872D817001C0869588239D +:1035100009F4ECC08C2D829586958770880F880FF2 +:103520009C2D9F70892E912CA12CB12C082E04C0AB +:10353000880C991CAA1CBB1C0A94D2F7C4FE14C0A8 +:103540000FE010E020E030E0B901A80104C0440F12 +:10355000551F661F771F8A95D2F7CB01BA01609578 +:1035600070958095909503C060E070E0CB01272DA9 +:10357000269526952370422F50E04230510569F080 +:103580004330510589F0682979298A299B294130DE +:10359000510571F00E94A120A9C0682979298A29C2 +:1035A0009B290E94BD20A2C00E94A120C501B40198 +:1035B0000E9485209BC08C2D90E0FC01E05EF1090B +:1035C000E531F10508F050C0E059FF4F0C949A2CFA +:1035D0000C2D0F70872D8F71112321F00E941E205A +:1035E000802F07CF0E943F20802F0E9454197EC059 +:1035F000112341F0053008F079C0872D8F710E94AA +:10360000642074C0063008F071C0F7CF112339F080 +:10361000872D8F710E941E2069C01123C9F3872D49 +:103620008F710E943F2062C0112329F0872D8F7176 +:103630000E9409205BC00E94FF1F58C0112351F057 +:10364000172D1F71812F0E941E2063E0812F0E9481 +:1036500032214CC081E00E943B21023008F446C078 +:1036600082E00E943B2142C0112331F0002381F20D +:103670008C2D0E9436183AC0002389F28C2D0E94AE +:10368000FE1834C0472D4F706C2DC7010E94ED0508 +:103690000E94231F2BC0111129C0472D4F7050E0ED +:1036A00042305105B9F04CF44115510581F04130DB +:1036B0005105E1F40E94312819C04330510569F0E9 +:1036C0004430510599F48C2D0E9483280FC00E942C +:1036D0001A280CC00E944D2809C00E94602806C00C +:1036E000472D4F706C2DC7010E94F005DD20F9F0C9 +:1036F0000E942E2180FD1BC0F70112820E9428210A +:103700000E941E20C7010E94A61B0E9428210F9024 +:10371000DF91CF911F910F91FF90EF90DF90CF90AD +:10372000BF90AF909F908F907F900C943F200F9010 +:10373000DF91CF911F910F91FF90EF90DF90CF908D +:10374000BF90AF909F908F907F9008950F931F939D +:10375000CF93DF93EC01888199812B813C81232BCE +:10376000B9F09F3F11F48F3F99F0CE010E94EC0316 +:10377000882371F0688179818A810E9424218C01DB +:103780000E94D9200E94A01FB801CE010E945B199F +:10379000DF91CF911F910F9108950E94FC210E940B +:1037A0000C220E94D1210E9426220E94E7250E941D +:1037B000362580E090E00E94211780E090E00C9494 +:1037C00037170E94EC210C94CD1B0E941921292F40 +:1037D00022952F7030E02C3031054CF42A30310521 +:1037E0006CF42250310922303105A8F407C02C3086 +:1037F000310569F02F30310551F00DC0803F69F07F +:1038000018F4803E40F409C0843F29F406C093FBBD +:10381000882780F9089580E0089581E00895CF9386 +:10382000DF9300D000D01F92CDB7DEB70F900F907E +:103830000F900F900F90DF91CF910895CF93DF936A +:1038400000D000D000D0CDB7DEB726960FB6F894E2 +:10385000DEBF0FBECDBFDF91CF9108951F93CF93F1 +:10386000DF93C0919D0216E080919E02C81799F0E7 +:10387000D0E01C9FF0011D9FF00D1124E156FD4F7B +:103880004081518162817381848195810E941E1CD7 +:103890002196C770E9CFDF91CF911F910895409194 +:1038A000CF025091D0026091D1027091D2028091EA +:1038B000D3029091D4020C941E1C8091D402829564 +:1038C0008F7009F054C08091D102882309F44FC051 +:1038D00080919D02A0919E026091CF027091D002D2 +:1038E0004091D2025091D302B6E08A1709F43FC04A +:1038F00090E041155105C1F17F3F11F46F3FA1F1F7 +:10390000B89FF001B99FF00D1124E156FD4F2181C0 +:1039100072132AC02081621327C02281211124C082 +:10392000238134812417350710F421503109241BD9 +:10393000350B283C3105C0F42091D4022F70206152 +:103940002093D40226E0289FF001299FF00D112436 +:10395000EC55FD4F80818F70806180838FEC92E009 +:103960000E94A61B0C942E1C01968770BECF089552 +:10397000CF92DF92EF92FF920F931F93CF93DF933B +:10398000CDB7DEB762970FB6F894DEBF0FBECDBFDE +:103990008C0185E0F801DE011D9601900D928A955B +:1039A000E1F7D8014C9111965C91119712966C91A8 +:1039B00012971396CD90DC9014973091CF027091AE +:1039C000D0028091D2029091D302009709F46BC18A +:1039D0007F3F19F43F3F09F466C1E090D102EE2029 +:1039E00009F4C0C02091D402C816D90628F0F60107 +:1039F000E81BF90BCF0104C0809590958C0D9D1D9F +:103A0000FF24F394883C910578F0F12C207F09F095 +:103A1000C6C07C2DD98AC88A89890E940F1C8FEC68 +:103A200092E00E94A61BB1C0822F807F09F046C0A1 +:103A3000751314C0341312C0611110C02F702061AF +:103A40002093D4020E944F1C8FEC92E00E94A61B90 +:103A50008091D402D80115968C932EC0CD2819F1EF +:103A60005F3F11F44F3FF9F0F62E61111CC08091B9 +:103A70009D0220919E0236E0821709F45AC090E020 +:103A8000389FF001399FF00D1124E156FD4F7181EF +:103A9000571306C07081471303C07281711103C0B0 +:103AA00001968770E9CFF62E662309F418C180913C +:103AB000D40281608093D402F12C11C1751308C027 +:103AC000341306C0611104C08091D402D801C3C070 +:103AD0004D875E878D859E856A8B0E94E51B6A896E +:103AE0008823E1F16623D1F12091D402822F8295BF +:103AF0008F7090E0029774F08091CF029091D00285 +:103B000098878F831986DB86CA862C87CE01079615 +:103B10000E94A61B86E0F801AFECB2E001900D9286 +:103B20008A95E1F70E945D1C0E944F1CFF24F394CC +:103B3000D6C04D875E878D859E850E941921292FCD +:103B400022952F7030E0223031050CF0BCC09F7000 +:103B500009F0B6C0805E883008F4C1C0C8010E9478 +:103B6000A61BE4CFC816D90608F453C0F601E81B1B +:103B7000F90BCF01883C910508F450C0F12C7C2D45 +:103B8000D98AC88A89890E940F1CEFECF2E086E08E +:103B9000DF011D928A95E9F70E944F1CA0C07513A2 +:103BA00014C0341312C0611110C08091D402F80106 +:103BB0008583C8010E94A61B86E0EFECF2E0DF01DE +:103BC0001D928A95E9F7FE2C8AC04D875E878D8508 +:103BD0009E856A8B0E94E51B6A89882309F4BECF03 +:103BE000662309F4BBCF2091D402822F82958F7077 +:103BF00090E002970CF48ECF8091CF029091D0028A +:103C00009A8389831B82DD82CC822E83CE0101962A +:103C10007FCF809590958C0D9D1DACCFF62E6623A1 +:103C200009F49CCF75132EC034132CC02091D402FC +:103C300020FD1FC0822F82958F70D9F0D801159674 +:103C40002C9315978F3049F08F5F982F9295907F26 +:103C5000822F8F70892B15968C93C8010E94A61B0A +:103C600086E0F801AFECB2E001900D928A95E1F7A1 +:103C700093CF86E0F801AFECB2E001900D928A9507 +:103C8000E1F72DC04D875E878D859E850E94E51BDF +:103C9000811140CF8091D40281608093D402C80109 +:103CA0000E94A61B1CC0662309F458CF4D875E876F +:103CB0008D859E850E94E51B882309F44FCF2ACF6E +:103CC000811148CF0CC0243031050CF047CF9F70D4 +:103CD00009F440CFF8019581907F09F03BCF8F2DFB +:103CE00062960FB6F894DEBF0FBECDBFDF91CF91C5 +:103CF0001F910F91FF90EF90DF90CF9008951F9349 +:103D0000CF93DF93CDB7DEB72C970FB6F894DEBF15 +:103D10000FBECDBF4F83588769877A878B879C8773 +:103D2000CE0107960E94B81C882369F08F81988580 +:103D30002A853B85232BF1F19F3F09F063C08F3F1C +:103D400009F060C037C086E0FE013796DE011196AB +:103D500001900D928A95E1F76F817885EA85FB8560 +:103D6000309741F17F3F11F46F3F21F120919E0286 +:103D700030E0C90101968770992740919D0250E07B +:103D80008417950709F447C069837A83FD83EC8320 +:103D900096E0929FD001939FB00D1124A156BD4F84 +:103DA000FE01319601900D929A95E1F780939E0263 +:103DB0000E942E1C16E080919D0290919E02891710 +:103DC000C1F1189FC001112481569D4F0E94B81C5B +:103DD000882379F1E0919D021E9FF0011124E156A4 +:103DE000FD4F4081518162817381848195810E9460 +:103DF0001E1C80919D0290E0019687709927809308 +:103E00009D02D9CF4F81588569857A858B859C85A0 +:103E10000E941E1CCFCF0E94E11B10929E021092A6 +:103E20009D02EFECF2E086E0DF011D928A95E9F752 +:103E3000C1CF2C960FB6F894DEBF0FBECDBFDF9179 +:103E4000CF911F910895EF92FF920F931F93CF93FD +:103E5000DF938C01009709F46CC0F12CEE24E394FD +:103E6000E8012196F8018491843740F4843008F009 +:103E700051C0813081F0823019F15BC0853709F47F +:103E800044C0A8F19CE7980F903708F052C08F7794 +:103E90000E94FE1841C00E5F1F4FFE01C49180E2D8 +:103EA0008C0F883048F4C7708E2D01C0880FCA95DA +:103EB000EAF70E94FF2114C08C2F0E9436182DC0F3 +:103EC0000E5F1F4FFE01C49180E28C0F883058F4C2 +:103ED000C7708E2D01C0880FCA95EAF70E9405228F +:103EE0000E9426221AC08C2F0E94FE1816C00E5F58 +:103EF0001F4FFE01C491CC2381F08FE99FE0019711 +:103F0000F1F700C00000C150F6CF0E5F1F4FFE0159 +:103F1000F49003C00E9436188E018F2D882309F477 +:103F20009FCFEFE9FFE03197F1F700C0000081502B +:103F3000F5CFDF91CF911F910F91FF90EF900895F2 +:103F400008956093D9027093DA028093DB02909314 +:103F5000DC020C94CD1B0F931F930091D90210919A +:103F6000DA022091DB023091DC02DC01CB01802BF4 +:103F7000912BA22BB32B8093D9029093DA02A093BA +:103F8000DB02B093DC021F910F910C94CD1B0F93B9 +:103F90001F930091D9021091DA022091DB02309137 +:103FA000DC02DC01CB0180239123A223B323809385 +:103FB000D9029093DA02A093DB02B093DC021F9146 +:103FC0000F910C94CD1B0F931F930091D902109168 +:103FD000DA022091DB023091DC02DC01CB01802788 +:103FE0009127A227B3278093D9029093DA02A09356 +:103FF000DB02B093DC021F910F910C94CD1B109249 +:10400000D5021092D6021092D7021092D8020C94C8 +:10401000CD1B41E050E060E070E004C0440F551F4C +:10402000661F771F8A95D2F74093D5025093D60228 +:104030006093D7027093D8020C94CD1B41E050E0FE +:1040400060E070E004C0440F551F661F771F8A951B +:10405000D2F78091D5029091D602A091D702B0916B +:10406000D802482B592B6A2B7B2B4093D5025093B7 +:10407000D6026093D7027093D8020C94CD1B41E016 +:1040800050E060E070E004C0440F551F661F771FCA +:104090008A95D2F740955095609570958091D5029C +:1040A0009091D602A091D702B091D802482359230B +:1040B0006A237B234093D5025093D6026093D702A4 +:1040C0007093D8020C94CD1B41E050E060E070E0AA +:1040D00004C0440F551F661F771F8A95D2F7809141 +:1040E000D5029091D602A091D702B091D80248276C +:1040F00059276A277B274093D5025093D6026093B5 +:10410000D7027093D8020C94CD1B0F931F9300918C +:10411000D5021091D6022091D7023091D802DC014D +:10412000CB01802B912BA22BB32B8093D5029093A4 +:10413000D602A093D702B093D8021F910F910C948E +:10414000CD1B0F931F930091D5021091D6022091A1 +:10415000D7023091D802DC01CB0180239123A22326 +:10416000B3238093D5029093D602A093D702B09345 +:10417000D8021F910F910C94CD1B0F931F930091A8 +:10418000D5021091D6022091D7023091D802DC01DD +:10419000CB0180279127A227B3278093D502909344 +:1041A000D602A093D702B093D8021F910F910C941E +:1041B000CD1B0895CF92DF92EF92FF920F931F9342 +:1041C000CF93DF938C01C090D902D090DA02E090B7 +:1041D000DB02F090DC028091D5029091D602A09192 +:1041E000D702B091D802C82AD92AEA2AFB2ACFE1FD +:1041F000D0E0D701C6010C2E04C0B695A7959795BF +:1042000087950A94D2F780FF06C0B8018C2F0E94D0 +:104210007508019721F4219760F780E001C08C2F89 +:10422000DF91CF911F910F91FF90EF90DF90CF9092 +:104230000895CF93DF93EC010E94DA20BE010E9423 +:104240007508DF91CF910895CB010E94192108953F +:104250008091DD0285958595859508958091DD0293 +:104260008770089598E0899F90011124262B209350 +:10427000DD020C941E202091DD0280958223809324 +:10428000DD02982F977069F430E0482F552747FDDD +:1042900050952417350729F08595859585950C94BB +:1042A0003F2008959091DD02977081E009F480E04D +:1042B000089590911501992321F090911601911183 +:1042C00009C02091170130911801F90132969FEF32 +:1042D00040E01FC0982F9695969596959F3050F583 +:1042E000E0911701F0911801E90FF11D877021E0AD +:1042F00030E0A90102C0440F551F8A95E2F7CA01B8 +:104300009181892B818308959F3F39F04F5F4E3013 +:1043100041F051915813F8CF0DC05111F7CF942FA0 +:10432000F5CF9F3F39F0F901E90FF11D97FDFA959F +:1043300082830895089590911501992321F0909119 +:104340001601911109C02091170130911801F9014E +:104350003296205F3F4F1FC0982F96959695969561 +:104360009F30F0F4E0911701F0911801E90FF11D71 +:10437000877021E030E0A90102C0440F551F8A95E3 +:10438000E2F7CA018095918189238183089531964E +:10439000E217F30729F090819813F9CF1082F7CF35 +:1043A000089581E090E0E0911701F0911801E80F85 +:1043B000F91F1082019680319105A9F70895909117 +:1043C000F102892B8093F102089580959091F1027A +:1043D00089238093F10208951092F102089590913B +:1043E000F002892B8093F002089580959091F0025D +:1043F00089238093F00208951092F002089590911D +:10440000EF02892B8093EF02089580959091EF023F +:1044100089238093EF0208951092EF02089580930C +:10442000DE0208951092DE020895809117019091A6 +:104430001801FC0131969C01205F3F4F80E0919173 +:1044400091118F5FE217F307D1F70895E0911701FB +:10445000F09118018091F1028083E0911701F091B1 +:10446000180190818091F002892B8083E0911701DF +:10447000F091180190818091EF02892B80838091C7 +:10448000DE02882361F0E0911701F091180190811C +:10449000892B80830E94152281111092DE02809167 +:1044A0001701909118010C940B1720E0009739F038 +:1044B000AC0141505109842395232F5FF7CF822F00 +:1044C000089580911303843039F11092F30220E4AF +:1044D00088E190E00FB6F894A895809360000FBE35 +:1044E0002093600080E00E94F00280E00E940F09AB +:1044F00083B7817F846083BF83B7816083BF7894F3 +:10450000889583B78E7F83BF88E10FB6F894809338 +:104510006000109260000FBE08950895089580E035 +:104520000E94F0020E948D220E946A090E948E223F +:104530000E94EF0991E0811101C090E0892F089558 +:104540000E94E11B80E00E94F0020E9409280E9464 +:10455000FF160C940F091F920F920FB60F921124A1 +:104560008F939F93AF93BF938091F302811113C0F8 +:104570008091F4029091F502A091F602B091F702B9 +:104580004196A11DB11D8093F4029093F502A09372 +:10459000F602B093F702BF91AF919F918F910F9068 +:1045A0000FBE0F901F90189582E084BD93E095BDDB +:1045B0009AEF97BD80936E0008952FB7F89480917D +:1045C000F4029091F502A091F602B091F7022FBF8C +:1045D0000895CF92DF92EF92FF920F931F932FB720 +:1045E000F8944091F4025091F5026091F6027091B6 +:1045F000F7022FBF6A017B01EE24FF248C0120E02B +:1046000030E0C016D106E206F30610F4415051091D +:104610009A01281B390BC9011F910F91FF90EF9050 +:10462000DF90CF9008951F920F920FB60F92112432 +:104630008F939F93AF93BF938091F4029091F50273 +:10464000A091F602B091F7020196A11DB11D8093D1 +:10465000F4029093F502A093F602B093F702BF9193 +:10466000AF919F918F910F900FBE0F901F90189553 +:104670000E94FC13F8942FEF87EA91E621508040C6 +:104680009040E1F700C0000087E090EBDC018093F0 +:104690001E0390931F03A0932003B09321039CE07B +:1046A00088E10FB6F894A895809360000FBE9093B0 +:1046B0006000FFCF0E949923811102C00E947523E0 +:1046C0000E94A4238093F2020E94AC2380931C03D7 +:1046D00087FB882780F9809316010E94A823682F02 +:1046E00070E080E090E00C94A11F6DEE7EEF80E022 +:1046F00090E00E94C02C60E082E090E00E94AE2C2E +:1047000060E083E090E00E94AE2C60E084E090E006 +:104710000E94AE2C60E085E090E00E94AE2C60E04C +:1047200086E090E00E94AE2C6FEF87E090E00C9462 +:10473000AE2C80E090E00E94A82C21E08D3E9E4FA0 +:1047400009F020E0822F089582E090E00C94A02CE4 +:1047500083E090E00C94A02C84E090E00C94A02CDA +:10476000682F84E090E00C94AE2C86E090E00C94EE +:10477000A02C682F86E090E00C94AE2C87E090E0AF +:104780000C94A02C682F87E090E00C94AE2C8091C4 +:10479000FA0280FF0BC060911C0185E0689FB001A8 +:1047A000112475956795759567952BC081FF09C094 +:1047B00060911C0185E0689FB00111247595679593 +:1047C00020C082FF07C060911C0185E0689FB00196 +:1047D000112417C09091FB029923D1F060911B0125 +:1047E000961788F720911C0185E0289F90011124DD +:1047F000929FA001939F500D112470E0CA010E9466 +:10480000862C6038710540F46115710539F002C0DD +:1048100065E070E0862F08958FE7089581E00895A0 +:104820008091FA0280FF08C060911A0170E07595CE +:1048300067957595679521C081FF06C060911A0143 +:1048400070E07595679519C082FF04C060911A01E8 +:1048500070E010C09091FB029923C1F060911901A2 +:104860009617A0F780911A01899FC001112470E06A +:104870000E94862C6038710528F46115710521F0BD +:10488000862F08958FE7089581E0089561E070E034 +:10489000F4CF803F21F40E94C723819504C0813F5B +:1048A00029F40E94C7238093FE020895823F21F4D9 +:1048B0000E94C723819504C0833F29F40E94C72327 +:1048C0008093FD020895893F19F40E94102405C0C9 +:1048D0008A3F31F40E94102481958093FF0208954D +:1048E0008B3F21F40E941024819504C08C3F29F451 +:1048F0000E941024809300030895843F21F4809146 +:10490000FC02816017C0853F21F48091FC02826027 +:1049100011C0863F21F48091FC0284600BC0873F68 +:1049200021F48091FC02886005C0883F31F48091B9 +:10493000FC0280618093FC0208958D3F21F48091F8 +:10494000FA0281600BC08E3F21F48091FA028260EE +:1049500005C08F3F29F48091FA0284608093FA02A7 +:104960000895803F39F48091FE0287FF6CC0109259 +:10497000FE0269C0813F29F48091FE021816BCF343 +:1049800062C09091FD02823F29F497FF5CC01092B3 +:10499000FD0259C0833F19F41916CCF354C0893F66 +:1049A00041F48091FF0218160CF04DC01092FF02E6 +:1049B0004AC08A3F29F48091FF0287FF44C0F6CFA6 +:1049C0008B3F39F48091000387FF3DC010920003B4 +:1049D0003AC08C3F29F4809100031816BCF333C011 +:1049E000843F21F48091FC028E7F17C0853F21F423 +:1049F0008091FC028D7F11C0863F21F48091FC02E2 +:104A00008B7F0BC0873F21F48091FC02877F05C01C +:104A1000883F31F48091FC028F7E8093FC0213C0AA +:104A20008D3F21F48091FA028E7F0BC08E3F21F4DE +:104A30008091FA028D7F05C08F3F29F48091FA02A0 +:104A40008B7F8093FA028091FD0281110EC08091CC +:104A5000FE0281110AC08091FF02811106C080917F +:104A60000003811102C01092FB0208958CEF92E0C6 +:104A70000E9416170E94DD229093F9028093F8029B +:104A800008951F93CF93DF938091F8029091F902DC +:104A90000E94E922AC019091FB02992321F0209120 +:104AA0001D0130E006C020911E018AE0289F900180 +:104AB00011244217530708F486C08091FD02C0916B +:104AC000FE02D091FF0210910003811107C0C111B5 +:104AD00076C0D11174C0111172C075C09F3F19F01A +:104AE0009F5F9093FB02181624F40E94C7238093C3 +:104AF000FD028091FD0287FF05C00E94C7238195BA +:104B00008093FD021C1624F40E94C7238093FE02AA +:104B10008091FE0287FF05C00E94C7238195809384 +:104B2000FE026091FD02662339F1C091FE02CC23A2 +:104B300019F1772767FD7095872F972F0E94A82975 +:104B400023E333E343E35FE30E94B82A0E9475291D +:104B50006093FD026C2F772767FD7095872F972F45 +:104B60000E94A82923E333E343E35FE30E94B82ACA +:104B70000E9475296093FE021D1624F40E941024E1 +:104B80008093FF028091FF0287FF05C00E941024DE +:104B900081958093FF02111624F40E9410248093C3 +:104BA00000038091000387FF05C00E9410248195B7 +:104BB00080930003DF91CF911F910C9436259F3F86 +:104BC00009F08ECF96CFDF91CF911F910895ECEF32 +:104BD000F2E085E0DF011D928A95E9F71092FB0271 +:104BE0001092FA020895833081F128F4813059F04F +:104BF0008230D1F00895853009F449C0B8F186308B +:104C000009F456C0089580911E01262F30E0280F28 +:104C1000311D2F3F310524F4680F60931E01089564 +:104C20008FEF80931E01089580911D01262F30E0A3 +:104C3000280F311D2F3F310524F4680F60931D01AB +:104C400008958FEF80931D01089580911C01262FF8 +:104C500030E0280F311D2F3F310524F4680F609399 +:104C60001C0108958FEF80931C01089580911B0112 +:104C7000262F30E0280F311D2F3F310524F4680F17 +:104C800060931B0108958FEF80931B01089580911D +:104C90001A01262F30E0280F311D2F3F310524F453 +:104CA000680F60931A0108958FEF80931A01089599 +:104CB00080911901262F30E0280F311D2F3F31053B +:104CC00024F4680F6093190108958FEF8093190100 +:104CD0000895833011F128F4813049F0823091F049 +:104CE0000895853081F120F18630C1F108958091D9 +:104CF0001E01681720F4861B80931E0108951092F0 +:104D00001E01089580911D01681720F4861B809371 +:104D10001D01089510921D01089580911C016817CE +:104D200020F4861B80931C01089510921C010895A5 +:104D300080911B01681720F4861B80931B01089546 +:104D400010921B01089580911A01681720F4861BA8 +:104D500080931A01089510921A0108958091190103 +:104D6000681720F4861B8093190108951092190189 +:104D700008950F931F93873208F048C08E3108F0D2 +:104D80008DC0803109F477C008F5873009F461C01F +:104D900068F4863009F09DC08091F202817F8E7F99 +:104DA0008093F20281E08093020394C08B3009F477 +:104DB00089C08E3009F08DC08091F20282FB2227DB +:104DC00020F991E0922790FB82F95EC0863109F4C8 +:104DD00079C060F4813109F07CC00E94E11B9091A0 +:104DE000160181E08927809316016CC0893109F48E +:104DF00069C08B3109F06DC08091F20281FB2227DE +:104E000020F991E0922790FB81F93EC0883309F4A4 +:104E100059C050F4893209F457C0853309F454C09D +:104E2000873209F451C055C0833409F44DC028F4C9 +:104E30008A3308F44EC0895332C0883409F049C01F +:104E40000E94E11B0E941F0A0E94E3030E94382374 +:104E500039C09091F202892F8095817080FB90F982 +:104E600029F0966098609093F20234C0997F977F02 +:104E70009093F20227C08091F20283FB222720F94F +:104E800091E0922790FB83F98093F2029923D1F06D +:104E90008091F20281608093F20214C08D5141E052 +:104EA00050E060E070E08A019B0104C0000F111F18 +:104EB000221F331F8A95D2F7C901B8010E94A11F92 +:104EC0000E94E11B81E006C061E070E080E090E0BC +:104ED000F5CF80E01F910F91089580E0089580E064 +:104EE0000895CF93C82F80910203813069F018F0A4 +:104EF0008230C9F184C0E0911701F09118018081DE +:104F0000823209F07EC007C0E0911701F0911801CC +:104F10008081823261F48C2F0E946D27811104C040 +:104F20008C2F0E94B9261DC081E090E01AC08C2F02 +:104F30000E946F27811114C0C43179F048F4CB303E +:104F400079F0C03109F061C082E08093020308C0AB +:104F5000C93219F0C83321F058C01092020355C06D +:104F600081E0817054C0C93291F120F5C43179F1EA +:104F7000B0F4C73009F047C08EE180931E0182E390 +:104F800080931D018AE080931C0184E180931B01C2 +:104F900088E080931A0188E28093190134C0CE51D1 +:104FA000C63088F5EC2FF0E0EA54FE4F8081809304 +:104FB000010329C0CE34E9F020F4CB3421F56AE0B6 +:104FC00013C0C13579F0C235F1F461E00DC08091B4 +:104FD0000103882319F01092010315C081E080932A +:104FE000020315C061E006C0809101030E94F32511 +:104FF0000AC06AE0809101030E94692604C01092F1 +:10500000020380E004C081E002C080E0AACFCF911B +:1050100008950E949923811102C00E9475230E9465 +:10502000B52380931D0380FF02C0869501C080E0F8 +:105030000C94F00280911D03982F9695292F30E053 +:10504000233031054CF49F5F990F8170892B81606B +:1050500080931D030E94B92380911D0386950C94B3 +:10506000F00280911D03982F969591F09158990F19 +:105070008170892B80931D038E7F91E009F490E06D +:1050800080911D0390FB80F980931D030E94B9233A +:1050900080911D0386950C94F00280911D03982F3A +:1050A000909590FB80F980931D030E94B923809115 +:1050B0001D0380FF02C0869501C080E00C94F002C1 +:1050C00090911D03892F86958F5F8F779170843023 +:1050D00028F4880F892B80931D0302C090931D0331 +:1050E00080911D038E7F91E009F490E080911D0373 +:1050F00090FB80F980931D030E94B92380911D03CA +:1051000086950C94F00220911D03922F9695892785 +:10511000982F990F822F8170892B80931D038E7F8A +:1051200091E009F490E080911D0390FB80F9809359 +:105130001D030E94B92380911D0386950C94F002F3 +:1051400080911D03869508955058BB27AA270ED03D +:10515000D1C1C2D130F0C7D120F031F49F3F11F45A +:105160001EF4B7C10EF4E095E7FB9FC1E92FD3D140 +:1051700080F3BA17620773078407950718F071F474 +:105180009EF5EBC10EF4E0950B2EBA2FA02D0B016E +:10519000B90190010C01CA01A0011124FF27591B7C +:1051A00099F0593F50F4503E68F11A16F040A22F82 +:1051B000232F342F4427585FF3CF469537952795F3 +:1051C000A795F0405395C9F77EF41F16BA0B620BF2 +:1051D000730B840BBAF09150A1F0FF0FBB1F661F39 +:1051E000771F881FC2F70EC0BA0F621F731F841F7C +:1051F00048F4879577956795B795F7959E3F08F0A2 +:10520000B3CF9395880F08F09927EE0F9795879560 +:10521000089527D108F481E008950CD06BC163D1C3 +:1052200040F05AD130F021F45F3F19F03EC15111E6 +:1052300095C14FC170D198F39923C9F35523B1F3A8 +:10524000951B550BBB27AA2762177307840738F0F5 +:105250009F5F5F4F220F331F441FAA1FA9F333D054 +:105260000E2E3AF0E0E830D091505040E695001C08 +:10527000CAF729D0FE2F27D0660F771F881FBB1FC4 +:10528000261737074807AB07B0E809F0BB0B802D9E +:10529000BF01FF2793585F4F2AF09E3F510568F0EA +:1052A00004C15CC15F3FECF3983EDCF386957795D3 +:1052B0006795B795F7959F5FC9F7880F911D9695EC +:1052C000879597F90895E1E0660F771F881FBB1F48 +:1052D000621773078407BA0720F0621B730B840BF5 +:1052E000BA0BEE1F88F7E095089504D06894B111C9 +:1052F00035C1089518D188F09F5790F0B92F99279C +:10530000B751A0F0D1F0660F771F881F991F1AF0D0 +:10531000BA95C9F712C0B13081F01FD1B1E008953C +:105320001CC1672F782F8827B85F39F0B93FCCF3BD +:10533000869577956795B395D9F73EF490958095C6 +:10534000709561957F4F8F4F9F4F0895E89409C0E6 +:1053500097FB3EF490958095709561957F4F8F4FA8 +:105360009F4F9923A9F0F92F96E9BB279395F695BE +:10537000879577956795B795F111F8CFFAF4BB0F3C +:1053800011F460FF1BC06F5F7F4F8F4F9F4F16C0A0 +:10539000882311F096E911C0772321F09EE8872F2A +:1053A000762F05C0662371F096E8862F70E060E0E6 +:1053B0002AF09A95660F771F881FDAF7880F96955F +:1053C000879597F9089588D018F011F08CD038F4AB +:1053D00080C0C4C0E92F9FD0B0F35523C9F3E7FBC9 +:1053E0006217730784079507A8F199F3E92FFF2740 +:1053F00088232AF03197660F771F881FDAF7952FD9 +:105400005527442332F091505040220F331F441F40 +:10541000D2F7BB27E91BF50B621B730B840BB10999 +:10542000C1F222F4620F731F841FB11D31972AF05D +:10543000660F771F881FBB1FEFCF915050405AF067 +:1054400041F0882332F0660F771F881F915050403B +:10545000C1F7939530C08695779567959F5FD9F78B +:10546000F8CF990F0008550FAA0BE0E8FEEF1616CB +:105470001706E807F907C0F012161306E407F50748 +:1054800098F0621B730B840B950B39F40A2661F0BC +:10549000232B242B252B21F408950A2609F4A1405F +:1054A000A6958FEF811D811D089597F99F6780E86C +:1054B00070E060E008959F3F31F0915020F48795AF +:1054C00077956795B795880F911D9695879597F96C +:1054D00008959FEF80EC089500240A94161617068D +:1054E00018060906089500240A94121613061406D5 +:1054F00005060895092E0394000C11F4882352F038 +:10550000BB0F40F4BF2B11F460FF04C06F5F7F4FEF +:105510008F4F9F4F089557FD9058440F551F59F0D6 +:105520005F3F71F04795880F97FB991F61F09F3F90 +:1055300079F087950895121613061406551FF2CFB9 +:105540004695F1DF08C0161617061806991FF1CF09 +:1055500086957105610508940895E894BB27662730 +:105560007727CB0197F908957CDF08F48FEF089532 +:105570000BD0C0CFB1DF28F0B6DF18F0952309F0CB +:1055800094CFA7CF1124EACFC6DFA0F3959FD1F324 +:10559000950F50E0551F629FF001729FBB27F00DE1 +:1055A000B11D639FAA27F00DB11DAA1F649F662736 +:1055B000B00DA11D661F829F2227B00DA11D621F85 +:1055C000739FB00DA11D621F839FA00D611D221F3F +:1055D000749F3327A00D611D231F849F600D211D23 +:1055E000822F762F6A2F11249F5750408AF0E1F0C6 +:1055F00088234AF0EE0FFF1FBB1F661F771F881F0F +:1056000091505040A9F79E3F510570F04ECFA6CF64 +:105610005F3FECF3983EDCF3869577956795B795F9 +:10562000F795E7959F5FC1F7FE2B880F911D969523 +:10563000879597F90895FA01EE0FFF1F309621051F +:10564000310599F16115710561F48038BFE39B075D +:1056500049F168949038810561F08038BFEF9B076D +:1056600041F0992342F5FF3FE1053105210511F194 +:10567000E8940894E795D901AA2329F4AB2FBE2F0B +:10568000F85FD0F310C0FF5F70F4A695E0F7F7392C +:1056900050F019F0FF3A38F49F779F930CD00F9099 +:1056A00007FC905808953EF014CF60E070E080E869 +:1056B0009FE308954FE79F775F934F933F932F9317 +:1056C0009ED02F913F914F915F9152DF05C019F409 +:1056D0000EF0EBCE42CFFDCE26DFC8F39638C0F7F2 +:1056E00007F80F92E8942BE33AEA48EB5FE74EDFC6 +:1056F0000F920F920F924DB75EB70F92C0D0EAE0B3 +:10570000F1E016D04F915F91EF91FF91E595EE1F7B +:10571000FF1F49F0FE57E0684427EE0F441FFA953B +:10572000E1F74195550B32D00F9007FE26C0089542 +:10573000DF93CF931F930F93FF92EF92DF927B0142 +:105740008C01689405C0DA2EEF011EDFFE01E8949B +:10575000A5912591359145915591AEF3EF0106DD67 +:10576000FE019701A801DA9479F7DF90EF90FF909E +:105770000F911F91CF91DF9108959B01AC0160E0E3 +:1057800070E080E89FE349CD90CE95CECCDEE8F383 +:105790009923D9F3940F511DBBF39150504094F0CD +:1057A00059F0882332F0660F771F881F91505040C0 +:1057B000C1F79E3F510544F7880F911D9695879537 +:1057C00097F908955F3FACF0983E9CF0BB27869513 +:1057D00077956795B79508F4B1609395C1F7BB0FBE +:1057E00058F711F460FFE8CF6F5F7F4F8F4F9F4FE7 +:1057F000E3CFB4CE0EF05FCE6CCE689456CE93DE7F +:10580000C8F39923D1F3C6F3DF93CF931F930F937C +:10581000FF92C92FDD2788232AF02197660F771F73 +:10582000881FDAF720E030E040E85FEB9FE388393B +:1058300020F0803E30F021968F7787DCE2E3F1E0C4 +:1058400003C083DCEFE5F1E073DF8B01BE01EC0107 +:10585000FB2E6F5771097595771F880B990B78DDB3 +:1058600028E132E741E35FE38FDEAF2D9801AE011F +:10587000FF900F911F91CF91DF9178DC3BCEFA0121 +:10588000DC01AA0FBB1F9B01AC01BF5728F42227E4 +:105890003327442750781FC0B75188F4AB2F00241A +:1058A000469537952795011CA395D2F3002069F002 +:1058B000220F331F441FB395DAF30DD045CC61306E +:1058C0007105A0E88A07B94630F49B01AC01662750 +:1058D000772788279078309621F020833183428380 +:1058E00053830895AA1BBB1B51E107C0AA1FBB1F0E +:1058F000A617B70710F0A61BB70B881F991F5A955C +:10590000A9F780959095BC01CD01089597FB072ECE +:1059100016F4009407D077FD09D00E94722C07FC82 +:1059200005D03EF4909581959F4F089570956195AF +:105930007F4F0895EE0FFF1F0590F491E02D09941D +:10594000F999FECF92BD81BDF89A992780B5089547 +:10595000A8E1B0E042E050E00C94C82C262FF99961 +:10596000FECF92BD81BDF89A019700B4021639F0BE +:105970001FBA20BD0FB6F894FA9AF99A0FBE08958F +:105980000196272F0E94AF2C0C94AE2CDC01CB018A +:10599000FC01F999FECF06C0F2BDE1BDF89A31963F +:1059A00000B40D9241505040B8F70895F894FFCFDD +:1059B000640007000CFF0000003F64031091106EAC +:1059C000103A1006100101DF022808140A321E00E6 +:1059D00002040507090B0C0E1011131517181A1CD9 +:1059E0001D1F2123242628292B2D2F303234353713 +:1059F000393B1F0F03764F5F6F7F49694379095920 +:105A000053633149803F5D8B803FF8BF803FCAE1DF +:105A1000803F73ED803FCAE1803FF8BF803F5D8BE0 +:105A2000803F3149803F0000803FF16D7F3F75EA44 +:105A30007E3F4C827E3F833F7E3F84287E3F833F74 +:105A40007E3F4C827E3F75EA7E3FF16D7F3F0000D6 +:105A5000803F3F4D3639EB049E0468042F04C20397 +:105A6000DB03F4030D040102030405060708090023 +:00000001FF diff --git a/keyboards/planck/keymaps/daniel/keymap.c b/keyboards/planck/keymaps/daniel/keymap.c new file mode 100644 index 000000000..3054d7974 --- /dev/null +++ b/keyboards/planck/keymaps/daniel/keymap.c @@ -0,0 +1,37 @@ +#include "keymap.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = { /* Qwerty */ + {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT}, + {FUNC(3), KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + // Space is repeated to accommadate for both spacebar wiring positions +}, +[1] = { /* RAISE */ + {KC_GRV, S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_EQL}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, S(KC_MINS), KC_BSLS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[2] = { /* LOWER */ + {S(KC_GRV), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, S(KC_EQL)}, + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, + {KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_ENT}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[3] = { /* Qwerty */ + {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL}, + {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT}, + {KC_TRNS, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + // Space is repeated to accommadate for both spacebar wiring positions +} +}; + + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(1), // to RAISE + [2] = ACTION_LAYER_MOMENTARY(2), // to LOWER + [3] = ACTION_LAYER_MOMENTARY(3) // to LOWER +}; diff --git a/keyboards/planck/keymaps/david/Makefile b/keyboards/planck/keymaps/david/Makefile new file mode 100644 index 000000000..581e08cd0 --- /dev/null +++ b/keyboards/planck/keymaps/david/Makefile @@ -0,0 +1,25 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/david/compiled.hex b/keyboards/planck/keymaps/david/compiled.hex new file mode 100644 index 000000000..c78779128 --- /dev/null +++ b/keyboards/planck/keymaps/david/compiled.hex @@ -0,0 +1,1449 @@ +:100000000C9496020C94DA020C94DA020C94DA0244 +:100010000C94DA020C94DA020C94DA020C94DA02F0 +:100020000C94DA020C94DA020C9478140C944A15AD +:100030000C94AC220C94DA020C94DA020C94DA02DE +:100040000C94DA020C943C030C94DA020C94DA025D +:100050000C94DA020C9414230C94DA020C94DA0255 +:100060000C94DA020C94DA020C94DA020C94DA02A0 +:100070000C94DA020C94DA020C94DA020C94DA0290 +:100080000C94ED0A0C94DA020C94DA020C94DA0265 +:100090000C94DA020C94DA020C94DA020C94DA0270 +:1000A0000C94DA020C94DA020C94DA02B715D91522 +:1000B000C716D915C7161E164116C7169616A916C5 +:1000C00093199319C219C219011A211A771B771BA8 +:1000D0002C1A771BDC1ADC1A431B4C1B771B711B79 +:1000E000E91AE91AE91AE91AE91AE91AE91AE91AF8 +:1000F000E91AE91AE91AE91AE91AE91AE91AE91AE8 +:10010000F91A071B0E1B151B1F1B07634236B79BF3 +:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 +:100120005763BD6DEDFD753EF6177231BF000000DF +:10013000803F08000000BE922449123EABAAAA2AC2 +:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD +:1001500000000000BF000000803F00000000000819 +:100160004178D3BB4387D1133D190E3CC3BD4282B6 +:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 +:10018000FFBE01C4FF7F3F00000000000000000030 +:1001900000000000000000010204060A0F17202CD6 +:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 +:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF +:1001C0000201000000000000000000000000F1A299 +:1001D000F1A3018C028C14001A000800150017000E +:1001E0002A001C0018000C00120013002A00040052 +:1001F0001600070009000A0028000B000D000E0081 +:100200000F00330034001D001B000600190005001C +:1002100029001100100036003700380028000A308D +:10022000E000E200E30002202C002C00012050003E +:10023000510052004F002B0014001A000900130057 +:100240000A000D000F0018001C0033002A002900CE +:10025000040015001600170007000B00110008002D +:100260000C0012003400E1001D001B000600190004 +:1002700005000E0010003600370038002800C300CB +:10028000E000E200E30002202C002C0001205000DE +:10029000510052004F0035001E001F0020002100B9 +:1002A0002200230024002500260027002A00010048 +:1002B0000320042000500030013002302D002E00B9 +:1002C0002F003000310001004400450000300130B3 +:1002D00002300330043005300630073001000100E1 +:1002E0000100010001000100010001000120AB003C +:1002F000AA00A900AE0035021E021F022002210240 +:100300002202230224022502260227022A000100DB +:100310000320042000500030013002302D022E0254 +:100320002F023002310201003A003B003C003D0048 +:100330003E003F0040004100420043000100010038 +:100340000100010001000220010001000100AB00DA +:10035000AA00A900AE002803540068006500200030 +:1003600050006C0061006E0063006B0020004B00C9 +:100370006500790062006F00610072006400000097 +:100380002C034F007200740068006F006C0069005D +:100390006E0065006100720020004B00650079006E +:1003A00062006F00610072006400730000000403CB +:1003B000090409026D00040100A0FA09040000010B +:1003C00003010100092111010001223F00070581FD +:1003D0000308000A090401000103010200092111B8 +:1003E000010001224D000705820308000A090402EA +:1003F000000103000000092111010001223600075D +:1004000005830308000A0904030001030000000932 +:100410002111010001223900070584031000011297 +:1004200001100100000008EDFE6060010001020003 +:100430000105010906A101050719E029E7150025B5 +:1004400001950875018102050819012905950575B1 +:10045000019102950175039101050719002977158E +:10046000002501957875018102C005010980A1016F +:10047000850216010026B7001A01002AB700751080 +:1004800095018100C0050C0901A101850316010039 +:10049000269C021A01002A9C02751095018100C059 +:1004A00005010902A1010901A10005091901290598 +:1004B00015002501950575018102950175038101DE +:1004C0000501093009311581257F950275088106DE +:1004D00009381581257F950175088106050C0A38B4 +:1004E000021581257F950175088106C0C0050109A7 +:1004F00006A101050719E029E715002501950875F2 +:1005000001810295017508810105081901290595E8 +:1005100005750191029501750391010507190029DF +:10052000FF150025FF950675088100C011241FBE28 +:10053000CFEFDAE0DEBFCDBF04B603FE24C080916A +:100540001E0390911F03A0912003B09121038730D7 +:10055000904BA740B04BB9F410921E0310921F03AA +:10056000109220031092210314BE84B7877F84BFAA +:1005700088E10FB6F89480936000109260000FBE7F +:10058000E0E0F8E3099511E0A0E0B1E0E2EBF9E585 +:1005900002C005900D92A03CB107D9F713E0A0EC82 +:1005A000B1E001C01D92AE31B107E1F70E94BE116A +:1005B0000C94D72C0C9400000895089581E00895C0 +:1005C00008950C94DD020C94DE020C94E0020E946B +:1005D000A12823E030E0281B3109220F2093C40119 +:1005E0000895282F2F9880918000211108C0877FBF +:1005F0008093800010928D0010928C001BC0886048 +:1006000080938000233019F48FEF9FEF0FC083E0B9 +:1006100090E0821B9109880F991F2FEF3FEFA901EE +:1006200002C0569547958A95E2F7CA0190938D00CE +:1006300080938C000C94E7020E94E70284E0809390 +:10064000C3011092C0010895279A2F988FEF9FEF52 +:1006500090938700809386008AE08093800089E1F0 +:10066000809381000E940A280C941C030E9424039A +:100670006E9A769A0C94DC021F920F920FB60F922C +:1006800011242F933F938F939F93EF93FF93E091C8 +:10069000C101F091C201CF0101969093C2018093F4 +:1006A000C1010090C30102C0F695E7950A94E2F7F4 +:1006B000EF738091C001823019F4E03251F404C02C +:1006C000813039F4EF3329F480916F008D7F80936E +:1006D0006F00F0E0E457FE4FE49121E031E0E29F4B +:1006E000C001E39F900D11240090C40102C09695B3 +:1006F00087950A94E2F790938D0080938C00FF9188 +:10070000EF919F918F913F912F910F900FBE0F907E +:100710001F90189581E008950C948A0308950C9415 +:10072000360380911502882309F448C08091D101D5 +:100730009091D201009779F40E94DE229093D20129 +:100740008093D1018091D30190E0009771F4809162 +:10075000D40190E00AC00E94EA2220910001309169 +:1007600001012817390740F329C00197880F991F05 +:10077000880F991FFC01EB52FE4F608171818281CD +:1007800093810E94530AE091D30184E0E89FF00135 +:100790001124EB52FE4F60817181828193814FE081 +:1007A00050E00E940B0E8091D30190E00196609181 +:1007B000D40170E00E94872C8093D3010C94E10255 +:1007C000109217020C94200A0895089581E08093F6 +:1007D00017020C94E503089508958F929F92AF92AB +:1007E000BF92EF92FF920F931F93CF93DF93CDB7FA +:1007F000DEB7A3970FB6F894DEBF0FBECDBF7C0166 +:10080000FC0100811181C8010E94DB20B8010E9417 +:10081000F2058C01B7010E948C03882309F4CCC136 +:100820000032F0E51F0741F4F7018281882309F4C3 +:1008300058C00E946F0EC0C10132F0E51F0741F49D +:10084000F7018281882309F44CC00E94780EB4C15C +:100850000232F0E51F0751F4F7018281882309F481 +:1008600040C00E946B0E8111F0CFE3CF0332F0E560 +:100870001F0739F4F7018281882399F10E94E6036A +:100880009BC10432F0E51F0739F4F7018281882308 +:1008900041F10E94E00390C10532F0E51F0749F4E1 +:1008A000F70182818823E9F0809117028111F1CF4D +:1008B000E5CF0632F0E51F0739F4F701828188237E +:1008C00081F00E947F0E0AC00732F0E51F0749F44D +:1008D000F7018281882329F00E948A0E0E94EC038E +:1008E0006BC180911702811105C0F70182818111CE +:1008F000CFC018C1003E110579F4F7018281882329 +:1009000009F44DC00E94200A81E0809316021092E3 +:1009100015021092D40150C1023E110559F4F7019D +:1009200082818823E1F10E94200A1092160210921F +:10093000150242C1033E110591F4F701828188231B +:1009400071F10E94200A1092160281E08093150234 +:100950001092D3011092D2011092D1012DC1023513 +:10096000110559F4F7018281882309F425C180918A +:100970000001909101010A970DC00135110579F42C +:10098000F7018281882309F417C1809100019091B9 +:1009900001010A9690930101809300010DC14091DD +:1009A000040183E2EFE1F1E0DE01119601900D9286 +:1009B0008A95E1F7F701808121E030E02C0F3D1F9F +:1009C000280F311DC9012091020130910301FC0162 +:1009D000E20FF31F6081772767FD7095640F711D2B +:1009E000882777FD8095982F0E94A92920E030E084 +:1009F00040E451E40E940E294B015C01F701218182 +:100A000084E090E0821B9109BC01882777FD8095E6 +:100A1000982F0E94A9299B01AC01C501B4010E9435 +:100A2000A6289B01AC0160E070E080E090E40E94A9 +:100A30001C2B20E030E04CED50E40E94B92A4B0121 +:100A40005C01F70182818823D1F04FE050E0C501BD +:100A5000B4010E940B0E809116028823A1F08091B0 +:100A6000D40124E0829FF0011124EB52FE4F8082DA +:100A70009182A282B3828F5F8093D40104C0C501AA +:100A8000B4010E94530A0F3F110508F02ECF94C005 +:100A90008091D00181111FC0043130E5130709F0A6 +:100AA00051C00E948E0381E08093D0010E94DE221B +:100AB0009093CF018093CE011092C7011092C9018B +:100AC0001092C8011092CB011092CA011092CD0170 +:100AD0001092CC0171C08091CE019091CF010E9403 +:100AE000EA22883C910570F48091C701E82FF0E07C +:100AF000EE0FFF1FE853FE4F118300838F5F80933B +:100B0000C7015AC0043880E5180721F005381045A0 +:100B100001F13AC0F7018281882341F01092C501AA +:100B200082E01EC0043830E5130759F58091C501F5 +:100B3000811106C086E20E94371886E20E94FF18E3 +:100B400082E01CC00438F0E51F0741F3053810456A +:100B5000D9F4F7018281882331F01092C60180E236 +:100B60000E944E1929C08091C601811106C087E2FA +:100B70000E94371887E20E94FF1880E20E945519F0 +:100B80001BC00538104529F381E08093C50180938F +:100B9000C601C701A3960FB6F894DEBF0FBECDBF46 +:100BA000DF91CF911F910F91FF90EF90BF90AF9089 +:100BB0009F908F900C94E30280E0A3960FB6F89478 +:100BC000DEBF0FBECDBFDF91CF911F910F91FF9080 +:100BD000EF90BF90AF909F908F90089580E090E04D +:100BE000089508959CE0799FF001112490E3899F76 +:100BF000E00DF11D1124E60FF11DEE0FFF1FEA526B +:100C0000FE4F859194910895880F991FFC01E45B34 +:100C1000FF4F859194910895880F991FFC01E4532B +:100C2000FE4F8591949108950F931F93CF93DF9377 +:100C3000EC01811521E39207A0F5C11580E3D807E7 +:100C400008F0D7C0C83ED105D8F4C03ED10508F0A1 +:100C500007C2C83AD10578F4C53AD10508F06AC090 +:100C6000C130D10509F463C008F4F7C1C430D1051F +:100C700008F0F6C1F2C1CB3BD10508F466C0EDC166 +:100C8000C11590E2D90708F0AFC0C11521E0D20725 +:100C900008F0E6C1C03FD10508F4DFC18E01106540 +:100CA0001FC2C03880E5D80700F5C03790E5D907E6 +:100CB00008F0A3C0C11520E5D20709F4ACC050F478 +:100CC000CE01905480319F4008F0C7C1DF708E0183 +:100CD000106A06C2C13080E5D80709F4AEC0C4313D +:100CE00090E5D90708F4AFC0B8C1C33820E5D207F2 +:100CF00009F48EC050F4C13890E5D90709F482C0D8 +:100D000008F083C000E011EDEBC1C03181E5D807E8 +:100D100008F4A3C1C11597E5D90708F436C1CE017F +:100D200090578115904108F098C1DF7093C101E0A0 +:100D300010E0D6C1C53AD10509F494C1C63AD1052F +:100D400009F093C102E810E4CBC1C83AD10509F417 +:100D50008FC1C93AD10509F48EC1CA3AD10509F447 +:100D60008DC1CB3AD10509F48CC1CC3AD10509F437 +:100D70008BC1CD3AD10509F48AC1C03BD10509F434 +:100D800089C1CE3AD10509F488C1CF3AD10509F419 +:100D900087C1C13BD10509F486C1C23BD10509F425 +:100DA00085C1C33BD10509F484C1C43BD10509F415 +:100DB00083C1C53BD10509F482C1C63BD10509F405 +:100DC00081C1C73BD10509F480C1C83BD10509F4F5 +:100DD0007FC1C93BD10509F47EC1CA3BD10509F4E5 +:100DE0007DC100E014E47CC1CE019F700E940C061E +:100DF00078C1DD278E01106C73C1CF70DD278E01A5 +:100E0000146D6EC100E010ED6BC100E012ED68C121 +:100E100000E013ED65C10E94E21B0E94200A0E94BF +:100E2000E4038FEF94E32CE0815090402040E1F701 +:100E300000C000000E94392353C18091F2028160FA +:100E40008093F2024DC10E949A23811102C00E9438 +:100E500076230E94AD2390E090931D0380931C03A2 +:100E6000C23080E5D80721F480911C03816086C0E0 +:100E7000C43090E5D90721F480911C0382607EC0C4 +:100E8000C63020E5D20721F480911C03846076C02F +:100E9000C83080E5D80719F480911C0327C0CA30F8 +:100EA00090E5D90721F480911C03806167C0CC30A4 +:100EB00020E5D20721F480911C0380625FC0CE3010 +:100EC00080E5D80721F480911C03806457C0C031AD +:100ED00090E5D90721F480911C0380684FC0C2318E +:100EE00020E5D20729F480911C038460886046C005 +:100EF000C33080E5D80721F480911C038E7F3EC06B +:100F0000C53090E5D90721F480911C038D7F36C050 +:100F1000C73020E5D20721F480911C038B7F2EC0BF +:100F2000C93080E5D80719F480911C0326C0CB3066 +:100F300090E5D90721F480911C038F7E1FC0CD302E +:100F400020E5D20721F480911C038F7D17C0CF309C +:100F500080E5D80721F480911C038F7B0FC0C1313D +:100F600090E5D90721F480911C038F7707C0C33126 +:100F7000D04531F480911C038B7F877F80931C03C5 +:100F800080911C030E94B123ABC08D2F99278F70D5 +:100F9000992781309105D9F49E012370332702C02F +:100FA000880F991F2A95E2F79C688E0144E0000F94 +:100FB000111F4A95E1F700271370802B912B53E006 +:100FC000CC0FDD1F5A95E1F7C076DD272FC08230A8 +:100FD000910531F4DC2FCC278E01016F106A80C09F +:100FE0008330910569F4CE018370992701E010E008 +:100FF00002C0000F111F8A95E2F7C8019C680FC05C +:1010000084309105B9F4CE018370992701E010E096 +:1010100002C0000F111F8A95E2F7C8019A6823E009 +:10102000CC0FDD1F2A95E1F7C07ED7708C010C2B09 +:101030001D2B56C08530910531F4DC2FCC278E0155 +:10104000046F106A4DC0069709F04AC0CF71DD27C2 +:10105000DC2FCC278E01106243C000E010E040C0BE +:101060008E013EC001E810E43BC003E810E438C044 +:1010700002EE14E435C009EE14E432C00AEE14E4C2 +:101080002FC005EB14E42CC006EB14E429C007EBD9 +:1010900014E426C00CEC14E423C00DEC14E420C0CE +:1010A00003E815E41DC00AE815E41AC002E915E4D6 +:1010B00017C004E915E414C001E216E411C003E20C +:1010C00016E40EC004E216E40BC005E216E408C004 +:1010D00006E216E405C007E216E402C00AE216E4DE +:1010E000C801DF91CF911F910F9108959CE0799FE6 +:1010F000F001112490E3899FE00DF11D1124E60F0A +:10110000F11DEE0FFF1FEA52FE4F85919491803E34 +:101110009105E0F4803C910558F58133910509F47F +:101120006FC048F48932910509F463C08A32910591 +:1011300009F46DC072C089339105E9F082389105D8 +:10114000D1F08533910509F44DC067C0833E910508 +:1011500081F138F4803E9105B9F0823E9105D9F0D5 +:101160005CC0863E910561F1873E9105A1F155C0B5 +:101170000E940406089520911C0320FD02C021FF57 +:101180004CC080EE90E049C080911C0380FFF9CFF5 +:1011900089E390E042C080911C0382FF0EC08091E1 +:1011A0001C0384FF03C080E090E037C083EE90E032 +:1011B00034C080911C0382FFF2CF82EE90E02DC0FC +:1011C00080911C0383FF0BC080911C0384FDEBCF37 +:1011D00087EE90E022C080911C0383FFF5CF86EE5E +:1011E00090E01BC080911C0385FF07C089E290E05E +:1011F00014C080911C0385FFF9CF85E390E00DC0FA +:1012000080911C0386FF07C08AE290E006C08091AF +:101210001C0386FFF9CF81E390E00E941406089535 +:101220000C94E502E82FF0E0E25BFE4F8081E82FAE +:10123000EF70F0E082958F7021E030E0A90102C0EC +:10124000440F551F8A95E2F740A308950F931F930B +:10125000CF93DF9385B7806885BF85B7806885BFEA +:10126000C3E0D0E001E010E0FE01E25BFE4F8081D0 +:10127000E82FEF70F0E021A182958F70A80102C0E5 +:10128000440F551F8A95E2F7CA01822B81A38C2F48 +:101290000E941209219740F78BE090E061E070E036 +:1012A000FC01EE5BFE4F2081E22FEF70F0E042A1E7 +:1012B00022952F70DB0102C0AA0FBB1F2A95E2F70F +:1012C0009D01242B22A3019758F7DF91CF911F9105 +:1012D0000F910C948F03EF92FF920F931F93CF9374 +:1012E000DF9300E212E0C3E0EE24E394F12CD5E0BA +:1012F0008C2F0E9412098BE090E040E050E0FC014E +:10130000EE5BFE4F6081E62FEF70F0E020A130E051 +:1013100062956F7002C0359527956A95E2F720FDBA +:1013200009C09701082E02C0220F331F0A94E2F76A +:10133000422B532B019718F7F801929182918F015C +:101340008417950721F051834083D09305018C2F9A +:101350000E941209C15060F68091050187FD2CC0E2 +:101360008150809305018F3F39F08FE99FE001970D +:10137000F1F700C0000020C080911E0290911F0272 +:10138000909327028093260280911C0290911D0267 +:10139000909325028093240280911A0290911B025F +:1013A0009093230280932202809118029091190257 +:1013B00090932102809320020E94910381E0DF91AB +:1013C000CF911F910F91FF90EF900895E82FF0E0DB +:1013D000EE0FFF1FE05EFD4F80819181089508951B +:1013E0000F931F93CF9308E212E0C0E0F8019291AF +:1013F00082918F010E945622C80FF2E000321F072F +:10140000A9F78C2FCF911F910F9108950E949A23D5 +:10141000811102C00E9476230E94BF23809307039C +:101420003E9A809171008D7F8093710082E080935D +:1014300090008AE18093910081E080932A020895D0 +:1014400080912A02811102C00E94060A10927A023B +:1014500010927902809171008D7F8093710080914C +:1014600090008F738093900010923C0210923B0288 +:10147000109273021092740210927502109276020A +:101480001092720210927102E1E5F2E0A1E4B2E082 +:1014900011921192119211921D921D9282E0E137E8 +:1014A000F807B1F70895CF92DF92EF92FF920F9372 +:1014B0001F93CF93DF9320913B02222309F484C032 +:1014C0006B017C0180912A02811102C00E94060AF0 +:1014D00001E712E0C7E0D0E0A7019601F801929180 +:1014E0008291729162918F010E940A29811131C00B +:1014F000FE01EE0FFF1FEE0FFF1FEF5AFD4F108290 +:10150000118212821382DE01AA0FBB1FAF5BBD4F97 +:1015100011961C921E92C730D105E9F021964481A4 +:1015200055816681778140835183628373831482FE +:1015300015821682178212968D919C91139711969F +:101540009C938E9313961C921E9212973496129629 +:10155000E2CF219708F68091790290917A02019763 +:1015600097FD05C090937A028093790204C010928F +:101570007A02109279028091790290917A022091F8 +:101580007702309178022817390724F010927802F8 +:1015900010927702892BC1F4809171008D7F809326 +:1015A0007100809190008F7380939000109273026D +:1015B00010927402109275021092760210927202CA +:1015C0001092710210923B02DF91CF911F910F9107 +:1015D000FF90EF90DF90CF9008951F920F920FB67B +:1015E0000F9211244F925F926F927F928F929F92EF +:1015F000AF92BF92CF92DF92EF92FF922F933F93E1 +:101600004F935F936F937F938F939F93AF93BF930A +:10161000CF93DF93EF93FF9380913B02882309F4EC +:101620009BC1C0917902D0917A021C161D060CF064 +:1016300093C140902B0250902C0260902D0270902C +:101640002E0220E030E0A901C301B2010E94B52AB8 +:1016500018160CF065C0C130D10509F452C0809154 +:10166000770290917802BE010E94872C7C019093B2 +:1016700078028093770280903D0290903E02A09085 +:101680003F02B090400220E030E040E85FE3C50157 +:10169000B4010E94A62860933D0270933E0280939D +:1016A0003F0290934002F701EE0FFF1FEE0FFF1F66 +:1016B000EF5AFD4FA3019201608171818281938174 +:1016C0000E940E2920E030E040E05EE30E94B92A4B +:1016D0009B01AC01C501B4010E94B52A18168CF417 +:1016E000C7010196BE010E94872C909378028093D7 +:1016F000770210923D0210923E0210923F02109229 +:101700004002E0917702F0917802EE0FFF1FEE0F9A +:10171000FF1FEF5AFD4F6081718182819381D0C09C +:10172000C0907302D0907402E0907502F09076023F +:1017300020E030E0A901C701B6010E940A292197E3 +:10174000882309F4A2C0FE01EE0FFF1FEE0FFF1F5A +:10175000EF5AFD4F80809180A280B380A501940153 +:10176000C701B6010E940A2987FF31C0A501940173 +:1017700060E070E08CED93EC0E940E2920E030E0F8 +:1017800040E451E40E940E2920E030E040E05FE3B5 +:101790000E94B92A9B01AC0160E070E080E090E417 +:1017A0000E941C2B9B01AC01C501B4010E94B92A07 +:1017B0009B01AC01C701B6010E940A2987FF07C03F +:1017C000A701960160E070E08CED93E439C0A501BB +:1017D0009401C701B6010E94B52A18160CF055C035 +:1017E000A501940160E070E08CED93E40E940E2965 +:1017F00020E030E040E451E40E940E2920E030E097 +:1018000040E05FE30E94B92A9B01AC0160E070E018 +:1018100080E090E40E941C2B9B01AC01C501B40147 +:101820000E94B92A9B01AC01C701B6010E94B52AEA +:1018300018165CF5A701960160E070E08CED93EC62 +:101840000E940E2920E030E040E451E40E940E297D +:1018500020E030E040E05FE30E94B92A9B01AC0148 +:1018600060E070E080E090E40E941C2B9B01AC01E2 +:10187000C701B6010E94B92A609373027093740283 +:10188000809375029093760213C0FE01EE0FFF1F46 +:10189000EE0FFF1FEF5AFD4F80819181A281B3812E +:1018A0008093730290937402A0937502B0937602B2 +:1018B000609173027091740280917502909176022A +:1018C00020912802309129022F3F4FEF340731F049 +:1018D0002F5F3F4F30932902209328020E94950EDC +:1018E0006B017C0120E034E244EF51E40E940A29BC +:1018F00087FF08C086EFC82E88E2D82E84EFE82E36 +:1019000081E4F82E20E030E040E051E4C701B60168 +:101910000E94B92A9B01AC0160E074E284E79BE479 +:101920000E940E296B017C010E947B297093970015 +:1019300060939600209106013091070140910801C3 +:1019400050910901C701B6010E94B92A0E947B2962 +:10195000709399006093980080913C02882309F469 +:1019600033C1C0903702D0903802E0903902F09035 +:101970003A0220E030E0A901C701B6010E94B52A71 +:101980001816D4F580912802909129028F3F2FEFED +:10199000920729F001969093290280932802C701AB +:1019A000B6010E94950E20E030E040E051E40E9434 +:1019B000B92A9B01AC0160E074E284E79BE40E94D9 +:1019C0000E296B017C010E947B2970939700609324 +:1019D0009600209106013091070140910801509135 +:1019E0000901C701B6010E94B92A0E947B297093A0 +:1019F00099006093980008C010929700109296008A +:101A00001092990010929800609131027091320208 +:101A10006F5F7F4F70933202609331022091960086 +:101A20003091970080E090E0232BF1F0C091960078 +:101A3000D09197000E94A7296B017C01BE0180E034 +:101A400090E00E94A7299B01AC0160913302709144 +:101A5000340280913502909136020E940E2920E0D6 +:101A60003FEF4FE757E410C00E94A7296B017C01AC +:101A700020E030EE4FEF54E4609133027091340275 +:101A800080913502909136020E94B92A9B01AC01E7 +:101A9000C701B6010E94B52A87FD96C080912F022A +:101AA0008F5F80932F0290E0209103033091040315 +:101AB00082179307A0F080910E03882319F01092EB +:101AC0002F020DC0809171008D7F809371008091F5 +:101AD00090008F738093900010923C027DC08091A3 +:101AE0003002C0912F02811128C0C0900803D0900D +:101AF0000903E0900A03F0900B0320E030E0A90115 +:101B0000C701B6010E94B52A1816BCF481E0809383 +:101B1000300210923702109238021092390210925D +:101B20003A02C0923302D0923402E0923502F0922F +:101B30003602C150C0932F0243C01092300210925F +:101B4000290210922802E0910503F091060348E073 +:101B5000C49FE00DF11D112480819181A281B38188 +:101B60008093370290933802A0933902B0933A02DF +:101B700020E030E040E85EE36481758186819781F2 +:101B80000E94B92A6B017C0180910A01682F70E0E4 +:101B900080E090E00E94A72920E030E048EC52E489 +:101BA0000E940E299B01AC01C701B6010E94B92A0F +:101BB000609333027093340280933502909336021F +:101BC00010923202109231028091070380FD04C00E +:101BD00010923C0210923B02FF91EF91DF91CF9166 +:101BE000BF91AF919F918F917F916F915F914F9135 +:101BF0003F912F91FF90EF90DF90CF90BF90AF90EB +:101C00009F908F907F906F905F904F900F900FBE3E +:101C10000F901F901895CF92DF92EF92FF92CF9383 +:101C2000DF936B017C01EA0180912A02811102C0DD +:101C30000E94060A8091070380FF46C080917902C6 +:101C400090917A0208970CF03FC0809171008D7FCF +:101C50008093710080913C0281110E94200A81E0F2 +:101C600080933B02109229021092280220E030E07B +:101C7000A901C701B6010E94B52A1816DCF48091AB +:101C8000790290917A02FC01EE0FFF1FEE0FFF1F09 +:101C9000EF5AFD4FC082D182E282F382FC01EE0F47 +:101CA000FF1FEF5BFD4FD183C083019690937A02B3 +:101CB000809379028091710082608093710080919D +:101CC0009000806880939000DF91CF91FF90EF901B +:101CD000DF90CF90089580910703817008958091DF +:101CE00007038160809307030E94C3230C94EB03D6 +:101CF000809107038E7F809307030C94C323809108 +:101D00007B0290E0019666E070E00E94872C809351 +:101D10007B02089580917B0290E0019766E070E07D +:101D20000E94872C80937B0208958F929F92AF929E +:101D3000BF92CF92DF92EF92FF920F931F93CF93B8 +:101D4000DF936B017C01C0912802D0912902BE0172 +:101D500080E090E00E94A7294B015C01A701960159 +:101D600060E070E08CE594E40E940E299B01AC01D8 +:101D7000C501B4010E94B92A0E947B2920917B02EF +:101D8000233009F473C028F4222351F02130E9F004 +:101D90002CC1243009F4A0C0253009F4E0C025C1CD +:101DA00080E090E0A0E0BFE38093060190930701FC +:101DB000A0930801B093090110922B0210922C02FB +:101DC00010922D0210922E0210C110922B0210922E +:101DD0002C0210922D0210922E026431710540F4F3 +:101DE0006A30710560F520E030E040E85EE32BC02A +:101DF000693C710508F0AAC080E090E00E94A72924 +:101E000020E030E040EA51E40E94A52820E030E0E4 +:101E100044E353E40E940E299B01AC010E94B92ABD +:101E200020E030E040E05EE30E94B92A9B01AC0173 +:101E300060E070E080E09EE30E94A52844C020E0BE +:101E400030E040E05FE3C701B6010E94B92A6B01B0 +:101E50007C0180E090E0A0E0BEE3809306019093D7 +:101E60000701A0930801B0930901BFC010922B0293 +:101E700010922C0210922D0210922E024AE0469FE0 +:101E80009001479F300D1124C90168EB7BE00E944F +:101E9000732CBC016C5D754077FF03C07195619533 +:101EA0007109882777FD8095982F0E94A9292EE334 +:101EB00033EC4EE259E30E94B92A20E030E040ECD6 +:101EC0005EE30E94A6286093060170930701809349 +:101ED00008019093090189C010922B0210922C02E4 +:101EE00010922D0210922E02CE0183709927892B19 +:101EF000E1F0BE016170772780E090E00E94A729A1 +:101F000020E030E040E05EE30E94B92A20E030E0CB +:101F100040E45FE30E94A6286093060170930701E6 +:101F200080930801909309010CC080E090E0A0E04C +:101F3000BFE38093060190930701A0930801B0933B +:101F40000901C770DD27CD2B09F04FC010920601A3 +:101F500010920701109208011092090146C01092D8 +:101F60002B0210922C0210922D0210922E0200E0F1 +:101F700010E020E03FE30093060110930701209357 +:101F80000801309309016739710578F180E090E02C +:101F90000E94A72920E030E047E153E40E94A528F1 +:101FA00020E030E04AE754E40E940E2920E030E0CF +:101FB00048E452E40E94B92A20E030E040EA51E4CB +:101FC0000E94EB290E947629660F771F660F771F04 +:101FD000FB01EE5AFE4F2081318142815381C701BE +:101FE000B6010E94B92A6B017C01C701B601DF91DD +:101FF000CF911F910F91FF90EF90DF90CF90BF9006 +:10200000AF909F908F90089580918C020895CF9308 +:10201000DF9300D01F92CDB7DEB79C0180911303F0 +:10202000843019F593E099833B832A839093E900E8 +:102030008FEF9091E800815095FD06C095ED9A953F +:10204000F1F700008111F5CF8091E80085FF0DC008 +:1020500040E050E063E070E0CE0101960E9468121B +:102060008091E8008E778093E8000F900F900F909A +:10207000DF91CF910895CF93DF9300D01F92CDB71A +:10208000DEB720911303243021F522E029839B83BE +:102090008A8383E08093E9008FEF9091E80081507C +:1020A00095FD06C095ED9A95F1F700008111F5CFE9 +:1020B0008091E80085FF0DC040E050E063E070E0F3 +:1020C000CE0101960E9468128091E8008E7780937D +:1020D000E8000F900F900F90DF91CF91089520911D +:1020E00013032430F1F422E02093E9002FEF309124 +:1020F000E800215035FD06C035ED3A95F1F70000B6 +:102100002111F5CF2091E80025FF0BC040E050E001 +:1021100065E070E00E9468128091E8008E778093FD +:10212000E8000895CF93DF93EC019091130394306E +:1021300009F046C0809115018823D9F080911601DD +:102140008823B9F09093E9008FEF9091E8008150D7 +:1021500095FD06C095E19A95F1F700008111F5CF44 +:102160008091E80085FF2CC040E050E060E170E025 +:1021700017C081E08093E9008FEF9091E8008150D3 +:1021800095FD06C095ED9A95F1F700008111F5CF08 +:102190008091E80085FF14C040E050E068E070E006 +:1021A000CE010E9468128091E8008E778093E8004B +:1021B00080E1FE01ACE7B2E001900D928A95E1F773 +:1021C000DF91CF91089580911203811109C00E947F +:1021D000FD130E945A148091E20084608093E20013 +:1021E0000895109212030895089508950C94A12261 +:1021F00042E061EC81E00E94771342E061EC82E012 +:102200000E94771342E061EC83E00E94771342E181 +:1022100061EC84E00C94771380911503833009F40A +:1022200055C030F4813071F0823009F48EC00895C9 +:102230008A3009F47AC08B3009F460C0893009F023 +:102240009CC020C080911403813A09F096C080910F +:10225000E800877F8093E80080911803909119032C +:10226000892B21F460E18CE792E003C060E080E01C +:1022700090E070E00E94B3128091E8008B77809329 +:10228000E800089580911403813209F076C08091AE +:10229000180390911903009719F0039709F06DC086 +:1022A0008091E800877F8093E8008091E80082FDBC +:1022B00005C0809113038111F8CF5FC08091F100B8 +:1022C00080938C028091E8008B7753C08091140337 +:1022D000813A09F052C08091180390911903892B1B +:1022E00009F04BC08091E800877F8093E8008091DF +:1022F000E80080FFFCCF8091150136C08091140367 +:102300008132D9F58091180390911903892BA9F591 +:102310008091E800877F8093E8000E94AC13809151 +:102320001603809315010C94E21B809114038132F3 +:1023300021F58091E800877F8093E8000E94AC132C +:102340008091170380938D02089580911403813A40 +:10235000A1F48091E800877F8093E8008091E800F5 +:1023600080FFFCCF80918D028093F1008091E80086 +:102370008E778093E8000C94AC13089584B7877F20 +:1023800084BF88E10FB6F8948093600010926000DB +:102390000FBE90E080E80FB6F894809361009093B0 +:1023A00061000FBE0E944F170E94FD130E945A1435 +:1023B0008091E20084608093E20078940E94E016AD +:1023C0000E9451178BE091E00E94FB16809113034D +:1023D000853069F40E946222809111038823B1F351 +:1023E0000E949022882391F30E945212EFCF0E9404 +:1023F0005917ECCF292F332723303105C9F064F466 +:102400002130310581F02230310509F043C08DE6DD +:1024100090E022EB33E042C021323105F1F022326C +:10242000310541F137C082E190E02FE134E036C060 +:1024300099278130910541F08230910541F0892B37 +:1024400049F5EEEAF3E005C0E0E8F3E002C0E6E5B6 +:10245000F3E0849190E09F0121C06430D8F4E62F2E +:10246000F0E0EE0FFF1FE255FE4F2081318189E041 +:1024700090E014C0643070F470E0FB01EE0FFF1FB9 +:10248000EA55FE4F20813181FB01EE55FE4F8081E0 +:1024900090E004C080E090E020E030E0FA01318379 +:1024A0002083089580E189BD82E189BD09B400FEE1 +:1024B000FDCF8091D8008F7D8093D8008091E0007F +:1024C00082608093E0008091E00081FDFCCF089560 +:1024D000CF92DF92EF92FF920F931F93CF93DF93F0 +:1024E000EC018B016A010E94CB13811133C0C1142E +:1024F000D10439F0F60180819181081B190BC80FB6 +:10250000D91FE12CF12C0115110519F18091E8007A +:1025100085FD16C08091E8008E778093E800C11495 +:10252000D10449F0F60180819181E80EF91EF18213 +:10253000E08285E00FC00E94CB13882321F30AC0FC +:1025400089918093F10001501109FFEFEF1AFF0A02 +:10255000DACF80E0DF91CF911F910F91FF90EF9044 +:10256000DF90CF90089520911A0330911B03261716 +:10257000370748F06115710539F42091E8002E778E +:102580002093E80001C0B90140E061157105A9F18F +:1025900020911303222309F443C0253009F442C0DB +:1025A0002091E80023FD40C02091E80022FD32C0C8 +:1025B0002091E80020FFE9CF4091F3002091F20044 +:1025C00030E0342BFC01CF016115710559F0283042 +:1025D000310540F481918093F100615071092F5FC2 +:1025E0003F4FF1CF41E02830310509F040E0209124 +:1025F000E8002E772093E800C8CF4111C9CF0AC068 +:1026000080911303882361F0853061F08091E800A8 +:1026100083FD0AC08091E80082FFF2CF80E0089538 +:1026200082E0089583E0089581E0089520911A03DF +:1026300030911B032617370748F06115710539F4EF +:102640002091E8002E772093E80001C0B901FC0139 +:1026500020E06115710591F180911303882309F43D +:1026600040C0853009F43FC08091E80083FD3DC043 +:102670008091E80082FD2FC08091E80080FFE9CFC3 +:102680002091F3008091F20090E0922B611571058A +:1026900059F08830910540F424912093F10031964F +:1026A000615071090196F2CF21E0089709F020E00E +:1026B0008091E8008E778093E800CBCF2111CCCFBA +:1026C0000AC080911303882361F0853061F0809106 +:1026D000E80083FD0AC08091E80082FFF2CF80E02D +:1026E000089582E0089583E0089581E00895982F89 +:1026F000973058F59093E900981739F07091EC00F5 +:102700002091ED005091F00003C0242F762F50E06F +:1027100021FF19C03091EB003E7F3093EB003091E8 +:10272000ED003D7F3093ED003091EB003160309350 +:10273000EB007093EC002093ED005093F00020919B +:10274000EE0027FF07C09F5FD3CF8F708093E90013 +:1027500081E0089580E008958091140387FF11C0FF +:102760008091E80082FD05C0809113038111F8CFAC +:1027700011C08091E8008B770BC0809113038823F0 +:1027800049F08091E80080FFF8CF8091E8008E77D3 +:102790008093E80008952091E4003091E50095E6EB +:1027A0004091EC00842F817040FF22C08091E800AE +:1027B00080FD1CC080911303882391F0853091F037 +:1027C0008091EB0085FD10C04091E4005091E50040 +:1027D0004217530729F39A01915011F784E00895A5 +:1027E00082E0089583E0089581E0089580E00895EF +:1027F0004091E80042FFDECF08950E946B140E94D2 +:102800007314E0EEF0E0808181608083E8EDF0E019 +:1028100080818F77808319BCA7EDB0E08C918E7F8B +:102820008C9380818F7E80831092120308950F9382 +:102830001F93CF93DF930E946B140E947314C8ED13 +:10284000D0E088818F7788838881806888838881B9 +:102850008F7D888319BC1092130310920F0310927E +:1028600011031092100300EE10E0F80180818B7FBD +:10287000808388818160888342E060E080E00E94FC +:102880007713E1EEF0E080818E7F8083E2EEF0E06E +:10289000808181608083808188608083F80180816D +:1028A0008E7F8083888180618883DF91CF911F91A3 +:1028B0000F910895E8EDF0E080818F7E8083E7ED51 +:1028C000F0E080818160808384E082BF81E080933A +:1028D00012030C941714E8EDF0E080818E7F808362 +:1028E0001092E20008951092DA001092E10008952B +:1028F0001F920F920FB60F9211242F933F934F9375 +:102900005F936F937F938F939F93AF93BF93EF9357 +:10291000FF938091E10082FF0BC08091E20082FF73 +:1029200007C08091E1008B7F8093E1000E94DF1659 +:102930008091DA0080FF1FC08091D80080FF1BC00B +:102940008091DA008E7F8093DA008091D90080FF39 +:102950000DC080E189BD82E189BD09B400FEFDCFD3 +:1029600081E0809313030E94E31005C019BC10920C +:1029700013030E94F1108091E10080FF19C0809143 +:10298000E20080FF15C08091E2008E7F8093E2001C +:102990008091E20080618093E2008091D8008062A3 +:1029A0008093D80019BC85E0809313030E94F51032 +:1029B0008091E10084FF30C08091E20084FF2CC050 +:1029C00080E189BD82E189BD09B400FEFDCF80911F +:1029D000D8008F7D8093D8008091E1008F7E809316 +:1029E000E1008091E2008F7E8093E2008091E2001E +:1029F00081608093E20080910F03882311F084E0CE +:102A000007C08091E30087FD02C081E001C083E040 +:102A1000809313030E94F6108091E10083FF29C088 +:102A20008091E20083FF25C08091E100877F809341 +:102A3000E10082E08093130310920F038091E10084 +:102A40008E7F8093E1008091E2008E7F8093E20090 +:102A50008091E20080618093E20042E060E080E0EB +:102A60000E9477138091F00088608093F0000E94AC +:102A7000F410FF91EF91BF91AF919F918F917F9152 +:102A80006F915F914F913F912F910F900FBE0F90DB +:102A90001F9018951F920F920FB60F9211242F932B +:102AA0003F934F935F936F937F938F939F93AF93D6 +:102AB000BF93CF93DF93EF93FF93C091E900CF7063 +:102AC0008091EC00D82FD17080FDD0E81092E90001 +:102AD0008091F000877F8093F00078940E948E159B +:102AE0001092E9008091F00088608093F000CD2B77 +:102AF000CF70C093E900FF91EF91DF91CF91BF912B +:102B0000AF919F918F917F916F915F914F913F9185 +:102B10002F910F900FBE0F901F9018951F93CF937A +:102B2000DF93CDB7DEB7AA970FB6F894DEBF0FBE1E +:102B3000CDBFE4E1F3E088E08E0F9091F100919336 +:102B40008E13FBCF0E940C118091E80083FF1FC100 +:102B50008091140390911503492F50E04A3051059C +:102B600008F015C1FA01EA5AFF4F0C949B2C8038EB +:102B700081F0823809F00BC1809118038F70809327 +:102B8000E9008091EB0085FB882780F91092E9002D +:102B900006C0809110039091110391118260909171 +:102BA000E800977F9093E8008093F1001092F10085 +:102BB000C8C0282F2D7F09F0EAC0882319F0823081 +:102BC00061F0E5C080911603813009F0E0C09330D8 +:102BD00009F080E0809311032BC0809116038111CE +:102BE00027C0809118038F7009F4D1C08093E90049 +:102BF0002091EB0020FF1CC0933021F48091EB006A +:102C0000806214C09091EB0090619093EB0021E002 +:102C100030E0A90102C0440F551F8A95E2F74093A6 +:102C2000EA001092EA008091EB0088608093EB004C +:102C30001092E9008091E800877F86C08111A7C0CB +:102C4000109116031F778091E3008078812B809389 +:102C5000E3008091E800877F8093E8000E94AC1336 +:102C60008091E80080FFFCCF8091E3008068809332 +:102C7000E300111102C082E001C083E080931303DE +:102C800086C08058823008F082C0809116039091EF +:102C900017038C3D53E0950779F583E08A838AE238 +:102CA00089834FB7F894DE01139620E03EE051E2AD +:102CB000E32FF0E050935700E49120FF03C0E2952A +:102CC000EF703F5FEF708E2F90E0EA3010F0C79604 +:102CD00001C0C0968D939D932F5F243149F74FBF5C +:102CE0008091E800877F8093E8006AE270E0CE017F +:102CF00001960E94B31214C0AE014F5F5F4F609106 +:102D000018030E94FA11BC01009709F440C0909189 +:102D1000E800977F9093E80089819A810E941613BA +:102D20008091E8008B778093E80031C0803879F596 +:102D30008091E800877F8093E80080910F03809363 +:102D4000F1008091E8008E778093E8000E94AC1338 +:102D50001EC081111CC0909116039230C0F4809166 +:102D6000E800877F8093E80090930F030E94AC13E4 +:102D700080910F03811106C08091E30087FD02C09E +:102D800081E001C084E0809313030E94F8108091D9 +:102D9000E80083FF0AC08091E800877F8093E80005 +:102DA0008091EB0080628093EB00AA960FB6F894B6 +:102DB000DEBF0FBECDBFDF91CF911F910895089563 +:102DC000CF93809113038823A1F0C091E900CF70C5 +:102DD0009091EC00892F817090FD80E8C82B1092B3 +:102DE000E9008091E80083FD0E948E15CF70C093AA +:102DF000E900CF91089590939302809392020895F1 +:102E0000E0919202F0919302309721F00190F081CD +:102E1000E02D099480E00895E0919202F0919302F0 +:102E2000309721F00280F381E02D09940895E0911C +:102E30009202F0919302309721F00480F581E02D09 +:102E4000099408952091900230919102821793077E +:102E500071F09093910280939002E0919202F09130 +:102E60009302309721F00680F781E02D09940895B0 +:102E700020918E0230918F028217930771F0909308 +:102E80008F0280938E02E0919202F091930230972C +:102E900021F00084F185E02D0994089508950C94A3 +:102EA0004E170E94D5220E9426090E945B230C9493 +:102EB0000A285F926F927F928F929F92AF92BF92F9 +:102EC000CF92DF92EF92FF920F931F93CF93DF93F6 +:102ED00000D000D01F92CDB7DEB70E946B099DE9EC +:102EE000C92E92E0D92E03E010E0AA24A394B12CBD +:102EF000502E802F0E94E6094C01F60172906290DC +:102F00006F016826792661147104A1F4015011093A +:102F100078F78FEF89838A831B820E94DE2281608B +:102F2000782F9D838C8349815A816B818D810E948A +:102F3000091838C08091F20281FD0E94EF092BE050 +:102F400030E07501022E02C0EE0CFF1C0A94E2F77D +:102F5000C70186219721892B09F129835A828E2066 +:102F60009F2091E0892809F490E09B830E94DE2253 +:102F70008160782F9D838C8349815A816B818D81FB +:102F80000E940918000F111FF801EB56FD4F8081B8 +:102F90009181E826F926F182E08204C021503109AE +:102FA00080F6B4CF0E944225109194020E9400172F +:102FB0001817D1F00E940017809394020F900F9081 +:102FC0000F900F900F90DF91CF911F910F91FF9075 +:102FD000EF90DF90CF90BF90AF909F908F907F90B9 +:102FE0006F905F900C9410090F900F900F900F90BE +:102FF0000F90DF91CF911F910F91FF90EF90DF9095 +:10300000CF90BF90AF909F908F907F906F905F9088 +:103010000895CF93DF93CDB7DEB72B970FB6F89413 +:10302000DEBF0FBECDBF4F83588769877A878B87F6 +:10303000DE01119686E0FD0111928A95E9F785E09F +:10304000FE01379601900D928A95E1F749815A81E8 +:103050006B817C818D819E810E94801E2B960FB694 +:10306000F894DEBF0FBECDBFDF91CF910895CF930F +:10307000882309F4C2C0C82F823859F40E9400176F +:1030800081FDBBC089E30E945A210E94272289E367 +:103090000CC0833879F40E94001780FDAEC083E530 +:1030A0000E945A210E94272283E50E949C21CF91F1 +:1030B0000C942722843859F40E94001782FD9DC089 +:1030C00087E40E945A210E94272287E4EECF8CEFEA +:1030D0008C0F813A48F48C2F0E94722781118DC089 +:1030E0008C2F0E945A21E3CF80E28C0F883048F465 +:1030F000C77081E001C0880FCA95EAF70E94E021FD +:10310000D6CF8BE58C0F833078F4C53A29F0C63AD8 +:1031100031F083E890E005C081E890E002C082E8E9 +:1031200090E0CF910C94221788E58C0F833108F042 +:1031300064C0C83A39F1C93A41F1CA3A49F1CB3AC7 +:1031400051F1CC3A59F1CD3A61F1C03B69F1CE3A37 +:1031500071F1CF3A79F1C13B81F1C23B89F1C33BB7 +:1031600091F1C43B99F1C53BA1F1C63BA9F1C73B25 +:10317000B1F1C83BB9F1C93BC1F1CA3BC9F180E02B +:1031800090E038C082EE90E035C089EE90E032C029 +:103190008AEE90E02FC085EB90E02CC086EB90E0AB +:1031A00029C087EB90E026C08CEC90E023C08DEC2A +:1031B00090E020C083E891E01DC08AE891E01AC049 +:1031C00082E991E017C084E991E014C081E292E0C5 +:1031D00011C083E292E00EC084E292E00BC085E26F +:1031E00092E008C086E292E005C087E292E002C069 +:1031F0008AE292E0CF910C943817CF9108958823FA +:1032000009F44BC0823859F40E94001781FF45C071 +:1032100089E30E945A210E94272289E30CC0833847 +:1032200071F40E94001780FF38C083E50E945A2184 +:103230000E94272283E50E949C210C942722843837 +:1032400059F40E94001782FF28C087E40E945A2187 +:103250000E94272287E4EFCF9CEF980F913A58F312 +:1032600090E2980F983050F4877091E001C0990F68 +:103270008A95EAF7892F0E94E621DFCF9BE5980F18 +:10328000933020F480E090E00C942217885A833128 +:1032900020F480E090E00C9438170895882321F002 +:1032A0000E94E0210C9427220895882321F00E9497 +:1032B000E6210C94272208957F928F929F92AF92DD +:1032C000BF92CF92DF92EF92FF920F931F93CF9313 +:1032D000DF931F92CDB7DEB77C01C62E772EFC019F +:1032E000058102950F70128111110E94FD210E942B +:1032F0005321882379F0112369F080E28C0D883006 +:1033000048F082E00E943C210E94532191E0D82E97 +:10331000D92601C0D12CE72DE295EF70F0E0E05AFC +:10332000FF4F0C949B2C872D807F072D0F708823D7 +:1033300011F00295007F112389F0002309F499C14F +:1033400080E28C0D883020F4802F0E94E02103C0A1 +:10335000802F0E94F0210E9427228BC18C2D0E9479 +:10336000FF18002309F4C3C180E28C0D883020F4DB +:10337000802F0E94E62103C0802F0E94F6210E9428 +:103380002722B5C1872D807F972D9F70803211F441 +:10339000892F03C0892F8295807FCC2021F0F1E016 +:1033A000CF16A1F01DC0112339F0002319F101300F +:1033B00009F50E9410229BC1002319F0013009F485 +:1033C00096C189830E941322898110C1112321F0A3 +:1033D000063008F08CC10EC0053008F088C106C167 +:1033E000112359F0002331F0F701958190FF41C17D +:1033F0009F7095830E944E197AC1002309F4F6C08C +:103400003EC1872D86958695837090E0009719F0D0 +:10341000019761F06CC1112321F08C2D972D9370D1 +:1034200002C080E090E00E94221761C1112321F0C8 +:103430008C2D972D937002C080E090E00E94381789 +:1034400056C18C2D112319F00E944A2402C00E94FB +:10345000B2240E9437254BC1872D837009F052C0DA +:10346000111145C18C2D829586958770880F880F24 +:103470009C2D9F70892E912CA12CB12C082E04C05C +:10348000880C991CAA1CBB1C0A94D2F7C4FE14C059 +:103490000FE010E020E030E0B901A80104C0440FC3 +:1034A000551F661F771F8A95D2F7CB01BA01609529 +:1034B00070958095909503C060E070E0CB01272D5A +:1034C00026952695237030E02230310569F02330AF +:1034D000310589F0682979298A299B29213031050C +:1034E00071F00E94C81F03C1682979298A299B2984 +:1034F0000E94E41FFCC00E94C81FC501B4010E94C5 +:10350000AC1FF5C0112319F0872D817001C086957D +:10351000882309F4ECC08C2D829586958770880FDE +:10352000880F9C2D9F70892E912CA12CB12C082ED8 +:1035300004C0880C991CAA1CBB1C0A94D2F7C4FEB8 +:1035400014C00FE010E020E030E0B901A80104C091 +:10355000440F551F661F771F8A95D2F7CB01BA011A +:10356000609570958095909503C060E070E0CB0108 +:10357000272D269526952370422F50E04230510585 +:1035800069F04330510589F0682979298A299B29F6 +:103590004130510571F00E94A220A9C06829792903 +:1035A0008A299B290E94BE20A2C00E94A220C50198 +:1035B000B4010E9486209BC08C2D90E0FC01E05E4F +:1035C000F109E531F10508F050C0E059FF4F0C94C6 +:1035D0009B2C0C2D0F70872D8F71112321F00E94D1 +:1035E0001F20802F07CF0E944020802F0E94551956 +:1035F0007EC0112341F0053008F079C0872D8F710E +:103600000E94652074C0063008F071C0F7CF112306 +:1036100039F0872D8F710E941F2069C01123C9F3D3 +:10362000872D8F710E94402062C0112329F0872DC1 +:103630008F710E940A205BC00E94002058C0112395 +:1036400051F0172D1F71812F0E941F2063E0812FE1 +:103650000E9433214CC081E00E943C21023008F4DA +:1036600046C082E00E943C2142C0112331F0002379 +:1036700081F28C2D0E9437183AC0002389F28C2DDC +:103680000E94FF1834C0472D4F706C2DC7010E9457 +:10369000EE050E94241F2BC0111129C0472D4F7029 +:1036A00050E042305105B9F04CF44115510581F01C +:1036B00041305105E1F40E94322819C043305105D0 +:1036C00069F04430510599F48C2D0E9484280FC074 +:1036D0000E941B280CC00E944E2809C00E9461282D +:1036E00006C0472D4F706C2DC7010E94F105DD20EB +:1036F000F9F00E942F2180FD1BC0F70112820E9469 +:1037000029210E941F20C7010E94A71B0E94292176 +:103710000F90DF91CF911F910F91FF90EF90DF906D +:10372000CF90BF90AF909F908F907F900C9440204F +:103730000F90DF91CF911F910F91FF90EF90DF904D +:10374000CF90BF90AF909F908F907F9008950F93F0 +:103750001F93CF93DF93EC01888199812B813C816A +:10376000232BB9F09F3F11F48F3F99F0CE010E94B7 +:10377000ED03882371F0688179818A810E94252177 +:103780008C010E94DA200E94A11FB801CE010E9484 +:103790005C19DF91CF911F910F9108950E94FD2137 +:1037A0000E940D220E94D2210E9427220E94E82519 +:1037B0000E94372580E090E00E94221780E090E090 +:1037C0000C9438170E94ED210C94CE1B0E941A21F4 +:1037D000292F22952F7030E02C3031054CF42A30FF +:1037E00031056CF42250310922303105A8F407C0AC +:1037F0002C30310569F02F30310551F00DC0803F7C +:1038000069F018F4803E40F409C0843F29F406C0F2 +:1038100093FB882780F9089580E0089581E008955A +:10382000CF93DF9300D000D01F92CDB7DEB70F90BB +:103830000F900F900F900F90DF91CF910895CF933D +:10384000DF9300D000D000D0CDB7DEB726960FB6FC +:10385000F894DEBF0FBECDBFDF91CF9108951F93C7 +:10386000CF93DF93C0919D0216E080919E02C8170E +:1038700099F0D0E01C9FF0011D9FF00D1124E1563E +:10388000FD4F4081518162817381848195810E94C5 +:103890001F1C2196C770E9CFDF91CF911F9108952A +:1038A0004091CF025091D0026091D1027091D2022A +:1038B0008091D3029091D4020C941F1C8091D40269 +:1038C00082958F7009F054C08091D102882309F449 +:1038D0004FC080919D02A0919E026091CF02709195 +:1038E000D0024091D2025091D302B6E08A1709F477 +:1038F0003FC090E041155105C1F17F3F11F46F3F8A +:10390000A1F1B89FF001B99FF00D1124E156FD4FD0 +:10391000218172132AC02081621327C022812111C4 +:1039200024C0238134812417350710F42150310934 +:10393000241B350B283C3105C0F42091D4022F7094 +:1039400020612093D40226E0289FF001299FF00DEA +:103950001124EC55FD4F80818F70806180838FEC46 +:1039600092E00E94A71B0C942F1C01968770BECF7B +:103970000895CF92DF92EF92FF920F931F93CF9310 +:10398000DF93CDB7DEB762970FB6F894DEBF0FBEF8 +:10399000CDBF8C0185E0F801DE011D9601900D92EE +:1039A0008A95E1F7D8014C9111965C911197129686 +:1039B0006C9112971396CD90DC9014973091CF02B2 +:1039C0007091D0028091D2029091D302009709F4B5 +:1039D0006BC17F3F19F43F3F09F466C1E090D1020B +:1039E000EE2009F4C0C02091D402C816D90628F0F0 +:1039F000F601E81BF90BCF0104C0809590958C0D62 +:103A00009D1DFF24F394883C910578F0F12C207FD4 +:103A100009F0C6C07C2DD98AC88A89890E94101CE9 +:103A20008FEC92E00E94A71BB1C0822F807F09F02B +:103A300046C0751314C0341312C0611110C02F702A +:103A400020612093D4020E94501C8FEC92E00E94CF +:103A5000A71B8091D402D80115968C932EC0CD2837 +:103A600019F15F3F11F44F3FF9F0F62E61111CC0C0 +:103A700080919D0220919E0236E0821709F45AC07F +:103A800090E0389FF001399FF00D1124E156FD4F71 +:103A90007181571306C07081471303C07281711181 +:103AA00003C001968770E9CFF62E662309F418C18A +:103AB0008091D40281608093D402F12C11C17513DE +:103AC00008C0341306C0611104C08091D402D8012B +:103AD000C3C04D875E878D859E856A8B0E94E61BDD +:103AE0006A898823E1F16623D1F12091D402822FE3 +:103AF00082958F7090E0029774F08091CF02909140 +:103B0000D00298878F831986DB86CA862C87CE01E0 +:103B100007960E94A71B86E0F801AFECB2E0019087 +:103B20000D928A95E1F70E945E1C0E94501CFF24B2 +:103B3000F394D6C04D875E878D859E850E941A219D +:103B4000292F22952F7030E0223031050CF0BCC0B7 +:103B50009F7009F0B6C0805E883008F4C1C0C8010B +:103B60000E94A71BE4CFC816D90608F453C0F6017B +:103B7000E81BF90BCF01883C910508F450C0F12CEB +:103B80007C2DD98AC88A89890E94101CEFECF2E04A +:103B900086E0DF011D928A95E9F70E94501CA0C0C3 +:103BA000751314C0341312C0611110C08091D40277 +:103BB000F8018583C8010E94A71B86E0EFECF2E0C4 +:103BC000DF011D928A95E9F7FE2C8AC04D875E873A +:103BD0008D859E856A8B0E94E61B6A89882309F47D +:103BE000BECF662309F4BBCF2091D402822F8295E9 +:103BF0008F7090E002970CF48ECF8091CF0290915D +:103C0000D0029A8389831B82DD82CC822E83CE01EF +:103C100001967FCF809590958C0D9D1DACCFF62E93 +:103C2000662309F49CCF75132EC034132CC0209149 +:103C3000D40220FD1FC0822F82958F70D9F0D80149 +:103C400015962C9315978F3049F08F5F982F92958A +:103C5000907F822F8F70892B15968C93C8010E94BC +:103C6000A71B86E0F801AFECB2E001900D928A95B7 +:103C7000E1F793CF86E0F801AFECB2E001900D924E +:103C80008A95E1F72DC04D875E878D859E850E94C0 +:103C9000E61B811140CF8091D40281608093D402D1 +:103CA000C8010E94A71B1CC0662309F458CF4D878A +:103CB0005E878D859E850E94E61B882309F44FCF81 +:103CC0002ACF811148CF0CC0243031050CF047CFEA +:103CD0009F7009F440CFF8019581907F09F03BCFA8 +:103CE0008F2D62960FB6F894DEBF0FBECDBFDF9169 +:103CF000CF911F910F91FF90EF90DF90CF9008959B +:103D00001F93CF93DF93CDB7DEB72C970FB6F89400 +:103D1000DEBF0FBECDBF4F83588769877A878B87F9 +:103D20009C87CE0107960E94B91C882369F08F8179 +:103D300098852A853B85232BF1F19F3F09F063C0CD +:103D40008F3F09F060C037C086E0FE013796DE0184 +:103D5000119601900D928A95E1F76F817885EA8539 +:103D6000FB85309741F17F3F11F46F3F21F12091A6 +:103D70009E0230E0C90101968770992740919D020B +:103D800050E08417950709F447C069837A83FD835F +:103D9000EC8396E0929FD001939FB00D1124A15621 +:103DA000BD4FFE01319601900D929A95E1F78093F7 +:103DB0009E020E942F1C16E080919D0290919E020F +:103DC0008917C1F1189FC001112481569D4F0E948F +:103DD000B91C882379F1E0919D021E9FF001112406 +:103DE000E156FD4F408151816281738184819581CB +:103DF0000E941F1C80919D0290E001968770992778 +:103E000080939D02D9CF4F81588569857A858B85AE +:103E10009C850E941F1CCFCF0E94E21B10929E0225 +:103E200010929D02EFECF2E086E0DF011D928A9590 +:103E3000E9F7C1CF2C960FB6F894DEBF0FBECDBF09 +:103E4000DF91CF911F910895EF92FF920F931F93EF +:103E5000CF93DF938C01009709F46CC0F12CEE2412 +:103E6000E394E8012196F8018491843740F484308A +:103E700008F051C0813081F0823019F15BC0853784 +:103E800009F444C0A8F19CE7980F903708F052C09D +:103E90008F770E94FF1841C00E5F1F4FFE01C49133 +:103EA00080E28C0F883048F4C7708E2D01C0880FD7 +:103EB000CA95EAF70E94002214C08C2F0E9437187E +:103EC0002DC00E5F1F4FFE01C49180E28C0F883021 +:103ED00058F4C7708E2D01C0880FCA95EAF70E946A +:103EE00006220E9427221AC08C2F0E94FF1816C09B +:103EF0000E5F1F4FFE01C491CC2381F08FE99FE03C +:103F00000197F1F700C00000C150F6CF0E5F1F4FC0 +:103F1000FE01F49003C00E9437188E018F2D882374 +:103F200009F49FCFEFE9FFE03197F1F700C00000FF +:103F30008150F5CFDF91CF911F910F91FF90EF90BE +:103F4000089508956093D9027093DA028093DB029A +:103F50009093DC020C94CE1B0F931F930091D90217 +:103F60001091DA022091DB023091DC02DC01CB01FE +:103F7000802B912BA22BB32B8093D9029093DA0242 +:103F8000A093DB02B093DC021F910F910C94CE1B27 +:103F90000F931F930091D9021091DA022091DB0256 +:103FA0003091DC02DC01CB0180239123A223B323D7 +:103FB0008093D9029093DA02A093DB02B093DC02E3 +:103FC0001F910F910C94CE1B0F931F930091D90258 +:103FD0001091DA022091DB023091DC02DC01CB018E +:103FE00080279127A227B3278093D9029093DA02E2 +:103FF000A093DB02B093DC021F910F910C94CE1BB7 +:104000001092D5021092D6021092D7021092D802C6 +:104010000C94CE1B41E050E060E070E004C0440F1F +:10402000551F661F771F8A95D2F74093D50250938C +:10403000D6026093D7027093D8020C94CE1B41E055 +:1040400050E060E070E004C0440F551F661F771F0A +:104050008A95D2F78091D5029091D602A091D7028D +:10406000B091D802482B592B6A2B7B2B4093D50259 +:104070005093D6026093D7027093D8020C94CE1B53 +:1040800041E050E060E070E004C0440F551F661F3F +:10409000771F8A95D2F740955095609570958091DD +:1040A000D5029091D602A091D702B091D8024823B0 +:1040B00059236A237B234093D5025093D602609301 +:1040C000D7027093D8020C94CE1B41E050E060E020 +:1040D00070E004C0440F551F661F771F8A95D2F702 +:1040E0008091D5029091D602A091D702B091D802CA +:1040F000482759276A277B274093D5025093D60239 +:104100006093D7027093D8020C94CE1B0F931F9329 +:104110000091D5021091D6022091D7023091D80299 +:10412000DC01CB01802B912BA22BB32B8093D502EA +:104130009093D602A093D702B093D8021F910F910B +:104140000C94CE1B0F931F930091D5021091D602B1 +:104150002091D7023091D802DC01CB01802391233A +:10416000A223B3238093D5029093D602A093D702C3 +:10417000B093D8021F910F910C94CE1B0F931F93F5 +:104180000091D5021091D6022091D7023091D80229 +:10419000DC01CB0180279127A227B3278093D5028A +:1041A0009093D602A093D702B093D8021F910F919B +:1041B0000C94CE1B0895CF92DF92EF92FF920F9353 +:1041C0001F93CF93DF938C01C090D902D090DA0275 +:1041D000E090DB02F090DC028091D5029091D60253 +:1041E000A091D702B091D802C82AD92AEA2AFB2A7C +:1041F000CFE1D0E0D701C6010C2E04C0B695A7953B +:10420000979587950A94D2F780FF06C0B8018C2F46 +:104210000E947608019721F4219760F780E001C0A1 +:104220008C2FDF91CF911F910F91FF90EF90DF9036 +:10423000CF900895CF93DF93EC010E94DB20BE0165 +:104240000E947608DF91CF910895CB010E941A2138 +:1042500008958091DD0285958595859508958091D5 +:10426000DD028770089598E0899F90011124262B24 +:104270002093DD020C941F202091DD028095822383 +:104280008093DD02982F977069F430E0482F55270E +:1042900047FD50952417350729F085958595859517 +:1042A0000C94402008959091DD02977081E009F40C +:1042B00080E0089590911501992321F090911601C5 +:1042C000911109C02091170130911801F90132961E +:1042D0009FEF40E01FC0982F9695969596959F303A +:1042E00050F5E0911701F0911801E90FF11D877069 +:1042F00021E030E0A90102C0440F551F8A95E2F782 +:10430000CA019181892B818308959F3F39F04F5FC6 +:104310004E3041F051915813F8CF0DC05111F7CFE5 +:10432000942FF5CF9F3F39F0F901E90FF11D97FD6B +:10433000FA9582830895089590911501992321F0AB +:1043400090911601911109C0209117013091180127 +:10435000F9013296205F3F4F1FC0982F9695969592 +:1043600096959F30F0F4E0911701F0911801E90F54 +:10437000F11D877021E030E0A90102C0440F551FF4 +:104380008A95E2F7CA0180959181892381830895F6 +:104390003196E217F30729F090819813F9CF108234 +:1043A000F7CF089581E090E0E0911701F0911801B6 +:1043B000E80FF91F1082019680319105A9F7089541 +:1043C0009091F102892B8093F1020895809590914C +:1043D000F10289238093F10208951092F102089569 +:1043E0009091F002892B8093F0020895809590912E +:1043F000F00289238093F00208951092F00208954C +:104400009091EF02892B8093EF020895809590910F +:10441000EF0289238093EF0208951092EF0208952E +:104420008093DE0208951092DE02089580911701B4 +:1044300090911801FC0131969C01205F3F4F80E074 +:10444000919191118F5FE217F307D1F70895E091F1 +:104450001701F09118018091F1028083E09117011A +:10446000F091180190818091F002892B8083E09176 +:104470001701F091180190818091EF02892B8083C0 +:104480008091DE02882361F0E0911701F09118011C +:104490009081892B80830E94162281111092DE0266 +:1044A00080911701909118010C940C1720E000974F +:1044B00039F0AC0141505109842395232F5FF7CF88 +:1044C000822F089580911303843039F11092F30202 +:1044D00020E488E190E00FB6F894A89580936000FE +:1044E0000FBE2093600080E00E94F10280E00E94F5 +:1044F000100983B7817F846083BF83B7816083BFE6 +:104500007894889583B78E7F83BF88E10FB6F8943F +:1045100080936000109260000FBE08950895089582 +:1045200080E00E94F1020E948E220E946B090E948C +:104530008F220E94F00991E0811101C090E0892F43 +:1045400008950E94E21B80E00E94F1020E940A2866 +:104550000E9400170C9410091F920F920FB60F9231 +:1045600011248F939F93AF93BF938091F302811196 +:1045700013C08091F4029091F502A091F602B091DF +:10458000F7024196A11DB11D8093F4029093F502AC +:10459000A093F602B093F702BF91AF919F918F91D4 +:1045A0000F900FBE0F901F90189582E084BD93E08E +:1045B00095BD9AEF97BD80936E0008952FB7F8943C +:1045C0008091F4029091F502A091F602B091F70269 +:1045D0002FBF0895CF92DF92EF92FF920F931F9318 +:1045E0002FB7F8944091F4025091F5026091F602D1 +:1045F0007091F7022FBF6A017B01EE24FF248C012A +:1046000020E030E0C016D106E206F30610F4415077 +:1046100051099A01281B390BC9011F910F91FF9075 +:10462000EF90DF90CF9008951F920F920FB60F92E8 +:1046300011248F939F93AF93BF938091F402909135 +:10464000F502A091F602B091F7020196A11DB11DED +:104650008093F4029093F502A093F602B093F702D0 +:10466000BF91AF919F918F910F900FBE0F901F90B0 +:1046700018950E94FD13F8942FEF87EA91E62150D8 +:1046800080409040E1F700C0000087E090EBDC0143 +:1046900080931E0390931F03A0932003B0932103E4 +:1046A0009CE088E10FB6F894A895809360000FBE57 +:1046B00090936000FFCF0E949A23811102C00E9454 +:1046C00076230E94A5238093F2020E94AD2380935B +:1046D0001C0387FB882780F9809316010E94A92379 +:1046E000682F70E080E090E00C94A21F6DEE7EEFEA +:1046F00080E090E00E94C12C60E082E090E00E94A7 +:10470000AF2C60E083E090E00E94AF2C60E084E09A +:1047100090E00E94AF2C60E085E090E00E94AF2C1A +:1047200060E086E090E00E94AF2C6FEF87E090E0C1 +:104730000C94AF2C80E090E00E94A92C21E08D3EEB +:104740009E4F09F020E0822F089582E090E00C94C3 +:10475000A12C83E090E00C94A12C84E090E00C94D8 +:10476000A12C682F84E090E00C94AF2C86E090E0C0 +:104770000C94A12C682F86E090E00C94AF2C87E07D +:1047800090E00C94A12C682F87E090E00C94AF2C63 +:104790008091FA0280FF0BC060911C0185E0689F48 +:1047A000B001112475956795759567952BC081FFAC +:1047B00009C060911C0185E0689FB00111247595C6 +:1047C000679520C082FF07C060911C0185E0689F4B +:1047D000B001112417C09091FB029923D1F0609190 +:1047E0001B01961788F720911C0185E0289F9001F6 +:1047F0001124929FA001939F500D112470E0CA01D3 +:104800000E94872C6038710540F46115710539F0FC +:1048100002C065E070E0862F08958FE7089581E07B +:1048200008958091FA0280FF08C060911A0170E03B +:10483000759567957595679521C081FF06C0609154 +:104840001A0170E07595679519C082FF04C06091E8 +:104850001A0170E010C09091FB029923C1F06091A1 +:1048600019019617A0F780911A01899FC0011124A0 +:1048700070E00E94872C6038710528F4611571057D +:1048800021F0862F08958FE7089581E0089561E073 +:1048900070E0F4CF803F21F40E94C823819504C0CA +:1048A000813F29F40E94C8238093FE020895823F2D +:1048B00021F40E94C823819504C0833F29F40E94FB +:1048C000C8238093FD020895893F19F40E941124A2 +:1048D00005C08A3F31F40E94112481958093FF0224 +:1048E00008958B3F21F40E941124819504C08C3FD0 +:1048F00029F40E941124809300030895843F21F439 +:104900008091FC02816017C0853F21F48091FC02F8 +:10491000826011C0863F21F48091FC0284600BC04C +:10492000873F21F48091FC02886005C0883F31F404 +:104930008091FC0280618093FC0208958D3F21F4F8 +:104940008091FA0281600BC08E3F21F48091FA02BF +:10495000826005C08F3F29F48091FA0284608093C1 +:10496000FA020895803F39F48091FE0287FF6CC0FF +:104970001092FE0269C0813F29F48091FE02181650 +:10498000BCF362C09091FD02823F29F497FF5CC0A6 +:104990001092FD0259C0833F19F41916CCF354C08C +:1049A000893F41F48091FF0218160CF04DC010921F +:1049B000FF024AC08A3F29F48091FF0287FF44C06A +:1049C000F6CF8B3F39F48091000387FF3DC01092F2 +:1049D00000033AC08C3F29F4809100031816BCF301 +:1049E00033C0843F21F48091FC028E7F17C0853F45 +:1049F00021F48091FC028D7F11C0863F21F48091CB +:104A0000FC028B7F0BC0873F21F48091FC02877FE3 +:104A100005C0883F31F48091FC028F7E8093FC02B8 +:104A200013C08D3F21F48091FA028E7F0BC08E3F20 +:104A300021F48091FA028D7F05C08F3F29F4809187 +:104A4000FA028B7F8093FA028091FD0281110EC0E1 +:104A50008091FE0281110AC08091FF02811106C07F +:104A600080910003811102C01092FB0208958CEF27 +:104A700092E00E9417170E94DE229093F902809321 +:104A8000F80208951F93CF93DF938091F8029091DD +:104A9000F9020E94EA22AC019091FB02992321F0D5 +:104AA00020911D0130E006C020911E018AE0289F60 +:104AB000900111244217530708F486C08091FD022B +:104AC000C091FE02D091FF0210910003811107C036 +:104AD000C11176C0D11174C0111172C075C09F3F51 +:104AE00019F09F5F9093FB02181624F40E94C823CC +:104AF0008093FD028091FD0287FF05C00E94C823BC +:104B000081958093FD021C1624F40E94C823809393 +:104B1000FE028091FE0287FF05C00E94C823819596 +:104B20008093FE026091FD02662339F1C091FE027E +:104B3000CC2319F1772767FD7095872F972F0E9457 +:104B4000A92923E333E343E35FE30E94B92A0E94E8 +:104B500076296093FD026C2F772767FD7095872F6C +:104B6000972F0E94A92923E333E343E35FE30E94E5 +:104B7000B92A0E9476296093FE021D1624F40E9431 +:104B800011248093FF028091FF0287FF05C00E94DD +:104B9000112481958093FF02111624F40E941124A0 +:104BA000809300038091000387FF05C00E941124B9 +:104BB000819580930003DF91CF911F910C9437254D +:104BC0009F3F09F08ECF96CFDF91CF911F9108952F +:104BD000ECEFF2E085E0DF011D928A95E9F7109293 +:104BE000FB021092FA020895833081F128F481309B +:104BF00059F08230D1F00895853009F449C0B8F1F8 +:104C0000863009F456C0089580911E01262F30E0A9 +:104C1000280F311D2F3F310524F4680F60931E01CA +:104C200008958FEF80931E01089580911D01262F16 +:104C300030E0280F311D2F3F310524F4680F6093B9 +:104C40001D0108958FEF80931D01089580911C012F +:104C5000262F30E0280F311D2F3F310524F4680F37 +:104C600060931C0108958FEF80931C01089580913B +:104C70001B01262F30E0280F311D2F3F310524F472 +:104C8000680F60931B0108958FEF80931B010895B7 +:104C900080911A01262F30E0280F311D2F3F31055A +:104CA00024F4680F60931A0108958FEF80931A011E +:104CB000089580911901262F30E0280F311D2F3FD4 +:104CC000310524F4680F6093190108958FEF8093E4 +:104CD00019010895833011F128F4813049F08230B0 +:104CE00091F00895853081F120F18630C1F1089569 +:104CF00080911E01681720F4861B80931E01089581 +:104D000010921E01089580911D01681720F4861BE2 +:104D100080931D01089510921D01089580911C013A +:104D2000681720F4861B80931C01089510921C01C3 +:104D3000089580911B01681720F4861B80931B0146 +:104D4000089510921B01089580911A01681720F4AC +:104D5000861B80931A01089510921A01089580917C +:104D60001901681720F4861B809319010895109289 +:104D7000190108950F931F93873208F048C08E31B0 +:104D800008F08DC0803109F477C008F5873009F448 +:104D900061C068F4863009F09DC08091F202817F85 +:104DA0008E7F8093F20281E08093020394C08B3067 +:104DB00009F489C08E3009F08DC08091F20282FB27 +:104DC000222720F991E0922790FB82F95EC086317C +:104DD00009F479C060F4813109F07CC00E94E21BC3 +:104DE0009091160181E08927809316016CC089316A +:104DF00009F469C08B3109F06DC08091F20281FB2A +:104E0000222720F991E0922790FB81F93EC0883358 +:104E100009F459C050F4893209F457C0853309F4B4 +:104E200054C0873209F451C055C0833409F44DC0D1 +:104E300028F48A3308F44EC0895332C0883409F00C +:104E400049C00E94E21B0E94200A0E94E4030E94C3 +:104E5000392339C09091F202892F8095817080FBAF +:104E600090F929F0966098609093F20234C0997F8F +:104E7000977F9093F20227C08091F20283FB222752 +:104E800020F991E0922790FB83F98093F202992315 +:104E9000D1F08091F20281608093F20214C08D51B2 +:104EA00041E050E060E070E08A019B0104C0000F27 +:104EB000111F221F331F8A95D2F7C901B8010E9422 +:104EC000A21F0E94E21B81E006C061E070E080E06A +:104ED00090E0F5CF80E01F910F91089580E0089554 +:104EE00080E00895CF93C82F80910203813069F04C +:104EF00018F08230C9F184C0E0911701F0911801D7 +:104F00008081823209F07EC007C0E0911701F091E4 +:104F100018018081823261F48C2F0E946E278111EA +:104F200004C08C2F0E94BA261DC081E090E01AC0F8 +:104F30008C2F0E947027811114C0C43179F048F47D +:104F4000CB3079F0C03109F061C082E08093020378 +:104F500008C0C93219F0C83321F058C010920203BA +:104F600055C081E0817054C0C93291F120F5C4313F +:104F700079F1B0F4C73009F047C08EE180931E018B +:104F800082E380931D018AE080931C0184E1809379 +:104F90001B0188E080931A0188E28093190134C0D4 +:104FA000CE51C63088F5EC2FF0E0EA54FE4F8081F8 +:104FB0008093010329C0CE34E9F020F4CB3421F5ED +:104FC0006AE013C0C13579F0C235F1F461E00DC07B +:104FD00080910103882319F01092010315C081E02C +:104FE0008093020315C061E006C0809101030E9416 +:104FF000F4250AC06AE0809101030E946A2604C079 +:105000001092020380E004C081E002C080E0AACFD9 +:10501000CF9108950E949A23811102C00E947623A5 +:105020000E94B62380931D0380FF02C0869501C0B5 +:1050300080E00C94F10280911D03982F9695292F02 +:1050400030E0233031054CF49F5F990F8170892B3C +:10505000816080931D030E94BA2380911D03869571 +:105060000C94F10280911D03982F969591F0915820 +:10507000990F8170892B80931D038E7F91E009F435 +:1050800090E080911D0390FB80F980931D030E94A6 +:10509000BA2380911D0386950C94F10280911D0323 +:1050A000982F909590FB80F980931D030E94BA235E +:1050B00080911D0380FF02C0869501C080E00C94A2 +:1050C000F10290911D03892F86958F5F8F779170E4 +:1050D000843028F4880F892B80931D0302C090939D +:1050E0001D0380911D038E7F91E009F490E0809173 +:1050F0001D0390FB80F980931D030E94BA238091C9 +:105100001D0386950C94F10220911D03922F969514 +:105110008927982F990F822F8170892B80931D03E7 +:105120008E7F91E009F490E080911D0390FB80F95F +:1051300080931D030E94BA2380911D0386950C94D1 +:10514000F10280911D03869508955058BB27AA2728 +:105150000ED0D1C1C2D130F0C7D120F031F49F3F81 +:1051600011F41EF4B7C10EF4E095E7FB9FC1E92FDF +:10517000D3D180F3BA17620773078407950718F035 +:1051800071F49EF5EBC10EF4E0950B2EBA2FA02D15 +:105190000B01B90190010C01CA01A0011124FF27E4 +:1051A000591B99F0593F50F4503E68F11A16F040DF +:1051B000A22F232F342F4427585FF3CF46953795DE +:1051C0002795A795F0405395C9F77EF41F16BA0BA3 +:1051D000620B730B840BBAF09150A1F0FF0FBB1F51 +:1051E000661F771F881FC2F70EC0BA0F621F731F9A +:1051F000841F48F4879577956795B795F7959E3FF7 +:1052000008F0B3CF9395880F08F09927EE0F979584 +:105210008795089527D108F481E008950CD06BC1DB +:1052200063D140F05AD130F021F45F3F19F03EC114 +:10523000511195C14FC170D198F39923C9F35523EA +:10524000B1F3951B550BBB27AA2762177307840779 +:1052500038F09F5F5F4F220F331F441FAA1FA9F32F +:1052600033D00E2E3AF0E0E830D091505040E69521 +:10527000001CCAF729D0FE2F27D0660F771F881F82 +:10528000BB1F261737074807AB07B0E809F0BB0B71 +:10529000802DBF01FF2793585F4F2AF09E3F510595 +:1052A00068F004C15CC15F3FECF3983EDCF3869587 +:1052B00077956795B795F7959F5FC9F7880F911D0B +:1052C0009695879597F90895E1E0660F771F881FF7 +:1052D000BB1F621773078407BA0720F0621B730BAA +:1052E000840BBA0BEE1F88F7E095089504D06894FC +:1052F000B11135C1089518D188F09F5790F0B92F9A +:105300009927B751A0F0D1F0660F771F881F991F1A +:105310001AF0BA95C9F712C0B13081F01FD1B1E0CF +:1053200008951CC1672F782F8827B85F39F0B93FDF +:10533000CCF3869577956795B395D9F73EF490951C +:105340008095709561957F4F8F4F9F4F0895E8949A +:1053500009C097FB3EF490958095709561957F4FBD +:105360008F4F9F4F9923A9F0F92F96E9BB2793956B +:10537000F695879577956795B795F111F8CFFAF47B +:10538000BB0F11F460FF1BC06F5F7F4F8F4F9F4FAC +:1053900016C0882311F096E911C0772321F09EE80A +:1053A000872F762F05C0662371F096E8862F70E070 +:1053B00060E02AF09A95660F771F881FDAF7880F4A +:1053C0009695879597F9089588D018F011F08CD0AC +:1053D00038F480C0C4C0E92F9FD0B0F35523C9F37F +:1053E000E7FB6217730784079507A8F199F3E92F84 +:1053F000FF2788232AF03197660F771F881FDAF777 +:10540000952F5527442332F091505040220F331FDF +:10541000441FD2F7BB27E91BF50B621B730B840BF0 +:10542000B109C1F222F4620F731F841FB11D3197BD +:105430002AF0660F771F881FBB1FEFCF9150504097 +:105440005AF041F0882332F0660F771F881F915081 +:105450005040C1F7939530C08695779567959F5FCB +:10546000D9F7F8CF990F0008550FAA0BE0E8FEEF27 +:1054700016161706E807F907C0F012161306E40718 +:10548000F50798F0621B730B840B950B39F40A2611 +:1054900061F0232B242B252B21F408950A2609F4EF +:1054A000A140A6958FEF811D811D089597F99F67F3 +:1054B00080E870E060E008959F3F31F0915020F463 +:1054C000879577956795B795880F911D96958795E0 +:1054D00097F908959FEF80EC089500240A9416161A +:1054E000170618060906089500240A9412161306D2 +:1054F000140605060895092E0394000C11F4882360 +:1055000052F0BB0F40F4BF2B11F460FF04C06F5F7B +:105510007F4F8F4F9F4F089557FD9058440F551F51 +:1055200059F05F3F71F04795880F97FB991F61F025 +:105530009F3F79F087950895121613061406551F9C +:10554000F2CF4695F1DF08C0161617061806991F08 +:10555000F1CF86957105610508940895E894BB27FD +:1055600066277727CB0197F908957CDF08F48FEF42 +:1055700008950BD0C0CFB1DF28F0B6DF18F0952327 +:1055800009F094CFA7CF1124EACFC6DFA0F3959FEF +:10559000D1F3950F50E0551F629FF001729FBB271A +:1055A000F00DB11D639FAA27F00DB11DAA1F649FC6 +:1055B0006627B00DA11D661F829F2227B00DA11D79 +:1055C000621F739FB00DA11D621F839FA00D611DFF +:1055D000221F749F3327A00D611D231F849F600D20 +:1055E000211D822F762F6A2F11249F5750408AF059 +:1055F000E1F088234AF0EE0FFF1FBB1F661F771FE5 +:10560000881F91505040A9F79E3F510570F04ECF32 +:10561000A6CF5F3FECF3983EDCF3869577956795D0 +:10562000B795F795E7959F5FC1F7FE2B880F911D02 +:105630009695879597F90895FA01EE0FFF1F30961A +:105640002105310599F16115710561F48038BFE3D9 +:105650009B0749F168949038810561F08038BFEF6D +:105660009B0741F0992342F5FF3FE10531052105F4 +:1056700011F1E8940894E795D901AA2329F4AB2FF6 +:10568000BE2FF85FD0F310C0FF5F70F4A695E0F76F +:10569000F73950F019F0FF3A38F49F779F930CD008 +:1056A0000F9007FC905808953EF014CF60E070E032 +:1056B00080E89FE308954FE79F775F934F933F9371 +:1056C0002F939ED02F913F914F915F9152DF05C054 +:1056D00019F40EF0EBCE42CFFDCE26DFC8F396389C +:1056E000C0F707F80F92E8942BE33AEA48EB5FE73C +:1056F0004EDF0F920F920F924DB75EB70F92C0D050 +:10570000EAE0F1E016D04F915F91EF91FF91E595BE +:10571000EE1FFF1F49F0FE57E0684427EE0F441FBD +:10572000FA95E1F74195550B32D00F9007FE26C050 +:105730000895DF93CF931F930F93FF92EF92DF9221 +:105740007B018C01689405C0DA2EEF011EDFFE019B +:10575000E894A5912591359145915591AEF3EF01CE +:1057600006DDFE019701A801DA9479F7DF90EF904A +:10577000FF900F911F91CF91DF9108959B01AC0194 +:1057800060E070E080E89FE349CD90CE95CECCDE1E +:10579000E8F39923D9F3940F511DBBF39150504076 +:1057A00094F059F0882332F0660F771F881F9150CC +:1057B0005040C1F79E3F510544F7880F911D9695C3 +:1057C000879597F908955F3FACF0983E9CF0BB2712 +:1057D000869577956795B79508F4B1609395C1F76D +:1057E000BB0F58F711F460FFE8CF6F5F7F4F8F4F0B +:1057F0009F4FE3CFB4CE0EF05FCE6CCE689456CE02 +:1058000093DEC8F39923D1F3C6F3DF93CF931F93AD +:105810000F93FF92C92FDD2788232AF02197660F67 +:10582000771F881FDAF720E030E040E85FEB9FE366 +:10583000883920F0803E30F021968F7787DCE2E3D4 +:10584000F1E003C083DCEFE5F1E073DF8B01BE0123 +:10585000EC01FB2E6F5771097595771F880B990B1B +:1058600078DD28E132E741E35FE38FDEAF2D980179 +:10587000AE01FF900F911F91CF91DF9178DC3BCE6D +:10588000FA01DC01AA0FBB1F9B01AC01BF5728F432 +:1058900022273327442750781FC0B75188F4AB2FF5 +:1058A0000024469537952795011CA395D2F3002037 +:1058B00069F0220F331F441FB395DAF30DD045CCA6 +:1058C00061307105A0E88A07B94630F49B01AC014C +:1058D0006627772788279078309621F020833183B8 +:1058E000428353830895AA1BBB1B51E107C0AA1F23 +:1058F000BB1FA617B70710F0A61BB70B881F991F71 +:105900005A95A9F780959095BC01CD01089597FB14 +:10591000072E16F4009407D077FD09D00E94732C4F +:1059200007FC05D03EF4909581959F4F08957095A2 +:1059300061957F4F0895EE0FFF1F0590F491E02DC4 +:105940000994F999FECF92BD81BDF89A992780B547 +:105950000895A8E1B0E042E050E00C94C92C262F55 +:10596000F999FECF92BD81BDF89A019700B4021655 +:1059700039F01FBA20BD0FB6F894FA9AF99A0FBE03 +:1059800008950196272F0E94B02C0C94AF2CDC01B7 +:10599000CB01FC01F999FECF06C0F2BDE1BDF89A3A +:1059A000319600B40D9241505040B8F70895F894E4 +:0259B000FFCF27 +:1059B200640007000CFF0000003F64041092106FA7 +:1059C200103B1007100101DF022808140A321E00E2 +:1059D20002040507090B0C0E1011131517181A1CD7 +:1059E2001D1F2123242628292B2D2F303234353711 +:1059F200393B1F0F03764F5F6F7F4969437909591E +:105A020053633149803F5D8B803FF8BF803FCAE1DD +:105A1200803F73ED803FCAE1803FF8BF803F5D8BDE +:105A2200803F3149803F0000803FF16D7F3F75EA42 +:105A32007E3F4C827E3F833F7E3F84287E3F833F72 +:105A42007E3F4C827E3F75EA7E3FF16D7F3F0000D4 +:105A5200803F3F4D3639ED04A0046A043104C4038B +:105A6200DD03F6030F04010203040506070809001B +:00000001FF diff --git a/keyboards/planck/keymaps/david/keymap.c b/keyboards/planck/keymaps/david/keymap.c new file mode 100644 index 000000000..d8a46aa83 --- /dev/null +++ b/keyboards/planck/keymaps/david/keymap.c @@ -0,0 +1,38 @@ +#include "keymap.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = { /* Qwerty */ + {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_BSPC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_A, KC_S, KC_D, KC_F, KC_G, KC_ENT, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ESC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, + {M(10), KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + // Space is repeated to accommadate for both spacebar wiring positions +}, +[1] = { /* Colemak */ + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, + {KC_FN3, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[2] = { /* RAISE */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TRNS, FUNC(3), FUNC(4), RESET, M(0), M(1), M(2), KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F11, KC_F12, M(0), M(1), M(2), M(3), M(4), M(5), M(6), M(7), KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[3] = { /* LOWER */ + {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, + {KC_TRNS, FUNC(3), FUNC(4), RESET, M(0), M(1), M(2), S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE + [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER + + [3] = ACTION_DEFAULT_LAYER_SET(0), + [4] = ACTION_DEFAULT_LAYER_SET(1), + +}; diff --git a/keyboards/planck/keymaps/default/Makefile b/keyboards/planck/keymaps/default/Makefile new file mode 100644 index 000000000..581e08cd0 --- /dev/null +++ b/keyboards/planck/keymaps/default/Makefile @@ -0,0 +1,25 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/default/README.md b/keyboards/planck/keymaps/default/README.md new file mode 100644 index 000000000..de9680b49 --- /dev/null +++ b/keyboards/planck/keymaps/default/README.md @@ -0,0 +1,2 @@ +# The Default Planck Layout + diff --git a/keyboards/planck/keymaps/default/compiled.hex b/keyboards/planck/keymaps/default/compiled.hex new file mode 100644 index 000000000..b7465d099 --- /dev/null +++ b/keyboards/planck/keymaps/default/compiled.hex @@ -0,0 +1,1621 @@ +:100000000C941D050C9461050C9461050C9461051C +:100010000C9461050C9461050C9461050C946105C8 +:100020000C9461050C9461050C9413190C94E5195A +:100030000C9446270C9461050C9461050C946105A1 +:100040000C9461050C94C2050C9461050C94610537 +:100050000C9461050C94AE270C9461050C94610519 +:100060000C9461050C9461050C9461050C94610578 +:100070000C9461050C9461050C9461050C94610568 +:100080000C94F90E0C9461050C9461050C946105B7 +:100090000C9461050C9461050C9461050C94610548 +:1000A0000C9461050C9461050C9461052A063C06CC +:1000B0005006620671067B06CF06CF06CF06CF0636 +:1000C000CF06CF068906B906CB06521A741A621BF0 +:1000D000741A621BB91ADC1A621B311B441B2E1ED8 +:1000E0002E1E5D1E5D1E9C1EBC1E12201220C71EF1 +:1000F0001220771F771FDE1FE71F12200C20841F9E +:10010000841F841F841F841F841F841F841F841FD7 +:10011000841F841F841F841F841F841F841F941FB7 +:10012000A21FA91FB01FBA1F07634236B79BD8A7EB +:100130001A39685618AEBAAB558C1D3CB7CC57630C +:10014000BD6DEDFD753EF6177231BF000000803FBA +:1001500008000000BE922449123EABAAAA2ABECDD6 +:10016000CCCC4C3E00000080BEABAAAAAA3E000048 +:100170000000BF000000803F000000000008417840 +:10018000D3BB4387D1133D190E3CC3BD4282AD2B77 +:100190003E68EC8276BED98FE1A93E4C80EFFFBE6F +:1001A00001C4FF7F3F0000000000000000000000CD +:1001B0000000000000010204060A0F17202C3A4A32 +:1001C0005D71879DB3C7DAE9F5FCFFFCF5E9DAC795 +:1001D000B39D87715D4A3A2C20170F0A060402016D +:1001E00000000000000000000000010801150109E6 +:1001F00001190112010F0208021502090219021267 +:10020000020F002B0014001A000800150017001C34 +:100210000018000C00120013002A00290004001628 +:1002200000070009000A000B000D000E000F00334C +:10023000003400E1001D001B00060019000500113C +:1002400000100036003700380028000530E000E2DA +:1002500000E30003302C002C000430500051005209 +:10026000004F002B0014001A00090013000A000DB3 +:10027000000F0018001C0033002A0029000400159C +:10028000001600170007000B00110008000C0012F8 +:10029000003400E1001D001B000600190005000EDF +:1002A00000100036003700380028000530E000E27A +:1002B00000E30003302C002C0004305000510052A9 +:1002C000004F002B0034003600370013001C0009DB +:1002D000000A00060015000F002A00290004001281 +:1002E00000080018000C0007000B00170011001692 +:1002F000003800E100330014000D000E001B000563 +:100300000010001A0019001D0028000530E000E26E +:1003100000E30003302C002C000430500051005248 +:10032000004F0035021E021F02200221022202237A +:100330000224022502260227022A004C003A003B32 +:10034000003C003D003E003F002D022E022F0230F7 +:1003500002310201004000410042004300440045D8 +:1003600000320264020100010001000100010001ED +:100370000001000100010001000100AB00AA00A97A +:1003800000AE0035001E001F0020002100220023C7 +:100390000024002500260027002A004C003A003BDC +:1003A000003C003D003E003F002D002E002F00309D +:1003B000003100010040004100420043004400457C +:1003C0000032006400010001000100010001000191 +:1003D0000001000100010001000100AB00AA00A91A +:1003E00000AE001E001E001E001E001E001E001E8D +:1003F000001E001E001E001E001E00000014001A39 +:10040000000800150017001C0018000C0012001353 +:10041000002F000E3004001600070009000A000B30 +:10042000000D000E000F00330034000D30000000FE +:10043000000600190000000000110010000000007C +:1004400000000000000000000000000000000000AC +:10045000000000000000000000000000000000009C +:10046000000000000000000000000000000000008C +:10047000000000000000000000000000000000007C +:10048000000000000000000000000000000000006C +:10049000000000000000000000000000000000005C +:1004A000000000000000000000000000000000004C +:1004B000000000000000000000000000000000003C +:1004C000000000000000000000000000000000002C +:1004D000000000000000000000000000000000001C +:1004E000000000000000000000000000000000000C +:1004F00000000000000000000000000000000000FC +:1005000000000000000000000000000000000000EB +:1005100000000000000000000000000000000000DB +:1005200000000000000000000000000000000000CB +:1005300000000000000000000000000000000000BB +:1005400000000000000000000000000000000000AB +:10055000000000000000000000000000000000009B +:10056000000000000000000000000000000000008B +:10057000000000000000000000000000000000007B +:10058000000000000000000000000000000000006B +:10059000000000000000000000000000000000005B +:1005A000000000000000000000000000000000004B +:1005B000000000000000000000000000000000003B +:1005C000000000000000000000000000000000002B +:1005D000000000000000000000000000000000001B +:1005E000000000000000000000000000000000000B +:1005F00000000000000000000000000000000000FB +:1006000000000000000000000000000000000000EA +:1006100000000000000000000000000000000000DA +:1006200000000000000000000000000000000000CA +:1006300000000000000000000000000000000000BA +:1006400000000000000000000000000000000000AA +:10065000000000000000000000000000000000009A +:10066000000000000000000000000000000000008A +:10067000000000000000000000000000000000007A +:10068000000000000000000000000000000000006A +:10069000000000000000000000000000000000005A +:1006A000000000000000000000000000000000004A +:1006B000000000000000000000000000000000003A +:1006C000000000000000000000000000000000002A +:1006D000000000000000000000000000000000001A +:1006E000000000000000000000000000000000000A +:1006F00000000000000000000000000000000000FA +:1007000000000000000000000000000000000000E9 +:1007100000000000000000000000000000000000D9 +:1007200000000000000000000000000000000000C9 +:1007300000000000000000000000000000000000B9 +:1007400000000000000000000000000000000000A9 +:100750000000000000000000000000000000000099 +:100760000000000000000000000000000000000089 +:100770000000000000000000000000000000000079 +:100780000000000000000000000000000000000069 +:100790000000000000000000000000000000000059 +:1007A0000000000000000000000000000000000049 +:1007B0000000000000000000000000000000000039 +:1007C0000000000000000000000000000000000029 +:1007D0000000000000000000000000000000000019 +:1007E0000000000000000000000000000000000009 +:1007F00000000000000000000000000000000000F9 +:100800000000000100007001000100010001000172 +:100810000001000100010001004C00010001000185 +:10082000001570167013700A700030013002300C21 +:1008300030010001001C701B70187019701D701EB3 +:100840007001000100010001000100010001000130 +:100850000001000100010001000100010001000190 +:100860000001002803540068006500200050006C5F +:100870000061006E0063006B0020004B0065007992 +:100880000062006F0061007200640000002C034FE2 +:10089000007200740068006F006C0069006E0065F3 +:1008A000006100720020004B006500790062006F5B +:1008B0000061007200640073000000040309040971 +:1008C000026D00040100A0FA090400000103010107 +:1008D00000092111010001224000070581030800E1 +:1008E0000A090401000103010200092111010001AC +:1008F000224D000705820308000A090402000103D3 +:1009000000000009211101000122360007058303C0 +:1009100008000A0904030001030000000921110175 +:1009200000012239000705840310000112011001A3 +:1009300000000008EDFE60600100010200010501F9 +:100940000906A101050719E029E715002501950809 +:1009500075018102050819012905950575019102A6 +:1009600095017503910105071900297715002501E7 +:10097000957875018102C005010980A101850216E3 +:10098000010026B7001A01002AB7007510950181F1 +:1009900000C0050C0901A1018503160100269C0277 +:1009A0001A01002A9C02751095018100C0050109F9 +:1009B00002A1010901A10005091901290515002558 +:1009C00001950575018102950175038101050109F4 +:1009D0003009311581257F95027508810609381582 +:1009E00081257F950175088106050C0A380215815D +:1009F000257F950175088106C0C005010906A10182 +:100A0000050719E029E71500250195087501810200 +:100A100095017508810105081901290595057501DC +:100A200091029501750391010507190029FF150031 +:100A300026FF00950675088100C011241FBECFEF68 +:100A4000DAE0DEBFCDBF04B603FE24C080918F0480 +:100A500090919004A0919104B09192048730904BB2 +:100A6000A740B04BB9F410928F04109290041092EA +:100A700091041092920414BE84B7877F84BF88E1EA +:100A80000FB6F89480936000109260000FBEE0E013 +:100A9000F8E3099513E0A0E0B1E0EAE0F3E602C074 +:100AA00005900D92A033B107D9F714E0A0E3B3E0AD +:100AB00001C01D92AF38B107E1F70E945D160C949A +:100AC00083310C940000089581E0089508950C94FA +:100AD00063050C9464050C9466050E944D2D23E07B +:100AE00030E0281B3109220F209334030895282F6A +:100AF0002F9880918000211108C0877F809380000B +:100B000010928D0010928C001BC088608093800032 +:100B1000233019F48FEF9FEF0FC083E090E0821B2A +:100B20009109880F991F2FEF3FEFA90102C0569539 +:100B300047958A95E2F7CA0190938D0080938C00C7 +:100B40000C946D050E946D0584E080933303109230 +:100B500030030895279A2F988FEF9FEF9093870087 +:100B6000809386008AE08093800089E180938100F1 +:100B70000E94B62C0C94A2050E94AA056E9A769A41 +:100B80000C94EF061F920F920FB60F9211242F9321 +:100B90003F938F939F93EF93FF93E0913103F091F5 +:100BA0003203CF010196909332038093310300907A +:100BB000330302C0F695E7950A94E2F7EF7380914C +:100BC0003003823019F4E03251F404C0813039F43A +:100BD000EF3329F480916F008D7F80936F00F0E0F8 +:100BE000E655FE4FE49121E031E0E29FC001E39F32 +:100BF000900D11240090340302C0969587950A94B5 +:100C0000E2F790938D0080938C00FF91EF919F917C +:100C10008F913F912F910F900FBE0F901F901895BD +:100C2000CF93DF93EC010E944A28BE0180E090E060 +:100C3000DF91CF910C943D240F931F93462F50E0EA +:100C40004F30510508F0ABC0DC01FA01EA5AFF4F02 +:100C50000C94473112968C91882309F4A0C000E0CF +:100C600010E0980140E064E070E088E292E00E94C9 +:100C7000771281E090E011C012968C91882309F4DC +:100C80008EC000E010E0980140E066E070E088EB84 +:100C900091E00E94771282E090E00E9410067FC0EF +:100CA00012968C91882309F47AC000E010E0980134 +:100CB00040E068E070E088EE91E00E94771284E006 +:100CC00090E0EBCF12968C91882311F083E00EC058 +:100CD00083E00E94DB2440E164E083E00E9420077F +:100CE0005EC012968C91882321F084E00E94BA2481 +:100CF000F2CF84E0EECF12968C91882331F085EE0E +:100D00000E94D21C0E940D2D4AC085EE0E949A1DA1 +:100D100046C012968C91882309F441C00E942C0E83 +:100D200000E010E0980140E066E070E088E891E0C3 +:100D30000E94771284E00E94DB2483E00E94DB247F +:100D400080E10E94DB2485E00E94BA240E943728BB +:100D5000811102C00E9413280E944F2890E09093B6 +:100D60007404809373048068809373040E945328F2 +:100D700016C012968C91882391F000E010E0980143 +:100D800040E066E070E088E591E00E94771285E03F +:100D90000E94DB2404C012968C91811103C080E074 +:100DA00090E002C08AEE91E01F910F9108950F9399 +:100DB0001F932FEF89EF90E0215080409040E1F7A2 +:100DC00000C0000000E010E0980140E065E070E045 +:100DD00088E492E00E9477121F910F9108950C947D +:100DE000D7060F931F9300E010E0980140E063E006 +:100DF00070E080E091E00E9477122FEF82E597E0AB +:100E0000215080409040E1F700C000001F910F91F9 +:100E10000C942C0E0F931F9300E010E0980140E01B +:100E200068E070E088E191E00E9477121F910F91D5 +:100E300008950C940A0781E008950C941B07089507 +:100E4000CF92DF92EF92FF920F931F9301E010E099 +:100E500020E030E06801790104C0CC0CDD1CEE1C00 +:100E6000FF1C8A95D2F704C0000F111F221F331FE9 +:100E70006A95D2F70C291D292E293F29C0904504D7 +:100E8000D0904604E0904704F0904804C022D1225C +:100E9000E222F322842FC016D106E206F30641F4C3 +:100EA0001F910F91FF90EF90DF90CF900C94BA2498 +:100EB0001F910F91FF90EF90DF90CF900C94DB2467 +:100EC0000C94BC0580918503882309F448C0809167 +:100ED000410390914203009779F40E947827909300 +:100EE0004203809341038091430390E0009771F4A3 +:100EF0008091440390E00AC00E94842720917002F0 +:100F0000309171022817390740F329C00197880FE3 +:100F1000991F880F991FFC01EB5BFC4F6081718169 +:100F2000828193810E945F0EE091430384E0E89FF9 +:100F3000F0011124EB5BFC4F608171818281938110 +:100F40004FE050E00E9417128091430390E0019619 +:100F50006091440370E00E943331809343030C940A +:100F60006705109287030C942C0E81E08093870311 +:100F70000C94190708958F929F92AF92BF92EF92AF +:100F8000FF920F931F93CF93DF93CDB7DEB7A39755 +:100F90000FB6F894DEBF0FBECDBF7C01FC0100810F +:100FA0001181C8010E947625B8010E944F0C8C0166 +:100FB000B7010E941D07882309F4BDC20531F0E77F +:100FC0001F0741F4F7018281882309F458C00E9469 +:100FD0000E13B1C20631F0E71F0741F4F701828119 +:100FE000882309F44CC00E941713A5C20731F0E70B +:100FF0001F0751F4F7018281882309F440C00E9441 +:101000000A138111F0CFE3CF0831F0E71F0739F45D +:10101000F7018281882399F10E94B5078CC20931BA +:10102000F0E71F0739F4F7018281882341F10E941C +:10103000B10781C20A31F0E71F0749F4F701828145 +:101040008823E9F0809187038111F1CFE5CF0B313F +:10105000F0E71F0739F4F7018281882381F00E94AD +:101060001E130AC00C31F0E71F0749F4F701828113 +:10107000882329F00E9429130E940A075CC28091EC +:101080008703811105C0F70182818111CFC03AC168 +:10109000003E110579F4F7018281882309F44DC0DF +:1010A0000E942C0E81E0809386031092850310929B +:1010B000440341C2023E110559F4F701828188239D +:1010C000E1F10E942C0E109286031092850333C228 +:1010D000033E110591F4F7018281882371F10E948A +:1010E0002C0E1092860381E08093850310924303B7 +:1010F00010924203109241031EC20235110559F4A9 +:10110000F7018281882309F416C2809170029091C0 +:1011100071020A970DC00135110579F4F70182813A +:10112000882309F408C280917002909171020A9696 +:101130009093710280937002FEC14091740283E229 +:10114000EFE8F2E0DE01119601900D928A95E1F749 +:10115000F701808121E030E02C0F3D1F280F311D69 +:10116000C9012091720230917302FC01E20FF31F5A +:101170006081772767FD7095640F711D882777FD63 +:101180008095982F0E94552E20E030E040E451E4F5 +:101190000E94BA2D4B015C01F701218184E090E0AF +:1011A000821B9109BC01882777FD8095982F0E94AA +:1011B000552E9B01AC01C501B4010E94522D9B012B +:1011C000AC0160E070E080E090E40E94C82F20E075 +:1011D00030E04CED50E40E94652F4B015C01F701BB +:1011E00082818823D1F04FE050E0C501B4010E9414 +:1011F0001712809186038823A1F08091440324E094 +:10120000829FF0011124EB5BFC4F80829182A282CD +:10121000B3828F5F8093440304C0C501B4010E9470 +:101220005F0E0F3F110508F02ECF85C1809140035E +:1012300081111FC0043130E7130709F080C00E94FC +:101240001F0781E0809340030E94782790933F031B +:1012500080933E03109237031092390310923803A3 +:1012600010923B0310923A0310923D0310923C03FC +:1012700062C180913E0390913F030E948427883C85 +:10128000910570F480913703E82FF0E0EE0FFF1F17 +:10129000E85CFC4F118300838F5F809337034BC161 +:1012A000043180E7180768F4023090E7190708F066 +:1012B00050C00115E0E71E0771F001301047A1F1A1 +:1012C0001CC1033320E7120709F4E8C004331047B8 +:1012D00009F4FBC012C1F7018281882309F412C10D +:1012E0000E947D200E942C0E0E94F106FFEF24E355 +:1012F0003CE0F15020403040E1F700C000000E9487 +:10130000D32719C10431F0E71F0708F0C3C002302A +:1013100020E71207F0F4011530E7130709F4F2C0D3 +:101320000130104709F0E9C0F7018281882309F4F0 +:10133000E9C080916204816080936204FCC0043142 +:10134000F0E71F0708F0A6C0023020E7120708F4F4 +:10135000ECC0F7018281882309F4D4C00E943728A9 +:10136000811102C00E9413280E944F2890E09093A0 +:101370007404809373040230F0E71F0721F4809116 +:101380007304816080C0033020E7120721F480914C +:101390007304826078C0043030E7130721F4809131 +:1013A0007304846070C0053080E7180719F48091D9 +:1013B000730427C0063090E7190721F48091730465 +:1013C000806161C00730E0E71E0721F4809173045B +:1013D000806259C00830F0E71F0721F48091730440 +:1013E000806451C0093020E7120721F48091730412 +:1013F000806849C00A3030E7130729F480917304EC +:101400008460886040C00B3080E7180721F4809129 +:1014100073048E7F38C00C3090E7190721F4809157 +:1014200073048D7F30C00D30E0E71E0721F48091FA +:1014300073048B7F28C00E30F0E71F0719F48091EA +:10144000730420C00F3020E7120721F48091730449 +:101450008F7E19C0003130E7130721F480917304A7 +:101460008F7D11C0013180E7180721F4809173044A +:101470008F7B09C0809173040231104711F48F777C +:1014800002C08B7F877F80937304809173040E94D6 +:10149000532851C0033390E71907A1F4F701828163 +:1014A000882321F01092350382E016C08091350325 +:1014B000811106C086E20E94D21C86E20E949A1D1B +:1014C00082E018C004331047C1F4F70182818823F9 +:1014D00031F01092360380E20E94E91D2CC0809109 +:1014E0003603811106C087E20E94D21C87E20E9467 +:1014F0009A1D80E20E94F01D1EC081E0809335039A +:1015000080933603C701A3960FB6F894DEBF0FBED3 +:10151000CDBFDF91CF911F910F91FF90EF90BF90C2 +:10152000AF909F908F900C946905011530E71307D9 +:1015300009F0F6CED5CE80E0A3960FB6F894DEBFC4 +:101540000FBECDBFDF91CF911F910F91FF90EF9014 +:10155000BF90AF909F908F9008952CE0729FF00104 +:10156000112430E3839FE00DF11D1124E60FF11DDE +:10157000EE0FFF1FED5FFD4F859194910E94610C6E +:10158000811540E5940708F047C0811520E49207D3 +:1015900008F013C1883E910520F5803E910508F0C2 +:1015A0007CC1883A910578F4853A910508F0A5C088 +:1015B0008130910509F471C108F42EC18430910580 +:1015C00008F06BC129C18B3B910508F4A1C0803C98 +:1015D000910508F421C1FC01EE0FFF1FED57FF4FED +:1015E000E6C0811530E2930758F4811541E0940775 +:1015F00008F053C1803F910508F40EC1906508952D +:10160000811520E3920708F0D5C0FC01FF70EE0FB2 +:10161000FF1FED5FFD4FCBC0811535E5930708F047 +:1016200043C0811544E5940708F0DEC0811522E52A +:10163000920708F5811531E5930708F0C1C0482FDE +:10164000437021E030E002C0220F331F4A95E2F7D9 +:101650003C68AC0164E0569547956A95E1F74370A4 +:10166000342B8F708695869540E2849FC0011124AB +:10167000822B932B0895282F26952695AC01437035 +:1016800055278115934508F0A0C080E2289F90015E +:10169000112481E090E002C0880F991F4A95E2F77B +:1016A000822B932B9C6808958F3240E7940790F427 +:1016B0008F3120E7920708F0A2C0811536E5930725 +:1016C00008F497C09C0130562115304108F0A4C0A1 +:1016D0009F7093C0803320E7920709F497C008F405 +:1016E00092C0813340E7940709F493C08233904756 +:1016F00009F092C080E093ED0895853A910509F4D0 +:101700008EC0863A910509F08DC082E890E4089574 +:10171000883A910509F489C0893A910509F488C08D +:101720008A3A910509F487C08B3A910509F486C07D +:101730008C3A910509F485C08D3A910509F484C06D +:10174000803B910509F483C08E3A910509F482C06B +:101750008F3A910509F481C0813B910509F480C05D +:10176000823B910509F47FC0833B910509F47EC05B +:10177000843B910509F47DC0853B910509F47CC04B +:10178000863B910509F47BC0873B910509F47AC03B +:10179000883B910509F479C0893B910509F478C02B +:1017A0008A3B910509F477C080E094E4089585911F +:1017B000949108959927906C08959F70906A089568 +:1017C000982F8827816F906A089590E2299F900151 +:1017D000112481E090E002C0880F991F4A95E2F73A +:1017E000822B932B9A680895982F8827846F906A8C +:1017F00008958F719927982F8827906208958F51A7 +:101800009047946D089580E091ED089580E090ED0B +:10181000089580E092ED089580E090E0089581E8D9 +:1018200090E4089583E890E4089582EE94E40895A6 +:1018300089EE94E408958AEE94E4089585EB94E4A7 +:10184000089586EB94E4089587EB94E408958CEC76 +:1018500094E408958DEC94E4089583E895E4089564 +:101860008AE895E4089582E995E4089584E995E489 +:10187000089581E296E4089583E296E4089584E26F +:1018800096E4089585E296E4089586E296E4089544 +:1018900087E296E408958AE296E4089508959CE02C +:1018A000799FF001112490E3899FE00DF11D11242F +:1018B000E60FF11DEE0FFF1FED5FFD4F8591949137 +:1018C00008958238910549F1B0F48133910509F406 +:1018D00058C048F48932910509F44EC08A32910506 +:1018E00009F454C008958533910509F440C0893343 +:1018F000910599F00895833E910529F138F4803ED1 +:10190000910591F0823E9105A1F00895863E9105E2 +:10191000F9F0873E910531F108952091730420FD7F +:101920003AC021FD38C008958091730480FD35C010 +:1019300032C08091730482FF32C08091730484FDB1 +:1019400030C083EE39C08091730482FD28C0F5CF8A +:101950008091730483FF27C08091730484FD21C0AC +:1019600087EE2AC08091730483FD1DC0F5CF80915E +:10197000730485FD1AC01BC08091730485FD17C0D8 +:1019800014C08091730486FD14C015C08091730447 +:1019900086FD11C00EC080EE0FC089E30DC082EE3F +:1019A0000BC080E009C086EE07C089E205C085E370 +:1019B00003C08AE201C081E390E008950C946B05B6 +:1019C000E82FF0E0E254FD4F8081E82FEF70F0E067 +:1019D00082958F7021E030E0A90102C0440F551FAD +:1019E0008A95E2F740A308950F931F93CF93DF9357 +:1019F000C3E0D0E001E010E0FE01E254FD4F808141 +:101A0000E82FEF70F0E021A182958F70A80102C04D +:101A1000440F551F8A95E2F7CA01822B81A38C2FB0 +:101A20000E94E00C219740F78BE090E061E070E0CD +:101A3000FC01EE54FD4F2081E22FEF70F0E042A157 +:101A400022952F70DB0102C0AA0FBB1F2A95E2F777 +:101A50009D01242B22A3019758F7DF91CF911F916D +:101A60000F9108950F931F93CF93DF9385B78068ED +:101A700085BF85B7806885BFC3E0D0E001E010E096 +:101A8000FE01E254FD4F8081E82FEF70F0E021A1CC +:101A900082958F70A80102C0440F551F8A95E2F706 +:101AA000CA01822B81A38C2F0E94E00C219740F762 +:101AB0008BE090E061E070E0FC01EE54FD4F20818E +:101AC000E22FEF70F0E042A122952F70DB0102C0FF +:101AD000AA0FBB1F2A95E2F79D01242B22A3019791 +:101AE00058F7DF91CF911F910F910C946007EF92FF +:101AF000FF920F931F93CF93DF9300E913E0C3E0AE +:101B0000EE24E394F12CD5E08C2F0E94E00C8BE0C6 +:101B100090E040E050E0FC01EE54FD4F6081E62F84 +:101B2000EF70F0E020A130E062956F7002C0359553 +:101B300027956A95E2F720FD09C09701082E02C09B +:101B4000220F331F0A94E2F7422B532B019718F709 +:101B5000F801929182918F018417950721F05183AA +:101B60004083D09375028C2F0E94E00CC15060F628 +:101B70008091750287FD2CC08150809375028F3F44 +:101B800039F08FE99FE00197F1F700C0000020C015 +:101B900080918E0390918F03909397038093960387 +:101BA00080918C0390918D0390939503809394037F +:101BB00080918A0390918B03909393038093920377 +:101BC000809188039091890390939103809390036F +:101BD0000E94620781E0DF91CF911F910F91FF90EA +:101BE000EF900895E82FF0E0EE0FFF1FE057FC4F55 +:101BF00080819181089508950F931F93CF9308E9F1 +:101C000013E0C0E0F801929182918F010E94F126C9 +:101C1000C80FF3E000391F07A9F78C2FCF911F9150 +:101C20000F9108950E943728811102C00E94132845 +:101C30000E946128809379043E9A809171008D7F83 +:101C40008093710082E0809390008AE180939100FC +:101C500081E080939A03089580919A03811102C0D4 +:101C60000E94120E1092EA031092E9038091710013 +:101C70008D7F80937100809190008F73809390008E +:101C80001092AC031092AB031092E3031092E403A2 +:101C90001092E5031092E6031092E2031092E10322 +:101CA000E1ECF3E0A1EBB3E01192119211921192E9 +:101CB0001D921D9283E0E13EF807B1F70895CF929F +:101CC000DF92EF92FF920F931F93CF93DF932091B8 +:101CD000AB03222309F484C06B017C0180919A0339 +:101CE000811102C00E94120E01EE13E0C7E0D0E0A5 +:101CF000A7019601F80192918291729162918F01F0 +:101D00000E94B62D811131C0FE01EE0FFF1FEE0FB4 +:101D1000FF1FEF53FC4F1082118212821382DE01EB +:101D2000AA0FBB1FAF54BC4F11961C921E92C73016 +:101D3000D105E9F021964481558166817781408300 +:101D400051836283738314821582168217821296DE +:101D50008D919C91139711969C938E9313961C9240 +:101D60001E92129734961296E2CF219708F6809130 +:101D7000E9039091EA03019797FD05C09093EA0368 +:101D80008093E90304C01092EA031092E903809162 +:101D9000E9039091EA032091E7033091E8032817C3 +:101DA000390724F01092E8031092E703892BC1F45D +:101DB000809171008D7F80937100809190008F736E +:101DC000809390001092E3031092E4031092E503D5 +:101DD0001092E6031092E2031092E1031092AB031B +:101DE000DF91CF911F910F91FF90EF90DF90CF90F7 +:101DF00008951F920F920FB60F9211244F925F9287 +:101E00006F927F928F929F92AF92BF92CF92DF920A +:101E1000EF92FF922F933F934F935F936F937F9334 +:101E20008F939F93AF93BF93CF93DF93EF93FF93E2 +:101E30008091AB03882309F49BC1C091E903D09141 +:101E4000EA031C161D060CF093C140909B035090B2 +:101E50009C0360909D0370909E0320E030E0A901F8 +:101E6000C301B2010E94612F18160CF065C0C13089 +:101E7000D10509F452C08091E7039091E803BE01B7 +:101E80000E9433317C019093E8038093E7038090B4 +:101E9000AD039090AE03A090AF03B090B00320E0EC +:101EA00030E040E85FE3C501B4010E94522D609329 +:101EB000AD037093AE038093AF039093B003F7012B +:101EC000EE0FFF1FEE0FFF1FEF53FC4FA301920118 +:101ED00060817181828193810E94BA2D20E030E07F +:101EE00040E05EE30E94652F9B01AC01C501B40197 +:101EF0000E94612F18168CF4C7010196BE010E9442 +:101F000033319093E8038093E7031092AD0310926E +:101F1000AE031092AF031092B003E091E703F0918B +:101F2000E803EE0FFF1FEE0FFF1FEF53FC4F608122 +:101F3000718182819381D0C0C090E303D090E4038B +:101F4000E090E503F090E60320E030E0A901C7014E +:101F5000B6010E94B62D2197882309F4A2C0FE0184 +:101F6000EE0FFF1FEE0FFF1FEF53FC4F808091809D +:101F7000A280B380A5019401C701B6010E94B62DCD +:101F800087FF31C0A501940160E070E08CED93EC17 +:101F90000E94BA2D20E030E040E451E40E94BA2DC6 +:101FA00020E030E040E05FE30E94652F9B01AC0140 +:101FB00060E070E080E090E40E94C82F9B01AC01DB +:101FC000C501B4010E94652F9B01AC01C701B60198 +:101FD0000E94B62D87FF07C0A701960160E070E060 +:101FE0008CED93E439C0A5019401C701B6010E94AC +:101FF000612F18160CF055C0A501940160E070E047 +:102000008CED93E40E94BA2D20E030E040E451E4EE +:102010000E94BA2D20E030E040E05FE30E94652F8F +:102020009B01AC0160E070E080E090E40E94C82F6A +:102030009B01AC01C501B4010E94652F9B01AC015D +:10204000C701B6010E94612F18165CF5A701960121 +:1020500060E070E08CED93EC0E94BA2D20E030E05F +:1020600040E451E40E94BA2D20E030E040E05FE31C +:102070000E94652F9B01AC0160E070E080E090E47D +:102080000E94C82F9B01AC01C701B6010E94652FB9 +:102090006093E3037093E4038093E5039093E60376 +:1020A00013C0FE01EE0FFF1FEE0FFF1FEF53FC4F9B +:1020B00080819181A281B3818093E3039093E403B3 +:1020C000A093E503B093E6036091E3037091E4030A +:1020D0008091E5039091E603209198033091990354 +:1020E0002F3F4FEF340731F02F5F3F4F309399036D +:1020F000209398030E9434136B017C0120E034E2AA +:1021000044EF51E40E94B62D87FF08C086EFC82E29 +:1021100088E2D82E84EFE82E81E4F82E20E030E02B +:1021200040E051E4C701B6010E94652F9B01AC015C +:1021300060E074E284E79BE40E94BA2D6B017C01AD +:102140000E94272E7093970060939600209176024C +:10215000309177024091780250917902C701B6011F +:102160000E94652F0E94272E70939900609398001B +:102170008091AC03882309F433C1C090A703D090A9 +:10218000A803E090A903F090AA0320E030E0A901A1 +:10219000C701B6010E94612F1816D4F580919803EB +:1021A000909199038F3F2FEF920729F0019690931A +:1021B000990380939803C701B6010E94341320E06D +:1021C00030E040E051E40E94652F9B01AC0160E0EB +:1021D00074E284E79BE40E94BA2D6B017C010E94AB +:1021E000272E70939700609396002091760230918D +:1021F00077024091780250917902C701B6010E949E +:10220000652F0E94272E709399006093980008C054 +:1022100010929700109296001092990010929800D8 +:102220006091A1037091A2036F5F7F4F7093A2032F +:102230006093A103209196003091970080E090E098 +:10224000232BF1F0C0919600D09197000E94532E5D +:102250006B017C01BE0180E090E00E94532E9B0147 +:10226000AC016091A3037091A4038091A5039091A8 +:10227000A6030E94BA2D20E03FEF4FE757E410C0BD +:102280000E94532E6B017C0120E030EE4FEF54E4AE +:102290006091A3037091A4038091A5039091A6037C +:1022A0000E94652F9B01AC01C701B6010E94612FFE +:1022B00087FD96C080919F038F5F80939F0390E07E +:1022C000209175043091760482179307A0F08091D5 +:1022D0008004882319F010929F030DC08091710033 +:1022E0008D7F80937100809190008F738093900018 +:1022F0001092AC037DC08091A003C0919F03811117 +:1023000028C0C0907A04D0907B04E0907C04F090C8 +:102310007D0420E030E0A901C701B6010E94612FD1 +:102320001816BCF481E08093A0031092A7031092CA +:10233000A8031092A9031092AA03C092A303D092FB +:10234000A403E092A503F092A603C150C0939F039B +:1023500043C01092A0031092990310929803E09149 +:102360007704F091780448E0C49FE00DF11D11243A +:1023700080819181A281B3818093A7039093A80368 +:10238000A093A903B093AA0320E030E040E85EE305 +:1023900064817581868197810E94652F6B017C0124 +:1023A00080917A02682F70E080E090E00E94532EC6 +:1023B00020E030E048EC52E40E94BA2D9B01AC01D1 +:1023C000C701B6010E94652F6093A3037093A40315 +:1023D0008093A5039093A6031092A2031092A103E9 +:1023E0008091790480FD04C01092AC031092AB037D +:1023F000FF91EF91DF91CF91BF91AF919F918F911D +:102400007F916F915F914F913F912F91FF90EF904E +:10241000DF90CF90BF90AF909F908F907F906F9004 +:102420005F904F900F900FBE0F901F901895CF9216 +:10243000DF92EF92FF92CF93DF936B017C01EA0171 +:1024400080919A03811102C00E94120E809179043A +:1024500080FF46C08091E9039091EA0308970CF051 +:102460003FC0809171008D7F809371008091AC039B +:1024700081110E942C0E81E08093AB03109299038E +:102480001092980320E030E0A901C701B6010E9434 +:10249000612F1816DCF48091E9039091EA03FC01A6 +:1024A000EE0FFF1FEE0FFF1FEF53FC4FC082D182D4 +:1024B000E282F382FC01EE0FFF1FEF54FC4FD18349 +:1024C000C08301969093EA038093E90380917100A1 +:1024D000826080937100809190008068809390006A +:1024E000DF91CF91FF90EF90DF90CF9008958F9282 +:1024F0009F92AF92BF92CF92DF92EF92FF920F9393 +:102500001F93CF93DF93EC017B01D42E4801590137 +:1025100080919A03811102C00E94120E8091790469 +:1025200080FF6BC0809171008D7F809371008091DE +:10253000AB0381110E942C0E81E08093AC03D093F9 +:102540007804C0937704F0927604E0927504D092F8 +:10255000800480927A0490927B04A0927C04B092D2 +:102560007D041092AD031092AE031092AF0310924F +:10257000B00310929F0388819981AA81BB818093C7 +:10258000A7039093A803A093A903B093AA0320E004 +:1025900030E040E85EE36C817D818E819F810E9406 +:1025A000652F6B017C0180917A02682F70E080E0DA +:1025B00090E00E94532E20E030E048EC52E40E946C +:1025C000BA2D9B01AC01C701B6010E94652F609333 +:1025D000A3037093A4038093A5039093A603109282 +:1025E000A2031092A1038091710082608093710018 +:1025F00080919000806880939000DF91CF911F912F +:102600000F91FF90EF90DF90CF90BF90AF909F9091 +:102610008F90089580917904817008958091790454 +:102620008160809379040E9465280C94BA07809198 +:1026300079048E7F809379040C9465288091EB0354 +:1026400090E0019666E070E00E9433318093EB03E6 +:1026500008958091EB0390E0019766E070E00E949E +:1026600033318093EB0308958F929F92AF92BF9284 +:10267000CF92DF92EF92FF920F931F93CF93DF934E +:102680006B017C01C0919803D0919903BE0180E059 +:1026900090E00E94532E4B015C01A701960160E07F +:1026A00070E08CE594E40E94BA2D9B01AC01C50159 +:1026B000B4010E94652F0E94272E2091EB03233046 +:1026C00009F473C028F4222351F02130E9F02CC121 +:1026D000243009F4A0C0253009F4E0C025C180E011 +:1026E00090E0A0E0BFE38093760290937702A093FE +:1026F0007802B093790210929B0310929C0310927F +:102700009D0310929E0310C110929B0310929C0394 +:1027100010929D0310929E036431710540F46A305B +:10272000710560F520E030E040E85EE32BC0693CD5 +:10273000710508F0AAC080E090E00E94532E20E0CE +:1027400030E040EA51E40E94512D20E030E044E3C3 +:1027500053E40E94BA2D9B01AC010E94652F20E03A +:1027600030E040E05EE30E94652F9B01AC0160E039 +:1027700070E080E09EE30E94512D44C020E030E0F4 +:1027800040E05FE3C701B6010E94652F6B017C0149 +:1027900080E090E0A0E0BEE3809376029093770221 +:1027A000A0937802B0937902BFC010929B0310925D +:1027B0009C0310929D0310929E034AE0469F900155 +:1027C000479F300D1124C90168EB7BE00E941F3147 +:1027D000BC016C5D754077FF03C07195619571090F +:1027E000882777FD8095982F0E94552E2EE333EC95 +:1027F0004EE259E30E94652F20E030E040EC5EE3BA +:102800000E94522D60937602709377028093780233 +:102810009093790289C010929B0310929C031092AE +:102820009D0310929E03CE0183709927892BE1F0BE +:10283000BE016170772780E090E00E94532E20E077 +:1028400030E040E05EE30E94652F20E030E040E4AD +:102850005FE30E94522D609376027093770280931B +:102860007802909379020CC080E090E0A0E0BFE392 +:102870008093760290937702A0937802B0937902C6 +:10288000C770DD27CD2B09F04FC010927602109251 +:102890007702109278021092790246C010929B0340 +:1028A00010929C0310929D0310929E0300E010E092 +:1028B00020E03FE3009376021093770220937802A2 +:1028C000309379026739710578F180E090E00E94D9 +:1028D000532E20E030E047E153E40E94512D20E0E8 +:1028E00030E04AE754E40E94BA2D20E030E048E4AA +:1028F00052E40E94652F20E030E040EA51E40E945B +:10290000972E0E94222E660F771F660F771FFB01FE +:10291000EE53FD4F2081318142815381C701B601C1 +:102920000E94652F6B017C01C701B601DF91CF9139 +:102930001F910F91FF90EF90DF90CF90BF90AF90DD +:102940009F908F9008958091FC030895CF93DF931B +:1029500000D01F92CDB7DEB79C01809185048430F2 +:1029600019F593E099833B832A839093E9008FEFD5 +:102970009091E800815095FD06C095ED9A95F1F78C +:1029800000008111F5CF8091E80085FF0DC040E087 +:1029900050E063E070E0CE0101960E940317809141 +:1029A000E8008E778093E8000F900F900F90DF91F2 +:1029B000CF910895CF93DF9300D01F92CDB7DEB7AC +:1029C00020918504243021F522E029839B838A838A +:1029D00083E08093E9008FEF9091E800815095FDAE +:1029E00006C095ED9A95F1F700008111F5CF809121 +:1029F000E80085FF0DC040E050E063E070E0CE01EC +:102A000001960E9403178091E8008E778093E8007A +:102A10000F900F900F90DF91CF9108952091850432 +:102A20002430F1F422E02093E9002FEF3091E80008 +:102A3000215035FD06C035ED3A95F1F70000211122 +:102A4000F5CF2091E80025FF0BC040E050E065E0A5 +:102A500070E00E9403178091E8008E778093E80071 +:102A60000895CF93DF93EC0190918504943009F0A1 +:102A700046C0809185028823D9F080918602882300 +:102A8000B9F09093E9008FEF9091E800815095FDA7 +:102A900006C095E19A95F1F700008111F5CF80917C +:102AA000E80085FF2CC040E050E060E170E017C016 +:102AB00081E08093E9008FEF9091E800815095FDCF +:102AC00006C095ED9A95F1F700008111F5CF809140 +:102AD000E80085FF14C040E050E068E070E0CE01FF +:102AE0000E9403178091E8008E778093E80080E1D0 +:102AF000FE01ACEEB3E001900D928A95E1F7DF9113 +:102B0000CF91089580918404811109C00E94981882 +:102B10000E94F5188091E20084608093E20008959D +:102B2000109284040895089508950C943B2742E080 +:102B300061EC81E00E94121842E061EC82E00E94A8 +:102B4000121842E061EC83E00E94121842E161EC4D +:102B500084E00C94121880918704833009F455C0E6 +:102B600030F4813071F0823009F48EC008958A30DB +:102B700009F47AC08B3009F460C0893009F09CC038 +:102B800020C080918604813A09F096C08091E800C7 +:102B9000877F8093E80080918A0490918B04892B31 +:102BA00021F460E18CEE93E003C060E080E090E00F +:102BB00070E00E944E178091E8008B778093E800C8 +:102BC000089580918604813209F076C080918A044C +:102BD00090918B04009719F0039709F06DC08091D4 +:102BE000E800877F8093E8008091E80082FD05C0BF +:102BF000809185048111F8CF5FC08091F1008093AE +:102C0000FC038091E8008B7753C080918604813A61 +:102C100009F052C080918A0490918B04892B09F0AD +:102C20004BC08091E800877F8093E8008091E800A6 +:102C300080FFFCCF8091850236C08091860481326E +:102C4000D9F580918A0490918B04892BA9F5809104 +:102C5000E800877F8093E8000E94471880918804ED +:102C6000809385020C947D2080918604813221F529 +:102C70008091E800877F8093E8000E944718809148 +:102C800089048093FD03089580918604813AA1F41C +:102C90008091E800877F8093E8008091E80080FFC2 +:102CA000FCCF8091FD038093F1008091E8008E7746 +:102CB0008093E8000C944718089584B7877F84BFF9 +:102CC00088E10FB6F89480936000109260000FBE08 +:102CD00080E880936100109261000E94EA1B0E94CC +:102CE00098180E94F5188091E20084608093E200B9 +:102CF00078940E947B1B0E94EC1B8BE792E00E9461 +:102D0000961B80918504853069F40E94FD26809190 +:102D100083048823B1F30E942A27882391F30E9419 +:102D2000ED16EFCF0E94F41BECCF292F3327233071 +:102D30003105C9F064F42130310581F022303105CC +:102D400009F043C08DE690E02FEB38E042C021321D +:102D50003105F1F02232310541F137C082E190E0D6 +:102D60002CE239E036C099278130910541F082305C +:102D7000910541F0892B49F5EBEBF8E005C0EDE852 +:102D8000F8E002C0E3E6F8E0849190E09F0121C002 +:102D90006430D8F4E62FF0E0EE0FFF1FE25EFC4F48 +:102DA0002081318189E090E014C0643070F470E0DB +:102DB000FB01EE0FFF1FEA5EFC4F20813181FB011A +:102DC000EE5EFC4F808190E004C080E090E020E067 +:102DD00030E0FA0131832083089580E189BD82E1EA +:102DE00089BD09B400FEFDCF8091D8008F7D80930E +:102DF000D8008091E00082608093E0008091E00044 +:102E000081FDFCCF0895CF92DF92EF92FF920F9356 +:102E10001F93CF93DF93EC018B016A010E94661828 +:102E2000811133C0C114D10439F0F6018081918140 +:102E3000081B190BC80FD91FE12CF12C0115110526 +:102E400019F18091E80085FD16C08091E8008E7729 +:102E50008093E800C114D10449F0F601808191818A +:102E6000E80EF91EF182E08285E00FC00E9466182C +:102E7000882321F30AC089918093F1000150110940 +:102E8000FFEFEF1AFF0ADACF80E0DF91CF911F91B9 +:102E90000F91FF90EF90DF90CF90089520918C04D8 +:102EA00030918D042617370748F06115710539F404 +:102EB0002091E8002E772093E80001C0B90140E09E +:102EC00061157105A9F120918504222309F443C0FD +:102ED000253009F442C02091E80023FD40C0209134 +:102EE000E80022FD32C02091E80020FFE9CF4091A8 +:102EF000F3002091F20030E0342BFC01CF0161158A +:102F0000710559F02830310540F481918093F1002A +:102F1000615071092F5F3F4FF1CF41E028303105FB +:102F200009F040E02091E8002E772093E800C8CF18 +:102F30004111C9CF0AC080918504882361F0853092 +:102F400061F08091E80083FD0AC08091E80082FF73 +:102F5000F2CF80E0089582E0089583E0089581E053 +:102F6000089520918C0430918D042617370748F07E +:102F70006115710539F42091E8002E772093E8005F +:102F800001C0B901FC0120E06115710591F180914A +:102F90008504882309F440C0853009F43FC080913E +:102FA000E80083FD3DC08091E80082FD2FC0809144 +:102FB000E80080FFE9CF2091F3008091F20090E0DB +:102FC000922B6115710559F08830910540F42491D8 +:102FD0002093F1003196615071090196F2CF21E002 +:102FE000089709F020E08091E8008E778093E80050 +:102FF000CBCF2111CCCF0AC080918504882361F00A +:10300000853061F08091E80083FD0AC08091E8007E +:1030100082FFF2CF80E0089582E0089583E0089572 +:1030200081E00895982F973058F59093E90098170C +:1030300039F07091EC002091ED005091F00003C048 +:10304000242F762F50E021FF19C03091EB003E7FF6 +:103050003093EB003091ED003D7F3093ED003091E7 +:10306000EB0031603093EB007093EC002093ED00A7 +:103070005093F0002091EE0027FF07C09F5FD3CF51 +:103080008F708093E90081E0089580E00895809139 +:10309000860487FF11C08091E80082FD05C0809101 +:1030A00085048111F8CF11C08091E8008B770BC0A7 +:1030B00080918504882349F08091E80080FFF8CF53 +:1030C0008091E8008E778093E80008952091E400D5 +:1030D0003091E50095E64091EC00842F817040FF2F +:1030E00022C08091E80080FD1CC080918504882367 +:1030F00091F0853091F08091EB0085FD10C04091FA +:10310000E4005091E5004217530729F39A019150CA +:1031100011F784E0089582E0089583E0089581E046 +:10312000089580E008954091E80042FFDECF0895C1 +:103130000E9406190E940E19E0EEF0E08081816085 +:103140008083E8EDF0E080818F77808319BCA7ED64 +:10315000B0E08C918E7F8C9380818F7E80831092E3 +:10316000840408950F931F93CF93DF930E94061951 +:103170000E940E19C8EDD0E088818F7788838881FE +:103180008068888388818F7D888319BC109285042C +:1031900010928104109283041092820400EE10E0D9 +:1031A000F80180818B7F808388818160888342E001 +:1031B00060E080E00E941218E1EEF0E080818E7FF6 +:1031C0008083E2EEF0E0808181608083808188608E +:1031D0008083F80180818E7F8083888180618883ED +:1031E000DF91CF911F910F910895E8EDF0E080817C +:1031F0008F7E8083E7EDF0E080818160808384E0D2 +:1032000082BF81E0809384040C94B218E8EDF0E072 +:1032100080818E7F80831092E20008951092DA0000 +:103220001092E10008951F920F920FB60F92112491 +:103230002F933F934F935F936F937F938F939F93BE +:10324000AF93BF93EF93FF938091E10082FF0BC098 +:103250008091E20082FF07C08091E1008B7F809324 +:10326000E1000E947A1B8091DA0080FF1FC08091EC +:10327000D80080FF1BC08091DA008E7F8093DA0037 +:103280008091D90080FF0DC080E189BD82E189BDB8 +:1032900009B400FEFDCF81E0809385040E94821571 +:1032A00005C019BC109285040E9490158091E10020 +:1032B00080FF19C08091E20080FF15C08091E2007C +:1032C0008E7F8093E2008091E20080618093E20033 +:1032D0008091D80080628093D80019BC85E08093EB +:1032E00085040E9494158091E10084FF30C0809194 +:1032F000E20084FF2CC080E189BD82E189BD09B470 +:1033000000FEFDCF8091D8008F7D8093D800809102 +:10331000E1008F7E8093E1008091E2008F7E8093B8 +:10332000E2008091E20081608093E200809181045C +:10333000882311F084E007C08091E30087FD02C07C +:1033400081E001C083E0809385040E9495158091FF +:10335000E10083FF29C08091E20083FF25C08091B6 +:10336000E100877F8093E10082E0809385041092E2 +:1033700081048091E1008E7F8093E1008091E200E2 +:103380008E7F8093E2008091E20080618093E20072 +:1033900042E060E080E00E9412188091F0008860B6 +:1033A0008093F0000E949315FF91EF91BF91AF9130 +:1033B0009F918F917F916F915F914F913F912F914D +:1033C0000F900FBE0F901F9018951F920F920FB67F +:1033D0000F9211242F933F934F935F936F937F939B +:1033E0008F939F93AF93BF93CF93DF93EF93FF930D +:1033F000C091E900CF708091EC00D82FD17080FD92 +:10340000D0E81092E9008091F000877F8093F0006F +:1034100078940E94291A1092E9008091F000886047 +:103420008093F000CD2BCF70C093E900FF91EF9116 +:10343000DF91CF91BF91AF919F918F917F916F91CC +:103440005F914F913F912F910F900FBE0F901F9062 +:1034500018951F93CF93DF93CDB7DEB7AA970FB61A +:10346000F894DEBF0FBECDBFE6E8F4E088E08E0F33 +:103470009091F10091938E13FBCF0E94AB15809138 +:10348000E80083FF1FC18091860490918704492F33 +:1034900050E04A30510508F015C1FA01EB59FF4FD1 +:1034A0000C944731803881F0823809F00BC180914B +:1034B0008A048F708093E9008091EB0085FB882758 +:1034C00080F91092E90006C08091820490918304F3 +:1034D000911182609091E800977F9093E80080932B +:1034E000F1001092F100C8C0282F2D7F09F0EAC02A +:1034F000882319F0823061F0E5C080918804813022 +:1035000009F0E0C0933009F080E0809383042BC081 +:1035100080918804811127C080918A048F7009F4FA +:10352000D1C08093E9002091EB0020FF1CC09330B4 +:1035300021F48091EB00806214C09091EB009061C7 +:103540009093EB0021E030E0A90102C0440F551F29 +:103550008A95E2F74093EA001092EA008091EB002E +:1035600088608093EB001092E9008091E800877FEB +:1035700086C08111A7C0109188041F778091E30055 +:103580008078812B8093E3008091E800877F80938F +:10359000E8000E9447188091E80080FFFCCF8091EE +:1035A000E30080688093E300111102C082E001C053 +:1035B00083E08093850486C08058823008F082C002 +:1035C00080918804909189048C3D53E0950779F5AA +:1035D00083E08A838AE289834FB7F894DE011396E9 +:1035E00020E03EE051E2E32FF0E050935700E491F9 +:1035F00020FF03C0E295EF703F5FEF708E2F90E0E9 +:10360000EA3010F0C79601C0C0968D939D932F5F4E +:10361000243149F74FBF8091E800877F8093E8000D +:103620006AE270E0CE0101960E944E1714C0AE010E +:103630004F5F5F4F60918A040E949516BC0100970E +:1036400009F440C09091E800977F9093E800898149 +:103650009A810E94B1178091E8008B778093E800EF +:1036600031C0803879F58091E800877F8093E80049 +:10367000809181048093F1008091E8008E7780939F +:10368000E8000E9447181EC081111CC09091880458 +:103690009230C0F48091E800877F8093E800909397 +:1036A00081040E94471880918104811106C0809195 +:1036B000E30087FD02C081E001C084E080938504BF +:1036C0000E9497158091E80083FF0AC08091E8006E +:1036D000877F8093E8008091EB0080628093EB000D +:1036E000AA960FB6F894DEBF0FBECDBFDF91CF9183 +:1036F0001F9108950895CF93809185048823A1F0A8 +:10370000C091E900CF709091EC00892F817090FDFD +:1037100080E8C82B1092E9008091E80083FD0E94A8 +:10372000291ACF70C093E900CF91089590930304B4 +:10373000809302040895E0910204F091030430970D +:1037400021F00190F081E02D099480E00895E0914E +:103750000204F0910304309721F00280F381E02D00 +:1037600009940895E0910204F0910304309721F048 +:103770000480F581E02D0994089520910004309192 +:1037800001048217930771F0909301048093000461 +:10379000E0910204F0910304309721F00680F78154 +:1037A000E02D099408952091FE033091FF038217C4 +:1037B000930771F09093FF038093FE03E09102045E +:1037C000F0910304309721F00084F185E02D0994F5 +:1037D000089508950C94E91B0E946F270E94320DF2 +:1037E0000E94F5270C94B62C5F926F927F928F9275 +:1037F0009F92AF92BF92CF92DF92EF92FF920F9380 +:103800001F93CF93DF9300D000D01F92CDB7DEB7C8 +:103810000E94770D9DE0C92E94E0D92E03E010E0C0 +:10382000AA24A394B12C502E802F0E94F20D4C019B +:10383000F601729062906F01682679266114710416 +:10384000A1F40150110978F78FEF89838A831B82D5 +:103850000E9478278160782F9D838C8349815A81CB +:103860006B818D810E94A41C38C08091620481FD0F +:103870000E94FB0D2BE030E07501022E02C0EE0C21 +:10388000FF1C0A94E2F7C70186219721892B09F1D1 +:1038900029835A828E209F2091E0892809F490E0A4 +:1038A0009B830E9478278160782F9D838C83498138 +:1038B0005A816B818D810E94A41C000F111FF80199 +:1038C000EB5FFB4F80819181E826F926F182E0824F +:1038D00004C02150310980F6B4CF0E94E429109130 +:1038E00004040E949B1B1817D1F00E949B1B80931D +:1038F00004040F900F900F900F900F90DF91CF91D5 +:103900001F910F91FF90EF90DF90CF90BF90AF90FD +:103910009F908F907F906F905F900C94DE0C0F9033 +:103920000F900F900F900F90DF91CF911F910F91FB +:10393000FF90EF90DF90CF90BF90AF909F908F90CF +:103940007F906F905F900895CF93DF93CDB7DEB7F0 +:103950002B970FB6F894DEBF0FBECDBF4F835887AD +:1039600069877A878B87DE01119686E0FD011192C7 +:103970008A95E9F785E0FE01379601900D928A95C8 +:10398000E1F749815A816B817C818D819E810E9402 +:103990001B232B960FB6F894DEBF0FBECDBFDF9171 +:1039A000CF910895CF93882309F4C2C0C82F8238DD +:1039B00059F40E949B1B81FDBBC089E30E94F52541 +:1039C0000E94C22689E30CC0833879F40E949B1BB5 +:1039D00080FDAEC083E50E94F5250E94C22683E5E6 +:1039E0000E943726CF910C94C226843859F40E9445 +:1039F0009B1B82FD9DC087E40E94F5250E94C22684 +:103A000087E4EECF8CEF8C0F813A48F48C2F0E9424 +:103A10001F2C81118DC08C2F0E94F525E3CF80E2F1 +:103A20008C0F883048F4C77081E001C0880FCA95B8 +:103A3000EAF70E947B26D6CF8BE58C0F833078F493 +:103A4000C53A29F0C63A31F083E890E005C081E834 +:103A500090E002C082E890E0CF910C94BD1B88E515 +:103A60008C0F833108F064C0C83A39F1C93A41F18A +:103A7000CA3A49F1CB3A51F1CC3A59F1CD3A61F118 +:103A8000C03B69F1CE3A71F1CF3A79F1C13B81F196 +:103A9000C23B89F1C33B91F1C43B99F1C53BA1F114 +:103AA000C63BA9F1C73BB1F1C83BB9F1C93BC1F174 +:103AB000CA3BC9F180E090E038C082EE90E035C0AA +:103AC00089EE90E032C08AEE90E02FC085EB90E066 +:103AD0002CC086EB90E029C087EB90E026C08CECF0 +:103AE00090E023C08DEC90E020C083E891E01DC001 +:103AF0008AE891E01AC082E991E017C084E991E078 +:103B000014C081E292E011C083E292E00EC084E230 +:103B100092E00BC085E292E008C086E292E005C028 +:103B200087E292E002C08AE292E0CF910C94D31B2C +:103B3000CF910895882309F44BC0823859F40E942C +:103B40009B1B81FF45C089E30E94F5250E94C22688 +:103B500089E30CC0833871F40E949B1B80FF38C03E +:103B600083E50E94F5250E94C22683E50E94372640 +:103B70000C94C226843859F40E949B1B82FF28C0F3 +:103B800087E40E94F5250E94C22687E4EFCF9CEFD0 +:103B9000980F913A58F390E2980F983050F487704C +:103BA00091E001C0990F8A95EAF7892F0E9481263A +:103BB000DFCF9BE5980F933020F480E090E00C94E9 +:103BC000BD1B885A833120F480E090E00C94D31B15 +:103BD0000895882321F00E947B260C94C226089524 +:103BE000882321F00E9481260C94C22608957F929A +:103BF0008F929F92AF92BF92CF92DF92EF92FF92FD +:103C00000F931F93CF93DF931F92CDB7DEB77C0145 +:103C1000C62E772EFC01058102950F7012811111BD +:103C20000E9498260E94EE25882379F0112369F0DE +:103C300080E28C0D883048F082E00E94D7250E94F7 +:103C4000EE2591E0D82ED92601C0D12CE72DE295A2 +:103C5000EF70F0E0E159FF4F0C944731872D807FE2 +:103C6000072D0F70882311F00295007F112389F032 +:103C7000002309F499C180E28C0D883020F4802F54 +:103C80000E947B2603C0802F0E948B260E94C226A2 +:103C90008BC18C2D0E949A1D002309F4C3C180E2C0 +:103CA0008C0D883020F4802F0E94812603C0802F45 +:103CB0000E9491260E94C226B5C1872D807F972D34 +:103CC0009F70803211F4892F03C0892F8295807FE5 +:103CD000CC2021F0F1E0CF16A1F01DC0112339F066 +:103CE000002319F1013009F50E94AB269BC1002386 +:103CF00019F0013009F496C189830E94AE268981AA +:103D000010C1112321F0063008F08CC10EC005301F +:103D100008F088C106C1112359F0002331F0F701E2 +:103D2000958190FF41C19F7095830E94E91D7AC1E2 +:103D3000002309F4F6C03EC1872D869586958370D1 +:103D400090E0009719F0019761F06CC1112321F008 +:103D50008C2D972D937002C080E090E00E94BD1BD7 +:103D600061C1112321F08C2D972D937002C080E04A +:103D700090E00E94D31B56C18C2D112319F00E9494 +:103D8000EC2802C00E9454290E94D9294BC1872DDA +:103D9000837009F052C0111145C18C2D8295869512 +:103DA0008770880F880F9C2D9F70892E912CA12CD5 +:103DB000B12C082E04C0880C991CAA1CBB1C0A94A8 +:103DC000D2F7C4FE14C00FE010E020E030E0B901EB +:103DD000A80104C0440F551F661F771F8A95D2F7AC +:103DE000CB01BA01609570958095909503C060E015 +:103DF00070E0CB01272D26952695237030E02230E8 +:103E0000310569F02330310589F0682979298A293B +:103E10009B292130310571F00E94632403C1682978 +:103E200079298A299B290E947F24FCC00E9463244F +:103E3000C501B4010E944724F5C0112319F0872D54 +:103E4000817001C08695882309F4ECC08C2D829581 +:103E500086958770880F880F9C2D9F70892E912CD6 +:103E6000A12CB12C082E04C0880C991CAA1CBB1CC8 +:103E70000A94D2F7C4FE14C00FE010E020E030E056 +:103E8000B901A80104C0440F551F661F771F8A950A +:103E9000D2F7CB01BA01609570958095909503C0DB +:103EA00060E070E0CB01272D269526952370422FE8 +:103EB00050E04230510569F04330510589F06829DE +:103EC00079298A299B294130510571F00E943D25AD +:103ED000A9C0682979298A299B290E945925A2C04D +:103EE0000E943D25C501B4010E9421259BC08C2D57 +:103EF00090E0FC01E05EF109E531F10508F050C009 +:103F0000E158FF4F0C9447310C2D0F70872D8F71A6 +:103F1000112321F00E94BA24802F07CF0E94DB24B6 +:103F2000802F0E94F01D7EC0112341F0053008F063 +:103F300079C0872D8F710E94002574C0063008F06B +:103F400071C0F7CF112339F0872D8F710E94BA24E9 +:103F500069C01123C9F3872D8F710E94DB2462C0D1 +:103F6000112329F0872D8F710E94A5245BC00E9428 +:103F70009B2458C0112351F0172D1F71812F0E94CF +:103F8000BA2463E0812F0E94CE254CC081E00E94BC +:103F9000D725023008F446C082E00E94D72542C0EF +:103FA000112331F0002381F28C2D0E94D21C3AC0E3 +:103FB000002389F28C2D0E949A1D34C0472D4F702A +:103FC0006C2DC7010E941C060E94BF232BC011113B +:103FD00029C0472D4F7050E042305105B9F04CF4E4 +:103FE0004115510581F041305105E1F40E94DE2C6C +:103FF00019C04330510569F04430510599F48C2DB6 +:104000000E94302D0FC00E94C72C0CC00E94FA2CB9 +:1040100009C00E940D2D06C0472D4F706C2DC701A1 +:104020000E944E0CDD20F9F00E94CA2580FD1BC0C5 +:10403000F70112820E94C4250E94BA24C7010E947F +:1040400042200E94C4250F90DF91CF911F910F91C4 +:10405000FF90EF90DF90CF90BF90AF909F908F90A8 +:104060007F900C94DB240F90DF91CF911F910F91E3 +:10407000FF90EF90DF90CF90BF90AF909F908F9088 +:104080007F9008950F931F93CF93DF93EC01888166 +:1040900099812B813C81232BB9F09F3F11F48F3FF5 +:1040A00099F0CE010E94BB07882371F06881798165 +:1040B0008A810E94C0258C010E9475250E943C24A3 +:1040C000B801CE010E94F71DDF91CF911F910F9192 +:1040D00008950E9498260E94A8260E946D260E949C +:1040E000C2260E948A2A0E94D92980E090E00E947C +:1040F000BD1B80E090E00C94D31B0E9488260C949A +:1041000069200E94B525292F22952F7030E02C3090 +:1041100031054CF42A3031056CF42250310922303B +:104120003105A8F407C02C30310569F02F30310576 +:1041300051F00DC0803F69F018F4803E40F409C092 +:10414000843F29F406C093FB882780F9089580E016 +:10415000089581E00895CF93DF9300D000D01F929F +:10416000CDB7DEB70F900F900F900F900F90DF91AB +:10417000CF910895CF93DF9300D000D000D0CDB77A +:10418000DEB726960FB6F894DEBF0FBECDBFDF9127 +:10419000CF9108951F93CF93DF93C0910D0416E044 +:1041A00080910E04C81799F0D0E01C9FF0011D9F6C +:1041B000F00D1124E15FFB4F4081518162817381D9 +:1041C000848195810E94BA202196C770E9CFDF9142 +:1041D000CF911F91089540913F0450914004609108 +:1041E00041047091420480914304909144040C94E2 +:1041F000BA208091440482958F7009F054C0809158 +:104200004104882309F44FC080910D04A0910E044D +:1042100060913F04709140044091420450914304E6 +:10422000B6E08A1709F43FC090E041155105C1F18D +:104230007F3F11F46F3FA1F1B89FF001B99FF00DDE +:104240001124E15FFB4F218172132AC02081621388 +:1042500027C02281211124C02381348124173507EE +:1042600010F421503109241B350B283C3105C0F4D2 +:10427000209144042F7020612093440426E0289F5D +:10428000F001299FF00D1124EC5EFB4F80818F70AF +:10429000806180838FE394E00E9442200C94CA20C6 +:1042A00001968770BECF0895CF92DF92EF92FF9272 +:1042B0000F931F93CF93DF93CDB7DEB762970FB6FF +:1042C000F894DEBF0FBECDBF8C0185E0F801DE01A2 +:1042D0001D9601900D928A95E1F7D8014C911196A7 +:1042E0005C91119712966C9112971396CD90DC9079 +:1042F000149730913F047091400480914204909152 +:104300004304009709F46BC17F3F19F43F3F09F460 +:1043100066C1E0904104EE2009F4C0C0209144043D +:10432000C816D90628F0F601E81BF90BCF0104C026 +:10433000809590958C0D9D1DFF24F394883C9105EC +:1043400078F0F12C207F09F0C6C07C2DD98AC88A6C +:1043500089890E94AB208FE394E00E944220B1C083 +:10436000822F807F09F046C0751314C0341312C029 +:10437000611110C02F702061209344040E94EB2033 +:104380008FE394E00E94422080914404D801159666 +:104390008C932EC0CD2819F15F3F11F44F3FF9F0F7 +:1043A000F62E61111CC080910D0420910E0436E0A0 +:1043B000821709F45AC090E0389FF001399FF00D40 +:1043C0001124E15FFB4F7181571306C070814713C1 +:1043D00003C07281711103C001968770E9CFF62E78 +:1043E000662309F418C180914404816080934404D9 +:1043F000F12C11C1751308C0341306C0611104C03B +:1044000080914404D801C3C04D875E878D859E8509 +:104410006A8B0E9481206A898823E1F16623D1F1A9 +:1044200020914404822F82958F7090E0029774F05F +:1044300080913F049091400498878F831986DB8692 +:10444000CA862C87CE0107960E94422086E0F8019A +:10445000AFE3B4E001900D928A95E1F70E94F92054 +:104460000E94EB20FF24F394D6C04D875E878D8594 +:104470009E850E94B525292F22952F7030E022308D +:1044800031050CF0BCC09F7009F0B6C0805E88306A +:1044900008F4C1C0C8010E944220E4CFC816D90662 +:1044A00008F453C0F601E81BF90BCF01883C9105D5 +:1044B00008F450C0F12C7C2DD98AC88A89890E94C1 +:1044C000AB20EFE3F4E086E0DF011D928A95E9F787 +:1044D0000E94EB20A0C0751314C0341312C06111E8 +:1044E00010C080914404F8018583C8010E944220D5 +:1044F00086E0EFE3F4E0DF011D928A95E9F7FE2CF8 +:104500008AC04D875E878D859E856A8B0E9481203B +:104510006A89882309F4BECF662309F4BBCF2091B2 +:104520004404822F82958F7090E002970CF48ECF16 +:1045300080913F04909140049A8389831B82DD829D +:10454000CC822E83CE0101967FCF809590958C0DE5 +:104550009D1DACCFF62E662309F49CCF75132EC09B +:1045600034132CC02091440420FD1FC0822F82955B +:104570008F70D9F0D80115962C9315978F3049F08C +:104580008F5F982F9295907F822F8F70892B159631 +:104590008C93C8010E94422086E0F801AFE3B4E0AA +:1045A00001900D928A95E1F793CF86E0F801AFE391 +:1045B000B4E001900D928A95E1F72DC04D875E879A +:1045C0008D859E850E948120811140CF8091440479 +:1045D000816080934404C8010E9442201CC066236D +:1045E00009F458CF4D875E878D859E850E94812076 +:1045F000882309F44FCF2ACF811148CF0CC0243033 +:1046000031050CF047CF9F7009F440CFF801958138 +:10461000907F09F03BCF8F2D62960FB6F894DEBFE6 +:104620000FBECDBFDF91CF911F910F91FF90EF9003 +:10463000DF90CF9008951F93CF93DF93CDB7DEB770 +:104640002C970FB6F894DEBF0FBECDBF4F835887AF +:1046500069877A878B879C87CE0107960E945421B1 +:10466000882369F08F8198852A853B85232BF1F17A +:104670009F3F09F063C08F3F09F060C037C086E0FC +:10468000FE013796DE01119601900D928A95E1F7B1 +:104690006F817885EA85FB85309741F17F3F11F482 +:1046A0006F3F21F120910E0430E0C901019687701F +:1046B000992740910D0450E08417950709F447C0ED +:1046C00069837A83FD83EC8396E0929FD001939F68 +:1046D000B00D1124A15FBB4FFE01319601900D92E8 +:1046E0009A95E1F780930E040E94CA2016E080910B +:1046F0000D0490910E048917C1F1189FC001112477 +:10470000815F9B4F0E945421882379F1E0910D0431 +:104710001E9FF0011124E15FFB4F408151816281B6 +:104720007381848195810E94BA2080910D0490E06C +:1047300001968770992780930D04D9CF4F815885B2 +:1047400069857A858B859C850E94BA20CFCF0E948F +:104750007D2010920E0410920D04EFE3F4E086E049 +:10476000DF011D928A95E9F7C1CF2C960FB6F89418 +:10477000DEBF0FBECDBFDF91CF911F910895EF92A5 +:10478000FF920F931F93CF93DF938C01009709F44F +:104790006CC0F12CEE24E394E8012196F801849199 +:1047A000843740F4843008F051C0813081F0823089 +:1047B00019F15BC0853709F444C0A8F19CE7980F54 +:1047C000903708F052C08F770E949A1D41C00E5F4B +:1047D0001F4FFE01C49180E28C0F883048F4C770EF +:1047E0008E2D01C0880FCA95EAF70E949B2614C03F +:1047F0008C2F0E94D21C2DC00E5F1F4FFE01C49152 +:1048000080E28C0F883058F4C7708E2D01C0880F5D +:10481000CA95EAF70E94A1260E94C2261AC08C2FD0 +:104820000E949A1D16C00E5F1F4FFE01C491CC233B +:1048300081F08FE99FE00197F1F700C00000C150BF +:10484000F6CF0E5F1F4FFE01F49003C00E94D21CF2 +:104850008E018F2D882309F49FCFEFE9FFE0319778 +:10486000F1F700C000008150F5CFDF91CF911F918B +:104870000F91FF90EF90089508956093490470930D +:104880004A0480934B0490934C040C9469200F933A +:104890001F930091490410914A0420914B043091D8 +:1048A0004C04DC01CB01802B912BA22BB32B8093EA +:1048B000490490934A04A0934B04B0934C041F9175 +:1048C0000F910C9469200F931F930091490410914C +:1048D0004A0420914B0430914C04DC01CB0180232D +:1048E0009123A223B3238093490490934A04A09375 +:1048F0004B04B0934C041F910F910C9469200F93BB +:104900001F930091490410914A0420914B04309167 +:104910004C04DC01CB0180279127A227B327809389 +:10492000490490934A04A0934B04B0934C041F9104 +:104930000F910C9469201092450410924604109235 +:104940004704109248040C94692041E050E060E074 +:1049500070E004C0440F551F661F771F8A95D2F779 +:104960004093450450934604609347047093480471 +:104970000C94692041E050E060E070E004C0440F16 +:10498000551F661F771F8A95D2F780914504909135 +:104990004604A0914704B0914804482B592B6A2B38 +:1049A0007B2B4093450450934604609347047093D7 +:1049B00048040C94692041E050E060E070E004C0DD +:1049C000440F551F661F771F8A95D2F74095509563 +:1049D000609570958091450490914604A09147049C +:1049E000B0914804482359236A237B23409345040C +:1049F0005093460460934704709348040C946920D4 +:104A000041E050E060E070E004C0440F551F661FB5 +:104A1000771F8A95D2F78091450490914604A09122 +:104A20004704B0914804482759276A277B274093B9 +:104A300045045093460460934704709348040C94D3 +:104A400069200F931F930091450410914604209113 +:104A5000470430914804DC01CB01802B912BA22B21 +:104A6000B32B8093450490934604A0934704B093DE +:104A700048041F910F910C9469200F931F9300918C +:104A80004504109146042091470430914804DC010C +:104A9000CB0180239123A223B323809345049093D9 +:104AA0004604A0934704B09348041F910F910C94BF +:104AB00069200F931F9300914504109146042091A3 +:104AC000470430914804DC01CB0180279127A227BD +:104AD000B3278093450490934604A0934704B09372 +:104AE00048041F910F910C9469200895CF92DF9292 +:104AF000EF92FF920F931F93CF93DF938C01C0909F +:104B00004904D0904A04E0904B04F0904C0480910A +:104B1000450490914604A0914704B0914804C82AE6 +:104B2000D92AEA2AFB2ACFE1D0E0D701C6010C2E10 +:104B300004C0B695A795979587950A94D2F780FFFC +:104B400006C0B8018C2F0E94AD0A019721F421976D +:104B500060F780E001C08C2FDF91CF911F910F9102 +:104B6000FF90EF90DF90CF900895CF93DF93EC010B +:104B70000E947625BE010E94AD0ADF91CF91089573 +:104B8000CB010E94B525089580914D0485958595AA +:104B90008595089580914D048770089598E0899FC8 +:104BA00090011124262B20934D040C94BA242091BB +:104BB0004D048095822380934D04982F977069F45B +:104BC00030E0482F552747FD50952417350729F029 +:104BD0008595859585950C94DB24089590914D04D9 +:104BE000977081E009F480E00895909185029923FF +:104BF00021F090918602911109C020918702309195 +:104C00008802F90132969FEF40E01FC0982F9695D9 +:104C1000969596959F3050F5E0918702F091880225 +:104C2000E90FF11D877021E030E0A90102C0440FB7 +:104C3000551F8A95E2F7CA019181892B81830895D6 +:104C40009F3F39F04F5F4E3041F051915813F8CFEC +:104C50000DC05111F7CF942FF5CF9F3F39F0F901D7 +:104C6000E90FF11D97FDFA958283089508959091BB +:104C70008502992321F090918602911109C020911B +:104C8000870230918802F9013296205F3F4F1FC0A2 +:104C9000982F9695969596959F30F0F4E09187021F +:104CA000F0918802E90FF11D877021E030E0A90141 +:104CB00002C0440F551F8A95E2F7CA018095918181 +:104CC0008923818308953196E217F30729F09081B3 +:104CD0009813F9CF1082F7CF089581E090E0E0912A +:104CE0008702F0918802E80FF91F10820196803147 +:104CF0009105A9F7089590916104892B809361042F +:104D000008958095909161048923809361040895AA +:104D100010926104089590916004892B809360043F +:104D2000089580959091600489238093600408958C +:104D300010926004089590915F04892B80935F0422 +:104D40000895809590915F04892380935F0408956E +:104D500010925F04089580934E04089510924E04BB +:104D600008958091870290918802FC0131969C0100 +:104D7000205F3F4F80E0919191118F5FE217F30721 +:104D8000D1F70895E0918702F09188028091610443 +:104D90008083E0918702F091880290818091600485 +:104DA000892B8083E0918702F09188029081809125 +:104DB0005F04892B808380914E04882361F0E09109 +:104DC0008702F09188029081892B80830E94B1260E +:104DD000811110924E0480918702909188020C9468 +:104DE000A71B20E0009739F0AC0141505109842302 +:104DF00095232F5FF7CF822F08958091850484300B +:104E000039F11092630420E488E190E00FB6F89441 +:104E1000A895809360000FBE2093600080E00E9400 +:104E2000770580E00E94DE0C83B7817F846083BFBA +:104E300083B7816083BF7894889583B78E7F83BF63 +:104E400088E10FB6F89480936000109260000FBE66 +:104E50000895089580E00E9477050E94F40C0E9456 +:104E6000770D0E9429270E94FC0D91E0811101C05D +:104E700090E0892F08950E947D2080E00E947705B0 +:104E80000E94B62C0E949B1B0C94DE0C1F920F926A +:104E90000FB60F9211248F939F93AF93BF9380917E +:104EA0006304811113C08091640490916504A09102 +:104EB0006604B09167044196A11DB11D80936404FE +:104EC00090936504A0936604B0936704BF91AF917B +:104ED0009F918F910F900FBE0F901F90189582E0B9 +:104EE00084BD93E095BD9AEF97BD80936E000895C1 +:104EF0002FB7F8948091640490916504A0916604A2 +:104F0000B09167042FBF0895CF92DF92EF92FF9286 +:104F10000F931F932FB7F894409164045091650448 +:104F200060916604709167042FBF6A017B01EE24D3 +:104F3000FF248C0120E030E0C016D106E206F30623 +:104F400010F4415051099A01281B390BC9011F91D6 +:104F50000F91FF90EF90DF90CF9008951F920F92E6 +:104F60000FB60F9211248F939F93AF93BF938091AD +:104F7000640490916504A0916604B0916704019661 +:104F8000A11DB11D8093640490936504A0936604F1 +:104F9000B0936704BF91AF919F918F910F900FBE17 +:104FA0000F901F9018950E949818F8942FEF87EA99 +:104FB00091E6215080409040E1F700C0000087E07A +:104FC00090EBDC0180938F0490939004A093910464 +:104FD000B09392049CE088E10FB6F894A895809372 +:104FE00060000FBE90936000FFCF0E9437288111B0 +:104FF00002C00E9413280E944228809362040E94EB +:105000004F2890E0909374048093730487FB882763 +:1050100080F9809386020E944628682F70E080E025 +:1050200090E00C943D246DEE7EEF80E090E00E94D5 +:105030006D3160E082E090E00E945B3160E083E0EF +:1050400090E00E945B3160E084E090E00E945B3180 +:1050500060E085E090E00E945B3160E086E090E0F7 +:105060000E945B316FEF87E090E00C945B3180E051 +:1050700090E00E94553121E08D3E9E4F09F020E0E6 +:10508000822F089582E090E00C944D3183E090E00F +:105090000C944D31682F83E090E00C945B3184E0F8 +:1050A00090E00C944D31682F84E090E00C945B31DB +:1050B00086E090E00C944D31682F86E090E00C94EF +:1050C0005B3187E090E00C944D31682F87E090E0F1 +:1050D0000C945B3180916A0480FF0BC060918C025C +:1050E00085E0689FB0011124759567957595679562 +:1050F0002BC081FF09C060918C0285E0689FB001E0 +:1051000011247595679520C082FF07C060918C02BD +:1051100085E0689FB001112417C090916B0499231A +:10512000D1F060918B02961788F720918C0285E070 +:10513000289F90011124929FA001939F500D11244C +:1051400070E0CA010E9433316038710540F4611586 +:10515000710539F002C065E070E0862F08958FE791 +:10516000089581E0089580916A0480FF08C06091ED +:105170008A0270E0759567957595679521C081FFE6 +:1051800006C060918A0270E07595679519C082FF2C +:1051900004C060918A0270E010C090916B04992362 +:1051A000C1F0609189029617A0F780918A02899FC9 +:1051B000C001112470E00E9433316038710528F479 +:1051C0006115710521F0862F08958FE7089581E01C +:1051D000089561E070E0F4CF803F21F40E946A28D6 +:1051E000819504C0813F29F40E946A2880936E044F +:1051F0000895823F21F40E946A28819504C0833F6C +:1052000029F40E946A2880936D040895893F19F457 +:105210000E94B32805C08A3F31F40E94B3288195CB +:1052200080936F0408958B3F21F40E94B3288195E9 +:1052300004C08C3F29F40E94B32880937004089521 +:10524000843F21F480916C04816017C0853F21F474 +:1052500080916C04826011C0863F21F480916C04BF +:1052600084600BC0873F21F480916C04886005C086 +:10527000883F31F480916C04806180936C040895C0 +:105280008D3F21F480916A0481600BC08E3F21F430 +:1052900080916A04826005C08F3F29F480916A047E +:1052A000846080936A040895803F39F480916E048D +:1052B00087FF6CC010926E0469C0813F29F4809111 +:1052C0006E041816BCF362C090916D04823F29F4FD +:1052D00097FF5CC010926D0459C0833F19F41916F2 +:1052E000CCF354C0893F41F480916F0418160CF040 +:1052F0004DC010926F044AC08A3F29F480916F0418 +:1053000087FF44C0F6CF8B3F39F48091700487FF4C +:105310003DC0109270043AC08C3F29F48091700413 +:105320001816BCF333C0843F21F480916C048E7F47 +:1053300017C0853F21F480916C048D7F11C0863F9A +:1053400021F480916C048B7F0BC0873F21F4809106 +:105350006C04877F05C0883F31F480916C048F7E98 +:1053600080936C0413C08D3F21F480916A048E7F7A +:105370000BC08E3F21F480916A048D7F05C08F3F62 +:1053800029F480916A048B7F80936A0480916D0474 +:1053900081110EC080916E0481110AC080916F044A +:1053A000811106C080917004811102C010926B04BB +:1053B00008958CE694E00E94B21B0E947827909397 +:1053C00069048093680408951F93CF93DF938091BD +:1053D0006804909169040E948427AC0190916B0449 +:1053E000992321F020918D0230E006C020918E0299 +:1053F0008AE0289F900111244217530708F486C0C1 +:1054000080916D04C0916E04D0916F04109170046E +:10541000811107C0C11176C0D11174C0111172C0C1 +:1054200075C09F3F19F09F5F90936B04181624F48A +:105430000E946A2880936D0480916D0487FF05C0E7 +:105440000E946A28819580936D041C1624F40E94A2 +:105450006A2880936E0480916E0487FF05C00E94C5 +:105460006A28819580936E0460916D04662339F1FA +:10547000C0916E04CC2319F1772767FD7095872FB3 +:10548000972F0E94552E23E333E343E35FE30E940B +:10549000652F0E94222E60936D046C2F772767FD85 +:1054A0007095872F972F0E94552E23E333E343E314 +:1054B0005FE30E94652F0E94222E60936E041D16EA +:1054C00024F40E94B32880936F0480916F0487FFB7 +:1054D00005C00E94B328819580936F04111624F4AF +:1054E0000E94B328809370048091700487FF05C0E8 +:1054F0000E94B328819580937004DF91CF911F9112 +:105500000C94D9299F3F09F08ECF96CFDF91CF9190 +:105510001F910895ECE6F4E085E0DF011D928A9585 +:10552000E9F710926B0410926A040895833081F1B8 +:1055300028F4813059F08230D1F00895853009F493 +:1055400049C0B8F1863009F456C0089580918E02A2 +:10555000262F30E0280F311D2F3F310524F4680F2E +:1055600060938E0208958FEF80938E02089580914C +:105570008D02262F30E0280F311D2F3F310524F4F6 +:10558000680F60938D0208958FEF80938D020895C8 +:1055900080918C02262F30E0280F311D2F3F3105DE +:1055A00024F4680F60938C0208958FEF80938C022F +:1055B000089580918B02262F30E0280F311D2F3F58 +:1055C000310524F4680F60938B0208958FEF809368 +:1055D0008B02089580918A02262F30E0280F311D1A +:1055E0002F3F310524F4680F60938A0208958FEFEE +:1055F00080938A02089580918902262F30E0280F37 +:10560000311D2F3F310524F4680F609389020895FE +:105610008FEF809389020895833011F128F481304F +:1056200049F0823091F00895853081F120F1863083 +:10563000C1F1089580918E02681720F4861B809333 +:105640008E02089510928E02089580918D0268173F +:1056500020F4861B80938D02089510928D02089588 +:1056600080918C02681720F4861B80938C02089529 +:1056700010928C02089580918B02681720F4861B8B +:1056800080938B02089510928B02089580918A0274 +:10569000681720F4861B80938A02089510928A026C +:1056A000089580918902681720F4861B80938902EF +:1056B00008951092890208950F931F93873208F07E +:1056C00048C08E3108F08DC0803109F477C008F5EC +:1056D000873009F461C068F4863009F09DC080917C +:1056E0006204817F8E7F8093620481E080937204E4 +:1056F00094C08B3009F489C08E3009F08DC0809140 +:10570000620482FB222720F991E0922790FB82F924 +:105710005EC0863109F479C060F4813109F07CC043 +:105720000E947D209091860281E0892780938602E5 +:105730006CC0893109F469C08B3109F06DC080916A +:10574000620481FB222720F991E0922790FB81F9E6 +:105750003EC0883309F459C050F4893209F457C067 +:10576000853309F454C0873209F451C055C08334DD +:1057700009F44DC028F48A3308F44EC0895332C06E +:10578000883409F049C00E947D200E942C0E0E949E +:10579000F1060E94D32739C090916204892F809529 +:1057A000817080FB90F929F0966098609093620474 +:1057B00034C0997F977F9093620427C080916204E0 +:1057C00083FB222720F991E0922790FB83F98093B5 +:1057D00062049923D1F08091620481608093620415 +:1057E00014C08D5141E050E060E070E08A019B01FF +:1057F00004C0000F111F221F331F8A95D2F7C90161 +:10580000B8010E943D240E947D2081E006C061E035 +:1058100070E080E090E0F5CF80E01F910F91089557 +:1058200080E0089580E008958E518A3030F4E82FAA +:10583000F0E0EA5DFC4F8081089580E00895CF9309 +:10584000C82F80917204813069F018F08230C9F15C +:1058500083C0E0918702F09188028081823209F052 +:105860007DC007C0E0918702F0918802808182327A +:1058700061F48C2F0E94102C811104C08C2F0E9487 +:105880005C2B1DC081E090E01AC08C2F0E94122C6E +:10589000811114C0C43179F048F4CB3079F0C031B3 +:1058A00009F060C082E08093720408C0C93219F028 +:1058B000C83321F057C01092720454C081E0817047 +:1058C00053C0C93289F118F5C43171F1B0F4C73051 +:1058D00009F046C08EE180938E0282E380938D02B0 +:1058E0008AE080938C0284E180938B0288E080932D +:1058F0008A0288E28093890233C082EE8C0F863060 +:1059000078F58C2F0E94142C8093710429C0CE341A +:10591000E9F020F4CB3421F56AE013C0C13579F009 +:10592000C235F1F461E00DC080917104882319F053 +:105930001092710415C081E08093720415C061E07B +:1059400006C0809171040E94962A0AC06AE0809184 +:1059500071040E940C2B04C01092720480E004C0F9 +:1059600081E002C080E0ABCFCF9108950E9437283C +:10597000811102C00E9413280E94582880938E042F +:1059800080FF02C0869501C080E00C94770580916D +:105990008E04982F9695292F30E0233031054CF452 +:1059A0009F5F990F8170892B816080938E040E9484 +:1059B0005C2880918E0486950C94770580918E04E6 +:1059C000982F969591F09158990F8170892B80931B +:1059D0008E048E7F91E009F490E080918E0490FB1C +:1059E00080F980938E040E945C2880918E048695B5 +:1059F0000C94770580918E04982F909590FB80F9F8 +:105A000080938E040E945C2880918E0480FF02C0E7 +:105A1000869501C080E00C94770590918E04892FC3 +:105A200086958F5F8F779170843028F4880F892B4B +:105A300080938E0402C090938E0480918E048E7F9A +:105A400091E009F490E080918E0490FB80F98093BE +:105A50008E040E945C2880918E0486950C947705B4 +:105A600020918E04922F96958927982F990F822F37 +:105A70008170892B80938E048E7F91E009F490E0F1 +:105A800080918E0490FB80F980938E040E945C28A4 +:105A900080918E0486950C94770580918E0486956E +:105AA00008955058BB27AA270ED0D1C1C2D130F0DB +:105AB000C7D120F031F49F3F11F41EF4B7C10EF4AA +:105AC000E095E7FB9FC1E92FD3D180F3BA176207B6 +:105AD00073078407950718F071F49EF5EBC10EF477 +:105AE000E0950B2EBA2FA02D0B01B90190010C01EE +:105AF000CA01A0011124FF27591B99F0593F50F406 +:105B0000503E68F11A16F040A22F232F342F44275D +:105B1000585FF3CF469537952795A795F040539555 +:105B2000C9F77EF41F16BA0B620B730B840BBAF025 +:105B30009150A1F0FF0FBB1F661F771F881FC2F790 +:105B40000EC0BA0F621F731F841F48F487957795A4 +:105B50006795B795F7959E3F08F0B3CF9395880F5B +:105B600008F09927EE0F97958795089527D108F4A7 +:105B700081E008950CD06BC163D140F05AD130F070 +:105B800021F45F3F19F03EC1511195C14FC170D151 +:105B900098F39923C9F35523B1F3951B550BBB27F4 +:105BA000AA2762177307840738F09F5F5F4F220FA1 +:105BB000331F441FAA1FA9F333D00E2E3AF0E0E89A +:105BC00030D091505040E695001CCAF729D0FE2FE6 +:105BD00027D0660F771F881FBB1F26173707480778 +:105BE000AB07B0E809F0BB0B802DBF01FF2793582E +:105BF0005F4F2AF09E3F510568F004C15CC15F3FD2 +:105C0000ECF3983EDCF3869577956795B795F79515 +:105C10009F5FC9F7880F911D9695879597F908950D +:105C2000E1E0660F771F881FBB1F621773078407A9 +:105C3000BA0720F0621B730B840BBA0BEE1F88F7B8 +:105C4000E095089504D06894B11135C1089518D134 +:105C500088F09F5790F0B92F9927B751A0F0D1F055 +:105C6000660F771F881F991F1AF0BA95C9F712C0DF +:105C7000B13081F01FD1B1E008951CC1672F782F9A +:105C80008827B85F39F0B93FCCF38695779567954B +:105C9000B395D9F73EF490958095709561957F4FB7 +:105CA0008F4F9F4F0895E89409C097FB3EF490955D +:105CB0008095709561957F4F8F4F9F4F9923A9F0E5 +:105CC000F92F96E9BB279395F69587957795679574 +:105CD000B795F111F8CFFAF4BB0F11F460FF1BC0B8 +:105CE0006F5F7F4F8F4F9F4F16C0882311F096E94B +:105CF00011C0772321F09EE8872F762F05C06623F9 +:105D000071F096E8862F70E060E02AF09A95660FB1 +:105D1000771F881FDAF7880F9695879597F908956A +:105D200088D018F011F08CD038F480C0C4C0E92FAE +:105D30009FD0B0F35523C9F3E7FB621773078407BD +:105D40009507A8F199F3E92FFF2788232AF03197C7 +:105D5000660F771F881FDAF7952F5527442332F0F7 +:105D600091505040220F331F441FD2F7BB27E91B2D +:105D7000F50B621B730B840BB109C1F222F4620FA5 +:105D8000731F841FB11D31972AF0660F771F881F7C +:105D9000BB1FEFCF915050405AF041F0882332F0B2 +:105DA000660F771F881F91505040C1F7939530C000 +:105DB0008695779567959F5FD9F7F8CF990F00087B +:105DC000550FAA0BE0E8FEEF16161706E807F907CD +:105DD000C0F012161306E407F50798F0621B730B68 +:105DE000840B950B39F40A2661F0232B242B252BE9 +:105DF00021F408950A2609F4A140A6958FEF811D8C +:105E0000811D089597F99F6780E870E060E008952C +:105E10009F3F31F0915020F4879577956795B7951E +:105E2000880F911D9695879597F908959FEF80ECBF +:105E3000089500240A9416161706180609060895F0 +:105E400000240A9412161306140605060895092E56 +:105E50000394000C11F4882352F0BB0F40F4BF2BC5 +:105E600011F460FF04C06F5F7F4F8F4F9F4F089505 +:105E700057FD9058440F551F59F05F3F71F04795FB +:105E8000880F97FB991F61F09F3F79F087950895E0 +:105E9000121613061406551FF2CF4695F1DF08C0FF +:105EA000161617061806991FF1CF8695710561051C +:105EB00008940895E894BB2766277727CB0197F9C4 +:105EC00008957CDF08F48FEF08950BD0C0CFB1DFC9 +:105ED00028F0B6DF18F0952309F094CFA7CF11244E +:105EE000EACFC6DFA0F3959FD1F3950F50E0551F81 +:105EF000629FF001729FBB27F00DB11D639FAA271F +:105F0000F00DB11DAA1F649F6627B00DA11D661F6D +:105F1000829F2227B00DA11D621F739FB00DA11D8E +:105F2000621F839FA00D611D221F749F3327A00D48 +:105F3000611D231F849F600D211D822F762F6A2FE4 +:105F400011249F5750408AF0E1F088234AF0EE0F69 +:105F5000FF1FBB1F661F771F881F91505040A9F776 +:105F60009E3F510570F04ECFA6CF5F3FECF3983EB9 +:105F7000DCF3869577956795B795F795E7959F5FDD +:105F8000C1F7FE2B880F911D9695879597F9089577 +:105F9000FA01EE0FFF1F30962105310599F16115C9 +:105FA000710561F48038BFE39B0749F1689490382C +:105FB000810561F08038BFEF9B0741F0992342F5DE +:105FC000FF3FE1053105210511F1E8940894E795BB +:105FD000D901AA2329F4AB2FBE2FF85FD0F310C04C +:105FE000FF5F70F4A695E0F7F73950F019F0FF3A2B +:105FF00038F49F779F930CD00F9007FC905808952A +:106000003EF014CF60E070E080E89FE308954FE732 +:106010009F775F934F933F932F939ED02F913F9104 +:106020004F915F9152DF05C019F40EF0EBCE42CFD5 +:10603000FDCE26DFC8F39638C0F707F80F92E89434 +:106040002BE33AEA48EB5FE74EDF0F920F920F9295 +:106050004DB75EB70F92C0D0E8E2F1E016D04F9195 +:106060005F91EF91FF91E595EE1FFF1F49F0FE57FD +:10607000E0684427EE0F441FFA95E1F74195550B70 +:1060800032D00F9007FE26C00895DF93CF931F9361 +:106090000F93FF92EF92DF927B018C01689405C011 +:1060A000DA2EEF011EDFFE01E894A59125913591CE +:1060B00045915591AEF3EF0106DDFE019701A80170 +:1060C000DA9479F7DF90EF90FF900F911F91CF91C5 +:1060D000DF9108959B01AC0160E070E080E89FE3F0 +:1060E00049CD90CE95CECCDEE8F39923D9F3940F29 +:1060F000511DBBF39150504094F059F0882332F079 +:10610000660F771F881F91505040C1F79E3F510581 +:1061100044F7880F911D9695879597F908955F3FED +:10612000ACF0983E9CF0BB27869577956795B79520 +:1061300008F4B1609395C1F7BB0F58F711F460FFF5 +:10614000E8CF6F5F7F4F8F4F9F4FE3CFB4CE0EF0FE +:106150005FCE6CCE689456CE93DEC8F39923D1F30C +:10616000C6F3DF93CF931F930F93FF92C92FDD27C1 +:1061700088232AF02197660F771F881FDAF720E01F +:1061800030E040E85FEB9FE3883920F0803E30F05C +:1061900021968F7787DCE0E5F1E003C083DCEDE753 +:1061A000F1E073DF8B01BE01EC01FB2E6F5771092B +:1061B0007595771F880B990B78DD28E132E741E36D +:1061C0005FE38FDEAF2D9801AE01FF900F911F911D +:1061D000CF91DF9178DC3BCEFA01DC01AA0FBB1F27 +:1061E0009B01AC01BF5728F422273327442750785E +:1061F0001FC0B75188F4AB2F0024469537952795DB +:10620000011CA395D2F3002069F0220F331F441F15 +:10621000B395DAF30DD045CC61307105A0E88A075B +:10622000B94630F49B01AC01662777278827907820 +:10623000309621F020833183428353830895AA1B33 +:10624000BB1B51E107C0AA1FBB1FA617B70710F061 +:10625000A61BB70B881F991F5A95A9F78095909593 +:10626000BC01CD01089597FB072E16F4009407D0CA +:1062700077FD09D00E941F3107FC05D03EF49095B0 +:1062800081959F4F0895709561957F4F0895EE0F0A +:10629000FF1F0590F491E02D0994F999FECF92BD6E +:1062A00081BDF89A992780B50895A8E1B0E042E051 +:1062B00050E00C947531262FF999FECF92BD81BD27 +:1062C000F89A019700B4021639F01FBA20BD0FB634 +:1062D000F894FA9AF99A0FBE08950196272F0E9412 +:1062E0005C310C945B31DC01CB01FC01F999FECFF0 +:1062F00006C0F2BDE1BDF89A319600B40D9241504E +:0A6300005040B8F70895F894FFCF5D +:10630A0052D02445000000410000DC440000004156 +:10631A0052D0A4440000404100005C440000004107 +:10632A0048F17644000000415C978A44000000412D +:10633A001FD592440000004152D0A44400000041FD +:10634A005CFFB844000000410AA7CF4400000041A6 +:10635A000000DC44000000410AA7CF4400000041CD +:10636A000000DC4400000041000000000000804002 +:10637A0000005C4500004041000000000000804031 +:10638A0052D02445000040410AA7CF4400000041F2 +:10639A000000DC44000000410000000000008040D2 +:1063AA0052D0244500004041000000000000804017 +:1063BA0000005C45000040410AA7CF4400000041AC +:1063CA000000DC44000000410000000000008040A2 +:1063DA0052D02445000040410000000000008040E7 +:1063EA000AA74F45000040410AA7CF4400000041D8 +:1063FA000000DC4400000041000000000000804072 +:10640A0052D02445000000410000000000008040F6 +:10641A005CFF384500000041000000000000804099 +:10642A0052D02445000000410AA7CF440000004191 +:10643A000000DC4400000041000000000000804031 +:10644A0052D024450000804152D0244500004041EA +:10645A005C970A450000004152D0A4440000004164 +:10646A000000DC44000000415C970A450000A0419E +:10647A00640007000CFF0000003F64A31431150EEE +:10648A0015DA14A61401014F042808140A321E0052 +:10649A0002040507090B0C0E1011131517181A1C04 +:1064AA001D1F2123242628292B2D2F30323435373E +:1064BA00393B1F0F03764F5F6F7F4969437909594B +:1064CA0053633149803F5D8B803FF8BF803FCAE10B +:1064DA00803F73ED803FCAE1803FF8BF803F5D8B0C +:1064EA00803F3149803F0000803FF16D7F3F75EA70 +:1064FA007E3F4C827E3F833F7E3F84287E3F833FA0 +:10650A007E3F4C827E3F75EA7E3FF16D7F3F000001 +:10651A00803F404D3639FA09AD0977093E09D1085D +:10652A00EA0803091C090102030405060708090011 +:00000001FF diff --git a/keyboards/planck/keymaps/default/keymap.c b/keyboards/planck/keymaps/default/keymap.c new file mode 100644 index 000000000..3d6289817 --- /dev/null +++ b/keyboards/planck/keymaps/default/keymap.c @@ -0,0 +1,316 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "planck.h" +#include "action_layer.h" +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _PLOVER 5 +#define _ADJUST 16 + +// Macro name shortcuts +#define QWERTY M(_QWERTY) +#define COLEMAK M(_COLEMAK) +#define DVORAK M(_DVORAK) +#define LOWER M(_LOWER) +#define RAISE M(_RAISE) +#define M_BL 5 +#define PLOVER M(12) +#define EXT_PLV M(13) +#define TOG_OUT M(14) + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = { + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = { + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = { + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = { + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Plover layer (http://opensteno.org) + * ,-----------------------------------------------------------------------------------. + * | # | # | # | # | # | # | # | # | # | # | # | # | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | S | T | P | H | * | * | F | P | L | T | D | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * |TogOut| S | K | W | R | * | * | R | B | G | S | Z | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Exit | | | A | O | | E | U | | | | + * `-----------------------------------------------------------------------------------' + */ + +[_PLOVER] = { + {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, + {XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, + {TOG_OUT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX} +}, + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|Musoff| | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = { + {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, + {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +} + + +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +#ifdef AUDIO_ENABLE + +float tone_startup[][2] = SONG(STARTUP_SOUND); +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +float tone_plover[][2] = SONG(PLOVER_SOUND); +float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); + +float tone_goodbye[][2] = SONG(GOODBYE_SOUND); +#endif + + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case _QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_qwerty, false, 0); + #endif + persistant_default_layer_set(1UL<<_QWERTY); + } + break; + case _COLEMAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_colemak, false, 0); + #endif + persistant_default_layer_set(1UL<<_COLEMAK); + } + break; + case _DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_dvorak, false, 0); + #endif + persistant_default_layer_set(1UL<<_DVORAK); + } + break; + case _LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + break; + case _RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + break; + case M_BL: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + case 12: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + stop_all_notes(); + PLAY_NOTE_ARRAY(tone_plover, false, 0); + #endif + layer_off(_RAISE); + layer_off(_LOWER); + layer_off(_ADJUST); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + } + break; + case 13: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_plover_gb, false, 0); + #endif + layer_off(_PLOVER); + } + break; + case 14: + if (record->event.pressed) { + return MACRO( D(E), D(R), D(F), D(V), D(O), D(L), U(E), U(R), U(F), U(V), U(O), U(L), END ); + } + break; + } + return MACRO_NONE; +}; + +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + startup_user(); + #endif +} + +#ifdef AUDIO_ENABLE + +void startup_user() +{ + _delay_ms(20); // gets rid of tick + PLAY_NOTE_ARRAY(tone_startup, false, 0); +} + +void shutdown_user() +{ + PLAY_NOTE_ARRAY(tone_goodbye, false, 0); + _delay_ms(150); + stop_all_notes(); +} + +void music_on_user(void) +{ + music_scale_user(); +} + +void music_scale_user(void) +{ + PLAY_NOTE_ARRAY(music_scale, false, 0); +} + +#endif diff --git a/keyboards/planck/keymaps/dzobert/Makefile b/keyboards/planck/keymaps/dzobert/Makefile new file mode 100644 index 000000000..581e08cd0 --- /dev/null +++ b/keyboards/planck/keymaps/dzobert/Makefile @@ -0,0 +1,25 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/dzobert/compiled.hex b/keyboards/planck/keymaps/dzobert/compiled.hex new file mode 100644 index 000000000..cb3972bc0 --- /dev/null +++ b/keyboards/planck/keymaps/dzobert/compiled.hex @@ -0,0 +1,1449 @@ +:100000000C9496020C94DA020C94DA020C94DA0244 +:100010000C94DA020C94DA020C94DA020C94DA02F0 +:100020000C94DA020C94DA020C9478140C944A15AD +:100030000C94AC220C94DA020C94DA020C94DA02DE +:100040000C94DA020C943C030C94DA020C94DA025D +:100050000C94DA020C9414230C94DA020C94DA0255 +:100060000C94DA020C94DA020C94DA020C94DA02A0 +:100070000C94DA020C94DA020C94DA020C94DA0290 +:100080000C94ED0A0C94DA020C94DA020C94DA0265 +:100090000C94DA020C94DA020C94DA020C94DA0270 +:1000A0000C94DA020C94DA020C94DA02B715D91522 +:1000B000C716D915C7161E164116C7169616A916C5 +:1000C00093199319C219C219011A211A771B771BA8 +:1000D0002C1A771BDC1ADC1A431B4C1B771B711B79 +:1000E000E91AE91AE91AE91AE91AE91AE91AE91AF8 +:1000F000E91AE91AE91AE91AE91AE91AE91AE91AE8 +:10010000F91A071B0E1B151B1F1B07634236B79BF3 +:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 +:100120005763BD6DEDFD753EF6177231BF000000DF +:10013000803F08000000BE922449123EABAAAA2AC2 +:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD +:1001500000000000BF000000803F00000000000819 +:100160004178D3BB4387D1133D190E3CC3BD4282B6 +:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 +:10018000FFBE01C4FF7F3F00000000000000000030 +:1001900000000000000000010204060A0F17202CD6 +:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 +:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF +:1001C0000201000000000000000000000000F1A299 +:1001D000F1A3018C028C290014001A0008001500FC +:1001E00017001C0018000C00120013002B00E00088 +:1001F00004001600070009000A000B000D000E00A5 +:100200000F0033002A00E2001D001B000600190049 +:100210000500110010003600370038002800C40027 +:10022000E500E300E10002202C002C00012050003A +:10023000510052004F002B0014001A000900130057 +:100240000A000D000F0018001C0033002B002900CD +:10025000040015001600170007000B00110008002D +:100260000C0012002A00E2001D001B00060019000D +:1002700005000E0010003600370038002800C300CB +:10028000E500E300E10002202C002C0001205000DA +:10029000510052004F003A003B003C003D003E0040 +:1002A0003F0040004100420043004400450001007F +:1002B0001E001F0020002100220023002400250032 +:1002C00026004C000000010035002D002E003400F7 +:1002D00034022F0230022F003000310001000100F3 +:1002E00001000100010001000100010001204A009D +:1002F0004B004E004D00660046004700480053008A +:1003000074007600650024002500260054000100DA +:10031000AA00A900A80039009B007A0079002100FA +:10032000220023005500010049007B007C007D0075 +:100330003100260027001E001F002000560001008B +:10034000010001000100022001000100010027005E +:10035000630058005700280354006800650020001F +:1003600050006C0061006E0063006B0020004B00C9 +:100370006500790062006F00610072006400000097 +:100380002C034F007200740068006F006C0069005D +:100390006E0065006100720020004B00650079006E +:1003A00062006F00610072006400730000000403CB +:1003B000090409026D00040100A0FA09040000010B +:1003C00003010100092111010001223F00070581FD +:1003D0000308000A090401000103010200092111B8 +:1003E000010001224D000705820308000A090402EA +:1003F000000103000000092111010001223600075D +:1004000005830308000A0904030001030000000932 +:100410002111010001223900070584031000011297 +:1004200001100100000008EDFE6060010001020003 +:100430000105010906A101050719E029E7150025B5 +:1004400001950875018102050819012905950575B1 +:10045000019102950175039101050719002977158E +:10046000002501957875018102C005010980A1016F +:10047000850216010026B7001A01002AB700751080 +:1004800095018100C0050C0901A101850316010039 +:10049000269C021A01002A9C02751095018100C059 +:1004A00005010902A1010901A10005091901290598 +:1004B00015002501950575018102950175038101DE +:1004C0000501093009311581257F950275088106DE +:1004D00009381581257F950175088106050C0A38B4 +:1004E000021581257F950175088106C0C0050109A7 +:1004F00006A101050719E029E715002501950875F2 +:1005000001810295017508810105081901290595E8 +:1005100005750191029501750391010507190029DF +:10052000FF150025FF950675088100C011241FBE28 +:10053000CFEFDAE0DEBFCDBF04B603FE24C080916A +:100540001E0390911F03A0912003B09121038730D7 +:10055000904BA740B04BB9F410921E0310921F03AA +:10056000109220031092210314BE84B7877F84BFAA +:1005700088E10FB6F89480936000109260000FBE7F +:10058000E0E0F8E3099511E0A0E0B1E0E2EBF9E585 +:1005900002C005900D92A03CB107D9F713E0A0EC82 +:1005A000B1E001C01D92AE31B107E1F70E94BE116A +:1005B0000C94D72C0C9400000895089581E00895C0 +:1005C00008950C94DD020C94DE020C94E0020E946B +:1005D000A12823E030E0281B3109220F2093C40119 +:1005E0000895282F2F9880918000211108C0877FBF +:1005F0008093800010928D0010928C001BC0886048 +:1006000080938000233019F48FEF9FEF0FC083E0B9 +:1006100090E0821B9109880F991F2FEF3FEFA901EE +:1006200002C0569547958A95E2F7CA0190938D00CE +:1006300080938C000C94E7020E94E70284E0809390 +:10064000C3011092C0010895279A2F988FEF9FEF52 +:1006500090938700809386008AE08093800089E1F0 +:10066000809381000E940A280C941C030E9424039A +:100670006E9A769A0C94DC021F920F920FB60F922C +:1006800011242F933F938F939F93EF93FF93E091C8 +:10069000C101F091C201CF0101969093C2018093F4 +:1006A000C1010090C30102C0F695E7950A94E2F7F4 +:1006B000EF738091C001823019F4E03251F404C02C +:1006C000813039F4EF3329F480916F008D7F80936E +:1006D0006F00F0E0E457FE4FE49121E031E0E29F4B +:1006E000C001E39F900D11240090C40102C09695B3 +:1006F00087950A94E2F790938D0080938C00FF9188 +:10070000EF919F918F913F912F910F900FBE0F907E +:100710001F90189581E008950C948A0308950C9415 +:10072000360380911502882309F448C08091D101D5 +:100730009091D201009779F40E94DE229093D20129 +:100740008093D1018091D30190E0009771F4809162 +:10075000D40190E00AC00E94EA2220910001309169 +:1007600001012817390740F329C00197880F991F05 +:10077000880F991FFC01EB52FE4F608171818281CD +:1007800093810E94530AE091D30184E0E89FF00135 +:100790001124EB52FE4F60817181828193814FE081 +:1007A00050E00E940B0E8091D30190E00196609181 +:1007B000D40170E00E94872C8093D3010C94E10255 +:1007C000109217020C94200A0895089581E08093F6 +:1007D00017020C94E503089508958F929F92AF92AB +:1007E000BF92EF92FF920F931F93CF93DF93CDB7FA +:1007F000DEB7A3970FB6F894DEBF0FBECDBF7C0166 +:10080000FC0100811181C8010E94DB20B8010E9417 +:10081000F2058C01B7010E948C03882309F4CCC136 +:100820000032F0E51F0741F4F7018281882309F4C3 +:1008300058C00E946F0EC0C10132F0E51F0741F49D +:10084000F7018281882309F44CC00E94780EB4C15C +:100850000232F0E51F0751F4F7018281882309F481 +:1008600040C00E946B0E8111F0CFE3CF0332F0E560 +:100870001F0739F4F7018281882399F10E94E6036A +:100880009BC10432F0E51F0739F4F7018281882308 +:1008900041F10E94E00390C10532F0E51F0749F4E1 +:1008A000F70182818823E9F0809117028111F1CF4D +:1008B000E5CF0632F0E51F0739F4F701828188237E +:1008C00081F00E947F0E0AC00732F0E51F0749F44D +:1008D000F7018281882329F00E948A0E0E94EC038E +:1008E0006BC180911702811105C0F70182818111CE +:1008F000CFC018C1003E110579F4F7018281882329 +:1009000009F44DC00E94200A81E0809316021092E3 +:1009100015021092D40150C1023E110559F4F7019D +:1009200082818823E1F10E94200A1092160210921F +:10093000150242C1033E110591F4F701828188231B +:1009400071F10E94200A1092160281E08093150234 +:100950001092D3011092D2011092D1012DC1023513 +:10096000110559F4F7018281882309F425C180918A +:100970000001909101010A970DC00135110579F42C +:10098000F7018281882309F417C1809100019091B9 +:1009900001010A9690930101809300010DC14091DD +:1009A000040183E2EFE1F1E0DE01119601900D9286 +:1009B0008A95E1F7F701808121E030E02C0F3D1F9F +:1009C000280F311DC9012091020130910301FC0162 +:1009D000E20FF31F6081772767FD7095640F711D2B +:1009E000882777FD8095982F0E94A92920E030E084 +:1009F00040E451E40E940E294B015C01F701218182 +:100A000084E090E0821B9109BC01882777FD8095E6 +:100A1000982F0E94A9299B01AC01C501B4010E9435 +:100A2000A6289B01AC0160E070E080E090E40E94A9 +:100A30001C2B20E030E04CED50E40E94B92A4B0121 +:100A40005C01F70182818823D1F04FE050E0C501BD +:100A5000B4010E940B0E809116028823A1F08091B0 +:100A6000D40124E0829FF0011124EB52FE4F8082DA +:100A70009182A282B3828F5F8093D40104C0C501AA +:100A8000B4010E94530A0F3F110508F02ECF94C005 +:100A90008091D00181111FC0043130E5130709F0A6 +:100AA00051C00E948E0381E08093D0010E94DE221B +:100AB0009093CF018093CE011092C7011092C9018B +:100AC0001092C8011092CB011092CA011092CD0170 +:100AD0001092CC0171C08091CE019091CF010E9403 +:100AE000EA22883C910570F48091C701E82FF0E07C +:100AF000EE0FFF1FE853FE4F118300838F5F80933B +:100B0000C7015AC0043880E5180721F005381045A0 +:100B100001F13AC0F7018281882341F01092C501AA +:100B200082E01EC0043830E5130759F58091C501F5 +:100B3000811106C086E20E94371886E20E94FF18E3 +:100B400082E01CC00438F0E51F0741F3053810456A +:100B5000D9F4F7018281882331F01092C60180E236 +:100B60000E944E1929C08091C601811106C087E2FA +:100B70000E94371887E20E94FF1880E20E945519F0 +:100B80001BC00538104529F381E08093C50180938F +:100B9000C601C701A3960FB6F894DEBF0FBECDBF46 +:100BA000DF91CF911F910F91FF90EF90BF90AF9089 +:100BB0009F908F900C94E30280E0A3960FB6F89478 +:100BC000DEBF0FBECDBFDF91CF911F910F91FF9080 +:100BD000EF90BF90AF909F908F90089580E090E04D +:100BE000089508959CE0799FF001112490E3899F76 +:100BF000E00DF11D1124E60FF11DEE0FFF1FEA526B +:100C0000FE4F859194910895880F991FFC01E45B34 +:100C1000FF4F859194910895880F991FFC01E4532B +:100C2000FE4F8591949108950F931F93CF93DF9377 +:100C3000EC01811521E39207A0F5C11580E3D807E7 +:100C400008F0D7C0C83ED105D8F4C03ED10508F0A1 +:100C500007C2C83AD10578F4C53AD10508F06AC090 +:100C6000C130D10509F463C008F4F7C1C430D1051F +:100C700008F0F6C1F2C1CB3BD10508F466C0EDC166 +:100C8000C11590E2D90708F0AFC0C11521E0D20725 +:100C900008F0E6C1C03FD10508F4DFC18E01106540 +:100CA0001FC2C03880E5D80700F5C03790E5D907E6 +:100CB00008F0A3C0C11520E5D20709F4ACC050F478 +:100CC000CE01905480319F4008F0C7C1DF708E0183 +:100CD000106A06C2C13080E5D80709F4AEC0C4313D +:100CE00090E5D90708F4AFC0B8C1C33820E5D207F2 +:100CF00009F48EC050F4C13890E5D90709F482C0D8 +:100D000008F083C000E011EDEBC1C03181E5D807E8 +:100D100008F4A3C1C11597E5D90708F436C1CE017F +:100D200090578115904108F098C1DF7093C101E0A0 +:100D300010E0D6C1C53AD10509F494C1C63AD1052F +:100D400009F093C102E810E4CBC1C83AD10509F417 +:100D50008FC1C93AD10509F48EC1CA3AD10509F447 +:100D60008DC1CB3AD10509F48CC1CC3AD10509F437 +:100D70008BC1CD3AD10509F48AC1C03BD10509F434 +:100D800089C1CE3AD10509F488C1CF3AD10509F419 +:100D900087C1C13BD10509F486C1C23BD10509F425 +:100DA00085C1C33BD10509F484C1C43BD10509F415 +:100DB00083C1C53BD10509F482C1C63BD10509F405 +:100DC00081C1C73BD10509F480C1C83BD10509F4F5 +:100DD0007FC1C93BD10509F47EC1CA3BD10509F4E5 +:100DE0007DC100E014E47CC1CE019F700E940C061E +:100DF00078C1DD278E01106C73C1CF70DD278E01A5 +:100E0000146D6EC100E010ED6BC100E012ED68C121 +:100E100000E013ED65C10E94E21B0E94200A0E94BF +:100E2000E4038FEF94E32CE0815090402040E1F701 +:100E300000C000000E94392353C18091F2028160FA +:100E40008093F2024DC10E949A23811102C00E9438 +:100E500076230E94AD2390E090931D0380931C03A2 +:100E6000C23080E5D80721F480911C03816086C0E0 +:100E7000C43090E5D90721F480911C0382607EC0C4 +:100E8000C63020E5D20721F480911C03846076C02F +:100E9000C83080E5D80719F480911C0327C0CA30F8 +:100EA00090E5D90721F480911C03806167C0CC30A4 +:100EB00020E5D20721F480911C0380625FC0CE3010 +:100EC00080E5D80721F480911C03806457C0C031AD +:100ED00090E5D90721F480911C0380684FC0C2318E +:100EE00020E5D20729F480911C038460886046C005 +:100EF000C33080E5D80721F480911C038E7F3EC06B +:100F0000C53090E5D90721F480911C038D7F36C050 +:100F1000C73020E5D20721F480911C038B7F2EC0BF +:100F2000C93080E5D80719F480911C0326C0CB3066 +:100F300090E5D90721F480911C038F7E1FC0CD302E +:100F400020E5D20721F480911C038F7D17C0CF309C +:100F500080E5D80721F480911C038F7B0FC0C1313D +:100F600090E5D90721F480911C038F7707C0C33126 +:100F7000D04531F480911C038B7F877F80931C03C5 +:100F800080911C030E94B123ABC08D2F99278F70D5 +:100F9000992781309105D9F49E012370332702C02F +:100FA000880F991F2A95E2F79C688E0144E0000F94 +:100FB000111F4A95E1F700271370802B912B53E006 +:100FC000CC0FDD1F5A95E1F7C076DD272FC08230A8 +:100FD000910531F4DC2FCC278E01016F106A80C09F +:100FE0008330910569F4CE018370992701E010E008 +:100FF00002C0000F111F8A95E2F7C8019C680FC05C +:1010000084309105B9F4CE018370992701E010E096 +:1010100002C0000F111F8A95E2F7C8019A6823E009 +:10102000CC0FDD1F2A95E1F7C07ED7708C010C2B09 +:101030001D2B56C08530910531F4DC2FCC278E0155 +:10104000046F106A4DC0069709F04AC0CF71DD27C2 +:10105000DC2FCC278E01106243C000E010E040C0BE +:101060008E013EC001E810E43BC003E810E438C044 +:1010700002EE14E435C009EE14E432C00AEE14E4C2 +:101080002FC005EB14E42CC006EB14E429C007EBD9 +:1010900014E426C00CEC14E423C00DEC14E420C0CE +:1010A00003E815E41DC00AE815E41AC002E915E4D6 +:1010B00017C004E915E414C001E216E411C003E20C +:1010C00016E40EC004E216E40BC005E216E408C004 +:1010D00006E216E405C007E216E402C00AE216E4DE +:1010E000C801DF91CF911F910F9108959CE0799FE6 +:1010F000F001112490E3899FE00DF11D1124E60F0A +:10110000F11DEE0FFF1FEA52FE4F85919491803E34 +:101110009105E0F4803C910558F58133910509F47F +:101120006FC048F48932910509F463C08A32910591 +:1011300009F46DC072C089339105E9F082389105D8 +:10114000D1F08533910509F44DC067C0833E910508 +:1011500081F138F4803E9105B9F0823E9105D9F0D5 +:101160005CC0863E910561F1873E9105A1F155C0B5 +:101170000E940406089520911C0320FD02C021FF57 +:101180004CC080EE90E049C080911C0380FFF9CFF5 +:1011900089E390E042C080911C0382FF0EC08091E1 +:1011A0001C0384FF03C080E090E037C083EE90E032 +:1011B00034C080911C0382FFF2CF82EE90E02DC0FC +:1011C00080911C0383FF0BC080911C0384FDEBCF37 +:1011D00087EE90E022C080911C0383FFF5CF86EE5E +:1011E00090E01BC080911C0385FF07C089E290E05E +:1011F00014C080911C0385FFF9CF85E390E00DC0FA +:1012000080911C0386FF07C08AE290E006C08091AF +:101210001C0386FFF9CF81E390E00E941406089535 +:101220000C94E502E82FF0E0E25BFE4F8081E82FAE +:10123000EF70F0E082958F7021E030E0A90102C0EC +:10124000440F551F8A95E2F740A308950F931F930B +:10125000CF93DF9385B7806885BF85B7806885BFEA +:10126000C3E0D0E001E010E0FE01E25BFE4F8081D0 +:10127000E82FEF70F0E021A182958F70A80102C0E5 +:10128000440F551F8A95E2F7CA01822B81A38C2F48 +:101290000E941209219740F78BE090E061E070E036 +:1012A000FC01EE5BFE4F2081E22FEF70F0E042A1E7 +:1012B00022952F70DB0102C0AA0FBB1F2A95E2F70F +:1012C0009D01242B22A3019758F7DF91CF911F9105 +:1012D0000F910C948F03EF92FF920F931F93CF9374 +:1012E000DF9300E212E0C3E0EE24E394F12CD5E0BA +:1012F0008C2F0E9412098BE090E040E050E0FC014E +:10130000EE5BFE4F6081E62FEF70F0E020A130E051 +:1013100062956F7002C0359527956A95E2F720FDBA +:1013200009C09701082E02C0220F331F0A94E2F76A +:10133000422B532B019718F7F801929182918F015C +:101340008417950721F051834083D09305018C2F9A +:101350000E941209C15060F68091050187FD2CC0E2 +:101360008150809305018F3F39F08FE99FE001970D +:10137000F1F700C0000020C080911E0290911F0272 +:10138000909327028093260280911C0290911D0267 +:10139000909325028093240280911A0290911B025F +:1013A0009093230280932202809118029091190257 +:1013B00090932102809320020E94910381E0DF91AB +:1013C000CF911F910F91FF90EF900895E82FF0E0DB +:1013D000EE0FFF1FE05EFD4F80819181089508951B +:1013E0000F931F93CF9308E212E0C0E0F8019291AF +:1013F00082918F010E945622C80FF2E000321F072F +:10140000A9F78C2FCF911F910F9108950E949A23D5 +:10141000811102C00E9476230E94BF23809307039C +:101420003E9A809171008D7F8093710082E080935D +:1014300090008AE18093910081E080932A020895D0 +:1014400080912A02811102C00E94060A10927A023B +:1014500010927902809171008D7F8093710080914C +:1014600090008F738093900010923C0210923B0288 +:10147000109273021092740210927502109276020A +:101480001092720210927102E1E5F2E0A1E4B2E082 +:1014900011921192119211921D921D9282E0E137E8 +:1014A000F807B1F70895CF92DF92EF92FF920F9372 +:1014B0001F93CF93DF9320913B02222309F484C032 +:1014C0006B017C0180912A02811102C00E94060AF0 +:1014D00001E712E0C7E0D0E0A7019601F801929180 +:1014E0008291729162918F010E940A29811131C00B +:1014F000FE01EE0FFF1FEE0FFF1FEF5AFD4F108290 +:10150000118212821382DE01AA0FBB1FAF5BBD4F97 +:1015100011961C921E92C730D105E9F021964481A4 +:1015200055816681778140835183628373831482FE +:1015300015821682178212968D919C91139711969F +:101540009C938E9313961C921E9212973496129629 +:10155000E2CF219708F68091790290917A02019763 +:1015600097FD05C090937A028093790204C010928F +:101570007A02109279028091790290917A022091F8 +:101580007702309178022817390724F010927802F8 +:1015900010927702892BC1F4809171008D7F809326 +:1015A0007100809190008F7380939000109273026D +:1015B00010927402109275021092760210927202CA +:1015C0001092710210923B02DF91CF911F910F9107 +:1015D000FF90EF90DF90CF9008951F920F920FB67B +:1015E0000F9211244F925F926F927F928F929F92EF +:1015F000AF92BF92CF92DF92EF92FF922F933F93E1 +:101600004F935F936F937F938F939F93AF93BF930A +:10161000CF93DF93EF93FF9380913B02882309F4EC +:101620009BC1C0917902D0917A021C161D060CF064 +:1016300093C140902B0250902C0260902D0270902C +:101640002E0220E030E0A901C301B2010E94B52AB8 +:1016500018160CF065C0C130D10509F452C0809154 +:10166000770290917802BE010E94872C7C019093B2 +:1016700078028093770280903D0290903E02A09085 +:101680003F02B090400220E030E040E85FE3C50157 +:10169000B4010E94A62860933D0270933E0280939D +:1016A0003F0290934002F701EE0FFF1FEE0FFF1F66 +:1016B000EF5AFD4FA3019201608171818281938174 +:1016C0000E940E2920E030E040E05EE30E94B92A4B +:1016D0009B01AC01C501B4010E94B52A18168CF417 +:1016E000C7010196BE010E94872C909378028093D7 +:1016F000770210923D0210923E0210923F02109229 +:101700004002E0917702F0917802EE0FFF1FEE0F9A +:10171000FF1FEF5AFD4F6081718182819381D0C09C +:10172000C0907302D0907402E0907502F09076023F +:1017300020E030E0A901C701B6010E940A292197E3 +:10174000882309F4A2C0FE01EE0FFF1FEE0FFF1F5A +:10175000EF5AFD4F80809180A280B380A501940153 +:10176000C701B6010E940A2987FF31C0A501940173 +:1017700060E070E08CED93EC0E940E2920E030E0F8 +:1017800040E451E40E940E2920E030E040E05FE3B5 +:101790000E94B92A9B01AC0160E070E080E090E417 +:1017A0000E941C2B9B01AC01C501B4010E94B92A07 +:1017B0009B01AC01C701B6010E940A2987FF07C03F +:1017C000A701960160E070E08CED93E439C0A501BB +:1017D0009401C701B6010E94B52A18160CF055C035 +:1017E000A501940160E070E08CED93E40E940E2965 +:1017F00020E030E040E451E40E940E2920E030E097 +:1018000040E05FE30E94B92A9B01AC0160E070E018 +:1018100080E090E40E941C2B9B01AC01C501B40147 +:101820000E94B92A9B01AC01C701B6010E94B52AEA +:1018300018165CF5A701960160E070E08CED93EC62 +:101840000E940E2920E030E040E451E40E940E297D +:1018500020E030E040E05FE30E94B92A9B01AC0148 +:1018600060E070E080E090E40E941C2B9B01AC01E2 +:10187000C701B6010E94B92A609373027093740283 +:10188000809375029093760213C0FE01EE0FFF1F46 +:10189000EE0FFF1FEF5AFD4F80819181A281B3812E +:1018A0008093730290937402A0937502B0937602B2 +:1018B000609173027091740280917502909176022A +:1018C00020912802309129022F3F4FEF340731F049 +:1018D0002F5F3F4F30932902209328020E94950EDC +:1018E0006B017C0120E034E244EF51E40E940A29BC +:1018F00087FF08C086EFC82E88E2D82E84EFE82E36 +:1019000081E4F82E20E030E040E051E4C701B60168 +:101910000E94B92A9B01AC0160E074E284E79BE479 +:101920000E940E296B017C010E947B297093970015 +:1019300060939600209106013091070140910801C3 +:1019400050910901C701B6010E94B92A0E947B2962 +:10195000709399006093980080913C02882309F469 +:1019600033C1C0903702D0903802E0903902F09035 +:101970003A0220E030E0A901C701B6010E94B52A71 +:101980001816D4F580912802909129028F3F2FEFED +:10199000920729F001969093290280932802C701AB +:1019A000B6010E94950E20E030E040E051E40E9434 +:1019B000B92A9B01AC0160E074E284E79BE40E94D9 +:1019C0000E296B017C010E947B2970939700609324 +:1019D0009600209106013091070140910801509135 +:1019E0000901C701B6010E94B92A0E947B297093A0 +:1019F00099006093980008C010929700109296008A +:101A00001092990010929800609131027091320208 +:101A10006F5F7F4F70933202609331022091960086 +:101A20003091970080E090E0232BF1F0C091960078 +:101A3000D09197000E94A7296B017C01BE0180E034 +:101A400090E00E94A7299B01AC0160913302709144 +:101A5000340280913502909136020E940E2920E0D6 +:101A60003FEF4FE757E410C00E94A7296B017C01AC +:101A700020E030EE4FEF54E4609133027091340275 +:101A800080913502909136020E94B92A9B01AC01E7 +:101A9000C701B6010E94B52A87FD96C080912F022A +:101AA0008F5F80932F0290E0209103033091040315 +:101AB00082179307A0F080910E03882319F01092EB +:101AC0002F020DC0809171008D7F809371008091F5 +:101AD00090008F738093900010923C027DC08091A3 +:101AE0003002C0912F02811128C0C0900803D0900D +:101AF0000903E0900A03F0900B0320E030E0A90115 +:101B0000C701B6010E94B52A1816BCF481E0809383 +:101B1000300210923702109238021092390210925D +:101B20003A02C0923302D0923402E0923502F0922F +:101B30003602C150C0932F0243C01092300210925F +:101B4000290210922802E0910503F091060348E073 +:101B5000C49FE00DF11D112480819181A281B38188 +:101B60008093370290933802A0933902B0933A02DF +:101B700020E030E040E85EE36481758186819781F2 +:101B80000E94B92A6B017C0180910A01682F70E0E4 +:101B900080E090E00E94A72920E030E048EC52E489 +:101BA0000E940E299B01AC01C701B6010E94B92A0F +:101BB000609333027093340280933502909336021F +:101BC00010923202109231028091070380FD04C00E +:101BD00010923C0210923B02FF91EF91DF91CF9166 +:101BE000BF91AF919F918F917F916F915F914F9135 +:101BF0003F912F91FF90EF90DF90CF90BF90AF90EB +:101C00009F908F907F906F905F904F900F900FBE3E +:101C10000F901F901895CF92DF92EF92FF92CF9383 +:101C2000DF936B017C01EA0180912A02811102C0DD +:101C30000E94060A8091070380FF46C080917902C6 +:101C400090917A0208970CF03FC0809171008D7FCF +:101C50008093710080913C0281110E94200A81E0F2 +:101C600080933B02109229021092280220E030E07B +:101C7000A901C701B6010E94B52A1816DCF48091AB +:101C8000790290917A02FC01EE0FFF1FEE0FFF1F09 +:101C9000EF5AFD4FC082D182E282F382FC01EE0F47 +:101CA000FF1FEF5BFD4FD183C083019690937A02B3 +:101CB000809379028091710082608093710080919D +:101CC0009000806880939000DF91CF91FF90EF901B +:101CD000DF90CF90089580910703817008958091DF +:101CE00007038160809307030E94C3230C94EB03D6 +:101CF000809107038E7F809307030C94C323809108 +:101D00007B0290E0019666E070E00E94872C809351 +:101D10007B02089580917B0290E0019766E070E07D +:101D20000E94872C80937B0208958F929F92AF929E +:101D3000BF92CF92DF92EF92FF920F931F93CF93B8 +:101D4000DF936B017C01C0912802D0912902BE0172 +:101D500080E090E00E94A7294B015C01A701960159 +:101D600060E070E08CE594E40E940E299B01AC01D8 +:101D7000C501B4010E94B92A0E947B2920917B02EF +:101D8000233009F473C028F4222351F02130E9F004 +:101D90002CC1243009F4A0C0253009F4E0C025C1CD +:101DA00080E090E0A0E0BFE38093060190930701FC +:101DB000A0930801B093090110922B0210922C02FB +:101DC00010922D0210922E0210C110922B0210922E +:101DD0002C0210922D0210922E026431710540F4F3 +:101DE0006A30710560F520E030E040E85EE32BC02A +:101DF000693C710508F0AAC080E090E00E94A72924 +:101E000020E030E040EA51E40E94A52820E030E0E4 +:101E100044E353E40E940E299B01AC010E94B92ABD +:101E200020E030E040E05EE30E94B92A9B01AC0173 +:101E300060E070E080E09EE30E94A52844C020E0BE +:101E400030E040E05FE3C701B6010E94B92A6B01B0 +:101E50007C0180E090E0A0E0BEE3809306019093D7 +:101E60000701A0930801B0930901BFC010922B0293 +:101E700010922C0210922D0210922E024AE0469FE0 +:101E80009001479F300D1124C90168EB7BE00E944F +:101E9000732CBC016C5D754077FF03C07195619533 +:101EA0007109882777FD8095982F0E94A9292EE334 +:101EB00033EC4EE259E30E94B92A20E030E040ECD6 +:101EC0005EE30E94A6286093060170930701809349 +:101ED00008019093090189C010922B0210922C02E4 +:101EE00010922D0210922E02CE0183709927892B19 +:101EF000E1F0BE016170772780E090E00E94A729A1 +:101F000020E030E040E05EE30E94B92A20E030E0CB +:101F100040E45FE30E94A6286093060170930701E6 +:101F200080930801909309010CC080E090E0A0E04C +:101F3000BFE38093060190930701A0930801B0933B +:101F40000901C770DD27CD2B09F04FC010920601A3 +:101F500010920701109208011092090146C01092D8 +:101F60002B0210922C0210922D0210922E0200E0F1 +:101F700010E020E03FE30093060110930701209357 +:101F80000801309309016739710578F180E090E02C +:101F90000E94A72920E030E047E153E40E94A528F1 +:101FA00020E030E04AE754E40E940E2920E030E0CF +:101FB00048E452E40E94B92A20E030E040EA51E4CB +:101FC0000E94EB290E947629660F771F660F771F04 +:101FD000FB01EE5AFE4F2081318142815381C701BE +:101FE000B6010E94B92A6B017C01C701B601DF91DD +:101FF000CF911F910F91FF90EF90DF90CF90BF9006 +:10200000AF909F908F90089580918C020895CF9308 +:10201000DF9300D01F92CDB7DEB79C0180911303F0 +:10202000843019F593E099833B832A839093E900E8 +:102030008FEF9091E800815095FD06C095ED9A953F +:10204000F1F700008111F5CF8091E80085FF0DC008 +:1020500040E050E063E070E0CE0101960E9468121B +:102060008091E8008E778093E8000F900F900F909A +:10207000DF91CF910895CF93DF9300D01F92CDB71A +:10208000DEB720911303243021F522E029839B83BE +:102090008A8383E08093E9008FEF9091E80081507C +:1020A00095FD06C095ED9A95F1F700008111F5CFE9 +:1020B0008091E80085FF0DC040E050E063E070E0F3 +:1020C000CE0101960E9468128091E8008E7780937D +:1020D000E8000F900F900F90DF91CF91089520911D +:1020E00013032430F1F422E02093E9002FEF309124 +:1020F000E800215035FD06C035ED3A95F1F70000B6 +:102100002111F5CF2091E80025FF0BC040E050E001 +:1021100065E070E00E9468128091E8008E778093FD +:10212000E8000895CF93DF93EC019091130394306E +:1021300009F046C0809115018823D9F080911601DD +:102140008823B9F09093E9008FEF9091E8008150D7 +:1021500095FD06C095E19A95F1F700008111F5CF44 +:102160008091E80085FF2CC040E050E060E170E025 +:1021700017C081E08093E9008FEF9091E8008150D3 +:1021800095FD06C095ED9A95F1F700008111F5CF08 +:102190008091E80085FF14C040E050E068E070E006 +:1021A000CE010E9468128091E8008E778093E8004B +:1021B00080E1FE01ACE7B2E001900D928A95E1F773 +:1021C000DF91CF91089580911203811109C00E947F +:1021D000FD130E945A148091E20084608093E20013 +:1021E0000895109212030895089508950C94A12261 +:1021F00042E061EC81E00E94771342E061EC82E012 +:102200000E94771342E061EC83E00E94771342E181 +:1022100061EC84E00C94771380911503833009F40A +:1022200055C030F4813071F0823009F48EC00895C9 +:102230008A3009F47AC08B3009F460C0893009F023 +:102240009CC020C080911403813A09F096C080910F +:10225000E800877F8093E80080911803909119032C +:10226000892B21F460E18CE792E003C060E080E01C +:1022700090E070E00E94B3128091E8008B77809329 +:10228000E800089580911403813209F076C08091AE +:10229000180390911903009719F0039709F06DC086 +:1022A0008091E800877F8093E8008091E80082FDBC +:1022B00005C0809113038111F8CF5FC08091F100B8 +:1022C00080938C028091E8008B7753C08091140337 +:1022D000813A09F052C08091180390911903892B1B +:1022E00009F04BC08091E800877F8093E8008091DF +:1022F000E80080FFFCCF8091150136C08091140367 +:102300008132D9F58091180390911903892BA9F591 +:102310008091E800877F8093E8000E94AC13809151 +:102320001603809315010C94E21B809114038132F3 +:1023300021F58091E800877F8093E8000E94AC132C +:102340008091170380938D02089580911403813A40 +:10235000A1F48091E800877F8093E8008091E800F5 +:1023600080FFFCCF80918D028093F1008091E80086 +:102370008E778093E8000C94AC13089584B7877F20 +:1023800084BF88E10FB6F8948093600010926000DB +:102390000FBE90E080E80FB6F894809361009093B0 +:1023A00061000FBE0E944F170E94FD130E945A1435 +:1023B0008091E20084608093E20078940E94E016AD +:1023C0000E9451178BE091E00E94FB16809113034D +:1023D000853069F40E946222809111038823B1F351 +:1023E0000E949022882391F30E945212EFCF0E9404 +:1023F0005917ECCF292F332723303105C9F064F466 +:102400002130310581F02230310509F043C08DE6DD +:1024100090E022EB33E042C021323105F1F022326C +:10242000310541F137C082E190E02FE134E036C060 +:1024300099278130910541F08230910541F0892B37 +:1024400049F5EEEAF3E005C0E0E8F3E002C0E6E5B6 +:10245000F3E0849190E09F0121C06430D8F4E62F2E +:10246000F0E0EE0FFF1FE255FE4F2081318189E041 +:1024700090E014C0643070F470E0FB01EE0FFF1FB9 +:10248000EA55FE4F20813181FB01EE55FE4F8081E0 +:1024900090E004C080E090E020E030E0FA01318379 +:1024A0002083089580E189BD82E189BD09B400FEE1 +:1024B000FDCF8091D8008F7D8093D8008091E0007F +:1024C00082608093E0008091E00081FDFCCF089560 +:1024D000CF92DF92EF92FF920F931F93CF93DF93F0 +:1024E000EC018B016A010E94CB13811133C0C1142E +:1024F000D10439F0F60180819181081B190BC80FB6 +:10250000D91FE12CF12C0115110519F18091E8007A +:1025100085FD16C08091E8008E778093E800C11495 +:10252000D10449F0F60180819181E80EF91EF18213 +:10253000E08285E00FC00E94CB13882321F30AC0FC +:1025400089918093F10001501109FFEFEF1AFF0A02 +:10255000DACF80E0DF91CF911F910F91FF90EF9044 +:10256000DF90CF90089520911A0330911B03261716 +:10257000370748F06115710539F42091E8002E778E +:102580002093E80001C0B90140E061157105A9F18F +:1025900020911303222309F443C0253009F442C0DB +:1025A0002091E80023FD40C02091E80022FD32C0C8 +:1025B0002091E80020FFE9CF4091F3002091F20044 +:1025C00030E0342BFC01CF016115710559F0283042 +:1025D000310540F481918093F100615071092F5FC2 +:1025E0003F4FF1CF41E02830310509F040E0209124 +:1025F000E8002E772093E800C8CF4111C9CF0AC068 +:1026000080911303882361F0853061F08091E800A8 +:1026100083FD0AC08091E80082FFF2CF80E0089538 +:1026200082E0089583E0089581E0089520911A03DF +:1026300030911B032617370748F06115710539F4EF +:102640002091E8002E772093E80001C0B901FC0139 +:1026500020E06115710591F180911303882309F43D +:1026600040C0853009F43FC08091E80083FD3DC043 +:102670008091E80082FD2FC08091E80080FFE9CFC3 +:102680002091F3008091F20090E0922B611571058A +:1026900059F08830910540F424912093F10031964F +:1026A000615071090196F2CF21E0089709F020E00E +:1026B0008091E8008E778093E800CBCF2111CCCFBA +:1026C0000AC080911303882361F0853061F0809106 +:1026D000E80083FD0AC08091E80082FFF2CF80E02D +:1026E000089582E0089583E0089581E00895982F89 +:1026F000973058F59093E900981739F07091EC00F5 +:102700002091ED005091F00003C0242F762F50E06F +:1027100021FF19C03091EB003E7F3093EB003091E8 +:10272000ED003D7F3093ED003091EB003160309350 +:10273000EB007093EC002093ED005093F00020919B +:10274000EE0027FF07C09F5FD3CF8F708093E90013 +:1027500081E0089580E008958091140387FF11C0FF +:102760008091E80082FD05C0809113038111F8CFAC +:1027700011C08091E8008B770BC0809113038823F0 +:1027800049F08091E80080FFF8CF8091E8008E77D3 +:102790008093E80008952091E4003091E50095E6EB +:1027A0004091EC00842F817040FF22C08091E800AE +:1027B00080FD1CC080911303882391F0853091F037 +:1027C0008091EB0085FD10C04091E4005091E50040 +:1027D0004217530729F39A01915011F784E00895A5 +:1027E00082E0089583E0089581E0089580E00895EF +:1027F0004091E80042FFDECF08950E946B140E94D2 +:102800007314E0EEF0E0808181608083E8EDF0E019 +:1028100080818F77808319BCA7EDB0E08C918E7F8B +:102820008C9380818F7E80831092120308950F9382 +:102830001F93CF93DF930E946B140E947314C8ED13 +:10284000D0E088818F7788838881806888838881B9 +:102850008F7D888319BC1092130310920F0310927E +:1028600011031092100300EE10E0F80180818B7FBD +:10287000808388818160888342E060E080E00E94FC +:102880007713E1EEF0E080818E7F8083E2EEF0E06E +:10289000808181608083808188608083F80180816D +:1028A0008E7F8083888180618883DF91CF911F91A3 +:1028B0000F910895E8EDF0E080818F7E8083E7ED51 +:1028C000F0E080818160808384E082BF81E080933A +:1028D00012030C941714E8EDF0E080818E7F808362 +:1028E0001092E20008951092DA001092E10008952B +:1028F0001F920F920FB60F9211242F933F934F9375 +:102900005F936F937F938F939F93AF93BF93EF9357 +:10291000FF938091E10082FF0BC08091E20082FF73 +:1029200007C08091E1008B7F8093E1000E94DF1659 +:102930008091DA0080FF1FC08091D80080FF1BC00B +:102940008091DA008E7F8093DA008091D90080FF39 +:102950000DC080E189BD82E189BD09B400FEFDCFD3 +:1029600081E0809313030E94E31005C019BC10920C +:1029700013030E94F1108091E10080FF19C0809143 +:10298000E20080FF15C08091E2008E7F8093E2001C +:102990008091E20080618093E2008091D8008062A3 +:1029A0008093D80019BC85E0809313030E94F51032 +:1029B0008091E10084FF30C08091E20084FF2CC050 +:1029C00080E189BD82E189BD09B400FEFDCF80911F +:1029D000D8008F7D8093D8008091E1008F7E809316 +:1029E000E1008091E2008F7E8093E2008091E2001E +:1029F00081608093E20080910F03882311F084E0CE +:102A000007C08091E30087FD02C081E001C083E040 +:102A1000809313030E94F6108091E10083FF29C088 +:102A20008091E20083FF25C08091E100877F809341 +:102A3000E10082E08093130310920F038091E10084 +:102A40008E7F8093E1008091E2008E7F8093E20090 +:102A50008091E20080618093E20042E060E080E0EB +:102A60000E9477138091F00088608093F0000E94AC +:102A7000F410FF91EF91BF91AF919F918F917F9152 +:102A80006F915F914F913F912F910F900FBE0F90DB +:102A90001F9018951F920F920FB60F9211242F932B +:102AA0003F934F935F936F937F938F939F93AF93D6 +:102AB000BF93CF93DF93EF93FF93C091E900CF7063 +:102AC0008091EC00D82FD17080FDD0E81092E90001 +:102AD0008091F000877F8093F00078940E948E159B +:102AE0001092E9008091F00088608093F000CD2B77 +:102AF000CF70C093E900FF91EF91DF91CF91BF912B +:102B0000AF919F918F917F916F915F914F913F9185 +:102B10002F910F900FBE0F901F9018951F93CF937A +:102B2000DF93CDB7DEB7AA970FB6F894DEBF0FBE1E +:102B3000CDBFE4E1F3E088E08E0F9091F100919336 +:102B40008E13FBCF0E940C118091E80083FF1FC100 +:102B50008091140390911503492F50E04A3051059C +:102B600008F015C1FA01EA5AFF4F0C949B2C8038EB +:102B700081F0823809F00BC1809118038F70809327 +:102B8000E9008091EB0085FB882780F91092E9002D +:102B900006C0809110039091110391118260909171 +:102BA000E800977F9093E8008093F1001092F10085 +:102BB000C8C0282F2D7F09F0EAC0882319F0823081 +:102BC00061F0E5C080911603813009F0E0C09330D8 +:102BD00009F080E0809311032BC0809116038111CE +:102BE00027C0809118038F7009F4D1C08093E90049 +:102BF0002091EB0020FF1CC0933021F48091EB006A +:102C0000806214C09091EB0090619093EB0021E002 +:102C100030E0A90102C0440F551F8A95E2F74093A6 +:102C2000EA001092EA008091EB0088608093EB004C +:102C30001092E9008091E800877F86C08111A7C0CB +:102C4000109116031F778091E3008078812B809389 +:102C5000E3008091E800877F8093E8000E94AC1336 +:102C60008091E80080FFFCCF8091E3008068809332 +:102C7000E300111102C082E001C083E080931303DE +:102C800086C08058823008F082C0809116039091EF +:102C900017038C3D53E0950779F583E08A838AE238 +:102CA00089834FB7F894DE01139620E03EE051E2AD +:102CB000E32FF0E050935700E49120FF03C0E2952A +:102CC000EF703F5FEF708E2F90E0EA3010F0C79604 +:102CD00001C0C0968D939D932F5F243149F74FBF5C +:102CE0008091E800877F8093E8006AE270E0CE017F +:102CF00001960E94B31214C0AE014F5F5F4F609106 +:102D000018030E94FA11BC01009709F440C0909189 +:102D1000E800977F9093E80089819A810E941613BA +:102D20008091E8008B778093E80031C0803879F596 +:102D30008091E800877F8093E80080910F03809363 +:102D4000F1008091E8008E778093E8000E94AC1338 +:102D50001EC081111CC0909116039230C0F4809166 +:102D6000E800877F8093E80090930F030E94AC13E4 +:102D700080910F03811106C08091E30087FD02C09E +:102D800081E001C084E0809313030E94F8108091D9 +:102D9000E80083FF0AC08091E800877F8093E80005 +:102DA0008091EB0080628093EB00AA960FB6F894B6 +:102DB000DEBF0FBECDBFDF91CF911F910895089563 +:102DC000CF93809113038823A1F0C091E900CF70C5 +:102DD0009091EC00892F817090FD80E8C82B1092B3 +:102DE000E9008091E80083FD0E948E15CF70C093AA +:102DF000E900CF91089590939302809392020895F1 +:102E0000E0919202F0919302309721F00190F081CD +:102E1000E02D099480E00895E0919202F0919302F0 +:102E2000309721F00280F381E02D09940895E0911C +:102E30009202F0919302309721F00480F581E02D09 +:102E4000099408952091900230919102821793077E +:102E500071F09093910280939002E0919202F09130 +:102E60009302309721F00680F781E02D09940895B0 +:102E700020918E0230918F028217930771F0909308 +:102E80008F0280938E02E0919202F091930230972C +:102E900021F00084F185E02D0994089508950C94A3 +:102EA0004E170E94D5220E9426090E945B230C9493 +:102EB0000A285F926F927F928F929F92AF92BF92F9 +:102EC000CF92DF92EF92FF920F931F93CF93DF93F6 +:102ED00000D000D01F92CDB7DEB70E946B099DE9EC +:102EE000C92E92E0D92E03E010E0AA24A394B12CBD +:102EF000502E802F0E94E6094C01F60172906290DC +:102F00006F016826792661147104A1F4015011093A +:102F100078F78FEF89838A831B820E94DE2281608B +:102F2000782F9D838C8349815A816B818D810E948A +:102F3000091838C08091F20281FD0E94EF092BE050 +:102F400030E07501022E02C0EE0CFF1C0A94E2F77D +:102F5000C70186219721892B09F129835A828E2066 +:102F60009F2091E0892809F490E09B830E94DE2253 +:102F70008160782F9D838C8349815A816B818D81FB +:102F80000E940918000F111FF801EB56FD4F8081B8 +:102F90009181E826F926F182E08204C021503109AE +:102FA00080F6B4CF0E944225109194020E9400172F +:102FB0001817D1F00E940017809394020F900F9081 +:102FC0000F900F900F90DF91CF911F910F91FF9075 +:102FD000EF90DF90CF90BF90AF909F908F907F90B9 +:102FE0006F905F900C9410090F900F900F900F90BE +:102FF0000F90DF91CF911F910F91FF90EF90DF9095 +:10300000CF90BF90AF909F908F907F906F905F9088 +:103010000895CF93DF93CDB7DEB72B970FB6F89413 +:10302000DEBF0FBECDBF4F83588769877A878B87F6 +:10303000DE01119686E0FD0111928A95E9F785E09F +:10304000FE01379601900D928A95E1F749815A81E8 +:103050006B817C818D819E810E94801E2B960FB694 +:10306000F894DEBF0FBECDBFDF91CF910895CF930F +:10307000882309F4C2C0C82F823859F40E9400176F +:1030800081FDBBC089E30E945A210E94272289E367 +:103090000CC0833879F40E94001780FDAEC083E530 +:1030A0000E945A210E94272283E50E949C21CF91F1 +:1030B0000C942722843859F40E94001782FD9DC089 +:1030C00087E40E945A210E94272287E4EECF8CEFEA +:1030D0008C0F813A48F48C2F0E94722781118DC089 +:1030E0008C2F0E945A21E3CF80E28C0F883048F465 +:1030F000C77081E001C0880FCA95EAF70E94E021FD +:10310000D6CF8BE58C0F833078F4C53A29F0C63AD8 +:1031100031F083E890E005C081E890E002C082E8E9 +:1031200090E0CF910C94221788E58C0F833108F042 +:1031300064C0C83A39F1C93A41F1CA3A49F1CB3AC7 +:1031400051F1CC3A59F1CD3A61F1C03B69F1CE3A37 +:1031500071F1CF3A79F1C13B81F1C23B89F1C33BB7 +:1031600091F1C43B99F1C53BA1F1C63BA9F1C73B25 +:10317000B1F1C83BB9F1C93BC1F1CA3BC9F180E02B +:1031800090E038C082EE90E035C089EE90E032C029 +:103190008AEE90E02FC085EB90E02CC086EB90E0AB +:1031A00029C087EB90E026C08CEC90E023C08DEC2A +:1031B00090E020C083E891E01DC08AE891E01AC049 +:1031C00082E991E017C084E991E014C081E292E0C5 +:1031D00011C083E292E00EC084E292E00BC085E26F +:1031E00092E008C086E292E005C087E292E002C069 +:1031F0008AE292E0CF910C943817CF9108958823FA +:1032000009F44BC0823859F40E94001781FF45C071 +:1032100089E30E945A210E94272289E30CC0833847 +:1032200071F40E94001780FF38C083E50E945A2184 +:103230000E94272283E50E949C210C942722843837 +:1032400059F40E94001782FF28C087E40E945A2187 +:103250000E94272287E4EFCF9CEF980F913A58F312 +:1032600090E2980F983050F4877091E001C0990F68 +:103270008A95EAF7892F0E94E621DFCF9BE5980F18 +:10328000933020F480E090E00C942217885A833128 +:1032900020F480E090E00C9438170895882321F002 +:1032A0000E94E0210C9427220895882321F00E9497 +:1032B000E6210C94272208957F928F929F92AF92DD +:1032C000BF92CF92DF92EF92FF920F931F93CF9313 +:1032D000DF931F92CDB7DEB77C01C62E772EFC019F +:1032E000058102950F70128111110E94FD210E942B +:1032F0005321882379F0112369F080E28C0D883006 +:1033000048F082E00E943C210E94532191E0D82E97 +:10331000D92601C0D12CE72DE295EF70F0E0E05AFC +:10332000FF4F0C949B2C872D807F072D0F708823D7 +:1033300011F00295007F112389F0002309F499C14F +:1033400080E28C0D883020F4802F0E94E02103C0A1 +:10335000802F0E94F0210E9427228BC18C2D0E9479 +:10336000FF18002309F4C3C180E28C0D883020F4DB +:10337000802F0E94E62103C0802F0E94F6210E9428 +:103380002722B5C1872D807F972D9F70803211F441 +:10339000892F03C0892F8295807FCC2021F0F1E016 +:1033A000CF16A1F01DC0112339F0002319F101300F +:1033B00009F50E9410229BC1002319F0013009F485 +:1033C00096C189830E941322898110C1112321F0A3 +:1033D000063008F08CC10EC0053008F088C106C167 +:1033E000112359F0002331F0F701958190FF41C17D +:1033F0009F7095830E944E197AC1002309F4F6C08C +:103400003EC1872D86958695837090E0009719F0D0 +:10341000019761F06CC1112321F08C2D972D9370D1 +:1034200002C080E090E00E94221761C1112321F0C8 +:103430008C2D972D937002C080E090E00E94381789 +:1034400056C18C2D112319F00E944A2402C00E94FB +:10345000B2240E9437254BC1872D837009F052C0DA +:10346000111145C18C2D829586958770880F880F24 +:103470009C2D9F70892E912CA12CB12C082E04C05C +:10348000880C991CAA1CBB1C0A94D2F7C4FE14C059 +:103490000FE010E020E030E0B901A80104C0440FC3 +:1034A000551F661F771F8A95D2F7CB01BA01609529 +:1034B00070958095909503C060E070E0CB01272D5A +:1034C00026952695237030E02230310569F02330AF +:1034D000310589F0682979298A299B29213031050C +:1034E00071F00E94C81F03C1682979298A299B2984 +:1034F0000E94E41FFCC00E94C81FC501B4010E94C5 +:10350000AC1FF5C0112319F0872D817001C086957D +:10351000882309F4ECC08C2D829586958770880FDE +:10352000880F9C2D9F70892E912CA12CB12C082ED8 +:1035300004C0880C991CAA1CBB1C0A94D2F7C4FEB8 +:1035400014C00FE010E020E030E0B901A80104C091 +:10355000440F551F661F771F8A95D2F7CB01BA011A +:10356000609570958095909503C060E070E0CB0108 +:10357000272D269526952370422F50E04230510585 +:1035800069F04330510589F0682979298A299B29F6 +:103590004130510571F00E94A220A9C06829792903 +:1035A0008A299B290E94BE20A2C00E94A220C50198 +:1035B000B4010E9486209BC08C2D90E0FC01E05E4F +:1035C000F109E531F10508F050C0E059FF4F0C94C6 +:1035D0009B2C0C2D0F70872D8F71112321F00E94D1 +:1035E0001F20802F07CF0E944020802F0E94551956 +:1035F0007EC0112341F0053008F079C0872D8F710E +:103600000E94652074C0063008F071C0F7CF112306 +:1036100039F0872D8F710E941F2069C01123C9F3D3 +:10362000872D8F710E94402062C0112329F0872DC1 +:103630008F710E940A205BC00E94002058C0112395 +:1036400051F0172D1F71812F0E941F2063E0812FE1 +:103650000E9433214CC081E00E943C21023008F4DA +:1036600046C082E00E943C2142C0112331F0002379 +:1036700081F28C2D0E9437183AC0002389F28C2DDC +:103680000E94FF1834C0472D4F706C2DC7010E9457 +:10369000EE050E94241F2BC0111129C0472D4F7029 +:1036A00050E042305105B9F04CF44115510581F01C +:1036B00041305105E1F40E94322819C043305105D0 +:1036C00069F04430510599F48C2D0E9484280FC074 +:1036D0000E941B280CC00E944E2809C00E9461282D +:1036E00006C0472D4F706C2DC7010E94F105DD20EB +:1036F000F9F00E942F2180FD1BC0F70112820E9469 +:1037000029210E941F20C7010E94A71B0E94292176 +:103710000F90DF91CF911F910F91FF90EF90DF906D +:10372000CF90BF90AF909F908F907F900C9440204F +:103730000F90DF91CF911F910F91FF90EF90DF904D +:10374000CF90BF90AF909F908F907F9008950F93F0 +:103750001F93CF93DF93EC01888199812B813C816A +:10376000232BB9F09F3F11F48F3F99F0CE010E94B7 +:10377000ED03882371F0688179818A810E94252177 +:103780008C010E94DA200E94A11FB801CE010E9484 +:103790005C19DF91CF911F910F9108950E94FD2137 +:1037A0000E940D220E94D2210E9427220E94E82519 +:1037B0000E94372580E090E00E94221780E090E090 +:1037C0000C9438170E94ED210C94CE1B0E941A21F4 +:1037D000292F22952F7030E02C3031054CF42A30FF +:1037E00031056CF42250310922303105A8F407C0AC +:1037F0002C30310569F02F30310551F00DC0803F7C +:1038000069F018F4803E40F409C0843F29F406C0F2 +:1038100093FB882780F9089580E0089581E008955A +:10382000CF93DF9300D000D01F92CDB7DEB70F90BB +:103830000F900F900F900F90DF91CF910895CF933D +:10384000DF9300D000D000D0CDB7DEB726960FB6FC +:10385000F894DEBF0FBECDBFDF91CF9108951F93C7 +:10386000CF93DF93C0919D0216E080919E02C8170E +:1038700099F0D0E01C9FF0011D9FF00D1124E1563E +:10388000FD4F4081518162817381848195810E94C5 +:103890001F1C2196C770E9CFDF91CF911F9108952A +:1038A0004091CF025091D0026091D1027091D2022A +:1038B0008091D3029091D4020C941F1C8091D40269 +:1038C00082958F7009F054C08091D102882309F449 +:1038D0004FC080919D02A0919E026091CF02709195 +:1038E000D0024091D2025091D302B6E08A1709F477 +:1038F0003FC090E041155105C1F17F3F11F46F3F8A +:10390000A1F1B89FF001B99FF00D1124E156FD4FD0 +:10391000218172132AC02081621327C022812111C4 +:1039200024C0238134812417350710F42150310934 +:10393000241B350B283C3105C0F42091D4022F7094 +:1039400020612093D40226E0289FF001299FF00DEA +:103950001124EC55FD4F80818F70806180838FEC46 +:1039600092E00E94A71B0C942F1C01968770BECF7B +:103970000895CF92DF92EF92FF920F931F93CF9310 +:10398000DF93CDB7DEB762970FB6F894DEBF0FBEF8 +:10399000CDBF8C0185E0F801DE011D9601900D92EE +:1039A0008A95E1F7D8014C9111965C911197129686 +:1039B0006C9112971396CD90DC9014973091CF02B2 +:1039C0007091D0028091D2029091D302009709F4B5 +:1039D0006BC17F3F19F43F3F09F466C1E090D1020B +:1039E000EE2009F4C0C02091D402C816D90628F0F0 +:1039F000F601E81BF90BCF0104C0809590958C0D62 +:103A00009D1DFF24F394883C910578F0F12C207FD4 +:103A100009F0C6C07C2DD98AC88A89890E94101CE9 +:103A20008FEC92E00E94A71BB1C0822F807F09F02B +:103A300046C0751314C0341312C0611110C02F702A +:103A400020612093D4020E94501C8FEC92E00E94CF +:103A5000A71B8091D402D80115968C932EC0CD2837 +:103A600019F15F3F11F44F3FF9F0F62E61111CC0C0 +:103A700080919D0220919E0236E0821709F45AC07F +:103A800090E0389FF001399FF00D1124E156FD4F71 +:103A90007181571306C07081471303C07281711181 +:103AA00003C001968770E9CFF62E662309F418C18A +:103AB0008091D40281608093D402F12C11C17513DE +:103AC00008C0341306C0611104C08091D402D8012B +:103AD000C3C04D875E878D859E856A8B0E94E61BDD +:103AE0006A898823E1F16623D1F12091D402822FE3 +:103AF00082958F7090E0029774F08091CF02909140 +:103B0000D00298878F831986DB86CA862C87CE01E0 +:103B100007960E94A71B86E0F801AFECB2E0019087 +:103B20000D928A95E1F70E945E1C0E94501CFF24B2 +:103B3000F394D6C04D875E878D859E850E941A219D +:103B4000292F22952F7030E0223031050CF0BCC0B7 +:103B50009F7009F0B6C0805E883008F4C1C0C8010B +:103B60000E94A71BE4CFC816D90608F453C0F6017B +:103B7000E81BF90BCF01883C910508F450C0F12CEB +:103B80007C2DD98AC88A89890E94101CEFECF2E04A +:103B900086E0DF011D928A95E9F70E94501CA0C0C3 +:103BA000751314C0341312C0611110C08091D40277 +:103BB000F8018583C8010E94A71B86E0EFECF2E0C4 +:103BC000DF011D928A95E9F7FE2C8AC04D875E873A +:103BD0008D859E856A8B0E94E61B6A89882309F47D +:103BE000BECF662309F4BBCF2091D402822F8295E9 +:103BF0008F7090E002970CF48ECF8091CF0290915D +:103C0000D0029A8389831B82DD82CC822E83CE01EF +:103C100001967FCF809590958C0D9D1DACCFF62E93 +:103C2000662309F49CCF75132EC034132CC0209149 +:103C3000D40220FD1FC0822F82958F70D9F0D80149 +:103C400015962C9315978F3049F08F5F982F92958A +:103C5000907F822F8F70892B15968C93C8010E94BC +:103C6000A71B86E0F801AFECB2E001900D928A95B7 +:103C7000E1F793CF86E0F801AFECB2E001900D924E +:103C80008A95E1F72DC04D875E878D859E850E94C0 +:103C9000E61B811140CF8091D40281608093D402D1 +:103CA000C8010E94A71B1CC0662309F458CF4D878A +:103CB0005E878D859E850E94E61B882309F44FCF81 +:103CC0002ACF811148CF0CC0243031050CF047CFEA +:103CD0009F7009F440CFF8019581907F09F03BCFA8 +:103CE0008F2D62960FB6F894DEBF0FBECDBFDF9169 +:103CF000CF911F910F91FF90EF90DF90CF9008959B +:103D00001F93CF93DF93CDB7DEB72C970FB6F89400 +:103D1000DEBF0FBECDBF4F83588769877A878B87F9 +:103D20009C87CE0107960E94B91C882369F08F8179 +:103D300098852A853B85232BF1F19F3F09F063C0CD +:103D40008F3F09F060C037C086E0FE013796DE0184 +:103D5000119601900D928A95E1F76F817885EA8539 +:103D6000FB85309741F17F3F11F46F3F21F12091A6 +:103D70009E0230E0C90101968770992740919D020B +:103D800050E08417950709F447C069837A83FD835F +:103D9000EC8396E0929FD001939FB00D1124A15621 +:103DA000BD4FFE01319601900D929A95E1F78093F7 +:103DB0009E020E942F1C16E080919D0290919E020F +:103DC0008917C1F1189FC001112481569D4F0E948F +:103DD000B91C882379F1E0919D021E9FF001112406 +:103DE000E156FD4F408151816281738184819581CB +:103DF0000E941F1C80919D0290E001968770992778 +:103E000080939D02D9CF4F81588569857A858B85AE +:103E10009C850E941F1CCFCF0E94E21B10929E0225 +:103E200010929D02EFECF2E086E0DF011D928A9590 +:103E3000E9F7C1CF2C960FB6F894DEBF0FBECDBF09 +:103E4000DF91CF911F910895EF92FF920F931F93EF +:103E5000CF93DF938C01009709F46CC0F12CEE2412 +:103E6000E394E8012196F8018491843740F484308A +:103E700008F051C0813081F0823019F15BC0853784 +:103E800009F444C0A8F19CE7980F903708F052C09D +:103E90008F770E94FF1841C00E5F1F4FFE01C49133 +:103EA00080E28C0F883048F4C7708E2D01C0880FD7 +:103EB000CA95EAF70E94002214C08C2F0E9437187E +:103EC0002DC00E5F1F4FFE01C49180E28C0F883021 +:103ED00058F4C7708E2D01C0880FCA95EAF70E946A +:103EE00006220E9427221AC08C2F0E94FF1816C09B +:103EF0000E5F1F4FFE01C491CC2381F08FE99FE03C +:103F00000197F1F700C00000C150F6CF0E5F1F4FC0 +:103F1000FE01F49003C00E9437188E018F2D882374 +:103F200009F49FCFEFE9FFE03197F1F700C00000FF +:103F30008150F5CFDF91CF911F910F91FF90EF90BE +:103F4000089508956093D9027093DA028093DB029A +:103F50009093DC020C94CE1B0F931F930091D90217 +:103F60001091DA022091DB023091DC02DC01CB01FE +:103F7000802B912BA22BB32B8093D9029093DA0242 +:103F8000A093DB02B093DC021F910F910C94CE1B27 +:103F90000F931F930091D9021091DA022091DB0256 +:103FA0003091DC02DC01CB0180239123A223B323D7 +:103FB0008093D9029093DA02A093DB02B093DC02E3 +:103FC0001F910F910C94CE1B0F931F930091D90258 +:103FD0001091DA022091DB023091DC02DC01CB018E +:103FE00080279127A227B3278093D9029093DA02E2 +:103FF000A093DB02B093DC021F910F910C94CE1BB7 +:104000001092D5021092D6021092D7021092D802C6 +:104010000C94CE1B41E050E060E070E004C0440F1F +:10402000551F661F771F8A95D2F74093D50250938C +:10403000D6026093D7027093D8020C94CE1B41E055 +:1040400050E060E070E004C0440F551F661F771F0A +:104050008A95D2F78091D5029091D602A091D7028D +:10406000B091D802482B592B6A2B7B2B4093D50259 +:104070005093D6026093D7027093D8020C94CE1B53 +:1040800041E050E060E070E004C0440F551F661F3F +:10409000771F8A95D2F740955095609570958091DD +:1040A000D5029091D602A091D702B091D8024823B0 +:1040B00059236A237B234093D5025093D602609301 +:1040C000D7027093D8020C94CE1B41E050E060E020 +:1040D00070E004C0440F551F661F771F8A95D2F702 +:1040E0008091D5029091D602A091D702B091D802CA +:1040F000482759276A277B274093D5025093D60239 +:104100006093D7027093D8020C94CE1B0F931F9329 +:104110000091D5021091D6022091D7023091D80299 +:10412000DC01CB01802B912BA22BB32B8093D502EA +:104130009093D602A093D702B093D8021F910F910B +:104140000C94CE1B0F931F930091D5021091D602B1 +:104150002091D7023091D802DC01CB01802391233A +:10416000A223B3238093D5029093D602A093D702C3 +:10417000B093D8021F910F910C94CE1B0F931F93F5 +:104180000091D5021091D6022091D7023091D80229 +:10419000DC01CB0180279127A227B3278093D5028A +:1041A0009093D602A093D702B093D8021F910F919B +:1041B0000C94CE1B0895CF92DF92EF92FF920F9353 +:1041C0001F93CF93DF938C01C090D902D090DA0275 +:1041D000E090DB02F090DC028091D5029091D60253 +:1041E000A091D702B091D802C82AD92AEA2AFB2A7C +:1041F000CFE1D0E0D701C6010C2E04C0B695A7953B +:10420000979587950A94D2F780FF06C0B8018C2F46 +:104210000E947608019721F4219760F780E001C0A1 +:104220008C2FDF91CF911F910F91FF90EF90DF9036 +:10423000CF900895CF93DF93EC010E94DB20BE0165 +:104240000E947608DF91CF910895CB010E941A2138 +:1042500008958091DD0285958595859508958091D5 +:10426000DD028770089598E0899F90011124262B24 +:104270002093DD020C941F202091DD028095822383 +:104280008093DD02982F977069F430E0482F55270E +:1042900047FD50952417350729F085958595859517 +:1042A0000C94402008959091DD02977081E009F40C +:1042B00080E0089590911501992321F090911601C5 +:1042C000911109C02091170130911801F90132961E +:1042D0009FEF40E01FC0982F9695969596959F303A +:1042E00050F5E0911701F0911801E90FF11D877069 +:1042F00021E030E0A90102C0440F551F8A95E2F782 +:10430000CA019181892B818308959F3F39F04F5FC6 +:104310004E3041F051915813F8CF0DC05111F7CFE5 +:10432000942FF5CF9F3F39F0F901E90FF11D97FD6B +:10433000FA9582830895089590911501992321F0AB +:1043400090911601911109C0209117013091180127 +:10435000F9013296205F3F4F1FC0982F9695969592 +:1043600096959F30F0F4E0911701F0911801E90F54 +:10437000F11D877021E030E0A90102C0440F551FF4 +:104380008A95E2F7CA0180959181892381830895F6 +:104390003196E217F30729F090819813F9CF108234 +:1043A000F7CF089581E090E0E0911701F0911801B6 +:1043B000E80FF91F1082019680319105A9F7089541 +:1043C0009091F102892B8093F1020895809590914C +:1043D000F10289238093F10208951092F102089569 +:1043E0009091F002892B8093F0020895809590912E +:1043F000F00289238093F00208951092F00208954C +:104400009091EF02892B8093EF020895809590910F +:10441000EF0289238093EF0208951092EF0208952E +:104420008093DE0208951092DE02089580911701B4 +:1044300090911801FC0131969C01205F3F4F80E074 +:10444000919191118F5FE217F307D1F70895E091F1 +:104450001701F09118018091F1028083E09117011A +:10446000F091180190818091F002892B8083E09176 +:104470001701F091180190818091EF02892B8083C0 +:104480008091DE02882361F0E0911701F09118011C +:104490009081892B80830E94162281111092DE0266 +:1044A00080911701909118010C940C1720E000974F +:1044B00039F0AC0141505109842395232F5FF7CF88 +:1044C000822F089580911303843039F11092F30202 +:1044D00020E488E190E00FB6F894A89580936000FE +:1044E0000FBE2093600080E00E94F10280E00E94F5 +:1044F000100983B7817F846083BF83B7816083BFE6 +:104500007894889583B78E7F83BF88E10FB6F8943F +:1045100080936000109260000FBE08950895089582 +:1045200080E00E94F1020E948E220E946B090E948C +:104530008F220E94F00991E0811101C090E0892F43 +:1045400008950E94E21B80E00E94F1020E940A2866 +:104550000E9400170C9410091F920F920FB60F9231 +:1045600011248F939F93AF93BF938091F302811196 +:1045700013C08091F4029091F502A091F602B091DF +:10458000F7024196A11DB11D8093F4029093F502AC +:10459000A093F602B093F702BF91AF919F918F91D4 +:1045A0000F900FBE0F901F90189582E084BD93E08E +:1045B00095BD9AEF97BD80936E0008952FB7F8943C +:1045C0008091F4029091F502A091F602B091F70269 +:1045D0002FBF0895CF92DF92EF92FF920F931F9318 +:1045E0002FB7F8944091F4025091F5026091F602D1 +:1045F0007091F7022FBF6A017B01EE24FF248C012A +:1046000020E030E0C016D106E206F30610F4415077 +:1046100051099A01281B390BC9011F910F91FF9075 +:10462000EF90DF90CF9008951F920F920FB60F92E8 +:1046300011248F939F93AF93BF938091F402909135 +:10464000F502A091F602B091F7020196A11DB11DED +:104650008093F4029093F502A093F602B093F702D0 +:10466000BF91AF919F918F910F900FBE0F901F90B0 +:1046700018950E94FD13F8942FEF87EA91E62150D8 +:1046800080409040E1F700C0000087E090EBDC0143 +:1046900080931E0390931F03A0932003B0932103E4 +:1046A0009CE088E10FB6F894A895809360000FBE57 +:1046B00090936000FFCF0E949A23811102C00E9454 +:1046C00076230E94A5238093F2020E94AD2380935B +:1046D0001C0387FB882780F9809316010E94A92379 +:1046E000682F70E080E090E00C94A21F6DEE7EEFEA +:1046F00080E090E00E94C12C60E082E090E00E94A7 +:10470000AF2C60E083E090E00E94AF2C60E084E09A +:1047100090E00E94AF2C60E085E090E00E94AF2C1A +:1047200060E086E090E00E94AF2C6FEF87E090E0C1 +:104730000C94AF2C80E090E00E94A92C21E08D3EEB +:104740009E4F09F020E0822F089582E090E00C94C3 +:10475000A12C83E090E00C94A12C84E090E00C94D8 +:10476000A12C682F84E090E00C94AF2C86E090E0C0 +:104770000C94A12C682F86E090E00C94AF2C87E07D +:1047800090E00C94A12C682F87E090E00C94AF2C63 +:104790008091FA0280FF0BC060911C0185E0689F48 +:1047A000B001112475956795759567952BC081FFAC +:1047B00009C060911C0185E0689FB00111247595C6 +:1047C000679520C082FF07C060911C0185E0689F4B +:1047D000B001112417C09091FB029923D1F0609190 +:1047E0001B01961788F720911C0185E0289F9001F6 +:1047F0001124929FA001939F500D112470E0CA01D3 +:104800000E94872C6038710540F46115710539F0FC +:1048100002C065E070E0862F08958FE7089581E07B +:1048200008958091FA0280FF08C060911A0170E03B +:10483000759567957595679521C081FF06C0609154 +:104840001A0170E07595679519C082FF04C06091E8 +:104850001A0170E010C09091FB029923C1F06091A1 +:1048600019019617A0F780911A01899FC0011124A0 +:1048700070E00E94872C6038710528F4611571057D +:1048800021F0862F08958FE7089581E0089561E073 +:1048900070E0F4CF803F21F40E94C823819504C0CA +:1048A000813F29F40E94C8238093FE020895823F2D +:1048B00021F40E94C823819504C0833F29F40E94FB +:1048C000C8238093FD020895893F19F40E941124A2 +:1048D00005C08A3F31F40E94112481958093FF0224 +:1048E00008958B3F21F40E941124819504C08C3FD0 +:1048F00029F40E941124809300030895843F21F439 +:104900008091FC02816017C0853F21F48091FC02F8 +:10491000826011C0863F21F48091FC0284600BC04C +:10492000873F21F48091FC02886005C0883F31F404 +:104930008091FC0280618093FC0208958D3F21F4F8 +:104940008091FA0281600BC08E3F21F48091FA02BF +:10495000826005C08F3F29F48091FA0284608093C1 +:10496000FA020895803F39F48091FE0287FF6CC0FF +:104970001092FE0269C0813F29F48091FE02181650 +:10498000BCF362C09091FD02823F29F497FF5CC0A6 +:104990001092FD0259C0833F19F41916CCF354C08C +:1049A000893F41F48091FF0218160CF04DC010921F +:1049B000FF024AC08A3F29F48091FF0287FF44C06A +:1049C000F6CF8B3F39F48091000387FF3DC01092F2 +:1049D00000033AC08C3F29F4809100031816BCF301 +:1049E00033C0843F21F48091FC028E7F17C0853F45 +:1049F00021F48091FC028D7F11C0863F21F48091CB +:104A0000FC028B7F0BC0873F21F48091FC02877FE3 +:104A100005C0883F31F48091FC028F7E8093FC02B8 +:104A200013C08D3F21F48091FA028E7F0BC08E3F20 +:104A300021F48091FA028D7F05C08F3F29F4809187 +:104A4000FA028B7F8093FA028091FD0281110EC0E1 +:104A50008091FE0281110AC08091FF02811106C07F +:104A600080910003811102C01092FB0208958CEF27 +:104A700092E00E9417170E94DE229093F902809321 +:104A8000F80208951F93CF93DF938091F8029091DD +:104A9000F9020E94EA22AC019091FB02992321F0D5 +:104AA00020911D0130E006C020911E018AE0289F60 +:104AB000900111244217530708F486C08091FD022B +:104AC000C091FE02D091FF0210910003811107C036 +:104AD000C11176C0D11174C0111172C075C09F3F51 +:104AE00019F09F5F9093FB02181624F40E94C823CC +:104AF0008093FD028091FD0287FF05C00E94C823BC +:104B000081958093FD021C1624F40E94C823809393 +:104B1000FE028091FE0287FF05C00E94C823819596 +:104B20008093FE026091FD02662339F1C091FE027E +:104B3000CC2319F1772767FD7095872F972F0E9457 +:104B4000A92923E333E343E35FE30E94B92A0E94E8 +:104B500076296093FD026C2F772767FD7095872F6C +:104B6000972F0E94A92923E333E343E35FE30E94E5 +:104B7000B92A0E9476296093FE021D1624F40E9431 +:104B800011248093FF028091FF0287FF05C00E94DD +:104B9000112481958093FF02111624F40E941124A0 +:104BA000809300038091000387FF05C00E941124B9 +:104BB000819580930003DF91CF911F910C9437254D +:104BC0009F3F09F08ECF96CFDF91CF911F9108952F +:104BD000ECEFF2E085E0DF011D928A95E9F7109293 +:104BE000FB021092FA020895833081F128F481309B +:104BF00059F08230D1F00895853009F449C0B8F1F8 +:104C0000863009F456C0089580911E01262F30E0A9 +:104C1000280F311D2F3F310524F4680F60931E01CA +:104C200008958FEF80931E01089580911D01262F16 +:104C300030E0280F311D2F3F310524F4680F6093B9 +:104C40001D0108958FEF80931D01089580911C012F +:104C5000262F30E0280F311D2F3F310524F4680F37 +:104C600060931C0108958FEF80931C01089580913B +:104C70001B01262F30E0280F311D2F3F310524F472 +:104C8000680F60931B0108958FEF80931B010895B7 +:104C900080911A01262F30E0280F311D2F3F31055A +:104CA00024F4680F60931A0108958FEF80931A011E +:104CB000089580911901262F30E0280F311D2F3FD4 +:104CC000310524F4680F6093190108958FEF8093E4 +:104CD00019010895833011F128F4813049F08230B0 +:104CE00091F00895853081F120F18630C1F1089569 +:104CF00080911E01681720F4861B80931E01089581 +:104D000010921E01089580911D01681720F4861BE2 +:104D100080931D01089510921D01089580911C013A +:104D2000681720F4861B80931C01089510921C01C3 +:104D3000089580911B01681720F4861B80931B0146 +:104D4000089510921B01089580911A01681720F4AC +:104D5000861B80931A01089510921A01089580917C +:104D60001901681720F4861B809319010895109289 +:104D7000190108950F931F93873208F048C08E31B0 +:104D800008F08DC0803109F477C008F5873009F448 +:104D900061C068F4863009F09DC08091F202817F85 +:104DA0008E7F8093F20281E08093020394C08B3067 +:104DB00009F489C08E3009F08DC08091F20282FB27 +:104DC000222720F991E0922790FB82F95EC086317C +:104DD00009F479C060F4813109F07CC00E94E21BC3 +:104DE0009091160181E08927809316016CC089316A +:104DF00009F469C08B3109F06DC08091F20281FB2A +:104E0000222720F991E0922790FB81F93EC0883358 +:104E100009F459C050F4893209F457C0853309F4B4 +:104E200054C0873209F451C055C0833409F44DC0D1 +:104E300028F48A3308F44EC0895332C0883409F00C +:104E400049C00E94E21B0E94200A0E94E4030E94C3 +:104E5000392339C09091F202892F8095817080FBAF +:104E600090F929F0966098609093F20234C0997F8F +:104E7000977F9093F20227C08091F20283FB222752 +:104E800020F991E0922790FB83F98093F202992315 +:104E9000D1F08091F20281608093F20214C08D51B2 +:104EA00041E050E060E070E08A019B0104C0000F27 +:104EB000111F221F331F8A95D2F7C901B8010E9422 +:104EC000A21F0E94E21B81E006C061E070E080E06A +:104ED00090E0F5CF80E01F910F91089580E0089554 +:104EE00080E00895CF93C82F80910203813069F04C +:104EF00018F08230C9F184C0E0911701F0911801D7 +:104F00008081823209F07EC007C0E0911701F091E4 +:104F100018018081823261F48C2F0E946E278111EA +:104F200004C08C2F0E94BA261DC081E090E01AC0F8 +:104F30008C2F0E947027811114C0C43179F048F47D +:104F4000CB3079F0C03109F061C082E08093020378 +:104F500008C0C93219F0C83321F058C010920203BA +:104F600055C081E0817054C0C93291F120F5C4313F +:104F700079F1B0F4C73009F047C08EE180931E018B +:104F800082E380931D018AE080931C0184E1809379 +:104F90001B0188E080931A0188E28093190134C0D4 +:104FA000CE51C63088F5EC2FF0E0EA54FE4F8081F8 +:104FB0008093010329C0CE34E9F020F4CB3421F5ED +:104FC0006AE013C0C13579F0C235F1F461E00DC07B +:104FD00080910103882319F01092010315C081E02C +:104FE0008093020315C061E006C0809101030E9416 +:104FF000F4250AC06AE0809101030E946A2604C079 +:105000001092020380E004C081E002C080E0AACFD9 +:10501000CF9108950E949A23811102C00E947623A5 +:105020000E94B62380931D0380FF02C0869501C0B5 +:1050300080E00C94F10280911D03982F9695292F02 +:1050400030E0233031054CF49F5F990F8170892B3C +:10505000816080931D030E94BA2380911D03869571 +:105060000C94F10280911D03982F969591F0915820 +:10507000990F8170892B80931D038E7F91E009F435 +:1050800090E080911D0390FB80F980931D030E94A6 +:10509000BA2380911D0386950C94F10280911D0323 +:1050A000982F909590FB80F980931D030E94BA235E +:1050B00080911D0380FF02C0869501C080E00C94A2 +:1050C000F10290911D03892F86958F5F8F779170E4 +:1050D000843028F4880F892B80931D0302C090939D +:1050E0001D0380911D038E7F91E009F490E0809173 +:1050F0001D0390FB80F980931D030E94BA238091C9 +:105100001D0386950C94F10220911D03922F969514 +:105110008927982F990F822F8170892B80931D03E7 +:105120008E7F91E009F490E080911D0390FB80F95F +:1051300080931D030E94BA2380911D0386950C94D1 +:10514000F10280911D03869508955058BB27AA2728 +:105150000ED0D1C1C2D130F0C7D120F031F49F3F81 +:1051600011F41EF4B7C10EF4E095E7FB9FC1E92FDF +:10517000D3D180F3BA17620773078407950718F035 +:1051800071F49EF5EBC10EF4E0950B2EBA2FA02D15 +:105190000B01B90190010C01CA01A0011124FF27E4 +:1051A000591B99F0593F50F4503E68F11A16F040DF +:1051B000A22F232F342F4427585FF3CF46953795DE +:1051C0002795A795F0405395C9F77EF41F16BA0BA3 +:1051D000620B730B840BBAF09150A1F0FF0FBB1F51 +:1051E000661F771F881FC2F70EC0BA0F621F731F9A +:1051F000841F48F4879577956795B795F7959E3FF7 +:1052000008F0B3CF9395880F08F09927EE0F979584 +:105210008795089527D108F481E008950CD06BC1DB +:1052200063D140F05AD130F021F45F3F19F03EC114 +:10523000511195C14FC170D198F39923C9F35523EA +:10524000B1F3951B550BBB27AA2762177307840779 +:1052500038F09F5F5F4F220F331F441FAA1FA9F32F +:1052600033D00E2E3AF0E0E830D091505040E69521 +:10527000001CCAF729D0FE2F27D0660F771F881F82 +:10528000BB1F261737074807AB07B0E809F0BB0B71 +:10529000802DBF01FF2793585F4F2AF09E3F510595 +:1052A00068F004C15CC15F3FECF3983EDCF3869587 +:1052B00077956795B795F7959F5FC9F7880F911D0B +:1052C0009695879597F90895E1E0660F771F881FF7 +:1052D000BB1F621773078407BA0720F0621B730BAA +:1052E000840BBA0BEE1F88F7E095089504D06894FC +:1052F000B11135C1089518D188F09F5790F0B92F9A +:105300009927B751A0F0D1F0660F771F881F991F1A +:105310001AF0BA95C9F712C0B13081F01FD1B1E0CF +:1053200008951CC1672F782F8827B85F39F0B93FDF +:10533000CCF3869577956795B395D9F73EF490951C +:105340008095709561957F4F8F4F9F4F0895E8949A +:1053500009C097FB3EF490958095709561957F4FBD +:105360008F4F9F4F9923A9F0F92F96E9BB2793956B +:10537000F695879577956795B795F111F8CFFAF47B +:10538000BB0F11F460FF1BC06F5F7F4F8F4F9F4FAC +:1053900016C0882311F096E911C0772321F09EE80A +:1053A000872F762F05C0662371F096E8862F70E070 +:1053B00060E02AF09A95660F771F881FDAF7880F4A +:1053C0009695879597F9089588D018F011F08CD0AC +:1053D00038F480C0C4C0E92F9FD0B0F35523C9F37F +:1053E000E7FB6217730784079507A8F199F3E92F84 +:1053F000FF2788232AF03197660F771F881FDAF777 +:10540000952F5527442332F091505040220F331FDF +:10541000441FD2F7BB27E91BF50B621B730B840BF0 +:10542000B109C1F222F4620F731F841FB11D3197BD +:105430002AF0660F771F881FBB1FEFCF9150504097 +:105440005AF041F0882332F0660F771F881F915081 +:105450005040C1F7939530C08695779567959F5FCB +:10546000D9F7F8CF990F0008550FAA0BE0E8FEEF27 +:1054700016161706E807F907C0F012161306E40718 +:10548000F50798F0621B730B840B950B39F40A2611 +:1054900061F0232B242B252B21F408950A2609F4EF +:1054A000A140A6958FEF811D811D089597F99F67F3 +:1054B00080E870E060E008959F3F31F0915020F463 +:1054C000879577956795B795880F911D96958795E0 +:1054D00097F908959FEF80EC089500240A9416161A +:1054E000170618060906089500240A9412161306D2 +:1054F000140605060895092E0394000C11F4882360 +:1055000052F0BB0F40F4BF2B11F460FF04C06F5F7B +:105510007F4F8F4F9F4F089557FD9058440F551F51 +:1055200059F05F3F71F04795880F97FB991F61F025 +:105530009F3F79F087950895121613061406551F9C +:10554000F2CF4695F1DF08C0161617061806991F08 +:10555000F1CF86957105610508940895E894BB27FD +:1055600066277727CB0197F908957CDF08F48FEF42 +:1055700008950BD0C0CFB1DF28F0B6DF18F0952327 +:1055800009F094CFA7CF1124EACFC6DFA0F3959FEF +:10559000D1F3950F50E0551F629FF001729FBB271A +:1055A000F00DB11D639FAA27F00DB11DAA1F649FC6 +:1055B0006627B00DA11D661F829F2227B00DA11D79 +:1055C000621F739FB00DA11D621F839FA00D611DFF +:1055D000221F749F3327A00D611D231F849F600D20 +:1055E000211D822F762F6A2F11249F5750408AF059 +:1055F000E1F088234AF0EE0FFF1FBB1F661F771FE5 +:10560000881F91505040A9F79E3F510570F04ECF32 +:10561000A6CF5F3FECF3983EDCF3869577956795D0 +:10562000B795F795E7959F5FC1F7FE2B880F911D02 +:105630009695879597F90895FA01EE0FFF1F30961A +:105640002105310599F16115710561F48038BFE3D9 +:105650009B0749F168949038810561F08038BFEF6D +:105660009B0741F0992342F5FF3FE10531052105F4 +:1056700011F1E8940894E795D901AA2329F4AB2FF6 +:10568000BE2FF85FD0F310C0FF5F70F4A695E0F76F +:10569000F73950F019F0FF3A38F49F779F930CD008 +:1056A0000F9007FC905808953EF014CF60E070E032 +:1056B00080E89FE308954FE79F775F934F933F9371 +:1056C0002F939ED02F913F914F915F9152DF05C054 +:1056D00019F40EF0EBCE42CFFDCE26DFC8F396389C +:1056E000C0F707F80F92E8942BE33AEA48EB5FE73C +:1056F0004EDF0F920F920F924DB75EB70F92C0D050 +:10570000EAE0F1E016D04F915F91EF91FF91E595BE +:10571000EE1FFF1F49F0FE57E0684427EE0F441FBD +:10572000FA95E1F74195550B32D00F9007FE26C050 +:105730000895DF93CF931F930F93FF92EF92DF9221 +:105740007B018C01689405C0DA2EEF011EDFFE019B +:10575000E894A5912591359145915591AEF3EF01CE +:1057600006DDFE019701A801DA9479F7DF90EF904A +:10577000FF900F911F91CF91DF9108959B01AC0194 +:1057800060E070E080E89FE349CD90CE95CECCDE1E +:10579000E8F39923D9F3940F511DBBF39150504076 +:1057A00094F059F0882332F0660F771F881F9150CC +:1057B0005040C1F79E3F510544F7880F911D9695C3 +:1057C000879597F908955F3FACF0983E9CF0BB2712 +:1057D000869577956795B79508F4B1609395C1F76D +:1057E000BB0F58F711F460FFE8CF6F5F7F4F8F4F0B +:1057F0009F4FE3CFB4CE0EF05FCE6CCE689456CE02 +:1058000093DEC8F39923D1F3C6F3DF93CF931F93AD +:105810000F93FF92C92FDD2788232AF02197660F67 +:10582000771F881FDAF720E030E040E85FEB9FE366 +:10583000883920F0803E30F021968F7787DCE2E3D4 +:10584000F1E003C083DCEFE5F1E073DF8B01BE0123 +:10585000EC01FB2E6F5771097595771F880B990B1B +:1058600078DD28E132E741E35FE38FDEAF2D980179 +:10587000AE01FF900F911F91CF91DF9178DC3BCE6D +:10588000FA01DC01AA0FBB1F9B01AC01BF5728F432 +:1058900022273327442750781FC0B75188F4AB2FF5 +:1058A0000024469537952795011CA395D2F3002037 +:1058B00069F0220F331F441FB395DAF30DD045CCA6 +:1058C00061307105A0E88A07B94630F49B01AC014C +:1058D0006627772788279078309621F020833183B8 +:1058E000428353830895AA1BBB1B51E107C0AA1F23 +:1058F000BB1FA617B70710F0A61BB70B881F991F71 +:105900005A95A9F780959095BC01CD01089597FB14 +:10591000072E16F4009407D077FD09D00E94732C4F +:1059200007FC05D03EF4909581959F4F08957095A2 +:1059300061957F4F0895EE0FFF1F0590F491E02DC4 +:105940000994F999FECF92BD81BDF89A992780B547 +:105950000895A8E1B0E042E050E00C94C92C262F55 +:10596000F999FECF92BD81BDF89A019700B4021655 +:1059700039F01FBA20BD0FB6F894FA9AF99A0FBE03 +:1059800008950196272F0E94B02C0C94AF2CDC01B7 +:10599000CB01FC01F999FECF06C0F2BDE1BDF89A3A +:1059A000319600B40D9241505040B8F70895F894E4 +:0259B000FFCF27 +:1059B200640007000CFF0000003F64041092106FA7 +:1059C200103B1007100101DF022808140A321E00E2 +:1059D20002040507090B0C0E1011131517181A1CD7 +:1059E2001D1F2123242628292B2D2F303234353711 +:1059F200393B1F0F03764F5F6F7F4969437909591E +:105A020053633149803F5D8B803FF8BF803FCAE1DD +:105A1200803F73ED803FCAE1803FF8BF803F5D8BDE +:105A2200803F3149803F0000803FF16D7F3F75EA42 +:105A32007E3F4C827E3F833F7E3F84287E3F833F72 +:105A42007E3F4C827E3F75EA7E3FF16D7F3F0000D4 +:105A5200803F3F4D3639ED04A0046A043104C4038B +:105A6200DD03F6030F04010203040506070809001B +:00000001FF diff --git a/keyboards/planck/keymaps/dzobert/keymap.c b/keyboards/planck/keymaps/dzobert/keymap.c new file mode 100644 index 000000000..365649ed8 --- /dev/null +++ b/keyboards/planck/keymaps/dzobert/keymap.c @@ -0,0 +1,38 @@ +#include "keymap.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = { /* Qwerty */ + {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TAB}, + {KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_BSPC}, + {KC_LALT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, + {KC_FN4, KC_RSFT, KC_LGUI, KC_LSFT, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + // Space is repeated to accommadate for both spacebar wiring positions +}, +[1] = { /* Colemak */ + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_TAB}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_BSPC}, + {KC_LALT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, + {KC_FN3, KC_RSFT, KC_LGUI, KC_LSFT, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[2] = { /* RAISE */ + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, + {KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_DEL}, + {KC_TRNS, KC_GRV, KC_MINS, KC_EQL, KC_QUOT, S(KC_QUOT), S(KC_LBRC), S(KC_RBRC), KC_LBRC, KC_RBRC, KC_BSLS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_HOME, KC_PGUP, KC_PGDN, KC_END} +}, +[3] = { /* LOWER */ + {KC_POWER,KC_PSCR, KC_SLCK, KC_PAUSE, KC_NLCK, KC_EXECUTE, KC_MENU, KC_APP, KC_7, KC_8, KC_9, KC_KP_SLASH}, + {KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_CAPS, KC_CANCEL, KC_UNDO, KC_AGAIN, KC_4, KC_5, KC_6, KC_KP_ASTERISK}, + {KC_TRNS, KC_INSERT,KC_CUT, KC_COPY, KC_PASTE, KC_BSLS, KC_9, KC_0, KC_1, KC_2, KC_3, KC_KP_MINUS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_KP_DOT, KC_KP_ENTER, KC_KP_PLUS} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE + [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER + + [3] = ACTION_DEFAULT_LAYER_SET(0), + [4] = ACTION_DEFAULT_LAYER_SET(1), + +}; diff --git a/keyboards/planck/keymaps/experimental/Makefile b/keyboards/planck/keymaps/experimental/Makefile new file mode 100644 index 000000000..581e08cd0 --- /dev/null +++ b/keyboards/planck/keymaps/experimental/Makefile @@ -0,0 +1,25 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/experimental/README.md b/keyboards/planck/keymaps/experimental/README.md new file mode 100644 index 000000000..de9680b49 --- /dev/null +++ b/keyboards/planck/keymaps/experimental/README.md @@ -0,0 +1,2 @@ +# The Default Planck Layout + diff --git a/keyboards/planck/keymaps/experimental/compiled.hex b/keyboards/planck/keymaps/experimental/compiled.hex new file mode 100644 index 000000000..840050699 --- /dev/null +++ b/keyboards/planck/keymaps/experimental/compiled.hex @@ -0,0 +1,1669 @@ +:100000000C94BA050C94FE050C94FE050C94FE05A8 +:100010000C94FE050C94FE050C94FE050C94FE0554 +:100020000C94FE050C94FE050C948F1A0C94611B25 +:100030000C94C2280C94FE050C94FE050C94FE054D +:100040000C94FE050C94B1060C94FE050C94FE0570 +:100050000C94FE050C942A290C94FE050C94FE05C4 +:100060000C94FE050C94FE050C94FE050C94FE0504 +:100070000C94FE050C94FE050C94FE050C94FE05F4 +:100080000C9475100C94FE050C94FE050C94FE0562 +:100090000C94FE050C94FE050C94FE050C94FE05D4 +:1000A0000C94FE050C94FE050C94FE0519072B0715 +:1000B0003F07510759076F07BD07BD07BD07BD07BC +:1000C000BD07BD077D07AC07CE1BF01BDE1CF01B78 +:1000D000DE1C351C581CDE1CAD1CC01CAA1FAA1F30 +:1000E000D91FD91F182038208E218E2143208E2120 +:1000F000F320F3205A2163218E2188210021002141 +:1001000000210021002100210021002100210021E7 +:1001100000210021002100210021002110211E21A9 +:1001200025212C21362107634236B79BD8A71A39DF +:10013000685618AEBAAB558C1D3CB7CC5763BD6D35 +:10014000EDFD753EF6177231BF000000803F0800DC +:100150000000BE922449123EABAAAA2ABECDCCCC46 +:100160004C3E00000080BEABAAAAAA3E00000000E0 +:10017000BF000000803F0000000000084178D3BBB2 +:100180004387D1133D190E3CC3BD4282AD2B3E685F +:10019000EC8276BED98FE1A93E4C80EFFFBE01C450 +:1001A000FF7F3F0000000000000000000000000092 +:1001B000000000010204060A0F17202C3A4A5D7164 +:1001C000879DB3C7DAE9F5FCFFFCF5E9DAC7B39D13 +:1001D00087715D4A3A2C20170F0A060402010000BD +:1001E00000000000000000006966207965730A09BC +:1001F0007065616E7574206275747465720A656CE1 +:1002000073650A097269636520736E61636B7300BD +:10021000706C616E636B2F6578706572696D656E69 +:1002200074616C20402076342E302D3233302D67AF +:100230003839636435322D6469727479002B001487 +:10024000001A000800150017001C0018000C00120E +:100250000013002A00290004001600070009000A04 +:10026000000B000D000E000F0033003400E1001DF4 +:10027000001B0006001900050011001000360037B1 +:1002800000380028000530E000E200E30003302CD5 +:10029000002C0004305000510052004F002B00147D +:1002A000001A00090013000A000D000F0018001CBE +:1002B0000033002A0029000400150016001700076B +:1002C000000B00110008000C0012003400E1001DBA +:1002D000001B000600190005000E00100036003754 +:1002E00000380028001470E000E200E30003302C26 +:1002F000002C0004305000510052004F002B0034FD +:10030000003600370013001C0009000A0006001523 +:10031000000F002A00290004001200080018000C39 +:100320000007000B001700110016003800E1003331 +:100330000014000D000E001B00050010001A00192B +:10034000001D0028000530E000E200E30003302C2F +:10035000002C0004305000510052004F0035021EA6 +:10036000021F022002210222022302240225022669 +:100370000227022A004C003A003B003C003D003EB0 +:10038000003F002D022E022F0230023102010040F8 +:100390000041004200430044004500320264020173 +:1003A0000001000100010001000100010001000145 +:1003B0000001000100AB00AA00A900AE0035001E3C +:1003C000001F002000210022002300240025002619 +:1003D0000027002A004C003A003B003C003D003E54 +:1003E000003F002D002E002F0030003100010040A2 +:1003F0000041004200430044004500320032000149 +:1004000000010001000100010001000100010001E4 +:100410000001000100AB00AA00A900AE001E001EF2 +:10042000001E001E001E001E001E001E001E001EDC +:10043000001E001E00000014001A0008001500171E +:10044000001C0018000C00120013002F0000000414 +:10045000001600070009000A000B000D000E000F37 +:1004600000330034000D30000000000600190000C9 +:10047000000000110010000000000000000000005B +:10048000000000000000000000000000000000006C +:10049000000000000000000000000000000000005C +:1004A000000000000000000000000000000000004C +:1004B000000000000000000000000000000000003C +:1004C000000000000000000000000000000000002C +:1004D000000000000000000000000000000000001C +:1004E000000000000000000000000000000000000C +:1004F00000000000000000000000000000000000FC +:1005000000000000000000000000000000000000EB +:1005100000000000000000000000000000000000DB +:1005200000000000000000000000000000000000CB +:1005300000000000000000000000000000000000BB +:1005400000000000000000000000000000000000AB +:10055000000000000000000000000000000000009B +:10056000000000000000000000000000000000008B +:10057000000000000000000000000000000000007B +:10058000000000000000000000000000000000006B +:10059000000000000000000000000000000000005B +:1005A000000000000000000000000000000000004B +:1005B000000000000000000000000000000000003B +:1005C000000000000000000000000000000000002B +:1005D000000000000000000000000000000000001B +:1005E000000000000000000000000000000000000B +:1005F00000000000000000000000000000000000FB +:1006000000000000000000000000000000000000EA +:1006100000000000000000000000000000000000DA +:1006200000000000000000000000000000000000CA +:1006300000000000000000000000000000000000BA +:1006400000000000000000000000000000000000AA +:10065000000000000000000000000000000000009A +:10066000000000000000000000000000000000008A +:10067000000000000000000000000000000000007A +:10068000000000000000000000000000000000006A +:10069000000000000000000000000000000000005A +:1006A000000000000000000000000000000000004A +:1006B000000000000000000000000000000000003A +:1006C000000000000000000000000000000000002A +:1006D000000000000000000000000000000000001A +:1006E000000000000000000000000000000000000A +:1006F00000000000000000000000000000000000FA +:1007000000000000000000000000000000000000E9 +:1007100000000000000000000000000000000000D9 +:1007200000000000000000000000000000000000C9 +:1007300000000000000000000000000000000000B9 +:1007400000000000000000000000000000000000A9 +:100750000000000000000000000000000000000099 +:100760000000000000000000000000000000000089 +:100770000000000000000000000000000000000079 +:100780000000000000000000000000000000000069 +:100790000000000000000000000000000000000059 +:1007A0000000000000000000000000000000000049 +:1007B0000000000000000000000000000000000039 +:1007C0000000000000000000000000000000000029 +:1007D0000000000000000000000000000000000019 +:1007E0000000000000000000000000000000000009 +:1007F00000000000000000000000000000000000F9 +:1008000000000000000000000000000000000000E8 +:1008100000000000000000000000000000000000D8 +:1008200000000000000000000000000000000000C8 +:1008300000000000000000000000000000010000B7 +:100840007001000100010001000100010001000130 +:100850000001004C0001000100010015701670132A +:10086000700A700030013002300C30010001001CB1 +:10087000701B70187019701D701E7001000100014E +:100880000001000100010001000100010001000160 +:100890000001000100010001000100010000000052 +:1008A00000000000002A2B280000000000000000CB +:1008B000000000000000000029000000002C1E3491 +:1008C00020212224342627252E362D3738271E1F97 +:1008D000202122232425263333362E37381F0405C2 +:1008E000060708090A0B0C0D0E0F10111213141530 +:1008F000161718191A1B1C1D2F3130232D3504050E +:10090000060708090A0B0C0D0E0F1011121314150F +:10091000161718191A1B1C1D2F3130354C000000FA +:1009200000000000000000000000000000000000C7 +:1009300000000000000000000000000000000101B5 +:10094000010101010001010101000000000000009F +:100950000000000000000001000100010101010190 +:100960000101010101010101010101010101010177 +:10097000010101010101010100000001010000006D +:100980000000000000000000000000000000000067 +:1009900000000000000000000101010100280354D4 +:1009A0000068006500200050006C0061006E00636C +:1009B000006B0020004B006500790062006F006151 +:1009C000007200640000002C034F00720074006885 +:1009D000006F006C0069006E00650061007200200D +:1009E000004B006500790062006F006100720064D6 +:1009F00000730000000403090409026D00040100F3 +:100A0000A0FA0904000001030101000921110100FD +:100A1000012240000705810308000A0904010001C2 +:100A200003010200092111010001224D0007058286 +:100A30000308000A09040200010300000009211153 +:100A40000100012236000705830308000A09040398 +:100A500000010300000009211101000122390007F3 +:100A60000584031000011201100100000008EDFED2 +:100A7000606001000102000105010906A1010507EE +:100A800019E029E71500250195087501810205087F +:100A900019012905950575019102950175039101CB +:100AA0000507190029771500250195787501810240 +:100AB000C005010980A101850216010026B7001AB0 +:100AC00001002AB700751095018100C0050C0901CD +:100AD000A1018503160100269C021A01002A9C022E +:100AE000751095018100C005010902A1010901A14C +:100AF00000050919012905150025019505750181D4 +:100B0000029501750381010501093009311581251F +:100B10007F95027508810609381581257F95017535 +:100B2000088106050C0A38021581257F9501750894 +:100B30008106C0C005010906A101050719E029E7E2 +:100B4000150025019508750181029501750881013F +:100B5000050819012905950575019102950175038F +:100B600091010507190029FF150026FF009506755C +:100B7000088100C011241FBECFEFDAE0DEBFCDBF79 +:100B800004B603FE24C080918F0490919004A0913C +:100B90009104B09192048730904BA740B04BB9F4C8 +:100BA00010928F041092900410929104109292046B +:100BB00014BE84B7877F84BF88E10FB6F894809312 +:100BC0006000109260000FBEE0E0F8E3099513E0CA +:100BD000A0E0B1E0E2E0F6E602C005900D92A0339D +:100BE000B107D9F714E0A0E3B3E001C01D92AF381C +:100BF000B107E1F70E94D9170C94FF320C94000062 +:100C000081E0089508950C9406080C9400060C9455 +:100C100002060E94C92E811105C010923203109263 +:100C200031030DC081E290E00090330302C0880FD1 +:100C3000991F0A94E2F7909332038093310382E084 +:100C40008093300380916F00826080936F000895DD +:100C500090916F0081E0911101C080E008950E94A1 +:100C6000C92E23E030E0281B3109220F20933403E2 +:100C70000895282F2F9880918000211108C0877F28 +:100C80008093800010928D0010928C001BC08860B1 +:100C900080938000233019F48FEF9FEF0FC083E023 +:100CA00090E0821B9109880F991F2FEF3FEFA90158 +:100CB00002C0569547958A95E2F7CA0190938D0038 +:100CC00080938C000C942F06CF93C82F0E94280687 +:100CD00040913303882329F090916F009D7F90937A +:100CE0006F00C09333038823D1F0209131033091FA +:100CF000320302C0369527954A95E2F72F733327C2 +:100D0000C90102C0880F991FCA95E2F79093320378 +:100D10008093310380916F00826080936F00CF9148 +:100D200008950E942F0684E08093330310923003CD +:100D30000895279A2F988FEF9FEF909387008093C5 +:100D400086008AE08093800089E1809381000E9480 +:100D5000322E0C9491060E9499066E9A769A0C9403 +:100D6000DA071F920F920FB60F9211242F933F9321 +:100D70008F939F93EF93FF93E0913103F0913203B0 +:100D8000CF01019690933203809331030090330397 +:100D900002C0F695E7950A94E2F7EF73809130036D +:100DA000823019F4E03251F404C0813039F4EF3369 +:100DB00029F480916F008D7F80936F00F0E0E855FB +:100DC000FE4FE49121E031E0E29FC001E39F900DEE +:100DD00011240090340302C0969587950A94E2F797 +:100DE00090938D0080938C00FF91EF919F918F9154 +:100DF0003F912F910F900FBE0F901F901895CF939A +:100E0000DF93EC010E94C629BE0180E090E0DF91F3 +:100E1000CF910C94B9250F931F93462F50E04E307D +:100E2000510508F0AAC0DC01FA01EA5AFF4F0C9400 +:100E3000C33212968C91882309F49FC000E010E021 +:100E4000980140E064E070E088E292E00E94F313D1 +:100E500081E090E011C012968C91882309F48DC036 +:100E600000E010E0980140E066E070E088EB91E07F +:100E70000E94F31382E090E00E94FF067EC012966B +:100E80008C91882309F479C000E010E0980140E0DB +:100E900068E070E088EE91E00E94F31384E090E057 +:100EA000EBCF12968C91882311F083E007C083E08A +:100EB00013C012968C91882371F084E00E9436262C +:100EC00082E00E9464060E94090640E164E083E03B +:100ED0000E94AD0852C084E00E945726F6CF1296B9 +:100EE0008C91882331F085EE0E944E1E0E94892E3F +:100EF00044C085EE0E94161F40C012968C91882334 +:100F0000E1F10E94A80F00E010E0980140E066E0E7 +:100F100070E088E891E00E94F31384E00E94572675 +:100F200083E00E94572680E10E94572685E00E94B8 +:100F300036260E94B329811102C00E948F290E9487 +:100F4000CB2990E09093740480937304806880931D +:100F500073040E94CF2911C012968C91882369F0E6 +:100F600000E010E0980140E066E070E088E591E084 +:100F70000E94F31385E00E94572680E090E01F91C5 +:100F80000F9108950F931F932FEF89EF90E0215059 +:100F900080409040E1F700C0000000E010E09801C0 +:100FA00040E065E070E088E492E00E94F3131F9156 +:100FB0000F9108950C94C2070F931F9300E010E067 +:100FC000980140E063E070E080E091E00E94F3135C +:100FD0002FEF82E597E0215080409040E1F700C07C +:100FE00000001F910F910C94A80F0F931F9300E026 +:100FF00010E0980140E068E070E088E191E00E9434 +:10100000F3131F910F9108950C94F50780914003FD +:10101000882309F470C080913E0390913F030E94A1 +:1010200000298D32914008F466C0109240030E945E +:1010300081088091380390913903499781F4809118 +:101040003A0390913B03892B51F480913C0390919A +:101050003D03892B21F480E192E00E948208809177 +:10106000380390913903099781F480913A03909164 +:101070003B03892B51F480913C0390913D03892BD4 +:1010800021F488EE91E00E948208809138039091CB +:101090003903049791F480913A0390913B0346976A +:1010A00061F480913C0390913D03892B31F48BE0F6 +:1010B0000E944E1E8BE00E94161F80913803909173 +:1010C00039030497C1F480913A0390913B0346970A +:1010D00091F480913C0390913D03079761F483EE76 +:1010E0000E944E1E86E10E944E1E86E10E94161F3F +:1010F00083EE0C94161F089581E008950C947C08EB +:10110000089508950F931F93CF938C01F8012491B4 +:101110002223F9F030E0F901E356F74FC491F901C9 +:10112000E35EF64F2491222359F081EE0E944E1E79 +:101130008C2F0E944E1E8C2F0E94161F81EE04C021 +:101140008C2F0E944E1E8C2F0E94161F0F5F1F4F68 +:10115000DDCFCF911F910F910895CF92DF92EF9243 +:10116000FF920F931F9301E010E020E030E0680150 +:10117000790104C0CC0CDD1CEE1CFF1C8A95D2F753 +:1011800004C0000F111F221F331F6A95D2F70C29CC +:101190001D292E293F29C0904504D0904604E09097 +:1011A0004704F0904804C022D122E222F322842F87 +:1011B000C016D106E206F30641F41F910F91FF908D +:1011C000EF90DF90CF900C9436261F910F91FF90F7 +:1011D000EF90DF90CF900C9457260C94AB06809143 +:1011E0008503882309F448C080914103909142030C +:1011F000009779F40E94F42890934203809341036E +:101200008091430390E0009771F48091440390E053 +:101210000AC00E94002920917002309171022817A3 +:10122000390740F329C00197880F991F880F991F2C +:10123000FC01EB5BFC4F60817181828193810E9494 +:10124000DB0FE091430384E0E89FF0011124EB5BA6 +:10125000FC4F60817181828193814FE050E00E9458 +:1012600093138091430390E001966091440370E0F2 +:101270000E94AF32809343030C94030610928703BD +:101280000C94A80F81E0809387030C9404080895C0 +:101290008F929F92AF92BF92EF92FF920F931F9304 +:1012A000CF93DF93CDB7DEB7A3970FB6F894DEBF29 +:1012B0000FBECDBF7C01FC0100811181C8010E94DD +:1012C000F226B8010E94CB0D8C01B7010E947E0866 +:1012D000882309F4ACC20531F0E71F0741F4F70198 +:1012E0008281882309F458C00E948A14A0C2063162 +:1012F000F0E71F0741F4F7018281882309F44CC00D +:101300000E94931494C20731F0E71F0751F4F701CC +:101310008281882309F440C00E9486148111F0CF95 +:10132000E3CF0831F0E71F0739F4F7018281882302 +:1013300099F10E9442097BC20931F0E71F0739F495 +:10134000F7018281882341F10E943E0970C20A316F +:10135000F0E71F0749F4F70182818823E9F08091C3 +:1013600087038111F1CFE5CF0B31F0E71F0739F487 +:10137000F7018281882381F00E949A140AC00C31FF +:10138000F0E71F0749F4F7018281882329F00E94C2 +:10139000A5140E94F5074BC280918703811105C0F7 +:1013A000F70182818111CFC02DC1003E110579F472 +:1013B000F7018281882309F44DC00E94A80F81E0C3 +:1013C00080938603109285031092440330C2023E3C +:1013D000110559F4F70182818823E1F10E94A80FD9 +:1013E000109286031092850322C2033E110591F4E8 +:1013F000F7018281882371F10E94A80F1092860361 +:1014000081E080938503109243031092420310926F +:1014100041030DC20235110559F4F7018281882379 +:1014200009F405C280917002909171020A970DC073 +:101430000135110579F4F7018281882309F4F7C198 +:1014400080917002909171020A969093710280933C +:101450007002EDC14091740283E2EFE8F2E0DE0138 +:10146000119601900D928A95E1F7F701808121E0B4 +:1014700030E02C0F3D1F280F311DC9012091720251 +:1014800030917302FC01E20FF31F6081772767FD43 +:101490007095640F711D882777FD8095982F0E94A5 +:1014A000D12F20E030E040E451E40E94362F4B0180 +:1014B0005C01F701218184E090E0821B9109BC016D +:1014C000882777FD8095982F0E94D12F9B01AC0132 +:1014D000C501B4010E94CE2E9B01AC0160E070E01A +:1014E00080E090E40E94443120E030E04CED50E494 +:1014F0000E94E1304B015C01F70182818823D1F029 +:101500004FE050E0C501B4010E949313809186031F +:101510008823A1F08091440324E0829FF0011124EC +:10152000EB5BFC4F80829182A282B3828F5F8093BB +:10153000440304C0C501B4010E94DB0F0F3F110535 +:1015400008F02ECF74C18091400381111FC0043177 +:1015500030E7130709F020C10E94800881E08093E2 +:1015600040030E94F42890933F0380933E0310921F +:101570003703109239031092380310923B031092F4 +:101580003A0310923D0310923C0351C180913E03F7 +:1015900090913F030E9400298C32914070F4809119 +:1015A0003703E82FF0E0EE0FFF1FE85CFC4F1183DC +:1015B00000838F5F809337033AC10431F0E71F0740 +:1015C00008F002C1023020E7120730F5011530E7BC +:1015D000130709F0C6C0F7018281882309F4C9C046 +:1015E0000E94F9210E94A80F0E94DC07FFEF24E36C +:1015F0003CE0F15020403040E1F700C000000E9484 +:101600004F2915C10431F0E71F0708F0DDC0023093 +:1016100020E7120708F4A1C0F7018281882309F4AA +:10162000A8C00E94B329811102C00E948F290E9484 +:10163000CB2990E090937404809373040230F0E718 +:101640001F0721F480917304816080C0033020E77C +:10165000120721F480917304826078C0043030E76F +:10166000130721F480917304846070C0053080E713 +:10167000180719F48091730427C0063090E7190702 +:1016800021F480917304806161C00730E0E71E0798 +:1016900021F480917304806259C00830F0E71F077D +:1016A00021F480917304806451C0093020E712074F +:1016B00021F480917304806849C00A3030E7130731 +:1016C00029F4809173048460886040C00B3080E707 +:1016D000180721F4809173048E7F38C00C3090E796 +:1016E000190721F4809173048D7F30C00D30E0E73D +:1016F0001E0721F4809173048B7F28C00E30F0E721 +:101700001F0719F48091730420C00F3020E71207DF +:1017100021F4809173048F7E19C0003130E71307E4 +:1017200021F4809173048F7D11C0013180E7180787 +:1017300021F4809173048F7B09C08091730402317E +:10174000104711F48F7702C08B7F877F80937304DB +:10175000809173040E94CF296AC0011530E71307F6 +:1017600041F00130104731F181E0809335038093DF +:101770003603C701A3960FB6F894DEBF0FBECDBFE8 +:10178000DF91CF911F910F91FF90EF90BF90AF909D +:101790009F908F900C9405060431F0E71F07A0F48A +:1017A000023020E7120708F037CF011530E71307A2 +:1017B000C1F616CFF70182818823D9F280916204A5 +:1017C00081608093620433C0033390E71907A1F46A +:1017D000F7018281882321F01092350382E017C03F +:1017E00080913503811106C086E20E944E1E86E27A +:1017F0000E94161F82E019C00433104709F0B4CFCD +:10180000F7018281882331F01092360380E20E9432 +:10181000651F0DC080913603811106C087E20E94CA +:101820004E1E87E20E94161F80E20E946C1F80E01D +:10183000A3960FB6F894DEBF0FBECDBFDF91CF9158 +:101840001F910F91FF90EF90BF90AF909F908F905E +:1018500008952CE0729FF001112430E3839FE00D86 +:10186000F11D1124E60FF11DEE0FFF1FE35CFD4F8C +:10187000859194910E94DD0D811540E5940708F053 +:1018800047C0811520E4920708F013C1883E9105F6 +:1018900020F5803E910508F07CC1883A910578F4E6 +:1018A000853A910508F0A5C08130910509F471C110 +:1018B00008F42EC18430910508F06BC129C18B3B1F +:1018C000910508F4A1C0803C910508F421C1FC01F8 +:1018D000EE0FFF1FE354FF4FE6C0811530E2930780 +:1018E00058F4811541E0940708F053C1803F9105F9 +:1018F00008F40EC190650895811520E3920708F061 +:10190000D5C0FC01FF70EE0FFF1FE35CFD4FCBC0A5 +:10191000811535E5930708F043C0811544E5940728 +:1019200008F0DEC0811522E5920708F5811531E542 +:10193000930708F0C1C0482F437021E030E002C097 +:10194000220F331F4A95E2F73C68AC0164E05695DC +:1019500047956A95E1F74370342B8F70869586958D +:1019600040E2849FC0011124822B932B0895282FDD +:1019700026952695AC01437055278115934508F0AF +:10198000A0C080E2289F9001112481E090E002C075 +:10199000880F991F4A95E2F7822B932B9C68089534 +:1019A0008F3240E7940790F48F3120E7920708F0D8 +:1019B000A2C0811536E5930708F497C09C01305604 +:1019C0002115304108F0A4C09F7093C0803320E7F8 +:1019D000920709F497C008F492C0813340E7940756 +:1019E00009F493C08233904709F092C080E093EDF0 +:1019F0000895853A910509F48EC0863A910509F05B +:101A00008DC082E890E40895883A910509F489C070 +:101A1000893A910509F488C08A3A910509F487C08A +:101A20008B3A910509F486C08C3A910509F485C07A +:101A30008D3A910509F484C0803B910509F483C077 +:101A40008E3A910509F482C08F3A910509F481C05C +:101A5000813B910509F480C0823B910509F47FC068 +:101A6000833B910509F47EC0843B910509F47DC058 +:101A7000853B910509F47CC0863B910509F47BC048 +:101A8000873B910509F47AC0883B910509F479C038 +:101A9000893B910509F478C08A3B910509F477C028 +:101AA00080E094E408958591949108959927906C2D +:101AB00008959F70906A0895982F8827816F906A83 +:101AC000089590E2299F9001112481E090E002C0E6 +:101AD000880F991F4A95E2F7822B932B9A680895F5 +:101AE000982F8827846F906A08958F719927982F6F +:101AF0008827906208958F519047946D089580E0F3 +:101B000091ED089580E090ED089580E092ED0895C4 +:101B100080E090E0089581E890E4089583E890E4FF +:101B2000089582EE94E4089589EE94E408958AEE8F +:101B300094E4089585EB94E4089586EB94E4089585 +:101B400087EB94E408958CEC94E408958DEC94E490 +:101B5000089583E895E408958AE895E4089582E974 +:101B600095E4089584E995E4089581E296E4089562 +:101B700083E296E4089584E296E4089585E296E48B +:101B8000089586E296E4089587E296E408958AE24D +:101B900096E4089508959CE0799FF001112490E364 +:101BA000899FE00DF11D1124E60FF11DEE0FFF1FBF +:101BB000E35CFD4F8591949108958238910549F138 +:101BC000B0F48133910509F458C048F48932910585 +:101BD00009F44EC08A32910509F454C00895853342 +:101BE000910509F440C08933910599F00895833E29 +:101BF000910529F138F4803E910591F0823E9105DE +:101C0000A1F00895863E9105F9F0873E910531F1E6 +:101C100008952091730420FD3AC021FD38C0089535 +:101C20008091730480FD35C032C08091730482FFBF +:101C300032C08091730484FD30C083EE39C080913E +:101C4000730482FD28C0F5CF8091730483FF27C001 +:101C50008091730484FD21C087EE2AC080917304B3 +:101C600083FD1DC0F5CF8091730485FD1AC01BC094 +:101C70008091730485FD17C014C08091730486FDA4 +:101C800014C015C08091730486FD11C00EC080EE93 +:101C90000FC089E30DC082EE0BC080E009C086EE64 +:101CA00007C089E205C085E303C08AE201C081E381 +:101CB00090E008950C940706E82FF0E0E254FD4F01 +:101CC0008081E82FEF70F0E082958F7021E030E0A6 +:101CD000A90102C0440F551F8A95E2F740A3089559 +:101CE0000F931F93CF93DF93C3E0D0E001E010E0A8 +:101CF000FE01E254FD4F8081E82FEF70F0E021A15A +:101D000082958F70A80102C0440F551F8A95E2F793 +:101D1000CA01822B81A38C2F0E945C0E219740F771 +:101D20008BE090E061E070E0FC01EE54FD4F20811B +:101D3000E22FEF70F0E042A122952F70DB0102C08C +:101D4000AA0FBB1F2A95E2F79D01242B22A301971E +:101D500058F7DF91CF911F910F9108950F931F9323 +:101D6000CF93DF9385B7806885BF85B7806885BFCF +:101D7000C3E0D0E001E010E0FE01E254FD4F8081BD +:101D8000E82FEF70F0E021A182958F70A80102C0CA +:101D9000440F551F8A95E2F7CA01822B81A38C2F2D +:101DA0000E945C0E219740F78BE090E061E070E0CC +:101DB000FC01EE54FD4F2081E22FEF70F0E042A1D4 +:101DC00022952F70DB0102C0AA0FBB1F2A95E2F7F4 +:101DD0009D01242B22A3019758F7DF91CF911F91EA +:101DE0000F910C94ED08EF92FF920F931F93CF93F6 +:101DF000DF9300E913E0C3E0EE24E394F12CD5E097 +:101E00008C2F0E945C0E8BE090E040E050E0FC01E3 +:101E1000EE54FD4F6081E62FEF70F0E020A130E03E +:101E200062956F7002C0359527956A95E2F720FD9F +:101E300009C09701082E02C0220F331F0A94E2F74F +:101E4000422B532B019718F7F801929182918F0141 +:101E50008417950721F051834083D09375028C2F0E +:101E60000E945C0EC15060F68091750287FD2CC007 +:101E70008150809375028F3F39F08FE99FE0019781 +:101E8000F1F700C0000020C080918E0390918F0375 +:101E9000909397038093960380918C0390918D0388 +:101EA000909395038093940380918A0390918B0380 +:101EB0009093930380939203809188039091890378 +:101EC00090939103809390030E94EF0881E0DF914B +:101ED000CF911F910F91FF90EF900895E82FF0E0C0 +:101EE000EE0FFF1FE057FC4F808191810895089508 +:101EF0000F931F93CF9308E913E0C0E0F80192918C +:101F000082918F010E946D28C80FF3E000391F07EE +:101F1000A9F78C2FCF911F910F9108950E94B3299B +:101F2000811102C00E948F290E94DD2980937904CB +:101F30003E9A809171008D7F8093710082E0809342 +:101F400090008AE18093910081E080939A03089544 +:101F500080919A03811102C00E948E0F1092EA03B1 +:101F60001092E903809171008D7F809371008091C0 +:101F700090008F73809390001092AC031092AB038B +:101F80001092E3031092E4031092E5031092E6032B +:101F90001092E2031092E103E1ECF3E0A1EBB3E075 +:101FA00011921192119211921D921D9283E0E13EC5 +:101FB000F807B1F70895CF92DF92EF92FF920F9357 +:101FC0001F93CF93DF932091AB03222309F484C0A6 +:101FD0006B017C0180919A03811102C00E948E0FD7 +:101FE00001EE13E0C7E0D0E0A7019601F80192915D +:101FF0008291729162918F010E94322F811131C0C2 +:10200000FE01EE0FFF1FEE0FFF1FEF53FC4F10827C +:10201000118212821382DE01AA0FBB1FAF54BC4F84 +:1020200011961C921E92C730D105E9F02196448189 +:1020300055816681778140835183628373831482E3 +:1020400015821682178212968D919C911397119684 +:102050009C938E9313961C921E921297349612960E +:10206000E2CF219708F68091E9039091EA03019766 +:1020700097FD05C09093EA038093E90304C0109292 +:10208000EA031092E9038091E9039091EA03209119 +:10209000E7033091E8032817390724F01092E8038A +:1020A0001092E703892BC1F4809171008D7F80939A +:1020B0007100809190008F73809390001092E303E1 +:1020C0001092E4031092E5031092E6031092E203EB +:1020D0001092E1031092AB03DF91CF911F910F910A +:1020E000FF90EF90DF90CF9008951F920F920FB660 +:1020F0000F9211244F925F926F927F928F929F92D4 +:10210000AF92BF92CF92DF92EF92FF922F933F93C5 +:102110004F935F936F937F938F939F93AF93BF93EF +:10212000CF93DF93EF93FF938091AB03882309F460 +:102130009BC1C091E903D091EA031C161D060CF067 +:1021400093C140909B0350909C0360909D037090BE +:102150009E0320E030E0A901C301B2010E94DD30FE +:1021600018160CF065C0C130D10509F452C0809139 +:10217000E7039091E803BE010E94AF327C01909387 +:10218000E8038093E7038090AD039090AE03A090A6 +:10219000AF03B090B00320E030E040E85FE3C5015A +:1021A000B4010E94CE2E6093AD037093AE03809372 +:1021B000AF039093B003F701EE0FFF1FEE0FFF1F69 +:1021C000EF53FC4FA3019201608171818281938161 +:1021D0000E94362F20E030E040E05EE30E94E130D4 +:1021E0009B01AC01C501B4010E94DD3018168CF4CE +:1021F000C7010196BE010E94AF329093E80380931D +:10220000E7031092AD031092AE031092AF03109249 +:10221000B003E091E703F091E803EE0FFF1FEE0F2C +:10222000FF1FEF53FC4F6081718182819381D0C089 +:10223000C090E303D090E403E090E503F090E60360 +:1022400020E030E0A901C701B6010E94322F21979A +:10225000882309F4A2C0FE01EE0FFF1FEE0FFF1F3F +:10226000EF53FC4F80809180A280B380A501940140 +:10227000C701B6010E94322F87FF31C0A50194012A +:1022800060E070E08CED93EC0E94362F20E030E0AF +:1022900040E451E40E94362F20E030E040E05FE36C +:1022A0000E94E1309B01AC0160E070E080E090E4CE +:1022B0000E9444319B01AC01C501B4010E94E13090 +:1022C0009B01AC01C701B6010E94322F87FF07C0F6 +:1022D000A701960160E070E08CED93E439C0A501A0 +:1022E0009401C701B6010E94DD3018160CF055C0EC +:1022F000A501940160E070E08CED93E40E94362F1C +:1023000020E030E040E451E40E94362F20E030E04D +:1023100040E05FE30E94E1309B01AC0160E070E0CF +:1023200080E090E40E9444319B01AC01C501B401FE +:102330000E94E1309B01AC01C701B6010E94DD3073 +:1023400018165CF5A701960160E070E08CED93EC47 +:102350000E94362F20E030E040E451E40E94362F06 +:1023600020E030E040E05FE30E94E1309B01AC01FF +:1023700060E070E080E090E40E9444319B01AC0199 +:10238000C701B6010E94E1306093E3037093E40358 +:102390008093E5039093E60313C0FE01EE0FFF1F49 +:1023A000EE0FFF1FEF53FC4F80819181A281B3811B +:1023B0008093E3039093E403A093E503B093E603D3 +:1023C0006091E3037091E4038091E5039091E6034B +:1023D00020919803309199032F3F4FEF340731F04C +:1023E0002F5F3F4F30939903209398030E94B014BE +:1023F0006B017C0120E034E244EF51E40E94322F73 +:1024000087FF08C086EFC82E88E2D82E84EFE82E1A +:1024100081E4F82E20E030E040E051E4C701B6014D +:102420000E94E1309B01AC0160E074E284E79BE430 +:102430000E94362F6B017C010E94A32F709397009E +:102440006093960020917602309177024091780255 +:1024500050917902C701B6010E94E1300E94A32F7A +:1024600070939900609398008091AC03882309F4DD +:1024700033C1C090A703D090A803E090A903F090C7 +:10248000AA0320E030E0A901C701B6010E94DD30B7 +:102490001816D4F580919803909199038F3F2FEFF0 +:1024A000920729F001969093990380939803C701AE +:1024B000B6010E94B01420E030E040E051E40E94F8 +:1024C000E1309B01AC0160E074E284E79BE40E9490 +:1024D000362F6B017C010E94A32F709397006093AD +:1024E00096002091760230917702409178025091C7 +:1024F0007902C701B6010E94E1300E94A32F7093B8 +:1025000099006093980008C010929700109296006E +:1025100010929900109298006091A1037091A2030B +:102520006F5F7F4F7093A2036093A1032091960089 +:102530003091970080E090E0232BF1F0C09196005D +:10254000D09197000E94CF2F6B017C01BE0180E0EB +:1025500090E00E94CF2F9B01AC016091A30370918A +:10256000A4038091A5039091A6030E94362F20E03A +:102570003FEF4FE757E410C00E94CF2F6B017C0163 +:1025800020E030EE4FEF54E46091A3037091A40378 +:102590008091A5039091A6030E94E1309B01AC01BC +:1025A000C701B6010E94DD3087FD96C080919F0370 +:1025B0008F5F80939F0390E02091750430917604A3 +:1025C00082179307A0F080918004882319F010925D +:1025D0009F030DC0809171008D7F80937100809169 +:1025E00090008F73809390001092AC037DC0809117 +:1025F000A003C0919F03811128C0C0907A04D0909D +:102600007B04E0907C04F0907D0420E030E0A901A0 +:10261000C701B6010E94DD301816BCF481E080933A +:10262000A0031092A7031092A8031092A90310927E +:10263000AA03C092A303D092A403E092A503F09250 +:10264000A603C150C0939F0343C01092A0031092F1 +:10265000990310929803E0917704F091780448E090 +:10266000C49FE00DF11D112480819181A281B3816D +:102670008093A7039093A803A093A903B093AA0300 +:1026800020E030E040E85EE36481758186819781D7 +:102690000E94E1306B017C0180917A02682F70E02A +:1026A00080E090E00E94CF2F20E030E048EC52E440 +:1026B0000E94362F9B01AC01C701B6010E94E13098 +:1026C0006093A3037093A4038093A5039093A60340 +:1026D0001092A2031092A1038091790480FD04C09E +:1026E0001092AC031092AB03FF91EF91DF91CF9169 +:1026F000BF91AF919F918F917F916F915F914F911A +:102700003F912F91FF90EF90DF90CF90BF90AF90CF +:102710009F908F907F906F905F904F900F900FBE23 +:102720000F901F901895CF92DF92EF92FF92CF9368 +:10273000DF936B017C01EA0180919A03811102C051 +:102740000E948E0F8091790480FF46C08091E9033A +:102750009091EA0308970CF03FC0809171008D7F43 +:10276000809371008091AC0381110E94A80F81E0D9 +:102770008093AB03109299031092980320E030E00D +:10278000A901C701B6010E94DD301816DCF4809162 +:10279000E9039091EA03FC01EE0FFF1FEE0FFF1F0C +:1027A000EF53FC4FC082D182E282F382FC01EE0F34 +:1027B000FF1FEF54FC4FD183C08301969093EA032F +:1027C0008093E90380917100826080937100809111 +:1027D0009000806880939000DF91CF91FF90EF9000 +:1027E000DF90CF9008958F929F92AF92BF92CF9239 +:1027F000DF92EF92FF920F931F93CF93DF93EC0141 +:102800007B01D42E4801590180919A03811102C0A5 +:102810000E948E0F8091790480FF6BC080917100BF +:102820008D7F809371008091AB0381110E94A80F6E +:1028300081E08093AC03D0937804C0937704F09246 +:102840007604E0927504D092800480927A0490928B +:102850007B04A0927C04B0927D041092AD03109290 +:10286000AE031092AF031092B00310929F038881C1 +:102870009981AA81BB818093A7039093A803A09319 +:10288000A903B093AA0320E030E040E85EE36C8146 +:102890007D818E819F810E94E1306B017C0180915E +:1028A0007A02682F70E080E090E00E94CF2F20E055 +:1028B00030E048EC52E40E94362F9B01AC01C70186 +:1028C000B6010E94E1306093A3037093A403809348 +:1028D000A5039093A6031092A2031092A1038091E6 +:1028E0007100826080937100809190008068809375 +:1028F0009000DF91CF911F910F91FF90EF90DF90AB +:10290000CF90BF90AF909F908F9008958091790461 +:1029100081700895809179048160809379040E9488 +:10292000E1290C944709809179048E7F8093790482 +:102930000C94E1298091EB0390E0019666E070E051 +:102940000E94AF328093EB0308958091EB0390E0F7 +:10295000019766E070E00E94AF328093EB03089528 +:102960008F929F92AF92BF92CF92DF92EF92FF929F +:102970000F931F93CF93DF936B017C01C09198035A +:10298000D0919903BE0180E090E00E94CF2F4B01CF +:102990005C01A701960160E070E08CE594E40E9480 +:1029A000362F9B01AC01C501B4010E94E1300E94A9 +:1029B000A32F2091EB03233009F473C028F42223C2 +:1029C00051F02130E9F02CC1243009F4A0C02530A9 +:1029D00009F4E0C025C180E090E0A0E0BFE380936F +:1029E000760290937702A0937802B09379021092C6 +:1029F0009B0310929C0310929D0310929E0310C1A2 +:102A000010929B0310929C0310929D0310929E03C0 +:102A10006431710540F46A30710560F520E030E002 +:102A200040E85EE32BC0693C710508F0AAC080E075 +:102A300090E00E94CF2F20E030E040EA51E40E9475 +:102A4000CD2E20E030E044E353E40E94362F9B017A +:102A5000AC010E94E13020E030E040E05EE30E9403 +:102A6000E1309B01AC0160E070E080E09EE30E94F9 +:102A7000CD2E44C020E030E040E05FE3C701B60166 +:102A80000E94E1306B017C0180E090E0A0E0BEE3B9 +:102A90008093760290937702A0937802B0937902A4 +:102AA000BFC010929B0310929C0310929D03109242 +:102AB0009E034AE0469F9001479F300D1124C901B3 +:102AC00068EB7BE00E949B32BC016C5D754077FF38 +:102AD00003C0719561957109882777FD8095982FBE +:102AE0000E94D12F2EE333EC4EE259E30E94E130F5 +:102AF00020E030E040EC5EE30E94CE2E6093760250 +:102B000070937702809378029093790289C0109233 +:102B10009B0310929C0310929D0310929E03CE0182 +:102B200083709927892BE1F0BE016170772780E0DF +:102B300090E00E94CF2F20E030E040E05EE30E9472 +:102B4000E13020E030E040E45FE30E94CE2E60936D +:102B500076027093770280937802909379020CC08A +:102B600080E090E0A0E0BFE380937602909377024C +:102B7000A0937802B0937902C770DD27CD2B09F0BE +:102B80004FC0109276021092770210927802109243 +:102B9000790246C010929B0310929C0310929D03F1 +:102BA00010929E0300E010E020E03FE300937602E5 +:102BB0001093770220937802309379026739710578 +:102BC00078F180E090E00E94CF2F20E030E047E1F4 +:102BD00053E40E94CD2E20E030E04AE754E40E9406 +:102BE000362F20E030E048E452E40E94E13020E05B +:102BF00030E040EA51E40E9413300E949E2F660F9D +:102C0000771F660F771FFB01EE53FD4F2081318147 +:102C100042815381C701B6010E94E1306B017C0102 +:102C2000C701B601DF91CF911F910F91FF90EF90F7 +:102C3000DF90CF90BF90AF909F908F90089580913C +:102C4000FC030895CF93DF9300D01F92CDB7DEB77A +:102C50009C0180918504843019F593E099833B832E +:102C60002A839093E9008FEF9091E800815095FDC1 +:102C700006C095ED9A95F1F700008111F5CF80918E +:102C8000E80085FF0DC040E050E063E070E0CE0159 +:102C900001960E947F188091E8008E778093E8006B +:102CA0000F900F900F90DF91CF910895CF93DF9306 +:102CB00000D01F92CDB7DEB720918504243021F5D6 +:102CC00022E029839B838A8383E08093E9008FEF4E +:102CD0009091E800815095FD06C095ED9A95F1F729 +:102CE00000008111F5CF8091E80085FF0DC040E024 +:102CF00050E063E070E0CE0101960E947F18809161 +:102D0000E8008E778093E8000F900F900F90DF918E +:102D1000CF910895209185042430F1F422E020938E +:102D2000E9002FEF3091E800215035FD06C035ED68 +:102D30003A95F1F700002111F5CF2091E80025FF29 +:102D40000BC040E050E065E070E00E947F18809189 +:102D5000E8008E778093E8000895CF93DF93EC012D +:102D600090918504943009F046C0809185028823B3 +:102D7000D9F0809186028823B9F09093E9008FEF13 +:102D80009091E800815095FD06C095E19A95F1F784 +:102D900000008111F5CF8091E80085FF2CC040E054 +:102DA00050E060E170E017C081E08093E9008FEFB0 +:102DB0009091E800815095FD06C095ED9A95F1F748 +:102DC00000008111F5CF8091E80085FF14C040E03C +:102DD00050E068E070E0CE010E947F188091E8002A +:102DE0008E778093E80080E1FE01ACEEB3E00190C5 +:102DF0000D928A95E1F7DF91CF9108958091840437 +:102E0000811109C00E94141A0E94711A8091E20077 +:102E100084608093E20008951092840408950895D8 +:102E200008950C94B72842E061EC81E00E948E196D +:102E300042E061EC82E00E948E1942E061EC83E0A6 +:102E40000E948E1942E161EC84E00C948E1980910D +:102E50008704833009F455C030F4813071F082303A +:102E600009F48EC008958A3009F47AC08B3009F4D1 +:102E700060C0893009F09CC020C080918604813AEE +:102E800009F096C08091E800877F8093E8008091E8 +:102E90008A0490918B04892B21F460E18CEE93E0FD +:102EA00003C060E080E090E070E00E94CA1880916A +:102EB000E8008B778093E800089580918604813242 +:102EC00009F076C080918A0490918B04009719F0E4 +:102ED000039709F06DC08091E800877F8093E80038 +:102EE0008091E80082FD05C0809185048111F8CFB2 +:102EF0005FC08091F1008093FC038091E8008B77A4 +:102F000053C080918604813A09F052C080918A04AE +:102F100090918B04892B09F04BC08091E800877F4A +:102F20008093E8008091E80080FFFCCF80918502CB +:102F300036C0809186048132D9F580918A049091BF +:102F40008B04892BA9F58091E800877F8093E800A6 +:102F50000E94C31980918804809385020C94F92102 +:102F600080918604813221F58091E800877F8093EB +:102F7000E8000E94C319809189048093FD0308959D +:102F800080918604813AA1F48091E800877F809344 +:102F9000E8008091E80080FFFCCF8091FD038093E2 +:102FA000F1008091E8008E778093E8000C94C319BB +:102FB000089584B7877F84BF88E10FB6F894809323 +:102FC0006000109260000FBE80E880936100109254 +:102FD00061000E94661D0E94141A0E94711A80915D +:102FE000E20084608093E20078940E94F71C0E94C3 +:102FF000681D8BE792E00E94121D80918504853048 +:1030000069F40E947928809183048823B1F30E9497 +:10301000A628882391F30E946918EFCF0E94701DA3 +:10302000ECCF292F332723303105C9F064F4213048 +:10303000310581F02230310509F043C08DE690E082 +:1030400029EF39E042C021323105F1F02232310559 +:1030500041F137C082E190E026E63AE036C0992798 +:103060008130910541F08230910541F0892B49F57D +:10307000E5EFF9E005C0E7ECF9E002C0EDE9F9E0C1 +:10308000849190E09F0121C06430D8F4E62FF0E0F5 +:10309000EE0FFF1FE25EFC4F2081318189E090E05E +:1030A00014C0643070F470E0FB01EE0FFF1FEA5EA5 +:1030B000FC4F20813181FB01EE5EFC4F808190E06E +:1030C00004C080E090E020E030E0FA01318320830A +:1030D000089580E189BD82E189BD09B400FEFDCF7C +:1030E0008091D8008F7D8093D8008091E00082602D +:1030F0008093E0008091E00081FDFCCF0895CF92A5 +:10310000DF92EF92FF920F931F93CF93DF93EC0127 +:103110008B016A010E94E219811133C0C114D104EC +:1031200039F0F60180819181081B190BC80FD91F56 +:10313000E12CF12C0115110519F18091E80085FDB4 +:1031400016C08091E8008E778093E800C114D10406 +:1031500049F0F60180819181E80EF91EF182E0824A +:1031600085E00FC00E94E219882321F30AC08991EB +:103170008093F10001501109FFEFEF1AFF0ADACF37 +:1031800080E0DF91CF911F910F91FF90EF90DF9042 +:10319000CF90089520918C0430918D042617370725 +:1031A00048F06115710539F42091E8002E772093DD +:1031B000E80001C0B90140E061157105A9F1209155 +:1031C0008504222309F443C0253009F442C020912C +:1031D000E80023FD40C02091E80022FD32C020918C +:1031E000E80020FFE9CF4091F3002091F20030E0A9 +:1031F000342BFC01CF016115710559F028303105E0 +:1032000040F481918093F100615071092F5F3F4F2D +:10321000F1CF41E02830310509F040E02091E8008D +:103220002E772093E800C8CF4111C9CF0AC0809102 +:103230008504882361F0853061F08091E80083FD8A +:103240000AC08091E80082FFF2CF80E0089582E01A +:10325000089583E0089581E0089520918C043091D1 +:103260008D042617370748F06115710539F4209150 +:10327000E8002E772093E80001C0B901FC0120E0AE +:103280006115710591F180918504882309F440C08E +:10329000853009F43FC08091E80083FD3DC08091F6 +:1032A000E80082FD2FC08091E80080FFE9CF2091E7 +:1032B000F3008091F20090E0922B6115710559F0B6 +:1032C0008830910540F424912093F10031966150AB +:1032D00071090196F2CF21E0089709F020E0809172 +:1032E000E8008E778093E800CBCF2111CCCF0AC0C5 +:1032F00080918504882361F0853061F08091E80039 +:1033000083FD0AC08091E80082FFF2CF80E008953B +:1033100082E0089583E0089581E00895982F973022 +:1033200058F59093E900981739F07091EC002091CE +:10333000ED005091F00003C0242F762F50E021FFC4 +:1033400019C03091EB003E7F3093EB003091ED00DF +:103350003D7F3093ED003091EB0031603093EB0016 +:103360007093EC002093ED005093F0002091EE005C +:1033700027FF07C09F5FD3CF8F708093E90081E064 +:10338000089580E008958091860487FF11C08091A0 +:10339000E80082FD05C0809185048111F8CF11C03D +:1033A0008091E8008B770BC080918504882349F0D9 +:1033B0008091E80080FFF8CF8091E8008E778093BD +:1033C000E80008952091E4003091E50095E64091F1 +:1033D000EC00842F817040FF22C08091E80080FDC6 +:1033E0001CC080918504882391F0853091F08091F4 +:1033F000EB0085FD10C04091E4005091E5004217BC +:10340000530729F39A01915011F784E0089582E05F +:10341000089583E0089581E0089580E00895409143 +:10342000E80042FFDECF08950E94821A0E948A1AA5 +:10343000E0EEF0E0808181608083E8EDF0E0808163 +:103440008F77808319BCA7EDB0E08C918E7F8C9331 +:1034500080818F7E80831092840408950F931F9340 +:10346000CF93DF930E94821A0E948A1AC8EDD0E09F +:1034700088818F77888388818068888388818F7D21 +:10348000888319BC109285041092810410928304E1 +:103490001092820400EE10E0F80180818B7F80831F +:1034A00088818160888342E060E080E00E948E191C +:1034B000E1EEF0E080818E7F8083E2EEF0E08081BB +:1034C00081608083808188608083F80180818E7F25 +:1034D0008083888180618883DF91CF911F910F91D4 +:1034E0000895E8EDF0E080818F7E8083E7EDF0E0E5 +:1034F00080818160808384E082BF81E08093840446 +:103500000C942E1AE8EDF0E080818E7F808310927B +:10351000E20008951092DA001092E10008951F92DF +:103520000F920FB60F9211242F933F934F935F93F7 +:103530006F937F938F939F93AF93BF93EF93FF937B +:103540008091E10082FF0BC08091E20082FF07C002 +:103550008091E1008B7F8093E1000E94F61C8091B6 +:10356000DA0080FF1FC08091D80080FF1BC08091CF +:10357000DA008E7F8093DA008091D90080FF0DC041 +:1035800080E189BD82E189BD09B400FEFDCF81E003 +:10359000809385040E94FE1605C019BC1092850414 +:1035A0000E940C178091E10080FF19C08091E20019 +:1035B00080FF15C08091E2008E7F8093E2008091B1 +:1035C000E20080618093E2008091D8008062809365 +:1035D000D80019BC85E0809385040E941017809163 +:1035E000E10084FF30C08091E20084FF2CC080E1C4 +:1035F00089BD82E189BD09B400FEFDCF8091D8006C +:103600008F7D8093D8008091E1008F7E8093E100D0 +:103610008091E2008F7E8093E2008091E2008160E1 +:103620008093E20080918104882311F084E007C038 +:103630008091E30087FD02C081E001C083E08093B8 +:1036400085040E9411178091E10083FF29C08091B9 +:10365000E20083FF25C08091E100877F8093E10035 +:1036600082E080938504109281048091E1008E7F36 +:103670008093E1008091E2008E7F8093E200809150 +:10368000E20080618093E20042E060E080E00E941E +:103690008E198091F00088608093F0000E940F17CF +:1036A000FF91EF91BF91AF919F918F917F916F911A +:1036B0005F914F913F912F910F900FBE0F901F90F0 +:1036C00018951F920F920FB60F9211242F933F93CC +:1036D0004F935F936F937F938F939F93AF93BF931A +:1036E000CF93DF93EF93FF93C091E900CF70809168 +:1036F000EC00D82FD17080FDD0E81092E9008091C5 +:10370000F000877F8093F00078940E94A51B1092B0 +:10371000E9008091F00088608093F000CD2BCF709D +:10372000C093E900FF91EF91DF91CF91BF91AF91ED +:103730009F918F917F916F915F914F913F912F91C9 +:103740000F900FBE0F901F9018951F93CF93DF938C +:10375000CDB7DEB7AA970FB6F894DEBF0FBECDBFC8 +:10376000E6E8F4E088E08E0F9091F10091938E13DB +:10377000FBCF0E9427178091E80083FF1FC1809133 +:10378000860490918704492F50E04A30510508F093 +:1037900015C1FA01EC59FF4F0C94C332803881F007 +:1037A000823809F00BC180918A048F708093E90000 +:1037B0008091EB0085FB882780F91092E90006C014 +:1037C0008091820490918304911182609091E8002D +:1037D000977F9093E8008093F1001092F100C8C0A9 +:1037E000282F2D7F09F0EAC0882319F0823061F07C +:1037F000E5C080918804813009F0E0C0933009F081 +:1038000080E0809383042BC080918804811127C0BD +:1038100080918A048F7009F4D1C08093E9002091CF +:10382000EB0020FF1CC0933021F48091EB008062FC +:1038300014C09091EB0090619093EB0021E030E098 +:10384000A90102C0440F551F8A95E2F74093EA0090 +:103850001092EA008091EB0088608093EB00109258 +:10386000E9008091E800877F86C08111A7C0109190 +:1038700088041F778091E3008078812B8093E30098 +:103880008091E800877F8093E8000E94C3198091AF +:10389000E80080FFFCCF8091E30080688093E30024 +:1038A000111102C082E001C083E08093850486C0CC +:1038B0008058823008F082C08091880490918904F9 +:1038C0008C3D53E0950779F583E08A838AE289830A +:1038D0004FB7F894DE01139620E03EE051E2E32F6B +:1038E000F0E050935700E49120FF03C0E295EF70A1 +:1038F0003F5FEF708E2F90E0EA3010F0C79601C066 +:10390000C0968D939D932F5F243149F74FBF8091CF +:10391000E800877F8093E8006AE270E0CE010196BC +:103920000E94CA1814C0AE014F5F5F4F60918A04B5 +:103930000E941118BC01009709F440C09091E80062 +:10394000977F9093E80089819A810E942D19809138 +:10395000E8008B778093E80031C0803879F580915A +:10396000E800877F8093E800809181048093F100D4 +:103970008091E8008E778093E8000E94C3191EC0F2 +:1039800081111CC0909188049230C0F48091E800AD +:10399000877F8093E800909381040E94C3198091EF +:1039A0008104811106C08091E30087FD02C081E09F +:1039B00001C084E0809385040E9413178091E80081 +:1039C00083FF0AC08091E800877F8093E8008091A0 +:1039D000EB0080628093EB00AA960FB6F894DEBFEE +:1039E0000FBECDBFDF91CF911F9108950895CF9362 +:1039F000809185048823A1F0C091E900CF70909157 +:103A0000EC00892F817090FD80E8C82B1092E900AE +:103A10008091E80083FD0E94A51BCF70C093E90050 +:103A2000CF91089590930304809302040895E09148 +:103A30000204F0910304309721F00190F081E02D11 +:103A4000099480E00895E0910204F0910304309716 +:103A500021F00280F381E02D09940895E0910204A1 +:103A6000F0910304309721F00480F581E02D099452 +:103A7000089520910004309101048217930771F09A +:103A80009093010480930004E0910204F0910304F8 +:103A9000309721F00680F781E02D09940895209158 +:103AA000FE033091FF038217930771F09093FF0399 +:103AB0008093FE03E0910204F0910304309721F01B +:103AC0000084F185E02D0994089508950C94651DF6 +:103AD0000E94EB280E94AE0E0E9471290C94322E97 +:103AE0005F926F927F928F929F92AF92BF92CF928E +:103AF000DF92EF92FF920F931F93CF93DF9300D04B +:103B000000D01F92CDB7DEB70E94F30E9DE0C92E04 +:103B100094E0D92E03E010E0AA24A394B12C502EF7 +:103B2000802F0E946E0F4C01F601729062906F011F +:103B30006826792661147104A1F40150110978F7FF +:103B40008FEF89838A831B820E94F4288160782FFB +:103B50009D838C8349815A816B818D810E94201EB7 +:103B600038C08091620481FD0E94770F2BE030E025 +:103B70007501022E02C0EE0CFF1C0A94E2F7C70189 +:103B800086219721892B09F129835A828E209F2033 +:103B900091E0892809F490E09B830E94F4288160D9 +:103BA000782F9D838C8349815A816B818D810E94FE +:103BB000201E000F111FF801EB5FFB4F80819181E8 +:103BC000E826F926F182E08204C02150310980F60E +:103BD000B4CF0E94602B109104040E94171D181787 +:103BE000D1F00E94171D809304040F900F900F9046 +:103BF0000F900F90DF91CF911F910F91FF90EF9059 +:103C0000DF90CF90BF90AF909F908F907F906F90FC +:103C10005F900C945A0E0F900F900F900F900F9092 +:103C2000DF91CF911F910F91FF90EF90DF90CF9098 +:103C3000BF90AF909F908F907F906F905F9008950E +:103C4000CF93DF93CDB7DEB72B970FB6F894DEBFD7 +:103C50000FBECDBF4F83588769877A878B87DE0178 +:103C6000119686E0FD0111928A95E9F785E0FE0143 +:103C7000379601900D928A95E1F749815A816B81BF +:103C80007C818D819E810E9497242B960FB6F8949B +:103C9000DEBF0FBECDBFDF91CF910895CF938823B4 +:103CA00009F4C2C0C82F823859F40E94171D81FD43 +:103CB000BBC089E30E9471270E943E2889E30CC0A3 +:103CC000833879F40E94171D80FDAEC083E50E9401 +:103CD00071270E943E2883E50E94B327CF910C9460 +:103CE0003E28843859F40E94171D82FD9DC087E448 +:103CF0000E9471270E943E2887E4EECF8CEF8C0F44 +:103D0000813A48F48C2F0E949B2D81118DC08C2FFD +:103D10000E947127E3CF80E28C0F883048F4C7708F +:103D200081E001C0880FCA95EAF70E94F727D6CF35 +:103D30008BE58C0F833078F4C53A29F0C63A31F020 +:103D400083E890E005C081E890E002C082E890E05E +:103D5000CF910C94391D88E58C0F833108F064C035 +:103D6000C83A39F1C93A41F1CA3A49F1CB3A51F16D +:103D7000CC3A59F1CD3A61F1C03B69F1CE3A71F1DB +:103D8000CF3A79F1C13B81F1C23B89F1C33B91F15B +:103D9000C43B99F1C53BA1F1C63BA9F1C73BB1F1C9 +:103DA000C83BB9F1C93BC1F1CA3BC9F180E090E021 +:103DB00038C082EE90E035C089EE90E032C08AEEE5 +:103DC00090E02FC085EB90E02CC086EB90E029C0FE +:103DD00087EB90E026C08CEC90E023C08DEC90E067 +:103DE00020C083E891E01DC08AE891E01AC082E912 +:103DF00091E017C084E991E014C081E292E011C023 +:103E000083E292E00EC084E292E00BC085E292E091 +:103E100008C086E292E005C087E292E002C08AE232 +:103E200092E0CF910C944F1DCF910895882309F40F +:103E30004BC0823859F40E94171D81FF45C089E3A9 +:103E40000E9471270E943E2889E30CC0833871F4D8 +:103E50000E94171D80FF38C083E50E9471270E94D1 +:103E60003E2883E50E94B3270C943E28843859F4F9 +:103E70000E94171D82FF28C087E40E9471270E94BC +:103E80003E2887E4EFCF9CEF980F913A58F390E2E9 +:103E9000980F983050F4877091E001C0990F8A957F +:103EA000EAF7892F0E94FD27DFCF9BE5980F93301B +:103EB00020F480E090E00C94391D885A833120F47E +:103EC00080E090E00C944F1D0895882321F00E941B +:103ED000F7270C943E280895882321F00E94FD279F +:103EE0000C943E2808957F928F929F92AF92BF923A +:103EF000CF92DF92EF92FF920F931F93CF93DF93B6 +:103F00001F92CDB7DEB77C01C62E772EFC0105814E +:103F100002950F70128111110E9414280E946A27C5 +:103F2000882379F0112369F080E28C0D883048F005 +:103F300082E00E9453270E946A2791E0D82ED9265A +:103F400001C0D12CE72DE295EF70F0E0E259FF4F70 +:103F50000C94C332872D807F072D0F70882311F0BA +:103F60000295007F112389F0002309F499C180E2B2 +:103F70008C0D883020F4802F0E94F72703C0802FFB +:103F80000E9407280E943E288BC18C2D0E94161F7C +:103F9000002309F4C3C180E28C0D883020F4802F07 +:103FA0000E94FD2703C0802F0E940D280E943E28FA +:103FB000B5C1872D807F972D9F70803211F4892F96 +:103FC00003C0892F8295807FCC2021F0F1E0CF16AD +:103FD000A1F01DC0112339F0002319F1013009F5BA +:103FE0000E9427289BC1002319F0013009F496C1D3 +:103FF00089830E942A28898110C1112321F006306B +:1040000008F08CC10EC0053008F088C106C111232C +:1040100059F0002331F0F701958190FF41C19F7065 +:1040200095830E94651F7AC1002309F4F6C03EC142 +:10403000872D86958695837090E0009719F00197FB +:1040400061F06CC1112321F08C2D972D937002C06B +:1040500080E090E00E94391D61C1112321F08C2D78 +:10406000972D937002C080E090E00E944F1D56C1D2 +:104070008C2D112319F00E94682A02C00E94D02AB8 +:104080000E94552B4BC1872D837009F052C011112E +:1040900045C18C2D829586958770880F880F9C2D41 +:1040A0009F70892E912CA12CB12C082E04C0880C55 +:1040B000991CAA1CBB1C0A94D2F7C4FE14C00FE0C2 +:1040C00010E020E030E0B901A80104C0440F551F02 +:1040D000661F771F8A95D2F7CB01BA01609570955C +:1040E0008095909503C060E070E0CB01272D269568 +:1040F0002695237030E02230310569F023303105F8 +:1041000089F0682979298A299B292130310571F0A4 +:104110000E94DF2503C1682979298A299B290E94E9 +:10412000FB25FCC00E94DF25C501B4010E94C32508 +:10413000F5C0112319F0872D817001C08695882361 +:1041400009F4ECC08C2D829586958770880F880FB6 +:104150009C2D9F70892E912CA12CB12C082E04C06F +:10416000880C991CAA1CBB1C0A94D2F7C4FE14C06C +:104170000FE010E020E030E0B901A80104C0440FD6 +:10418000551F661F771F8A95D2F7CB01BA0160953C +:1041900070958095909503C060E070E0CB01272D6D +:1041A000269526952370422F50E04230510569F044 +:1041B0004330510589F0682979298A299B294130A2 +:1041C000510571F00E94B926A9C0682979298A2968 +:1041D0009B290E94D526A2C00E94B926C501B40120 +:1041E0000E949D269BC08C2D90E0FC01E05EF109B1 +:1041F000E531F10508F050C0E258FF4F0C94C3328E +:104200000C2D0F70872D8F71112321F00E943626FF +:10421000802F07CF0E945726802F0E946C1F7EC0E0 +:10422000112341F0053008F079C0872D8F710E946D +:104230007C2674C0063008F071C0F7CF112339F026 +:10424000872D8F710E94362669C01123C9F3872DEF +:104250008F710E94572662C0112329F0872D8F711C +:104260000E9421265BC00E94172658C0112351F0DE +:10427000172D1F71812F0E94362663E0812F0E9427 +:104280004A274CC081E00E945327023008F446C000 +:1042900082E00E94532742C0112331F0002381F2B3 +:1042A0008C2D0E944E1E3AC0002389F28C2D0E9454 +:1042B000161F34C0472D4F706C2DC7010E940B078D +:1042C0000E943B252BC0111129C0472D4F7050E093 +:1042D00042305105B9F04CF44115510581F041309F +:1042E0005105E1F40E945A2E19C04330510569F07E +:1042F0004430510599F48C2D0E94AC2E0FC00E94C1 +:10430000432E0CC00E94762E09C00E94892E06C042 +:10431000472D4F706C2DC7010E94CA0DDD20F9F0AA +:104320000E94462780FD1BC0F70112820E94402791 +:104330000E943626C7010E94BE210E9440270F908E +:10434000DF91CF911F910F91FF90EF90DF90CF9071 +:10435000BF90AF909F908F907F900C9457260F90B6 +:10436000DF91CF911F910F91FF90EF90DF90CF9051 +:10437000BF90AF909F908F907F9008950F931F9361 +:10438000CF93DF93EC01888199812B813C81232B92 +:10439000B9F09F3F11F48F3F99F0CE010E94480978 +:1043A000882371F0688179818A810E943C278C0181 +:1043B0000E94F1260E94B825B801CE010E94731F09 +:1043C000DF91CF911F910F9108950E9414280E94B0 +:1043D00024280E94E9270E943E280E94062C0E9461 +:1043E000552B80E090E00E94391D80E090E00C9415 +:1043F0004F1D0E9404280C94E5210E943127292F8B +:1044000022952F7030E02C3031054CF42A303105E4 +:104410006CF42250310922303105A8F407C02C3049 +:10442000310569F02F30310551F00DC0803F69F042 +:1044300018F4803E40F409C0843F29F406C093FB81 +:10444000882780F9089580E0089581E00895CF934A +:10445000DF9300D000D01F92CDB7DEB70F900F9042 +:104460000F900F900F90DF91CF910895CF93DF932E +:1044700000D000D000D0CDB7DEB726960FB6F894A6 +:10448000DEBF0FBECDBFDF91CF9108951F93CF93B5 +:10449000DF93C0910D0416E080910E04C81799F0C7 +:1044A000D0E01C9FF0011D9FF00D1124E15FFB4F38 +:1044B0004081518162817381848195810E9436227D +:1044C0002196C770E9CFDF91CF911F910895409158 +:1044D0003F045091400460914104709142048091E6 +:1044E0004304909144040C943622809144048295B4 +:1044F0008F7009F054C080914104882309F44FC0A3 +:1045000080910D04A0910E0460913F0470914004CD +:104510004091420450914304B6E08A1709F43FC029 +:1045200090E041155105C1F17F3F11F46F3FA1F1BA +:10453000B89FF001B99FF00D1124E15FFB4F21817D +:1045400072132AC02081621327C02281211124C046 +:10455000238134812417350710F421503109241B9D +:10456000350B283C3105C0F4209144042F702061A4 +:104570002093440426E0289FF001299FF00D112488 +:10458000EC5EFB4F80818F70806180838FE394E0CD +:104590000E94BE210C94462201968770BECF0895DA +:1045A000CF92DF92EF92FF920F931F93CF93DF93FF +:1045B000CDB7DEB762970FB6F894DEBF0FBECDBFA2 +:1045C0008C0185E0F801DE011D9601900D928A951F +:1045D000E1F7D8014C9111965C91119712966C916C +:1045E00012971396CD90DC90149730913F04709100 +:1045F00040048091420490914304009709F46BC1F8 +:104600007F3F19F43F3F09F466C1E0904104EE207A +:1046100009F4C0C020914404C816D90628F0F60158 +:10462000E81BF90BCF0104C0809590958C0D9D1D62 +:10463000FF24F394883C910578F0F12C207F09F059 +:10464000C6C07C2DD98AC88A89890E9427228FE317 +:1046500094E00E94BE21B1C0822F807F09F046C045 +:10466000751314C0341312C0611110C02F70206173 +:10467000209344040E9467228FE394E00E94BE21AD +:1046800080914404D80115968C932EC0CD2819F141 +:104690005F3F11F44F3FF9F0F62E61111CC080917D +:1046A0000D0420910E0436E0821709F45AC090E000 +:1046B000389FF001399FF00D1124E15FFB4F7181AC +:1046C000571306C07081471303C07281711103C074 +:1046D00001968770E9CFF62E662309F418C1809100 +:1046E0004404816080934404F12C11C1751308C007 +:1046F000341306C0611104C080914404D801C3C0C2 +:104700004D875E878D859E856A8B0E94FD216A8913 +:104710008823E1F16623D1F120914404822F829510 +:104720008F7090E0029774F080913F049091400464 +:1047300098878F831986DB86CA862C87CE010796D9 +:104740000E94BE2186E0F801AFE3B4E001900D9233 +:104750008A95E1F70E9475220E946722FF24F39454 +:10476000D6C04D875E878D859E850E943127292F73 +:1047700022952F7030E0223031050CF0BCC09F70C4 +:1047800009F0B6C0805E883008F4C1C0C8010E943C +:10479000BE21E4CFC816D90608F453C0F601E81BC1 +:1047A000F90BCF01883C910508F450C0F12C7C2D09 +:1047B000D98AC88A89890E942722EFE3F4E086E03B +:1047C000DF011D928A95E9F70E946722A0C0751348 +:1047D00014C0341312C0611110C080914404F80158 +:1047E0008583C8010E94BE2186E0EFE3F4E0DF018B +:1047F0001D928A95E9F7FE2C8AC04D875E878D85CC +:104800009E856A8B0E94FD216A89882309F4BECFA8 +:10481000662309F4BBCF20914404822F82958F70C8 +:1048200090E002970CF48ECF80913F049091400469 +:104830009A8389831B82DD82CC822E83CE010196EE +:104840007FCF809590958C0D9D1DACCFF62E662365 +:1048500009F49CCF75132EC034132CC0209144044E +:1048600020FD1FC0822F82958F70D9F0D801159638 +:104870002C9315978F3049F08F5F982F9295907FEA +:10488000822F8F70892B15968C93C8010E94BE21B0 +:1048900086E0F801AFE3B4E001900D928A95E1F76C +:1048A00093CF86E0F801AFE3B4E001900D928A95D2 +:1048B000E1F72DC04D875E878D859E850E94FD2185 +:1048C000811140CF80914404816080934404C801E9 +:1048D0000E94BE211CC0662309F458CF4D875E8715 +:1048E0008D859E850E94FD21882309F44FCF2ACF14 +:1048F000811148CF0CC0243031050CF047CF9F7098 +:1049000009F440CFF8019581907F09F03BCF8F2DBE +:1049100062960FB6F894DEBF0FBECDBFDF91CF9188 +:104920001F910F91FF90EF90DF90CF9008951F930C +:10493000CF93DF93CDB7DEB72C970FB6F894DEBFD9 +:104940000FBECDBF4F83588769877A878B879C8737 +:10495000CE0107960E94D022882369F08F81988526 +:104960002A853B85232BF1F19F3F09F063C08F3FE0 +:1049700009F060C037C086E0FE013796DE0111966F +:1049800001900D928A95E1F76F817885EA85FB8524 +:10499000309741F17F3F11F46F3F21F120910E04D8 +:1049A00030E0C90101968770992740910D0450E0CD +:1049B0008417950709F447C069837A83FD83EC83E4 +:1049C00096E0929FD001939FB00D1124A15FBB4F41 +:1049D000FE01319601900D929A95E1F780930E04B5 +:1049E0000E94462216E080910D0490910E048917D2 +:1049F000C1F1189FC0011124815F9B4F0E94D022FA +:104A0000882379F1E0910D041E9FF0011124E15FEC +:104A1000FB4F4081518162817381848195810E9425 +:104A2000362280910D0490E001968770992780933B +:104A30000D04D9CF4F81588569857A858B859C85F2 +:104A40000E943622CFCF0E94F92110920E041092BC +:104A50000D04EFE3F4E086E0DF011D928A95E9F7AB +:104A6000C1CF2C960FB6F894DEBF0FBECDBFDF913D +:104A7000CF911F910895EF92FF920F931F93CF93C1 +:104A8000DF938C01009709F46CC0F12CEE24E394C1 +:104A9000E8012196F8018491843740F4843008F0CD +:104AA00051C0813081F0823019F15BC0853709F443 +:104AB00044C0A8F19CE7980F903708F052C08F7758 +:104AC0000E94161F41C00E5F1F4FFE01C49180E27D +:104AD0008C0F883048F4C7708E2D01C0880FCA959E +:104AE000EAF70E94172814C08C2F0E944E1E2DC07A +:104AF0000E5F1F4FFE01C49180E28C0F883058F486 +:104B0000C7708E2D01C0880FCA95EAF70E941D2834 +:104B10000E943E281AC08C2F0E94161F16C00E5FDE +:104B20001F4FFE01C491CC2381F08FE99FE00197D4 +:104B3000F1F700C00000C150F6CF0E5F1F4FFE011D +:104B4000F49003C00E944E1E8E018F2D882309F41D +:104B50009FCFEFE9FFE03197F1F700C000008150EF +:104B6000F5CFDF91CF911F910F91FF90EF900895B6 +:104B700008956093490470934A0480934B04909382 +:104B80004C040C94E5210F931F930091490410915C +:104B90004A0420914B0430914C04DC01CB01802B62 +:104BA000912BA22BB32B8093490490934A04A0939A +:104BB0004B04B0934C041F910F910C94E5210F937B +:104BC0001F930091490410914A0420914B043091A5 +:104BD0004C04DC01CB0180239123A223B3238093D7 +:104BE000490490934A04A0934B04B0934C041F9142 +:104BF0000F910C94E5210F931F930091490410919C +:104C00004A0420914B0430914C04DC01CB018027F5 +:104C10009127A227B3278093490490934A04A09335 +:104C20004B04B0934C041F910F910C94E52110920A +:104C300045041092460410924704109248040C94C4 +:104C4000E52141E050E060E070E004C0440F551FF2 +:104C5000661F771F8A95D2F7409345045093460408 +:104C600060934704709348040C94E52141E050E0C0 +:104C700060E070E004C0440F551F661F771F8A95DF +:104C8000D2F78091450490914604A0914704B091D9 +:104C90004804482B592B6A2B7B2B40934504509397 +:104CA000460460934704709348040C94E52141E066 +:104CB00050E060E070E004C0440F551F661F771F8E +:104CC0008A95D2F7409550956095709580914504EE +:104CD00090914604A0914704B09148044823592379 +:104CE0006A237B2340934504509346046093470412 +:104CF000709348040C94E52141E050E060E070E0DE +:104D000004C0440F551F661F771F8A95D2F7809104 +:104D1000450490914604A0914704B0914804482767 +:104D200059276A277B274093450450934604609394 +:104D30004704709348040C94E5210F931F9300914E +:104D40004504109146042091470430914804DC0149 +:104D5000CB01802B912BA22BB32B809345049093F6 +:104D60004604A0934704B09348041F910F910C94FC +:104D7000E5210F931F930091450410914604209163 +:104D8000470430914804DC01CB0180239123A22306 +:104D9000B3238093450490934604A0934704B093B3 +:104DA00048041F910F910C94E5210F931F930091DC +:104DB0004504109146042091470430914804DC01D9 +:104DC000CB0180279127A227B32780934504909396 +:104DD0004604A0934704B09348041F910F910C948C +:104DE000E5210895CF92DF92EF92FF920F931F93E8 +:104DF000CF93DF938C01C0904904D0904A04E09097 +:104E00004B04F0904C048091450490914604A0918D +:104E10004704B0914804C82AD92AEA2AFB2ACFE1DC +:104E2000D0E0D701C6010C2E04C0B695A795979582 +:104E300087950A94D2F780FF06C0B8018C2F0E9494 +:104E4000290C019721F4219760F780E001C08C2F95 +:104E5000DF91CF911F910F91FF90EF90DF90CF9056 +:104E60000895CF93DF93EC010E94F226BE010E94C9 +:104E7000290CDF91CF910895CB010E94312708952D +:104E800080914D04859585958595089580914D0473 +:104E90008770089598E0899F90011124262B209314 +:104EA0004D040C94362620914D04809582238093E6 +:104EB0004D04982F977069F430E0482F552747FD2F +:104EC00050952417350729F08595859585950C947F +:104ED0005726089590914D04977081E009F480E081 +:104EE000089590918502992321F090918602911165 +:104EF00009C02091870230918802F90132969FEF14 +:104F000040E01FC0982F9695969596959F3050F546 +:104F1000E0918702F0918802E90FF11D877021E08E +:104F200030E0A90102C0440F551F8A95E2F7CA017B +:104F30009181892B818308959F3F39F04F5F4E30D7 +:104F400041F051915813F8CF0DC05111F7CF942F64 +:104F5000F5CF9F3F39F0F901E90FF11D97FDFA9563 +:104F600082830895089590918502992321F090916C +:104F70008602911109C02091870230918802F901BF +:104F80003296205F3F4F1FC0982F96959695969525 +:104F90009F30F0F4E0918702F0918802E90FF11D53 +:104FA000877021E030E0A90102C0440F551F8A95A7 +:104FB000E2F7CA0180959181892381830895319612 +:104FC000E217F30729F090819813F9CF1082F7CFF9 +:104FD000089581E090E0E0918702F0918802E80F67 +:104FE000F91F1082019680319105A9F708959091DB +:104FF0006104892B809361040895809590916104E8 +:10500000892380936104089510926104089590911A +:105010006004892B809360040895809590916004CA +:1050200089238093600408951092600408959091FC +:105030005F04892B80935F040895809590915F04AD +:10504000892380935F04089510925F0408958093EC +:105050004E04089510924E04089580918702909115 +:105060008802FC0131969C01205F3F4F80E09191C6 +:1050700091118F5FE217F307D1F70895E09187024E +:10508000F0918802809161048083E0918702F09121 +:105090008802908180916004892B8083E09187024F +:1050A000F0918802908180915F04892B80838091A8 +:1050B0004E04882361F0E0918702F091880290818C +:1050C000892B80830E942D28811110924E0480919B +:1050D0008702909188020C94231D20E0009739F0FC +:1050E000AC0141505109842395232F5FF7CF822FC4 +:1050F000089580918504843039F11092630420E48E +:1051000088E190E00FB6F894A895809360000FBEF8 +:105110002093600080E00E94390680E00E945A0ED1 +:1051200083B7817F846083BF83B7816083BF7894B6 +:10513000889583B78E7F83BF88E10FB6F8948093FC +:105140006000109260000FBE0895089580E00E94F4 +:1051500039060E94700E0E94F30E0E94A5280E943C +:10516000780F91E0811101C090E0892F08950E948D +:10517000F92180E00E9439060E94322E0E94171DFC +:105180000C945A0E1F920F920FB60F9211248F9308 +:105190009F93AF93BF9380916304811113C080915B +:1051A000640490916504A0916604B09167044196EF +:1051B000A11DB11D8093640490936504A0936604BF +:1051C000B0936704BF91AF919F918F910F900FBEE5 +:1051D0000F901F90189582E084BD93E095BD9AEFE3 +:1051E00097BD80936E0008952FB7F8948091640462 +:1051F00090916504A0916604B09167042FBF089553 +:10520000CF92DF92EF92FF920F931F932FB7F894F4 +:105210004091640450916504609166047091670444 +:105220002FBF6A017B01EE24FF248C0120E030E0D7 +:10523000C016D106E206F30610F4415051099A0156 +:10524000281B390BC9011F910F91FF90EF90DF9040 +:10525000CF9008951F920F920FB60F9211248F9343 +:105260009F93AF93BF938091640490916504A09144 +:105270006604B09167040196A11DB11D809364047A +:1052800090936504A0936604B0936704BF91AF91B7 +:105290009F918F910F900FBE0F901F9018950E94B5 +:1052A000141AF8942FEF87EA91E62150804090403D +:1052B000E1F700C0000087E090EBDC0180938F04F1 +:1052C00090939004A0939104B09392049CE088E1A1 +:1052D0000FB6F894A895809360000FBE909360007D +:1052E000FFCF0E94B329811102C00E948F290E9422 +:1052F000BE29809362040E94CB2990E090937404AD +:105300008093730487FB882780F9809386020E942C +:10531000C229682F70E080E090E00C94B9256DEE12 +:105320007EEF80E090E00E94E93260E082E090E071 +:105330000E94D73260E083E090E00E94D73260E0C4 +:1053400084E090E00E94D73260E085E090E00E9427 +:10535000D73260E086E090E00E94D7326FEF87E0BE +:1053600090E00C94D73280E090E00E94D13221E0AE +:105370008D3E9E4F09F020E0822F089582E090E05C +:105380000C94C93283E090E00C94C932682F83E01A +:1053900090E00C94D73284E090E00C94C932682FEE +:1053A00084E090E00C94D73286E090E00C94C9320F +:1053B000682F86E090E00C94D73287E090E00C9460 +:1053C000C932682F87E090E00C94D73280916A044C +:1053D00080FF0BC060918C0285E0689FB0011124B2 +:1053E00075956795759567952BC081FF09C060918C +:1053F0008C0285E0689FB00111247595679520C0E7 +:1054000082FF07C060918C0285E0689FB001112483 +:1054100017C090916B049923D1F060918B0296177D +:1054200088F720918C0285E0289F90011124929F9B +:10543000A001939F500D112470E0CA010E94AF3269 +:105440006038710540F46115710539F002C065E0FE +:1054500070E0862F08958FE7089581E00895809188 +:105460006A0480FF08C060918A0270E075956795B4 +:105470007595679521C081FF06C060918A0270E032 +:105480007595679519C082FF04C060918A0270E02B +:1054900010C090916B049923C1F060918902961716 +:1054A000A0F780918A02899FC001112470E00E94B8 +:1054B000AF326038710528F46115710521F0862F2F +:1054C00008958FE7089581E0089561E070E0F4CFDA +:1054D000803F21F40E94E629819504C0813F29F490 +:1054E0000E94E62980936E040895823F21F40E9471 +:1054F000E629819504C0833F29F40E94E629809320 +:105500006D040895893F19F40E942F2A05C08A3F2F +:1055100031F40E942F2A819580936F0408958B3F68 +:1055200021F40E942F2A819504C08C3F29F40E9407 +:105530002F2A809370040895843F21F480916C0495 +:10554000816017C0853F21F480916C04826011C096 +:10555000863F21F480916C0484600BC0873F21F466 +:1055600080916C04886005C0883F31F480916C04A0 +:10557000806180936C0408958D3F21F480916A04CA +:1055800081600BC08E3F21F480916A04826005C067 +:105590008F3F29F480916A04846080936A0408959F +:1055A000803F39F480916E0487FF6CC010926E04C6 +:1055B00069C0813F29F480916E041816BCF362C063 +:1055C00090916D04823F29F497FF5CC010926D04A6 +:1055D00059C0833F19F41916CCF354C0893F41F4E4 +:1055E00080916F0418160CF04DC010926F044AC0E1 +:1055F0008A3F29F480916F0487FF44C0F6CF8B3F28 +:1056000039F48091700487FF3DC0109270043AC055 +:105610008C3F29F4809170041816BCF333C0843F8A +:1056200021F480916C048E7F17C0853F21F4809116 +:105630006C048D7F11C0863F21F480916C048B7FB8 +:105640000BC0873F21F480916C04877F05C0883FA1 +:1056500031F480916C048F7E80936C0413C08D3F75 +:1056600021F480916A048E7F0BC08E3F21F48091DB +:105670006A048D7F05C08F3F29F480916A048B7F77 +:1056800080936A0480916D0481110EC080916E0434 +:1056900081110AC080916F04811106C0809170044D +:1056A000811102C010926B0408958CE694E00E9470 +:1056B0002E1D0E94F4289093690480936804089535 +:1056C0001F93CF93DF9380916804909169040E94A7 +:1056D0000029AC0190916B04992321F020918D0257 +:1056E00030E006C020918E028AE0289F90011124AC +:1056F0004217530708F486C080916D04C0916E0470 +:10570000D0916F0410917004811107C0C11176C04F +:10571000D11174C0111172C075C09F3F19F09F5F05 +:1057200090936B04181624F40E94E62980936D046C +:1057300080916D0487FF05C00E94E62981958093C2 +:105740006D041C1624F40E94E62980936E04809157 +:105750006E0487FF05C00E94E629819580936E0440 +:1057600060916D04662339F1C0916E04CC2319F168 +:10577000772767FD7095872F972F0E94D12F23E3FE +:1057800033E343E35FE30E94E1300E949E2F609386 +:105790006D046C2F772767FD7095872F972F0E94D8 +:1057A000D12F23E333E343E35FE30E94E1300E9420 +:1057B0009E2F60936E041D1624F40E942F2A80935E +:1057C0006F0480916F0487FF05C00E942F2A819586 +:1057D00080936F04111624F40E942F2A8093700482 +:1057E0008091700487FF05C00E942F2A81958093C5 +:1057F0007004DF91CF911F910C94552B9F3F09F0BE +:105800008ECF96CFDF91CF911F910895ECE6F4E013 +:1058100085E0DF011D928A95E9F710926B041092E2 +:105820006A040895833081F128F4813059F0823080 +:10583000D1F00895853009F449C0B8F1863009F4F3 +:1058400056C0089580918E02262F30E0280F311D1A +:105850002F3F310524F4680F60938E0208958FEF77 +:1058600080938E02089580918D02262F30E0280FBC +:10587000311D2F3F310524F4680F60938D02089588 +:105880008FEF80938D02089580918C02262F30E057 +:10589000280F311D2F3F310524F4680F60938C02CF +:1058A00008958FEF80938C02089580918B02262FAC +:1058B00030E0280F311D2F3F310524F4680F60932D +:1058C0008B0208958FEF80938B02089580918A0256 +:1058D000262F30E0280F311D2F3F310524F4680FAB +:1058E00060938A0208958FEF80938A0208958091D1 +:1058F0008902262F30E0280F311D2F3F310524F477 +:10590000680F6093890208958FEF8093890208954C +:10591000833011F128F4813049F0823091F00895FC +:10592000853081F120F18630C1F1089580918E0299 +:10593000681720F4861B80938E02089510928E02C1 +:10594000089580918D02681720F4861B80938D0244 +:10595000089510928D02089580918C02681720F4AA +:10596000861B80938C02089510928C02089580917A +:105970008B02681720F4861B80938B020895109287 +:105980008B02089580918A02681720F4861B809309 +:105990008A02089510928A020895809189026817F8 +:1059A00020F4861B8093890208951092890208953D +:1059B0000F931F93873208F048C08E3108F08DC0D6 +:1059C000803109F477C008F5873009F461C068F4C4 +:1059D000863009F09DC080916204817F8E7F809324 +:1059E000620481E08093720494C08B3009F489C012 +:1059F0008E3009F08DC08091620482FB222720F94D +:105A000091E0922790FB82F95EC0863109F479C05B +:105A100060F4813109F07CC00E94F92190918602E6 +:105A200081E08927809386026CC0893109F469C0BE +:105A30008B3109F06DC08091620481FB222720F92F +:105A400091E0922790FB81F93EC0883309F459C058 +:105A500050F4893209F457C0853309F454C08732B1 +:105A600009F451C055C0833409F44DC028F48A3379 +:105A700008F44EC0895332C0883409F049C00E94EE +:105A8000F9210E94A80F0E94DC070E944F2939C00B +:105A900090916204892F8095817080FB90F929F0A4 +:105AA000966098609093620434C0997F977F90933A +:105AB000620427C08091620483FB222720F991E0D1 +:105AC000922790FB83F9809362049923D1F080910F +:105AD000620481608093620414C08D5141E050E003 +:105AE00060E070E08A019B0104C0000F111F221FBB +:105AF000331F8A95D2F7C901B8010E94B9250E94C7 +:105B0000F92181E006C061E070E080E090E0F5CF2F +:105B100080E01F910F91089580E0089580E008953E +:105B20008E518A3030F4E82FF0E0EA5DFC4F80813E +:105B3000089580E00895CF93C82F8091720481303A +:105B400069F018F08230C9F183C0E0918702F091CA +:105B500088028081823209F07DC007C0E09187020F +:105B6000F09188028081823261F48C2F0E948C2D0A +:105B7000811104C08C2F0E94D82C1DC081E090E0C0 +:105B80001AC08C2F0E948E2D811114C0C43179F05F +:105B900048F4CB3079F0C03109F060C082E08093E6 +:105BA000720408C0C93219F0C83321F057C01092EE +:105BB000720454C081E0817053C0C93289F118F574 +:105BC000C43171F1B0F4C73009F046C08EE1809362 +:105BD0008E0282E380938D028AE080938C0284E1BE +:105BE00080938B0288E080938A0288E28093890206 +:105BF00033C082EE8C0F863078F58C2F0E94902D6A +:105C00008093710429C0CE34E9F020F4CB3421F51F +:105C10006AE013C0C13579F0C235F1F461E00DC01E +:105C200080917104882319F01092710415C081E0ED +:105C30008093720415C061E006C0809171040E94D7 +:105C4000122C0AC06AE0809171040E94882C04C062 +:105C50001092720480E004C081E002C080E0ABCF0B +:105C6000CF9108950E94B329811102C00E948F290B +:105C70000E94D42980938E0480FF02C0869501C0C3 +:105C800080E00C94390680918E04982F9695292FE8 +:105C900030E0233031054CF49F5F990F8170892BE0 +:105CA000816080938E040E94D82980918E0486950D +:105CB0000C94390680918E04982F969591F0915806 +:105CC000990F8170892B80938E048E7F91E009F467 +:105CD00090E080918E0490FB80F980938E040E9466 +:105CE000D82980918E0486950C94390680918E0473 +:105CF000982F909590FB80F980938E040E94D8296C +:105D000080918E0480FF02C0869501C080E00C94D3 +:105D1000390690918E04892F86958F5F8F779170C9 +:105D2000843028F4880F892B80938E0402C09093CE +:105D30008E0480918E048E7F91E009F490E0809132 +:105D40008E0490FB80F980938E040E94D829809164 +:105D50008E0486950C94390620918E04922F969588 +:105D60008927982F990F822F8170892B80938E0419 +:105D70008E7F91E009F490E080918E0490FB80F991 +:105D800080938E040E94D82980918E0486950C946D +:105D9000390680918E04869508955058BB27AA270E +:105DA0000ED0D1C1C2D130F0C7D120F031F49F3F25 +:105DB00011F41EF4B7C10EF4E095E7FB9FC1E92F83 +:105DC000D3D180F3BA17620773078407950718F0D9 +:105DD00071F49EF5EBC10EF4E0950B2EBA2FA02DB9 +:105DE0000B01B90190010C01CA01A0011124FF2788 +:105DF000591B99F0593F50F4503E68F11A16F04083 +:105E0000A22F232F342F4427585FF3CF4695379581 +:105E10002795A795F0405395C9F77EF41F16BA0B46 +:105E2000620B730B840BBAF09150A1F0FF0FBB1FF4 +:105E3000661F771F881FC2F70EC0BA0F621F731F3D +:105E4000841F48F4879577956795B795F7959E3F9A +:105E500008F0B3CF9395880F08F09927EE0F979528 +:105E60008795089527D108F481E008950CD06BC17F +:105E700063D140F05AD130F021F45F3F19F03EC1B8 +:105E8000511195C14FC170D198F39923C9F355238E +:105E9000B1F3951B550BBB27AA276217730784071D +:105EA00038F09F5F5F4F220F331F441FAA1FA9F3D3 +:105EB00033D00E2E3AF0E0E830D091505040E695C5 +:105EC000001CCAF729D0FE2F27D0660F771F881F26 +:105ED000BB1F261737074807AB07B0E809F0BB0B15 +:105EE000802DBF01FF2793585F4F2AF09E3F510539 +:105EF00068F004C15CC15F3FECF3983EDCF386952B +:105F000077956795B795F7959F5FC9F7880F911DAE +:105F10009695879597F90895E1E0660F771F881F9A +:105F2000BB1F621773078407BA0720F0621B730B4D +:105F3000840BBA0BEE1F88F7E095089504D068949F +:105F4000B11135C1089518D188F09F5790F0B92F3D +:105F50009927B751A0F0D1F0660F771F881F991FBE +:105F60001AF0BA95C9F712C0B13081F01FD1B1E073 +:105F700008951CC1672F782F8827B85F39F0B93F83 +:105F8000CCF3869577956795B395D9F73EF49095C0 +:105F90008095709561957F4F8F4F9F4F0895E8943E +:105FA00009C097FB3EF490958095709561957F4F61 +:105FB0008F4F9F4F9923A9F0F92F96E9BB2793950F +:105FC000F695879577956795B795F111F8CFFAF41F +:105FD000BB0F11F460FF1BC06F5F7F4F8F4F9F4F50 +:105FE00016C0882311F096E911C0772321F09EE8AE +:105FF000872F762F05C0662371F096E8862F70E014 +:1060000060E02AF09A95660F771F881FDAF7880FED +:106010009695879597F9089588D018F011F08CD04F +:1060200038F480C0C4C0E92F9FD0B0F35523C9F322 +:10603000E7FB6217730784079507A8F199F3E92F27 +:10604000FF2788232AF03197660F771F881FDAF71A +:10605000952F5527442332F091505040220F331F83 +:10606000441FD2F7BB27E91BF50B621B730B840B94 +:10607000B109C1F222F4620F731F841FB11D319761 +:106080002AF0660F771F881FBB1FEFCF915050403B +:106090005AF041F0882332F0660F771F881F915025 +:1060A0005040C1F7939530C08695779567959F5F6F +:1060B000D9F7F8CF990F0008550FAA0BE0E8FEEFCB +:1060C00016161706E807F907C0F012161306E407BC +:1060D000F50798F0621B730B840B950B39F40A26B5 +:1060E00061F0232B242B252B21F408950A2609F493 +:1060F000A140A6958FEF811D811D089597F99F6797 +:1061000080E870E060E008959F3F31F0915020F406 +:10611000879577956795B795880F911D9695879583 +:1061200097F908959FEF80EC089500240A941616BD +:10613000170618060906089500240A941216130675 +:10614000140605060895092E0394000C11F4882303 +:1061500052F0BB0F40F4BF2B11F460FF04C06F5F1F +:106160007F4F8F4F9F4F089557FD9058440F551FF5 +:1061700059F05F3F71F04795880F97FB991F61F0C9 +:106180009F3F79F087950895121613061406551F40 +:10619000F2CF4695F1DF08C0161617061806991FAC +:1061A000F1CF86957105610508940895E894BB27A1 +:1061B00066277727CB0197F908957CDF08F48FEFE6 +:1061C00008950BD0C0CFB1DF28F0B6DF18F09523CB +:1061D00009F094CFA7CF1124EACFC6DFA0F3959F93 +:1061E000D1F3950F50E0551F629FF001729FBB27BE +:1061F000F00DB11D639FAA27F00DB11DAA1F649F6A +:106200006627B00DA11D661F829F2227B00DA11D1C +:10621000621F739FB00DA11D621F839FA00D611DA2 +:10622000221F749F3327A00D611D231F849F600DC3 +:10623000211D822F762F6A2F11249F5750408AF0FC +:10624000E1F088234AF0EE0FFF1FBB1F661F771F88 +:10625000881F91505040A9F79E3F510570F04ECFD6 +:10626000A6CF5F3FECF3983EDCF386957795679574 +:10627000B795F795E7959F5FC1F7FE2B880F911DA6 +:106280009695879597F90895FA01EE0FFF1F3096BE +:106290002105310599F16115710561F48038BFE37D +:1062A0009B0749F168949038810561F08038BFEF11 +:1062B0009B0741F0992342F5FF3FE1053105210598 +:1062C00011F1E8940894E795D901AA2329F4AB2F9A +:1062D000BE2FF85FD0F310C0FF5F70F4A695E0F713 +:1062E000F73950F019F0FF3A38F49F779F930CD0AC +:1062F0000F9007FC905808953EF014CF60E070E0D6 +:1063000080E89FE308954FE79F775F934F933F9314 +:106310002F939ED02F913F914F915F9152DF05C0F7 +:1063200019F40EF0EBCE42CFFDCE26DFC8F396383F +:10633000C0F707F80F92E8942BE33AEA48EB5FE7DF +:106340004EDF0F920F920F924DB75EB70F92C0D0F3 +:10635000E6E2F1E016D04F915F91EF91FF91E59564 +:10636000EE1FFF1F49F0FE57E0684427EE0F441F61 +:10637000FA95E1F74195550B32D00F9007FE26C0F4 +:106380000895DF93CF931F930F93FF92EF92DF92C5 +:106390007B018C01689405C0DA2EEF011EDFFE013F +:1063A000E894A5912591359145915591AEF3EF0172 +:1063B00006DDFE019701A801DA9479F7DF90EF90EE +:1063C000FF900F911F91CF91DF9108959B01AC0138 +:1063D00060E070E080E89FE349CD90CE95CECCDEC2 +:1063E000E8F39923D9F3940F511DBBF3915050401A +:1063F00094F059F0882332F0660F771F881F915070 +:106400005040C1F79E3F510544F7880F911D969566 +:10641000879597F908955F3FACF0983E9CF0BB27B5 +:10642000869577956795B79508F4B1609395C1F710 +:10643000BB0F58F711F460FFE8CF6F5F7F4F8F4FAE +:106440009F4FE3CFB4CE0EF05FCE6CCE689456CEA5 +:1064500093DEC8F39923D1F3C6F3DF93CF931F9351 +:106460000F93FF92C92FDD2788232AF02197660F0B +:10647000771F881FDAF720E030E040E85FEB9FE30A +:10648000883920F0803E30F021968F7787DCEEE46B +:10649000F1E003C083DCEBE7F1E073DF8B01BE01C9 +:1064A000EC01FB2E6F5771097595771F880B990BBF +:1064B00078DD28E132E741E35FE38FDEAF2D98011D +:1064C000AE01FF900F911F91CF91DF9178DC3BCE11 +:1064D000FA01DC01AA0FBB1F9B01AC01BF5728F4D6 +:1064E00022273327442750781FC0B75188F4AB2F99 +:1064F0000024469537952795011CA395D2F30020DB +:1065000069F0220F331F441FB395DAF30DD045CC49 +:1065100061307105A0E88A07B94630F49B01AC01EF +:106520006627772788279078309621F0208331835B +:10653000428353830895AA1BBB1B51E107C0AA1FC6 +:10654000BB1FA617B70710F0A61BB70B881F991F14 +:106550005A95A9F780959095BC01CD01089597FBB8 +:10656000072E16F4009407D077FD09D00E949B32C5 +:1065700007FC05D03EF4909581959F4F0895709546 +:1065800061957F4F0895EE0FFF1F0590F491E02D68 +:106590000994F999FECF92BD81BDF89A992780B5EB +:1065A0000895A8E1B0E042E050E00C94F132262FCB +:1065B000F999FECF92BD81BDF89A019700B40216F9 +:1065C00039F01FBA20BD0FB6F894FA9AF99A0FBEA7 +:1065D00008950196272F0E94D8320C94D732DC01FF +:1065E000CB01FC01F999FECF06C0F2BDE1BDF89ADE +:1065F000319600B40D9241505040B8F70895F89488 +:02660000FFCFCA +:1066020052D02445000000410000DC44000000415B +:1066120052D0A4440000404100005C44000000410C +:1066220048F17644000000415C978A440000004132 +:106632001FD592440000004152D0A4440000004102 +:106642005CFFB844000000410AA7CF4400000041AB +:106652000000DC44000000410AA7CF4400000041D2 +:106662000000DC4400000041000000000000804007 +:1066720000005C4500004041000000000000804036 +:1066820052D02445000040410AA7CF4400000041F7 +:106692000000DC44000000410000000000008040D7 +:1066A20052D024450000404100000000000080401C +:1066B20000005C45000040410AA7CF4400000041B1 +:1066C2000000DC44000000410000000000008040A7 +:1066D20052D02445000040410000000000008040EC +:1066E2000AA74F45000040410AA7CF4400000041DD +:1066F2000000DC4400000041000000000000804077 +:1067020052D02445000000410000000000008040FB +:106712005CFF38450000004100000000000080409E +:1067220052D02445000000410AA7CF440000004196 +:106732000000DC4400000041000000000000804036 +:1067420052D024450000804152D0244500004041EF +:106752005C970A450000004152D0A4440000004169 +:106762000000DC44000000415C970A450000A041A3 +:10677200640007000CFF0000003F641F16AD168A7C +:10678200165616221601014F042808140A321E005A +:1067920002040507090B0C0E1011131517181A1C09 +:1067A2001D1F2123242628292B2D2F303234353743 +:1067B200393B1F0F03764F5F6F7F49694379095950 +:1067C20053633149803F5D8B803FF8BF803FCAE110 +:1067D200803F73ED803FCAE1803FF8BF803F5D8B11 +:1067E200803F3149803F0000803FF16D7F3F75EA75 +:1067F2007E3F4C827E3F833F7E3F84287E3F833FA5 +:106802007E3F4C827E3F75EA7E3FF16D7F3F000006 +:10681200803F404D3639340BE70AB10A780A0B0A39 +:10682200240A3D0A560A0102030405060708090064 +:00000001FF diff --git a/keyboards/planck/keymaps/experimental/config.h b/keyboards/planck/keymaps/experimental/config.h new file mode 100644 index 000000000..a9117e0ee --- /dev/null +++ b/keyboards/planck/keymaps/experimental/config.h @@ -0,0 +1,8 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +#define LEADER_TIMEOUT 300 + +#endif diff --git a/keyboards/planck/keymaps/experimental/keymap.c b/keyboards/planck/keymaps/experimental/keymap.c new file mode 100644 index 000000000..041285684 --- /dev/null +++ b/keyboards/planck/keymaps/experimental/keymap.c @@ -0,0 +1,346 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "planck.h" +#include "action_layer.h" +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif + +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _PLOVER 5 +#define _ADJUST 16 + +// Macro name shortcuts +#define QWERTY M(_QWERTY) +#define COLEMAK M(_COLEMAK) +#define DVORAK M(_DVORAK) +#define LOWER M(_LOWER) +#define RAISE M(_RAISE) +#define M_BL 5 +#define PLOVER M(12) +#define EXT_PLV M(13) + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = { + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = { + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {KC_LEAD, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = { + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = { + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUHS, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Plover layer (http://opensteno.org) + * ,-----------------------------------------------------------------------------------. + * | # | # | # | # | # | # | # | # | # | # | # | # | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | S | T | P | H | * | * | F | P | L | T | D | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | S | K | W | R | * | * | R | B | G | S | Z | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Exit | | | A | O | | E | U | | | | + * `-----------------------------------------------------------------------------------' + */ + +[_PLOVER] = { + {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, + {XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, + {XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX} +}, + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|Musoff| | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = { + {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, + {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +} + + +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +#ifdef AUDIO_ENABLE + +float tone_startup[][2] = SONG(STARTUP_SOUND); +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +float tone_plover[][2] = SONG(PLOVER_SOUND); +float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); + +float tone_goodbye[][2] = SONG(GOODBYE_SOUND); +#endif + + + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case _QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_qwerty, false, 0); + #endif + persistant_default_layer_set(1UL<<_QWERTY); + } + break; + case _COLEMAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_colemak, false, 0); + #endif + persistant_default_layer_set(1UL<<_COLEMAK); + } + break; + case _DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_dvorak, false, 0); + #endif + persistant_default_layer_set(1UL<<_DVORAK); + } + break; + case _LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + #ifdef BACKLIGHT_ENABLE + breathing_speed_set(2); + breathing_pulse(); + #endif + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + break; + case _RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + #ifdef BACKLIGHT_ENABLE + breathing_speed_set(2); + breathing_pulse(); + #endif + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + break; + case M_BL: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + case 12: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + stop_all_notes(); + PLAY_NOTE_ARRAY(tone_plover, false, 0); + #endif + layer_off(_RAISE); + layer_off(_LOWER); + layer_off(_ADJUST); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + } + break; + case 13: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_plover_gb, false, 0); + #endif + layer_off(_PLOVER); + } + break; + + } + return MACRO_NONE; +}; + +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + startup_user(); + #endif +} + +#ifdef AUDIO_ENABLE +void startup_user() +{ + _delay_ms(20); // gets rid of tick + PLAY_NOTE_ARRAY(tone_startup, false, 0); +} + +void shutdown_user() +{ + PLAY_NOTE_ARRAY(tone_goodbye, false, 0); + _delay_ms(150); + stop_all_notes(); +} + +void music_on_user(void) +{ + music_scale_user(); +} + +void music_scale_user(void) +{ + PLAY_NOTE_ARRAY(music_scale, false, 0); +} + +#endif + +LEADER_EXTERNS(); + +void matrix_scan_user(void) { + LEADER_DICTIONARY() { + leading = false; + leader_end(); + + SEQ_ONE_KEY (KC_V) { + SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); + } + SEQ_ONE_KEY(KC_F) { + SEND_STRING("if yes\n\tpeanut butter\nelse\n\trice snacks"); + } + SEQ_TWO_KEYS(KC_A, KC_S) { + register_code(KC_H); + unregister_code(KC_H); + } + SEQ_THREE_KEYS(KC_A, KC_S, KC_D) { + register_code(KC_LGUI); + register_code(KC_S); + unregister_code(KC_S); + unregister_code(KC_LGUI); + } + } +} diff --git a/keyboards/planck/keymaps/gabriel/Makefile b/keyboards/planck/keymaps/gabriel/Makefile new file mode 100644 index 000000000..581e08cd0 --- /dev/null +++ b/keyboards/planck/keymaps/gabriel/Makefile @@ -0,0 +1,25 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/gabriel/compiled.hex b/keyboards/planck/keymaps/gabriel/compiled.hex new file mode 100644 index 000000000..93d850284 --- /dev/null +++ b/keyboards/planck/keymaps/gabriel/compiled.hex @@ -0,0 +1,1450 @@ +:100000000C9491020C94D5020C94D5020C94D50258 +:100010000C94D5020C94D5020C94D5020C94D50204 +:100020000C94D5020C94D5020C9482140C945415A3 +:100030000C94B6220C94D5020C94D5020C94D502E3 +:100040000C94D5020C9437030C94D5020C94D50271 +:100050000C94D5020C941E230C94D5020C94D5025A +:100060000C94D5020C94D5020C94D5020C94D502B4 +:100070000C94D5020C94D5020C94D5020C94D502A4 +:100080000C94F70A0C94D5020C94D5020C94D5026A +:100090000C94D5020C94D5020C94D5020C94D50284 +:1000A0000C94D5020C94D5020C94D502C115E3151D +:1000B000D116E315D11628164B16D116A016B31675 +:1000C0009D199D19CC19CC190B1A2B1A811B811B58 +:1000D000361A811BE61AE61A4D1B561B811B7B1B29 +:1000E000F31AF31AF31AF31AF31AF31AF31AF31AA8 +:1000F000F31AF31AF31AF31AF31AF31AF31AF31A98 +:10010000031B111B181B1F1B291B07634236B79BC0 +:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 +:100120005763BD6DEDFD753EF6177231BF000000DF +:10013000803F08000000BE922449123EABAAAA2AC2 +:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD +:1001500000000000BF000000803F00000000000819 +:100160004178D3BB4387D1133D190E3CC3BD4282B6 +:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 +:10018000FFBE01C4FF7F3F00000000000000000030 +:1001900000000000000000010204060A0F17202CD6 +:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 +:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF +:1001C00002010000000000000000000029001400EF +:1001D0001A000800150017001C0018000C0012007F +:1001E00013002A002B0004001600070009000A0073 +:1001F0000B000D000E000F0033003400E1001D0065 +:100200001B00060019000500110010003600370021 +:10021000380028000352E000E200E30001522C0005 +:100220002C0002525000510052004F0035021E02B5 +:100230001F0220022102220223022402250226029A +:1002400027022A0001003A003B003C003D003E002E +:100250003F002D022E002F0230023100010040002D +:10026000410042004300440045000100010001003C +:100270000100010001000100010001000100010076 +:1002800001000100010001000100010035001E0015 +:100290001F0020002100220023002400250026004A +:1002A00027002A0001003A003B003C003D003E00D0 +:1002B0003F002D002E022F003000310201004000CF +:1002C00041004200430044004500010001000100DC +:1002D0000100010001000100010001000100010016 +:1002E0000100010001000100010001000100010006 +:1002F00001000100010001000100010001000100F6 +:1003000001004C000100010001000100010001009A +:1003100001000100010001000100010001000100D5 +:1003200001000100010001000100010001000100C5 +:1003300001000100010001000100010001000100B5 +:10034000010001004A004E004B004D0028035400FC +:1003500068006500200050006C0061006E006300C2 +:100360006B0020004B006500790062006F006100A7 +:100370007200640000002C034F00720074006800DB +:100380006F006C0069006E00650061007200200063 +:100390004B006500790062006F006100720064002C +:1003A000730000000403090409026D00040100A0A9 +:1003B000FA090400000103010100092111010001F3 +:1003C000223F000705810308000A09040100010318 +:1003D000010200092111010001224D0007058203DD +:1003E00008000A09040200010300000009211101AC +:1003F00000012236000705830308000A09040300F0 +:100400000103000000092111010001223900070544 +:1004100084031000011201100100000008EDFE60CD +:100420006001000102000105010906A1010507198B +:10043000E029E715002501950875018102050819D5 +:100440000129059505750191029501750391010535 +:10045000071900297715002501957875018102C0DB +:1004600005010980A101850216010026B7001A01C5 +:10047000002AB700751095018100C0050C0901A183 +:10048000018503160100269C021A01002A9C0275B0 +:100490001095018100C005010902A1010901A10017 +:1004A0000509190129051500250195057501810228 +:1004B0009501750381010501093009311581257FF9 +:1004C00095027508810609381581257F9501750803 +:1004D0008106050C0A38021581257F950175088172 +:1004E00006C0C005010906A101050719E029E715A5 +:1004F00000250195087501810295017508810105A6 +:100500000819012905950575019102950175039159 +:10051000010507190029FF150025FF9506750881BB +:1005200000C011241FBECFEFDAE0DEBFCDBF04B69E +:1005300003FE24C080911E0390911F03A09120030D +:10054000B09121038730904BA740B04BB9F4109283 +:100550001E0310921F03109220031092210314BE59 +:1005600084B7877F84BF88E10FB6F89480936000DA +:10057000109260000FBEE0E0F8E3099511E0A0E002 +:10058000B1E0E6ECF9E502C005900D92A03CB107A0 +:10059000D9F713E0A0ECB1E001C01D92AE31B10774 +:1005A000E1F70E94C8110C94E12C0C94000008950E +:1005B000089581E0089508950C94D8020C94D9020E +:1005C0000C94DB020E94AB2823E030E0281B3109A9 +:1005D000220F2093C4010895282F2F988091800026 +:1005E000211108C0877F8093800010928D001092A7 +:1005F0008C001BC0886080938000233019F48FEF3B +:100600009FEF0FC083E090E0821B9109880F991F34 +:100610002FEF3FEFA90102C0569547958A95E2F763 +:10062000CA0190938D0080938C000C94E2020E948A +:10063000E20284E08093C3011092C0010895279ADA +:100640002F988FEF9FEF90938700809386008AE02A +:100650008093800089E1809381000E9414280C948B +:1006600017030E941F036E9A769A0C94D7021F926A +:100670000F920FB60F9211242F933F938F939F9356 +:10068000EF93FF93E091C101F091C201CF01019678 +:100690009093C2018093C1010090C30102C0F695FE +:1006A000E7950A94E2F7EF738091C001823019F464 +:1006B000E03251F404C0813039F4EF3329F48091F1 +:1006C0006F008D7F80936F00F0E0E457FE4FE49160 +:1006D00021E031E0E29FC001E39F900D11240090E2 +:1006E000C40102C0969587950A94E2F790938D0015 +:1006F00080938C00FF91EF919F918F913F912F916B +:100700000F900FBE0F901F90189561110DC0FC0146 +:100710008281882331F085EE0E9441180E946B2867 +:1007200003C085EE0E94091980E090E0089581E001 +:1007300008950C94970308950C9431038091150249 +:10074000882309F448C08091D1019091D20100978B +:1007500079F40E94E8229093D2018093D101809194 +:10076000D30190E0009771F48091D40190E00AC029 +:100770000E94F422209100013091010128173907CD +:1007800040F329C00197880F991F880F991FFC011A +:10079000EB52FE4F60817181828193810E945D0ADC +:1007A000E091D30184E0E89FF0011124EB52FE4F69 +:1007B00060817181828193814FE050E00E94150E2B +:1007C0008091D30190E001966091D40170E00E9485 +:1007D000912C8093D3010C94DC02109217020C949C +:1007E0002A0A0895089581E0809317020C94F20379 +:1007F000089508958F929F92AF92BF92EF92FF92C9 +:100800000F931F93CF93DF93CDB7DEB7A3970FB6A8 +:10081000F894DEBF0FBECDBF7C01FC0100811181C9 +:10082000C8010E94E520B8010E94FC058C01B701B7 +:100830000E949903882309F4CCC10032F0E51F0718 +:1008400041F4F7018281882309F458C00E94790E8F +:10085000C0C10132F0E51F0741F4F701828188230E +:1008600009F44CC00E94820EB4C10232F0E51F07A9 +:1008700051F4F7018281882309F440C00E94750E6B +:100880008111F0CFE3CF0332F0E51F0739F4F70110 +:100890008281882399F10E94F3039BC10432F0E521 +:1008A0001F0739F4F7018281882341F10E94ED038B +:1008B00090C10532F0E51F0749F4F70182818823D2 +:1008C000E9F0809117028111F1CFE5CF0632F0E512 +:1008D0001F0739F4F7018281882381F00E94890E75 +:1008E0000AC00732F0E51F0749F4F7018281882327 +:1008F00029F00E94940E0E94F9036BC180911702A7 +:10090000811105C0F70182818111CFC018C1003E5D +:10091000110579F4F7018281882309F44DC00E9402 +:100920002A0A81E080931602109215021092D401D7 +:1009300050C1023E110559F4F70182818823E1F18B +:100940000E942A0A109216021092150242C1033E1A +:10095000110591F4F7018281882371F10E942A0A1E +:100960001092160281E0809315021092D30110922A +:10097000D2011092D1012DC10235110559F4F701B0 +:100980008281882309F425C18091000190910101A1 +:100990000A970DC00135110579F4F701828188238A +:1009A00009F417C180910001909101010A9690937A +:1009B0000101809300010DC14091040183E2EFE148 +:1009C000F1E0DE01119601900D928A95E1F7F701B1 +:1009D000808121E030E02C0F3D1F280F311DC9011F +:1009E0002091020130910301FC01E20FF31F6081AD +:1009F000772767FD7095640F711D882777FD8095B7 +:100A0000982F0E94B32920E030E040E451E40E9496 +:100A100018294B015C01F701218184E090E0821BE1 +:100A20009109BC01882777FD8095982F0E94B329F2 +:100A30009B01AC01C501B4010E94B0289B01AC012F +:100A400060E070E080E090E40E94262B20E030E03F +:100A50004CED50E40E94C32A4B015C01F7018281F6 +:100A60008823D1F04FE050E0C501B4010E94150E7B +:100A7000809116028823A1F08091D40124E0829F06 +:100A8000F0011124EB52FE4F80829182A282B38248 +:100A90008F5F8093D40104C0C501B4010E945D0A38 +:100AA0000F3F110508F02ECF94C08091D001811125 +:100AB0001FC0043130E5130709F051C00E949B03A9 +:100AC00081E08093D0010E94E8229093CF0180932F +:100AD000CE011092C7011092C9011092C801109264 +:100AE000CB011092CA011092CD011092CC0171C0BD +:100AF0008091CE019091CF010E94F422883C910513 +:100B000070F48091C701E82FF0E0EE0FFF1FE8536B +:100B1000FE4F118300838F5F8093C7015AC0043852 +:100B200080E5180721F00538104501F13AC0F701BA +:100B30008281882341F01092C50182E01EC00438F2 +:100B400030E5130759F58091C501811106C086E291 +:100B50000E94411886E20E94091982E01CC00438F4 +:100B6000F0E51F0741F305381045D9F4F7018281FC +:100B7000882331F01092C60180E20E94581929C0E2 +:100B80008091C601811106C087E20E94411887E268 +:100B90000E94091980E20E945F191BC005381045A8 +:100BA00029F381E08093C5018093C601C701A39614 +:100BB0000FB6F894DEBF0FBECDBFDF91CF911F916E +:100BC0000F91FF90EF90BF90AF909F908F900C94FB +:100BD000DE0280E0A3960FB6F894DEBF0FBECDBF55 +:100BE000DF91CF911F910F91FF90EF90BF90AF9049 +:100BF0009F908F90089508959CE0799FF0011124B3 +:100C000090E3899FE00DF11D1124E60FF11DEE0F19 +:100C1000FF1FE453FE4F859194910895880F991F0B +:100C2000FC01E45BFF4F859194910895880F991F13 +:100C3000FC01E453FE4F8591949108950F931F9307 +:100C4000CF93DF93EC01811521E39207A0F5C11545 +:100C500080E3D80708F0D7C0C83ED105D8F4C03E1D +:100C6000D10508F007C2C83AD10578F4C53AD105D4 +:100C700008F06AC0C130D10509F463C008F4F7C1B7 +:100C8000C430D10508F0F6C1F2C1CB3BD10508F460 +:100C900066C0EDC1C11590E2D90708F0AFC0C1151B +:100CA00021E0D20708F0E6C1C03FD10508F4DFC15A +:100CB0008E0110651FC2C03880E5D80700F5C03727 +:100CC00090E5D90708F0A3C0C11520E5D20709F4C3 +:100CD000ACC050F4CE01905480319F4008F0C7C1A1 +:100CE000DF708E01106A06C2C13080E5D80709F4B2 +:100CF000AEC0C43190E5D90708F4AFC0B8C1C3385D +:100D000020E5D20709F48EC050F4C13890E5D90728 +:100D100009F482C008F083C000E011EDEBC1C031DE +:100D200081E5D80708F4A3C1C11597E5D90708F4F0 +:100D300036C1CE0190578115904108F098C1DF70FF +:100D400093C101E010E0D6C1C53AD10509F494C1C0 +:100D5000C63AD10509F093C102E810E4CBC1C83A04 +:100D6000D10509F48FC1C93AD10509F48EC1CA3A37 +:100D7000D10509F48DC1CB3AD10509F48CC1CC3A27 +:100D8000D10509F48BC1CD3AD10509F48AC1C03B24 +:100D9000D10509F489C1CE3AD10509F488C1CF3A09 +:100DA000D10509F487C1C13BD10509F486C1C23B15 +:100DB000D10509F485C1C33BD10509F484C1C43B05 +:100DC000D10509F483C1C53BD10509F482C1C63BF5 +:100DD000D10509F481C1C73BD10509F480C1C83BE5 +:100DE000D10509F47FC1C93BD10509F47EC1CA3BD5 +:100DF000D10509F47DC100E014E47CC1CE019F70EF +:100E00000E94160678C1DD278E01106C73C1CF7069 +:100E1000DD278E01146D6EC100E010ED6BC100E0A6 +:100E200012ED68C100E013ED65C10E94EC1B0E9449 +:100E30002A0A0E94F1038FEF94E32CE08150904046 +:100E40002040E1F700C000000E94432353C180917D +:100E5000F20281608093F2024DC10E94A4238111AD +:100E600002C00E9480230E94B72390E090931D034C +:100E700080931C03C23080E5D80721F480911C03C5 +:100E8000816086C0C43090E5D90721F480911C03AD +:100E900082607EC0C63020E5D20721F480911C0319 +:100EA000846076C0C83080E5D80719F480911C03AF +:100EB00027C0CA3090E5D90721F480911C038061D6 +:100EC00067C0CC3020E5D20721F480911C038062FA +:100ED0005FC0CE3080E5D80721F480911C03806488 +:100EE00057C0C03190E5D90721F480911C03806878 +:100EF0004FC0C23120E5D20729F480911C038460E1 +:100F0000886046C0C33080E5D80721F480911C0377 +:100F10008E7F3EC0C53090E5D90721F480911C0337 +:100F20008D7F36C0C73020E5D20721F480911C03A5 +:100F30008B7F2EC0C93080E5D80719F480911C033F +:100F400026C0CB3090E5D90721F480911C038F7E19 +:100F50001FC0CD3020E5D20721F480911C038F7D86 +:100F600017C0CF3080E5D80721F480911C038F7B18 +:100F70000FC0C13190E5D90721F480911C038F7710 +:100F800007C0C331D04531F480911C038B7F877F2C +:100F900080931C0380911C030E94BB23ABC08D2F48 +:100FA00099278F70992781309105D9F49E0123707C +:100FB000332702C0880F991F2A95E2F79C688E019B +:100FC00044E0000F111F4A95E1F700271370802BB2 +:100FD000912B53E0CC0FDD1F5A95E1F7C076DD274A +:100FE0002FC08230910531F4DC2FCC278E01016FA8 +:100FF000106A80C08330910569F4CE01837099270F +:1010000001E010E002C0000F111F8A95E2F7C8014D +:101010009C680FC084309105B9F4CE018370992784 +:1010200001E010E002C0000F111F8A95E2F7C8012D +:101030009A6823E0CC0FDD1F2A95E1F7C07ED770B8 +:101040008C010C2B1D2B56C08530910531F4DC2F03 +:10105000CC278E01046F106A4DC0069709F04AC074 +:10106000CF71DD27DC2FCC278E01106243C000E05A +:1010700010E040C08E013EC001E810E43BC003E830 +:1010800010E438C002EE14E435C009EE14E432C0B6 +:101090000AEE14E42FC005EB14E42CC006EB14E4B4 +:1010A00029C007EB14E426C00CEC14E423C00DECBB +:1010B00014E420C003E815E41DC00AE815E41AC0D2 +:1010C00002E915E417C004E915E414C001E216E4CE +:1010D00011C003E216E40EC004E216E40BC005E200 +:1010E00016E408C006E216E405C007E216E402C0F2 +:1010F0000AE216E4C801DF91CF911F910F91089584 +:101100009CE0799FF001112490E3899FE00DF11D8F +:101110001124E60FF11DEE0FFF1FE453FE4F8591E2 +:101120009491803E9105E0F4803C910558F581331F +:10113000910509F46FC048F48932910509F463C040 +:101140008A32910509F46DC072C089339105E9F0C6 +:1011500082389105D1F08533910509F44DC067C0FF +:10116000833E910581F138F4803E9105B9F0823ECD +:101170009105D9F05CC0863E910561F1873E9105ED +:10118000A1F155C00E940E06089520911C0320FD78 +:1011900002C021FF4CC080EE90E049C080911C034A +:1011A00080FFF9CF89E390E042C080911C0382FF69 +:1011B0000EC080911C0384FF03C080E090E037C024 +:1011C00083EE90E034C080911C0382FFF2CF82EE68 +:1011D00090E02DC080911C0383FF0BC080911C0305 +:1011E00084FDEBCF87EE90E022C080911C0383FF4B +:1011F000F5CF86EE90E01BC080911C0385FF07C0F1 +:1012000089E290E014C080911C0385FFF9CF85E34B +:1012100090E00DC080911C0386FF07C08AE290E039 +:1012200006C080911C0386FFF9CF81E390E00E9405 +:101230001E0608950C94E002E82FF0E0E25BFE4FFA +:101240008081E82FEF70F0E082958F7021E030E030 +:10125000A90102C0440F551F8A95E2F740A30895E3 +:101260000F931F93CF93DF9385B7806885BF85B7B2 +:10127000806885BFC3E0D0E001E010E0FE01E25BE2 +:10128000FE4F8081E82FEF70F0E021A182958F70F2 +:10129000A80102C0440F551F8A95E2F7CA01822BAC +:1012A00081A38C2F0E941C09219740F78BE090E0CE +:1012B00061E070E0FC01EE5BFE4F2081E22FEF70F9 +:1012C000F0E042A122952F70DB0102C0AA0FBB1FE4 +:1012D0002A95E2F79D01242B22A3019758F7DF916D +:1012E000CF911F910F910C949C03EF92FF920F935B +:1012F0001F93CF93DF9300E212E0C3E0EE24E39468 +:10130000F12CD5E08C2F0E941C098BE090E040E08E +:1013100050E0FC01EE5BFE4F6081E62FEF70F0E0E5 +:1013200020A130E062956F7002C0359527956A95CF +:10133000E2F720FD09C09701082E02C0220F331FDB +:101340000A94E2F7422B532B019718F7F801929178 +:1013500082918F018417950721F051834083D093A8 +:1013600005018C2F0E941C09C15060F68091050177 +:1013700087FD2CC08150809305018F3F39F08FE9A4 +:101380009FE00197F1F700C0000020C080911E028D +:1013900090911F02909327028093260280911C0255 +:1013A00090911D02909325028093240280911A024D +:1013B00090911B0290932302809322028091180245 +:1013C0009091190290932102809320020E949E0323 +:1013D00081E0DF91CF911F910F91FF90EF900895E1 +:1013E000E82FF0E0EE0FFF1FE05EFD4F808191815E +:1013F000089508950F931F93CF9308E212E0C0E081 +:10140000F801929182918F010E946022C80FF2E050 +:1014100000321F07A9F78C2FCF911F910F910895CC +:101420000E94A423811102C00E9480230E94C9232C +:10143000809307033E9A809171008D7F80937100A5 +:1014400082E0809390008AE18093910081E0809314 +:101450002A02089580912A02811102C00E94100A76 +:1014600010927A0210927902809171008D7F8093A0 +:101470007100809190008F738093900010923C02D5 +:1014800010923B0210927302109274021092750235 +:10149000109276021092720210927102E1E5F2E06F +:1014A000A1E4B2E011921192119211921D921D923B +:1014B00082E0E137F807B1F70895CF92DF92EF921B +:1014C000FF920F931F93CF93DF9320913B02222330 +:1014D00009F484C06B017C0180912A02811102C051 +:1014E0000E94100A01E712E0C7E0D0E0A7019601D0 +:1014F000F80192918291729162918F010E94142958 +:10150000811131C0FE01EE0FFF1FEE0FFF1FEF5ADA +:10151000FD4F1082118212821382DE01AA0FBB1FBF +:10152000AF5BBD4F11961C921E92C730D105E9F0FA +:1015300021964481558166817781408351836283FE +:101540007383148215821682178212968D919C9154 +:10155000139711969C938E9313961C921E9212973A +:1015600034961296E2CF219708F6809179029091F5 +:101570007A02019797FD05C090937A0280937902D1 +:1015800004C010927A0210927902809179029091AF +:101590007A0220917702309178022817390724F0D7 +:1015A0001092780210927702892BC1F48091710019 +:1015B0008D7F80937100809190008F738093900055 +:1015C00010927302109274021092750210927602B9 +:1015D000109272021092710210923B02DF91CF9131 +:1015E0001F910F91FF90EF90DF90CF9008951F9281 +:1015F0000F920FB60F9211244F925F926F927F92CB +:101600008F929F92AF92BF92CF92DF92EF92FF9212 +:101610002F933F934F935F936F937F938F939F93FA +:10162000AF93BF93CF93DF93EF93FF9380913B02F0 +:10163000882309F49BC1C0917902D0917A021C16CB +:101640001D060CF093C140902B0250902C0260902C +:101650002D0270902E0220E030E0A901C301B201FA +:101660000E94BF2A18160CF065C0C130D10509F4DC +:1016700052C08091770290917802BE010E94912C15 +:101680007C01909378028093770280903D02909045 +:101690003E02A0903F02B090400220E030E040E8DF +:1016A0005FE3C501B4010E94B02860933D027093CE +:1016B0003E0280933F0290934002F701EE0FFF1F1E +:1016C000EE0FFF1FEF5AFD4FA30192016081718160 +:1016D000828193810E94182920E030E040E05EE39F +:1016E0000E94C32A9B01AC01C501B4010E94BF2A1C +:1016F00018168CF4C7010196BE010E94912C90939C +:1017000078028093770210923D0210923E0210926E +:101710003F0210924002E0917702F0917802EE0FC2 +:10172000FF1FEE0FFF1FEF5AFD4F60817181828115 +:101730009381D0C0C0907302D0907402E090750283 +:10174000F090760220E030E0A901C701B6010E94C6 +:1017500014292197882309F4A2C0FE01EE0FFF1F70 +:10176000EE0FFF1FEF5AFD4F80809180A280B38063 +:10177000A5019401C701B6010E94142987FF31C059 +:10178000A501940160E070E08CED93EC0E941829B3 +:1017900020E030E040E451E40E94182920E030E0ED +:1017A00040E05FE30E94C32A9B01AC0160E070E06F +:1017B00080E090E40E94262B9B01AC01C501B4019E +:1017C0000E94C32A9B01AC01C701B6010E941429E3 +:1017D00087FF07C0A701960160E070E08CED93E4FD +:1017E00039C0A5019401C701B6010E94BF2A18168D +:1017F0000CF055C0A501940160E070E08CED93E41D +:101800000E94182920E030E040E451E40E941829A9 +:1018100020E030E040E05FE30E94C32A9B01AC017E +:1018200060E070E080E090E40E94262B9B01AC0118 +:10183000C501B4010E94C32A9B01AC01C701B601D6 +:101840000E94BF2A18165CF5A701960160E070E0BF +:101850008CED93EC0E94182920E030E040E451E444 +:101860000E94182920E030E040E05FE30E94C32A94 +:101870009B01AC0160E070E080E090E40E94262BC8 +:101880009B01AC01C701B6010E94C32A6093730299 +:1018900070937402809375029093760213C0FE01D8 +:1018A000EE0FFF1FEE0FFF1FEF5AFD4F808191815A +:1018B000A281B3818093730290937402A093750206 +:1018C000B0937602609173027091740280917502F8 +:1018D0009091760220912802309129022F3F4FEFFC +:1018E000340731F02F5F3F4F3093290220932802B5 +:1018F0000E949F0E6B017C0120E034E244EF51E432 +:101900000E94142987FF08C086EFC82E88E2D82ECF +:1019100084EFE82E81E4F82E20E030E040E051E44E +:10192000C701B6010E94C32A9B01AC0160E074E2CA +:1019300084E79BE40E9418296B017C010E948529A1 +:1019400070939700609396002091060130910701F3 +:101950004091080150910901C701B6010E94C32AB4 +:101960000E948529709399006093980080913C02B1 +:10197000882309F433C1C0903702D0903802E09038 +:101980003902F0903A0220E030E0A901C701B60127 +:101990000E94BF2A1816D4F580912802909129023E +:1019A0008F3F2FEF920729F00196909329028093A1 +:1019B0002802C701B6010E949F0E20E030E040E0FF +:1019C00051E40E94C32A9B01AC0160E074E284E709 +:1019D0009BE40E9418296B017C010E948529709369 +:1019E0009700609396002091060130910701409185 +:1019F000080150910901C701B6010E94C32A0E9443 +:101A00008529709399006093980008C01092970000 +:101A100010929600109299001092980060913102F5 +:101A2000709132026F5F7F4F709332026093310288 +:101A3000209196003091970080E090E0232BF1F008 +:101A4000C0919600D09197000E94B1296B017C0152 +:101A5000BE0180E090E00E94B1299B01AC01609141 +:101A600033027091340280913502909136020E94C7 +:101A7000182920E03FEF4FE757E410C00E94B1293A +:101A80006B017C0120E030EE4FEF54E460913302B3 +:101A90007091340280913502909136020E94C32ADF +:101AA0009B01AC01C701B6010E94BF2A87FD96C009 +:101AB00080912F028F5F80932F0290E0209103038B +:101AC0003091040382179307A0F080910E038823BE +:101AD00019F010922F020DC0809171008D7F8093BC +:101AE0007100809190008F738093900010923C025F +:101AF0007DC080913002C0912F02811128C0C0901A +:101B00000803D0900903E0900A03F0900B0320E053 +:101B100030E0A901C701B6010E94BF2A1816BCF423 +:101B200081E08093300210923702109238021092B6 +:101B3000390210923A02C0923302D0923402E092FB +:101B40003502F0923602C150C0932F0243C010926A +:101B500030021092290210922802E0910503F091C0 +:101B6000060348E0C49FE00DF11D1124808191819E +:101B7000A281B3818093370290933802A0933902F7 +:101B8000B0933A0220E030E040E85EE36481758182 +:101B9000868197810E94C32A6B017C0180910A0192 +:101BA000682F70E080E090E00E94B12920E030E0F2 +:101BB00048EC52E40E9418299B01AC01C701B60110 +:101BC0000E94C32A609333027093340280933502DB +:101BD00090933602109232021092310280910703E4 +:101BE00080FD04C010923C0210923B02FF91EF91E5 +:101BF000DF91CF91BF91AF919F918F917F916F9125 +:101C00005F914F913F912F91FF90EF90DF90CF9098 +:101C1000BF90AF909F908F907F906F905F904F900C +:101C20000F900FBE0F901F901895CF92DF92EF92FA +:101C3000FF92CF93DF936B017C01EA0180912A022E +:101C4000811102C00E94100A8091070380FF46C0E4 +:101C50008091790290917A0208970CF03FC08091B0 +:101C600071008D7F8093710080913C0281110E94F0 +:101C70002A0A81E080933B021092290210922802E6 +:101C800020E030E0A901C701B6010E94BF2A181662 +:101C9000DCF48091790290917A02FC01EE0FFF1F33 +:101CA000EE0FFF1FEF5AFD4FC082D182E282F38216 +:101CB000FC01EE0FFF1FEF5BFD4FD183C083019648 +:101CC00090937A0280937902809171008260809370 +:101CD000710080919000806880939000DF91CF9197 +:101CE000FF90EF90DF90CF9008958091070381706F +:101CF0000895809107038160809307030E94CD239C +:101D00000C94F803809107038E7F809307030C9453 +:101D1000CD2380917B0290E0019666E070E00E9406 +:101D2000912C80937B02089580917B0290E0019733 +:101D300066E070E00E94912C80937B0208958F9260 +:101D40009F92AF92BF92CF92DF92EF92FF920F934A +:101D50001F93CF93DF936B017C01C0912802D09138 +:101D60002902BE0180E090E00E94B1294B015C0194 +:101D7000A701960160E070E08CE594E40E941829C8 +:101D80009B01AC01C501B4010E94C32A0E948529B0 +:101D900020917B02233009F473C028F4222351F0F0 +:101DA0002130E9F02CC1243009F4A0C0253009F419 +:101DB000E0C025C180E090E0A0E0BFE38093060191 +:101DC00090930701A0930801B093090110922B0290 +:101DD00010922C0210922D0210922E0210C110921D +:101DE0002B0210922C0210922D0210922E026431BE +:101DF000710540F46A30710560F520E030E040E89C +:101E00005EE32BC0693C710508F0AAC080E090E059 +:101E10000E94B12920E030E040EA51E40E94AF285E +:101E200020E030E044E353E40E9418299B01AC0118 +:101E30000E94C32A20E030E040E05EE30E94C32A13 +:101E40009B01AC0160E070E080E09EE30E94AF285F +:101E500044C020E030E040E05FE3C701B6010E94EB +:101E6000C32A6B017C0180E090E0A0E0BEE3809398 +:101E7000060190930701A0930801B0930901BFC028 +:101E800010922B0210922C0210922D0210922E0210 +:101E90004AE0469F9001479F300D1124C90168EB2D +:101EA0007BE00E947D2CBC016C5D754077FF03C018 +:101EB000719561957109882777FD8095982F0E940B +:101EC000B3292EE333EC4EE259E30E94C32A20E00B +:101ED00030E040EC5EE30E94B0286093060170930E +:101EE0000701809308019093090189C010922B0289 +:101EF00010922C0210922D0210922E02CE018370AD +:101F00009927892BE1F0BE016170772780E090E08E +:101F10000E94B12920E030E040E05EE30E94C32A45 +:101F200020E030E040E45FE30E94B02860930601C7 +:101F30007093070180930801909309010CC080E021 +:101F400090E0A0E0BFE38093060190930701A09387 +:101F50000801B0930901C770DD27CD2B09F04FC0F0 +:101F600010920601109207011092080110920901C7 +:101F700046C010922B0210922C0210922D02109249 +:101F80002E0200E010E020E03FE3009306011093F2 +:101F9000070120930801309309016739710578F131 +:101FA00080E090E00E94B12920E030E047E153E476 +:101FB0000E94AF2820E030E04AE754E40E9418294C +:101FC00020E030E048E452E40E94C32A20E030E000 +:101FD00040EA51E40E94F5290E948029660F771F8C +:101FE000660F771FFB01EE5AFE4F2081318142813F +:101FF0005381C701B6010E94C32A6B017C01C7014E +:10200000B601DF91CF911F910F91FF90EF90DF907C +:10201000CF90BF90AF909F908F90089580918C0249 +:102020000895CF93DF9300D01F92CDB7DEB79C0108 +:1020300080911303843019F593E099833B832A83BD +:102040009093E9008FEF9091E800815095FD06C0D4 +:1020500095ED9A95F1F700008111F5CF8091E80098 +:1020600085FF0DC040E050E063E070E0CE010196D6 +:102070000E9472128091E8008E778093E8000F90A2 +:102080000F900F90DF91CF910895CF93DF9300D001 +:102090001F92CDB7DEB720911303243021F522E043 +:1020A00029839B838A8383E08093E9008FEF90915B +:1020B000E800815095FD06C095ED9A95F1F7000076 +:1020C0008111F5CF8091E80085FF0DC040E050E020 +:1020D00063E070E0CE0101960E9472128091E800E8 +:1020E0008E778093E8000F900F900F90DF91CF9143 +:1020F0000895209113032430F1F422E02093E900A5 +:102100002FEF3091E800215035FD06C035ED3A95AE +:10211000F1F700002111F5CF2091E80025FF0BC059 +:1021200040E050E065E070E00E9472128091E800AB +:102130008E778093E8000895CF93DF93EC01909120 +:102140001303943009F046C0809115018823D9F01B +:10215000809116018823B9F09093E9008FEF909158 +:10216000E800815095FD06C095E19A95F1F70000D1 +:102170008111F5CF8091E80085FF2CC040E050E050 +:1021800060E170E017C081E08093E9008FEF9091EB +:10219000E800815095FD06C095ED9A95F1F7000095 +:1021A0008111F5CF8091E80085FF14C040E050E038 +:1021B00068E070E0CE010E9472128091E8008E7794 +:1021C0008093E80080E1FE01ACE7B2E001900D925F +:1021D0008A95E1F7DF91CF910895809112038111E3 +:1021E00009C00E9407140E9464148091E200846078 +:1021F0008093E200089510921203089508950895BF +:102200000C94AB2242E061EC81E00E94811342E039 +:1022100061EC82E00E94811342E061EC83E00E9465 +:10222000811342E161EC84E00C94811380911503E9 +:10223000833009F455C030F4813071F0823009F4F4 +:102240008EC008958A3009F47AC08B3009F460C0DA +:10225000893009F09CC020C080911403813A09F0B4 +:1022600096C08091E800877F8093E80080911803F2 +:1022700090911903892B21F460E18CE792E003C06F +:1022800060E080E090E070E00E94BD128091E80084 +:102290008B778093E800089580911403813209F0D0 +:1022A00076C08091180390911903009719F0039755 +:1022B00009F06DC08091E800877F8093E8008091ED +:1022C000E80082FD05C0809113038111F8CF5FC043 +:1022D0008091F10080938C028091E8008B7753C04D +:1022E00080911403813A09F052C0809118039091B3 +:1022F0001903892B09F04BC08091E800877F8093F8 +:10230000E8008091E80080FFFCCF8091150136C085 +:10231000809114038132D9F58091180390911903AB +:10232000892BA9F58091E800877F8093E8000E94BF +:10233000B61380911603809315010C94EC1B8091C9 +:102340001403813221F58091E800877F8093E800B3 +:102350000E94B6138091170380938D020895809197 +:102360001403813AA1F48091E800877F8093E8000C +:102370008091E80080FFFCCF80918D028093F10076 +:102380008091E8008E778093E8000C94B61308954E +:1023900084B7877F84BF88E10FB6F894809360008C +:1023A000109260000FBE90E080E80FB6F894809322 +:1023B0006100909361000FBE0E9459170E9407149C +:1023C0000E9464148091E20084608093E20078941B +:1023D0000E94EA160E945B178BE091E00E940517AD +:1023E00080911303853069F40E946C22809111035F +:1023F0008823B1F30E949A22882391F30E945C12F1 +:10240000EFCF0E946317ECCF292F332723303105FC +:10241000C9F064F42130310581F02230310509F032 +:1024200043C08DE690E028EA33E042C02132310516 +:10243000F1F02232310541F137C082E190E025E12F +:1024400034E036C099278130910541F08230910502 +:1024500041F0892B49F5E4EAF3E005C0E6E7F3E053 +:1024600002C0ECE4F3E0849190E09F0121C064306D +:10247000D8F4E62FF0E0EE0FFF1FE255FE4F20816B +:10248000318189E090E014C0643070F470E0FB01A9 +:10249000EE0FFF1FEA55FE4F20813181FB01EE5503 +:1024A000FE4F808190E004C080E090E020E030E0CA +:1024B000FA0131832083089580E189BD82E189BDDD +:1024C00009B400FEFDCF8091D8008F7D8093D800A5 +:1024D0008091E00082608093E0008091E00081FDC7 +:1024E000FCCF0895CF92DF92EF92FF920F931F934C +:1024F000CF93DF93EC018B016A010E94D513811108 +:1025000033C0C114D10439F0F60180819181081BD8 +:10251000190BC80FD91FE12CF12C0115110519F168 +:102520008091E80085FD16C08091E8008E77809349 +:10253000E800C114D10449F0F60180819181E80ED0 +:10254000F91EF182E08285E00FC00E94D513882336 +:1025500021F30AC089918093F10001501109FFEF26 +:10256000EF1AFF0ADACF80E0DF91CF911F910F9130 +:10257000FF90EF90DF90CF90089520911A03309153 +:102580001B032617370748F06115710539F42091B0 +:10259000E8002E772093E80001C0B90140E0611502 +:1025A0007105A9F120911303222309F443C02530BA +:1025B00009F442C02091E80023FD40C02091E800CA +:1025C00022FD32C02091E80020FFE9CF4091F300C6 +:1025D0002091F20030E0342BFC01CF016115710530 +:1025E00059F02830310540F481918093F100615019 +:1025F00071092F5F3F4FF1CF41E02830310509F0DD +:1026000040E02091E8002E772093E800C8CF4111E8 +:10261000C9CF0AC080911303882361F0853061F02F +:102620008091E80083FD0AC08091E80082FFF2CF2C +:1026300080E0089582E0089583E0089581E00895A0 +:1026400020911A0330911B032617370748F06115B4 +:10265000710539F42091E8002E772093E80001C03D +:10266000B901FC0120E06115710591F1809113031E +:10267000882309F440C0853009F43FC08091E80008 +:1026800083FD3DC08091E80082FD2FC08091E8006D +:1026900080FFE9CF2091F3008091F20090E0922B2F +:1026A0006115710559F08830910540F4249120930B +:1026B000F1003196615071090196F2CF21E008973F +:1026C00009F020E08091E8008E778093E800CBCF7E +:1026D0002111CCCF0AC080911303882361F085308B +:1026E00061F08091E80083FD0AC08091E80082FFDC +:1026F000F2CF80E0089582E0089583E0089581E0BC +:102700000895982F973058F59093E900981739F06D +:102710007091EC002091ED005091F00003C0242F47 +:10272000762F50E021FF19C03091EB003E7F3093AF +:10273000EB003091ED003D7F3093ED003091EB00E8 +:1027400031603093EB007093EC002093ED005093D8 +:10275000F0002091EE0027FF07C09F5FD3CF8F705E +:102760008093E90081E0089580E00895809114034A +:1027700087FF11C08091E80082FD05C0809113039E +:102780008111F8CF11C08091E8008B770BC0809148 +:102790001303882349F08091E80080FFF8CF8091EF +:1027A000E8008E778093E80008952091E40030914E +:1027B000E50095E64091EC00842F817040FF22C037 +:1027C0008091E80080FD1CC080911303882391F064 +:1027D000853091F08091EB0085FD10C04091E400C0 +:1027E0005091E5004217530729F39A01915011F7D0 +:1027F00084E0089582E0089583E0089581E00895DB +:1028000080E008954091E80042FFDECF08950E94E5 +:1028100075140E947D14E0EEF0E080818160808379 +:10282000E8EDF0E080818F77808319BCA7EDB0E000 +:102830008C918E7F8C9380818F7E80831092120387 +:1028400008950F931F93CF93DF930E9475140E94F6 +:102850007D14C8EDD0E088818F7788838881806877 +:10286000888388818F7D888319BC1092130310920E +:102870000F03109211031092100300EE10E0F80104 +:1028800080818B7F808388818160888342E060E0E3 +:1028900080E00E948113E1EEF0E080818E7F8083F2 +:1028A000E2EEF0E0808181608083808188608083B7 +:1028B000F80180818E7F8083888180618883DF91A9 +:1028C000CF911F910F910895E8EDF0E080818F7E08 +:1028D0008083E7EDF0E080818160808384E082BFC7 +:1028E00081E0809312030C942114E8EDF0E08081E4 +:1028F0008E7F80831092E20008951092DA00109289 +:10290000E10008951F920F920FB60F9211242F939A +:102910003F934F935F936F937F938F939F93AF9367 +:10292000BF93EF93FF938091E10082FF0BC08091F2 +:10293000E20082FF07C08091E1008B7F8093E1007D +:102940000E94E9168091DA0080FF1FC08091D800B4 +:1029500080FF1BC08091DA008E7F8093DA00809127 +:10296000D90080FF0DC080E189BD82E189BD09B435 +:1029700000FEFDCF81E0809313030E94ED1005C09F +:1029800019BC109213030E94FB108091E10080FF9C +:1029900019C08091E20080FF15C08091E2008E7F17 +:1029A0008093E2008091E20080618093E200809158 +:1029B000D80080628093D80019BC85E0809313030F +:1029C0000E94FF108091E10084FF30C08091E200FE +:1029D00084FF2CC080E189BD82E189BD09B400FE7D +:1029E000FDCF8091D8008F7D8093D8008091E10049 +:1029F0008F7E8093E1008091E2008F7E8093E200E1 +:102A00008091E20081608093E20080910F0388232F +:102A100011F084E007C08091E30087FD02C081E0EF +:102A200001C083E0809313030E9400118091E100B4 +:102A300083FF29C08091E20083FF25C08091E100DF +:102A4000877F8093E10082E08093130310920F034D +:102A50008091E1008E7F8093E1008091E2008E7F83 +:102A60008093E2008091E20080618093E20042E086 +:102A700060E080E00E9481138091F0008860809384 +:102A8000F0000E94FE10FF91EF91BF91AF919F91D6 +:102A90008F917F916F915F914F913F912F910F9007 +:102AA0000FBE0F901F9018951F920F920FB60F92A6 +:102AB00011242F933F934F935F936F937F938F9343 +:102AC0009F93AF93BF93CF93DF93EF93FF93C09107 +:102AD000E900CF708091EC00D82FD17080FDD0E854 +:102AE0001092E9008091F000877F8093F000789445 +:102AF0000E9498151092E9008091F0008860809300 +:102B0000F000CD2BCF70C093E900FF91EF91DF91E2 +:102B1000CF91BF91AF919F918F917F916F915F9175 +:102B20004F913F912F910F900FBE0F901F901895CE +:102B30001F93CF93DF93CDB7DEB7AA970FB6F89464 +:102B4000DEBF0FBECDBFE4E1F3E088E08E0F9091D1 +:102B5000F10091938E13FBCF0E9416118091E80033 +:102B600083FF1FC18091140390911503492F50E0FA +:102B70004A30510508F015C1FA01EA5AFF4F0C948A +:102B8000A52C803881F0823809F00BC180911803A0 +:102B90008F708093E9008091EB0085FB882780F996 +:102BA0001092E90006C080911003909111039111D9 +:102BB00082609091E800977F9093E8008093F10005 +:102BC0001092F100C8C0282F2D7F09F0EAC0882399 +:102BD00019F0823061F0E5C080911603813009F070 +:102BE000E0C0933009F080E0809311032BC0809106 +:102BF0001603811127C0809118038F7009F4D1C08A +:102C00008093E9002091EB0020FF1CC0933021F459 +:102C10008091EB00806214C09091EB0090619093E2 +:102C2000EB0021E030E0A90102C0440F551F8A9556 +:102C3000E2F74093EA001092EA008091EB0088608E +:102C40008093EB001092E9008091E800877F86C0B6 +:102C50008111A7C0109116031F778091E30080783F +:102C6000812B8093E3008091E800877F8093E800C8 +:102C70000E94B6138091E80080FFFCCF8091E300B2 +:102C800080688093E300111102C082E001C083E0FC +:102C90008093130386C08058823008F082C08091F0 +:102CA0001603909117038C3D53E0950779F583E067 +:102CB0008A838AE289834FB7F894DE01139620E075 +:102CC0003EE051E2E32FF0E050935700E49120FF03 +:102CD00003C0E295EF703F5FEF708E2F90E0EA3017 +:102CE00010F0C79601C0C0968D939D932F5F24313D +:102CF00049F74FBF8091E800877F8093E8006AE240 +:102D000070E0CE0101960E94BD1214C0AE014F5F6B +:102D10005F4F609118030E940412BC01009709F4F0 +:102D200040C09091E800977F9093E80089819A8154 +:102D30000E9420138091E8008B778093E80031C0D7 +:102D4000803879F58091E800877F8093E800809152 +:102D50000F038093F1008091E8008E778093E80064 +:102D60000E94B6131EC081111CC0909116039230B0 +:102D7000C0F48091E800877F8093E80090930F0370 +:102D80000E94B61380910F03811106C08091E30069 +:102D900087FD02C081E001C084E0809313030E949C +:102DA00002118091E80083FF0AC08091E800877FCC +:102DB0008093E8008091EB0080628093EB00AA96FC +:102DC0000FB6F894DEBF0FBECDBFDF91CF911F913C +:102DD00008950895CF93809113038823A1F0C091A3 +:102DE000E900CF709091EC00892F817090FD80E810 +:102DF000C82B1092E9008091E80083FD0E9498158D +:102E0000CF70C093E900CF9108959093930280937F +:102E100092020895E0919202F0919302309721F08E +:102E20000190F081E02D099480E00895E0919202F4 +:102E3000F0919302309721F00280F381E02D099404 +:102E40000895E0919202F0919302309721F004806E +:102E5000F581E02D0994089520919002309191021E +:102E60008217930771F09093910280939002E09102 +:102E70009202F0919302309721F00680F781E02DC5 +:102E80000994089520918E0230918F028217930742 +:102E900071F090938F0280938E02E0919202F091F4 +:102EA0009302309721F00084F185E02D0994089574 +:102EB00008950C9458170E94DF220E9430090E9446 +:102EC00065230C9414285F926F927F928F929F9249 +:102ED000AF92BF92CF92DF92EF92FF920F931F9328 +:102EE000CF93DF9300D000D01F92CDB7DEB70E9402 +:102EF00075099DE9C92E92E0D92E03E010E0AA24BD +:102F0000A394B12C502E802F0E94F0094C01F601A1 +:102F1000729062906F016826792661147104A1F4A1 +:102F20000150110978F78FEF89838A831B820E94F1 +:102F3000E8228160782F9D838C8349815A816B813F +:102F40008D810E94131838C08091F20281FD0E9489 +:102F5000F9092BE030E07501022E02C0EE0CFF1CD7 +:102F60000A94E2F7C70186219721892B09F1298369 +:102F70005A828E209F2091E0892809F490E09B835B +:102F80000E94E8228160782F9D838C8349815A8139 +:102F90006B818D810E941318000F111FF801EB56F1 +:102FA000FD4F80819181E826F926F182E08204C0FC +:102FB0002150310980F6B4CF0E944C251091940223 +:102FC0000E940A171817D1F00E940A1780939402E2 +:102FD0000F900F900F900F900F90DF91CF911F9156 +:102FE0000F91FF90EF90DF90CF90BF90AF909F90A8 +:102FF0008F907F906F905F900C941A090F900F90B4 +:103000000F900F900F90DF91CF911F910F91FF9034 +:10301000EF90DF90CF90BF90AF909F908F907F9078 +:103020006F905F900895CF93DF93CDB7DEB72B9766 +:103030000FB6F894DEBF0FBECDBF4F8358876987A8 +:103040007A878B87DE01119686E0FD0111928A95C1 +:10305000E9F785E0FE01379601900D928A95E1F738 +:1030600049815A816B817C818D819E810E948A1E5B +:103070002B960FB6F894DEBF0FBECDBFDF91CF9178 +:103080000895CF93882309F4C2C0C82F823859F419 +:103090000E940A1781FDBBC089E30E9464210E943F +:1030A000312289E30CC0833879F40E940A1780FD2D +:1030B000AEC083E50E9464210E94312283E50E9414 +:1030C000A621CF910C943122843859F40E940A171A +:1030D00082FD9DC087E40E9464210E94312287E422 +:1030E000EECF8CEF8C0F813A48F48C2F0E947C2716 +:1030F00081118DC08C2F0E946421E3CF80E28C0F60 +:10310000883048F4C77081E001C0880FCA95EAF79B +:103110000E94EA21D6CF8BE58C0F833078F4C53A34 +:1031200029F0C63A31F083E890E005C081E890E0EC +:1031300002C082E890E0CF910C942C1788E58C0FA8 +:10314000833108F064C0C83A39F1C93A41F1CA3A4A +:1031500049F1CB3A51F1CC3A59F1CD3A61F1C03B4A +:1031600069F1CE3A71F1CF3A79F1C13B81F1C23BBD +:1031700089F1C33B91F1C43B99F1C53BA1F1C63B39 +:10318000A9F1C73BB1F1C83BB9F1C93BC1F1CA3B99 +:10319000C9F180E090E038C082EE90E035C089EE61 +:1031A00090E032C08AEE90E02FC085EB90E02CC01A +:1031B00086EB90E029C087EB90E026C08CEC90E095 +:1031C00023C08DEC90E020C083E891E01DC08AE828 +:1031D00091E01AC082E991E017C084E991E014C03F +:1031E00081E292E011C083E292E00EC084E292E0BC +:1031F0000BC085E292E008C086E292E005C087E25B +:1032000092E002C08AE292E0CF910C944217CF91F3 +:103210000895882309F44BC0823859F40E940A1794 +:1032200081FF45C089E30E9464210E94312289E325 +:103230000CC0833871F40E940A1780FF38C083E500 +:103240000E9464210E94312283E50E94A6210C94F1 +:103250003122843859F40E940A1782FF28C087E47B +:103260000E9464210E94312287E4EFCF9CEF980FE7 +:10327000913A58F390E2980F983050F4877091E0AB +:1032800001C0990F8A95EAF7892F0E94F021DFCFBC +:103290009BE5980F933020F480E090E00C942C177D +:1032A000885A833120F480E090E00C94421708950E +:1032B000882321F00E94EA210C943122089588236A +:1032C00021F00E94F0210C94312208957F928F9278 +:1032D0009F92AF92BF92CF92DF92EF92FF920F93A5 +:1032E0001F93CF93DF931F92CDB7DEB77C01C62E1D +:1032F000772EFC01058102950F70128111110E9439 +:1033000007220E945D21882379F0112369F080E271 +:103310008C0D883048F082E00E9446210E945D2199 +:1033200091E0D82ED92601C0D12CE72DE295EF707F +:10333000F0E0E05AFF4F0C94A52C872D807F072DDD +:103340000F70882311F00295007F112389F000236C +:1033500009F499C180E28C0D883020F4802F0E94FE +:10336000EA2103C0802F0E94FA210E9431228BC1E2 +:103370008C2D0E940919002309F4C3C180E28C0D31 +:10338000883020F4802F0E94F02103C0802F0E94FB +:1033900000220E943122B5C1872D807F972D9F701A +:1033A000803211F4892F03C0892F8295807FCC2031 +:1033B00021F0F1E0CF16A1F01DC0112339F0002358 +:1033C00019F1013009F50E941A229BC1002319F05E +:1033D000013009F496C189830E941D22898110C1A0 +:1033E000112321F0063008F08CC10EC0053008F022 +:1033F00088C106C1112359F0002331F0F7019581EE +:1034000090FF41C19F7095830E9458197AC1002393 +:1034100009F4F6C03EC1872D86958695837090E0AD +:10342000009719F0019761F06CC1112321F08C2DE8 +:10343000972D937002C080E090E00E942C1761C12C +:10344000112321F08C2D972D937002C080E090E025 +:103450000E94421756C18C2D112319F00E9454244A +:1034600002C00E94BC240E9441254BC1872D83705D +:1034700009F052C0111145C18C2D82958695877037 +:10348000880F880F9C2D9F70892E912CA12CB12C18 +:10349000082E04C0880C991CAA1CBB1C0A94D2F7E5 +:1034A000C4FE14C00FE010E020E030E0B901A80134 +:1034B00004C0440F551F661F771F8A95D2F7CB01B2 +:1034C000BA01609570958095909503C060E070E0BA +:1034D000CB01272D26952695237030E0223031052B +:1034E00069F02330310589F0682979298A299B29D7 +:1034F0002130310571F00E94D21F03C1682979295A +:103500008A299B290E94EE1FFCC00E94D21FC50180 +:10351000B4010E94B61FF5C0112319F0872D8170E8 +:1035200001C08695882309F4ECC08C2D8295869580 +:103530008770880F880F9C2D9F70892E912CA12C4D +:10354000B12C082E04C0880C991CAA1CBB1C0A9420 +:10355000D2F7C4FE14C00FE010E020E030E0B90163 +:10356000A80104C0440F551F661F771F8A95D2F724 +:10357000CB01BA01609570958095909503C060E08D +:1035800070E0CB01272D269526952370422F50E021 +:103590004230510569F04330510589F06829792995 +:1035A0008A299B294130510571F00E94AC20A9C0A5 +:1035B000682979298A299B290E94C820A2C00E94D3 +:1035C000AC20C501B4010E9490209BC08C2D90E0DE +:1035D000FC01E05EF109E531F10508F050C0E05969 +:1035E000FF4F0C94A52C0C2D0F70872D8F7111237C +:1035F00021F00E942920802F07CF0E944A20802F8F +:103600000E945F197EC0112341F0053008F079C097 +:10361000872D8F710E946F2074C0063008F071C032 +:10362000F7CF112339F0872D8F710E94292069C0AF +:103630001123C9F3872D8F710E944A2062C0112384 +:1036400029F0872D8F710E9414205BC00E940A20F0 +:1036500058C0112351F0172D1F71812F0E9429206E +:1036600063E0812F0E943D214CC081E00E944621F1 +:10367000023008F446C082E00E94462142C0112375 +:1036800031F0002381F28C2D0E9441183AC00023B2 +:1036900089F28C2D0E94091934C0472D4F706C2D72 +:1036A000C7010E9485030E942E1F2BC0111129C043 +:1036B000472D4F7050E042305105B9F04CF44115A0 +:1036C000510581F041305105E1F40E943C2819C0B8 +:1036D0004330510569F04430510599F48C2D0E9416 +:1036E0008E280FC00E9425280CC00E94582809C0AF +:1036F0000E946B2806C0472D4F706C2DC7010E9499 +:10370000FB05DD20F9F00E94392180FD1BC0F70187 +:1037100012820E9433210E942920C7010E94B11BFE +:103720000E9433210F90DF91CF911F910F91FF9055 +:10373000EF90DF90CF90BF90AF909F908F907F9051 +:103740000C944A200F90DF91CF911F910F91FF9021 +:10375000EF90DF90CF90BF90AF909F908F907F9031 +:1037600008950F931F93CF93DF93EC018881998184 +:103770002B813C81232BB9F09F3F11F48F3F99F0AF +:10378000CE010E94FA03882371F0688179818A81D1 +:103790000E942F218C010E94E4200E94AB1FB801DF +:1037A000CE010E946619DF91CF911F910F9108956C +:1037B0000E9407220E9417220E94DC210E943122CF +:1037C0000E94F2250E94412580E090E00E942C1783 +:1037D00080E090E00C9442170E94F7210C94D81BD3 +:1037E0000E942421292F22952F7030E02C303105A2 +:1037F0004CF42A3031056CF4225031092230310565 +:10380000A8F407C02C30310569F02F30310551F094 +:103810000DC0803F69F018F4803E40F409C0843F39 +:1038200029F406C093FB882780F9089580E0089565 +:1038300081E00895CF93DF9300D000D01F92CDB7E1 +:10384000DEB70F900F900F900F900F90DF91CF91F8 +:103850000895CF93DF9300D000D000D0CDB7DEB76E +:1038600026960FB6F894DEBF0FBECDBFDF91CF9185 +:1038700008951F93CF93DF93C0919D0216E080912E +:103880009E02C81799F0D0E01C9FF0011D9FF00D1B +:103890001124E156FD4F4081518162817381848101 +:1038A00095810E94291C2196C770E9CFDF91CF91A5 +:1038B0001F9108954091CF025091D0026091D102A2 +:1038C0007091D2028091D3029091D4020C94291C61 +:1038D0008091D40282958F7009F054C08091D102FA +:1038E000882309F44FC080919D02A0919E026091AF +:1038F000CF027091D0024091D2025091D302B6E033 +:103900008A1709F43FC090E041155105C1F17F3F8E +:1039100011F46F3FA1F1B89FF001B99FF00D112490 +:10392000E156FD4F218172132AC02081621327C006 +:103930002281211124C0238134812417350710F4FA +:1039400021503109241B350B283C3105C0F420914E +:10395000D4022F7020612093D40226E0289FF0012A +:10396000299FF00D1124EC55FD4F80818F708061EF +:1039700080838FEC92E00E94B11B0C94391C01965D +:103980008770BECF0895CF92DF92EF92FF920F9390 +:103990001F93CF93DF93CDB7DEB762970FB6F8943E +:1039A000DEBF0FBECDBF8C0185E0F801DE011D96A4 +:1039B00001900D928A95E1F7D8014C9111965C9196 +:1039C000119712966C9112971396CD90DC901497E4 +:1039D0003091CF027091D0028091D2029091D302A7 +:1039E000009709F46BC17F3F19F43F3F09F466C1AA +:1039F000E090D102EE2009F4C0C02091D402C81694 +:103A0000D90628F0F601E81BF90BCF0104C0809518 +:103A100090958C0D9D1DFF24F394883C910578F0C2 +:103A2000F12C207F09F0C6C07C2DD98AC88A8989EB +:103A30000E941A1C8FEC92E00E94B11BB1C0822F31 +:103A4000807F09F046C0751314C0341312C0611191 +:103A500010C02F7020612093D4020E945A1C8FEC5A +:103A600092E00E94B11B8091D402D80115968C93EC +:103A70002EC0CD2819F15F3F11F44F3FF9F0F62E1B +:103A800061111CC080919D0220919E0236E0821738 +:103A900009F45AC090E0389FF001399FF00D1124CD +:103AA000E156FD4F7181571306C07081471303C063 +:103AB0007281711103C001968770E9CFF62E6623DB +:103AC00009F418C18091D40281608093D402F12C52 +:103AD00011C1751308C0341306C0611104C0809170 +:103AE000D402D801C3C04D875E878D859E856A8BC1 +:103AF0000E94F01B6A898823E1F16623D1F12091AD +:103B0000D402822F82958F7090E0029774F080919A +:103B1000CF029091D00298878F831986DB86CA8660 +:103B20002C87CE0107960E94B11B86E0F801AFEC0E +:103B3000B2E001900D928A95E1F70E94681C0E9404 +:103B40005A1CFF24F394D6C04D875E878D859E85D1 +:103B50000E942421292F22952F7030E02230310538 +:103B60000CF0BCC09F7009F0B6C0805E883008F4CD +:103B7000C1C0C8010E94B11BE4CFC816D90608F421 +:103B800053C0F601E81BF90BCF01883C910508F4FE +:103B900050C0F12C7C2DD98AC88A89890E941A1CB0 +:103BA000EFECF2E086E0DF011D928A95E9F70E94D2 +:103BB0005A1CA0C0751314C0341312C0611110C078 +:103BC0008091D402F8018583C8010E94B11B86E070 +:103BD000EFECF2E0DF011D928A95E9F7FE2C8AC036 +:103BE0004D875E878D859E856A8B0E94F01B6A8952 +:103BF000882309F4BECF662309F4BBCF2091D402F9 +:103C0000822F82958F7090E002970CF48ECF809176 +:103C1000CF029091D0029A8389831B82DD82CC826D +:103C20002E83CE0101967FCF809590958C0D9D1DA2 +:103C3000ACCFF62E662309F49CCF75132EC0341337 +:103C40002CC02091D40220FD1FC0822F82958F703E +:103C5000D9F0D80115962C9315978F3049F08F5FC6 +:103C6000982F9295907F822F8F70892B15968C9329 +:103C7000C8010E94B11B86E0F801AFECB2E00190F0 +:103C80000D928A95E1F793CF86E0F801AFECB2E0B0 +:103C900001900D928A95E1F72DC04D875E878D8545 +:103CA0009E850E94F01B811140CF8091D4028160DB +:103CB0008093D402C8010E94B11B1CC0662309F482 +:103CC00058CF4D875E878D859E850E94F01B882387 +:103CD00009F44FCF2ACF811148CF0CC024303105D1 +:103CE0000CF047CF9F7009F440CFF8019581907F89 +:103CF00009F03BCF8F2D62960FB6F894DEBF0FBE52 +:103D0000CDBFDF91CF911F910F91FF90EF90DF908A +:103D1000CF9008951F93CF93DF93CDB7DEB72C9745 +:103D20000FB6F894DEBF0FBECDBF4F8358876987AB +:103D30007A878B879C87CE0107960E94C31C8823B5 +:103D400069F08F8198852A853B85232BF1F19F3F70 +:103D500009F063C08F3F09F060C037C086E0FE0104 +:103D60003796DE01119601900D928A95E1F76F81E9 +:103D70007885EA85FB85309741F17F3F11F46F3FED +:103D800021F120919E0230E0C901019687709927A8 +:103D900040919D0250E08417950709F447C069835C +:103DA0007A83FD83EC8396E0929FD001939FB00DC0 +:103DB0001124A156BD4FFE01319601900D929A95A6 +:103DC000E1F780939E020E94391C16E080919D02CB +:103DD00090919E028917C1F1189FC001112481564C +:103DE0009D4F0E94C31C882379F1E0919D021E9F84 +:103DF000F0011124E156FD4F4081518162817381B0 +:103E0000848195810E94291C80919D0290E00196F9 +:103E10008770992780939D02D9CF4F8158856985F6 +:103E20007A858B859C850E94291CCFCF0E94EC1B34 +:103E300010929E0210929D02EFECF2E086E0DF010C +:103E40001D928A95E9F7C1CF2C960FB6F894DEBF84 +:103E50000FBECDBFDF91CF911F910895EF92FF92DA +:103E60000F931F93CF93DF938C01009709F46CC0DD +:103E7000F12CEE24E394E8012196F8018491843733 +:103E800040F4843008F051C0813081F0823019F163 +:103E90005BC0853709F444C0A8F19CE7980F9037C0 +:103EA00008F052C08F770E94091941C00E5F1F4F62 +:103EB000FE01C49180E28C0F883048F4C7708E2DCB +:103EC00001C0880FCA95EAF70E940A2214C08C2FFD +:103ED0000E9441182DC00E5F1F4FFE01C49180E269 +:103EE0008C0F883058F4C7708E2D01C0880FCA958A +:103EF000EAF70E9410220E9431221AC08C2F0E94E1 +:103F0000091916C00E5F1F4FFE01C491CC2381F02A +:103F10008FE99FE00197F1F700C00000C150F6CF94 +:103F20000E5F1F4FFE01F49003C00E9441188E01E6 +:103F30008F2D882309F49FCFEFE9FFE03197F1F748 +:103F400000C000008150F5CFDF91CF911F910F91FC +:103F5000FF90EF90089508956093D9027093DA026C +:103F60008093DB029093DC020C94D81B0F931F9379 +:103F70000091D9021091DA022091DB023091DC022B +:103F8000DC01CB01802B912BA22BB32B8093D90288 +:103F90009093DA02A093DB02B093DC021F910F91A1 +:103FA0000C94D81B0F931F930091D9021091DA0241 +:103FB0002091DB023091DC02DC01CB0180239123D4 +:103FC000A223B3238093D9029093DA02A093DB0259 +:103FD000B093DC021F910F910C94D81B0F931F9389 +:103FE0000091D9021091DA022091DB023091DC02BB +:103FF000DC01CB0180279127A227B3278093D90228 +:104000009093DA02A093DB02B093DC021F910F9130 +:104010000C94D81B1092D5021092D6021092D7029F +:104020001092D8020C94D81B41E050E060E070E0A0 +:1040300004C0440F551F661F771F8A95D2F740931F +:10404000D5025093D6026093D7027093D8020C9495 +:10405000D81B41E050E060E070E004C0440F551F01 +:10406000661F771F8A95D2F78091D5029091D6026C +:10407000A091D702B091D802482B592B6A2B7B2BE9 +:104080004093D5025093D6026093D7027093D80222 +:104090000C94D81B41E050E060E070E004C0440F95 +:1040A000551F661F771F8A95D2F7409550956095EA +:1040B00070958091D5029091D602A091D702B091CF +:1040C000D802482359236A237B234093D502509377 +:1040D000D6026093D7027093D8020C94D81B41E0AB +:1040E00050E060E070E004C0440F551F661F771F6A +:1040F0008A95D2F78091D5029091D602A091D702ED +:10410000B091D802482759276A277B274093D502C8 +:104110005093D6026093D7027093D8020C94D81BA8 +:104120000F931F930091D5021091D6022091D702D0 +:104130003091D802DC01CB01802B912BA22BB32B29 +:104140008093D5029093D602A093D702B093D80261 +:104150001F910F910C94D81B0F931F930091D502C0 +:104160001091D6022091D7023091D802DC01CB0108 +:1041700080239123A223B3238093D5029093D60268 +:10418000A093D702B093D8021F910F910C94D81B23 +:104190000F931F930091D5021091D6022091D70260 +:1041A0003091D802DC01CB0180279127A227B327C9 +:1041B0008093D5029093D602A093D702B093D802F1 +:1041C0001F910F910C94D81B0895CF92DF92EF921C +:1041D000FF920F931F93CF93DF938C01C090D9026E +:1041E000D090DA02E090DB02F090DC028091D50200 +:1041F0009091D602A091D702B091D802C82AD92AAC +:10420000EA2AFB2ACFE1D0E0D701C6010C2E04C078 +:10421000B695A795979587950A94D2F780FF06C023 +:10422000B8018C2F0E948008019721F4219760F734 +:1042300080E001C08C2FDF91CF911F910F91FF90F3 +:10424000EF90DF90CF900895CF93DF93EC010E9421 +:10425000E520BE010E948008DF91CF910895CB0137 +:104260000E94242108958091DD028595859585958C +:1042700008958091DD028770089598E0899F9001EC +:104280001124262B2093DD020C9429202091DD029D +:10429000809582238093DD02982F977069F430E037 +:1042A000482F552747FD50952417350729F0859548 +:1042B000859585950C944A2008959091DD0297701C +:1042C00081E009F480E0089590911501992321F08F +:1042D00090911601911109C0209117013091180198 +:1042E000F90132969FEF40E01FC0982F9695969562 +:1042F00096959F3050F5E0911701F0911801E90F64 +:10430000F11D877021E030E0A90102C0440F551F64 +:104310008A95E2F7CA019181892B818308959F3F95 +:1043200039F04F5F4E3041F051915813F8CF0DC026 +:104330005111F7CF942FF5CF9F3F39F0F901E90FD5 +:10434000F11D97FDFA9582830895089590911501C6 +:10435000992321F090911601911109C02091170124 +:1043600030911801F9013296205F3F4F1FC0982FFE +:104370009695969596959F30F0F4E0911701F091FF +:104380001801E90FF11D877021E030E0A90102C09A +:10439000440F551F8A95E2F7CA01809591818923C0 +:1043A000818308953196E217F30729F090819813DD +:1043B000F9CF1082F7CF089581E090E0E0911701E6 +:1043C000F0911801E80FF91F1082019680319105D4 +:1043D000A9F708959091F102892B8093F102089535 +:1043E00080959091F10289238093F10208951092B3 +:1043F000F10208959091F002892B8093F0020895C4 +:1044000080959091F00289238093F0020895109294 +:10441000F00208959091EF02892B8093EF020895A6 +:1044200080959091EF0289238093EF020895109276 +:10443000EF0208958093DE0208951092DE0208953F +:104440008091170190911801FC0131969C01205F29 +:104450003F4F80E0919191118F5FE217F307D1F701 +:104460000895E0911701F09118018091F102808385 +:10447000E0911701F091180190818091F002892B51 +:104480008083E0911701F091180190818091EF02F3 +:10449000892B80838091DE02882361F0E0911701EF +:1044A000F09118019081892B80830E942022811134 +:1044B0001092DE0280911701909118010C9416174A +:1044C00020E0009739F0AC01415051098423952335 +:1044D0002F5FF7CF822F089580911303843039F135 +:1044E0001092F30220E488E190E00FB6F894A895CA +:1044F000809360000FBE2093600080E00E94EC0279 +:1045000080E00E941A0983B7817F846083BF83B7EC +:10451000816083BF7894889583B78E7F83BF88E15D +:104520000FB6F89480936000109260000FBE08955B +:104530000895089580E00E94EC020E9498220E9453 +:1045400075090E9499220E94FA0991E0811101C027 +:1045500090E0892F08950E94EC1B80E00E94EC02FD +:104560000E9414280E940A170C941A091F920F9295 +:104570000FB60F9211248F939F93AF93BF938091A7 +:10458000F302811113C08091F4029091F502A09181 +:10459000F602B091F7024196A11DB11D8093F4027D +:1045A0009093F502A093F602B093F702BF91AF91FA +:1045B0009F918F910F900FBE0F901F90189582E0E2 +:1045C00084BD93E095BD9AEF97BD80936E000895EA +:1045D0002FB7F8948091F4029091F502A091F60221 +:1045E000B091F7022FBF0895CF92DF92EF92FF9222 +:1045F0000F931F932FB7F8944091F4025091F50256 +:104600006091F6027091F7022FBF6A017B01EE24E0 +:10461000FF248C0120E030E0C016D106E206F3064C +:1046200010F4415051099A01281B390BC9011F91FF +:104630000F91FF90EF90DF90CF9008951F920F920F +:104640000FB60F9211248F939F93AF93BF938091D6 +:10465000F4029091F502A091F602B091F702019652 +:10466000A11DB11D8093F4029093F502A093F60270 +:10467000B093F702BF91AF919F918F910F900FBEB2 +:104680000F901F9018950E940714F8942FEF87EA57 +:1046900091E6215080409040E1F700C0000087E0A3 +:1046A00090EBDC0180931E0390931F03A0932003E3 +:1046B000B09321039CE088E10FB6F894A89580930D +:1046C00060000FBE90936000FFCF0E94A423811171 +:1046D00002C00E9480230E94AF238093F2020E94B6 +:1046E000B72380931C0387FB882780F980931601EA +:1046F0000E94B323682F70E080E090E00C94AC1F20 +:104700006DEE7EEF80E090E00E94CB2C60E082E0D6 +:1047100090E00E94B92C60E083E090E00E94B92C08 +:1047200060E084E090E00E94B92C60E085E090E0D9 +:104730000E94B92C60E086E090E00E94B92C6FEFF7 +:1047400087E090E00C94B92C80E090E00E94B32CBC +:1047500021E08D3E9E4F09F020E0822F089582E0F7 +:1047600090E00C94AB2C83E090E00C94AB2C84E0B4 +:1047700090E00C94AB2C682F84E090E00C94B92C62 +:1047800086E090E00C94AB2C682F86E090E00C94CF +:10479000B92C87E090E00C94AB2C682F87E090E078 +:1047A0000C94B92C8091FA0280FF0BC060911C011F +:1047B00085E0689FB001112475956795759567959B +:1047C0002BC081FF09C060911C0185E0689FB0018A +:1047D00011247595679520C082FF07C060911C0168 +:1047E00085E0689FB001112417C09091FB029923C6 +:1047F000D1F060911B01961788F720911C0185E08C +:10480000289F90011124929FA001939F500D112485 +:1048100070E0CA010E94912C6038710540F4611566 +:10482000710539F002C065E070E0862F08958FE7CA +:10483000089581E008958091FA0280FF08C0609198 +:104840001A0170E0759567957595679521C081FF90 +:1048500006C060911A0170E07595679519C082FFD6 +:1048600004C060911A0170E010C09091FB0299237E +:10487000C1F0609119019617A0F780911A01899FE4 +:10488000C001112470E00E94912C6038710528F459 +:104890006115710521F0862F08958FE7089581E055 +:1048A000089561E070E0F4CF803F21F40E94D223AC +:1048B000819504C0813F29F40E94D2238093FE0297 +:1048C0000895823F21F40E94D223819504C0833F42 +:1048D00029F40E94D2238093FD020895893F19F4A0 +:1048E0000E941B2405C08A3F31F40E941B2481953D +:1048F0008093FF0208958B3F21F40E941B24819531 +:1049000004C08C3F29F40E941B2480930003089567 +:10491000843F21F48091FC02816017C0853F21F41F +:104920008091FC02826011C0863F21F48091FC02DC +:1049300084600BC0873F21F48091FC02886005C031 +:10494000883F31F48091FC0280618093FC020895DD +:104950008D3F21F48091FA0281600BC08E3F21F4DB +:104960008091FA02826005C08F3F29F48091FA029B +:1049700084608093FA020895803F39F48091FE02AA +:1049800087FF6CC01092FE0269C0813F29F48091BC +:10499000FE021816BCF362C09091FD02823F29F41A +:1049A00097FF5CC01092FD0259C0833F19F419169D +:1049B000CCF354C0893F41F48091FF0218160CF0EB +:1049C0004DC01092FF024AC08A3F29F48091FF0235 +:1049D00087FF44C0F6CF8B3F39F48091000387FFF7 +:1049E0003DC0109200033AC08C3F29F4809100032F +:1049F0001816BCF333C0843F21F48091FC028E7FF3 +:104A000017C0853F21F48091FC028D7F11C0863F45 +:104A100021F48091FC028B7F0BC0873F21F48091B1 +:104A2000FC02877F05C0883F31F48091FC028F7EB5 +:104A30008093FC0213C08D3F21F48091FA028E7F97 +:104A40000BC08E3F21F48091FA028D7F05C08F3F0D +:104A500029F48091FA028B7F8093FA028091FD0203 +:104A600081110EC08091FE0281110AC08091FF0267 +:104A7000811106C080910003811102C01092FB02D7 +:104A800008958CEF92E00E9421170E94E8229093F3 +:104A9000F9028093F80208951F93CF93DF938091DA +:104AA000F8029091F9020E94F422AC019091FB026D +:104AB000992321F020911D0130E006C020911E01B4 +:104AC0008AE0289F900111244217530708F486C0FA +:104AD0008091FD02C091FE02D091FF02109100036F +:104AE000811107C0C11176C0D11174C0111172C0FB +:104AF00075C09F3F19F09F5F9093FB02181624F436 +:104B00000E94D2238093FD028091FD0287FF05C0A1 +:104B10000E94D22381958093FD021C1624F40E94EA +:104B2000D2238093FE028091FE0287FF05C00E947F +:104B3000D22381958093FE026091FD02662339F1B4 +:104B4000C091FE02CC2319F1772767FD7095872F5E +:104B5000972F0E94B32923E333E343E35FE30E94EB +:104B6000C32A0E9480296093FD026C2F772767FD7E +:104B70007095872F972F0E94B32923E333E343E3F4 +:104B80005FE30E94C32A0E9480296093FE021D16E3 +:104B900024F40E941B248093FF028091FF0287FF70 +:104BA00005C00E941B2481958093FF02111624F4F6 +:104BB0000E941B24809300038091000387FF05C09F +:104BC0000E941B24819580930003DF91CF911F9158 +:104BD0000C9441259F3F09F08ECF96CFDF91CF9166 +:104BE0001F910895ECEFF2E085E0DF011D928A95B8 +:104BF000E9F71092FB021092FA020895833081F1D6 +:104C000028F4813059F08230D1F00895853009F4CC +:104C100049C0B8F1863009F456C0089580911E014C +:104C2000262F30E0280F311D2F3F310524F4680F67 +:104C300060931E0108958FEF80931E010895809167 +:104C40001D01262F30E0280F311D2F3F310524F4A0 +:104C5000680F60931D0108958FEF80931D010895E3 +:104C600080911C01262F30E0280F311D2F3F310588 +:104C700024F4680F60931C0108958FEF80931C014A +:104C8000089580911B01262F30E0280F311D2F3F02 +:104C9000310524F4680F60931B0108958FEF809312 +:104CA0001B01089580911A01262F30E0280F311D35 +:104CB0002F3F310524F4680F60931A0108958FEF98 +:104CC00080931A01089580911901262F30E0280F52 +:104CD000311D2F3F310524F4680F609319010895A9 +:104CE0008FEF809319010895833011F128F48130FA +:104CF00049F0823091F00895853081F120F18630BD +:104D0000C1F1089580911E01681720F4861B8093DD +:104D10001E01089510921E01089580911D016817CB +:104D200020F4861B80931D01089510921D010895A3 +:104D300080911C01681720F4861B80931C01089544 +:104D400010921C01089580911B01681720F4861BA6 +:104D500080931B01089510921B01089580911A0100 +:104D6000681720F4861B80931A01089510921A0187 +:104D7000089580911901681720F4861B809319010A +:104D800008951092190108950F931F93873208F028 +:104D900048C08E3108F08DC0803109F477C008F525 +:104DA000873009F461C068F4863009F09DC08091B5 +:104DB000F202817F8E7F8093F20281E08093020372 +:104DC00094C08B3009F489C08E3009F08DC0809179 +:104DD000F20282FB222720F991E0922790FB82F9D0 +:104DE0005EC0863109F479C060F4813109F07CC07D +:104DF0000E94EC1B9091160181E089278093160197 +:104E00006CC0893109F469C08B3109F06DC08091A3 +:104E1000F20281FB222720F991E0922790FB81F991 +:104E20003EC0883309F459C050F4893209F457C0A0 +:104E3000853309F454C0873209F451C055C0833416 +:104E400009F44DC028F48A3308F44EC0895332C0A7 +:104E5000883409F049C00E94EC1B0E942A0A0E9473 +:104E6000F1030E94432339C09091F202892F80956B +:104E7000817080FB90F929F0966098609093F2021F +:104E800034C0997F977F9093F20227C08091F202FD +:104E900083FB222720F991E0922790FB83F98093EE +:104EA000F2029923D1F08091F20281608093F202A4 +:104EB00014C08D5141E050E060E070E08A019B0138 +:104EC00004C0000F111F221F331F8A95D2F7C9019A +:104ED000B8010E94AC1F0E94EC1B81E006C061E09B +:104EE00070E080E090E0F5CF80E01F910F91089591 +:104EF00080E0089580E00895CF93C82F8091020349 +:104F0000813069F018F08230C9F184C0E091170156 +:104F1000F09118018081823209F07EC007C0E091D3 +:104F20001701F09118018081823261F48C2F0E9468 +:104F30007827811104C08C2F0E94C4261DC081E0F7 +:104F400090E01AC08C2F0E947A27811114C0C431BE +:104F500079F048F4CB3079F0C03109F061C082E0DB +:104F60008093020308C0C93219F0C83321F058C039 +:104F70001092020355C081E0817054C0C93291F192 +:104F800020F5C43179F1B0F4C73009F047C08EE1A3 +:104F900080931E0182E380931D018AE080931C01AF +:104FA00084E180931B0188E080931A0188E280935A +:104FB000190134C0CE51C63088F5EC2FF0E0EA5428 +:104FC000FE4F80818093010329C0CE34E9F020F4A4 +:104FD000CB3421F56AE013C0C13579F0C235F1F464 +:104FE00061E00DC080910103882319F01092010344 +:104FF00015C081E08093020315C061E006C0809176 +:1050000001030E94FE250AC06AE0809101030E940C +:10501000742604C01092020380E004C081E002C044 +:1050200080E0AACFCF9108950E94A423811102C0ED +:105030000E9480230E94C02380931D0380FF02C032 +:10504000869501C080E00C94EC0280911D03982F9E +:105050009695292F30E0233031054CF49F5F990F4E +:105060008170892B816080931D030E94C4238091ED +:105070001D0386950C94EC0280911D03982F969544 +:1050800091F09158990F8170892B80931D038E7F29 +:1050900091E009F490E080911D0390FB80F98093EA +:1050A0001D030E94C42380911D0386950C94EC027D +:1050B00080911D03982F909590FB80F980931D039C +:1050C0000E94C42380911D0380FF02C0869501C009 +:1050D00080E00C94EC0290911D03892F86958F5FE0 +:1050E0008F779170843028F4880F892B80931D036B +:1050F00002C090931D0380911D038E7F91E009F4FF +:1051000090E080911D0390FB80F980931D030E9425 +:10511000C42380911D0386950C94EC0220911D03FD +:10512000922F96958927982F990F822F8170892B1E +:1051300080931D038E7F91E009F490E080911D0320 +:1051400090FB80F980931D030E94C42380911D036E +:1051500086950C94EC0280911D0386950895505815 +:10516000BB27AA270ED0D1C1C2D130F0C7D120F0C1 +:1051700031F49F3F11F41EF4B7C10EF4E095E7FB44 +:105180009FC1E92FD3D180F3BA1762077307840751 +:10519000950718F071F49EF5EBC10EF4E0950B2E17 +:1051A000BA2FA02D0B01B90190010C01CA01A00179 +:1051B0001124FF27591B99F0593F50F4503E68F1D4 +:1051C0001A16F040A22F232F342F4427585FF3CF15 +:1051D000469537952795A795F0405395C9F77EF4E6 +:1051E0001F16BA0B620B730B840BBAF09150A1F02F +:1051F000FF0FBB1F661F771F881FC2F70EC0BA0FB5 +:10520000621F731F841F48F4879577956795B7953C +:10521000F7959E3F08F0B3CF9395880F08F0992734 +:10522000EE0F97958795089527D108F481E00895AA +:105230000CD06BC163D140F05AD130F021F45F3F04 +:1052400019F03EC1511195C14FC170D198F3992306 +:10525000C9F35523B1F3951B550BBB27AA2762173A +:105260007307840738F09F5F5F4F220F331F441F7F +:10527000AA1FA9F333D00E2E3AF0E0E830D09150B7 +:105280005040E695001CCAF729D0FE2F27D0660FA4 +:10529000771F881FBB1F261737074807AB07B0E8E3 +:1052A00009F0BB0B802DBF01FF2793585F4F2AF0F9 +:1052B0009E3F510568F004C15CC15F3FECF3983E2E +:1052C000DCF3869577956795B795F7959F5FC9F756 +:1052D000880F911D9695879597F90895E1E0660FDF +:1052E000771F881FBB1F621773078407BA0720F058 +:1052F000621B730B840BBA0BEE1F88F7E0950895C1 +:1053000004D06894B11135C1089518D188F09F5721 +:1053100090F0B92F9927B751A0F0D1F0660F771F01 +:10532000881F991F1AF0BA95C9F712C0B13081F0E1 +:105330001FD1B1E008951CC1672F782F8827B85F6F +:1053400039F0B93FCCF3869577956795B395D9F742 +:105350003EF490958095709561957F4F8F4F9F4F4C +:105360000895E89409C097FB3EF490958095709558 +:1053700061957F4F8F4F9F4F9923A9F0F92F96E9A1 +:10538000BB279395F695879577956795B795F11116 +:10539000F8CFFAF4BB0F11F460FF1BC06F5F7F4FB3 +:1053A0008F4F9F4F16C0882311F096E911C07723C5 +:1053B00021F09EE8872F762F05C0662371F096E8CE +:1053C000862F70E060E02AF09A95660F771F881F9D +:1053D000DAF7880F9695879597F9089588D018F091 +:1053E00011F08CD038F480C0C4C0E92F9FD0B0F346 +:1053F0005523C9F3E7FB6217730784079507A8F1E4 +:1054000099F3E92FFF2788232AF03197660F771F3A +:10541000881FDAF7952F5527442332F091505040DA +:10542000220F331F441FD2F7BB27E91BF50B621B6A +:10543000730B840BB109C1F222F4620F731F841F36 +:10544000B11D31972AF0660F771F881FBB1FEFCF62 +:10545000915050405AF041F0882332F0660F771F88 +:10546000881F91505040C1F7939530C0869577952D +:1054700067959F5FD9F7F8CF990F0008550FAA0BD2 +:10548000E0E8FEEF16161706E807F907C0F0121657 +:105490001306E407F50798F0621B730B840B950B5A +:1054A00039F40A2661F0232B242B252B21F40895AF +:1054B0000A2609F4A140A6958FEF811D811D08954C +:1054C00097F99F6780E870E060E008959F3F31F0B2 +:1054D000915020F4879577956795B795880F911D22 +:1054E0009695879597F908959FEF80EC089500248D +:1054F0000A941616170618060906089500240A9439 +:1055000012161306140605060895092E0394000CBE +:1055100011F4882352F0BB0F40F4BF2B11F460FF4D +:1055200004C06F5F7F4F8F4F9F4F089557FD905876 +:10553000440F551F59F05F3F71F04795880F97FB57 +:10554000991F61F09F3F79F0879508951216130611 +:105550001406551FF2CF4695F1DF08C01616170640 +:105560001806991FF1CF8695710561050894089575 +:10557000E894BB2766277727CB0197F908957CDF4E +:1055800008F48FEF08950BD0C0CFB1DF28F0B6DF5D +:1055900018F0952309F094CFA7CF1124EACFC6DFE6 +:1055A000A0F3959FD1F3950F50E0551F629FF00136 +:1055B000729FBB27F00DB11D639FAA27F00DB11D8F +:1055C000AA1F649F6627B00DA11D661F829F222718 +:1055D000B00DA11D621F739FB00DA11D621F839F9F +:1055E000A00D611D221F749F3327A00D611D231F75 +:1055F000849F600D211D822F762F6A2F11249F57C3 +:1056000050408AF0E1F088234AF0EE0FFF1FBB1FE5 +:10561000661F771F881F91505040A9F79E3F510584 +:1056200070F04ECFA6CF5F3FECF3983EDCF386954B +:1056300077956795B795F795E7959F5FC1F7FE2B2F +:10564000880F911D9695879597F90895FA01EE0FA9 +:10565000FF1F30962105310599F16115710561F43F +:105660008038BFE39B0749F168949038810561F069 +:105670008038BFEF9B0741F0992342F5FF3FE105DA +:105680003105210511F1E8940894E795D901AA2381 +:1056900029F4AB2FBE2FF85FD0F310C0FF5F70F47A +:1056A000A695E0F7F73950F019F0FF3A38F49F77F4 +:1056B0009F930CD00F9007FC905808953EF014CFA4 +:1056C00060E070E080E89FE308954FE79F775F9385 +:1056D0004F933F932F939ED02F913F914F915F9186 +:1056E00052DF05C019F40EF0EBCE42CFFDCE26DF1F +:1056F000C8F39638C0F707F80F92E8942BE33AEA1C +:1057000048EB5FE74EDF0F920F920F924DB75EB7F7 +:105710000F92C0D0EAE0F1E016D04F915F91EF9187 +:10572000FF91E595EE1FFF1F49F0FE57E068442703 +:10573000EE0F441FFA95E1F74195550B32D00F90CB +:1057400007FE26C00895DF93CF931F930F93FF9218 +:10575000EF92DF927B018C01689405C0DA2EEF0195 +:105760001EDFFE01E894A591259135914591559153 +:10577000AEF3EF0106DDFE019701A801DA9479F797 +:10578000DF90EF90FF900F911F91CF91DF910895DF +:105790009B01AC0160E070E080E89FE349CD90CED2 +:1057A00095CECCDEE8F39923D9F3940F511DBBF3CA +:1057B0009150504094F059F0882332F0660F771FD3 +:1057C000881F91505040C1F79E3F510544F7880F04 +:1057D000911D9695879597F908955F3FACF0983E97 +:1057E0009CF0BB27869577956795B79508F4B160CF +:1057F0009395C1F7BB0F58F711F460FFE8CF6F5FC7 +:105800007F4F8F4F9F4FE3CFB4CE0EF05FCE6CCE65 +:10581000689456CE93DEC8F39923D1F3C6F3DF9391 +:10582000CF931F930F93FF92C92FDD2788232AF070 +:105830002197660F771F881FDAF720E030E040E8F5 +:105840005FEB9FE3883920F0803E30F021968F7720 +:1058500087DCE2E3F1E003C083DCEFE5F1E073DF36 +:105860008B01BE01EC01FB2E6F5771097595771FF7 +:10587000880B990B78DD28E132E741E35FE38FDEA7 +:10588000AF2D9801AE01FF900F911F91CF91DF9145 +:1058900078DC3BCEFA01DC01AA0FBB1F9B01AC01F7 +:1058A000BF5728F422273327442750781FC0B75109 +:1058B00088F4AB2F0024469537952795011CA395B6 +:1058C000D2F3002069F0220F331F441FB395DAF39F +:1058D0000DD045CC61307105A0E88A07B94630F497 +:1058E0009B01AC016627772788279078309621F0B6 +:1058F00020833183428353830895AA1BBB1B51E14C +:1059000007C0AA1FBB1FA617B70710F0A61BB70B2F +:10591000881F991F5A95A9F780959095BC01CD01D4 +:10592000089597FB072E16F4009407D077FD09D051 +:105930000E947D2C07FC05D03EF4909581959F4FE9 +:105940000895709561957F4F0895EE0FFF1F0590A4 +:10595000F491E02D0994F999FECF92BD81BDF89A9A +:10596000992780B50895A8E1B0E042E050E00C949A +:10597000D32C262FF999FECF92BD81BDF89A0197BD +:1059800000B4021639F01FBA20BD0FB6F894FA9A87 +:10599000F99A0FBE08950196272F0E94BA2C0C94F5 +:1059A000B92CDC01CB01FC01F999FECF06C0F2BD98 +:1059B000E1BDF89A319600B40D9241505040B8F7CD +:0659C0000895F894FFCFEA +:1059C600640007000CFF0000003F640E109C107975 +:1059D60010451011100101DF022808140A321E00BA +:1059E60002040507090B0C0E1011131517181A1CC3 +:1059F6001D1F2123242628292B2D2F3032343537FD +:105A0600393B1F0F03764F5F6F7F49694379095909 +:105A160053633149803F5D8B803FF8BF803FCAE1C9 +:105A2600803F73ED803FCAE1803FF8BF803F5D8BCA +:105A3600803F3149803F0000803FF16D7F3F75EA2E +:105A46007E3F4C827E3F833F7E3F84287E3F833F5E +:105A56007E3F4C827E3F75EA7E3FF16D7F3F0000C0 +:105A6600803F3F4D3639E304960460042704BA03A9 +:105A7600D303EC0305040102030405060708090025 +:00000001FF diff --git a/keyboards/planck/keymaps/gabriel/keymap.c b/keyboards/planck/keymaps/gabriel/keymap.c new file mode 100644 index 000000000..805484488 --- /dev/null +++ b/keyboards/planck/keymaps/gabriel/keymap.c @@ -0,0 +1,108 @@ +#include "planck.h" + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QW 0 +#define _LW 1 +#define _RS 2 +#define _FN 3 + +// This a slightly modified 'default' keymap that's closer to the Mac keyboard layout. I like the position +// of 'esc' and 'tab' better this way. I also got rid of the backlighting control key and the dvorak and +// colemak layers. I added an 'fn' layer that makes the 'bspc' a forward delete (like on OSX). +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* MIT Layout (QWERTY layer) + * + * ,-----------------------------------------------------------------------. + * | esc | q | w | e | r | t | y | u | i | o | p | bspc| + * |-----------------------------------------------------------------------| + * | tab | a | s | d | f | g | h | j | k | l | ; | ' | + * |-----------------------------------------------------------------------| + * |shift| z | x | c | v | b | n | m | , | . | / |enter| + * |-----------------------------------------------------------------------| + * | fn | ctl | alt | cmd |lower| spc |raise|left |down | up |right| + * `-----------------------------------------------------------------------' + */ +[_QW] = { /* QWERTY */ + {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {MO(_FN), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +/* MIT Layout (Raised layer) + * + * ,-----------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | + * |-----------------------------------------------------------------------| + * | | F1 | F2 | F3 | F4 | F5 | F6 | - | + | [ | ] | | | + * |-----------------------------------------------------------------------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | | + * |-----------------------------------------------------------------------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------' + */ +[_RS] = { /* RAISE */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_PLUS, KC_LBRC, KC_RBRC, KC_PIPE}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +}, +/* MIT Layout (Lowered layer) + * + * ,-----------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | + * |-----------------------------------------------------------------------| + * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | = | { | } | \ | + * |-----------------------------------------------------------------------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | | + * |-----------------------------------------------------------------------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------' + */ +[_LW] = { /* LOWER */ + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_EQL, KC_LCBR, KC_RCBR, KC_BSLS}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +}, +/* MIT Layout (FN layer) + * + * ,-----------------------------------------------------------------------. + * | | | | | | | | | | | | del | + * |-----------------------------------------------------------------------| + * | | | | | | | | | | | | | + * |-----------------------------------------------------------------------| + * | | | | | | | | | | | | | + * |-----------------------------------------------------------------------| + * | | | | | | | |home |pgdn |pgup | end | + * `-----------------------------------------------------------------------' + */ +[_FN] = { /* FUNCTION */ + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DELT}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + backlight_step(); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboards/planck/keymaps/jacob/Keyboard Layout.PNG b/keyboards/planck/keymaps/jacob/Keyboard Layout.PNG new file mode 100644 index 000000000..40f0b8942 Binary files /dev/null and b/keyboards/planck/keymaps/jacob/Keyboard Layout.PNG differ diff --git a/keyboards/planck/keymaps/jacob/Makefile b/keyboards/planck/keymaps/jacob/Makefile new file mode 100644 index 000000000..581e08cd0 --- /dev/null +++ b/keyboards/planck/keymaps/jacob/Makefile @@ -0,0 +1,25 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/jacob/compiled.hex b/keyboards/planck/keymaps/jacob/compiled.hex new file mode 100644 index 000000000..b823d6da9 --- /dev/null +++ b/keyboards/planck/keymaps/jacob/compiled.hex @@ -0,0 +1,1444 @@ +:100000000C9461020C94A5020C94A5020C94A50218 +:100010000C94A5020C94A5020C94A5020C94A502C4 +:100020000C94A5020C94A5020C9452140C94241563 +:100030000C9486220C94A5020C94A5020C94A502A3 +:100040000C94A5020C9407030C94A5020C94A50231 +:100050000C94A5020C94EE220C94A5020C94A5021B +:100060000C94A5020C94A5020C94A5020C94A50274 +:100070000C94A5020C94A5020C94A5020C94A50264 +:100080000C94C70A0C94A5020C94A5020C94A5022A +:100090000C94A5020C94A5020C94A5020C94A50244 +:1000A0000C94A5020C94A5020C94A5029115B3150D +:1000B000A116B315A116F8151B16A11670168316F6 +:1000C0006D196D199C199C19DB19FB19511B511BDA +:1000D000061A511BB61AB61A1D1B261B511B4B1BA9 +:1000E000C31AC31AC31AC31AC31AC31AC31AC31A28 +:1000F000C31AC31AC31AC31AC31AC31AC31AC31A18 +:10010000D31AE11AE81AEF1AF91A07634236B79BB5 +:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 +:100120005763BD6DEDFD753EF6177231BF000000DF +:10013000803F08000000BE922449123EABAAAA2AC2 +:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD +:1001500000000000BF000000803F00000000000819 +:100160004178D3BB4387D1133D190E3CC3BD4282B6 +:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 +:10018000FFBE01C4FF7F3F00000000000000000030 +:1001900000000000000000010204060A0F17202CD6 +:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 +:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF +:1001C0000201000000000000000000002B001400ED +:1001D0001A000800150017001C0018000C0012007F +:1001E00013002A00290004001600070009000A0075 +:1001F0000B000D000E000F0033003400E1001D0065 +:100200001B00060019000500110010003600370021 +:1002100038002872E000E300E200003001522C00B8 +:100220002C0002525000510052004F0035021E02B5 +:100230001F0220022102220223022402250226029A +:1002400027024C0001000100010001000100010033 +:1002500001002D022E022F023002310201000100A6 +:1002600001000100010001000100010001002F0058 +:100270003000010001000100010001000100010047 +:1002800001000100010001000100010035001E0015 +:100290001F0020002100220023002400250026004A +:1002A00027004C0001003A003B003C003D003E00AE +:1002B0003F002D002E002F003000310001004000D3 +:1002C00041004200430044004500010001000100DC +:1002D0000100010001000100010001000100010016 +:1002E0000100010001000100010001002803540089 +:1002F00068006500200050006C0061006E00630023 +:100300006B0020004B006500790062006F00610007 +:100310007200640000002C034F007200740068003B +:100320006F006C0069006E006500610072002000C3 +:100330004B006500790062006F006100720064008C +:10034000730000000403090409026D00040100A009 +:10035000FA09040000010301010009211101000153 +:10036000223F000705810308000A09040100010378 +:10037000010200092111010001224D00070582033D +:1003800008000A090402000103000000092111010C +:1003900000012236000705830308000A0904030050 +:1003A00001030000000921110100012239000705A5 +:1003B00084031000011201100100000008EDFE602E +:1003C0006001000102000105010906A101050719EC +:1003D000E029E71500250195087501810205081936 +:1003E0000129059505750191029501750391010596 +:1003F000071900297715002501957875018102C03C +:1004000005010980A101850216010026B7001A0125 +:10041000002AB700751095018100C0050C0901A1E3 +:10042000018503160100269C021A01002A9C027510 +:100430001095018100C005010902A1010901A10077 +:100440000509190129051500250195057501810288 +:100450009501750381010501093009311581257F59 +:1004600095027508810609381581257F9501750863 +:100470008106050C0A38021581257F9501750881D2 +:1004800006C0C005010906A101050719E029E71505 +:100490000025019508750181029501750881010506 +:1004A00008190129059505750191029501750391BA +:1004B000010507190029FF150025FF95067508811C +:1004C00000C011241FBECFEFDAE0DEBFCDBF04B6FF +:1004D00003FE24C080911E0390911F03A09120036E +:1004E000B09121038730904BA740B04BB9F41092E4 +:1004F0001E0310921F03109220031092210314BEBA +:1005000084B7877F84BF88E10FB6F894809360003A +:10051000109260000FBEE0E0F8E3099511E0A0E062 +:10052000B1E0E6E6F9E502C005900D92A03CB10706 +:10053000D9F713E0A0ECB1E001C01D92AE31B107D4 +:10054000E1F70E9498110C94B12C0C9400000895CE +:10055000089581E0089508950C94A8020C94A902CE +:100560000C94AB020E947B2823E030E0281B310969 +:10057000220F2093C4010895282F2F988091800086 +:10058000211108C0877F8093800010928D00109207 +:100590008C001BC0886080938000233019F48FEF9B +:1005A0009FEF0FC083E090E0821B9109880F991F95 +:1005B0002FEF3FEFA90102C0569547958A95E2F7C4 +:1005C000CA0190938D0080938C000C94B2020E941B +:1005D000B20284E08093C3011092C0010895279A6B +:1005E0002F988FEF9FEF90938700809386008AE08B +:1005F0008093800089E1809381000E94E4270C941D +:10060000E7020E94EF026E9A769A0C94A7021F925C +:100610000F920FB60F9211242F933F938F939F93B6 +:10062000EF93FF93E091C101F091C201CF010196D8 +:100630009093C2018093C1010090C30102C0F6955E +:10064000E7950A94E2F7EF738091C001823019F4C4 +:10065000E03251F404C0813039F4EF3329F4809151 +:100660006F008D7F80936F00F0E0E457FE4FE491C0 +:1006700021E031E0E29FC001E39F900D1124009042 +:10068000C40102C0969587950A94E2F790938D0075 +:1006900080938C00FF91EF919F918F913F912F91CB +:1006A0000F900FBE0F901F90189561110DC0FC01A7 +:1006B0008281882331F085EE0E9411180E943B2828 +:1006C00003C085EE0E94D91880E090E0089581E093 +:1006D00008950C94670308950C940103809115020A +:1006E000882309F448C08091D1019091D2010097EC +:1006F00079F40E94B8229093D2018093D101809125 +:10070000D30190E0009771F48091D40190E00AC089 +:100710000E94C4222091000130910101281739075D +:1007200040F329C00197880F991F880F991FFC017A +:10073000EB52FE4F60817181828193810E942D0A6C +:10074000E091D30184E0E89FF0011124EB52FE4FC9 +:1007500060817181828193814FE050E00E94E50DBC +:100760008091D30190E001966091D40170E00E94E5 +:10077000612C8093D3010C94AC02109217020C945C +:10078000FA090895089581E0809317020C94C2033A +:10079000089508958F929F92AF92BF92EF92FF9229 +:1007A0000F931F93CF93DF93CDB7DEB7A3970FB609 +:1007B000F894DEBF0FBECDBF7C01FC01008111812A +:1007C000C8010E94B520B8010E94CC058C01B70178 +:1007D0000E946903882309F4CCC10032F0E51F07A9 +:1007E00041F4F7018281882309F458C00E94490E20 +:1007F000C0C10132F0E51F0741F4F701828188236F +:1008000009F44CC00E94520EB4C10232F0E51F0739 +:1008100051F4F7018281882309F440C00E94450EFB +:100820008111F0CFE3CF0332F0E51F0739F4F70170 +:100830008281882399F10E94C3039BC10432F0E5B1 +:100840001F0739F4F7018281882341F10E94BD031B +:1008500090C10532F0E51F0749F4F7018281882332 +:10086000E9F0809117028111F1CFE5CF0632F0E572 +:100870001F0739F4F7018281882381F00E94590E05 +:100880000AC00732F0E51F0749F4F7018281882387 +:1008900029F00E94640E0E94C9036BC18091170267 +:1008A000811105C0F70182818111CFC018C1003EBE +:1008B000110579F4F7018281882309F44DC00E9463 +:1008C000FA0981E080931602109215021092D40169 +:1008D00050C1023E110559F4F70182818823E1F1EC +:1008E0000E94FA09109216021092150242C1033EAC +:1008F000110591F4F7018281882371F10E94FA09B0 +:100900001092160281E0809315021092D30110928A +:10091000D2011092D1012DC10235110559F4F70110 +:100920008281882309F425C1809100019091010101 +:100930000A970DC00135110579F4F70182818823EA +:1009400009F417C180910001909101010A969093DA +:100950000101809300010DC14091040183E2EFE1A8 +:10096000F1E0DE01119601900D928A95E1F7F70111 +:10097000808121E030E02C0F3D1F280F311DC9017F +:100980002091020130910301FC01E20FF31F60810D +:10099000772767FD7095640F711D882777FD809517 +:1009A000982F0E94832920E030E040E451E40E9427 +:1009B000E8284B015C01F701218184E090E0821B73 +:1009C0009109BC01882777FD8095982F0E94832983 +:1009D0009B01AC01C501B4010E9480289B01AC01C0 +:1009E00060E070E080E090E40E94F62A20E030E0D1 +:1009F0004CED50E40E94932A4B015C01F701828187 +:100A00008823D1F04FE050E0C501B4010E94E50D0C +:100A1000809116028823A1F08091D40124E0829F66 +:100A2000F0011124EB52FE4F80829182A282B382A8 +:100A30008F5F8093D40104C0C501B4010E942D0AC8 +:100A40000F3F110508F02ECF94C08091D001811185 +:100A50001FC0043130E5130709F051C00E946B0339 +:100A600081E08093D0010E94B8229093CF018093BF +:100A7000CE011092C7011092C9011092C8011092C4 +:100A8000CB011092CA011092CD011092CC0171C01D +:100A90008091CE019091CF010E94C422883C9105A3 +:100AA00070F48091C701E82FF0E0EE0FFF1FE853CC +:100AB000FE4F118300838F5F8093C7015AC00438B3 +:100AC00080E5180721F00538104501F13AC0F7011B +:100AD0008281882341F01092C50182E01EC0043853 +:100AE00030E5130759F58091C501811106C086E2F2 +:100AF0000E94111886E20E94D91882E01CC00438B6 +:100B0000F0E51F0741F305381045D9F4F70182815C +:100B1000882331F01092C60180E20E94281929C072 +:100B20008091C601811106C087E20E94111887E2F8 +:100B30000E94D91880E20E942F191BC00538104569 +:100B400029F381E08093C5018093C601C701A39674 +:100B50000FB6F894DEBF0FBECDBFDF91CF911F91CE +:100B60000F91FF90EF90BF90AF909F908F900C945B +:100B7000AE0280E0A3960FB6F894DEBF0FBECDBFE5 +:100B8000DF91CF911F910F91FF90EF90BF90AF90A9 +:100B90009F908F90089508959CE0799FF001112413 +:100BA00090E3899FE00DF11D1124E60FF11DEE0F7A +:100BB000FF1FE453FE4F859194910895880F991F6C +:100BC000FC01E45BFF4F859194910895880F991F74 +:100BD000FC01E453FE4F8591949108950F931F9368 +:100BE000CF93DF93EC01811521E39207A0F5C115A6 +:100BF00080E3D80708F0D7C0C83ED105D8F4C03E7E +:100C0000D10508F007C2C83AD10578F4C53AD10534 +:100C100008F06AC0C130D10509F463C008F4F7C117 +:100C2000C430D10508F0F6C1F2C1CB3BD10508F4C0 +:100C300066C0EDC1C11590E2D90708F0AFC0C1157B +:100C400021E0D20708F0E6C1C03FD10508F4DFC1BA +:100C50008E0110651FC2C03880E5D80700F5C03787 +:100C600090E5D90708F0A3C0C11520E5D20709F423 +:100C7000ACC050F4CE01905480319F4008F0C7C101 +:100C8000DF708E01106A06C2C13080E5D80709F412 +:100C9000AEC0C43190E5D90708F4AFC0B8C1C338BD +:100CA00020E5D20709F48EC050F4C13890E5D90789 +:100CB00009F482C008F083C000E011EDEBC1C0313F +:100CC00081E5D80708F4A3C1C11597E5D90708F451 +:100CD00036C1CE0190578115904108F098C1DF7060 +:100CE00093C101E010E0D6C1C53AD10509F494C121 +:100CF000C63AD10509F093C102E810E4CBC1C83A65 +:100D0000D10509F48FC1C93AD10509F48EC1CA3A97 +:100D1000D10509F48DC1CB3AD10509F48CC1CC3A87 +:100D2000D10509F48BC1CD3AD10509F48AC1C03B84 +:100D3000D10509F489C1CE3AD10509F488C1CF3A69 +:100D4000D10509F487C1C13BD10509F486C1C23B75 +:100D5000D10509F485C1C33BD10509F484C1C43B65 +:100D6000D10509F483C1C53BD10509F482C1C63B55 +:100D7000D10509F481C1C73BD10509F480C1C83B45 +:100D8000D10509F47FC1C93BD10509F47EC1CA3B35 +:100D9000D10509F47DC100E014E47CC1CE019F704F +:100DA0000E94E60578C1DD278E01106C73C1CF70FB +:100DB000DD278E01146D6EC100E010ED6BC100E007 +:100DC00012ED68C100E013ED65C10E94BC1B0E94DA +:100DD000FA090E94C1038FEF94E32CE08150904008 +:100DE0002040E1F700C000000E94132353C180910E +:100DF000F20281608093F2024DC10E94742381113E +:100E000002C00E9450230E94872390E090931D030C +:100E100080931C03C23080E5D80721F480911C0325 +:100E2000816086C0C43090E5D90721F480911C030D +:100E300082607EC0C63020E5D20721F480911C0379 +:100E4000846076C0C83080E5D80719F480911C030F +:100E500027C0CA3090E5D90721F480911C03806136 +:100E600067C0CC3020E5D20721F480911C0380625A +:100E70005FC0CE3080E5D80721F480911C038064E8 +:100E800057C0C03190E5D90721F480911C038068D8 +:100E90004FC0C23120E5D20729F480911C03846041 +:100EA000886046C0C33080E5D80721F480911C03D8 +:100EB0008E7F3EC0C53090E5D90721F480911C0398 +:100EC0008D7F36C0C73020E5D20721F480911C0306 +:100ED0008B7F2EC0C93080E5D80719F480911C03A0 +:100EE00026C0CB3090E5D90721F480911C038F7E7A +:100EF0001FC0CD3020E5D20721F480911C038F7DE7 +:100F000017C0CF3080E5D80721F480911C038F7B78 +:100F10000FC0C13190E5D90721F480911C038F7770 +:100F200007C0C331D04531F480911C038B7F877F8C +:100F300080931C0380911C030E948B23ABC08D2FD8 +:100F400099278F70992781309105D9F49E012370DC +:100F5000332702C0880F991F2A95E2F79C688E01FB +:100F600044E0000F111F4A95E1F700271370802B12 +:100F7000912B53E0CC0FDD1F5A95E1F7C076DD27AA +:100F80002FC08230910531F4DC2FCC278E01016F08 +:100F9000106A80C08330910569F4CE01837099276F +:100FA00001E010E002C0000F111F8A95E2F7C801AE +:100FB0009C680FC084309105B9F4CE0183709927E5 +:100FC00001E010E002C0000F111F8A95E2F7C8018E +:100FD0009A6823E0CC0FDD1F2A95E1F7C07ED77019 +:100FE0008C010C2B1D2B56C08530910531F4DC2F64 +:100FF000CC278E01046F106A4DC0069709F04AC0D5 +:10100000CF71DD27DC2FCC278E01106243C000E0BA +:1010100010E040C08E013EC001E810E43BC003E890 +:1010200010E438C002EE14E435C009EE14E432C016 +:101030000AEE14E42FC005EB14E42CC006EB14E414 +:1010400029C007EB14E426C00CEC14E423C00DEC1B +:1010500014E420C003E815E41DC00AE815E41AC032 +:1010600002E915E417C004E915E414C001E216E42E +:1010700011C003E216E40EC004E216E40BC005E260 +:1010800016E408C006E216E405C007E216E402C052 +:101090000AE216E4C801DF91CF911F910F910895E4 +:1010A0009CE0799FF001112490E3899FE00DF11DF0 +:1010B0001124E60FF11DEE0FFF1FE453FE4F859143 +:1010C0009491803E9105E0F4803C910558F5813380 +:1010D000910509F46FC048F48932910509F463C0A1 +:1010E0008A32910509F46DC072C089339105E9F027 +:1010F00082389105D1F08533910509F44DC067C060 +:10110000833E910581F138F4803E9105B9F0823E2D +:101110009105D9F05CC0863E910561F1873E91054D +:10112000A1F155C00E94DE05089520911C0320FD09 +:1011300002C021FF4CC080EE90E049C080911C03AA +:1011400080FFF9CF89E390E042C080911C0382FFC9 +:101150000EC080911C0384FF03C080E090E037C084 +:1011600083EE90E034C080911C0382FFF2CF82EEC8 +:1011700090E02DC080911C0383FF0BC080911C0365 +:1011800084FDEBCF87EE90E022C080911C0383FFAB +:10119000F5CF86EE90E01BC080911C0385FF07C051 +:1011A00089E290E014C080911C0385FFF9CF85E3AC +:1011B00090E00DC080911C0386FF07C08AE290E09A +:1011C00006C080911C0386FFF9CF81E390E00E9466 +:1011D000EE0508950C94B002E82FF0E0E25BFE4FBC +:1011E0008081E82FEF70F0E082958F7021E030E091 +:1011F000A90102C0440F551F8A95E2F740A3089544 +:101200000F931F93CF93DF9385B7806885BF85B712 +:10121000806885BFC3E0D0E001E010E0FE01E25B42 +:10122000FE4F8081E82FEF70F0E021A182958F7052 +:10123000A80102C0440F551F8A95E2F7CA01822B0C +:1012400081A38C2F0E94EC08219740F78BE090E05F +:1012500061E070E0FC01EE5BFE4F2081E22FEF7059 +:10126000F0E042A122952F70DB0102C0AA0FBB1F44 +:101270002A95E2F79D01242B22A3019758F7DF91CD +:10128000CF911F910F910C946C03EF92FF920F93EB +:101290001F93CF93DF9300E212E0C3E0EE24E394C8 +:1012A000F12CD5E08C2F0E94EC088BE090E040E020 +:1012B00050E0FC01EE5BFE4F6081E62FEF70F0E046 +:1012C00020A130E062956F7002C0359527956A9530 +:1012D000E2F720FD09C09701082E02C0220F331F3C +:1012E0000A94E2F7422B532B019718F7F8019291D9 +:1012F00082918F018417950721F051834083D09309 +:1013000005018C2F0E94EC08C15060F68091050108 +:1013100087FD2CC08150809305018F3F39F08FE904 +:101320009FE00197F1F700C0000020C080911E02ED +:1013300090911F02909327028093260280911C02B5 +:1013400090911D02909325028093240280911A02AD +:1013500090911B02909323028093220280911802A5 +:101360009091190290932102809320020E946E03B3 +:1013700081E0DF91CF911F910F91FF90EF90089541 +:10138000E82FF0E0EE0FFF1FE05EFD4F80819181BE +:10139000089508950F931F93CF9308E212E0C0E0E1 +:1013A000F801929182918F010E943022C80FF2E0E1 +:1013B00000321F07A9F78C2FCF911F910F9108952D +:1013C0000E947423811102C00E9450230E9499231D +:1013D000809307033E9A809171008D7F8093710006 +:1013E00082E0809390008AE18093910081E0809375 +:1013F0002A02089580912A02811102C00E94E00908 +:1014000010927A0210927902809171008D7F809300 +:101410007100809190008F738093900010923C0235 +:1014200010923B0210927302109274021092750295 +:10143000109276021092720210927102E1E5F2E0CF +:10144000A1E4B2E011921192119211921D921D929B +:1014500082E0E137F807B1F70895CF92DF92EF927B +:10146000FF920F931F93CF93DF9320913B02222390 +:1014700009F484C06B017C0180912A02811102C0B1 +:101480000E94E00901E712E0C7E0D0E0A701960161 +:10149000F80192918291729162918F010E94E428E9 +:1014A000811131C0FE01EE0FFF1FEE0FFF1FEF5A3B +:1014B000FD4F1082118212821382DE01AA0FBB1F20 +:1014C000AF5BBD4F11961C921E92C730D105E9F05B +:1014D000219644815581668177814083518362835F +:1014E0007383148215821682178212968D919C91B5 +:1014F000139711969C938E9313961C921E9212979B +:1015000034961296E2CF219708F680917902909155 +:101510007A02019797FD05C090937A028093790231 +:1015200004C010927A02109279028091790290910F +:101530007A0220917702309178022817390724F037 +:101540001092780210927702892BC1F48091710079 +:101550008D7F80937100809190008F7380939000B5 +:101560001092730210927402109275021092760219 +:10157000109272021092710210923B02DF91CF9191 +:101580001F910F91FF90EF90DF90CF9008951F92E1 +:101590000F920FB60F9211244F925F926F927F922B +:1015A0008F929F92AF92BF92CF92DF92EF92FF9273 +:1015B0002F933F934F935F936F937F938F939F935B +:1015C000AF93BF93CF93DF93EF93FF9380913B0251 +:1015D000882309F49BC1C0917902D0917A021C162C +:1015E0001D060CF093C140902B0250902C0260908D +:1015F0002D0270902E0220E030E0A901C301B2015B +:101600000E948F2A18160CF065C0C130D10509F46C +:1016100052C08091770290917802BE010E94612CA5 +:101620007C01909378028093770280903D029090A5 +:101630003E02A0903F02B090400220E030E040E83F +:101640005FE3C501B4010E94802860933D0270935E +:101650003E0280933F0290934002F701EE0FFF1F7E +:10166000EE0FFF1FEF5AFD4FA301920160817181C0 +:10167000828193810E94E82820E030E040E05EE330 +:101680000E94932A9B01AC01C501B4010E948F2ADC +:1016900018168CF4C7010196BE010E94612C90932C +:1016A00078028093770210923D0210923E021092CF +:1016B0003F0210924002E0917702F0917802EE0F23 +:1016C000FF1FEE0FFF1FEF5AFD4F60817181828176 +:1016D0009381D0C0C0907302D0907402E0907502E4 +:1016E000F090760220E030E0A901C701B6010E9427 +:1016F000E4282197882309F4A2C0FE01EE0FFF1F02 +:10170000EE0FFF1FEF5AFD4F80809180A280B380C3 +:10171000A5019401C701B6010E94E42887FF31C0EA +:10172000A501940160E070E08CED93EC0E94E82844 +:1017300020E030E040E451E40E94E82820E030E07E +:1017400040E05FE30E94932A9B01AC0160E070E0FF +:1017500080E090E40E94F62A9B01AC01C501B4012F +:101760000E94932A9B01AC01C701B6010E94E428A4 +:1017700087FF07C0A701960160E070E08CED93E45D +:1017800039C0A5019401C701B6010E948F2A18161D +:101790000CF055C0A501940160E070E08CED93E47D +:1017A0000E94E82820E030E040E451E40E94E8286C +:1017B00020E030E040E05FE30E94932A9B01AC010F +:1017C00060E070E080E090E40E94F62A9B01AC01AA +:1017D000C501B4010E94932A9B01AC01C701B60167 +:1017E0000E948F2A18165CF5A701960160E070E050 +:1017F0008CED93EC0E94E82820E030E040E451E4D6 +:101800000E94E82820E030E040E05FE30E94932A55 +:101810009B01AC0160E070E080E090E40E94F62A59 +:101820009B01AC01C701B6010E94932A6093730229 +:1018300070937402809375029093760213C0FE0138 +:10184000EE0FFF1FEE0FFF1FEF5AFD4F80819181BA +:10185000A281B3818093730290937402A093750266 +:10186000B093760260917302709174028091750258 +:101870009091760220912802309129022F3F4FEF5C +:10188000340731F02F5F3F4F309329022093280215 +:101890000E946F0E6B017C0120E034E244EF51E4C2 +:1018A0000E94E42887FF08C086EFC82E88E2D82E61 +:1018B00084EFE82E81E4F82E20E030E040E051E4AF +:1018C000C701B6010E94932A9B01AC0160E074E25B +:1018D00084E79BE40E94E8286B017C010E94552963 +:1018E0007093970060939600209106013091070154 +:1018F0004091080150910901C701B6010E94932A45 +:101900000E945529709399006093980080913C0241 +:10191000882309F433C1C0903702D0903802E09098 +:101920003902F0903A0220E030E0A901C701B60187 +:101930000E948F2A1816D4F58091280290912902CE +:101940008F3F2FEF920729F0019690932902809301 +:101950002802C701B6010E946F0E20E030E040E08F +:1019600051E40E94932A9B01AC0160E074E284E799 +:101970009BE40E94E8286B017C010E94552970932A +:1019800097006093960020910601309107014091E5 +:10199000080150910901C701B6010E94932A0E94D3 +:1019A0005529709399006093980008C01092970091 +:1019B0001092960010929900109298006091310256 +:1019C000709132026F5F7F4F7093320260933102E9 +:1019D000209196003091970080E090E0232BF1F069 +:1019E000C0919600D09197000E9481296B017C01E3 +:1019F000BE0180E090E00E9481299B01AC016091D2 +:101A000033027091340280913502909136020E9427 +:101A1000E82820E03FEF4FE757E410C00E948129FB +:101A20006B017C0120E030EE4FEF54E46091330213 +:101A30007091340280913502909136020E94932A6F +:101A40009B01AC01C701B6010E948F2A87FD96C099 +:101A500080912F028F5F80932F0290E020910303EB +:101A60003091040382179307A0F080910E0388231E +:101A700019F010922F020DC0809171008D7F80931C +:101A80007100809190008F738093900010923C02BF +:101A90007DC080913002C0912F02811128C0C0907A +:101AA0000803D0900903E0900A03F0900B0320E0B4 +:101AB00030E0A901C701B6010E948F2A1816BCF4B4 +:101AC00081E0809330021092370210923802109217 +:101AD000390210923A02C0923302D0923402E0925C +:101AE0003502F0923602C150C0932F0243C01092CB +:101AF00030021092290210922802E0910503F09121 +:101B0000060348E0C49FE00DF11D112480819181FE +:101B1000A281B3818093370290933802A093390257 +:101B2000B0933A0220E030E040E85EE364817581E2 +:101B3000868197810E94932A6B017C0180910A0122 +:101B4000682F70E080E090E00E94812920E030E082 +:101B500048EC52E40E94E8289B01AC01C701B601A1 +:101B60000E94932A6093330270933402809335026B +:101B70009093360210923202109231028091070344 +:101B800080FD04C010923C0210923B02FF91EF9145 +:101B9000DF91CF91BF91AF919F918F917F916F9185 +:101BA0005F914F913F912F91FF90EF90DF90CF90F9 +:101BB000BF90AF909F908F907F906F905F904F906D +:101BC0000F900FBE0F901F901895CF92DF92EF925B +:101BD000FF92CF93DF936B017C01EA0180912A028F +:101BE000811102C00E94E0098091070380FF46C076 +:101BF0008091790290917A0208970CF03FC0809111 +:101C000071008D7F8093710080913C0281110E9450 +:101C1000FA0981E080933B02109229021092280277 +:101C200020E030E0A901C701B6010E948F2A1816F2 +:101C3000DCF48091790290917A02FC01EE0FFF1F93 +:101C4000EE0FFF1FEF5AFD4FC082D182E282F38276 +:101C5000FC01EE0FFF1FEF5BFD4FD183C0830196A8 +:101C600090937A02809379028091710082608093D0 +:101C7000710080919000806880939000DF91CF91F7 +:101C8000FF90EF90DF90CF900895809107038170CF +:101C90000895809107038160809307030E949D232C +:101CA0000C94C803809107038E7F809307030C94E4 +:101CB0009D2380917B0290E0019666E070E00E9497 +:101CC000612C80937B02089580917B0290E00197C4 +:101CD00066E070E00E94612C80937B0208958F92F1 +:101CE0009F92AF92BF92CF92DF92EF92FF920F93AB +:101CF0001F93CF93DF936B017C01C0912802D09199 +:101D00002902BE0180E090E00E9481294B015C0124 +:101D1000A701960160E070E08CE594E40E94E82859 +:101D20009B01AC01C501B4010E94932A0E94552970 +:101D300020917B02233009F473C028F4222351F050 +:101D40002130E9F02CC1243009F4A0C0253009F479 +:101D5000E0C025C180E090E0A0E0BFE380930601F1 +:101D600090930701A0930801B093090110922B02F0 +:101D700010922C0210922D0210922E0210C110927D +:101D80002B0210922C0210922D0210922E0264311E +:101D9000710540F46A30710560F520E030E040E8FC +:101DA0005EE32BC0693C710508F0AAC080E090E0BA +:101DB0000E94812920E030E040EA51E40E947F281F +:101DC00020E030E044E353E40E94E8289B01AC01AA +:101DD0000E94932A20E030E040E05EE30E94932AD4 +:101DE0009B01AC0160E070E080E09EE30E947F28F0 +:101DF00044C020E030E040E05FE3C701B6010E944C +:101E0000932A6B017C0180E090E0A0E0BEE3809328 +:101E1000060190930701A0930801B0930901BFC088 +:101E200010922B0210922C0210922D0210922E0270 +:101E30004AE0469F9001479F300D1124C90168EB8D +:101E40007BE00E944D2CBC016C5D754077FF03C0A8 +:101E5000719561957109882777FD8095982F0E946B +:101E600083292EE333EC4EE259E30E94932A20E0CB +:101E700030E040EC5EE30E9480286093060170939E +:101E80000701809308019093090189C010922B02E9 +:101E900010922C0210922D0210922E02CE0183700D +:101EA0009927892BE1F0BE016170772780E090E0EF +:101EB0000E94812920E030E040E05EE30E94932A06 +:101EC00020E030E040E45FE30E9480286093060158 +:101ED0007093070180930801909309010CC080E082 +:101EE00090E0A0E0BFE38093060190930701A093E8 +:101EF0000801B0930901C770DD27CD2B09F04FC051 +:101F00001092060110920701109208011092090127 +:101F100046C010922B0210922C0210922D021092A9 +:101F20002E0200E010E020E03FE300930601109352 +:101F3000070120930801309309016739710578F191 +:101F400080E090E00E94812920E030E047E153E406 +:101F50000E947F2820E030E04AE754E40E94E8280D +:101F600020E030E048E452E40E94932A20E030E090 +:101F700040EA51E40E94C5290E945029660F771F4C +:101F8000660F771FFB01EE5AFE4F2081318142819F +:101F90005381C701B6010E94932A6B017C01C701DE +:101FA000B601DF91CF911F910F91FF90EF90DF90DD +:101FB000CF90BF90AF909F908F90089580918C02AA +:101FC0000895CF93DF9300D01F92CDB7DEB79C0169 +:101FD00080911303843019F593E099833B832A831E +:101FE0009093E9008FEF9091E800815095FD06C035 +:101FF00095ED9A95F1F700008111F5CF8091E800F9 +:1020000085FF0DC040E050E063E070E0CE01019636 +:102010000E9442128091E8008E778093E8000F9032 +:102020000F900F90DF91CF910895CF93DF9300D061 +:102030001F92CDB7DEB720911303243021F522E0A3 +:1020400029839B838A8383E08093E9008FEF9091BB +:10205000E800815095FD06C095ED9A95F1F70000D6 +:102060008111F5CF8091E80085FF0DC040E050E080 +:1020700063E070E0CE0101960E9442128091E80078 +:102080008E778093E8000F900F900F90DF91CF91A3 +:102090000895209113032430F1F422E02093E90005 +:1020A0002FEF3091E800215035FD06C035ED3A950F +:1020B000F1F700002111F5CF2091E80025FF0BC0BA +:1020C00040E050E065E070E00E9442128091E8003C +:1020D0008E778093E8000895CF93DF93EC01909181 +:1020E0001303943009F046C0809115018823D9F07C +:1020F000809116018823B9F09093E9008FEF9091B9 +:10210000E800815095FD06C095E19A95F1F7000031 +:102110008111F5CF8091E80085FF2CC040E050E0B0 +:1021200060E170E017C081E08093E9008FEF90914B +:10213000E800815095FD06C095ED9A95F1F70000F5 +:102140008111F5CF8091E80085FF14C040E050E098 +:1021500068E070E0CE010E9442128091E8008E7724 +:102160008093E80080E1FE01ACE7B2E001900D92BF +:102170008A95E1F7DF91CF91089580911203811143 +:1021800009C00E94D7130E9434148091E200846039 +:102190008093E2000895109212030895089508951F +:1021A0000C947B2242E061EC81E00E94511342E0FA +:1021B00061EC82E00E94511342E061EC83E00E94F6 +:1021C000511342E161EC84E00C94511380911503AA +:1021D000833009F455C030F4813071F0823009F455 +:1021E0008EC008958A3009F47AC08B3009F460C03B +:1021F000893009F09CC020C080911403813A09F015 +:1022000096C08091E800877F8093E8008091180352 +:1022100090911903892B21F460E18CE792E003C0CF +:1022200060E080E090E070E00E948D128091E80014 +:102230008B778093E800089580911403813209F030 +:1022400076C08091180390911903009719F00397B5 +:1022500009F06DC08091E800877F8093E80080914D +:10226000E80082FD05C0809113038111F8CF5FC0A3 +:102270008091F10080938C028091E8008B7753C0AD +:1022800080911403813A09F052C080911803909113 +:102290001903892B09F04BC08091E800877F809358 +:1022A000E8008091E80080FFFCCF8091150136C0E6 +:1022B000809114038132D9F580911803909119030C +:1022C000892BA9F58091E800877F8093E8000E9420 +:1022D000861380911603809315010C94BC1B80918A +:1022E0001403813221F58091E800877F8093E80014 +:1022F0000E9486138091170380938D020895809128 +:102300001403813AA1F48091E800877F8093E8006C +:102310008091E80080FFFCCF80918D028093F100D6 +:102320008091E8008E778093E8000C9486130895DE +:1023300084B7877F84BF88E10FB6F89480936000EC +:10234000109260000FBE90E080E80FB6F894809382 +:102350006100909361000FBE0E9429170E94D7135D +:102360000E9434148091E20084608093E2007894AB +:102370000E94BA160E942B178BE091E00E94D5169E +:1023800080911303853069F40E943C2280911103EF +:102390008823B1F30E946A22882391F30E942C12B1 +:1023A000EFCF0E943317ECCF292F3327233031058D +:1023B000C9F064F42130310581F02230310509F093 +:1023C00043C08DE690E028E433E042C0213231057D +:1023D000F1F02232310541F137C082E190E025EB86 +:1023E00033E036C099278130910541F08230910564 +:1023F00041F0892B49F5E4E4F3E005C0E6E1F3E0C0 +:1024000002C0ECEEF2E0849190E09F0121C06430C4 +:10241000D8F4E62FF0E0EE0FFF1FE255FE4F2081CB +:10242000318189E090E014C0643070F470E0FB0109 +:10243000EE0FFF1FEA55FE4F20813181FB01EE5563 +:10244000FE4F808190E004C080E090E020E030E02A +:10245000FA0131832083089580E189BD82E189BD3D +:1024600009B400FEFDCF8091D8008F7D8093D80005 +:102470008091E00082608093E0008091E00081FD27 +:10248000FCCF0895CF92DF92EF92FF920F931F93AC +:10249000CF93DF93EC018B016A010E94A513811198 +:1024A00033C0C114D10439F0F60180819181081B39 +:1024B000190BC80FD91FE12CF12C0115110519F1C9 +:1024C0008091E80085FD16C08091E8008E778093AA +:1024D000E800C114D10449F0F60180819181E80E31 +:1024E000F91EF182E08285E00FC00E94A5138823C7 +:1024F00021F30AC089918093F10001501109FFEF87 +:10250000EF1AFF0ADACF80E0DF91CF911F910F9190 +:10251000FF90EF90DF90CF90089520911A033091B3 +:102520001B032617370748F06115710539F4209110 +:10253000E8002E772093E80001C0B90140E0611562 +:102540007105A9F120911303222309F443C025301A +:1025500009F442C02091E80023FD40C02091E8002A +:1025600022FD32C02091E80020FFE9CF4091F30026 +:102570002091F20030E0342BFC01CF016115710590 +:1025800059F02830310540F481918093F100615079 +:1025900071092F5F3F4FF1CF41E02830310509F03D +:1025A00040E02091E8002E772093E800C8CF411149 +:1025B000C9CF0AC080911303882361F0853061F090 +:1025C0008091E80083FD0AC08091E80082FFF2CF8D +:1025D00080E0089582E0089583E0089581E0089501 +:1025E00020911A0330911B032617370748F0611515 +:1025F000710539F42091E8002E772093E80001C09E +:10260000B901FC0120E06115710591F1809113037E +:10261000882309F440C0853009F43FC08091E80068 +:1026200083FD3DC08091E80082FD2FC08091E800CD +:1026300080FFE9CF2091F3008091F20090E0922B8F +:102640006115710559F08830910540F4249120936B +:10265000F1003196615071090196F2CF21E008979F +:1026600009F020E08091E8008E778093E800CBCFDE +:102670002111CCCF0AC080911303882361F08530EB +:1026800061F08091E80083FD0AC08091E80082FF3C +:10269000F2CF80E0089582E0089583E0089581E01C +:1026A0000895982F973058F59093E900981739F0CE +:1026B0007091EC002091ED005091F00003C0242FA8 +:1026C000762F50E021FF19C03091EB003E7F309310 +:1026D000EB003091ED003D7F3093ED003091EB0049 +:1026E00031603093EB007093EC002093ED00509339 +:1026F000F0002091EE0027FF07C09F5FD3CF8F70BF +:102700008093E90081E0089580E0089580911403AA +:1027100087FF11C08091E80082FD05C080911303FE +:102720008111F8CF11C08091E8008B770BC08091A8 +:102730001303882349F08091E80080FFF8CF80914F +:10274000E8008E778093E80008952091E4003091AE +:10275000E50095E64091EC00842F817040FF22C097 +:102760008091E80080FD1CC080911303882391F0C4 +:10277000853091F08091EB0085FD10C04091E40020 +:102780005091E5004217530729F39A01915011F730 +:1027900084E0089582E0089583E0089581E008953B +:1027A00080E008954091E80042FFDECF08950E9446 +:1027B00045140E944D14E0EEF0E08081816080833A +:1027C000E8EDF0E080818F77808319BCA7EDB0E061 +:1027D0008C918E7F8C9380818F7E808310921203E8 +:1027E00008950F931F93CF93DF930E9445140E9487 +:1027F0004D14C8EDD0E088818F7788838881806808 +:10280000888388818F7D888319BC1092130310926E +:102810000F03109211031092100300EE10E0F80164 +:1028200080818B7F808388818160888342E060E043 +:1028300080E00E945113E1EEF0E080818E7F808382 +:10284000E2EEF0E080818160808380818860808317 +:10285000F80180818E7F8083888180618883DF9109 +:10286000CF911F910F910895E8EDF0E080818F7E68 +:102870008083E7EDF0E080818160808384E082BF27 +:1028800081E0809312030C94F113E8EDF0E0808175 +:102890008E7F80831092E20008951092DA001092E9 +:1028A000E10008951F920F920FB60F9211242F93FB +:1028B0003F934F935F936F937F938F939F93AF93C8 +:1028C000BF93EF93FF938091E10082FF0BC0809153 +:1028D000E20082FF07C08091E1008B7F8093E100DE +:1028E0000E94B9168091DA0080FF1FC08091D80045 +:1028F00080FF1BC08091DA008E7F8093DA00809188 +:10290000D90080FF0DC080E189BD82E189BD09B495 +:1029100000FEFDCF81E0809313030E94BD1005C02F +:1029200019BC109213030E94CB108091E10080FF2C +:1029300019C08091E20080FF15C08091E2008E7F77 +:102940008093E2008091E20080618093E2008091B8 +:10295000D80080628093D80019BC85E0809313036F +:102960000E94CF108091E10084FF30C08091E2008E +:1029700084FF2CC080E189BD82E189BD09B400FEDD +:10298000FDCF8091D8008F7D8093D8008091E100A9 +:102990008F7E8093E1008091E2008F7E8093E20041 +:1029A0008091E20081608093E20080910F03882390 +:1029B00011F084E007C08091E30087FD02C081E050 +:1029C00001C083E0809313030E94D0108091E10046 +:1029D00083FF29C08091E20083FF25C08091E10040 +:1029E000877F8093E10082E08093130310920F03AE +:1029F0008091E1008E7F8093E1008091E2008E7FE4 +:102A00008093E2008091E20080618093E20042E0E6 +:102A100060E080E00E9451138091F0008860809314 +:102A2000F0000E94CE10FF91EF91BF91AF919F9166 +:102A30008F917F916F915F914F913F912F910F9067 +:102A40000FBE0F901F9018951F920F920FB60F9206 +:102A500011242F933F934F935F936F937F938F93A3 +:102A60009F93AF93BF93CF93DF93EF93FF93C09167 +:102A7000E900CF708091EC00D82FD17080FDD0E8B4 +:102A80001092E9008091F000877F8093F0007894A5 +:102A90000E9468151092E9008091F0008860809390 +:102AA000F000CD2BCF70C093E900FF91EF91DF9143 +:102AB000CF91BF91AF919F918F917F916F915F91D6 +:102AC0004F913F912F910F900FBE0F901F9018952F +:102AD0001F93CF93DF93CDB7DEB7AA970FB6F894C5 +:102AE000DEBF0FBECDBFE4E1F3E088E08E0F909132 +:102AF000F10091938E13FBCF0E94E6108091E800C5 +:102B000083FF1FC18091140390911503492F50E05A +:102B10004A30510508F015C1FA01EA5AFF4F0C94EA +:102B2000752C803881F0823809F00BC18091180330 +:102B30008F708093E9008091EB0085FB882780F9F6 +:102B40001092E90006C08091100390911103911139 +:102B500082609091E800977F9093E8008093F10065 +:102B60001092F100C8C0282F2D7F09F0EAC08823F9 +:102B700019F0823061F0E5C080911603813009F0D0 +:102B8000E0C0933009F080E0809311032BC0809166 +:102B90001603811127C0809118038F7009F4D1C0EA +:102BA0008093E9002091EB0020FF1CC0933021F4BA +:102BB0008091EB00806214C09091EB009061909343 +:102BC000EB0021E030E0A90102C0440F551F8A95B7 +:102BD000E2F74093EA001092EA008091EB008860EF +:102BE0008093EB001092E9008091E800877F86C017 +:102BF0008111A7C0109116031F778091E3008078A0 +:102C0000812B8093E3008091E800877F8093E80028 +:102C10000E9486138091E80080FFFCCF8091E30042 +:102C200080688093E300111102C082E001C083E05C +:102C30008093130386C08058823008F082C0809150 +:102C40001603909117038C3D53E0950779F583E0C7 +:102C50008A838AE289834FB7F894DE01139620E0D5 +:102C60003EE051E2E32FF0E050935700E49120FF63 +:102C700003C0E295EF703F5FEF708E2F90E0EA3077 +:102C800010F0C79601C0C0968D939D932F5F24319D +:102C900049F74FBF8091E800877F8093E8006AE2A0 +:102CA00070E0CE0101960E948D1214C0AE014F5FFC +:102CB0005F4F609118030E94D411BC01009709F482 +:102CC00040C09091E800977F9093E80089819A81B5 +:102CD0000E94F0128091E8008B778093E80031C069 +:102CE000803879F58091E800877F8093E8008091B3 +:102CF0000F038093F1008091E8008E778093E800C5 +:102D00000E9486131EC081111CC090911603923040 +:102D1000C0F48091E800877F8093E80090930F03D0 +:102D20000E94861380910F03811106C08091E300F9 +:102D300087FD02C081E001C084E0809313030E94FC +:102D4000D2108091E80083FF0AC08091E800877F5D +:102D50008093E8008091EB0080628093EB00AA965C +:102D60000FB6F894DEBF0FBECDBFDF91CF911F919C +:102D700008950895CF93809113038823A1F0C09103 +:102D8000E900CF709091EC00892F817090FD80E870 +:102D9000C82B1092E9008091E80083FD0E9468151D +:102DA000CF70C093E900CF910895909393028093E0 +:102DB00092020895E0919202F0919302309721F0EF +:102DC0000190F081E02D099480E00895E091920255 +:102DD000F0919302309721F00280F381E02D099465 +:102DE0000895E0919202F0919302309721F00480CF +:102DF000F581E02D0994089520919002309191027F +:102E00008217930771F09093910280939002E09162 +:102E10009202F0919302309721F00680F781E02D25 +:102E20000994089520918E0230918F0282179307A2 +:102E300071F090938F0280938E02E0919202F09154 +:102E40009302309721F00084F185E02D09940895D4 +:102E500008950C9428170E94AF220E9400090E9436 +:102E600035230C94E4275F926F927F928F929F920A +:102E7000AF92BF92CF92DF92EF92FF920F931F9388 +:102E8000CF93DF9300D000D01F92CDB7DEB70E9462 +:102E900045099DE9C92E92E0D92E03E010E0AA244D +:102EA000A394B12C502E802F0E94C0094C01F60132 +:102EB000729062906F016826792661147104A1F402 +:102EC0000150110978F78FEF89838A831B820E9452 +:102ED000B8228160782F9D838C8349815A816B81D0 +:102EE0008D810E94E31738C08091F20281FD0E941B +:102EF000C9092BE030E07501022E02C0EE0CFF1C68 +:102F00000A94E2F7C70186219721892B09F12983C9 +:102F10005A828E209F2091E0892809F490E09B83BB +:102F20000E94B8228160782F9D838C8349815A81C9 +:102F30006B818D810E94E317000F111FF801EB5682 +:102F4000FD4F80819181E826F926F182E08204C05C +:102F50002150310980F6B4CF0E941C2510919402B3 +:102F60000E94DA161817D1F00E94DA1680939402A4 +:102F70000F900F900F900F900F90DF91CF911F91B6 +:102F80000F91FF90EF90DF90CF90BF90AF909F9008 +:102F90008F907F906F905F900C94EA080F900F9045 +:102FA0000F900F900F90DF91CF911F910F91FF9095 +:102FB000EF90DF90CF90BF90AF909F908F907F90D9 +:102FC0006F905F900895CF93DF93CDB7DEB72B97C7 +:102FD0000FB6F894DEBF0FBECDBF4F835887698709 +:102FE0007A878B87DE01119686E0FD0111928A9522 +:102FF000E9F785E0FE01379601900D928A95E1F799 +:1030000049815A816B817C818D819E810E945A1EEB +:103010002B960FB6F894DEBF0FBECDBFDF91CF91D8 +:103020000895CF93882309F4C2C0C82F823859F479 +:103030000E94DA1681FDBBC089E30E9434210E9400 +:10304000012289E30CC0833879F40E94DA1680FDEE +:10305000AEC083E50E9434210E94012283E50E94D4 +:103060007621CF910C940122843859F40E94DA160B +:1030700082FD9DC087E40E9434210E94012287E4E2 +:10308000EECF8CEF8C0F813A48F48C2F0E944C27A6 +:1030900081118DC08C2F0E943421E3CF80E28C0FF0 +:1030A000883048F4C77081E001C0880FCA95EAF7FC +:1030B0000E94BA21D6CF8BE58C0F833078F4C53AC5 +:1030C00029F0C63A31F083E890E005C081E890E04D +:1030D00002C082E890E0CF910C94FC1688E58C0F3A +:1030E000833108F064C0C83A39F1C93A41F1CA3AAB +:1030F00049F1CB3A51F1CC3A59F1CD3A61F1C03BAB +:1031000069F1CE3A71F1CF3A79F1C13B81F1C23B1D +:1031100089F1C33B91F1C43B99F1C53BA1F1C63B99 +:10312000A9F1C73BB1F1C83BB9F1C93BC1F1CA3BF9 +:10313000C9F180E090E038C082EE90E035C089EEC1 +:1031400090E032C08AEE90E02FC085EB90E02CC07A +:1031500086EB90E029C087EB90E026C08CEC90E0F5 +:1031600023C08DEC90E020C083E891E01DC08AE888 +:1031700091E01AC082E991E017C084E991E014C09F +:1031800081E292E011C083E292E00EC084E292E01C +:103190000BC085E292E008C086E292E005C087E2BB +:1031A00092E002C08AE292E0CF910C941217CF9184 +:1031B0000895882309F44BC0823859F40E94DA1626 +:1031C00081FF45C089E30E9434210E94012289E3E6 +:1031D0000CC0833871F40E94DA1680FF38C083E592 +:1031E0000E9434210E94012283E50E9476210C94E2 +:1031F0000122843859F40E94DA1682FF28C087E43D +:103200000E9434210E94012287E4EFCF9CEF980FA7 +:10321000913A58F390E2980F983050F4877091E00B +:1032200001C0990F8A95EAF7892F0E94C021DFCF4C +:103230009BE5980F933020F480E090E00C94FC160E +:10324000885A833120F480E090E00C94121708959E +:10325000882321F00E94BA210C940122089588232A +:1032600021F00E94C0210C94012208957F928F9238 +:103270009F92AF92BF92CF92DF92EF92FF920F9305 +:103280001F93CF93DF931F92CDB7DEB77C01C62E7D +:10329000772EFC01058102950F70128111110E9499 +:1032A000D7210E942D21882379F0112369F080E233 +:1032B0008C0D883048F082E00E9416210E942D215A +:1032C00091E0D82ED92601C0D12CE72DE295EF70E0 +:1032D000F0E0E05AFF4F0C94752C872D807F072D6E +:1032E0000F70882311F00295007F112389F00023CD +:1032F00009F499C180E28C0D883020F4802F0E945F +:10330000BA2103C0802F0E94CA210E9401228BC1D2 +:103310008C2D0E94D918002309F4C3C180E28C0DC2 +:10332000883020F4802F0E94C02103C0802F0E948B +:10333000D0210E940122B5C1872D807F972D9F70DB +:10334000803211F4892F03C0892F8295807FCC2091 +:1033500021F0F1E0CF16A1F01DC0112339F00023B8 +:1033600019F1013009F50E94EA219BC1002319F0EF +:10337000013009F496C189830E94ED21898110C131 +:10338000112321F0063008F08CC10EC0053008F082 +:1033900088C106C1112359F0002331F0F70195814E +:1033A00090FF41C19F7095830E9428197AC1002324 +:1033B00009F4F6C03EC1872D86958695837090E00E +:1033C000009719F0019761F06CC1112321F08C2D49 +:1033D000972D937002C080E090E00E94FC1661C1BE +:1033E000112321F08C2D972D937002C080E090E086 +:1033F0000E94121756C18C2D112319F00E9424240B +:1034000002C00E948C240E9411254BC1872D83701D +:1034100009F052C0111145C18C2D82958695877097 +:10342000880F880F9C2D9F70892E912CA12CB12C78 +:10343000082E04C0880C991CAA1CBB1C0A94D2F745 +:10344000C4FE14C00FE010E020E030E0B901A80194 +:1034500004C0440F551F661F771F8A95D2F7CB0112 +:10346000BA01609570958095909503C060E070E01A +:10347000CB01272D26952695237030E0223031058B +:1034800069F02330310589F0682979298A299B2937 +:103490002130310571F00E94A21F03C168297929EA +:1034A0008A299B290E94BE1FFCC00E94A21FC50141 +:1034B000B4010E94861FF5C0112319F0872D817079 +:1034C00001C08695882309F4ECC08C2D82958695E1 +:1034D0008770880F880F9C2D9F70892E912CA12CAE +:1034E000B12C082E04C0880C991CAA1CBB1C0A9481 +:1034F000D2F7C4FE14C00FE010E020E030E0B901C4 +:10350000A80104C0440F551F661F771F8A95D2F784 +:10351000CB01BA01609570958095909503C060E0ED +:1035200070E0CB01272D269526952370422F50E081 +:103530004230510569F04330510589F068297929F5 +:103540008A299B294130510571F00E947C20A9C035 +:10355000682979298A299B290E949820A2C00E9463 +:103560007C20C501B4010E9460209BC08C2D90E09E +:10357000FC01E05EF109E531F10508F050C0E059C9 +:10358000FF4F0C94752C0C2D0F70872D8F7111230C +:1035900021F00E94F91F802F07CF0E941A20802F50 +:1035A0000E942F197EC0112341F0053008F079C028 +:1035B000872D8F710E943F2074C0063008F071C0C3 +:1035C000F7CF112339F0872D8F710E94F91F69C041 +:1035D0001123C9F3872D8F710E941A2062C0112315 +:1035E00029F0872D8F710E94E41F5BC00E94DA1FB3 +:1035F00058C0112351F0172D1F71812F0E94F91F00 +:1036000063E0812F0E940D214CC081E00E941621B1 +:10361000023008F446C082E00E94162142C0112305 +:1036200031F0002381F28C2D0E9411183AC0002342 +:1036300089F28C2D0E94D91834C0472D4F706C2D03 +:10364000C7010E9455030E94FE1E2BC0111129C004 +:10365000472D4F7050E042305105B9F04CF4411500 +:10366000510581F041305105E1F40E940C2819C048 +:103670004330510569F04430510599F48C2D0E9476 +:103680005E280FC00E94F5270CC00E94282809C0A0 +:103690000E943B2806C0472D4F706C2DC7010E9429 +:1036A000CB05DD20F9F00E94092180FD1BC0F70148 +:1036B00012820E9403210E94F91FC7010E94811BF0 +:1036C0000E9403210F90DF91CF911F910F91FF90E6 +:1036D000EF90DF90CF90BF90AF909F908F907F90B2 +:1036E0000C941A200F90DF91CF911F910F91FF90B2 +:1036F000EF90DF90CF90BF90AF909F908F907F9092 +:1037000008950F931F93CF93DF93EC0188819981E4 +:103710002B813C81232BB9F09F3F11F48F3F99F00F +:10372000CE010E94CA03882371F0688179818A8161 +:103730000E94FF208C010E94B4200E947B1FB801D0 +:10374000CE010E943619DF91CF911F910F910895FC +:103750000E94D7210E94E7210E94AC210E940122F1 +:103760000E94C2250E94112580E090E00E94FC1674 +:1037700080E090E00C9412170E94C7210C94A81BC3 +:103780000E94F420292F22952F7030E02C30310533 +:103790004CF42A3031056CF42250310922303105C5 +:1037A000A8F407C02C30310569F02F30310551F0F5 +:1037B0000DC0803F69F018F4803E40F409C0843F9A +:1037C00029F406C093FB882780F9089580E00895C6 +:1037D00081E00895CF93DF9300D000D01F92CDB742 +:1037E000DEB70F900F900F900F900F90DF91CF9159 +:1037F0000895CF93DF9300D000D000D0CDB7DEB7CF +:1038000026960FB6F894DEBF0FBECDBFDF91CF91E5 +:1038100008951F93CF93DF93C0919D0216E080918E +:103820009E02C81799F0D0E01C9FF0011D9FF00D7B +:103830001124E156FD4F4081518162817381848161 +:1038400095810E94F91B2196C770E9CFDF91CF9136 +:103850001F9108954091CF025091D0026091D10202 +:103860007091D2028091D3029091D4020C94F91BF2 +:103870008091D40282958F7009F054C08091D1025A +:10388000882309F44FC080919D02A0919E0260910F +:10389000CF027091D0024091D2025091D302B6E093 +:1038A0008A1709F43FC090E041155105C1F17F3FEF +:1038B00011F46F3FA1F1B89FF001B99FF00D1124F1 +:1038C000E156FD4F218172132AC02081621327C067 +:1038D0002281211124C0238134812417350710F45B +:1038E00021503109241B350B283C3105C0F42091AF +:1038F000D4022F7020612093D40226E0289FF0018B +:10390000299FF00D1124EC55FD4F80818F7080614F +:1039100080838FEC92E00E94811B0C94091C01961D +:103920008770BECF0895CF92DF92EF92FF920F93F0 +:103930001F93CF93DF93CDB7DEB762970FB6F8949E +:10394000DEBF0FBECDBF8C0185E0F801DE011D9604 +:1039500001900D928A95E1F7D8014C9111965C91F6 +:10396000119712966C9112971396CD90DC90149744 +:103970003091CF027091D0028091D2029091D30207 +:10398000009709F46BC17F3F19F43F3F09F466C10A +:10399000E090D102EE2009F4C0C02091D402C816F4 +:1039A000D90628F0F601E81BF90BCF0104C0809579 +:1039B00090958C0D9D1DFF24F394883C910578F023 +:1039C000F12C207F09F0C6C07C2DD98AC88A89894C +:1039D0000E94EA1B8FEC92E00E94811BB1C0822FF3 +:1039E000807F09F046C0751314C0341312C06111F2 +:1039F00010C02F7020612093D4020E942A1C8FECEB +:103A000092E00E94811B8091D402D80115968C937C +:103A10002EC0CD2819F15F3F11F44F3FF9F0F62E7B +:103A200061111CC080919D0220919E0236E0821798 +:103A300009F45AC090E0389FF001399FF00D11242D +:103A4000E156FD4F7181571306C07081471303C0C3 +:103A50007281711103C001968770E9CFF62E66233B +:103A600009F418C18091D40281608093D402F12CB2 +:103A700011C1751308C0341306C0611104C08091D0 +:103A8000D402D801C3C04D875E878D859E856A8B21 +:103A90000E94C01B6A898823E1F16623D1F120913D +:103AA000D402822F82958F7090E0029774F08091FB +:103AB000CF029091D00298878F831986DB86CA86C1 +:103AC0002C87CE0107960E94811B86E0F801AFEC9F +:103AD000B2E001900D928A95E1F70E94381C0E9495 +:103AE0002A1CFF24F394D6C04D875E878D859E8562 +:103AF0000E94F420292F22952F7030E022303105CA +:103B00000CF0BCC09F7009F0B6C0805E883008F42D +:103B1000C1C0C8010E94811BE4CFC816D90608F4B1 +:103B200053C0F601E81BF90BCF01883C910508F45E +:103B300050C0F12C7C2DD98AC88A89890E94EA1B41 +:103B4000EFECF2E086E0DF011D928A95E9F70E9432 +:103B50002A1CA0C0751314C0341312C0611110C008 +:103B60008091D402F8018583C8010E94811B86E000 +:103B7000EFECF2E0DF011D928A95E9F7FE2C8AC096 +:103B80004D875E878D859E856A8B0E94C01B6A89E2 +:103B9000882309F4BECF662309F4BBCF2091D40259 +:103BA000822F82958F7090E002970CF48ECF8091D7 +:103BB000CF029091D0029A8389831B82DD82CC82CE +:103BC0002E83CE0101967FCF809590958C0D9D1D03 +:103BD000ACCFF62E662309F49CCF75132EC0341398 +:103BE0002CC02091D40220FD1FC0822F82958F709F +:103BF000D9F0D80115962C9315978F3049F08F5F27 +:103C0000982F9295907F822F8F70892B15968C9389 +:103C1000C8010E94811B86E0F801AFECB2E0019080 +:103C20000D928A95E1F793CF86E0F801AFECB2E010 +:103C300001900D928A95E1F72DC04D875E878D85A5 +:103C40009E850E94C01B811140CF8091D40281606B +:103C50008093D402C8010E94811B1CC0662309F412 +:103C600058CF4D875E878D859E850E94C01B882317 +:103C700009F44FCF2ACF811148CF0CC02430310531 +:103C80000CF047CF9F7009F440CFF8019581907FE9 +:103C900009F03BCF8F2D62960FB6F894DEBF0FBEB2 +:103CA000CDBFDF91CF911F910F91FF90EF90DF90EB +:103CB000CF9008951F93CF93DF93CDB7DEB72C97A6 +:103CC0000FB6F894DEBF0FBECDBF4F83588769870C +:103CD0007A878B879C87CE0107960E94931C882346 +:103CE00069F08F8198852A853B85232BF1F19F3FD1 +:103CF00009F063C08F3F09F060C037C086E0FE0165 +:103D00003796DE01119601900D928A95E1F76F8149 +:103D10007885EA85FB85309741F17F3F11F46F3F4D +:103D200021F120919E0230E0C90101968770992708 +:103D300040919D0250E08417950709F447C06983BC +:103D40007A83FD83EC8396E0929FD001939FB00D20 +:103D50001124A156BD4FFE01319601900D929A9506 +:103D6000E1F780939E020E94091C16E080919D025B +:103D700090919E028917C1F1189FC00111248156AC +:103D80009D4F0E94931C882379F1E0919D021E9F14 +:103D9000F0011124E156FD4F408151816281738110 +:103DA000848195810E94F91B80919D0290E001968B +:103DB0008770992780939D02D9CF4F815885698557 +:103DC0007A858B859C850E94F91BCFCF0E94BC1BF6 +:103DD00010929E0210929D02EFECF2E086E0DF016D +:103DE0001D928A95E9F7C1CF2C960FB6F894DEBFE5 +:103DF0000FBECDBFDF91CF911F910895EF92FF923B +:103E00000F931F93CF93DF938C01009709F46CC03D +:103E1000F12CEE24E394E8012196F8018491843793 +:103E200040F4843008F051C0813081F0823019F1C3 +:103E30005BC0853709F444C0A8F19CE7980F903720 +:103E400008F052C08F770E94D91841C00E5F1F4FF3 +:103E5000FE01C49180E28C0F883048F4C7708E2D2B +:103E600001C0880FCA95EAF70E94DA2114C08C2F8E +:103E70000E9411182DC00E5F1F4FFE01C49180E2F9 +:103E80008C0F883058F4C7708E2D01C0880FCA95EA +:103E9000EAF70E94E0210E9401221AC08C2F0E94A2 +:103EA000D91816C00E5F1F4FFE01C491CC2381F0BC +:103EB0008FE99FE00197F1F700C00000C150F6CFF5 +:103EC0000E5F1F4FFE01F49003C00E9411188E0177 +:103ED0008F2D882309F49FCFEFE9FFE03197F1F7A9 +:103EE00000C000008150F5CFDF91CF911F910F915D +:103EF000FF90EF90089508956093D9027093DA02CD +:103F00008093DB029093DC020C94A81B0F931F9309 +:103F10000091D9021091DA022091DB023091DC028B +:103F2000DC01CB01802B912BA22BB32B8093D902E8 +:103F30009093DA02A093DB02B093DC021F910F9101 +:103F40000C94A81B0F931F930091D9021091DA02D1 +:103F50002091DB023091DC02DC01CB018023912334 +:103F6000A223B3238093D9029093DA02A093DB02B9 +:103F7000B093DC021F910F910C94A81B0F931F9319 +:103F80000091D9021091DA022091DB023091DC021B +:103F9000DC01CB0180279127A227B3278093D90288 +:103FA0009093DA02A093DB02B093DC021F910F9191 +:103FB0000C94A81B1092D5021092D6021092D70230 +:103FC0001092D8020C94A81B41E050E060E070E031 +:103FD00004C0440F551F661F771F8A95D2F7409380 +:103FE000D5025093D6026093D7027093D8020C94F6 +:103FF000A81B41E050E060E070E004C0440F551F92 +:10400000661F771F8A95D2F78091D5029091D602CC +:10401000A091D702B091D802482B592B6A2B7B2B49 +:104020004093D5025093D6026093D7027093D80282 +:104030000C94A81B41E050E060E070E004C0440F25 +:10404000551F661F771F8A95D2F74095509560954A +:1040500070958091D5029091D602A091D702B0912F +:10406000D802482359236A237B234093D5025093D7 +:10407000D6026093D7027093D8020C94A81B41E03B +:1040800050E060E070E004C0440F551F661F771FCA +:104090008A95D2F78091D5029091D602A091D7024D +:1040A000B091D802482759276A277B274093D50229 +:1040B0005093D6026093D7027093D8020C94A81B39 +:1040C0000F931F930091D5021091D6022091D70231 +:1040D0003091D802DC01CB01802B912BA22BB32B8A +:1040E0008093D5029093D602A093D702B093D802C2 +:1040F0001F910F910C94A81B0F931F930091D50251 +:104100001091D6022091D7023091D802DC01CB0168 +:1041100080239123A223B3238093D5029093D602C8 +:10412000A093D702B093D8021F910F910C94A81BB3 +:104130000F931F930091D5021091D6022091D702C0 +:104140003091D802DC01CB0180279127A227B32729 +:104150008093D5029093D602A093D702B093D80251 +:104160001F910F910C94A81B0895CF92DF92EF92AC +:10417000FF920F931F93CF93DF938C01C090D902CE +:10418000D090DA02E090DB02F090DC028091D50260 +:104190009091D602A091D702B091D802C82AD92A0C +:1041A000EA2AFB2ACFE1D0E0D701C6010C2E04C0D9 +:1041B000B695A795979587950A94D2F780FF06C084 +:1041C000B8018C2F0E945008019721F4219760F7C5 +:1041D00080E001C08C2FDF91CF911F910F91FF9054 +:1041E000EF90DF90CF900895CF93DF93EC010E9482 +:1041F000B520BE010E945008DF91CF910895CB01F8 +:104200000E94F42008958091DD028595859585951D +:1042100008958091DD028770089598E0899F90014C +:104220001124262B2093DD020C94F91F2091DD022E +:10423000809582238093DD02982F977069F430E097 +:10424000482F552747FD50952417350729F08595A8 +:10425000859585950C941A2008959091DD029770AC +:1042600081E009F480E0089590911501992321F0EF +:1042700090911601911109C02091170130911801F8 +:10428000F90132969FEF40E01FC0982F96959695C2 +:1042900096959F3050F5E0911701F0911801E90FC4 +:1042A000F11D877021E030E0A90102C0440F551FC5 +:1042B0008A95E2F7CA019181892B818308959F3FF6 +:1042C00039F04F5F4E3041F051915813F8CF0DC087 +:1042D0005111F7CF942FF5CF9F3F39F0F901E90F36 +:1042E000F11D97FDFA958283089508959091150127 +:1042F000992321F090911601911109C02091170185 +:1043000030911801F9013296205F3F4F1FC0982F5E +:104310009695969596959F30F0F4E0911701F0915F +:104320001801E90FF11D877021E030E0A90102C0FA +:10433000440F551F8A95E2F7CA0180959181892320 +:10434000818308953196E217F30729F0908198133D +:10435000F9CF1082F7CF089581E090E0E091170146 +:10436000F0911801E80FF91F108201968031910534 +:10437000A9F708959091F102892B8093F102089595 +:1043800080959091F10289238093F1020895109213 +:10439000F10208959091F002892B8093F002089524 +:1043A00080959091F00289238093F00208951092F5 +:1043B000F00208959091EF02892B8093EF02089507 +:1043C00080959091EF0289238093EF0208951092D7 +:1043D000EF0208958093DE0208951092DE020895A0 +:1043E0008091170190911801FC0131969C01205F8A +:1043F0003F4F80E0919191118F5FE217F307D1F762 +:104400000895E0911701F09118018091F1028083E5 +:10441000E0911701F091180190818091F002892BB1 +:104420008083E0911701F091180190818091EF0253 +:10443000892B80838091DE02882361F0E09117014F +:10444000F09118019081892B80830E94F0218111C5 +:104450001092DE0280911701909118010C94E616DB +:1044600020E0009739F0AC01415051098423952395 +:104470002F5FF7CF822F089580911303843039F195 +:104480001092F30220E488E190E00FB6F894A8952A +:10449000809360000FBE2093600080E00E94BC0209 +:1044A00080E00E94EA0883B7817F846083BF83B77E +:1044B000816083BF7894889583B78E7F83BF88E1BE +:1044C0000FB6F89480936000109260000FBE0895BC +:1044D0000895089580E00E94BC020E9468220E9414 +:1044E00045090E9469220E94CA0991E0811101C018 +:1044F00090E0892F08950E94BC1B80E00E94BC02BE +:104500000E94E4270E94DA160C94EA081F920F9288 +:104510000FB60F9211248F939F93AF93BF93809107 +:10452000F302811113C08091F4029091F502A091E1 +:10453000F602B091F7024196A11DB11D8093F402DD +:104540009093F502A093F602B093F702BF91AF915A +:104550009F918F910F900FBE0F901F90189582E042 +:1045600084BD93E095BD9AEF97BD80936E0008954A +:104570002FB7F8948091F4029091F502A091F60281 +:10458000B091F7022FBF0895CF92DF92EF92FF9282 +:104590000F931F932FB7F8944091F4025091F502B6 +:1045A0006091F6027091F7022FBF6A017B01EE2441 +:1045B000FF248C0120E030E0C016D106E206F306AD +:1045C00010F4415051099A01281B390BC9011F9160 +:1045D0000F91FF90EF90DF90CF9008951F920F9270 +:1045E0000FB60F9211248F939F93AF93BF93809137 +:1045F000F4029091F502A091F602B091F7020196B3 +:10460000A11DB11D8093F4029093F502A093F602D0 +:10461000B093F702BF91AF919F918F910F900FBE12 +:104620000F901F9018950E94D713F8942FEF87EAE8 +:1046300091E6215080409040E1F700C0000087E003 +:1046400090EBDC0180931E0390931F03A093200343 +:10465000B09321039CE088E10FB6F894A89580936D +:1046600060000FBE90936000FFCF0E947423811101 +:1046700002C00E9450230E947F238093F2020E9476 +:10468000872380931C0387FB882780F9809316017A +:104690000E948323682F70E080E090E00C947C1FE0 +:1046A0006DEE7EEF80E090E00E949B2C60E082E067 +:1046B00090E00E94892C60E083E090E00E94892CC9 +:1046C00060E084E090E00E94892C60E085E090E06A +:1046D0000E94892C60E086E090E00E94892C6FEFB8 +:1046E00087E090E00C94892C80E090E00E94832C7D +:1046F00021E08D3E9E4F09F020E0822F089582E058 +:1047000090E00C947B2C83E090E00C947B2C84E074 +:1047100090E00C947B2C682F84E090E00C94892C22 +:1047200086E090E00C947B2C682F86E090E00C945F +:10473000892C87E090E00C947B2C682F87E090E038 +:104740000C94892C8091FA0280FF0BC060911C01AF +:1047500085E0689FB00111247595679575956795FB +:104760002BC081FF09C060911C0185E0689FB001EA +:1047700011247595679520C082FF07C060911C01C8 +:1047800085E0689FB001112417C09091FB02992326 +:10479000D1F060911B01961788F720911C0185E0EC +:1047A000289F90011124929FA001939F500D1124E6 +:1047B00070E0CA010E94612C6038710540F46115F7 +:1047C000710539F002C065E070E0862F08958FE72B +:1047D000089581E008958091FA0280FF08C06091F9 +:1047E0001A0170E0759567957595679521C081FFF1 +:1047F00006C060911A0170E07595679519C082FF37 +:1048000004C060911A0170E010C09091FB029923DE +:10481000C1F0609119019617A0F780911A01899F44 +:10482000C001112470E00E94612C6038710528F4E9 +:104830006115710521F0862F08958FE7089581E0B5 +:10484000089561E070E0F4CF803F21F40E94A2233C +:10485000819504C0813F29F40E94A2238093FE0227 +:104860000895823F21F40E94A223819504C0833FD2 +:1048700029F40E94A2238093FD020895893F19F430 +:104880000E94EB2305C08A3F31F40E94EB238195FF +:104890008093FF0208958B3F21F40E94EB238195C2 +:1048A00004C08C3F29F40E94EB23809300030895F9 +:1048B000843F21F48091FC02816017C0853F21F480 +:1048C0008091FC02826011C0863F21F48091FC023D +:1048D00084600BC0873F21F48091FC02886005C092 +:1048E000883F31F48091FC0280618093FC0208953E +:1048F0008D3F21F48091FA0281600BC08E3F21F43C +:104900008091FA02826005C08F3F29F48091FA02FB +:1049100084608093FA020895803F39F48091FE020A +:1049200087FF6CC01092FE0269C0813F29F480911C +:10493000FE021816BCF362C09091FD02823F29F47A +:1049400097FF5CC01092FD0259C0833F19F41916FD +:10495000CCF354C0893F41F48091FF0218160CF04B +:104960004DC01092FF024AC08A3F29F48091FF0295 +:1049700087FF44C0F6CF8B3F39F48091000387FF57 +:104980003DC0109200033AC08C3F29F4809100038F +:104990001816BCF333C0843F21F48091FC028E7F53 +:1049A00017C0853F21F48091FC028D7F11C0863FA6 +:1049B00021F48091FC028B7F0BC0873F21F4809112 +:1049C000FC02877F05C0883F31F48091FC028F7E16 +:1049D0008093FC0213C08D3F21F48091FA028E7FF8 +:1049E0000BC08E3F21F48091FA028D7F05C08F3F6E +:1049F00029F48091FA028B7F8093FA028091FD0264 +:104A000081110EC08091FE0281110AC08091FF02C7 +:104A1000811106C080910003811102C01092FB0237 +:104A200008958CEF92E00E94F1160E94B8229093B4 +:104A3000F9028093F80208951F93CF93DF9380913A +:104A4000F8029091F9020E94C422AC019091FB02FD +:104A5000992321F020911D0130E006C020911E0114 +:104A60008AE0289F900111244217530708F486C05A +:104A70008091FD02C091FE02D091FF0210910003CF +:104A8000811107C0C11176C0D11174C0111172C05B +:104A900075C09F3F19F09F5F9093FB02181624F496 +:104AA0000E94A2238093FD028091FD0287FF05C032 +:104AB0000E94A22381958093FD021C1624F40E947B +:104AC000A2238093FE028091FE0287FF05C00E9410 +:104AD000A22381958093FE026091FD02662339F145 +:104AE000C091FE02CC2319F1772767FD7095872FBF +:104AF000972F0E94832923E333E343E35FE30E947C +:104B0000932A0E9450296093FD026C2F772767FD3E +:104B10007095872F972F0E94832923E333E343E384 +:104B20005FE30E94932A0E9450296093FE021D16A3 +:104B300024F40E94EB238093FF028091FF0287FF01 +:104B400005C00E94EB2381958093FF02111624F487 +:104B50000E94EB23809300038091000387FF05C030 +:104B60000E94EB23819580930003DF91CF911F91E9 +:104B70000C9411259F3F09F08ECF96CFDF91CF91F6 +:104B80001F910895ECEFF2E085E0DF011D928A9518 +:104B9000E9F71092FB021092FA020895833081F136 +:104BA00028F4813059F08230D1F00895853009F42D +:104BB00049C0B8F1863009F456C0089580911E01AD +:104BC000262F30E0280F311D2F3F310524F4680FC8 +:104BD00060931E0108958FEF80931E0108958091C8 +:104BE0001D01262F30E0280F311D2F3F310524F401 +:104BF000680F60931D0108958FEF80931D01089544 +:104C000080911C01262F30E0280F311D2F3F3105E8 +:104C100024F4680F60931C0108958FEF80931C01AA +:104C2000089580911B01262F30E0280F311D2F3F62 +:104C3000310524F4680F60931B0108958FEF809372 +:104C40001B01089580911A01262F30E0280F311D95 +:104C50002F3F310524F4680F60931A0108958FEFF8 +:104C600080931A01089580911901262F30E0280FB2 +:104C7000311D2F3F310524F4680F60931901089509 +:104C80008FEF809319010895833011F128F481305A +:104C900049F0823091F00895853081F120F186301D +:104CA000C1F1089580911E01681720F4861B80933E +:104CB0001E01089510921E01089580911D0168172C +:104CC00020F4861B80931D01089510921D01089504 +:104CD00080911C01681720F4861B80931C010895A5 +:104CE00010921C01089580911B01681720F4861B07 +:104CF00080931B01089510921B01089580911A0161 +:104D0000681720F4861B80931A01089510921A01E7 +:104D1000089580911901681720F4861B809319016A +:104D200008951092190108950F931F93873208F088 +:104D300048C08E3108F08DC0803109F477C008F585 +:104D4000873009F461C068F4863009F09DC0809115 +:104D5000F202817F8E7F8093F20281E080930203D2 +:104D600094C08B3009F489C08E3009F08DC08091D9 +:104D7000F20282FB222720F991E0922790FB82F930 +:104D80005EC0863109F479C060F4813109F07CC0DD +:104D90000E94BC1B9091160181E089278093160127 +:104DA0006CC0893109F469C08B3109F06DC0809104 +:104DB000F20281FB222720F991E0922790FB81F9F2 +:104DC0003EC0883309F459C050F4893209F457C001 +:104DD000853309F454C0873209F451C055C0833477 +:104DE00009F44DC028F48A3308F44EC0895332C008 +:104DF000883409F049C00E94BC1B0E94FA090E9435 +:104E0000C1030E94132339C09091F202892F80952B +:104E1000817080FB90F929F0966098609093F2027F +:104E200034C0997F977F9093F20227C08091F2025D +:104E300083FB222720F991E0922790FB83F980934E +:104E4000F2029923D1F08091F20281608093F20204 +:104E500014C08D5141E050E060E070E08A019B0198 +:104E600004C0000F111F221F331F8A95D2F7C901FA +:104E7000B8010E947C1F0E94BC1B81E006C061E05B +:104E800070E080E090E0F5CF80E01F910F910895F1 +:104E900080E0089580E00895CF93C82F80910203A9 +:104EA000813069F018F08230C9F184C0E0911701B7 +:104EB000F09118018081823209F07EC007C0E09134 +:104EC0001701F09118018081823261F48C2F0E94C9 +:104ED0004827811104C08C2F0E9494261DC081E0B8 +:104EE00090E01AC08C2F0E944A27811114C0C4314F +:104EF00079F048F4CB3079F0C03109F061C082E03C +:104F00008093020308C0C93219F0C83321F058C099 +:104F10001092020355C081E0817054C0C93291F1F2 +:104F200020F5C43179F1B0F4C73009F047C08EE103 +:104F300080931E0182E380931D018AE080931C010F +:104F400084E180931B0188E080931A0188E28093BA +:104F5000190134C0CE51C63088F5EC2FF0E0EA5488 +:104F6000FE4F80818093010329C0CE34E9F020F404 +:104F7000CB3421F56AE013C0C13579F0C235F1F4C4 +:104F800061E00DC080910103882319F010920103A4 +:104F900015C081E08093020315C061E006C08091D6 +:104FA00001030E94CE250AC06AE0809101030E949D +:104FB000442604C01092020380E004C081E002C0D5 +:104FC00080E0AACFCF9108950E947423811102C07E +:104FD0000E9450230E94902380931D0380FF02C0F3 +:104FE000869501C080E00C94BC0280911D03982F2F +:104FF0009695292F30E0233031054CF49F5F990FAF +:105000008170892B816080931D030E94942380917D +:105010001D0386950C94BC0280911D03982F9695D4 +:1050200091F09158990F8170892B80931D038E7F89 +:1050300091E009F490E080911D0390FB80F980934A +:105040001D030E94942380911D0386950C94BC023D +:1050500080911D03982F909590FB80F980931D03FC +:105060000E94942380911D0380FF02C0869501C099 +:1050700080E00C94BC0290911D03892F86958F5F70 +:105080008F779170843028F4880F892B80931D03CB +:1050900002C090931D0380911D038E7F91E009F45F +:1050A00090E080911D0390FB80F980931D030E9486 +:1050B000942380911D0386950C94BC0220911D03BE +:1050C000922F96958927982F990F822F8170892B7F +:1050D00080931D038E7F91E009F490E080911D0381 +:1050E00090FB80F980931D030E94942380911D03FF +:1050F00086950C94BC0280911D03869508955058A6 +:10510000BB27AA270ED0D1C1C2D130F0C7D120F021 +:1051100031F49F3F11F41EF4B7C10EF4E095E7FBA4 +:105120009FC1E92FD3D180F3BA17620773078407B1 +:10513000950718F071F49EF5EBC10EF4E0950B2E77 +:10514000BA2FA02D0B01B90190010C01CA01A001D9 +:105150001124FF27591B99F0593F50F4503E68F134 +:105160001A16F040A22F232F342F4427585FF3CF75 +:10517000469537952795A795F0405395C9F77EF446 +:105180001F16BA0B620B730B840BBAF09150A1F08F +:10519000FF0FBB1F661F771F881FC2F70EC0BA0F15 +:1051A000621F731F841F48F4879577956795B7959D +:1051B000F7959E3F08F0B3CF9395880F08F0992795 +:1051C000EE0F97958795089527D108F481E008950B +:1051D0000CD06BC163D140F05AD130F021F45F3F65 +:1051E00019F03EC1511195C14FC170D198F3992367 +:1051F000C9F35523B1F3951B550BBB27AA2762179B +:105200007307840738F09F5F5F4F220F331F441FDF +:10521000AA1FA9F333D00E2E3AF0E0E830D0915017 +:105220005040E695001CCAF729D0FE2F27D0660F04 +:10523000771F881FBB1F261737074807AB07B0E843 +:1052400009F0BB0B802DBF01FF2793585F4F2AF059 +:105250009E3F510568F004C15CC15F3FECF3983E8E +:10526000DCF3869577956795B795F7959F5FC9F7B6 +:10527000880F911D9695879597F90895E1E0660F3F +:10528000771F881FBB1F621773078407BA0720F0B8 +:10529000621B730B840BBA0BEE1F88F7E095089521 +:1052A00004D06894B11135C1089518D188F09F5782 +:1052B00090F0B92F9927B751A0F0D1F0660F771F62 +:1052C000881F991F1AF0BA95C9F712C0B13081F042 +:1052D0001FD1B1E008951CC1672F782F8827B85FD0 +:1052E00039F0B93FCCF3869577956795B395D9F7A3 +:1052F0003EF490958095709561957F4F8F4F9F4FAD +:105300000895E89409C097FB3EF4909580957095B8 +:1053100061957F4F8F4F9F4F9923A9F0F92F96E901 +:10532000BB279395F695879577956795B795F11176 +:10533000F8CFFAF4BB0F11F460FF1BC06F5F7F4F13 +:105340008F4F9F4F16C0882311F096E911C0772325 +:1053500021F09EE8872F762F05C0662371F096E82E +:10536000862F70E060E02AF09A95660F771F881FFD +:10537000DAF7880F9695879597F9089588D018F0F1 +:1053800011F08CD038F480C0C4C0E92F9FD0B0F3A6 +:105390005523C9F3E7FB6217730784079507A8F144 +:1053A00099F3E92FFF2788232AF03197660F771F9B +:1053B000881FDAF7952F5527442332F0915050403B +:1053C000220F331F441FD2F7BB27E91BF50B621BCB +:1053D000730B840BB109C1F222F4620F731F841F97 +:1053E000B11D31972AF0660F771F881FBB1FEFCFC3 +:1053F000915050405AF041F0882332F0660F771FE9 +:10540000881F91505040C1F7939530C0869577958D +:1054100067959F5FD9F7F8CF990F0008550FAA0B32 +:10542000E0E8FEEF16161706E807F907C0F01216B7 +:105430001306E407F50798F0621B730B840B950BBA +:1054400039F40A2661F0232B242B252B21F408950F +:105450000A2609F4A140A6958FEF811D811D0895AC +:1054600097F99F6780E870E060E008959F3F31F012 +:10547000915020F4879577956795B795880F911D82 +:105480009695879597F908959FEF80EC08950024ED +:105490000A941616170618060906089500240A9499 +:1054A00012161306140605060895092E0394000C1F +:1054B00011F4882352F0BB0F40F4BF2B11F460FFAE +:1054C00004C06F5F7F4F8F4F9F4F089557FD9058D7 +:1054D000440F551F59F05F3F71F04795880F97FBB8 +:1054E000991F61F09F3F79F0879508951216130672 +:1054F0001406551FF2CF4695F1DF08C016161706A1 +:105500001806991FF1CF86957105610508940895D5 +:10551000E894BB2766277727CB0197F908957CDFAE +:1055200008F48FEF08950BD0C0CFB1DF28F0B6DFBD +:1055300018F0952309F094CFA7CF1124EACFC6DF46 +:10554000A0F3959FD1F3950F50E0551F629FF00196 +:10555000729FBB27F00DB11D639FAA27F00DB11DEF +:10556000AA1F649F6627B00DA11D661F829F222778 +:10557000B00DA11D621F739FB00DA11D621F839FFF +:10558000A00D611D221F749F3327A00D611D231FD5 +:10559000849F600D211D822F762F6A2F11249F5723 +:1055A00050408AF0E1F088234AF0EE0FFF1FBB1F46 +:1055B000661F771F881F91505040A9F79E3F5105E5 +:1055C00070F04ECFA6CF5F3FECF3983EDCF38695AC +:1055D00077956795B795F795E7959F5FC1F7FE2B90 +:1055E000880F911D9695879597F90895FA01EE0F0A +:1055F000FF1F30962105310599F16115710561F4A0 +:105600008038BFE39B0749F168949038810561F0C9 +:105610008038BFEF9B0741F0992342F5FF3FE1053A +:105620003105210511F1E8940894E795D901AA23E1 +:1056300029F4AB2FBE2FF85FD0F310C0FF5F70F4DA +:10564000A695E0F7F73950F019F0FF3A38F49F7754 +:105650009F930CD00F9007FC905808953EF014CF04 +:1056600060E070E080E89FE308954FE79F775F93E5 +:105670004F933F932F939ED02F913F914F915F91E6 +:1056800052DF05C019F40EF0EBCE42CFFDCE26DF7F +:10569000C8F39638C0F707F80F92E8942BE33AEA7C +:1056A00048EB5FE74EDF0F920F920F924DB75EB758 +:1056B0000F92C0D0EAE0F1E016D04F915F91EF91E8 +:1056C000FF91E595EE1FFF1F49F0FE57E068442764 +:1056D000EE0F441FFA95E1F74195550B32D00F902C +:1056E00007FE26C00895DF93CF931F930F93FF9279 +:1056F000EF92DF927B018C01689405C0DA2EEF01F6 +:105700001EDFFE01E894A5912591359145915591B3 +:10571000AEF3EF0106DDFE019701A801DA9479F7F7 +:10572000DF90EF90FF900F911F91CF91DF9108953F +:105730009B01AC0160E070E080E89FE349CD90CE32 +:1057400095CECCDEE8F39923D9F3940F511DBBF32A +:105750009150504094F059F0882332F0660F771F33 +:10576000881F91505040C1F79E3F510544F7880F64 +:10577000911D9695879597F908955F3FACF0983EF7 +:105780009CF0BB27869577956795B79508F4B1602F +:105790009395C1F7BB0F58F711F460FFE8CF6F5F27 +:1057A0007F4F8F4F9F4FE3CFB4CE0EF05FCE6CCEC6 +:1057B000689456CE93DEC8F39923D1F3C6F3DF93F2 +:1057C000CF931F930F93FF92C92FDD2788232AF0D1 +:1057D0002197660F771F881FDAF720E030E040E856 +:1057E0005FEB9FE3883920F0803E30F021968F7781 +:1057F00087DCE2E3F1E003C083DCEFE5F1E073DF97 +:105800008B01BE01EC01FB2E6F5771097595771F57 +:10581000880B990B78DD28E132E741E35FE38FDE07 +:10582000AF2D9801AE01FF900F911F91CF91DF91A5 +:1058300078DC3BCEFA01DC01AA0FBB1F9B01AC0157 +:10584000BF5728F422273327442750781FC0B75169 +:1058500088F4AB2F0024469537952795011CA39516 +:10586000D2F3002069F0220F331F441FB395DAF3FF +:105870000DD045CC61307105A0E88A07B94630F4F7 +:105880009B01AC016627772788279078309621F016 +:1058900020833183428353830895AA1BBB1B51E1AC +:1058A00007C0AA1FBB1FA617B70710F0A61BB70B90 +:1058B000881F991F5A95A9F780959095BC01CD0135 +:1058C000089597FB072E16F4009407D077FD09D0B2 +:1058D0000E944D2C07FC05D03EF4909581959F4F7A +:1058E0000895709561957F4F0895EE0FFF1F059005 +:1058F000F491E02D0994F999FECF92BD81BDF89AFB +:10590000992780B50895A8E1B0E042E050E00C94FA +:10591000A32C262FF999FECF92BD81BDF89A01974D +:1059200000B4021639F01FBA20BD0FB6F894FA9AE7 +:10593000F99A0FBE08950196272F0E948A2C0C9485 +:10594000892CDC01CB01FC01F999FECF06C0F2BD28 +:10595000E1BDF89A319600B40D9241505040B8F72D +:065960000895F894FFCF4A +:10596600640007000CFF0000003F64DE0F6C104966 +:10597600101510E10F0101DF022808140A321E007B +:1059860002040507090B0C0E1011131517181A1C23 +:105996001D1F2123242628292B2D2F30323435375D +:1059A600393B1F0F03764F5F6F7F4969437909596A +:1059B60053633149803F5D8B803FF8BF803FCAE12A +:1059C600803F73ED803FCAE1803FF8BF803F5D8B2B +:1059D600803F3149803F0000803FF16D7F3F75EA8F +:1059E6007E3F4C827E3F833F7E3F84287E3F833FBF +:1059F6007E3F4C827E3F75EA7E3FF16D7F3F000021 +:105A0600803F3F4D3639830436040004C7035A03EA +:105A160073038C03A50301020304050607080900A6 +:00000001FF diff --git a/keyboards/planck/keymaps/jacob/keymap.c b/keyboards/planck/keymaps/jacob/keymap.c new file mode 100644 index 000000000..5e6e8498e --- /dev/null +++ b/keyboards/planck/keymaps/jacob/keymap.c @@ -0,0 +1,56 @@ +#include "planck.h" +#include "action_layer.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif + +//Simple Keymap where CTRL, WINKEY, and ALT keys are placed in a more familiar location for Windows users. +//Focus of this particular keymap is to enable easy transition from more traditional keyboards to OLKB Planck. + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +#define _QW 0 +#define _LW 1 +#define _RS 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QW] = { /* Qwerty */ + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_RSFT, KC_ENT)}, + {KC_LCTL, KC_LGUI, KC_LALT, M(0), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + }, + [_RS] = { /* RAISE */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL }, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} + }, + [_LW] = { /* LOWER */ + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL }, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} + } +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboards/planck/keymaps/jacob/readme.md b/keyboards/planck/keymaps/jacob/readme.md new file mode 100644 index 000000000..2a4be4ebc --- /dev/null +++ b/keyboards/planck/keymaps/jacob/readme.md @@ -0,0 +1 @@ +Focus of this particular keymap is to enable easy transition from more traditional keyboards to OLKB Planck. \ No newline at end of file diff --git a/keyboards/planck/keymaps/joe/Makefile b/keyboards/planck/keymaps/joe/Makefile new file mode 100644 index 000000000..581e08cd0 --- /dev/null +++ b/keyboards/planck/keymaps/joe/Makefile @@ -0,0 +1,25 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/joe/compiled.hex b/keyboards/planck/keymaps/joe/compiled.hex new file mode 100644 index 000000000..865ed2ce9 --- /dev/null +++ b/keyboards/planck/keymaps/joe/compiled.hex @@ -0,0 +1,1479 @@ +:100000000C9467030C94AB030C94AB030C94AB03FC +:100010000C94AB030C94AB030C94AB030C94AB03A8 +:100020000C94AB030C94AB030C946A150C943C1623 +:100030000C949E230C94AB030C94AB030C94AB0375 +:100040000C94AB030C940D040C94AB030C94AB0315 +:100050000C94AB030C9406240C94AB030C94AB03EC +:100060000C94AB030C94AB030C94AB030C94AB0358 +:100070000C94AB030C94AB030C94AB030C94AB0348 +:100080000C94DF0B0C94AB030C94AB030C94AB03FC +:100090000C94AB030C94AB030C94AB030C94AB0328 +:1000A0000C94AB030C94AB030C94AB03A916CB16C6 +:1000B000B917CB16B91710173317B91788179B172D +:1000C000851A851AB41AB41AF31A131B691C691C11 +:1000D0001E1B691CCE1BCE1B351C3E1C691C631CE1 +:1000E000DB1BDB1BDB1BDB1BDB1BDB1BDB1BDB1B60 +:1000F000DB1BDB1BDB1BDB1BDB1BDB1BDB1BDB1B50 +:10010000EB1BF91B001C071C111C07634236B79B35 +:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 +:100120005763BD6DEDFD753EF6177231BF000000DF +:10013000803F08000000BE922449123EABAAAA2AC2 +:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD +:1001500000000000BF000000803F00000000000819 +:100160004178D3BB4387D1133D190E3CC3BD4282B6 +:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 +:10018000FFBE01C4FF7F3F00000000000000000030 +:1001900000000000000000010204060A0F17202CD6 +:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 +:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF +:1001C00002010000000000000000000001E1013316 +:1001D000023301260226012C022C012C022C0127BD +:1001E00002270133023302E1015002500150025054 +:1001F000015002500001E1012602260133023301C1 +:100200002C022C012C022C0133023301270227027D +:10021000E10150025001500250015002500001E132 +:10022000013302330126022602E10001E10133021B +:10023000330127022702E1000000F1A4F1A529A65D +:1002400000000000018C028C048C088C000000006F +:100250000000000000002B22032014001A000900F7 +:1002600013000A000D000F0018001C0033002D00C1 +:100270002A00040015001600170007000B001100EB +:1002800008000C00120028000F201D001B000600B3 +:10029000190005000E00100036003700520034002F +:1002A000E000E300E200E10001202C002C0002202D +:1002B0003800500051004F00032014001A000800BD +:1002C000150017001C0018000C00120013002D0070 +:1002D0002A0004001600070009000A000B000D00A8 +:1002E0000E000F00330028000F201D001B00060029 +:1002F00019000500110010003600370052003400CC +:10030000E000E300E200E10001202C002C000220CC +:100310003800500051004F00032000005200000040 +:10032000000000002602270254005F006000610008 +:100330002A00500051004F00000000002202670018 +:1003400055005C005D005E000F2000000000000012 +:100350000000000000008500560059005A005B00B4 +:10036000E000E300E200E1000120010001000220C2 +:100370005700620063005800032014001A000900AF +:10038000130023000D000F0018001C0033002D0087 +:100390002A00210015002200240007000B00110094 +:1003A00020001E00270028000F201D001B00060053 +:1003B000190005000E00100036003700520034000E +:1003C000E000E300E200E10001202C002C0002200C +:1003D0003800500051004F003500000000000000C0 +:1003E0000000000000000000033002300130003047 +:1003F0002A001E001F0020002100220023002400EC +:100400002500260027000100310000000000000048 +:1004100000000000000000002F0030004B002E0004 +:100420000100010001000100012001000100022083 +:1004300000004A004E004D003A003B003C003D00E9 +:100440003E003F00400041004200430044004500A0 +:100450004C00F400F000F500F600F900F700500041 +:10046000510052004F0000000100F200F100F300C3 +:10047000FB00FA00FC00000000004B0152054E0199 +:100480000100010001000100012000000000022025 +:100490000000500551054F050100A800AA00A90061 +:1004A000000000000000000000000000000000004C +:1004B0000000AE00AC00AB00000000000000000037 +:1004C00000000000000000500000000000000000DC +:1004D000000000000000000000000000000000001C +:1004E0000620072008200920012001000100022029 +:1004F0006600A700A6000F052803540068006500E9 +:10050000200050006C0061006E0063006B00200052 +:100510004B006500790062006F00610072006400AA +:1005200000002C034F007200740068006F006C0024 +:1005300069006E0065006100720020004B006500DC +:10054000790062006F0061007200640073000000B7 +:100550000403090409026D00040100A0FA09040063 +:10056000000103010100092111010001223F0007E0 +:1005700005810308000A09040100010301020009C2 +:100580002111010001224D000705820308000A091C +:1005900004020001030000000921110100012236BC +:1005A000000705830308000A090403000103000093 +:1005B0000009211101000122390007058403100000 +:1005C000011201100100000008EDFE606001000151 +:1005D00002000105010906A101050719E029E71537 +:1005E0000025019508750181020508190129059565 +:1005F00005750191029501750391010507190029FF +:100600007715002501957875018102C005010980E3 +:10061000A101850216010026B7001A01002AB700C1 +:10062000751095018100C0050C0901A10185031613 +:100630000100269C021A01002A9C02751095018176 +:1006400000C005010902A1010901A1000509190164 +:100650002905150025019505750181029501750390 +:1006600081010501093009311581257F9502750841 +:10067000810609381581257F950175088106050CCD +:100680000A38021581257F950175088106C0C005CD +:10069000010906A101050719E029E71500250195C3 +:1006A0000875018102950175088101050819012964 +:1006B00005950575019102950175039101050719CD +:1006C0000029FF150025FF950675088100C011243B +:1006D0001FBECFEFDAE0DEBFCDBF04B603FE24C0FD +:1006E00080911E0390911F03A0912003B0912103DC +:1006F0008730904BA740B04BB9F410921E03109274 +:100700001F03109220031092210314BE84B7877F29 +:1007100084BF88E10FB6F894809360001092600067 +:100720000FBEE0E0F8E3099511E0A0E0B1E0E6E9F2 +:10073000FBE502C005900D92A03CB107D9F713E08C +:10074000A0ECB1E001C01D92AE31B107E1F70E940B +:10075000B0120C94C92D0C9400000895089581E006 +:10076000089508950C94AE030C94AF030C94B10358 +:100770000E94932923E030E0281B3109220F2093A7 +:10078000C4010895282F2F9880918000211108C05E +:10079000877F8093800010928D0010928C001BC088 +:1007A000886080938000233019F48FEF9FEF0FC093 +:1007B00083E090E0821B9109880F991F2FEF3FEF94 +:1007C000A90102C0569547958A95E2F7CA01909310 +:1007D0008D0080938C000C94B8030E94B80384E0D1 +:1007E0008093C3011092C0010895279A2F988FEF2C +:1007F0009FEF90938700809386008AE0809380002B +:1008000089E1809381000E94FC280C94ED030E94F2 +:10081000F5036E9A769A0C94AD031F920F920FB661 +:100820000F9211242F933F938F939F93EF93FF93F6 +:10083000E091C101F091C201CF0101969093C201F4 +:100840008093C1010090C30102C0F695E7950A9418 +:10085000E2F7EF738091C001823019F4E03251F475 +:1008600004C0813039F4EF3329F480916F008D7F1B +:1008700080936F00F0E0E457FE4FE49121E031E017 +:10088000E29FC001E39F900D11240090C40102C0BB +:10089000969587950A94E2F790938D0080938C004B +:1008A000FF91EF919F918F913F912F910F900FBEEC +:1008B0000F901F901895FC01613061F028F06230B4 +:1008C00079F0633099F018C082818823A9F08BE217 +:1008D00092E008958281882379F08EE192E0089574 +:1008E0008281882349F085EF91E0089582818823F1 +:1008F00019F08CEC91E0089580E090E0089581E09B +:1009000008950C947F0408950C94070480911502B7 +:10091000882309F448C08091D1019091D2010097B9 +:1009200079F40E94D0239093D2018093D1018091D9 +:10093000D30190E0009771F48091D40190E00AC057 +:100940000E94DC2320910001309101012817390712 +:1009500040F329C00197880F991F880F991FFC0148 +:10096000EB52FE4F60817181828193810E94450B21 +:10097000E091D30184E0E89FF0011124EB52FE4F97 +:1009800060817181828193814FE050E00E94FD0E71 +:100990008091D30190E001966091D40170E00E94B3 +:1009A000792D8093D3010C94B203109217020C940A +:1009B000120B0895089581E0809317020C94DA04D5 +:1009C000089508958F929F92AF92BF92EF92FF92F7 +:1009D0000F931F93CF93DF93CDB7DEB7A3970FB6D7 +:1009E000F894DEBF0FBECDBF7C01FC0100811181F8 +:1009F000C8010E94CD21B8010E94E4068C01B70114 +:100A00000E948104882309F4CCC10032F0E51F075D +:100A100041F4F7018281882309F458C00E94610FD4 +:100A2000C0C10132F0E51F0741F4F701828188233C +:100A300009F44CC00E946A0FB4C10232F0E51F07EE +:100A400051F4F7018281882309F440C00E945D0FB0 +:100A50008111F0CFE3CF0332F0E51F0739F4F7013E +:100A60008281882399F10E94DB049BC10432F0E566 +:100A70001F0739F4F7018281882341F10E94D504D0 +:100A800090C10532F0E51F0749F4F7018281882300 +:100A9000E9F0809117028111F1CFE5CF0632F0E540 +:100AA0001F0739F4F7018281882381F00E94710FBA +:100AB0000AC00732F0E51F0749F4F7018281882355 +:100AC00029F00E947C0F0E94E1046BC18091170203 +:100AD000811105C0F70182818111CFC018C1003E8C +:100AE000110579F4F7018281882309F44DC00E9431 +:100AF000120B81E080931602109215021092D4011D +:100B000050C1023E110559F4F70182818823E1F1B9 +:100B10000E94120B109216021092150242C1033E5F +:100B2000110591F4F7018281882371F10E94120B63 +:100B30001092160281E0809315021092D301109258 +:100B4000D2011092D1012DC10235110559F4F701DE +:100B50008281882309F425C18091000190910101CF +:100B60000A970DC00135110579F4F70182818823B8 +:100B700009F417C180910001909101010A969093A8 +:100B80000101809300010DC14091040183E2EFE176 +:100B9000F1E0DE01119601900D928A95E1F7F701DF +:100BA000808121E030E02C0F3D1F280F311DC9014D +:100BB0002091020130910301FC01E20FF31F6081DB +:100BC000772767FD7095640F711D882777FD8095E5 +:100BD000982F0E949B2A20E030E040E451E40E94DC +:100BE000002A4B015C01F701218184E090E0821B27 +:100BF0009109BC01882777FD8095982F0E949B2A38 +:100C00009B01AC01C501B4010E9498299B01AC0174 +:100C100060E070E080E090E40E940E2C20E030E084 +:100C20004CED50E40E94AB2B4B015C01F70182813B +:100C30008823D1F04FE050E0C501B4010E94FD0EC1 +:100C4000809116028823A1F08091D40124E0829F34 +:100C5000F0011124EB52FE4F80829182A282B38276 +:100C60008F5F8093D40104C0C501B4010E94450B7D +:100C70000F3F110508F02ECF94C08091D001811153 +:100C80001FC0043130E5130709F051C00E948304EE +:100C900081E08093D0010E94D0239093CF01809374 +:100CA000CE011092C7011092C9011092C801109292 +:100CB000CB011092CA011092CD011092CC0171C0EB +:100CC0008091CE019091CF010E94DC23883C910558 +:100CD00070F48091C701E82FF0E0EE0FFF1FE8539A +:100CE000FE4F118300838F5F8093C7015AC0043881 +:100CF00080E5180721F00538104501F13AC0F701E9 +:100D00008281882341F01092C50182E01EC0043820 +:100D100030E5130759F58091C501811106C086E2BF +:100D20000E94291986E20E94F11982E01CC0043851 +:100D3000F0E51F0741F305381045D9F4F70182812A +:100D4000882331F01092C60180E20E94401A29C027 +:100D50008091C601811106C087E20E94291987E2AD +:100D60000E94F11980E20E94471A1BC00538104505 +:100D700029F381E08093C5018093C601C701A39642 +:100D80000FB6F894DEBF0FBECDBFDF91CF911F919C +:100D90000F91FF90EF90BF90AF909F908F900C9429 +:100DA000B40380E0A3960FB6F894DEBF0FBECDBFAC +:100DB000DF91CF911F910F91FF90EF90BF90AF9077 +:100DC0009F908F90089508959CE0799FF0011124E1 +:100DD00090E3899FE00DF11D1124E60FF11DEE0F48 +:100DE000FF1FE85AFD4F859194910895880F991F30 +:100DF000FC01E854FF4F859194910895880F991F45 +:100E0000FC01E85CFD4F8591949108950F931F9329 +:100E1000CF93DF93EC01811521E39207A0F5C11573 +:100E200080E3D80708F0D7C0C83ED105D8F4C03E4B +:100E3000D10508F007C2C83AD10578F4C53AD10502 +:100E400008F06AC0C130D10509F463C008F4F7C1E5 +:100E5000C430D10508F0F6C1F2C1CB3BD10508F48E +:100E600066C0EDC1C11590E2D90708F0AFC0C11549 +:100E700021E0D20708F0E6C1C03FD10508F4DFC188 +:100E80008E0110651FC2C03880E5D80700F5C03755 +:100E900090E5D90708F0A3C0C11520E5D20709F4F1 +:100EA000ACC050F4CE01905480319F4008F0C7C1CF +:100EB000DF708E01106A06C2C13080E5D80709F4E0 +:100EC000AEC0C43190E5D90708F4AFC0B8C1C3388B +:100ED00020E5D20709F48EC050F4C13890E5D90757 +:100EE00009F482C008F083C000E011EDEBC1C0310D +:100EF00081E5D80708F4A3C1C11597E5D90708F41F +:100F000036C1CE0190578115904108F098C1DF702D +:100F100093C101E010E0D6C1C53AD10509F494C1EE +:100F2000C63AD10509F093C102E810E4CBC1C83A32 +:100F3000D10509F48FC1C93AD10509F48EC1CA3A65 +:100F4000D10509F48DC1CB3AD10509F48CC1CC3A55 +:100F5000D10509F48BC1CD3AD10509F48AC1C03B52 +:100F6000D10509F489C1CE3AD10509F488C1CF3A37 +:100F7000D10509F487C1C13BD10509F486C1C23B43 +:100F8000D10509F485C1C33BD10509F484C1C43B33 +:100F9000D10509F483C1C53BD10509F482C1C63B23 +:100FA000D10509F481C1C73BD10509F480C1C83B13 +:100FB000D10509F47FC1C93BD10509F47EC1CA3B03 +:100FC000D10509F47DC100E014E47CC1CE019F701D +:100FD0000E94FE0678C1DD278E01106C73C1CF70B0 +:100FE000DD278E01146D6EC100E010ED6BC100E0D5 +:100FF00012ED68C100E013ED65C10E94D41C0E948F +:10100000120B0E94D9048FEF94E32CE081509040A2 +:101010002040E1F700C000000E942B2453C18091C2 +:10102000F20281608093F2024DC10E948C248111F2 +:1010300002C00E9468240E949F2490E090931D03A8 +:1010400080931C03C23080E5D80721F480911C03F3 +:10105000816086C0C43090E5D90721F480911C03DB +:1010600082607EC0C63020E5D20721F480911C0347 +:10107000846076C0C83080E5D80719F480911C03DD +:1010800027C0CA3090E5D90721F480911C03806104 +:1010900067C0CC3020E5D20721F480911C03806228 +:1010A0005FC0CE3080E5D80721F480911C038064B6 +:1010B00057C0C03190E5D90721F480911C038068A6 +:1010C0004FC0C23120E5D20729F480911C0384600F +:1010D000886046C0C33080E5D80721F480911C03A6 +:1010E0008E7F3EC0C53090E5D90721F480911C0366 +:1010F0008D7F36C0C73020E5D20721F480911C03D4 +:101100008B7F2EC0C93080E5D80719F480911C036D +:1011100026C0CB3090E5D90721F480911C038F7E47 +:101120001FC0CD3020E5D20721F480911C038F7DB4 +:1011300017C0CF3080E5D80721F480911C038F7B46 +:101140000FC0C13190E5D90721F480911C038F773E +:1011500007C0C331D04531F480911C038B7F877F5A +:1011600080931C0380911C030E94A324ABC08D2F8D +:1011700099278F70992781309105D9F49E012370AA +:10118000332702C0880F991F2A95E2F79C688E01C9 +:1011900044E0000F111F4A95E1F700271370802BE0 +:1011A000912B53E0CC0FDD1F5A95E1F7C076DD2778 +:1011B0002FC08230910531F4DC2FCC278E01016FD6 +:1011C000106A80C08330910569F4CE01837099273D +:1011D00001E010E002C0000F111F8A95E2F7C8017C +:1011E0009C680FC084309105B9F4CE0183709927B3 +:1011F00001E010E002C0000F111F8A95E2F7C8015C +:101200009A6823E0CC0FDD1F2A95E1F7C07ED770E6 +:101210008C010C2B1D2B56C08530910531F4DC2F31 +:10122000CC278E01046F106A4DC0069709F04AC0A2 +:10123000CF71DD27DC2FCC278E01106243C000E088 +:1012400010E040C08E013EC001E810E43BC003E85E +:1012500010E438C002EE14E435C009EE14E432C0E4 +:101260000AEE14E42FC005EB14E42CC006EB14E4E2 +:1012700029C007EB14E426C00CEC14E423C00DECE9 +:1012800014E420C003E815E41DC00AE815E41AC000 +:1012900002E915E417C004E915E414C001E216E4FC +:1012A00011C003E216E40EC004E216E40BC005E22E +:1012B00016E408C006E216E405C007E216E402C020 +:1012C0000AE216E4C801DF91CF911F910F910895B2 +:1012D0009CE0799FF001112490E3899FE00DF11DBE +:1012E0001124E60FF11DEE0FFF1FE85AFD4F859107 +:1012F0009491803E9105E0F4803C910558F581334E +:10130000910509F46FC048F48932910509F463C06E +:101310008A32910509F46DC072C089339105E9F0F4 +:1013200082389105D1F08533910509F44DC067C02D +:10133000833E910581F138F4803E9105B9F0823EFB +:101340009105D9F05CC0863E910561F1873E91051B +:10135000A1F155C00E94F606089520911C0320FDBE +:1013600002C021FF4CC080EE90E049C080911C0378 +:1013700080FFF9CF89E390E042C080911C0382FF97 +:101380000EC080911C0384FF03C080E090E037C052 +:1013900083EE90E034C080911C0382FFF2CF82EE96 +:1013A00090E02DC080911C0383FF0BC080911C0333 +:1013B00084FDEBCF87EE90E022C080911C0383FF79 +:1013C000F5CF86EE90E01BC080911C0385FF07C01F +:1013D00089E290E014C080911C0385FFF9CF85E37A +:1013E00090E00DC080911C0386FF07C08AE290E068 +:1013F00006C080911C0386FFF9CF81E390E00E9434 +:10140000060708950C94B603E82FF0E0E25BFE4F68 +:101410008081E82FEF70F0E082958F7021E030E05E +:10142000A90102C0440F551F8A95E2F740A3089511 +:101430000F931F93CF93DF9385B7806885BF85B7E0 +:10144000806885BFC3E0D0E001E010E0FE01E25B10 +:10145000FE4F8081E82FEF70F0E021A182958F7020 +:10146000A80102C0440F551F8A95E2F7CA01822BDA +:1014700081A38C2F0E94040A219740F78BE090E013 +:1014800061E070E0FC01EE5BFE4F2081E22FEF7027 +:10149000F0E042A122952F70DB0102C0AA0FBB1F12 +:1014A0002A95E2F79D01242B22A3019758F7DF919B +:1014B000CF911F910F910C948404EF92FF920F93A0 +:1014C0001F93CF93DF9300E212E0C3E0EE24E39496 +:1014D000F12CD5E08C2F0E94040A8BE090E040E0D4 +:1014E00050E0FC01EE5BFE4F6081E62FEF70F0E014 +:1014F00020A130E062956F7002C0359527956A95FE +:10150000E2F720FD09C09701082E02C0220F331F09 +:101510000A94E2F7422B532B019718F7F8019291A6 +:1015200082918F018417950721F051834083D093D6 +:1015300005018C2F0E94040AC15060F680910501BC +:1015400087FD2CC08150809305018F3F39F08FE9D2 +:101550009FE00197F1F700C0000020C080911E02BB +:1015600090911F02909327028093260280911C0283 +:1015700090911D02909325028093240280911A027B +:1015800090911B0290932302809322028091180273 +:101590009091190290932102809320020E94860468 +:1015A00081E0DF91CF911F910F91FF90EF9008950F +:1015B000E82FF0E0EE0FFF1FE05EFD4F808191818C +:1015C000089508950F931F93CF9308E212E0C0E0AF +:1015D000F801929182918F010E944823C80FF2E096 +:1015E00000321F07A9F78C2FCF911F910F910895FB +:1015F0000E948C24811102C00E9468240E94B124A0 +:10160000809307033E9A809171008D7F80937100D3 +:1016100082E0809390008AE18093910081E0809342 +:101620002A02089580912A02811102C00E94F80ABC +:1016300010927A0210927902809171008D7F8093CE +:101640007100809190008F738093900010923C0203 +:1016500010923B0210927302109274021092750263 +:10166000109276021092720210927102E1E5F2E09D +:10167000A1E4B2E011921192119211921D921D9269 +:1016800082E0E137F807B1F70895CF92DF92EF9249 +:10169000FF920F931F93CF93DF9320913B0222235E +:1016A00009F484C06B017C0180912A02811102C07F +:1016B0000E94F80A01E712E0C7E0D0E0A701960116 +:1016C000F80192918291729162918F010E94FC299E +:1016D000811131C0FE01EE0FFF1FEE0FFF1FEF5A09 +:1016E000FD4F1082118212821382DE01AA0FBB1FEE +:1016F000AF5BBD4F11961C921E92C730D105E9F029 +:10170000219644815581668177814083518362832C +:101710007383148215821682178212968D919C9182 +:10172000139711969C938E9313961C921E92129768 +:1017300034961296E2CF219708F680917902909123 +:101740007A02019797FD05C090937A0280937902FF +:1017500004C010927A0210927902809179029091DD +:101760007A0220917702309178022817390724F005 +:101770001092780210927702892BC1F48091710047 +:101780008D7F80937100809190008F738093900083 +:1017900010927302109274021092750210927602E7 +:1017A000109272021092710210923B02DF91CF915F +:1017B0001F910F91FF90EF90DF90CF9008951F92AF +:1017C0000F920FB60F9211244F925F926F927F92F9 +:1017D0008F929F92AF92BF92CF92DF92EF92FF9241 +:1017E0002F933F934F935F936F937F938F939F9329 +:1017F000AF93BF93CF93DF93EF93FF9380913B021F +:10180000882309F49BC1C0917902D0917A021C16F9 +:101810001D060CF093C140902B0250902C0260905A +:101820002D0270902E0220E030E0A901C301B20128 +:101830000E94A72B18160CF065C0C130D10509F421 +:1018400052C08091770290917802BE010E94792D5A +:101850007C01909378028093770280903D02909073 +:101860003E02A0903F02B090400220E030E040E80D +:101870005FE3C501B4010E94982960933D02709313 +:101880003E0280933F0290934002F701EE0FFF1F4C +:10189000EE0FFF1FEF5AFD4FA3019201608171818E +:1018A000828193810E94002A20E030E040E05EE3E4 +:1018B0000E94AB2B9B01AC01C501B4010E94A72B78 +:1018C00018168CF4C7010196BE010E94792D9093E1 +:1018D00078028093770210923D0210923E0210929D +:1018E0003F0210924002E0917702F0917802EE0FF1 +:1018F000FF1FEE0FFF1FEF5AFD4F60817181828144 +:101900009381D0C0C0907302D0907402E0907502B1 +:10191000F090760220E030E0A901C701B6010E94F4 +:10192000FC292197882309F4A2C0FE01EE0FFF1FB6 +:10193000EE0FFF1FEF5AFD4F80809180A280B38091 +:10194000A5019401C701B6010E94FC2987FF31C09F +:10195000A501940160E070E08CED93EC0E94002AF8 +:1019600020E030E040E451E40E94002A20E030E032 +:1019700040E05FE30E94AB2B9B01AC0160E070E0B4 +:1019800080E090E40E940E2C9B01AC01C501B401E3 +:101990000E94AB2B9B01AC01C701B6010E94FC2940 +:1019A00087FF07C0A701960160E070E08CED93E42B +:1019B00039C0A5019401C701B6010E94A72B1816D2 +:1019C0000CF055C0A501940160E070E08CED93E44B +:1019D0000E94002A20E030E040E451E40E94002A06 +:1019E00020E030E040E05FE30E94AB2B9B01AC01C4 +:1019F00060E070E080E090E40E940E2C9B01AC015E +:101A0000C501B4010E94AB2B9B01AC01C701B6011B +:101A10000E94A72B18165CF5A701960160E070E004 +:101A20008CED93EC0E94002A20E030E040E451E489 +:101A30000E94002A20E030E040E05FE30E94AB2BF0 +:101A40009B01AC0160E070E080E090E40E940E2C0D +:101A50009B01AC01C701B6010E94AB2B60937302DE +:101A600070937402809375029093760213C0FE0106 +:101A7000EE0FFF1FEE0FFF1FEF5AFD4F8081918188 +:101A8000A281B3818093730290937402A093750234 +:101A9000B093760260917302709174028091750226 +:101AA0009091760220912802309129022F3F4FEF2A +:101AB000340731F02F5F3F4F3093290220932802E3 +:101AC0000E94870F6B017C0120E034E244EF51E477 +:101AD0000E94FC2987FF08C086EFC82E88E2D82E16 +:101AE00084EFE82E81E4F82E20E030E040E051E47D +:101AF000C701B6010E94AB2B9B01AC0160E074E210 +:101B000084E79BE40E94002A6B017C010E946D2AFD +:101B10007093970060939600209106013091070121 +:101B20004091080150910901C701B6010E94AB2BF9 +:101B30000E946D2A709399006093980080913C02F6 +:101B4000882309F433C1C0903702D0903802E09066 +:101B50003902F0903A0220E030E0A901C701B60155 +:101B60000E94A72B1816D4F5809128029091290283 +:101B70008F3F2FEF920729F00196909329028093CF +:101B80002802C701B6010E94870F20E030E040E044 +:101B900051E40E94AB2B9B01AC0160E074E284E74E +:101BA0009BE40E94002A6B017C010E946D2A7093C5 +:101BB00097006093960020910601309107014091B3 +:101BC000080150910901C701B6010E94AB2B0E9488 +:101BD0006D2A709399006093980008C01092970046 +:101BE0001092960010929900109298006091310224 +:101BF000709132026F5F7F4F7093320260933102B7 +:101C0000209196003091970080E090E0232BF1F036 +:101C1000C0919600D09197000E94992A6B017C0197 +:101C2000BE0180E090E00E94992A9B01AC01609186 +:101C300033027091340280913502909136020E94F5 +:101C4000002A20E03FEF4FE757E410C00E94992A96 +:101C50006B017C0120E030EE4FEF54E460913302E1 +:101C60007091340280913502909136020E94AB2B24 +:101C70009B01AC01C701B6010E94A72B87FD96C04E +:101C800080912F028F5F80932F0290E020910303B9 +:101C90003091040382179307A0F080910E038823EC +:101CA00019F010922F020DC0809171008D7F8093EA +:101CB0007100809190008F738093900010923C028D +:101CC0007DC080913002C0912F02811128C0C09048 +:101CD0000803D0900903E0900A03F0900B0320E082 +:101CE00030E0A901C701B6010E94A72B1816BCF469 +:101CF00081E08093300210923702109238021092E5 +:101D0000390210923A02C0923302D0923402E09229 +:101D10003502F0923602C150C0932F0243C0109298 +:101D200030021092290210922802E0910503F091EE +:101D3000060348E0C49FE00DF11D112480819181CC +:101D4000A281B3818093370290933802A093390225 +:101D5000B0933A0220E030E040E85EE364817581B0 +:101D6000868197810E94AB2B6B017C0180910A01D7 +:101D7000682F70E080E090E00E94992A20E030E037 +:101D800048EC52E40E94002A9B01AC01C701B60155 +:101D90000E94AB2B60933302709334028093350220 +:101DA0009093360210923202109231028091070312 +:101DB00080FD04C010923C0210923B02FF91EF9113 +:101DC000DF91CF91BF91AF919F918F917F916F9153 +:101DD0005F914F913F912F91FF90EF90DF90CF90C7 +:101DE000BF90AF909F908F907F906F905F904F903B +:101DF0000F900FBE0F901F901895CF92DF92EF9229 +:101E0000FF92CF93DF936B017C01EA0180912A025C +:101E1000811102C00E94F80A8091070380FF46C02A +:101E20008091790290917A0208970CF03FC08091DE +:101E300071008D7F8093710080913C0281110E941E +:101E4000120B81E080933B0210922902109228022B +:101E500020E030E0A901C701B6010E94A72B1816A7 +:101E6000DCF48091790290917A02FC01EE0FFF1F61 +:101E7000EE0FFF1FEF5AFD4FC082D182E282F38244 +:101E8000FC01EE0FFF1FEF5BFD4FD183C083019676 +:101E900090937A028093790280917100826080939E +:101EA000710080919000806880939000DF91CF91C5 +:101EB000FF90EF90DF90CF9008958091070381709D +:101EC0000895809107038160809307030E94B524E1 +:101ED0000C94E004809107038E7F809307030C9499 +:101EE000B52480917B0290E0019666E070E00E944C +:101EF000792D80937B02089580917B0290E0019779 +:101F000066E070E00E94792D80937B0208958F92A5 +:101F10009F92AF92BF92CF92DF92EF92FF920F9378 +:101F20001F93CF93DF936B017C01C0912802D09166 +:101F30002902BE0180E090E00E94992A4B015C01D9 +:101F4000A701960160E070E08CE594E40E94002A0D +:101F50009B01AC01C501B4010E94AB2B0E946D2A0C +:101F600020917B02233009F473C028F4222351F01E +:101F70002130E9F02CC1243009F4A0C0253009F447 +:101F8000E0C025C180E090E0A0E0BFE380930601BF +:101F900090930701A0930801B093090110922B02BE +:101FA00010922C0210922D0210922E0210C110924B +:101FB0002B0210922C0210922D0210922E026431EC +:101FC000710540F46A30710560F520E030E040E8CA +:101FD0005EE32BC0693C710508F0AAC080E090E088 +:101FE0000E94992A20E030E040EA51E40E949729BB +:101FF00020E030E044E353E40E94002A9B01AC015E +:102000000E94AB2B20E030E040E05EE30E94AB2B6F +:102010009B01AC0160E070E080E09EE30E949729A4 +:1020200044C020E030E040E05FE3C701B6010E9419 +:10203000AB2B6B017C0180E090E0A0E0BEE38093DD +:10204000060190930701A0930801B0930901BFC056 +:1020500010922B0210922C0210922D0210922E023E +:102060004AE0469F9001479F300D1124C90168EB5B +:102070007BE00E94652DBC016C5D754077FF03C05D +:10208000719561957109882777FD8095982F0E9439 +:102090009B2A2EE333EC4EE259E30E94AB2B20E067 +:1020A00030E040EC5EE30E94982960930601709353 +:1020B0000701809308019093090189C010922B02B7 +:1020C00010922C0210922D0210922E02CE018370DB +:1020D0009927892BE1F0BE016170772780E090E0BD +:1020E0000E94992A20E030E040E05EE30E94AB2BA2 +:1020F00020E030E040E45FE30E949829609306010D +:102100007093070180930801909309010CC080E04F +:1021100090E0A0E0BFE38093060190930701A093B5 +:102120000801B0930901C770DD27CD2B09F04FC01E +:1021300010920601109207011092080110920901F5 +:1021400046C010922B0210922C0210922D02109277 +:102150002E0200E010E020E03FE300930601109320 +:10216000070120930801309309016739710578F15F +:1021700080E090E00E94992A20E030E047E153E4BB +:102180000E94972920E030E04AE754E40E94002AA8 +:1021900020E030E048E452E40E94AB2B20E030E045 +:1021A00040EA51E40E94DD2A0E94682A660F771FE8 +:1021B000660F771FFB01EE5AFE4F2081318142816D +:1021C0005381C701B6010E94AB2B6B017C01C70193 +:1021D000B601DF91CF911F910F91FF90EF90DF90AB +:1021E000CF90BF90AF909F908F90089580918C0278 +:1021F0000895CF93DF9300D01F92CDB7DEB79C0137 +:1022000080911303843019F593E099833B832A83EB +:102210009093E9008FEF9091E800815095FD06C002 +:1022200095ED9A95F1F700008111F5CF8091E800C6 +:1022300085FF0DC040E050E063E070E0CE01019604 +:102240000E945A138091E8008E778093E8000F90E7 +:102250000F900F90DF91CF910895CF93DF9300D02F +:102260001F92CDB7DEB720911303243021F522E071 +:1022700029839B838A8383E08093E9008FEF909189 +:10228000E800815095FD06C095ED9A95F1F70000A4 +:102290008111F5CF8091E80085FF0DC040E050E04E +:1022A00063E070E0CE0101960E945A138091E8002D +:1022B0008E778093E8000F900F900F90DF91CF9171 +:1022C0000895209113032430F1F422E02093E900D3 +:1022D0002FEF3091E800215035FD06C035ED3A95DD +:1022E000F1F700002111F5CF2091E80025FF0BC088 +:1022F00040E050E065E070E00E945A138091E800F1 +:102300008E778093E8000895CF93DF93EC0190914E +:102310001303943009F046C0809115018823D9F049 +:10232000809116018823B9F09093E9008FEF909186 +:10233000E800815095FD06C095E19A95F1F70000FF +:102340008111F5CF8091E80085FF2CC040E050E07E +:1023500060E170E017C081E08093E9008FEF909119 +:10236000E800815095FD06C095ED9A95F1F70000C3 +:102370008111F5CF8091E80085FF14C040E050E066 +:1023800068E070E0CE010E945A138091E8008E77D9 +:102390008093E80080E1FE01ACE7B2E001900D928D +:1023A0008A95E1F7DF91CF91089580911203811111 +:1023B00009C00E94EF140E944C158091E2008460D5 +:1023C0008093E200089510921203089508950895ED +:1023D0000C94932342E061EC81E00E94691442E096 +:1023E00061EC82E00E94691442E061EC83E00E94AB +:1023F000691442E161EC84E00C9469148091150346 +:10240000833009F455C030F4813071F0823009F422 +:102410008EC008958A3009F47AC08B3009F460C008 +:10242000893009F09CC020C080911403813A09F0E2 +:1024300096C08091E800877F8093E8008091180320 +:1024400090911903892B21F460E18CE792E003C09D +:1024500060E080E090E070E00E94A5138091E800C9 +:102460008B778093E800089580911403813209F0FE +:1024700076C08091180390911903009719F0039783 +:1024800009F06DC08091E800877F8093E80080911B +:10249000E80082FD05C0809113038111F8CF5FC071 +:1024A0008091F10080938C028091E8008B7753C07B +:1024B00080911403813A09F052C0809118039091E1 +:1024C0001903892B09F04BC08091E800877F809326 +:1024D000E8008091E80080FFFCCF8091150136C0B4 +:1024E000809114038132D9F58091180390911903DA +:1024F000892BA9F58091E800877F8093E8000E94EE +:102500009E1480911603809315010C94D41C809125 +:102510001403813221F58091E800877F8093E800E1 +:102520000E949E148091170380938D0208958091DC +:102530001403813AA1F48091E800877F8093E8003A +:102540008091E80080FFFCCF80918D028093F100A4 +:102550008091E8008E778093E8000C949E14089593 +:1025600084B7877F84BF88E10FB6F89480936000BA +:10257000109260000FBE90E080E80FB6F894809350 +:102580006100909361000FBE0E9441180E94EF14F9 +:102590000E944C158091E20084608093E200789460 +:1025A0000E94D2170E9443188BE091E00E94ED1721 +:1025B00080911303853069F40E94542380911103A4 +:1025C0008823B1F30E948223882391F30E9444134D +:1025D000EFCF0E944B18ECCF292F33272330310542 +:1025E000C9F064F42130310581F02230310509F061 +:1025F00043C08DE690E024E535E042C0213231054C +:10260000F1F02232310541F137C082E190E021EC56 +:1026100035E036C099278130910541F0823091052F +:1026200041F0892B49F5E0E5F5E005C0E2E2F5E08F +:1026300002C0E8EFF4E0849190E09F0121C0643093 +:10264000D8F4E62FF0E0EE0FFF1FE255FE4F208199 +:10265000318189E090E014C0643070F470E0FB01D7 +:10266000EE0FFF1FEA55FE4F20813181FB01EE5531 +:10267000FE4F808190E004C080E090E020E030E0F8 +:10268000FA0131832083089580E189BD82E189BD0B +:1026900009B400FEFDCF8091D8008F7D8093D800D3 +:1026A0008091E00082608093E0008091E00081FDF5 +:1026B000FCCF0895CF92DF92EF92FF920F931F937A +:1026C000CF93DF93EC018B016A010E94BD1481114D +:1026D00033C0C114D10439F0F60180819181081B07 +:1026E000190BC80FD91FE12CF12C0115110519F197 +:1026F0008091E80085FD16C08091E8008E77809378 +:10270000E800C114D10449F0F60180819181E80EFE +:10271000F91EF182E08285E00FC00E94BD1488237B +:1027200021F30AC089918093F10001501109FFEF54 +:10273000EF1AFF0ADACF80E0DF91CF911F910F915E +:10274000FF90EF90DF90CF90089520911A03309181 +:102750001B032617370748F06115710539F42091DE +:10276000E8002E772093E80001C0B90140E0611530 +:102770007105A9F120911303222309F443C02530E8 +:1027800009F442C02091E80023FD40C02091E800F8 +:1027900022FD32C02091E80020FFE9CF4091F300F4 +:1027A0002091F20030E0342BFC01CF01611571055E +:1027B00059F02830310540F481918093F100615047 +:1027C00071092F5F3F4FF1CF41E02830310509F00B +:1027D00040E02091E8002E772093E800C8CF411117 +:1027E000C9CF0AC080911303882361F0853061F05E +:1027F0008091E80083FD0AC08091E80082FFF2CF5B +:1028000080E0089582E0089583E0089581E00895CE +:1028100020911A0330911B032617370748F06115E2 +:10282000710539F42091E8002E772093E80001C06B +:10283000B901FC0120E06115710591F1809113034C +:10284000882309F440C0853009F43FC08091E80036 +:1028500083FD3DC08091E80082FD2FC08091E8009B +:1028600080FFE9CF2091F3008091F20090E0922B5D +:102870006115710559F08830910540F42491209339 +:10288000F1003196615071090196F2CF21E008976D +:1028900009F020E08091E8008E778093E800CBCFAC +:1028A0002111CCCF0AC080911303882361F08530B9 +:1028B00061F08091E80083FD0AC08091E80082FF0A +:1028C000F2CF80E0089582E0089583E0089581E0EA +:1028D0000895982F973058F59093E900981739F09C +:1028E0007091EC002091ED005091F00003C0242F76 +:1028F000762F50E021FF19C03091EB003E7F3093DE +:10290000EB003091ED003D7F3093ED003091EB0016 +:1029100031603093EB007093EC002093ED00509306 +:10292000F0002091EE0027FF07C09F5FD3CF8F708C +:102930008093E90081E0089580E008958091140378 +:1029400087FF11C08091E80082FD05C080911303CC +:102950008111F8CF11C08091E8008B770BC0809176 +:102960001303882349F08091E80080FFF8CF80911D +:10297000E8008E778093E80008952091E40030917C +:10298000E50095E64091EC00842F817040FF22C065 +:102990008091E80080FD1CC080911303882391F092 +:1029A000853091F08091EB0085FD10C04091E400EE +:1029B0005091E5004217530729F39A01915011F7FE +:1029C00084E0089582E0089583E0089581E0089509 +:1029D00080E008954091E80042FFDECF08950E9414 +:1029E0005D150E946515E0EEF0E0808181608083D6 +:1029F000E8EDF0E080818F77808319BCA7EDB0E02F +:102A00008C918E7F8C9380818F7E808310921203B5 +:102A100008950F931F93CF93DF930E945D150E943B +:102A20006515C8EDD0E088818F77888388818068BC +:102A3000888388818F7D888319BC1092130310923C +:102A40000F03109211031092100300EE10E0F80132 +:102A500080818B7F808388818160888342E060E011 +:102A600080E00E946914E1EEF0E080818E7F808337 +:102A7000E2EEF0E0808181608083808188608083E5 +:102A8000F80180818E7F8083888180618883DF91D7 +:102A9000CF911F910F910895E8EDF0E080818F7E36 +:102AA0008083E7EDF0E080818160808384E082BFF5 +:102AB00081E0809312030C940915E8EDF0E0808129 +:102AC0008E7F80831092E20008951092DA001092B7 +:102AD000E10008951F920F920FB60F9211242F93C9 +:102AE0003F934F935F936F937F938F939F93AF9396 +:102AF000BF93EF93FF938091E10082FF0BC0809121 +:102B0000E20082FF07C08091E1008B7F8093E100AB +:102B10000E94D1178091DA0080FF1FC08091D800F9 +:102B200080FF1BC08091DA008E7F8093DA00809155 +:102B3000D90080FF0DC080E189BD82E189BD09B463 +:102B400000FEFDCF81E0809313030E94D51105C0E4 +:102B500019BC109213030E94E3118091E10080FFE1 +:102B600019C08091E20080FF15C08091E2008E7F45 +:102B70008093E2008091E20080618093E200809186 +:102B8000D80080628093D80019BC85E0809313033D +:102B90000E94E7118091E10084FF30C08091E20043 +:102BA00084FF2CC080E189BD82E189BD09B400FEAB +:102BB000FDCF8091D8008F7D8093D8008091E10077 +:102BC0008F7E8093E1008091E2008F7E8093E2000F +:102BD0008091E20081608093E20080910F0388235E +:102BE00011F084E007C08091E30087FD02C081E01E +:102BF00001C083E0809313030E94E8118091E100FB +:102C000083FF29C08091E20083FF25C08091E1000D +:102C1000877F8093E10082E08093130310920F037B +:102C20008091E1008E7F8093E1008091E2008E7FB1 +:102C30008093E2008091E20080618093E20042E0B4 +:102C400060E080E00E9469148091F00088608093C9 +:102C5000F0000E94E611FF91EF91BF91AF919F911B +:102C60008F917F916F915F914F913F912F910F9035 +:102C70000FBE0F901F9018951F920F920FB60F92D4 +:102C800011242F933F934F935F936F937F938F9371 +:102C90009F93AF93BF93CF93DF93EF93FF93C09135 +:102CA000E900CF708091EC00D82FD17080FDD0E882 +:102CB0001092E9008091F000877F8093F000789473 +:102CC0000E9480161092E9008091F0008860809345 +:102CD000F000CD2BCF70C093E900FF91EF91DF9111 +:102CE000CF91BF91AF919F918F917F916F915F91A4 +:102CF0004F913F912F910F900FBE0F901F901895FD +:102D00001F93CF93DF93CDB7DEB7AA970FB6F89492 +:102D1000DEBF0FBECDBFE4E1F3E088E08E0F9091FF +:102D2000F10091938E13FBCF0E94FE118091E80079 +:102D300083FF1FC18091140390911503492F50E028 +:102D40004A30510508F015C1FA01EA5AFF4F0C94B8 +:102D50008D2D803881F0823809F00BC180911803E5 +:102D60008F708093E9008091EB0085FB882780F9C4 +:102D70001092E90006C08091100390911103911107 +:102D800082609091E800977F9093E8008093F10033 +:102D90001092F100C8C0282F2D7F09F0EAC08823C7 +:102DA00019F0823061F0E5C080911603813009F09E +:102DB000E0C0933009F080E0809311032BC0809134 +:102DC0001603811127C0809118038F7009F4D1C0B8 +:102DD0008093E9002091EB0020FF1CC0933021F488 +:102DE0008091EB00806214C09091EB009061909311 +:102DF000EB0021E030E0A90102C0440F551F8A9585 +:102E0000E2F74093EA001092EA008091EB008860BC +:102E10008093EB001092E9008091E800877F86C0E4 +:102E20008111A7C0109116031F778091E30080786D +:102E3000812B8093E3008091E800877F8093E800F6 +:102E40000E949E148091E80080FFFCCF8091E300F7 +:102E500080688093E300111102C082E001C083E02A +:102E60008093130386C08058823008F082C080911E +:102E70001603909117038C3D53E0950779F583E095 +:102E80008A838AE289834FB7F894DE01139620E0A3 +:102E90003EE051E2E32FF0E050935700E49120FF31 +:102EA00003C0E295EF703F5FEF708E2F90E0EA3045 +:102EB00010F0C79601C0C0968D939D932F5F24316B +:102EC00049F74FBF8091E800877F8093E8006AE26E +:102ED00070E0CE0101960E94A51314C0AE014F5FB1 +:102EE0005F4F609118030E94EC12BC01009709F437 +:102EF00040C09091E800977F9093E80089819A8183 +:102F00000E9408148091E8008B778093E80031C01C +:102F1000803879F58091E800877F8093E800809180 +:102F20000F038093F1008091E8008E778093E80092 +:102F30000E949E141EC081111CC0909116039230F5 +:102F4000C0F48091E800877F8093E80090930F039E +:102F50000E949E1480910F03811106C08091E300AE +:102F600087FD02C081E001C084E0809313030E94CA +:102F7000EA118091E80083FF0AC08091E800877F12 +:102F80008093E8008091EB0080628093EB00AA962A +:102F90000FB6F894DEBF0FBECDBFDF91CF911F916A +:102FA00008950895CF93809113038823A1F0C091D1 +:102FB000E900CF709091EC00892F817090FD80E83E +:102FC000C82B1092E9008091E80083FD0E948016D2 +:102FD000CF70C093E900CF910895909393028093AE +:102FE00092020895E0919202F0919302309721F0BD +:102FF0000190F081E02D099480E00895E091920223 +:10300000F0919302309721F00280F381E02D099432 +:103010000895E0919202F0919302309721F004809C +:10302000F581E02D0994089520919002309191024C +:103030008217930771F09093910280939002E09130 +:103040009202F0919302309721F00680F781E02DF3 +:103050000994089520918E0230918F028217930770 +:1030600071F090938F0280938E02E0919202F09122 +:103070009302309721F00084F185E02D09940895A2 +:1030800008950C9440180E94C7230E94180A0E94B9 +:103090004D240C94FC285F926F927F928F929F92A6 +:1030A000AF92BF92CF92DF92EF92FF920F931F9356 +:1030B000CF93DF9300D000D01F92CDB7DEB70E9430 +:1030C0005D0A9DE9C92E92E0D92E03E010E0AA2402 +:1030D000A394B12C502E802F0E94D80A4C01F601E7 +:1030E000729062906F016826792661147104A1F4D0 +:1030F0000150110978F78FEF89838A831B820E9420 +:10310000D0238160782F9D838C8349815A816B8184 +:103110008D810E94FB1838C08091F20281FD0E94CF +:10312000E10A2BE030E07501022E02C0EE0CFF1C1C +:103130000A94E2F7C70186219721892B09F1298397 +:103140005A828E209F2091E0892809F490E09B8389 +:103150000E94D0238160782F9D838C8349815A817E +:103160006B818D810E94FB18000F111FF801EB5637 +:10317000FD4F80819181E826F926F182E08204C02A +:103180002150310980F6B4CF0E9434261091940268 +:103190000E94F2171817D1F00E94F2178093940240 +:1031A0000F900F900F900F900F90DF91CF911F9184 +:1031B0000F91FF90EF90DF90CF90BF90AF909F90D6 +:1031C0008F907F906F905F900C94020A0F900F90F9 +:1031D0000F900F900F90DF91CF911F910F91FF9063 +:1031E000EF90DF90CF90BF90AF909F908F907F90A7 +:1031F0006F905F900895CF93DF93CDB7DEB72B9795 +:103200000FB6F894DEBF0FBECDBF4F8358876987D6 +:103210007A878B87DE01119686E0FD0111928A95EF +:10322000E9F785E0FE01379601900D928A95E1F766 +:1032300049815A816B817C818D819E810E94721FA0 +:103240002B960FB6F894DEBF0FBECDBFDF91CF91A6 +:103250000895CF93882309F4C2C0C82F823859F447 +:103260000E94F21781FDBBC089E30E944C220E949C +:10327000192389E30CC0833879F40E94F21780FD8A +:10328000AEC083E50E944C220E94192383E50E9470 +:103290008E22CF910C941923843859F40E94F2178E +:1032A00082FD9DC087E40E944C220E94192387E47E +:1032B000EECF8CEF8C0F813A48F48C2F0E9464285B +:1032C00081118DC08C2F0E944C22E3CF80E28C0FA5 +:1032D000883048F4C77081E001C0880FCA95EAF7CA +:1032E0000E94D222D6CF8BE58C0F833078F4C53A7A +:1032F00029F0C63A31F083E890E005C081E890E01B +:1033000002C082E890E0CF910C94141888E58C0FED +:10331000833108F064C0C83A39F1C93A41F1CA3A78 +:1033200049F1CB3A51F1CC3A59F1CD3A61F1C03B78 +:1033300069F1CE3A71F1CF3A79F1C13B81F1C23BEB +:1033400089F1C33B91F1C43B99F1C53BA1F1C63B67 +:10335000A9F1C73BB1F1C83BB9F1C93BC1F1CA3BC7 +:10336000C9F180E090E038C082EE90E035C089EE8F +:1033700090E032C08AEE90E02FC085EB90E02CC048 +:1033800086EB90E029C087EB90E026C08CEC90E0C3 +:1033900023C08DEC90E020C083E891E01DC08AE856 +:1033A00091E01AC082E991E017C084E991E014C06D +:1033B00081E292E011C083E292E00EC084E292E0EA +:1033C0000BC085E292E008C086E292E005C087E289 +:1033D00092E002C08AE292E0CF910C942A18CF9139 +:1033E0000895882309F44BC0823859F40E94F217DB +:1033F00081FF45C089E30E944C220E94192389E382 +:103400000CC0833871F40E94F21780FF38C083E546 +:103410000E944C220E94192383E50E948E220C9464 +:103420001923843859F40E94F21782FF28C087E4D8 +:103430000E944C220E94192387E4EFCF9CEF980F43 +:10344000913A58F390E2980F983050F4877091E0D9 +:1034500001C0990F8A95EAF7892F0E94D822DFCF01 +:103460009BE5980F933020F480E090E00C941418C2 +:10347000885A833120F480E090E00C942A18089553 +:10348000882321F00E94D2220C94192308958823C6 +:1034900021F00E94D8220C94192308957F928F92D4 +:1034A0009F92AF92BF92CF92DF92EF92FF920F93D3 +:1034B0001F93CF93DF931F92CDB7DEB77C01C62E4B +:1034C000772EFC01058102950F70128111110E9467 +:1034D000EF220E944522882379F0112369F080E2CF +:1034E0008C0D883048F082E00E942E220E944522F6 +:1034F00091E0D82ED92601C0D12CE72DE295EF70AE +:10350000F0E0E05AFF4F0C948D2D872D807F072D22 +:103510000F70882311F00295007F112389F000239A +:1035200009F499C180E28C0D883020F4802F0E942C +:10353000D22203C0802F0E94E2220E9419238BC155 +:103540008C2D0E94F119002309F4C3C180E28C0D77 +:10355000883020F4802F0E94D82203C0802F0E9440 +:10356000E8220E941923B5C1872D807F972D9F7077 +:10357000803211F4892F03C0892F8295807FCC205F +:1035800021F0F1E0CF16A1F01DC0112339F0002386 +:1035900019F1013009F50E9402239BC1002319F0A3 +:1035A000013009F496C189830E940523898110C1E5 +:1035B000112321F0063008F08CC10EC0053008F050 +:1035C00088C106C1112359F0002331F0F70195811C +:1035D00090FF41C19F7095830E94401A7AC10023D9 +:1035E00009F4F6C03EC1872D86958695837090E0DC +:1035F000009719F0019761F06CC1112321F08C2D17 +:10360000972D937002C080E090E00E94141861C171 +:10361000112321F08C2D972D937002C080E090E053 +:103620000E942A1856C18C2D112319F00E943C25A6 +:1036300002C00E94A4250E9429264BC1872D8370B9 +:1036400009F052C0111145C18C2D82958695877065 +:10365000880F880F9C2D9F70892E912CA12CB12C46 +:10366000082E04C0880C991CAA1CBB1C0A94D2F713 +:10367000C4FE14C00FE010E020E030E0B901A80162 +:1036800004C0440F551F661F771F8A95D2F7CB01E0 +:10369000BA01609570958095909503C060E070E0E8 +:1036A000CB01272D26952695237030E02230310559 +:1036B00069F02330310589F0682979298A299B2905 +:1036C0002130310571F00E94BA2003C1682979299F +:1036D0008A299B290E94D620FCC00E94BA20C501DD +:1036E000B4010E949E20F5C0112319F0872D81702E +:1036F00001C08695882309F4ECC08C2D82958695AF +:103700008770880F880F9C2D9F70892E912CA12C7B +:10371000B12C082E04C0880C991CAA1CBB1C0A944E +:10372000D2F7C4FE14C00FE010E020E030E0B90191 +:10373000A80104C0440F551F661F771F8A95D2F752 +:10374000CB01BA01609570958095909503C060E0BB +:1037500070E0CB01272D269526952370422F50E04F +:103760004230510569F04330510589F068297929C3 +:103770008A299B294130510571F00E949421A9C0EA +:10378000682979298A299B290E94B021A2C00E9418 +:103790009421C501B4010E9478219BC08C2D90E03A +:1037A000FC01E05EF109E531F10508F050C0E05997 +:1037B000FF4F0C948D2D0C2D0F70872D8F711123C1 +:1037C00021F00E941121802F07CF0E943221802FEB +:1037D0000E94471A7EC0112341F0053008F079C0DD +:1037E000872D8F710E94572174C0063008F071C078 +:1037F000F7CF112339F0872D8F710E94112169C0F5 +:103800001123C9F3872D8F710E94322162C01123C9 +:1038100029F0872D8F710E94FC205BC00E94F2204E +:1038200058C0112351F0172D1F71812F0E941121B3 +:1038300063E0812F0E9425224CC081E00E942E224D +:10384000023008F446C082E00E942E2242C01123BA +:1038500031F0002381F28C2D0E9429193AC00023F7 +:1038600089F28C2D0E94F11934C0472D4F706C2DB8 +:10387000C7010E945B040E9416202BC0111129C0B1 +:10388000472D4F7050E042305105B9F04CF44115CE +:10389000510581F041305105E1F40E94242919C0FD +:1038A0004330510569F04430510599F48C2D0E9444 +:1038B00076290FC00E940D290CC00E94402909C022 +:1038C0000E94532906C0472D4F706C2DC7010E94DE +:1038D000E306DD20F9F00E94212280FD1BC0F701E4 +:1038E00012820E941B220E941121C7010E94991C72 +:1038F0000E941B220F90DF91CF911F910F91FF909B +:10390000EF90DF90CF90BF90AF909F908F907F907F +:103910000C9432210F90DF91CF911F910F91FF9066 +:10392000EF90DF90CF90BF90AF909F908F907F905F +:1039300008950F931F93CF93DF93EC0188819981B2 +:103940002B813C81232BB9F09F3F11F48F3F99F0DD +:10395000CE010E94E204882371F0688179818A8116 +:103960000E9417228C010E94CC210E949320B80152 +:10397000CE010E944E1ADF91CF911F910F910895B1 +:103980000E94EF220E94FF220E94C4220E9419235B +:103990000E94DA260E94292680E090E00E941418F6 +:1039A00080E090E00C942A180E94DF220C94C01C46 +:1039B0000E940C22292F22952F7030E02C303105E7 +:1039C0004CF42A3031056CF4225031092230310593 +:1039D000A8F407C02C30310569F02F30310551F0C3 +:1039E0000DC0803F69F018F4803E40F409C0843F68 +:1039F00029F406C093FB882780F9089580E0089594 +:103A000081E00895CF93DF9300D000D01F92CDB70F +:103A1000DEB70F900F900F900F900F90DF91CF9126 +:103A20000895CF93DF9300D000D000D0CDB7DEB79C +:103A300026960FB6F894DEBF0FBECDBFDF91CF91B3 +:103A400008951F93CF93DF93C0919D0216E080915C +:103A50009E02C81799F0D0E01C9FF0011D9FF00D49 +:103A60001124E156FD4F408151816281738184812F +:103A700095810E94111D2196C770E9CFDF91CF91EA +:103A80001F9108954091CF025091D0026091D102D0 +:103A90007091D2028091D3029091D4020C94111DA6 +:103AA0008091D40282958F7009F054C08091D10228 +:103AB000882309F44FC080919D02A0919E026091DD +:103AC000CF027091D0024091D2025091D302B6E061 +:103AD0008A1709F43FC090E041155105C1F17F3FBD +:103AE00011F46F3FA1F1B89FF001B99FF00D1124BF +:103AF000E156FD4F218172132AC02081621327C035 +:103B00002281211124C0238134812417350710F428 +:103B100021503109241B350B283C3105C0F420917C +:103B2000D4022F7020612093D40226E0289FF00158 +:103B3000299FF00D1124EC55FD4F80818F7080611D +:103B400080838FEC92E00E94991C0C94211D0196B9 +:103B50008770BECF0895CF92DF92EF92FF920F93BE +:103B60001F93CF93DF93CDB7DEB762970FB6F8946C +:103B7000DEBF0FBECDBF8C0185E0F801DE011D96D2 +:103B800001900D928A95E1F7D8014C9111965C91C4 +:103B9000119712966C9112971396CD90DC90149712 +:103BA0003091CF027091D0028091D2029091D302D5 +:103BB000009709F46BC17F3F19F43F3F09F466C1D8 +:103BC000E090D102EE2009F4C0C02091D402C816C2 +:103BD000D90628F0F601E81BF90BCF0104C0809547 +:103BE00090958C0D9D1DFF24F394883C910578F0F1 +:103BF000F12C207F09F0C6C07C2DD98AC88A89891A +:103C00000E94021D8FEC92E00E94991CB1C0822F8D +:103C1000807F09F046C0751314C0341312C06111BF +:103C200010C02F7020612093D4020E94421D8FEC9F +:103C300092E00E94991C8091D402D80115968C9331 +:103C40002EC0CD2819F15F3F11F44F3FF9F0F62E49 +:103C500061111CC080919D0220919E0236E0821766 +:103C600009F45AC090E0389FF001399FF00D1124FB +:103C7000E156FD4F7181571306C07081471303C091 +:103C80007281711103C001968770E9CFF62E662309 +:103C900009F418C18091D40281608093D402F12C80 +:103CA00011C1751308C0341306C0611104C080919E +:103CB000D402D801C3C04D875E878D859E856A8BEF +:103CC0000E94D81C6A898823E1F16623D1F12091F2 +:103CD000D402822F82958F7090E0029774F08091C9 +:103CE000CF029091D00298878F831986DB86CA868F +:103CF0002C87CE0107960E94991C86E0F801AFEC54 +:103D0000B2E001900D928A95E1F70E94501D0E9449 +:103D1000421DFF24F394D6C04D875E878D859E8516 +:103D20000E940C22292F22952F7030E0223031057D +:103D30000CF0BCC09F7009F0B6C0805E883008F4FB +:103D4000C1C0C8010E94991CE4CFC816D90608F466 +:103D500053C0F601E81BF90BCF01883C910508F42C +:103D600050C0F12C7C2DD98AC88A89890E94021DF5 +:103D7000EFECF2E086E0DF011D928A95E9F70E9400 +:103D8000421DA0C0751314C0341312C0611110C0BD +:103D90008091D402F8018583C8010E94991C86E0B5 +:103DA000EFECF2E0DF011D928A95E9F7FE2C8AC064 +:103DB0004D875E878D859E856A8B0E94D81C6A8997 +:103DC000882309F4BECF662309F4BBCF2091D40227 +:103DD000822F82958F7090E002970CF48ECF8091A5 +:103DE000CF029091D0029A8389831B82DD82CC829C +:103DF0002E83CE0101967FCF809590958C0D9D1DD1 +:103E0000ACCFF62E662309F49CCF75132EC0341365 +:103E10002CC02091D40220FD1FC0822F82958F706C +:103E2000D9F0D80115962C9315978F3049F08F5FF4 +:103E3000982F9295907F822F8F70892B15968C9357 +:103E4000C8010E94991C86E0F801AFECB2E0019035 +:103E50000D928A95E1F793CF86E0F801AFECB2E0DE +:103E600001900D928A95E1F72DC04D875E878D8573 +:103E70009E850E94D81C811140CF8091D402816020 +:103E80008093D402C8010E94991C1CC0662309F4C7 +:103E900058CF4D875E878D859E850E94D81C8823CC +:103EA00009F44FCF2ACF811148CF0CC024303105FF +:103EB0000CF047CF9F7009F440CFF8019581907FB7 +:103EC00009F03BCF8F2D62960FB6F894DEBF0FBE80 +:103ED000CDBFDF91CF911F910F91FF90EF90DF90B9 +:103EE000CF9008951F93CF93DF93CDB7DEB72C9774 +:103EF0000FB6F894DEBF0FBECDBF4F8358876987DA +:103F00007A878B879C87CE0107960E94AB1D8823FA +:103F100069F08F8198852A853B85232BF1F19F3F9E +:103F200009F063C08F3F09F060C037C086E0FE0132 +:103F30003796DE01119601900D928A95E1F76F8117 +:103F40007885EA85FB85309741F17F3F11F46F3F1B +:103F500021F120919E0230E0C901019687709927D6 +:103F600040919D0250E08417950709F447C069838A +:103F70007A83FD83EC8396E0929FD001939FB00DEE +:103F80001124A156BD4FFE01319601900D929A95D4 +:103F9000E1F780939E020E94211D16E080919D0210 +:103FA00090919E028917C1F1189FC001112481567A +:103FB0009D4F0E94AB1D882379F1E0919D021E9FC9 +:103FC000F0011124E156FD4F4081518162817381DE +:103FD000848195810E94111D80919D0290E001963F +:103FE0008770992780939D02D9CF4F815885698525 +:103FF0007A858B859C850E94111DCFCF0E94D41C91 +:1040000010929E0210929D02EFECF2E086E0DF013A +:104010001D928A95E9F7C1CF2C960FB6F894DEBFB2 +:104020000FBECDBFDF91CF911F910895EF92FF9208 +:104030000F931F93CF93DF938C01009709F46CC00B +:10404000F12CEE24E394E8012196F8018491843761 +:1040500040F4843008F051C0813081F0823019F191 +:104060005BC0853709F444C0A8F19CE7980F9037EE +:1040700008F052C08F770E94F11941C00E5F1F4FA8 +:10408000FE01C49180E28C0F883048F4C7708E2DF9 +:1040900001C0880FCA95EAF70E94F22214C08C2F43 +:1040A0000E9429192DC00E5F1F4FFE01C49180E2AE +:1040B0008C0F883058F4C7708E2D01C0880FCA95B8 +:1040C000EAF70E94F8220E9419231AC08C2F0E943E +:1040D000F11916C00E5F1F4FFE01C491CC2381F071 +:1040E0008FE99FE00197F1F700C00000C150F6CFC3 +:1040F0000E5F1F4FFE01F49003C00E9429198E012C +:104100008F2D882309F49FCFEFE9FFE03197F1F776 +:1041100000C000008150F5CFDF91CF911F910F912A +:10412000FF90EF90089508956093D9027093DA029A +:104130008093DB029093DC020C94C01C0F931F93BE +:104140000091D9021091DA022091DB023091DC0259 +:10415000DC01CB01802B912BA22BB32B8093D902B6 +:104160009093DA02A093DB02B093DC021F910F91CF +:104170000C94C01C0F931F930091D9021091DA0286 +:104180002091DB023091DC02DC01CB018023912302 +:10419000A223B3238093D9029093DA02A093DB0287 +:1041A000B093DC021F910F910C94C01C0F931F93CE +:1041B0000091D9021091DA022091DB023091DC02E9 +:1041C000DC01CB0180279127A227B3278093D90256 +:1041D0009093DA02A093DB02B093DC021F910F915F +:1041E0000C94C01C1092D5021092D6021092D702E5 +:1041F0001092D8020C94C01C41E050E060E070E0E6 +:1042000004C0440F551F661F771F8A95D2F740934D +:10421000D5025093D6026093D7027093D8020C94C3 +:10422000C01C41E050E060E070E004C0440F551F46 +:10423000661F771F8A95D2F78091D5029091D6029A +:10424000A091D702B091D802482B592B6A2B7B2B17 +:104250004093D5025093D6026093D7027093D80250 +:104260000C94C01C41E050E060E070E004C0440FDA +:10427000551F661F771F8A95D2F740955095609518 +:1042800070958091D5029091D602A091D702B091FD +:10429000D802482359236A237B234093D5025093A5 +:1042A000D6026093D7027093D8020C94C01C41E0F0 +:1042B00050E060E070E004C0440F551F661F771F98 +:1042C0008A95D2F78091D5029091D602A091D7021B +:1042D000B091D802482759276A277B274093D502F7 +:1042E0005093D6026093D7027093D8020C94C01CEE +:1042F0000F931F930091D5021091D6022091D702FF +:104300003091D802DC01CB01802B912BA22BB32B57 +:104310008093D5029093D602A093D702B093D8028F +:104320001F910F910C94C01C0F931F930091D50205 +:104330001091D6022091D7023091D802DC01CB0136 +:1043400080239123A223B3238093D5029093D60296 +:10435000A093D702B093D8021F910F910C94C01C68 +:104360000F931F930091D5021091D6022091D7028E +:104370003091D802DC01CB0180279127A227B327F7 +:104380008093D5029093D602A093D702B093D8021F +:104390001F910F910C94C01C0895CF92DF92EF9261 +:1043A000FF920F931F93CF93DF938C01C090D9029C +:1043B000D090DA02E090DB02F090DC028091D5022E +:1043C0009091D602A091D702B091D802C82AD92ADA +:1043D000EA2AFB2ACFE1D0E0D701C6010C2E04C0A7 +:1043E000B695A795979587950A94D2F780FF06C052 +:1043F000B8018C2F0E946809019721F4219760F77A +:1044000080E001C08C2FDF91CF911F910F91FF9021 +:10441000EF90DF90CF900895CF93DF93EC010E944F +:10442000CD21BE010E946809DF91CF910895CB0193 +:104430000E940C2208958091DD02859585958595D1 +:1044400008958091DD028770089598E0899F90011A +:104450001124262B2093DD020C9411212091DD02E2 +:10446000809582238093DD02982F977069F430E065 +:10447000482F552747FD50952417350729F0859576 +:10448000859585950C94322108959091DD02977061 +:1044900081E009F480E0089590911501992321F0BD +:1044A00090911601911109C02091170130911801C6 +:1044B000F90132969FEF40E01FC0982F9695969590 +:1044C00096959F3050F5E0911701F0911801E90F92 +:1044D000F11D877021E030E0A90102C0440F551F93 +:1044E0008A95E2F7CA019181892B818308959F3FC4 +:1044F00039F04F5F4E3041F051915813F8CF0DC055 +:104500005111F7CF942FF5CF9F3F39F0F901E90F03 +:10451000F11D97FDFA9582830895089590911501F4 +:10452000992321F090911601911109C02091170152 +:1045300030911801F9013296205F3F4F1FC0982F2C +:104540009695969596959F30F0F4E0911701F0912D +:104550001801E90FF11D877021E030E0A90102C0C8 +:10456000440F551F8A95E2F7CA01809591818923EE +:10457000818308953196E217F30729F0908198130B +:10458000F9CF1082F7CF089581E090E0E091170114 +:10459000F0911801E80FF91F108201968031910502 +:1045A000A9F708959091F102892B8093F102089563 +:1045B00080959091F10289238093F10208951092E1 +:1045C000F10208959091F002892B8093F0020895F2 +:1045D00080959091F00289238093F00208951092C3 +:1045E000F00208959091EF02892B8093EF020895D5 +:1045F00080959091EF0289238093EF0208951092A5 +:10460000EF0208958093DE0208951092DE0208956D +:104610008091170190911801FC0131969C01205F57 +:104620003F4F80E0919191118F5FE217F307D1F72F +:104630000895E0911701F09118018091F1028083B3 +:10464000E0911701F091180190818091F002892B7F +:104650008083E0911701F091180190818091EF0221 +:10466000892B80838091DE02882361F0E09117011D +:10467000F09118019081892B80830E940823811179 +:104680001092DE0280911701909118010C94FE1790 +:1046900020E0009739F0AC01415051098423952363 +:1046A0002F5FF7CF822F089580911303843039F163 +:1046B0001092F30220E488E190E00FB6F894A895F8 +:1046C000809360000FBE2093600080E00E94C203D0 +:1046D00080E00E94020A83B7817F846083BF83B732 +:1046E000816083BF7894889583B78E7F83BF88E18C +:1046F0000FB6F89480936000109260000FBE08958A +:104700000895089580E00E94C2030E9480230E94C1 +:104710005D0A0E9481230E94E20A91E0811101C09A +:1047200090E0892F08950E94D41C80E00E94C2036B +:104730000E94FC280E94F2170C94020A1F920F920A +:104740000FB60F9211248F939F93AF93BF938091D5 +:10475000F302811113C08091F4029091F502A091AF +:10476000F602B091F7024196A11DB11D8093F402AB +:104770009093F502A093F602B093F702BF91AF9128 +:104780009F918F910F900FBE0F901F90189582E010 +:1047900084BD93E095BD9AEF97BD80936E00089518 +:1047A0002FB7F8948091F4029091F502A091F6024F +:1047B000B091F7022FBF0895CF92DF92EF92FF9250 +:1047C0000F931F932FB7F8944091F4025091F50284 +:1047D0006091F6027091F7022FBF6A017B01EE240F +:1047E000FF248C0120E030E0C016D106E206F3067B +:1047F00010F4415051099A01281B390BC9011F912E +:104800000F91FF90EF90DF90CF9008951F920F923D +:104810000FB60F9211248F939F93AF93BF93809104 +:10482000F4029091F502A091F602B091F702019680 +:10483000A11DB11D8093F4029093F502A093F6029E +:10484000B093F702BF91AF919F918F910F900FBEE0 +:104850000F901F9018950E94EF14F8942FEF87EA9D +:1048600091E6215080409040E1F700C0000087E0D1 +:1048700090EBDC0180931E0390931F03A093200311 +:10488000B09321039CE088E10FB6F894A89580933B +:1048900060000FBE90936000FFCF0E948C248111B6 +:1048A00002C00E9468240E9497248093F2020E9412 +:1048B0009F2480931C0387FB882780F9809316012F +:1048C0000E949B24682F70E080E090E00C9494207C +:1048D0006DEE7EEF80E090E00E94B32D60E082E01C +:1048E00090E00E94A12D60E083E090E00E94A12D65 +:1048F00060E084E090E00E94A12D60E085E090E01F +:104900000E94A12D60E086E090E00E94A12D6FEF53 +:1049100087E090E00C94A12D80E090E00E949B2D18 +:1049200021E08D3E9E4F09F020E0822F089582E025 +:1049300090E00C94932D83E090E00C94932D84E010 +:1049400090E00C94932D682F84E090E00C94A12DBE +:1049500086E090E00C94932D682F86E090E00C9414 +:10496000A12D87E090E00C94932D682F87E090E0D4 +:104970000C94A12D8091FA0280FF0BC060911C0164 +:1049800085E0689FB00111247595679575956795C9 +:104990002BC081FF09C060911C0185E0689FB001B8 +:1049A00011247595679520C082FF07C060911C0196 +:1049B00085E0689FB001112417C09091FB029923F4 +:1049C000D1F060911B01961788F720911C0185E0BA +:1049D000289F90011124929FA001939F500D1124B4 +:1049E00070E0CA010E94792D6038710540F46115AC +:1049F000710539F002C065E070E0862F08958FE7F9 +:104A0000089581E008958091FA0280FF08C06091C6 +:104A10001A0170E0759567957595679521C081FFBE +:104A200006C060911A0170E07595679519C082FF04 +:104A300004C060911A0170E010C09091FB029923AC +:104A4000C1F0609119019617A0F780911A01899F12 +:104A5000C001112470E00E94792D6038710528F49E +:104A60006115710521F0862F08958FE7089581E083 +:104A7000089561E070E0F4CF803F21F40E94BA24F1 +:104A8000819504C0813F29F40E94BA248093FE02DC +:104A90000895823F21F40E94BA24819504C0833F87 +:104AA00029F40E94BA248093FD020895893F19F4E5 +:104AB0000E94032505C08A3F31F40E940325819599 +:104AC0008093FF0208958B3F21F40E940325819576 +:104AD00004C08C3F29F40E940325809300030895AD +:104AE000843F21F48091FC02816017C0853F21F44E +:104AF0008091FC02826011C0863F21F48091FC020B +:104B000084600BC0873F21F48091FC02886005C05F +:104B1000883F31F48091FC0280618093FC0208950B +:104B20008D3F21F48091FA0281600BC08E3F21F409 +:104B30008091FA02826005C08F3F29F48091FA02C9 +:104B400084608093FA020895803F39F48091FE02D8 +:104B500087FF6CC01092FE0269C0813F29F48091EA +:104B6000FE021816BCF362C09091FD02823F29F448 +:104B700097FF5CC01092FD0259C0833F19F41916CB +:104B8000CCF354C0893F41F48091FF0218160CF019 +:104B90004DC01092FF024AC08A3F29F48091FF0263 +:104BA00087FF44C0F6CF8B3F39F48091000387FF25 +:104BB0003DC0109200033AC08C3F29F4809100035D +:104BC0001816BCF333C0843F21F48091FC028E7F21 +:104BD00017C0853F21F48091FC028D7F11C0863F74 +:104BE00021F48091FC028B7F0BC0873F21F48091E0 +:104BF000FC02877F05C0883F31F48091FC028F7EE4 +:104C00008093FC0213C08D3F21F48091FA028E7FC5 +:104C10000BC08E3F21F48091FA028D7F05C08F3F3B +:104C200029F48091FA028B7F8093FA028091FD0231 +:104C300081110EC08091FE0281110AC08091FF0295 +:104C4000811106C080910003811102C01092FB0205 +:104C500008958CEF92E00E9409180E94D02390934F +:104C6000F9028093F80208951F93CF93DF93809108 +:104C7000F8029091F9020E94DC23AC019091FB02B2 +:104C8000992321F020911D0130E006C020911E01E2 +:104C90008AE0289F900111244217530708F486C028 +:104CA0008091FD02C091FE02D091FF02109100039D +:104CB000811107C0C11176C0D11174C0111172C029 +:104CC00075C09F3F19F09F5F9093FB02181624F464 +:104CD0000E94BA248093FD028091FD0287FF05C0E7 +:104CE0000E94BA2481958093FD021C1624F40E9430 +:104CF000BA248093FE028091FE0287FF05C00E94C5 +:104D0000BA2481958093FE026091FD02662339F1F9 +:104D1000C091FE02CC2319F1772767FD7095872F8C +:104D2000972F0E949B2A23E333E343E35FE30E9430 +:104D3000AB2B0E94682A6093FD026C2F772767FDDA +:104D40007095872F972F0E949B2A23E333E343E339 +:104D50005FE30E94AB2B0E94682A6093FE021D163F +:104D600024F40E9403258093FF028091FF0287FFB5 +:104D700005C00E94032581958093FF02111624F43B +:104D80000E940325809300038091000387FF05C0E4 +:104D90000E940325819580930003DF91CF911F919D +:104DA0000C9429269F3F09F08ECF96CFDF91CF91AB +:104DB0001F910895ECEFF2E085E0DF011D928A95E6 +:104DC000E9F71092FB021092FA020895833081F104 +:104DD00028F4813059F08230D1F00895853009F4FB +:104DE00049C0B8F1863009F456C0089580911E017B +:104DF000262F30E0280F311D2F3F310524F4680F96 +:104E000060931E0108958FEF80931E010895809195 +:104E10001D01262F30E0280F311D2F3F310524F4CE +:104E2000680F60931D0108958FEF80931D01089511 +:104E300080911C01262F30E0280F311D2F3F3105B6 +:104E400024F4680F60931C0108958FEF80931C0178 +:104E5000089580911B01262F30E0280F311D2F3F30 +:104E6000310524F4680F60931B0108958FEF809340 +:104E70001B01089580911A01262F30E0280F311D63 +:104E80002F3F310524F4680F60931A0108958FEFC6 +:104E900080931A01089580911901262F30E0280F80 +:104EA000311D2F3F310524F4680F609319010895D7 +:104EB0008FEF809319010895833011F128F4813028 +:104EC00049F0823091F00895853081F120F18630EB +:104ED000C1F1089580911E01681720F4861B80930C +:104EE0001E01089510921E01089580911D016817FA +:104EF00020F4861B80931D01089510921D010895D2 +:104F000080911C01681720F4861B80931C01089572 +:104F100010921C01089580911B01681720F4861BD4 +:104F200080931B01089510921B01089580911A012E +:104F3000681720F4861B80931A01089510921A01B5 +:104F4000089580911901681720F4861B8093190138 +:104F500008951092190108950F931F93873208F056 +:104F600048C08E3108F08DC0803109F477C008F553 +:104F7000873009F461C068F4863009F09DC08091E3 +:104F8000F202817F8E7F8093F20281E080930203A0 +:104F900094C08B3009F489C08E3009F08DC08091A7 +:104FA000F20282FB222720F991E0922790FB82F9FE +:104FB0005EC0863109F479C060F4813109F07CC0AB +:104FC0000E94D41C9091160181E0892780931601DC +:104FD0006CC0893109F469C08B3109F06DC08091D2 +:104FE000F20281FB222720F991E0922790FB81F9C0 +:104FF0003EC0883309F459C050F4893209F457C0CF +:10500000853309F454C0873209F451C055C0833444 +:1050100009F44DC028F48A3308F44EC0895332C0D5 +:10502000883409F049C00E94D41C0E94120B0E94CF +:10503000D9040E942B2439C09091F202892F8095C7 +:10504000817080FB90F929F0966098609093F2024D +:1050500034C0997F977F9093F20227C08091F2022B +:1050600083FB222720F991E0922790FB83F980931C +:10507000F2029923D1F08091F20281608093F202D2 +:1050800014C08D5141E050E060E070E08A019B0166 +:1050900004C0000F111F221F331F8A95D2F7C901C8 +:1050A000B8010E9494200E94D41C81E006C061E0F7 +:1050B00070E080E090E0F5CF80E01F910F910895BF +:1050C00080E0089580E00895CF93C82F8091020377 +:1050D000813069F018F08230C9F184C0E091170185 +:1050E000F09118018081823209F07EC007C0E09102 +:1050F0001701F09118018081823261F48C2F0E9497 +:105100006028811104C08C2F0E94AC271DC081E053 +:1051100090E01AC08C2F0E946228811114C0C43103 +:1051200079F048F4CB3079F0C03109F061C082E009 +:105130008093020308C0C93219F0C83321F058C067 +:105140001092020355C081E0817054C0C93291F1C0 +:1051500020F5C43179F1B0F4C73009F047C08EE1D1 +:1051600080931E0182E380931D018AE080931C01DD +:1051700084E180931B0188E080931A0188E2809388 +:10518000190134C0CE51C63088F5EC2FF0E0EA5456 +:10519000FE4F80818093010329C0CE34E9F020F4D2 +:1051A000CB3421F56AE013C0C13579F0C235F1F492 +:1051B00061E00DC080910103882319F01092010372 +:1051C00015C081E08093020315C061E006C08091A4 +:1051D00001030E94E6260AC06AE0809101030E9452 +:1051E0005C2704C01092020380E004C081E002C08A +:1051F00080E0AACFCF9108950E948C24811102C033 +:105200000E9468240E94A82480931D0380FF02C08E +:10521000869501C080E00C94C20380911D03982FF5 +:105220009695292F30E0233031054CF49F5F990F7C +:105230008170892B816080931D030E94AC24809132 +:105240001D0386950C94C20380911D03982F96959B +:1052500091F09158990F8170892B80931D038E7F57 +:1052600091E009F490E080911D0390FB80F9809318 +:105270001D030E94AC2480911D0386950C94C203EB +:1052800080911D03982F909590FB80F980931D03CA +:105290000E94AC2480911D0380FF02C0869501C04E +:1052A00080E00C94C20390911D03892F86958F5F37 +:1052B0008F779170843028F4880F892B80931D0399 +:1052C00002C090931D0380911D038E7F91E009F42D +:1052D00090E080911D0390FB80F980931D030E9454 +:1052E000AC2480911D0386950C94C20320911D036C +:1052F000922F96958927982F990F822F8170892B4D +:1053000080931D038E7F91E009F490E080911D034E +:1053100090FB80F980931D030E94AC2480911D03B3 +:1053200086950C94C20380911D038695089550586C +:10533000BB27AA270ED0D1C1C2D130F0C7D120F0EF +:1053400031F49F3F11F41EF4B7C10EF4E095E7FB72 +:105350009FC1E92FD3D180F3BA176207730784077F +:10536000950718F071F49EF5EBC10EF4E0950B2E45 +:10537000BA2FA02D0B01B90190010C01CA01A001A7 +:105380001124FF27591B99F0593F50F4503E68F102 +:105390001A16F040A22F232F342F4427585FF3CF43 +:1053A000469537952795A795F0405395C9F77EF414 +:1053B0001F16BA0B620B730B840BBAF09150A1F05D +:1053C000FF0FBB1F661F771F881FC2F70EC0BA0FE3 +:1053D000621F731F841F48F4879577956795B7956B +:1053E000F7959E3F08F0B3CF9395880F08F0992763 +:1053F000EE0F97958795089527D108F481E00895D9 +:105400000CD06BC163D140F05AD130F021F45F3F32 +:1054100019F03EC1511195C14FC170D198F3992334 +:10542000C9F35523B1F3951B550BBB27AA27621768 +:105430007307840738F09F5F5F4F220F331F441FAD +:10544000AA1FA9F333D00E2E3AF0E0E830D09150E5 +:105450005040E695001CCAF729D0FE2F27D0660FD2 +:10546000771F881FBB1F261737074807AB07B0E811 +:1054700009F0BB0B802DBF01FF2793585F4F2AF027 +:105480009E3F510568F004C15CC15F3FECF3983E5C +:10549000DCF3869577956795B795F7959F5FC9F784 +:1054A000880F911D9695879597F90895E1E0660F0D +:1054B000771F881FBB1F621773078407BA0720F086 +:1054C000621B730B840BBA0BEE1F88F7E0950895EF +:1054D00004D06894B11135C1089518D188F09F5750 +:1054E00090F0B92F9927B751A0F0D1F0660F771F30 +:1054F000881F991F1AF0BA95C9F712C0B13081F010 +:105500001FD1B1E008951CC1672F782F8827B85F9D +:1055100039F0B93FCCF3869577956795B395D9F770 +:105520003EF490958095709561957F4F8F4F9F4F7A +:105530000895E89409C097FB3EF490958095709586 +:1055400061957F4F8F4F9F4F9923A9F0F92F96E9CF +:10555000BB279395F695879577956795B795F11144 +:10556000F8CFFAF4BB0F11F460FF1BC06F5F7F4FE1 +:105570008F4F9F4F16C0882311F096E911C07723F3 +:1055800021F09EE8872F762F05C0662371F096E8FC +:10559000862F70E060E02AF09A95660F771F881FCB +:1055A000DAF7880F9695879597F9089588D018F0BF +:1055B00011F08CD038F480C0C4C0E92F9FD0B0F374 +:1055C0005523C9F3E7FB6217730784079507A8F112 +:1055D00099F3E92FFF2788232AF03197660F771F69 +:1055E000881FDAF7952F5527442332F09150504009 +:1055F000220F331F441FD2F7BB27E91BF50B621B99 +:10560000730B840BB109C1F222F4620F731F841F64 +:10561000B11D31972AF0660F771F881FBB1FEFCF90 +:10562000915050405AF041F0882332F0660F771FB6 +:10563000881F91505040C1F7939530C0869577955B +:1056400067959F5FD9F7F8CF990F0008550FAA0B00 +:10565000E0E8FEEF16161706E807F907C0F0121685 +:105660001306E407F50798F0621B730B840B950B88 +:1056700039F40A2661F0232B242B252B21F40895DD +:105680000A2609F4A140A6958FEF811D811D08957A +:1056900097F99F6780E870E060E008959F3F31F0E0 +:1056A000915020F4879577956795B795880F911D50 +:1056B0009695879597F908959FEF80EC08950024BB +:1056C0000A941616170618060906089500240A9467 +:1056D00012161306140605060895092E0394000CED +:1056E00011F4882352F0BB0F40F4BF2B11F460FF7C +:1056F00004C06F5F7F4F8F4F9F4F089557FD9058A5 +:10570000440F551F59F05F3F71F04795880F97FB85 +:10571000991F61F09F3F79F087950895121613063F +:105720001406551FF2CF4695F1DF08C0161617066E +:105730001806991FF1CF86957105610508940895A3 +:10574000E894BB2766277727CB0197F908957CDF7C +:1057500008F48FEF08950BD0C0CFB1DF28F0B6DF8B +:1057600018F0952309F094CFA7CF1124EACFC6DF14 +:10577000A0F3959FD1F3950F50E0551F629FF00164 +:10578000729FBB27F00DB11D639FAA27F00DB11DBD +:10579000AA1F649F6627B00DA11D661F829F222746 +:1057A000B00DA11D621F739FB00DA11D621F839FCD +:1057B000A00D611D221F749F3327A00D611D231FA3 +:1057C000849F600D211D822F762F6A2F11249F57F1 +:1057D00050408AF0E1F088234AF0EE0FFF1FBB1F14 +:1057E000661F771F881F91505040A9F79E3F5105B3 +:1057F00070F04ECFA6CF5F3FECF3983EDCF386957A +:1058000077956795B795F795E7959F5FC1F7FE2B5D +:10581000880F911D9695879597F90895FA01EE0FD7 +:10582000FF1F30962105310599F16115710561F46D +:105830008038BFE39B0749F168949038810561F097 +:105840008038BFEF9B0741F0992342F5FF3FE10508 +:105850003105210511F1E8940894E795D901AA23AF +:1058600029F4AB2FBE2FF85FD0F310C0FF5F70F4A8 +:10587000A695E0F7F73950F019F0FF3A38F49F7722 +:105880009F930CD00F9007FC905808953EF014CFD2 +:1058900060E070E080E89FE308954FE79F775F93B3 +:1058A0004F933F932F939ED02F913F914F915F91B4 +:1058B00052DF05C019F40EF0EBCE42CFFDCE26DF4D +:1058C000C8F39638C0F707F80F92E8942BE33AEA4A +:1058D00048EB5FE74EDF0F920F920F924DB75EB726 +:1058E0000F92C0D0EAE0F1E016D04F915F91EF91B6 +:1058F000FF91E595EE1FFF1F49F0FE57E068442732 +:10590000EE0F441FFA95E1F74195550B32D00F90F9 +:1059100007FE26C00895DF93CF931F930F93FF9246 +:10592000EF92DF927B018C01689405C0DA2EEF01C3 +:105930001EDFFE01E894A591259135914591559181 +:10594000AEF3EF0106DDFE019701A801DA9479F7C5 +:10595000DF90EF90FF900F911F91CF91DF9108950D +:105960009B01AC0160E070E080E89FE349CD90CE00 +:1059700095CECCDEE8F39923D9F3940F511DBBF3F8 +:105980009150504094F059F0882332F0660F771F01 +:10599000881F91505040C1F79E3F510544F7880F32 +:1059A000911D9695879597F908955F3FACF0983EC5 +:1059B0009CF0BB27869577956795B79508F4B160FD +:1059C0009395C1F7BB0F58F711F460FFE8CF6F5FF5 +:1059D0007F4F8F4F9F4FE3CFB4CE0EF05FCE6CCE94 +:1059E000689456CE93DEC8F39923D1F3C6F3DF93C0 +:1059F000CF931F930F93FF92C92FDD2788232AF09F +:105A00002197660F771F881FDAF720E030E040E823 +:105A10005FEB9FE3883920F0803E30F021968F774E +:105A200087DCE2E3F1E003C083DCEFE5F1E073DF64 +:105A30008B01BE01EC01FB2E6F5771097595771F25 +:105A4000880B990B78DD28E132E741E35FE38FDED5 +:105A5000AF2D9801AE01FF900F911F91CF91DF9173 +:105A600078DC3BCEFA01DC01AA0FBB1F9B01AC0125 +:105A7000BF5728F422273327442750781FC0B75137 +:105A800088F4AB2F0024469537952795011CA395E4 +:105A9000D2F3002069F0220F331F441FB395DAF3CD +:105AA0000DD045CC61307105A0E88A07B94630F4C5 +:105AB0009B01AC016627772788279078309621F0E4 +:105AC00020833183428353830895AA1BBB1B51E17A +:105AD00007C0AA1FBB1FA617B70710F0A61BB70B5E +:105AE000881F991F5A95A9F780959095BC01CD0103 +:105AF000089597FB072E16F4009407D077FD09D080 +:105B00000E94652D07FC05D03EF4909581959F4F2E +:105B10000895709561957F4F0895EE0FFF1F0590D2 +:105B2000F491E02D0994F999FECF92BD81BDF89AC8 +:105B3000992780B50895A8E1B0E042E050E00C94C8 +:105B4000BB2D262FF999FECF92BD81BDF89A019702 +:105B500000B4021639F01FBA20BD0FB6F894FA9AB5 +:105B6000F99A0FBE08950196272F0E94A22D0C943A +:105B7000A12DDC01CB01FC01F999FECF06C0F2BDDD +:105B8000E1BDF89A319600B40D9241505040B8F7FB +:065B90000895F894FFCF18 +:105B9600640007000CFF0000003F64F610841161EA +:105BA600112D11F9100101DF022808140A321E0016 +:105BB60002040507090B0C0E1011131517181A1CF1 +:105BC6001D1F2123242628292B2D2F30323435372B +:105BD600393B1F0F03764F5F6F7F49694379095938 +:105BE60053633149803F5D8B803FF8BF803FCAE1F8 +:105BF600803F73ED803FCAE1803FF8BF803F5D8BF9 +:105C0600803F3149803F0000803FF16D7F3F75EA5C +:105C16007E3F4C827E3F833F7E3F84287E3F833F8C +:105C26007E3F4C827E3F75EA7E3FF16D7F3F0000EE +:105C3600803F3F4D36398F0642060C06D305660572 +:105C46007F059805B105010203040506070809004A +:00000001FF diff --git a/keyboards/planck/keymaps/joe/keymap.c b/keyboards/planck/keymaps/joe/keymap.c new file mode 100644 index 000000000..023e1a120 --- /dev/null +++ b/keyboards/planck/keymaps/joe/keymap.c @@ -0,0 +1,89 @@ +#include "keymap.h" +#include "keymap_colemak.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = { /* Joe colemak */ + {F(3), KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_MINS}, + {KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT }, + {F(15), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_UP, KC_QUOT}, + {KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, F(1), KC_SPC, KC_SPC, F(2), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} + }, + [1] = { /* Joe soft Colemak */ + {F(3), CM_Q, CM_W, CM_F, CM_P, CM_G, CM_J, CM_L, CM_U, CM_Y, CM_SCLN, KC_MINS}, + {KC_BSPC, CM_A, CM_R, CM_S, CM_T, CM_D, CM_H, CM_N, CM_E, CM_I, CM_O, KC_ENT }, + {F(15), CM_Z, CM_X, CM_C, CM_V, CM_B, CM_K, CM_M, KC_COMM, KC_DOT, KC_UP, KC_QUOT}, + {KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, F(1), KC_SPC, KC_SPC, F(2), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} + }, + [2] = { /* Joe NUMPAD */ + {F(3), KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, LSFT(KC_9), LSFT(KC_0), KC_PSLS, KC_P7, KC_P8, KC_P9 }, + {KC_BSPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, LSFT(KC_5), KC_PEQL, KC_PAST, KC_P4, KC_P5, KC_P6 }, + {F(15), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PCMM, KC_PMNS, KC_P1, KC_P2, KC_P3 }, + {KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, F(1), KC_TRNS, KC_TRNS, F(2), KC_PPLS, KC_P0, KC_PDOT, KC_PENT} + }, + [3] = { /* Joe 1337 haxOr5*/ + {F(3), KC_Q, KC_W, KC_F, KC_P, KC_6, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_MINS}, + {KC_BSPC, KC_4, KC_R, KC_5, KC_7, KC_D, KC_H, KC_N, KC_3, KC_1, KC_0, KC_ENT }, + {F(15), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_UP, KC_QUOT}, + {KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, F(1), KC_SPC, KC_SPC, F(2), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} + }, + [4] = { /* Joe LOWER fn1 */ + {KC_GRV, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, M(3), M(2), M(1), M(0) }, + {KC_BSPC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS}, + {KC_BSLS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LBRC, KC_RBRC, KC_PGUP, KC_EQL }, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(1), KC_TRNS, KC_TRNS, F(2), KC_NO, KC_HOME, KC_PGDN, KC_END } + }, + [5] = { /* Joe UPPER fn2 */ + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12 }, + {KC_DEL, KC_BTN1, KC_MS_U, KC_BTN2, KC_BTN3, KC_WH_U, KC_BTN4, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO }, + {KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_L, KC_WH_D, KC_WH_R, KC_NO, KC_NO, LCTL(KC_PGUP), LCTL(LALT(KC_UP)), LCTL(KC_PGDN) }, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(1), KC_NO, KC_NO, F(2), KC_NO, LCTL(LALT(KC_LEFT)), LCTL(LALT(KC_DOWN)), LCTL(LALT(KC_RGHT))} + }, + [6] = { /* Joe SPECIAL fn3 */ + {KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, + {KC_NO, KC_MPLY, KC_MPRV, KC_MNXT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET }, + {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, + {F(6), F(7), F(8), F(9), F(1), KC_TRNS, KC_TRNS, F(2), KC_POWER, KC_WAKE, KC_SLEP, LCTL(LALT(KC_L))} + } +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(4), // fn1 + [2] = ACTION_LAYER_MOMENTARY(5), // fn2 + + /* ESC on tap, fn3 on hold */ + [3] = ACTION_LAYER_TAP_KEY(6, KC_ESC), + + /* toggle layers */ + [6] = ACTION_DEFAULT_LAYER_SET(0), + [7] = ACTION_DEFAULT_LAYER_SET(1), + [8] = ACTION_DEFAULT_LAYER_SET(2), + [9] = ACTION_DEFAULT_LAYER_SET(3), + + /* tab on tap, shift on hold */ + [15] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_TAB), +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch (id) { + case 0: + /* :) */ + return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_SCLN), TYPE(KC_0), UP(KC_LSFT), END ); + break; + case 1: + /* :( */ + return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_SCLN), TYPE(KC_9), UP(KC_LSFT), END ); + break; + case 2: + /* (: | :) */ + return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_9), TYPE(KC_SCLN), TYPE(KC_SPC), TYPE(KC_SPC), TYPE(KC_SCLN), TYPE(KC_0), UP(KC_LSFT), TYPE(KC_LEFT), TYPE(KC_LEFT), TYPE(KC_LEFT), END ); + break; + case 3: + /* :( | ): */ + return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_SCLN), TYPE(KC_9), TYPE(KC_SPC), TYPE(KC_SPC), TYPE(KC_0), TYPE(KC_SCLN), UP(KC_LSFT), TYPE(KC_LEFT), TYPE(KC_LEFT), TYPE(KC_LEFT), END ); + break; + default: + break; + } + return MACRO_NONE; +} diff --git a/keyboards/planck/keymaps/kyle/Makefile b/keyboards/planck/keymaps/kyle/Makefile new file mode 100644 index 000000000..581e08cd0 --- /dev/null +++ b/keyboards/planck/keymaps/kyle/Makefile @@ -0,0 +1,25 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/kyle/compiled.hex b/keyboards/planck/keymaps/kyle/compiled.hex new file mode 100644 index 000000000..9226d4c19 --- /dev/null +++ b/keyboards/planck/keymaps/kyle/compiled.hex @@ -0,0 +1,1449 @@ +:100000000C9496020C94DA020C94DA020C94DA0244 +:100010000C94DA020C94DA020C94DA020C94DA02F0 +:100020000C94DA020C94DA020C9478140C944A15AD +:100030000C94AC220C94DA020C94DA020C94DA02DE +:100040000C94DA020C943C030C94DA020C94DA025D +:100050000C94DA020C9414230C94DA020C94DA0255 +:100060000C94DA020C94DA020C94DA020C94DA02A0 +:100070000C94DA020C94DA020C94DA020C94DA0290 +:100080000C94ED0A0C94DA020C94DA020C94DA0265 +:100090000C94DA020C94DA020C94DA020C94DA0270 +:1000A0000C94DA020C94DA020C94DA02B715D91522 +:1000B000C716D915C7161E164116C7169616A916C5 +:1000C00093199319C219C219011A211A771B771BA8 +:1000D0002C1A771BDC1ADC1A431B4C1B771B711B79 +:1000E000E91AE91AE91AE91AE91AE91AE91AE91AF8 +:1000F000E91AE91AE91AE91AE91AE91AE91AE91AE8 +:10010000F91A071B0E1B151B1F1B07634236B79BF3 +:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 +:100120005763BD6DEDFD753EF6177231BF000000DF +:10013000803F08000000BE922449123EABAAAA2AC2 +:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD +:1001500000000000BF000000803F00000000000819 +:100160004178D3BB4387D1133D190E3CC3BD4282B6 +:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 +:10018000FFBE01C4FF7F3F00000000000000000030 +:1001900000000000000000010204060A0F17202CD6 +:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 +:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF +:1001C0000201000000000000000000000000F1A299 +:1001D000F1A3018C028C290014001A0008001500FC +:1001E00017001C0018000C00120013002A002B003E +:1001F00004001600070009000A000B000D000E00A5 +:100200000F0033003400E1001D001B000600190040 +:100210000500110010003600370038002800E40007 +:10022000E000E200E30002202C002C00012050003E +:10023000510052004F00290014001A000900130059 +:100240000A000D000F0018001C0033002A002B00CC +:10025000040015001600170007000B00110008002D +:100260000C0012003400E1001D001B000600190004 +:1002700005000E0010003600370038002800C300CB +:10028000E000E200E30002202C002C0001205000DE +:10029000510052004F0035001E001F0020002100B9 +:1002A0002200230024002500260027002A00010048 +:1002B0000320042048120100010001002D002E003F +:1002C0002F00300031000100440045006800690043 +:1002D0006A006B006C006D006E006F000100010091 +:1002E0000100010001000100010001000120AB003C +:1002F000AA00A900AE0035021E021F022002210240 +:100300002202230224022502260227022A000100DB +:100310000320042048120712010001002D022E02C2 +:100320002F023002310201003A003B003C003D0048 +:100330003E003F0040004100420043000100835066 +:100340000100010001000220010001000100AB00DA +:10035000AA00A900AE002803540068006500200030 +:1003600050006C0061006E0063006B0020004B00C9 +:100370006500790062006F00610072006400000097 +:100380002C034F007200740068006F006C0069005D +:100390006E0065006100720020004B00650079006E +:1003A00062006F00610072006400730000000403CB +:1003B000090409026D00040100A0FA09040000010B +:1003C00003010100092111010001223F00070581FD +:1003D0000308000A090401000103010200092111B8 +:1003E000010001224D000705820308000A090402EA +:1003F000000103000000092111010001223600075D +:1004000005830308000A0904030001030000000932 +:100410002111010001223900070584031000011297 +:1004200001100100000008EDFE6060010001020003 +:100430000105010906A101050719E029E7150025B5 +:1004400001950875018102050819012905950575B1 +:10045000019102950175039101050719002977158E +:10046000002501957875018102C005010980A1016F +:10047000850216010026B7001A01002AB700751080 +:1004800095018100C0050C0901A101850316010039 +:10049000269C021A01002A9C02751095018100C059 +:1004A00005010902A1010901A10005091901290598 +:1004B00015002501950575018102950175038101DE +:1004C0000501093009311581257F950275088106DE +:1004D00009381581257F950175088106050C0A38B4 +:1004E000021581257F950175088106C0C0050109A7 +:1004F00006A101050719E029E715002501950875F2 +:1005000001810295017508810105081901290595E8 +:1005100005750191029501750391010507190029DF +:10052000FF150025FF950675088100C011241FBE28 +:10053000CFEFDAE0DEBFCDBF04B603FE24C080916A +:100540001E0390911F03A0912003B09121038730D7 +:10055000904BA740B04BB9F410921E0310921F03AA +:10056000109220031092210314BE84B7877F84BFAA +:1005700088E10FB6F89480936000109260000FBE7F +:10058000E0E0F8E3099511E0A0E0B1E0E2EBF9E585 +:1005900002C005900D92A03CB107D9F713E0A0EC82 +:1005A000B1E001C01D92AE31B107E1F70E94BE116A +:1005B0000C94D72C0C9400000895089581E00895C0 +:1005C00008950C94DD020C94DE020C94E0020E946B +:1005D000A12823E030E0281B3109220F2093C40119 +:1005E0000895282F2F9880918000211108C0877FBF +:1005F0008093800010928D0010928C001BC0886048 +:1006000080938000233019F48FEF9FEF0FC083E0B9 +:1006100090E0821B9109880F991F2FEF3FEFA901EE +:1006200002C0569547958A95E2F7CA0190938D00CE +:1006300080938C000C94E7020E94E70284E0809390 +:10064000C3011092C0010895279A2F988FEF9FEF52 +:1006500090938700809386008AE08093800089E1F0 +:10066000809381000E940A280C941C030E9424039A +:100670006E9A769A0C94DC021F920F920FB60F922C +:1006800011242F933F938F939F93EF93FF93E091C8 +:10069000C101F091C201CF0101969093C2018093F4 +:1006A000C1010090C30102C0F695E7950A94E2F7F4 +:1006B000EF738091C001823019F4E03251F404C02C +:1006C000813039F4EF3329F480916F008D7F80936E +:1006D0006F00F0E0E457FE4FE49121E031E0E29F4B +:1006E000C001E39F900D11240090C40102C09695B3 +:1006F00087950A94E2F790938D0080938C00FF9188 +:10070000EF919F918F913F912F910F900FBE0F907E +:100710001F90189581E008950C948A0308950C9415 +:10072000360380911502882309F448C08091D101D5 +:100730009091D201009779F40E94DE229093D20129 +:100740008093D1018091D30190E0009771F4809162 +:10075000D40190E00AC00E94EA2220910001309169 +:1007600001012817390740F329C00197880F991F05 +:10077000880F991FFC01EB52FE4F608171818281CD +:1007800093810E94530AE091D30184E0E89FF00135 +:100790001124EB52FE4F60817181828193814FE081 +:1007A00050E00E940B0E8091D30190E00196609181 +:1007B000D40170E00E94872C8093D3010C94E10255 +:1007C000109217020C94200A0895089581E08093F6 +:1007D00017020C94E503089508958F929F92AF92AB +:1007E000BF92EF92FF920F931F93CF93DF93CDB7FA +:1007F000DEB7A3970FB6F894DEBF0FBECDBF7C0166 +:10080000FC0100811181C8010E94DB20B8010E9417 +:10081000F2058C01B7010E948C03882309F4CCC136 +:100820000032F0E51F0741F4F7018281882309F4C3 +:1008300058C00E946F0EC0C10132F0E51F0741F49D +:10084000F7018281882309F44CC00E94780EB4C15C +:100850000232F0E51F0751F4F7018281882309F481 +:1008600040C00E946B0E8111F0CFE3CF0332F0E560 +:100870001F0739F4F7018281882399F10E94E6036A +:100880009BC10432F0E51F0739F4F7018281882308 +:1008900041F10E94E00390C10532F0E51F0749F4E1 +:1008A000F70182818823E9F0809117028111F1CF4D +:1008B000E5CF0632F0E51F0739F4F701828188237E +:1008C00081F00E947F0E0AC00732F0E51F0749F44D +:1008D000F7018281882329F00E948A0E0E94EC038E +:1008E0006BC180911702811105C0F70182818111CE +:1008F000CFC018C1003E110579F4F7018281882329 +:1009000009F44DC00E94200A81E0809316021092E3 +:1009100015021092D40150C1023E110559F4F7019D +:1009200082818823E1F10E94200A1092160210921F +:10093000150242C1033E110591F4F701828188231B +:1009400071F10E94200A1092160281E08093150234 +:100950001092D3011092D2011092D1012DC1023513 +:10096000110559F4F7018281882309F425C180918A +:100970000001909101010A970DC00135110579F42C +:10098000F7018281882309F417C1809100019091B9 +:1009900001010A9690930101809300010DC14091DD +:1009A000040183E2EFE1F1E0DE01119601900D9286 +:1009B0008A95E1F7F701808121E030E02C0F3D1F9F +:1009C000280F311DC9012091020130910301FC0162 +:1009D000E20FF31F6081772767FD7095640F711D2B +:1009E000882777FD8095982F0E94A92920E030E084 +:1009F00040E451E40E940E294B015C01F701218182 +:100A000084E090E0821B9109BC01882777FD8095E6 +:100A1000982F0E94A9299B01AC01C501B4010E9435 +:100A2000A6289B01AC0160E070E080E090E40E94A9 +:100A30001C2B20E030E04CED50E40E94B92A4B0121 +:100A40005C01F70182818823D1F04FE050E0C501BD +:100A5000B4010E940B0E809116028823A1F08091B0 +:100A6000D40124E0829FF0011124EB52FE4F8082DA +:100A70009182A282B3828F5F8093D40104C0C501AA +:100A8000B4010E94530A0F3F110508F02ECF94C005 +:100A90008091D00181111FC0043130E5130709F0A6 +:100AA00051C00E948E0381E08093D0010E94DE221B +:100AB0009093CF018093CE011092C7011092C9018B +:100AC0001092C8011092CB011092CA011092CD0170 +:100AD0001092CC0171C08091CE019091CF010E9403 +:100AE000EA22883C910570F48091C701E82FF0E07C +:100AF000EE0FFF1FE853FE4F118300838F5F80933B +:100B0000C7015AC0043880E5180721F005381045A0 +:100B100001F13AC0F7018281882341F01092C501AA +:100B200082E01EC0043830E5130759F58091C501F5 +:100B3000811106C086E20E94371886E20E94FF18E3 +:100B400082E01CC00438F0E51F0741F3053810456A +:100B5000D9F4F7018281882331F01092C60180E236 +:100B60000E944E1929C08091C601811106C087E2FA +:100B70000E94371887E20E94FF1880E20E945519F0 +:100B80001BC00538104529F381E08093C50180938F +:100B9000C601C701A3960FB6F894DEBF0FBECDBF46 +:100BA000DF91CF911F910F91FF90EF90BF90AF9089 +:100BB0009F908F900C94E30280E0A3960FB6F89478 +:100BC000DEBF0FBECDBFDF91CF911F910F91FF9080 +:100BD000EF90BF90AF909F908F90089580E090E04D +:100BE000089508959CE0799FF001112490E3899F76 +:100BF000E00DF11D1124E60FF11DEE0FFF1FEA526B +:100C0000FE4F859194910895880F991FFC01E45B34 +:100C1000FF4F859194910895880F991FFC01E4532B +:100C2000FE4F8591949108950F931F93CF93DF9377 +:100C3000EC01811521E39207A0F5C11580E3D807E7 +:100C400008F0D7C0C83ED105D8F4C03ED10508F0A1 +:100C500007C2C83AD10578F4C53AD10508F06AC090 +:100C6000C130D10509F463C008F4F7C1C430D1051F +:100C700008F0F6C1F2C1CB3BD10508F466C0EDC166 +:100C8000C11590E2D90708F0AFC0C11521E0D20725 +:100C900008F0E6C1C03FD10508F4DFC18E01106540 +:100CA0001FC2C03880E5D80700F5C03790E5D907E6 +:100CB00008F0A3C0C11520E5D20709F4ACC050F478 +:100CC000CE01905480319F4008F0C7C1DF708E0183 +:100CD000106A06C2C13080E5D80709F4AEC0C4313D +:100CE00090E5D90708F4AFC0B8C1C33820E5D207F2 +:100CF00009F48EC050F4C13890E5D90709F482C0D8 +:100D000008F083C000E011EDEBC1C03181E5D807E8 +:100D100008F4A3C1C11597E5D90708F436C1CE017F +:100D200090578115904108F098C1DF7093C101E0A0 +:100D300010E0D6C1C53AD10509F494C1C63AD1052F +:100D400009F093C102E810E4CBC1C83AD10509F417 +:100D50008FC1C93AD10509F48EC1CA3AD10509F447 +:100D60008DC1CB3AD10509F48CC1CC3AD10509F437 +:100D70008BC1CD3AD10509F48AC1C03BD10509F434 +:100D800089C1CE3AD10509F488C1CF3AD10509F419 +:100D900087C1C13BD10509F486C1C23BD10509F425 +:100DA00085C1C33BD10509F484C1C43BD10509F415 +:100DB00083C1C53BD10509F482C1C63BD10509F405 +:100DC00081C1C73BD10509F480C1C83BD10509F4F5 +:100DD0007FC1C93BD10509F47EC1CA3BD10509F4E5 +:100DE0007DC100E014E47CC1CE019F700E940C061E +:100DF00078C1DD278E01106C73C1CF70DD278E01A5 +:100E0000146D6EC100E010ED6BC100E012ED68C121 +:100E100000E013ED65C10E94E21B0E94200A0E94BF +:100E2000E4038FEF94E32CE0815090402040E1F701 +:100E300000C000000E94392353C18091F2028160FA +:100E40008093F2024DC10E949A23811102C00E9438 +:100E500076230E94AD2390E090931D0380931C03A2 +:100E6000C23080E5D80721F480911C03816086C0E0 +:100E7000C43090E5D90721F480911C0382607EC0C4 +:100E8000C63020E5D20721F480911C03846076C02F +:100E9000C83080E5D80719F480911C0327C0CA30F8 +:100EA00090E5D90721F480911C03806167C0CC30A4 +:100EB00020E5D20721F480911C0380625FC0CE3010 +:100EC00080E5D80721F480911C03806457C0C031AD +:100ED00090E5D90721F480911C0380684FC0C2318E +:100EE00020E5D20729F480911C038460886046C005 +:100EF000C33080E5D80721F480911C038E7F3EC06B +:100F0000C53090E5D90721F480911C038D7F36C050 +:100F1000C73020E5D20721F480911C038B7F2EC0BF +:100F2000C93080E5D80719F480911C0326C0CB3066 +:100F300090E5D90721F480911C038F7E1FC0CD302E +:100F400020E5D20721F480911C038F7D17C0CF309C +:100F500080E5D80721F480911C038F7B0FC0C1313D +:100F600090E5D90721F480911C038F7707C0C33126 +:100F7000D04531F480911C038B7F877F80931C03C5 +:100F800080911C030E94B123ABC08D2F99278F70D5 +:100F9000992781309105D9F49E012370332702C02F +:100FA000880F991F2A95E2F79C688E0144E0000F94 +:100FB000111F4A95E1F700271370802B912B53E006 +:100FC000CC0FDD1F5A95E1F7C076DD272FC08230A8 +:100FD000910531F4DC2FCC278E01016F106A80C09F +:100FE0008330910569F4CE018370992701E010E008 +:100FF00002C0000F111F8A95E2F7C8019C680FC05C +:1010000084309105B9F4CE018370992701E010E096 +:1010100002C0000F111F8A95E2F7C8019A6823E009 +:10102000CC0FDD1F2A95E1F7C07ED7708C010C2B09 +:101030001D2B56C08530910531F4DC2FCC278E0155 +:10104000046F106A4DC0069709F04AC0CF71DD27C2 +:10105000DC2FCC278E01106243C000E010E040C0BE +:101060008E013EC001E810E43BC003E810E438C044 +:1010700002EE14E435C009EE14E432C00AEE14E4C2 +:101080002FC005EB14E42CC006EB14E429C007EBD9 +:1010900014E426C00CEC14E423C00DEC14E420C0CE +:1010A00003E815E41DC00AE815E41AC002E915E4D6 +:1010B00017C004E915E414C001E216E411C003E20C +:1010C00016E40EC004E216E40BC005E216E408C004 +:1010D00006E216E405C007E216E402C00AE216E4DE +:1010E000C801DF91CF911F910F9108959CE0799FE6 +:1010F000F001112490E3899FE00DF11D1124E60F0A +:10110000F11DEE0FFF1FEA52FE4F85919491803E34 +:101110009105E0F4803C910558F58133910509F47F +:101120006FC048F48932910509F463C08A32910591 +:1011300009F46DC072C089339105E9F082389105D8 +:10114000D1F08533910509F44DC067C0833E910508 +:1011500081F138F4803E9105B9F0823E9105D9F0D5 +:101160005CC0863E910561F1873E9105A1F155C0B5 +:101170000E940406089520911C0320FD02C021FF57 +:101180004CC080EE90E049C080911C0380FFF9CFF5 +:1011900089E390E042C080911C0382FF0EC08091E1 +:1011A0001C0384FF03C080E090E037C083EE90E032 +:1011B00034C080911C0382FFF2CF82EE90E02DC0FC +:1011C00080911C0383FF0BC080911C0384FDEBCF37 +:1011D00087EE90E022C080911C0383FFF5CF86EE5E +:1011E00090E01BC080911C0385FF07C089E290E05E +:1011F00014C080911C0385FFF9CF85E390E00DC0FA +:1012000080911C0386FF07C08AE290E006C08091AF +:101210001C0386FFF9CF81E390E00E941406089535 +:101220000C94E502E82FF0E0E25BFE4F8081E82FAE +:10123000EF70F0E082958F7021E030E0A90102C0EC +:10124000440F551F8A95E2F740A308950F931F930B +:10125000CF93DF9385B7806885BF85B7806885BFEA +:10126000C3E0D0E001E010E0FE01E25BFE4F8081D0 +:10127000E82FEF70F0E021A182958F70A80102C0E5 +:10128000440F551F8A95E2F7CA01822B81A38C2F48 +:101290000E941209219740F78BE090E061E070E036 +:1012A000FC01EE5BFE4F2081E22FEF70F0E042A1E7 +:1012B00022952F70DB0102C0AA0FBB1F2A95E2F70F +:1012C0009D01242B22A3019758F7DF91CF911F9105 +:1012D0000F910C948F03EF92FF920F931F93CF9374 +:1012E000DF9300E212E0C3E0EE24E394F12CD5E0BA +:1012F0008C2F0E9412098BE090E040E050E0FC014E +:10130000EE5BFE4F6081E62FEF70F0E020A130E051 +:1013100062956F7002C0359527956A95E2F720FDBA +:1013200009C09701082E02C0220F331F0A94E2F76A +:10133000422B532B019718F7F801929182918F015C +:101340008417950721F051834083D09305018C2F9A +:101350000E941209C15060F68091050187FD2CC0E2 +:101360008150809305018F3F39F08FE99FE001970D +:10137000F1F700C0000020C080911E0290911F0272 +:10138000909327028093260280911C0290911D0267 +:10139000909325028093240280911A0290911B025F +:1013A0009093230280932202809118029091190257 +:1013B00090932102809320020E94910381E0DF91AB +:1013C000CF911F910F91FF90EF900895E82FF0E0DB +:1013D000EE0FFF1FE05EFD4F80819181089508951B +:1013E0000F931F93CF9308E212E0C0E0F8019291AF +:1013F00082918F010E945622C80FF2E000321F072F +:10140000A9F78C2FCF911F910F9108950E949A23D5 +:10141000811102C00E9476230E94BF23809307039C +:101420003E9A809171008D7F8093710082E080935D +:1014300090008AE18093910081E080932A020895D0 +:1014400080912A02811102C00E94060A10927A023B +:1014500010927902809171008D7F8093710080914C +:1014600090008F738093900010923C0210923B0288 +:10147000109273021092740210927502109276020A +:101480001092720210927102E1E5F2E0A1E4B2E082 +:1014900011921192119211921D921D9282E0E137E8 +:1014A000F807B1F70895CF92DF92EF92FF920F9372 +:1014B0001F93CF93DF9320913B02222309F484C032 +:1014C0006B017C0180912A02811102C00E94060AF0 +:1014D00001E712E0C7E0D0E0A7019601F801929180 +:1014E0008291729162918F010E940A29811131C00B +:1014F000FE01EE0FFF1FEE0FFF1FEF5AFD4F108290 +:10150000118212821382DE01AA0FBB1FAF5BBD4F97 +:1015100011961C921E92C730D105E9F021964481A4 +:1015200055816681778140835183628373831482FE +:1015300015821682178212968D919C91139711969F +:101540009C938E9313961C921E9212973496129629 +:10155000E2CF219708F68091790290917A02019763 +:1015600097FD05C090937A028093790204C010928F +:101570007A02109279028091790290917A022091F8 +:101580007702309178022817390724F010927802F8 +:1015900010927702892BC1F4809171008D7F809326 +:1015A0007100809190008F7380939000109273026D +:1015B00010927402109275021092760210927202CA +:1015C0001092710210923B02DF91CF911F910F9107 +:1015D000FF90EF90DF90CF9008951F920F920FB67B +:1015E0000F9211244F925F926F927F928F929F92EF +:1015F000AF92BF92CF92DF92EF92FF922F933F93E1 +:101600004F935F936F937F938F939F93AF93BF930A +:10161000CF93DF93EF93FF9380913B02882309F4EC +:101620009BC1C0917902D0917A021C161D060CF064 +:1016300093C140902B0250902C0260902D0270902C +:101640002E0220E030E0A901C301B2010E94B52AB8 +:1016500018160CF065C0C130D10509F452C0809154 +:10166000770290917802BE010E94872C7C019093B2 +:1016700078028093770280903D0290903E02A09085 +:101680003F02B090400220E030E040E85FE3C50157 +:10169000B4010E94A62860933D0270933E0280939D +:1016A0003F0290934002F701EE0FFF1FEE0FFF1F66 +:1016B000EF5AFD4FA3019201608171818281938174 +:1016C0000E940E2920E030E040E05EE30E94B92A4B +:1016D0009B01AC01C501B4010E94B52A18168CF417 +:1016E000C7010196BE010E94872C909378028093D7 +:1016F000770210923D0210923E0210923F02109229 +:101700004002E0917702F0917802EE0FFF1FEE0F9A +:10171000FF1FEF5AFD4F6081718182819381D0C09C +:10172000C0907302D0907402E0907502F09076023F +:1017300020E030E0A901C701B6010E940A292197E3 +:10174000882309F4A2C0FE01EE0FFF1FEE0FFF1F5A +:10175000EF5AFD4F80809180A280B380A501940153 +:10176000C701B6010E940A2987FF31C0A501940173 +:1017700060E070E08CED93EC0E940E2920E030E0F8 +:1017800040E451E40E940E2920E030E040E05FE3B5 +:101790000E94B92A9B01AC0160E070E080E090E417 +:1017A0000E941C2B9B01AC01C501B4010E94B92A07 +:1017B0009B01AC01C701B6010E940A2987FF07C03F +:1017C000A701960160E070E08CED93E439C0A501BB +:1017D0009401C701B6010E94B52A18160CF055C035 +:1017E000A501940160E070E08CED93E40E940E2965 +:1017F00020E030E040E451E40E940E2920E030E097 +:1018000040E05FE30E94B92A9B01AC0160E070E018 +:1018100080E090E40E941C2B9B01AC01C501B40147 +:101820000E94B92A9B01AC01C701B6010E94B52AEA +:1018300018165CF5A701960160E070E08CED93EC62 +:101840000E940E2920E030E040E451E40E940E297D +:1018500020E030E040E05FE30E94B92A9B01AC0148 +:1018600060E070E080E090E40E941C2B9B01AC01E2 +:10187000C701B6010E94B92A609373027093740283 +:10188000809375029093760213C0FE01EE0FFF1F46 +:10189000EE0FFF1FEF5AFD4F80819181A281B3812E +:1018A0008093730290937402A0937502B0937602B2 +:1018B000609173027091740280917502909176022A +:1018C00020912802309129022F3F4FEF340731F049 +:1018D0002F5F3F4F30932902209328020E94950EDC +:1018E0006B017C0120E034E244EF51E40E940A29BC +:1018F00087FF08C086EFC82E88E2D82E84EFE82E36 +:1019000081E4F82E20E030E040E051E4C701B60168 +:101910000E94B92A9B01AC0160E074E284E79BE479 +:101920000E940E296B017C010E947B297093970015 +:1019300060939600209106013091070140910801C3 +:1019400050910901C701B6010E94B92A0E947B2962 +:10195000709399006093980080913C02882309F469 +:1019600033C1C0903702D0903802E0903902F09035 +:101970003A0220E030E0A901C701B6010E94B52A71 +:101980001816D4F580912802909129028F3F2FEFED +:10199000920729F001969093290280932802C701AB +:1019A000B6010E94950E20E030E040E051E40E9434 +:1019B000B92A9B01AC0160E074E284E79BE40E94D9 +:1019C0000E296B017C010E947B2970939700609324 +:1019D0009600209106013091070140910801509135 +:1019E0000901C701B6010E94B92A0E947B297093A0 +:1019F00099006093980008C010929700109296008A +:101A00001092990010929800609131027091320208 +:101A10006F5F7F4F70933202609331022091960086 +:101A20003091970080E090E0232BF1F0C091960078 +:101A3000D09197000E94A7296B017C01BE0180E034 +:101A400090E00E94A7299B01AC0160913302709144 +:101A5000340280913502909136020E940E2920E0D6 +:101A60003FEF4FE757E410C00E94A7296B017C01AC +:101A700020E030EE4FEF54E4609133027091340275 +:101A800080913502909136020E94B92A9B01AC01E7 +:101A9000C701B6010E94B52A87FD96C080912F022A +:101AA0008F5F80932F0290E0209103033091040315 +:101AB00082179307A0F080910E03882319F01092EB +:101AC0002F020DC0809171008D7F809371008091F5 +:101AD00090008F738093900010923C027DC08091A3 +:101AE0003002C0912F02811128C0C0900803D0900D +:101AF0000903E0900A03F0900B0320E030E0A90115 +:101B0000C701B6010E94B52A1816BCF481E0809383 +:101B1000300210923702109238021092390210925D +:101B20003A02C0923302D0923402E0923502F0922F +:101B30003602C150C0932F0243C01092300210925F +:101B4000290210922802E0910503F091060348E073 +:101B5000C49FE00DF11D112480819181A281B38188 +:101B60008093370290933802A0933902B0933A02DF +:101B700020E030E040E85EE36481758186819781F2 +:101B80000E94B92A6B017C0180910A01682F70E0E4 +:101B900080E090E00E94A72920E030E048EC52E489 +:101BA0000E940E299B01AC01C701B6010E94B92A0F +:101BB000609333027093340280933502909336021F +:101BC00010923202109231028091070380FD04C00E +:101BD00010923C0210923B02FF91EF91DF91CF9166 +:101BE000BF91AF919F918F917F916F915F914F9135 +:101BF0003F912F91FF90EF90DF90CF90BF90AF90EB +:101C00009F908F907F906F905F904F900F900FBE3E +:101C10000F901F901895CF92DF92EF92FF92CF9383 +:101C2000DF936B017C01EA0180912A02811102C0DD +:101C30000E94060A8091070380FF46C080917902C6 +:101C400090917A0208970CF03FC0809171008D7FCF +:101C50008093710080913C0281110E94200A81E0F2 +:101C600080933B02109229021092280220E030E07B +:101C7000A901C701B6010E94B52A1816DCF48091AB +:101C8000790290917A02FC01EE0FFF1FEE0FFF1F09 +:101C9000EF5AFD4FC082D182E282F382FC01EE0F47 +:101CA000FF1FEF5BFD4FD183C083019690937A02B3 +:101CB000809379028091710082608093710080919D +:101CC0009000806880939000DF91CF91FF90EF901B +:101CD000DF90CF90089580910703817008958091DF +:101CE00007038160809307030E94C3230C94EB03D6 +:101CF000809107038E7F809307030C94C323809108 +:101D00007B0290E0019666E070E00E94872C809351 +:101D10007B02089580917B0290E0019766E070E07D +:101D20000E94872C80937B0208958F929F92AF929E +:101D3000BF92CF92DF92EF92FF920F931F93CF93B8 +:101D4000DF936B017C01C0912802D0912902BE0172 +:101D500080E090E00E94A7294B015C01A701960159 +:101D600060E070E08CE594E40E940E299B01AC01D8 +:101D7000C501B4010E94B92A0E947B2920917B02EF +:101D8000233009F473C028F4222351F02130E9F004 +:101D90002CC1243009F4A0C0253009F4E0C025C1CD +:101DA00080E090E0A0E0BFE38093060190930701FC +:101DB000A0930801B093090110922B0210922C02FB +:101DC00010922D0210922E0210C110922B0210922E +:101DD0002C0210922D0210922E026431710540F4F3 +:101DE0006A30710560F520E030E040E85EE32BC02A +:101DF000693C710508F0AAC080E090E00E94A72924 +:101E000020E030E040EA51E40E94A52820E030E0E4 +:101E100044E353E40E940E299B01AC010E94B92ABD +:101E200020E030E040E05EE30E94B92A9B01AC0173 +:101E300060E070E080E09EE30E94A52844C020E0BE +:101E400030E040E05FE3C701B6010E94B92A6B01B0 +:101E50007C0180E090E0A0E0BEE3809306019093D7 +:101E60000701A0930801B0930901BFC010922B0293 +:101E700010922C0210922D0210922E024AE0469FE0 +:101E80009001479F300D1124C90168EB7BE00E944F +:101E9000732CBC016C5D754077FF03C07195619533 +:101EA0007109882777FD8095982F0E94A9292EE334 +:101EB00033EC4EE259E30E94B92A20E030E040ECD6 +:101EC0005EE30E94A6286093060170930701809349 +:101ED00008019093090189C010922B0210922C02E4 +:101EE00010922D0210922E02CE0183709927892B19 +:101EF000E1F0BE016170772780E090E00E94A729A1 +:101F000020E030E040E05EE30E94B92A20E030E0CB +:101F100040E45FE30E94A6286093060170930701E6 +:101F200080930801909309010CC080E090E0A0E04C +:101F3000BFE38093060190930701A0930801B0933B +:101F40000901C770DD27CD2B09F04FC010920601A3 +:101F500010920701109208011092090146C01092D8 +:101F60002B0210922C0210922D0210922E0200E0F1 +:101F700010E020E03FE30093060110930701209357 +:101F80000801309309016739710578F180E090E02C +:101F90000E94A72920E030E047E153E40E94A528F1 +:101FA00020E030E04AE754E40E940E2920E030E0CF +:101FB00048E452E40E94B92A20E030E040EA51E4CB +:101FC0000E94EB290E947629660F771F660F771F04 +:101FD000FB01EE5AFE4F2081318142815381C701BE +:101FE000B6010E94B92A6B017C01C701B601DF91DD +:101FF000CF911F910F91FF90EF90DF90CF90BF9006 +:10200000AF909F908F90089580918C020895CF9308 +:10201000DF9300D01F92CDB7DEB79C0180911303F0 +:10202000843019F593E099833B832A839093E900E8 +:102030008FEF9091E800815095FD06C095ED9A953F +:10204000F1F700008111F5CF8091E80085FF0DC008 +:1020500040E050E063E070E0CE0101960E9468121B +:102060008091E8008E778093E8000F900F900F909A +:10207000DF91CF910895CF93DF9300D01F92CDB71A +:10208000DEB720911303243021F522E029839B83BE +:102090008A8383E08093E9008FEF9091E80081507C +:1020A00095FD06C095ED9A95F1F700008111F5CFE9 +:1020B0008091E80085FF0DC040E050E063E070E0F3 +:1020C000CE0101960E9468128091E8008E7780937D +:1020D000E8000F900F900F90DF91CF91089520911D +:1020E00013032430F1F422E02093E9002FEF309124 +:1020F000E800215035FD06C035ED3A95F1F70000B6 +:102100002111F5CF2091E80025FF0BC040E050E001 +:1021100065E070E00E9468128091E8008E778093FD +:10212000E8000895CF93DF93EC019091130394306E +:1021300009F046C0809115018823D9F080911601DD +:102140008823B9F09093E9008FEF9091E8008150D7 +:1021500095FD06C095E19A95F1F700008111F5CF44 +:102160008091E80085FF2CC040E050E060E170E025 +:1021700017C081E08093E9008FEF9091E8008150D3 +:1021800095FD06C095ED9A95F1F700008111F5CF08 +:102190008091E80085FF14C040E050E068E070E006 +:1021A000CE010E9468128091E8008E778093E8004B +:1021B00080E1FE01ACE7B2E001900D928A95E1F773 +:1021C000DF91CF91089580911203811109C00E947F +:1021D000FD130E945A148091E20084608093E20013 +:1021E0000895109212030895089508950C94A12261 +:1021F00042E061EC81E00E94771342E061EC82E012 +:102200000E94771342E061EC83E00E94771342E181 +:1022100061EC84E00C94771380911503833009F40A +:1022200055C030F4813071F0823009F48EC00895C9 +:102230008A3009F47AC08B3009F460C0893009F023 +:102240009CC020C080911403813A09F096C080910F +:10225000E800877F8093E80080911803909119032C +:10226000892B21F460E18CE792E003C060E080E01C +:1022700090E070E00E94B3128091E8008B77809329 +:10228000E800089580911403813209F076C08091AE +:10229000180390911903009719F0039709F06DC086 +:1022A0008091E800877F8093E8008091E80082FDBC +:1022B00005C0809113038111F8CF5FC08091F100B8 +:1022C00080938C028091E8008B7753C08091140337 +:1022D000813A09F052C08091180390911903892B1B +:1022E00009F04BC08091E800877F8093E8008091DF +:1022F000E80080FFFCCF8091150136C08091140367 +:102300008132D9F58091180390911903892BA9F591 +:102310008091E800877F8093E8000E94AC13809151 +:102320001603809315010C94E21B809114038132F3 +:1023300021F58091E800877F8093E8000E94AC132C +:102340008091170380938D02089580911403813A40 +:10235000A1F48091E800877F8093E8008091E800F5 +:1023600080FFFCCF80918D028093F1008091E80086 +:102370008E778093E8000C94AC13089584B7877F20 +:1023800084BF88E10FB6F8948093600010926000DB +:102390000FBE90E080E80FB6F894809361009093B0 +:1023A00061000FBE0E944F170E94FD130E945A1435 +:1023B0008091E20084608093E20078940E94E016AD +:1023C0000E9451178BE091E00E94FB16809113034D +:1023D000853069F40E946222809111038823B1F351 +:1023E0000E949022882391F30E945212EFCF0E9404 +:1023F0005917ECCF292F332723303105C9F064F466 +:102400002130310581F02230310509F043C08DE6DD +:1024100090E022EB33E042C021323105F1F022326C +:10242000310541F137C082E190E02FE134E036C060 +:1024300099278130910541F08230910541F0892B37 +:1024400049F5EEEAF3E005C0E0E8F3E002C0E6E5B6 +:10245000F3E0849190E09F0121C06430D8F4E62F2E +:10246000F0E0EE0FFF1FE255FE4F2081318189E041 +:1024700090E014C0643070F470E0FB01EE0FFF1FB9 +:10248000EA55FE4F20813181FB01EE55FE4F8081E0 +:1024900090E004C080E090E020E030E0FA01318379 +:1024A0002083089580E189BD82E189BD09B400FEE1 +:1024B000FDCF8091D8008F7D8093D8008091E0007F +:1024C00082608093E0008091E00081FDFCCF089560 +:1024D000CF92DF92EF92FF920F931F93CF93DF93F0 +:1024E000EC018B016A010E94CB13811133C0C1142E +:1024F000D10439F0F60180819181081B190BC80FB6 +:10250000D91FE12CF12C0115110519F18091E8007A +:1025100085FD16C08091E8008E778093E800C11495 +:10252000D10449F0F60180819181E80EF91EF18213 +:10253000E08285E00FC00E94CB13882321F30AC0FC +:1025400089918093F10001501109FFEFEF1AFF0A02 +:10255000DACF80E0DF91CF911F910F91FF90EF9044 +:10256000DF90CF90089520911A0330911B03261716 +:10257000370748F06115710539F42091E8002E778E +:102580002093E80001C0B90140E061157105A9F18F +:1025900020911303222309F443C0253009F442C0DB +:1025A0002091E80023FD40C02091E80022FD32C0C8 +:1025B0002091E80020FFE9CF4091F3002091F20044 +:1025C00030E0342BFC01CF016115710559F0283042 +:1025D000310540F481918093F100615071092F5FC2 +:1025E0003F4FF1CF41E02830310509F040E0209124 +:1025F000E8002E772093E800C8CF4111C9CF0AC068 +:1026000080911303882361F0853061F08091E800A8 +:1026100083FD0AC08091E80082FFF2CF80E0089538 +:1026200082E0089583E0089581E0089520911A03DF +:1026300030911B032617370748F06115710539F4EF +:102640002091E8002E772093E80001C0B901FC0139 +:1026500020E06115710591F180911303882309F43D +:1026600040C0853009F43FC08091E80083FD3DC043 +:102670008091E80082FD2FC08091E80080FFE9CFC3 +:102680002091F3008091F20090E0922B611571058A +:1026900059F08830910540F424912093F10031964F +:1026A000615071090196F2CF21E0089709F020E00E +:1026B0008091E8008E778093E800CBCF2111CCCFBA +:1026C0000AC080911303882361F0853061F0809106 +:1026D000E80083FD0AC08091E80082FFF2CF80E02D +:1026E000089582E0089583E0089581E00895982F89 +:1026F000973058F59093E900981739F07091EC00F5 +:102700002091ED005091F00003C0242F762F50E06F +:1027100021FF19C03091EB003E7F3093EB003091E8 +:10272000ED003D7F3093ED003091EB003160309350 +:10273000EB007093EC002093ED005093F00020919B +:10274000EE0027FF07C09F5FD3CF8F708093E90013 +:1027500081E0089580E008958091140387FF11C0FF +:102760008091E80082FD05C0809113038111F8CFAC +:1027700011C08091E8008B770BC0809113038823F0 +:1027800049F08091E80080FFF8CF8091E8008E77D3 +:102790008093E80008952091E4003091E50095E6EB +:1027A0004091EC00842F817040FF22C08091E800AE +:1027B00080FD1CC080911303882391F0853091F037 +:1027C0008091EB0085FD10C04091E4005091E50040 +:1027D0004217530729F39A01915011F784E00895A5 +:1027E00082E0089583E0089581E0089580E00895EF +:1027F0004091E80042FFDECF08950E946B140E94D2 +:102800007314E0EEF0E0808181608083E8EDF0E019 +:1028100080818F77808319BCA7EDB0E08C918E7F8B +:102820008C9380818F7E80831092120308950F9382 +:102830001F93CF93DF930E946B140E947314C8ED13 +:10284000D0E088818F7788838881806888838881B9 +:102850008F7D888319BC1092130310920F0310927E +:1028600011031092100300EE10E0F80180818B7FBD +:10287000808388818160888342E060E080E00E94FC +:102880007713E1EEF0E080818E7F8083E2EEF0E06E +:10289000808181608083808188608083F80180816D +:1028A0008E7F8083888180618883DF91CF911F91A3 +:1028B0000F910895E8EDF0E080818F7E8083E7ED51 +:1028C000F0E080818160808384E082BF81E080933A +:1028D00012030C941714E8EDF0E080818E7F808362 +:1028E0001092E20008951092DA001092E10008952B +:1028F0001F920F920FB60F9211242F933F934F9375 +:102900005F936F937F938F939F93AF93BF93EF9357 +:10291000FF938091E10082FF0BC08091E20082FF73 +:1029200007C08091E1008B7F8093E1000E94DF1659 +:102930008091DA0080FF1FC08091D80080FF1BC00B +:102940008091DA008E7F8093DA008091D90080FF39 +:102950000DC080E189BD82E189BD09B400FEFDCFD3 +:1029600081E0809313030E94E31005C019BC10920C +:1029700013030E94F1108091E10080FF19C0809143 +:10298000E20080FF15C08091E2008E7F8093E2001C +:102990008091E20080618093E2008091D8008062A3 +:1029A0008093D80019BC85E0809313030E94F51032 +:1029B0008091E10084FF30C08091E20084FF2CC050 +:1029C00080E189BD82E189BD09B400FEFDCF80911F +:1029D000D8008F7D8093D8008091E1008F7E809316 +:1029E000E1008091E2008F7E8093E2008091E2001E +:1029F00081608093E20080910F03882311F084E0CE +:102A000007C08091E30087FD02C081E001C083E040 +:102A1000809313030E94F6108091E10083FF29C088 +:102A20008091E20083FF25C08091E100877F809341 +:102A3000E10082E08093130310920F038091E10084 +:102A40008E7F8093E1008091E2008E7F8093E20090 +:102A50008091E20080618093E20042E060E080E0EB +:102A60000E9477138091F00088608093F0000E94AC +:102A7000F410FF91EF91BF91AF919F918F917F9152 +:102A80006F915F914F913F912F910F900FBE0F90DB +:102A90001F9018951F920F920FB60F9211242F932B +:102AA0003F934F935F936F937F938F939F93AF93D6 +:102AB000BF93CF93DF93EF93FF93C091E900CF7063 +:102AC0008091EC00D82FD17080FDD0E81092E90001 +:102AD0008091F000877F8093F00078940E948E159B +:102AE0001092E9008091F00088608093F000CD2B77 +:102AF000CF70C093E900FF91EF91DF91CF91BF912B +:102B0000AF919F918F917F916F915F914F913F9185 +:102B10002F910F900FBE0F901F9018951F93CF937A +:102B2000DF93CDB7DEB7AA970FB6F894DEBF0FBE1E +:102B3000CDBFE4E1F3E088E08E0F9091F100919336 +:102B40008E13FBCF0E940C118091E80083FF1FC100 +:102B50008091140390911503492F50E04A3051059C +:102B600008F015C1FA01EA5AFF4F0C949B2C8038EB +:102B700081F0823809F00BC1809118038F70809327 +:102B8000E9008091EB0085FB882780F91092E9002D +:102B900006C0809110039091110391118260909171 +:102BA000E800977F9093E8008093F1001092F10085 +:102BB000C8C0282F2D7F09F0EAC0882319F0823081 +:102BC00061F0E5C080911603813009F0E0C09330D8 +:102BD00009F080E0809311032BC0809116038111CE +:102BE00027C0809118038F7009F4D1C08093E90049 +:102BF0002091EB0020FF1CC0933021F48091EB006A +:102C0000806214C09091EB0090619093EB0021E002 +:102C100030E0A90102C0440F551F8A95E2F74093A6 +:102C2000EA001092EA008091EB0088608093EB004C +:102C30001092E9008091E800877F86C08111A7C0CB +:102C4000109116031F778091E3008078812B809389 +:102C5000E3008091E800877F8093E8000E94AC1336 +:102C60008091E80080FFFCCF8091E3008068809332 +:102C7000E300111102C082E001C083E080931303DE +:102C800086C08058823008F082C0809116039091EF +:102C900017038C3D53E0950779F583E08A838AE238 +:102CA00089834FB7F894DE01139620E03EE051E2AD +:102CB000E32FF0E050935700E49120FF03C0E2952A +:102CC000EF703F5FEF708E2F90E0EA3010F0C79604 +:102CD00001C0C0968D939D932F5F243149F74FBF5C +:102CE0008091E800877F8093E8006AE270E0CE017F +:102CF00001960E94B31214C0AE014F5F5F4F609106 +:102D000018030E94FA11BC01009709F440C0909189 +:102D1000E800977F9093E80089819A810E941613BA +:102D20008091E8008B778093E80031C0803879F596 +:102D30008091E800877F8093E80080910F03809363 +:102D4000F1008091E8008E778093E8000E94AC1338 +:102D50001EC081111CC0909116039230C0F4809166 +:102D6000E800877F8093E80090930F030E94AC13E4 +:102D700080910F03811106C08091E30087FD02C09E +:102D800081E001C084E0809313030E94F8108091D9 +:102D9000E80083FF0AC08091E800877F8093E80005 +:102DA0008091EB0080628093EB00AA960FB6F894B6 +:102DB000DEBF0FBECDBFDF91CF911F910895089563 +:102DC000CF93809113038823A1F0C091E900CF70C5 +:102DD0009091EC00892F817090FD80E8C82B1092B3 +:102DE000E9008091E80083FD0E948E15CF70C093AA +:102DF000E900CF91089590939302809392020895F1 +:102E0000E0919202F0919302309721F00190F081CD +:102E1000E02D099480E00895E0919202F0919302F0 +:102E2000309721F00280F381E02D09940895E0911C +:102E30009202F0919302309721F00480F581E02D09 +:102E4000099408952091900230919102821793077E +:102E500071F09093910280939002E0919202F09130 +:102E60009302309721F00680F781E02D09940895B0 +:102E700020918E0230918F028217930771F0909308 +:102E80008F0280938E02E0919202F091930230972C +:102E900021F00084F185E02D0994089508950C94A3 +:102EA0004E170E94D5220E9426090E945B230C9493 +:102EB0000A285F926F927F928F929F92AF92BF92F9 +:102EC000CF92DF92EF92FF920F931F93CF93DF93F6 +:102ED00000D000D01F92CDB7DEB70E946B099DE9EC +:102EE000C92E92E0D92E03E010E0AA24A394B12CBD +:102EF000502E802F0E94E6094C01F60172906290DC +:102F00006F016826792661147104A1F4015011093A +:102F100078F78FEF89838A831B820E94DE2281608B +:102F2000782F9D838C8349815A816B818D810E948A +:102F3000091838C08091F20281FD0E94EF092BE050 +:102F400030E07501022E02C0EE0CFF1C0A94E2F77D +:102F5000C70186219721892B09F129835A828E2066 +:102F60009F2091E0892809F490E09B830E94DE2253 +:102F70008160782F9D838C8349815A816B818D81FB +:102F80000E940918000F111FF801EB56FD4F8081B8 +:102F90009181E826F926F182E08204C021503109AE +:102FA00080F6B4CF0E944225109194020E9400172F +:102FB0001817D1F00E940017809394020F900F9081 +:102FC0000F900F900F90DF91CF911F910F91FF9075 +:102FD000EF90DF90CF90BF90AF909F908F907F90B9 +:102FE0006F905F900C9410090F900F900F900F90BE +:102FF0000F90DF91CF911F910F91FF90EF90DF9095 +:10300000CF90BF90AF909F908F907F906F905F9088 +:103010000895CF93DF93CDB7DEB72B970FB6F89413 +:10302000DEBF0FBECDBF4F83588769877A878B87F6 +:10303000DE01119686E0FD0111928A95E9F785E09F +:10304000FE01379601900D928A95E1F749815A81E8 +:103050006B817C818D819E810E94801E2B960FB694 +:10306000F894DEBF0FBECDBFDF91CF910895CF930F +:10307000882309F4C2C0C82F823859F40E9400176F +:1030800081FDBBC089E30E945A210E94272289E367 +:103090000CC0833879F40E94001780FDAEC083E530 +:1030A0000E945A210E94272283E50E949C21CF91F1 +:1030B0000C942722843859F40E94001782FD9DC089 +:1030C00087E40E945A210E94272287E4EECF8CEFEA +:1030D0008C0F813A48F48C2F0E94722781118DC089 +:1030E0008C2F0E945A21E3CF80E28C0F883048F465 +:1030F000C77081E001C0880FCA95EAF70E94E021FD +:10310000D6CF8BE58C0F833078F4C53A29F0C63AD8 +:1031100031F083E890E005C081E890E002C082E8E9 +:1031200090E0CF910C94221788E58C0F833108F042 +:1031300064C0C83A39F1C93A41F1CA3A49F1CB3AC7 +:1031400051F1CC3A59F1CD3A61F1C03B69F1CE3A37 +:1031500071F1CF3A79F1C13B81F1C23B89F1C33BB7 +:1031600091F1C43B99F1C53BA1F1C63BA9F1C73B25 +:10317000B1F1C83BB9F1C93BC1F1CA3BC9F180E02B +:1031800090E038C082EE90E035C089EE90E032C029 +:103190008AEE90E02FC085EB90E02CC086EB90E0AB +:1031A00029C087EB90E026C08CEC90E023C08DEC2A +:1031B00090E020C083E891E01DC08AE891E01AC049 +:1031C00082E991E017C084E991E014C081E292E0C5 +:1031D00011C083E292E00EC084E292E00BC085E26F +:1031E00092E008C086E292E005C087E292E002C069 +:1031F0008AE292E0CF910C943817CF9108958823FA +:1032000009F44BC0823859F40E94001781FF45C071 +:1032100089E30E945A210E94272289E30CC0833847 +:1032200071F40E94001780FF38C083E50E945A2184 +:103230000E94272283E50E949C210C942722843837 +:1032400059F40E94001782FF28C087E40E945A2187 +:103250000E94272287E4EFCF9CEF980F913A58F312 +:1032600090E2980F983050F4877091E001C0990F68 +:103270008A95EAF7892F0E94E621DFCF9BE5980F18 +:10328000933020F480E090E00C942217885A833128 +:1032900020F480E090E00C9438170895882321F002 +:1032A0000E94E0210C9427220895882321F00E9497 +:1032B000E6210C94272208957F928F929F92AF92DD +:1032C000BF92CF92DF92EF92FF920F931F93CF9313 +:1032D000DF931F92CDB7DEB77C01C62E772EFC019F +:1032E000058102950F70128111110E94FD210E942B +:1032F0005321882379F0112369F080E28C0D883006 +:1033000048F082E00E943C210E94532191E0D82E97 +:10331000D92601C0D12CE72DE295EF70F0E0E05AFC +:10332000FF4F0C949B2C872D807F072D0F708823D7 +:1033300011F00295007F112389F0002309F499C14F +:1033400080E28C0D883020F4802F0E94E02103C0A1 +:10335000802F0E94F0210E9427228BC18C2D0E9479 +:10336000FF18002309F4C3C180E28C0D883020F4DB +:10337000802F0E94E62103C0802F0E94F6210E9428 +:103380002722B5C1872D807F972D9F70803211F441 +:10339000892F03C0892F8295807FCC2021F0F1E016 +:1033A000CF16A1F01DC0112339F0002319F101300F +:1033B00009F50E9410229BC1002319F0013009F485 +:1033C00096C189830E941322898110C1112321F0A3 +:1033D000063008F08CC10EC0053008F088C106C167 +:1033E000112359F0002331F0F701958190FF41C17D +:1033F0009F7095830E944E197AC1002309F4F6C08C +:103400003EC1872D86958695837090E0009719F0D0 +:10341000019761F06CC1112321F08C2D972D9370D1 +:1034200002C080E090E00E94221761C1112321F0C8 +:103430008C2D972D937002C080E090E00E94381789 +:1034400056C18C2D112319F00E944A2402C00E94FB +:10345000B2240E9437254BC1872D837009F052C0DA +:10346000111145C18C2D829586958770880F880F24 +:103470009C2D9F70892E912CA12CB12C082E04C05C +:10348000880C991CAA1CBB1C0A94D2F7C4FE14C059 +:103490000FE010E020E030E0B901A80104C0440FC3 +:1034A000551F661F771F8A95D2F7CB01BA01609529 +:1034B00070958095909503C060E070E0CB01272D5A +:1034C00026952695237030E02230310569F02330AF +:1034D000310589F0682979298A299B29213031050C +:1034E00071F00E94C81F03C1682979298A299B2984 +:1034F0000E94E41FFCC00E94C81FC501B4010E94C5 +:10350000AC1FF5C0112319F0872D817001C086957D +:10351000882309F4ECC08C2D829586958770880FDE +:10352000880F9C2D9F70892E912CA12CB12C082ED8 +:1035300004C0880C991CAA1CBB1C0A94D2F7C4FEB8 +:1035400014C00FE010E020E030E0B901A80104C091 +:10355000440F551F661F771F8A95D2F7CB01BA011A +:10356000609570958095909503C060E070E0CB0108 +:10357000272D269526952370422F50E04230510585 +:1035800069F04330510589F0682979298A299B29F6 +:103590004130510571F00E94A220A9C06829792903 +:1035A0008A299B290E94BE20A2C00E94A220C50198 +:1035B000B4010E9486209BC08C2D90E0FC01E05E4F +:1035C000F109E531F10508F050C0E059FF4F0C94C6 +:1035D0009B2C0C2D0F70872D8F71112321F00E94D1 +:1035E0001F20802F07CF0E944020802F0E94551956 +:1035F0007EC0112341F0053008F079C0872D8F710E +:103600000E94652074C0063008F071C0F7CF112306 +:1036100039F0872D8F710E941F2069C01123C9F3D3 +:10362000872D8F710E94402062C0112329F0872DC1 +:103630008F710E940A205BC00E94002058C0112395 +:1036400051F0172D1F71812F0E941F2063E0812FE1 +:103650000E9433214CC081E00E943C21023008F4DA +:1036600046C082E00E943C2142C0112331F0002379 +:1036700081F28C2D0E9437183AC0002389F28C2DDC +:103680000E94FF1834C0472D4F706C2DC7010E9457 +:10369000EE050E94241F2BC0111129C0472D4F7029 +:1036A00050E042305105B9F04CF44115510581F01C +:1036B00041305105E1F40E94322819C043305105D0 +:1036C00069F04430510599F48C2D0E9484280FC074 +:1036D0000E941B280CC00E944E2809C00E9461282D +:1036E00006C0472D4F706C2DC7010E94F105DD20EB +:1036F000F9F00E942F2180FD1BC0F70112820E9469 +:1037000029210E941F20C7010E94A71B0E94292176 +:103710000F90DF91CF911F910F91FF90EF90DF906D +:10372000CF90BF90AF909F908F907F900C9440204F +:103730000F90DF91CF911F910F91FF90EF90DF904D +:10374000CF90BF90AF909F908F907F9008950F93F0 +:103750001F93CF93DF93EC01888199812B813C816A +:10376000232BB9F09F3F11F48F3F99F0CE010E94B7 +:10377000ED03882371F0688179818A810E94252177 +:103780008C010E94DA200E94A11FB801CE010E9484 +:103790005C19DF91CF911F910F9108950E94FD2137 +:1037A0000E940D220E94D2210E9427220E94E82519 +:1037B0000E94372580E090E00E94221780E090E090 +:1037C0000C9438170E94ED210C94CE1B0E941A21F4 +:1037D000292F22952F7030E02C3031054CF42A30FF +:1037E00031056CF42250310922303105A8F407C0AC +:1037F0002C30310569F02F30310551F00DC0803F7C +:1038000069F018F4803E40F409C0843F29F406C0F2 +:1038100093FB882780F9089580E0089581E008955A +:10382000CF93DF9300D000D01F92CDB7DEB70F90BB +:103830000F900F900F900F90DF91CF910895CF933D +:10384000DF9300D000D000D0CDB7DEB726960FB6FC +:10385000F894DEBF0FBECDBFDF91CF9108951F93C7 +:10386000CF93DF93C0919D0216E080919E02C8170E +:1038700099F0D0E01C9FF0011D9FF00D1124E1563E +:10388000FD4F4081518162817381848195810E94C5 +:103890001F1C2196C770E9CFDF91CF911F9108952A +:1038A0004091CF025091D0026091D1027091D2022A +:1038B0008091D3029091D4020C941F1C8091D40269 +:1038C00082958F7009F054C08091D102882309F449 +:1038D0004FC080919D02A0919E026091CF02709195 +:1038E000D0024091D2025091D302B6E08A1709F477 +:1038F0003FC090E041155105C1F17F3F11F46F3F8A +:10390000A1F1B89FF001B99FF00D1124E156FD4FD0 +:10391000218172132AC02081621327C022812111C4 +:1039200024C0238134812417350710F42150310934 +:10393000241B350B283C3105C0F42091D4022F7094 +:1039400020612093D40226E0289FF001299FF00DEA +:103950001124EC55FD4F80818F70806180838FEC46 +:1039600092E00E94A71B0C942F1C01968770BECF7B +:103970000895CF92DF92EF92FF920F931F93CF9310 +:10398000DF93CDB7DEB762970FB6F894DEBF0FBEF8 +:10399000CDBF8C0185E0F801DE011D9601900D92EE +:1039A0008A95E1F7D8014C9111965C911197129686 +:1039B0006C9112971396CD90DC9014973091CF02B2 +:1039C0007091D0028091D2029091D302009709F4B5 +:1039D0006BC17F3F19F43F3F09F466C1E090D1020B +:1039E000EE2009F4C0C02091D402C816D90628F0F0 +:1039F000F601E81BF90BCF0104C0809590958C0D62 +:103A00009D1DFF24F394883C910578F0F12C207FD4 +:103A100009F0C6C07C2DD98AC88A89890E94101CE9 +:103A20008FEC92E00E94A71BB1C0822F807F09F02B +:103A300046C0751314C0341312C0611110C02F702A +:103A400020612093D4020E94501C8FEC92E00E94CF +:103A5000A71B8091D402D80115968C932EC0CD2837 +:103A600019F15F3F11F44F3FF9F0F62E61111CC0C0 +:103A700080919D0220919E0236E0821709F45AC07F +:103A800090E0389FF001399FF00D1124E156FD4F71 +:103A90007181571306C07081471303C07281711181 +:103AA00003C001968770E9CFF62E662309F418C18A +:103AB0008091D40281608093D402F12C11C17513DE +:103AC00008C0341306C0611104C08091D402D8012B +:103AD000C3C04D875E878D859E856A8B0E94E61BDD +:103AE0006A898823E1F16623D1F12091D402822FE3 +:103AF00082958F7090E0029774F08091CF02909140 +:103B0000D00298878F831986DB86CA862C87CE01E0 +:103B100007960E94A71B86E0F801AFECB2E0019087 +:103B20000D928A95E1F70E945E1C0E94501CFF24B2 +:103B3000F394D6C04D875E878D859E850E941A219D +:103B4000292F22952F7030E0223031050CF0BCC0B7 +:103B50009F7009F0B6C0805E883008F4C1C0C8010B +:103B60000E94A71BE4CFC816D90608F453C0F6017B +:103B7000E81BF90BCF01883C910508F450C0F12CEB +:103B80007C2DD98AC88A89890E94101CEFECF2E04A +:103B900086E0DF011D928A95E9F70E94501CA0C0C3 +:103BA000751314C0341312C0611110C08091D40277 +:103BB000F8018583C8010E94A71B86E0EFECF2E0C4 +:103BC000DF011D928A95E9F7FE2C8AC04D875E873A +:103BD0008D859E856A8B0E94E61B6A89882309F47D +:103BE000BECF662309F4BBCF2091D402822F8295E9 +:103BF0008F7090E002970CF48ECF8091CF0290915D +:103C0000D0029A8389831B82DD82CC822E83CE01EF +:103C100001967FCF809590958C0D9D1DACCFF62E93 +:103C2000662309F49CCF75132EC034132CC0209149 +:103C3000D40220FD1FC0822F82958F70D9F0D80149 +:103C400015962C9315978F3049F08F5F982F92958A +:103C5000907F822F8F70892B15968C93C8010E94BC +:103C6000A71B86E0F801AFECB2E001900D928A95B7 +:103C7000E1F793CF86E0F801AFECB2E001900D924E +:103C80008A95E1F72DC04D875E878D859E850E94C0 +:103C9000E61B811140CF8091D40281608093D402D1 +:103CA000C8010E94A71B1CC0662309F458CF4D878A +:103CB0005E878D859E850E94E61B882309F44FCF81 +:103CC0002ACF811148CF0CC0243031050CF047CFEA +:103CD0009F7009F440CFF8019581907F09F03BCFA8 +:103CE0008F2D62960FB6F894DEBF0FBECDBFDF9169 +:103CF000CF911F910F91FF90EF90DF90CF9008959B +:103D00001F93CF93DF93CDB7DEB72C970FB6F89400 +:103D1000DEBF0FBECDBF4F83588769877A878B87F9 +:103D20009C87CE0107960E94B91C882369F08F8179 +:103D300098852A853B85232BF1F19F3F09F063C0CD +:103D40008F3F09F060C037C086E0FE013796DE0184 +:103D5000119601900D928A95E1F76F817885EA8539 +:103D6000FB85309741F17F3F11F46F3F21F12091A6 +:103D70009E0230E0C90101968770992740919D020B +:103D800050E08417950709F447C069837A83FD835F +:103D9000EC8396E0929FD001939FB00D1124A15621 +:103DA000BD4FFE01319601900D929A95E1F78093F7 +:103DB0009E020E942F1C16E080919D0290919E020F +:103DC0008917C1F1189FC001112481569D4F0E948F +:103DD000B91C882379F1E0919D021E9FF001112406 +:103DE000E156FD4F408151816281738184819581CB +:103DF0000E941F1C80919D0290E001968770992778 +:103E000080939D02D9CF4F81588569857A858B85AE +:103E10009C850E941F1CCFCF0E94E21B10929E0225 +:103E200010929D02EFECF2E086E0DF011D928A9590 +:103E3000E9F7C1CF2C960FB6F894DEBF0FBECDBF09 +:103E4000DF91CF911F910895EF92FF920F931F93EF +:103E5000CF93DF938C01009709F46CC0F12CEE2412 +:103E6000E394E8012196F8018491843740F484308A +:103E700008F051C0813081F0823019F15BC0853784 +:103E800009F444C0A8F19CE7980F903708F052C09D +:103E90008F770E94FF1841C00E5F1F4FFE01C49133 +:103EA00080E28C0F883048F4C7708E2D01C0880FD7 +:103EB000CA95EAF70E94002214C08C2F0E9437187E +:103EC0002DC00E5F1F4FFE01C49180E28C0F883021 +:103ED00058F4C7708E2D01C0880FCA95EAF70E946A +:103EE00006220E9427221AC08C2F0E94FF1816C09B +:103EF0000E5F1F4FFE01C491CC2381F08FE99FE03C +:103F00000197F1F700C00000C150F6CF0E5F1F4FC0 +:103F1000FE01F49003C00E9437188E018F2D882374 +:103F200009F49FCFEFE9FFE03197F1F700C00000FF +:103F30008150F5CFDF91CF911F910F91FF90EF90BE +:103F4000089508956093D9027093DA028093DB029A +:103F50009093DC020C94CE1B0F931F930091D90217 +:103F60001091DA022091DB023091DC02DC01CB01FE +:103F7000802B912BA22BB32B8093D9029093DA0242 +:103F8000A093DB02B093DC021F910F910C94CE1B27 +:103F90000F931F930091D9021091DA022091DB0256 +:103FA0003091DC02DC01CB0180239123A223B323D7 +:103FB0008093D9029093DA02A093DB02B093DC02E3 +:103FC0001F910F910C94CE1B0F931F930091D90258 +:103FD0001091DA022091DB023091DC02DC01CB018E +:103FE00080279127A227B3278093D9029093DA02E2 +:103FF000A093DB02B093DC021F910F910C94CE1BB7 +:104000001092D5021092D6021092D7021092D802C6 +:104010000C94CE1B41E050E060E070E004C0440F1F +:10402000551F661F771F8A95D2F74093D50250938C +:10403000D6026093D7027093D8020C94CE1B41E055 +:1040400050E060E070E004C0440F551F661F771F0A +:104050008A95D2F78091D5029091D602A091D7028D +:10406000B091D802482B592B6A2B7B2B4093D50259 +:104070005093D6026093D7027093D8020C94CE1B53 +:1040800041E050E060E070E004C0440F551F661F3F +:10409000771F8A95D2F740955095609570958091DD +:1040A000D5029091D602A091D702B091D8024823B0 +:1040B00059236A237B234093D5025093D602609301 +:1040C000D7027093D8020C94CE1B41E050E060E020 +:1040D00070E004C0440F551F661F771F8A95D2F702 +:1040E0008091D5029091D602A091D702B091D802CA +:1040F000482759276A277B274093D5025093D60239 +:104100006093D7027093D8020C94CE1B0F931F9329 +:104110000091D5021091D6022091D7023091D80299 +:10412000DC01CB01802B912BA22BB32B8093D502EA +:104130009093D602A093D702B093D8021F910F910B +:104140000C94CE1B0F931F930091D5021091D602B1 +:104150002091D7023091D802DC01CB01802391233A +:10416000A223B3238093D5029093D602A093D702C3 +:10417000B093D8021F910F910C94CE1B0F931F93F5 +:104180000091D5021091D6022091D7023091D80229 +:10419000DC01CB0180279127A227B3278093D5028A +:1041A0009093D602A093D702B093D8021F910F919B +:1041B0000C94CE1B0895CF92DF92EF92FF920F9353 +:1041C0001F93CF93DF938C01C090D902D090DA0275 +:1041D000E090DB02F090DC028091D5029091D60253 +:1041E000A091D702B091D802C82AD92AEA2AFB2A7C +:1041F000CFE1D0E0D701C6010C2E04C0B695A7953B +:10420000979587950A94D2F780FF06C0B8018C2F46 +:104210000E947608019721F4219760F780E001C0A1 +:104220008C2FDF91CF911F910F91FF90EF90DF9036 +:10423000CF900895CF93DF93EC010E94DB20BE0165 +:104240000E947608DF91CF910895CB010E941A2138 +:1042500008958091DD0285958595859508958091D5 +:10426000DD028770089598E0899F90011124262B24 +:104270002093DD020C941F202091DD028095822383 +:104280008093DD02982F977069F430E0482F55270E +:1042900047FD50952417350729F085958595859517 +:1042A0000C94402008959091DD02977081E009F40C +:1042B00080E0089590911501992321F090911601C5 +:1042C000911109C02091170130911801F90132961E +:1042D0009FEF40E01FC0982F9695969596959F303A +:1042E00050F5E0911701F0911801E90FF11D877069 +:1042F00021E030E0A90102C0440F551F8A95E2F782 +:10430000CA019181892B818308959F3F39F04F5FC6 +:104310004E3041F051915813F8CF0DC05111F7CFE5 +:10432000942FF5CF9F3F39F0F901E90FF11D97FD6B +:10433000FA9582830895089590911501992321F0AB +:1043400090911601911109C0209117013091180127 +:10435000F9013296205F3F4F1FC0982F9695969592 +:1043600096959F30F0F4E0911701F0911801E90F54 +:10437000F11D877021E030E0A90102C0440F551FF4 +:104380008A95E2F7CA0180959181892381830895F6 +:104390003196E217F30729F090819813F9CF108234 +:1043A000F7CF089581E090E0E0911701F0911801B6 +:1043B000E80FF91F1082019680319105A9F7089541 +:1043C0009091F102892B8093F1020895809590914C +:1043D000F10289238093F10208951092F102089569 +:1043E0009091F002892B8093F0020895809590912E +:1043F000F00289238093F00208951092F00208954C +:104400009091EF02892B8093EF020895809590910F +:10441000EF0289238093EF0208951092EF0208952E +:104420008093DE0208951092DE02089580911701B4 +:1044300090911801FC0131969C01205F3F4F80E074 +:10444000919191118F5FE217F307D1F70895E091F1 +:104450001701F09118018091F1028083E09117011A +:10446000F091180190818091F002892B8083E09176 +:104470001701F091180190818091EF02892B8083C0 +:104480008091DE02882361F0E0911701F09118011C +:104490009081892B80830E94162281111092DE0266 +:1044A00080911701909118010C940C1720E000974F +:1044B00039F0AC0141505109842395232F5FF7CF88 +:1044C000822F089580911303843039F11092F30202 +:1044D00020E488E190E00FB6F894A89580936000FE +:1044E0000FBE2093600080E00E94F10280E00E94F5 +:1044F000100983B7817F846083BF83B7816083BFE6 +:104500007894889583B78E7F83BF88E10FB6F8943F +:1045100080936000109260000FBE08950895089582 +:1045200080E00E94F1020E948E220E946B090E948C +:104530008F220E94F00991E0811101C090E0892F43 +:1045400008950E94E21B80E00E94F1020E940A2866 +:104550000E9400170C9410091F920F920FB60F9231 +:1045600011248F939F93AF93BF938091F302811196 +:1045700013C08091F4029091F502A091F602B091DF +:10458000F7024196A11DB11D8093F4029093F502AC +:10459000A093F602B093F702BF91AF919F918F91D4 +:1045A0000F900FBE0F901F90189582E084BD93E08E +:1045B00095BD9AEF97BD80936E0008952FB7F8943C +:1045C0008091F4029091F502A091F602B091F70269 +:1045D0002FBF0895CF92DF92EF92FF920F931F9318 +:1045E0002FB7F8944091F4025091F5026091F602D1 +:1045F0007091F7022FBF6A017B01EE24FF248C012A +:1046000020E030E0C016D106E206F30610F4415077 +:1046100051099A01281B390BC9011F910F91FF9075 +:10462000EF90DF90CF9008951F920F920FB60F92E8 +:1046300011248F939F93AF93BF938091F402909135 +:10464000F502A091F602B091F7020196A11DB11DED +:104650008093F4029093F502A093F602B093F702D0 +:10466000BF91AF919F918F910F900FBE0F901F90B0 +:1046700018950E94FD13F8942FEF87EA91E62150D8 +:1046800080409040E1F700C0000087E090EBDC0143 +:1046900080931E0390931F03A0932003B0932103E4 +:1046A0009CE088E10FB6F894A895809360000FBE57 +:1046B00090936000FFCF0E949A23811102C00E9454 +:1046C00076230E94A5238093F2020E94AD2380935B +:1046D0001C0387FB882780F9809316010E94A92379 +:1046E000682F70E080E090E00C94A21F6DEE7EEFEA +:1046F00080E090E00E94C12C60E082E090E00E94A7 +:10470000AF2C60E083E090E00E94AF2C60E084E09A +:1047100090E00E94AF2C60E085E090E00E94AF2C1A +:1047200060E086E090E00E94AF2C6FEF87E090E0C1 +:104730000C94AF2C80E090E00E94A92C21E08D3EEB +:104740009E4F09F020E0822F089582E090E00C94C3 +:10475000A12C83E090E00C94A12C84E090E00C94D8 +:10476000A12C682F84E090E00C94AF2C86E090E0C0 +:104770000C94A12C682F86E090E00C94AF2C87E07D +:1047800090E00C94A12C682F87E090E00C94AF2C63 +:104790008091FA0280FF0BC060911C0185E0689F48 +:1047A000B001112475956795759567952BC081FFAC +:1047B00009C060911C0185E0689FB00111247595C6 +:1047C000679520C082FF07C060911C0185E0689F4B +:1047D000B001112417C09091FB029923D1F0609190 +:1047E0001B01961788F720911C0185E0289F9001F6 +:1047F0001124929FA001939F500D112470E0CA01D3 +:104800000E94872C6038710540F46115710539F0FC +:1048100002C065E070E0862F08958FE7089581E07B +:1048200008958091FA0280FF08C060911A0170E03B +:10483000759567957595679521C081FF06C0609154 +:104840001A0170E07595679519C082FF04C06091E8 +:104850001A0170E010C09091FB029923C1F06091A1 +:1048600019019617A0F780911A01899FC0011124A0 +:1048700070E00E94872C6038710528F4611571057D +:1048800021F0862F08958FE7089581E0089561E073 +:1048900070E0F4CF803F21F40E94C823819504C0CA +:1048A000813F29F40E94C8238093FE020895823F2D +:1048B00021F40E94C823819504C0833F29F40E94FB +:1048C000C8238093FD020895893F19F40E941124A2 +:1048D00005C08A3F31F40E94112481958093FF0224 +:1048E00008958B3F21F40E941124819504C08C3FD0 +:1048F00029F40E941124809300030895843F21F439 +:104900008091FC02816017C0853F21F48091FC02F8 +:10491000826011C0863F21F48091FC0284600BC04C +:10492000873F21F48091FC02886005C0883F31F404 +:104930008091FC0280618093FC0208958D3F21F4F8 +:104940008091FA0281600BC08E3F21F48091FA02BF +:10495000826005C08F3F29F48091FA0284608093C1 +:10496000FA020895803F39F48091FE0287FF6CC0FF +:104970001092FE0269C0813F29F48091FE02181650 +:10498000BCF362C09091FD02823F29F497FF5CC0A6 +:104990001092FD0259C0833F19F41916CCF354C08C +:1049A000893F41F48091FF0218160CF04DC010921F +:1049B000FF024AC08A3F29F48091FF0287FF44C06A +:1049C000F6CF8B3F39F48091000387FF3DC01092F2 +:1049D00000033AC08C3F29F4809100031816BCF301 +:1049E00033C0843F21F48091FC028E7F17C0853F45 +:1049F00021F48091FC028D7F11C0863F21F48091CB +:104A0000FC028B7F0BC0873F21F48091FC02877FE3 +:104A100005C0883F31F48091FC028F7E8093FC02B8 +:104A200013C08D3F21F48091FA028E7F0BC08E3F20 +:104A300021F48091FA028D7F05C08F3F29F4809187 +:104A4000FA028B7F8093FA028091FD0281110EC0E1 +:104A50008091FE0281110AC08091FF02811106C07F +:104A600080910003811102C01092FB0208958CEF27 +:104A700092E00E9417170E94DE229093F902809321 +:104A8000F80208951F93CF93DF938091F8029091DD +:104A9000F9020E94EA22AC019091FB02992321F0D5 +:104AA00020911D0130E006C020911E018AE0289F60 +:104AB000900111244217530708F486C08091FD022B +:104AC000C091FE02D091FF0210910003811107C036 +:104AD000C11176C0D11174C0111172C075C09F3F51 +:104AE00019F09F5F9093FB02181624F40E94C823CC +:104AF0008093FD028091FD0287FF05C00E94C823BC +:104B000081958093FD021C1624F40E94C823809393 +:104B1000FE028091FE0287FF05C00E94C823819596 +:104B20008093FE026091FD02662339F1C091FE027E +:104B3000CC2319F1772767FD7095872F972F0E9457 +:104B4000A92923E333E343E35FE30E94B92A0E94E8 +:104B500076296093FD026C2F772767FD7095872F6C +:104B6000972F0E94A92923E333E343E35FE30E94E5 +:104B7000B92A0E9476296093FE021D1624F40E9431 +:104B800011248093FF028091FF0287FF05C00E94DD +:104B9000112481958093FF02111624F40E941124A0 +:104BA000809300038091000387FF05C00E941124B9 +:104BB000819580930003DF91CF911F910C9437254D +:104BC0009F3F09F08ECF96CFDF91CF911F9108952F +:104BD000ECEFF2E085E0DF011D928A95E9F7109293 +:104BE000FB021092FA020895833081F128F481309B +:104BF00059F08230D1F00895853009F449C0B8F1F8 +:104C0000863009F456C0089580911E01262F30E0A9 +:104C1000280F311D2F3F310524F4680F60931E01CA +:104C200008958FEF80931E01089580911D01262F16 +:104C300030E0280F311D2F3F310524F4680F6093B9 +:104C40001D0108958FEF80931D01089580911C012F +:104C5000262F30E0280F311D2F3F310524F4680F37 +:104C600060931C0108958FEF80931C01089580913B +:104C70001B01262F30E0280F311D2F3F310524F472 +:104C8000680F60931B0108958FEF80931B010895B7 +:104C900080911A01262F30E0280F311D2F3F31055A +:104CA00024F4680F60931A0108958FEF80931A011E +:104CB000089580911901262F30E0280F311D2F3FD4 +:104CC000310524F4680F6093190108958FEF8093E4 +:104CD00019010895833011F128F4813049F08230B0 +:104CE00091F00895853081F120F18630C1F1089569 +:104CF00080911E01681720F4861B80931E01089581 +:104D000010921E01089580911D01681720F4861BE2 +:104D100080931D01089510921D01089580911C013A +:104D2000681720F4861B80931C01089510921C01C3 +:104D3000089580911B01681720F4861B80931B0146 +:104D4000089510921B01089580911A01681720F4AC +:104D5000861B80931A01089510921A01089580917C +:104D60001901681720F4861B809319010895109289 +:104D7000190108950F931F93873208F048C08E31B0 +:104D800008F08DC0803109F477C008F5873009F448 +:104D900061C068F4863009F09DC08091F202817F85 +:104DA0008E7F8093F20281E08093020394C08B3067 +:104DB00009F489C08E3009F08DC08091F20282FB27 +:104DC000222720F991E0922790FB82F95EC086317C +:104DD00009F479C060F4813109F07CC00E94E21BC3 +:104DE0009091160181E08927809316016CC089316A +:104DF00009F469C08B3109F06DC08091F20281FB2A +:104E0000222720F991E0922790FB81F93EC0883358 +:104E100009F459C050F4893209F457C0853309F4B4 +:104E200054C0873209F451C055C0833409F44DC0D1 +:104E300028F48A3308F44EC0895332C0883409F00C +:104E400049C00E94E21B0E94200A0E94E4030E94C3 +:104E5000392339C09091F202892F8095817080FBAF +:104E600090F929F0966098609093F20234C0997F8F +:104E7000977F9093F20227C08091F20283FB222752 +:104E800020F991E0922790FB83F98093F202992315 +:104E9000D1F08091F20281608093F20214C08D51B2 +:104EA00041E050E060E070E08A019B0104C0000F27 +:104EB000111F221F331F8A95D2F7C901B8010E9422 +:104EC000A21F0E94E21B81E006C061E070E080E06A +:104ED00090E0F5CF80E01F910F91089580E0089554 +:104EE00080E00895CF93C82F80910203813069F04C +:104EF00018F08230C9F184C0E0911701F0911801D7 +:104F00008081823209F07EC007C0E0911701F091E4 +:104F100018018081823261F48C2F0E946E278111EA +:104F200004C08C2F0E94BA261DC081E090E01AC0F8 +:104F30008C2F0E947027811114C0C43179F048F47D +:104F4000CB3079F0C03109F061C082E08093020378 +:104F500008C0C93219F0C83321F058C010920203BA +:104F600055C081E0817054C0C93291F120F5C4313F +:104F700079F1B0F4C73009F047C08EE180931E018B +:104F800082E380931D018AE080931C0184E1809379 +:104F90001B0188E080931A0188E28093190134C0D4 +:104FA000CE51C63088F5EC2FF0E0EA54FE4F8081F8 +:104FB0008093010329C0CE34E9F020F4CB3421F5ED +:104FC0006AE013C0C13579F0C235F1F461E00DC07B +:104FD00080910103882319F01092010315C081E02C +:104FE0008093020315C061E006C0809101030E9416 +:104FF000F4250AC06AE0809101030E946A2604C079 +:105000001092020380E004C081E002C080E0AACFD9 +:10501000CF9108950E949A23811102C00E947623A5 +:105020000E94B62380931D0380FF02C0869501C0B5 +:1050300080E00C94F10280911D03982F9695292F02 +:1050400030E0233031054CF49F5F990F8170892B3C +:10505000816080931D030E94BA2380911D03869571 +:105060000C94F10280911D03982F969591F0915820 +:10507000990F8170892B80931D038E7F91E009F435 +:1050800090E080911D0390FB80F980931D030E94A6 +:10509000BA2380911D0386950C94F10280911D0323 +:1050A000982F909590FB80F980931D030E94BA235E +:1050B00080911D0380FF02C0869501C080E00C94A2 +:1050C000F10290911D03892F86958F5F8F779170E4 +:1050D000843028F4880F892B80931D0302C090939D +:1050E0001D0380911D038E7F91E009F490E0809173 +:1050F0001D0390FB80F980931D030E94BA238091C9 +:105100001D0386950C94F10220911D03922F969514 +:105110008927982F990F822F8170892B80931D03E7 +:105120008E7F91E009F490E080911D0390FB80F95F +:1051300080931D030E94BA2380911D0386950C94D1 +:10514000F10280911D03869508955058BB27AA2728 +:105150000ED0D1C1C2D130F0C7D120F031F49F3F81 +:1051600011F41EF4B7C10EF4E095E7FB9FC1E92FDF +:10517000D3D180F3BA17620773078407950718F035 +:1051800071F49EF5EBC10EF4E0950B2EBA2FA02D15 +:105190000B01B90190010C01CA01A0011124FF27E4 +:1051A000591B99F0593F50F4503E68F11A16F040DF +:1051B000A22F232F342F4427585FF3CF46953795DE +:1051C0002795A795F0405395C9F77EF41F16BA0BA3 +:1051D000620B730B840BBAF09150A1F0FF0FBB1F51 +:1051E000661F771F881FC2F70EC0BA0F621F731F9A +:1051F000841F48F4879577956795B795F7959E3FF7 +:1052000008F0B3CF9395880F08F09927EE0F979584 +:105210008795089527D108F481E008950CD06BC1DB +:1052200063D140F05AD130F021F45F3F19F03EC114 +:10523000511195C14FC170D198F39923C9F35523EA +:10524000B1F3951B550BBB27AA2762177307840779 +:1052500038F09F5F5F4F220F331F441FAA1FA9F32F +:1052600033D00E2E3AF0E0E830D091505040E69521 +:10527000001CCAF729D0FE2F27D0660F771F881F82 +:10528000BB1F261737074807AB07B0E809F0BB0B71 +:10529000802DBF01FF2793585F4F2AF09E3F510595 +:1052A00068F004C15CC15F3FECF3983EDCF3869587 +:1052B00077956795B795F7959F5FC9F7880F911D0B +:1052C0009695879597F90895E1E0660F771F881FF7 +:1052D000BB1F621773078407BA0720F0621B730BAA +:1052E000840BBA0BEE1F88F7E095089504D06894FC +:1052F000B11135C1089518D188F09F5790F0B92F9A +:105300009927B751A0F0D1F0660F771F881F991F1A +:105310001AF0BA95C9F712C0B13081F01FD1B1E0CF +:1053200008951CC1672F782F8827B85F39F0B93FDF +:10533000CCF3869577956795B395D9F73EF490951C +:105340008095709561957F4F8F4F9F4F0895E8949A +:1053500009C097FB3EF490958095709561957F4FBD +:105360008F4F9F4F9923A9F0F92F96E9BB2793956B +:10537000F695879577956795B795F111F8CFFAF47B +:10538000BB0F11F460FF1BC06F5F7F4F8F4F9F4FAC +:1053900016C0882311F096E911C0772321F09EE80A +:1053A000872F762F05C0662371F096E8862F70E070 +:1053B00060E02AF09A95660F771F881FDAF7880F4A +:1053C0009695879597F9089588D018F011F08CD0AC +:1053D00038F480C0C4C0E92F9FD0B0F35523C9F37F +:1053E000E7FB6217730784079507A8F199F3E92F84 +:1053F000FF2788232AF03197660F771F881FDAF777 +:10540000952F5527442332F091505040220F331FDF +:10541000441FD2F7BB27E91BF50B621B730B840BF0 +:10542000B109C1F222F4620F731F841FB11D3197BD +:105430002AF0660F771F881FBB1FEFCF9150504097 +:105440005AF041F0882332F0660F771F881F915081 +:105450005040C1F7939530C08695779567959F5FCB +:10546000D9F7F8CF990F0008550FAA0BE0E8FEEF27 +:1054700016161706E807F907C0F012161306E40718 +:10548000F50798F0621B730B840B950B39F40A2611 +:1054900061F0232B242B252B21F408950A2609F4EF +:1054A000A140A6958FEF811D811D089597F99F67F3 +:1054B00080E870E060E008959F3F31F0915020F463 +:1054C000879577956795B795880F911D96958795E0 +:1054D00097F908959FEF80EC089500240A9416161A +:1054E000170618060906089500240A9412161306D2 +:1054F000140605060895092E0394000C11F4882360 +:1055000052F0BB0F40F4BF2B11F460FF04C06F5F7B +:105510007F4F8F4F9F4F089557FD9058440F551F51 +:1055200059F05F3F71F04795880F97FB991F61F025 +:105530009F3F79F087950895121613061406551F9C +:10554000F2CF4695F1DF08C0161617061806991F08 +:10555000F1CF86957105610508940895E894BB27FD +:1055600066277727CB0197F908957CDF08F48FEF42 +:1055700008950BD0C0CFB1DF28F0B6DF18F0952327 +:1055800009F094CFA7CF1124EACFC6DFA0F3959FEF +:10559000D1F3950F50E0551F629FF001729FBB271A +:1055A000F00DB11D639FAA27F00DB11DAA1F649FC6 +:1055B0006627B00DA11D661F829F2227B00DA11D79 +:1055C000621F739FB00DA11D621F839FA00D611DFF +:1055D000221F749F3327A00D611D231F849F600D20 +:1055E000211D822F762F6A2F11249F5750408AF059 +:1055F000E1F088234AF0EE0FFF1FBB1F661F771FE5 +:10560000881F91505040A9F79E3F510570F04ECF32 +:10561000A6CF5F3FECF3983EDCF3869577956795D0 +:10562000B795F795E7959F5FC1F7FE2B880F911D02 +:105630009695879597F90895FA01EE0FFF1F30961A +:105640002105310599F16115710561F48038BFE3D9 +:105650009B0749F168949038810561F08038BFEF6D +:105660009B0741F0992342F5FF3FE10531052105F4 +:1056700011F1E8940894E795D901AA2329F4AB2FF6 +:10568000BE2FF85FD0F310C0FF5F70F4A695E0F76F +:10569000F73950F019F0FF3A38F49F779F930CD008 +:1056A0000F9007FC905808953EF014CF60E070E032 +:1056B00080E89FE308954FE79F775F934F933F9371 +:1056C0002F939ED02F913F914F915F9152DF05C054 +:1056D00019F40EF0EBCE42CFFDCE26DFC8F396389C +:1056E000C0F707F80F92E8942BE33AEA48EB5FE73C +:1056F0004EDF0F920F920F924DB75EB70F92C0D050 +:10570000EAE0F1E016D04F915F91EF91FF91E595BE +:10571000EE1FFF1F49F0FE57E0684427EE0F441FBD +:10572000FA95E1F74195550B32D00F9007FE26C050 +:105730000895DF93CF931F930F93FF92EF92DF9221 +:105740007B018C01689405C0DA2EEF011EDFFE019B +:10575000E894A5912591359145915591AEF3EF01CE +:1057600006DDFE019701A801DA9479F7DF90EF904A +:10577000FF900F911F91CF91DF9108959B01AC0194 +:1057800060E070E080E89FE349CD90CE95CECCDE1E +:10579000E8F39923D9F3940F511DBBF39150504076 +:1057A00094F059F0882332F0660F771F881F9150CC +:1057B0005040C1F79E3F510544F7880F911D9695C3 +:1057C000879597F908955F3FACF0983E9CF0BB2712 +:1057D000869577956795B79508F4B1609395C1F76D +:1057E000BB0F58F711F460FFE8CF6F5F7F4F8F4F0B +:1057F0009F4FE3CFB4CE0EF05FCE6CCE689456CE02 +:1058000093DEC8F39923D1F3C6F3DF93CF931F93AD +:105810000F93FF92C92FDD2788232AF02197660F67 +:10582000771F881FDAF720E030E040E85FEB9FE366 +:10583000883920F0803E30F021968F7787DCE2E3D4 +:10584000F1E003C083DCEFE5F1E073DF8B01BE0123 +:10585000EC01FB2E6F5771097595771F880B990B1B +:1058600078DD28E132E741E35FE38FDEAF2D980179 +:10587000AE01FF900F911F91CF91DF9178DC3BCE6D +:10588000FA01DC01AA0FBB1F9B01AC01BF5728F432 +:1058900022273327442750781FC0B75188F4AB2FF5 +:1058A0000024469537952795011CA395D2F3002037 +:1058B00069F0220F331F441FB395DAF30DD045CCA6 +:1058C00061307105A0E88A07B94630F49B01AC014C +:1058D0006627772788279078309621F020833183B8 +:1058E000428353830895AA1BBB1B51E107C0AA1F23 +:1058F000BB1FA617B70710F0A61BB70B881F991F71 +:105900005A95A9F780959095BC01CD01089597FB14 +:10591000072E16F4009407D077FD09D00E94732C4F +:1059200007FC05D03EF4909581959F4F08957095A2 +:1059300061957F4F0895EE0FFF1F0590F491E02DC4 +:105940000994F999FECF92BD81BDF89A992780B547 +:105950000895A8E1B0E042E050E00C94C92C262F55 +:10596000F999FECF92BD81BDF89A019700B4021655 +:1059700039F01FBA20BD0FB6F894FA9AF99A0FBE03 +:1059800008950196272F0E94B02C0C94AF2CDC01B7 +:10599000CB01FC01F999FECF06C0F2BDE1BDF89A3A +:1059A000319600B40D9241505040B8F70895F894E4 +:0259B000FFCF27 +:1059B200640007000CFF0000003F64041092106FA7 +:1059C200103B1007100101DF022808140A321E00E2 +:1059D20002040507090B0C0E1011131517181A1CD7 +:1059E2001D1F2123242628292B2D2F303234353711 +:1059F200393B1F0F03764F5F6F7F4969437909591E +:105A020053633149803F5D8B803FF8BF803FCAE1DD +:105A1200803F73ED803FCAE1803FF8BF803F5D8BDE +:105A2200803F3149803F0000803FF16D7F3F75EA42 +:105A32007E3F4C827E3F833F7E3F84287E3F833F72 +:105A42007E3F4C827E3F75EA7E3FF16D7F3F0000D4 +:105A5200803F3F4D3639ED04A0046A043104C4038B +:105A6200DD03F6030F04010203040506070809001B +:00000001FF diff --git a/keyboards/planck/keymaps/kyle/keymap.c b/keyboards/planck/keymaps/kyle/keymap.c new file mode 100644 index 000000000..f113d0e03 --- /dev/null +++ b/keyboards/planck/keymaps/kyle/keymap.c @@ -0,0 +1,38 @@ +#include "keymap.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = { /* Qwerty */ + {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, + {KC_RCTL, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + // Space is repeated to accommadate for both spacebar wiring positions +}, +[1] = { /* Colemak */ + {KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, + {KC_FN3, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[2] = { /* RAISE */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[3] = { /* LOWER */ + {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, + {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), LSFT(RSFT(KC_D)), KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, + {BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE + [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER + + [3] = ACTION_DEFAULT_LAYER_SET(0), + [4] = ACTION_DEFAULT_LAYER_SET(1), + +}; diff --git a/keyboards/planck/keymaps/leo/Makefile b/keyboards/planck/keymaps/leo/Makefile new file mode 100644 index 000000000..581e08cd0 --- /dev/null +++ b/keyboards/planck/keymaps/leo/Makefile @@ -0,0 +1,25 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/leo/compiled.hex b/keyboards/planck/keymaps/leo/compiled.hex new file mode 100644 index 000000000..4bfe15bd0 --- /dev/null +++ b/keyboards/planck/keymaps/leo/compiled.hex @@ -0,0 +1,1454 @@ +:100000000C94C5020C9409030C9409030C94090385 +:100010000C9409030C9409030C9409030C94090330 +:100020000C9409030C9409030C94A7140C947915EF +:100030000C94DB220C9409030C9409030C9409031F +:100040000C9409030C946B030C9409030C9409039E +:100050000C9409030C9443230C9409030C94090396 +:100060000C9409030C9409030C9409030C940903E0 +:100070000C9409030C9409030C9409030C940903D0 +:100080000C941C0B0C9409030C9409030C940903A5 +:100090000C9409030C9409030C9409030C940903B0 +:1000A0000C9409030C9409030C940903E615081633 +:1000B000F6160816F6164D167016F616C516D8164C +:1000C000C219C219F119F119301A501AA61BA61B30 +:1000D0005B1AA61B0B1B0B1B721B7B1BA61BA01BFF +:1000E000181B181B181B181B181B181B181B181B78 +:1000F000181B181B181B181B181B181B181B181B68 +:10010000281B361B3D1B441B4E1B07634236B79B07 +:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 +:100120005763BD6DEDFD753EF6177231BF000000DF +:10013000803F08000000BE922449123EABAAAA2AC2 +:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD +:1001500000000000BF000000803F00000000000819 +:100160004178D3BB4387D1133D190E3CC3BD4282B6 +:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 +:10018000FFBE01C4FF7F3F00000000000000000030 +:1001900000000000000000010204060A0F17202CD6 +:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 +:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF +:1001C0000201000000000000000000000000F1A299 +:1001D000F1A3F1A429002F003400330013001C0008 +:1001E00009000A00060015000F002A002B00040079 +:1001F0001200080018000C0007000B001700110087 +:1002000016002800E100370014000D000E001B004E +:10021000050010001A0019001D003600E000E20081 +:10022000E300032002202C002C0001200320E70023 +:10023000E600E400000000000000000000000000F4 +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:10026000000000000000000000000000000000008E +:10027000000000000000000000000000000000007E +:10028000000000000000000000000000000000006E +:100290000000000030141E001F002000210022007A +:1002A0002300240025002600270030023A003B00EE +:1002B0003C003D003E003F00400041004200430042 +:1002C000440045000100010001000100010001009F +:1002D0000100010001000100010001000100010016 +:1002E0000100010001000100010001000100010006 +:1002F000010001002E021E021F022002221422020F +:10030000230224022414271427022D0001001F14A5 +:100310003802640064022D1464143200250226029F +:100320002D02380001000100010001000100010060 +:100330000100010025142614010001000100010044 +:1003400001000100010001000100010001000100A5 +:100350000100010001004A0052004D0001000100AF +:1003600001004A0052004D0001004C0001004F0006 +:10037000510050004B0001004B00500051004F0055 +:100380000100010001000100010001004E00010018 +:100390004E000100AA00A9000100010001000100B7 +:1003A0000100010001000100010001000100010045 +:1003B000010001002803540068006500200050007F +:1003C0006C0061006E0063006B0020004B00650054 +:1003D000790062006F0061007200640000002C036D +:1003E0004F007200740068006F006C0069006E00BE +:1003F00065006100720020004B006500790062001A +:100400006F006100720064007300000004030904BF +:1004100009026D00040100A0FA09040000010301B3 +:100420000100092111010001223F00070581030895 +:10043000000A090401000103010200092111010061 +:1004400001224D000705820308000A090402000189 +:100450000300000009211101000122360007058375 +:100460000308000A09040300010300000009211128 +:100470000100012239000705840310000112011058 +:100480000100000008EDFE606001000102000105AE +:10049000010906A101050719E029E71500250195C5 +:1004A0000875018102050819012905950575019155 +:1004B000029501750391010507190029771500259B +:1004C00001957875018102C005010980A1018502AD +:1004D00016010026B7001A01002AB7007510950111 +:1004E0008100C0050C0901A1018503160100269CAD +:1004F000021A01002A9C02751095018100C00501B5 +:100500000902A1010901A100050919012905150028 +:10051000250195057501810295017503810105018C +:10052000093009311581257F950275088106093842 +:100530001581257F950175088106050C0A3802157D +:1005400081257F950175088106C0C005010906A1B6 +:1005500001050719E029E7150025019508750181B6 +:100560000295017508810105081901290595057590 +:100570000191029501750391010507190029FF15E5 +:100580000025FF950675088100C011241FBECFEF1E +:10059000DAE0DEBFCDBF04B603FE24C080911E03A7 +:1005A00090911F03A0912003B09121038730904BBD +:1005B000A740B04BB9F410921E0310921F03109283 +:1005C00020031092210314BE84B7877F84BF88E183 +:1005D0000FB6F89480936000109260000FBEE0E0C8 +:1005E000F8E3099511E0A0E0B1E0E0E1FAE502C02E +:1005F00005900D92A03CB107D9F713E0A0ECB1E053 +:1006000001C01D92AE31B107E1F70E94ED110C94CB +:10061000062D0C9400000895089581E00895089532 +:100620000C940C030C940D030C940F030E94D0281F +:1006300023E030E0281B3109220F2093C4010895E4 +:10064000282F2F9880918000211108C0877F8093E8 +:10065000800010928D0010928C001BC088608093E7 +:100660008000233019F48FEF9FEF0FC083E090E0FC +:10067000821B9109880F991F2FEF3FEFA90102C03C +:10068000569547958A95E2F7CA0190938D0080931D +:100690008C000C9416030E94160384E08093C3011F +:1006A0001092C0010895279A2F988FEF9FEF909393 +:1006B0008700809386008AE08093800089E18093A0 +:1006C00081000E9439280C944B030E9453036E9AB8 +:1006D000769A0C940B031F920F920FB60F9211246F +:1006E0002F933F938F939F93EF93FF93E091C101DB +:1006F000F091C201CF0101969093C2018093C10194 +:100700000090C30102C0F695E7950A94E2F7EF73F3 +:100710008091C001823019F4E03251F404C081307C +:1007200039F4EF3329F480916F008D7F80936F004F +:10073000F0E0E457FE4FE49121E031E0E29FC00198 +:10074000E39F900D11240090C40102C096958795F7 +:100750000A94E2F790938D0080938C00FF91EF91C3 +:100760009F918F913F912F910F900FBE0F901F90EF +:10077000189581E008950C94B90308950C946503CD +:1007800080911502882309F448C08091D10190918D +:10079000D201009779F40E940D239093D2018093A7 +:1007A000D1018091D30190E0009771F48091D40140 +:1007B00090E00AC00E9419232091000130910101AC +:1007C0002817390740F329C00197880F991F880F10 +:1007D000991FFC01EB52FE4F6081718182819381F0 +:1007E0000E94820AE091D30184E0E89FF001112485 +:1007F000EB52FE4F60817181828193814FE050E026 +:100800000E943A0E8091D30190E001966091D4014C +:1008100070E00E94B62C8093D3010C9410031092C8 +:1008200017020C944F0A0895089581E080931702EF +:100830000C941404089508958F929F92AF92BF92E2 +:10084000EF92FF920F931F93CF93DF93CDB7DEB755 +:10085000A3970FB6F894DEBF0FBECDBF7C01FC019D +:1008600000811181C8010E940A21B8010E9421065D +:100870008C01B7010E94BB03882309F4CCC100326C +:10088000F0E51F0741F4F7018281882309F458C07D +:100890000E949E0EC0C10132F0E51F0741F4F7012E +:1008A0008281882309F44CC00E94A70EB4C1023291 +:1008B000F0E51F0751F4F7018281882309F440C055 +:1008C0000E949A0E8111F0CFE3CF0332F0E51F07AB +:1008D00039F4F7018281882399F10E9415049BC1A4 +:1008E0000432F0E51F0739F4F7018281882341F1D2 +:1008F0000E940F0490C10532F0E51F0749F4F7018B +:1009000082818823E9F0809117028111F1CFE5CF30 +:100910000632F0E51F0739F4F7018281882381F060 +:100920000E94AE0E0AC00732F0E51F0749F4F70136 +:100930008281882329F00E94B90E0E941B046BC19A +:1009400080911702811105C0F70182818111CFC00A +:1009500018C1003E110579F4F7018281882309F45A +:100960004DC00E944F0A81E080931602109215023A +:100970001092D40150C1023E110559F4F701828151 +:100980008823E1F10E944F0A10921602109215027C +:1009900042C1033E110591F4F7018281882371F170 +:1009A0000E944F0A1092160281E080931502109265 +:1009B000D3011092D2011092D1012DC1023511053F +:1009C00059F4F7018281882309F425C1809100013F +:1009D000909101010A970DC00135110579F4F701D5 +:1009E0008281882309F417C180910001909101014F +:1009F0000A9690930101809300010DC1409104017A +:100A000083E2EFE1F1E0DE01119601900D928A950B +:100A1000E1F7F701808121E030E02C0F3D1F280F26 +:100A2000311DC9012091020130910301FC01E20F47 +:100A3000F31F6081772767FD7095640F711D88270C +:100A400077FD8095982F0E94D82920E030E040E47F +:100A500051E40E943D294B015C01F701218184E0B2 +:100A600090E0821B9109BC01882777FD8095982F23 +:100A70000E94D8299B01AC01C501B4010E94D52870 +:100A80009B01AC0160E070E080E090E40E944B2BA1 +:100A900020E030E04CED50E40E94E82A4B015C017C +:100AA000F70182818823D1F04FE050E0C501B40105 +:100AB0000E943A0E809116028823A1F08091D40101 +:100AC00024E0829FF0011124EB52FE4F808291823C +:100AD000A282B3828F5F8093D40104C0C501B401A8 +:100AE0000E94820A0F3F110508F02ECF94C080911A +:100AF000D00181111FC0043130E5130709F051C046 +:100B00000E94BD0381E08093D0010E940D23909349 +:100B1000CF018093CE011092C7011092C9011092AB +:100B2000C8011092CB011092CA011092CD0110920F +:100B3000CC0171C08091CE019091CF010E94192308 +:100B4000883C910570F48091C701E82FF0E0EE0F2A +:100B5000FF1FE853FE4F118300838F5F8093C7010F +:100B60005AC0043880E5180721F00538104501F116 +:100B70003AC0F7018281882341F01092C50182E0DA +:100B80001EC0043830E5130759F58091C501811165 +:100B900006C086E20E94661886E20E942E1982E054 +:100BA0001CC00438F0E51F0741F305381045D9F49F +:100BB000F7018281882331F01092C60180E20E9401 +:100BC0007D1929C08091C601811106C087E20E946B +:100BD000661887E20E942E1980E20E9484191BC0C9 +:100BE0000538104529F381E08093C5018093C60143 +:100BF000C701A3960FB6F894DEBF0FBECDBFDF913D +:100C0000CF911F910F91FF90EF90BF90AF909F9069 +:100C10008F900C94120380E0A3960FB6F894DEBF79 +:100C20000FBECDBFDF91CF911F910F91FF90EF903D +:100C3000BF90AF909F908F90089580E090E00895CE +:100C400008959CE0799FF001112490E3899FE00DC5 +:100C5000F11D1124E60FF11DEE0FFF1FEC52FE4FA8 +:100C6000859194910895880F991FFC01E45BFF4FD3 +:100C7000859194910895880F991FFC01E453FE4FCC +:100C80008591949108950F931F93CF93DF93EC0177 +:100C9000811521E39207A0F5C11580E3D80708F07C +:100CA000D7C0C83ED105D8F4C03ED10508F007C270 +:100CB000C83AD10578F4C53AD10508F06AC0C13008 +:100CC000D10509F463C008F4F7C1C430D10508F0B8 +:100CD000F6C1F2C1CB3BD10508F466C0EDC1C11528 +:100CE00090E2D90708F0AFC0C11521E0D20708F0A3 +:100CF000E6C1C03FD10508F4DFC18E0110651FC2F7 +:100D0000C03880E5D80700F5C03790E5D90708F06E +:100D1000A3C0C11520E5D20709F4ACC050F4CE0140 +:100D2000905480319F4008F0C7C1DF708E01106A77 +:100D300006C2C13080E5D80709F4AEC0C43190E5E1 +:100D4000D90708F4AFC0B8C1C33820E5D20709F409 +:100D50008EC050F4C13890E5D90709F482C008F07C +:100D600083C000E011EDEBC1C03181E5D80708F484 +:100D7000A3C1C11597E5D90708F436C1CE01905734 +:100D80008115904108F098C1DF7093C101E010E037 +:100D9000D6C1C53AD10509F494C1C63AD10509F0C6 +:100DA00093C102E810E4CBC1C83AD10509F48FC160 +:100DB000C93AD10509F48EC1CA3AD10509F48DC1E9 +:100DC000CB3AD10509F48CC1CC3AD10509F48BC1D9 +:100DD000CD3AD10509F48AC1C03BD10509F489C1D6 +:100DE000CE3AD10509F488C1CF3AD10509F487C1BB +:100DF000C13BD10509F486C1C23BD10509F485C1C7 +:100E0000C33BD10509F484C1C43BD10509F483C1B6 +:100E1000C53BD10509F482C1C63BD10509F481C1A6 +:100E2000C73BD10509F480C1C83BD10509F47FC196 +:100E3000C93BD10509F47EC1CA3BD10509F47DC186 +:100E400000E014E47CC1CE019F700E943B0678C193 +:100E5000DD278E01106C73C1CF70DD278E01146DFC +:100E60006EC100E010ED6BC100E012ED68C100E062 +:100E700013ED65C10E94111C0E944F0A0E941304C9 +:100E80008FEF94E32CE0815090402040E1F700C0C8 +:100E900000000E94682353C18091F2028160809318 +:100EA000F2024DC10E94C923811102C00E94A523F4 +:100EB0000E94DC2390E090931D0380931C03C230BA +:100EC00080E5D80721F480911C03816086C0C4307E +:100ED00090E5D90721F480911C0382607EC0C63062 +:100EE00020E5D20721F480911C03846076C0C830CD +:100EF00080E5D80719F480911C0327C0CA3090E51B +:100F0000D90721F480911C03806167C0CC3020E5B3 +:100F1000D20721F480911C0380625FC0CE3080E54F +:100F2000D80721F480911C03806457C0C03190E53C +:100F3000D90721F480911C0380684FC0C23120E59D +:100F4000D20729F480911C038460886046C0C330B6 +:100F500080E5D80721F480911C038E7F3EC0C53008 +:100F600090E5D90721F480911C038D7F36C0C730EE +:100F700020E5D20721F480911C038B7F2EC0C9305D +:100F800080E5D80719F480911C0326C0CB3090E58A +:100F9000D90721F480911C038F7E1FC0CD3020E53E +:100FA000D20721F480911C038F7D17C0CF3080E5DC +:100FB000D80721F480911C038F7B0FC0C13190E5CD +:100FC000D90721F480911C038F7707C0C331D04526 +:100FD00031F480911C038B7F877F80931C03809169 +:100FE0001C030E94E023ABC08D2F99278F70992797 +:100FF00081309105D9F49E012370332702C0880FF8 +:10100000991F2A95E2F79C688E0144E0000F111F9A +:101010004A95E1F700271370802B912B53E0CC0FFA +:10102000DD1F5A95E1F7C076DD272FC0823091058C +:1010300031F4DC2FCC278E01016F106A80C0833021 +:10104000910569F4CE018370992701E010E002C098 +:10105000000F111F8A95E2F7C8019C680FC0843009 +:101060009105B9F4CE018370992701E010E002C028 +:10107000000F111F8A95E2F7C8019A6823E0CC0F90 +:10108000DD1F2A95E1F7C07ED7708C010C2B1D2B3C +:1010900056C08530910531F4DC2FCC278E01046FCA +:1010A000106A4DC0069709F04AC0CF71DD27DC2FCA +:1010B000CC278E01106243C000E010E040C08E01DA +:1010C0003EC001E810E43BC003E810E438C002EE83 +:1010D00014E435C009EE14E432C00AEE14E42FC063 +:1010E00005EB14E42CC006EB14E429C007EB14E470 +:1010F00026C00CEC14E423C00DEC14E420C003E87B +:1011000015E41DC00AE815E41AC002E915E417C089 +:1011100004E915E414C001E216E411C003E216E488 +:101120000EC004E216E40BC005E216E408C006E2B5 +:1011300016E405C007E216E402C00AE216E4C8019C +:10114000DF91CF911F910F9108959CE0799FF0015D +:10115000112490E3899FE00DF11D1124E60FF11D8C +:10116000EE0FFF1FEC52FE4F85919491803E91054A +:10117000E0F4803C910558F58133910509F46FC086 +:1011800048F48932910509F463C08A32910509F463 +:101190006DC072C089339105E9F082389105D1F0B4 +:1011A0008533910509F44DC067C0833E910581F1F7 +:1011B00038F4803E9105B9F0823E9105D9F05CC0CB +:1011C000863E910561F1873E9105A1F155C00E94CF +:1011D0003306089520911C0320FD02C021FF4CC05E +:1011E00080EE90E049C080911C0380FFF9CF89E335 +:1011F00090E042C080911C0382FF0EC080911C03CE +:1012000084FF03C080E090E037C083EE90E034C0FC +:1012100080911C0382FFF2CF82EE90E02DC080917E +:101220001C0383FF0BC080911C0384FDEBCF87EE72 +:1012300090E022C080911C0383FFF5CF86EE90E002 +:101240001BC080911C0385FF07C089E290E014C099 +:1012500080911C0385FFF9CF85E390E00DC080915C +:101260001C0386FF07C08AE290E006C080911C0341 +:1012700086FFF9CF81E390E00E94430608950C9425 +:101280001403E82FF0E0E25BFE4F8081E82FEF705F +:10129000F0E082958F7021E030E0A90102C0440F98 +:1012A000551F8A95E2F740A308950F931F93CF939C +:1012B000DF9385B7806885BF85B7806885BFC3E049 +:1012C000D0E001E010E0FE01E25BFE4F8081E82FFC +:1012D000EF70F0E021A182958F70A80102C0440F49 +:1012E000551F8A95E2F7CA01822B81A38C2F0E9499 +:1012F0004109219740F78BE090E061E070E0FC014C +:10130000EE5BFE4F2081E22FEF70F0E042A12295CC +:101310002F70DB0102C0AA0FBB1F2A95E2F79D01C7 +:10132000242B22A3019758F7DF91CF911F910F91A2 +:101330000C94BE03EF92FF920F931F93CF93DF9312 +:1013400000E212E0C3E0EE24E394F12CD5E08C2F10 +:101350000E9441098BE090E040E050E0FC01EE5B30 +:10136000FE4F6081E62FEF70F0E020A130E0629543 +:101370006F7002C0359527956A95E2F720FD09C088 +:101380009701082E02C0220F331F0A94E2F7422B66 +:10139000532B019718F7F801929182918F018417CE +:1013A000950721F051834083D09305018C2F0E9433 +:1013B0004109C15060F68091050187FD2CC0815024 +:1013C000809305018F3F39F08FE99FE00197F1F796 +:1013D00000C0000020C080911E0290911F029093D7 +:1013E00027028093260280911C0290911D02909307 +:1013F00025028093240280911A0290911B029093FF +:1014000023028093220280911802909119029093F6 +:101410002102809320020E94C00381E0DF91CF91DE +:101420001F910F91FF90EF900895E82FF0E0EE0FDD +:10143000FF1FE05EFD4F80819181089508950F9315 +:101440001F93CF9308E212E0C0E0F80192918291DD +:101450008F010E948522C80FF2E000321F07A9F712 +:101460008C2FCF911F910F9108950E94C923811154 +:1014700002C00E94A5230E94EE23809307033E9A98 +:10148000809171008D7F8093710082E08093900045 +:101490008AE18093910081E080932A0208958091EF +:1014A0002A02811102C00E94350A10927A0210921B +:1014B0007902809171008D7F8093710080919000FE +:1014C0008F738093900010923C0210923B02109216 +:1014D00073021092740210927502109276021092AA +:1014E000720210927102E1E5F2E0A1E4B2E0119221 +:1014F0001192119211921D921D9282E0E137F8072C +:10150000B1F70895CF92DF92EF92FF920F931F935E +:10151000CF93DF9320913B02222309F484C06B0117 +:101520007C0180912A02811102C00E94350A01E7E4 +:1015300012E0C7E0D0E0A7019601F80192918291F4 +:10154000729162918F010E943929811131C0FE018F +:10155000EE0FFF1FEE0FFF1FEF5AFD4F108211829B +:1015600012821382DE01AA0FBB1FAF5BBD4F119623 +:101570001C921E92C730D105E9F021964481558115 +:1015800066817781408351836283738314821582DD +:101590001682178212968D919C91139711969C93A7 +:1015A0008E9313961C921E92129734961296E2CF47 +:1015B000219708F68091790290917A02019797FD20 +:1015C00005C090937A028093790204C010927A0247 +:1015D000109279028091790290917A02209177029B +:1015E000309178022817390724F01092780210926F +:1015F0007702892BC1F4809171008D7F80937100F7 +:10160000809190008F7380939000109273021092DB +:101610007402109275021092760210927202109269 +:10162000710210923B02DF91CF911F910F91FF90B9 +:10163000EF90DF90CF9008951F920F920FB60F9208 +:1016400011244F925F926F927F928F929F92AF92EE +:10165000BF92CF92DF92EF92FF922F933F934F93DF +:101660005F936F937F938F939F93AF93BF93CF932A +:10167000DF93EF93FF9380913B02882309F49BC192 +:10168000C0917902D0917A021C161D060CF093C10C +:1016900040902B0250902C0260902D0270902E02F0 +:1016A00020E030E0A901C301B2010E94E42A18162B +:1016B0000CF065C0C130D10509F452C080917702A9 +:1016C00090917802BE010E94B62C7C019093780222 +:1016D0008093770280903D0290903E02A0903F025E +:1016E000B090400220E030E040E85FE3C501B40183 +:1016F0000E94D52860933D0270933E0280933F0282 +:1017000090934002F701EE0FFF1FEE0FFF1FEF5AFD +:10171000FD4FA301920160817181828193810E94BA +:101720003D2920E030E040E05EE30E94E82A9B0192 +:10173000AC01C501B4010E94E42A18168CF4C7015B +:101740000196BE010E94B62C909378028093770296 +:1017500010923D0210923E0210923F0210924002FF +:10176000E0917702F0917802EE0FFF1FEE0FFF1F5E +:10177000EF5AFD4F6081718182819381D0C0C0900A +:101780007302D0907402E0907502F090760220E02F +:1017900030E0A901C701B6010E94392921978823A9 +:1017A00009F4A2C0FE01EE0FFF1FEE0FFF1FEF5A5C +:1017B000FD4F80809180A280B380A5019401C70174 +:1017C000B6010E94392987FF31C0A501940160E06C +:1017D00070E08CED93EC0E943D2920E030E040E485 +:1017E00051E40E943D2920E030E040E05FE30E94A8 +:1017F000E82A9B01AC0160E070E080E090E40E9488 +:101800004B2B9B01AC01C501B4010E94E82A9B014E +:10181000AC01C701B6010E94392987FF07C0A701A3 +:10182000960160E070E08CED93E439C0A50194016D +:10183000C701B6010E94E42A18160CF055C0A50194 +:10184000940160E070E08CED93E40E943D2920E07B +:1018500030E040E451E40E943D2920E030E040E0E7 +:101860005FE30E94E82A9B01AC0160E070E080E049 +:1018700090E40E944B2B9B01AC01C501B4010E9476 +:10188000E82A9B01AC01C701B6010E94E42A1816A0 +:101890005CF5A701960160E070E08CED93EC0E948E +:1018A0003D2920E030E040E451E40E943D2920E061 +:1018B00030E040E05FE30E94E82A9B01AC0160E079 +:1018C00070E080E090E40E944B2B9B01AC01C701CB +:1018D000B6010E94E82A60937302709374028093A9 +:1018E00075029093760213C0FE01EE0FFF1FEE0FFC +:1018F000FF1FEF5AFD4F80819181A281B3818093B8 +:10190000730290937402A0937502B0937602609173 +:101910007302709174028091750290917602209109 +:101920002802309129022F3F4FEF340731F02F5F0B +:101930003F4F30932902209328020E94C40E6B016E +:101940007C0120E034E244EF51E40E94392987FF12 +:1019500008C086EFC82E88E2D82E84EFE82E81E4F6 +:10196000F82E20E030E040E051E4C701B6010E94CB +:10197000E82A9B01AC0160E074E284E79BE40E94EA +:101980003D296B017C010E94AA2970939700609306 +:101990009600209106013091070140910801509175 +:1019A0000901C701B6010E94E82A0E94AA29709382 +:1019B00099006093980080913C02882309F433C118 +:1019C000C0903702D0903802E0903902F0903A028D +:1019D00020E030E0A901C701B6010E94E42A1816F0 +:1019E000D4F580912802909129028F3F2FEF920722 +:1019F00029F001969093290280932802C701B6012D +:101A00000E94C40E20E030E040E051E40E94E82A49 +:101A10009B01AC0160E074E284E79BE40E943D29F5 +:101A20006B017C010E94AA29709397006093960035 +:101A30002091060130910701409108015091090160 +:101A4000C701B6010E94E82A0E94AA297093990052 +:101A50006093980008C01092970010929600109220 +:101A600099001092980060913102709132026F5F7C +:101A70007F4F709332026093310220919600309133 +:101A8000970080E090E0232BF1F0C0919600D09178 +:101A900097000E94D6296B017C01BE0180E090E096 +:101AA0000E94D6299B01AC016091330270913402EF +:101AB00080913502909136020E943D2920E03FEF4F +:101AC0004FE757E410C00E94D6296B017C0120E04B +:101AD00030EE4FEF54E46091330270913402809104 +:101AE0003502909136020E94E82A9B01AC01C701A1 +:101AF000B6010E94E42A87FD96C080912F028F5F75 +:101B000080932F0290E02091030330910403821709 +:101B10009307A0F080910E03882319F010922F02F2 +:101B20000DC0809171008D7F809371008091900035 +:101B30008F738093900010923C027DC080913002A0 +:101B4000C0912F02811128C0C0900803D0900903D2 +:101B5000E0900A03F0900B0320E030E0A901C701F8 +:101B6000B6010E94E42A1816BCF481E0809330028A +:101B700010923702109238021092390210923A02F3 +:101B8000C0923302D0923402E0923502F0923602D3 +:101B9000C150C0932F0243C010923002109229020C +:101BA00010922802E0910503F091060348E0C49FDB +:101BB000E00DF11D112480819181A281B381809378 +:101BC000370290933802A0933902B0933A0220E092 +:101BD00030E040E85EE364817581868197810E94F0 +:101BE000E82A6B017C0180910A01682F70E080E097 +:101BF00090E00E94D62920E030E048EC52E40E94B8 +:101C00003D299B01AC01C701B6010E94E82A6093FF +:101C1000330270933402809335029093360210920F +:101C20003202109231028091070380FD04C01092AD +:101C30003C0210923B02FF91EF91DF91CF91BF9157 +:101C4000AF919F918F917F916F915F914F913F9154 +:101C50002F91FF90EF90DF90CF90BF90AF909F902B +:101C60008F907F906F905F904F900F900FBE0F906E +:101C70001F901895CF92DF92EF92FF92CF93DF9350 +:101C80006B017C01EA0180912A02811102C00E944D +:101C9000350A8091070380FF46C0809179029091B8 +:101CA0007A0208970CF03FC0809171008D7F80937D +:101CB000710080913C0281110E944F0A81E0809363 +:101CC0003B02109229021092280220E030E0A90184 +:101CD000C701B6010E94E42A1816DCF4809179024B +:101CE00090917A02FC01EE0FFF1FEE0FFF1FEF5ADB +:101CF000FD4FC082D182E282F382FC01EE0FFF1F12 +:101D0000EF5BFD4FD183C083019690937A0280935D +:101D100079028091710082608093710080919000BF +:101D2000806880939000DF91CF91FF90EF90DF90DB +:101D3000CF900895809107038170089580910703E3 +:101D40008160809307030E94F2230C941A0480910F +:101D500007038E7F809307030C94F22380917B020C +:101D600090E0019666E070E00E94B62C80937B02C2 +:101D7000089580917B0290E0019766E070E00E94F8 +:101D8000B62C80937B0208958F929F92AF92BF9260 +:101D9000CF92DF92EF92FF920F931F93CF93DF9337 +:101DA0006B017C01C0912802D0912902BE0180E024 +:101DB00090E00E94D6294B015C01A701960160E0EA +:101DC00070E08CE594E40E943D299B01AC01C501C3 +:101DD000B4010E94E82A0E94AA2920917B022330A4 +:101DE00009F473C028F4222351F02130E9F02CC10A +:101DF000243009F4A0C0253009F4E0C025C180E0FA +:101E000090E0A0E0BFE38093060190930701A093C8 +:101E10000801B093090110922B0210922C0210922B +:101E20002D0210922E0210C110922B0210922C0241 +:101E300010922D0210922E026431710540F46A3026 +:101E4000710560F520E030E040E85EE32BC0693CBE +:101E5000710508F0AAC080E090E00E94D62920E039 +:101E600030E040EA51E40E94D42820E030E044E32E +:101E700053E40E943D299B01AC010E94E82A20E026 +:101E800030E040E05EE30E94E82A9B01AC0160E0A4 +:101E900070E080E09EE30E94D42844C020E030E05F +:101EA00040E05FE3C701B6010E94E82A6B017C01B4 +:101EB00080E090E0A0E0BEE38093060190930701EC +:101EC000A0930801B0930901BFC010922B02109299 +:101ED0002C0210922D0210922E024AE0469F900191 +:101EE000479F300D1124C90168EB7BE00E94A22CB2 +:101EF000BC016C5D754077FF03C0719561957109F8 +:101F0000882777FD8095982F0E94D8292EE333ECFF +:101F10004EE259E30E94E82A20E030E040EC5EE324 +:101F20000E94D528609306017093070180930801F1 +:101F30009093090189C010922B0210922C021092EA +:101F40002D0210922E02CE0183709927892BE1F089 +:101F5000BE016170772780E090E00E94D62920E0E2 +:101F600030E040E05EE30E94E82A20E030E040E418 +:101F70005FE30E94D5286093060170930701809368 +:101F80000801909309010CC080E090E0A0E0BFE35D +:101F90008093060190930701A0930801B093090173 +:101FA000C770DD27CD2B09F04FC0109206011092AB +:101FB0000701109208011092090146C010922B02ED +:101FC00010922C0210922D0210922E0200E010E0CE +:101FD00020E03FE3009306011093070120930801DE +:101FE000309309016739710578F180E090E00E9433 +:101FF000D62920E030E047E153E40E94D42820E0D5 +:1020000030E04AE754E40E943D2920E030E048E413 +:1020100052E40E94E82A20E030E040EA51E40E94C5 +:102020001A2A0E94A529660F771F660F771FFB01EA +:10203000EE5AFE4F2081318142815381C701B601A2 +:102040000E94E82A6B017C01C701B601DF91CF91A4 +:102050001F910F91FF90EF90DF90CF90BF90AF90C6 +:102060009F908F90089580918C020895CF93DF9375 +:1020700000D01F92CDB7DEB79C018091130384304E +:1020800019F593E099833B832A839093E9008FEFBE +:102090009091E800815095FD06C095ED9A95F1F775 +:1020A00000008111F5CF8091E80085FF0DC040E070 +:1020B00050E063E070E0CE0101960E94971280919B +:1020C000E8008E778093E8000F900F900F90DF91DB +:1020D000CF910895CF93DF9300D01F92CDB7DEB795 +:1020E00020911303243021F522E029839B838A83E6 +:1020F00083E08093E9008FEF9091E800815095FD97 +:1021000006C095ED9A95F1F700008111F5CF809109 +:10211000E80085FF0DC040E050E063E070E0CE01D4 +:1021200001960E9497128091E8008E778093E800D4 +:102130000F900F900F90DF91CF910895209113038E +:102140002430F1F422E02093E9002FEF3091E800F1 +:10215000215035FD06C035ED3A95F1F7000021110B +:10216000F5CF2091E80025FF0BC040E050E065E08E +:1021700070E00E9497128091E8008E778093E800CB +:102180000895CF93DF93EC0190911303943009F0FD +:1021900046C0809115018823D9F0809116018823CB +:1021A000B9F09093E9008FEF9091E800815095FD90 +:1021B00006C095E19A95F1F700008111F5CF809165 +:1021C000E80085FF2CC040E050E060E170E017C0FF +:1021D00081E08093E9008FEF9091E800815095FDB8 +:1021E00006C095ED9A95F1F700008111F5CF809129 +:1021F000E80085FF14C040E050E068E070E0CE01E8 +:102200000E9497128091E8008E778093E80080E129 +:10221000FE01ACE7B2E001900D928A95E1F7DF9103 +:10222000CF91089580911203811109C00E942C144E +:102230000E9489148091E20084608093E2000895F6 +:10224000109212030895089508950C94D02242E04C +:1022500061EC81E00E94A61342E061EC82E00E9402 +:10226000A61342E061EC83E00E94A61342E161EC18 +:1022700084E00C94A61380911503833009F455C0B3 +:1022800030F4813071F0823009F48EC008958A30C4 +:1022900009F47AC08B3009F460C0893009F09CC021 +:1022A00020C080911403813A09F096C08091E80023 +:1022B000877F8093E8008091180390911903892B00 +:1022C00021F460E18CE792E003C060E080E090E000 +:1022D00070E00E94E2128091E8008B778093E80022 +:1022E000089580911403813209F076C0809118031B +:1022F00090911903009719F0039709F06DC0809130 +:10230000E800877F8093E8008091E80082FD05C0A7 +:10231000809113038111F8CF5FC08091F100809309 +:102320008C028091E8008B7753C080911403813A2E +:1023300009F052C08091180390911903892B09F07C +:102340004BC08091E800877F8093E8008091E8008F +:1023500080FFFCCF8091150136C08091140381323B +:10236000D9F58091180390911903892BA9F58091D3 +:10237000E800877F8093E8000E94DB1380911603BA +:10238000809315010C94111C80911403813221F566 +:102390008091E800877F8093E8000E94DB138091A2 +:1023A000170380938D02089580911403813AA1F45C +:1023B0008091E800877F8093E8008091E80080FFAB +:1023C000FCCF80918D028093F1008091E8008E77A0 +:1023D0008093E8000C94DB13089584B7877F84BF53 +:1023E00088E10FB6F89480936000109260000FBEF1 +:1023F00090E080E80FB6F8948093610090936100BC +:102400000FBE0E947E170E942C140E948914809196 +:10241000E20084608093E20078940E940F170E948B +:1024200080178BE091E00E942A178091130385307A +:1024300069F40E949122809111038823B1F30E94D4 +:10244000BF22882391F30E948112EFCF0E94881748 +:10245000ECCF292F332723303105C9F064F4213024 +:10246000310581F02230310509F043C08DE690E05E +:1024700020E134E042C021323105F1F02232310551 +:1024800041F137C082E190E02DE734E036C0992772 +:102490008130910541F08230910541F0892B49F559 +:1024A000ECE0F4E005C0EEEDF3E002C0E4EBF3E0B5 +:1024B000849190E09F0121C06430D8F4E62FF0E0D1 +:1024C000EE0FFF1FE255FE4F2081318189E090E041 +:1024D00014C0643070F470E0FB01EE0FFF1FEA558A +:1024E000FE4F20813181FB01EE55FE4F808190E04F +:1024F00004C080E090E020E030E0FA0131832083E6 +:10250000089580E189BD82E189BD09B400FEFDCF57 +:102510008091D8008F7D8093D8008091E000826008 +:102520008093E0008091E00081FDFCCF0895CF9280 +:10253000DF92EF92FF920F931F93CF93DF93EC0103 +:102540008B016A010E94FA13811133C0C114D104B6 +:1025500039F0F60180819181081B190BC80FD91F32 +:10256000E12CF12C0115110519F18091E80085FD90 +:1025700016C08091E8008E778093E800C114D104E2 +:1025800049F0F60180819181E80EF91EF182E08226 +:1025900085E00FC00E94FA13882321F30AC08991B5 +:1025A0008093F10001501109FFEFEF1AFF0ADACF13 +:1025B00080E0DF91CF911F910F91FF90EF90DF901E +:1025C000CF90089520911A0330911B0326173707E7 +:1025D00048F06115710539F42091E8002E772093B9 +:1025E000E80001C0B90140E061157105A9F1209131 +:1025F0001303222309F443C0253009F442C020917B +:10260000E80023FD40C02091E80022FD32C0209167 +:10261000E80020FFE9CF4091F3002091F20030E084 +:10262000342BFC01CF016115710559F028303105BB +:1026300040F481918093F100615071092F5F3F4F09 +:10264000F1CF41E02830310509F040E02091E80069 +:102650002E772093E800C8CF4111C9CF0AC08091DE +:102660001303882361F0853061F08091E80083FDD9 +:102670000AC08091E80082FFF2CF80E0089582E0F6 +:10268000089583E0089581E0089520911A03309120 +:102690001B032617370748F06115710539F420919F +:1026A000E8002E772093E80001C0B901FC0120E08A +:1026B0006115710591F180911303882309F440C0DD +:1026C000853009F43FC08091E80083FD3DC08091D2 +:1026D000E80082FD2FC08091E80080FFE9CF2091C3 +:1026E000F3008091F20090E0922B6115710559F092 +:1026F0008830910540F424912093F1003196615087 +:1027000071090196F2CF21E0089709F020E080914D +:10271000E8008E778093E800CBCF2111CCCF0AC0A0 +:1027200080911303882361F0853061F08091E80087 +:1027300083FD0AC08091E80082FFF2CF80E0089517 +:1027400082E0089583E0089581E00895982F9730FE +:1027500058F59093E900981739F07091EC002091AA +:10276000ED005091F00003C0242F762F50E021FFA0 +:1027700019C03091EB003E7F3093EB003091ED00BB +:102780003D7F3093ED003091EB0031603093EB00F2 +:102790007093EC002093ED005093F0002091EE0038 +:1027A00027FF07C09F5FD3CF8F708093E90081E040 +:1027B000089580E008958091140387FF11C08091EF +:1027C000E80082FD05C0809113038111F8CF11C08C +:1027D0008091E8008B770BC080911303882349F028 +:1027E0008091E80080FFF8CF8091E8008E77809399 +:1027F000E80008952091E4003091E50095E64091CD +:10280000EC00842F817040FF22C08091E80080FDA1 +:102810001CC080911303882391F0853091F0809142 +:10282000EB0085FD10C04091E4005091E500421797 +:10283000530729F39A01915011F784E0089582E03B +:10284000089583E0089581E0089580E0089540911F +:10285000E80042FFDECF08950E949A140E94A2145D +:10286000E0EEF0E0808181608083E8EDF0E080813F +:102870008F77808319BCA7EDB0E08C918E7F8C930D +:1028800080818F7E80831092120308950F931F938F +:10289000CF93DF930E949A140E94A214C8EDD0E057 +:1028A00088818F77888388818068888388818F7DFD +:1028B000888319BC1092130310920F031092110316 +:1028C0001092100300EE10E0F80180818B7F80836E +:1028D00088818160888342E060E080E00E94A613E6 +:1028E000E1EEF0E080818E7F8083E2EEF0E0808197 +:1028F00081608083808188608083F80180818E7F01 +:102900008083888180618883DF91CF911F910F91AF +:102910000895E8EDF0E080818F7E8083E7EDF0E0C0 +:1029200080818160808384E082BF81E08093120394 +:102930000C944614E8EDF0E080818E7F8083109245 +:10294000E20008951092DA001092E10008951F92BB +:102950000F920FB60F9211242F933F934F935F93D3 +:102960006F937F938F939F93AF93BF93EF93FF9357 +:102970008091E10082FF0BC08091E20082FF07C0DE +:102980008091E1008B7F8093E1000E940E1780917F +:10299000DA0080FF1FC08091D80080FF1BC08091AB +:1029A000DA008E7F8093DA008091D90080FF0DC01D +:1029B00080E189BD82E189BD09B400FEFDCF81E0DF +:1029C000809313030E94121105C019BC10921303C7 +:1029D0000E9420118091E10080FF19C08091E200E7 +:1029E00080FF15C08091E2008E7F8093E20080918D +:1029F000E20080618093E2008091D8008062809341 +:102A0000D80019BC85E0809313030E9424118091A3 +:102A1000E10084FF30C08091E20084FF2CC080E19F +:102A200089BD82E189BD09B400FEFDCF8091D80047 +:102A30008F7D8093D8008091E1008F7E8093E100AC +:102A40008091E2008F7E8093E2008091E2008160BD +:102A50008093E20080910F03882311F084E007C087 +:102A60008091E30087FD02C081E001C083E0809394 +:102A700013030E9425118091E10083FF29C08091FA +:102A8000E20083FF25C08091E100877F8093E10011 +:102A900082E08093130310920F038091E1008E7FF8 +:102AA0008093E1008091E2008E7F8093E20080912C +:102AB000E20080618093E20042E060E080E00E94FA +:102AC000A6138091F00088608093F0000E9423118B +:102AD000FF91EF91BF91AF919F918F917F916F91F6 +:102AE0005F914F913F912F910F900FBE0F901F90CC +:102AF00018951F920F920FB60F9211242F933F93A8 +:102B00004F935F936F937F938F939F93AF93BF93F5 +:102B1000CF93DF93EF93FF93C091E900CF70809143 +:102B2000EC00D82FD17080FDD0E81092E9008091A0 +:102B3000F000877F8093F00078940E94BD1510927A +:102B4000E9008091F00088608093F000CD2BCF7079 +:102B5000C093E900FF91EF91DF91CF91BF91AF91C9 +:102B60009F918F917F916F915F914F913F912F91A5 +:102B70000F900FBE0F901F9018951F93CF93DF9368 +:102B8000CDB7DEB7AA970FB6F894DEBF0FBECDBFA4 +:102B9000E4E1F3E088E08E0F9091F10091938E13C1 +:102BA000FBCF0E943B118091E80083FF1FC1809101 +:102BB000140390911503492F50E04A30510508F055 +:102BC00015C1FA01EA5AFF4F0C94CA2C803881F0E3 +:102BD000823809F00BC1809118038F708093E9004F +:102BE0008091EB0085FB882780F91092E90006C0F0 +:102BF0008091100390911103911182609091E800EF +:102C0000977F9093E8008093F1001092F100C8C084 +:102C1000282F2D7F09F0EAC0882319F0823061F057 +:102C2000E5C080911603813009F0E0C0933009F0CF +:102C300080E0809311032BC080911603811127C07F +:102C4000809118038F7009F4D1C08093E90020911E +:102C5000EB0020FF1CC0933021F48091EB008062D8 +:102C600014C09091EB0090619093EB0021E030E074 +:102C7000A90102C0440F551F8A95E2F74093EA006C +:102C80001092EA008091EB0088608093EB00109234 +:102C9000E9008091E800877F86C08111A7C010916C +:102CA00016031F778091E3008078812B8093E300E7 +:102CB0008091E800877F8093E8000E94DB13809179 +:102CC000E80080FFFCCF8091E30080688093E30000 +:102CD000111102C082E001C083E08093130386C01B +:102CE0008058823008F082C08091160390911703BB +:102CF0008C3D53E0950779F583E08A838AE28983E6 +:102D00004FB7F894DE01139620E03EE051E2E32F46 +:102D1000F0E050935700E49120FF03C0E295EF707C +:102D20003F5FEF708E2F90E0EA3010F0C79601C041 +:102D3000C0968D939D932F5F243149F74FBF8091AB +:102D4000E800877F8093E8006AE270E0CE01019698 +:102D50000E94E21214C0AE014F5F5F4F60911803F2 +:102D60000E942912BC01009709F440C09091E8002C +:102D7000977F9093E80089819A810E944513809102 +:102D8000E8008B778093E80031C0803879F5809136 +:102D9000E800877F8093E80080910F038093F10023 +:102DA0008091E8008E778093E8000E94DB131EC0BC +:102DB00081111CC0909116039230C0F48091E800FC +:102DC000877F8093E80090930F030E94DB1380912C +:102DD0000F03811106C08091E30087FD02C081E0EE +:102DE00001C084E0809313030E9427118091E800C2 +:102DF00083FF0AC08091E800877F8093E80080917C +:102E0000EB0080628093EB00AA960FB6F894DEBFC9 +:102E10000FBECDBFDF91CF911F9108950895CF933D +:102E2000809113038823A1F0C091E900CF709091A5 +:102E3000EC00892F817090FD80E8C82B1092E9008A +:102E40008091E80083FD0E94BD15CF70C093E9001A +:102E5000CF91089590939302809392020895E09108 +:102E60009202F0919302309721F00190F081E02DD1 +:102E7000099480E00895E0919202F09193023097D6 +:102E800021F00280F381E02D09940895E0919202EF +:102E9000F0919302309721F00480F581E02D0994A0 +:102EA000089520919002309191028217930771F05A +:102EB0009093910280939002E0919202F09193029C +:102EC000309721F00680F781E02D09940895209134 +:102ED0008E0230918F028217930771F090938F02C8 +:102EE00080938E02E0919202F0919302309721F04C +:102EF0000084F185E02D0994089508950C947D17C0 +:102F00000E9404230E9455090E948A230C943928A8 +:102F10005F926F927F928F929F92AF92BF92CF9269 +:102F2000DF92EF92FF920F931F93CF93DF9300D026 +:102F300000D01F92CDB7DEB70E949A099DE9C92E35 +:102F400092E0D92E03E010E0AA24A394B12C502ED5 +:102F5000802F0E94150A4C01F601729062906F0159 +:102F60006826792661147104A1F40150110978F7DB +:102F70008FEF89838A831B820E940D238160782FC3 +:102F80009D838C8349815A816B818D810E94381881 +:102F900038C08091F20281FD0E941E0A2BE030E0D1 +:102FA0007501022E02C0EE0CFF1C0A94E2F7C70165 +:102FB00086219721892B09F129835A828E209F200F +:102FC00091E0892809F490E09B830E940D238160A1 +:102FD000782F9D838C8349815A816B818D810E94DA +:102FE0003818000F111FF801EB56FD4F80819181B9 +:102FF000E826F926F182E08204C02150310980F6EA +:10300000B4CF0E947125109194020E942F171817B7 +:10301000D1F00E942F17809394020F900F900F9081 +:103020000F900F90DF91CF911F910F91FF90EF9034 +:10303000DF90CF90BF90AF909F908F907F906F90D8 +:103040005F900C943F090F900F900F900F900F908E +:10305000DF91CF911F910F91FF90EF90DF90CF9074 +:10306000BF90AF909F908F907F906F905F900895EA +:10307000CF93DF93CDB7DEB72B970FB6F894DEBFB3 +:103080000FBECDBF4F83588769877A878B87DE0154 +:10309000119686E0FD0111928A95E9F785E0FE011F +:1030A000379601900D928A95E1F749815A816B819B +:1030B0007C818D819E810E94AF1E2B960FB6F89465 +:1030C000DEBF0FBECDBFDF91CF910895CF93882390 +:1030D00009F4C2C0C82F823859F40E942F1781FD0D +:1030E000BBC089E30E9489210E94562289E30CC05B +:1030F000833879F40E942F1780FDAEC083E50E94CB +:1031000089210E94562283E50E94CB21CF910C9405 +:103110005622843859F40E942F1782FD9DC087E4FF +:103120000E9489210E94562287E4EECF8CEF8C0FFB +:10313000813A48F48C2F0E94A12781118DC08C2FD9 +:103140000E948921E3CF80E28C0F883048F4C77059 +:1031500081E001C0880FCA95EAF70E940F22D6CFFE +:103160008BE58C0F833078F4C53A29F0C63A31F0FC +:1031700083E890E005C081E890E002C082E890E03A +:10318000CF910C94511788E58C0F833108F064C0FF +:10319000C83A39F1C93A41F1CA3A49F1CB3A51F149 +:1031A000CC3A59F1CD3A61F1C03B69F1CE3A71F1B7 +:1031B000CF3A79F1C13B81F1C23B89F1C33B91F137 +:1031C000C43B99F1C53BA1F1C63BA9F1C73BB1F1A5 +:1031D000C83BB9F1C93BC1F1CA3BC9F180E090E0FD +:1031E00038C082EE90E035C089EE90E032C08AEEC1 +:1031F00090E02FC085EB90E02CC086EB90E029C0DA +:1032000087EB90E026C08CEC90E023C08DEC90E042 +:1032100020C083E891E01DC08AE891E01AC082E9ED +:1032200091E017C084E991E014C081E292E011C0FE +:1032300083E292E00EC084E292E00BC085E292E06D +:1032400008C086E292E005C087E292E002C08AE20E +:1032500092E0CF910C946717CF910895882309F4D9 +:103260004BC0823859F40E942F1781FF45C089E373 +:103270000E9489210E94562289E30CC0833871F490 +:103280000E942F1780FF38C083E50E9489210E9489 +:10329000562283E50E94CB210C945622843859F49F +:1032A0000E942F1782FF28C087E40E9489210E9474 +:1032B000562287E4EFCF9CEF980F913A58F390E2B3 +:1032C000980F983050F4877091E001C0990F8A955B +:1032D000EAF7892F0E941522DFCF9BE5980F9330E4 +:1032E00020F480E090E00C945117885A833120F448 +:1032F00080E090E00C9467170895882321F00E94E5 +:103300000F220C9456220895882321F00E94152242 +:103310000C94562208957F928F929F92AF92BF9203 +:10332000CF92DF92EF92FF920F931F93CF93DF9391 +:103330001F92CDB7DEB77C01C62E772EFC0105812A +:1033400002950F70128111110E942C220E9482217D +:10335000882379F0112369F080E28C0D883048F0E1 +:1033600082E00E946B210E94822191E0D82ED92612 +:1033700001C0D12CE72DE295EF70F0E0E05AFF4F4D +:103380000C94CA2C872D807F072D0F70882311F095 +:103390000295007F112389F0002309F499C180E28E +:1033A0008C0D883020F4802F0E940F2203C0802FC4 +:1033B0000E941F220E9456228BC18C2D0E942E1922 +:1033C000002309F4C3C180E28C0D883020F4802FE3 +:1033D0000E94152203C0802F0E9425220E9456229F +:1033E000B5C1872D807F972D9F70803211F4892F72 +:1033F00003C0892F8295807FCC2021F0F1E0CF1689 +:10340000A1F01DC0112339F0002319F1013009F595 +:103410000E943F229BC1002319F0013009F496C19C +:1034200089830E944222898110C1112321F0063034 +:1034300008F08CC10EC0053008F088C106C1112308 +:1034400059F0002331F0F701958190FF41C19F7041 +:1034500095830E947D197AC1002309F4F6C03EC10C +:10346000872D86958695837090E0009719F00197D7 +:1034700061F06CC1112321F08C2D972D937002C047 +:1034800080E090E00E94511761C1112321F08C2D42 +:10349000972D937002C080E090E00E94671756C19C +:1034A0008C2D112319F00E94792402C00E94E1247E +:1034B0000E9466254BC1872D837009F052C01111FF +:1034C00045C18C2D829586958770880F880F9C2D1D +:1034D0009F70892E912CA12CB12C082E04C0880C31 +:1034E000991CAA1CBB1C0A94D2F7C4FE14C00FE09E +:1034F00010E020E030E0B901A80104C0440F551FDE +:10350000661F771F8A95D2F7CB01BA016095709537 +:103510008095909503C060E070E0CB01272D269543 +:103520002695237030E02230310569F023303105D3 +:1035300089F0682979298A299B292130310571F080 +:103540000E94F71F03C1682979298A299B290E94B3 +:103550001320FCC00E94F71FC501B4010E94DB1FAD +:10356000F5C0112319F0872D817001C0869588233D +:1035700009F4ECC08C2D829586958770880F880F92 +:103580009C2D9F70892E912CA12CB12C082E04C04B +:10359000880C991CAA1CBB1C0A94D2F7C4FE14C048 +:1035A0000FE010E020E030E0B901A80104C0440FB2 +:1035B000551F661F771F8A95D2F7CB01BA01609518 +:1035C00070958095909503C060E070E0CB01272D49 +:1035D000269526952370422F50E04230510569F020 +:1035E0004330510589F0682979298A299B2941307E +:1035F000510571F00E94D120A9C0682979298A2932 +:103600009B290E94ED20A2C00E94D120C501B401D7 +:103610000E94B5209BC08C2D90E0FC01E05EF1097A +:10362000E531F10508F050C0E059FF4F0C94CA2C69 +:103630000C2D0F70872D8F71112321F00E944E20C9 +:10364000802F07CF0E946F20802F0E9484197EC098 +:10365000112341F0053008F079C0872D8F710E9449 +:10366000942074C0063008F071C0F7CF112339F0F0 +:10367000872D8F710E944E2069C01123C9F3872DB9 +:103680008F710E946F2062C0112329F0872D8F71E6 +:103690000E9439205BC00E942F2058C0112351F096 +:1036A000172D1F71812F0E944E2063E0812F0E94F1 +:1036B00062214CC081E00E946B21023008F446C0B8 +:1036C00082E00E946B2142C0112331F0002381F27D +:1036D0008C2D0E9466183AC0002389F28C2D0E941E +:1036E0002E1934C0472D4F706C2DC7010E941D0646 +:1036F0000E94531F2BC0111129C0472D4F7050E05D +:1037000042305105B9F04CF44115510581F041307A +:103710005105E1F40E94612819C04330510569F058 +:103720004430510599F48C2D0E94B3280FC00E949B +:103730004A280CC00E947D2809C00E94902806C01B +:10374000472D4F706C2DC7010E942006DD20F9F037 +:103750000E945E2180FD1BC0F70112820E94582149 +:103760000E944E20C7010E94D61B0E9458210F9034 +:10377000DF91CF911F910F91FF90EF90DF90CF904D +:10378000BF90AF909F908F907F900C946F200F9080 +:10379000DF91CF911F910F91FF90EF90DF90CF902D +:1037A000BF90AF909F908F907F9008950F931F933D +:1037B000CF93DF93EC01888199812B813C81232B6E +:1037C000B9F09F3F11F48F3F99F0CE010E941C0485 +:1037D000882371F0688179818A810E9454218C014B +:1037E0000E9409210E94D01FB801CE010E948B19AE +:1037F000DF91CF911F910F9108950E942C220E947A +:103800003C220E9401220E9456220E9417260E94FA +:10381000662580E090E00E94511780E090E00C94D3 +:1038200067170E941C220C94FD1B0E944921292F1E +:1038300022952F7030E02C3031054CF42A303105C0 +:103840006CF42250310922303105A8F407C02C3025 +:10385000310569F02F30310551F00DC0803F69F01E +:1038600018F4803E40F409C0843F29F406C093FB5D +:10387000882780F9089580E0089581E00895CF9326 +:10388000DF9300D000D01F92CDB7DEB70F900F901E +:103890000F900F900F90DF91CF910895CF93DF930A +:1038A00000D000D000D0CDB7DEB726960FB6F89482 +:1038B000DEBF0FBECDBFDF91CF9108951F93CF9391 +:1038C000DF93C0919D0216E080919E02C81799F087 +:1038D000D0E01C9FF0011D9FF00D1124E156FD4F1B +:1038E0004081518162817381848195810E944E1C47 +:1038F0002196C770E9CFDF91CF911F910895409134 +:10390000CF025091D0026091D1027091D202809189 +:10391000D3029091D4020C944E1C8091D4028295D3 +:103920008F7009F054C08091D102882309F44FC0F0 +:1039300080919D02A0919E026091CF027091D00271 +:103940004091D2025091D302B6E08A1709F43FC0E9 +:1039500090E041155105C1F17F3F11F46F3FA1F196 +:10396000B89FF001B99FF00D1124E156FD4F218160 +:1039700072132AC02081621327C02281211124C022 +:10398000238134812417350710F421503109241B79 +:10399000350B283C3105C0F42091D4022F702061F2 +:1039A0002093D40226E0289FF001299FF00D1124D6 +:1039B000EC55FD4F80818F70806180838FEC92E0A9 +:1039C0000E94D61B0C945E1C01968770BECF089592 +:1039D000CF92DF92EF92FF920F931F93CF93DF93DB +:1039E000CDB7DEB762970FB6F894DEBF0FBECDBF7E +:1039F0008C0185E0F801DE011D9601900D928A95FB +:103A0000E1F7D8014C9111965C91119712966C9147 +:103A100012971396CD90DC9014973091CF0270914D +:103A2000D0028091D2029091D302009709F46BC129 +:103A30007F3F19F43F3F09F466C1E090D102EE20C8 +:103A400009F4C0C02091D402C816D90628F0F601A6 +:103A5000E81BF90BCF0104C0809590958C0D9D1D3E +:103A6000FF24F394883C910578F0F12C207F09F035 +:103A7000C6C07C2DD98AC88A89890E943F1C8FECD8 +:103A800092E00E94D61BB1C0822F807F09F046C011 +:103A9000751314C0341312C0611110C02F7020614F +:103AA0002093D4020E947F1C8FEC92E00E94D61BD0 +:103AB0008091D402D80115968C932EC0CD2819F18F +:103AC0005F3F11F44F3FF9F0F62E61111CC0809159 +:103AD0009D0220919E0236E0821709F45AC090E0C0 +:103AE000389FF001399FF00D1124E156FD4F71818F +:103AF000571306C07081471303C07281711103C050 +:103B000001968770E9CFF62E662309F418C18091DB +:103B1000D40281608093D402F12C11C1751308C0C6 +:103B2000341306C0611104C08091D402D801C3C00F +:103B30004D875E878D859E856A8B0E94151C6A89DC +:103B40008823E1F16623D1F12091D402822F82955E +:103B50008F7090E0029774F08091CF029091D00224 +:103B600098878F831986DB86CA862C87CE010796B5 +:103B70000E94D61B86E0F801AFECB2E001900D92F6 +:103B80008A95E1F70E948D1C0E947F1CFF24F3940C +:103B9000D6C04D875E878D859E850E944921292F3D +:103BA00022952F7030E0223031050CF0BCC09F70A0 +:103BB00009F0B6C0805E883008F4C1C0C8010E9418 +:103BC000D61BE4CFC816D90608F453C0F601E81B8B +:103BD000F90BCF01883C910508F450C0F12C7C2DE5 +:103BE000D98AC88A89890E943F1CEFECF2E086E0FE +:103BF000DF011D928A95E9F70E947F1CA0C0751312 +:103C000014C0341312C0611110C08091D402F801A5 +:103C10008583C8010E94D61B86E0EFECF2E0DF014D +:103C20001D928A95E9F7FE2C8AC04D875E878D85A7 +:103C30009E856A8B0E94151C6A89882309F4BECF71 +:103C4000662309F4BBCF2091D402822F82958F7016 +:103C500090E002970CF48ECF8091CF029091D00229 +:103C60009A8389831B82DD82CC822E83CE010196CA +:103C70007FCF809590958C0D9D1DACCFF62E662341 +:103C800009F49CCF75132EC034132CC02091D4029C +:103C900020FD1FC0822F82958F70D9F0D801159614 +:103CA0002C9315978F3049F08F5F982F9295907FC6 +:103CB000822F8F70892B15968C93C8010E94D61B7A +:103CC00086E0F801AFECB2E001900D928A95E1F741 +:103CD00093CF86E0F801AFECB2E001900D928A95A7 +:103CE000E1F72DC04D875E878D859E850E94151C4E +:103CF000811140CF8091D40281608093D402C801A9 +:103D00000E94D61B1CC0662309F458CF4D875E87DE +:103D10008D859E850E94151C882309F44FCF2ACFDC +:103D2000811148CF0CC0243031050CF047CF9F7073 +:103D300009F440CFF8019581907F09F03BCF8F2D9A +:103D400062960FB6F894DEBF0FBECDBFDF91CF9164 +:103D50001F910F91FF90EF90DF90CF9008951F93E8 +:103D6000CF93DF93CDB7DEB72C970FB6F894DEBFB5 +:103D70000FBECDBF4F83588769877A878B879C8713 +:103D8000CE0107960E94E81C882369F08F819885F0 +:103D90002A853B85232BF1F19F3F09F063C08F3FBC +:103DA00009F060C037C086E0FE013796DE0111964B +:103DB00001900D928A95E1F76F817885EA85FB8500 +:103DC000309741F17F3F11F46F3F21F120919E0226 +:103DD00030E0C90101968770992740919D0250E01B +:103DE0008417950709F447C069837A83FD83EC83C0 +:103DF00096E0929FD001939FB00D1124A156BD4F24 +:103E0000FE01319601900D929A95E1F780939E0202 +:103E10000E945E1C16E080919D0290919E0289177F +:103E2000C1F1189FC001112481569D4F0E94E81CCA +:103E3000882379F1E0919D021E9FF0011124E15643 +:103E4000FD4F4081518162817381848195810E94FF +:103E50004E1C80919D0290E0019687709927809377 +:103E60009D02D9CF4F81588569857A858B859C8540 +:103E70000E944E1CCFCF0E94111C10929E021092E5 +:103E80009D02EFECF2E086E0DF011D928A95E9F7F2 +:103E9000C1CF2C960FB6F894DEBF0FBECDBFDF9119 +:103EA000CF911F910895EF92FF920F931F93CF939D +:103EB000DF938C01009709F46CC0F12CEE24E3949D +:103EC000E8012196F8018491843740F4843008F0A9 +:103ED00051C0813081F0823019F15BC0853709F41F +:103EE00044C0A8F19CE7980F903708F052C08F7734 +:103EF0000E942E1941C00E5F1F4FFE01C49180E247 +:103F00008C0F883048F4C7708E2D01C0880FCA9579 +:103F1000EAF70E942F2214C08C2F0E9466182DC031 +:103F20000E5F1F4FFE01C49180E28C0F883058F461 +:103F3000C7708E2D01C0880FCA95EAF70E943522FE +:103F40000E9456221AC08C2F0E942E1916C00E5F96 +:103F50001F4FFE01C491CC2381F08FE99FE00197B0 +:103F6000F1F700C00000C150F6CF0E5F1F4FFE01F9 +:103F7000F49003C00E9466188E018F2D882309F4E7 +:103F80009FCFEFE9FFE03197F1F700C000008150CB +:103F9000F5CFDF91CF911F910F91FF90EF90089592 +:103FA00008956093D9027093DA028093DB029093B4 +:103FB000DC020C94FD1B0F931F930091D90210910A +:103FC000DA022091DB023091DC02DC01CB01802B94 +:103FD000912BA22BB32B8093D9029093DA02A0935A +:103FE000DB02B093DC021F910F910C94FD1B0F9329 +:103FF0001F930091D9021091DA022091DB023091D7 +:10400000DC02DC01CB0180239123A223B323809324 +:10401000D9029093DA02A093DB02B093DC021F91E5 +:104020000F910C94FD1B0F931F930091D9021091D7 +:10403000DA022091DB023091DC02DC01CB01802727 +:104040009127A227B3278093D9029093DA02A093F5 +:10405000DB02B093DC021F910F910C94FD1B1092B8 +:10406000D5021092D6021092D7021092D8020C9468 +:10407000FD1B41E050E060E070E004C0440F551FBC +:10408000661F771F8A95D2F74093D5025093D602C8 +:104090006093D7027093D8020C94FD1B41E050E06E +:1040A00060E070E004C0440F551F661F771F8A95BB +:1040B000D2F78091D5029091D602A091D702B0910B +:1040C000D802482B592B6A2B7B2B4093D502509357 +:1040D000D6026093D7027093D8020C94FD1B41E086 +:1040E00050E060E070E004C0440F551F661F771F6A +:1040F0008A95D2F740955095609570958091D5023C +:104100009091D602A091D702B091D80248235923AA +:104110006A237B234093D5025093D6026093D70243 +:104120007093D8020C94FD1B41E050E060E070E019 +:1041300004C0440F551F661F771F8A95D2F78091E0 +:10414000D5029091D602A091D702B091D80248270B +:1041500059276A277B274093D5025093D602609354 +:10416000D7027093D8020C94FD1B0F931F930091FC +:10417000D5021091D6022091D7023091D802DC01ED +:10418000CB01802B912BA22BB32B8093D502909344 +:10419000D602A093D702B093D8021F910F910C942E +:1041A000FD1B0F931F930091D5021091D602209111 +:1041B000D7023091D802DC01CB0180239123A223C6 +:1041C000B3238093D5029093D602A093D702B093E5 +:1041D000D8021F910F910C94FD1B0F931F93009118 +:1041E000D5021091D6022091D7023091D802DC017D +:1041F000CB0180279127A227B3278093D5029093E4 +:10420000D602A093D702B093D8021F910F910C94BD +:10421000FD1B0895CF92DF92EF92FF920F931F93B1 +:10422000CF93DF938C01C090D902D090DA02E09056 +:10423000DB02F090DC028091D5029091D602A09131 +:10424000D702B091D802C82AD92AEA2AFB2ACFE19C +:10425000D0E0D701C6010C2E04C0B695A79597955E +:1042600087950A94D2F780FF06C0B8018C2F0E9470 +:10427000A508019721F4219760F780E001C08C2FF9 +:10428000DF91CF911F910F91FF90EF90DF90CF9032 +:104290000895CF93DF93EC010E940A21BE010E9492 +:1042A000A508DF91CF910895CB010E94492108957F +:1042B0008091DD0285958595859508958091DD0233 +:1042C0008770089598E0899F90011124262B2093F0 +:1042D000DD020C944E202091DD0280958223809394 +:1042E000DD02982F977069F430E0482F552747FD7D +:1042F00050952417350729F08595859585950C945B +:104300006F2008959091DD02977081E009F480E0BC +:10431000089590911501992321F090911601911122 +:1043200009C02091170130911801F90132969FEFD1 +:1043300040E01FC0982F9695969596959F3050F522 +:10434000E0911701F0911801E90FF11D877021E04C +:1043500030E0A90102C0440F551F8A95E2F7CA0157 +:104360009181892B818308959F3F39F04F5F4E30B3 +:1043700041F051915813F8CF0DC05111F7CF942F40 +:10438000F5CF9F3F39F0F901E90FF11D97FDFA953F +:1043900082830895089590911501992321F09091B9 +:1043A0001601911109C02091170130911801F901EE +:1043B0003296205F3F4F1FC0982F96959695969501 +:1043C0009F30F0F4E0911701F0911801E90FF11D11 +:1043D000877021E030E0A90102C0440F551F8A9583 +:1043E000E2F7CA01809591818923818308953196EE +:1043F000E217F30729F090819813F9CF1082F7CFD5 +:10440000089581E090E0E0911701F0911801E80F24 +:10441000F91F1082019680319105A9F708959091B6 +:10442000F102892B8093F102089580959091F10219 +:1044300089238093F10208951092F10208959091DA +:10444000F002892B8093F002089580959091F002FC +:1044500089238093F00208951092F00208959091BC +:10446000EF02892B8093EF02089580959091EF02DF +:1044700089238093EF0208951092EF0208958093AC +:10448000DE0208951092DE02089580911701909146 +:104490001801FC0131969C01205F3F4F80E0919113 +:1044A00091118F5FE217F307D1F70895E09117019B +:1044B000F09118018091F1028083E0911701F09151 +:1044C000180190818091F002892B8083E09117017F +:1044D000F091180190818091EF02892B8083809167 +:1044E000DE02882361F0E0911701F09118019081BC +:1044F000892B80830E94452281111092DE028091D7 +:104500001701909118010C943B1720E0009739F0A7 +:10451000AC0141505109842395232F5FF7CF822F9F +:10452000089580911303843039F11092F30220E44E +:1045300088E190E00FB6F894A895809360000FBED4 +:104540002093600080E00E94200380E00E943F09E9 +:1045500083B7817F846083BF83B7816083BF789492 +:10456000889583B78E7F83BF88E10FB6F8948093D8 +:104570006000109260000FBE08950895089580E0D5 +:104580000E9420030E94BD220E949A090E94BE221E +:104590000E941F0A91E0811101C090E0892F0895C7 +:1045A0000E94111C80E00E9420030E9439280E9472 +:1045B0002F170C943F091F920F920FB60F921124E0 +:1045C0008F939F93AF93BF938091F302811113C098 +:1045D0008091F4029091F502A091F602B091F70259 +:1045E0004196A11DB11D8093F4029093F502A09312 +:1045F000F602B093F702BF91AF919F918F910F9008 +:104600000FBE0F901F90189582E084BD93E095BD7A +:104610009AEF97BD80936E0008952FB7F89480911C +:10462000F4029091F502A091F602B091F7022FBF2B +:104630000895CF92DF92EF92FF920F931F932FB7BF +:10464000F8944091F4025091F5026091F602709155 +:10465000F7022FBF6A017B01EE24FF248C0120E0CA +:1046600030E0C016D106E206F30610F441505109BD +:104670009A01281B390BC9011F910F91FF90EF90F0 +:10468000DF90CF9008951F920F920FB60F921124D2 +:104690008F939F93AF93BF938091F4029091F50213 +:1046A000A091F602B091F7020196A11DB11D809371 +:1046B000F4029093F502A093F602B093F702BF9133 +:1046C000AF919F918F910F900FBE0F901F901895F3 +:1046D0000E942C14F8942FEF87EA91E62150804035 +:1046E0009040E1F700C0000087E090EBDC01809390 +:1046F0001E0390931F03A0932003B09321039CE01B +:1047000088E10FB6F894A895809360000FBE90934F +:104710006000FFCF0E94C923811102C00E94A5231F +:104720000E94D4238093F2020E94DC2380931C0316 +:1047300087FB882780F9809316010E94D823682F71 +:1047400070E080E090E00C94D11F6DEE7EEF80E091 +:1047500090E00E94F02C60E082E090E00E94DE2C6D +:1047600060E083E090E00E94DE2C60E084E090E076 +:104770000E94DE2C60E085E090E00E94DE2C60E08C +:1047800086E090E00E94DE2C6FEF87E090E00C94D2 +:10479000DE2C80E090E00E94D82C21E08D3E9E4FE0 +:1047A00009F020E0822F089582E090E00C94D02C54 +:1047B00083E090E00C94D02C84E090E00C94D02C1A +:1047C000682F84E090E00C94DE2C86E090E00C945E +:1047D000D02C682F86E090E00C94DE2C87E090E0EF +:1047E0000C94D02C682F87E090E00C94DE2C809104 +:1047F000FA0280FF0BC060911C0185E0689FB00148 +:10480000112475956795759567952BC081FF09C033 +:1048100060911C0185E0689FB00111247595679532 +:1048200020C082FF07C060911C0185E0689FB00135 +:10483000112417C09091FB029923D1F060911B01C4 +:10484000961788F720911C0185E0289F900111247C +:10485000929FA001939F500D112470E0CA010E9405 +:10486000B62C6038710540F46115710539F002C04D +:1048700065E070E0862F08958FE7089581E0089540 +:104880008091FA0280FF08C060911A0170E075956E +:1048900067957595679521C081FF06C060911A01E3 +:1048A00070E07595679519C082FF04C060911A0188 +:1048B00070E010C09091FB029923C1F06091190142 +:1048C0009617A0F780911A01899FC001112470E00A +:1048D0000E94B62C6038710528F46115710521F02D +:1048E000862F08958FE7089581E0089561E070E0D4 +:1048F000F4CF803F21F40E94F723819504C0813FCB +:1049000029F40E94F7238093FE020895823F21F448 +:104910000E94F723819504C0833F29F40E94F72366 +:104920008093FD020895893F19F40E94402405C038 +:104930008A3F31F40E94402481958093FF020895BC +:104940008B3F21F40E944024819504C08C3F29F4C0 +:104950000E944024809300030895843F21F48091B5 +:10496000FC02816017C0853F21F48091FC028260C7 +:1049700011C0863F21F48091FC0284600BC0873F08 +:1049800021F48091FC02886005C0883F31F4809159 +:10499000FC0280618093FC0208958D3F21F4809198 +:1049A000FA0281600BC08E3F21F48091FA0282608E +:1049B00005C08F3F29F48091FA0284608093FA0247 +:1049C0000895803F39F48091FE0287FF6CC01092F9 +:1049D000FE0269C0813F29F48091FE021816BCF3E3 +:1049E00062C09091FD02823F29F497FF5CC0109253 +:1049F000FD0259C0833F19F41916CCF354C0893F06 +:104A000041F48091FF0218160CF04DC01092FF0285 +:104A10004AC08A3F29F48091FF0287FF44C0F6CF45 +:104A20008B3F39F48091000387FF3DC01092000353 +:104A30003AC08C3F29F4809100031816BCF333C0B0 +:104A4000843F21F48091FC028E7F17C0853F21F4C2 +:104A50008091FC028D7F11C0863F21F48091FC0281 +:104A60008B7F0BC0873F21F48091FC02877F05C0BC +:104A7000883F31F48091FC028F7E8093FC0213C04A +:104A80008D3F21F48091FA028E7F0BC08E3F21F47E +:104A90008091FA028D7F05C08F3F29F48091FA0240 +:104AA0008B7F8093FA028091FD0281110EC080916C +:104AB000FE0281110AC08091FF02811106C080911F +:104AC0000003811102C01092FB0208958CEF92E066 +:104AD0000E9446170E940D239093F9028093F802DA +:104AE00008951F93CF93DF938091F8029091F9027C +:104AF0000E941923AC019091FB02992321F020918F +:104B00001D0130E006C020911E018AE0289F90011F +:104B100011244217530708F486C08091FD02C0910A +:104B2000FE02D091FF0210910003811107C0C11154 +:104B300076C0D11174C0111172C075C09F3F19F0B9 +:104B40009F5F9093FB02181624F40E94F723809332 +:104B5000FD028091FD0287FF05C00E94F723819529 +:104B60008093FD021C1624F40E94F7238093FE021A +:104B70008091FE0287FF05C00E94F72381958093F4 +:104B8000FE026091FD02662339F1C091FE02CC2342 +:104B900019F1772767FD7095872F972F0E94D829E5 +:104BA00023E333E343E35FE30E94E82A0E94A5295D +:104BB0006093FD026C2F772767FD7095872F972FE5 +:104BC0000E94D82923E333E343E35FE30E94E82A0A +:104BD0000E94A5296093FE021D1624F40E94402421 +:104BE0008093FF028091FF0287FF05C00E9440244E +:104BF00081958093FF02111624F40E944024809333 +:104C000000038091000387FF05C00E944024819526 +:104C100080930003DF91CF911F910C9466259F3FF5 +:104C200009F08ECF96CFDF91CF911F910895ECEFD1 +:104C3000F2E085E0DF011D928A95E9F71092FB0210 +:104C40001092FA020895833081F128F4813059F0EE +:104C50008230D1F00895853009F449C0B8F186302A +:104C600009F456C0089580911E01262F30E0280FC8 +:104C7000311D2F3F310524F4680F60931E01089504 +:104C80008FEF80931E01089580911D01262F30E043 +:104C9000280F311D2F3F310524F4680F60931D014B +:104CA00008958FEF80931D01089580911C01262F98 +:104CB00030E0280F311D2F3F310524F4680F609339 +:104CC0001C0108958FEF80931C01089580911B01B2 +:104CD000262F30E0280F311D2F3F310524F4680FB7 +:104CE00060931B0108958FEF80931B0108958091BD +:104CF0001A01262F30E0280F311D2F3F310524F4F3 +:104D0000680F60931A0108958FEF80931A01089538 +:104D100080911901262F30E0280F311D2F3F3105DA +:104D200024F4680F6093190108958FEF809319019F +:104D30000895833011F128F4813049F0823091F0E8 +:104D40000895853081F120F18630C1F10895809178 +:104D50001E01681720F4861B80931E01089510928F +:104D60001E01089580911D01681720F4861B809311 +:104D70001D01089510921D01089580911C0168176E +:104D800020F4861B80931C01089510921C01089545 +:104D900080911B01681720F4861B80931B010895E6 +:104DA00010921B01089580911A01681720F4861B48 +:104DB00080931A01089510921A01089580911901A3 +:104DC000681720F4861B8093190108951092190129 +:104DD00008950F931F93873208F048C08E3108F072 +:104DE0008DC0803109F477C008F5873009F461C0BF +:104DF00068F4863009F09DC08091F202817F8E7F39 +:104E00008093F20281E08093020394C08B3009F416 +:104E100089C08E3009F08DC08091F20282FB22277A +:104E200020F991E0922790FB82F95EC0863109F467 +:104E300079C060F4813109F07CC00E94111C90910E +:104E4000160181E08927809316016CC0893109F42D +:104E500069C08B3109F06DC08091F20281FB22277D +:104E600020F991E0922790FB81F93EC0883309F444 +:104E700059C050F4893209F457C0853309F454C03D +:104E8000873209F451C055C0833409F44DC028F469 +:104E90008A3308F44EC0895332C0883409F049C0BF +:104EA0000E94111C0E944F0A0E9413040E94682352 +:104EB00039C09091F202892F8095817080FB90F922 +:104EC00029F0966098609093F20234C0997F977FA2 +:104ED0009093F20227C08091F20283FB222720F9EF +:104EE00091E0922790FB83F98093F2029923D1F00D +:104EF0008091F20281608093F20214C08D5141E0F2 +:104F000050E060E070E08A019B0104C0000F111FB7 +:104F1000221F331F8A95D2F7C901B8010E94D11F01 +:104F20000E94111C81E006C061E070E080E090E02A +:104F3000F5CF80E01F910F91089580E0089580E003 +:104F40000895CF93C82F80910203813069F018F043 +:104F50008230C9F184C0E0911701F091180180817D +:104F6000823209F07EC007C0E0911701F09118016C +:104F70008081823261F48C2F0E949D27811104C0B0 +:104F80008C2F0E94E9261DC081E090E01AC08C2F72 +:104F90000E949F27811114C0C43179F048F4CB30AE +:104FA00079F0C03109F061C082E08093020308C04B +:104FB000C93219F0C83321F058C01092020355C00D +:104FC00081E0817054C0C93291F120F5C43179F18A +:104FD000B0F4C73009F047C08EE180931E0182E330 +:104FE00080931D018AE080931C0184E180931B0162 +:104FF00088E080931A0188E28093190134C0CE5171 +:10500000C63088F5EC2FF0E0EA54FE4F80818093A3 +:10501000010329C0CE34E9F020F4CB3421F56AE055 +:1050200013C0C13579F0C235F1F461E00DC0809153 +:105030000103882319F01092010315C081E08093C9 +:10504000020315C061E006C0809101030E9423267F +:105050000AC06AE0809101030E94992604C0109260 +:10506000020380E004C081E002C080E0AACFCF91BB +:1050700008950E94C923811102C00E94A5230E94A5 +:10508000E52380931D0380FF02C0869501C080E068 +:105090000C94200380911D03982F9695292F30E0C2 +:1050A000233031054CF49F5F990F8170892B81600B +:1050B00080931D030E94E92380911D0386950C9423 +:1050C000200380911D03982F969591F09158990F88 +:1050D0008170892B80931D038E7F91E009F490E00D +:1050E00080911D0390FB80F980931D030E94E923AA +:1050F00080911D0386950C94200380911D03982FA9 +:10510000909590FB80F980931D030E94E923809184 +:105110001D0380FF02C0869501C080E00C9420032F +:1051200090911D03892F86958F5F8F7791708430C2 +:1051300028F4880F892B80931D0302C090931D03D0 +:1051400080911D038E7F91E009F490E080911D0312 +:1051500090FB80F980931D030E94E92380911D0339 +:1051600086950C94200320911D03922F96958927F4 +:10517000982F990F822F8170892B80931D038E7F2A +:1051800091E009F490E080911D0390FB80F98093F9 +:105190001D030E94E92380911D0386950C94200332 +:1051A00080911D03869508955058BB27AA270ED0DD +:1051B000D1C1C2D130F0C7D120F031F49F3F11F4FA +:1051C0001EF4B7C10EF4E095E7FB9FC1E92FD3D1E0 +:1051D00080F3BA17620773078407950718F071F414 +:1051E0009EF5EBC10EF4E0950B2EBA2FA02D0B010E +:1051F000B90190010C01CA01A0011124FF27591B1C +:1052000099F0593F50F4503E68F11A16F040A22F21 +:10521000232F342F4427585FF3CF46953795279592 +:10522000A795F0405395C9F77EF41F16BA0B620B91 +:10523000730B840BBAF09150A1F0FF0FBB1F661FD8 +:10524000771F881FC2F70EC0BA0F621F731F841F1B +:1052500048F4879577956795B795F7959E3F08F041 +:10526000B3CF9395880F08F09927EE0F9795879500 +:10527000089527D108F481E008950CD06BC163D163 +:1052800040F05AD130F021F45F3F19F03EC1511186 +:1052900095C14FC170D198F39923C9F35523B1F348 +:1052A000951B550BBB27AA2762177307840738F095 +:1052B0009F5F5F4F220F331F441FAA1FA9F333D0F4 +:1052C0000E2E3AF0E0E830D091505040E695001CA8 +:1052D000CAF729D0FE2F27D0660F771F881FBB1F64 +:1052E000261737074807AB07B0E809F0BB0B802D3E +:1052F000BF01FF2793585F4F2AF09E3F510568F08A +:1053000004C15CC15F3FECF3983EDCF38695779572 +:105310006795B795F7959F5FC9F7880F911D96958B +:10532000879597F90895E1E0660F771F881FBB1FE7 +:10533000621773078407BA0720F0621B730B840B94 +:10534000BA0BEE1F88F7E095089504D06894B11168 +:1053500035C1089518D188F09F5790F0B92F99273B +:10536000B751A0F0D1F0660F771F881F991F1AF070 +:10537000BA95C9F712C0B13081F01FD1B1E00895DC +:105380001CC1672F782F8827B85F39F0B93FCCF35D +:10539000869577956795B395D9F73EF49095809566 +:1053A000709561957F4F8F4F9F4F0895E89409C086 +:1053B00097FB3EF490958095709561957F4F8F4F48 +:1053C0009F4F9923A9F0F92F96E9BB279395F6955E +:1053D000879577956795B795F111F8CFFAF4BB0FDC +:1053E00011F460FF1BC06F5F7F4F8F4F9F4F16C040 +:1053F000882311F096E911C0772321F09EE8872FCA +:10540000762F05C0662371F096E8862F70E060E085 +:105410002AF09A95660F771F881FDAF7880F9695FE +:10542000879597F9089588D018F011F08CD038F44A +:1054300080C0C4C0E92F9FD0B0F35523C9F3E7FB68 +:105440006217730784079507A8F199F3E92FFF27DF +:1054500088232AF03197660F771F881FDAF7952F78 +:105460005527442332F091505040220F331F441FE0 +:10547000D2F7BB27E91BF50B621B730B840BB10939 +:10548000C1F222F4620F731F841FB11D31972AF0FD +:10549000660F771F881FBB1FEFCF915050405AF007 +:1054A00041F0882332F0660F771F881F91505040DB +:1054B000C1F7939530C08695779567959F5FD9F72B +:1054C000F8CF990F0008550FAA0BE0E8FEEF16166B +:1054D0001706E807F907C0F012161306E407F507E8 +:1054E00098F0621B730B840B950B39F40A2661F05C +:1054F000232B242B252B21F408950A2609F4A140FF +:10550000A6958FEF811D811D089597F99F6780E80B +:1055100070E060E008959F3F31F0915020F487954E +:1055200077956795B795880F911D9695879597F90B +:1055300008959FEF80EC089500240A94161617062C +:1055400018060906089500240A9412161306140674 +:1055500005060895092E0394000C11F4882352F0D7 +:10556000BB0F40F4BF2B11F460FF04C06F5F7F4F8F +:105570008F4F9F4F089557FD9058440F551F59F076 +:105580005F3F71F04795880F97FB991F61F09F3F30 +:1055900079F087950895121613061406551FF2CF59 +:1055A0004695F1DF08C0161617061806991FF1CFA9 +:1055B00086957105610508940895E894BB276627D0 +:1055C0007727CB0197F908957CDF08F48FEF0895D2 +:1055D0000BD0C0CFB1DF28F0B6DF18F0952309F06B +:1055E00094CFA7CF1124EACFC6DFA0F3959FD1F3C4 +:1055F000950F50E0551F629FF001729FBB27F00D81 +:10560000B11D639FAA27F00DB11DAA1F649F6627D5 +:10561000B00DA11D661F829F2227B00DA11D621F24 +:10562000739FB00DA11D621F839FA00D611D221FDE +:10563000749F3327A00D611D231F849F600D211DC2 +:10564000822F762F6A2F11249F5750408AF0E1F065 +:1056500088234AF0EE0FFF1FBB1F661F771F881FAE +:1056600091505040A9F79E3F510570F04ECFA6CF04 +:105670005F3FECF3983EDCF3869577956795B79599 +:10568000F795E7959F5FC1F7FE2B880F911D9695C3 +:10569000879597F90895FA01EE0FFF1F30962105BF +:1056A000310599F16115710561F48038BFE39B07FD +:1056B00049F168949038810561F08038BFEF9B070D +:1056C00041F0992342F5FF3FE1053105210511F134 +:1056D000E8940894E795D901AA2329F4AB2FBE2FAB +:1056E000F85FD0F310C0FF5F70F4A695E0F7F739CC +:1056F00050F019F0FF3A38F49F779F930CD00F9039 +:1057000007FC905808953EF014CF60E070E080E808 +:105710009FE308954FE79F775F934F933F932F93B6 +:105720009ED02F913F914F915F9152DF05C019F4A8 +:105730000EF0EBCE42CFFDCE26DFC8F39638C0F791 +:1057400007F80F92E8942BE33AEA48EB5FE74EDF65 +:105750000F920F920F924DB75EB70F92C0D0EAE052 +:10576000F1E016D04F915F91EF91FF91E595EE1F1B +:10577000FF1F49F0FE57E0684427EE0F441FFA95DB +:10578000E1F74195550B32D00F9007FE26C00895E2 +:10579000DF93CF931F930F93FF92EF92DF927B01E2 +:1057A0008C01689405C0DA2EEF011EDFFE01E8943B +:1057B000A5912591359145915591AEF3EF0106DD07 +:1057C000FE019701A801DA9479F7DF90EF90FF903E +:1057D0000F911F91CF91DF9108959B01AC0160E083 +:1057E00070E080E89FE349CD90CE95CECCDEE8F323 +:1057F0009923D9F3940F511DBBF39150504094F06D +:1058000059F0882332F0660F771F881F915050405F +:10581000C1F79E3F510544F7880F911D96958795D6 +:1058200097F908955F3FACF0983E9CF0BB278695B2 +:1058300077956795B79508F4B1609395C1F7BB0F5D +:1058400058F711F460FFE8CF6F5F7F4F8F4F9F4F86 +:10585000E3CFB4CE0EF05FCE6CCE689456CE93DE1E +:10586000C8F39923D1F3C6F3DF93CF931F930F931C +:10587000FF92C92FDD2788232AF02197660F771F13 +:10588000881FDAF720E030E040E85FEB9FE38839DB +:1058900020F0803E30F021968F7787DCE2E3F1E064 +:1058A00003C083DCEFE5F1E073DF8B01BE01EC01A7 +:1058B000FB2E6F5771097595771F880B990B78DD53 +:1058C00028E132E741E35FE38FDEAF2D9801AE01BF +:1058D000FF900F911F91CF91DF9178DC3BCEFA01C1 +:1058E000DC01AA0FBB1F9B01AC01BF5728F4222784 +:1058F0003327442750781FC0B75188F4AB2F0024BA +:10590000469537952795011CA395D2F3002069F0A1 +:10591000220F331F441FB395DAF30DD045CC61300D +:105920007105A0E88A07B94630F49B01AC016627EF +:10593000772788279078309621F02083318342831F +:1059400053830895AA1BBB1B51E107C0AA1FBB1FAD +:10595000A617B70710F0A61BB70B881F991F5A95FB +:10596000A9F780959095BC01CD01089597FB072E6E +:1059700016F4009407D077FD09D00E94A22C07FCF2 +:1059800005D03EF4909581959F4F0895709561954F +:105990007F4F0895EE0FFF1F0590F491E02D0994BD +:1059A000F999FECF92BD81BDF89A992780B50895E7 +:1059B000A8E1B0E042E050E00C94F82C262FF999D1 +:1059C000FECF92BD81BDF89A019700B4021639F05E +:1059D0001FBA20BD0FB6F894FA9AF99A0FBE08952F +:1059E0000196272F0E94DF2C0C94DE2CDC01CB01CA +:1059F000FC01F999FECF06C0F2BDE1BDF89A3196DF +:105A000000B40D9241505040B8F70895F894FFCF7C +:105A1000640007000CFF0000003F643310C1109EBB +:105A2000106A1036100101DF022808140A321E0025 +:105A300002040507090B0C0E1011131517181A1C78 +:105A40001D1F2123242628292B2D2F3032343537B2 +:105A5000393B1F0F03764F5F6F7F496943790959BF +:105A600053633149803F5D8B803FF8BF803FCAE17F +:105A7000803F73ED803FCAE1803FF8BF803F5D8B80 +:105A8000803F3149803F0000803FF16D7F3F75EAE4 +:105A90007E3F4C827E3F833F7E3F84287E3F833F14 +:105AA0007E3F4C827E3F75EA7E3FF16D7F3F000076 +:105AB000803F3F4D36394B05FE04C8048F04220455 +:105AC0003B0454046D0401020304050607080900A1 +:00000001FF diff --git a/keyboards/planck/keymaps/leo/keymap.c b/keyboards/planck/keymaps/leo/keymap.c new file mode 100644 index 000000000..25a5e1579 --- /dev/null +++ b/keyboards/planck/keymaps/leo/keymap.c @@ -0,0 +1,35 @@ +#include "keymap.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = { /* BASE */ + {KC_ESC, KC_LBRC, KC_QUOT, KC_SCLN, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {KC_TAB, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_ENT}, + {KC_LSFT, KC_DOT, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_COMM}, + {KC_LCTL, KC_LALT, KC_LGUI, FUNC(3), FUNC(2), KC_SPC, KC_SPC, FUNC(1), FUNC(3), KC_RGUI, KC_RALT, KC_RCTL} +}, +[2] = { /* RAISE */ + {RALT(KC_RBRC), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, S(KC_RBRC)}, + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +}, +[3] = { /* LOWER */ + {S(KC_EQL),S(KC_1),S(KC_2),S(KC_3),RALT(KC_5),S(KC_5), S(KC_6), S(KC_7),RALT(KC_7),RALT(KC_0),S(KC_0), KC_MINS}, + {KC_TRNS,RALT(KC_2),S(KC_SLSH),KC_NUBS,S(KC_NUBS),RALT(KC_MINS),RALT(KC_NUBS), KC_NUHS, S(KC_8), S(KC_9), S(KC_MINS), KC_SLSH}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RALT(KC_8), RALT(KC_9), KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +}, +[4] = { /* META */ + {KC_TRNS, KC_HOME, KC_UP, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_TRNS, KC_DEL}, + {KC_TRNS, KC_RGHT, KC_DOWN, KC_LEFT, KC_PGUP, KC_TRNS, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_TRNS, KC_PGDN, KC_TRNS, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS}, + {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_MOMENTARY(2), // to RAISE + [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER + [3] = ACTION_LAYER_MOMENTARY(4), // to META + +}; \ No newline at end of file diff --git a/keyboards/planck/keymaps/lucas/Makefile b/keyboards/planck/keymaps/lucas/Makefile new file mode 100644 index 000000000..581e08cd0 --- /dev/null +++ b/keyboards/planck/keymaps/lucas/Makefile @@ -0,0 +1,25 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/lucas/compiled.hex b/keyboards/planck/keymaps/lucas/compiled.hex new file mode 100644 index 000000000..13e872aa6 --- /dev/null +++ b/keyboards/planck/keymaps/lucas/compiled.hex @@ -0,0 +1,1480 @@ +:100000000C9428030C946C030C946C030C946C03F8 +:100010000C946C030C946C030C946C030C946C03A4 +:100020000C946C030C946C030C946A150C943C16A1 +:100030000C949D230C946C030C946C030C946C0333 +:100040000C946C030C94CE030C946C030C946C0312 +:100050000C946C030C9405240C946C030C946C03AA +:100060000C946C030C946C030C946C030C946C0354 +:100070000C946C030C946C030C946C030C946C0344 +:100080000C94E30B0C946C030C946C030C946C03B5 +:100090000C946C030C946C030C946C030C946C0324 +:1000A0000C946C030C946C030C946C03A916CB1683 +:1000B000B917CB16B91710173317B91788179B172D +:1000C000851A851AB41AB41AF31A131B691C691C11 +:1000D0001E1B691CCE1BCE1B351C3E1C691C631CE1 +:1000E000DB1BDB1BDB1BDB1BDB1BDB1BDB1BDB1B60 +:1000F000DB1BDB1BDB1BDB1BDB1BDB1BDB1BDB1B50 +:10010000EB1BF91B001C071C111C07634236B79B35 +:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 +:100120005763BD6DEDFD753EF6177231BF000000DF +:10013000803F08000000BE922449123EABAAAA2AC2 +:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD +:1001500000000000BF000000803F00000000000819 +:100160004178D3BB4387D1133D190E3CC3BD4282B6 +:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 +:10018000FFBE01C4FF7F3F00000000000000000030 +:1001900000000000000000010204060A0F17202CD6 +:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 +:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF +:1001C0000201000000000000000000000000F1A299 +:1001D000F1A32CA4228A3921290014001A00090055 +:1001E00013000A000D000F0018001D003602380031 +:1001F0002A00040015001600170007000B0011006C +:1002000008000C001200310200301C001B00060028 +:10021000190005000E0010003600370024022800E7 +:10022000E000E3002B00E200022003200320012075 +:100230005000510052004F00010001000100010078 +:100240000100010001000100010001003700010070 +:100250000100010001000100010001000100010096 +:100260000100010001001F02010001000100010066 +:100270000100010001000100013064022D020100B3 +:100280000100010001000100010001000100010066 +:100290000100010001000100000034020000000024 +:1002A00000000000000000002F02330200000420C4 +:1002B0004C00340000002D00000000000000000091 +:1002C0002F00330000004514000000000000000073 +:1002D0000000000000000000AD00AC00AB004414C2 +:1002E0000100010001000100010001000100010006 +:1002F000A800AA00A900AE0030141E021414310098 +:10030000210222023500230230022502260230009B +:100310002E021E001F0020002100220023002400C6 +:1003200025002600270027020000000000006414BA +:100330002514261424142714081400002D14280052 +:1003400001000100010001000100010001000100A5 +:100350004A004E004B004D00680069006A006B00C7 +:100360006C006D006E006F00700071007200730011 +:100370003A003B003C003D003E003F004000410091 +:10038000420043004400450000000000000000005F +:100390000000560057000000000000000070000040 +:1003A000000031702F703070022001000100010048 +:1003B000A800AA00A900AE000651290014001A00E6 +:1003C0000800150017001D0018000C001200042082 +:1003D00028002A0004001600070009000A000B008C +:1003E0000D000E000F003602E000E1001C001B00B3 +:1003F0000600190005001100100037005200240209 +:10040000000000002B00E20000002C002C002C015A +:10041000E300500051004F000100000014001A00DA +:10042000090013000A000D005F0060006100000079 +:100430002A000000040015001600170007000B003A +:100440005C005D005E004D00E000E1001C001B0050 +:100450000600190005000E0059005A005B004E000E +:10046000000000002B00E20000002C002C002C01FA +:100470000000620063005800280354006800650013 +:10048000200050006C0061006E0063006B002000D3 +:100490004B006500790062006F006100720064002B +:1004A00000002C034F007200740068006F006C00A5 +:1004B00069006E0065006100720020004B0065005D +:1004C000790062006F006100720064007300000038 +:1004D0000403090409026D00040100A0FA090400E4 +:1004E0000001030101000921110100012240000760 +:1004F00005810308000A0904010001030102000943 +:100500002111010001224D000705820308000A099C +:10051000040200010300000009211101000122363C +:10052000000705830308000A090403000103000013 +:100530000009211101000122390007058403100080 +:10054000011201100100000008EDFE6060010001D1 +:1005500002000105010906A101050719E029E715B7 +:1005600000250195087501810205081901290595E5 +:10057000057501910295017503910105071900297F +:100580007715002501957875018102C00501098064 +:10059000A101850216010026B7001A01002AB70042 +:1005A000751095018100C0050C0901A10185031694 +:1005B0000100269C021A01002A9C027510950181F7 +:1005C00000C005010902A1010901A10005091901E5 +:1005D0002905150025019505750181029501750311 +:1005E00081010501093009311581257F95027508C2 +:1005F000810609381581257F950175088106050C4E +:100600000A38021581257F950175088106C0C0054D +:10061000010906A101050719E029E7150025019543 +:1006200008750181029501750881010508190129E4 +:10063000059505750191029501750391010507194D +:100640000029FF150026FF00950675088100C000EF +:1006500011241FBECFEFDAE0DEBFCDBF04B603FE2C +:1006600024C080911F0390912003A0912103B09199 +:1006700022038730904BA740B04BB9F410921F0370 +:1006800010922003109221031092220314BE84B70B +:10069000877F84BF88E10FB6F89480936000109242 +:1006A00060000FBEE0E0F8E3099511E0A0E0B1E0E2 +:1006B000EEEAFBE502C005900D92A03CB107D9F728 +:1006C00013E0A0ECB1E001C01D92AF31B107E1F73A +:1006D0000E94B4120C94D52D0C9400000895089536 +:1006E00081E0089508950C946F030C9470030C94AA +:1006F00072030E949F2923E030E0281B3109220F5A +:100700002093C4010895282F2F98809180002111F3 +:1007100008C0877F8093800010928D0010928C001B +:100720001BC0886080938000233019F48FEF9FEF07 +:100730000FC083E090E0821B9109880F991F2FEF73 +:100740003FEFA90102C0569547958A95E2F7CA0185 +:1007500090938D0080938C000C9479030E94790310 +:1007600084E08093C3011092C0010895279A2F98C6 +:100770008FEF9FEF90938700809386008AE08093AD +:10078000800089E1809381000E9408290C94AE03C7 +:100790000E94B6036E9A769A0C946E031F920F9283 +:1007A0000FB60F9211242F933F938F939F93EF9344 +:1007B000FF93E091C101F091C201CF0101969093A6 +:1007C000C2018093C1010090C30102C0F695E79574 +:1007D0000A94E2F7EF738091C001823019F4E0329D +:1007E00051F404C0813039F4EF3329F480916F0063 +:1007F0008D7F80936F00F0E0E457FE4FE49121E09D +:1008000031E0E29FC001E39F900D11240090C401EC +:1008100002C0969587950A94E2F790938D00809395 +:100820008C00FF91EF919F918F913F912F910F90AD +:100830000FBE0F901F901895662319F0613089F054 +:100840001EC0FC018281882339F081EE0E942919A3 +:1008500081E00E94112113C081E00E94322181EECB +:100860000CC0FC018281882339F081EE0E94F119CD +:1008700084E60E94291903C084E60E94F11980E0F1 +:1008800090E0089581E008950C94420408950C943A +:10089000C80380911502882309F448C08091D101D2 +:1008A0009091D201009779F40E94CF239093D201C6 +:1008B0008093D1018091D30190E0009771F48091F1 +:1008C000D40190E00AC00E94DB2320910001309106 +:1008D00001012817390740F329C00197880F991F94 +:1008E000880F991FFC01EB52FE4F6081718182815C +:1008F00093810E94490BE091D30184E0E89FF001CD +:100900001124EB52FE4F60817181828193814FE00F +:1009100050E00E94010F8091D30190E00196609118 +:10092000D40170E00E94852D8093D3010C94730351 +:10093000109217020C94160B0895089581E080938D +:1009400017020C949D04089508958F929F92AF9280 +:10095000BF92EF92FF920F931F93CF93DF93CDB788 +:10096000DEB7A3970FB6F894DEBF0FBECDBF7C01F4 +:10097000FC0100811181C8010E94CD21B8010E94B3 +:1009800039098C01B7010E944404882309F4BDC2CF +:100990000531F0E71F0741F4F7018281882309F44C +:1009A00058C00E94650FB1C20631F0E71F0741F43D +:1009B000F7018281882309F44CC00E946E0FA5C202 +:1009C0000731F0E71F0751F4F7018281882309F40A +:1009D00040C00E94610F8111F0CFE3CF0831F0E7F2 +:1009E0001F0739F4F7018281882399F10E949E0440 +:1009F0008CC20931F0E71F0739F4F701828188239F +:100A000041F10E94980481C20A31F0E71F0749F4BE +:100A1000F70182818823E9F0809117028111F1CFDB +:100A2000E5CF0B31F0E71F0739F4F7018281882306 +:100A300081F00E94750F0AC00C31F0E71F0749F4DE +:100A4000F7018281882329F00E94800F0E94A4046C +:100A50005CC280911702811105C0F701828181116A +:100A6000CFC03AC1003E110579F4F7018281882395 +:100A700009F44DC00E94160B81E08093160210927B +:100A800015021092D40141C2023E110559F4F7013A +:100A900082818823E1F10E94160B109216021092B7 +:100AA000150233C2033E110591F4F70182818823B8 +:100AB00071F10E94160B1092160281E080931502CC +:100AC0001092D3011092D2011092D1011EC20235B0 +:100AD000110559F4F7018281882309F416C2809127 +:100AE0000001909101010A970DC00135110579F4BB +:100AF000F7018281882309F408C280910001909156 +:100B000001010A969093010180930001FEC140917A +:100B1000040183E2EFE1F1E0DE01119601900D9214 +:100B20008A95E1F7F701808121E030E02C0F3D1F2D +:100B3000280F311DC9012091020130910301FC01F0 +:100B4000E20FF31F6081772767FD7095640F711DB9 +:100B5000882777FD8095982F0E94A72A20E030E013 +:100B600040E451E40E940C2A4B015C01F701218111 +:100B700084E090E0821B9109BC01882777FD809575 +:100B8000982F0E94A72A9B01AC01C501B4010E94C5 +:100B9000A4299B01AC0160E070E080E090E40E9439 +:100BA0001A2C20E030E04CED50E40E94B72B4B01B2 +:100BB0005C01F70182818823D1F04FE050E0C5014C +:100BC000B4010E94010F809116028823A1F0809148 +:100BD000D40124E0829FF0011124EB52FE4F808269 +:100BE0009182A282B3828F5F8093D40104C0C50139 +:100BF000B4010E94490B0F3F110508F02ECF85C1AB +:100C00008091D00181111FC0043130E7130709F032 +:100C100080C00E94460481E08093D0010E94CF23CF +:100C20009093CF018093CE011092C7011092C90119 +:100C30001092C8011092CB011092CA011092CD01FE +:100C40001092CC0162C18091CE019091CF010E949F +:100C5000DB23883C910570F48091C701E82FF0E018 +:100C6000EE0FFF1FE853FE4F118300838F5F8093C9 +:100C7000C7014BC1043180E7180768F4023090E7E0 +:100C8000190708F050C00115E0E71E0771F00130A8 +:100C90001047A1F11CC1033320E7120709F4E8C093 +:100CA0000433104709F4FBC012C1F7018281882385 +:100CB00009F412C10E94D41C0E94160B0E949C04CD +:100CC000FFEF24E33CE0F15020403040E1F700C06A +:100CD00000000E942A2419C10431F0E71F0708F020 +:100CE000C3C0023020E71207F0F4011530E7130704 +:100CF00009F4F2C00130104709F0E9C0F701828120 +:100D0000882309F4E9C08091F20281608093F202A5 +:100D1000FCC00431F0E71F0708F0A6C0023020E74E +:100D2000120708F4ECC0F7018281882309F4D4C0CB +:100D30000E948E24811102C00E946A240E94A12474 +:100D400090E090930403809303030230F0E71F07C1 +:100D500021F480910303816080C0033020E71207F3 +:100D600021F480910303826078C0043030E71307D8 +:100D700021F480910303846070C0053080E7180778 +:100D800019F48091030327C0063090E7190721F476 +:100D900080910303806161C00730E0E71E0721F402 +:100DA00080910303806259C00830F0E71F0721F4E7 +:100DB00080910303806451C0093020E7120721F4B9 +:100DC00080910303806849C00A3030E7130729F493 +:100DD000809103038460886040C00B3080E718076F +:100DE00021F4809103038E7F38C00C3090E71907FF +:100DF00021F4809103038D7F30C00D30E0E71E07A2 +:100E000021F4809103038B7F28C00E30F0E71F0789 +:100E100019F48091030320C00F3020E7120721F45A +:100E2000809103038F7E19C0003130E7130721F44E +:100E3000809103038F7D11C0013180E7180721F4F1 +:100E4000809103038F7B09C0809103030231104717 +:100E500011F48F7702C08B7F877F8093030380918B +:100E600003030E94A52451C0033390E71907A1F49E +:100E7000F7018281882321F01092C50182E016C01B +:100E80008091C501811106C086E20E94291986E27F +:100E90000E94F11982E018C004331047C1F4F70131 +:100EA0008281882331F01092C60180E20E94401AAC +:100EB0002CC08091C601811106C087E20E942919C9 +:100EC00087E20E94F11980E20E94471A1EC081E069 +:100ED0008093C5018093C601C701A3960FB6F8940D +:100EE000DEBF0FBECDBFDF91CF911F910F91FF905D +:100EF000EF90BF90AF909F908F900C947503011569 +:100F000030E7130709F0F6CED5CE80E0A3960FB6F2 +:100F1000F894DEBF0FBECDBFDF91CF911F910F912F +:100F2000FF90EF90BF90AF909F908F9008952CE02E +:100F3000729FF001112430E3839FE00DF11D112415 +:100F4000E60FF11DEE0FFF1FE852FE4F85919491C1 +:100F50000E944B09811540E5940708F047C08115B0 +:100F600020E4920708F013C1883E910520F5803EE9 +:100F7000910508F07CC1883A910578F4853A91058D +:100F800008F0A5C08130910509F471C108F42EC1A3 +:100F90008430910508F06BC129C18B3B910508F4A1 +:100FA000A1C0803C910508F421C1FC01EE0FFF1F98 +:100FB000E45BFF4FE6C0811530E2930758F48115DA +:100FC00041E0940708F053C1803F910508F40EC139 +:100FD00090650895811520E3920708F0D5C0FC01C3 +:100FE000FF70EE0FFF1FE453FE4FCBC0811535E5B8 +:100FF000930708F043C0811544E5940708F0DEC06C +:10100000811522E5920708F5811531E5930708F06F +:10101000C1C0482F437021E030E002C0220F331FCF +:101020004A95E2F73C68AC0164E0569547956A95AD +:10103000E1F74370342B8F708695869540E2849F4C +:10104000C0011124822B932B0895282F26952695D5 +:10105000AC01437055278115934508F0A0C080E28C +:10106000289F9001112481E090E002C0880F991F11 +:101070004A95E2F7822B932B9C6808958F3240E7C4 +:10108000940790F48F3120E7920708F0A2C08115F1 +:1010900036E5930708F497C09C013056211530417E +:1010A00008F0A4C09F7093C0803320E7920709F432 +:1010B00097C008F492C0813340E7940709F493C0C5 +:1010C0008233904709F092C080E093ED0895853A0D +:1010D000910509F48EC0863A910509F08DC082E829 +:1010E00090E40895883A910509F489C0893A9105F8 +:1010F00009F488C08A3A910509F487C08B3A9105B2 +:1011000009F486C08C3A910509F485C08D3A9105A1 +:1011100009F484C0803B910509F483C08E3A91059F +:1011200009F482C08F3A910509F481C0813B910591 +:1011300009F480C0823B910509F47FC0833B91058F +:1011400009F47EC0843B910509F47DC0853B91057F +:1011500009F47CC0863B910509F47BC0873B91056F +:1011600009F47AC0883B910509F479C0893B91055F +:1011700009F478C08A3B910509F477C080E094E4D3 +:1011800008958591949108959927906C08959F7082 +:10119000906A0895982F8827816F906A089590E249 +:1011A000299F9001112481E090E002C0880F991FCF +:1011B0004A95E2F7822B932B9A680895982F8827F7 +:1011C000846F906A08958F719927982F882790626D +:1011D00008958F519047946D089580E091ED0895A2 +:1011E00080E090ED089580E092ED089580E090E039 +:1011F000089581E890E4089583E890E4089582EEEC +:1012000094E4089589EE94E408958AEE94E40895B0 +:1012100085EB94E4089586EB94E4089587EB94E4D9 +:1012200008958CEC94E408958DEC94E4089583E89B +:1012300095E408958AE895E4089582E995E408958F +:1012400084E995E4089581E296E4089583E296E4C2 +:10125000089584E296E4089585E296E4089586E28E +:1012600096E4089587E296E408958AE296E4089564 +:1012700008959CE0799FF001112490E3899FE00D8F +:10128000F11D1124E60FF11DEE0FFF1FE852FE4F76 +:101290008591949108958238910549F1B0F4813394 +:1012A000910509F458C048F48932910509F44EC0FB +:1012B0008A32910509F454C008958533910509F4E3 +:1012C00040C08933910599F00895833E910529F135 +:1012D00038F4803E910591F0823E9105A1F0089589 +:1012E000863E9105F9F0873E910531F108952091F0 +:1012F000030320FD3AC021FD38C008958091030307 +:1013000080FD35C032C08091030382FF32C08091DE +:10131000030384FD30C083EE39C08091030382FD56 +:1013200028C0F5CF8091030383FF27C0809103037A +:1013300084FD21C087EE2AC08091030383FD1DC078 +:10134000F5CF8091030385FD1AC01BC08091030374 +:1013500085FD17C014C08091030386FD14C015C01D +:101360008091030386FD11C00EC080EE0FC089E39B +:101370000DC082EE0BC080E009C086EE07C089E296 +:1013800005C085E303C08AE201C081E390E00895CF +:101390000C947703E82FF0E0E25BFE4F8081E82FAA +:1013A000EF70F0E082958F7021E030E0A90102C07B +:1013B000440F551F8A95E2F740A308950F931F939A +:1013C000CF93DF93C3E0D0E001E010E0FE01E25BE9 +:1013D000FE4F8081E82FEF70F0E021A182958F70A1 +:1013E000A80102C0440F551F8A95E2F7CA01822B5B +:1013F00081A38C2F0E94CA09219740F78BE090E0CF +:1014000061E070E0FC01EE5BFE4F2081E22FEF70A7 +:10141000F0E042A122952F70DB0102C0AA0FBB1F92 +:101420002A95E2F79D01242B22A3019758F7DF911B +:10143000CF911F910F9108950F931F93CF93DF9337 +:1014400085B7806885BF85B7806885BFC3E0D0E079 +:1014500001E010E0FE01E25BFE4F8081E82FEF70BB +:10146000F0E021A182958F70A80102C0440F551FA2 +:101470008A95E2F7CA01822B81A38C2F0E94CA09A8 +:10148000219740F78BE090E061E070E0FC01EE5BBB +:10149000FE4F2081E22FEF70F0E042A122952F70E5 +:1014A000DB0102C0AA0FBB1F2A95E2F79D01242B86 +:1014B00022A3019758F7DF91CF911F910F910C94C0 +:1014C0004704EF92FF920F931F93CF93DF9300E2B5 +:1014D00012E0C3E0EE24E394F12CD5E08C2F0E94BF +:1014E000CA098BE090E040E050E0FC01EE5BFE4F6B +:1014F0006081E62FEF70F0E020A130E062956F7020 +:1015000002C0359527956A95E2F720FD09C097013D +:10151000082E02C0220F331F0A94E2F7422B532BEE +:10152000019718F7F801929182918F01841795071E +:1015300021F051834083D09305018C2F0E94CA096A +:10154000C15060F68091050187FD2CC081508093C9 +:1015500005018F3F39F08FE99FE00197F1F700C057 +:10156000000020C080911E0290911F0290932702DC +:101570008093260280911C0290911D029093250277 +:101580008093240280911A0290911B02909323026F +:101590008093220280911802909119029093210267 +:1015A000809320020E94490481E0DF91CF911F9136 +:1015B0000F91FF90EF900895E82FF0E0EE0FFF1FDE +:1015C000E05EFD4F80819181089508950F931F93F0 +:1015D000CF9308E212E0C0E0F801929182918F016E +:1015E0000E944823C80FF2E000321F07A9F78C2F92 +:1015F000CF911F910F9108950E948E24811102C0F6 +:101600000E946A240E94B324809309033E9A809129 +:1016100071008D7F8093710082E0809390008AE159 +:101620008093910081E080932A02089580912A029C +:10163000811102C00E94FC0A10927A021092790273 +:10164000809171008D7F80937100809190008F73E5 +:101650008093900010923C0210923B021092730211 +:101660001092740210927502109276021092720219 +:1016700010927102E1E5F2E0A1E4B2E01192119260 +:10168000119211921D921D9282E0E137F807B1F795 +:101690000895CF92DF92EF92FF920F931F93CF9313 +:1016A000DF9320913B02222309F484C06B017C016B +:1016B00080912A02811102C00E94FC0A01E712E017 +:1016C000C7E0D0E0A7019601F80192918291729152 +:1016D00062918F010E94082A811131C0FE01EE0F34 +:1016E000FF1FEE0FFF1FEF5AFD4F10821182128273 +:1016F0001382DE01AA0FBB1FAF5BBD4F11961C9278 +:101700001E92C730D105E9F021964481558166814A +:10171000778140835183628373831482158216829A +:10172000178212968D919C91139711969C938E938C +:1017300013961C921E92129734961296E2CF21971E +:1017400008F68091790290917A02019797FD05C081 +:1017500090937A028093790204C010927A021092D8 +:1017600079028091790290917A02209177023091EA +:1017700078022817390724F0109278021092770225 +:10178000892BC1F4809171008D7F809371008091CD +:1017900090008F73809390001092730210927402E5 +:1017A00010927502109276021092720210927102DB +:1017B00010923B02DF91CF911F910F91FF90EF901C +:1017C000DF90CF9008951F920F920FB60F921124C1 +:1017D0004F925F926F927F928F929F92AF92BF9241 +:1017E000CF92DF92EF92FF922F933F934F935F93AD +:1017F0006F937F938F939F93AF93BF93CF93DF9319 +:10180000EF93FF9380913B02882309F49BC1C09121 +:101810007902D0917A021C161D060CF093C14090FB +:101820002B0250902C0260902D0270902E0220E02E +:1018300030E0A901C301B2010E94B32B18160CF0CD +:1018400065C0C130D10509F452C0809177029091F2 +:101850007802BE010E94852D7C01909378028093CE +:10186000770280903D0290903E02A0903F02B0909F +:10187000400220E030E040E85FE3C501B4010E948F +:10188000A42960933D0270933E0280933F0290939F +:101890004002F701EE0FFF1FEE0FFF1FEF5AFD4F43 +:1018A000A301920160817181828193810E940C2A3F +:1018B00020E030E040E05EE30E94B72B9B01AC01EA +:1018C000C501B4010E94B32B18168CF4C701019610 +:1018D000BE010E94852D909378028093770210922A +:1018E0003D0210923E0210923F0210924002E0919F +:1018F0007702F0917802EE0FFF1FEE0FFF1FEF5AF5 +:10190000FD4F6081718182819381D0C0C09073024C +:10191000D0907402E0907502F090760220E030E002 +:10192000A901C701B6010E94082A2197882309F45A +:10193000A2C0FE01EE0FFF1FEE0FFF1FEF5AFD4F7B +:1019400080809180A280B380A5019401C701B60177 +:101950000E94082A87FF31C0A501940160E070E071 +:101960008CED93EC0E940C2A20E030E040E451E43E +:101970000E940C2A20E030E040E05FE30E94B72B99 +:101980009B01AC0160E070E080E090E40E941A2CC2 +:101990009B01AC01C501B4010E94B72B9B01AC01B6 +:1019A000C701B6010E94082A87FF07C0A701960158 +:1019B00060E070E08CED93E439C0A5019401C701AB +:1019C000B6010E94B32B18160CF055C0A501940166 +:1019D00060E070E08CED93E40E940C2A20E030E09F +:1019E00040E451E40E940C2A20E030E040E05FE354 +:1019F0000E94B72B9B01AC0160E070E080E090E4B6 +:101A00000E941A2C9B01AC01C501B4010E94B72BA6 +:101A10009B01AC01C701B6010E94B32B18165CF5FF +:101A2000A701960160E070E08CED93EC0E940C2A17 +:101A300020E030E040E451E40E940C2A20E030E055 +:101A400040E05FE30E94B72B9B01AC0160E070E0D7 +:101A500080E090E40E941A2C9B01AC01C701B60102 +:101A60000E94B72B60937302709374028093750287 +:101A70009093760213C0FE01EE0FFF1FEE0FFF1FC3 +:101A8000EF5AFD4F80819181A281B38180937302CF +:101A900090937402A0937502B093760260917302E2 +:101AA00070917402809175029091760220912802C3 +:101AB000309129022F3F4FEF340731F02F5F3F4F16 +:101AC00030932902209328020E948B0F6B017C0126 +:101AD00020E034E244EF51E40E94082A87FF08C066 +:101AE00086EFC82E88E2D82E84EFE82E81E4F82E07 +:101AF00020E030E040E051E4C701B6010E94B72B7E +:101B00009B01AC0160E074E284E79BE40E940C2A34 +:101B10006B017C010E94792A709397006093960074 +:101B2000209106013091070140910801509109016F +:101B3000C701B6010E94B72B0E94792A70939900C1 +:101B40006093980080913C02882309F433C1C090CF +:101B50003702D0903802E0903902F0903A0220E04B +:101B600030E0A901C701B6010E94B32B1816D4F5C5 +:101B700080912802909129028F3F2FEF920729F040 +:101B800001969093290280932802C701B6010E9412 +:101B90008B0F20E030E040E051E40E94B72B9B0126 +:101BA000AC0160E074E284E79BE40E940C2A6B01C4 +:101BB0007C010E94792A709397006093960020918F +:101BC0000601309107014091080150910901C701B8 +:101BD000B6010E94B72B0E94792A709399006093F6 +:101BE000980008C0109297001092960010929900E9 +:101BF0001092980060913102709132026F5F7F4FB6 +:101C000070933202609331022091960030919700D8 +:101C100080E090E0232BF1F0C0919600D0919700E6 +:101C20000E94A52A6B017C01BE0180E090E00E9429 +:101C3000A52A9B01AC01609133027091340280911E +:101C40003502909136020E940C2A20E03FEF4FE7C8 +:101C500057E410C00E94A52A6B017C0120E030EE01 +:101C60004FEF54E460913302709134028091350259 +:101C7000909136020E94B72B9B01AC01C701B601BF +:101C80000E94B32B87FD96C080912F028F5F8093B7 +:101C90002F0290E0209105033091060382179307ED +:101CA000A0F080911003882319F010922F020DC02C +:101CB000809171008D7F80937100809190008F736F +:101CC0008093900010923C027DC080913002C091C0 +:101CD0002F02811128C0C0900A03D0900B03E0901E +:101CE0000C03F0900D0320E030E0A901C701B6011C +:101CF0000E94B32B1816BCF481E08093300210923E +:101D00003702109238021092390210923A02C092B1 +:101D10003302D0923402E0923502F0923602C15082 +:101D2000C0932F0243C010923002109229021092E9 +:101D30002802E0910703F091080348E0C49FE00DFA +:101D4000F11D112480819181A281B381809337029A +:101D500090933802A0933902B0933A0220E030E029 +:101D600040E85EE364817581868197810E94B72B8C +:101D70006B017C0180910A01682F70E080E090E0A7 +:101D80000E94A52A20E030E048EC52E40E940C2A90 +:101D90009B01AC01C701B6010E94B72B60933302CF +:101DA000709334028093350290933602109232027F +:101DB000109231028091090380FD04C010923C0210 +:101DC00010923B02FF91EF91DF91CF91BF91AF91C4 +:101DD0009F918F917F916F915F914F913F912F9143 +:101DE000FF90EF90DF90CF90BF90AF909F908F903B +:101DF0007F906F905F904F900F900FBE0F901F904D +:101E00001895CF92DF92EF92FF92CF93DF936B0101 +:101E10007C01EA0180912A02811102C00E94FC0A21 +:101E20008091090380FF46C08091790290917A02E7 +:101E300008970CF03FC0809171008D7F80937100F6 +:101E400080913C0281110E94160B81E080933B023D +:101E5000109229021092280220E030E0A901C70167 +:101E6000B6010E94B32B1816DCF480917902909190 +:101E70007A02FC01EE0FFF1FEE0FFF1FEF5AFD4F1E +:101E8000C082D182E282F382FC01EE0FFF1FEF5B82 +:101E9000FD4FD183C083019690937A02809379029B +:101EA00080917100826080937100809190008068C1 +:101EB00080939000DF91CF91FF90EF90DF90CF90D3 +:101EC00008958091090381700895809109038160CC +:101ED000809309030E94B7240C94A3048091090302 +:101EE0008E7F809309030C94B72480917B0290E04D +:101EF000019666E070E00E94852D80937B02089534 +:101F000080917B0290E0019766E070E00E94852D51 +:101F100080937B0208958F929F92AF92BF92CF924F +:101F2000DF92EF92FF920F931F93CF93DF936B019A +:101F30007C01C0912802D0912902BE0180E090E08E +:101F40000E94A52A4B015C01A701960160E070E0A8 +:101F50008CE594E40E940C2A9B01AC01C501B401FC +:101F60000E94B72B0E94792A20917B02233009F42A +:101F700073C028F4222351F02130E9F02CC1243021 +:101F800009F4A0C0253009F4E0C025C180E090E04C +:101F9000A0E0BFE38093060190930701A09308019E +:101FA000B093090110922B0210922C0210922D0274 +:101FB00010922E0210C110922B0210922C0210923D +:101FC0002D0210922E026431710540F46A307105C1 +:101FD00060F520E030E040E85EE32BC0693C71052D +:101FE00008F0AAC080E090E00E94A52A20E030E03E +:101FF00040EA51E40E94A32920E030E044E353E4A6 +:102000000E940C2A9B01AC010E94B72B20E030E01B +:1020100040E05EE30E94B72B9B01AC0160E070E002 +:1020200080E09EE30E94A32944C020E030E040E02D +:102030005FE3C701B6010E94B72B6B017C0180E012 +:1020400090E0A0E0BEE38093060190930701A09387 +:102050000801B0930901BFC010922B0210922C020C +:1020600010922D0210922E024AE0469F9001479F47 +:10207000300D1124C90168EB7BE00E94712DBC0179 +:102080006C5D754077FF03C0719561957109882774 +:1020900077FD8095982F0E94A72A2EE333EC4EE21D +:1020A00059E30E94B72B20E030E040EC5EE30E9451 +:1020B000A42960930601709307018093080190930F +:1020C000090189C010922B0210922C0210922D024D +:1020D00010922E02CE0183709927892BE1F0BE0168 +:1020E0006170772780E090E00E94A52A20E030E030 +:1020F00040E05EE30E94B72B20E030E040E45FE385 +:102100000E94A4296093060170930701809308013F +:10211000909309010CC080E090E0A0E0BFE38093C1 +:10212000060190930701A0930801B0930901C770BD +:10213000DD27CD2B09F04FC0109206011092070148 +:10214000109208011092090146C010922B021092C1 +:102150002C0210922D0210922E0200E010E020E0DE +:102160003FE3009306011093070120930801309389 +:1021700009016739710578F180E090E00E94A52A95 +:1021800020E030E047E153E40E94A32920E030E062 +:102190004AE754E40E940C2A20E030E048E452E48C +:1021A0000E94B72B20E030E040EA51E40E94E92A87 +:1021B0000E94742A660F771F660F771FFB01EE5A85 +:1021C000FE4F2081318142815381C701B6010E94B7 +:1021D000B72B6B017C01C701B601DF91CF911F9135 +:1021E0000F91FF90EF90DF90CF90BF90AF909F90B6 +:1021F0008F90089580918C020895CF93DF9300D043 +:102200001F92CDB7DEB79C0180911503843019F57C +:1022100093E099833B832A839093E9008FEF909119 +:10222000E800815095FD06C095ED9A95F1F7000004 +:102230008111F5CF8091E80085FF0DC040E050E0AE +:1022400063E070E0CE0101960E945A138091E8008D +:102250008E778093E8000F900F900F90DF91CF91D1 +:102260000895CF93DF9300D01F92CDB7DEB72091B2 +:102270001503243021F522E029839B838A8383E0A0 +:102280008093E9008FEF9091E800815095FD06C0A2 +:1022900095ED9A95F1F700008111F5CF8091E80056 +:1022A00085FF0DC040E050E063E070E0CE01019694 +:1022B0000E945A138091E8008E778093E8000F9077 +:1022C0000F900F90DF91CF91089520911503243046 +:1022D000F1F422E02093E9002FEF3091E800215043 +:1022E00035FD06C035ED3A95F1F700002111F5CF27 +:1022F0002091E80025FF0BC040E050E065E070E071 +:102300000E945A138091E8008E778093E800089528 +:10231000CF93DF93EC0190911503943009F046C000 +:10232000809115018823D9F0809116018823B9F096 +:102330009093E9008FEF9091E800815095FD06C0E1 +:1023400095E19A95F1F700008111F5CF8091E800B1 +:1023500085FF2CC040E050E060E170E017C081E0F4 +:102360008093E9008FEF9091E800815095FD06C0C1 +:1023700095ED9A95F1F700008111F5CF8091E80075 +:1023800085FF14C040E050E068E070E0CE010E949C +:102390005A138091E8008E778093E80080E1FE0177 +:1023A000ACE7B2E001900D928A95E1F7DF91CF9111 +:1023B000089580911403811109C00E94EF140E94B6 +:1023C0004C158091E20084608093E20008951092A1 +:1023D00014030895089508950C94922342E061EC4B +:1023E00081E00E94691442E061EC82E00E9469147D +:1023F00042E061EC83E00E94691442E161EC84E018 +:102400000C94691480911703833009F455C030F49B +:10241000813071F0823009F48EC008958A3009F459 +:102420007AC08B3009F460C0893009F09CC020C0AC +:1024300080911603813A09F096C08091E800877F69 +:102440008093E80080911A0390911B03892B21F45B +:1024500060E18CE792E003C060E080E090E070E033 +:102460000E94A5138091E8008B778093E80008957F +:1024700080911603813209F076C080911A03909101 +:102480001B03009719F0039709F06DC08091E800D5 +:10249000877F8093E8008091E80082FD05C08091ED +:1024A00015038111F8CF5FC08091F10080938C02F9 +:1024B0008091E8008B7753C080911603813A09F030 +:1024C00052C080911A0390911B03892B09F04BC0D5 +:1024D0008091E800877F8093E8008091E80080FF8A +:1024E000FCCF8091150136C0809116038132D9F559 +:1024F00080911A0390911B03892BA9F58091E80024 +:10250000877F8093E8000E949E1480911803809337 +:1025100015010C94D41C80911603813221F5809111 +:10252000E800877F8093E8000E949E148091190341 +:1025300080938D02089580911603813AA1F48091D1 +:10254000E800877F8093E8008091E80080FFFCCF5F +:1025500080918D028093F1008091E8008E778093C6 +:10256000E8000C949E14089584B7877F84BF88E1A7 +:102570000FB6F89480936000109260000FBE80E860 +:1025800080936100109261000E9441180E94EF1434 +:102590000E944C158091E20084608093E200789460 +:1025A0000E94D2170E9443188BE091E00E94ED1721 +:1025B00080911503853069F40E94542380911303A0 +:1025C0008823B1F30E948123882391F30E9444134E +:1025D000EFCF0E944B18ECCF292F33272330310542 +:1025E000C9F064F42130310581F02230310509F061 +:1025F00043C08DE690E024ED34E042C02132310545 +:10260000F1F02232310541F137C082E190E021E45E +:1026100035E036C099278130910541F0823091052F +:1026200041F0892B49F5E0EDF4E005C0E2EAF4E081 +:1026300002C0E8E7F4E0849190E09F0121C064309B +:10264000D8F4E62FF0E0EE0FFF1FE255FE4F208199 +:10265000318189E090E014C0643070F470E0FB01D7 +:10266000EE0FFF1FEA55FE4F20813181FB01EE5531 +:10267000FE4F808190E004C080E090E020E030E0F8 +:10268000FA0131832083089580E189BD82E189BD0B +:1026900009B400FEFDCF8091D8008F7D8093D800D3 +:1026A0008091E00082608093E0008091E00081FDF5 +:1026B000FCCF0895CF92DF92EF92FF920F931F937A +:1026C000CF93DF93EC018B016A010E94BD1481114D +:1026D00033C0C114D10439F0F60180819181081B07 +:1026E000190BC80FD91FE12CF12C0115110519F197 +:1026F0008091E80085FD16C08091E8008E77809378 +:10270000E800C114D10449F0F60180819181E80EFE +:10271000F91EF182E08285E00FC00E94BD1488237B +:1027200021F30AC089918093F10001501109FFEF54 +:10273000EF1AFF0ADACF80E0DF91CF911F910F915E +:10274000FF90EF90DF90CF90089520911C0330917F +:102750001D032617370748F06115710539F42091DC +:10276000E8002E772093E80001C0B90140E0611530 +:102770007105A9F120911503222309F443C02530E6 +:1027800009F442C02091E80023FD40C02091E800F8 +:1027900022FD32C02091E80020FFE9CF4091F300F4 +:1027A0002091F20030E0342BFC01CF01611571055E +:1027B00059F02830310540F481918093F100615047 +:1027C00071092F5F3F4FF1CF41E02830310509F00B +:1027D00040E02091E8002E772093E800C8CF411117 +:1027E000C9CF0AC080911503882361F0853061F05C +:1027F0008091E80083FD0AC08091E80082FFF2CF5B +:1028000080E0089582E0089583E0089581E00895CE +:1028100020911C0330911D032617370748F06115DE +:10282000710539F42091E8002E772093E80001C06B +:10283000B901FC0120E06115710591F1809115034A +:10284000882309F440C0853009F43FC08091E80036 +:1028500083FD3DC08091E80082FD2FC08091E8009B +:1028600080FFE9CF2091F3008091F20090E0922B5D +:102870006115710559F08830910540F42491209339 +:10288000F1003196615071090196F2CF21E008976D +:1028900009F020E08091E8008E778093E800CBCFAC +:1028A0002111CCCF0AC080911503882361F08530B7 +:1028B00061F08091E80083FD0AC08091E80082FF0A +:1028C000F2CF80E0089582E0089583E0089581E0EA +:1028D0000895982F973058F59093E900981739F09C +:1028E0007091EC002091ED005091F00003C0242F76 +:1028F000762F50E021FF19C03091EB003E7F3093DE +:10290000EB003091ED003D7F3093ED003091EB0016 +:1029100031603093EB007093EC002093ED00509306 +:10292000F0002091EE0027FF07C09F5FD3CF8F708C +:102930008093E90081E0089580E008958091160376 +:1029400087FF11C08091E80082FD05C080911503CA +:102950008111F8CF11C08091E8008B770BC0809176 +:102960001503882349F08091E80080FFF8CF80911B +:10297000E8008E778093E80008952091E40030917C +:10298000E50095E64091EC00842F817040FF22C065 +:102990008091E80080FD1CC080911503882391F090 +:1029A000853091F08091EB0085FD10C04091E400EE +:1029B0005091E5004217530729F39A01915011F7FE +:1029C00084E0089582E0089583E0089581E0089509 +:1029D00080E008954091E80042FFDECF08950E9414 +:1029E0005D150E946515E0EEF0E0808181608083D6 +:1029F000E8EDF0E080818F77808319BCA7EDB0E02F +:102A00008C918E7F8C9380818F7E808310921403B3 +:102A100008950F931F93CF93DF930E945D150E943B +:102A20006515C8EDD0E088818F77888388818068BC +:102A3000888388818F7D888319BC1092150310923A +:102A40001103109213031092120300EE10E0F8012C +:102A500080818B7F808388818160888342E060E011 +:102A600080E00E946914E1EEF0E080818E7F808337 +:102A7000E2EEF0E0808181608083808188608083E5 +:102A8000F80180818E7F8083888180618883DF91D7 +:102A9000CF911F910F910895E8EDF0E080818F7E36 +:102AA0008083E7EDF0E080818160808384E082BFF5 +:102AB00081E0809314030C940915E8EDF0E0808127 +:102AC0008E7F80831092E20008951092DA001092B7 +:102AD000E10008951F920F920FB60F9211242F93C9 +:102AE0003F934F935F936F937F938F939F93AF9396 +:102AF000BF93EF93FF938091E10082FF0BC0809121 +:102B0000E20082FF07C08091E1008B7F8093E100AB +:102B10000E94D1178091DA0080FF1FC08091D800F9 +:102B200080FF1BC08091DA008E7F8093DA00809155 +:102B3000D90080FF0DC080E189BD82E189BD09B463 +:102B400000FEFDCF81E0809315030E94D91105C0DE +:102B500019BC109215030E94E7118091E10080FFDB +:102B600019C08091E20080FF15C08091E2008E7F45 +:102B70008093E2008091E20080618093E200809186 +:102B8000D80080628093D80019BC85E0809315033B +:102B90000E94EB118091E10084FF30C08091E2003F +:102BA00084FF2CC080E189BD82E189BD09B400FEAB +:102BB000FDCF8091D8008F7D8093D8008091E10077 +:102BC0008F7E8093E1008091E2008F7E8093E2000F +:102BD0008091E20081608093E2008091110388235C +:102BE00011F084E007C08091E30087FD02C081E01E +:102BF00001C083E0809315030E94EC118091E100F5 +:102C000083FF29C08091E20083FF25C08091E1000D +:102C1000877F8093E10082E0809315031092110377 +:102C20008091E1008E7F8093E1008091E2008E7FB1 +:102C30008093E2008091E20080618093E20042E0B4 +:102C400060E080E00E9469148091F00088608093C9 +:102C5000F0000E94EA11FF91EF91BF91AF919F9117 +:102C60008F917F916F915F914F913F912F910F9035 +:102C70000FBE0F901F9018951F920F920FB60F92D4 +:102C800011242F933F934F935F936F937F938F9371 +:102C90009F93AF93BF93CF93DF93EF93FF93C09135 +:102CA000E900CF708091EC00D82FD17080FDD0E882 +:102CB0001092E9008091F000877F8093F000789473 +:102CC0000E9480161092E9008091F0008860809345 +:102CD000F000CD2BCF70C093E900FF91EF91DF9111 +:102CE000CF91BF91AF919F918F917F916F915F91A4 +:102CF0004F913F912F910F900FBE0F901F901895FD +:102D00001F93CF93DF93CDB7DEB7AA970FB6F89492 +:102D1000DEBF0FBECDBFE6E1F3E088E08E0F9091FD +:102D2000F10091938E13FBCF0E9402128091E80074 +:102D300083FF1FC18091160390911703492F50E024 +:102D40004A30510508F015C1FA01EA5AFF4F0C94B8 +:102D5000992D803881F0823809F00BC180911A03D7 +:102D60008F708093E9008091EB0085FB882780F9C4 +:102D70001092E90006C08091120390911303911103 +:102D800082609091E800977F9093E8008093F10033 +:102D90001092F100C8C0282F2D7F09F0EAC08823C7 +:102DA00019F0823061F0E5C080911803813009F09C +:102DB000E0C0933009F080E0809313032BC0809132 +:102DC0001803811127C080911A038F7009F4D1C0B4 +:102DD0008093E9002091EB0020FF1CC0933021F488 +:102DE0008091EB00806214C09091EB009061909311 +:102DF000EB0021E030E0A90102C0440F551F8A9585 +:102E0000E2F74093EA001092EA008091EB008860BC +:102E10008093EB001092E9008091E800877F86C0E4 +:102E20008111A7C0109118031F778091E30080786B +:102E3000812B8093E3008091E800877F8093E800F6 +:102E40000E949E148091E80080FFFCCF8091E300F7 +:102E500080688093E300111102C082E001C083E02A +:102E60008093150386C08058823008F082C080911C +:102E70001803909119038C3D53E0950779F583E091 +:102E80008A838AE289834FB7F894DE01139620E0A3 +:102E90003EE051E2E32FF0E050935700E49120FF31 +:102EA00003C0E295EF703F5FEF708E2F90E0EA3045 +:102EB00010F0C79601C0C0968D939D932F5F24316B +:102EC00049F74FBF8091E800877F8093E8006AE26E +:102ED00070E0CE0101960E94A51314C0AE014F5FB1 +:102EE0005F4F60911A030E94EC12BC01009709F435 +:102EF00040C09091E800977F9093E80089819A8183 +:102F00000E9408148091E8008B778093E80031C01C +:102F1000803879F58091E800877F8093E800809180 +:102F200011038093F1008091E8008E778093E80090 +:102F30000E949E141EC081111CC0909118039230F3 +:102F4000C0F48091E800877F8093E800909311039C +:102F50000E949E1480911103811106C08091E300AC +:102F600087FD02C081E001C084E0809315030E94C8 +:102F7000EE118091E80083FF0AC08091E800877F0E +:102F80008093E8008091EB0080628093EB00AA962A +:102F90000FB6F894DEBF0FBECDBFDF91CF911F916A +:102FA00008950895CF93809115038823A1F0C091CF +:102FB000E900CF709091EC00892F817090FD80E83E +:102FC000C82B1092E9008091E80083FD0E948016D2 +:102FD000CF70C093E900CF910895909393028093AE +:102FE00092020895E0919202F0919302309721F0BD +:102FF0000190F081E02D099480E00895E091920223 +:10300000F0919302309721F00280F381E02D099432 +:103010000895E0919202F0919302309721F004809C +:10302000F581E02D0994089520919002309191024C +:103030008217930771F09093910280939002E09130 +:103040009202F0919302309721F00680F781E02DF3 +:103050000994089520918E0230918F028217930770 +:1030600071F090938F0280938E02E0919202F09122 +:103070009302309721F00084F185E02D09940895A2 +:1030800008950C9440180E94C6230E941C0A0E94B6 +:103090004C240C9408295F926F927F928F929F929A +:1030A000AF92BF92CF92DF92EF92FF920F931F9356 +:1030B000CF93DF9300D000D01F92CDB7DEB70E9430 +:1030C000610A9DE9C92E92E0D92E03E010E0AA24FE +:1030D000A394B12C502E802F0E94DC0A4C01F601E3 +:1030E000729062906F016826792661147104A1F4D0 +:1030F0000150110978F78FEF89838A831B820E9420 +:10310000CF238160782F9D838C8349815A816B8185 +:103110008D810E94FB1838C08091F20281FD0E94CF +:10312000E50A2BE030E07501022E02C0EE0CFF1C18 +:103130000A94E2F7C70186219721892B09F1298397 +:103140005A828E209F2091E0892809F490E09B8389 +:103150000E94CF238160782F9D838C8349815A817F +:103160006B818D810E94FB18000F111FF801EB5637 +:10317000FD4F80819181E826F926F182E08204C02A +:103180002150310980F6B4CF0E9436261091940266 +:103190000E94F2171817D1F00E94F2178093940240 +:1031A0000F900F900F900F900F90DF91CF911F9184 +:1031B0000F91FF90EF90DF90CF90BF90AF909F90D6 +:1031C0008F907F906F905F900C94C8090F900F9034 +:1031D0000F900F900F90DF91CF911F910F91FF9063 +:1031E000EF90DF90CF90BF90AF909F908F907F90A7 +:1031F0006F905F900895CF93DF93CDB7DEB72B9795 +:103200000FB6F894DEBF0FBECDBF4F8358876987D6 +:103210007A878B87DE01119686E0FD0111928A95EF +:10322000E9F785E0FE01379601900D928A95E1F766 +:1032300049815A816B817C818D819E810E94721FA0 +:103240002B960FB6F894DEBF0FBECDBFDF91CF91A6 +:103250000895CF93882309F4C2C0C82F823859F447 +:103260000E94F21781FDBBC089E30E944C220E949C +:10327000192389E30CC0833879F40E94F21780FD8A +:10328000AEC083E50E944C220E94192383E50E9470 +:103290008E22CF910C941923843859F40E94F2178E +:1032A00082FD9DC087E40E944C220E94192387E47E +:1032B000EECF8CEF8C0F813A48F48C2F0E9471284E +:1032C00081118DC08C2F0E944C22E3CF80E28C0FA5 +:1032D000883048F4C77081E001C0880FCA95EAF7CA +:1032E0000E94D222D6CF8BE58C0F833078F4C53A7A +:1032F00029F0C63A31F083E890E005C081E890E01B +:1033000002C082E890E0CF910C94141888E58C0FED +:10331000833108F064C0C83A39F1C93A41F1CA3A78 +:1033200049F1CB3A51F1CC3A59F1CD3A61F1C03B78 +:1033300069F1CE3A71F1CF3A79F1C13B81F1C23BEB +:1033400089F1C33B91F1C43B99F1C53BA1F1C63B67 +:10335000A9F1C73BB1F1C83BB9F1C93BC1F1CA3BC7 +:10336000C9F180E090E038C082EE90E035C089EE8F +:1033700090E032C08AEE90E02FC085EB90E02CC048 +:1033800086EB90E029C087EB90E026C08CEC90E0C3 +:1033900023C08DEC90E020C083E891E01DC08AE856 +:1033A00091E01AC082E991E017C084E991E014C06D +:1033B00081E292E011C083E292E00EC084E292E0EA +:1033C0000BC085E292E008C086E292E005C087E289 +:1033D00092E002C08AE292E0CF910C942A18CF9139 +:1033E0000895882309F44BC0823859F40E94F217DB +:1033F00081FF45C089E30E944C220E94192389E382 +:103400000CC0833871F40E94F21780FF38C083E546 +:103410000E944C220E94192383E50E948E220C9464 +:103420001923843859F40E94F21782FF28C087E4D8 +:103430000E944C220E94192387E4EFCF9CEF980F43 +:10344000913A58F390E2980F983050F4877091E0D9 +:1034500001C0990F8A95EAF7892F0E94D822DFCF01 +:103460009BE5980F933020F480E090E00C941418C2 +:10347000885A833120F480E090E00C942A18089553 +:10348000882321F00E94D2220C94192308958823C6 +:1034900021F00E94D8220C94192308957F928F92D4 +:1034A0009F92AF92BF92CF92DF92EF92FF920F93D3 +:1034B0001F93CF93DF931F92CDB7DEB77C01C62E4B +:1034C000772EFC01058102950F70128111110E9467 +:1034D000EF220E944522882379F0112369F080E2CF +:1034E0008C0D883048F082E00E942E220E944522F6 +:1034F00091E0D82ED92601C0D12CE72DE295EF70AE +:10350000F0E0E05AFF4F0C94992D872D807F072D16 +:103510000F70882311F00295007F112389F000239A +:1035200009F499C180E28C0D883020F4802F0E942C +:10353000D22203C0802F0E94E2220E9419238BC155 +:103540008C2D0E94F119002309F4C3C180E28C0D77 +:10355000883020F4802F0E94D82203C0802F0E9440 +:10356000E8220E941923B5C1872D807F972D9F7077 +:10357000803211F4892F03C0892F8295807FCC205F +:1035800021F0F1E0CF16A1F01DC0112339F0002386 +:1035900019F1013009F50E9402239BC1002319F0A3 +:1035A000013009F496C189830E940523898110C1E5 +:1035B000112321F0063008F08CC10EC0053008F050 +:1035C00088C106C1112359F0002331F0F70195811C +:1035D00090FF41C19F7095830E94401A7AC10023D9 +:1035E00009F4F6C03EC1872D86958695837090E0DC +:1035F000009719F0019761F06CC1112321F08C2D17 +:10360000972D937002C080E090E00E94141861C171 +:10361000112321F08C2D972D937002C080E090E053 +:103620000E942A1856C18C2D112319F00E943E25A4 +:1036300002C00E94A6250E942B264BC1872D8370B5 +:1036400009F052C0111145C18C2D82958695877065 +:10365000880F880F9C2D9F70892E912CA12CB12C46 +:10366000082E04C0880C991CAA1CBB1C0A94D2F713 +:10367000C4FE14C00FE010E020E030E0B901A80162 +:1036800004C0440F551F661F771F8A95D2F7CB01E0 +:10369000BA01609570958095909503C060E070E0E8 +:1036A000CB01272D26952695237030E02230310559 +:1036B00069F02330310589F0682979298A299B2905 +:1036C0002130310571F00E94BA2003C1682979299F +:1036D0008A299B290E94D620FCC00E94BA20C501DD +:1036E000B4010E949E20F5C0112319F0872D81702E +:1036F00001C08695882309F4ECC08C2D82958695AF +:103700008770880F880F9C2D9F70892E912CA12C7B +:10371000B12C082E04C0880C991CAA1CBB1C0A944E +:10372000D2F7C4FE14C00FE010E020E030E0B90191 +:10373000A80104C0440F551F661F771F8A95D2F752 +:10374000CB01BA01609570958095909503C060E0BB +:1037500070E0CB01272D269526952370422F50E04F +:103760004230510569F04330510589F068297929C3 +:103770008A299B294130510571F00E949421A9C0EA +:10378000682979298A299B290E94B021A2C00E9418 +:103790009421C501B4010E9478219BC08C2D90E03A +:1037A000FC01E05EF109E531F10508F050C0E05997 +:1037B000FF4F0C94992D0C2D0F70872D8F711123B5 +:1037C00021F00E941121802F07CF0E943221802FEB +:1037D0000E94471A7EC0112341F0053008F079C0DD +:1037E000872D8F710E94572174C0063008F071C078 +:1037F000F7CF112339F0872D8F710E94112169C0F5 +:103800001123C9F3872D8F710E94322162C01123C9 +:1038100029F0872D8F710E94FC205BC00E94F2204E +:1038200058C0112351F0172D1F71812F0E941121B3 +:1038300063E0812F0E9425224CC081E00E942E224D +:10384000023008F446C082E00E942E2242C01123BA +:1038500031F0002381F28C2D0E9429193AC00023F7 +:1038600089F28C2D0E94F11934C0472D4F706C2DB8 +:10387000C7010E941C040E9416202BC0111129C0F0 +:10388000472D4F7050E042305105B9F04CF44115CE +:10389000510581F041305105E1F40E94302919C0F1 +:1038A0004330510569F04430510599F48C2D0E9444 +:1038B00082290FC00E9419290CC00E944C2909C0FE +:1038C0000E945F2906C0472D4F706C2DC7010E94D2 +:1038D0003809DD20F9F00E94212280FD1BC0F7018C +:1038E00012820E941B220E941121C7010E94991C72 +:1038F0000E941B220F90DF91CF911F910F91FF909B +:10390000EF90DF90CF90BF90AF909F908F907F907F +:103910000C9432210F90DF91CF911F910F91FF9066 +:10392000EF90DF90CF90BF90AF909F908F907F905F +:1039300008950F931F93CF93DF93EC0188819981B2 +:103940002B813C81232BB9F09F3F11F48F3F99F0DD +:10395000CE010E94A504882371F0688179818A8153 +:103960000E9417228C010E94CC210E949320B80152 +:10397000CE010E944E1ADF91CF911F910F910895B1 +:103980000E94EF220E94FF220E94C4220E9419235B +:103990000E94DC260E942B2680E090E00E941418F2 +:1039A00080E090E00C942A180E94DF220C94C01C46 +:1039B0000E940C22292F22952F7030E02C303105E7 +:1039C0004CF42A3031056CF4225031092230310593 +:1039D000A8F407C02C30310569F02F30310551F0C3 +:1039E0000DC0803F69F018F4803E40F409C0843F68 +:1039F00029F406C093FB882780F9089580E0089594 +:103A000081E00895CF93DF9300D000D01F92CDB70F +:103A1000DEB70F900F900F900F900F90DF91CF9126 +:103A20000895CF93DF9300D000D000D0CDB7DEB79C +:103A300026960FB6F894DEBF0FBECDBFDF91CF91B3 +:103A400008951F93CF93DF93C0919D0216E080915C +:103A50009E02C81799F0D0E01C9FF0011D9FF00D49 +:103A60001124E156FD4F408151816281738184812F +:103A700095810E94111D2196C770E9CFDF91CF91EA +:103A80001F9108954091CF025091D0026091D102D0 +:103A90007091D2028091D3029091D4020C94111DA6 +:103AA0008091D40282958F7009F054C08091D10228 +:103AB000882309F44FC080919D02A0919E026091DD +:103AC000CF027091D0024091D2025091D302B6E061 +:103AD0008A1709F43FC090E041155105C1F17F3FBD +:103AE00011F46F3FA1F1B89FF001B99FF00D1124BF +:103AF000E156FD4F218172132AC02081621327C035 +:103B00002281211124C0238134812417350710F428 +:103B100021503109241B350B283C3105C0F420917C +:103B2000D4022F7020612093D40226E0289FF00158 +:103B3000299FF00D1124EC55FD4F80818F7080611D +:103B400080838FEC92E00E94991C0C94211D0196B9 +:103B50008770BECF0895CF92DF92EF92FF920F93BE +:103B60001F93CF93DF93CDB7DEB762970FB6F8946C +:103B7000DEBF0FBECDBF8C0185E0F801DE011D96D2 +:103B800001900D928A95E1F7D8014C9111965C91C4 +:103B9000119712966C9112971396CD90DC90149712 +:103BA0003091CF027091D0028091D2029091D302D5 +:103BB000009709F46BC17F3F19F43F3F09F466C1D8 +:103BC000E090D102EE2009F4C0C02091D402C816C2 +:103BD000D90628F0F601E81BF90BCF0104C0809547 +:103BE00090958C0D9D1DFF24F394883C910578F0F1 +:103BF000F12C207F09F0C6C07C2DD98AC88A89891A +:103C00000E94021D8FEC92E00E94991CB1C0822F8D +:103C1000807F09F046C0751314C0341312C06111BF +:103C200010C02F7020612093D4020E94421D8FEC9F +:103C300092E00E94991C8091D402D80115968C9331 +:103C40002EC0CD2819F15F3F11F44F3FF9F0F62E49 +:103C500061111CC080919D0220919E0236E0821766 +:103C600009F45AC090E0389FF001399FF00D1124FB +:103C7000E156FD4F7181571306C07081471303C091 +:103C80007281711103C001968770E9CFF62E662309 +:103C900009F418C18091D40281608093D402F12C80 +:103CA00011C1751308C0341306C0611104C080919E +:103CB000D402D801C3C04D875E878D859E856A8BEF +:103CC0000E94D81C6A898823E1F16623D1F12091F2 +:103CD000D402822F82958F7090E0029774F08091C9 +:103CE000CF029091D00298878F831986DB86CA868F +:103CF0002C87CE0107960E94991C86E0F801AFEC54 +:103D0000B2E001900D928A95E1F70E94501D0E9449 +:103D1000421DFF24F394D6C04D875E878D859E8516 +:103D20000E940C22292F22952F7030E0223031057D +:103D30000CF0BCC09F7009F0B6C0805E883008F4FB +:103D4000C1C0C8010E94991CE4CFC816D90608F466 +:103D500053C0F601E81BF90BCF01883C910508F42C +:103D600050C0F12C7C2DD98AC88A89890E94021DF5 +:103D7000EFECF2E086E0DF011D928A95E9F70E9400 +:103D8000421DA0C0751314C0341312C0611110C0BD +:103D90008091D402F8018583C8010E94991C86E0B5 +:103DA000EFECF2E0DF011D928A95E9F7FE2C8AC064 +:103DB0004D875E878D859E856A8B0E94D81C6A8997 +:103DC000882309F4BECF662309F4BBCF2091D40227 +:103DD000822F82958F7090E002970CF48ECF8091A5 +:103DE000CF029091D0029A8389831B82DD82CC829C +:103DF0002E83CE0101967FCF809590958C0D9D1DD1 +:103E0000ACCFF62E662309F49CCF75132EC0341365 +:103E10002CC02091D40220FD1FC0822F82958F706C +:103E2000D9F0D80115962C9315978F3049F08F5FF4 +:103E3000982F9295907F822F8F70892B15968C9357 +:103E4000C8010E94991C86E0F801AFECB2E0019035 +:103E50000D928A95E1F793CF86E0F801AFECB2E0DE +:103E600001900D928A95E1F72DC04D875E878D8573 +:103E70009E850E94D81C811140CF8091D402816020 +:103E80008093D402C8010E94991C1CC0662309F4C7 +:103E900058CF4D875E878D859E850E94D81C8823CC +:103EA00009F44FCF2ACF811148CF0CC024303105FF +:103EB0000CF047CF9F7009F440CFF8019581907FB7 +:103EC00009F03BCF8F2D62960FB6F894DEBF0FBE80 +:103ED000CDBFDF91CF911F910F91FF90EF90DF90B9 +:103EE000CF9008951F93CF93DF93CDB7DEB72C9774 +:103EF0000FB6F894DEBF0FBECDBF4F8358876987DA +:103F00007A878B879C87CE0107960E94AB1D8823FA +:103F100069F08F8198852A853B85232BF1F19F3F9E +:103F200009F063C08F3F09F060C037C086E0FE0132 +:103F30003796DE01119601900D928A95E1F76F8117 +:103F40007885EA85FB85309741F17F3F11F46F3F1B +:103F500021F120919E0230E0C901019687709927D6 +:103F600040919D0250E08417950709F447C069838A +:103F70007A83FD83EC8396E0929FD001939FB00DEE +:103F80001124A156BD4FFE01319601900D929A95D4 +:103F9000E1F780939E020E94211D16E080919D0210 +:103FA00090919E028917C1F1189FC001112481567A +:103FB0009D4F0E94AB1D882379F1E0919D021E9FC9 +:103FC000F0011124E156FD4F4081518162817381DE +:103FD000848195810E94111D80919D0290E001963F +:103FE0008770992780939D02D9CF4F815885698525 +:103FF0007A858B859C850E94111DCFCF0E94D41C91 +:1040000010929E0210929D02EFECF2E086E0DF013A +:104010001D928A95E9F7C1CF2C960FB6F894DEBFB2 +:104020000FBECDBFDF91CF911F910895EF92FF9208 +:104030000F931F93CF93DF938C01009709F46CC00B +:10404000F12CEE24E394E8012196F8018491843761 +:1040500040F4843008F051C0813081F0823019F191 +:104060005BC0853709F444C0A8F19CE7980F9037EE +:1040700008F052C08F770E94F11941C00E5F1F4FA8 +:10408000FE01C49180E28C0F883048F4C7708E2DF9 +:1040900001C0880FCA95EAF70E94F22214C08C2F43 +:1040A0000E9429192DC00E5F1F4FFE01C49180E2AE +:1040B0008C0F883058F4C7708E2D01C0880FCA95B8 +:1040C000EAF70E94F8220E9419231AC08C2F0E943E +:1040D000F11916C00E5F1F4FFE01C491CC2381F071 +:1040E0008FE99FE00197F1F700C00000C150F6CFC3 +:1040F0000E5F1F4FFE01F49003C00E9429198E012C +:104100008F2D882309F49FCFEFE9FFE03197F1F776 +:1041100000C000008150F5CFDF91CF911F910F912A +:10412000FF90EF90089508956093D9027093DA029A +:104130008093DB029093DC020C94C01C0F931F93BE +:104140000091D9021091DA022091DB023091DC0259 +:10415000DC01CB01802B912BA22BB32B8093D902B6 +:104160009093DA02A093DB02B093DC021F910F91CF +:104170000C94C01C0F931F930091D9021091DA0286 +:104180002091DB023091DC02DC01CB018023912302 +:10419000A223B3238093D9029093DA02A093DB0287 +:1041A000B093DC021F910F910C94C01C0F931F93CE +:1041B0000091D9021091DA022091DB023091DC02E9 +:1041C000DC01CB0180279127A227B3278093D90256 +:1041D0009093DA02A093DB02B093DC021F910F915F +:1041E0000C94C01C1092D5021092D6021092D702E5 +:1041F0001092D8020C94C01C41E050E060E070E0E6 +:1042000004C0440F551F661F771F8A95D2F740934D +:10421000D5025093D6026093D7027093D8020C94C3 +:10422000C01C41E050E060E070E004C0440F551F46 +:10423000661F771F8A95D2F78091D5029091D6029A +:10424000A091D702B091D802482B592B6A2B7B2B17 +:104250004093D5025093D6026093D7027093D80250 +:104260000C94C01C41E050E060E070E004C0440FDA +:10427000551F661F771F8A95D2F740955095609518 +:1042800070958091D5029091D602A091D702B091FD +:10429000D802482359236A237B234093D5025093A5 +:1042A000D6026093D7027093D8020C94C01C41E0F0 +:1042B00050E060E070E004C0440F551F661F771F98 +:1042C0008A95D2F78091D5029091D602A091D7021B +:1042D000B091D802482759276A277B274093D502F7 +:1042E0005093D6026093D7027093D8020C94C01CEE +:1042F0000F931F930091D5021091D6022091D702FF +:104300003091D802DC01CB01802B912BA22BB32B57 +:104310008093D5029093D602A093D702B093D8028F +:104320001F910F910C94C01C0F931F930091D50205 +:104330001091D6022091D7023091D802DC01CB0136 +:1043400080239123A223B3238093D5029093D60296 +:10435000A093D702B093D8021F910F910C94C01C68 +:104360000F931F930091D5021091D6022091D7028E +:104370003091D802DC01CB0180279127A227B327F7 +:104380008093D5029093D602A093D702B093D8021F +:104390001F910F910C94C01C0895CF92DF92EF9261 +:1043A000FF920F931F93CF93DF938C01C090D9029C +:1043B000D090DA02E090DB02F090DC028091D5022E +:1043C0009091D602A091D702B091D802C82AD92ADA +:1043D000EA2AFB2ACFE1D0E0D701C6010C2E04C0A7 +:1043E000B695A795979587950A94D2F780FF06C052 +:1043F000B8018C2F0E949707019721F4219760F74D +:1044000080E001C08C2FDF91CF911F910F91FF9021 +:10441000EF90DF90CF900895CF93DF93EC010E944F +:10442000CD21BE010E949707DF91CF910895CB0166 +:104430000E940C2208958091DD02859585958595D1 +:1044400008958091DD028770089598E0899F90011A +:104450001124262B2093DD020C9411212091DD02E2 +:10446000809582238093DD02982F977069F430E065 +:10447000482F552747FD50952417350729F0859576 +:10448000859585950C94322108959091DD02977061 +:1044900081E009F480E0089590911501992321F0BD +:1044A00090911601911109C02091170130911801C6 +:1044B000F90132969FEF40E01FC0982F9695969590 +:1044C00096959F3050F5E0911701F0911801E90F92 +:1044D000F11D877021E030E0A90102C0440F551F93 +:1044E0008A95E2F7CA019181892B818308959F3FC4 +:1044F00039F04F5F4E3041F051915813F8CF0DC055 +:104500005111F7CF942FF5CF9F3F39F0F901E90F03 +:10451000F11D97FDFA9582830895089590911501F4 +:10452000992321F090911601911109C02091170152 +:1045300030911801F9013296205F3F4F1FC0982F2C +:104540009695969596959F30F0F4E0911701F0912D +:104550001801E90FF11D877021E030E0A90102C0C8 +:10456000440F551F8A95E2F7CA01809591818923EE +:10457000818308953196E217F30729F0908198130B +:10458000F9CF1082F7CF089581E090E0E091170114 +:10459000F0911801E80FF91F108201968031910502 +:1045A000A9F708959091F102892B8093F102089563 +:1045B00080959091F10289238093F10208951092E1 +:1045C000F10208959091F002892B8093F0020895F2 +:1045D00080959091F00289238093F00208951092C3 +:1045E000F00208959091EF02892B8093EF020895D5 +:1045F00080959091EF0289238093EF0208951092A5 +:10460000EF0208958093DE0208951092DE0208956D +:104610008091170190911801FC0131969C01205F57 +:104620003F4F80E0919191118F5FE217F307D1F72F +:104630000895E0911701F09118018091F1028083B3 +:10464000E0911701F091180190818091F002892B7F +:104650008083E0911701F091180190818091EF0221 +:10466000892B80838091DE02882361F0E09117011D +:10467000F09118019081892B80830E940823811179 +:104680001092DE0280911701909118010C94FE1790 +:1046900020E0009739F0AC01415051098423952363 +:1046A0002F5FF7CF822F089580911503843039F161 +:1046B0001092F30220E488E190E00FB6F894A895F8 +:1046C000809360000FBE2093600080E00E9483030F +:1046D00080E00E94C80983B7817F846083BF83B76D +:1046E000816083BF7894889583B78E7F83BF88E18C +:1046F0000FB6F89480936000109260000FBE08958A +:10470000089580E00E9483030E94DE090E94610AEE +:104710000E9480230E94E60A91E0811101C090E08E +:10472000892F08950E94D41C80E00E9483030E9478 +:1047300008290E94F2170C94C8091F920F920FB615 +:104740000F9211248F939F93AF93BF938091F302A5 +:10475000811113C08091F4029091F502A091F602AC +:10476000B091F7024196A11DB11D8093F402909380 +:10477000F502A093F602B093F702BF91AF919F911B +:104780008F910F900FBE0F901F90189582E084BDFF +:1047900093E095BD9AEF97BD80936E0008952FB773 +:1047A000F8948091F4029091F502A091F602B091F4 +:1047B000F7022FBF0895CF92DF92EF92FF920F93EF +:1047C0001F932FB7F8944091F4025091F502609135 +:1047D000F6027091F7022FBF6A017B01EE24FF24DD +:1047E0008C0120E030E0C016D106E206F30610F49A +:1047F000415051099A01281B390BC9011F910F9192 +:10480000FF90EF90DF90CF9008951F920F920FB618 +:104810000F9211248F939F93AF93BF938091F402D3 +:104820009091F502A091F602B091F7020196A11DB8 +:10483000B11D8093F4029093F502A093F602B09319 +:10484000F702BF91AF919F918F910F900FBE0F9084 +:104850001F9018950E94EF14F8942FEF87EA91E6C5 +:10486000215080409040E1F700C0000087E090EBCD +:10487000DC0180931F0390932003A0932103B09346 +:1048800022039CE088E10FB6F894A895809360001D +:104890000FBE90936000FFCF0E948E24811102C052 +:1048A0000E946A240E9499248093F2020E94A1240B +:1048B00090E0909304038093030387FB882780F99B +:1048C000809316010E949D24682F70E080E090E0A4 +:1048D0000C9494206DEE7EEF80E090E00E94BF2D5E +:1048E00060E082E090E00E94AD2D60E083E090E027 +:1048F0000E94AD2D60E084E090E00E94AD2D60E06C +:1049000085E090E00E94AD2D60E086E090E00E949E +:10491000AD2D6FEF87E090E00C94AD2D80E090E03E +:104920000E94A72D21E08D3E9E4F09F020E0822FAE +:10493000089582E090E00C949F2D83E090E00C9429 +:104940009F2D84E090E00C949F2D682F84E090E0F0 +:104950000C94AD2D86E090E00C949F2D682F86E09E +:1049600090E00C94AD2D87E090E00C949F2D682F83 +:1049700087E090E00C94AD2D8091FA0280FF0BC08F +:1049800060911C0185E0689FB001112475956795C1 +:10499000759567952BC081FF09C060911C0185E06A +:1049A000689FB00111247595679520C082FF07C0EC +:1049B00060911C0185E0689FB001112417C090919F +:1049C000FB029923D1F060911B01961788F7209183 +:1049D0001C0185E0289F90011124929FA001939FC4 +:1049E000500D112470E0CA010E94852D60387105B8 +:1049F00040F46115710539F002C065E070E0862F62 +:104A000008958FE7089581E008958091FA0280FF6C +:104A100008C060911A0170E0759567957595679566 +:104A200021C081FF06C060911A0170E075956795FD +:104A300019C082FF04C060911A0170E010C090910B +:104A4000FB029923C1F0609119019617A0F780919C +:104A50001A01899FC001112470E00E94852D6038E1 +:104A6000710528F46115710521F0862F08958FE7EF +:104A7000089581E0089561E070E0F4CF803F21F473 +:104A80000E94BC24819504C0813F29F40E94BC246B +:104A90008093FE020895823F21F40E94BC248195F8 +:104AA00004C0833F29F40E94BC248093FD02089532 +:104AB000893F19F40E94052505C08A3F31F40E9400 +:104AC000052581958093FF0208958B3F21F40E9474 +:104AD0000525819504C08C3F29F40E94052580930B +:104AE00000030895843F21F48091FC02816017C087 +:104AF000853F21F48091FC02826011C0863F21F441 +:104B00008091FC0284600BC0873F21F48091FC02FD +:104B1000886005C0883F31F48091FC0280618093F9 +:104B2000FC0208958D3F21F48091FA0281600BC050 +:104B30008E3F21F48091FA02826005C08F3F29F4F4 +:104B40008091FA0284608093FA020895803F39F4DC +:104B50008091FE0287FF6CC01092FE0269C0813F07 +:104B600029F48091FE021816BCF362C09091FD02F8 +:104B7000823F29F497FF5CC01092FD0259C0833F29 +:104B800019F41916CCF354C0893F41F48091FF0207 +:104B900018160CF04DC01092FF024AC08A3F29F44B +:104BA0008091FF0287FF44C0F6CF8B3F39F480919C +:104BB000000387FF3DC0109200033AC08C3F29F4E8 +:104BC000809100031816BCF333C0843F21F4809118 +:104BD000FC028E7F17C0853F21F48091FC028D7FFF +:104BE00011C0863F21F48091FC028B7F0BC0873F70 +:104BF00021F48091FC02877F05C0883F31F48091C9 +:104C0000FC028F7E8093FC0213C08D3F21F48091C3 +:104C1000FA028E7F0BC08E3F21F48091FA028D7FC5 +:104C200005C08F3F29F48091FA028B7F8093FA02AE +:104C30008091FD0281110EC08091FE0281110AC097 +:104C40008091FF02811106C080910003811102C092 +:104C50001092FB0208958CEF92E00E9409180E94C6 +:104C6000CF239093F9028093F80208951F93CF9376 +:104C7000DF938091F8029091F9020E94DB23AC014E +:104C80009091FB02992321F020911D0130E006C094 +:104C900020911E018AE0289F90011124421753079A +:104CA00008F486C08091FD02C091FE02D091FF02FF +:104CB00010910003811107C0C11176C0D11174C0D9 +:104CC000111172C075C09F3F19F09F5F9093FB0256 +:104CD000181624F40E94BC248093FD028091FD02EA +:104CE00087FF05C00E94BC2481958093FD021C169D +:104CF00024F40E94BC248093FE028091FE0287FF70 +:104D000005C00E94BC2481958093FE026091FD0243 +:104D1000662339F1C091FE02CC2319F1772767FD94 +:104D20007095872F972F0E94A72A23E333E343E34D +:104D30005FE30E94B72B0E94742A6093FD026C2FE0 +:104D4000772767FD7095872F972F0E94A72A23E367 +:104D500033E343E35FE30E94B72B0E94742A60931E +:104D6000FE021D1624F40E9405258093FF02809107 +:104D7000FF0287FF05C00E94052581958093FF02F1 +:104D8000111624F40E9405258093000380910003EE +:104D900087FF05C00E940525819580930003DF9160 +:104DA000CF911F910C942B269F3F09F08ECF96CF69 +:104DB000DF91CF911F910895ECEFF2E085E0DF01E4 +:104DC0001D928A95E9F71092FB021092FA0208955B +:104DD000833081F128F4813059F08230D1F0089588 +:104DE000853009F449C0B8F1863009F456C00895F9 +:104DF00080911E01262F30E0280F311D2F3F3105F5 +:104E000024F4680F60931E0108958FEF80931E01B4 +:104E1000089580911D01262F30E0280F311D2F3F6E +:104E2000310524F4680F60931D0108958FEF80937E +:104E30001D01089580911C01262F30E0280F311D9F +:104E40002F3F310524F4680F60931C0108958FEF04 +:104E500080931C01089580911B01262F30E0280FBC +:104E6000311D2F3F310524F4680F60931B01089515 +:104E70008FEF80931B01089580911A01262F30E057 +:104E8000280F311D2F3F310524F4680F60931A015C +:104E900008958FEF80931A01089580911901262FAC +:104EA00030E0280F311D2F3F310524F4680F609347 +:104EB000190108958FEF809319010895833011F13E +:104EC00028F4813049F0823091F00895853081F1E5 +:104ED00020F18630C1F1089580911E01681720F4F9 +:104EE000861B80931E01089510921E0108958091E3 +:104EF0001D01681720F4861B80931D0108951092F0 +:104F00001D01089580911C01681720F4861B809371 +:104F10001C01089510921C01089580911B016817CF +:104F200020F4861B80931B01089510921B010895A5 +:104F300080911A01681720F4861B80931A01089546 +:104F400010921A01089580911901681720F4861BA8 +:104F50008093190108951092190108950F931F93DA +:104F6000873208F048C08E3108F08DC0803109F4D6 +:104F700077C008F5873009F461C068F4863009F01D +:104F80009DC08091F202817F8E7F8093F20281E04A +:104F90008093020394C08B3009F489C08E3009F0ED +:104FA0008DC08091F20282FB222720F991E09227A6 +:104FB00090FB82F95EC0863109F479C060F48131DA +:104FC00009F07CC00E94D41C9091160181E08927D1 +:104FD000809316016CC0893109F469C08B3109F0E6 +:104FE0006DC08091F20281FB222720F991E0922787 +:104FF00090FB81F93EC0883309F459C050F48932DE +:1050000009F457C0853309F454C0873209F451C0FC +:1050100055C0833409F44DC028F48A3308F44EC0D7 +:10502000895332C0883409F049C00E94D41C0E94C0 +:10503000160B0E949C040E942A2439C09091F2020F +:10504000892F8095817080FB90F929F09660986097 +:105050009093F20234C0997F977F9093F20227C019 +:105060008091F20283FB222720F991E0922790FBA6 +:1050700083F98093F2029923D1F08091F20281604A +:105080008093F20214C08D5141E050E060E070E086 +:105090008A019B0104C0000F111F221F331F8A9534 +:1050A000D2F7C901B8010E9494200E94D41C81E06B +:1050B00006C061E070E080E090E0F5CF80E01F91F5 +:1050C0000F91089580E0089580E008958E518A3010 +:1050D00030F4E82FF0E0EA54FE4F8081089580E03C +:1050E0000895CF93C82F80910203813069F018F0A2 +:1050F0008230C9F183C0E0911701F09118018081DD +:10510000823209F07DC007C0E0911701F0911801CB +:105110008081823261F48C2F0E946228811104C048 +:105120008C2F0E94AE271DC081E090E01AC08C2F0A +:105130000E946428811114C0C43179F048F4CB3046 +:1051400079F0C03109F060C082E08093020308C0AA +:10515000C93219F0C83321F057C01092020354C06D +:1051600081E0817053C0C93289F118F5C43171F101 +:10517000B0F4C73009F046C08EE180931E0182E38F +:1051800080931D018AE080931C0184E180931B01C0 +:1051900088E080931A0188E28093190133C082EE7F +:1051A0008C0F863078F58C2F0E946628809301033F +:1051B00029C0CE34E9F020F4CB3421F56AE013C0E5 +:1051C000C13579F0C235F1F461E00DC08091010381 +:1051D000882319F01092010315C081E08093020327 +:1051E00015C061E006C0809101030E94E8260AC054 +:1051F0006AE0809101030E945E2704C010920203BE +:1052000080E004C081E002C080E0ABCFCF91089580 +:105210000E948E24811102C00E946A240E94AA2446 +:1052200080931E0380FF02C0869501C080E00C942D +:10523000830380911E03982F9695292F30E0233009 +:1052400031054CF49F5F990F8170892B81608093A9 +:105250001E030E94AE2480911E0386950C94830346 +:1052600080911E03982F969591F09158990F817017 +:10527000892B80931E038E7F91E009F490E080914A +:105280001E0390FB80F980931E030E94AE24809140 +:105290001E0386950C94830380911E03982F90958E +:1052A00090FB80F980931E030E94AE2480911E0320 +:1052B00080FF02C0869501C080E00C94830390912A +:1052C0001E03892F86958F5F8F779170843028F425 +:1052D000880F892B80931E0302C090931E03809138 +:1052E0001E038E7F91E009F490E080911E0390FBF5 +:1052F00080F980931E030E94AE2480911E03869540 +:105300000C94830320911E03922F96958927982F42 +:10531000990F822F8170892B80931E038E7F91E0DD +:1053200009F490E080911E0390FB80F980931E03A6 +:105330000E94AE2480911E0386950C948303809175 +:105340001E03869508955058BB27AA270ED0D1C1B9 +:10535000C2D130F0C7D120F031F49F3F11F41EF4D8 +:10536000B7C10EF4E095E7FB9FC1E92FD3D180F3DD +:10537000BA17620773078407950718F071F49EF552 +:10538000EBC10EF4E0950B2EBA2FA02D0B01B90145 +:1053900090010C01CA01A0011124FF27591B99F0AB +:1053A000593F50F4503E68F11A16F040A22F232FB7 +:1053B000342F4427585FF3CF469537952795A79507 +:1053C000F0405395C9F77EF41F16BA0B620B730BAE +:1053D000840BBAF09150A1F0FF0FBB1F661F771F1F +:1053E000881FC2F70EC0BA0F621F731F841F48F4D4 +:1053F000879577956795B795F7959E3F08F0B3CF5A +:105400009395880F08F09927EE0F97958795089543 +:1054100027D108F481E008950CD06BC163D140F02E +:105420005AD130F021F45F3F19F03EC1511195C1BE +:105430004FC170D198F39923C9F35523B1F3951B4C +:10544000550BBB27AA2762177307840738F09F5FA5 +:105450005F4F220F331F441FAA1FA9F333D00E2E14 +:105460003AF0E0E830D091505040E695001CCAF781 +:1054700029D0FE2F27D0660F771F881FBB1F261746 +:1054800037074807AB07B0E809F0BB0B802DBF0119 +:10549000FF2793585F4F2AF09E3F510568F004C1E3 +:1054A0005CC15F3FECF3983EDCF38695779567959A +:1054B000B795F7959F5FC9F7880F911D96958795CA +:1054C00097F90895E1E0660F771F881FBB1F6217E9 +:1054D00073078407BA0720F0621B730B840BBA0BA7 +:1054E000EE1F88F7E095089504D06894B11135C196 +:1054F000089518D188F09F5790F0B92F9927B75188 +:10550000A0F0D1F0660F771F881F991F1AF0BA9587 +:10551000C9F712C0B13081F01FD1B1E008951CC1AC +:10552000672F782F8827B85F39F0B93FCCF386957D +:1055300077956795B395D9F73EF4909580957095DA +:1055400061957F4F8F4F9F4F0895E89409C097FB57 +:105550003EF490958095709561957F4F8F4F9F4F4A +:105560009923A9F0F92F96E9BB279395F69587958E +:1055700077956795B795F111F8CFFAF4BB0F11F451 +:1055800060FF1BC06F5F7F4F8F4F9F4F16C08823F8 +:1055900011F096E911C0772321F09EE8872F762F2E +:1055A00005C0662371F096E8862F70E060E02AF06F +:1055B0009A95660F771F881FDAF7880F969587955B +:1055C00097F9089588D018F011F08CD038F480C085 +:1055D000C4C0E92F9FD0B0F35523C9F3E7FB62178E +:1055E000730784079507A8F199F3E92FFF2788230C +:1055F0002AF03197660F771F881FDAF7952F552706 +:10560000442332F091505040220F331F441FD2F7F1 +:10561000BB27E91BF50B621B730B840BB109C1F2AD +:1056200022F4620F731F841FB11D31972AF0660F99 +:10563000771F881FBB1FEFCF915050405AF041F0A9 +:10564000882332F0660F771F881F91505040C1F7B2 +:10565000939530C08695779567959F5FD9F7F8CF7A +:10566000990F0008550FAA0BE0E8FEEF1616170673 +:10567000E807F907C0F012161306E407F50798F0DB +:10568000621B730B840B950B39F40A2661F0232BF4 +:10569000242B252B21F408950A2609F4A140A69570 +:1056A0008FEF811D811D089597F99F6780E870E055 +:1056B00060E008959F3F31F0915020F487957795F1 +:1056C0006795B795880F911D9695879597F90895D9 +:1056D0009FEF80EC089500240A941616170618060A +:1056E0000906089500240A941216130614060506E6 +:1056F0000895092E0394000C11F4882352F0BB0F77 +:1057000040F4BF2B11F460FF04C06F5F7F4F8F4FD9 +:105710009F4F089557FD9058440F551F59F05F3F14 +:1057200071F04795880F97FB991F61F09F3F79F0C3 +:1057300087950895121613061406551FF2CF469545 +:10574000F1DF08C0161617061806991FF1CF8695C7 +:105750007105610508940895E894BB2766277727AB +:10576000CB0197F908957CDF08F48FEF08950BD0F3 +:10577000C0CFB1DF28F0B6DF18F0952309F094CF41 +:10578000A7CF1124EACFC6DFA0F3959FD1F3950FE1 +:1057900050E0551F629FF001729FBB27F00DB11DB5 +:1057A000639FAA27F00DB11DAA1F649F6627B00D45 +:1057B000A11D661F829F2227B00DA11D621F739F2E +:1057C000B00DA11D621F839FA00D611D221F749F3C +:1057D0003327A00D611D231F849F600D211D822F83 +:1057E000762F6A2F11249F5750408AF0E1F08823CA +:1057F0004AF0EE0FFF1FBB1F661F771F881F9150D7 +:105800005040A9F79E3F510570F04ECFA6CF5F3FA5 +:10581000ECF3983EDCF3869577956795B795F79509 +:10582000E7959F5FC1F7FE2B880F911D9695879591 +:1058300097F90895FA01EE0FFF1F30962105310503 +:1058400099F16115710561F48038BFE39B0749F157 +:1058500068949038810561F08038BFEF9B0741F074 +:10586000992342F5FF3FE1053105210511F1E89447 +:105870000894E795D901AA2329F4AB2FBE2FF85F2E +:10588000D0F310C0FF5F70F4A695E0F7F73950F041 +:1058900019F0FF3A38F49F779F930CD00F9007FCD4 +:1058A000905808953EF014CF60E070E080E89FE3E8 +:1058B00008954FE79F775F934F933F932F939ED029 +:1058C0002F913F914F915F9152DF05C019F40EF077 +:1058D000EBCE42CFFDCE26DFC8F39638C0F707F8EF +:1058E0000F92E8942BE33AEA48EB5FE74EDF0F9222 +:1058F0000F920F924DB75EB70F92C0D0EAE0F1E081 +:1059000016D04F915F91EF91FF91E595EE1FFF1F2C +:1059100049F0FE57E0684427EE0F441FFA95E1F77F +:105920004195550B32D00F9007FE26C00895DF93A6 +:10593000CF931F930F93FF92EF92DF927B018C0125 +:10594000689405C0DA2EEF011EDFFE01E894A591F0 +:105950002591359145915591AEF3EF0106DDFE019C +:105960009701A801DA9479F7DF90EF90FF900F91FB +:105970001F91CF91DF9108959B01AC0160E070E031 +:1059800080E89FE349CD90CE95CECCDEE8F3992315 +:10599000D9F3940F511DBBF39150504094F059F03E +:1059A000882332F0660F771F881F91505040C1F74F +:1059B0009E3F510544F7880F911D9695879597F95D +:1059C00008955F3FACF0983E9CF0BB278695779595 +:1059D0006795B79508F4B1609395C1F7BB0F58F779 +:1059E00011F460FFE8CF6F5F7F4F8F4F9F4FE3CF82 +:1059F000B4CE0EF05FCE6CCE689456CE93DEC8F374 +:105A00009923D1F3C6F3DF93CF931F930F93FF92A4 +:105A1000C92FDD2788232AF02197660F771F881F5B +:105A2000DAF720E030E040E85FEB9FE3883920F0D0 +:105A3000803E30F021968F7787DCE2E3F1E003C00F +:105A400083DCEFE5F1E073DF8B01BE01EC01FB2E9F +:105A50006F5771097595771F880B990B78DD28E1D1 +:105A600032E741E35FE38FDEAF2D9801AE01FF9097 +:105A70000F911F91CF91DF9178DC3BCEFA01DC01D1 +:105A8000AA0FBB1F9B01AC01BF5728F42227332765 +:105A9000442750781FC0B75188F4AB2F0024469597 +:105AA00037952795011CA395D2F3002069F0220FAA +:105AB000331F441FB395DAF30DD045CC6130710527 +:105AC000A0E88A07B94630F49B01AC016627772726 +:105AD00088279078309621F0208331834283538346 +:105AE0000895AA1BBB1B51E107C0AA1FBB1FA61725 +:105AF000B70710F0A61BB70B881F991F5A95A9F777 +:105B000080959095BC01CD01089597FB072E16F462 +:105B1000009407D077FD09D00E94712D07FC05D0B5 +:105B20003EF4909581959F4F0895709561957F4FB4 +:105B30000895EE0FFF1F0590F491E02D0994F99957 +:105B4000FECF92BD81BDF89A992780B50895A8E14E +:105B5000B0E042E050E00C94C72D262FF999FECF1B +:105B600092BD81BDF89A019700B4021639F01FBAB0 +:105B700020BD0FB6F894FA9AF99A0FBE08950196CF +:105B8000272F0E94AE2D0C94AD2DDC01CB01FC0122 +:105B9000F999FECF06C0F2BDE1BDF89A319600B486 +:0E5BA0000D9241505040B8F70895F894FFCF91 +:105BAE00640007000CFF0000003F64FA10881165C6 +:105BBE00113111FD100101DF022808140A321E00F6 +:105BCE0002040507090B0C0E1011131517181A1CD9 +:105BDE001D1F2123242628292B2D2F303234353713 +:105BEE00393B1F0F03764F5F6F7F49694379095920 +:105BFE0053633149803F5D8B803FF8BF803FCAE1E0 +:105C0E00803F73ED803FCAE1803FF8BF803F5D8BE0 +:105C1E00803F3149803F0000803FF16D7F3F75EA44 +:105C2E007E3F4C827E3F833F7E3F84287E3F833F74 +:105C3E007E3F4C827E3F75EA7E3FF16D7F3F0000D6 +:105C4E00803F404D36390F06C2058C055305E604DC +:105C5E00FF041805310501020304050607080900B3 +:00000001FF diff --git a/keyboards/planck/keymaps/lucas/keymap.c b/keyboards/planck/keymaps/lucas/keymap.c new file mode 100644 index 000000000..2208780b1 --- /dev/null +++ b/keyboards/planck/keymaps/lucas/keymap.c @@ -0,0 +1,164 @@ +/* +This is the keymap of /u/deepshitgoeshere! +Layer 1 exists so I can have the symbol positions of QWERTY while having my system in german. +The second layer has all the german umlauts I need and with capital and small letters on the +same layer there is no need to press shift+lower. +This keymap is made to work with software implemented QWERTZ. +The "Gaming" layer is mainly customized for CS:GO. +If you have any question about this keymap feel free to shoot me a message on reddit! +*/ + +#include "keymap.h" +#include "keymap_german.h" +#include "backlight.h" +#include "debug.h" +#include "action_layer.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = { /* Colemak + * ,-----------------------------------------------------------------------. + * | Esc | q | w | f | p | g | j | l | u | y | ; | - | + * |-----------------------------------------------------------------------| + * | BS | a | r | s | t | d | h | n | e | i | o | ' | + * |-----------------------------------------------------------------------| + * | SFT | z | x | c | v | b | k | m | , | . | / | Ent | + * |-----------------------------------------------------------------------| + * | CTL | GUI | Tab | ALT |Lower| Space |Raise|Left |Down | Up |Right| + * `-----------------------------------------------------------------------' + */ + {KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Z, DE_SCLN, DE_MINS}, + {KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, DE_QUOT}, + {M(0), KC_Y, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, DE_COMM, DE_DOT, DE_SLSH, KC_ENT}, + {KC_LCTL, KC_LGUI, KC_TAB, KC_LALT, F(2), F(3), F(3), F(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[1] = { /* Symbols + * ,-----------------------------------------------------------------------. + * | | | | | | | | | | | : | | + * |-----------------------------------------------------------------------| + * | | | | | | | | | | | | " | + * |-----------------------------------------------------------------------| + * | | | | | | | | | < | > | ? | | + * |-----------------------------------------------------------------------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------' + */ + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_DOT, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_DQOT}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M(1), DE_MORE, DE_QST, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +}, +[2] = { /* Raise + * ,-----------------------------------------------------------------------. + * | | Ä | | | | | | | Ü | Ö | |Game | + * |-----------------------------------------------------------------------| + * | Del | ä | | ß | | | | | ü | ö | |FVol+| + * |-----------------------------------------------------------------------| + * | | | | | | | | |Stop | Prv | Nxt |FVol-| + * |-----------------------------------------------------------------------| + * |LCTL |LGUI | Tab |LALT |Lower| Space | |Mute |Vol- |Vol+ | P/P | + * `-----------------------------------------------------------------------' + */ + {KC_NO, S(DE_AE), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, S(DE_UE), S(DE_OE), KC_NO, F(4)}, + {KC_DEL, DE_AE, KC_NO, DE_SS, KC_NO, KC_NO, KC_NO, KC_NO, DE_UE, DE_OE, KC_NO, RALT(KC_F12)}, + {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MSTP, KC_MPRV, KC_MNXT, RALT(KC_F11)}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[3] = { /* Lower + * ,-----------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | + | + * |-----------------------------------------------------------------------| + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | = | + * |-----------------------------------------------------------------------| + * | | | | | | [ | ] | { | } | € | | \ | Ent | + * |-----------------------------------------------------------------------| + * |LCTL |LGUI | Tab |LALT | | Space |Raise|Home |PgDn |PgUp | End | + * `-----------------------------------------------------------------------' + */ + {DE_TILD, DE_EXLM, DE_AT, DE_HASH, DE_DLR, DE_PERC, DE_CIRC, DE_AMPR, DE_ASTR, DE_LPRN, DE_RPRN, DE_PLUS}, + {DE_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, DE_EQL}, + {KC_NO, KC_NO, KC_NO, DE_PIPE, DE_LBRC, DE_RBRC, DE_LCBR, DE_RCBR, DE_EURO, KC_NO, DE_BSLS, KC_ENT}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END} +}, +[4] = { /* Function + * ,-----------------------------------------------------------------------. + * | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 | + * |-----------------------------------------------------------------------| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-----------------------------------------------------------------------| + * | | | | | | KP- | KP+ | | | | |Reset| + * |-----------------------------------------------------------------------| + * | |Light|BL DN|BL UP| | | | |Mute |Vol- |Vol+ | P/P | + * `-----------------------------------------------------------------------' + */ + {KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24}, + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, + {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PMNS, KC_PPLS, KC_NO, KC_NO, KC_NO, RESET, KC_NO}, + {KC_NO, BL_TOGG, BL_DEC, BL_INC, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[5] = { /* Gaming + * ,-----------------------------------------------------------------------. + * | Buy | ESC | q | w | e | r | t | y | u | i | o | p | + * |-----------------------------------------------------------------------| + * | ENT | BS | a | s | d | f | g | h | j | k | l | ; | + * |-----------------------------------------------------------------------| + * | CTL | SFT | z | x | c | v | b | n | m | , | Up | / | + * |-----------------------------------------------------------------------| + * | | | Tab | ALT | | Space |CrJmp| GUI |Left |Down |Right| + * `-----------------------------------------------------------------------' + */ + {MO(6), KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, F(4)}, + {KC_ENT, KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, DE_SCLN}, + {KC_LCTL, KC_LSFT, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, DE_DOT, KC_UP, DE_SLSH}, + {KC_NO, KC_NO, KC_TAB, KC_LALT, KC_NO, KC_SPC, KC_SPC, LCTL(KC_SPC), KC_LGUI, KC_LEFT, KC_DOWN, KC_RGHT} +}, +[6] = { /* Gaming + * CS:GO buy binds + * ,-----------------------------------------------------------------------. + * | | | | | | | | | 7 | 8 | 9 | | + * |-----------------------------------------------------------------------| + * | BS | | | | | | | | 6 | 5 | 4 | End | + * |-----------------------------------------------------------------------| + * | CTL | SFT | | | | | | | 1 | 2 | 3 |Pgdn | + * |-----------------------------------------------------------------------| + * | | | Tab | ALT | | Space |CrJmp| | 0 | KP+ |PEnt | + * `-----------------------------------------------------------------------' + */ + {KC_TRNS, KC_NO, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_P7, KC_P8, KC_P9, KC_NO}, + {KC_BSPC, KC_NO, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_P4, KC_P5, KC_P6, KC_END}, + {KC_LCTL, KC_LSFT, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_K, KC_P1, KC_P2, KC_P3, KC_PGDN}, + {KC_NO, KC_NO, KC_TAB, KC_LALT, KC_NO, KC_SPC, KC_SPC, LCTL(KC_SPC), KC_NO, KC_P0, KC_PDOT, KC_PENT} +}, +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE + [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER + [3] = ACTION_LAYER_TAP_KEY(4,KC_SPC), // to Function + [4] = ACTION_LAYER_TOGGLE(5), // toggle Gaming + [5] = ACTION_MODS_TAP_KEY(KC_LSFT, KC_CAPS), //Shift on press, Caps on tap +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case 0: // M(0) + if (record->event.pressed) { + register_code(KC_LSFT); + layer_on(1); + } else { + layer_off(1); + unregister_code(KC_LSFT); + } + break; + case 1: // M(1) + if (record->event.pressed) { + unregister_code(KC_LSFT); + register_code(DE_MORE); + } else { + unregister_code(DE_MORE); + } + break; + } + return MACRO_NONE; + +}; \ No newline at end of file diff --git a/keyboards/planck/keymaps/lukas/Makefile b/keyboards/planck/keymaps/lukas/Makefile new file mode 100644 index 000000000..581e08cd0 --- /dev/null +++ b/keyboards/planck/keymaps/lukas/Makefile @@ -0,0 +1,25 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/lukas/compiled.hex b/keyboards/planck/keymaps/lukas/compiled.hex new file mode 100644 index 000000000..2cd3bc522 --- /dev/null +++ b/keyboards/planck/keymaps/lukas/compiled.hex @@ -0,0 +1,1446 @@ +:100000000C9461020C94A5020C94A5020C94A50218 +:100010000C94A5020C94A5020C94A5020C94A502C4 +:100020000C94A5020C94A5020C9467140C94391539 +:100030000C949B220C94A5020C94A5020C94A5028E +:100040000C94A5020C9407030C94A5020C94A50231 +:100050000C94A5020C9403230C94A5020C94A50205 +:100060000C94A5020C94A5020C94A5020C94A50274 +:100070000C94A5020C94A5020C94A5020C94A50264 +:100080000C94DC0A0C94A5020C94A5020C94A50215 +:100090000C94A5020C94A5020C94A5020C94A50244 +:1000A0000C94A5020C94A5020C94A502A615C815E3 +:1000B000B616C815B6160D163016B616851698164D +:1000C00082198219B119B119F019101A661B661B31 +:1000D0001B1A661BCB1ACB1A321B3B1B661B601B01 +:1000E000D81AD81AD81AD81AD81AD81AD81AD81A80 +:1000F000D81AD81AD81AD81AD81AD81AD81AD81A70 +:10010000E81AF61AFD1A041B0E1B07634236B79B4A +:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 +:100120005763BD6DEDFD753EF6177231BF000000DF +:10013000803F08000000BE922449123EABAAAA2AC2 +:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD +:1001500000000000BF000000803F00000000000819 +:100160004178D3BB4387D1133D190E3CC3BD4282B6 +:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 +:10018000FFBE01C4FF7F3F00000000000000000030 +:1001900000000000000000010204060A0F17202CD6 +:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 +:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF +:1001C0000201000000000000000000002B001400ED +:1001D0001A000800150017001C0018000C0012007F +:1001E00013002A00290004001600070009000A0075 +:1001F0000B000D000E000F0033003400E1001D0065 +:100200001B00060019000500110010003600370021 +:1002100038002800E000E200E300013001522C0029 +:100220002C0002525000510052004F0035021E02B5 +:100230001F0220022102220223022402250226029A +:1002400027022A0001000100010001000100010055 +:1002500001002D022E022F023002310201000100A6 +:1002600001000100010001000100010001002F0058 +:100270003000010001000100010001000100010047 +:1002800001000100010001000100010035001E0015 +:100290001F0020002100220023002400250026004A +:1002A00027004C00010001000100010001000100D5 +:1002B00001002D002E002F00300031000100010050 +:1002C0000100010001000100010001000100010026 +:1002D0000100010001000100010001000100010016 +:1002E0000100010001000100010001002803540089 +:1002F00068006500200050006C0061006E00630023 +:100300006B0020004B006500790062006F00610007 +:100310007200640000002C034F007200740068003B +:100320006F006C0069006E006500610072002000C3 +:100330004B006500790062006F006100720064008C +:10034000730000000403090409026D00040100A009 +:10035000FA09040000010301010009211101000153 +:10036000223F000705810308000A09040100010378 +:10037000010200092111010001224D00070582033D +:1003800008000A090402000103000000092111010C +:1003900000012236000705830308000A0904030050 +:1003A00001030000000921110100012239000705A5 +:1003B00084031000011201100100000008EDFE602E +:1003C0006001000102000105010906A101050719EC +:1003D000E029E71500250195087501810205081936 +:1003E0000129059505750191029501750391010596 +:1003F000071900297715002501957875018102C03C +:1004000005010980A101850216010026B7001A0125 +:10041000002AB700751095018100C0050C0901A1E3 +:10042000018503160100269C021A01002A9C027510 +:100430001095018100C005010902A1010901A10077 +:100440000509190129051500250195057501810288 +:100450009501750381010501093009311581257F59 +:1004600095027508810609381581257F9501750863 +:100470008106050C0A38021581257F9501750881D2 +:1004800006C0C005010906A101050719E029E71505 +:100490000025019508750181029501750881010506 +:1004A00008190129059505750191029501750391BA +:1004B000010507190029FF150025FF95067508811C +:1004C00000C011241FBECFEFDAE0DEBFCDBF04B6FF +:1004D00003FE24C080911E0390911F03A09120036E +:1004E000B09121038730904BA740B04BB9F41092E4 +:1004F0001E0310921F03109220031092210314BEBA +:1005000084B7877F84BF88E10FB6F894809360003A +:10051000109260000FBEE0E0F8E3099511E0A0E062 +:10052000B1E0E0E9F9E502C005900D92A03CB10709 +:10053000D9F713E0A0ECB1E001C01D92AE31B107D4 +:10054000E1F70E94AD110C94C62C0C9400000895A4 +:10055000089581E0089508950C94A8020C94A902CE +:100560000C94AB020E94902823E030E0281B310954 +:10057000220F2093C4010895282F2F988091800086 +:10058000211108C0877F8093800010928D00109207 +:100590008C001BC0886080938000233019F48FEF9B +:1005A0009FEF0FC083E090E0821B9109880F991F95 +:1005B0002FEF3FEFA90102C0569547958A95E2F7C4 +:1005C000CA0190938D0080938C000C94B2020E941B +:1005D000B20284E08093C3011092C0010895279A6B +:1005E0002F988FEF9FEF90938700809386008AE08B +:1005F0008093800089E1809381000E94F9270C9408 +:10060000E7020E94EF026E9A769A0C94A7021F925C +:100610000F920FB60F9211242F933F938F939F93B6 +:10062000EF93FF93E091C101F091C201CF010196D8 +:100630009093C2018093C1010090C30102C0F6955E +:10064000E7950A94E2F7EF738091C001823019F4C4 +:10065000E03251F404C0813039F4EF3329F4809151 +:100660006F008D7F80936F00F0E0E457FE4FE491C0 +:1006700021E031E0E29FC001E39F900D1124009042 +:10068000C40102C0969587950A94E2F790938D0075 +:1006900080938C00FF91EF919F918F913F912F91CB +:1006A0000F900FBE0F901F901895662319F06130C0 +:1006B00079F01FC0FC018281882331F085EE0E9411 +:1006C00026180E94502815C085EE0E94EE1811C011 +:1006D000FC018281882339F083EE0E94261882E093 +:1006E0000E940E2006C083EE0E94EE1882E00E9457 +:1006F0002F2080E090E0089581E008950C947C0321 +:1007000008950C94010380911502882309F448C0D0 +:100710008091D1019091D201009779F40E94CD226D +:100720009093D2018093D1018091D30190E0009702 +:1007300071F48091D40190E00AC00E94D9222091E6 +:100740000001309101012817390740F329C00197B2 +:10075000880F991F880F991FFC01EB52FE4F608193 +:100760007181828193810E94420AE091D30184E0E9 +:10077000E89FF0011124EB52FE4F6081718182816C +:1007800093814FE050E00E94FA0D8091D30190E0F8 +:1007900001966091D40170E00E94762C8093D30181 +:1007A0000C94AC02109217020C940F0A089508954D +:1007B00081E0809317020C94D703089508958F92D7 +:1007C0009F92AF92BF92EF92FF920F931F93CF939E +:1007D000DF93CDB7DEB7A3970FB6F894DEBF0FBE99 +:1007E000CDBF7C01FC0100811181C8010E94CA209B +:1007F000B8010E94E1058C01B7010E947E038823A5 +:1008000009F4CCC10032F0E51F0741F4F701828101 +:10081000882309F458C00E945E0EC0C10132F0E581 +:100820001F0741F4F7018281882309F44CC00E941C +:10083000670EB4C10232F0E51F0751F4F70182815F +:10084000882309F440C00E945A0E8111F0CFE3CFF3 +:100850000332F0E51F0739F4F7018281882399F10B +:100860000E94D8039BC10432F0E51F0739F4F70159 +:100870008281882341F10E94D20390C10532F0E5C4 +:100880001F0749F4F70182818823E9F0809117025C +:100890008111F1CFE5CF0632F0E51F0739F4F701FA +:1008A0008281882381F00E946E0E0AC00732F0E533 +:1008B0001F0749F4F7018281882329F00E94790EED +:1008C0000E94DE036BC180911702811105C0F70100 +:1008D00082818111CFC018C1003E110579F4F70162 +:1008E0008281882309F44DC00E940F0A81E0809321 +:1008F0001602109215021092D40150C1023E110549 +:1009000059F4F70182818823E1F10E940F0A1092C5 +:1009100016021092150242C1033E110591F4F7012F +:100920008281882371F10E940F0A1092160281E0E1 +:10093000809315021092D3011092D2011092D1012E +:100940002DC10235110559F4F7018281882309F47C +:1009500025C180910001909101010A970DC00135D8 +:10096000110579F4F7018281882309F417C1809178 +:100970000001909101010A9690930101809300017A +:100980000DC14091040183E2EFE1F1E0DE01119637 +:1009900001900D928A95E1F7F701808121E030E026 +:1009A0002C0F3D1F280F311DC901209102013091EC +:1009B0000301FC01E20FF31F6081772767FD70954B +:1009C000640F711D882777FD8095982F0E949829C4 +:1009D00020E030E040E451E40E94FD284B015C013E +:1009E000F701218184E090E0821B9109BC018827F6 +:1009F00077FD8095982F0E9498299B01AC01C50135 +:100A0000B4010E9495289B01AC0160E070E080E099 +:100A100090E40E940B2B20E030E04CED50E40E946B +:100A2000A82A4B015C01F70182818823D1F04FE0B5 +:100A300050E0C501B4010E94FA0D8091160288238E +:100A4000A1F08091D40124E0829FF0011124EB52A7 +:100A5000FE4F80829182A282B3828F5F8093D40105 +:100A600004C0C501B4010E94420A0F3F110508F0FD +:100A70002ECF94C08091D00181111FC0043130E588 +:100A8000130709F051C00E94800381E08093D001D8 +:100A90000E94CD229093CF018093CE011092C70186 +:100AA0001092C9011092C8011092CB011092CA0194 +:100AB0001092CD011092CC0171C08091CE01909125 +:100AC000CF010E94D922883C910570F48091C70122 +:100AD000E82FF0E0EE0FFF1FE853FE4F1183008375 +:100AE0008F5F8093C7015AC0043880E5180721F052 +:100AF0000538104501F13AC0F7018281882341F0A1 +:100B00001092C50182E01EC0043830E5130759F584 +:100B10008091C501811106C086E20E94261886E2F6 +:100B20000E94EE1882E01CC00438F0E51F0741F374 +:100B300005381045D9F4F7018281882331F01092ED +:100B4000C60180E20E943D1929C08091C601811131 +:100B500006C087E20E94261887E20E94EE1880E213 +:100B60000E9444191BC00538104529F381E0809389 +:100B7000C5018093C601C701A3960FB6F894DEBFE6 +:100B80000FBECDBFDF91CF911F910F91FF90EF90DE +:100B9000BF90AF909F908F900C94AE0280E0A39690 +:100BA0000FB6F894DEBF0FBECDBFDF91CF911F917E +:100BB0000F91FF90EF90BF90AF909F908F9008950E +:100BC00008959CE0799FF001112490E3899FE00D46 +:100BD000F11D1124E60FF11DEE0FFF1FE453FE4F30 +:100BE000859194910895880F991FFC01E45BFF4F54 +:100BF000859194910895880F991FFC01E453FE4F4D +:100C00008591949108950F931F93CF93DF93EC01F7 +:100C1000811521E39207A0F5C11580E3D80708F0FC +:100C2000D7C0C83ED105D8F4C03ED10508F007C2F0 +:100C3000C83AD10578F4C53AD10508F06AC0C13088 +:100C4000D10509F463C008F4F7C1C430D10508F038 +:100C5000F6C1F2C1CB3BD10508F466C0EDC1C115A8 +:100C600090E2D90708F0AFC0C11521E0D20708F023 +:100C7000E6C1C03FD10508F4DFC18E0110651FC277 +:100C8000C03880E5D80700F5C03790E5D90708F0EF +:100C9000A3C0C11520E5D20709F4ACC050F4CE01C1 +:100CA000905480319F4008F0C7C1DF708E01106AF8 +:100CB00006C2C13080E5D80709F4AEC0C43190E562 +:100CC000D90708F4AFC0B8C1C33820E5D20709F48A +:100CD0008EC050F4C13890E5D90709F482C008F0FD +:100CE00083C000E011EDEBC1C03181E5D80708F405 +:100CF000A3C1C11597E5D90708F436C1CE019057B5 +:100D00008115904108F098C1DF7093C101E010E0B7 +:100D1000D6C1C53AD10509F494C1C63AD10509F046 +:100D200093C102E810E4CBC1C83AD10509F48FC1E0 +:100D3000C93AD10509F48EC1CA3AD10509F48DC169 +:100D4000CB3AD10509F48CC1CC3AD10509F48BC159 +:100D5000CD3AD10509F48AC1C03BD10509F489C156 +:100D6000CE3AD10509F488C1CF3AD10509F487C13B +:100D7000C13BD10509F486C1C23BD10509F485C147 +:100D8000C33BD10509F484C1C43BD10509F483C137 +:100D9000C53BD10509F482C1C63BD10509F481C127 +:100DA000C73BD10509F480C1C83BD10509F47FC117 +:100DB000C93BD10509F47EC1CA3BD10509F47DC107 +:100DC00000E014E47CC1CE019F700E94FB0578C155 +:100DD000DD278E01106C73C1CF70DD278E01146D7D +:100DE0006EC100E010ED6BC100E012ED68C100E0E3 +:100DF00013ED65C10E94D11B0E940F0A0E94D60309 +:100E00008FEF94E32CE0815090402040E1F700C048 +:100E100000000E94282353C18091F20281608093D8 +:100E2000F2024DC10E948923811102C00E946523F4 +:100E30000E949C2390E090931D0380931C03C2307A +:100E400080E5D80721F480911C03816086C0C430FE +:100E500090E5D90721F480911C0382607EC0C630E2 +:100E600020E5D20721F480911C03846076C0C8304D +:100E700080E5D80719F480911C0327C0CA3090E59B +:100E8000D90721F480911C03806167C0CC3020E534 +:100E9000D20721F480911C0380625FC0CE3080E5D0 +:100EA000D80721F480911C03806457C0C03190E5BD +:100EB000D90721F480911C0380684FC0C23120E51E +:100EC000D20729F480911C038460886046C0C33037 +:100ED00080E5D80721F480911C038E7F3EC0C53089 +:100EE00090E5D90721F480911C038D7F36C0C7306F +:100EF00020E5D20721F480911C038B7F2EC0C930DE +:100F000080E5D80719F480911C0326C0CB3090E50A +:100F1000D90721F480911C038F7E1FC0CD3020E5BE +:100F2000D20721F480911C038F7D17C0CF3080E55C +:100F3000D80721F480911C038F7B0FC0C13190E54D +:100F4000D90721F480911C038F7707C0C331D045A6 +:100F500031F480911C038B7F877F80931C038091E9 +:100F60001C030E94A023ABC08D2F99278F70992757 +:100F700081309105D9F49E012370332702C0880F78 +:100F8000991F2A95E2F79C688E0144E0000F111F1B +:100F90004A95E1F700271370802B912B53E0CC0F7B +:100FA000DD1F5A95E1F7C076DD272FC0823091050D +:100FB00031F4DC2FCC278E01016F106A80C08330A2 +:100FC000910569F4CE018370992701E010E002C019 +:100FD000000F111F8A95E2F7C8019C680FC084308A +:100FE0009105B9F4CE018370992701E010E002C0A9 +:100FF000000F111F8A95E2F7C8019A6823E0CC0F11 +:10100000DD1F2A95E1F7C07ED7708C010C2B1D2BBC +:1010100056C08530910531F4DC2FCC278E01046F4A +:10102000106A4DC0069709F04AC0CF71DD27DC2F4A +:10103000CC278E01106243C000E010E040C08E015A +:101040003EC001E810E43BC003E810E438C002EE03 +:1010500014E435C009EE14E432C00AEE14E42FC0E3 +:1010600005EB14E42CC006EB14E429C007EB14E4F0 +:1010700026C00CEC14E423C00DEC14E420C003E8FB +:1010800015E41DC00AE815E41AC002E915E417C00A +:1010900004E915E414C001E216E411C003E216E409 +:1010A0000EC004E216E40BC005E216E408C006E236 +:1010B00016E405C007E216E402C00AE216E4C8011D +:1010C000DF91CF911F910F9108959CE0799FF001DE +:1010D000112490E3899FE00DF11D1124E60FF11D0D +:1010E000EE0FFF1FE453FE4F85919491803E9105D2 +:1010F000E0F4803C910558F58133910509F46FC007 +:1011000048F48932910509F463C08A32910509F4E3 +:101110006DC072C089339105E9F082389105D1F034 +:101120008533910509F44DC067C0833E910581F177 +:1011300038F4803E9105B9F0823E9105D9F05CC04B +:10114000863E910561F1873E9105A1F155C00E944F +:10115000F305089520911C0320FD02C021FF4CC01F +:1011600080EE90E049C080911C0380FFF9CF89E3B5 +:1011700090E042C080911C0382FF0EC080911C034E +:1011800084FF03C080E090E037C083EE90E034C07D +:1011900080911C0382FFF2CF82EE90E02DC08091FF +:1011A0001C0383FF0BC080911C0384FDEBCF87EEF3 +:1011B00090E022C080911C0383FFF5CF86EE90E083 +:1011C0001BC080911C0385FF07C089E290E014C01A +:1011D00080911C0385FFF9CF85E390E00DC08091DD +:1011E0001C0386FF07C08AE290E006C080911C03C2 +:1011F00086FFF9CF81E390E00E94030608950C94E6 +:10120000B002E82FF0E0E25BFE4F8081E82FEF7044 +:10121000F0E082958F7021E030E0A90102C0440F18 +:10122000551F8A95E2F740A308950F931F93CF931C +:10123000DF9385B7806885BF85B7806885BFC3E0C9 +:10124000D0E001E010E0FE01E25BFE4F8081E82F7C +:10125000EF70F0E021A182958F70A80102C0440FC9 +:10126000551F8A95E2F7CA01822B81A38C2F0E9419 +:101270000109219740F78BE090E061E070E0FC010C +:10128000EE5BFE4F2081E22FEF70F0E042A122954D +:101290002F70DB0102C0AA0FBB1F2A95E2F79D0148 +:1012A000242B22A3019758F7DF91CF911F910F9123 +:1012B0000C948103EF92FF920F931F93CF93DF93D0 +:1012C00000E212E0C3E0EE24E394F12CD5E08C2F91 +:1012D0000E9401098BE090E040E050E0FC01EE5BF1 +:1012E000FE4F6081E62FEF70F0E020A130E06295C4 +:1012F0006F7002C0359527956A95E2F720FD09C009 +:101300009701082E02C0220F331F0A94E2F7422BE6 +:10131000532B019718F7F801929182918F0184174E +:10132000950721F051834083D09305018C2F0E94B3 +:101330000109C15060F68091050187FD2CC08150E4 +:10134000809305018F3F39F08FE99FE00197F1F716 +:1013500000C0000020C080911E0290911F02909357 +:1013600027028093260280911C0290911D02909387 +:1013700025028093240280911A0290911B0290937F +:101380002302809322028091180290911902909377 +:101390002102809320020E94830381E0DF91CF919C +:1013A0001F910F91FF90EF900895E82FF0E0EE0F5E +:1013B000FF1FE05EFD4F80819181089508950F9396 +:1013C0001F93CF9308E212E0C0E0F801929182915E +:1013D0008F010E944522C80FF2E000321F07A9F7D3 +:1013E0008C2FCF911F910F9108950E948923811115 +:1013F00002C00E9465230E94AE23809307033E9A99 +:10140000809171008D7F8093710082E080939000C5 +:101410008AE18093910081E080932A02089580916F +:101420002A02811102C00E94F50910927A021092DC +:101430007902809171008D7F80937100809190007E +:101440008F738093900010923C0210923B02109296 +:10145000730210927402109275021092760210922A +:10146000720210927102E1E5F2E0A1E4B2E01192A1 +:101470001192119211921D921D9282E0E137F807AC +:10148000B1F70895CF92DF92EF92FF920F931F93DF +:10149000CF93DF9320913B02222309F484C06B0198 +:1014A0007C0180912A02811102C00E94F50901E7A6 +:1014B00012E0C7E0D0E0A7019601F8019291829175 +:1014C000729162918F010E94F928811131C0FE0151 +:1014D000EE0FFF1FEE0FFF1FEF5AFD4F108211821C +:1014E00012821382DE01AA0FBB1FAF5BBD4F1196A4 +:1014F0001C921E92C730D105E9F021964481558196 +:10150000668177814083518362837383148215825D +:101510001682178212968D919C91139711969C9327 +:101520008E9313961C921E92129734961296E2CFC7 +:10153000219708F68091790290917A02019797FDA0 +:1015400005C090937A028093790204C010927A02C7 +:10155000109279028091790290917A02209177021B +:10156000309178022817390724F0109278021092EF +:101570007702892BC1F4809171008D7F8093710077 +:10158000809190008F73809390001092730210925C +:1015900074021092750210927602109272021092EA +:1015A000710210923B02DF91CF911F910F91FF903A +:1015B000EF90DF90CF9008951F920F920FB60F9289 +:1015C00011244F925F926F927F928F929F92AF926F +:1015D000BF92CF92DF92EF92FF922F933F934F9360 +:1015E0005F936F937F938F939F93AF93BF93CF93AB +:1015F000DF93EF93FF9380913B02882309F49BC113 +:10160000C0917902D0917A021C161D060CF093C18C +:1016100040902B0250902C0260902D0270902E0270 +:1016200020E030E0A901C301B2010E94A42A1816EB +:101630000CF065C0C130D10509F452C08091770229 +:1016400090917802BE010E94762C7C0190937802E2 +:101650008093770280903D0290903E02A0903F02DE +:10166000B090400220E030E040E85FE3C501B40103 +:101670000E94952860933D0270933E0280933F0242 +:1016800090934002F701EE0FFF1FEE0FFF1FEF5A7E +:10169000FD4FA301920160817181828193810E943B +:1016A000FD2820E030E040E05EE30E94A82A9B0194 +:1016B000AC01C501B4010E94A42A18168CF4C7011C +:1016C0000196BE010E94762C909378028093770257 +:1016D00010923D0210923E0210923F021092400280 +:1016E000E0917702F0917802EE0FFF1FEE0FFF1FDF +:1016F000EF5AFD4F6081718182819381D0C0C0908B +:101700007302D0907402E0907502F090760220E0AF +:1017100030E0A901C701B6010E94F928219788236A +:1017200009F4A2C0FE01EE0FFF1FEE0FFF1FEF5ADC +:10173000FD4F80809180A280B380A5019401C701F4 +:10174000B6010E94F92887FF31C0A501940160E02D +:1017500070E08CED93EC0E94FD2820E030E040E446 +:1017600051E40E94FD2820E030E040E05FE30E9469 +:10177000A82A9B01AC0160E070E080E090E40E9448 +:101780000B2B9B01AC01C501B4010E94A82A9B014F +:10179000AC01C701B6010E94F92887FF07C0A70165 +:1017A000960160E070E08CED93E439C0A5019401EE +:1017B000C701B6010E94A42A18160CF055C0A50155 +:1017C000940160E070E08CED93E40E94FD2820E03D +:1017D00030E040E451E40E94FD2820E030E040E0A9 +:1017E0005FE30E94A82A9B01AC0160E070E080E00A +:1017F00090E40E940B2B9B01AC01C501B4010E9437 +:10180000A82A9B01AC01C701B6010E94A42A1816A0 +:101810005CF5A701960160E070E08CED93EC0E940E +:10182000FD2820E030E040E451E40E94FD2820E063 +:1018300030E040E05FE30E94A82A9B01AC0160E039 +:1018400070E080E090E40E940B2B9B01AC01C7018B +:10185000B6010E94A82A6093730270937402809369 +:1018600075029093760213C0FE01EE0FFF1FEE0F7C +:10187000FF1FEF5AFD4F80819181A281B381809338 +:10188000730290937402A0937502B09376026091F4 +:10189000730270917402809175029091760220918A +:1018A0002802309129022F3F4FEF340731F02F5F8C +:1018B0003F4F30932902209328020E94840E6B012F +:1018C0007C0120E034E244EF51E40E94F92887FFD4 +:1018D00008C086EFC82E88E2D82E84EFE82E81E477 +:1018E000F82E20E030E040E051E4C701B6010E944C +:1018F000A82A9B01AC0160E074E284E79BE40E94AB +:10190000FD286B017C010E946A2970939700609307 +:1019100096002091060130910701409108015091F5 +:101920000901C701B6010E94A82A0E946A29709382 +:1019300099006093980080913C02882309F433C198 +:10194000C0903702D0903802E0903902F0903A020D +:1019500020E030E0A901C701B6010E94A42A1816B0 +:10196000D4F580912802909129028F3F2FEF9207A2 +:1019700029F001969093290280932802C701B601AD +:101980000E94840E20E030E040E051E40E94A82A4A +:101990009B01AC0160E074E284E79BE40E94FD28B7 +:1019A0006B017C010E946A297093970060939600F6 +:1019B00020910601309107014091080150910901E1 +:1019C000C701B6010E94A82A0E946A297093990053 +:1019D0006093980008C010929700109296001092A1 +:1019E00099001092980060913102709132026F5FFD +:1019F0007F4F7093320260933102209196003091B4 +:101A0000970080E090E0232BF1F0C0919600D091F8 +:101A100097000E9496296B017C01BE0180E090E056 +:101A20000E9496299B01AC016091330270913402AF +:101A300080913502909136020E94FD2820E03FEF10 +:101A40004FE757E410C00E9496296B017C0120E00B +:101A500030EE4FEF54E46091330270913402809184 +:101A60003502909136020E94A82A9B01AC01C70161 +:101A7000B6010E94A42A87FD96C080912F028F5F35 +:101A800080932F0290E0209103033091040382178A +:101A90009307A0F080910E03882319F010922F0273 +:101AA0000DC0809171008D7F8093710080919000B6 +:101AB0008F738093900010923C027DC08091300221 +:101AC000C0912F02811128C0C0900803D090090353 +:101AD000E0900A03F0900B0320E030E0A901C70179 +:101AE000B6010E94A42A1816BCF481E0809330024B +:101AF00010923702109238021092390210923A0274 +:101B0000C0923302D0923402E0923502F092360253 +:101B1000C150C0932F0243C010923002109229028C +:101B200010922802E0910503F091060348E0C49F5B +:101B3000E00DF11D112480819181A281B3818093F8 +:101B4000370290933802A0933902B0933A0220E012 +:101B500030E040E85EE364817581868197810E9470 +:101B6000A82A6B017C0180910A01682F70E080E057 +:101B700090E00E94962920E030E048EC52E40E9478 +:101B8000FD289B01AC01C701B6010E94A82A609301 +:101B90003302709334028093350290933602109290 +:101BA0003202109231028091070380FD04C010922E +:101BB0003C0210923B02FF91EF91DF91CF91BF91D8 +:101BC000AF919F918F917F916F915F914F913F91D5 +:101BD0002F91FF90EF90DF90CF90BF90AF909F90AC +:101BE0008F907F906F905F904F900F900FBE0F90EF +:101BF0001F901895CF92DF92EF92FF92CF93DF93D1 +:101C00006B017C01EA0180912A02811102C00E94CD +:101C1000F5098091070380FF46C080917902909179 +:101C20007A0208970CF03FC0809171008D7F8093FD +:101C3000710080913C0281110E940F0A81E0809323 +:101C40003B02109229021092280220E030E0A90104 +:101C5000C701B6010E94A42A1816DCF4809179020B +:101C600090917A02FC01EE0FFF1FEE0FFF1FEF5A5B +:101C7000FD4FC082D182E282F382FC01EE0FFF1F92 +:101C8000EF5BFD4FD183C083019690937A028093DE +:101C90007902809171008260809371008091900040 +:101CA000806880939000DF91CF91FF90EF90DF905C +:101CB000CF90089580910703817008958091070364 +:101CC0008160809307030E94B2230C94DD0380910E +:101CD00007038E7F809307030C94B22380917B02CD +:101CE00090E0019666E070E00E94762C80937B0283 +:101CF000089580917B0290E0019766E070E00E9479 +:101D0000762C80937B0208958F929F92AF92BF9220 +:101D1000CF92DF92EF92FF920F931F93CF93DF93B7 +:101D20006B017C01C0912802D0912902BE0180E0A4 +:101D300090E00E9496294B015C01A701960160E0AA +:101D400070E08CE594E40E94FD289B01AC01C50184 +:101D5000B4010E94A82A0E946A2920917B022330A4 +:101D600009F473C028F4222351F02130E9F02CC18A +:101D7000243009F4A0C0253009F4E0C025C180E07A +:101D800090E0A0E0BFE38093060190930701A09349 +:101D90000801B093090110922B0210922C021092AC +:101DA0002D0210922E0210C110922B0210922C02C2 +:101DB00010922D0210922E026431710540F46A30A7 +:101DC000710560F520E030E040E85EE32BC0693C3F +:101DD000710508F0AAC080E090E00E94962920E0FA +:101DE00030E040EA51E40E94942820E030E044E3EF +:101DF00053E40E94FD289B01AC010E94A82A20E028 +:101E000030E040E05EE30E94A82A9B01AC0160E064 +:101E100070E080E09EE30E94942844C020E030E01F +:101E200040E05FE3C701B6010E94A82A6B017C0174 +:101E300080E090E0A0E0BEE380930601909307016C +:101E4000A0930801B0930901BFC010922B02109219 +:101E50002C0210922D0210922E024AE0469F900111 +:101E6000479F300D1124C90168EB7BE00E94622C72 +:101E7000BC016C5D754077FF03C071956195710978 +:101E8000882777FD8095982F0E9498292EE333ECC0 +:101E90004EE259E30E94A82A20E030E040EC5EE3E5 +:101EA0000E949528609306017093070180930801B2 +:101EB0009093090189C010922B0210922C0210926B +:101EC0002D0210922E02CE0183709927892BE1F00A +:101ED000BE016170772780E090E00E94962920E0A3 +:101EE00030E040E05EE30E94A82A20E030E040E4D9 +:101EF0005FE30E9495286093060170930701809329 +:101F00000801909309010CC080E090E0A0E0BFE3DD +:101F10008093060190930701A0930801B0930901F3 +:101F2000C770DD27CD2B09F04FC01092060110922B +:101F30000701109208011092090146C010922B026D +:101F400010922C0210922D0210922E0200E010E04E +:101F500020E03FE30093060110930701209308015E +:101F6000309309016739710578F180E090E00E94B3 +:101F7000962920E030E047E153E40E94942820E0D5 +:101F800030E04AE754E40E94FD2820E030E048E4D5 +:101F900052E40E94A82A20E030E040EA51E40E9486 +:101FA000DA290E946529660F771F660F771FFB01EC +:101FB000EE5AFE4F2081318142815381C701B60123 +:101FC0000E94A82A6B017C01C701B601DF91CF9165 +:101FD0001F910F91FF90EF90DF90CF90BF90AF9047 +:101FE0009F908F90089580918C020895CF93DF93F6 +:101FF00000D01F92CDB7DEB79C01809113038430CF +:1020000019F593E099833B832A839093E9008FEF3E +:102010009091E800815095FD06C095ED9A95F1F7F5 +:1020200000008111F5CF8091E80085FF0DC040E0F0 +:1020300050E063E070E0CE0101960E94571280915B +:10204000E8008E778093E8000F900F900F90DF915B +:10205000CF910895CF93DF9300D01F92CDB7DEB715 +:1020600020911303243021F522E029839B838A8366 +:1020700083E08093E9008FEF9091E800815095FD17 +:1020800006C095ED9A95F1F700008111F5CF80918A +:10209000E80085FF0DC040E050E063E070E0CE0155 +:1020A00001960E9457128091E8008E778093E80095 +:1020B0000F900F900F90DF91CF910895209113030F +:1020C0002430F1F422E02093E9002FEF3091E80072 +:1020D000215035FD06C035ED3A95F1F7000021118C +:1020E000F5CF2091E80025FF0BC040E050E065E00F +:1020F00070E00E9457128091E8008E778093E8008C +:102100000895CF93DF93EC0190911303943009F07D +:1021100046C0809115018823D9F08091160188234B +:10212000B9F09093E9008FEF9091E800815095FD10 +:1021300006C095E19A95F1F700008111F5CF8091E5 +:10214000E80085FF2CC040E050E060E170E017C07F +:1021500081E08093E9008FEF9091E800815095FD38 +:1021600006C095ED9A95F1F700008111F5CF8091A9 +:10217000E80085FF14C040E050E068E070E0CE0168 +:102180000E9457128091E8008E778093E80080E1EA +:10219000FE01ACE7B2E001900D928A95E1F7DF9184 +:1021A000CF91089580911203811109C00E94EC1310 +:1021B0000E9449148091E20084608093E2000895B7 +:1021C000109212030895089508950C94902242E00D +:1021D00061EC81E00E94661342E061EC82E00E94C3 +:1021E000661342E061EC83E00E94661342E161EC19 +:1021F00084E00C94661380911503833009F455C074 +:1022000030F4813071F0823009F48EC008958A3044 +:1022100009F47AC08B3009F460C0893009F09CC0A1 +:1022200020C080911403813A09F096C08091E800A3 +:10223000877F8093E8008091180390911903892B80 +:1022400021F460E18CE792E003C060E080E090E080 +:1022500070E00E94A2128091E8008B778093E800E2 +:10226000089580911403813209F076C0809118039B +:1022700090911903009719F0039709F06DC08091B0 +:10228000E800877F8093E8008091E80082FD05C028 +:10229000809113038111F8CF5FC08091F10080938A +:1022A0008C028091E8008B7753C080911403813AAF +:1022B00009F052C08091180390911903892B09F0FD +:1022C0004BC08091E800877F8093E8008091E80010 +:1022D00080FFFCCF8091150136C0809114038132BC +:1022E000D9F58091180390911903892BA9F5809154 +:1022F000E800877F8093E8000E949B13809116037B +:10230000809315010C94D11B80911403813221F527 +:102310008091E800877F8093E8000E949B13809162 +:10232000170380938D02089580911403813AA1F4DC +:102330008091E800877F8093E8008091E80080FF2B +:10234000FCCF80918D028093F1008091E8008E7720 +:102350008093E8000C949B13089584B7877F84BF13 +:1023600088E10FB6F89480936000109260000FBE71 +:1023700090E080E80FB6F89480936100909361003C +:102380000FBE0E943E170E94EC130E9449148091D8 +:10239000E20084608093E20078940E94CF160E944D +:1023A00040178BE091E00E94EA168091130385307C +:1023B00069F40E945122809111038823B1F30E9495 +:1023C0007F22882391F30E944112EFCF0E94481789 +:1023D000ECCF292F332723303105C9F064F42130A5 +:1023E000310581F02230310509F043C08DE690E0DF +:1023F00028E433E042C021323105F1F022323105C8 +:1024000041F137C082E190E025EB33E036C09927F7 +:102410008130910541F08230910541F0892B49F5D9 +:10242000E4E4F3E005C0E6E1F3E002C0ECEEF2E044 +:10243000849190E09F0121C06430D8F4E62FF0E051 +:10244000EE0FFF1FE255FE4F2081318189E090E0C1 +:1024500014C0643070F470E0FB01EE0FFF1FEA550A +:10246000FE4F20813181FB01EE55FE4F808190E0CF +:1024700004C080E090E020E030E0FA013183208366 +:10248000089580E189BD82E189BD09B400FEFDCFD8 +:102490008091D8008F7D8093D8008091E000826089 +:1024A0008093E0008091E00081FDFCCF0895CF9201 +:1024B000DF92EF92FF920F931F93CF93DF93EC0184 +:1024C0008B016A010E94BA13811133C0C114D10477 +:1024D00039F0F60180819181081B190BC80FD91FB3 +:1024E000E12CF12C0115110519F18091E80085FD11 +:1024F00016C08091E8008E778093E800C114D10463 +:1025000049F0F60180819181E80EF91EF182E082A6 +:1025100085E00FC00E94BA13882321F30AC0899175 +:102520008093F10001501109FFEFEF1AFF0ADACF93 +:1025300080E0DF91CF911F910F91FF90EF90DF909E +:10254000CF90089520911A0330911B032617370767 +:1025500048F06115710539F42091E8002E77209339 +:10256000E80001C0B90140E061157105A9F12091B1 +:102570001303222309F443C0253009F442C02091FB +:10258000E80023FD40C02091E80022FD32C02091E8 +:10259000E80020FFE9CF4091F3002091F20030E005 +:1025A000342BFC01CF016115710559F0283031053C +:1025B00040F481918093F100615071092F5F3F4F8A +:1025C000F1CF41E02830310509F040E02091E800EA +:1025D0002E772093E800C8CF4111C9CF0AC080915F +:1025E0001303882361F0853061F08091E80083FD5A +:1025F0000AC08091E80082FFF2CF80E0089582E077 +:10260000089583E0089581E0089520911A033091A0 +:102610001B032617370748F06115710539F420911F +:10262000E8002E772093E80001C0B901FC0120E00A +:102630006115710591F180911303882309F440C05D +:10264000853009F43FC08091E80083FD3DC0809152 +:10265000E80082FD2FC08091E80080FFE9CF209143 +:10266000F3008091F20090E0922B6115710559F012 +:102670008830910540F424912093F1003196615007 +:1026800071090196F2CF21E0089709F020E08091CE +:10269000E8008E778093E800CBCF2111CCCF0AC021 +:1026A00080911303882361F0853061F08091E80008 +:1026B00083FD0AC08091E80082FFF2CF80E0089598 +:1026C00082E0089583E0089581E00895982F97307F +:1026D00058F59093E900981739F07091EC0020912B +:1026E000ED005091F00003C0242F762F50E021FF21 +:1026F00019C03091EB003E7F3093EB003091ED003C +:102700003D7F3093ED003091EB0031603093EB0072 +:102710007093EC002093ED005093F0002091EE00B8 +:1027200027FF07C09F5FD3CF8F708093E90081E0C0 +:10273000089580E008958091140387FF11C080916F +:10274000E80082FD05C0809113038111F8CF11C00C +:102750008091E8008B770BC080911303882349F0A8 +:102760008091E80080FFF8CF8091E8008E77809319 +:10277000E80008952091E4003091E50095E640914D +:10278000EC00842F817040FF22C08091E80080FD22 +:102790001CC080911303882391F0853091F08091C3 +:1027A000EB0085FD10C04091E4005091E500421718 +:1027B000530729F39A01915011F784E0089582E0BC +:1027C000089583E0089581E0089580E008954091A0 +:1027D000E80042FFDECF08950E945A140E9462145E +:1027E000E0EEF0E0808181608083E8EDF0E08081C0 +:1027F0008F77808319BCA7EDB0E08C918E7F8C938E +:1028000080818F7E80831092120308950F931F930F +:10281000CF93DF930E945A140E946214C8EDD0E057 +:1028200088818F77888388818068888388818F7D7D +:10283000888319BC1092130310920F031092110396 +:102840001092100300EE10E0F80180818B7F8083EE +:1028500088818160888342E060E080E00E946613A6 +:10286000E1EEF0E080818E7F8083E2EEF0E0808117 +:1028700081608083808188608083F80180818E7F81 +:102880008083888180618883DF91CF911F910F9130 +:102890000895E8EDF0E080818F7E8083E7EDF0E041 +:1028A00080818160808384E082BF81E08093120315 +:1028B0000C940614E8EDF0E080818E7F8083109206 +:1028C000E20008951092DA001092E10008951F923C +:1028D0000F920FB60F9211242F933F934F935F9354 +:1028E0006F937F938F939F93AF93BF93EF93FF93D8 +:1028F0008091E10082FF0BC08091E20082FF07C05F +:102900008091E1008B7F8093E1000E94CE16809140 +:10291000DA0080FF1FC08091D80080FF1BC080912B +:10292000DA008E7F8093DA008091D90080FF0DC09D +:1029300080E189BD82E189BD09B400FEFDCF81E05F +:10294000809313030E94D21005C019BC1092130388 +:102950000E94E0108091E10080FF19C08091E200A8 +:1029600080FF15C08091E2008E7F8093E20080910D +:10297000E20080618093E2008091D80080628093C1 +:10298000D80019BC85E0809313030E94E410809165 +:10299000E10084FF30C08091E20084FF2CC080E120 +:1029A00089BD82E189BD09B400FEFDCF8091D800C8 +:1029B0008F7D8093D8008091E1008F7E8093E1002D +:1029C0008091E2008F7E8093E2008091E20081603E +:1029D0008093E20080910F03882311F084E007C008 +:1029E0008091E30087FD02C081E001C083E0809315 +:1029F00013030E94E5108091E10083FF29C08091BC +:102A0000E20083FF25C08091E100877F8093E10091 +:102A100082E08093130310920F038091E1008E7F78 +:102A20008093E1008091E2008E7F8093E2008091AC +:102A3000E20080618093E20042E060E080E00E947A +:102A400066138091F00088608093F0000E94E3108C +:102A5000FF91EF91BF91AF919F918F917F916F9176 +:102A60005F914F913F912F910F900FBE0F901F904C +:102A700018951F920F920FB60F9211242F933F9328 +:102A80004F935F936F937F938F939F93AF93BF9376 +:102A9000CF93DF93EF93FF93C091E900CF708091C4 +:102AA000EC00D82FD17080FDD0E81092E900809121 +:102AB000F000877F8093F00078940E947D1510923B +:102AC000E9008091F00088608093F000CD2BCF70FA +:102AD000C093E900FF91EF91DF91CF91BF91AF914A +:102AE0009F918F917F916F915F914F913F912F9126 +:102AF0000F900FBE0F901F9018951F93CF93DF93E9 +:102B0000CDB7DEB7AA970FB6F894DEBF0FBECDBF24 +:102B1000E4E1F3E088E08E0F9091F10091938E1341 +:102B2000FBCF0E94FB108091E80083FF1FC18091C2 +:102B3000140390911503492F50E04A30510508F0D5 +:102B400015C1FA01EA5AFF4F0C948A2C803881F0A3 +:102B5000823809F00BC1809118038F708093E900CF +:102B60008091EB0085FB882780F91092E90006C070 +:102B70008091100390911103911182609091E8006F +:102B8000977F9093E8008093F1001092F100C8C005 +:102B9000282F2D7F09F0EAC0882319F0823061F0D8 +:102BA000E5C080911603813009F0E0C0933009F050 +:102BB00080E0809311032BC080911603811127C000 +:102BC000809118038F7009F4D1C08093E90020919F +:102BD000EB0020FF1CC0933021F48091EB00806259 +:102BE00014C09091EB0090619093EB0021E030E0F5 +:102BF000A90102C0440F551F8A95E2F74093EA00ED +:102C00001092EA008091EB0088608093EB001092B4 +:102C1000E9008091E800877F86C08111A7C01091EC +:102C200016031F778091E3008078812B8093E30067 +:102C30008091E800877F8093E8000E949B13809139 +:102C4000E80080FFFCCF8091E30080688093E30080 +:102C5000111102C082E001C083E08093130386C09B +:102C60008058823008F082C080911603909117033B +:102C70008C3D53E0950779F583E08A838AE2898366 +:102C80004FB7F894DE01139620E03EE051E2E32FC7 +:102C9000F0E050935700E49120FF03C0E295EF70FD +:102CA0003F5FEF708E2F90E0EA3010F0C79601C0C2 +:102CB000C0968D939D932F5F243149F74FBF80912C +:102CC000E800877F8093E8006AE270E0CE01019619 +:102CD0000E94A21214C0AE014F5F5F4F60911803B3 +:102CE0000E94E911BC01009709F440C09091E800EE +:102CF000977F9093E80089819A810E9405138091C3 +:102D0000E8008B778093E80031C0803879F58091B6 +:102D1000E800877F8093E80080910F038093F100A3 +:102D20008091E8008E778093E8000E949B131EC07C +:102D300081111CC0909116039230C0F48091E8007C +:102D4000877F8093E80090930F030E949B138091EC +:102D50000F03811106C08091E30087FD02C081E06E +:102D600001C084E0809313030E94E7108091E80083 +:102D700083FF0AC08091E800877F8093E8008091FC +:102D8000EB0080628093EB00AA960FB6F894DEBF4A +:102D90000FBECDBFDF91CF911F9108950895CF93BE +:102DA000809113038823A1F0C091E900CF70909126 +:102DB000EC00892F817090FD80E8C82B1092E9000B +:102DC0008091E80083FD0E947D15CF70C093E900DB +:102DD000CF91089590939302809392020895E09189 +:102DE0009202F0919302309721F00190F081E02D52 +:102DF000099480E00895E0919202F0919302309757 +:102E000021F00280F381E02D09940895E09192026F +:102E1000F0919302309721F00480F581E02D099420 +:102E2000089520919002309191028217930771F0DA +:102E30009093910280939002E0919202F09193021C +:102E4000309721F00680F781E02D099408952091B4 +:102E50008E0230918F028217930771F090938F0248 +:102E600080938E02E0919202F0919302309721F0CC +:102E70000084F185E02D0994089508950C943D1780 +:102E80000E94C4220E9415090E944A230C94F9272B +:102E90005F926F927F928F929F92AF92BF92CF92EA +:102EA000DF92EF92FF920F931F93CF93DF9300D0A7 +:102EB00000D01F92CDB7DEB70E945A099DE9C92EF6 +:102EC00092E0D92E03E010E0AA24A394B12C502E56 +:102ED000802F0E94D5094C01F601729062906F011B +:102EE0006826792661147104A1F40150110978F75C +:102EF0008FEF89838A831B820E94CD228160782F85 +:102F00009D838C8349815A816B818D810E94F81742 +:102F100038C08091F20281FD0E94DE092BE030E092 +:102F20007501022E02C0EE0CFF1C0A94E2F7C701E5 +:102F300086219721892B09F129835A828E209F208F +:102F400091E0892809F490E09B830E94CD22816062 +:102F5000782F9D838C8349815A816B818D810E945A +:102F6000F817000F111FF801EB56FD4F808191817A +:102F7000E826F926F182E08204C02150310980F66A +:102F8000B4CF0E943125109194020E94EF161817B9 +:102F9000D1F00E94EF16809394020F900F900F9043 +:102FA0000F900F90DF91CF911F910F91FF90EF90B5 +:102FB000DF90CF90BF90AF909F908F907F906F9059 +:102FC0005F900C94FF080F900F900F900F900F9050 +:102FD000DF91CF911F910F91FF90EF90DF90CF90F5 +:102FE000BF90AF909F908F907F906F905F9008956B +:102FF000CF93DF93CDB7DEB72B970FB6F894DEBF34 +:103000000FBECDBF4F83588769877A878B87DE01D4 +:10301000119686E0FD0111928A95E9F785E0FE019F +:10302000379601900D928A95E1F749815A816B811B +:103030007C818D819E810E946F1E2B960FB6F89425 +:10304000DEBF0FBECDBFDF91CF910895CF93882310 +:1030500009F4C2C0C82F823859F40E94EF1681FDCE +:10306000BBC089E30E9449210E94162289E30CC05B +:10307000833879F40E94EF1680FDAEC083E50E948C +:1030800049210E94162283E50E948B21CF910C9446 +:103090001622843859F40E94EF1682FD9DC087E401 +:1030A0000E9449210E94162287E4EECF8CEF8C0FFC +:1030B000813A48F48C2F0E94612781118DC08C2F9A +:1030C0000E944921E3CF80E28C0F883048F4C7701A +:1030D00081E001C0880FCA95EAF70E94CF21D6CFC0 +:1030E0008BE58C0F833078F4C53A29F0C63A31F07D +:1030F00083E890E005C081E890E002C082E890E0BB +:10310000CF910C94111788E58C0F833108F064C0BF +:10311000C83A39F1C93A41F1CA3A49F1CB3A51F1C9 +:10312000CC3A59F1CD3A61F1C03B69F1CE3A71F137 +:10313000CF3A79F1C13B81F1C23B89F1C33B91F1B7 +:10314000C43B99F1C53BA1F1C63BA9F1C73BB1F125 +:10315000C83BB9F1C93BC1F1CA3BC9F180E090E07D +:1031600038C082EE90E035C089EE90E032C08AEE41 +:1031700090E02FC085EB90E02CC086EB90E029C05A +:1031800087EB90E026C08CEC90E023C08DEC90E0C3 +:1031900020C083E891E01DC08AE891E01AC082E96E +:1031A00091E017C084E991E014C081E292E011C07F +:1031B00083E292E00EC084E292E00BC085E292E0EE +:1031C00008C086E292E005C087E292E002C08AE28F +:1031D00092E0CF910C942717CF910895882309F49A +:1031E0004BC0823859F40E94EF1681FF45C089E335 +:1031F0000E9449210E94162289E30CC0833871F491 +:103200000E94EF1680FF38C083E50E9449210E948A +:10321000162283E50E948B210C941622843859F4DF +:103220000E94EF1682FF28C087E40E9449210E9475 +:10323000162287E4EFCF9CEF980F913A58F390E273 +:10324000980F983050F4877091E001C0990F8A95DB +:10325000EAF7892F0E94D521DFCF9BE5980F9330A5 +:1032600020F480E090E00C941117885A833120F408 +:1032700080E090E00C9427170895882321F00E94A5 +:10328000CF210C9416220895882321F00E94D52185 +:103290000C94162208957F928F929F92AF92BF92C4 +:1032A000CF92DF92EF92FF920F931F93CF93DF9312 +:1032B0001F92CDB7DEB77C01C62E772EFC010581AB +:1032C00002950F70128111110E94EC210E9442217F +:1032D000882379F0112369F080E28C0D883048F062 +:1032E00082E00E942B210E94422191E0D82ED92613 +:1032F00001C0D12CE72DE295EF70F0E0E05AFF4FCE +:103300000C948A2C872D807F072D0F70882311F055 +:103310000295007F112389F0002309F499C180E20E +:103320008C0D883020F4802F0E94CF2103C0802F85 +:103330000E94DF210E9416228BC18C2D0E94EE1864 +:10334000002309F4C3C180E28C0D883020F4802F63 +:103350000E94D52103C0802F0E94E5210E941622E1 +:10336000B5C1872D807F972D9F70803211F4892FF2 +:1033700003C0892F8295807FCC2021F0F1E0CF1609 +:10338000A1F01DC0112339F0002319F1013009F516 +:103390000E94FF219BC1002319F0013009F496C15E +:1033A00089830E940222898110C1112321F00630F5 +:1033B00008F08CC10EC0053008F088C106C1112389 +:1033C00059F0002331F0F701958190FF41C19F70C2 +:1033D00095830E943D197AC1002309F4F6C03EC1CD +:1033E000872D86958695837090E0009719F0019758 +:1033F00061F06CC1112321F08C2D972D937002C0C8 +:1034000080E090E00E94111761C1112321F08C2D02 +:10341000972D937002C080E090E00E94271756C15C +:103420008C2D112319F00E94392402C00E94A1247E +:103430000E9426254BC1872D837009F052C01111BF +:1034400045C18C2D829586958770880F880F9C2D9D +:103450009F70892E912CA12CB12C082E04C0880CB1 +:10346000991CAA1CBB1C0A94D2F7C4FE14C00FE01E +:1034700010E020E030E0B901A80104C0440F551F5E +:10348000661F771F8A95D2F7CB01BA0160957095B8 +:103490008095909503C060E070E0CB01272D2695C4 +:1034A0002695237030E02230310569F02330310554 +:1034B00089F0682979298A299B292130310571F001 +:1034C0000E94B71F03C1682979298A299B290E9474 +:1034D000D31FFCC00E94B71FC501B4010E949B1FEF +:1034E000F5C0112319F0872D817001C086958823BE +:1034F00009F4ECC08C2D829586958770880F880F13 +:103500009C2D9F70892E912CA12CB12C082E04C0CB +:10351000880C991CAA1CBB1C0A94D2F7C4FE14C0C8 +:103520000FE010E020E030E0B901A80104C0440F32 +:10353000551F661F771F8A95D2F7CB01BA01609598 +:1035400070958095909503C060E070E0CB01272DC9 +:10355000269526952370422F50E04230510569F0A0 +:103560004330510589F0682979298A299B294130FE +:10357000510571F00E949120A9C0682979298A29F2 +:103580009B290E94AD20A2C00E949120C501B401D8 +:103590000E9475209BC08C2D90E0FC01E05EF1093B +:1035A000E531F10508F050C0E059FF4F0C948A2C2A +:1035B0000C2D0F70872D8F71112321F00E940E208A +:1035C000802F07CF0E942F20802F0E9444197EC099 +:1035D000112341F0053008F079C0872D8F710E94CA +:1035E000542074C0063008F071C0F7CF112339F0B1 +:1035F000872D8F710E940E2069C01123C9F3872D7A +:103600008F710E942F2062C0112329F0872D8F71A6 +:103610000E94F91F5BC00E94EF1F58C0112351F098 +:10362000172D1F71812F0E940E2063E0812F0E94B1 +:1036300022214CC081E00E942B21023008F446C0B8 +:1036400082E00E942B2142C0112331F0002381F23D +:103650008C2D0E9426183AC0002389F28C2D0E94DE +:10366000EE1834C0472D4F706C2DC7010E945503D2 +:103670000E94131F2BC0111129C0472D4F7050E01D +:1036800042305105B9F04CF44115510581F04130FB +:103690005105E1F40E94212819C04330510569F019 +:1036A0004430510599F48C2D0E9473280FC00E945C +:1036B0000A280CC00E943D2809C00E94502806C05C +:1036C000472D4F706C2DC7010E94E005DD20F9F0F9 +:1036D0000E941E2180FD1BC0F70112820E9418214A +:1036E0000E940E20C7010E94961B0E9418210F9075 +:1036F000DF91CF911F910F91FF90EF90DF90CF90CE +:10370000BF90AF909F908F907F900C942F200F9040 +:10371000DF91CF911F910F91FF90EF90DF90CF90AD +:10372000BF90AF909F908F907F9008950F931F93BD +:10373000CF93DF93EC01888199812B813C81232BEE +:10374000B9F09F3F11F48F3F99F0CE010E94DF0343 +:10375000882371F0688179818A810E9414218C010B +:103760000E94C9200E94901FB801CE010E944B19EF +:10377000DF91CF911F910F9108950E94EC210E943B +:10378000FC210E94C1210E9416220E94D7250E947E +:10379000262580E090E00E94111780E090E00C94D4 +:1037A00027170E94DC210C94BD1B0E940921292FA0 +:1037B00022952F7030E02C3031054CF42A30310541 +:1037C0006CF42250310922303105A8F407C02C30A6 +:1037D000310569F02F30310551F00DC0803F69F09F +:1037E00018F4803E40F409C0843F29F406C093FBDE +:1037F000882780F9089580E0089581E00895CF93A7 +:10380000DF9300D000D01F92CDB7DEB70F900F909E +:103810000F900F900F90DF91CF910895CF93DF938A +:1038200000D000D000D0CDB7DEB726960FB6F89402 +:10383000DEBF0FBECDBFDF91CF9108951F93CF9311 +:10384000DF93C0919D0216E080919E02C81799F007 +:10385000D0E01C9FF0011D9FF00D1124E156FD4F9B +:103860004081518162817381848195810E940E1C07 +:103870002196C770E9CFDF91CF911F9108954091B4 +:10388000CF025091D0026091D1027091D20280910A +:10389000D3029091D4020C940E1C8091D402829594 +:1038A0008F7009F054C08091D102882309F44FC071 +:1038B00080919D02A0919E026091CF027091D002F2 +:1038C0004091D2025091D302B6E08A1709F43FC06A +:1038D00090E041155105C1F17F3F11F46F3FA1F117 +:1038E000B89FF001B99FF00D1124E156FD4F2181E1 +:1038F00072132AC02081621327C02281211124C0A3 +:10390000238134812417350710F421503109241BF9 +:10391000350B283C3105C0F42091D4022F70206172 +:103920002093D40226E0289FF001299FF00D112456 +:10393000EC55FD4F80818F70806180838FEC92E029 +:103940000E94961B0C941E1C01968770BECF089592 +:10395000CF92DF92EF92FF920F931F93CF93DF935B +:10396000CDB7DEB762970FB6F894DEBF0FBECDBFFE +:103970008C0185E0F801DE011D9601900D928A957B +:10398000E1F7D8014C9111965C91119712966C91C8 +:1039900012971396CD90DC9014973091CF027091CE +:1039A000D0028091D2029091D302009709F46BC1AA +:1039B0007F3F19F43F3F09F466C1E090D102EE2049 +:1039C00009F4C0C02091D402C816D90628F0F60127 +:1039D000E81BF90BCF0104C0809590958C0D9D1DBF +:1039E000FF24F394883C910578F0F12C207F09F0B6 +:1039F000C6C07C2DD98AC88A89890E94FF1B8FEC9A +:103A000092E00E94961BB1C0822F807F09F046C0D1 +:103A1000751314C0341312C0611110C02F702061CF +:103A20002093D4020E943F1C8FEC92E00E94961BD0 +:103A30008091D402D80115968C932EC0CD2819F10F +:103A40005F3F11F44F3FF9F0F62E61111CC08091D9 +:103A50009D0220919E0236E0821709F45AC090E040 +:103A6000389FF001399FF00D1124E156FD4F71810F +:103A7000571306C07081471303C07281711103C0D0 +:103A800001968770E9CFF62E662309F418C180915C +:103A9000D40281608093D402F12C11C1751308C047 +:103AA000341306C0611104C08091D402D801C3C090 +:103AB0004D875E878D859E856A8B0E94D51B6A899E +:103AC0008823E1F16623D1F12091D402822F8295DF +:103AD0008F7090E0029774F08091CF029091D002A5 +:103AE00098878F831986DB86CA862C87CE01079636 +:103AF0000E94961B86E0F801AFECB2E001900D92B7 +:103B00008A95E1F70E944D1C0E943F1CFF24F3940C +:103B1000D6C04D875E878D859E850E940921292FFD +:103B200022952F7030E0223031050CF0BCC09F7020 +:103B300009F0B6C0805E883008F4C1C0C8010E9498 +:103B4000961BE4CFC816D90608F453C0F601E81B4B +:103B5000F90BCF01883C910508F450C0F12C7C2D65 +:103B6000D98AC88A89890E94FF1BEFECF2E086E0BF +:103B7000DF011D928A95E9F70E943F1CA0C07513D2 +:103B800014C0341312C0611110C08091D402F80126 +:103B90008583C8010E94961B86E0EFECF2E0DF010E +:103BA0001D928A95E9F7FE2C8AC04D875E878D8528 +:103BB0009E856A8B0E94D51B6A89882309F4BECF33 +:103BC000662309F4BBCF2091D402822F82958F7097 +:103BD00090E002970CF48ECF8091CF029091D002AA +:103BE0009A8389831B82DD82CC822E83CE0101964B +:103BF0007FCF809590958C0D9D1DACCFF62E6623C2 +:103C000009F49CCF75132EC034132CC02091D4021C +:103C100020FD1FC0822F82958F70D9F0D801159694 +:103C20002C9315978F3049F08F5F982F9295907F46 +:103C3000822F8F70892B15968C93C8010E94961B3A +:103C400086E0F801AFECB2E001900D928A95E1F7C1 +:103C500093CF86E0F801AFECB2E001900D928A9527 +:103C6000E1F72DC04D875E878D859E850E94D51B0F +:103C7000811140CF8091D40281608093D402C80129 +:103C80000E94961B1CC0662309F458CF4D875E879F +:103C90008D859E850E94D51B882309F44FCF2ACF9E +:103CA000811148CF0CC0243031050CF047CF9F70F4 +:103CB00009F440CFF8019581907F09F03BCF8F2D1B +:103CC00062960FB6F894DEBF0FBECDBFDF91CF91E5 +:103CD0001F910F91FF90EF90DF90CF9008951F9369 +:103CE000CF93DF93CDB7DEB72C970FB6F894DEBF36 +:103CF0000FBECDBF4F83588769877A878B879C8794 +:103D0000CE0107960E94A81C882369F08F819885B0 +:103D10002A853B85232BF1F19F3F09F063C08F3F3C +:103D200009F060C037C086E0FE013796DE011196CB +:103D300001900D928A95E1F76F817885EA85FB8580 +:103D4000309741F17F3F11F46F3F21F120919E02A6 +:103D500030E0C90101968770992740919D0250E09B +:103D60008417950709F447C069837A83FD83EC8340 +:103D700096E0929FD001939FB00D1124A156BD4FA4 +:103D8000FE01319601900D929A95E1F780939E0283 +:103D90000E941E1C16E080919D0290919E02891740 +:103DA000C1F1189FC001112481569D4F0E94A81C8B +:103DB000882379F1E0919D021E9FF0011124E156C4 +:103DC000FD4F4081518162817381848195810E9480 +:103DD0000E1C80919D0290E0019687709927809338 +:103DE0009D02D9CF4F81588569857A858B859C85C1 +:103DF0000E940E1CCFCF0E94D11B10929E021092E7 +:103E00009D02EFECF2E086E0DF011D928A95E9F772 +:103E1000C1CF2C960FB6F894DEBF0FBECDBFDF9199 +:103E2000CF911F910895EF92FF920F931F93CF931D +:103E3000DF938C01009709F46CC0F12CEE24E3941D +:103E4000E8012196F8018491843740F4843008F029 +:103E500051C0813081F0823019F15BC0853709F49F +:103E600044C0A8F19CE7980F903708F052C08F77B4 +:103E70000E94EE1841C00E5F1F4FFE01C49180E208 +:103E80008C0F883048F4C7708E2D01C0880FCA95FA +:103E9000EAF70E94EF2114C08C2F0E9426182DC033 +:103EA0000E5F1F4FFE01C49180E28C0F883058F4E2 +:103EB000C7708E2D01C0880FCA95EAF70E94F521C0 +:103EC0000E9416221AC08C2F0E94EE1816C00E5F98 +:103ED0001F4FFE01C491CC2381F08FE99FE0019731 +:103EE000F1F700C00000C150F6CF0E5F1F4FFE017A +:103EF000F49003C00E9426188E018F2D882309F4A8 +:103F00009FCFEFE9FFE03197F1F700C0000081504B +:103F1000F5CFDF91CF911F910F91FF90EF90089512 +:103F200008956093D9027093DA028093DB02909334 +:103F3000DC020C94BD1B0F931F930091D9021091CA +:103F4000DA022091DB023091DC02DC01CB01802B14 +:103F5000912BA22BB32B8093D9029093DA02A093DA +:103F6000DB02B093DC021F910F910C94BD1B0F93E9 +:103F70001F930091D9021091DA022091DB02309157 +:103F8000DC02DC01CB0180239123A223B3238093A5 +:103F9000D9029093DA02A093DB02B093DC021F9166 +:103FA0000F910C94BD1B0F931F930091D902109198 +:103FB000DA022091DB023091DC02DC01CB018027A8 +:103FC0009127A227B3278093D9029093DA02A09376 +:103FD000DB02B093DC021F910F910C94BD1B109279 +:103FE000D5021092D6021092D7021092D8020C94E9 +:103FF000BD1B41E050E060E070E004C0440F551F7D +:10400000661F771F8A95D2F74093D5025093D60248 +:104010006093D7027093D8020C94BD1B41E050E02E +:1040200060E070E004C0440F551F661F771F8A953B +:10403000D2F78091D5029091D602A091D702B0918B +:10404000D802482B592B6A2B7B2B4093D5025093D7 +:10405000D6026093D7027093D8020C94BD1B41E046 +:1040600050E060E070E004C0440F551F661F771FEA +:104070008A95D2F740955095609570958091D502BC +:104080009091D602A091D702B091D802482359232B +:104090006A237B234093D5025093D6026093D702C4 +:1040A0007093D8020C94BD1B41E050E060E070E0DA +:1040B00004C0440F551F661F771F8A95D2F7809161 +:1040C000D5029091D602A091D702B091D80248278C +:1040D00059276A277B274093D5025093D6026093D5 +:1040E000D7027093D8020C94BD1B0F931F930091BD +:1040F000D5021091D6022091D7023091D802DC016E +:10410000CB01802B912BA22BB32B8093D5029093C4 +:10411000D602A093D702B093D8021F910F910C94AE +:10412000BD1B0F931F930091D5021091D6022091D1 +:10413000D7023091D802DC01CB0180239123A22346 +:10414000B3238093D5029093D602A093D702B09365 +:10415000D8021F910F910C94BD1B0F931F930091D8 +:10416000D5021091D6022091D7023091D802DC01FD +:10417000CB0180279127A227B3278093D502909364 +:10418000D602A093D702B093D8021F910F910C943E +:10419000BD1B0895CF92DF92EF92FF920F931F9372 +:1041A000CF93DF938C01C090D902D090DA02E090D7 +:1041B000DB02F090DC028091D5029091D602A091B2 +:1041C000D702B091D802C82AD92AEA2AFB2ACFE11D +:1041D000D0E0D701C6010C2E04C0B695A7959795DF +:1041E00087950A94D2F780FF06C0B8018C2F0E94F1 +:1041F0006508019721F4219760F780E001C08C2FBA +:10420000DF91CF911F910F91FF90EF90DF90CF90B2 +:104210000895CF93DF93EC010E94CA20BE010E9453 +:104220006508DF91CF910895CB010E94092108957F +:104230008091DD0285958595859508958091DD02B3 +:104240008770089598E0899F90011124262B209370 +:10425000DD020C940E202091DD0280958223809354 +:10426000DD02982F977069F430E0482F552747FDFD +:1042700050952417350729F08595859585950C94DB +:104280002F2008959091DD02977081E009F480E07D +:10429000089590911501992321F0909116019111A3 +:1042A00009C02091170130911801F90132969FEF52 +:1042B00040E01FC0982F9695969596959F3050F5A3 +:1042C000E0911701F0911801E90FF11D877021E0CD +:1042D00030E0A90102C0440F551F8A95E2F7CA01D8 +:1042E0009181892B818308959F3F39F04F5F4E3034 +:1042F00041F051915813F8CF0DC05111F7CF942FC1 +:10430000F5CF9F3F39F0F901E90FF11D97FDFA95BF +:1043100082830895089590911501992321F0909139 +:104320001601911109C02091170130911801F9016E +:104330003296205F3F4F1FC0982F96959695969581 +:104340009F30F0F4E0911701F0911801E90FF11D91 +:10435000877021E030E0A90102C0440F551F8A9503 +:10436000E2F7CA018095918189238183089531966E +:10437000E217F30729F090819813F9CF1082F7CF55 +:10438000089581E090E0E0911701F0911801E80FA5 +:10439000F91F1082019680319105A9F70895909137 +:1043A000F102892B8093F102089580959091F1029A +:1043B00089238093F10208951092F102089590915B +:1043C000F002892B8093F002089580959091F0027D +:1043D00089238093F00208951092F002089590913D +:1043E000EF02892B8093EF02089580959091EF0260 +:1043F00089238093EF0208951092EF02089580932D +:10440000DE0208951092DE020895809117019091C6 +:104410001801FC0131969C01205F3F4F80E0919193 +:1044200091118F5FE217F307D1F70895E09117011B +:10443000F09118018091F1028083E0911701F091D1 +:10444000180190818091F002892B8083E0911701FF +:10445000F091180190818091EF02892B80838091E7 +:10446000DE02882361F0E0911701F091180190813C +:10447000892B80830E94052281111092DE02809197 +:104480001701909118010C94FB1620E0009739F069 +:10449000AC0141505109842395232F5FF7CF822F20 +:1044A000089580911303843039F11092F30220E4CF +:1044B00088E190E00FB6F894A895809360000FBE55 +:1044C0002093600080E00E94BC0280E00E94FF0810 +:1044D00083B7817F846083BF83B7816083BF789413 +:1044E000889583B78E7F83BF88E10FB6F894809359 +:1044F0006000109260000FBE08950895089580E056 +:104500000E94BC020E947D220E945A090E947E22C3 +:104510000E94DF0991E0811101C090E0892F089588 +:104520000E94D11B80E00E94BC020E94F9270E94D9 +:10453000EF160C94FF081F920F920FB60F921124E2 +:104540008F939F93AF93BF938091F302811113C018 +:104550008091F4029091F502A091F602B091F702D9 +:104560004196A11DB11D8093F4029093F502A09392 +:10457000F602B093F702BF91AF919F918F910F9088 +:104580000FBE0F901F90189582E084BD93E095BDFB +:104590009AEF97BD80936E0008952FB7F89480919D +:1045A000F4029091F502A091F602B091F7022FBFAC +:1045B0000895CF92DF92EF92FF920F931F932FB740 +:1045C000F8944091F4025091F5026091F6027091D6 +:1045D000F7022FBF6A017B01EE24FF248C0120E04B +:1045E00030E0C016D106E206F30610F4415051093E +:1045F0009A01281B390BC9011F910F91FF90EF9071 +:10460000DF90CF9008951F920F920FB60F92112452 +:104610008F939F93AF93BF938091F4029091F50293 +:10462000A091F602B091F7020196A11DB11D8093F1 +:10463000F4029093F502A093F602B093F702BF91B3 +:10464000AF919F918F910F900FBE0F901F90189573 +:104650000E94EC13F8942FEF87EA91E621508040F6 +:104660009040E1F700C0000087E090EBDC01809310 +:104670001E0390931F03A0932003B09321039CE09B +:1046800088E10FB6F894A895809360000FBE9093D0 +:104690006000FFCF0E948923811102C00E94652320 +:1046A0000E9494238093F2020E949C2380931C0317 +:1046B00087FB882780F9809316010E949823682F32 +:1046C00070E080E090E00C94911F6DEE7EEF80E052 +:1046D00090E00E94B02C60E082E090E00E949E2C6E +:1046E00060E083E090E00E949E2C60E084E090E037 +:1046F0000E949E2C60E085E090E00E949E2C60E08D +:1047000086E090E00E949E2C6FEF87E090E00C9492 +:104710009E2C80E090E00E94982C21E08D3E9E4FE0 +:1047200009F020E0822F089582E090E00C94902C14 +:1047300083E090E00C94902C84E090E00C94902C1A +:10474000682F84E090E00C949E2C86E090E00C941E +:10475000902C682F86E090E00C949E2C87E090E0EF +:104760000C94902C682F87E090E00C949E2C809104 +:10477000FA0280FF0BC060911C0185E0689FB001C8 +:10478000112475956795759567952BC081FF09C0B4 +:1047900060911C0185E0689FB001112475956795B3 +:1047A00020C082FF07C060911C0185E0689FB001B6 +:1047B000112417C09091FB029923D1F060911B0145 +:1047C000961788F720911C0185E0289F90011124FD +:1047D000929FA001939F500D112470E0CA010E9486 +:1047E000762C6038710540F46115710539F002C00E +:1047F00065E070E0862F08958FE7089581E00895C1 +:104800008091FA0280FF08C060911A0170E07595EE +:1048100067957595679521C081FF06C060911A0163 +:1048200070E07595679519C082FF04C060911A0108 +:1048300070E010C09091FB029923C1F060911901C2 +:104840009617A0F780911A01899FC001112470E08A +:104850000E94762C6038710528F46115710521F0ED +:10486000862F08958FE7089581E0089561E070E054 +:10487000F4CF803F21F40E94B723819504C0813F8B +:1048800029F40E94B7238093FE020895823F21F409 +:104890000E94B723819504C0833F29F40E94B72367 +:1048A0008093FD020895893F19F40E94002405C0F9 +:1048B0008A3F31F40E94002481958093FF0208957D +:1048C0008B3F21F40E940024819504C08C3F29F481 +:1048D0000E940024809300030895843F21F4809176 +:1048E000FC02816017C0853F21F48091FC02826048 +:1048F00011C0863F21F48091FC0284600BC0873F89 +:1049000021F48091FC02886005C0883F31F48091D9 +:10491000FC0280618093FC0208958D3F21F4809118 +:10492000FA0281600BC08E3F21F48091FA0282600E +:1049300005C08F3F29F48091FA0284608093FA02C7 +:104940000895803F39F48091FE0287FF6CC0109279 +:10495000FE0269C0813F29F48091FE021816BCF363 +:1049600062C09091FD02823F29F497FF5CC01092D3 +:10497000FD0259C0833F19F41916CCF354C0893F86 +:1049800041F48091FF0218160CF04DC01092FF0206 +:104990004AC08A3F29F48091FF0287FF44C0F6CFC6 +:1049A0008B3F39F48091000387FF3DC010920003D4 +:1049B0003AC08C3F29F4809100031816BCF333C031 +:1049C000843F21F48091FC028E7F17C0853F21F443 +:1049D0008091FC028D7F11C0863F21F48091FC0202 +:1049E0008B7F0BC0873F21F48091FC02877F05C03D +:1049F000883F31F48091FC028F7E8093FC0213C0CB +:104A00008D3F21F48091FA028E7F0BC08E3F21F4FE +:104A10008091FA028D7F05C08F3F29F48091FA02C0 +:104A20008B7F8093FA028091FD0281110EC08091EC +:104A3000FE0281110AC08091FF02811106C080919F +:104A40000003811102C01092FB0208958CEF92E0E6 +:104A50000E9406170E94CD229093F9028093F802DB +:104A600008951F93CF93DF938091F8029091F902FC +:104A70000E94D922AC019091FB02992321F0209150 +:104A80001D0130E006C020911E018AE0289F9001A0 +:104A900011244217530708F486C08091FD02C0918B +:104AA000FE02D091FF0210910003811107C0C111D5 +:104AB00076C0D11174C0111172C075C09F3F19F03A +:104AC0009F5F9093FB02181624F40E94B7238093F3 +:104AD000FD028091FD0287FF05C00E94B7238195EA +:104AE0008093FD021C1624F40E94B7238093FE02DB +:104AF0008091FE0287FF05C00E94B72381958093B5 +:104B0000FE026091FD02662339F1C091FE02CC23C2 +:104B100019F1772767FD7095872F972F0E949829A5 +:104B200023E333E343E35FE30E94A82A0E9465295D +:104B30006093FD026C2F772767FD7095872F972F65 +:104B40000E94982923E333E343E35FE30E94A82A0A +:104B50000E9465296093FE021D1624F40E94002421 +:104B60008093FF028091FF0287FF05C00E9400240E +:104B700081958093FF02111624F40E9400248093F3 +:104B800000038091000387FF05C00E9400248195E7 +:104B900080930003DF91CF911F910C9426259F3FB6 +:104BA00009F08ECF96CFDF91CF911F910895ECEF52 +:104BB000F2E085E0DF011D928A95E9F71092FB0291 +:104BC0001092FA020895833081F128F4813059F06F +:104BD0008230D1F00895853009F449C0B8F18630AB +:104BE00009F456C0089580911E01262F30E0280F49 +:104BF000311D2F3F310524F4680F60931E01089585 +:104C00008FEF80931E01089580911D01262F30E0C3 +:104C1000280F311D2F3F310524F4680F60931D01CB +:104C200008958FEF80931D01089580911C01262F18 +:104C300030E0280F311D2F3F310524F4680F6093B9 +:104C40001C0108958FEF80931C01089580911B0132 +:104C5000262F30E0280F311D2F3F310524F4680F37 +:104C600060931B0108958FEF80931B01089580913D +:104C70001A01262F30E0280F311D2F3F310524F473 +:104C8000680F60931A0108958FEF80931A010895B9 +:104C900080911901262F30E0280F311D2F3F31055B +:104CA00024F4680F6093190108958FEF8093190120 +:104CB0000895833011F128F4813049F0823091F069 +:104CC0000895853081F120F18630C1F108958091F9 +:104CD0001E01681720F4861B80931E010895109210 +:104CE0001E01089580911D01681720F4861B809392 +:104CF0001D01089510921D01089580911C016817EF +:104D000020F4861B80931C01089510921C010895C5 +:104D100080911B01681720F4861B80931B01089566 +:104D200010921B01089580911A01681720F4861BC8 +:104D300080931A01089510921A0108958091190123 +:104D4000681720F4861B80931901089510921901A9 +:104D500008950F931F93873208F048C08E3108F0F2 +:104D60008DC0803109F477C008F5873009F461C03F +:104D700068F4863009F09DC08091F202817F8E7FB9 +:104D80008093F20281E08093020394C08B3009F497 +:104D900089C08E3009F08DC08091F20282FB2227FB +:104DA00020F991E0922790FB82F95EC0863109F4E8 +:104DB00079C060F4813109F07CC00E94D11B9091D0 +:104DC000160181E08927809316016CC0893109F4AE +:104DD00069C08B3109F06DC08091F20281FB2227FE +:104DE00020F991E0922790FB81F93EC0883309F4C5 +:104DF00059C050F4893209F457C0853309F454C0BE +:104E0000873209F451C055C0833409F44DC028F4E9 +:104E10008A3308F44EC0895332C0883409F049C03F +:104E20000E94D11B0E940F0A0E94D6030E942823D1 +:104E300039C09091F202892F8095817080FB90F9A2 +:104E400029F0966098609093F20234C0997F977F22 +:104E50009093F20227C08091F20283FB222720F96F +:104E600091E0922790FB83F98093F2029923D1F08D +:104E70008091F20281608093F20214C08D5141E072 +:104E800050E060E070E08A019B0104C0000F111F38 +:104E9000221F331F8A95D2F7C901B8010E94911FC2 +:104EA0000E94D11B81E006C061E070E080E090E0EC +:104EB000F5CF80E01F910F91089580E0089580E084 +:104EC0000895CF93C82F80910203813069F018F0C4 +:104ED0008230C9F184C0E0911701F09118018081FE +:104EE000823209F07EC007C0E0911701F0911801ED +:104EF0008081823261F48C2F0E945D27811104C071 +:104F00008C2F0E94A9261DC081E090E01AC08C2F32 +:104F10000E945F27811114C0C43179F048F4CB306E +:104F200079F0C03109F061C082E08093020308C0CB +:104F3000C93219F0C83321F058C01092020355C08D +:104F400081E0817054C0C93291F120F5C43179F10A +:104F5000B0F4C73009F047C08EE180931E0182E3B0 +:104F600080931D018AE080931C0184E180931B01E2 +:104F700088E080931A0188E28093190134C0CE51F1 +:104F8000C63088F5EC2FF0E0EA54FE4F8081809324 +:104F9000010329C0CE34E9F020F4CB3421F56AE0D6 +:104FA00013C0C13579F0C235F1F461E00DC08091D4 +:104FB0000103882319F01092010315C081E080934A +:104FC000020315C061E006C0809101030E94E32541 +:104FD0000AC06AE0809101030E94592604C0109221 +:104FE000020380E004C081E002C080E0AACFCF913C +:104FF00008950E948923811102C00E9465230E94A6 +:10500000A52380931D0380FF02C0869501C080E028 +:105010000C94BC0280911D03982F9695292F30E0A7 +:10502000233031054CF49F5F990F8170892B81608B +:1050300080931D030E94A92380911D0386950C94E3 +:10504000BC0280911D03982F969591F09158990F6D +:105050008170892B80931D038E7F91E009F490E08D +:1050600080911D0390FB80F980931D030E94A9236A +:1050700080911D0386950C94BC0280911D03982F8E +:10508000909590FB80F980931D030E94A923809145 +:105090001D0380FF02C0869501C080E00C94BC0215 +:1050A00090911D03892F86958F5F8F779170843043 +:1050B00028F4880F892B80931D0302C090931D0351 +:1050C00080911D038E7F91E009F490E080911D0393 +:1050D00090FB80F980931D030E94A92380911D03FA +:1050E00086950C94BC0220911D03922F96958927DA +:1050F000982F990F822F8170892B80931D038E7FAB +:1051000091E009F490E080911D0390FB80F9809379 +:105110001D030E94A92380911D0386950C94BC0257 +:1051200080911D03869508955058BB27AA270ED05D +:10513000D1C1C2D130F0C7D120F031F49F3F11F47A +:105140001EF4B7C10EF4E095E7FB9FC1E92FD3D160 +:1051500080F3BA17620773078407950718F071F494 +:105160009EF5EBC10EF4E0950B2EBA2FA02D0B018E +:10517000B90190010C01CA01A0011124FF27591B9C +:1051800099F0593F50F4503E68F11A16F040A22FA2 +:10519000232F342F4427585FF3CF46953795279513 +:1051A000A795F0405395C9F77EF41F16BA0B620B12 +:1051B000730B840BBAF09150A1F0FF0FBB1F661F59 +:1051C000771F881FC2F70EC0BA0F621F731F841F9C +:1051D00048F4879577956795B795F7959E3F08F0C2 +:1051E000B3CF9395880F08F09927EE0F9795879581 +:1051F000089527D108F481E008950CD06BC163D1E4 +:1052000040F05AD130F021F45F3F19F03EC1511106 +:1052100095C14FC170D198F39923C9F35523B1F3C8 +:10522000951B550BBB27AA2762177307840738F015 +:105230009F5F5F4F220F331F441FAA1FA9F333D074 +:105240000E2E3AF0E0E830D091505040E695001C28 +:10525000CAF729D0FE2F27D0660F771F881FBB1FE4 +:10526000261737074807AB07B0E809F0BB0B802DBE +:10527000BF01FF2793585F4F2AF09E3F510568F00A +:1052800004C15CC15F3FECF3983EDCF386957795F3 +:105290006795B795F7959F5FC9F7880F911D96950C +:1052A000879597F90895E1E0660F771F881FBB1F68 +:1052B000621773078407BA0720F0621B730B840B15 +:1052C000BA0BEE1F88F7E095089504D06894B111E9 +:1052D00035C1089518D188F09F5790F0B92F9927BC +:1052E000B751A0F0D1F0660F771F881F991F1AF0F1 +:1052F000BA95C9F712C0B13081F01FD1B1E008955D +:105300001CC1672F782F8827B85F39F0B93FCCF3DD +:10531000869577956795B395D9F73EF490958095E6 +:10532000709561957F4F8F4F9F4F0895E89409C006 +:1053300097FB3EF490958095709561957F4F8F4FC8 +:105340009F4F9923A9F0F92F96E9BB279395F695DE +:10535000879577956795B795F111F8CFFAF4BB0F5C +:1053600011F460FF1BC06F5F7F4F8F4F9F4F16C0C0 +:10537000882311F096E911C0772321F09EE8872F4A +:10538000762F05C0662371F096E8862F70E060E006 +:105390002AF09A95660F771F881FDAF7880F96957F +:1053A000879597F9089588D018F011F08CD038F4CB +:1053B00080C0C4C0E92F9FD0B0F35523C9F3E7FBE9 +:1053C0006217730784079507A8F199F3E92FFF2760 +:1053D00088232AF03197660F771F881FDAF7952FF9 +:1053E0005527442332F091505040220F331F441F61 +:1053F000D2F7BB27E91BF50B621B730B840BB109BA +:10540000C1F222F4620F731F841FB11D31972AF07D +:10541000660F771F881FBB1FEFCF915050405AF087 +:1054200041F0882332F0660F771F881F915050405B +:10543000C1F7939530C08695779567959F5FD9F7AB +:10544000F8CF990F0008550FAA0BE0E8FEEF1616EB +:105450001706E807F907C0F012161306E407F50768 +:1054600098F0621B730B840B950B39F40A2661F0DC +:10547000232B242B252B21F408950A2609F4A1407F +:10548000A6958FEF811D811D089597F99F6780E88C +:1054900070E060E008959F3F31F0915020F48795CF +:1054A00077956795B795880F911D9695879597F98C +:1054B00008959FEF80EC089500240A9416161706AD +:1054C00018060906089500240A94121613061406F5 +:1054D00005060895092E0394000C11F4882352F058 +:1054E000BB0F40F4BF2B11F460FF04C06F5F7F4F10 +:1054F0008F4F9F4F089557FD9058440F551F59F0F7 +:105500005F3F71F04795880F97FB991F61F09F3FB0 +:1055100079F087950895121613061406551FF2CFD9 +:105520004695F1DF08C0161617061806991FF1CF29 +:1055300086957105610508940895E894BB27662750 +:105540007727CB0197F908957CDF08F48FEF089552 +:105550000BD0C0CFB1DF28F0B6DF18F0952309F0EB +:1055600094CFA7CF1124EACFC6DFA0F3959FD1F344 +:10557000950F50E0551F629FF001729FBB27F00D01 +:10558000B11D639FAA27F00DB11DAA1F649F662756 +:10559000B00DA11D661F829F2227B00DA11D621FA5 +:1055A000739FB00DA11D621F839FA00D611D221F5F +:1055B000749F3327A00D611D231F849F600D211D43 +:1055C000822F762F6A2F11249F5750408AF0E1F0E6 +:1055D00088234AF0EE0FFF1FBB1F661F771F881F2F +:1055E00091505040A9F79E3F510570F04ECFA6CF85 +:1055F0005F3FECF3983EDCF3869577956795B7951A +:10560000F795E7959F5FC1F7FE2B880F911D969543 +:10561000879597F90895FA01EE0FFF1F309621053F +:10562000310599F16115710561F48038BFE39B077D +:1056300049F168949038810561F08038BFEF9B078D +:1056400041F0992342F5FF3FE1053105210511F1B4 +:10565000E8940894E795D901AA2329F4AB2FBE2F2B +:10566000F85FD0F310C0FF5F70F4A695E0F7F7394C +:1056700050F019F0FF3A38F49F779F930CD00F90B9 +:1056800007FC905808953EF014CF60E070E080E889 +:105690009FE308954FE79F775F934F933F932F9337 +:1056A0009ED02F913F914F915F9152DF05C019F429 +:1056B0000EF0EBCE42CFFDCE26DFC8F39638C0F712 +:1056C00007F80F92E8942BE33AEA48EB5FE74EDFE6 +:1056D0000F920F920F924DB75EB70F92C0D0EAE0D3 +:1056E000F1E016D04F915F91EF91FF91E595EE1F9C +:1056F000FF1F49F0FE57E0684427EE0F441FFA955C +:10570000E1F74195550B32D00F9007FE26C0089562 +:10571000DF93CF931F930F93FF92EF92DF927B0162 +:105720008C01689405C0DA2EEF011EDFFE01E894BB +:10573000A5912591359145915591AEF3EF0106DD87 +:10574000FE019701A801DA9479F7DF90EF90FF90BE +:105750000F911F91CF91DF9108959B01AC0160E003 +:1057600070E080E89FE349CD90CE95CECCDEE8F3A3 +:105770009923D9F3940F511DBBF39150504094F0ED +:1057800059F0882332F0660F771F881F91505040E0 +:10579000C1F79E3F510544F7880F911D9695879557 +:1057A00097F908955F3FACF0983E9CF0BB27869533 +:1057B00077956795B79508F4B1609395C1F7BB0FDE +:1057C00058F711F460FFE8CF6F5F7F4F8F4F9F4F07 +:1057D000E3CFB4CE0EF05FCE6CCE689456CE93DE9F +:1057E000C8F39923D1F3C6F3DF93CF931F930F939D +:1057F000FF92C92FDD2788232AF02197660F771F94 +:10580000881FDAF720E030E040E85FEB9FE388395B +:1058100020F0803E30F021968F7787DCE2E3F1E0E4 +:1058200003C083DCEFE5F1E073DF8B01BE01EC0127 +:10583000FB2E6F5771097595771F880B990B78DDD3 +:1058400028E132E741E35FE38FDEAF2D9801AE013F +:10585000FF900F911F91CF91DF9178DC3BCEFA0141 +:10586000DC01AA0FBB1F9B01AC01BF5728F4222704 +:105870003327442750781FC0B75188F4AB2F00243A +:10588000469537952795011CA395D2F3002069F022 +:10589000220F331F441FB395DAF30DD045CC61308E +:1058A0007105A0E88A07B94630F49B01AC01662770 +:1058B000772788279078309621F0208331834283A0 +:1058C00053830895AA1BBB1B51E107C0AA1FBB1F2E +:1058D000A617B70710F0A61BB70B881F991F5A957C +:1058E000A9F780959095BC01CD01089597FB072EEF +:1058F00016F4009407D077FD09D00E94622C07FCB3 +:1059000005D03EF4909581959F4F089570956195CF +:105910007F4F0895EE0FFF1F0590F491E02D09943D +:10592000F999FECF92BD81BDF89A992780B5089567 +:10593000A8E1B0E042E050E00C94B82C262FF99991 +:10594000FECF92BD81BDF89A019700B4021639F0DE +:105950001FBA20BD0FB6F894FA9AF99A0FBE0895AF +:105960000196272F0E949F2C0C949E2CDC01CB01CA +:10597000FC01F999FECF06C0F2BDE1BDF89A31965F +:1059800000B40D9241505040B8F70895F894FFCFFD +:10599000640007000CFF0000003F64F30F81105EFD +:1059A000102A10F60F0101DF022808140A321E0027 +:1059B00002040507090B0C0E1011131517181A1CF9 +:1059C0001D1F2123242628292B2D2F303234353733 +:1059D000393B1F0F03764F5F6F7F49694379095940 +:1059E00053633149803F5D8B803FF8BF803FCAE100 +:1059F000803F73ED803FCAE1803FF8BF803F5D8B01 +:105A0000803F3149803F0000803FF16D7F3F75EA64 +:105A10007E3F4C827E3F833F7E3F84287E3F833F94 +:105A20007E3F4C827E3F75EA7E3FF16D7F3F0000F6 +:105A3000803F3F4D3639830436040004C7035A03C0 +:105A400073038C03A503010203040506070809007C +:00000001FF diff --git a/keyboards/planck/keymaps/lukas/keymap.c b/keyboards/planck/keymaps/lukas/keymap.c new file mode 100644 index 000000000..6fd95378b --- /dev/null +++ b/keyboards/planck/keymaps/lukas/keymap.c @@ -0,0 +1,64 @@ +#include "planck.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif + +// This simple keymap is optimized for xmonad users using super as their modifier key. +// M(1) makes it possible to change virtual screens and swap windows between them. + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +#define _QW 0 +#define _LW 1 +#define _RS 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QW] = { /* Qwerty */ + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {KC_LCTL, KC_LALT, KC_LGUI, M(1), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + }, + [_RS] = { /* RAISE */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL }, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} + }, + [_LW] = { /* LOWER */ + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} + } +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + case 1: + if (record->event.pressed) { + register_code(KC_LGUI); + layer_on(_RS); + } else { + unregister_code(KC_LGUI); + layer_off(_RS); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboards/planck/keymaps/max/Makefile b/keyboards/planck/keymaps/max/Makefile new file mode 100644 index 000000000..581e08cd0 --- /dev/null +++ b/keyboards/planck/keymaps/max/Makefile @@ -0,0 +1,25 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/max/compiled.hex b/keyboards/planck/keymaps/max/compiled.hex new file mode 100644 index 000000000..d9594415f --- /dev/null +++ b/keyboards/planck/keymaps/max/compiled.hex @@ -0,0 +1,1449 @@ +:100000000C9496020C94DA020C94DA020C94DA0244 +:100010000C94DA020C94DA020C94DA020C94DA02F0 +:100020000C94DA020C94DA020C9478140C944A15AD +:100030000C94AC220C94DA020C94DA020C94DA02DE +:100040000C94DA020C943C030C94DA020C94DA025D +:100050000C94DA020C9414230C94DA020C94DA0255 +:100060000C94DA020C94DA020C94DA020C94DA02A0 +:100070000C94DA020C94DA020C94DA020C94DA0290 +:100080000C94ED0A0C94DA020C94DA020C94DA0265 +:100090000C94DA020C94DA020C94DA020C94DA0270 +:1000A0000C94DA020C94DA020C94DA02B715D91522 +:1000B000C716D915C7161E164116C7169616A916C5 +:1000C00093199319C219C219011A211A771B771BA8 +:1000D0002C1A771BDC1ADC1A431B4C1B771B711B79 +:1000E000E91AE91AE91AE91AE91AE91AE91AE91AF8 +:1000F000E91AE91AE91AE91AE91AE91AE91AE91AE8 +:10010000F91A071B0E1B151B1F1B07634236B79BF3 +:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 +:100120005763BD6DEDFD753EF6177231BF000000DF +:10013000803F08000000BE922449123EABAAAA2AC2 +:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD +:1001500000000000BF000000803F00000000000819 +:100160004178D3BB4387D1133D190E3CC3BD4282B6 +:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 +:10018000FFBE01C4FF7F3F00000000000000000030 +:1001900000000000000000010204060A0F17202CD6 +:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 +:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF +:1001C0000201000000000000000000000000F1A299 +:1001D000F1A3018C028C290014001A0008001500FC +:1001E00017001C0018000C00120013002A002B003E +:1001F00004001600070009000A000B000D000E00A5 +:100200000F0033002800E1001D001B00060019004C +:100210000500110010003600370038003400E000FF +:100220008350E200E30002202C002C00012050004B +:10023000510052004F00290014001A000900130059 +:100240000A000D000F0018001C0033002A002B00CC +:10025000040015001600170007000B00110008002D +:100260000C0012002800E1001D001B000600190010 +:1002700005000E0010003600370038003400E000A2 +:100280008350E200E30002202C002C0001205000EB +:10029000510052004F0035001E001F0020002100B9 +:1002A0002200230024002500260027002A00010048 +:1002B0000320042000500100010001002D002E0049 +:1002C0002F00300001000100440045006800690073 +:1002D0006A006B006C006D006E006F003100010061 +:1002E0000100010001000100010001000120AB003C +:1002F000AA00A900AE0035021E021F022002210240 +:100300002202230224022502260227022A000100DB +:100310000320042000500100010001002D022E02E4 +:100320002F023002010001003A003B003C003D007A +:100330003E003F0040004100420043003102010006 +:100340000100010001000220010001000100AB00DA +:10035000AA00A900AE002803540068006500200030 +:1003600050006C0061006E0063006B0020004B00C9 +:100370006500790062006F00610072006400000097 +:100380002C034F007200740068006F006C0069005D +:100390006E0065006100720020004B00650079006E +:1003A00062006F00610072006400730000000403CB +:1003B000090409026D00040100A0FA09040000010B +:1003C00003010100092111010001223F00070581FD +:1003D0000308000A090401000103010200092111B8 +:1003E000010001224D000705820308000A090402EA +:1003F000000103000000092111010001223600075D +:1004000005830308000A0904030001030000000932 +:100410002111010001223900070584031000011297 +:1004200001100100000008EDFE6060010001020003 +:100430000105010906A101050719E029E7150025B5 +:1004400001950875018102050819012905950575B1 +:10045000019102950175039101050719002977158E +:10046000002501957875018102C005010980A1016F +:10047000850216010026B7001A01002AB700751080 +:1004800095018100C0050C0901A101850316010039 +:10049000269C021A01002A9C02751095018100C059 +:1004A00005010902A1010901A10005091901290598 +:1004B00015002501950575018102950175038101DE +:1004C0000501093009311581257F950275088106DE +:1004D00009381581257F950175088106050C0A38B4 +:1004E000021581257F950175088106C0C0050109A7 +:1004F00006A101050719E029E715002501950875F2 +:1005000001810295017508810105081901290595E8 +:1005100005750191029501750391010507190029DF +:10052000FF150025FF950675088100C011241FBE28 +:10053000CFEFDAE0DEBFCDBF04B603FE24C080916A +:100540001E0390911F03A0912003B09121038730D7 +:10055000904BA740B04BB9F410921E0310921F03AA +:10056000109220031092210314BE84B7877F84BFAA +:1005700088E10FB6F89480936000109260000FBE7F +:10058000E0E0F8E3099511E0A0E0B1E0E2EBF9E585 +:1005900002C005900D92A03CB107D9F713E0A0EC82 +:1005A000B1E001C01D92AE31B107E1F70E94BE116A +:1005B0000C94D72C0C9400000895089581E00895C0 +:1005C00008950C94DD020C94DE020C94E0020E946B +:1005D000A12823E030E0281B3109220F2093C40119 +:1005E0000895282F2F9880918000211108C0877FBF +:1005F0008093800010928D0010928C001BC0886048 +:1006000080938000233019F48FEF9FEF0FC083E0B9 +:1006100090E0821B9109880F991F2FEF3FEFA901EE +:1006200002C0569547958A95E2F7CA0190938D00CE +:1006300080938C000C94E7020E94E70284E0809390 +:10064000C3011092C0010895279A2F988FEF9FEF52 +:1006500090938700809386008AE08093800089E1F0 +:10066000809381000E940A280C941C030E9424039A +:100670006E9A769A0C94DC021F920F920FB60F922C +:1006800011242F933F938F939F93EF93FF93E091C8 +:10069000C101F091C201CF0101969093C2018093F4 +:1006A000C1010090C30102C0F695E7950A94E2F7F4 +:1006B000EF738091C001823019F4E03251F404C02C +:1006C000813039F4EF3329F480916F008D7F80936E +:1006D0006F00F0E0E457FE4FE49121E031E0E29F4B +:1006E000C001E39F900D11240090C40102C09695B3 +:1006F00087950A94E2F790938D0080938C00FF9188 +:10070000EF919F918F913F912F910F900FBE0F907E +:100710001F90189581E008950C948A0308950C9415 +:10072000360380911502882309F448C08091D101D5 +:100730009091D201009779F40E94DE229093D20129 +:100740008093D1018091D30190E0009771F4809162 +:10075000D40190E00AC00E94EA2220910001309169 +:1007600001012817390740F329C00197880F991F05 +:10077000880F991FFC01EB52FE4F608171818281CD +:1007800093810E94530AE091D30184E0E89FF00135 +:100790001124EB52FE4F60817181828193814FE081 +:1007A00050E00E940B0E8091D30190E00196609181 +:1007B000D40170E00E94872C8093D3010C94E10255 +:1007C000109217020C94200A0895089581E08093F6 +:1007D00017020C94E503089508958F929F92AF92AB +:1007E000BF92EF92FF920F931F93CF93DF93CDB7FA +:1007F000DEB7A3970FB6F894DEBF0FBECDBF7C0166 +:10080000FC0100811181C8010E94DB20B8010E9417 +:10081000F2058C01B7010E948C03882309F4CCC136 +:100820000032F0E51F0741F4F7018281882309F4C3 +:1008300058C00E946F0EC0C10132F0E51F0741F49D +:10084000F7018281882309F44CC00E94780EB4C15C +:100850000232F0E51F0751F4F7018281882309F481 +:1008600040C00E946B0E8111F0CFE3CF0332F0E560 +:100870001F0739F4F7018281882399F10E94E6036A +:100880009BC10432F0E51F0739F4F7018281882308 +:1008900041F10E94E00390C10532F0E51F0749F4E1 +:1008A000F70182818823E9F0809117028111F1CF4D +:1008B000E5CF0632F0E51F0739F4F701828188237E +:1008C00081F00E947F0E0AC00732F0E51F0749F44D +:1008D000F7018281882329F00E948A0E0E94EC038E +:1008E0006BC180911702811105C0F70182818111CE +:1008F000CFC018C1003E110579F4F7018281882329 +:1009000009F44DC00E94200A81E0809316021092E3 +:1009100015021092D40150C1023E110559F4F7019D +:1009200082818823E1F10E94200A1092160210921F +:10093000150242C1033E110591F4F701828188231B +:1009400071F10E94200A1092160281E08093150234 +:100950001092D3011092D2011092D1012DC1023513 +:10096000110559F4F7018281882309F425C180918A +:100970000001909101010A970DC00135110579F42C +:10098000F7018281882309F417C1809100019091B9 +:1009900001010A9690930101809300010DC14091DD +:1009A000040183E2EFE1F1E0DE01119601900D9286 +:1009B0008A95E1F7F701808121E030E02C0F3D1F9F +:1009C000280F311DC9012091020130910301FC0162 +:1009D000E20FF31F6081772767FD7095640F711D2B +:1009E000882777FD8095982F0E94A92920E030E084 +:1009F00040E451E40E940E294B015C01F701218182 +:100A000084E090E0821B9109BC01882777FD8095E6 +:100A1000982F0E94A9299B01AC01C501B4010E9435 +:100A2000A6289B01AC0160E070E080E090E40E94A9 +:100A30001C2B20E030E04CED50E40E94B92A4B0121 +:100A40005C01F70182818823D1F04FE050E0C501BD +:100A5000B4010E940B0E809116028823A1F08091B0 +:100A6000D40124E0829FF0011124EB52FE4F8082DA +:100A70009182A282B3828F5F8093D40104C0C501AA +:100A8000B4010E94530A0F3F110508F02ECF94C005 +:100A90008091D00181111FC0043130E5130709F0A6 +:100AA00051C00E948E0381E08093D0010E94DE221B +:100AB0009093CF018093CE011092C7011092C9018B +:100AC0001092C8011092CB011092CA011092CD0170 +:100AD0001092CC0171C08091CE019091CF010E9403 +:100AE000EA22883C910570F48091C701E82FF0E07C +:100AF000EE0FFF1FE853FE4F118300838F5F80933B +:100B0000C7015AC0043880E5180721F005381045A0 +:100B100001F13AC0F7018281882341F01092C501AA +:100B200082E01EC0043830E5130759F58091C501F5 +:100B3000811106C086E20E94371886E20E94FF18E3 +:100B400082E01CC00438F0E51F0741F3053810456A +:100B5000D9F4F7018281882331F01092C60180E236 +:100B60000E944E1929C08091C601811106C087E2FA +:100B70000E94371887E20E94FF1880E20E945519F0 +:100B80001BC00538104529F381E08093C50180938F +:100B9000C601C701A3960FB6F894DEBF0FBECDBF46 +:100BA000DF91CF911F910F91FF90EF90BF90AF9089 +:100BB0009F908F900C94E30280E0A3960FB6F89478 +:100BC000DEBF0FBECDBFDF91CF911F910F91FF9080 +:100BD000EF90BF90AF909F908F90089580E090E04D +:100BE000089508959CE0799FF001112490E3899F76 +:100BF000E00DF11D1124E60FF11DEE0FFF1FEA526B +:100C0000FE4F859194910895880F991FFC01E45B34 +:100C1000FF4F859194910895880F991FFC01E4532B +:100C2000FE4F8591949108950F931F93CF93DF9377 +:100C3000EC01811521E39207A0F5C11580E3D807E7 +:100C400008F0D7C0C83ED105D8F4C03ED10508F0A1 +:100C500007C2C83AD10578F4C53AD10508F06AC090 +:100C6000C130D10509F463C008F4F7C1C430D1051F +:100C700008F0F6C1F2C1CB3BD10508F466C0EDC166 +:100C8000C11590E2D90708F0AFC0C11521E0D20725 +:100C900008F0E6C1C03FD10508F4DFC18E01106540 +:100CA0001FC2C03880E5D80700F5C03790E5D907E6 +:100CB00008F0A3C0C11520E5D20709F4ACC050F478 +:100CC000CE01905480319F4008F0C7C1DF708E0183 +:100CD000106A06C2C13080E5D80709F4AEC0C4313D +:100CE00090E5D90708F4AFC0B8C1C33820E5D207F2 +:100CF00009F48EC050F4C13890E5D90709F482C0D8 +:100D000008F083C000E011EDEBC1C03181E5D807E8 +:100D100008F4A3C1C11597E5D90708F436C1CE017F +:100D200090578115904108F098C1DF7093C101E0A0 +:100D300010E0D6C1C53AD10509F494C1C63AD1052F +:100D400009F093C102E810E4CBC1C83AD10509F417 +:100D50008FC1C93AD10509F48EC1CA3AD10509F447 +:100D60008DC1CB3AD10509F48CC1CC3AD10509F437 +:100D70008BC1CD3AD10509F48AC1C03BD10509F434 +:100D800089C1CE3AD10509F488C1CF3AD10509F419 +:100D900087C1C13BD10509F486C1C23BD10509F425 +:100DA00085C1C33BD10509F484C1C43BD10509F415 +:100DB00083C1C53BD10509F482C1C63BD10509F405 +:100DC00081C1C73BD10509F480C1C83BD10509F4F5 +:100DD0007FC1C93BD10509F47EC1CA3BD10509F4E5 +:100DE0007DC100E014E47CC1CE019F700E940C061E +:100DF00078C1DD278E01106C73C1CF70DD278E01A5 +:100E0000146D6EC100E010ED6BC100E012ED68C121 +:100E100000E013ED65C10E94E21B0E94200A0E94BF +:100E2000E4038FEF94E32CE0815090402040E1F701 +:100E300000C000000E94392353C18091F2028160FA +:100E40008093F2024DC10E949A23811102C00E9438 +:100E500076230E94AD2390E090931D0380931C03A2 +:100E6000C23080E5D80721F480911C03816086C0E0 +:100E7000C43090E5D90721F480911C0382607EC0C4 +:100E8000C63020E5D20721F480911C03846076C02F +:100E9000C83080E5D80719F480911C0327C0CA30F8 +:100EA00090E5D90721F480911C03806167C0CC30A4 +:100EB00020E5D20721F480911C0380625FC0CE3010 +:100EC00080E5D80721F480911C03806457C0C031AD +:100ED00090E5D90721F480911C0380684FC0C2318E +:100EE00020E5D20729F480911C038460886046C005 +:100EF000C33080E5D80721F480911C038E7F3EC06B +:100F0000C53090E5D90721F480911C038D7F36C050 +:100F1000C73020E5D20721F480911C038B7F2EC0BF +:100F2000C93080E5D80719F480911C0326C0CB3066 +:100F300090E5D90721F480911C038F7E1FC0CD302E +:100F400020E5D20721F480911C038F7D17C0CF309C +:100F500080E5D80721F480911C038F7B0FC0C1313D +:100F600090E5D90721F480911C038F7707C0C33126 +:100F7000D04531F480911C038B7F877F80931C03C5 +:100F800080911C030E94B123ABC08D2F99278F70D5 +:100F9000992781309105D9F49E012370332702C02F +:100FA000880F991F2A95E2F79C688E0144E0000F94 +:100FB000111F4A95E1F700271370802B912B53E006 +:100FC000CC0FDD1F5A95E1F7C076DD272FC08230A8 +:100FD000910531F4DC2FCC278E01016F106A80C09F +:100FE0008330910569F4CE018370992701E010E008 +:100FF00002C0000F111F8A95E2F7C8019C680FC05C +:1010000084309105B9F4CE018370992701E010E096 +:1010100002C0000F111F8A95E2F7C8019A6823E009 +:10102000CC0FDD1F2A95E1F7C07ED7708C010C2B09 +:101030001D2B56C08530910531F4DC2FCC278E0155 +:10104000046F106A4DC0069709F04AC0CF71DD27C2 +:10105000DC2FCC278E01106243C000E010E040C0BE +:101060008E013EC001E810E43BC003E810E438C044 +:1010700002EE14E435C009EE14E432C00AEE14E4C2 +:101080002FC005EB14E42CC006EB14E429C007EBD9 +:1010900014E426C00CEC14E423C00DEC14E420C0CE +:1010A00003E815E41DC00AE815E41AC002E915E4D6 +:1010B00017C004E915E414C001E216E411C003E20C +:1010C00016E40EC004E216E40BC005E216E408C004 +:1010D00006E216E405C007E216E402C00AE216E4DE +:1010E000C801DF91CF911F910F9108959CE0799FE6 +:1010F000F001112490E3899FE00DF11D1124E60F0A +:10110000F11DEE0FFF1FEA52FE4F85919491803E34 +:101110009105E0F4803C910558F58133910509F47F +:101120006FC048F48932910509F463C08A32910591 +:1011300009F46DC072C089339105E9F082389105D8 +:10114000D1F08533910509F44DC067C0833E910508 +:1011500081F138F4803E9105B9F0823E9105D9F0D5 +:101160005CC0863E910561F1873E9105A1F155C0B5 +:101170000E940406089520911C0320FD02C021FF57 +:101180004CC080EE90E049C080911C0380FFF9CFF5 +:1011900089E390E042C080911C0382FF0EC08091E1 +:1011A0001C0384FF03C080E090E037C083EE90E032 +:1011B00034C080911C0382FFF2CF82EE90E02DC0FC +:1011C00080911C0383FF0BC080911C0384FDEBCF37 +:1011D00087EE90E022C080911C0383FFF5CF86EE5E +:1011E00090E01BC080911C0385FF07C089E290E05E +:1011F00014C080911C0385FFF9CF85E390E00DC0FA +:1012000080911C0386FF07C08AE290E006C08091AF +:101210001C0386FFF9CF81E390E00E941406089535 +:101220000C94E502E82FF0E0E25BFE4F8081E82FAE +:10123000EF70F0E082958F7021E030E0A90102C0EC +:10124000440F551F8A95E2F740A308950F931F930B +:10125000CF93DF9385B7806885BF85B7806885BFEA +:10126000C3E0D0E001E010E0FE01E25BFE4F8081D0 +:10127000E82FEF70F0E021A182958F70A80102C0E5 +:10128000440F551F8A95E2F7CA01822B81A38C2F48 +:101290000E941209219740F78BE090E061E070E036 +:1012A000FC01EE5BFE4F2081E22FEF70F0E042A1E7 +:1012B00022952F70DB0102C0AA0FBB1F2A95E2F70F +:1012C0009D01242B22A3019758F7DF91CF911F9105 +:1012D0000F910C948F03EF92FF920F931F93CF9374 +:1012E000DF9300E212E0C3E0EE24E394F12CD5E0BA +:1012F0008C2F0E9412098BE090E040E050E0FC014E +:10130000EE5BFE4F6081E62FEF70F0E020A130E051 +:1013100062956F7002C0359527956A95E2F720FDBA +:1013200009C09701082E02C0220F331F0A94E2F76A +:10133000422B532B019718F7F801929182918F015C +:101340008417950721F051834083D09305018C2F9A +:101350000E941209C15060F68091050187FD2CC0E2 +:101360008150809305018F3F39F08FE99FE001970D +:10137000F1F700C0000020C080911E0290911F0272 +:10138000909327028093260280911C0290911D0267 +:10139000909325028093240280911A0290911B025F +:1013A0009093230280932202809118029091190257 +:1013B00090932102809320020E94910381E0DF91AB +:1013C000CF911F910F91FF90EF900895E82FF0E0DB +:1013D000EE0FFF1FE05EFD4F80819181089508951B +:1013E0000F931F93CF9308E212E0C0E0F8019291AF +:1013F00082918F010E945622C80FF2E000321F072F +:10140000A9F78C2FCF911F910F9108950E949A23D5 +:10141000811102C00E9476230E94BF23809307039C +:101420003E9A809171008D7F8093710082E080935D +:1014300090008AE18093910081E080932A020895D0 +:1014400080912A02811102C00E94060A10927A023B +:1014500010927902809171008D7F8093710080914C +:1014600090008F738093900010923C0210923B0288 +:10147000109273021092740210927502109276020A +:101480001092720210927102E1E5F2E0A1E4B2E082 +:1014900011921192119211921D921D9282E0E137E8 +:1014A000F807B1F70895CF92DF92EF92FF920F9372 +:1014B0001F93CF93DF9320913B02222309F484C032 +:1014C0006B017C0180912A02811102C00E94060AF0 +:1014D00001E712E0C7E0D0E0A7019601F801929180 +:1014E0008291729162918F010E940A29811131C00B +:1014F000FE01EE0FFF1FEE0FFF1FEF5AFD4F108290 +:10150000118212821382DE01AA0FBB1FAF5BBD4F97 +:1015100011961C921E92C730D105E9F021964481A4 +:1015200055816681778140835183628373831482FE +:1015300015821682178212968D919C91139711969F +:101540009C938E9313961C921E9212973496129629 +:10155000E2CF219708F68091790290917A02019763 +:1015600097FD05C090937A028093790204C010928F +:101570007A02109279028091790290917A022091F8 +:101580007702309178022817390724F010927802F8 +:1015900010927702892BC1F4809171008D7F809326 +:1015A0007100809190008F7380939000109273026D +:1015B00010927402109275021092760210927202CA +:1015C0001092710210923B02DF91CF911F910F9107 +:1015D000FF90EF90DF90CF9008951F920F920FB67B +:1015E0000F9211244F925F926F927F928F929F92EF +:1015F000AF92BF92CF92DF92EF92FF922F933F93E1 +:101600004F935F936F937F938F939F93AF93BF930A +:10161000CF93DF93EF93FF9380913B02882309F4EC +:101620009BC1C0917902D0917A021C161D060CF064 +:1016300093C140902B0250902C0260902D0270902C +:101640002E0220E030E0A901C301B2010E94B52AB8 +:1016500018160CF065C0C130D10509F452C0809154 +:10166000770290917802BE010E94872C7C019093B2 +:1016700078028093770280903D0290903E02A09085 +:101680003F02B090400220E030E040E85FE3C50157 +:10169000B4010E94A62860933D0270933E0280939D +:1016A0003F0290934002F701EE0FFF1FEE0FFF1F66 +:1016B000EF5AFD4FA3019201608171818281938174 +:1016C0000E940E2920E030E040E05EE30E94B92A4B +:1016D0009B01AC01C501B4010E94B52A18168CF417 +:1016E000C7010196BE010E94872C909378028093D7 +:1016F000770210923D0210923E0210923F02109229 +:101700004002E0917702F0917802EE0FFF1FEE0F9A +:10171000FF1FEF5AFD4F6081718182819381D0C09C +:10172000C0907302D0907402E0907502F09076023F +:1017300020E030E0A901C701B6010E940A292197E3 +:10174000882309F4A2C0FE01EE0FFF1FEE0FFF1F5A +:10175000EF5AFD4F80809180A280B380A501940153 +:10176000C701B6010E940A2987FF31C0A501940173 +:1017700060E070E08CED93EC0E940E2920E030E0F8 +:1017800040E451E40E940E2920E030E040E05FE3B5 +:101790000E94B92A9B01AC0160E070E080E090E417 +:1017A0000E941C2B9B01AC01C501B4010E94B92A07 +:1017B0009B01AC01C701B6010E940A2987FF07C03F +:1017C000A701960160E070E08CED93E439C0A501BB +:1017D0009401C701B6010E94B52A18160CF055C035 +:1017E000A501940160E070E08CED93E40E940E2965 +:1017F00020E030E040E451E40E940E2920E030E097 +:1018000040E05FE30E94B92A9B01AC0160E070E018 +:1018100080E090E40E941C2B9B01AC01C501B40147 +:101820000E94B92A9B01AC01C701B6010E94B52AEA +:1018300018165CF5A701960160E070E08CED93EC62 +:101840000E940E2920E030E040E451E40E940E297D +:1018500020E030E040E05FE30E94B92A9B01AC0148 +:1018600060E070E080E090E40E941C2B9B01AC01E2 +:10187000C701B6010E94B92A609373027093740283 +:10188000809375029093760213C0FE01EE0FFF1F46 +:10189000EE0FFF1FEF5AFD4F80819181A281B3812E +:1018A0008093730290937402A0937502B0937602B2 +:1018B000609173027091740280917502909176022A +:1018C00020912802309129022F3F4FEF340731F049 +:1018D0002F5F3F4F30932902209328020E94950EDC +:1018E0006B017C0120E034E244EF51E40E940A29BC +:1018F00087FF08C086EFC82E88E2D82E84EFE82E36 +:1019000081E4F82E20E030E040E051E4C701B60168 +:101910000E94B92A9B01AC0160E074E284E79BE479 +:101920000E940E296B017C010E947B297093970015 +:1019300060939600209106013091070140910801C3 +:1019400050910901C701B6010E94B92A0E947B2962 +:10195000709399006093980080913C02882309F469 +:1019600033C1C0903702D0903802E0903902F09035 +:101970003A0220E030E0A901C701B6010E94B52A71 +:101980001816D4F580912802909129028F3F2FEFED +:10199000920729F001969093290280932802C701AB +:1019A000B6010E94950E20E030E040E051E40E9434 +:1019B000B92A9B01AC0160E074E284E79BE40E94D9 +:1019C0000E296B017C010E947B2970939700609324 +:1019D0009600209106013091070140910801509135 +:1019E0000901C701B6010E94B92A0E947B297093A0 +:1019F00099006093980008C010929700109296008A +:101A00001092990010929800609131027091320208 +:101A10006F5F7F4F70933202609331022091960086 +:101A20003091970080E090E0232BF1F0C091960078 +:101A3000D09197000E94A7296B017C01BE0180E034 +:101A400090E00E94A7299B01AC0160913302709144 +:101A5000340280913502909136020E940E2920E0D6 +:101A60003FEF4FE757E410C00E94A7296B017C01AC +:101A700020E030EE4FEF54E4609133027091340275 +:101A800080913502909136020E94B92A9B01AC01E7 +:101A9000C701B6010E94B52A87FD96C080912F022A +:101AA0008F5F80932F0290E0209103033091040315 +:101AB00082179307A0F080910E03882319F01092EB +:101AC0002F020DC0809171008D7F809371008091F5 +:101AD00090008F738093900010923C027DC08091A3 +:101AE0003002C0912F02811128C0C0900803D0900D +:101AF0000903E0900A03F0900B0320E030E0A90115 +:101B0000C701B6010E94B52A1816BCF481E0809383 +:101B1000300210923702109238021092390210925D +:101B20003A02C0923302D0923402E0923502F0922F +:101B30003602C150C0932F0243C01092300210925F +:101B4000290210922802E0910503F091060348E073 +:101B5000C49FE00DF11D112480819181A281B38188 +:101B60008093370290933802A0933902B0933A02DF +:101B700020E030E040E85EE36481758186819781F2 +:101B80000E94B92A6B017C0180910A01682F70E0E4 +:101B900080E090E00E94A72920E030E048EC52E489 +:101BA0000E940E299B01AC01C701B6010E94B92A0F +:101BB000609333027093340280933502909336021F +:101BC00010923202109231028091070380FD04C00E +:101BD00010923C0210923B02FF91EF91DF91CF9166 +:101BE000BF91AF919F918F917F916F915F914F9135 +:101BF0003F912F91FF90EF90DF90CF90BF90AF90EB +:101C00009F908F907F906F905F904F900F900FBE3E +:101C10000F901F901895CF92DF92EF92FF92CF9383 +:101C2000DF936B017C01EA0180912A02811102C0DD +:101C30000E94060A8091070380FF46C080917902C6 +:101C400090917A0208970CF03FC0809171008D7FCF +:101C50008093710080913C0281110E94200A81E0F2 +:101C600080933B02109229021092280220E030E07B +:101C7000A901C701B6010E94B52A1816DCF48091AB +:101C8000790290917A02FC01EE0FFF1FEE0FFF1F09 +:101C9000EF5AFD4FC082D182E282F382FC01EE0F47 +:101CA000FF1FEF5BFD4FD183C083019690937A02B3 +:101CB000809379028091710082608093710080919D +:101CC0009000806880939000DF91CF91FF90EF901B +:101CD000DF90CF90089580910703817008958091DF +:101CE00007038160809307030E94C3230C94EB03D6 +:101CF000809107038E7F809307030C94C323809108 +:101D00007B0290E0019666E070E00E94872C809351 +:101D10007B02089580917B0290E0019766E070E07D +:101D20000E94872C80937B0208958F929F92AF929E +:101D3000BF92CF92DF92EF92FF920F931F93CF93B8 +:101D4000DF936B017C01C0912802D0912902BE0172 +:101D500080E090E00E94A7294B015C01A701960159 +:101D600060E070E08CE594E40E940E299B01AC01D8 +:101D7000C501B4010E94B92A0E947B2920917B02EF +:101D8000233009F473C028F4222351F02130E9F004 +:101D90002CC1243009F4A0C0253009F4E0C025C1CD +:101DA00080E090E0A0E0BFE38093060190930701FC +:101DB000A0930801B093090110922B0210922C02FB +:101DC00010922D0210922E0210C110922B0210922E +:101DD0002C0210922D0210922E026431710540F4F3 +:101DE0006A30710560F520E030E040E85EE32BC02A +:101DF000693C710508F0AAC080E090E00E94A72924 +:101E000020E030E040EA51E40E94A52820E030E0E4 +:101E100044E353E40E940E299B01AC010E94B92ABD +:101E200020E030E040E05EE30E94B92A9B01AC0173 +:101E300060E070E080E09EE30E94A52844C020E0BE +:101E400030E040E05FE3C701B6010E94B92A6B01B0 +:101E50007C0180E090E0A0E0BEE3809306019093D7 +:101E60000701A0930801B0930901BFC010922B0293 +:101E700010922C0210922D0210922E024AE0469FE0 +:101E80009001479F300D1124C90168EB7BE00E944F +:101E9000732CBC016C5D754077FF03C07195619533 +:101EA0007109882777FD8095982F0E94A9292EE334 +:101EB00033EC4EE259E30E94B92A20E030E040ECD6 +:101EC0005EE30E94A6286093060170930701809349 +:101ED00008019093090189C010922B0210922C02E4 +:101EE00010922D0210922E02CE0183709927892B19 +:101EF000E1F0BE016170772780E090E00E94A729A1 +:101F000020E030E040E05EE30E94B92A20E030E0CB +:101F100040E45FE30E94A6286093060170930701E6 +:101F200080930801909309010CC080E090E0A0E04C +:101F3000BFE38093060190930701A0930801B0933B +:101F40000901C770DD27CD2B09F04FC010920601A3 +:101F500010920701109208011092090146C01092D8 +:101F60002B0210922C0210922D0210922E0200E0F1 +:101F700010E020E03FE30093060110930701209357 +:101F80000801309309016739710578F180E090E02C +:101F90000E94A72920E030E047E153E40E94A528F1 +:101FA00020E030E04AE754E40E940E2920E030E0CF +:101FB00048E452E40E94B92A20E030E040EA51E4CB +:101FC0000E94EB290E947629660F771F660F771F04 +:101FD000FB01EE5AFE4F2081318142815381C701BE +:101FE000B6010E94B92A6B017C01C701B601DF91DD +:101FF000CF911F910F91FF90EF90DF90CF90BF9006 +:10200000AF909F908F90089580918C020895CF9308 +:10201000DF9300D01F92CDB7DEB79C0180911303F0 +:10202000843019F593E099833B832A839093E900E8 +:102030008FEF9091E800815095FD06C095ED9A953F +:10204000F1F700008111F5CF8091E80085FF0DC008 +:1020500040E050E063E070E0CE0101960E9468121B +:102060008091E8008E778093E8000F900F900F909A +:10207000DF91CF910895CF93DF9300D01F92CDB71A +:10208000DEB720911303243021F522E029839B83BE +:102090008A8383E08093E9008FEF9091E80081507C +:1020A00095FD06C095ED9A95F1F700008111F5CFE9 +:1020B0008091E80085FF0DC040E050E063E070E0F3 +:1020C000CE0101960E9468128091E8008E7780937D +:1020D000E8000F900F900F90DF91CF91089520911D +:1020E00013032430F1F422E02093E9002FEF309124 +:1020F000E800215035FD06C035ED3A95F1F70000B6 +:102100002111F5CF2091E80025FF0BC040E050E001 +:1021100065E070E00E9468128091E8008E778093FD +:10212000E8000895CF93DF93EC019091130394306E +:1021300009F046C0809115018823D9F080911601DD +:102140008823B9F09093E9008FEF9091E8008150D7 +:1021500095FD06C095E19A95F1F700008111F5CF44 +:102160008091E80085FF2CC040E050E060E170E025 +:1021700017C081E08093E9008FEF9091E8008150D3 +:1021800095FD06C095ED9A95F1F700008111F5CF08 +:102190008091E80085FF14C040E050E068E070E006 +:1021A000CE010E9468128091E8008E778093E8004B +:1021B00080E1FE01ACE7B2E001900D928A95E1F773 +:1021C000DF91CF91089580911203811109C00E947F +:1021D000FD130E945A148091E20084608093E20013 +:1021E0000895109212030895089508950C94A12261 +:1021F00042E061EC81E00E94771342E061EC82E012 +:102200000E94771342E061EC83E00E94771342E181 +:1022100061EC84E00C94771380911503833009F40A +:1022200055C030F4813071F0823009F48EC00895C9 +:102230008A3009F47AC08B3009F460C0893009F023 +:102240009CC020C080911403813A09F096C080910F +:10225000E800877F8093E80080911803909119032C +:10226000892B21F460E18CE792E003C060E080E01C +:1022700090E070E00E94B3128091E8008B77809329 +:10228000E800089580911403813209F076C08091AE +:10229000180390911903009719F0039709F06DC086 +:1022A0008091E800877F8093E8008091E80082FDBC +:1022B00005C0809113038111F8CF5FC08091F100B8 +:1022C00080938C028091E8008B7753C08091140337 +:1022D000813A09F052C08091180390911903892B1B +:1022E00009F04BC08091E800877F8093E8008091DF +:1022F000E80080FFFCCF8091150136C08091140367 +:102300008132D9F58091180390911903892BA9F591 +:102310008091E800877F8093E8000E94AC13809151 +:102320001603809315010C94E21B809114038132F3 +:1023300021F58091E800877F8093E8000E94AC132C +:102340008091170380938D02089580911403813A40 +:10235000A1F48091E800877F8093E8008091E800F5 +:1023600080FFFCCF80918D028093F1008091E80086 +:102370008E778093E8000C94AC13089584B7877F20 +:1023800084BF88E10FB6F8948093600010926000DB +:102390000FBE90E080E80FB6F894809361009093B0 +:1023A00061000FBE0E944F170E94FD130E945A1435 +:1023B0008091E20084608093E20078940E94E016AD +:1023C0000E9451178BE091E00E94FB16809113034D +:1023D000853069F40E946222809111038823B1F351 +:1023E0000E949022882391F30E945212EFCF0E9404 +:1023F0005917ECCF292F332723303105C9F064F466 +:102400002130310581F02230310509F043C08DE6DD +:1024100090E022EB33E042C021323105F1F022326C +:10242000310541F137C082E190E02FE134E036C060 +:1024300099278130910541F08230910541F0892B37 +:1024400049F5EEEAF3E005C0E0E8F3E002C0E6E5B6 +:10245000F3E0849190E09F0121C06430D8F4E62F2E +:10246000F0E0EE0FFF1FE255FE4F2081318189E041 +:1024700090E014C0643070F470E0FB01EE0FFF1FB9 +:10248000EA55FE4F20813181FB01EE55FE4F8081E0 +:1024900090E004C080E090E020E030E0FA01318379 +:1024A0002083089580E189BD82E189BD09B400FEE1 +:1024B000FDCF8091D8008F7D8093D8008091E0007F +:1024C00082608093E0008091E00081FDFCCF089560 +:1024D000CF92DF92EF92FF920F931F93CF93DF93F0 +:1024E000EC018B016A010E94CB13811133C0C1142E +:1024F000D10439F0F60180819181081B190BC80FB6 +:10250000D91FE12CF12C0115110519F18091E8007A +:1025100085FD16C08091E8008E778093E800C11495 +:10252000D10449F0F60180819181E80EF91EF18213 +:10253000E08285E00FC00E94CB13882321F30AC0FC +:1025400089918093F10001501109FFEFEF1AFF0A02 +:10255000DACF80E0DF91CF911F910F91FF90EF9044 +:10256000DF90CF90089520911A0330911B03261716 +:10257000370748F06115710539F42091E8002E778E +:102580002093E80001C0B90140E061157105A9F18F +:1025900020911303222309F443C0253009F442C0DB +:1025A0002091E80023FD40C02091E80022FD32C0C8 +:1025B0002091E80020FFE9CF4091F3002091F20044 +:1025C00030E0342BFC01CF016115710559F0283042 +:1025D000310540F481918093F100615071092F5FC2 +:1025E0003F4FF1CF41E02830310509F040E0209124 +:1025F000E8002E772093E800C8CF4111C9CF0AC068 +:1026000080911303882361F0853061F08091E800A8 +:1026100083FD0AC08091E80082FFF2CF80E0089538 +:1026200082E0089583E0089581E0089520911A03DF +:1026300030911B032617370748F06115710539F4EF +:102640002091E8002E772093E80001C0B901FC0139 +:1026500020E06115710591F180911303882309F43D +:1026600040C0853009F43FC08091E80083FD3DC043 +:102670008091E80082FD2FC08091E80080FFE9CFC3 +:102680002091F3008091F20090E0922B611571058A +:1026900059F08830910540F424912093F10031964F +:1026A000615071090196F2CF21E0089709F020E00E +:1026B0008091E8008E778093E800CBCF2111CCCFBA +:1026C0000AC080911303882361F0853061F0809106 +:1026D000E80083FD0AC08091E80082FFF2CF80E02D +:1026E000089582E0089583E0089581E00895982F89 +:1026F000973058F59093E900981739F07091EC00F5 +:102700002091ED005091F00003C0242F762F50E06F +:1027100021FF19C03091EB003E7F3093EB003091E8 +:10272000ED003D7F3093ED003091EB003160309350 +:10273000EB007093EC002093ED005093F00020919B +:10274000EE0027FF07C09F5FD3CF8F708093E90013 +:1027500081E0089580E008958091140387FF11C0FF +:102760008091E80082FD05C0809113038111F8CFAC +:1027700011C08091E8008B770BC0809113038823F0 +:1027800049F08091E80080FFF8CF8091E8008E77D3 +:102790008093E80008952091E4003091E50095E6EB +:1027A0004091EC00842F817040FF22C08091E800AE +:1027B00080FD1CC080911303882391F0853091F037 +:1027C0008091EB0085FD10C04091E4005091E50040 +:1027D0004217530729F39A01915011F784E00895A5 +:1027E00082E0089583E0089581E0089580E00895EF +:1027F0004091E80042FFDECF08950E946B140E94D2 +:102800007314E0EEF0E0808181608083E8EDF0E019 +:1028100080818F77808319BCA7EDB0E08C918E7F8B +:102820008C9380818F7E80831092120308950F9382 +:102830001F93CF93DF930E946B140E947314C8ED13 +:10284000D0E088818F7788838881806888838881B9 +:102850008F7D888319BC1092130310920F0310927E +:1028600011031092100300EE10E0F80180818B7FBD +:10287000808388818160888342E060E080E00E94FC +:102880007713E1EEF0E080818E7F8083E2EEF0E06E +:10289000808181608083808188608083F80180816D +:1028A0008E7F8083888180618883DF91CF911F91A3 +:1028B0000F910895E8EDF0E080818F7E8083E7ED51 +:1028C000F0E080818160808384E082BF81E080933A +:1028D00012030C941714E8EDF0E080818E7F808362 +:1028E0001092E20008951092DA001092E10008952B +:1028F0001F920F920FB60F9211242F933F934F9375 +:102900005F936F937F938F939F93AF93BF93EF9357 +:10291000FF938091E10082FF0BC08091E20082FF73 +:1029200007C08091E1008B7F8093E1000E94DF1659 +:102930008091DA0080FF1FC08091D80080FF1BC00B +:102940008091DA008E7F8093DA008091D90080FF39 +:102950000DC080E189BD82E189BD09B400FEFDCFD3 +:1029600081E0809313030E94E31005C019BC10920C +:1029700013030E94F1108091E10080FF19C0809143 +:10298000E20080FF15C08091E2008E7F8093E2001C +:102990008091E20080618093E2008091D8008062A3 +:1029A0008093D80019BC85E0809313030E94F51032 +:1029B0008091E10084FF30C08091E20084FF2CC050 +:1029C00080E189BD82E189BD09B400FEFDCF80911F +:1029D000D8008F7D8093D8008091E1008F7E809316 +:1029E000E1008091E2008F7E8093E2008091E2001E +:1029F00081608093E20080910F03882311F084E0CE +:102A000007C08091E30087FD02C081E001C083E040 +:102A1000809313030E94F6108091E10083FF29C088 +:102A20008091E20083FF25C08091E100877F809341 +:102A3000E10082E08093130310920F038091E10084 +:102A40008E7F8093E1008091E2008E7F8093E20090 +:102A50008091E20080618093E20042E060E080E0EB +:102A60000E9477138091F00088608093F0000E94AC +:102A7000F410FF91EF91BF91AF919F918F917F9152 +:102A80006F915F914F913F912F910F900FBE0F90DB +:102A90001F9018951F920F920FB60F9211242F932B +:102AA0003F934F935F936F937F938F939F93AF93D6 +:102AB000BF93CF93DF93EF93FF93C091E900CF7063 +:102AC0008091EC00D82FD17080FDD0E81092E90001 +:102AD0008091F000877F8093F00078940E948E159B +:102AE0001092E9008091F00088608093F000CD2B77 +:102AF000CF70C093E900FF91EF91DF91CF91BF912B +:102B0000AF919F918F917F916F915F914F913F9185 +:102B10002F910F900FBE0F901F9018951F93CF937A +:102B2000DF93CDB7DEB7AA970FB6F894DEBF0FBE1E +:102B3000CDBFE4E1F3E088E08E0F9091F100919336 +:102B40008E13FBCF0E940C118091E80083FF1FC100 +:102B50008091140390911503492F50E04A3051059C +:102B600008F015C1FA01EA5AFF4F0C949B2C8038EB +:102B700081F0823809F00BC1809118038F70809327 +:102B8000E9008091EB0085FB882780F91092E9002D +:102B900006C0809110039091110391118260909171 +:102BA000E800977F9093E8008093F1001092F10085 +:102BB000C8C0282F2D7F09F0EAC0882319F0823081 +:102BC00061F0E5C080911603813009F0E0C09330D8 +:102BD00009F080E0809311032BC0809116038111CE +:102BE00027C0809118038F7009F4D1C08093E90049 +:102BF0002091EB0020FF1CC0933021F48091EB006A +:102C0000806214C09091EB0090619093EB0021E002 +:102C100030E0A90102C0440F551F8A95E2F74093A6 +:102C2000EA001092EA008091EB0088608093EB004C +:102C30001092E9008091E800877F86C08111A7C0CB +:102C4000109116031F778091E3008078812B809389 +:102C5000E3008091E800877F8093E8000E94AC1336 +:102C60008091E80080FFFCCF8091E3008068809332 +:102C7000E300111102C082E001C083E080931303DE +:102C800086C08058823008F082C0809116039091EF +:102C900017038C3D53E0950779F583E08A838AE238 +:102CA00089834FB7F894DE01139620E03EE051E2AD +:102CB000E32FF0E050935700E49120FF03C0E2952A +:102CC000EF703F5FEF708E2F90E0EA3010F0C79604 +:102CD00001C0C0968D939D932F5F243149F74FBF5C +:102CE0008091E800877F8093E8006AE270E0CE017F +:102CF00001960E94B31214C0AE014F5F5F4F609106 +:102D000018030E94FA11BC01009709F440C0909189 +:102D1000E800977F9093E80089819A810E941613BA +:102D20008091E8008B778093E80031C0803879F596 +:102D30008091E800877F8093E80080910F03809363 +:102D4000F1008091E8008E778093E8000E94AC1338 +:102D50001EC081111CC0909116039230C0F4809166 +:102D6000E800877F8093E80090930F030E94AC13E4 +:102D700080910F03811106C08091E30087FD02C09E +:102D800081E001C084E0809313030E94F8108091D9 +:102D9000E80083FF0AC08091E800877F8093E80005 +:102DA0008091EB0080628093EB00AA960FB6F894B6 +:102DB000DEBF0FBECDBFDF91CF911F910895089563 +:102DC000CF93809113038823A1F0C091E900CF70C5 +:102DD0009091EC00892F817090FD80E8C82B1092B3 +:102DE000E9008091E80083FD0E948E15CF70C093AA +:102DF000E900CF91089590939302809392020895F1 +:102E0000E0919202F0919302309721F00190F081CD +:102E1000E02D099480E00895E0919202F0919302F0 +:102E2000309721F00280F381E02D09940895E0911C +:102E30009202F0919302309721F00480F581E02D09 +:102E4000099408952091900230919102821793077E +:102E500071F09093910280939002E0919202F09130 +:102E60009302309721F00680F781E02D09940895B0 +:102E700020918E0230918F028217930771F0909308 +:102E80008F0280938E02E0919202F091930230972C +:102E900021F00084F185E02D0994089508950C94A3 +:102EA0004E170E94D5220E9426090E945B230C9493 +:102EB0000A285F926F927F928F929F92AF92BF92F9 +:102EC000CF92DF92EF92FF920F931F93CF93DF93F6 +:102ED00000D000D01F92CDB7DEB70E946B099DE9EC +:102EE000C92E92E0D92E03E010E0AA24A394B12CBD +:102EF000502E802F0E94E6094C01F60172906290DC +:102F00006F016826792661147104A1F4015011093A +:102F100078F78FEF89838A831B820E94DE2281608B +:102F2000782F9D838C8349815A816B818D810E948A +:102F3000091838C08091F20281FD0E94EF092BE050 +:102F400030E07501022E02C0EE0CFF1C0A94E2F77D +:102F5000C70186219721892B09F129835A828E2066 +:102F60009F2091E0892809F490E09B830E94DE2253 +:102F70008160782F9D838C8349815A816B818D81FB +:102F80000E940918000F111FF801EB56FD4F8081B8 +:102F90009181E826F926F182E08204C021503109AE +:102FA00080F6B4CF0E944225109194020E9400172F +:102FB0001817D1F00E940017809394020F900F9081 +:102FC0000F900F900F90DF91CF911F910F91FF9075 +:102FD000EF90DF90CF90BF90AF909F908F907F90B9 +:102FE0006F905F900C9410090F900F900F900F90BE +:102FF0000F90DF91CF911F910F91FF90EF90DF9095 +:10300000CF90BF90AF909F908F907F906F905F9088 +:103010000895CF93DF93CDB7DEB72B970FB6F89413 +:10302000DEBF0FBECDBF4F83588769877A878B87F6 +:10303000DE01119686E0FD0111928A95E9F785E09F +:10304000FE01379601900D928A95E1F749815A81E8 +:103050006B817C818D819E810E94801E2B960FB694 +:10306000F894DEBF0FBECDBFDF91CF910895CF930F +:10307000882309F4C2C0C82F823859F40E9400176F +:1030800081FDBBC089E30E945A210E94272289E367 +:103090000CC0833879F40E94001780FDAEC083E530 +:1030A0000E945A210E94272283E50E949C21CF91F1 +:1030B0000C942722843859F40E94001782FD9DC089 +:1030C00087E40E945A210E94272287E4EECF8CEFEA +:1030D0008C0F813A48F48C2F0E94722781118DC089 +:1030E0008C2F0E945A21E3CF80E28C0F883048F465 +:1030F000C77081E001C0880FCA95EAF70E94E021FD +:10310000D6CF8BE58C0F833078F4C53A29F0C63AD8 +:1031100031F083E890E005C081E890E002C082E8E9 +:1031200090E0CF910C94221788E58C0F833108F042 +:1031300064C0C83A39F1C93A41F1CA3A49F1CB3AC7 +:1031400051F1CC3A59F1CD3A61F1C03B69F1CE3A37 +:1031500071F1CF3A79F1C13B81F1C23B89F1C33BB7 +:1031600091F1C43B99F1C53BA1F1C63BA9F1C73B25 +:10317000B1F1C83BB9F1C93BC1F1CA3BC9F180E02B +:1031800090E038C082EE90E035C089EE90E032C029 +:103190008AEE90E02FC085EB90E02CC086EB90E0AB +:1031A00029C087EB90E026C08CEC90E023C08DEC2A +:1031B00090E020C083E891E01DC08AE891E01AC049 +:1031C00082E991E017C084E991E014C081E292E0C5 +:1031D00011C083E292E00EC084E292E00BC085E26F +:1031E00092E008C086E292E005C087E292E002C069 +:1031F0008AE292E0CF910C943817CF9108958823FA +:1032000009F44BC0823859F40E94001781FF45C071 +:1032100089E30E945A210E94272289E30CC0833847 +:1032200071F40E94001780FF38C083E50E945A2184 +:103230000E94272283E50E949C210C942722843837 +:1032400059F40E94001782FF28C087E40E945A2187 +:103250000E94272287E4EFCF9CEF980F913A58F312 +:1032600090E2980F983050F4877091E001C0990F68 +:103270008A95EAF7892F0E94E621DFCF9BE5980F18 +:10328000933020F480E090E00C942217885A833128 +:1032900020F480E090E00C9438170895882321F002 +:1032A0000E94E0210C9427220895882321F00E9497 +:1032B000E6210C94272208957F928F929F92AF92DD +:1032C000BF92CF92DF92EF92FF920F931F93CF9313 +:1032D000DF931F92CDB7DEB77C01C62E772EFC019F +:1032E000058102950F70128111110E94FD210E942B +:1032F0005321882379F0112369F080E28C0D883006 +:1033000048F082E00E943C210E94532191E0D82E97 +:10331000D92601C0D12CE72DE295EF70F0E0E05AFC +:10332000FF4F0C949B2C872D807F072D0F708823D7 +:1033300011F00295007F112389F0002309F499C14F +:1033400080E28C0D883020F4802F0E94E02103C0A1 +:10335000802F0E94F0210E9427228BC18C2D0E9479 +:10336000FF18002309F4C3C180E28C0D883020F4DB +:10337000802F0E94E62103C0802F0E94F6210E9428 +:103380002722B5C1872D807F972D9F70803211F441 +:10339000892F03C0892F8295807FCC2021F0F1E016 +:1033A000CF16A1F01DC0112339F0002319F101300F +:1033B00009F50E9410229BC1002319F0013009F485 +:1033C00096C189830E941322898110C1112321F0A3 +:1033D000063008F08CC10EC0053008F088C106C167 +:1033E000112359F0002331F0F701958190FF41C17D +:1033F0009F7095830E944E197AC1002309F4F6C08C +:103400003EC1872D86958695837090E0009719F0D0 +:10341000019761F06CC1112321F08C2D972D9370D1 +:1034200002C080E090E00E94221761C1112321F0C8 +:103430008C2D972D937002C080E090E00E94381789 +:1034400056C18C2D112319F00E944A2402C00E94FB +:10345000B2240E9437254BC1872D837009F052C0DA +:10346000111145C18C2D829586958770880F880F24 +:103470009C2D9F70892E912CA12CB12C082E04C05C +:10348000880C991CAA1CBB1C0A94D2F7C4FE14C059 +:103490000FE010E020E030E0B901A80104C0440FC3 +:1034A000551F661F771F8A95D2F7CB01BA01609529 +:1034B00070958095909503C060E070E0CB01272D5A +:1034C00026952695237030E02230310569F02330AF +:1034D000310589F0682979298A299B29213031050C +:1034E00071F00E94C81F03C1682979298A299B2984 +:1034F0000E94E41FFCC00E94C81FC501B4010E94C5 +:10350000AC1FF5C0112319F0872D817001C086957D +:10351000882309F4ECC08C2D829586958770880FDE +:10352000880F9C2D9F70892E912CA12CB12C082ED8 +:1035300004C0880C991CAA1CBB1C0A94D2F7C4FEB8 +:1035400014C00FE010E020E030E0B901A80104C091 +:10355000440F551F661F771F8A95D2F7CB01BA011A +:10356000609570958095909503C060E070E0CB0108 +:10357000272D269526952370422F50E04230510585 +:1035800069F04330510589F0682979298A299B29F6 +:103590004130510571F00E94A220A9C06829792903 +:1035A0008A299B290E94BE20A2C00E94A220C50198 +:1035B000B4010E9486209BC08C2D90E0FC01E05E4F +:1035C000F109E531F10508F050C0E059FF4F0C94C6 +:1035D0009B2C0C2D0F70872D8F71112321F00E94D1 +:1035E0001F20802F07CF0E944020802F0E94551956 +:1035F0007EC0112341F0053008F079C0872D8F710E +:103600000E94652074C0063008F071C0F7CF112306 +:1036100039F0872D8F710E941F2069C01123C9F3D3 +:10362000872D8F710E94402062C0112329F0872DC1 +:103630008F710E940A205BC00E94002058C0112395 +:1036400051F0172D1F71812F0E941F2063E0812FE1 +:103650000E9433214CC081E00E943C21023008F4DA +:1036600046C082E00E943C2142C0112331F0002379 +:1036700081F28C2D0E9437183AC0002389F28C2DDC +:103680000E94FF1834C0472D4F706C2DC7010E9457 +:10369000EE050E94241F2BC0111129C0472D4F7029 +:1036A00050E042305105B9F04CF44115510581F01C +:1036B00041305105E1F40E94322819C043305105D0 +:1036C00069F04430510599F48C2D0E9484280FC074 +:1036D0000E941B280CC00E944E2809C00E9461282D +:1036E00006C0472D4F706C2DC7010E94F105DD20EB +:1036F000F9F00E942F2180FD1BC0F70112820E9469 +:1037000029210E941F20C7010E94A71B0E94292176 +:103710000F90DF91CF911F910F91FF90EF90DF906D +:10372000CF90BF90AF909F908F907F900C9440204F +:103730000F90DF91CF911F910F91FF90EF90DF904D +:10374000CF90BF90AF909F908F907F9008950F93F0 +:103750001F93CF93DF93EC01888199812B813C816A +:10376000232BB9F09F3F11F48F3F99F0CE010E94B7 +:10377000ED03882371F0688179818A810E94252177 +:103780008C010E94DA200E94A11FB801CE010E9484 +:103790005C19DF91CF911F910F9108950E94FD2137 +:1037A0000E940D220E94D2210E9427220E94E82519 +:1037B0000E94372580E090E00E94221780E090E090 +:1037C0000C9438170E94ED210C94CE1B0E941A21F4 +:1037D000292F22952F7030E02C3031054CF42A30FF +:1037E00031056CF42250310922303105A8F407C0AC +:1037F0002C30310569F02F30310551F00DC0803F7C +:1038000069F018F4803E40F409C0843F29F406C0F2 +:1038100093FB882780F9089580E0089581E008955A +:10382000CF93DF9300D000D01F92CDB7DEB70F90BB +:103830000F900F900F900F90DF91CF910895CF933D +:10384000DF9300D000D000D0CDB7DEB726960FB6FC +:10385000F894DEBF0FBECDBFDF91CF9108951F93C7 +:10386000CF93DF93C0919D0216E080919E02C8170E +:1038700099F0D0E01C9FF0011D9FF00D1124E1563E +:10388000FD4F4081518162817381848195810E94C5 +:103890001F1C2196C770E9CFDF91CF911F9108952A +:1038A0004091CF025091D0026091D1027091D2022A +:1038B0008091D3029091D4020C941F1C8091D40269 +:1038C00082958F7009F054C08091D102882309F449 +:1038D0004FC080919D02A0919E026091CF02709195 +:1038E000D0024091D2025091D302B6E08A1709F477 +:1038F0003FC090E041155105C1F17F3F11F46F3F8A +:10390000A1F1B89FF001B99FF00D1124E156FD4FD0 +:10391000218172132AC02081621327C022812111C4 +:1039200024C0238134812417350710F42150310934 +:10393000241B350B283C3105C0F42091D4022F7094 +:1039400020612093D40226E0289FF001299FF00DEA +:103950001124EC55FD4F80818F70806180838FEC46 +:1039600092E00E94A71B0C942F1C01968770BECF7B +:103970000895CF92DF92EF92FF920F931F93CF9310 +:10398000DF93CDB7DEB762970FB6F894DEBF0FBEF8 +:10399000CDBF8C0185E0F801DE011D9601900D92EE +:1039A0008A95E1F7D8014C9111965C911197129686 +:1039B0006C9112971396CD90DC9014973091CF02B2 +:1039C0007091D0028091D2029091D302009709F4B5 +:1039D0006BC17F3F19F43F3F09F466C1E090D1020B +:1039E000EE2009F4C0C02091D402C816D90628F0F0 +:1039F000F601E81BF90BCF0104C0809590958C0D62 +:103A00009D1DFF24F394883C910578F0F12C207FD4 +:103A100009F0C6C07C2DD98AC88A89890E94101CE9 +:103A20008FEC92E00E94A71BB1C0822F807F09F02B +:103A300046C0751314C0341312C0611110C02F702A +:103A400020612093D4020E94501C8FEC92E00E94CF +:103A5000A71B8091D402D80115968C932EC0CD2837 +:103A600019F15F3F11F44F3FF9F0F62E61111CC0C0 +:103A700080919D0220919E0236E0821709F45AC07F +:103A800090E0389FF001399FF00D1124E156FD4F71 +:103A90007181571306C07081471303C07281711181 +:103AA00003C001968770E9CFF62E662309F418C18A +:103AB0008091D40281608093D402F12C11C17513DE +:103AC00008C0341306C0611104C08091D402D8012B +:103AD000C3C04D875E878D859E856A8B0E94E61BDD +:103AE0006A898823E1F16623D1F12091D402822FE3 +:103AF00082958F7090E0029774F08091CF02909140 +:103B0000D00298878F831986DB86CA862C87CE01E0 +:103B100007960E94A71B86E0F801AFECB2E0019087 +:103B20000D928A95E1F70E945E1C0E94501CFF24B2 +:103B3000F394D6C04D875E878D859E850E941A219D +:103B4000292F22952F7030E0223031050CF0BCC0B7 +:103B50009F7009F0B6C0805E883008F4C1C0C8010B +:103B60000E94A71BE4CFC816D90608F453C0F6017B +:103B7000E81BF90BCF01883C910508F450C0F12CEB +:103B80007C2DD98AC88A89890E94101CEFECF2E04A +:103B900086E0DF011D928A95E9F70E94501CA0C0C3 +:103BA000751314C0341312C0611110C08091D40277 +:103BB000F8018583C8010E94A71B86E0EFECF2E0C4 +:103BC000DF011D928A95E9F7FE2C8AC04D875E873A +:103BD0008D859E856A8B0E94E61B6A89882309F47D +:103BE000BECF662309F4BBCF2091D402822F8295E9 +:103BF0008F7090E002970CF48ECF8091CF0290915D +:103C0000D0029A8389831B82DD82CC822E83CE01EF +:103C100001967FCF809590958C0D9D1DACCFF62E93 +:103C2000662309F49CCF75132EC034132CC0209149 +:103C3000D40220FD1FC0822F82958F70D9F0D80149 +:103C400015962C9315978F3049F08F5F982F92958A +:103C5000907F822F8F70892B15968C93C8010E94BC +:103C6000A71B86E0F801AFECB2E001900D928A95B7 +:103C7000E1F793CF86E0F801AFECB2E001900D924E +:103C80008A95E1F72DC04D875E878D859E850E94C0 +:103C9000E61B811140CF8091D40281608093D402D1 +:103CA000C8010E94A71B1CC0662309F458CF4D878A +:103CB0005E878D859E850E94E61B882309F44FCF81 +:103CC0002ACF811148CF0CC0243031050CF047CFEA +:103CD0009F7009F440CFF8019581907F09F03BCFA8 +:103CE0008F2D62960FB6F894DEBF0FBECDBFDF9169 +:103CF000CF911F910F91FF90EF90DF90CF9008959B +:103D00001F93CF93DF93CDB7DEB72C970FB6F89400 +:103D1000DEBF0FBECDBF4F83588769877A878B87F9 +:103D20009C87CE0107960E94B91C882369F08F8179 +:103D300098852A853B85232BF1F19F3F09F063C0CD +:103D40008F3F09F060C037C086E0FE013796DE0184 +:103D5000119601900D928A95E1F76F817885EA8539 +:103D6000FB85309741F17F3F11F46F3F21F12091A6 +:103D70009E0230E0C90101968770992740919D020B +:103D800050E08417950709F447C069837A83FD835F +:103D9000EC8396E0929FD001939FB00D1124A15621 +:103DA000BD4FFE01319601900D929A95E1F78093F7 +:103DB0009E020E942F1C16E080919D0290919E020F +:103DC0008917C1F1189FC001112481569D4F0E948F +:103DD000B91C882379F1E0919D021E9FF001112406 +:103DE000E156FD4F408151816281738184819581CB +:103DF0000E941F1C80919D0290E001968770992778 +:103E000080939D02D9CF4F81588569857A858B85AE +:103E10009C850E941F1CCFCF0E94E21B10929E0225 +:103E200010929D02EFECF2E086E0DF011D928A9590 +:103E3000E9F7C1CF2C960FB6F894DEBF0FBECDBF09 +:103E4000DF91CF911F910895EF92FF920F931F93EF +:103E5000CF93DF938C01009709F46CC0F12CEE2412 +:103E6000E394E8012196F8018491843740F484308A +:103E700008F051C0813081F0823019F15BC0853784 +:103E800009F444C0A8F19CE7980F903708F052C09D +:103E90008F770E94FF1841C00E5F1F4FFE01C49133 +:103EA00080E28C0F883048F4C7708E2D01C0880FD7 +:103EB000CA95EAF70E94002214C08C2F0E9437187E +:103EC0002DC00E5F1F4FFE01C49180E28C0F883021 +:103ED00058F4C7708E2D01C0880FCA95EAF70E946A +:103EE00006220E9427221AC08C2F0E94FF1816C09B +:103EF0000E5F1F4FFE01C491CC2381F08FE99FE03C +:103F00000197F1F700C00000C150F6CF0E5F1F4FC0 +:103F1000FE01F49003C00E9437188E018F2D882374 +:103F200009F49FCFEFE9FFE03197F1F700C00000FF +:103F30008150F5CFDF91CF911F910F91FF90EF90BE +:103F4000089508956093D9027093DA028093DB029A +:103F50009093DC020C94CE1B0F931F930091D90217 +:103F60001091DA022091DB023091DC02DC01CB01FE +:103F7000802B912BA22BB32B8093D9029093DA0242 +:103F8000A093DB02B093DC021F910F910C94CE1B27 +:103F90000F931F930091D9021091DA022091DB0256 +:103FA0003091DC02DC01CB0180239123A223B323D7 +:103FB0008093D9029093DA02A093DB02B093DC02E3 +:103FC0001F910F910C94CE1B0F931F930091D90258 +:103FD0001091DA022091DB023091DC02DC01CB018E +:103FE00080279127A227B3278093D9029093DA02E2 +:103FF000A093DB02B093DC021F910F910C94CE1BB7 +:104000001092D5021092D6021092D7021092D802C6 +:104010000C94CE1B41E050E060E070E004C0440F1F +:10402000551F661F771F8A95D2F74093D50250938C +:10403000D6026093D7027093D8020C94CE1B41E055 +:1040400050E060E070E004C0440F551F661F771F0A +:104050008A95D2F78091D5029091D602A091D7028D +:10406000B091D802482B592B6A2B7B2B4093D50259 +:104070005093D6026093D7027093D8020C94CE1B53 +:1040800041E050E060E070E004C0440F551F661F3F +:10409000771F8A95D2F740955095609570958091DD +:1040A000D5029091D602A091D702B091D8024823B0 +:1040B00059236A237B234093D5025093D602609301 +:1040C000D7027093D8020C94CE1B41E050E060E020 +:1040D00070E004C0440F551F661F771F8A95D2F702 +:1040E0008091D5029091D602A091D702B091D802CA +:1040F000482759276A277B274093D5025093D60239 +:104100006093D7027093D8020C94CE1B0F931F9329 +:104110000091D5021091D6022091D7023091D80299 +:10412000DC01CB01802B912BA22BB32B8093D502EA +:104130009093D602A093D702B093D8021F910F910B +:104140000C94CE1B0F931F930091D5021091D602B1 +:104150002091D7023091D802DC01CB01802391233A +:10416000A223B3238093D5029093D602A093D702C3 +:10417000B093D8021F910F910C94CE1B0F931F93F5 +:104180000091D5021091D6022091D7023091D80229 +:10419000DC01CB0180279127A227B3278093D5028A +:1041A0009093D602A093D702B093D8021F910F919B +:1041B0000C94CE1B0895CF92DF92EF92FF920F9353 +:1041C0001F93CF93DF938C01C090D902D090DA0275 +:1041D000E090DB02F090DC028091D5029091D60253 +:1041E000A091D702B091D802C82AD92AEA2AFB2A7C +:1041F000CFE1D0E0D701C6010C2E04C0B695A7953B +:10420000979587950A94D2F780FF06C0B8018C2F46 +:104210000E947608019721F4219760F780E001C0A1 +:104220008C2FDF91CF911F910F91FF90EF90DF9036 +:10423000CF900895CF93DF93EC010E94DB20BE0165 +:104240000E947608DF91CF910895CB010E941A2138 +:1042500008958091DD0285958595859508958091D5 +:10426000DD028770089598E0899F90011124262B24 +:104270002093DD020C941F202091DD028095822383 +:104280008093DD02982F977069F430E0482F55270E +:1042900047FD50952417350729F085958595859517 +:1042A0000C94402008959091DD02977081E009F40C +:1042B00080E0089590911501992321F090911601C5 +:1042C000911109C02091170130911801F90132961E +:1042D0009FEF40E01FC0982F9695969596959F303A +:1042E00050F5E0911701F0911801E90FF11D877069 +:1042F00021E030E0A90102C0440F551F8A95E2F782 +:10430000CA019181892B818308959F3F39F04F5FC6 +:104310004E3041F051915813F8CF0DC05111F7CFE5 +:10432000942FF5CF9F3F39F0F901E90FF11D97FD6B +:10433000FA9582830895089590911501992321F0AB +:1043400090911601911109C0209117013091180127 +:10435000F9013296205F3F4F1FC0982F9695969592 +:1043600096959F30F0F4E0911701F0911801E90F54 +:10437000F11D877021E030E0A90102C0440F551FF4 +:104380008A95E2F7CA0180959181892381830895F6 +:104390003196E217F30729F090819813F9CF108234 +:1043A000F7CF089581E090E0E0911701F0911801B6 +:1043B000E80FF91F1082019680319105A9F7089541 +:1043C0009091F102892B8093F1020895809590914C +:1043D000F10289238093F10208951092F102089569 +:1043E0009091F002892B8093F0020895809590912E +:1043F000F00289238093F00208951092F00208954C +:104400009091EF02892B8093EF020895809590910F +:10441000EF0289238093EF0208951092EF0208952E +:104420008093DE0208951092DE02089580911701B4 +:1044300090911801FC0131969C01205F3F4F80E074 +:10444000919191118F5FE217F307D1F70895E091F1 +:104450001701F09118018091F1028083E09117011A +:10446000F091180190818091F002892B8083E09176 +:104470001701F091180190818091EF02892B8083C0 +:104480008091DE02882361F0E0911701F09118011C +:104490009081892B80830E94162281111092DE0266 +:1044A00080911701909118010C940C1720E000974F +:1044B00039F0AC0141505109842395232F5FF7CF88 +:1044C000822F089580911303843039F11092F30202 +:1044D00020E488E190E00FB6F894A89580936000FE +:1044E0000FBE2093600080E00E94F10280E00E94F5 +:1044F000100983B7817F846083BF83B7816083BFE6 +:104500007894889583B78E7F83BF88E10FB6F8943F +:1045100080936000109260000FBE08950895089582 +:1045200080E00E94F1020E948E220E946B090E948C +:104530008F220E94F00991E0811101C090E0892F43 +:1045400008950E94E21B80E00E94F1020E940A2866 +:104550000E9400170C9410091F920F920FB60F9231 +:1045600011248F939F93AF93BF938091F302811196 +:1045700013C08091F4029091F502A091F602B091DF +:10458000F7024196A11DB11D8093F4029093F502AC +:10459000A093F602B093F702BF91AF919F918F91D4 +:1045A0000F900FBE0F901F90189582E084BD93E08E +:1045B00095BD9AEF97BD80936E0008952FB7F8943C +:1045C0008091F4029091F502A091F602B091F70269 +:1045D0002FBF0895CF92DF92EF92FF920F931F9318 +:1045E0002FB7F8944091F4025091F5026091F602D1 +:1045F0007091F7022FBF6A017B01EE24FF248C012A +:1046000020E030E0C016D106E206F30610F4415077 +:1046100051099A01281B390BC9011F910F91FF9075 +:10462000EF90DF90CF9008951F920F920FB60F92E8 +:1046300011248F939F93AF93BF938091F402909135 +:10464000F502A091F602B091F7020196A11DB11DED +:104650008093F4029093F502A093F602B093F702D0 +:10466000BF91AF919F918F910F900FBE0F901F90B0 +:1046700018950E94FD13F8942FEF87EA91E62150D8 +:1046800080409040E1F700C0000087E090EBDC0143 +:1046900080931E0390931F03A0932003B0932103E4 +:1046A0009CE088E10FB6F894A895809360000FBE57 +:1046B00090936000FFCF0E949A23811102C00E9454 +:1046C00076230E94A5238093F2020E94AD2380935B +:1046D0001C0387FB882780F9809316010E94A92379 +:1046E000682F70E080E090E00C94A21F6DEE7EEFEA +:1046F00080E090E00E94C12C60E082E090E00E94A7 +:10470000AF2C60E083E090E00E94AF2C60E084E09A +:1047100090E00E94AF2C60E085E090E00E94AF2C1A +:1047200060E086E090E00E94AF2C6FEF87E090E0C1 +:104730000C94AF2C80E090E00E94A92C21E08D3EEB +:104740009E4F09F020E0822F089582E090E00C94C3 +:10475000A12C83E090E00C94A12C84E090E00C94D8 +:10476000A12C682F84E090E00C94AF2C86E090E0C0 +:104770000C94A12C682F86E090E00C94AF2C87E07D +:1047800090E00C94A12C682F87E090E00C94AF2C63 +:104790008091FA0280FF0BC060911C0185E0689F48 +:1047A000B001112475956795759567952BC081FFAC +:1047B00009C060911C0185E0689FB00111247595C6 +:1047C000679520C082FF07C060911C0185E0689F4B +:1047D000B001112417C09091FB029923D1F0609190 +:1047E0001B01961788F720911C0185E0289F9001F6 +:1047F0001124929FA001939F500D112470E0CA01D3 +:104800000E94872C6038710540F46115710539F0FC +:1048100002C065E070E0862F08958FE7089581E07B +:1048200008958091FA0280FF08C060911A0170E03B +:10483000759567957595679521C081FF06C0609154 +:104840001A0170E07595679519C082FF04C06091E8 +:104850001A0170E010C09091FB029923C1F06091A1 +:1048600019019617A0F780911A01899FC0011124A0 +:1048700070E00E94872C6038710528F4611571057D +:1048800021F0862F08958FE7089581E0089561E073 +:1048900070E0F4CF803F21F40E94C823819504C0CA +:1048A000813F29F40E94C8238093FE020895823F2D +:1048B00021F40E94C823819504C0833F29F40E94FB +:1048C000C8238093FD020895893F19F40E941124A2 +:1048D00005C08A3F31F40E94112481958093FF0224 +:1048E00008958B3F21F40E941124819504C08C3FD0 +:1048F00029F40E941124809300030895843F21F439 +:104900008091FC02816017C0853F21F48091FC02F8 +:10491000826011C0863F21F48091FC0284600BC04C +:10492000873F21F48091FC02886005C0883F31F404 +:104930008091FC0280618093FC0208958D3F21F4F8 +:104940008091FA0281600BC08E3F21F48091FA02BF +:10495000826005C08F3F29F48091FA0284608093C1 +:10496000FA020895803F39F48091FE0287FF6CC0FF +:104970001092FE0269C0813F29F48091FE02181650 +:10498000BCF362C09091FD02823F29F497FF5CC0A6 +:104990001092FD0259C0833F19F41916CCF354C08C +:1049A000893F41F48091FF0218160CF04DC010921F +:1049B000FF024AC08A3F29F48091FF0287FF44C06A +:1049C000F6CF8B3F39F48091000387FF3DC01092F2 +:1049D00000033AC08C3F29F4809100031816BCF301 +:1049E00033C0843F21F48091FC028E7F17C0853F45 +:1049F00021F48091FC028D7F11C0863F21F48091CB +:104A0000FC028B7F0BC0873F21F48091FC02877FE3 +:104A100005C0883F31F48091FC028F7E8093FC02B8 +:104A200013C08D3F21F48091FA028E7F0BC08E3F20 +:104A300021F48091FA028D7F05C08F3F29F4809187 +:104A4000FA028B7F8093FA028091FD0281110EC0E1 +:104A50008091FE0281110AC08091FF02811106C07F +:104A600080910003811102C01092FB0208958CEF27 +:104A700092E00E9417170E94DE229093F902809321 +:104A8000F80208951F93CF93DF938091F8029091DD +:104A9000F9020E94EA22AC019091FB02992321F0D5 +:104AA00020911D0130E006C020911E018AE0289F60 +:104AB000900111244217530708F486C08091FD022B +:104AC000C091FE02D091FF0210910003811107C036 +:104AD000C11176C0D11174C0111172C075C09F3F51 +:104AE00019F09F5F9093FB02181624F40E94C823CC +:104AF0008093FD028091FD0287FF05C00E94C823BC +:104B000081958093FD021C1624F40E94C823809393 +:104B1000FE028091FE0287FF05C00E94C823819596 +:104B20008093FE026091FD02662339F1C091FE027E +:104B3000CC2319F1772767FD7095872F972F0E9457 +:104B4000A92923E333E343E35FE30E94B92A0E94E8 +:104B500076296093FD026C2F772767FD7095872F6C +:104B6000972F0E94A92923E333E343E35FE30E94E5 +:104B7000B92A0E9476296093FE021D1624F40E9431 +:104B800011248093FF028091FF0287FF05C00E94DD +:104B9000112481958093FF02111624F40E941124A0 +:104BA000809300038091000387FF05C00E941124B9 +:104BB000819580930003DF91CF911F910C9437254D +:104BC0009F3F09F08ECF96CFDF91CF911F9108952F +:104BD000ECEFF2E085E0DF011D928A95E9F7109293 +:104BE000FB021092FA020895833081F128F481309B +:104BF00059F08230D1F00895853009F449C0B8F1F8 +:104C0000863009F456C0089580911E01262F30E0A9 +:104C1000280F311D2F3F310524F4680F60931E01CA +:104C200008958FEF80931E01089580911D01262F16 +:104C300030E0280F311D2F3F310524F4680F6093B9 +:104C40001D0108958FEF80931D01089580911C012F +:104C5000262F30E0280F311D2F3F310524F4680F37 +:104C600060931C0108958FEF80931C01089580913B +:104C70001B01262F30E0280F311D2F3F310524F472 +:104C8000680F60931B0108958FEF80931B010895B7 +:104C900080911A01262F30E0280F311D2F3F31055A +:104CA00024F4680F60931A0108958FEF80931A011E +:104CB000089580911901262F30E0280F311D2F3FD4 +:104CC000310524F4680F6093190108958FEF8093E4 +:104CD00019010895833011F128F4813049F08230B0 +:104CE00091F00895853081F120F18630C1F1089569 +:104CF00080911E01681720F4861B80931E01089581 +:104D000010921E01089580911D01681720F4861BE2 +:104D100080931D01089510921D01089580911C013A +:104D2000681720F4861B80931C01089510921C01C3 +:104D3000089580911B01681720F4861B80931B0146 +:104D4000089510921B01089580911A01681720F4AC +:104D5000861B80931A01089510921A01089580917C +:104D60001901681720F4861B809319010895109289 +:104D7000190108950F931F93873208F048C08E31B0 +:104D800008F08DC0803109F477C008F5873009F448 +:104D900061C068F4863009F09DC08091F202817F85 +:104DA0008E7F8093F20281E08093020394C08B3067 +:104DB00009F489C08E3009F08DC08091F20282FB27 +:104DC000222720F991E0922790FB82F95EC086317C +:104DD00009F479C060F4813109F07CC00E94E21BC3 +:104DE0009091160181E08927809316016CC089316A +:104DF00009F469C08B3109F06DC08091F20281FB2A +:104E0000222720F991E0922790FB81F93EC0883358 +:104E100009F459C050F4893209F457C0853309F4B4 +:104E200054C0873209F451C055C0833409F44DC0D1 +:104E300028F48A3308F44EC0895332C0883409F00C +:104E400049C00E94E21B0E94200A0E94E4030E94C3 +:104E5000392339C09091F202892F8095817080FBAF +:104E600090F929F0966098609093F20234C0997F8F +:104E7000977F9093F20227C08091F20283FB222752 +:104E800020F991E0922790FB83F98093F202992315 +:104E9000D1F08091F20281608093F20214C08D51B2 +:104EA00041E050E060E070E08A019B0104C0000F27 +:104EB000111F221F331F8A95D2F7C901B8010E9422 +:104EC000A21F0E94E21B81E006C061E070E080E06A +:104ED00090E0F5CF80E01F910F91089580E0089554 +:104EE00080E00895CF93C82F80910203813069F04C +:104EF00018F08230C9F184C0E0911701F0911801D7 +:104F00008081823209F07EC007C0E0911701F091E4 +:104F100018018081823261F48C2F0E946E278111EA +:104F200004C08C2F0E94BA261DC081E090E01AC0F8 +:104F30008C2F0E947027811114C0C43179F048F47D +:104F4000CB3079F0C03109F061C082E08093020378 +:104F500008C0C93219F0C83321F058C010920203BA +:104F600055C081E0817054C0C93291F120F5C4313F +:104F700079F1B0F4C73009F047C08EE180931E018B +:104F800082E380931D018AE080931C0184E1809379 +:104F90001B0188E080931A0188E28093190134C0D4 +:104FA000CE51C63088F5EC2FF0E0EA54FE4F8081F8 +:104FB0008093010329C0CE34E9F020F4CB3421F5ED +:104FC0006AE013C0C13579F0C235F1F461E00DC07B +:104FD00080910103882319F01092010315C081E02C +:104FE0008093020315C061E006C0809101030E9416 +:104FF000F4250AC06AE0809101030E946A2604C079 +:105000001092020380E004C081E002C080E0AACFD9 +:10501000CF9108950E949A23811102C00E947623A5 +:105020000E94B62380931D0380FF02C0869501C0B5 +:1050300080E00C94F10280911D03982F9695292F02 +:1050400030E0233031054CF49F5F990F8170892B3C +:10505000816080931D030E94BA2380911D03869571 +:105060000C94F10280911D03982F969591F0915820 +:10507000990F8170892B80931D038E7F91E009F435 +:1050800090E080911D0390FB80F980931D030E94A6 +:10509000BA2380911D0386950C94F10280911D0323 +:1050A000982F909590FB80F980931D030E94BA235E +:1050B00080911D0380FF02C0869501C080E00C94A2 +:1050C000F10290911D03892F86958F5F8F779170E4 +:1050D000843028F4880F892B80931D0302C090939D +:1050E0001D0380911D038E7F91E009F490E0809173 +:1050F0001D0390FB80F980931D030E94BA238091C9 +:105100001D0386950C94F10220911D03922F969514 +:105110008927982F990F822F8170892B80931D03E7 +:105120008E7F91E009F490E080911D0390FB80F95F +:1051300080931D030E94BA2380911D0386950C94D1 +:10514000F10280911D03869508955058BB27AA2728 +:105150000ED0D1C1C2D130F0C7D120F031F49F3F81 +:1051600011F41EF4B7C10EF4E095E7FB9FC1E92FDF +:10517000D3D180F3BA17620773078407950718F035 +:1051800071F49EF5EBC10EF4E0950B2EBA2FA02D15 +:105190000B01B90190010C01CA01A0011124FF27E4 +:1051A000591B99F0593F50F4503E68F11A16F040DF +:1051B000A22F232F342F4427585FF3CF46953795DE +:1051C0002795A795F0405395C9F77EF41F16BA0BA3 +:1051D000620B730B840BBAF09150A1F0FF0FBB1F51 +:1051E000661F771F881FC2F70EC0BA0F621F731F9A +:1051F000841F48F4879577956795B795F7959E3FF7 +:1052000008F0B3CF9395880F08F09927EE0F979584 +:105210008795089527D108F481E008950CD06BC1DB +:1052200063D140F05AD130F021F45F3F19F03EC114 +:10523000511195C14FC170D198F39923C9F35523EA +:10524000B1F3951B550BBB27AA2762177307840779 +:1052500038F09F5F5F4F220F331F441FAA1FA9F32F +:1052600033D00E2E3AF0E0E830D091505040E69521 +:10527000001CCAF729D0FE2F27D0660F771F881F82 +:10528000BB1F261737074807AB07B0E809F0BB0B71 +:10529000802DBF01FF2793585F4F2AF09E3F510595 +:1052A00068F004C15CC15F3FECF3983EDCF3869587 +:1052B00077956795B795F7959F5FC9F7880F911D0B +:1052C0009695879597F90895E1E0660F771F881FF7 +:1052D000BB1F621773078407BA0720F0621B730BAA +:1052E000840BBA0BEE1F88F7E095089504D06894FC +:1052F000B11135C1089518D188F09F5790F0B92F9A +:105300009927B751A0F0D1F0660F771F881F991F1A +:105310001AF0BA95C9F712C0B13081F01FD1B1E0CF +:1053200008951CC1672F782F8827B85F39F0B93FDF +:10533000CCF3869577956795B395D9F73EF490951C +:105340008095709561957F4F8F4F9F4F0895E8949A +:1053500009C097FB3EF490958095709561957F4FBD +:105360008F4F9F4F9923A9F0F92F96E9BB2793956B +:10537000F695879577956795B795F111F8CFFAF47B +:10538000BB0F11F460FF1BC06F5F7F4F8F4F9F4FAC +:1053900016C0882311F096E911C0772321F09EE80A +:1053A000872F762F05C0662371F096E8862F70E070 +:1053B00060E02AF09A95660F771F881FDAF7880F4A +:1053C0009695879597F9089588D018F011F08CD0AC +:1053D00038F480C0C4C0E92F9FD0B0F35523C9F37F +:1053E000E7FB6217730784079507A8F199F3E92F84 +:1053F000FF2788232AF03197660F771F881FDAF777 +:10540000952F5527442332F091505040220F331FDF +:10541000441FD2F7BB27E91BF50B621B730B840BF0 +:10542000B109C1F222F4620F731F841FB11D3197BD +:105430002AF0660F771F881FBB1FEFCF9150504097 +:105440005AF041F0882332F0660F771F881F915081 +:105450005040C1F7939530C08695779567959F5FCB +:10546000D9F7F8CF990F0008550FAA0BE0E8FEEF27 +:1054700016161706E807F907C0F012161306E40718 +:10548000F50798F0621B730B840B950B39F40A2611 +:1054900061F0232B242B252B21F408950A2609F4EF +:1054A000A140A6958FEF811D811D089597F99F67F3 +:1054B00080E870E060E008959F3F31F0915020F463 +:1054C000879577956795B795880F911D96958795E0 +:1054D00097F908959FEF80EC089500240A9416161A +:1054E000170618060906089500240A9412161306D2 +:1054F000140605060895092E0394000C11F4882360 +:1055000052F0BB0F40F4BF2B11F460FF04C06F5F7B +:105510007F4F8F4F9F4F089557FD9058440F551F51 +:1055200059F05F3F71F04795880F97FB991F61F025 +:105530009F3F79F087950895121613061406551F9C +:10554000F2CF4695F1DF08C0161617061806991F08 +:10555000F1CF86957105610508940895E894BB27FD +:1055600066277727CB0197F908957CDF08F48FEF42 +:1055700008950BD0C0CFB1DF28F0B6DF18F0952327 +:1055800009F094CFA7CF1124EACFC6DFA0F3959FEF +:10559000D1F3950F50E0551F629FF001729FBB271A +:1055A000F00DB11D639FAA27F00DB11DAA1F649FC6 +:1055B0006627B00DA11D661F829F2227B00DA11D79 +:1055C000621F739FB00DA11D621F839FA00D611DFF +:1055D000221F749F3327A00D611D231F849F600D20 +:1055E000211D822F762F6A2F11249F5750408AF059 +:1055F000E1F088234AF0EE0FFF1FBB1F661F771FE5 +:10560000881F91505040A9F79E3F510570F04ECF32 +:10561000A6CF5F3FECF3983EDCF3869577956795D0 +:10562000B795F795E7959F5FC1F7FE2B880F911D02 +:105630009695879597F90895FA01EE0FFF1F30961A +:105640002105310599F16115710561F48038BFE3D9 +:105650009B0749F168949038810561F08038BFEF6D +:105660009B0741F0992342F5FF3FE10531052105F4 +:1056700011F1E8940894E795D901AA2329F4AB2FF6 +:10568000BE2FF85FD0F310C0FF5F70F4A695E0F76F +:10569000F73950F019F0FF3A38F49F779F930CD008 +:1056A0000F9007FC905808953EF014CF60E070E032 +:1056B00080E89FE308954FE79F775F934F933F9371 +:1056C0002F939ED02F913F914F915F9152DF05C054 +:1056D00019F40EF0EBCE42CFFDCE26DFC8F396389C +:1056E000C0F707F80F92E8942BE33AEA48EB5FE73C +:1056F0004EDF0F920F920F924DB75EB70F92C0D050 +:10570000EAE0F1E016D04F915F91EF91FF91E595BE +:10571000EE1FFF1F49F0FE57E0684427EE0F441FBD +:10572000FA95E1F74195550B32D00F9007FE26C050 +:105730000895DF93CF931F930F93FF92EF92DF9221 +:105740007B018C01689405C0DA2EEF011EDFFE019B +:10575000E894A5912591359145915591AEF3EF01CE +:1057600006DDFE019701A801DA9479F7DF90EF904A +:10577000FF900F911F91CF91DF9108959B01AC0194 +:1057800060E070E080E89FE349CD90CE95CECCDE1E +:10579000E8F39923D9F3940F511DBBF39150504076 +:1057A00094F059F0882332F0660F771F881F9150CC +:1057B0005040C1F79E3F510544F7880F911D9695C3 +:1057C000879597F908955F3FACF0983E9CF0BB2712 +:1057D000869577956795B79508F4B1609395C1F76D +:1057E000BB0F58F711F460FFE8CF6F5F7F4F8F4F0B +:1057F0009F4FE3CFB4CE0EF05FCE6CCE689456CE02 +:1058000093DEC8F39923D1F3C6F3DF93CF931F93AD +:105810000F93FF92C92FDD2788232AF02197660F67 +:10582000771F881FDAF720E030E040E85FEB9FE366 +:10583000883920F0803E30F021968F7787DCE2E3D4 +:10584000F1E003C083DCEFE5F1E073DF8B01BE0123 +:10585000EC01FB2E6F5771097595771F880B990B1B +:1058600078DD28E132E741E35FE38FDEAF2D980179 +:10587000AE01FF900F911F91CF91DF9178DC3BCE6D +:10588000FA01DC01AA0FBB1F9B01AC01BF5728F432 +:1058900022273327442750781FC0B75188F4AB2FF5 +:1058A0000024469537952795011CA395D2F3002037 +:1058B00069F0220F331F441FB395DAF30DD045CCA6 +:1058C00061307105A0E88A07B94630F49B01AC014C +:1058D0006627772788279078309621F020833183B8 +:1058E000428353830895AA1BBB1B51E107C0AA1F23 +:1058F000BB1FA617B70710F0A61BB70B881F991F71 +:105900005A95A9F780959095BC01CD01089597FB14 +:10591000072E16F4009407D077FD09D00E94732C4F +:1059200007FC05D03EF4909581959F4F08957095A2 +:1059300061957F4F0895EE0FFF1F0590F491E02DC4 +:105940000994F999FECF92BD81BDF89A992780B547 +:105950000895A8E1B0E042E050E00C94C92C262F55 +:10596000F999FECF92BD81BDF89A019700B4021655 +:1059700039F01FBA20BD0FB6F894FA9AF99A0FBE03 +:1059800008950196272F0E94B02C0C94AF2CDC01B7 +:10599000CB01FC01F999FECF06C0F2BDE1BDF89A3A +:1059A000319600B40D9241505040B8F70895F894E4 +:0259B000FFCF27 +:1059B200640007000CFF0000003F64041092106FA7 +:1059C200103B1007100101DF022808140A321E00E2 +:1059D20002040507090B0C0E1011131517181A1CD7 +:1059E2001D1F2123242628292B2D2F303234353711 +:1059F200393B1F0F03764F5F6F7F4969437909591E +:105A020053633149803F5D8B803FF8BF803FCAE1DD +:105A1200803F73ED803FCAE1803FF8BF803F5D8BDE +:105A2200803F3149803F0000803FF16D7F3F75EA42 +:105A32007E3F4C827E3F833F7E3F84287E3F833F72 +:105A42007E3F4C827E3F75EA7E3FF16D7F3F0000D4 +:105A5200803F3F4D3639ED04A0046A043104C4038B +:105A6200DD03F6030F04010203040506070809001B +:00000001FF diff --git a/keyboards/planck/keymaps/max/keymap.c b/keyboards/planck/keymaps/max/keymap.c new file mode 100644 index 000000000..a93b1f47d --- /dev/null +++ b/keyboards/planck/keymaps/max/keymap.c @@ -0,0 +1,38 @@ +#include "keymap.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = { /* Qwerty */ + {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT }, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT}, + {KC_LCTL, BL_STEP, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + // Space is repeated to accommadate for both spacebar wiring positions +}, +[1] = { /* Colemak */ + {KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT }, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT}, + {KC_LCTL, BL_STEP, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[2] = { /* RAISE */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_TRNS}, + {KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_BSLS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[3] = { /* LOWER */ + {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, + {KC_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), KC_TRNS}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, S(KC_BSLS)}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE + [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER + + [3] = ACTION_DEFAULT_LAYER_SET(0), + [4] = ACTION_DEFAULT_LAYER_SET(1), + +}; \ No newline at end of file diff --git a/keyboards/planck/keymaps/mollat/Makefile b/keyboards/planck/keymaps/mollat/Makefile new file mode 100644 index 000000000..581e08cd0 --- /dev/null +++ b/keyboards/planck/keymaps/mollat/Makefile @@ -0,0 +1,25 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/mollat/compiled.hex b/keyboards/planck/keymaps/mollat/compiled.hex new file mode 100644 index 000000000..549b7a8df --- /dev/null +++ b/keyboards/planck/keymaps/mollat/compiled.hex @@ -0,0 +1,1495 @@ +:100000000C94A5030C94E9030C94E9030C94E90304 +:100010000C94E9030C94E9030C94E9030C94E903B0 +:100020000C94E9030C94E9030C94E9150C94BB16A9 +:100030000C941D240C94E9030C94E9030C94E9033B +:100040000C94E9030C944B040C94E9030C94E9031D +:100050000C94E9030C9485240C94E9030C94E903B3 +:100060000C94E9030C94E9030C94E9030C94E90360 +:100070000C94E9030C94E9030C94E9030C94E90350 +:100080000C945E0C0C94E9030C94E9030C94E903C2 +:100090000C94E9030C94E9030C94E9030C94E90330 +:1000A0000C94E9030C94E9030C94E903A704AD0450 +:1000B000B304B904BF04C404C904CE04D304D804EF +:1000C000DD04E204E704EC04F104F60428174A17FF +:1000D00038184A1738188F17B217381807181A180F +:1000E000041B041B331B331B721B921BE81CE81CF4 +:1000F0009D1BE81C4D1C4D1CB41CBD1CE81CE21CC7 +:100100005A1C5A1C5A1C5A1C5A1C5A1C5A1C5A1C3F +:100110005A1C5A1C5A1C5A1C5A1C5A1C5A1C5A1C2F +:100120006A1C781C7F1C861C901C07634236B79B98 +:10013000D8A71A39685618AEBAAB558C1D3CB7CC47 +:100140005763BD6DEDFD753EF6177231BF000000BF +:10015000803F08000000BE922449123EABAAAA2AA2 +:10016000BECDCCCC4C3E00000080BEABAAAAAA3EBD +:1001700000000000BF000000803F000000000008F9 +:100180004178D3BB4387D1133D190E3CC3BD428296 +:10019000AD2B3E68EC8276BED98FE1A93E4C80EF54 +:1001A000FFBE01C4FF7F3F00000000000000000010 +:1001B00000000000000000010204060A0F17202CB6 +:1001C0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9B2 +:1001D000DAC7B39D87715D4A3A2C20170F0A0604CF +:1001E00002010000000000000000000001E0010525 +:1001F000020502E0000129022901E1013302330274 +:10020000E10114021401280228000129022901E158 +:100210000133023302E1011A021A01280228000107 +:10022000E00105020502E0010602060001E0010509 +:10023000020502E0011302130001E00105020502BC +:10024000E0011102110001E00105020502E0010FC9 +:10025000020F0001E00105020502E0012502250070 +:1002600001E00105020502E0012402240001E00191 +:1002700005020502E0012302230001E00105020559 +:1002800002E0012202220001E00105020502E00174 +:100290002102210001E00105020502E00120022007 +:1002A0000001E00105020502E0011F021F0001E05C +:1002B0000105020502E0011E021E0001E001050227 +:1002C0000502E001270227000000000000000000F6 +:1002D00000000C30294614001A0008001500170011 +:1002E0001C0018000C00120013002A002B4304000D +:1002F0001600070009000A000B000D000E000F0099 +:1003000033003400E1001D001B0006001900050049 +:10031000110010003600370038002872000000007D +:10032000E300E200E0002C442C410252E600E7002A +:100330000000000035001E021F02200221022202DE +:10034000230224022502260227022D0000001E009F +:100350001F00200021002200230024002500260089 +:1003600027002E0000000000000000000000000038 +:1003700000000000360037003100310200000000AC +:10038000000000000000000001000000000000006C +:100390000000000035020000000000000000000026 +:1003A0000000000000002F0230022D0200003A0081 +:1003B0003B003C003D003E003F00400041002F005C +:1003C00030002E020000000000000000000042008B +:1003D0004300440045000000000000000000000051 +:1003E000000000000000000000000100000000000C +:1003F000000000000000000000004D0000000000B0 +:1004000000000000490000004C001C140100000026 +:10041000161400004E0022145000510052004F00EC +:100420001314141400004A000000000000004B00E8 +:100430000000000000000000000028000050000044 +:100440000000000000002C002C0000000000000054 +:100450000000000000000E300D3000000000000021 +:1004600000000000000000000B30000000300130F0 +:1004700002300330043005300630073008300930D0 +:10048000000000000000000000000C300000000030 +:100490000A30000000000000000000000000000022 +:1004A000000000000000010000000000000000004B +:1004B000000000000000000000000000000000003C +:1004C000000000000000000000000000000000002C +:1004D000000000000000000000000000000000001C +:1004E000000000000000000000000000000000000C +:1004F00000000000000000000000000000000000FC +:1005000000000000000000000000000000000000EB +:1005100000000000010000000000000000000000DA +:1005200000000000000000000000000000000000CB +:1005300000000000FA000000F200F100F000F300FB +:100540000000000000000000000000000000F900B2 +:10055000000000000000000000000000000000009B +:100560000000FF00FE00FD00F400F600F5000000B2 +:1005700000000000280354006800650020005000BF +:100580006C0061006E0063006B0020004B00650092 +:10059000790062006F0061007200640000002C03AB +:1005A0004F007200740068006F006C0069006E00FC +:1005B00065006100720020004B0065007900620058 +:1005C0006F006100720064007300000004030904FE +:1005D00009026D00040100A0FA09040000010301F2 +:1005E0000100092111010001223F000705810308D4 +:1005F000000A0904010001030102000921110100A0 +:1006000001224D000705820308000A0904020001C7 +:1006100003000000092111010001223600070583B3 +:100620000308000A09040300010300000009211166 +:100630000100012239000705840310000112011096 +:100640000100000008EDFE606001000102000105EC +:10065000010906A101050719E029E7150025019503 +:100660000875018102050819012905950575019193 +:1006700002950175039101050719002977150025D9 +:1006800001957875018102C005010980A1018502EB +:1006900016010026B7001A01002AB700751095014F +:1006A0008100C0050C0901A1018503160100269CEB +:1006B000021A01002A9C02751095018100C00501F3 +:1006C0000902A1010901A100050919012905150067 +:1006D00025019505750181029501750381010501CB +:1006E000093009311581257F950275088106093881 +:1006F0001581257F950175088106050C0A380215BC +:1007000081257F950175088106C0C005010906A1F4 +:1007100001050719E029E7150025019508750181F4 +:1007200002950175088101050819012905950575CE +:100730000191029501750391010507190029FF1523 +:100740000025FF950675088100C011241FBECFEF5C +:10075000DAE0DEBFCDBF04B603FE24C080911E03E5 +:1007600090911F03A0912003B09121038730904BFB +:10077000A740B04BB9F410921E0310921F031092C1 +:1007800020031092210314BE84B7877F84BF88E1C1 +:100790000FB6F89480936000109260000FBEE0E006 +:1007A000F8E3099511E0A0E0B1E0E4E9FCE502C05E +:1007B00005900D92A03CB107D9F713E0A0ECB1E091 +:1007C00001C01D92AE31B107E1F70E942F130C94C6 +:1007D000482E0C9400000895089581E0089508952E +:1007E0000C94EC030C94ED030C94EF030E94122A7A +:1007F00023E030E0281B3109220F2093C401089523 +:10080000282F2F9880918000211108C0877F809326 +:10081000800010928D0010928C001BC08860809325 +:100820008000233019F48FEF9FEF0FC083E090E03A +:10083000821B9109880F991F2FEF3FEFA90102C07A +:10084000569547958A95E2F7CA0190938D0080935B +:100850008C000C94F6030E94F60384E08093C3019D +:100860001092C0010895279A2F988FEF9FEF9093D1 +:100870008700809386008AE08093800089E18093DE +:1008800081000E947B290C942B040E9433046E9AF1 +:10089000769A0C94EB031F920F920FB60F921124CD +:1008A0002F933F938F939F93EF93FF93E091C10119 +:1008B000F091C201CF0101969093C2018093C101D2 +:1008C0000090C30102C0F695E7950A94E2F7EF7332 +:1008D0008091C001823019F4E03251F404C08130BB +:1008E00039F4EF3329F480916F008D7F80936F008E +:1008F000F0E0E455FE4FE49121E031E0E29FC001D9 +:10090000E39F900D11240090C40102C09695879535 +:100910000A94E2F790938D0080938C00FF91EF9101 +:100920009F918F913F912F910F900FBE0F901F902D +:100930001895462F50E04031510508F05CC0FA018F +:10094000EA5AFF4FDC0112968C910C940C2E8823EE +:1009500009F451C08BEB92E00895882309F44BC051 +:100960008EEA92E00895882309F445C081EA92E076 +:100970000895882309F43FC084E992E0089588230C +:10098000D1F187E892E008958823A9F18AE792E0FF +:100990000895882381F18DE692E00895882359F126 +:1009A00080E692E00895882331F183E592E008958E +:1009B000882309F186E492E008958823E1F089E331 +:1009C00092E008958823B9F08CE292E0089588239C +:1009D00091F08FE192E00895882369F08AE092E037 +:1009E0000895882341F085EF91E00895882319F058 +:1009F0008CEE91E0089580E090E0089581E0089504 +:100A00000C94FE0408950C944504809115028823EB +:100A100009F448C08091D1019091D201009779F4F6 +:100A20000E944F249093D2018093D1018091D301F1 +:100A300090E0009771F48091D40190E00AC00E9488 +:100A40005B2420910001309101012817390740F300 +:100A500029C00197880F991F880F991FFC01EB523D +:100A6000FE4F60817181828193810E94C40BE0916D +:100A7000D30184E0E89FF0011124EB52FE4F608126 +:100A80007181828193814FE050E00E947C0F8091C0 +:100A9000D30190E001966091D40170E00E94F82D9E +:100AA0008093D3010C94F003109217020C94910BD5 +:100AB0000895089581E0809317020C9459050895D4 +:100AC00008958F929F92AF92BF92EF92FF920F93F1 +:100AD0001F93CF93DF93CDB7DEB7A3970FB6F894EC +:100AE000DEBF0FBECDBF7C01FC0100811181C801BA +:100AF0000E944C22B8010E9463078C01B7010E943A +:100B00000005882309F4CCC10032F0E51F0741F449 +:100B1000F7018281882309F458C00E94E00FC0C108 +:100B20000132F0E51F0741F4F7018281882309F4BF +:100B30004CC00E94E90FB4C10232F0E51F0751F426 +:100B4000F7018281882309F440C00E94DC0F8111E3 +:100B5000F0CFE3CF0332F0E51F0739F4F7018281CC +:100B6000882399F10E945A059BC10432F0E51F07C2 +:100B700039F4F7018281882341F10E94540590C124 +:100B80000532F0E51F0749F4F70182818823E9F077 +:100B9000809117028111F1CFE5CF0632F0E51F07F2 +:100BA00039F4F7018281882381F00E94F00F0AC096 +:100BB0000732F0E51F0749F4F7018281882329F005 +:100BC0000E94FB0F0E9460056BC18091170281118A +:100BD00005C0F70182818111CFC018C1003E110507 +:100BE00079F4F7018281882309F44DC00E94910BAA +:100BF00081E080931602109215021092D40150C128 +:100C0000023E110559F4F70182818823E1F10E9427 +:100C1000910B109216021092150242C1033E11056B +:100C200091F4F7018281882371F10E94910B109257 +:100C3000160281E0809315021092D3011092D20126 +:100C40001092D1012DC10235110559F4F7018281AD +:100C5000882309F425C180910001909101010A9730 +:100C60000DC00135110579F4F7018281882309F45B +:100C700017C180910001909101010A9690930101A2 +:100C8000809300010DC14091040183E2EFE1F1E0A6 +:100C9000DE01119601900D928A95E1F7F7018081AE +:100CA00021E030E02C0F3D1F280F311DC90120919C +:100CB000020130910301FC01E20FF31F60817727ED +:100CC00067FD7095640F711D882777FD8095982FBB +:100CD0000E941A2B20E030E040E451E40E947F2A79 +:100CE0004B015C01F701218184E090E0821B9109B6 +:100CF000BC01882777FD8095982F0E941A2B9B01B5 +:100D0000AC01C501B4010E94172A9B01AC0160E04F +:100D100070E080E090E40E948D2C20E030E04CED0B +:100D200050E40E942A2C4B015C01F7018281882348 +:100D3000D1F04FE050E0C501B4010E947C0F8091DA +:100D400016028823A1F08091D40124E0829FF00153 +:100D50001124EB52FE4F80829182A282B3828F5F78 +:100D60008093D40104C0C501B4010E94C40B0F3F9D +:100D7000110508F02ECF94C08091D00181111FC0C1 +:100D8000043130E5130709F051C00E94020581E0EB +:100D90008093D0010E944F249093CF018093CE0185 +:100DA0001092C7011092C9011092C8011092CB0194 +:100DB0001092CA011092CD011092CC0171C08091A5 +:100DC000CE019091CF010E945B24883C910570F484 +:100DD0008091C701E82FF0E0EE0FFF1FE853FE4FB0 +:100DE000118300838F5F8093C7015AC0043880E568 +:100DF000180721F00538104501F13AC0F70182814A +:100E0000882341F01092C50182E01EC0043830E50D +:100E1000130759F58091C501811106C086E20E9431 +:100E2000A81986E20E94701A82E01CC00438F0E51E +:100E30001F0741F305381045D9F4F7018281882353 +:100E400031F01092C60180E20E94BF1A29C0809141 +:100E5000C601811106C087E20E94A81987E20E949C +:100E6000701A80E20E94C61A1BC00538104529F38B +:100E700081E08093C5018093C601C701A3960FB698 +:100E8000F894DEBF0FBECDBFDF91CF911F910F91C0 +:100E9000FF90EF90BF90AF909F908F900C94F203D3 +:100EA00080E0A3960FB6F894DEBF0FBECDBFDF91F2 +:100EB000CF911F910F91FF90EF90BF90AF909F90B7 +:100EC0008F90089508959CE0799FF001112490E39C +:100ED000899FE00DF11D1124E60FF11DEE0FFF1F9C +:100EE000EC52FD4F859194910895880F991FFC0154 +:100EF000E85BFE4F859194910895880F991FFC013E +:100F0000E853FD4F8591949108950F931F93CF93CC +:100F1000DF93EC01811521E39207A0F5C11580E371 +:100F2000D80708F0D7C0C83ED105D8F4C03ED105D7 +:100F300008F007C2C83AD10578F4C53AD10508F0DF +:100F40006AC0C130D10509F463C008F4F7C1C430E8 +:100F5000D10508F0F6C1F2C1CB3BD10508F466C05B +:100F6000EDC1C11590E2D90708F0AFC0C11521E06D +:100F7000D20708F0E6C1C03FD10508F4DFC18E01F9 +:100F800010651FC2C03880E5D80700F5C03790E56E +:100F9000D90708F0A3C0C11520E5D20709F4ACC0F9 +:100FA00050F4CE01905480319F4008F0C7C1DF70EB +:100FB0008E01106A06C2C13080E5D80709F4AEC0C0 +:100FC000C43190E5D90708F4AFC0B8C1C33820E5F3 +:100FD000D20709F48EC050F4C13890E5D90709F45E +:100FE00082C008F083C000E011EDEBC1C03181E5A3 +:100FF000D80708F4A3C1C11597E5D90708F436C18D +:10100000CE0190578115904108F098C1DF7093C1CF +:1010100001E010E0D6C1C53AD10509F494C1C63A41 +:10102000D10509F093C102E810E4CBC1C83AD1055B +:1010300009F48FC1C93AD10509F48EC1CA3AD10564 +:1010400009F48DC1CB3AD10509F48CC1CC3AD10554 +:1010500009F48BC1CD3AD10509F48AC1C03BD10551 +:1010600009F489C1CE3AD10509F488C1CF3AD10536 +:1010700009F487C1C13BD10509F486C1C23BD10542 +:1010800009F485C1C33BD10509F484C1C43BD10532 +:1010900009F483C1C53BD10509F482C1C63BD10522 +:1010A00009F481C1C73BD10509F480C1C83BD10512 +:1010B00009F47FC1C93BD10509F47EC1CA3BD10502 +:1010C00009F47DC100E014E47CC1CE019F700E9450 +:1010D0007D0778C1DD278E01106C73C1CF70DD27CD +:1010E0008E01146D6EC100E010ED6BC100E012EDD9 +:1010F00068C100E013ED65C10E94531D0E94910B71 +:101100000E9458058FEF94E32CE0815090402040DE +:10111000E1F700C000000E94AA2453C18091F202AE +:1011200081608093F2024DC10E940B25811102C0A3 +:101130000E94E7240E941E2590E090931D03809357 +:101140001C03C23080E5D80721F480911C03816024 +:1011500086C0C43090E5D90721F480911C038260D9 +:101160007EC0C63020E5D20721F480911C03846044 +:1011700076C0C83080E5D80719F480911C0327C0D9 +:10118000CA3090E5D90721F480911C03806167C0C3 +:10119000CC3020E5D20721F480911C0380625FC02F +:1011A000CE3080E5D80721F480911C03806457C0BD +:1011B000C03190E5D90721F480911C0380684FC0AD +:1011C000C23120E5D20729F480911C038460886035 +:1011D00046C0C33080E5D80721F480911C038E7F80 +:1011E0003EC0C53090E5D90721F480911C038D7F66 +:1011F00036C0C73020E5D20721F480911C038B7FD5 +:101200002EC0C93080E5D80719F480911C0326C090 +:10121000CB3090E5D90721F480911C038F7E1FC04D +:10122000CD3020E5D20721F480911C038F7D17C0BB +:10123000CF3080E5D80721F480911C038F7B0FC04D +:10124000C13190E5D90721F480911C038F7707C045 +:10125000C331D04531F480911C038B7F877F80930D +:101260001C0380911C030E942225ABC08D2F99275F +:101270008F70992781309105D9F49E01237033270F +:1012800002C0880F991F2A95E2F79C688E0144E0FE +:10129000000F111F4A95E1F700271370802B912B47 +:1012A00053E0CC0FDD1F5A95E1F7C076DD272FC044 +:1012B0008230910531F4DC2FCC278E01016F106A4A +:1012C00080C08330910569F4CE018370992701E0D5 +:1012D00010E002C0000F111F8A95E2F7C8019C6858 +:1012E0000FC084309105B9F4CE018370992701E0D5 +:1012F00010E002C0000F111F8A95E2F7C8019A683A +:1013000023E0CC0FDD1F2A95E1F7C07ED7708C015A +:101310000C2B1D2B56C08530910531F4DC2FCC27CA +:101320008E01046F106A4DC0069709F04AC0CF7154 +:10133000DD27DC2FCC278E01106243C000E010E0D7 +:1013400040C08E013EC001E810E43BC003E810E459 +:1013500038C002EE14E435C009EE14E432C00AEEDF +:1013600014E42FC005EB14E42CC006EB14E429C0F0 +:1013700007EB14E426C00CEC14E423C00DEC14E4D9 +:1013800020C003E815E41DC00AE815E41AC002E90C +:1013900015E417C004E915E414C001E216E411C015 +:1013A00003E216E40EC004E216E40BC005E216E404 +:1013B00008C006E216E405C007E216E402C00AE22D +:1013C00016E4C801DF91CF911F910F9108959CE021 +:1013D000799FF001112490E3899FE00DF11D112404 +:1013E000E60FF11DEE0FFF1FEC52FD4F859194911A +:1013F000803E9105E0F4803C910558F581339105DC +:1014000009F46FC048F48932910509F463C08A3247 +:10141000910509F46DC072C089339105E9F08238F5 +:101420009105D1F08533910509F44DC067C0833E25 +:10143000910581F138F4803E9105B9F0823E910525 +:10144000D9F05CC0863E910561F1873E9105A1F11E +:1014500055C00E947507089520911C0320FD02C00D +:1014600021FF4CC080EE90E049C080911C0380FFBA +:10147000F9CF89E390E042C080911C0382FF0EC047 +:1014800080911C0384FF03C080E090E037C083EEAE +:1014900090E034C080911C0382FFF2CF82EE90E096 +:1014A0002DC080911C0383FF0BC080911C0384FD21 +:1014B000EBCF87EE90E022C080911C0383FFF5CF35 +:1014C00086EE90E01BC080911C0385FF07C089E277 +:1014D00090E014C080911C0385FFF9CF85E390E074 +:1014E0000DC080911C0386FF07C08AE290E006C011 +:1014F00080911C0386FFF9CF81E390E00E9485076D +:1015000008950C94F403E82FF0E0E25BFE4F808135 +:10151000E82FEF70F0E082958F7021E030E0A901B4 +:1015200002C0440F551F8A95E2F740A308950F9318 +:101530001F93CF93DF9385B7806885BF85B7806899 +:1015400085BFC3E0D0E001E010E0FE01E25BFE4FAA +:101550008081E82FEF70F0E021A182958F70A801C3 +:1015600002C0440F551F8A95E2F7CA01822B81A35E +:101570008C2F0E94830A219740F78BE090E061E076 +:1015800070E0FC01EE5BFE4F2081E22FEF70F0E097 +:1015900042A122952F70DB0102C0AA0FBB1F2A9522 +:1015A000E2F79D01242B22A3019758F7DF91CF91F9 +:1015B0001F910F910C940305EF92FF920F931F93CD +:1015C000CF93DF9300E212E0C3E0EE24E394F12C2A +:1015D000D5E08C2F0E94830A8BE090E040E050E041 +:1015E000FC01EE5BFE4F6081E62FEF70F0E020A182 +:1015F00030E062956F7002C0359527956A95E2F7E5 +:1016000020FD09C09701082E02C0220F331F0A9443 +:10161000E2F7422B532B019718F7F8019291829130 +:101620008F018417950721F051834083D0930501E2 +:101630008C2F0E94830AC15060F68091050187FDBE +:101640002CC08150809305018F3F39F08FE99FE0D6 +:101650000197F1F700C0000020C080911E02909118 +:101660001F02909327028093260280911C02909182 +:101670001D02909325028093240280911A0290917A +:101680001B02909323028093220280911802909172 +:10169000190290932102809320020E94050581E0A7 +:1016A000DF91CF911F910F91FF90EF900895E82F58 +:1016B000F0E0EE0FFF1FE05EFD4F80819181089505 +:1016C00008950F931F93CF9308E212E0C0E0F80152 +:1016D000929182918F010E94C723C80FF2E00032DD +:1016E0001F07A9F78C2FCF911F910F9108950E948A +:1016F0000B25811102C00E94E7240E9430258093AF +:1017000007033E9A809171008D7F8093710082E083 +:10171000809390008AE18093910081E080932A0277 +:10172000089580912A02811102C00E94770B1092C5 +:101730007A0210927902809171008D7F80937100FE +:10174000809190008F738093900010923C021092D1 +:101750003B02109273021092740210927502109262 +:1017600076021092720210927102E1E5F2E0A1E4B9 +:10177000B2E011921192119211921D921D9282E08B +:10178000E137F807B1F70895CF92DF92EF92FF9219 +:101790000F931F93CF93DF9320913B02222309F4F1 +:1017A00084C06B017C0180912A02811102C00E94D9 +:1017B000770B01E712E0C7E0D0E0A7019601F8013E +:1017C00092918291729162918F010E947B2A811184 +:1017D00031C0FE01EE0FFF1FEE0FFF1FEF5AFD4F4E +:1017E0001082118212821382DE01AA0FBB1FAF5B2F +:1017F000BD4F11961C921E92C730D105E9F021967B +:1018000044815581668177814083518362837383EC +:10181000148215821682178212968D919C911397CD +:1018200011969C938E9313961C921E921297349647 +:101830001296E2CF219708F68091790290917A0270 +:10184000019797FD05C090937A028093790204C0B6 +:1018500010927A02109279028091790290917A0224 +:1018600020917702309178022817390724F01092DE +:10187000780210927702892BC1F4809171008D7FDC +:1018800080937100809190008F73809390001092EC +:1018900073021092740210927502109276021092E6 +:1018A00072021092710210923B02DF91CF911F9150 +:1018B0000F91FF90EF90DF90CF9008951F920F92BD +:1018C0000FB60F9211244F925F926F927F928F9278 +:1018D0009F92AF92BF92CF92DF92EF92FF922F939F +:1018E0003F934F935F936F937F938F939F93AF93A8 +:1018F000BF93CF93DF93EF93FF9380913B028823B5 +:1019000009F49BC1C0917902D0917A021C161D0680 +:101910000CF093C140902B0250902C0260902D024D +:1019200070902E0220E030E0A901C301B2010E94B4 +:10193000262C18160CF065C0C130D10509F452C030 +:101940008091770290917802BE010E94F82D7C016F +:10195000909378028093770280903D0290903E02AF +:10196000A0903F02B090400220E030E040E85FE30A +:10197000C501B4010E94172A60933D0270933E0294 +:1019800080933F0290934002F701EE0FFF1FEE0F8E +:10199000FF1FEF5AFD4FA301920160817181828187 +:1019A00093810E947F2A20E030E040E05EE30E94C5 +:1019B0002A2C9B01AC01C501B4010E94262C1816EB +:1019C0008CF4C7010196BE010E94F82D9093780215 +:1019D0008093770210923D0210923E0210923F02D5 +:1019E00010924002E0917702F0917802EE0FFF1F13 +:1019F000EE0FFF1FEF5AFD4F60817181828193814D +:101A0000D0C0C0907302D0907402E0907502F09044 +:101A1000760220E030E0A901C701B6010E947B2ACE +:101A20002197882309F4A2C0FE01EE0FFF1FEE0FDD +:101A3000FF1FEF5AFD4F80809180A280B380A501E7 +:101A40009401C701B6010E947B2A87FF31C0A5011E +:101A5000940160E070E08CED93EC0E947F2A20E01E +:101A600030E040E451E40E947F2A20E030E040E092 +:101A70005FE30E942A2C9B01AC0160E070E080E0F3 +:101A800090E40E948D2C9B01AC01C501B4010E9421 +:101A90002A2C9B01AC01C701B6010E947B2A87FF5B +:101AA00007C0A701960160E070E08CED93E439C0B7 +:101AB000A5019401C701B6010E94262C18160CF04E +:101AC00055C0A501940160E070E08CED93E40E94A4 +:101AD0007F2A20E030E040E451E40E947F2A20E0A9 +:101AE00030E040E05FE30E942A2C9B01AC0160E003 +:101AF00070E080E090E40E948D2C9B01AC01C50158 +:101B0000B4010E942A2C9B01AC01C701B6010E94BE +:101B1000262C18165CF5A701960160E070E08CEDAC +:101B200093EC0E947F2A20E030E040E451E40E94E0 +:101B30007F2A20E030E040E05FE30E942A2C9B01F6 +:101B4000AC0160E070E080E090E40E948D2C9B018D +:101B5000AC01C701B6010E942A2C609373027093F6 +:101B60007402809375029093760213C0FE01EE0F0B +:101B7000FF1FEE0FFF1FEF5AFD4F80819181A28161 +:101B8000B3818093730290937402A0937502B09313 +:101B90007602609173027091740280917502909147 +:101BA000760220912802309129022F3F4FEF34070F +:101BB00031F02F5F3F4F30932902209328020E947B +:101BC00006106B017C0120E034E244EF51E40E94F6 +:101BD0007B2A87FF08C086EFC82E88E2D82E84EFC4 +:101BE000E82E81E4F82E20E030E040E051E4C70127 +:101BF000B6010E942A2C9B01AC0160E074E284E7EC +:101C00009BE40E947F2A6B017C010E94EC2A709366 +:101C10009700609396002091060130910701409152 +:101C2000080150910901C701B6010E942A2C0E94A7 +:101C3000EC2A709399006093980080913C0288236D +:101C400009F433C1C0903702D0903802E0903902D5 +:101C5000F0903A0220E030E0A901C701B6010E94ED +:101C6000262C1816D4F580912802909129028F3FD6 +:101C70002FEF920729F00196909329028093280272 +:101C8000C701B6010E94061020E030E040E051E4B8 +:101C90000E942A2C9B01AC0160E074E284E79BE483 +:101CA0000E947F2A6B017C010E94EC2A70939700AE +:101CB0006093960020910601309107014091080140 +:101CC00050910901C701B6010E942A2C0E94EC2AFA +:101CD000709399006093980008C01092970010923A +:101CE00096001092990010929800609131027091C4 +:101CF00032026F5F7F4F7093320260933102209106 +:101D000096003091970080E090E0232BF1F0C09195 +:101D10009600D09197000E94182B6B017C01BE01A8 +:101D200080E090E00E94182B9B01AC01609133028F +:101D30007091340280913502909136020E947F2A80 +:101D400020E03FEF4FE757E410C00E94182B6B01D3 +:101D50007C0120E030EE4FEF54E46091330270914B +:101D6000340280913502909136020E942A2C9B0108 +:101D7000AC01C701B6010E94262C87FD96C0809158 +:101D80002F028F5F80932F0290E020910303309108 +:101D9000040382179307A0F080910E03882319F0A3 +:101DA00010922F020DC0809171008D7F8093710081 +:101DB000809190008F738093900010923C027DC0C0 +:101DC00080913002C0912F02811128C0C090080379 +:101DD000D0900903E0900A03F0900B0320E030E07C +:101DE000A901C701B6010E94262C1816BCF481E097 +:101DF000809330021092370210923802109239020A +:101E000010923A02C0923302D0923402E09235022C +:101E1000F0923602C150C0932F0243C0109230029C +:101E20001092290210922802E0910503F091060316 +:101E300048E0C49FE00DF11D112480819181A281B1 +:101E4000B3818093370290933802A0933902B09304 +:101E50003A0220E030E040E85EE3648175818681EB +:101E600097810E942A2C6B017C0180910A01682FC6 +:101E700070E080E090E00E94182B20E030E048EC19 +:101E800052E40E947F2A9B01AC01C701B6010E9467 +:101E90002A2C60933302709334028093350290931E +:101EA000360210923202109231028091070380FDB7 +:101EB00004C010923C0210923B02FF91EF91DF911F +:101EC000CF91BF91AF919F918F917F916F915F91D2 +:101ED0004F913F912F91FF90EF90DF90CF90BF9067 +:101EE000AF909F908F907F906F905F904F900F90EA +:101EF0000FBE0F901F901895CF92DF92EF92FF9236 +:101F0000CF93DF936B017C01EA0180912A0281115A +:101F100002C00E94770B8091070380FF46C080912A +:101F2000790290917A0208970CF03FC0809171007D +:101F30008D7F8093710080913C0281110E94910BF2 +:101F400081E080933B02109229021092280220E047 +:101F500030E0A901C701B6010E94262C1816DCF456 +:101F60008091790290917A02FC01EE0FFF1FEE0F33 +:101F7000FF1FEF5AFD4FC082D182E282F382FC0143 +:101F8000EE0FFF1FEF5BFD4FD183C083019690934F +:101F90007A0280937902809171008260809371004F +:101FA00080919000806880939000DF91CF91FF90A6 +:101FB000EF90DF90CF90089580910703817008958E +:101FC000809107038160809307030E9434250C945D +:101FD0005F05809107038E7F809307030C9434255F +:101FE00080917B0290E0019666E070E00E94F82DFF +:101FF00080937B02089580917B0290E0019766E0D8 +:1020000070E00E94F82D80937B0208958F929F923A +:10201000AF92BF92CF92DF92EF92FF920F931F93F6 +:10202000CF93DF936B017C01C0912802D0912902EC +:10203000BE0180E090E00E94182B4B015C01A701DB +:10204000960160E070E08CE594E40E947F2A9B0199 +:10205000AC01C501B4010E942A2C0E94EC2A2091F7 +:102060007B02233009F473C028F4222351F021307D +:10207000E9F02CC1243009F4A0C0253009F4E0C0F7 +:1020800025C180E090E0A0E0BFE38093060190933B +:102090000701A0930801B093090110922B0210923E +:1020A0002C0210922D0210922E0210C110922B02BF +:1020B00010922C0210922D0210922E0264317105A2 +:1020C00040F46A30710560F520E030E040E85EE3FE +:1020D0002BC0693C710508F0AAC080E090E00E9426 +:1020E000182B20E030E040EA51E40E94162A20E05C +:1020F00030E044E353E40E947F2A9B01AC010E943C +:102100002A2C20E030E040E05EE30E942A2C9B0174 +:10211000AC0160E070E080E09EE30E94162A44C0BB +:1021200020E030E040E05FE3C701B6010E942A2CC6 +:102130006B017C0180E090E0A0E0BEE380930601AB +:1021400090930701A0930801B0930901BFC01092BA +:102150002B0210922C0210922D0210922E024AE0B5 +:10216000469F9001479F300D1124C90168EB7BE029 +:102170000E94E42DBC016C5D754077FF03C0719532 +:1021800061957109882777FD8095982F0E941A2BF9 +:102190002EE333EC4EE259E30E942A2C20E030E09B +:1021A00040EC5EE30E94172A6093060170930701DA +:1021B000809308019093090189C010922B0210921C +:1021C0002C0210922D0210922E02CE0183709927BC +:1021D000892BE1F0BE016170772780E090E00E94DA +:1021E000182B20E030E040E05EE30E942A2C20E043 +:1021F00030E040E45FE30E94172A60930601709389 +:10220000070180930801909309010CC080E090E0E1 +:10221000A0E0BFE38093060190930701A09308011B +:10222000B0930901C770DD27CD2B09F04FC0109284 +:10223000060110920701109208011092090146C090 +:1022400010922B0210922C0210922D0210922E024C +:1022500000E010E020E03FE3009306011093070147 +:1022600020930801309309016739710578F180E006 +:1022700090E00E94182B20E030E047E153E40E94F8 +:10228000162A20E030E04AE754E40E947F2A20E04A +:1022900030E048E452E40E942A2C20E030E040EA9A +:1022A00051E40E945C2B0E94E72A660F771F660F9D +:1022B000771FFB01EE5AFE4F20813181428153810D +:1022C000C701B6010E942A2C6B017C01C701B6012F +:1022D000DF91CF911F910F91FF90EF90DF90CF9002 +:1022E000BF90AF909F908F90089580918C02089539 +:1022F000CF93DF9300D01F92CDB7DEB79C018091C2 +:102300001303843019F593E099833B832A839093D8 +:10231000E9008FEF9091E800815095FD06C095EDA2 +:102320009A95F1F700008111F5CF8091E80085FFC3 +:102330000DC040E050E063E070E0CE0101960E94E5 +:10234000D9138091E8008E778093E8000F900F906A +:102350000F90DF91CF910895CF93DF9300D01F921C +:10236000CDB7DEB720911303243021F522E0298375 +:102370009B838A8383E08093E9008FEF9091E8004C +:10238000815095FD06C095ED9A95F1F700008111F9 +:10239000F5CF8091E80085FF0DC040E050E063E09C +:1023A00070E0CE0101960E94D9138091E8008E77EB +:1023B0008093E8000F900F900F90DF91CF910895D8 +:1023C000209113032430F1F422E02093E9002FEF51 +:1023D0003091E800215035FD06C035ED3A95F1F712 +:1023E00000002111F5CF2091E80025FF0BC040E04F +:1023F00050E065E070E00E94D9138091E8008E778C +:102400008093E8000895CF93DF93EC01909113033C +:10241000943009F046C0809115018823D9F080914D +:1024200016018823B9F09093E9008FEF9091E800AE +:10243000815095FD06C095E19A95F1F70000811154 +:10244000F5CF8091E80085FF2CC040E050E060E1CE +:1024500070E017C081E08093E9008FEF9091E80071 +:10246000815095FD06C095ED9A95F1F70000811118 +:10247000F5CF8091E80085FF14C040E050E068E0AF +:1024800070E0CE010E94D9138091E8008E7780938E +:10249000E80080E1FE01ACE7B2E001900D928A9580 +:1024A000E1F7DF91CF91089580911203811109C066 +:1024B0000E946E150E94CB158091E200846080938B +:1024C000E2000895109212030895089508950C945F +:1024D000122442E061EC81E00E94E81442E061ECE9 +:1024E00082E00E94E81442E061EC83E00E94E8147C +:1024F00042E161EC84E00C94E81480911503833090 +:1025000009F455C030F4813071F0823009F48EC086 +:1025100008958A3009F47AC08B3009F460C089309C +:1025200009F09CC020C080911403813A09F096C044 +:102530008091E800877F8093E80080911803909154 +:102540001903892B21F460E18CE792E003C060E07D +:1025500080E090E070E00E9424148091E8008B7786 +:102560008093E800089580911403813209F076C0C9 +:102570008091180390911903009719F0039709F0BF +:102580006DC08091E800877F8093E8008091E8002B +:1025900082FD05C0809113038111F8CF5FC0809147 +:1025A000F10080938C028091E8008B7753C080917A +:1025B0001403813A09F052C08091180390911903D5 +:1025C000892B09F04BC08091E800877F8093E80059 +:1025D0008091E80080FFFCCF8091150136C080918A +:1025E00014038132D9F58091180390911903892B36 +:1025F000A9F58091E800877F8093E8000E941D156F +:1026000080911603809315010C94531D809114033F +:10261000813221F58091E800877F8093E8000E9455 +:102620001D158091170380938D02089580911403E6 +:10263000813AA1F48091E800877F8093E80080913F +:10264000E80080FFFCCF80918D028093F1008091A3 +:10265000E8008E778093E8000C941D15089584B7E8 +:10266000877F84BF88E10FB6F89480936000109252 +:1026700060000FBE90E080E80FB6F8948093610090 +:10268000909361000FBE0E94C0180E946E150E94B8 +:10269000CB158091E20084608093E20078940E94E0 +:1026A00051180E94C2188BE091E00E946C18809132 +:1026B0001303853069F40E94D3238091110388238A +:1026C000B1F30E940124882391F30E94C313EFCF3A +:1026D0000E94CA18ECCF292F332723303105C9F0C7 +:1026E00064F42130310581F02230310509F043C016 +:1026F0008DE690E020ED35E042C021323105F1F069 +:102700002232310541F137C082E190E02DE336E01D +:1027100036C099278130910541F08230910541F012 +:10272000892B49F5ECECF5E005C0EEE9F5E002C0D7 +:10273000E4E7F5E0849190E09F0121C06430D8F493 +:10274000E62FF0E0EE0FFF1FE255FE4F20813181B2 +:1027500089E090E014C0643070F470E0FB01EE0F8B +:10276000FF1FEA55FE4F20813181FB01EE55FE4FE0 +:10277000808190E004C080E090E020E030E0FA0149 +:1027800031832083089580E189BD82E189BD09B448 +:1027900000FEFDCF8091D8008F7D8093D80080917E +:1027A000E00082608093E0008091E00081FDFCCF3A +:1027B0000895CF92DF92EF92FF920F931F93CF93E2 +:1027C000DF93EC018B016A010E943C15811133C03B +:1027D000C114D10439F0F60180819181081B190BD5 +:1027E000C80FD91FE12CF12C0115110519F18091A9 +:1027F000E80085FD16C08091E8008E778093E800A0 +:10280000C114D10449F0F60180819181E80EF91ECE +:10281000F182E08285E00FC00E943C15882321F3FD +:102820000AC089918093F10001501109FFEFEF1A5E +:10283000FF0ADACF80E0DF91CF911F910F91FF90D7 +:10284000EF90DF90CF90089520911A0330911B03F1 +:102850002617370748F06115710539F42091E80013 +:102860002E772093E80001C0B90140E061157105A1 +:10287000A9F120911303222309F443C0253009F460 +:1028800042C02091E80023FD40C02091E80022FDD5 +:1028900032C02091E80020FFE9CF4091F300209161 +:1028A000F20030E0342BFC01CF016115710559F0C5 +:1028B0002830310540F481918093F1006150710915 +:1028C0002F5F3F4FF1CF41E02830310509F040E064 +:1028D0002091E8002E772093E800C8CF4111C9CF9E +:1028E0000AC080911303882361F0853061F08091E4 +:1028F000E80083FD0AC08091E80082FFF2CF80E00B +:10290000089582E0089583E0089581E0089520917C +:102910001A0330911B032617370748F0611571051C +:1029200039F42091E8002E772093E80001C0B90126 +:10293000FC0120E06115710591F18091130388235A +:1029400009F440C0853009F43FC08091E80083FD60 +:102950003DC08091E80082FD2FC08091E80080FF9B +:10296000E9CF2091F3008091F20090E0922B611565 +:10297000710559F08830910540F424912093F100BD +:102980003196615071090196F2CF21E0089709F064 +:1029900020E08091E8008E778093E800CBCF211172 +:1029A000CCCF0AC080911303882361F0853061F099 +:1029B0008091E80083FD0AC08091E80082FFF2CF99 +:1029C00080E0089582E0089583E0089581E008950D +:1029D000982F973058F59093E900981739F0709137 +:1029E000EC002091ED005091F00003C0242F762FD1 +:1029F00050E021FF19C03091EB003E7F3093EB0097 +:102A00003091ED003D7F3093ED003091EB0031606F +:102A10003093EB007093EC002093ED005093F000A6 +:102A20002091EE0027FF07C09F5FD3CF8F70809368 +:102A3000E90081E0089580E008958091140387FF04 +:102A400011C08091E80082FD05C0809113038111BF +:102A5000F8CF11C08091E8008B770BC080911303F1 +:102A6000882349F08091E80080FFF8CF8091E8004A +:102A70008E778093E80008952091E4003091E5007E +:102A800095E64091EC00842F817040FF22C0809138 +:102A9000E80080FD1CC080911303882391F08530ED +:102AA00091F08091EB0085FD10C04091E4005091C1 +:102AB000E5004217530729F39A01915011F784E07A +:102AC000089582E0089583E0089581E0089580E00C +:102AD00008954091E80042FFDECF08950E94DC1582 +:102AE0000E94E415E0EEF0E0808181608083E8EDF3 +:102AF000F0E080818F77808319BCA7EDB0E08C91E6 +:102B00008E7F8C9380818F7E808310921203089534 +:102B10000F931F93CF93DF930E94DC150E94E4155F +:102B2000C8EDD0E088818F7788838881806888832A +:102B300088818F7D888319BC1092130310920F0334 +:102B4000109211031092100300EE10E0F801808142 +:102B50008B7F808388818160888342E060E080E0B1 +:102B60000E94E814E1EEF0E080818E7F8083E2EE47 +:102B7000F0E0808181608083808188608083F801BB +:102B800080818E7F8083888180618883DF91CF916F +:102B90001F910F910895E8EDF0E080818F7E808392 +:102BA000E7EDF0E080818160808384E082BF81E096 +:102BB000809312030C948815E8EDF0E080818E7FFD +:102BC00080831092E20008951092DA001092E100E2 +:102BD00008951F920F920FB60F9211242F933F93D7 +:102BE0004F935F936F937F938F939F93AF93BF9315 +:102BF000EF93FF938091E10082FF0BC08091E20090 +:102C000082FF07C08091E1008B7F8093E1000E94EA +:102C100050188091DA0080FF1FC08091D80080FF9B +:102C20001BC08091DA008E7F8093DA008091D900FA +:102C300080FF0DC080E189BD82E189BD09B400FE3D +:102C4000FDCF81E0809313030E94541205C019BC8C +:102C5000109213030E9462128091E10080FF19C05C +:102C60008091E20080FF15C08091E2008E7F80930A +:102C7000E2008091E20080618093E2008091D800C0 +:102C800080628093D80019BC85E0809313030E9472 +:102C900066128091E10084FF30C08091E20084FFE1 +:102CA0002CC080E189BD82E189BD09B400FEFDCF61 +:102CB0008091D8008F7D8093D8008091E1008F7E35 +:102CC0008093E1008091E2008F7E8093E20080910A +:102CD000E20081608093E20080910F03882311F06D +:102CE00084E007C08091E30087FD02C081E001C05D +:102CF00083E0809313030E9467128091E10083FFB9 +:102D000029C08091E20083FF25C08091E100877F88 +:102D10008093E10082E08093130310920F0380916F +:102D2000E1008E7F8093E1008091E2008E7F8093AE +:102D3000E2008091E20080618093E20042E060E086 +:102D400080E00E94E8148091F00088608093F00099 +:102D50000E946512FF91EF91BF91AF919F918F916A +:102D60007F916F915F914F913F912F910F900FBE87 +:102D70000F901F9018951F920F920FB60F9211246B +:102D80002F933F934F935F936F937F938F939F9373 +:102D9000AF93BF93CF93DF93EF93FF93C091E9007D +:102DA000CF708091EC00D82FD17080FDD0E81092C8 +:102DB000E9008091F000877F8093F00078940E9472 +:102DC000FF161092E9008091F00088608093F00077 +:102DD000CD2BCF70C093E900FF91EF91DF91CF91A0 +:102DE000BF91AF919F918F917F916F915F914F9123 +:102DF0003F912F910F900FBE0F901F9018951F932A +:102E0000CF93DF93CDB7DEB7AA970FB6F894DEBFA6 +:102E10000FBECDBFE4E1F3E088E08E0F9091F100AA +:102E200091938E13FBCF0E947D128091E80083FF67 +:102E30001FC18091140390911503492F50E04A302F +:102E4000510508F015C1FA01EA59FF4F0C940C2EF8 +:102E5000803881F0823809F00BC1809118038F709F +:102E60008093E9008091EB0085FB882780F9109220 +:102E7000E90006C0809110039091110391118260C6 +:102E80009091E800977F9093E8008093F100109272 +:102E9000F100C8C0282F2D7F09F0EAC0882319F05F +:102EA000823061F0E5C080911603813009F0E0C006 +:102EB000933009F080E0809311032BC080911603BA +:102EC000811127C0809118038F7009F4D1C08093BD +:102ED000E9002091EB0020FF1CC0933021F4809189 +:102EE000EB00806214C09091EB0090619093EB0036 +:102EF00021E030E0A90102C0440F551F8A95E2F796 +:102F00004093EA001092EA008091EB008860809381 +:102F1000EB001092E9008091E800877F86C0811164 +:102F2000A7C0109116031F778091E3008078812B52 +:102F30008093E3008091E800877F8093E8000E94FF +:102F40001D158091E80080FFFCCF8091E300806830 +:102F50008093E300111102C082E001C083E08093FE +:102F6000130386C08058823008F082C08091160317 +:102F7000909117038C3D53E0950779F583E08A83A0 +:102F80008AE289834FB7F894DE01139620E03EE091 +:102F900051E2E32FF0E050935700E49120FF03C08B +:102FA000E295EF703F5FEF708E2F90E0EA3010F007 +:102FB000C79601C0C0968D939D932F5F243149F72A +:102FC0004FBF8091E800877F8093E8006AE270E05D +:102FD000CE0101960E94241414C0AE014F5F5F4FD2 +:102FE000609118030E946B13BC01009709F440C064 +:102FF0009091E800977F9093E80089819A810E94E0 +:1030000087148091E8008B778093E80031C0803886 +:1030100079F58091E800877F8093E80080910F0325 +:103020008093F1008091E8008E778093E8000E9401 +:103030001D151EC081111CC0909116039230C0F462 +:103040008091E800877F8093E80090930F030E94AF +:103050001D1580910F03811106C08091E30087FD4B +:1030600002C081E001C084E0809313030E946912D2 +:103070008091E80083FF0AC08091E800877F8093F9 +:10308000E8008091EB0080628093EB00AA960FB677 +:10309000F894DEBF0FBECDBFDF91CF911F91089591 +:1030A0000895CF93809113038823A1F0C091E90084 +:1030B000CF709091EC00892F817090FD80E8C82B33 +:1030C0001092E9008091E80083FD0E94FF16CF7006 +:1030D000C093E900CF910895909393028093920258 +:1030E0000895E0919202F0919302309721F00190BF +:1030F000F081E02D099480E00895E0919202F09132 +:103100009302309721F00280F381E02D0994089515 +:10311000E0919202F0919302309721F00480F581C2 +:10312000E02D099408952091900230919102821728 +:10313000930771F09093910280939002E091920234 +:10314000F0919302309721F00680F781E02D0994E9 +:10315000089520918E0230918F028217930771F0AB +:1031600090938F0280938E02E0919202F0919302ED +:10317000309721F00084F185E02D09940895089599 +:103180000C94BF180E9446240E94970A0E94CC24E7 +:103190000C947B295F926F927F928F929F92AF9255 +:1031A000BF92CF92DF92EF92FF920F931F93CF9334 +:1031B000DF9300D000D01F92CDB7DEB70E94DC0AAB +:1031C0009DE9C92E92E0D92E03E010E0AA24A39431 +:1031D000B12C502E802F0E94570B4C01F60172909B +:1031E00062906F016826792661147104A1F4015080 +:1031F000110978F78FEF89838A831B820E944F24FD +:103200008160782F9D838C8349815A816B818D8168 +:103210000E947A1938C08091F20281FD0E94600BF1 +:103220002BE030E07501022E02C0EE0CFF1C0A9468 +:10323000E2F7C70186219721892B09F129835A8258 +:103240008E209F2091E0892809F490E09B830E94C2 +:103250004F248160782F9D838C8349815A816B81B3 +:103260008D810E947A19000F111FF801EB56FD4F56 +:1032700080819181E826F926F182E08204C0215004 +:10328000310980F6B4CF0E94B326109194020E94B7 +:1032900071181817D1F00E947118809394020F9042 +:1032A0000F900F900F900F90DF91CF911F910F9182 +:1032B000FF90EF90DF90CF90BF90AF909F908F9056 +:1032C0007F906F905F900C94810A0F900F900F90F9 +:1032D0000F900F90DF91CF911F910F91FF90EF9082 +:1032E000DF90CF90BF90AF909F908F907F906F9026 +:1032F0005F900895CF93DF93CDB7DEB72B970FB6CE +:10330000F894DEBF0FBECDBF4F83588769877A8799 +:103310008B87DE01119686E0FD0111928A95E9F70F +:1033200085E0FE01379601900D928A95E1F749817B +:103330005A816B817C818D819E810E94F11F2B9629 +:103340000FB6F894DEBF0FBECDBFDF91CF910895C9 +:10335000CF93882309F4C2C0C82F823859F40E9441 +:10336000711881FDBBC089E30E94CB220E94982383 +:1033700089E30CC0833879F40E94711880FDAEC0D7 +:1033800083E50E94CB220E94982383E50E940D23AF +:10339000CF910C949823843859F40E94711882FDBF +:1033A0009DC087E40E94CB220E94982387E4EECF41 +:1033B0008CEF8C0F813A48F48C2F0E94E328811106 +:1033C0008DC08C2F0E94CB22E3CF80E28C0F8830FF +:1033D00048F4C77081E001C0880FCA95EAF70E94DF +:1033E0005123D6CF8BE58C0F833078F4C53A29F082 +:1033F000C63A31F083E890E005C081E890E002C071 +:1034000082E890E0CF910C94931888E58C0F83317B +:1034100008F064C0C83A39F1C93A41F1CA3A49F1F1 +:10342000CB3A51F1CC3A59F1CD3A61F1C03B69F157 +:10343000CE3A71F1CF3A79F1C13B81F1C23B89F1CA +:10344000C33B91F1C43B99F1C53BA1F1C63BA9F146 +:10345000C73BB1F1C83BB9F1C93BC1F1CA3BC9F1A6 +:1034600080E090E038C082EE90E035C089EE90E0D8 +:1034700032C08AEE90E02FC085EB90E02CC086EB46 +:1034800090E029C087EB90E026C08CEC90E023C050 +:103490008DEC90E020C083E891E01DC08AE891E0C7 +:1034A0001AC082E991E017C084E991E014C081E27A +:1034B00092E011C083E292E00EC084E292E00BC081 +:1034C00085E292E008C086E292E005C087E292E0E1 +:1034D00002C08AE292E0CF910C94A918CF9108958E +:1034E000882309F44BC0823859F40E94711881FF77 +:1034F00045C089E30E94CB220E94982389E30CC037 +:10350000833871F40E94711880FF38C083E50E94EF +:10351000CB220E94982383E50E940D230C949823CC +:10352000843859F40E94711882FF28C087E40E94F1 +:10353000CB220E94982387E4EFCF9CEF980F913A1B +:1035400058F390E2980F983050F4877091E001C0E2 +:10355000990F8A95EAF7892F0E945723DFCF9BE5C1 +:10356000980F933020F480E090E00C949318885AE0 +:10357000833120F480E090E00C94A918089588230A +:1035800021F00E9451230C9498230895882321F060 +:103590000E9457230C94982308957F928F929F92B4 +:1035A000AF92BF92CF92DF92EF92FF920F931F9351 +:1035B000CF93DF931F92CDB7DEB77C01C62E772E57 +:1035C000FC01058102950F70128111110E946E237A +:1035D0000E94C422882379F0112369F080E28C0DC7 +:1035E000883048F082E00E94AD220E94C42291E01F +:1035F000D82ED92601C0D12CE72DE295EF70F0E04E +:10360000E059FF4F0C940C2E872D807F072D0F70F3 +:10361000882311F00295007F112389F0002309F41B +:1036200099C180E28C0D883020F4802F0E945123B4 +:1036300003C0802F0E9461230E9498238BC18C2D90 +:103640000E94701A002309F4C3C180E28C0D8830F7 +:1036500020F4802F0E94572303C0802F0E946723ED +:103660000E949823B5C1872D807F972D9F7080324F +:1036700011F4892F03C0892F8295807FCC2021F0FF +:10368000F1E0CF16A1F01DC0112339F0002319F18C +:10369000013009F50E9481239BC1002319F00130FC +:1036A00009F496C189830E948423898110C1112362 +:1036B00021F0063008F08CC10EC0053008F088C13A +:1036C00006C1112359F0002331F0F701958190FFD5 +:1036D00041C19F7095830E94BF1A7AC1002309F4EB +:1036E000F6C03EC1872D86958695837090E0009741 +:1036F00019F0019761F06CC1112321F08C2D972DE9 +:10370000937002C080E090E00E94931861C1112381 +:1037100021F08C2D972D937002C080E090E00E94E4 +:10372000A91856C18C2D112319F00E94BB2502C087 +:103730000E9423260E94A8264BC1872D837009F082 +:1037400052C0111145C18C2D829586958770880FC6 +:10375000880F9C2D9F70892E912CA12CB12C082EA6 +:1037600004C0880C991CAA1CBB1C0A94D2F7C4FE86 +:1037700014C00FE010E020E030E0B901A80104C05F +:10378000440F551F661F771F8A95D2F7CB01BA01E8 +:10379000609570958095909503C060E070E0CB01D6 +:1037A000272D26952695237030E02230310569F0CB +:1037B0002330310589F0682979298A299B2921300C +:1037C000310571F00E94392103C1682979298A29BC +:1037D0009B290E945521FCC00E943921C501B401DA +:1037E0000E941D21F5C0112319F0872D817001C0A1 +:1037F0008695882309F4ECC08C2D82958695877078 +:10380000880F880F9C2D9F70892E912CA12CB12C94 +:10381000082E04C0880C991CAA1CBB1C0A94D2F761 +:10382000C4FE14C00FE010E020E030E0B901A801B0 +:1038300004C0440F551F661F771F8A95D2F7CB012E +:10384000BA01609570958095909503C060E070E036 +:10385000CB01272D269526952370422F50E042302C +:10386000510569F04330510589F0682979298A2981 +:103870009B294130510571F00E941322A9C068298B +:1038800079298A299B290E942F22A2C00E941322F3 +:10389000C501B4010E94F7219BC08C2D90E0FC0172 +:1038A000E05EF109E531F10508F050C0E058FF4F46 +:1038B0000C940C2E0C2D0F70872D8F71112321F07D +:1038C0000E949021802F07CF0E94B121802F0E945B +:1038D000C61A7EC0112341F0053008F079C0872D4B +:1038E0008F710E94D62174C0063008F071C0F7CFE6 +:1038F000112339F0872D8F710E94902169C0112307 +:10390000C9F3872D8F710E94B12162C0112329F064 +:10391000872D8F710E947B215BC00E94712158C04E +:10392000112351F0172D1F71812F0E94902163E008 +:10393000812F0E94A4224CC081E00E94AD2202305F +:1039400008F446C082E00E94AD2242C0112331F04B +:10395000002381F28C2D0E94A8193AC0002389F21D +:103960008C2D0E94701A34C0472D4F706C2DC701EA +:103970000E9499040E9495202BC0111129C0472D47 +:103980004F7050E042305105B9F04CF441155105EB +:1039900081F041305105E1F40E94A32919C0433060 +:1039A000510569F04430510599F48C2D0E94F52998 +:1039B0000FC00E948C290CC00E94BF2909C00E9420 +:1039C000D22906C0472D4F706C2DC7010E94620797 +:1039D000DD20F9F00E94A02280FD1BC0F7011282B9 +:1039E0000E949A220E949021C7010E94181D0E94E5 +:1039F0009A220F90DF91CF911F910F91FF90EF903E +:103A0000DF90CF90BF90AF909F908F907F900C945D +:103A1000B1210F90DF91CF911F910F91FF90EF9007 +:103A2000DF90CF90BF90AF909F908F907F90089540 +:103A30000F931F93CF93DF93EC01888199812B81A2 +:103A40003C81232BB9F09F3F11F48F3F99F0CE01B9 +:103A50000E946105882371F0688179818A810E94C2 +:103A600096228C010E944B220E941221B801CE01A5 +:103A70000E94CD1ADF91CF911F910F9108950E945E +:103A80006E230E947E230E9443230E9498230E945B +:103A900059270E94A82680E090E00E94931880E0B9 +:103AA00090E00C94A9180E945E230C943F1D0E9484 +:103AB0008B22292F22952F7030E02C3031054CF4C9 +:103AC0002A3031056CF42250310922303105A8F436 +:103AD00007C02C30310569F02F30310551F00DC091 +:103AE000803F69F018F4803E40F409C0843F29F417 +:103AF00006C093FB882780F9089580E0089581E04F +:103B00000895CF93DF9300D000D01F92CDB7DEB7DA +:103B10000F900F900F900F900F90DF91CF9108951D +:103B2000CF93DF9300D000D000D0CDB7DEB726967C +:103B30000FB6F894DEBF0FBECDBFDF91CF910895D1 +:103B40001F93CF93DF93C0919D0216E080919E0258 +:103B5000C81799F0D0E01C9FF0011D9FF00D1124B3 +:103B6000E156FD4F4081518162817381848195814D +:103B70000E94901D2196C770E9CFDF91CF911F91D0 +:103B800008954091CF025091D0026091D10270917E +:103B9000D2028091D3029091D4020C94901D809116 +:103BA000D40282958F7009F054C08091D10288238D +:103BB00009F44FC080919D02A0919E026091CF02B6 +:103BC0007091D0024091D2025091D302B6E08A1790 +:103BD00009F43FC090E041155105C1F17F3F11F458 +:103BE0006F3FA1F1B89FF001B99FF00D1124E1568C +:103BF000FD4F218172132AC02081621327C02281C8 +:103C0000211124C0238134812417350710F4215059 +:103C10003109241B350B283C3105C0F42091D40216 +:103C20002F7020612093D40226E0289FF001299F65 +:103C3000F00D1124EC55FD4F80818F7080618083E1 +:103C40008FEC92E00E94181D0C94A01D01968770C5 +:103C5000BECF0895CF92DF92EF92FF920F931F9302 +:103C6000CF93DF93CDB7DEB762970FB6F894DEBF80 +:103C70000FBECDBF8C0185E0F801DE011D960190DD +:103C80000D928A95E1F7D8014C9111965C911197AC +:103C900012966C9112971396CD90DC9014973091F8 +:103CA000CF027091D0028091D2029091D3020097FE +:103CB00009F46BC17F3F19F43F3F09F466C1E090FE +:103CC000D102EE2009F4C0C02091D402C816D90652 +:103CD00028F0F601E81BF90BCF0104C08095909500 +:103CE0008C0D9D1DFF24F394883C910578F0F12CF8 +:103CF000207F09F0C6C07C2DD98AC88A89890E9494 +:103D0000811D8FEC92E00E94181DB1C0822F807F30 +:103D100009F046C0751314C0341312C0611110C0ED +:103D20002F7020612093D4020E94C11D8FEC92E07D +:103D30000E94181D8091D402D80115968C932EC034 +:103D4000CD2819F15F3F11F44F3FF9F0F62E6111C4 +:103D50001CC080919D0220919E0236E0821709F4DA +:103D60005AC090E0389FF001399FF00D1124E156C0 +:103D7000FD4F7181571306C07081471303C07281D4 +:103D8000711103C001968770E9CFF62E662309F4FE +:103D900018C18091D40281608093D402F12C11C1AA +:103DA000751308C0341306C0611104C08091D40299 +:103DB000D801C3C04D875E878D859E856A8B0E9422 +:103DC000571D6A898823E1F16623D1F12091D4023D +:103DD000822F82958F7090E0029774F08091CF02CD +:103DE0009091D00298878F831986DB86CA862C87AC +:103DF000CE0107960E94181D86E0F801AFECB2E0F4 +:103E000001900D928A95E1F70E94CF1D0E94C11D7D +:103E1000FF24F394D6C04D875E878D859E850E94D2 +:103E20008B22292F22952F7030E0223031050CF0A3 +:103E3000BCC09F7009F0B6C0805E883008F4C1C075 +:103E4000C8010E94181DE4CFC816D90608F453C053 +:103E5000F601E81BF90BCF01883C910508F450C02E +:103E6000F12C7C2DD98AC88A89890E94811DEFECAA +:103E7000F2E086E0DF011D928A95E9F70E94C11DFC +:103E8000A0C0751314C0341312C0611110C080910A +:103E9000D402F8018583C8010E94181D86E0EFEC6A +:103EA000F2E0DF011D928A95E9F7FE2C8AC04D876A +:103EB0005E878D859E856A8B0E94571D6A8988233F +:103EC00009F4BECF662309F4BBCF2091D402822F20 +:103ED00082958F7090E002970CF48ECF8091CF0284 +:103EE0009091D0029A8389831B82DD82CC822E83BB +:103EF000CE0101967FCF809590958C0D9D1DACCF06 +:103F0000F62E662309F49CCF75132EC034132CC0F3 +:103F10002091D40220FD1FC0822F82958F70D9F08E +:103F2000D80115962C9315978F3049F08F5F982FF5 +:103F30009295907F822F8F70892B15968C93C80154 +:103F40000E94181D86E0F801AFECB2E001900D92DE +:103F50008A95E1F793CF86E0F801AFECB2E00190EB +:103F60000D928A95E1F72DC04D875E878D859E85E0 +:103F70000E94571D811140CF8091D40281608093AF +:103F8000D402C8010E94181D1CC0662309F458CF32 +:103F90004D875E878D859E850E94571D882309F475 +:103FA0004FCF2ACF811148CF0CC0243031050CF0FF +:103FB00047CF9F7009F440CFF8019581907F09F0B9 +:103FC0003BCF8F2D62960FB6F894DEBF0FBECDBFEC +:103FD000DF91CF911F910F91FF90EF90DF90CF90E5 +:103FE00008951F93CF93DF93CDB7DEB72C970FB60D +:103FF000F894DEBF0FBECDBF4F83588769877A879D +:104000008B879C87CE0107960E942A1E882369F021 +:104010008F8198852A853B85232BF1F19F3F09F0FD +:1040200063C08F3F09F060C037C086E0FE0137965D +:10403000DE01119601900D928A95E1F76F817885E6 +:10404000EA85FB85309741F17F3F11F46F3F21F105 +:1040500020919E0230E0C901019687709927409116 +:104060009D0250E08417950709F447C069837A835D +:10407000FD83EC8396E0929FD001939FB00D1124B5 +:10408000A156BD4FFE01319601900D929A95E1F730 +:1040900080939E020E94A01D16E080919D02909147 +:1040A0009E028917C1F1189FC001112481569D4FAE +:1040B0000E942A1E882379F1E0919D021E9FF00143 +:1040C0001124E156FD4F40815181628173818481C9 +:1040D00095810E94901D80919D0290E001968770CD +:1040E000992780939D02D9CF4F81588569857A851C +:1040F0008B859C850E94901DCFCF0E94531D1092EE +:104100009E0210929D02EFECF2E086E0DF011D922C +:104110008A95E9F7C1CF2C960FB6F894DEBF0FBE93 +:10412000CDBFDF91CF911F910895EF92FF920F9332 +:104130001F93CF93DF938C01009709F46CC0F12C8F +:10414000EE24E394E8012196F8018491843740F449 +:10415000843008F051C0813081F0823019F15BC0A9 +:10416000853709F444C0A8F19CE7980F903708F010 +:1041700052C08F770E94701A41C00E5F1F4FFE0120 +:10418000C49180E28C0F883048F4C7708E2D01C036 +:10419000880FCA95EAF70E94712314C08C2F0E94E1 +:1041A000A8192DC00E5F1F4FFE01C49180E28C0F35 +:1041B000883058F4C7708E2D01C0880FCA95EAF771 +:1041C0000E9477230E9498231AC08C2F0E94701A95 +:1041D00016C00E5F1F4FFE01C491CC2381F08FE902 +:1041E0009FE00197F1F700C00000C150F6CF0E5FCD +:1041F0001F4FFE01F49003C00E94A8198E018F2D5D +:10420000882309F49FCFEFE9FFE03197F1F700C071 +:1042100000008150F5CFDF91CF911F910F91FF905A +:10422000EF90089508956093D9027093DA02809315 +:10423000DB029093DC020C943F1D0F931F930091BF +:10424000D9021091DA022091DB023091DC02DC010C +:10425000CB01802B912BA22BB32B8093D90290936F +:10426000DA02A093DB02B093DC021F910F910C9451 +:104270003F1D0F931F930091D9021091DA022091F4 +:10428000DB023091DC02DC01CB0180239123A223ED +:10429000B3238093D9029093DA02A093DB02B09308 +:1042A000DC021F910F910C943F1D0F931F930091FF +:1042B000D9021091DA022091DB023091DC02DC019C +:1042C000CB0180279127A227B3278093D90290930F +:1042D000DA02A093DB02B093DC021F910F910C94E1 +:1042E0003F1D1092D5021092D6021092D702109262 +:1042F000D8020C943F1D41E050E060E070E004C043 +:10430000440F551F661F771F8A95D2F74093D50239 +:104310005093D6026093D7027093D8020C943F1D3D +:1043200041E050E060E070E004C0440F551F661F9C +:10433000771F8A95D2F78091D5029091D602A091ED +:10434000D702B091D802482B592B6A2B7B2B409374 +:10435000D5025093D6026093D7027093D8020C9482 +:104360003F1D41E050E060E070E004C0440F551F85 +:10437000661F771F8A95D2F7409550956095709586 +:104380008091D5029091D602A091D702B091D80227 +:10439000482359236A237B234093D5025093D602A6 +:1043A0006093D7027093D8020C943F1D41E050E017 +:1043B00060E070E004C0440F551F661F771F8A95A8 +:1043C000D2F78091D5029091D602A091D702B091F8 +:1043D000D802482759276A277B274093D502509354 +:1043E000D6026093D7027093D8020C943F1D0F93AE +:1043F0001F930091D5021091D6022091D7023091DF +:10440000D802DC01CB01802B912BA22BB32B809304 +:10441000D5029093D602A093D702B093D8021F91F1 +:104420000F910C943F1D0F931F930091D502109193 +:10443000D6022091D7023091D802DC01CB01802333 +:104440009123A223B3238093D5029093D602A09305 +:10445000D702B093D8021F910F910C943F1D0F9378 +:104460001F930091D5021091D6022091D70230916E +:10447000D802DC01CB0180279127A227B3278093A4 +:10448000D5029093D602A093D702B093D8021F9181 +:104490000F910C943F1D0895CF92DF92EF92FF92FF +:1044A0000F931F93CF93DF938C01C090D902D090CC +:1044B000DA02E090DB02F090DC028091D50290916C +:1044C000D602A091D702B091D802C82AD92AEA2AE6 +:1044D000FB2ACFE1D0E0D701C6010C2E04C0B6956F +:1044E000A795979587950A94D2F780FF06C0B801E3 +:1044F0008C2F0E94E709019721F4219760F780E053 +:1045000001C08C2FDF91CF911F910F91FF90EF9001 +:10451000DF90CF900895CF93DF93EC010E944C225F +:10452000BE010E94E709DF91CF910895CB010E945F +:104530008B2208958091DD02859585958595089556 +:104540008091DD028770089598E0899F9001112481 +:10455000262B2093DD020C9490212091DD02809582 +:1045600082238093DD02982F977069F430E0482F02 +:10457000552747FD50952417350729F085958595D2 +:1045800085950C94B12108959091DD02977081E09A +:1045900009F480E0089590911501992321F09091FC +:1045A0001601911109C02091170130911801F901EC +:1045B00032969FEF40E01FC0982F9695969596955E +:1045C0009F3050F5E0911701F0911801E90FF11DAE +:1045D000877021E030E0A90102C0440F551F8A9581 +:1045E000E2F7CA019181892B818308959F3F39F0B9 +:1045F0004F5F4E3041F051915813F8CF0DC051111B +:10460000F7CF942FF5CF9F3F39F0F901E90FF11D56 +:1046100097FDFA9582830895089590911501992345 +:1046200021F090911601911109C02091170130914C +:104630001801F9013296205F3F4F1FC0982F9695C1 +:10464000969596959F30F0F4E0911701F09118013E +:10465000E90FF11D877021E030E0A90102C0440F8D +:10466000551F8A95E2F7CA0180959181892381833C +:1046700008953196E217F30729F090819813F9CF46 +:104680001082F7CF089581E090E0E0911701F0915A +:104690001801E80FF91F1082019680319105A9F7E2 +:1046A00008959091F102892B8093F10208958095ED +:1046B0009091F10289238093F10208951092F10202 +:1046C00008959091F002892B8093F00208958095CF +:1046D0009091F00289238093F00208951092F002E5 +:1046E00008959091EF02892B8093EF0208958095B1 +:1046F0009091EF0289238093EF0208951092EF02C8 +:1047000008958093DE0208951092DE02089580914C +:10471000170190911801FC0131969C01205F3F4FD9 +:1047200080E0919191118F5FE217F307D1F708951F +:10473000E0911701F09118018091F1028083E091DE +:104740001701F091180190818091F002892B8083EC +:10475000E0911701F091180190818091EF02892B6F +:1047600080838091DE02882361F0E0911701F0914F +:1047700018019081892B80830E94872381111092D8 +:10478000DE0280911701909118010C947D1820E0B1 +:10479000009739F0AC0141505109842395232F5FD4 +:1047A000F7CF822F089580911303843039F110924E +:1047B000F30220E488E190E00FB6F894A895809386 +:1047C00060000FBE2093600080E00E94000480E043 +:1047D0000E94810A83B7817F846083BF83B7816031 +:1047E00083BF7894889583B78E7F83BF88E10FB6A7 +:1047F000F89480936000109260000FBE08950895B1 +:10480000089580E00E9400040E94FF230E94DC0AB9 +:104810000E9400240E94610B91E0811101C090E090 +:10482000892F08950E94531D80E00E9400040E9479 +:104830007B290E9471180C94810A1F920F920FB667 +:104840000F9211248F939F93AF93BF938091F302A4 +:10485000811113C08091F4029091F502A091F602AB +:10486000B091F7024196A11DB11D8093F40290937F +:10487000F502A093F602B093F702BF91AF919F911A +:104880008F910F900FBE0F901F90189582E084BDFE +:1048900093E095BD9AEF97BD80936E0008952FB772 +:1048A000F8948091F4029091F502A091F602B091F3 +:1048B000F7022FBF0895CF92DF92EF92FF920F93EE +:1048C0001F932FB7F8944091F4025091F502609134 +:1048D000F6027091F7022FBF6A017B01EE24FF24DC +:1048E0008C0120E030E0C016D106E206F30610F499 +:1048F000415051099A01281B390BC9011F910F9191 +:10490000FF90EF90DF90CF9008951F920F920FB617 +:104910000F9211248F939F93AF93BF938091F402D2 +:104920009091F502A091F602B091F7020196A11DB7 +:10493000B11D8093F4029093F502A093F602B09318 +:10494000F702BF91AF919F918F910F900FBE0F9083 +:104950001F9018950E946E15F8942FEF87EA91E644 +:10496000215080409040E1F700C0000087E090EBCC +:10497000DC0180931E0390931F03A0932003B09348 +:1049800021039CE088E10FB6F894A895809360001D +:104990000FBE90936000FFCF0E940B25811102C0D3 +:1049A0000E94E7240E9416258093F2020E941E2591 +:1049B00080931C0387FB882780F9809316010E944F +:1049C0001A25682F70E080E090E00C9413216DEEC2 +:1049D0007EEF80E090E00E94322E60E082E090E086 +:1049E0000E94202E60E083E090E00E94202E60E094 +:1049F00084E090E00E94202E60E085E090E00E943C +:104A0000202E60E086E090E00E94202E6FEF87E08D +:104A100090E00C94202E80E090E00E941A2E21E07D +:104A20008D3E9E4F09F020E0822F089582E090E0B5 +:104A30000C94122E83E090E00C94122E84E090E00F +:104A40000C94122E682F84E090E00C94202E86E0C7 +:104A500090E00C94122E682F86E090E00C94202EAB +:104A600087E090E00C94122E682F87E090E00C9481 +:104A7000202E8091FA0280FF0BC060911C0185E01E +:104A8000689FB001112475956795759567952BC042 +:104A900081FF09C060911C0185E0689FB00111246D +:104AA0007595679520C082FF07C060911C0185E065 +:104AB000689FB001112417C09091FB029923D1F097 +:104AC00060911B01961788F720911C0185E0289FB3 +:104AD00090011124929FA001939F500D112470E02A +:104AE000CA010E94F82D6038710540F46115710506 +:104AF00039F002C065E070E0862F08958FE70895D1 +:104B000081E008958091FA0280FF08C060911A0147 +:104B100070E0759567957595679521C081FF06C012 +:104B200060911A0170E07595679519C082FF04C005 +:104B300060911A0170E010C09091FB029923C1F0BE +:104B4000609119019617A0F780911A01899FC00101 +:104B5000112470E00E94F82D6038710528F4611569 +:104B6000710521F0862F08958FE7089581E008955B +:104B700061E070E0F4CF803F21F40E9439258195F7 +:104B800004C0813F29F40E9439258093FE020895D4 +:104B9000823F21F40E943925819504C0833F29F486 +:104BA0000E9439258093FD020895893F19F40E94DF +:104BB000822505C08A3F31F40E9482258195809329 +:104BC000FF0208958B3F21F40E948225819504C045 +:104BD0008C3F29F40E948225809300030895843F2E +:104BE00021F48091FC02816017C0853F21F48091FF +:104BF000FC02826011C0863F21F48091FC02846037 +:104C00000BC0873F21F48091FC02886005C0883F7B +:104C100031F48091FC0280618093FC0208958D3F05 +:104C200021F48091FA0281600BC08E3F21F48091C3 +:104C3000FA02826005C08F3F29F48091FA028460F5 +:104C40008093FA020895803F39F48091FE0287FF35 +:104C50006CC01092FE0269C0813F29F48091FE026F +:104C60001816BCF362C09091FD02823F29F497FFB1 +:104C70005CC01092FD0259C0833F19F41916CCF3A1 +:104C800054C0893F41F48091FF0218160CF04DC0CA +:104C90001092FF024AC08A3F29F48091FF0287FFE9 +:104CA00044C0F6CF8B3F39F48091000387FF3DC0AD +:104CB000109200033AC08C3F29F48091000318162B +:104CC000BCF333C0843F21F48091FC028E7F17C077 +:104CD000853F21F48091FC028D7F11C0863F21F435 +:104CE0008091FC028B7F0BC0873F21F48091FC02F6 +:104CF000877F05C0883F31F48091FC028F7E8093CE +:104D0000FC0213C08D3F21F48091FA028E7F0BC00C +:104D10008E3F21F48091FA028D7F05C08F3F29F4E8 +:104D20008091FA028B7F8093FA028091FD028111BB +:104D30000EC08091FE0281110AC08091FF02811194 +:104D400006C080910003811102C01092FB020895F9 +:104D50008CEF92E00E9488180E944F249093F902F1 +:104D60008093F80208951F93CF93DF938091F80208 +:104D70009091F9020E945B24AC019091FB0299236F +:104D800021F020911D0130E006C020911E018AE033 +:104D9000289F900111244217530708F486C0809180 +:104DA000FD02C091FE02D091FF021091000381111B +:104DB00007C0C11176C0D11174C0111172C075C085 +:104DC0009F3F19F09F5F9093FB02181624F40E94F6 +:104DD00039258093FD028091FD0287FF05C00E9466 +:104DE000392581958093FD021C1624F40E943925F3 +:104DF0008093FE028091FE0287FF05C00E94392544 +:104E000081958093FE026091FD02662339F1C09185 +:104E1000FE02CC2319F1772767FD7095872F972F16 +:104E20000E941A2B23E333E343E35FE30E942A2C1F +:104E30000E94E72A6093FD026C2F772767FD70952B +:104E4000872F972F0E941A2B23E333E343E35FE37B +:104E50000E942A2C0E94E72A6093FE021D1624F469 +:104E60000E9482258093FF028091FF0287FF05C088 +:104E70000E94822581958093FF02111624F40E94DE +:104E80008225809300038091000387FF05C00E9464 +:104E90008225819580930003DF91CF911F910C941F +:104EA000A8269F3F09F08ECF96CFDF91CF911F911B +:104EB0000895ECEFF2E085E0DF011D928A95E9F7B5 +:104EC0001092FB021092FA020895833081F128F4C7 +:104ED000813059F08230D1F00895853009F449C00D +:104EE000B8F1863009F456C0089580911E01262F2E +:104EF00030E0280F311D2F3F310524F4680F6093F7 +:104F00001E0108958FEF80931E01089580911D0169 +:104F1000262F30E0280F311D2F3F310524F4680F74 +:104F200060931D0108958FEF80931D010895809176 +:104F30001C01262F30E0280F311D2F3F310524F4AE +:104F4000680F60931C0108958FEF80931C010895F2 +:104F500080911B01262F30E0280F311D2F3F310596 +:104F600024F4680F60931B0108958FEF80931B0159 +:104F7000089580911A01262F30E0280F311D2F3F10 +:104F8000310524F4680F60931A0108958FEF809320 +:104F90001A01089580911901262F30E0280F311D44 +:104FA0002F3F310524F4680F6093190108958FEFA6 +:104FB000809319010895833011F128F4813049F06C +:104FC000823091F00895853081F120F18630C1F171 +:104FD000089580911E01681720F4861B80931E019E +:104FE000089510921E01089580911D01681720F404 +:104FF000861B80931D01089510921D0108958091D4 +:105000001C01681720F4861B80931C0108951092E0 +:105010001C01089580911B01681720F4861B809362 +:105020001B01089510921B01089580911A016817C1 +:1050300020F4861B80931A01089510921A01089596 +:1050400080911901681720F4861B80931901089537 +:105050001092190108950F931F93873208F048C0EA +:105060008E3108F08DC0803109F477C008F58730A3 +:1050700009F461C068F4863009F09DC08091F202A5 +:10508000817F8E7F8093F20281E08093020394C03F +:105090008B3009F489C08E3009F08DC08091F20206 +:1050A00082FB222720F991E0922790FB82F95EC0D3 +:1050B000863109F479C060F4813109F07CC00E9426 +:1050C000531D9091160181E08927809316016CC0D1 +:1050D000893109F469C08B3109F06DC08091F20209 +:1050E00081FB222720F991E0922790FB81F93EC0B5 +:1050F000883309F459C050F4893209F457C0853314 +:1051000009F454C0873209F451C055C0833409F4FE +:105110004DC028F48A3308F44EC0895332C0883415 +:1051200009F049C00E94531D0E94910B0E9458052E +:105130000E94AA2439C09091F202892F8095817033 +:1051400080FB90F929F0966098609093F20234C049 +:10515000997F977F9093F20227C08091F20283FBA0 +:10516000222720F991E0922790FB83F98093F202A5 +:105170009923D1F08091F20281608093F20214C0F1 +:105180008D5141E050E060E070E08A019B0104C075 +:10519000000F111F221F331F8A95D2F7C901B801D2 +:1051A0000E9413210E94531D81E006C061E070E05F +:1051B00080E090E0F5CF80E01F910F91089580E0AE +:1051C000089580E00895CF93C82F80910203813025 +:1051D00069F018F08230C9F184C0E0911701F091B4 +:1051E00018018081823209F07EC007C0E09117016A +:1051F000F09118018081823261F48C2F0E94DF28A7 +:10520000811104C08C2F0E942B281DC081E090E0EA +:105210001AC08C2F0E94E128811114C0C43179F08A +:1052200048F4CB3079F0C03109F061C082E080935E +:10523000020308C0C93219F0C83321F058C01092D7 +:10524000020355C081E0817054C0C93291F120F54C +:10525000C43179F1B0F4C73009F047C08EE18093D2 +:105260001E0182E380931D018AE080931C0184E18A +:1052700080931B0188E080931A0188E280931901D2 +:1052800034C0CE51C63088F5EC2FF0E0EA54FE4F22 +:1052900080818093010329C0CE34E9F020F4CB341F +:1052A00021F56AE013C0C13579F0C235F1F461E04F +:1052B0000DC080910103882319F01092010315C0DD +:1052C00081E08093020315C061E006C08091010374 +:1052D0000E9465270AC06AE0809101030E94DB27D3 +:1052E00004C01092020380E004C081E002C080E0AC +:1052F000AACFCF9108950E940B25811102C00E9470 +:10530000E7240E94272580931D0380FF02C0869515 +:1053100001C080E00C94000480911D03982F9695A5 +:10532000292F30E0233031054CF49F5F990F8170B5 +:10533000892B816080931D030E942B2580911D0382 +:1053400086950C94000480911D03982F969591F0FA +:105350009158990F8170892B80931D038E7F91E066 +:1053600009F490E080911D0390FB80F980931D0368 +:105370000E942B2580911D0386950C94000480913A +:105380001D03982F909590FB80F980931D030E9438 +:105390002B2580911D0380FF02C0869501C080E00F +:1053A0000C94000490911D03892F86958F5F8F7751 +:1053B0009170843028F4880F892B80931D0302C0DC +:1053C00090931D0380911D038E7F91E009F490E07E +:1053D00080911D0390FB80F980931D030E942B2573 +:1053E00080911D0386950C94000420911D03922F3B +:1053F00096958927982F990F822F8170892B8093FA +:105400001D038E7F91E009F490E080911D0390FBD5 +:1054100080F980931D030E942B2580911D038695A2 +:105420000C94000480911D03869508955058BB2765 +:10543000AA270ED0D1C1C2D130F0C7D120F031F4AB +:105440009F3F11F41EF4B7C10EF4E095E7FB9FC136 +:10545000E92FD3D180F3BA17620773078407950742 +:1054600018F071F49EF5EBC10EF4E0950B2EBA2FF7 +:10547000A02D0B01B90190010C01CA01A00111245A +:10548000FF27591B99F0593F50F4503E68F11A1606 +:10549000F040A22F232F342F4427585FF3CF469597 +:1054A00037952795A795F0405395C9F77EF41F16B9 +:1054B000BA0B620B730B840BBAF09150A1F0FF0F83 +:1054C000BB1F661F771F881FC2F70EC0BA0F621F6F +:1054D000731F841F48F4879577956795B795F7955F +:1054E0009E3F08F0B3CF9395880F08F09927EE0FF1 +:1054F00097958795089527D108F481E008950CD0F9 +:105500006BC163D140F05AD130F021F45F3F19F004 +:105510003EC1511195C14FC170D198F39923C9F380 +:105520005523B1F3951B550BBB27AA2762177307A9 +:10553000840738F09F5F5F4F220F331F441FAA1F5D +:10554000A9F333D00E2E3AF0E0E830D0915050401D +:10555000E695001CCAF729D0FE2F27D0660F771FCB +:10556000881FBB1F261737074807AB07B0E809F0AD +:10557000BB0B802DBF01FF2793585F4F2AF09E3F42 +:10558000510568F004C15CC15F3FECF3983EDCF369 +:10559000869577956795B795F7959F5FC9F7880FBB +:1055A000911D9695879597F90895E1E0660F771F0D +:1055B000881FBB1F621773078407BA0720F0621B9E +:1055C000730B840BBA0BEE1F88F7E095089504D097 +:1055D0006894B11135C1089518D188F09F5790F0A3 +:1055E000B92F9927B751A0F0D1F0660F771F881F08 +:1055F000991F1AF0BA95C9F712C0B13081F01FD1C6 +:10560000B1E008951CC1672F782F8827B85F39F063 +:10561000B93FCCF3869577956795B395D9F73EF466 +:1056200090958095709561957F4F8F4F9F4F08950E +:10563000E89409C097FB3EF490958095709561952C +:105640007F4F8F4F9F4F9923A9F0F92F96E9BB27E2 +:105650009395F695879577956795B795F111F8CF5E +:10566000FAF4BB0F11F460FF1BC06F5F7F4F8F4FC9 +:105670009F4F16C0882311F096E911C0772321F0BF +:105680009EE8872F762F05C0662371F096E8862F57 +:1056900070E060E02AF09A95660F771F881FDAF7AE +:1056A000880F9695879597F9089588D018F011F08E +:1056B0008CD038F480C0C4C0E92F9FD0B0F35523FC +:1056C000C9F3E7FB6217730784079507A8F199F3FD +:1056D000E92FFF2788232AF03197660F771F881F4D +:1056E000DAF7952F5527442332F091505040220F7E +:1056F000331F441FD2F7BB27E91BF50B621B730B4B +:10570000840BB109C1F222F4620F731F841FB11D13 +:1057100031972AF0660F771F881FBB1FEFCF91507C +:1057200050405AF041F0882332F0660F771F881FEF +:1057300091505040C1F7939530C086957795679505 +:105740009F5FD9F7F8CF990F0008550FAA0BE0E833 +:10575000FEEF16161706E807F907C0F01216130633 +:10576000E407F50798F0621B730B840B950B39F473 +:105770000A2661F0232B242B252B21F408950A26D9 +:1057800009F4A140A6958FEF811D811D089597F919 +:105790009F6780E870E060E008959F3F31F091508E +:1057A00020F4879577956795B795880F911D969505 +:1057B000879597F908959FEF80EC089500240A9447 +:1057C0001616170618060906089500240A941216DC +:1057D0001306140605060895092E0394000C11F40F +:1057E000882352F0BB0F40F4BF2B11F460FF04C0BC +:1057F0006F5F7F4F8F4F9F4F089557FD9058440F15 +:10580000551F59F05F3F71F04795880F97FB991F1F +:1058100061F09F3F79F087950895121613061406DC +:10582000551FF2CF4695F1DF08C016161706180669 +:10583000991FF1CF86957105610508940895E89444 +:10584000BB2766277727CB0197F908957CDF08F4FB +:105850008FEF08950BD0C0CFB1DF28F0B6DF18F07E +:10586000952309F094CFA7CF1124EACFC6DFA0F388 +:10587000959FD1F3950F50E0551F629FF001729FE5 +:10588000BB27F00DB11D639FAA27F00DB11DAA1F04 +:10589000649F6627B00DA11D661F829F2227B00D51 +:1058A000A11D621F739FB00DA11D621F839FA00DDC +:1058B000611D221F749F3327A00D611D231F849F2C +:1058C000600D211D822F762F6A2F11249F57504083 +:1058D0008AF0E1F088234AF0EE0FFF1FBB1F661F1E +:1058E000771F881F91505040A9F79E3F510570F0D7 +:1058F0004ECFA6CF5F3FECF3983EDCF386957795CD +:105900006795B795F795E7959F5FC1F7FE2B880FD1 +:10591000911D9695879597F90895FA01EE0FFF1F4F +:1059200030962105310599F16115710561F48038D2 +:10593000BFE39B0749F168949038810561F0803896 +:10594000BFEF9B0741F0992342F5FF3FE105310589 +:10595000210511F1E8940894E795D901AA2329F4C7 +:10596000AB2FBE2FF85FD0F310C0FF5F70F4A69589 +:10597000E0F7F73950F019F0FF3A38F49F779F932A +:105980000CD00F9007FC905808953EF014CF60E0C3 +:1059900070E080E89FE308954FE79F775F934F9310 +:1059A0003F932F939ED02F913F914F915F9152DF64 +:1059B00005C019F40EF0EBCE42CFFDCE26DFC8F3C2 +:1059C0009638C0F707F80F92E8942BE33AEA48EBD1 +:1059D0005FE74EDF0F920F920F924DB75EB70F92B7 +:1059E000C0D0EAE2F1E016D04F915F91EF91FF91C4 +:1059F000E595EE1FFF1F49F0FE57E0684427EE0FC4 +:105A0000441FFA95E1F74195550B32D00F9007FEF0 +:105A100026C00895DF93CF931F930F93FF92EF92C9 +:105A2000DF927B018C01689405C0DA2EEF011EDF46 +:105A3000FE01E894A5912591359145915591AEF3DC +:105A4000EF0106DDFE019701A801DA9479F7DF90F6 +:105A5000EF90FF900F911F91CF91DF9108959B01DF +:105A6000AC0160E070E080E89FE349CD90CE95CE38 +:105A7000CCDEE8F39923D9F3940F511DBBF3915079 +:105A8000504094F059F0882332F0660F771F881F3A +:105A900091505040C1F79E3F510544F7880F911D2A +:105AA0009695879597F908955F3FACF0983E9CF0E6 +:105AB000BB27869577956795B79508F4B160939560 +:105AC000C1F7BB0F58F711F460FFE8CF6F5F7F4F4E +:105AD0008F4F9F4FE3CFB4CE0EF05FCE6CCE689465 +:105AE00056CE93DEC8F39923D1F3C6F3DF93CF9359 +:105AF0001F930F93FF92C92FDD2788232AF0219748 +:105B0000660F771F881FDAF720E030E040E85FEB90 +:105B10009FE3883920F0803E30F021968F7787DC34 +:105B2000E2E5F1E003C083DCEFE7F1E073DF8B0136 +:105B3000BE01EC01FB2E6F5771097595771F880B1D +:105B4000990B78DD28E132E741E35FE38FDEAF2D8B +:105B50009801AE01FF900F911F91CF91DF9178DCFA +:105B60003BCEFA01DC01AA0FBB1F9B01AC01BF5762 +:105B700028F422273327442750781FC0B75188F4D0 +:105B8000AB2F0024469537952795011CA395D2F39A +:105B9000002069F0220F331F441FB395DAF30DD0B4 +:105BA00045CC61307105A0E88A07B94630F49B0105 +:105BB000AC016627772788279078309621F02083DC +:105BC0003183428353830895AA1BBB1B51E107C055 +:105BD000AA1FBB1FA617B70710F0A61BB70B881F7D +:105BE000991F5A95A9F780959095BC01CD0108950C +:105BF00097FB072E16F4009407D077FD09D00E947A +:105C0000E42D07FC05D03EF4909581959F4F0895B3 +:105C1000709561957F4F0895EE0FFF1F0590F491E9 +:105C2000E02D0994F999FECF92BD81BDF89A99278C +:105C300080B50895A8E1B0E042E050E00C943A2E1F +:105C4000262FF999FECF92BD81BDF89A019700B435 +:105C5000021639F01FBA20BD0FB6F894FA9AF99AD5 +:105C60000FBE08950196272F0E94212E0C94202EFE +:105C7000DC01CB01FC01F999FECF06C0F2BDE1BD0C +:105C8000F89A319600B40D9241505040B8F70895FB +:045C9000F894FFCFB6 +:105C9400640007000CFF0000003F6475110312E06C +:105CA40011AC1178110101DF022808140A321E0018 +:105CB40002040507090B0C0E1011131517181A1CF2 +:105CC4001D1F2123242628292B2D2F30323435372C +:105CD400393B1F0F03764F5F6F7F49694379095939 +:105CE40053633149803F5D8B803FF8BF803FCAE1F9 +:105CF400803F73ED803FCAE1803FF8BF803F5D8BFA +:105D0400803F3149803F0000803FF16D7F3F75EA5D +:105D14007E3F4C827E3F833F7E3F84287E3F833F8D +:105D24007E3F4C827E3F75EA7E3FF16D7F3F0000EF +:105D3400803F3F4D36390B07BE0688064F06E20505 +:105D4400FB0514062D0601020304050607080900D5 +:00000001FF diff --git a/keyboards/planck/keymaps/mollat/keymap.c b/keyboards/planck/keymaps/mollat/keymap.c new file mode 100644 index 000000000..e7c71efd4 --- /dev/null +++ b/keyboards/planck/keymaps/mollat/keymap.c @@ -0,0 +1,149 @@ +// +// This layout is based on the following needs: +// +// should be as close as possible to querty/us-international layout (using international/AltGr as o/s driver) +// added german umlauts at known places from de-layout +// all movement keys should be at known places from vi/bash (eg HJKL for cursor keys) +// Fn layer (at CapsLock place like the Pok3r does) for missing keys +// additional layer for tmux window switching +// +// This is work in Progress! If you have suggestions write me at github.com/mollat/qmk_firmware/ and check +// this fork for updates as I probably won't bother jack with my pull requests frequently. +// + +#include "planck.h" + +#define _QWERTY 0 +#define _HIGH 1 +#define _LOW 2 +#define _FN 3 +#define _TMUX 4 +#define _LCTL 5 +#define _MOUSE 6 +#define __________ KC_NO // just for easy reading + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_QWERTY] = { /* Qwerty */ + { LT(_MOUSE, KC_ESC),KC_Q,KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC }, + { LT(_FN, KC_TAB),KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT }, + { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT)}, + { __________, __________, KC_LGUI, KC_LALT, KC_LCTL,LT(_TMUX, KC_SPC),LT(_HIGH, KC_SPC),MO(_LOW),KC_RALT,KC_RGUI, __________, __________ } +}, + +// missing keys regarding to the form factor +// keeping the dot and comma for typing faster IP addresses and (german) float values +// putting the backslash on the slash's place +[_HIGH] = { + { KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_MINS }, + { __________, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL }, + { __________, __________, __________, __________, __________, __________, __________, __________, KC_COMM, KC_DOT, KC_BSLS, LSFT(KC_BSLS)}, + { __________, __________, __________, __________, __________, __________, KC_TRNS, __________, __________, __________, __________, __________ } +}, + +// classic Fn-Layer triggered with 'CapsLock-key' like on Pok3r +// SPC and ENT are doubled for using repeat (which I switched off, see https://github.com/tmk/tmk_keyboard/issues/287) +// '€' sign is on the '5' position as this is the usual AltGr place on the US Internation layout +// home/end at the 'a' and 'e' position like in bash +// ins at 'i' +// del besides backspace (had no better place for it because of the umlauts) +// pg-down at 'f' (forward in vi), pg-up at 'b' (back in 'vi') +// +[_FN] = { + { __________, __________, __________, KC_END, __________, __________, __________, __________, KC_INS, __________, KC_DEL, RALT(KC_Y) }, + { KC_TRNS, __________, RALT(KC_S), __________, KC_PGDN, RALT(KC_5), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, RALT(KC_P), RALT(KC_Q) }, + { __________, KC_HOME, __________, __________, __________, KC_PGUP, __________, __________, __________, __________, __________, KC_ENT }, + { RESET, __________, __________, __________, __________, KC_SPC, KC_SPC, __________, __________, __________, __________, __________ } +}, + +// function key layer and some shift + (missing key at the small form factor) +[_LOW] = { + { KC_TILD, __________, __________, __________, __________, __________, __________, __________, __________, KC_LCBR, KC_RCBR, KC_UNDS }, + { __________, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_LBRC, KC_RBRC, KC_PLUS }, + { __________, __________, __________, __________, __________, KC_F9, KC_F10, KC_F11, KC_F12, __________, __________, __________ }, + { __________, __________, __________, __________, __________, __________, __________, KC_TRNS, __________, __________, __________, __________ } +}, + +// most macros will switch tmux screens +// two macros are for vi's save/quit at 'w' and 'q' +[_TMUX] = { + { __________, M(14), M(13), __________, __________, __________, __________, __________, __________, __________, M(11), __________ }, + { M(0), M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), __________, __________ }, + { __________, __________, __________, M(12), __________, __________, M(10), __________, __________, __________, __________, __________ }, + { __________, __________, __________, __________, __________, KC_TRNS, __________, __________, __________, __________, __________, __________ } +}, + +// mouse movement can be improved (e.g. can't press hj at once), but I will use this seldom, so I stick with hjkl keys. +[_MOUSE] = { + { KC_TRNS, __________, __________, __________, __________, __________, __________, __________, __________, __________, __________, __________ }, + { __________, __________, __________, __________, KC_WH_D, __________, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, __________, __________ }, + { __________, __________, __________, __________, __________, KC_WH_U, __________, __________, __________, __________, __________, __________ }, + { __________, __________, __________, KC_ACL2, KC_ACL1, KC_ACL0, KC_MS_BTN1, KC_MS_BTN3, KC_MS_BTN2, __________, __________, __________ } +} +}; + +const uint16_t PROGMEM fn_actions[] = { + [_LCTL] = ACTION_MODS_TAP_KEY(KC_LCTL, M(12)), // does not work +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case 0: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_0), END ); + break; + case 1: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_1), END ); + break; + case 2: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_2), END ); + break; + case 3: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_3), END ); + break; + case 4: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_4), END ); + break; + case 5: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_5), END ); + break; + case 6: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_6), END ); + break; + case 7: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_7), END ); + break; + case 8: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_8), END ); + break; + case 9: + // tmux last window + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_L), END ); + break; + // tmux next window + case 10: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_N), END ); + break; + // tmux previous window + case 11: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_P), END ); + break; + // tmux new window + case 12: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_C), END ); + break; + case 13: + // vi save document + return MACRODOWN( TYPE(KC_ESC), DOWN(KC_LSFT), TYPE(KC_SCLN), UP(KC_LSFT), TYPE(KC_W), TYPE(KC_ENT), END ); + break; + case 14: + // vi quit + return MACRODOWN( TYPE(KC_ESC), DOWN(KC_LSFT), TYPE(KC_SCLN), UP(KC_LSFT), TYPE(KC_Q), TYPE(KC_ENT), END ); + break; + // tmux press ctrl-b + case 15: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), END ); + break; + } + return MACRO_NONE; +}; diff --git a/keyboards/planck/keymaps/nico/Makefile b/keyboards/planck/keymaps/nico/Makefile new file mode 100644 index 000000000..581e08cd0 --- /dev/null +++ b/keyboards/planck/keymaps/nico/Makefile @@ -0,0 +1,25 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/nico/compiled.hex b/keyboards/planck/keymaps/nico/compiled.hex new file mode 100644 index 000000000..61527c530 --- /dev/null +++ b/keyboards/planck/keymaps/nico/compiled.hex @@ -0,0 +1,1456 @@ +:100000000C94C4020C9408030C9408030C94080389 +:100010000C9408030C9408030C9408030C94080334 +:100020000C9408030C9408030C94B5140C948715D5 +:100030000C94E9220C9408030C9408030C94080314 +:100040000C9408030C946A030C9408030C940803A2 +:100050000C9408030C9451230C9408030C9408038B +:100060000C9408030C9408030C9408030C940803E4 +:100070000C9408030C9408030C9408030C940803D4 +:100080000C942A0B0C9408030C9408030C9408039A +:100090000C9408030C9408030C9408030C940803B4 +:1000A0000C9408030C9408030C940803F41516161A +:1000B0000417161604175B167E160417D316E616D9 +:1000C000D019D019FF19FF193E1A5E1AB41BB41BC0 +:1000D000691AB41B191B191B801B891BB41BAE1B8F +:1000E000261B261B261B261B261B261B261B261B08 +:1000F000261B261B261B261B261B261B261B261BF8 +:10010000361B441B4B1B521B5C1B07634236B79BC1 +:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 +:100120005763BD6DEDFD753EF6177231BF000000DF +:10013000803F08000000BE922449123EABAAAA2AC2 +:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD +:1001500000000000BF000000803F00000000000819 +:100160004178D3BB4387D1133D190E3CC3BD4282B6 +:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 +:10018000FFBE01C4FF7F3F00000000000000000030 +:1001900000000000000000010204060A0F17202CD6 +:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 +:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF +:1001C00002010000000000000000000000002AA35F +:1001D00028A42B0014001A000800150017001C00AA +:1001E00018000C00120013002A00E00004001600A2 +:1001F000070009000A000B000D000E000F0033007D +:100200003400E1001D001B0006001900050011006C +:100210001000360037003800280000302900E200C6 +:10022000E30001202C002C0002205000510052005D +:100230004F002B0014001A00090013000A000D00E3 +:100240000F0018001C0033002A00E0000400150015 +:100250001600170007000B00110008000C00120028 +:100260003400E1001D001B000600190005000E000F +:100270001000360037003800280000302900E20066 +:10028000E30001202C002C000220500051005200FD +:100290004F002B0034003600370013001C0009000B +:1002A0000A00060015000F002A00E00004001200FA +:1002B000080018000C0007000B00170011001600C2 +:1002C0003800E100330014000D000E001B00050093 +:1002D00010001A0019001D00280000302900E2005B +:1002E000E30001202C002C0002205000510052009D +:1002F0004F0035021E021F022002210222022302A9 +:1003000024022502260227022A0001003A003B00AF +:100310003C003D003E003F002D022E022F02300225 +:10032000310201004000410042004300440045000A +:10033000005301530253005001000030010001003E +:100340000100010069006A000100BB00AA00A900C9 +:10035000AE0035001E001F002000210022002300F7 +:1003600024002500260027002A0001003A003B0057 +:100370003C003D003E003F002D002E002F003000CD +:1003800031000100400041004200430044004500AC +:1003900000530153025300500100003001000100DE +:1003A0000100010069006A000100BB00AA00A90069 +:1003B000AE002803540068006500200050006C0067 +:1003C00061006E0063006B0020004B006500790047 +:1003D00062006F0061007200640000002C034F0097 +:1003E0007200740068006F006C0069006E006500A8 +:1003F0006100720020004B006500790062006F0010 +:100400006100720064007300000004030904090223 +:100410006D00040100A0FA090400000103010100BD +:10042000092111010001223F000705810308000A8C +:100430000904010001030102000921110100012248 +:100440004D000705820308000A09040200010300A9 +:10045000000009211101000122360007058303086D +:10046000000A090403000103000000092111010032 +:100470000122390007058403100001120110010058 +:10048000000008EDFE6060010001020001050109A5 +:1004900006A101050719E029E71500250195087552 +:1004A000018102050819012905950575019102953B +:1004B000017503910105071900297715002501959C +:1004C0007875018102C005010980A101850216012C +:1004D0000026B7001A01002AB700751095018100A7 +:1004E000C0050C0901A1018503160100269C021A12 +:1004F00001002A9C02751095018100C005010902C6 +:10050000A1010901A100050919012905150025010D +:100510009505750181029501750381010501093079 +:1005200009311581257F95027508810609381581E5 +:10053000257F950175088106050C0A38021581256D +:100540007F950175088106C0C005010906A1010556 +:100550000719E029E7150025019508750181029525 +:100560000175088101050819012905950575019195 +:10057000029501750391010507190029FF15002552 +:10058000FF950675088100C011241FBECFEFDAE089 +:10059000DEBFCDBF04B603FE24C080911E03909140 +:1005A0001F03A0912003B09121038730904BA740F7 +:1005B000B04BB9F410921E0310921F031092200347 +:1005C0001092210314BE84B7877F84BF88E10FB6E1 +:1005D000F89480936000109260000FBEE0E0F8E3B2 +:1005E000099511E0A0E0B1E0ECE2FAE502C0059067 +:1005F0000D92A03CB107D9F713E0A0ECB1E001C027 +:100600001D92AE31B107E1F70E94FB110C94142D3D +:100610000C9400000895089581E0089508950C94C5 +:100620000B030C940C030C940E030E94DE2823E0B1 +:1006300030E0281B3109220F2093C4010895282F90 +:100640002F9880918000211108C0877F80938000BF +:1006500010928D0010928C001BC0886080938000E7 +:10066000233019F48FEF9FEF0FC083E090E0821BDF +:100670009109880F991F2FEF3FEFA90102C05695EE +:1006800047958A95E2F7CA0190938D0080938C007C +:100690000C9415030E94150384E08093C30110920B +:1006A000C0010895279A2F988FEF9FEF90938700AE +:1006B000809386008AE08093800089E180938100A6 +:1006C0000E9447280C944A030E9452036E9A769A1D +:1006D0000C940A031F920F920FB60F9211242F93BE +:1006E0003F938F939F93EF93FF93E091C101F0911C +:1006F000C201CF0101969093C2018093C101009085 +:10070000C30102C0F695E7950A94E2F7EF73809172 +:10071000C001823019F4E03251F404C0813039F460 +:10072000EF3329F480916F008D7F80936F00F0E0AC +:10073000E457FE4FE49121E031E0E29FC001E39FE6 +:10074000900D11240090C40102C0969587950A94DB +:10075000E2F790938D0080938C00FF91EF919F9131 +:100760008F913F912F910F900FBE0F901F90189572 +:1007700061110DC0FC018281882331F085EE0E9459 +:1007800074180E949E2803C085EE0E943C1980E0E8 +:1007900090E0089581E008950C94CA0308950C94A4 +:1007A000640380911502882309F448C08091D10127 +:1007B0009091D201009779F40E941B239093D2016B +:1007C0008093D1018091D30190E0009771F48091E2 +:1007D000D40190E00AC00E942723209100013091AB +:1007E00001012817390740F329C00197880F991F85 +:1007F000880F991FFC01EB52FE4F6081718182814D +:1008000093810E94900AE091D30184E0E89FF00177 +:100810001124EB52FE4F60817181828193814FE000 +:1008200050E00E94480E8091D30190E001966091C3 +:10083000D40170E00E94C42C8093D3010C940F0368 +:10084000109217020C945D0A0895089581E0809338 +:1008500017020C942504089508958F929F92AF92E9 +:10086000BF92EF92FF920F931F93CF93DF93CDB779 +:10087000DEB7A3970FB6F894DEBF0FBECDBF7C01E5 +:10088000FC0100811181C8010E941821B8010E9459 +:100890002F068C01B7010E94CC03882309F4CCC138 +:1008A0000032F0E51F0741F4F7018281882309F443 +:1008B00058C00E94AC0EC0C10132F0E51F0741F4E0 +:1008C000F7018281882309F44CC00E94B50EB4C19F +:1008D0000232F0E51F0751F4F7018281882309F401 +:1008E00040C00E94A80E8111F0CFE3CF0332F0E5A3 +:1008F0001F0739F4F7018281882399F10E942604A9 +:100900009BC10432F0E51F0739F4F7018281882387 +:1009100041F10E94200490C10532F0E51F0749F41F +:10092000F70182818823E9F0809117028111F1CFCC +:10093000E5CF0632F0E51F0739F4F70182818823FD +:1009400081F00E94BC0E0AC00732F0E51F0749F48F +:10095000F7018281882329F00E94C70E0E942C048F +:100960006BC180911702811105C0F701828181114D +:10097000CFC018C1003E110579F4F70182818823A8 +:1009800009F44DC00E945D0A81E080931602109226 +:1009900015021092D40150C1023E110559F4F7011D +:1009A00082818823E1F10E945D0A10921602109262 +:1009B000150242C1033E110591F4F701828188239B +:1009C00071F10E945D0A1092160281E08093150277 +:1009D0001092D3011092D2011092D1012DC1023593 +:1009E000110559F4F7018281882309F425C180910A +:1009F0000001909101010A970DC00135110579F4AC +:100A0000F7018281882309F417C180910001909138 +:100A100001010A9690930101809300010DC140915C +:100A2000040183E2EFE1F1E0DE01119601900D9205 +:100A30008A95E1F7F701808121E030E02C0F3D1F1E +:100A4000280F311DC9012091020130910301FC01E1 +:100A5000E20FF31F6081772767FD7095640F711DAA +:100A6000882777FD8095982F0E94E62920E030E0C6 +:100A700040E451E40E944B294B015C01F7012181C4 +:100A800084E090E0821B9109BC01882777FD809566 +:100A9000982F0E94E6299B01AC01C501B4010E9478 +:100AA000E3289B01AC0160E070E080E090E40E94EC +:100AB000592B20E030E04CED50E40E94F62A4B0127 +:100AC0005C01F70182818823D1F04FE050E0C5013D +:100AD000B4010E94480E809116028823A1F08091F3 +:100AE000D40124E0829FF0011124EB52FE4F80825A +:100AF0009182A282B3828F5F8093D40104C0C5012A +:100B0000B4010E94900A0F3F110508F02ECF94C047 +:100B10008091D00181111FC0043130E5130709F025 +:100B200051C00E94CE0381E08093D0010E941B231C +:100B30009093CF018093CE011092C7011092C9010A +:100B40001092C8011092CB011092CA011092CD01EF +:100B50001092CC0171C08091CE019091CF010E9482 +:100B60002723883C910570F48091C701E82FF0E0BD +:100B7000EE0FFF1FE853FE4F118300838F5F8093BA +:100B8000C7015AC0043880E5180721F00538104520 +:100B900001F13AC0F7018281882341F01092C5012A +:100BA00082E01EC0043830E5130759F58091C50175 +:100BB000811106C086E20E94741886E20E943C19E8 +:100BC00082E01CC00438F0E51F0741F305381045EA +:100BD000D9F4F7018281882331F01092C60180E2B6 +:100BE0000E948B1929C08091C601811106C087E23D +:100BF0000E94741887E20E943C1980E20E949219B8 +:100C00001BC00538104529F381E08093C50180930E +:100C1000C601C701A3960FB6F894DEBF0FBECDBFC5 +:100C2000DF91CF911F910F91FF90EF90BF90AF9008 +:100C30009F908F900C94110380E0A3960FB6F894C8 +:100C4000DEBF0FBECDBFDF91CF911F910F91FF90FF +:100C5000EF90BF90AF909F908F90089508959CE083 +:100C6000799FF001112490E3899FE00DF11D11247B +:100C7000E60FF11DEE0FFF1FEE52FE4F859194918E +:100C80000895880F991FFC01E45BFF4F85919491B3 +:100C90000895880F991FFC01E453FE4F85919491AC +:100CA00008950F931F93CF93DF93EC01811521E3F8 +:100CB0009207A0F5C11580E3D80708F0D7C0C83E59 +:100CC000D105D8F4C03ED10508F007C2C83AD10515 +:100CD00078F4C53AD10508F06AC0C130D10509F4ED +:100CE00063C008F4F7C1C430D10508F0F6C1F2C101 +:100CF000CB3BD10508F466C0EDC1C11590E2D90720 +:100D000008F0AFC0C11521E0D20708F0E6C1C03F2E +:100D1000D10508F4DFC18E0110651FC2C03880E51F +:100D2000D80700F5C03790E5D90708F0A3C0C11572 +:100D300020E5D20709F4ACC050F4CE0190548031C4 +:100D40009F4008F0C7C1DF708E01106A06C2C13033 +:100D500080E5D80709F4AEC0C43190E5D90708F49E +:100D6000AFC0B8C1C33820E5D20709F48EC050F433 +:100D7000C13890E5D90709F482C008F083C000E0CB +:100D800011EDEBC1C03181E5D80708F4A3C1C1154D +:100D900097E5D90708F436C1CE01905781159041E7 +:100DA00008F098C1DF7093C101E010E0D6C1C53AE8 +:100DB000D10509F494C1C63AD10509F093C102E8FE +:100DC00010E4CBC1C83AD10509F48FC1C93AD105A5 +:100DD00009F48EC1CA3AD10509F48DC1CB3AD105C7 +:100DE00009F48CC1CC3AD10509F48BC1CD3AD105B7 +:100DF00009F48AC1C03BD10509F489C1CE3AD105B5 +:100E000009F488C1CF3AD10509F487C1C13BD105A6 +:100E100009F486C1C23BD10509F485C1C33BD105A4 +:100E200009F484C1C43BD10509F483C1C53BD10594 +:100E300009F482C1C63BD10509F481C1C73BD10584 +:100E400009F480C1C83BD10509F47FC1C93BD10574 +:100E500009F47EC1CA3BD10509F47DC100E014E468 +:100E60007CC1CE019F700E94490678C1DD278E01AA +:100E7000106C73C1CF70DD278E01146D6EC100E060 +:100E800010ED6BC100E012ED68C100E013ED65C12B +:100E90000E941F1C0E945D0A0E9424048FEF94E3AD +:100EA0002CE0815090402040E1F700C000000E94FB +:100EB000762353C18091F20281608093F2024DC18A +:100EC0000E94D723811102C00E94B3230E94EA230B +:100ED00090E090931D0380931C03C23080E5D807F7 +:100EE00021F480911C03816086C0C43090E5D9074D +:100EF00021F480911C0382607EC0C63020E5D207B9 +:100F000021F480911C03846076C0C83080E5D80746 +:100F100019F480911C0327C0CA3090E5D90721F449 +:100F200080911C03806167C0CC3020E5D20721F49A +:100F300080911C0380625FC0CE3080E5D80721F429 +:100F400080911C03806457C0C03190E5D90721F41B +:100F500080911C0380684FC0C23120E5D20729F47C +:100F600080911C038460886046C0C33080E5D80748 +:100F700021F480911C038E7F3EC0C53090E5D907D7 +:100F800021F480911C038D7F36C0C73020E5D20745 +:100F900021F480911C038B7F2EC0C93080E5D807D7 +:100FA00019F480911C0326C0CB3090E5D90721F4B9 +:100FB00080911C038F7E1FC0CD3020E5D20721F425 +:100FC00080911C038F7D17C0CF3080E5D80721F4B6 +:100FD00080911C038F7B0FC0C13190E5D90721F4AC +:100FE00080911C038F7707C0C331D04531F48091C5 +:100FF0001C038B7F877F80931C0380911C030E94BE +:10100000EE23ABC08D2F99278F70992781309105E2 +:10101000D9F49E012370332702C0880F991F2A95A7 +:10102000E2F79C688E0144E0000F111F4A95E1F73A +:1010300000271370802B912B53E0CC0FDD1F5A95A6 +:10104000E1F7C076DD272FC08230910531F4DC2F27 +:10105000CC278E01016F106A80C08330910569F43E +:10106000CE018370992701E010E002C0000F111F2C +:101070008A95E2F7C8019C680FC084309105B9F4E5 +:10108000CE018370992701E010E002C0000F111F0C +:101090008A95E2F7C8019A6823E0CC0FDD1F2A95F4 +:1010A000E1F7C07ED7708C010C2B1D2B56C085300C +:1010B000910531F4DC2FCC278E01046F106A4DC0EE +:1010C000069709F04AC0CF71DD27DC2FCC278E01AF +:1010D000106243C000E010E040C08E013EC001E855 +:1010E00010E43BC003E810E438C002EE14E435C05D +:1010F00009EE14E432C00AEE14E42FC005EB14E448 +:101100002CC006EB14E429C007EB14E426C00CEC59 +:1011100014E423C00DEC14E420C003E815E41DC062 +:101120000AE815E41AC002E915E417C004E915E459 +:1011300014C001E216E411C003E216E40EC004E29A +:1011400016E40BC005E216E408C006E216E405C08A +:1011500007E216E402C00AE216E4C801DF91CF916B +:101160001F910F9108959CE0799FF001112490E365 +:10117000899FE00DF11D1124E60FF11DEE0FFF1FF9 +:10118000EE52FE4F85919491803E9105E0F4803CB3 +:10119000910558F58133910509F46FC048F48932FF +:1011A000910509F463C08A32910509F46DC072C0DB +:1011B00089339105E9F082389105D1F085339105A5 +:1011C00009F44DC067C0833E910581F138F4803E3B +:1011D0009105B9F0823E9105D9F05CC0863E91053B +:1011E00061F1873E9105A1F155C00E944106089525 +:1011F00020911C0320FD02C021FF4CC080EE90E036 +:1012000049C080911C0380FFF9CF89E390E042C080 +:1012100080911C0382FF0EC080911C0384FF03C0D9 +:1012200080E090E037C083EE90E034C080911C03F2 +:1012300082FFF2CF82EE90E02DC080911C0383FFED +:101240000BC080911C0384FDEBCF87EE90E022C0A1 +:1012500080911C0383FFF5CF86EE90E01BC0809148 +:101260001C0385FF07C089E290E014C080911C0335 +:1012700085FFF9CF85E390E00DC080911C0386FFC8 +:1012800007C08AE290E006C080911C0386FFF9CF78 +:1012900081E390E00E94510608950C941303E82F17 +:1012A000F0E0E25BFE4F8081E82FEF70F0E0829586 +:1012B0008F7021E030E0A90102C0440F551F8A95CC +:1012C000E2F740A308950F931F93CF93DF9385B761 +:1012D000806885BF85B7806885BFC3E0D0E001E046 +:1012E00010E0FE01E25BFE4F8081E82FEF70F0E03E +:1012F00021A182958F70A80102C0440F551F8A95C5 +:10130000E2F7CA01822B81A38C2F0E944F092197FB +:1013100040F78BE090E061E070E0FC01EE5BFE4F97 +:101320002081E22FEF70F0E042A122952F70DB01C7 +:1013300002C0AA0FBB1F2A95E2F79D01242B22A30E +:10134000019758F7DF91CF911F910F910C94CF0324 +:10135000EF92FF920F931F93CF93DF9300E212E07F +:10136000C3E0EE24E394F12CD5E08C2F0E944F09CA +:101370008BE090E040E050E0FC01EE5BFE4F6081CE +:10138000E62FEF70F0E020A130E062956F7002C0B0 +:10139000359527956A95E2F720FD09C09701082E3B +:1013A00002C0220F331F0A94E2F7422B532B0197FE +:1013B00018F7F801929182918F018417950721F017 +:1013C00051834083D09305018C2F0E944F09C15057 +:1013D00060F68091050187FD2CC081508093050146 +:1013E0008F3F39F08FE99FE00197F1F700C00000CF +:1013F00020C080911E0290911F029093270280933B +:10140000260280911C0290911D02909325028093E8 +:10141000240280911A0290911B02909323028093E0 +:1014200022028091180290911902909321028093D8 +:1014300020020E94D10381E0DF91CF911F910F9193 +:10144000FF90EF900895E82FF0E0EE0FFF1FE05EB1 +:10145000FD4F80819181089508950F931F93CF933D +:1014600008E212E0C0E0F801929182918F010E949F +:101470009322C80FF2E000321F07A9F78C2FCF91FB +:101480001F910F9108950E94D723811102C00E94DD +:10149000B3230E94FC23809307033E9A809171003E +:1014A0008D7F8093710082E0809390008AE1809329 +:1014B000910081E080932A02089580912A0281118F +:1014C00002C00E94430A10927A021092790280911F +:1014D00071008D7F80937100809190008F73809355 +:1014E000900010923C0210923B02109273021092F4 +:1014F000740210927502109276021092720210928B +:101500007102E1E5F2E0A1E4B2E0119211921192D0 +:1015100011921D921D9282E0E137F807B1F708950C +:10152000CF92DF92EF92FF920F931F93CF93DF93AF +:1015300020913B02222309F484C06B017C0180913D +:101540002A02811102C00E94430A01E712E0C7E0AB +:10155000D0E0A7019601F801929182917291629177 +:101560008F010E944729811131C0FE01EE0FFF1F3C +:10157000EE0FFF1FEF5AFD4F10821182128213826D +:10158000DE01AA0FBB1FAF5BBD4F11961C921E92CE +:10159000C730D105E9F02196448155816681778174 +:1015A000408351836283738314821582168217826B +:1015B00012968D919C91139711969C938E931396EE +:1015C0001C921E92129734961296E2CF219708F63B +:1015D0008091790290917A02019797FD05C09093CE +:1015E0007A028093790204C010927A0210927902F2 +:1015F0008091790290917A0220917702309178025D +:101600002817390724F01092780210927702892B5C +:10161000C1F4809171008D7F809371008091900062 +:101620008F73809390001092730210927402109244 +:10163000750210927602109272021092710210924C +:101640003B02DF91CF911F910F91FF90EF90DF90C0 +:10165000CF9008951F920F920FB60F9211244F92C0 +:101660005F926F927F928F929F92AF92BF92CF9232 +:10167000DF92EF92FF922F933F934F935F936F937D +:101680007F938F939F93AF93BF93CF93DF93EF930A +:10169000FF9380913B02882309F49BC1C09179029A +:1016A000D0917A021C161D060CF093C140902B02BB +:1016B00050902C0260902D0270902E0220E030E0BD +:1016C000A901C301B2010E94F22A18160CF065C0EC +:1016D000C130D10509F452C080917702909178020F +:1016E000BE010E94C42C7C01909378028093770203 +:1016F00080903D0290903E02A0903F02B090400248 +:1017000020E030E040E85FE3C501B4010E94E32837 +:1017100060933D0270933E0280933F02909340029B +:10172000F701EE0FFF1FEE0FFF1FEF5AFD4FA30152 +:10173000920160817181828193810E944B2920E016 +:1017400030E040E05EE30E94F62A9B01AC01C50157 +:10175000B4010E94F22A18168CF4C7010196BE014A +:101760000E94C42C909378028093770210923D02DD +:1017700010923E0210923F0210924002E0917702D6 +:10178000F0917802EE0FFF1FEE0FFF1FEF5AFD4F93 +:101790006081718182819381D0C0C0907302D090AA +:1017A0007402E0907502F090760220E030E0A9012A +:1017B000C701B6010E9447292197882309F4A2C0D6 +:1017C000FE01EE0FFF1FEE0FFF1FEF5AFD4F80804F +:1017D0009180A280B380A5019401C701B6010E9447 +:1017E000472987FF31C0A501940160E070E08CEDCE +:1017F00093EC0E944B2920E030E040E451E40E9449 +:101800004B2920E030E040E05FE30E94F62A9B0194 +:10181000AC0160E070E080E090E40E94592B9B01F5 +:10182000AC01C501B4010E94F62A9B01AC01C701BD +:10183000B6010E94472987FF07C0A701960160E013 +:1018400070E08CED93E439C0A5019401C701B601A5 +:101850000E94F22A18160CF055C0A501940160E010 +:1018600070E08CED93E40E944B2920E030E040E4EE +:1018700051E40E944B2920E030E040E05FE30E9409 +:10188000F62A9B01AC0160E070E080E090E40E94E9 +:10189000592B9B01AC01C501B4010E94F62A9B01A2 +:1018A000AC01C701B6010E94F22A18165CF5A70127 +:1018B000960160E070E08CED93EC0E944B2920E0F3 +:1018C00030E040E451E40E944B2920E030E040E069 +:1018D0005FE30E94F62A9B01AC0160E070E080E0CB +:1018E00090E40E94592B9B01AC01C701B6010E94F4 +:1018F000F62A60937302709374028093750290933A +:10190000760213C0FE01EE0FFF1FEE0FFF1FEF5A0E +:10191000FD4F80819181A281B38180937302909366 +:101920007402A0937502B093760260917302709175 +:101930007402809175029091760220912802309174 +:1019400029022F3F4FEF340731F02F5F3F4F309385 +:101950002902209328020E94D20E6B017C0120E014 +:1019600034E244EF51E40E94472987FF08C086EF24 +:10197000C82E88E2D82E84EFE82E81E4F82E20E0ED +:1019800030E040E051E4C701B6010E94F62A9B0115 +:10199000AC0160E074E284E79BE40E944B296B0198 +:1019A0007C010E94B8297093970060939600209163 +:1019B0000601309107014091080150910901C701CA +:1019C000B6010E94F62A0E94B8297093990060938C +:1019D000980080913C02882309F433C1C0903702FB +:1019E000D0903802E0903902F0903A0220E030E0E6 +:1019F000A901C701B6010E94F22A1816D4F58091F8 +:101A00002802909129028F3F2FEF920729F001962B +:101A10009093290280932802C701B6010E94D20E3A +:101A200020E030E040E051E40E94F62A9B01AC0146 +:101A300060E074E284E79BE40E944B296B017C0127 +:101A40000E94B82970939700609396002091060138 +:101A5000309107014091080150910901C701B60179 +:101A60000E94F62A0E94B82970939900609398000A +:101A700008C0109297001092960010929900109250 +:101A8000980060913102709132026F5F7F4F7093C6 +:101A9000320260933102209196003091970080E0ED +:101AA00090E0232BF1F0C0919600D09197000E9416 +:101AB000E4296B017C01BE0180E090E00E94E429F2 +:101AC0009B01AC0160913302709134028091350228 +:101AD000909136020E944B2920E03FEF4FE757E4F8 +:101AE00010C00E94E4296B017C0120E030EE4FEF32 +:101AF00054E46091330270913402809135029091E8 +:101B000036020E94F62A9B01AC01C701B6010E9471 +:101B1000F22A87FD96C080912F028F5F80932F025B +:101B200090E0209103033091040382179307A0F003 +:101B300080910E03882319F010922F020DC080911E +:101B400071008D7F80937100809190008F738093DE +:101B5000900010923C027DC080913002C0912F0213 +:101B6000811128C0C0900803D0900903E0900A03B7 +:101B7000F0900B0320E030E0A901C701B6010E94FC +:101B8000F22A1816BCF481E08093300210923702DA +:101B9000109238021092390210923A02C092330227 +:101BA000D0923402E0923502F0923602C150C093D6 +:101BB0002F0243C010923002109229021092280284 +:101BC000E0910503F091060348E0C49FE00DF11D8C +:101BD000112480819181A281B381809337029093F7 +:101BE0003802A0933902B0933A0220E030E040E896 +:101BF0005EE364817581868197810E94F62A6B017C +:101C00007C0180910A01682F70E080E090E00E94E2 +:101C1000E42920E030E048EC52E40E944B299B018B +:101C2000AC01C701B6010E94F62A6093330270939B +:101C30003402809335029093360210923202109251 +:101C400031028091070380FD04C010923C02109283 +:101C50003B02FF91EF91DF91CF91BF91AF919F91A7 +:101C60008F917F916F915F914F913F912F91FF9055 +:101C7000EF90DF90CF90BF90AF909F908F907F902C +:101C80006F905F904F900F900FBE0F901F90189520 +:101C9000CF92DF92EF92FF92CF93DF936B017C01A3 +:101CA000EA0180912A02811102C00E94430A8091B8 +:101CB000070380FF46C08091790290917A020897CD +:101CC0000CF03FC0809171008D7F809371008091F6 +:101CD0003C0281110E945D0A81E080933B021092D8 +:101CE00029021092280220E030E0A901C701B601C4 +:101CF0000E94F22A1816DCF48091790290917A02FF +:101D0000FC01EE0FFF1FEE0FFF1FEF5AFD4FC082C9 +:101D1000D182E282F382FC01EE0FFF1FEF5BFD4FE9 +:101D2000D183C083019690937A0280937902809147 +:101D30007100826080937100809190008068809330 +:101D40009000DF91CF91FF90EF90DF90CF900895BA +:101D500080910703817008958091070381608093CB +:101D600007030E9400240C942B04809107038E7FAC +:101D7000809307030C94002480917B0290E00196ED +:101D800066E070E00E94C42C80937B0208958091ED +:101D90007B0290E0019766E070E00E94C42C809383 +:101DA0007B0208958F929F92AF92BF92CF92DF9263 +:101DB000EF92FF920F931F93CF93DF936B017C0100 +:101DC000C0912802D0912902BE0180E090E00E94DB +:101DD000E4294B015C01A701960160E070E08CE50D +:101DE00094E40E944B299B01AC01C501B4010E94FF +:101DF000F62A0E94B82920917B02233009F473C08F +:101E000028F4222351F02130E9F02CC1243009F4C8 +:101E1000A0C0253009F4E0C025C180E090E0A0E03A +:101E2000BFE38093060190930701A0930801B0934C +:101E3000090110922B0210922C0210922D02109286 +:101E40002E0210C110922B0210922C0210922D0221 +:101E500010922E026431710540F46A30710560F50C +:101E600020E030E040E85EE32BC0693C710508F0FB +:101E7000AAC080E090E00E94E42920E030E040EA3F +:101E800051E40E94E22820E030E044E353E40E9461 +:101E90004B299B01AC010E94F62A20E030E040E093 +:101EA0005EE30E94F62A9B01AC0160E070E080E0F6 +:101EB0009EE30E94E22844C020E030E040E05FE37F +:101EC000C701B6010E94F62A6B017C0180E090E018 +:101ED000A0E0BEE38093060190930701A093080160 +:101EE000B0930901BFC010922B0210922C021092E5 +:101EF0002D0210922E024AE0469F9001479F300D1E +:101F00001124C90168EB7BE00E94B02CBC016C5D20 +:101F1000754077FF03C0719561957109882777FD3A +:101F20008095982F0E94E6292EE333EC4EE259E388 +:101F30000E94F62A20E030E040EC5EE30E94E328B5 +:101F40006093060170930701809308019093090143 +:101F500089C010922B0210922C0210922D02109226 +:101F60002E02CE0183709927892BE1F0BE016170AA +:101F7000772780E090E00E94E42920E030E040E014 +:101F80005EE30E94F62A20E030E040E45FE30E9436 +:101F9000E3286093060170930701809308019093F2 +:101FA00009010CC080E090E0A0E0BFE3809306014F +:101FB00090930701A0930801B0930901C770DD2732 +:101FC000CD2B09F04FC0109206011092070110921C +:101FD00008011092090146C010922B0210922C02A7 +:101FE00010922D0210922E0200E010E020E03FE35C +:101FF0000093060110930701209308013093090113 +:102000006739710578F180E090E00E94E42920E0D2 +:1020100030E047E153E40E94E22820E030E04AE764 +:1020200054E40E944B2920E030E048E452E40E944E +:10203000F62A20E030E040EA51E40E94282A0E947B +:10204000B329660F771F660F771FFB01EE5AFE4F0D +:102050002081318142815381C701B6010E94F62A55 +:102060006B017C01C701B601DF91CF911F910F91E8 +:10207000FF90EF90DF90CF90BF90AF909F908F90A8 +:10208000089580918C020895CF93DF9300D01F9222 +:10209000CDB7DEB79C0180911303843019F593E02E +:1020A00099833B832A839093E9008FEF9091E80016 +:1020B000815095FD06C095ED9A95F1F700008111CC +:1020C000F5CF8091E80085FF0DC040E050E063E06F +:1020D00070E0CE0101960E94A5128091E8008E77F3 +:1020E0008093E8000F900F900F90DF91CF910895AB +:1020F000CF93DF9300D01F92CDB7DEB720911303AB +:10210000243021F522E029839B838A8383E0809316 +:10211000E9008FEF9091E800815095FD06C095EDA4 +:102120009A95F1F700008111F5CF8091E80085FFC5 +:102130000DC040E050E063E070E0CE0101960E94E7 +:10214000A5128091E8008E778093E8000F900F90A1 +:102150000F90DF91CF910895209113032430F1F473 +:1021600022E02093E9002FEF3091E800215035FD67 +:1021700006C035ED3A95F1F700002111F5CF209119 +:10218000E80025FF0BC040E050E065E070E00E94F1 +:10219000A5128091E8008E778093E8000895CF9390 +:1021A000DF93EC0190911303943009F046C08091C5 +:1021B00015018823D9F0809116018823B9F09093F6 +:1021C000E9008FEF9091E800815095FD06C095E100 +:1021D0009A95F1F700008111F5CF8091E80085FF15 +:1021E0002CC040E050E060E170E017C081E08093D7 +:1021F000E9008FEF9091E800815095FD06C095EDC4 +:102200009A95F1F700008111F5CF8091E80085FFE4 +:1022100014C040E050E068E070E0CE010E94A512DA +:102220008091E8008E778093E80080E1FE01ACE7C2 +:10223000B2E001900D928A95E1F7DF91CF91089578 +:1022400080911203811109C00E943A140E949714D0 +:102250008091E20084608093E2000895109212035E +:102260000895089508950C94DE2242E061EC81E027 +:102270000E94B41342E061EC82E00E94B41342E099 +:1022800061EC83E00E94B41342E161EC84E00C94C1 +:10229000B41380911503833009F455C030F48130B4 +:1022A00071F0823009F48EC008958A3009F47AC042 +:1022B0008B3009F460C0893009F09CC020C0809147 +:1022C0001403813A09F096C08091E800877F8093DB +:1022D000E8008091180390911903892B21F460E1A3 +:1022E0008CE792E003C060E080E090E070E00E9444 +:1022F000F0128091E8008B778093E8000895809138 +:102300001403813209F076C080911803909119036B +:10231000009719F0039709F06DC08091E800877F5E +:102320008093E8008091E80082FD05C0809113034E +:102330008111F8CF5FC08091F10080938C02809171 +:10234000E8008B7753C080911403813A09F052C0A2 +:102350008091180390911903892B09F04BC080914B +:10236000E800877F8093E8008091E80080FFFCCF41 +:102370008091150136C0809114038132D9F5809186 +:10238000180390911903892BA9F58091E800877FA4 +:102390008093E8000E94E913809116038093150151 +:1023A0000C941F1C80911403813221F58091E80068 +:1023B000877F8093E8000E94E91380911703809340 +:1023C0008D02089580911403813AA1F48091E80070 +:1023D000877F8093E8008091E80080FFFCCF8091A8 +:1023E0008D028093F1008091E8008E778093E80061 +:1023F0000C94E913089584B7877F84BF88E10FB6F2 +:10240000F89480936000109260000FBE90E080E826 +:102410000FB6F89480936100909361000FBE0E9404 +:102420008C170E943A140E9497148091E2008460F5 +:102430008093E20078940E941D170E948E178BE013 +:1024400091E00E94381780911303853069F40E944F +:102450009F22809111038823B1F30E94CD2288230B +:1024600091F30E948F12EFCF0E949617ECCF292F85 +:10247000332723303105C9F064F42130310581F070 +:102480002230310509F043C08DE690E02EE034E0C3 +:1024900042C021323105F1F02232310541F137C01D +:1024A00082E190E02BE734E036C099278130910536 +:1024B00041F08230910541F0892B49F5EAE0F4E0E2 +:1024C00005C0ECEDF3E002C0E2EBF3E0849190E0B4 +:1024D0009F0121C06430D8F4E62FF0E0EE0FFF1F1B +:1024E000E255FE4F2081318189E090E014C06430D4 +:1024F00070F470E0FB01EE0FFF1FEA55FE4F2081E4 +:102500003181FB01EE55FE4F808190E004C080E0F8 +:1025100090E020E030E0FA0131832083089580E1EB +:1025200089BD82E189BD09B400FEFDCF8091D8004C +:102530008F7D8093D8008091E00082608093E000DE +:102540008091E00081FDFCCF0895CF92DF92EF9261 +:10255000FF920F931F93CF93DF93EC018B016A01DE +:102560000E940814811133C0C114D10439F0F6015E +:1025700080819181081B190BC80FD91FE12CF12C08 +:102580000115110519F18091E80085FD16C08091B3 +:10259000E8008E778093E800C114D10449F0F60179 +:1025A00080819181E80EF91EF182E08285E00FC002 +:1025B0000E940814882321F30AC089918093F100B6 +:1025C00001501109FFEFEF1AFF0ADACF80E0DF9127 +:1025D000CF911F910F91FF90EF90DF90CF900895D2 +:1025E00020911A0330911B032617370748F0611515 +:1025F000710539F42091E8002E772093E80001C09E +:10260000B90140E061157105A9F12091130322235E +:1026100009F443C0253009F442C02091E80023FDAD +:1026200040C02091E80022FD32C02091E80020FF48 +:10263000E9CF4091F3002091F20030E0342BFC010F +:10264000CF016115710559F02830310540F48191B1 +:102650008093F100615071092F5F3F4FF1CF41E04E +:102660002830310509F040E02091E8002E772093D2 +:10267000E800C8CF4111C9CF0AC080911303882355 +:1026800061F0853061F08091E80083FD0AC080919F +:10269000E80082FFF2CF80E0089582E0089583E0B1 +:1026A000089581E0089520911A0330911B032617A5 +:1026B000370748F06115710539F42091E8002E774D +:1026C0002093E80001C0B901FC0120E0611571050B +:1026D00091F180911303882309F440C0853009F4F7 +:1026E0003FC08091E80083FD3DC08091E80082FDFD +:1026F0002FC08091E80080FFE9CF2091F300809106 +:10270000F20090E0922B6115710559F08830910527 +:1027100040F424912093F1003196615071090196A3 +:10272000F2CF21E0089709F020E08091E8008E7751 +:102730008093E800CBCF2111CCCF0AC08091130346 +:10274000882361F0853061F08091E80083FD0AC044 +:102750008091E80082FFF2CF80E0089582E0089542 +:1027600083E0089581E00895982F973058F590936D +:10277000E900981739F07091EC002091ED0050912C +:10278000F00003C0242F762F50E021FF19C03091B4 +:10279000EB003E7F3093EB003091ED003D7F3093B6 +:1027A000ED003091EB0031603093EB007093EC0062 +:1027B0002093ED005093F0002091EE0027FF07C01A +:1027C0009F5FD3CF8F708093E90081E0089580E010 +:1027D00008958091140387FF11C08091E80082FD65 +:1027E00005C0809113038111F8CF11C08091E800DA +:1027F0008B770BC080911303882349F08091E80008 +:1028000080FFF8CF8091E8008E778093E8000895EC +:102810002091E4003091E50095E64091EC00842F92 +:10282000817040FF22C08091E80080FD1CC0809133 +:102830001303882391F0853091F08091EB0085FDA2 +:1028400010C04091E4005091E5004217530729F36E +:102850009A01915011F784E0089582E0089583E091 +:10286000089581E0089580E008954091E80042FFD6 +:10287000DECF08950E94A8140E94B014E0EEF0E0AC +:10288000808181608083E8EDF0E080818F778083B4 +:1028900019BCA7EDB0E08C918E7F8C9380818F7EE8 +:1028A00080831092120308950F931F93CF93DF93A9 +:1028B0000E94A8140E94B014C8EDD0E088818F77E0 +:1028C000888388818068888388818F7D888319BC0C +:1028D0001092130310920F03109211031092100321 +:1028E00000EE10E0F80180818B7F80838881816019 +:1028F000888342E060E080E00E94B413E1EEF0E003 +:1029000080818E7F8083E2EEF0E080818160808331 +:10291000808188608083F80180818E7F80838881B8 +:1029200080618883DF91CF911F910F910895E8ED29 +:10293000F0E080818F7E8083E7EDF0E08081816030 +:10294000808384E082BF81E0809312030C9454144E +:10295000E8EDF0E080818E7F80831092E2000895A0 +:102960001092DA001092E10008951F920F920FB6B4 +:102970000F9211242F933F934F935F936F937F9305 +:102980008F939F93AF93BF93EF93FF938091E10059 +:1029900082FF0BC08091E20082FF07C08091E100BE +:1029A0008B7F8093E1000E941C178091DA0080FFEA +:1029B0001FC08091D80080FF1BC08091DA008E7FFD +:1029C0008093DA008091D90080FF0DC080E189BD3D +:1029D00082E189BD09B400FEFDCF81E0809313033D +:1029E0000E94201105C019BC109213030E942E11E1 +:1029F0008091E10080FF19C08091E20080FF15C046 +:102A00008091E2008E7F8093E2008091E2008061FD +:102A10008093E2008091D80080628093D80019BC36 +:102A200085E0809313030E9432118091E10084FFBE +:102A300030C08091E20084FF2CC080E189BD82E13A +:102A400089BD09B400FEFDCF8091D8008F7D8093B1 +:102A5000D8008091E1008F7E8093E1008091E200B8 +:102A60008F7E8093E2008091E20081608093E2009B +:102A700080910F03882311F084E007C08091E30068 +:102A800087FD02C081E001C083E0809313030E94B0 +:102A900033118091E10083FF29C08091E20083FF20 +:102AA00025C08091E100877F8093E10082E08093E0 +:102AB000130310920F038091E1008E7F8093E10059 +:102AC0008091E2008E7F8093E2008091E20080613D +:102AD0008093E20042E060E080E00E94B4138091C5 +:102AE000F00088608093F0000E943111FF91EF9117 +:102AF000BF91AF919F918F917F916F915F914F9116 +:102B00003F912F910F900FBE0F901F9018951F921D +:102B10000F920FB60F9211242F933F934F935F9311 +:102B20006F937F938F939F93AF93BF93CF93DF93D5 +:102B3000EF93FF93C091E900CF708091EC00D82F04 +:102B4000D17080FDD0E81092E9008091F000877F7D +:102B50008093F00078940E94CB151092E900809148 +:102B6000F00088608093F000CD2BCF70C093E90017 +:102B7000FF91EF91DF91CF91BF91AF919F918F9195 +:102B80007F916F915F914F913F912F910F900FBE69 +:102B90000F901F9018951F93CF93DF93CDB7DEB79B +:102BA000AA970FB6F894DEBF0FBECDBFE4E1F3E005 +:102BB00088E08E0F9091F10091938E13FBCF0E94CD +:102BC00049118091E80083FF1FC180911403909107 +:102BD0001503492F50E04A30510508F015C1FA019C +:102BE000EA5AFF4F0C94D82C803881F0823809F0D3 +:102BF0000BC1809118038F708093E9008091EB00E6 +:102C000085FB882780F91092E90006C080911003A7 +:102C100090911103911182609091E800977F9093B9 +:102C2000E8008093F1001092F100C8C0282F2D7F9A +:102C300009F0EAC0882319F0823061F0E5C0809184 +:102C40001603813009F0E0C0933009F080E08093F2 +:102C500011032BC080911603811127C080911803A6 +:102C60008F7009F4D1C08093E9002091EB0020FF20 +:102C70001CC0933021F48091EB00806214C09091CD +:102C8000EB0090619093EB0021E030E0A90102C0DD +:102C9000440F551F8A95E2F74093EA001092EA002C +:102CA0008091EB0088608093EB001092E9008091A6 +:102CB000E800877F86C08111A7C0109116031F7797 +:102CC0008091E3008078812B8093E3008091E8007D +:102CD000877F8093E8000E94E9138091E80080FFDD +:102CE000FCCF8091E30080688093E300111102C063 +:102CF00082E001C083E08093130386C08058823055 +:102D000008F082C080911603909117038C3D53E028 +:102D1000950779F583E08A838AE289834FB7F8942F +:102D2000DE01139620E03EE051E2E32FF0E0509305 +:102D30005700E49120FF03C0E295EF703F5FEF7012 +:102D40008E2F90E0EA3010F0C79601C0C0968D93A8 +:102D50009D932F5F243149F74FBF8091E800877F13 +:102D60008093E8006AE270E0CE0101960E94F012C2 +:102D700014C0AE014F5F5F4F609118030E9437127D +:102D8000BC01009709F440C09091E800977F9093B0 +:102D9000E80089819A810E9453138091E8008B7723 +:102DA0008093E80031C0803879F58091E800877F12 +:102DB0008093E80080910F038093F1008091E800F8 +:102DC0008E778093E8000E94E9131EC081111CC019 +:102DD000909116039230C0F48091E800877F809331 +:102DE000E80090930F030E94E91380910F03811173 +:102DF00006C08091E30087FD02C081E001C084E04D +:102E0000809313030E9435118091E80083FF0AC06C +:102E10008091E800877F8093E8008091EB008062DA +:102E20008093EB00AA960FB6F894DEBF0FBECDBF1D +:102E3000DF91CF911F9108950895CF93809113034F +:102E40008823A1F0C091E900CF709091EC00892F08 +:102E5000817090FD80E8C82B1092E9008091E80015 +:102E600083FD0E94CB15CF70C093E900CF910895E8 +:102E700090939302809392020895E0919202F091D0 +:102E80009302309721F00190F081E02D099480E0C9 +:102E90000895E0919202F0919302309721F0028020 +:102EA000F381E02D09940895E0919202F09193024C +:102EB000309721F00480F581E02D09940895209148 +:102EC0009002309191028217930771F090939102D2 +:102ED00080939002E0919202F0919302309721F05A +:102EE0000680F781E02D0994089520918E0230919B +:102EF0008F028217930771F090938F0280938E0256 +:102F0000E0919202F0919302309721F00084F185D4 +:102F1000E02D0994089508950C948B170E941223B4 +:102F20000E9463090E9498230C9447285F926F9235 +:102F30007F928F929F92AF92BF92CF92DF92EF9249 +:102F4000FF920F931F93CF93DF9300D000D01F9277 +:102F5000CDB7DEB70E94A8099DE9C92E92E0D92E0F +:102F600003E010E0AA24A394B12C502E802F0E94DD +:102F7000230A4C01F601729062906F01682679264F +:102F800061147104A1F40150110978F78FEF89835E +:102F90008A831B820E941B238160782F9D838C83F0 +:102FA00049815A816B818D810E94461838C0809179 +:102FB000F20281FD0E942C0A2BE030E07501022E06 +:102FC00002C0EE0CFF1C0A94E2F7C701862197218C +:102FD000892B09F129835A828E209F2091E089282C +:102FE00009F490E09B830E941B238160782F9D83CE +:102FF0008C8349815A816B818D810E944618000F14 +:10300000111FF801EB56FD4F80819181E826F926CA +:10301000F182E08204C02150310980F6B4CF0E94D1 +:103020007F25109194020E943D171817D1F00E943D +:103030003D17809394020F900F900F900F900F9078 +:10304000DF91CF911F910F91FF90EF90DF90CF9084 +:10305000BF90AF909F908F907F906F905F900C94F7 +:103060004D090F900F900F900F900F90DF91CF911F +:103070001F910F91FF90EF90DF90CF90BF90AF9096 +:103080009F908F907F906F905F900895CF93DF9384 +:10309000CDB7DEB72B970FB6F894DEBF0FBECDBF0E +:1030A0004F83588769877A878B87DE01119686E080 +:1030B000FD0111928A95E9F785E0FE0137960190AE +:1030C0000D928A95E1F749815A816B817C818D81CE +:1030D0009E810E94BD1E2B960FB6F894DEBF0FBED8 +:1030E000CDBFDF91CF910895CF93882309F4C2C05B +:1030F000C82F823859F40E943D1781FDBBC089E377 +:103100000E9497210E94642289E30CC0833879F4DD +:103110000E943D1780FDAEC083E50E9497210E946A +:10312000642283E50E94D921CF910C9464228438D3 +:1031300059F40E943D1782FD9DC087E40E949721AB +:103140000E94642287E4EECF8CEF8C0F813A48F422 +:103150008C2F0E94AF2781118DC08C2F0E94972148 +:10316000E3CF80E28C0F883048F4C77081E001C063 +:10317000880FCA95EAF70E941D22D6CF8BE58C0FE7 +:10318000833078F4C53A29F0C63A31F083E890E00C +:1031900005C081E890E002C082E890E0CF910C94F5 +:1031A0005F1788E58C0F833108F064C0C83A39F1A5 +:1031B000C93A41F1CA3A49F1CB3A51F1CC3A59F105 +:1031C000CD3A61F1C03B69F1CE3A71F1CF3A79F174 +:1031D000C13B81F1C23B89F1C33B91F1C43B99F101 +:1031E000C53BA1F1C63BA9F1C73BB1F1C83BB9F161 +:1031F000C93BC1F1CA3BC9F180E090E038C082EE22 +:1032000090E035C089EE90E032C08AEE90E02FC0A9 +:1032100085EB90E02CC086EB90E029C087EB90E036 +:1032200026C08CEC90E023C08DEC90E020C083E8B9 +:1032300091E01DC08AE891E01AC082E991E017C0D0 +:1032400084E991E014C081E292E011C083E292E04F +:103250000EC084E292E00BC085E292E008C086E2F4 +:1032600092E005C087E292E002C08AE292E0CF914C +:103270000C947517CF910895882309F44BC08238B8 +:1032800059F40E943D1781FF45C089E30E949721B0 +:103290000E94642289E30CC0833871F40E943D17B8 +:1032A00080FF38C083E50E9497210E94642283E555 +:1032B0000E94D9210C946422843859F40E943D174D +:1032C00082FF28C087E40E9497210E94642287E43D +:1032D000EFCF9CEF980F913A58F390E2980F983007 +:1032E00050F4877091E001C0990F8A95EAF7892F11 +:1032F0000E942322DFCF9BE5980F933020F480E0DB +:1033000090E00C945F17885A833120F480E090E0BD +:103310000C9475170895882321F00E941D220C94A7 +:1033200064220895882321F00E9423220C946422B1 +:1033300008957F928F929F92AF92BF92CF92DF9229 +:10334000EF92FF920F931F93CF93DF931F92CDB70E +:10335000DEB77C01C62E772EFC01058102950F7029 +:10336000128111110E943A220E949021882379F043 +:10337000112369F080E28C0D883048F082E00E94D1 +:1033800079210E94902191E0D82ED92601C0D12C1C +:10339000E72DE295EF70F0E0E05AFF4F0C94D82C47 +:1033A000872D807F072D0F70882311F00295007FF5 +:1033B000112389F0002309F499C180E28C0D883033 +:1033C00020F4802F0E941D2203C0802F0E942D22F6 +:1033D0000E9464228BC18C2D0E943C19002309F4A9 +:1033E000C3C180E28C0D883020F4802F0E942322FC +:1033F00003C0802F0E9433220E946422B5C1872D12 +:10340000807F972D9F70803211F4892F03C0892F00 +:103410008295807FCC2021F0F1E0CF16A1F01DC075 +:10342000112339F0002319F1013009F50E944D22D2 +:103430009BC1002319F0013009F496C189830E94D1 +:103440005022898110C1112321F0063008F08CC16F +:103450000EC0053008F088C106C1112359F00023C1 +:1034600031F0F701958190FF41C19F7095830E94D3 +:103470008B197AC1002309F4F6C03EC1872D8695C9 +:103480008695837090E0009719F0019761F06CC108 +:10349000112321F08C2D972D937002C080E090E0D5 +:1034A0000E945F1761C1112321F08C2D972D93701D +:1034B00002C080E090E00E94751756C18C2D112348 +:1034C00019F00E94872402C00E94EF240E947425F4 +:1034D0004BC1872D837009F052C0111145C18C2D4D +:1034E000829586958770880F880F9C2D9F70892EF6 +:1034F000912CA12CB12C082E04C0880C991CAA1C5C +:10350000BB1C0A94D2F7C4FE14C00FE010E020E008 +:1035100030E0B901A80104C0440F551F661F771F92 +:103520008A95D2F7CB01BA016095709580959095F8 +:1035300003C060E070E0CB01272D2695269523700F +:1035400030E02230310569F02330310589F06829F7 +:1035500079298A299B292130310571F00E940520A3 +:1035600003C1682979298A299B290E942120FCC04E +:103570000E940520C501B4010E94E91FF5C0112376 +:1035800019F0872D817001C08695882309F4ECC05D +:103590008C2D829586958770880F880F9C2D9F7043 +:1035A000892E912CA12CB12C082E04C0880C991CBA +:1035B000AA1CBB1C0A94D2F7C4FE14C00FE010E092 +:1035C00020E030E0B901A80104C0440F551F661F78 +:1035D000771F8A95D2F7CB01BA01609570958095D7 +:1035E000909503C060E070E0CB01272D26952695CD +:1035F0002370422F50E04230510569F043305105AD +:1036000089F0682979298A299B294130510571F06F +:103610000E94DF20A9C0682979298A299B290E9454 +:10362000FB20A2C00E94DF20C501B4010E94C3207C +:103630009BC08C2D90E0FC01E05EF109E531F105C5 +:1036400008F050C0E059FF4F0C94D82C0C2D0F708F +:10365000872D8F71112321F00E945C20802F07CFCE +:103660000E947D20802F0E9492197EC0112341F07C +:10367000053008F079C0872D8F710E94A22074C098 +:10368000063008F071C0F7CF112339F0872D8F7104 +:103690000E945C2069C01123C9F3872D8F710E949D +:1036A0007D2062C0112329F0872D8F710E94472051 +:1036B0005BC00E943D2058C0112351F0172D1F718F +:1036C000812F0E945C2063E0812F0E9470214CC0FA +:1036D00081E00E947921023008F446C082E00E9415 +:1036E000792142C0112331F0002381F28C2D0E94F8 +:1036F00074183AC0002389F28C2D0E943C1934C002 +:10370000472D4F706C2DC7010E94B8030E94611FA6 +:103710002BC0111129C0472D4F7050E04230510588 +:10372000B9F04CF44115510581F041305105E1F4F7 +:103730000E946F2819C04330510569F0443051058B +:1037400099F48C2D0E94C1280FC00E9458280CC0EB +:103750000E948B2809C00E949E2806C0472D4F70EA +:103760006C2DC7010E942E06DD20F9F00E946C210D +:1037700080FD1BC0F70112820E9466210E945C201E +:10378000C7010E94E41B0E9466210F90DF91CF9138 +:103790001F910F91FF90EF90DF90CF90BF90AF906F +:1037A0009F908F907F900C947D200F90DF91CF9110 +:1037B0001F910F91FF90EF90DF90CF90BF90AF904F +:1037C0009F908F907F9008950F931F93CF93DF93D7 +:1037D000EC01888199812B813C81232BB9F09F3F9B +:1037E00011F48F3F99F0CE010E942D04882371F0CF +:1037F000688179818A810E9462218C010E9417214F +:103800000E94DE1FB801CE010E949919DF91CF916D +:103810001F910F9108950E943A220E944A220E940D +:103820000F220E9464220E9425260E94742580E0B7 +:1038300090E00E945F1780E090E00C9475170E9462 +:103840002A220C940B1C0E945721292F22952F709D +:1038500030E02C3031054CF42A3031056CF4225024 +:10386000310922303105A8F407C02C30310569F048 +:103870002F30310551F00DC0803F69F018F4803EC3 +:1038800040F409C0843F29F406C093FB882780F9DF +:10389000089580E0089581E00895CF93DF9300D0EC +:1038A00000D01F92CDB7DEB70F900F900F900F9002 +:1038B0000F90DF91CF910895CF93DF9300D000D088 +:1038C00000D0CDB7DEB726960FB6F894DEBF0FBE98 +:1038D000CDBFDF91CF9108951F93CF93DF93C09118 +:1038E0009D0216E080919E02C81799F0D0E01C9FBF +:1038F000F0011D9FF00D1124E156FD4F40815181D3 +:1039000062817381848195810E945C1C2196C770BD +:10391000E9CFDF91CF911F9108954091CF0250914F +:10392000D0026091D1027091D2028091D302909125 +:10393000D4020C945C1C8091D40282958F7009F0A3 +:1039400054C08091D102882309F44FC080919D0218 +:10395000A0919E026091CF027091D0024091D2025C +:103960005091D302B6E08A1709F43FC090E04115A8 +:103970005105C1F17F3F11F46F3FA1F1B89FF001F4 +:10398000B99FF00D1124E156FD4F218172132AC019 +:103990002081621327C02281211124C02381348118 +:1039A0002417350710F421503109241B350B283C0E +:1039B0003105C0F42091D4022F7020612093D402ED +:1039C00026E0289FF001299FF00D1124EC55FD4FB2 +:1039D00080818F70806180838FEC92E00E94E41B75 +:1039E0000C946C1C01968770BECF0895CF92DF9225 +:1039F000EF92FF920F931F93CF93DF93CDB7DEB774 +:103A000062970FB6F894DEBF0FBECDBF8C0185E084 +:103A1000F801DE011D9601900D928A95E1F7D8011B +:103A20004C9111965C91119712966C911297139686 +:103A3000CD90DC9014973091CF027091D00280919C +:103A4000D2029091D302009709F46BC17F3F19F421 +:103A50003F3F09F466C1E090D102EE2009F4C0C0F6 +:103A60002091D402C816D90628F0F601E81BF90BFC +:103A7000CF0104C0809590958C0D9D1DFF24F3947B +:103A8000883C910578F0F12C207F09F0C6C07C2D90 +:103A9000D98AC88A89890E944D1C8FEC92E00E94C5 +:103AA000E41BB1C0822F807F09F046C0751314C09B +:103AB000341312C0611110C02F7020612093D40202 +:103AC0000E948D1C8FEC92E00E94E41B8091D40236 +:103AD000D80115968C932EC0CD2819F15F3F11F4B3 +:103AE0004F3FF9F0F62E61111CC080919D0220918C +:103AF0009E0236E0821709F45AC090E0389FF00128 +:103B0000399FF00D1124E156FD4F7181571306C006 +:103B10007081471303C07281711103C001968770D1 +:103B2000E9CFF62E662309F418C18091D402816092 +:103B30008093D402F12C11C1751308C0341306C050 +:103B4000611104C08091D402D801C3C04D875E8743 +:103B50008D859E856A8B0E94231C6A898823E1F1EA +:103B60006623D1F12091D402822F82958F7090E04C +:103B7000029774F08091CF029091D00298878F8342 +:103B80001986DB86CA862C87CE0107960E94E41B25 +:103B900086E0F801AFECB2E001900D928A95E1F772 +:103BA0000E949B1C0E948D1CFF24F394D6C04D875D +:103BB0005E878D859E850E945721292F22952F7023 +:103BC00030E0223031050CF0BCC09F7009F0B6C067 +:103BD000805E883008F4C1C0C8010E94E41BE4CFB5 +:103BE000C816D90608F453C0F601E81BF90BCF013B +:103BF000883C910508F450C0F12C7C2DD98AC88AE4 +:103C000089890E944D1CEFECF2E086E0DF011D92F5 +:103C10008A95E9F70E948D1CA0C0751314C0341357 +:103C200012C0611110C08091D402F8018583C801CF +:103C30000E94E41B86E0EFECF2E0DF011D928A9522 +:103C4000E9F7FE2C8AC04D875E878D859E856A8B3D +:103C50000E94231C6A89882309F4BECF662309F4D5 +:103C6000BBCF2091D402822F82958F7090E0029773 +:103C70000CF48ECF8091CF029091D0029A838983E9 +:103C80001B82DD82CC822E83CE0101967FCF809570 +:103C900090958C0D9D1DACCFF62E662309F49CCF1C +:103CA00075132EC034132CC02091D40220FD1FC0E8 +:103CB000822F82958F70D9F0D80115962C93159785 +:103CC0008F3049F08F5F982F9295907F822F8F7061 +:103CD000892B15968C93C8010E94E41B86E0F8019D +:103CE000AFECB2E001900D928A95E1F793CF86E0B8 +:103CF000F801AFECB2E001900D928A95E1F72DC08A +:103D00004D875E878D859E850E94231C811140CF43 +:103D10008091D40281608093D402C8010E94E41B88 +:103D20001CC0662309F458CF4D875E878D859E851C +:103D30000E94231C882309F44FCF2ACF811148CF3A +:103D40000CC0243031050CF047CF9F7009F440CFF0 +:103D5000F8019581907F09F03BCF8F2D62960FB6C9 +:103D6000F894DEBF0FBECDBFDF91CF911F910F91B1 +:103D7000FF90EF90DF90CF9008951F93CF93DF9344 +:103D8000CDB7DEB72C970FB6F894DEBF0FBECDBF10 +:103D90004F83588769877A878B879C87CE010796E0 +:103DA0000E94F61C882369F08F8198852A853B85BF +:103DB000232BF1F19F3F09F063C08F3F09F060C0F2 +:103DC00037C086E0FE013796DE01119601900D9214 +:103DD0008A95E1F76F817885EA85FB85309741F117 +:103DE0007F3F11F46F3F21F120919E0230E0C90125 +:103DF00001968770992740919D0250E0841795079E +:103E000009F447C069837A83FD83EC8396E0929F2F +:103E1000D001939FB00D1124A156BD4FFE013196E4 +:103E200001900D929A95E1F780939E020E946C1C7E +:103E300016E080919D0290919E028917C1F1189F12 +:103E4000C001112481569D4F0E94F61C882379F1F0 +:103E5000E0919D021E9FF0011124E156FD4F40812B +:103E6000518162817381848195810E945C1C809163 +:103E70009D0290E001968770992780939D02D9CF8B +:103E80004F81588569857A858B859C850E945C1C4D +:103E9000CFCF0E941F1C10929E0210929D02EFEC49 +:103EA000F2E086E0DF011D928A95E9F7C1CF2C96FA +:103EB0000FB6F894DEBF0FBECDBFDF91CF911F913B +:103EC0000895EF92FF920F931F93CF93DF938C018E +:103ED000009709F46CC0F12CEE24E394E8012196DC +:103EE000F8018491843740F4843008F051C0813067 +:103EF00081F0823019F15BC0853709F444C0A8F124 +:103F00009CE7980F903708F052C08F770E943C19B9 +:103F100041C00E5F1F4FFE01C49180E28C0F8830BC +:103F200048F4C7708E2D01C0880FCA95EAF70E9429 +:103F30003D2214C08C2F0E9474182DC00E5F1F4F9D +:103F4000FE01C49180E28C0F883058F4C7708E2D2A +:103F500001C0880FCA95EAF70E9443220E9464229A +:103F60001AC08C2F0E943C1916C00E5F1F4FFE0115 +:103F7000C491CC2381F08FE99FE00197F1F700C055 +:103F80000000C150F6CF0E5F1F4FFE01F49003C03A +:103F90000E9474188E018F2D882309F49FCFEFE9BA +:103FA000FFE03197F1F700C000008150F5CFDF91BD +:103FB000CF911F910F91FF90EF9008950895609316 +:103FC000D9027093DA028093DB029093DC020C94A6 +:103FD0000B1C0F931F930091D9021091DA022091CC +:103FE000DB023091DC02DC01CB01802B912BA22B78 +:103FF000B32B8093D9029093DA02A093DB02B093A3 +:10400000DC021F910F910C940B1C0F931F930091D6 +:10401000D9021091DA022091DB023091DC02DC013E +:10402000CB0180239123A223B3238093D9029093C1 +:10403000DA02A093DB02B093DC021F910F910C9483 +:104040000B1C0F931F930091D9021091DA0220915B +:10405000DB023091DC02DC01CB0180279127A22713 +:10406000B3278093D9029093DA02A093DB02B09336 +:10407000DC021F910F910C940B1C1092D502109230 +:10408000D6021092D7021092D8020C940B1C41E079 +:1040900050E060E070E004C0440F551F661F771FBA +:1040A0008A95D2F74093D5025093D6026093D702F7 +:1040B0007093D8020C940B1C41E050E060E070E07B +:1040C00004C0440F551F661F771F8A95D2F7809151 +:1040D000D5029091D602A091D702B091D802482B78 +:1040E000592B6A2B7B2B4093D5025093D6026093B9 +:1040F000D7027093D8020C940B1C41E050E060E0B2 +:1041000070E004C0440F551F661F771F8A95D2F7D1 +:1041100040955095609570958091D5029091D6020A +:10412000A091D702B091D802482359236A237B2358 +:104130004093D5025093D6026093D7027093D80271 +:104140000C940B1C41E050E060E070E004C0440FB0 +:10415000551F661F771F8A95D2F78091D5029091DF +:10416000D602A091D702B091D802482759276A27D2 +:104170007B274093D5025093D6026093D702709369 +:10418000D8020C940B1C0F931F930091D502109131 +:10419000D6022091D7023091D802DC01CB01802BCE +:1041A000912BA22BB32B8093D5029093D602A09390 +:1041B000D702B093D8021F910F910C940B1C0F9350 +:1041C0001F930091D5021091D6022091D702309111 +:1041D000D802DC01CB0180239123A223B323809357 +:1041E000D5029093D602A093D702B093D8021F9124 +:1041F0000F910C940B1C0F931F930091D5021091FB +:10420000D6022091D7023091D802DC01CB01802761 +:104210009127A227B3278093D5029093D602A0932B +:10422000D702B093D8021F910F910C940B1C0895E4 +:10423000CF92DF92EF92FF920F931F93CF93DF9372 +:104240008C01C090D902D090DA02E090DB02F090AD +:10425000DC028091D5029091D602A091D702B09154 +:10426000D802C82AD92AEA2AFB2ACFE1D0E0D7010E +:10427000C6010C2E04C0B695A795979587950A940C +:10428000D2F780FF06C0B8018C2F0E94B3080197B7 +:1042900021F4219760F780E001C08C2FDF91CF914E +:1042A0001F910F91FF90EF90DF90CF900895CF93E3 +:1042B000DF93EC010E941821BE010E94B308DF9138 +:1042C000CF910895CB010E94572108958091DD027E +:1042D00085958595859508958091DD02877008956F +:1042E00098E0899F90011124262B2093DD020C94E5 +:1042F0005C202091DD02809582238093DD02982F3F +:10430000977069F430E0482F552747FD50952417E2 +:10431000350729F08595859585950C947D20089520 +:104320009091DD02977081E009F480E0089590910A +:104330001501992321F090911601911109C0209146 +:10434000170130911801F90132969FEF40E01FC02C +:10435000982F9695969596959F3050F5E091170178 +:10436000F0911801E90FF11D877021E030E0A901FB +:1043700002C0440F551F8A95E2F7CA019181892B2B +:10438000818308959F3F39F04F5F4E3041F0519146 +:104390005813F8CF0DC05111F7CF942FF5CF9F3F91 +:1043A00039F0F901E90FF11D97FDFA95828308951F +:1043B000089590911501992321F090911601911182 +:1043C00009C02091170130911801F9013296205F40 +:1043D0003F4F1FC0982F9695969596959F30F0F475 +:1043E000E0911701F0911801E90FF11D877021E0AC +:1043F00030E0A90102C0440F551F8A95E2F7CA01B7 +:10440000809591818923818308953196E217F3077E +:1044100029F090819813F9CF1082F7CF089581E0A9 +:1044200090E0E0911701F0911801E80FF91F108258 +:10443000019680319105A9F708959091F102892B99 +:104440008093F102089580959091F10289238093E1 +:10445000F10208951092F10208959091F002892BD3 +:104460008093F002089580959091F00289238093C3 +:10447000F00208951092F00208959091EF02892BB6 +:104480008093EF02089580959091EF0289238093A5 +:10449000EF0208951092EF0208958093DE020895CE +:1044A0001092DE0208958091170190911801FC018D +:1044B00031969C01205F3F4F80E0919191118F5F79 +:1044C000E217F307D1F70895E0911701F091180171 +:1044D0008091F1028083E0911701F09118019081A1 +:1044E0008091F002892B8083E0911701F0911801EF +:1044F00090818091EF02892B80838091DE02882356 +:1045000061F0E0911701F09118019081892B80836F +:104510000E94532281111092DE0280911701909126 +:1045200018010C94491720E0009739F0AC01415074 +:104530005109842395232F5FF7CF822F089580910F +:104540001303843039F11092F30220E488E190E003 +:104550000FB6F894A895809360000FBE209360007A +:1045600080E00E941F0380E00E944D0983B7817F95 +:10457000846083BF83B7816083BF7894889583B755 +:104580008E7F83BF88E10FB6F8948093600010920D +:1045900060000FBE08950895089580E00E941F03F3 +:1045A0000E94CB220E94A8090E94CC220E942D0AC0 +:1045B00091E0811101C090E0892F08950E941F1C95 +:1045C00080E00E941F030E9447280E943D170C9420 +:1045D0004D091F920F920FB60F9211248F939F9344 +:1045E000AF93BF938091F302811113C08091F402C5 +:1045F0009091F502A091F602B091F7024196A11DAB +:10460000B11D8093F4029093F502A093F602B0934B +:10461000F702BF91AF919F918F910F900FBE0F90B6 +:104620001F90189582E084BD93E095BD9AEF97BDE9 +:1046300080936E0008952FB7F8948091F4029091C2 +:10464000F502A091F602B091F7022FBF0895CF9224 +:10465000DF92EF92FF920F931F932FB7F894409140 +:10466000F4025091F5026091F6027091F7022FBFAB +:104670006A017B01EE24FF248C0120E030E0C016AB +:10468000D106E206F30610F4415051099A01281BA5 +:10469000390BC9011F910F91FF90EF90DF90CF90E0 +:1046A00008951F920F920FB60F9211248F939F932C +:1046B000AF93BF938091F4029091F502A091F6021E +:1046C000B091F7020196A11DB11D8093F402909361 +:1046D000F502A093F602B093F702BF91AF919F91BC +:1046E0008F910F900FBE0F901F9018950E943A1453 +:1046F000F8942FEF87EA91E6215080409040E1F74F +:1047000000C0000087E090EBDC0180931E039093D3 +:104710001F03A0932003B09321039CE088E10FB610 +:10472000F894A895809360000FBE90936000FFCF2F +:104730000E94D723811102C00E94B3230E94E2236A +:104740008093F2020E94EA2380931C0387FB882750 +:1047500080F9809316010E94E623682F70E080E0C4 +:1047600090E00C94DF1F6DEE7EEF80E090E00E9401 +:10477000FE2C60E082E090E00E94EC2C60E083E0A0 +:1047800090E00E94EC2C60E084E090E00E94EC2C31 +:1047900060E085E090E00E94EC2C60E086E090E034 +:1047A0000E94EC2C6FEF87E090E00C94EC2C80E002 +:1047B00090E00E94E62C21E08D3E9E4F09F020E023 +:1047C000822F089582E090E00C94DE2C83E090E04C +:1047D0000C94DE2C84E090E00C94DE2C682F84E0B6 +:1047E00090E00C94EC2C86E090E00C94DE2C682F8A +:1047F00086E090E00C94EC2C87E090E00C94DE2CAA +:10480000682F87E090E00C94EC2C8091FA0280FFF6 +:104810000BC060911C0185E0689FB0011124759563 +:104820006795759567952BC081FF09C060911C0144 +:1048300085E0689FB00111247595679520C082FFBF +:1048400007C060911C0185E0689FB001112417C06A +:104850009091FB029923D1F060911B01961788F784 +:1048600020911C0185E0289F90011124929FA001B6 +:10487000939F500D112470E0CA010E94C42C60382F +:10488000710540F46115710539F002C065E070E012 +:10489000862F08958FE7089581E008958091FA02A8 +:1048A00080FF08C060911A0170E075956795759555 +:1048B000679521C081FF06C060911A0170E075956F +:1048C000679519C082FF04C060911A0170E010C0A2 +:1048D0009091FB029923C1F0609119019617A0F7FE +:1048E00080911A01899FC001112470E00E94C42C9C +:1048F0006038710528F46115710521F0862F08953F +:104900008FE7089581E0089561E070E0F4CF803F83 +:1049100021F40E940524819504C0813F29F40E945E +:1049200005248093FE020895823F21F40E9405240D +:10493000819504C0833F29F40E9405248093FD02E1 +:104940000895893F19F40E944E2405C08A3F31F42E +:104950000E944E2481958093FF0208958B3F21F49D +:104960000E944E24819504C08C3F29F40E944E245D +:10497000809300030895843F21F48091FC028160BC +:1049800017C0853F21F48091FC02826011C0863FF0 +:1049900021F48091FC0284600BC0873F21F4809158 +:1049A000FC02886005C0883F31F48091FC02806180 +:1049B0008093FC0208958D3F21F48091FA0281607A +:1049C0000BC08E3F21F48091FA02826005C08F3FB8 +:1049D00029F48091FA0284608093FA020895803F5E +:1049E00039F48091FE0287FF6CC01092FE0269C00C +:1049F000813F29F48091FE021816BCF362C09091A9 +:104A0000FD02823F29F497FF5CC01092FD0259C05D +:104A1000833F19F41916CCF354C0893F41F48091B7 +:104A2000FF0218160CF04DC01092FF024AC08A3FD8 +:104A300029F48091FF0287FF44C0F6CF8B3F39F401 +:104A40008091000387FF3DC0109200033AC08C3F65 +:104A500029F4809100031816BCF333C0843F21F47D +:104A60008091FC028E7F17C0853F21F48091FC026B +:104A70008D7F11C0863F21F48091FC028B7F0BC09B +:104A8000873F21F48091FC02877F05C0883F31F485 +:104A90008091FC028F7E8093FC0213C08D3F21F435 +:104AA0008091FA028E7F0BC08E3F21F48091FA0232 +:104AB0008D7F05C08F3F29F48091FA028B7F809310 +:104AC000FA028091FD0281110EC08091FE028111D7 +:104AD0000AC08091FF02811106C0809100038111FC +:104AE00002C01092FB0208958CEF92E00E945417CE +:104AF0000E941B239093F9028093F80208951F935C +:104B0000CF93DF938091F8029091F9020E942723BE +:104B1000AC019091FB02992321F020911D0130E01E +:104B200006C020911E018AE0289F9001112442179F +:104B3000530708F486C08091FD02C091FE02D09117 +:104B4000FF0210910003811107C0C11176C0D1117D +:104B500074C0111172C075C09F3F19F09F5F909390 +:104B6000FB02181624F40E9405248093FD02809114 +:104B7000FD0287FF05C00E94052481958093FD02F8 +:104B80001C1624F40E9405248093FE028091FE02EC +:104B900087FF05C00E94052481958093FE026091E5 +:104BA000FD02662339F1C091FE02CC2319F177276B +:104BB00067FD7095872F972F0E94E62923E333E343 +:104BC00043E35FE30E94F62A0E94B3296093FD024B +:104BD0006C2F772767FD7095872F972F0E94E62906 +:104BE00023E333E343E35FE30E94F62A0E94B32901 +:104BF0006093FE021D1624F40E944E248093FF024F +:104C00008091FF0287FF05C00E944E24819580930A +:104C1000FF02111624F40E944E2480930003809119 +:104C2000000387FF05C00E944E24819580930003F6 +:104C3000DF91CF911F910C9474259F3F09F08ECF87 +:104C400096CFDF91CF911F910895ECEFF2E085E0D0 +:104C5000DF011D928A95E9F71092FB021092FA0289 +:104C60000895833081F128F4813059F08230D1F0F9 +:104C70000895853009F449C0B8F1863009F456C06A +:104C8000089580911E01262F30E0280F311D2F3FFF +:104C9000310524F4680F60931E0108958FEF80930F +:104CA0001E01089580911D01262F30E0280F311D2F +:104CB0002F3F310524F4680F60931D0108958FEF95 +:104CC00080931D01089580911C01262F30E0280F4C +:104CD000311D2F3F310524F4680F60931C010895A6 +:104CE0008FEF80931C01089580911B01262F30E0E7 +:104CF000280F311D2F3F310524F4680F60931B01ED +:104D000008958FEF80931B01089580911A01262F3B +:104D100030E0280F311D2F3F310524F4680F6093D8 +:104D20001A0108958FEF80931A0108958091190157 +:104D3000262F30E0280F311D2F3F310524F4680F56 +:104D40006093190108958FEF8093190108958330BE +:104D500011F128F4813049F0823091F008958530C6 +:104D600081F120F18630C1F1089580911E0168170C +:104D700020F4861B80931E01089510921E01089551 +:104D800080911D01681720F4861B80931D010895F2 +:104D900010921D01089580911C01681720F4861B54 +:104DA00080931C01089510921C01089580911B01AD +:104DB000681720F4861B80931B01089510921B0135 +:104DC000089580911A01681720F4861B80931A01B8 +:104DD000089510921A01089580911901681720F41E +:104DE000861B8093190108951092190108950F935D +:104DF0001F93873208F048C08E3108F08DC0803193 +:104E000009F477C008F5873009F461C068F486308A +:104E100009F09DC08091F202817F8E7F8093F20223 +:104E200081E08093020394C08B3009F489C08E30F6 +:104E300009F08DC08091F20282FB222720F991E0D7 +:104E4000922790FB82F95EC0863109F479C060F444 +:104E5000813109F07CC00E941F1C9091160181E0F5 +:104E60008927809316016CC0893109F469C08B31A0 +:104E700009F06DC08091F20281FB222720F991E0B8 +:104E8000922790FB81F93EC0883309F459C050F451 +:104E9000893209F457C0853309F454C0873209F4C4 +:104EA00051C055C0833409F44DC028F48A3308F446 +:104EB0004EC0895332C0883409F049C00E941F1C7B +:104EC0000E945D0A0E9424040E94762339C09091BA +:104ED000F202892F8095817080FB90F929F096600D +:104EE00098609093F20234C0997F977F9093F2027A +:104EF00027C08091F20283FB222720F991E09227BC +:104F000090FB83F98093F2029923D1F08091F20211 +:104F100081608093F20214C08D5141E050E060E066 +:104F200070E08A019B0104C0000F111F221F331F74 +:104F30008A95D2F7C901B8010E94DF1F0E941F1C89 +:104F400081E006C061E070E080E090E0F5CF80E0B5 +:104F50001F910F91089580E0089580E00895CF9308 +:104F6000C82F80910203813069F018F08230C9F1B6 +:104F700084C0E0911701F09118018081823209F01C +:104F80007EC007C0E0911701F09118018081823244 +:104F900061F48C2F0E94AB27811104C08C2F0E94DA +:104FA000F7261DC081E090E01AC08C2F0E94AD272B +:104FB000811114C0C43179F048F4CB3079F0C0319C +:104FC00009F061C082E08093020308C0C93219F081 +:104FD000C83321F058C01092020355C081E081709F +:104FE00054C0C93291F120F5C43179F1B0F4C73021 +:104FF00009F047C08EE180931E0182E380931D017A +:105000008AE080931C0184E180931B0188E08093F7 +:105010001A0188E28093190134C0CE51C63088F558 +:10502000EC2FF0E0EA54FE4F80818093010329C009 +:10503000CE34E9F020F4CB3421F56AE013C0C13559 +:1050400079F0C235F1F461E00DC08091010388234D +:1050500019F01092010315C081E08093020315C07E +:1050600061E006C0809101030E9431260AC06AE017 +:10507000809101030E94A72604C01092020380E0E1 +:1050800004C081E002C080E0AACFCF9108950E94C1 +:10509000D723811102C00E94B3230E94F32380937F +:1050A0001D0380FF02C0869501C080E00C941F03A1 +:1050B00080911D03982F9695292F30E023303105DC +:1050C0004CF49F5F990F8170892B816080931D0341 +:1050D0000E94F72380911D0386950C941F038091F5 +:1050E0001D03982F969591F09158990F8170892BF7 +:1050F00080931D038E7F91E009F490E080911D0361 +:1051000090FB80F980931D030E94F72380911D037B +:1051100086950C941F0380911D03982F909590FB0A +:1051200080F980931D030E94F72380911D0380FF67 +:1051300002C0869501C080E00C941F0390911D036E +:10514000892F86958F5F8F779170843028F4880F30 +:10515000892B80931D0302C090931D0380911D0332 +:105160008E7F91E009F490E080911D0390FB80F91F +:1051700080931D030E94F72380911D0386950C9454 +:105180001F0320911D03922F96958927982F990F21 +:10519000822F8170892B80931D038E7F91E009F40B +:1051A00090E080911D0390FB80F980931D030E9485 +:1051B000F72380911D0386950C941F0380911D0396 +:1051C000869508955058BB27AA270ED0D1C1C2D1C9 +:1051D00030F0C7D120F031F49F3F11F41EF4B7C175 +:1051E0000EF4E095E7FB9FC1E92FD3D180F3BA1706 +:1051F000620773078407950718F071F49EF5EBC1F9 +:105200000EF4E0950B2EBA2FA02D0B01B9019001E1 +:105210000C01CA01A0011124FF27591B99F0593F25 +:1052200050F4503E68F11A16F040A22F232F342F6D +:105230004427585FF3CF469537952795A795F040BB +:105240005395C9F77EF41F16BA0B620B730B840BD0 +:10525000BAF09150A1F0FF0FBB1F661F771F881F88 +:10526000C2F70EC0BA0F621F731F841F48F48795E0 +:1052700077956795B795F7959E3F08F0B3CF9395CF +:10528000880F08F09927EE0F97958795089527D1F5 +:1052900008F481E008950CD06BC163D140F05AD17D +:1052A00030F021F45F3F19F03EC1511195C14FC15B +:1052B00070D198F39923C9F35523B1F3951B550B7E +:1052C000BB27AA2762177307840738F09F5F5F4FD9 +:1052D000220F331F441FAA1FA9F333D00E2E3AF01A +:1052E000E0E830D091505040E695001CCAF729D034 +:1052F000FE2F27D0660F771F881FBB1F2617370783 +:105300004807AB07B0E809F0BB0B802DBF01FF27B2 +:1053100093585F4F2AF09E3F510568F004C15CC16D +:105320005F3FECF3983EDCF3869577956795B795EC +:10533000F7959F5FC9F7880F911D9695879597F907 +:105340000895E1E0660F771F881FBB1F6217730780 +:105350008407BA0720F0621B730B840BBA0BEE1F95 +:1053600088F7E095089504D06894B11135C1089587 +:1053700018D188F09F5790F0B92F9927B751A0F016 +:10538000D1F0660F771F881F991F1AF0BA95C9F7D9 +:1053900012C0B13081F01FD1B1E008951CC1672F58 +:1053A000782F8827B85F39F0B93FCCF38695779589 +:1053B0006795B395D9F73EF4909580957095619572 +:1053C0007F4F8F4F9F4F0895E89409C097FB3EF49D +:1053D00090958095709561957F4F8F4F9F4F992342 +:1053E000A9F0F92F96E9BB279395F69587957795C0 +:1053F0006795B795F111F8CFFAF4BB0F11F460FF80 +:105400001BC06F5F7F4F8F4F9F4F16C0882311F0D7 +:1054100096E911C0772321F09EE8872F762F05C0EB +:10542000662371F096E8862F70E060E02AF09A9586 +:10543000660F771F881FDAF7880F9695879597F97B +:10544000089588D018F011F08CD038F480C0C4C012 +:10545000E92F9FD0B0F35523C9F3E7FB6217730719 +:1054600084079507A8F199F3E92FFF2788232AF0ED +:105470003197660F771F881FDAF7952F552744233A +:1054800032F091505040220F331F441FD2F7BB27F8 +:10549000E91BF50B621B730B840BB109C1F222F4FB +:1054A000620F731F841FB11D31972AF0660F771F9B +:1054B000881FBB1FEFCF915050405AF041F0882316 +:1054C00032F0660F771F881F91505040C1F79395B7 +:1054D00030C08695779567959F5FD9F7F8CF990F7C +:1054E0000008550FAA0BE0E8FEEF16161706E807AE +:1054F000F907C0F012161306E407F50798F0621BCF +:10550000730B840B950B39F40A2661F0232B242BA3 +:10551000252B21F408950A2609F4A140A6958FEFC2 +:10552000811D811D089597F99F6780E870E060E014 +:1055300008959F3F31F0915020F4879577956795B6 +:10554000B795880F911D9695879597F908959FEFC8 +:1055500080EC089500240A9416161706180609060A +:10556000089500240A9412161306140605060895D9 +:10557000092E0394000C11F4882352F0BB0F40F461 +:10558000BF2B11F460FF04C06F5F7F4F8F4F9F4FA1 +:10559000089557FD9058440F551F59F05F3F71F023 +:1055A0004795880F97FB991F61F09F3F79F087958A +:1055B0000895121613061406551FF2CF4695F1DF13 +:1055C00008C0161617061806991FF1CF86957105A3 +:1055D000610508940895E894BB2766277727CB01D7 +:1055E00097F908957CDF08F48FEF08950BD0C0CFB2 +:1055F000B1DF28F0B6DF18F0952309F094CFA7CFDC +:105600001124EACFC6DFA0F3959FD1F3950F50E0A8 +:10561000551F629FF001729FBB27F00DB11D639F64 +:10562000AA27F00DB11DAA1F649F6627B00DA11D0A +:10563000661F829F2227B00DA11D621F739FB00DB0 +:10564000A11D621F839FA00D611D221F749F332720 +:10565000A00D611D231F849F600D211D822F762FB9 +:105660006A2F11249F5750408AF0E1F088234AF0B6 +:10567000EE0FFF1FBB1F661F771F881F9150504002 +:10568000A9F79E3F510570F04ECFA6CF5F3FECF3D8 +:10569000983EDCF3869577956795B795F795E795EE +:1056A0009F5FC1F7FE2B880F911D9695879597F9FF +:1056B0000895FA01EE0FFF1F30962105310599F18B +:1056C0006115710561F48038BFE39B0749F1689467 +:1056D0009038810561F08038BFEF9B0741F0992336 +:1056E00042F5FF3FE1053105210511F1E8940894E9 +:1056F000E795D901AA2329F4AB2FBE2FF85FD0F389 +:1057000010C0FF5F70F4A695E0F7F73950F019F07C +:10571000FF3A38F49F779F930CD00F9007FC905876 +:1057200008953EF014CF60E070E080E89FE30895B4 +:105730004FE79F775F934F933F932F939ED02F9187 +:105740003F914F915F9152DF05C019F40EF0EBCEFF +:1057500042CFFDCE26DFC8F39638C0F707F80F9288 +:10576000E8942BE33AEA48EB5FE74EDF0F920F92A3 +:105770000F924DB75EB70F92C0D0EAE0F1E016D0BD +:105780004F915F91EF91FF91E595EE1FFF1F49F05B +:10579000FE57E0684427EE0F441FFA95E1F7419564 +:1057A000550B32D00F9007FE26C00895DF93CF939C +:1057B0001F930F93FF92EF92DF927B018C0168940D +:1057C00005C0DA2EEF011EDFFE01E894A5912591B8 +:1057D000359145915591AEF3EF0106DDFE0197013C +:1057E000A801DA9479F7DF90EF90FF900F911F9165 +:1057F000CF91DF9108959B01AC0160E070E080E8FB +:105800009FE349CD90CE95CECCDEE8F39923D9F332 +:10581000940F511DBBF39150504094F059F08823E0 +:1058200032F0660F771F881F91505040C1F79E3F9E +:10583000510544F7880F911D9695879597F908951E +:105840005F3FACF0983E9CF0BB27869577956795B7 +:10585000B79508F4B1609395C1F7BB0F58F711F4F1 +:1058600060FFE8CF6F5F7F4F8F4F9F4FE3CFB4CE86 +:105870000EF05FCE6CCE689456CE93DEC8F39923BB +:10588000D1F3C6F3DF93CF931F930F93FF92C92FEA +:10589000DD2788232AF02197660F771F881FDAF704 +:1058A00020E030E040E85FEB9FE3883920F0803E65 +:1058B00030F021968F7787DCE2E3F1E003C083DCF0 +:1058C000EFE5F1E073DF8B01BE01EC01FB2E6F57BA +:1058D00071097595771F880B990B78DD28E132E700 +:1058E00041E35FE38FDEAF2D9801AE01FF900F9192 +:1058F0001F91CF91DF9178DC3BCEFA01DC01AA0F3A +:10590000BB1F9B01AC01BF5728F422273327442734 +:1059100050781FC0B75188F4AB2F002446953795B7 +:105920002795011CA395D2F3002069F0220F331FA5 +:10593000441FB395DAF30DD045CC61307105A0E872 +:105940008A07B94630F49B01AC0166277727882780 +:105950009078309621F020833183428353830895D9 +:10596000AA1BBB1B51E107C0AA1FBB1FA617B70785 +:1059700010F0A61BB70B881F991F5A95A9F78095A1 +:105980009095BC01CD01089597FB072E16F4009465 +:1059900007D077FD09D00E94B02C07FC05D03EF45B +:1059A000909581959F4F0895709561957F4F0895CB +:1059B000EE0FFF1F0590F491E02D0994F999FECFA9 +:1059C00092BD81BDF89A992780B50895A8E1B0E00D +:1059D00042E050E00C94062D262FF999FECF92BD9F +:1059E00081BDF89A019700B4021639F01FBA20BDA4 +:1059F0000FB6F894FA9AF99A0FBE08950196272FD8 +:105A00000E94ED2C0C94EC2CDC01CB01FC01F999EB +:105A1000FECF06C0F2BDE1BDF89A319600B40D92FA +:0C5A200041505040B8F70895F894FFCFB3 +:105A2C00640007000CFF0000003F644110CF10AC75 +:105A3C0010781044100101DF022808140A321E00ED +:105A4C0002040507090B0C0E1011131517181A1C5C +:105A5C001D1F2123242628292B2D2F303234353796 +:105A6C00393B1F0F03764F5F6F7F496943790959A3 +:105A7C0053633149803F5D8B803FF8BF803FCAE163 +:105A8C00803F73ED803FCAE1803FF8BF803F5D8B64 +:105A9C00803F3149803F0000803FF16D7F3F75EAC8 +:105AAC007E3F4C827E3F833F7E3F84287E3F833FF8 +:105ABC007E3F4C827E3F75EA7E3FF16D7F3F00005A +:105ACC00803F3F4D36394905FC04C6048D04200443 +:105ADC00390452046B04010203040506070809008B +:00000001FF diff --git a/keyboards/planck/keymaps/nico/keymap.c b/keyboards/planck/keymaps/nico/keymap.c new file mode 100644 index 000000000..e81fd80a4 --- /dev/null +++ b/keyboards/planck/keymaps/nico/keymap.c @@ -0,0 +1,69 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "planck.h" +#include "backlight.h" + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QW 0 +#define _CM 1 +#define _DV 2 +#define _LW 3 +#define _RS 4 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_QW] = { /* Qwerty */ + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(0), KC_ESC, KC_LALT, KC_LGUI, F(1), KC_SPC, KC_SPC, F(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_CM] = { /* Colemak */ + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(0), KC_ESC, KC_LALT, KC_LGUI, F(1), KC_SPC, KC_SPC, F(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_DV] = { /* Dvorak */ + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + {M(0), KC_ESC, KC_LALT, KC_LGUI, F(1), KC_SPC, KC_SPC, F(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_RS] = { /* RAISE */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, + {M(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F14, KC_F15, KC_TRNS, KC_MFFD, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[_LW] = { /* LOWER */ + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, + {M(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F14, KC_F15, KC_TRNS, KC_MFFD, KC_VOLD, KC_VOLU, KC_MPLY} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_KEY(MO(_LW), KC_BSPC), // Tap for backspace, hold for LOWER + [2] = ACTION_LAYER_TAP_KEY(MO(_RS), KC_ENT), // Tap for enter, hold for RAISE +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + backlight_step(); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboards/planck/keymaps/pete/Makefile b/keyboards/planck/keymaps/pete/Makefile new file mode 100644 index 000000000..20bba3f49 --- /dev/null +++ b/keyboards/planck/keymaps/pete/Makefile @@ -0,0 +1,15 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +AUDIO_ENABLE = no +NKRO_ENABLE = yes + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/pete/README.md b/keyboards/planck/keymaps/pete/README.md new file mode 100644 index 000000000..3cf594f3a --- /dev/null +++ b/keyboards/planck/keymaps/pete/README.md @@ -0,0 +1,14 @@ +# Planck Layout by Pete + +This layout is based on the default layout but uses a FN key in the bottom left corner instead of the shift / backlight key. +On the FN layer you can do the following things + +- Step through back light +- Put a mac to sleep +- The Fxx keys in a block to click with the right hand +- The delete key in the upper right corner +- Quick access to screenshot functions +- Control volume and media playback +- Home/PgDown/PgUp/End buttons where the arrow keys are + +Pressing the lower and raise buttons allows to reset and change from QWERT to Colemak or Dvorak. diff --git a/keyboards/planck/keymaps/pete/compiled.hex b/keyboards/planck/keymaps/pete/compiled.hex new file mode 100644 index 000000000..ddf70df50 --- /dev/null +++ b/keyboards/planck/keymaps/pete/compiled.hex @@ -0,0 +1,1143 @@ +:100000000C94F1020C9435030C9435030C943503D5 +:100010000C9435030C9435030C9435030C94350380 +:100020000C9435030C9435030C94D20D0C94A40E4F +:100030000C94061C0C9435030C9435030C94350376 +:100040000C9435030C9496030C9435030C943503EF +:100050000C9435030C946E1C0C9435030C943503EE +:100060000C9435030C9435030C9435030C94350330 +:100070000C9435030C9435030C9435030C94350320 +:100080000C9435030C9435030C9435030C94350310 +:100090000C9435030C9435030C9435030C94350300 +:1000A0000C9435030C9435030C943503FC030404C1 +:1000B0000E0416041E042F0458045804580458044F +:1000C0005804580458045804580458043B04110FA9 +:1000D000330F2110330F2110780F9B0F2110F00FD9 +:1000E0000310ED12ED121C131C135B137B13D114C0 +:1000F000D1148613D114361436149D14A614D114B9 +:10010000CB144314431443144314431443144314AF +:100110004314431443144314431443144314431427 +:1001200043145314611468146F1479140000000010 +:1001300000000000000000010204060A0F17202C36 +:100140003A4A5D71879DB3C7DAE9F5FCFFFCF5E932 +:10015000DAC7B39D87715D4A3A2C20170F0A06044F +:100160000201000000000000000000002B0014004D +:100170001A000800150017001C0018000C001200DF +:1001800013002A00290004001600070009000A00D5 +:100190000B000D000E000F0033003400E1001D00C5 +:1001A0001B00060019000500110010003600370082 +:1001B000380028000530E000E200E30003302C00A6 +:1001C0002C0004305000510052004F002B0014004E +:1001D0001A00090013000A000D000F0018001C008F +:1001E00033002A002900040015001600170007003C +:1001F0000B00110008000C0012003400E1001D008B +:100200001B000600190005000E0010003600370024 +:10021000380028000530E000E200E30003302C0045 +:100220002C0004305000510052004F002B003400CD +:100230003600370013001C0009000A0006001500F4 +:100240000F002A00290004001200080018000C000A +:1002500007000B001700110016003800E100330002 +:1002600014000D000E001B00050010001A001900FC +:100270001D0028000530E000E200E30003302C0000 +:100280002C0004305000510052004F0035021E0275 +:100290001F0220022102220223022402250226023A +:1002A00027022A00010001000100010001000100F5 +:1002B00001002D022E022F02300231020100010046 +:1002C0000100010001000100010001000100010026 +:1002D0000100010001000100010001000100010016 +:1002E00001000100AB00AA00A900AE0035001E000D +:1002F0001F002000210022002300240025002600EA +:1003000027002A0001000100010001000100010096 +:1003100001002D002E002F003000310001000100EF +:1003200001000100010001000100010001000100C5 +:1003300001000100010001000100010001000100B5 +:1003400001000100AB00AA00A900AE0083506603C3 +:10035000000000000000000000003A003B003C00EC +:100360003D004C0001001030A800AA00A9000000C8 +:1003700000003E003F0040004100200A0100350817 +:10038000AC00AE00AB00000000004200430044009F +:100390004500210A053001000100010000000000B5 +:1003A000000000004A004E004B004D00010001001B +:1003B0000100010001000100010001000100010035 +:1003C0000100010001000100010001000100010025 +:1003D0000100003001300230010001000100010085 +:1003E0000100010001000100010001000100010005 +:1003F00001000100010001000100010001000050A6 +:100400000050010001000100010001002803540018 +:1004100068006500200050006C0061006E00630001 +:100420006B0020004B006500790062006F006100E6 +:100430007200640000002C034F007200740068001A +:100440006F006C0069006E006500610072002000A2 +:100450004B006500790062006F006100720064006B +:10046000730000000403090409026D00040100A0E8 +:10047000FA09040000010301010009211101000132 +:10048000223F000705810308000A09040100010357 +:10049000010200092111010001224D00070582031C +:1004A00008000A09040200010300000009211101EB +:1004B00000012236000705830308000A090403002F +:1004C0000103000000092111010001223900070584 +:1004D00084031000011201100100000008EDFE600D +:1004E0006001000102000105010906A101050719CB +:1004F000E029E71500250195087501810205081915 +:100500000129059505750191029501750391010574 +:10051000071900297715002501957875018102C01A +:1005200005010980A101850216010026B7001A0104 +:10053000002AB700751095018100C0050C0901A1C2 +:10054000018503160100269C021A01002A9C0275EF +:100550001095018100C005010902A1010901A10056 +:100560000509190129051500250195057501810267 +:100570009501750381010501093009311581257F38 +:1005800095027508810609381581257F9501750842 +:100590008106050C0A38021581257F9501750881B1 +:1005A00006C0C005010906A101050719E029E715E4 +:1005B00000250195087501810295017508810105E5 +:1005C0000819012905950575019102950175039199 +:1005D000010507190029FF150025FF9506750881FB +:1005E00000C011241FBECFEFDAE0DEBFCDBF04B6DE +:1005F00003FE24C08091FB019091FC01A091FD01BC +:10060000B091FE018730904BA740B04BB9F41092E7 +:10061000FB011092FC011092FD011092FE0114BE2C +:1006200084B7877F84BF88E10FB6F8948093600019 +:10063000109260000FBEE0E0F8E3099511E0A0E041 +:10064000B1E0E6E0F7E402C005900D92A434B107F2 +:10065000D9F711E0A4E4B1E001C01D92AB3FB107AE +:10066000E1F70E94180B0C9481230C94000008956C +:1006700081E0089508950C9437030C9438030C948A +:100680003A030E94F72123E030E0281B3109220FB2 +:10069000209348010895282F2F98809180002111E0 +:1006A00008C0877F8093800010928D0010928C008C +:1006B0001BC0886080938000233019F48FEF9FEF78 +:1006C0000FC083E090E0821B9109880F991F2FEFE4 +:1006D0003FEFA90102C0569547958A95E2F7CA01F6 +:1006E00090938D0080938C000C9441030E944103F1 +:1006F00084E080934701109244010895279A2F982F +:100700008FEF9FEF90938700809386008AE080931D +:10071000800089E1809381000E9460210C9476031F +:100720000E947E036E9A769A0C945B041F920F923D +:100730000FB60F9211242F933F938F939F93EF93B4 +:10074000FF93E0914501F0914601CF01019690930E +:100750004601809345010090470102C0F695E79558 +:100760000A94E2F7EF7380914401823019F4E03289 +:1007700051F404C0813039F4EF3329F480916F00D3 +:100780008D7F80936F00F0E0E45DFE4FE49121E007 +:1007900031E0E29FC001E39F900D112400904801D9 +:1007A00002C0969587950A94E2F790938D00809306 +:1007B0008C00FF91EF919F918F913F912F910F901E +:1007C0000FBE0F901F901895CF93DF93EC010E94FE +:1007D000021DBE0180E090E0DF91CF910C94FC18E7 +:1007E000462F50E04131510508F062C0DC01FA01AA +:1007F000EA5AFF4F0C94312312968C91882309F406 +:1008000057C081E090E007C012968C91882309F4CC +:100810004FC082E090E00E94E4034AC012968C919F +:10082000882309F445C084E090E0F5CF12968C91BE +:10083000882311F083E007C083E00EC012968C91EC +:10084000882349F084E00E94791946E064E083E05F +:100850000E9428082DC084E00E949A19F6CF1296B3 +:100860008C91882321F085E00E94791921C085E0D0 +:100870000E949A191DC012968C91882369F085EE0A +:100880000E94911184EE0E94911186EE0E949111B6 +:1008900087EE0E9491110CC085EE0E94591284EEE1 +:1008A0000E94591286EE0E94591287EE0E94591238 +:1008B00080E090E00895089581E008950C945C0430 +:1008C00008950F931F93CF93DF938C01FC01C08198 +:1008D000D181CE010E94351ABE010E940E05EC01A5 +:1008E000B8010E945E04882309F48DC0F80182815A +:1008F000882309F44AC08091540181111FC0C4317A +:10090000F0E5DF0709F051C00E94600481E08093A8 +:1009100054010E94381C909353018093520110920D +:100920004B0110924D0110924C0110924F01109208 +:100930004E01109251011092500165C080915201F8 +:10094000909153010E94441C883C910570F4809161 +:100950004B01E82FF0E0EE0FFF1FE45BFE4FD18369 +:10096000C0838F5F80934B014EC0C43880E5D807A9 +:1009700021F0C538D04501F13AC0F80182818823C1 +:1009800041F01092490182E01EC0C438E0E5DE0764 +:1009900059F580914901811106C086E20E949111AA +:1009A00086E20E94591282E01CC0C438F0E5DF07DD +:1009B00041F3C538D045D9F4F8018281882331F05C +:1009C00010924A0180E20E94A8121DC080914A0143 +:1009D000811106C087E20E94911187E20E9459129C +:1009E00080E20E94AF120FC0C538D04529F381E0E4 +:1009F0008093490180934A01C801DF91CF911F91F3 +:100A00000F910C943D0380E0DF91CF911F910F91E6 +:100A100008950C9490030C943B0308959CE0799FF7 +:100A2000F001112490E3899FE00DF11D1124E60FE0 +:100A3000F11DEE0FFF1FE459FE4F8591949108952B +:100A4000880F991FFC01E451F0408591949108951D +:100A5000880F991FFC01E459FE4F859194910895E8 +:100A60000F931F93CF93DF93EC01811521E392073E +:100A7000A0F5C11580E3D80708F0D7C0C83ED1055E +:100A8000D8F4C03ED10508F003C2C83AD10578F4C5 +:100A9000C53AD10508F06AC0C130D10509F463C078 +:100AA00008F4F3C1C430D10508F0F2C1EEC1CB3B6C +:100AB000D10508F466C0E9C1C11590E2D90708F074 +:100AC000AFC0C11521E0D20708F0E2C1C03FD10597 +:100AD00008F4DBC18E0110651BC2C03880E5D80761 +:100AE00000F5C03790E5D90708F0A3C0C11520E58F +:100AF000D20709F4ACC050F4CE01905480319F402D +:100B000008F0C3C1DF708E01106A02C2C13080E5F7 +:100B1000D80709F4AAC0C43190E5D90708F4ABC0DE +:100B2000B4C1C33820E5D20709F48EC050F4C138EF +:100B300090E5D90709F482C008F083C000E011ED08 +:100B4000E7C1C03181E5D80708F49FC1C11597E519 +:100B5000D90708F432C1CE0190578115904108F0B1 +:100B600094C1DF708FC101E010E0D2C1C53AD10558 +:100B700009F490C1C63AD10509F08FC102E810E42A +:100B8000C7C1C83AD10509F48BC1C93AD10509F4E6 +:100B90008AC1CA3AD10509F489C1CB3AD10509F411 +:100BA00088C1CC3AD10509F487C1CD3AD10509F401 +:100BB00086C1C03BD10509F485C1CE3AD10509F4FF +:100BC00084C1CF3AD10509F483C1C13BD10509F4F1 +:100BD00082C1C23BD10509F481C1C33BD10509F4EF +:100BE00080C1C43BD10509F47FC1C53BD10509F4DF +:100BF0007EC1C63BD10509F47DC1C73BD10509F4CF +:100C00007CC1C83BD10509F47BC1C93BD10509F4BE +:100C10007AC1CA3BD10509F479C100E014E478C176 +:100C2000CE019F700E94280574C1DD278E01106CD3 +:100C30006FC1CF70DD278E01146D6AC100E010ED29 +:100C400067C100E012ED64C100E013ED61C10E94D4 +:100C50003C158FEF94E32CE0815090402040E1F769 +:100C600000C000000E94931C53C18091DB01816091 +:100C70008093DB014DC10E94EF1C811102C00E94D4 +:100C8000D01C0E94071D90E09093FA018093F90117 +:100C9000C23080E5D80721F48091F901816086C0D7 +:100CA000C43090E5D90721F48091F90182607EC0BB +:100CB000C63020E5D20721F48091F901846076C026 +:100CC000C83080E5D80719F48091F90127C0CA30EF +:100CD00090E5D90721F48091F901806167C0CC309B +:100CE00020E5D20721F48091F90180625FC0CE3007 +:100CF00080E5D80721F48091F901806457C0C031A4 +:100D000090E5D90721F48091F90180684FC0C23184 +:100D100020E5D20729F48091F9018460886046C0FB +:100D2000C33080E5D80721F48091F9018E7F3EC061 +:100D3000C53090E5D90721F48091F9018D7F36C047 +:100D4000C73020E5D20721F48091F9018B7F2EC0B6 +:100D5000C93080E5D80719F48091F90126C0CB305D +:100D600090E5D90721F48091F9018F7E1FC0CD3025 +:100D700020E5D20721F48091F9018F7D17C0CF3093 +:100D800080E5D80721F48091F9018F7B0FC0C13134 +:100D900090E5D90721F48091F9018F7707C0C3311D +:100DA000D04531F48091F9018B7F877F8093F901E1 +:100DB0008091F9010E940B1DABC08D2F99278F7078 +:100DC000992781309105D9F49E012370332702C001 +:100DD000880F991F2A95E2F79C688E0144E0000F66 +:100DE000111F4A95E1F700271370802B912B53E0D8 +:100DF000CC0FDD1F5A95E1F7C076DD272FC082307A +:100E0000910531F4DC2FCC278E01016F106A80C070 +:100E10008330910569F4CE018370992701E010E0D9 +:100E200002C0000F111F8A95E2F7C8019C680FC02D +:100E300084309105B9F4CE018370992701E010E068 +:100E400002C0000F111F8A95E2F7C8019A6823E0DB +:100E5000CC0FDD1F2A95E1F7C07ED7708C010C2BDB +:100E60001D2B56C08530910531F4DC2FCC278E0127 +:100E7000046F106A4DC0069709F04AC0CF71DD2794 +:100E8000DC2FCC278E01106243C000E010E040C090 +:100E90008E013EC001E810E43BC003E810E438C016 +:100EA00002EE14E435C009EE14E432C00AEE14E494 +:100EB0002FC005EB14E42CC006EB14E429C007EBAB +:100EC00014E426C00CEC14E423C00DEC14E420C0A0 +:100ED00003E815E41DC00AE815E41AC002E915E4A8 +:100EE00017C004E915E414C001E216E411C003E2DE +:100EF00016E40EC004E216E40BC005E216E408C0D6 +:100F000006E216E405C007E216E402C00AE216E4AF +:100F1000C801DF91CF911F910F9108959CE0799FB7 +:100F2000F001112490E3899FE00DF11D1124E60FDB +:100F3000F11DEE0FFF1FE459FE4F85919491803E05 +:100F40009105E0F4803C910558F58133910509F451 +:100F50006FC048F48932910509F463C08A32910563 +:100F600009F46DC072C089339105E9F082389105AA +:100F7000D1F08533910509F44DC067C0833E9105DA +:100F800081F138F4803E9105B9F0823E9105D9F0A7 +:100F90005CC0863E910561F1873E9105A1F155C087 +:100FA0000E94200508952091F90120FD02C021FF33 +:100FB0004CC080EE90E049C08091F90180FFF9CFEC +:100FC00089E390E042C08091F90182FF0EC08091D8 +:100FD000F90184FF03C080E090E037C083EE90E029 +:100FE00034C08091F90182FFF2CF82EE90E02DC0F3 +:100FF0008091F90183FF0BC08091F90184FDEBCF53 +:1010000087EE90E022C08091F90183FFF5CF86EE54 +:1010100090E01BC08091F90185FF07C089E290E054 +:1010200014C08091F90185FFF9CF85E390E00DC0F0 +:101030008091F90186FF07C08AE290E006C08091A6 +:10104000F90186FFF9CF81E390E00E943005089511 +:10105000CF92DF92EF92FF920F931F9301E010E087 +:1010600020E030E06801790104C0CC0CDD1CEE1CEE +:10107000FF1C8A95D2F704C0000F111F221F331FD7 +:101080006A95D2F70C291D292E293F29C090BE014F +:10109000D090BF01E090C001F090C101C022D122E8 +:1010A000E222F322842FC016D106E206F30641F4B1 +:1010B0001F910F91FF90EF90DF90CF900C947919D2 +:1010C0001F910F91FF90EF90DF90CF900C949A19A1 +:1010D0000C943F03E82FF0E0EF5DFE4F8081E82F96 +:1010E000EF70F0E082958F7021E030E0A90102C03E +:1010F000440F551F8A95E2F740A308950F931F935D +:10110000CF93DF9385B7806885BF85B7806885BF3B +:10111000C3E0D0E001E010E0FE01EF5DFE4F808112 +:10112000E82FEF70F0E021A182958F70A80102C036 +:10113000440F551F8A95E2F7CA01822B81A38C2F99 +:101140000E946A08219740F78BE090E061E070E030 +:10115000FC01EB5EFE4F2081E22FEF70F0E042A138 +:1011600022952F70DB0102C0AA0FBB1F2A95E2F760 +:101170009D01242B22A3019758F7DF91CF911F9156 +:101180000F910C940905EF92FF920F931F93CF9349 +:10119000DF930DE511E0C3E0EE24E394F12CD5E0FC +:1011A0008C2F0E946A088BE090E040E050E0FC0148 +:1011B000EB5EFE4F6081E62FEF70F0E020A130E0A3 +:1011C00062956F7002C0359527956A95E2F720FD0C +:1011D00009C09701082E02C0220F331F0A94E2F7BC +:1011E000422B532B019718F7F801929182918F01AE +:1011F0008417950721F051834083D09300018C2FF1 +:101200000E946A08C15060F68091000187FD2CC0E1 +:101210008150809300018F3F39F08FE99FE0019763 +:10122000F1F700C0000020C080915B0190915C014B +:1012300090936401809363018091590190915A01C8 +:1012400090936201809361018091570190915801C0 +:101250009093600180935F018091550190915601B8 +:1012600090935E0180935D010E940B0581E0DF9108 +:10127000CF911F910F91FF90EF900895E82FF0E02C +:10128000EE0FFF1FE35AFE4F80819181089508956C +:101290000F931F93CF9305E611E0C0E0F801929100 +:1012A00082918F010E94B01BC80FF1E00D351F071E +:1012B000A9F78C2FCF911F910F91089580917501FF +:1012C0000895CF93DF9300D01F92CDB7DEB79C0176 +:1012D0008091F001843019F593E099833B832A8350 +:1012E0009093E9008FEF9091E800815095FD06C042 +:1012F00095ED9A95F1F700008111F5CF8091E80006 +:1013000085FF0DC040E050E063E070E0CE01019643 +:101310000E94C20B8091E8008E778093E8000F90C6 +:101320000F900F90DF91CF910895CF93DF9300D06E +:101330001F92CDB7DEB72091F001243021F522E0D5 +:1013400029839B838A8383E08093E9008FEF9091C8 +:10135000E800815095FD06C095ED9A95F1F70000E3 +:101360008111F5CF8091E80085FF0DC040E050E08D +:1013700063E070E0CE0101960E94C20B8091E8000C +:101380008E778093E8000F900F900F90DF91CF91B0 +:1013900008952091F0012430F1F422E02093E90037 +:1013A0002FEF3091E800215035FD06C035ED3A951C +:1013B000F1F700002111F5CF2091E80025FF0BC0C7 +:1013C00040E050E065E070E00E94C20B8091E800D0 +:1013D0008E778093E8000895CF93DF93EC0190918E +:1013E000F001943009F046C080910B018823D9F0B8 +:1013F00080910C018823B9F09093E9008FEF9091D0 +:10140000E800815095FD06C095E19A95F1F700003E +:101410008111F5CF8091E80085FF2CC040E050E0BD +:1014200060E170E017C081E08093E9008FEF909158 +:10143000E800815095FD06C095ED9A95F1F7000002 +:101440008111F5CF8091E80085FF14C040E050E0A5 +:1014500068E070E0CE010E94C20B8091E8008E77B8 +:101460008093E80080E1FE01A5E6B1E001900D92D5 +:101470008A95E1F7DF91CF9108958091EF01811175 +:1014800009C00E94570D0E94B40D8091E200846053 +:101490008093E20008951092EF0108950895089551 +:1014A0000C94FB1B42E061EC81E00E94D10C42E015 +:1014B00061EC82E00E94D10C42E061EC83E00E948A +:1014C000D10C42E161EC84E00C94D10C8091F201EA +:1014D000833009F455C030F4813071F0823009F462 +:1014E0008EC008958A3009F47AC08B3009F460C048 +:1014F000893009F09CC020C08091F101813A09F047 +:1015000096C08091E800877F8093E8008091F50184 +:101510009091F601892B21F460E185E691E003C00A +:1015200060E080E090E070E00E940D0C8091E800A7 +:101530008B778093E80008958091F101813209F062 +:1015400076C08091F5019091F601009719F003970C +:1015500009F06DC08091E800877F8093E80080915A +:10156000E80082FD05C08091F0018111F8CF5FC0D5 +:101570008091F100809375018091E8008B7753C0D2 +:101580008091F101813A09F052C08091F50190916A +:10159000F601892B09F04BC08091E800877F80938A +:1015A000E8008091E80080FFFCCF80910B0136C0FD +:1015B0008091F1018132D9F58091F5019091F60188 +:1015C000892BA9F58091E800877F8093E8000E942D +:1015D000060D8091F30180930B010C943C158091D2 +:1015E000F101813221F58091E800877F8093E80046 +:1015F0000E94060D8091F4018093760108958091F8 +:10160000F101813AA1F48091E800877F8093E8009E +:101610008091E80080FFFCCF809176018093F100FB +:101620008091E8008E778093E8000C94060D089571 +:1016300084B7877F84BF88E10FB6F89480936000F9 +:10164000109260000FBE90E080E80FB6F89480938F +:101650006100909361000FBE0E94A9100E94570D77 +:101660000E94B40D8091E20084608093E20078943F +:101670000E943A100E94AB1081E091E00E94551048 +:101680008091F001853069F40E94BC1B8091EE01CD +:101690008823B1F30E94EA1B882391F30E94AC0BCC +:1016A000EFCF0E94B310ECCF292F33272330310521 +:1016B000C9F064F42130310581F02230310509F0A0 +:1016C00043C08DE690E028E634E042C02132310587 +:1016D000F1F02232310541F137C082E190E025ED91 +:1016E00034E036C099278130910541F08230910570 +:1016F00041F0892B49F5E4E6F4E005C0E6E3F4E0C7 +:1017000002C0ECE0F4E0849190E09F0121C06430DD +:10171000D8F4E62FF0E0EE0FFF1FEF5CFE4F2081C4 +:10172000318189E090E014C0643070F470E0FB0116 +:10173000EE0FFF1FE75DFE4F20813181FB01EB5D66 +:10174000FE4F808190E004C080E090E020E030E037 +:10175000FA0131832083089580E189BD82E189BD4A +:1017600009B400FEFDCF8091D8008F7D8093D80012 +:101770008091E00082608093E0008091E00081FD34 +:10178000FCCF0895CF92DF92EF92FF920F931F93B9 +:10179000CF93DF93EC018B016A010E94250D81112B +:1017A00033C0C114D10439F0F60180819181081B46 +:1017B000190BC80FD91FE12CF12C0115110519F1D6 +:1017C0008091E80085FD16C08091E8008E778093B7 +:1017D000E800C114D10449F0F60180819181E80E3E +:1017E000F91EF182E08285E00FC00E94250D88235A +:1017F00021F30AC089918093F10001501109FFEF94 +:10180000EF1AFF0ADACF80E0DF91CF911F910F919D +:10181000FF90EF90DF90CF9008952091F7013091E5 +:10182000F8012617370748F06115710539F4209142 +:10183000E8002E772093E80001C0B90140E061156F +:101840007105A9F12091F001222309F443C025304C +:1018500009F442C02091E80023FD40C02091E80037 +:1018600022FD32C02091E80020FFE9CF4091F30033 +:101870002091F20030E0342BFC01CF01611571059D +:1018800059F02830310540F481918093F100615086 +:1018900071092F5F3F4FF1CF41E02830310509F04A +:1018A00040E02091E8002E772093E800C8CF411156 +:1018B000C9CF0AC08091F001882361F0853061F0C2 +:1018C0008091E80083FD0AC08091E80082FFF2CF9A +:1018D00080E0089582E0089583E0089581E008950E +:1018E0002091F7013091F8012617370748F061156C +:1018F000710539F42091E8002E772093E80001C0AB +:10190000B901FC0120E06115710591F18091F001B0 +:10191000882309F440C0853009F43FC08091E80075 +:1019200083FD3DC08091E80082FD2FC08091E800DA +:1019300080FFE9CF2091F3008091F20090E0922B9C +:101940006115710559F08830910540F42491209378 +:10195000F1003196615071090196F2CF21E00897AC +:1019600009F020E08091E8008E778093E800CBCFEB +:101970002111CCCF0AC08091F001882361F085301D +:1019800061F08091E80083FD0AC08091E80082FF49 +:10199000F2CF80E0089582E0089583E0089581E029 +:1019A0000895982F973058F59093E900981739F0DB +:1019B0007091EC002091ED005091F00003C0242FB5 +:1019C000762F50E021FF19C03091EB003E7F30931D +:1019D000EB003091ED003D7F3093ED003091EB0056 +:1019E00031603093EB007093EC002093ED00509346 +:1019F000F0002091EE0027FF07C09F5FD3CF8F70CC +:101A00008093E90081E0089580E008958091F101DC +:101A100087FF11C08091E80082FD05C08091F00130 +:101A20008111F8CF11C08091E8008B770BC08091B5 +:101A3000F001882349F08091E80080FFF8CF809181 +:101A4000E8008E778093E80008952091E4003091BB +:101A5000E50095E64091EC00842F817040FF22C0A4 +:101A60008091E80080FD1CC08091F001882391F0F6 +:101A7000853091F08091EB0085FD10C04091E4002D +:101A80005091E5004217530729F39A01915011F73D +:101A900084E0089582E0089583E0089581E0089548 +:101AA00080E008954091E80042FFDECF08950E9453 +:101AB000C50D0E94CD0DE0EEF0E080818160808355 +:101AC000E8EDF0E080818F77808319BCA7EDB0E06E +:101AD0008C918E7F8C9380818F7E80831092EF011A +:101AE00008950F931F93CF93DF930E94C50D0E941B +:101AF000CD0DC8EDD0E088818F778883888180689C +:101B0000888388818F7D888319BC1092F0011092A0 +:101B1000EC011092EE011092ED0100EE10E0F801E0 +:101B200080818B7F808388818160888342E060E050 +:101B300080E00E94D10CE1EEF0E080818E7F808316 +:101B4000E2EEF0E080818160808380818860808324 +:101B5000F80180818E7F8083888180618883DF9116 +:101B6000CF911F910F910895E8EDF0E080818F7E75 +:101B70008083E7EDF0E080818160808384E082BF34 +:101B800081E08093EF010C94710DE8EDF0E080812D +:101B90008E7F80831092E20008951092DA001092F6 +:101BA000E10008951F920F920FB60F9211242F9308 +:101BB0003F934F935F936F937F938F939F93AF93D5 +:101BC000BF93EF93FF938091E10082FF0BC0809160 +:101BD000E20082FF07C08091E1008B7F8093E100EB +:101BE0000E9439108091DA0080FF1FC08091D800D8 +:101BF00080FF1BC08091DA008E7F8093DA00809195 +:101C0000D90080FF0DC080E189BD82E189BD09B4A2 +:101C100000FEFDCF81E08093F0010E943D0A05C0E7 +:101C200019BC1092F0010E944B0A8091E10080FFE4 +:101C300019C08091E20080FF15C08091E2008E7F84 +:101C40008093E2008091E20080618093E2008091C5 +:101C5000D80080628093D80019BC85E08093F001A1 +:101C60000E944F0A8091E10084FF30C08091E20021 +:101C700084FF2CC080E189BD82E189BD09B400FEEA +:101C8000FDCF8091D8008F7D8093D8008091E100B6 +:101C90008F7E8093E1008091E2008F7E8093E2004E +:101CA0008091E20081608093E2008091EC018823C2 +:101CB00011F084E007C08091E30087FD02C081E05D +:101CC00001C083E08093F0010E94500A8091E100FE +:101CD00083FF29C08091E20083FF25C08091E1004D +:101CE000877F8093E10082E08093F0011092EC0105 +:101CF0008091E1008E7F8093E1008091E2008E7FF1 +:101D00008093E2008091E20080618093E20042E0F3 +:101D100060E080E00E94D10C8091F00088608093A8 +:101D2000F0000E944E0AFF91EF91BF91AF919F91F9 +:101D30008F917F916F915F914F913F912F910F9074 +:101D40000FBE0F901F9018951F920F920FB60F9213 +:101D500011242F933F934F935F936F937F938F93B0 +:101D60009F93AF93BF93CF93DF93EF93FF93C09174 +:101D7000E900CF708091EC00D82FD17080FDD0E8C1 +:101D80001092E9008091F000877F8093F0007894B2 +:101D90000E94E80E1092E9008091F0008860809324 +:101DA000F000CD2BCF70C093E900FF91EF91DF9150 +:101DB000CF91BF91AF919F918F917F916F915F91E3 +:101DC0004F913F912F910F900FBE0F901F9018953C +:101DD0001F93CF93DF93CDB7DEB7AA970FB6F894D2 +:101DE000DEBF0FBECDBFE1EFF1E088E08E0F909136 +:101DF000F10091938E13FBCF0E94660A8091E80058 +:101E000083FF1FC18091F1019091F201492F50E0B1 +:101E10004A30510508F015C1FA01E959FF4F0C94F9 +:101E20003123803881F0823809F00BC18091F501AF +:101E30008F708093E9008091EB0085FB882780F903 +:101E40001092E90006C08091ED019091EE01911190 +:101E500082609091E800977F9093E8008093F10072 +:101E60001092F100C8C0282F2D7F09F0EAC0882306 +:101E700019F0823061F0E5C08091F301813009F002 +:101E8000E0C0933009F080E08093EE012BC0809198 +:101E9000F301811127C08091F5018F7009F4D1C041 +:101EA0008093E9002091EB0020FF1CC0933021F4C7 +:101EB0008091EB00806214C09091EB009061909350 +:101EC000EB0021E030E0A90102C0440F551F8A95C4 +:101ED000E2F74093EA001092EA008091EB008860FC +:101EE0008093EB001092E9008091E800877F86C024 +:101EF0008111A7C01091F3011F778091E3008078D2 +:101F0000812B8093E3008091E800877F8093E80035 +:101F10000E94060D8091E80080FFFCCF8091E300D5 +:101F200080688093E300111102C082E001C083E069 +:101F30008093F00186C08058823008F082C0809182 +:101F4000F3019091F4018C3D53E0950779F583E01E +:101F50008A838AE289834FB7F894DE01139620E0E2 +:101F60003EE051E2E32FF0E050935700E49120FF70 +:101F700003C0E295EF703F5FEF708E2F90E0EA3084 +:101F800010F0C79601C0C0968D939D932F5F2431AA +:101F900049F74FBF8091E800877F8093E8006AE2AD +:101FA00070E0CE0101960E940D0C14C0AE014F5F8F +:101FB0005F4F6091F5010E94540BBC01009709F43A +:101FC00040C09091E800977F9093E80089819A81C2 +:101FD0000E94700C8091E8008B778093E80031C0FC +:101FE000803879F58091E800877F8093E8008091C0 +:101FF000EC018093F1008091E8008E778093E800F7 +:102000000E94060D1EC081111CC09091F3019230F8 +:10201000C0F48091E800877F8093E8009093EC0102 +:102020000E94060D8091EC01811106C08091E300B1 +:1020300087FD02C081E001C084E08093F0010E942E +:10204000520A8091E80083FF0AC08091E800877FF0 +:102050008093E8008091EB0080628093EB00AA9669 +:102060000FB6F894DEBF0FBECDBFDF91CF911F91A9 +:1020700008950895CF938091F0018823A1F0C09135 +:10208000E900CF709091EC00892F817090FD80E87D +:10209000C82B1092E9008091E80083FD0E94E80EB1 +:1020A000CF70C093E900CF91089590937C01809305 +:1020B0007B010895E0917B01F0917C01309721F044 +:1020C0000190F081E02D099480E00895E0917B017A +:1020D000F0917C01309721F00280F381E02D09948A +:1020E0000895E0917B01F0917C01309721F004800C +:1020F000F581E02D099408952091790130917A01BC +:102100008217930771F090937A0180937901E0919F +:102110007B01F0917C01309721F00680F781E02D62 +:1021200009940895209177013091780182179307DF +:1021300071F09093780180937701E0917B01F091A9 +:102140007C01309721F00084F185E02D09940895F9 +:1021500008950C94A8100E942F1C0E947E080E94D3 +:10216000B51C0C9460215F926F927F928F929F9228 +:10217000AF92BF92CF92DF92EF92FF920F931F9395 +:10218000CF93DF9300D000D01F92CDB7DEB70E946F +:10219000C30896E8C92E91E0D92E03E010E0AA24E6 +:1021A000A394B12C502E802F0E943E094C01F601C1 +:1021B000729062906F016826792661147104A1F40F +:1021C0000150110978F78FEF89838A831B820E945F +:1021D000381C8160782F9D838C8349815A816B8163 +:1021E0008D810E94631138C08091DB0181FD0E94C6 +:1021F00047092BE030E07501022E02C0EE0CFF1CF7 +:102200000A94E2F7C70186219721892B09F12983D6 +:102210005A828E209F2091E0892809F490E09B83C8 +:102220000E94381C8160782F9D838C8349815A815C +:102230006B818D810E946311000F111FF801E2581C +:10224000FE4F80819181E826F926F182E08204C068 +:102250002150310980F6B4CF0E94931E10917D0168 +:102260000E945A101817D1F00E945A1080937D01D5 +:102270000F900F900F900F900F90DF91CF911F91C3 +:102280000F91FF90EF90DF90CF90BF90AF909F9015 +:102290008F907F906F905F900C9468080F900F90D4 +:1022A0000F900F900F90DF91CF911F910F91FF90A2 +:1022B000EF90DF90CF90BF90AF909F908F907F90E6 +:1022C0006F905F900895CF93DF93CDB7DEB72B97D4 +:1022D0000FB6F894DEBF0FBECDBF4F835887698716 +:1022E0007A878B87DE01119686E0FD0111928A952F +:1022F000E9F785E0FE01379601900D928A95E1F7A6 +:1023000049815A816B817C818D819E810E94DA177F +:102310002B960FB6F894DEBF0FBECDBFDF91CF91E5 +:102320000895CF93882309F4C2C0C82F823859F486 +:102330000E945A1081FDBBC089E30E94B41A0E941A +:10234000811B89E30CC0833879F40E945A1080FD08 +:10235000AEC083E50E94B41A0E94811B83E50E94EF +:10236000F61ACF910C94811B843859F40E945A10AC +:1023700082FD9DC087E40E94B41A0E94811B87E4FD +:10238000EECF8CEF8C0F813A48F48C2F0E94C8203E +:1023900081118DC08C2F0E94B41AE3CF80E28C0F84 +:1023A000883048F4C77081E001C0880FCA95EAF709 +:1023B0000E943A1BD6CF8BE58C0F833078F4C53A58 +:1023C00029F0C63A31F083E890E005C081E890E05A +:1023D00002C082E890E0CF910C947C1088E58C0FCD +:1023E000833108F064C0C83A39F1C93A41F1CA3AB8 +:1023F00049F1CB3A51F1CC3A59F1CD3A61F1C03BB8 +:1024000069F1CE3A71F1CF3A79F1C13B81F1C23B2A +:1024100089F1C33B91F1C43B99F1C53BA1F1C63BA6 +:10242000A9F1C73BB1F1C83BB9F1C93BC1F1CA3B06 +:10243000C9F180E090E038C082EE90E035C089EECE +:1024400090E032C08AEE90E02FC085EB90E02CC087 +:1024500086EB90E029C087EB90E026C08CEC90E002 +:1024600023C08DEC90E020C083E891E01DC08AE895 +:1024700091E01AC082E991E017C084E991E014C0AC +:1024800081E292E011C083E292E00EC084E292E029 +:102490000BC085E292E008C086E292E005C087E2C8 +:1024A00092E002C08AE292E0CF910C949210CF9118 +:1024B0000895882309F44BC0823859F40E945A10B9 +:1024C00081FF45C089E30E94B41A0E94811B89E301 +:1024D0000CC0833871F40E945A1080FF38C083E525 +:1024E0000E94B41A0E94811B83E50E94F61A0C9484 +:1024F000811B843859F40E945A1082FF28C087E457 +:102500000E94B41A0E94811B87E4EFCF9CEF980FC2 +:10251000913A58F390E2980F983050F4877091E018 +:1025200001C0990F8A95EAF7892F0E94401BDFCFDF +:102530009BE5980F933020F480E090E00C947C10A1 +:10254000885A833120F480E090E00C949210089532 +:10255000882321F00E943A1B0C94811B0895882344 +:1025600021F00E94401B0C94811B08957F928F9252 +:102570009F92AF92BF92CF92DF92EF92FF920F9312 +:102580001F93CF93DF931F92CDB7DEB77C01C62E8A +:10259000772EFC01058102950F70128111110E94A6 +:1025A000571B0E94AD1A882379F0112369F080E24D +:1025B0008C0D883048F082E00E94961A0E94AD1A75 +:1025C00091E0D82ED92601C0D12CE72DE295EF70ED +:1025D000F0E0EF58FF4F0C943123872D807F072DBB +:1025E0000F70882311F00295007F112389F00023DA +:1025F00009F499C180E28C0D883020F4802F0E946C +:102600003A1B03C0802F0E944A1B0E94811B8BC172 +:102610008C2D0E945912002309F4C3C180E28C0D55 +:10262000883020F4802F0E94401B03C0802F0E941E +:10263000501B0E94811BB5C1872D807F972D9F70F5 +:10264000803211F4892F03C0892F8295807FCC209E +:1026500021F0F1E0CF16A1F01DC0112339F00023C5 +:1026600019F1013009F50E946A1B9BC1002319F082 +:10267000013009F496C189830E946D1B898110C1C4 +:10268000112321F0063008F08CC10EC0053008F08F +:1026900088C106C1112359F0002331F0F70195815B +:1026A00090FF41C19F7095830E94A8127AC10023B8 +:1026B00009F4F6C03EC1872D86958695837090E01B +:1026C000009719F0019761F06CC1112321F08C2D56 +:1026D000972D937002C080E090E00E947C1061C151 +:1026E000112321F08C2D972D937002C080E090E093 +:1026F0000E94921056C18C2D112319F00E949B1D2F +:1027000002C00E94031E0E94881E4BC1872D837049 +:1027100009F052C0111145C18C2D829586958770A4 +:10272000880F880F9C2D9F70892E912CA12CB12C85 +:10273000082E04C0880C991CAA1CBB1C0A94D2F752 +:10274000C4FE14C00FE010E020E030E0B901A801A1 +:1027500004C0440F551F661F771F8A95D2F7CB011F +:10276000BA01609570958095909503C060E070E027 +:10277000CB01272D26952695237030E02230310598 +:1027800069F02330310589F0682979298A299B2944 +:102790002130310571F00E94221903C1682979297D +:1027A0008A299B290E943E19FCC00E942219C5015A +:1027B000B4010E940619F5C0112319F0872D81700C +:1027C00001C08695882309F4ECC08C2D82958695EE +:1027D0008770880F880F9C2D9F70892E912CA12CBB +:1027E000B12C082E04C0880C991CAA1CBB1C0A948E +:1027F000D2F7C4FE14C00FE010E020E030E0B901D1 +:10280000A80104C0440F551F661F771F8A95D2F791 +:10281000CB01BA01609570958095909503C060E0FA +:1028200070E0CB01272D269526952370422F50E08E +:102830004230510569F04330510589F06829792902 +:102840008A299B294130510571F00E94FC19A9C0C9 +:10285000682979298A299B290E94181AA2C00E94F6 +:10286000FC19C501B4010E94E0199BC08C2D90E0B9 +:10287000FC01E05EF109E531F10508F050C0EF57C9 +:10288000FF4F0C9431230C2D0F70872D8F71112366 +:1028900021F00E947919802F07CF0E949A19802F6A +:1028A0000E94AF127EC0112341F0053008F079C0BC +:1028B000872D8F710E94BF1974C0063008F071C057 +:1028C000F7CF112339F0872D8F710E94791969C0D4 +:1028D0001123C9F3872D8F710E949A1962C01123A9 +:1028E00029F0872D8F710E9464195BC00E945A19CC +:1028F00058C0112351F0172D1F71812F0E94791993 +:1029000063E0812F0E948D1A4CC081E00E94961ACC +:10291000023008F446C082E00E94961A42C0112399 +:1029200031F0002381F28C2D0E9491113AC00023D6 +:1029300089F28C2D0E94591234C0472D4F706C2D96 +:10294000C7010E94F0030E947E182BC0111129C0FC +:10295000472D4F7050E042305105B9F04CF441150D +:10296000510581F041305105E1F40E94882119C0E0 +:102970004330510569F04430510599F48C2D0E9483 +:10298000DA210FC00E9471210CC00E94A42109C04D +:102990000E94B72106C0472D4F706C2DC7010E94C1 +:1029A0000D05DD20F9F00E94891A80FD1BC0F7019A +:1029B00012820E94831A0E947919C7010E94011590 +:1029C0000E94831A0F90DF91CF911F910F91FF907A +:1029D000EF90DF90CF90BF90AF909F908F907F90BF +:1029E0000C949A190F90DF91CF911F910F91FF9046 +:1029F000EF90DF90CF90BF90AF909F908F907F909F +:102A000008950F931F93CF93DF93EC0188819981F1 +:102A10002B813C81232BB9F09F3F11F48F3F99F01C +:102A2000CE010E946104882371F0688179818A81D6 +:102A30000E947F1A8C010E94341A0E94FB18B80170 +:102A4000CE010E94B612DF91CF911F910F91089590 +:102A50000E94571B0E94671B0E942C1B0E94811B17 +:102A60000E94391F0E94881E80E090E00E947C1026 +:102A700080E090E00C9492100E94471B0C94281563 +:102A80000E94741A292F22952F7030E02C303105C6 +:102A90004CF42A3031056CF42250310922303105D2 +:102AA000A8F407C02C30310569F02F30310551F002 +:102AB0000DC0803F69F018F4803E40F409C0843FA7 +:102AC00029F406C093FB882780F9089580E00895D3 +:102AD00081E00895CF93DF9300D000D01F92CDB74F +:102AE000DEB70F900F900F900F900F90DF91CF9166 +:102AF0000895CF93DF9300D000D000D0CDB7DEB7DC +:102B000026960FB6F894DEBF0FBECDBFDF91CF91F2 +:102B100008951F93CF93DF93C091860116E08091B3 +:102B20008701C81799F0D0E01C9FF0011D9FF00DA0 +:102B30001124E857FE4F4081518162817381848165 +:102B400095810E9479152196C770E9CFDF91CF91C9 +:102B50001F9108954091B8015091B9016091BA0157 +:102B60007091BB018091BC019091BD010C947915CD +:102B70008091BD0182958F7009F054C08091BA0197 +:102B8000882309F44FC080918601A091870160914C +:102B9000B8017091B9014091BB015091BC01B6E000 +:102BA0008A1709F43FC090E041155105C1F17F3FFC +:102BB00011F46F3FA1F1B89FF001B99FF00D1124FE +:102BC000E857FE4F218172132AC02081621327C06B +:102BD0002281211124C0238134812417350710F468 +:102BE00021503109241B350B283C3105C0F42091BC +:102BF000BD012F7020612093BD0126E0289FF001C8 +:102C0000299FF00D1124E357FE4F80818F70806162 +:102C1000808388EB91E00E9401150C948915019640 +:102C20008770BECF0895CF92DF92EF92FF920F93FD +:102C30001F93CF93DF93CDB7DEB762970FB6F894AB +:102C4000DEBF0FBECDBF8C0185E0F801DE011D9611 +:102C500001900D928A95E1F7D8014C9111965C9103 +:102C6000119712966C9112971396CD90DC90149751 +:102C70003091B8017091B9018091BB019091BC0174 +:102C8000009709F46BC17F3F19F43F3F09F466C117 +:102C9000E090BA01EE2009F4C0C02091BD01C81631 +:102CA000D90628F0F601E81BF90BCF0104C0809586 +:102CB00090958C0D9D1DFF24F394883C910578F030 +:102CC000F12C207F09F0C6C07C2DD98AC88A898959 +:102CD0000E946A1588EB91E00E940115B1C0822F15 +:102CE000807F09F046C0751314C0341312C06111FF +:102CF00010C02F7020612093BD010E94AA1588EB9F +:102D000091E00E9401158091BD01D80115968C9328 +:102D10002EC0CD2819F15F3F11F44F3FF9F0F62E88 +:102D200061111CC0809186012091870136E08217D5 +:102D300009F45AC090E0389FF001399FF00D11243A +:102D4000E857FE4F7181571306C07081471303C0C7 +:102D50007281711103C001968770E9CFF62E662348 +:102D600009F418C18091BD0181608093BD01F12CEF +:102D700011C1751308C0341306C0611104C08091DD +:102D8000BD01D801C3C04D875E878D859E856A8B46 +:102D90000E9440156A898823E1F16623D1F12091D0 +:102DA000BD01822F82958F7090E0029774F0809120 +:102DB000B8019091B90198878F831986DB86CA86FE +:102DC0002C87CE0107960E94011586E0F801A8EB3A +:102DD000B1E001900D928A95E1F70E94B8150E942A +:102DE000AA15FF24F394D6C04D875E878D859E85F6 +:102DF0000E94741A292F22952F7030E0223031055D +:102E00000CF0BCC09F7009F0B6C0805E883008F43A +:102E1000C1C0C8010E940115E4CFC816D90608F444 +:102E200053C0F601E81BF90BCF01883C910508F46B +:102E300050C0F12C7C2DD98AC88A89890E946A15D4 +:102E4000E8EBF1E086E0DF011D928A95E9F70E9448 +:102E5000AA15A0C0751314C0341312C0611110C09C +:102E60008091BD01F8018583C8010E94011586E0AB +:102E7000E8EBF1E0DF011D928A95E9F7FE2C8AC0AC +:102E80004D875E878D859E856A8B0E9440156A8975 +:102E9000882309F4BECF662309F4BBCF2091BD017E +:102EA000822F82958F7090E002970CF48ECF8091E4 +:102EB000B8019091B9019A8389831B82DD82CC820B +:102EC0002E83CE0101967FCF809590958C0D9D1D10 +:102ED000ACCFF62E662309F49CCF75132EC03413A5 +:102EE0002CC02091BD0120FD1FC0822F82958F70C4 +:102EF000D9F0D80115962C9315978F3049F08F5F34 +:102F0000982F9295907F822F8F70892B15968C9396 +:102F1000C8010E94011586E0F801A8EBB1E001901C +:102F20000D928A95E1F793CF86E0F801A8EBB1E026 +:102F300001900D928A95E1F72DC04D875E878D85B2 +:102F40009E850E944015811140CF8091BD01816016 +:102F50008093BD01C8010E9401151CC0662309F4BD +:102F600058CF4D875E878D859E850E9440158823AA +:102F700009F44FCF2ACF811148CF0CC0243031053E +:102F80000CF047CF9F7009F440CFF8019581907FF6 +:102F900009F03BCF8F2D62960FB6F894DEBF0FBEBF +:102FA000CDBFDF91CF911F910F91FF90EF90DF90F8 +:102FB000CF9008951F93CF93DF93CDB7DEB72C97B3 +:102FC0000FB6F894DEBF0FBECDBF4F835887698719 +:102FD0007A878B879C87CE0107960E9413168823D9 +:102FE00069F08F8198852A853B85232BF1F19F3FDE +:102FF00009F063C08F3F09F060C037C086E0FE0172 +:103000003796DE01119601900D928A95E1F76F8156 +:103010007885EA85FB85309741F17F3F11F46F3F5A +:1030200021F12091870130E0C9010196877099272D +:103030004091860150E08417950709F447C06983E1 +:103040007A83FD83EC8396E0929FD001939FB00D2D +:103050001124A857BE4FFE01319601900D929A950A +:10306000E1F7809387010E94891516E0809186011F +:10307000909187018917C1F1189FC00111248857C9 +:103080009E4F0E941316882379F1E09186011E9FBE +:10309000F0011124E857FE4F408151816281738114 +:1030A000848195810E9479158091860190E0019636 +:1030B0008770992780938601D9CF4F81588569857C +:1030C0007A858B859C850E947915CFCF0E943C150F +:1030D0001092870110928601E8EBF1E086E0DF01B3 +:1030E0001D928A95E9F7C1CF2C960FB6F894DEBFF2 +:1030F0000FBECDBFDF91CF911F910895EF92FF9248 +:103100000F931F93CF93DF938C01009709F46CC04A +:10311000F12CEE24E394E8012196F80184918437A0 +:1031200040F4843008F051C0813081F0823019F1D0 +:103130005BC0853709F444C0A8F19CE7980F90372D +:1031400008F052C08F770E94591241C00E5F1F4F86 +:10315000FE01C49180E28C0F883048F4C7708E2D38 +:1031600001C0880FCA95EAF70E945A1B14C08C2F21 +:103170000E9491112DC00E5F1F4FFE01C49180E28D +:103180008C0F883058F4C7708E2D01C0880FCA95F7 +:10319000EAF70E94601B0E94811B1AC08C2F0E94BC +:1031A000591216C00E5F1F4FFE01C491CC2381F04F +:1031B0008FE99FE00197F1F700C00000C150F6CF02 +:1031C0000E5F1F4FFE01F49003C00E9491118E010B +:1031D0008F2D882309F49FCFEFE9FFE03197F1F7B6 +:1031E00000C000008150F5CFDF91CF911F910F916A +:1031F000FF90EF90089508956093C2017093C3010A +:103200008093C4019093C5010C9428150F931F93CC +:103210000091C2011091C3012091C4013091C501F8 +:10322000DC01CB01802B912BA22BB32B8093C2010D +:103230009093C301A093C401B093C5011F910F9156 +:103240000C9428150F931F930091C2011091C30194 +:103250002091C4013091C501DC01CB018023912371 +:10326000A223B3238093C2019093C301A093C4010E +:10327000B093C5011F910F910C9428150F931F93C4 +:103280000091C2011091C3012091C4013091C50188 +:10329000DC01CB0180279127A227B3278093C201AD +:1032A0009093C301A093C401B093C5011F910F91E6 +:1032B0000C9428151092BE011092BF011092C0010B +:1032C0001092C1010C94281541E050E060E070E0DC +:1032D00004C0440F551F661F771F8A95D2F740938D +:1032E000BE015093BF016093C0017093C1010C9463 +:1032F000281541E050E060E070E004C0440F551F25 +:10330000661F771F8A95D2F78091BE019091BF0109 +:10331000A091C001B091C101482B592B6A2B7B2B86 +:103320004093BE015093BF016093C0017093C101EF +:103330000C94281541E050E060E070E004C0440FB8 +:10334000551F661F771F8A95D2F740955095609557 +:1033500070958091BE019091BF01A091C001B09184 +:10336000C101482359236A237B234093BE01509314 +:10337000BF016093C0017093C1010C94281541E016 +:1033800050E060E070E004C0440F551F661F771FD7 +:103390008A95D2F78091BE019091BF01A091C001A2 +:1033A000B091C101482759276A277B274093BE0166 +:1033B0005093BF016093C0017093C1010C94281514 +:1033C0000F931F930091BE011091BF012091C00186 +:1033D0003091C101DC01CB01802B912BA22BB32BAF +:1033E0008093BE019093BF01A093C001B093C1012F +:1033F0001F910F910C9428150F931F930091BE01FC +:103400001091BF012091C0013091C101DC01CB01BD +:1034100080239123A223B3238093BE019093BF0105 +:10342000A093C001B093C1011F910F910C94281576 +:103430000F931F930091BE011091BF012091C00115 +:103440003091C101DC01CB0180279127A227B3274E +:103450008093BE019093BF01A093C001B093C101BE +:103460001F910F910C9428150895CF92DF92EF923F +:10347000FF920F931F93CF93DF938C01C090C201F3 +:10348000D090C301E090C401F090C5018091BE01CD +:103490009091BF01A091C001B091C101C82AD92A61 +:1034A000EA2AFB2ACFE1D0E0D701C6010C2E04C0E6 +:1034B000B695A795979587950A94D2F780FF06C091 +:1034C000B8018C2F0E948E07019721F4219760F795 +:1034D00080E001C08C2FDF91CF911F910F91FF9061 +:1034E000EF90DF90CF900895CF93DF93EC010E948F +:1034F000351ABE010E948E07DF91CF910895CB014E +:103500000E94741A08958091C601859585958595C8 +:1035100008958091C6018770089598E0899F900171 +:103520001124262B2093C6010C9479192091C601F1 +:10353000809582238093C601982F977069F430E0BC +:10354000482F552747FD50952417350729F08595B5 +:10355000859585950C949A1908959091C601977058 +:1035600081E009F480E0089590910B01992321F006 +:1035700090910C01911109C020910D0130910E0123 +:10358000F90132969FEF40E01FC0982F96959695CF +:1035900096959F3050F5E0910D01F0910E01E90FE5 +:1035A000F11D877021E030E0A90102C0440F551FD2 +:1035B0008A95E2F7CA019181892B818308959F3F03 +:1035C00039F04F5F4E3041F051915813F8CF0DC094 +:1035D0005111F7CF942FF5CF9F3F39F0F901E90F43 +:1035E000F11D97FDFA9582830895089590910B013E +:1035F000992321F090910C01911109C020910D01A6 +:1036000030910E01F9013296205F3F4F1FC0982F75 +:103610009695969596959F30F0F4E0910D01F09176 +:103620000E01E90FF11D877021E030E0A90102C011 +:10363000440F551F8A95E2F7CA018095918189232D +:10364000818308953196E217F30729F0908198134A +:10365000F9CF1082F7CF089581E090E0E0910D015D +:10366000F0910E01E80FF91F10820196803191054B +:10367000A9F708959091DA01892B8093DA010895D2 +:1036800080959091DA0189238093DA010895109250 +:10369000DA0108959091D901892B8093D901089579 +:1036A00080959091D90189238093D9010895109232 +:1036B000D90108959091D801892B8093D80108955C +:1036C00080959091D80189238093D8010895109214 +:1036D000D80108958093C70108951092C7010895F5 +:1036E00080910D0190910E01FC0131969C01205FAB +:1036F0003F4F80E0919191118F5FE217F307D1F76F +:103700000895E0910D01F0910E018091DA0180831E +:10371000E0910D01F0910E0190818091D901892BEA +:103720008083E0910D01F0910E0190818091D8018C +:10373000892B80838091C701882361F0E0910D017E +:10374000F0910E019081892B80830E94701B811162 +:103750001092C70180910D0190910E010C9466109A +:1037600020E0009739F0AC014150510984239523A2 +:103770002F5FF7CF822F08958091F001843039F1C7 +:103780001092DC0120E488E190E00FB6F894A8954F +:10379000809360000FBE2093600080E00E944B0386 +:1037A00080E00E94680883B7817F846083BF83B70D +:1037B000816083BF7894889583B78E7F83BF88E1CB +:1037C0000FB6F89480936000109260000FBE0895C9 +:1037D0000895089580E00E944B030E94E81B0E9418 +:1037E000C3080E94E91B0E94480991E0811101C0B1 +:1037F00090E0892F08950E943C1580E00E944B03C1 +:103800000E9460210E945A100C9468081F920F9227 +:103810000FB60F9211248F939F93AF93BF93809114 +:10382000DC01811113C08091DD019091DE01A09136 +:10383000DF01B091E0014196A11DB11D8093DD0132 +:103840009093DE01A093DF01B093E001BF91AF91AF +:103850009F918F910F900FBE0F901F90189582E04F +:1038600084BD93E095BD9AEF97BD80936E00089557 +:103870002FB7F8948091DD019091DE01A091DF01D6 +:10388000B091E0012FBF0895CF92DF92EF92FF92A7 +:103890000F931F932FB7F8944091DD015091DE01F3 +:1038A0006091DF017091E0012FBF6A017B01EE247E +:1038B000FF248C0120E030E0C016D106E206F306BA +:1038C00010F4415051099A01281B390BC9011F916D +:1038D0000F91FF90EF90DF90CF9008951F920F927D +:1038E0000FB60F9211248F939F93AF93BF93809144 +:1038F000DD019091DE01A091DF01B091E001019620 +:10390000A11DB11D8093DD019093DE01A093DF0125 +:10391000B093E001BF91AF919F918F910F900FBE37 +:103920000F901F9018950E94570DF8942FEF87EA7B +:1039300091E6215080409040E1F700C0000087E010 +:1039400090EBDC018093FB019093FC01A093FD01BF +:10395000B093FE019CE088E10FB6F894A89580939F +:1039600060000FBE90936000FFCF0E94EF1C81119A +:1039700002C00E94D01C0E94FA1C8093DB010E94AE +:10398000071D8093F90187FB882780F980930C013C +:103990000E94FE1C682F70E080E090E00C94FC1800 +:1039A0006DEE7EEF80E090E00E946B2360E082E0AD +:1039B00090E00E94592360E083E090E00E94592348 +:1039C00060E084E090E00E94592360E085E090E0B0 +:1039D0000E94592360E086E090E00C94592380E037 +:1039E00090E00E94532321E08D3E9E4F09F020E09D +:1039F000822F089582E090E00C944B2383E090E0C6 +:103A00000C944B23682F83E090E00C94592384E0BE +:103A100090E00C944B23682F84E090E00C945923A1 +:103A200086E090E00C944B23682F86E090E00C94A5 +:103A300059238091E30180FF0BC06091120185E062 +:103A4000689FB001112475956795759567952BC092 +:103A500081FF09C06091120185E0689FB0011124C7 +:103A60007595679520C082FF07C06091120185E0BF +:103A7000689FB001112417C09091E4019923D1F0FF +:103A800060911101961788F72091120185E0289F17 +:103A900090011124929FA001939F500D112470E07A +:103AA000CA010E941D236038710540F4611571053B +:103AB00039F002C065E070E0862F08958FE7089521 +:103AC00081E008958091E30180FF08C060911001BA +:103AD00070E0759567957595679521C081FF06C063 +:103AE0006091100170E07595679519C082FF04C060 +:103AF0006091100170E010C09091E4019923C1F031 +:103B000060910F019617A0F780911001899FC00165 +:103B1000112470E00E941D236038710528F461159E +:103B2000710521F0862F08958FE7089581E00895AB +:103B300061E070E0F4CF803F21F40E94191D81956F +:103B400004C0813F29F40E94191D8093E701089564 +:103B5000823F21F40E94191D819504C0833F29F4FE +:103B60000E94191D8093E6010895893F19F40E946F +:103B7000621D05C08A3F31F40E94621D81958093C9 +:103B8000E80108958B3F21F40E94621D819504C0D5 +:103B90008C3F29F40E94621D8093E9010895843FBF +:103BA00021F48091E501816017C0853F21F4809167 +:103BB000E501826011C0863F21F48091E5018460B7 +:103BC0000BC0873F21F48091E501886005C0883FE4 +:103BD00031F48091E50180618093E50108958D3F86 +:103BE00021F48091E30181600BC08E3F21F480912C +:103BF000E301826005C08F3F29F48091E301846076 +:103C00008093E3010895803F39F48091E70187FFB5 +:103C10006CC01092E70169C0813F29F48091E701EF +:103C20001816BCF362C09091E601823F29F497FF19 +:103C30005CC01092E60159C0833F19F41916CCF309 +:103C400054C0893F41F48091E80118160CF04DC032 +:103C50001092E8014AC08A3F29F48091E80187FF69 +:103C600044C0F6CF8B3F39F48091E90187FF3DC016 +:103C70001092E9013AC08C3F29F48091E9011816AD +:103C8000BCF333C0843F21F48091E5018E7F17C0DF +:103C9000853F21F48091E5018D7F11C0863F21F49D +:103CA0008091E5018B7F0BC0873F21F48091E50176 +:103CB000877F05C0883F31F48091E5018F7E809336 +:103CC000E50113C08D3F21F48091E3018E7F0BC08D +:103CD0008E3F21F48091E3018D7F05C08F3F29F451 +:103CE0008091E3018B7F8093E3018091E601811154 +:103CF0000EC08091E70181110AC08091E801811115 +:103D000006C08091E901811102C01092E40108957A +:103D100085EE91E00E9471100E94381C9093E201A0 +:103D20008093E10108951F93CF93DF938091E10188 +:103D30009091E2010E94441CAC019091E40199230E +:103D400021F02091130130E006C0209114018AE097 +:103D5000289F900111244217530708F486C08091D0 +:103D6000E601C091E701D091E8011091E9018111CC +:103D700007C0C11176C0D11174C0111172C075C0D5 +:103D80009F3F19F09F5F9093E401181624F40E945E +:103D9000191D8093E6018091E60187FF05C00E940E +:103DA000191D81958093E6011C1624F40E94191DAB +:103DB0008093E7018091E70187FF05C00E94191DEC +:103DC00081958093E7016091E601662339F1C09106 +:103DD000E701CC2319F1772767FD7095872F972F7F +:103DE0000E942E2223E333E343E35FE30E94922207 +:103DF0000E94FB216093E6016C2F772767FD709589 +:103E0000872F972F0E942E2223E333E343E35FE3C0 +:103E10000E9492220E94FB216093E7011D1624F468 +:103E20000E94621D8093E8018091E80187FF05C030 +:103E30000E94621D81958093E801111624F40E946E +:103E4000621D8093E9018091E90187FF05C00E940E +:103E5000621D81958093E901DF91CF911F910C94B0 +:103E6000881E9F3F09F08ECF96CFDF91CF911F9193 +:103E70000895E5EEF1E085E0DF011D928A95E9F70E +:103E80001092E4011092E3010895833081F128F447 +:103E9000813059F08230D1F00895853009F449C05D +:103EA000B8F1863009F456C0089580911401262F88 +:103EB00030E0280F311D2F3F310524F4680F609347 +:103EC000140108958FEF80931401089580911301D8 +:103ED000262F30E0280F311D2F3F310524F4680FC5 +:103EE0006093130108958FEF8093130108958091DB +:103EF0001201262F30E0280F311D2F3F310524F409 +:103F0000680F6093120108958FEF80931201089556 +:103F100080911101262F30E0280F311D2F3F3105F0 +:103F200024F4680F6093110108958FEF80931101BD +:103F3000089580911001262F30E0280F311D2F3F6A +:103F4000310524F4680F6093100108958FEF80937A +:103F50001001089580910F01262F30E0280F311DA8 +:103F60002F3F310524F4680F60930F0108958FEF00 +:103F700080930F010895833011F128F4813049F0C6 +:103F8000823091F00895853081F120F18630C1F1C1 +:103F9000089580911401681720F4861B8093140102 +:103FA000089510921401089580911301681720F468 +:103FB000861B809313010895109213010895809138 +:103FC0001201681720F4861B809312010895109245 +:103FD0001201089580911101681720F4861B8093C7 +:103FE0001101089510921101089580911001681730 +:103FF00020F4861B809310010895109210010895FB +:1040000080910F01681720F4861B80930F0108959B +:1040100010920F0108950F931F93873208F048C044 +:104020008E3108F092C0803109F47CC008F58730E9 +:1040300009F466C068F4863009F0A2C08091DB0103 +:10404000817F8E7F8093DB0181E08093EB0199C0BB +:104050008B3009F48EC08E3009F092C08091DB0164 +:1040600082FB222720F991E0922790FB82F963C01E +:10407000863109F47EC060F4813109F081C00E946C +:104080003C1590910C0181E0892780930C0171C04F +:10409000893109F46EC08B3109F072C08091DB0167 +:1040A00081FB222720F991E0922790FB81F943C000 +:1040B000883309F45EC050F4893209F45CC085335A +:1040C00009F459C0873209F456C05AC0833409F440 +:1040D00052C028F48A3308F453C0895337C0883457 +:1040E00009F04EC00E943C150FEF13ED20E3015084 +:1040F00010402040E1F700C000000E94931C39C02E +:104100009091DB01892F8095817080FB90F929F0D7 +:10411000966098609093DB0134C0997F977F90936D +:10412000DB0127C08091DB0183FB222720F991E08E +:10413000922790FB83F98093DB019923D1F0809142 +:10414000DB0181608093DB0114C08D5141E050E0C0 +:1041500060E070E08A019B0104C0000F111F221F64 +:10416000331F8A95D2F7C901B8010E94FC180E943A +:104170003C1581E006C061E070E080E090E0F5CFA2 +:1041800080E01F910F91089580E0089580E00895E8 +:10419000CF93C82F8091EB01813069F018F0823005 +:1041A000C9F184C0E0910D01F0910E01808182324D +:1041B00009F07EC007C0E0910D01F0910E018081F1 +:1041C000823261F48C2F0E94C420811104C08C2F94 +:1041D0000E940B201DC081E090E01AC08C2F0E942D +:1041E000C620811114C0C43179F048F4CB3079F085 +:1041F000C03109F061C082E08093EB0108C0C93290 +:1042000019F0C83321F058C01092EB0155C081E07D +:10421000817054C0C93291F120F5C43179F1B0F404 +:10422000C73009F047C08EE18093140182E3809388 +:1042300013018AE08093120184E18093110188E0E8 +:104240008093100188E280930F0134C0CE51C630B4 +:1042500088F5EC2FF0E0E75CFE4F80818093EA0167 +:1042600029C0CE34E9F020F4CB3421F56AE013C044 +:10427000C13579F0C235F1F461E00DC08091EA01F9 +:10428000882319F01092EA0115C081E08093EB01B8 +:1042900015C061E006C08091EA010E94451F0AC076 +:1042A0006AE08091EA010E94BB1F04C01092EB01FA +:1042B00080E004C081E002C080E0AACFCF910895E1 +:1042C0000E94EF1C811102C00E94D01C0E94101D90 +:1042D0008093FA0180FF02C0869501C080E00C94B3 +:1042E0004B038091FA01982F9695292F30E02330C7 +:1042F00031054CF49F5F990F8170892B8160809309 +:10430000FA010E94141D8091FA0186950C944B03CA +:104310008091FA01982F969591F09158990F81709C +:10432000892B8093FA018E7F91E009F490E08091CF +:10433000FA0190FB80F98093FA010E94141D80918C +:10434000FA0186950C944B038091FA01982F909571 +:1043500090FB80F98093FA010E94141D8091FA016C +:1043600080FF02C0869501C080E00C944B039091C1 +:10437000FA01892F86958F5F8F779170843028F4AA +:10438000880F892B8093FA0102C09093FA018091E3 +:10439000FA018E7F91E009F490E08091FA0190FBA0 +:1043A00080F98093FA010E94141D8091FA0186958C +:1043B0000C944B032091FA01922F96958927982F00 +:1043C000990F822F8170892B8093FA018E7F91E063 +:1043D00009F490E08091FA0190FB80F98093FA0152 +:1043E0000E94141D8091FA0186950C944B038091D4 +:1043F000FA018695089504D06894B1118DC008958E +:1044000070D088F09F5790F0B92F9927B751A0F03E +:10441000D1F0660F771F881F991F1AF0BA95C9F758 +:1044200012C0B13081F077D0B1E0089574C0672F29 +:10443000782F8827B85F39F0B93FCCF38695779508 +:104440006795B395D9F73EF49095809570956195F1 +:104450007F4F8F4F9F4F0895E89409C097FB3EF41C +:1044600090958095709561957F4F8F4F9F4F9923C1 +:10447000A9F0F92F96E9BB279395F695879577953F +:104480006795B795F111F8CFFAF4BB0F11F460FFFF +:104490001BC06F5F7F4F8F4F9F4F16C0882311F057 +:1044A00096E911C0772321F09EE8872F762F05C06B +:1044B000662371F096E8862F70E060E02AF09A9506 +:1044C000660F771F881FDAF7880F9695879597F9FB +:1044D000089557FD9058440F551F59F05F3F71F0F4 +:1044E0004795880F97FB991F61F09F3F79F087955B +:1044F0000895121613061406551FF2CF4695F1DFE4 +:1045000008C0161617061806991FF1CF8695710573 +:10451000610508940895E894BB2766277727CB01A7 +:1045200097F908950BD078C069D028F06ED018F0B4 +:10453000952309F05AC05FC01124EECFCADFA0F363 +:10454000959FD1F3950F50E0551F629FF001729F28 +:10455000BB27F00DB11D639FAA27F00DB11DAA1F47 +:10456000649F6627B00DA11D661F829F2227B00D94 +:10457000A11D621F739FB00DA11D621F839FA00D1F +:10458000611D221F749F3327A00D611D231F849F6F +:10459000600D211D822F762F6A2F11249F575040C6 +:1045A0008AF0E1F088234AF0EE0FFF1FBB1F661F61 +:1045B000771F881F91505040A9F79E3F510570F01A +:1045C00014C0AACF5F3FECF3983EDCF38695779555 +:1045D0006795B795F795E7959F5FC1F7FE2B880F15 +:1045E000911D9695879597F9089597F99F6780E8AB +:1045F00070E060E008959FEF80EC089500240A9435 +:104600001616170618060906089500240A941216AD +:104610001306140605060895092E0394000C11F4E0 +:10462000882352F0BB0F40F4BF2B11F460FF04C08D +:104630006F5F7F4F8F4F9F4F089597FB072E16F4A4 +:10464000009407D077FD09D00E94372307FC05D0DE +:104650003EF4909581959F4F0895709561957F4F99 +:104660000895EE0FFF1F0590F491E02D0994AA1B09 +:10467000BB1B51E107C0AA1FBB1FA617B70710F04D +:10468000A61BB70B881F991F5A95A9F7809590957F +:10469000BC01CD010895F999FECF92BD81BDF89A74 +:1046A000992780B50895A8E1B0E042E050E00C946D +:1046B0007323262FF999FECF92BD81BDF89A0197F9 +:1046C00000B4021639F01FBA20BD0FB6F894FA9A5A +:1046D000F99A0FBE08950196272F0E945A230C9431 +:1046E0005923DC01CB01FC01F999FECF06C0F2BDD4 +:1046F000E1BDF89A319600B40D9241505040B8F7A0 +:064700000895F894FFCFBC +:10470600FF5E09EC09C909950961090101C801287B +:1047160008140A321E1F0F03764F5F6F7F496943E5 +:1047260079095953633F4D3639A30556052005E7E8 +:10473600047A049304AC04C50401020304050607C5 +:04474600080900005E +:00000001FF diff --git a/keyboards/planck/keymaps/pete/keymap.c b/keyboards/planck/keymaps/pete/keymap.c new file mode 100644 index 000000000..fb2d9692d --- /dev/null +++ b/keyboards/planck/keymaps/pete/keymap.c @@ -0,0 +1,225 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "planck.h" +#include "action_layer.h" +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _FCT 5 +#define _SETUP 6 +#define _MUSIC 7 +#define _MICMUTE 16 + +// Macro name shortcuts +#define QWERTY M(_QWERTY) +#define COLEMAK M(_COLEMAK) +#define DVORAK M(_DVORAK) +#define LOWER M(_LOWER) +#define RAISE M(_RAISE) +#define FCT M(_FCT) +#define MICMUTE M(_MICMUTE) + +#define MACPRNT LGUI(LSFT(KC_3)) +#define MACPRNT2 LGUI(LSFT(KC_4)) +#define CYCLWIN LGUI(KC_GRV) +#define MAC_SLEP LSFT(LCTL(KC_POWER)) + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_QWERTY] = { + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {FCT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +[_COLEMAK] = { + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {FCT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +[_DVORAK] = { + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + {FCT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +[_LOWER] = { + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {_______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +[_RAISE] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {_______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +[_FCT] = { /* Function */ + {BL_STEP, MAC_SLEP,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_DELT}, + {_______, MICMUTE, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, MACPRNT}, + {_______, CYCLWIN, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, KC_F9, KC_F10, KC_F11, KC_F12, MACPRNT2}, + {FCT, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDOWN,KC_PGUP,KC_END } +}, + +[_SETUP] = { /* Setup */ + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, RESET, RESET, _______, _______, _______, _______, _______} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +#ifdef AUDIO_ENABLE +float tone_startup[][2] = { + {440.0*pow(2.0,(31)/12.0), 12}, + {440.0*pow(2.0,(28)/12.0), 8}, + {440.0*pow(2.0,(19)/12.0), 8}, + {440.0*pow(2.0,(24)/12.0), 8}, + {440.0*pow(2.0,(28)/12.0), 20} +}; + +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +float tone_plover[][2] = SONG(PLOVER_SOUND); +float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); + +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); +float goodbye[][2] = SONG(GOODBYE_SOUND); +#endif + + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case _QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_qwerty, false, 0); + #endif + persistant_default_layer_set(1UL<<_QWERTY); + } + break; + case _COLEMAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_colemak, false, 0); + #endif + persistant_default_layer_set(1UL<<_COLEMAK); + } + break; + case _DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_dvorak, false, 0); + #endif + persistant_default_layer_set(1UL<<_DVORAK); + } + break; + case _LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _SETUP); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _SETUP); + } + break; + case _RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _SETUP); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _SETUP); + } + break; + case _FCT: + if (record->event.pressed) { + layer_on(_FCT); + } else { + layer_off(_FCT); + } + break; + case _MICMUTE: + if (record->event.pressed) { + register_code(KC_RSFT); + register_code(KC_RCTL); + register_code(KC_RALT); + register_code(KC_RGUI); + } else { + unregister_code(KC_RSFT); + unregister_code(KC_RCTL); + unregister_code(KC_RALT); + unregister_code(KC_RGUI); + } + break; + + } + return MACRO_NONE; +}; + +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + _delay_ms(20); // stops the tick + PLAY_NOTE_ARRAY(tone_startup, false, 0); + #endif +} + +#ifdef AUDIO_ENABLE +void play_goodbye_tone() +{ + PLAY_NOTE_ARRAY(goodbye, false, 0); + _delay_ms(150); +} + +uint8_t starting_note = 0x0C; +int offset = 0; + +bool process_action_user(keyrecord_t *record) { + + if (IS_LAYER_ON(_MUSIC)) { + if (record->event.pressed) { + play_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); + } else { + stop_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); + } + return false; + } + return true; +} +#endif diff --git a/keyboards/planck/keymaps/pvc/Makefile b/keyboards/planck/keymaps/pvc/Makefile new file mode 100644 index 000000000..0b2f060de --- /dev/null +++ b/keyboards/planck/keymaps/pvc/Makefile @@ -0,0 +1,24 @@ + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/pvc/compiled.hex b/keyboards/planck/keymaps/pvc/compiled.hex new file mode 100644 index 000000000..9e6f0ffe2 --- /dev/null +++ b/keyboards/planck/keymaps/pvc/compiled.hex @@ -0,0 +1,1635 @@ +:100000000C9467030C94AB030C94AB030C94AB03FC +:100010000C94AB030C94AB030C94AB030C94AB03A8 +:100020000C94AB030C94AB030C94BE170C94901877 +:100030000C94F2250C94AB030C94AB030C94AB031F +:100040000C94AB030C940B040C94AB030C94AB0317 +:100050000C94AB030C945A260C94AB030C94AB0396 +:100060000C94AB030C94AB030C94AB030C94AB0358 +:100070000C94AB030C94AB030C94AB030C94AB0348 +:100080000C947A0D0C94AB030C94AB030C94AB035F +:100090000C94AB030C94AB030C94AB030C94AB0328 +:1000A0000C94AB030C94AB030C94AB037504870462 +:1000B0009B04B404AD04C404D304DB04E304ED04E2 +:1000C000F504FD0404050B051705170517051705AD +:1000D00017051705CF04FD181F190D1A1F190D1A42 +:1000E000641987190D1ADC19EF19D91CD91C081DC0 +:1000F000081D471D671DBD1EBD1E721DBD1E221E93 +:10010000221E891E921EBD1EB71E2F1E2F1E2F1EC1 +:100110002F1E2F1E2F1E2F1E2F1E2F1E2F1E2F1E77 +:100120002F1E2F1E2F1E2F1E2F1E3F1E4D1E541E14 +:100130005B1E651E07634236B79BD8A71A396856FF +:1001400018AEBAAB558C1D3CB7CC5763BD6DEDFDF9 +:10015000753EF6177231BF000000803F08000000B6 +:10016000BE922449123EABAAAA2ABECDCCCC4C3EAC +:1001700000000080BEABAAAAAA3E00000000BF009B +:100180000000803F0000000000084178D3BB438797 +:10019000D1133D190E3CC3BD4282AD2B3E68EC82AB +:1001A00076BED98FE1A93E4C80EFFFBE01C4FF7F30 +:1001B0003F00000000000000000000000000000000 +:1001C00000010204060A0F17202C3A4A5D71879D30 +:1001D000B3C7DAE9F5FCFFFCF5E9DAC7B39D87712F +:1001E0005D4A3A2C20170F0A0604020100000000A5 +:1001F00000000000000000222B0014001A0008007C +:10020000150017001C0018000C00120013002A0033 +:10021000290004001600070009000A000B000D0069 +:100220000E000F0033003400E1001D001B0006002B +:100230001900050011001000360037005200280098 +:10024000E000E3000530E20003302C002C00043015 +:10025000C000500051004F002B0014001A0009008C +:1002600013000A000D000F0018001C0033002900C5 +:100270002A00040015001600170007000B001100EB +:1002800008000C0012003400E1001D001B000600F5 +:10029000190005000E00100036003700520028003B +:1002A000E000E3000530E20003302C002C000430B5 +:1002B000C000500051004F002B00340036003700C2 +:1002C00013001C0009000A00060015000F002A0098 +:1002D000290004001200080018000C0007000B00A1 +:1002E0001700110016003800E100330014000D0063 +:1002F0000E001B00050010001A0019001D00280048 +:10030000E000E3000530E20003302C002C00043054 +:100310005200510050004F0046003A003B003C00A4 +:100320003D00530054005F006000610056004C0027 +:1003300039003E003F0040004100470055005C008E +:100340005D005E0057004900010042004300440088 +:1003500045004800000059005A005B0058004A0060 +:1003600001000100010001000100620062000100C3 +:10037000E600630058004D00010021022F022F000B +:100380002602220220022702300030021F024B0008 +:1003900001002302250257005600330033022D02CC +:1003A0003400340235004E000100310224021E02E6 +:1003B0003502380031002E003602370238024A007A +:1003C0000100010001000100010001000100010025 +:1003D0000100010001004D0053003A003B003C00C9 +:1003E0003D003E003F004000410042004300480005 +:1003F000390044004500680069006A006B006C0029 +:100400006D006E006F004600470000000000000015 +:100410000000000000000000000000000000A80034 +:1004200001000100010001000100AE00AE0001006A +:10043000A900AA00AC00AB002900FD00FE00FF00EF +:100440000000000000000000000000000000290083 +:10045000000000000000000000000000000000009C +:1004600000000000000000000100F800F700F600A6 +:10047000F50000000000000000000000F900FA0094 +:1004800001000100010001000100F400F40001007E +:10049000F000F100F200F3000100073008300930ED +:1004A0000A300B300C300D30010001002550225075 +:1004B00001000030013002300100010001000100A4 +:1004C0000100010001000100010001000100010024 +:1004D00014300050010006300100010026500100D8 +:1004E0000100010001000100010001000100010004 +:1004F0000100010027500100280354006800650036 +:10050000200050006C0061006E0063006B00200052 +:100510004B006500790062006F00610072006400AA +:1005200000002C034F007200740068006F006C0024 +:1005300069006E0065006100720020004B006500DC +:10054000790062006F0061007200640073000000B7 +:100550000403090409026D00040100A0FA09040063 +:10056000000103010100092111010001223F0007E0 +:1005700005810308000A09040100010301020009C2 +:100580002111010001224D000705820308000A091C +:1005900004020001030000000921110100012236BC +:1005A000000705830308000A090403000103000093 +:1005B0000009211101000122390007058403100000 +:1005C000011201100100000008EDFE606001000151 +:1005D00002000105010906A101050719E029E71537 +:1005E0000025019508750181020508190129059565 +:1005F00005750191029501750391010507190029FF +:100600007715002501957875018102C005010980E3 +:10061000A101850216010026B7001A01002AB700C1 +:10062000751095018100C0050C0901A10185031613 +:100630000100269C021A01002A9C02751095018176 +:1006400000C005010902A1010901A1000509190164 +:100650002905150025019505750181029501750390 +:1006600081010501093009311581257F9502750841 +:10067000810609381581257F950175088106050CCD +:100680000A38021581257F950175088106C0C005CD +:10069000010906A101050719E029E71500250195C3 +:1006A0000875018102950175088101050819012964 +:1006B00005950575019102950175039101050719CD +:1006C0000029FF150025FF950675088100C011243B +:1006D0001FBECFEFDAE0DEBFCDBF04B603FE24C0FD +:1006E00080916F0590917005A0917105B091720590 +:1006F0008730904BA740B04BB9F410926F05109221 +:100700007005109271051092720514BE84B7877F30 +:1007100084BF88E10FB6F894809360001092600067 +:100720000FBEE0E0F8E3099514E0A0E0B1E0EAE0F4 +:10073000F3E602C005900D92A031B107D9F715E09C +:10074000A0E1B4E001C01D92AF36B107E1F70E940D +:1007500004150C9483310C940000089581E00895F1 +:100760000C94AD030C94AE030C941E050E944D2D09 +:1007700023E030E0281B3109220F20931404089550 +:10078000282F2F9880918000211108C0877F8093A7 +:10079000800010928D0010928C001BC088608093A6 +:1007A0008000233019F48FEF9FEF0FC083E090E0BB +:1007B000821B9109880F991F2FEF3FEFA90102C0FB +:1007C000569547958A95E2F7CA0190938D008093DC +:1007D0008C000C94B6030E94B60384E0809313044B +:1007E000109210040895279A2F988FEF9FEF9093FF +:1007F0008700809386008AE08093800089E180935F +:1008000081000E94B62C0C94EB030E94F3036E9AB5 +:10081000769A0C948F051F920F920FB60F921124A7 +:100820002F933F938F939F93EF93FF93E091110446 +:10083000F0911204CF010196909312048093110459 +:100840000090130402C0F695E7950A94E2F7EF735F +:1008500080911004823019F4E03251F404C08130E8 +:1008600039F4EF3329F480916F008D7F80936F000E +:10087000F0E0EA54FE4FE49121E031E0E29FC00154 +:10088000E39F900D11240090140402C09695879563 +:100890000A94E2F790938D0080938C00FF91EF9182 +:1008A0009F918F913F912F910F900FBE0F901F90AE +:1008B0001895CF93DF93EC010E944E28BE0180E093 +:1008C00090E0DF91CF910C94E8220F931F93CF9388 +:1008D000DF93462F50E04531510508F0A8C0EC01E8 +:1008E000FA01EA5AFF4F0C9447318A81882309F4B0 +:1008F0009EC081E090E00E9459040AE017ED23E2D7 +:100900003CE340E064E070E080E792E011C08A815F +:10091000882309F48CC082E090E00E9459040AE028 +:1009200017ED23E23CE340E066E070E080E092E017 +:100930000E94F8107CC08A81882309F478C084E082 +:1009400090E00E9459040AE017ED23E23CE340E006 +:1009500068E070E080E392E0EBCF8A81882311F0B9 +:1009600084E006C084E00DC08A81882349F083E0DA +:100970000E94652347E063E084E00E945D0B57C05E +:1009800083E00E948623F6CF8A81882321F085E0C8 +:100990000E9465234CC085E00E94862348C08A815E +:1009A00081110E940D2D8A81882309F440C086E0C0 +:1009B0000E94AB233CC08A818823C9F160E070E0CB +:1009C00080E09EE307C08A81882389F160E070E0BF +:1009D00080E89EE30E949F112AC08A81882339F112 +:1009E00060E070E080E09FE3F5CF8A818823F9F032 +:1009F00060E070E080E49FE3EDCF8A818823B9F066 +:100A00008AE00E94B11113C08A81882381F08AE0B4 +:100A10000E94AB110CC08A81882349F060E070E02D +:100A200080E09FE30E949F1184E60E94A81180E06D +:100A300090E0DF91CF911F910F9108950F931F9335 +:100A4000CF93C82F8FE39CE90197F1F700C0000016 +:100A500090911504C1FF0BC091FD14C000E010E09F +:100A6000980140E062E070E080E991E03AC091FFD7 +:100A700009C000E010E0980140E062E070E080E82A +:100A800091E02FC0C0FF0BC090FD14C000E010E04B +:100A9000980140E062E070E080E791E022C090FFC2 +:100AA00009C000E010E0980140E062E070E080E6FC +:100AB00091E017C0C2FF0BC092FD15C000E010E02E +:100AC000980140E062E070E080E591E00AC092FFAA +:100AD0000AC000E010E0980140E062E070E080E4CD +:100AE00091E00E94F810C0931504CF911F910F91CF +:100AF00008950F931F938FE39CE90197F1F700C0CE +:100B000000000AE017ED23E23CE340E06FE070E014 +:100B100088ED92E00E94F8101F910F91089580E0F7 +:100B20000E94C2110C9479050F931F930AE017EDF0 +:100B300023E23CE340E069E070E080E992E00E945B +:100B4000F8102FEF87EA91E6215080409040E1F7BE +:100B500000C000001F910F910C94AD0C0F931F93D8 +:100B60000AE017ED23E23CE340E065E070E088ED49 +:100B700091E00E94F8101F910F9108950F931F9319 +:100B80000AE017ED23E23CE340E067E070E080EA32 +:100B900091E00E94F8101F910F9108950F931F93F9 +:100BA0000AE017ED23E23CE340E068E070E080E01B +:100BB00091E00E94F8101F910F91089581E008952F +:100BC0000C94DE0508950C94050480916604882336 +:100BD00009F448C08091220490912304009779F48D +:100BE0000E9424269093230480932204809124045D +:100BF00090E0009771F48091250490E00AC00E9473 +:100C0000302620915003309151032817390740F3C3 +:100C100029C00197880F991F880F991FFC01EA5D71 +:100C2000FB4F60817181828193810E94E00CE09191 +:100C3000240484E0E89FF0011124EA5DFB4F608109 +:100C40007181828193814FE050E00E9498108091E1 +:100C5000240490E001966091250470E00E943331F5 +:100C6000809324040C94B003109268040C94AD0C8F +:100C700081E0809368040C94BE058F929F92AF929E +:100C8000BF92EF92FF920F931F93CF93DF93CDB755 +:100C9000DEB7A3970FB6F894DEBF0FBECDBF7C01C1 +:100CA000FC0100811181C8010E942124B8010E9429 +:100CB0003F088C01B7010E94E005882309F4CCC1EC +:100CC0000032F0E51F0741F4F7018281882309F41F +:100CD00058C00E948F11C0C10132F0E51F0741F4D6 +:100CE000F7018281882309F44CC00E949811B4C195 +:100CF0000232F0E51F0751F4F7018281882309F4DD +:100D000040C00E948B118111F0CFE3CF0332F0E598 +:100D10001F0739F4F7018281882399F10E94380670 +:100D20009BC10432F0E51F0739F4F7018281882363 +:100D300041F10E94340690C10532F0E51F0749F4E5 +:100D4000F70182818823E9F0809168048111F1CF55 +:100D5000E5CF0632F0E51F0739F4F70182818823D9 +:100D600081F00E94C5110AC00732F0E51F0749F45F +:100D7000F7018281882329F00E94D0110E94CE05BC +:100D80006BC180916804811105C0F70182818111D6 +:100D9000CFC018C1003E110579F4F7018281882384 +:100DA00009F44DC00E94AD0C81E08093670410925D +:100DB00066041092250450C1023E110559F4F70152 +:100DC00082818823E1F10E94AD0C10926704109299 +:100DD000660442C1033E110591F4F7018281882324 +:100DE00071F10E94AD0C1092670481E0809366045B +:100DF0001092240410922304109222042DC1023573 +:100E0000110559F4F7018281882309F425C18091E5 +:100E10005003909151030A970DC00135110579F4E3 +:100E2000F7018281882309F417C1809150039091C2 +:100E300051030A9690935103809350030DC1409142 +:100E4000540383E2EFE6F3E0DE01119601900D9288 +:100E50008A95E1F7F701808121E030E02C0F3D1FFA +:100E6000280F311DC9012091520330915303FC0119 +:100E7000E20FF31F6081772767FD7095640F711D86 +:100E8000882777FD8095982F0E94552E20E030E02E +:100E900040E451E40E94BA2D4B015C01F70121812D +:100EA00084E090E0821B9109BC01882777FD809542 +:100EB000982F0E94552E9B01AC01C501B4010E94E0 +:100EC000522D9B01AC0160E070E080E090E40E9454 +:100ED000C82F20E030E04CED50E40E94652F4B011C +:100EE0005C01F70182818823D1F04FE050E0C50119 +:100EF000B4010E949810809167048823A1F080912A +:100F0000250424E0829FF0011124EA5DFB4F8082DA +:100F10009182A282B3828F5F8093250404C0C501B1 +:100F2000B4010E94E00C0F3F110508F02ECF94C0D1 +:100F30008091210481111FC0043130E5130709F0AD +:100F400051C00E94E20581E0809321040E94242682 +:100F50009093200480931F041092180410921A0496 +:100F60001092190410921C0410921B0410921E047B +:100F700010921D0471C080911F04909120040E9462 +:100F80003026883C910570F480911804E82FF0E039 +:100F9000EE0FFF1FE75EFB4F118300838F5F80938F +:100FA00018045AC0043880E5180721F005381045A8 +:100FB00001F13AC0F7018281882341F010921604B2 +:100FC00082E01EC0043830E5130759F580911604FD +:100FD000811106C086E20E947D1B86E20E94451CAC +:100FE00082E01CC00438F0E51F0741F305381045C6 +:100FF000D9F4F7018281882331F01092170480E23E +:101000000E94941C29C080911704811106C087E2B8 +:101010000E947D1B87E20E94451C80E20E949B1C6F +:101020001BC00538104529F381E080931604809396 +:101030001704C701A3960FB6F894DEBF0FBECDBF4D +:10104000DF91CF911F910F91FF90EF90BF90AF90E4 +:101050009F908F900C94B20380E0A3960FB6F89403 +:10106000DEBF0FBECDBFDF91CF911F910F91FF90DB +:10107000EF90BF90AF909F908F90089508959CE05F +:10108000799FF001112490E3899FE00DF11D112457 +:10109000E60FF11DEE0FFF1FE850FE4F8591949172 +:1010A0000895880F991FFC01EA58FF4F859194918C +:1010B0000895880F991FFC01EA50FE4F8591949185 +:1010C00008950F931F93CF93DF93EC01811521E3D4 +:1010D0009207A0F5C11580E3D80708F0D7C0C83E35 +:1010E000D105D8F4C03ED10508F007C2C83AD105F1 +:1010F00078F4C53AD10508F06AC0C130D10509F4C9 +:1011000063C008F4F7C1C430D10508F0F6C1F2C1DC +:10111000CB3BD10508F466C0EDC1C11590E2D907FB +:1011200008F0AFC0C11521E0D20708F0E6C1C03F0A +:10113000D10508F4DFC18E0110651FC2C03880E5FB +:10114000D80700F5C03790E5D90708F0A3C0C1154E +:1011500020E5D20709F4ACC050F4CE0190548031A0 +:101160009F4008F0C7C1DF708E01106A06C2C1300F +:1011700080E5D80709F4AEC0C43190E5D90708F47A +:10118000AFC0B8C1C33820E5D20709F48EC050F40F +:10119000C13890E5D90709F482C008F083C000E0A7 +:1011A00011EDEBC1C03181E5D80708F4A3C1C11529 +:1011B00097E5D90708F436C1CE01905781159041C3 +:1011C00008F098C1DF7093C101E010E0D6C1C53AC4 +:1011D000D10509F494C1C63AD10509F093C102E8DA +:1011E00010E4CBC1C83AD10509F48FC1C93AD10581 +:1011F00009F48EC1CA3AD10509F48DC1CB3AD105A3 +:1012000009F48CC1CC3AD10509F48BC1CD3AD10592 +:1012100009F48AC1C03BD10509F489C1CE3AD10590 +:1012200009F488C1CF3AD10509F487C1C13BD10582 +:1012300009F486C1C23BD10509F485C1C33BD10580 +:1012400009F484C1C43BD10509F483C1C53BD10570 +:1012500009F482C1C63BD10509F481C1C73BD10560 +:1012600009F480C1C83BD10509F47FC1C93BD10550 +:1012700009F47EC1CA3BD10509F47DC100E014E444 +:101280007CC1CE019F700E94590878C1DD278E0174 +:10129000106C73C1CF70DD278E01146D6EC100E03C +:1012A00010ED6BC100E012ED68C100E013ED65C107 +:1012B0000E94281F0E94AD0C0E9494058FEF94E3BA +:1012C0002CE0815090402040E1F700C000000E94D7 +:1012D0007F2653C1809143058160809343054DC1B2 +:1012E0000E943628811102C00E9412280E945328B1 +:1012F00090E090936E0580936D05C23080E5D8072D +:1013000021F480916D05816086C0C43090E5D907D5 +:1013100021F480916D0582607EC0C63020E5D20741 +:1013200021F480916D05846076C0C83080E5D807CF +:1013300019F480916D0527C0CA3090E5D90721F4D2 +:1013400080916D05806167C0CC3020E5D20721F423 +:1013500080916D0580625FC0CE3080E5D80721F4B2 +:1013600080916D05806457C0C03190E5D90721F4A4 +:1013700080916D0580684FC0C23120E5D20729F405 +:1013800080916D058460886046C0C33080E5D807D1 +:1013900021F480916D058E7F3EC0C53090E5D90760 +:1013A00021F480916D058D7F36C0C73020E5D207CE +:1013B00021F480916D058B7F2EC0C93080E5D80760 +:1013C00019F480916D0526C0CB3090E5D90721F442 +:1013D00080916D058F7E1FC0CD3020E5D20721F4AE +:1013E00080916D058F7D17C0CF3080E5D80721F43F +:1013F00080916D058F7B0FC0C13190E5D90721F435 +:1014000080916D058F7707C0C331D04531F480914D +:101410006D058B7F877F80936D0580916D050E94A0 +:101420005728ABC08D2F99278F7099278130910550 +:10143000D9F49E012370332702C0880F991F2A9583 +:10144000E2F79C688E0144E0000F111F4A95E1F716 +:1014500000271370802B912B53E0CC0FDD1F5A9582 +:10146000E1F7C076DD272FC08230910531F4DC2F03 +:10147000CC278E01016F106A80C08330910569F41A +:10148000CE018370992701E010E002C0000F111F08 +:101490008A95E2F7C8019C680FC084309105B9F4C1 +:1014A000CE018370992701E010E002C0000F111FE8 +:1014B0008A95E2F7C8019A6823E0CC0FDD1F2A95D0 +:1014C000E1F7C07ED7708C010C2B1D2B56C08530E8 +:1014D000910531F4DC2FCC278E01046F106A4DC0CA +:1014E000069709F04AC0CF71DD27DC2FCC278E018B +:1014F000106243C000E010E040C08E013EC001E831 +:1015000010E43BC003E810E438C002EE14E435C038 +:1015100009EE14E432C00AEE14E42FC005EB14E423 +:101520002CC006EB14E429C007EB14E426C00CEC35 +:1015300014E423C00DEC14E420C003E815E41DC03E +:101540000AE815E41AC002E915E417C004E915E435 +:1015500014C001E216E411C003E216E40EC004E276 +:1015600016E40BC005E216E408C006E216E405C066 +:1015700007E216E402C00AE216E4C801DF91CF9147 +:101580001F910F9108959CE0799FF001112490E341 +:10159000899FE00DF11D1124E60FF11DEE0FFF1FD5 +:1015A000E850FE4F85919491803E9105E0F4803C97 +:1015B000910558F58133910509F46FC048F48932DB +:1015C000910509F463C08A32910509F46DC072C0B7 +:1015D00089339105E9F082389105D1F08533910581 +:1015E00009F44DC067C0833E910581F138F4803E17 +:1015F0009105B9F0823E9105D9F05CC0863E910517 +:1016000061F1873E9105A1F155C00E9451080895EE +:1016100020916D0520FD02C021FF4CC080EE90E0BE +:1016200049C080916D0580FFF9CF89E390E042C009 +:1016300080916D0582FF0EC080916D0584FF03C00F +:1016400080E090E037C083EE90E034C080916D057B +:1016500082FFF2CF82EE90E02DC080916D0583FF76 +:101660000BC080916D0584FDEBCF87EE90E022C02A +:1016700080916D0583FFF5CF86EE90E01BC08091D1 +:101680006D0585FF07C089E290E014C080916D056B +:1016900085FFF9CF85E390E00DC080916D0586FF51 +:1016A00007C08AE290E006C080916D0586FFF9CF01 +:1016B00081E390E00E9461080895CF92DF92EF925B +:1016C000FF920F931F9301E010E020E030E06801EB +:1016D000790104C0CC0CDD1CEE1CFF1C8A95D2F7EE +:1016E00004C0000F111F221F331F6A95D2F70C2967 +:1016F0001D292E293F29C0902605D0902705E0906E +:101700002805F0902905C022D122E222F322842F5D +:10171000C016D106E206F30641F41F910F91FF9027 +:10172000EF90DF90CF900C9465231F910F91FF9065 +:10173000EF90DF90CF900C9486230C94B403E82FA5 +:10174000F0E0E256FC4F8081E82FEF70F0E08295E8 +:101750008F7021E030E0A90102C0440F551F8A9527 +:10176000E2F740A308950F931F93CF93DF9385B7BC +:10177000806885BF85B7806885BFC3E0D0E001E0A1 +:1017800010E0FE01E256FC4F8081E82FEF70F0E0A0 +:1017900021A182958F70A80102C0440F551F8A9520 +:1017A000E2F7CA01822B81A38C2F0E949F0B219705 +:1017B00040F78BE090E061E070E0FC01EE56FC4FFA +:1017C0002081E22FEF70F0E042A122952F70DB0123 +:1017D00002C0AA0FBB1F2A95E2F79D01242B22A36A +:1017E000019758F7DF91CF911F910F910C94E3056A +:1017F000EF92FF920F931F93CF93DF9301E714E0D3 +:10180000C3E0EE24E394F12CD5E08C2F0E949F0BD3 +:101810008BE090E040E050E0FC01EE56FC4F608130 +:10182000E62FEF70F0E020A130E062956F7002C00B +:10183000359527956A95E2F720FD09C09701082E96 +:1018400002C0220F331F0A94E2F7422B532B019759 +:1018500018F7F801929182918F018417950721F072 +:1018600051834083D09355038C2F0E949F0BC1500E +:1018700060F68091550387FD2CC0815080935503FD +:101880008F3F39F08FE99FE00197F1F700C000002A +:1018900020C080916F04909170049093780480939D +:1018A000770480916D0490916E04909376048093F8 +:1018B000750480916B0490916C04909374048093F0 +:1018C00073048091690490916A04909372048093E8 +:1018D00071040E94E50581E0DF91CF911F910F9186 +:1018E000FF90EF900895E82FF0E0EE0FFF1FEF5804 +:1018F000FB4F80819181089508950F931F93CF939B +:1019000009E714E0C0E0F801929182918F010E94F2 +:101910009C25C80FF4E001371F07A9F78C2FCF9142 +:101920001F910F9108950E943628811102C00E94D4 +:1019300012280E946528809358053E9A8091710074 +:101940008D7F8093710082E0809390008AE1809384 +:10195000910081E080937B04089580917B04811144 +:1019600002C00E94930C1092CB041092CA04809182 +:1019700071008D7F80937100809190008F738093B0 +:10198000900010928D0410928C041092C404109256 +:10199000C5041092C6041092C7041092C30410929A +:1019A000C204E2EAF4E0A2E9B4E0119211921192C9 +:1019B00011921D921D9284E0E23CF807B1F7089560 +:1019C000CF92DF92EF92FF920F931F93CF93DF930B +:1019D00020918C04222309F484C06B017C01809146 +:1019E0007B04811102C00E94930C02EC14E0C7E05A +:1019F000D0E0A7019601F8019291829172916291D3 +:101A00008F010E94B62D811131C0FE01EE0FFF1F24 +:101A1000EE0FFF1FEE55FB4F1082118212821382D0 +:101A2000DE01AA0FBB1FAE56BB4F11961C921E9231 +:101A3000C730D105E9F021964481558166817781CF +:101A400040835183628373831482158216821782C6 +:101A500012968D919C91139711969C938E93139649 +:101A60001C921E92129734961296E2CF219708F696 +:101A70008091CA049091CB04019797FD05C0909383 +:101A8000CB048093CA0404C01092CB041092CA0401 +:101A90008091CA049091CB042091C8043091C9046C +:101AA0002817390724F01092C9041092C804892B12 +:101AB000C1F4809171008D7F8093710080919000BE +:101AC0008F73809390001092C4041092C5041092FA +:101AD000C6041092C7041092C3041092C20410925C +:101AE0008C04DF91CF911F910F91FF90EF90DF90C9 +:101AF000CF9008951F920F920FB60F9211244F921C +:101B00005F926F927F928F929F92AF92BF92CF928D +:101B1000DF92EF92FF922F933F934F935F936F93D8 +:101B20007F938F939F93AF93BF93CF93DF93EF9365 +:101B3000FF9380918C04882309F49BC1C091CA044F +:101B4000D091CB041C161D060CF093C140907C0470 +:101B500050907D0460907E0470907F0420E030E01F +:101B6000A901C301B2010E94612F18160CF065C0D3 +:101B7000C130D10509F452C08091C8049091C904C4 +:101B8000BE010E9433317C019093C9048093C80444 +:101B900080908E0490908F04A0909004B090910457 +:101BA00020E030E040E85FE3C501B4010E94522D1F +:101BB00060938E0470938F048093900490939104AB +:101BC000F701EE0FFF1FEE0FFF1FEE55FB4FA301B6 +:101BD000920160817181828193810E94BA2D20E0FF +:101BE00030E040E05EE30E94652F9B01AC01C5013F +:101BF000B4010E94612F18168CF4C7010196BE0132 +:101C00000E9433319093C9048093C80410928E04CB +:101C100010928F041092900410929104E091C804E5 +:101C2000F091C904EE0FFF1FEE0FFF1FEE55FB4FA3 +:101C30006081718182819381D0C0C090C404D090B2 +:101C4000C504E090C604F090C70420E030E0A9018C +:101C5000C701B6010E94B62D2197882309F4A2C0BE +:101C6000FE01EE0FFF1FEE0FFF1FEE55FB4F8080B2 +:101C70009180A280B380A5019401C701B6010E94A2 +:101C8000B62D87FF31C0A501940160E070E08CEDB6 +:101C900093EC0E94BA2D20E030E040E451E40E9431 +:101CA000BA2D20E030E040E05FE30E94652F9B0109 +:101CB000AC0160E070E080E090E40E94C82F9B01DE +:101CC000AC01C501B4010E94652F9B01AC01C701A5 +:101CD000B6010E94B62D87FF07C0A701960160E0FC +:101CE00070E08CED93E439C0A5019401C701B60101 +:101CF0000E94612F18160CF055C0A501940160E0F8 +:101D000070E08CED93E40E94BA2D20E030E040E4D6 +:101D100051E40E94BA2D20E030E040E05FE30E94F1 +:101D2000652F9B01AC0160E070E080E090E40E94D0 +:101D3000C82F9B01AC01C501B4010E94652F9B0116 +:101D4000AC01C701B6010E94612F18165CF5A7010E +:101D5000960160E070E08CED93EC0E94BA2D20E0DB +:101D600030E040E451E40E94BA2D20E030E040E051 +:101D70005FE30E94652F9B01AC0160E070E080E0B2 +:101D800090E40E94C82F9B01AC01C701B6010E94DC +:101D9000652F6093C4047093C5048093C604909328 +:101DA000C70413C0FE01EE0FFF1FEE0FFF1FEE551D +:101DB000FB4F80819181A281B3818093C404909371 +:101DC000C504A093C604B093C7046091C404709185 +:101DD000C5048091C6049091C70420917904309184 +:101DE0007A042F3F4FEF340731F02F5F3F4F30938E +:101DF0007A04209379040E94DB116B017C0120E0BE +:101E000034E244EF51E40E94B62D87FF08C086EF0C +:101E1000C82E88E2D82E84EFE82E81E4F82E20E048 +:101E200030E040E051E4C701B6010E94652F9B01FC +:101E3000AC0160E074E284E79BE40E94BA2D6B0180 +:101E40007C010E94272E709397006093960020914A +:101E50005603309157034091580350915903C701DD +:101E6000B6010E94652F0E94272E709399006093FF +:101E7000980080918D04882309F433C1C0908804B0 +:101E8000D0908904E0908A04F0908B0420E030E048 +:101E9000A901C701B6010E94612F1816D4F58091DF +:101EA000790490917A048F3F2FEF920729F00196E1 +:101EB00090937A0480937904C701B6010E94DB11E4 +:101EC00020E030E040E051E40E94652F9B01AC012E +:101ED00060E074E284E79BE40E94BA2D6B017C0110 +:101EE0000E94272E709397006093960020915603CE +:101EF000309157034091580350915903C701B601DF +:101F00000E94652F0E94272E70939900609398007D +:101F100008C01092970010929600109299001092AB +:101F2000980060918204709183046F5F7F4F70937B +:101F3000830460938204209196003091970080E0A2 +:101F400090E0232BF1F0C0919600D09197000E9471 +:101F5000532E6B017C01BE0180E090E00E94532E65 +:101F60009B01AC016091840470918504809186048A +:101F7000909187040E94BA2D20E03FEF4FE757E48D +:101F800010C00E94532E6B017C0120E030EE4FEF19 +:101F900054E460918404709185048091860490914A +:101FA00087040E94652F9B01AC01C701B6010E9406 +:101FB000612F87FD96C0809180048F5F809380049D +:101FC00090E0209154053091550582179307A0F0B9 +:101FD00080915F05882319F0109280040DC08091D4 +:101FE00071008D7F80937100809190008F7380933A +:101FF000900010928D047DC080918104C091800476 +:10200000811128C0C0905905D0905A05E0905B0519 +:10201000F0905C0520E030E0A901C701B6010E9404 +:10202000612F1816BCF481E080938104109288041B +:102030001092890410928A0410928B04C092840436 +:10204000D0928504E0928604F0928704C150C09338 +:10205000800443C01092810410927A041092790493 +:10206000E0915605F091570548E0C49FE00DF11D41 +:10207000112480819181A281B381809388049093FF +:102080008904A0938A04B0938B0420E030E040E8F8 +:102090005EE364817581868197810E94652F6B0163 +:1020A0007C0180915A03682F70E080E090E00E94EC +:1020B000532E20E030E048EC52E40E94BA2D9B0100 +:1020C000AC01C701B6010E94652F60938404709330 +:1020D0008504809386049093870410928304109261 +:1020E00082048091580580FD04C010928D041092E6 +:1020F0008C04FF91EF91DF91CF91BF91AF919F91B0 +:102100008F917F916F915F914F913F912F91FF90B0 +:10211000EF90DF90CF90BF90AF909F908F907F9087 +:102120006F905F904F900F900FBE0F901F9018957B +:10213000CF92DF92EF92FF92CF93DF936B017C01FE +:10214000EA0180917B04811102C00E94930C80916E +:10215000580580FF46C08091CA049091CB0408972F +:102160000CF03FC0809171008D7F80937100809151 +:102170008D0481110E94AD0C81E080938C0410923B +:102180007A041092790420E030E0A901C701B60179 +:102190000E94612F1816DCF48091CA049091CB0440 +:1021A000FC01EE0FFF1FEE0FFF1FEE55FB4FC0822D +:1021B000D182E282F382FC01EE0FFF1FEE56FB4F4D +:1021C000D183C08301969093CB048093CA048091FD +:1021D000710082608093710080919000806880938C +:1021E0009000DF91CF91FF90EF90DF90CF90089516 +:1021F0008F929F92AF92BF92CF92DF92EF92FF9217 +:102200000F931F93CF93DF93EC017B01D42E4801F2 +:10221000590180917B04811102C00E94930C80912E +:10222000580580FF6BC0809171008D7F8093710095 +:1022300080918C0481110E94AD0C81E080938D040B +:10224000D0935705C0935605F0925505E09254057A +:10225000D0925F058092590590925A05A0925B0535 +:10226000B0925C0510928E0410928F04109290042C +:10227000109291041092800488819981AA81BB8177 +:102280008093880490938904A0938A04B0938B046C +:1022900020E030E040E85EE36C817D818E819F81AB +:1022A0000E94652F6B017C0180915A03682F70E0BA +:1022B00080E090E00E94532E20E030E048EC52E4B1 +:1022C0000E94BA2D9B01AC01C701B6010E94652F87 +:1022D00060938404709385048093860490938704AC +:1022E0001092830410928204809171008260809326 +:1022F000710080919000806880939000DF91CF9171 +:102300001F910F91FF90EF90DF90CF90BF90AF9013 +:102310009F908F90089580915805817008958091C5 +:1023200058058160809358050E9469280C94AE0579 +:10233000809158058E7F809358050C94692860938E +:10234000560370935703809358039093590308954D +:1023500080935A03089590915A03890F80935A03EA +:10236000089590915A03292F30E0281B31092A3013 +:10237000310524F48AE080935A030895981B9093C2 +:102380005A0308958093CC0408958091CC0490E082 +:10239000019666E070E00E9433318093CC0408958A +:1023A0008091CC0490E0019766E070E00E943331A8 +:1023B0008093CC0408958F929F92AF92BF92CF9258 +:1023C000DF92EF92FF920F931F93CF93DF936B01F6 +:1023D0007C01C0917904D0917A04BE0180E090E044 +:1023E0000E94532E4B015C01A701960160E070E052 +:1023F0008CE594E40E94BA2D9B01AC01C501B401A7 +:102400000E94652F0E94272E2091CC04233009F4CE +:1024100073C028F4222351F02130E9F02CC124307C +:1024200009F4A0C0253009F4E0C025C180E090E0A7 +:10243000A0E0BFE38093560390935703A093580303 +:10244000B093590310927C0410927D0410927E0484 +:1024500010927F0410C110927C0410927D0410929F +:102460007E0410927F046431710540F46A30710576 +:1024700060F520E030E040E85EE32BC0693C710588 +:1024800008F0AAC080E090E00E94532E20E030E0E7 +:1024900040EA51E40E94512D20E030E044E353E44F +:1024A0000E94BA2D9B01AC010E94652F20E030E014 +:1024B00040E05EE30E94652F9B01AC0160E070E0AC +:1024C00080E09EE30E94512D44C020E030E040E0D7 +:1024D0005FE3C701B6010E94652F6B017C0180E0BC +:1024E00090E0A0E0BEE38093560390935703A0933F +:1024F0005803B0935903BFC010927C0410927D041E +:1025000010927E0410927F044AE0469F9001479FFC +:10251000300D1124C90168EB7BE00E941F31BC0122 +:102520006C5D754077FF03C07195619571098827CF +:1025300077FD8095982F0E94552E2EE333EC4EE2C6 +:1025400059E30E94652F20E030E040EC5EE30E94FA +:10255000522D6093560370935703809358039093C2 +:10256000590389C010927C0410927D0410927E045D +:1025700010927F04CE0183709927892BE1F0BE0170 +:102580006170772780E090E00E94532E20E030E0D9 +:1025900040E05EE30E94652F20E030E040E45FE32E +:1025A0000E94522D609356037093570380935803F3 +:1025B000909359030CC080E090E0A0E0BFE38093CB +:1025C000560390935703A0935803B0935903C770D1 +:1025D000DD27CD2B09F04FC0109256031092570300 +:1025E000109258031092590346C010927C04109226 +:1025F0007D0410927E0410927F0400E010E020E041 +:102600003FE30093560310935703209358033093EE +:1026100059036739710578F180E090E00E94532EEC +:1026200020E030E047E153E40E94512D20E030E00B +:102630004AE754E40E94BA2D20E030E048E452E436 +:102640000E94652F20E030E040EA51E40E94972E7E +:102650000E94222E660F771F660F771FFB01EE5533 +:10266000FC4F2081318142815381C701B6010E9414 +:10267000652F6B017C01C701B601DF91CF911F91DE +:102680000F91FF90EF90DF90CF90BF90AF909F9011 +:102690008F9008958091DD040895CF93DF9300D04B +:1026A0001F92CDB7DEB79C0180916405843019F587 +:1026B00093E099833B832A839093E9008FEF909175 +:1026C000E800815095FD06C095ED9A95F1F7000060 +:1026D0008111F5CF8091E80085FF0DC040E050E00A +:1026E00063E070E0CE0101960E94AE158091E80093 +:1026F0008E778093E8000F900F900F90DF91CF912D +:102700000895CF93DF9300D01F92CDB7DEB720910D +:102710006405243021F522E029839B838A8383E0AA +:102720008093E9008FEF9091E800815095FD06C0FD +:1027300095ED9A95F1F700008111F5CF8091E800B1 +:1027400085FF0DC040E050E063E070E0CE010196EF +:102750000E94AE158091E8008E778093E8000F907C +:102760000F900F90DF91CF91089520916405243050 +:10277000F1F422E02093E9002FEF3091E80021509E +:1027800035FD06C035ED3A95F1F700002111F5CF82 +:102790002091E80025FF0BC040E050E065E070E0CC +:1027A0000E94AE158091E8008E778093E80008952E +:1027B000CF93DF93EC0190916405943009F046C00B +:1027C000809165038823D9F0809166038823B9F04E +:1027D0009093E9008FEF9091E800815095FD06C03D +:1027E00095E19A95F1F700008111F5CF8091E8000D +:1027F00085FF2CC040E050E060E170E017C081E050 +:102800008093E9008FEF9091E800815095FD06C01C +:1028100095ED9A95F1F700008111F5CF8091E800D0 +:1028200085FF14C040E050E068E070E0CE010E94F7 +:10283000AE158091E8008E778093E80080E1FE017C +:10284000ADECB4E001900D928A95E1F7DF91CF9164 +:10285000089580916305811109C00E9443170E9469 +:10286000A0178091E20084608093E20008951092A6 +:1028700063050895089508950C94E72542E061ECFE +:1028800081E00E94BD1642E061EC82E00E94BD162C +:1028900042E061EC83E00E94BD1642E161EC84E01D +:1028A0000C94BD1680916605833009F455C030F450 +:1028B000813071F0823009F48EC008958A3009F4B5 +:1028C0007AC08B3009F460C0893009F09CC020C008 +:1028D00080916505813A09F096C08091E800877F74 +:1028E0008093E8008091690590916A05892B21F415 +:1028F00060E18DEC94E003C060E080E090E070E087 +:102900000E94F9158091E8008B778093E800089584 +:1029100080916505813209F076C0809169059091BA +:102920006A05009719F0039709F06DC08091E800DF +:10293000877F8093E8008091E80082FD05C0809148 +:1029400064058111F8CF5FC08091F1008093DD04B0 +:102950008091E8008B7753C080916505813A09F03A +:1029600052C08091690590916A05892B09F04BC08E +:102970008091E800877F8093E8008091E80080FFE5 +:10298000FCCF8091650336C0809165058132D9F511 +:102990008091690590916A05892BA9F58091E800DD +:1029A000877F8093E8000E94F216809167058093EC +:1029B00065030C94281F80916505813221F5809173 +:1029C000E800877F8093E8000E94F21680916805F6 +:1029D0008093DE04089580916505813AA1F4809189 +:1029E000E800877F8093E8008091E80080FFFCCFBB +:1029F0008091DE048093F1008091E8008E778093CF +:102A0000E8000C94F216089584B7877F84BF88E1AC +:102A10000FB6F89480936000109260000FBE90E0B3 +:102A200080E80FB6F89480936100909361000FBE28 +:102A30000E94951A0E9443170E94A0178091E200FD +:102A400084608093E20078940E94261A0E94971A6C +:102A50008BE593E00E94411A80916405853069F40A +:102A60000E94A825809162058823B1F30E94D62593 +:102A7000882391F30E949815EFCF0E949F1AECCF04 +:102A8000292F332723303105C9F064F42130310573 +:102A900081F02230310509F043C08DE690E024E555 +:102AA00035E042C021323105F1F02232310541F1E9 +:102AB00037C082E190E021EC35E036C099278130C3 +:102AC000910541F08230910541F0892B49F5E0E50F +:102AD000F5E005C0E2E2F5E002C0E8EFF4E0849141 +:102AE00090E09F0121C06430D8F4E62FF0E0EE0FB3 +:102AF000FF1FE250FC4F2081318189E090E014C03B +:102B0000643070F470E0FB01EE0FFF1FEA50FC4FE1 +:102B100020813181FB01EE50FC4F808190E004C0A8 +:102B200080E090E020E030E0FA01318320830895D6 +:102B300080E189BD82E189BD09B400FEFDCF8091AD +:102B4000D8008F7D8093D8008091E00082608093D0 +:102B5000E0008091E00081FDFCCF0895CF92DF92EC +:102B6000EF92FF920F931F93CF93DF93EC018B01B2 +:102B70006A010E941117811133C0C114D10439F0C8 +:102B8000F60180819181081B190BC80FD91FE12C18 +:102B9000F12C0115110519F18091E80085FD16C091 +:102BA0008091E8008E778093E800C114D10449F049 +:102BB000F60180819181E80EF91EF182E08285E0C4 +:102BC0000FC00E941117882321F30AC089918093B6 +:102BD000F10001501109FFEFEF1AFF0ADACF80E090 +:102BE000DF91CF911F910F91FF90EF90DF90CF90E9 +:102BF000089520916B0530916C052617370748F032 +:102C00006115710539F42091E8002E772093E800D2 +:102C100001C0B90140E061157105A9F12091640579 +:102C2000222309F443C0253009F442C02091E80072 +:102C300023FD40C02091E80022FD32C02091E80031 +:102C400020FFE9CF4091F3002091F20030E0342BD7 +:102C5000FC01CF016115710559F02830310540F4B0 +:102C600081918093F100615071092F5F3F4FF1CF47 +:102C700041E02830310509F040E02091E8002E774E +:102C80002093E800C8CF4111C9CF0AC080916405E4 +:102C9000882361F0853061F08091E80083FD0AC0EF +:102CA0008091E80082FFF2CF80E0089582E00895ED +:102CB00083E0089581E0089520916B0530916C05C3 +:102CC0002617370748F06115710539F42091E8009F +:102CD0002E772093E80001C0B901FC0120E06115C6 +:102CE000710591F180916405882309F440C0853015 +:102CF00009F43FC08091E80083FD3DC08091E80069 +:102D000082FD2FC08091E80080FFE9CF2091F30081 +:102D10008091F20090E0922B6115710559F0883096 +:102D2000910540F424912093F1003196615071098E +:102D30000196F2CF21E0089709F020E08091E800A9 +:102D40008E778093E800CBCF2111CCCF0AC0809141 +:102D50006405882361F0853061F08091E80083FD8F +:102D60000AC08091E80082FFF2CF80E0089582E0FF +:102D7000089583E0089581E00895982F973058F5DD +:102D80009093E900981739F07091EC002091ED00D4 +:102D90005091F00003C0242F762F50E021FF19C07E +:102DA0003091EB003E7F3093EB003091ED003D7FA2 +:102DB0003093ED003091EB0031603093EB00709375 +:102DC000EC002093ED005093F0002091EE0027FFDF +:102DD00007C09F5FD3CF8F708093E90081E0089593 +:102DE00080E008958091650587FF11C08091E8001B +:102DF00082FD05C0809164058111F8CF11C08091DA +:102E0000E8008B770BC080916405882349F080919E +:102E1000E80080FFF8CF8091E8008E778093E8008B +:102E200008952091E4003091E50095E64091EC0092 +:102E3000842F817040FF22C08091E80080FD1CC07B +:102E400080916405882391F0853091F08091EB00AA +:102E500085FD10C04091E4005091E50042175307F2 +:102E600029F39A01915011F784E0089582E00895C2 +:102E700083E0089581E0089580E008954091E8009E +:102E800042FFDECF08950E94B1170E94B917E0EE0D +:102E9000F0E0808181608083E8EDF0E080818F77D1 +:102EA000808319BCA7EDB0E08C918E7F8C938081DC +:102EB0008F7E80831092630508950F931F93CF93A5 +:102EC000DF930E94B1170E94B917C8EDD0E0888146 +:102ED0008F77888388818068888388818F7D8883C5 +:102EE00019BC109264051092600510926205109250 +:102EF000610500EE10E0F80180818B7F808388817E +:102F00008160888342E060E080E00E94BD16E1EECF +:102F1000F0E080818E7F8083E2EEF0E0808181604E +:102F20008083808188608083F80180818E7F8083A8 +:102F3000888180618883DF91CF911F910F910895DF +:102F4000E8EDF0E080818F7E8083E7EDF0E0808126 +:102F50008160808384E082BF81E0809363050C946C +:102F60005D17E8EDF0E080818E7F80831092E200B3 +:102F700008951092DA001092E10008951F920F92C6 +:102F80000FB60F9211242F933F934F935F936F933C +:102F90007F938F939F93AF93BF93EF93FF93809112 +:102FA000E10082FF0BC08091E20082FF07C08091A8 +:102FB000E1008B7F8093E1000E94251A8091DA0066 +:102FC00080FF1FC08091D80080FF1BC08091DA0075 +:102FD0008E7F8093DA008091D90080FF0DC080E160 +:102FE00089BD82E189BD09B400FEFDCF81E08093F7 +:102FF00064050E94291405C019BC109264050E9442 +:1030000037148091E10080FF19C08091E20080FFB9 +:1030100015C08091E2008E7F8093E2008091E200F3 +:1030200080618093E2008091D80080628093D80014 +:1030300019BC85E0809364050E943B148091E100F7 +:1030400084FF30C08091E20084FF2CC080E189BD04 +:1030500082E189BD09B400FEFDCF8091D8008F7D4B +:103060008093D8008091E1008F7E8093E100809171 +:10307000E2008F7E8093E2008091E2008160809385 +:10308000E20080916005882311F084E007C0809100 +:10309000E30087FD02C081E001C083E08093640506 +:1030A0000E943C148091E10083FF29C08091E200DE +:1030B00083FF25C08091E100877F8093E10082E05B +:1030C00080936405109260058091E1008E7F80936B +:1030D000E1008091E2008E7F8093E2008091E20027 +:1030E00080618093E20042E060E080E00E94BD16D3 +:1030F0008091F00088608093F0000E943A14FF9164 +:10310000EF91BF91AF919F918F917F916F915F915F +:103110004F913F912F910F900FBE0F901F901895D8 +:103120001F920F920FB60F9211242F933F934F933C +:103130005F936F937F938F939F93AF93BF93CF933F +:10314000DF93EF93FF93C091E900CF708091EC0083 +:10315000D82FD17080FDD0E81092E9008091F00066 +:10316000877F8093F00078940E94D4181092E90031 +:103170008091F00088608093F000CD2BCF70C093D9 +:10318000E900FF91EF91DF91CF91BF91AF919F91B6 +:103190008F917F916F915F914F913F912F910F9000 +:1031A0000FBE0F901F9018951F93CF93DF93CDB74D +:1031B000DEB7AA970FB6F894DEBF0FBECDBFE5E627 +:1031C000F5E088E08E0F9091F10091938E13FBCF84 +:1031D0000E9452148091E80083FF1FC18091650511 +:1031E00090916605492F50E04A30510508F015C10D +:1031F000FA01E559FF4F0C944731803881F082384D +:1032000009F00BC1809169058F708093E90080916E +:10321000EB0085FB882780F91092E90006C08091B9 +:10322000610590916205911182609091E800977F0D +:103230009093E8008093F1001092F100C8C0282F0D +:103240002D7F09F0EAC0882319F0823061F0E5C0D3 +:1032500080916705813009F0E0C0933009F080E08B +:10326000809362052BC080916705811127C08091F2 +:1032700069058F7009F4D1C08093E9002091EB00BB +:1032800020FF1CC0933021F48091EB00806214C0B9 +:103290009091EB0090619093EB0021E030E0A90168 +:1032A00002C0440F551F8A95E2F74093EA0010923E +:1032B000EA008091EB0088608093EB001092E900B7 +:1032C0008091E800877F86C08111A7C010916705B3 +:1032D0001F778091E3008078812B8093E3008091B9 +:1032E000E800877F8093E8000E94F2168091E80052 +:1032F00080FFFCCF8091E30080688093E300111190 +:1033000002C082E001C083E08093640586C08058DB +:10331000823008F082C080916705909168058C3DED +:1033200053E0950779F583E08A838AE289834FB772 +:10333000F894DE01139620E03EE051E2E32FF0E046 +:1033400050935700E49120FF03C0E295EF703F5F78 +:10335000EF708E2F90E0EA3010F0C79601C0C09653 +:103360008D939D932F5F243149F74FBF8091E800E3 +:10337000877F8093E8006AE270E0CE0101960E94A8 +:10338000F91514C0AE014F5F5F4F609169050E944F +:103390004015BC01009709F440C09091E800977F68 +:1033A0009093E80089819A810E945C168091E800E0 +:1033B0008B778093E80031C0803879F58091E80000 +:1033C000877F8093E800809160058093F100809171 +:1033D000E8008E778093E8000E94F2161EC08111EB +:1033E0001CC0909167059230C0F48091E800877FFF +:1033F0008093E800909360050E94F216809160052A +:10340000811106C08091E30087FD02C081E001C008 +:1034100084E0809364050E943E148091E80083FF5D +:103420000AC08091E800877F8093E8008091EB00DC +:1034300080628093EB00AA960FB6F894DEBF0FBEB1 +:10344000CDBFDF91CF911F9108950895CF938091C3 +:1034500064058823A1F0C091E900CF709091EC0041 +:10346000892F817090FD80E8C82B1092E90080912F +:10347000E80083FD0E94D418CF70C093E900CF917B +:1034800008959093E4048093E3040895E091E304A5 +:10349000F091E404309721F00190F081E02D09943F +:1034A00080E00895E091E304F091E404309721F086 +:1034B0000280F381E02D09940895E091E304F091F6 +:1034C000E404309721F00480F581E02D09940895FB +:1034D0002091E1043091E2048217930771F09093F8 +:1034E000E2048093E104E091E304F091E404309776 +:1034F00021F00680F781E02D099408952091DF04E2 +:103500003091E0048217930771F09093E004809368 +:10351000DF04E091E304F091E404309721F00084AB +:10352000F185E02D0994089508950C94941A0E9451 +:103530001B260E94B30B0E94E5260C94B62C5F92CA +:103540006F927F928F929F92AF92BF92CF92DF92B3 +:10355000EF92FF920F931F93CF93DF9300D000D091 +:103560001F92CDB7DEB70E94F80B9EEEC92E94E0F5 +:10357000D92E03E010E0AA24A394B12C502E802F62 +:103580000E94730C4C01F601729062906F016826E4 +:10359000792661147104A1F40150110978F78FEFB5 +:1035A00089838A831B820E9424268160782F9D83D1 +:1035B0008C8349815A816B818D810E944F1B38C059 +:1035C0008091430581FD0E947C0C2BE030E0750169 +:1035D000022E02C0EE0CFF1C0A94E2F7C7018621FE +:1035E0009721892B09F129835A828E209F2091E00F +:1035F000892809F490E09B830E9424268160782F1B +:103600009D838C8349815A816B818D810E944F1BE0 +:10361000000F111FF801EA51FB4F80819181E826CC +:10362000F926F182E08204C02150310980F6B4CF3E +:103630000E94E8291091E5040E94461A1817D1F05B +:103640000E94461A8093E5040F900F900F900F9000 +:103650000F90DF91CF911F910F91FF90EF90DF902E +:10366000CF90BF90AF909F908F907F906F905F9022 +:103670000C949D0B0F900F900F900F900F90DF9177 +:10368000CF911F910F91FF90EF90DF90CF90BF905F +:10369000AF909F908F907F906F905F900895CF93A1 +:1036A000DF93CDB7DEB72B970FB6F894DEBF0FBE12 +:1036B000CDBF4F83588769877A878B87DE01119644 +:1036C00086E0FD0111928A95E9F785E0FE013796C3 +:1036D00001900D928A95E1F749815A816B817C8135 +:1036E0008D819E810E94C6212B960FB6F894DEBF75 +:1036F0000FBECDBFDF91CF910895CF93882309F4FA +:10370000C2C0C82F823859F40E94461A81FDBBC03E +:1037100089E30E94A0240E946D2589E30CC08338B0 +:1037200079F40E94461A80FDAEC083E50E94A02471 +:103730000E946D2583E50E94E224CF910C946D25B3 +:10374000843859F40E94461A82FD9DC087E40E9485 +:10375000A0240E946D2587E4EECF8CEF8C0F813A78 +:1037600048F48C2F0E941E2C81118DC08C2F0E943A +:10377000A024E3CF80E28C0F883048F4C77081E04A +:1037800001C0880FCA95EAF70E942625D6CF8BE59F +:103790008C0F833078F4C53A29F0C63A31F083E8CB +:1037A00090E005C081E890E002C082E890E0CF910F +:1037B0000C94681A88E58C0F833108F064C0C83A0D +:1037C00039F1C93A41F1CA3A49F1CB3A51F1CC3A0F +:1037D00059F1CD3A61F1C03B69F1CE3A71F1CF3A7E +:1037E00079F1C13B81F1C23B89F1C33B91F1C43B0B +:1037F00099F1C53BA1F1C63BA9F1C73BB1F1C83B6B +:10380000B9F1C93BC1F1CA3BC9F180E090E038C0D1 +:1038100082EE90E035C089EE90E032C08AEE90E012 +:103820002FC085EB90E02CC086EB90E029C087EBA1 +:1038300090E026C08CEC90E023C08DEC90E020C09E +:1038400083E891E01DC08AE891E01AC082E991E026 +:1038500017C084E991E014C081E292E011C083E2D4 +:1038600092E00EC084E292E00BC085E292E008C0D4 +:1038700086E292E005C087E292E002C08AE292E02E +:10388000CF910C947E1ACF910895882309F44BC0F0 +:10389000823859F40E94461A81FF45C089E30E948C +:1038A000A0240E946D2589E30CC0833871F40E9426 +:1038B000461A80FF38C083E50E94A0240E946D252F +:1038C00083E50E94E2240C946D25843859F40E940B +:1038D000461A82FF28C087E40E94A0240E946D251A +:1038E00087E4EFCF9CEF980F913A58F390E2980F4E +:1038F000983050F4877091E001C0990F8A95EAF7EB +:10390000892F0E942C25DFCF9BE5980F933020F460 +:1039100080E090E00C94681A885A833120F480E0AB +:1039200090E00C947E1A0895882321F00E942625A9 +:103930000C946D250895882321F00E942C250C9469 +:103940006D2508957F928F929F92AF92BF92CF92F2 +:10395000DF92EF92FF920F931F93CF93DF931F920B +:10396000CDB7DEB77C01C62E772EFC01058102950E +:103970000F70128111110E9443250E9499248823FF +:1039800079F0112369F080E28C0D883048F082E0F4 +:103990000E9482240E94992491E0D82ED92601C049 +:1039A000D12CE72DE295EF70F0E0EB58FF4F0C942F +:1039B0004731872D807F072D0F70882311F00295E6 +:1039C000007F112389F0002309F499C180E28C0D56 +:1039D000883020F4802F0E94262503C0802F0E946B +:1039E00036250E946D258BC18C2D0E94451C00231D +:1039F00009F4C3C180E28C0D883020F4802F0E942E +:103A00002C2503C0802F0E943C250E946D25B5C146 +:103A1000872D807F972D9F70803211F4892F03C0EE +:103A2000892F8295807FCC2021F0F1E0CF16A1F084 +:103A30001DC0112339F0002319F1013009F50E944E +:103A400056259BC1002319F0013009F496C18983E2 +:103A50000E945925898110C1112321F0063008F0F8 +:103A60008CC10EC0053008F088C106C1112359F081 +:103A7000002331F0F701958190FF41C19F7095833C +:103A80000E94941C7AC1002309F4F6C03EC1872D20 +:103A900086958695837090E0009719F0019761F004 +:103AA0006CC1112321F08C2D972D937002C080E002 +:103AB00090E00E94681A61C1112321F08C2D972D8E +:103AC000937002C080E090E00E947E1A56C18C2D57 +:103AD000112319F00E94F02802C00E9458290E9468 +:103AE000DD294BC1872D837009F052C0111145C1EA +:103AF0008C2D829586958770880F880F9C2D9F70DE +:103B0000892E912CA12CB12C082E04C0880C991C54 +:103B1000AA1CBB1C0A94D2F7C4FE14C00FE010E02C +:103B200020E030E0B901A80104C0440F551F661F12 +:103B3000771F8A95D2F7CB01BA0160957095809571 +:103B4000909503C060E070E0CB01272D2695269567 +:103B5000237030E02230310569F02330310589F0DF +:103B6000682979298A299B292130310571F00E9421 +:103B70000E2303C1682979298A299B290E942A23B7 +:103B8000FCC00E940E23C501B4010E94F222F5C0C0 +:103B9000112319F0872D817001C08695882309F4BF +:103BA000ECC08C2D829586958770880F880F9C2D90 +:103BB0009F70892E912CA12CB12C082E04C0880C4A +:103BC000991CAA1CBB1C0A94D2F7C4FE14C00FE0B7 +:103BD00010E020E030E0B901A80104C0440F551FF7 +:103BE000661F771F8A95D2F7CB01BA016095709551 +:103BF0008095909503C060E070E0CB01272D26955D +:103C000026952370422F50E04230510569F0433031 +:103C1000510589F0682979298A299B294130510564 +:103C200071F00E94E823A9C0682979298A299B2973 +:103C30000E940424A2C00E94E823C501B4010E948E +:103C4000CC239BC08C2D90E0FC01E05EF109E531B6 +:103C5000F10508F050C0EB57FF4F0C9447310C2D85 +:103C60000F70872D8F71112321F00E946523802F03 +:103C700007CF0E948623802F0E949B1C7EC01123A9 +:103C800041F0053008F079C0872D8F710E94AB2379 +:103C900074C0063008F071C0F7CF112339F0872DBA +:103CA0008F710E94652369C01123C9F3872D8F711D +:103CB0000E94862362C0112329F0872D8F710E94F4 +:103CC00050235BC00E94462358C0112351F0172D8A +:103CD0001F71812F0E94652363E0812F0E94792448 +:103CE0004CC081E00E948224023008F446C082E089 +:103CF0000E94822442C0112331F0002381F28C2DD6 +:103D00000E947D1B3AC0002389F28C2D0E94451C25 +:103D100034C0472D4F706C2DC7010E9465040E946E +:103D20006A222BC0111129C0472D4F7050E042303C +:103D30005105B9F04CF44115510581F04130510560 +:103D4000E1F40E94DE2C19C04330510569F0443083 +:103D5000510599F48C2D0E94302D0FC00E94C72C64 +:103D60000CC00E94FA2C09C00E940D2D06C0472DE0 +:103D70004F706C2DC7010E943E08DD20F9F00E94B3 +:103D8000752480FD1BC0F70112820E946F240E94DF +:103D90006523C7010E94ED1E0E946F240F90DF91E2 +:103DA000CF911F910F91FF90EF90DF90CF90BF9038 +:103DB000AF909F908F907F900C9486230F90DF910F +:103DC000CF911F910F91FF90EF90DF90CF90BF9018 +:103DD000AF909F908F907F9008950F931F93CF93F4 +:103DE000DF93EC01888199812B813C81232BB9F0F1 +:103DF0009F3F11F48F3F99F0CE010E943D0688232A +:103E000071F0688179818A810E946B248C010E9403 +:103E100020240E94E722B801CE010E94A21CDF915B +:103E2000CF911F910F9108950E9443250E94532521 +:103E30000E9418250E946D250E948E2A0E94DD296D +:103E400080E090E00E94681A80E090E00C947E1A76 +:103E50000E9433250C94141F0E946024292F229560 +:103E60002F7030E02C3031054CF42A3031056CF4E1 +:103E70002250310922303105A8F407C02C30310519 +:103E800069F02F30310551F00DC0803F69F018F412 +:103E9000803E40F409C0843F29F406C093FB882784 +:103EA00080F9089580E0089581E00895CF93DF932D +:103EB00000D000D01F92CDB7DEB70F900F900F90BB +:103EC0000F900F90DF91CF910895CF93DF9300D0A3 +:103ED00000D000D0CDB7DEB726960FB6F894DEBF7F +:103EE0000FBECDBFDF91CF9108951F93CF93DF9386 +:103EF000C091EE0416E08091EF04C81799F0D0E06D +:103F00001C9FF0011D9FF00D1124E051FB4F4081DB +:103F1000518162817381848195810E94651F219600 +:103F2000C770E9CFDF91CF911F910895409120058F +:103F300050912105609122057091230580912405FF +:103F4000909125050C94651F8091250582958F70B1 +:103F500009F054C080912205882309F44FC0809154 +:103F6000EE04A091EF04609120057091210540912D +:103F7000230550912405B6E08A1709F43FC090E06C +:103F800041155105C1F17F3F11F46F3FA1F1B89F79 +:103F9000F001B99FF00D1124E051FB4F2181721304 +:103FA0002AC02081621327C02281211124C02381CD +:103FB00034812417350710F421503109241B350BA7 +:103FC000283C3105C0F4209125052F7020612093F5 +:103FD000250526E0289FF001299FF00D1124EB50C4 +:103FE000FB4F80818F708061808380E295E00E942A +:103FF000ED1E0C94751F01968770BECF0895CF9269 +:10400000DF92EF92FF920F931F93CF93DF93CDB781 +:10401000DEB762970FB6F894DEBF0FBECDBF8C013E +:1040200085E0F801DE011D9601900D928A95E1F779 +:10403000D8014C9111965C91119712966C91129740 +:104040001396CD90DC901497309120057091210546 +:104050008091230590912405009709F46BC17F3F5F +:1040600019F43F3F09F466C1E0902205EE2009F4FF +:10407000C0C020912505C816D90628F0F601E81B16 +:10408000F90BCF0104C0809590958C0D9D1DFF24E8 +:10409000F394883C910578F0F12C207F09F0C6C09C +:1040A0007C2DD98AC88A89890E94561F80E295E0B2 +:1040B0000E94ED1EB1C0822F807F09F046C07513AB +:1040C00014C0341312C0611110C02F7020612093EE +:1040D00025050E94961F80E295E00E94ED1E8091CA +:1040E0002505D80115968C932EC0CD2819F15F3F78 +:1040F00011F44F3FF9F0F62E61111CC08091EE04CF +:104100002091EF0436E0821709F45AC090E0389FFE +:10411000F001399FF00D1124E051FB4F71815713CD +:1041200006C07081471303C07281711103C00196EC +:104130008770E9CFF62E662309F418C18091250512 +:10414000816080932505F12C11C1751308C03413CB +:1041500006C0611104C080912505D801C3C04D87F8 +:104160005E878D859E856A8B0E942C1F6A898823B5 +:10417000E1F16623D1F120912505822F82958F7080 +:1041800090E0029774F08091200590912105988726 +:104190008F831986DB86CA862C87CE0107960E94FC +:1041A000ED1E86E0F801A0E2B5E001900D928A953F +:1041B000E1F70E94A41F0E94961FFF24F394D6C02B +:1041C0004D875E878D859E850E946024292F2295CC +:1041D0002F7030E0223031050CF0BCC09F7009F028 +:1041E000B6C0805E883008F4C1C0C8010E94ED1ED0 +:1041F000E4CFC816D90608F453C0F601E81BF90B42 +:10420000CF01883C910508F450C0F12C7C2DD98A4F +:10421000C88A89890E94561FE0E2F5E086E0DF0146 +:104220001D928A95E9F70E94961FA0C0751314C0CD +:10423000341312C0611110C080912505F8018583E7 +:10424000C8010E94ED1E86E0E0E2F5E0DF011D926C +:104250008A95E9F7FE2C8AC04D875E878D859E85FD +:104260006A8B0E942C1F6A89882309F4BECF6623BB +:1042700009F4BBCF20912505822F82958F7090E0A5 +:1042800002970CF48ECF80912005909121059A839E +:1042900089831B82DD82CC822E83CE0101967FCF63 +:1042A000809590958C0D9D1DACCFF62E662309F45C +:1042B0009CCF75132EC034132CC02091250520FDF2 +:1042C0001FC0822F82958F70D9F0D80115962C933C +:1042D00015978F3049F08F5F982F9295907F822F9E +:1042E0008F70892B15968C93C8010E94ED1E86E075 +:1042F000F801A0E2B5E001900D928A95E1F793CF25 +:1043000086E0F801A0E2B5E001900D928A95E1F710 +:104310002DC04D875E878D859E850E942C1F811143 +:1043200040CF80912505816080932505C8010E94BA +:10433000ED1E1CC0662309F458CF4D875E878D851E +:104340009E850E942C1F882309F44FCF2ACF81110C +:1043500048CF0CC0243031050CF047CF9F7009F4D2 +:1043600040CFF8019581907F09F03BCF8F2D629669 +:104370000FB6F894DEBF0FBECDBFDF91CF911F9176 +:104380000F91FF90EF90DF90CF9008951F93CF9300 +:10439000DF93CDB7DEB72C970FB6F894DEBF0FBE14 +:1043A000CDBF4F83588769877A878B879C87CE01DB +:1043B00007960E94FF1F882369F08F8198852A85C0 +:1043C0003B85232BF1F19F3F09F063C08F3F09F03C +:1043D00060C037C086E0FE013796DE01119601907D +:1043E0000D928A95E1F76F817885EA85FB85309794 +:1043F00041F17F3F11F46F3F21F12091EF0430E054 +:10440000C9010196877099274091EE0450E0841706 +:10441000950709F447C069837A83FD83EC8396E0AE +:10442000929FD001939FB00D1124A051BB4FFE016C +:10443000319601900D929A95E1F78093EF040E94D6 +:10444000751F16E08091EE049091EF048917C1F179 +:10445000189FC001112480519B4F0E94FF1F882389 +:1044600079F1E091EE041E9FF0011124E051FB4F21 +:104470004081518162817381848195810E94651F91 +:104480008091EE0490E00196877099278093EE0466 +:10449000D9CF4F81588569857A858B859C850E9407 +:1044A000651FCFCF0E94281F1092EF041092EE04D8 +:1044B000E0E2F5E086E0DF011D928A95E9F7C1CFE1 +:1044C0002C960FB6F894DEBF0FBECDBFDF91CF9113 +:1044D0001F910895EF92FF920F931F93CF93DF9355 +:1044E0008C01009709F46CC0F12CEE24E394E801F0 +:1044F0002196F8018491843740F4843008F051C04B +:10450000813081F0823019F15BC0853709F444C0F5 +:10451000A8F19CE7980F903708F052C08F770E945F +:10452000451C41C00E5F1F4FFE01C49180E28C0FFD +:10453000883048F4C7708E2D01C0880FCA95EAF7FD +:104540000E94462514C08C2F0E947D1B2DC00E5F3B +:104550001F4FFE01C49180E28C0F883058F4C77061 +:104560008E2D01C0880FCA95EAF70E944C250E9443 +:104570006D251AC08C2F0E94451C16C00E5F1F4F60 +:10458000FE01C491CC2381F08FE99FE00197F1F700 +:1045900000C00000C150F6CF0E5F1F4FFE01F49027 +:1045A00003C00E947D1B8E018F2D882309F49FCFAD +:1045B000EFE9FFE03197F1F700C000008150F5CF3F +:1045C000DF91CF911F910F91FF90EF900895089583 +:1045D00060932A0570932B0580932C0590932D05ED +:1045E0000C94141F0F931F9300912A0510912B0513 +:1045F00020912C0530912D05DC01CB01802B912BD6 +:10460000A22BB32B80932A0590932B05A0932C0506 +:10461000B0932D051F910F910C94141F0F931F93AE +:1046200000912A0510912B0520912C0530912D0524 +:10463000DC01CB0180239123A223B32380932A059D +:1046400090932B05A0932C05B0932D051F910F91EE +:104650000C94141F0F931F9300912A0510912B05A2 +:1046600020912C0530912D05DC01CB01802791276D +:10467000A227B32780932A0590932B05A0932C059E +:10468000B0932D051F910F910C94141F10922605C5 +:104690001092270510922805109229050C94141FDA +:1046A00041E050E060E070E004C0440F551F661F19 +:1046B000771F8A95D2F7409326055093270560937C +:1046C0002805709329050C94141F41E050E060E028 +:1046D00070E004C0440F551F661F771F8A95D2F7FC +:1046E0008091260590912705A0912805B091290574 +:1046F000482B592B6A2B7B2B40932605509327057B +:1047000060932805709329050C94141F41E050E034 +:1047100060E070E004C0440F551F661F771F8A9544 +:10472000D2F74095509560957095809126059091AF +:104730002705A0912805B0912905482359236A230C +:104740007B2340932605509327056093280570939B +:1047500029050C94141F41E050E060E070E004C0B3 +:10476000440F551F661F771F8A95D2F78091260543 +:1047700090912705A0912805B09129054827592730 +:104780006A277B27409326055093270560932805C9 +:10479000709329050C94141F0F931F930091260505 +:1047A000109127052091280530912905DC01CB01C6 +:1047B000802B912BA22BB32B80932605909327055A +:1047C000A0932805B09329051F910F910C94141FF5 +:1047D0000F931F930091260510912705209128051E +:1047E00030912905DC01CB0180239123A223B3233F +:1047F0008093260590932705A0932805B09329055B +:104800001F910F910C94141F0F931F930091260575 +:10481000109127052091280530912905DC01CB0155 +:1048200080279127A227B3278093260590932705F9 +:10483000A0932805B09329051F910F910C94141F84 +:104840000895CF92DF92EF92FF920F931F93CF9331 +:10485000DF938C01C0902A05D0902B05E0902C05A9 +:10486000F0902D058091260590912705A0912805AF +:10487000B0912905C82AD92AEA2AFB2ACFE1D0E03B +:10488000D701C6010C2E04C0B695A79597958795BC +:104890000A94D2F780FF06C0B8018C2F0E94C30A89 +:1048A000019721F4219760F780E001C08C2FDF9100 +:1048B000CF911F910F91FF90EF90DF90CF900895CF +:1048C000CF93DF93EC010E942124BE010E94C30A12 +:1048D000DF91CF910895CB010E94602408958091CB +:1048E0002E05859585958595089580912E0587706F +:1048F000089598E0899F90011124262B20932E057E +:104900000C94652320912E058095822380932E059B +:10491000982F977069F430E0482F552747FD509540 +:104920002417350729F08595859585950C94862360 +:10493000089590912E05977081E009F480E0089524 +:1049400090916503992321F090916603911109C01C +:104950002091670330916803F90132969FEF40E0A0 +:104960001FC0982F9695969596959F3050F5E0919B +:104970006703F0916803E90FF11D877021E030E0D3 +:10498000A90102C0440F551F8A95E2F7CA0191811F +:10499000892B818308959F3F39F04F5F4E3041F05E +:1049A00051915813F8CF0DC05111F7CF942FF5CF77 +:1049B0009F3F39F0F901E90FF11D97FDFA958283C8 +:1049C0000895089590916503992321F090916603CD +:1049D000911109C02091670330916803F901329663 +:1049E000205F3F4F1FC0982F9695969596959F30C4 +:1049F000F0F4E0916703F0916803E90FF11D87700F +:104A000021E030E0A90102C0440F551F8A95E2F76A +:104A1000CA01809591818923818308953196E21797 +:104A2000F30729F090819813F9CF1082F7CF0895FA +:104A300081E090E0E0916703F0916803E80FF91FCF +:104A40001082019680319105A9F708959091420551 +:104A5000892B809342050895809590914205892382 +:104A60008093420508951092420508959091410562 +:104A7000892B809341050895809590914105892364 +:104A80008093410508951092410508959091400545 +:104A9000892B809340050895809590914005892346 +:104AA00080934005089510924005089580932F0546 +:104AB000089510922F0508958091670390916803DF +:104AC000FC0131969C01205F3F4F80E09191911154 +:104AD0008F5FE217F307D1F70895E0916703F09134 +:104AE0006803809142058083E0916703F091680339 +:104AF000908180914105892B8083E0916703F0913B +:104B00006803908180914005892B808380912F05D7 +:104B1000882361F0E0916703F09168039081892B0D +:104B200080830E945C25811110922F05809167037C +:104B3000909168030C94521A20E0009739F0AC0170 +:104B400041505109842395232F5FF7CF822F089579 +:104B500080916405843039F11092440520E488E1A5 +:104B600090E00FB6F894A895809360000FBE209354 +:104B7000600080E00E94C00380E00E949D0B83B72C +:104B8000817F846083BF83B7816083BF7894889579 +:104B900083B78E7F83BF88E10FB6F894809360005F +:104BA000109260000FBE08950895089580E00E945D +:104BB000C0030E94D4250E94F80B0E94D5250E94B4 +:104BC0007D0C91E0811101C090E0892F08950E9431 +:104BD000281F80E00E94C0030E94B62C0E94461A43 +:104BE0000C949D0B1F920F920FB60F9211248F936E +:104BF0009F93AF93BF9380914405811113C080911F +:104C0000450590914605A0914705B091480541960C +:104C1000A11DB11D8093450590934605A0934705BE +:104C2000B0934805BF91AF919F918F910F900FBEA8 +:104C30000F901F90189582E084BD93E095BD9AEF88 +:104C400097BD80936E0008952FB7F8948091450525 +:104C500090914605A0914705B09148052FBF089552 +:104C6000CF92DF92EF92FF920F931F932FB7F8949A +:104C70004091450550914605609147057091480562 +:104C80002FBF6A017B01EE24FF248C0120E030E07D +:104C9000C016D106E206F30610F4415051099A01FC +:104CA000281B390BC9011F910F91FF90EF90DF90E6 +:104CB000CF9008951F920F920FB60F9211248F93E9 +:104CC0009F93AF93BF938091450590914605A09126 +:104CD0004705B09148050196A11DB11D809345057A +:104CE00090934605A0934705B0934805BF91AF91B7 +:104CF0009F918F910F900FBE0F901F9018950E945B +:104D00004317F8942FEF87EA91E6215080409040B6 +:104D1000E1F700C0000087E090EBDC0180936F05B5 +:104D200090937005A0937105B09372059CE088E1A3 +:104D30000FB6F894A895809360000FBE9093600022 +:104D4000FFCFCF92DF92EF92FF920F931F93CF93FB +:104D5000DF93D82FC3E0EE24E394F12C8C2F0E9434 +:104D6000730C6C010BE010E09701002E02C0220FC3 +:104D7000331F0A94E2F72C213D21232B49F0602FA9 +:104D80007C2F80E00E943F08D81302C081E006C05B +:104D90000150110948F7C15008F780E0DF91CF9129 +:104DA0001F910F91FF90EF90DF90CF900895CF93D8 +:104DB000C82F8CE20E94A126882321F08C2FCF914E +:104DC0000C94A12680E0CF910895CF930E943628BD +:104DD000811102C00E941228C5E6C15049F00E940C +:104DE000F80B8FE39CE90197F1F700C00000F5CFC5 +:104DF00089E20E94D726811113C18AE20E94D72638 +:104E000081110E94122885E00E94D72681110E94FC +:104E10007F260E9441288093430587E00E94D72681 +:104E20008823A9F18BE10E94D726882351F0809135 +:104E3000430581FB222720F991E0922790FB81F91D +:104E40000EC08EE00E94D726882361F08091430532 +:104E500082FB222720F991E0922790FB82F9809330 +:104E6000430515C080E10E94D72690914305882311 +:104E700041F093FB222720F981E0822780FB93F900 +:104E800004C0892F809580FB90F990934305809111 +:104E900043050E9445280E94532880936D0580EEAB +:104EA0000E94D726882341F080916D05982F909518 +:104EB00090FB80F980936D0589E30E94D7268823B3 +:104EC00059F080916D0581FB222720F991E092270E +:104ED00090FB81F980936D0582EE0E94D72688238E +:104EE00059F080916D0582FB222720F991E09227ED +:104EF00090FB82F980936D0586EE0E94D726882369 +:104F000059F080916D0583FB222720F991E09227CB +:104F100090FB83F980936D0583EE0E94D72688234A +:104F200059F080916D0584FB222720F991E09227AA +:104F300090FB84F980936D0585E30E94D726882332 +:104F400059F080916D0585FB222720F991E0922789 +:104F500090FB85F980936D0581E30E94D726882315 +:104F600059F080916D0586FB222720F991E0922768 +:104F700090FB86F980936D0581E10E94D7268823F6 +:104F800059F080916D0587FB222720F991E0922747 +:104F900090FB87F980936D0580916D050E945728DD +:104FA00080916D0587FB882780F98093660387E2EF +:104FB0000E94D726C82F8EE10E94D7268111C26099 +:104FC0008FE10E94D7268111C46080E20E94D7261B +:104FD0008111C86081E20E94D7268111C06182E2FE +:104FE0000E94D7268111C06283E20E94D7268111D8 +:104FF000C06484E20E94D726882311F0C06802C0F2 +:10500000CC2329F08C2F0E944E286C2F03C00E94C5 +:105010004A28682F70E080E090E0CF910C94E8225D +:10502000CF9108956DEE7EEF80E090E00E946D31AB +:1050300060E082E090E00E945B3160E083E090E01D +:105040000E945B3160E084E090E00E945B3160E0B0 +:1050500085E090E00E945B3160E086E090E00E9495 +:105060005B316FEF87E090E00C945B3180E090E083 +:105070000E94553121E08D3E9E4F09F020E0822FA5 +:10508000089582E090E00C944D31682F82E090E02A +:105090000C945B3183E090E00C944D31682F83E0F9 +:1050A00090E00C945B3184E090E00C944D31682FDB +:1050B00084E090E00C945B3186E090E00C944D31FC +:1050C000682F86E090E00C945B3187E090E00C94D0 +:1050D0004D31682F87E090E00C945B3180914B0557 +:1050E00080FF0BC060916C0385E0689FB0011124C4 +:1050F00075956795759567952BC081FF09C060917F +:105100006C0385E0689FB00111247595679520C0F8 +:1051100082FF07C060916C0385E0689FB001112495 +:1051200017C090914C059923D1F060916B039617AD +:1051300088F720916C0385E0289F90011124929FAD +:10514000A001939F500D112470E0CA010E943331D9 +:105150006038710540F46115710539F002C065E0F1 +:1051600070E0862F08958FE7089581E0089580917B +:105170004B0580FF08C060916A0370E075956795E4 +:105180007595679521C081FF06C060916A0370E044 +:105190007595679519C082FF04C060916A0370E03D +:1051A00010C090914C059923C1F060916903961746 +:1051B000A0F780916A03899FC001112470E00E94CA +:1051C00033316038710528F46115710521F0862F9F +:1051D00008958FE7089581E0089561E070E0F4CFCD +:1051E000803F21F40E946E28819504C0813F29F4FC +:1051F0000E946E2880934F050895823F21F40E94FB +:105200006E28819504C0833F29F40E946E28809304 +:105210004E050895893F19F40E94B72805C08A3FBA +:1052200031F40E94B72881958093500508958B3FF3 +:1052300021F40E94B728819504C08C3F29F40E9474 +:10524000B728809351050895843F21F480914D053E +:10525000816017C0853F21F480914D05826011C0A7 +:10526000863F21F480914D0584600BC0873F21F477 +:1052700080914D05886005C0883F31F480914D05CF +:10528000806180934D0508958D3F21F480914B05F9 +:1052900081600BC08E3F21F480914B05826005C078 +:1052A0008F3F29F480914B05846080934B050895CE +:1052B000803F39F480914F0587FF6CC010924F05F5 +:1052C00069C0813F29F480914F051816BCF362C074 +:1052D00090914E05823F29F497FF5CC010924E05D5 +:1052E00059C0833F19F41916CCF354C0893F41F4D7 +:1052F0008091500518160CF04DC0109250054AC010 +:105300008A3F29F48091500587FF44C0F6CF8B3F38 +:1053100039F48091510587FF3DC0109251053AC084 +:105320008C3F29F4809151051816BCF333C0843F9B +:1053300021F480914D058E7F17C0853F21F4809127 +:105340004D058D7F11C0863F21F480914D058B7FE7 +:105350000BC0873F21F480914D05877F05C0883FB2 +:1053600031F480914D058F7E80934D0513C08D3FA4 +:1053700021F480914B058E7F0BC08E3F21F48091EC +:105380004B058D7F05C08F3F29F480914B058B7FA6 +:1053900080934B0580914E0581110EC080914F0581 +:1053A00081110AC080915005811106C0809151057C +:1053B000811102C010924C0508958DE495E00E9481 +:1053C0005D1A0E94242690934A058093490508950A +:1053D0001F93CF93DF938091490590914A050E94D6 +:1053E0003026AC0190914C05992321F020916D035A +:1053F00030E006C020916E038AE0289F90011124BE +:105400004217530708F486C080914E05C0914F059E +:10541000D091500510915105811107C0C11176C07E +:10542000D11174C0111172C075C09F3F19F09F5FF8 +:1054300090934C05181624F40E946E2880934E0514 +:1054400080914E0587FF05C00E946E28819580934C +:105450004E051C1624F40E946E2880934F058091FF +:105460004F0587FF05C00E946E28819580934F05E8 +:1054700060914E05662339F1C0914F05CC2319F197 +:10548000772767FD7095872F972F0E94552E23E36E +:1054900033E343E35FE30E94652F0E94222E609373 +:1054A0004E056C2F772767FD7095872F972F0E94E9 +:1054B000552E23E333E343E35FE30E94652F0E940D +:1054C000222E60934F051D1624F40E94B728809366 +:1054D00050058091500587FF05C00E94B72881952F +:1054E00080935005111624F40E94B728809351052B +:1054F0008091510587FF05C00E94B7288195809350 +:105500005105DF91CF911F910C94DD299F3F09F048 +:105510008ECF96CFDF91CF911F910895EDE4F5E006 +:1055200085E0DF011D928A95E9F710924C051092F3 +:105530004B050895833081F128F4813059F0823091 +:10554000D1F00895853009F449C0B8F1863009F4E6 +:1055500056C0089580916E03262F30E0280F311D2C +:105560002F3F310524F4680F60936E0308958FEF89 +:1055700080936E03089580916D03262F30E0280FED +:10558000311D2F3F310524F4680F60936D0308959A +:105590008FEF80936D03089580916C03262F30E088 +:1055A000280F311D2F3F310524F4680F60936C03E1 +:1055B00008958FEF80936C03089580916B03262FDD +:1055C00030E0280F311D2F3F310524F4680F609320 +:1055D0006B0308958FEF80936B03089580916A03A6 +:1055E000262F30E0280F311D2F3F310524F4680F9E +:1055F00060936A0308958FEF80936A030895809102 +:105600006903262F30E0280F311D2F3F310524F488 +:10561000680F6093690308958FEF8093690308957D +:10562000833011F128F4813049F0823091F00895EF +:10563000853081F120F18630C1F1089580916E03AB +:10564000681720F4861B80936E03089510926E03F2 +:10565000089580916D03681720F4861B80936D0375 +:10566000089510926D03089580916C03681720F4DB +:10567000861B80936C03089510926C0308958091AB +:105680006B03681720F4861B80936B0308951092B8 +:105690006B03089580916A03681720F4861B80933A +:1056A0006A03089510926A03089580916903681748 +:1056B00020F4861B8093690308951092690308956E +:1056C0000F931F938B3109F470C0A0F58E3009F44D +:1056D0007FC0C0F4873009F456C068F4863009F002 +:1056E000A5C080914305817F8E7F8093430581E033 +:1056F000809353059CC0883009F491C08B3009F425 +:105700008EC094C0813109F46DC068F4803109F015 +:105710008DC08091430583FB222720F991E09227D9 +:1057200090FB83F94BC0863109F479C0893109F4C3 +:1057300076C07CC0853309F474C068F4873209F4FC +:1057400070C028F48E3108F471C08D5155C0893273 +:1057500009F467C06BC0833438F48A3308F04BC057 +:10576000883309F45CC062C0833409F45AC08834B9 +:1057700009F05CC00E94281F0E94AD0C0E94940595 +:105780000E947F264CC090914305892F809581709F +:1057900080FB90F929F0966098609093430547C08C +:1057A000997F977F909343053AC08091430581FB91 +:1057B000222720F991E0922790FB81F980934305FD +:1057C000992369F18091430581608093430527C047 +:1057D0008091430582FB222720F991E0922790FBDC +:1057E00082F9ECCF0E94281F9091660381E08927FF +:1057F0008093660314C0895341E050E060E070E09C +:105800008A019B0104C0000F111F221F331F8A95BC +:10581000D2F7C901B8010E94E8220E94281F81E046 +:1058200006C061E070E080E090E0F5CF80E01F917D +:105830000F91089580E0089580E00895CF93C82FD8 +:1058400080915305813069F018F08230C9F184C02D +:10585000E0916703F09168038081823209F07EC095 +:1058600007C0E0916703F09168038081823261F4A0 +:105870008C2F0E941A2C811104C08C2F0E94602B47 +:105880001DC081E090E01AC08C2F0E941C2C811159 +:1058900014C0C43179F048F4CB3079F0C03109F04C +:1058A00061C082E08093530508C0C93219F0C83343 +:1058B00021F058C01092530555C081E0817054C04A +:1058C000C93291F120F5C43179F1B0F4C73009F053 +:1058D00047C08EE180936E0382E380936D038AE07C +:1058E00080936C0384E180936B0388E080936A0368 +:1058F00088E28093690334C0CE51C63088F5EC2F1E +:10590000F0E0EA5FFB4F80818093520529C0CE34DE +:10591000E9F020F4CB3421F56AE013C0C13579F009 +:10592000C235F1F461E00DC080915205882319F071 +:105930001092520515C081E08093530515C061E0B7 +:1059400006C0809152050E949A2A0AC06AE080919E +:1059500052050E94102B04C01092530580E004C031 +:1059600081E002C080E0AACFCF9108950E9436283E +:10597000811102C00E9412280E945C2880936E054B +:1059800080FF02C0869501C080E00C94C003809126 +:105990006E05982F9695292F30E0233031054CF471 +:1059A0009F5F990F8170892B816080936E050E94A3 +:1059B000602880916E0586950C94C00380916E05D9 +:1059C000982F969591F09158990F8170892B80931B +:1059D0006E058E7F91E009F490E080916E0590FB5A +:1059E00080F980936E050E94602880916E058695EF +:1059F0000C94C00380916E05982F909590FB80F9D0 +:105A000080936E050E94602880916E0580FF02C021 +:105A1000869501C080E00C94C00390916E05892F9B +:105A200086958F5F8F779170843028F4880F892B4B +:105A300080936E0502C090936E0580916E058E7FF7 +:105A400091E009F490E080916E0590FB80F98093DD +:105A50006E050E94602880916E0586950C94C003A7 +:105A600020916E05922F96958927982F990F822F56 +:105A70008170892B80936E058E7F91E009F490E010 +:105A800080916E0590FB80F980936E050E946028DE +:105A900080916E0586950C94C00380916E05869565 +:105AA00008955058BB27AA270ED0D1C1C2D130F0DB +:105AB000C7D120F031F49F3F11F41EF4B7C10EF4AA +:105AC000E095E7FB9FC1E92FD3D180F3BA176207B6 +:105AD00073078407950718F071F49EF5EBC10EF477 +:105AE000E0950B2EBA2FA02D0B01B90190010C01EE +:105AF000CA01A0011124FF27591B99F0593F50F406 +:105B0000503E68F11A16F040A22F232F342F44275D +:105B1000585FF3CF469537952795A795F040539555 +:105B2000C9F77EF41F16BA0B620B730B840BBAF025 +:105B30009150A1F0FF0FBB1F661F771F881FC2F790 +:105B40000EC0BA0F621F731F841F48F487957795A4 +:105B50006795B795F7959E3F08F0B3CF9395880F5B +:105B600008F09927EE0F97958795089527D108F4A7 +:105B700081E008950CD06BC163D140F05AD130F070 +:105B800021F45F3F19F03EC1511195C14FC170D151 +:105B900098F39923C9F35523B1F3951B550BBB27F4 +:105BA000AA2762177307840738F09F5F5F4F220FA1 +:105BB000331F441FAA1FA9F333D00E2E3AF0E0E89A +:105BC00030D091505040E695001CCAF729D0FE2FE6 +:105BD00027D0660F771F881FBB1F26173707480778 +:105BE000AB07B0E809F0BB0B802DBF01FF2793582E +:105BF0005F4F2AF09E3F510568F004C15CC15F3FD2 +:105C0000ECF3983EDCF3869577956795B795F79515 +:105C10009F5FC9F7880F911D9695879597F908950D +:105C2000E1E0660F771F881FBB1F621773078407A9 +:105C3000BA0720F0621B730B840BBA0BEE1F88F7B8 +:105C4000E095089504D06894B11135C1089518D134 +:105C500088F09F5790F0B92F9927B751A0F0D1F055 +:105C6000660F771F881F991F1AF0BA95C9F712C0DF +:105C7000B13081F01FD1B1E008951CC1672F782F9A +:105C80008827B85F39F0B93FCCF38695779567954B +:105C9000B395D9F73EF490958095709561957F4FB7 +:105CA0008F4F9F4F0895E89409C097FB3EF490955D +:105CB0008095709561957F4F8F4F9F4F9923A9F0E5 +:105CC000F92F96E9BB279395F69587957795679574 +:105CD000B795F111F8CFFAF4BB0F11F460FF1BC0B8 +:105CE0006F5F7F4F8F4F9F4F16C0882311F096E94B +:105CF00011C0772321F09EE8872F762F05C06623F9 +:105D000071F096E8862F70E060E02AF09A95660FB1 +:105D1000771F881FDAF7880F9695879597F908956A +:105D200088D018F011F08CD038F480C0C4C0E92FAE +:105D30009FD0B0F35523C9F3E7FB621773078407BD +:105D40009507A8F199F3E92FFF2788232AF03197C7 +:105D5000660F771F881FDAF7952F5527442332F0F7 +:105D600091505040220F331F441FD2F7BB27E91B2D +:105D7000F50B621B730B840BB109C1F222F4620FA5 +:105D8000731F841FB11D31972AF0660F771F881F7C +:105D9000BB1FEFCF915050405AF041F0882332F0B2 +:105DA000660F771F881F91505040C1F7939530C000 +:105DB0008695779567959F5FD9F7F8CF990F00087B +:105DC000550FAA0BE0E8FEEF16161706E807F907CD +:105DD000C0F012161306E407F50798F0621B730B68 +:105DE000840B950B39F40A2661F0232B242B252BE9 +:105DF00021F408950A2609F4A140A6958FEF811D8C +:105E0000811D089597F99F6780E870E060E008952C +:105E10009F3F31F0915020F4879577956795B7951E +:105E2000880F911D9695879597F908959FEF80ECBF +:105E3000089500240A9416161706180609060895F0 +:105E400000240A9412161306140605060895092E56 +:105E50000394000C11F4882352F0BB0F40F4BF2BC5 +:105E600011F460FF04C06F5F7F4F8F4F9F4F089505 +:105E700057FD9058440F551F59F05F3F71F04795FB +:105E8000880F97FB991F61F09F3F79F087950895E0 +:105E9000121613061406551FF2CF4695F1DF08C0FF +:105EA000161617061806991FF1CF8695710561051C +:105EB00008940895E894BB2766277727CB0197F9C4 +:105EC00008957CDF08F48FEF08950BD0C0CFB1DFC9 +:105ED00028F0B6DF18F0952309F094CFA7CF11244E +:105EE000EACFC6DFA0F3959FD1F3950F50E0551F81 +:105EF000629FF001729FBB27F00DB11D639FAA271F +:105F0000F00DB11DAA1F649F6627B00DA11D661F6D +:105F1000829F2227B00DA11D621F739FB00DA11D8E +:105F2000621F839FA00D611D221F749F3327A00D48 +:105F3000611D231F849F600D211D822F762F6A2FE4 +:105F400011249F5750408AF0E1F088234AF0EE0F69 +:105F5000FF1FBB1F661F771F881F91505040A9F776 +:105F60009E3F510570F04ECFA6CF5F3FECF3983EB9 +:105F7000DCF3869577956795B795F795E7959F5FDD +:105F8000C1F7FE2B880F911D9695879597F9089577 +:105F9000FA01EE0FFF1F30962105310599F16115C9 +:105FA000710561F48038BFE39B0749F1689490382C +:105FB000810561F08038BFEF9B0741F0992342F5DE +:105FC000FF3FE1053105210511F1E8940894E795BB +:105FD000D901AA2329F4AB2FBE2FF85FD0F310C04C +:105FE000FF5F70F4A695E0F7F73950F019F0FF3A2B +:105FF00038F49F779F930CD00F9007FC905808952A +:106000003EF014CF60E070E080E89FE308954FE732 +:106010009F775F934F933F932F939ED02F913F9104 +:106020004F915F9152DF05C019F40EF0EBCE42CFD5 +:10603000FDCE26DFC8F39638C0F707F80F92E89434 +:106040002BE33AEA48EB5FE74EDF0F920F920F9295 +:106050004DB75EB70F92C0D0E4E3F1E016D04F9198 +:106060005F91EF91FF91E595EE1FFF1F49F0FE57FD +:10607000E0684427EE0F441FFA95E1F74195550B70 +:1060800032D00F9007FE26C00895DF93CF931F9361 +:106090000F93FF92EF92DF927B018C01689405C011 +:1060A000DA2EEF011EDFFE01E894A59125913591CE +:1060B00045915591AEF3EF0106DDFE019701A80170 +:1060C000DA9479F7DF90EF90FF900F911F91CF91C5 +:1060D000DF9108959B01AC0160E070E080E89FE3F0 +:1060E00049CD90CE95CECCDEE8F39923D9F3940F29 +:1060F000511DBBF39150504094F059F0882332F079 +:10610000660F771F881F91505040C1F79E3F510581 +:1061100044F7880F911D9695879597F908955F3FED +:10612000ACF0983E9CF0BB27869577956795B79520 +:1061300008F4B1609395C1F7BB0F58F711F460FFF5 +:10614000E8CF6F5F7F4F8F4F9F4FE3CFB4CE0EF0FE +:106150005FCE6CCE689456CE93DEC8F39923D1F30C +:10616000C6F3DF93CF931F930F93FF92C92FDD27C1 +:1061700088232AF02197660F771F881FDAF720E01F +:1061800030E040E85FEB9FE3883920F0803E30F05C +:1061900021968F7787DCECE5F1E003C083DCE9E84A +:1061A000F1E073DF8B01BE01EC01FB2E6F5771092B +:1061B0007595771F880B990B78DD28E132E741E36D +:1061C0005FE38FDEAF2D9801AE01FF900F911F911D +:1061D000CF91DF9178DC3BCEFA01DC01AA0FBB1F27 +:1061E0009B01AC01BF5728F422273327442750785E +:1061F0001FC0B75188F4AB2F0024469537952795DB +:10620000011CA395D2F3002069F0220F331F441F15 +:10621000B395DAF30DD045CC61307105A0E88A075B +:10622000B94630F49B01AC01662777278827907820 +:10623000309621F020833183428353830895AA1B33 +:10624000BB1B51E107C0AA1FBB1FA617B70710F061 +:10625000A61BB70B881F991F5A95A9F78095909593 +:10626000BC01CD01089597FB072E16F4009407D0CA +:1062700077FD09D00E941F3107FC05D03EF49095B0 +:1062800081959F4F0895709561957F4F0895EE0F0A +:10629000FF1F0590F491E02D0994F999FECF92BD6E +:1062A00081BDF89A992780B50895A8E1B0E042E051 +:1062B00050E00C947531262FF999FECF92BD81BD27 +:1062C000F89A019700B4021639F01FBA20BD0FB634 +:1062D000F894FA9AF99A0FBE08950196272F0E9412 +:1062E0005C310C945B31DC01CB01FC01F999FECFF0 +:1062F00006C0F2BDE1BDF89A319600B40D9241504E +:0A6300005040B8F70895F894FFCF5D +:10630A0000005C440000004148F17644000000416E +:10631A005C978A44000000411FD592440000004166 +:10632A0052D0A444000000415CFFB8440000004180 +:10633A000AA7CF44000000410000DC4400000041ED +:10634A00A4D0A443000000417BD492430000004142 +:10635A007BD4924300000041A4D0A4430000004132 +:10636A00A4D02444000000411FD51244000000417B +:10637A001FD5124400000041A4D02444000000416B +:10638A00A4F076430000004100005C430000004195 +:10639A0000005C4300000041A4F076430000004185 +:1063AA00A4D082430000C0417BD492430000004144 +:1063BA00A4D0A4430000C041A4D0824300000041FD +:1063CA00A4D0A44300008041A4D0824300008041AD +:1063DA00A4D0A443000080411FD51244000080418C +:1063EA00A4D024440000804100D00244000080412F +:1063FA00A4D08243000080410000C44300008041D1 +:10640A000AA7CF44000000410000DC44000000411C +:10641A00000000000000804052D0244500004041A6 +:10642A0000000000000080400AA74F4500004041DC +:10643A000AA7CF44000000410000DC4400000041EC +:10644A00000000000000804052D0244500000041B6 +:10645A0000000000000080405CFF38450000004159 +:10646A00000000000000804052D024450000004196 +:10647A000AA7CF44000000410000DC4400000041AC +:10648A00000000000000804052D0244500008041F6 +:10649A00A4F0F6430000C0417BD4924300000041BF +:1064AA0048F176440000804100005C44000000424C +:1064BA005CFF434400008041A4F0F6430000C04161 +:1064CA001FD51244000000415CFF43440000804194 +:1064DA005CFF384400000042A4D0A443000080417D +:1064EA00A4D0A44300008041719DAE4300008041C6 +:1064FA000000C443000080410000C4430000804102 +:10650A00719DAE4300008041A4D0A44300008041A5 +:10651A007BD4924300008041A4D082430000804192 +:10652A00A4D08243000080417BD492430000804182 +:10653A00A4D0A44300008041A4D0A4430000C041D9 +:10654A007BD49243000000417BD492430000004276 +:10655A00640007000CFF0000003F644A13D813B51B +:10656A001381134D13010130052808140A321E0045 +:10657A0002040507090B0C0E1011131517181A1C23 +:10658A001D1F2123242628292B2D2F30323435375D +:10659A00393B1F0F03764F5F6F7F4969437909596A +:1065AA0053633149803F5D8B803FF8BF803FCAE12A +:1065BA00803F73ED803FCAE1803FF8BF803F5D8B2B +:1065CA00803F3149803F0000803FF16D7F3F75EA8F +:1065DA007E3F4C827E3F833F7E3F84287E3F833FBF +:1065EA007E3F4C827E3F75EA7E3FF16D7F3F000021 +:1065FA00803F3F4D36398F0642060C06D3056605A5 +:10660A007F059805B105010203040506070809007C +:00000001FF diff --git a/keyboards/planck/keymaps/pvc/config.h b/keyboards/planck/keymaps/pvc/config.h new file mode 100644 index 000000000..b64893108 --- /dev/null +++ b/keyboards/planck/keymaps/pvc/config.h @@ -0,0 +1,89 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Ortholinear Keyboards +#define PRODUCT The Planck Keyboard +#define DESCRIPTION A compact ortholinear keyboard + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +/* Planck PCB default pin-out */ +#define MATRIX_ROW_PINS { D0, D5, B5, B6 } +#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* ws2812 RGB LED */ +#define ws2812_PORTREG PORTD +#define ws2812_DDRREG DDRD +#define ws2812_pin PD1 +#define RGBLED_NUM 28 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/planck/keymaps/pvc/keymap.c b/keyboards/planck/keymaps/pvc/keymap.c new file mode 100644 index 000000000..2fc5f0da1 --- /dev/null +++ b/keyboards/planck/keymaps/pvc/keymap.c @@ -0,0 +1,478 @@ +#include "planck.h" +#include "action_layer.h" +#include "eeconfig.h" +#include "led.h" + +#ifdef AUDIO_ENABLE + #include "audio.h" + #include "song_list.h" +#endif + +#define LAYER_QWERTY 0 +#define LAYER_COLEMAK 1 +#define LAYER_DVORAK 2 +#define LAYER_UPPER 3 +#define LAYER_LOWER 4 +#define LAYER_FUNCTION 5 +#define LAYER_MOUSE 6 +#define LAYER_ADJUST 7 + +#define MACRO_QWERTY 0 +#define MACRO_COLEMAK 1 +#define MACRO_DVORAK 2 +#define MACRO_UPPER 3 +#define MACRO_LOWER 4 +#define MACRO_FUNCTION 5 +#define MACRO_MOUSE 6 +#define MACRO_TIMBRE_1 7 +#define MACRO_TIMBRE_2 8 +#define MACRO_TIMBRE_3 9 +#define MACRO_TIMBRE_4 10 +#define MACRO_TEMPO_U 11 +#define MACRO_TEMPO_D 12 +#define MACRO_TONE_DEFAULT 13 +#define MACRO_MUSIC_TOGGLE 14 +#define MACRO_AUDIO_TOGGLE 16 +#define MACRO_INC_VOICE 18 +#define MACRO_DEC_VOICE 19 +#define MACRO_BACKLIGHT 20 +#define MACRO_BREATH_TOGGLE 21 +#define MACRO_BREATH_SPEED_INC 23 +#define MACRO_BREATH_SPEED_DEC 24 +#define MACRO_BREATH_DEFAULT 25 + +#define M_QWRTY M(MACRO_QWERTY) +#define M_COLMK M(MACRO_COLEMAK) +#define M_DVORK M(MACRO_DVORAK) +#define M_UPPER M(MACRO_UPPER) +#define M_LOWER M(MACRO_LOWER) +#define M_FUNCT M(MACRO_FUNCTION) +#define M_MOUSE M(MACRO_MOUSE) +#define TIMBR_1 M(MACRO_TIMBRE_1) +#define TIMBR_2 M(MACRO_TIMBRE_2) +#define TIMBR_3 M(MACRO_TIMBRE_3) +#define TIMBR_4 M(MACRO_TIMBRE_4) +#define TMPO_UP M(MACRO_TEMPO_U) +#define TMPO_DN M(MACRO_TEMPO_D) +#define TMPO_DF M(MACRO_TONE_DEFAULT) +#define M_BACKL M(MACRO_BACKLIGHT) +#define M_BRTOG M(MACRO_BREATH_TOGGLE) +#define M_BSPDU M(MACRO_BREATH_SPEED_INC) +#define M_BSPDD M(MACRO_BREATH_SPEED_DEC) +#define M_BDFLT M(MACRO_BREATH_DEFAULT) + + +#define VC_UP M(MACRO_INC_VOICE) +#define VC_DOWN M(MACRO_DEC_VOICE) + + +#define SC_UNDO LCTL(KC_Z) +#define SC_REDO LCTL(KC_Y) +#define SC_CUT LCTL(KC_X) +#define SC_COPY LCTL(KC_C) +#define SC_PSTE LCTL(KC_V) +#define SC_SELA LCTL(KC_A) +#define SC_SAVE LCTL(KC_S) +#define SC_OPEN LCTL(KC_O) +#define SC_ACLS LALT(KC_F4) +#define SC_CCLS LCTL(KC_F4) + +#define OS_SHFT KC_FN0 + +#define _______ KC_TRNS +#define XXXXXXX KC_NO +#define ________________ _______, _______ +#define XXXXXXXXXXXXXXXX XXXXXXX, XXXXXXX + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* QWERTY + * .-----------------------------------------------------------------------------------------------------------. + * | TAB | Q | W | E | R | T | Y | U | I | O | P | BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | ESC | A | S | D | F | G | H | J | K | L | ; | ' | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LSHIFT | Z | X | C | V | B | N | M | , | . | UP | ENTER | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LCTRL | LWIN | FN | LALT | UPPER | SPACE | SPACE | LOWER | SHIFT | LEFT | DOWN | RIGHT | + * '-----------------------------------------------------------------------------------------------------------' + */ + + [LAYER_QWERTY] = { // QWERTY + { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC }, + { KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT }, + { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT }, + { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC, KC_SPC, M_LOWER, OS_SHFT, KC_LEFT, KC_DOWN, KC_RGHT }, + }, + +/* COLEMAK + * .-----------------------------------------------------------------------------------------------------------. + * | TAB | Q | W | F | P | G | J | L | U | Y | ; | ESC | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | BACKSP | A | R | S | T | D | H | N | E | I | O | ' | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LSHIFT | Z | X | C | V | B | K | M | , | . | UP | ENTER | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LCTRL | LWIN | FN | LALT | UPPER | SPACE | SPACE | LOWER | SHIFT | LEFT | DOWN | RIGHT | + * '-----------------------------------------------------------------------------------------------------------' + */ + + [LAYER_COLEMAK] = { // COLEMAK + { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_ESC }, + { KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT }, + { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT }, + { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC, KC_SPC, M_LOWER, OS_SHFT, KC_LEFT, KC_DOWN, KC_RGHT }, + }, + +/* DVORAK + * .-----------------------------------------------------------------------------------------------------------. + * | TAB | ' | , | . | P | Y | F | G | C | R | L | BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | ESC | A | O | E | U | I | D | H | T | N | S | / | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LSHIFT | ; | Q | J | K | X | B | M | W | V | Z | ENTER | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LCTRL | LWIN | FN | LALT | UPPER | SPACE | SPACE | LOWER | UP | DOWN | LEFT | RIGHT | + * '-----------------------------------------------------------------------------------------------------------' + */ + + [LAYER_DVORAK] = { // DVORAK + { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC }, + { KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH }, + { KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC, KC_SPC, M_LOWER, KC_UP, KC_DOWN, KC_LEFT, KC_RGHT }, + }, + +/* UPPER + * .-----------------------------------------------------------------------------------------------------------. + * | PRINT | F1 | F2 | F3 | F4 | NUM LK | / | 7 | 8 | 9 | - | DEL | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | CAP LK | F5 | F6 | F7 | F8 | SCR LK | * | 4 | 5 | 6 | + | INS | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | F9 | F10 | F11 | F12 | PAUSE | | 1 | 2 | 3 | ENTER | HOME | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | | | | | | 0 | 0 | | RALT | . | ENTER | END | + * '-----------------------------------------------------------------------------------------------------------' + */ + + [LAYER_UPPER] = { // UPPER + { KC_PSCR, KC_F1, KC_F2, KC_F3, KC_F4, KC_NLCK, KC_PSLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, KC_DEL }, + { KC_CAPS, KC_F5, KC_F6, KC_F7, KC_F8, KC_SLCK, KC_PAST, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, KC_INS }, + { _______, KC_F9, KC_F10, KC_F11, KC_F12, KC_PAUS, XXXXXXX, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, KC_HOME }, + { _______, _______, _______, _______, _______, KC_KP_0, KC_KP_0, _______, KC_RALT, KC_PDOT, KC_PENT, KC_END }, + }, + +/* LOWER + * .-----------------------------------------------------------------------------------------------------------. + * | | $ | { | [ | ( | % | # | ) | ] | } | @ | PG UP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | ^ | * | + | - | ; | : | _ | ' | " | ` | PG DN | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | & | ! | ~ | / | \ | = | < | > | ? | HOME | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | | | | | | | | | | | | END | + * '-----------------------------------------------------------------------------------------------------------' + */ + + [LAYER_LOWER] = { // LOWER + { _______, KC_DLR, KC_LCBR, KC_LBRC, KC_LPRN, KC_PERC, KC_HASH, KC_RPRN, KC_RBRC, KC_RCBR, KC_AT, KC_PGUP }, + { _______, KC_CIRC, KC_ASTR, KC_PPLS, KC_PMNS, KC_SCLN, KC_COLN, KC_UNDS, KC_QUOT, KC_DQT, KC_GRV, KC_PGDN }, + { _______, KC_PIPE, KC_AMPR, KC_EXLM, KC_TILD, KC_SLSH, KC_BSLS, KC_EQL, KC_LT, KC_GT, KC_QUES, KC_HOME }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END }, + }, + + +/* FUNCTION + * .-----------------------------------------------------------------------------------------------------------. + * | NUM LK | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | PAUSE | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | CAP LK | F11 | F12 | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | PRINT | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | SCR LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | MUTE | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LCTRL | LWIN | FN | LALT | UPPER | PLAY | PLAY | LOWER | VOL UP | VOL DN | NEXT | PREV | + * '-----------------------------------------------------------------------------------------------------------' + */ + [LAYER_FUNCTION] = { // FUNCTION + { KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PAUS }, + { KC_CAPS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_PSCR }, + { KC_SLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MUTE }, + { _______, _______, _______, _______, _______, KC_MPLY, KC_MPLY, _______, KC_VOLU, KC_VOLD, KC_MPRV, KC_MNXT }, + }, + +#ifdef MOUSEKEY_ENABLE + + [LAYER_MOUSE] = { // MOUSE + { KC_ESC, KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC }, + { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + { _______, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_U, KC_WH_D }, + { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, KC_MS_U, KC_MS_D, KC_MS_L, KC_MS_R }, + }, + +#endif + + [LAYER_ADJUST] = { // ADJUST + { _______, TIMBR_1, TIMBR_2, TIMBR_3, TIMBR_4, TMPO_UP, TMPO_DN, TMPO_DF, _______, _______, MU_TOG, AU_TOG }, + { _______, M_QWRTY, M_COLMK, M_DVORK, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, M_BACKL, RESET, _______, M_MOUSE, _______, _______, MUV_IN, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MUV_DE, _______ }, + }, + +/* + [LAYER_EMPTY] = { + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, }, + { _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______, }, + }, +*/ + +}; + +#ifdef AUDIO_ENABLE + +float tone_my_startup[][2] = SONG(ODE_TO_JOY); +float tone_my_goodbye[][2] = SONG(ROCK_A_BYE_BABY); + +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); + +float tone_audio_on[][2] = SONG(CLOSE_ENCOUNTERS_5_NOTE); +float tone_music_on[][2] = SONG(DOE_A_DEER); +float tone_caps_on[][2] = SONG(CAPS_LOCK_ON_SOUND); +float tone_caps_off[][2] = SONG(CAPS_LOCK_OFF_SOUND); +float tone_numlk_on[][2] = SONG(NUM_LOCK_ON_SOUND); +float tone_numlk_off[][2] = SONG(NUM_LOCK_OFF_SOUND); +float tone_scroll_on[][2] = SONG(SCROLL_LOCK_ON_SOUND); +float tone_scroll_off[][2] = SONG(SCROLL_LOCK_OFF_SOUND); +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); + +#endif /* AUDIO_ENABLE */ + +void persistant_default_layer_set(uint16_t default_layer) +{ + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_MODS_ONESHOT(MOD_LSFT), +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + + // MACRODOWN only works in this function + switch(id) + { + + case MACRO_QWERTY: + if (record->event.pressed) + { + persistant_default_layer_set(1UL<event.pressed) + { + persistant_default_layer_set(1UL<event.pressed) + { + persistant_default_layer_set(1UL<event.pressed) + { + layer_on(LAYER_LOWER); + update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); + } + else + { + layer_off(LAYER_LOWER); + update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); + } + break; + + case MACRO_UPPER: + if (record->event.pressed) + { + layer_on(LAYER_UPPER); + update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); + } + else + { + layer_off(LAYER_UPPER); + update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); + } + break; + + case MACRO_FUNCTION: + if (record->event.pressed) + { + layer_on(LAYER_FUNCTION); + } + else + { + layer_off(LAYER_FUNCTION); + } + break; + + +#ifdef BACKLIGHT_ENABLE + case MACRO_BACKLIGHT: + if (record->event.pressed) + { + backlight_step(); + } +#endif + +#ifdef MOUSEKEY_ENABLE + + case MACRO_MOUSE: + if (record->event.pressed) + { + layer_invert(LAYER_MOUSE); + } + break; + +#endif /* MOUSEKEY_ENABLE */ + +#ifdef AUDIO_ENABLE + + case MACRO_TIMBRE_1: + if (record->event.pressed) set_timbre(TIMBRE_12); + break; + + case MACRO_TIMBRE_2: + if (record->event.pressed) set_timbre(TIMBRE_25); + break; + + case MACRO_TIMBRE_3: + if (record->event.pressed) set_timbre(TIMBRE_50); + break; + + case MACRO_TIMBRE_4: + if (record->event.pressed) set_timbre(TIMBRE_75); + break; + + case MACRO_TEMPO_U: + if (record->event.pressed) increase_tempo(10); + break; + + case MACRO_TEMPO_D: + if (record->event.pressed) decrease_tempo(10); + break; + + case MACRO_TONE_DEFAULT: + if (record->event.pressed) + { + set_timbre(TIMBRE_DEFAULT); + set_tempo(TEMPO_DEFAULT); + } + break; + +#endif /* AUDIO_ENABLE */ + + default: + break; + + } + return MACRO_NONE; +}; + + +#ifdef AUDIO_ENABLE + +void matrix_init_user(void) +{ + set_voice(default_voice); + startup_user(); + println("Matrix Init"); +} + +void led_set_user(uint8_t usb_led) +{ + static uint8_t old_usb_led = 0; + + _delay_ms(10); // gets rid of tick + + if ((usb_led & (1<event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboards/planck/keymaps/unicode/Makefile b/keyboards/planck/keymaps/unicode/Makefile new file mode 100644 index 000000000..110af7501 --- /dev/null +++ b/keyboards/planck/keymaps/unicode/Makefile @@ -0,0 +1,11 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +UNICODE_ENABLE = yes # Unicode + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/unicode/compiled.hex b/keyboards/planck/keymaps/unicode/compiled.hex new file mode 100644 index 000000000..ad9501276 --- /dev/null +++ b/keyboards/planck/keymaps/unicode/compiled.hex @@ -0,0 +1,1206 @@ +:100000000C94B3040C94F7040C94F7040C94F704C8 +:100010000C94F7040C94F7040C94F7040C94F70474 +:100020000C94F7040C94F7040C9426100C94F8101C +:100030000C940F1E0C94F7040C94F7040C94F70422 +:100040000C94F7040C9458050C94F7040C94F704E2 +:100050000C94F7040C94771E0C94F7040C94F7049A +:100060000C94F7040C94F7040C94F7040C94F70424 +:100070000C94F7040C94F7040C94F7040C94F70414 +:100080000C94F7040C94F7040C94F7040C94F70404 +:100090000C94F7040C94F7040C94F7040C94F704F4 +:1000A0000C94F7040C94F7040C94F704BE05C605F1 +:1000B000D005D805E705F1052E062E062E062E06DC +:1000C0002E062E06FF0522062A06651187117512D7 +:1000D00087117512CC11EF11751244125712411588 +:1000E000411570157015AF15CF1525172517DA15A1 +:1000F00025178A168A16F116FA1625171F1797164E +:100100009716971697169716971697169716971687 +:100110009716971697169716971697169716A71667 +:10012000B516BC16C316CD16000000000000000076 +:10013000000000010204060A0F17202C3A4A5D71E4 +:10014000879DB3C7DAE9F5FCFFFCF5E9DAC7B39D93 +:1001500087715D4A3A2C20170F0A0604020100003D +:10016000000000000000000001080115010901194C +:100170000112010F02080215020902190212020FF0 +:10018000002B0014001A000800150017001C0018AE +:10019000000C00120013002A0029000400160007BA +:1001A0000009000A000B000D000E000F00330034A0 +:1001B00000E1001D001B00060019000500110010E1 +:1001C0000036003700380028000530E000E200E388 +:1001D0000003302C002C0004305000510052004F1E +:1001E000002B00718077806680708067806A806CE9 +:1001F00080758079803B80088029006180728073DF +:10020000807480648068806E80658069806F8027DC +:1002100080E1007A8078806380768062806B806D78 +:10022000802C802E802F8028000100E000E200E377 +:100230000003302C002C0004305000510052004FBD +:10024000002B0034003600370013001C0009000AA0 +:1002500000060015000F002A002900040012000803 +:100260000018000C0007000B0017001100160038E2 +:1002700000E100330014000D000E001B000500100B +:10028000001A0019001D0028000530E000E200E31C +:100290000003302C002C0004305000510052004F5D +:1002A0000035021E021F0220022102220223022424 +:1002B000022502260227022A004C003A003B003C9D +:1002C000003D003E003F002D022E022F0230023181 +:1002D000020100400041004200430044004500018B +:1002E0000001000100010001000100010001000106 +:1002F000000100010001000100AB00AA00A900AE4E +:100300000035001E001F00200021002200230024D1 +:10031000002500260027002A004C003A003B003C44 +:10032000003D003E003F002D002E002F0030003128 +:10033000000100400041004200430044004500012C +:1003400000010001000100010001000100010001A5 +:10035000000100010001000100AB00AA00A900AEED +:10036000001E001E001E001E001E001E001E001E9D +:10037000001E001E001E001E00000014001A0008CF +:1003800000150017001C0018000C00120013002FAD +:10039000000E3004001600070009000A000B000DD3 +:1003A000000E000F00330034000D30000000000686 +:1003B0000019000000000011001000000000000003 +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:1004000000000000000000000000000000000000EC +:1004100000000000000000000000000000000000DC +:1004200000000000000000000000000000000000CC +:1004300000000000000000000000000000000000BC +:1004400000000000000000000000000000000000AC +:10045000000000000000000000000000000000009C +:10046000000000000000000000000000000000008C +:10047000000000000000000000000000000000007C +:10048000000000000000000000000000000000006C +:10049000000000000000000000000000000000005C +:1004A000000000000000000000000000000000004C +:1004B000000000000000000000000000000000003C +:1004C000000000000000000000000000000000002C +:1004D000000000000000000000000000000000001C +:1004E000000000000000000000000000000000000C +:1004F00000000000000000000000000000000000FC +:1005000000000000000000000000000000000000EB +:1005100000000000000000000000000000000000DB +:1005200000000000000000000000000000000000CB +:1005300000000000000000000000000000000000BB +:1005400000000000000000000000000000000000AB +:10055000000000000000000000000000000000009B +:10056000000000000000000000000000000000008B +:10057000000000000000000000000000000000007B +:10058000000000000000000000000000000000006B +:10059000000000000000000000000000000000005B +:1005A000000000000000000000000000000000004B +:1005B000000000000000000000000000000000003B +:1005C000000000000000000000000000000000002B +:1005D000000000000000000000000000000000001B +:1005E000000000000000000000000000000000000B +:1005F00000000000000000000000000000000000FB +:1006000000000000000000000000000000000000EA +:1006100000000000000000000000000000000000DA +:1006200000000000000000000000000000000000CA +:1006300000000000000000000000000000000000BA +:1006400000000000000000000000000000000000AA +:10065000000000000000000000000000000000009A +:10066000000000000000000000000000000000008A +:10067000000000000000000000000000000000007A +:10068000000000000000000000000000000000006A +:10069000000000000000000000000000000000005A +:1006A000000000000000000000000000000000004A +:1006B000000000000000000000000000000000003A +:1006C000000000000000000000000000000000002A +:1006D000000000000000000000000000000000001A +:1006E000000000000000000000000000000000000A +:1006F00000000000000000000000000000000000FA +:1007000000000000000000000000000000000000E9 +:1007100000000000000000000000000000000000D9 +:1007200000000000000000000000000000000000C9 +:1007300000000000000000000000000000000000B9 +:1007400000000000000000000000000000000000A9 +:100750000000000000000000000000000000000099 +:100760000000000000000000000000000000000089 +:100770000000000000000000000000000000000079 +:1007800000010000700100010001000100010001F2 +:10079000000100010001004C0001000100010015F2 +:1007A00070167013700A700030013002300C300186 +:1007B0000001001C701B70187019701D701E7001F4 +:1007C0000001000100010001000100010001000121 +:1007D0000001000100010001000100010001000111 +:1007E000002803540068006500200050006C006180 +:1007F000006E0063006B0020004B00650079006212 +:10080000006F0061007200640000002C034F007252 +:1008100000740068006F006C0069006E0065006184 +:1008200000720020004B006500790062006F0061DB +:1008300000720064007300000004030904090254FC +:1008400000030100A0FA09040000010301010009EE +:1008500021110100012240000705810308000A0957 +:100860000401000103010200092111010001224DD0 +:10087000000705820308000A0904020001030000C2 +:100880000009211101000122360007058303080039 +:100890000A1201100100000008EDFE606001000175 +:1008A00002000105010980A101850216010026B799 +:1008B000001A01002AB700751095018100C0050CCF +:1008C0000901A1018503160100269C021A01002AD4 +:1008D0009C02751095018100C005010902A1010962 +:1008E00001A10005091901290515002501950575C6 +:1008F0000181029501750381010501093009311556 +:1009000081257F95027508810609381581257F9517 +:100910000175088106050C0A38021581257F9501AD +:1009200075088106C0C005010906A101050719E087 +:1009300029E71500250195087501810295017508C3 +:100940008101050819012905950575019102950197 +:10095000750391010507190029FF150026FF009571 +:100960000675088100C011241FBECFEFDAE0DEBF9C +:10097000CDBF04B603FE24C08091E7019091E80149 +:10098000A091E901B091EA018730904BA740B04BAC +:10099000B9F41092E7011092E8011092E901109267 +:1009A000EA0114BE84B7877F84BF88E10FB6F8944C +:1009B00080936000109260000FBEE0E0F8E30995BC +:1009C00011E0A0E0B1E0ECE0FBE402C005900D9284 +:1009D000AE33B107D9F711E0AEE3B1E001C01D922B +:1009E000A73EB107E1F70E94700D0C9484250C948A +:1009F0000000089581E0089508950C94F9040C9482 +:100A0000FA040C94FC040E94FA2323E030E0281B33 +:100A10003109220F209342010895282F2F988091A9 +:100A20008000211108C0877F8093800010928D0084 +:100A300010928C001BC0886080938000233019F4D2 +:100A40008FEF9FEF0FC083E090E0821B9109880F2A +:100A5000991F2FEF3FEFA90102C0569547958A9540 +:100A6000E2F7CA0190938D0080938C000C940305EB +:100A70000E94030584E08093410110923E01089595 +:100A8000279A2F988FEF9FEF90938700809386008F +:100A90008AE08093800089E1809381000E94632333 +:100AA0000C9438050E9440056E9A769A0C94340690 +:100AB0001F920F920FB60F9211242F933F938F9393 +:100AC0009F93EF93FF93E0913F01F0914001CF019D +:100AD00001969093400180933F010090410102C034 +:100AE000F695E7950A94E2F7EF7380913E01823024 +:100AF00019F4E03251F404C0813039F4EF3329F4B1 +:100B000080916F008D7F80936F00F0E0E85DFE4F75 +:100B1000E49121E031E0E29FC001E39F900D1124B8 +:100B20000090420102C0969587950A94E2F790934F +:100B30008D0080938C00FF91EF919F918F913F9159 +:100B40002F910F900FBE0F901F901895CF93DF93AA +:100B5000EC010E94091FBE0180E090E0DF91CF917F +:100B60000C94501B462F50E04F30510508F076C0D2 +:100B7000DC01FA01EA5AFF4F0C94342512968C914D +:100B8000882309F46BC081E090E007C012968C9135 +:100B9000882309F463C082E090E00E94A6055EC04D +:100BA00012968C91882309F459C084E090E0F5CF27 +:100BB00012968C91882311F083E00EC083E00E948E +:100BC000EE1B40E164E083E00E94350847C01296C6 +:100BD0008C91882321F084E00E94CD1BF2CF84E029 +:100BE000EECF12968C91882331F085EE0E94E513AA +:100BF0000E94BA2333C085EE0E94AD142FC0129616 +:100C00008C91882359F184E00E94EE1B83E00E94BE +:100C1000EE1B80E10E94EE1B85E00E94CD1B0E942E +:100C2000F61E811102C00E94D71E0E940E1F90E086 +:100C30009093D8018093D70180688093D7010E9458 +:100C4000121F0CC012968C91882341F085E00E94FF +:100C5000EE1B04C012968C91811103C080E090E0DD +:100C6000089588E691E00895089581E008950C9430 +:100C700035060895282F882339F090E02A3010F4A3 +:100C80004D9608950697089587E290E00895AF92F3 +:100C9000BF92DF92EF92FF920F931F93CF93DF9358 +:100CA0008C01FC01C081D181CE010E94891CBE0152 +:100CB0000E941B0AEC01B8010E943706882309F440 +:100CC000C9C1F8018281882309F4BEC080914F0117 +:100CD00081111FC0C431F0E7DF0709F0B5C10E94E0 +:100CE000390681E080934F010E94411E90934E018E +:100CF00080934D01109246011092480110924701D5 +:100D000010924A011092490110924C0110924B012D +:100D1000A1C180914D0190914E010E944D1E883CD1 +:100D2000910570F480914601E82FF0E0EE0FFF1F6F +:100D3000E95BFE4FD183C0838F5F809346018AC1F8 +:100D4000C13020E8D20708F451C0F801828188231D +:100D500009F47EC05E01E894B7F8809145018130C6 +:100D600079F050F08230C1F482EE0E94E51387E5FD +:100D70000E94E51387E50EC082EE0E94E5130CC0C9 +:100D800080EE0E94E51381EE0E94E51388E10E9447 +:100D9000E51388E10E94AD148CE0E82EF12CC5012A +:100DA0000E2C02C0969587950A94E2F78F700E94E8 +:100DB0003A06D82E0E94E5138D2D0E94AD14F4E062 +:100DC000EF1AF1082CEFE2162FEFF20641F78091AF +:100DD0004501813029F010F0823041F482EE04C0E8 +:100DE00080EE0E94AD1481EE0E94AD14C43180E704 +:100DF000D80768F4C23090E7D90708F046C0C1159B +:100E0000E0E7DE0771F0C130D047A1F10CC1C33378 +:100E100020E7D20709F4D8C0C433D04709F4EBC0A7 +:100E200002C1F8018281882309F402C10E9490174F +:100E3000FFEF24E38CE0F15020408040E1F700C058 +:100E400000000E949C1E06C1C13080E8D80770F2E5 +:100E5000C43120E7D20708F0B3C0C23080E7D8071A +:100E6000A0F4C11590E7D90709F4E2C0C130D0471A +:100E700009F0D9C0F8018281882309F4D9C0809192 +:100E8000C60181608093C601E5C0F8018281882394 +:100E900009F4CEC00E94F61E811102C00E94D71E26 +:100EA0000E940E1F90E09093D8018093D701C2302A +:100EB000F0E7DF0721F48091D70181607AC0C33069 +:100EC00020E7D20721F48091D701826072C0C4303C +:100ED00080E7D80721F48091D70184606AC0C530CB +:100EE00090E7D90719F48091D70127C0C630E0E711 +:100EF000DE0721F48091D70180615BC0C730F0E745 +:100F0000DF0721F48091D701806253C0C83020E709 +:100F1000D20721F48091D70180644BC0C93080E7AB +:100F2000D80721F48091D701806843C0CA3090E788 +:100F3000D90729F48091D701846088603AC0CB300A +:100F4000E0E7DE0721F48091D7018E7F32C0CC30FC +:100F5000F0E7DF0721F48091D7018D7F2AC0CD30E3 +:100F600020E7D20721F48091D7018B7F22C0CE30B9 +:100F700080E7D80719F48091D7011AC08091D70172 +:100F8000CF3090E7D90711F48F7E13C0C031E0E76E +:100F9000DE0711F48F7D0DC0C131F0E7DF0711F4DA +:100FA0008F7B07C0C231D04711F48F7702C08B7F8F +:100FB000877F8093D7018091D7010E94121F4AC07A +:100FC000C333F0E7DF07A1F4F8018281882321F021 +:100FD0001092430182E016C080914301811106C046 +:100FE00086E20E94E51386E20E94AD1482E018C0FA +:100FF000C433D047C1F4F8018281882331F01092C4 +:10100000440180E20E94FC1425C0809144018111BA +:1010100006C087E20E94E51387E20E94AD1480E2D9 +:101020000E94031517C081E080934301809344011F +:10103000C801DF91CF911F910F91FF90EF90DF904A +:10104000BF90AF900C94FF04C130F0E8DF0708F0C8 +:1010500081CECCCE80E0DF91CF911F910F91FF9098 +:10106000EF90DF90BF90AF900895CF92DF92EF9214 +:10107000FF920F931F9301E010E020E030E0680141 +:10108000790104C0CC0CDD1CEE1CFF1C8A95D2F744 +:1010900004C0000F111F221F331F6A95D2F70C29BD +:1010A0001D292E293F29C090B101D090B201E090B6 +:1010B000B301F090B401C022D122E222F322842FA6 +:1010C000C016D106E206F30641F41F910F91FF907E +:1010D000EF90DF90CF900C94CD1B1F910F91FF905C +:1010E000EF90DF90CF900C94EE1B0C9452050C9473 +:1010F000FD042CE0729FF001112430E3839FE00D8A +:10110000F11D1124E60FF11DEE0FFF1FEF57FE4FEB +:10111000859194910E942D0A811540E5940708F06D +:1011200047C0811520E4920708F013C1883E91055D +:1011300020F5803E910508F07CC1883A910578F44D +:10114000853A910508F0A5C08130910509F471C177 +:1011500008F42EC18430910508F06BC129C18B3B86 +:10116000910508F4A1C0803C910508F421C1FC015F +:10117000EE0FFF1FEF5FFF4FE6C0811530E29307D0 +:1011800058F4811541E0940708F053C1803F910560 +:1011900008F40EC190650895811520E3920708F0C8 +:1011A000D5C0FC01FF70EE0FFF1FEF57FE4FCBC005 +:1011B000811535E5930708F043C0811544E5940790 +:1011C00008F0DEC0811522E5920708F5811531E5AA +:1011D000930708F0C1C0482F437021E030E002C0FF +:1011E000220F331F4A95E2F73C68AC0164E0569544 +:1011F00047956A95E1F74370342B8F7086958695F5 +:1012000040E2849FC0011124822B932B0895282F44 +:1012100026952695AC01437055278115934508F016 +:10122000A0C080E2289F9001112481E090E002C0DC +:10123000880F991F4A95E2F7822B932B9C6808959B +:101240008F3240E7940790F48F3120E7920708F03F +:10125000A2C0811536E5930708F497C09C0130566B +:101260002115304108F0A4C09F7093C0803320E75F +:10127000920709F497C008F492C0813340E79407BD +:1012800009F493C08233904709F092C080E093ED57 +:101290000895853A910509F48EC0863A910509F0C2 +:1012A0008DC082E890E40895883A910509F489C0D8 +:1012B000893A910509F488C08A3A910509F487C0F2 +:1012C0008B3A910509F486C08C3A910509F485C0E2 +:1012D0008D3A910509F484C0803B910509F483C0DF +:1012E0008E3A910509F482C08F3A910509F481C0C4 +:1012F000813B910509F480C0823B910509F47FC0D0 +:10130000833B910509F47EC0843B910509F47DC0BF +:10131000853B910509F47CC0863B910509F47BC0AF +:10132000873B910509F47AC0883B910509F479C09F +:10133000893B910509F478C08A3B910509F477C08F +:1013400080E094E408958591949108959927906C94 +:1013500008959F70906A0895982F8827816F906AEA +:10136000089590E2299F9001112481E090E002C04D +:10137000880F991F4A95E2F7822B932B9A6808955C +:10138000982F8827846F906A08958F719927982FD6 +:101390008827906208958F519047946D089580E05A +:1013A00091ED089580E090ED089580E092ED08952C +:1013B00080E090E0089581E890E4089583E890E467 +:1013C000089582EE94E4089589EE94E408958AEEF7 +:1013D00094E4089585EB94E4089586EB94E40895ED +:1013E00087EB94E408958CEC94E408958DEC94E4F8 +:1013F000089583E895E408958AE895E4089582E9DC +:1014000095E4089584E995E4089581E296E40895C9 +:1014100083E296E4089584E296E4089585E296E4F2 +:10142000089586E296E4089587E296E408958AE2B4 +:1014300096E4089508959CE0799FF001112490E3CB +:10144000899FE00DF11D1124E60FF11DEE0FFF1F26 +:10145000EF57FE4F8591949108958238910549F197 +:10146000B0F48133910509F458C048F489329105EC +:1014700009F44EC08A32910509F454C008958533A9 +:10148000910509F440C08933910599F00895833E90 +:10149000910529F138F4803E910591F0823E910545 +:1014A000A1F00895863E9105F9F0873E910531F14E +:1014B00008952091D70120FD3AC021FD38C008953C +:1014C0008091D70180FD35C032C08091D70182FF65 +:1014D00032C08091D70184FD30C083EE39C0809145 +:1014E000D70182FD28C0F5CF8091D70183FF27C0A7 +:1014F0008091D70184FD21C087EE2AC08091D70159 +:1015000083FD1DC0F5CF8091D70185FD1AC01BC09A +:101510008091D70185FD17C014C08091D70186FD49 +:1015200014C015C08091D70186FD11C00EC080EE99 +:101530000FC089E30DC082EE0BC080E009C086EECB +:1015400007C089E205C085E303C08AE201C081E3E8 +:1015500090E008950C940105E82FF0E0E05EFE4F66 +:101560008081E82FEF70F0E082958F7021E030E00D +:10157000A90102C0440F551F8A95E2F740A30895C0 +:101580000F931F93CF93DF93C3E0D0E001E010E00F +:10159000FE01E05EFE4F8081E82FEF70F0E021A1B8 +:1015A00082958F70A80102C0440F551F8A95E2F7FB +:1015B000CA01822B81A38C2F0E94AC0A219740F78D +:1015C0008BE090E061E070E0FC01EC5EFE4F20817A +:1015D000E22FEF70F0E042A122952F70DB0102C0F4 +:1015E000AA0FBB1F2A95E2F79D01242B22A3019786 +:1015F00058F7DF91CF911F910F9108950F931F938B +:10160000CF93DF9385B7806885BF85B7806885BF36 +:10161000C3E0D0E001E010E0FE01E05EFE4F80811B +:10162000E82FEF70F0E021A182958F70A80102C031 +:10163000440F551F8A95E2F7CA01822B81A38C2F94 +:101640000E94AC0A219740F78BE090E061E070E0E7 +:10165000FC01EC5EFE4F2081E22FEF70F0E042A132 +:1016600022952F70DB0102C0AA0FBB1F2A95E2F75B +:101670009D01242B22A3019758F7DF91CF911F9151 +:101680000F910C947508EF92FF920F931F93CF93D5 +:10169000DF9308E511E0C3E0EE24E394F12CD5E0FC +:1016A0008C2F0E94AC0A8BE090E040E050E0FC01FF +:1016B000EC5EFE4F6081E62FEF70F0E020A130E09D +:1016C00062956F7002C0359527956A95E2F720FD07 +:1016D00009C09701082E02C0220F331F0A94E2F7B7 +:1016E000422B532B019718F7F801929182918F01A9 +:1016F0008417950721F051834083D09300018C2FEC +:101700000E94AC0AC15060F68091000187FD2CC098 +:101710008150809300018F3F39F08FE99FE001975E +:10172000F1F700C0000020C0809156019091570150 +:1017300090935F0180935E018091540190915501D7 +:1017400090935D0180935C018091520190915301CF +:1017500090935B0180935A018091500190915101C7 +:1017600090935901809358010E94770881E0DF919E +:10177000CF911F910F91FF90EF900895E82FF0E027 +:10178000EE0FFF1FE85AFE4F808191810895089562 +:101790000F931F93CF9300E611E0C0E0F801929100 +:1017A00082918F010E94BA1DC80FF1E008351F0712 +:1017B000A9F78C2FCF911F910F9108958091680107 +:1017C0000895CF93DF9300D01F92CDB7DEB79C0171 +:1017D0008091DD01843019F593E099833B832A835E +:1017E0009093E9008FEF9091E800815095FD06C03D +:1017F00095ED9A95F1F700008111F5CF8091E80001 +:1018000085FF0DC040E050E063E070E0CE0101963E +:101810000E94160E8091E8008E778093E8000F906A +:101820000F900F90DF91CF910895CF93DF9300D069 +:101830001F92CDB7DEB72091DD01243021F522E0E3 +:1018400029839B838A8383E08093E9008FEF9091C3 +:10185000E800815095FD06C095ED9A95F1F70000DE +:101860008111F5CF8091E80085FF0DC040E050E088 +:1018700063E070E0CE0101960E94160E8091E800B0 +:101880008E778093E8000F900F900F90DF91CF91AB +:1018900008952091DD012430F1F422E02093E90045 +:1018A0002FEF3091E800215035FD06C035ED3A9517 +:1018B000F1F700002111F5CF2091E80025FF0BC0C2 +:1018C00040E050E065E070E00E94160E8091E80074 +:1018D0008E778093E8000895CF93DF932091DD0108 +:1018E000243039F521E02093E9002FEF3091E80012 +:1018F000215035FD06C035ED3A95F1F70000211174 +:10190000F5CF2091E80025FF14C0EC0140E050E045 +:1019100068E070E00E94160E8091E8008E77809358 +:10192000E80088E0FE01A0E6B1E001900D928A9502 +:10193000E1F7DF91CF9108958091DC01811109C019 +:101940000E94AB0F0E9408108091E2008460809397 +:10195000E20008951092DC010895089508950C9412 +:10196000041E42E061EC81E00E94250F42E061EC40 +:1019700082E00E94250F42E061EC83E00C94250F89 +:101980008091DF01833009F453C030F4813071F06D +:10199000823009F48CC008958A3009F478C08B3005 +:1019A00009F45EC0893009F09AC020C08091DE0140 +:1019B000813A09F094C08091E800877F8093E80025 +:1019C0008091E2019091E301892B21F468E080E6A7 +:1019D00091E003C060E080E090E070E00E94610E62 +:1019E0008091E8008B778093E80008958091DE0174 +:1019F000813209F074C08091E2019091E301892B5A +:101A000009F06DC08091E800877F8093E8008091A5 +:101A1000E80082FD05C08091DD018111F8CF5FC033 +:101A20008091F100809368018091E8008B7753C02A +:101A30008091DE01813A09F052C08091E2019091DB +:101A4000E301892B09F04BC08091E800877F8093E8 +:101A5000E8008091E80080FFFCCF80910B0136C048 +:101A60008091DE018132D9F58091E2019091E3010C +:101A7000892BA9F58091E800877F8093E8000E9478 +:101A80005A0F8091E00180930B010C949017809184 +:101A9000DE01813221F58091E800877F8093E800A4 +:101AA0000E945A0F8091E10180936901089580910D +:101AB000DE01813AA1F48091E800877F8093E800FD +:101AC0008091E80080FFFCCF809169018093F10054 +:101AD0008091E8008E778093E8000C945A0F089567 +:101AE00084B7877F84BF88E10FB6F8948093600045 +:101AF000109260000FBE80E8809361001092610038 +:101B00000E94FD120E94AB0F0E9408108091E2001B +:101B100084608093E20078940E948E120E94FF12EB +:101B200081E091E00E94A9128091DD01853069F485 +:101B30000E94C61D8091DB018823B1F30E94F31D32 +:101B4000882391F30E94000EEFCF0E940713ECCF81 +:101B5000292F332723303105C9F064F421303105B2 +:101B600081F02230310509F043C084E590E02DE397 +:101B700038E042C021323105F1F02232310541F125 +:101B800037C082E190E021E938E036C09927813002 +:101B9000910541F08230910541F0892B49F5E9E347 +:101BA000F8E005C0EBE0F8E002C0E1EEF7E0849178 +:101BB00090E09F0121C06330D8F4E62FF0E0EE0FF3 +:101BC000FF1FE35DFE4F2081318189E090E014C06A +:101BD000633070F470E0FB01EE0FFF1FE95DFE4F14 +:101BE00020813181FB01EC5DFE4F808190E004C0DB +:101BF00080E090E020E030E0FA0131832083089516 +:101C000080E189BD82E189BD09B400FEFDCF8091EC +:101C1000D8008F7D8093D8008091E000826080930F +:101C2000E0008091E00081FDFCCF0895CF92DF922B +:101C3000EF92FF920F931F93CF93DF93EC018B01F1 +:101C40006A010E94790F811133C0C114D10439F0A7 +:101C5000F60180819181081B190BC80FD91FE12C57 +:101C6000F12C0115110519F18091E80085FD16C0D0 +:101C70008091E8008E778093E800C114D10449F088 +:101C8000F60180819181E80EF91EF182E08285E003 +:101C90000FC00E94790F882321F30AC08991809395 +:101CA000F10001501109FFEFEF1AFF0ADACF80E0CF +:101CB000DF91CF911F910F91FF90EF90DF90CF9028 +:101CC00008952091E4013091E5012617370748F087 +:101CD0006115710539F42091E8002E772093E80012 +:101CE00001C0B90140E061157105A9F12091DD0144 +:101CF000222309F443C0253009F442C02091E800B2 +:101D000023FD40C02091E80022FD32C02091E80070 +:101D100020FFE9CF4091F3002091F20030E0342B16 +:101D2000FC01CF016115710559F02830310540F4EF +:101D300081918093F100615071092F5F3F4FF1CF86 +:101D400041E02830310509F040E02091E8002E778D +:101D50002093E800C8CF4111C9CF0AC08091DD01AE +:101D6000882361F0853061F08091E80083FD0AC02E +:101D70008091E80082FFF2CF80E0089582E008952C +:101D800083E0089581E008952091E4013091E50118 +:101D90002617370748F06115710539F42091E800DE +:101DA0002E772093E80001C0B901FC0120E0611505 +:101DB000710591F18091DD01882309F440C08530DF +:101DC00009F43FC08091E80083FD3DC08091E800A8 +:101DD00082FD2FC08091E80080FFE9CF2091F300C1 +:101DE0008091F20090E0922B6115710559F08830D6 +:101DF000910540F424912093F100319661507109CE +:101E00000196F2CF21E0089709F020E08091E800E8 +:101E10008E778093E800CBCF2111CCCF0AC0809180 +:101E2000DD01882361F0853061F08091E80083FD59 +:101E30000AC08091E80082FFF2CF80E0089582E03E +:101E4000089583E0089581E00895982F973058F51C +:101E50009093E900981739F07091EC002091ED0013 +:101E60005091F00003C0242F762F50E021FF19C0BD +:101E70003091EB003E7F3093EB003091ED003D7FE1 +:101E80003093ED003091EB0031603093EB007093B4 +:101E9000EC002093ED005093F0002091EE0027FF1E +:101EA00007C09F5FD3CF8F708093E90081E00895D2 +:101EB00080E008958091DE0187FF11C08091E800E5 +:101EC00082FD05C08091DD018111F8CF11C08091A4 +:101ED000E8008B770BC08091DD01882349F0809169 +:101EE000E80080FFF8CF8091E8008E778093E800CB +:101EF00008952091E4003091E50095E64091EC00D2 +:101F0000842F817040FF22C08091E80080FD1CC0BA +:101F10008091DD01882391F0853091F08091EB0074 +:101F200085FD10C04091E4005091E5004217530731 +:101F300029F39A01915011F784E0089582E0089501 +:101F400083E0089581E0089580E008954091E800DD +:101F500042FFDECF08950E9419100E942110E0EE8A +:101F6000F0E0808181608083E8EDF0E080818F7710 +:101F7000808319BCA7EDB0E08C918E7F8C9380811B +:101F80008F7E80831092DC0108950F931F93CF936F +:101F9000DF930E9419100E942110C8EDD0E08881C3 +:101FA0008F77888388818068888388818F7D888304 +:101FB00019BC1092DD011092D9011092DB01109230 +:101FC000DA0100EE10E0F80180818B7F8083888148 +:101FD0008160888342E060E080E00E94250FE1EEAE +:101FE000F0E080818E7F8083E2EEF0E0808181608E +:101FF0008083808188608083F80180818E7F8083E8 +:10200000888180618883DF91CF911F910F9108951E +:10201000E8EDF0E080818F7E8083E7EDF0E0808165 +:102020008160808384E082BF81E08093DC010C9436 +:10203000C50FE8EDF0E080818E7F80831092E20092 +:1020400008951092DA001092E10008951F920F9205 +:102050000FB60F9211242F933F934F935F936F937B +:102060007F938F939F93AF93BF93EF93FF93809151 +:10207000E10082FF0BC08091E20082FF07C08091E7 +:10208000E1008B7F8093E1000E948D128091DA0045 +:1020900080FF1FC08091D80080FF1BC08091DA00B4 +:1020A0008E7F8093DA008091D90080FF0DC080E19F +:1020B00089BD82E189BD09B400FEFDCF81E0809336 +:1020C000DD010E949C0C05C019BC1092DD010E942C +:1020D000AA0C8091E10080FF19C08091E20080FF8E +:1020E00015C08091E2008E7F8093E2008091E20033 +:1020F00080618093E2008091D80080628093D80054 +:1021000019BC85E08093DD010E94AE0C8091E10056 +:1021100084FF30C08091E20084FF2CC080E189BD43 +:1021200082E189BD09B400FEFDCF8091D8008F7D8A +:102130008093D8008091E1008F7E8093E1008091B0 +:10214000E2008F7E8093E2008091E20081608093C4 +:10215000E2008091D901882311F084E007C08091CA +:10216000E30087FD02C081E001C083E08093DD01D0 +:102170000E94AF0C8091E10083FF29C08091E200B2 +:1021800083FF25C08091E100877F8093E10082E09A +:102190008093DD011092D9018091E1008E7F8093C0 +:1021A000E1008091E2008E7F8093E2008091E20066 +:1021B00080618093E20042E060E080E00E94250FB1 +:1021C0008091F00088608093F0000E94AD0CFF9138 +:1021D000EF91BF91AF919F918F917F916F915F919F +:1021E0004F913F912F910F900FBE0F901F90189518 +:1021F0001F920F920FB60F9211242F933F934F937C +:102200005F936F937F938F939F93AF93BF93CF937E +:10221000DF93EF93FF93C091E900CF708091EC00C2 +:10222000D82FD17080FDD0E81092E9008091F000A5 +:10223000877F8093F00078940E943C111092E9000F +:102240008091F00088608093F000CD2BCF70C09318 +:10225000E900FF91EF91DF91CF91BF91AF919F91F5 +:102260008F917F916F915F914F913F912F910F903F +:102270000FBE0F901F9018951F93CF93DF93CDB78C +:10228000DEB7AA970FB6F894DEBF0FBECDBFEEED56 +:10229000F1E088E08E0F9091F10091938E13FBCFC7 +:1022A0000E94C00C8091E80083FF1FC18091DE0175 +:1022B0009091DF01492F50E04A30510508F015C1D7 +:1022C000FA01EB59FF4F0C943425803881F08238A5 +:1022D00009F00BC18091E2018F708093E900809139 +:1022E000EB0085FB882780F91092E90006C08091F9 +:1022F000DA019091DB01911182609091E800977F63 +:102300009093E8008093F1001092F100C8C0282F4C +:102310002D7F09F0EAC0882319F0823061F0E5C012 +:102320008091E001813009F0E0C0933009F080E055 +:102330008093DB012BC08091E001811127C0809147 +:10234000E2018F7009F4D1C08093E9002091EB0085 +:1023500020FF1CC0933021F48091EB00806214C0F8 +:102360009091EB0090619093EB0021E030E0A901A7 +:1023700002C0440F551F8A95E2F74093EA0010927D +:10238000EA008091EB0088608093EB001092E900F6 +:102390008091E800877F86C08111A7C01091E0017D +:1023A0001F778091E3008078812B8093E3008091F8 +:1023B000E800877F8093E8000E945A0F8091E80030 +:1023C00080FFFCCF8091E30080688093E3001111CF +:1023D00002C082E001C083E08093DD0186C08058A6 +:1023E000823008F082C08091E0019091E1018C3D43 +:1023F00053E0950779F583E08A838AE289834FB7B2 +:10240000F894DE01139620E03EE051E2E32FF0E085 +:1024100050935700E49120FF03C0E295EF703F5FB7 +:10242000EF708E2F90E0EA3010F0C79601C0C09692 +:102430008D939D932F5F243149F74FBF8091E80022 +:10244000877F8093E8006AE270E0CE0101960E94E7 +:10245000610E14C0AE014F5F5F4F6091E2010E94B8 +:10246000A80DBC01009709F440C09091E800977F47 +:102470009093E80089819A810E94C40E8091E800BF +:102480008B778093E80031C0803879F58091E8003F +:10249000877F8093E8008091D9018093F10080913B +:1024A000E8008E778093E8000E945A0F1EC08111C9 +:1024B0001CC09091E0019230C0F48091E800877FC9 +:1024C0008093E8009093D9010E945A0F8091D9011E +:1024D000811106C08091E30087FD02C081E001C048 +:1024E00084E08093DD010E94B10C8091E80083FFBD +:1024F0000AC08091E800877F8093E8008091EB001C +:1025000080628093EB00AA960FB6F894DEBF0FBEF0 +:10251000CDBFDF91CF911F9108950895CF93809102 +:10252000DD018823A1F0C091E900CF709091EC000B +:10253000892F817090FD80E8C82B1092E90080916E +:10254000E80083FD0E943C11CF70C093E900CF9159 +:10255000089590936F0180936E010895E0916E014C +:10256000F0916F01309721F00190F081E02D0994F6 +:1025700080E00895E0916E01F0916F01309721F0B5 +:102580000280F381E02D09940895E0916E01F091AD +:102590006F01309721F00480F581E02D09940895B2 +:1025A00020916C0130916D018217930771F0909327 +:1025B0006D0180936C01E0916E01F0916F01309795 +:1025C00021F00680F781E02D0994089520916A0199 +:1025D00030916B018217930771F090936B01809398 +:1025E0006A01E0916E01F0916F01309721F0008453 +:1025F000F185E02D0994089508950C94FC120E9431 +:10260000381E0E94FE0A0E94BE1E0C9463235F9235 +:102610006F927F928F929F92AF92BF92CF92DF92F2 +:10262000EF92FF920F931F93CF93DF9300D000D0D0 +:102630001F92CDB7DEB70E94430B99E7C92E91E0F8 +:10264000D92E03E010E0AA24A394B12C502E802FA1 +:102650000E94BE0B4C01F601729062906F016826D9 +:10266000792661147104A1F40150110978F78FEFF4 +:1026700089838A831B820E94411E8160782F9D83FB +:102680008C8349815A816B818D810E94B71338C038 +:102690008091C60181FD0E94C70B2BE030E07501DF +:1026A000022E02C0EE0CFF1C0A94E2F7C70186213D +:1026B0009721892B09F129835A828E209F2091E04E +:1026C000892809F490E09B830E94411E8160782F45 +:1026D0009D838C8349815A816B818D810E94B713C0 +:1026E000000F111FF801EF58FE4F80819181E826FD +:1026F000F926F182E08204C02150310980F6B4CF7E +:102700000E949A20109170010E94AE121817D1F009 +:102710000E94AE12809370010F900F900F900F9057 +:102720000F90DF91CF911F910F91FF90EF90DF906D +:10273000CF90BF90AF909F908F907F906F905F9061 +:102740000C94AA0A0F900F900F900F900F90DF91AA +:10275000CF911F910F91FF90EF90DF90CF90BF909E +:10276000AF909F908F907F906F905F900895CF93E0 +:10277000DF93CDB7DEB72B970FB6F894DEBF0FBE51 +:10278000CDBF4F83588769877A878B87DE01119683 +:1027900086E0FD0111928A95E9F785E0FE01379602 +:1027A00001900D928A95E1F749815A816B817C8174 +:1027B0008D819E810E942E1A2B960FB6F894DEBF53 +:1027C0000FBECDBFDF91CF910895CF93882309F439 +:1027D000C2C0C82F823859F40E94AE1281FDBBC01E +:1027E00089E30E94081D0E948B1D89E30CC0833879 +:1027F00079F40E94AE1280FDAEC083E50E94081DF0 +:102800000E948B1D83E50E94251DCF910C948B1D8A +:10281000843859F40E94AE1282FD9DC087E40E9464 +:10282000081D0E948B1D87E4EECF8CEF8C0F813A40 +:1028300048F48C2F0E94CC2281118DC08C2F0E94D5 +:10284000081DE3CF80E28C0F883048F4C77081E028 +:1028500001C0880FCA95EAF70E94441DD6CF8BE5C8 +:102860008C0F833078F4C53A29F0C63A31F083E80A +:1028700090E005C081E890E002C082E890E0CF914E +:102880000C94D01288E58C0F833108F064C0C83AEC +:1028900039F1C93A41F1CA3A49F1CB3A51F1CC3A4E +:1028A00059F1CD3A61F1C03B69F1CE3A71F1CF3ABD +:1028B00079F1C13B81F1C23B89F1C33B91F1C43B4A +:1028C00099F1C53BA1F1C63BA9F1C73BB1F1C83BAA +:1028D000B9F1C93BC1F1CA3BC9F180E090E038C011 +:1028E00082EE90E035C089EE90E032C08AEE90E052 +:1028F0002FC085EB90E02CC086EB90E029C087EBE1 +:1029000090E026C08CEC90E023C08DEC90E020C0DD +:1029100083E891E01DC08AE891E01AC082E991E065 +:1029200017C084E991E014C081E292E011C083E213 +:1029300092E00EC084E292E00BC085E292E008C013 +:1029400086E292E005C087E292E002C08AE292E06D +:10295000CF910C94E612CF910895882309F44BC0CF +:10296000823859F40E94AE1281FF45C089E30E946B +:10297000081D0E948B1D89E30CC0833871F40E94EE +:10298000AE1280FF38C083E50E94081D0E948B1D97 +:1029900083E50E94251D0C948B1D843859F40E94F8 +:1029A000AE1282FF28C087E40E94081D0E948B1D82 +:1029B00087E4EFCF9CEF980F913A58F390E2980F8D +:1029C000983050F4877091E001C0990F8A95EAF72A +:1029D000892F0E944A1DDFCF9BE5980F933020F48A +:1029E00080E090E00C94D012885A833120F480E08B +:1029F00090E00C94E6120895882321F00E94441D73 +:102A00000C948B1D0895882321F00E944A1D0C947C +:102A10008B1D08957F928F929F92AF92BF92CF921B +:102A2000DF92EF92FF920F931F93CF93DF931F924A +:102A3000CDB7DEB77C01C62E772EFC01058102954D +:102A40000F70128111110E94611D0E94011D8823C7 +:102A500079F0112369F080E28C0D883048F082E033 +:102A60000E94EA1C0E94011D91E0D82ED92601C0C7 +:102A7000D12CE72DE295EF70F0E0E159FF4F0C9477 +:102A80003425872D807F072D0F70882311F0029544 +:102A9000007F112389F0002309F499C180E28C0D95 +:102AA000883020F4802F0E94441D03C0802F0E9494 +:102AB000541D0E948B1D8BC18C2D0E94AD140023D0 +:102AC00009F4C3C180E28C0D883020F4802F0E946D +:102AD0004A1D03C0802F0E945A1D0E948B1DB5C144 +:102AE000872D807F972D9F70803211F4892F03C02E +:102AF000892F8295807FCC2021F0F1E0CF16A1F0C4 +:102B00001DC0112339F0002319F1013009F50E948D +:102B1000741D9BC1002319F0013009F496C189830B +:102B20000E94771D898110C1112321F0063008F021 +:102B30008CC10EC0053008F088C106C1112359F0C0 +:102B4000002331F0F701958190FF41C19F7095837B +:102B50000E94FC147AC1002309F4F6C03EC1872DFF +:102B600086958695837090E0009719F0019761F043 +:102B70006CC1112321F08C2D972D937002C080E041 +:102B800090E00E94D01261C1112321F08C2D972D6D +:102B9000937002C080E090E00E94E61256C18C2D36 +:102BA000112319F00E94A21F02C00E940A200E9455 +:102BB0008F204BC1872D837009F052C0111145C180 +:102BC0008C2D829586958770880F880F9C2D9F701D +:102BD000892E912CA12CB12C082E04C0880C991C94 +:102BE000AA1CBB1C0A94D2F7C4FE14C00FE010E06C +:102BF00020E030E0B901A80104C0440F551F661F52 +:102C0000771F8A95D2F7CB01BA01609570958095B0 +:102C1000909503C060E070E0CB01272D26952695A6 +:102C2000237030E02230310569F02330310589F01E +:102C3000682979298A299B292130310571F00E9460 +:102C4000761B03C1682979298A299B290E94921B36 +:102C5000FCC00E94761BC501B4010E945A1BF5C03E +:102C6000112319F0872D817001C08695882309F4FE +:102C7000ECC08C2D829586958770880F880F9C2DCF +:102C80009F70892E912CA12CB12C082E04C0880C89 +:102C9000991CAA1CBB1C0A94D2F7C4FE14C00FE0F6 +:102CA00010E020E030E0B901A80104C0440F551F36 +:102CB000661F771F8A95D2F7CB01BA016095709590 +:102CC0008095909503C060E070E0CB01272D26959C +:102CD00026952370422F50E04230510569F0433071 +:102CE000510589F0682979298A299B2941305105A4 +:102CF00071F00E94501CA9C0682979298A299B2952 +:102D00000E946C1CA2C00E94501CC501B4010E940C +:102D1000341C9BC08C2D90E0FC01E05EF109E53194 +:102D2000F10508F050C0E158FF4F0C9434250C2DEC +:102D30000F70872D8F71112321F00E94CD1B802FE2 +:102D400007CF0E94EE1B802F0E9403157EC0112327 +:102D500041F0053008F079C0872D8F710E94131C57 +:102D600074C0063008F071C0F7CF112339F0872DF9 +:102D70008F710E94CD1B69C01123C9F3872D8F71FC +:102D80000E94EE1B62C0112329F0872D8F710E94D3 +:102D9000B81B5BC00E94AE1B58C0112351F0172D09 +:102DA0001F71812F0E94CD1B63E0812F0E94E11CC7 +:102DB0004CC081E00E94EA1C023008F446C082E068 +:102DC0000E94EA1C42C0112331F0002381F28C2DB5 +:102DD0000E94E5133AC0002389F28C2D0E94AD14A5 +:102DE00034C0472D4F706C2DC7010E94B2050E9460 +:102DF000D21A2BC0111129C0472D4F7050E042301C +:102E00005105B9F04CF44115510581F0413051059F +:102E1000E1F40E948B2319C04330510569F044301E +:102E2000510599F48C2D0E94DD230FC00E9474235C +:102E30000CC00E94A72309C00E94BA2306C0472DD8 +:102E40004F706C2DC7010E941A0ADD20F9F00E9414 +:102E5000DD1C80FD1BC0F70112820E94D71C0E945E +:102E6000CD1BC7010E9455170E94D71C0F90DF9100 +:102E7000CF911F910F91FF90EF90DF90CF90BF9077 +:102E8000AF909F908F907F900C94EE1B0F90DF91EE +:102E9000CF911F910F91FF90EF90DF90CF90BF9057 +:102EA000AF909F908F907F9008950F931F93CF9333 +:102EB000DF93EC01888199812B813C81232BB9F030 +:102EC0009F3F11F48F3F99F0CE010E94470688235F +:102ED00071F0688179818A810E94D31C8C010E94E3 +:102EE000881C0E944F1BB801CE010E940A15DF9179 +:102EF000CF911F910F9108950E94611D0E94711D35 +:102F00000E94361D0E948B1D0E9440210E948F202E +:102F100080E090E00E94D01280E090E00C94E612F5 +:102F20000E94511D0C947C170E94C81C292F2295C9 +:102F30002F7030E02C3031054CF42A3031056CF420 +:102F40002250310922303105A8F407C02C30310558 +:102F500069F02F30310551F00DC0803F69F018F451 +:102F6000803E40F409C0843F29F406C093FB8827C3 +:102F700080F9089580E0089581E00895CF93DF936C +:102F800000D000D01F92CDB7DEB70F900F900F90FA +:102F90000F900F90DF91CF910895CF93DF9300D0E2 +:102FA00000D000D0CDB7DEB726960FB6F894DEBFBE +:102FB0000FBECDBFDF91CF9108951F93CF93DF93C5 +:102FC000C091790116E080917A01C81799F0D0E09C +:102FD0001C9FF0011D9FF00D1124E558FE4F40810C +:102FE000518162817381848195810E94CD172196E0 +:102FF000C770E9CFDF91CF911F9108954091AB0148 +:103000005091AC016091AD017091AE018091AF0122 +:103010009091B0010C94CD178091B00182958F7082 +:1030200009F054C08091AD01882309F44FC080910C +:103030007901A0917A016091AB017091AC0140914E +:10304000AE015091AF01B6E08A1709F43FC090E09D +:1030500041155105C1F17F3F11F46F3FA1F1B89FB8 +:10306000F001B99FF00D1124E558FE4F2181721334 +:103070002AC02081621327C02281211124C023810C +:1030800034812417350710F421503109241B350BE6 +:10309000283C3105C0F42091B0012F7020612093AD +:1030A000B00126E0289FF001299FF00D1124E0587F +:1030B000FE4F80818F70806180838BEA91E00E9457 +:1030C00055170C94DD1701968770BECF0895CF92E7 +:1030D000DF92EF92FF920F931F93CF93DF93CDB7C1 +:1030E000DEB762970FB6F894DEBF0FBECDBF8C017E +:1030F00085E0F801DE011D9601900D928A95E1F7B9 +:10310000D8014C9111965C91119712966C9112977F +:103110001396CD90DC9014973091AB017091AC0177 +:103120008091AE019091AF01009709F46BC17F3F90 +:1031300019F43F3F09F466C1E090AD01EE2009F4B7 +:10314000C0C02091B001C816D90628F0F601E81BCE +:10315000F90BCF0104C0809590958C0D9D1DFF2427 +:10316000F394883C910578F0F12C207F09F0C6C0DB +:103170007C2DD98AC88A89890E94BE178BEA91E082 +:103180000E945517B1C0822F807F09F046C0751389 +:1031900014C0341312C0611110C02F70206120932D +:1031A000B0010E94FE178BEA91E00E9455178091B2 +:1031B000B001D80115968C932EC0CD2819F15F3F30 +:1031C00011F44F3FF9F0F62E61111CC08091790186 +:1031D00020917A0136E0821709F45AC090E0389FB6 +:1031E000F001399FF00D1124E558FE4F71815713FE +:1031F00006C07081471303C07281711103C001962C +:103200008770E9CFF62E662309F418C18091B001CA +:1032100081608093B001F12C11C1751308C0341383 +:1032200006C0611104C08091B001D801C3C04D87B0 +:103230005E878D859E856A8B0E9494176A89882394 +:10324000E1F16623D1F12091B001822F82958F7038 +:1032500090E0029774F08091AB019091AC01988757 +:103260008F831986DB86CA862C87CE0107960E943B +:10327000551786E0F801ABEAB1E001900D928A950E +:10328000E1F70E940C180E94FE17FF24F394D6C0A9 +:103290004D875E878D859E850E94C81C292F2295AB +:1032A0002F7030E0223031050CF0BCC09F7009F067 +:1032B000B6C0805E883008F4C1C0C8010E945517AE +:1032C000E4CFC816D90608F453C0F601E81BF90B81 +:1032D000CF01883C910508F450C0F12C7C2DD98A8F +:1032E000C88A89890E94BE17EBEAF1E086E0DF0117 +:1032F0001D928A95E9F70E94FE17A0C0751314C0AD +:10330000341312C0611110C08091B001F80185839F +:10331000C8010E94551786E0EBEAF1E0DF011D923B +:103320008A95E9F7FE2C8AC04D875E878D859E853C +:103330006A8B0E9494176A89882309F4BECF66239A +:1033400009F4BBCF2091B001822F82958F7090E05D +:1033500002970CF48ECF8091AB019091AC019A83CF +:1033600089831B82DD82CC822E83CE0101967FCFA2 +:10337000809590958C0D9D1DACCFF62E662309F49B +:103380009CCF75132EC034132CC02091B00120FDAA +:103390001FC0822F82958F70D9F0D80115962C937B +:1033A00015978F3049F08F5F982F9295907F822FDD +:1033B0008F70892B15968C93C8010E94551786E053 +:1033C000F801ABEAB1E001900D928A95E1F793CF55 +:1033D00086E0F801ABEAB1E001900D928A95E1F741 +:1033E0002DC04D875E878D859E850E949417811123 +:1033F00040CF8091B00181608093B001C8010E94EC +:1034000055171CC0662309F458CF4D875E878D85FC +:103410009E850E949417882309F44FCF2ACF8111EB +:1034200048CF0CC0243031050CF047CF9F7009F411 +:1034300040CFF8019581907F09F03BCF8F2D6296A8 +:103440000FB6F894DEBF0FBECDBFDF91CF911F91B5 +:103450000F91FF90EF90DF90CF9008951F93CF933F +:10346000DF93CDB7DEB72C970FB6F894DEBF0FBE53 +:10347000CDBF4F83588769877A878B879C87CE011A +:1034800007960E946718882369F08F8198852A859E +:103490003B85232BF1F19F3F09F063C08F3F09F07B +:1034A00060C037C086E0FE013796DE0111960190BC +:1034B0000D928A95E1F76F817885EA85FB853097D3 +:1034C00041F17F3F11F46F3F21F120917A0130E00B +:1034D000C9010196877099274091790150E08417BE +:1034E000950709F447C069837A83FD83EC8396E0EE +:1034F000929FD001939FB00D1124A558BE4FFE019D +:10350000319601900D929A95E1F780937A010E948D +:10351000DD1716E08091790190917A018917C1F148 +:10352000189FC001112485589E4F0E946718882358 +:1035300079F1E09179011E9FF0011124E558FE4FC9 +:103540004081518162817381848195810E94CD1770 +:103550008091790190E00196877099278093790195 +:10356000D9CF4F81588569857A858B859C850E9446 +:10357000CD17CFCF0E94901710927A011092790147 +:10358000EBEAF1E086E0DF011D928A95E9F7C1CF11 +:103590002C960FB6F894DEBF0FBECDBFDF91CF9152 +:1035A0001F910895EF92FF920F931F93CF93DF9394 +:1035B0008C01009709F46CC0F12CEE24E394E8012F +:1035C0002196F8018491843740F4843008F051C08A +:1035D000813081F0823019F15BC0853709F444C035 +:1035E000A8F19CE7980F903708F052C08F770E949F +:1035F000AD1441C00E5F1F4FFE01C49180E28C0FDD +:10360000883048F4C7708E2D01C0880FCA95EAF73C +:103610000E94641D14C08C2F0E94E5132DC00E5F04 +:103620001F4FFE01C49180E28C0F883058F4C770A0 +:103630008E2D01C0880FCA95EAF70E946A1D0E946C +:103640008B1D1AC08C2F0E94AD1416C00E5F1F4F29 +:10365000FE01C491CC2381F08FE99FE00197F1F73F +:1036600000C00000C150F6CF0E5F1F4FFE01F49066 +:1036700003C00E94E5138E018F2D882309F49FCF8C +:10368000EFE9FFE03197F1F700C000008150F5CF7E +:10369000DF91CF911F910F91FF90EF9008950895C2 +:1036A0006093B5017093B6018093B7019093B80110 +:1036B0000C947C170F931F930091B5011091B601E4 +:1036C0002091B7013091B801DC01CB01802B912B07 +:1036D000A22BB32B8093B5019093B601A093B701B1 +:1036E000B093B8011F910F910C947C170F931F9307 +:1036F0000091B5011091B6012091B7013091B80148 +:10370000DC01CB0180239123A223B3238093B50155 +:103710009093B601A093B701B093B8011F910F9198 +:103720000C947C170F931F930091B5011091B60173 +:103730002091B7013091B801DC01CB01802791279E +:10374000A227B3278093B5019093B601A093B70148 +:10375000B093B8011F910F910C947C171092B10196 +:103760001092B2011092B3011092B4010C947C1724 +:1037700041E050E060E070E004C0440F551F661F58 +:10378000771F8A95D2F74093B1015093B2016093AD +:10379000B3017093B4010C947C1741E050E060E0F9 +:1037A00070E004C0440F551F661F771F8A95D2F73B +:1037B0008091B1019091B201A091B301B091B40197 +:1037C000482B592B6A2B7B2B4093B1015093B201AC +:1037D0006093B3017093B4010C947C1741E050E006 +:1037E00060E070E004C0440F551F661F771F8A9584 +:1037F000D2F740955095609570958091B101909168 +:10380000B201A091B301B091B401482359236A23B6 +:103810007B234093B1015093B2016093B301709345 +:10382000B4010C947C1741E050E060E070E004C00B +:10383000440F551F661F771F8A95D2F78091B101FB +:103840009091B201A091B301B091B40148275927DA +:103850006A277B274093B1015093B2016093B30173 +:103860007093B4010C947C170F931F930091B101D6 +:103870001091B2012091B3013091B401DC01CB0170 +:10388000802B912BA22BB32B8093B1019093B2018B +:10389000A093B301B093B4011F910F910C947C17C6 +:1038A0000F931F930091B1011091B2012091B301C8 +:1038B0003091B401DC01CB0180239123A223B323F7 +:1038C0008093B1019093B201A093B301B093B4017E +:1038D0001F910F910C947C170F931F930091B101CE +:1038E0001091B2012091B3013091B401DC01CB0100 +:1038F00080279127A227B3278093B1019093B2012B +:10390000A093B301B093B4011F910F910C947C1755 +:103910000895CF92DF92EF92FF920F931F93CF9370 +:10392000DF938C01C090B501D090B601E090B70153 +:10393000F090B8018091B1019091B201A091B301D2 +:10394000B091B401C82AD92AEA2AFB2ACFE1D0E0F3 +:10395000D701C6010C2E04C0B695A79597958795FB +:103960000A94D2F780FF06C0B8018C2F0E94790814 +:10397000019721F4219760F780E001C08C2FDF913F +:10398000CF911F910F91FF90EF90DF90CF9008950E +:10399000CF93DF93EC010E94891CBE010E9479083D +:1039A000DF91CF910895CB010E94C81C08958091AA +:1039B000B90185958595859508958091B9018770A0 +:1039C000089598E0899F90011124262B2093B90136 +:1039D0000C94CD1B2091B901809582238093B9016D +:1039E000982F977069F430E0482F552747FD509580 +:1039F0002417350729F08595859585950C94EE1B40 +:103A000008959091B901977081E009F480E00895DC +:103A100020910C0130910D01F90132969FEF40E0A9 +:103A20005191581789F09F3F19F4511101C0942FFB +:103A30004F5F4630A9F79F3F39F0F901E90FF11DBB +:103A400097FDFA9582830895089520910C01309195 +:103A50000D01F9013296285F3F4F9081981301C004 +:103A600010823196E217F307C1F7089581E090E0E4 +:103A7000E0910C01F0910D01E80FF91F1082019601 +:103A800088309105A9F708959091C501892B8093FD +:103A9000C501089580959091C50189238093C50142 +:103AA00008951092C50108959091C401892B8093C7 +:103AB000C401089580959091C40189238093C40125 +:103AC00008951092C40108959091C301892B8093A9 +:103AD000C301089580959091C30189238093C30108 +:103AE00008951092C30108958093BA010895109229 +:103AF000BA01089580910C0190910D01FC0131965D +:103B00009C01285F3F4F80E0919191118F5FE217F8 +:103B1000F307D1F70895E0910C01F0910D01809128 +:103B2000C5018083E0910C01F0910D01908180919D +:103B3000C401892B8083E0910C01F0910D019081EB +:103B40008091C301892B80838091BA01882361F021 +:103B5000E0910C01F0910D019081892B80830E94EE +:103B60007A1D81111092BA0180910C0190910D0182 +:103B70000C94BA1220E0009739F0AC014150510981 +:103B8000842395232F5FF7CF822F08958091DD0145 +:103B9000843039F11092C70120E488E190E00FB63B +:103BA000F894A895809360000FBE2093600080E099 +:103BB0000E940D0580E00E94AA0A83B7817F84607D +:103BC00083BF83B7816083BF7894889583B78E7FE6 +:103BD00083BF88E10FB6F894809360001092600074 +:103BE0000FBE0895089580E00E940D050E94C00A4E +:103BF0000E94430B0E94F21D0E94C80B91E08111AC +:103C000001C090E0892F08950E94901780E00E94E3 +:103C10000D050E9463230E94AE120C94AA0A1F9203 +:103C20000F920FB60F9211248F939F93AF93BF9370 +:103C30008091C701811113C08091C8019091C90181 +:103C4000A091CA01B091CB014196A11DB11D8093F5 +:103C5000C8019093C901A093CA01B093CB01BF9151 +:103C6000AF919F918F910F900FBE0F901F9018955D +:103C700082E084BD93E095BD9AEF97BD80936E007E +:103C800008952FB7F8948091C8019091C901A0912F +:103C9000CA01B091CB012FBF0895CF92DF92EF926E +:103CA000FF920F931F932FB7F8944091C801509142 +:103CB000C9016091CA017091CB012FBF6A017B01DC +:103CC000EE24FF248C0120E030E0C016D106E2068D +:103CD000F30610F4415051099A01281B390BC90110 +:103CE0001F910F91FF90EF90DF90CF9008951F925A +:103CF0000F920FB60F9211248F939F93AF93BF93A0 +:103D00008091C8019091C901A091CA01B091CB01E5 +:103D10000196A11DB11D8093C8019093C901A09384 +:103D2000CA01B093CB01BF91AF919F918F910F903A +:103D30000FBE0F901F9018950E94AB0FF8942FEFB5 +:103D400087EA91E6215080409040E1F700C00000F2 +:103D500087E090EBDC018093E7019093E801A0936A +:103D6000E901B093EA019CE088E10FB6F894A895C8 +:103D7000809360000FBE90936000FFCF0E94F61EFC +:103D8000811102C00E94D71E0E94011F8093C601AC +:103D90000E940E1F90E09093D8018093D7010E945B +:103DA000051F682F70E080E090E00C94501B6DEED2 +:103DB0007EEF80E090E00E946E2560E082E090E07F +:103DC0000E945C2560E083E090E00E945C2560E05A +:103DD00084E090E00E945C2560E085E090E00E9435 +:103DE0005C2560E086E090E00C945C2580E090E04B +:103DF0000E94562521E08D3E9E4F09F020E0822F43 +:103E0000089582E090E00C944E2583E090E00C94BD +:103E10004E25682F83E090E00C945C2584E090E0D0 +:103E20000C944E25682F84E090E00C945C2586E08D +:103E300090E00C944E25682F86E090E00C945C2571 +:103E40008091CE0180FF0BC06091110185E0689FD9 +:103E5000B001112475956795759567952BC081FF05 +:103E600009C06091110185E0689FB001112475952A +:103E7000679520C082FF07C06091110185E0689FAF +:103E8000B001112417C09091CF019923D1F0609116 +:103E90001001961788F72091110185E0289F900165 +:103EA0001124929FA001939F500D112470E0CA012C +:103EB0000E9420256038710540F46115710539F0C4 +:103EC00002C065E070E0862F08958FE7089581E0D5 +:103ED00008958091CE0180FF08C060910F0170E0CD +:103EE000759567957595679521C081FF06C06091AE +:103EF0000F0170E07595679519C082FF04C060914D +:103F00000F0170E010C09091CF019923C1F0609132 +:103F10000E019617A0F780910F01899FC00111240F +:103F200070E00E9420256038710528F46115710544 +:103F300021F0862F08958FE7089581E0089561E0CC +:103F400070E0F4CF803F21F40E94201F819504C0CF +:103F5000813F29F40E94201F8093D2010895823F5F +:103F600021F40E94201F819504C0833F29F40E9400 +:103F7000201F8093D1010895893F19F40E94691F81 +:103F800005C08A3F31F40E94691F81958093D30157 +:103F900008958B3F21F40E94691F819504C08C3FD6 +:103FA00029F40E94691F8093D4010895843F21F46D +:103FB0008091D001816017C0853F21F48091D001AC +:103FC000826011C0863F21F48091D00184600BC0D3 +:103FD000873F21F48091D001886005C0883F31F48B +:103FE0008091D00180618093D00108958D3F21F4AC +:103FF0008091CE0181600BC08E3F21F48091CE0173 +:10400000826005C08F3F29F48091CE018460809347 +:10401000CE010895803F39F48091D20187FF6CC0B2 +:104020001092D20169C0813F29F48091D201181603 +:10403000BCF362C09091D101823F29F497FF5CC02C +:104040001092D10159C0833F19F41916CCF354C012 +:10405000893F41F48091D30118160CF04DC01092A5 +:10406000D3014AC08A3F29F48091D30187FF44C01D +:10407000F6CF8B3F39F48091D40187FF3DC0109279 +:10408000D4013AC08C3F29F48091D4011816BCF3B6 +:1040900033C0843F21F48091D0018E7F17C0853FCB +:1040A00021F48091D0018D7F11C0863F21F4809151 +:1040B000D0018B7F0BC0873F21F48091D001877F97 +:1040C00005C0883F31F48091D0018F7E8093D0016C +:1040D00013C08D3F21F48091CE018E7F0BC08E3FA7 +:1040E00021F48091CE018D7F05C08F3F29F480910E +:1040F000CE018B7F8093CE018091D10181110EC0C2 +:104100008091D20181110AC08091D301811106C032 +:104110008091D401811102C01092CF01089580EDE9 +:1041200091E00E94C5120E94411E9093CD018093A0 +:10413000CC0108951F93CF93DF938091CC01909190 +:10414000CD010E944D1EAC019091CF01992321F029 +:104150002091120130E006C0209113018AE0289FCF +:10416000900111244217530708F486C08091D101B1 +:10417000C091D201D091D3011091D401811107C017 +:10418000C11176C0D11174C0111172C075C09F3FAA +:1041900019F09F5F9093CF01181624F40E94201FFE +:1041A0008093D1018091D10187FF05C00E94201F1B +:1041B00081958093D1011C1624F40E94201F8093C6 +:1041C000D2018091D20187FF05C00E94201F8195F6 +:1041D0008093D2016091D101662339F1C091D2015F +:1041E000CC2319F1772767FD7095872F972F0E94B1 +:1041F000312423E333E343E35FE30E9495240E94E9 +:10420000FE236093D1016C2F772767FD7095872F70 +:10421000972F0E94312423E333E343E35FE30E94BB +:1042200095240E94FE236093D2011D1624F40E945F +:10423000691F8093D3018091D30187FF05C00E943D +:10424000691F81958093D301111624F40E94691F80 +:104250008093D4018091D40187FF05C00E94691F1B +:1042600081958093D401DF91CF911F910C948F2081 +:104270009F3F09F08ECF96CFDF91CF911F91089588 +:10428000E0EDF1E085E0DF011D928A95E9F71092FB +:10429000CF011092CE010895833081F128F481304E +:1042A00059F08230D1F00895853009F449C0B8F151 +:1042B000863009F456C0089580911301262F30E00E +:1042C000280F311D2F3F310524F4680F609313012F +:1042D00008958FEF80931301089580911201262F86 +:1042E00030E0280F311D2F3F310524F4680F609313 +:1042F000120108958FEF80931201089580911101AA +:10430000262F30E0280F311D2F3F310524F4680F90 +:104310006093110108958FEF8093110108958091AA +:104320001001262F30E0280F311D2F3F310524F4D6 +:10433000680F6093100108958FEF80931001089526 +:1043400080910F01262F30E0280F311D2F3F3105BE +:1043500024F4680F60930F0108958FEF80930F018D +:10436000089580910E01262F30E0280F311D2F3F38 +:10437000310524F4680F60930E0108958FEF809348 +:104380000E010895833011F128F4813049F0823014 +:1043900091F00895853081F120F18630C1F10895C2 +:1043A00080911301681720F4861B809313010895F0 +:1043B00010921301089580911201681720F4861B52 +:1043C00080931201089510921201089580911101B5 +:1043D000681720F4861B8093110108951092110133 +:1043E000089580911001681720F4861B80931001B6 +:1043F000089510921001089580910F01681720F41C +:10440000861B80930F01089510920F0108958091EB +:104410000E01681720F4861B80930E0108951092F8 +:104420000E0108950F931F938732D8F58E3108F04F +:1044300085C08E3009F46FC098F4873009F459C0F4 +:104440008B3009F48FC0863009F093C08091C6018B +:10445000817F8E7F8093C60181E08093D6018AC0E0 +:10446000863109F47FC068F4803109F082C0809100 +:10447000C60183FB222720F991E0922790FB83F964 +:1044800053C0893109F46EC08B3109F072C080913C +:10449000C60181FB222720F991E0922790FB81F948 +:1044A00043C0883309F45EC050F4893209F45CC01B +:1044B000853309F459C0873209F456C05AC0833491 +:1044C00009F452C028F48A3308F453C0895337C022 +:1044D000883409F04EC00E9490170FEF13ED20E3CF +:1044E000015010402040E1F700C000000E949C1ED7 +:1044F00039C09091C601892F8095817080FB90F919 +:1045000029F0966098609093C60134C0997F977F98 +:104510009093C60127C08091C60182FB222720F913 +:1045200091E0922790FB82F98093C6019923D1F004 +:104530008091C60181608093C60114C08D5141E015 +:1045400050E060E070E08A019B0104C0000F111F81 +:10455000221F331F8A95D2F7C901B8010E94501B50 +:104560000E94901781E006C061E070E080E090E07A +:10457000F5CF80E01F910F91089580E0089580E0CD +:1045800008958E518A3030F4E82FF0E0ED5CFE4F54 +:104590008081089580E00895CF93C82F8091D6013F +:1045A000813069F018F08230C9F183C0E0910C01CC +:1045B000F0910D018081823209F07DC007C0E09149 +:1045C0000C01F0910D018081823261F48C2F0E94E8 +:1045D000BD22811104C08C2F0E9412221DC081E0D7 +:1045E00090E01AC08C2F0E94BF22811114C0C431E8 +:1045F00079F048F4CB3079F0C03109F060C082E046 +:104600008093D60108C0C93219F0C83321F057C0D1 +:104610001092D60154C081E0817053C0C93289F133 +:1046200018F5C43171F1B0F4C73009F046C08EE11D +:104630008093130182E3809312018AE08093110139 +:1046400084E18093100188E080930F0188E28093D9 +:104650000E0133C082EE8C0F863078F58C2F0E94CD +:10466000C1228093D50129C0CE34E9F020F4CB34A7 +:1046700021F56AE013C0C13579F0C235F1F461E08B +:104680000DC08091D501882319F01092D50115C075 +:1046900081E08093D60115C061E006C08091D5010C +:1046A0000E944C210AC06AE08091D5010E94C2217B +:1046B00004C01092D60180E004C081E002C080E016 +:1046C000ABCFCF9108950E94F61E811102C00E94C7 +:1046D000D71E0E94171F8093E60180FF02C08695B7 +:1046E00001C080E00C940D058091E601982F96950D +:1046F000292F30E0233031054CF49F5F990F8170F2 +:10470000892B81608093E6010E941B1F8091E60146 +:1047100086950C940D058091E601982F969591F061 +:104720009158990F8170892B8093E6018E7F91E0DB +:1047300009F490E08091E60190FB80F98093E60116 +:104740000E941B1F8091E60186950C940D058091B7 +:10475000E601982F909590FB80F98093E6010E94E6 +:104760001B1F8091E60180FF02C0869501C080E09A +:104770000C940D059091E601892F86958F5F8F77B8 +:104780009170843028F4880F892B8093E60102C051 +:104790009093E6018091E6018E7F91E009F490E02C +:1047A0008091E60190FB80F98093E6010E941B1F37 +:1047B0008091E60186950C940D052091E601922FDB +:1047C00096958927982F990F822F8170892B809336 +:1047D000E6018E7F91E009F490E08091E60190FB84 +:1047E00080F98093E6010E941B1F8091E601869567 +:1047F0000C940D058091E6018695089504D0689487 +:10480000B1118DC0089570D088F09F5790F0B92FE6 +:104810009927B751A0F0D1F0660F771F881F991F15 +:104820001AF0BA95C9F712C0B13081F077D0B1E073 +:10483000089574C0672F782F8827B85F39F0B93F83 +:10484000CCF3869577956795B395D9F73EF4909517 +:104850008095709561957F4F8F4F9F4F0895E89495 +:1048600009C097FB3EF490958095709561957F4FB8 +:104870008F4F9F4F9923A9F0F92F96E9BB27939566 +:10488000F695879577956795B795F111F8CFFAF476 +:10489000BB0F11F460FF1BC06F5F7F4F8F4F9F4FA7 +:1048A00016C0882311F096E911C0772321F09EE805 +:1048B000872F762F05C0662371F096E8862F70E06B +:1048C00060E02AF09A95660F771F881FDAF7880F45 +:1048D0009695879597F9089557FD9058440F551F61 +:1048E00059F05F3F71F04795880F97FB991F61F072 +:1048F0009F3F79F087950895121613061406551FE9 +:10490000F2CF4695F1DF08C0161617061806991F54 +:10491000F1CF86957105610508940895E894BB2749 +:1049200066277727CB0197F908950BD078C069D017 +:1049300028F06ED018F0952309F05AC05FC01124FA +:10494000EECFCADFA0F3959FD1F3950F50E0551F2E +:10495000629FF001729FBB27F00DB11D639FAA27D4 +:10496000F00DB11DAA1F649F6627B00DA11D661F23 +:10497000829F2227B00DA11D621F739FB00DA11D44 +:10498000621F839FA00D611D221F749F3327A00DFE +:10499000611D231F849F600D211D822F762F6A2F9A +:1049A00011249F5750408AF0E1F088234AF0EE0F1F +:1049B000FF1FBB1F661F771F881F91505040A9F72C +:1049C0009E3F510570F014C0AACF5F3FECF3983EB4 +:1049D000DCF3869577956795B795F795E7959F5F93 +:1049E000C1F7FE2B880F911D9695879597F908952D +:1049F00097F99F6780E870E060E008959FEF80EC92 +:104A0000089500240A941616170618060906089534 +:104A100000240A9412161306140605060895092E9A +:104A20000394000C11F4882352F0BB0F40F4BF2B09 +:104A300011F460FF04C06F5F7F4F8F4F9F4F089549 +:104A400097FB072E16F4009407D077FD09D00E943B +:104A50003A2507FC05D03EF4909581959F4F089527 +:104A6000709561957F4F0895EE0FFF1F0590F491AB +:104A7000E02D0994AA1BBB1B51E107C0AA1FBB1F55 +:104A8000A617B70710F0A61BB70B881F991F5A95DA +:104A9000A9F780959095BC01CD010895F999FECFB5 +:104AA00092BD81BDF89A992780B50895A8E1B0E03C +:104AB00042E050E00C947625262FF999FECF92BD66 +:104AC00081BDF89A019700B4021639F01FBA20BDD3 +:104AD0000FB6F894FA9AF99A0FBE08950196272F07 +:104AE0000E945D250C945C25DC01CB01FC01F99949 +:104AF000FECF06C0F2BDE1BDF89A319600B40D922A +:0C4B000041505040B8F70895F894FFCFE2 +:104B0C00FFDE0B6C0C490C150CE10B01BB012808EA +:104B1C00140A321E1F0F03764F5F6F7F496943796A +:104B2C0009595363404D362609D908A3084F086824 +:0E4B3C000881080102030405060708090000AD +:00000001FF diff --git a/keyboards/planck/keymaps/unicode/keymap.c b/keyboards/planck/keymaps/unicode/keymap.c new file mode 100644 index 000000000..d73e7e09d --- /dev/null +++ b/keyboards/planck/keymaps/unicode/keymap.c @@ -0,0 +1,326 @@ +/* + Copyright + 2015 Jack Humbert + 2016 Francois Marlier + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + + For more info on how this works per OS, see here + https://en.wikipedia.org/wiki/Unicode_input#Hexadecimal_code_input +*/ + + +#include "planck.h" +#include "action_layer.h" +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _PLOVER 5 +#define _ADJUST 16 + +// Macro name shortcuts +#define QWERTY M(_QWERTY) +#define COLEMAK M(_COLEMAK) +#define DVORAK M(_DVORAK) +#define LOWER M(_LOWER) +#define RAISE M(_RAISE) +#define M_BL 5 +#define PLOVER M(12) +#define EXT_PLV M(13) +#define TOG_OUT M(14) + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = { + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = { + {KC_TAB, UC_q, UC_w, UC_f, UC_p, UC_g, UC_j, UC_l, UC_u, UC_y, UC_SCLN, UC_BSPC}, + {KC_ESC, UC_a, UC_r, UC_s, UC_t, UC_d, UC_h, UC_n, UC_e, UC_i, UC_o, UC_QUOT}, + {KC_LSFT, UC_z, UC_x, UC_c, UC_v, UC_b, UC_k, UC_m, UC_COMM, UC_DOT, UC_SLSH, KC_ENT}, + {KC_TRNS, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = { + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = { + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Plover layer (http://opensteno.org) + * ,-----------------------------------------------------------------------------------. + * | # | # | # | # | # | # | # | # | # | # | # | # | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | S | T | P | H | * | * | F | P | L | T | D | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * |TogOut| S | K | W | R | * | * | R | B | G | S | Z | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Exit | | | A | O | | E | U | | | | + * `-----------------------------------------------------------------------------------' + */ + +[_PLOVER] = { + {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, + {XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, + {TOG_OUT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX} +}, + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|Musoff| | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = { + {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, + {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +} + + +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +#ifdef AUDIO_ENABLE +float tone_startup[][2] = { + {440.0*pow(2.0,(31)/12.0), 12}, + {440.0*pow(2.0,(28)/12.0), 8}, + {440.0*pow(2.0,(19)/12.0), 8}, + {440.0*pow(2.0,(24)/12.0), 8}, + {440.0*pow(2.0,(28)/12.0), 20} +}; + +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +float tone_plover[][2] = SONG(PLOVER_SOUND); +float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); + +float goodbye[][2] = SONG(GOODBYE_SOUND); +#endif + + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case _QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_qwerty, false, 0); + #endif + persistant_default_layer_set(1UL<<_QWERTY); + } + break; + case _COLEMAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_colemak, false, 0); + #endif + persistant_default_layer_set(1UL<<_COLEMAK); + } + break; + case _DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_dvorak, false, 0); + #endif + persistant_default_layer_set(1UL<<_DVORAK); + } + break; + case _LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + break; + case _RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + break; + case M_BL: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + case 12: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + stop_all_notes(); + PLAY_NOTE_ARRAY(tone_plover, false, 0); + #endif + layer_off(_RAISE); + layer_off(_LOWER); + layer_off(_ADJUST); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + } + break; + case 13: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_plover_gb, false, 0); + #endif + layer_off(_PLOVER); + } + break; + case 14: + if (record->event.pressed) { + return MACRO( D(E), D(R), D(F), D(V), D(O), D(L), U(E), U(R), U(F), U(V), U(O), U(L), END ); + } + break; + } + return MACRO_NONE; +}; + +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + _delay_ms(20); // stops the tick + PLAY_NOTE_ARRAY(tone_startup, false, 0); + #endif +} + +#ifdef AUDIO_ENABLE +void play_goodbye_tone() +{ + PLAY_NOTE_ARRAY(goodbye, false, 0); + _delay_ms(150); +} +#endif + + diff --git a/keyboards/planck/keymaps/yang/Makefile b/keyboards/planck/keymaps/yang/Makefile new file mode 100644 index 000000000..f4908d703 --- /dev/null +++ b/keyboards/planck/keymaps/yang/Makefile @@ -0,0 +1,9 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/yang/WS2812-wiring.jpg b/keyboards/planck/keymaps/yang/WS2812-wiring.jpg new file mode 100644 index 000000000..2c65cd283 Binary files /dev/null and b/keyboards/planck/keymaps/yang/WS2812-wiring.jpg differ diff --git a/keyboards/planck/keymaps/yang/compiled.hex b/keyboards/planck/keymaps/yang/compiled.hex new file mode 100644 index 000000000..da6b0017a --- /dev/null +++ b/keyboards/planck/keymaps/yang/compiled.hex @@ -0,0 +1,1318 @@ +:100000000C949F030C94E3030C94E3030C94E3031C +:100010000C94E3030C94E3030C94E3030C94E303C8 +:100020000C94E3030C94E3030C94A4130C94761443 +:100030000C948E210C94E3030C94E3030C94E303DF +:100040000C94E3030C9447040C94E3030C94E30333 +:100050000C94E3030C94F6210C94E3030C94E30357 +:100060000C94E3030C94E3030C94E3030C94E30378 +:100070000C94E3030C94E3030C94E3030C94E30368 +:100080000C94060F0C94E3030C94E3030C94E30329 +:100090000C94E3030C94E3030C94E3030C94E30348 +:1000A0000C94E3030C94E3030C94E303B404D00432 +:1000B000B804BC04C004C404C804CC04E31405158B +:1000C000F3150515F3154A156D15F315C215D5155C +:1000D000BF18BF18EE18EE182D194D19A31AA31A40 +:1000E0005819A31A081A081A6F1A781AA31A9D1A0F +:1000F000151A151A151A151A151A151A151A151A88 +:10010000151A151A151A151A151A151A151A151A77 +:10011000251A331A3A1A411A4B1A0000000000003F +:100120000000000000010204060A0F17202C3A4AC2 +:100130005D71879DB3C7DAE9F5FCFFFCF5E9DAC725 +:10014000B39D87715D4A3A2C20170F0A06040201FD +:10015000000000000000000000002CA500F001F0ED +:1001600002F003F004F005F006F007F02B00140095 +:100170001A000800150017001C0018000C001200DF +:1001800013002A00290004001600070009000A00D5 +:100190000B000D000E000F0033003400E1001D00C5 +:1001A0001B00060019000500110010003600370082 +:1001B000380028000030E000E200E3000352002095 +:1001C000002004525000510052004F002B00140038 +:1001D0001A00090013000A000D000F0018001C008F +:1001E00033002A002900040015001600170007003C +:1001F0000B00110008000C0012003400E1001D008B +:100200001B000600190005000E0010003600370024 +:10021000380028000030E000E200E3000352002034 +:10022000002004525000510052004F002B003400B7 +:100230003600370013001C0009000A0006001500F4 +:100240000F002A00290004001200080018000C000A +:1002500007000B001700110016003800E100330002 +:1002600014000D000E001B00050010001A001900FC +:100270001D0028000030E000E200E30003520020EF +:10028000002004525000510052004F0035021E025F +:100290001F0220022102220223022402250226023A +:1002A00027022A0001003A003B003C003D003E00CE +:1002B0003F002D022E022F023002310201004000C9 +:1002C00041004200430044004500005301530253E3 +:1002D00000500100010001000100010001000100C7 +:1002E00001000100AB00AA00A900AE0035001E000D +:1002F0001F002000210022002300240025002600EA +:1003000027002A0001003A003B003C003D003E006F +:100310003F002D002E002F00300031000100400072 +:100320004100420043004400450000530153025382 +:100330000050010001000100010001000100010066 +:1003400001000100AB00AA00A900AE0001004B00B3 +:1003500052004E00010001000100010001000100F7 +:1003600001004C000100500051004F0001004A0004 +:100370005000510052004F004D00010001000120CB +:100380000220032004200520062007200820010069 +:100390000100010001000100010001000100010055 +:1003A0000100010001000100010001006432146439 +:1003B0003214783C1E1E140A0500000000010101E1 +:1003C0000202030405050607090A0B0C0E0F1112A1 +:1003D000141517191B1D1F212325282A2C2F3134F2 +:1003E00036393B3E414346494C4F5255585A5D6160 +:1003F00064676A6D707376797C7F8386898C8F924F +:1004000095989B9EA2A5A7AAADB0B3B6B9BCBEC134 +:10041000C4C6C9CBCED0D3D5D7DADCDEE0E2E4E681 +:10042000E8EAEBEDEEF0F1F3F4F5F6F8F9FAFAFBA1 +:10043000FCFDFDFEFEFEFFFFFFFFFFFFFFFEFEFED9 +:10044000FDFDFCFBFAFAF9F8F6F5F4F3F1F0EEED48 +:10045000EBEAE8E6E4E2E0DEDCDAD7D5D3D0CECBD7 +:10046000C9C6C4C1BEBCB9B6B3B0ADAAA7A5A29E49 +:100470009B9895928F8C898683807C797673706D3A +:100480006A6764615D5A5855524F4C494643413E34 +:100490003B393634312F2C2A282523211F1D1B19C7 +:1004A00017151412110F0E0C0B0A09070605050487 +:1004B0000302020101010000000001010202020228 +:1004C00002020303030303030303030303030303FE +:1004D00004040404040404040404040405050505D8 +:1004E00005050505050506060606060606060707B0 +:1004F000070707070708080808080809090909097C +:10050000090A0A0A0A0A0B0B0B0B0B0C0C0C0C0C3D +:100510000D0D0D0D0E0E0E0E0F0F0F1010101011F1 +:100520001111121212131313141414151516161692 +:10053000171718181919191A1A1B1B1C1C1D1D1E18 +:100540001E1F20202121222323242425262627287C +:1005500028292A2B2B2C2D2E2F30303132333435B5 +:10056000363738393A3B3C3D3E3F404142444546B0 +:1005700047494A4B4C4E4F5152535556585A5B5D62 +:100580005E6062636567696B6D6E70727476797BAD +:100590007D7F818486888B8D909295979A9D9FA26E +:1005A000A5A8ABAEB1B4B7BABEC1C4C8CBCFD3D681 +:1005B000DADEE2E6EAEEF2F8FF28035400680065AE +:1005C00000200050006C0061006E0063006B002092 +:1005D000004B006500790062006F006100720064EA +:1005E0000000002C034F007200740068006F006C64 +:1005F0000069006E0065006100720020004B00651C +:1006000000790062006F00610072006400730000F6 +:10061000000403090409025400030100A0FA0904BC +:1006200000000103010100092111010001223F0026 +:100630000705810308000A09040100010301020003 +:10064000092111010001224D000705820308000A5B +:100650000904020001030000000921110100012228 +:1006600036000705830308000A120110010000008C +:1006700008EDFE606001000102000105010980A192 +:1006800001850216010026B7001A01002AB700757D +:100690001095018100C0050C0901A1018503160117 +:1006A00000269C021A01002A9C0275109501810007 +:1006B000C005010902A1010901A1000509190129CB +:1006C00005150025019505750181029501750381C8 +:1006D000010501093009311581257F9502750881D1 +:1006E0000609381581257F950175088106050C0AD4 +:1006F00038021581257F950175088106C0C0050166 +:100700000906A101050719E029E71500250195084B +:1007100075018102950175088101050819012905F6 +:100720009505750191029501750391010507190061 +:1007300029FF150025FF950675088100C0001124CA +:100740001FBECFEFDAE0DEBFCDBF04B603FE24C08C +:100750008091540290915502A0915602B091570297 +:100760008730904BA740B04BB9F4109254021092CE +:100770005502109256021092570214BE84B7877F1A +:1007800084BF88E10FB6F8948093600010926000F7 +:100790000FBEE0E0F8E3099511E0A0E0B1E0EAE087 +:1007A000F2E502C005900D92AE33B107D9F712E021 +:1007B000AEE3B1E001C01D92A435B107E1F70E949C +:1007C000EA100C9403290C9400000895089581E028 +:1007D000089508950C94E6030C94E7030C94E90340 +:1007E0000E94672723E030E0281B3109220F209365 +:1007F00042010895282F2F9880918000211108C070 +:10080000877F8093800010928D0010928C001BC017 +:10081000886080938000233019F48FEF9FEF0FC022 +:1008200083E090E0821B9109880F991F2FEF3FEF23 +:10083000A90102C0569547958A95E2F7CA0190939F +:100840008D0080938C000C94F0030E94F00384E0F0 +:100850008093410110923E010895279A2F988FEFBF +:100860009FEF90938700809386008AE080938000BA +:1008700089E1809381000E94D0260C9425040E9477 +:100880002D040E94780C6E9A769A0C94E5031F92C0 +:100890000F920FB60F9211242F933F938F939F9334 +:1008A000EF93FF93E0913F01F0914001CF0101965A +:1008B0009093400180933F010090410102C0F69562 +:1008C000E7950A94E2F7EF7380913E01823019F4C4 +:1008D000E03251F404C0813039F4EF3329F48091CF +:1008E0006F008D7F80936F00F0E0E65EFE4FE49135 +:1008F00021E031E0E29FC001E39F900D11240090C0 +:10090000420102C0969587950A94E2F790938D0074 +:1009100080938C00FF91EF919F918F913F912F9148 +:100920000F900FBE0F901F90189561110DC0FC0124 +:100930008281882331F085EE0E9463170E94272769 +:1009400003C085EE0E942B1880E090E00895462FAA +:1009500050E04830510538F5FA01EA5AFF4FDC0102 +:1009600012968C910C94B5288823E9F00C94B50C60 +:100970008823C9F00C94770B8823A9F00C948F0B73 +:10098000882389F00C94AE0B882369F00C94C90B72 +:10099000882349F00C94E30B882329F00C94FE0B78 +:1009A00081110C94AB0C089581E008950C94D4044B +:1009B00008950F931F93CF93DF938C01FC01C081A7 +:1009C000D181CE010E940720BE010E948505EC0165 +:1009D000B8010E94D604882309F48DC0F8018281F1 +:1009E000882309F44AC080914E0181111FC0C4318F +:1009F000F0E5DF0709F051C00E94D80481E0809340 +:100A00004E010E94C02190934D0180934C011092A1 +:100A1000450110924701109246011092490110922F +:100A2000480110924B0110924A0165C080914C011F +:100A300090914D010E94CC21883C910570F48091E9 +:100A40004501E82FF0E0EE0FFF1FEA5BFE4FD18378 +:100A5000C0838F5F809345014EC0C43880E5D807BE +:100A600021F0C538D04501F13AC0F80182818823D0 +:100A700041F01092430182E01EC0C438E0E5DE0779 +:100A800059F580914301811106C086E20E946317E7 +:100A900086E20E942B1882E01CC0C438F0E5DF0714 +:100AA00041F3C538D045D9F4F8018281882331F06B +:100AB0001092440180E20E947A181DC08091440186 +:100AC000811106C087E20E94631787E20E942B18FB +:100AD00080E20E9481180FC0C538D04529F381E01B +:100AE0008093430180934401C801DF91CF911F910E +:100AF0000F910C94EC0380E0DF91CF911F910F9147 +:100B000008950C943F040C94EA039CE0799FF00153 +:100B1000112490E3899FE00DF11D1124E60FF11DD2 +:100B2000EE0FFF1FE459FE4F859194910895880FB1 +:100B3000991FFC01E652F040859194910895880F29 +:100B4000991FFC01E65AFE4F8591949108950F93E9 +:100B50001F93CF93DF93EC01811521E39207A0F55A +:100B6000C11580E3D80708F0D7C0C83ED105D8F436 +:100B7000C03ED10508F003C2C83AD10578F4C53AA1 +:100B8000D10508F06AC0C130D10509F463C008F48A +:100B9000F3C1C430D10508F0F2C1EEC1CB3BD105A1 +:100BA00008F466C0E9C1C11590E2D90708F0AFC0EA +:100BB000C11521E0D20708F0E2C1C03FD10508F419 +:100BC000DBC18E0110651BC2C03880E5D80700F577 +:100BD000C03790E5D90708F0A3C0C11520E5D207BA +:100BE00009F4ACC050F4CE01905480319F4008F01D +:100BF000C3C1DF708E01106A02C2C13080E5D80720 +:100C000009F4AAC0C43190E5D90708F4ABC0B4C157 +:100C1000C33820E5D20709F48EC050F4C13890E5FE +:100C2000D90709F482C008F083C000E011EDE7C1E4 +:100C3000C03181E5D80708F49FC1C11597E5D907F0 +:100C400008F432C1CE0190578115904108F094C14B +:100C5000DF708FC101E010E0D2C1C53AD10509F4BF +:100C600090C1C63AD10509F08FC102E810E4C7C1AE +:100C7000C83AD10509F48BC1C93AD10509F48AC132 +:100C8000CA3AD10509F489C1CB3AD10509F488C122 +:100C9000CC3AD10509F487C1CD3AD10509F486C112 +:100CA000C03BD10509F485C1CE3AD10509F484C110 +:100CB000CF3AD10509F483C1C13BD10509F482C102 +:100CC000C23BD10509F481C1C33BD10509F480C100 +:100CD000C43BD10509F47FC1C53BD10509F47EC1F0 +:100CE000C63BD10509F47DC1C73BD10509F47CC1E0 +:100CF000C83BD10509F47BC1C93BD10509F47AC1D0 +:100D0000CA3BD10509F479C100E014E478C1CE01F1 +:100D10009F700E949F0574C1DD278E01106C6FC10A +:100D2000CF70DD278E01146D6AC100E010ED67C140 +:100D300000E012ED64C100E013ED61C10E940E1BE2 +:100D40008FEF94E32CE0815090402040E1F700C009 +:100D500000000E941B2253C18091D80181608093C2 +:100D6000D8014DC10E947222811102C00E945322FB +:100D70000E94852290E09093530280935202C230E9 +:100D800080E5D80721F480915202816086C0C4308A +:100D900090E5D90721F48091520282607EC0C6306E +:100DA00020E5D20721F480915202846076C0C830D9 +:100DB00080E5D80719F48091520227C0CA3090E527 +:100DC000D90721F480915202806167C0CC3020E5C0 +:100DD000D20721F48091520280625FC0CE3080E55C +:100DE000D80721F480915202806457C0C03190E549 +:100DF000D90721F48091520280684FC0C23120E5AA +:100E0000D20729F4809152028460886046C0C330C2 +:100E100080E5D80721F4809152028E7F3EC0C53014 +:100E200090E5D90721F4809152028D7F36C0C730FA +:100E300020E5D20721F4809152028B7F2EC0C93069 +:100E400080E5D80719F48091520226C0CB3090E596 +:100E5000D90721F4809152028F7E1FC0CD3020E54A +:100E6000D20721F4809152028F7D17C0CF3080E5E8 +:100E7000D80721F4809152028F7B0FC0C13190E5D9 +:100E8000D90721F4809152028F7707C0C331D04532 +:100E900031F4809152028B7F877F80935202809140 +:100EA00052020E948922ABC08D2F99278F709927FB +:100EB00081309105D9F49E012370332702C0880F39 +:100EC000991F2A95E2F79C688E0144E0000F111FDC +:100ED0004A95E1F700271370802B912B53E0CC0F3C +:100EE000DD1F5A95E1F7C076DD272FC082309105CE +:100EF00031F4DC2FCC278E01016F106A80C0833063 +:100F0000910569F4CE018370992701E010E002C0D9 +:100F1000000F111F8A95E2F7C8019C680FC084304A +:100F20009105B9F4CE018370992701E010E002C069 +:100F3000000F111F8A95E2F7C8019A6823E0CC0FD1 +:100F4000DD1F2A95E1F7C07ED7708C010C2B1D2B7D +:100F500056C08530910531F4DC2FCC278E01046F0B +:100F6000106A4DC0069709F04AC0CF71DD27DC2F0B +:100F7000CC278E01106243C000E010E040C08E011B +:100F80003EC001E810E43BC003E810E438C002EEC4 +:100F900014E435C009EE14E432C00AEE14E42FC0A4 +:100FA00005EB14E42CC006EB14E429C007EB14E4B1 +:100FB00026C00CEC14E423C00DEC14E420C003E8BC +:100FC00015E41DC00AE815E41AC002E915E417C0CB +:100FD00004E915E414C001E216E411C003E216E4CA +:100FE0000EC004E216E40BC005E216E408C006E2F7 +:100FF00016E405C007E216E402C00AE216E4C801DE +:10100000DF91CF911F910F9108959CE0799FF0019E +:10101000112490E3899FE00DF11D1124E60FF11DCD +:10102000EE0FFF1FE459FE4F85919491803E91058C +:10103000E0F4803C910558F58133910509F46FC0C7 +:1010400048F48932910509F463C08A32910509F4A4 +:101050006DC072C089339105E9F082389105D1F0F5 +:101060008533910509F44DC067C0833E910581F138 +:1010700038F4803E9105B9F0823E9105D9F05CC00C +:10108000863E910561F1873E9105A1F155C00E9410 +:10109000970508952091520220FD02C021FF4CC007 +:1010A00080EE90E049C08091520280FFF9CF89E341 +:1010B00090E042C08091520282FF0EC080915202A5 +:1010C00084FF03C080E090E037C083EE90E034C03E +:1010D0008091520282FFF2CF82EE90E02DC080918B +:1010E000520283FF0BC08091520284FDEBCF87EE4A +:1010F00090E022C08091520283FFF5CF86EE90E00F +:101100001BC08091520285FF07C089E290E014C0A5 +:101110008091520285FFF9CF85E390E00DC0809168 +:10112000520286FF07C08AE290E006C08091520218 +:1011300086FFF9CF81E390E00E94A70508950C9403 +:10114000EE03E82FF0E0EF5DFE4F8081E82FEF70B7 +:10115000F0E082958F7021E030E0A90102C0440FD9 +:10116000551F8A95E2F740A308950F931F93CF93DD +:10117000DF9385B7806885BF85B7806885BFC3E08A +:10118000D0E001E010E0FE01EF5DFE4F8081E82F2E +:10119000EF70F0E021A182958F70A80102C0440F8A +:1011A000551F8A95E2F7CA01822B81A38C2F0E94DA +:1011B000A108219740F78BE090E061E070E0FC012E +:1011C000EB5EFE4F2081E22FEF70F0E042A122950E +:1011D0002F70DB0102C0AA0FBB1F2A95E2F79D0109 +:1011E000242B22A3019758F7DF91CF911F910F91E4 +:1011F0000C948105EF92FF920F931F93CF93DF938F +:1012000007E511E0C3E0EE24E394F12CD5E08C2F48 +:101210000E94A1088BE090E040E050E0FC01EB5E12 +:10122000FE4F6081E62FEF70F0E020A130E0629584 +:101230006F7002C0359527956A95E2F720FD09C0C9 +:101240009701082E02C0220F331F0A94E2F7422BA7 +:10125000532B019718F7F801929182918F0184170F +:10126000950721F051834083D09300018C2F0E9479 +:10127000A108C15060F68091000187FD2CC081500B +:10128000809300018F3F39F08FE99FE00197F1F7DC +:1012900000C0000020C080915501909156019093AC +:1012A0005E0180935D018091530190915401909370 +:1012B0005C0180935B018091510190915201909368 +:1012C0005A018093590180914F0190915001909360 +:1012D0005801809357010E94830581E0DF91CF91EF +:1012E0001F910F91FF90EF900895E82FF0E0EE0F1F +:1012F000FF1FE95AFE4F80819181089508950F9351 +:101300001F93CF930FE511E0C0E0F8019291829115 +:101310008F010E943821C80FF1E007351F07A9F798 +:101320008C2FCF911F910F9108952BB1342F3095B1 +:1013300023233BB1432B3FB7F894FC01680F791F7F +:10134000E617F70789F0819198E04BB9000000C0DB +:1013500087FF2BB9880F000000C000C000C02BB968 +:1013600000C09A9591F7ECCF3FBF08952AB1242B86 +:101370002AB99B01220F331F620F731F0E94950928 +:1013800087EC90E00197F1F700C00000089542E07B +:101390000C94B609AF92BF92CF92DF92EF92FF9278 +:1013A0000F931F93CF93DF936C01790150E0FA0103 +:1013B000E754FB4F44918FEF90E0FC01E61BF109ED +:1013C000E754FB4FE491E09509F495C0C42FD0E0B9 +:1013D0008E1B91098C9F90018D9F300D9C9F300D2D +:1013E0001124E32F8CE3A82EB12CC601B5010E9475 +:1013F0008D28DC016230710509F446C0D0F4611516 +:10140000710599F16130710509F079C0C31BD109EB +:10141000B501681B790BC69FC001C79F900DD69F71 +:10142000900D1124B5010E948D28032F060F142F53 +:1014300067C06430710509F44BC0B8F165307105BF +:1014400009F05DC0C31BD109B501681B790BC69FAC +:10145000C001C79F900DD69F900D1124B5010E9429 +:101460008D28132FE32FE60F44C0C31BD109CC9D59 +:10147000C001CD9D900DDC9D900D1124B5010E9401 +:101480008D28132F160F35C0C31BD109CA9FC00169 +:10149000CB9F900DDA9F900D1124B5010E948D28ED +:1014A000142F032FE32FE60F2BC0C31BD109B50167 +:1014B000681B790BC69FC001C79F900DD69F900DEA +:1014C0001124B5010E948D28132F160F032F0FC072 +:1014D000C31BD109CA9FC001CB9F900DDA9F900D0D +:1014E0001124B5010E948D28032F060F132FE42F1E +:1014F00007C0042F05C0E42F142F042F01C0E0E023 +:10150000D70111960C9311971C931296EC93DF91CF +:10151000CF911F910F91FF90EF90DF90CF90BF90F0 +:10152000AF90089587E090E00C94C328AB01BC0114 +:1015300087E090E00C94E128E9EEF1E083E080831D +:10154000AAEEB1E08C91807884668F778C938CECD6 +:10155000828383836091E9017091EA018091EB01BC +:101560009091EC010C94960A8091E90180FF06C0ED +:101570006CE170E081EF91E00C94C70980E090E0AD +:10158000FC01EF50FE4F11821082128203968435C7 +:101590009105B1F7EDCF20E030E0F901EF50FE4FBB +:1015A0008183608342832D5F3F4F24353105A9F746 +:1015B0000C94B40AEF92FF920F931F93CF93DF9393 +:1015C00000D01F92CDB7DEB70091E9011091EA017A +:1015D0002091EB013091EC010093ED011093EE01AD +:1015E0002093EF013093F0012091E90120FF21C009 +:1015F000042FF62EE92E182F9E012F5F3F4F0E94D9 +:10160000CA098091ED0110FB87F98093ED011695D1 +:101610008091EE018078182BE0FA17F91093EE0113 +:10162000F092EF010093F0014B8169818A810E9461 +:10163000CB0A0F900F900F90DF91CF911F910F91D8 +:10164000FF90EF9008950F931F93CF93DF93EC01DA +:10165000062F142F9091E90190FF44C0892F8E77B7 +:10166000823021F4CE010E94DA0A1BC0892F8695B0 +:101670008F732EE3280F2F73243018F41091EC0190 +:1016800010C0865C8F73893060F4C92FCC1FCC27C3 +:10169000CC1FD091EA018D2F880FC82BD7FBDD27F7 +:1016A000D0F98091E901C0FB87F98093E901C695E3 +:1016B0008091EA018078C82BD0FBC7F9C093EA017A +:1016C0000093EB011093EC016091E9017091EA0144 +:1016D0008091EB019091EC01DF91CF911F910F91DF +:1016E0000C94960ADF91CF911F910F910895E9EE26 +:1016F000F1E02081221F2227221F3091EA01432F8F +:10170000440F842F822B37FB992790F90A9668E6BD +:1017100071E00E94A128438162810C94230B2091E7 +:10172000E901221F2227221F3091EA01432F440F93 +:10173000842F822B37FB992790F98A3091051CF46E +:10174000825A9E4F01C00A9768E671E00E94A12864 +:101750004091EC016091EB010C94230B6091EB0143 +:10176000862F90E08F3E910514F46F5E01C06FEFFD +:101770008091E901881F8827881F9091EA01292F0D +:10178000220F97FB992790F94091EC01822B0C9442 +:10179000230B6091EB01862F90E0419714F061518B +:1017A00001C060E08091E901881F8827881F90911F +:1017B000EA01292F220F97FB992790F94091EC011C +:1017C000822B0C94230B4091EC01842F90E08F3EF0 +:1017D000910514F44F5E01C04FEF8091E901881F1D +:1017E0008827881F9091EA01292F220F97FB9927BC +:1017F00090F96091EB01822B0C94230B4091EC014A +:10180000842F90E0419714F0415101C040E0809155 +:10181000E901881F8827881F9091EA01292F220F4C +:1018200097FB992790F96091EB01822B0C94230B85 +:101830008091700181110FC081E08093700189E077 +:10184000809391008FB7F89493E09093990090ED76 +:10185000909398008FBF0895E1E7F0E08081826067 +:1018600080830895E1E7F0E080818D7F8083089593 +:101870009091E90190FF3BC09178811102C0926084 +:1018800007C0883110F09E6203C08F73880F982BB9 +:101890009093E9016091E9017091EA018091EB0177 +:1018A0009091EC010E94960A8091E901982F9E7711 +:1018B000923019F40E94320C07C08695825C8F73B7 +:1018C000863110F40E942C0C8091E901881F882732 +:1018D000881F9091EA01292F220F97FB992790F9F1 +:1018E0004091EC016091EB01822B0C94230B089545 +:1018F0008091D80181608093D80181E0809371014B +:101900000E947222811104C00E9453220E949C0AEC +:101910000E94920A6093E9017093EA018093EB01BF +:101920009093EC016E7761F40E949C0A0E94920AE7 +:101930006093E9017093EA018093EB019093EC01CD +:101940000E94180C8091E90180FF04C086958F7376 +:101950000C94380C08958091E90186958F738F5F00 +:10196000883108F081E00C94380C8091E901982FBF +:10197000909590FB80F98093E9016091E901709165 +:10198000EA018091EB019091EC010E94960A80910E +:10199000E90180FF04C086958F730C94380C0E9477 +:1019A000320C2FEF80E792E0215080409040E1F729 +:1019B00000C000000C94B40ACF93C82F80916E0130 +:1019C00090916F010E94CC21EC2FF0E0EB54FC4F82 +:1019D000E491F0E08E179F0718F10E94C0219093C8 +:1019E0006F0180936E01E0916D01F0E0E754FC4FD0 +:1019F00044918091E901881F8827881F9091EA010E +:101A0000292F220F97FB992790F96091EB01822BE8 +:101A10000E94DA0A80916D0190E0019680936D0139 +:101A2000CF910895CF93C82F80916B0190916C0155 +:101A30000E94CC21EC2FF0E0EE54FC4FE491F0E05A +:101A40008E179F07E8F00E94C02190936C0180934D +:101A50006B014091EC016091EB01809169019091E3 +:101A60006A010E94DA0A8091690190916A010196E7 +:101A700068E671E00E948D2890936A018093690165 +:101A8000CF910895CF92DF92FF920F931F93CF9340 +:101A9000DF93F82E80916701909168010E94CC211C +:101AA000EF2DE695F0E0EE54FC4FE491F0E08E1758 +:101AB0009F07F0F10E94C021909368018093670115 +:101AC00001EF11E0C0E0D0E088E6C82EDD24D39419 +:101AD00080916501909166018C0F9D1FB6010E9457 +:101AE0008D2898014091EC016091EB010E94CA0998 +:101AF0002C960D5F1F4FC03581E0D80749F70E9433 +:101B0000B40A2091650130916601F0FE0BC0C90155 +:101B1000019668E671E00E948D289093660180939B +:101B2000650106C02150310930936601209365019B +:101B3000DF91CF911F910F91FF90DF90CF9008958B +:101B40008F929F92AF92BF92CF92DF92EF92FF92CD +:101B50000F931F93CF93DF93C82F80FF03C0DD2423 +:101B6000DA9402C0DD24D3948091630190916401E2 +:101B70000E94CC21C695EC2FF0E0E155FC4FE4919A +:101B8000F0E08E179F0708F467C00E94C021909371 +:101B900064018093630191EFE92E91E0F92E03EF48 +:101BA00011E0C0E0D0E027E0822E912CF8013197BF +:101BB0001082F7011082F801108287E0A82EB12C64 +:101BC000C12C809162018C0D87FD845E992787FD71 +:101BD0009095C817D907E9F42091EC012A9DC0011E +:101BE0002B9D900D1124B4010E94A128462F8091B5 +:101BF000E901881F8827881F9091EA01592F550F06 +:101C000097FB992790F997016091EB01852B0E9432 +:101C1000CA09CD0CF1E0AF1AB10899F6219683E01C +:101C2000E80EF11C0D5F1F4FCC31D10509F0BECF7E +:101C30000E94B40A8091620191E0D91206C081111C +:101C400002C08BE107C0815005C090E00196BE0143 +:101C50000E94A12880936201DF91CF911F910F9183 +:101C6000FF90EF90DF90CF90BF90AF909F908F90BC +:101C700008959F92AF92BF92CF92DF92EF92FF9220 +:101C80000F931F93CF93DF93CDB7DEB7C455D10920 +:101C90000FB6F894DEBF0FBECDBF182F8091600144 +:101CA000909161010E94CC21E12FF0E0E455FC4FBE +:101CB000E491F0E08E179F0708F495C00E94C021C0 +:101CC0009093610180936001CE0101967C015E01D9 +:101CD00093E0A90EB11CC12CD12C8701F5013197DD +:101CE0001082F7011082F5011082912C9091010170 +:101CF00080915F01999E800D112487FD04C08C3175 +:101D00001CF08BE101C080E0992787FD9095C816F3 +:101D1000D906A1F48091E901881F8827881F909136 +:101D2000EA01592F550F97FB992790F99701409198 +:101D3000EC016091EB01852B0E94CA099394F7E0B6 +:101D40009F12D4CF8FEFC81AD80A93E0E90EF11C86 +:101D5000E3E0AE0EB11CFCE1CF16D10409F0BECF1A +:101D600023EF31E059E0E52EF12C6CE1C62ED12CA9 +:101D7000C701B6010E94A128D9011197FC01EE0FFD +:101D8000FF1FE80FF91FE00FF11F81818C9311975E +:101D900080818C938281F9018083FFEFEF1AFF0A23 +:101DA0002D5F3F4F85E2E816F10411F70E94B40A57 +:101DB0009091010180915F01913049F48A3F2CF4A8 +:101DC00089EF80935F018FEF08C081500AC0833292 +:101DD0003CF082E280935F0181E08093010103C0C7 +:101DE0008F5F80935F01CC5ADF4F0FB6F894DEBF50 +:101DF0000FBECDBFDF91CF911F910F91FF90EF905C +:101E0000DF90CF90BF90AF909F9008951F920F9258 +:101E10000FB60F9211242F933F934F935F936F93BD +:101E20007F938F939F93AF93BF93EF93FF93809193 +:101E3000E90186958F739EE3980F9F73943020F489 +:101E400082500E94DC0C23C09AE3980F9F7393305A +:101E500020F486500E94120D1AC097E3980F9F73CA +:101E6000963020F489500E94420D11C091E3980FE2 +:101E70009F73963020F48F500E94A00D08C09BE203 +:101E8000980F9F73933018F485510E94390EFF917B +:101E9000EF91BF91AF919F918F917F916F915F91E2 +:101EA0004F913F912F910F900FBE0F901F9018955B +:101EB00080917A010895CF93DF9300D01F92CDB720 +:101EC000DEB79C0180914902843019F593E0998333 +:101ED0003B832A839093E9008FEF9091E800815033 +:101EE00095FD06C095ED9A95F1F700008111F5CFAB +:101EF0008091E80085FF0DC040E050E063E070E0B5 +:101F0000CE0101960E9494118091E8008E77809313 +:101F1000E8000F900F900F90DF91CF910895CF932D +:101F2000DF9300D01F92CDB7DEB720914902243055 +:101F300021F522E029839B838A8383E08093E90053 +:101F40008FEF9091E800815095FD06C095ED9A9530 +:101F5000F1F700008111F5CF8091E80085FF0DC0F9 +:101F600040E050E063E070E0CE0101960E949411E1 +:101F70008091E8008E778093E8000F900F900F908B +:101F8000DF91CF910895209149022430F1F422E0AD +:101F90002093E9002FEF3091E800215035FD06C075 +:101FA00035ED3A95F1F700002111F5CF2091E800C9 +:101FB00025FF0BC040E050E065E070E00E94941106 +:101FC0008091E8008E778093E8000895CF93DF93A7 +:101FD00020914902243039F521E02093E9002FEFC8 +:101FE0003091E800215035FD06C035ED3A95F1F706 +:101FF00000002111F5CF2091E80025FF14C0EC016D +:1020000040E050E068E070E00E9494118091E800A8 +:102010008E778093E80088E0FE01A2E7B1E00190AE +:102020000D928A95E1F7DF91CF9108958091480252 +:10203000811109C00E9429130E9486138091E20039 +:1020400084608093E20008951092480208950895F4 +:1020500008950C94832142E061EC81E00E94A31278 +:1020600042E061EC82E00E94A31242E061EC83E076 +:102070000C94A31280914B02833009F453C030F4C6 +:10208000813071F0823009F48CC008958A3009F4EF +:1020900078C08B3009F45EC0893009F09AC020C046 +:1020A00080914A02813A09F094C08091E800877FCC +:1020B0008093E80080914E0290914F02892B21F489 +:1020C00068E082E791E003C060E080E090E070E0CB +:1020D0000E94DF118091E8008B778093E8000895DB +:1020E00080914A02813209F074C080914E02909131 +:1020F0004F02892B09F06DC08091E800877F8093A3 +:10210000E8008091E80082FD05C0809149028111BC +:10211000F8CF5FC08091F10080937A018091E80050 +:102120008B7753C080914A02813A09F052C0809166 +:102130004E0290914F02892B09F04BC08091E8002C +:10214000877F8093E8008091E80080FFFCCF80913A +:102150000C0136C080914A028132D9F580914E023D +:1021600090914F02892BA9F58091E800877F809399 +:10217000E8000E94D81280914C0280930C010C94CC +:102180000E1B80914A02813221F58091E800877F01 +:102190008093E8000E94D81280914D0280937B01C9 +:1021A000089580914A02813AA1F48091E800877FE6 +:1021B0008093E8008091E80080FFFCCF80917B0154 +:1021C0008093F1008091E8008E778093E8000C9472 +:1021D000D812089584B7877F84BF88E10FB6F8943A +:1021E00080936000109260000FBE90E080E80FB610 +:1021F000F89480936100909361000FBE0E947B165B +:102200000E9429130E9486138091E20084608093CB +:10221000E20078940E940C160E947D1682E091E004 +:102220000E94271680914902853069F40E9444215A +:10223000809147028823B1F30E947221882391F391 +:102240000E947E11EFCF0E948516ECCF292F3327F5 +:1022500023303105C9F064F42130310581F022309A +:10226000310509F043C084E590E025E136E042C045 +:1022700021323105F1F02232310541F137C082E1DE +:1022800090E029E636E036C099278130910541F08B +:102290008230910541F0892B49F5E1E1F6E005C076 +:1022A000E3EEF5E002C0E9EBF5E0849190E09F01F8 +:1022B00021C06330D8F4E62FF0E0EE0FFF1FE25D9F +:1022C000FE4F2081318189E090E014C0633070F4CA +:1022D00070E0FB01EE0FFF1FE85DFE4F20813181B2 +:1022E000FB01EB5DFE4F808190E004C080E090E058 +:1022F00020E030E0FA0131832083089580E189BD38 +:1023000082E189BD09B400FEFDCF8091D8008F7DA8 +:102310008093D8008091E00082608093E0008091FB +:10232000E00081FDFCCF0895CF92DF92EF92FF9203 +:102330000F931F93CF93DF93EC018B016A010E94EF +:10234000F712811133C0C114D10439F0F601808134 +:102350009181081B190BC80FD91FE12CF12C011515 +:10236000110519F18091E80085FD16C08091E80003 +:102370008E778093E800C114D10449F0F601808182 +:102380009181E80EF91EF182E08285E00FC00E9483 +:10239000F712882321F30AC089918093F10001503C +:1023A0001109FFEFEF1AFF0ADACF80E0DF91CF913A +:1023B0001F910F91FF90EF90DF90CF9008952091A3 +:1023C0005002309151022617370748F06115710508 +:1023D00039F42091E8002E772093E80001C0B9017C +:1023E00040E061157105A9F120914902222309F409 +:1023F00043C0253009F442C02091E80023FD40C0CD +:102400002091E80022FD32C02091E80020FFE9CFB2 +:102410004091F3002091F20030E0342BFC01CF0119 +:102420006115710559F02830310540F48191809390 +:10243000F100615071092F5F3F4FF1CF41E028302B +:10244000310509F040E02091E8002E772093E80064 +:10245000C8CF4111C9CF0AC080914902882361F0D9 +:10246000853061F08091E80083FD0AC08091E8002A +:1024700082FFF2CF80E0089582E0089583E008951E +:1024800081E00895209150023091510226173707BC +:1024900048F06115710539F42091E8002E772093FA +:1024A000E80001C0B901FC0120E06115710591F15E +:1024B00080914902882309F440C0853009F43FC067 +:1024C0008091E80083FD3DC08091E80082FD2FC02F +:1024D0008091E80080FFE9CF2091F3008091F20025 +:1024E00090E0922B6115710559F08830910540F408 +:1024F00024912093F1003196615071090196F2CF39 +:1025000021E0089709F020E08091E8008E77809321 +:10251000E800CBCF2111CCCF0AC08091490288239B +:1025200061F0853061F08091E80083FD0AC0809100 +:10253000E80082FFF2CF80E0089582E0089583E012 +:10254000089581E00895982F973058F59093E90009 +:10255000981739F07091EC002091ED005091F00047 +:1025600003C0242F762F50E021FF19C03091EB00DB +:102570003E7F3093EB003091ED003D7F3093ED00D6 +:102580003091EB0031603093EB007093EC002093BE +:10259000ED005093F0002091EE0027FF07C09F5FF1 +:1025A000D3CF8F708093E90081E0089580E0089593 +:1025B00080914A0287FF11C08091E80082FD05C02A +:1025C000809149028111F8CF11C08091E8008B778A +:1025D0000BC080914902882349F08091E80080FF78 +:1025E000F8CF8091E8008E778093E80008952091DD +:1025F000E4003091E50095E64091EC00842F817075 +:1026000040FF22C08091E80080FD1CC080914902FB +:10261000882391F0853091F08091EB0085FD10C00A +:102620004091E4005091E5004217530729F39A01C5 +:10263000915011F784E0089582E0089583E00895B1 +:1026400081E0089580E008954091E80042FFDECFE8 +:1026500008950E9497130E949F13E0EEF0E080819E +:1026600081608083E8EDF0E080818F77808319BC02 +:10267000A7EDB0E08C918E7F8C9380818F7E8083DC +:102680001092480208950F931F93CF93DF930E94F7 +:1026900097130E949F13C8EDD0E088818F778883BD +:1026A00088818068888388818F7D888319BC109297 +:1026B000490210924502109247021092460200EE23 +:1026C00010E0F80180818B7F80838881816088831E +:1026D00042E060E080E00E94A312E1EEF0E0808141 +:1026E0008E7F8083E2EEF0E0808181608083808154 +:1026F00088608083F80180818E7F808388818061FB +:102700008883DF91CF911F910F910895E8EDF0E05C +:1027100080818F7E8083E7EDF0E08081816080831F +:1027200084E082BF81E0809348020C944313E8ED7B +:10273000F0E080818E7F80831092E20008951092F5 +:10274000DA001092E10008951F920F920FB60F92D7 +:1027500011242F933F934F935F936F937F938F93A6 +:102760009F93AF93BF93EF93FF938091E10082FF1C +:102770000BC08091E20082FF07C08091E1008B7F57 +:102780008093E1000E940B168091DA0080FF1FC049 +:102790008091D80080FF1BC08091DA008E7F8093EB +:1027A000DA008091D90080FF0DC080E189BD82E10F +:1027B00089BD09B400FEFDCF81E0809349020E94EB +:1027C000161005C019BC109249020E942410809175 +:1027D000E10080FF19C08091E20080FF15C0809168 +:1027E000E2008E7F8093E2008091E200806180931E +:1027F000E2008091D80080628093D80019BC85E007 +:10280000809349020E9428108091E10084FF30C02B +:102810008091E20084FF2CC080E189BD82E189BD06 +:1028200009B400FEFDCF8091D8008F7D8093D80041 +:102830008091E1008F7E8093E1008091E2008F7EA5 +:102840008093E2008091E20081608093E2008091B9 +:102850004502882311F084E007C08091E30087FDE2 +:1028600002C081E001C083E0809349020E942910E8 +:102870008091E10083FF29C08091E20083FF25C0A1 +:102880008091E100877F8093E10082E0809349029C +:10289000109245028091E1008E7F8093E10080914B +:1028A000E2008E7F8093E2008091E200806180935D +:1028B000E20042E060E080E00E94A3128091F0001C +:1028C00088608093F0000E942710FF91EF91BF91E4 +:1028D000AF919F918F917F916F915F914F913F91B8 +:1028E0002F910F900FBE0F901F9018951F920F926F +:1028F0000FB60F9211242F933F934F935F936F93D3 +:102900007F938F939F93AF93BF93CF93DF93EF9377 +:10291000FF93C091E900CF708091EC00D82FD17067 +:1029200080FDD0E81092E9008091F000877F8093CD +:10293000F00078940E94BA141092E9008091F0009F +:1029400088608093F000CD2BCF70C093E900FF9199 +:10295000EF91DF91CF91BF91AF919F918F917F9137 +:102960006F915F914F913F912F910F900FBE0F90FC +:102970001F9018951F93CF93DF93CDB7DEB7AA971B +:102980000FB6F894DEBF0FBECDBFEAE4F2E088E0F8 +:102990008E0F9091F10091938E13FBCF0E943A100D +:1029A0008091E80083FF1FC180914A0290914B0201 +:1029B000492F50E04A30510508F015C1FA01E25A9A +:1029C000FF4F0C94B528803881F0823809F00BC194 +:1029D00080914E028F708093E9008091EB0085FB1F +:1029E000882780F91092E90006C0809146029091F4 +:1029F0004702911182609091E800977F9093E800E0 +:102A00008093F1001092F100C8C0282F2D7F09F0AB +:102A1000EAC0882319F0823061F0E5C080914C0251 +:102A2000813009F0E0C0933009F080E080934702E4 +:102A30002BC080914C02811127C080914E028F7073 +:102A400009F4D1C08093E9002091EB0020FF1CC065 +:102A5000933021F48091EB00806214C09091EB00E0 +:102A600090619093EB0021E030E0A90102C0440F97 +:102A7000551F8A95E2F74093EA001092EA00809190 +:102A8000EB0088608093EB001092E9008091E800F1 +:102A9000877F86C08111A7C010914C021F7780915B +:102AA000E3008078812B8093E3008091E800877FAA +:102AB0008093E8000E94D8128091E80080FFFCCF4C +:102AC0008091E30080688093E300111102C082E0EE +:102AD00001C083E08093490286C08058823008F0AC +:102AE00082C080914C0290914D028C3D53E095073D +:102AF00079F583E08A838AE289834FB7F894DE010F +:102B0000139620E03EE051E2E32FF0E050935700AF +:102B1000E49120FF03C0E295EF703F5FEF708E2FCE +:102B200090E0EA3010F0C79601C0C0968D939D9357 +:102B30002F5F243149F74FBF8091E800877F809352 +:102B4000E8006AE270E0CE0101960E94DF1114C035 +:102B5000AE014F5F5F4F60914E020E942611BC0193 +:102B6000009709F440C09091E800977F9093E800A7 +:102B700089819A810E9442128091E8008B7780932C +:102B8000E80031C0803879F58091E800877F809334 +:102B9000E800809145028093F1008091E8008E77F3 +:102BA0008093E8000E94D8121EC081111CC0909131 +:102BB0004C029230C0F48091E800877F8093E80057 +:102BC000909345020E94D81280914502811106C05F +:102BD0008091E30087FD02C081E001C084E0809322 +:102BE00049020E942B108091E80083FF0AC0809167 +:102BF000E800877F8093E8008091EB0080628093FB +:102C0000EB00AA960FB6F894DEBF0FBECDBFDF91E2 +:102C1000CF911F9108950895CF9380914902882301 +:102C2000A1F0C091E900CF709091EC00892F8170E4 +:102C300090FD80E8C82B1092E9008091E80083FDA8 +:102C40000E94BA14CF70C093E900CF910895909379 +:102C50008101809380010895E0918001F0918101CC +:102C6000309721F00190F081E02D099480E00895E3 +:102C7000E0918001F0918101309721F00280F38191 +:102C8000E02D09940895E0918001F0918101309741 +:102C900021F00480F581E02D0994089520917E01B2 +:102CA00030917F018217930771F090937F01809399 +:102CB0007E01E0918001F0918101309721F0068042 +:102CC000F781E02D0994089520917C0130917D01D8 +:102CD0008217930771F090937D0180937C01E091BE +:102CE0008001F0918101309721F00084F185E02D81 +:102CF0000994089508950C947A160E94B7210E94B1 +:102D0000B5080E943D220C94D0265F926F927F926C +:102D10008F929F92AF92BF92CF92DF92EF92FF92EB +:102D20000F931F93CF93DF9300D000D01F92CDB7A6 +:102D3000DEB70E94FA089BE8C92E91E0D92E03E085 +:102D400010E0AA24A394B12C502E802F0E94750964 +:102D50004C01F601729062906F0168267926611429 +:102D60007104A1F40150110978F78FEF89838A83E8 +:102D70001B820E94C0218160782F9D838C834981B2 +:102D80005A816B818D810E94351738C08091D8019E +:102D900081FD0E947E092BE030E07501022E02C009 +:102DA000EE0CFF1C0A94E2F7C70186219721892BBC +:102DB00009F129835A828E209F2091E0892809F405 +:102DC00090E09B830E94C0218160782F9D838C833B +:102DD00049815A816B818D810E943517000F111F27 +:102DE000F801ED57FE4F80819181E826F926F182A6 +:102DF000E08204C02150310980F6B4CF0E94112432 +:102E0000109182010E942C161817D1F00E942C16E6 +:102E1000809382010F900F900F900F900F90DF9191 +:102E2000CF911F910F91FF90EF90DF90CF90BF90C7 +:102E3000AF909F908F907F906F905F900C949F08C1 +:102E40000F900F900F900F900F90DF91CF911F91E7 +:102E50000F91FF90EF90DF90CF90BF90AF909F9039 +:102E60008F907F906F905F900895CF93DF93CDB751 +:102E7000DEB72B970FB6F894DEBF0FBECDBF4F83E2 +:102E8000588769877A878B87DE01119686E0FD0176 +:102E900011928A95E9F785E0FE01379601900D922F +:102EA0008A95E1F749815A816B817C818D819E8170 +:102EB0000E94AC1D2B960FB6F894DEBF0FBECDBF9F +:102EC000DF91CF910895CF93882309F4C2C0C82F12 +:102ED000823859F40E942C1681FDBBC089E30E9400 +:102EE00086200E94092189E30CC0833879F40E946E +:102EF0002C1680FDAEC083E50E9486200E94092129 +:102F000083E50E94A320CF910C940921843859F4C1 +:102F10000E942C1682FD9DC087E40E9486200E949C +:102F2000092187E4EECF8CEF8C0F813A48F48C2F87 +:102F30000E94382681118DC08C2F0E948620E3CFFD +:102F400080E28C0F883048F4C77081E001C0880FA0 +:102F5000CA95EAF70E94C220D6CF8BE58C0F83304A +:102F600078F4C53A29F0C63A31F083E890E005C01C +:102F700081E890E002C082E890E0CF910C944E1678 +:102F800088E58C0F833108F064C0C83A39F1C93A3A +:102F900041F1CA3A49F1CB3A51F1CC3A59F1CD3A23 +:102FA00061F1C03B69F1CE3A71F1CF3A79F1C13BA1 +:102FB00081F1C23B89F1C33B91F1C43B99F1C53B1F +:102FC000A1F1C63BA9F1C73BB1F1C83BB9F1C93B7F +:102FD000C1F1CA3BC9F180E090E038C082EE90E0D8 +:102FE00035C089EE90E032C08AEE90E02FC085EBCC +:102FF00090E02CC086EB90E029C087EB90E026C0E3 +:103000008CEC90E023C08DEC90E020C083E891E050 +:103010001DC08AE891E01AC082E991E017C084E9F6 +:1030200091E014C081E292E011C083E292E00EC010 +:1030300084E292E00BC085E292E008C086E292E072 +:1030400005C087E292E002C08AE292E0CF910C9440 +:103050006416CF910895882309F44BC0823859F43F +:103060000E942C1681FF45C089E30E9486200E94A1 +:10307000092189E30CC0833871F40E942C1680FF6B +:1030800038C083E50E9486200E94092183E50E94C2 +:10309000A3200C940921843859F40E942C1682FF35 +:1030A00028C087E40E9486200E94092187E4EFCF90 +:1030B0009CEF980F913A58F390E2980F983050F4A3 +:1030C000877091E001C0990F8A95EAF7892F0E94D5 +:1030D000C820DFCF9BE5980F933020F480E090E08C +:1030E0000C944E16885A833120F480E090E00C94C2 +:1030F00064160895882321F00E94C2200C940921AF +:103100000895882321F00E94C8200C940921089575 +:103110007F928F929F92AF92BF92CF92DF92EF9267 +:10312000FF920F931F93CF93DF931F92CDB7DEB71C +:103130007C01C62E772EFC01058102950F7012814D +:1031400011110E94DF200E947F20882379F0112333 +:1031500069F080E28C0D883048F082E00E9468209F +:103160000E947F2091E0D82ED92601C0D12CE72DD6 +:10317000E295EF70F0E0E859FF4F0C94B528872DE9 +:10318000807F072D0F70882311F00295007F112397 +:1031900089F0002309F499C180E28C0D883020F475 +:1031A000802F0E94C22003C0802F0E94D2200E9444 +:1031B00009218BC18C2D0E942B18002309F4C3C157 +:1031C00080E28C0D883020F4802F0E94C82003C03C +:1031D000802F0E94D8200E940921B5C1872D807FB1 +:1031E000972D9F70803211F4892F03C0892F82950B +:1031F000807FCC2021F0F1E0CF16A1F01DC011237B +:1032000039F0002319F1013009F50E94F2209BC129 +:10321000002319F0013009F496C189830E94F5203A +:10322000898110C1112321F0063008F08CC10EC035 +:10323000053008F088C106C1112359F0002331F090 +:10324000F701958190FF41C19F7095830E947A1884 +:103250007AC1002309F4F6C03EC1872D8695869574 +:10326000837090E0009719F0019761F06CC1112311 +:1032700021F08C2D972D937002C080E090E00E9489 +:103280004E1661C1112321F08C2D972D937002C031 +:1032900080E090E00E94641656C18C2D112319F035 +:1032A0000E94192302C00E9481230E9406244BC160 +:1032B000872D837009F052C0111145C18C2D829564 +:1032C00086958770880F880F9C2D9F70892E912C72 +:1032D000A12CB12C082E04C0880C991CAA1CBB1C64 +:1032E0000A94D2F7C4FE14C00FE010E020E030E0F2 +:1032F000B901A80104C0440F551F661F771F8A95A6 +:10330000D2F7CB01BA01609570958095909503C076 +:1033100060E070E0CB01272D26952695237030E0E4 +:103320002230310569F02330310589F06829792987 +:103330008A299B292130310571F00E94F41E03C1B6 +:10334000682979298A299B290E94101FFCC00E94A4 +:10335000F41EC501B4010E94D81EF5C0112319F056 +:10336000872D817001C08695882309F4ECC08C2DCF +:10337000829586958770880F880F9C2D9F70892E67 +:10338000912CA12CB12C082E04C0880C991CAA1CCD +:10339000BB1C0A94D2F7C4FE14C00FE010E020E07A +:1033A00030E0B901A80104C0440F551F661F771F04 +:1033B0008A95D2F7CB01BA0160957095809590956A +:1033C00003C060E070E0CB01272D26952695237081 +:1033D000422F50E04230510569F04330510589F0E9 +:1033E000682979298A299B294130510571F00E9469 +:1033F000CE1FA9C0682979298A299B290E94EA1F22 +:10340000A2C00E94CE1FC501B4010E94B21F9BC082 +:103410008C2D90E0FC01E05EF109E531F10508F04A +:1034200050C0E858FF4F0C94B5280C2D0F70872D15 +:103430008F71112321F00E944B1F802F07CF0E9414 +:103440006C1F802F0E9481187EC0112341F005302F +:1034500008F079C0872D8F710E94911F74C00630CB +:1034600008F071C0F7CF112339F0872D8F710E94BA +:103470004B1F69C01123C9F3872D8F710E946C1FE8 +:1034800062C0112329F0872D8F710E94361F5BC007 +:103490000E942C1F58C0112351F0172D1F71812F2E +:1034A0000E944B1F63E0812F0E945F204CC081E08F +:1034B0000E946820023008F446C082E00E94682022 +:1034C00042C0112331F0002381F28C2D0E9463173A +:1034D0003AC0002389F28C2D0E942B1834C0472D4E +:1034E0004F706C2DC7010E9495040E94501E2BC086 +:1034F000111129C0472D4F7050E042305105B9F0ED +:103500004CF44115510581F041305105E1F40E9420 +:10351000F82619C04330510569F04430510599F43B +:103520008C2D0E944A270FC00E94E1260CC00E94E9 +:10353000142709C00E94272706C0472D4F706C2D05 +:10354000C7010E94A704DD20F9F00E945B2080FDE6 +:103550001BC0F70112820E9455200E944B1FC70119 +:103560000E94D31A0E9455200F90DF91CF911F9196 +:103570000F91FF90EF90DF90CF90BF90AF909F9012 +:103580008F907F900C946C1F0F90DF91CF911F91C3 +:103590000F91FF90EF90DF90CF90BF90AF909F90F2 +:1035A0008F907F9008950F931F93CF93DF93EC013B +:1035B000888199812B813C81232BB9F09F3F11F4A5 +:1035C0008F3F99F0CE010E94D904882371F0688161 +:1035D00079818A810E9451208C010E9406200E94DC +:1035E000CD1EB801CE010E948818DF91CF911F91A6 +:1035F0000F9108950E94DF200E94EF200E94B420C6 +:103600000E9409210E94B7240E94062480E090E0D5 +:103610000E944E1680E090E00C9464160E94CF2029 +:103620000C94FA1A0E944620292F22952F7030E020 +:103630002C3031054CF42A3031056CF4225031091C +:1036400022303105A8F407C02C30310569F02F3045 +:10365000310551F00DC0803F69F018F4803E40F410 +:1036600009C0843F29F406C093FB882780F9089598 +:1036700080E0089581E00895CF93DF9300D000D0DB +:103680001F92CDB7DEB70F900F900F900F900F9055 +:10369000DF91CF910895CF93DF9300D000D000D079 +:1036A000CDB7DEB726960FB6F894DEBF0FBECDBFFE +:1036B000DF91CF9108951F93CF93DF93C0918B013A +:1036C00016E080918C01C81799F0D0E01C9FF001A2 +:1036D0001D9FF00D1124E357FE4F408151816281FF +:1036E0007381848195810E944B1B2196C770E9CF1D +:1036F000DF91CF911F9108954091BD015091BE017E +:103700006091BF017091C0018091C1019091C2018F +:103710000C944B1B8091C20182958F7009F054C0AC +:103720008091BF01882309F44FC080918B01A09143 +:103730008C016091BD017091BE014091C00150911A +:10374000C101B6E08A1709F43FC090E04115510568 +:10375000C1F17F3F11F46F3FA1F1B89FF001B99F14 +:10376000F00D1124E357FE4F218172132AC02081EE +:10377000621327C02281211124C0238134812417A0 +:10378000350710F421503109241B350B283C310535 +:10379000C0F42091C2012F7020612093C20126E065 +:1037A000289FF001299FF00D1124EE56FE4F8081D5 +:1037B0008F70806180838DEB91E00E94D31A0C940E +:1037C0005B1B01968770BECF0895CF92DF92EF9278 +:1037D000FF920F931F93CF93DF93CDB7DEB762971E +:1037E0000FB6F894DEBF0FBECDBF8C0185E0F801A7 +:1037F000DE011D9601900D928A95E1F7D8014C915A +:1038000011965C91119712966C9112971396CD9028 +:10381000DC9014973091BD017091BE018091C00180 +:103820009091C101009709F46BC17F3F19F43F3FAC +:1038300009F466C1E090BF01EE2009F4C0C02091F8 +:10384000C201C816D90628F0F601E81BF90BCF0112 +:1038500004C0809590958C0D9D1DFF24F394883CA9 +:10386000910578F0F12C207F09F0C6C07C2DD98A13 +:10387000C88A89890E943C1B8DEB91E00E94D31A73 +:10388000B1C0822F807F09F046C0751314C0341375 +:1038900012C0611110C02F7020612093C2010E94DC +:1038A0007C1B8DEB91E00E94D31A8091C201D8015C +:1038B00015968C932EC0CD2819F15F3F11F44F3F20 +:1038C000F9F0F62E61111CC080918B0120918C01C2 +:1038D00036E0821709F45AC090E0389FF001399F12 +:1038E000F00D1124E357FE4F7181571306C070810C +:1038F000471303C07281711103C001968770E9CF2D +:10390000F62E662309F418C18091C201816080936C +:10391000C201F12C11C1751308C0341306C0611126 +:1039200004C08091C201D801C3C04D875E878D85D8 +:103930009E856A8B0E94121B6A898823E1F16623A7 +:10394000D1F12091C201822F82958F7090E0029771 +:1039500074F08091BD019091BE0198878F83198684 +:10396000DB86CA862C87CE0107960E94D31A86E092 +:10397000F801ADEBB1E001900D928A95E1F70E945C +:103980008A1B0E947C1BFF24F394D6C04D875E8760 +:103990008D859E850E944620292F22952F7030E02C +:1039A000223031050CF0BCC09F7009F0B6C0805EBB +:1039B000883008F4C1C0C8010E94D31AE4CFC816E9 +:1039C000D90608F453C0F601E81BF90BCF01883C77 +:1039D000910508F450C0F12C7C2DD98AC88A8989B8 +:1039E0000E943C1BEDEBF1E086E0DF011D928A9521 +:1039F000E9F70E947C1BA0C0751314C0341312C0D9 +:103A0000611110C08091C201F8018583C8010E9434 +:103A1000D31A86E0EDEBF1E0DF011D928A95E9F71C +:103A2000FE2C8AC04D875E878D859E856A8B0E949D +:103A3000121B6A89882309F4BECF662309F4BBCF21 +:103A40002091C201822F82958F7090E002970CF432 +:103A50008ECF8091BD019091BE019A8389831B8294 +:103A6000DD82CC822E83CE0101967FCF809590950A +:103A70008C0D9D1DACCFF62E662309F49CCF7513DB +:103A80002EC034132CC02091C20120FD1FC0822FF4 +:103A900082958F70D9F0D80115962C9315978F3099 +:103AA00049F08F5F982F9295907F822F8F70892B8E +:103AB00015968C93C8010E94D31A86E0F801ADEBED +:103AC000B1E001900D928A95E1F793CF86E0F8017D +:103AD000ADEBB1E001900D928A95E1F72DC04D87D5 +:103AE0005E878D859E850E94121B811140CF80913B +:103AF000C20181608093C201C8010E94D31A1CC018 +:103B0000662309F458CF4D875E878D859E850E9478 +:103B1000121B882309F44FCF2ACF811148CF0CC044 +:103B2000243031050CF047CF9F7009F440CFF801E5 +:103B30009581907F09F03BCF8F2D62960FB6F89458 +:103B4000DEBF0FBECDBFDF91CF911F910F91FF90D0 +:103B5000EF90DF90CF9008951F93CF93DF93CDB771 +:103B6000DEB72C970FB6F894DEBF0FBECDBF4F83E4 +:103B7000588769877A878B879C87CE0107960E9432 +:103B8000E51B882369F08F8198852A853B85232B47 +:103B9000F1F19F3F09F063C08F3F09F060C037C06B +:103BA00086E0FE013796DE01119601900D928A950E +:103BB000E1F76F817885EA85FB85309741F17F3F9A +:103BC00011F46F3F21F120918C0130E0C901019681 +:103BD0008770992740918B0150E08417950709F46D +:103BE00047C069837A83FD83EC8396E0929FD0017E +:103BF000939FB00D1124A357BE4FFE013196019043 +:103C00000D929A95E1F780938C010E945B1B16E060 +:103C100080918B0190918C018917C1F1189FC0018F +:103C2000112483579E4F0E94E51B882379F1E09170 +:103C30008B011E9FF0011124E357FE4F40815181FB +:103C400062817381848195810E944B1B80918B01DD +:103C500090E001968770992780938B01D9CF4F818F +:103C6000588569857A858B859C850E944B1BCFCFB3 +:103C70000E940E1B10928C0110928B01EDEBF1E073 +:103C800086E0DF011D928A95E9F7C1CF2C960FB629 +:103C9000F894DEBF0FBECDBFDF91CF911F91089585 +:103CA000EF92FF920F931F93CF93DF938C010097B6 +:103CB00009F46CC0F12CEE24E394E8012196F8019C +:103CC0008491843740F4843008F051C0813081F011 +:103CD000823019F15BC0853709F444C0A8F19CE734 +:103CE000980F903708F052C08F770E942B1841C070 +:103CF0000E5F1F4FFE01C49180E28C0F883048F4A4 +:103D0000C7708E2D01C0880FCA95EAF70E94E22085 +:103D100014C08C2F0E9463172DC00E5F1F4FFE0131 +:103D2000C49180E28C0F883058F4C7708E2D01C08A +:103D3000880FCA95EAF70E94E8200E9409211AC05C +:103D40008C2F0E942B1816C00E5F1F4FFE01C491CE +:103D5000CC2381F08FE99FE00197F1F700C00000CC +:103D6000C150F6CF0E5F1F4FFE01F49003C00E94BA +:103D700063178E018F2D882309F49FCFEFE9FFE0B1 +:103D80003197F1F700C000008150F5CFDF91CF915E +:103D90001F910F91FF90EF90089508956093C701D0 +:103DA0007093C8018093C9019093CA010C94FA1AC8 +:103DB0000F931F930091C7011091C8012091C90171 +:103DC0003091CA01DC01CB01802B912BA22BB32BAC +:103DD0008093C7019093C801A093C901B093CA0111 +:103DE0001F910F910C94FA1A0F931F930091C70122 +:103DF0001091C8012091C9013091CA01DC01CB01A9 +:103E000080239123A223B3238093C7019093C801F9 +:103E1000A093C901B093CA011F910F910C94FA1A93 +:103E20000F931F930091C7011091C8012091C90100 +:103E30003091CA01DC01CB0180279127A227B3274B +:103E40008093C7019093C801A093C901B093CA01A0 +:103E50001F910F910C94FA1A1092C3011092C40191 +:103E60001092C5011092C6010C94FA1A41E050E07C +:103E700060E070E004C0440F551F661F771F8A95ED +:103E8000D2F74093C3015093C4016093C50170936E +:103E9000C6010C94FA1A41E050E060E070E004C002 +:103EA000440F551F661F771F8A95D2F78091C30173 +:103EB0009091C401A091C501B091C601482B592B26 +:103EC0006A2B7B2B4093C3015093C4016093C501BF +:103ED0007093C6010C94FA1A41E050E060E070E083 +:103EE00004C0440F551F661F771F8A95D2F740956F +:103EF0005095609570958091C3019091C401A091F7 +:103F0000C501B091C601482359236A237B234093FE +:103F1000C3015093C4016093C5017093C6010C9412 +:103F2000FA1A41E050E060E070E004C0440F551F11 +:103F3000661F771F8A95D2F78091C3019091C401C3 +:103F4000A091C501B091C601482759276A277B2750 +:103F50004093C3015093C4016093C5017093C6019F +:103F60000C94FA1A0F931F930091C3011091C4018E +:103F70002091C5013091C601DC01CB01802B912B32 +:103F8000A22BB32B8093C3019093C401A093C501CE +:103F9000B093C6011F910F910C94FA1A0F931F93BF +:103FA0000091C3011091C4012091C5013091C60157 +:103FB000DC01CB0180239123A223B3238093C3018F +:103FC0009093C401A093C501B093C6011F910F91B6 +:103FD0000C94FA1A0F931F930091C3011091C4011E +:103FE0002091C5013091C601DC01CB0180279127CA +:103FF000A227B3278093C3019093C401A093C50166 +:10400000B093C6011F910F910C94FA1A0895CF92A4 +:10401000DF92EF92FF920F931F93CF93DF938C0168 +:10402000C090C701D090C801E090C901F090CA01CA +:104030008091C3019091C401A091C501B091C601C6 +:10404000C82AD92AEA2AFB2ACFE1D0E0D701C60143 +:104050000C2E04C0B695A795979587950A94D2F72C +:1040600080FF06C0B8018C2F0E940508019721F43B +:10407000219760F780E001C08C2FDF91CF911F91D5 +:104080000F91FF90EF90DF90CF900895CF93DF9343 +:10409000EC010E940720BE010E940508DF91CF912C +:1040A0000895CB010E94462008958091CB0185950B +:1040B0008595859508958091CB018770089598E046 +:1040C000899F90011124262B2093CB010C944B1F28 +:1040D0002091CB01809582238093CB01982F9770FC +:1040E00069F430E0482F552747FD509524173507D0 +:1040F00029F08595859585950C946C1F0895909170 +:10410000CB01977081E009F480E0089520910D01C2 +:1041100030910E01F90132969FEF40E0519158170E +:1041200089F09F3F19F4511101C0942F4F5F463021 +:10413000A9F79F3F39F0F901E90FF11D97FDFA95B5 +:1041400082830895089520910D0130910E01F901A7 +:104150003296285F3F4F9081981301C010823196AC +:10416000E217F307C1F7089581E090E0E0910D01B7 +:10417000F0910E01E80FF91F108201968830910529 +:10418000A9F708959091D701892B8093D7010895BD +:1041900080959091D70189238093D701089510923B +:1041A000D70108959091D601892B8093D601089567 +:1041B00080959091D60189238093D601089510921D +:1041C000D60108959091D501892B8093D50108954A +:1041D00080959091D50189238093D50108951092FF +:1041E000D50108958093CC0108951092CC010895D3 +:1041F00080910D0190910E01FC0131969C01285F88 +:104200003F4F80E0919191118F5FE217F307D1F753 +:104210000895E0910D01F0910E018091D701808306 +:10422000E0910D01F0910E0190818091D601892BD2 +:104230008083E0910D01F0910E0190818091D50174 +:10424000892B80838091CC01882361F0E0910D015E +:10425000F0910E019081892B80830E94F8208111BA +:104260001092CC0180910D0190910E010C943816A2 +:1042700020E0009739F0AC01415051098423952387 +:104280002F5FF7CF822F089580914902843039F152 +:104290001092D90120E488E190E00FB6F894A89537 +:1042A000809360000FBE2093600080E00E94FA03BC +:1042B00080E00E949F0883B7817F846083BF83B7BB +:1042C000816083BF7894889583B78E7F83BF88E1B0 +:1042D0000FB6F89480936000109260000FBE0895AE +:1042E0000895089580E00E94FA030E9470210E94C0 +:1042F000FA080E9471210E947F0991E0811101C09A +:1043000090E0892F08950E940E1B80E00E94FA031E +:104310000E94D0260E942C160C949F081F920F9288 +:104320000FB60F9211248F939F93AF93BF938091F9 +:10433000D901811113C08091DA019091DB01A09124 +:10434000DC01B091DD014196A11DB11D8093DA0120 +:104350009093DB01A093DC01B093DD01BF91AF919D +:104360009F918F910F900FBE0F901F90189582E034 +:1043700084BD93E095BD9AEF97BD80936E0008953C +:104380002FB7F8948091DA019091DB01A091DC01C4 +:10439000B091DD012FBF0895CF92DF92EF92FF928F +:1043A0000F931F932FB7F8944091DA015091DB01DE +:1043B0006091DC017091DD012FBF6A017B01EE2469 +:1043C000FF248C0120E030E0C016D106E206F3069F +:1043D00010F4415051099A01281B390BC9011F9152 +:1043E0000F91FF90EF90DF90CF9008951F920F9262 +:1043F0000FB60F9211248F939F93AF93BF93809129 +:10440000DA019091DB01A091DC01B091DD01019610 +:10441000A11DB11D8093DA019093DB01A093DC0113 +:10442000B093DD01BF91AF919F918F910F900FBE1F +:104430000F901F9018950E942913F8942FEF87EA88 +:1044400091E6215080409040E1F700C0000087E0F5 +:1044500090EBDC018093540290935502A093560296 +:10446000B09357029CE088E10FB6F894A89580932A +:1044700060000FBE90936000FFCF0E9472228111F6 +:1044800002C00E9453220E947D228093D8010E9484 +:104490008522809352020E948122682F70E080E082 +:1044A00090E00C94CE1E6DEE7EEF80E090E00E94D6 +:1044B000ED2860E082E090E00E94CF2860E083E099 +:1044C00090E00E94CF2860E084E090E00E94CF2836 +:1044D00060E085E090E00E94CF2860E086E090E018 +:1044E0000C94CF2880E090E00E94C92821E08D3E06 +:1044F0009E4F09F020E0822F089582E090E00C9416 +:10450000BB2883E090E00C94BB2884E090E00C94FE +:10451000BB28682F84E090E00C94CF2886E090E0E0 +:104520000C94BB28682F86E090E00C94CF288091F3 +:10453000E00180FF0BC06091120185E0689FB0012F +:10454000112475956795759567952BC081FF09C0F6 +:104550006091120185E0689FB001112475956795FF +:1045600020C082FF07C06091120185E0689FB00102 +:10457000112417C09091E1019923D1F060911101AC +:10458000961788F72091120185E0289F9001112449 +:10459000929FA001939F500D112470E0CA010E94C8 +:1045A000A1286038710540F46115710539F002C029 +:1045B00065E070E0862F08958FE7089581E0089503 +:1045C0008091E00180FF08C06091100170E0759556 +:1045D00067957595679521C081FF06C060911001B0 +:1045E00070E07595679519C082FF04C06091100155 +:1045F00070E010C09091E1019923C1F060910F012A +:104600009617A0F780911001899FC001112470E0D6 +:104610000E94A1286038710528F46115710521F008 +:10462000862F08958FE7089581E0089561E070E096 +:10463000F4CF803F21F40E949722819504C0813FEE +:1046400029F40E9497228093E4010895823F21F487 +:104650000E949722819504C0833F29F40E949722EB +:104660008093E3010895893F19F40E94E02205C078 +:104670008A3F31F40E94E02281958093E5010895FC +:104680008B3F21F40E94E022819504C08C3F29F4E5 +:104690000E94E0228093E6010895843F21F48091F6 +:1046A000E201816017C0853F21F48091E2018260C0 +:1046B00011C0863F21F48091E20184600BC0873FE6 +:1046C00021F48091E201886005C0883F31F4809137 +:1046D000E20180618093E20108958D3F21F4809191 +:1046E000E00181600BC08E3F21F48091E001826087 +:1046F00005C08F3F29F48091E00184608093E00140 +:104700000895803F39F48091E40187FF6CC01092D6 +:10471000E40169C0813F29F48091E4011816BCF3DB +:1047200062C09091E301823F29F497FF5CC0109230 +:10473000E30159C0833F19F41916CCF354C0893FE3 +:1047400041F48091E50118160CF04DC01092E5017E +:104750004AC08A3F29F48091E50187FF44C0F6CF23 +:104760008B3F39F48091E60187FF3DC01092E6014E +:104770003AC08C3F29F48091E6011816BCF333C08F +:10478000843F21F48091E2018E7F17C0853F21F4A0 +:104790008091E2018D7F11C0863F21F48091E2017A +:1047A0008B7F0BC0873F21F48091E201877F05C09A +:1047B000883F31F48091E2018F7E8093E20113C043 +:1047C0008D3F21F48091E0018E7F0BC08E3F21F45C +:1047D0008091E0018D7F05C08F3F29F48091E00139 +:1047E0008B7F8093E0018091E30181110EC0809165 +:1047F000E40181110AC08091E501811106C0809118 +:10480000E601811102C01092E101089582EE91E06B +:104810000E9443160E94C0219093DF018093DE0125 +:1048200008951F93CF93DF938091DE019091DF0174 +:104830000E94CC21AC019091E101992321F02091BB +:10484000130130E006C0209114018AE0289F9001F6 +:1048500011244217530708F486C08091E301C091E8 +:10486000E401D091E5011091E601811107C0C11169 +:1048700076C0D11174C0111172C075C09F3F19F07C +:104880009F5F9093E101181624F40E949722809371 +:10489000E3018091E30187FF05C00E949722819583 +:1048A0008093E3011C1624F40E9497228093E40174 +:1048B0008091E40187FF05C00E9497228195809333 +:1048C000E4016091E301662339F1C091E401CC2356 +:1048D00019F1772767FD7095872F972F0E949E27E4 +:1048E00023E333E343E35FE30E9402280E946B2744 +:1048F0006093E3016C2F772767FD7095872F972FC3 +:104900000E949E2723E333E343E35FE30E940228F0 +:104910000E946B276093E4011D1624F40E94E0229C +:104920008093E5018091E50187FF05C00E94E022A8 +:1049300081958093E501111624F40E94E022809372 +:10494000E6018091E60187FF05C00E94E022819583 +:104950008093E601DF91CF911F910C9406249F3F35 +:1049600009F08ECF96CFDF91CF911F910895E2EE9F +:10497000F1E085E0DF011D928A95E9F71092E101EF +:104980001092E0010895833081F128F4813059F0CC +:104990008230D1F00895853009F449C0B8F18630ED +:1049A00009F456C0089580911401262F30E0280F95 +:1049B000311D2F3F310524F4680F609314010895D1 +:1049C0008FEF80931401089580911301262F30E01A +:1049D000280F311D2F3F310524F4680F6093130118 +:1049E00008958FEF80931301089580911201262F6F +:1049F00030E0280F311D2F3F310524F4680F6093FC +:104A0000120108958FEF8093120108958091110192 +:104A1000262F30E0280F311D2F3F310524F4680F79 +:104A20006093110108958FEF809311010895809193 +:104A30001001262F30E0280F311D2F3F310524F4BF +:104A4000680F6093100108958FEF8093100108950F +:104A500080910F01262F30E0280F311D2F3F3105A7 +:104A600024F4680F60930F0108958FEF80930F0176 +:104A70000895833011F128F4813049F0823091F0AB +:104A80000895853081F120F18630C1F1089580913B +:104A90001401681720F4861B809314010895109266 +:104AA0001401089580911301681720F4861B8093E8 +:104AB000130108951092130108958091120168174F +:104AC00020F4861B8093120108951092120108951C +:104AD00080911101681720F4861B809311010895BD +:104AE00010921101089580911001681720F4861B1F +:104AF00080931001089510921001089580910F0184 +:104B0000681720F4861B80930F01089510920F01FF +:104B100008950F931F938732D8F58E3108F085C022 +:104B20008E3009F46FC098F4873009F459C08B3087 +:104B300009F48FC0863009F093C08091D801817F3D +:104B40008E7F8093D80181E08093E8018AC086310E +:104B500009F47FC068F4803109F082C08091D801E7 +:104B600083FB222720F991E0922790FB83F953C021 +:104B7000893109F46EC08B3109F072C08091D8017F +:104B800081FB222720F991E0922790FB81F943C015 +:104B9000883309F45EC050F4893209F45CC085336F +:104BA00009F459C0873209F456C05AC0833409F455 +:104BB00052C028F48A3308F453C0895337C088346C +:104BC00009F04EC00E940E1B0FEF13ED20E30150C1 +:104BD00010402040E1F700C000000E941B2239C0B5 +:104BE0009091D801892F8095817080FB90F929F0F0 +:104BF000966098609093D80134C0997F977F909386 +:104C0000D80127C08091D80182FB222720F991E0AA +:104C1000922790FB82F98093D8019923D1F080915B +:104C2000D80181608093D80114C08D5141E050E0DB +:104C300060E070E08A019B0104C0000F111F221F79 +:104C4000331F8A95D2F7C901B8010E94CE1E0E9477 +:104C50000E1B81E006C061E070E080E090E0F5CFDF +:104C600080E01F910F91089580E0089580E00895FD +:104C7000CF93C82F8091E801813069F018F082301D +:104C8000C9F184C0E0910D01F0910E018081823262 +:104C900009F07EC007C0E0910D01F0910E01808106 +:104CA000823261F48C2F0E943426811104C08C2F33 +:104CB0000E9489251DC081E090E01AC08C2F0E94BF +:104CC0003626811114C0C43179F048F4CB3079F024 +:104CD000C03109F061C082E08093E80108C0C932A8 +:104CE00019F0C83321F058C01092E80155C081E096 +:104CF000817054C0C93291F120F5C43179F1B0F41A +:104D0000C73009F047C08EE18093140182E380939D +:104D100013018AE08093120184E18093110188E0FD +:104D20008093100188E280930F0134C0CE51C630C9 +:104D300088F5EC2FF0E0EC5CFE4F80818093E7017A +:104D400029C0CE34E9F020F4CB3421F56AE013C059 +:104D5000C13579F0C235F1F461E00DC08091E70111 +:104D6000882319F01092E70115C081E08093E801D3 +:104D700015C061E006C08091E7010E94C3240AC00B +:104D80006AE08091E7010E94392504C01092E80191 +:104D900080E004C081E002C080E0AACFCF910895F6 +:104DA0000E947222811102C00E9453220E948E2210 +:104DB0008093530280FF02C0869501C080E00C946E +:104DC000FA0380915302982F9695292F30E02330D3 +:104DD00031054CF49F5F990F8170892B816080931E +:104DE00053020E9492228091530286950C94FA03FA +:104DF00080915302982F969591F09158990F817058 +:104E0000892B809353028E7F91E009F490E080918A +:104E1000530290FB80F9809353020E94922280916A +:104E2000530286950C94FA0380915302982F909523 +:104E300090FB80F9809353020E949222809153024A +:104E400080FF02C0869501C080E00C94FA03909127 +:104E50005302892F86958F5F8F779170843028F465 +:104E6000880F892B8093530202C090935302809144 +:104E700053028E7F91E009F490E08091530290FB01 +:104E800080F9809353020E9492228091530286956A +:104E90000C94FA0320915302922F96958927982F0C +:104EA000990F822F8170892B809353028E7F91E01E +:104EB00009F490E08091530290FB80F980935302B3 +:104EC0000E9492228091530286950C94FA0380915D +:104ED00053028695089504D06894B1118DC0089549 +:104EE00070D088F09F5790F0B92F9927B751A0F054 +:104EF000D1F0660F771F881F991F1AF0BA95C9F76E +:104F000012C0B13081F077D0B1E0089574C0672F3E +:104F1000782F8827B85F39F0B93FCCF3869577951D +:104F20006795B395D9F73EF4909580957095619506 +:104F30007F4F8F4F9F4F0895E89409C097FB3EF431 +:104F400090958095709561957F4F8F4F9F4F9923D6 +:104F5000A9F0F92F96E9BB279395F6958795779554 +:104F60006795B795F111F8CFFAF4BB0F11F460FF14 +:104F70001BC06F5F7F4F8F4F9F4F16C0882311F06C +:104F800096E911C0772321F09EE8872F762F05C080 +:104F9000662371F096E8862F70E060E02AF09A951B +:104FA000660F771F881FDAF7880F9695879597F910 +:104FB000089557FD9058440F551F59F05F3F71F009 +:104FC0004795880F97FB991F61F09F3F79F0879570 +:104FD0000895121613061406551FF2CF4695F1DFF9 +:104FE00008C0161617061806991FF1CF8695710589 +:104FF000610508940895E894BB2766277727CB01BD +:1050000097F908950BD078C069D028F06ED018F0C9 +:10501000952309F05AC05FC01124EECFCADFA0F378 +:10502000959FD1F3950F50E0551F629FF001729F3D +:10503000BB27F00DB11D639FAA27F00DB11DAA1F5C +:10504000649F6627B00DA11D661F829F2227B00DA9 +:10505000A11D621F739FB00DA11D621F839FA00D34 +:10506000611D221F749F3327A00D611D231F849F84 +:10507000600D211D822F762F6A2F11249F575040DB +:105080008AF0E1F088234AF0EE0FFF1FBB1F661F76 +:10509000771F881F91505040A9F79E3F510570F02F +:1050A00014C0AACF5F3FECF3983EDCF3869577956A +:1050B0006795B795F795E7959F5FC1F7FE2B880F2A +:1050C000911D9695879597F9089597F99F6780E8C0 +:1050D00070E060E008959FEF80EC089500240A944A +:1050E0001616170618060906089500240A941216C3 +:1050F0001306140605060895092E0394000C11F4F6 +:10510000882352F0BB0F40F4BF2B11F460FF04C0A2 +:105110006F5F7F4F8F4F9F4F0895AA1BBB1B51E1BD +:1051200007C0AA1FBB1FA617B70710F0A61BB70B17 +:10513000881F991F5A95A9F780959095BC01CD01BC +:10514000089597FB072E16F4009407D077FD09D039 +:105150000E948D2807FC05D03EF4909581959F4FC5 +:105160000895709561957F4F0895EE0FFF1F05908C +:10517000F491E02D0994F999FECF92BD81BDF89A82 +:10518000992780B50895A6E1B0E044E050E00C9482 +:10519000F528A8E1B0E042E050E00C94F528262F75 +:1051A000F999FECF92BD81BDF89A019700B402161D +:1051B00039F01FBA20BD0FB6F894FA9AF99A0FBECB +:1051C00008950396272F0E94D0280E94CF28252FCC +:1051D0000E94D028242F0C94D0280196272F0E94BB +:1051E000D0280C94CF28DC01CB01FC01F999FECF2B +:1051F00006C0F2BDE1BDF89A319600B40D9241505F +:0A5200005040B8F70895F894FFCF6E +:10520A00FFFF580FE60FC30F8F0F5B0F01CD012869 +:10521A0008140A321E1F0F03764F5F6F7F496943D6 +:10522A0079095953633F4D36FE06B1067B062706B8 +:0E523A00400659060102030405060708090094 +:00000001FF diff --git a/keyboards/planck/keymaps/yang/keymap.c b/keyboards/planck/keymaps/yang/keymap.c new file mode 100644 index 000000000..541b1a57e --- /dev/null +++ b/keyboards/planck/keymaps/yang/keymap.c @@ -0,0 +1,146 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "planck.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QW 0 +#define _CM 1 +#define _DV 2 +#define _LW 3 +#define _RS 4 +#define _RGB 5 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_QW] = { /* Qwerty */ + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), F(0), F(0), MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_CM] = { /* Colemak */ + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), F(0), F(0), MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_DV] = { /* Dvorak */ + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), F(0), F(0), MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_RS] = { /* RAISE */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[_LW] = { /* LOWER */ + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[_RGB] = { /* RGBLIGHT */ + {KC_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL}, + {KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_END, KC_TRNS}, + {KC_TRNS, F(1), F(2), F(3), F(4), F(5), F(6), F(7), F(8), KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} + +} +}; + +enum function_id { + RGBLED_TOGGLE, + RGBLED_STEP_MODE, + RGBLED_INCREASE_HUE, + RGBLED_DECREASE_HUE, + RGBLED_INCREASE_SAT, + RGBLED_DECREASE_SAT, + RGBLED_INCREASE_VAL, + RGBLED_DECREASE_VAL, +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_TAP_KEY(_RGB, KC_SPC), + [1] = ACTION_FUNCTION(RGBLED_TOGGLE), + [2] = ACTION_FUNCTION(RGBLED_STEP_MODE), + [3] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), + [4] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), + [5] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), + [6] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), + [7] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), + [8] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + switch (id) { + case RGBLED_TOGGLE: + //led operations + if (record->event.pressed) { + rgblight_toggle(); + } + + break; + case RGBLED_INCREASE_HUE: + if (record->event.pressed) { + rgblight_increase_hue(); + } + break; + case RGBLED_DECREASE_HUE: + if (record->event.pressed) { + rgblight_decrease_hue(); + } + break; + case RGBLED_INCREASE_SAT: + if (record->event.pressed) { + rgblight_increase_sat(); + } + break; + case RGBLED_DECREASE_SAT: + if (record->event.pressed) { + rgblight_decrease_sat(); + } + break; + case RGBLED_INCREASE_VAL: + if (record->event.pressed) { + rgblight_increase_val(); + } + break; + case RGBLED_DECREASE_VAL: + if (record->event.pressed) { + rgblight_decrease_val(); + } + break; + case RGBLED_STEP_MODE: + if (record->event.pressed) { + rgblight_step(); + } + break; + } +} diff --git a/keyboards/planck/keymaps/yang/planck-with-rgb-underglow.jpg b/keyboards/planck/keymaps/yang/planck-with-rgb-underglow.jpg new file mode 100644 index 000000000..c636b9a83 Binary files /dev/null and b/keyboards/planck/keymaps/yang/planck-with-rgb-underglow.jpg differ diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_brett.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_brett.c new file mode 100644 index 000000000..3ebd82af4 --- /dev/null +++ b/keyboards/planck/old_keymap_files/common_keymaps/keymap_brett.c @@ -0,0 +1,42 @@ +#include "keymap.h" + +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = KEYMAP( + ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC, + LCTL, A, S, D, F, G, H, J, K, L, SCLN, ENT, + LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, RSFT, + TAB, LGUI, RSFT, LALT, FN2, SPC, FN1, LEFT, DOWN, UP, RGHT), +[1] = KEYMAP( /* RAISE */ + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, DEL, + TRNS, F1, F2, F3, F4, F5, F6, 4, 5, 6, QUOT, TRNS, + TRNS, F7, F8, F9, F10, F11, F12, 1, 2, 3, TRNS, PGUP, + MPRV, MNXT, TRNS, MUTE, TRNS, TRNS, FN1, 0, 0, TRNS, PGDN), +[2] = KEYMAP( /* LOWER */ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, MINS, + TRNS, TRNS, TRNS, PAUSE, TRNS, TRNS, TRNS, TRNS, LBRC, RBRC, BSLS, EQL, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + MPLY, MSTP, VOLU, VOLD, FN2, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), +}; +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay + [2] = ACTION_LAYER_MOMENTARY(2), // to Fn overlay + + [10] = ACTION_MODS_KEY(MOD_LSFT, KC_1), + [11] = ACTION_MODS_KEY(MOD_LSFT, KC_2), + [12] = ACTION_MODS_KEY(MOD_LSFT, KC_3), + [13] = ACTION_MODS_KEY(MOD_LSFT, KC_4), + [14] = ACTION_MODS_KEY(MOD_LSFT, KC_5), + [15] = ACTION_MODS_KEY(MOD_LSFT, KC_6), + [16] = ACTION_MODS_KEY(MOD_LSFT, KC_7), + [17] = ACTION_MODS_KEY(MOD_LSFT, KC_8), + [18] = ACTION_MODS_KEY(MOD_LSFT, KC_9), + [19] = ACTION_MODS_KEY(MOD_LSFT, KC_0), + [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), + [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), + [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), + [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), + [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), + [28] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), + + [29] = ACTION_MODS_KEY(MOD_LSFT | MOD_RSFT, KC_PAUSE), +}; diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_dotcom.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_dotcom.c new file mode 100644 index 000000000..d4ec987ab --- /dev/null +++ b/keyboards/planck/old_keymap_files/common_keymaps/keymap_dotcom.c @@ -0,0 +1,34 @@ +#include "keymap.h" + +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = KEYMAP( + ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC, + FN1, A, S, D, F, G, H, J, K, L, SCLN, ENT, + LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, LBRC, + LCTL, BSLS, QUOT, LALT, FN22, SPC, LEFT, UP, DOWN, RGHT, RBRC), +[1] = KEYMAP( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, DEL, + TRNS, FN10, FN11, FN12, FN13, FN14, FN15, FN16, FN17, TRNS, TRNS, TRNS, + TRNS, FN18, FN19, FN22, EQL, MINS, FN20, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN1, TRNS, VOLD, VOLU, TRNS), +}; +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay + + [10] = ACTION_MODS_KEY(MOD_LSFT, KC_1), + [11] = ACTION_MODS_KEY(MOD_LSFT, KC_2), + [12] = ACTION_MODS_KEY(MOD_LSFT, KC_3), + [13] = ACTION_MODS_KEY(MOD_LSFT, KC_4), + [14] = ACTION_MODS_KEY(MOD_LSFT, KC_5), + [15] = ACTION_MODS_KEY(MOD_LSFT, KC_6), + [16] = ACTION_MODS_KEY(MOD_LSFT, KC_7), + [17] = ACTION_MODS_KEY(MOD_LSFT, KC_8), + [18] = ACTION_MODS_KEY(MOD_LSFT, KC_9), + [19] = ACTION_MODS_KEY(MOD_LSFT, KC_0), + [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), + [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), + [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), + [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), + [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), + [28] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), +}; diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_jack.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_jack.c new file mode 100644 index 000000000..4237949d5 --- /dev/null +++ b/keyboards/planck/old_keymap_files/common_keymaps/keymap_jack.c @@ -0,0 +1,50 @@ +#include "keymap.h" + +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = KEYMAP( /* Jack */ + TAB, Q, W, E, R, T, Y, U, I, O, P, BSPC, + ESC, A, S, D, F, G, H, J, K, L, SCLN, QUOT, + LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, ENT, + RSFT, LCTL, LALT, LGUI, FN2, SPC, FN1, LEFT, DOWN, UP, RGHT), +[1] = KEYMAP( /* Jack colemak */ + TAB, Q, W, F, P, G, J, L, U, Y, SCLN, BSPC, + ESC, A, R, S, T, D, H, N, E, I, O, QUOT, + LSFT, Z, X, C, V, B, K, M, COMM, DOT, SLSH, ENT, + FN3, LCTL, LALT, LGUI, FN2, SPC, FN1, LEFT, DOWN, UP, RGHT), +[2] = KEYMAP( /* Jack RAISE */ + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, BSPC, + TRNS, FN3, FN4, PAUSE, TRNS, TRNS, TRNS, MINS, EQL, LBRC, RBRC, BSLS, + TRNS, F11, F12, F13, F14, F15, F16, F17, F18, F19, F20, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN1, MNXT, VOLD, VOLU, MPLY), +[3] = KEYMAP( /* Jack LOWER */ + FN22, FN10, FN11, FN12, FN13, FN14, FN15, FN16, FN17, FN18, FN19, BSPC, + TRNS, FN3, FN4, PAUSE, TRNS, TRNS, TRNS, FN20, FN21, FN23, FN24, FN28, + TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, TRNS, + TRNS, TRNS, TRNS, TRNS, FN2, TRNS, TRNS, MNXT, VOLD, VOLU, MPLY), +}; +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(2), // to Fn overlay + [2] = ACTION_LAYER_MOMENTARY(3), // to Fn overlay + + [3] = ACTION_DEFAULT_LAYER_SET(0), + [4] = ACTION_DEFAULT_LAYER_SET(1), + + [10] = ACTION_MODS_KEY(MOD_LSFT, KC_1), + [11] = ACTION_MODS_KEY(MOD_LSFT, KC_2), + [12] = ACTION_MODS_KEY(MOD_LSFT, KC_3), + [13] = ACTION_MODS_KEY(MOD_LSFT, KC_4), + [14] = ACTION_MODS_KEY(MOD_LSFT, KC_5), + [15] = ACTION_MODS_KEY(MOD_LSFT, KC_6), + [16] = ACTION_MODS_KEY(MOD_LSFT, KC_7), + [17] = ACTION_MODS_KEY(MOD_LSFT, KC_8), + [18] = ACTION_MODS_KEY(MOD_LSFT, KC_9), + [19] = ACTION_MODS_KEY(MOD_LSFT, KC_0), + [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), + [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), + [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), + [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), + [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), + [28] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), + + [29] = ACTION_MODS_KEY(MOD_LSFT | MOD_RSFT, KC_PAUSE), +}; diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_joe.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_joe.c new file mode 100644 index 000000000..b8251c857 --- /dev/null +++ b/keyboards/planck/old_keymap_files/common_keymaps/keymap_joe.c @@ -0,0 +1,83 @@ +#include "keymap.h" + +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = KEYMAP( /* Joe qwerty */ + ESC, Q, W, E, R, T, Y, U, I, O, P, MINS, + BSPC, A, S, D, F, G, H, J, K, L, SCLN, ENTER, + FN7, Z, X, C, V, B, N, M, COMM, DOT, SLSH, QUOT, + LCTL, LGUI, LALT, LSFT, FN1, SPC, FN0, LEFT, UP, DOWN, RGHT), +[1] = KEYMAP( /* Joe colemak */ + ESC, Q, W, F, P, G, J, L, U, Y, SCLN, MINS, + BSPC, A, R, S, T, D, H, N, E, I, O, ENTER, + FN7, Z, X, C, V, B, K, M, COMM, DOT, SLSH, QUOT, + LCTL, LGUI, LALT, LSFT, FN1, SPC, FN0, LEFT, UP, DOWN, RGHT), +[2] = KEYMAP( /* Joe UPPER */ + F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, + DEL, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, MENU, CAPS, INS, PSCR, TRNS, FN5, FN6, + TRNS, TRNS, TRNS, TRNS, FN2, TRNS, FN0, FN26, FN27, FN28, FN29), +[3] = KEYMAP( /* Joe LOWER */ + GRV, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN8, FN9, FN30, + BSPC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, TRNS, + BSLS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LBRC, RBRC, TRNS, EQL, + TRNS, TRNS, TRNS, TRNS, FN1, TRNS, FN2, HOME, PGUP, PGDN, END), +[4] = KEYMAP( /* Joe LOWER + UPPER */ + FN3, FN4, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, SLEP, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, MUTE, VOLD, VOLU, MPLY), +}; + +enum macro_id { + M_Q0, + M_Q1, + M_Q2 +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(2), // to Fn overlay + [1] = ACTION_LAYER_MOMENTARY(3), // to Fn overlay + [2] = ACTION_LAYER_MOMENTARY(4), // to Fn overlay + + [3] = ACTION_DEFAULT_LAYER_SET(0), + [4] = ACTION_DEFAULT_LAYER_SET(1), + + [5] = ACTION_MODS_KEY(MOD_LCTL, KC_PGUP), + [6] = ACTION_MODS_KEY(MOD_LCTL, KC_PGDN), + + /* tab on tap, shift on hold */ + [7] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_TAB), + + [8] = ACTION_MACRO(M_Q0), + [9] = ACTION_MACRO(M_Q1), + + [26] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT, KC_LEFT), + [27] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT, KC_UP), + [28] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT, KC_DOWN), + [29] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT, KC_RGHT), + + [30] = ACTION_MACRO(M_Q2), +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + keyevent_t event = record->event; + switch (id) { + case M_Q0: + /* :( | ): */ + return event.pressed ? + MACRO( D(LSFT), T(P), T(9), T(SPC), T(SPC), T(0), T(P), U(LSFT), T(LEFT), T(LEFT), T(LEFT), END ) : + MACRO_NONE; + case M_Q1: + /* (: | :) */ + return event.pressed ? + MACRO( D(LSFT), T(9), T(P), T(SPC), T(SPC), T(P), T(0), U(LSFT), T(LEFT), T(LEFT), T(LEFT), END ) : + MACRO_NONE; + case M_Q2: + /* :) */ + return event.pressed ? + MACRO( D(LSFT), T(P), T(0), U(LSFT), END ) : + MACRO_NONE; + } + return MACRO_NONE; +} diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_matthew.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_matthew.c new file mode 100644 index 000000000..196b2d777 --- /dev/null +++ b/keyboards/planck/old_keymap_files/common_keymaps/keymap_matthew.c @@ -0,0 +1,70 @@ +// by Matthew Pepers - https://github.com/pepers + +/* grid planck layout - modified programmer dvorak +,-----------------------------------------------------------------------------------------------. +| pause | @ | | | ^ | | | | | * | # | $ | del | +| esc | ; : | , < | . > | P | Y | F | G | G | C | R | bkspc | +| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | +|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------| +| & | / | { | ( | [ | = | ! | ] | ) | } | \ | + | +| ` ~ | A | O | E | U | I | D | H | T | N | S | - _ | +| % | 7 | 5 | 3 | 1 | 9 | 0 | 2 | 4 | 6 | 8 | ? | +|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------| +| | | | | | | | | | | | prtsc | +| tab | ' " | Q | J | K | X | B | M | W | V | Z | retrn | +| | | | | | | | | | | | insrt | +|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------| +| | | | | | | | | | | | | +| lctrl | lgui | lalt | ralt | lower | shift | space | raise | left | down | up | right | +| | | | | | | | | home | pgdn | pgup | end | +`-----------------------------------------------------------------------------------------------' +*/ + +#include "keymap.h" + +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: dvorak */ + [0] = KEYMAP_GRID( ESC, SCLN, COMM, DOT, P, Y, F, G, C, R, L, BSPC, \ + GRV, A, O, E, U, I, D, H, T, N, S, MINS, \ + TAB, QUOT, Q, J, K, X, B, M, W, V, Z, ENT, \ + LCTL, LGUI, LALT, RALT, FN1, LSFT, SPC, FN2, LEFT, DOWN, UP, RGHT), + + /* 1: lower (FN1) */ + [1] = KEYMAP_GRID( F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, \ + FN17, 7, 5, 3, 1, 9, 0, 2, 4, 6, 8, FN18, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, INS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, HOME, PGDN, PGUP, END), + + /* 2: raise (FN2) */ + [2] = KEYMAP_GRID(PAUS, FN19, FN20, FN21, TRNS, TRNS, TRNS, TRNS, FN22, FN23, FN24, DEL, \ + FN10, SLSH, FN11, FN12, LBRC, EQL, FN13, RBRC, FN14, FN15, BSLS, FN16, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, PSCR, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), + +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(1), // lower Fn layer + [2] = ACTION_LAYER_MOMENTARY(2), // raise Fn layer + + // lower row1 + [17] = ACTION_MODS_KEY(MOD_LSFT, KC_5), // % + [18] = ACTION_MODS_KEY(MOD_LSFT, KC_SLASH), // ? + + // raise row0 + [19] = ACTION_MODS_KEY(MOD_LSFT, KC_2), // @ + [20] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLASH), // | + [21] = ACTION_MODS_KEY(MOD_LSFT, KC_6), // ^ + [22] = ACTION_MODS_KEY(MOD_LSFT, KC_8), // * + [23] = ACTION_MODS_KEY(MOD_LSFT, KC_3), // # + [24] = ACTION_MODS_KEY(MOD_LSFT, KC_4), // $ + + // raise row1 + [10] = ACTION_MODS_KEY(MOD_LSFT, KC_7), // & + [11] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRACKET), // { + [12] = ACTION_MODS_KEY(MOD_LSFT, KC_9), // ( + [13] = ACTION_MODS_KEY(MOD_LSFT, KC_1), // ! + [14] = ACTION_MODS_KEY(MOD_LSFT, KC_0), // ) + [15] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRACKET), // } + [16] = ACTION_MODS_KEY(MOD_LSFT, KC_EQUAL), // + +}; diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_mitch.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_mitch.c new file mode 100644 index 000000000..e5a86b402 --- /dev/null +++ b/keyboards/planck/old_keymap_files/common_keymaps/keymap_mitch.c @@ -0,0 +1,49 @@ +#include "keymap.h" + +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = KEYMAP( + TAB, Q, W, E, R, T, Y, U, I, O, P, BSPC, + LCTL, A, S, D, F, G, H, J, K, L, SCLN, QUOT, + LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, FN3, + ESC, DEL, LALT, LGUI, FN2, SPC, FN1, LEFT, DOWN, UP, RGHT), +[1] = KEYMAP( + GRV, GRV, FN22, FN19, FN10, TRNS, TRNS, 7, 8, 9, 0, BSPC, + TRNS, LBRC, RBRC, FN23, FN24, TRNS, TRNS, 4, 5, 6, TRNS, BSLS, + TRNS, MINS, FN20, EQL, FN21, TRNS, TRNS, 1, 2, 3, TRNS, ENT, + TRNS, TRNS, TRNS, TRNS, TRNS, SPC, FN1, TRNS, PGDN, PGUP, TRNS), +[2] = KEYMAP( + FN26, FN10, FN11, FN12, FN13, FN14, FN15, FN17, FN18, FN19, FN10, DEL, + TRNS, TRNS, MUTE, VOLD, VOLU, TRNS, BSPC, FN14, FN15, FN16, TRNS, FN25, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN11, FN12, FN13, TRNS, ENT, + TRNS, TRNS, TRNS, TRNS, FN2, ENT, TRNS, TRNS, PGDN, PGUP, TRNS), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(1), // Switch layer raise + [2] = ACTION_LAYER_MOMENTARY(2), // Switch layer lower + + [3] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT), // Right shift serves as Enter on tap + + // Numeric shift modifiers + [10] = ACTION_MODS_KEY(MOD_LSFT, KC_0), + [11] = ACTION_MODS_KEY(MOD_LSFT, KC_1), + [12] = ACTION_MODS_KEY(MOD_LSFT, KC_2), + [13] = ACTION_MODS_KEY(MOD_LSFT, KC_3), + [14] = ACTION_MODS_KEY(MOD_LSFT, KC_4), + [15] = ACTION_MODS_KEY(MOD_LSFT, KC_5), + [16] = ACTION_MODS_KEY(MOD_LSFT, KC_6), + [17] = ACTION_MODS_KEY(MOD_LSFT, KC_7), + [18] = ACTION_MODS_KEY(MOD_LSFT, KC_8), + [19] = ACTION_MODS_KEY(MOD_LSFT, KC_9), + + // Other shift modifiers + [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), // _ + [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), // + + [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // ~ + [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), // { + [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), // } + [25] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), // | + + // Switch windows in app + [26] = ACTION_MODS_KEY(MOD_LGUI, KC_GRV), +}; diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_nathan.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_nathan.c new file mode 100644 index 000000000..f0be4b030 --- /dev/null +++ b/keyboards/planck/old_keymap_files/common_keymaps/keymap_nathan.c @@ -0,0 +1,153 @@ +// Author: Nathan Ross Powell +// https://github.com/nathanrosspowell/tmk_keyboard/blob/planck-jack/keyboard/planck/keymap_nathan.c + +#include "keymap.h" + +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: main layer + * ,-----------------------------------------------------------------------. + * |Tab | q | w | e | r | t | y | u | i | o | p | BS | + * |-----------------------------------------------------------------------| + * |Ctrl | a | s | d | f | g | h | j | k | l | ; | Ret | + * |-----------------------------------------------------------------------| + * |Shift| z | x | c | v | b | n | m | [ | ( | { | < | + * |-----------------------------------------------------------------------| + * |Meta | \ | / | Alt |Lower|Space|Space|Upper|Left |Down | Up |Right| + * `-----------------------------------------------------------------------' + */ + [0] = KEYMAP_GRID( + TAB, Q, W, E, R, T, Y, U, I, O, P, BSPC, + LCTL, A, S, D, F, G, H, J, K, L, SCLN, ENT, + RSFT, Z, X, C, V, B, N, M, LBRC, FN10, FN11, FN12, + LGUI, BSLS, SLSH, LALT, FN0, SPC, SPC, FN1, LEFT, DOWN, UP, RGHT), + + /* 1: fn left/lower layer + * The top row are Visual Studio combos: + * 'Run', 'Breakpoint', 'Step over', 'Step into', 'Set cursor to line' + * 2nd row are key combos: + * 'ctrl-alt-delete', 'ctrl-shift-escape' + * 3rd row are macros keys: + * 'P0' - 'P5' execute a script on Windows machines + * ,-----------------------------------------------------------------------. + * | ESC | F5 | F9 | F10 | F11 |S+F11|CSF10|NLock|Num7 |Num8 |Num9 | Del | + * |-----------------------------------------------------------------------| + * | |C/A/D|C/S/E| Ins |Print|Pause|SLock|Num0 |Num4 |Num5 |Num6 |Num= | + * |-----------------------------------------------------------------------| + * | | P0 | P1 | P2 | P3 | P4 | P5 |Num. |Num1 |Num2 |Num3 |Num/ | + * |-----------------------------------------------------------------------| + * | |User | | | | | | |Home |PgDn |PgUp | End | + * `-----------------------------------------------------------------------' + */ + [1] = KEYMAP_GRID( + ESC, F5, F9, F10, F11, FN30, FN31, NLCK, P7, P8, P9, DEL, + TRNS, FN16, FN17, INS, PSCR, PAUS, SLCK, P0, P4, P5, P6, PEQL, + TRNS, FN2, FN3, FN4, FN5, FN6, FN7, PDOT, P1, P2, P3, PSLS, + TRNS, FN8, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, HOME, PGDN, PGUP, END ), + + /* 2: fn right/raise layer + * ,-----------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 |F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-----------------------------------------------------------------------| + * | | ! | @ | # | $ | % | ^ | & | * | - | + | = | + * |-----------------------------------------------------------------------| + * | | _ | ' | " | ` | ~ | , | . | ] | ) | } | > | + * |-----------------------------------------------------------------------| + * | |NextT|PrevT| | | | Esc | |Mute |Vol- |Vol+ | P/P | + * `-----------------------------------------------------------------------' + */ + [2] = KEYMAP_GRID( + F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, + TRNS, FN18, FN19, FN20, FN21, FN22, FN23, FN24, FN25, MINS, FN26, PAST, + TRNS, FN27, QUOT, FN28, GRV, FN29, COMM, DOT, RBRC, FN13, FN14, FN15, + TRNS, MNXT, MPRV, TRNS, TRNS, TRNS, ESC, TRNS, MUTE, VOLD, VOLU, MPLY ), +}; + +enum macro_id { + M_P0, + M_P1, + M_P2, + M_P3, + M_P4, + M_P5, + M_USERNAME +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(1), // left/lower layer + [1] = ACTION_LAYER_MOMENTARY(2), // right/raise layer + // Program macros + [2] = ACTION_MACRO(M_P0), + [3] = ACTION_MACRO(M_P1), + [4] = ACTION_MACRO(M_P2), + [5] = ACTION_MACRO(M_P3), + [6] = ACTION_MACRO(M_P4), + [7] = ACTION_MACRO(M_P5), + [8] = ACTION_MACRO(M_USERNAME), + // Braces + [10] = ACTION_MODS_KEY(MOD_LSFT, KC_9), // ( + [11] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), // { + [12] = ACTION_MODS_KEY(MOD_LSFT, KC_COMMA), // < + [13] = ACTION_MODS_KEY(MOD_LSFT, KC_0), // ) + [14] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), // } + [15] = ACTION_MODS_KEY(MOD_LSFT, KC_DOT), // > + // Combo + [16] = ACTION_MODS_KEY(MOD_LALT | MOD_LCTL, KC_DEL), // Ctrl+Alt+Delete + [17] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_ESC), // Ctrl+Shft+Escape + // Symbols + [18] = ACTION_MODS_KEY(MOD_LSFT, KC_1), // ! + [19] = ACTION_MODS_KEY(MOD_LSFT, KC_2), // @ + [20] = ACTION_MODS_KEY(MOD_LSFT, KC_3), // # + [21] = ACTION_MODS_KEY(MOD_LSFT, KC_4), // $ + [22] = ACTION_MODS_KEY(MOD_LSFT, KC_5), // % + [23] = ACTION_MODS_KEY(MOD_LSFT, KC_6), // ^ + [24] = ACTION_MODS_KEY(MOD_LSFT, KC_7), // & + [25] = ACTION_MODS_KEY(MOD_LSFT, KC_8), // * + [26] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), // + + [27] = ACTION_MODS_KEY(MOD_LSFT, KC_MINUS), // _ + [28] = ACTION_MODS_KEY(MOD_LSFT, KC_QUOTE), // " + [29] = ACTION_MODS_KEY(MOD_LSFT, KC_GRAVE), // ~ + // Debugging + [30] = ACTION_MODS_KEY(MOD_LSFT, KC_F11), // Step into + [31] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_F10), // Set cursor to line + }; + +// Run a script and pass a key number to it. This is Windows specific and the script needs to be on your path. +// *open run dialog* keypress.py [PRG_NUM] +#define ADD_PYTHON_PROGRAM_ON_WIN( PRG_NUM ) MACRO( D(LGUI), T(R), U(LGUI), W(100), T(K), T(E), T(Y), T(P), T(R), T(E), T(S), T(S), T(DOT), T(P), T(Y), T(SPC), T(PRG_NUM), END ) +// *return* +#define RUN_PYTHON_PROGRAM_ON_WIN MACRO( T(ENT), END ) + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + keyevent_t event = record->event; + switch (id) { + case M_P0: + return event.pressed ? + ADD_PYTHON_PROGRAM_ON_WIN( 0 ) : + RUN_PYTHON_PROGRAM_ON_WIN; + case M_P1: + return event.pressed ? + ADD_PYTHON_PROGRAM_ON_WIN( 1 ) : + RUN_PYTHON_PROGRAM_ON_WIN; + case M_P2: + return event.pressed ? + ADD_PYTHON_PROGRAM_ON_WIN( 2 ) : + RUN_PYTHON_PROGRAM_ON_WIN; + case M_P3: + return event.pressed ? + ADD_PYTHON_PROGRAM_ON_WIN( 3 ) : + RUN_PYTHON_PROGRAM_ON_WIN; + case M_P4: + return event.pressed ? + ADD_PYTHON_PROGRAM_ON_WIN( 4 ) : + RUN_PYTHON_PROGRAM_ON_WIN; + case M_P5: + return event.pressed ? + ADD_PYTHON_PROGRAM_ON_WIN( 5 ) : + RUN_PYTHON_PROGRAM_ON_WIN; + case M_USERNAME: + return event.pressed ? + MACRO( T(N), T(A), T(T), T(H), T(A), T(N), T(R), T(O), T(S), T(S), T(P), T(O), T(W), T(E), T(L), T(L), END ) : + MACRO_NONE; + } + return MACRO_NONE; +} diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_paul.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_paul.c new file mode 100644 index 000000000..51d45be75 --- /dev/null +++ b/keyboards/planck/old_keymap_files/common_keymaps/keymap_paul.c @@ -0,0 +1,49 @@ +#include "keymap.h" + +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = KEYMAP( /* Paul */ + TAB, Q, W, E, R, T, Y, U, I, O, P, BSPC, + FN1, A, S, D, F, G, H, J, K, L, SCLN, QUOT, + LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, ENT, + ESC, LCTL, LALT, LGUI, FN2, SPC, FN3, LEFT, DOWN, UP, RGHT), +[1] = KEYMAP( /* Paul FN */ + TRNS, TRNS, TRNS, FN8, FN9, TRNS, TRNS, TRNS, TRNS, MUTE, VOLD, VOLU, + FN1, TRNS, TRNS, HOME, END, TRNS, TRNS, TRNS, TRNS, MPRV, MPLY, MNXT, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, UP, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LEFT, DOWN, RGHT), +[2] = KEYMAP( /* Paul LOWER */ + FN22, FN10, FN11, FN12, FN13, FN14, FN15, FN16, FN17, FN18, FN19, BSPC, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN20, FN21, FN23, FN24, FN28, + TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, TRNS, + TRNS, TRNS, TRNS, TRNS, FN2, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), +[3] = KEYMAP( /* Paul RAISE */ + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, BSPC, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, MINS, EQL, LBRC, RBRC, BSLS, + TRNS, F11, F12, F13, F14, F15, F16, F17, F18, F19, F20, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN3, TRNS, TRNS, TRNS, TRNS), +}; +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(1), // to Fn1 overlay (FN) + [2] = ACTION_LAYER_MOMENTARY(2), // to Fn2 overlay (LOWER) + [3] = ACTION_LAYER_MOMENTARY(3), // to Fn3 overlay (RAISE) + + [8] = ACTION_MODS_KEY(MOD_LSFT, KC_HOME), + [9] = ACTION_MODS_KEY(MOD_LSFT, KC_END), + [10] = ACTION_MODS_KEY(MOD_LSFT, KC_1), + [11] = ACTION_MODS_KEY(MOD_LSFT, KC_2), + [12] = ACTION_MODS_KEY(MOD_LSFT, KC_3), + [13] = ACTION_MODS_KEY(MOD_LSFT, KC_4), + [14] = ACTION_MODS_KEY(MOD_LSFT, KC_5), + [15] = ACTION_MODS_KEY(MOD_LSFT, KC_6), + [16] = ACTION_MODS_KEY(MOD_LSFT, KC_7), + [17] = ACTION_MODS_KEY(MOD_LSFT, KC_8), + [18] = ACTION_MODS_KEY(MOD_LSFT, KC_9), + [19] = ACTION_MODS_KEY(MOD_LSFT, KC_0), + [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), + [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), + [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), + [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), + [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), + [28] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), + +}; diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_peasant.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_peasant.c new file mode 100644 index 000000000..f6493e33a --- /dev/null +++ b/keyboards/planck/old_keymap_files/common_keymaps/keymap_peasant.c @@ -0,0 +1,51 @@ +#include "keymap.h" + +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = KEYMAP( /* Native */ + ESC, Q, W, E, R, T, Y, U, I, O, P, FN2, + BSPC, A, S, D, F, G, H, J, K, L, SCLN, QUOT, + TAB, Z, X, C, V, B, N, M, COMM, DOT, SLSH, ENT, + DEL, LCTL, NO, LSFT, LALT, SPC, NO, LEFT, DOWN, UP, RGHT), + [1] = KEYMAP( /* QWERTY->PHOTOSHOP */ + DELETE, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, FN1, + O, G, S, U, T, FN27, F21, F10, F11, F7, F8, F9, + TAB, FN4, FN5, FN6, F1, FN7, F18, F19, F23, F20, F22, FN9, + COMM, DOT, FN10, FN11, FN3, SPC, FN12, F2, FN8, F3, F14), + [2] = KEYMAP( /* 2: FN3 PHOTOSHOP */ + ESC, FN25, FN26, NO, NO, NO, NO, NO, NO, NO, NO, NO, + NO, NO, NO, NO, NO, NO, NO, NO, NO, FN19, FN20, FN21, + C, NO, FN22, FN5, NO, FN23, NO, NO, NO, NO, FN13, NO, + FN14, FN15, FN16, FN17, FN3, SPC, FN18, NO, NO, F24, NO), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_DEFAULT_LAYER_SET(0), // set Qwerty layout + [2] = ACTION_DEFAULT_LAYER_SET(1), // set Photoshop presets + [3] = ACTION_LAYER_ON_OFF(2), // Photoshop function layer + + [4] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F9), // photo folder AHK + [5] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_I), // select inverse + [6] = ACTION_MODS_KEY(MOD_LSFT, KC_M), // marquee select + [7] = ACTION_MODS_KEY(MOD_LALT, KC_BSPC), // fill + [8] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_X), // warp + [9] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT | MOD_LSFT, KC_F12), // merge all new layer + [10] = ACTION_MODS_KEY(MOD_LCTL, KC_MINS), // zoom out + [11] = ACTION_MODS_KEY(MOD_LCTL, KC_H), // RBG sliders + [12] = ACTION_MODS_KEY(MOD_LCTL, KC_S), // save + [13] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_F5), // layer mask from transparancy + [14] = ACTION_MODS_KEY(MOD_LALT, KC_LBRC), // prev layer + [15] = ACTION_MODS_KEY(MOD_LALT, KC_RBRC), // next layer + [16] = ACTION_MODS_KEY(MOD_LCTL, KC_EQL), // zoom in + [17] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_H), // HSV sliders + [18] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F11), // save as PNG + [19] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F7), // gaussian blur + [20] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F8), // motion blur + [21] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_X), // liquify filter + [22] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), // prev layer blending + [23] = ACTION_MODS_KEY(MOD_LSFT | MOD_LALT, KC_N), // normal layer blending + [24] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), // next layer blending + [25] = ACTION_MODS_KEY(MOD_LCTL, KC_Z), // step back + [26] = ACTION_MODS_KEY(MOD_LCTL, KC_Y), // step forward + [27] = ACTION_MODS_KEY(MOD_LCTL, KC_R), // rasterize + +}; diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_reed.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_reed.c new file mode 100644 index 000000000..f721716fd --- /dev/null +++ b/keyboards/planck/old_keymap_files/common_keymaps/keymap_reed.c @@ -0,0 +1,74 @@ +#include "keymap.h" + +/* + * BUILD: + * Simply run the command below in the keyboards/planck directory + * to build against this keymap + * + * make KEYMAP=reed COMMON_KEYMAP=true + * + * + * DETAILS: + * + * This layout works off of Jack's layout, making some changes that I + * feel significantly improve the function of the keyboard. Major changes + * include adding a "gaming mode" that will allow users to still access + * the number keys 1 through 4 easily for games that require it. Also + * included is the ability to use the tap/hold function for easy use of + * right shift and thumb shift with their tapped companions. + * + */ +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = KEYMAP_GRID( /* Reed */ + ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC, + TAB, A, S, D, F, G, H, J, K, L, SCLN, QUOT, + LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, FN5, + LCTL, CAPS, LALT, LGUI, FN2, FN7, SPC, FN1, LEFT, DOWN, UP, RGHT), + +[1] = KEYMAP_GRID( /* Reed EXTREME GAMING */ + ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC, + TAB, A, S, D, F, G, H, J, K, L, SCLN, QUOT, + LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, FN5, + LCTL, 1, 2, 3, 4, SPC, FN2, FN1, LEFT, DOWN, UP, RGHT), + +[2] = KEYMAP_GRID( /* Reed RAISE */ + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, BSPC, + TRNS, FN3, FN4, PAUSE, TRNS, TRNS, TRNS, MINS, EQL, LBRC, RBRC, BSLS, + TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN1, MNXT, VOLD, VOLU, MPLY), + +[3] = KEYMAP_GRID( /* Reed LOWER */ + TRNS, FN10, FN11, FN12, FN13, FN14, FN15, FN16, FN17, FN18, FN19, DEL, + TRNS, TRNS, INS, HOME, PGUP, TRNS, TRNS, FN20, FN21, FN23, FN24, FN28, + TRNS, TRNS, DEL, END, PGDN, F11, F12, F13, TRNS, VOLD, VOLU, TRNS, + TRNS, TRNS, TRNS, TRNS, FN2, TRNS, TRNS, TRNS, MPRV, MUTE, MPLY, MNXT), +}; +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(2), // to Fn overlay - RAISE + [2] = ACTION_LAYER_MOMENTARY(3), // to Fn overlay - LOWER + + [3] = ACTION_DEFAULT_LAYER_SET(0), + [4] = ACTION_DEFAULT_LAYER_SET(1), + // Actions for the tap/hold modifiers listed above + [5] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT), + [7] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_BSPC), + + [10] = ACTION_MODS_KEY(MOD_LSFT, KC_1), + [11] = ACTION_MODS_KEY(MOD_LSFT, KC_2), + [12] = ACTION_MODS_KEY(MOD_LSFT, KC_3), + [13] = ACTION_MODS_KEY(MOD_LSFT, KC_4), + [14] = ACTION_MODS_KEY(MOD_LSFT, KC_5), + [15] = ACTION_MODS_KEY(MOD_LSFT, KC_6), + [16] = ACTION_MODS_KEY(MOD_LSFT, KC_7), + [17] = ACTION_MODS_KEY(MOD_LSFT, KC_8), + [18] = ACTION_MODS_KEY(MOD_LSFT, KC_9), + [19] = ACTION_MODS_KEY(MOD_LSFT, KC_0), + [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), + [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), + [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), + [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), + [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), + [28] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), + + [29] = ACTION_MODS_KEY(MOD_LSFT | MOD_RSFT, KC_PAUSE), +}; diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_sean.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_sean.c new file mode 100644 index 000000000..fb0eb7dad --- /dev/null +++ b/keyboards/planck/old_keymap_files/common_keymaps/keymap_sean.c @@ -0,0 +1,53 @@ +#include "keymap.h" + +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = KEYMAP( /* Matrix Dvorak */ + QUOT, COMM, DOT, P, Y, SLSH, EQL, F, G, C, R, L, + A, O, E, U, I, ESC, BSPC, D, H, T, N, S, + SCLN, Q, J, K, X, TAB, ENT, B, M, W, V, Z, + LSFT, LCTL, LALT, LGUI, FN1, SPC, FN2, LEFT, DOWN, UP, RGHT), + + [1] = KEYMAP( /* Matrix Qwerty */ + Q, W, E, R, T, QUOT, EQL, Y, U, I, O, P, + A, S, D, F, G, ESC, BSPC, H, J, K, L, SCLN, + Z, X, C, V, B, TAB, ENT, N, M, COMM, DOT, SLSH, + LSFT, LCTL, LALT, LGUI, FN1, SPC, FN2, LEFT, DOWN, UP, RGHT), + + [2] = KEYMAP( /* fn1 lower */ + F1, F2, F3, F4, F5, NO, NO, F6, F7, F8, F9, F10, + 1, 2, 3, 4, 5, F18, DEL, 6, 7, 8, 9, 0, + FN3, FN4, FN28, GRV, MINS, TRNS, INS, BSLS, LBRC, RBRC, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, HOME, PGDN, PGUP, END), + + [3] = KEYMAP( /* fn2 raise */ + MRWD, MPLY, MFFD, NO, NO, FN21, FN22, EJCT, PWR, LSFT,PAUSE, RSFT, + FN11, FN12, FN13, FN14, FN15, F18, DEL, FN16, FN17, FN18, FN19, FN20, + FN3, FN4, FN28, FN23, FN24, TRNS, INS, FN25, FN26, FN27, MPRV, MNXT, + TRNS, TRNS, TRNS, TRNS, FN1, TRNS, FN2, NO, VOLD, VOLU, MUTE), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(2), // to Fn overlay LOWER + [2] = ACTION_LAYER_MOMENTARY(3), // to Fn overlay RAISE + [3] = ACTION_DEFAULT_LAYER_SET(0), + [4] = ACTION_DEFAULT_LAYER_SET(1), + + [11] = ACTION_MODS_KEY(MOD_LSFT, KC_1), + [12] = ACTION_MODS_KEY(MOD_LSFT, KC_2), + [13] = ACTION_MODS_KEY(MOD_LSFT, KC_3), + [14] = ACTION_MODS_KEY(MOD_LSFT, KC_4), + [15] = ACTION_MODS_KEY(MOD_LSFT, KC_5), + [16] = ACTION_MODS_KEY(MOD_LSFT, KC_6), + [17] = ACTION_MODS_KEY(MOD_LSFT, KC_7), + [18] = ACTION_MODS_KEY(MOD_LSFT, KC_8), + [19] = ACTION_MODS_KEY(MOD_LSFT, KC_9), + [20] = ACTION_MODS_KEY(MOD_LSFT, KC_0), + [21] = ACTION_MODS_KEY(MOD_LSFT, KC_SLSH), + [22] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), + [23] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), + [24] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), + [25] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), + [26] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), + [27] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), + [28] = ACTION_MODS_KEY(MOD_LSFT | MOD_RSFT, KC_PAUSE), +}; diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_shane.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_shane.c new file mode 100644 index 000000000..2191758c8 --- /dev/null +++ b/keyboards/planck/old_keymap_files/common_keymaps/keymap_shane.c @@ -0,0 +1,98 @@ +#include "keymap.h" +#include "action_layer.h" +#include "action.h" +#include "action_util.h" + +/* + Shane's Planck Layout + http://www.keyboard-layout-editor.com/#/layouts/015d9011102619d7695c86ffe57cf441 +*/ +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = KEYMAP_AND_SWAP( /* Base */ + TAB, Q, W, E, R, T, Y, U, I, O, P, MINS, + LCTL, A, S, D, F, G, H, J, K, L, SCLN, BSPC, + LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, FN5, + /*ALPHA*/FN3, /*HYPER*/ /*SUPER*/LGUI, /*META*/LALT, LCTL, FN2, FN6, FN1, LEFT, DOWN, UP, RGHT), + [2] = KEYMAP_AND_SWAP( /* More modifiers */ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, RCTL, RALT, RGUI, TRNS), + [4] = KEYMAP_AND_SWAP( /* WASD */ + TRNS, TRNS, UP, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, LEFT, DOWN, RIGHT, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), + [6] = KEYMAP_AND_SWAP( /* Raise/FN1 */ + FN23, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, EQL, + TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, ENT, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, BSLS, TRNS, + PAUS, TRNS, TRNS, TRNS, TRNS, BSPC, TRNS, MUTE, PGUP, PGDN, MNXT), + [8] = KEYMAP_AND_SWAP( /* Lower/FN2 */ + ESC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN19, FN20, TRNS, + TRNS, TRNS, TRNS, TRNS, CAPS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, QUOT, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN24, FN25, LBRC, RBRC, TRNS, TRNS, + FN4, TRNS, TRNS, TRNS, TRNS, ENT, TRNS, MPLY, VOLD, VOLU, MPRV), +}; + +enum function_id { + SPACE_FN, +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch (id) { + case SPACE_FN: + if (record->event.pressed) { + // Change the keyboard maps. + // Whatever even layer's are on, turn on the odd one's too. + for (uint8_t i = 0; i < 9; i += 2) { + if (layer_state & (1UL << i)) + layer_on(i + 1); + } + layer_on(1); + } else { + // turn off all the even layers. + for (uint8_t i = 0; i < 9; i += 2) + layer_off(i + 1); + + if (record->tap.count != 0) { + // Space was tapped rather than used like a modifier. + // So send a space up and down event. + add_key(KC_SPC); + send_keyboard_report(); + del_key(KC_SPC); + send_keyboard_report(); + } + } + break; + } +} + + + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(6), // to fist Fn overlay + [2] = ACTION_LAYER_MOMENTARY(8), // to second Fn overlay + [3] = ACTION_LAYER_TOGGLE(2), // toggle more modifiers + [4] = ACTION_LAYER_TOGGLE(4), // toggle wasd + [5] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT), + [6] = ACTION_FUNCTION_TAP(SPACE_FN), + + [11] = ACTION_MODS_KEY(MOD_LSFT, KC_1), + [12] = ACTION_MODS_KEY(MOD_LSFT, KC_2), + [13] = ACTION_MODS_KEY(MOD_LSFT, KC_3), + [14] = ACTION_MODS_KEY(MOD_LSFT, KC_4), + [15] = ACTION_MODS_KEY(MOD_LSFT, KC_5), + [16] = ACTION_MODS_KEY(MOD_LSFT, KC_6), + [17] = ACTION_MODS_KEY(MOD_LSFT, KC_7), + [18] = ACTION_MODS_KEY(MOD_LSFT, KC_8), + [19] = ACTION_MODS_KEY(MOD_LSFT, KC_9), + [20] = ACTION_MODS_KEY(MOD_LSFT, KC_0), + [21] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), + [22] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), + [23] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), + [24] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), + [25] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), + [26] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), +}; \ No newline at end of file diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_simon.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_simon.c new file mode 100644 index 000000000..8058c2e10 --- /dev/null +++ b/keyboards/planck/old_keymap_files/common_keymaps/keymap_simon.c @@ -0,0 +1,44 @@ +#include "keymap.h" + +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = KEYMAP( /* Jack */ + ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC, + TAB, A, S, D, F, G, H, J, K, L, DOT, ENT, + LSFT, Z, X, C, V, B, N, M, COMM, DOT, SCLN, DEL, + LCTL, ENT, LALT, CAPS, FN2, SPC, FN1, LEFT, DOWN, UP, RGHT), +[1] = KEYMAP( /* Jack RAISE */ + TRNS, F1, F2, F3, F4, NO, FN11, FN9, FN12, NO, FN14, TRNS, + TRNS, F5, F6, F7, F8, FN16, SLSH, MINS, EQL, LBRC, FN8, TRNS, + TRNS, F9, F10, F11, F12, F15, F16, FN22, SCLN, MINS, QUOT, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), +[2] = KEYMAP( /* Jack LOWER */ + FN22, 1, 2, 3, FN13, FN14, FN15, FN16, FN17, FN18, FN19, BSPC, + TRNS, 4, 5, 6, TRNS, TRNS, TRNS, FN20, FN21, FN23, FN24, FN28, + TRNS, 7, 8, 9, 0, FN28, FN15, F7, F8, F9, F10, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), +}; +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay + [2] = ACTION_LAYER_MOMENTARY(2), // to Fn overlay + + [8] = ACTION_MODS_KEY(MOD_LSFT, KC_SLSH), + [9] = ACTION_MODS_KEY(MOD_LSFT, KC_QUOT), + [10] = ACTION_MODS_KEY(MOD_LSFT, KC_1), + [11] = ACTION_MODS_KEY(MOD_LSFT, KC_2), + [12] = ACTION_MODS_KEY(MOD_LSFT, KC_3), + [13] = ACTION_MODS_KEY(MOD_LSFT, KC_4), + [14] = ACTION_MODS_KEY(MOD_LSFT, KC_5), + [15] = ACTION_MODS_KEY(MOD_LSFT, KC_6), + [16] = ACTION_MODS_KEY(MOD_LSFT, KC_7), + [17] = ACTION_MODS_KEY(MOD_LSFT, KC_8), + [18] = ACTION_MODS_KEY(MOD_LSFT, KC_9), + [19] = ACTION_MODS_KEY(MOD_LSFT, KC_0), + [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), + [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), + [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), + [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), + [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), + [28] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), + + [29] = ACTION_MODS_KEY(MOD_LSFT | MOD_RSFT, KC_PAUSE), +}; diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_tim.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_tim.c new file mode 100644 index 000000000..64d0b7403 --- /dev/null +++ b/keyboards/planck/old_keymap_files/common_keymaps/keymap_tim.c @@ -0,0 +1,44 @@ +#include "keymap.h" + +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = KEYMAP( + ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC, + TAB, A, S, D, F, G, H, J, K, L, SCLN, ENT, + LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, RSFT, + LCTL, LALT, DEL, LGUI, FN2, SPC, FN1, F2, F5, F9, F12), +[2] = KEYMAP( /* RAISE */ + TRNS, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, BSPC, + GRV, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, MINS, EQL, LBRC, RBRC, BSLS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, QUOT, FN29, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN1, TRNS, TRNS, TRNS, TRNS), +[3] = KEYMAP( /* LOWER */ + TRNS, FN10, FN11, FN12, FN13, FN14, FN15, FN16, FN17, FN18, FN19, BSPC, + FN22, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN20, FN21, FN23, FN24, FN28, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, QUOT, FN29, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, FN2, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), +}; +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(2), // to Fn overlay + [2] = ACTION_LAYER_MOMENTARY(3), // to Fn overlay + + [3] = ACTION_DEFAULT_LAYER_SET(0), + [4] = ACTION_DEFAULT_LAYER_SET(1), + + [10] = ACTION_MODS_KEY(MOD_LSFT, KC_1), + [11] = ACTION_MODS_KEY(MOD_LSFT, KC_2), + [12] = ACTION_MODS_KEY(MOD_LSFT, KC_3), + [13] = ACTION_MODS_KEY(MOD_LSFT, KC_4), + [14] = ACTION_MODS_KEY(MOD_LSFT, KC_5), + [15] = ACTION_MODS_KEY(MOD_LSFT, KC_6), + [16] = ACTION_MODS_KEY(MOD_LSFT, KC_7), + [17] = ACTION_MODS_KEY(MOD_LSFT, KC_8), + [18] = ACTION_MODS_KEY(MOD_LSFT, KC_9), + [19] = ACTION_MODS_KEY(MOD_LSFT, KC_0), + [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), + [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), + [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), + [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), + [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), + [28] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), + [29] = ACTION_MODS_KEY(MOD_LSFT, KC_QUOT), +}; diff --git a/keyboards/planck/old_keymap_files/common_keymaps/keymap_wilba.c b/keyboards/planck/old_keymap_files/common_keymaps/keymap_wilba.c new file mode 100644 index 000000000..22326ebe4 --- /dev/null +++ b/keyboards/planck/old_keymap_files/common_keymaps/keymap_wilba.c @@ -0,0 +1,56 @@ +#include "keymap.h" + +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = KEYMAP( /* Wilba */ + FN27, FN28, FN29, E, R, T, Y, U, I, O, P, BSPC, + TAB, A, S, D, F, G, H, J, K, L, SCLN, QUOT, + LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, ENT, + LCTL, LGUI, LALT, RSFT, FN1, SPC, FN2, LEFT, DOWN, UP, RGHT), +[1] = KEYMAP( /* Wilba Alternate */ + ESC, Q, W, E, R, T, Y, U, I, O, P, BSPC, + TAB, A, S, D, F, G, H, J, K, L, SCLN, QUOT, + LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, ENT, + LCTL, LGUI, LALT, RSFT, FN1, SPC, FN2, LEFT, DOWN, UP, RGHT), +[2] = KEYMAP( /* Wilba LOWER */ + TRNS, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, TRNS, + TRNS, F11, F12, LBRC, RBRC, FN20, EQL, FN23, FN24, MINS, FN21, TRNS, + TRNS, BSLS, GRV, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, FN1, TRNS, TRNS, MNXT, VOLD, VOLU, MPLY), +[3] = KEYMAP( /* Wilba RAISE */ + TRNS, FN10, FN11, FN12, FN13, FN14, FN15, FN16, FN17, FN18, FN19, TRNS, + TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, TRNS, + TRNS, FN25, FN22, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN2, TRNS, TRNS, TRNS, TRNS), +}; +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(2), // LOWER + [2] = ACTION_LAYER_MOMENTARY(3), // RAISE + + [3] = ACTION_DEFAULT_LAYER_SET(0), + [4] = ACTION_DEFAULT_LAYER_SET(1), + + [10] = ACTION_MODS_KEY(MOD_LSFT, KC_1), // ! + [11] = ACTION_MODS_KEY(MOD_LSFT, KC_2), // @ + [12] = ACTION_MODS_KEY(MOD_LSFT, KC_3), // # + [13] = ACTION_MODS_KEY(MOD_LSFT, KC_4), // $ + [14] = ACTION_MODS_KEY(MOD_LSFT, KC_5), // % + [15] = ACTION_MODS_KEY(MOD_LSFT, KC_6), // ^ + [16] = ACTION_MODS_KEY(MOD_LSFT, KC_7), // & + [17] = ACTION_MODS_KEY(MOD_LSFT, KC_8), // * + [18] = ACTION_MODS_KEY(MOD_LSFT, KC_9), // ( + [19] = ACTION_MODS_KEY(MOD_LSFT, KC_0), // ) + + [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), // _ + [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), // + + [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // ~ + [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), // { + [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), // } + [25] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), // | + + [26] = ACTION_MODS_KEY(MOD_LSFT | MOD_RSFT, KC_PAUSE), + + [27] = ACTION_BACKLIGHT_TOGGLE(), + [28] = ACTION_BACKLIGHT_INCREASE(), + [29] = ACTION_BACKLIGHT_DECREASE() + +}; diff --git a/keyboards/planck/old_keymap_files/keymap_common.c b/keyboards/planck/old_keymap_files/keymap_common.c new file mode 100644 index 000000000..db4f18a95 --- /dev/null +++ b/keyboards/planck/old_keymap_files/keymap_common.c @@ -0,0 +1,30 @@ +/* +Copyright 2012,2013 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include "keymap.h" + + +/* translates key to keycode */ +uint8_t keymap_key_to_keycode(uint8_t layer, keypos_t key) +{ + return pgm_read_byte(&keymaps[(layer)][(key.row)][(key.col)]); +} + +/* translates Fn keycode to action */ +action_t keymap_fn_to_action(uint8_t keycode) +{ + return (action_t){ .code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]) }; +} diff --git a/keyboards/planck/old_keymap_files/keymap_common.h b/keyboards/planck/old_keymap_files/keymap_common.h new file mode 100644 index 000000000..d46df9287 --- /dev/null +++ b/keyboards/planck/old_keymap_files/keymap_common.h @@ -0,0 +1,129 @@ +/* +Copyright 2012,2013 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#ifndef KEYMAP_COMMON_H +#define KEYMAP_COMMON_H + +#include +#include +#include +#include "keycode.h" +#include "action.h" +#include "action_macro.h" +#include "report.h" +#include "host.h" +// #include "print.h" +#include "debug.h" +#include "keymap.h" + + +extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; +extern const uint16_t fn_actions[]; + + +// MIT Layout +/* + * ,-----------------------------------------------------------------------. + * | | | | | | | | | | | | | + * |-----------------------------------------------------------------------| + * | | | | | | | | | | | | | + * |-----------------------------------------------------------------------| + * | | | | | | | | | | | | | + * |-----------------------------------------------------------------------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------' + */ +#define KEYMAP( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ + K30, K31, K32, K33, K34, K35, K37, K38, K39, K3A, K3B \ +) { \ + { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B }, \ + { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B }, \ + { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B }, \ + { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K35, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B } \ +} + +// Grid Layout +/* + * ,-----------------------------------------------------------------------. + * | | | | | | | | | | | | | + * |-----------------------------------------------------------------------| + * | | | | | | | | | | | | | + * |-----------------------------------------------------------------------| + * | | | | | | | | | | | | | + * |-----------------------------------------------------------------------| + * | | | | | | | | | | | | | + * `-----------------------------------------------------------------------' + */ +#define KEYMAP_GRID( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B \ +) { \ + { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B }, \ + { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B }, \ + { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B }, \ + { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B } \ +} + +#define KEYMAP_REVERSE( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ + K30, K31, K32, K33, K34, K35, K37, K38, K39, K3A, K3B \ + ) { \ + { KC_##K0B, KC_##K0A, KC_##K09, KC_##K08, KC_##K07, KC_##K06, KC_##K05, KC_##K04, KC_##K03, KC_##K02, KC_##K01, KC_##K00 }, \ + { KC_##K1B, KC_##K1A, KC_##K19, KC_##K18, KC_##K17, KC_##K16, KC_##K15, KC_##K14, KC_##K13, KC_##K12, KC_##K11, KC_##K10 }, \ + { KC_##K2B, KC_##K2A, KC_##K29, KC_##K28, KC_##K27, KC_##K26, KC_##K25, KC_##K24, KC_##K23, KC_##K22, KC_##K21, KC_##K20 }, \ + { KC_##K3B, KC_##K3A, KC_##K39, KC_##K38, KC_##K37, KC_##K35, KC_##K35, KC_##K34, KC_##K33, KC_##K32, KC_##K31, KC_##K30 }, \ + } + +#define KEYMAP_AND_REVERSE(args...) KEYMAP(args), KEYMAP_REVERSE(args) + +#define KEYMAP_SWAP( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ + K30, K31, K32, K33, K34, K35, K37, K38, K39, K3A, K3B \ + ) { \ + { KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05 }, \ + { KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15 }, \ + { KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25 }, \ + { KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K35, KC_##K35, KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34 }, \ +} + +#define KEYMAP_AND_SWAP(args...) KEYMAP(args), KEYMAP_SWAP(args) + +/* + Keymap for the Planck 48 key variant. + */ +#define KEYMAP_48( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B \ +) { \ + { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B }, \ + { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B }, \ + { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B }, \ + { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B }, \ +} + + +#endif diff --git a/keyboards/planck/planck.c b/keyboards/planck/planck.c new file mode 100644 index 000000000..f1a76266e --- /dev/null +++ b/keyboards/planck/planck.c @@ -0,0 +1,302 @@ +#include "planck.h" + +__attribute__ ((weak)) +void matrix_init_user(void) {} + +__attribute__ ((weak)) +void matrix_scan_user(void) {} + +__attribute__ ((weak)) +bool process_action_user(keyrecord_t *record) { + return true; +} + +__attribute__ ((weak)) +void led_set_user(uint8_t usb_led) {} + +void matrix_init_kb(void) { +#ifdef BACKLIGHT_ENABLE + backlight_init_ports(); +#endif + + // Turn status LED on + DDRE |= (1<<6); + PORTE |= (1<<6); + + matrix_init_user(); +} + +void matrix_scan_kb(void) { + matrix_scan_user(); +} + +bool process_action_kb(keyrecord_t *record) { + return process_action_user(record); +} + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + + led_set_user(usb_led); +} + +#ifdef BACKLIGHT_ENABLE +#define CHANNEL OCR1C +#define BREATHING_NO_HALT 0 +#define BREATHING_HALT_OFF 1 +#define BREATHING_HALT_ON 2 + +static uint8_t breath_intensity; +static uint8_t breath_speed; +static uint16_t breathing_index; +static uint8_t breathing_halt; + +void backlight_init_ports() +{ + + // Setup PB7 as output and output low. + DDRB |= (1<<7); + PORTB &= ~(1<<7); + + // Use full 16-bit resolution. + ICR1 = 0xFFFF; + + // I could write a wall of text here to explain... but TL;DW + // Go read the ATmega32u4 datasheet. + // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on + + // Pin PB7 = OCR1C (Timer 1, Channel C) + // Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0 + // (i.e. start high, go low when counter matches.) + // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0 + // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1 + + TCCR1A = _BV(COM1C1) | _BV(WGM11); // = 0b00001010; + TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; + + backlight_init(); + breathing_defaults(); +} + +void backlight_set(uint8_t level) +{ + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + + if ( level == 0 ) + { + // Turn off PWM control on PB7, revert to output low. + TCCR1A &= ~(_BV(COM1C1)); + CHANNEL = 0x0; + } + else if ( level == BACKLIGHT_LEVELS ) + { + // Turn on PWM control of PB7 + TCCR1A |= _BV(COM1C1); + // Set the brightness + CHANNEL = 0xFFFF; + } + else + { + // Turn on PWM control of PB7 + TCCR1A |= _BV(COM1C1); + // Set the brightness + CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); + } + breathing_intensity_default(); +} + + +void breathing_enable(void) +{ + if (get_backlight_level() == 0) + { + breathing_index = 0; + } + else + { + // Set breathing_index to be at the midpoint (brightest point) + breathing_index = 0x20 << breath_speed; + } + + breathing_halt = BREATHING_NO_HALT; + + // Enable breathing interrupt + TIMSK1 |= _BV(OCIE1A); +} + +void breathing_pulse(void) +{ + if (get_backlight_level() == 0) + { + breathing_index = 0; + } + else + { + // Set breathing_index to be at the midpoint + 1 (brightest point) + breathing_index = 0x21 << breath_speed; + } + + breathing_halt = BREATHING_HALT_ON; + + // Enable breathing interrupt + TIMSK1 |= _BV(OCIE1A); +} + +void breathing_disable(void) +{ + // Disable breathing interrupt + TIMSK1 &= ~_BV(OCIE1A); + backlight_set(get_backlight_level()); +} + +void breathing_self_disable(void) +{ + if (get_backlight_level() == 0) + { + breathing_halt = BREATHING_HALT_OFF; + } + else + { + breathing_halt = BREATHING_HALT_ON; + } + + //backlight_set(get_backlight_level()); +} + +void breathing_toggle(void) +{ + if (!is_breathing()) + { + if (get_backlight_level() == 0) + { + breathing_index = 0; + } + else + { + // Set breathing_index to be at the midpoint + 1 (brightest point) + breathing_index = 0x21 << breath_speed; + } + + breathing_halt = BREATHING_NO_HALT; + } + + // Toggle breathing interrupt + TIMSK1 ^= _BV(OCIE1A); + + // Restore backlight level + if (!is_breathing()) + { + backlight_set(get_backlight_level()); + } +} + +bool is_breathing(void) +{ + return (TIMSK1 && _BV(OCIE1A)); +} + +void breathing_intensity_default(void) +{ + //breath_intensity = (uint8_t)((uint16_t)100 * (uint16_t)get_backlight_level() / (uint16_t)BACKLIGHT_LEVELS); + breath_intensity = ((BACKLIGHT_LEVELS - get_backlight_level()) * ((BACKLIGHT_LEVELS + 1) / 2)); +} + +void breathing_intensity_set(uint8_t value) +{ + breath_intensity = value; +} + +void breathing_speed_default(void) +{ + breath_speed = 4; +} + +void breathing_speed_set(uint8_t value) +{ + bool is_breathing_now = is_breathing(); + uint8_t old_breath_speed = breath_speed; + + if (is_breathing_now) + { + // Disable breathing interrupt + TIMSK1 &= ~_BV(OCIE1A); + } + + breath_speed = value; + + if (is_breathing_now) + { + // Adjust index to account for new speed + breathing_index = (( (uint8_t)( (breathing_index) >> old_breath_speed ) ) & 0x3F) << breath_speed; + + // Enable breathing interrupt + TIMSK1 |= _BV(OCIE1A); + } + +} + +void breathing_speed_inc(uint8_t value) +{ + if ((uint16_t)(breath_speed - value) > 10 ) + { + breathing_speed_set(0); + } + else + { + breathing_speed_set(breath_speed - value); + } +} + +void breathing_speed_dec(uint8_t value) +{ + if ((uint16_t)(breath_speed + value) > 10 ) + { + breathing_speed_set(10); + } + else + { + breathing_speed_set(breath_speed + value); + } +} + +void breathing_defaults(void) +{ + breathing_intensity_default(); + breathing_speed_default(); + breathing_halt = BREATHING_NO_HALT; +} + +/* Breathing Sleep LED brighness(PWM On period) table + * (64[steps] * 4[duration]) / 64[PWM periods/s] = 4 second breath cycle + * + * http://www.wolframalpha.com/input/?i=%28sin%28+x%2F64*pi%29**8+*+255%2C+x%3D0+to+63 + * (0..63).each {|x| p ((sin(x/64.0*PI)**8)*255).to_i } + */ +static const uint8_t breathing_table[64] PROGMEM = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 4, 6, 10, + 15, 23, 32, 44, 58, 74, 93, 113, 135, 157, 179, 199, 218, 233, 245, 252, +255, 252, 245, 233, 218, 199, 179, 157, 135, 113, 93, 74, 58, 44, 32, 23, + 15, 10, 6, 4, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +}; + +ISR(TIMER1_COMPA_vect) +{ + // CHANNEL = (pgm_read_byte(&breathing_table[ ( (uint8_t)( (breathing_index++) >> breath_speed ) ) & 0x3F ] )) * breath_intensity; + + + uint8_t local_index = ( (uint8_t)( (breathing_index++) >> breath_speed ) ) & 0x3F; + + if (((breathing_halt == BREATHING_HALT_ON) && (local_index == 0x20)) || ((breathing_halt == BREATHING_HALT_OFF) && (local_index == 0x3F))) + { + // Disable breathing interrupt + TIMSK1 &= ~_BV(OCIE1A); + } + + CHANNEL = (uint16_t)(((uint16_t)pgm_read_byte(&breathing_table[local_index]) * 257)) >> breath_intensity; + +} + + + +#endif diff --git a/keyboards/planck/planck.h b/keyboards/planck/planck.h new file mode 100644 index 000000000..0e641c27e --- /dev/null +++ b/keyboards/planck/planck.h @@ -0,0 +1,55 @@ +#ifndef PLANCK_H +#define PLANCK_H + +#include "quantum.h" +#include + +#define PLANCK_MIT( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ + k30, k31, k32, k33, k34, k35, k37, k38, k39, k3a, k3b \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ + { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b } \ +} + +#define PLANCK_GRID( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \ +} + +void matrix_init_user(void); +void matrix_scan_user(void); +bool process_action_user(keyrecord_t *record); + +void led_set_user(uint8_t usb_led); +void backlight_init_ports(void); + +void breathing_enable(void); +void breathing_pulse(void); +void breathing_disable(void); +void breathing_self_disable(void); +void breathing_toggle(void); +bool is_breathing(void); + + +void breathing_defaults(void); +void breathing_intensity_default(void); +void breathing_speed_default(void); +void breathing_speed_set(uint8_t value); +void breathing_speed_inc(uint8_t value); +void breathing_speed_dec(uint8_t value); + +#endif diff --git a/keyboards/preonic/Makefile b/keyboards/preonic/Makefile new file mode 100644 index 000000000..08e9205cb --- /dev/null +++ b/keyboards/preonic/Makefile @@ -0,0 +1,73 @@ + + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= no # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +NKRO_ENABLE ?= no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality +MIDI_ENABLE ?= no # MIDI controls +AUDIO_ENABLE ?= no # Audio output on port C6 +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../Makefile +endif \ No newline at end of file diff --git a/keyboards/preonic/README.md b/keyboards/preonic/README.md new file mode 100644 index 000000000..f99856fdd --- /dev/null +++ b/keyboards/preonic/README.md @@ -0,0 +1,25 @@ +Preonic keyboard firmware +====================== +DIY/Assembled compact ortholinear 50% keyboard by [Ortholinear Keyboards](http://ortholinearkeyboards.com). + +## Quantum MK Firmware + +For the full Quantum feature list, see [the parent README.md](/README.md). + +## Building + +Download or clone the whole firmware and navigate to the keyboards/preonic folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use `make dfu` to program your PCB once you hit the reset button. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default +To build with the default keymap, simply run `make`. + +### Other Keymaps +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap, create a file in the keymaps folder named `.c` and see keymap document (you can find in top README.md) and existent keymap files. + +To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: +``` +$ make KEYMAP=[default|jack|] +``` +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboards/preonic/config.h b/keyboards/preonic/config.h new file mode 100644 index 000000000..e8d0e82fc --- /dev/null +++ b/keyboards/preonic/config.h @@ -0,0 +1,89 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6061 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Ortholinear Keyboards +#define PRODUCT The Preonic Keyboard +#define DESCRIPTION A compact ortholinear keyboard + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 12 + +/* Planck PCB default pin-out */ +#define MATRIX_ROW_PINS { D2, D5, B5, B6, D3 } +#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* ws2812 RGB LED */ +#define ws2812_PORTREG PORTD +#define ws2812_DDRREG DDRD +#define ws2812_pin PD1 +#define RGBLED_NUM 28 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/preonic/keymaps/default/Makefile b/keyboards/preonic/keymaps/default/Makefile new file mode 100644 index 000000000..581e08cd0 --- /dev/null +++ b/keyboards/preonic/keymaps/default/Makefile @@ -0,0 +1,25 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/preonic/keymaps/default/README.md b/keyboards/preonic/keymaps/default/README.md new file mode 100644 index 000000000..e911968dd --- /dev/null +++ b/keyboards/preonic/keymaps/default/README.md @@ -0,0 +1 @@ +# The default Preonic layout - largely based on the Planck's \ No newline at end of file diff --git a/keyboards/preonic/keymaps/default/compiled.hex b/keyboards/preonic/keymaps/default/compiled.hex new file mode 100644 index 000000000..a988ab756 --- /dev/null +++ b/keyboards/preonic/keymaps/default/compiled.hex @@ -0,0 +1,1609 @@ +:100000000C94AF050C94F3050C94F3050C94F305D4 +:100010000C94F3050C94F3050C94F3050C94F30580 +:100020000C94F3050C94F3050C94EA180C94BC1989 +:100030000C941D270C94F3050C94F3050C94F30514 +:100040000C94F3050C94F3050C94F3050C94F30550 +:100050000C94F3050C9485270C94F3050C94F3058C +:100060000C94F3050C94F3050C94F3050C94F30530 +:100070000C94F3050C94F3050C94F3050C94F30520 +:100080000C94D00E0C94F3050C94F3050C94F3052A +:100090000C94F3050C94F3050C94F3050C94F30500 +:1000A0000C94F3050C94F3050C94F305291A4B1AE0 +:1000B000391B4B1A391B901AB31A391B081B1B1B0F +:1000C000051E051E341E341E731E931EE91FE91FF4 +:1000D0009E1EE91F4E1F4E1FB51FBE1FE91FE31FC7 +:1000E0005B1F5B1F5B1F5B1F5B1F5B1F5B1F5B1F40 +:1000F0005B1F5B1F5B1F5B1F5B1F5B1F5B1F5B1F30 +:100100006B1F791F801F871F911F07634236B79BA4 +:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 +:100120005763BD6DEDFD753EF6177231BF000000DF +:10013000803F08000000BE922449123EABAAAA2AC2 +:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD +:1001500000000000BF000000803F00000000000819 +:100160004178D3BB4387D1133D190E3CC3BD4282B6 +:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 +:10018000FFBE01C4FF7F3F000000000035001E00DD +:100190001F0020002100220023002400250026004B +:1001A00027002A002B0014001A0008001500170071 +:1001B0001C0018000C00120013004C002900040061 +:1001C0001600070009000A000B000D000E000F00CA +:1001D00033003400E1001D001B000600190005007B +:1001E0001100100036003700380028000530E0000C +:1001F000E200E30003302C002C00043050005100DA +:1002000052004F0035001E001F0020002100220078 +:10021000230024002500260027002A002B001400BC +:100220001A00090013000A000D000F0018001C003E +:1002300033004C00290004001500160017000700C9 +:100240000B00110008000C0012003400E1001D003A +:100250001B000600190005000E00100036003700D4 +:10026000380028000530E000E200E30003302C00F5 +:100270002C0004305000510052004F0035001E0089 +:100280001F0020002100220023002400250026005A +:1002900027002A002B0034003600370013001C0012 +:1002A00009000A00060015000F004C002900040098 +:1002B0001200080018000C0007000B0017001100C6 +:1002C00016003800E100330014000D000E001B0082 +:1002D000050010001A0019001D0028000530E0007C +:1002E000E200E30003302C002C00043050005100E9 +:1002F00052004F0035021E021F022002210222027C +:10030000230224022502260227022A0035021E02A9 +:100310001F022002210222022302240225022602B9 +:1003200027024C004C003A003B003C003D003E00E0 +:100330003F002D022E022F02300231020100400048 +:1003400041004200430044004500320264020100C3 +:100350000100010001000100010001000100010095 +:1003600001000100AB00AA00A900AE0035001E008C +:100370001F00200021002200230024002500260069 +:1003800027002A0035001E001F0020002100220047 +:10039000230024002500260027004C004C003A00D2 +:1003A0003B003C003D003E003F002D002E002F0092 +:1003B0003000310001004000410042004300440091 +:1003C000450032006400010001000100010001004D +:1003D000010001000100010001000100AB00AA00C2 +:1003E000A900AE00000000000000000000000000B6 +:1003F00000000000000000000000000000000000FD +:1004000000000000000000000000000000000000EC +:1004100000000000000000000000000000000000DC +:1004200000000000000000000000000000000000CC +:1004300000000000000000000000000000000000BC +:1004400000000000000000000000000000000000AC +:10045000000000000000000000000000000000009C +:10046000000000000000000000000000000000008C +:10047000000000000000000000000000000000007C +:10048000000000000000000000000000000000006C +:10049000000000000000000000000000000000005C +:1004A000000000000000000000000000000000004C +:1004B000000000000000000000000000000000003C +:1004C000000000000000000000000000000000002C +:1004D000000000000000000000000000000000001C +:1004E000000000000000000000000000000000000C +:1004F00000000000000000000000000000000000FC +:1005000000000000000000000000000000000000EB +:1005100000000000000000000000000000000000DB +:1005200000000000000000000000000000000000CB +:1005300000000000000000000000000000000000BB +:1005400000000000000000000000000000000000AB +:10055000000000000000000000000000000000009B +:10056000000000000000000000000000000000008B +:10057000000000000000000000000000000000007B +:10058000000000000000000000000000000000006B +:10059000000000000000000000000000000000005B +:1005A000000000000000000000000000000000004B +:1005B000000000000000000000000000000000003B +:1005C000000000000000000000000000000000002B +:1005D000000000000000000000000000000000001B +:1005E000000000000000000000000000000000000B +:1005F00000000000000000000000000000000000FB +:1006000000000000000000000000000000000000EA +:1006100000000000000000000000000000000000DA +:1006200000000000000000000000000000000000CA +:1006300000000000000000000000000000000000BA +:1006400000000000000000000000000000000000AA +:10065000000000000000000000000000000000009A +:10066000000000000000000000000000000000008A +:10067000000000000000000000000000000000007A +:10068000000000000000000000000000000000006A +:10069000000000000000000000000000000000005A +:1006A000000000000000000000000000000000004A +:1006B000000000000000000000000000000000003A +:1006C000000000000000000000000000000000002A +:1006D000000000000000000000000000000000001A +:1006E000000000000000000000000000000000000A +:1006F00000000000000000000000000000000000FA +:1007000000000000000000000000000000000000E9 +:1007100000000000000000000000000000000000D9 +:1007200000000000000000000000000000000000C9 +:1007300000000000000000000000000000000000B9 +:1007400000000000000000000000000000000000A9 +:100750000000000000000000000000000000000099 +:100760000000000000000000000000000000000089 +:100770000000000000000000000000000000000079 +:100780000000000000000000000000000000000069 +:100790000000000000000000000000000000000059 +:1007A0000000000000000000000000000000000049 +:1007B0000000000000000000000000000000000039 +:1007C0000000000000000000000000000000000029 +:1007D0000000000000000000000000000000000019 +:1007E0000000000000000000000000000000000009 +:1007F00000000000000000000000000000000000F9 +:1008000000000000000000000000000000000000E8 +:1008100000000000000000000000000000000000D8 +:1008200000000000000000000000000000000000C8 +:1008300000000000000000000000000000000000B8 +:1008400000000000000000000000000000000000A8 +:100850000000000000000000000000000000000098 +:100860000000000000000000000000000000000088 +:100870000000000000000000000000000000000078 +:100880000000000000000000000000000000000068 +:100890000000000000000000000000000000000058 +:1008A0000000000000000000000000000000000048 +:1008B0000000000000000000000000000000000038 +:1008C0000000000000000000000000000000000028 +:1008D0000000000000000000000000000000000018 +:1008E0000000000000000000000000000000000008 +:1008F00000000000000000000000000000000000F8 +:100900000000000000000000000000003A003B0072 +:100910003C003D003E003F004000410042004300DB +:1009200044004500010000700100010001000100C9 +:10093000010001000100010001004C000100010064 +:1009400001001570167013700A700030013002300B +:100950000100010001001C701B70187019701D70DF +:100960001E700100010001000100010001000100F2 +:10097000010001000100010001000100010001006F +:10098000010001002A0354006800650020005000A7 +:10099000720065006F006E006900630020004B006C +:1009A0006500790062006F00610072006400000061 +:1009B0002C034F007200740068006F006C00690027 +:1009C0006E0065006100720020004B006500790038 +:1009D00062006F0061007200640073000000040395 +:1009E000090409026D00040100A0FA0904000001D5 +:1009F00003010100092111010001224000070581C6 +:100A00000308000A09040100010301020009211181 +:100A1000010001224D000705820308000A090402B3 +:100A20000001030000000921110100012236000726 +:100A300005830308000A09040300010300000009FC +:100A40002111010001223900070584031000011261 +:100A500001100100000008EDFE61600100010200CC +:100A60000105010906A101050719E029E71500257F +:100A7000019508750181020508190129059505757B +:100A80000191029501750391010507190029771558 +:100A9000002501957875018102C005010980A10139 +:100AA000850216010026B7001A01002AB70075104A +:100AB00095018100C0050C0901A101850316010003 +:100AC000269C021A01002A9C02751095018100C023 +:100AD00005010902A1010901A10005091901290562 +:100AE00015002501950575018102950175038101A8 +:100AF0000501093009311581257F950275088106A8 +:100B000009381581257F950175088106050C0A387D +:100B1000021581257F950175088106C0C005010970 +:100B200006A101050719E029E715002501950875BB +:100B300001810295017508810105081901290595B2 +:100B400005750191029501750391010507190029A9 +:100B5000FF150026FF00950675088100C0001124CE +:100B60001FBECFEFDAE0DEBFCDBF04B603FE24C068 +:100B700080912A0490912B04A0912C04B0912D0413 +:100B80008730904BA740B04BB9F410922A041092D2 +:100B90002B0410922C0410922D0414BE84B7877F6E +:100BA00084BF88E10FB6F8948093600010926000D3 +:100BB0000FBEE0E0F8E3099512E0A0E0B1E0E0EB61 +:100BC000F2E602C005900D92AA3CB107D9F714E0F5 +:100BD000AAECB2E001C01D92AA32B107E1F70E946F +:100BE00034160C9456310C940000089581E0089559 +:100BF0000C94F5050C94F605279A2F988FEF9FEF2C +:100C000090938700809386008AE08093800089E13A +:100C1000809381000C948D2C0E94FC056E9A769A2C +:100C20000C94D206282F81110BC080918000877F01 +:100C30008093800010928D0010928C002F98089560 +:100C40002F9880918000886080938000233019F471 +:100C50008FEF9FEF0FC083E090E0821B9109880F18 +:100C6000991F2FEF3FEFA90102C0569547958A952E +:100C7000E2F7CA0190938D0080938C000895CF9382 +:100C8000DF93EC010E942128BE0180E090E0DF911B +:100C9000CF910C9414240F931F93FC01623091F1B7 +:100CA00028F4662359F06130D1F05FC0643009F454 +:100CB00040C0C0F1653009F44CC057C08281882320 +:100CC00009F453C000E010E0980140E064E070E0F7 +:100CD00088EC91E00E944E1281E090E010C0828189 +:100CE000882309F442C000E010E0980140E066E08B +:100CF00070E088E591E00E944E1282E090E00E9450 +:100D00003F0633C08281882381F100E010E0980122 +:100D100040E068E070E088E891E00E944E1284E0D4 +:100D200090E0EDCF8281882311F083E006C083E05C +:100D30000DC08281882349F084E00E94912440E123 +:100D400064E083E00E94030710C084E00E94B224A4 +:100D5000F6CF8281882331F085EE0E94A91C0E9483 +:100D6000E42C03C085EE0E94711D80E090E01F918D +:100D70000F9108950F931F932FEF89EF90E021506B +:100D800080409040E1F700C0000000E010E09801D2 +:100D900040E064E070E088EE91E00E944E121F9106 +:100DA0000F9108950C94BA060F931F9300E010E082 +:100DB000980140E063E070E080E491E00E944E1210 +:100DC0002FEF82E597E0215080409040E1F700C08E +:100DD00000001F910F910C94030E0F931F9300E0DE +:100DE00010E0980140E068E070E080E091E00E944F +:100DF0004E121F910F9108950C94ED0681E0089515 +:100E00000C94FE060895CF92DF92EF92FF920F931B +:100E10001F9301E010E020E030E06801790104C098 +:100E2000CC0CDD1CEE1CFF1C8A95D2F704C0000F11 +:100E3000111F221F331F6A95D2F70C291D292E2955 +:100E40003F29C090E003D090E103E090E203F090EE +:100E5000E303C022D122E222F322842FC016D1065E +:100E6000E206F30641F41F910F91FF90EF90DF909F +:100E7000CF900C9491241F910F91FF90EF90DF90F1 +:100E8000CF900C94B2240C940C0680911A03882302 +:100E900009F448C08091D6029091D702009779F466 +:100EA0000E944F279093D7028093D6028091D80258 +:100EB00090E0009771F48091D90290E00AC00E94FE +:100EC0005B2720910802309109022817390740F367 +:100ED00029C00197880F991F880F991FFC01E652BE +:100EE000FD4F60817181828193810E94360EE09175 +:100EF000D80284E0E89FF0011124E652FD4F6081A2 +:100F00007181828193814FE050E00E94EE118091C7 +:100F1000D80290E001966091D90270E00E940631FB +:100F20008093D8020C94F80510921C030C94030EC5 +:100F300081E080931C030C94FC0608958F929F928D +:100F4000AF92BF92EF92FF920F931F93CF93DF93D5 +:100F5000CDB7DEB7A3970FB6F894DEBF0FBECDBFF7 +:100F60007C01FC0100811181C8010E944D25B8015E +:100F70000E94320C8C01B7010E940007882309F4FB +:100F8000BDC20531F0E71F0741F4F70182818823D4 +:100F900009F458C00E94E512B1C20631F0E71F07FC +:100FA00041F4F7018281882309F44CC00E94EE12BB +:100FB000A5C20731F0E71F0751F4F70182818823AA +:100FC00009F440C00E94E1128111F0CFE3CF083153 +:100FD000F0E71F0739F4F7018281882399F10E9415 +:100FE00098078CC20931F0E71F0739F4F7018281B5 +:100FF000882341F10E94940781C20A31F0E71F075C +:1010000049F4F70182818823E9F080911C03811162 +:10101000F1CFE5CF0B31F0E71F0739F4F7018281FB +:10102000882381F00E94F5120AC00C31F0E71F07F7 +:1010300049F4F7018281882329F00E9400130E945D +:10104000ED065CC280911C03811105C0F70182810D +:101050008111CFC03AC1003E110579F4F7018281B8 +:10106000882309F44DC00E94030E81E080931B0386 +:1010700010921A031092D90241C2023E110559F48E +:10108000F70182818823E1F10E94030E10921B0375 +:1010900010921A0333C2033E110591F4F7018281C5 +:1010A000882371F10E94030E10921B0381E080934C +:1010B0001A031092D8021092D7021092D6021EC2C2 +:1010C0000235110559F4F7018281882309F416C20B +:1010D00080910802909109020A970DC0013511050F +:1010E00079F4F7018281882309F408C2809108020B +:1010F000909109020A969093090280930802FEC11A +:1011000040910C0283E2E7E2F2E0DE0111960190E9 +:101110000D928A95E1F7F701808121E030E02C0FF4 +:101120003D1F280F311DC90120910A0230910B0289 +:10113000FC01E20FF31F6081772767FD7095640F54 +:10114000711D882777FD8095982F0E94282E20E01A +:1011500030E040E451E40E948D2D4B015C01F70129 +:10116000218185E090E0821B9109BC01882777FDF1 +:101170008095982F0E94282E9B01AC01C501B401D7 +:101180000E94252D9B01AC0160E070E080E090E4BE +:101190000E949B2F20E030E04CED50E40E94382F5D +:1011A0004B015C01F70182818823D1F04FE050E0D0 +:1011B000C501B4010E94EE1180911B038823A1F0A8 +:1011C0008091D90224E0829FF0011124E652FD4F64 +:1011D00080829182A282B3828F5F8093D90204C001 +:1011E000C501B4010E94360E0F3F110508F02ECF45 +:1011F00085C18091D50281111FC0043130E71307EA +:1012000009F080C00E94020781E08093D5020E940D +:101210004F279093D4028093D3021092CC02109265 +:10122000CE021092CD021092D0021092CF021092F4 +:10123000D2021092D10262C18091D3029091D40265 +:101240000E945B27883C910570F48091CC02E82FC6 +:10125000F0E0EE0FFF1FE353FD4F118300838F5F1C +:101260008093CC024BC1043180E7180768F4023048 +:1012700090E7190708F050C00115E0E71E0771F06C +:1012800001301047A1F11CC1033320E7120709F414 +:10129000E8C00433104709F4FBC012C1F701828192 +:1012A000882309F412C10E9454200E94030E0E9458 +:1012B000D406FFEF24E33CE0F15020403040E1F75A +:1012C00000C000000E94AA2719C10431F0E71F07DF +:1012D00008F0C3C0023020E71207F0F4011530E730 +:1012E000130709F4F2C00130104709F0E9C0F70113 +:1012F0008281882309F4E9C08091FD038160809395 +:10130000FD03FCC00431F0E71F0708F0A6C002305F +:1013100020E7120708F4ECC0F7018281882309F462 +:10132000D4C00E940E28811102C00E94EA270E94A8 +:10133000262890E090930F0480930E040230F0E78B +:101340001F0721F480910E04816080C0033020E7E4 +:10135000120721F480910E04826078C0043030E7D7 +:10136000130721F480910E04846070C0053080E77B +:10137000180719F480910E0427C0063090E719076A +:1013800021F480910E04806161C00730E0E71E0700 +:1013900021F480910E04806259C00830F0E71F07E5 +:1013A00021F480910E04806451C0093020E71207B7 +:1013B00021F480910E04806849C00A3030E7130799 +:1013C00029F480910E048460886040C00B3080E76F +:1013D000180721F480910E048E7F38C00C3090E7FE +:1013E000190721F480910E048D7F30C00D30E0E7A5 +:1013F0001E0721F480910E048B7F28C00E30F0E789 +:101400001F0719F480910E0420C00F3020E7120747 +:1014100021F480910E048F7E19C0003130E713074C +:1014200021F480910E048F7D11C0013180E71807EF +:1014300021F480910E048F7B09C080910E0402314B +:10144000104711F48F7702C08B7F877F80930E0443 +:1014500080910E040E942A2851C0033390E7190797 +:10146000A1F4F7018281882321F01092CA0282E060 +:1014700016C08091CA02811106C086E20E94A91C92 +:1014800086E20E94711D82E018C004331047C1F447 +:10149000F7018281882331F01092CB0280E20E9412 +:1014A000C01D2CC08091CB02811106C087E20E9432 +:1014B000A91C87E20E94711D80E20E94C71D1EC008 +:1014C00081E08093CA028093CB02C701A3960FB636 +:1014D000F894DEBF0FBECDBFDF91CF911F910F916A +:1014E000FF90EF90BF90AF909F908F900C94FA0573 +:1014F000011530E7130709F0F6CED5CE80E0A396AC +:101500000FB6F894DEBF0FBECDBFDF91CF911F9114 +:101510000F91FF90EF90BF90AF909F908F900895A4 +:101520002CE0729FF00111243CE3839FE00DF11D3C +:101530001124E60FF11DEE0FFF1FE457FE4F8591BA +:1015400094910E94440C811540E5940708F047C02F +:10155000811520E4920708F013C1883E910520F51B +:10156000803E910508F07CC1883A910578F4853A6F +:10157000910508F0A5C08130910509F471C108F406 +:101580002EC18430910508F06BC129C18B3B9105B8 +:1015900008F4A1C0803C910508F421C1FC01EE0FC4 +:1015A000FF1FE45FFF4FE6C0811530E2930758F458 +:1015B000811541E0940708F053C1803F910508F47C +:1015C0000EC190650895811520E3920708F0D5C0FB +:1015D000FC01FF70EE0FFF1FE457FE4FCBC08115DB +:1015E00035E5930708F043C0811544E5940708F0FA +:1015F000DEC0811522E5920708F5811531E59307D4 +:1016000008F0C1C0482F437021E030E002C0220F33 +:10161000331F4A95E2F73C68AC0164E05695479564 +:101620006A95E1F74370342B8F708695869540E27A +:10163000849FC0011124822B932B0895282F269577 +:101640002695AC01437055278115934508F0A0C03D +:1016500080E2289F9001112481E090E002C0880F71 +:10166000991F4A95E2F7822B932B9C6808958F323D +:1016700040E7940790F48F3120E7920708F0A2C06A +:10168000811536E5930708F497C09C013056211563 +:10169000304108F0A4C09F7093C0803320E79207C8 +:1016A00009F497C008F492C0813340E7940709F425 +:1016B00093C08233904709F092C080E093ED089583 +:1016C000853A910509F48EC0863A910509F08DC0DE +:1016D00082E890E40895883A910509F489C0893A2E +:1016E000910509F488C08A3A910509F487C08B3ABC +:1016F000910509F486C08C3A910509F485C08D3AAC +:10170000910509F484C0803B910509F483C08E3AA9 +:10171000910509F482C08F3A910509F481C0813B9B +:10172000910509F480C0823B910509F47FC0833B99 +:10173000910509F47EC0843B910509F47DC0853B89 +:10174000910509F47CC0863B910509F47BC0873B79 +:10175000910509F47AC0883B910509F479C0893B69 +:10176000910509F478C08A3B910509F477C080E0BF +:1017700094E408958591949108959927906C089523 +:101780009F70906A0895982F8827816F906A0895B6 +:1017900090E2299F9001112481E090E002C0880F1F +:1017A000991F4A95E2F7822B932B9A680895982FF8 +:1017B0008827846F906A08958F719927982F8827BA +:1017C000906208958F519047946D089580E091ED57 +:1017D000089580E090ED089580E092ED089580E016 +:1017E00090E0089581E890E4089583E890E40895F6 +:1017F00082EE94E4089589EE94E408958AEE94E4E8 +:10180000089585EB94E4089586EB94E4089587EBBE +:1018100094E408958CEC94E408958DEC94E4089598 +:1018200083E895E408958AE895E4089582E995E4CB +:10183000089584E995E4089581E296E4089583E2A9 +:1018400096E4089584E296E4089585E296E4089586 +:1018500086E296E4089587E296E408958AE296E4A3 +:10186000089508959CE0799FF00111249CE3899FDD +:10187000E00DF11D1124E60FF11DEE0FFF1FE457DF +:10188000FE4F8591949108958238910549F1B0F405 +:101890008133910509F458C048F48932910509F45F +:1018A0004EC08A32910509F454C0089585339105DC +:1018B00009F440C08933910599F00895833E91055C +:1018C00029F138F4803E910591F0823E9105A1F016 +:1018D0000895863E9105F9F0873E910531F108950E +:1018E00020910E0420FD3AC021FD38C0089580915A +:1018F0000E0480FD35C032C080910E0482FF32C0DC +:1019000080910E0484FD30C083EE39C080910E04B6 +:1019100082FD28C0F5CF80910E0483FF27C08091FF +:101920000E0484FD21C087EE2AC080910E0483FD41 +:101930001DC0F5CF80910E0485FD1AC01BC080919B +:101940000E0485FD17C014C080910E0486FD14C0DE +:1019500015C080910E0486FD11C00EC080EE0FC030 +:1019600089E30DC082EE0BC080E009C086EE07C09F +:1019700089E205C085E303C08AE201C081E390E00B +:10198000089508950C94C10CE82FF0E0EA5AFD4F39 +:101990008081E82FEF70F0E082958F7021E030E0D9 +:1019A000A90102C0440F551F8A95E2F740A308958C +:1019B0000F931F93CF93DF93C4E0D0E001E010E0DA +:1019C000FE01EA5AFD4F8081E82FEF70F0E021A17F +:1019D00082958F70A80102C0440F551F8A95E2F7C7 +:1019E000CA01822B81A38C2F0E94C40C219740F73F +:1019F0008BE090E061E070E0FC01E65BFD4F208150 +:101A0000E22FEF70F0E042A122952F70DB0102C0BF +:101A1000AA0FBB1F2A95E2F79D01242B22A3019751 +:101A200058F7DF91CF911F910F9108950F931F9356 +:101A3000CF93DF9385B7806885BF85B7806885BF02 +:101A4000C4E0D0E001E010E0FE01EA5AFD4F8081E1 +:101A5000E82FEF70F0E021A182958F70A80102C0FD +:101A6000440F551F8A95E2F7CA01822B81A38C2F60 +:101A70000E94C40C219740F78BE090E061E070E099 +:101A8000FC01E65BFD4F2081E22FEF70F0E042A108 +:101A900022952F70DB0102C0AA0FBB1F2A95E2F727 +:101AA0009D01242B22A3019758F7DF91CF911F911D +:101AB0000F910C944307EF92FF920F931F93CF93D4 +:101AC000DF9307E213E0C4E0EE24E394F12CD5E0C9 +:101AD0008C2F0E94C40C8BE090E040E050E0FC01B1 +:101AE000E65BFD4F6081E62FEF70F0E020A130E073 +:101AF00062956F7002C0359527956A95E2F720FDD3 +:101B000009C09701082E02C0220F331F0A94E2F782 +:101B1000422B532B019718F7F801929182918F0174 +:101B20008417950721F051834083D0930D028C2FA9 +:101B30000E94C40CC15060F680910D0287FD1FC049 +:101B4000815080930D028F3F39F08FE99FE001971C +:101B5000F1F700C0000013C080E090E0FC01E95DF7 +:101B6000FC4FDC01A35EBC4F18962D913C91199758 +:101B7000318720870297863FEFEF9E0779F70E9413 +:101B8000450781E0DF91CF911F910F91FF90EF907A +:101B90000895E82FF0E0EE0FFF1FE95DFC4F808114 +:101BA0009181089508950F931F93CF9301E313E05C +:101BB000C0E0F801929182918F010E94C826C80F5F +:101BC000F3E007321F07A9F78C2FCF911F910F91D8 +:101BD00008950E940E28811102C00E94EA270E94E7 +:101BE0003828809314043E9A809171008D7F8093F1 +:101BF000710082E0809390008AE18093910081E0FF +:101C000080933303089580913303811102C00E94B1 +:101C1000E90D1092830310928203809171008D7FF1 +:101C200080937100809190008F7380939000109248 +:101C300045031092440310927C0310927D0310928E +:101C40007E0310927F0310927B0310927A03EAE5E1 +:101C5000F3E0AAE4B3E011921192119211921D9255 +:101C60001D9283E0EA37F807B1F70895CF92DF922B +:101C7000EF92FF920F931F93CF93DF932091440332 +:101C8000222309F484C06B017C018091330381110C +:101C900002C00E94E90D0AE713E0C7E0D0E0A70107 +:101CA0009601F80192918291729162918F010E9446 +:101CB000892D811131C0FE01EE0FFF1FEE0FFF1FB6 +:101CC000E65AFC4F1082118212821382DE01AA0FA3 +:101CD000BB1FA65BBC4F11961C921E92C730D1054C +:101CE000E9F0219644815581668177814083518353 +:101CF00062837383148215821682178212968D91E5 +:101D00009C91139711969C938E9313961C921E92FE +:101D1000129734961296E2CF219708F680918203AB +:101D200090918303019797FD05C09093830380935F +:101D3000820304C010928303109282038091820375 +:101D400090918303209180033091810328173907F4 +:101D500024F01092810310928003892BC1F48091AA +:101D600071008D7F80937100809190008F738093BC +:101D7000900010927C0310927D0310927E031092CB +:101D80007F0310927B0310927A0310924403DF9139 +:101D9000CF911F910F91FF90EF90DF90CF9008951A +:101DA0001F920F920FB60F9211244F925F926F9273 +:101DB0007F928F929F92AF92BF92CF92DF92EF92DB +:101DC000FF922F933F934F935F936F937F938F93E4 +:101DD0009F93AF93BF93CF93DF93EF93FF93809144 +:101DE0004403882309F49BC1C0918203D0918303EB +:101DF0001C161D060CF093C140903403509035031F +:101E0000609036037090370320E030E0A901C301F1 +:101E1000B2010E94342F18160CF065C0C130D105F4 +:101E200009F452C08091800390918103BE010E9409 +:101E300006317C0190938103809380038090460358 +:101E400090904703A0904803B090490320E030E011 +:101E500040E85FE3C501B4010E94252D609346036D +:101E6000709347038093480390934903F701EE0F63 +:101E7000FF1FEE0FFF1FE65AFC4FA3019201608186 +:101E80007181828193810E948D2D20E030E040E0BD +:101E90005EE30E94382F9B01AC01C501B4010E9492 +:101EA000342F18168CF4C7010196BE010E9406312A +:101EB000909381038093800310924603109247030E +:101EC0001092480310924903E0918003F09181033E +:101ED000EE0FFF1FEE0FFF1FE65AFC4F608171816E +:101EE00082819381D0C0C0907C03D0907D03E0902C +:101EF0007E03F0907F0320E030E0A901C701B60126 +:101F00000E94892D2197882309F4A2C0FE01EE0FBB +:101F1000FF1FEE0FFF1FE65AFC4F80809180A280CA +:101F2000B380A5019401C701B6010E94892D87FFE6 +:101F300031C0A501940160E070E08CED93EC0E944B +:101F40008D2D20E030E040E451E40E948D2D20E012 +:101F500030E040E05FE30E94382F9B01AC0160E07D +:101F600070E080E090E40E949B2F9B01AC01C501D2 +:101F7000B4010E94382F9B01AC01C701B6010E9439 +:101F8000892D87FF07C0A701960160E070E08CED06 +:101F900093E439C0A5019401C701B6010E94342F12 +:101FA00018160CF055C0A501940160E070E08CEDAE +:101FB00093E40E948D2D20E030E040E451E40E9443 +:101FC0008D2D20E030E040E05FE30E94382F9B0140 +:101FD000AC0160E070E080E090E40E949B2F9B01E8 +:101FE000AC01C501B4010E94382F9B01AC01C701AF +:101FF000B6010E94342F18165CF5A701960160E027 +:1020000070E08CED93EC0E948D2D20E030E040E4F8 +:1020100051E40E948D2D20E030E040E05FE30E941B +:10202000382F9B01AC0160E070E080E090E40E94FA +:102030009B2F9B01AC01C701B6010E94382F609312 +:102040007C0370937D0380937E0390937F0313C082 +:10205000FE01EE0FFF1FEE0FFF1FE65AFC4F8081BF +:102060009181A281B38180937C0390937D03A0939F +:102070007E03B0937F0360917C0370917D03809118 +:102080007E0390917F0320913103309132032F3FE3 +:102090004FEF340731F02F5F3F4F309332032093DF +:1020A00031030E940B136B017C0120E034E244EF0A +:1020B00051E40E94892D87FF08C086EFC82E88E270 +:1020C000D82E84EFE82E81E4F82E20E030E040E0C6 +:1020D00051E4C701B6010E94382F9B01AC0160E0BA +:1020E00074E284E79BE40E948D2D6B017C010E94C9 +:1020F000FA2D709397006093960020910E02309114 +:102100000F024091100250911102C701B6010E94C6 +:10211000382F0E94FA2D7093990060939800809157 +:102120004503882309F433C1C0904003D090410394 +:10213000E0904203F090430320E030E0A901C701A2 +:10214000B6010E94342F1816D4F580913103909176 +:1021500032038F3F2FEF920729F0019690933203BD +:1021600080933103C701B6010E940B1320E030E0D9 +:1021700040E051E40E94382F9B01AC0160E074E222 +:1021800084E79BE40E948D2D6B017C010E94FA2D57 +:10219000709397006093960020910E0230910F0289 +:1021A0004091100250911102C701B6010E94382FD0 +:1021B0000E94FA2D709399006093980008C01092C5 +:1021C00097001092960010929900109298006091DA +:1021D0003A0370913B036F5F7F4F70933B036093B3 +:1021E0003A03209196003091970080E090E0232BF5 +:1021F000F1F0C0919600D09197000E94262E6B01BD +:102200007C01BE0180E090E00E94262E9B01AC0183 +:1022100060913C0370913D0380913E0390913F0398 +:102220000E948D2D20E03FEF4FE757E410C00E9441 +:10223000262E6B017C0120E030EE4FEF54E46091DC +:102240003C0370913D0380913E0390913F030E94B7 +:10225000382F9B01AC01C701B6010E94342F87FDC6 +:1022600096C0809138038F5F8093380390E020916F +:1022700010043091110482179307A0F080911B0481 +:10228000882319F0109238030DC0809171008D7F62 +:1022900080937100809190008F73809390001092D2 +:1022A00045037DC080913903C0913803811128C056 +:1022B000C0901504D0901604E0901704F090180414 +:1022C00020E030E0A901C701B6010E94342F1816A2 +:1022D000BCF481E0809339031092400310924103D3 +:1022E0001092420310924303C0923C03D0923D03EC +:1022F000E0923E03F0923F03C150C093380343C0C5 +:10230000109239031092320310923103E0911204BB +:10231000F091130448E0C49FE00DF11D1124808169 +:102320009181A281B3818093400390934103A09354 +:102330004203B093430320E030E040E85EE3648171 +:102340007581868197810E94382F6B017C01809175 +:102350001202682F70E080E090E00E94262E20E0BC +:1023600030E048EC52E40E948D2D9B01AC01C70186 +:10237000B6010E94382F60933C0370933D03809315 +:102380003E0390933F0310923B0310923A038091D7 +:10239000140480FD04C01092450310924403FF9181 +:1023A000EF91DF91CF91BF91AF919F918F917F91ED +:1023B0006F915F914F913F912F91FF90EF90DF9040 +:1023C000CF90BF90AF909F908F907F906F905F90D5 +:1023D0004F900F900FBE0F901F901895CF92DF92E5 +:1023E000EF92FF92CF93DF936B017C01EA01809122 +:1023F0003303811102C00E94E90D8091140480FF13 +:1024000046C0809182039091830308970CF03FC0EF +:10241000809171008D7F80937100809145038111BF +:102420000E94030E81E080934403109232031092C5 +:10243000310320E030E0A901C701B6010E94342F2A +:102440001816DCF48091820390918303FC01EE0F57 +:10245000FF1FEE0FFF1FE65AFC4FC082D182E282BF +:10246000F382FC01EE0FFF1FE65BFC4FD183C083BC +:102470000196909383038093820380917100826020 +:102480008093710080919000806880939000DF912C +:10249000CF91FF90EF90DF90CF9008958F929F9211 +:1024A000AF92BF92CF92DF92EF92FF920F931F9362 +:1024B000CF93DF93EC017B01D42E48015901809129 +:1024C0003303811102C00E94E90D8091140480FF42 +:1024D0006BC0809171008D7F809371008091440367 +:1024E00081110E94030E81E080934503D093130471 +:1024F000C0931204F0921104E0921004D0921B04D5 +:102500008092150490921604A0921704B0921804B9 +:102510001092460310924703109248031092490309 +:102520001092380388819981AA81BB8180934003EE +:1025300090934103A0934203B093430320E030E023 +:1025400040E85EE36C817D818E819F810E94382FFF +:102550006B017C0180911202682F70E080E090E0B6 +:102560000E94262E20E030E048EC52E40E948D2D9F +:102570009B01AC01C701B6010E94382F60933C0358 +:1025800070933D0380933E0390933F0310923B036F +:1025900010923A0380917100826080937100809163 +:1025A0009000806880939000DF91CF911F910F91F0 +:1025B000FF90EF90DF90CF90BF90AF909F908F9063 +:1025C00008958091140481700895809114048160AD +:1025D000809314040E943C280C949D07809114045D +:1025E0008E7F809314040C943C288091840390E0A7 +:1025F000019666E070E00E9406318093840308959E +:102600008091840390E0019766E070E00E940631BB +:102610008093840308958F929F92AF92BF92CF923E +:10262000DF92EF92FF920F931F93CF93DF936B0193 +:102630007C01C0913103D0913203BE0180E090E073 +:102640000E94262E4B015C01A701960160E070E01C +:102650008CE594E40E948D2D9B01AC01C501B40171 +:102660000E94382F0E94FA2D20918403233009F410 +:1026700073C028F4222351F02130E9F02CC124301A +:1026800009F4A0C0253009F4E0C025C180E090E045 +:10269000A0E0BFE380930E0290930F02A09310027C +:1026A000B093110210923403109235031092360346 +:1026B0001092370310C11092340310923503109218 +:1026C0003603109237036431710540F46A307105A6 +:1026D00060F520E030E040E85EE32BC0693C710526 +:1026E00008F0AAC080E090E00E94262E20E030E0B2 +:1026F00040EA51E40E94242D20E030E044E353E41A +:102700000E948D2D9B01AC010E94382F20E030E00B +:1027100040E05EE30E94382F9B01AC0160E070E076 +:1027200080E09EE30E94242D44C020E030E040E0A1 +:102730005FE3C701B6010E94382F6B017C0180E086 +:1027400090E0A0E0BEE380930E0290930F02A0936E +:102750001002B0931102BFC01092340310923503DF +:1027600010923603109237034AE0469F9001479F2C +:10277000300D1124C90168EB7BE00E94F230BC01EE +:102780006C5D754077FF03C071956195710988276D +:1027900077FD8095982F0E94282E2EE333EC4EE291 +:1027A00059E30E94382F20E030E040EC5EE30E94C5 +:1027B000252D60930E0270930F0280931002909368 +:1027C000110289C01092340310923503109236031F +:1027D00010923703CE0183709927892BE1F0BE0157 +:1027E0006170772780E090E00E94262E20E030E0A4 +:1027F00040E05EE30E94382F20E030E040E45FE3F9 +:102800000E94252D60930E0270930F028093100298 +:10281000909311020CC080E090E0A0E0BFE38093B1 +:102820000E0290930F02A0931002B0931102C77092 +:10283000DD27CD2B09F04FC010920E0210920F022F +:10284000109210021092110246C01092340310929E +:102850003503109236031092370300E010E020E0B9 +:102860003FE300930E0210930F0220931002309367 +:1028700011026739710578F180E090E00E94262E00 +:1028800020E030E047E153E40E94242D20E030E0D6 +:102890004AE754E40E948D2D20E030E048E452E401 +:1028A0000E94382F20E030E040EA51E40E946A2E76 +:1028B0000E94F52D660F771F660F771FFB01E55A03 +:1028C000FD4F2081318142815381C701B6010E94B1 +:1028D000382F6B017C01C701B601DF91CF911F91A9 +:1028E0000F91FF90EF90DF90CF90BF90AF909F90AF +:1028F0008F900895809195030895CF93DF9300D032 +:102900001F92CDB7DEB79C0180912004843019F569 +:1029100093E099833B832A839093E9008FEF909112 +:10292000E800815095FD06C095ED9A95F1F70000FD +:102930008111F5CF8091E80085FF0DC040E050E0A7 +:1029400063E070E0CE0101960E94DA168091E80003 +:102950008E778093E8000F900F900F90DF91CF91CA +:102960000895CF93DF9300D01F92CDB7DEB72091AB +:102970002004243021F522E029839B838A8383E08D +:102980008093E9008FEF9091E800815095FD06C09B +:1029900095ED9A95F1F700008111F5CF8091E8004F +:1029A00085FF0DC040E050E063E070E0CE0101968D +:1029B0000E94DA168091E8008E778093E8000F90ED +:1029C0000F900F90DF91CF91089520912004243033 +:1029D000F1F422E02093E9002FEF3091E80021503C +:1029E00035FD06C035ED3A95F1F700002111F5CF20 +:1029F0002091E80025FF0BC040E050E065E070E06A +:102A00000E94DA168091E8008E778093E80008959E +:102A1000CF93DF93EC0190912004943009F046C0ED +:102A200080911D028823D9F080911E028823B9F07D +:102A30009093E9008FEF9091E800815095FD06C0DA +:102A400095E19A95F1F700008111F5CF8091E800AA +:102A500085FF2CC040E050E060E170E017C081E0ED +:102A60008093E9008FEF9091E800815095FD06C0BA +:102A700095ED9A95F1F700008111F5CF8091E8006E +:102A800085FF14C040E050E068E070E0CE010E9495 +:102A9000DA168091E8008E778093E80080E1FE01ED +:102AA000A5E8B3E001900D928A95E1F7DF91CF910F +:102AB000089580911F04811109C00E946F180E941F +:102AC000CC188091E20084608093E2000895109217 +:102AD0001F040895089508950C94122742E061ECB4 +:102AE00081E00E94E91742E061EC82E00E94E91770 +:102AF00042E061EC83E00E94E91742E161EC84E08E +:102B00000C94E91780912204833009F455C030F405 +:102B1000813071F0823009F48EC008958A3009F452 +:102B20007AC08B3009F460C0893009F09CC020C0A5 +:102B300080912104813A09F096C08091E800877F56 +:102B40008093E8008091250490912604892B21F43C +:102B500060E185E893E003C060E080E090E070E031 +:102B60000E9425178091E8008B778093E8000895F4 +:102B700080912104813209F076C0809125049091E2 +:102B80002604009719F0039709F06DC08091E800C2 +:102B9000877F8093E8008091E80082FD05C08091E6 +:102BA00020048111F8CF5FC08091F10080939503DC +:102BB0008091E8008B7753C080912104813A09F01D +:102BC00052C08091250490912604892B09F04BC0B6 +:102BD0008091E800877F8093E8008091E80080FF83 +:102BE000FCCF80911D0236C0809121048132D9F53D +:102BF0008091250490912604892BA9F58091E80005 +:102C0000877F8093E8000E941E18809123048093A0 +:102C10001D020C94542080912104813221F5809171 +:102C2000E800877F8093E8000E941E1880912404AA +:102C300080939603089580912104813AA1F48091B4 +:102C4000E800877F8093E8008091E80080FFFCCF58 +:102C5000809196038093F1008091E8008E778093B5 +:102C6000E8000C941E18089584B7877F84BF88E11C +:102C70000FB6F89480936000109260000FBE80E859 +:102C800080936100109261000E94C11B0E946F1826 +:102C90000E94CC188091E20084608093E2007894D6 +:102CA0000E94521B0E94C31B83E192E00E946D1B95 +:102CB00080912004853069F40E94D42680911E04FE +:102CC0008823B1F30E940127882391F30E94C41640 +:102CD000EFCF0E94CB1BECCF292F332723303105B8 +:102CE000C9F064F42130310581F02230310509F05A +:102CF00043C08DE690E022EE39E042C0213231053A +:102D0000F1F02232310541F137C082E190E02FE449 +:102D10003AE036C099278130910541F08230910523 +:102D200041F0892B49F5EEEDF9E005C0E0EBF9E063 +:102D300002C0E4E8F9E0849190E09F0121C0643092 +:102D4000D8F4E62FF0E0EE0FFF1FE954FD4F20818D +:102D5000318189E090E014C0643070F470E0FB01D0 +:102D6000EE0FFF1FE155FD4F20813181FB01E5553D +:102D7000FD4F808190E004C080E090E020E030E0F2 +:102D8000FA0131832083089580E189BD82E189BD04 +:102D900009B400FEFDCF8091D8008F7D8093D800CC +:102DA0008091E00082608093E0008091E00081FDEE +:102DB000FCCF0895CF92DF92EF92FF920F931F9373 +:102DC000CF93DF93EC018B016A010E943D188111C2 +:102DD00033C0C114D10439F0F60180819181081B00 +:102DE000190BC80FD91FE12CF12C0115110519F190 +:102DF0008091E80085FD16C08091E8008E77809371 +:102E0000E800C114D10449F0F60180819181E80EF7 +:102E1000F91EF182E08285E00FC00E943D188823F0 +:102E200021F30AC089918093F10001501109FFEF4D +:102E3000EF1AFF0ADACF80E0DF91CF911F910F9157 +:102E4000FF90EF90DF90CF9008952091270430916C +:102E500028042617370748F06115710539F42091C9 +:102E6000E8002E772093E80001C0B90140E0611529 +:102E70007105A9F120912004222309F443C02530D3 +:102E800009F442C02091E80023FD40C02091E800F1 +:102E900022FD32C02091E80020FFE9CF4091F300ED +:102EA0002091F20030E0342BFC01CF016115710557 +:102EB00059F02830310540F481918093F100615040 +:102EC00071092F5F3F4FF1CF41E02830310509F004 +:102ED00040E02091E8002E772093E800C8CF411110 +:102EE000C9CF0AC080912004882361F0853061F049 +:102EF0008091E80083FD0AC08091E80082FFF2CF54 +:102F000080E0089582E0089583E0089581E00895C7 +:102F100020912704309128042617370748F06115BF +:102F2000710539F42091E8002E772093E80001C064 +:102F3000B901FC0120E06115710591F18091200437 +:102F4000882309F440C0853009F43FC08091E8002F +:102F500083FD3DC08091E80082FD2FC08091E80094 +:102F600080FFE9CF2091F3008091F20090E0922B56 +:102F70006115710559F08830910540F42491209332 +:102F8000F1003196615071090196F2CF21E0089766 +:102F900009F020E08091E8008E778093E800CBCFA5 +:102FA0002111CCCF0AC080912004882361F08530A4 +:102FB00061F08091E80083FD0AC08091E80082FF03 +:102FC000F2CF80E0089582E0089583E0089581E0E3 +:102FD0000895982F973058F59093E900981739F095 +:102FE0007091EC002091ED005091F00003C0242F6F +:102FF000762F50E021FF19C03091EB003E7F3093D7 +:10300000EB003091ED003D7F3093ED003091EB000F +:1030100031603093EB007093EC002093ED005093FF +:10302000F0002091EE0027FF07C09F5FD3CF8F7085 +:103030008093E90081E0089580E008958091210463 +:1030400087FF11C08091E80082FD05C080912004B7 +:103050008111F8CF11C08091E8008B770BC080916F +:103060002004882349F08091E80080FFF8CF809108 +:10307000E8008E778093E80008952091E400309175 +:10308000E50095E64091EC00842F817040FF22C05E +:103090008091E80080FD1CC080912004882391F07D +:1030A000853091F08091EB0085FD10C04091E400E7 +:1030B0005091E5004217530729F39A01915011F7F7 +:1030C00084E0089582E0089583E0089581E0089502 +:1030D00080E008954091E80042FFDECF08950E940D +:1030E000DD180E94E518E0EEF0E0808181608083C9 +:1030F000E8EDF0E080818F77808319BCA7EDB0E028 +:103100008C918E7F8C9380818F7E808310921F04A0 +:1031100008950F931F93CF93DF930E94DD180E94B1 +:10312000E518C8EDD0E088818F7788838881806832 +:10313000888388818F7D888319BC10922004109227 +:103140001C0410921E0410921D0400EE10E0F80101 +:1031500080818B7F808388818160888342E060E00A +:1031600080E00E94E917E1EEF0E080818E7F8083AD +:10317000E2EEF0E0808181608083808188608083DE +:10318000F80180818E7F8083888180618883DF91D0 +:10319000CF911F910F910895E8EDF0E080818F7E2F +:1031A0008083E7EDF0E080818160808384E082BFEE +:1031B00081E080931F040C948918E8EDF0E0808191 +:1031C0008E7F80831092E20008951092DA001092B0 +:1031D000E10008951F920F920FB60F9211242F93C2 +:1031E0003F934F935F936F937F938F939F93AF938F +:1031F000BF93EF93FF938091E10082FF0BC080911A +:10320000E20082FF07C08091E1008B7F8093E100A4 +:103210000E94511B8091DA0080FF1FC08091D8006E +:1032200080FF1BC08091DA008E7F8093DA0080914E +:10323000D90080FF0DC080E189BD82E189BD09B45C +:1032400000FEFDCF81E0809320040E94591505C047 +:1032500019BC109220040E9467158091E10080FF44 +:1032600019C08091E20080FF15C08091E2008E7F3E +:103270008093E2008091E20080618093E20080917F +:10328000D80080628093D80019BC85E08093200428 +:103290000E946B158091E10084FF30C08091E200B4 +:1032A00084FF2CC080E189BD82E189BD09B400FEA4 +:1032B000FDCF8091D8008F7D8093D8008091E10070 +:1032C0008F7E8093E1008091E2008F7E8093E20008 +:1032D0008091E20081608093E20080911C04882349 +:1032E00011F084E007C08091E30087FD02C081E017 +:1032F00001C083E0809320040E946C158091E1005E +:1033000083FF29C08091E20083FF25C08091E10006 +:10331000877F8093E10082E08093200410921C0458 +:103320008091E1008E7F8093E1008091E2008E7FAA +:103330008093E2008091E20080618093E20042E0AD +:1033400060E080E00E94E9178091F000886080933F +:10335000F0000E946A15FF91EF91BF91AF919F918C +:103360008F917F916F915F914F913F912F910F902E +:103370000FBE0F901F9018951F920F920FB60F92CD +:1033800011242F933F934F935F936F937F938F936A +:103390009F93AF93BF93CF93DF93EF93FF93C0912E +:1033A000E900CF708091EC00D82FD17080FDD0E87B +:1033B0001092E9008091F000877F8093F00078946C +:1033C0000E94001A1092E9008091F00088608093BA +:1033D000F000CD2BCF70C093E900FF91EF91DF910A +:1033E000CF91BF91AF919F918F917F916F915F919D +:1033F0004F913F912F910F900FBE0F901F901895F6 +:103400001F93CF93DF93CDB7DEB7AA970FB6F8948B +:10341000DEBF0FBECDBFE1E2F4E088E08E0F9091F9 +:10342000F10091938E13FBCF0E9482158091E800EA +:1034300083FF1FC18091210490912204492F50E005 +:103440004A30510508F015C1FA01EA5AFF4F0C94B1 +:103450001A31803881F0823809F00BC1809125043F +:103460008F708093E9008091EB0085FB882780F9BD +:103470001092E90006C080911D0490911E049111E4 +:1034800082609091E800977F9093E8008093F1002C +:103490001092F100C8C0282F2D7F09F0EAC08823C0 +:1034A00019F0823061F0E5C080912304813009F089 +:1034B000E0C0933009F080E080931E042BC080911F +:1034C0002304811127C0809125048F7009F4D1C095 +:1034D0008093E9002091EB0020FF1CC0933021F481 +:1034E0008091EB00806214C09091EB00906190930A +:1034F000EB0021E030E0A90102C0440F551F8A957E +:10350000E2F74093EA001092EA008091EB008860B5 +:103510008093EB001092E9008091E800877F86C0DD +:103520008111A7C0109123041F778091E300807858 +:10353000812B8093E3008091E800877F8093E800EF +:103540000E941E188091E80080FFFCCF8091E3006C +:1035500080688093E300111102C082E001C083E023 +:103560008093200486C08058823008F082C0809109 +:103570002304909124048C3D53E0950779F583E072 +:103580008A838AE289834FB7F894DE01139620E09C +:103590003EE051E2E32FF0E050935700E49120FF2A +:1035A00003C0E295EF703F5FEF708E2F90E0EA303E +:1035B00010F0C79601C0C0968D939D932F5F243164 +:1035C00049F74FBF8091E800877F8093E8006AE267 +:1035D00070E0CE0101960E94251714C0AE014F5F26 +:1035E0005F4F609125040E946C16BC01009709F49E +:1035F00040C09091E800977F9093E80089819A817C +:103600000E9488178091E8008B778093E80031C092 +:10361000803879F58091E800877F8093E800809179 +:103620001C048093F1008091E8008E778093E8007D +:103630000E941E181EC081111CC09091230492305C +:10364000C0F48091E800877F8093E80090931C0489 +:103650000E941E1880911C04811106C08091E30015 +:1036600087FD02C081E001C084E0809320040E94B5 +:103670006E158091E80083FF0AC08091E800877F83 +:103680008093E8008091EB0080628093EB00AA9623 +:103690000FB6F894DEBF0FBECDBFDF91CF911F9163 +:1036A00008950895CF93809120048823A1F0C091BC +:1036B000E900CF709091EC00892F817090FD80E837 +:1036C000C82B1092E9008091E80083FD0E94001A47 +:1036D000CF70C093E900CF91089590939C0380939D +:1036E0009B030895E0919B03F0919C03309721F098 +:1036F0000190F081E02D099480E00895E0919B0312 +:10370000F0919C03309721F00280F381E02D099421 +:103710000895E0919B03F0919C03309721F0048081 +:10372000F581E02D099408952091990330919A0331 +:103730008217930771F090939A0380939903E09115 +:103740009B03F0919C03309721F00680F781E02DD8 +:103750000994089520919703309198038217930755 +:1037600071F09093980380939703E0919B03F091FD +:103770009C03309721F00084F185E02D0994089591 +:1037800008950C94C01B0E9446270E94160D0E94AB +:10379000CC270C948D2C5F926F927F928F929F9288 +:1037A000AF92BF92CF92DF92EF92FF920F931F934F +:1037B000CF93DF9300D000D01F92CDB7DEB70E9429 +:1037C0005B0D98EAC92E93E0D92E04E010E0AA24FC +:1037D000A394B12C502E802F0E94C90D4C01F601EC +:1037E000729062906F016826792661147104A1F4C9 +:1037F0000150110978F78FEF89838A831B820E9419 +:103800004F278160782F9D838C8349815A816B81FA +:103810008D810E947B1C38C08091FD0381FD0E9438 +:10382000D20D2BE030E07501022E02C0EE0CFF1C21 +:103830000A94E2F7C70186219721892B09F1298390 +:103840005A828E209F2091E0892809F490E09B8382 +:103850000E944F278160782F9D838C8349815A81F4 +:103860006B818D810E947B1C000F111FF801E256B5 +:10387000FC4F80819181E826F926F182E08204C024 +:103880002150310980F6B4CF0E94BB2910919D03CD +:103890000E94721B1817D1F00E94721B80939D0327 +:1038A0000F900F900F900F900F90DF91CF911F917D +:1038B0000F91FF90EF90DF90CF90BF90AF909F90CF +:1038C0008F907F906F905F900C94C20C0F900F9030 +:1038D0000F900F900F90DF91CF911F910F91FF905C +:1038E000EF90DF90CF90BF90AF909F908F907F90A0 +:1038F0006F905F900895CF93DF93CDB7DEB72B978E +:103900000FB6F894DEBF0FBECDBF4F8358876987CF +:103910007A878B87DE01119686E0FD0111928A95E8 +:10392000E9F785E0FE01379601900D928A95E1F75F +:1039300049815A816B817C818D819E810E94F22216 +:103940002B960FB6F894DEBF0FBECDBFDF91CF919F +:103950000895CF93882309F4C2C0C82F823859F440 +:103960000E94721B81FDBBC089E30E94CC250E948E +:10397000992689E30CC0833879F40E94721B80FD7C +:10398000AEC083E50E94CC250E94992683E50E9463 +:103990000E26CF910C949926843859F40E94721BFC +:1039A00082FD9DC087E40E94CC250E94992687E471 +:1039B000EECF8CEF8C0F813A48F48C2F0E94F62BBF +:1039C00081118DC08C2F0E94CC25E3CF80E28C0F1B +:1039D000883048F4C77081E001C0880FCA95EAF7C3 +:1039E0000E945226D6CF8BE58C0F833078F4C53AEF +:1039F00029F0C63A31F083E890E005C081E890E014 +:103A000002C082E890E0CF910C94941B88E58C0F63 +:103A1000833108F064C0C83A39F1C93A41F1CA3A71 +:103A200049F1CB3A51F1CC3A59F1CD3A61F1C03B71 +:103A300069F1CE3A71F1CF3A79F1C13B81F1C23BE4 +:103A400089F1C33B91F1C43B99F1C53BA1F1C63B60 +:103A5000A9F1C73BB1F1C83BB9F1C93BC1F1CA3BC0 +:103A6000C9F180E090E038C082EE90E035C089EE88 +:103A700090E032C08AEE90E02FC085EB90E02CC041 +:103A800086EB90E029C087EB90E026C08CEC90E0BC +:103A900023C08DEC90E020C083E891E01DC08AE84F +:103AA00091E01AC082E991E017C084E991E014C066 +:103AB00081E292E011C083E292E00EC084E292E0E3 +:103AC0000BC085E292E008C086E292E005C087E282 +:103AD00092E002C08AE292E0CF910C94AA1BCF91AF +:103AE0000895882309F44BC0823859F40E94721B50 +:103AF00081FF45C089E30E94CC250E94992689E375 +:103B00000CC0833871F40E94721B80FF38C083E5BB +:103B10000E94CC250E94992683E50E940E260C94D3 +:103B20009926843859F40E94721B82FF28C087E4CA +:103B30000E94CC250E94992687E4EFCF9CEF980F36 +:103B4000913A58F390E2980F983050F4877091E0D2 +:103B500001C0990F8A95EAF7892F0E945826DFCF76 +:103B60009BE5980F933020F480E090E00C94941B38 +:103B7000885A833120F480E090E00C94AA1B0895C9 +:103B8000882321F00E9452260C94992608958823B8 +:103B900021F00E9458260C94992608957F928F92C6 +:103BA0009F92AF92BF92CF92DF92EF92FF920F93CC +:103BB0001F93CF93DF931F92CDB7DEB77C01C62E44 +:103BC000772EFC01058102950F70128111110E9460 +:103BD0006F260E94C525882379F0112369F080E2C1 +:103BE0008C0D883048F082E00E94AE250E94C525E9 +:103BF00091E0D82ED92601C0D12CE72DE295EF70A7 +:103C0000F0E0E05AFF4F0C941A31872D807F072D8A +:103C10000F70882311F00295007F112389F0002393 +:103C200009F499C180E28C0D883020F4802F0E9425 +:103C3000522603C0802F0E9462260E9499268BC1C3 +:103C40008C2D0E94711D002309F4C3C180E28C0DEC +:103C5000883020F4802F0E94582603C0802F0E94B5 +:103C600068260E949926B5C1872D807F972D9F7069 +:103C7000803211F4892F03C0892F8295807FCC2058 +:103C800021F0F1E0CF16A1F01DC0112339F000237F +:103C900019F1013009F50E9482269BC1002319F019 +:103CA000013009F496C189830E948526898110C15B +:103CB000112321F0063008F08CC10EC0053008F049 +:103CC00088C106C1112359F0002331F0F701958115 +:103CD00090FF41C19F7095830E94C01D7AC100234F +:103CE00009F4F6C03EC1872D86958695837090E0D5 +:103CF000009719F0019761F06CC1112321F08C2D10 +:103D0000972D937002C080E090E00E94941B61C1E7 +:103D1000112321F08C2D972D937002C080E090E04C +:103D20000E94AA1B56C18C2D112319F00E94C32892 +:103D300002C00E942B290E94B0294BC1872D83709D +:103D400009F052C0111145C18C2D8295869587705E +:103D5000880F880F9C2D9F70892E912CA12CB12C3F +:103D6000082E04C0880C991CAA1CBB1C0A94D2F70C +:103D7000C4FE14C00FE010E020E030E0B901A8015B +:103D800004C0440F551F661F771F8A95D2F7CB01D9 +:103D9000BA01609570958095909503C060E070E0E1 +:103DA000CB01272D26952695237030E02230310552 +:103DB00069F02330310589F0682979298A299B29FE +:103DC0002130310571F00E943A2403C16829792914 +:103DD0008A299B290E945624FCC00E943A24C501CE +:103DE000B4010E941E24F5C0112319F0872D8170A3 +:103DF00001C08695882309F4ECC08C2D82958695A8 +:103E00008770880F880F9C2D9F70892E912CA12C74 +:103E1000B12C082E04C0880C991CAA1CBB1C0A9447 +:103E2000D2F7C4FE14C00FE010E020E030E0B9018A +:103E3000A80104C0440F551F661F771F8A95D2F74B +:103E4000CB01BA01609570958095909503C060E0B4 +:103E500070E0CB01272D269526952370422F50E048 +:103E60004230510569F04330510589F068297929BC +:103E70008A299B294130510571F00E941425A9C05F +:103E8000682979298A299B290E943025A2C00E948D +:103E90001425C501B4010E94F8249BC08C2D90E02C +:103EA000FC01E05EF109E531F10508F050C0E05990 +:103EB000FF4F0C941A310C2D0F70872D8F71112329 +:103EC00021F00E949124802F07CF0E94B224802FDE +:103ED0000E94C71D7EC0112341F0053008F079C053 +:103EE000872D8F710E94D72474C0063008F071C0EE +:103EF000F7CF112339F0872D8F710E94912469C06B +:103F00001123C9F3872D8F710E94B22462C011233F +:103F100029F0872D8F710E947C245BC00E9472243F +:103F200058C0112351F0172D1F71812F0E94912429 +:103F300063E0812F0E94A5254CC081E00E94AE2540 +:103F4000023008F446C082E00E94AE2542C0112330 +:103F500031F0002381F28C2D0E94A91C3AC000236D +:103F600089F28C2D0E94711D34C0472D4F706C2D2D +:103F7000C7010E944B060E9496232BC0111129C035 +:103F8000472D4F7050E042305105B9F04CF44115C7 +:103F9000510581F041305105E1F40E94B52C19C062 +:103FA0004330510569F04430510599F48C2D0E943D +:103FB000072D0FC00E949E2C0CC00E94D12C09C05E +:103FC0000E94E42C06C0472D4F706C2DC7010E9443 +:103FD000310CDD20F9F00E94A12580FD1BC0F70106 +:103FE00012820E949B250E949124C7010E941920E1 +:103FF0000E949B250F90DF91CF911F910F91FF9011 +:10400000EF90DF90CF90BF90AF909F908F907F9078 +:104010000C94B2240F90DF91CF911F910F91FF90DC +:10402000EF90DF90CF90BF90AF909F908F907F9058 +:1040300008950F931F93CF93DF93EC0188819981AB +:104040002B813C81232BB9F09F3F11F48F3F99F0D6 +:10405000CE010E949E07882371F0688179818A8150 +:104060000E9497258C010E944C250E941324B801C0 +:10407000CE010E94CE1DDF91CF911F910F91089527 +:104080000E946F260E947F260E9444260E94992645 +:104090000E94612A0E94B02980E090E00E94941B57 +:1040A00080E090E00C94AA1B0E945F260C944020B4 +:1040B0000E948C25292F22952F7030E02C3031055D +:1040C0004CF42A3031056CF422503109223031058C +:1040D000A8F407C02C30310569F02F30310551F0BC +:1040E0000DC0803F69F018F4803E40F409C0843F61 +:1040F00029F406C093FB882780F9089580E008958D +:1041000081E00895CF93DF9300D000D01F92CDB708 +:10411000DEB70F900F900F900F900F90DF91CF911F +:104120000895CF93DF9300D000D000D0CDB7DEB795 +:1041300026960FB6F894DEBF0FBECDBFDF91CF91AC +:1041400008951F93CF93DF93C091A80316E0809149 +:10415000A903C81799F0D0E01C9FF0011D9FF00D36 +:104160001124E655FC4F4081518162817381848125 +:1041700095810E9491202196C770E9CFDF91CF9160 +:104180001F9108954091DA035091DB036091DC03A5 +:104190007091DD038091DE039091DF030C949120F8 +:1041A0008091DF0382958F7009F054C08091DC0309 +:1041B000882309F44FC08091A803A091A9036091BE +:1041C000DA037091DB034091DD035091DE03B6E02A +:1041D0008A1709F43FC090E041155105C1F17F3FB6 +:1041E00011F46F3FA1F1B89FF001B99FF00D1124B8 +:1041F000E655FC4F218172132AC02081621327C02B +:104200002281211124C0238134812417350710F421 +:1042100021503109241B350B283C3105C0F4209175 +:10422000DF032F7020612093DF0326E0289FF00139 +:10423000299FF00D1124E155FC4F80818F70806122 +:1042400080838AED93E00E9419200C94A1200196AE +:104250008770BECF0895CF92DF92EF92FF920F93B7 +:104260001F93CF93DF93CDB7DEB762970FB6F89465 +:10427000DEBF0FBECDBF8C0185E0F801DE011D96CB +:1042800001900D928A95E1F7D8014C9111965C91BD +:10429000119712966C9112971396CD90DC9014970B +:1042A0003091DA037091DB038091DD039091DE039E +:1042B000009709F46BC17F3F19F43F3F09F466C1D1 +:1042C000E090DC03EE2009F4C0C02091DF03C816A3 +:1042D000D90628F0F601E81BF90BCF0104C0809540 +:1042E00090958C0D9D1DFF24F394883C910578F0EA +:1042F000F12C207F09F0C6C07C2DD98AC88A898913 +:104300000E9482208AED93E00E941920B1C0822F82 +:10431000807F09F046C0751314C0341312C06111B8 +:1043200010C02F7020612093DF030E94C2208AED0D +:1043300093E00E9419208091DF03D80115968C9399 +:104340002EC0CD2819F15F3F11F44F3FF9F0F62E42 +:1043500061111CC08091A8032091A90336E0821747 +:1043600009F45AC090E0389FF001399FF00D1124F4 +:10437000E655FC4F7181571306C07081471303C087 +:104380007281711103C001968770E9CFF62E662302 +:1043900009F418C18091DF0381608093DF03F12C61 +:1043A00011C1751308C0341306C0611104C0809197 +:1043B000DF03D801C3C04D875E878D859E856A8BDC +:1043C0000E9458206A898823E1F16623D1F1209167 +:1043D000DF03822F82958F7090E0029774F08091B6 +:1043E000DA039091DB0398878F831986DB86CA8670 +:1043F0002C87CE0107960E94192086E0F801AAEDCD +:10440000B3E001900D928A95E1F70E94D0200E94BE +:10441000C220FF24F394D6C04D875E878D859E858C +:104420000E948C25292F22952F7030E022303105F3 +:104430000CF0BCC09F7009F0B6C0805E883008F4F4 +:10444000C1C0C8010E941920E4CFC816D90608F4DB +:1044500053C0F601E81BF90BCF01883C910508F425 +:1044600050C0F12C7C2DD98AC88A89890E9482206B +:10447000EAEDF3E086E0DF011D928A95E9F70E94FC +:10448000C220A0C0751314C0341312C0611110C033 +:104490008091DF03F8018583C8010E94192086E01E +:1044A000EAEDF3E0DF011D928A95E9F7FE2C8AC060 +:1044B0004D875E878D859E856A8B0E9458206A890C +:1044C000882309F4BECF662309F4BBCF2091DF0314 +:1044D000822F82958F7090E002970CF48ECF80919E +:1044E000DA039091DB039A8389831B82DD82CC827D +:1044F0002E83CE0101967FCF809590958C0D9D1DCA +:10450000ACCFF62E662309F49CCF75132EC034135E +:104510002CC02091DF0320FD1FC0822F82958F7059 +:10452000D9F0D80115962C9315978F3049F08F5FED +:10453000982F9295907F822F8F70892B15968C9350 +:10454000C8010E94192086E0F801AAEDB3E00190AD +:104550000D928A95E1F793CF86E0F801AAEDB3E0DA +:1045600001900D928A95E1F72DC04D875E878D856C +:104570009E850E945820811140CF8091DF03816089 +:104580008093DF03C8010E9419201CC0662309F430 +:1045900058CF4D875E878D859E850E945820882341 +:1045A00009F44FCF2ACF811148CF0CC024303105F8 +:1045B0000CF047CF9F7009F440CFF8019581907FB0 +:1045C00009F03BCF8F2D62960FB6F894DEBF0FBE79 +:1045D000CDBFDF91CF911F910F91FF90EF90DF90B2 +:1045E000CF9008951F93CF93DF93CDB7DEB72C976D +:1045F0000FB6F894DEBF0FBECDBF4F8358876987D3 +:104600007A878B879C87CE0107960E942B2188236F +:1046100069F08F8198852A853B85232BF1F19F3F97 +:1046200009F063C08F3F09F060C037C086E0FE012B +:104630003796DE01119601900D928A95E1F76F8110 +:104640007885EA85FB85309741F17F3F11F46F3F14 +:1046500021F12091A90330E0C901019687709927C3 +:104660004091A80350E08417950709F447C0698377 +:104670007A83FD83EC8396E0929FD001939FB00DE7 +:104680001124A655BC4FFE01319601900D929A95CA +:10469000E1F78093A9030E94A12016E08091A8036E +:1046A0009091A9038917C1F1189FC0011124865563 +:1046B0009C4F0E942B21882379F1E091A8031E9F33 +:1046C000F0011124E655FC4F4081518162817381D4 +:1046D000848195810E9491208091A80390E00196A9 +:1046E000877099278093A803D9CF4F815885698512 +:1046F0007A858B859C850E949120CFCF0E94542083 +:104700001092A9031092A803EAEDF3E086E0DF011E +:104710001D928A95E9F7C1CF2C960FB6F894DEBFAB +:104720000FBECDBFDF91CF911F910895EF92FF9201 +:104730000F931F93CF93DF938C01009709F46CC004 +:10474000F12CEE24E394E8012196F801849184375A +:1047500040F4843008F051C0813081F0823019F18A +:104760005BC0853709F444C0A8F19CE7980F9037E7 +:1047700008F052C08F770E94711D41C00E5F1F4F1D +:10478000FE01C49180E28C0F883048F4C7708E2DF2 +:1047900001C0880FCA95EAF70E94722614C08C2FB8 +:1047A0000E94A91C2DC00E5F1F4FFE01C49180E224 +:1047B0008C0F883058F4C7708E2D01C0880FCA95B1 +:1047C000EAF70E9478260E9499261AC08C2F0E9430 +:1047D000711D16C00E5F1F4FFE01C491CC2381F0E6 +:1047E0008FE99FE00197F1F700C00000C150F6CFBC +:1047F0000E5F1F4FFE01F49003C00E94A91C8E01A2 +:104800008F2D882309F49FCFEFE9FFE03197F1F76F +:1048100000C000008150F5CFDF91CF911F910F9123 +:10482000FF90EF90089508956093E4037093E5037B +:104830008093E6039093E7030C9440200F931F931B +:104840000091E4031091E5032091E6033091E70322 +:10485000DC01CB01802B912BA22BB32B8093E403A3 +:104860009093E503A093E603B093E7031F910F91A4 +:104870000C9440200F931F930091E4031091E503E3 +:104880002091E6033091E703DC01CB0180239123E3 +:10489000A223B3238093E4039093E503A093E6035C +:1048A000B093E7031F910F910C9440200F931F9337 +:1048B0000091E4031091E5032091E6033091E703B2 +:1048C000DC01CB0180279127A227B3278093E40343 +:1048D0009093E503A093E603B093E7031F910F9134 +:1048E0000C9440201092E0031092E1031092E20336 +:1048F0001092E3030C94402041E050E060E070E04F +:1049000004C0440F551F661F771F8A95D2F7409346 +:10491000E0035093E1036093E2037093E3030C948C +:10492000402041E050E060E070E004C0440F551FBB +:10493000661F771F8A95D2F78091E0039091E1037B +:10494000A091E203B091E303482B592B6A2B7B2BF8 +:104950004093E0035093E1036093E2037093E30319 +:104960000C94402041E050E060E070E004C0440F4F +:10497000551F661F771F8A95D2F740955095609511 +:1049800070958091E0039091E103A091E203B091D2 +:10499000E303482359236A237B234093E003509386 +:1049A000E1036093E2037093E3030C94402041E041 +:1049B00050E060E070E004C0440F551F661F771F91 +:1049C0008A95D2F78091E0039091E103A091E203F0 +:1049D000B091E303482759276A277B274093E003D8 +:1049E0005093E1036093E2037093E3030C9440203F +:1049F0000F931F930091E0031091E1032091E203D4 +:104A00003091E303DC01CB01802B912BA22BB32B44 +:104A10008093E0039093E103A093E203B093E30358 +:104A20001F910F910C9440200F931F930091E0036E +:104A30001091E1032091E2033091E303DC01CB010B +:104A400080239123A223B3238093E0039093E10377 +:104A5000A093E203B093E3031F910F910C944020C5 +:104A60000F931F930091E0031091E1032091E20363 +:104A70003091E303DC01CB0180279127A227B327E4 +:104A80008093E0039093E103A093E203B093E303E8 +:104A90001F910F910C9440200895CF92DF92EF92D6 +:104AA000FF920F931F93CF93DF938C01C090E40389 +:104AB000D090E503E090E603F090E7038091E003F7 +:104AC0009091E103A091E203B091E303C82AD92AAF +:104AD000EA2AFB2ACFE1D0E0D701C6010C2E04C0A0 +:104AE000B695A795979587950A94D2F780FF06C04B +:104AF000B8018C2F0E94900A019721F4219760F74A +:104B000080E001C08C2FDF91CF911F910F91FF901A +:104B1000EF90DF90CF900895CF93DF93EC010E9448 +:104B20004D25BE010E94900ADF91CF910895CB01DF +:104B30000E948C2508958091E8038595859585953B +:104B400008958091E8038770089598E0899F900107 +:104B50001124262B2093E8030C9491242091E80340 +:104B6000809582238093E803982F977069F430E052 +:104B7000482F552747FD50952417350729F085956F +:104B8000859585950C94B22408959091E8039770CB +:104B900081E009F480E0089590911D02992321F0AD +:104BA00090911E02911109C020911F0230912002A4 +:104BB000F90132969FEF40E01FC0982F9695969589 +:104BC00096959F3050F5E0911F02F0912002E90F79 +:104BD000F11D877021E030E0A90102C0440F551F8C +:104BE0008A95E2F7CA019181892B818308959F3FBD +:104BF00039F04F5F4E3041F051915813F8CF0DC04E +:104C00005111F7CF942FF5CF9F3F39F0F901E90FFC +:104C1000F11D97FDFA9582830895089590911D02E4 +:104C2000992321F090911E02911109C020911F0239 +:104C300030912002F9013296205F3F4F1FC0982F1C +:104C40009695969596959F30F0F4E0911F02F0911D +:104C50002002E90FF11D877021E030E0A90102C0B8 +:104C6000440F551F8A95E2F7CA01809591818923E7 +:104C7000818308953196E217F30729F09081981304 +:104C8000F9CF1082F7CF089581E090E0E0911F0204 +:104C9000F0912002E80FF91F1082019680319105F2 +:104CA000A9F708959091FC03892B8093FC03089544 +:104CB00080959091FC0389238093FC0308951092C2 +:104CC000FC0308959091FB03892B8093FB030895C7 +:104CD00080959091FB0389238093FB0308951092A4 +:104CE000FB0308959091FA03892B8093FA030895AA +:104CF00080959091FA0389238093FA030895109286 +:104D0000FA0308958093E90308951092E903089542 +:104D100080911F0290912002FC0131969C01205F3E +:104D20003F4F80E0919191118F5FE217F307D1F728 +:104D30000895E0911F02F09120028091FC0380838E +:104D4000E0911F02F091200290818091FB03892B5A +:104D50008083E0911F02F091200290818091FA03FC +:104D6000892B80838091E903882361F0E0911F0201 +:104D7000F09120029081892B80830E9488268111E6 +:104D80001092E90380911F02909120020C947E1BE7 +:104D900020E0009739F0AC0141505109842395235C +:104DA0002F5FF7CF822F089580912004843039F14E +:104DB0001092FE0320E488E190E00FB6F894A895E5 +:104DC000809360000FBE2093600080E00E94120676 +:104DD00080E00E94C20C83B7817F846083BF83B769 +:104DE000816083BF7894889583B78E7F83BF88E185 +:104DF0000FB6F89480936000109260000FBE089583 +:104E0000089580E00E9412060E94D80C0E945B0D5B +:104E10000E9400270E94D30D91E0811101C090E013 +:104E2000892F08950E94542080E00E9412060E945B +:104E30008D2C0E94721B0C94C20C1F920F920FB605 +:104E40000F9211248F939F93AF93BF938091FE0392 +:104E5000811113C08091FF0390910004A09101047F +:104E6000B09102044196A11DB11D8093FF03909360 +:104E70000004A0930104B0930204BF91AF919F91ED +:104E80008F910F900FBE0F901F90189582E084BDF8 +:104E900093E095BD9AEF97BD80936E0008952FB76C +:104EA000F8948091FF0390910004A0910104B091C7 +:104EB00002042FBF0895CF92DF92EF92FF920F93DB +:104EC0001F932FB7F8944091FF0350910004609115 +:104ED0000104709102042FBF6A017B01EE24FF24BC +:104EE0008C0120E030E0C016D106E206F30610F493 +:104EF000415051099A01281B390BC9011F910F918B +:104F0000FF90EF90DF90CF9008951F920F920FB611 +:104F10000F9211248F939F93AF93BF938091FF03C0 +:104F200090910004A0910104B09102040196A11D8A +:104F3000B11D8093FF0390930004A0930104B093EC +:104F40000204BF91AF919F918F910F900FBE0F9070 +:104F50001F9018950E946F18F8942FEF87EA91E63A +:104F6000215080409040E1F700C0000087E090EBC6 +:104F7000DC0180932A0490932B04A0932C04B0931B +:104F80002D049CE088E10FB6F894A895809360000A +:104F90000FBE90936000FFCF0E940E28811102C0C7 +:104FA0000E94EA270E9419288093FD030E94262868 +:104FB00090E090930F0480930E0487FB882780F97C +:104FC00080931E020E941D28682F70E080E090E010 +:104FD0000C9414246DEE7EEF80E090E00E9440314E +:104FE00060E082E090E00E942E3160E083E090E09B +:104FF0000E942E3160E084E090E00E942E3160E05B +:1050000085E090E00E942E3160E086E090E00E9412 +:105010002E316FEF87E090E00C942E3180E090E02D +:105020000E94283121E08D3E9E4F09F020E0822F22 +:10503000089582E090E00C94203183E090E00C949D +:105040002031682F83E090E00C942E3184E090E0D2 +:105050000C942031682F84E090E00C942E3186E08F +:1050600090E00C942031682F86E090E00C942E3173 +:1050700087E090E00C942031682F87E090E00C945A +:105080002E318091050480FF0BC06091240285E0E1 +:10509000689FB001112475956795759567952BC02C +:1050A00081FF09C06091240285E0689FB00111244E +:1050B0007595679520C082FF07C06091240285E046 +:1050C000689FB001112417C0909106049923D1F074 +:1050D00060912302961788F72091240285E0289F8B +:1050E00090011124929FA001939F500D112470E014 +:1050F000CA010E9406316038710540F461157105DE +:1051000039F002C065E070E0862F08958FE70895BA +:1051100081E008958091050480FF08C0609122021B +:1051200070E0759567957595679521C081FF06C0FC +:105130006091220270E07595679519C082FF04C0E6 +:105140006091220270E010C0909106049923C1F092 +:10515000609121029617A0F780912202899FC001D9 +:10516000112470E00E9406316038710528F4611541 +:10517000710521F0862F08958FE7089581E0089545 +:1051800061E070E0F4CF803F21F40E9441288195D6 +:1051900004C0813F29F40E944128809309040895A6 +:1051A000823F21F40E944128819504C0833F29F465 +:1051B0000E944128809308040895893F19F40E94B1 +:1051C0008A2805C08A3F31F40E948A2881958093FD +:1051D0000A0408958B3F21F40E948A28819504C017 +:1051E0008C3F29F40E948A2880930B040895843F01 +:1051F00021F480910704816017C0853F21F48091DC +:105200000704826011C0863F21F480910704846006 +:105210000BC0873F21F480910704886005C0883F58 +:1052200031F48091070480618093070408958D3FD5 +:1052300021F48091050481600BC08E3F21F48091A0 +:105240000504826005C08F3F29F4809105048460C5 +:10525000809305040895803F39F48091090487FF05 +:105260006CC01092090469C0813F29F4809109043F +:105270001816BCF362C090910804823F29F497FF8E +:105280005CC01092080459C0833F19F41916CCF37E +:1052900054C0893F41F480910A0418160CF04DC0A7 +:1052A00010920A044AC08A3F29F480910A0487FFB9 +:1052B00044C0F6CF8B3F39F480910B0487FF3DC08B +:1052C00010920B043AC08C3F29F480910B041816FD +:1052D000BCF333C0843F21F4809107048E7F17C054 +:1052E000853F21F4809107048D7F11C0863F21F412 +:1052F000809107048B7F0BC0873F21F480910704C6 +:10530000877F05C0883F31F4809107048F7E8093AA +:10531000070413C08D3F21F4809105048E7F0BC0DC +:105320008E3F21F4809105048D7F05C08F3F29F4C5 +:10533000809105048B7F809305048091080481117E +:105340000EC08091090481110AC080910A04811164 +:1053500006C080910B04811102C0109206040895CA +:1053600087E094E00E94891B0E944F2790930404D9 +:105370008093030408951F93CF93DF9380910304D8 +:10538000909104040E945B27AC019091060499233C +:1053900021F02091250230E006C0209126028AE00B +:1053A000289F900111244217530708F486C080916A +:1053B0000804C0910904D0910A0410910B048111D2 +:1053C00007C0C11176C0D11174C0111172C075C06F +:1053D0009F3F19F09F5F90930604181624F40E94D3 +:1053E0004128809308048091080487FF05C00E942B +:1053F00041288195809308041C1624F40E944128BA +:10540000809309048091090487FF05C00E94412808 +:1054100081958093090460910804662339F1C09155 +:105420000904CC2319F1772767FD7095872F972FF3 +:105430000E94282E23E333E343E35FE30E94382FE7 +:105440000E94F52D609308046C2F772767FD7095F7 +:10545000872F972F0E94282E23E333E343E35FE354 +:105460000E94382F0E94F52D609309041D1624F424 +:105470000E948A2880930A0480910A0487FF05C04D +:105480000E948A28819580930A04111624F40E94B0 +:105490008A2880930B0480910B0487FF05C00E942B +:1054A0008A28819580930B04DF91CF911F910C94F2 +:1054B000B0299F3F09F08ECF96CFDF91CF911F91FA +:1054C0000895E7E0F4E085E0DF011D928A95E9F7B1 +:1054D00010920604109205040895833081F128F497 +:1054E000813059F08230D1F00895853009F449C0F7 +:1054F000B8F1863009F456C0089580912602262F0F +:1055000030E0280F311D2F3F310524F4680F6093E0 +:10551000260208958FEF8093260208958091250238 +:10552000262F30E0280F311D2F3F310524F4680F5E +:105530006093250208958FEF80932502089580914E +:105540002402262F30E0280F311D2F3F310524F48F +:10555000680F6093240208958FEF809324020895CA +:1055600080912302262F30E0280F311D2F3F310577 +:1055700024F4680F6093230208958FEF8093230231 +:10558000089580912202262F30E0280F311D2F3FF1 +:10559000310524F4680F6093220208958FEF809301 +:1055A0002202089580912102262F30E0280F311D1C +:1055B0002F3F310524F4680F6093210208958FEF87 +:1055C000809321020895833011F128F4813049F04D +:1055D000823091F00895853081F120F18630C1F15B +:1055E000089580912602681720F4861B8093260276 +:1055F000089510922602089580912502681720F4DC +:10560000861B8093250208951092250208958091AB +:105610002402681720F4861B8093240208951092B8 +:105620002402089580912302681720F4861B80933A +:105630002302089510922302089580912202681790 +:1056400020F4861B8093220208951092220208956E +:1056500080912102681720F4861B8093210208950F +:105660001092210208950F931F93873208F048C0CB +:105670008E3108F08DC0803109F477C008F587308D +:1056800009F461C068F4863009F09DC08091FD0383 +:10569000817F8E7F8093FD0381E080930D0494C011 +:1056A0008B3009F489C08E3009F08DC08091FD03E4 +:1056B00082FB222720F991E0922790FB82F95EC0BD +:1056C000863109F479C060F4813109F07CC00E9410 +:1056D000542090911E0281E0892780931E026CC0A5 +:1056E000893109F469C08B3109F06DC08091FD03E7 +:1056F00081FB222720F991E0922790FB81F93EC09F +:10570000883309F459C050F4893209F457C08533FD +:1057100009F454C0873209F451C055C0833409F4E8 +:105720004DC028F48A3308F44EC0895332C08834FF +:1057300009F049C00E9454200E94030E0E94D40622 +:105740000E94AA2739C09091FD03892F809581700E +:1057500080FB90F929F0966098609093FD0334C027 +:10576000997F977F9093FD0327C08091FD0383FB72 +:10577000222720F991E0922790FB83F98093FD0383 +:105780009923D1F08091FD0381608093FD0314C0C3 +:105790008D5141E050E060E070E08A019B0104C05F +:1057A000000F111F221F331F8A95D2F7C901B801BC +:1057B0000E9414240E94542081E006C061E070E041 +:1057C00080E090E0F5CF80E01F910F91089580E098 +:1057D000089580E008958E518A3030F4E82FF0E08B +:1057E000E154FD4F8081089580E00895CF93C82F44 +:1057F00080910D04813069F018F08230C9F183C0C6 +:10580000E0911F02F09120028081823209F07DC078 +:1058100007C0E0911F02F09120028081823261F482 +:105820008C2F0E94E72B811104C08C2F0E94332BF8 +:105830001DC081E090E01AC08C2F0E94E92B8111DD +:1058400014C0C43179F048F4CB3079F0C03109F09C +:1058500060C082E080930D0408C0C93219F0C833DB +:1058600021F057C010920D0454C081E0817053C0E4 +:10587000C93289F118F5C43171F1B0F4C73009F0BB +:1058800046C08EE18093260282E3809325028AE05F +:105890008093240284E18093230288E08093220293 +:1058A00088E28093210233C082EE8C0F863078F537 +:1058B0008C2F0E94EB2B80930C0429C0CE34E9F08E +:1058C00020F4CB3421F56AE013C0C13579F0C2353C +:1058D000F1F461E00DC080910C04882319F010925E +:1058E0000C0415C081E080930D0415C061E006C072 +:1058F00080910C040E946D2A0AC06AE080910C0419 +:105900000E94E32A04C010920D0480E004C081E0EC +:1059100002C080E0ABCFCF9108950E940E28811184 +:1059200002C00E94EA270E942F288093290480FF4A +:1059300002C0869501C080E00C9412068091290473 +:10594000982F9695292F30E0233031054CF49F5F36 +:10595000990F8170892B8160809329040E943328DC +:105960008091290486950C94120680912904982F21 +:10597000969591F09158990F8170892B8093290405 +:105980008E7F91E009F490E08091290490FB80F9EA +:10599000809329040E9433288091290486950C94D1 +:1059A000120680912904982F909590FB80F980939E +:1059B00029040E9433288091290480FF02C0869523 +:1059C00001C080E00C94120690912904892F8695DD +:1059D0008F5F8F779170843028F4880F892B8093A4 +:1059E000290402C090932904809129048E7F91E0BC +:1059F00009F490E08091290490FB80F980932904B8 +:105A00000E9433288091290486950C9412062091D7 +:105A10002904922F96958927982F990F822F8170AC +:105A2000892B809329048E7F91E009F490E0809186 +:105A3000290490FB80F9809329040E9433288091E7 +:105A4000290486950C9412065058BB27AA270ED01D +:105A5000D1C1C2D130F0C7D120F031F49F3F11F451 +:105A60001EF4B7C10EF4E095E7FB9FC1E92FD3D137 +:105A700080F3BA17620773078407950718F071F46B +:105A80009EF5EBC10EF4E0950B2EBA2FA02D0B0165 +:105A9000B90190010C01CA01A0011124FF27591B73 +:105AA00099F0593F50F4503E68F11A16F040A22F79 +:105AB000232F342F4427585FF3CF469537952795EA +:105AC000A795F0405395C9F77EF41F16BA0B620BE9 +:105AD000730B840BBAF09150A1F0FF0FBB1F661F30 +:105AE000771F881FC2F70EC0BA0F621F731F841F73 +:105AF00048F4879577956795B795F7959E3F08F099 +:105B0000B3CF9395880F08F09927EE0F9795879557 +:105B1000089527D108F481E008950CD06BC163D1BA +:105B200040F05AD130F021F45F3F19F03EC15111DD +:105B300095C14FC170D198F39923C9F35523B1F39F +:105B4000951B550BBB27AA2762177307840738F0EC +:105B50009F5F5F4F220F331F441FAA1FA9F333D04B +:105B60000E2E3AF0E0E830D091505040E695001CFF +:105B7000CAF729D0FE2F27D0660F771F881FBB1FBB +:105B8000261737074807AB07B0E809F0BB0B802D95 +:105B9000BF01FF2793585F4F2AF09E3F510568F0E1 +:105BA00004C15CC15F3FECF3983EDCF386957795CA +:105BB0006795B795F7959F5FC9F7880F911D9695E3 +:105BC000879597F90895E1E0660F771F881FBB1F3F +:105BD000621773078407BA0720F0621B730B840BEC +:105BE000BA0BEE1F88F7E095089504D06894B111C0 +:105BF00035C1089518D188F09F5790F0B92F992793 +:105C0000B751A0F0D1F0660F771F881F991F1AF0C7 +:105C1000BA95C9F712C0B13081F01FD1B1E0089533 +:105C20001CC1672F782F8827B85F39F0B93FCCF3B4 +:105C3000869577956795B395D9F73EF490958095BD +:105C4000709561957F4F8F4F9F4F0895E89409C0DD +:105C500097FB3EF490958095709561957F4F8F4F9F +:105C60009F4F9923A9F0F92F96E9BB279395F695B5 +:105C7000879577956795B795F111F8CFFAF4BB0F33 +:105C800011F460FF1BC06F5F7F4F8F4F9F4F16C097 +:105C9000882311F096E911C0772321F09EE8872F21 +:105CA000762F05C0662371F096E8862F70E060E0DD +:105CB0002AF09A95660F771F881FDAF7880F969556 +:105CC000879597F9089588D018F011F08CD038F4A2 +:105CD00080C0C4C0E92F9FD0B0F35523C9F3E7FBC0 +:105CE0006217730784079507A8F199F3E92FFF2737 +:105CF00088232AF03197660F771F881FDAF7952FD0 +:105D00005527442332F091505040220F331F441F37 +:105D1000D2F7BB27E91BF50B621B730B840BB10990 +:105D2000C1F222F4620F731F841FB11D31972AF054 +:105D3000660F771F881FBB1FEFCF915050405AF05E +:105D400041F0882332F0660F771F881F9150504032 +:105D5000C1F7939530C08695779567959F5FD9F782 +:105D6000F8CF990F0008550FAA0BE0E8FEEF1616C2 +:105D70001706E807F907C0F012161306E407F5073F +:105D800098F0621B730B840B950B39F40A2661F0B3 +:105D9000232B242B252B21F408950A2609F4A14056 +:105DA000A6958FEF811D811D089597F99F6780E863 +:105DB00070E060E008959F3F31F0915020F48795A6 +:105DC00077956795B795880F911D9695879597F963 +:105DD00008959FEF80EC089500240A941616170684 +:105DE00018060906089500240A94121613061406CC +:105DF00005060895092E0394000C11F4882352F02F +:105E0000BB0F40F4BF2B11F460FF04C06F5F7F4FE6 +:105E10008F4F9F4F089557FD9058440F551F59F0CD +:105E20005F3F71F04795880F97FB991F61F09F3F87 +:105E300079F087950895121613061406551FF2CFB0 +:105E40004695F1DF08C0161617061806991FF1CF00 +:105E500086957105610508940895E894BB27662727 +:105E60007727CB0197F908957CDF08F48FEF089529 +:105E70000BD0C0CFB1DF28F0B6DF18F0952309F0C2 +:105E800094CFA7CF1124EACFC6DFA0F3959FD1F31B +:105E9000950F50E0551F629FF001729FBB27F00DD8 +:105EA000B11D639FAA27F00DB11DAA1F649F66272D +:105EB000B00DA11D661F829F2227B00DA11D621F7C +:105EC000739FB00DA11D621F839FA00D611D221F36 +:105ED000749F3327A00D611D231F849F600D211D1A +:105EE000822F762F6A2F11249F5750408AF0E1F0BD +:105EF00088234AF0EE0FFF1FBB1F661F771F881F06 +:105F000091505040A9F79E3F510570F04ECFA6CF5B +:105F10005F3FECF3983EDCF3869577956795B795F0 +:105F2000F795E7959F5FC1F7FE2B880F911D96951A +:105F3000879597F90895FA01EE0FFF1F3096210516 +:105F4000310599F16115710561F48038BFE39B0754 +:105F500049F168949038810561F08038BFEF9B0764 +:105F600041F0992342F5FF3FE1053105210511F18B +:105F7000E8940894E795D901AA2329F4AB2FBE2F02 +:105F8000F85FD0F310C0FF5F70F4A695E0F7F73923 +:105F900050F019F0FF3A38F49F779F930CD00F9090 +:105FA00007FC905808953EF014CF60E070E080E860 +:105FB0009FE308954FE79F775F934F933F932F930E +:105FC0009ED02F913F914F915F9152DF05C019F400 +:105FD0000EF0EBCE42CFFDCE26DFC8F39638C0F7E9 +:105FE00007F80F92E8942BE33AEA48EB5FE74EDFBD +:105FF0000F920F920F924DB75EB70F92C0D0EAE0AA +:10600000F1E016D04F915F91EF91FF91E595EE1F72 +:10601000FF1F49F0FE57E0684427EE0F441FFA9532 +:10602000E1F74195550B32D00F9007FE26C0089539 +:10603000DF93CF931F930F93FF92EF92DF927B0139 +:106040008C01689405C0DA2EEF011EDFFE01E89492 +:10605000A5912591359145915591AEF3EF0106DD5E +:10606000FE019701A801DA9479F7DF90EF90FF9095 +:106070000F911F91CF91DF9108959B01AC0160E0DA +:1060800070E080E89FE349CD90CE95CECCDEE8F37A +:106090009923D9F3940F511DBBF39150504094F0C4 +:1060A00059F0882332F0660F771F881F91505040B7 +:1060B000C1F79E3F510544F7880F911D969587952E +:1060C00097F908955F3FACF0983E9CF0BB2786950A +:1060D00077956795B79508F4B1609395C1F7BB0FB5 +:1060E00058F711F460FFE8CF6F5F7F4F8F4F9F4FDE +:1060F000E3CFB4CE0EF05FCE6CCE689456CE93DE76 +:10610000C8F39923D1F3C6F3DF93CF931F930F9373 +:10611000FF92C92FDD2788232AF02197660F771F6A +:10612000881FDAF720E030E040E85FEB9FE3883932 +:1061300020F0803E30F021968F7787DCE2E3F1E0BB +:1061400003C083DCEFE5F1E073DF8B01BE01EC01FE +:10615000FB2E6F5771097595771F880B990B78DDAA +:1061600028E132E741E35FE38FDEAF2D9801AE0116 +:10617000FF900F911F91CF91DF9178DC3BCEFA0118 +:10618000DC01AA0FBB1F9B01AC01BF5728F42227DB +:106190003327442750781FC0B75188F4AB2F002411 +:1061A000469537952795011CA395D2F3002069F0F9 +:1061B000220F331F441FB395DAF30DD045CC613065 +:1061C0007105A0E88A07B94630F49B01AC01662747 +:1061D000772788279078309621F020833183428377 +:1061E00053830895AA1BBB1B51E107C0AA1FBB1F05 +:1061F000A617B70710F0A61BB70B881F991F5A9553 +:10620000A9F780959095BC01CD01089597FB072EC5 +:1062100016F4009407D077FD09D00E94F23007FCF5 +:1062200005D03EF4909581959F4F089570956195A6 +:106230007F4F0895EE0FFF1F0590F491E02D099414 +:10624000F999FECF92BD81BDF89A992780B508953E +:10625000A8E1B0E042E050E00C944831262FF999D3 +:10626000FECF92BD81BDF89A019700B4021639F0B5 +:106270001FBA20BD0FB6F894FA9AF99A0FBE089586 +:106280000196272F0E942F310C942E31DC01CB0177 +:10629000FC01F999FECF06C0F2BDE1BDF89A319636 +:1062A00000B40D9241505040B8F70895F894FFCFD4 +:1062B00000005C440000004148F1764400000041C9 +:1062C0005C978A44000000411FD5924400000041C1 +:1062D00052D0A444000000415CFFB84400000041DB +:1062E0000AA7CF44000000410000DC440000004148 +:1062F00052D02445000000410000DC440000004171 +:1063000052D0A444000040410AA7CF4400000041FD +:106310000000DC440000004100000000000080405C +:1063200052D02445000040410000000000008040A1 +:106330000AA74F45000040410AA7CF440000004192 +:106340000000DC440000004100000000000080402C +:1063500052D02445000000410000000000008040B1 +:106360005CFF384500000041000000000000804054 +:1063700052D02445000000410AA7CF44000000414C +:106380000000DC44000000410000000000008040EC +:1063900052D024450000804148F176440000A041DD +:1063A000F6F0F6440000004152909B440000A041EA +:1063B000F6F0F64400000041640007000CFF000006 +:1063C000003F647A140815E514B1147D140101EA44 +:1063D000032808140A321E0002040507090B0C0EDC +:1063E0001011131517181A1C1D1F212324262829E4 +:1063F0002B2D2F3032343537393B1F0F03764F5F4B +:106400006F7F4969437929595363393149803F5D29 +:106410008B803FF8BF803FCAE1803F73ED803FCA69 +:10642000E1803FF8BF803F5D8B803F3149803F0076 +:1064300000803FF16D7F3F75EA7E3F4C827E3F8357 +:106440003F7E3F84287E3F833F7E3F4C827E3F7568 +:10645000EA7E3FF16D7F3F0000803F404D36391DA1 +:106460000BD00A9A0A610AF4090D0A260A3F0A01AA +:0A64700002030405060708090000F6 +:00000001FF diff --git a/keyboards/preonic/keymaps/default/keymap.c b/keyboards/preonic/keymaps/default/keymap.c new file mode 100644 index 000000000..4c967d73e --- /dev/null +++ b/keyboards/preonic/keymaps/default/keymap.c @@ -0,0 +1,278 @@ +#include "preonic.h" +#include "action_layer.h" +#include "eeconfig.h" +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _ADJUST 16 + +// Macro name shortcuts +#define QWERTY M(_QWERTY) +#define COLEMAK M(_COLEMAK) +#define DVORAK M(_DVORAK) +#define LOWER M(_LOWER) +#define RAISE M(_RAISE) +#define M_BL 5 + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | " | , | . | P | Y | F | G | C | R | L | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL}, + {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = { + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Audoff|Aud on|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Musoff|Mus on| | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = { + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, + {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, + {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +} + + +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +#ifdef AUDIO_ENABLE +float tone_startup[][2] = { + {NOTE_B5, 20}, + {NOTE_B6, 8}, + {NOTE_DS6, 20}, + {NOTE_B6, 8} +}; + +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); + +float tone_goodbye[][2] = SONG(GOODBYE_SOUND); + +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); +#endif + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case _QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_qwerty, false, 0); + #endif + persistant_default_layer_set(1UL<<_QWERTY); + } + break; + case _COLEMAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_colemak, false, 0); + #endif + persistant_default_layer_set(1UL<<_COLEMAK); + } + break; + case _DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_dvorak, false, 0); + #endif + persistant_default_layer_set(1UL<<_DVORAK); + } + break; + case _LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + break; + case _RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + break; + case M_BL: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + startup_user(); + #endif +} + +#ifdef AUDIO_ENABLE + +void startup_user() +{ + _delay_ms(20); // gets rid of tick + PLAY_NOTE_ARRAY(tone_startup, false, 0); +} + +void shutdown_user() +{ + PLAY_NOTE_ARRAY(tone_goodbye, false, 0); + _delay_ms(150); + stop_all_notes(); +} + +void music_on_user(void) +{ + music_scale_user(); +} + +void music_scale_user(void) +{ + PLAY_NOTE_ARRAY(music_scale, false, 0); +} + +#endif \ No newline at end of file diff --git a/keyboards/preonic/preonic.c b/keyboards/preonic/preonic.c new file mode 100644 index 000000000..773451bf0 --- /dev/null +++ b/keyboards/preonic/preonic.c @@ -0,0 +1,97 @@ +#include "preonic.h" + +__attribute__ ((weak)) +void matrix_init_user(void) { + +}; + +__attribute__ ((weak)) +void matrix_scan_user(void) { + +}; + +__attribute__ ((weak)) +bool process_action_user(keyrecord_t *record) { + return true; +}; + +void matrix_init_kb(void) { + #ifdef BACKLIGHT_ENABLE + backlight_init_ports(); + #endif + + // Turn status LED on + DDRE |= (1<<6); + PORTE |= (1<<6); + + matrix_init_user(); +}; + +void matrix_scan_kb(void) { + matrix_scan_user(); +}; + +bool process_action_kb(keyrecord_t *record) { + return process_action_user(record); +} + +#ifdef BACKLIGHT_ENABLE +#define CHANNEL OCR1C + +void backlight_init_ports() +{ + + // Setup PB7 as output and output low. + DDRB |= (1<<7); + PORTB &= ~(1<<7); + + // Use full 16-bit resolution. + ICR1 = 0xFFFF; + + // I could write a wall of text here to explain... but TL;DW + // Go read the ATmega32u4 datasheet. + // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on + + // Pin PB7 = OCR1C (Timer 1, Channel C) + // Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0 + // (i.e. start high, go low when counter matches.) + // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0 + // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1 + + TCCR1A = _BV(COM1C1) | _BV(WGM11); // = 0b00001010; + TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; + + backlight_init(); +} + +void backlight_set(uint8_t level) +{ + if ( level == 0 ) + { + // Turn off PWM control on PB7, revert to output low. + TCCR1A &= ~(_BV(COM1C1)); + CHANNEL = 0x0; + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + } + else if ( level == BACKLIGHT_LEVELS ) + { + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + // Turn on PWM control of PB7 + TCCR1A |= _BV(COM1C1); + // Set the brightness + CHANNEL = 0xFFFF; + } + else + { + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + // Turn on PWM control of PB7 + TCCR1A |= _BV(COM1C1); + // Set the brightness + CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); + } +} + +#endif diff --git a/keyboards/preonic/preonic.h b/keyboards/preonic/preonic.h new file mode 100644 index 000000000..2b605f374 --- /dev/null +++ b/keyboards/preonic/preonic.h @@ -0,0 +1,41 @@ +#ifndef PREONIC_H +#define PREONIC_H + +#include "quantum.h" + +#define PREONIC_MIT( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \ + k40, k41, k42, k43, k44, k45, k47, k48, k49, k4a, k4b \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ + { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b }, \ + { k40, k41, k42, k43, k44, k45, k45, k47, k48, k49, k4a, k4b } \ +} + +#define PREONIC_GRID( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ + { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b } \ +} + +void matrix_init_user(void); +void matrix_scan_user(void); +bool process_action_kb(keyrecord_t *record); +void backlight_init_ports(void); + +#endif diff --git a/keyboards/retro_refit/Makefile b/keyboards/retro_refit/Makefile new file mode 100644 index 000000000..2dd8cc5f7 --- /dev/null +++ b/keyboards/retro_refit/Makefile @@ -0,0 +1,74 @@ + + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=512 + + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= yes # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend +NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality +# MIDI_ENABLE ?= YES # MIDI controls +# UNICODE_ENABLE ?= YES # Unicode +# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID + + +ifndef QUANTUM_DIR + include ../../Makefile +endif + diff --git a/keyboards/retro_refit/README.md b/keyboards/retro_refit/README.md new file mode 100644 index 000000000..c64e1b806 --- /dev/null +++ b/keyboards/retro_refit/README.md @@ -0,0 +1,24 @@ +retro_refit keyboard firmware +====================== + +## Quantum MK Firmware + +For the full Quantum feature list, see [the parent README.md](/README.md). + +## Building + +Download or clone the whole firmware and navigate to the keyboards/retro_refit folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default +To build with the default keymap, simply run `make`. + +### Other Keymaps +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` and see keymap document (you can find in top README.md) and existent keymap files. + +To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: +``` +$ make KEYMAP=[default|jack|] +``` +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. \ No newline at end of file diff --git a/keyboards/retro_refit/config.h b/keyboards/retro_refit/config.h new file mode 100644 index 000000000..f2194e550 --- /dev/null +++ b/keyboards/retro_refit/config.h @@ -0,0 +1,123 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Nobody +#define PRODUCT retro_refit +#define DESCRIPTION Retro Refit + +/* key matrix size */ +#define MATRIX_ROWS 11 +#define MATRIX_COLS 8 + +// See note in retro_refit.h for an explanation of how this matrix is wired up +#define MATRIX_ROW_PINS { D4, D7, B4, B5, B6, F7, F6, F5, F4, F1, F0 } +#define MATRIX_COL_PINS { B0, B1, B2, B3, D2, D3, C7, D5 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 0 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + + +/* Force NKRO Mode - If forced on, must be disabled via magic key (default = LShift+RShift+N) */ +#define FORCE_NKRO + +/* + * Magic key options + * These options allow the magic key functionality to be changed. This is useful + * if your keyboard/keypad is missing keys and you want magic key support. + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* remap magic keys */ +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +#define MAGIC_KEY_LOCK BSLS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/retro_refit/keymaps/default/compiled.hex b/keyboards/retro_refit/keymaps/default/compiled.hex new file mode 100644 index 000000000..870787585 --- /dev/null +++ b/keyboards/retro_refit/keymaps/default/compiled.hex @@ -0,0 +1,1423 @@ +:100000000C94A8060C94EC060C94EC060C94EC06EC +:100010000C94EC060C94EC060C94EC060C94EC0698 +:100020000C94EC060C94EC060C94D4110C94A612CF +:100030000C9472200C94EC060C94EC060C94EC06D8 +:100040000C94EC060C94EC060C94EC060C94EC0668 +:100050000C94EC060C94DA200C94EC060C94EC0650 +:100060000C94EC060C94EC060C94EC060C94EC0648 +:100070000C94EC060C94EC060C94EC060C94EC0638 +:100080000C94EC060C94EC060C94EC060C94EC0628 +:100090000C94EC060C94EC060C94EC060C94EC0618 +:1000A0000C94EC060C94EC060C94EC06131335132C +:1000B0002314351323147A139D132314F2130514F8 +:1000C0003317331762176217A117C117F118F11808 +:1000D000CC17F1187C187C18E218F118F118EB18FD +:1000E0008918891889188918891889188918891808 +:1000F00089188918891889188918891889188918F8 +:100100009918A718AE18B518BF183F003E003D005B +:100110003C003B003A00E3002C00E0004600E50014 +:1001200038003700360010001100050019000600E5 +:100130001B001D00E200E1003500340033000F0019 +:100140000E000D000B000A00090007001600040055 +:100150003100280030002F00130012000C0018009E +:100160001C001700150008001A0014002B002A00BC +:100170002E002D0027002600250024002300220049 +:10018000210020001F001E002900000000000000C8 +:10019000000000004C0049004E0051004D000000DE +:1001A0004F004800500000004B0052004A0047003A +:1001B000530043004200410040000A444542554775 +:1001C0003A20656E61626C65642E0A005374617436 +:1001D00065206F6620726F772025583A20253031D0 +:1001E00036620A0048756D616E2D726561646162E8 +:1001F0006C65206D61747269782073746174653AFE +:100200000D0A004465626F756E63696E67206465F0 +:100210006C61792072656D61696E696E673A20253F +:10022000580A005B735D004B6579626F61726420F0 +:1002300073746172742E0A005B575D005B535D003E +:100240005B525D005B445D005B435D001803720020 +:100250006500740072006F005F0072006500660048 +:100260006900740000000E034E006F0062006F0012 +:100270006400790000000403090409028D000501EF +:1002800000A0FA0904000001030101000921110185 +:100290000001223F000705810308000A090401004C +:1002A0000103010200092111010001224D0007058F +:1002B000820308000A09040200010300000009216A +:1002C000110100012236000705830308000A090412 +:1002D0000300020300000009211101000122200097 +:1002E0000705840320000107050403200001090419 +:1002F000040001030000000921110100012239005E +:10030000070585031000011201100100000008ED2F +:10031000FE606001000102000105010906A101055E +:100320000719E029E71500250195087501810205E7 +:10033000081901290595057501910295017503912B +:1003400001050719002977150025019578750181A8 +:1003500002C00631FF0974A1010975150025FF953A +:1003600020750881020976150025FF9520750891F2 +:1003700002C005010980A101850216010026B7000F +:100380001A01002AB700751095018100C0050C09FB +:1003900001A1018503160100269C021A01002A9C76 +:1003A00002751095018100C005010902A101090132 +:1003B000A1000509190129051500250195057501FB +:1003C000810295017503810105010930093115810B +:1003D000257F95027508810609381581257F9501CD +:1003E00075088106050C0A38021581257F9501756F +:1003F000088106C0C005010906A101050719E02909 +:10040000E7150025019508750181029501750881A0 +:1004100001050819012905950575019102950175D8 +:100420000391010507190029FF150025FF950675A1 +:10043000088100C00A002530325820006B657962BF +:100440006F6172645F7265706F72743A20004B6501 +:1004500079626F617264204C4544732073746174D7 +:10046000653A2025780A0064656C5F6B65795F6288 +:1004700069743A2063616E27742064656C3A2025A4 +:100480003032580A006164645F6B65795F62697439 +:100490003A2063616E2774206164643A202530320B +:1004A000580A00646F6E652E0A00626F6F676D6197 +:1004B000676963207363616E3A202E2E2E20002917 +:1004C0000A002575002F002575005D2800256400B1 +:1004D0002000256400200025640020002564007CA5 +:1004E0000025303258006D6F7573656B6579205B40 +:1004F00062746E7C782079207620685D2872657041 +:100500002F61636C293A205B006D6B5F77686565CE +:100510006C5F74696D655F746F5F6D6178203D20FD +:1005200025640A006D6B5F776865656C5F6D617847 +:100530005F7370656564203D2025640A006D6B5F04 +:1005400074696D655F746F5F6D6178203D2025640F +:100550000A006D6B5F6D61785F7370656564203D47 +:100560002025640A006D6B5F696E74657276616C3C +:10057000203D2025640A006D6B5F64656C61792005 +:100580003D2025640A006D6B5F776865656C5F745C +:10059000696D655F746F5F6D6178203D2025640A29 +:1005A000006D6B5F776865656C5F6D61785F737018 +:1005B000656564203D2025640A006D6B5F74696D7C +:1005C000655F746F5F6D6178203D2025640A006D62 +:1005D0006B5F6D61785F7370656564203D20256495 +:1005E0000A006D6B5F696E74657276616C203D20E8 +:1005F00025640A006D6B5F64656C6179203D202580 +:10060000640A000A00257500363A20776865656C33 +:100610005F74696D655F746F5F6D61783A20000A81 +:1006200000257500353A20776865656C5F6D6178E7 +:100630005F73706565643A20000A00257500343ADE +:100640002074696D655F746F5F6D61783A20000A90 +:1006500000257500333A206D61785F7370656564BD +:100660003A20000A00257500323A20696E746572DE +:1006700076616C286D73293A20000A0025750031D7 +:100680003A2064656C6179282A31306D73293A20EB +:10069000000A092D2056616C756573202D0A004DE6 +:1006A0003E004D25643E20003F0073657420646564 +:1006B0006661756C740A00433E2000776865726558 +:1006C0002064656C74613A20637572736F723D25A6 +:1006D000642C20776865656C3D25640A5365652048 +:1006E000687474703A2F2F656E2E77696B69706528 +:1006F0006469612E6F72672F77696B692F4D6F7513 +:1007000073655F6B6579730A000A092D204D6F755B +:1007100073656B6579202D0A4553432F713A097132 +:100720007569740A313A0964656C6179282A313037 +:100730006D73290A323A09696E74657276616C28A4 +:100740006D73290A333A096D61785F73706565646A +:100750000A343A0974696D655F746F5F6D61780A78 +:10076000353A09776865656C5F6D61785F737065B0 +:1007700065640A363A09776865656C5F74696D650A +:100780005F746F5F6D61780A0A703A097072696E02 +:10079000742076616C7565730A643A097365742018 +:1007A00064656661756C74730A75703A092B310A59 +:1007B000646F776E3A092D310A706775703A092BAC +:1007C00031300A7067646F776E3A092D31300A0A4A +:1007D0007370656564203D2064656C7461202A2017 +:1007E0006D61785F7370656564202A20287265707A +:1007F000656174202F2074696D655F746F5F6D6132 +:1008000078290A003F004D3E2000433E20004C2541 +:10081000640A0074696D65725F636F756E743A2067 +:100820002530346C580A006B6579626F6172645FC1 +:100830006E6B726F3A2025580A006B6579626F61A2 +:1008400072645F69646C653A2025580A006B6579AB +:10085000626F6172645F70726F746F636F6C3A2065 +:1008600025580A00686F73745F6B6579626F6172F7 +:10087000645F6C65647328293A2025580A000A09C8 +:100880002D20537461747573202D0A004743433A39 +:1008900020342E392E32204156522D4C4942433AB3 +:1008A00020312E382E31204156525F415243483A72 +:1008B00020617672350A004F5054494F4E533A200A +:1008C0004C55464120424F4F544D41474943204DDE +:1008D0004F5553454B45592045585452414B455966 +:1008E00020434F4E534F4C4520434F4D4D414E44B6 +:1008F000204E4B524F203531320A004255494C446C +:100900003A20313637313865662D64697274792042 +:100910002832333A35333A3330204A756E20203945 +:100920002032303136290A005649443A2030784680 +:10093000454544284E6F626F647929205049443AF6 +:100940002030783630363028726574726F5F726589 +:1009500066697429205645523A203078303030315B +:100960000A00444553433A20526574726F20526521 +:100970006669740A000A092D2056657273696F6EE4 +:10098000202D0A000A092D20436F6E736F6C6520BD +:100990002D0A4553432F713A09717569740A6D3AEE +:1009A000096D6F7573656B65790A000A092D204D15 +:1009B00061676963202D0A443A09446562756720BE +:1009C0004D65737361676520546F67676C650A587E +:1009D0003A094D6174726978204465627567204DEB +:1009E0006F646520546F67676C65202D2053686FB6 +:1009F00077206B65797072657373657320696E20FB +:100A00006D617472697820677269640A4B3A094BA8 +:100A10006579626F61726420446562756720546F06 +:100A200067676C65202D2053686F77206B65797040 +:100A300072657373207265706F72740A4D3A09445F +:100A400065627567204D6F75736520546F67676CBD +:100A5000650A563A0956657273696F6E0A533A0908 +:100A60005374617475730A433A094163746976611A +:100A7000746520436F6E736F6C65204D6F64650AFB +:100A800046312D4631303A095377697463682074D2 +:100A90006F204C6179657220302D39202846313025 +:100AA000203D204C30290A302D393A09537769749A +:100AB000636820746F204C6179657220302D390A8B +:100AC0004553433A0953776974636820746F204C27 +:100AD0006179657220302028616C7465726E617472 +:100AE00065206B65792031290A47524156453A09FC +:100AF00053776974636820746F204C617965722044 +:100B0000302028616C7465726E617465206B657944 +:100B10002032290A50415553453A094A756D7020D3 +:100B2000746F20426F6F746C6F616465722028521D +:100B300065736574290A453A095072696E742045D7 +:100B40004550524F4D2053657474696E67730A4E59 +:100B50003A094E4B524F20546F67676C650A000A82 +:100B6000002575002E6E6B726F3A20000A00257505 +:100B7000002E737761705F6261636B736C61736881 +:100B80005F6261636B73706163653A20000A0025E0 +:100B900075002E737761705F67726176655F65734C +:100BA000633A20000A002575002E6E6F5F67756935 +:100BB0003A20000A002575002E737761705F72611C +:100BC0006C745F726775693A20000A002575002E03 +:100BD000737761705F6C616C745F6C6775693A20E4 +:100BE000000A002575002E636170736C6F636B5F84 +:100BF000746F5F636F6E74726F6C3A20000A002529 +:100C000075002E737761705F636F6E74726F6C5FC7 +:100C1000636170736C6F636B3A20000A0025303299 +:100C200058006B65796D61705F636F6E6669672EE2 +:100C30007261773A20000A002575002E6D6F75737A +:100C4000653A20000A002575002E6B6579626F6198 +:100C500072643A20000A002575002E6D6174726975 +:100C6000783A20000A002575002E656E61626C6579 +:100C70003A20000A00253032580064656275675FCB +:100C8000636F6E6669672E7261773A20000A0025ED +:100C9000750064656661756C745F6C617965723A44 +:100CA00020003F004E4B524F3A206F66660A004EBE +:100CB0004B524F3A206F6E0A000A6D6F7573653A9A +:100CC000206F66660A000A6D6F7573653A206F6E55 +:100CD0000A000A6B6579626F6172643A206F66661A +:100CE0000A000A6B6579626F6172643A206F6E0A5E +:100CF000000A6D61747269783A206F66660A000AAC +:100D00006D61747269783A206F6E0A000A646562D8 +:100D100075673A206F66660A000A64656275673A0D +:100D2000206F6E0A000A0A4A756D70696E6720743A +:100D30006F20626F6F746C6F616465722E2E2E204F +:100D400000433E20006565636F6E6669673A0A007E +:100D500011241FBECFEFDAE0DEBFCDBF04B603FE25 +:100D600024C080910B0290910C02A0910D02B091D1 +:100D70000E028730904BA740B04BB9F410920B0293 +:100D800010920C0210920D0210920E0214BE84B743 +:100D9000877F84BF88E10FB6F8948093600010923B +:100DA00060000FBEE0E0FFE3099511E0A0E0B1E0D4 +:100DB000E8E8F8E502C005900D92AC34B107D9F728 +:100DC00012E0ACE4B1E001C01D92AB30B107E1F735 +:100DD0000E940E0F0C94422C0C940000FF93EF9392 +:100DE000E0914C01F0914D01309709F00995EF9198 +:100DF000FF910895FC018591803011F0EFDFFBCF6A +:100E00000895FF27E0E230E247FF0CC0419597FFCD +:100E100009C0EDE26095709580959095611D711DFA +:100E2000811D911D27FF02C0219530E350E2AA27C2 +:100E3000660F771F881F991FAA1FA41710F0A41B05 +:100E400063955A95A9F7AA3008F0A95FA05DAF9302 +:100E5000F395611571058105910541F7ED3211F4A6 +:100E6000EF93F395F21718F43F93F395FBCF8F911F +:100E7000B5DFFA95E1F70895E991F9918591803010 +:100E800021F0853219F0AADFF9CF089520E0E89427 +:100E900055915532C1F3503311F4689455915A333A +:100EA00048F4505390F3220F022E220F220F200DF0 +:100EB000250FF4CF0EF4219589919991533619F3AA +:100EC000533729F1533559F1BC0188279927E89404 +:100ED0005C3621F48991999168945591543639F48E +:100EE00046EF7EF077FF0DC08FEF9FEF0AC05537BA +:100EF0004AE039F0583540E121F0523642E009F03D +:100F00000895FF93EF937DDFEF91FF91B7CFFF93AC +:100F1000EF93FC0181918030B9F360DFFBCFFF9349 +:100F2000EF9368DFF1CFDF93CF93CDB7DEB7259690 +:100F3000A3DFCF91DF91089508950895569A5E9AA0 +:100F40000C949C0781FF02C0509A01C05098589899 +:100F500080FF02C0519A01C05198599882FF02C087 +:100F60003E9A01C03E9846980C949D0761110BC0B3 +:100F7000FC018281882321F085EE0E94D71503C0F1 +:100F800085EE0E949F1680E090E00895089581E02C +:100F9000089581E008950C94C90708950F931F9355 +:100FA000CF93DF938C01FC01C081D181CE010E94DF +:100FB000551EBE010E947B08EC01B8010E94CB07C0 +:100FC000882309F48DC0F8018281882309F44AC07E +:100FD0008091590181111FC0C431F0E5DF0709F08C +:100FE00051C00E94CD0781E0809359010E94A42046 +:100FF0009093580180935701109250011092520122 +:101000001092510110925401109253011092560106 +:101010001092550165C080915701909158010E942E +:10102000B020883C910570F480915001E82FF0E0E9 +:10103000EE0FFF1FEF5AFE4FD183C0838F5F809367 +:1010400050014EC0C43880E5D80721F0C538D045DE +:1010500001F13AC0F8018281882341F010924E01DB +:1010600082E01EC0C438E0E5DE0759F580914E01EC +:10107000811106C086E20E94D71586E20E949F1663 +:1010800082E01CC0C438F0E5DF0741F3C538D04525 +:10109000D9F4F8018281882331F010924F0180E267 +:1010A0000E94EE161DC080914F01811106C087E29B +:1010B0000E94D71587E20E949F1680E20E94F516D3 +:1010C0000FC0C538D04529F381E080934E0180934D +:1010D0004F01C801DF91CF911F910F910C94C70769 +:1010E00080E0DF91CF911F910F9108950C949E079E +:1010F0000C94C6070895E72FF0E09BE0899FE00D70 +:10110000F11D112483E0EE0FFF1F8A95E1F7E60F32 +:10111000F11DEE0FFF1FE65FFE4F8591949108953C +:10112000880F991FFC01E657F0408591949108952E +:10113000880F991FFC01E65FFE4F859194910895F9 +:101140000F931F93CF93DF93EC01811520E3920758 +:1011500050F5C11580E2D80708F0C3C0CB3BD105DC +:1011600090F4C83AD10508F06AC0C53AD10508F034 +:101170005BC0C430D10508F0D4C1219709F0CEC1BD +:1011800001E010E00EC2CF3FD10511F008F0C9C157 +:10119000C03FD10508F0A2C0CE01805E910908973A +:1011A00008F4BFC1BBC1C13090E5D90709F4A2C0A2 +:1011B00020F5C0318FE4D80770F4C11590E4D90749 +:1011C00008F094C0C11521E3D20708F0A7C1DD27BC +:1011D0008E01106CE6C1C115D04509F09FC10E9477 +:1011E0005C198FEF94E32CE0815090402040E1F7B0 +:1011F00000C000000E94FF20D4C1C11597E5D907A7 +:1012000058F4C03121E5D20708F020C1C43180E58F +:10121000D80708F479C082C1CE019057811590415A +:1012200008F07CC1DF7077C1C53AD10509F47BC1F4 +:10123000C63AD10509F07AC102E810E4B2C1C83A51 +:10124000D10509F476C1C93AD10509F475C1CA3A84 +:10125000D10509F474C1CB3AD10509F473C1CC3A74 +:10126000D10509F472C1CD3AD10509F471C1C03B71 +:10127000D10509F470C1CE3AD10509F46FC1CF3A56 +:10128000D10509F46EC1C13BD10509F46DC1C23B62 +:10129000D10509F46CC1C33BD10509F46BC1C43B52 +:1012A000D10509F46AC1C53BD10509F469C1C63B42 +:1012B000D10509F468C1C73BD10509F467C1C83B32 +:1012C000D10509F466C1C93BD10509F465C1CA3B22 +:1012D000D10509F464C100E014E463C18E01106516 +:1012E00060C1CE019F700E9498085CC1DF708E01C2 +:1012F000106A57C18AEB91E00E94FA068091EC01D6 +:1013000081608093EC014DC10E94AC22811102C02A +:101310000E9492220E94C92290E090930B02809337 +:101320000A02C23080E5D80721F480910A02816068 +:1013300086C0C43090E5D90721F480910A0282600A +:101340007EC0C63020E5D20721F480910A02846075 +:1013500076C0C83080E5D80719F480910A0227C00A +:10136000CA3090E5D90721F480910A02806167C0F4 +:10137000CC3020E5D20721F480910A0280625FC060 +:10138000CE3080E5D80721F480910A02806457C0EE +:10139000C03190E5D90721F480910A0280684FC0DE +:1013A000C23120E5D20729F480910A028460886066 +:1013B00046C0C33080E5D80721F480910A028E7FB1 +:1013C0003EC0C53090E5D90721F480910A028D7F97 +:1013D00036C0C73020E5D20721F480910A028B7F06 +:1013E0002EC0C93080E5D80719F480910A0226C0C2 +:1013F000CB3090E5D90721F480910A028F7E1FC07F +:10140000CD3020E5D20721F480910A028F7D17C0EC +:10141000CF3080E5D80721F480910A028F7B0FC07E +:10142000C13190E5D90721F480910A028F7707C076 +:10143000C331D04531F480910A028B7F877F80933E +:101440000A0280910A020E94CD22ABC08D2F9927FB +:101450008F70992781309105D9F49E01237033272D +:1014600002C0880F991F2A95E2F79C688E0144E01C +:10147000000F111F4A95E1F700271370802B912B65 +:1014800053E0CC0FDD1F5A95E1F7C076DD272FC062 +:101490008230910531F4DC2FCC278E01016F106A68 +:1014A00080C08330910569F4CE018370992701E0F3 +:1014B00010E002C0000F111F8A95E2F7C8019C6876 +:1014C0000FC084309105B9F4CE018370992701E0F3 +:1014D00010E002C0000F111F8A95E2F7C8019A6858 +:1014E00023E0CC0FDD1F2A95E1F7C07ED7708C0179 +:1014F0000C2B1D2B56C08530910531F4DC2FCC27E9 +:101500008E01046F106A4DC0069709F04AC0CF7172 +:10151000DD27DC2FCC278E01106243C000E010E0F5 +:1015200040C08E013EC001E810E43BC003E810E477 +:1015300038C002EE14E435C009EE14E432C00AEEFD +:1015400014E42FC005EB14E42CC006EB14E429C00E +:1015500007EB14E426C00CEC14E423C00DEC14E4F7 +:1015600020C003E815E41DC00AE815E41AC002E92A +:1015700015E417C004E915E414C001E216E411C033 +:1015800003E216E40EC004E216E40BC005E216E422 +:1015900008C006E216E405C007E216E402C00AE24B +:1015A00016E4C801DF91CF911F910F910895E72FA5 +:1015B000F0E09BE0899FE00DF11D112483E0EE0F28 +:1015C000FF1F8A95E1F7E60FF11DEE0FFF1FE65FA3 +:1015D000FE4F85919491803E9105E0F4803C910509 +:1015E00058F58133910509F46FC048F489329105AB +:1015F00009F463C08A32910509F46DC072C0893361 +:101600009105E9F082389105D1F08533910509F40F +:101610004DC067C0833E910581F138F4803E91054D +:10162000B9F0823E9105D9F05CC0863E910561F12A +:10163000873E9105A1F155C00E9490080895209120 +:101640000A0220FD02C021FF4CC080EE90E049C09C +:1016500080910A0280FFF9CF89E390E042C0809137 +:101660000A0282FF0EC080910A0284FF03C080E05C +:1016700090E037C083EE90E034C080910A0282FF90 +:10168000F2CF82EE90E02DC080910A0283FF0BC062 +:1016900080910A0284FDEBCF87EE90E022C080911A +:1016A0000A0283FFF5CF86EE90E01BC080910A020C +:1016B00085FF07C089E290E014C080910A0285FF8F +:1016C000F9CF85E390E00DC080910A0286FF07C044 +:1016D0008AE290E006C080910A0286FFF9CF81E39A +:1016E00090E00E94A00808950C94A207E82FF0E073 +:1016F000E35EFE4F8081E82FEF70F0E082958F70FF +:1017000021E030E0A90102C0440F551F8A95E2F79D +:1017100040A308950F931F93CF93DF9385B78068FD +:1017200085BF85B7806885BFCAE0D0E001E010E0E2 +:10173000FE01E35EFE4F8081E82FEF70F0E021A113 +:1017400082958F70A80102C0440F551F8A95E2F759 +:10175000CA01822B81A38C2F0E94760B219740F720 +:1017600087E090E061E070E0FC01EB5EFE4F2081DD +:10177000E22FEF70F0E042A122952F70DB0102C052 +:10178000AA0FBB1F2A95E2F79D01242B22A30197E4 +:1017900058F7DF91CF911F910F910C947608EF923B +:1017A000FF920F931F93CF93DF9305E611E0CAE0FA +:1017B000EE24E394F12CD5E08C2F0E94760B87E089 +:1017C00090E040E0FC01EB5EFE4F5081E52FEF70B2 +:1017D000F0E020A130E052955F7002C0359527956A +:1017E0005A95E2F720FD07C09701082E01C0220F8D +:1017F0000A94EAF7422B019728F7F80182918F01AA +:10180000841719F04083D09300018C2F0E94760B2F +:10181000C15090F68091000187FD32C09091EC019B +:1018200090FF10C0282F332727FD30953F938F93CB +:1018300083E092E09F938F930E9493070F900F9005 +:101840000F900F908091000181508093000187FDDF +:1018500007C08FE99FE00197F1F700C0000010C0BA +:1018600080E090E0FC01EB59FE4FDC01A65ABE4F30 +:101870001A962C9122870197853FEFEF9E0791F7EB +:101880000E94780881E0DF91CF911F910F91FF9026 +:10189000EF900895E82FF0E0EB59FE4F8081089516 +:1018A0000F931F93CF93DF938091EC0180FF04C0CF +:1018B00084EE91E00E94FA06C0E0D0E00CEC11E06A +:1018C0008091EC0180FF15C0FE01EB59FE4F808135 +:1018D00090E00E9419209F938F93DF93CF931F93E3 +:1018E0000F930E9493070F900F900F900F900F90FF +:1018F0000F902196CB30D10519F7DF91CF911F9131 +:101900000F9108950F931F93CF9300E711E0C0E06C +:10191000F80182918F0190E00E94F71FC80FF1E05B +:1019200005361F07A9F78C2FCF911F910F910895AE +:101930008091830108959FB7F894109272019FBF20 +:1019400090910102943009F057C09091E9009F7086 +:101950003091EC00232F217030FD20E8922B24E001 +:101960002093E9002091EB0020FF43C02091EE007E +:1019700027FF3FC020917001222321F02091E80031 +:1019800025FF37C01092700126E03091E80035FD48 +:1019900015C030910102343061F53091EB0035FD16 +:1019A00028C0215021F481E08093700122C0EFE92A +:1019B000FFE03197F1F700C00000E7CF8093F1001E +:1019C0008091E80085FD0AC08091E80080FFFCCF8F +:1019D0008091E8008E778093E80006C08FB7F89476 +:1019E00021E0209372018FBF9F709093E90080E007 +:1019F00008959F709093E9008FEF0895CF93DF9340 +:101A000000D01F92CDB7DEB79C01809101028430D7 +:101A100019F593E099833B832A839093E9008FEF34 +:101A20009091E800815095FD06C095ED9A95F1F7EB +:101A300000008111F5CF8091E80085FF0DC040E0E6 +:101A400050E063E070E0CE0101960E94C40F8091E7 +:101A5000E8008E778093E8000F900F900F90DF9151 +:101A6000CF910895CF93DF9300D01F92CDB7DEB70B +:101A700020910102243021F522E029839B838A836F +:101A800083E08093E9008FEF9091E800815095FD0D +:101A900006C095ED9A95F1F700008111F5CF809180 +:101AA000E80085FF0DC040E050E063E070E0CE014B +:101AB00001960E94C40F8091E8008E778093E80021 +:101AC0000F900F900F90DF91CF9108952091010218 +:101AD0002430F1F422E02093E9002FEF3091E80068 +:101AE000215035FD06C035ED3A95F1F70000211182 +:101AF000F5CF2091E80025FF0BC040E050E065E005 +:101B000070E00E94C40F8091E8008E778093E80017 +:101B10000895CF93DF9320910102243009F048C04B +:101B2000EC0180910B018823E1F080910C01882366 +:101B3000C1F085E08093E9008FEF9091E80081503B +:101B400095FD06C095E19A95F1F700008111F5CF5A +:101B50008091E80085FF2CC040E050E060E170E03B +:101B600017C081E08093E9008FEF9091E8008150E9 +:101B700095FD06C095ED9A95F1F700008111F5CF1E +:101B80008091E80085FF14C040E050E068E070E01C +:101B9000CE010E94C40F8091E8008E778093E80008 +:101BA00080E1FE01A3E7B1E001900D928A95E1F793 +:101BB000DF91CF91089588E492E00E94FA06809127 +:101BC0000002811109C00E9459110E94B611809132 +:101BD000E20084608093E200089584E492E00E9431 +:101BE000FA0610920002089580E492E00C94FA063E +:101BF0008CE392E00C94FA0688E392E00E94FA06E5 +:101C00000C946C20209171012F5F822F62E30E945F +:101C1000D22B992319F0209371010895109271012C +:101C200080917201882371F180910102843041F525 +:101C30008091E9008F702091EC00922F917020FD2F +:101C400090E8892B94E09093E9009091EB0090FF4D +:101C500014C09091EE0097FF10C09091E80095FF9E +:101C600003C01092F100F9CF9091E80090FF05C0F9 +:101C70009091E8009E779093E8008F708093E90040 +:101C800010927201089542E061EC81E00E94D3104D +:101C900042E061EC82E00E94D31042E061EC83E01C +:101CA0000E94D31042E261EC84E00E94D31042E132 +:101CB00061EC85E00C94D31080910302833009F429 +:101CC00055C030F4813071F0823009F48EC008952F +:101CD0008A3009F47AC08B3009F460C0893009F089 +:101CE0009CC020C080910202813A09F096C0809188 +:101CF000E800877F8093E8008091060290910702B8 +:101D0000892B21F460E183E791E003C060E080E08B +:101D100090E070E00E940F108091E8008B77809334 +:101D2000E800089580910202813209F076C0809126 +:101D3000060290910702009719F0049709F06DC010 +:101D40008091E800877F8093E8008091E80082FD21 +:101D500005C0809101028111F8CF5FC08091F10030 +:101D6000809383018091E8008B7753C080910202B9 +:101D7000813A09F052C08091060290910702892BA6 +:101D800009F04BC08091E800877F8093E800809144 +:101D9000E80080FFFCCF80910B0136C080910202E9 +:101DA0008132D9F58091060290910702892BA9F51D +:101DB0008091E800877F8093E8000E94081180915D +:101DC000040280930B010C945C1980910202813211 +:101DD00021F58091E800877F8093E8000E94081138 +:101DE0008091050280938401089580910202813AD6 +:101DF000A1F48091E800877F8093E8008091E8005B +:101E000080FFFCCF809184018093F1008091E800F5 +:101E10008E778093E8000C940811089584B7877F2B +:101E200084BF88E10FB6F894809360001092600040 +:101E30000FBE90E080E80FB6F89480936100909315 +:101E400061000FBE0E94E8140E9459110E94B61151 +:101E50008091E20084608093E2008BE99CE00E9424 +:101E6000F21F78940E943B140E94EA1481E091E0F2 +:101E70000E94561487E292E00E94FA0680910102C5 +:101E8000853089F483E292E00E94FA060E943320B2 +:101E90008091FF01882391F30E945E20882371F3D3 +:101EA0000E94AE0FEBCF0E941215E8CF292F3327E7 +:101EB00023303105C9F064F42130310581F022303E +:101EC000310509F043C08DE890E02AE732E042C0D6 +:101ED00021323105F1F02232310541F137C082E182 +:101EE00090E027E033E036C099278130910541F03A +:101EF0008230910541F0892B49F5E6E7F2E005C013 +:101F0000E6E6F2E002C0ECE4F2E0849190E09F01AA +:101F100021C06530D8F4E62FF0E0EE0FFF1FE95C3A +:101F2000FE4F2081318189E090E014C0653070F46B +:101F300070E0FB01EE0FFF1FE35DFE4F208131815A +:101F4000FB01E85DFE4F808190E004C080E090E0FE +:101F500020E030E0FA0131832083089580E189BDDB +:101F600082E189BD09B400FEFDCF8091D8008F7D4C +:101F70008093D8008091E00082608093E00080919F +:101F8000E00081FDFCCF0895CF92DF92EF92FF92A7 +:101F90000F931F93CF93DF93EC018B016A010E9493 +:101FA0002711811133C0C114D10439F0F6018081A9 +:101FB0009181081B190BC80FD91FE12CF12C0115B9 +:101FC000110519F18091E80085FD16C08091E800A7 +:101FD0008E778093E800C114D10449F0F601808126 +:101FE0009181E80EF91EF182E08285E00FC00E9427 +:101FF0002711882321F30AC089918093F1000150B1 +:102000001109FFEFEF1AFF0ADACF80E0DF91CF91DD +:102010001F910F91FF90EF90DF90CF900895209146 +:102020000802309109022617370748F0611571053B +:1020300039F42091E8002E772093E80001C0B9011F +:1020400040E061157105A9F120910102222309F4F4 +:1020500043C0253009F442C02091E80023FD40C070 +:102060002091E80022FD32C02091E80020FFE9CF56 +:102070004091F3002091F20030E0342BFC01CF01BD +:102080006115710559F02830310540F48191809334 +:10209000F100615071092F5F3F4FF1CF41E02830CF +:1020A000310509F040E02091E8002E772093E80008 +:1020B000C8CF4111C9CF0AC080910102882361F0C5 +:1020C000853061F08091E80083FD0AC08091E800CE +:1020D00082FFF2CF80E0089582E0089583E00895C2 +:1020E00081E00895209108023091090226173707F0 +:1020F00048F06115710539F42091E8002E7720939E +:10210000E80001C0B901FC0120E06115710591F101 +:1021100080910102882309F440C0853009F43FC052 +:102120008091E80083FD3DC08091E80082FD2FC0D2 +:102130008091E80080FFE9CF2091F3008091F200C8 +:1021400090E0922B6115710559F08830910540F4AB +:1021500024912093F1003196615071090196F2CFDC +:1021600021E0089709F020E08091E8008E778093C5 +:10217000E800CBCF2111CCCF0AC080910102882387 +:1021800061F0853061F08091E80083FD0AC08091A4 +:10219000E80082FFF2CF80E0089582E0089583E0B6 +:1021A000089581E00895982F973058F59093E900AD +:1021B000981739F07091EC002091ED005091F000EB +:1021C00003C0242F762F50E021FF19C03091EB007F +:1021D0003E7F3093EB003091ED003D7F3093ED007A +:1021E0003091EB0031603093EB007093EC00209362 +:1021F000ED005093F0002091EE0027FF07C09F5F95 +:10220000D3CF8F708093E90081E0089580E0089536 +:102210008091020287FF11C08091E80082FD05C015 +:10222000809101028111F8CF11C08091E8008B7775 +:102230000BC080910102882349F08091E80080FF63 +:10224000F8CF8091E8008E778093E8000895209180 +:10225000E4003091E50095E64091EC00842F817018 +:1022600040FF22C08091E80080FD1CC080910102E7 +:10227000882391F0853091F08091EB0085FD10C0AE +:102280004091E4005091E5004217530729F39A0169 +:10229000915011F784E0089582E0089583E0089555 +:1022A00081E0089580E008954091E80042FFDECF8C +:1022B00008950E94C7110E94CF11E0EEF0E08081E6 +:1022C00081608083E8EDF0E080818F77808319BCA6 +:1022D000A7EDB0E08C918E7F8C9380818F7E808380 +:1022E0001092000208950F931F93CF93DF930E94E3 +:1022F000C7110E94CF11C8EDD0E088818F77888305 +:1023000088818068888388818F7D888319BC10923A +:1023100001021092FD011092FF011092FE0100EEE9 +:1023200010E0F80180818B7F8083888181608883C1 +:1023300042E060E080E00E94D310E1EEF0E08081B6 +:102340008E7F8083E2EEF0E08081816080838081F7 +:1023500088608083F80180818E7F8083888180619E +:102360008883DF91CF911F910F910895E8EDF0E000 +:1023700080818F7E8083E7EDF0E0808181608083C3 +:1023800084E082BF81E0809300020C947311E8ED39 +:10239000F0E080818E7F80831092E2000895109299 +:1023A000DA001092E10008951F920F920FB60F927B +:1023B00011242F933F934F935F936F937F938F934A +:1023C0009F93AF93BF93EF93FF938091E10082FFC0 +:1023D0000BC08091E20082FF07C08091E1008B7FFB +:1023E0008093E1000E94020E8091DA0080FF1FC0FE +:1023F0008091D80080FF1BC08091DA008E7F80938F +:10240000DA008091D90080FF0DC080E189BD82E1B2 +:1024100089BD09B400FEFDCF81E0809301020E94D6 +:10242000DB0D05C019BC109201020E94ED0D8091D8 +:10243000E10080FF19C08091E20080FF15C080910B +:10244000E2008E7F8093E2008091E20080618093C1 +:10245000E2008091D80080628093D80019BC85E0AA +:10246000809301020E94F80D8091E10084FF30C04A +:102470008091E20084FF2CC080E189BD82E189BDAA +:1024800009B400FEFDCF8091D8008F7D8093D800E5 +:102490008091E1008F7E8093E1008091E2008F7E49 +:1024A0008093E2008091E20081608093E20080915D +:1024B000FD01882311F084E007C08091E30087FDCF +:1024C00002C081E001C083E0809301020E94FC0D04 +:1024D0008091E10083FF29C08091E20083FF25C045 +:1024E0008091E100877F8093E10082E08093010288 +:1024F0001092FD018091E1008E7F8093E100809138 +:10250000E2008E7F8093E2008091E2008061809300 +:10251000E20042E060E080E00E94D3108091F00091 +:1025200088608093F0000E94F40DFF91EF91BF91BD +:10253000AF919F918F917F916F915F914F913F915B +:102540002F910F900FBE0F901F9018951F920F9212 +:102550000FB60F9211242F933F934F935F936F9376 +:102560007F938F939F93AF93BF93CF93DF93EF931B +:10257000FF93C091E900CF708091EC00D82FD1700B +:1025800080FDD0E81092E9008091F000877F809371 +:10259000F00078940E94EA121092E9008091F00015 +:1025A00088608093F000CD2BCF70C093E900FF913D +:1025B000EF91DF91CF91BF91AF919F918F917F91DB +:1025C0006F915F914F913F912F910F900FBE0F90A0 +:1025D0001F9018951F93CF93DF93CDB7DEB7AA97BF +:1025E0000FB6F894DEBF0FBECDBFE2E0F2E088E0A8 +:1025F0008E0F9091F10091938E13FBCF0E945C0E91 +:102600008091E80083FF1FC1809102029091030234 +:10261000492F50E04A30510508F015C1FA01EA5A35 +:10262000FF4F0C94F22B803881F0823809F00BC1F7 +:10263000809106028F708093E9008091EB0085FB0A +:10264000882780F91092E90006C08091FE019091E0 +:10265000FF01911182609091E800977F9093E800CC +:102660008093F1001092F100C8C0282F2D7F09F04F +:10267000EAC0882319F0823061F0E5C0809104023D +:10268000813009F0E0C0933009F080E08093FF01D1 +:102690002BC080910402811127C0809106028F70A7 +:1026A00009F4D1C08093E9002091EB0020FF1CC009 +:1026B000933021F48091EB00806214C09091EB0084 +:1026C00090619093EB0021E030E0A90102C0440F3B +:1026D000551F8A95E2F74093EA001092EA00809134 +:1026E000EB0088608093EB001092E9008091E80095 +:1026F000877F86C08111A7C0109104021F77809147 +:10270000E3008078812B8093E3008091E800877F4D +:102710008093E8000E9408118091E80080FFFCCFC0 +:102720008091E30080688093E300111102C082E091 +:1027300001C083E08093010286C08058823008F097 +:1027400082C080910402909105028C3D53E0950770 +:1027500079F583E08A838AE289834FB7F894DE01B2 +:10276000139620E03EE051E2E32FF0E05093570053 +:10277000E49120FF03C0E295EF703F5FEF708E2F72 +:1027800090E0EA3010F0C79601C0C0968D939D93FB +:102790002F5F243149F74FBF8091E800877F8093F6 +:1027A000E8006AE270E0CE0101960E940F1014C0AA +:1027B000AE014F5F5F4F609106020E94560FBC0151 +:1027C000009709F440C09091E800977F9093E8004B +:1027D00089819A810E9472108091E8008B778093A2 +:1027E000E80031C0803879F58091E800877F8093D8 +:1027F000E8008091FD018093F1008091E8008E77E0 +:102800008093E8000E9408111EC081111CC09091A5 +:1028100004029230C0F48091E800877F8093E80042 +:102820009093FD010E9408118091FD01811106C065 +:102830008091E30087FD02C081E001C084E08093C5 +:1028400001020E94430E8091E80083FF0AC080913C +:10285000E800877F8093E8008091EB00806280939E +:10286000EB00AA960FB6F894DEBF0FBECDBFDF9186 +:10287000CF911F910895CF93809101028823A1F0F9 +:10288000C091E900CF709091EC00892F817090FD8C +:1028900080E8C82B1092E9008091E80083FD0E9437 +:1028A000EA12CF70C093E900CF91089590938A0106 +:1028B000809389010895E0918901F0918A01309710 +:1028C00021F00190F081E02D099480E00895EF92CD +:1028D000FF920F931F93CF93DF93E0918901F091C3 +:1028E0008A013097B1F18C010280F381E02D0995C6 +:1028F0008091EC0182FF2DC080FF04C08CE394E046 +:102900000E94FA06E80110E186E3E82E84E0F82E42 +:102910008091EC0180FF0BC088811F928F93FF9202 +:10292000EF920E9493070F900F900F900F9011500D +:1029300021961111EDCF8091EC0180FF0AC084E354 +:1029400094E0DF91CF911F910F91FF90EF900C9445 +:10295000FA06DF91CF911F910F91FF90EF900895AC +:10296000E0918901F0918A01309721F00480F5818E +:10297000E02D0994089520918701309188018217F4 +:10298000930771F09093880180938701E09189010A +:10299000F0918A01309721F00680F781E02D0994AB +:1029A000089520918501309186018217930771F077 +:1029B0009093860180938501E0918901F0918A01CD +:1029C000309721F00084F185E02D09940895089551 +:1029D0000C94E7140E949B200E948A0B0E945D21A8 +:1029E00081E080930C010895CF93DF931F92CDB7C0 +:1029F000DEB79091EC0192FF10C090FF0EC01F92C5 +:102A00008F932EE434E03F932F9389830E949307A2 +:102A10000F900F900F900F9089810F90DF91CF91C1 +:102A20000C94740B9F92AF92BF92CF92DF92EF9271 +:102A3000FF920F931F93CF93DF9300D000D000D06D +:102A4000CDB7DEB70E94CF0B0AE010E0AA24A39412 +:102A5000B12C902E802F0E944A0C980124573E4F93 +:102A60006901F901F080F826A1F40150110988F7F5 +:102A70008FEF89838A831B820E94A4208160782F34 +:102A80009D838C8349815A816B818D810E94A91518 +:102A90002FC09091EC0191FF04C08E830E94500CD6 +:102AA0008E8127E030E0A501022E01C0440F0A9478 +:102AB000EAF7E42E4F21C1F029839A828E2191E01A +:102AC00009F490E09B830E94A4208160782F9D836D +:102AD0008C8349815A816B818D810E94A915F601F1 +:102AE0008081E826E08204C021503109E0F6BDCFA4 +:102AF0000E94CE2410918B010E945B141817B9F02C +:102B00000E945B1480938B0126960FB6F894DEBF6B +:102B10000FBECDBFDF91CF911F910F91FF90EF902E +:102B2000DF90CF90BF90AF909F900C94F4142696B6 +:102B30000FB6F894DEBF0FBECDBFDF91CF911F91CE +:102B40000F91FF90EF90DF90CF90BF90AF909F904C +:102B50000895CF93DF93CDB7DEB72B970FB6F894D8 +:102B6000DEBF0FBECDBF4F83588769877A878B87BB +:102B7000DE01119686E0FD0111928A95E9F785E064 +:102B8000FE01379601900D928A95E1F749815A81AD +:102B90006B817C818D819E810E94FA1B2B960FB6E2 +:102BA000F894DEBF0FBECDBFDF91CF910895CF93D4 +:102BB000882309F4C2C0C82F823859F40E945B14DC +:102BC00081FDBBC089E30E94D41E0E94C31F89E31C +:102BD0000CC0833879F40E945B1480FDAEC083E59D +:102BE0000E94D41E0E94C31F83E50E94271FCF911D +:102BF0000C94C31F843859F40E945B1482FD9DC05D +:102C000087E40E94D41E0E94C31F87E4EECF8CEF9E +:102C10008C0F813A48F48C2F0E945B2981118DC062 +:102C20008C2F0E94D41EE3CF80E28C0F883048F4B2 +:102C3000C77081E001C0880FCA95EAF70E947C1F27 +:102C4000D6CF8BE58C0F833078F4C53A29F0C63A9D +:102C500031F083E890E005C081E890E002C082E8AE +:102C600090E0CF910C94BB1488E58C0F833108F071 +:102C700064C0C83A39F1C93A41F1CA3A49F1CB3A8C +:102C800051F1CC3A59F1CD3A61F1C03B69F1CE3AFC +:102C900071F1CF3A79F1C13B81F1C23B89F1C33B7C +:102CA00091F1C43B99F1C53BA1F1C63BA9F1C73BEA +:102CB000B1F1C83BB9F1C93BC1F1CA3BC9F180E0F0 +:102CC00090E038C082EE90E035C089EE90E032C0EE +:102CD0008AEE90E02FC085EB90E02CC086EB90E070 +:102CE00029C087EB90E026C08CEC90E023C08DECEF +:102CF00090E020C083E891E01DC08AE891E01AC00E +:102D000082E991E017C084E991E014C081E292E089 +:102D100011C083E292E00EC084E292E00BC085E233 +:102D200092E008C086E292E005C087E292E002C02D +:102D30008AE292E0CF910C94D114CF910895882328 +:102D400009F44BC0823859F40E945B1481FF45C0DE +:102D500089E30E94D41E0E94C31F89E30CC08338FC +:102D600071F40E945B1480FF38C083E50E94D41E7A +:102D70000E94C31F83E50E94271F0C94C31F843841 +:102D800059F40E945B1482FF28C087E40E94D41E7D +:102D90000E94C31F87E4EFCF9CEF980F913A58F33E +:102DA00090E2980F983050F4877091E001C0990F2D +:102DB0008A95EAF7892F0E94821FDFCF9BE5980F43 +:102DC000933020F480E090E00C94BB14885A833157 +:102DD00020F480E090E00C94D1140895882321F031 +:102DE0000E947C1F0C94C31F0895882321F00E9429 +:102DF000821F0C94C31F08957F928F929F92AF926F +:102E0000BF92CF92DF92EF92FF920F931F93CF93D7 +:102E1000DF931F92CDB7DEB77C01C62E772EFC0163 +:102E2000058102950F70128111110E94991F0E9455 +:102E3000CD1E882379F0112369F080E28C0D883053 +:102E400048F082E00E94B61E0E94CD1E91E0D82E6E +:102E5000D92601C0D12CE72DE295EF70F0E0E05AC1 +:102E6000FF4F0C94F22B872D807F072D0F70882346 +:102E700011F00295007F112389F0002309F498C115 +:102E800080E28C0D883020F4802F0E947C1F03C0CC +:102E9000802F0E948C1F0E94C31F8AC18C2D0E940C +:102EA0009F16002309F49DC180E28C0D883020F428 +:102EB000802F0E94821F03C0802F0E94921F0E94B9 +:102EC000C31F8FC1872D807F972D9F70803211F493 +:102ED000892F03C0892F8295807FCC2021F0F1E0DB +:102EE000CF16A1F01DC0112339F0002319F10130D4 +:102EF00009F50E94AC1F75C1002319F0013009F4D7 +:102F000070C189830E94AF1F898110C1112321F0F4 +:102F1000063008F066C10EC0053008F062C106C177 +:102F2000112359F0002331F0F701958190FF40C142 +:102F30009F7095830E94EE1654C1002309F4F6C0D9 +:102F40003DC1872D86958695837090E0009719F096 +:102F5000019761F046C1112321F08C2D972D9370BC +:102F600002C080E090E00E94BB143BC1112321F01D +:102F70008C2D972D937002C080E090E00E94D114B8 +:102F800030C18C2D112319F00E94542302C00E94DD +:102F9000BC230E94412425C1872D837009F052C0B3 +:102FA00011111FC18C2D829586958770880F880F0F +:102FB0009C2D9F70892E912CA12CB12C082E04C021 +:102FC000880C991CAA1CBB1C0A94D2F7C4FE14C01E +:102FD0000FE010E020E030E0B901A80104C0440F88 +:102FE000551F661F771F8A95D2F7CB01BA016095EE +:102FF00070958095909503C060E070E0CB01272D1F +:1030000026952695237030E02230310569F0233073 +:10301000310589F0682979298A299B2921303105D0 +:1030200071F00E94421DDDC0682979298A299B29F7 +:103030000E945E1DD6C00E94421DC501B4010E94BF +:10304000261DCFC0112319F0872D817001C08695F0 +:10305000882309F4C6C08C2D829586958770880FC9 +:10306000880F9C2D9F70892E912CA12CB12C082E9D +:1030700004C0880C991CAA1CBB1C0A94D2F7C4FE7D +:1030800014C00FE010E020E030E0B901A80104C056 +:10309000440F551F661F771F8A95D2F7CB01BA01DF +:1030A000609570958095909503C060E070E0CB01CD +:1030B000272D269526952370422F50E0423051054A +:1030C00069F04330510589F0682979298A299B29BB +:1030D0004130510571F00E941C1E83C06829792976 +:1030E0008A299B290E94381E7CC00E941C1EC50193 +:1030F000B4010E94001E75C08C2D90E0FC01E05EC2 +:10310000F109E531F10508F04FC0E059FF4F0C948B +:10311000F22B0C2D0F70872D8F71112321F00E943F +:10312000991D802F07CF0E94BA1D802F0E94F5168F +:1031300058C0112341F0053008F053C0872D8F711E +:103140000E94DF1D4EC0063008F04BC0F7CF1123A0 +:1031500039F0872D8F710E94991D43C01123C9F347 +:10316000872D8F710E94BA1D3CC0112329F0872D35 +:103170008F710E94841D35C00E947A1D32C01123B8 +:1031800051F0172D1F71812F0E94991D63E0812F2F +:103190000E94AD1E26C081E00E94B61E023008F1DA +:1031A00082E00E94B61E1DC0112331F0002389F277 +:1031B0008C2D0E94D71515C0002391F28C2D0E94F2 +:1031C0009F160FC0472D4F706C2DC7010E94B60788 +:1031D0000E949E1C06C0472D4F706C2DC7010E9497 +:1031E0007A08DD20F9F00E94A91E80FD1BC0F701BE +:1031F00012820E94A31E0E94991DC7010E942119DC +:103200000E94A31E0F90DF91CF911F910F91FF900D +:10321000EF90DF90CF90BF90AF909F908F907F9076 +:103220000C94BA1D0F90DF91CF911F910F91FF90D9 +:10323000EF90DF90CF90BF90AF909F908F907F9056 +:1032400008950F931F93CF93DF93EC0188819981A9 +:103250002B813C81232BB9F09F3F11F48F3F99F0D4 +:10326000CE010E94CE07882371F0688179818A811E +:103270000E949F1E8C010E94541E0E941B1DB801BB +:10328000CE010E94FC16DF91CF911F910F910895FE +:103290000E94991F0E94A91F0E946E1F0E94C31FB7 +:1032A0000E9474250E94412480E090E00E94BB149B +:1032B00080E090E00C94D1140E94891F0C9448196E +:1032C0000E94941E292F22952F7030E02C3031055A +:1032D0004CF42A3031056CF422503109223031058A +:1032E000A8F407C02C30310569F02F30310551F0BA +:1032F0000DC0803F69F018F4803E40F409C0843F5F +:1033000029F406C093FB882780F9089580E008958A +:1033100081E00895CF93DF9300D000D01F92CDB706 +:10332000DEB70F900F900F900F900F90DF91CF911D +:103330000895CF93DF9300D000D000D0CDB7DEB793 +:1033400026960FB6F894DEBF0FBECDBFDF91CF91AA +:1033500008951F93CF93DF93C091970116E080915A +:103360009801C81799F0D0E01C9FF0011D9FF00D47 +:103370001124E756FE4F408151816281738184811F +:1033800095810E9499192196C770E9CFDF91CF915D +:103390001F9108954091C9015091CA016091CB01DC +:1033A0007091CC018091CD019091CE010C9499192E +:1033B0008091CE0182958F7009F054C08091CB012D +:1033C000882309F44FC080919701A09198016091E2 +:1033D000C9017091CA014091CC015091CD01B6E074 +:1033E0008A1709F43FC090E041155105C1F17F3FB4 +:1033F00011F46F3FA1F1B89FF001B99FF00D1124B6 +:10340000E756FE4F218172132AC02081621327C024 +:103410002281211124C0238134812417350710F41F +:1034200021503109241B350B283C3105C0F4209173 +:10343000CE012F7020612093CE0126E0289FF0015D +:10344000299FF00D1124E256FE4F80818F7080611C +:10345000808389EC91E00E9421190C94A9190196AE +:103460008770BECF0895CF92DF92EF92FF920F93B5 +:103470001F93CF93DF93CDB7DEB762970FB6F89463 +:10348000DEBF0FBECDBF8C0185E0F801DE011D96C9 +:1034900001900D928A95E1F7D8014C9111965C91BB +:1034A000119712966C9112971396CD90DC90149709 +:1034B0003091C9017091CA018091CC019091CD01E8 +:1034C000009709F46BC17F3F19F43F3F09F466C1CF +:1034D000E090CB01EE2009F4C0C02091CE01C816C7 +:1034E000D90628F0F601E81BF90BCF0104C080953E +:1034F00090958C0D9D1DFF24F394883C910578F0E8 +:10350000F12C207F09F0C6C07C2DD98AC88A898910 +:103510000E948A1989EC91E00E942119B1C0822F82 +:10352000807F09F046C0751314C0341312C06111B6 +:1035300010C02F7020612093CE010E94CA1989EC1F +:1035400091E00E9421198091CE01D80115968C93AB +:103550002EC0CD2819F15F3F11F44F3FF9F0F62E40 +:1035600061111CC0809197012091980136E082176B +:1035700009F45AC090E0389FF001399FF00D1124F2 +:10358000E756FE4F7181571306C07081471303C081 +:103590007281711103C001968770E9CFF62E662300 +:1035A00009F418C18091CE0181608093CE01F12C85 +:1035B00011C1751308C0341306C0611104C0809195 +:1035C000CE01D801C3C04D875E878D859E856A8BED +:1035D0000E9460196A898823E1F16623D1F1209164 +:1035E000CE01822F82958F7090E0029774F08091C7 +:1035F000C9019091CA0198878F831986DB86CA8694 +:103600002C87CE0107960E94211986E0F801A9ECCB +:10361000B1E001900D928A95E1F70E94D8190E94BD +:10362000CA19FF24F394D6C04D875E878D859E8589 +:103630000E94941E292F22952F7030E022303105F0 +:103640000CF0BCC09F7009F0B6C0805E883008F4F2 +:10365000C1C0C8010E942119E4CFC816D90608F4D8 +:1036600053C0F601E81BF90BCF01883C910508F423 +:1036700050C0F12C7C2DD98AC88A89890E948A1968 +:10368000E9ECF1E086E0DF011D928A95E9F70E94FE +:10369000CA19A0C0751314C0341312C0611110C030 +:1036A0008091CE01F8018583C8010E94211986E02E +:1036B000E9ECF1E0DF011D928A95E9F7FE2C8AC062 +:1036C0004D875E878D859E856A8B0E9460196A8909 +:1036D000882309F4BECF662309F4BBCF2091CE0125 +:1036E000822F82958F7090E002970CF48ECF80919C +:1036F000C9019091CA019A8389831B82DD82CC82A1 +:103700002E83CE0101967FCF809590958C0D9D1DC7 +:10371000ACCFF62E662309F49CCF75132EC034135C +:103720002CC02091CE0120FD1FC0822F82958F706A +:10373000D9F0D80115962C9315978F3049F08F5FEB +:10374000982F9295907F822F8F70892B15968C934E +:10375000C8010E94211986E0F801A9ECB1E00190AE +:103760000D928A95E1F793CF86E0F801A9ECB1E0DC +:1037700001900D928A95E1F72DC04D875E878D856A +:103780009E850E946019811140CF8091CE01816099 +:103790008093CE01C8010E9421191CC0662309F440 +:1037A00058CF4D875E878D859E850E94601988233E +:1037B00009F44FCF2ACF811148CF0CC024303105F6 +:1037C0000CF047CF9F7009F440CFF8019581907FAE +:1037D00009F03BCF8F2D62960FB6F894DEBF0FBE77 +:1037E000CDBFDF91CF911F910F91FF90EF90DF90B0 +:1037F000CF9008951F93CF93DF93CDB7DEB72C976B +:103800000FB6F894DEBF0FBECDBF4F8358876987D0 +:103810007A878B879C87CE0107960E94331A88236C +:1038200069F08F8198852A853B85232BF1F19F3F95 +:1038300009F063C08F3F09F060C037C086E0FE0129 +:103840003796DE01119601900D928A95E1F76F810E +:103850007885EA85FB85309741F17F3F11F46F3F12 +:1038600021F12091980130E0C901019687709927D4 +:103870004091970150E08417950709F447C0698388 +:103880007A83FD83EC8396E0929FD001939FB00DE5 +:103890001124A756BE4FFE01319601900D929A95C4 +:1038A000E1F7809398010E94A91916E08091970191 +:1038B000909198018917C1F1189FC0011124875672 +:1038C0009E4F0E94331A882379F1E09197011E9F41 +:1038D000F0011124E756FE4F4081518162817381CE +:1038E000848195810E9499198091970190E00196B9 +:1038F0008770992780939701D9CF4F815885698523 +:103900007A858B859C850E949919CFCF0E945C197E +:103910001092980110929701E9ECF1E086E0DF0146 +:103920001D928A95E9F7C1CF2C960FB6F894DEBFA9 +:103930000FBECDBFDF91CF911F910895EF92FF92FF +:103940000F931F93CF93DF938C01009709F46CC002 +:10395000F12CEE24E394E8012196F8018491843758 +:1039600040F4843008F051C0813081F0823019F188 +:103970005BC0853709F444C0A8F19CE7980F9037E5 +:1039800008F052C08F770E949F1641C00E5F1F4FF4 +:10399000FE01C49180E28C0F883048F4C7708E2DF0 +:1039A00001C0880FCA95EAF70E949C1F14C08C2F93 +:1039B0000E94D7152DC00E5F1F4FFE01C49180E2FB +:1039C0008C0F883058F4C7708E2D01C0880FCA95AF +:1039D000EAF70E94A21F0E94C31F1AC08C2F0E94E8 +:1039E0009F1616C00E5F1F4FFE01C491CC2381F0BD +:1039F0008FE99FE00197F1F700C00000C150F6CFBA +:103A00000E5F1F4FFE01F49003C00E94D7158E0178 +:103A10008F2D882309F49FCFEFE9FFE03197F1F76D +:103A200000C000008150F5CFDF91CF911F910F9121 +:103A3000FF90EF90089508956093D3017093D4019F +:103A40008093D5019093D6010C9448190F931F933E +:103A50000091D3011091D4012091D5013091D6016C +:103A6000DC01CB01802B912BA22BB32B8093D301B4 +:103A70009093D401A093D501B093D6011F910F91DB +:103A80000C9448190F931F930091D3011091D40106 +:103A90002091D5013091D601DC01CB018023912307 +:103AA000A223B3238093D3019093D401A093D50193 +:103AB000B093D6011F910F910C9448190F931F9347 +:103AC0000091D3011091D4012091D5013091D601FC +:103AD000DC01CB0180279127A227B3278093D30154 +:103AE0009093D401A093D501B093D6011F910F916B +:103AF0000C9448191092CF011092D0011092D1016C +:103B00001092D2010C94481941E050E060E070E05E +:103B100004C0440F551F661F771F8A95D2F7409344 +:103B2000CF015093D0016093D1017093D2010C94D6 +:103B3000481941E050E060E070E004C0440F551FB8 +:103B4000661F771F8A95D2F78091CF019091D0019F +:103B5000A091D101B091D201482B592B6A2B7B2B1C +:103B60004093CF015093D0016093D1017093D20163 +:103B70000C94481941E050E060E070E004C0440F4C +:103B8000551F661F771F8A95D2F74095509560950F +:103B900070958091CF019091D001A091D101B09109 +:103BA000D201482359236A237B234093CF015093AA +:103BB000D0016093D1017093D2010C94481941E077 +:103BC00050E060E070E004C0440F551F661F771F8F +:103BD0008A95D2F78091CF019091D001A091D10127 +:103BE000B091D201482759276A277B274093CF01FC +:103BF0005093D0016093D1017093D2010C94481975 +:103C00000F931F930091CF011091D0012091D1010A +:103C10003091D201DC01CB01802B912BA22BB32B55 +:103C20008093CF019093D001A093D101B093D201A2 +:103C30001F910F910C9448190F931F930091CF017E +:103C40001091D0012091D1013091D201DC01CB0142 +:103C500080239123A223B3238093CF019093D0019B +:103C6000A093D101B093D2011F910F910C944819E8 +:103C70000F931F930091CF011091D0012091D1019A +:103C80003091D201DC01CB0180279127A227B327F5 +:103C90008093CF019093D001A093D101B093D20132 +:103CA0001F910F910C9448190895CF92DF92EF92D3 +:103CB000FF920F931F93CF93DF938C01C090D3019A +:103CC000D090D401E090D501F090D6018091CF0141 +:103CD0009091D001A091D101B091D201C82AD92AE6 +:103CE000EA2AFB2ACFE1D0E0D701C6010C2E04C09E +:103CF000B695A795979587950A94D2F780FF06C049 +:103D0000B8018C2F0E94D70A019721F4219760F700 +:103D100080E001C08C2FDF91CF911F910F91FF9018 +:103D2000EF90DF90CF900895CF93DF93EC010E9446 +:103D3000551EBE010E94D70ADF91CF910895CB0195 +:103D40000E94941E08958091D7018595859585954B +:103D500008958091D7018770089598E0899F900118 +:103D60001124262B2093D7010C94991D2091D70163 +:103D7000809582238093D701982F977069F430E063 +:103D8000482F552747FD50952417350729F085956D +:103D9000859585950C94BA1D08959091D7019770DB +:103DA00081E009F480E0089590910B01992321F0BE +:103DB00090910C01911109C020910D0130910E01DB +:103DC000F90132969FEF40E030C0982F9695969576 +:103DD00096959F30A0F4E0910D01F0910E01E90F4E +:103DE000F11D877021E030E0A90102C0440F551F8A +:103DF0008A95E2F7CA019181892B81830895909178 +:103E0000EC0190FF23C01F928F9385E894E09F936D +:103E10008F930E9493070F900F900F900F9008952B +:103E20009F3F39F04F5F4E3041F051915813F8CF1A +:103E30000DC05111F7CF942FF5CF9F3F39F0F90105 +:103E4000E90FF11D97FDFA958283089508959091E9 +:103E50000B01992321F090910C01911109C020913F +:103E60000D0130910E01F9013296205F3F4F30C0B5 +:103E7000982F9695969596959F30A8F4E0910D0110 +:103E8000F0910E01E90FF11D877021E030E0A901EA +:103E900002C0440F551F8A95E2F7CA0180959181AF +:103EA0008923818308959091EC0190FF16C01F92A1 +:103EB0008F9387E694E09F938F930E9493070F90D0 +:103EC0000F900F900F9008953196E217F30729F0A5 +:103ED00090819813F9CF1082F7CF089581E090E098 +:103EE000E0910D01F0910E01E80FF91F108201968B +:103EF00080319105A9F708959091EB01892B80936A +:103F0000EB01089580959091EB0189238093EB015B +:103F100008951092EB0108959091EA01892B809306 +:103F2000EA01089580959091EA0189238093EA013E +:103F300008951092EA0108959091E901892B8093E8 +:103F4000E901089580959091E90189238093E90121 +:103F500008951092E90108958093D8010895109270 +:103F6000D801089580910D0190910E01FC013196C8 +:103F70009C01205F3F4F80E0919191118F5FE2178C +:103F8000F307D1F70895E0910D01F0910E018091B2 +:103F9000EB018083E0910D01F0910E019081809101 +:103FA000EA01892B8083E0910D01F0910E0190814F +:103FB0008091E901892B80838091D801882361F069 +:103FC000E0910D01F0910E019081892B80830E9478 +:103FD000B21F81111092D80180910D0190910E01B4 +:103FE0000C94671490934D0180934C01089520E048 +:103FF000009739F0AC0141505109842395232F5F7C +:10400000F7CF822F08958295982F9C7C392F369573 +:104010003695282F237344E0249FC0011124932F49 +:10402000982B292F2A7A2695892F8575880F822B20 +:1040300008951F93CF93DF931F92CDB7DEB7998377 +:104040000E940320182F9981892F0E940320212F7D +:1040500030E0322F2227A901482BCA010F90DF91AF +:10406000CF911F91089580910102843021F1109227 +:10407000ED0120E488E190E00FB6F894A8958093D4 +:1040800060000FBE2093600080E00E94740B83B735 +:10409000817F846083BF83B7816083BF7894889574 +:1040A00083B78E7F83BF88E10FB6F894809360005A +:1040B000109260000FBE0895089508950E945C203C +:1040C0000E94CF0B0E945D200E94820C91E0811122 +:1040D00001C090E0892F08950E945C190E945B1432 +:1040E0000C94740B1F920F920FB60F9211248F93A2 +:1040F0009F93AF93BF938091ED01811113C0809185 +:10410000EE019091EF01A091F001B091F101419683 +:10411000A11DB11D8093EE019093EF01A093F001DA +:10412000B093F101BF91AF919F918F910F900FBE0E +:104130000F901F90189582E084BD93E095BD9AEF93 +:1041400097BD80936E0008952FB7F8948091EE018B +:104150009091EF01A091F001B091F1012FBF08956E +:10416000CF92DF92EF92FF920F931F932FB7F894A5 +:104170004091EE015091EF016091F0017091F101D9 +:104180002FBF6A017B01EE24FF248C0120E030E088 +:10419000C016D106E206F30610F4415051099A0107 +:1041A000281B390BC9011F910F91FF90EF90DF90F1 +:1041B000CF9008951F920F920FB60F9211248F93F4 +:1041C0009F93AF93BF938091EE019091EF01A091E7 +:1041D000F001B091F1010196A11DB11D8093EE0196 +:1041E0009093EF01A093F001B093F101BF91AF91D3 +:1041F0009F918F910F900FBE0F901F9018950E9466 +:104200005911F8942FEF87EA91E6215080409040B1 +:10421000E1F700C0000087E090EBDC0180930B0227 +:1042200090930C02A0930D02B0930E029CE088E1E3 +:104230000FB6F894A895809360000FBE909360002D +:10424000FFCFEF92FF920F931F93CF93DF93D82F5F +:10425000CAE08C2F0E944A0C07E010E0E82EF12CF7 +:10426000C701002E02C0959587950A94E2F780FF5A +:1042700009C0602F7C2F80E00E947B08D81302C009 +:1042800081E006C00150110958F7C15010F780E0D5 +:10429000DF91CF911F910F91FF90EF900895CF93F1 +:1042A000C82F8CE20E942121882321F08C2FCF91EE +:1042B0000C94212180E0CF910895CF930E94AC22ED +:1042C000811102C00E9492228AEA94E00E94FA06BA +:1042D000C5E6C15049F00E94CF0B8FE39CE90197DE +:1042E000F1F700C00000F5CF83EA94E00E94FA06DF +:1042F00089E20E944F21811113C18AE20E944F215D +:1043000081110E94922285E00E944F2181110E941A +:10431000FF200E94B7228093EC0187E00E944F218A +:104320008823A9F18BE10E944F21882351F08091CD +:10433000EC0181FB222720F991E0922790FB81F983 +:104340000EC08EE00E944F21882361F08091EC0125 +:1043500082FB222720F991E0922790FB82F980933B +:10436000EC0115C080E10E944F219091EC0188235F +:1043700041F093FB222720F981E0822780FB93F90B +:1043800004C0892F809580FB90F99093EC01809177 +:10439000EC010E94BB220E94C92280930A0280EE97 +:1043A0000E944F21882341F080910A02982F909516 +:1043B00090FB80F980930A0289E30E944F218823B1 +:1043C00059F080910A0281FB222720F991E092277F +:1043D00090FB81F980930A0282EE0E944F2188238C +:1043E00059F080910A0282FB222720F991E092275E +:1043F00090FB82F980930A0286EE0E944F21882367 +:1044000059F080910A0283FB222720F991E092273C +:1044100090FB83F980930A0283EE0E944F21882348 +:1044200059F080910A0284FB222720F991E092271B +:1044300090FB84F980930A0285E30E944F21882330 +:1044400059F080910A0285FB222720F991E09227FA +:1044500090FB85F980930A0281E30E944F21882313 +:1044600059F080910A0286FB222720F991E09227D9 +:1044700090FB86F980930A0281E10E944F218823F4 +:1044800059F080910A0287FB222720F991E09227B8 +:1044900090FB87F980930A0280910A020E94CD2244 +:1044A00080910A0287FB882780F980930C0187E2BC +:1044B0000E944F21C82F8EE10E944F218111C260BE +:1044C0008FE10E944F218111C46080E20E944F2140 +:1044D0008111C86081E20E944F218111C06182E296 +:1044E0000E944F218111C06283E20E944F218111FD +:1044F000C06484E20E944F21882311F0C06802C08A +:10450000CC2329F08C2F0E94C4226C2F03C00E9460 +:10451000C022682F70E080E090E0CF910C941C1DC9 +:10452000CF9108956DEE7EEF80E090E00E942C2CFC +:1045300060E082E090E00E941A2C60E083E090E06E +:104540000E941A2C60E084E090E00E941A2C60E047 +:1045500085E090E00C941A2C80E090E00E94142CEE +:1045600021E08D3E9E4F09F020E0822F089582E0E9 +:1045700090E00C940C2C682F82E090E00C941A2CA4 +:1045800083E090E00C940C2C682F83E090E00C9476 +:104590001A2C84E090E00C940C2C682F84E090E0BE +:1045A0000C941A2C8091F40180FF0BC060911201D1 +:1045B00085E0689FB001112475956795759567959D +:1045C0002BC081FF09C06091120185E0689FB00196 +:1045D00011247595679520C082FF07C06091120174 +:1045E00085E0689FB001112417C09091F5019923CF +:1045F000D1F060911101961788F72091120185E0A2 +:10460000289F90011124929FA001939F500D112487 +:1046100070E0CA010E94DE2B6038710540F461151C +:10462000710539F002C065E070E0862F08958FE7CC +:10463000089581E008958091F40180FF08C06091A1 +:10464000100170E0759567957595679521C081FF9C +:1046500006C06091100170E07595679519C082FFE2 +:1046600004C06091100170E010C09091F501992391 +:10467000C1F060910F019617A0F780911001899FFA +:10468000C001112470E00E94DE2B6038710528F40F +:104690006115710521F0862F08958FE7089581E057 +:1046A000089561E070E0F4CF803F21F40E94D222AF +:1046B000819504C0813F29F40E94D2228093F801A1 +:1046C0000895823F21F40E94D222819504C0833F45 +:1046D00029F40E94D2228093F7010895893F19F4AA +:1046E0000E941B2305C08A3F31F40E941B23819541 +:1046F0008093F90108958B3F21F40E941B2381953B +:1047000004C08C3F29F40E941B238093FA01089572 +:10471000843F21F48091F601816017C0853F21F428 +:104720008091F601826011C0863F21F48091F601EC +:1047300084600BC0873F21F48091F601886005C03A +:10474000883F31F48091F60180618093F6010895ED +:104750008D3F21F48091F40181600BC08E3F21F4E4 +:104760008091F401826005C08F3F29F48091F401AB +:1047700084608093F4010895803F39F48091F801BA +:1047800087FF6CC01092F80169C0813F29F48091C5 +:10479000F8011816BCF362C09091F701823F29F42A +:1047A00097FF5CC01092F70159C0833F19F41916A6 +:1047B000CCF354C0893F41F48091F90118160CF0F4 +:1047C0004DC01092F9014AC08A3F29F48091F90145 +:1047D00087FF44C0F6CF8B3F39F48091FA0187FF01 +:1047E0003DC01092FA013AC08C3F29F48091FA0141 +:1047F0001816BCF333C0843F21F48091F6018E7FFC +:1048000017C0853F21F48091F6018D7F11C0863F4E +:1048100021F48091F6018B7F0BC0873F21F48091BA +:10482000F601877F05C0883F31F48091F6018F7EC5 +:104830008093F60113C08D3F21F48091F4018E7FA7 +:104840000BC08E3F21F48091F4018D7F05C08F3F16 +:1048500029F48091F4018B7F8093F4018091F7011A +:1048600081110EC08091F80181110AC08091F90177 +:10487000811106C08091FA01811102C01092F501E8 +:1048800008958091EC0183FF7EC086EE94E00E9443 +:10489000FA068091F6011F928F9381EE94E09F9328 +:1048A0008F930E9493078FED94E00E94FA06809107 +:1048B000F701282F332727FD30953F938F938CEDF9 +:1048C00094E09F938F930E9493078AED94E00E9457 +:1048D000FA068091F801282F332727FD30953F9362 +:1048E0008F9387ED94E09F938F930E94930785EDBC +:1048F00094E00E94FA068091F901282F332727FDC2 +:1049000030953F938F9382ED94E09F938F930E9415 +:10491000930780ED94E00E94FA068091FA01282F17 +:10492000332727FD30953F938F938DEC94E09F9331 +:104930008F930E9493078AEC94E00E94FA0680917C +:10494000F5011F928F9387EC94E09F938F930E94C1 +:10495000930785EC94E00E94FA068091F4011F927F +:104960008F9382EC94E09F938F930E9493078FEB39 +:1049700094E00E94FA068DB79EB74C960FB6F89455 +:104980009EBF0FBE8DBF86EF91E00E94B0140E94C3 +:10499000A4209093F3018093F20108951F93CF9385 +:1049A000DF938091F2019091F3010E94B020AC015D +:1049B0009091F501992321F02091130130E006C078 +:1049C000209114018AE0289F900111244217530777 +:1049D00008F486C08091F701C091F801D091F901E7 +:1049E0001091FA01811107C0C11176C0D11174C0B4 +:1049F000111172C075C09F3F19F09F5F9093F50130 +:104A0000181624F40E94D2228093F7018091F701B6 +:104A100087FF05C00E94D22281958093F7011C1662 +:104A200024F40E94D2228093F8018091F80187FF3C +:104A300005C00E94D22281958093F8016091F70110 +:104A4000662339F1C091F801CC2319F1772767FD6E +:104A50007095872F972F0E94E32A23E333E343E3E4 +:104A60005FE30E94472B0E94B02A6093F7016C2FEE +:104A7000772767FD7095872F972F0E94E32A23E3FE +:104A800033E343E35FE30E94472B0E94B02A609325 +:104A9000F8011D1624F40E941B238093F9018091D4 +:104AA000F90187FF05C00E941B2381958093F901BE +:104AB000111624F40E941B238093FA018091FA01BD +:104AC00087FF05C00E941B2381958093FA01DF9127 +:104AD000CF911F910C9441249F3F09F08ECF96CF28 +:104AE000DF91CF911F910895E6EFF1E085E0DF01BE +:104AF0001D928A95E9F71092F5011092F40108953C +:104B000089E097E00E94FA061F9281E08F931F923E +:104B100085E08F938BEB96E09F938F930E94930792 +:104B20000F900F900F900F900F900F90089583307B +:104B3000E9F128F4813061F0823009F1089585307F +:104B400009F462C008F449C0863009F474C00895BD +:104B500080911401262F30E0280F311D2F3F3105A1 +:104B600024F4680F6093140103C08FEF8093140145 +:104B7000809114011F928F9384EF95E072C0809111 +:104B80001301262F30E0280F311D2F3F310524F46B +:104B9000680F6093130103C08FEF8093130180911E +:104BA00013011F928F9382EE95E05BC080911201FA +:104BB000262F30E0280F311D2F3F310524F4680FD8 +:104BC0006093120103C08FEF809312018091120154 +:104BD0001F928F938FEC95E044C080911101262F96 +:104BE00030E0280F311D2F3F310524F4680F60930A +:104BF000110103C08FEF80931101809111011F9269 +:104C00008F938AEB95E02DC080911001262F30E024 +:104C1000280F311D2F3F310524F4680F60931001D8 +:104C200003C08FEF80931001809110011F928F932A +:104C300081EA95E016C080910F01262F30E0280F01 +:104C4000311D2F3F310524F4680F60930F0103C01D +:104C50008FEF80930F0180910F011F928F9386E851 +:104C600095E09F938F930E9493070F900F900F9062 +:104C70000F900895833081F128F4813059F082300B +:104C8000D1F00895853009F449C0B8F1863009F4AF +:104C900056C0089580911401681720F4861B8093F4 +:104CA000140102C010921401809114011F928F937D +:104CB00087E795E054C080911301681720F4861BA4 +:104CC0008093130102C010921301809113011F926F +:104CD0008F9385E695E043C080911201681720F418 +:104CE000861B8093120102C0109212018091120162 +:104CF0001F928F9382E595E032C080911101681771 +:104D000020F4861B8093110102C010921101809142 +:104D100011011F928F938DE395E021C080911001C6 +:104D2000681720F4861B8093100102C010921001B6 +:104D3000809110011F928F9384E295E010C08091C2 +:104D40000F01681720F4861B80930F0102C0109298 +:104D50000F0180910F011F928F9389E095E09F933F +:104D60008F930E9493070F900F900F900F900895CC +:104D7000CF93C82F1F928F938EE098E09F938F93CD +:104D80000E94930781E090E0A0E0B0E0BC01CD017B +:104D900004C0660F771F881F991FCA95D2F70E941B +:104DA0001C1D0F900F900F900F90CF910C945C19D9 +:104DB000CF938B3109F4D1C108F049C08E3009F48A +:104DC000E0C100F5873009F4A9C1A8F4863009F0E4 +:104DD00066C28091EC01817F8E7F8093EC0184E834 +:104DE00099E00E94FA0681E49DE00E94FA0681E0C3 +:104DF0008093FC0191C1883009F45BC08B3009F4C9 +:104E000087C14DC2813109F432C220F4803109F4E6 +:104E1000CCC145C2863109F4E3C1893109F03FC2F2 +:104E200085E799E00E94FA0682E699E00E94FA0678 +:104E300088E299E00E94FA068BEF98E00E94FA0659 +:104E400087EB98E00E94FA068CE898E063C185330E +:104E500009F421C268F4873209F41DC228F48E31A6 +:104E600008F41DC28D5118C2893209F414C217C248 +:104E7000833438F48A3308F00CC2883309F448C10B +:104E80000EC2833409F407C2883409F008C20E94B4 +:104E90005C1985E29DE00E94FA069FEF23ED80E316 +:104EA000915020408040E1F700C000000E94FF20A8 +:104EB00033C185E49DE00E94FA0682E99CE00E94ED +:104EC000FA060E94C0221F928F938FE89CE09F9366 +:104ED0008F930E9493078DE89CE00E94FA060E943F +:104EE000B722C82F8AE79CE00E94FA061F92CF9350 +:104EF00085E79CE09F938F930E94930783E79CE054 +:104F00000E94FA0689E69CE00E94FA068C2F8170C6 +:104F10001F928F9386E69CE09F938F930E94930746 +:104F200084E69CE00E94FA068AE59CE00E94FA066C +:104F3000C1FB882780F91F928F9387E59CE09F93A0 +:104F40008F930E94930785E59CE00E94FA0689E40E +:104F50009CE00E94FA06C2FB882780F91F928F937B +:104F600086E49CE09F938F930E94930784E49CE0E7 +:104F70000E94FA068BE39CE00E94FA06C3FBCC2752 +:104F8000C0F91F92CF9388E39CE09F938F930E9478 +:104F9000930786E39CE00E94FA060E94C922C82F6C +:104FA00082E29CE00E94FA061F92CF938DE19CE082 +:104FB0009F938F930E9493078BE19CE00E94FA06D7 +:104FC00082E09CE00E94FA068C2F81701F928F93E2 +:104FD0008FEF9BE09F938F930E9493078DB79EB7AF +:104FE00080960FB6F8949EBF0FBE8DBF8DEF9BE0ED +:104FF0000E94FA0686EE9BE00E94FA06C1FB882713 +:1050000080F91F928F9383EE9BE09F938F930E9472 +:10501000930781EE9BE00E94FA068FEC9BE00E94D2 +:10502000FA06C2FB882780F91F928F938CEC9BE0D5 +:105030009F938F930E9493078AEC9BE00E94FA064D +:1050400088EB9BE00E94FA06C3FB882780F91F9239 +:105050008F9385EB9BE09F938F930E94930783EB45 +:105060009BE00E94FA0689EA9BE00E94FA06C4FBD4 +:10507000882780F91F928F9386EA9BE09F938F93F6 +:105080000E94930784EA9BE00E94FA0682E99BE073 +:105090000E94FA06C5FB882780F91F928F938FE83C +:1050A0009BE09F938F930E9493078DE89BE00E9463 +:1050B000FA0681E79BE00E94FA06C6FB882780F982 +:1050C0001F928F938EE69BE09F938F930E9493078E +:1050D0008CE69BE00E94FA0684E69BE00E94FA06BA +:1050E000C7FBCC27C0F91F92CF9381E69BE09F932B +:1050F0008F930E9493078FE59BE00E94FA068DB77D +:105100009EB74C960FB6F8949EBF0FBE8DBF04C0DD +:105110008BEA99E00E94FA06C1E0C6C08091EC01DA +:10512000C82FC095C170C0FB80F98093EC01CC23DF +:1051300049F089E19DE00E94FA068091EC018660C9 +:10514000886048C08CE09DE00E94FA068091EC01E6 +:10515000897F877F8093EC01DFCF9091EC0191FBF9 +:10516000CC27C0F981E0C827892FC0FB81F9809343 +:10517000EC01CC2319F08FEF9CE027C081EF9CE07D +:10518000C9CF9091EC0192FBCC27C0F981E0C827F0 +:10519000892FC0FB82F98093EC01CC2319F082EEB9 +:1051A0009CE013C082ED9CE0B5CF9091EC0193FBA5 +:1051B000CC27C0F981E0C827892FC0FB83F98093F1 +:1051C000EC01CC2351F086EC9CE00E94FA06809121 +:1051D000EC0181608093EC0167C089EB9CE09ACF81 +:1051E0008EE798E00E94FA060E945B141F928F934C +:1051F00084E698E09F938F930E94930780910B0120 +:105200001F928F938DE498E09F938F930E94930752 +:10521000809184011F928F938AE398E09F938F93EC +:105220000E94930780910C011F928F9387E298E070 +:105230009F938F930E9493078091EE019091EF01CD +:10524000A091F001B091F101BF93AF939F938F9321 +:1052500083E198E09F938F930E9493078DB79EB749 +:1052600046960FB6F8949EBF0FBE8DBF55CF0E94D5 +:105270005C19C0910C0181E0C827C0930C01CC23BC +:1052800029F08FEA9CE00E94FA060EC084EA9CE0B6 +:1052900041CF895301C080E00E94B8263DCF82EA09 +:1052A0009CE00E94FA06C0E08C2FCF91089580E028 +:1052B000089580E00895CF93C82F8091FC0181303C +:1052C00071F020F0823009F44BC042C1E0910D0131 +:1052D000F0910E018081823209F03CC107C0E0915B +:1052E0000D01F0910E018081823261F48C2F0E94B9 +:1052F0005729811104C08C2F0E94D8262FC081E02D +:1053000090E02CC08C2F0E945929811126C0C431F5 +:10531000E1F070F4CB3081F0C031D1F40E948025EF +:1053200086E098E00E94FA0682E08093FC0115C0B6 +:10533000C93259F0C83361F484E899E00E94FA0652 +:105340008AE098E00E94FA0608C01092FC0104C1AD +:1053500084E098E00E94FA06FFC081E08170FEC000 +:10536000C43228F5CE3108F0C1C0CB30A1F1D0F461 +:10537000C73009F0D3C08EE18093140182E380939B +:1053800013018AE08093120184E18093110188E087 +:105390008093100188E280930F018AEA96E00E94D0 +:1053A000FA06BFC0C33149F1C431C1F0B7C0CB3434 +:1053B00009F4A9C028F4C93289F0C83361F0AEC03D +:1053C000C13509F49EC0C23509F499C0CE3409F044 +:1053D000A5C06AE09EC00E948025A3C08091FB0109 +:1053E000882319F01092FB019CC087EB96E00E9485 +:1053F000FA0681E08093FC01B1C081E996E00E9449 +:10540000FA068FE796E00E94FA06809114011F9237 +:105410008F938CE796E09F938F930E9493078AE780 +:1054200096E00E94FA0688E696E00E94FA068091CD +:1054300013011F928F9385E696E09F938F930E94AE +:10544000930783E696E00E94FA0684E596E00E94C0 +:10545000FA06809112011F928F9381E596E09F9347 +:105460008F930E9493078FE496E00E94FA068EE3E2 +:1054700096E00E94FA06809111011F928F938BE3B0 +:1054800096E09F938F930E94930789E396E00E9492 +:10549000FA0684E296E00E94FA06809110011F92BB +:1054A0008F9381E296E09F938F930E9493078FE101 +:1054B00096E00E94FA0688E096E00E94FA06809143 +:1054C0000F011F928F9385E096E09F938F930E9428 +:1054D000930783E096E00E94FA068DB79EB7489640 +:1054E0000FB6F8949EBF0FBE8DBF1BC0CE51EC2FE0 +:1054F000F0E0EF5BFE4F80818093FB0112C061E022 +:1055000003C061E006C06AE08091FB010E9497251C +:1055100008C08091FB010E943A2603C088EA96E009 +:1055200013C08091FB01882369F01F928F9382EA58 +:1055300096E09F938F930E9493070F900F900F9088 +:105540000F9004C08FE996E00E94FA0681E006C041 +:105550001092FC0180E002C080E000CFCF9108955E +:1055600004D06894B1118DC0089570D088F09F5711 +:1055700090F0B92F9927B751A0F0D1F0660F771F9F +:10558000881F991F1AF0BA95C9F712C0B13081F07F +:1055900077D0B1E0089574C0672F782F8827B85F5F +:1055A00039F0B93FCCF3869577956795B395D9F7E0 +:1055B0003EF490958095709561957F4F8F4F9F4FEA +:1055C0000895E89409C097FB3EF4909580957095F6 +:1055D00061957F4F8F4F9F4F9923A9F0F92F96E93F +:1055E000BB279395F695879577956795B795F111B4 +:1055F000F8CFFAF4BB0F11F460FF1BC06F5F7F4F51 +:105600008F4F9F4F16C0882311F096E911C0772362 +:1056100021F09EE8872F762F05C0662371F096E86B +:10562000862F70E060E02AF09A95660F771F881F3A +:10563000DAF7880F9695879597F9089557FD905852 +:10564000440F551F59F05F3F71F04795880F97FB46 +:10565000991F61F09F3F79F0879508951216130600 +:105660001406551FF2CF4695F1DF08C0161617062F +:105670001806991FF1CF8695710561050894089564 +:10568000E894BB2766277727CB0197F908950BD0BD +:1056900078C069D028F06ED018F0952309F05AC070 +:1056A0005FC01124EECFCADFA0F3959FD1F3950F11 +:1056B00050E0551F629FF001729FBB27F00DB11D96 +:1056C000639FAA27F00DB11DAA1F649F6627B00D26 +:1056D000A11D661F829F2227B00DA11D621F739F0F +:1056E000B00DA11D621F839FA00D611D221F749F1D +:1056F0003327A00D611D231F849F600D211D822F64 +:10570000762F6A2F11249F5750408AF0E1F08823AA +:105710004AF0EE0FFF1FBB1F661F771F881F9150B7 +:105720005040A9F79E3F510570F014C0AACF5F3FCB +:10573000ECF3983EDCF3869577956795B795F795EA +:10574000E7959F5FC1F7FE2B880F911D9695879572 +:1057500097F9089597F99F6780E870E060E00895F1 +:105760009FEF80EC089500240A9416161706180679 +:105770000906089500240A94121613061406050655 +:105780000895092E0394000C11F4882352F0BB0FE6 +:1057900040F4BF2B11F460FF04C06F5F7F4F8F4F49 +:1057A0009F4F0895991B79E004C0991F961708F040 +:1057B000961B881F7A95C9F78095089597FB072E49 +:1057C00016F4009407D077FD09D00E94F82B07FC4F +:1057D00005D03EF4909581959F4F08957095619501 +:1057E0007F4F0895EE0FFF1F0590F491E02D09946F +:1057F000AA1BBB1B51E107C0AA1FBB1FA617B707F7 +:1058000010F0A61BB70B881F991F5A95A9F7809512 +:105810009095BC01CD010895F999FECF92BD81BD4F +:10582000F89A992780B50895A8E1B0E042E050E0E9 +:105830000C94342C262FF999FECF92BD81BDF89A95 +:10584000019700B4021639F01FBA20BD0FB6F894C4 +:10585000FA9AF99A0FBE08950196272F0E941B2CE1 +:105860000C941A2CDC01CB01FC01F999FECF06C087 +:10587000F2BDE1BDF89A319600B40D92415050400E +:08588000B8F70895F894FFCF7A +:10588800FF980C890D660D320DFE0C0101D9012817 +:1058980008140A321E0313233329397659497943E8 +:1058A80053637F6F5F4F1F0F3F4D362039F503A8B5 +:1058B800037203520319038C02A502BE02D702F732 +:0C58C800020102030405060708090000A5 +:00000001FF diff --git a/keyboards/retro_refit/keymaps/default/keymap.c b/keyboards/retro_refit/keymaps/default/keymap.c new file mode 100644 index 000000000..405402d5e --- /dev/null +++ b/keyboards/retro_refit/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "retro_refit.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = + KEYMAP( ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, NLCK, SLCK, PSCR, PAUS, \ + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, BSPC, HOME, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, PGUP, \ + BSLS, A, S, D, F, G, H, J, K, L, SCLN, QUOT, ENT, PGDN, \ + LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, RSFT, UP, END, \ + LCTL, LGUI, LALT, SPC, INS, DEL, LEFT, DOWN, RGHT), +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboards/retro_refit/retro_refit.c b/keyboards/retro_refit/retro_refit.c new file mode 100644 index 000000000..78b6edca7 --- /dev/null +++ b/keyboards/retro_refit/retro_refit.c @@ -0,0 +1,68 @@ +#include "retro_refit.h" + +__attribute__ ((weak)) +void matrix_init_user(void) { + // leave this function blank - it can be defined in a keymap file +}; + +__attribute__ ((weak)) +void matrix_scan_user(void) { + // leave this function blank - it can be defined in a keymap file +}; + +__attribute__ ((weak)) +void led_set_user(uint8_t usb_led) { + // leave this function blank - it can be defined in a keymap file +}; + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + // Disable status LED on KB, enable status LED on Teensy (KB_STATUS = !TEENSY_STATUS) + DDRD |= (1<<6); + PORTD |= (1<<6); + + matrix_init_user(); +}; + +void amatrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +}; + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + + if (usb_led & (1< + +// This macro is an example of using a non-standard row-column matrix. The +// keyboard in question had 11 rows and 8 columns, but the rows were not all +// horizontal, and the columns were not all vertical. For example, row 2 +// contained "Print Screen", "N", "M", ",", ".", "/", "Right Shift", and +// "Left Alt". Column 0 contained "F6", "7", "O", "'", "Q", "D", "B", +// "Left Alt", "Up Arrow", and "Down Arrow". +// +// The macro makes programming the keys easier and in a more straight-forward +// manner because it realigns the keys into a 6x15 sensible keyboard layout +// instead of the obtuse 11x8 matrix. + +#define KEYMAP( \ + K77, K05, K04, K03, K02, K01, K00, KA7, KA6, KA5, KA4, KA3, KA2, K11, K94, \ + K27, K76, K75, K74, K73, K72, K71, K70, K67, K66, K65, K64, K63, K62, KA1, \ + K61, K60, K57, K56, K55, K54, K53, K52, K51, K50, K47, K46, K45, K97, \ + K43, K42, K41, K40, K37, K36, K35, K34, K33, K32, K31, K30, K44, K87, \ + K26, K24, K23, K22, K21, K20, K17, K16, K15, K14, K13, K12, KA0, K91, \ + K10, K06, K25, K07, K86, K85, K95, K90, K93 \ +) { \ +{ KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, }, \ +{ KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, }, \ +{ KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, }, \ +{ KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, }, \ +{ KC_##K40, KC_##K41, KC_##K42, KC_##K43, KC_##K44, KC_##K45, KC_##K46, KC_##K47, }, \ +{ KC_##K50, KC_##K51, KC_##K52, KC_##K53, KC_##K54, KC_##K55, KC_##K56, KC_##K57, }, \ +{ KC_##K60, KC_##K61, KC_##K62, KC_##K63, KC_##K64, KC_##K65, KC_##K66, KC_##K67, }, \ +{ KC_##K70, KC_##K71, KC_##K72, KC_##K73, KC_##K74, KC_##K75, KC_##K76, KC_##K77, }, \ +{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_##K85, KC_##K86, KC_##K87, }, \ +{ KC_##K90, KC_##K91, KC_NO, KC_##K93, KC_##K94, KC_##K95, KC_NO, KC_##K97, }, \ +{ KC_##KA0, KC_##KA1, KC_##KA2, KC_##KA3, KC_##KA4, KC_##KA5, KC_##KA6, KC_##KA7, } \ +} + +void matrix_init_user(void); +void matrix_scan_user(void); +void led_set_user(uint8_t usb_led); + +#endif \ No newline at end of file diff --git a/keyboards/satan/Makefile b/keyboards/satan/Makefile new file mode 100644 index 000000000..0ad71007e --- /dev/null +++ b/keyboards/satan/Makefile @@ -0,0 +1,73 @@ + + +SRC = led.c + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= no # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= yes # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +RGBLIGHT_ENABLE ?= yes # Enable keyboard underlight functionality (+4870) +BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality (+1150) +MIDI_ENABLE ?= no # MIDI controls +AUDIO_ENABLE ?= no +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID + +ifndef QUANTUM_DIR + include ../../Makefile +endif diff --git a/keyboards/satan/backlight.c b/keyboards/satan/backlight.c new file mode 100644 index 000000000..4240b0916 --- /dev/null +++ b/keyboards/satan/backlight.c @@ -0,0 +1,24 @@ + +#include +#include "backlight.h" +#include "print.h" + +void init_backlight_pin(void) { + print("init_backlight_pin()\n"); + // Set our LED pins as output + DDRB |= (1<<6); + + // Set our LED pins low + PORTB &= ~(1<<6); +} + +void backlight_set(uint8_t level) { + if ( level == 0 ) { + // Turn off light + PORTB |= (1<<6); + } else { + // Turn on light + PORTB &= ~(1<<6); + } +} + diff --git a/keyboards/satan/config.h b/keyboards/satan/config.h new file mode 100644 index 000000000..aa2dca1a6 --- /dev/null +++ b/keyboards/satan/config.h @@ -0,0 +1,92 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0003 +#define MANUFACTURER SATAN +#define PRODUCT GH60 +#define DESCRIPTION QMK keyboard firmware for Satan GH60 with WS2812 support + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +// ROWS: Top to bottom, COLS: Left to right + +#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 } +#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B7, D4, B1, B0, B5, B4, D7, D6, B3 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* Backlight configuration + */ +#define BACKLIGHT_LEVELS 4 + +/* Underlight configuration + */ + #define ws2812_PORTREG PORTE + #define ws2812_DDRREG DDRE + #define ws2812_pin 2 + #define RGBLED_NUM 8 // Number of LEDs + #define RGBLIGHT_HUE_STEP 10 + #define RGBLIGHT_SAT_STEP 17 + #define RGBLIGHT_VAL_STEP 17 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/satan/controller.jpg b/keyboards/satan/controller.jpg new file mode 100644 index 000000000..76ffa4500 Binary files /dev/null and b/keyboards/satan/controller.jpg differ diff --git a/keyboards/satan/keymaps/default/compiled.hex b/keyboards/satan/keymaps/default/compiled.hex new file mode 100644 index 000000000..cd680d64d --- /dev/null +++ b/keyboards/satan/keymaps/default/compiled.hex @@ -0,0 +1,1543 @@ +:100000000C945C070C94A0070C94A0070C94A00718 +:100010000C94A0070C94A0070C94A0070C94A007C4 +:100020000C94A0070C94A0070C942E1A0C94001B9F +:100030000C94FC280C94A0070C94A0070C94A00727 +:100040000C94A0070C94A0070C94A0070C94A00794 +:100050000C94A0070C9464290C94A0070C94A0079E +:100060000C94A0070C94A0070C94A0070C94A00774 +:100070000C94A0070C94A0070C94A0070C94A00764 +:100080000C94CC140C94A0070C94A0070C94A0071B +:100090000C94A0070C94A0070C94A0070C94A00744 +:1000A0000C94A0070C94A0070C94A007B308D308E5 +:1000B0000B09DB08E308EB08F308FB0803096D1BD9 +:1000C0008F1B7D1C8F1B7D1CD41BF71B7D1C4C1CA8 +:1000D0005F1C991F991FC81FC81F0720722172211A +:1000E000722127207221D720D7203E21472172215B +:1000F0006C21E420E420E420E420E420E420E42057 +:10010000E420E420E420E420E420E420E420E420CF +:10011000E420F4200221092110211A2100F001F02D +:1001200002F003F004F005F006F007F008F00020FC +:100130001E001F00200021002200230024002500B3 +:10014000260027002D002E002A002B0014001A0084 +:100150000800150017001C0018000C001200130006 +:100160002F0030003100390004001600070009009C +:100170000A000B000D000E000F00330034000000D9 +:100180002800E10000001D001B000600190005000A +:10019000110010003600370038000000E500E000D4 +:1001A000E300E200000000002C000000000000005E +:1001B0000000E600E7000151E40035000100010005 +:1001C0000100010001000100010001000100010027 +:1001D00001000100007001000100010001000100A8 +:1001E0000100010001000100010001002F703070CA +:1001F0003170010001000100010001000100010057 +:1002000001000100010001000100000001000100E7 +:1002100000000120022003200420052006200720E2 +:1002200008200100010000000100010001000100A0 +:1002300000000000010000000000000000000100BC +:100240000100010001000A44454255473A20656E0D +:1002500061626C65642E0A005374617465206F6678 +:1002600020726F772025583A2025303136620A00F7 +:1002700048756D616E2D7265616461626C65206D9B +:1002800061747269782073746174653A0D0A004470 +:1002900065626F756E63696E672064656C61792055 +:1002A00072656D61696E696E673A2025580A00545F +:1002B000494D4552332064697361626C65642E0A4E +:1002C0000054494D45523320656E61626C65642E61 +:1002D0000A007267626C69676874207365742068CD +:1002E0007376205B454550524F4D5D3A2025752C65 +:1002F00025752C25750A007267626C696768742021 +:10030000746F67676C653A207267626C69676874BE +:100310005F636F6E6669672E656E61626C65203D16 +:100320002025750A007267626C69676874206D6FBA +:1003300064653A2025750A007267626C69676874A3 +:100340005F696E6974207267626C696768745F6365 +:100350006F6E6669672E6D6F6465203D20302E20BC +:1003600057726974652064656661756C7420766186 +:100370006C75657320746F20454550524F4D2E0AA1 +:10038000007267626C696768745F696E6974206582 +:1003900065636F6E666967206973206E6F74206590 +:1003A0006E61626C65642E0A007267626C696768D0 +:1003B000745F696E6974207374617274210A0072CB +:1003C00067626C696768745F696E69742063616CE9 +:1003D0006C65642E0A007267626C696768745F639B +:1003E0006F6E6669672E76616C203D2025640A0079 +:1003F0007267626C696768745F636F6E6669672EA7 +:10040000736174203D2025640A007267626C69671D +:1004100068745F636F6E6669672E687565203D203E +:1004200025640A007267686C696768745F636F6E41 +:100430006669672E6D6F6465203D2025640A007231 +:1004400067626C696768745F636F6E6669672E6563 +:100450006E61626C65203D2025640A007267626CE3 +:10046000696768745F636F6E666967206570726F35 +:100470006D0A006565636F6E6669675F75706461BC +:1004800074655F7267626C696768745F64656661F2 +:10049000756C740A00643214643214783C1E1E14A5 +:1004A0000A0500000000010101020203040505061F +:1004B00007090A0B0C0E0F1112141517191B1D1F1B +:1004C000212325282A2C2F313436393B3E414346FF +:1004D000494C4F5255585A5D6164676A6D70737626 +:1004E000797C7F8386898C8F9295989B9EA2A5A705 +:1004F000AAADB0B3B6B9BCBEC1C4C6C9CBCED0D309 +:10050000D5D7DADCDEE0E2E4E6E8EAEBEDEEF0F1A6 +:10051000F3F4F5F6F8F9FAFAFBFCFDFDFEFEFEFF3A +:10052000FFFFFFFFFFFFFEFEFEFDFDFCFBFAFAF9F9 +:10053000F8F6F5F4F3F1F0EEEDEBEAE8E6E4E2E0EC +:10054000DEDCDAD7D5D3D0CECBC9C6C4C1BEBCB9E8 +:10055000B6B3B0ADAAA7A5A29E9B9895928F8C89A1 +:100560008683807C797673706D6A6764615D5A58A2 +:1005700055524F4C494643413E3B393634312F2C7E +:100580002A282523211F1D1B1917151412110F0EC0 +:100590000C0B0A090706050504030202010101000C +:1005A000000000010102020202020203030303032E +:1005B0000303030303030303030404040404040404 +:1005C00004040404040505050505050505050506DF +:1005D00006060606060606070707070707070808B0 +:1005E000080808080909090909090A0A0A0A0A0B78 +:1005F0000B0B0B0B0C0C0C0C0C0D0D0D0D0E0E0E35 +:100600000E0F0F0F101010101111111212121313E0 +:100610001314141415151616161717181819191976 +:100620001A1A1B1B1C1C1D1D1E1E1F2020212122EF +:1006300023232424252626272828292A2B2B2C2D42 +:100640002E2F30303132333435363738393A3B3C5F +:100650003D3E3F40414244454647494A4B4C4E4F40 +:100660005152535556585A5B5D5E606263656769C7 +:100670006B6D6E70727476797B7D7F818486888BDA +:100680008D909295979A9D9FA2A5A8ABAEB1B4B755 +:10069000BABEC1C4C8CBCFD3D6DADEE2E6EAEEF208 +:1006A000F8FF5B735D004B6579626F617264207364 +:1006B000746172742E0A005B575D005B535D005BD2 +:1006C000525D005B445D005B435D000A03470048E8 +:1006D000003600300000000C03530041005400417C +:1006E000004E000000040309040902740004010024 +:1006F000A0FA090400000103010100092111010011 +:10070000012240000705810308000A0904010001D5 +:1007100003000000092111010001223600070582B3 +:100720000308000A09040200020300000009211165 +:1007300001000122200007058303200001070503B3 +:100740000320000109040300010300000009211136 +:100750000100012239000705840310000112011075 +:100760000100000008EDFE606003000102000105C9 +:10077000010906A101050719E029E71500250195E2 +:100780000875018102050819012905950575019172 +:1007900002950175039101050719002977150025B8 +:1007A00001957875018102C00631FF0974A1010924 +:1007B00075150025FF95207508810209761500251D +:1007C000FF952075089102C005010980A1018502ED +:1007D00016010026B7001A01002AB700751095010E +:1007E0008100C0050C0901A1018503160100269CAA +:1007F000021A01002A9C02751095018100C00501B2 +:100800000906A101050719E029E71500250195084A +:1008100075018102950175088101050819012905F5 +:100820009505750191029501750391010507190060 +:1008300029FF150026FF00950675088100C00A00F3 +:100840002530325820006B6579626F6172645F7287 +:1008500065706F72743A20004B6579626F617264E3 +:10086000204C4544732073746174653A2025780ADE +:100870000064656C5F6B65795F6269743A206361DF +:100880006E27742064656C3A20253032580A006166 +:1008900064645F6B65795F6269743A2063616E2797 +:1008A00074206164643A20253032580A00646F6E07 +:1008B000652E0A00626F6F676D61676963207363FD +:1008C000616E3A202E2E2E20003F00433E20004C29 +:1008D00025640A0074696D65725F636F756E743AA2 +:1008E000202530346C580A006B6579626F61726440 +:1008F0005F6E6B726F3A2025580A006B6579626FE4 +:100900006172645F69646C653A2025580A006B6502 +:1009100079626F6172645F70726F746F636F6C3A4B +:100920002025580A00686F73745F6B6579626F6188 +:1009300072645F6C65647328293A2025580A000A9E +:10094000092D20537461747573202D0A00474343A9 +:100950003A20342E392E32204156522D4C494243F2 +:100960003A20312E382E31204156525F41524348B1 +:100970003A20617672350A004F5054494F4E533A2F +:10098000204C55464120424F4F544D41474943204A +:1009900045585452414B455920434F4E534F4C45B7 +:1009A00020434F4D4D414E44204E4B524F2034304A +:1009B00039360A004255494C443A2036386662635B +:1009C00032632D6469727479202831313A35383AAE +:1009D0003034204A756E2032312032303136290AC7 +:1009E000005649443A2030784645454428534154FE +:1009F000414E29205049443A20307836303630284C +:100A00004748363029205645523A20307830303029 +:100A1000330A00444553433A20514D4B206B6579CE +:100A2000626F617264206669726D776172652066BB +:100A30006F7220536174616E2047483630207769A9 +:100A400074682057533238313220737570706F726A +:100A5000740A000A092D2056657273696F6E202D85 +:100A60000A000A092D20436F6E736F6C65202D0AF2 +:100A70004553432F713A09717569740A000A092DAB +:100A8000204D61676963202D0A443A094465627507 +:100A900067204D65737361676520546F67676C6588 +:100AA0000A583A094D617472697820446562756725 +:100AB000204D6F646520546F67676C65202D20534F +:100AC000686F77206B6579707265737365732069E1 +:100AD0006E206D617472697820677269640A4B3A9E +:100AE000094B6579626F61726420446562756720A5 +:100AF000546F67676C65202D2053686F77206B6596 +:100B0000797072657373207265706F72740A4D3AF2 +:100B1000094465627567204D6F75736520546F6772 +:100B2000676C650A563A0956657273696F6E0A53A7 +:100B30003A095374617475730A433A0941637469DD +:100B40007661746520436F6E736F6C65204D6F64C2 +:100B5000650A46312D4631303A0953776974636826 +:100B600020746F204C6179657220302D3920284621 +:100B70003130203D204C30290A302D393A09537745 +:100B80006974636820746F204C6179657220302D20 +:100B9000390A4553433A0953776974636820746F7F +:100BA000204C6179657220302028616C7465726E0A +:100BB000617465206B65792031290A475241564599 +:100BC0003A0953776974636820746F204C617965C2 +:100BD0007220302028616C7465726E617465206BC0 +:100BE00065792032290A50415553453A094A756DB5 +:100BF0007020746F20426F6F746C6F616465722037 +:100C0000285265736574290A453A095072696E74F1 +:100C100020454550524F4D2053657474696E67737B +:100C20000A4E3A094E4B524F20546F67676C650A63 +:100C3000000A002575002E6C6576656C3A20000A66 +:100C4000002575002E656E61626C653A20000A0011 +:100C500025303258006261636B6C696768745F634A +:100C60006F6E6669672E7261773A20000A002575FB +:100C7000002E6E6B726F3A20000A002575002E73ED +:100C80007761705F6261636B736C6173685F6261EF +:100C9000636B73706163653A20000A002575002E4E +:100CA000737761705F67726176655F6573633A2021 +:100CB000000A002575002E6E6F5F6775693A200087 +:100CC0000A002575002E737761705F72616C745F26 +:100CD000726775693A20000A002575002E737761E6 +:100CE000705F6C616C745F6C6775693A20000A0014 +:100CF0002575002E636170736C6F636B5F746F5F3B +:100D0000636F6E74726F6C3A20000A002575002EB6 +:100D1000737761705F636F6E74726F6C5F63617025 +:100D2000736C6F636B3A20000A0025303258006BF9 +:100D300065796D61705F636F6E6669672E7261774A +:100D40003A20000A002575002E6D6F7573653A20F4 +:100D5000000A002575002E6B6579626F6172643A36 +:100D600020000A002575002E6D61747269783A20A2 +:100D7000000A002575002E656E61626C653A2000E0 +:100D80000A00253032580064656275675F636F6ED4 +:100D90006669672E7261773A20000A002575006443 +:100DA000656661756C745F6C617965723A20003FAD +:100DB000004E4B524F3A206F66660A004E4B524F20 +:100DC0003A206F6E0A000A6D6F7573653A206F6680 +:100DD000660A000A6D6F7573653A206F6E0A000A25 +:100DE0006B6579626F6172643A206F66660A000A09 +:100DF0006B6579626F6172643A206F6E0A000A6DEA +:100E000061747269783A206F66660A000A6D6174CF +:100E10007269783A206F6E0A000A64656275673AF3 +:100E2000206F66660A000A64656275673A206F6E15 +:100E30000A000A0A4A756D70696E6720746F206235 +:100E40006F6F746C6F616465722E2E2E2000433EAE +:100E500020006565636F6E6669673A0A00626163C8 +:100E60006B6C6967687420737465703A2025750A25 +:100E7000006261636B6C6967687420746F67676C8C +:100E8000653A2025750A006261636B6C6967687456 +:100E90002064656372656173653A2025750A006296 +:100EA00061636B6C6967687420696E6372656173F6 +:100EB000653A2025750A000011241FBECFEFDAE045 +:100EC000DEBFCDBF04B603FE24C080912002909106 +:100ED0002102A0912202B09123028730904BA740BB +:100EE000B04BB9F41092200210922102109222020B +:100EF0001092230214BE84B7877F84BF88E10FB6A7 +:100F0000F89480936000109260000FBEE0E0F8E378 +:100F1000099511E0A0E0B1E0E0E2F0E602C0059042 +:100F20000D92A833B107D9F712E0A8E3B1E001C0F0 +:100F30001D92A032B107E1F70E946C170C940E309D +:100F40000C940000FF93EF93E0913801F091390188 +:100F5000309709F00995EF91FF910895FC01859173 +:100F6000803011F0EFDFFBCF0895FF27E0E230E2A1 +:100F700047FF0CC0419597FF09C0EDE26095709561 +:100F800080959095611D711D811D911D27FF02C0E7 +:100F9000219530E350E2AA27660F771F881F991F1B +:100FA000AA1FA41710F0A41B63955A95A9F7AA309D +:100FB00008F0A95FA05DAF93F395611571058105F8 +:100FC000910541F7ED3211F4EF93F395F21718F410 +:100FD0003F93F395FBCF8F91B5DFFA95E1F7089535 +:100FE000E991F9918591803021F0853219F0AADFDD +:100FF000F9CF089520E0E89455915532C1F350336C +:1010000011F4689455915A3348F4505390F3220FD9 +:10101000022E220F220F200D250FF4CF0EF4219562 +:1010200089919991533619F3533729F1533559F171 +:10103000BC0188279927E8945C3621F4899199911D +:1010400068945591543639F446EF7EF077FF0DC021 +:101050008FEF9FEF0AC055374AE039F0583540E12D +:1010600021F0523642E009F00895FF93EF937DDFBF +:10107000EF91FF91B7CFFF93EF93FC018191803007 +:10108000B9F360DFFBCFFF93EF9368DFF1CFDF931E +:10109000CF93CDB7DEB72596A3DFCF91DF9108952B +:1010A000229A089581FF02C02A9A08952A980895E5 +:1010B00008950895269A2E988FEF9FEF90938700BA +:1010C0008093860082E28093800089E18093810092 +:1010D0000C94A92E282F2E9880918000211108C0F1 +:1010E0008F7D8093800010928B0010928A0008956B +:1010F000806280938000243019F48FEF9FEF0FC03F +:1011000084E090E0821B9109880F991F2FEF3FEF39 +:10111000A90102C0569547958A95E2F7CA019093B6 +:101120008B0080938A00089588E598E0892B11F060 +:101130000E9458080E9450080C945A0889E598E0CB +:10114000892B11F00C9459080895CF93DF93DC019B +:10115000462F50E04930510508F065C0FA01EA5ABF +:10116000FF4F0C94C02FEC010E94F92782728093EC +:101170003A019A81992369F0882319F085E390E078 +:1011800002C089E290E00E945127DF91CF910C9438 +:101190004328882319F085E390E002C089E290E0BB +:1011A0000E94A427F2CF12968C918823E1F1DF915F +:1011B000CF910C94721212968C918823A1F1DF9139 +:1011C000CF910C94DE1012968C91882361F1DF91FF +:1011D000CF910C94F61012968C91882321F1DF9117 +:1011E000CF910C94151112968C918823E1F0DF9128 +:1011F000CF910C94301112968C918823A1F0DF913D +:10120000CF910C944A1112968C91882361F0DF9152 +:10121000CF910C94651112968C91882321F0DF9167 +:10122000CF910C946812DF91CF91089581E00895D9 +:1012300081E008950C94180908950F931F93CF939C +:10124000DF938C01FC01C081D181CE010E94D226A6 +:10125000BE010E94540CEC01B8010E941A098823B7 +:1012600009F474C1F8018281882309F45BC080917C +:10127000460181111FC0C431F0E7DF0709F00AC140 +:101280000E941C0981E0809346010E942E299093C0 +:1012900045018093440110923D0110923F0110924C +:1012A0003E011092410110924001109243011092B0 +:1012B00042014CC180914401909145010E943A291C +:1012C000883C910570F480913D01E82FF0E0EE0F2D +:1012D000FF1FE25CFE4FD183C0838F5F80933D018F +:1012E00035C1C43120E7D20708F028C1C23080E7F9 +:1012F000D80710F5C11590E7D90709F0DAC0F80151 +:101300008281882309F4BFC00E94D921FFEF24E322 +:101310008CE0F15020408040E1F700C000000E94C6 +:10132000892914C1C431F0E7DF0708F0D3C0C23007 +:1013300020E7D20708F49BC0F8018281882309F4D2 +:10134000A2C00E944A2B811102C00E942B2B0E9436 +:10135000672B90E09093F1018093F001C230F0E7A9 +:10136000DF0721F48091F00181607AC0C33020E76B +:10137000D20721F48091F001826072C0C43080E70E +:10138000D80721F48091F00184606AC0C53090E7ED +:10139000D90719F48091F00127C0C630E0E7DE07D5 +:1013A00021F48091F00180615BC0C730F0E7DF0776 +:1013B00021F48091F001806253C0C83020E7D20749 +:1013C00021F48091F00180644BC0C93080E7D807D8 +:1013D00021F48091F001806843C0CA3090E7D907BA +:1013E00029F48091F001846088603AC0CB30E0E756 +:1013F000DE0721F48091F0018E7F32C0CC30F0E71F +:10140000DF0721F48091F0018D7F2AC0CD3020E7E5 +:10141000D20721F48091F0018B7F22C0CE3080E78B +:10142000D80719F48091F0011AC08091F001CF30F3 +:1014300090E7D90711F48F7E13C0C031E0E7DE07D3 +:1014400011F48F7D0DC0C131F0E7DF0711F48F7B00 +:1014500007C0C231D04711F48F7702C08B7F877FDE +:101460008093F0018091F0010E946B2B6FC0C11539 +:1014700080E7D80741F0C130D047F1F081E0809398 +:101480003B0180933C01C801DF91CF911F910F91E7 +:101490000C941609C43120E7D20708F04FC0C230BF +:1014A00080E7D80708F048CFC11590E7D90709F4BD +:1014B0002BCFC130D04711F7F8018281882319F36F +:1014C00086E492E00E94AE078091E90181608093FA +:1014D000E9013CC0C333E0E7DE07A1F4F8018281F3 +:1014E000882321F010923B0182E017C080913B01DC +:1014F000811106C086E20E943D1E86E20E94051F01 +:1015000082E019C0C433D04709F0B8CFF801828116 +:10151000882331F010923C0180E20E94541F16C0D3 +:1015200080913C01811106C087E20E943D1E87E246 +:101530000E94051F80E20E945B1F08C0C333F0E7D2 +:10154000DF0761F2C433D04709F398CF80E0DF9121 +:10155000CF911F910F9108950C9494080C949E08BC +:101560002EE0729FF001112436E4839FE00DF11DFF +:101570001124E60FF11DEE0FFF1FE25DFE4F859176 +:1015800094910E94660C811540E5940708F047C0CD +:10159000811520E4920708F013C1883E910520F5DB +:1015A000803E910508F07CC1883A910578F4853A2F +:1015B000910508F0A5C08130910509F471C108F4C6 +:1015C0002EC18430910508F06BC129C18B3B910578 +:1015D00008F4A1C0803C910508F421C1FC01EE0F84 +:1015E000FF1FE456F040E6C0811530E2930758F43F +:1015F000811541E0940708F053C1803F910508F43C +:101600000EC190650895811520E3920708F0D5C0BA +:10161000FC01FF70EE0FFF1FE45EFE4FCBC0811593 +:1016200035E5930708F043C0811544E5940708F0B9 +:10163000DEC0811522E5920708F5811531E5930793 +:1016400008F0C1C0482F437021E030E002C0220FF3 +:10165000331F4A95E2F73C68AC0164E05695479524 +:101660006A95E1F74370342B8F708695869540E23A +:10167000849FC0011124822B932B0895282F269537 +:101680002695AC01437055278115934508F0A0C0FD +:1016900080E2289F9001112481E090E002C0880F31 +:1016A000991F4A95E2F7822B932B9C6808958F32FD +:1016B00040E7940790F48F3120E7920708F0A2C02A +:1016C000811536E5930708F497C09C013056211523 +:1016D000304108F0A4C09F7093C0803320E7920788 +:1016E00009F497C008F492C0813340E7940709F4E5 +:1016F00093C08233904709F092C080E093ED089543 +:10170000853A910509F48EC0863A910509F08DC09D +:1017100082E890E40895883A910509F489C0893AED +:10172000910509F488C08A3A910509F487C08B3A7B +:10173000910509F486C08C3A910509F485C08D3A6B +:10174000910509F484C0803B910509F483C08E3A69 +:10175000910509F482C08F3A910509F481C0813B5B +:10176000910509F480C0823B910509F47FC0833B59 +:10177000910509F47EC0843B910509F47DC0853B49 +:10178000910509F47CC0863B910509F47BC0873B39 +:10179000910509F47AC0883B910509F479C0893B29 +:1017A000910509F478C08A3B910509F477C080E07F +:1017B00094E408958591949108959927906C0895E3 +:1017C0009F70906A0895982F8827816F906A089576 +:1017D00090E2299F9001112481E090E002C0880FDF +:1017E000991F4A95E2F7822B932B9A680895982FB8 +:1017F0008827846F906A08958F719927982F88277A +:10180000906208958F519047946D089580E091ED16 +:10181000089580E090ED089580E092ED089580E0D5 +:1018200090E0089581E890E4089583E890E40895B5 +:1018300082EE94E4089589EE94E408958AEE94E4A7 +:10184000089585EB94E4089586EB94E4089587EB7E +:1018500094E408958CEC94E408958DEC94E4089558 +:1018600083E895E408958AE895E4089582E995E48B +:10187000089584E995E4089581E296E4089583E269 +:1018800096E4089584E296E4089585E296E4089546 +:1018900086E296E4089587E296E408958AE296E463 +:1018A000089580E090E008959EE0799FF001112472 +:1018B00096E4899FE00DF11D1124E60FF11DEE0F56 +:1018C000FF1FE25DFE4F8591949108958238910546 +:1018D00049F1B0F48133910509F458C048F48932D4 +:1018E000910509F44EC08A32910509F454C0089557 +:1018F0008533910509F440C08933910599F0089525 +:10190000833E910529F138F4803E910591F0823EA5 +:101910009105A1F00895863E9105F9F0873E910565 +:1019200031F108952091F00120FD3AC021FD38C029 +:1019300008958091F00180FD35C032C08091F001A2 +:1019400082FF32C08091F00184FD30C083EE39C047 +:101950008091F00182FD28C0F5CF8091F00183FFD6 +:1019600027C08091F00184FD21C087EE2AC08091BC +:10197000F00183FD1DC0F5CF8091F00185FD1AC0F7 +:101980001BC08091F00185FD17C014C08091F0014B +:1019900086FD14C015C08091F00186FD11C00EC0F7 +:1019A00080EE0FC089E30DC082EE0BC080E009C05D +:1019B00086EE07C089E205C085E303C08AE201C064 +:1019C00081E390E008950C945208E82FF0E0E25E85 +:1019D000FE4F8081E82FEF70F0E082958F7021E05C +:1019E00030E0A90102C0440F551F8A95E2F740A3D9 +:1019F00008950F931F93CF93DF93C4E0D0E001E0ED +:101A000010E0FE01E25EFE4F8081E82FEF70F0E013 +:101A100021A182958F70A80102C0440F551F8A959D +:101A2000E2F7CA01822B81A38C2F0E94E50C21973B +:101A300040F78DE090E061E070E0FC01E05FFE4F78 +:101A40002081E22FEF70F0E042A122952F70DB01A0 +:101A500002C0AA0FBB1F2A95E2F79D01242B22A3E7 +:101A6000019758F7DF91CF911F910F9108950F9330 +:101A70001F93CF93DF9385B7806885BF85B7806854 +:101A800085BFC4E0D0E001E010E0FE01E25EFE4F61 +:101A90008081E82FEF70F0E021A182958F70A8017E +:101AA00002C0440F551F8A95E2F7CA01822B81A319 +:101AB0008C2F0E94E50C219740F78DE090E061E0CB +:101AC00070E0FC01E05FFE4F2081E22FEF70F0E05C +:101AD00042A122952F70DB0102C0AA0FBB1F2A95DD +:101AE000E2F79D01242B22A3019758F7DF91CF91B4 +:101AF0001F910F910C94AC0AEF92FF920F931F93DA +:101B0000CF93DF9301E511E0C4E0EE24E394F12CE0 +:101B1000D5E08C2F0E94E50C8DE090E040E050E095 +:101B2000FC01E05FFE4F6081E62FEF70F0E020A146 +:101B300030E062956F7002C0359527956A95E2F79F +:101B400020FD09C09701082E02C0220F331F0A94FE +:101B5000E2F7422B532B019718F7F80192918291EB +:101B60008F018417950721F051834083D0930001A2 +:101B70008C2F0E94E50CC15060F68091000187FD1A +:101B800035C09091E90190FF10C0282F332727FD21 +:101B900030953F938F938FE892E09F938F930E94AD +:101BA00047080F900F900F900F9080910001815087 +:101BB0008093000187FD07C08FE99FE00197F1F74F +:101BC00000C0000013C080E090E0FC01EF5AFE4F1F +:101BD000DC01A95BBE4F18962D913C911997318776 +:101BE00020870297863FEFEF9E0779F70E94AE0AA3 +:101BF00081E0DF91CF911F910F91FF90EF900895B9 +:101C0000E82FF0E0EE0FFF1FEF5AFE4F8081918129 +:101C10000895EF92FF920F931F93CF93DF938091DC +:101C2000E90180FF04C080E792E00E94AE0701E571 +:101C300011E0C0E0D0E088E5E82E82E0F82E809147 +:101C4000E90180FF13C0F801808191810E949928E9 +:101C50009F938F93DF93CF93FF92EF920E94470859 +:101C60000F900F900F900F900F900F9021960E5F96 +:101C70001F4FC530D10519F7DF91CF911F910F91FB +:101C8000FF90EF9008950F931F93CF930BE511E012 +:101C9000C0E0F801929182918F010E947728C80FCD +:101CA000F1E001351F07A9F78C2FCF911F910F91FC +:101CB00008952EB1342F309523233EB1432B3FB7E7 +:101CC000F894FC01680F791FE617F70789F08191F6 +:101CD00098E04EB9000000C087FF2EB9880F0000C1 +:101CE00000C000C000C02EB900C09A9591F7ECCF9B +:101CF0003FBF08952DB1242B2DB99B01220F331F17 +:101D0000620F731F0E94590E87EC90E00197F1F764 +:101D100000C00000089544E00C947A0EAF92BF9288 +:101D2000CF92DF92EF92FF920F931F93CF93DF93A7 +:101D30006C01790150E0FA01EE55FA4F44918FEFB2 +:101D400090E0FC01E61BF109EE55FA4FE491E095B5 +:101D500009F495C0C42FD0E08E1B91098C9F90018F +:101D60008D9F300D9C9F300D1124E32F8CE3A82E06 +:101D7000B12CC601B5010E94982FDC0162307105BB +:101D800009F446C0D0F46115710599F1613071050F +:101D900009F079C0C31BD109B501681B790BC69F37 +:101DA000C001C79F900DD69F900D1124B5010E94D0 +:101DB000982F032F060F142F67C06430710509F4A4 +:101DC0004BC0B8F16530710509F05DC0C31BD10986 +:101DD000B501681B790BC69FC001C79F900DD69FA8 +:101DE000900D1124B5010E94982F132FE32FE60FB9 +:101DF00044C0C31BD109CC9DC001CD9D900DDC9D7D +:101E0000900D1124B5010E94982F132F160F35C085 +:101E1000C31BD109CA9FC001CB9F900DDA9F900DC3 +:101E20001124B5010E94982F142F032FE32FE60FE2 +:101E30002BC0C31BD109B501681B790BC69FC0011C +:101E4000C79F900DD69F900D1124B5010E94982F29 +:101E5000132F160F032F0FC0C31BD109CA9FC00138 +:101E6000CB9F900DDA9F900D1124B5010E94982F01 +:101E7000032F060F132FE42F07C0042F05C0E42FF4 +:101E8000142F042F01C0E0E0D70111960C93119795 +:101E90001C931296EC93DF91CF911F910F91FF90BD +:101EA000EF90DF90CF90BF90AF90089587E090E0E3 +:101EB0000C94CE2FAB01BC0187E090E00C94EC2F8A +:101EC0008091E90180FF08C083E794E09F938F939E +:101ED0000E9447080F900F9083E08093F201809159 +:101EE000F301807884668F778093F3018CEC809384 +:101EF000F4018093F5016091F2017091F3018091FA +:101F0000F4019091F5010C945A0F8091E90180FF42 +:101F100008C08CE594E09F938F930E9447080F9030 +:101F20000F908091E90180FF0FC08091F2018170D4 +:101F30001F928F938FE394E09F938F930E944708A3 +:101F40000F900F900F900F908091E90180FF10C0CB +:101F50008091F20186958F731F928F9384E294E0B3 +:101F60009F938F930E9447080F900F900F900F90B0 +:101F70008091E90180FF19C08091F201881F8827B4 +:101F8000881F9091F301292F220F822B97FB99270D +:101F900090F99F938F938AE094E09F938F930E9490 +:101FA00047080F900F900F900F908091E90180FFEC +:101FB0000EC08091F4011F928F9380EF93E09F9366 +:101FC0008F930E9447080F900F900F900F90809171 +:101FD000E90180FF0EC08091F5011F928F9386ED7D +:101FE00093E09F938F930E9447080F900F900F905C +:101FF0000F9008958091F20180FF06C068E070E0C4 +:102000008AEF91E00C948B0E80E090E0FC01E650AA +:10201000FE4F118210821282039688319105B1F72A +:10202000EDCF20E030E0F901E650FE4F8183608380 +:1020300042832D5F3F4F28313105A9F70C94FA0FE9 +:10204000EF92FF920F931F93CF93DF9300D01F92D5 +:10205000CDB7DEB70091F2011091F3012091F401A8 +:102060003091F5010093F6011093F7012093F801E8 +:102070003093F9012091F20120FF21C0042FF62EA8 +:10208000E92E182F9E012F5F3F4F0E948E0E8091E8 +:10209000F60110FB87F98093F60116958091F70100 +:1020A0008078182BE0FA17F91093F701F092F801F5 +:1020B0000093F9014B8169818A810E9411100F9070 +:1020C0000F900F90DF91CF911F910F91FF90EF90A4 +:1020D00008950F931F93CF93DF93EC01062F142FD6 +:1020E0009091F20190FF65C0892F8E77823021F4A4 +:1020F000CE010E9420101BC0892F86958F732EE37E +:10210000280F2F73243018F41091F50110C0865C4D +:102110008F73893060F4C92FCC1FCC27CC1FD0918E +:10212000F3018D2F880FC82BD7FBDD27D0F98091C5 +:10213000F201C0FB87F98093F201C6958091F3010B +:102140008078C82BD0FBC7F9C093F3010093F4014A +:102150001093F5016091F2017091F3018091F40107 +:102160009091F5010E945A0F8091F5011F928F9373 +:102170008091F4011F928F938091F201881F88272C +:10218000881F9091F301292F220F822B97FB99270B +:1021900090F99F938F9382ED92E09F938F930E948B +:1021A00047088DB79EB708960FB6F8949EBF0FBE2E +:1021B0008DBFDF91CF911F910F910895E2EFF1E074 +:1021C0002081221F2227221F3091F301432F440F29 +:1021D000842F822B37FB992790F90A9668E671E0E5 +:1021E0000E94AC2F438162810C9469102091F2010E +:1021F000221F2227221F3091F301432F440F842FE7 +:10220000822B37FB992790F98A3091051CF4825A6A +:102210009E4F01C00A9768E671E00E94AC2F409182 +:10222000F5016091F4010C9469106091F401862F1E +:1022300090E08F3E910514F46F5E01C06FEF8091C6 +:10224000F201881F8827881F9091F301292F220F00 +:1022500097FB992790F94091F501822B0C94691016 +:102260006091F401862F90E0419714F0615101C014 +:1022700060E08091F201881F8827881F9091F30108 +:10228000292F220F97FB992790F94091F501822B76 +:102290000C9469104091F501842F90E08F3E9105D8 +:1022A00014F44F5E01C04FEF8091F201881F882720 +:1022B000881F9091F301292F220F97FB992790F9FE +:1022C0006091F401822B0C9469104091F501842FE8 +:1022D00090E0419714F0415101C040E08091F2013B +:1022E000881F8827881F9091F301292F220F97FBC1 +:1022F000992790F96091F401822B0C9469108091D8 +:102300006C0181110FC081E080936C0189E08093A2 +:1023100091008FB7F89493E09093990090ED90938B +:1023200098008FBF08958091710082608093710042 +:102330008091E90180FF08C081EC92E09F938F9328 +:102340000E9447080F900F900895809171008D7F33 +:10235000809371008091E90180FF08C08FEA92E0CC +:102360009F938F930E9447080F900F90089590912C +:10237000F20190FF4BC09178811102C0926007C0BA +:10238000883110F09E6203C08F73880F982B909352 +:10239000F2016091F2017091F3018091F40190914A +:1023A000F5010E945A0F8091F20186958F731F925A +:1023B0008F9385E293E09F938F930E9447088091CB +:1023C000F201982F9E770F900F900F900F90923000 +:1023D00019F40E94A51107C08695825C8F7386311F +:1023E00010F40E9493118091F201881F8827881FA2 +:1023F0009091F301292F220F97FB992790F9409193 +:10240000F5016091F401822B0C946910089580917C +:10241000E90181608093E9018FEB93E09F938F93B3 +:102420000E94470881E080936D018091E9010F903F +:102430000F9080FF08C089EA93E09F938F930E94DA +:1024400047080F900F900E944A2B811110C0809175 +:10245000E90180FF08C081E893E09F938F930E9479 +:1024600047080F900F900E942B2B0E94600F0E9434 +:10247000560F6093F2017093F3018093F4019093EF +:10248000F5016E77C1F48091E90180FF08C088E30F +:1024900093E09F938F930E9447080F900F900E94A4 +:1024A000600F0E94560F6093F2017093F3018093C6 +:1024B000F4019093F5010E94850F0E947F11809195 +:1024C000F20180FF04C086958F730C94B7110895B4 +:1024D0008091F20186958F738F5F883108F081E0DB +:1024E0000C94B7118091F201982F909590FB80F990 +:1024F0008093F2016091F2017091F3018091F401F7 +:102500009091F5010E945A0F8091F20181701F9203 +:102510008F9387EF92E09F938F930E94470880915B +:10252000F2010F900F900F900F9080FF04C08695DE +:102530008F730C94B7110E94A5112FEF80E792E0E2 +:10254000215080409040E1F700C000000C94FA0F49 +:10255000CF93C82F80916A0190916B010E943A2914 +:10256000EC2FF0E0E256FB4FE491F0E08E179F076E +:1025700018F10E942E2990936B0180936A01E091DB +:102580006901F0E0EE55FB4F44918091F201881F04 +:102590008827881F9091F301292F220F97FB9927F5 +:1025A00090F96091F401822B0E94201080916901C2 +:1025B00090E0019680936901CF910895CF93C82F41 +:1025C00080916701909168010E943A29EC2FF0E018 +:1025D000E556FB4FE491F0E08E179F07E8F00E946C +:1025E0002E2990936801809367014091F5016091D5 +:1025F000F40180916501909166010E942010809104 +:10260000650190916601019668E671E00E94982F3D +:102610009093660180936501CF910895CF92DF92E8 +:10262000FF920F931F93CF93DF93F82E8091630156 +:10263000909164010E943A29EF2DE695F0E0E5566D +:10264000FB4FE491F0E08E179F07E8F10E942E29DE +:1026500090936401809363010AEF11E0C0E0D0E041 +:1026600088E6C82EDD24D3948091610190916201A7 +:102670008C0F9D1FB6010E94982F98014091F50183 +:102680006091F4010E948E0EAD960D5F1F4FC8360B +:1026900081E0D80749F70E94FA0F2091610130913B +:1026A0006201F0FE0AC0C9010196BE010E94982F86 +:1026B000909362018093610106C0215031093093EB +:1026C000620120936101DF91CF911F910F91FF90E3 +:1026D000DF90CF9008958F929F92AF92BF92CF924A +:1026E000DF92EF92FF920F931F93CF93DF93C82F48 +:1026F00080FF03C0DD24DA9402C0DD24D3948091EE +:102700005F01909160010E943A29C695EC2FF0E09C +:10271000E856FB4FE491F0E08E179F0708F466C07F +:102720000E942E299093600180935F019AEFE92E19 +:1027300091E0F92E0CEF11E0C0E0D0E027E0822E0E +:10274000912CF80131971082F7011082F801108264 +:1027500087E0A82EB12CC12C80915E018C0D87FDE5 +:10276000885F992787FD9095C817D907E9F42091CC +:10277000F5012A9DC0012B9D900D1124B4010E94EA +:10278000AC2F462F8091F201881F8827881F9091D7 +:10279000F301592F550F97FB992790F997016091F5 +:1027A000F401852B0E948E0ECD0CF1E0AF1AB1081A +:1027B00099F6219683E0E80EF11C0D5F1F4FC8309B +:1027C000D10509F0BECF0E94FA0F80915E0191E021 +:1027D000D91206C0811102C087E006C0815004C032 +:1027E00090E001968770992780935E01DF91CF91E9 +:1027F0001F910F91FF90EF90DF90CF90BF90AF901F +:102800009F908F9008959F92AF92BF92CF92DF9248 +:10281000EF92FF920F931F93CF93DF93CDB7DEB765 +:1028200068970FB6F894DEBF0FBECDBF182F80910A +:102830005C0190915D010E943A29E12FF0E0EB5696 +:10284000FB4FE491F0E08E179F0708F493C00E94BD +:102850002E2990935D0180935C01CE0101967C014D +:102860005E0193E0A90EB11CC12CD12C8701F501AA +:1028700031971082F7011082F5011082912C90910E +:10288000010180915B01999E800D112487FD04C098 +:1028900088301CF087E001C080E0992787FD909583 +:1028A000C816D906A1F48091F201881F8827881FD5 +:1028B0009091F301592F550F97FB992790F99701A4 +:1028C0004091F5016091F401852B0E948E0E939446 +:1028D000F7E09F12D4CF8FEFC81AD80A93E0E90E21 +:1028E000F11CE3E0AE0EB11CF8E0CF16D10409F004 +:1028F000BECFACEFB1E089E090E0FC01E770FF27CC +:102900009D0121503109AF01440F551FE40FF51F00 +:10291000BF01600F711FFB014181F901408321500C +:102920003109FB014081F9014083FB0122812C9395 +:10293000019613968131910501F70E94FA0F90914B +:10294000010180915B01913049F48A3F2CF489EFB9 +:1029500080935B018FEF08C081500AC08F303CF03C +:102960008EE080935B0181E08093010103C08F5F63 +:1029700080935B0168960FB6F894DEBF0FBECDBFA3 +:10298000DF91CF911F910F91FF90EF90DF90CF904B +:10299000BF90AF909F9008951F920F920FB60F9225 +:1029A00011242F933F934F935F936F937F938F9354 +:1029B0009F93AF93BF93EF93FF938091F20186951E +:1029C0008F739EE3980F9F73943020F482500E947F +:1029D000A81223C09AE3980F9F73933020F4865077 +:1029E0000E94DE121AC097E3980F9F73963020F46E +:1029F00089500E940E1311C091E3980F9F73963077 +:102A000020F48F500E946B1308C09BE2980F9F73B5 +:102A1000933018F485510E940314FF91EF91BF91F8 +:102A2000AF919F918F917F916F915F914F913F9166 +:102A30002F910F900FBE0F901F90189580918101DC +:102A4000089508959FB7F894109270019FBF9091D8 +:102A50001602943009F057C09091E9009F703091B0 +:102A6000EC00232F217030FD20E8922B23E02093EF +:102A7000E9002091EB0020FF43C02091EE0027FFEA +:102A80003FC020916E01222321F02091E80025FF14 +:102A900037C010926E0126E03091E80035FD15C078 +:102AA00030911602343061F53091EB0035FD28C0CD +:102AB000215021F481E080936E0122C0EFE9FFE014 +:102AC0003197F1F700C00000E7CF8093F1008091CB +:102AD000E80085FD0AC08091E80080FFFCCF80916E +:102AE000E8008E778093E80006C08FB7F89421E065 +:102AF000209370018FBF9F709093E90080E008954C +:102B00009F709093E9008FEF0895CF93DF9300D0EB +:102B10001F92CDB7DEB720911602243021F523E0B5 +:102B200029839B838A8382E08093E9008FEF9091D1 +:102B3000E800815095FD06C095ED9A95F1F70000EB +:102B40008111F5CF8091E80085FF0DC040E050E095 +:102B500063E070E0CE0101960E941E188091E800AB +:102B60008E778093E8000F900F900F90DF91CF91B8 +:102B70000895CF93DF9300D01F92CDB7DEB79C01AD +:102B800080911602843019F592E099833B832A8361 +:102B90009093E9008FEF9091E800815095FD06C079 +:102BA00095ED9A95F1F700008111F5CF8091E8003D +:102BB00085FF0DC040E050E063E070E0CE0101967B +:102BC0000E941E188091E8008E778093E8000F9095 +:102BD0000F900F90DF91CF910895CF93DF93EC0189 +:102BE00090911602943009F046C080910C01882320 +:102BF000D9F080910D018823B9F09093E9008FEF0F +:102C00009091E800815095FD06C095E19A95F1F705 +:102C100000008111F5CF8091E80085FF2CC040E0D5 +:102C200050E060E170E017C081E08093E9008FEF31 +:102C30009091E800815095FD06C095ED9A95F1F7C9 +:102C400000008111F5CF8091E80085FF14C040E0BD +:102C500050E068E070E0CE010E941E188091E8000C +:102C60008E778093E80080E1FE01A1E7B1E001905A +:102C70000D928A95E1F7DF91CF91089587EC96E068 +:102C80000E94AE0780911502811109C00E94B319FC +:102C90000E94101A8091E20084608093E2000895FF +:102CA00083EC96E00E94AE071092150208958FEB18 +:102CB00096E00C94AE078BEB96E00C94AE0787EB96 +:102CC00096E00E94AE070C94F12820916F012F5FCF +:102CD000822F62E30E948C2F992319F020936F01B9 +:102CE000089510926F0180917001882371F1809195 +:102CF0001602843041F58091E9008F702091EC003C +:102D0000922F917020FD90E8892B93E09093E90039 +:102D10009091EB0090FF14C09091EE0097FF10C0CF +:102D20009091E80095FF03C01092F100F9CF9091C7 +:102D3000E80090FF05C09091E8009E779093E8002E +:102D40008F708093E90010927001089542E061EC69 +:102D500081E00E942D1942E061EC82E00E942D1971 +:102D600042E261EC83E00E942D1942E161EC84E0D3 +:102D70000C942D1980911802833009F455C030F459 +:102D8000813071F0823009F48EC008958A3009F4E0 +:102D90007AC08B3009F460C0893009F09CC020C033 +:102DA00080911702813A09F096C08091E800877FF0 +:102DB0008093E80080911B0290911C02892B21F4E2 +:102DC00060E181E791E003C060E080E090E070E0C6 +:102DD0000E9469188091E8008B778093E80008953D +:102DE00080911702813209F076C080911B02909188 +:102DF0001C02009719F0039709F06DC08091E8005C +:102E0000877F8093E8008091E80082FD05C0809173 +:102E100016028111F8CF5FC08091F100809381018B +:102E20008091E8008B7753C080911702813A09F0B6 +:102E300052C080911B0290911C02892B09F04BC05B +:102E40008091E800877F8093E8008091E80080FF10 +:102E5000FCCF80910C0136C0809117028132D9F5E8 +:102E600080911B0290911C02892BA9F58091E800AA +:102E7000877F8093E8000E946219809119028093F5 +:102E80000C010C94D92180911702813221F5809197 +:102E9000E800877F8093E8000E94621980911A02FF +:102EA00080938201089580911702813AA1F4809164 +:102EB000E800877F8093E8008091E80080FFFCCFE6 +:102EC000809182018093F1008091E8008E77809359 +:102ED000E8000C946219089584B7877F84BF88E165 +:102EE0000FB6F89480936000109260000FBE80E8E7 +:102EF00080936100109261000E94371D0E94B319F7 +:102F00000E94101A8091E20084608093E20082E2C5 +:102F100095E10E94722878940E94951C0E94391DA8 +:102F200082E091E00E94B01C86EA96E00E94AE0723 +:102F300080911602853089F482EA96E00E94AE07FD +:102F40000E94B32880911402882391F30E94E02804 +:102F5000882371F30E940818EBCF0E94611DE8CF0F +:102F6000292F332723303105C9F064F4213031058E +:102F700081F02230310509F043C084E790E029EE6A +:102F800036E042C021323105F1F02232310541F103 +:102F900037C082E190E02DE537E036C099278130D7 +:102FA000910541F08230910541F0892B49F5E5EE1C +:102FB000F6E005C0E7EDF6E002C0EBECF6E0849148 +:102FC00090E09F0121C06430D8F4E62FF0E0EE0FCE +:102FD000FF1FE15DFE4F2081318189E090E014C048 +:102FE000643070F470E0FB01EE0FFF1FE95DFE4FEF +:102FF00020813181FB01ED5DFE4F808190E004C0B6 +:1030000080E090E020E030E0FA01318320830895F1 +:1030100080E189BD82E189BD09B400FEFDCF8091C8 +:10302000D8008F7D8093D8008091E00082608093EB +:10303000E0008091E00081FDFCCF0895CF92DF9207 +:10304000EF92FF920F931F93CF93DF93EC018B01CD +:103050006A010E948119811133C0C114D10439F071 +:10306000F60180819181081B190BC80FD91FE12C33 +:10307000F12C0115110519F18091E80085FD16C0AC +:103080008091E8008E778093E800C114D10449F064 +:10309000F60180819181E80EF91EF182E08285E0DF +:1030A0000FC00E948119882321F30AC0899180935F +:1030B000F10001501109FFEFEF1AFF0ADACF80E0AB +:1030C000DF91CF911F910F91FF90EF90DF90CF9004 +:1030D000089520911D0230911E022617370748F0EF +:1030E0006115710539F42091E8002E772093E800EE +:1030F00001C0B90140E061157105A9F120911602E6 +:10310000222309F443C0253009F442C02091E8008D +:1031100023FD40C02091E80022FD32C02091E8004C +:1031200020FFE9CF4091F3002091F20030E0342BF2 +:10313000FC01CF016115710559F02830310540F4CB +:1031400081918093F100615071092F5F3F4FF1CF62 +:1031500041E02830310509F040E02091E8002E7769 +:103160002093E800C8CF4111C9CF0AC08091160250 +:10317000882361F0853061F08091E80083FD0AC00A +:103180008091E80082FFF2CF80E0089582E0089508 +:1031900083E0089581E0089520911D0230911E0280 +:1031A0002617370748F06115710539F42091E800BA +:1031B0002E772093E80001C0B901FC0120E06115E1 +:1031C000710591F180911602882309F440C0853081 +:1031D00009F43FC08091E80083FD3DC08091E80084 +:1031E00082FD2FC08091E80080FFE9CF2091F3009D +:1031F0008091F20090E0922B6115710559F08830B2 +:10320000910540F424912093F100319661507109A9 +:103210000196F2CF21E0089709F020E08091E800C4 +:103220008E778093E800CBCF2111CCCF0AC080915C +:103230001602882361F0853061F08091E80083FDFB +:103240000AC08091E80082FFF2CF80E0089582E01A +:10325000089583E0089581E00895982F973058F5F8 +:103260009093E900981739F07091EC002091ED00EF +:103270005091F00003C0242F762F50E021FF19C099 +:103280003091EB003E7F3093EB003091ED003D7FBD +:103290003093ED003091EB0031603093EB00709390 +:1032A000EC002093ED005093F0002091EE0027FFFA +:1032B00007C09F5FD3CF8F708093E90081E00895AE +:1032C00080E008958091170287FF11C08091E80087 +:1032D00082FD05C0809116028111F8CF11C0809146 +:1032E000E8008B770BC080911602882349F080910B +:1032F000E80080FFF8CF8091E8008E778093E800A7 +:1033000008952091E4003091E50095E64091EC00AD +:10331000842F817040FF22C08091E80080FD1CC096 +:1033200080911602882391F0853091F08091EB0016 +:1033300085FD10C04091E4005091E500421753070D +:1033400029F39A01915011F784E0089582E00895DD +:1033500083E0089581E0089580E008954091E800B9 +:1033600042FFDECF08950E94211A0E94291AE0EE42 +:10337000F0E0808181608083E8EDF0E080818F77EC +:10338000808319BCA7EDB0E08C918E7F8C938081F7 +:103390008F7E80831092150208950F931F93CF9311 +:1033A000DF930E94211A0E94291AC8EDD0E088817B +:1033B0008F77888388818068888388818F7D8883E0 +:1033C00019BC10921602109212021092140210925E +:1033D000130200EE10E0F80180818B7F80838881EA +:1033E0008160888342E060E080E00E942D19E1EE78 +:1033F000F0E080818E7F8083E2EEF0E0808181606A +:103400008083808188608083F80180818E7F8083C3 +:10341000888180618883DF91CF911F910F910895FA +:10342000E8EDF0E080818F7E8083E7EDF0E0808141 +:103430008160808384E082BF81E0809315020C94D8 +:10344000CD19E8EDF0E080818E7F80831092E2005C +:1034500008951092DA001092E10008951F920F92E1 +:103460000FB60F9211242F933F934F935F936F9357 +:103470007F938F939F93AF93BF93EF93FF9380912D +:10348000E10082FF0BC08091E20082FF07C08091C3 +:10349000E1008B7F8093E1000E9465168091DA0045 +:1034A00080FF1FC08091D80080FF1BC08091DA0090 +:1034B0008E7F8093DA008091D90080FF0DC080E17B +:1034C00089BD82E189BD09B400FEFDCF81E0809312 +:1034D00016020E943E1605C019BC109216020E94E8 +:1034E00050168091E10080FF19C08091E20080FFBA +:1034F00015C08091E2008E7F8093E2008091E2000F +:1035000080618093E2008091D80080628093D8002F +:1035100019BC85E0809316020E945B168091E10041 +:1035200084FF30C08091E20084FF2CC080E189BD1F +:1035300082E189BD09B400FEFDCF8091D8008F7D66 +:103540008093D8008091E1008F7E8093E10080918C +:10355000E2008F7E8093E2008091E20081608093A0 +:10356000E20080911202882311F084E007C080916C +:10357000E30087FD02C081E001C083E08093160272 +:103580000E945F168091E10083FF29C08091E200D4 +:1035900083FF25C08091E100877F8093E10082E076 +:1035A00080931602109212028091E1008E7F809328 +:1035B000E1008091E2008E7F8093E2008091E20042 +:1035C00080618093E20042E060E080E00E942D197B +:1035D0008091F00088608093F0000E945716FF9160 +:1035E000EF91BF91AF919F918F917F916F915F917B +:1035F0004F913F912F910F900FBE0F901F901895F4 +:103600001F920F920FB60F9211242F933F934F9357 +:103610005F936F937F938F939F93AF93BF93CF935A +:10362000DF93EF93FF93C091E900CF708091EC009E +:10363000D82FD17080FDD0E81092E9008091F00081 +:10364000877F8093F00078940E94441B1092E900D9 +:103650008091F00088608093F000CD2BCF70C093F4 +:10366000E900FF91EF91DF91CF91BF91AF919F91D1 +:103670008F917F916F915F914F913F912F910F901B +:103680000FBE0F901F9018951F93CF93DF93CDB768 +:10369000DEB7AA970FB6F894DEBF0FBECDBFE7E145 +:1036A000F2E088E08E0F9091F10091938E13FBCFA2 +:1036B0000E94BA168091E80083FF1FC18091170213 +:1036C00090911802492F50E04A30510508F015C179 +:1036D000FA01E15AFF4F0C94C02F803881F08238F4 +:1036E00009F00BC180911B028F708093E9008091DB +:1036F000EB0085FB882780F91092E90006C08091D5 +:10370000130290911402911182609091E800977FCA +:103710009093E8008093F1001092F100C8C0282F28 +:103720002D7F09F0EAC0882319F0823061F0E5C0EE +:1037300080911902813009F0E0C0933009F080E0F7 +:10374000809314022BC080911902811127C08091AF +:103750001B028F7009F4D1C08093E9002091EB0027 +:1037600020FF1CC0933021F48091EB00806214C0D4 +:103770009091EB0090619093EB0021E030E0A90183 +:1037800002C0440F551F8A95E2F74093EA00109259 +:10379000EA008091EB0088608093EB001092E900D2 +:1037A0008091E800877F86C08111A7C0109119021F +:1037B0001F778091E3008078812B8093E3008091D4 +:1037C000E800877F8093E8000E9462198091E800FA +:1037D00080FFFCCF8091E30080688093E3001111AB +:1037E00002C082E001C083E08093160286C0805848 +:1037F000823008F082C08091190290911A028C3DAB +:1038000053E0950779F583E08A838AE289834FB78D +:10381000F894DE01139620E03EE051E2E32FF0E061 +:1038200050935700E49120FF03C0E295EF703F5F93 +:10383000EF708E2F90E0EA3010F0C79601C0C0966E +:103840008D939D932F5F243149F74FBF8091E800FE +:10385000877F8093E8006AE270E0CE0101960E94C3 +:10386000691814C0AE014F5F5F4F60911B020E9448 +:10387000B017BC01009709F440C09091E800977F11 +:103880009093E80089819A810E94CC188091E80089 +:103890008B778093E80031C0803879F58091E8001B +:1038A000877F8093E800809112028093F1008091DD +:1038B000E8008E778093E8000E9462191EC0811193 +:1038C0001CC0909119029230C0F48091E800877F6B +:1038D0008093E800909312020E9462198091120274 +:1038E000811106C08091E30087FD02C081E001C024 +:1038F00084E0809316020E94A6168091E80083FF60 +:103900000AC08091E800877F8093E8008091EB00F7 +:1039100080628093EB00AA960FB6F894DEBF0FBECC +:10392000CDBFDF91CF911F910895CF938091160263 +:103930008823A1F0C091E900CF709091EC00892F0D +:10394000817090FD80E8C82B1092E9008091E8001A +:1039500083FD0E94441BCF70C093E900CF9108956E +:1039600090938801809387010895E0918701F091F9 +:103970008801309721F00190F081E02D099480E0DA +:103980000895EF92FF920F931F93CF93DF93E091EF +:103990008701F09188013097B1F18C010280F381A9 +:1039A000E02D09958091E90182FF2DC080FF04C0C0 +:1039B00086E498E00E94AE07E80110E180E4E82E7A +:1039C00088E0F82E8091E90180FF0BC088811F926A +:1039D0008F93FF92EF920E9447080F900F900F90E5 +:1039E0000F90115021961111EDCF8091E90180FFC8 +:1039F0000AC08EE398E0DF91CF911F910F91FF9065 +:103A0000EF900C94AE07DF91CF911F910F91FF9033 +:103A1000EF900895209185013091860182179307D8 +:103A200071F09093860180938501E0918701F09178 +:103A30008801309721F00680F781E02D09940895E0 +:103A400020918301309184018217930771F0909344 +:103A5000840180938301E0918701F0918801309780 +:103A600021F00084F185E02D0994089508950C94C7 +:103A7000361D0E9425290E94370D0E94F3290E94BD +:103A8000A92E0C940712CF93DF931F92CDB7DEB708 +:103A90009091E90192FF10C090FF0EC01F928F938A +:103AA00028E538E03F932F9389830E9447080F90C1 +:103AB0000F900F900F9089810F90DF91CF910C9410 +:103AC000E30C5F926F927F928F929F92AF92BF9220 +:103AD000CF92DF92EF92FF920F931F93CF93DF93DA +:103AE00000D000D01F92CDB7DEB70E947C0D94E9C4 +:103AF000C92E91E0D92E04E010E0AA24A394B12CA1 +:103B0000502E802F0E94000E4C01F60172906290A0 +:103B10006F016826792661147104A1F4015011091E +:103B200078F78FEF89838A831B820E942E29816018 +:103B3000782F9D838C8349815A816B818D810E946E +:103B40000F1E38C08091E90181FD0E94090E2DE011 +:103B500030E07501022E02C0EE0CFF1C0A94E2F761 +:103B6000C70186219721892B09F129835A828E204A +:103B70009F2091E0892809F490E09B830E942E29E0 +:103B80008160782F9D838C8349815A816B818D81DF +:103B90000E940F1E000F111FF801E657FE4F808193 +:103BA0009181E826F926F182E08204C02150310992 +:103BB00080F6B4CF109189010E94B51C1817D1F07E +:103BC0000E94B51C809389010F900F900F900F9069 +:103BD0000F90DF91CF911F910F91FF90EF90DF90A9 +:103BE000CF90BF90AF909F908F907F906F905F909D +:103BF0000C94431D0F900F900F900F900F90DF913A +:103C0000CF911F910F91FF90EF90DF90CF90BF90D9 +:103C1000AF909F908F907F906F905F900895CF931B +:103C2000DF93CDB7DEB72B970FB6F894DEBF0FBE8C +:103C3000CDBF4F83588769877A878B87DE011196BE +:103C400086E0FD0111928A95E9F785E0FE0137963D +:103C500001900D928A95E1F749815A816B817C81AF +:103C60008D819E810E9477242B960FB6F894DEBF3B +:103C70000FBECDBFDF91CF910895CF93882309F474 +:103C8000C2C0C82F823859F40E94B51C81FDBBC048 +:103C900089E30E9451270E94432889E30CC083389E +:103CA00079F40E94B51C80FDAEC083E50E945127C7 +:103CB0000E94432883E50E94A427CF910C944328B7 +:103CC000843859F40E94B51C82FD9DC087E40E948F +:103CD00051270E94432887E4EECF8CEF8C0F813A66 +:103CE00048F48C2F0E945A2E81118DC08C2F0E9477 +:103CF0005127E3CF80E28C0F883048F4C77081E011 +:103D000001C0880FCA95EAF70E94FC27D6CF8BE541 +:103D10008C0F833078F4C53A29F0C63A31F083E845 +:103D200090E005C081E890E002C082E890E0CF9189 +:103D30000C940A1D88E58C0F833108F064C0C83AE2 +:103D400039F1C93A41F1CA3A49F1CB3A51F1CC3A89 +:103D500059F1CD3A61F1C03B69F1CE3A71F1CF3AF8 +:103D600079F1C13B81F1C23B89F1C33B91F1C43B85 +:103D700099F1C53BA1F1C63BA9F1C73BB1F1C83BE5 +:103D8000B9F1C93BC1F1CA3BC9F180E090E038C04C +:103D900082EE90E035C089EE90E032C08AEE90E08D +:103DA0002FC085EB90E02CC086EB90E029C087EB1C +:103DB00090E026C08CEC90E023C08DEC90E020C019 +:103DC00083E891E01DC08AE891E01AC082E991E0A1 +:103DD00017C084E991E014C081E292E011C083E24F +:103DE00092E00EC084E292E00BC085E292E008C04F +:103DF00086E292E005C087E292E002C08AE292E0A9 +:103E0000CF910C94201DCF910895882309F44BC0C5 +:103E1000823859F40E94B51C81FF45C089E30E9495 +:103E200051270E94432889E30CC0833871F40E9413 +:103E3000B51C80FF38C083E50E9451270E944328AB +:103E400083E50E94A4270C944328843859F40E94E7 +:103E5000B51C82FF28C087E40E9451270E94432896 +:103E600087E4EFCF9CEF980F913A58F390E2980FC8 +:103E7000983050F4877091E001C0990F8A95EAF765 +:103E8000892F0E940228DFCF9BE5980F933020F402 +:103E900080E090E00C940A1D885A833120F480E081 +:103EA00090E00C94201D0895882321F00E94FC27A7 +:103EB0000C9443280895882321F00E9402280C9432 +:103EC000432808957F928F929F92AF92BF92CF9294 +:103ED000DF92EF92FF920F931F93CF93DF931F9286 +:103EE000CDB7DEB77C01C62E772EFC010581029589 +:103EF0000F70128111110E9419280E944A278823ED +:103F000079F0112369F080E28C0D883048F082E06E +:103F10000E9433270E944A2791E0D82ED92601C05B +:103F2000D12CE72DE295EF70F0E0E759FF4F0C94AC +:103F3000C02F872D807F072D0F70882311F00295E9 +:103F4000007F112389F0002309F48EC180E28C0DDB +:103F5000883020F4802F0E94FC2703C0802F0E940D +:103F60000C280E94432880C18C2D0E94051F00232D +:103F700009F4B8C180E28C0D883020F4802F0E94B3 +:103F8000022803C0802F0E9412280E944328AAC141 +:103F9000872D807F972D9F70803211F4892F03C069 +:103FA000892F8295807FCC2021F0F1E0CF16A1F0FF +:103FB0001DC0112339F0002319F1013009F50E94C9 +:103FC0002C2890C1002319F0013009F48BC189839A +:103FD0000E942F28898105C1112321F0063008F0A5 +:103FE00081C10EC0053008F07DC1FBC0112359F01E +:103FF000002331F0F701958190FF36C19F709583C2 +:104000000E94541F6FC1002309F4EBC033C1872DF8 +:1040100086958695837090E0009719F0019761F07E +:1040200061C1112321F08C2D972D937002C080E087 +:1040300090E00E940A1D56C1112321F08C2D972D6E +:10404000937002C080E090E00E94201D4BC1872D3C +:10405000837009F052C0111145C18C2D829586954F +:104060008770880F880F9C2D9F70892E912CA12C12 +:10407000B12C082E04C0880C991CAA1CBB1C0A94E5 +:10408000D2F7C4FE14C00FE010E020E030E0B90128 +:10409000A80104C0440F551F661F771F8A95D2F7E9 +:1040A000CB01BA01609570958095909503C060E052 +:1040B00070E0CB01272D26952695237030E0223025 +:1040C000310569F02330310589F0682979298A2979 +:1040D0009B292130310571F00E94BF2503C1682959 +:1040E00079298A299B290E94DB25FCC00E94BF25D3 +:1040F000C501B4010E94A325F5C0112319F0872D35 +:10410000817001C08695882309F4ECC08C2D8295BE +:1041100086958770880F880F9C2D9F70892E912C13 +:10412000A12CB12C082E04C0880C991CAA1CBB1C05 +:104130000A94D2F7C4FE14C00FE010E020E030E093 +:10414000B901A80104C0440F551F661F771F8A9547 +:10415000D2F7CB01BA01609570958095909503C018 +:1041600060E070E0CB01272D269526952370422F25 +:1041700050E04230510569F04330510589F068291B +:1041800079298A299B294130510571F00E9499268D +:10419000A9C0682979298A299B290E94B526A2C02D +:1041A0000E949926C501B4010E947D269BC08C2DDA +:1041B00090E0FC01E05EF109E531F10508F050C046 +:1041C000E758FF4F0C94C02F0C2D0F70872D8F7167 +:1041D000112321F00E941626802F12CF0E9437262D +:1041E000802F0E945B1F7EC0112341F0053008F034 +:1041F00079C0872D8F710E945C2674C0063008F04C +:1042000071C0F7CF112339F0872D8F710E941626C8 +:1042100069C01123C9F3872D8F710E94372662C0B0 +:10422000112329F0872D8F710E9401265BC00E9407 +:10423000F72558C0112351F0172D1F71812F0E94AF +:10424000162663E0812F0E942A274CC081E00E943D +:104250003327023008F446C082E00E94332742C070 +:10426000112331F0002381F28C2D0E943D1E3AC0B3 +:10427000002389F28C2D0E94051F34C0472D4F70FA +:104280006C2DC7010E94510C0E941B252BC01111DF +:1042900029C0472D4F7050E042305105B9F04CF421 +:1042A0004115510581F041305105E1F40E94E42EA1 +:1042B00019C04330510569F04430510599F48C2DF3 +:1042C0000E946F2F0FC00E94BA2E0CC00E94132FA5 +:1042D00009C00E94392F06C0472D4F706C2DC701B1 +:1042E0000E94A508DD20F9F00E94262780FD1BC052 +:1042F000F70112820E9420270E941626C7010E9401 +:10430000A2210E9420270F90DF91CF911F910F9142 +:10431000FF90EF90DF90CF90BF90AF909F908F90E5 +:104320007F900C9437260F90DF91CF911F910F91C2 +:10433000FF90EF90DF90CF90BF90AF909F908F90C5 +:104340007F9008950F931F93CF93DF93EC018881A3 +:1043500099812B813C81232BB9F09F3F11F48F3F32 +:1043600099F0CE010E941D09882371F0688179813E +:104370008A810E941C278C010E94D1260E949825C8 +:10438000B801CE010E94621FDF91CF911F910F9162 +:1043900008950E9419280E9429280E94EB270E9454 +:1043A000432880E090E00E940A1D80E090E00C9499 +:1043B000201D0E9409280C94C9210E941127292F31 +:1043C00022952F7030E02C3031054CF42A30310525 +:1043D0006CF42250310922303105A8F407C02C308A +:1043E000310569F02F30310551F00DC0803F69F083 +:1043F00018F4803E40F409C0843F29F406C093FBC2 +:10440000882780F9089580E0089581E00895CF938A +:10441000DF9300D000D01F92CDB7DEB70F900F9082 +:104420000F900F900F90DF91CF910895CF93DF936E +:1044300000D000D000D0CDB7DEB726960FB6F894E6 +:10444000DEBF0FBECDBFDF91CF9108951F93CF93F5 +:10445000DF93C091940116E080919501C81799F0FF +:10446000D0E01C9FF0011D9FF00D1124EA56FE4F75 +:104470004081518162817381848195810E941622DD +:104480002196C770E9CFDF91CF911F910895409198 +:10449000C6015091C7016091C8017091C901809116 +:1044A000CA019091CB010C9416228091CB01829588 +:1044B0008F7009F054C08091C801882309F44FC05F +:1044C00080919401A09195016091C6017091C701FE +:1044D0004091C9015091CA01B6E08A1709F43FC062 +:1044E00090E041155105C1F17F3F11F46F3FA1F1FB +:1044F000B89FF001B99FF00D1124EA56FE4F2181BB +:1045000072132AC02081621327C02281211124C086 +:10451000238134812417350710F421503109241BDD +:10452000350B283C3105C0F42091CB012F70206160 +:104530002093CB0126E0289FF001299FF00D112444 +:10454000E556FE4F80818F708061808386EC91E01C +:104550000E94A2210C94262201968770BECF089556 +:10456000CF92DF92EF92FF920F931F93CF93DF933F +:10457000CDB7DEB762970FB6F894DEBF0FBECDBFE2 +:104580008C0185E0F801DE011D9601900D928A955F +:10459000E1F7D8014C9111965C91119712966C91AC +:1045A00012971396CD90DC9014973091C6017091BC +:1045B000C7018091C9019091CA01009709F46BC1AC +:1045C0007F3F19F43F3F09F466C1E090C801EE2037 +:1045D00009F4C0C02091CB01C816D90628F0F60115 +:1045E000E81BF90BCF0104C0809590958C0D9D1DA3 +:1045F000FF24F394883C910578F0F12C207F09F09A +:10460000C6C07C2DD98AC88A89890E94072286EC77 +:1046100091E00E94A221B1C0822F807F09F046C0A4 +:10462000751314C0341312C0611110C02F702061B3 +:104630002093CB010E94472286EC91E00E94A221A8 +:104640008091CB01D80115968C932EC0CD2819F1FD +:104650005F3F11F44F3FF9F0F62E61111CC08091BD +:1046600094012091950136E0821709F45AC090E038 +:10467000389FF001399FF00D1124EA56FE4F7181E9 +:10468000571306C07081471303C07281711103C0B4 +:1046900001968770E9CFF62E662309F418C1809140 +:1046A000CB0181608093CB01F12C11C1751308C03F +:1046B000341306C0611104C08091CB01D801C3C07E +:1046C0004D875E878D859E856A8B0E94DD216A8974 +:1046D0008823E1F16623D1F12091CB01822F8295CD +:1046E0008F7090E0029774F08091C6019091C7019D +:1046F00098878F831986DB86CA862C87CE0107961A +:104700000E94A22186E0F801A6ECB1E001900D9292 +:104710008A95E1F70E9455220E944722FF24F394D4 +:10472000D6C04D875E878D859E850E941127292FD3 +:1047300022952F7030E0223031050CF0BCC09F7004 +:1047400009F0B6C0805E883008F4C1C0C8010E947C +:10475000A221E4CFC816D90608F453C0F601E81B1D +:10476000F90BCF01883C910508F450C0F12C7C2D49 +:10477000D98AC88A89890E940722E6ECF1E086E09E +:10478000DF011D928A95E9F70E944722A0C07513A8 +:1047900014C0341312C0611110C08091CB01F80114 +:1047A0008583C8010E94A22186E0E6ECF1E0DF01EA +:1047B0001D928A95E9F7FE2C8AC04D875E878D850C +:1047C0009E856A8B0E94DD216A89882309F4BECF09 +:1047D000662309F4BBCF2091CB01822F82958F7085 +:1047E00090E002970CF48ECF8091C6019091C701A2 +:1047F0009A8389831B82DD82CC822E83CE0101962F +:104800007FCF809590958C0D9D1DACCFF62E6623A5 +:1048100009F49CCF75132EC034132CC02091CB010A +:1048200020FD1FC0822F82958F70D9F0D801159678 +:104830002C9315978F3049F08F5F982F9295907F2A +:10484000822F8F70892B15968C93C8010E94A2210C +:1048500086E0F801A6ECB1E001900D928A95E1F7AF +:1048600093CF86E0F801A6ECB1E001900D928A9515 +:10487000E1F72DC04D875E878D859E850E94DD21E5 +:10488000811140CF8091CB0181608093CB01C80121 +:104890000E94A2211CC0662309F458CF4D875E8771 +:1048A0008D859E850E94DD21882309F44FCF2ACF74 +:1048B000811148CF0CC0243031050CF047CF9F70D8 +:1048C00009F440CFF8019581907F09F03BCF8F2DFF +:1048D00062960FB6F894DEBF0FBECDBFDF91CF91C9 +:1048E0001F910F91FF90EF90DF90CF9008951F934D +:1048F000CF93DF93CDB7DEB72C970FB6F894DEBF1A +:104900000FBECDBF4F83588769877A878B879C8777 +:10491000CE0107960E94B022882369F08F81988586 +:104920002A853B85232BF1F19F3F09F063C08F3F20 +:1049300009F060C037C086E0FE013796DE011196AF +:1049400001900D928A95E1F76F817885EA85FB8564 +:10495000309741F17F3F11F46F3F21F12091950194 +:1049600030E0C9010196877099274091940150E089 +:104970008417950709F447C069837A83FD83EC8324 +:1049800096E0929FD001939FB00D1124AA56BE4F7E +:10499000FE01319601900D929A95E1F78093950171 +:1049A0000E94262216E0809194019091950189172A +:1049B000C1F1189FC00111248A569E4F0E94B02257 +:1049C000882379F1E09194011E9FF0011124EA56A9 +:1049D000FE4F4081518162817381848195810E9463 +:1049E00016228091940190E0019687709927809318 +:1049F0009401D9CF4F81588569857A858B859C85AF +:104A00000E941622CFCF0E94D921109295011092B8 +:104A10009401E6ECF1E086E0DF011D928A95E9F76A +:104A2000C1CF2C960FB6F894DEBF0FBECDBFDF917D +:104A3000CF911F910895EF92FF920F931F93CF9301 +:104A4000DF938C01009709F46CC0F12CEE24E39401 +:104A5000E8012196F8018491843740F4843008F00D +:104A600051C0813081F0823019F15BC0853709F483 +:104A700044C0A8F19CE7980F903708F052C08F7798 +:104A80000E94051F41C00E5F1F4FFE01C49180E2CE +:104A90008C0F883048F4C7708E2D01C0880FCA95DE +:104AA000EAF70E941C2814C08C2F0E943D1E2DC0C6 +:104AB0000E5F1F4FFE01C49180E28C0F883058F4C6 +:104AC000C7708E2D01C0880FCA95EAF70E94222870 +:104AD0000E9443281AC08C2F0E94051F16C00E5F2B +:104AE0001F4FFE01C491CC2381F08FE99FE0019715 +:104AF000F1F700C00000C150F6CF0E5F1F4FFE015E +:104B0000F49003C00E943D1E8E018F2D882309F46E +:104B10009FCFEFE9FFE03197F1F700C0000081502F +:104B2000F5CFDF91CF911F910F91FF90EF900895F6 +:104B300008956093D0017093D1018093D201909336 +:104B4000D3010C94C9210F931F930091D0011091B0 +:104B5000D1012091D2013091D301DC01CB01802B16 +:104B6000912BA22BB32B8093D0019093D101A093D2 +:104B7000D201B093D3011F910F910C94C9210F93CF +:104B80001F930091D0011091D1012091D201309159 +:104B9000D301DC01CB0180239123A223B323809393 +:104BA000D0019093D101A093D201B093D3011F9172 +:104BB0000F910C94C9210F931F930091D001109174 +:104BC000D1012091D2013091D301DC01CB018027AA +:104BD0009127A227B3278093D0019093D101A0936E +:104BE000D201B093D3011F910F910C94C92110925F +:104BF000CC011092CD011092CE011092CF010C94F5 +:104C0000C92141E050E060E070E004C0440F551F4E +:104C1000661F771F8A95D2F74093CC015093CD0140 +:104C20006093CE017093CF010C94C92141E050E014 +:104C300060E070E004C0440F551F661F771F8A951F +:104C4000D2F78091CC019091CD01A091CE01B0918D +:104C5000CF01482B592B6A2B7B2B4093CC015093CF +:104C6000CD016093CE017093CF010C94C92141E036 +:104C700050E060E070E004C0440F551F661F771FCE +:104C80008A95D2F740955095609570958091CC01AA +:104C90009091CD01A091CE01B091CF01482359232D +:104CA0006A237B234093CC015093CD016093CE01C6 +:104CB0007093CF010C94C92141E050E060E070E0B6 +:104CC00004C0440F551F661F771F8A95D2F7809145 +:104CD000CC019091CD01A091CE01B091CF01482798 +:104CE00059276A277B274093CC015093CD016093CD +:104CF000CE017093CF010C94C9210F931F930091A3 +:104D0000CC011091CD012091CE013091CF01DC0179 +:104D1000CB01802B912BA22BB32B8093CC019093B2 +:104D2000CD01A093CE01B093CF011F910F910C94B0 +:104D3000C9210F931F930091CC011091CD012091B7 +:104D4000CE013091CF01DC01CB0180239123A2233E +:104D5000B3238093CC019093CD01A093CE01B09367 +:104D6000CF011F910F910C94C9210F931F930091B4 +:104D7000CC011091CD012091CE013091CF01DC0109 +:104D8000CB0180279127A227B3278093CC01909352 +:104D9000CD01A093CE01B093CF011F910F910C9440 +:104DA000C9210895CF92DF92EF92FF920F931F9344 +:104DB000CF93DF938C01C090D001D090D101E090CF +:104DC000D201F090D3018091CC019091CD01A091BE +:104DD000CE01B091CF01C82AD92AEA2AFB2ACFE115 +:104DE000D0E0D701C6010C2E04C0B695A7959795C3 +:104DF00087950A94D2F780FF06C0B8018C2F0E94D5 +:104E0000B00A019721F4219760F780E001C08C2F50 +:104E1000DF91CF911F910F91FF90EF90DF90CF9096 +:104E20000895CF93DF93EC010E94D226BE010E9429 +:104E3000B00ADF91CF910895CB010E941127089508 +:104E40008091D40185958595859508958091D401AB +:104E50008770089598E0899F90011124262B209354 +:104E6000D4010C9416262091D4018095822380933E +:104E7000D401982F977069F430E0482F552747FDEB +:104E800050952417350729F08595859585950C94BF +:104E9000372608959091D401977081E009F480E05D +:104EA000089590910C01992321F090910D01911199 +:104EB00009C020910E0130910F01F90132969FEF48 +:104EC00040E030C0982F9695969596959F30A0F427 +:104ED000E0910E01F0910F01E90FF11D877021E0C3 +:104EE00030E0A90102C0440F551F8A95E2F7CA01BC +:104EF0009181892B818308959091E90190FF23C0CE +:104F00001F928F938FE898E09F938F930E9447089A +:104F10000F900F900F900F9008959F3F39F04F5FC3 +:104F20004E3041F051915813F8CF0DC05111F7CFC9 +:104F3000942FF5CF9F3F39F0F901E90FF11D97FD4F +:104F4000FA9582830895089590910C01992321F098 +:104F500090910D01911109C020910E0130910F0126 +:104F6000F9013296205F3F4F30C0982F9695969565 +:104F700096959F30A8F4E0910E01F0910F01E90F92 +:104F8000F11D877021E030E0A90102C0440F551FD8 +:104F90008A95E2F7CA0180959181892381830895DA +:104FA0009091E90190FF16C01F928F9381E798E0DE +:104FB0009F938F930E9447080F900F900F900F9030 +:104FC00008953196E217F30729F090819813F9CFED +:104FD0001082F7CF089581E090E0E0910E01F0910A +:104FE0000F01E80FF91F1082019680319105A9F792 +:104FF00008958091E80108959091E801892B8093AC +:10500000E801089580959091E80189238093E80153 +:1050100008951092E80108959091E701892B8093FB +:10502000E701089580959091E70189238093E70136 +:1050300008951092E70108959091E601892B8093DD +:10504000E601089580959091E60189238093E60119 +:1050500008951092E60108958093D5010895109265 +:10506000D501089580910E0190910F01FC013196B8 +:105070009C01205F3F4F80E0919191118F5FE2177B +:10508000F307D1F70895E0910E01F0910F0180919F +:10509000E8018083E0910E01F0910F0190818091F1 +:1050A000E701892B8083E0910E01F0910F0190813F +:1050B0008091E601892B80838091D501882361F05E +:1050C000E0910E01F0910F019081892B80830E9465 +:1050D000322881111092D50180910E0190910F011B +:1050E0000C94C11C9093390180933801089520E0FD +:1050F000009739F0AC0141505109842395232F5F6B +:10510000F7CF822F08958295982F9C7C392F369562 +:105110003695282F237344E0249FC0011124932F38 +:10512000982B292F2A7A2695892F8575880F822B0F +:1051300008951F93CF93DF931F92CDB7DEB7998366 +:105140000E948328182F9981892F0E948328212F5C +:1051500030E0322F2227A901482BCA010F90DF919E +:10516000CF911F91089580911602843039F11092E9 +:10517000EA0120E488E190E00FB6F894A8958093C6 +:1051800060000FBE2093600080E00E946A0880E00B +:105190000E94E30C83B7817F846083BF83B7816003 +:1051A00083BF7894889583B78E7F83BF88E10FB6DD +:1051B000F89480936000109260000FBE08950895E7 +:1051C00080E00E946A080E94F90C0E947C0D0E94F7 +:1051D000DF280E94430E91E0811101C090E0892FE9 +:1051E00008950E94D92180E00E946A080E94A92E99 +:1051F0000E94B51C0C94E30C1F920F920FB60F92F5 +:1052000011248F939F93AF93BF938091EA018111F3 +:1052100013C08091EB019091EC01A091ED01B09150 +:10522000EE014196A11DB11D8093EB019093EC011D +:10523000A093ED01B093EE01BF91AF919F918F913B +:105240000F900FBE0F901F90189582E084BD93E0E1 +:1052500095BD9AEF97BD80936E0008952FB7F8948F +:105260008091EB019091EC01A091ED01B091EE01E4 +:105270002FBF0895CF92DF92EF92FF920F931F936B +:105280002FB7F8944091EB015091EC016091ED0142 +:105290007091EE012FBF6A017B01EE24FF248C0187 +:1052A00020E030E0C016D106E206F30610F44150CB +:1052B00051099A01281B390BC9011F910F91FF90C9 +:1052C000EF90DF90CF9008951F920F920FB60F923C +:1052D00011248F939F93AF93BF938091EB01909193 +:1052E000EC01A091ED01B091EE010196A11DB11D5F +:1052F0008093EB019093EC01A093ED01B093EE014C +:10530000BF91AF919F918F910F900FBE0F901F9003 +:1053100018950E94B319F8942FEF87EA91E621506F +:1053200080409040E1F700C0000087E090EBDC0196 +:105330008093200290932102A0932202B093230233 +:105340009CE088E10FB6F894A895809360000FBEAA +:1053500090936000FFCFAF92BF92CF92DF92EF9217 +:10536000FF920F931F93CF93C4E0CC24C394D12C0E +:10537000E82EF12C8C2F0E94000E5C010DE010E055 +:105380009601002E02C0220F331F0A94E2F72A2151 +:105390003B21232B51F0602F7C2F80E00E94540C86 +:1053A000E816F90611F481E006C00150110940F732 +:1053B000C15000F780E0CF911F910F91FF90EF90C7 +:1053C000DF90CF90BF90AF900895CF93C82F8CE21D +:1053D0000E94AB29882321F08C2FCF910C94AB290C +:1053E00080E0CF910895CF930E944A2B811102C093 +:1053F0000E942B2B84EB98E00E94AE07C5E6C150BB +:1054000049F00E947C0D8FE39CE90197F1F700C001 +:105410000000F5CF8DEA98E00E94AE0789E20E9475 +:10542000E529811116C18AE20E94E52981110E94B5 +:105430002B2B85E00E94E52981110E9489290E9479 +:10544000552B8093E90187E00E94E5298823A9F183 +:105450008BE10E94E529882351F08091E90181FBCD +:10546000222720F991E0922790FB81F90EC08EE06F +:105470000E94E529882361F08091E90182FB2227BF +:1054800020F991E0922790FB82F98093E90115C001 +:1054900080E10E94E5299091E901882341F093FB86 +:1054A000222720F981E0822780FB93F904C0892F0D +:1054B000809580FB90F99093E9018091E9010E9429 +:1054C000592B0E94672B90E09093F1018093F0019B +:1054D00080EE0E94E529882341F08091F001982F09 +:1054E000909590FB80F98093F00189E30E94E52973 +:1054F000882359F08091F00181FB222720F991E067 +:10550000922790FB81F98093F00182EE0E94E529B9 +:10551000882359F08091F00182FB222720F991E045 +:10552000922790FB82F98093F00186EE0E94E52994 +:10553000882359F08091F00183FB222720F991E024 +:10554000922790FB83F98093F00183EE0E94E52976 +:10555000882359F08091F00184FB222720F991E003 +:10556000922790FB84F98093F00185E30E94E5295E +:10557000882359F08091F00185FB222720F991E0E2 +:10558000922790FB85F98093F00181E30E94E52941 +:10559000882359F08091F00186FB222720F991E0C1 +:1055A000922790FB86F98093F00181E10E94E52922 +:1055B000882359F08091F00187FB222720F991E0A0 +:1055C000922790FB87F98093F0018091F0010E946F +:1055D0006B2B8091F00187FB882780F980930D0168 +:1055E00087E20E94E529C82F8EE10E94E5298111FA +:1055F000C2608FE10E94E5298111C46080E20E94AF +:10560000E5298111C86081E20E94E5298111C0610C +:1056100082E20E94E5298111C06283E20E94E529AD +:105620008111C06484E20E94E529882311F0C068DA +:1056300002C0CC2329F08C2F0E94622B6C2F03C058 +:105640000E945E2B682F70E080E090E0CF910C9478 +:105650009925CF9108956DEE7EEF80E090E00E9455 +:10566000F82F60E082E090E00E94DA2F60E083E0B3 +:1056700090E00E94DA2F60E084E090E00E94DA2F50 +:1056800060E085E090E00E94DA2F60E086E090E044 +:105690000C94DA2F80E090E00E94D42F21E08D3E20 +:1056A0009E4F09F020E0822F089582E090E00C9454 +:1056B000C62F682F82E090E00C94DA2F83E090E010 +:1056C0000C94C62F682F83E090E00C94DA2F84E0CE +:1056D00090E00C94C62F682F84E090E00C94DA2FB1 +:1056E00086E090E00C94C62F682F86E090E00C9442 +:1056F000DA2FCF93C82F1F928F938FEC98E09F9350 +:105700008F930E94470881E090E0A0E0B0E0BC01E8 +:10571000CD0104C0660F771F881F991FCA95D2F765 +:105720000E9499250F900F900F900F90CF910C949D +:10573000D921CF938B3109F40FC208F049C08E30C4 +:1057400009F41EC200F5873009F4E7C1A8F48630D9 +:1057500009F0A4C28091E901817F8E7F8093E901E5 +:1057600082E69AE00E94AE078EE49EE00E94AE07B9 +:1057700081E08093EF01CFC1883009F45BC08B30AA +:1057800009F4C5C18BC2813109F470C220F48031A3 +:1057900009F40AC283C2863109F421C2893109F0B1 +:1057A0007DC283E59AE00E94AE0783E19AE00E9401 +:1057B000AE0781EE99E00E94AE0784EB99E00E946B +:1057C000AE0788E799E00E94AE078DE499E0A1C199 +:1057D000853309F45FC268F4873209F45BC228F4A8 +:1057E0008E3108F45BC28D5156C2893209F452C21F +:1057F00055C2833438F48A3308F04AC2883309F436 +:1058000086C14CC2833409F445C2883409F046C2CB +:105810000E94D92182E39EE00E94AE079FEF23ED14 +:1058200080E3915020408040E1F700C000000E94DA +:10583000892971C182E59EE00E94AE078FE99DE053 +:105840000E94AE070E945E2B1F928F938CE99DE011 +:105850009F938F930E9447088AE99DE00E94AE07BC +:105860000E94552BC82F87E89DE00E94AE071F922B +:10587000CF9382E89DE09F938F930E94470880E832 +:105880009DE00E94AE0786E79DE00E94AE078C2F48 +:1058900081701F928F9383E79DE09F938F930E9467 +:1058A000470881E79DE00E94AE0787E69DE00E94E1 +:1058B000AE07C1FB882780F91F928F9384E69DE095 +:1058C0009F938F930E94470882E69DE00E94AE0757 +:1058D00086E59DE00E94AE07C2FB882780F91F92F3 +:1058E0008F9383E59DE09F938F930E94470881E506 +:1058F0009DE00E94AE0788E49DE00E94AE07C3FBD6 +:10590000CC27C0F91F92CF9385E49DE09F938F939E +:105910000E94470883E49DE00E94AE070E94672B27 +:10592000C82F8FE29DE00E94AE071F92CF938AE2BC +:105930009DE09F938F930E94470888E29DE00E941C +:10594000AE078FE09DE00E94AE078C2F81701F9202 +:105950008F938CE09DE09F938F930E9447088DB7B3 +:105960009EB780960FB6F8949EBF0FBE8DBF8AE09B +:105970009DE00E94AE0783EF9CE00E94AE07C1FB52 +:10598000882780F91F928F9380EF9CE09F938F93DD +:105990000E9447088EEE9CE00E94AE078CED9CE0D2 +:1059A0000E94AE07C2FB882780F91F928F9389ED72 +:1059B0009CE09F938F930E94470887ED9CE00E9494 +:1059C000AE0785EC9CE00E94AE07C3FB882780F9F8 +:1059D0001F928F9382EC9CE09F938F930E944708C5 +:1059E00080EC9CE00E94AE0786EB9CE00E94AE0734 +:1059F000C4FB882780F91F928F9383EB9CE09F93D1 +:105A00008F930E94470881EB9CE00E94AE078FE9CC +:105A10009CE00E94AE07C5FB882780F91F928F93F8 +:105A20008CE99CE09F938F930E9447088AE99CE051 +:105A30000E94AE078EE79CE00E94AE07C6FB882757 +:105A400080F91F928F938BE79CE09F938F930E9426 +:105A5000470889E79CE00E94AE0781E79CE00E942E +:105A6000AE07C7FBCC27C0F91F92CF938EE69CE010 +:105A70009F938F930E9447088CE69CE00E94AE079C +:105A80000E94702BC82F85E59CE00E94AE071F92F4 +:105A9000CF9380E59CE09F938F930E9447088DB73A +:105AA0009EB780960FB6F8949EBF0FBE8DBF8EE452 +:105AB0009CE00E94AE0784E49CE00E94AE078C2F1D +:105AC00081701F928F9381E49CE09F938F930E943B +:105AD00047088FE39CE00E94AE0786E39CE00E94AB +:105AE000AE07C6951F92CF9383E39CE09F938F935D +:105AF0000E94470881E39CE00E94AE078DB79EB7E5 +:105B000008960FB6F8949EBF0FBE8DBF04C08DE7F8 +:105B10009AE00E94AE07C1E0C6C08091E901C82F9B +:105B2000C095C170C0FB80F98093E901CC2349F096 +:105B300086E29EE00E94AE078091E901866088605F +:105B400048C089E19EE00E94AE078091E901897F0B +:105B5000877F8093E901DFCF9091E90191FBCC270A +:105B6000C0F981E0C827892FC0FB81F98093E90142 +:105B7000CC2319F08CE09EE027C08EEF9DE0C9CFCA +:105B80009091E90192FBCC27C0F981E0C827892FC9 +:105B9000C0FB82F98093E901CC2319F08FEE9DE0E0 +:105BA00013C08FED9DE0B5CF9091E90193FBCC2719 +:105BB000C0F981E0C827892FC0FB83F98093E901F0 +:105BC000CC2351F083ED9DE00E94AE078091E90166 +:105BD00081608093E90167C086EC9DE09ACF8FE3F6 +:105BE00099E00E94AE070E94B51C1F928F9385E238 +:105BF00099E09F938F930E94470880910C011F9218 +:105C00008F938EE099E09F938F930E944708809135 +:105C100082011F928F938BEF98E09F938F930E9446 +:105C2000470880910D011F928F9388EE98E09F9313 +:105C30008F930E9447088091EB019091EC01A09115 +:105C4000ED01B091EE01BF93AF939F938F9384EDDD +:105C500098E09F938F930E9447088DB79EB7469612 +:105C60000FB6F8949EBF0FBE8DBF55CF0E94D921AD +:105C7000C0910D0181E0C827C0930D01CC2329F00C +:105C80008CEB9DE00E94AE070EC081EB9DE041CF02 +:105C9000895301C080E00E94792B3DCF8FEA9DE0BF +:105CA0000E94AE07C0E08C2FCF91089580E0089548 +:105CB00080E00895CF93C82F8091EF01882319F0D9 +:105CC000813049F03EC0E0910E01F0910F018081DA +:105CD0008232C9F507C0E0910E01F0910F01808179 +:105CE000823261F48C2F0E94562E811104C08C2FB9 +:105CF0000E94992B24C081E090E021C08C2F0E944B +:105D0000582E81111BC0C43189F018F4CB3029F012 +:105D100010C0C93259F0C83361F482E69AE00E949B +:105D2000AE078BEC98E00E94AE0708C01092EF011E +:105D30000CC089EC98E00E94AE0707C081E081703A +:105D400006C01092EF0180E002C080E0F8CFCF9152 +:105D500008950E944A2B811102C00E942B2B0E94A1 +:105D6000702B80931F0280FF02C0869501C080E0E7 +:105D70000C946A0880911F02982F9695292F30E085 +:105D8000243031054CF49F5F990F8170892B81601D +:105D900080931F020E94742B8091E90180FF0FC045 +:105DA00080911F0286951F928F938FE99EE09F93AB +:105DB0008F930E9447080F900F900F900F90809143 +:105DC0001F0286950C946A0880911F02982F969561 +:105DD00091F09158990F8170892B80931F028E7FCB +:105DE00091E009F490E080911F0290FB80F980938C +:105DF0001F020E94742B8091E90180FF0FC08091E7 +:105E00001F0286951F928F9387E89EE09F938F9342 +:105E10000E9447080F900F900F900F9080911F02E3 +:105E200086950C946A0880911F02982F909590FB9C +:105E300080F980931F020E94742B8091E90180FFFA +:105E40000FC080911F0281701F928F9381E79EE0A7 +:105E50009F938F930E9447080F900F900F900F9081 +:105E600080911F0280FF02C0869501C080E00C94E3 +:105E70006A0890911F02892F86958F5F8F779170A6 +:105E8000853028F4880F892B80931F0202C09093DD +:105E90001F0280911F028E7F91E009F490E08091B3 +:105EA0001F0290FB80F980931F020E94742B809147 +:105EB000E90180FF0FC080911F0286951F928F938A +:105EC0008DE59EE09F938F930E9447080F900F905F +:105ED0000F900F9080911F0286950C946A08209174 +:105EE0001F02922F96958927982F990F822F8170E4 +:105EF000892B80931F028E7F91E009F490E08091BE +:105F00001F0290FB80F980931F020E94742B8091E6 +:105F10001F0286950C946A08991B79E004C0991FAA +:105F2000961708F0961B881F7A95C9F780950895F3 +:105F3000AA1BBB1B51E107C0AA1FBB1FA617B707AF +:105F400010F0A61BB70B881F991F5A95A9F78095CB +:105F50009095BC01CD01089597FB072E16F400948F +:105F600007D077FD09D00E94982F07FC05D03EF49A +:105F7000909581959F4F0895709561957F4F0895F5 +:105F8000EE0FFF1F0590F491E02D0994F999FECFD3 +:105F900092BD81BDF89A992780B50895A6E1B0E039 +:105FA00044E050E00C940030A8E1B0E042E050E062 +:105FB0000C940030262FF999FECF92BD81BDF89A3E +:105FC000019700B4021639F01FBA20BD0FB6F8943D +:105FD000FA9AF99A0FBE08950396272F0E94DB2F95 +:105FE0000E94DA2F252F0E94DB2F242F0C94DB2F09 +:105FF0000196272F0E94DB2F0C94DA2FDC01CB01B6 +:10600000FC01F999FECF06C0F2BDE1BDF89A3196C8 +:1060100000B40D9241505040B8F70895F894FFCF66 +:10602000FFFF1E15ED152115B91585150101D601C6 +:106030000F1F6C766673491303534379693309194B +:1060400029395940362039FE07C807A8076F07FBD2 +:086050000614072D074D07009F +:00000001FF diff --git a/keyboards/satan/keymaps/default/keymap.c b/keyboards/satan/keymaps/default/keymap.c new file mode 100644 index 000000000..b19404afc --- /dev/null +++ b/keyboards/satan/keymaps/default/keymap.c @@ -0,0 +1,162 @@ +#include "satan.h" + +#ifdef RGBLIGHT_ENABLE +#include "rgblight.h" +#endif + +// Used for SHIFT_ESC +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _FL 1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: (Base Layer) Default Layer + * ,-----------------------------------------------------------. + * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | + * |-----------------------------------------------------------| + * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | + * |-----------------------------------------------------------| + * |Ctrl|Gui |Alt | Space |Alt |Gui |FN |Ctrl | + * `-----------------------------------------------------------' + */ +[_BL] = KEYMAP( + F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, \ + KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FL), KC_RCTL), + + /* Keymap _FL: Function Layer + * ,-----------------------------------------------------------. + * | | | | | | | | | | | | | | RESET| + * |-----------------------------------------------------------| + * | | | | | | | | | | | |BL-|BL+|BL | + * |-----------------------------------------------------------| + * | | | | | | | | | | | | | + * |-----------------------------------------------------------| + * | | F1|F2 | F3|F4 | F5| F6| F7| F8| | | | + * |-----------------------------------------------------------| + * | | | | | | | | | + * `-----------------------------------------------------------' + */ +[_FL] = KEYMAP( + #ifdef RGBLIGHT_ENABLE + KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, \ + KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_INC, BL_TOGG, \ + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, F(1), F(2), F(3), F(4), F(5), F(6), F(7), F(8), KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + #else + KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, \ + KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_INC, BL_TOGG, \ + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + #endif +}; + +enum function_id { + SHIFT_ESC, + #ifdef RGBLIGHT_ENABLE + RGBLED_TOGGLE, + RGBLED_STEP_MODE, + RGBLED_INCREASE_HUE, + RGBLED_DECREASE_HUE, + RGBLED_INCREASE_SAT, + RGBLED_DECREASE_SAT, + RGBLED_INCREASE_VAL, + RGBLED_DECREASE_VAL + #endif +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(SHIFT_ESC), + #ifdef RGBLIGHT_ENABLE + [1] = ACTION_FUNCTION(RGBLED_TOGGLE), + [2] = ACTION_FUNCTION(RGBLED_STEP_MODE), + [3] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), + [4] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), + [5] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), + [6] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), + [7] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), + [8] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), + #endif +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + static uint8_t shift_esc_shift_mask; + switch (id) { + case SHIFT_ESC: + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + //led operations + #ifdef RGBLIGHT_ENABLE + case RGBLED_TOGGLE: + if (record->event.pressed) { + rgblight_toggle(); + } + break; + case RGBLED_INCREASE_HUE: + if (record->event.pressed) { + rgblight_increase_hue(); + } + break; + case RGBLED_DECREASE_HUE: + if (record->event.pressed) { + rgblight_decrease_hue(); + } + break; + case RGBLED_INCREASE_SAT: + if (record->event.pressed) { + rgblight_increase_sat(); + } + break; + case RGBLED_DECREASE_SAT: + if (record->event.pressed) { + rgblight_decrease_sat(); + } + break; + case RGBLED_INCREASE_VAL: + if (record->event.pressed) { + rgblight_increase_val(); + } + break; + case RGBLED_DECREASE_VAL: + if (record->event.pressed) { + rgblight_decrease_val(); + } + break; + case RGBLED_STEP_MODE: + if (record->event.pressed) { + rgblight_step(); + } + break; + #endif + } +} diff --git a/keyboards/satan/led.c b/keyboards/satan/led.c new file mode 100644 index 000000000..94606e895 --- /dev/null +++ b/keyboards/satan/led.c @@ -0,0 +1,36 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include +#include "stdint.h" +#include "led.h" + + +void led_init_ports(void) { + // * Set our LED pins as output + DDRB |= (1<<2); +} + +void led_set_kb(uint8_t usb_led) { + if (usb_led & (1<> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); + } +} + +#endif + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + if (matrix_init_user) { + (*matrix_init_user)(); + } + led_init_ports(); + + #ifdef BACKLIGHT_ENABLE + backlight_init_ports(); + #endif +}; + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + if (matrix_scan_user) { + (*matrix_scan_user)(); + } +}; \ No newline at end of file diff --git a/keyboards/satan/satan.h b/keyboards/satan/satan.h new file mode 100644 index 000000000..464289fdb --- /dev/null +++ b/keyboards/satan/satan.h @@ -0,0 +1,42 @@ +#ifndef SATAN_H +#define SATAN_H + +#include "matrix.h" +#include "keymap.h" +#include +#include "action_util.h" + +/* Clueboard matrix layout + * ,-----------------------------------------------------------. + * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d | + * |-----------------------------------------------------------| + * | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d | + * |-----------------------------------------------------------| + * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2d | + * |-----------------------------------------------------------| + * | 30 | 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d | + * |-----------------------------------------------------------| + * | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d | + * `-----------------------------------------------------------' + */ +// The first section contains all of the arguments +// The second converts the arguments into a two-dimensional array +#define KEYMAP( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \ + k40, k41, k42, k45, k4a, k4b, k4c, k4d \ +) \ +{ \ + {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \ + {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \ + {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, KC_NO, k2d}, \ + {k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k3d}, \ + {k40, k41, k42, KC_NO, KC_NO, k45, KC_NO, KC_NO, KC_NO, KC_NO, k4a, k4b, k4c, k4d} \ +} + +void matrix_init_user(void); +void matrix_scan_user(void); + +#endif diff --git a/keyboards/sixkeyboard/Makefile b/keyboards/sixkeyboard/Makefile new file mode 100644 index 000000000..6f273064a --- /dev/null +++ b/keyboards/sixkeyboard/Makefile @@ -0,0 +1,75 @@ + + +SRC = matrix.c + +# MCU name +#MCU = at90usb1287 +MCU = atmega16u2 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= no # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= no # Audio control and System control(+450) +CONSOLE_ENABLE ?= no # Console for debug(+400) +COMMAND_ENABLE ?= no # Commands for debug and configuration +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend +NKRO_ENABLE ?= no # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality +MIDI_ENABLE ?= no # MIDI controls +AUDIO_ENABLE ?= no +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +CUSTOM_MATRIX = yes + +ifndef QUANTUM_DIR + include ../../Makefile +endif + diff --git a/keyboards/sixkeyboard/README.md b/keyboards/sixkeyboard/README.md new file mode 100644 index 000000000..7d78a0cae --- /dev/null +++ b/keyboards/sixkeyboard/README.md @@ -0,0 +1,18 @@ +# Techkeys SixKeyBoard + +[Get one here!](http://techkeys.us/collections/accessories/products/sixkeyboard) + +The schematic is like this: + +``` + switches leds +,--+--+--. ,--+--+--. +|C7|B7|B5| |C6|B6|B4| ++--+--+--+ +--+--+--+ +|D6|D1|D4| |D5|D2|D3| +`--+--+--' `--+--+--' +``` + +The LED on the bottom is `C4`. All 7 of the leds are turned on when the keyboard boots-up in the `sixkeyboard.c` file - backlight_enable is not required. The MCU is an Atmega16u2, so the flash memory is limited to 0x3000 bytes - the current setup uses just about all of that! I'm sure things can be opitimised a bit. + +There is a jumper on the bottom of the board (next to the USB port) that serves as a reset button - I drilled a hole in my case to allow for quick access via a screwdriver/metal object. \ No newline at end of file diff --git a/keyboards/sixkeyboard/config.h b/keyboards/sixkeyboard/config.h new file mode 100644 index 000000000..bf58bb2b7 --- /dev/null +++ b/keyboards/sixkeyboard/config.h @@ -0,0 +1,115 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6062 +#define DEVICE_VER 0x0001 +#define MANUFACTURER techkeys.us +#define PRODUCT sixkeykeyboard +#define DESCRIPTION A little 6-key macro pad + +/* key matrix size */ +#define MATRIX_ROWS 2 +#define MATRIX_COLS 3 + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 0 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + + +/* Force NKRO Mode - If forced on, must be disabled via magic key (default = LShift+RShift+N) */ +#define FORCE_NKRO + +/* + * Magic key options + * These options allow the magic key functionality to be changed. This is useful + * if your keyboard/keypad is missing keys and you want magic key support. + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* remap magic keys */ +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK BSLS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/sixkeyboard/keymaps/default/compiled.hex b/keyboards/sixkeyboard/keymaps/default/compiled.hex new file mode 100644 index 000000000..588aca108 --- /dev/null +++ b/keyboards/sixkeyboard/keymaps/default/compiled.hex @@ -0,0 +1,760 @@ +:100000000C94C8000C940C010C940C010C940C0181 +:100010000C940C010C940C010C940C010C940C012C +:100020000C940C010C940C010C940C010C943209EE +:100030000C94E0090C945F160C940C010C940C01C8 +:100040000C940C010C940C010C940C010C94C7162C +:100050000C940C010C940C010C940C010C940C01EC +:100060000C940C010C940C010C940C010C940C01DC +:100070000C940C014D0A6F0A5D0B6F0A5D0BB40AFC +:10008000D70A5D0B2C0B3F0BEB0DEB0D1A0E1A0E66 +:100090007E0F7E0F7E0F7E0F590E7E0F090F090F08 +:1000A0006F0F7E0F7E0F780F160F160F160F160F9D +:1000B000160F160F160F160F160F160F160F160F18 +:1000C000160F160F160F160F260F340F3B0F420F89 +:1000D0004C0F0400050006000700080009001E037D +:1000E0007300690078006B00650079006B006500A3 +:1000F000790062006F006100720064000000180364 +:1001000074006500630068006B006500790073008F +:100110002E00750073000000040309040902220088 +:10012000010100A0FA0904000001030101000921F6 +:10013000110100012240000705810308000A120195 +:10014000100100000008EDFE6260010001020001E4 +:1001500005010906A101050719E029E71500250198 +:10016000950875018102950175088101050819013D +:100170002905950575019102950175039101050702 +:10018000190029FF150026FF00950675088100C09B +:1001900011241FBECFEFD2E0DEBFCDBF04B603FEF9 +:1001A00024C08091900190919101A0919201B09111 +:1001B00093018730904BA740B04BB9F41092900157 +:1001C00010929101109292011092930114BE84B783 +:1001D000877F84BF88E10FB6F89480936000109207 +:1001E00060000FBEE0E0F8E1099511E0A0E0B1E0A9 +:1001F000E2E5FFE202C005900D92AE30B107D9F7FB +:1002000011E0AEE0B1E001C01D92A039B107E1F705 +:100210000E94AA060C94A7170C9400003F98479AD6 +:1002200084B18F7584B985B1806A85B98AB18D7AB8 +:100230008AB98BB182658BB90C94660186B18095C1 +:10024000982F991F9927991F83B18095881F882718 +:10025000881F880F892B1D9902C094E001C090E08F +:10026000892B80930E0189B186FB882780F991E064 +:100270008927499902C092E001C090E0892B4C99EE +:1002800002C094E001C090E0892B80930F010E948E +:10029000760181E00895E82FF0E0E25FFE4F808173 +:1002A000089508951F93CF93DF93CEE0D1E0888126 +:1002B00090E00E941A16182F898190E00E941A1669 +:1002C000810FDF91CF911F91089508953C9A449832 +:1002D0003E9A4698269A2E98249A2C98559A5D987C +:1002E000529A5A98539A5B980C9465010C94880121 +:1002F00061110BC0FC018281882321F085EE0E94F0 +:100300009A0C03C085EE0E94570D80E090E008959E +:1003100080E00E944B01873049F481E00E944B014C +:10032000873021F40E94DD0F0C94EC16089581E0D3 +:10033000089581E008950C94990108950F931F93F7 +:10034000CF93DF938C01FC01C081D181CE010E944B +:10035000E914BE010E944702EC01B8010E949B0112 +:10036000882309F48DC0F8018281882309F44AC0EA +:1003700080911B0181111FC0C431F0E5DF0709F036 +:1003800051C00E949D0181E080931B010E94911643 +:1003900090931A0180931901109212011092140186 +:1003A000109213011092160110921501109218016B +:1003B0001092170165C08091190190911A010E9455 +:1003C0009D16883C910570F480911201E82FF0E0B1 +:1003D000EE0FFF1FED5EFE4FD183C0838F5F8093D2 +:1003E00012014EC0C43880E5D80721F0C538D04589 +:1003F00001F13AC0F8018281882341F01092100186 +:1004000082E01EC0C438E0E5DE0759F58091100196 +:10041000811106C086E20E949A0C86E20E94570D66 +:1004200082E01CC0C438F0E5DF0741F3C538D04591 +:10043000D9F4F8018281882331F01092110180E211 +:100440000E94A60D1DC080911101811106C087E296 +:100450000E949A0C87E20E94570D80E20E94AD0D27 +:100460000FC0C538D04529F381E0809310018093F7 +:100470001101C801DF91CF911F910F910C94970149 +:1004800080E0DF91CF911F910F91089508959B0116 +:1004900090E066E070E00E945A17FC01832F90E024 +:1004A00063E070E00E945A178E0F9F1FFC01E20F5D +:1004B000F11DEE0FFF1FEE52FF4F859194910895AD +:1004C000880F991FFC01EE5AF04085919491089590 +:1004D000880F991FFC01EE52FF4F8591949108956A +:1004E0000F931F93CF93DF93EC01811520E39207C5 +:1004F00050F5C11580E2D80708F0C3C0CB3BD10549 +:1005000090F4C83AD10508F06AC0C53AD10508F0A0 +:100510005BC0C430D10508F0D0C1219709F0CAC131 +:1005200001E010E00AC2CF3FD10511F008F0C5C1CB +:10053000C03FD10508F0A2C0CE01805E91090897A6 +:1005400008F4BBC1B7C1C13090E5D90709F4A2C016 +:1005500020F5C0318FE4D80770F4C11590E4D907B5 +:1005600008F094C0C11521E3D20708F0A3C1DD272C +:100570008E01106CE2C1C115D04509F09BC10E94EB +:10058000DD0F8FEF94E32CE0815090402040E1F7A5 +:1005900000C000000E94EC16D0C1C11597E5D90734 +:1005A00058F4C03121E5D20708F01CC1C43180E500 +:1005B000D80708F475C07EC1CE01905781159041CF +:1005C00008F078C1DF7073C1C53AD10509F477C16D +:1005D000C63AD10509F076C102E810E4AEC1C83AC6 +:1005E000D10509F472C1C93AD10509F471C1CA3AF9 +:1005F000D10509F470C1CB3AD10509F46FC1CC3AE9 +:10060000D10509F46EC1CD3AD10509F46DC1C03BE5 +:10061000D10509F46CC1CE3AD10509F46BC1CF3ACA +:10062000D10509F46AC1C13BD10509F469C1C23BD6 +:10063000D10509F468C1C33BD10509F467C1C43BC6 +:10064000D10509F466C1C53BD10509F465C1C63BB6 +:10065000D10509F464C1C73BD10509F463C1C83BA6 +:10066000D10509F462C1C93BD10509F461C1CA3B96 +:10067000D10509F460C100E014E45FC18E0110658A +:100680005CC1CE019F700E94680258C1DF708E016C +:10069000106A53C180917C01816080937C014DC1BF +:1006A0000E943E17811102C00E9424170E94511718 +:1006B00090E09093900180938F01C23080E5D8073D +:1006C00021F480918F01816086C0C43090E5D90704 +:1006D00021F480918F0182607EC0C63020E5D20770 +:1006E00021F480918F01846076C0C83080E5D807FE +:1006F00019F480918F0127C0CA3090E5D90721F401 +:1007000080918F01806167C0CC3020E5D20721F451 +:1007100080918F0180625FC0CE3080E5D80721F4E0 +:1007200080918F01806457C0C03190E5D90721F4D2 +:1007300080918F0180684FC0C23120E5D20729F433 +:1007400080918F018460886046C0C33080E5D807FF +:1007500021F480918F018E7F3EC0C53090E5D9078E +:1007600021F480918F018D7F36C0C73020E5D207FC +:1007700021F480918F018B7F2EC0C93080E5D8078E +:1007800019F480918F0126C0CB3090E5D90721F470 +:1007900080918F018F7E1FC0CD3020E5D20721F4DC +:1007A00080918F018F7D17C0CF3080E5D80721F46D +:1007B00080918F018F7B0FC0C13190E5D90721F463 +:1007C00080918F018F7707C0C331D04531F480917C +:1007D0008F018B7F877F80938F0180918F010E9493 +:1007E0005517ABC08D2F99278F70992781309105B0 +:1007F000D9F49E012370332702C0880F991F2A95D0 +:10080000E2F79C688E0144E0000F111F4A95E1F762 +:1008100000271370802B912B53E0CC0FDD1F5A95CE +:10082000E1F7C076DD272FC08230910531F4DC2F4F +:10083000CC278E01016F106A80C08330910569F466 +:10084000CE018370992701E010E002C0000F111F54 +:100850008A95E2F7C8019C680FC084309105B9F40D +:10086000CE018370992701E010E002C0000F111F34 +:100870008A95E2F7C8019A6823E0CC0FDD1F2A951C +:10088000E1F7C07ED7708C010C2B1D2B56C0853034 +:10089000910531F4DC2FCC278E01046F106A4DC016 +:1008A000069709F04AC0CF71DD27DC2FCC278E01D7 +:1008B000106243C000E010E040C08E013EC001E87D +:1008C00010E43BC003E810E438C002EE14E435C085 +:1008D00009EE14E432C00AEE14E42FC005EB14E470 +:1008E0002CC006EB14E429C007EB14E426C00CEC82 +:1008F00014E423C00DEC14E420C003E815E41DC08B +:100900000AE815E41AC002E915E417C004E915E481 +:1009100014C001E216E411C003E216E40EC004E2C2 +:1009200016E40BC005E216E408C006E216E405C0B2 +:1009300007E216E402C00AE216E4C801DF91CF9193 +:100940001F910F9108959B0190E066E070E00E9476 +:100950005A17FC01832F90E063E070E00E945A1761 +:100960008E0F9F1FFC01E20FF11DEE0FFF1FEE52D5 +:10097000FF4F85919491803E9105E0F4803C910574 +:1009800058F58133910509F46FC048F48932910517 +:1009900009F463C08A32910509F46DC072C08933CD +:1009A0009105E9F082389105D1F08533910509F47C +:1009B0004DC067C0833E910581F138F4803E9105BA +:1009C000B9F0823E9105D9F05CC0863E910561F197 +:1009D000873E9105A1F155C00E94600208952091C3 +:1009E0008F0120FD02C021FF4CC080EE90E049C085 +:1009F00080918F0180FFF9CF89E390E042C0809120 +:100A00008F0182FF0EC080918F0184FF03C080E0C0 +:100A100090E037C083EE90E034C080918F0182FF78 +:100A2000F2CF82EE90E02DC080918F0183FF0BC04A +:100A300080918F0184FDEBCF87EE90E022C0809102 +:100A40008F0183FFF5CF86EE90E01BC080918F0170 +:100A500085FF07C089E290E014C080918F0185FF77 +:100A6000F9CF85E390E00DC080918F0186FF07C02C +:100A70008AE290E006C080918F0186FFF9CF81E382 +:100A800090E00E947002089508950C9444058091AE +:100A9000240108950895CF93DF9300D01F92CDB71E +:100AA000DEB720918601243021F523E029839B8342 +:100AB0008A8381E08093E9008FEF9091E800815074 +:100AC00095FD06C095ED9A95F1F700008111F5CFDF +:100AD0008091E80085FF0DC040E050E063E070E0E9 +:100AE000CE0101960E9440078091E8008E778093A6 +:100AF000E8000F900F900F90DF91CF910895CF9362 +:100B0000DF9300D01F92CDB7DEB72091860124304D +:100B100021F522E029839B838A8381E08093E90089 +:100B20008FEF9091E800815095FD06C095ED9A9564 +:100B3000F1F700008111F5CF8091E80085FF0DC02D +:100B400040E050E063E070E0CE0101960E94400773 +:100B50008091E8008E778093E8000F900F900F90BF +:100B6000DF91CF910895CF93DF93209186012430B8 +:100B700039F521E02093E9002FEF3091E800215072 +:100B800035FD06C035ED3A95F1F700002111F5CF9E +:100B90002091E80025FF14C0EC0140E050E068E03F +:100BA00070E00E9440078091E8008E778093E80013 +:100BB00088E0FE01ACE1B1E001900D928A95E1F789 +:100BC000DF91CF91089580918501811109C00E9424 +:100BD000CF080E9422098091E20084608093E200A5 +:100BE0000895109285010895089542E061EC81E036 +:100BF0000C94490880918801833009F453C030F483 +:100C0000813071F0823009F48CC008958A3009F483 +:100C100078C08B3009F45EC0893009F09AC020C0DA +:100C200080918701813A09F094C08091E800877F24 +:100C30008093E80080918B0190918C01892B21F4A5 +:100C400068E08CE191E003C060E080E090E070E05B +:100C50000E948B078091E8008B778093E8000895CD +:100C600080918701813209F074C080918B0190914D +:100C70008C01892B09F06DC08091E800877F8093FB +:100C8000E8008091E80082FD05C080918601811115 +:100C9000F8CF5FC08091F100809324018091E8003B +:100CA0008B7753C080918701813A09F052C08091BF +:100CB0008B0190918C01892B09F04BC08091E80049 +:100CC000877F8093E8008091E80080FFFCCF8091CF +:100CD0000A0136C0809187018132D9F580918B015C +:100CE00090918C01892BA9F58091E800877F8093F2 +:100CF000E8000E947E088091890180930A010C948B +:100D0000DD0F80918701813221F58091E800877F96 +:100D10008093E8000E947E0880918A0180932501DB +:100D2000089580918701813AA1F48091E800877F3E +:100D30008093E8008091E80080FFFCCF809125013E +:100D40008093F1008091E8008E778093E8000C9406 +:100D50007E08089584B7877F84BF88E10FB6F89432 +:100D600080936000109260000FBE80E88093610065 +:100D7000109261000E94DA0B0E94CF080E942209A3 +:100D80008091E20084608093E20078940E94760B68 +:100D90000E94DC0B80E091E00E94910B8091860123 +:100DA000853069F40E942616809184018823B1F36E +:100DB0000E945116882391F30E942A07EFCF0E94C8 +:100DC000E20BECCF292F332723303105C1F05CF43F +:100DD0002130310579F022303105A1F582E290E031 +:100DE0002CE131E033C021323105F1F022323105FE +:100DF00011F128C082E190E02EE331E027C099276D +:100E00008130910541F08230910541F0892BD1F478 +:100E1000E8E1F1E005C0EEEFF0E002C0EEEDF0E059 +:100E2000849190E09F0112C061110CC089E090E0B4 +:100E30002EE231E00BC0611105C080E490E020E5B6 +:100E400031E004C080E090E020E030E0FA0131833E +:100E50002083089584E089BD86E089BD09B400FE41 +:100E6000FDCF8091D8008F7D8093D8008091E000E5 +:100E700082608093E0008091E00081FDFCCF0895C6 +:100E8000CF92DF92EF92FF920F931F93CF93DF9356 +:100E9000EC018B016A010E949D08811133C0C114CD +:100EA000D10439F0F60180819181081B190BC80F1C +:100EB000D91FE12CF12C0115110519F18091E800E1 +:100EC00085FD16C08091E8008E778093E800C114FC +:100ED000D10449F0F60180819181E80EF91EF1827A +:100EE000E08285E00FC00E949D08882321F30AC09C +:100EF00089918093F10001501109FFEFEF1AFF0A69 +:100F0000DACF80E0DF91CF911F910F91FF90EF90AA +:100F1000DF90CF90089520918D0130918E0126179A +:100F2000370748F06115710539F42091E8002E77F4 +:100F30002093E80001C0B90140E06115710591F10D +:100F400020918601222309F440C0253009F43FC0D6 +:100F50002091E80023FD3DC02091E80022FD2FC034 +:100F60002091E80020FFE9CF2091F20030E0FC0161 +:100F7000CF016115710559F02830310540F4819198 +:100F80008093F100615071092F5F3F4FF1CF41E035 +:100F90002830310509F040E02091E8002E772093B9 +:100FA000E800CBCF4111CCCF0AC0809186018823C5 +:100FB00061F0853061F08091E80083FD0AC0809186 +:100FC000E80082FFF2CF80E0089582E0089583E098 +:100FD000089581E0089520918D0130918E012617AA +:100FE000370748F06115710539F42091E8002E7734 +:100FF0002093E80001C0B901FC0120E061157105F2 +:1010000079F180918601882309F43DC0853009F487 +:101010003CC08091E80083FD3AC08091E80082FDE9 +:101020002CC08091E80080FFE9CF8091F20090E031 +:101030006115710559F08830910540F42491209391 +:10104000F1003196615071090196F2CF21E00897C5 +:1010500009F020E08091E8008E778093E800CECF01 +:101060002111CFCF0AC080918601882361F085309D +:1010700061F08091E80083FD0AC08091E80082FF62 +:10108000F2CF80E0089582E0089583E0089581E042 +:101090000895982F953058F59093E900981739F0F6 +:1010A0007091EC002091ED005091F00003C0242FCE +:1010B000762F50E021FF19C03091EB003E7F309336 +:1010C000EB003091ED003D7F3093ED003091EB006F +:1010D00031603093EB007093EC002093ED0050935F +:1010E000F0002091EE0027FF07C09F5FD3CF8F70E5 +:1010F0008093E90081E0089580E008958091870160 +:1011000087FF11C08091E80082FD05C080918601B3 +:101110008111F8CF11C08091E8008B770BC08091CE +:101120008601882349F08091E80080FFF8CF809104 +:10113000E8008E778093E80008952091E4003091D4 +:10114000E50095E64091EC00842F817040FF22C0BD +:101150008091E80080FD1CC080918601882391F079 +:10116000853091F08091EB0085FD10C04091E40046 +:101170005091E5004217530729F39A01915011F756 +:1011800084E0089582E0089583E0089581E0089561 +:1011900080E008954091E80042FFDECF08950E946C +:1011A0002C090E942F09E0EEF0E0808181608083AD +:1011B000E8EDF0E080818F77808319BCE3E6F0E012 +:1011C0008081816080831092850108950E942C099E +:1011D0000E942F098091D8008F778093D80080914A +:1011E000D80080688093D8008091D8008F7D80934C +:1011F000D80084E089BD86E089BD09B400FEFDCF3A +:101200001092860110928201109284011092830143 +:1012100042E060E080E00E9449088091E1008E7F1A +:101220008093E1008091E20081608093E2008091F0 +:10123000E20088608093E2008091E0008E7F8093DE +:10124000E0000895E3E6F0E080818E7F808381E016 +:10125000809385010C94E6081092E20008951092A4 +:10126000E10008951F920F920FB60F9211242F9351 +:101270003F934F935F936F937F938F939F93AF931E +:10128000BF93EF93FF938091E10082FF0BC08091A9 +:10129000E20082FF07C08091E1008B7F8093E10034 +:1012A0000E94750B8091E10080FF18C08091E200E0 +:1012B00080FF14C08091E2008E7F8093E2008091D5 +:1012C000E20080618093E2008091D8008062809388 +:1012D000D80019BC109286010E94F1058091E100AE +:1012E00084FF30C08091E20084FF2CC084E089BD7F +:1012F00086E089BD09B400FEFDCF8091D8008F7DC6 +:101300008093D8008091E1008F7E8093E1008091EE +:10131000E2008F7E8093E2008091E2008160809302 +:10132000E20080918201882311F084E007C080915F +:10133000E30087FD02C081E001C083E08093860165 +:101340000E94E3058091E10083FF29C08091E200C3 +:1013500083FF25C08091E100877F8093E10082E0D8 +:1013600080938601109282018091E1008E7F8093AC +:10137000E1008091E2008E7F8093E2008091E200A4 +:1013800080618093E20042E060E080E00E944908D2 +:101390008091F00088608093F0000E94F405FF9136 +:1013A000EF91BF91AF919F918F917F916F915F91DD +:1013B0004F913F912F910F900FBE0F901F90189556 +:1013C0001F920F920FB60F9211242F933F934F93BA +:1013D0005F936F937F938F939F93AF93BF93CF93BD +:1013E000DF93EF93FF93C091E900CF708091EC0001 +:1013F000D82FD17080FDD0E81092E9008091F000E4 +:10140000877F8093F00078940E94240A1092E9006C +:101410008091F00088608093F000CD2BCF70C09356 +:10142000E900FF91EF91DF91CF91BF91AF919F9133 +:101430008F917F916F915F914F913F912F910F907D +:101440000FBE0F901F9018951F93CF93DF93CDB7CA +:10145000DEB7AA970FB6F894DEBF0FBECDBFE7E8A0 +:10146000F1E088E08E0F9091F10091938E13FBCF05 +:101470000E94FA058091E80083FF1FC180918701D7 +:1014800090918801492F50E04A30510508F015C16C +:10149000FA01E65CFF4F0C946B17803881F08238BC +:1014A00009F00BC180918B018F708093E9008091CE +:1014B000EB0085FB882780F91092E90006C0809137 +:1014C000830190918401911182609091E800977F4F +:1014D0009093E8008093F1001092F100C8C0282F8B +:1014E0002D7F09F0EAC0882319F0823061F0E5C051 +:1014F00080918901813009F0E0C0933009F080E0EB +:10150000809384012BC080918901811127C0809133 +:101510008B018F7009F4D1C08093E9002091EB001A +:1015200020FF1CC0933021F48091EB00806214C036 +:101530009091EB0090619093EB0021E030E0A901E5 +:1015400002C0440F551F8A95E2F74093EA001092BB +:10155000EA008091EB0088608093EB001092E90034 +:101560008091E800877F86C08111A7C01091890112 +:101570001F778091E3008078812B8093E300809136 +:10158000E800877F8093E8000E947E088091E80051 +:1015900080FFFCCF8091E30080688093E30011110D +:1015A00002C082E001C083E08093860186C080583B +:1015B000823008F082C08091890190918A018C3D2F +:1015C00053E0950779F583E08A838AE289834FB7F0 +:1015D000F894DE01139620E03EE051E2E32FF0E0C4 +:1015E00050935700E49120FF03C0E295EF703F5FF6 +:1015F000EF708E2F90E0EA3010F0C79601C0C096D1 +:101600008D939D932F5F243149F74FBF8091E80060 +:10161000877F8093E8006AE270E0CE0101960E9425 +:101620008B0714C0AE014F5F5F4F60918B010E942A +:10163000E206BC01009709F440C09091E800977F52 +:101640009093E80089819A810E94EB078091E800DD +:101650008B778093E80031C0803879F58091E8007D +:10166000877F8093E800809182018093F1008091D0 +:10167000E8008E778093E8000E947E081EC08111EA +:101680001CC0909189019230C0F48091E800877F5E +:101690008093E800909382010E947E0880918201ED +:1016A000811106C08091E30087FD02C081E001C086 +:1016B00084E0809386010E94F5058091E80083FF15 +:1016C0000AC08091E800877F8093E8008091EB005A +:1016D00080628093EB00AA960FB6F894DEBF0FBE2F +:1016E000CDBFDF91CF911F9108950895CF93809141 +:1016F00086018823A1F0C091E900CF709091EC00A1 +:10170000892F817090FD80E8C82B1092E9008091AC +:10171000E80083FD0E94240ACF70C093E900CF91B6 +:10172000089590932B0180932A010895E0912A0156 +:10173000F0912B01309721F00190F081E02D099478 +:1017400080E00895E0912A01F0912B01309721F07B +:101750000280F381E02D09940895209128013091B1 +:1017600029018217930771F0909329018093280132 +:10177000E0912A01F0912B01309721F00680F7814A +:10178000E02D0994089520912601309127018217B8 +:10179000930771F09093270180932601E0912A012D +:1017A000F0912B01309721F00084F185E02D099410 +:1017B000089508950C94D90B0E9488160E940E017A +:1017C0000C940E17CF92DF92EF92FF920F931F931C +:1017D000CF93DF9300D000D000D0CDB7DEB70E940A +:1017E0001E01EE24E394F12C0E2D8E2D0E944B0150 +:1017F0009701235D3E4F6901F9011081182771F1AE +:1018000090917C0191FF04C08E830E9451018E81D2 +:1018100012FD07C011FD08C010FF20C011E090E0CC +:1018200005C014E092E002C012E091E099830A83BF +:10183000812391E009F490E09B830E9491168160DE +:10184000782F9D838C8349815A816B818D810E9481 +:101850006C0CF60180811827108315C0EF2819F051 +:10186000E12CF12CC1CF8FEF89838A831B820E94E8 +:1018700091168160782F9D838C8349815A816B8179 +:101880008D810E946C0C10912C010E94960B1817F0 +:10189000A1F00E94960B80932C0126960FB6F89427 +:1018A000DEBF0FBECDBFDF91CF911F910F91FF9093 +:1018B000EF90DF90CF900C94450526960FB6F894E4 +:1018C000DEBF0FBECDBFDF91CF911F910F91FF9073 +:1018D000EF90DF90CF900895CF93DF93CDB7DEB731 +:1018E0002B970FB6F894DEBF0FBECDBF4F8358873E +:1018F00069877A878B87DE01119686E0FD01119258 +:101900008A95E9F785E0FE01379601900D928A9558 +:10191000E1F749815A816B817C818D819E810E9492 +:101920008A122B960FB6F894DEBF0FBECDBFDF91A3 +:10193000CF910895882309F4B9C0823859F40E94E0 +:10194000960B81FDB3C089E30E9468150E94EB15D8 +:1019500089E30CC0833871F40E94960B80FDA6C009 +:1019600083E50E9468150E94EB1583E50E948515AA +:101970000C94EB15843859F40E94960B82FD96C0A6 +:1019800087E40E9468150E94EB1587E4EFCF9CEF77 +:10199000980F913A18F40E946815EACF90E2980FD8 +:1019A000983050F4877091E001C0990F8A95EAF75A +:1019B000892F0E94A415DCCF9BE5980F933070F41B +:1019C000853A29F0863A31F083E890E005C081E855 +:1019D00090E002C082E890E00C94AD0B98E5980F7F +:1019E000933108F063C0883A39F1893A41F18A3A73 +:1019F00049F18B3A51F18C3A59F18D3A61F1803BC2 +:101A000069F18E3A71F18F3A79F1813B81F1823B34 +:101A100089F1833B91F1843B99F1853BA1F1863BB0 +:101A2000A9F1873BB1F1883BB9F1893BC1F18A3B10 +:101A3000C9F180E090E038C082EE90E035C089EED8 +:101A400090E032C08AEE90E02FC085EB90E02CC091 +:101A500086EB90E029C087EB90E026C08CEC90E00C +:101A600023C08DEC90E020C083E891E01DC08AE89F +:101A700091E01AC082E991E017C084E991E014C0B6 +:101A800081E292E011C083E292E00EC084E292E033 +:101A90000BC085E292E008C086E292E005C087E2D2 +:101AA00092E002C08AE292E00C94C30B089588236E +:101AB00009F44BC0823859F40E94960B81FF45C04F +:101AC00089E30E9468150E94EB1589E30CC08338F6 +:101AD00071F40E94960B80FF38C083E50E94681560 +:101AE0000E94EB1583E50E9485150C94EB15843854 +:101AF00059F40E94960B82FF28C087E40E94681563 +:101B00000E94EB1587E4EFCF9CEF980F913A58F3C2 +:101B100090E2980F983050F4877091E001C0990FCF +:101B20008A95EAF7892F0E94AA15DFCF9BE5980FC7 +:101B3000933020F480E090E00C94AD0B885A833110 +:101B400020F480E090E00C94C30B0895882321F0EA +:101B50000E94A4150C94EB150895882321F00E948F +:101B6000AA150C94EB1508957F928F929F92AF92D5 +:101B7000BF92CF92DF92EF92FF920F931F93CF937A +:101B8000DF931F92CDB7DEB77C01C62E772EFC0106 +:101B9000158112951F70028101110E94C1150E94CA +:101BA0006115882379F0002369F080E28C0D88307C +:101BB00048F082E00E944A150E94611591E0D82EFB +:101BC000D92601C0D12CE72DE295EF70F0E0EC5B57 +:101BD000FF4F0C946B17872D807F172D1F70882364 +:101BE00011F01295107F002389F0112309F46DC1C3 +:101BF00080E28C0D883020F4812F0E94A41503C050 +:101C0000812F0E94B4150E94EB155FC18C2D0E949C +:101C1000570D112309F472C180E28C0D883020F435 +:101C2000812F0E94AA1503C0812F0E94BA150E941D +:101C3000EB1564C1872D807F972D9F70803211F442 +:101C4000892F03C0892F8295807FCC2021F0F1E07D +:101C5000CF16A1F01DC0002339F0112319F1113066 +:101C600009F50E94D4154AC1112319F0113009F465 +:101C700045C189830E94D7158981E5C0002321F0E1 +:101C8000163008F03BC10EC0153008F037C1DBC07C +:101C9000002359F0112331F0F701958190FF15C110 +:101CA0009F7095830E94A60D29C1112309F4CBC012 +:101CB00012C1872D837009F052C001111FC18C2DF4 +:101CC000829586958770880F880F9C2D9F70892E2E +:101CD000912CA12CB12C082E04C0880C991CAA1C94 +:101CE000BB1C0A94D2F7C4FE14C00FE010E020E041 +:101CF00030E0B901A80104C0440F551F661F771FCB +:101D00008A95D2F7CB01BA01609570958095909530 +:101D100003C060E070E0CB01272D26952695237047 +:101D200030E02230310569F02330310589F068292F +:101D300079298A299B292130310571F00E94D61317 +:101D4000DDC0682979298A299B290E94F213D6C00F +:101D50000E94D613C501B4010E94BA13CFC000235C +:101D600019F0872D817001C08695882309F4C6C0BB +:101D70008C2D829586958770880F880F9C2D9F707B +:101D8000892E912CA12CB12C082E04C0880C991CF2 +:101D9000AA1CBB1C0A94D2F7C4FE14C00FE010E0CA +:101DA00020E030E0B901A80104C0440F551F661FB0 +:101DB000771F8A95D2F7CB01BA016095709580950F +:101DC000909503C060E070E0CB01272D2695269505 +:101DD0002370422F50E04230510569F043305105E5 +:101DE00089F0682979298A299B294130510571F0A8 +:101DF0000E94B01483C0682979298A299B290E94EE +:101E0000CC147CC00E94B014C501B4010E9494148B +:101E100075C08C2D90E0FC01E05EF109E531F10523 +:101E200008F04FC0EC5AFF4F0C946B171C2D1F701D +:101E3000872D8F71002321F00E942D14812F32CF26 +:101E40000E944E14812F0E94AD0D58C0002341F016 +:101E5000153008F053C0872D8F710E9473144EC047 +:101E6000163008F04BC0F7CF002339F0872D8F7163 +:101E70000E942D1443C00023C9F3872D8F710E9447 +:101E80004E143CC0002329F0872D8F710E94181436 +:101E900035C00E940E1432C0002351F0172D1F715F +:101EA000812F0E942D1463E0812F0E94411526C0CE +:101EB00081E00E944A15123008F182E00E944A1522 +:101EC0001DC0002331F0112389F28C2D0E949A0C41 +:101ED00015C0112391F28C2D0E94570D0FC0472D74 +:101EE0004F706C2DC7010E9478010E94321306C00A +:101EF000472D4F706C2DC7010E944602DD20F9F07E +:101F00000E943D1580FD1BC0F70112820E9437150B +:101F10000E942D14C7010E94AE0F0E9437150F902A +:101F2000DF91CF911F910F91FF90EF90DF90CF90B5 +:101F3000BF90AF909F908F907F900C944E140F9015 +:101F4000DF91CF911F910F91FF90EF90DF90CF9095 +:101F5000BF90AF909F908F907F9008950F931F93A5 +:101F6000CF93DF93EC01888199812B813C81232BD6 +:101F7000B9F09F3F11F48F3F99F0CE010E949E016E +:101F8000882371F0688179818A810E9433158C01E0 +:101F90000E94E8140E94AF13B801CE010E94B40D54 +:101FA000DF91CF911F910F9108950E94C1150E945A +:101FB000D1150E9496150C94EB150E94B1150C9446 +:101FC000D50F0E942815292F22952F7030E02C3034 +:101FD00031054CF42A3031056CF42250310922309D +:101FE0003105A8F407C02C30310569F02F303105D8 +:101FF00051F00DC0803F69F018F4803E40F409C0F4 +:10200000843F29F406C093FB882780F9089580E077 +:10201000089581E00895CF93DF9300D000D01F9200 +:10202000CDB7DEB70F900F900F900F900F90DF910C +:10203000CF910895CF93DF9300D000D000D0CDB7DB +:10204000DEB726960FB6F894DEBF0FBECDBFDF9188 +:10205000CF910895CF93DF93C0912F0180913001EC +:10206000C817A1F0D0E0CE0166E070E00E945A17D8 +:10207000FC01EF5CFE4F408151816281738184815C +:1020800095810E941A102196C770E8CFDF91CF91F9 +:1020900008954091610150916201609163017091D6 +:1020A000640180916501909166010C941A10CF93A0 +:1020B000DF938091660182958F7009F05CC08091FA +:1020C0006301882309F457C020912F01D09130017A +:1020D00040916101C0916201E0916401F09165015C +:1020E0002D1709F448C030E0309709F440C0CF3FC5 +:1020F00011F44F3FE1F1C90166E070E00E945A1708 +:10210000DC01AF5CBE4F11968C911197C8132FC0A4 +:102110008C9148132CC012968C911297811127C074 +:1021200013968D919C9114978E179F0708F4019731 +:102130008E1B9F0B883C9105D0F4809166018F70B7 +:10214000806180936601C90166E070E00E945A17C1 +:10215000FC01EA5CFE4F90819F709061908381E664 +:1021600091E00E94AE0FDF91CF910C942A102F5F67 +:102170003F4F2770B5CFDF91CF910895BF92CF9297 +:10218000DF92EF92FF920F931F93CF93DF93CDB720 +:10219000DEB761970FB6F894DEBF0FBECDBF8C01DE +:1021A00085E0F801DE011D9601900D928A95E1F718 +:1021B000D8014C9111962C9111971296EC90129790 +:1021C0001396CD90DC90149750916101609162015B +:1021D0008091640190916501009709F46EC16F3F91 +:1021E00019F45F3F09F469C1B0906301BB2009F4A1 +:1021F000C3C030916601C816D90628F0F601E81B65 +:10220000F90BCF0104C0809590958C0D9D1DFF2486 +:10221000F394883C910588F0F12C307F09F0CBC015 +:102220007C2DD98AC88A522F6E2D89890E940B1065 +:1022300081E691E00E94AE0FB4C0832F807F09F049 +:1022400049C0621314C0541312C0E11010C03F7093 +:102250003061309366010E94491081E691E00E944E +:10226000AE0F80916601D80115968C9331C0CD28B0 +:1022700031F12F3F11F44F3F11F1FE2CE1101FC03F +:10228000E0912F0130913001E31709F45CC0F0E0D8 +:10229000CF0166E070E00E945A17DC01AF5CBE4FD0 +:1022A00011968C911197281307C08C91481304C084 +:1022B00012968C91811103C03196E770E5CFFE2C08 +:1022C000EE2009F416C18091660181608093660159 +:1022D000F12C0FC1621308C0541306C0E11004C0F2 +:1022E00080916601D801C1C04D872E878D859E855E +:1022F0000E94E10F8823E1F1EE20D1F120916601E7 +:10230000822F82958F7090E0029774F08091610126 +:102310009091620198878F831986DB86CA862C8705 +:10232000CE0107960E94AE0F86E0F801A1E6B1E06B +:1023300001900D928A95E1F70E9457100E94491072 +:10234000FF24F394D6C04D872E878D859E850E94ED +:102350002815292F22952F7030E0223031050CF0FE +:10236000BCC09F7009F0B6C0805E883008F4C1C060 +:10237000C8010E94AE0FE4CFC816D90608F453C0B6 +:10238000F601E81BF90BCF01883C910508F450C019 +:10239000F12C7C2DD98AC88A522F6E2D89890E94F2 +:1023A0000B10E1E6F1E086E0DF011D928A95E9F786 +:1023B0000E9449109EC0621314C0541312C0E11051 +:1023C00010C080916601F8018583C8010E94AE0F9C +:1023D00086E0E1E6F1E0DF011D928A95E9F7FB2C4A +:1023E00088C04D872E878D859E850E94E10F8823AA +:1023F00009F4BECFEE2009F4BBCF20916601822FF5 +:1024000082958F7090E002970CF48ECF80916101DD +:10241000909162019A8389831B82DD82CC822E8314 +:10242000CE0101967FCF809590958C0D9D1DACCFF0 +:10243000FE2CEE2009F49CCF62132EC054132CC046 +:102440002091660120FD1FC0822F82958F70D9F0E8 +:10245000D80115962C9315978F3049F08F5F982FE0 +:102460009295907F822F8F70892B15968C93C8013F +:102470000E94AE0F86E0F801A1E6B1E001900D9256 +:102480008A95E1F795CF86E0F801A1E6B1E00190E9 +:102490000D928A95E1F72DC04D872E878D859E85FB +:1024A0000E94E10F811140CF80916601816080938D +:1024B0006601C8010E94AE0F1CC0EE2009F458CF7F +:1024C0004D872E878D859E850E94E10F882309F414 +:1024D0004FCF2ACF811148CF0CC0243031050CF0EA +:1024E00047CF9F7009F440CFF8019581907F09F0A4 +:1024F0003BCF8F2D61960FB6F894DEBF0FBECDBFD8 +:10250000DF91CF911F910F91FF90EF90DF90CF90CF +:10251000BF900895CF93DF93CDB7DEB72C970FB65A +:10252000F894DEBF0FBECDBF4F83588769877A8787 +:102530008B879C87CE0107960E94BE10882371F07E +:102540008F8198852A853B85232B09F43FC09F3FC7 +:1025500009F068C08F3F09F065C038C086E0FE0111 +:102560003796DE01119601900D928A95E1F76F8101 +:102570007885EA85FB85309749F17F3F11F46F3FFD +:1025800029F18091300190E09C012F5F3F4F27702F +:10259000332740912F0150E02417350709F44BC031 +:1025A00069837A83FD83EC8366E070E00E945A17AA +:1025B000DC01AF5CBE4F96E0FE01319601900D92BA +:1025C0009A95E1F7209330010E942A1080912F0103 +:1025D000909130018917E9F190E066E070E00E9487 +:1025E0005A178F5C9E4F0E94BE10882391F18091F4 +:1025F0002F0190E066E070E00E945A17FC01EF5C4A +:10260000FE4F4081518162817381848195810E9456 +:102610001A1080912F0190E001968770992780937E +:102620002F01D4CF4F81588569857A858B859C850C +:102630000E941A10CBCF0E94DD0F10923001109231 +:102640002F01E1E6F1E086E0DF011D928A95E9F7CE +:10265000BDCF2C960FB6F894DEBF0FBECDBFDF9175 +:10266000CF910895EF92FF920F931F93CF93DF9333 +:102670008C01009709F46CC0F12CEE24E394E8017E +:102680002196F8018491843740F4843008F051C0D9 +:10269000813081F0823019F15BC0853709F444C084 +:1026A000A8F19CE7980F903708F052C08F770E94EE +:1026B000570D41C00E5F1F4FFE01C49180E28C0F89 +:1026C000883048F4C7708E2D01C0880FCA95EAF78C +:1026D0000E94C41514C08C2F0E949A0C2DC00E5F4E +:1026E0001F4FFE01C49180E28C0F883058F4C770F0 +:1026F0008E2D01C0880FCA95EAF70E94CA150E9464 +:10270000EB151AC08C2F0E94570D16C00E5F1F4F7D +:10271000FE01C491CC2381F08FE99FE00197F1F78E +:1027200000C00000C150F6CF0E5F1F4FFE01F490B5 +:1027300003C00E949A0C8E018F2D882309F49FCF2D +:10274000EFE9FFE03197F1F700C000008150F5CFCD +:10275000DF91CF911F910F91FF90EF900895089511 +:1027600060936B0170936C0180936D0190936E0187 +:102770000C94D50F0F931F9300916B0110916C0176 +:1027800020916D0130916E01DC01CB01802B912BEA +:10279000A22BB32B80936B0190936C01A0936D01DE +:1027A000B0936E011F910F910C94D50F0F931F934F +:1027B00000916B0110916C0120916D0130916E01BF +:1027C000DC01CB0180239123A223B32380936B01EF +:1027D00090936C01A0936D01B0936E011F910F91C6 +:1027E0000C94D50F0F931F9300916B0110916C0106 +:1027F00020916D0130916E01DC01CB018027912782 +:10280000A227B32780936B0190936C01A0936D0175 +:10281000B0936E011F910F910C94D50F1092670128 +:10282000109268011092690110926A010C94D50F00 +:1028300041E050E060E070E004C0440F551F661FA7 +:10284000771F8A95D2F74093670150936801609390 +:10285000690170936A010C94D50F41E050E060E08B +:1028600070E004C0440F551F661F771F8A95D2F78A +:102870008091670190916801A0916901B0916A010E +:10288000482B592B6A2B7B2B40936701509368018F +:102890006093690170936A010C94D50F41E050E098 +:1028A00060E070E004C0440F551F661F771F8A95D3 +:1028B000D2F7409550956095709580916701909101 +:1028C0006801A0916901B0916A01482359236A23E4 +:1028D0007B23409367015093680160936901709373 +:1028E0006A010C94D50F41E050E060E070E004C054 +:1028F000440F551F661F771F8A95D2F78091670195 +:1029000090916801A0916901B0916A014827592707 +:102910006A277B27409367015093680160936901A0 +:1029200070936A010C94D50F0F931F930091670168 +:10293000109168012091690130916A01DC01CB019D +:10294000802B912BA22BB32B80936701909368016E +:10295000A0936901B0936A011F910F910C94D50F58 +:102960000F931F93009167011091680120916901F5 +:1029700030916A01DC01CB0180239123A223B32390 +:102980008093670190936801A0936901B0936A01F5 +:102990001F910F910C94D50F0F931F930091670116 +:1029A000109168012091690130916A01DC01CB012D +:1029B00080279127A227B32780936701909368010E +:1029C000A0936901B0936A011F910F910C94D50FE8 +:1029D0000895CF92DF92EF92FF920F931F93CF93C0 +:1029E000DF938C01C0906B01D0906C01E0906D0181 +:1029F000F0906E018091670190916801A09169014A +:102A0000B0916A01C82AD92AEA2AFB2ACFE1D0E08C +:102A1000D701C6010C2E04C0B695A795979587954A +:102A20000A94D2F780FF06C0B8018C2F0E94A3043D +:102A3000019721F4219760F780E001C08C2FDF918E +:102A4000CF911F910F91FF90EF90DF90CF9008955D +:102A5000CF93DF93EC010E94E914BE010E94A3040E +:102A6000DF91CF910895CB010E94281508958091A0 +:102A70006F01859585958595089580916F01877083 +:102A80000895982F990F990F990F692B60936F01F3 +:102A90000C942D1420916F018095822380936F01F7 +:102AA000982F977069F430E0482F552747FD5095CF +:102AB0002417350729F08595859585950C944E1436 +:102AC000089590916F01977081E009F480E0089576 +:102AD00020910B0130910C01F90132969FEF40E0FB +:102AE0005191581789F09F3F19F4511101C0942F4B +:102AF0004F5F4630A9F79F3F39F0F901E90FF11D0B +:102B000097FDFA9582830895089520910B013091E5 +:102B10000C01F9013296285F3F4F9081981301C054 +:102B200010823196E217F307C1F7089581E090E033 +:102B3000E0910B01F0910C01E80FF91F1082019652 +:102B400088309105A9F7089590917B01892B809396 +:102B50007B010895809590917B01892380937B016F +:102B6000089510927B01089590917A01892B8093AA +:102B70007A010895809590917A01892380937A0152 +:102B8000089510927A01089590917901892B80938C +:102B90007901089580959091790189238093790135 +:102BA000089510927901089580937001089510920C +:102BB0007001089580910B0190910C01FC013196F8 +:102BC0009C01285F3F4F80E0919191118F5FE21748 +:102BD000F307D1F70895E0910B01F0910C0180917A +:102BE0007B018083E0910B01F0910C019081809139 +:102BF0007A01892B8083E0910B01F0910C01908187 +:102C000080917901892B808380917001882361F004 +:102C1000E0910B01F0910C019081892B80830E943F +:102C2000DA1581111092700180910B0190910C01C5 +:102C30000C94A20B20E0009739F0AC0141505109EF +:102C4000842395232F5FF7CF822F089580918601EB +:102C5000843021F110927D0120E488E190E00FB6EC +:102C6000F894A895809360000FBE2093600080E0E8 +:102C70000E94450583B7817F846083BF83B78160ED +:102C800083BF7894889583B78E7F83BF88E10FB622 +:102C9000F89480936000109260000FBE089508952C +:102CA00008950E944F160E941E010E9450160E9415 +:102CB000520191E0811101C090E0892F08951F9287 +:102CC0000F920FB60F9211248F939F93AF93BF93E0 +:102CD00080917D01811113C080917E0190917F01CF +:102CE000A0918001B09181014196A11DB11D8093F9 +:102CF0007E0190937F01A0938001B0938101BF91E9 +:102D0000AF919F918F910F900FBE0F901F901895CC +:102D100082E084BD93E095BD9AEF97BD80936E00ED +:102D200008952FB7F89480917E0190917F01A09132 +:102D30008001B09181012FBF0895CF92DF92EF9271 +:102D4000FF920F931F932FB7F89440917E015091FB +:102D50007F0160918001709181012FBF6A017B0129 +:102D6000EE24FF248C0120E030E0C016D106E206FC +:102D7000F30610F4415051099A01281B390BC9017F +:102D80001F910F91FF90EF90DF90CF9008951F92C9 +:102D90000F920FB60F9211248F939F93AF93BF930F +:102DA00080917E0190917F01A0918001B09181017D +:102DB0000196A11DB11D80937E0190937F01A09388 +:102DC0008001B0938101BF91AF919F918F910F903E +:102DD0000FBE0F901F9018950E94CF08F8942FEF08 +:102DE00087EA91E6215080409040E1F700C0000062 +:102DF00087E090EBDC018093900190939101A09388 +:102E00009201B09393019CE088E10FB6F894A895E5 +:102E1000809360000FBE90936000FFCF0E943E172A +:102E2000811102C00E9424170E94491780937C01DF +:102E30000E94511780938F010E944D17682F70E0F8 +:102E400080E090E00C94B0136DEE7EEF80E090E0B7 +:102E50000E94911760E082E090E00E947F1760E09E +:102E600083E090E00E947F1760E084E090E00E94A1 +:102E70007F1760E085E090E00C947F1780E090E0A1 +:102E80000E94791721E08D3E9E4F09F020E0822FAD +:102E9000089582E090E00C94711783E090E00C9428 +:102EA000711784E090E00C947117682F84E090E033 +:102EB0000C947F170024552704C0080E591F880F53 +:102EC000991F009729F076956795B8F37105B9F7C2 +:102ED000802D952F0895EE0FFF1F0590F491E02DA2 +:102EE0000994F999FECF92BD81BDF89A992780B5D2 +:102EF0000895A8E1B0E042E050E00C949917262F25 +:102F0000F999FECF92BD81BDF89A019700B40216DF +:102F100039F01FBA20BD0FB6F894FA9AF99A0FBE8D +:102F200008950196272F0E9480170C947F17DC01CB +:102F3000CB01FC01F999FECF06C0F2BDE1BDF89AC4 +:102F4000319600B40D9241505040B8F70895F8946E +:022F5000FFCFB1 +:0E2F52004705B3054A057F054B0501710100D7 +:00000001FF diff --git a/keyboards/sixkeyboard/keymaps/default/keymap.c b/keyboards/sixkeyboard/keymaps/default/keymap.c new file mode 100644 index 000000000..641ed790e --- /dev/null +++ b/keyboards/sixkeyboard/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "sixkeyboard.h" +#include "matrix.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = { + {KC_A, KC_B, KC_C}, + {KC_D, KC_E, KC_F} + } +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +void matrix_scan_user(void) { + // jump to bootloaer when all keys are pressed + if (matrix_get_row(0) == 0b111 && matrix_get_row(1) == 0b111) { + clear_keyboard(); + bootloader_jump(); + } +}; \ No newline at end of file diff --git a/keyboards/sixkeyboard/matrix.c b/keyboards/sixkeyboard/matrix.c new file mode 100644 index 000000000..6dc93cda1 --- /dev/null +++ b/keyboards/sixkeyboard/matrix.c @@ -0,0 +1,120 @@ +/* + +Note for ErgoDox EZ customizers: Here be dragons! +This is not a file you want to be messing with. +All of the interesting stuff for you is under keymaps/ :) +Love, Erez + +Copyright 2013 Oleg Kostyuk + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +/* + * scan matrix + */ +#include +#include +#include +#include +#include "action_layer.h" +#include "print.h" +#include "debug.h" +#include "util.h" +#include "matrix.h" +#include "sixkeyboard.h" + +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; + +__attribute__ ((weak)) +void matrix_init_kb(void) { +} + +__attribute__ ((weak)) +void matrix_scan_kb(void) { +} + +inline +uint8_t matrix_rows(void) +{ + return MATRIX_ROWS; +} + +inline +uint8_t matrix_cols(void) +{ + return MATRIX_COLS; +} + +void matrix_init(void) +{ + + DDRC &= ~(1<<7); + PORTC |= (1<<7); + DDRB &= ~(1<<7 | 1<<5); + PORTB |= (1<<7 | 1<<5); + DDRD &= ~(1<<6 | 1<<4 | 1<<1); + PORTD |= (1<<6 | 1<<4 | 1<<1); + + matrix_init_kb(); + +} + +uint8_t matrix_scan(void) +{ + matrix[0] = (PINC&(1<<7) ? 0 : (1<<0)) | (PINB&(1<<7) ? 0 : (1<<1)) | (PINB&(1<<5) ? 0 : (1<<2)); + matrix[1] = (PIND&(1<<6) ? 0 : (1<<0)) | (PIND&(1<<1) ? 0 : (1<<1)) | (PIND&(1<<4) ? 0 : (1<<2)); + + matrix_scan_kb(); + + return 1; +} + +bool matrix_is_modified(void) +{ + return true; +} + +inline +bool matrix_is_on(uint8_t row, uint8_t col) +{ + return (matrix[row] & ((matrix_row_t)1< --- keyboards/ergodox_ez/keymaps/algernon/Makefile | 18 + keyboards/ergodox_ez/keymaps/algernon/config.h | 2 - .../keymaps/algernon/images/base-layer.png | Bin 96845 -> 105162 bytes .../keymaps/algernon/images/emacs-layer.png | Bin 114267 -> 0 bytes .../keymaps/algernon/images/experimental-layer.png | Bin 96956 -> 105172 bytes .../keymaps/algernon/images/hun-layer.png | Bin 78720 -> 67924 bytes .../keymaps/algernon/images/nav-n-media-layer.png | Bin 0 -> 94837 bytes .../keymaps/algernon/images/one-handed-layer.png | Bin 85970 -> 91140 bytes .../keymaps/algernon/images/steno-layer.png | Bin 65146 -> 69557 bytes keyboards/ergodox_ez/keymaps/algernon/keymap.c | 486 +++++++++------------ keyboards/ergodox_ez/keymaps/algernon/readme.md | 176 +++++--- 11 files changed, 351 insertions(+), 331 deletions(-) delete mode 100644 keyboards/ergodox_ez/keymaps/algernon/images/emacs-layer.png create mode 100644 keyboards/ergodox_ez/keymaps/algernon/images/nav-n-media-layer.png (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/algernon/Makefile b/keyboards/ergodox_ez/keymaps/algernon/Makefile index 3db507c8f..cd7e9e9d2 100644 --- a/keyboards/ergodox_ez/keymaps/algernon/Makefile +++ b/keyboards/ergodox_ez/keymaps/algernon/Makefile @@ -2,6 +2,24 @@ BOOTMAGIC_ENABLE=no COMMAND_ENABLE=no SLEEP_LED_ENABLE=no UNICODE_ENABLE=no +FORCE_NKRO ?= yes + +ifeq (${FORCE_NKRO},yes) +OPT_DEFS += -DFORCE_NKRO +endif + +KEYMAP_VERSION = $(shell \ + if [ -d "${KEYMAP_PATH}/.git" ]; then \ + cd "${KEYMAP_PATH}" && git describe --abbrev=6 --dirty --always --tags --match 'v*' 2>/dev/null; \ + else echo QMK; fi) + +KEYMAP_BRANCH = $(shell \ + if [ -d "${KEYMAP_PATH}/.git" ]; then \ + cd "${KEYMAP_PATH}"; \ + fi; \ + git rev-parse --abbrev-ref HEAD 2>/dev/null) + +OPT_DEFS += -DKEYMAP_VERSION=\"$(KEYMAP_VERSION)\\\#$(KEYMAP_BRANCH)\" ifndef QUANTUM_DIR include ../../../../Makefile diff --git a/keyboards/ergodox_ez/keymaps/algernon/config.h b/keyboards/ergodox_ez/keymaps/algernon/config.h index 4cb878ebc..9bb1025be 100644 --- a/keyboards/ergodox_ez/keymaps/algernon/config.h +++ b/keyboards/ergodox_ez/keymaps/algernon/config.h @@ -24,6 +24,4 @@ #undef LEADER_TIMEOUT #define LEADER_TIMEOUT 1000 -#define FORCE_NKRO - #endif diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/base-layer.png b/keyboards/ergodox_ez/keymaps/algernon/images/base-layer.png index 1a7c0f480..c4e298b6b 100644 Binary files a/keyboards/ergodox_ez/keymaps/algernon/images/base-layer.png and b/keyboards/ergodox_ez/keymaps/algernon/images/base-layer.png differ diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/emacs-layer.png b/keyboards/ergodox_ez/keymaps/algernon/images/emacs-layer.png deleted file mode 100644 index 1aa23cc00..000000000 Binary files a/keyboards/ergodox_ez/keymaps/algernon/images/emacs-layer.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/experimental-layer.png b/keyboards/ergodox_ez/keymaps/algernon/images/experimental-layer.png index c5e695b8c..81155851b 100644 Binary files a/keyboards/ergodox_ez/keymaps/algernon/images/experimental-layer.png and b/keyboards/ergodox_ez/keymaps/algernon/images/experimental-layer.png differ diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/hun-layer.png b/keyboards/ergodox_ez/keymaps/algernon/images/hun-layer.png index f1e5f9ec0..104a9544d 100644 Binary files a/keyboards/ergodox_ez/keymaps/algernon/images/hun-layer.png and b/keyboards/ergodox_ez/keymaps/algernon/images/hun-layer.png differ diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/nav-n-media-layer.png b/keyboards/ergodox_ez/keymaps/algernon/images/nav-n-media-layer.png new file mode 100644 index 000000000..16d29e124 Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/algernon/images/nav-n-media-layer.png differ diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/one-handed-layer.png b/keyboards/ergodox_ez/keymaps/algernon/images/one-handed-layer.png index 283559b3a..698d11e5f 100644 Binary files a/keyboards/ergodox_ez/keymaps/algernon/images/one-handed-layer.png and b/keyboards/ergodox_ez/keymaps/algernon/images/one-handed-layer.png differ diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/steno-layer.png b/keyboards/ergodox_ez/keymaps/algernon/images/steno-layer.png index e747bfb41..fe3c03c93 100644 Binary files a/keyboards/ergodox_ez/keymaps/algernon/images/steno-layer.png and b/keyboards/ergodox_ez/keymaps/algernon/images/steno-layer.png differ diff --git a/keyboards/ergodox_ez/keymaps/algernon/keymap.c b/keyboards/ergodox_ez/keymaps/algernon/keymap.c index 4eea6874c..fdc63a813 100644 --- a/keyboards/ergodox_ez/keymaps/algernon/keymap.c +++ b/keyboards/ergodox_ez/keymaps/algernon/keymap.c @@ -15,13 +15,14 @@ enum { BASE = 0, + EXPRM, + ARRW, APPSEL, HUN, - EMACS, + NMDIA, OHLFT, OHRGT, PLVR, - EXPRM }; /* Macros */ @@ -33,7 +34,6 @@ enum { A_PLVR, A_ESC, A_MPN, - A_COLN, // Function / number keys KF_1, // 1, F1 @@ -61,17 +61,6 @@ enum { A_MDL, A_MDR, - // Emacs layer keys - AE_VIS, // Visual mode - AE_PSTDEL, // Paste/Delete - AE_CPYC, // Copy/Cut - AE_EMACS, // Emacs copy & paste mode - AE_TERM, // Terminal copy & paste mode - AE_OTHER, // Other copy & paste mode - AE_INS, // Insert mode - AE_OVR, // Overwrite mode - AE_APPND, // Append - // Hungarian layer keys HU_AA, // Á HU_OO, // Ó @@ -102,11 +91,13 @@ enum { F_CTRL }; -/* States & timers */ +/* Custom keycodes */ + +enum { + CT_CLN = 0x7101 +}; -uint8_t m_visual_state = 0; -static uint16_t m_cutdel_timer; -static uint16_t m_copypaste_timer; +/* States & timers */ uint16_t gui_timer = 0; @@ -123,13 +114,8 @@ uint16_t oh_left_blink_timer = 0; uint8_t oh_right_blink = 0; uint16_t oh_right_blink_timer = 0; -enum { - CP_EMACS = 0, - CP_TERM = 1, - CP_OTHER = 2, -}; - -uint8_t cp_mode = CP_EMACS; +uint8_t ct_cln_count = 0; +uint16_t ct_cln_timer = 0; /* The Keymap */ @@ -138,18 +124,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Base Layer * * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | `~ | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 | Plvr | | Apps | 6 F6 | 7 F7 | 8 F8 | 9 F9 | 0 F10| F11 | + * | `~ | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 | Plvr | | 1HND | 6 F6 | 7 F7 | 8 F8 | 9 F9 | 0 F10| F11 | * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | Next/Prev | ' | , | . | P | Y | [ | | ] | F | G | C | R | L | = | + * | Next/Prev | ' | , | . | P | Y | [ | | ] | F | G | C | R | L | \ | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | Tab | A | O | E | U | I |------| |------| D | H | T | N | S | \ | + * | Tab | A | O | E | U | I |------| |------| D | H | T | N | S | = | * |-----------+------+------+------+------+------| ( | | ) |------+------+------+------+------+-----------| * | Play/Pause| / | Q | J | K | X | | | | B | M | W | V | Z | Stop | * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * | Home | End | Down | Up | : | | - | Left | Right| PgUp | PgDn | + * | | | Left | Up | : | | - | Down | Rght | | | * `-----------------------------------' `-----------------------------------' * ,-------------. ,-------------. - * | LAlt | GUI | |EMACS | 1HND | + * | LAlt | GUI | | MDIA | ARRW | * ,------|------|------| |------+------+------. * | | | Ctrl | | LEAD | | | * |Backsp|LShift|------| |------| Enter| Space| @@ -162,25 +148,116 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ,M(A_MPN) ,KC_QUOT ,KC_COMM ,KC_DOT ,KC_P ,KC_Y ,KC_LBRC ,KC_TAB ,KC_A ,KC_O ,KC_E ,KC_U ,KC_I ,KC_MPLY ,KC_SLSH ,KC_Q ,KC_J ,KC_K ,KC_X ,KC_LPRN -,KC_HOME ,KC_END ,KC_DOWN ,KC_UP ,M(A_COLN) +,KC_NO ,KC_NO ,KC_LEFT ,KC_UP ,CT_CLN ,F(F_ALT),F(F_GUI) ,F(F_CTRL) ,KC_BSPC,F(F_SFT),M(A_ESC) // right hand - ,KC_APP ,M(KF_6),M(KF_7),M(KF_8),M(KF_9) ,M(KF_10) ,KC_F11 - ,KC_RBRC ,KC_F ,KC_G ,KC_C ,KC_R ,KC_L ,KC_EQL - ,KC_D ,KC_H ,KC_T ,KC_N ,KC_S ,KC_BSLS - ,KC_RPRN ,KC_B ,KC_M ,KC_W ,KC_V ,KC_Z ,KC_MSTP - ,KC_MINS,KC_LEFT,KC_RGHT ,KC_PGUP ,KC_PGDN + ,M(OH_LEFT),M(KF_6),M(KF_7),M(KF_8),M(KF_9) ,M(KF_10) ,KC_F11 + ,KC_RBRC ,KC_F ,KC_G ,KC_C ,KC_R ,KC_L ,KC_BSLS + ,KC_D ,KC_H ,KC_T ,KC_N ,KC_S ,KC_EQL + ,KC_RPRN ,KC_B ,KC_M ,KC_W ,KC_V ,KC_Z ,KC_MSTP + ,KC_MINS,KC_DOWN,KC_RGHT ,KC_NO ,KC_NO - ,OSL(EMACS),M(OH_LEFT) + ,OSL(NMDIA),OSL(ARRW) ,KC_LEAD - ,F(F_HUN),KC_ENT ,KC_SPC + ,F(F_HUN) ,KC_ENT ,KC_SPC ), -/* Keymap 1: Application select layer +/* Keymap 1: Experimental layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | `~ | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 | Plvr | | 1HND | 6 F6 | 7 F7 | 8 F8 | 9 F9 | 0 F10| F11 | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | Next/Prev | ' | , | . | P | Y | [ | | ] | L | F | C | R | J | = | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | Tab | A | O | E | U | I |------| |------| D | H | T | N | S | \ | + * |-----------+------+------+------+------+------| ( | | ) |------+------+------+------+------+-----------| + * | Play/Pause| Z | G | V | K | X | | | | Q | M | W | B | / | Stop | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | Left | Up | : | | - | Down | Rght | | | + * `-----------------------------------' `-----------------------------------' + * ,-------------. ,-------------. + * | LAlt | GUI | | MDIA | ARRW | + * ,------|------|------| |------+------+------. + * | | | Ctrl | | LEAD | | | + * |Backsp|LShift|------| |------| Enter| Space| + * | | | ESC | | HUN | | | + * `--------------------' `--------------------' + */ +[EXPRM] = KEYMAP( +// left hand + KC_GRV ,M(KF_1) ,M(KF_2) ,M(KF_3),M(KF_4),M(KF_5),M(A_PLVR) +,M(A_MPN) ,KC_QUOT ,KC_COMM ,KC_DOT ,KC_P ,KC_Y ,KC_LBRC +,KC_TAB ,KC_A ,KC_O ,KC_E ,KC_U ,KC_I +,KC_MPLY ,KC_Z ,KC_G ,KC_V ,KC_K ,KC_X ,KC_LPRN +,KC_NO ,KC_NO ,KC_LEFT ,KC_UP ,CT_CLN + + ,F(F_ALT),F(F_GUI) + ,F(F_CTRL) + ,KC_BSPC,F(F_SFT),M(A_ESC) + + // right hand + ,M(OH_LEFT),M(KF_6),M(KF_7),M(KF_8),M(KF_9) ,M(KF_10) ,KC_F11 + ,KC_RBRC ,KC_L ,KC_F ,KC_C ,KC_R ,KC_J ,KC_BSLS + ,KC_D ,KC_H ,KC_T ,KC_N ,KC_S ,KC_EQL + ,KC_RPRN ,KC_Q ,KC_M ,KC_W ,KC_B ,KC_SLSH ,KC_MSTP + ,KC_MINS,KC_DOWN,KC_RGHT ,KC_NO ,KC_NO + + ,OSL(NMDIA),OSL(ARRW) + ,KC_LEAD + ,F(F_HUN) ,KC_ENT ,KC_SPC + ), + +/* Keymap 2: Arrow layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | | | | | | | | | | | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | |------| |------| | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | | | | | | | | | | | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | Home | PgUp | | | | PgDn | End | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ + +[ARRW] = 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 ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_HOME ,KC_PGUP ,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_TRNS ,KC_TRNS + ,KC_TRNS ,KC_PGDN ,KC_END ,KC_TRNS ,KC_TRNS + + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS + ), + +/* Keymap 3: Application select layer * * ,-----------------------------------------------------. ,-----------------------------------------------------. * | |Music |Slack |Emacs |Term |Chrome| | | | | | | | | | @@ -227,7 +304,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), -/* Keymap 2: Hungarian Layer +/* Keymap 4: Hungarian Layer * * ,-----------------------------------------------------. ,-----------------------------------------------------. * | | | | | | | | | | | | | | | | @@ -251,73 +328,73 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [HUN] = KEYMAP( // left hand - KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_TRNS + KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,M(HU_OEE),KC_NO ,M(HU_UEE),KC_NO ,KC_NO ,KC_NO ,M(HU_AA),M(HU_OO) ,M(HU_EE),M(HU_UU) ,M(HU_II) -,KC_TRNS ,KC_NO ,M(HU_OE) ,KC_NO ,M(HU_UE) ,KC_NO ,KC_NO -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_NO +,KC_NO ,KC_NO ,M(HU_OE) ,KC_NO ,M(HU_UE) ,KC_NO ,KC_NO +,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_TRNS ,KC_TRNS - ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_NO ,KC_NO + ,KC_NO + ,KC_NO ,KC_TRNS ,KC_TRNS // right hand ,KC_TRNS ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,F(F_BSE),KC_TRNS ,KC_TRNS ), -/* Keymap 3: Spacemacs layer +/* Keymap 5: Navigation & Media layer * * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | MS Slow | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 |ScrLCK| |ScrLCK| 6 F6 | 7 F7 | 8 F8 | 9 F9 | 0 F10| F11 | + * | MS Slow | | | | | |ScrLCK| |ScrLCK| | | | | | | * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | MS Normal | | Home | Up | PgUp | |Visual| |Scroll| $ |MsUpL | MsUp |MsUpR | R |PrintScreen| - * |-----------+------+------+------+------+------| Mode | | Up |------+------+------+------+------+-----------| - * | MS Fast |APPEND| Left | Down | Right| INS |------| |------| D |MsLeft| MsDn |MsRght| | | - * |-----------+------+------+------+------+------| Cut | |Scroll|------+------+------+------+------+-----------| - * | Play/Pause| | End | Down | PgDn | X | Copy | | Down | |MsDnL | W |MsDnR | | Stop | + * | MS Normal | | Home | Up | PgUp | | | |Scroll| |MsUpL | MsUp |MsUpR | |PrintScreen| + * |-----------+------+------+------+------+------| | | Up |------+------+------+------+------+-----------| + * | MS Fast | | Left | Down | Right| |------| |------| |MsLeft| MsDn |MsRght| | | + * |-----------+------+------+------+------+------| | |Scroll|------+------+------+------+------+-----------| + * | Play/Pause| | End | Down | PgDn | | | | Down | |MsDnL | MsDn |MsDnR | | Stop | * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * |EmacsM|TermM |OtherM| | | |Vol Up|Vol Dn| Mute | | | + * | | | | | | | | | | | | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. - * | Alt | GUI | | BASE | MClk | + * | Mute | VlUp | | BASE | MClk | * ,------|------|------| |------+------+------. - * |Delete| | Ctrl | | Prev |Left |Right | - * | |LShift|------| |------| Click| Click| - * |Paste | | ESC | | Next | | | + * | | | VlDn | | Prev |Left |Right | + * | SPC | Enter|------| |------| Click| Click| + * | | | ESC | | Next | | | * `--------------------' `--------------------' */ -[EMACS] = KEYMAP( +[NMDIA] = KEYMAP( // left hand - KC_ACL0 ,M(KF_1) ,M(KF_2) ,M(KF_3) ,M(KF_4) ,M(KF_5) ,LGUI(KC_L) -,KC_ACL1 ,KC_NO ,KC_HOME ,KC_UP ,KC_PGUP ,KC_NO ,M(AE_VIS) -,KC_ACL2 ,M(AE_APPND) ,KC_LEFT ,KC_DOWN ,KC_RIGHT,M(AE_INS) -,KC_MPLY ,KC_NO ,KC_END ,KC_DOWN ,KC_PGDN ,KC_X ,M(AE_CPYC) -,M(AE_EMACS),M(AE_TERM) ,M(AE_OTHER),KC_NO ,KC_NO - ,KC_TRNS ,KC_TRNS - ,KC_TRNS - ,M(AE_PSTDEL),KC_TRNS ,KC_TRNS + KC_ACL0 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,LGUI(KC_L) +,KC_ACL1 ,KC_NO ,KC_HOME ,KC_UP ,KC_PGUP ,KC_NO ,KC_NO +,KC_ACL2 ,KC_NO ,KC_LEFT ,KC_DOWN ,KC_RIGHT,KC_NO +,KC_MPLY ,KC_NO ,KC_END ,KC_DOWN ,KC_PGDN ,KC_NO ,KC_NO +,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_MUTE ,KC_VOLU + ,KC_VOLD + ,KC_SPC,KC_ENTER,M(A_ESC) // right hand - ,LGUI(KC_L),M(KF_6) ,M(KF_7) ,M(KF_8) ,M(KF_9) ,M(KF_10) ,M(KF_11) - ,KC_WH_U ,KC_DLR ,M(A_MUL),KC_MS_U ,M(A_MUR),M(AE_OVR),KC_PSCR - ,KC_D ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_NO ,KC_NO - ,KC_WH_D ,KC_NO ,M(A_MDL),KC_W ,M(A_MDR),KC_NO ,KC_MSTP - ,KC_VOLU ,KC_VOLD ,KC_MUTE ,KC_NO ,KC_NO + ,LGUI(KC_L),KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_WH_U ,KC_NO ,M(A_MUL),KC_MS_U ,M(A_MUR),KC_NO ,KC_PSCR + ,KC_NO ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_NO ,KC_NO + ,KC_WH_D ,KC_NO ,M(A_MDL),KC_MS_D ,M(A_MDR),KC_NO ,KC_MSTP + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_TRNS ,KC_MS_BTN3 ,KC_MPRV ,KC_MNXT ,KC_BTN1 ,KC_BTN2 ), -/* Keymap 5: One-handed, left side +/* Keymap 6: One-handed, left side * * ,-----------------------------------------------------. * | `~ | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 |A BSE| @@ -362,7 +439,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ,KC_NO ,KC_NO ,KC_NO ), -/* Keymap 6: One-handed, right side +/* Keymap 7: One-handed, right side * * ,-----------------------------------------------------. * | = F11 | 0 F10| 9 F9 | 8 F8 | 7 F7 | 6 F6 |A BSE| @@ -407,15 +484,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ,KC_NO ,KC_NO ,KC_NO ), -/* Keymap 7: Steno for Plover +/* Keymap 8: Steno for Plover * * ,--------------------------------------------------. ,--------------------------------------------------. * | | | | | | | BASE | | | | | | | | | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | # | # | # | # | # | | | | # | # | # | # | # | # | + * | | # | # | # | # | # | # | | # | # | # | # | # | # | # | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | | T | P | H | |------| |------| | F | P | L | T | D | - * |--------+ S +------+------+------+ * | | | | * +------+------+------+------+--------| + * |--------+ S +------+------+------+ * | * | | * | * +------+------+------+------+--------| * | | | K | W | R | | | | | | R | B | G | S | Z | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * | | | | | | | | | | | | @@ -432,9 +509,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [PLVR] = KEYMAP( // left hand KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, M(A_PLVR), -KC_NO, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, KC_NO, +KC_NO, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, KC_NO, PV_LS, PV_LT, PV_LP, PV_LH, PV_STAR, -KC_NO, PV_LS, PV_LK, PV_LW, PV_LR, PV_STAR, KC_NO, +KC_NO, PV_LS, PV_LK, PV_LW, PV_LR, PV_STAR, PV_STAR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, @@ -442,61 +519,15 @@ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, // right hand KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, + PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_STAR, PV_RF, PV_RP, PV_RL, PV_RT, PV_RD, - KC_NO, PV_STAR, PV_RR, PV_RB, PV_RG, PV_RS, PV_RZ, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + PV_STAR, PV_STAR, PV_RR, PV_RB, PV_RG, PV_RS, PV_RZ, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,PV_E, PV_U ), -/* Keymap 8: Experimental layer - * - * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | `~ | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 | Plvr | | Apps | 6 F6 | 7 F7 | 8 F8 | 9 F9 | 0 F10| F11 | - * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | Next/Prev | ' | , | . | P | Y | [ | | ] | Q | F | C | R | J | = | - * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | Tab | A | O | E | U | I |------| |------| D | H | T | N | S | \ | - * |-----------+------+------+------+------+------| ( | | ) |------+------+------+------+------+-----------| - * | Play/Pause| Z | K | V | G | X | | | | L | M | W | B | / | Stop | - * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * | Home | End | Down | Up | : | | - | Left | Right| PgUp | PgDn | - * `-----------------------------------' `-----------------------------------' - * ,-------------. ,-------------. - * | LAlt | GUI | |EMACS | 1HND | - * ,------|------|------| |------+------+------. - * | | | Ctrl | | LEAD | | | - * |Backsp|LShift|------| |------| Enter| Space| - * | | | ESC | | HUN | | | - * `--------------------' `--------------------' - */ -[EXPRM] = KEYMAP( -// left hand - KC_GRV ,M(KF_1) ,M(KF_2) ,M(KF_3),M(KF_4),M(KF_5),M(A_PLVR) -,M(A_MPN) ,KC_QUOT ,KC_COMM ,KC_DOT ,KC_P ,KC_Y ,KC_LBRC -,KC_TAB ,KC_A ,KC_O ,KC_E ,KC_U ,KC_I -,KC_MPLY ,KC_Z ,KC_K ,KC_V ,KC_G ,KC_X ,KC_LPRN -,KC_HOME ,KC_END ,KC_DOWN ,KC_UP ,M(A_COLN) - - ,F(F_ALT),F(F_GUI) - ,F(F_CTRL) - ,KC_BSPC,F(F_SFT),M(A_ESC) - - // right hand - ,KC_APP ,M(KF_6),M(KF_7),M(KF_8),M(KF_9) ,M(KF_10) ,KC_F11 - ,KC_RBRC ,KC_Q ,KC_F ,KC_C ,KC_R ,KC_J ,KC_EQL - ,KC_D ,KC_H ,KC_T ,KC_N ,KC_S ,KC_BSLS - ,KC_RPRN ,KC_L ,KC_M ,KC_W ,KC_B ,KC_SLSH ,KC_MSTP - ,KC_MINS,KC_LEFT,KC_RGHT ,KC_PGUP ,KC_PGDN - - ,OSL(EMACS),M(OH_LEFT) - ,KC_LEAD - ,F(F_HUN),KC_ENT ,KC_SPC - ), - - }; const uint16_t PROGMEM fn_actions[] = { @@ -616,26 +647,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } break; - case A_COLN: - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || - ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out())) { - int oneshot = ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out()); - - if (record->event.pressed) { - if (oneshot) - clear_oneshot_mods (); - unregister_code (KC_LSFT); - - register_code (KC_SCLN); - unregister_code (KC_SCLN); - if (!oneshot) - register_code (KC_LSFT); - } - } else { - return MACRODOWN (D(RSFT), T(SCLN), U(RSFT), END); - } - break; - case A_MPN: if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || @@ -722,126 +733,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) mousekey_send(); break; - /* EMACS layer stuff */ - case AE_EMACS: - if (record->event.pressed) { - cp_mode = CP_EMACS; - } - break; - - case AE_TERM: - if (record->event.pressed) { - cp_mode = CP_TERM; - } - break; - - case AE_OTHER: - if (record->event.pressed) { - cp_mode = CP_OTHER; - } - break; - - case AE_VIS: - if (cp_mode == CP_EMACS && record->event.pressed) { - return MACRO(T(V), END); - } - break; - - case AE_CPYC: - if (record->event.pressed) { - m_copypaste_timer = timer_read (); - } else { - if (timer_elapsed (m_copypaste_timer) > TAPPING_TERM) { - // Long press: Cut - switch (cp_mode) { - case CP_EMACS: - return MACRO(T(X), END); - break; - case CP_TERM: - return MACRO(D(RCTRL), D(RSFT), T(X), U(RSFT), U(RCTRL), END); - break; - case CP_OTHER: - return MACRO(D(RCTRL), T(X), U(RCTRL), END); - break; - } - } else { - // Short press: Copy - switch (cp_mode) { - case CP_EMACS: - return MACRO(T(Y), END); - break; - case CP_TERM: - return MACRO(D(RCTRL), D(RSFT), T(C), U(RSFT), U(RCTRL), END); - break; - case CP_OTHER: - return MACRO(D(RCTRL), T(C), U(RCTRL), END); - break; - } - } - } - break; - - case AE_PSTDEL: - if (record->event.pressed) { - m_cutdel_timer = timer_read (); - } else { - if (timer_elapsed (m_cutdel_timer) > TAPPING_TERM) { - // Long press: Delete - switch (cp_mode) { - case CP_EMACS: - return MACRO(T(D), END); - break; - case CP_TERM: - case CP_OTHER: - return MACRO(T(DEL), END); - break; - } - } else { - // Short press: Paste - switch (cp_mode) { - case CP_EMACS: - if (keyboard_report->mods & MOD_BIT(KC_RSFT)) { - unregister_code (KC_RSFT); - return MACRO(U(RSFT), T(RBRC), T(P), D(RSFT), END); - } - else - return MACRO(T(P), END); - break; - case CP_TERM: - return MACRO(D(RCTRL), D(RSFT), T(V), U(RSFT), U(RCTRL), END); - break; - case CP_OTHER: - return MACRO(D(RCTRL), T(V), U(RCTRL), END); - break; - } - } - } - break; - - case AE_INS: - if (record->event.pressed) { - return MACRO(T(I), END); - } else { - layer_clear(); - } - break; - - case AE_OVR: - if (record->event.pressed) { - return MACRO(T(R), END); - } else { - layer_clear(); - } - break; - - case AE_APPND: - if (record->event.pressed) { - return MACRO(T(A), END); - } else { - layer_clear(); - } - break; - /* Plover base */ case A_PLVR: toggle_steno(record->event.pressed); @@ -872,7 +763,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) break; case APP_SLK: - return MACRODOWN(T(S), T(C), T(U), T(D), T(C), T(L), T(O), T(U), T(D), T(ENT), END); + return MACRODOWN(T(S), T(L), T(A), T(C), T(K), T(ENT), END); case APP_EMCS: return MACRODOWN(T(E), T(M), T(A), T(C), T(S), T(ENT), END); @@ -1000,6 +891,21 @@ void matrix_scan_user(void) { if (gui_timer && timer_elapsed (gui_timer) > TAPPING_TERM) unregister_code (KC_LGUI); + if (ct_cln_timer && timer_elapsed (ct_cln_timer) > TAPPING_TERM) { + if (ct_cln_count == 1) { + register_code (KC_RSFT); + register_code (KC_SCLN); + unregister_code (KC_SCLN); + unregister_code (KC_RSFT); + } else if (ct_cln_count == 2) { + register_code (KC_SCLN); + unregister_code (KC_SCLN); + } + + ct_cln_count = 0; + ct_cln_timer = 0; + } + if (layer != OHLFT) oh_left_blink = 0; if (layer != OHRGT) @@ -1008,7 +914,7 @@ void matrix_scan_user(void) { if (layer == HUN) { ergodox_right_led_2_on(); ergodox_right_led_3_on(); - } else if (layer == EMACS) { + } else if (layer == NMDIA) { ergodox_right_led_1_on(); ergodox_right_led_2_on(); } else if (layer == PLVR) { @@ -1055,7 +961,7 @@ void matrix_scan_user(void) { ergodox_right_led_1_on (); } else { ergodox_right_led_1_set (LED_BRIGHTNESS_LO); - if (layer != OHLFT && layer != EMACS && layer != PLVR && layer != EXPRM) + if (layer != OHLFT && layer != NMDIA && layer != PLVR && layer != EXPRM) ergodox_right_led_1_off (); } @@ -1065,7 +971,7 @@ void matrix_scan_user(void) { ergodox_right_led_2_on (); } else { ergodox_right_led_2_set (LED_BRIGHTNESS_LO); - if (layer != OHRGT && layer != HUN && layer != OHLFT && layer != EMACS && layer != PLVR && layer != EXPRM) + if (layer != OHRGT && layer != HUN && layer != OHLFT && layer != NMDIA && layer != PLVR && layer != EXPRM) ergodox_right_led_2_off (); } @@ -1087,11 +993,9 @@ void matrix_scan_user(void) { ang_do_unicode (); } -#ifdef QMK_VERSION SEQ_ONE_KEY (KC_V) { - SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); + SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ (" QMK_VERSION "/" KEYMAP_VERSION ")"); } -#endif SEQ_ONE_KEY (KC_L) { /* λ */ @@ -1165,8 +1069,36 @@ void matrix_scan_user(void) { ergodox_right_led_2_off (); _delay_ms (100); ergodox_right_led_3_off (); - } } } } + +bool process_record_user (uint16_t keycode, keyrecord_t *record) { + switch(keycode) { + case CT_CLN: + if (record->event.pressed) { + ct_cln_count++; + ct_cln_timer = timer_read (); + } else { + } + return false; + break; + + default: + if (ct_cln_count == 1) { + register_code (KC_RSFT); + register_code (KC_SCLN); + unregister_code (KC_SCLN); + unregister_code (KC_RSFT); + } else if (ct_cln_count == 2) { + register_code (KC_SCLN); + unregister_code (KC_SCLN); + } + ct_cln_count = 0; + ct_cln_timer = 0; + break; + } + + return true; +} diff --git a/keyboards/ergodox_ez/keymaps/algernon/readme.md b/keyboards/ergodox_ez/keymaps/algernon/readme.md index c66b33f3d..6b7e8fa2e 100644 --- a/keyboards/ergodox_ez/keymaps/algernon/readme.md +++ b/keyboards/ergodox_ez/keymaps/algernon/readme.md @@ -10,13 +10,29 @@ history of the layout, see my Some of the things in the layout only work when one uses Spacemacs and GNOME under Linux. Your mileage may vary. +## Table of Contents + +* [Layouts](#layouts) + - [Base layer](#base-layer) + - [Experimental layer](#experimental-layer) + - [Hungarian layer](#hungarian-layer) + - [Navigation and media layer](#navigation-and-media-layer) + - [One-handed layer](#one-handed-layer) + - [Steno layer](#steno-layer) + - [LED states](#led-states) +* [Building](#building) + - [Using on Windows](#using-on-windows) +* [Changelog](#changelog) +* [License](#license) + +# Layouts + ## Base layer [![Base layer](images/base-layer.png)](http://www.keyboard-layout-editor.com/#/gists/28f7eb305fdbff943613e1dc7aa9e82b) -At its core, this is a Dvorak layout, with some minor changes (for example, `-` -being on the left half, and on the innermost key of the bottom row on the -right). The more interesting parts are how certain keys behave: +At its core, this is a Dvorak layout, with some minor changes. The more +interesting parts are how certain keys behave: * The keys on the number row double as function keys, when held for a bit longer than an usual tap. This allows me to use the function keys without having to @@ -33,9 +49,13 @@ right). The more interesting parts are how certain keys behave: normal layout. * The `ESC` key also doubles as a one-shot cancel key: if tapped while any of the one-shot modifiers are in-flight (as in, single-tapped, and not expired - yet), it cancels all one-shot modifiers. Otherwise it sends the usual keycode. -* The **Emacs** and **Hun** layer keys are one-shot, the **1Hand** and **STENO** - keys are toggles. + yet), it cancels all one-shot modifiers. It also cancels the **Hun** layer, if + active. Otherwise it sends the usual keycode. +* The **Media**, **Arrow**, and **Hun** layer keys are one-shot, the **1Hand** + and **STENO** keys are toggles. +* Toggling the **Arrow** layer toggles between the cursor arrows and the paging + keys on the bottom row. +* Tapping the `:` key once yields `:`, tapping it twice yields `;`. * The **Lead** key allows me to type in a sequence of keys, and trigger some actions: - `LEAD u` enters unicode input mode, by sending the GTK+ key sequence that @@ -45,8 +65,19 @@ right). The more interesting parts are how certain keys behave: - `LEAD y` types `\o/`. - `LEAD w m` maximises the currently focused window. - `LEAD e` makes the [experimental layer](#experimental-layer) the default. - - `LEAD v` prints the firmware version, the keyboard and the keymap, if - compiled with a QMK version that has these available. + - `LEAD v` prints the firmware version, the keyboard and the keymap. + +## Experimental layer + +[![Experimental layer](images/experimental-layer.png)](http://www.keyboard-layout-editor.com/#/gists/6ff50bf71248e05aab5b3fec4fae3d08) + +While using the standard Dvorak layout, I encountered a number of +inconveniences, and on this layer, I am playing with ideas to make the layout +feel better. Initially, it was based on [Capewell-Dvorak][cpd], but that too, +had shortcomings I was not happy with. So now this is something inbetween, with +own observations thrown in. How it works out in the long run remains to be seen. + + [cpd]: http://www.michaelcapewell.com/projects/keyboard/layout_capewell-dvorak.htm ## Hungarian layer @@ -57,32 +88,12 @@ variant. For some, which can have other diatribes, the long one is on top, short's on bottom. Tapping any of the accented characters takes us back to the base layer. -## Emacs layer - -[![Emacs layer](images/emacs-layer.png)](http://www.keyboard-layout-editor.com/#/gists/c59c453f9fe1a3238ba1494e7e5c6892) - -This layer is primarily for navigating text - and for some mousing and other -things, because there was space. Most of the keys should be pretty -self-explanatory, except for a few: - -* There are three keys on the bottom row of the left side, that change how some - of the other keys - explained just below - work. The keys are for *Emacs - mode* (the default), *Terminal mode*, and *Traditional mode*, respectively. -* The *Visual mode* key (the top big key on the left side) sends the `v` key in - *Emacs mode*, to enter Visual mode in Spacemacs. In all other modes, it is a - no-op. -* The *Copy/Cut* key (the bottom big key on the left side) sends the copy - command on tap, the cut one when held for longer than a normal tap. The **copy - command** is `y` in *Emacs mode*, `Ctrl-Shift-c` in *Terminal mode*, and - `Ctrl-c` in *Traditional mode*. The **cut command** is `x` in *Emacs mode*, - `Ctrl-Shift-x` in *Terminal Mode* and `Ctrl-x` in *Traditional mode*. -* The *Paste/Delete* key (the leftmost key on the left thumb cluster) sends the - paste command on tap, the delete one when held longer than a normal tap. The - **paste command** is `p` in *Emacs mode*, `Ctrl-Shift-v` in *Terminal mode*, - and `Ctrl-v` in *Traditional mode*. The **delete command** is `d` in *Emacs - mode*, and `DEL` in the other two. -* The `A`, `I` and `R` keys will - after sending themselves - clear the layer - back to the base layer. This allows a quick escape from the layer. +## Navigation and media layer + +[![Navigation and media layer](images/nav-n-media-layer.png)](http://www.keyboard-layout-editor.com/#/gists/c59c453f9fe1a3238ba1494e7e5c6892) + +This layer is primarily for navigating with the cursor or the mouse, and some +media things. ## One-handed layer @@ -113,33 +124,50 @@ This is to be used with [Plover](http://www.openstenoproject.org/plover/), nothing really fancy here. The **STENO** key toggles the layer on and off, and sends the toggle command to Plover too. -## Experimental layer - -[![Experimental layer](images/experimental-layer.png)](http://www.keyboard-layout-editor.com/#/gists/6ff50bf71248e05aab5b3fec4fae3d08) - -While using the standard Dvorak layout, I encountered a number of -inconveniences, and on this layer, I am playing with ideas to make the layout -feel better. Initially, it was based on [Capewell-Dvorak][cpd], but that too, -had shortcomings I was not happy with. So now this is something inbetween, with -own observations thrown in. How it works out in the long run remains to be seen. - - [cpd]: http://www.michaelcapewell.com/projects/keyboard/layout_capewell-dvorak.htm +## LED states + +The primary purpose of the LEDs is to show the modifier status, a secondary, to +show which layer is active. Each modifier, `Shift`, `Alt` and `Control` each +have their designated LEDs: the *red*, *green* and *blue*, respectively. When a +modifier is in a one-shot state, the respective LED will turn on with a dimmer +light. If the modifier is toggled on, the brightness of the LED turns full. + +For the layers, the following rules apply: + +* When the [Experimental layer](#experimental-layer) is toggled on, LEDs will + light up from left to right in a sequence, then turn off. When the layer is + toggled off, the LEDs light up and turn off in the other direction. No LEDs + are on while the layer is active. +* When the [Hungarian layer](#hungarian-layer) is active, the *green* and *blue* + LEDs are on. +* When the [Navigation and media layer](#navigation-and-media-layer) is active, + the *red* and *green* ones are on. +* When the [One-handed layer](#one-handed-layer) is active, the *green* LED is + on and bright, and either the *red* or the *blue* one is going to slowly + blink, depending on the currently active side. +* For the [Steno layer](#steno-layer), all LEDs will be turned on. + +Unless noted otherwise, the layers use a dim light for the LEDs, while modifiers +use a stronger one, and modifiers override any layer preferences. For example, +when on the one-handed layer, with the left side active (*red* light blinking), +if `Shift` is on, the *red* light will be constantly on. # Building To make my workflow easier, this layout is maintained in [its own repository][algernon:ez-layout]. To build it, you will need the -[QMK][qmk] firmware checked out, and this repo either checked out, or symlinked -to `keyboards/ergodox_ez/algernon`. One way to achieve that is this: +[QMK][qmk] firmware checked out, and this repo either checked out to something +like `keyboards/ergodox_ez/algernon-master`. One way to achieve that is this: [algernon:ez-layout]: https://github.com/algernon/ergodox-layout [qmk]: https://github.com/jackhumbert/qmk_firmware ``` $ git clone https://github.com/jackhumbert/qmk_firmware.git -$ cd qmk_firmware/keyboards/ergodox_ez -$ git clone https://github.com/algernon/ergodox-layout.git keymaps/algernon -$ make KEYMAP=algernon +$ cd qmk_firmware +$ git clone https://github.com/algernon/ergodox-layout.git \ + keyboards/ergodox_ez/keymaps/algernon-master +$ make KEYBOARD=ergodox_ez KEYMAP=algernon-master ``` From time to time, updates may be submitted back to the QMK repository. If you @@ -147,10 +175,54 @@ are reading it there, you can build the firmware like any other firmware included with it (assuming you are in the root directory of the firmware): ``` -$ cd keyboards/ergodox_ez -$ make KEYMAP=algernon +$ make KEYBOARD=ergodox_ez KEYMAP=algernon ``` +## Using on Windows + +The keymap default to forcing NKRO, which seems to upset Windows, and except the +modifiers, none of them work. If you experience this problem, recompile the +firmware with `FORCE_NKRO=no` added to the `make` command line. + +# Changelog + +## v1.2 - 2016-06-22 + +* The forced NKRO mode can be easily toggled off at compile-time, to make the + firmware compatible with [certain operating systems](#using-on-windows). +* The `:;` key has changed behaviour: to access the `;` symbol, the key needs to + be double-tapped, instead of shifted. +* The `=` and `\` keys were swapped, `=` moved to the home row, on both the + [base](#base-layer) and the [experimental](#experimental-layer) layers. +* The arrow and navigation keys were redone, they are now more accessible, but + the navigation keys require an extra tap to access. +* The **Emacs** layer is gone, replaced by a simplified + [navigation and media](#navigation-and-media-layer) layer. +* `LEAD v` types the firmware version, and the keymap version. +* On the [experimental](#experimental-layer) layer, the `L` and `Q`, and the `K` + and `G` keys were swapped. +* The [Steno](#steno-layer) layer gained a few more `#` and `*` keys, to make it + easier on my fingers. + +## v1.1 - 2016-06-14 + +* The keyboard starts in NKRO mode, bootmagic and other things are disabled. +* A [Steno](#steno-layer) layer was added, to be used with Plover. +* An [experimental](#experimental-layer) layer was added, something halfway + between Dvorak and Capewell-Dvorak. A work in progress. +* `LEAD y` types `\o/`. +* Some keys on the [Base](#base-layer) layer have been moved around: + - `?` moved to the left pinky, left of `Q`. + - `=` shifted one row down, but `F11` stayed where it was. + - `-` on the left half was replaced by `Tab`. + - `Tab`'s original position is taken by a `Media Next`/`Media Prev` key. + - `:` now inputs `;` when shifted. +* `ESC` cancels the [Hungarian](#hungarian-layer) layer too, not just modifiers. + +## v1.0 - 2016-05-26 + +Initial version. + # License The layout, being a derivative of the original TMK firmware which is under the -- cgit v1.2.3 From 2443234555e3b69ba51d0a62fbf3faba09b95680 Mon Sep 17 00:00:00 2001 From: Jack & Erez Date: Wed, 22 Jun 2016 23:17:15 -0400 Subject: Adds a Readme for the keyboards subdirectory --- keyboards/readme.md | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 keyboards/readme.md (limited to 'keyboards') diff --git a/keyboards/readme.md b/keyboards/readme.md new file mode 100644 index 000000000..6f16efe49 --- /dev/null +++ b/keyboards/readme.md @@ -0,0 +1,47 @@ +# Included Keyboards + +QMK runs on a diverse range of keyboards. Some of these keyboards are officially supported and see constant community contributions, while others are part of the repository for historical reasons. + +## Official QMK Keyboards + +These keyboards are manufactured by the maintainers of QMK. + +### [Ortholinear Keyboards](http://olkb.com) — Jack Humbert + +What makes OLKB keyboards shine is a combo of lean aesthetics, compact size, and killer tactile feel. These are available through [olkb.com](http://olkb.com) as well as through [Massdrop](http://massdrop.com) from time to time, as easy to assemble kits. + +* [Planck](/keyboards/planck/) — A 40% DIY powerhouse of customizability and modification capability. It's a lean, mean, typing machine. +* [Preonic](/keyboards/preonic/) — Like the Planck, but bigger. 50%. +* [Atomic](/keyboards/atomic/) — Imagine the size of the Planck. Now imagine the size of the Preonic. Now imagine _bigger_. That is the Atomic. A 60% keyboard. + +### [ErgoDox EZ](https://ergodox-ez.com) — Erez Zukerman + +Made in Taiwan using advanced robotic manufacturing, the ErgoDox EZ is a fully-assembled, premium ergonomic keyboard. Its split design allows you to place both halves shoulder width, and its custom-made wrist rests and tilt/tent kit make for incredibly comfortable typing. + +* [ErgoDox EZ](/keyboards/ergodox_ez/) — Our one and only product. Yes, it's that awesome. Comes with either printed or blank keycaps, and 7 different keyswitch types. + +### [Clueboard](http://clueboard.co) — Zach White + +Designed and built in Felton, CA, Clueboards keyboard emphasize quality and locally sourced components. + +* [Clueboard rev.1](/keyboards/clueboard1/) — The old Clueboard. +* [Clueboard rev.2](/keyboards/clueboard2/) — New and improved! The Clueboard, revision 2. +* [Cluepad](/keyboards/cluepad/) — A mechanical numpad with QMK superpowers. + + +## Community-supported QMK Keyboards + +These keyboards are part of the QMK repository, but their manufacturers are not official maintainers of the repository. + +* [alps64](/keyboards/alps64/) — A 60% keyboard for Alps keyswitches. +* [arrow_pad](/keyboards/arrow_pad) — A custom creation by IBNobody. +* [atreus](/keyboards/atreus) — Made by Technomancy. +* [bantam44](/keyboards/bantam44) — It is a 44-key 40% staggered keyboard. +* [gh60](/keyboards/gh60) — A 60% Geekhack community-driven project. +* [hhkb](/keyboards/hhkb) — The Happy Hacking keyboard can be hacked with a custom controller to run QMK. +* [jd45](/keyboards/jd45) — Another Geekhack community project, designed by jdcarpe. +* [kc60](/keyboards/kc60) — A programmable Chinese-made keyboard, lost in the mists of time. +* [phantom](/keyboards/phantom) — A tenkeyless kit by Teel, also from Geekhack. +* [retro_refit](/keyboards/retro_refit) — Another creation by IBNobody. +* [satan](/keyboards/satan) — A GH60 variant. +* [sixkeyboard](/keyboards/sixkeyboard) — A 6-key keyboard made by TechKeys. -- cgit v1.2.3 From 7e584439ee613fe156b15ebe8b85d921770861ca Mon Sep 17 00:00:00 2001 From: Jack & Erez Date: Wed, 22 Jun 2016 23:24:47 -0400 Subject: Updates overall readme --- README.md | 18 ++++++++++++++++++ keyboards/readme.md | 1 - 2 files changed, 18 insertions(+), 1 deletion(-) (limited to 'keyboards') diff --git a/README.md b/README.md index 23c879c57..8ecae68d3 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,24 @@ This is a keyboard firmware based on the [tmk_keyboard firmware](http://github.com/tmk/tmk_keyboard) with some useful features for Atmel AVR controllers, and more specifically, the [OLKB product line](http://olkb.co), the [ErgoDox EZ](http://www.ergodox-ez.com) keyboard, and the [Clueboard product line](http://clueboard.co/). +## Official website + +For an easy-to-read version of this document and the repository, check out [http://qmk.fm](http://qmk.fm). + +## Included Keyboards + +* [Planck](/keyboards/planck/) +* [Preonic](/keyboards/preonic/) +* [Atomic](/keyboards/atomic/) +* [ErgoDox EZ](/keyboards/ergodox_ez/) +* [Clueboard rev.1](/keyboards/clueboard1/) +* [Clueboard rev.2](/keyboards/clueboard2/) +* [Cluepad](/keyboards/cluepad/) + +The project also includes community support for [lots of other keyboards](/keyboards/). + +## Maintainers + QMK is developed and maintained by Jack Humbert of OLKB with contributions from the community, and of course, TMK. In fact, this repo used to be a fork of TMK, and we are incredibly grateful for his founding contributions to the firmware. We've had to break the fork due to purely technical reasons -- it simply became too different over time, and we've had to start refactoring some of the basic bits and pieces. We are huge fans of TMK, both the firmware and the person. :) This documentation is edited and maintained by Erez Zukerman of ErgoDox EZ. If you spot any typos or inaccuracies, please [open an issue](https://github.com/jackhumbert/qmk_firmware/issues/new). diff --git a/keyboards/readme.md b/keyboards/readme.md index 6f16efe49..b2173f6eb 100644 --- a/keyboards/readme.md +++ b/keyboards/readme.md @@ -1,5 +1,4 @@ # Included Keyboards - QMK runs on a diverse range of keyboards. Some of these keyboards are officially supported and see constant community contributions, while others are part of the repository for historical reasons. ## Official QMK Keyboards -- cgit v1.2.3 From bab6a8fde5a43eb6feeb81b83d29791cbef3af8e Mon Sep 17 00:00:00 2001 From: Anand Babu (AB) Periasamy Date: Wed, 22 Jun 2016 20:36:30 -0700 Subject: AB's practical planck keymap (#435) --- keyboards/planck/keymaps/ab/Makefile | 63 ++ keyboards/planck/keymaps/ab/README.md | 18 + keyboards/planck/keymaps/ab/compiled.hex | 1139 ++++++++++++++++++++++ keyboards/planck/keymaps/ab/keyboard-layout.json | 101 ++ keyboards/planck/keymaps/ab/keyboard-layout.png | Bin 0 -> 26123 bytes keyboards/planck/keymaps/ab/keyboard-photo.jpg | Bin 0 -> 252997 bytes keyboards/planck/keymaps/ab/keymap.c | 122 +++ 7 files changed, 1443 insertions(+) create mode 100644 keyboards/planck/keymaps/ab/Makefile create mode 100644 keyboards/planck/keymaps/ab/README.md create mode 100644 keyboards/planck/keymaps/ab/compiled.hex create mode 100644 keyboards/planck/keymaps/ab/keyboard-layout.json create mode 100644 keyboards/planck/keymaps/ab/keyboard-layout.png create mode 100644 keyboards/planck/keymaps/ab/keyboard-photo.jpg create mode 100644 keyboards/planck/keymaps/ab/keymap.c (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/ab/Makefile b/keyboards/planck/keymaps/ab/Makefile new file mode 100644 index 000000000..44a030ba3 --- /dev/null +++ b/keyboards/planck/keymaps/ab/Makefile @@ -0,0 +1,63 @@ +#---------------------------------------------------------------------------- +# On command line: +# +# make all = Make software. +# +# make clean = Clean out built project files. +# +# make coff = Convert ELF to AVR COFF. +# +# make extcoff = Convert ELF to AVR Extended COFF. +# +# make program = Download the hex file to the device. +# Please customize your programmer settings(PROGRAM_CMD) +# +# make teensy = Download the hex file to the device, using teensy_loader_cli. +# (must have teensy_loader_cli installed). +# +# make dfu = Download the hex file to the device, using dfu-programmer (must +# have dfu-programmer installed). +# +# make flip = Download the hex file to the device, using Atmel FLIP (must +# have Atmel FLIP installed). +# +# make dfu-ee = Download the eeprom file to the device, using dfu-programmer +# (must have dfu-programmer installed). +# +# make flip-ee = Download the eeprom file to the device, using Atmel FLIP +# (must have Atmel FLIP installed). +# +# make debug = Start either simulavr or avarice as specified for debugging, +# with avr-gdb or avr-insight as the front end for debugging. +# +# make filename.s = Just compile filename.c into the assembler code only. +# +# make filename.i = Create a preprocessed source file for use in submitting +# bug reports to the GCC project. +# +# To rebuild project do "make clean" then "make all". +#---------------------------------------------------------------------------- + +# Build Options +# change to "no" to disable the options, or define them in the makefile.mk in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/planck/keymaps/ab/README.md b/keyboards/planck/keymaps/ab/README.md new file mode 100644 index 000000000..d6280f074 --- /dev/null +++ b/keyboards/planck/keymaps/ab/README.md @@ -0,0 +1,18 @@ +# Practical keymap for Planck Ortholinear 40% Mechanical Keyboard +A practical keymap that emulates standard QWERTY keyboard for Planck. Once you get comfortable with this keymap, you may fork and customize it for your own needs. + +![Layout](keyboard-layout.png "Practical Keymap") +![Photo](keyboard-photo.jpg "Planck Keyboard") + +* Online keyboard layout editor: http://goo.gl/mlLAFZ + +# Programming Instructions: +Enter into programming mode and run the following command. +``` +$ sudo KEYMAP=ab make dfu +``` +# Notes +* Simultaneous RAISE+LOWER enters CUSTOM layer. You may add your own macros and custom keys here. +* RAISE and LOWER also acts as PgUp and PgDn when tapped. +* [CapsLock] also acts as [Ctrl] key when you press and hold. It is convenient for GNU Emacs users. +* Bracket keys are placed in the center of the keyboard for programmer's convenience. diff --git a/keyboards/planck/keymaps/ab/compiled.hex b/keyboards/planck/keymaps/ab/compiled.hex new file mode 100644 index 000000000..1723c4612 --- /dev/null +++ b/keyboards/planck/keymaps/ab/compiled.hex @@ -0,0 +1,1139 @@ +:100000000C948E020C94D5020C94D5020C94D5025B +:100010000C94D5020C94D5020C94D5020C94D50204 +:100020000C94D5020C94D5020C949A0D0C946C0E81 +:100030000C94D01B0C94D5020C94D5020C94D502D0 +:100040000C94D5020C9437030C94D5020C94D50271 +:100050000C94D5020C94381C0C94D5020C94D50247 +:100060000C94D5020C94D5020C94D5020C94D502B4 +:100070000C94D5020C94D5020C94D5020C94D502A4 +:100080000C94D5020C94D5020C94D5020C94D50294 +:100090000C94D5020C94D5020C94D5020C94D50284 +:1000A0000C94D5020C94D5020C94D5029D03A703A1 +:1000B000AF03E303C003CE03D503DC03D90EFB0E6D +:1000C000E90FFB0EE90F400F630FE90FB80FCB0FDD +:1000D000B512B512E412E4122313431399149914C0 +:1000E0004E139914FE13FE1365146E149914931491 +:1000F0000B140B140B140B140B140B140B140B1408 +:100100000B140B140B140B140B140B140B140B14F7 +:100110001B1429143014371441140000000000008F +:100120000000000000010204060A0F17202C3A4AC2 +:100130005D71879DB3C7DAE9F5FCFFFCF5E9DAC725 +:10014000B39D87715D4A3A2C20170F0A06040201FD +:1001500000000000000000000000010F020F011667 +:100160000216012C022C012D022D010F020F012875 +:100170000228000108020801100210010402040113 +:1001800006020601160216012C022C00011E021E98 +:10019000011F021F01200220012D022D011E021E3F +:1001A000011F021F01200220012D022D011E021E2F +:1001B000011F021F0120022001210221004BA14E3C +:1001C000A2392128322B0014001A0008001500174C +:1001D000001C0018000C00120013002A00E00004AC +:1001E000001600070009000A000B000D000E000FAA +:1001F0000033002800E1001D001B00060019000567 +:1002000000110010003600370038000320E00029FC +:1002100000E300E20001302C002C000230500052BC +:100220000051004F001E001F00200021002200236B +:100230000024002500260027002D002E00010001CB +:100240000001000100260227022F023002010001F6 +:10025000000100010001000100010001002F003039 +:1002600000340034020100010001000100043001EB +:10027000000100010001004B004B000100010001E2 +:1002800000010001003A003B003C003D003E003F01 +:1002900000400041004200430044004500010001CD +:1002A000000100010001000100010001002F022FE8 +:1002B000023100010001000100010001003500359C +:1002C00002310031022F002F0001000100007001F7 +:1002D000000100010001004E004E0001000100AAD3 +:1002E00000A900A8000100010001000100010001B7 +:1002F00000010001000100010001000100010001F6 +:1003000000010001000100010001000100010001E5 +:1003100000010001000100010001000100053001A1 +:10032000000630073001000100010001000100015A +:1003300000010001000100010001000100010001B5 +:1003400000010001002803540068006500200050EF +:10035000006C0061006E0063006B0020004B0065C4 +:1003600000790062006F0061007200640000002CE0 +:10037000034F007200740068006F006C0069006E2B +:100380000065006100720020004B0065007900628A +:10039000006F006100720064007300000004030934 +:1003A0000409026D00040100A0FA09040000010321 +:1003B000010100092111010001224000070581030C +:1003C00008000A09040100010301020009211101CA +:1003D0000001224D000705820308000A09040200FB +:1003E0000103000000092111010001223600070568 +:1003F000830308000A090403000103000000092127 +:1004000011010001223900070584031000011201C7 +:10041000100100000008EDFE606001000102000113 +:1004200005010906A101050719E029E715002501C5 +:1004300095087501810205081901290595057501C1 +:10044000910295017503910105071900297715009F +:100450002501957875018102C005010980A10185FA +:100460000216010026B7001A01002AB70075109580 +:10047000018100C0050C0901A101850316010026B8 +:100480009C021A01002A9C02751095018100C0058A +:10049000010902A1010901A1000509190129051598 +:1004A00000250195057501810295017503810105FE +:1004B00001093009311581257F95027508810609EA +:1004C000381581257F950175088106050C0A3802CB +:1004D0001581257F950175088106C0C005010906B3 +:1004E000A101050719E029E7150025019508750107 +:1004F00081029501750881010508190129059505F5 +:10050000750191029501750391010507190029FFF5 +:10051000150026FF00950675088100C011241FBE36 +:10052000CFEFDAE0DEBFCDBF04B603FE27C0809177 +:10053000000290910102A0910202B0910302873063 +:10054000904BA740B04BD1F41092000210920102E0 +:10055000109202021092030214BE84B7877F84BFF8 +:100560000FB6F894A8958091600088618093600030 +:10057000109260000FBEE0E0F8E3099511E0A0E002 +:10058000B1E0E0EDF6E402C005900D92A434B107AD +:10059000D9F722E0A4E4B1E001C01D92A030B20777 +:1005A000E1F70E94E10A0C9466230C940000089580 +:1005B000089581E0089508950C94D8020C94D9020E +:1005C0000C94DB020E94CD2123E030E0281B31098E +:1005D000220F209348010895282F2F9880918000A2 +:1005E000211108C0877F8093800010928D001092A7 +:1005F0008C001BC0886080938000233019F48FEF3B +:100600009FEF0FC083E090E0821B9109880F991F34 +:100610002FEF3FEFA90102C0569547958A95E2F763 +:10062000CA0190938D0080938C000C94E2020E948A +:10063000E20284E080934701109244010895279AD2 +:100640002F988FEF9FEF90938700809386008AE02A +:100650008093800089E1809381000E9436210C9470 +:1006600017030E941F036E9A769A0C94D7021F926A +:100670000F920FB60F9211242F933F938F939F9356 +:10068000EF93FF93E0914501F0914601CF01019670 +:1006900090934601809345010090470102C0F69572 +:1006A000E7950A94E2F7EF7380914401823019F4E0 +:1006B000E03251F404C0813039F4EF3329F48091F1 +:1006C0006F008D7F80936F00F0E0E65EFE4FE49157 +:1006D00021E031E0E29FC001E39F900D11240090E2 +:1006E000480102C0969587950A94E2F790938D0091 +:1006F00080938C00FF91EF919F918F913F912F916B +:100700000F900FBE0F901F901895CF93DF93EC01C1 +:100710000E94CF1CBE0180E090E0DF91CF910C944D +:10072000C418462F50E04830510508F04CC0DC0199 +:10073000FA01EA5AFF4F0C94162312968C918823E3 +:1007400009F441C081E090E00E9485033CC012960C +:100750008C91882311F081E007C081E00EC01296D1 +:100760008C91882349F082E00E94411943E061E0C6 +:1007700082E00E947E0527C082E00E946219F6CFC7 +:1007800012968C91882331F085EE0E9459110E94B7 +:100790008D2119C085EE0E94211215C012968C91F0 +:1007A000882389F08CE891E0089512968C91882333 +:1007B00051F083E791E0089512968C91882319F007 +:1007C0008AE591E0089580E090E0089581E0089541 +:1007D0000C94E60308950F931F93CF93DF938C013E +:1007E000FC01C081D181CE010E94FD19BE010E9491 +:1007F0006407EC01B8010E94E803882309F478C17A +:10080000F8018281882309F463C080915801811125 +:1008100027C0C431F0E7DF0709F012C10E94EA03E4 +:1008200081E0809358010E94021C909357018093AD +:10083000560110924B0110924D0110924C011092F2 +:100840004F0110924E0110925101109250011092DE +:10085000530110925201109255011092540148C157 +:1008600080915601909157010E940E1C883C910581 +:1008700070F480914B01E82FF0E0EE0FFF1FE45B76 +:10088000FE4FD183C0838F5F80934B0131C1C43150 +:1008900020E7D20708F024C1C23080E7D80710F55E +:1008A000C11590E7D90709F0DAC0F80182818823E1 +:1008B00009F4BFC00E940415FFEF24E38CE0F1505F +:1008C00020408040E1F700C000000E945D1C10C184 +:1008D000C431F0E7DF0708F0CFC0C23020E7D2070D +:1008E00008F49BC0F8018281882309F4A2C00E9409 +:1008F000BC1C811102C00E949D1C0E94D41C90E06F +:100900009093F1018093F001C230F0E7DF0721F40A +:100910008091F00181607AC0C33020E7D20721F4D2 +:100920008091F001826072C0C43080E7D80721F462 +:100930008091F00184606AC0C53090E7D90719F44E +:100940008091F00127C0C630E0E7DE0721F48091F6 +:10095000F00180615BC0C730F0E7DF0721F48091D0 +:10096000F001806253C0C83020E7D20721F48091A3 +:10097000F00180644BC0C93080E7D80721F4809132 +:10098000F001806843C0CA3090E7D90729F480910C +:10099000F001846088603AC0CB30E0E7DE0721F4E4 +:1009A0008091F0018E7F32C0CC30F0E7DF0721F478 +:1009B0008091F0018D7F2AC0CD3020E7D20721F44D +:1009C0008091F0018B7F22C0CE3080E7D80719F4E8 +:1009D0008091F0011AC08091F001CF3090E7D907E3 +:1009E00011F48F7E13C0C031E0E7DE0711F48F7D74 +:1009F0000DC0C131F0E7DF0711F48F7B07C0C231B2 +:100A0000D04711F48F7702C08B7F877F8093F001EE +:100A10008091F0010E94D81C6BC0C11580E7D807F7 +:100A200041F0C130D047F1F081E0809349018093DB +:100A30004A01C801DF91CF911F910F910C94DE0202 +:100A4000C43120E7D20708F04BC0C23080E7D80796 +:100A500008F048CFC11590E7D90709F42BCFC13072 +:100A6000D04711F7F8018281882319F38091DF01C3 +:100A700081608093DF013CC0C333E0E7DE07A1F46F +:100A8000F8018281882321F01092490182E017C089 +:100A900080914901811106C086E20E94591186E2C7 +:100AA0000E94211282E019C0C433D04709F0BCCFA4 +:100AB000F8018281882331F010924A0180E20E947D +:100AC000701216C080914A01811106C087E20E940F +:100AD000591187E20E94211280E20E94771208C019 +:100AE000C333F0E7DF0761F2C433D04709F39CCF8B +:100AF00080E0DF91CF911F910F910895CF92DF9207 +:100B0000EF92FF920F931F9301E010E020E030E09E +:100B10006801790104C0CC0CDD1CEE1CFF1C8A9519 +:100B2000D2F704C0000F111F221F331F6A95D2F79E +:100B30000C291D292E293F29C090C201D090C30144 +:100B4000E090C401F090C501C022D122E222F3223C +:100B5000842FC016D106E206F30641F41F910F91CF +:100B6000FF90EF90DF90CF900C9441191F910F915F +:100B7000FF90EF90DF90CF900C9462190C943103AA +:100B80000C94DC022CE0729FF001112430E3839F6F +:100B9000E00DF11D1124E60FF11DEE0FFF1FEB53C9 +:100BA000FE4F859194910E947607811540E5940748 +:100BB00008F047C0811520E4920708F013C1883E71 +:100BC000910520F5803E910508F07CC1883A910599 +:100BD00078F4853A910508F0A5C08130910509F4B3 +:100BE00071C108F42EC18430910508F06BC129C190 +:100BF0008B3B910508F4A1C0803C910508F421C10C +:100C0000FC01EE0FFF1FE35CFF4FE6C0811530E2F1 +:100C1000930758F4811541E0940708F053C1803FD1 +:100C2000910508F40EC190650895811520E392079F +:100C300008F0D5C0FC01FF70EE0FFF1FE354FE4F1C +:100C4000CBC0811535E5930708F043C0811544E515 +:100C5000940708F0DEC0811522E5920708F581159A +:100C600031E5930708F0C1C0482F437021E030E020 +:100C700002C0220F331F4A95E2F73C68AC0164E0E2 +:100C8000569547956A95E1F74370342B8F7086959A +:100C9000869540E2849FC0011124822B932B0895F6 +:100CA000282F26952695AC0143705527811593452D +:100CB00008F0A0C080E2289F9001112481E090E01C +:100CC00002C0880F991F4A95E2F7822B932B9C68EC +:100CD00008958F3240E7940790F48F3120E7920710 +:100CE00008F0A2C0811536E5930708F497C09C016F +:100CF00030562115304108F0A4C09F7093C0803356 +:100D000020E7920709F497C008F492C0813340E7C6 +:100D1000940709F493C08233904709F092C080E0B1 +:100D200093ED0895853A910509F48EC0863A9105B0 +:100D300009F08DC082E890E40895883A910509F49D +:100D400089C0893A910509F488C08A3A910509F465 +:100D500087C08B3A910509F486C08C3A910509F455 +:100D600085C08D3A910509F484C0803B910509F452 +:100D700083C08E3A910509F482C08F3A910509F437 +:100D800081C0813B910509F480C0823B910509F443 +:100D90007FC0833B910509F47EC0843B910509F433 +:100DA0007DC0853B910509F47CC0863B910509F423 +:100DB0007BC0873B910509F47AC0883B910509F413 +:100DC00079C0893B910509F478C08A3B910509F403 +:100DD00077C080E094E408958591949108959927CF +:100DE000906C08959F70906A0895982F8827816F5E +:100DF000906A089590E2299F9001112481E090E08B +:100E000002C0880F991F4A95E2F7822B932B9A68AC +:100E10000895982F8827846F906A08958F71992775 +:100E2000982F8827906208958F519047946D089568 +:100E300080E091ED089580E090ED089580E092EDDE +:100E4000089580E090E0089581E890E4089583E8B3 +:100E500090E4089582EE94E4089589EE94E4089570 +:100E60008AEE94E4089585EB94E4089586EB94E487 +:100E7000089587EB94E408958CEC94E408958DEC48 +:100E800094E4089583E895E408958AE895E4089544 +:100E900082E995E4089584E995E4089581E296E471 +:100EA000089583E296E4089584E296E4089585E245 +:100EB00096E4089586E296E4089587E296E408951C +:100EC0008AE296E4089508959CE0799FF001112448 +:100ED00090E3899FE00DF11D1124E60FF11DEE0F47 +:100EE000FF1FEB53FE4F8591949108958238910531 +:100EF00049F1B0F48133910509F458C048F48932BE +:100F0000910509F44EC08A32910509F454C0089540 +:100F10008533910509F440C08933910599F008950E +:100F2000833E910529F138F4803E910591F0823E8F +:100F30009105A1F00895863E9105F9F0873E91054F +:100F400031F108952091F00120FD3AC021FD38C013 +:100F500008958091F00180FD35C032C08091F0018C +:100F600082FF32C08091F00184FD30C083EE39C031 +:100F70008091F00182FD28C0F5CF8091F00183FFC0 +:100F800027C08091F00184FD21C087EE2AC08091A6 +:100F9000F00183FD1DC0F5CF8091F00185FD1AC0E1 +:100FA0001BC08091F00185FD17C014C08091F00135 +:100FB00086FD14C015C08091F00186FD11C00EC0E1 +:100FC00080EE0FC089E30DC082EE0BC080E009C047 +:100FD00086EE07C089E205C085E303C08AE201C04E +:100FE00081E390E008950C94E002E82FF0E0EF5DDB +:100FF000FE4F8081E82FEF70F0E082958F7021E046 +:1010000030E0A90102C0440F551F8A95E2F740A3C2 +:1010100008950F931F93CF93DF93C3E0D0E001E0D7 +:1010200010E0FE01EF5DFE4F8081E82FEF70F0E0F1 +:1010300021A182958F70A80102C0440F551F8A9587 +:10104000E2F7CA01822B81A38C2F0E94F50721971A +:1010500040F78BE090E061E070E0FC01EB5EFE4F5A +:101060002081E22FEF70F0E042A122952F70DB018A +:1010700002C0AA0FBB1F2A95E2F79D01242B22A3D1 +:10108000019758F7DF91CF911F910F9108950F931A +:101090001F93CF93DF9385B7806885BF85B780683E +:1010A00085BFC3E0D0E001E010E0FE01EF5DFE4F40 +:1010B0008081E82FEF70F0E021A182958F70A80168 +:1010C00002C0440F551F8A95E2F7CA01822B81A303 +:1010D0008C2F0E94F507219740F78BE090E061E0AC +:1010E00070E0FC01EB5EFE4F2081E22FEF70F0E03C +:1010F00042A122952F70DB0102C0AA0FBB1F2A95C7 +:10110000E2F79D01242B22A3019758F7DF91CF919D +:101110001F910F910C94BE05EF92FF920F931F93B6 +:10112000CF93DF9301E611E0C3E0EE24E394F12CCA +:10113000D5E08C2F0E94F5078BE090E040E050E076 +:10114000FC01EB5EFE4F6081E62FEF70F0E020A126 +:1011500030E062956F7002C0359527956A95E2F789 +:1011600020FD09C09701082E02C0220F331F0A94E8 +:10117000E2F7422B532B019718F7F80192918291D5 +:101180008F018417950721F051834083D09300018C +:101190008C2F0E94F507C15060F68091000187FDF9 +:1011A0002CC08150809300018F3F39F08FE99FE080 +:1011B0000197F1F700C0000020C080915F0190917D +:1011C0006001909368018093670180915D01909127 +:1011D0005E01909366018093650180915B0190911F +:1011E0005C01909364018093630180915901909117 +:1011F0005A0190936201809361010E94C00581E0D1 +:10120000DF91CF911F910F91FF90EF900895E82FFC +:10121000F0E0EE0FFF1FEF59FE4F8081918108959E +:1012200008950F931F93CF9309E611E0C0E0F801F2 +:10123000929182918F010E94781BC80FF1E00136D4 +:101240001F07A9F78C2FCF911F910F9108958091BF +:1012500079010895CF93DF9300D01F92CDB7DEB709 +:101260009C018091F601843019F593E099833B83CA +:101270002A839093E9008FEF9091E800815095FDCB +:1012800006C095ED9A95F1F700008111F5CF809198 +:10129000E80085FF0DC040E050E063E070E0CE0163 +:1012A00001960E948A0B8091E8008E778093E80077 +:1012B0000F900F900F90DF91CF910895CF93DF9310 +:1012C00000D01F92CDB7DEB72091F601243021F572 +:1012D00022E029839B838A8383E08093E9008FEF58 +:1012E0009091E800815095FD06C095ED9A95F1F733 +:1012F00000008111F5CF8091E80085FF0DC040E02E +:1013000050E063E070E0CE0101960E948A0B80916C +:10131000E8008E778093E8000F900F900F90DF9198 +:10132000CF9108952091F6012430F1F422E020932A +:10133000E9002FEF3091E800215035FD06C035ED72 +:101340003A95F1F700002111F5CF2091E80025FF33 +:101350000BC040E050E065E070E00E948A0B809195 +:10136000E8008E778093E8000895CF93DF93EC0137 +:101370009091F601943009F046C080910B018823CA +:10138000D9F080910C018823B9F09093E9008FEF98 +:101390009091E800815095FD06C095E19A95F1F78E +:1013A00000008111F5CF8091E80085FF2CC040E05E +:1013B00050E060E170E017C081E08093E9008FEFBA +:1013C0009091E800815095FD06C095ED9A95F1F752 +:1013D00000008111F5CF8091E80085FF14C040E046 +:1013E00050E068E070E0CE010E948A0B8091E80036 +:1013F0008E778093E80080E1FE01A9E6B1E00190DC +:101400000D928A95E1F7DF91CF9108958091F501D2 +:10141000811109C00E941F0D0E947C0D8091E20085 +:1014200084608093E20008951092F5010895089574 +:1014300008950C94C51B42E061EC81E00E94990C78 +:1014400042E061EC82E00E94990C42E061EC83E0B2 +:101450000E94990C42E161EC84E00C94990C80911B +:10146000F801833009F455C030F4813071F08230D6 +:1014700009F48EC008958A3009F47AC08B3009F4DB +:1014800060C0893009F09CC020C08091F701813A8A +:1014900009F096C08091E800877F8093E8008091F2 +:1014A000FB019091FC01892B21F460E189E691E038 +:1014B00003C060E080E090E070E00E94D50B809176 +:1014C000E8008B778093E80008958091F7018132DE +:1014D00009F076C08091FB019091FC01009719F012 +:1014E000039709F06DC08091E800877F8093E80042 +:1014F0008091E80082FD05C08091F6018111F8CF4E +:101500005FC08091F100809379018091E8008B7732 +:1015100053C08091F701813A09F052C08091FB01DC +:101520009091FC01892B09F04BC08091E800877FE6 +:101530008093E8008091E80080FFFCCF80910B0150 +:1015400036C08091F7018132D9F58091FB019091ED +:10155000FC01892BA9F58091E800877F8093E80042 +:101560000E94CE0C8091F90180930B010C9404151C +:101570008091F701813221F58091E800877F809387 +:10158000E8000E94CE0C8091FA0180937A010895C0 +:101590008091F701813AA1F48091E800877F8093E0 +:1015A000E8008091E80080FFFCCF80917A01809371 +:1015B000F1008091E8008E778093E8000C94CE0CC7 +:1015C000089584B7877F84BF0FB6F894A89580915B +:1015D0006000886180936000109260000FBE80E818 +:1015E00080936100109261000E9471100E941F0D93 +:1015F0000E947C0D8091E20084608093E2007894E8 +:101600000E9402100E94731081E091E00E941D1060 +:101610008091F601853069F40E94841B8091F40169 +:101620008823B1F30E94B41B882391F30E94740BAA +:10163000EFCF0E947B10ECCF292F332723303105C9 +:10164000C9F064F42130310581F02230310509F010 +:1016500043C08DE690E021EA33E042C021323105FB +:10166000F1F02232310541F137C082E190E02EE005 +:1016700034E036C099278130910541F082309105E0 +:1016800041F0892B49F5EDE9F3E005C0EFE6F3E021 +:1016900002C0E5E4F3E0849190E09F0121C0643052 +:1016A000D8F4E62FF0E0EE0FFF1FEF5CFE4F208135 +:1016B000318189E090E014C0643070F470E0FB0187 +:1016C000EE0FFF1FE75DFE4F20813181FB01EB5DD7 +:1016D000FE4F808190E004C080E090E020E030E0A8 +:1016E000FA0131832083089580E189BD82E189BDBB +:1016F00009B400FEFDCF8091D8008F7D8093D80083 +:101700008091E00082608093E0008091E00081FDA4 +:10171000FCCF0895CF92DF92EF92FF920F931F9329 +:10172000CF93DF93EC018B016A010E94ED0C8111D4 +:1017300033C0C114D10439F0F60180819181081BB6 +:10174000190BC80FD91FE12CF12C0115110519F146 +:101750008091E80085FD16C08091E8008E77809327 +:10176000E800C114D10449F0F60180819181E80EAE +:10177000F91EF182E08285E00FC00E94ED0C882303 +:1017800021F30AC089918093F10001501109FFEF04 +:10179000EF1AFF0ADACF80E0DF91CF911F910F910E +:1017A000FF90EF90DF90CF9008952091FD01309150 +:1017B000FE012617370748F06115710539F42091AD +:1017C000E8002E772093E80001C0B90140E06115E0 +:1017D0007105A9F12091F601222309F443C02530B7 +:1017E00009F442C02091E80023FD40C02091E800A8 +:1017F00022FD32C02091E80020FFE9CF4091F300A4 +:101800002091F20030E0342BFC01CF01611571050D +:1018100059F02830310540F481918093F1006150F6 +:1018200071092F5F3F4FF1CF41E02830310509F0BA +:1018300040E02091E8002E772093E800C8CF4111C6 +:10184000C9CF0AC08091F601882361F0853061F02C +:101850008091E80083FD0AC08091E80082FFF2CF0A +:1018600080E0089582E0089583E0089581E008957E +:101870002091FD013091FE012617370748F06115D0 +:10188000710539F42091E8002E772093E80001C01B +:10189000B901FC0120E06115710591F18091F6011B +:1018A000882309F440C0853009F43FC08091E800E6 +:1018B00083FD3DC08091E80082FD2FC08091E8004B +:1018C00080FFE9CF2091F3008091F20090E0922B0D +:1018D0006115710559F08830910540F424912093E9 +:1018E000F1003196615071090196F2CF21E008971D +:1018F00009F020E08091E8008E778093E800CBCF5C +:101900002111CCCF0AC08091F601882361F0853087 +:1019100061F08091E80083FD0AC08091E80082FFB9 +:10192000F2CF80E0089582E0089583E0089581E099 +:101930000895982F973058F59093E900981739F04B +:101940007091EC002091ED005091F00003C0242F25 +:10195000762F50E021FF19C03091EB003E7F30938D +:10196000EB003091ED003D7F3093ED003091EB00C6 +:1019700031603093EB007093EC002093ED005093B6 +:10198000F0002091EE0027FF07C09F5FD3CF8F703C +:101990008093E90081E0089580E008958091F70147 +:1019A00087FF11C08091E80082FD05C08091F6019B +:1019B0008111F8CF11C08091E8008B770BC0809126 +:1019C000F601882349F08091E80080FFF8CF8091EC +:1019D000E8008E778093E80008952091E40030912C +:1019E000E50095E64091EC00842F817040FF22C015 +:1019F0008091E80080FD1CC08091F601882391F061 +:101A0000853091F08091EB0085FD10C04091E4009D +:101A10005091E5004217530729F39A01915011F7AD +:101A200084E0089582E0089583E0089581E00895B8 +:101A300080E008954091E80042FFDECF08950E94C3 +:101A40008D0D0E94950DE0EEF0E080818160808335 +:101A5000E8EDF0E080818F77808319BCA7EDB0E0DE +:101A60008C918E7F8C9380818F7E80831092F50184 +:101A700008950F931F93CF93DF930E948D0D0E94C3 +:101A8000950DC8EDD0E088818F7788838881806844 +:101A9000888388818F7D888319BC1092F60110920B +:101AA000F2011092F4011092F30100EE10E0F8013F +:101AB00080818B7F808388818160888342E060E0C1 +:101AC00080E00E94990CE1EEF0E080818E7F8083BF +:101AD000E2EEF0E080818160808380818860808395 +:101AE000F80180818E7F8083888180618883DF9187 +:101AF000CF911F910F910895E8EDF0E080818F7EE6 +:101B00008083E7EDF0E080818160808384E082BFA4 +:101B100081E08093F5010C94390DE8EDF0E08081CF +:101B20008E7F80831092E20008951092DA00109266 +:101B3000E10008951F920F920FB60F9211242F9378 +:101B40003F934F935F936F937F938F939F93AF9345 +:101B5000BF93EF93FF938091E10082FF0BC08091D0 +:101B6000E20082FF07C08091E1008B7F8093E1005B +:101B70000E9401108091DA0080FF1FC08091D80080 +:101B800080FF1BC08091DA008E7F8093DA00809105 +:101B9000D90080FF0DC080E189BD82E189BD09B413 +:101BA00000FEFDCF81E08093F6010E94060A05C089 +:101BB00019BC1092F6010E94140A8091E10080FF86 +:101BC00019C08091E20080FF15C08091E2008E7FF5 +:101BD0008093E2008091E20080618093E200809136 +:101BE000D80080628093D80019BC85E08093F6010C +:101BF0000E94180A8091E10084FF30C08091E200C9 +:101C000084FF2CC080E189BD82E189BD09B400FE5A +:101C1000FDCF8091D8008F7D8093D8008091E10026 +:101C20008F7E8093E1008091E2008F7E8093E200BE +:101C30008091E20081608093E2008091F20188232C +:101C400011F084E007C08091E30087FD02C081E0CD +:101C500001C083E08093F6010E94190A8091E1009F +:101C600083FF29C08091E20083FF25C08091E100BD +:101C7000877F8093E10082E08093F6011092F20169 +:101C80008091E1008E7F8093E1008091E2008E7F61 +:101C90008093E2008091E20080618093E20042E064 +:101CA00060E080E00E94990C8091F0008860809351 +:101CB000F0000E94170AFF91EF91BF91AF919F91A1 +:101CC0008F917F916F915F914F913F912F910F90E5 +:101CD0000FBE0F901F9018951F920F920FB60F9284 +:101CE00011242F933F934F935F936F937F938F9321 +:101CF0009F93AF93BF93CF93DF93EF93FF93C091E5 +:101D0000E900CF708091EC00D82FD17080FDD0E831 +:101D10001092E9008091F000877F8093F000789422 +:101D20000E94B00E1092E9008091F00088608093CC +:101D3000F000CD2BCF70C093E900FF91EF91DF91C0 +:101D4000CF91BF91AF919F918F917F916F915F9153 +:101D50004F913F912F910F900FBE0F901F901895AC +:101D60001F93CF93DF93CDB7DEB7AA970FB6F89442 +:101D7000DEBF0FBECDBFE7EFF1E088E08E0F9091A0 +:101D8000F10091938E13FBCF0E942F0A8091E800FF +:101D900083FF1FC18091F7019091F801492F50E016 +:101DA0004A30510508F015C1FA01E25AFF4F0C9470 +:101DB0001623803881F0823809F00BC18091FB0135 +:101DC0008F708093E9008091EB0085FB882780F974 +:101DD0001092E90006C08091F3019091F4019111F5 +:101DE00082609091E800977F9093E8008093F100E3 +:101DF0001092F100C8C0282F2D7F09F0EAC0882377 +:101E000019F0823061F0E5C08091F901813009F06C +:101E1000E0C0933009F080E08093F4012BC0809102 +:101E2000F901811127C08091FB018F7009F4D1C0A5 +:101E30008093E9002091EB0020FF1CC0933021F437 +:101E40008091EB00806214C09091EB0090619093C0 +:101E5000EB0021E030E0A90102C0440F551F8A9534 +:101E6000E2F74093EA001092EA008091EB0088606C +:101E70008093EB001092E9008091E800877F86C094 +:101E80008111A7C01091F9011F778091E30080783C +:101E9000812B8093E3008091E800877F8093E800A6 +:101EA0000E94CE0C8091E80080FFFCCF8091E3007F +:101EB00080688093E300111102C082E001C083E0DA +:101EC0008093F60186C08058823008F082C08091ED +:101ED000F9019091FA018C3D53E0950779F583E083 +:101EE0008A838AE289834FB7F894DE01139620E053 +:101EF0003EE051E2E32FF0E050935700E49120FFE1 +:101F000003C0E295EF703F5FEF708E2F90E0EA30F4 +:101F100010F0C79601C0C0968D939D932F5F24311A +:101F200049F74FBF8091E800877F8093E8006AE21D +:101F300070E0CE0101960E94D50B14C0AE014F5F38 +:101F40005F4F6091FB010E941C0BBC01892B09F4BF +:101F500040C09091E800977F9093E80089819A8132 +:101F60000E94380C8091E8008B778093E80031C0A4 +:101F7000803879F58091E800877F8093E800809130 +:101F8000F2018093F1008091E8008E778093E80061 +:101F90000E94CE0C1EC081111CC09091F90192309C +:101FA000C0F48091E800877F8093E8009093F2016D +:101FB0000E94CE0C8091F201811106C08091E30055 +:101FC00087FD02C081E001C084E08093F6010E9499 +:101FD0001B0A8091E80083FF0AC08091E800877F98 +:101FE0008093E8008091EB0080628093EB00AA96DA +:101FF0000FB6F894DEBF0FBECDBFDF91CF911F911A +:1020000008950895CF938091F6018823A1F0C0919F +:10201000E900CF709091EC00892F817090FD80E8ED +:10202000C82B1092E9008091E80083FD0E94B00E59 +:10203000CF70C093E900CF91089590938001809371 +:102040007F010895E0917F01F0918001309721F0A8 +:102050000190F081E02D099480E00895E0917F01E6 +:10206000F0918001309721F00280F381E02D0994F6 +:102070000895E0917F01F0918001309721F0048074 +:10208000F581E02D0994089520917D0130917E0124 +:102090008217930771F090937E0180937D01E09108 +:1020A0007F01F0918001309721F00680F781E02DCB +:1020B0000994089520917B0130917C018217930748 +:1020C00071F090937C0180937B01E0917F01F0910E +:1020D0008001309721F00084F185E02D0994089566 +:1020E00008950C9470100E94F91B0E9447080E94EA +:1020F0007F1C0C9436215F926F927F928F929F92F9 +:10210000AF92BF92CF92DF92EF92FF920F931F9305 +:10211000CF93DF9300D000D01F92CDB7DEB70E94DF +:102120008C089AE8C92E91E0D92E03E010E0AA2489 +:10213000A394B12C502E802F0E9407094C01F60168 +:10214000729062906F016826792661147104A1F47F +:102150000150110978F78FEF89838A831B820E94CF +:10216000021C8160782F9D838C8349815A816B8109 +:102170008D810E942B1138C08091DF0181FD0E946A +:1021800010092BE030E07501022E02C0EE0CFF1C9E +:102190000A94E2F7C70186219721892B09F1298347 +:1021A0005A828E209F2091E0892809F490E09B8339 +:1021B0000E94021C8160782F9D838C8349815A8103 +:1021C0006B818D810E942B11000F111FF801EE57BA +:1021D000FE4F80819181E826F926F182E08204C0D9 +:1021E0002150310980F6B4CF0E94601E1091810108 +:1021F0000E9422101817D1F00E94221080938101B2 +:102200000F900F900F900F900F90DF91CF911F9133 +:102210000F91FF90EF90DF90CF90BF90AF909F9085 +:102220008F907F906F905F900C94F3070F900F90BA +:102230000F900F900F90DF91CF911F910F91FF9012 +:10224000EF90DF90CF90BF90AF909F908F907F9056 +:102250006F905F900895CF93DF93CDB7DEB72B9744 +:102260000FB6F894DEBF0FBECDBF4F835887698786 +:102270007A878B87DE01119686E0FD0111928A959F +:10228000E9F785E0FE01379601900D928A95E1F716 +:1022900049815A816B817C818D819E810E94A21728 +:1022A0002B960FB6F894DEBF0FBECDBFDF91CF9156 +:1022B0000895CF93882309F4C2C0C82F823859F4F7 +:1022C0000E94221081FDBBC089E30E947C1A0E94FB +:1022D000491B89E30CC0833879F40E94221080FDE9 +:1022E000AEC083E50E947C1A0E94491B83E50E94D0 +:1022F000BE1ACF910C94491B843859F40E942210C5 +:1023000082FD9DC087E40E947C1A0E94491B87E4DD +:10231000EECF8CEF8C0F813A48F48C2F0E949F20D7 +:1023200081118DC08C2F0E947C1AE3CF80E28C0F2C +:10233000883048F4C77081E001C0880FCA95EAF779 +:102340000E94021BD6CF8BE58C0F833078F4C53A00 +:1023500029F0C63A31F083E890E005C081E890E0CA +:1023600002C082E890E0CF910C94441088E58C0F75 +:10237000833108F064C0C83A39F1C93A41F1CA3A28 +:1023800049F1CB3A51F1CC3A59F1CD3A61F1C03B28 +:1023900069F1CE3A71F1CF3A79F1C13B81F1C23B9B +:1023A00089F1C33B91F1C43B99F1C53BA1F1C63B17 +:1023B000A9F1C73BB1F1C83BB9F1C93BC1F1CA3B77 +:1023C000C9F180E090E038C082EE90E035C089EE3F +:1023D00090E032C08AEE90E02FC085EB90E02CC0F8 +:1023E00086EB90E029C087EB90E026C08CEC90E073 +:1023F00023C08DEC90E020C083E891E01DC08AE806 +:1024000091E01AC082E991E017C084E991E014C01C +:1024100081E292E011C083E292E00EC084E292E099 +:102420000BC085E292E008C086E292E005C087E238 +:1024300092E002C08AE292E0CF910C945A10CF91C0 +:102440000895882309F44BC0823859F40E94221061 +:1024500081FF45C089E30E947C1A0E94491B89E3E1 +:102460000CC0833871F40E94221080FF38C083E5CD +:102470000E947C1A0E94491B83E50E94BE1A0C949C +:10248000491B843859F40E94221082FF28C087E437 +:102490000E947C1A0E94491B87E4EFCF9CEF980FA3 +:1024A000913A58F390E2980F983050F4877091E089 +:1024B00001C0990F8A95EAF7892F0E94081BDFCF88 +:1024C0009BE5980F933020F480E090E00C9444104A +:1024D000885A833120F480E090E00C945A100895DB +:1024E000882321F00E94021B0C94491B0895882325 +:1024F00021F00E94081B0C94491B08957F928F9233 +:102500009F92AF92BF92CF92DF92EF92FF920F9382 +:102510001F93CF93DF931F92CDB7DEB77C01C62EFA +:10252000772EFC01058102950F70128111110E9416 +:102530001F1B0E94751A882379F0112369F080E22D +:102540008C0D883048F082E00E945E1A0E94751A55 +:1025500091E0D82ED92601C0D12CE72DE295EF705D +:10256000F0E0E859FF4F0C941623872D807F072D4C +:102570000F70882311F00295007F112389F000234A +:1025800009F499C180E28C0D883020F4802F0E94DC +:10259000021B03C0802F0E94121B0E94491B8BC18B +:1025A0008C2D0E942112002309F4C3C180E28C0DFE +:1025B000883020F4802F0E94081B03C0802F0E94C7 +:1025C000181B0E94491BB5C1872D807F972D9F70D6 +:1025D000803211F4892F03C0892F8295807FCC200F +:1025E00021F0F1E0CF16A1F01DC0112339F0002336 +:1025F00019F1013009F50E94321B9BC1002319F02B +:10260000013009F496C189830E94351B898110C16C +:10261000112321F0063008F08CC10EC0053008F0FF +:1026200088C106C1112359F0002331F0F7019581CB +:1026300090FF41C19F7095830E9470127AC1002360 +:1026400009F4F6C03EC1872D86958695837090E08B +:10265000009719F0019761F06CC1112321F08C2DC6 +:10266000972D937002C080E090E00E94441061C1F9 +:10267000112321F08C2D972D937002C080E090E003 +:102680000E945A1056C18C2D112319F00E94681D0A +:1026900002C00E94D01D0E94551E4BC1872D837021 +:1026A00009F052C0111145C18C2D82958695877015 +:1026B000880F880F9C2D9F70892E912CA12CB12CF6 +:1026C000082E04C0880C991CAA1CBB1C0A94D2F7C3 +:1026D000C4FE14C00FE010E020E030E0B901A80112 +:1026E00004C0440F551F661F771F8A95D2F7CB0190 +:1026F000BA01609570958095909503C060E070E098 +:10270000CB01272D26952695237030E02230310508 +:1027100069F02330310589F0682979298A299B29B4 +:102720002130310571F00E94EA1803C16829792926 +:102730008A299B290E940619FCC00E94EA18C5013B +:10274000B4010E94CE18F5C0112319F0872D8170B5 +:1027500001C08695882309F4ECC08C2D829586955E +:102760008770880F880F9C2D9F70892E912CA12C2B +:10277000B12C082E04C0880C991CAA1CBB1C0A94FE +:10278000D2F7C4FE14C00FE010E020E030E0B90141 +:10279000A80104C0440F551F661F771F8A95D2F702 +:1027A000CB01BA01609570958095909503C060E06B +:1027B00070E0CB01272D269526952370422F50E0FF +:1027C0004230510569F04330510589F06829792973 +:1027D0008A299B294130510571F00E94C419A9C072 +:1027E000682979298A299B290E94E019A2C00E94A0 +:1027F000C419C501B4010E94A8199BC08C2D90E09A +:10280000FC01E05EF109E531F10508F050C0E8583F +:10281000FF4F0C9416230C2D0F70872D8F711123F1 +:1028200021F00E944119802F07CF0E946219802F4A +:102830000E9477127EC0112341F0053008F079C064 +:10284000872D8F710E94871974C0063008F071C0FF +:10285000F7CF112339F0872D8F710E94411969C07C +:102860001123C9F3872D8F710E94621962C0112351 +:1028700029F0872D8F710E942C195BC00E942219AC +:1028800058C0112351F0172D1F71812F0E9441193B +:1028900063E0812F0E94551A4CC081E00E945E1AAD +:1028A000023008F446C082E00E945E1A42C0112342 +:1028B00031F0002381F28C2D0E9459113AC000237F +:1028C00089F28C2D0E94211234C0472D4F706C2D3F +:1028D000C7010E9491030E9446182BC0111129C004 +:1028E000472D4F7050E042305105B9F04CF441157E +:1028F000510581F041305105E1F40E945E2119C07B +:102900004330510569F04430510599F48C2D0E94F3 +:10291000B0210FC00E9447210CC00E947A2109C03B +:102920000E948D2106C0472D4F706C2DC7010E945B +:102930006307DD20F9F00E94511A80FD1BC0F701EA +:1029400012820E944B1A0E944119C7010E94C914A9 +:102950000E944B1A0F90DF91CF911F910F91FF9022 +:10296000EF90DF90CF90BF90AF909F908F907F902F +:102970000C9462190F90DF91CF911F910F91FF90EE +:10298000EF90DF90CF90BF90AF909F908F907F900F +:1029900008950F931F93CF93DF93EC018881998162 +:1029A0002B813C81232BB9F09F3F11F48F3F99F08D +:1029B000CE010E94EB03882371F0688179818A81BE +:1029C0000E94471A8C010E94FC190E94C318B8018A +:1029D000CE010E947E12DF91CF911F910F91089539 +:1029E0000E941F1B0E942F1B0E94F41A0E94491B69 +:1029F0000E94051F0E94551E80E090E00E94441036 +:102A000080E090E00C945A100E940F1B0C94F0147C +:102A10000E943C1A292F22952F7030E02C3031056E +:102A20004CF42A3031056CF4225031092230310542 +:102A3000A8F407C02C30310569F02F30310551F072 +:102A40000DC0803F69F018F4803E40F409C0843F17 +:102A500029F406C093FB882780F9089580E0089543 +:102A600081E00895CF93DF9300D000D01F92CDB7BF +:102A7000DEB70F900F900F900F900F90DF91CF91D6 +:102A80000895CF93DF9300D000D000D0CDB7DEB74C +:102A900026960FB6F894DEBF0FBECDBFDF91CF9163 +:102AA00008951F93CF93DF93C0918A0116E0809120 +:102AB0008B01C81799F0D0E01C9FF0011D9FF00D0D +:102AC0001124E457FE4F40815181628173818481DA +:102AD00095810E9441152196C770E9CFDF91CF9172 +:102AE0001F9108954091BC015091BD016091BE01BC +:102AF0007091BF018091C0019091C1010C9441156A +:102B00008091C10182958F7009F054C08091BE01FF +:102B1000882309F44FC080918A01A0918B016091B4 +:102B2000BC017091BD014091BF015091C001B6E060 +:102B30008A1709F43FC090E041155105C1F17F3F6C +:102B400011F46F3FA1F1B89FF001B99FF00D11246E +:102B5000E457FE4F218172132AC02081621327C0DF +:102B60002281211124C0238134812417350710F4D8 +:102B700021503109241B350B283C3105C0F420912C +:102B8000C1012F7020612093C10126E0289FF00130 +:102B9000299FF00D1124EF56FE4F80818F708061C8 +:102BA00080838CEB91E00E94C9140C94511501961E +:102BB0008770BECF0895CF92DF92EF92FF920F936E +:102BC0001F93CF93DF93CDB7DEB762970FB6F8941C +:102BD000DEBF0FBECDBF8C0185E0F801DE011D9682 +:102BE00001900D928A95E1F7D8014C9111965C9174 +:102BF000119712966C9112971396CD90DC901497C2 +:102C00003091BC017091BD018091BF019091C001D4 +:102C1000009709F46BC17F3F19F43F3F09F466C187 +:102C2000E090BE01EE2009F4C0C02091C101C81699 +:102C3000D90628F0F601E81BF90BCF0104C08095F6 +:102C400090958C0D9D1DFF24F394883C910578F0A0 +:102C5000F12C207F09F0C6C07C2DD98AC88A8989C9 +:102C60000E9432158CEB91E00E94C914B1C0822FF2 +:102C7000807F09F046C0751314C0341312C061116F +:102C800010C02F7020612093C1010E9472158CEB3F +:102C900091E00E94C9148091C101D80115968C93CE +:102CA0002EC0CD2819F15F3F11F44F3FF9F0F62EF9 +:102CB00061111CC080918A0120918B0136E082173E +:102CC00009F45AC090E0389FF001399FF00D1124AB +:102CD000E457FE4F7181571306C07081471303C03C +:102CE0007281711103C001968770E9CFF62E6623B9 +:102CF00009F418C18091C10181608093C101F12C58 +:102D000011C1751308C0341306C0611104C080914D +:102D1000C101D801C3C04D875E878D859E856A8BB2 +:102D20000E9408156A898823E1F16623D1F1209178 +:102D3000C101822F82958F7090E0029774F080918C +:102D4000BC019091BD0198878F831986DB86CA8666 +:102D50002C87CE0107960E94C91486E0F801ACEBDF +:102D6000B1E001900D928A95E1F70E9480150E94D2 +:102D70007215FF24F394D6C04D875E878D859E859E +:102D80000E943C1A292F22952F7030E02230310505 +:102D90000CF0BCC09F7009F0B6C0805E883008F4AB +:102DA000C1C0C8010E94C914E4CFC816D90608F4EE +:102DB00053C0F601E81BF90BCF01883C910508F4DC +:102DC00050C0F12C7C2DD98AC88A89890E9432157D +:102DD000ECEBF1E086E0DF011D928A95E9F70E94B5 +:102DE0007215A0C0751314C0341312C0611110C045 +:102DF0008091C101F8018583C8010E94C91486E051 +:102E0000ECEBF1E0DF011D928A95E9F7FE2C8AC018 +:102E10004D875E878D859E856A8B0E9408156A891D +:102E2000882309F4BECF662309F4BBCF2091C101EA +:102E3000822F82958F7090E002970CF48ECF809154 +:102E4000BC019091BD019A8389831B82DD82CC8273 +:102E50002E83CE0101967FCF809590958C0D9D1D80 +:102E6000ACCFF62E662309F49CCF75132EC0341315 +:102E70002CC02091C10120FD1FC0822F82958F7030 +:102E8000D9F0D80115962C9315978F3049F08F5FA4 +:102E9000982F9295907F822F8F70892B15968C9307 +:102EA000C8010E94C91486E0F801ACEBB1E00190C2 +:102EB0000D928A95E1F793CF86E0F801ACEBB1E093 +:102EC00001900D928A95E1F72DC04D875E878D8523 +:102ED0009E850E940815811140CF8091C1018160BB +:102EE0008093C101C8010E94C9141CC0662309F463 +:102EF00058CF4D875E878D859E850E940815882353 +:102F000009F44FCF2ACF811148CF0CC024303105AE +:102F10000CF047CF9F7009F440CFF8019581907F66 +:102F200009F03BCF8F2D62960FB6F894DEBF0FBE2F +:102F3000CDBFDF91CF911F910F91FF90EF90DF9068 +:102F4000CF9008951F93CF93DF93CDB7DEB72C9723 +:102F50000FB6F894DEBF0FBECDBF4F835887698789 +:102F60007A878B879C87CE0107960E94DB15882382 +:102F700069F08F8198852A853B85232BF1F19F3F4E +:102F800009F063C08F3F09F060C037C086E0FE01E2 +:102F90003796DE01119601900D928A95E1F76F81C7 +:102FA0007885EA85FB85309741F17F3F11F46F3FCB +:102FB00021F120918B0130E0C9010196877099279A +:102FC00040918A0150E08417950709F447C069834E +:102FD0007A83FD83EC8396E0929FD001939FB00D9E +:102FE0001124A457BE4FFE01319601900D929A957F +:102FF000E1F780938B010E94511516E080918A01C0 +:1030000090918B018917C1F1189FC0011124845739 +:103010009E4F0E94DB15882379F1E0918A011E9F63 +:10302000F0011124E457FE4F408151816281738188 +:10303000848195810E94411580918A0190E00196DA +:103040008770992780938A01D9CF4F8158856985E8 +:103050007A858B859C850E944115CFCF0E940415EF +:1030600010928B0110928A01ECEBF1E086E0DF0117 +:103070001D928A95E9F7C1CF2C960FB6F894DEBF62 +:103080000FBECDBFDF91CF911F910895EF92FF92B8 +:103090000F931F93CF93DF938C01892B09F46CC09E +:1030A000F12CEE24E394E8012196F8018491843711 +:1030B00040F4843008F051C0813081F0823019F141 +:1030C0005BC0853709F444C0A8F19CE7980F90379E +:1030D00008F052C08F770E94211241C00E5F1F4F2F +:1030E000FE01C49180E28C0F883048F4C7708E2DA9 +:1030F00001C0880FCA95EAF70E94221B14C08C2FCA +:103100000E9459112DC00E5F1F4FFE01C49180E235 +:103110008C0F883058F4C7708E2D01C0880FCA9567 +:10312000EAF70E94281B0E94491B1AC08C2F0E949C +:10313000211216C00E5F1F4FFE01C491CC2381F0F7 +:103140008FE99FE00197F1F700C00000C150F6CF72 +:103150000E5F1F4FFE01F49003C00E9459118E01B3 +:103160008F2D882309F49FCFEFE9FFE03197F1F726 +:1031700000C000008150F5CFDF91CF911F910F91DA +:10318000FF90EF90089508956093C6017093C70172 +:103190008093C8019093C9010C94F0140F931F936E +:1031A0000091C6011091C7012091C8013091C90159 +:1031B000DC01CB01802B912BA22BB32B8093C6017A +:1031C0009093C701A093C801B093C9011F910F91BB +:1031D0000C94F0140F931F930091C6011091C70136 +:1031E0002091C8013091C901DC01CB0180239123DA +:1031F000A223B3238093C6019093C701A093C80173 +:10320000B093C9011F910F910C94F0140F931F9369 +:103210000091C6011091C7012091C8013091C901E8 +:10322000DC01CB0180279127A227B3278093C60119 +:103230009093C701A093C801B093C9011F910F914A +:103240000C94F0141092C2011092C3011092C401A8 +:103250001092C5010C94F01441E050E060E070E081 +:1032600004C0440F551F661F771F8A95D2F74093FD +:10327000C2015093C3016093C4017093C5010C94C3 +:10328000F01441E050E060E070E004C0440F551FCE +:10329000661F771F8A95D2F78091C2019091C30172 +:1032A000A091C401B091C501482B592B6A2B7B2BEF +:1032B0004093C2015093C3016093C4017093C50150 +:1032C0000C94F01441E050E060E070E004C0440F62 +:1032D000551F661F771F8A95D2F7409550956095C8 +:1032E00070958091C2019091C301A091C401B091E9 +:1032F000C501482359236A237B234093C20150937D +:10330000C3016093C4017093C5010C94F01441E0B3 +:1033100050E060E070E004C0440F551F661F771F47 +:103320008A95D2F78091C2019091C301A091C40106 +:10333000B091C501482759276A277B274093C201CE +:103340005093C3016093C4017093C5010C94F014B1 +:103350000F931F930091C2011091C3012091C401EA +:103360003091C501DC01CB01802B912BA22BB32B1B +:103370008093C2019093C301A093C401B093C5018F +:103380001F910F910C94F0140F931F930091C201A1 +:103390001091C3012091C4013091C501DC01CB0122 +:1033A00080239123A223B3238093C2019093C3016E +:1033B000A093C401B093C5011F910F910C94F01418 +:1033C0000F931F930091C2011091C3012091C4017A +:1033D0003091C501DC01CB0180279127A227B327BB +:1033E0008093C2019093C301A093C401B093C5011F +:1033F0001F910F910C94F0140895CF92DF92EF92E9 +:10340000FF920F931F93CF93DF938C01C090C6015F +:10341000D090C701E090C801F090C9018091C2012D +:103420009091C301A091C401B091C501C82AD92AC5 +:10343000EA2AFB2ACFE1D0E0D701C6010C2E04C056 +:10344000B695A795979587950A94D2F780FF06C001 +:10345000B8018C2F0E94C205019721F4219760F7D3 +:1034600080E001C08C2FDF91CF911F910F91FF90D1 +:10347000EF90DF90CF900895CF93DF93EC010E94FF +:10348000FD19BE010E94C205DF91CF910895CB01C5 +:103490000E943C1A08958091CA018595859585956D +:1034A00008958091CA018770089598E0899F9001DE +:1034B0001124262B2093CA010C9441192091CA0192 +:1034C000809582238093CA01982F977069F430E029 +:1034D000482F082E000C550B2417350729F0859529 +:1034E000859585950C94621908959091CA019770FD +:1034F00081E009F480E0089590910B01992321F077 +:1035000090910C01911109C020910D0130910E0193 +:10351000F90132969FEF40E01FC0982F969596953F +:1035200096959F3050F5E0910D01F0910E01E90F55 +:10353000F11D877021E030E0A90102C0440F551F42 +:103540008A95E2F7CA019181892B818308959F3F73 +:1035500039F04F5F4E3041F051915813F8CF0DC004 +:103560005111F7CF942FF5CF9F3F39F0F901E90FB3 +:10357000F11D97FDFA9582830895089590910B01AE +:10358000992321F090910C01911109C020910D0116 +:1035900030910E01F9013296205F3F4F1FC0982FE6 +:1035A0009695969596959F30F0F4E0910D01F091E7 +:1035B0000E01E90FF11D877021E030E0A90102C082 +:1035C000440F551F8A95E2F7CA018095918189239E +:1035D000818308953196E217F30729F090819813BB +:1035E000F9CF1082F7CF089581E090E0E0910D01CE +:1035F000F0910E01E80FF91F1082019680319105BC +:10360000A9F708959091DE01892B8093DE0108953A +:1036100080959091DE0189238093DE0108951092B8 +:10362000DE0108959091DD01892B8093DD010895DD +:1036300080959091DD0189238093DD01089510929A +:10364000DD0108959091DC01892B8093DC010895C0 +:1036500080959091DC0189238093DC01089510927C +:10366000DC0108958093CB0108951092CB01089559 +:1036700080910D0190910E01FC0131969C01205F1B +:103680003F4F80E0919191118F5FE217F307D1F7DF +:103690000895E0910D01F0910E018091DE0180838B +:1036A000E0910D01F0910E0190818091DD01892B57 +:1036B0008083E0910D01F0910E0190818091DC01F9 +:1036C000892B80838091CB01882361F0E0910D01EB +:1036D000F0910E019081892B80830E94381B81110B +:1036E0001092CB0180910D0190910E010C942E103F +:1036F00020E0009739F0AC01415051098423952313 +:103700002F5FF7CF822F08958091F601843051F119 +:103710001092E00120E488E190E00FB6F894A895BB +:10372000809360000FBE2093600080E00E94EC0256 +:1037300080E00E94F30783B7817F846083BF83B7F3 +:10374000816083BF7894889583B78E7F83BF0FB6DF +:10375000F894A89580916000886180936000109231 +:1037600060000FBE0895089580E00E94EC020E9460 +:1037700009080E948C080E94B31B0E94110991E065 +:10378000811101C090E0892F08950E94041580E006 +:103790000E94EC020E9436210E9422100C94F30732 +:1037A0001F920F920FB60F9211248F939F93AF9396 +:1037B000BF938091E001811113C08091E10190914C +:1037C000E201A091E301B091E4014196A11DB11D78 +:1037D0008093E1019093E201A093E301B093E401AF +:1037E000BF91AF919F918F910F900FBE0F901F903F +:1037F000189582E084BD93E095BD9AEF97BD8093C4 +:103800006E0008952FB7F8948091E1019091E20144 +:10381000A091E301B091E4012FBF0895CF92DF9210 +:10382000EF92FF920F931F932FB7F8944091E1010D +:103830005091E2016091E3017091E4012FBF6A01B0 +:103840007B01EE24FF248C0120E030E0C016D1067D +:10385000E206F30610F4415051099A01281B390B76 +:10386000C9011F910F91FF90EF90DF90CF900895C5 +:103870001F920F920FB60F9211248F939F93AF93C5 +:10388000BF938091E1019091E201A091E301B09199 +:10389000E4010196A11DB11D8093E1019093E20125 +:1038A000A093E301B093E401BF91AF919F918F91F9 +:1038B0000F900FBE0F901F9018950E941F0DF89447 +:1038C0002FEF87EA91E6215080409040E1F700C059 +:1038D000000087E090EBDC018093000290930102EE +:1038E000A0930202B09303029CE088E10FB6F89423 +:1038F000A895809360000FBE90936000FFCF0E9458 +:10390000BC1C811102C00E949D1C0E94C71C809398 +:10391000DF010E94D41C90E09093F1018093F001AC +:1039200087FB882780F980930C010E94CB1C682FAD +:1039300070E080E090E00C94C4186DEE7EEF80E0C3 +:1039400090E00E94502360E082E090E00E943E23DD +:1039500060E083E090E00E943E2360E084E090E03D +:103960000E943E2360E085E090E00E943E2360E0FC +:1039700086E090E00C943E2380E090E00E943823A3 +:1039800021E08D3E9E4F09F020E0822F089582E0D5 +:1039900090E00C94302383E090E00C943023682F67 +:1039A00083E090E00C943E2384E090E00C9430237C +:1039B000682F84E090E00C943E2386E090E00C9425 +:1039C0003023682F86E090E00C943E238091E7013D +:1039D00080FF0BC06091120185E0689FB001112447 +:1039E00075956795759567952BC081FF09C06091A6 +:1039F000120185E0689FB00111247595679520C07C +:103A000082FF07C06091120185E0689FB001112418 +:103A100017C09091E8019923D1F060911101961798 +:103A200088F72091120185E0289F90011124929F30 +:103A3000A001939F500D112470E0CA010E9402233F +:103A40006038710540F46115710539F002C065E018 +:103A500070E0862F08958FE7089581E008958091A2 +:103A6000E70180FF08C06091100170E075956795CF +:103A70007595679521C081FF06C06091100170E0C7 +:103A80007595679519C082FF04C06091100170E0C0 +:103A900010C09091E8019923C1F060910F01961731 +:103AA000A0F780911001899FC001112470E00E944D +:103AB00002236038710528F46115710521F0862F05 +:103AC00008958FE7089581E0089561E070E0F4CFF4 +:103AD000803F21F40E94E61C819504C0813F29F4B7 +:103AE0000E94E61C8093EB010895823F21F40E941E +:103AF000E61C819504C0833F29F40E94E61C809354 +:103B0000EA010895893F19F40E942F1D05C08A3FDC +:103B100031F40E942F1D81958093EC0108958B3F15 +:103B200021F40E942F1D819504C08C3F29F40E942E +:103B30002F1D8093ED010895843F21F48091E901C8 +:103B4000816017C0853F21F48091E901826011C036 +:103B5000863F21F48091E90184600BC0873F21F406 +:103B60008091E901886005C0883F31F48091E901C6 +:103B700080618093E90108958D3F21F48091E701F0 +:103B800081600BC08E3F21F48091E701826005C007 +:103B90008F3F29F48091E70184608093E7010895C5 +:103BA000803F39F48091EB0187FF6CC01092EB01EC +:103BB00069C0813F29F48091EB011816BCF362C003 +:103BC0009091EA01823F29F497FF5CC01092EA01CC +:103BD00059C0833F19F41916CCF354C0893F41F4FE +:103BE0008091EC0118160CF04DC01092EC014AC007 +:103BF0008A3F29F48091EC0187FF44C0F6CF8B3FC8 +:103C000039F48091ED0187FF3DC01092ED013AC07B +:103C10008C3F29F48091ED011816BCF333C0843F2A +:103C200021F48091E9018E7F17C0853F21F48091B6 +:103C3000E9018D7F11C0863F21F48091E9018B7FDE +:103C40000BC0873F21F48091E901877F05C0883F41 +:103C500031F48091E9018F7E8093E90113C08D3F9B +:103C600021F48091E7018E7F0BC08E3F21F480917B +:103C7000E7018D7F05C08F3F29F48091E7018B7F9D +:103C80008093E7018091EA0181110EC08091EB01E0 +:103C900081110AC08091EC01811106C08091ED0173 +:103CA000811102C01092E801089589EE91E00E940E +:103CB00039100E94021C9093E6018093E50108955B +:103CC0001F93CF93DF938091E5019091E6010E94CD +:103CD0000E1CAC019091E801992321F02091130171 +:103CE00030E006C0209114018AE0289F9001112441 +:103CF0004217530708F485C08091EA01C091EB0197 +:103D0000D091EC011091ED01811107C0C11175C076 +:103D1000D11173C0111171C074C09F3F19F09F5F22 +:103D20009093E801181624F40E94E61C8093EA019F +:103D30008091EA0187FF05C00E94E61C819580936F +:103D4000EA011C1624F40E94E61C8093EB0180918A +:103D5000EB0187FF05C00E94E61C81958093EB0173 +:103D60006091EA01662331F1C091EB01CC2311F19E +:103D7000062E000C770B880B990B0E94092223E377 +:103D800033E343E35FE30E946D220E94D1216093FD +:103D9000EA016C2FCC0F770B880B990B0E9409223C +:103DA00023E333E343E35FE30E946D220E94D121CA +:103DB0006093EB011D1624F40E942F1D8093EC01EB +:103DC0008091EC0187FF05C00E942F1D8195809393 +:103DD000EC01111624F40E942F1D8093ED018091B7 +:103DE000ED0187FF05C00E942F1D81958093ED0195 +:103DF000DF91CF911F910C94551E9F3F09F08FCFFB +:103E000097CFDF91CF911F910895E9EEF1E085E022 +:103E1000DF011D928A95E9F71092E8011092E701FF +:103E20000895833081F128F4813059F08230D1F047 +:103E30000895853009F449C0B8F1863009F456C0B8 +:103E4000089580911401262F30E0280F311D2F3F57 +:103E5000310524F4680F6093140108958FEF809367 +:103E60001401089580911301262F30E0280F311D91 +:103E70002F3F310524F4680F6093130108958FEFED +:103E800080931301089580911201262F30E0280FAE +:103E9000311D2F3F310524F4680F609312010895FE +:103EA0008FEF80931201089580911101262F30E049 +:103EB000280F311D2F3F310524F4680F6093110145 +:103EC00008958FEF80931101089580911001262F9E +:103ED00030E0280F311D2F3F310524F4680F609327 +:103EE000100108958FEF80931001089580910F01C4 +:103EF000262F30E0280F311D2F3F310524F4680FA5 +:103F000060930F0108958FEF80930F010895833020 +:103F100011F128F4813049F0823091F00895853014 +:103F200081F120F18630C1F1089580911401681764 +:103F300020F4861B809314010895109214010895B3 +:103F400080911301681720F4861B80931301089554 +:103F500010921301089580911201681720F4861BB6 +:103F60008093120108951092120108958091110119 +:103F7000681720F4861B8093110108951092110197 +:103F8000089580911001681720F4861B809310011A +:103F9000089510921001089580910F01681720F480 +:103FA000861B80930F01089510920F0108950F93BF +:103FB0001F93873208F048C08E3108F092C08031DC +:103FC00009F47CC008F5873009F466C068F48630CF +:103FD00009F0A2C08091DF01817F8E7F8093DF0195 +:103FE00081E08093EF0199C08B3009F48EC08E3050 +:103FF00009F092C08091DF0182FB222720F991E035 +:10400000922790FB82F963C0863109F47EC060F488 +:10401000813109F081C00E94041590910C0181E06A +:10402000892780930C0171C0893109F46EC08B31EE +:1040300009F072C08091DF0181FB222720F991E015 +:10404000922790FB81F943C0883309F45EC050F495 +:10405000893209F45CC0853309F459C0873209F408 +:1040600056C05AC0833409F452C028F48A3308F485 +:1040700053C0895337C0883409F04EC00E940415DC +:104080000FEF13ED20E3015010402040E1F700C096 +:1040900000000E945D1C39C09091DF01892F80953E +:1040A000817080FB90F929F0966098609093DF0111 +:1040B00034C0997F977F9093DF0127C08091DF0103 +:1040C00083FB222720F991E0922790FB83F98093CC +:1040D000DF019923D1F08091DF0181608093DF01BE +:1040E00014C08D5141E050E060E070E08A019B0116 +:1040F00004C0000F111F221F331F8A95D2F7C90178 +:10410000B8010E94C4180E94041581E006C061E055 +:1041100070E080E090E0F5CF80E01F910F9108956E +:1041200080E0089580E008958E518A3030F4E82FC1 +:10413000F0E0E75CFE4F8081089580E00895CF9322 +:10414000C82F8091EF01813069F018F08230C9F1F9 +:1041500083C0E0910D01F0910E018081823209F05F +:104160007DC007C0E0910D01F0910E018081823287 +:1041700061F48C2F0E949020811104C08C2F0E942A +:10418000D71F1DC081E090E01AC08C2F0E949220A2 +:10419000811114C0C43179F048F4CB3079F0C031CA +:1041A00009F060C082E08093EF0108C0C93219F0C5 +:1041B000C83321F057C01092EF0154C081E08170E4 +:1041C00053C0C93289F118F5C43171F1B0F4C73068 +:1041D00009F046C08EE18093140182E380931301BD +:1041E0008AE08093120184E18093110188E080933A +:1041F000100188E280930F0133C082EE8C0F86306D +:1042000078F58C2F0E9494208093EE0129C0CE3443 +:10421000E9F020F4CB3421F56AE013C0C13579F020 +:10422000C235F1F461E00DC08091EE01882319F0F0 +:104230001092EE0115C081E08093EF0115C061E09E +:1042400006C08091EE010E94111F0AC06AE08091B1 +:10425000EE010E94871F04C01092EF0180E004C0AD +:1042600081E002C080E0ABCFCF9108950E94BC1CDA +:10427000811102C00E949D1C0E94DD1C8093FF01E1 +:1042800080FF02C0869501C080E00C94EC02809112 +:10429000FF01982F9695292F30E0233031054CF4FB +:1042A0009F5F990F8170892B81608093FF010E942D +:1042B000E11C8091FF0186950C94EC028091FF0136 +:1042C000982F969591F09158990F8170892B809332 +:1042D000FF018E7F91E009F490E08091FF0190FB57 +:1042E00080F98093FF010E94E11C8091FF01869577 +:1042F0000C94EC028091FF01982F909590FB80F92F +:104300008093FF010E94E11C8091FF0180FF02C0A9 +:10431000869501C080E00C94EC029091FF01892FFA +:1043200086958F5F8F779170843028F4880F892B62 +:104330008093FF0102C09093FF018091FF018E7F67 +:1043400091E009F490E08091FF0190FB80F9809367 +:10435000FF010E94E11C8091FF0186950C94EC0204 +:104360002091FF01922F96958927982F990F822FE0 +:104370008170892B8093FF018E7F91E009F490E09A +:104380008091FF0190FB80F98093FF010E94E11C66 +:104390008091FF0186950C94EC028091FF01869537 +:1043A00008950E94D8216894B1110C946722089551 +:1043B0000E944C2288F09F5798F0B92F9927B75147 +:1043C000B0F0E1F0660F771F881F991F1AF0BA95B9 +:1043D000C9F714C0B13091F00E946622B1E008958F +:1043E0000C946622672F782F8827B85F39F0B93F81 +:1043F000CCF3869577956795B395D9F73EF490956C +:104400008095709561957F4F8F4F9F4F0895E894E9 +:1044100009C097FB3EF490958095709561957F4F0C +:104420008F4F9F4F9923A9F0F92F96E9BB279395BA +:10443000F695879577956795B795F111F8CFFAF4CA +:10444000BB0F11F460FF1BC06F5F7F4F8F4F9F4FFB +:1044500016C0882311F096E911C0772321F09EE859 +:10446000872F762F05C0662371F096E8862F70E0BF +:1044700060E02AF09A95660F771F881FDAF7880F99 +:104480009695879597F9089557FD9058440F551FB5 +:1044900059F05F3F71F04795880F97FB991F61F0C6 +:1044A0009F3F79F087950895121613061406551F3D +:1044B000F2CF4695F1DF08C0161617061806991FA9 +:1044C000F1CF86957105610508940895E894BB279E +:1044D00066277727CB0197F908950E9480220C94D4 +:1044E000F1220E94E32238F00E94EA2220F0952374 +:1044F00011F00C94DA220C94E02211240C9467221F +:104500000E94442270F3959FC1F3950F50E0551F10 +:10451000629FF001729FBB27F00DB11D639FAA2718 +:10452000F00DB11DAA1F649F6627B00DA11D661F67 +:10453000829F2227B00DA11D621F739FB00DA11D88 +:10454000621F839FA00D611D221F749F3327A00D42 +:10455000611D231F849F600D211D822F762F6A2FDE +:1045600011249F5750409AF0F1F088234AF0EE0F43 +:10457000FF1FBB1F661F771F881F91505040A9F770 +:104580009E3F510580F00C94DA220C9467225F3F25 +:10459000E4F3983ED4F3869577956795B795F795AC +:1045A000E7959F5FC1F7FE2B880F911D9695879524 +:1045B00097F9089597F99F6780E870E060E00895A3 +:1045C0009FEF80EC089500240A941616170618062B +:1045D0000906089500240A94121613061406050607 +:1045E0000895092E0394000C11F4882352F0BB0F98 +:1045F00040F4BF2B11F460FF04C06F5F7F4F8F4FFB +:104600009F4F089597FB072E16F4009407D077FD6F +:1046100009D00E941C2307FC05D03EF4909581959B +:104620009F4F0895709561957F4F0895EE0FFF1F7E +:104630000590F491E02D0994AA1BBB1B51E107C022 +:10464000AA1FBB1FA617B70710F0A61BB70B881F22 +:10465000991F5A95A9F780959095BC01CD010895B1 +:10466000F999FECF92BD81BDF89A992780B508953A +:10467000A8E1B0E042E050E00C945823262FF999CD +:10468000FECF92BD81BDF89A019700B4021639F0B1 +:104690001FBA20BD0FB6F894FA9AF99A0FBE089582 +:1046A0000196272F0E943F230C943E23DC01CB016F +:1046B000FC01F999FECF06C0F2BDE1BDF89A319632 +:1046C00000B40D9241505040B8F70895F894FFCFD0 +:1046D000FF2709B50992095E092A090101CC0128C1 +:1046E00008140A321E1F0F03764F5F6F7F4969431C +:1046F0007909595363404D3639DC048F045904203D +:1047000004B303CC03E503FE03010203040506071B +:044710000809000094 +:00000001FF diff --git a/keyboards/planck/keymaps/ab/keyboard-layout.json b/keyboards/planck/keymaps/ab/keyboard-layout.json new file mode 100644 index 000000000..6e33ec6bf --- /dev/null +++ b/keyboards/planck/keymaps/ab/keyboard-layout.json @@ -0,0 +1,101 @@ +[ + { + "name": "AB's Practical Keymap for Planck", + "author": "Anand Babu Periasamy" + }, + [ + "1\nF1\n!\n\n\n\n\n\n\nTab", + "2\nF2\n@\n\n\n\n\n\n\nQ", + "3\nF3\n#\n\n\n\n\n\n\nW", + "4\nF4\n$\n\n\n\n\n\n\nE", + "5\nF5\n%\n\n\n\n\n\n\nR", + "6\nF6\n^\n\n\n\n\n\n\nT", + "7\nF7\n&\n\n\n\n\n\n\nY", + "8\nF8\n*\n\n\n\n\n\n\nU", + "9\nF9\n(\n\n\n\n\n\n\nI", + "0\nF10\n)\n\n\n\n\n\n\nO", + "-\nF11\n_\n\n\n\n\n\n\nP", + "=\nF12\n+\n\n\n\n\n\n\n" + ], + [ + { + "a": 7 + }, + "Ctrl", + "A", + "S", + "D", + { + "a": 4 + }, + "(\n\n\n\n\n\n\n\n\nF", + ")\n\n\n\n\n\n\n\n\nG", + "{\n\n\n\n\n\n\n\n\nH", + "}\n\n\n\n\n\n\n\n\nJ", + { + "a": 7 + }, + "K", + "L", + { + "a": 6 + }, + ";\n\n:", + { + "a": 7 + }, + "Enter" + ], + [ + "Shift", + "Z", + "X", + "C", + { + "a": 4 + }, + "[\n`\n\n\n\n\n\n\n\nV", + "]\n~\n\n\n\n\n\n\n\nB", + "'\n\\\n\n\n\n\n\n\n\nN", + "\"\n|\n\n\n\n\n\n\n\nM", + { + "a": 6 + }, + ",\n\n<", + ".\n\n>", + "/\n\n?", + { + "a": 7 + }, + "Shift\n\n\n\nEnter" + ], + [ + { + "a": 4 + }, + "\n\n\n\n\n\n\n\n\nCtrl", + { + "a": 7 + }, + "Esc", + "", + "Alt", + "", + { + "a": 4, + "w": 2 + }, + "\nPgUP\n\nPgDn\n\n\n\n\n\nSpace", + { + "a": 7 + }, + "", + "", + { + "a": 4 + }, + "\n\n\n\n\n\n\n\n\n", + "\n\n\n\n\n\n\n\n\n", + "\n\n\n\n\n\n\n\n\n" + ] +] \ No newline at end of file diff --git a/keyboards/planck/keymaps/ab/keyboard-layout.png b/keyboards/planck/keymaps/ab/keyboard-layout.png new file mode 100644 index 000000000..64bf0aa1c Binary files /dev/null and b/keyboards/planck/keymaps/ab/keyboard-layout.png differ diff --git a/keyboards/planck/keymaps/ab/keyboard-photo.jpg b/keyboards/planck/keymaps/ab/keyboard-photo.jpg new file mode 100644 index 000000000..358cb6bca Binary files /dev/null and b/keyboards/planck/keymaps/ab/keyboard-photo.jpg differ diff --git a/keyboards/planck/keymaps/ab/keymap.c b/keyboards/planck/keymaps/ab/keymap.c new file mode 100644 index 000000000..57f90ab57 --- /dev/null +++ b/keyboards/planck/keymaps/ab/keymap.c @@ -0,0 +1,122 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "planck.h" +#include "action_layer.h" +#include "eeconfig.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif + +extern keymap_config_t keymap_config; + +// Symbolic names for macro IDs. +#define _QWERTY 0 // QUERTY layer +#define _RAISE 1 // Raise layer +#define _LOWER 2 // Lower layer +#define _CUSTOM 3 // Custom layer +#define _BL 4 // Backlight +#define _MOBILE 5 // Mobile# +#define _CUSTOM1 6 // Custom macro 1 +#define _CUSTOM2 7 // Custom macro 2 + +// Macro shortcuts. +#define RAISE M(_RAISE) +#define LOWER M(_LOWER) +#define CUSTOM M(_CUSTOM) // RAISE + LOWER +#define BL M(_BL) +#define MOBILE M(_MOBILE) +#define CUSTOM1 M(_CUSTOM1) +#define CUSTOM2 M(_CUSTOM2) + +// This config can be found at Keyboard layout editor site: http://goo.gl/zjXL2l +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_QWERTY] = { /* QWERTY */ + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, FUNC(3)}, + {KC_LCTL, KC_ESC, KC_LGUI, KC_LALT, RAISE, KC_SPC, KC_SPC, LOWER, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT} +}, +[_RAISE] = { /* RAISE */ + {KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LPRN, KC_RPRN, KC_LCBR, KC_RCBR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_QUOT, KC_DQT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {BL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +}, +[_LOWER] = { /* LOWER */ + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_LCBR, KC_BSLS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_GRV, KC_TILD, KC_BSLS, KC_PIPE, KC_LBRC, KC_LBRC, KC_TRNS, KC_TRNS}, + {RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_PGDN, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE} +}, +[_CUSTOM] = { /* CUSTOM */ + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MOBILE, KC_TRNS, CUSTOM1, CUSTOM2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +} +}; + +// Enable these functions using FUNC(n) macro. They seem to be buggy mostly. +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_TAP_KEY(_RAISE, KC_PGUP), // Tap for PgUp, hold for RAISE + [1] = ACTION_LAYER_TAP_KEY(_LOWER, KC_PGDN), // Tap for PgDn, hold for LOWER + [2] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_CAPS), // Tap for Caps, hold for Ctrl + [3] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT), // Tap for Enter, hold for Shift +}; + +// Set a layer persistantly. +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +// Macro actions for each corresponding ID. +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case _QWERTY: // Default QWERTY layer. // This case not used for now. + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_QWERTY); + } + break; + case _RAISE: // Raised layer. + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _CUSTOM); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _CUSTOM); + } + break; + case _LOWER: // Lowered layer. + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _CUSTOM); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _CUSTOM); + } + break; + case _BL:// Backlight + if (record->event.pressed) { + register_code(KC_RSFT); +#ifdef BACKLIGHT_ENABLE + backlight_step(); +#endif + } else { + unregister_code(KC_RSFT); + } + break; + case _MOBILE:// Your mobile# here. + return MACRODOWN(T(1), T(2), T(3), T(MINS), + T(1), T(2), T(3), T(MINS), + T(1), T(2), T(3), T(4), + END); + case _CUSTOM1:// Your custom macro 1 + return MACRODOWN(T(E), T(M), T(A), T(C), T(S), T(SPC), END); + case _CUSTOM2:// Your custom macro 2 + return MACRODOWN(T(L), T(S), T(SPC), T(MINS), T(L), T(ENT), END); + }; + return MACRO_NONE; +} -- cgit v1.2.3 From b9d29cc355de7a6deaac9bc8219c44e16718181d Mon Sep 17 00:00:00 2001 From: Teddy Ku Date: Thu, 23 Jun 2016 15:09:04 -0400 Subject: Added tkuichooseyou keymap; for vim and OSX users --- .../ergodox_ez/keymaps/tkuichooseyou/README.md | 13 + .../ergodox_ez/keymaps/tkuichooseyou/compiled.hex | 1137 ++++++++++++++++++++ .../ergodox_ez/keymaps/tkuichooseyou/keymap.c | 184 ++++ 3 files changed, 1334 insertions(+) create mode 100644 keyboards/ergodox_ez/keymaps/tkuichooseyou/README.md create mode 100644 keyboards/ergodox_ez/keymaps/tkuichooseyou/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/tkuichooseyou/keymap.c (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/tkuichooseyou/README.md b/keyboards/ergodox_ez/keymaps/tkuichooseyou/README.md new file mode 100644 index 000000000..ab02fac2c --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/tkuichooseyou/README.md @@ -0,0 +1,13 @@ +# Based on Default OSX +I'm a vim and OSX user + +- Moved Hyper and Meh up, replaced with CMD + - Because I'm used to having symmetrical CMD keys on both hands +- Changed left delete to Tab to match OSX +- Changed left Backspace to CTRL/ESC for vim +- Changed top left and top right arrow to `CMD+{` and `CMD+}` + - Useful for switching tabs in Safari, Xcode, etc. +- Remove the Ctrl from Z and / +- Remove CMD from right quote +- Changed right Alt to Delete + diff --git a/keyboards/ergodox_ez/keymaps/tkuichooseyou/compiled.hex b/keyboards/ergodox_ez/keymaps/tkuichooseyou/compiled.hex new file mode 100644 index 000000000..a8cf4527a --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/tkuichooseyou/compiled.hex @@ -0,0 +1,1137 @@ +:100000000C947B020C94C2020C94C2020C94C202A7 +:100010000C94C2020C94C2020C94C2020C94C20250 +:100020000C94C2020C94C2020C94F70D0C94C90EED +:100030000C94C2020C94C2020C94C2020C94C20230 +:100040000C94C2020C9486210C94C2020C94C2023D +:100050000C94C2020C94681C0C94C2020C94C20250 +:100060000C94C2020C94C2020C94C2020C94C20200 +:100070000C94C2020C94C2020C94C2020C94C202F0 +:100080000C94C2020C94C2020C94C2020C94C202E0 +:100090000C94C2020C94C2020C94C2020C94C202D0 +:1000A0000C94C2020C94C2020C94C202360F580F78 +:1000B0004610580F46109D0FC00F461015102810FF +:1000C000F712F712261326135C137C13AD14AD142C +:1000D0008713AD14371437149E14AD14AD14A71440 +:1000E0004414441444144414441444144414441450 +:1000F0004414441444144414441444144414441440 +:10010000561463146A1471147B140000F0A12E00BD +:100110002B002961E100354100001E00140004009D +:100120001D0034004D001F001A0016001B00E104E2 +:100130002A00200008000700060050002C002100C3 +:100140001500090019004F004A00220017000A009C +:100150000500000065642F0A006F0000E300000046 +:10016000E300300A00670000E30000004C002300B9 +:100170001C000B00110000002961240018000D0074 +:10018000100052004B0025000C000E0036005100FC +:100190002800260012000F0037002F002B00270038 +:1001A00013003342380030004E002D00310034007F +:1001B000E500C10000000100010001000100010094 +:1001C00000003A001E0220022202010001003B0052 +:1001D0001F0221022302010001003C002F0226021F +:1001E0002F00010001003D00300227023000010015 +:1001F00001003E003102350035020000010001001F +:1002000001000000010000000100010001000000E9 +:100210000100000001003F005200510024020000D4 +:1002200001004000240021001E00010001004100E7 +:10023000250022001F003700010042002600230095 +:10024000200027000100430025022E0231002E006D +:100250000100440045000100010001000000010010 +:100260000100010001000100000001000100010087 +:1002700001000100010001000100F2000100010085 +:1002800001000100F000F1000100F4000100010094 +:100290000100F3000100F500010001000100010070 +:1002A0000100000001000100010000000100000049 +:1002B0000100010001000000010000000100010038 +:1002C0000100010001000000010001000100010027 +:1002D0000100A9000100010001000100AC00AA001A +:1002E000B600010001000100AB00A8000100010000 +:1002F0000100010001000100010001000100AE0049 +:1003000001000100000016034500720067006F0045 +:1003100044006F007800200045005A0000001603DA +:100320004500720067006F0044006F0078002000F5 +:1003300045005A0000000403090409026D0004018D +:1003400000A0FA09040000010301010009211101C4 +:1003500000012240000705810308000A090401008A +:100360000103010200092111010001224D000705CE +:10037000820308000A0904020001030000000921A9 +:10038000110100012236000705830308000A090451 +:1003900003000103000000092111010001223900BE +:1003A000070584031000011201100100000008ED90 +:1003B000FE071301000102000105010906A1010564 +:1003C0000719E029E7150025019508750181020547 +:1003D000081901290595057501910295017503918B +:1003E0000105071900297715002501957875018108 +:1003F00002C005010980A101850216010026B7008F +:100400001A01002AB700751095018100C0050C097A +:1004100001A1018503160100269C021A01002A9CF5 +:1004200002751095018100C005010902A1010901B1 +:10043000A10005091901290515002501950575017A +:10044000810295017503810105010930093115818A +:10045000257F95027508810609381581257F95014C +:1004600075088106050C0A38021581257F950175EE +:10047000088106C0C005010906A101050719E02988 +:10048000E715002501950875018102950175088120 +:100490000105081901290595057501910295017558 +:1004A0000391010507190029FF150026FF00950695 +:1004B00075088100C000000000000000000000007E +:1004C000010204060A0F17202C3A4A5D71879DB37A +:1004D000C7DAE9F5FCFFFCF5E9DAC7B39D87715D82 +:1004E0004A3A2C20170F0A060402010000000000FF +:1004F00000000000000011241FBECFEFDAE0DEBFD5 +:10050000CDBF04B603FE27C0809101029091020284 +:10051000A0910302B09104028730904BA740B04BEA +:10052000D1F4109201021092020210920302109272 +:10053000040214BE84B7877F84BF0FB6F894A895D1 +:1005400080916000886180936000109260000FBE0F +:10055000E0E0FFE3099511E0A0E0B1E0E6EBF6E4AE +:1005600002C005900D92A433B107D9F712E0A4E3BD +:10057000B1E001C01D92A130B107E1F70E943C0B30 +:100580000C9459230C9400001092B9008AE08093D7 +:10059000B800089594EA9093BC009091BC0097FF36 +:1005A000FCCF9091B900987F983021F0903111F0F4 +:1005B00081E008958093BB0084E88093BC00809123 +:1005C000BC0087FFFCCF8091B900887F883111F093 +:1005D000803471F780E0089584E98093BC008091B5 +:1005E000BC0084FDFCCF08958093BB0084E8809319 +:1005F000BC008091BC0087FFFCCF9091B900987F30 +:1006000081E0983209F480E0089584E88093BC008A +:100610008091BC0087FFFCCF8091BB00089580B320 +:100620008C7080BB81B3836F81BB08958091010181 +:10063000811115C080E40E94CA02809301018111DA +:100640000CC082E10E94F40280930101811105C077 +:100650008FEF0E94F402809301010E94EC0284B1AA +:10066000807F84B985B1807F85B98AB1837F8AB95B +:100670008BB1837F8BB93E98469808950E94E00421 +:10068000809301010E9416030E940F03A5E3B1E0CD +:10069000E3E4F1E08EE08E0F11921D928E13FCCFF9 +:1006A0000C94CA040E94E004809301010E94160386 +:1006B0000E940F03A5E3B1E0E3E4F1E08EE08E0FCA +:1006C00011921D928E13FCCF0895BF92CF92DF92AC +:1006D000EF92FF920F931F93CF93DF9380910101CD +:1006E000882379F0809134018F5F809334018111E8 +:1006F00008C00E94E00480930101811102C00E94A1 +:10070000720405E311E0C0E0D0E0DD24D39482E080 +:10071000C82EEE24E394F12CC730D10500F580916A +:100720000101811164C080E40E94CA02809301012A +:10073000811112C082E10E94F402809301018111B3 +:100740000BC0C7010C2E01C0880F0A94EAF78095F0 +:100750000E94F402809301010E94EC0248C0CA305A +:10076000A1F028F4C83059F0C93061F005C0CC3090 +:1007700089F070F0CD3089F0209A289810C0219A25 +:1007800029980DC0229A2A980AC0239A2B9807C04C +:10079000529A01C0539A5B9802C03E9A469890EADA +:1007A0009A95F1F79FB1799902C082E001C080E08B +:1007B00091709D25982B7C9902C084E001C080E057 +:1007C000892B7D9902C038E001C030E0832B7E99EF +:1007D00002C020E101C020E0822B9FB19095991FBB +:1007E0009927991F9295990F907E892B0FC0809120 +:1007F0000101811149C080E40E94CA028093010175 +:10080000882379F1B12C0E94EC028B2DF8019081A4 +:10081000981719F08083C09200010E941603219658 +:100820000F5F1F4FCE30D10509F076CF80910001C8 +:10083000882361F1815080930001882339F08FE98A +:100840009FE00197F1F700C0000020C0A3E4B1E0F1 +:10085000E5E3F1E0CF01825F91919D938E13FCCF90 +:1008600015C083E10E94F402809301018111CACF77 +:1008700081E40E94CA02809301018111C3CF0E94CA +:100880000503B82EB094BFCF80E0C0CF0E947004A3 +:1008900081E0DF91CF911F910F91FF90EF90DF905A +:1008A000CF90BF900895E82FF0E0ED5BFE4F808180 +:1008B000089508950F931F93CF93DF93C3E4D1E07E +:1008C00010E00C2F025F899190E00E948C1B180FA2 +:1008D0000C13F9CF812FDF91CF911F910F910895C4 +:1008E0000C94400556985E9825982D9826982E9839 +:1008F00027982F988FEF90E090938900809388003D +:1009000090938B0080938A0090938D0080938C004D +:10091000259A2D9A2FEF80E792E021508040904059 +:10092000E1F700C00000269A2E9A2FEF80E792E0B0 +:10093000215080409040E1F700C00000279A2F9A94 +:100940002FEF80E792E0215080409040E1F700C017 +:10095000000025982D982FEF80E792E021508040ED +:100960009040E1F700C0000026982E982FEF80E716 +:1009700092E0215080409040E1F700C000002798AD +:100980002F9856985E9825982D9826982E982798F7 +:100990002F98089589EA8093800089E080938100F0 +:1009A00024982C983F988AB18F748AB96E98479A88 +:1009B0008BB1806B8BB9769A0E9472040C943F05C0 +:1009C00080E2809301018091510181110EC00E944B +:1009D000C40281E0809351012FEF83ED90E3215019 +:1009E00080409040E1F700C0000080E40E94CA020D +:1009F0008093010181112EC00E94F40280930101B5 +:100A0000811128C00E94F40280930101811122C04B +:100A10008FE30E94F4028093010181111BC00E94A8 +:100A2000EC0280E40E94CA0280930101811112C08D +:100A30008CE00E94F4028093010181110BC00E949E +:100A4000F40280930101811105C08FE30E94F4023A +:100A5000809301010E94EC028091010108956111CF +:100A60000BC0FC018281882321F085EE0E949B113E +:100A700003C085EE0E94631280E090E0089508951F +:100A80006091C2017091C3018091C4019091C50130 +:100A90000E94981B56985E9825982D9826982E9817 +:100AA00027982F98813019F0823021F00895259AE7 +:100AB0002D9A0895269A2E9A089581E0089581E04E +:100AC00008950C945F050895282F882339F090E04D +:100AD0002A3010F44D9608950697089587E290E025 +:100AE0000895AF92BF92DF92EF92FF920F931F9300 +:100AF000CF93DF938C01FC01C081D181CE010E9494 +:100B0000111ABE010E94E908EC01B8010E946105BA +:100B1000882309F4D1C1F8018281882309F4C6C071 +:100B200080916201811127C0C431F0E7DF0709F02D +:100B3000BDC10E94630581E0809362010E94321C66 +:100B400090936101809360011092550110925701BA +:100B500010925601109259011092580110925B01A7 +:100B600010925A0110925D0110925C0110925F0187 +:100B700010925E01A1C180916001909161010E947B +:100B80003E1C883C910570F480915501E82FF0E0FF +:100B9000EE0FFF1FEA5AFE4FD183C0838F5F809311 +:100BA00055018AC1C13020E8D20708F451C0F801CC +:100BB0008281882309F47EC05E01E894B7F88091B1 +:100BC0005401813079F050F08230C1F482EE0E94FD +:100BD0009B1187E50E949B1187E50EC082EE0E9463 +:100BE0009B110CC080EE0E949B1181EE0E949B1114 +:100BF00088E10E949B1188E10E9463128CE0E82E3C +:100C0000F12CC5010E2C02C0969587950A94E2F747 +:100C10008F700E946405D82E0E949B118D2D0E941A +:100C20006312F4E0EF1AF1082CEFE2162FEFF20650 +:100C300041F780915401813029F010F0823041F465 +:100C400082EE04C080EE0E94631281EE0E94631265 +:100C5000C43180E7D80768F4C23090E7D90708F0BC +:100C600046C0C115E0E7DE0771F0C130D047A1F101 +:100C70000CC1C33320E7D20709F4D8C0C433D0472E +:100C800009F4EBC002C1F8018281882309F402C192 +:100C90000E941815FFEF24E38CE0F15020408040C3 +:100CA000E1F700C000000E948D1C06C1C13080E841 +:100CB000D80770F2C43120E7D20708F0B3C0C230C1 +:100CC00080E7D807A0F4C11590E7D90709F4E2C07E +:100CD000C130D04709F0D9C0F8018281882309F4D6 +:100CE000D9C08091DF0181608093DF01E5C0F80108 +:100CF0008281882309F4CEC00E94E71C811102C0C2 +:100D00000E94CD1C0E94FA1C90E09093F301809306 +:100D1000F201C230F0E7DF0721F48091F201816037 +:100D20007AC0C33020E7D20721F48091F2018260BB +:100D300072C0C43080E7D80721F48091F20184604A +:100D40006AC0C53090E7D90719F48091F20127C035 +:100D5000C630E0E7DE0721F48091F20180615BC0DC +:100D6000C730F0E7DF0721F48091F201806253C0C1 +:100D7000C83020E7D20721F48091F20180644BC093 +:100D8000C93080E7D80721F48091F201806843C020 +:100D9000CA3090E7D90729F48091F2018460886015 +:100DA0003AC0CB30E0E7DE0721F48091F2018E7F7C +:100DB00032C0CC30F0E7DF0721F48091F2018D7F63 +:100DC0002AC0CD3020E7D20721F48091F2018B7F39 +:100DD00022C0CE3080E7D80719F48091F2011AC002 +:100DE0008091F201CF3090E7D90711F48F7E13C0C4 +:100DF000C031E0E7DE0711F48F7D0DC0C131F0E7AF +:100E0000DF0711F48F7B07C0C231D04711F48F7711 +:100E100002C08B7F877F8093F2018091F2010E9454 +:100E2000FE1C4AC0C333F0E7DF07A1F4F80182815A +:100E3000882321F01092520182E016C08091520165 +:100E4000811106C086E20E949B1186E20E94631215 +:100E500082E018C0C433D047C1F4F80182818823EE +:100E600031F01092530180E20E94B21225C08091AD +:100E70005301811106C087E20E949B1187E20E9404 +:100E8000631280E20E94B91217C081E08093520180 +:100E900080935301C801DF91CF911F910F91FF9073 +:100EA000EF90DF90BF90AF900C945D05C130F0E8FB +:100EB000DF0708F081CECCCE80E0DF91CF911F918B +:100EC0000F91FF90EF90DF90BF90AF90089526E0D4 +:100ED000729FF001112444E5849FE00DF11D11245F +:100EE000E60FF11DEE0FFF1FE25FFE4F859194911B +:100EF0000E94FB08811560E49607B0F5811570E348 +:100F0000970708F0DEC0803E9105D8F4803C91053B +:100F100008F06CC0883A910578F4853A910508F09C +:100F20006BC08130910509F452C108F40FC18430BF +:100F3000910508F04CC10AC18B3B910508F467C0CC +:100F400005C18F3F910509F048F4803F910508F0F5 +:100F5000ADC0883E910508F43AC1F8C0811520E281 +:100F6000920708F0A5C00895811543E5940790F411 +:100F7000811562E5960708F0C8C0811571E59707ED +:100F800008F0BEC0811520E5920708F09DC09F7053 +:100F9000906A0895811545E59407D8F4811564E5B4 +:100FA000960708F0C8C0482F4695469570E2479FBF +:100FB000A00111248370992721E030E0B90102C01B +:100FC000660F771F8A95E2F7CB01842B952B9A68E1 +:100FD0000895811576E5970708F4B2C09C01305654 +:100FE0002115304108F0B2C09F70AEC0FC01EE0F79 +:100FF000FF1FE657F04062C0853A910509F4A9C089 +:10100000863A910509F0A8C082E890E40895883AEC +:10101000910509F4A4C0893A910509F4A3C08A3A5C +:10102000910509F4A2C08B3A910509F4A1C08C3A4C +:10103000910509F4A0C08D3A910509F49FC0803B49 +:10104000910509F49EC08E3A910509F49DC08F3A2E +:10105000910509F49CC0813B910509F49BC0823B3A +:10106000910509F49AC0833B910509F499C0843B2A +:10107000910509F498C0853B910509F497C0863B1A +:10108000910509F496C0873B910509F495C0883B0A +:10109000910509F494C0893B910509F493C08A3BFA +:1010A000910509F492C080E094E408959065089554 +:1010B000FC01FF70EE0FFF1FE65FFE4F85919491DC +:1010C00008959927906C0895482F437021E030E0EF +:1010D00002C0220F331F4A95E2F73C68AC0164E07E +:1010E000569547956A95E1F74370342B8F70869536 +:1010F000869560E2869FC0011124822B932B089570 +:10110000982F8827816F906A0895482F46954695B5 +:1011100070E2479FA00111248370992721E030E0FD +:10112000B90102C0660F771F8A95E2F7CB01842BC5 +:10113000952B9C680895982F8827846F906A08954E +:101140008F719927982F88279062089580E090E00A +:10115000089581E890E4089583E890E4089582EE8C +:1011600094E4089589EE94E408958AEE94E4089551 +:1011700085EB94E4089586EB94E4089587EB94E47A +:1011800008958CEC94E408958DEC94E4089583E83C +:1011900095E408958AE895E4089582E995E4089530 +:1011A00084E995E4089581E296E4089583E296E463 +:1011B000089584E296E4089585E296E4089586E22F +:1011C00096E4089587E296E408958AE296E4089505 +:1011D000089596E0799FF001112494E5899FE00D30 +:1011E000F11D1124E60FF11DEE0FFF1FE25FFE4F10 +:1011F0008591949108958238910549F1B0F4813335 +:10120000910509F458C048F48932910509F44EC09B +:101210008A32910509F454C008958533910509F483 +:1012200040C08933910599F00895833E910529F1D5 +:1012300038F4803E910591F0823E9105A1F0089529 +:10124000863E9105F9F0873E910531F10895209190 +:10125000F20120FD3AC021FD38C008958091F201CD +:1012600080FD35C032C08091F20182FF32C0809192 +:10127000F20184FD30C083EE39C08091F20182FD1D +:1012800028C0F5CF8091F20183FF27C08091F20141 +:1012900084FD21C087EE2AC08091F20183FD1DC02C +:1012A000F5CF8091F20185FD1AC01BC08091F2013B +:1012B00085FD17C014C08091F20186FD14C015C0D1 +:1012C0008091F20186FD11C00EC080EE0FC089E34F +:1012D0000DC082EE0BC080E009C086EE07C089E237 +:1012E00005C085E303C08AE201C081E390E0089570 +:1012F00008950C947809809173010895CF93DF933A +:1013000000D01F92CDB7DEB79C018091F8018430E8 +:1013100019F593E099833B832A839093E9008FEF3B +:101320009091E800815095FD06C095ED9A95F1F7F2 +:1013300000008111F5CF8091E80085FF0DC040E0ED +:1013400050E063E070E0CE0101960E94E70B8091CF +:10135000E8008E778093E8000F900F900F90DF9158 +:10136000CF910895CF93DF9300D01F92CDB7DEB712 +:101370002091F801243021F522E029839B838A8380 +:1013800083E08093E9008FEF9091E800815095FD14 +:1013900006C095ED9A95F1F700008111F5CF809187 +:1013A000E80085FF0DC040E050E063E070E0CE0152 +:1013B00001960E94E70B8091E8008E778093E80009 +:1013C0000F900F900F90DF91CF9108952091F80129 +:1013D0002430F1F422E02093E9002FEF3091E8006F +:1013E000215035FD06C035ED3A95F1F70000211189 +:1013F000F5CF2091E80025FF0BC040E050E065E00C +:1014000070E00E94E70B8091E8008E778093E800FF +:101410000895CF93DF93EC019091F801943009F097 +:1014200046C080910C018823D9F080910D0188235A +:10143000B9F09093E9008FEF9091E800815095FD0D +:1014400006C095E19A95F1F700008111F5CF8091E2 +:10145000E80085FF2CC040E050E060E170E017C07C +:1014600081E08093E9008FEF9091E800815095FD35 +:1014700006C095ED9A95F1F700008111F5CF8091A6 +:10148000E80085FF14C040E050E068E070E0CE0165 +:101490000E94E70B8091E8008E778093E80080E15E +:1014A000FE01A3E6B1E001900D928A95E1F7DF918C +:1014B000CF9108958091F701811109C00E947C0DA0 +:1014C0000E94D90D8091E20084608093E20008952B +:1014D0001092F701089508950C9473210E94231C23 +:1014E0000E9479210E947F100C94790942E061ECFE +:1014F00081E00E94F60C42E061EC82E00E94F60C72 +:1015000042E061EC83E00E94F60C42E161EC84E091 +:101510000C94F60C8091FA01833009F455C030F434 +:10152000813071F0823009F48EC008958A3009F458 +:101530007AC08B3009F460C0893009F09CC020C0AB +:101540008091F901813A09F096C08091E800877F87 +:101550008093E8008091FD019091FE01892B21F498 +:1015600060E183E691E003C060E080E090E070E03D +:101570000E94320C8091E8008B778093E8000895F8 +:101580008091F901813209F076C08091FD0190913E +:10159000FE01009719F0039709F06DC08091E800F3 +:1015A000877F8093E8008091E80082FD05C08091EC +:1015B000F8018111F8CF5FC08091F1008093730131 +:1015C0008091E8008B7753C08091F901813A09F04E +:1015D00052C08091FD019091FE01892B09F04BC012 +:1015E0008091E800877F8093E8008091E80080FF89 +:1015F000FCCF80910C0136C08091F9018132D9F580 +:101600008091FD019091FE01892BA9F58091E80060 +:10161000877F8093E8000E942B0D8091FB018093CF +:101620000C010C9418158091F901813221F58091FB +:10163000E800877F8093E8000E942B0D8091FC01D9 +:101640008093740108958091F901813AA1F4809109 +:10165000E800877F8093E8008091E80080FFFCCF5E +:10166000809174018093F1008091E8008E778093DF +:10167000E8000C942B0D089584B7877F84BF0FB6C4 +:10168000F894A89580916000886180936000109222 +:1016900060000FBE80E880936100109261000E949C +:1016A000CE100E947C0D0E94D90D8091E2008460D2 +:1016B0008093E20078940E945F100E94D01082E034 +:1016C00091E00E947A100E9461218091F80185309A +:1016D00069F40E94E81B8091F6018823B1F30E940F +:1016E000151C882391F30E94D10BEFCF0E94D610D6 +:1016F000ECCF292F332723303105C9F064F4213092 +:10170000310581F02230310509F043C08DE690E0CB +:101710002AE333E042C021323105F1F022323105B3 +:1017200041F137C082E190E027EA33E036C09927E3 +:101730008130910541F08230910541F0892B49F5C6 +:10174000E6E3F3E005C0EEE1F3E002C0E6E0F3E03B +:10175000849190E09F0121C06430D8F4E62FF0E03E +:10176000EE0FFF1FEE5DFE4F2081318189E090E09A +:1017700014C0643070F470E0FB01EE0FFF1FE65EF2 +:10178000FE4F20813181FB01EA5EFE4F808190E0B7 +:1017900004C080E090E020E030E0FA013183208353 +:1017A000089580E189BD82E189BD09B400FEFDCFC5 +:1017B0008091D8008F7D8093D8008091E000826076 +:1017C0008093E0008091E00081FDFCCF0895CF92EE +:1017D000DF92EF92FF920F931F93CF93DF93EC0171 +:1017E0008B016A010E944A0D811133C0C114D104DA +:1017F00039F0F60180819181081B190BC80FD91FA0 +:10180000E12CF12C0115110519F18091E80085FDFD +:1018100016C08091E8008E778093E800C114D1044F +:1018200049F0F60180819181E80EF91EF182E08293 +:1018300085E00FC00E944A0D882321F30AC08991D8 +:101840008093F10001501109FFEFEF1AFF0ADACF80 +:1018500080E0DF91CF911F910F91FF90EF90DF908B +:10186000CF9008952091FF0130910002261737078D +:1018700048F06115710539F42091E8002E77209326 +:10188000E80001C0B90140E061157105A9F120919E +:10189000F801222309F443C0253009F442C0209105 +:1018A000E80023FD40C02091E80022FD32C02091D5 +:1018B000E80020FFE9CF4091F3002091F20030E0F2 +:1018C000342BFC01CF016115710559F02830310529 +:1018D00040F481918093F100615071092F5F3F4F77 +:1018E000F1CF41E02830310509F040E02091E800D7 +:1018F0002E772093E800C8CF4111C9CF0AC080914C +:10190000F801882361F0853061F08091E80083FD63 +:101910000AC08091E80082FFF2CF80E0089582E063 +:10192000089583E0089581E008952091FF013091AA +:1019300000022617370748F06115710539F4209128 +:10194000E8002E772093E80001C0B901FC0120E0F7 +:101950006115710591F18091F801882309F440C067 +:10196000853009F43FC08091E80083FD3DC080913F +:10197000E80082FD2FC08091E80080FFE9CF209130 +:10198000F3008091F20090E0922B6115710559F0FF +:101990008830910540F424912093F10031966150F4 +:1019A00071090196F2CF21E0089709F020E08091BB +:1019B000E8008E778093E800CBCF2111CCCF0AC00E +:1019C0008091F801882361F0853061F08091E80012 +:1019D00083FD0AC08091E80082FFF2CF80E0089585 +:1019E00082E0089583E0089581E00895982F97306C +:1019F00058F59093E900981739F07091EC00209118 +:101A0000ED005091F00003C0242F762F50E021FF0D +:101A100019C03091EB003E7F3093EB003091ED0028 +:101A20003D7F3093ED003091EB0031603093EB005F +:101A30007093EC002093ED005093F0002091EE00A5 +:101A400027FF07C09F5FD3CF8F708093E90081E0AD +:101A5000089580E008958091F90187FF11C0809179 +:101A6000E80082FD05C08091F8018111F8CF11C016 +:101A70008091E8008B770BC08091F801882349F0B2 +:101A80008091E80080FFF8CF8091E8008E77809306 +:101A9000E80008952091E4003091E50095E640913A +:101AA000EC00842F817040FF22C08091E80080FD0F +:101AB0001CC08091F801882391F0853091F08091CD +:101AC000EB0085FD10C04091E4005091E500421705 +:101AD000530729F39A01915011F784E0089582E0A9 +:101AE000089583E0089581E0089580E0089540918D +:101AF000E80042FFDECF08950E94EA0D0E94F20D39 +:101B0000E0EEF0E0808181608083E8EDF0E08081AC +:101B10008F77808319BCA7EDB0E08C918E7F8C937A +:101B200080818F7E80831092F70108950F931F9319 +:101B3000CF93DF930E94EA0D0E94F20DC8EDD0E032 +:101B400088818F77888388818068888388818F7D6A +:101B5000888319BC1092F8011092F4011092F601DA +:101B60001092F50100EE10E0F80180818B7F8083F8 +:101B700088818160888342E060E080E00E94F60C0A +:101B8000E1EEF0E080818E7F8083E2EEF0E0808104 +:101B900081608083808188608083F80180818E7F6E +:101BA0008083888180618883DF91CF911F910F911D +:101BB0000895E8EDF0E080818F7E8083E7EDF0E02E +:101BC00080818160808384E082BF81E08093F7011F +:101BD0000C94960DE8EDF0E080818E7F808310926A +:101BE000E20008951092DA001092E10008951F9229 +:101BF0000F920FB60F9211242F933F934F935F9341 +:101C00006F937F938F939F93AF93BF93EF93FF93C4 +:101C10008091E10082FF0BC08091E20082FF07C04B +:101C20008091E1008B7F8093E1000E945E108091A3 +:101C3000DA0080FF1FC08091D80080FF1BC0809118 +:101C4000DA008E7F8093DA008091D90080FF0DC08A +:101C500080E189BD82E189BD09B400FEFDCF81E04C +:101C60008093F8010E945A0A05C019BC1092F8012D +:101C70000E94680A8091E10080FF19C08091E20013 +:101C800080FF15C08091E2008E7F8093E2008091FA +:101C9000E20080618093E2008091D80080628093AE +:101CA000D80019BC85E08093F8010E946C0A8091ED +:101CB000E10084FF30C08091E20084FF2CC080E10D +:101CC00089BD82E189BD09B400FEFDCF8091D800B5 +:101CD0008F7D8093D8008091E1008F7E8093E1001A +:101CE0008091E2008F7E8093E2008091E20081602B +:101CF0008093E2008091F401882311F084E007C012 +:101D00008091E30087FD02C081E001C083E0809301 +:101D1000F8010E946E0A8091E10083FF29C0809142 +:101D2000E20083FF25C08091E100877F8093E1007E +:101D300082E08093F8011092F4018091E1008E7F9F +:101D40008093E1008091E2008E7F8093E200809199 +:101D5000E20080618093E20042E060E080E00E9467 +:101D6000F60C8091F00088608093F0000E946B0A6E +:101D7000FF91EF91BF91AF919F918F917F916F9163 +:101D80005F914F913F912F910F900FBE0F901F9039 +:101D900018951F920F920FB60F9211242F933F9315 +:101DA0004F935F936F937F938F939F93AF93BF9363 +:101DB000CF93DF93EF93FF93C091E900CF708091B1 +:101DC000EC00D82FD17080FDD0E81092E90080910E +:101DD000F000877F8093F00078940E940D0F10929E +:101DE000E9008091F00088608093F000CD2BCF70E7 +:101DF000C093E900FF91EF91DF91CF91BF91AF9137 +:101E00009F918F917F916F915F914F913F912F9112 +:101E10000F900FBE0F901F9018951F93CF93DF93D5 +:101E2000CDB7DEB7AA970FB6F894DEBF0FBECDBF11 +:101E3000E9EFF1E088E08E0F9091F10091938E131D +:101E4000FBCF0E948A0A8091E80083FF1FC1809126 +:101E5000F9019091FA01492F50E04A30510508F0FC +:101E600015C1FA01EA5AFF4F0C940A23803881F019 +:101E7000823809F00BC18091FD018F708093E900D9 +:101E80008091EB0085FB882780F91092E90006C05D +:101E90008091F5019091F601911182609091E80096 +:101EA000977F9093E8008093F1001092F100C8C0F2 +:101EB000282F2D7F09F0EAC0882319F0823061F0C5 +:101EC000E5C08091FB01813009F0E0C0933009F05A +:101ED00080E08093F6012BC08091FB01811127C027 +:101EE0008091FD018F7009F4D1C08093E9002091A9 +:101EF000EB0020FF1CC0933021F48091EB00806246 +:101F000014C09091EB0090619093EB0021E030E0E1 +:101F1000A90102C0440F551F8A95E2F74093EA00D9 +:101F20001092EA008091EB0088608093EB001092A1 +:101F3000E9008091E800877F86C08111A7C01091D9 +:101F4000FB011F778091E3008078812B8093E30071 +:101F50008091E800877F8093E8000E942B0D80919C +:101F6000E80080FFFCCF8091E30080688093E3006D +:101F7000111102C082E001C083E08093F80186C0A5 +:101F80008058823008F082C08091FB019091FC0162 +:101F90008C3D53E0950779F583E08A838AE2898353 +:101FA0004FB7F894DE01139620E03EE051E2E32FB4 +:101FB000F0E050935700E49120FF03C0E295EF70EA +:101FC0003F5FEF708E2F90E0EA3010F0C79601C0AF +:101FD000C0968D939D932F5F243149F74FBF809119 +:101FE000E800877F8093E8006AE270E0CE01019606 +:101FF0000E94320C14C0AE014F5F5F4F6091FD0133 +:102000000E94790BBC01892B09F440C09091E80033 +:10201000977F9093E80089819A810E94950C809126 +:10202000E8008B778093E80031C0803879F58091A3 +:10203000E800877F8093E8008091F4018093F100AD +:102040008091E8008E778093E8000E942B0D1EC0DF +:1020500081111CC09091FB019230C0F48091E80086 +:10206000877F8093E8009093F4010E942B0D80916C +:10207000F401811106C08091E30087FD02C081E078 +:1020800001C084E08093F8010E94760A8091E80004 +:1020900083FF0AC08091E800877F8093E8008091E9 +:1020A000EB0080628093EB00AA960FB6F894DEBF37 +:1020B0000FBECDBFDF91CF911F9108950895CF93AB +:1020C0008091F8018823A1F0C091E900CF70909130 +:1020D000EC00892F817090FD80E8C82B1092E900F8 +:1020E0008091E80083FD0E940D0FCF70C093E9003E +:1020F000CF91089590937A01809379010895E091AA +:102100007901F0917A01309721F00190F081E02D72 +:10211000099480E00895E0917901F0917A01309777 +:1021200021F00280F381E02D09940895E091790176 +:10213000F0917A01309721F00480F581E02D099427 +:10214000089520917701309178018217930771F0FB +:102150009093780180937701E0917901F0917A0171 +:10216000309721F00680F781E02D099408952091A1 +:102170007501309176018217930771F09093760183 +:1021800080937501E0917901F0917A01309721F007 +:102190000084F185E02D0994089508950C94CD10E4 +:1021A0000E94291C0E943E030C94AF1C9F92AF9288 +:1021B000BF92CF92DF92EF92FF920F931F93CF9334 +:1021C000DF9300D000D000D0CDB7DEB70E9465030A +:1021D0000DE010E0AA24A394B12C902E802F0E9431 +:1021E0005304980124583E4F6901F901F080F82604 +:1021F000A1F40150110988F78FEF89838A831B822C +:102200000E94321C8160782F9D838C8349815A8182 +:102210006B818D810E946D112FC09091DF0191FF24 +:1022200004C08E830E9459048E8125E030E0A50110 +:10223000022E01C0440F0A94EAF7E42E4F21C1F0A8 +:1022400029839A828E2191E009F490E09B830E9479 +:10225000321C8160782F9D838C8349815A816B81E8 +:102260008D810E946D11F6018081E826E08204C014 +:1022700021503109E0F6BDCF0E947D1E10917B01F7 +:102280000E947F101817B9F00E947F1080937B0185 +:1022900026960FB6F894DEBF0FBECDBFDF91CF916B +:1022A0001F910F91FF90EF90DF90CF90BF90AF9074 +:1022B0009F900C94790926960FB6F894DEBF0FBE56 +:1022C000CDBFDF91CF911F910F91FF90EF90DF90E5 +:1022D000CF90BF90AF909F900895CF93DF93CDB7ED +:1022E000DEB72B970FB6F894DEBF0FBECDBF4F837E +:1022F000588769877A878B87DE01119686E0FD0112 +:1023000011928A95E9F785E0FE01379601900D92CA +:102310008A95E1F749815A816B817C818D819E810B +:102320000E94B6172B960FB6F894DEBF0FBECDBF36 +:10233000DF91CF910895CF93882309F4C2C0C82FAD +:10234000823859F40E947F1081FDBBC089E30E944E +:10235000901A0E945D1B89E30CC0833879F40E94B7 +:102360007F1080FDAEC083E50E94901A0E945D1B25 +:1023700083E50E94D21ACF910C945D1B843859F4E6 +:102380000E947F1082FD9DC087E40E94901A0E94E7 +:102390005D1B87E4EECF8CEF8C0F813A48F48C2FD5 +:1023A0000E94C72081118DC08C2F0E94901AE3CF0C +:1023B00080E28C0F883048F4C77081E001C0880F3C +:1023C000CA95EAF70E94161BD6CF8BE58C0F833097 +:1023D00078F4C53A29F0C63A31F083E890E005C0B8 +:1023E00081E890E002C082E890E0CF910C94A110C7 +:1023F00088E58C0F833108F064C0C83A39F1C93AD6 +:1024000041F1CA3A49F1CB3A51F1CC3A59F1CD3ABE +:1024100061F1C03B69F1CE3A71F1CF3A79F1C13B3C +:1024200081F1C23B89F1C33B91F1C43B99F1C53BBA +:10243000A1F1C63BA9F1C73BB1F1C83BB9F1C93B1A +:10244000C1F1CA3BC9F180E090E038C082EE90E073 +:1024500035C089EE90E032C08AEE90E02FC085EB67 +:1024600090E02CC086EB90E029C087EB90E026C07E +:102470008CEC90E023C08DEC90E020C083E891E0EC +:102480001DC08AE891E01AC082E991E017C084E992 +:1024900091E014C081E292E011C083E292E00EC0AC +:1024A00084E292E00BC085E292E008C086E292E00E +:1024B00005C087E292E002C08AE292E0CF910C94DC +:1024C000B710CF910895882309F44BC0823859F48E +:1024D0000E947F1081FF45C089E30E94901A0E94EC +:1024E0005D1B89E30CC0833871F40E947F1080FF6C +:1024F00038C083E50E94901A0E945D1B83E50E940C +:10250000D21A0C945D1B843859F40E947F1082FF0C +:1025100028C087E40E94901A0E945D1B87E4EFCFD9 +:102520009CEF980F913A58F390E2980F983050F43E +:10253000877091E001C0990F8A95EAF7892F0E9470 +:102540001C1BDFCF9BE5980F933020F480E090E0D8 +:102550000C94A110885A833120F480E090E00C9410 +:10256000B7100895882321F00E94161B0C945D1B60 +:102570000895882321F00E941C1B0C945D1B089574 +:102580007F928F929F92AF92BF92CF92DF92EF9203 +:10259000FF920F931F93CF93DF931F92CDB7DEB7B8 +:1025A0007C01C62E772EFC01058102950F701281E9 +:1025B00011110E94331B0E94891A882379F011237C +:1025C00069F080E28C0D883048F082E00E94721A37 +:1025D0000E94891A91E0D82ED92601C0D12CE72D6E +:1025E000E295EF70F0E0E05AFF4F0C940A23872D3C +:1025F000807F072D0F70882311F00295007F112333 +:1026000089F0002309F490C180E28C0D883020F419 +:10261000802F0E94161B03C0802F0E94261B0E9441 +:102620005D1B82C18C2D0E946312002309F495C1A9 +:1026300080E28C0D883020F4802F0E941C1B03C088 +:10264000802F0E942C1B0E945D1B87C1972D907FBD +:10265000872D8F70903211F08295807FCC2021F0F1 +:10266000F1E0CF16B1F01EC0112349F0002309F4A8 +:1026700014C1013009F011C10E94461B6EC1002334 +:1026800019F0013009F469C189830E94491B8981CD +:102690000AC1112321F0023008F05FC1FEC0011110 +:1026A0005CC101C1112321F0002309F4F6C03CC133 +:1026B000002309F4F8C03EC1872D86958695837066 +:1026C00090E0009719F0019761F047C1112321F0C4 +:1026D0008C2D972D937002C080E090E00E94A11095 +:1026E0003CC1112321F08C2D972D937002C080E006 +:1026F00090E00E94B71031C18C2D112319F00E9477 +:10270000851D02C00E94ED1D0E94721E26C1872DEC +:10271000837009F052C0111120C18C2D82958695CD +:102720008770880F880F9C2D9F70892E912CA12C6B +:10273000B12C082E04C0880C991CAA1CBB1C0A943E +:10274000D2F7C4FE14C00FE010E020E030E0B90181 +:10275000A80104C0440F551F661F771F8A95D2F742 +:10276000CB01BA01609570958095909503C060E0AB +:1027700070E0CB01272D26952695237030E022307E +:10278000310569F02330310589F0682979298A29D2 +:102790009B292130310571F00E94FE18DEC06829A6 +:1027A00079298A299B290E941A19D7C00E94FE18EC +:1027B000C501B4010E94E218D0C0112319F0872D81 +:1027C000817001C08695882309F4C7C08C2D82953D +:1027D00086958770880F880F9C2D9F70892E912C6D +:1027E000A12CB12C082E04C0880C991CAA1CBB1C5F +:1027F0000A94D2F7C4FE14C00FE010E020E030E0ED +:10280000B901A80104C0440F551F661F771F8A95A0 +:10281000D2F7CB01BA01609570958095909503C071 +:1028200060E070E0CB01272D269526952370422F7E +:1028300050E04230510569F04330510589F0682974 +:1028400079298A299B294130510571F00E94D819B4 +:1028500084C0682979298A299B290E94F4197DC09E +:102860000E94D819C501B4010E94BC1976C08C2DF4 +:1028700090E0FC01E05EF109E531F10508F050C09F +:10288000E059FF4F0C940A230C2D0F70872D8F7188 +:10289000112331F00E945519802F0E94B2125DC0A1 +:1028A0000E947619802F0E94B91257C0112339F067 +:1028B000011153C0872D8F710E949B194EC00230A9 +:1028C00008F04BC0F7CF112339F0872D8F710E948C +:1028D000551943C01123C9F3872D8F710E947619B2 +:1028E0003CC0112329F0872D8F710E94401935C0FB +:1028F0000E94361932C0112351F0172D1F71812FFC +:102900000E94551963E0812F0E94691A26C081E058 +:102910000E94721A023008F182E00E94721A1DC0F1 +:10292000112331F0002389F28C2D0E949B1115C0D8 +:10293000002391F28C2D0E9463120FC0472D4F701F +:102940006C2DC7010E942F050E945A1806C0472D02 +:102950004F706C2DC7010E94E808DD20F9F00E943D +:10296000651A80FD1BC0F70112820E945F1A0E9447 +:102970005519C7010E94DD140E945F1A0F90DF9164 +:10298000CF911F910F91FF90EF90DF90CF90BF906C +:10299000AF909F908F907F900C9476190F90DF915D +:1029A000CF911F910F91FF90EF90DF90CF90BF904C +:1029B000AF909F908F907F9008950F931F93CF9328 +:1029C000DF93EC01888199812B813C81232BB9F025 +:1029D0009F3F11F48F3F99F0CE010E94710588232B +:1029E00071F0688179818A810E945B1A8C010E9452 +:1029F000101A0E94D718B801CE010E94C012DF91B0 +:102A0000CF911F910F9108950E94331B0E94431B89 +:102A10000E94081B0E945D1B0E94231F0E94721EC1 +:102A200080E090E00E94A11080E090E00C94B7104C +:102A30000E94231B0C9404150E94501A292F2295E2 +:102A40002F7030E02C3031054CF42A3031056CF415 +:102A50002250310922303105A8F407C02C3031054D +:102A600069F02F30310551F00DC0803F69F018F446 +:102A7000803E40F409C0843F29F406C093FB8827B8 +:102A800080F9089580E0089581E00895CF93DF9361 +:102A900000D000D01F92CDB7DEB70F900F900F90EF +:102AA0000F900F90DF91CF910895CF93DF9300D0D7 +:102AB00000D000D0CDB7DEB726960FB6F894DEBFB3 +:102AC0000FBECDBFDF91CF9108951F93CF93DF93BA +:102AD000C0918A0116E080918B01C81799F0D0E06F +:102AE0001C9FF0011D9FF00D1124E457FE4F408103 +:102AF000518162817381848195810E94551521964F +:102B0000C770E9CFDF91CF911F9108954091BC012B +:102B10005091BD016091BE017091BF018091C001D3 +:102B20009091C1010C9455158091C10182958F70CF +:102B300009F054C08091BE01882309F44FC08091F0 +:102B40008A01A0918B016091BC017091BD014091FF +:102B5000BF015091C001B6E08A1709F43FC090E070 +:102B600041155105C1F17F3F11F46F3FA1F1B89FAD +:102B7000F001B99FF00D1124E457FE4F218172132B +:102B80002AC02081621327C02281211124C0238101 +:102B900034812417350710F421503109241B350BDB +:102BA000283C3105C0F42091C1012F702061209391 +:102BB000C10126E0289FF001299FF00D1124EF5656 +:102BC000FE4F80818F70806180838CEB91E00E944A +:102BD000DD140C94651501968770BECF0895CF92D1 +:102BE000DF92EF92FF920F931F93CF93DF93CDB7B6 +:102BF000DEB762970FB6F894DEBF0FBECDBF8C0173 +:102C000085E0F801DE011D9601900D928A95E1F7AD +:102C1000D8014C9111965C91119712966C91129774 +:102C20001396CD90DC9014973091BC017091BD014A +:102C30008091BF019091C001009709F46BC17F3F63 +:102C400019F43F3F09F466C1E090BE01EE2009F49B +:102C5000C0C02091C101C816D90628F0F601E81BB2 +:102C6000F90BCF0104C0809590958C0D9D1DFF241C +:102C7000F394883C910578F0F12C207F09F0C6C0D0 +:102C80007C2DD98AC88A89890E9446158CEB91E0EF +:102C90000E94DD14B1C0822F807F09F046C07513F9 +:102CA00014C0341312C0611110C02F702061209322 +:102CB000C1010E9486158CEB91E00E94DD14809189 +:102CC000C101D80115968C932EC0CD2819F15F3F14 +:102CD00011F44F3FF9F0F62E61111CC080918A016A +:102CE00020918B0136E0821709F45AC090E0389F9A +:102CF000F001399FF00D1124E457FE4F71815713F5 +:102D000006C07081471303C07281711103C0019620 +:102D10008770E9CFF62E662309F418C18091C101AE +:102D200081608093C101F12C11C1751308C0341367 +:102D300006C0611104C08091C101D801C3C04D8794 +:102D40005E878D859E856A8B0E941C156A89882303 +:102D5000E1F16623D1F12091C101822F82958F701C +:102D600090E0029774F08091BC019091BD0198872A +:102D70008F831986DB86CA862C87CE0107960E9430 +:102D8000DD1486E0F801ACEBB1E001900D928A957C +:102D9000E1F70E9494150E948615FF24F394D6C093 +:102DA0004D875E878D859E850E94501A292F22951A +:102DB0002F7030E0223031050CF0BCC09F7009F05C +:102DC000B6C0805E883008F4C1C0C8010E94DD141E +:102DD000E4CFC816D90608F453C0F601E81BF90B76 +:102DE000CF01883C910508F450C0F12C7C2DD98A84 +:102DF000C88A89890E944615ECEBF1E086E0DF0184 +:102E00001D928A95E9F70E948615A0C0751314C01B +:102E1000341312C0611110C08091C101F801858383 +:102E2000C8010E94DD1486E0ECEBF1E0DF011D92A9 +:102E30008A95E9F7FE2C8AC04D875E878D859E8531 +:102E40006A8B0E941C156A89882309F4BECF662309 +:102E500009F4BBCF2091C101822F82958F7090E041 +:102E600002970CF48ECF8091BC019091BD019A83A2 +:102E700089831B82DD82CC822E83CE0101967FCF97 +:102E8000809590958C0D9D1DACCFF62E662309F490 +:102E90009CCF75132EC034132CC02091C10120FD8E +:102EA0001FC0822F82958F70D9F0D80115962C9370 +:102EB00015978F3049F08F5F982F9295907F822FD2 +:102EC0008F70892B15968C93C8010E94DD1486E0C3 +:102ED000F801ACEBB1E001900D928A95E1F793CF48 +:102EE00086E0F801ACEBB1E001900D928A95E1F734 +:102EF0002DC04D875E878D859E850E941C15811192 +:102F000040CF8091C10181608093C101C8010E94BE +:102F1000DD141CC0662309F458CF4D875E878D856C +:102F20009E850E941C15882309F44FCF2ACF81115A +:102F300048CF0CC0243031050CF047CF9F7009F406 +:102F400040CFF8019581907F09F03BCF8F2D62969D +:102F50000FB6F894DEBF0FBECDBFDF91CF911F91AA +:102F60000F91FF90EF90DF90CF9008951F93CF9334 +:102F7000DF93CDB7DEB72C970FB6F894DEBF0FBE48 +:102F8000CDBF4F83588769877A878B879C87CE010F +:102F900007960E94EF15882369F08F8198852A850E +:102FA0003B85232BF1F19F3F09F063C08F3F09F070 +:102FB00060C037C086E0FE013796DE0111960190B1 +:102FC0000D928A95E1F76F817885EA85FB853097C8 +:102FD00041F17F3F11F46F3F21F120918B0130E0EF +:102FE000C90101968770992740918A0150E08417A2 +:102FF000950709F447C069837A83FD83EC8396E0E3 +:10300000929FD001939FB00D1124A457BE4FFE0193 +:10301000319601900D929A95E1F780938B010E9471 +:10302000651516E080918A0190918B018917C1F195 +:10303000189FC001112484579E4F0E94EF158823CA +:1030400079F1E0918A011E9FF0011124E457FE4FAF +:103050004081518162817381848195810E945515DF +:1030600080918A0190E001968770992780938A0168 +:10307000D9CF4F81588569857A858B859C850E943B +:103080005515CFCF0E94181510928B0110928A010E +:10309000ECEBF1E086E0DF011D928A95E9F7C1CF04 +:1030A0002C960FB6F894DEBF0FBECDBFDF91CF9147 +:1030B0001F910895EF92FF920F931F93CF93DF9389 +:1030C0008C01892B09F46CC0F12CEE24E394E80107 +:1030D0002196F8018491843740F4843008F051C07F +:1030E000813081F0823019F15BC0853709F444C02A +:1030F000A8F19CE7980F903708F052C08F770E9494 +:10310000631241C00E5F1F4FFE01C49180E28C0F1D +:10311000883048F4C7708E2D01C0880FCA95EAF731 +:103120000E94361B14C08C2F0E949B112DC00E5F75 +:103130001F4FFE01C49180E28C0F883058F4C77095 +:103140008E2D01C0880FCA95EAF70E943C1B0E9491 +:103150005D1B1AC08C2F0E94631216C00E5F1F4F9A +:10316000FE01C491CC2381F08FE99FE00197F1F734 +:1031700000C00000C150F6CF0E5F1F4FFE01F4905B +:1031800003C00E949B118E018F2D882309F49FCFCD +:10319000EFE9FFE03197F1F700C000008150F5CF73 +:1031A000DF91CF911F910F91FF90EF9008950895B7 +:1031B0006093C6017093C7018093C8019093C901C1 +:1031C0000C9404150F931F930091C6011091C70131 +:1031D0002091C8013091C901DC01CB01802B912BDA +:1031E000A22BB32B8093C6019093C701A093C80173 +:1031F000B093C9011F910F910C9404150F931F9365 +:103200000091C6011091C7012091C8013091C901F8 +:10321000DC01CB0180239123A223B3238093C60139 +:103220009093C701A093C801B093C9011F910F915A +:103230000C9404150F931F930091C6011091C701C0 +:103240002091C8013091C901DC01CB018027912771 +:10325000A227B3278093C6019093C701A093C8010A +:10326000B093C9011F910F910C9404151092C201E3 +:103270001092C3011092C4011092C5010C94041560 +:1032800041E050E060E070E004C0440F551F661F4D +:10329000771F8A95D2F74093C2015093C301609380 +:1032A000C4017093C5010C94041541E050E060E046 +:1032B00070E004C0440F551F661F771F8A95D2F730 +:1032C0008091C2019091C301A091C401B091C50148 +:1032D000482B592B6A2B7B2B4093C2015093C3017F +:1032E0006093C4017093C5010C94041541E050E053 +:1032F00060E070E004C0440F551F661F771F8A9579 +:10330000D2F740955095609570958091C20190914B +:10331000C301A091C401B091C501482359236A2378 +:103320007B234093C2015093C3016093C401709307 +:10333000C5010C94041541E050E060E070E004C069 +:10334000440F551F661F771F8A95D2F78091C201DF +:103350009091C301A091C401B091C501482759279C +:103360006A277B274093C2015093C3016093C40135 +:103370007093C5010C9404150F931F930091C20123 +:103380001091C3012091C4013091C501DC01CB0132 +:10339000802B912BA22BB32B8093C2019093C3015E +:1033A000A093C401B093C5011F910F910C94041513 +:1033B0000F931F930091C2011091C3012091C4018A +:1033C0003091C501DC01CB0180239123A223B323DB +:1033D0008093C2019093C301A093C401B093C5012F +:1033E0001F910F910C9404150F931F930091C2012C +:1033F0001091C3012091C4013091C501DC01CB01C2 +:1034000080279127A227B3278093C2019093C301FD +:10341000A093C401B093C5011F910F910C940415A2 +:103420000895CF92DF92EF92FF920F931F93CF9365 +:10343000DF938C01C090C601D090C701E090C80115 +:10344000F090C9018091C2019091C301A091C40183 +:10345000B091C501C82AD92AEA2AFB2ACFE1D0E0D7 +:10346000D701C6010C2E04C0B695A79597958795F0 +:103470000A94D2F780FF06C0B8018C2F0E9467071C +:10348000019721F4219760F780E001C08C2FDF9134 +:10349000CF911F910F91FF90EF90DF90CF90089503 +:1034A000CF93DF93EC010E94111ABE010E946707BF +:1034B000DF91CF910895CB010E94501A0895809119 +:1034C000CA0185958595859508958091CA01877073 +:1034D000089598E0899F90011124262B2093CA011A +:1034E0000C9455192091CA01809582238093CA01BA +:1034F000982F977069F430E0482F552747FD509575 +:103500002417350729F08595859585950C947619AE +:1035100008959091CA01977081E009F480E00895C0 +:1035200090910C01992321F090910D01911109C006 +:1035300020910E0130910F01F90132969FEF40E08A +:103540001FC0982F9695969596959F3050F5E091CF +:103550000E01F0910F01E90FF11D877021E030E0BD +:10356000A90102C0440F551F8A95E2F7CA01918153 +:10357000892B818308959F3F39F04F5F4E3041F092 +:1035800051915813F8CF0DC05111F7CF942FF5CFAB +:103590009F3F39F0F901E90FF11D97FDFA958283FC +:1035A0000895089590910C01992321F090910D01B7 +:1035B000911109C020910E0130910F01F90132964D +:1035C000205F3F4F1FC0982F9695969596959F30F8 +:1035D000F0F4E0910E01F0910F01E90FF11D8770F9 +:1035E00021E030E0A90102C0440F551F8A95E2F79F +:1035F000CA01809591818923818308953196E217CC +:10360000F30729F090819813F9CF1082F7CF08952E +:1036100081E090E0E0910E01F0910F01E80FF91FB9 +:103620001082019680319105A9F708959091DE01ED +:10363000892B8093DE01089580959091DE01892386 +:103640008093DE0108951092DE0108959091DD01CE +:10365000892B8093DD01089580959091DD01892368 +:103660008093DD0108951092DD0108959091DC01B1 +:10367000892B8093DC01089580959091DC0189234A +:103680008093DC0108951092DC0108958093CB01B2 +:1036900008951092CB01089580910E0190910F0131 +:1036A000FC0131969C01205F3F4F80E09191911188 +:1036B0008F5FE217F307D1F70895E0910E01F091C3 +:1036C0000F018091DE018083E0910E01F0910F01E6 +:1036D00090818091DD01892B8083E0910E01F09132 +:1036E0000F0190818091DC01892B80838091CB0137 +:1036F000882361F0E0910E01F0910F019081892BF8 +:1037000080830E944C1B81111092CB0180910E018D +:1037100090910F010C948B1020E0009739F0AC01D0 +:1037200041505109842395232F5FF7CF822F0895AD +:10373000CF92DF92EF92FF926C01EE24FF24C1142E +:10374000D104E104F10421F0C701B60120E101C078 +:1037500020E0C72ED82EE92EFF24C114D104E104A5 +:10376000F10419F0285FC701B6016B017C0154E038 +:10377000F694E794D794C7945A95D1F7C114D1041D +:10378000E104F10419F02C5FC701B6016B017C0163 +:1037900042E0F694E794D794C7944A95D1F7C114C0 +:1037A000D104E104F10419F02E5FC701B601DC0178 +:1037B000CB01B695A79597958795892B8A2B8B2B4F +:1037C00009F02F5F822FFF90EF90DF90CF90089548 +:1037D0008091F801843039F11092E00120E488E111 +:1037E00090E00FB6F894A895809360000FBE2093E8 +:1037F000600080E00E94790983B7817F846083BF85 +:1038000083B7816083BF7894889583B78E7F83BFA9 +:103810000FB6F894A895809160008861809360004D +:10382000109260000FBE089508950E9452030E94F6 +:1038300065030E94141C0E945A0491E0811101C08A +:1038400090E0892F08950E9418150E947F100C9413 +:10385000790982E084BD93E095BD9AEF97BD80938E +:103860006E0008952FB7F8948091E1019091E201E4 +:10387000A091E301B091E4012FBF0895CF92DF92B0 +:10388000EF92FF920F931F932FB7F8944091E101AD +:103890005091E2016091E3017091E4012FBF6A0150 +:1038A0007B01EE24FF248C0120E030E0C016D1061D +:1038B000E206F30610F4415051099A01281B390B16 +:1038C000C9011F910F91FF90EF90DF90CF90089565 +:1038D0001F920F920FB60F9211248F939F93AF9365 +:1038E000BF938091E1019091E201A091E301B09139 +:1038F000E4010196A11DB11D8093E1019093E201C5 +:10390000A093E301B093E401BF91AF919F918F9198 +:103910000F900FBE0F901F9018950E947C0DF89489 +:103920002FEF87EA91E6215080409040E1F700C0F8 +:10393000000087E090EBDC0180930102909302028B +:10394000A0930302B09304029CE088E10FB6F894C0 +:10395000A895809360000FBE90936000FFCF0E94F7 +:10396000E71C811102C00E94CD1C0E94F21C8093B2 +:10397000DF010E94FA1C90E09093F3018093F20122 +:1039800087FB882780F980930D010E94F61C682F21 +:1039900070E080E090E00C94D8186DEE7EEF80E04F +:1039A00090E00E94432360E082E090E00E94322396 +:1039B00060E083E090E00E94322360E084E090E0E9 +:1039C0000E94322360E085E090E00C94322380E096 +:1039D00090E00E942C2321E08D3E9E4F09F020E0D4 +:1039E000822F089582E090E00C94242383E090E0FD +:1039F0000C94242384E090E00C942423682F84E02A +:103A000090E00C9432238091E70180FF0BC060911D +:103A1000130185E0689FB001112475956795759530 +:103A200067952BC081FF09C06091130185E0689FF5 +:103A3000B00111247595679520C082FF07C0609181 +:103A4000130185E0689FB001112417C09091E8012F +:103A50009923D1F060911201961788F720911301F4 +:103A600085E0289F90011124929FA001939F500D03 +:103A7000112470E0CA010E94F6226038710540F4FA +:103A80006115710539F002C065E070E0862F089578 +:103A90008FE7089581E008958091E70180FF08C0D5 +:103AA0006091110170E0759567957595679521C0D6 +:103AB00081FF06C06091110170E07595679519C08E +:103AC00082FF04C06091110170E010C09091E80184 +:103AD0009923C1F0609110019617A0F78091110110 +:103AE000899FC001112470E00E94F62260387105A0 +:103AF00028F46115710521F0862F08958FE7089548 +:103B000081E0089561E070E0F4CF803F21F40E94ED +:103B1000031D819504C0813F29F40E94031D8093F9 +:103B2000EB010895823F21F40E94031D819504C09A +:103B3000833F29F40E94031D8093EA010895893F81 +:103B400019F40E944C1D05C08A3F31F40E944C1D9F +:103B500081958093EC0108958B3F21F40E944C1DC8 +:103B6000819504C08C3F29F40E944C1D8093ED0187 +:103B70000895843F21F48091E901816017C0853F59 +:103B800021F48091E901826011C0863F21F4809187 +:103B9000E90184600BC0873F21F48091E9018860CE +:103BA00005C0883F31F48091E90180618093E9018B +:103BB00008958D3F21F48091E70181600BC08E3F15 +:103BC00021F48091E701826005C08F3F29F4809144 +:103BD000E70184608093E7010895803F39F4809184 +:103BE000EB0187FF6CC01092EB0169C0813F29F4A3 +:103BF0008091EB011816BCF362C09091EA01823FFC +:103C000029F497FF5CC01092EA0159C0833F19F470 +:103C10001916CCF354C0893F41F48091EC01181679 +:103C20000CF04DC01092EC014AC08A3F29F48091FB +:103C3000EC0187FF44C0F6CF8B3F39F48091ED0152 +:103C400087FF3DC01092ED013AC08C3F29F480916E +:103C5000ED011816BCF333C0843F21F48091E901D3 +:103C60008E7F17C0853F21F48091E9018D7F11C0BF +:103C7000863F21F48091E9018B7F0BC0873F21F4BF +:103C80008091E901877F05C0883F31F48091E90187 +:103C90008F7E8093E90113C08D3F21F48091E7016D +:103CA0008E7F0BC08E3F21F48091E7018D7F05C090 +:103CB0008F3F29F48091E7018B7F8093E70180910A +:103CC000EA0181110EC08091EB0181110AC080913F +:103CD000EC01811106C08091ED01811102C01092AA +:103CE000E801089589EE91E00E9496100E94321C2E +:103CF0009093E6018093E50108951F93CF93DF939E +:103D00008091E5019091E6010E943E1CAC019091EA +:103D1000E801992321F02091140130E006C02091A0 +:103D200015018AE0289F900111244217530708F4D7 +:103D300086C08091EA01C091EB01D091EC01109115 +:103D4000ED01811107C0C11176C0D11174C01111EC +:103D500072C075C09F3F19F09F5F9093E8011816DD +:103D600024F40E94031D8093EA018091EA0187FFF9 +:103D700005C00E94031D81958093EA011C1624F45E +:103D80000E94031D8093EB018091EB0187FF05C02A +:103D90000E94031D81958093EB016091EA016623E7 +:103DA00039F1C091EB01CC2319F1772767FD7095AC +:103DB000872F972F0E94FD2123E333E343E35FE343 +:103DC0000E9461220E94C5216093EA016C2F77272F +:103DD00067FD7095872F972F0E94FD2123E333E322 +:103DE00043E35FE30E9461220E94C5216093EB01DF +:103DF0001D1624F40E944C1D8093EC018091EC016F +:103E000087FF05C00E944C1D81958093EC0111161F +:103E100024F40E944C1D8093ED018091ED0187FFF9 +:103E200005C00E944C1D81958093ED01DF91CF91DB +:103E30001F910C94721E9F3F09F08ECF96CFDF9199 +:103E4000CF911F910895E9EEF1E085E0DF011D9229 +:103E50008A95E9F71092E8011092E70108958330FE +:103E600081F128F4813059F08230D1F00895853005 +:103E700009F449C0B8F1863009F456C0089580911C +:103E80001501262F30E0280F311D2F3F310524F476 +:103E9000680F6093150108958FEF809315010895C1 +:103EA00080911401262F30E0280F311D2F3F31055E +:103EB00024F4680F6093140108958FEF8093140128 +:103EC000089580911301262F30E0280F311D2F3FD8 +:103ED000310524F4680F6093130108958FEF8093E8 +:103EE0001301089580911201262F30E0280F311D13 +:103EF0002F3F310524F4680F6093120108958FEF6E +:103F000080931201089580911101262F30E0280F2F +:103F1000311D2F3F310524F4680F6093110108957E +:103F20008FEF80931101089580911001262F30E0CA +:103F3000280F311D2F3F310524F4680F60931001C5 +:103F400008958FEF809310010895833011F128F4C4 +:103F5000813049F0823091F00895853081F120F16F +:103F60008630C1F1089580911501681720F4861BF1 +:103F70008093150108951092150108958091140100 +:103F8000681720F4861B8093140108951092140181 +:103F9000089580911301681720F4861B8093130104 +:103FA000089510921301089580911201681720F46A +:103FB000861B80931201089510921201089580913A +:103FC0001101681720F4861B809311010895109247 +:103FD0001101089580911001681720F4861B8093C9 +:103FE000100108951092100108950F931F938D31C1 +:103FF00009F471C008F045C0803109F485C008F5A6 +:10400000873009F46FC068F4863009F0ADC0809144 +:10401000DF01817F8E7F8093DF0181E08093EF015C +:10402000A4C08B3009F49EC08E3009F09DC08091F1 +:10403000DF0182FB222720F991E0922790FB82F991 +:104040006CC0863109F48EC060F4813109F08CC0F7 +:104050000E94181590910D0181E0892780930D0130 +:1040600081C0893109F47EC08B3109F07DC0809117 +:10407000DF0181FB222720F991E0922790FB81F953 +:104080004CC0853309F466C048F4873209F462C035 +:1040900008F44FC0893209F45DC066C0833438F437 +:1040A0008A3308F044C0883309F45CC05DC08334AF +:1040B00009F450C0883409F057C00E9418150FEF5A +:1040C00013ED20E3015010402040E1F700C0000054 +:1040D0000E948D1C47C00E947F210E947F100E9479 +:1040E000790940C09091DF01892F8095817080FB14 +:1040F00090F929F0966098609093DF0136C0997F1F +:10410000977F9093DF012EC08091DF0183FB2227F0 +:1041100020F991E0922790FB83F98093DF019923A6 +:1041200009F18091DF0181608093DF011BC0895319 +:1041300001C08D5141E050E060E070E08A019B01D8 +:1041400004C0000F111F221F331F8A95D2F7C90127 +:10415000B80104C061E070E080E090E00E94D818EF +:104160000E94181581E001C080E01F910F91089511 +:1041700080E0089580E008958E518A3030F4E82F71 +:10418000F0E0E65DFE4F8081089580E00895CF93D2 +:10419000C82F8091EF01813079F018F08230E9F179 +:1041A00086C0E0910E01F0910F018081813169F0AC +:1041B000823209F07EC009C0E0910E01F0910F013A +:1041C0008081813111F0823261F48C2F0E94B820FD +:1041D000811104C08C2F0E94F51F1DC081E090E06A +:1041E0001AC08C2F0E94BA20811114C0C43179F0FA +:1041F00048F4CB3079F0C03109F05FC082E08093A1 +:10420000EF0108C0C93219F0C83321F056C010922E +:10421000EF0153C081E0817052C0C93281F110F5C5 +:10422000C43169F1A8F4C73009F045C08AE0809331 +:10423000150194E19093140193E0909313018093FE +:10424000120188E08093110188E28093100133C04D +:1042500082EE8C0F863078F58C2F0E94BC208093E4 +:10426000EE0129C0CE34E9F020F4CB3421F56AE028 +:1042700013C0C13579F0C235F1F461E00DC0809111 +:10428000EE01882319F01092EE0115C081E08093B1 +:10429000EF0115C061E006C08091EE010E942F1F62 +:1042A0000AC06AE08091EE010E94A51F04C010922E +:1042B000EF0180E004C081E002C080E0ACCFCF918C +:1042C0000895E1E8F0E080818860808380818160EA +:1042D00080838FB7F89493E09093890090ED90934A +:1042E00088008FBF0895EFE6F0E0808182608083D0 +:1042F0000895EFE6F0E080818D7F80830895EFE6FA +:10430000F0E0908182E08927808308951F920F92C8 +:104310000FB60F9211242F933F934F935F936F9398 +:104320007F938F939F93AF93BF93EF93FF9380916E +:10433000F0019091F10101969093F1018093F001C9 +:10434000811103C082E00E947909E091F101E695B4 +:10435000E695F0E0EB54FB4FE4918091F0018E1371 +:1043600003C080E00E947909FF91EF91BF91AF9166 +:104370009F918F917F916F915F914F913F912F917D +:104380000F900FBE0F901F9018950E94CC2168943B +:10439000B1110C945B2208950E94402288F09F572F +:1043A00098F0B92F9927B751B0F0E1F0660F771F59 +:1043B000881F991F1AF0BA95C9F714C0B13091F04F +:1043C0000E945A22B1E008950C945A22672F782F48 +:1043D0008827B85F39F0B93FCCF386957795679514 +:1043E000B395D9F73EF490958095709561957F4F80 +:1043F0008F4F9F4F0895E89409C097FB3EF4909526 +:104400008095709561957F4F8F4F9F4F9923A9F0AD +:10441000F92F96E9BB279395F6958795779567953C +:10442000B795F111F8CFFAF4BB0F11F460FF1BC080 +:104430006F5F7F4F8F4F9F4F16C0882311F096E913 +:1044400011C0772321F09EE8872F762F05C06623C1 +:1044500071F096E8862F70E060E02AF09A95660F7A +:10446000771F881FDAF7880F9695879597F9089533 +:1044700057FD9058440F551F59F05F3F71F0479515 +:10448000880F97FB991F61F09F3F79F087950895FA +:10449000121613061406551FF2CF4695F1DF08C019 +:1044A000161617061806991FF1CF86957105610536 +:1044B00008940895E894BB2766277727CB0197F9DE +:1044C00008950E9474220C94E5220E94D72238F0AD +:1044D0000E94DE2220F0952311F00C94CE220C9441 +:1044E000D42211240C945B220E94382270F3959FF1 +:1044F000C1F3950F50E0551F629FF001729FBB27DB +:10450000F00DB11D639FAA27F00DB11DAA1F649F76 +:104510006627B00DA11D661F829F2227B00DA11D29 +:10452000621F739FB00DA11D621F839FA00D611DAF +:10453000221F749F3327A00D611D231F849F600DD0 +:10454000211D822F762F6A2F11249F5750409AF0F9 +:10455000F1F088234AF0EE0FFF1FBB1F661F771F85 +:10456000881F91505040A9F79E3F510580F00C9450 +:10457000CE220C945B225F3FE4F3983ED4F3869501 +:1045800077956795B795F795E7959F5FC1F7FE2BF0 +:10459000880F911D9695879597F9089597F99F67CC +:1045A00080E870E060E008959FEF80EC08950024BB +:1045B0000A941616170618060906089500240A9488 +:1045C00012161306140605060895092E0394000C0E +:1045D00011F4882352F0BB0F40F4BF2B11F460FF9D +:1045E00004C06F5F7F4F8F4F9F4F089597FB072E3B +:1045F00016F4009407D077FD09D00E94102307FC21 +:1046000005D03EF4909581959F4F089570956195E2 +:104610007F4F0895EE0FFF1F0590F491E02D099450 +:10462000AA1BBB1B51E107C0AA1FBB1FA617B707D8 +:1046300010F0A61BB70B881F991F5A95A9F78095F4 +:104640009095BC01CD010895F999FECF92BD81BD31 +:10465000F89A992780B50895A8E1B0E042E050E0CB +:104660000C944B23262FF999FECF92BD81BDF89A69 +:10467000019700B4021631F020BD0FB6F894FA9AF3 +:10468000F99A0FBE08950196272F0E9433230C94A8 +:104690003223DC01CB01FC01F999FECF06C0F2BD4B +:1046A000E1BDF89A319600B40D9241505040B8F7F0 +:0646B0000895F894FFCF0D +:1046B60002207B09090AE609B2097E090101CC013B +:1046C60028080A03140A404D363975042804F203F3 +:1046D600B9034C0365037E03970301020304050631 +:0446E60007080900B8 +:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/tkuichooseyou/keymap.c b/keyboards/ergodox_ez/keymaps/tkuichooseyou/keymap.c new file mode 100644 index 000000000..87b77e42e --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/tkuichooseyou/keymap.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 |CMD+{ | | CMD+}| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | Hyper| | Meh | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * |Ctrl/Esc| A | S | D | F | G |------| |------| H | J | K | L |; / L2| LGui | + * |--------+------+------+------+------+------| LGui | | LGui |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | App | LGui | | Del |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, LGUI(LSFT(KC_LBRC)), + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, ALL_T(KC_NO), + 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, KC_LGUI, + 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 + LGUI(LSFT(KC_RBRC)), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + MEH_T(KC_NO), 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, + KC_LGUI, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1, + KC_DELT, 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; + } + +}; -- cgit v1.2.3 From ba116ceb496011bb35ce074a3ba8c2448f059260 Mon Sep 17 00:00:00 2001 From: Peter Date: Fri, 24 Jun 2016 02:06:13 +0200 Subject: Add OS specific layers that can be switched with macros (#436) --- keyboards/planck/keymaps/pete/compiled.hex | 2305 ++++++++++++++-------------- keyboards/planck/keymaps/pete/keymap.c | 73 +- 2 files changed, 1225 insertions(+), 1153 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/pete/compiled.hex b/keyboards/planck/keymaps/pete/compiled.hex index ddf70df50..c1fa436ba 100644 --- a/keyboards/planck/keymaps/pete/compiled.hex +++ b/keyboards/planck/keymaps/pete/compiled.hex @@ -1,1143 +1,1174 @@ -:100000000C94F1020C9435030C9435030C943503D5 -:100010000C9435030C9435030C9435030C94350380 -:100020000C9435030C9435030C94D20D0C94A40E4F -:100030000C94061C0C9435030C9435030C94350376 -:100040000C9435030C9496030C9435030C943503EF -:100050000C9435030C946E1C0C9435030C943503EE -:100060000C9435030C9435030C9435030C94350330 -:100070000C9435030C9435030C9435030C94350320 -:100080000C9435030C9435030C9435030C94350310 -:100090000C9435030C9435030C9435030C94350300 -:1000A0000C9435030C9435030C943503FC030404C1 -:1000B0000E0416041E042F0458045804580458044F -:1000C0005804580458045804580458043B04110FA9 -:1000D000330F2110330F2110780F9B0F2110F00FD9 -:1000E0000310ED12ED121C131C135B137B13D114C0 -:1000F000D1148613D114361436149D14A614D114B9 -:10010000CB144314431443144314431443144314AF -:100110004314431443144314431443144314431427 -:1001200043145314611468146F1479140000000010 -:1001300000000000000000010204060A0F17202C36 -:100140003A4A5D71879DB3C7DAE9F5FCFFFCF5E932 -:10015000DAC7B39D87715D4A3A2C20170F0A06044F -:100160000201000000000000000000002B0014004D -:100170001A000800150017001C0018000C001200DF -:1001800013002A00290004001600070009000A00D5 -:100190000B000D000E000F0033003400E1001D00C5 -:1001A0001B00060019000500110010003600370082 -:1001B000380028000530E000E200E30003302C00A6 -:1001C0002C0004305000510052004F002B0014004E -:1001D0001A00090013000A000D000F0018001C008F -:1001E00033002A002900040015001600170007003C -:1001F0000B00110008000C0012003400E1001D008B -:100200001B000600190005000E0010003600370024 -:10021000380028000530E000E200E30003302C0045 -:100220002C0004305000510052004F002B003400CD -:100230003600370013001C0009000A0006001500F4 -:100240000F002A00290004001200080018000C000A -:1002500007000B001700110016003800E100330002 -:1002600014000D000E001B00050010001A001900FC -:100270001D0028000530E000E200E30003302C0000 -:100280002C0004305000510052004F0035021E0275 -:100290001F0220022102220223022402250226023A -:1002A00027022A00010001000100010001000100F5 -:1002B00001002D022E022F02300231020100010046 +:100000000C9483030C94C7030C94C7030C94C7038C +:100010000C94C7030C94C7030C94C7030C94C70338 +:100020000C94C7030C94C7030C94C30E0C94950F47 +:100030000C94F61C0C94C7030C94C7030C94C703D0 +:100040000C94C7030C9428040C94C7030C94C703A6 +:100050000C94C7030C945E1D0C94C7030C94C70347 +:100060000C94C7030C94C7030C94C7030C94C703E8 +:100070000C94C7030C94C7030C94C7030C94C703D8 +:100080000C94C7030C94C7030C94C7030C94C703C8 +:100090000C94C7030C94C7030C94C7030C94C703B8 +:1000A0000C94C7030C94C7030C94C70391049904E0 +:1000B000A304AB04B304C4040B05FD04FD04FD0458 +:1000C0000B050B050B050B050B050B05CC04EA0412 +:1000D0000210241012112410121169108C10121128 +:1000E000E110F410DE13DE130D140D144C146C1417 +:1000F000C215C2157714C215271527158E15971529 +:10010000C215BC1534153415341534153415341591 +:100110003415341534153415341534153415341597 +:100120003415341544155215591560156A1500001B +:10013000000000000000000000010204060A0F1782 +:10014000202C3A4A5D71879DB3C7DAE9F5FCFFFCC4 +:10015000F5E9DAC7B39D87715D4A3A2C20170F0A7B +:1001600006040201000000000000000000002B0057 +:1001700014001A000800150017001C0018000C00DD +:10018000120013002A0029000400160007000900CD +:100190000A000B000D000E000F0033003400E100D8 +:1001A0001D001B000600190005001100100036009C +:1001B0003700380028001130E000E200E30003308F +:1001C0002C002C0004305000510052004F002B0036 +:1001D00014001A00090013000A000D000F00180097 +:1001E0001C0033002A002900040015001600170027 +:1001F00007000B00110008000C0012003400E100A1 +:100200001D001B000600190005000E00100036003E +:100210003700380028001130E000E200E30003302E +:100220002C002C0004305000510052004F002B00D5 +:1002300034003600370013001C0009000A000600D5 +:1002400015000F002A002900040012000800180001 +:100250000C0007000B001700110016003800E10029 +:10026000330014000D000E001B00050010001A00E2 +:1002700019001D0028001130E000E200E300033007 +:100280002C002C0004305000510052004F00350269 +:100290001E021F0220022102220223022402250242 +:1002A000260227022A0001000100010001000100CE +:1002B000010001002D022E022F0230023102010046 :1002C0000100010001000100010001000100010026 :1002D0000100010001000100010001000100010016 -:1002E00001000100AB00AA00A900AE0035001E000D -:1002F0001F002000210022002300240025002600EA -:1003000027002A0001000100010001000100010096 -:1003100001002D002E002F003000310001000100EF +:1002E000010001000100AB00AA00A900AE0035002A +:1002F0001E001F00200021002200230024002500F2 +:10030000260027002A000100010001000100010071 +:10031000010001002D002E002F00300031000100EF :1003200001000100010001000100010001000100C5 -:1003300001000100010001000100010001000100B5 -:1003400001000100AB00AA00A900AE0083506603C3 -:10035000000000000000000000003A003B003C00EC -:100360003D004C0001001030A800AA00A9000000C8 -:1003700000003E003F0040004100200A0100350817 -:10038000AC00AE00AB00000000004200430044009F -:100390004500210A053001000100010000000000B5 -:1003A000000000004A004E004B004D00010001001B +:1003300001000100010004000100010001000100B2 +:10034000010001000100AB00AA00A900AE000000FE +:10035000000000000000000000000000000000009D +:10036000000000000000000000000000000000008D +:10037000000000000000000000000000000000007D +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000000001004C :1003B0000100010001000100010001000100010035 -:1003C0000100010001000100010001000100010025 -:1003D0000100003001300230010001000100010085 +:1003C00001000100010001000100010008300730B8 +:1003D0000100010000300130023001000100010085 :1003E0000100010001000100010001000100010005 -:1003F00001000100010001000100010001000050A6 -:100400000050010001000100010001002803540018 -:1004100068006500200050006C0061006E00630001 -:100420006B0020004B006500790062006F006100E6 -:100430007200640000002C034F007200740068001A -:100440006F006C0069006E006500610072002000A2 -:100450004B006500790062006F006100720064006B -:10046000730000000403090409026D00040100A0E8 -:10047000FA09040000010301010009211101000132 -:10048000223F000705810308000A09040100010357 -:10049000010200092111010001224D00070582031C -:1004A00008000A09040200010300000009211101EB -:1004B00000012236000705830308000A090403002F -:1004C0000103000000092111010001223900070584 -:1004D00084031000011201100100000008EDFE600D -:1004E0006001000102000105010906A101050719CB -:1004F000E029E71500250195087501810205081915 -:100500000129059505750191029501750391010574 -:10051000071900297715002501957875018102C01A -:1005200005010980A101850216010026B7001A0104 -:10053000002AB700751095018100C0050C0901A1C2 -:10054000018503160100269C021A01002A9C0275EF -:100550001095018100C005010902A1010901A10056 -:100560000509190129051500250195057501810267 -:100570009501750381010501093009311581257F38 -:1005800095027508810609381581257F9501750842 -:100590008106050C0A38021581257F9501750881B1 -:1005A00006C0C005010906A101050719E029E715E4 -:1005B00000250195087501810295017508810105E5 -:1005C0000819012905950575019102950175039199 -:1005D000010507190029FF150025FF9506750881FB -:1005E00000C011241FBECFEFDAE0DEBFCDBF04B6DE -:1005F00003FE24C08091FB019091FC01A091FD01BC -:10060000B091FE018730904BA740B04BB9F41092E7 -:10061000FB011092FC011092FD011092FE0114BE2C -:1006200084B7877F84BF88E10FB6F8948093600019 -:10063000109260000FBEE0E0F8E3099511E0A0E041 -:10064000B1E0E6E0F7E402C005900D92A434B107F2 -:10065000D9F711E0A4E4B1E001C01D92AB3FB107AE -:10066000E1F70E94180B0C9481230C94000008956C -:1006700081E0089508950C9437030C9438030C948A -:100680003A030E94F72123E030E0281B3109220FB2 -:10069000209348010895282F2F98809180002111E0 -:1006A00008C0877F8093800010928D0010928C008C -:1006B0001BC0886080938000233019F48FEF9FEF78 -:1006C0000FC083E090E0821B9109880F991F2FEFE4 -:1006D0003FEFA90102C0569547958A95E2F7CA01F6 -:1006E00090938D0080938C000C9441030E944103F1 -:1006F00084E080934701109244010895279A2F982F -:100700008FEF9FEF90938700809386008AE080931D -:10071000800089E1809381000E9460210C9476031F -:100720000E947E036E9A769A0C945B041F920F923D -:100730000FB60F9211242F933F938F939F93EF93B4 -:10074000FF93E0914501F0914601CF01019690930E -:100750004601809345010090470102C0F695E79558 -:100760000A94E2F7EF7380914401823019F4E03289 -:1007700051F404C0813039F4EF3329F480916F00D3 -:100780008D7F80936F00F0E0E45DFE4FE49121E007 -:1007900031E0E29FC001E39F900D112400904801D9 -:1007A00002C0969587950A94E2F790938D00809306 -:1007B0008C00FF91EF919F918F913F912F910F901E -:1007C0000FBE0F901F901895CF93DF93EC010E94FE -:1007D000021DBE0180E090E0DF91CF910C94FC18E7 -:1007E000462F50E04131510508F062C0DC01FA01AA -:1007F000EA5AFF4F0C94312312968C91882309F406 -:1008000057C081E090E007C012968C91882309F4CC -:100810004FC082E090E00E94E4034AC012968C919F -:10082000882309F445C084E090E0F5CF12968C91BE -:10083000882311F083E007C083E00EC012968C91EC -:10084000882349F084E00E94791946E064E083E05F -:100850000E9428082DC084E00E949A19F6CF1296B3 -:100860008C91882321F085E00E94791921C085E0D0 -:100870000E949A191DC012968C91882369F085EE0A -:100880000E94911184EE0E94911186EE0E949111B6 -:1008900087EE0E9491110CC085EE0E94591284EEE1 -:1008A0000E94591286EE0E94591287EE0E94591238 -:1008B00080E090E00895089581E008950C945C0430 -:1008C00008950F931F93CF93DF938C01FC01C08198 -:1008D000D181CE010E94351ABE010E940E05EC01A5 -:1008E000B8010E945E04882309F48DC0F80182815A -:1008F000882309F44AC08091540181111FC0C4317A -:10090000F0E5DF0709F051C00E94600481E08093A8 -:1009100054010E94381C909353018093520110920D -:100920004B0110924D0110924C0110924F01109208 -:100930004E01109251011092500165C080915201F8 -:10094000909153010E94441C883C910570F4809161 -:100950004B01E82FF0E0EE0FFF1FE45BFE4FD18369 -:10096000C0838F5F80934B014EC0C43880E5D807A9 -:1009700021F0C538D04501F13AC0F80182818823C1 -:1009800041F01092490182E01EC0C438E0E5DE0764 -:1009900059F580914901811106C086E20E949111AA -:1009A00086E20E94591282E01CC0C438F0E5DF07DD -:1009B00041F3C538D045D9F4F8018281882331F05C -:1009C00010924A0180E20E94A8121DC080914A0143 -:1009D000811106C087E20E94911187E20E9459129C -:1009E00080E20E94AF120FC0C538D04529F381E0E4 -:1009F0008093490180934A01C801DF91CF911F91F3 -:100A00000F910C943D0380E0DF91CF911F910F91E6 -:100A100008950C9490030C943B0308959CE0799FF7 -:100A2000F001112490E3899FE00DF11D1124E60FE0 -:100A3000F11DEE0FFF1FE459FE4F8591949108952B -:100A4000880F991FFC01E451F0408591949108951D -:100A5000880F991FFC01E459FE4F859194910895E8 -:100A60000F931F93CF93DF93EC01811521E392073E -:100A7000A0F5C11580E3D80708F0D7C0C83ED1055E -:100A8000D8F4C03ED10508F003C2C83AD10578F4C5 -:100A9000C53AD10508F06AC0C130D10509F463C078 -:100AA00008F4F3C1C430D10508F0F2C1EEC1CB3B6C -:100AB000D10508F466C0E9C1C11590E2D90708F074 -:100AC000AFC0C11521E0D20708F0E2C1C03FD10597 -:100AD00008F4DBC18E0110651BC2C03880E5D80761 -:100AE00000F5C03790E5D90708F0A3C0C11520E58F -:100AF000D20709F4ACC050F4CE01905480319F402D -:100B000008F0C3C1DF708E01106A02C2C13080E5F7 -:100B1000D80709F4AAC0C43190E5D90708F4ABC0DE -:100B2000B4C1C33820E5D20709F48EC050F4C138EF -:100B300090E5D90709F482C008F083C000E011ED08 -:100B4000E7C1C03181E5D80708F49FC1C11597E519 -:100B5000D90708F432C1CE0190578115904108F0B1 -:100B600094C1DF708FC101E010E0D2C1C53AD10558 -:100B700009F490C1C63AD10509F08FC102E810E42A -:100B8000C7C1C83AD10509F48BC1C93AD10509F4E6 -:100B90008AC1CA3AD10509F489C1CB3AD10509F411 -:100BA00088C1CC3AD10509F487C1CD3AD10509F401 -:100BB00086C1C03BD10509F485C1CE3AD10509F4FF -:100BC00084C1CF3AD10509F483C1C13BD10509F4F1 -:100BD00082C1C23BD10509F481C1C33BD10509F4EF -:100BE00080C1C43BD10509F47FC1C53BD10509F4DF -:100BF0007EC1C63BD10509F47DC1C73BD10509F4CF -:100C00007CC1C83BD10509F47BC1C93BD10509F4BE -:100C10007AC1CA3BD10509F479C100E014E478C176 -:100C2000CE019F700E94280574C1DD278E01106CD3 -:100C30006FC1CF70DD278E01146D6AC100E010ED29 -:100C400067C100E012ED64C100E013ED61C10E94D4 -:100C50003C158FEF94E32CE0815090402040E1F769 -:100C600000C000000E94931C53C18091DB01816091 -:100C70008093DB014DC10E94EF1C811102C00E94D4 -:100C8000D01C0E94071D90E09093FA018093F90117 -:100C9000C23080E5D80721F48091F901816086C0D7 -:100CA000C43090E5D90721F48091F90182607EC0BB -:100CB000C63020E5D20721F48091F901846076C026 -:100CC000C83080E5D80719F48091F90127C0CA30EF -:100CD00090E5D90721F48091F901806167C0CC309B -:100CE00020E5D20721F48091F90180625FC0CE3007 -:100CF00080E5D80721F48091F901806457C0C031A4 -:100D000090E5D90721F48091F90180684FC0C23184 -:100D100020E5D20729F48091F9018460886046C0FB -:100D2000C33080E5D80721F48091F9018E7F3EC061 -:100D3000C53090E5D90721F48091F9018D7F36C047 -:100D4000C73020E5D20721F48091F9018B7F2EC0B6 -:100D5000C93080E5D80719F48091F90126C0CB305D -:100D600090E5D90721F48091F9018F7E1FC0CD3025 -:100D700020E5D20721F48091F9018F7D17C0CF3093 -:100D800080E5D80721F48091F9018F7B0FC0C13134 -:100D900090E5D90721F48091F9018F7707C0C3311D -:100DA000D04531F48091F9018B7F877F8093F901E1 -:100DB0008091F9010E940B1DABC08D2F99278F7078 -:100DC000992781309105D9F49E012370332702C001 -:100DD000880F991F2A95E2F79C688E0144E0000F66 -:100DE000111F4A95E1F700271370802B912B53E0D8 -:100DF000CC0FDD1F5A95E1F7C076DD272FC082307A -:100E0000910531F4DC2FCC278E01016F106A80C070 -:100E10008330910569F4CE018370992701E010E0D9 -:100E200002C0000F111F8A95E2F7C8019C680FC02D -:100E300084309105B9F4CE018370992701E010E068 -:100E400002C0000F111F8A95E2F7C8019A6823E0DB -:100E5000CC0FDD1F2A95E1F7C07ED7708C010C2BDB -:100E60001D2B56C08530910531F4DC2FCC278E0127 -:100E7000046F106A4DC0069709F04AC0CF71DD2794 -:100E8000DC2FCC278E01106243C000E010E040C090 -:100E90008E013EC001E810E43BC003E810E438C016 -:100EA00002EE14E435C009EE14E432C00AEE14E494 -:100EB0002FC005EB14E42CC006EB14E429C007EBAB -:100EC00014E426C00CEC14E423C00DEC14E420C0A0 -:100ED00003E815E41DC00AE815E41AC002E915E4A8 -:100EE00017C004E915E414C001E216E411C003E2DE -:100EF00016E40EC004E216E40BC005E216E408C0D6 -:100F000006E216E405C007E216E402C00AE216E4AF -:100F1000C801DF91CF911F910F9108959CE0799FB7 -:100F2000F001112490E3899FE00DF11D1124E60FDB -:100F3000F11DEE0FFF1FE459FE4F85919491803E05 -:100F40009105E0F4803C910558F58133910509F451 -:100F50006FC048F48932910509F463C08A32910563 -:100F600009F46DC072C089339105E9F082389105AA -:100F7000D1F08533910509F44DC067C0833E9105DA -:100F800081F138F4803E9105B9F0823E9105D9F0A7 -:100F90005CC0863E910561F1873E9105A1F155C087 -:100FA0000E94200508952091F90120FD02C021FF33 -:100FB0004CC080EE90E049C08091F90180FFF9CFEC -:100FC00089E390E042C08091F90182FF0EC08091D8 -:100FD000F90184FF03C080E090E037C083EE90E029 -:100FE00034C08091F90182FFF2CF82EE90E02DC0F3 -:100FF0008091F90183FF0BC08091F90184FDEBCF53 -:1010000087EE90E022C08091F90183FFF5CF86EE54 -:1010100090E01BC08091F90185FF07C089E290E054 -:1010200014C08091F90185FFF9CF85E390E00DC0F0 -:101030008091F90186FF07C08AE290E006C08091A6 -:10104000F90186FFF9CF81E390E00E943005089511 -:10105000CF92DF92EF92FF920F931F9301E010E087 -:1010600020E030E06801790104C0CC0CDD1CEE1CEE -:10107000FF1C8A95D2F704C0000F111F221F331FD7 -:101080006A95D2F70C291D292E293F29C090BE014F -:10109000D090BF01E090C001F090C101C022D122E8 -:1010A000E222F322842FC016D106E206F30641F4B1 -:1010B0001F910F91FF90EF90DF90CF900C947919D2 -:1010C0001F910F91FF90EF90DF90CF900C949A19A1 -:1010D0000C943F03E82FF0E0EF5DFE4F8081E82F96 -:1010E000EF70F0E082958F7021E030E0A90102C03E -:1010F000440F551F8A95E2F740A308950F931F935D -:10110000CF93DF9385B7806885BF85B7806885BF3B -:10111000C3E0D0E001E010E0FE01EF5DFE4F808112 -:10112000E82FEF70F0E021A182958F70A80102C036 -:10113000440F551F8A95E2F7CA01822B81A38C2F99 -:101140000E946A08219740F78BE090E061E070E030 -:10115000FC01EB5EFE4F2081E22FEF70F0E042A138 -:1011600022952F70DB0102C0AA0FBB1F2A95E2F760 -:101170009D01242B22A3019758F7DF91CF911F9156 -:101180000F910C940905EF92FF920F931F93CF9349 -:10119000DF930DE511E0C3E0EE24E394F12CD5E0FC -:1011A0008C2F0E946A088BE090E040E050E0FC0148 -:1011B000EB5EFE4F6081E62FEF70F0E020A130E0A3 -:1011C00062956F7002C0359527956A95E2F720FD0C -:1011D00009C09701082E02C0220F331F0A94E2F7BC -:1011E000422B532B019718F7F801929182918F01AE -:1011F0008417950721F051834083D09300018C2FF1 -:101200000E946A08C15060F68091000187FD2CC0E1 -:101210008150809300018F3F39F08FE99FE0019763 -:10122000F1F700C0000020C080915B0190915C014B -:1012300090936401809363018091590190915A01C8 -:1012400090936201809361018091570190915801C0 -:101250009093600180935F018091550190915601B8 -:1012600090935E0180935D010E940B0581E0DF9108 -:10127000CF911F910F91FF90EF900895E82FF0E02C -:10128000EE0FFF1FE35AFE4F80819181089508956C -:101290000F931F93CF9305E611E0C0E0F801929100 -:1012A00082918F010E94B01BC80FF1E00D351F071E -:1012B000A9F78C2FCF911F910F91089580917501FF -:1012C0000895CF93DF9300D01F92CDB7DEB79C0176 -:1012D0008091F001843019F593E099833B832A8350 -:1012E0009093E9008FEF9091E800815095FD06C042 -:1012F00095ED9A95F1F700008111F5CF8091E80006 -:1013000085FF0DC040E050E063E070E0CE01019643 -:101310000E94C20B8091E8008E778093E8000F90C6 -:101320000F900F90DF91CF910895CF93DF9300D06E -:101330001F92CDB7DEB72091F001243021F522E0D5 -:1013400029839B838A8383E08093E9008FEF9091C8 -:10135000E800815095FD06C095ED9A95F1F70000E3 -:101360008111F5CF8091E80085FF0DC040E050E08D -:1013700063E070E0CE0101960E94C20B8091E8000C -:101380008E778093E8000F900F900F90DF91CF91B0 -:1013900008952091F0012430F1F422E02093E90037 -:1013A0002FEF3091E800215035FD06C035ED3A951C -:1013B000F1F700002111F5CF2091E80025FF0BC0C7 -:1013C00040E050E065E070E00E94C20B8091E800D0 -:1013D0008E778093E8000895CF93DF93EC0190918E -:1013E000F001943009F046C080910B018823D9F0B8 -:1013F00080910C018823B9F09093E9008FEF9091D0 -:10140000E800815095FD06C095E19A95F1F700003E -:101410008111F5CF8091E80085FF2CC040E050E0BD -:1014200060E170E017C081E08093E9008FEF909158 -:10143000E800815095FD06C095ED9A95F1F7000002 -:101440008111F5CF8091E80085FF14C040E050E0A5 -:1014500068E070E0CE010E94C20B8091E8008E77B8 -:101460008093E80080E1FE01A5E6B1E001900D92D5 -:101470008A95E1F7DF91CF9108958091EF01811175 -:1014800009C00E94570D0E94B40D8091E200846053 -:101490008093E20008951092EF0108950895089551 -:1014A0000C94FB1B42E061EC81E00E94D10C42E015 -:1014B00061EC82E00E94D10C42E061EC83E00E948A -:1014C000D10C42E161EC84E00C94D10C8091F201EA -:1014D000833009F455C030F4813071F0823009F462 -:1014E0008EC008958A3009F47AC08B3009F460C048 -:1014F000893009F09CC020C08091F101813A09F047 -:1015000096C08091E800877F8093E8008091F50184 -:101510009091F601892B21F460E185E691E003C00A -:1015200060E080E090E070E00E940D0C8091E800A7 -:101530008B778093E80008958091F101813209F062 -:1015400076C08091F5019091F601009719F003970C -:1015500009F06DC08091E800877F8093E80080915A -:10156000E80082FD05C08091F0018111F8CF5FC0D5 -:101570008091F100809375018091E8008B7753C0D2 -:101580008091F101813A09F052C08091F50190916A -:10159000F601892B09F04BC08091E800877F80938A -:1015A000E8008091E80080FFFCCF80910B0136C0FD -:1015B0008091F1018132D9F58091F5019091F60188 -:1015C000892BA9F58091E800877F8093E8000E942D -:1015D000060D8091F30180930B010C943C158091D2 -:1015E000F101813221F58091E800877F8093E80046 -:1015F0000E94060D8091F4018093760108958091F8 -:10160000F101813AA1F48091E800877F8093E8009E -:101610008091E80080FFFCCF809176018093F100FB -:101620008091E8008E778093E8000C94060D089571 -:1016300084B7877F84BF88E10FB6F89480936000F9 -:10164000109260000FBE90E080E80FB6F89480938F -:101650006100909361000FBE0E94A9100E94570D77 -:101660000E94B40D8091E20084608093E20078943F -:101670000E943A100E94AB1081E091E00E94551048 -:101680008091F001853069F40E94BC1B8091EE01CD -:101690008823B1F30E94EA1B882391F30E94AC0BCC -:1016A000EFCF0E94B310ECCF292F33272330310521 -:1016B000C9F064F42130310581F02230310509F0A0 -:1016C00043C08DE690E028E634E042C02132310587 -:1016D000F1F02232310541F137C082E190E025ED91 -:1016E00034E036C099278130910541F08230910570 -:1016F00041F0892B49F5E4E6F4E005C0E6E3F4E0C7 -:1017000002C0ECE0F4E0849190E09F0121C06430DD -:10171000D8F4E62FF0E0EE0FFF1FEF5CFE4F2081C4 -:10172000318189E090E014C0643070F470E0FB0116 -:10173000EE0FFF1FE75DFE4F20813181FB01EB5D66 -:10174000FE4F808190E004C080E090E020E030E037 -:10175000FA0131832083089580E189BD82E189BD4A -:1017600009B400FEFDCF8091D8008F7D8093D80012 -:101770008091E00082608093E0008091E00081FD34 -:10178000FCCF0895CF92DF92EF92FF920F931F93B9 -:10179000CF93DF93EC018B016A010E94250D81112B -:1017A00033C0C114D10439F0F60180819181081B46 -:1017B000190BC80FD91FE12CF12C0115110519F1D6 -:1017C0008091E80085FD16C08091E8008E778093B7 -:1017D000E800C114D10449F0F60180819181E80E3E -:1017E000F91EF182E08285E00FC00E94250D88235A -:1017F00021F30AC089918093F10001501109FFEF94 -:10180000EF1AFF0ADACF80E0DF91CF911F910F919D -:10181000FF90EF90DF90CF9008952091F7013091E5 -:10182000F8012617370748F06115710539F4209142 -:10183000E8002E772093E80001C0B90140E061156F -:101840007105A9F12091F001222309F443C025304C -:1018500009F442C02091E80023FD40C02091E80037 -:1018600022FD32C02091E80020FFE9CF4091F30033 -:101870002091F20030E0342BFC01CF01611571059D -:1018800059F02830310540F481918093F100615086 -:1018900071092F5F3F4FF1CF41E02830310509F04A -:1018A00040E02091E8002E772093E800C8CF411156 -:1018B000C9CF0AC08091F001882361F0853061F0C2 -:1018C0008091E80083FD0AC08091E80082FFF2CF9A -:1018D00080E0089582E0089583E0089581E008950E -:1018E0002091F7013091F8012617370748F061156C -:1018F000710539F42091E8002E772093E80001C0AB -:10190000B901FC0120E06115710591F18091F001B0 -:10191000882309F440C0853009F43FC08091E80075 -:1019200083FD3DC08091E80082FD2FC08091E800DA -:1019300080FFE9CF2091F3008091F20090E0922B9C -:101940006115710559F08830910540F42491209378 -:10195000F1003196615071090196F2CF21E00897AC -:1019600009F020E08091E8008E778093E800CBCFEB -:101970002111CCCF0AC08091F001882361F085301D -:1019800061F08091E80083FD0AC08091E80082FF49 -:10199000F2CF80E0089582E0089583E0089581E029 -:1019A0000895982F973058F59093E900981739F0DB -:1019B0007091EC002091ED005091F00003C0242FB5 -:1019C000762F50E021FF19C03091EB003E7F30931D -:1019D000EB003091ED003D7F3093ED003091EB0056 -:1019E00031603093EB007093EC002093ED00509346 -:1019F000F0002091EE0027FF07C09F5FD3CF8F70CC -:101A00008093E90081E0089580E008958091F101DC -:101A100087FF11C08091E80082FD05C08091F00130 -:101A20008111F8CF11C08091E8008B770BC08091B5 -:101A3000F001882349F08091E80080FFF8CF809181 -:101A4000E8008E778093E80008952091E4003091BB -:101A5000E50095E64091EC00842F817040FF22C0A4 -:101A60008091E80080FD1CC08091F001882391F0F6 -:101A7000853091F08091EB0085FD10C04091E4002D -:101A80005091E5004217530729F39A01915011F73D -:101A900084E0089582E0089583E0089581E0089548 -:101AA00080E008954091E80042FFDECF08950E9453 -:101AB000C50D0E94CD0DE0EEF0E080818160808355 -:101AC000E8EDF0E080818F77808319BCA7EDB0E06E -:101AD0008C918E7F8C9380818F7E80831092EF011A -:101AE00008950F931F93CF93DF930E94C50D0E941B -:101AF000CD0DC8EDD0E088818F778883888180689C -:101B0000888388818F7D888319BC1092F0011092A0 -:101B1000EC011092EE011092ED0100EE10E0F801E0 -:101B200080818B7F808388818160888342E060E050 -:101B300080E00E94D10CE1EEF0E080818E7F808316 -:101B4000E2EEF0E080818160808380818860808324 -:101B5000F80180818E7F8083888180618883DF9116 -:101B6000CF911F910F910895E8EDF0E080818F7E75 -:101B70008083E7EDF0E080818160808384E082BF34 -:101B800081E08093EF010C94710DE8EDF0E080812D -:101B90008E7F80831092E20008951092DA001092F6 -:101BA000E10008951F920F920FB60F9211242F9308 -:101BB0003F934F935F936F937F938F939F93AF93D5 -:101BC000BF93EF93FF938091E10082FF0BC0809160 -:101BD000E20082FF07C08091E1008B7F8093E100EB -:101BE0000E9439108091DA0080FF1FC08091D800D8 -:101BF00080FF1BC08091DA008E7F8093DA00809195 -:101C0000D90080FF0DC080E189BD82E189BD09B4A2 -:101C100000FEFDCF81E08093F0010E943D0A05C0E7 -:101C200019BC1092F0010E944B0A8091E10080FFE4 -:101C300019C08091E20080FF15C08091E2008E7F84 -:101C40008093E2008091E20080618093E2008091C5 -:101C5000D80080628093D80019BC85E08093F001A1 -:101C60000E944F0A8091E10084FF30C08091E20021 -:101C700084FF2CC080E189BD82E189BD09B400FEEA -:101C8000FDCF8091D8008F7D8093D8008091E100B6 -:101C90008F7E8093E1008091E2008F7E8093E2004E -:101CA0008091E20081608093E2008091EC018823C2 -:101CB00011F084E007C08091E30087FD02C081E05D -:101CC00001C083E08093F0010E94500A8091E100FE -:101CD00083FF29C08091E20083FF25C08091E1004D -:101CE000877F8093E10082E08093F0011092EC0105 -:101CF0008091E1008E7F8093E1008091E2008E7FF1 -:101D00008093E2008091E20080618093E20042E0F3 -:101D100060E080E00E94D10C8091F00088608093A8 -:101D2000F0000E944E0AFF91EF91BF91AF919F91F9 -:101D30008F917F916F915F914F913F912F910F9074 -:101D40000FBE0F901F9018951F920F920FB60F9213 -:101D500011242F933F934F935F936F937F938F93B0 -:101D60009F93AF93BF93CF93DF93EF93FF93C09174 -:101D7000E900CF708091EC00D82FD17080FDD0E8C1 -:101D80001092E9008091F000877F8093F0007894B2 -:101D90000E94E80E1092E9008091F0008860809324 -:101DA000F000CD2BCF70C093E900FF91EF91DF9150 -:101DB000CF91BF91AF919F918F917F916F915F91E3 -:101DC0004F913F912F910F900FBE0F901F9018953C -:101DD0001F93CF93DF93CDB7DEB7AA970FB6F894D2 -:101DE000DEBF0FBECDBFE1EFF1E088E08E0F909136 -:101DF000F10091938E13FBCF0E94660A8091E80058 -:101E000083FF1FC18091F1019091F201492F50E0B1 -:101E10004A30510508F015C1FA01E959FF4F0C94F9 -:101E20003123803881F0823809F00BC18091F501AF -:101E30008F708093E9008091EB0085FB882780F903 -:101E40001092E90006C08091ED019091EE01911190 -:101E500082609091E800977F9093E8008093F10072 -:101E60001092F100C8C0282F2D7F09F0EAC0882306 -:101E700019F0823061F0E5C08091F301813009F002 -:101E8000E0C0933009F080E08093EE012BC0809198 -:101E9000F301811127C08091F5018F7009F4D1C041 -:101EA0008093E9002091EB0020FF1CC0933021F4C7 -:101EB0008091EB00806214C09091EB009061909350 -:101EC000EB0021E030E0A90102C0440F551F8A95C4 -:101ED000E2F74093EA001092EA008091EB008860FC -:101EE0008093EB001092E9008091E800877F86C024 -:101EF0008111A7C01091F3011F778091E3008078D2 -:101F0000812B8093E3008091E800877F8093E80035 -:101F10000E94060D8091E80080FFFCCF8091E300D5 -:101F200080688093E300111102C082E001C083E069 -:101F30008093F00186C08058823008F082C0809182 -:101F4000F3019091F4018C3D53E0950779F583E01E -:101F50008A838AE289834FB7F894DE01139620E0E2 -:101F60003EE051E2E32FF0E050935700E49120FF70 -:101F700003C0E295EF703F5FEF708E2F90E0EA3084 -:101F800010F0C79601C0C0968D939D932F5F2431AA -:101F900049F74FBF8091E800877F8093E8006AE2AD -:101FA00070E0CE0101960E940D0C14C0AE014F5F8F -:101FB0005F4F6091F5010E94540BBC01009709F43A -:101FC00040C09091E800977F9093E80089819A81C2 -:101FD0000E94700C8091E8008B778093E80031C0FC -:101FE000803879F58091E800877F8093E8008091C0 -:101FF000EC018093F1008091E8008E778093E800F7 -:102000000E94060D1EC081111CC09091F3019230F8 -:10201000C0F48091E800877F8093E8009093EC0102 -:102020000E94060D8091EC01811106C08091E300B1 -:1020300087FD02C081E001C084E08093F0010E942E -:10204000520A8091E80083FF0AC08091E800877FF0 -:102050008093E8008091EB0080628093EB00AA9669 -:102060000FB6F894DEBF0FBECDBFDF91CF911F91A9 -:1020700008950895CF938091F0018823A1F0C09135 -:10208000E900CF709091EC00892F817090FD80E87D -:10209000C82B1092E9008091E80083FD0E94E80EB1 -:1020A000CF70C093E900CF91089590937C01809305 -:1020B0007B010895E0917B01F0917C01309721F044 -:1020C0000190F081E02D099480E00895E0917B017A -:1020D000F0917C01309721F00280F381E02D09948A -:1020E0000895E0917B01F0917C01309721F004800C -:1020F000F581E02D099408952091790130917A01BC -:102100008217930771F090937A0180937901E0919F -:102110007B01F0917C01309721F00680F781E02D62 -:1021200009940895209177013091780182179307DF -:1021300071F09093780180937701E0917B01F091A9 -:102140007C01309721F00084F185E02D09940895F9 -:1021500008950C94A8100E942F1C0E947E080E94D3 -:10216000B51C0C9460215F926F927F928F929F9228 -:10217000AF92BF92CF92DF92EF92FF920F931F9395 -:10218000CF93DF9300D000D01F92CDB7DEB70E946F -:10219000C30896E8C92E91E0D92E03E010E0AA24E6 -:1021A000A394B12C502E802F0E943E094C01F601C1 -:1021B000729062906F016826792661147104A1F40F -:1021C0000150110978F78FEF89838A831B820E945F -:1021D000381C8160782F9D838C8349815A816B8163 -:1021E0008D810E94631138C08091DB0181FD0E94C6 -:1021F00047092BE030E07501022E02C0EE0CFF1CF7 -:102200000A94E2F7C70186219721892B09F12983D6 -:102210005A828E209F2091E0892809F490E09B83C8 -:102220000E94381C8160782F9D838C8349815A815C -:102230006B818D810E946311000F111FF801E2581C -:10224000FE4F80819181E826F926F182E08204C068 -:102250002150310980F6B4CF0E94931E10917D0168 -:102260000E945A101817D1F00E945A1080937D01D5 -:102270000F900F900F900F900F90DF91CF911F91C3 -:102280000F91FF90EF90DF90CF90BF90AF909F9015 -:102290008F907F906F905F900C9468080F900F90D4 -:1022A0000F900F900F90DF91CF911F910F91FF90A2 -:1022B000EF90DF90CF90BF90AF909F908F907F90E6 -:1022C0006F905F900895CF93DF93CDB7DEB72B97D4 -:1022D0000FB6F894DEBF0FBECDBF4F835887698716 -:1022E0007A878B87DE01119686E0FD0111928A952F -:1022F000E9F785E0FE01379601900D928A95E1F7A6 -:1023000049815A816B817C818D819E810E94DA177F -:102310002B960FB6F894DEBF0FBECDBFDF91CF91E5 -:102320000895CF93882309F4C2C0C82F823859F486 -:102330000E945A1081FDBBC089E30E94B41A0E941A -:10234000811B89E30CC0833879F40E945A1080FD08 -:10235000AEC083E50E94B41A0E94811B83E50E94EF -:10236000F61ACF910C94811B843859F40E945A10AC -:1023700082FD9DC087E40E94B41A0E94811B87E4FD -:10238000EECF8CEF8C0F813A48F48C2F0E94C8203E -:1023900081118DC08C2F0E94B41AE3CF80E28C0F84 -:1023A000883048F4C77081E001C0880FCA95EAF709 -:1023B0000E943A1BD6CF8BE58C0F833078F4C53A58 -:1023C00029F0C63A31F083E890E005C081E890E05A -:1023D00002C082E890E0CF910C947C1088E58C0FCD -:1023E000833108F064C0C83A39F1C93A41F1CA3AB8 -:1023F00049F1CB3A51F1CC3A59F1CD3A61F1C03BB8 -:1024000069F1CE3A71F1CF3A79F1C13B81F1C23B2A -:1024100089F1C33B91F1C43B99F1C53BA1F1C63BA6 -:10242000A9F1C73BB1F1C83BB9F1C93BC1F1CA3B06 -:10243000C9F180E090E038C082EE90E035C089EECE -:1024400090E032C08AEE90E02FC085EB90E02CC087 -:1024500086EB90E029C087EB90E026C08CEC90E002 -:1024600023C08DEC90E020C083E891E01DC08AE895 -:1024700091E01AC082E991E017C084E991E014C0AC -:1024800081E292E011C083E292E00EC084E292E029 -:102490000BC085E292E008C086E292E005C087E2C8 -:1024A00092E002C08AE292E0CF910C949210CF9118 -:1024B0000895882309F44BC0823859F40E945A10B9 -:1024C00081FF45C089E30E94B41A0E94811B89E301 -:1024D0000CC0833871F40E945A1080FF38C083E525 -:1024E0000E94B41A0E94811B83E50E94F61A0C9484 -:1024F000811B843859F40E945A1082FF28C087E457 -:102500000E94B41A0E94811B87E4EFCF9CEF980FC2 -:10251000913A58F390E2980F983050F4877091E018 -:1025200001C0990F8A95EAF7892F0E94401BDFCFDF -:102530009BE5980F933020F480E090E00C947C10A1 -:10254000885A833120F480E090E00C949210089532 -:10255000882321F00E943A1B0C94811B0895882344 -:1025600021F00E94401B0C94811B08957F928F9252 -:102570009F92AF92BF92CF92DF92EF92FF920F9312 -:102580001F93CF93DF931F92CDB7DEB77C01C62E8A -:10259000772EFC01058102950F70128111110E94A6 -:1025A000571B0E94AD1A882379F0112369F080E24D -:1025B0008C0D883048F082E00E94961A0E94AD1A75 -:1025C00091E0D82ED92601C0D12CE72DE295EF70ED -:1025D000F0E0EF58FF4F0C943123872D807F072DBB -:1025E0000F70882311F00295007F112389F00023DA -:1025F00009F499C180E28C0D883020F4802F0E946C -:102600003A1B03C0802F0E944A1B0E94811B8BC172 -:102610008C2D0E945912002309F4C3C180E28C0D55 -:10262000883020F4802F0E94401B03C0802F0E941E -:10263000501B0E94811BB5C1872D807F972D9F70F5 -:10264000803211F4892F03C0892F8295807FCC209E -:1026500021F0F1E0CF16A1F01DC0112339F00023C5 -:1026600019F1013009F50E946A1B9BC1002319F082 -:10267000013009F496C189830E946D1B898110C1C4 -:10268000112321F0063008F08CC10EC0053008F08F -:1026900088C106C1112359F0002331F0F70195815B -:1026A00090FF41C19F7095830E94A8127AC10023B8 -:1026B00009F4F6C03EC1872D86958695837090E01B -:1026C000009719F0019761F06CC1112321F08C2D56 -:1026D000972D937002C080E090E00E947C1061C151 -:1026E000112321F08C2D972D937002C080E090E093 -:1026F0000E94921056C18C2D112319F00E949B1D2F -:1027000002C00E94031E0E94881E4BC1872D837049 -:1027100009F052C0111145C18C2D829586958770A4 -:10272000880F880F9C2D9F70892E912CA12CB12C85 -:10273000082E04C0880C991CAA1CBB1C0A94D2F752 -:10274000C4FE14C00FE010E020E030E0B901A801A1 -:1027500004C0440F551F661F771F8A95D2F7CB011F -:10276000BA01609570958095909503C060E070E027 -:10277000CB01272D26952695237030E02230310598 -:1027800069F02330310589F0682979298A299B2944 -:102790002130310571F00E94221903C1682979297D -:1027A0008A299B290E943E19FCC00E942219C5015A -:1027B000B4010E940619F5C0112319F0872D81700C -:1027C00001C08695882309F4ECC08C2D82958695EE -:1027D0008770880F880F9C2D9F70892E912CA12CBB -:1027E000B12C082E04C0880C991CAA1CBB1C0A948E -:1027F000D2F7C4FE14C00FE010E020E030E0B901D1 -:10280000A80104C0440F551F661F771F8A95D2F791 -:10281000CB01BA01609570958095909503C060E0FA -:1028200070E0CB01272D269526952370422F50E08E -:102830004230510569F04330510589F06829792902 -:102840008A299B294130510571F00E94FC19A9C0C9 -:10285000682979298A299B290E94181AA2C00E94F6 -:10286000FC19C501B4010E94E0199BC08C2D90E0B9 -:10287000FC01E05EF109E531F10508F050C0EF57C9 -:10288000FF4F0C9431230C2D0F70872D8F71112366 -:1028900021F00E947919802F07CF0E949A19802F6A -:1028A0000E94AF127EC0112341F0053008F079C0BC -:1028B000872D8F710E94BF1974C0063008F071C057 -:1028C000F7CF112339F0872D8F710E94791969C0D4 -:1028D0001123C9F3872D8F710E949A1962C01123A9 -:1028E00029F0872D8F710E9464195BC00E945A19CC -:1028F00058C0112351F0172D1F71812F0E94791993 -:1029000063E0812F0E948D1A4CC081E00E94961ACC -:10291000023008F446C082E00E94961A42C0112399 -:1029200031F0002381F28C2D0E9491113AC00023D6 -:1029300089F28C2D0E94591234C0472D4F706C2D96 -:10294000C7010E94F0030E947E182BC0111129C0FC -:10295000472D4F7050E042305105B9F04CF441150D -:10296000510581F041305105E1F40E94882119C0E0 -:102970004330510569F04430510599F48C2D0E9483 -:10298000DA210FC00E9471210CC00E94A42109C04D -:102990000E94B72106C0472D4F706C2DC7010E94C1 -:1029A0000D05DD20F9F00E94891A80FD1BC0F7019A -:1029B00012820E94831A0E947919C7010E94011590 -:1029C0000E94831A0F90DF91CF911F910F91FF907A -:1029D000EF90DF90CF90BF90AF909F908F907F90BF -:1029E0000C949A190F90DF91CF911F910F91FF9046 -:1029F000EF90DF90CF90BF90AF909F908F907F909F -:102A000008950F931F93CF93DF93EC0188819981F1 -:102A10002B813C81232BB9F09F3F11F48F3F99F01C -:102A2000CE010E946104882371F0688179818A81D6 -:102A30000E947F1A8C010E94341A0E94FB18B80170 -:102A4000CE010E94B612DF91CF911F910F91089590 -:102A50000E94571B0E94671B0E942C1B0E94811B17 -:102A60000E94391F0E94881E80E090E00E947C1026 -:102A700080E090E00C9492100E94471B0C94281563 -:102A80000E94741A292F22952F7030E02C303105C6 -:102A90004CF42A3031056CF42250310922303105D2 -:102AA000A8F407C02C30310569F02F30310551F002 -:102AB0000DC0803F69F018F4803E40F409C0843FA7 -:102AC00029F406C093FB882780F9089580E00895D3 -:102AD00081E00895CF93DF9300D000D01F92CDB74F -:102AE000DEB70F900F900F900F900F90DF91CF9166 -:102AF0000895CF93DF9300D000D000D0CDB7DEB7DC -:102B000026960FB6F894DEBF0FBECDBFDF91CF91F2 -:102B100008951F93CF93DF93C091860116E08091B3 -:102B20008701C81799F0D0E01C9FF0011D9FF00DA0 -:102B30001124E857FE4F4081518162817381848165 -:102B400095810E9479152196C770E9CFDF91CF91C9 -:102B50001F9108954091B8015091B9016091BA0157 -:102B60007091BB018091BC019091BD010C947915CD -:102B70008091BD0182958F7009F054C08091BA0197 -:102B8000882309F44FC080918601A091870160914C -:102B9000B8017091B9014091BB015091BC01B6E000 -:102BA0008A1709F43FC090E041155105C1F17F3FFC -:102BB00011F46F3FA1F1B89FF001B99FF00D1124FE -:102BC000E857FE4F218172132AC02081621327C06B -:102BD0002281211124C0238134812417350710F468 -:102BE00021503109241B350B283C3105C0F42091BC -:102BF000BD012F7020612093BD0126E0289FF001C8 -:102C0000299FF00D1124E357FE4F80818F70806162 -:102C1000808388EB91E00E9401150C948915019640 -:102C20008770BECF0895CF92DF92EF92FF920F93FD -:102C30001F93CF93DF93CDB7DEB762970FB6F894AB -:102C4000DEBF0FBECDBF8C0185E0F801DE011D9611 -:102C500001900D928A95E1F7D8014C9111965C9103 -:102C6000119712966C9112971396CD90DC90149751 -:102C70003091B8017091B9018091BB019091BC0174 -:102C8000009709F46BC17F3F19F43F3F09F466C117 -:102C9000E090BA01EE2009F4C0C02091BD01C81631 -:102CA000D90628F0F601E81BF90BCF0104C0809586 -:102CB00090958C0D9D1DFF24F394883C910578F030 -:102CC000F12C207F09F0C6C07C2DD98AC88A898959 -:102CD0000E946A1588EB91E00E940115B1C0822F15 -:102CE000807F09F046C0751314C0341312C06111FF -:102CF00010C02F7020612093BD010E94AA1588EB9F -:102D000091E00E9401158091BD01D80115968C9328 -:102D10002EC0CD2819F15F3F11F44F3FF9F0F62E88 -:102D200061111CC0809186012091870136E08217D5 -:102D300009F45AC090E0389FF001399FF00D11243A -:102D4000E857FE4F7181571306C07081471303C0C7 -:102D50007281711103C001968770E9CFF62E662348 -:102D600009F418C18091BD0181608093BD01F12CEF -:102D700011C1751308C0341306C0611104C08091DD -:102D8000BD01D801C3C04D875E878D859E856A8B46 -:102D90000E9440156A898823E1F16623D1F12091D0 -:102DA000BD01822F82958F7090E0029774F0809120 -:102DB000B8019091B90198878F831986DB86CA86FE -:102DC0002C87CE0107960E94011586E0F801A8EB3A -:102DD000B1E001900D928A95E1F70E94B8150E942A -:102DE000AA15FF24F394D6C04D875E878D859E85F6 -:102DF0000E94741A292F22952F7030E0223031055D -:102E00000CF0BCC09F7009F0B6C0805E883008F43A -:102E1000C1C0C8010E940115E4CFC816D90608F444 -:102E200053C0F601E81BF90BCF01883C910508F46B -:102E300050C0F12C7C2DD98AC88A89890E946A15D4 -:102E4000E8EBF1E086E0DF011D928A95E9F70E9448 -:102E5000AA15A0C0751314C0341312C0611110C09C -:102E60008091BD01F8018583C8010E94011586E0AB -:102E7000E8EBF1E0DF011D928A95E9F7FE2C8AC0AC -:102E80004D875E878D859E856A8B0E9440156A8975 -:102E9000882309F4BECF662309F4BBCF2091BD017E -:102EA000822F82958F7090E002970CF48ECF8091E4 -:102EB000B8019091B9019A8389831B82DD82CC820B -:102EC0002E83CE0101967FCF809590958C0D9D1D10 -:102ED000ACCFF62E662309F49CCF75132EC03413A5 -:102EE0002CC02091BD0120FD1FC0822F82958F70C4 -:102EF000D9F0D80115962C9315978F3049F08F5F34 -:102F0000982F9295907F822F8F70892B15968C9396 -:102F1000C8010E94011586E0F801A8EBB1E001901C -:102F20000D928A95E1F793CF86E0F801A8EBB1E026 -:102F300001900D928A95E1F72DC04D875E878D85B2 -:102F40009E850E944015811140CF8091BD01816016 -:102F50008093BD01C8010E9401151CC0662309F4BD -:102F600058CF4D875E878D859E850E9440158823AA -:102F700009F44FCF2ACF811148CF0CC0243031053E -:102F80000CF047CF9F7009F440CFF8019581907FF6 -:102F900009F03BCF8F2D62960FB6F894DEBF0FBEBF -:102FA000CDBFDF91CF911F910F91FF90EF90DF90F8 -:102FB000CF9008951F93CF93DF93CDB7DEB72C97B3 -:102FC0000FB6F894DEBF0FBECDBF4F835887698719 -:102FD0007A878B879C87CE0107960E9413168823D9 -:102FE00069F08F8198852A853B85232BF1F19F3FDE -:102FF00009F063C08F3F09F060C037C086E0FE0172 -:103000003796DE01119601900D928A95E1F76F8156 -:103010007885EA85FB85309741F17F3F11F46F3F5A -:1030200021F12091870130E0C9010196877099272D -:103030004091860150E08417950709F447C06983E1 -:103040007A83FD83EC8396E0929FD001939FB00D2D -:103050001124A857BE4FFE01319601900D929A950A -:10306000E1F7809387010E94891516E0809186011F -:10307000909187018917C1F1189FC00111248857C9 -:103080009E4F0E941316882379F1E09186011E9FBE -:10309000F0011124E857FE4F408151816281738114 -:1030A000848195810E9479158091860190E0019636 -:1030B0008770992780938601D9CF4F81588569857C -:1030C0007A858B859C850E947915CFCF0E943C150F -:1030D0001092870110928601E8EBF1E086E0DF01B3 -:1030E0001D928A95E9F7C1CF2C960FB6F894DEBFF2 -:1030F0000FBECDBFDF91CF911F910895EF92FF9248 -:103100000F931F93CF93DF938C01009709F46CC04A -:10311000F12CEE24E394E8012196F80184918437A0 -:1031200040F4843008F051C0813081F0823019F1D0 -:103130005BC0853709F444C0A8F19CE7980F90372D -:1031400008F052C08F770E94591241C00E5F1F4F86 -:10315000FE01C49180E28C0F883048F4C7708E2D38 -:1031600001C0880FCA95EAF70E945A1B14C08C2F21 -:103170000E9491112DC00E5F1F4FFE01C49180E28D -:103180008C0F883058F4C7708E2D01C0880FCA95F7 -:10319000EAF70E94601B0E94811B1AC08C2F0E94BC -:1031A000591216C00E5F1F4FFE01C491CC2381F04F -:1031B0008FE99FE00197F1F700C00000C150F6CF02 -:1031C0000E5F1F4FFE01F49003C00E9491118E010B -:1031D0008F2D882309F49FCFEFE9FFE03197F1F7B6 -:1031E00000C000008150F5CFDF91CF911F910F916A -:1031F000FF90EF90089508956093C2017093C3010A -:103200008093C4019093C5010C9428150F931F93CC -:103210000091C2011091C3012091C4013091C501F8 -:10322000DC01CB01802B912BA22BB32B8093C2010D -:103230009093C301A093C401B093C5011F910F9156 -:103240000C9428150F931F930091C2011091C30194 -:103250002091C4013091C501DC01CB018023912371 -:10326000A223B3238093C2019093C301A093C4010E -:10327000B093C5011F910F910C9428150F931F93C4 -:103280000091C2011091C3012091C4013091C50188 -:10329000DC01CB0180279127A227B3278093C201AD -:1032A0009093C301A093C401B093C5011F910F91E6 -:1032B0000C9428151092BE011092BF011092C0010B -:1032C0001092C1010C94281541E050E060E070E0DC -:1032D00004C0440F551F661F771F8A95D2F740938D -:1032E000BE015093BF016093C0017093C1010C9463 -:1032F000281541E050E060E070E004C0440F551F25 -:10330000661F771F8A95D2F78091BE019091BF0109 -:10331000A091C001B091C101482B592B6A2B7B2B86 -:103320004093BE015093BF016093C0017093C101EF -:103330000C94281541E050E060E070E004C0440FB8 -:10334000551F661F771F8A95D2F740955095609557 -:1033500070958091BE019091BF01A091C001B09184 -:10336000C101482359236A237B234093BE01509314 -:10337000BF016093C0017093C1010C94281541E016 -:1033800050E060E070E004C0440F551F661F771FD7 -:103390008A95D2F78091BE019091BF01A091C001A2 -:1033A000B091C101482759276A277B274093BE0166 -:1033B0005093BF016093C0017093C1010C94281514 -:1033C0000F931F930091BE011091BF012091C00186 -:1033D0003091C101DC01CB01802B912BA22BB32BAF -:1033E0008093BE019093BF01A093C001B093C1012F -:1033F0001F910F910C9428150F931F930091BE01FC -:103400001091BF012091C0013091C101DC01CB01BD -:1034100080239123A223B3238093BE019093BF0105 -:10342000A093C001B093C1011F910F910C94281576 -:103430000F931F930091BE011091BF012091C00115 -:103440003091C101DC01CB0180279127A227B3274E -:103450008093BE019093BF01A093C001B093C101BE -:103460001F910F910C9428150895CF92DF92EF923F -:10347000FF920F931F93CF93DF938C01C090C201F3 -:10348000D090C301E090C401F090C5018091BE01CD -:103490009091BF01A091C001B091C101C82AD92A61 -:1034A000EA2AFB2ACFE1D0E0D701C6010C2E04C0E6 -:1034B000B695A795979587950A94D2F780FF06C091 -:1034C000B8018C2F0E948E07019721F4219760F795 -:1034D00080E001C08C2FDF91CF911F910F91FF9061 -:1034E000EF90DF90CF900895CF93DF93EC010E948F -:1034F000351ABE010E948E07DF91CF910895CB014E -:103500000E94741A08958091C601859585958595C8 -:1035100008958091C6018770089598E0899F900171 -:103520001124262B2093C6010C9479192091C601F1 -:10353000809582238093C601982F977069F430E0BC -:10354000482F552747FD50952417350729F08595B5 -:10355000859585950C949A1908959091C601977058 -:1035600081E009F480E0089590910B01992321F006 -:1035700090910C01911109C020910D0130910E0123 -:10358000F90132969FEF40E01FC0982F96959695CF -:1035900096959F3050F5E0910D01F0910E01E90FE5 -:1035A000F11D877021E030E0A90102C0440F551FD2 -:1035B0008A95E2F7CA019181892B818308959F3F03 -:1035C00039F04F5F4E3041F051915813F8CF0DC094 -:1035D0005111F7CF942FF5CF9F3F39F0F901E90F43 -:1035E000F11D97FDFA9582830895089590910B013E -:1035F000992321F090910C01911109C020910D01A6 -:1036000030910E01F9013296205F3F4F1FC0982F75 -:103610009695969596959F30F0F4E0910D01F09176 -:103620000E01E90FF11D877021E030E0A90102C011 -:10363000440F551F8A95E2F7CA018095918189232D -:10364000818308953196E217F30729F0908198134A -:10365000F9CF1082F7CF089581E090E0E0910D015D -:10366000F0910E01E80FF91F10820196803191054B -:10367000A9F708959091DA01892B8093DA010895D2 -:1036800080959091DA0189238093DA010895109250 -:10369000DA0108959091D901892B8093D901089579 -:1036A00080959091D90189238093D9010895109232 -:1036B000D90108959091D801892B8093D80108955C -:1036C00080959091D80189238093D8010895109214 -:1036D000D80108958093C70108951092C7010895F5 -:1036E00080910D0190910E01FC0131969C01205FAB -:1036F0003F4F80E0919191118F5FE217F307D1F76F -:103700000895E0910D01F0910E018091DA0180831E -:10371000E0910D01F0910E0190818091D901892BEA -:103720008083E0910D01F0910E0190818091D8018C -:10373000892B80838091C701882361F0E0910D017E -:10374000F0910E019081892B80830E94701B811162 -:103750001092C70180910D0190910E010C9466109A -:1037600020E0009739F0AC014150510984239523A2 -:103770002F5FF7CF822F08958091F001843039F1C7 -:103780001092DC0120E488E190E00FB6F894A8954F -:10379000809360000FBE2093600080E00E944B0386 -:1037A00080E00E94680883B7817F846083BF83B70D -:1037B000816083BF7894889583B78E7F83BF88E1CB -:1037C0000FB6F89480936000109260000FBE0895C9 -:1037D0000895089580E00E944B030E94E81B0E9418 -:1037E000C3080E94E91B0E94480991E0811101C0B1 -:1037F00090E0892F08950E943C1580E00E944B03C1 -:103800000E9460210E945A100C9468081F920F9227 -:103810000FB60F9211248F939F93AF93BF93809114 -:10382000DC01811113C08091DD019091DE01A09136 -:10383000DF01B091E0014196A11DB11D8093DD0132 -:103840009093DE01A093DF01B093E001BF91AF91AF -:103850009F918F910F900FBE0F901F90189582E04F -:1038600084BD93E095BD9AEF97BD80936E00089557 -:103870002FB7F8948091DD019091DE01A091DF01D6 -:10388000B091E0012FBF0895CF92DF92EF92FF92A7 -:103890000F931F932FB7F8944091DD015091DE01F3 -:1038A0006091DF017091E0012FBF6A017B01EE247E -:1038B000FF248C0120E030E0C016D106E206F306BA -:1038C00010F4415051099A01281B390BC9011F916D -:1038D0000F91FF90EF90DF90CF9008951F920F927D -:1038E0000FB60F9211248F939F93AF93BF93809144 -:1038F000DD019091DE01A091DF01B091E001019620 -:10390000A11DB11D8093DD019093DE01A093DF0125 -:10391000B093E001BF91AF919F918F910F900FBE37 -:103920000F901F9018950E94570DF8942FEF87EA7B -:1039300091E6215080409040E1F700C0000087E010 -:1039400090EBDC018093FB019093FC01A093FD01BF -:10395000B093FE019CE088E10FB6F894A89580939F -:1039600060000FBE90936000FFCF0E94EF1C81119A -:1039700002C00E94D01C0E94FA1C8093DB010E94AE -:10398000071D8093F90187FB882780F980930C013C -:103990000E94FE1C682F70E080E090E00C94FC1800 -:1039A0006DEE7EEF80E090E00E946B2360E082E0AD -:1039B00090E00E94592360E083E090E00E94592348 -:1039C00060E084E090E00E94592360E085E090E0B0 -:1039D0000E94592360E086E090E00C94592380E037 -:1039E00090E00E94532321E08D3E9E4F09F020E09D -:1039F000822F089582E090E00C944B2383E090E0C6 -:103A00000C944B23682F83E090E00C94592384E0BE -:103A100090E00C944B23682F84E090E00C945923A1 -:103A200086E090E00C944B23682F86E090E00C94A5 -:103A300059238091E30180FF0BC06091120185E062 -:103A4000689FB001112475956795759567952BC092 -:103A500081FF09C06091120185E0689FB0011124C7 -:103A60007595679520C082FF07C06091120185E0BF -:103A7000689FB001112417C09091E4019923D1F0FF -:103A800060911101961788F72091120185E0289F17 -:103A900090011124929FA001939F500D112470E07A -:103AA000CA010E941D236038710540F4611571053B -:103AB00039F002C065E070E0862F08958FE7089521 -:103AC00081E008958091E30180FF08C060911001BA -:103AD00070E0759567957595679521C081FF06C063 -:103AE0006091100170E07595679519C082FF04C060 -:103AF0006091100170E010C09091E4019923C1F031 -:103B000060910F019617A0F780911001899FC00165 -:103B1000112470E00E941D236038710528F461159E -:103B2000710521F0862F08958FE7089581E00895AB -:103B300061E070E0F4CF803F21F40E94191D81956F -:103B400004C0813F29F40E94191D8093E701089564 -:103B5000823F21F40E94191D819504C0833F29F4FE -:103B60000E94191D8093E6010895893F19F40E946F -:103B7000621D05C08A3F31F40E94621D81958093C9 -:103B8000E80108958B3F21F40E94621D819504C0D5 -:103B90008C3F29F40E94621D8093E9010895843FBF -:103BA00021F48091E501816017C0853F21F4809167 -:103BB000E501826011C0863F21F48091E5018460B7 -:103BC0000BC0873F21F48091E501886005C0883FE4 -:103BD00031F48091E50180618093E50108958D3F86 -:103BE00021F48091E30181600BC08E3F21F480912C -:103BF000E301826005C08F3F29F48091E301846076 -:103C00008093E3010895803F39F48091E70187FFB5 -:103C10006CC01092E70169C0813F29F48091E701EF -:103C20001816BCF362C09091E601823F29F497FF19 -:103C30005CC01092E60159C0833F19F41916CCF309 -:103C400054C0893F41F48091E80118160CF04DC032 -:103C50001092E8014AC08A3F29F48091E80187FF69 -:103C600044C0F6CF8B3F39F48091E90187FF3DC016 -:103C70001092E9013AC08C3F29F48091E9011816AD -:103C8000BCF333C0843F21F48091E5018E7F17C0DF -:103C9000853F21F48091E5018D7F11C0863F21F49D -:103CA0008091E5018B7F0BC0873F21F48091E50176 -:103CB000877F05C0883F31F48091E5018F7E809336 -:103CC000E50113C08D3F21F48091E3018E7F0BC08D -:103CD0008E3F21F48091E3018D7F05C08F3F29F451 -:103CE0008091E3018B7F8093E3018091E601811154 -:103CF0000EC08091E70181110AC08091E801811115 -:103D000006C08091E901811102C01092E40108957A -:103D100085EE91E00E9471100E94381C9093E201A0 -:103D20008093E10108951F93CF93DF938091E10188 -:103D30009091E2010E94441CAC019091E40199230E -:103D400021F02091130130E006C0209114018AE097 -:103D5000289F900111244217530708F486C08091D0 -:103D6000E601C091E701D091E8011091E9018111CC -:103D700007C0C11176C0D11174C0111172C075C0D5 -:103D80009F3F19F09F5F9093E401181624F40E945E -:103D9000191D8093E6018091E60187FF05C00E940E -:103DA000191D81958093E6011C1624F40E94191DAB -:103DB0008093E7018091E70187FF05C00E94191DEC -:103DC00081958093E7016091E601662339F1C09106 -:103DD000E701CC2319F1772767FD7095872F972F7F -:103DE0000E942E2223E333E343E35FE30E94922207 -:103DF0000E94FB216093E6016C2F772767FD709589 -:103E0000872F972F0E942E2223E333E343E35FE3C0 -:103E10000E9492220E94FB216093E7011D1624F468 -:103E20000E94621D8093E8018091E80187FF05C030 -:103E30000E94621D81958093E801111624F40E946E -:103E4000621D8093E9018091E90187FF05C00E940E -:103E5000621D81958093E901DF91CF911F910C94B0 -:103E6000881E9F3F09F08ECF96CFDF91CF911F9193 -:103E70000895E5EEF1E085E0DF011D928A95E9F70E -:103E80001092E4011092E3010895833081F128F447 -:103E9000813059F08230D1F00895853009F449C05D -:103EA000B8F1863009F456C0089580911401262F88 -:103EB00030E0280F311D2F3F310524F4680F609347 -:103EC000140108958FEF80931401089580911301D8 -:103ED000262F30E0280F311D2F3F310524F4680FC5 -:103EE0006093130108958FEF8093130108958091DB -:103EF0001201262F30E0280F311D2F3F310524F409 -:103F0000680F6093120108958FEF80931201089556 -:103F100080911101262F30E0280F311D2F3F3105F0 -:103F200024F4680F6093110108958FEF80931101BD -:103F3000089580911001262F30E0280F311D2F3F6A -:103F4000310524F4680F6093100108958FEF80937A -:103F50001001089580910F01262F30E0280F311DA8 -:103F60002F3F310524F4680F60930F0108958FEF00 -:103F700080930F010895833011F128F4813049F0C6 -:103F8000823091F00895853081F120F18630C1F1C1 -:103F9000089580911401681720F4861B8093140102 -:103FA000089510921401089580911301681720F468 -:103FB000861B809313010895109213010895809138 -:103FC0001201681720F4861B809312010895109245 -:103FD0001201089580911101681720F4861B8093C7 -:103FE0001101089510921101089580911001681730 -:103FF00020F4861B809310010895109210010895FB -:1040000080910F01681720F4861B80930F0108959B -:1040100010920F0108950F931F93873208F048C044 -:104020008E3108F092C0803109F47CC008F58730E9 -:1040300009F466C068F4863009F0A2C08091DB0103 -:10404000817F8E7F8093DB0181E08093EB0199C0BB -:104050008B3009F48EC08E3009F092C08091DB0164 -:1040600082FB222720F991E0922790FB82F963C01E -:10407000863109F47EC060F4813109F081C00E946C -:104080003C1590910C0181E0892780930C0171C04F -:10409000893109F46EC08B3109F072C08091DB0167 -:1040A00081FB222720F991E0922790FB81F943C000 -:1040B000883309F45EC050F4893209F45CC085335A -:1040C00009F459C0873209F456C05AC0833409F440 -:1040D00052C028F48A3308F453C0895337C0883457 -:1040E00009F04EC00E943C150FEF13ED20E3015084 -:1040F00010402040E1F700C000000E94931C39C02E -:104100009091DB01892F8095817080FB90F929F0D7 -:10411000966098609093DB0134C0997F977F90936D -:10412000DB0127C08091DB0183FB222720F991E08E -:10413000922790FB83F98093DB019923D1F0809142 -:10414000DB0181608093DB0114C08D5141E050E0C0 -:1041500060E070E08A019B0104C0000F111F221F64 -:10416000331F8A95D2F7C901B8010E94FC180E943A -:104170003C1581E006C061E070E080E090E0F5CFA2 -:1041800080E01F910F91089580E0089580E00895E8 -:10419000CF93C82F8091EB01813069F018F0823005 -:1041A000C9F184C0E0910D01F0910E01808182324D -:1041B00009F07EC007C0E0910D01F0910E018081F1 -:1041C000823261F48C2F0E94C420811104C08C2F94 -:1041D0000E940B201DC081E090E01AC08C2F0E942D -:1041E000C620811114C0C43179F048F4CB3079F085 -:1041F000C03109F061C082E08093EB0108C0C93290 -:1042000019F0C83321F058C01092EB0155C081E07D -:10421000817054C0C93291F120F5C43179F1B0F404 -:10422000C73009F047C08EE18093140182E3809388 -:1042300013018AE08093120184E18093110188E0E8 -:104240008093100188E280930F0134C0CE51C630B4 -:1042500088F5EC2FF0E0E75CFE4F80818093EA0167 -:1042600029C0CE34E9F020F4CB3421F56AE013C044 -:10427000C13579F0C235F1F461E00DC08091EA01F9 -:10428000882319F01092EA0115C081E08093EB01B8 -:1042900015C061E006C08091EA010E94451F0AC076 -:1042A0006AE08091EA010E94BB1F04C01092EB01FA -:1042B00080E004C081E002C080E0AACFCF910895E1 -:1042C0000E94EF1C811102C00E94D01C0E94101D90 -:1042D0008093FA0180FF02C0869501C080E00C94B3 -:1042E0004B038091FA01982F9695292F30E02330C7 -:1042F00031054CF49F5F990F8170892B8160809309 -:10430000FA010E94141D8091FA0186950C944B03CA -:104310008091FA01982F969591F09158990F81709C -:10432000892B8093FA018E7F91E009F490E08091CF -:10433000FA0190FB80F98093FA010E94141D80918C -:10434000FA0186950C944B038091FA01982F909571 -:1043500090FB80F98093FA010E94141D8091FA016C -:1043600080FF02C0869501C080E00C944B039091C1 -:10437000FA01892F86958F5F8F779170843028F4AA -:10438000880F892B8093FA0102C09093FA018091E3 -:10439000FA018E7F91E009F490E08091FA0190FBA0 -:1043A00080F98093FA010E94141D8091FA0186958C -:1043B0000C944B032091FA01922F96958927982F00 -:1043C000990F822F8170892B8093FA018E7F91E063 -:1043D00009F490E08091FA0190FB80F98093FA0152 -:1043E0000E94141D8091FA0186950C944B038091D4 -:1043F000FA018695089504D06894B1118DC008958E -:1044000070D088F09F5790F0B92F9927B751A0F03E -:10441000D1F0660F771F881F991F1AF0BA95C9F758 -:1044200012C0B13081F077D0B1E0089574C0672F29 -:10443000782F8827B85F39F0B93FCCF38695779508 -:104440006795B395D9F73EF49095809570956195F1 -:104450007F4F8F4F9F4F0895E89409C097FB3EF41C -:1044600090958095709561957F4F8F4F9F4F9923C1 -:10447000A9F0F92F96E9BB279395F695879577953F -:104480006795B795F111F8CFFAF4BB0F11F460FFFF -:104490001BC06F5F7F4F8F4F9F4F16C0882311F057 -:1044A00096E911C0772321F09EE8872F762F05C06B -:1044B000662371F096E8862F70E060E02AF09A9506 -:1044C000660F771F881FDAF7880F9695879597F9FB -:1044D000089557FD9058440F551F59F05F3F71F0F4 -:1044E0004795880F97FB991F61F09F3F79F087955B -:1044F0000895121613061406551FF2CF4695F1DFE4 -:1045000008C0161617061806991FF1CF8695710573 -:10451000610508940895E894BB2766277727CB01A7 -:1045200097F908950BD078C069D028F06ED018F0B4 -:10453000952309F05AC05FC01124EECFCADFA0F363 -:10454000959FD1F3950F50E0551F629FF001729F28 -:10455000BB27F00DB11D639FAA27F00DB11DAA1F47 -:10456000649F6627B00DA11D661F829F2227B00D94 -:10457000A11D621F739FB00DA11D621F839FA00D1F -:10458000611D221F749F3327A00D611D231F849F6F -:10459000600D211D822F762F6A2F11249F575040C6 -:1045A0008AF0E1F088234AF0EE0FFF1FBB1F661F61 -:1045B000771F881F91505040A9F79E3F510570F01A -:1045C00014C0AACF5F3FECF3983EDCF38695779555 -:1045D0006795B795F795E7959F5FC1F7FE2B880F15 -:1045E000911D9695879597F9089597F99F6780E8AB -:1045F00070E060E008959FEF80EC089500240A9435 -:104600001616170618060906089500240A941216AD -:104610001306140605060895092E0394000C11F4E0 -:10462000882352F0BB0F40F4BF2B11F460FF04C08D -:104630006F5F7F4F8F4F9F4F089597FB072E16F4A4 -:10464000009407D077FD09D00E94372307FC05D0DE -:104650003EF4909581959F4F0895709561957F4F99 -:104660000895EE0FFF1F0590F491E02D0994AA1B09 -:10467000BB1B51E107C0AA1FBB1FA617B70710F04D -:10468000A61BB70B881F991F5A95A9F7809590957F -:10469000BC01CD010895F999FECF92BD81BDF89A74 -:1046A000992780B50895A8E1B0E042E050E00C946D -:1046B0007323262FF999FECF92BD81BDF89A0197F9 -:1046C00000B4021639F01FBA20BD0FB6F894FA9A5A -:1046D000F99A0FBE08950196272F0E945A230C9431 -:1046E0005923DC01CB01FC01F999FECF06C0F2BDD4 -:1046F000E1BDF89A319600B40D9241505040B8F7A0 -:064700000895F894FFCFBC -:10470600FF5E09EC09C909950961090101C801287B -:1047160008140A321E1F0F03764F5F6F7F496943E5 -:1047260079095953633F4D3639A30556052005E7E8 -:10473600047A049304AC04C50401020304050607C5 -:04474600080900005E +:1003F00001000100010001000100010001000100F5 +:1004000000700070010001000100010001003508CA +:100410006603000000000000000000003A003B00FE +:100420003C003D004C0001001030A800AA00A900CB +:10043000200A210A3E003F00400041000000010068 +:100440003270AC00AE00AB00000000004200430080 +:10045000440045000000010001000100010000000F +:100460000000000000004A004E004B004D0035081F +:10047000A600000000000000000000003A003B0061 +:100480003C003D004C0001001030A800AA00A9006B +:10049000460046083E003F004000410000000100C9 +:1004A0003270AC00AE00AB00000000004200430020 +:1004B00044004500000001000100010001000000AF +:1004C0000000000000004A004E004B004D000F00ED +:1004D0000100010001000100010001000100010014 +:1004E0000100010001000100010001000100010004 +:1004F00001000100010001000100010001000100F4 +:1005000001000100010001000100010001000100E3 +:1005100001000100010001000100010001000100D3 +:100520000100010001000100010001000100280399 +:10053000540068006500200050006C0061006E00EF +:1005400063006B0020004B006500790062006F00C3 +:1005500061007200640000002C034F007200740000 +:1005600068006F006C0069006E0065006100720039 +:1005700020004B006500790062006F00610072008E +:100580006400730000000403090409026D00040103 +:1005900000A0FA0904000001030101000921110172 +:1005A00000012240000705810308000A0904010038 +:1005B0000103010200092111010001224D0007057C +:1005C000820308000A090402000103000000092157 +:1005D000110100012236000705830308000A0904FF +:1005E000030001030000000921110100012239006C +:1005F000070584031000011201100100000008ED3E +:10060000FE606001000102000105010906A101056B +:100610000719E029E71500250195087501810205F4 +:100620000819012905950575019102950175039138 +:1006300001050719002977150025019578750181B5 +:1006400002C005010980A101850216010026B7003C +:100650001A01002AB700751095018100C0050C0928 +:1006600001A1018503160100269C021A01002A9CA3 +:1006700002751095018100C005010902A10109015F +:10068000A100050919012905150025019505750128 +:100690008102950175038101050109300931158138 +:1006A000257F95027508810609381581257F9501FA +:1006B00075088106050C0A38021581257F9501759C +:1006C000088106C0C005010906A101050719E02936 +:1006D000E7150025019508750181029501750881CE +:1006E0000105081901290595057501910295017506 +:1006F0000391010507190029FF150026FF00950643 +:1007000075088100C00011241FBECFEFDAE0DEBF04 +:10071000CDBF04B603FE24C0809102029091030273 +:10072000A0910402B09105028730904BA740B04BD6 +:10073000B9F4109202021092030210920402109275 +:10074000050214BE84B7877F84BF88E10FB6F89492 +:1007500080936000109260000FBEE0E0F8E309951E +:1007600011E0A0E0B1E0E0E0F9E402C005900D92F4 +:10077000A634B107D9F712E0A6E4B1E001C01D929A +:10078000A230B107E1F70E940D0C0C947E240C946A +:100790000000089581E0089508950C94C9030C9415 +:1007A000CA030C94CC030E94F42223E030E0281BFF +:1007B0003109220F20934A010895282F2F98809104 +:1007C0008000211108C0877F8093800010928D00E7 +:1007D00010928C001BC0886080938000233019F435 +:1007E0008FEF9FEF0FC083E090E0821B9109880F8D +:1007F000991F2FEF3FEFA90102C0569547958A95A3 +:10080000E2F7CA0190938D0080938C000C94D3037F +:100810000E94D30384E08093490110924601089519 +:10082000279A2F988FEF9FEF9093870080938600F1 +:100830008AE08093800089E1809381000E945D229C +:100840000C9408040E9410046E9A769A0C94110578 +:100850001F920F920FB60F9211242F933F938F93F5 +:100860009F93EF93FF93E0914701F0914801CF01EF +:10087000019690934801809347010090490102C07E +:10088000F695E7950A94E2F7EF738091460182307E +:1008900019F4E03251F404C0813039F4EF3329F413 +:1008A00080916F008D7F80936F00F0E0E25DFE4FDE +:1008B000E49121E031E0E29FC001E39F900D11241B +:1008C00000904A0102C0969587950A94E2F79093AA +:1008D0008D0080938C00FF91EF919F918F913F91BC +:1008E0002F910F900FBE0F901F901895CF93DF930D +:1008F000EC010E94F51DBE0180E090E0DF91CF91F8 +:100900000C94ED190F931F93CF93062F10E0023133 +:10091000110508F080C0DC01F801EA5AFF4F0C9481 +:100920002E2412968C91882309F475C081E090E002 +:1009300007C012968C91882309F46DC082E090E084 +:100940000E94760468C012968C91882309F463C0D3 +:1009500084E090E0F5CF12968C91882311F083E02B +:1009600007C083E00EC012968C91882349F084E082 +:100970000E946A1A46E064E083E00E94AA064BC027 +:1009800084E00E948B1AF6CF12968C91882311F086 +:1009900085E026C085E02EC012968C91882369F0F0 +:1009A00085EE0E94821284EE0E94821286EE0E94E0 +:1009B000821287EE0E9482122EC085EE0E944A1398 +:1009C00084EE0E944A1386EE0E944A1387EE0E942C +:1009D0004A1321C012968C91882329F0809100013E +:1009E0000E946A1A18C087E00E948B1A88E00E9451 +:1009F0008B1A89E00E948B1A0EC012968C91882364 +:100A000051F0809100010E948B1A602F70E070936A +:100A100001016093000180E090E0CF911F910F9160 +:100A20000895089581E008950C94120508950F9398 +:100A30001F93CF93DF938C01FC01C081D181CE0144 +:100A40000E94261BBE010E949008EC01B8010E9482 +:100A50001405882309F478C1F8018281882309F4F8 +:100A600063C080915A01811127C0C431F0E7DF07CC +:100A700009F012C10E94160581E080935A010E947C +:100A8000281D909359018093580110924D011092A6 +:100A90004F0110924E01109251011092500110928C +:100AA000530110925201109255011092540110926C +:100AB00057011092560148C18091580190915901F7 +:100AC0000E94341D883C910570F480914D01E82FFF +:100AD000F0E0EE0FFF1FE25BFE4FD183C0838F5F1C +:100AE00080934D0131C1C43120E7D20708F024C101 +:100AF000C23080E7D80710F5C11590E7D90709F093 +:100B0000DAC0F8018281882309F4BFC00E942D1643 +:100B1000FFEF24E38CE0F15020408040E1F700C07B +:100B200000000E94831D10C1C431F0E7DF0708F008 +:100B3000CFC0C23020E7D20708F49BC0F801828101 +:100B4000882309F4A2C00E94E21D811102C00E9404 +:100B5000C31D0E94FA1D90E09093F3018093F2016F +:100B6000C230F0E7DF0721F48091F20181607AC0A2 +:100B7000C33020E7D20721F48091F201826072C075 +:100B8000C43080E7D80721F48091F20184606AC004 +:100B9000C53090E7D90719F48091F20127C0C6301B +:100BA000E0E7DE0721F48091F20180615BC0C7308D +:100BB000F0E7DF0721F48091F201806253C0C83072 +:100BC00020E7D20721F48091F20180644BC0C93044 +:100BD00080E7D80721F48091F201806843C0CA30D1 +:100BE00090E7D90729F48091F201846088603AC0C7 +:100BF000CB30E0E7DE0721F48091F2018E7F32C036 +:100C0000CC30F0E7DF0721F48091F2018D7F2AC01C +:100C1000CD3020E7D20721F48091F2018B7F22C0F2 +:100C2000CE3080E7D80719F48091F2011AC0809184 +:100C3000F201CF3090E7D90711F48F7E13C0C03195 +:100C4000E0E7DE0711F48F7D0DC0C131F0E7DF076B +:100C500011F48F7B07C0C231D04711F48F7702C0E7 +:100C60008B7F877F8093F2018091F2010E94FE1DAD +:100C70006BC0C11580E7D80741F0C130D047F1F013 +:100C800081E080934B0180934C01C801DF91CF91AB +:100C90001F910F910C94CF03C43120E7D20708F0C5 +:100CA0004BC0C23080E7D80708F048CFC11590E7A5 +:100CB000D90709F42BCFC130D04711F7F801828151 +:100CC000882319F38091E10181608093E1013CC0A8 +:100CD000C333E0E7DE07A1F4F8018281882321F025 +:100CE00010924B0182E017C080914B01811106C028 +:100CF00086E20E94821286E20E944A1382E019C0B4 +:100D0000C433D04709F0BCCFF8018281882331F089 +:100D100010924C0180E20E94991316C080914C0100 +:100D2000811106C087E20E94821287E20E944A1364 +:100D300080E20E94A01308C0C333F0E7DF0761F22E +:100D4000C433D04709F39CCF80E0DF91CF911F914E +:100D50000F910895CF92DF92EF92FF920F931F931E +:100D600001E010E020E030E06801790104C0CC0C23 +:100D7000DD1CEE1CFF1C8A95D2F704C0000F111F6A +:100D8000221F331F6A95D2F70C291D292E293F29CE +:100D9000C090C401D090C501E090C601F090C70199 +:100DA000C022D122E222F322842FC016D106E2060D +:100DB000F30641F41F910F91FF90EF90DF90CF90D9 +:100DC0000C946A1A1F910F91FF90EF90DF90CF90D3 +:100DD0000C948B1A0C9422040C94CD032CE0729F7B +:100DE000F001112430E3839FE00DF11D1124E60F83 +:100DF000F11DEE0FFF1FE259FE4F859194910E9465 +:100E0000A208811540E5940708F047C0811520E449 +:100E1000920708F013C1883E910520F5803E9105A8 +:100E200008F07CC1883A910578F4853A910508F07C +:100E3000A5C08130910509F471C108F42EC1843038 +:100E4000910508F06BC129C18B3B910508F4A1C045 +:100E5000803C910508F421C1FC01EE0FFF1FE25117 +:100E6000F040E6C0811530E2930758F4811541E067 +:100E7000940708F053C1803F910508F40EC19065B6 +:100E80000895811520E3920708F0D5C0FC01FF709A +:100E9000EE0FFF1FE259FE4FCBC0811535E59307DA +:100EA00008F043C0811544E5940708F0DEC08115C1 +:100EB00022E5920708F5811531E5930708F0C1C0D6 +:100EC000482F437021E030E002C0220F331F4A95C3 +:100ED000E2F73C68AC0164E0569547956A95E1F706 +:100EE0004370342B8F708695869540E2849FC001B5 +:100EF0001124822B932B0895282F26952695AC013B +:100F0000437055278115934508F0A0C080E2289FC3 +:100F10009001112481E090E002C0880F991F4A954A +:100F2000E2F7822B932B9C6808958F3240E7940759 +:100F300090F48F3120E7920708F0A2C0811536E5C2 +:100F4000930708F497C09C0130562115304108F0F2 +:100F5000A4C09F7093C0803320E7920709F497C024 +:100F600008F492C0813340E7940709F493C08233B8 +:100F7000904709F092C080E093ED0895853A91057D +:100F800009F48EC0863A910509F08DC082E890E49C +:100F90000895883A910509F489C0893A910509F4C0 +:100FA00088C08A3A910509F487C08B3A910509F403 +:100FB00086C08C3A910509F485C08D3A910509F4F3 +:100FC00084C0803B910509F483C08E3A910509F4F1 +:100FD00082C08F3A910509F481C0813B910509F4E3 +:100FE00080C0823B910509F47FC0833B910509F4E1 +:100FF0007EC0843B910509F47DC0853B910509F4D1 +:101000007CC0863B910509F47BC0873B910509F4C0 +:101010007AC0883B910509F479C0893B910509F4B0 +:1010200078C08A3B910509F477C080E094E4089584 +:101030008591949108959927906C08959F70906A76 +:101040000895982F8827816F906A089590E2299FCC +:101050009001112481E090E002C0880F991F4A9509 +:10106000E2F7822B932B9A680895982F8827846F34 +:10107000906A08958F719927982F88279062089514 +:101080008F519047946D089580E091ED089580E030 +:1010900090ED089580E092ED089580E090E008954D +:1010A00081E890E4089583E890E4089582EE94E462 +:1010B000089589EE94E408958AEE94E4089585EB0A +:1010C00094E4089586EB94E4089587EB94E40895FE +:1010D0008CEC94E408958DEC94E4089583E895E411 +:1010E00008958AE895E4089582E995E4089584E9ED +:1010F00095E4089581E296E4089583E296E40895E4 +:1011000084E296E4089585E296E4089586E296E402 +:10111000089587E296E408958AE296E40895089592 +:101120009CE0799FF001112490E3899FE00DF11D6F +:101130001124E60FF11DEE0FFF1FE259FE4F8591BE +:10114000949108958238910549F1B0F48133910565 +:1011500009F458C048F48932910509F44EC08A3226 +:10116000910509F454C008958533910509F440C0F0 +:101170008933910599F00895833E910529F138F45A +:10118000803E910591F0823E9105A1F00895863E42 +:101190009105F9F0873E910531F108952091F20112 +:1011A00020FD3AC021FD38C008958091F20180FDF4 +:1011B00035C032C08091F20182FF32C08091F201CD +:1011C00084FD30C083EE39C08091F20182FD28C0D9 +:1011D000F5CF8091F20183FF27C08091F20184FD59 +:1011E00021C087EE2AC08091F20183FD1DC0F5CF9A +:1011F0008091F20185FD1AC01BC08091F20185FD2E +:1012000017C014C08091F20186FD14C015C08091F2 +:10121000F20186FD11C00EC080EE0FC089E30DC043 +:1012200082EE0BC080E009C086EE07C089E205C0EF +:1012300085E303C08AE201C081E390E008950C9445 +:10124000D103E82FF0E0ED5DFE4F8081E82FEF70D5 +:10125000F0E082958F7021E030E0A90102C0440FD8 +:10126000551F8A95E2F740A308950F931F93CF93DC +:10127000DF93C3E0D0E001E010E0FE01ED5DFE4F42 +:101280008081E82FEF70F0E021A182958F70A80196 +:1012900002C0440F551F8A95E2F7CA01822B81A331 +:1012A0008C2F0E942109219740F78BE090E061E0AC +:1012B00070E0FC01E95EFE4F2081E22FEF70F0E06C +:1012C00042A122952F70DB0102C0AA0FBB1F2A95F5 +:1012D000E2F79D01242B22A3019758F7DF91CF91CC +:1012E0001F910F9108950F931F93CF93DF9385B7AD +:1012F000806885BF85B7806885BFC3E0D0E001E026 +:1013000010E0FE01ED5DFE4F8081E82FEF70F0E010 +:1013100021A182958F70A80102C0440F551F8A95A4 +:10132000E2F7CA01822B81A38C2F0E942109219709 +:1013300040F78BE090E061E070E0FC01E95EFE4F79 +:101340002081E22FEF70F0E042A122952F70DB01A7 +:1013500002C0AA0FBB1F2A95E2F79D01242B22A3EE +:10136000019758F7DF91CF911F910F910C94EA06E6 +:10137000EF92FF920F931F93CF93DF9303E611E059 +:10138000C3E0EE24E394F12CD5E08C2F0E942109D8 +:101390008BE090E040E050E0FC01E95EFE4F6081B0 +:1013A000E62FEF70F0E020A130E062956F7002C090 +:1013B000359527956A95E2F720FD09C09701082E1B +:1013C00002C0220F331F0A94E2F7422B532B0197DE +:1013D00018F7F801929182918F018417950721F0F7 +:1013E00051834083D09302018C2F0E942109C15068 +:1013F00060F68091020187FD2CC08150809302012C +:101400008F3F39F08FE99FE00197F1F700C00000AE +:1014100020C0809161019091620190936A01809354 +:10142000690180915F0190916001909368018093C0 +:10143000670180915D0190915E01909366018093B8 +:10144000650180915B0190915C01909364018093B0 +:1014500063010E94EC0681E0DF91CF911F910F9113 +:10146000FF90EF900895E82FF0E0EE0FFF1FED5989 +:10147000FE4F80819181089508950F931F93CF931C +:101480000BE611E0C0E0F801929182918F010E9479 +:10149000A11CC80FF1E003361F07A9F78C2FCF91CD +:1014A0001F910F91089580917B010895CF93DF9351 +:1014B00000D01F92CDB7DEB79C018091F801843037 +:1014C00019F593E099833B832A839093E9008FEF8A +:1014D0009091E800815095FD06C095ED9A95F1F741 +:1014E00000008111F5CF8091E80085FF0DC040E03C +:1014F00050E063E070E0CE0101960E94B30C809151 +:10150000E8008E778093E8000F900F900F90DF91A6 +:10151000CF910895CF93DF9300D01F92CDB7DEB760 +:101520002091F801243021F522E029839B838A83CE +:1015300083E08093E9008FEF9091E800815095FD62 +:1015400006C095ED9A95F1F700008111F5CF8091D5 +:10155000E80085FF0DC040E050E063E070E0CE01A0 +:1015600001960E94B30C8091E8008E778093E8008A +:101570000F900F900F90DF91CF9108952091F80177 +:101580002430F1F422E02093E9002FEF3091E800BD +:10159000215035FD06C035ED3A95F1F700002111D7 +:1015A000F5CF2091E80025FF0BC040E050E065E05A +:1015B00070E00E94B30C8091E8008E778093E80081 +:1015C0000895CF93DF93EC019091F801943009F0E6 +:1015D00046C080910D018823D9F080910E018823A7 +:1015E000B9F09093E9008FEF9091E800815095FD5C +:1015F00006C095E19A95F1F700008111F5CF809131 +:10160000E80085FF2CC040E050E060E170E017C0CA +:1016100081E08093E9008FEF9091E800815095FD83 +:1016200006C095ED9A95F1F700008111F5CF8091F4 +:10163000E80085FF14C040E050E068E070E0CE01B3 +:101640000E94B30C8091E8008E778093E80080E1DF +:10165000FE01ABE6B1E001900D928A95E1F7DF91D2 +:10166000CF9108958091F701811109C00E94480E21 +:101670000E94A50E8091E20084608093E2000895AC +:101680001092F7010895089508950C94EB1C42E020 +:1016900061EC81E00E94C20D42E061EC82E00E94B8 +:1016A000C20D42E061EC83E00E94C20D42E161ECB8 +:1016B00084E00C94C20D8091FA01833009F455C086 +:1016C00030F4813071F0823009F48EC008958A3090 +:1016D00009F47AC08B3009F460C0893009F09CC0ED +:1016E00020C08091F901813A09F096C08091E8000C +:1016F000877F8093E8008091FD019091FE01892B06 +:1017000021F460E18BE691E003C060E080E090E0CE +:1017100070E00E94FE0C8091E8008B778093E800D7 +:1017200008958091F901813209F076C08091FD0120 +:101730009091FE01009719F0039709F06DC0809118 +:10174000E800877F8093E8008091E80082FD05C073 +:101750008091F8018111F8CF5FC08091F1008093F2 +:101760007B018091E8008B7753C08091F901813A29 +:1017700009F052C08091FD019091FE01892B09F082 +:101780004BC08091E800877F8093E8008091E8005B +:1017900080FFFCCF80910D0136C08091F90181322C +:1017A000D9F58091FD019091FE01892BA9F58091D9 +:1017B000E800877F8093E8000E94F70D8091FB018D +:1017C00080930D010C942D168091F901813221F541 +:1017D0008091E800877F8093E8000E94F70D809158 +:1017E000FC0180937C0108958091F901813AA1F474 +:1017F0008091E800877F8093E8008091E80080FF77 +:10180000FCCF80917C018093F1008091E8008E777D +:101810008093E8000C94F70D089584B7877F84BF08 +:1018200088E10FB6F89480936000109260000FBEBC +:1018300080E880936100109261000E949A110E94DA +:10184000480E0E94A50E8091E20084608093E20021 +:1018500078940E942B110E949C1183E091E00E94D9 +:1018600046118091F801853069F40E94AD1C809189 +:10187000F6018823B1F30E94DA1C882391F30E94B9 +:101880009D0CEFCF0E94A411ECCF292F33272330DA +:101890003105C9F064F42130310581F02230310581 +:1018A00009F043C08DE690E02AE835E042C02132DD +:1018B0003105F1F02232310541F137C082E190E08B +:1018C00027EF35E036C099278130910541F082300D +:1018D000910541F0892B49F5E6E8F5E005C0E8E51A +:1018E000F5E002C0EEE2F5E0849190E09F0121C0B6 +:1018F0006430D8F4E62FF0E0EE0FFF1FED5CFE4FF2 +:101900002081318189E090E014C0643070F470E08F +:10191000FB01EE0FFF1FE55DFE4F20813181FB01D2 +:10192000E95DFE4F808190E004C080E090E020E01F +:1019300030E0FA0131832083089580E189BD82E19E +:1019400089BD09B400FEFDCF8091D8008F7D8093C2 +:10195000D8008091E00082608093E0008091E000F8 +:1019600081FDFCCF0895CF92DF92EF92FF920F930B +:101970001F93CF93DF93EC018B016A010E94160E37 +:10198000811133C0C114D10439F0F60180819181F5 +:10199000081B190BC80FD91FE12CF12C01151105DB +:1019A00019F18091E80085FD16C08091E8008E77DE +:1019B0008093E800C114D10449F0F601808191813F +:1019C000E80EF91EF182E08285E00FC00E94160E3B +:1019D000882321F30AC089918093F10001501109F5 +:1019E000FFEFEF1AFF0ADACF80E0DF91CF911F916E +:1019F0000F91FF90EF90DF90CF9008952091FF011D +:101A0000309100022617370748F06115710539F447 +:101A10002091E8002E772093E80001C0B90140E052 +:101A200061157105A9F12091F801222309F443C041 +:101A3000253009F442C02091E80023FD40C02091E8 +:101A4000E80022FD32C02091E80020FFE9CF40915C +:101A5000F3002091F20030E0342BFC01CF0161153E +:101A6000710559F02830310540F481918093F100DF +:101A7000615071092F5F3F4FF1CF41E028303105B0 +:101A800009F040E02091E8002E772093E800C8CFCD +:101A90004111C9CF0AC08091F801882361F08530D7 +:101AA00061F08091E80083FD0AC08091E80082FF28 +:101AB000F2CF80E0089582E0089583E0089581E008 +:101AC00008952091FF01309100022617370748F052 +:101AD0006115710539F42091E8002E772093E80014 +:101AE00001C0B901FC0120E06115710591F18091FF +:101AF000F801882309F440C0853009F43FC0809183 +:101B0000E80083FD3DC08091E80082FD2FC08091F8 +:101B1000E80080FFE9CF2091F3008091F20090E08F +:101B2000922B6115710559F08830910540F424918C +:101B30002093F1003196615071090196F2CF21E0B6 +:101B4000089709F020E08091E8008E778093E80004 +:101B5000CBCF2111CCCF0AC08091F801882361F04E +:101B6000853061F08091E80083FD0AC08091E80033 +:101B700082FFF2CF80E0089582E0089583E0089527 +:101B800081E00895982F973058F59093E9009817C1 +:101B900039F07091EC002091ED005091F00003C0FD +:101BA000242F762F50E021FF19C03091EB003E7FAB +:101BB0003093EB003091ED003D7F3093ED0030919C +:101BC000EB0031603093EB007093EC002093ED005C +:101BD0005093F0002091EE0027FF07C09F5FD3CF06 +:101BE0008F708093E90081E0089580E008958091EE +:101BF000F90187FF11C08091E80082FD05C0809146 +:101C0000F8018111F8CF11C08091E8008B770BC0EB +:101C10008091F801882349F08091E80080FFF8CF97 +:101C20008091E8008E778093E80008952091E40089 +:101C30003091E50095E64091EC00842F817040FFE3 +:101C400022C08091E80080FD1CC08091F8018823AB +:101C500091F0853091F08091EB0085FD10C04091AE +:101C6000E4005091E5004217530729F39A0191507F +:101C700011F784E0089582E0089583E0089581E0FB +:101C8000089580E008954091E80042FFDECF089576 +:101C90000E94B60E0E94BE0EE0EEF0E080818160F0 +:101CA0008083E8EDF0E080818F77808319BCA7ED19 +:101CB000B0E08C918E7F8C9380818F7E8083109298 +:101CC000F70108950F931F93CF93DF930E94B60EF1 +:101CD0000E94BE0EC8EDD0E088818F77888388810E +:101CE0008068888388818F7D888319BC1092F80171 +:101CF0001092F4011092F6011092F50100EE10E03E +:101D0000F80180818B7F808388818160888342E0B5 +:101D100060E080E00E94C20DE1EEF0E080818E7F05 +:101D20008083E2EEF0E08081816080838081886042 +:101D30008083F80180818E7F8083888180618883A1 +:101D4000DF91CF911F910F910895E8EDF0E0808130 +:101D50008F7E8083E7EDF0E080818160808384E086 +:101D600082BF81E08093F7010C94620EE8EDF0E011 +:101D700080818E7F80831092E20008951092DA00B5 +:101D80001092E10008951F920F920FB60F92112446 +:101D90002F933F934F935F936F937F938F939F9373 +:101DA000AF93BF93EF93FF938091E10082FF0BC04D +:101DB0008091E20082FF07C08091E1008B7F8093D9 +:101DC000E1000E942A118091DA0080FF1FC08091FB +:101DD000D80080FF1BC08091DA008E7F8093DA00EC +:101DE0008091D90080FF0DC080E189BD82E189BD6D +:101DF00009B400FEFDCF81E08093F8010E94320B10 +:101E000005C019BC1092F8010E94400B8091E100BE +:101E100080FF19C08091E20080FF15C08091E20030 +:101E20008E7F8093E2008091E20080618093E200E7 +:101E30008091D80080628093D80019BC85E080939F +:101E4000F8010E94440B8091E10084FF30C0809132 +:101E5000E20084FF2CC080E189BD82E189BD09B424 +:101E600000FEFDCF8091D8008F7D8093D8008091B7 +:101E7000E1008F7E8093E1008091E2008F7E80936D +:101E8000E2008091E20081608093E2008091F401A1 +:101E9000882311F084E007C08091E30087FD02C031 +:101EA00081E001C083E08093F8010E94450B80919E +:101EB000E10083FF29C08091E20083FF25C080916B +:101EC000E100877F8093E10082E08093F801109227 +:101ED000F4018091E1008E7F8093E1008091E20027 +:101EE0008E7F8093E2008091E20080618093E20027 +:101EF00042E060E080E00E94C20D8091F0008860C6 +:101F00008093F0000E94430BFF91EF91BF91AF913E +:101F10009F918F917F916F915F914F913F912F9101 +:101F20000F900FBE0F901F9018951F920F920FB633 +:101F30000F9211242F933F934F935F936F937F934F +:101F40008F939F93AF93BF93CF93DF93EF93FF93C1 +:101F5000C091E900CF708091EC00D82FD17080FD46 +:101F6000D0E81092E9008091F000877F8093F00024 +:101F700078940E94D90F1092E9008091F000886057 +:101F80008093F000CD2BCF70C093E900FF91EF91CB +:101F9000DF91CF91BF91AF919F918F917F916F9181 +:101FA0005F914F913F912F910F900FBE0F901F9017 +:101FB00018951F93CF93DF93CDB7DEB7AA970FB6CF +:101FC000F894DEBF0FBECDBFE9EFF1E088E08E0FE1 +:101FD0009091F10091938E13FBCF0E945B0B809147 +:101FE000E80083FF1FC18091F9019091FA01492F08 +:101FF00050E04A30510508F015C1FA01E859FF4F89 +:102000000C942E24803881F0823809F00BC1809125 +:10201000FD018F708093E9008091EB0085FB88279C +:1020200080F91092E90006C08091F5019091F601C7 +:10203000911182609091E800977F9093E8008093DF +:10204000F1001092F100C8C0282F2D7F09F0EAC0DE +:10205000882319F0823061F0E5C08091FB01813066 +:1020600009F0E0C0933009F080E08093F6012BC0C6 +:102070008091FB01811127C08091FD018F7009F4CF +:10208000D1C08093E9002091EB0020FF1CC0933069 +:1020900021F48091EB00806214C09091EB0090617C +:1020A0009093EB0021E030E0A90102C0440F551FDE +:1020B0008A95E2F74093EA001092EA008091EB00E3 +:1020C00088608093EB001092E9008091E800877FA0 +:1020D00086C08111A7C01091FB011F778091E3009A +:1020E0008078812B8093E3008091E800877F809344 +:1020F000E8000E94F70D8091E80080FFFCCF8091FE +:10210000E30080688093E300111102C082E001C007 +:1021100083E08093F80186C08058823008F082C046 +:102120008091FB019091FC018C3D53E0950779F57E +:1021300083E08A838AE289834FB7F894DE0113969D +:1021400020E03EE051E2E32FF0E050935700E491AD +:1021500020FF03C0E295EF703F5FEF708E2F90E09D +:10216000EA3010F0C79601C0C0968D939D932F5F03 +:10217000243149F74FBF8091E800877F8093E800C2 +:102180006AE270E0CE0101960E94FE0C14C0AE011E +:102190004F5F5F4F6091FD010E94450CBC01892B90 +:1021A00009F440C09091E800977F9093E8008981FE +:1021B0009A810E94610D8091E8008B778093E800FE +:1021C00031C0803879F58091E800877F8093E800FE +:1021D0008091F4018093F1008091E8008E778093E4 +:1021E000E8000E94F70D1EC081111CC09091FB01F8 +:1021F0009230C0F48091E800877F8093E80090934C +:10220000F4010E94F70D8091F401811106C08091C4 +:10221000E30087FD02C081E001C084E08093F80103 +:102220000E94470B8091E80083FF0AC08091E8007C +:10223000877F8093E8008091EB0080628093EB00C1 +:10224000AA960FB6F894DEBF0FBECDBFDF91CF9137 +:102250001F9108950895CF938091F8018823A1F0EC +:10226000C091E900CF709091EC00892F817090FDB2 +:1022700080E8C82B1092E9008091E80083FD0E945D +:10228000D90FCF70C093E900CF9108959093820148 +:10229000809381010895E0918101F091820130974E +:1022A00021F00190F081E02D099480E00895E09103 +:1022B0008101F0918201309721F00280F381E02DBD +:1022C00009940895E0918101F0918201309721F005 +:1022D0000480F581E02D0994089520917F013091CB +:1022E00080018217930771F09093800180937F01A2 +:1022F000E0918101F0918201309721F00680F78111 +:10230000E02D0994089520917D0130917E0182177E +:10231000930771F090937E0180937D01E09181019C +:10232000F0918201309721F00084F185E02D09942D +:10233000089508950C9499110E941F1D0E9473091D +:102340000E94A51D0C945D225F926F927F928F92E6 +:102350009F92AF92BF92CF92DF92EF92FF920F9334 +:102360001F93CF93DF9300D000D01F92CDB7DEB77D +:102370000E94B8099CE8C92E91E0D92E03E010E034 +:10238000AA24A394B12C502E802F0E94330A4C0112 +:10239000F601729062906F016826792661147104CB +:1023A000A1F40150110978F78FEF89838A831B828A +:1023B0000E94281D8160782F9D838C8349815A81DA +:1023C0006B818D810E94541238C08091E10181FDA2 +:1023D0000E943C0A2BE030E07501022E02C0EE0C98 +:1023E000FF1C0A94E2F7C70186219721892B09F186 +:1023F00029835A828E209F2091E0892809F490E059 +:102400009B830E94281D8160782F9D838C83498146 +:102410005A816B818D810E945412000F111FF801A7 +:10242000EC57FE4F80819181E826F926F182E08207 +:1024300004C02150310980F6B4CF0E94861F10914C +:1024400083010E944B111817D1F00E944B11809309 +:1024500083010F900F900F900F900F90DF91CF910D +:102460001F910F91FF90EF90DF90CF90BF90AF90B2 +:102470009F908F907F906F905F900C941F090F90AA +:102480000F900F900F900F90DF91CF911F910F91B0 +:10249000FF90EF90DF90CF90BF90AF909F908F9084 +:1024A0007F906F905F900895CF93DF93CDB7DEB7A5 +:1024B0002B970FB6F894DEBF0FBECDBF4F83588762 +:1024C00069877A878B87DE01119686E0FD0111927C +:1024D0008A95E9F785E0FE01379601900D928A957D +:1024E000E1F749815A816B817C818D819E810E94B7 +:1024F000CB182B960FB6F894DEBF0FBECDBFDF9181 +:10250000CF910895CF93882309F4C2C0C82F823891 +:1025100059F40E944B1181FDBBC089E30E94A51BA9 +:102520000E94721C89E30CC0833879F40E944B111D +:1025300080FDAEC083E50E94A51B0E94721C83E54E +:102540000E94E71BCF910C94721C843859F40E94AE +:102550004B1182FD9DC087E40E94A51B0E94721C46 +:1025600087E4EECF8CEF8C0F813A48F48C2F0E94D9 +:10257000C62181118DC08C2F0E94A51BE3CF80E264 +:102580008C0F883048F4C77081E001C0880FCA956D +:10259000EAF70E942B1CD6CF8BE58C0F833078F4A2 +:1025A000C53A29F0C63A31F083E890E005C081E8E9 +:1025B00090E002C082E890E0CF910C946D1188E524 +:1025C0008C0F833108F064C0C83A39F1C93A41F13F +:1025D000CA3A49F1CB3A51F1CC3A59F1CD3A61F1CD +:1025E000C03B69F1CE3A71F1CF3A79F1C13B81F14B +:1025F000C23B89F1C33B91F1C43B99F1C53BA1F1C9 +:10260000C63BA9F1C73BB1F1C83BB9F1C93BC1F128 +:10261000CA3BC9F180E090E038C082EE90E035C05E +:1026200089EE90E032C08AEE90E02FC085EB90E01A +:102630002CC086EB90E029C087EB90E026C08CECA4 +:1026400090E023C08DEC90E020C083E891E01DC0B5 +:102650008AE891E01AC082E991E017C084E991E02C +:1026600014C081E292E011C083E292E00EC084E2E5 +:1026700092E00BC085E292E008C086E292E005C0DD +:1026800087E292E002C08AE292E0CF910C9483113B +:10269000CF910895882309F44BC0823859F40E94E1 +:1026A0004B1181FF45C089E30E94A51B0E94721C4B +:1026B00089E30CC0833871F40E944B1180FF38C04D +:1026C00083E50E94A51B0E94721C83E50E94E71B04 +:1026D0000C94721C843859F40E944B1182FF28C05C +:1026E00087E40E94A51B0E94721C87E4EFCF9CEF39 +:1026F000980F913A58F390E2980F983050F4877001 +:1027000091E001C0990F8A95EAF7892F0E94311C48 +:10271000DFCF9BE5980F933020F480E090E00C949D +:102720006D11885A833120F480E090E00C9483117D +:102730000895882321F00E942B1C0C94721C08958C +:10274000882321F00E94311C0C94721C08957F9202 +:102750008F929F92AF92BF92CF92DF92EF92FF92B1 +:102760000F931F93CF93DF931F92CDB7DEB77C01FA +:10277000C62E772EFC01058102950F701281111172 +:102780000E94481C0E949E1B882379F0112369F047 +:1027900080E28C0D883048F082E00E94871B0E9406 +:1027A0009E1B91E0D82ED92601C0D12CE72DE295B1 +:1027B000EF70F0E0EE58FF4F0C942E24872D807FB1 +:1027C000072D0F70882311F00295007F112389F0E7 +:1027D000002309F499C180E28C0D883020F4802F09 +:1027E0000E942B1C03C0802F0E943B1C0E94721C65 +:1027F0008BC18C2D0E944A13002309F4C3C180E2CF +:102800008C0D883020F4802F0E94311C03C0802F53 +:102810000E94411C0E94721CB5C1872D807F972D9C +:102820009F70803211F4892F03C0892F8295807F99 +:10283000CC2021F0F1E0CF16A1F01DC0112339F01A +:10284000002319F1013009F50E945B1C9BC1002394 +:1028500019F0013009F496C189830E945E1C8981B8 +:1028600010C1112321F0063008F08CC10EC00530D4 +:1028700008F088C106C1112359F0002331F0F70197 +:10288000958190FF41C19F7095830E9499137AC1F1 +:10289000002309F4F6C03EC1872D86958695837086 +:1028A00090E0009719F0019761F06CC1112321F0BD +:1028B0008C2D972D937002C080E090E00E946D11E6 +:1028C00061C1112321F08C2D972D937002C080E0FF +:1028D00090E00E94831156C18C2D112319F00E94A3 +:1028E0008E1E02C00E94F61E0E947B1F4BC1872DC8 +:1028F000837009F052C0111145C18C2D82958695C7 +:102900008770880F880F9C2D9F70892E912CA12C89 +:10291000B12C082E04C0880C991CAA1CBB1C0A945C +:10292000D2F7C4FE14C00FE010E020E030E0B9019F +:10293000A80104C0440F551F661F771F8A95D2F760 +:10294000CB01BA01609570958095909503C060E0C9 +:1029500070E0CB01272D26952695237030E022309C +:10296000310569F02330310589F0682979298A29F0 +:102970009B292130310571F00E94131A03C1682987 +:1029800079298A299B290E942F1AFCC00E94131AB8 +:10299000C501B4010E94F719F5C0112319F0872D64 +:1029A000817001C08695882309F4ECC08C2D829536 +:1029B00086958770880F880F9C2D9F70892E912C8B +:1029C000A12CB12C082E04C0880C991CAA1CBB1C7D +:1029D0000A94D2F7C4FE14C00FE010E020E030E00B +:1029E000B901A80104C0440F551F661F771F8A95BF +:1029F000D2F7CB01BA01609570958095909503C090 +:102A000060E070E0CB01272D269526952370422F9C +:102A100050E04230510569F04330510589F0682992 +:102A200079298A299B294130510571F00E94ED1ABC +:102A3000A9C0682979298A299B290E94091BA2C05B +:102A40000E94ED1AC501B4010E94D11A9BC08C2DC1 +:102A500090E0FC01E05EF109E531F10508F050C0BD +:102A6000EE57FF4F0C942E240C2D0F70872D8F7175 +:102A7000112321F00E946A1A802F07CF0E948B1A1F +:102A8000802F0E94A0137EC0112341F0053008F072 +:102A900079C0872D8F710E94B01A74C0063008F07B +:102AA00071C0F7CF112339F0872D8F710E946A1AF8 +:102AB00069C01123C9F3872D8F710E948B1A62C0E0 +:102AC000112329F0872D8F710E94551A5BC00E9437 +:102AD0004B1A58C0112351F0172D1F71812F0E94DE +:102AE0006A1A63E0812F0E947E1B4CC081E00E9425 +:102AF000871B023008F446C082E00E94871B42C058 +:102B0000112331F0002381F28C2D0E9482123AC0F1 +:102B1000002389F28C2D0E944A1334C0472D4F7038 +:102B20006C2DC7010E9482040E946F192BC01111E5 +:102B300029C0472D4F7050E042305105B9F04CF498 +:102B40004115510581F041305105E1F40E94852283 +:102B500019C04330510569F04430510599F48C2D6A +:102B60000E94D7220FC00E946E220CC00E94A12298 +:102B700009C00E94B42206C0472D4F706C2DC701BA +:102B80000E948F08DD20F9F00E947A1B80FD1BC097 +:102B9000F70112820E94741B0E946A1AC7010E94E8 +:102BA000F2150E94741B0F90DF91CF911F910F912E +:102BB000FF90EF90DF90CF90BF90AF909F908F905D +:102BC0007F900C948B1A0F90DF91CF911F910F91F2 +:102BD000FF90EF90DF90CF90BF90AF909F908F903D +:102BE0007F9008950F931F93CF93DF93EC0188811B +:102BF00099812B813C81232BB9F09F3F11F48F3FAA +:102C000099F0CE010E941705882371F068817981BF +:102C10008A810E94701B8C010E94251B0E94EC1966 +:102C2000B801CE010E94A713DF91CF911F910F91A0 +:102C300008950E94481C0E94581C0E941D1C0E945E +:102C4000721C0E942C200E947B1F80E090E00E945A +:102C50006D1180E090E00C9483110E94381C0C945C +:102C600019160E94651B292F22952F7030E02C30F9 +:102C700031054CF42A3031056CF4225031092230F0 +:102C80003105A8F407C02C30310569F02F3031052B +:102C900051F00DC0803F69F018F4803E40F409C047 +:102CA000843F29F406C093FB882780F9089580E0CB +:102CB000089581E00895CF93DF9300D000D01F9254 +:102CC000CDB7DEB70F900F900F900F900F90DF9160 +:102CD000CF910895CF93DF9300D000D000D0CDB72F +:102CE000DEB726960FB6F894DEBF0FBECDBFDF91DC +:102CF000CF9108951F93CF93DF93C0918C0116E07D +:102D000080918D01C81799F0D0E01C9FF0011D9FA4 +:102D1000F00D1124E257FE4F408151816281738191 +:102D2000848195810E946A162196C770E9CFDF9150 +:102D3000CF911F9108954091BE015091BF016091C4 +:102D4000C0017091C1018091C2019091C3010C94A6 +:102D50006A168091C30182958F7009F054C08091EA +:102D6000C001882309F44FC080918C01A0918D018E +:102D70006091BE017091BF014091C1015091C201AB +:102D8000B6E08A1709F43FC090E041155105C1F142 +:102D90007F3F11F46F3FA1F1B89FF001B99FF00D93 +:102DA0001124E257FE4F218172132AC02081621341 +:102DB00027C02281211124C02381348124173507A3 +:102DC00010F421503109241B350B283C3105C0F487 +:102DD0002091C3012F7020612093C30126E0289F1A +:102DE000F001299FF00D1124ED56FE4F80818F7068 +:102DF000806180838EEB91E00E94F2150C947A162C +:102E000001968770BECF0895CF92DF92EF92FF9226 +:102E10000F931F93CF93DF93CDB7DEB762970FB6B3 +:102E2000F894DEBF0FBECDBF8C0185E0F801DE0156 +:102E30001D9601900D928A95E1F7D8014C9111965B +:102E40005C91119712966C9112971396CD90DC902D +:102E500014973091BE017091BF018091C101909192 +:102E6000C201009709F46BC17F3F19F43F3F09F499 +:102E700066C1E090C001EE2009F4C0C02091C301FA +:102E8000C816D90628F0F601E81BF90BCF0104C0DB +:102E9000809590958C0D9D1DFF24F394883C9105A1 +:102EA00078F0F12C207F09F0C6C07C2DD98AC88A21 +:102EB00089890E945B168EEB91E00E94F215B1C0E9 +:102EC000822F807F09F046C0751314C0341312C0DE +:102ED000611110C02F7020612093C3010E949B16C6 +:102EE0008EEB91E00E94F2158091C301D8011596F6 +:102EF0008C932EC0CD2819F15F3F11F44F3FF9F0AC +:102F0000F62E61111CC080918C0120918D0136E05C +:102F1000821709F45AC090E0389FF001399FF00DF4 +:102F20001124E257FE4F7181571306C07081471379 +:102F300003C07281711103C001968770E9CFF62E2C +:102F4000662309F418C18091C30181608093C30195 +:102F5000F12C11C1751308C0341306C0611104C0EF +:102F60008091C301D801C3C04D875E878D859E8542 +:102F70006A8B0E9431166A898823E1F16623D1F1B8 +:102F80002091C301822F82958F7090E0029774F098 +:102F90008091BE019091BF0198878F831986DB864F +:102FA000CA862C87CE0107960E94F21586E0F801AA +:102FB000AEEBB1E001900D928A95E1F70E94A9165F +:102FC0000E949B16FF24F394D6C04D875E878D85A3 +:102FD0009E850E94651B292F22952F7030E022309C +:102FE00031050CF0BCC09F7009F0B6C0805E88301F +:102FF00008F4C1C0C8010E94F215E4CFC816D90672 +:1030000008F453C0F601E81BF90BCF01883C910589 +:1030100008F450C0F12C7C2DD98AC88A89890E9475 +:103020005B16EEEBF1E086E0DF011D928A95E9F791 +:103030000E949B16A0C0751314C0341312C06111F6 +:1030400010C08091C301F8018583C8010E94F21568 +:1030500086E0EEEBF1E0DF011D928A95E9F7FE2CA8 +:103060008AC04D875E878D859E856A8B0E9431164A +:103070006A89882309F4BECF662309F4BBCF209167 +:10308000C301822F82958F7090E002970CF48ECF4F +:103090008091BE019091BF019A8389831B82DD825A +:1030A000CC822E83CE0101967FCF809590958C0D9A +:1030B0009D1DACCFF62E662309F49CCF75132EC050 +:1030C00034132CC02091C30120FD1FC0822F829594 +:1030D0008F70D9F0D80115962C9315978F3049F041 +:1030E0008F5F982F9295907F822F8F70892B1596E6 +:1030F0008C93C8010E94F21586E0F801AEEBB1E0B6 +:1031000001900D928A95E1F793CF86E0F801AEEB3E +:10311000B1E001900D928A95E1F72DC04D875E8751 +:103120008D859E850E943116811140CF8091C3010B +:1031300081608093C301C8010E94F2151CC0662300 +:1031400009F458CF4D875E878D859E850E94311684 +:10315000882309F44FCF2ACF811148CF0CC02430E7 +:1031600031050CF047CF9F7009F440CFF8019581ED +:10317000907F09F03BCF8F2D62960FB6F894DEBF9B +:103180000FBECDBFDF91CF911F910F91FF90EF90B8 +:10319000DF90CF9008951F93CF93DF93CDB7DEB725 +:1031A0002C970FB6F894DEBF0FBECDBF4F83588764 +:1031B00069877A878B879C87CE0107960E940417C0 +:1031C000882369F08F8198852A853B85232BF1F12F +:1031D0009F3F09F063C08F3F09F060C037C086E0B1 +:1031E000FE013796DE01119601900D928A95E1F766 +:1031F0006F817885EA85FB85309741F17F3F11F437 +:103200006F3F21F120918D0130E0C9010196877057 +:10321000992740918C0150E08417950709F447C025 +:1032200069837A83FD83EC8396E0929FD001939F1C +:10323000B00D1124A257BE4FFE01319601900D92A0 +:103240009A95E1F780938D010E947A1616E080919D +:103250008C0190918D018917C1F1189FC001112433 +:1032600082579E4F0E940417882379F1E0918C01C8 +:103270001E9FF0011124E257FE4F4081518162816F +:103280007381848195810E946A1680918C0190E0FF +:1032900001968770992780938C01D9CF4F815885EB +:1032A00069857A858B859C850E946A16CFCF0E949E +:1032B0002D1610928D0110928C01EEEBF1E086E05C +:1032C000DF011D928A95E9F7C1CF2C960FB6F894CD +:1032D000DEBF0FBECDBFDF91CF911F910895EF925A +:1032E000FF920F931F93CF93DF938C01892B09F4E7 +:1032F0006CC0F12CEE24E394E8012196F80184914E +:10330000843740F4843008F051C0813081F082303D +:1033100019F15BC0853709F444C0A8F19CE7980F08 +:10332000903708F052C08F770E944A1341C00E5F59 +:103330001F4FFE01C49180E28C0F883048F4C770A3 +:103340008E2D01C0880FCA95EAF70E944B1C14C04D +:103350008C2F0E9482122DC00E5F1F4FFE01C49160 +:1033600080E28C0F883058F4C7708E2D01C0880F12 +:10337000CA95EAF70E94511C0E94721C1AC08C2F39 +:103380000E944A1316C00E5F1F4FFE01C491CC234A +:1033900081F08FE99FE00197F1F700C00000C15074 +:1033A000F6CF0E5F1F4FFE01F49003C00E94821201 +:1033B0008E018F2D882309F49FCFEFE9FFE031972D +:1033C000F1F700C000008150F5CFDF91CF911F9140 +:1033D0000F91FF90EF90089508956093C801709346 +:1033E000C9018093CA019093CB010C9419160F93D5 +:1033F0001F930091C8011091C9012091CA01309119 +:10340000CB01DC01CB01802B912BA22BB32B809322 +:10341000C8019093C901A093CA01B093CB011F9139 +:103420000F910C9419160F931F930091C8011091DE +:10343000C9012091CA013091CB01DC01CB0180236D +:103440009123A223B3238093C8019093C901A09331 +:10345000CA01B093CB011F910F910C9419160F93D1 +:103460001F930091C8011091C9012091CA013091A8 +:10347000CB01DC01CB0180279127A227B3278093C2 +:10348000C8019093C901A093CA01B093CB011F91C9 +:103490000F910C9419161092C4011092C50110924C +:1034A000C6011092C7010C94191641E050E060E08B +:1034B00070E004C0440F551F661F771F8A95D2F72E +:1034C0004093C4015093C5016093C6017093C70136 +:1034D0000C94191641E050E060E070E004C0440F25 +:1034E000551F661F771F8A95D2F78091C40190916E +:1034F000C501A091C601B091C701482B592B6A2B79 +:103500007B2B4093C4015093C5016093C601709317 +:10351000C7010C94191641E050E060E070E004C06F +:10352000440F551F661F771F8A95D2F74095509517 +:10353000609570958091C4019091C501A091C601DC +:10354000B091C701482359236A237B234093C401C8 +:103550005093C5016093C6017093C7010C9419166E +:1035600041E050E060E070E004C0440F551F661F6A +:10357000771F8A95D2F78091C4019091C501A091DF +:10358000C601B091C701482759276A277B27409376 +:10359000C4015093C5016093C6017093C7010C9498 +:1035A00019160F931F930091C4011091C50120912A +:1035B000C6013091C701DC01CB01802B912BA22BDE +:1035C000B32B8093C4019093C501A093C601B0931F +:1035D000C7011F910F910C9419160F931F9300911F +:1035E000C4011091C5012091C6013091C701DC01D1 +:1035F000CB0180239123A223B3238093C401909312 +:10360000C501A093C601B093C7011F910F910C94FF +:1036100019160F931F930091C4011091C5012091B9 +:10362000C6013091C701DC01CB0180279127A22779 +:10363000B3278093C4019093C501A093C601B093B2 +:10364000C7011F910F910C9419160895CF92DF9224 +:10365000EF92FF920F931F93CF93DF938C01C09053 +:10366000C801D090C901E090CA01F090CB018091CF +:10367000C4019091C501A091C601B091C701C82AAB +:10368000D92AEA2AFB2ACFE1D0E0D701C6010C2EC5 +:1036900004C0B695A795979587950A94D2F780FFB1 +:1036A00006C0B8018C2F0E94EE06019721F42197E5 +:1036B00060F780E001C08C2FDF91CF911F910F91B7 +:1036C000FF90EF90DF90CF900895CF93DF93EC01C0 +:1036D0000E94261BBE010E94EE06DF91CF91089545 +:1036E000CB010E94651B08958091CC01859585953D +:1036F000859508958091CC018770089598E0899F01 +:1037000090011124262B2093CC010C946A1A20914D +:10371000CC01809582238093CC01982F977069F417 +:1037200030E0482F552747FD50952417350729F0DD +:103730008595859585950C948B1A08959091CC016B +:10374000977081E009F480E0089590910D0199232C +:1037500021F090910E01911109C020910F0130913B +:103760001001F90132969FEF40E01FC0982F969507 +:10377000969596959F3050F5E0910F01F0911001CC +:10378000E90FF11D877021E030E0A90102C0440F6C +:10379000551F8A95E2F7CA019181892B818308958B +:1037A0009F3F39F04F5F4E3041F051915813F8CFA1 +:1037B0000DC05111F7CF942FF5CF9F3F39F0F9018C +:1037C000E90FF11D97FDFA95828308950895909170 +:1037D0000D01992321F090910E01911109C02091C2 +:1037E0000F0130911001F9013296205F3F4F1FC049 +:1037F000982F9695969596959F30F0F4E0910F014D +:10380000F0911001E90FF11D877021E030E0A9016E +:1038100002C0440F551F8A95E2F7CA018095918135 +:103820008923818308953196E217F30729F0908167 +:103830009813F9CF1082F7CF089581E090E0E091DE +:103840000F01F0911001E80FF91F108201968031ED +:103850009105A9F708959091E001892B8093E001EB +:10386000089580959091E00189238093E001089567 +:103870001092E00108959091DF01892B8093DF0180 +:10388000089580959091DF0189238093DF01089549 +:103890001092DF0108959091DE01892B8093DE0163 +:1038A000089580959091DE0189238093DE0108952B +:1038B0001092DE0108958093CD0108951092CD01FC +:1038C000089580910F0190911001FC0131969C01A7 +:1038D000205F3F4F80E0919191118F5FE217F307D6 +:1038E000D1F70895E0910F01F09110018091E0016E +:1038F0008083E0910F01F091100190818091DF01B0 +:10390000892B8083E0910F01F091100190818091CB +:10391000DE01892B80838091CD01882361F0E091C5 +:103920000F01F09110019081892B80830E94611C0E +:1039300081111092CD0180910F01909110010C9492 +:10394000571120E0009739F0AC0141505109842310 +:1039500095232F5FF7CF822F08958091F80184304F +:1039600039F11092E20120E488E190E00FB6F8947A +:10397000A895809360000FBE2093600080E00E94B5 +:10398000DD0380E00E941F0983B7817F846083BFCD +:1039900083B7816083BF7894889583B78E7F83BF18 +:1039A00088E10FB6F89480936000109260000FBE1B +:1039B0000895089580E00E94DD030E9435090E9469 +:1039C000B8090E94D91C0E943D0A91E0811101C0F2 +:1039D00090E0892F08950E942D1680E00E94DD035B +:1039E0000E945D220E944B110C941F091F920F929E +:1039F0000FB60F9211248F939F93AF93BF93809133 +:103A0000E201811113C08091E3019091E401A09142 +:103A1000E501B091E6014196A11DB11D8093E3013E +:103A20009093E401A093E501B093E601BF91AF91BB +:103A30009F918F910F900FBE0F901F90189582E06D +:103A400084BD93E095BD9AEF97BD80936E00089575 +:103A50002FB7F8948091E3019091E401A091E501E2 +:103A6000B091E6012FBF0895CF92DF92EF92FF92BF +:103A70000F931F932FB7F8944091E3015091E40105 +:103A80006091E5017091E6012FBF6A017B01EE2490 +:103A9000FF248C0120E030E0C016D106E206F306D8 +:103AA00010F4415051099A01281B390BC9011F918B +:103AB0000F91FF90EF90DF90CF9008951F920F929B +:103AC0000FB60F9211248F939F93AF93BF93809162 +:103AD000E3019091E401A091E501B091E601019626 +:103AE000A11DB11D8093E3019093E401A093E50132 +:103AF000B093E601BF91AF919F918F910F900FBE50 +:103B00000F901F9018950E94480EF8942FEF87EAA7 +:103B100091E6215080409040E1F700C0000087E02E +:103B200090EBDC018093020290930302A0930402C5 +:103B3000B09305029CE088E10FB6F894A8958093B5 +:103B400060000FBE90936000FFCF0E94E21D8111C4 +:103B500002C00E94C31D0E94ED1D8093E1010E94DE +:103B6000FA1D90E09093F3018093F20187FB882780 +:103B700080F980930E010E94F11D682F70E080E0B3 +:103B800090E00C94ED196DEE7EEF80E090E00E94E5 +:103B9000682460E082E090E00E94562460E083E0C8 +:103BA00090E00E94562460E084E090E00E94562459 +:103BB00060E085E090E00E94562460E086E090E0BE +:103BC0000C94562480E090E00E94502421E08D3E29 +:103BD0009E4F09F020E0822F089582E090E00C943F +:103BE000482483E090E00C944824682F83E090E020 +:103BF0000C94562484E090E00C944824682F84E0D0 +:103C000090E00C94562486E090E00C944824682FB1 +:103C100086E090E00C9456248091E90180FF0BC06F +:103C20006091140185E0689FB00111247595679536 +:103C3000759567952BC081FF09C06091140185E0DF +:103C4000689FB00111247595679520C082FF07C059 +:103C50006091140185E0689FB001112417C0909114 +:103C6000EA019923D1F060911301961788F720910A +:103C7000140185E0289F90011124929FA001939F39 +:103C8000500D112470E0CA010E941A246038710599 +:103C900040F46115710539F002C065E070E0862FCF +:103CA00008958FE7089581E008958091E90180FFEC +:103CB00008C06091120170E07595679575956795DC +:103CC00021C081FF06C06091120170E07595679573 +:103CD00019C082FF04C06091120170E010C0909181 +:103CE000EA019923C1F0609111019617A0F7809124 +:103CF0001201899FC001112470E00E941A246038CB +:103D0000710528F46115710521F0862F08958FE75C +:103D1000089581E0089561E070E0F4CF803F21F4E0 +:103D20000E940C1E819504C0813F29F40E940C1E44 +:103D30008093ED010895823F21F40E940C1E81952D +:103D400004C0833F29F40E940C1E8093EC01089567 +:103D5000893F19F40E94551E05C08A3F31F40E9424 +:103D6000551E81958093EE0108958B3F21F40E94AA +:103D7000551E819504C08C3F29F40E94551E8093E6 +:103D8000EF010895843F21F48091EB01816017C019 +:103D9000853F21F48091EB01826011C0863F21F4C0 +:103DA0008091EB0184600BC0873F21F48091EB018F +:103DB000886005C0883F31F48091EB018061809379 +:103DC000EB0108958D3F21F48091E90181600BC0E2 +:103DD0008E3F21F48091E901826005C08F3F29F474 +:103DE0008091E90184608093E9010895803F39F46E +:103DF0008091ED0187FF6CC01092ED0169C0813F99 +:103E000029F48091ED011816BCF362C09091EC0189 +:103E1000823F29F497FF5CC01092EC0159C0833FA8 +:103E200019F41916CCF354C0893F41F48091EE0186 +:103E300018160CF04DC01092EE014AC08A3F29F4CA +:103E40008091EE0187FF44C0F6CF8B3F39F480911B +:103E5000EF0187FF3DC01092EF013AC08C3F29F47B +:103E60008091EF011816BCF333C0843F21F4809198 +:103E7000EB018E7F17C0853F21F48091EB018D7F90 +:103E800011C0863F21F48091EB018B7F0BC0873FEF +:103E900021F48091EB01877F05C0883F31F4809148 +:103EA000EB018F7E8093EB0113C08D3F21F4809155 +:103EB000E9018E7F0BC08E3F21F48091E9018D7F57 +:103EC00005C08F3F29F48091E9018B7F8093E90140 +:103ED0008091EC0181110EC08091ED0181110AC029 +:103EE0008091EE01811106C08091EF01811102C025 +:103EF0001092EA0108958BEE91E00E9462110E94F7 +:103F0000281D9093E8018093E70108951F93CF93B4 +:103F1000DF938091E7019091E8010E94341DAC018C +:103F20009091EA01992321F02091150130E006C01B +:103F3000209116018AE0289F90011124421753070F +:103F400008F486C08091EC01C091ED01D091EE01A2 +:103F50001091EF01811107C0C11176C0D11174C059 +:103F6000111172C075C09F3F19F09F5F9093EA01D5 +:103F7000181624F40E940C1E8093EC018091EC0131 +:103F800087FF05C00E940C1E81958093EC011C16D2 +:103F900024F40E940C1E8093ED018091ED0187FFB7 +:103FA00005C00E940C1E81958093ED016091EC018B +:103FB000662339F1C091ED01CC2319F1772767FD14 +:103FC0007095872F972F0E942B2323E333E343E33E +:103FD0005FE30E948F230E94F8226093EC016C2F14 +:103FE000772767FD7095872F972F0E942B2323E358 +:103FF00033E343E35FE30E948F230E94F822609340 +:10400000ED011D1624F40E94551E8093EE0180914F +:10401000EE0187FF05C00E94551E81958093EE0139 +:10402000111624F40E94551E8093EF018091EF0138 +:1040300087FF05C00E94551E81958093EF01DF9197 +:10404000CF911F910C947B1F9F3F09F08ECF96CF8D +:10405000DF91CF911F910895EBEEF1E085E0DF0154 +:104060001D928A95E9F71092EA011092E9010895EC +:10407000833081F128F4813059F08230D1F00895F5 +:10408000853009F449C0B8F1863009F456C0089566 +:1040900080911601262F30E0280F311D2F3F31056A +:1040A00024F4680F6093160108958FEF8093160132 +:1040B000089580911501262F30E0280F311D2F3FE4 +:1040C000310524F4680F6093150108958FEF8093F4 +:1040D0001501089580911401262F30E0280F311D1D +:1040E0002F3F310524F4680F6093140108958FEF7A +:1040F00080931401089580911301262F30E0280F3A +:10410000311D2F3F310524F4680F6093130108958A +:104110008FEF80931301089580911201262F30E0D4 +:10412000280F311D2F3F310524F4680F60931201D1 +:1041300008958FEF80931201089580911101262F29 +:1041400030E0280F311D2F3F310524F4680F6093B4 +:10415000110108958FEF809311010895833011F1BB +:1041600028F4813049F0823091F00895853081F152 +:1041700020F18630C1F1089580911601681720F46E +:10418000861B809316010895109216010895809160 +:104190001501681720F4861B80931501089510926D +:1041A0001501089580911401681720F4861B8093EF +:1041B0001401089510921401089580911301681755 +:1041C00020F4861B80931301089510921301089523 +:1041D00080911201681720F4861B809312010895C4 +:1041E00010921201089580911101681720F4861B26 +:1041F0008093110108951092110108950F931F9358 +:10420000873208F048C08E3108F092C0803109F43E +:104210007CC008F5873009F466C068F4863009F080 +:10422000A2C08091E101817F8E7F8093E10181E0D6 +:104230008093F10199C08B3009F48EC08E3009F063 +:1042400092C08091E10182FB222720F991E0922720 +:1042500090FB82F963C0863109F47EC060F481313D +:1042600009F081C00E942D1690910E0181E08927EE +:1042700080930E0171C0893109F46EC08B3109F051 +:1042800072C08091E10181FB222720F991E0922701 +:1042900090FB81F943C0883309F45EC050F4893241 +:1042A00009F45CC0853309F459C0873209F456C05B +:1042B0005AC0833409F452C028F48A3308F453C036 +:1042C000895337C0883409F04EC00E942D160FEF75 +:1042D00013ED20E3015010402040E1F700C0000042 +:1042E0000E94831D39C09091E101892F80958170D2 +:1042F00080FB90F929F0966098609093E10134C0BA +:10430000997F977F9093E10127C08091E10183FB22 +:10431000222720F991E0922790FB83F98093E10115 +:104320009923D1F08091E10181608093E10114C073 +:104330008D5141E050E060E070E08A019B0104C0D3 +:10434000000F111F221F331F8A95D2F7C901B80130 +:104350000E94ED190E942D1681E006C061E070E018 +:1043600080E090E0F5CF80E01F910F91089580E00C +:10437000089580E008958E518A3030F4E82FF0E0FF +:10438000E55CFE4F8081089580E00895CF93C82FAB +:104390008091F101813069F018F08230C9F183C059 +:1043A000E0910F01F09110018081823209F07DC00F +:1043B00007C0E0910F01F09110018081823261F419 +:1043C0008C2F0E94B721811104C08C2F0E94FE20E7 +:1043D0001DC081E090E01AC08C2F0E94B92181118C +:1043E00014C0C43179F048F4CB3079F0C03109F011 +:1043F00060C082E08093F10108C0C93219F0C8336F +:1044000021F057C01092F10154C081E0817053C077 +:10441000C93289F118F5C43171F1B0F4C73009F02F +:1044200046C08EE18093160182E3809315018AE0F5 +:104430008093140184E18093130188E0809312013A +:1044400088E28093110133C082EE8C0F863078F5BC +:104450008C2F0E94BB218093F00129C0CE34E9F05B +:1044600020F4CB3421F56AE013C0C13579F0C235B0 +:10447000F1F461E00DC08091F001882319F01092F1 +:10448000F00115C081E08093F10115C061E006C024 +:104490008091F0010E9438200AC06AE08091F0010A +:1044A0000E94AE2004C01092F10180E004C081E0BF +:1044B00002C080E0ABCFCF9108950E94E21D811130 +:1044C00002C00E94C31D0E94031E8093010280FF50 +:1044D00002C0869501C080E00C94DD03809101024A +:1044E000982F9695292F30E0233031054CF49F5FAB +:1044F000990F8170892B8160809301020E94071EB1 +:104500008091010286950C94DD0380910102982F21 +:10451000969591F09158990F8170892B80930102A3 +:104520008E7F91E009F490E08091010290FB80F988 +:10453000809301020E94071E8091010286950C94CF +:10454000DD0380910102982F909590FB80F9809374 +:1045500001020E94071E8091010280FF02C0869521 +:1045600001C080E00C94DD0390910102892F8695B3 +:104570008F5F8F779170843028F4880F892B809318 +:10458000010202C090930102809101028E7F91E0AE +:1045900009F490E08091010290FB80F98093010280 +:1045A0000E94071E8091010286950C94DD032091E4 +:1045B0000102922F96958927982F990F822F81704B +:1045C000892B809301028E7F91E009F490E0809125 +:1045D000010290FB80F9809301020E94071E8091E6 +:1045E000010286950C94DD03809101028695089561 +:1045F00004D06894B1118DC0089570D088F09F5791 +:1046000090F0B92F9927B751A0F0D1F0660F771F1E +:10461000881F991F1AF0BA95C9F712C0B13081F0FE +:1046200077D0B1E0089574C0672F782F8827B85FDE +:1046300039F0B93FCCF3869577956795B395D9F75F +:104640003EF490958095709561957F4F8F4F9F4F69 +:104650000895E89409C097FB3EF490958095709575 +:1046600061957F4F8F4F9F4F9923A9F0F92F96E9BE +:10467000BB279395F695879577956795B795F11133 +:10468000F8CFFAF4BB0F11F460FF1BC06F5F7F4FD0 +:104690008F4F9F4F16C0882311F096E911C07723E2 +:1046A00021F09EE8872F762F05C0662371F096E8EB +:1046B000862F70E060E02AF09A95660F771F881FBA +:1046C000DAF7880F9695879597F9089557FD9058D2 +:1046D000440F551F59F05F3F71F04795880F97FBC6 +:1046E000991F61F09F3F79F0879508951216130680 +:1046F0001406551FF2CF4695F1DF08C016161706AF +:104700001806991FF1CF86957105610508940895E3 +:10471000E894BB2766277727CB0197F908950BD03C +:1047200078C069D028F06ED018F0952309F05AC0EF +:104730005FC01124EECFCADFA0F3959FD1F3950F90 +:1047400050E0551F629FF001729FBB27F00DB11D15 +:10475000639FAA27F00DB11DAA1F649F6627B00DA5 +:10476000A11D661F829F2227B00DA11D621F739F8E +:10477000B00DA11D621F839FA00D611D221F749F9C +:104780003327A00D611D231F849F600D211D822FE3 +:10479000762F6A2F11249F5750408AF0E1F088232A +:1047A0004AF0EE0FFF1FBB1F661F771F881F915037 +:1047B0005040A9F79E3F510570F014C0AACF5F3F4B +:1047C000ECF3983EDCF3869577956795B795F7956A +:1047D000E7959F5FC1F7FE2B880F911D96958795F2 +:1047E00097F9089597F99F6780E870E060E0089571 +:1047F0009FEF80EC089500240A94161617061806F9 +:104800000906089500240A941216130614060506D4 +:104810000895092E0394000C11F4882352F0BB0F65 +:1048200040F4BF2B11F460FF04C06F5F7F4F8F4FC8 +:104830009F4F089597FB072E16F4009407D077FD3D +:1048400009D00E94342407FC05D03EF49095819550 +:104850009F4F0895709561957F4F0895EE0FFF1F4C +:104860000590F491E02D0994AA1BBB1B51E107C0F0 +:10487000AA1FBB1FA617B70710F0A61BB70B881FF0 +:10488000991F5A95A9F780959095BC01CD0108957F +:10489000F999FECF92BD81BDF89A992780B5089508 +:1048A000A8E1B0E042E050E00C947024262FF99982 +:1048B000FECF92BD81BDF89A019700B4021639F07F +:1048C0001FBA20BD0FB6F894FA9AF99A0FBE089550 +:1048D0000196272F0E9457240C945624DC01CB010B +:1048E000FC01F999FECF06C0F2BDE1BDF89A319600 +:1048F00000B40D9241505040B8F70895F894FFCF9E +:104900000700FF530AE10ABE0A8A0A560A0101CECD +:10491000012808140A321E1F0F03764F5F6F7F496C +:1049200069437909595363404D3639C506780642C3 +:104930000609069C05B505CE05E705010203040539 +:0649400006070809000053 :00000001FF diff --git a/keyboards/planck/keymaps/pete/keymap.c b/keyboards/planck/keymaps/pete/keymap.c index fb2d9692d..38275b403 100644 --- a/keyboards/planck/keymaps/pete/keymap.c +++ b/keyboards/planck/keymaps/pete/keymap.c @@ -21,8 +21,12 @@ extern keymap_config_t keymap_config; #define _RAISE 4 #define _FCT 5 #define _SETUP 6 -#define _MUSIC 7 +#define _MAC 7 +#define _WIN 8 +#define _LIN 9 #define _MICMUTE 16 +#define _OS 17 + // Macro name shortcuts #define QWERTY M(_QWERTY) @@ -31,12 +35,19 @@ extern keymap_config_t keymap_config; #define LOWER M(_LOWER) #define RAISE M(_RAISE) #define FCT M(_FCT) +#define OS M(_OS) +#define MAC M(_MAC) +#define WIN M(_WIN) +#define LIN M(_LIN) #define MICMUTE M(_MICMUTE) #define MACPRNT LGUI(LSFT(KC_3)) #define MACPRNT2 LGUI(LSFT(KC_4)) +#define WINPRNT KC_PSCR +#define WINPRNT2 LGUI(KC_PSCR) #define CYCLWIN LGUI(KC_GRV) -#define MAC_SLEP LSFT(LCTL(KC_POWER)) +#define MACSLEEP LSFT(LCTL(KC_POWER)) +#define WINSLEEP KC_SLEP // Fillers to make layering more clear #define _______ KC_TRNS @@ -48,57 +59,71 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {FCT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {OS, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, [_COLEMAK] = { {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {FCT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {OS, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, [_DVORAK] = { {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, - {FCT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {OS, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, [_LOWER] = { {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, {_______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, [_RAISE] = { {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, {_______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, - -[_FCT] = { /* Function */ - {BL_STEP, MAC_SLEP,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_DELT}, - {_______, MICMUTE, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, MACPRNT}, - {_______, CYCLWIN, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, KC_F9, KC_F10, KC_F11, KC_F12, MACPRNT2}, - {FCT, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDOWN,KC_PGUP,KC_END } + {_RAISE, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, [_SETUP] = { /* Setup */ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______}, + {_______, _______, _______, WIN, MAC, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, RESET, RESET, _______, _______, _______, _______, _______} +}, +[_MAC] = { /* Mac */ + {CYCLWIN,MACSLEEP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_DELT}, + {_______, MICMUTE, KC_MUTE, KC_VOLD, KC_VOLU, MACPRNT,MACPRNT2, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX}, + {_______, BL_STEP, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX}, + {_______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDOWN,KC_PGUP,KC_END } +}, +[_WIN] = { /* Windows */ + {CYCLWIN,WINSLEEP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_DELT}, + {_______, MICMUTE, KC_MUTE, KC_VOLD, KC_VOLU, WINPRNT,WINPRNT2, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX}, + {_______, BL_STEP, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX}, + {_______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDOWN,KC_PGUP,KC_END } +}, +[_LIN] = { /* Linux */ + {KC_L, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } + }; +int currentOs = _MAC; const uint16_t PROGMEM fn_actions[] = { }; #ifdef AUDIO_ENABLE + float tone_startup[][2] = { {440.0*pow(2.0,(31)/12.0), 12}, {440.0*pow(2.0,(28)/12.0), 8}, @@ -188,7 +213,23 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) unregister_code(KC_RGUI); } break; - + case _OS: + if (record->event.pressed) { + layer_on(currentOs); + } else { + layer_off(_MAC); + layer_off(_WIN); + layer_off(_LIN); + } + break; + case _MAC: + case _WIN: + case _LIN: + if (record->event.pressed) { + layer_off(currentOs); + currentOs = id; + } + break; } return MACRO_NONE; }; -- cgit v1.2.3 From 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Thu, 23 Jun 2016 22:18:20 -0400 Subject: Backlight abstraction and other changes (#439) * redoes matrix pins, abstracts backlight code for B5,6,7 * slimming down keyboard stuff, backlight breathing implemented * don't call backlight init when no pin * cleans up user/kb/quantum calls, keyboard files * fix pvc atomic * replaces CHANNEL with correct var in breathing * removes .hexs, updates readmes, updates template * cleans-up clueboards, readmes to lowercase * updates readme --- .gitignore | 8 +- Makefile | 3 +- README.md | 551 ------ doc/BUILD_GUIDE.md | 7 +- doc/HAND_WIRE.md | 2 +- doc/TMK_README.md | 2 +- doc/VAGRANT_GUIDE.md | 2 +- keyboards/alps64/alps64.c | 15 +- keyboards/alps64/keymaps/default/compiled.hex | 1373 --------------- keyboards/arrow_pad/README.md | 24 - keyboards/arrow_pad/arrow_pad.c | 115 +- keyboards/arrow_pad/arrow_pad.h | 7 +- keyboards/arrow_pad/config.h | 2 + keyboards/arrow_pad/keymaps/default/compiled.hex | 1490 ---------------- keyboards/arrow_pad/keymaps/pad_21/compiled.hex | 893 ---------- keyboards/arrow_pad/keymaps/pad_24/compiled.hex | 935 ----------- keyboards/arrow_pad/keymaps/pad_24/config.h | 2 + keyboards/arrow_pad/readme.md | 24 + keyboards/atomic/README.md | 25 - keyboards/atomic/atomic.c | 312 +--- keyboards/atomic/atomic.h | 22 - keyboards/atomic/config.h | 2 + keyboards/atomic/keymaps/default/compiled.hex | 1118 ------------ keyboards/atomic/keymaps/pvc/compiled.hex | 1700 ------------------- keyboards/atomic/keymaps/pvc/config.h | 3 + keyboards/atomic/readme.md | 25 + keyboards/atreus/README.md | 186 -- keyboards/atreus/atreus.c | 30 +- keyboards/atreus/atreus.h | 5 +- keyboards/atreus/keymaps/default/compiled.hex | 1328 --------------- keyboards/atreus/keymaps/gerb/compiled.hex | 1339 --------------- keyboards/atreus/readme.md | 186 ++ keyboards/bantam44/README.md | 24 - keyboards/bantam44/bantam44.c | 26 +- keyboards/bantam44/bantam44.h | 8 +- keyboards/bantam44/keymaps/default/compiled.hex | 1398 --------------- keyboards/bantam44/readme.md | 24 + keyboards/clueboard1/Makefile | 3 - keyboards/clueboard1/clueboard1.c | 25 +- keyboards/clueboard1/clueboard1.h | 7 +- keyboards/clueboard1/keymaps/default/compiled.hex | 1192 ------------- keyboards/clueboard1/led.c | 32 - keyboards/clueboard2/Makefile | 6 - keyboards/clueboard2/backlight.c | 41 - keyboards/clueboard2/clueboard2.c | 79 +- keyboards/clueboard2/clueboard2.h | 7 +- keyboards/clueboard2/keymaps/default/compiled.hex | 1246 -------------- keyboards/clueboard2/keymaps/default/keymap.c | 4 - keyboards/clueboard2/keymaps/max/compiled.hex | 1536 ----------------- keyboards/clueboard2/keymaps/max/keymap.c | 4 - keyboards/clueboard2/keymaps/skully/compiled.hex | 1246 -------------- keyboards/clueboard2/led.c | 36 - keyboards/cluepad/cluepad.c | 22 +- keyboards/cluepad/cluepad.h | 3 - keyboards/cluepad/keymaps/default/compiled.hex | 1123 ------------- keyboards/ergodox_ez/ergodox_ez.c | 15 - keyboards/ergodox_ez/ergodox_ez.h | 5 - keyboards/ergodox_ez/keymaps/ab/compiled.hex | 1147 ------------- .../ergodox_ez/keymaps/adnw_k_o_y/compiled.hex | 1133 ------------- keyboards/ergodox_ez/keymaps/alexjj/compiled.hex | 1172 ------------- keyboards/ergodox_ez/keymaps/algernon/.gitignore | 1 - keyboards/ergodox_ez/keymaps/algernon/keymap.c | 2 +- .../ergodox_ez/keymaps/andrew_osx/compiled.hex | 1158 ------------- keyboards/ergodox_ez/keymaps/bepo/README.md | 34 - keyboards/ergodox_ez/keymaps/bepo/compiled.hex | 1190 ------------- keyboards/ergodox_ez/keymaps/bepo/readme.md | 34 + .../ergodox_ez/keymaps/coderkun_neo2/compiled.hex | 1195 ------------- keyboards/ergodox_ez/keymaps/colemak/compiled.hex | 1158 ------------- .../keymaps/colemak_osx_pc_no/compiled.hex | 1179 ------------- .../ergodox_ez/keymaps/csharp_dev/compiled.hex | 1159 ------------- keyboards/ergodox_ez/keymaps/dave/compiled.hex | 1169 ------------- keyboards/ergodox_ez/keymaps/default/compiled.hex | 1153 ------------- .../ergodox_ez/keymaps/default_osx/compiled.hex | 1158 ------------- .../ergodox_ez/keymaps/dragon788/compiled.hex | 1169 ------------- keyboards/ergodox_ez/keymaps/dvorak/compiled.hex | 1158 ------------- .../keymaps/dvorak_intl_squisher/README.md | 29 - .../keymaps/dvorak_intl_squisher/compiled.hex | 1158 ------------- .../keymaps/dvorak_intl_squisher/readme.md | 29 + .../ergodox_ez/keymaps/dvorak_spanish/README.md | 99 -- .../ergodox_ez/keymaps/dvorak_spanish/compiled.hex | 1149 ------------- .../ergodox_ez/keymaps/dvorak_spanish/readme.md | 99 ++ .../ergodox_ez/keymaps/emacs_osx_dk/compiled.hex | 1158 ------------- .../keymaps/erez_experimental/compiled.hex | 1080 ------------ .../ergodox_ez/keymaps/german-kinergo/compiled.hex | 1158 ------------- .../ergodox_ez/keymaps/german-manuneo/compiled.hex | 1274 -------------- keyboards/ergodox_ez/keymaps/german/compiled.hex | 1158 ------------- keyboards/ergodox_ez/keymaps/j3rn/compiled.hex | 1158 ------------- keyboards/ergodox_ez/keymaps/jack/compiled.hex | 1158 ------------- keyboards/ergodox_ez/keymaps/jacobono/README.md | 34 - keyboards/ergodox_ez/keymaps/jacobono/compiled.hex | 1179 ------------- keyboards/ergodox_ez/keymaps/jacobono/readme.md | 34 + keyboards/ergodox_ez/keymaps/jgarr/compiled.hex | 1158 ------------- keyboards/ergodox_ez/keymaps/kastyle/compiled.hex | 1158 ------------- .../ergodox_ez/keymaps/kines-ish/compiled.hex | 1158 ------------- .../ergodox_ez/keymaps/mpiechotka/compiled.hex | 1181 ------------- keyboards/ergodox_ez/keymaps/msc/compiled.hex | 1158 ------------- keyboards/ergodox_ez/keymaps/naps62/README.md | 29 - keyboards/ergodox_ez/keymaps/naps62/compiled.hex | 1158 ------------- keyboards/ergodox_ez/keymaps/naps62/readme.md | 29 + keyboards/ergodox_ez/keymaps/ordinary/compiled.hex | 1182 ------------- keyboards/ergodox_ez/keymaps/osx_de/compiled.hex | 1216 -------------- .../keymaps/osx_de_adnw_koy/compiled.hex | 1152 ------------- .../keymaps/osx_de_experimental/compiled.hex | 1228 -------------- keyboards/ergodox_ez/keymaps/osx_fr/compiled.hex | 1158 ------------- .../keymaps/osx_kinesis_pnut/compiled.hex | 1158 ------------- keyboards/ergodox_ez/keymaps/plover/compiled.hex | 1169 ------------- keyboards/ergodox_ez/keymaps/plums/compiled.hex | 1165 ------------- .../keymaps/romanzolotarev-norman-osx/compiled.hex | 1098 ------------ .../compiled.hex | 1169 ------------- .../romanzolotarev-norman-plover-osx/compiled.hex | 1169 ------------- .../romanzolotarev-norman-qwerty-osx/compiled.hex | 1120 ------------- keyboards/ergodox_ez/keymaps/sneako/README.md | 6 - keyboards/ergodox_ez/keymaps/sneako/compiled.hex | 1158 ------------- keyboards/ergodox_ez/keymaps/sneako/readme.md | 6 + .../ergodox_ez/keymaps/software_neo2/compiled.hex | 1147 ------------- keyboards/ergodox_ez/keymaps/supercoder/README.md | 29 - .../ergodox_ez/keymaps/supercoder/compiled.hex | 1122 ------------- keyboards/ergodox_ez/keymaps/supercoder/readme.md | 29 + .../ergodox_ez/keymaps/techtomas/compiled.hex | 1169 ------------- keyboards/ergodox_ez/keymaps/tm2030/README.md | 136 -- keyboards/ergodox_ez/keymaps/tm2030/compiled.hex | 1224 -------------- keyboards/ergodox_ez/keymaps/tm2030/readme.md | 136 ++ .../ergodox_ez/keymaps/tonyabra_osx/compiled.hex | 1158 ------------- .../ergodox_ez/keymaps/townk_osx/compiled.hex | 1171 ------------- keyboards/ergodox_ez/keymaps/twey/compiled.hex | 1178 ------------- .../keymaps/workman_osx_mdw/compiled.hex | 1213 ------------- .../ergodox_ez/keymaps/workman_osx_mdw/keymap.c | 2 +- .../ergodox_ez/keymaps/zweihander-osx/compiled.hex | 1173 ------------- keyboards/ergodox_ez/readme.md | 7 +- keyboards/gh60/README.md | 60 - keyboards/gh60/gh60.c | 43 - keyboards/gh60/gh60.h | 11 +- keyboards/gh60/keymaps/default/compiled.hex | 1019 ----------- keyboards/gh60/readme.md | 60 + keyboards/hhkb/README.md | 180 -- keyboards/hhkb/hhkb.c | 30 +- keyboards/hhkb/hhkb.h | 8 +- keyboards/hhkb/keymaps/default/compiled.hex | 1381 --------------- keyboards/hhkb/keymaps/lxol/compiled.hex | 1421 ---------------- keyboards/hhkb/readme.md | 180 ++ keyboards/jd45/config.h | 2 + keyboards/jd45/jd45.c | 82 +- keyboards/jd45/jd45.h | 21 +- keyboards/jd45/keymaps/default/compiled.hex | 1113 ------------ keyboards/jd45/keymaps/default/keymap.c | 14 - keyboards/jd45/keymaps/justin/compiled.hex | 1153 ------------- keyboards/jd45/keymaps/justin/keymap.c | 15 - keyboards/kc60/README.md | 27 - keyboards/kc60/config.h | 2 + keyboards/kc60/kc60.c | 110 -- keyboards/kc60/kc60.h | 15 +- keyboards/kc60/keymaps/default/compiled.hex | 1451 ---------------- keyboards/kc60/keymaps/sgoodwin/compiled.hex | 1469 ---------------- keyboards/kc60/keymaps/stanleylai/README.md | 26 - keyboards/kc60/keymaps/stanleylai/compiled.hex | 1773 -------------------- keyboards/kc60/keymaps/stanleylai/readme.md | 26 + keyboards/kc60/keymaps/ws2812/README.md | 21 - keyboards/kc60/keymaps/ws2812/compiled.hex | 1764 ------------------- keyboards/kc60/keymaps/ws2812/readme.md | 21 + keyboards/kc60/readme.md | 27 + keyboards/phantom/keymaps/default/compiled.hex | 1496 ----------------- keyboards/phantom/phantom.c | 16 - keyboards/phantom/phantom.h | 8 +- keyboards/planck/.gitignore | 1 - keyboards/planck/README.md | 31 - keyboards/planck/config.h | 11 +- keyboards/planck/keymaps/.gitignore | 1 - keyboards/planck/keymaps/README.md | 23 - keyboards/planck/keymaps/ab/README.md | 18 - keyboards/planck/keymaps/ab/compiled.hex | 1139 ------------- keyboards/planck/keymaps/ab/readme.md | 18 + keyboards/planck/keymaps/alexey/compiled.hex | 1444 ---------------- .../planck/keymaps/angerthosenear/compiled.hex | 1449 ---------------- keyboards/planck/keymaps/austin/compiled.hex | 1449 ---------------- keyboards/planck/keymaps/basic/README.md | 2 - keyboards/planck/keymaps/basic/compiled.hex | 970 ----------- keyboards/planck/keymaps/basic/readme.md | 2 + keyboards/planck/keymaps/bone2planck/compiled.hex | 1450 ---------------- keyboards/planck/keymaps/brandon/compiled.hex | 1456 ---------------- keyboards/planck/keymaps/cbbrowne/.gitignore | 1 - keyboards/planck/keymaps/charlie/compiled.hex | 1445 ---------------- keyboards/planck/keymaps/daniel/compiled.hex | 1448 ---------------- keyboards/planck/keymaps/david/compiled.hex | 1449 ---------------- keyboards/planck/keymaps/default/README.md | 2 - keyboards/planck/keymaps/default/compiled.hex | 1621 ------------------ keyboards/planck/keymaps/default/keymap.c | 172 +- keyboards/planck/keymaps/default/readme.md | 2 + keyboards/planck/keymaps/dzobert/compiled.hex | 1449 ---------------- keyboards/planck/keymaps/experimental/README.md | 2 - keyboards/planck/keymaps/experimental/compiled.hex | 1669 ------------------ keyboards/planck/keymaps/experimental/readme.md | 2 + keyboards/planck/keymaps/gabriel/compiled.hex | 1450 ---------------- keyboards/planck/keymaps/jacob/compiled.hex | 1444 ---------------- keyboards/planck/keymaps/joe/compiled.hex | 1479 ---------------- keyboards/planck/keymaps/kyle/compiled.hex | 1449 ---------------- keyboards/planck/keymaps/leo/compiled.hex | 1454 ---------------- keyboards/planck/keymaps/lucas/compiled.hex | 1480 ---------------- keyboards/planck/keymaps/lukas/compiled.hex | 1446 ---------------- keyboards/planck/keymaps/max/compiled.hex | 1449 ---------------- keyboards/planck/keymaps/mollat/compiled.hex | 1495 ----------------- keyboards/planck/keymaps/nico/compiled.hex | 1456 ---------------- keyboards/planck/keymaps/pete/README.md | 14 - keyboards/planck/keymaps/pete/compiled.hex | 1174 ------------- keyboards/planck/keymaps/pete/readme.md | 14 + keyboards/planck/keymaps/pvc/compiled.hex | 1635 ------------------ keyboards/planck/keymaps/readme.md | 23 + keyboards/planck/keymaps/tak3over/compiled.hex | 1456 ---------------- keyboards/planck/keymaps/unicode/compiled.hex | 1206 ------------- keyboards/planck/keymaps/yang/compiled.hex | 1318 --------------- keyboards/planck/keymaps/yang/config.h | 15 + keyboards/planck/planck.c | 295 +--- keyboards/planck/planck.h | 23 - keyboards/planck/readme.md | 31 + keyboards/preonic/README.md | 25 - keyboards/preonic/config.h | 2 + keyboards/preonic/keymaps/default/README.md | 1 - keyboards/preonic/keymaps/default/compiled.hex | 1609 ------------------ keyboards/preonic/keymaps/default/readme.md | 1 + keyboards/preonic/preonic.c | 89 +- keyboards/preonic/preonic.h | 5 - keyboards/preonic/readme.md | 25 + keyboards/readme.md | 24 +- keyboards/retro_refit/README.md | 24 - keyboards/retro_refit/keymaps/default/compiled.hex | 1423 ---------------- keyboards/retro_refit/readme.md | 24 + keyboards/retro_refit/retro_refit.c | 23 +- keyboards/retro_refit/retro_refit.h | 9 +- keyboards/satan/Makefile | 3 - keyboards/satan/backlight.c | 24 - keyboards/satan/config.h | 2 + keyboards/satan/keymaps/default/compiled.hex | 1543 ----------------- keyboards/satan/led.c | 36 - keyboards/satan/satan.c | 102 +- keyboards/satan/satan.h | 5 +- keyboards/sixkeyboard/README.md | 18 - keyboards/sixkeyboard/keymaps/default/compiled.hex | 760 --------- keyboards/sixkeyboard/matrix.c | 10 + keyboards/sixkeyboard/readme.md | 18 + keyboards/sixkeyboard/sixkeyboard.c | 22 - keyboards/sixkeyboard/sixkeyboard.h | 4 - quantum/config_common.h | 80 +- quantum/keymap.h | 12 +- quantum/led.c | 54 - quantum/matrix.c | 48 +- quantum/quantum.c | 346 ++++ quantum/quantum.h | 30 + quantum/template/Makefile | 24 +- quantum/template/README.md | 24 - quantum/template/config.h | 6 +- quantum/template/keymaps/default/Makefile | 21 + quantum/template/keymaps/default/config.h | 8 + quantum/template/keymaps/default/keymap.c | 20 +- quantum/template/keymaps/default/readme.md | 1 + quantum/template/readme.md | 28 + quantum/template/template.c | 84 +- quantum/template/template.h | 13 +- quantum/tools/README.md | 6 - quantum/tools/readme.md | 6 + readme.md | 810 +++++++++ tmk_core/README.md | 146 -- tmk_core/common/led.h | 4 - tmk_core/common/matrix.h | 7 + .../lufa/LUFA-git/LUFA/StudioIntegration/makefile | 2 +- .../protocol/usb_hid/USB_Host_Shield_2.0/README.md | 351 ---- .../examples/testusbhostFAT/README.md | 29 - .../examples/testusbhostFAT/readme.md | 29 + .../protocol/usb_hid/USB_Host_Shield_2.0/readme.md | 351 ++++ tmk_core/protocol/vusb/usbdrv/Changelog.txt | 2 +- tmk_core/protocol/vusb/usbdrv/License.txt | 2 +- tmk_core/protocol/vusb/usbdrv/Readme.txt | 6 +- tmk_core/readme.md | 146 ++ tmk_core/rules.mk | 18 +- util/new_project.sh | 12 +- 273 files changed, 3320 insertions(+), 142062 deletions(-) delete mode 100644 README.md delete mode 100644 keyboards/alps64/keymaps/default/compiled.hex delete mode 100644 keyboards/arrow_pad/README.md delete mode 100644 keyboards/arrow_pad/keymaps/default/compiled.hex delete mode 100644 keyboards/arrow_pad/keymaps/pad_21/compiled.hex delete mode 100644 keyboards/arrow_pad/keymaps/pad_24/compiled.hex create mode 100644 keyboards/arrow_pad/readme.md delete mode 100644 keyboards/atomic/README.md delete mode 100644 keyboards/atomic/keymaps/default/compiled.hex delete mode 100644 keyboards/atomic/keymaps/pvc/compiled.hex create mode 100644 keyboards/atomic/readme.md delete mode 100644 keyboards/atreus/README.md delete mode 100644 keyboards/atreus/keymaps/default/compiled.hex delete mode 100644 keyboards/atreus/keymaps/gerb/compiled.hex create mode 100644 keyboards/atreus/readme.md delete mode 100644 keyboards/bantam44/README.md delete mode 100644 keyboards/bantam44/keymaps/default/compiled.hex create mode 100644 keyboards/bantam44/readme.md delete mode 100644 keyboards/clueboard1/keymaps/default/compiled.hex delete mode 100644 keyboards/clueboard1/led.c delete mode 100644 keyboards/clueboard2/backlight.c delete mode 100644 keyboards/clueboard2/keymaps/default/compiled.hex delete mode 100644 keyboards/clueboard2/keymaps/max/compiled.hex delete mode 100644 keyboards/clueboard2/keymaps/skully/compiled.hex delete mode 100644 keyboards/clueboard2/led.c delete mode 100644 keyboards/cluepad/keymaps/default/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/ab/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/adnw_k_o_y/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/alexjj/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/algernon/.gitignore delete mode 100644 keyboards/ergodox_ez/keymaps/andrew_osx/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/bepo/README.md delete mode 100644 keyboards/ergodox_ez/keymaps/bepo/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/bepo/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/coderkun_neo2/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/colemak/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/csharp_dev/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/dave/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/default/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/default_osx/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/dragon788/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/dvorak/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/README.md delete mode 100644 keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/dvorak_spanish/README.md delete mode 100644 keyboards/ergodox_ez/keymaps/dvorak_spanish/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/dvorak_spanish/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/emacs_osx_dk/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/erez_experimental/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/german-kinergo/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/german-manuneo/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/german/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/j3rn/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/jack/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/jacobono/README.md delete mode 100644 keyboards/ergodox_ez/keymaps/jacobono/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/jacobono/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/jgarr/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/kastyle/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/kines-ish/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/mpiechotka/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/msc/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/naps62/README.md delete mode 100644 keyboards/ergodox_ez/keymaps/naps62/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/naps62/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/ordinary/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/osx_de/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/osx_de_experimental/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/osx_fr/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/osx_kinesis_pnut/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/plover/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/plums/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/sneako/README.md delete mode 100644 keyboards/ergodox_ez/keymaps/sneako/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/sneako/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/software_neo2/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/supercoder/README.md delete mode 100644 keyboards/ergodox_ez/keymaps/supercoder/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/supercoder/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/techtomas/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/tm2030/README.md delete mode 100644 keyboards/ergodox_ez/keymaps/tm2030/compiled.hex create mode 100644 keyboards/ergodox_ez/keymaps/tm2030/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/tonyabra_osx/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/townk_osx/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/twey/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/workman_osx_mdw/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/zweihander-osx/compiled.hex delete mode 100644 keyboards/gh60/README.md delete mode 100644 keyboards/gh60/keymaps/default/compiled.hex create mode 100644 keyboards/gh60/readme.md delete mode 100644 keyboards/hhkb/README.md delete mode 100644 keyboards/hhkb/keymaps/default/compiled.hex delete mode 100644 keyboards/hhkb/keymaps/lxol/compiled.hex create mode 100644 keyboards/hhkb/readme.md delete mode 100644 keyboards/jd45/keymaps/default/compiled.hex delete mode 100644 keyboards/jd45/keymaps/justin/compiled.hex delete mode 100644 keyboards/kc60/README.md delete mode 100644 keyboards/kc60/keymaps/default/compiled.hex delete mode 100644 keyboards/kc60/keymaps/sgoodwin/compiled.hex delete mode 100644 keyboards/kc60/keymaps/stanleylai/README.md delete mode 100644 keyboards/kc60/keymaps/stanleylai/compiled.hex create mode 100644 keyboards/kc60/keymaps/stanleylai/readme.md delete mode 100644 keyboards/kc60/keymaps/ws2812/README.md delete mode 100644 keyboards/kc60/keymaps/ws2812/compiled.hex create mode 100644 keyboards/kc60/keymaps/ws2812/readme.md create mode 100644 keyboards/kc60/readme.md delete mode 100644 keyboards/phantom/keymaps/default/compiled.hex delete mode 100644 keyboards/planck/.gitignore delete mode 100644 keyboards/planck/README.md delete mode 100644 keyboards/planck/keymaps/.gitignore delete mode 100644 keyboards/planck/keymaps/README.md delete mode 100644 keyboards/planck/keymaps/ab/README.md delete mode 100644 keyboards/planck/keymaps/ab/compiled.hex create mode 100644 keyboards/planck/keymaps/ab/readme.md delete mode 100644 keyboards/planck/keymaps/alexey/compiled.hex delete mode 100644 keyboards/planck/keymaps/angerthosenear/compiled.hex delete mode 100644 keyboards/planck/keymaps/austin/compiled.hex delete mode 100644 keyboards/planck/keymaps/basic/README.md delete mode 100644 keyboards/planck/keymaps/basic/compiled.hex create mode 100644 keyboards/planck/keymaps/basic/readme.md delete mode 100644 keyboards/planck/keymaps/bone2planck/compiled.hex delete mode 100644 keyboards/planck/keymaps/brandon/compiled.hex delete mode 100644 keyboards/planck/keymaps/cbbrowne/.gitignore delete mode 100644 keyboards/planck/keymaps/charlie/compiled.hex delete mode 100644 keyboards/planck/keymaps/daniel/compiled.hex delete mode 100644 keyboards/planck/keymaps/david/compiled.hex delete mode 100644 keyboards/planck/keymaps/default/README.md delete mode 100644 keyboards/planck/keymaps/default/compiled.hex create mode 100644 keyboards/planck/keymaps/default/readme.md delete mode 100644 keyboards/planck/keymaps/dzobert/compiled.hex delete mode 100644 keyboards/planck/keymaps/experimental/README.md delete mode 100644 keyboards/planck/keymaps/experimental/compiled.hex create mode 100644 keyboards/planck/keymaps/experimental/readme.md delete mode 100644 keyboards/planck/keymaps/gabriel/compiled.hex delete mode 100644 keyboards/planck/keymaps/jacob/compiled.hex delete mode 100644 keyboards/planck/keymaps/joe/compiled.hex delete mode 100644 keyboards/planck/keymaps/kyle/compiled.hex delete mode 100644 keyboards/planck/keymaps/leo/compiled.hex delete mode 100644 keyboards/planck/keymaps/lucas/compiled.hex delete mode 100644 keyboards/planck/keymaps/lukas/compiled.hex delete mode 100644 keyboards/planck/keymaps/max/compiled.hex delete mode 100644 keyboards/planck/keymaps/mollat/compiled.hex delete mode 100644 keyboards/planck/keymaps/nico/compiled.hex delete mode 100644 keyboards/planck/keymaps/pete/README.md delete mode 100644 keyboards/planck/keymaps/pete/compiled.hex create mode 100644 keyboards/planck/keymaps/pete/readme.md delete mode 100644 keyboards/planck/keymaps/pvc/compiled.hex create mode 100644 keyboards/planck/keymaps/readme.md delete mode 100644 keyboards/planck/keymaps/tak3over/compiled.hex delete mode 100644 keyboards/planck/keymaps/unicode/compiled.hex delete mode 100644 keyboards/planck/keymaps/yang/compiled.hex create mode 100644 keyboards/planck/keymaps/yang/config.h create mode 100644 keyboards/planck/readme.md delete mode 100644 keyboards/preonic/README.md delete mode 100644 keyboards/preonic/keymaps/default/README.md delete mode 100644 keyboards/preonic/keymaps/default/compiled.hex create mode 100644 keyboards/preonic/keymaps/default/readme.md create mode 100644 keyboards/preonic/readme.md delete mode 100644 keyboards/retro_refit/README.md delete mode 100644 keyboards/retro_refit/keymaps/default/compiled.hex create mode 100644 keyboards/retro_refit/readme.md delete mode 100644 keyboards/satan/backlight.c delete mode 100644 keyboards/satan/keymaps/default/compiled.hex delete mode 100644 keyboards/satan/led.c delete mode 100644 keyboards/sixkeyboard/README.md delete mode 100644 keyboards/sixkeyboard/keymaps/default/compiled.hex create mode 100644 keyboards/sixkeyboard/readme.md delete mode 100644 quantum/led.c delete mode 100644 quantum/template/README.md create mode 100644 quantum/template/keymaps/default/Makefile create mode 100644 quantum/template/keymaps/default/config.h create mode 100644 quantum/template/keymaps/default/readme.md create mode 100644 quantum/template/readme.md delete mode 100644 quantum/tools/README.md create mode 100644 quantum/tools/readme.md create mode 100644 readme.md delete mode 100644 tmk_core/README.md delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/README.md delete mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/testusbhostFAT/README.md create mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/testusbhostFAT/readme.md create mode 100644 tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/readme.md create mode 100644 tmk_core/readme.md (limited to 'keyboards') diff --git a/.gitignore b/.gitignore index 1ff0f2fa9..7c1e434e3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,10 @@ -keyboards/planck/dfu-programmer.exe .dep *.o *.eep *.elf -/*.hex -/keyboards/**/*.hex -/keyboards/**/keymaps/**/*.hex -!/keyboards/**/keymaps/**/compiled.hex +*.hex +!util/bootloader.hex +!quantum/tools/eeprom_reset.hex *.log *.lss *.lst diff --git a/Makefile b/Makefile index 93e8fc404..ffbdf742c 100644 --- a/Makefile +++ b/Makefile @@ -81,8 +81,7 @@ SRC += $(KEYBOARD_FILE) \ $(KEYMAP_FILE) \ $(QUANTUM_DIR)/quantum.c \ $(QUANTUM_DIR)/keymap.c \ - $(QUANTUM_DIR)/keycode_config.c \ - $(QUANTUM_DIR)/led.c + $(QUANTUM_DIR)/keycode_config.c ifndef CUSTOM_MATRIX SRC += $(QUANTUM_DIR)/matrix.c diff --git a/README.md b/README.md deleted file mode 100644 index 8ecae68d3..000000000 --- a/README.md +++ /dev/null @@ -1,551 +0,0 @@ -# Quantum Mechanical Keyboard Firmware - -[![Build Status](https://travis-ci.org/jackhumbert/qmk_firmware.svg?branch=master)](https://travis-ci.org/jackhumbert/qmk_firmware) - -This is a keyboard firmware based on the [tmk_keyboard firmware](http://github.com/tmk/tmk_keyboard) with some useful features for Atmel AVR controllers, and more specifically, the [OLKB product line](http://olkb.co), the [ErgoDox EZ](http://www.ergodox-ez.com) keyboard, and the [Clueboard product line](http://clueboard.co/). - -## Official website - -For an easy-to-read version of this document and the repository, check out [http://qmk.fm](http://qmk.fm). - -## Included Keyboards - -* [Planck](/keyboards/planck/) -* [Preonic](/keyboards/preonic/) -* [Atomic](/keyboards/atomic/) -* [ErgoDox EZ](/keyboards/ergodox_ez/) -* [Clueboard rev.1](/keyboards/clueboard1/) -* [Clueboard rev.2](/keyboards/clueboard2/) -* [Cluepad](/keyboards/cluepad/) - -The project also includes community support for [lots of other keyboards](/keyboards/). - -## Maintainers - -QMK is developed and maintained by Jack Humbert of OLKB with contributions from the community, and of course, TMK. In fact, this repo used to be a fork of TMK, and we are incredibly grateful for his founding contributions to the firmware. We've had to break the fork due to purely technical reasons -- it simply became too different over time, and we've had to start refactoring some of the basic bits and pieces. We are huge fans of TMK, both the firmware and the person. :) - -This documentation is edited and maintained by Erez Zukerman of ErgoDox EZ. If you spot any typos or inaccuracies, please [open an issue](https://github.com/jackhumbert/qmk_firmware/issues/new). - -The OLKB product firmwares are maintained by Jack, the Ergodox EZ by Erez, and the Clueboard by [Zach White](https://github.com/skullydazed). - -## Documentation roadmap - -This is not a tiny project. While this is the main Readme, there are many other files you might want to consult. Here are some points of interest: - -* The Readme for your own keyboard: This is found under `keyboards//`. So for the ErgoDox EZ, it's [here](keyboards/ergodox_ez/); for the Atomic, it's [here](keyboards/atomic/) and so on. -* The [build guide](doc/BUILD_GUIDE.md), also mentioned in the next section. This is how you put your development environment together so you can compile the firmware. -* The list of possible keycodes you can use in your keymap is actually spread out in a few different places: - * [tmk_core/common/keycode.h](tmk_core/common/keycode.h) - the base TMK keycodes. This is the actual source file. - * [doc/keycode.txt](doc/keycode.txt) - an explanation of those same keycodes. - * [quantum/keymap_common.h](quantum/keymap_common.h) - this is where the QMK-specific aliases are all set up. Things like the Hyper and Meh key, the Leader key, and all of the other QMK innovations. These are also explained and documented below, but `keymap_common.h` is where they're actually defined. -* The [TMK documentation](doc/TMK_README.md). QMK is based on TMK, and this explains how it works internally. - -## Getting started - -* [BUILD_GUIDE.md](doc/BUILD_GUIDE.md) contains instructions to set up a build environment, build the firmware, and deploy it to a keyboard. Once your build environment has been set up, all `make` commands to actually build the firmware must be run from a folder in `keyboards/`. -* If you're looking to customize a keyboard that currently runs QMK or TMK, find your keyboard's directory under `keyboards/` and run the make commands from there. -* If you're looking to apply this firmware to an entirely new hardware project (a new kind of keyboard), you can create your own Quantum-based project by using `util/new_project.sh `, which will create `/keyboards/` with all the necessary components for a Quantum project. - -### Makefile Options - -You have access to a bunch of goodies! Check out the Makefile to enable/disable some of the features. Uncomment the `#` to enable them. Setting them to `no` does nothing and will only confuse future you. - - BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality - MIDI_ENABLE = yes # MIDI controls - UNICODE_ENABLE = no # <-- This is how you disable an option, just set it to "no" - BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID - -### Customizing Makefile options on a per-keymap basis - -If your keymap directory has a file called `Makefile` (note the filename), any Makefile options you set in that file will take precedence over other Makefile options (those set for Quantum as a whole or for your particular keyboard). - -So let's say your keyboard's makefile has `CONSOLE_ENABLE = yes` (or maybe doesn't even list the `CONSOLE_ENABLE` option, which would cause it to revert to the global Quantum default). You want your particular keymap to not have the debug console, so you make a file called `Makefile` and specify `CONSOLE_ENABLE = no`. - -### Customizing config.h on a per-keymap basis - -You can also make a `config.h` file in your keymap directory and use it to override any `config.h` settings you don't like. Anything you set there will take precedence over the global `config.h` for the ErgoDox EZ. To see an example of this, check out `keymaps/erez_experimental`. - -## Quick aliases to common actions - -Your keymap can include shortcuts to common operations (called "function actions" in tmk). - -### Switching and toggling layers - -`MO(layer)` - momentary switch to *layer*. As soon as you let go of the key, the layer is deactivated and you pop back out to the previous layer. When you apply this to a key, that same key must be set as `KC_TRNS` on the destination layer. Otherwise, you won't make it back to the original layer when you release the key (and you'll get a keycode sent). You can only switch to layers *above* your current layer. If you're on layer 0 and you use `MO(1)`, that will switch to layer 1 just fine. But if you include `MO(3)` on layer 5, that won't do anything for you -- because layer 3 is lower than layer 5 on the stack. - -`OSL(layer)` - momentary switch to *layer*, as a one-shot operation. So if you have a key that's defined as `OSL(1)`, and you tap that key, then only the very next keystroke would come from layer 1. You would drop back to layer zero immediately after that one keystroke. That's handy if you have a layer full of custom shortcuts -- for example, a dedicated key for closing a window. So you tap your one-shot layer mod, then tap that magic 'close window' key, and keep typing like a boss. Layer 1 would remain active as long as you hold that key down, too (so you can use it like a momentary toggle-layer key with extra powers). - -`LT(layer, kc)` - momentary switch to *layer* when held, and *kc* when tapped. Like `MO()`, this only works upwards in the layer stack (`layer` must be higher than the current layer). - -`TG(layer)` - toggles a layer on or off. As with `MO()`, you should set this key as `KC_TRNS` in the destination layer so that tapping it again actually toggles back to the original layer. Only works upwards in the layer stack. - - -### Fun with modifier keys - -* `LSFT(kc)` - applies left Shift to *kc* (keycode) - `S(kc)` is an alias -* `RSFT(kc)` - applies right Shift to *kc* -* `LCTL(kc)` - applies left Control to *kc* -* `RCTL(kc)` - applies right Control to *kc* -* `LALT(kc)` - applies left Alt to *kc* -* `RALT(kc)` - applies right Alt to *kc* -* `LGUI(kc)` - applies left GUI (command/win) to *kc* -* `RGUI(kc)` - applies right GUI (command/win) to *kc* -* `HYPR(kc)` - applies Hyper (all modifiers) to *kc* -* `MEH(kc)` - applies Meh (all modifiers except Win/Cmd) to *kc* -* `LCAG(kc)` - applies CtrlAltGui to *kc* - -You can also chain these, like this: - - LALT(LCTL(KC_DEL)) -- this makes a key that sends Alt, Control, and Delete in a single keypress. - -The following shortcuts automatically add `LSFT()` to keycodes to get commonly used symbols. Their long names are also available and documented in `/quantum/keymap_common.h`. - - KC_TILD ~ - KC_EXLM ! - KC_AT @ - KC_HASH # - KC_DLR $ - KC_PERC % - KC_CIRC ^ - KC_AMPR & - KC_ASTR * - KC_LPRN ( - KC_RPRN ) - KC_UNDS _ - KC_PLUS + - KC_DQUO " - KC_LCBR { - KC_RCBR } - KC_LABK < - KC_RABK > - KC_PIPE | - KC_COLN : - -`OSM(mod)` - this is a "one shot" modifier. So let's say you have your left Shift key defined as `OSM(MOD_LSFT)`. Tap it, let go, and Shift is "on" -- but only for the next character you'll type. So to write "The", you don't need to hold down Shift -- you tap it, tap t, and move on with life. And if you hold down the left Shift key, it just works as a left Shift key, as you would expect (so you could type THE). There's also a magical, secret way to "lock" a modifier by tapping it multiple times. If you want to learn more about that, open an issue. :) - -`MT(mod, kc)` - is *mod* (modifier key - MOD_LCTL, MOD_LSFT) when held, and *kc* when tapped. In other words, you can have a key that sends Esc (or the letter O or whatever) when you tap it, but works as a Control key or a Shift key when you hold it down. - -These are the values you can use for the `mod` in `MT()` and `OSM()` (right-hand modifiers are not available for `MT()`): - - * MOD_LCTL - * MOD_LSFT - * MOD_LALT - * MOD_LGUI - * MOD_HYPR - * MOD_MEH - - -These can also be combined like `MOD_LCTL | MOD_LSFT` e.g. `MT(MOD_LCTL | MOD_LSFT, KC_ESC)` which would activate Control and Shift when held, and send Escape when tapped. - -We've added shortcuts to make common modifier/tap (mod-tap) mappings more compact: - - * `CTL_T(kc)` - is LCTL when held and *kc* when tapped - * `SFT_T(kc)` - is LSFT when held and *kc* when tapped - * `ALT_T(kc)` - is LALT when held and *kc* when tapped - * `GUI_T(kc)` - is LGUI when held and *kc* when tapped - * `ALL_T(kc)` - is Hyper (all mods) when held and *kc* when tapped. To read more about what you can do with a Hyper key, see [this blog post by Brett Terpstra](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) - * `LCAG_T(kc)` - is CtrlAltGui when held and *kc* when tapped - * `MEH_T(kc)` - is like Hyper, but not as cool -- does not include the Cmd/Win key, so just sends Alt+Ctrl+Shift. - -### Space Cadet Shift: The future, built in - -Steve Losh [described](http://stevelosh.com/blog/2012/10/a-modern-space-cadet/) the Space Cadet Shift quite well. Essentially, you hit the left Shift on its own, and you get an opening parenthesis; hit the right Shift on its own, and you get the closing one. When hit with other keys, the Shift key keeps working as it always does. Yes, it's as cool as it sounds. - -To use it, use `KC_LSPO` (Left Shift, Parens Open) for your left Shift on your keymap, and `KC_RSPC` (Right Shift, Parens Close) for your right Shift. - -It's defaulted to work on US keyboards, but if your layout uses different keys for parenthesis, you can define those in your `config.h` like this: - - #define LSPO_KEY KC_9 - #define RSPC_KEY KC_0 - -The only other thing you're going to want to do is create a `Makefile` in your keymap directory and set the following: - -``` -COMMAND_ENABLE = no # Commands for debug and configuration -``` - -This is just to keep the keyboard from going into command mode when you hold both Shift keys at the same time. - -### The Leader key: A new kind of modifier - -If you've ever used Vim, you know what a Leader key is. If not, you're about to discover a wonderful concept. :) Instead of hitting Alt+Shift+W for example (holding down three keys at the same time), what if you could hit a _sequence_ of keys instead? So you'd hit our special modifier (the Leader key), followed by W and then C (just a rapid succession of keys), and something would happen. - -That's what `KC_LEAD` does. Here's an example: - -1. Pick a key on your keyboard you want to use as the Leader key. Assign it the keycode `KC_LEAD`. This key would be dedicated just for this -- it's a single action key, can't be used for anything else. -2. Include the line `#define LEADER_TIMEOUT 300` somewhere in your keymap.c file, probably near the top. The 300 there is 300ms -- that's how long you have for the sequence of keys following the leader. You can tweak this value for comfort, of course. -3. Within your `matrix_scan_user` function, do something like this: - -``` -void matrix_scan_user(void) { - LEADER_DICTIONARY() { - leading = false; - leader_end(); - - SEQ_ONE_KEY(KC_F) { - register_code(KC_S); - unregister_code(KC_S); - } - SEQ_TWO_KEYS(KC_A, KC_S) { - register_code(KC_H); - unregister_code(KC_H); - } - SEQ_THREE_KEYS(KC_A, KC_S, KC_D) { - register_code(KC_LGUI); - register_code(KC_S); - unregister_code(KC_S); - unregister_code(KC_LGUI); - } - } -} -``` - -As you can see, you have three function. you can use - `SEQ_ONE_KEY` for single-key sequences (Leader followed by just one key), and `SEQ_TWO_KEYS` and `SEQ_THREE_KEYS` for longer sequences. Each of these accepts one or more keycodes as arguments. This is an important point: You can use keycodes from **any layer on your keyboard**. That layer would need to be active for the leader macro to fire, obviously. - -### Temporarily setting the default layer - -`DF(layer)` - sets default layer to *layer*. The default layer is the one at the "bottom" of the layer stack - the ultimate fallback layer. This currently does not persist over power loss. When you plug the keyboard back in, layer 0 will always be the default. It is theoretically possible to work around that, but that's not what `DF` does. - -### Prevent stuck modifiers - -Consider the following scenario: - -1. Layer 0 has a key defined as Shift. -2. The same key is defined on layer 1 as the letter A. -3. User presses Shift. -4. User switches to layer 1 for whatever reason. -5. User releases Shift, or rather the letter A. -6. User switches back to layer 0. - -Shift was actually never released and is still considered pressed. - -If such situation bothers you add this to your `config.h`: - - #define PREVENT_STUCK_MODIFIERS - -This option uses 5 bytes of memory per every 8 keys on the keyboard -rounded up (5 bits per key). For example on Planck (48 keys) it uses -(48/8)\*5 = 30 bytes. - -### Remember: These are just aliases - -These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk ACTION_* functions, please see the [TMK documentation](https://github.com/jackhumbert/qmk_firmware/blob/master/doc/keymap.md#2-action). - -Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - the benefit here is being able to use more than 32 function actions (up to 4096), if you happen to need them. - -## Macro shortcuts: Send a whole string when pressing just one key - -Instead of using the `ACTION_MACRO` function, you can simply use `M(n)` to access macro *n* - *n* will get passed into the `action_get_macro` as the `id`, and you can use a switch statement to trigger it. This gets called on the keydown and keyup, so you'll need to use an if statement testing `record->event.pressed` (see keymap_default.c). - -```c -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // this is the function signature -- just copy/paste it into your keymap file as it is. -{ - switch(id) { - case 0: // this would trigger when you hit a key mapped as M(0) - if (record->event.pressed) { - return MACRO( I(255), T(H), T(E), T(L), T(L), W(255), T(O), END ); // this sends the string 'hello' when the macro executes - } - break; - } - return MACRO_NONE; -}; -``` -A macro can include the following commands: - -* I() change interval of stroke in milliseconds. -* D() press key. -* U() release key. -* T() type key(press and release). -* W() wait (milliseconds). -* END end mark. - -So above you can see the stroke interval changed to 255ms between each keystroke, then a bunch of keys being typed, waits a while, then the macro ends. - -Note: Using macros to have your keyboard send passwords for you is possible, but a bad idea. - -### Advanced macro functions - -To get more control over the keys/actions your keyboard takes, the following functions are available to you in the `action_get_macro` function block: - -* `record->event.pressed` - -This is a boolean value that can be tested to see if the switch is being pressed or released. An example of this is - -```c -if (record->event.pressed) { - // on keydown -} else { - // on keyup -} -``` - -* `register_code();` - -This sends the `` keydown event to the computer. Some examples would be `KC_ESC`, `KC_C`, `KC_4`, and even modifiers such as `KC_LSFT` and `KC_LGUI`. - -* `unregister_code();` - -Parallel to `register_code` function, this sends the `` keyup event to the computer. If you don't use this, the key will be held down until it's sent. - -* `layer_on();` - -This will turn on the layer `` - the higher layer number will always take priority. Make sure you have `KC_TRNS` for the key you're pressing on the layer you're switching to, or you'll get stick there unless you have another plan. - -* `layer_off();` - -This will turn off the layer ``. - -* `clear_keyboard();` - -This will clear all mods and keys currently pressed. - -* `clear_mods();` - -This will clear all mods currently pressed. - -* `clear_keyboard_but_mods();` - -This will clear all keys besides the mods currently pressed. - -* `update_tri_layer(layer_1, layer_2, layer_3);` - -If the user attempts to activate layer 1 AND layer 2 at the same time (for example, by hitting their respective layer keys), layer 3 will be activated. Layers 1 and 2 will _also_ be activated, for the purposes of fallbacks (so a given key will fall back from 3 to 2, to 1 -- and only then to 0). - -#### Naming your macros - -If you have a bunch of macros you want to refer to from your keymap, while keeping the keymap easily readable, you can just name them like so: - -``` -#define AUD_OFF M(6) -#define AUD_ON M(7) -#define MUS_OFF M(8) -#define MUS_ON M(9) -#define VC_IN M(10) -#define VC_DE M(11) -#define PLOVER M(12) -#define EXT_PLV M(13) -``` - -As was done on the [Planck default keymap](/keyboards/planck/keymaps/default/keymap.c#L33-L40) - -#### Timer functionality - -It's possible to start timers and read values for time-specific events - here's an example: - -```c -static uint16_t key_timer; -key_timer = timer_read(); -if (timer_elapsed(key_timer) < 100) { - // do something if less than 100ms have passed -} else { - // do something if 100ms or more have passed -} -``` - -It's best to declare the `static uint16_t key_timer;` outside of the macro block (top of file, etc). - -#### Example: Single-key copy/paste (hold to copy, tap to paste) - -With QMK, it's easy to make one key do two things, as long as one of those things is being a modifier. :) So if you want a key to act as Ctrl when held and send the letter R when tapped, that's easy: `CTL_T(KC_R)`. But what do you do when you want that key to send Ctrl-V (paste) when tapped, and Ctrl-C (copy) when held? - -Here's what you do: - - -``` -static uint16_t key_timer; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - case 0: { - if (record->event.pressed) { - key_timer = timer_read(); // if the key is being pressed, we start the timer. - } - else { // this means the key was just released, so we can figure out how long it was pressed for (tap or "held down"). - if (timer_elapsed(key_timer) > 150) { // 150 being 150ms, the threshhold we pick for counting something as a tap. - return MACRO( D(LCTL), T(C), U(LCTL), END ); - } - else { - return MACRO( D(LCTL), T(V), U(LCTL), END ); - } - } - break; - } - } - return MACRO_NONE; -}; -``` - -And then, to assign this macro to a key on your keyboard layout, you just use `M(0)` on the key you want to press for copy/paste. - -## Additional keycode aliases for software-implemented layouts (Colemak, Dvorak, etc) - -Everything is assuming you're in Qwerty (in software) by default, but there is built-in support for using a Colemak or Dvorak layout by including this at the top of your keymap: - - #include - -If you use Dvorak, use `keymap_dvorak.h` instead of `keymap_colemak.h` for this line. After including this line, you will get access to: - - * `CM_*` for all of the Colemak-equivalent characters - * `DV_*` for all of the Dvorak-equivalent characters - -These implementations assume you're using Colemak or Dvorak on your OS, not on your keyboard - this is referred to as a software-implemented layout. If your computer is in Qwerty and your keymap is in Colemak or Dvorak, this is referred to as a firmware-implemented layout, and you won't need these features. - -To give an example, if you're using software-implemented Colemak, and want to get an `F`, you would use `CM_F` - `KC_F` under these same circumstances would result in `T`. - -## Additional language support - -In `quantum/keymap_extras/`, you'll see various language files - these work the same way as the alternative layout ones do. Most are defined by their two letter country/language code followed by an underscore and a 4-letter abbreviation of its name. `FR_UGRV` which will result in a `ù` when using a software-implemented AZERTY layout. It's currently difficult to send such characters in just the firmware (but it's being worked on - see Unicode support). - -## Unicode support - -You can currently send 4 hex digits with your OS-specific modifier key (RALT for OSX with the "Unicode Hex Input" layout) - this is currently limited to supporting one OS at a time, and requires a recompile for switching. 8 digit hex codes are being worked on. The keycode function is `UC(n)`, where *n* is a 4 digit hexidecimal. Enable from the Makefile. - -## Other firmware shortcut keycodes - -* `RESET` - puts the MCU in DFU mode for flashing new firmware (with `make dfu`) -* `DEBUG` - the firmware into debug mode - you'll need hid_listen to see things -* `BL_ON` - turns the backlight on -* `BL_OFF` - turns the backlight off -* `BL_` - sets the backlight to level *n* -* `BL_INC` - increments the backlight level by one -* `BL_DEC` - decrements the backlight level by one -* `BL_TOGG` - toggles the backlight -* `BL_STEP` - steps through the backlight levels - -Enable the backlight from the Makefile. - -## Driving a speaker - audio support - -Your keyboard can make sounds! If you've got a Planck, Preonic, or basically any keyboard that allows access to the C6 port, you can hook up a simple speaker and have it beep. You can use those beeps to indicate layer transitions, modifiers, special keys, or just to play some funky 8bit tunes. - -The audio code lives in [quantum/audio/audio.h](/quantum/audio/audio.h) and in the other files in the audio directory. It's enabled by default on the Planck [stock keymap](/keyboards/planck/keymaps/default/keymap.c). Here are the important bits: - -``` -#include "audio.h" -``` - -Then, lower down the file: - -``` -float tone_startup[][2] = { - ED_NOTE(_E7 ), - E__NOTE(_CS7), - E__NOTE(_E6 ), - E__NOTE(_A6 ), - M__NOTE(_CS7, 20) -}; -``` - -This is how you write a song. Each of these lines is a note, so we have a little ditty composed of five notes here. - -Then, we have this chunk: - -``` -float tone_qwerty[][2] = SONG(QWERTY_SOUND); -float tone_dvorak[][2] = SONG(DVORAK_SOUND); -float tone_colemak[][2] = SONG(COLEMAK_SOUND); -float tone_plover[][2] = SONG(PLOVER_SOUND); -float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); - -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); -float goodbye[][2] = SONG(GOODBYE_SOUND); -``` - -Wherein we bind predefined songs (from [audio/song_list.h](/audio/song_list.h)) into named variables. This is one optimization that helps save on memory: These songs only take up memory when you reference them in your keymap, because they're essentially all preprocessor directives. - -So now you have something called `tone_plover` for example. How do you make it play the Plover tune, then? If you look further down the keymap, you'll see this: - -``` -PLAY_NOTE_ARRAY(tone_plover, false, 0); // Signature is: Song name, repeat, rest style -``` - -This is inside one of the macros. So when that macro executes, your keyboard plays that particular chime. - -"Rest style" in the method signature above (the last parameter) specifies if there's a rest (a moment of silence) between the notes. - -## MIDI functionalty - -This is still a WIP, but check out `quantum/keymap_midi.c` to see what's happening. Enable from the Makefile. - -## Bluetooth functionality - -This requires [some hardware changes](https://www.reddit.com/r/MechanicalKeyboards/comments/3psx0q/the_planck_keyboard_with_bluetooth_guide_and/?ref=search_posts), but can be enabled via the Makefile. The firmware will still output characters via USB, so be aware of this when charging via a computer. It would make sense to have a switch on the Bluefruit to turn it off at will. - -## International Characters on Windows - -[AutoHotkey](https://autohotkey.com) allows Windows users to create custom hotkeys among others. - -The method does not require Unicode support in the keyboard itself but depends instead of AutoHotkey running in the background. - -First you need to select a modifier combination that is not in use by any of your programs. -CtrlAltWin is not used very widely and should therefore be perfect for this. -There is a macro defined for a mod-tab combo `LCAG_T`. -Add this mod-tab combo to a key on your keyboard, e.g.: `LCAG_T(KC_TAB)`. -This makes the key behave like a tab key if pressed and released immediately but changes it to the modifier if used with another key. - -In the default script of AutoHotkey you can define custom hotkeys. - - <^/`), or your keymap folder (`/keyboards//keymaps//`) if you have a `Makefile` there (see the example [here](/doc/keymap_makefile_example.mk)). -By default, this will generate a `_.hex` file in whichever folder you run `make` from. These files are ignored by git, so don't worry about deleting them when committing/creating pull requests. Your .hex file will also be copied into your keymap folder as `compiled.hex`, which isn't ignored by git - this is included in case first-time users are having trouble compiling, and just want to flash a layout via `make dfu-no-build` or using the Teensy loader. +By default, this will generate a `_.hex` file in whichever folder you run `make` from. These files are ignored by git, so don't worry about deleting them when committing/creating pull requests. * The "root" (`/`) folder is the qmk_firmware folder, in which are `doc`, `keyboard`, `quantum`, etc. * The "keyboard" folder is any keyboard project's folder, like `/keyboards/planck`. @@ -63,7 +63,6 @@ Below is a list of the useful `make` commands in QMK: * `make quick` - skips the clean step (cannot be used immediately after modifying config.h or Makefiles) * `make dfu` - (requires dfu-programmer) builds and flashes the keymap to your keyboard once placed in reset/dfu mode (button or press `KC_RESET`). This does not work for Teensy-based keyboards like the ErgoDox EZ. * `keyboard=` and `keymap=` are compatible with this -* `make dfu-no-build` - (requires dfu-programmer) same as `make dfu`, but doesn't build and uses the included `compiled.hex` to flash the keyboard * `make all-keyboards` - builds all keymaps for all keyboards and outputs status of each (use in root) * `make all-keyboards-default` - builds all default keymaps for all keyboards and outputs status of each (use in root) * `make all-keymaps [keyboard=]` - builds all of the keymaps for whatever keyboard folder you're in, or specified by `` diff --git a/doc/HAND_WIRE.md b/doc/HAND_WIRE.md index bb3683cb9..18cb7011f 100644 --- a/doc/HAND_WIRE.md +++ b/doc/HAND_WIRE.md @@ -306,7 +306,7 @@ If you've done all of these things, keep in mind that sometimes you might have h Now that you have a working board, it's time to get things in their permanent positions. I've often used liberal amounts of hot glue to secure and insulate things, so if that's your style, start spreading that stuff like butter. Otherwise, double-sided tape is always an elegant solution, and electrical tape is a distant second. Due to the nature of these builds, a lot of this part is up to you and how you planned (or didn't plan) things out. -There are a lot of possibilities inside the firmware - check out the [README](https://github.com/jackhumbert/qmk_firmware/blob/master/README.md) for a full feature list, and dive into the different project (Planck, Ergodox EZ, etc) to see how people use all of them. You can always stop by [the OLKB subreddit for help!](http://reddit.com/r/olkb) +There are a lot of possibilities inside the firmware - check out the [readme](https://github.com/jackhumbert/qmk_firmware/blob/master/readme.md) for a full feature list, and dive into the different project (Planck, Ergodox EZ, etc) to see how people use all of them. You can always stop by [the OLKB subreddit for help!](http://reddit.com/r/olkb) ## Trouble-shooting compiling diff --git a/doc/TMK_README.md b/doc/TMK_README.md index 150b4f93b..6164dacd3 100644 --- a/doc/TMK_README.md +++ b/doc/TMK_README.md @@ -113,7 +113,7 @@ Third party libraries like LUFA, PJRC and V-USB have their own license respectiv Build Firmware and Program Controller ------------------------------------- -See [doc/build.md](tmk_core/doc/build.md), or the README in the particular keyboards/* folder. +See [doc/build.md](tmk_core/doc/build.md), or the readme in the particular keyboards/* folder. diff --git a/doc/VAGRANT_GUIDE.md b/doc/VAGRANT_GUIDE.md index 72223e804..62044b7f7 100644 --- a/doc/VAGRANT_GUIDE.md +++ b/doc/VAGRANT_GUIDE.md @@ -12,7 +12,7 @@ Other than having Vagrant and Virtualbox installed and possibly a restart of you Build Firmware and Program Controller ------------------------------------- -See [/doc/BUIDE_GUIDE.md](/doc/BUILD_GUIDE.md), or the README in the particular keyboards/* folder. +See [/doc/BUIDE_GUIDE.md](/doc/BUILD_GUIDE.md), or the readme in the particular keyboards/* folder. Change your keymap ------------------ diff --git a/keyboards/alps64/alps64.c b/keyboards/alps64/alps64.c index dde10c11e..472d1d445 100644 --- a/keyboards/alps64/alps64.c +++ b/keyboards/alps64/alps64.c @@ -20,15 +20,6 @@ along with this program. If not, see . #define LED_OFF() do { DDRC &= ~(1<<5); PORTC &= ~(1<<5); } while (0) #define LED_TGL() do { DDRC |= (1<<5); PINC |= (1<<5); } while (0) -__attribute__ ((weak)) -void matrix_init_user(void) { - -} - -__attribute__ ((weak)) -void matrix_scan_user(void) { - -} void matrix_init_kb(void) { LED_ON(); @@ -36,8 +27,4 @@ void matrix_init_kb(void) { LED_OFF(); matrix_init_user(); -} - -void matrix_scan_kb(void) { - matrix_scan_user(); -} +} \ No newline at end of file diff --git a/keyboards/alps64/keymaps/default/compiled.hex b/keyboards/alps64/keymaps/default/compiled.hex deleted file mode 100644 index ef43410f2..000000000 --- a/keyboards/alps64/keymaps/default/compiled.hex +++ /dev/null @@ -1,1373 +0,0 @@ -:100000000C940B060C944F060C944F060C944F0660 -:100010000C944F060C944F060C944F060C944F060C -:100020000C944F060C944F060C944F060C94D5106C -:100030000C9483110C94E81E0C944F060C944F06FC -:100040000C944F060C944F060C944F060C94501FC2 -:100050000C944F060C944F060C944F060C944F06CC -:100060000C944F060C944F060C944F060C944F06BC -:100070000C944F06F01112120013121200135712B3 -:100080007A120013CF12E2120C160C163B163B1616 -:100090007A169A16CA17CA17A516CA1755175517EA -:1000A000BB17CA17CA17C4176217621762176217FD -:1000B0006217621762176217621762176217621778 -:1000C00062176217621762177217801787178E17E9 -:1000D0009817E600100036000E000F0012002700EF -:1000E0002D00E700370038003300340013002F00E4 -:1000F0002E00E400E5002900280031003000320025 -:100100002A00E000E100390004002B001400350053 -:100110001E00E30064001D0016001A0008001F0006 -:100120002000E2001B000700090015001700210055 -:1001300022002C00060019000A001C0018002300F1 -:1001400024006500050011000B000D000C002500C7 -:1001500026000A44454255473A20656E61626C6547 -:10016000642E0A005374617465206F6620726F7785 -:100170002025583A2025303136620A0048756D61D5 -:100180006E2D7265616461626C65206D6174726967 -:10019000782073746174653A0D0A004465626F7566 -:1001A0006E63696E672064656C61792072656D614C -:1001B000696E696E673A2025580A005B735D004BD3 -:1001C0006579626F6172642073746172742E0A00C3 -:1001D0005B525D005B445D005B435D000E034100CC -:1001E0006C007000730036003400000008035400F7 -:1001F0004D004B00000004030904090274000401CF -:1002000000A0FA0904000001030101000921110105 -:100210000001223F000705810308000A09040100CC -:100220000103010200092111010001224D0007050F -:10023000820308000A0904020001030000000921EA -:10024000110100012236000705830308000A090492 -:100250000300020300000009211101000122200017 -:100260000705840320000107050403200001120193 -:10027000100100000008EDFE6464010001020001AD -:100280000631FF0974A1010975150025FF95207538 -:100290000881020976150025FF952075089102C096 -:1002A00005010980A101850216010026B7001A0187 -:1002B000002AB700751095018100C0050C0901A145 -:1002C000018503160100269C021A01002A9C027572 -:1002D0001095018100C005010902A1010901A100D9 -:1002E00005091901290515002501950575018102EA -:1002F0009501750381010501093009311581257FBB -:1003000095027508810609381581257F95017508C4 -:100310008106050C0A38021581257F950175088133 -:1003200006C0C005010906A101050719E029E71566 -:100330000025019508750181029501750881010567 -:10034000081901290595057501910295017503911B -:10035000010507190029FF150025FF95067508817D -:1003600000C00A002530325820006B6579626F6149 -:1003700072645F7265706F72743A20004B657962C7 -:100380006F617264204C4544732073746174653AE4 -:100390002025780A00646F6E652E0A00626F6F6711 -:1003A0006D61676963207363616E3A202E2E2E2083 -:1003B00000290A002575002F002575005D280025FD -:1003C00064002000256400200025640020002564CE -:1003D000007C0025303258006D6F7573656B657950 -:1003E000205B62746E7C782079207620685D2872AC -:1003F00065702F61636C293A205B006D6B5F7768D5 -:1004000065656C5F74696D655F746F5F6D617820A1 -:100410003D2025640A006D6B5F776865656C5F6DD4 -:1004200061785F7370656564203D2025640A006D06 -:100430006B5F74696D655F746F5F6D6178203D20DF -:1004400025640A006D6B5F6D61785F73706565642C -:10045000203D2025640A006D6B5F696E74657276BD -:10046000616C203D2025640A006D6B5F64656C61E2 -:1004700079203D2025640A006D6B5F776865656CA7 -:100480005F74696D655F746F5F6D6178203D2025D5 -:10049000640A006D6B5F776865656C5F6D61785F9E -:1004A0007370656564203D2025640A006D6B5F7480 -:1004B000696D655F746F5F6D6178203D2025640A0A -:1004C000006D6B5F6D61785F7370656564203D20C2 -:1004D00025640A006D6B5F696E74657276616C20CD -:1004E0003D2025640A006D6B5F64656C6179203D79 -:1004F0002025640A000A00257500363A20776865D1 -:10050000656C5F74696D655F746F5F6D61783A20CB -:10051000000A00257500353A20776865656C5F6DC7 -:1005200061785F73706565643A20000A0025750084 -:10053000343A2074696D655F746F5F6D61783A203D -:10054000000A00257500333A206D61785F7370658D -:1005500065643A20000A00257500323A20696E74FD -:10056000657276616C286D73293A20000A00257542 -:1005700000313A2064656C6179282A31306D732925 -:100580003A20000A092D2056616C756573202D0AEA -:10059000004D3E004D25643E20003F0073657420F1 -:1005A00064656661756C740A00433E200077686577 -:1005B00072652064656C74613A20637572736F7242 -:1005C0003D25642C20776865656C3D25640A53657C -:1005D0006520687474703A2F2F656E2E77696B6989 -:1005E00070656469612E6F72672F77696B692F4D33 -:1005F0006F7573655F6B6579730A000A092D204D6D -:100600006F7573656B6579202D0A4553432F713AD9 -:1006100009717569740A313A0964656C6179282A2F -:1006200031306D73290A323A09696E7465727661E8 -:100630006C286D73290A333A096D61785F737065B0 -:1006400065640A343A0974696D655F746F5F6D6142 -:10065000780A353A09776865656C5F6D61785F7314 -:10066000706565640A363A09776865656C5F746918 -:100670006D655F746F5F6D61780A0A703A09707218 -:10068000696E742076616C7565730A643A097365E6 -:10069000742064656661756C74730A75703A092B11 -:1006A000310A646F776E3A092D310A706775703AB6 -:1006B000092B31300A7067646F776E3A092D31303B -:1006C0000A0A7370656564203D2064656C7461205E -:1006D0002A206D61785F7370656564202A20287216 -:1006E0006570656174202F2074696D655F746F5F3C -:1006F0006D6178290A003F004D3E2000433E2000F6 -:100700004C25640A0074696D65725F636F756E7461 -:100710003A202530346C580A006B6579626F61723B -:10072000645F69646C653A2025580A006B657962DC -:100730006F6172645F70726F746F636F6C3A2025C3 -:10074000580A00686F73745F6B6579626F617264D9 -:100750005F6C65647328293A2025580A000A092D20 -:1007600020537461747573202D0A004743433A2067 -:10077000342E392E32204156522D4C4942433A20D4 -:10078000312E382E31204156525F415243483A2093 -:1007900061767233350A004F5054494F4E533A2018 -:1007A0004C55464120424F4F544D41474943204DFF -:1007B0004F5553454B45592045585452414B455987 -:1007C00020434F4E534F4C4520434F4D4D414E44D7 -:1007D00020343039360A004255494C443A203136EB -:1007E00037313865662D6469727479202832333A5E -:1007F00030373A3132204A756E202039203230317C -:1008000036290A005649443A20307846454544285E -:10081000544D4B29205049443A20307836343634F0 -:1008200028416C7073363429205645523A2030786E -:10083000303030310A00444553433A20544D4B2068 -:100840006B6579626F617264206669726D7761723F -:100850006520666F7220416C707336340A000A0995 -:100860002D2056657273696F6E202D0A000A092DBE -:1008700020436F6E736F6C65202D0A4553432F71B3 -:100880003A09717569740A6D3A096D6F7573656B14 -:1008900065790A000A092D204D61676963202D0AD8 -:1008A000443A094465627567204D657373616765F5 -:1008B00020546F67676C650A583A094D6174726914 -:1008C00078204465627567204D6F646520546F67BA -:1008D000676C65202D2053686F77206B6579707287 -:1008E000657373657320696E206D61747269782019 -:1008F000677269640A4B3A094B6579626F61726489 -:1009000020446562756720546F67676C65202D20F1 -:1009100053686F77206B65797072657373207265A9 -:10092000706F72740A4D3A094465627567204D6FA5 -:1009300075736520546F67676C650A563A0956658A -:100940007273696F6E0A533A095374617475730A4E -:10095000433A09416374697661746520436F6E732D -:100960006F6C65204D6F64650A46312D4631303A13 -:100970000953776974636820746F204C61796572DC -:1009800020302D392028463130203D204C30290A96 -:10099000302D393A0953776974636820746F204C9D -:1009A0006179657220302D390A4553433A095377EE -:1009B0006974636820746F204C61796572203020FF -:1009C00028616C7465726E617465206B6579203185 -:1009D000290A47524156453A09537769746368209A -:1009E000746F204C6179657220302028616C7465C9 -:1009F000726E617465206B65792032290A50415509 -:100A000053453A094A756D7020746F20426F6F74B8 -:100A10006C6F6164657220285265736574290A459C -:100A20003A095072696E7420454550524F4D20531B -:100A3000657474696E67730A000A002575002E6E6E -:100A40006B726F3A20000A002575002E7377617073 -:100A50005F6261636B736C6173685F6261636B7328 -:100A6000706163653A20000A002575002E73776176 -:100A7000705F67726176655F6573633A20000A0094 -:100A80002575002E6E6F5F6775693A20000A002594 -:100A900075002E737761705F72616C745F72677539 -:100AA000693A20000A002575002E737761705F6C2B -:100AB000616C745F6C6775693A20000A00257500E7 -:100AC0002E636170736C6F636B5F746F5F636F6EC7 -:100AD00074726F6C3A20000A002575002E737761DE -:100AE000705F636F6E74726F6C5F636170736C6F55 -:100AF000636B3A20000A0025303258006B65796D2F -:100B000061705F636F6E6669672E7261773A20006D -:100B10000A002575002E6D6F7573653A20000A0076 -:100B20002575002E6B6579626F6172643A20000A48 -:100B3000002575002E6D61747269783A20000A00F4 -:100B40002575002E656E61626C653A20000A0025ED -:100B50003032580064656275675F636F6E666967FF -:100B60002E7261773A20000A00257500646566617F -:100B7000756C745F6C617965723A20003F000A6D94 -:100B80006F7573653A206F66660A000A6D6F75733C -:100B9000653A206F6E0A000A6B6579626F61726454 -:100BA0003A206F66660A000A6B6579626F6172644B -:100BB0003A206F6E0A000A6D61747269783A206F8C -:100BC00066660A000A6D61747269783A206F6E0A6F -:100BD000000A64656275673A206F66660A000A64F7 -:100BE000656275673A206F6E0A000A0A4A756D7071 -:100BF000696E6720746F20626F6F746C6F616465DB -:100C0000722E2E2E2000433E20006565636F6E66B7 -:100C100069673A0A000011241FBECFEFD4E0DEBF9F -:100C2000CDBF04B603FE24C08091E8019091E90194 -:100C3000A091EA01B091EB018730904BA740B04BF7 -:100C4000B9F41092E8011092E9011092EA011092B1 -:100C5000EB0114BE84B7877F84BF88E10FB6F89498 -:100C600080936000109260000FBEE0E0F8E3099509 -:100C700011E0A0E0B1E0E2E6F5E502C005900D92DA -:100C8000A234B107D9F711E0A2E4B1E001C01D928E -:100C9000A83EB107E1F70E942D0E0C94AF2A0C94E8 -:100CA0000000FF93EF93E0914201F09143013097F0 -:100CB00009F00995EF91FF910895FC01859180302D -:100CC00011F0EFDFFBCF0895FF27E0E230E247FFAE -:100CD0000CC0419597FF09C0EDE260957095809535 -:100CE0009095611D711D811D911D27FF02C02195E9 -:100CF00030E350E2AA27660F771F881F991FAA1FAB -:100D0000A41710F0A41B63955A95A9F7AA3008F010 -:100D1000A95FA05DAF93F3956115710581059105FC -:100D200041F7ED3211F4EF93F395F21718F43F9376 -:100D3000F395FBCF8F91B5DFFA95E1F70895E9912F -:100D4000F9918591803021F0853219F0AADFF9CF31 -:100D5000089520E0E89455915532C1F3503311F4D1 -:100D6000689455915A3348F4505390F3220F022E51 -:100D7000220F220F200D250FF4CF0EF4219589911B -:100D80009991533619F3533729F1533559F1BC0171 -:100D900088279927E8945C3621F489919991689481 -:100DA0005591543639F446EF7EF077FF0DC08FEF42 -:100DB0009FEF0AC055374AE039F0583540E121F03D -:100DC000523642E009F00895FF93EF937DDFEF91F3 -:100DD000FF91B7CFFF93EF93FC0181918030B9F37E -:100DE00060DFFBCFFF93EF9368DFF1CFDF93CF930B -:100DF000CDB7DEB72596A3DFCF91DF91089581FFB0 -:100E000003C03D9A459A08953D98459808950895E0 -:100E100008953D9A459A2FEF89E698E12150804048 -:100E20009040E1F700C000003D9845980C940707FA -:100E30000C94080781E0089581E008950C941C0744 -:100E400008950F931F93CF93DF938C01FC01C08112 -:100E5000D181CE010E94411DBE010E94D107EC014B -:100E6000B8010E941E07882309F48DC0F801828111 -:100E7000882309F44AC080914F0181111FC0C431F9 -:100E8000F0E5DF0709F051C00E94200781E0809360 -:100E90004F010E941A1F90934E0180934D011092B2 -:100EA0004601109248011092470110924A01109297 -:100EB000490110924C0110924B0165C080914D0187 -:100EC00090914E010E94261F883C910570F48091FC -:100ED0004601E82FF0E0EE0FFF1FE95BFE4FD183E4 -:100EE000C0838F5F809346014EC0C43880E5D80729 -:100EF00021F0C538D04501F13AC0F801828188233C -:100F000041F01092440182E01EC0C438E0E5DE07E3 -:100F100059F580914401811106C086E20E94B01407 -:100F200086E20E94781582E01CC0C438F0E5DF0735 -:100F300041F3C538D045D9F4F8018281882331F0D6 -:100F40001092450180E20E94C7151DC080914501A5 -:100F5000811106C087E20E94B01487E20E947815D2 -:100F600080E20E94CE150FC0C538D04529F381E03C -:100F70008093440180934501C801DF91CF911F9177 -:100F80000F910C941A0780E0DF91CF911F910F9180 -:100F900008950C9409070C94180780E090E00895D8 -:100FA0000895E82FF0E083E0EE0FFF1F8A95E1F748 -:100FB000E70FF11D93E0EE0FFF1F9A95E1F7E60FA3 -:100FC000F11DEE0FFF1FEE52FF4F85919491089592 -:100FD000880F991FFC01EE5AF04085919491089575 -:100FE000880F991FFC01EE52FF4F8591949108954F -:100FF0000F931F93CF93DF93EC01811520E39207AA -:1010000050F5C11580E2D80708F0C3C0CB3BD1052D -:1010100090F4C83AD10508F06AC0C53AD10508F085 -:101020005BC0C430D10508F0D4C1219709F0CEC10E -:1010300001E010E00EC2CF3FD10511F008F0C9C1A8 -:10104000C03FD10508F0A2C0CE01805E910908978B -:1010500008F4BFC1BBC1C13090E5D90709F4A2C0F3 -:1010600020F5C0318FE4D80770F4C11590E4D9079A -:1010700008F094C0C11521E3D20708F0A7C1DD270D -:101080008E01106CE6C1C115D04509F09FC10E94C8 -:1010900035188FEF94E32CE0815090402040E1F729 -:1010A00000C000000E94751FD4C1C11597E5D90783 -:1010B00058F4C03121E5D20708F020C1C43180E5E1 -:1010C000D80708F479C082C1CE01905781159041AC -:1010D00008F07CC1DF7077C1C53AD10509F47BC146 -:1010E000C63AD10509F07AC102E810E4B2C1C83AA3 -:1010F000D10509F476C1C93AD10509F475C1CA3AD6 -:10110000D10509F474C1CB3AD10509F473C1CC3AC5 -:10111000D10509F472C1CD3AD10509F471C1C03BC2 -:10112000D10509F470C1CE3AD10509F46FC1CF3AA7 -:10113000D10509F46EC1C13BD10509F46DC1C23BB3 -:10114000D10509F46CC1C33BD10509F46BC1C43BA3 -:10115000D10509F46AC1C53BD10509F469C1C63B93 -:10116000D10509F468C1C73BD10509F467C1C83B83 -:10117000D10509F466C1C93BD10509F465C1CA3B73 -:10118000D10509F464C100E014E463C18E01106567 -:1011900060C1CE019F700E94F0075CC1DF708E01BC -:1011A000106A57C182E591E00E945D068091C901F5 -:1011B00081608093C9014DC10E941B21811102C031 -:1011C0000E9401210E94382190E09093E8018093D1 -:1011D000E701C23080E5D80721F48091E701816002 -:1011E00086C0C43090E5D90721F48091E701826080 -:1011F0007EC0C63020E5D20721F48091E7018460EB -:1012000076C0C83080E5D80719F48091E70127C07F -:10121000CA3090E5D90721F48091E701806167C069 -:10122000CC3020E5D20721F48091E70180625FC0D5 -:10123000CE3080E5D80721F48091E701806457C063 -:10124000C03190E5D90721F48091E70180684FC053 -:10125000C23120E5D20729F48091E70184608860DB -:1012600046C0C33080E5D80721F48091E7018E7F26 -:101270003EC0C53090E5D90721F48091E7018D7F0C -:1012800036C0C73020E5D20721F48091E7018B7F7B -:101290002EC0C93080E5D80719F48091E70126C037 -:1012A000CB3090E5D90721F48091E7018F7E1FC0F4 -:1012B000CD3020E5D20721F48091E7018F7D17C062 -:1012C000CF3080E5D80721F48091E7018F7B0FC0F4 -:1012D000C13190E5D90721F48091E7018F7707C0EC -:1012E000C331D04531F48091E7018B7F877F8093B4 -:1012F000E7018091E7010E943C21ABC08D2F992727 -:101300008F70992781309105D9F49E01237033277E -:1013100002C0880F991F2A95E2F79C688E0144E06D -:10132000000F111F4A95E1F700271370802B912BB6 -:1013300053E0CC0FDD1F5A95E1F7C076DD272FC0B3 -:101340008230910531F4DC2FCC278E01016F106AB9 -:1013500080C08330910569F4CE018370992701E044 -:1013600010E002C0000F111F8A95E2F7C8019C68C7 -:101370000FC084309105B9F4CE018370992701E044 -:1013800010E002C0000F111F8A95E2F7C8019A68A9 -:1013900023E0CC0FDD1F2A95E1F7C07ED7708C01CA -:1013A0000C2B1D2B56C08530910531F4DC2FCC273A -:1013B0008E01046F106A4DC0069709F04AC0CF71C4 -:1013C000DD27DC2FCC278E01106243C000E010E047 -:1013D00040C08E013EC001E810E43BC003E810E4C9 -:1013E00038C002EE14E435C009EE14E432C00AEE4F -:1013F00014E42FC005EB14E42CC006EB14E429C060 -:1014000007EB14E426C00CEC14E423C00DEC14E448 -:1014100020C003E815E41DC00AE815E41AC002E97B -:1014200015E417C004E915E414C001E216E411C084 -:1014300003E216E40EC004E216E40BC005E216E473 -:1014400008C006E216E405C007E216E402C00AE29C -:1014500016E4C801DF91CF911F910F910895E82FF5 -:10146000F0E083E0EE0FFF1F8A95E1F7E70FF11D33 -:1014700093E0EE0FFF1F9A95E1F7E60FF11DEE0FD7 -:10148000FF1FEE52FF4F85919491803E9105E0F44D -:10149000803C910558F58133910509F46FC048F4FB -:1014A0008932910509F463C08A32910509F46DC04F -:1014B00072C089339105E9F082389105D1F0853306 -:1014C000910509F44DC067C0833E910581F138F460 -:1014D000803E9105B9F0823E9105D9F05CC0863E10 -:1014E000910561F1873E9105A1F155C00E94E80781 -:1014F00008952091E70120FD02C021FF4CC080EE3D -:1015000090E049C08091E70180FFF9CF89E390E046 -:1015100042C08091E70182FF0EC08091E70184FF05 -:1015200003C080E090E037C083EE90E034C080914B -:10153000E70182FFF2CF82EE90E02DC08091E701BB -:1015400083FF0BC08091E70184FDEBCF87EE90E035 -:1015500022C08091E70183FFF5CF86EE90E01BC0AB -:101560008091E70185FF07C089E290E014C0809177 -:10157000E70185FFF9CF85E390E00DC08091E70199 -:1015800086FF07C08AE290E006C08091E70186FFEF -:10159000F9CF81E390E00E94F8070895E82FF0E08A -:1015A000E45EFE4F8081E82FEF70F0E082958F704F -:1015B00021E030E0A90102C0440F551F8A95E2F7EF -:1015C00040A308950F931F93CF93DF93C7E0D0E01C -:1015D00001E010E0FE01E45EFE4F8081E82FEF7035 -:1015E000F0E021A182958F70A80102C0440F551F21 -:1015F0008A95E2F7CA01822B81A38C2F0E94CE0A22 -:10160000219740F787E090E061E070E0FC01EC5E3C -:10161000FE4F2081E22FEF70F0E042A122952F7063 -:10162000DB0102C0AA0FBB1F2A95E2F79D01242B04 -:1016300022A3019758F7DF91CF911F910F910C943E -:10164000C907EF92FF920F931F93CF93DF9308E5A3 -:1016500011E0C7E0EE24E394F12CD5E08C2F0E943A -:10166000CE0A87E090E040E0FC01EC5EFE4F508146 -:10167000E52FEF70F0E020A130E052955F7002C0DE -:10168000359527955A95E2F720FD07C09701082E5A -:1016900001C0220F0A94EAF7422B019728F7F801BC -:1016A00082918F01841719F04083D09300018C2F11 -:1016B0000E94CE0AC15090F68091000187FD32C091 -:1016C0009091C90190FF10C0282F332727FD309536 -:1016D0003F938F938BE991E09F938F930E94F6063F -:1016E0000F900F900F900F90809100018150809388 -:1016F000000187FD07C08FE99FE00197F1F700C067 -:10170000000010C080E090E0FC01E85AFE4FDC01D0 -:10171000A05BBE4F17962C9127830197883FEFEF70 -:101720009E0791F70E94CB0781E0DF91CF911F9137 -:101730000F91FF90EF900895E82FF0E0E85AFE4FE8 -:10174000808108950F931F93CF93DF938091C901F8 -:1017500080FF04C08CE791E00E945D06C0E0D0E00D -:1017600004E611E08091C90180FF15C0FE01E85A2E -:10177000FE4F808190E00E94951E9F938F93DF9390 -:10178000CF931F930F930E94F6060F900F900F9028 -:101790000F900F900F902196C830D10519F7DF9167 -:1017A000CF911F910F9108950F931F93CF9300E650 -:1017B00011E0C0E0F80182918F0190E00E94771E55 -:1017C000C80FF1E008351F07A9F78C2FCF911F91A3 -:1017D0000F91089580916B0108959FB7F89410922E -:1017E00062019FBF9091DE01943009F057C0909143 -:1017F000E9009F703091EC00232F217030FD20E82C -:10180000922B24E02093E9002091EB0020FF43C0BD -:101810002091EE0027FF3FC020916001222321F09C -:101820002091E80025FF37C01092600126E030913A -:10183000E80035FD15C03091DE01343061F530919E -:10184000EB0035FD28C0215021F481E08093600138 -:1018500022C0EFE9FFE03197F1F700C00000E7CFC9 -:101860008093F1008091E80085FD0AC08091E80036 -:1018700080FFFCCF8091E8008E778093E80006C05F -:101880008FB7F89421E0209362018FBF9F709093EF -:10189000E90080E008959F709093E9008FEF08952C -:1018A000CF93DF9300D01F92CDB7DEB79C0180911C -:1018B000DE01843019F593E099833B832A8390936A -:1018C000E9008FEF9091E800815095FD06C095EDFD -:1018D0009A95F1F700008111F5CF8091E80085FF1E -:1018E0000DC040E050E063E070E0CE0101960E9440 -:1018F000E30E8091E8008E778093E8000F900F90C0 -:101900000F90DF91CF910895CF93DF9300D01F9276 -:10191000CDB7DEB72091DE01243021F522E0298306 -:101920009B838A8383E08093E9008FEF9091E800A6 -:10193000815095FD06C095ED9A95F1F70000811153 -:10194000F5CF8091E80085FF0DC040E050E063E0F6 -:1019500070E0CE0101960E94E30E8091E8008E7740 -:101960008093E8000F900F900F90DF91CF91089532 -:101970002091DE012430F1F422E02093E9002FEFE2 -:101980003091E800215035FD06C035ED3A95F1F76C -:1019900000002111F5CF2091E80025FF0BC040E0A9 -:1019A00050E065E070E00E94E30E8091E8008E77E1 -:1019B0008093E8000895CF93DF932091DE012430D7 -:1019C00039F521E02093E9002FEF3091E800215014 -:1019D00035FD06C035ED3A95F1F700002111F5CF40 -:1019E0002091E80025FF14C0EC0140E050E068E0E1 -:1019F00070E00E94E30E8091E8008E778093E8000B -:101A000088E0FE01A3E6B1E001900D928A95E1F72E -:101A1000DF91CF91089588ED91E00E945D0680915D -:101A2000DD01811109C00E9472100E94C5108091D1 -:101A3000E20084608093E200089584ED91E00E94CA -:101A40005D061092DD01089580ED91E00C945D0635 -:101A5000209161012F5F822F62E30E943F2A992328 -:101A600019F0209361010895109261018091620143 -:101A7000882371F18091DE01843041F58091E90085 -:101A80008F702091EC00922F917020FD90E8892BAF -:101A900094E09093E9009091EB0090FF14C0909136 -:101AA000EE0097FF10C09091E80095FF03C01092E0 -:101AB000F100F9CF9091E80090FF05C09091E80007 -:101AC0009E779093E8008F708093E90010926201F6 -:101AD000089542E061EC81E00E94EC0F42E061EC8D -:101AE00082E00E94EC0F42E061EC83E00E94EC0F88 -:101AF00042E261EC84E00C94EC0F8091E0018330D1 -:101B000009F453C030F4813071F0823009F48CC094 -:101B100008958A3009F478C08B3009F45EC08930AA -:101B200009F09AC020C08091DF01813A09F094C089 -:101B30008091E800877F8093E8008091E301909195 -:101B4000E401892B21F468E083E691E003C060E0C2 -:101B500080E090E070E00E942E0F8091E8008B778B -:101B60008093E80008958091DF01813209F074C00C -:101B70008091E3019091E401892B09F06DC080917F -:101B8000E800877F8093E8008091E80082FD05C02F -:101B90008091DE018111F8CF5FC08091F1008093C8 -:101BA0006B018091E8008B7753C08091DF01813A0F -:101BB00009F052C08091E3019091E401892B09F072 -:101BC0004BC08091E800877F8093E8008091E80017 -:101BD00080FFFCCF80910B0136C08091DF01813204 -:101BE000D9F58091E3019091E401892BA9F58091C9 -:101BF000E800877F8093E8000E9421108091E10136 -:101C000080930B010C9435188091DF01813221F50E -:101C10008091E800877F8093E8000E9421108091E6 -:101C2000E20180936C0108958091DF01813AA1F473 -:101C30008091E800877F8093E8008091E80080FF32 -:101C4000FCCF80916C018093F1008091E8008E7749 -:101C50008093E8000C942110089584B7877F84BF97 -:101C600088E10FB6F89480936000109260000FBE78 -:101C700090E080E80FB6F894809361009093610043 -:101C80000FBE0E94C5130E9472100E94C510809161 -:101C9000E20084608093E2008DEE9BE00E94721E61 -:101CA00078940E9418130E94C71381E091E00E946B -:101CB00033138FEB91E00E945D068091DE01853049 -:101CC00089F48BEB91E00E945D060E94AF1E80912B -:101CD000DC01882391F30E94DA1E882371F30E94AD -:101CE000CD0EEBCF0E94EB13E8CF292F3327233003 -:101CF0003105C9F064F42130310581F0223031051D -:101D000009F043C084E790E02AEF31E042C021327D -:101D10003105F1F02232310541F137C082E190E026 -:101D20002EE632E036C099278130910541F08230AD -:101D3000910541F0892B49F5E6EFF1E005C0ECEEA5 -:101D4000F1E002C0ECEDF1E0849190E09F0121C050 -:101D50006430D8F4E62FF0E0EE0FFF1FE05DFE4F99 -:101D60002081318189E090E014C0643070F470E02B -:101D7000FB01EE0FFF1FE85DFE4F20813181FB016B -:101D8000EC5DFE4F808190E004C080E090E020E0B8 -:101D900030E0FA0131832083089584E089BD86E034 -:101DA00089BD09B400FEFDCF8091D8008F7D80935E -:101DB000D8008091E00082608093E0008091E00094 -:101DC00081FDFCCF0895CF92DF92EF92FF920F93A7 -:101DD0001F93CF93DF93EC018B016A010E944010A7 -:101DE000811133C0C114D10439F0F6018081918191 -:101DF000081B190BC80FD91FE12CF12C0115110577 -:101E000019F18091E80085FD16C08091E8008E7779 -:101E10008093E800C114D10449F0F60180819181DA -:101E2000E80EF91EF182E08285E00FC00E944010AA -:101E3000882321F30AC089918093F1000150110990 -:101E4000FFEFEF1AFF0ADACF80E0DF91CF911F9109 -:101E50000F91FF90EF90DF90CF9008952091E501D2 -:101E60003091E6012617370748F06115710539F4FE -:101E70002091E8002E772093E80001C0B90140E0EE -:101E80006115710591F12091DE01222309F440C012 -:101E9000253009F43FC02091E80023FD3DC020918A -:101EA000E80022FD2FC02091E80020FFE9CF20911B -:101EB000F20030E0FC01CF016115710559F02830C6 -:101EC000310540F481918093F100615071092F5FD9 -:101ED0003F4FF1CF41E02830310509F040E020913B -:101EE000E8002E772093E800CBCF4111CCCF0AC079 -:101EF0008091DE01882361F0853061F08091E800F7 -:101F000083FD0AC08091E80082FFF2CF80E008954F -:101F100082E0089583E0089581E008952091E5012D -:101F20003091E6012617370748F06115710539F43D -:101F30002091E8002E772093E80001C0B901FC0150 -:101F400020E06115710579F18091DE01882309F4A3 -:101F50003DC0853009F43CC08091E80083FD3AC063 -:101F60008091E80082FD2CC08091E80080FFE9CFDD -:101F70008091F20090E06115710559F0883091056B -:101F800040F424912093F10031966150710901963B -:101F9000F2CF21E0089709F020E08091E8008E77E9 -:101FA0008093E800CECF2111CFCF0AC08091DE010F -:101FB000882361F0853061F08091E80083FD0AC0DC -:101FC0008091E80082FFF2CF80E0089582E00895DA -:101FD00083E0089581E00895982F953058F5909307 -:101FE000E900981739F07091EC002091ED005091C4 -:101FF000F00003C0242F762F50E021FF19C030914C -:10200000EB003E7F3093EB003091ED003D7F30934D -:10201000ED003091EB0031603093EB007093EC00F9 -:102020002093ED005093F0002091EE0027FF07C0B1 -:102030009F5FD3CF8F708093E90081E0089580E0A7 -:1020400008958091DF0187FF11C08091E80082FD33 -:1020500005C08091DE018111F8CF11C08091E800A8 -:102060008B770BC08091DE01882349F08091E800D6 -:1020700080FFF8CF8091E8008E778093E800089584 -:102080002091E4003091E50095E64091EC00842F2A -:10209000817040FF22C08091E80080FD1CC08091CB -:1020A000DE01882391F0853091F08091EB0085FD71 -:1020B00010C04091E4005091E5004217530729F306 -:1020C0009A01915011F784E0089582E0089583E029 -:1020D000089581E0089580E008954091E80042FF6E -:1020E000DECF08950E94CF100E94D210E0EEF0E003 -:1020F000808181608083E8EDF0E080818F7780834C -:1021000019BCE3E6F0E08081816080831092DD01FC -:1021100008950E94CF100E94D2108091D8008F772E -:102120008093D8008091D80080688093D8008091F7 -:10213000D8008F7D8093D80084E089BD86E089BD7A -:1021400009B400FEFDCF1092DE011092DA01109268 -:10215000DC011092DB0142E060E080E00E94EC0FC5 -:102160008091E1008E7F8093E1008091E2008160A8 -:102170008093E2008091E20088608093E200809189 -:10218000E0008E7F8093E0000895E3E6F0E0808138 -:102190008E7F808381E08093DD010C948910109202 -:1021A000E20008951092E10008951F920F920FB679 -:1021B0000F9211242F933F934F935F936F937F93CD -:1021C0008F939F93AF93BF93EF93FF938091E10021 -:1021D00082FF0BC08091E20082FF07C08091E10086 -:1021E0008B7F8093E1000E94280D8091E10080FFA9 -:1021F00018C08091E20080FF14C08091E2008E7FC1 -:102200008093E2008091E20080618093E2008091FF -:10221000D80080628093D80019BC1092DE010E9421 -:102220001D0D8091E10084FF30C08091E20084FFA9 -:102230002CC084E089BD86E089BD09B400FEFDCFD5 -:102240008091D8008F7D8093D8008091E1008F7EAF -:102250008093E1008091E2008F7E8093E200809184 -:10226000E20081608093E2008091DA01882311F01E -:1022700084E007C08091E30087FD02C081E001C0D7 -:1022800083E08093DE010E940B0D8091E10083FFCB -:1022900029C08091E20083FF25C08091E100877F03 -:1022A0008093E10082E08093DE011092DA01809158 -:1022B000E1008E7F8093E1008091E2008E7F809329 -:1022C000E2008091E20080618093E20042E060E001 -:1022D00080E00E94EC0F8091F00088608093F00015 -:1022E0000E94240DFF91EF91BF91AF919F918F912B -:1022F0007F916F915F914F913F912F910F900FBE02 -:102300000F901F9018951F920F920FB60F921124E5 -:102310002F933F934F935F936F937F938F939F93ED -:10232000AF93BF93CF93DF93EF93FF93C091E900F7 -:10233000CF708091EC00D82FD17080FDD0E8109242 -:10234000E9008091F000877F8093F00078940E94EC -:10235000C7111092E9008091F00088608093F0002E -:10236000CD2BCF70C093E900FF91EF91DF91CF911A -:10237000BF91AF919F918F917F916F915F914F919D -:102380003F912F910F900FBE0F901F9018951F93A4 -:10239000CF93DF93CDB7DEB7AA970FB6F894DEBF21 -:1023A0000FBECDBFEFEDF1E088E08E0F9091F10010 -:1023B00091938E13FBCF0E947D0D8091E80083FFE7 -:1023C0001FC18091DF019091E001492F50E04A3018 -:1023D000510508F015C1FA01E65CFF4F0C945F2A25 -:1023E000803881F0823809F00BC18091E3018F7051 -:1023F0008093E9008091EB0085FB882780F910929B -:10240000E90006C08091DB019091DC0191118260AE -:102410009091E800977F9093E8008093F1001092EC -:10242000F100C8C0282F2D7F09F0EAC0882319F0D9 -:10243000823061F0E5C08091E101813009F0E0C0B7 -:10244000933009F080E08093DC012BC08091E101A2 -:10245000811127C08091E3018F7009F4D1C080936E -:10246000E9002091EB0020FF1CC0933021F4809103 -:10247000EB00806214C09091EB0090619093EB00B0 -:1024800021E030E0A90102C0440F551F8A95E2F710 -:102490004093EA001092EA008091EB0088608093FC -:1024A000EB001092E9008091E800877F86C08111DF -:1024B000A7C01091E1011F778091E3008078812B04 -:1024C0008093E3008091E800877F8093E8000E947A -:1024D00021108091E80080FFFCCF8091E3008068AC -:1024E0008093E300111102C082E001C083E0809379 -:1024F000DE0186C08058823008F082C08091E10100 -:102500009091E2018C3D53E0950779F583E08A8351 -:102510008AE289834FB7F894DE01139620E03EE00B -:1025200051E2E32FF0E050935700E49120FF03C005 -:10253000E295EF703F5FEF708E2F90E0EA3010F081 -:10254000C79601C0C0968D939D932F5F243149F7A4 -:102550004FBF8091E800877F8093E8006AE270E0D7 -:10256000CE0101960E942E0F14C0AE014F5F5F4F47 -:102570006091E3010E94750EBC01009709F440C010 -:102580009091E800977F9093E80089819A810E945A -:102590008E0F8091E8008B778093E80031C08038FF -:1025A00079F58091E800877F8093E8008091DA01D7 -:1025B0008093F1008091E8008E778093E8000E947C -:1025C00021101EC081111CC09091E1019230C0F415 -:1025D0008091E800877F8093E8009093DA010E9461 -:1025E00021108091DA01811106C08091E30087FDFE -:1025F00002C081E001C084E08093DE010E94690D89 -:102600008091E80083FF0AC08091E800877F809373 -:10261000E8008091EB0080628093EB00AA960FB6F1 -:10262000F894DEBF0FBECDBFDF91CF911F9108950B -:10263000CF938091DE018823A1F0C091E900CF7093 -:102640009091EC00892F817090FD80E8C82B10924A -:10265000E9008091E80083FD0E94C711CF70C0930C -:10266000E900CF91089590937201809371010895CC -:10267000E0917101F0917201309721F00190F081A9 -:10268000E02D099480E00895EF92FF920F931F933D -:10269000CF93DF93E0917101F09172013097B1F126 -:1026A0008C010280F381E02D09958091C90182FFA0 -:1026B0002DC080FF04C08AE693E00E945D06E80119 -:1026C00018E084E6E82E83E0F82E8091C90180FFAF -:1026D0000BC088811F928F93FF92EF920E94F606A3 -:1026E0000F900F900F900F90115021961111EDCF78 -:1026F0008091C90180FF0AC082E693E0DF91CF910B -:102700001F910F91FF90EF900C945D06DF91CF9198 -:102710001F910F91FF90EF900895E0917101F0915A -:102720007201309721F00480F581E02D099408951D -:1027300020916F01309170018217930771F090938F -:10274000700180936F01E0917101F09172013097F7 -:1027500021F00680F781E02D0994089520916D0104 -:1027600030916E018217930771F090936E01809300 -:102770006D01E0917101F0917201309721F00084B8 -:10278000F185E02D0994089508950C94C4130E94D6 -:10279000111F0E94E20A0C94D31FCF93DF931F9264 -:1027A000CDB7DEB79091C90192FF10C090FF0EC067 -:1027B0001F928F932CE733E03F932F9389830E94DE -:1027C000F6060F900F900F900F9089810F90DF9178 -:1027D000CF910C94FF069F92AF92BF92CF92DF925F -:1027E000EF92FF920F931F93CF93DF9300D000D00F -:1027F00000D0CDB7DEB70E94210B07E010E0AA247D -:10280000A394B12C902E802F0E949C0B98012C58E1 -:102810003E4F6901F901F080F826A1F40150110939 -:1028200088F78FEF89838A831B820E941A1F816039 -:10283000782F9D838C8349815A816B818D810E9481 -:1028400082142FC09091C90191FF04C08E830E9411 -:10285000A20B8E8127E030E0A501022E01C0440FBB -:102860000A94EAF7E42E4F21C1F029839A828E213F -:1028700091E009F490E09B830E941A1F8160782FF9 -:102880009D838C8349815A816B818D810E94821442 -:10289000F6018081E826E08204C021503109E0F68B -:1028A000BDCF0E944123109173010E943813181765 -:1028B000B9F00E9438138093730126960FB6F894EE -:1028C000DEBF0FBECDBFDF91CF911F910F91FF9063 -:1028D000EF90DF90CF90BF90AF909F900C94CD136E -:1028E00026960FB6F894DEBF0FBECDBFDF91CF9115 -:1028F0001F910F91FF90EF90DF90CF90BF90AF901E -:102900009F900895CF93DF93CDB7DEB72B970FB687 -:10291000F894DEBF0FBECDBF4F83588769877A8793 -:102920008B87DE01119686E0FD0111928A95E9F709 -:1029300085E0FE01379601900D928A95E1F7498175 -:102940005A816B817C818D819E810E94E21A2B9637 -:102950000FB6F894DEBF0FBECDBFDF91CF910895C3 -:10296000CF93882309F4C2C0C82F823859F40E943B -:10297000381381FDBBC089E30E94C01D0E94431E25 -:1029800089E30CC0833879F40E94381380FDAEC00F -:1029900083E50E94C01D0E94431E83E50E94DD1D49 -:1029A000CF910C94431E843859F40E94381382FD51 -:1029B0009DC087E40E94C01D0E94431E87E4EECFA5 -:1029C0008CEF8C0F813A48F48C2F0E94AF27811135 -:1029D0008DC08C2F0E94C01DE3CF80E28C0F883009 -:1029E00048F4C77081E001C0880FCA95EAF70E94D9 -:1029F000FC1DD6CF8BE58C0F833078F4C53A29F0D7 -:102A0000C63A31F083E890E005C081E890E002C06A -:102A100082E890E0CF910C94981388E58C0F833175 -:102A200008F064C0C83A39F1C93A41F1CA3A49F1EB -:102A3000CB3A51F1CC3A59F1CD3A61F1C03B69F151 -:102A4000CE3A71F1CF3A79F1C13B81F1C23B89F1C4 -:102A5000C33B91F1C43B99F1C53BA1F1C63BA9F140 -:102A6000C73BB1F1C83BB9F1C93BC1F1CA3BC9F1A0 -:102A700080E090E038C082EE90E035C089EE90E0D2 -:102A800032C08AEE90E02FC085EB90E02CC086EB40 -:102A900090E029C087EB90E026C08CEC90E023C04A -:102AA0008DEC90E020C083E891E01DC08AE891E0C1 -:102AB0001AC082E991E017C084E991E014C081E274 -:102AC00092E011C083E292E00EC084E292E00BC07B -:102AD00085E292E008C086E292E005C087E292E0DB -:102AE00002C08AE292E0CF910C94AE13CF91089588 -:102AF000882309F44BC0823859F40E94381381FFAF -:102B000045C089E30E94C01D0E94431E89E30CC09A -:102B1000833871F40E94381380FF38C083E50E9427 -:102B2000C01D0E94431E83E50E94DD1D0C94431EC0 -:102B3000843859F40E94381382FF28C087E40E9429 -:102B4000C01D0E94431E87E4EFCF9CEF980F913A7F -:102B500058F390E2980F983050F4877091E001C0DC -:102B6000990F8A95EAF7892F0E94021EDFCF9BE515 -:102B7000980F933020F480E090E00C949813885ADA -:102B8000833120F480E090E00C94AE130895882304 -:102B900021F00E94FC1D0C94431E0895882321F00F -:102BA0000E94021E0C94431E08957F928F929F9262 -:102BB000AF92BF92CF92DF92EF92FF920F931F934B -:102BC000CF93DF931F92CDB7DEB77C01C62E772E51 -:102BD000FC01058102950F70128111110E94191ECE -:102BE0000E94B91D882379F0112369F080E28C0DD1 -:102BF000883048F082E00E94A21D0E94B91D91E039 -:102C0000D82ED92601C0D12CE72DE295EF70F0E047 -:102C1000EC5BFF4F0C945F2A872D807F072D0F7090 -:102C2000882311F00295007F112389F0002309F415 -:102C300098C180E28C0D883020F4802F0E94FC1D0A -:102C400003C0802F0E940C1E0E94431E8AC18C2D3F -:102C50000E947815002309F49DC180E28C0D883014 -:102C600020F4802F0E94021E03C0802F0E94121E9B -:102C70000E94431E8FC1872D807F972D9F708032C9 -:102C800011F4892F03C0892F8295807FCC2021F0F9 -:102C9000F1E0CF16A1F01DC0112339F0002319F186 -:102CA000013009F50E942C1E75C1002319F0013076 -:102CB00009F470C189830E942F1E898110C11123DC -:102CC00021F0063008F066C10EC0053008F062C180 -:102CD00006C1112359F0002331F0F701958190FFCF -:102CE00040C19F7095830E94C71554C1002309F409 -:102CF000F6C03DC1872D86958695837090E000973C -:102D000019F0019761F046C1112321F08C2D972D08 -:102D1000937002C080E090E00E9498133BC11123A1 -:102D200021F08C2D972D937002C080E090E00E94DE -:102D3000AE1330C18C2D112319F00E94C72102C09F -:102D40000E942F220E94B42225C1872D837009F092 -:102D500052C011111FC18C2D829586958770880FE6 -:102D6000880F9C2D9F70892E912CA12CB12C082EA0 -:102D700004C0880C991CAA1CBB1C0A94D2F7C4FE80 -:102D800014C00FE010E020E030E0B901A80104C059 -:102D9000440F551F661F771F8A95D2F7CB01BA01E2 -:102DA000609570958095909503C060E070E0CB01D0 -:102DB000272D26952695237030E02230310569F0C5 -:102DC0002330310589F0682979298A299B29213006 -:102DD000310571F00E942E1CDDC0682979298A29ED -:102DE0009B290E944A1CD6C00E942E1CC501B4011A -:102DF0000E94121CCFC0112319F0872D817001C0D1 -:102E00008695882309F4C6C08C2D82958695877097 -:102E1000880F880F9C2D9F70892E912CA12CB12C8E -:102E2000082E04C0880C991CAA1CBB1C0A94D2F75B -:102E3000C4FE14C00FE010E020E030E0B901A801AA -:102E400004C0440F551F661F771F8A95D2F7CB0128 -:102E5000BA01609570958095909503C060E070E030 -:102E6000CB01272D269526952370422F50E0423026 -:102E7000510569F04330510589F0682979298A297B -:102E80009B294130510571F00E94081D83C06829BB -:102E900079298A299B290E94241D7CC00E94081D33 -:102EA000C501B4010E94EC1C75C08C2D90E0FC01A2 -:102EB000E05EF109E531F10508F04FC0EC5AFF4F33 -:102EC0000C945F2A0C2D0F70872D8F71112321F028 -:102ED0000E94851C802F07CF0E94A61C802F0E9475 -:102EE000CE1558C0112341F0053008F053C0872D8E -:102EF0008F710E94CB1C4EC0063008F04BC0F7CF3C -:102F0000112339F0872D8F710E94851C43C0112336 -:102F1000C9F3872D8F710E94A61C3CC0112329F094 -:102F2000872D8F710E94701C35C00E94661C32C0B4 -:102F3000112351F0172D1F71812F0E94851C63E012 -:102F4000812F0E94991D26C081E00E94A21D02309F -:102F500008F182E00E94A21D1DC0112331F0002360 -:102F600089F28C2D0E94B01415C0002391F28C2D93 -:102F70000E9478150FC0472D4F706C2DC7010E941D -:102F8000CD070E948A1B06C0472D4F706C2DC701CC -:102F90000E94D007DD20F9F00E94951D80FD1BC026 -:102FA000F70112820E948F1D0E94851CC7010E949A -:102FB000FA170E948F1D0F90DF91CF911F910F91F3 -:102FC000FF90EF90DF90CF90BF90AF909F908F9049 -:102FD0007F900C94A61C0F90DF91CF911F910F91C1 -:102FE000FF90EF90DF90CF90BF90AF909F908F9029 -:102FF0007F9008950F931F93CF93DF93EC01888107 -:1030000099812B813C81232BB9F09F3F11F48F3F95 -:1030100099F0CE010E942107882371F0688179819F -:103020008A810E948B1D8C010E94401D0E94071CFA -:10303000B801CE010E94D515DF91CF911F910F915C -:1030400008950E94191E0E94291E0E94EE1D0E94D2 -:10305000431E0E94E9230E94B42280E090E00E9477 -:10306000981380E090E00C94AE130E94091E0C941B -:1030700021180E94801D292F22952F7030E02C30BE -:1030800031054CF42A3031056CF4225031092230DC -:103090003105A8F407C02C30310569F02F30310517 -:1030A00051F00DC0803F69F018F4803E40F409C033 -:1030B000843F29F406C093FB882780F9089580E0B7 -:1030C000089581E00895CF93DF9300D000D01F9240 -:1030D000CDB7DEB70F900F900F900F900F90DF914C -:1030E000CF910895CF93DF9300D000D000D0CDB71B -:1030F000DEB726960FB6F894DEBF0FBECDBFDF91C8 -:10310000CF910895CF93DF93C0917C0180917D0191 -:10311000C817A1F0D0E0CE0166E070E00E942E2A30 -:10312000FC01E258FE4F40815181628173818481AC -:1031300095810E9472182196C770E8CFDF91CF91D8 -:1031400008954091AE015091AF016091B00170912E -:10315000B1018091B2019091B3010C947218CF9398 -:10316000DF938091B30182958F7009F05CC08091EC -:10317000B001882309F457C020917C01D0917D01D2 -:103180004091AE01C091AF01E091B101F091B20167 -:103190002D1709F448C030E0309709F440C0CF3F04 -:1031A00011F44F3FE1F1C90166E070E00E942E2A60 -:1031B000DC01A258BE4F11968C911197C8132FC0F5 -:1031C0008C9148132CC012968C911297811127C0B4 -:1031D00013968D919C9114978E179F0708F4019771 -:1031E0008E1B9F0B883C9105D0F48091B3018F70AA -:1031F00080618093B301C90166E070E00E942E2ACD -:10320000FC01ED57FE4F90819F70906190838EEA94 -:1032100091E00E94FA17DF91CF910C9482182F5FF2 -:103220003F4F2770B5CFDF91CF910895BF92CF92D6 -:10323000DF92EF92FF920F931F93CF93DF93CDB75F -:10324000DEB761970FB6F894DEBF0FBECDBF8C011D -:1032500085E0F801DE011D9601900D928A95E1F757 -:10326000D8014C9111962C9111971296EC901297CF -:103270001396CD90DC9014975091AE016091AF0100 -:103280008091B1019091B201009709F46EC16F3F36 -:1032900019F45F3F09F469C1B090B001BB2009F493 -:1032A000C3C03091B301C816D90628F0F601E81B57 -:1032B000F90BCF0104C0809590958C0D9D1DFF24C6 -:1032C000F394883C910588F0F12C307F09F0CBC055 -:1032D0007C2DD98AC88A522F6E2D89890E94631845 -:1032E0008EEA91E00E94FA17B4C0832F807F09F024 -:1032F00049C0621314C0541312C0E11010C03F70D3 -:1033000030613093B3010E94A1188EEA91E00E94CF -:10331000FA178091B301D80115968C9331C0CD284E -:1033200031F12F3F11F44F3F11F1FE2CE1101FC07E -:10333000E0917C0130917D01E31709F45CC0F0E07D -:10334000CF0166E070E00E942E2ADC01A258BE4F39 -:1033500011968C911197281307C08C91481304C0C3 -:1033600012968C91811103C03196E770E5CFFE2C47 -:10337000EE2009F416C18091B30181608093B301FE -:10338000F12C0FC1621308C0541306C0E11004C031 -:103390008091B301D801C1C04D872E878D859E8550 -:1033A0000E9439188823E1F1EE20D1F12091B30178 -:1033B000822F82958F7090E0029774F08091AE0119 -:1033C0009091AF0198878F831986DB86CA862C87F8 -:1033D000CE0107960E94FA1786E0F801AEEAB1E046 -:1033E00001900D928A95E1F70E94AF180E94A118F2 -:1033F000FF24F394D6C04D872E878D859E850E942D -:10340000801D292F22952F7030E0223031050CF0DD -:10341000BCC09F7009F0B6C0805E883008F4C1C09F -:10342000C8010E94FA17E4CFC816D90608F453C0A1 -:10343000F601E81BF90BCF01883C910508F450C058 -:10344000F12C7C2DD98AC88A522F6E2D89890E9431 -:103450006318EEEAF1E086E0DF011D928A95E9F754 -:103460000E94A1189EC0621314C0541312C0E11030 -:1034700010C08091B301F8018583C8010E94FA173A -:1034800086E0EEEAF1E0DF011D928A95E9F7FB2C78 -:1034900088C04D872E878D859E850E943918882388 -:1034A00009F4BECFEE2009F4BBCF2091B301822FE7 -:1034B00082958F7090E002970CF48ECF8091AE01D0 -:1034C0009091AF019A8389831B82DD82CC822E8307 -:1034D000CE0101967FCF809590958C0D9D1DACCF30 -:1034E000FE2CEE2009F49CCF62132EC054132CC086 -:1034F0002091B30120FD1FC0822F82958F70D9F0DB -:10350000D80115962C9315978F3049F08F5F982F1F -:103510009295907F822F8F70892B15968C93C8017E -:103520000E94FA1786E0F801AEEAB1E001900D9230 -:103530008A95E1F795CF86E0F801AEEAB1E0019017 -:103540000D928A95E1F72DC04D872E878D859E853A -:103550000E943918811140CF8091B301816080931E -:10356000B301C8010E94FA171CC0EE2009F458CF1D -:103570004D872E878D859E850E943918882309F4F2 -:103580004FCF2ACF811148CF0CC0243031050CF029 -:1035900047CF9F7009F440CFF8019581907F09F0E3 -:1035A0003BCF8F2D61960FB6F894DEBF0FBECDBF17 -:1035B000DF91CF911F910F91FF90EF90DF90CF900F -:1035C000BF900895CF93DF93CDB7DEB72C970FB69A -:1035D000F894DEBF0FBECDBF4F83588769877A87C7 -:1035E0008B879C87CE0107960E941619882371F05D -:1035F0008F8198852A853B85232B09F43FC09F3F07 -:1036000009F068C08F3F09F065C038C086E0FE0150 -:103610003796DE01119601900D928A95E1F76F8140 -:103620007885EA85FB85309749F17F3F11F46F3F3C -:1036300029F180917D0190E09C012F5F3F4F277021 -:10364000332740917C0150E02417350709F44BC023 -:1036500069837A83FD83EC8366E070E00E942E2A02 -:10366000DC01A258BE4F96E0FE01319601900D920A -:103670009A95E1F720937D010E94821880917C0148 -:1036800090917D018917E9F190E066E070E00E9479 -:103690002E2A82589E4F0E941619882391F18091FC -:1036A0007C0190E066E070E00E942E2AFC01E25866 -:1036B000FE4F4081518162817381848195810E9496 -:1036C000721880917C0190E0019687709927809311 -:1036D0007C01D4CF4F81588569857A858B859C85FF -:1036E0000E947218CBCF0E94351810927D01109263 -:1036F0007C01EEEAF1E086E0DF011D928A95E9F7B0 -:10370000BDCF2C960FB6F894DEBF0FBECDBFDF91B4 -:10371000CF910895EF92FF920F931F93CF93DF9372 -:103720008C01009709F46CC0F12CEE24E394E801BD -:103730002196F8018491843740F4843008F051C018 -:10374000813081F0823019F15BC0853709F444C0C3 -:10375000A8F19CE7980F903708F052C08F770E942D -:10376000781541C00E5F1F4FFE01C49180E28C0F9F -:10377000883048F4C7708E2D01C0880FCA95EAF7CB -:103780000E941C1E14C08C2F0E94B0142DC00E5F0E -:103790001F4FFE01C49180E28C0F883058F4C7702F -:1037A0008E2D01C0880FCA95EAF70E94221E0E9442 -:1037B000431E1AC08C2F0E94781516C00E5F1F4F33 -:1037C000FE01C491CC2381F08FE99FE00197F1F7CE -:1037D00000C00000C150F6CF0E5F1F4FFE01F490F5 -:1037E00003C00E94B0148E018F2D882309F49FCF4F -:1037F000EFE9FFE03197F1F700C000008150F5CF0D -:10380000DF91CF911F910F91FF90EF900895089550 -:103810006093B8017093B9018093BA019093BB0192 -:103820000C9421180F931F930091B8011091B901C6 -:103830002091BA013091BB01DC01CB01802B912B8F -:10384000A22BB32B8093B8019093B901A093BA0136 -:10385000B093BB011F910F910C9421180F931F93EC -:103860000091B8011091B9012091BA013091BB01CA -:10387000DC01CB0180239123A223B3238093B801E1 -:103880009093B901A093BA01B093BB011F910F911E -:103890000C9421180F931F930091B8011091B90156 -:1038A0002091BA013091BB01DC01CB018027912727 -:1038B000A227B3278093B8019093B901A093BA01CE -:1038C000B093BB011F910F910C9421181092B40179 -:1038D0001092B5011092B6011092B7010C94211804 -:1038E00041E050E060E070E004C0440F551F661FE7 -:1038F000771F8A95D2F74093B4015093B501609336 -:10390000B6017093B7010C94211841E050E060E0DB -:1039100070E004C0440F551F661F771F8A95D2F7C9 -:103920008091B4019091B501A091B601B091B70119 -:10393000482B592B6A2B7B2B4093B4015093B50134 -:103940006093B6017093B7010C94211841E050E0E8 -:1039500060E070E004C0440F551F661F771F8A9512 -:10396000D2F740955095609570958091B4019091F3 -:10397000B501A091B601B091B701482359236A233C -:103980007B234093B4015093B5016093B6017093CB -:10399000B7010C94211841E050E060E070E004C0F1 -:1039A000440F551F661F771F8A95D2F78091B40187 -:1039B0009091B501A091B601B091B7014827592760 -:1039C0006A277B274093B4015093B5016093B601F9 -:1039D0007093B7010C9421180F931F930091B401B9 -:1039E0001091B5012091B6013091B701DC01CB01F6 -:1039F000802B912BA22BB32B8093B4019093B50114 -:103A0000A093B601B093B7011F910F910C942118A8 -:103A10000F931F930091B4011091B5012091B6014D -:103A20003091B701DC01CB0180239123A223B32382 -:103A30008093B4019093B501A093B601B093B70100 -:103A40001F910F910C9421180F931F930091B401B3 -:103A50001091B5012091B6013091B701DC01CB0185 -:103A600080279127A227B3278093B4019093B501B3 -:103A7000A093B601B093B7011F910F910C94211838 -:103A80000895CF92DF92EF92FF920F931F93CF93FF -:103A9000DF938C01C090B801D090B901E090BA01D9 -:103AA000F090BB018091B4019091B501A091B60155 -:103AB000B091B701C82AD92AEA2AFB2ACFE1D0E07F -:103AC000D701C6010C2E04C0B695A795979587958A -:103AD0000A94D2F780FF06C0B8018C2F0E942F0AEB -:103AE000019721F4219760F780E001C08C2FDF91CE -:103AF000CF911F910F91FF90EF90DF90CF9008959D -:103B0000CF93DF93EC010E94411DBE010E942F0A5A -:103B1000DF91CF910895CB010E94801D089580917F -:103B2000BC0185958595859508958091BC01877028 -:103B30000895982F990F990F990F692B6093BC01E5 -:103B40000C94851C2091BC01809582238093BC013C -:103B5000982F977069F430E0482F552747FD50950E -:103B60002417350729F08595859585950C94A61C15 -:103B700008959091BC01977081E009F480E0089568 -:103B800020910C0130910D01F90132969FEF40E038 -:103B90005191581789F09F3F19F4511101C0942F8A -:103BA0004F5F4630A9F79F3F39F0F901E90FF11D4A -:103BB00097FDFA9582830895089520910C01309124 -:103BC0000D01F9013296285F3F4F9081981301C093 -:103BD00010823196E217F307C1F7089581E090E073 -:103BE000E0910C01F0910D01E80FF91F1082019690 -:103BF00088309105A9F708959091C801892B809389 -:103C0000C801089580959091C80189238093C801C7 -:103C100008951092C80108959091C701892B80934F -:103C2000C701089580959091C70189238093C701AA -:103C300008951092C70108959091C601892B809331 -:103C4000C601089580959091C60189238093C6018D -:103C500008951092C60108958093BD0108951092B1 -:103C6000BD01089580910C0190910D01FC013196E8 -:103C70009C01285F3F4F80E0919191118F5FE21787 -:103C8000F307D1F70895E0910C01F0910D018091B7 -:103C9000C8018083E0910C01F0910D019081809129 -:103CA000C701892B8083E0910C01F0910D01908177 -:103CB0008091C601892B80838091BD01882361F0AA -:103CC000E0910C01F0910D019081892B80830E947D -:103CD000321E81111092BD0180910C0190910D0155 -:103CE0000C9444139093430180934201089520E083 -:103CF000009739F0AC0141505109842395232F5F7F -:103D0000F7CF822F08958295982F9C7C292F269596 -:103D10002695982F9373990F990F922B892F8A7A52 -:103D200086959575990F892B08951F93CF93DF93EF -:103D30001F92CDB7DEB799830E94831E182F9981F9 -:103D4000892F0E94831E212F30E0322F2227A901C4 -:103D5000482BCA010F90DF91CF911F910895809158 -:103D6000DE01843021F11092CA0120E488E190E064 -:103D70000FB6F894A895809360000FBE2093600062 -:103D800080E00E94FF0683B7817F846083BF83B792 -:103D9000816083BF7894889583B78E7F83BF88E1E5 -:103DA0000FB6F89480936000109260000FBE0895E3 -:103DB000089508950E94D81E0E94210B0E94D91ECA -:103DC0000E94D40B91E0811101C090E0892F0895E9 -:103DD0001F920F920FB60F9211248F939F93AF9360 -:103DE000BF938091CA01811113C08091CB01909142 -:103DF000CC01A091CD01B091CE014196A11DB11D84 -:103E00008093CB019093CC01A093CD01B093CE01D0 -:103E1000BF91AF919F918F910F900FBE0F901F9008 -:103E2000189582E084BD93E095BD9AEF97BD80938D -:103E30006E0008952FB7F8948091CB019091CC013A -:103E4000A091CD01B091CE012FBF0895CF92DF9206 -:103E5000EF92FF920F931F932FB7F8944091CB01ED -:103E60005091CC016091CD017091CE012FBF6A01BC -:103E70007B01EE24FF248C0120E030E0C016D10647 -:103E8000E206F30610F4415051099A01281B390B40 -:103E9000C9011F910F91FF90EF90DF90CF9008958F -:103EA0001F920F920FB60F9211248F939F93AF938F -:103EB000BF938091CB019091CC01A091CD01B091A5 -:103EC000CE010196A11DB11D8093CB019093CC0131 -:103ED000A093CD01B093CE01BF91AF919F918F91EF -:103EE0000F900FBE0F901F9018950E947210F894BB -:103EF0002FEF87EA91E6215080409040E1F700C023 -:103F0000000087E090EBDC018093E8019093E901E9 -:103F1000A093EA01B093EB019CE088E10FB6F8941E -:103F2000A895809360000FBE90936000FFCFEF9242 -:103F3000FF920F931F93CF93DF93D82FC7E08C2F5F -:103F40000E949C0B07E010E0E82EF12CC701002E28 -:103F500002C0959587950A94E2F780FF09C0602F0B -:103F60007C2F80E00E94D107D81302C081E006C0F8 -:103F70000150110958F7C15010F780E0DF91CF913F -:103F80001F910F91FF90EF900895CF93C82F8CE26F -:103F90000E94971F882321F08C2FCF910C94971F9C -:103FA00080E0CF910895CF930E941B21811102C020 -:103FB0000E9401218CE993E00E945D06C5E6C15094 -:103FC00049F00E94210B8FE39CE90197F1F700C0B3 -:103FD0000000F5CF85E993E00E945D0689E20E942A -:103FE000C51F81110CC18AE20E94C51F81110E9468 -:103FF000012185E00E94C51F81110E94751F0E944A -:1040000026218093C90187E00E94C51F8823A9F15A -:104010008BE10E94C51F882351F08091C90181FB6B -:10402000222720F991E0922790FB81F90EC08EE0C3 -:104030000E94C51F882361F08091C90182FB22275D -:1040400020F991E0922790FB82F98093C90115C075 -:1040500080E10E94C51F9091C901882341F093FB24 -:10406000222720F981E0822780FB93F904C0892F61 -:10407000809580FB90F99093C9018091C9010E94BD -:104080002A210E9438218093E70180EE0E94C51FFB -:10409000882341F08091E701982F909590FB80F95B -:1040A0008093E70189E30E94C51F882359F080911E -:1040B000E70181FB222720F991E0922790FB81F90B -:1040C0008093E70182EE0E94C51F882359F08091FA -:1040D000E70182FB222720F991E0922790FB82F9E9 -:1040E0008093E70186EE0E94C51F882359F08091D6 -:1040F000E70183FB222720F991E0922790FB83F9C7 -:104100008093E70183EE0E94C51F882359F08091B8 -:10411000E70184FB222720F991E0922790FB84F9A4 -:104120008093E70185E30E94C51F882359F08091A1 -:10413000E70185FB222720F991E0922790FB85F982 -:104140008093E70181E30E94C51F882359F0809185 -:10415000E70186FB222720F991E0922790FB86F960 -:104160008093E70181E10E94C51F882359F0809167 -:10417000E70187FB222720F991E0922790FB87F93E -:104180008093E7018091E7010E943C2187E20E9431 -:10419000C51FC82F8EE10E94C51F8111C2608FE12B -:1041A0000E94C51F8111C46080E20E94C51F811159 -:1041B000C86081E20E94C51F8111C06182E20E9435 -:1041C000C51F8111C06283E20E94C51F8111C064B6 -:1041D00084E20E94C51F882311F0C06802C0CC236E -:1041E00029F08C2F0E9433216C2F03C00E942F21B5 -:1041F000682F70E080E090E0CF910C94081CCF9184 -:1042000008956DEE7EEF80E090E00E94992A60E0D4 -:1042100082E090E00E94872A60E083E090E00E94C4 -:10422000872A60E084E090E00E94872A60E085E0D1 -:1042300090E00C94872A80E090E00E94812A21E09F -:104240008D3E9E4F09F020E0822F089582E090E09D -:104250000C94792A682F82E090E00C94872A83E0FE -:1042600090E00C94792A682F83E090E00C94872AE0 -:1042700084E090E00C94792A682F84E090E00C941C -:10428000872A8091D10180FF0CC08091110190E0BC -:1042900065E070E00E942E2A959587959595879503 -:1042A0002EC081FF0AC08091110190E065E070E0AE -:1042B0000E942E2A9595879522C082FF08C0809182 -:1042C000110190E065E070E00E942E2A18C0209154 -:1042D000D2012223D1F030911001231780F7809171 -:1042E000110190E065E070E00E942E2A622F70E0DC -:1042F0000E942E2A632F70E00E944B2ACB01803847 -:10430000910530F4009731F0089585E090E008952C -:104310008FE7089581E008958091D10180FF08C062 -:1043200060910F0170E0759567957595679523C04D -:1043300081FF06C060910F0170E0759567951BC005 -:1043400082FF04C060910F0170E012C06091D20141 -:104350006623D1F020910E016217A0F780910F0122 -:1043600070E090E00E942E2A622F70E00E944B2A9B -:104370006038710528F46115710521F0862F0895C4 -:104380008FE7089581E0089561E070E0F4CF803F09 -:1043900021F40E944121819504C0813F29F40E94AB -:1043A00041218093D5010895823F21F40E9441214B -:1043B000819504C0833F29F40E9441218093D40158 -:1043C0000895893F19F40E948C2105C08A3F31F479 -:1043D0000E948C2181958093D60108958B3F21F412 -:1043E0000E948C21819504C08C3F29F40E948C216D -:1043F0008093D7010895843F21F48091D301816097 -:1044000017C0853F21F48091D301826011C0863F9F -:1044100021F48091D30184600BC0873F21F4809107 -:10442000D301886005C0883F31F48091D301806159 -:104430008093D30108958D3F21F48091D101816053 -:104440000BC08E3F21F48091D101826005C08F3F67 -:1044500029F48091D10184608093D1010895803F37 -:1044600039F48091D50187FF6CC01092D50169C0E5 -:10447000813F29F48091D5011816BCF362C0909158 -:10448000D401823F29F497FF5CC01092D40159C037 -:10449000833F19F41916CCF354C0893F41F480913D -:1044A000D60118160CF04DC01092D6014AC08A3FB2 -:1044B00029F48091D60187FF44C0F6CF8B3F39F4B1 -:1044C0008091D70187FF3DC01092D7013AC08C3F41 -:1044D00029F48091D7011816BCF333C0843F21F42E -:1044E0008091D3018E7F17C0853F21F48091D30145 -:1044F0008D7F11C0863F21F48091D3018B7F0BC04B -:10450000873F21F48091D301877F05C0883F31F434 -:104510008091D3018F7E8093D30113C08D3F21F40E -:104520008091D1018E7F0BC08E3F21F48091D1010B -:104530008D7F05C08F3F29F48091D1018B7F8093BF -:10454000D1018091D40181110EC08091D5018111DA -:104550000AC08091D601811106C08091D7018111D6 -:1045600002C01092D20108958091C90183FF7EC0DC -:1045700088ED93E00E945D068091D3011F928F9396 -:1045800083ED93E09F938F930E94F60681ED93E075 -:104590000E945D068091D401282F332727FD309596 -:1045A0003F938F938EEC93E09F938F930E94F60638 -:1045B0008CEC93E00E945D068091D501282F332773 -:1045C00027FD30953F938F9389EC93E09F938F93D2 -:1045D0000E94F60687EC93E00E945D068091D6016A -:1045E000282F332727FD30953F938F9384EC93E05A -:1045F0009F938F930E94F60682EC93E00E945D06E3 -:104600008091D701282F332727FD30953F938F9333 -:104610008FEB93E09F938F930E94F6068CEB93E0D1 -:104620000E945D068091D2011F928F9389EB93E0E7 -:104630009F938F930E94F60687EB93E00E945D069E -:104640008091D1011F928F9384EB93E09F938F937E -:104650000E94F60681EB93E00E945D068DB79EB73F -:104660004C960FB6F8949EBF0FBE8DBF83ED91E0C0 -:104670000E948D130E941A1F9093D0018093CF0146 -:1046800008951F93CF93DF938091CF019091D00134 -:104690000E94261FFC012091D201222329F0909133 -:1046A0001201892F90E007C08091130190E06AE029 -:1046B00070E00E942E2AE817F90708F486C080915E -:1046C000D401C091D501D091D6011091D7018111AB -:1046D00007C0C11176C0D11174C0111172C075C06C -:1046E0002F3F19F02F5F2093D201181624F40E9457 -:1046F00041218093D4018091D40187FF05C00E949D -:10470000412181958093D4011C1624F40E944121FB -:104710008093D5018091D50187FF05C00E9441217A -:1047200081958093D5016091D401662339F1C091C0 -:10473000D501CC2319F1772767FD7095872F972F27 -:104740000E94372923E333E343E35FE30E949B297D -:104750000E9404296093D4016C2F772767FD709520 -:10476000872F972F0E94372923E333E343E35FE347 -:104770000E949B290E9404296093D5011D1624F4F0 -:104780000E948C218093D6018091D60187FF05C0BD -:104790000E948C2181958093D601111624F40E94E9 -:1047A0008C218093D7018091D70187FF05C00E949B -:1047B0008C2181958093D701DF91CF911F910C942B -:1047C000B4222F3F09F08ECF96CFDF91CF911F916A -:1047D0000895E3EDF1E085E0DF011D928A95E9F7A8 -:1047E0001092D2011092D10108958BEF95E00E94B2 -:1047F0005D061F9281E08F931F9285E08F938DEA73 -:1048000095E09F938F930E94F6060F900F900F9064 -:104810000F900F900F9008958330E9F128F48130C4 -:1048200061F0823009F10895853009F462C008F41E -:1048300049C0863009F474C0089580911301262F71 -:1048400030E0280F311D2F3F310524F4680F6093AD -:10485000130103C08FEF80931301809113011F9206 -:104860008F9386EE94E072C080911201262F30E083 -:10487000280F311D2F3F310524F4680F609312017A -:1048800003C08FEF80931201809112011F928F93CA -:1048900084ED94E05BC080911101262F30E0280F59 -:1048A000311D2F3F310524F4680F6093110103C0BF -:1048B0008FEF80931101809111011F928F9381ECF2 -:1048C00094E044C080911001262F30E0280F311D64 -:1048D0002F3F310524F4680F6093100103C08FEF60 -:1048E00080931001809110011F928F938CEA94E0C5 -:1048F0002DC080910F01262F30E0280F311D2F3F52 -:10490000310524F4680F60930F0103C08FEF80938B -:104910000F0180910F011F928F9383E994E016C0DD -:1049200080910E01262F30E0280F311D2F3F3105D9 -:1049300024F4680F60930E0103C08FEF80930E0183 -:1049400080910E011F928F9388E794E09F938F933D -:104950000E94F6060F900F900F900F9008958330ED -:1049600081F128F4813059F08230D1F008958530FA -:1049700009F449C0B8F1863009F456C00895809111 -:104980001301681720F4861B8093130102C0109254 -:104990001301809113011F928F9389E694E054C014 -:1049A00080911201681720F4861B8093120102C0C7 -:1049B00010921201809112011F928F9387E594E06B -:1049C00043C080911101681720F4861B8093110168 -:1049D00002C010921101809111011F928F9384E403 -:1049E00094E032C080911001681720F4861B8093F8 -:1049F000100102C010921001809110011F928F933C -:104A00008FE294E021C080910F01681720F4861B8B -:104A100080930F0102C010920F0180910F011F922D -:104A20008F9386E194E010C080910E01681720F406 -:104A3000861B80930E0102C010920E0180910E0120 -:104A40001F928F938BEF93E09F938F930E94F606B4 -:104A50000F900F900F900F900895CF93C82F1F9233 -:104A60008F9380E097E09F938F930E94F60681E0FA -:104A700090E0A0E0B0E0BC01CD0104C0660F771F5C -:104A8000881F991FCA95D2F70E94081C0F900F909B -:104A90000F900F90CF910C943518CF938732B0F5CB -:104AA0008E3108F04AC28E3009F4C4C100F5873057 -:104AB00009F48DC1A8F4863009F045C28091C9017E -:104AC000817F8E7F8093C9018DE698E00E945D060C -:104AD00086E09CE00E945D0681E08093D90175C16B -:104AE000883009F43FC08B3009F46BC12CC2863189 -:104AF00009F4E6C120F4803109F4B0C124C289313F -:104B000009F4C7C18B3109F481C11DC2883309F48E -:104B100058C150F4893209F412C2853309F40FC226 -:104B2000873209F40CC20FC2833409F408C228F496 -:104B30008A3308F408C2895303C2883409F003C2D7 -:104B40000E9435188AEE9BE00E945D069FEF23EDE0 -:104B500080E3915020408040E1F700C000000E94B7 -:104B6000751F33C18AE09CE00E945D068CE69BE0E5 -:104B70000E945D060E942F211F928F9389E69BE081 -:104B80009F938F930E94F60687E69BE00E945D0646 -:104B90000E942621C82F84E59BE00E945D061F929B -:104BA000CF938FE49BE09F938F930E94F6068DE452 -:104BB0009BE00E945D0683E49BE00E945D068C2FD3 -:104BC00081701F928F9380E49BE09F938F930E944C -:104BD000F6068EE39BE00E945D0684E39BE00E9464 -:104BE0005D06C1FB882780F91F928F9381E39BE0CC -:104BF0009F938F930E94F6068FE29BE00E945D06D2 -:104C000083E29BE00E945D06C2FB882780F91F9229 -:104C10008F9380E29BE09F938F930E94F6068EE134 -:104C20009BE00E945D0685E19BE00E945D06C3FB60 -:104C3000CC27C0F91F92CF9382E19BE09F938F9383 -:104C40000E94F60680E19BE00E945D060E943821EA -:104C5000C82F8CEF9AE00E945D061F92CF9387EFDA -:104C60009AE09F938F930E94F60685EF9AE00E9448 -:104C70005D068CED9AE00E945D068C2F81701F927C -:104C80008F9389ED9AE09F938F930E94F6068DB7DC -:104C90009EB780960FB6F8949EBF0FBE8DBF87ED6E -:104CA0009AE00E945D0680EC9AE00E945D06C1FBDE -:104CB000882780F91F928F938DEB9AE09F938F93B3 -:104CC0000E94F6068BEB9AE00E945D0689EA9AE064 -:104CD0000E945D06C2FB882780F91F928F9386EAA7 -:104CE0009AE09F938F930E94F60684EA9AE00E94CE -:104CF0005D0682E99AE00E945D06C3FB882780F981 -:104D00001F928F938FE89AE09F938F930E94F606ED -:104D10008DE89AE00E945D0683E89AE00E945D06B5 -:104D2000C4FB882780F91F928F9380E89AE09F93B5 -:104D30008F930E94F6068EE79AE00E945D068CE64D -:104D40009AE00E945D06C5FB882780F91F928F9329 -:104D500089E69AE09F938F930E94F60687E69AE091 -:104D60000E945D068BE49AE00E945D06C6FB8827E0 -:104D700080F91F928F9388E49AE09F938F930E940B -:104D8000F60686E49AE00E945D068EE39AE00E94B1 -:104D90005D06C7FBCC27C0F91F92CF938BE39AE047 -:104DA0009F938F930E94F60689E39AE00E945D0626 -:104DB0008DB79EB74C960FB6F8949EBF0FBE8DBFB1 -:104DC00004C084E998E00E945D06C1E0C1C0809102 -:104DD000C901C82FC095C170C0FB80F98093C9017B -:104DE000CC2349F08EED9BE00E945D068091C901C5 -:104DF0008660886048C081ED9BE00E945D068091DE -:104E0000C901897F877F8093C901DFCF9091C90154 -:104E100091FBCC27C0F981E0C827892FC0FB81F91D -:104E20008093C901CC2319F084EC9BE027C086EB6A -:104E30009BE0C9CF9091C90192FBCC27C0F981E0DA -:104E4000C827892FC0FB82F98093C901CC2319F0B0 -:104E500087EA9BE013C087E99BE0B5CF9091C90139 -:104E600093FBCC27C0F981E0C827892FC0FB83F9C9 -:104E70008093C901CC2351F08BE89BE00E945D0632 -:104E80008091C90181608093C90162C08EE79BE077 -:104E90009ACF8EE598E00E945D0686E398E00E9436 -:104EA0005D0684E098E00E945D0687ED97E00E9431 -:104EB0005D0687E997E00E945D068BE697E083CF69 -:104EC0008DE597E00E945D060E9438131F928F9334 -:104ED00083E497E09F938F930E94F60680910B01E5 -:104EE0001F928F938CE297E09F938F930E94F60618 -:104EF00080916C011F928F9389E197E09F938F932C -:104F00000E94F6068091CB019091CC01A091CD0139 -:104F1000B091CE01BF93AF939F938F9385E097E0BD -:104F20009F938F930E94F6068DB79EB742960FB659 -:104F3000F8949EBF0FBE8DBF48CF8D5101C080E059 -:104F40000E942D2542CF8CE79BE00E945D06C0E0C9 -:104F50008C2FCF91089580E0089580E00895CF933D -:104F6000C82F8091D901813071F020F0823009F48E -:104F70004BC042C1E0910C01F0910D018081823261 -:104F800009F03CC107C0E0910C01F0910D01808156 -:104F9000823261F48C2F0E94AB27811104C08C2FC8 -:104FA0000E944D252FC081E090E02CC08C2F0E94E4 -:104FB000AD27811126C0C431E1F070F4CB3081F00F -:104FC000C031D1F40E94F52388EF96E00E945D067F -:104FD00082E08093D90115C0C93259F0C83361F419 -:104FE0008DE698E00E945D068CEF96E00E945D06DB -:104FF00008C01092D90104C186EF96E00E945D06B8 -:10500000FFC081E08170FEC0C43228F5CE3108F0C7 -:10501000C1C0CB30A1F1D0F4C73009F0D3C08EE1CC -:105020008093130182E3809312018AE0809311013F -:1050300084E18093100188E080930F0188E28093DF -:105040000E018CE995E00E945D06BFC0C33149F1B5 -:10505000C431C1F0B7C0CB3409F4A9C028F4C932B7 -:1050600089F0C83361F0AEC0C13509F49EC0C235C5 -:1050700009F499C0CE3409F0A5C06AE09EC00E9430 -:10508000F523A3C08091D801882319F01092D8018C -:105090009CC089EA95E00E945D0681E08093D90179 -:1050A000B1C083E895E00E945D0681E795E00E942B -:1050B0005D06809113011F928F938EE695E09F937A -:1050C0008F930E94F6068CE695E00E945D068AE5C5 -:1050D00095E00E945D06809112011F928F9387E5F3 -:1050E00095E09F938F930E94F60685E595E00E94D8 -:1050F0005D0686E495E00E945D06809111011F9295 -:105100008F9383E495E09F938F930E94F60681E44A -:1051100095E00E945D0680E395E00E945D06809127 -:1051200010011F928F938DE295E09F938F930E94C1 -:10513000F6068BE295E00E945D0686E195E00E940E -:105140005D0680910F011F928F9383E195E09F93FD -:105150008F930E94F60681E195E00E945D068AEF3A -:1051600094E00E945D0680910E011F928F9387EF5D -:1051700094E09F938F930E94F60685EF94E00E943F -:105180005D068DB79EB748960FB6F8949EBF0FBECA -:105190008DBF1BC0CE51EC2FF0E0E85CFE4F80814C -:1051A0008093D80112C061E003C061E006C06AE0EC -:1051B0008091D8010E940C2408C08091D8010E94DF -:1051C000AF2403C08AE995E013C08091D8018823F9 -:1051D00069F01F928F9384E995E09F938F930E94CB -:1051E000F6060F900F900F900F9004C081E995E0A4 -:1051F0000E945D0681E006C01092D90180E002C0E5 -:1052000080E000CFCF91089504D06894B1118DC093 -:10521000089570D088F09F5790F0B92F9927B75113 -:10522000A0F0D1F0660F771F881F991F1AF0BA956A -:10523000C9F712C0B13081F077D0B1E0089574C0E1 -:10524000672F782F8827B85F39F0B93FCCF3869560 -:1052500077956795B395D9F73EF4909580957095BD -:1052600061957F4F8F4F9F4F0895E89409C097FB3A -:105270003EF490958095709561957F4F8F4F9F4F2D -:105280009923A9F0F92F96E9BB279395F695879571 -:1052900077956795B795F111F8CFFAF4BB0F11F434 -:1052A00060FF1BC06F5F7F4F8F4F9F4F16C08823DB -:1052B00011F096E911C0772321F09EE8872F762F11 -:1052C00005C0662371F096E8862F70E060E02AF052 -:1052D0009A95660F771F881FDAF7880F969587953E -:1052E00097F9089557FD9058440F551F59F05F3FA7 -:1052F00071F04795880F97FB991F61F09F3F79F0F8 -:1053000087950895121613061406551FF2CF469579 -:10531000F1DF08C0161617061806991FF1CF8695FB -:105320007105610508940895E894BB2766277727DF -:10533000CB0197F908950AD080C071D028F076D0BB -:1053400018F0952309F062C067C0EFCFCBDFA8F358 -:105350009923D9F35523C9F3950F50E0551FAA2778 -:10536000EE27FF27BB2700240894679520F4E20F5F -:10537000F31FB41F0A1E220F331F441FAA1F669576 -:10538000A9F7779530F4F30FB41F0A1E121E08F424 -:105390006395330F441FAA1F221F769599F78795AF -:1053A00020F4B40F0A1E121E631F440FAA1F221FEF -:1053B000331F8695A9F7862F712D602D11249F57D5 -:1053C00050408AF0E1F088234AF0EE0FFF1FBB1F28 -:1053D000661F771F881F91505040A9F79E3F5105C7 -:1053E00070F014C0A2CF5F3FECF3983EDCF38695DB -:1053F00077956795B795F795E7959F5FC1F7FE2B72 -:10540000880F911D9695879597F9089597F99F674D -:1054100080E870E060E008959FEF80EC089500243C -:105420000A941616170618060906089500240A9409 -:1054300012161306140605060895092E0394000C8F -:1054400011F4882352F0BB0F40F4BF2B11F460FF1E -:1054500004C06F5F7F4F8F4F9F4F089500245527E3 -:1054600004C0080E591F880F991F009729F07695E0 -:105470006795B8F37105B9F7802D952F0895991B9D -:1054800079E004C0991F961708F0961B881F7A953B -:10549000C9F78095089597FB072E16F4009407D05E -:1054A00077FD09D00E94652A07FC05D03EF490954F -:1054B00081959F4F0895709561957F4F0895EE0FE8 -:1054C000FF1F0590F491E02D0994AA1BBB1B51E12D -:1054D00007C0AA1FBB1FA617B70710F0A61BB70B64 -:1054E000881F991F5A95A9F780959095BC01CD0109 -:1054F0000895F999FECF92BD81BDF89A992780B59C -:105500000895A8E1B0E042E050E00C94A12A262FD3 -:10551000F999FECF92BD81BDF89A019700B40216A9 -:1055200039F01FBA20BD0FB6F894FA9AF99A0FBE57 -:1055300008950196272F0E94882A0C94872ADC015F -:10554000CB01FC01F999FECF06C0F2BDE1BDF89A8E -:10555000319600B40D9241505040B8F70895F89438 -:02556000FFCF7B -:10556200FFEA0BDB0CB80C840C500C01BE012808BE -:10557200140A321E0313233343536373091929395F -:10558200495969263F4D36202303D602A0028002E4 -:105592000C0225023E025702010203040506070817 -:0255A2000900FE -:00000001FF diff --git a/keyboards/arrow_pad/README.md b/keyboards/arrow_pad/README.md deleted file mode 100644 index bf9a64a45..000000000 --- a/keyboards/arrow_pad/README.md +++ /dev/null @@ -1,24 +0,0 @@ -arrow_pad keyboard firmware -====================== - -## Quantum MK Firmware - -For the full Quantum feature list, see [the parent README.md](/README.md). - -## Building - -Download or clone the whole firmware and navigate to the keyboards/arrow_pad folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. - -Depending on which keymap you would like to use, you will have to compile slightly differently. - -### Default -To build with the default keymap, simply run `make`. - -### Other Keymaps -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` in the keymaps folder, and see keymap document (you can find in top README.md) and existent keymap files. - -To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: -``` -$ make KEYMAP=[default|jack|] -``` -Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. \ No newline at end of file diff --git a/keyboards/arrow_pad/arrow_pad.c b/keyboards/arrow_pad/arrow_pad.c index f29c2c53f..381934aa8 100644 --- a/keyboards/arrow_pad/arrow_pad.c +++ b/keyboards/arrow_pad/arrow_pad.c @@ -1,114 +1 @@ -#include "arrow_pad.h" - -__attribute__ ((weak)) -void matrix_init_user(void) { - // leave this function blank - it can be defined in a keymap file -}; - -__attribute__ ((weak)) -void matrix_scan_user(void) { - // leave this function blank - it can be defined in a keymap file -} - -__attribute__ ((weak)) -bool process_action_user(keyrecord_t *record) { - // leave this function blank - it can be defined in a keymap file - return true; -} - -__attribute__ ((weak)) -void led_set_user(uint8_t usb_led) { - // leave this function blank - it can be defined in a keymap file -} - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - -#ifdef BACKLIGHT_ENABLE - backlight_init_ports(); -#endif - - matrix_init_user(); -} - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - - matrix_scan_user(); -} - -bool process_action_kb(keyrecord_t *record) { - // put your per-action keyboard code here - // runs for every action, just before processing by the firmware - - return process_action_user(record); -} - -void led_set_kb(uint8_t usb_led) { - // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here - - led_set_user(usb_led); -} - -#ifdef BACKLIGHT_ENABLE -#define CHANNEL OCR1C - -void backlight_init_ports() -{ - - // Setup PB7 as output and output low. - DDRB |= (1<<7); - PORTB &= ~(1<<7); - - // Use full 16-bit resolution. - ICR1 = 0xFFFF; - - // I could write a wall of text here to explain... but TL;DW - // Go read the ATmega32u4 datasheet. - // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on - - // Pin PB7 = OCR1C (Timer 1, Channel C) - // Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0 - // (i.e. start high, go low when counter matches.) - // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0 - // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1 - - TCCR1A = _BV(COM1C1) | _BV(WGM11); // = 0b00001010; - TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; - - backlight_init(); -} - -void backlight_set(uint8_t level) -{ - if ( level == 0 ) - { - // Turn off PWM control on PB7, revert to output low. - TCCR1A &= ~(_BV(COM1C1)); - CHANNEL = 0x0; - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - } - else if ( level == BACKLIGHT_LEVELS ) - { - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - // Turn on PWM control of PB7 - TCCR1A |= _BV(COM1C1); - // Set the brightness - CHANNEL = 0xFFFF; - } - else - { - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - // Turn on PWM control of PB7 - TCCR1A |= _BV(COM1C1); - // Set the brightness - CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); - } -} - -#endif \ No newline at end of file +#include "arrow_pad.h" \ No newline at end of file diff --git a/keyboards/arrow_pad/arrow_pad.h b/keyboards/arrow_pad/arrow_pad.h index b3fb578e8..62882b9b5 100644 --- a/keyboards/arrow_pad/arrow_pad.h +++ b/keyboards/arrow_pad/arrow_pad.h @@ -1,6 +1,7 @@ #ifndef ARROW_PAD_H #define ARROW_PAD_H +#include "quantum.h" #include "matrix.h" #include "keymap.h" #ifdef BACKLIGHT_ENABLE @@ -9,10 +10,4 @@ #include #include -void matrix_init_user(void); -void matrix_scan_user(void); -bool process_action_user(keyrecord_t *record); -void led_set_user(uint8_t usb_led); -void backlight_init_ports(void); - #endif diff --git a/keyboards/arrow_pad/config.h b/keyboards/arrow_pad/config.h index 9e85f3ccf..3d8d8709a 100644 --- a/keyboards/arrow_pad/config.h +++ b/keyboards/arrow_pad/config.h @@ -46,6 +46,8 @@ along with this program. If not, see . #define MATRIX_COL_PINS { B0, B1, B2, B3 } #define UNUSED_PINS +#define BACKLIGHT_PIN B7 + /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION ROW2COL diff --git a/keyboards/arrow_pad/keymaps/default/compiled.hex b/keyboards/arrow_pad/keymaps/default/compiled.hex deleted file mode 100644 index 789eb4c3f..000000000 --- a/keyboards/arrow_pad/keymaps/default/compiled.hex +++ /dev/null @@ -1,1490 +0,0 @@ -:100000000C94E8060C942C070C942C070C942C07E9 -:100010000C942C070C942C070C942C070C942C0794 -:100020000C942C070C942C070C94DE120C94B01337 -:100030000C9458210C942C070C942C070C942C072E -:100040000C942C070C942C070C942C070C942C0764 -:100050000C942C070C94C0210C942C070C942C07A6 -:100060000C942C070C942C070C942C070C942C0744 -:100070000C942C070C942C070C942C070C942C0734 -:100080000C942C070C942C070C942C070C942C0724 -:100090000C942C070C942C070C942C070C942C0714 -:1000A0000C942C070C942C070C942C071D143F1453 -:1000B0002D153F142D158414A7142D15FC140F15A0 -:1000C000E817E8171718171856187618CC19CC190E -:1000D0008118CC19311931199819A119CC19C619DF -:1000E0003E193E193E193E193E193E193E193E1958 -:1000F0003E193E193E193E193E193E193E193E1948 -:100100004E195C1963196A197419F1A2028A00D296 -:1001100000D000D100C801C802C829002B0031005E -:10012000C00053005400550056005F00600061009D -:1001300067005C005D005E00570059005A005B00DC -:100140000000620000006300580029002B002C0012 -:100150000100C10019011C011D014A0052004B00A1 -:10016000E2005000C5004F00E0004D0051004E007D -:1001700000002A0000004C00C600C200C300C400FA -:100180000100C100010001000100010001000100A7 -:100190000100010001000100010001000100010057 -:1001A000000000500000010001000A44454255478C -:1001B0003A20656E61626C65642E0A005374617446 -:1001C00065206F6620726F772025583A20253031E0 -:1001D00036620A0048756D616E2D726561646162F8 -:1001E0006C65206D61747269782073746174653A0E -:1001F0000D0A004465626F756E63696E6720646501 -:100200006C61792072656D61696E696E673A20254F -:10021000580A005B735D004B6579626F6172642000 -:1002200073746172742E0A005B575D005B535D004E -:100230005B525D005B445D005B435D001003470063 -:100240006F006C00640050006100640000000E0349 -:100250004E006F0062006F0064007900000004032C -:10026000090409028D00050100A0FA09040000013B -:1002700003010100092111010001223F000705814E -:100280000308000A09040100010301020009211109 -:10029000010001224D000705820308000A0904023B -:1002A00000010300000009211101000122360007AE -:1002B00005830308000A0904030002030000000983 -:1002C00021110100012220000705840320000107FD -:1002D00005040320000109040400010300000009D3 -:1002E00021110100012239000705850310000112C8 -:1002F00001100100000008EDFE964001000102001F -:100300000105010906A101050719E029E7150025E6 -:1003100001950875018102050819012905950575E2 -:1003200001910295017503910105071900297715BF -:10033000002501957875018102C00631FF0974A17D -:10034000010975150025FF952075088102097615AC -:100350000025FF952075089102C005010980A101C3 -:10036000850216010026B7001A01002AB700751091 -:1003700095018100C0050C0901A10185031601004A -:10038000269C021A01002A9C02751095018100C06A -:1003900005010902A1010901A100050919012905A9 -:1003A00015002501950575018102950175038101EF -:1003B0000501093009311581257F950275088106EF -:1003C00009381581257F950175088106050C0A38C5 -:1003D000021581257F950175088106C0C0050109B8 -:1003E00006A101050719E029E71500250195087503 -:1003F00001810295017508810105081901290595FA -:1004000005750191029501750391010507190029F0 -:10041000FF150025FF950675088100C00A002530EC -:10042000325820006B6579626F6172645F7265702B -:100430006F72743A20004B6579626F617264204C70 -:100440004544732073746174653A2025780A00640A -:10045000656C5F6B65795F6269743A2063616E27D2 -:10046000742064656C3A20253032580A0061646457 -:100470005F6B65795F6269743A2063616E277420EF -:100480006164643A20253032580A00646F6E652E2C -:100490000A00626F6F676D61676963207363616EE5 -:1004A0003A202E2E2E2000290A002575002F002527 -:1004B00075005D28002564002000256400200025CB -:1004C000640020002564007C0025303258006D6FE8 -:1004D0007573656B6579205B62746E7C782079201A -:1004E0007620685D287265702F61636C293A205B05 -:1004F000006D6B5F776865656C5F74696D655F74CF -:100500006F5F6D6178203D2025640A006D6B5F7719 -:100510006865656C5F6D61785F7370656564203DCB -:100520002025640A006D6B5F74696D655F746F5F91 -:100530006D6178203D2025640A006D6B5F6D6178E8 -:100540005F7370656564203D2025640A006D6B5FF4 -:10055000696E74657276616C203D2025640A006DB9 -:100560006B5F64656C6179203D2025640A006D6BCA -:100570005F776865656C5F74696D655F746F5F6DEB -:100580006178203D2025640A006D6B5F77686565A2 -:100590006C5F6D61785F7370656564203D202564D4 -:1005A0000A006D6B5F74696D655F746F5F6D617874 -:1005B000203D2025640A006D6B5F6D61785F73706C -:1005C000656564203D2025640A006D6B5F696E746B -:1005D000657276616C203D2025640A006D6B5F6456 -:1005E000656C6179203D2025640A000A00257500AC -:1005F000363A20776865656C5F74696D655F746F06 -:100600005F6D61783A20000A00257500353A207741 -:100610006865656C5F6D61785F73706565643A20CD -:10062000000A00257500343A2074696D655F746FA7 -:100630005F6D61783A20000A00257500333A206D1D -:1006400061785F73706565643A20000A0025750063 -:10065000323A20696E74657276616C286D73293A3E -:1006600020000A00257500313A2064656C61792804 -:100670002A31306D73293A20000A092D2056616C09 -:10068000756573202D0A004D3E004D25643E200007 -:100690003F007365742064656661756C740A00437D -:1006A0003E200077686572652064656C74613A204D -:1006B000637572736F723D25642C20776865656C75 -:1006C0003D25640A53656520687474703A2F2F6560 -:1006D0006E2E77696B6970656469612E6F72672F22 -:1006E00077696B692F4D6F7573655F6B6579730AF9 -:1006F000000A092D204D6F7573656B6579202D0AF1 -:100700004553432F713A09717569740A313A096486 -:10071000656C6179282A31306D73290A323A09698A -:100720006E74657276616C286D73290A333A096DAF -:1007300061785F73706565640A343A0974696D6540 -:100740005F746F5F6D61780A353A09776865656C2B -:100750005F6D61785F73706565640A363A09776822 -:1007600065656C5F74696D655F746F5F6D61780A54 -:100770000A703A097072696E742076616C756573DF -:100780000A643A097365742064656661756C7473F4 -:100790000A75703A092B310A646F776E3A092D3168 -:1007A0000A706775703A092B31300A7067646F7789 -:1007B0006E3A092D31300A0A7370656564203D2058 -:1007C00064656C7461202A206D61785F7370656563 -:1007D00064202A2028726570656174202F20746956 -:1007E0006D655F746F5F6D6178290A003F004D3E53 -:1007F0002000433E20004C25640A0074696D657238 -:100800005F636F756E743A202530346C580A006B44 -:100810006579626F6172645F6E6B726F3A20255802 -:100820000A006B6579626F6172645F69646C653A36 -:100830002025580A006B6579626F6172645F70727F -:100840006F746F636F6C3A2025580A00686F737479 -:100850005F6B6579626F6172645F6C656473282990 -:100860003A2025580A000A092D20537461747573C3 -:10087000202D0A004743433A20342E392E3220419E -:1008800056522D4C4942433A20312E382E312041C8 -:1008900056525F415243483A20617672350A004F02 -:1008A0005054494F4E533A204C55464120424F4FE9 -:1008B000544D41474943204D4F5553454B455920D1 -:1008C00045585452414B455920434F4E534F4C4588 -:1008D00020434F4D4D414E44204E4B524F20353119 -:1008E000320A004255494C443A2031363731386596 -:1008F000662D6469727479202832333A30373A327F -:1009000039204A756E2020392032303136290A00CC -:100910005649443A20307846454544284E6F626F28 -:10092000647929205049443A2030783430393628C7 -:10093000476F6C6450616429205645523A203078E4 -:10094000303030310A00444553433A20412063752A -:1009500073746F6D206B6579626F6172640A000A4F -:10096000092D2056657273696F6E202D0A000A09E1 -:100970002D20436F6E736F6C65202D0A4553432FF6 -:10098000713A09717569740A6D3A096D6F7573650D -:100990006B65790A000A092D204D61676963202D76 -:1009A0000A443A094465627567204D65737361674F -:1009B0006520546F67676C650A583A094D61747217 -:1009C0006978204465627567204D6F646520546FB7 -:1009D00067676C65202D2053686F77206B65797091 -:1009E00072657373657320696E206D6174726978C6 -:1009F00020677269640A4B3A094B6579626F6172CC -:100A00006420446562756720546F67676C65202DAC -:100A10002053686F77206B657970726573732072ED -:100A200065706F72740A4D3A094465627567204DAE -:100A30006F75736520546F67676C650A563A09567F -:100A4000657273696F6E0A533A09537461747573F2 -:100A50000A433A09416374697661746520436F6E95 -:100A6000736F6C65204D6F64650A46312D463130D9 -:100A70003A0953776974636820746F204C61796513 -:100A80007220302D392028463130203D204C30292D -:100A90000A302D393A0953776974636820746F20DE -:100AA0004C6179657220302D390A4553433A095318 -:100AB000776974636820746F204C617965722030A7 -:100AC0002028616C7465726E617465206B65792095 -:100AD00031290A47524156453A0953776974636888 -:100AE00020746F204C6179657220302028616C740D -:100AF00065726E617465206B65792032290A5041F8 -:100B00005553453A094A756D7020746F20426F6FD6 -:100B1000746C6F6164657220285265736574290A6C -:100B2000453A095072696E7420454550524F4D2028 -:100B300053657474696E67730A4E3A094E4B524F8F -:100B400020546F67676C650A000A002575002E6CDB -:100B50006576656C3A20000A002575002E656E6189 -:100B6000626C653A20000A002530325800626163E9 -:100B70006B6C696768745F636F6E6669672E72611C -:100B8000773A20000A002575002E6E6B726F3A20AE -:100B9000000A002575002E737761705F6261636BD8 -:100BA000736C6173685F6261636B73706163653AF4 -:100BB00020000A002575002E737761705F677261EF -:100BC00076655F6573633A20000A002575002E6E16 -:100BD0006F5F6775693A20000A002575002E7377EC -:100BE00061705F72616C745F726775693A20000AA8 -:100BF000002575002E737761705F6C616C745F6C9B -:100C00006775693A20000A002575002E63617073CC -:100C10006C6F636B5F746F5F636F6E74726F6C3A4F -:100C200020000A002575002E737761705F636F6E78 -:100C300074726F6C5F636170736C6F636B3A2000EA -:100C40000A0025303258006B65796D61705F636F03 -:100C50006E6669672E7261773A20000A002575007A -:100C60002E6D6F7573653A20000A002575002E6B96 -:100C70006579626F6172643A20000A002575002E62 -:100C80006D61747269783A20000A002575002E653E -:100C90006E61626C653A20000A00253032580064AB -:100CA000656275675F636F6E6669672E7261773A1A -:100CB00020000A0025750064656661756C745F6CC0 -:100CC000617965723A20003F004E4B524F3A206FD7 -:100CD00066660A004E4B524F3A206F6E0A000A6D4C -:100CE0006F7573653A206F66660A000A6D6F7573DB -:100CF000653A206F6E0A000A6B6579626F617264F3 -:100D00003A206F66660A000A6B6579626F617264E9 -:100D10003A206F6E0A000A6D61747269783A206F2A -:100D200066660A000A6D61747269783A206F6E0A0D -:100D3000000A64656275673A206F66660A000A6495 -:100D4000656275673A206F6E0A000A0A4A756D700F -:100D5000696E6720746F20626F6F746C6F61646579 -:100D6000722E2E2E2000433E20006565636F6E6656 -:100D700069673A0A006261636B6C69676874207323 -:100D80007465703A2025750A006261636B6C69674F -:100D9000687420746F67676C653A2025750A006275 -:100DA00061636B6C69676874206465637265617305 -:100DB000653A2025750A006261636B6C6967687427 -:100DC00020696E6372656173653A2025750A0000BB -:100DD00011241FBECFEFDAE0DEBFCDBF04B603FEA5 -:100DE00024C08091EF019091F001A091F101B091A8 -:100DF000F2018730904BA740B04BB9F41092EF014D -:100E00001092F0011092F1011092F20114BE84B719 -:100E1000877F84BF88E10FB6F894809360001092BA -:100E200060000FBEE0E0FFE3099511E0A0E0B1E053 -:100E3000E2EBFCE502C005900D92A234B107D9F7B0 -:100E400011E0A2E4B1E001C01D92AF3EB107E1F7AD -:100E50000E9418100C94572E0C940000FF93EF93EF -:100E6000E0914201F0914301309709F00995EF912B -:100E7000FF910895FC018591803011F0EFDFFBCFE9 -:100E80000895FF27E0E230E247FF0CC0419597FF4D -:100E900009C0EDE26095709580959095611D711D7A -:100EA000811D911D27FF02C0219530E350E2AA2742 -:100EB000660F771F881F991FAA1FA41710F0A41B85 -:100EC00063955A95A9F7AA3008F0A95FA05DAF9382 -:100ED000F395611571058105910541F7ED3211F426 -:100EE000EF93F395F21718F43F93F395FBCF8F919F -:100EF000B5DFFA95E1F70895E991F9918591803090 -:100F000021F0853219F0AADFF9CF089520E0E894A6 -:100F100055915532C1F3503311F4689455915A33B9 -:100F200048F4505390F3220F022E220F220F200D6F -:100F3000250FF4CF0EF4219589919991533619F329 -:100F4000533729F1533559F1BC0188279927E89483 -:100F50005C3621F48991999168945591543639F40D -:100F600046EF7EF077FF0DC08FEF9FEF0AC0553739 -:100F70004AE039F0583540E121F0523642E009F0BC -:100F80000895FF93EF937DDFEF91FF91B7CFFF932C -:100F9000EF93FC0181918030B9F360DFFBCFFF93C9 -:100FA000EF9368DFF1CFDF93CF93CDB7DEB7259610 -:100FB000A3DFCF91DF9108950895089581E008950A -:100FC0000C94DD070C94DE070C948B08279A2F985D -:100FD0008FEF9FEF90938700809386008AE0809345 -:100FE000800089E1809381000C94E22B0E94E60747 -:100FF0000C94DC07282F81110BC080918000877F23 -:101000008093800010928D0010928C002F9808958C -:101010002F9880918000886080938000233019F49D -:101020008FEF9FEF0FC083E090E0821B9109880F44 -:10103000991F2FEF3FEFA90102C0569547958A955A -:10104000E2F7CA0190938D0080938C000895089573 -:10105000CF93DF93EC016130F1F018F06230E9F1E9 -:1010600055C08A81882309F451C080EE0E94DC16A5 -:101070008D81807F803129F486E00E94DC1686E035 -:1010800006C0803231F48BE10E94DC168BE10E94B5 -:101090007B1780EE1FC08A818823C1F08D818295E5 -:1010A0008F7090E003971CF482E00E94A3178D815B -:1010B000807F803219F481E00E94A3178D81807FA8 -:1010C000803321F588E50E94DC1620C083E00E9471 -:1010D000AA1788E50E947B1719C08A81882399F096 -:1010E0008D8182958F7090E002971CF481E00E94C0 -:1010F000A3178D8182958F7090E002973CF084E079 -:101100000E94A31703C085E00E94AA1780E090E028 -:10111000DF91CF91089581FF03C0569A5E9A02C075 -:1011200056985E9880FF05C03F9A88B18F6788B94E -:1011300008953F984798089581E008950C949C087D -:1011400008950F931F93CF93DF938C01FC01C0810F -:10115000D181CE010E94301FBE010E944D09EC01D9 -:10116000B8010E949E08882309F48DC0F80182818D -:10117000882309F44AC080914F0181111FC0C431F6 -:10118000F0E5DF0709F051C00E94A00881E08093DC -:101190004F010E948A2190934E0180934D0110923D -:1011A0004601109248011092470110924A01109294 -:1011B000490110924C0110924B0165C080914D0184 -:1011C00090914E010E949621883C910570F4809187 -:1011D0004601E82FF0E0EE0FFF1FE95BFE4FD183E1 -:1011E000C0838F5F809346014EC0C43880E5D80726 -:1011F00021F0C538D04501F13AC0F8018281882339 -:1012000041F01092440182E01EC0C438E0E5DE07E0 -:1012100059F580914401811106C086E20E94DC16D6 -:1012200086E20E947B1782E01CC0C438F0E5DF072D -:1012300041F3C538D045D9F4F8018281882331F0D3 -:101240001092450180E20E94A3171DC080914501C4 -:10125000811106C087E20E94DC1687E20E947B179C -:1012600080E20E94AA170FC0C538D04529F381E05B -:101270008093440180934501C801DF91CF911F9174 -:101280000F910C94E20780E0DF91CF911F910F91B5 -:1012900008950C94F6070C94E007E72FF0E096E031 -:1012A000899FE00DF11D1124EE0FFF1FEE0FFF1FB0 -:1012B000E60FF11DEE0FFF1FE65EFE4F8591949144 -:1012C0000895880F991FFC01E657F040859194918D -:1012D0000895880F991FFC01E65FFE4F8591949158 -:1012E00008950F931F93CF93DF93EC01811521E3B2 -:1012F0009207A0F5C11580E3D80708F0D7C0C83E13 -:10130000D105D8F4C03ED10508F007C2C83AD105CE -:1013100078F4C53AD10508F06AC0C130D10509F4A6 -:1013200063C008F4F7C1C430D10508F0F6C1F2C1BA -:10133000CB3BD10508F466C0EDC1C11590E2D907D9 -:1013400008F0AFC0C11521E0D20708F0E6C1C03FE8 -:10135000D10508F4DFC18E0110651FC2C03880E5D9 -:10136000D80700F5C03790E5D90708F0A3C0C1152C -:1013700020E5D20709F4ACC050F4CE01905480317E -:101380009F4008F0C7C1DF708E01106A06C2C130ED -:1013900080E5D80709F4AAC0C43190E5D90708F45C -:1013A000AFC0B8C1C33820E5D20709F48EC050F4ED -:1013B000C13890E5D90709F482C008F083C000E085 -:1013C00011EDEBC1C03181E5D80708F4A3C1C11507 -:1013D00097E5D90708F436C1CE01905781159041A1 -:1013E00008F098C1DF7093C101E010E0D6C1C53AA2 -:1013F000D10509F494C1C63AD10509F093C102E8B8 -:1014000010E4CBC1C83AD10509F48FC1C93AD1055E -:1014100009F48EC1CA3AD10509F48DC1CB3AD10580 -:1014200009F48CC1CC3AD10509F48BC1CD3AD10570 -:1014300009F48AC1C03BD10509F489C1CE3AD1056E -:1014400009F488C1CF3AD10509F487C1C13BD10560 -:1014500009F486C1C23BD10509F485C1C33BD1055E -:1014600009F484C1C43BD10509F483C1C53BD1054E -:1014700009F482C1C63BD10509F481C1C73BD1053E -:1014800009F480C1C83BD10509F47FC1C93BD1052E -:1014900009F47EC1CA3BD10509F47DC100E014E422 -:1014A0007CC1CE019F700E94690978C1DD278E0141 -:1014B000106C73C1CF70DD278E01146D6EC100E01A -:1014C00010ED6BC100E012ED68C100E013ED65C1E5 -:1014D0000E94371A8FEF94E32CE081509040204017 -:1014E000E1F700C000000E94E52157C18AEA91E0BF -:1014F0000E943A078091CF0181608093CF014DC156 -:101500000E949723811102C00E9478230E94B42375 -:1015100090E09093EE018093ED01C23080E5D80712 -:1015200021F48091ED01816086C0C43090E5D90737 -:1015300021F48091ED0182607EC0C63020E5D207A3 -:1015400021F48091ED01846076C0C83080E5D80731 -:1015500019F48091ED0127C0CA3090E5D90721F434 -:101560008091ED01806167C0CC3020E5D20721F485 -:101570008091ED0180625FC0CE3080E5D80721F414 -:101580008091ED01806457C0C03190E5D90721F406 -:101590008091ED0180684FC0C23120E5D20729F467 -:1015A0008091ED018460886046C0C33080E5D80733 -:1015B00021F48091ED018E7F3EC0C53090E5D907C2 -:1015C00021F48091ED018D7F36C0C73020E5D20730 -:1015D00021F48091ED018B7F2EC0C93080E5D807C2 -:1015E00019F48091ED0126C0CB3090E5D90721F4A4 -:1015F0008091ED018F7E1FC0CD3020E5D20721F410 -:101600008091ED018F7D17C0CF3080E5D80721F4A0 -:101610008091ED018F7B0FC0C13190E5D90721F496 -:101620008091ED018F7707C0C331D04531F48091AF -:10163000ED018B7F877F8093ED018091ED010E940A -:10164000B823ABC08D2F99278F70992781309105D2 -:10165000D9F49E012370332702C0880F991F2A9561 -:10166000E2F79C688E0144E0000F111F4A95E1F7F4 -:1016700000271370802B912B53E0CC0FDD1F5A9560 -:10168000E1F7C076DD272FC08230910531F4DC2FE1 -:10169000CC278E01016F106A80C08330910569F4F8 -:1016A000CE018370992701E010E002C0000F111FE6 -:1016B0008A95E2F7C8019C680FC084309105B9F49F -:1016C000CE018370992701E010E002C0000F111FC6 -:1016D0008A95E2F7C8019A6823E0CC0FDD1F2A95AE -:1016E000E1F7C07ED7708C010C2B1D2B56C08530C6 -:1016F000910531F4DC2FCC278E01046F106A4DC0A8 -:10170000069709F04AC0CF71DD27DC2FCC278E0168 -:10171000106243C000E010E040C08E013EC001E80E -:1017200010E43BC003E810E438C002EE14E435C016 -:1017300009EE14E432C00AEE14E42FC005EB14E401 -:101740002CC006EB14E429C007EB14E426C00CEC13 -:1017500014E423C00DEC14E420C003E815E41DC01C -:101760000AE815E41AC002E915E417C004E915E413 -:1017700014C001E216E411C003E216E40EC004E254 -:1017800016E40BC005E216E408C006E216E405C044 -:1017900007E216E402C00AE216E4C801DF91CF9125 -:1017A0001F910F910895E72FF0E096E0899FE00DDB -:1017B000F11D1124EE0FFF1FEE0FFF1FE60FF11DAD -:1017C000EE0FFF1FE65EFE4F85919491803E9105DE -:1017D000E0F4803C910558F58133910509F46FC020 -:1017E00048F48932910509F463C08A32910509F4FD -:1017F0006DC072C089339105E9F082389105D1F04E -:101800008533910509F44DC067C0833E910581F190 -:1018100038F4803E9105B9F0823E9105D9F05CC064 -:10182000863E910561F1873E9105A1F155C00E9468 -:10183000610908952091ED0120FD02C021FF4CC0F7 -:1018400080EE90E049C08091ED0180FFF9CF89E3FF -:1018500090E042C08091ED0182FF0EC08091ED01C9 -:1018600084FF03C080E090E037C083EE90E034C096 -:101870008091ED0182FFF2CF82EE90E02DC0809149 -:10188000ED0183FF0BC08091ED0184FDEBCF87EE6E -:1018900090E022C08091ED0183FFF5CF86EE90E0CD -:1018A0001BC08091ED0185FF07C089E290E014C064 -:1018B0008091ED0185FFF9CF85E390E00DC0809127 -:1018C000ED0186FF07C08AE290E006C08091ED013D -:1018D00086FFF9CF81E390E00E94710908950C948E -:1018E000E407E82FF0E0EB5EFE4F8081E82FEF7019 -:1018F000F0E082958F7021E030E0A90102C0440F32 -:10190000551F8A95E2F740A308950F931F93CF9335 -:10191000DF9385B7806885BF85B7806885BFC3E0E2 -:10192000D0E001E010E0FE01EB5EFE4F8081E82F89 -:10193000EF70F0E021A182958F70A80102C0440FE2 -:10194000551F8A95E2F7CA01822B81A38C2F0E9432 -:10195000710C219740F785E090E061E070E0FC01B8 -:10196000E75EFE4F2081E22FEF70F0E042A122956A -:101970002F70DB0102C0AA0FBB1F2A95E2F79D0161 -:10198000242B22A3019758F7DF91CF911F910F913C -:101990000C944909EF92FF920F931F93CF93DF931B -:1019A00004E511E0C3E0EE24E394F12CD5E08C2FA4 -:1019B0000E94710C85E090E040E0FC01E75EFE4F84 -:1019C0005081E52FEF70F0E020A130E052955F707C -:1019D00002C0359527955A95E2F720FD07C097017B -:1019E000082E01C0220F0A94EAF7422B019728F72C -:1019F000F80182918F01841719F04083D093000180 -:101A00008C2F0E94710CC15090F68091000187FDCF -:101A100032C09091CF0190FF10C0282F332727FDAF -:101A200030953F938F9383EF91E09F938F930E9424 -:101A3000D3070F900F900F900F908091000181506D -:101A40008093000187FD07C08FE99FE00197F1F7C0 -:101A500000C0000010C08091530180935701809115 -:101A600052018093560180915101809355018091DC -:101A70005001809354010E944B0981E0DF91CF9186 -:101A80001F910F91FF90EF90089591E001C0990F81 -:101A90008A95EAF723E030E080E061E070E0F90148 -:101AA000EC5AFE4F4081492339F0AB01022E01C0B0 -:101AB000440F0A94EAF7842B2150310980F70895E6 -:101AC0000F931F93CF93DF938091CF0180FF04C0CA -:101AD00084ED91E00E943A07C0E0D0E00CEB11E009 -:101AE0008091CF0180FF14C08C2F0E94450D90E0A3 -:101AF0000E94F4209F938F93DF93CF931F930F93B4 -:101B00000E94D3070F900F900F900F900F900F909F -:101B10002196C630D10521F7DF91CF911F910F910A -:101B20000895CF93DF93C5E0D0E08C2F0E94450D40 -:101B300090E00E94D220D80FC150B8F78D2FDF91CE -:101B4000CF91089580916B0108959FB7F8941092FA -:101B50005A019FBF9091E401943009F057C09091D1 -:101B6000E9009F703091EC00232F217030FD20E8B8 -:101B7000922B24E02093E9002091EB0020FF43C04A -:101B80002091EE0027FF3FC020915801222321F031 -:101B90002091E80025FF37C01092580126E03091CF -:101BA000E80035FD15C03091E401343061F5309125 -:101BB000EB0035FD28C0215021F481E080935801CD -:101BC00022C0EFE9FFE03197F1F700C00000E7CF56 -:101BD0008093F1008091E80085FD0AC08091E800C3 -:101BE00080FFFCCF8091E8008E778093E80006C0EC -:101BF0008FB7F89421E020935A018FBF9F70909384 -:101C0000E90080E008959F709093E9008FEF0895B8 -:101C1000CF93DF9300D01F92CDB7DEB79C018091A8 -:101C2000E401843019F593E099833B832A839093F0 -:101C3000E9008FEF9091E800815095FD06C095ED89 -:101C40009A95F1F700008111F5CF8091E80085FFAA -:101C50000DC040E050E063E070E0CE0101960E94CC -:101C6000CE108091E8008E778093E8000F900F905F -:101C70000F90DF91CF910895CF93DF9300D01F9203 -:101C8000CDB7DEB72091E401243021F522E029838D -:101C90009B838A8383E08093E9008FEF9091E80033 -:101CA000815095FD06C095ED9A95F1F700008111E0 -:101CB000F5CF8091E80085FF0DC040E050E063E083 -:101CC00070E0CE0101960E94CE108091E8008E77E0 -:101CD0008093E8000F900F900F90DF91CF910895BF -:101CE0002091E4012430F1F422E02093E9002FEF69 -:101CF0003091E800215035FD06C035ED3A95F1F7F9 -:101D000000002111F5CF2091E80025FF0BC040E035 -:101D100050E065E070E00E94CE108091E8008E7780 -:101D20008093E8000895CF93DF932091E40124305D -:101D300009F048C0EC0180910B018823E1F080910B -:101D40000C018823C1F085E08093E9008FEF90912A -:101D5000E800815095FD06C095E19A95F1F70000E5 -:101D60008111F5CF8091E80085FF2CC040E050E064 -:101D700060E170E017C081E08093E9008FEF9091FF -:101D8000E800815095FD06C095ED9A95F1F70000A9 -:101D90008111F5CF8091E80085FF14C040E050E04C -:101DA00068E070E0CE010E94CE108091E8008E774E -:101DB0008093E80080E1FE01ABE5B1E001900D9277 -:101DC0008A95E1F7DF91CF91089588E392E00E9430 -:101DD0003A078091E301811109C00E9463120E94B9 -:101DE000C0128091E20084608093E200089584E351 -:101DF00092E00E943A071092E301089580E392E096 -:101E00000C943A078CE292E00C943A0788E292E054 -:101E10000E943A070C944D21209159012F5F822F87 -:101E200062E30E94E72D992319F020935901089548 -:101E30001092590180915A01882371F18091E40137 -:101E4000843041F58091E9008F702091EC00922F51 -:101E5000917020FD90E8892B94E09093E900909197 -:101E6000EB0090FF14C09091EE0097FF10C090918E -:101E7000E80095FF03C01092F100F9CF9091E800BF -:101E800090FF05C09091E8009E779093E8008F70D6 -:101E90008093E90010925A01089542E061EC81E0DC -:101EA0000E94DD1142E061EC82E00E94DD1142E01F -:101EB00061EC83E00E94DD1142E261EC84E00E946B -:101EC000DD1142E161EC85E00C94DD118091E601C9 -:101ED000833009F455C030F4813071F0823009F458 -:101EE0008EC008958A3009F47AC08B3009F460C03E -:101EF000893009F09CC020C08091E501813A09F049 -:101F000096C08091E800877F8093E8008091E90186 -:101F10009091EA01892B21F460E18BE591E003C007 -:101F200060E080E090E070E00E9419118091E8008C -:101F30008B778093E80008958091E501813209F064 -:101F400076C08091E9019091EA01009719F0049719 -:101F500009F06DC08091E800877F8093E800809150 -:101F6000E80082FD05C08091E4018111F8CF5FC0D7 -:101F70008091F10080936B018091E8008B7753C0D2 -:101F80008091E501813A09F052C08091E901909178 -:101F9000EA01892B09F04BC08091E800877F80938C -:101FA000E8008091E80080FFFCCF80910B0136C0F3 -:101FB0008091E5018132D9F58091E9019091EA01A2 -:101FC000892BA9F58091E800877F8093E8000E9423 -:101FD00012128091E70180930B010C94371A8091C3 -:101FE000E501813221F58091E800877F8093E80048 -:101FF0000E9412128091E80180936C0108958091F3 -:10200000E501813AA1F48091E800877F8093E800A0 -:102010008091E80080FFFCCF80916C018093F100FB -:102020008091E8008E778093E8000C941212089556 -:1020300084B7877F84BF88E10FB6F89480936000EF -:10204000109260000FBE90E080E80FB6F894809385 -:102050006100909361000FBE0E94F2150E9463120E -:102060000E94C0128091E20084608093E20085EAC1 -:102070009DE00E94CD2078940E9445150E94F415A1 -:1020800081E091E00E94601587E192E00E943A07AA -:102090008091E401853089F483E192E00E943A075F -:1020A0000E940E218091E201882391F30E943C213D -:1020B000882371F30E94B810EBCF0E941E16E8CF60 -:1020C000292F332723303105C9F064F4213031053D -:1020D00081F02230310509F043C08DE890E022E61E -:1020E00032E042C021323105F1F02232310541F1B6 -:1020F00037C082E190E02FEE32E036C09927813080 -:10210000910541F08230910541F0892B49F5EEE5CA -:10211000F2E005C0EEE4F2E002C0ECE3F2E084910C -:1021200090E09F0121C06530D8F4E62FF0E0EE0F7B -:10213000FF1FE25DFE4F2081318189E090E014C0F5 -:10214000653070F470E0FB01EE0FFF1FEC5DFE4F99 -:1021500020813181FB01E15EFE4F808190E004C06F -:1021600080E090E020E030E0FA01318320830895A0 -:1021700080E189BD82E189BD09B400FEFDCF809177 -:10218000D8008F7D8093D8008091E000826080939A -:10219000E0008091E00081FDFCCF0895CF92DF92B6 -:1021A000EF92FF920F931F93CF93DF93EC018B017C -:1021B0006A010E943112811133C0C114D10439F077 -:1021C000F60180819181081B190BC80FD91FE12CE2 -:1021D000F12C0115110519F18091E80085FD16C05B -:1021E0008091E8008E778093E800C114D10449F013 -:1021F000F60180819181E80EF91EF182E08285E08E -:102200000FC00E943112882321F30AC08991809364 -:10221000F10001501109FFEFEF1AFF0ADACF80E059 -:10222000DF91CF911F910F91FF90EF90DF90CF90B2 -:1022300008952091EB013091EC012617370748F003 -:102240006115710539F42091E8002E772093E8009C -:1022500001C0B90140E061157105A9F12091E401C7 -:10226000222309F443C0253009F442C02091E8003C -:1022700023FD40C02091E80022FD32C02091E800FB -:1022800020FFE9CF4091F3002091F20030E0342BA1 -:10229000FC01CF016115710559F02830310540F47A -:1022A00081918093F100615071092F5F3F4FF1CF11 -:1022B00041E02830310509F040E02091E8002E7718 -:1022C0002093E800C8CF4111C9CF0AC08091E40132 -:1022D000882361F0853061F08091E80083FD0AC0B9 -:1022E0008091E80082FFF2CF80E0089582E00895B7 -:1022F00083E0089581E008952091EB013091EC0195 -:102300002617370748F06115710539F42091E80068 -:102310002E772093E80001C0B901FC0120E061158F -:10232000710591F18091E401882309F440C0853062 -:1023300009F43FC08091E80083FD3DC08091E80032 -:1023400082FD2FC08091E80080FFE9CF2091F3004B -:102350008091F20090E0922B6115710559F0883060 -:10236000910540F424912093F10031966150710958 -:102370000196F2CF21E0089709F020E08091E80073 -:102380008E778093E800CBCF2111CCCF0AC080910B -:10239000E401882361F0853061F08091E80083FDDD -:1023A0000AC08091E80082FFF2CF80E0089582E0C9 -:1023B000089583E0089581E00895982F973058F5A7 -:1023C0009093E900981739F07091EC002091ED009E -:1023D0005091F00003C0242F762F50E021FF19C048 -:1023E0003091EB003E7F3093EB003091ED003D7F6C -:1023F0003093ED003091EB0031603093EB0070933F -:10240000EC002093ED005093F0002091EE0027FFA8 -:1024100007C09F5FD3CF8F708093E90081E008955C -:1024200080E008958091E50187FF11C08091E80068 -:1024300082FD05C08091E4018111F8CF11C0809127 -:10244000E8008B770BC08091E401882349F08091EC -:10245000E80080FFF8CF8091E8008E778093E80055 -:1024600008952091E4003091E50095E64091EC005C -:10247000842F817040FF22C08091E80080FD1CC045 -:102480008091E401882391F0853091F08091EB00F8 -:1024900085FD10C04091E4005091E50042175307BC -:1024A00029F39A01915011F784E0089582E008958C -:1024B00083E0089581E0089580E008954091E80068 -:1024C00042FFDECF08950E94D1120E94D912E0EEA1 -:1024D000F0E0808181608083E8EDF0E080818F779B -:1024E000808319BCA7EDB0E08C918E7F8C938081A6 -:1024F0008F7E80831092E30108950F931F93CF93F3 -:10250000DF930E94D1120E94D912C8EDD0E08881D9 -:102510008F77888388818068888388818F7D88838E -:1025200019BC1092E4011092E0011092E2011092A5 -:10253000E10100EE10E0F80180818B7F80838881CB -:102540008160888342E060E080E00E94DD11E1EE7E -:10255000F0E080818E7F8083E2EEF0E08081816018 -:102560008083808188608083F80180818E7F808372 -:10257000888180618883DF91CF911F910F910895A9 -:10258000E8EDF0E080818F7E8083E7EDF0E08081F0 -:102590008160808384E082BF81E08093E3010C94BA -:1025A0007D12E8EDF0E080818E7F80831092E20062 -:1025B00008951092DA001092E10008951F920F9290 -:1025C0000FB60F9211242F933F934F935F936F9306 -:1025D0007F938F939F93AF93BF93EF93FF938091DC -:1025E000E10082FF0BC08091E20082FF07C0809172 -:1025F000E1008B7F8093E1000E940C0F8091DA0054 -:1026000080FF1FC08091D80080FF1BC08091DA003E -:102610008E7F8093DA008091D90080FF0DC080E129 -:1026200089BD82E189BD09B400FEFDCF81E08093C0 -:10263000E4010E94E50E05C019BC1092E4010E945D -:10264000F70E8091E10080FF19C08091E20080FFC9 -:1026500015C08091E2008E7F8093E2008091E200BD -:1026600080618093E2008091D80080628093D800DE -:1026700019BC85E08093E4010E94020F8091E10083 -:1026800084FF30C08091E20084FF2CC080E189BDCE -:1026900082E189BD09B400FEFDCF8091D8008F7D15 -:1026A0008093D8008091E1008F7E8093E10080913B -:1026B000E2008F7E8093E2008091E200816080934F -:1026C000E2008091E001882311F084E007C080914E -:1026D000E30087FD02C081E001C083E08093E40154 -:1026E0000E94060F8091E10083FF29C08091E200E3 -:1026F00083FF25C08091E100877F8093E10082E025 -:102700008093E4011092E0018091E1008E7F80933C -:10271000E1008091E2008E7F8093E2008091E200F0 -:1027200080618093E20042E060E080E00E94DD1181 -:102730008091F00088608093F0000E94FE0EFF916F -:10274000EF91BF91AF919F918F917F916F915F9129 -:102750004F913F912F910F900FBE0F901F901895A2 -:102760001F920F920FB60F9211242F933F934F9306 -:102770005F936F937F938F939F93AF93BF93CF9309 -:10278000DF93EF93FF93C091E900CF708091EC004D -:10279000D82FD17080FDD0E81092E9008091F00030 -:1027A000877F8093F00078940E94F4131092E900E0 -:1027B0008091F00088608093F000CD2BCF70C093A3 -:1027C000E900FF91EF91DF91CF91BF91AF919F9180 -:1027D0008F917F916F915F914F913F912F910F90CA -:1027E0000FBE0F901F9018951F93CF93DF93CDB717 -:1027F000DEB7AA970FB6F894DEBF0FBECDBFE5EEE9 -:10280000F1E088E08E0F9091F10091938E13FBCF51 -:102810000E94660F8091E80083FF1FC18091E5014F -:102820009091E601492F50E04A30510508F015C15A -:10283000FA01EA5AFF4F0C94072E803881F0823853 -:1028400009F00BC18091E9018F708093E9008091BC -:10285000EB0085FB882780F91092E90006C0809183 -:10286000E1019091E201911182609091E800977FDF -:102870009093E8008093F1001092F100C8C0282FD7 -:102880002D7F09F0EAC0882319F0823061F0E5C09D -:102890008091E701813009F0E0C0933009F080E0D9 -:1028A0008093E2012BC08091E701811127C08091C4 -:1028B000E9018F7009F4D1C08093E9002091EB0009 -:1028C00020FF1CC0933021F48091EB00806214C083 -:1028D0009091EB0090619093EB0021E030E0A90132 -:1028E00002C0440F551F8A95E2F74093EA00109208 -:1028F000EA008091EB0088608093EB001092E90081 -:102900008091E800877F86C08111A7C01091E70100 -:102910001F778091E3008078812B8093E300809182 -:10292000E800877F8093E8000E9412128091E800FF -:1029300080FFFCCF8091E30080688093E300111159 -:1029400002C082E001C083E08093E40186C0805829 -:10295000823008F082C08091E7019091E8018C3DBF -:1029600053E0950779F583E08A838AE289834FB73C -:10297000F894DE01139620E03EE051E2E32FF0E010 -:1029800050935700E49120FF03C0E295EF703F5F42 -:10299000EF708E2F90E0EA3010F0C79601C0C0961D -:1029A0008D939D932F5F243149F74FBF8091E800AD -:1029B000877F8093E8006AE270E0CE0101960E9472 -:1029C000191114C0AE014F5F5F4F6091E9010E9481 -:1029D0006010BC01009709F440C09091E800977F17 -:1029E0009093E80089819A810E947C118091E8008F -:1029F0008B778093E80031C0803879F58091E800CA -:102A0000877F8093E8008091E0018093F1008091BE -:102A1000E8008E778093E8000E9412121EC0811198 -:102A20001CC09091E7019230C0F48091E800877F4C -:102A30008093E8009093E0010E9412128091E001DF -:102A4000811106C08091E30087FD02C081E001C0D2 -:102A500084E08093E4010E944D0F8091E80083FFA1 -:102A60000AC08091E800877F8093E8008091EB00A6 -:102A700080628093EB00AA960FB6F894DEBF0FBE7B -:102A8000CDBFDF91CF911F910895CF938091E40145 -:102A90008823A1F0C091E900CF709091EC00892FBC -:102AA000817090FD80E8C82B1092E9008091E800C9 -:102AB00083FD0E94F413CF70C093E900CF91089575 -:102AC00090937201809371010895E0917101F091EA -:102AD0007201309721F00190F081E02D099480E09F -:102AE0000895EF92FF920F931F93CF93DF93E0919E -:102AF0007101F09172013097B1F18C010280F38184 -:102B0000E02D09958091CF0182FF2DC080FF04C088 -:102B100084E294E00E943A07E80110E18EE1E82E99 -:102B200084E0F82E8091CF0180FF0BC088811F9236 -:102B30008F93FF92EF920E94D3070F900F900F9008 -:102B40000F90115021961111EDCF8091CF0180FF90 -:102B50000AC08CE194E0DF91CF911F910F91FF901B -:102B6000EF900C943A07DF91CF911F910F91FF9056 -:102B7000EF900895E0917101F0917201309721F08A -:102B80000480F581E02D0994089520916F01309122 -:102B900070018217930771F09093700180936F0119 -:102BA000E0917101F0917201309721F00680F78178 -:102BB000E02D0994089520916D0130916E018217E6 -:102BC000930771F090936E0180936D01E091710114 -:102BD000F0917201309721F00084F185E02D099485 -:102BE000089508950C94F1150E9481210E94850C8E -:102BF0000E9443220E94E22B81E080930C01089501 -:102C0000CF93DF931F92CDB7DEB79091CF0192FFA4 -:102C100010C090FF0EC01F928F9326E334E03F93C5 -:102C20002F9389830E94D3070F900F900F900F90DE -:102C300089810F90DF91CF910C946F0CCF92DF922E -:102C4000EF92FF920F931F93CF93DF9300D000D0AA -:102C500000D0CDB7DEB70E94CA0C85E0E82EF12C7B -:102C60000E2D8E2D0E94450D97012C583E4F690167 -:102C7000F90110811827A9F4F1E0EF1AF10880F7A3 -:102C80008FEF89838A831B820E948A218160782F3B -:102C90009D838C8349815A816B818D810E94AE1600 -:102CA00032C09091CF0191FF04C08E830E94600DCD -:102CB0008E8113FD09C012FD0AC011FD0BC010FF6B -:102CC000DBCF90E011E008C093E018E005C092E08F -:102CD00014E002C091E012E099830A83812391E01D -:102CE00009F490E09B830E948A218160782F9D8364 -:102CF0008C8349815A816B818D810E94AE16F601C9 -:102D00008081182710830E94C225109173010E94B0 -:102D100065151817A1F00E9465158093730126961A -:102D20000FB6F894DEBF0FBECDBFDF91CF911F91DC -:102D30000F91FF90EF90DF90CF900C9400162696A5 -:102D40000FB6F894DEBF0FBECDBFDF91CF911F91BC -:102D50000F91FF90EF90DF90CF900895CF93DF9386 -:102D6000CDB7DEB72B970FB6F894DEBF0FBECDBF41 -:102D70004F83588769877A878B87DE01119686E0B3 -:102D8000FD0111928A95E9F785E0FE0137960190E1 -:102D90000D928A95E1F749815A816B817C818D8101 -:102DA0009E810E94D51C2B960FB6F894DEBF0FBEF5 -:102DB000CDBFDF91CF910895CF93882309F499C0B7 -:102DC000C82F8CEF8C0F813A48F48C2F0E948D2AEB -:102DD00081118FC08C2F0E94AF1F0CC080E28C0F1E -:102DE000883058F4C77081E001C0880FCA95EAF7AF -:102DF0000E945720CF910C949E208BE58C0F83303E -:102E000078F4C53A29F0C63A31F083E890E005C07D -:102E100081E890E002C082E890E0CF910C94C51563 -:102E200088E58C0F833108F064C0C83A39F1C93A9B -:102E300041F1CA3A49F1CB3A51F1CC3A59F1CD3A84 -:102E400061F1C03B69F1CE3A71F1CF3A79F1C13B02 -:102E500081F1C23B89F1C33B91F1C43B99F1C53B80 -:102E6000A1F1C63BA9F1C73BB1F1C83BB9F1C93BE0 -:102E7000C1F1CA3BC9F180E090E038C082EE90E039 -:102E800035C089EE90E032C08AEE90E02FC085EB2D -:102E900090E02CC086EB90E029C087EB90E026C044 -:102EA0008CEC90E023C08DEC90E020C083E891E0B2 -:102EB0001DC08AE891E01AC082E991E017C084E958 -:102EC00091E014C081E292E011C083E292E00EC072 -:102ED00084E292E00BC085E292E008C086E292E0D4 -:102EE00005C087E292E002C08AE292E0CF910C94A2 -:102EF000DB15CF910895882329F19CEF980F913A23 -:102F000018F40E9402200DC090E2980F983058F4F7 -:102F1000877091E001C0990F8A95EAF7892F0E9486 -:102F20005D200C949E209BE5980F933020F480E068 -:102F300090E00C94C515885A833120F480E090E02D -:102F40000C94DB150895882321F00E9457200C94DF -:102F50009E200895882321F00E945D200C949E20DD -:102F600008957F928F929F92AF92BF92CF92DF92FD -:102F7000EF92FF920F931F93CF93DF931F92CDB7E2 -:102F8000DEB77C01C62E772EFC01058102950F70FD -:102F9000128111110E9474200E94A81F882379F0C9 -:102FA000112369F080E28C0D883048F082E00E94A5 -:102FB000911F0E94A81F91E0D82ED92601C0D12CC4 -:102FC000E72DE295EF70F0E0E05AFF4F0C94072EEA -:102FD000872D807F072D0F70882311F00295007FC9 -:102FE000112389F0002309F499C180E28C0D883007 -:102FF00020F4802F0E94572003C0802F0E9467205A -:103000000E949E208BC18C2D0E947B17002309F407 -:10301000C3C180E28C0D883020F4802F0E945D2097 -:1030200003C0802F0E946D200E949E20B5C1872D75 -:10303000807F972D9F70803211F4892F03C0892FD4 -:103040008295807FCC2021F0F1E0CF16A1F01DC049 -:10305000112339F0002319F1013009F50E9487206E -:103060009BC1002319F0013009F496C189830E94A5 -:103070008A20898110C1112321F0063008F08CC10B -:103080000EC0053008F088C106C1112359F0002395 -:1030900031F0F701958190FF41C19F7095830E94A7 -:1030A000A3177AC1002309F4F6C03EC1872D869587 -:1030B0008695837090E0009719F0019761F06CC1DC -:1030C000112321F08C2D972D937002C080E090E0A9 -:1030D0000E94C51561C1112321F08C2D972D93708D -:1030E00002C080E090E00E94DB1556C18C2D1123B8 -:1030F00019F00E94482402C00E94B0240E94352585 -:103100004BC1872D837009F052C0111145C18C2D20 -:10311000829586958770880F880F9C2D9F70892EC9 -:10312000912CA12CB12C082E04C0880C991CAA1C2F -:10313000BB1C0A94D2F7C4FE14C00FE010E020E0DC -:1031400030E0B901A80104C0440F551F661F771F66 -:103150008A95D2F7CB01BA016095709580959095CC -:1031600003C060E070E0CB01272D269526952370E3 -:1031700030E02230310569F02330310589F06829CB -:1031800079298A299B292130310571F00E941D1E61 -:1031900003C1682979298A299B290E94391EFCC00C -:1031A0000E941D1EC501B4010E94011EF5C011231D -:1031B00019F0872D817001C08695882309F4ECC031 -:1031C0008C2D829586958770880F880F9C2D9F7017 -:1031D000892E912CA12CB12C082E04C0880C991C8E -:1031E000AA1CBB1C0A94D2F7C4FE14C00FE010E066 -:1031F00020E030E0B901A80104C0440F551F661F4C -:10320000771F8A95D2F7CB01BA01609570958095AA -:10321000909503C060E070E0CB01272D26952695A0 -:103220002370422F50E04230510569F04330510580 -:1032300089F0682979298A299B294130510571F043 -:103240000E94F71EA9C0682979298A299B290E9412 -:10325000131FA2C00E94F71EC501B4010E94DB1E0D -:103260009BC08C2D90E0FC01E05EF109E531F10599 -:1032700008F050C0E059FF4F0C94072E0C2D0F7032 -:10328000872D8F71112321F00E94741E802F07CF8C -:103290000E94951E802F0E94AA177EC0112341F024 -:1032A000053008F079C0872D8F710E94BA1E74C056 -:1032B000063008F071C0F7CF112339F0872D8F71D8 -:1032C0000E94741E69C01123C9F3872D8F710E945B -:1032D000951E62C0112329F0872D8F710E945F1EF9 -:1032E0005BC00E94551E58C0112351F0172D1F714D -:1032F000812F0E94741E63E0812F0E94881F4CC0A2 -:1033000081E00E94911F023008F446C082E00E94D2 -:10331000911F42C0112331F0002381F28C2D0E94B5 -:10332000DC163AC0002389F28C2D0E947B1734C032 -:10333000472D4F706C2DC7010E9428080E94791DEF -:103340002BC0111129C0472D4F7050E0423051055C -:10335000B9F04CF44115510581F041305105E1F4CB -:103360000E941D2C19C04330510569F044305105AD -:1033700099F48C2D0E94A82C0FC00E94F32B0CC036 -:103380000E944C2C09C00E94722C06C0472D4F7021 -:103390006C2DC7010E942708DD20F9F00E94841FD0 -:1033A00080FD1BC0F70112820E947E1F0E94741EC6 -:1033B000C7010E94FC190E947E1F0F90DF91CF91E0 -:1033C0001F910F91FF90EF90DF90CF90BF90AF9043 -:1033D0009F908F907F900C94951E0F90DF91CF91CE -:1033E0001F910F91FF90EF90DF90CF90BF90AF9023 -:1033F0009F908F907F9008950F931F93CF93DF93AB -:10340000EC01888199812B813C81232BB9F09F3F6E -:1034100011F48F3F99F0CE010E94A108882371F02A -:10342000688179818A810E947A1F8C010E942F1FF6 -:103430000E94F61DB801CE010E94B117DF91CF9115 -:103440001F910F9108950E9474200E9484200E9471 -:1034500049200E949E200E9468260E94352580E017 -:1034600090E00E94C51580E090E00C94DB150E946E -:1034700064200C94231A0E946F1F292F22952F700D -:1034800030E02C3031054CF42A3031056CF42250F8 -:10349000310922303105A8F407C02C30310569F01C -:1034A0002F30310551F00DC0803F69F018F4803E97 -:1034B00040F409C0843F29F406C093FB882780F9B3 -:1034C000089580E0089581E00895CF93DF9300D0C0 -:1034D00000D01F92CDB7DEB70F900F900F900F90D6 -:1034E0000F90DF91CF910895CF93DF9300D000D05C -:1034F00000D0CDB7DEB726960FB6F894DEBF0FBE6C -:10350000CDBFDF91CF9108951F93CF93DF93C091EB -:103510007A0116E080917B01C81799F0D0E01C9FDA -:10352000F0011D9FF00D1124E458FE4F40815181A0 -:1035300062817381848195810E94741A2196C7707B -:10354000E9CFDF91CF911F9108954091AC01509147 -:10355000AD016091AE017091AF018091B001909189 -:10356000B1010C94741A8091B10182958F7009F0A9 -:1035700054C08091AE01882309F44FC080917A0134 -:10358000A0917B016091AC017091AD014091AF01C0 -:103590005091B001B6E08A1709F43FC090E04115A0 -:1035A0005105C1F17F3F11F46F3FA1F1B89FF001C8 -:1035B000B99FF00D1124E458FE4F218172132AC0E7 -:1035C0002081621327C02281211124C023813481EC -:1035D0002417350710F421503109241B350B283CE2 -:1035E0003105C0F42091B1012F7020612093B10109 -:1035F00026E0289FF001299FF00D1124EF57FE4F80 -:1036000080818F70806180838CEA91E00E94FC1938 -:103610000C94841A01968770BECF0895CF92DF92E2 -:10362000EF92FF920F931F93CF93DF93CDB7DEB747 -:1036300062970FB6F894DEBF0FBECDBF8C0185E058 -:10364000F801DE011D9601900D928A95E1F7D801EF -:103650004C9111965C91119712966C91129713965A -:10366000CD90DC9014973091AC017091AD018091B8 -:10367000AF019091B001009709F46BC17F3F19F43D -:103680003F3F09F466C1E090AE01EE2009F4C0C0EE -:103690002091B101C816D90628F0F601E81BF90BF4 -:1036A000CF0104C0809590958C0D9D1DFF24F3944F -:1036B000883C910578F0F12C207F09F0C6C07C2D64 -:1036C000D98AC88A89890E94651A8CEA91E00E9489 -:1036D000FC19B1C0822F807F09F046C0751314C059 -:1036E000341312C0611110C02F7020612093B101FA -:1036F0000E94A51A8CEA91E00E94FC198091B10108 -:10370000D80115968C932EC0CD2819F15F3F11F486 -:103710004F3FF9F0F62E61111CC080917A01209183 -:103720007B0136E0821709F45AC090E0389FF0011F -:10373000399FF00D1124E458FE4F7181571306C0D4 -:103740007081471303C07281711103C001968770A5 -:10375000E9CFF62E662309F418C18091B10181608A -:103760008093B101F12C11C1751308C0341306C048 -:10377000611104C08091B101D801C3C04D875E873B -:103780008D859E856A8B0E943B1A6A898823E1F1A8 -:103790006623D1F12091B101822F82958F7090E044 -:1037A000029774F08091AC019091AD0198878F835E -:1037B0001986DB86CA862C87CE0107960E94FC19E3 -:1037C00086E0F801ACEAB1E001900D928A95E1F74C -:1037D0000E94B31A0E94A51AFF24F394D6C04D8705 -:1037E0005E878D859E850E946F1F292F22952F70E1 -:1037F00030E0223031050CF0BCC09F7009F0B6C03B -:10380000805E883008F4C1C0C8010E94FC19E4CF72 -:10381000C816D90608F453C0F601E81BF90BCF010E -:10382000883C910508F450C0F12C7C2DD98AC88AB7 -:1038300089890E94651AECEAF1E086E0DF011D92B9 -:103840008A95E9F70E94A51AA0C0751314C0341315 -:1038500012C0611110C08091B101F8018583C801C7 -:103860000E94FC1986E0ECEAF1E0DF011D928A95E6 -:10387000E9F7FE2C8AC04D875E878D859E856A8B11 -:103880000E943B1A6A89882309F4BECF662309F493 -:10389000BBCF2091B101822F82958F7090E002976B -:1038A0000CF48ECF8091AC019091AD019A83898305 -:1038B0001B82DD82CC822E83CE0101967FCF809544 -:1038C00090958C0D9D1DACCFF62E662309F49CCFF0 -:1038D00075132EC034132CC02091B10120FD1FC0E0 -:1038E000822F82958F70D9F0D80115962C93159759 -:1038F0008F3049F08F5F982F9295907F822F8F7035 -:10390000892B15968C93C8010E94FC1986E0F8015A -:10391000ACEAB1E001900D928A95E1F793CF86E091 -:10392000F801ACEAB1E001900D928A95E1F72DC063 -:103930004D875E878D859E850E943B1A811140CF01 -:103940008091B10181608093B101C8010E94FC198E -:103950001CC0662309F458CF4D875E878D859E85F0 -:103960000E943B1A882309F44FCF2ACF811148CFF8 -:103970000CC0243031050CF047CF9F7009F440CFC4 -:10398000F8019581907F09F03BCF8F2D62960FB69D -:10399000F894DEBF0FBECDBFDF91CF911F910F9185 -:1039A000FF90EF90DF90CF9008951F93CF93DF9318 -:1039B000CDB7DEB72C970FB6F894DEBF0FBECDBFE4 -:1039C0004F83588769877A878B879C87CE010796B4 -:1039D0000E940E1B882369F08F8198852A853B857C -:1039E000232BF1F19F3F09F063C08F3F09F060C0C6 -:1039F00037C086E0FE013796DE01119601900D92E8 -:103A00008A95E1F76F817885EA85FB85309741F1EA -:103A10007F3F11F46F3F21F120917B0130E0C9011C -:103A200001968770992740917A0150E08417950795 -:103A300009F447C069837A83FD83EC8396E0929F03 -:103A4000D001939FB00D1124A458BE4FFE013196B2 -:103A500001900D929A95E1F780937B010E94841A60 -:103A600016E080917A0190917B018917C1F1189F2E -:103A7000C001112484589E4F0E940E1B882379F1A7 -:103A8000E0917A011E9FF0011124E458FE4F40811D -:103A9000518162817381848195810E94741A809121 -:103AA0007A0190E001968770992780937A01D9CFA7 -:103AB0004F81588569857A858B859C850E94741A0B -:103AC000CFCF0E94371A10927B0110927A01ECEA54 -:103AD000F1E086E0DF011D928A95E9F7C1CF2C96CF -:103AE0000FB6F894DEBF0FBECDBFDF91CF911F910F -:103AF0000895EF92FF920F931F93CF93DF938C0162 -:103B0000009709F46CC0F12CEE24E394E8012196AF -:103B1000F8018491843740F4843008F051C081303A -:103B200081F0823019F15BC0853709F444C0A8F1F7 -:103B30009CE7980F903708F052C08F770E947B1750 -:103B400041C00E5F1F4FFE01C49180E28C0F883090 -:103B500048F4C7708E2D01C0880FCA95EAF70E94FD -:103B6000772014C08C2F0E94DC162DC00E5F1F4FD3 -:103B7000FE01C49180E28C0F883058F4C7708E2DFE -:103B800001C0880FCA95EAF70E947D200E949E20FE -:103B90001AC08C2F0E947B1716C00E5F1F4FFE01AC -:103BA000C491CC2381F08FE99FE00197F1F700C029 -:103BB0000000C150F6CF0E5F1F4FFE01F49003C00E -:103BC0000E94DC168E018F2D882309F49FCFEFE928 -:103BD000FFE03197F1F700C000008150F5CFDF9191 -:103BE000CF911F910F91FF90EF90089508956093EA -:103BF000B6017093B7018093B8019093B9010C940A -:103C0000231A0F931F930091B6011091B7012091D1 -:103C1000B8013091B901DC01CB01802B912BA22B93 -:103C2000B32B8093B6019093B701A093B801B093E2 -:103C3000B9011F910F910C94231A0F931F930091B8 -:103C4000B6011091B7012091B8013091B901DC01A2 -:103C5000CB0180239123A223B3238093B6019093B9 -:103C6000B701A093B801B093B9011F910F910C94C3 -:103C7000231A0F931F930091B6011091B701209161 -:103C8000B8013091B901DC01CB0180279127A2272F -:103C9000B3278093B6019093B701A093B801B09376 -:103CA000B9011F910F910C94231A1092B201109236 -:103CB000B3011092B4011092B5010C94231A41E0A3 -:103CC00050E060E070E004C0440F551F661F771F8E -:103CD0008A95D2F74093B2015093B3016093B40137 -:103CE0007093B5010C94231A41E050E060E070E05D -:103CF00004C0440F551F661F771F8A95D2F7809125 -:103D0000B2019091B301A091B401B091B501482BDB -:103D1000592B6A2B7B2B4093B2015093B3016093D4 -:103D2000B4017093B5010C94231A41E050E060E0B7 -:103D300070E004C0440F551F661F771F8A95D2F7A5 -:103D400040955095609570958091B2019091B30126 -:103D5000A091B401B091B501482359236A237B2374 -:103D60004093B2015093B3016093B4017093B501D5 -:103D70000C94231A41E050E060E070E004C0440F6E -:103D8000551F661F771F8A95D2F78091B2019091D7 -:103D9000B301A091B401B091B501482759276A2712 -:103DA0007B274093B2015093B3016093B4017093A9 -:103DB000B5010C94231A0F931F930091B201109137 -:103DC000B3012091B4013091B501DC01CB01802B0E -:103DD000912BA22BB32B8093B2019093B301A093AC -:103DE000B401B093B5011F910F910C94231A0F9356 -:103DF0001F930091B2011091B3012091B401309151 -:103E0000B501DC01CB0180239123A223B32380934E -:103E1000B2019093B301A093B401B093B5011F9187 -:103E20000F910C94231A0F931F930091B2011091DC -:103E3000B3012091B4013091B501DC01CB018027A1 -:103E40009127A227B3278093B2019093B301A09347 -:103E5000B401B093B5011F910F910C94231A0895EA -:103E6000CF92DF92EF92FF920F931F93CF93DF9346 -:103E70008C01C090B601D090B701E090B801F090ED -:103E8000B9018091B2019091B301A091B401B091B8 -:103E9000B501C82AD92AEA2AFB2ACFE1D0E0D70106 -:103EA000C6010C2E04C0B695A795979587950A94E0 -:103EB000D2F780FF06C0B8018C2F0E94D30B019768 -:103EC00021F4219760F780E001C08C2FDF91CF9122 -:103ED0001F910F91FF90EF90DF90CF900895CF93B7 -:103EE000DF93EC010E94301FBE010E94D30BDF91D3 -:103EF000CF910895CB010E946F1F08958091BA0160 -:103F000085958595859508958091BA018770089566 -:103F100098E0899F90011124262B2093BA010C94DC -:103F2000741E2091BA01809582238093BA01982F44 -:103F3000977069F430E0482F552747FD50952417B6 -:103F4000350729F08595859585950C94951E0895DE -:103F50009091BA01977081E009F480E00895909102 -:103F60000B01992321F090910C01911109C020912E -:103F70000D0130910E01F90132969FEF40E030C003 -:103F8000982F9695969596959F30A0F4E0910D0107 -:103F9000F0910E01E90FF11D877021E030E0A901D9 -:103FA00002C0440F551F8A95E2F7CA019181892BFF -:103FB000818308959091CF0190FF23C01F928F932A -:103FC0008DE694E09F938F930E94D3070F900F90FC -:103FD0000F900F9008959F3F39F04F5F4E3041F0A2 -:103FE00051915813F8CF0DC05111F7CF942FF5CF41 -:103FF0009F3F39F0F901E90FF11D97FDFA95828392 -:104000000895089590910B01992321F090910C014E -:10401000911109C020910D0130910E01F9013296E4 -:10402000205F3F4F30C0982F9695969596959F307C -:10403000A8F4E0910D01F0910E01E90FF11D8770D8 -:1040400021E030E0A90102C0440F551F8A95E2F734 -:10405000CA01809591818923818308959091CF0130 -:1040600090FF16C01F928F938FE494E09F938F93DD -:104070000E94D3070F900F900F900F9008953196E4 -:10408000E217F30729F090819813F9CF1082F7CF48 -:10409000089581E090E0E0910D01F0910E01E80FAC -:1040A000F91F1082019680319105A9F7089590912A -:1040B000CE01892B8093CE01089580959091CE01F9 -:1040C00089238093CE0108951092CE010895909196 -:1040D000CD01892B8093CD01089580959091CD01DC -:1040E00089238093CD0108951092CD010895909178 -:1040F000CC01892B8093CC01089580959091CC01BF -:1041000089238093CC0108951092CC010895809367 -:10411000BB0108951092BB01089580910D0190910B -:104120000E01FC0131969C01205F3F4F80E0919190 -:1041300091118F5FE217F307D1F70895E0910D0118 -:10414000F0910E018091CE018083E0910D01F091FC -:104150000E0190818091CD01892B8083E0910D012A -:10416000F0910E0190818091CC01892B8083809108 -:10417000BB01882361F0E0910D01F0910E01908167 -:10418000892B80830E948D2081111092BB01809128 -:104190000D0190910E010C94711590934301809341 -:1041A0004201089520E0009739F0AC0141505109D7 -:1041B000842395232F5FF7CF822F08958295982F20 -:1041C0009C7C392F36953695282F237344E0249F05 -:1041D000C0011124932F982B292F2A7A2695892FF5 -:1041E0008575880F822B08951F93CF93DF931F92BD -:1041F000CDB7DEB799830E94DE20182F9981892FD1 -:104200000E94DE20212F30E0322F2227A901482BE7 -:10421000CA010F90DF91CF911F9108958091E40121 -:10422000843039F11092D00120E488E190E00FB69B -:10423000F894A895809360000FBE2093600080E002 -:104240000E94FA0780E00E946F0C83B7817F846030 -:1042500083BF83B7816083BF7894889583B78E7F4F -:1042600083BF88E10FB6F8948093600010926000DD -:104270000FBE08950895089580E00E94FA070E94F5 -:104280003A210E94CA0C0E943B210E94910D91E0AC -:10429000811101C090E0892F08950E94371A80E0B3 -:1042A0000E94FA070E94E22B0E9465150C946F0C85 -:1042B0001F920F920FB60F9211248F939F93AF937B -:1042C000BF938091D001811113C08091D101909151 -:1042D000D201A091D301B091D4014196A11DB11D8D -:1042E0008093D1019093D201A093D301B093D401D4 -:1042F000BF91AF919F918F910F900FBE0F901F9024 -:10430000189582E084BD93E095BD9AEF97BD8093A8 -:104310006E0008952FB7F8948091D1019091D20149 -:10432000A091D301B091D4012FBF0895CF92DF9215 -:10433000EF92FF920F931F932FB7F8944091D10102 -:104340005091D2016091D3017091D4012FBF6A01C5 -:104350007B01EE24FF248C0120E030E0C016D10662 -:10436000E206F30610F4415051099A01281B390B5B -:10437000C9011F910F91FF90EF90DF90CF900895AA -:104380001F920F920FB60F9211248F939F93AF93AA -:10439000BF938091D1019091D201A091D301B091AE -:1043A000D4010196A11DB11D8093D1019093D2013A -:1043B000A093D301B093D401BF91AF919F918F91FE -:1043C0000F900FBE0F901F9018950E946312F894E3 -:1043D0002FEF87EA91E6215080409040E1F700C03E -:1043E000000087E090EBDC018093EF019093F001F7 -:1043F000A093F101B093F2019CE088E10FB6F8942C -:10440000A895809360000FBE90936000FFCFEF925D -:10441000FF920F931F93CF93DF93D82FC5E08C2F7C -:104420000E94450D03E010E0E82EF12CC701002E9C -:1044300002C0959587950A94E2F780FF09C0602F26 -:104440007C2F80E00E944D09D81302C081E006C095 -:104450000150110958F7C15010F780E0DF91CF915A -:104460001F910F91FF90EF900895CF93C82F8CE28A -:104470000E940722882321F08C2FCF910C940722D1 -:1044800080E0CF910895CF930E949723811102C0BD -:104490000E94782382E994E00E943A07C5E6C15061 -:1044A00049F00E94CA0C8FE39CE90197F1F700C024 -:1044B0000000F5CF8BE894E00E943A0789E20E9461 -:1044C0003522811113C18AE20E94352281110E9496 -:1044D000782385E00E94352281110E94E5210E9407 -:1044E000A2238093CF0187E00E9435228823A9F17F -:1044F0008BE10E943522882351F08091CF0181FB0E -:10450000222720F991E0922790FB81F90EC08EE0DE -:104510000E943522882361F08091CF0182FB2227FF -:1045200020F991E0922790FB82F98093CF0115C08A -:1045300080E10E9435229091CF01882341F093FBC6 -:10454000222720F981E0822780FB93F904C0892F7C -:10455000809580FB90F99093CF018091CF010E94CC -:10456000A6230E94B4238093ED0180EE0E943522A1 -:10457000882341F08091ED01982F909590FB80F970 -:104580008093ED0189E30E943522882359F08091C0 -:10459000ED0181FB222720F991E0922790FB81F920 -:1045A0008093ED0182EE0E943522882359F080919C -:1045B000ED0182FB222720F991E0922790FB82F9FE -:1045C0008093ED0186EE0E943522882359F0809178 -:1045D000ED0183FB222720F991E0922790FB83F9DC -:1045E0008093ED0183EE0E943522882359F080915B -:1045F000ED0184FB222720F991E0922790FB84F9BA -:104600008093ED0185E30E943522882359F0809143 -:10461000ED0185FB222720F991E0922790FB85F997 -:104620008093ED0181E30E943522882359F0809127 -:10463000ED0186FB222720F991E0922790FB86F975 -:104640008093ED0181E10E943522882359F0809109 -:10465000ED0187FB222720F991E0922790FB87F953 -:104660008093ED018091ED010E94B8238091ED01CE -:1046700087FB882780F980930C0187E20E9435220E -:10468000C82F8EE10E9435228111C2608FE10E9405 -:1046900035228111C46080E20E9435228111C860F8 -:1046A00081E20E9435228111C06182E20E9435229E -:1046B0008111C06283E20E9435228111C06484E2CC -:1046C0000E943522882311F0C06802C0CC2329F053 -:1046D0008C2F0E94AF236C2F03C00E94AB23682F46 -:1046E00070E080E090E0CF910C94F71DCF91089599 -:1046F0006DEE7EEF80E090E00E94412E60E082E06F -:1047000090E00E942F2E60E083E090E00E942F2E28 -:1047100060E084E090E00E942F2E60E085E090E071 -:104720000E942F2E60E086E090E00C942F2E80E017 -:1047300090E00E94292E21E08D3E9E4F09F020E05E -:10474000822F089582E090E00C94212E682F82E061 -:1047500090E00C942F2E83E090E00C94212E682F93 -:1047600083E090E00C942F2E84E090E00C94212EB6 -:10477000682F84E090E00C942F2E86E090E00C945B -:10478000212E682F86E090E00C942F2E8091D70187 -:1047900080FF0BC06091120185E0689FB001112479 -:1047A00075956795759567952BC081FF09C06091D8 -:1047B000120185E0689FB00111247595679520C0AE -:1047C00082FF07C06091120185E0689FB00111244B -:1047D00017C09091D8019923D1F0609111019617DB -:1047E00088F72091120185E0289F90011124929F63 -:1047F000A001939F500D112470E0CA010E94F32D77 -:104800006038710540F46115710539F002C065E04A -:1048100070E0862F08958FE7089581E008958091D4 -:10482000D70180FF08C06091100170E07595679511 -:104830007595679521C081FF06C06091100170E0F9 -:104840007595679519C082FF04C06091100170E0F2 -:1048500010C09091D8019923C1F060910F01961773 -:10486000A0F780911001899FC001112470E00E947F -:10487000F32D6038710528F46115710521F0862F3C -:1048800008958FE7089581E0089561E070E0F4CF26 -:10489000803F21F40E94C623819504C0813F29F402 -:1048A0000E94C6238093DB010895823F21F40E9479 -:1048B000C623819504C0833F29F40E94C6238093B8 -:1048C000DA010895893F19F40E940F2405C08A3F38 -:1048D00031F40E940F2481958093DC0108958B3F71 -:1048E00021F40E940F24819504C08C3F29F40E947A -:1048F0000F248093DD010895843F21F48091D90134 -:10490000816017C0853F21F48091D901826011C078 -:10491000863F21F48091D90184600BC0873F21F448 -:104920008091D901886005C0883F31F48091D90118 -:1049300080618093D90108958D3F21F48091D70142 -:1049400081600BC08E3F21F48091D701826005C049 -:104950008F3F29F48091D70184608093D701089517 -:10496000803F39F48091DB0187FF6CC01092DB013E -:1049700069C0813F29F48091DB011816BCF362C045 -:104980009091DA01823F29F497FF5CC01092DA011E -:1049900059C0833F19F41916CCF354C0893F41F430 -:1049A0008091DC0118160CF04DC01092DC014AC059 -:1049B0008A3F29F48091DC0187FF44C0F6CF8B3F0A -:1049C00039F48091DD0187FF3DC01092DD013AC0CE -:1049D0008C3F29F48091DD011816BCF333C0843F6D -:1049E00021F48091D9018E7F17C0853F21F48091F9 -:1049F000D9018D7F11C0863F21F48091D9018B7F31 -:104A00000BC0873F21F48091D901877F05C0883F83 -:104A100031F48091D9018F7E8093D90113C08D3FED -:104A200021F48091D7018E7F0BC08E3F21F48091BD -:104A3000D7018D7F05C08F3F29F48091D7018B7FEF -:104A40008093D7018091DA0181110EC08091DB0142 -:104A500081110AC08091DC01811106C08091DD01C5 -:104A6000811102C01092D80108958091CF0183FF77 -:104A70007EC08EEC94E00E943A078091D9011F928B -:104A80008F9389EC94E09F938F930E94D30787ECD8 -:104A900094E00E943A078091DA01282F332727FDFE -:104AA00030953F938F9384EC94E09F938F930E9473 -:104AB000D30782EC94E00E943A078091DB01282F13 -:104AC000332727FD30953F938F938FEB94E09F938F -:104AD0008F930E94D3078DEB94E00E943A07809158 -:104AE000DC01282F332727FD30953F938F938AEBE6 -:104AF00094E09F938F930E94D30788EB94E00E94E9 -:104B00003A078091DD01282F332727FD30953F9309 -:104B10008F9385EB94E09F938F930E94D30782EB52 -:104B200094E00E943A078091D8011F928F938FEAF8 -:104B300094E09F938F930E94D3078DEA94E00E94A4 -:104B40003A078091D7011F928F938AEA94E09F934E -:104B50008F930E94D30787EA94E00E943A078DB7AB -:104B60009EB74C960FB6F8949EBF0FBE8DBF89EDD1 -:104B700091E00E94BA150E948A219093D6018093F9 -:104B8000D50108951F93CF93DF938091D501909124 -:104B9000D6010E949621AC019091D801992321F071 -:104BA0002091130130E006C0209114018AE0289F73 -:104BB000900111244217530708F486C08091DA014E -:104BC000C091DB01D091DC011091DD01811107C0A2 -:104BD000C11176C0D11174C0111172C075C09F3F50 -:104BE00019F09F5F9093D801181624F40E94C623F1 -:104BF0008093DA018091DA0187FF05C00E94C62305 -:104C000081958093DA011C1624F40E94C6238093B8 -:104C1000DB018091DB0187FF05C00E94C6238195DF -:104C20008093DB016091DA01662339F1C091DB01E9 -:104C3000CC2319F1772767FD7095872F972F0E9456 -:104C4000F82C23E333E343E35FE30E945C2D0E94EF -:104C5000C52C6093DA016C2F772767FD7095872F3D -:104C6000972F0E94F82C23E333E343E35FE30E9492 -:104C70005C2D0E94C52C6093DB011D1624F40E945C -:104C80000F248093DC018091DC0187FF05C00E9426 -:104C90000F2481958093DC01111624F40E940F24C7 -:104CA0008093DD018091DD0187FF05C00E940F2404 -:104CB00081958093DD01DF91CF911F910C94352573 -:104CC0009F3F09F08ECF96CFDF91CF911F9108952E -:104CD000E9EDF1E085E0DF011D928A95E9F7109298 -:104CE000D8011092D701089581EF96E00E943A070B -:104CF0001F9281E08F931F9285E08F9383EA96E065 -:104D00009F938F930E94D3070F900F900F900F9057 -:104D10000F900F9008958330E9F128F4813061F00D -:104D2000823009F10895853009F462C008F449C061 -:104D3000863009F474C0089580911401262F30E064 -:104D4000280F311D2F3F310524F4680F60931401A3 -:104D500003C08FEF80931401809114011F928F93F1 -:104D60008CED95E072C080911301262F30E0280F62 -:104D7000311D2F3F310524F4680F6093130103C0E8 -:104D80008FEF80931301809113011F928F938AEC10 -:104D900095E05BC080911201262F30E0280F311D75 -:104DA0002F3F310524F4680F6093120103C08FEF89 -:104DB00080931201809112011F928F9387EB95E0EF -:104DC00044C080911101262F30E0280F311D2F3F64 -:104DD000310524F4680F6093110103C08FEF8093B5 -:104DE0001101809111011F928F9382EA95E02DC0ED -:104DF00080911001262F30E0280F311D2F3F310503 -:104E000024F4680F6093100103C08FEF80931001AA -:104E1000809110011F928F9389E895E016C08091D0 -:104E20000F01262F30E0280F311D2F3F310524F4CC -:104E3000680F60930F0103C08FEF80930F01809183 -:104E40000F011F928F938EE695E09F938F930E94A0 -:104E5000D3070F900F900F900F900895833081F13A -:104E600028F4813059F08230D1F00895853009F46A -:104E700049C0B8F1863009F456C0089580911401F4 -:104E8000681720F4861B8093140102C0109214014D -:104E9000809114011F928F938FE595E054C080910B -:104EA0001301681720F4861B8093130102C010922F -:104EB0001301809113011F928F938DE495E043C0FD -:104EC00080911201681720F4861B8093120102C0A2 -:104ED00010921201809112011F928F938AE395E044 -:104EE00032C080911101681720F4861B8093110154 -:104EF00002C010921101809111011F928F9385E2DF -:104F000095E021C080911001681720F4861B8093E2 -:104F1000100102C010921001809110011F928F9316 -:104F20008CE095E010C080910F01681720F4861B7B -:104F300080930F0102C010920F0180910F011F9208 -:104F40008F9381EF94E09F938F930E94D3070F90EC -:104F50000F900F900F900895CF93C82F1F928F93AB -:104F600086EF97E09F938F930E94D30781E090E0B4 -:104F7000A0E0B0E0BC01CD0104C0660F771F881F20 -:104F8000991FCA95D2F70E94F71D0F900F900F90AE -:104F90000F90CF910C94371ACF938B3109F40FC235 -:104FA00008F049C08E3009F41EC200F5873009F4BC -:104FB000E7C1A8F4863009F0A4C28091CF01817FB7 -:104FC0008E7F8093CF018EE699E00E943A0786E6B5 -:104FD0009DE00E943A0781E08093DF01CFC18830D5 -:104FE00009F45BC08B3009F4C5C18BC2813109F46F -:104FF00070C220F4803109F40AC283C2863109F4F8 -:1050000021C2893109F07DC28FE599E00E943A07FB -:1050100086E499E00E943A0780E199E00E943A070D -:1050200083EE98E00E943A078FE998E00E943A07E1 -:1050300084E798E0A1C1853309F45FC268F4873240 -:1050400009F45BC228F48E3108F45BC28D5156C25C -:10505000893209F452C255C2833438F48A3308F0D5 -:105060004AC2883309F486C14CC2833409F445C26C -:10507000883409F046C20E94371A8AE49DE00E94F3 -:105080003A079FEF23ED80E3915020408040E1F705 -:1050900000C000000E94E52171C18AE69DE00E94E7 -:1050A0003A0787EB9CE00E943A070E94AB231F92CD -:1050B0008F9384EB9CE09F938F930E94D30782EBA6 -:1050C0009CE00E943A070E94A223C82F8FE99CE02F -:1050D0000E943A071F92CF938AE99CE09F938F9397 -:1050E0000E94D30788E99CE00E943A078EE89CE082 -:1050F0000E943A078C2F81701F928F938BE89CE05F -:105100009F938F930E94D30789E89CE00E943A07FF -:105110008FE79CE00E943A07C1FB882780F91F9225 -:105120008F938CE79CE09F938F930E94D3078AE72D -:105130009CE00E943A078EE69CE00E943A07C2FB80 -:10514000882780F91F928F938BE69CE09F938F9323 -:105150000E94D30789E69CE00E943A0780E69CE023 -:105160000E943A07C3FBCC27C0F91F92CF938DE56D -:105170009CE09F938F930E94D3078BE59CE00E9455 -:105180003A070E94B423C82F87E49CE00E943A07A4 -:105190001F92CF9382E49CE09F938F930E94D3074A -:1051A00080E49CE00E943A0787E29CE00E943A0774 -:1051B0008C2F81701F928F9384E29CE09F938F933A -:1051C0000E94D3078DB79EB780960FB6F8949EBF06 -:1051D0000FBE8DBF82E29CE00E943A078BE09CE00C -:1051E0000E943A07C1FB882780F91F928F9388E0BD -:1051F0009CE09F938F930E94D30786E09CE00E94DF -:105200003A0784EF9BE00E943A07C2FB882780F9A7 -:105210001F928F9381EF9BE09F938F930E94D30700 -:105220008FEE9BE00E943A078DED9BE00E943A07CB -:10523000C3FB882780F91F928F938AED9BE09F9391 -:105240008F930E94D30788ED9BE00E943A078EEC73 -:105250009BE00E943A07C4FB882780F91F928F9336 -:105260008BEC9BE09F938F930E94D30789EC9BE08C -:105270000E943A0787EB9BE00E943A07C5FB88270C -:1052800080F91F928F9384EB9BE09F938F930E94F2 -:10529000D30782EB9BE00E943A0786E99BE00E94DD -:1052A0003A07C6FB882780F91F928F9383E99BE01A -:1052B0009F938F930E94D30781E99BE00E943A0756 -:1052C00089E89BE00E943A07C7FBCC27C0F91F92F0 -:1052D000CF9386E89BE09F938F930E94D30784E847 -:1052E0009BE00E943A070E94BD23C82F8DE69BE0F9 -:1052F0000E943A071F92CF9388E69BE09F938F937B -:105300000E94D3078DB79EB780960FB6F8949EBFC4 -:105310000FBE8DBF86E69BE00E943A078CE59BE0BE -:105320000E943A078C2F81701F928F9389E59BE032 -:105330009F938F930E94D30787E59BE00E943A07D3 -:105340008EE49BE00E943A07C6951F92CF938BE4B0 -:105350009BE09F938F930E94D30789E49BE00E9478 -:105360003A078DB79EB708960FB6F8949EBF0FBE4A -:105370008DBF04C085E999E00E943A07C1E0C6C02C -:105380008091CF01C82FC095C170C0FB80F9809378 -:10539000CF01CC2349F08EE39DE00E943A07809133 -:1053A000CF018660886048C081E39DE00E943A0793 -:1053B0008091CF01897F877F8093CF01DFCF90914C -:1053C000CF0191FBCC27C0F981E0C827892FC0FB12 -:1053D00081F98093CF01CC2319F084E29DE027C0AE -:1053E00086E19DE0C9CF9091CF0192FBCC27C0F917 -:1053F00081E0C827892FC0FB82F98093CF01CC239D -:1054000019F087E09DE013C087EF9CE0B5CF909145 -:10541000CF0193FBCC27C0F981E0C827892FC0FBBF -:1054200083F98093CF01CC2351F08BEE9CE00E9456 -:105430003A078091CF0181608093CF0167C08EEDE4 -:105440009CE09ACF86E698E00E943A070E94651594 -:105450001F928F938CE498E09F938F930E94D307C1 -:1054600080910B011F928F9385E398E09F938F9318 -:105470000E94D30780916C011F928F9382E298E083 -:105480009F938F930E94D30780910C011F928F935B -:105490008FE098E09F938F930E94D3078091D10172 -:1054A0009091D201A091D301B091D401BF93AF9359 -:1054B0009F938F938BEF97E09F938F930E94D307D7 -:1054C0008DB79EB746960FB6F8949EBF0FBE8DBFA0 -:1054D00055CF0E94371AC0910C0181E0C827C093B4 -:1054E0000C01CC2329F084ED9CE00E943A070EC009 -:1054F00089EC9CE041CF895301C080E00E94AC2739 -:105500003DCF87EC9CE00E943A07C0E08C2FCF9102 -:10551000089580E0089580E00895CF93C82F80918A -:10552000DF01813071F020F0823009F44BC042C1BC -:10553000E0910D01F0910E018081823209F03CC1B1 -:1055400007C0E0910D01F0910E018081823261F47B -:105550008C2F0E94892A811104C08C2F0E94CC2795 -:105560002FC081E090E02CC08C2F0E948B2A8111EB -:1055700026C0C431E1F070F4CB3081F0C031D1F4F9 -:105580000E9474268EEE97E00E943A0782E0809394 -:10559000DF0115C0C93259F0C83361F48EE699E0D5 -:1055A0000E943A0782EF97E00E943A0708C01092E3 -:1055B000DF0104C18CEE97E00E943A07FFC081E052 -:1055C0008170FEC0C43228F5CE3108F0C1C0CB30A6 -:1055D000A1F1D0F4C73009F0D3C08EE1809314015B -:1055E00082E3809313018AE08093120184E1809327 -:1055F000110188E08093100188E280930F0182E915 -:1056000096E00E943A07BFC0C33149F1C431C1F0EE -:10561000B7C0CB3409F4A9C028F4C93289F0C83323 -:1056200061F0AEC0C13509F49EC0C23509F499C01D -:10563000CE3409F0A5C06AE09EC00E947426A3C0C3 -:105640008091DE01882319F01092DE019CC08FE961 -:1056500096E00E943A0781E08093DF01B1C089E7BC -:1056600096E00E943A0787E696E00E943A0780910A -:1056700014011F928F9384E696E09F938F930E946C -:10568000D30782E696E00E943A0780E596E00E9402 -:105690003A07809113011F928F938DE496E09F93B8 -:1056A0008F930E94D3078BE496E00E943A078CE325 -:1056B00096E00E943A07809112011F928F9389E32E -:1056C00096E09F938F930E94D30787E396E00E9412 -:1056D0003A0786E296E00E943A07809111011F92F4 -:1056E0008F9383E296E09F938F930E94D30781E28A -:1056F00096E00E943A078CE096E00E943A0780917B -:1057000010011F928F9389E096E09F938F930E94E0 -:10571000D30787E096E00E943A0780EF95E00E9469 -:105720003A0780910F011F928F938DEE95E09F9322 -:105730008F930E94D3078BEE95E00E943A078DB7B6 -:105740009EB748960FB6F8949EBF0FBE8DBF1BC084 -:10575000CE51EC2FF0E0E85CFE4F80818093DE01BB -:1057600012C061E003C061E006C06AE08091DE0122 -:105770000E948B2608C08091DE010E942E2703C064 -:1057800080E996E013C08091DE01882369F01F92C2 -:105790008F938AE896E09F938F930E94D3070F9090 -:1057A0000F900F900F9004C087E896E00E943A0790 -:1057B00081E006C01092DF0180E002C080E000CFEF -:1057C000CF9108950E949723811102C00E947823EF -:1057D0000E94BD238093EE0180FF02C0869501C028 -:1057E00080E00C94FA078091EE01982F9695292F6E -:1057F00030E0233031054CF49F5F990F8170892B85 -:1058000081608093EE010E94C1238091CF0180FFCF -:105810000FC08091EE0186951F928F9387EB9DE0DC -:105820009F938F930E94D3070F900F900F900F902C -:105830008091EE0186950C94FA078091EE01982FE5 -:10584000969591F09158990F8170892B8093EE0174 -:105850008E7F91E009F490E08091EE0190FB80F959 -:105860008093EE010E94C1238091CF0180FF0FC081 -:105870008091EE0186951F928F938FE99DE09F9313 -:105880008F930E94D3070F900F900F900F908091ED -:10589000EE0186950C94FA078091EE01982F909571 -:1058A00090FB80F98093EE010E94C1238091CF018B -:1058B00080FF0FC08091EE0181701F928F9389E865 -:1058C0009DE09F938F930E94D3070F900F900F90AE -:1058D0000F908091EE0180FF02C0869501C080E0AC -:1058E0000C94FA079091EE01892F86958F5F8F7740 -:1058F0009170843028F4880F892B8093EE0102C0C8 -:105900009093EE018091EE018E7F91E009F490E09A -:105910008091EE0190FB80F98093EE010E94C123FB -:105920008091CF0180FF0FC08091EE0186951F927C -:105930008F9385E79DE09F938F930E94D3070F90ED -:105940000F900F900F908091EE0186950C94FA07BE -:105950002091EE01922F96958927982F990F822FEB -:105960008170892B8093EE018E7F91E009F490E0A5 -:105970008091EE0190FB80F98093EE010E94C1239B -:105980008091EE0186950C94FA0704D06894B111C9 -:105990008DC0089570D088F09F5790F0B92F992747 -:1059A000B751A0F0D1F0660F771F881F991F1AF02A -:1059B000BA95C9F712C0B13081F077D0B1E008953F -:1059C00074C0672F782F8827B85F39F0B93FCCF3C0 -:1059D000869577956795B395D9F73EF49095809520 -:1059E000709561957F4F8F4F9F4F0895E89409C040 -:1059F00097FB3EF490958095709561957F4F8F4F02 -:105A00009F4F9923A9F0F92F96E9BB279395F69517 -:105A1000879577956795B795F111F8CFFAF4BB0F95 -:105A200011F460FF1BC06F5F7F4F8F4F9F4F16C0F9 -:105A3000882311F096E911C0772321F09EE8872F83 -:105A4000762F05C0662371F096E8862F70E060E03F -:105A50002AF09A95660F771F881FDAF7880F9695B8 -:105A6000879597F9089557FD9058440F551F59F0A1 -:105A70005F3F71F04795880F97FB991F61F09F3F3B -:105A800079F087950895121613061406551FF2CF64 -:105A90004695F1DF08C0161617061806991FF1CFB4 -:105AA00086957105610508940895E894BB276627DB -:105AB0007727CB0197F908950BD078C069D028F0EB -:105AC0006ED018F0952309F05AC05FC01124EECFB4 -:105AD000CADFA0F3959FD1F3950F50E0551F629F49 -:105AE000F001729FBB27F00DB11D639FAA27F00D37 -:105AF000B11DAA1F649F6627B00DA11D661F829F5E -:105B00002227B00DA11D621F739FB00DA11D621F42 -:105B1000839FA00D611D221F749F3327A00D611D5F -:105B2000231F849F600D211D822F762F6A2F112441 -:105B30009F5750408AF0E1F088234AF0EE0FFF1F94 -:105B4000BB1F661F771F881F91505040A9F79E3FCB -:105B5000510570F014C0AACF5F3FECF3983EDCF320 -:105B6000869577956795B795F795E7959F5FC1F708 -:105B7000FE2B880F911D9695879597F9089597F9B3 -:105B80009F6780E870E060E008959FEF80EC0895E3 -:105B900000240A941616170618060906089500240C -:105BA0000A9412161306140605060895092E039486 -:105BB000000C11F4882352F0BB0F40F4BF2B11F4FA -:105BC00060FF04C06F5F7F4F8F4F9F4F0895991BF9 -:105BD00079E004C0991F961708F0961B881F7A95E4 -:105BE000C9F78095089597FB072E16F4009407D007 -:105BF00077FD09D00E940D2E07FC05D03EF490954C -:105C000081959F4F0895709561957F4F0895EE0F90 -:105C1000FF1F0590F491E02D0994AA1BBB1B51E1D5 -:105C200007C0AA1FBB1FA617B70710F0A61BB70B0C -:105C3000881F991F5A95A9F780959095BC01CD01B1 -:105C40000895F999FECF92BD81BDF89A992780B544 -:105C50000895A8E1B0E042E050E00C94492E262FD0 -:105C6000F999FECF92BD81BDF89A019700B4021652 -:105C700039F01FBA20BD0FB6F894FA9AF99A0FBE00 -:105C800008950196272F0E94302E0C942F2EDC01B0 -:105C9000CB01FC01F999FECF06C0F2BDE1BDF89A37 -:105CA000319600B40D9241505040B8F70895F894E1 -:025CB000FFCF24 -:105CB200FFA20D930E700E3C0E080E0101BC0128CE -:105CC20008140A321E031323330F1F4F5F6F7F3FE7 -:105CD2004D362039DD0390035A033A03010374025F -:105CE2008D02A602BF02DF020102030405060708B5 -:025CF2000900A7 -:00000001FF diff --git a/keyboards/arrow_pad/keymaps/pad_21/compiled.hex b/keyboards/arrow_pad/keymaps/pad_21/compiled.hex deleted file mode 100644 index 642c9e40c..000000000 --- a/keyboards/arrow_pad/keymaps/pad_21/compiled.hex +++ /dev/null @@ -1,893 +0,0 @@ -:100000000C944A010C948E010C948E010C948E0178 -:100010000C948E010C948E010C948E010C948E0124 -:100020000C948E010C948E010C94B10A0C94830BE9 -:100030000C9424180C948E010C948E010C948E0157 -:100040000C948E010C948E010C948E010C948E01F4 -:100050000C948E010C948C180C948E010C948E01CF -:100060000C948E010C948E010C948E010C948E01D4 -:100070000C948E010C948E010C948E010C948E01C4 -:100080000C948E010C948E010C948E010C948E01B4 -:100090000C948E010C948E010C948E010C948E01A4 -:1000A0000C948E010C948E010C948E01F00B120CAA -:1000B000000D120C000D570C7A0C000DCF0CE20C49 -:1000C000730F730FA20FA20F06110611061106116E -:1000D000E10F061191109110F71006110611001191 -:1000E0009E109E109E109E109E109E109E109E10A0 -:1000F0009E109E109E109E109E109E109E109E1090 -:10010000AE10BC10C310CA10D410F1A2028A00D2E3 -:1001100000D000D100C801C802C829002B0031005E -:10012000C0005F0060006100570059005A005B008A -:1001300053005400550056005C005D005E005800FE -:1001400000006200630029002B002C0001004A001F -:1001500052004B00C7004D0051004E00C100190174 -:100160001C011D015000C5004F00C60000002A0000 -:100170004C00C200C300C4000100010001000100E6 -:100180000100010001000100C100010001000100A7 -:1001900001000100010001000000005001001A03ED -:1001A0004100720072006F00770020005000610073 -:1001B000640020003200310000000E034E006F008A -:1001C00062006F0064007900000004030904090262 -:1001D0003B00020100A0FA09040000010301010034 -:1001E000092111010001223F000705810308000ACF -:1001F000090401000103000000092111010001228E -:1002000039000705820310000112011001000000EF -:1002100008EDFE974001000102000105010906A159 -:1002200001050719E029E7150025019508750181E9 -:1002300002050819012905950575019102950175B9 -:100240000391010507190029771500250195787597 -:10025000018102C005010906A101050719E029E78E -:100260001500250195087501810295017508810128 -:100270000508190129059505750191029501750378 -:1002800091010507190029FF150025FF950675083E -:100290008100C00011241FBECFEFDAE0DEBFCDBF6A -:1002A00004B603FE24C08091C3019091C401A091C3 -:1002B000C501B091C6018730904BA740B04BB9F44F -:1002C0001092C3011092C4011092C5011092C60190 -:1002D00014BE84B7877F84BF88E10FB6F8948093FB -:1002E0006000109260000FBEE0E0FFE3099511E0AE -:1002F000A0E0B1E0E4E9F7E302C005900D92AA3175 -:10030000B107D9F711E0AAE1B1E001C01D92A33C09 -:10031000B107E1F70E94F8070C94C81B0C94000089 -:100320000895089581E008950C9490010C94910132 -:100330000C9492010C9400020895CF93DF93EC018A -:100340006130F1F018F06230E9F155C08A818823FC -:1003500009F451C080EE0E94670E8D81807F80314C -:1003600029F486E00E94670E86E006C0803231F4F0 -:100370008BE10E94670E8BE10E94060F80EE1FC08A -:100380008A818823C1F08D8182958F7090E00397D8 -:100390001CF482E00E942E0F8D81807F803219F440 -:1003A00081E00E942E0F8D81807F803321F588E5CA -:1003B0000E94670E20C083E00E94350F88E50E94EE -:1003C000060F19C08A81882399F08D8182958F70DC -:1003D00090E002971CF481E00E942E0F8D8182959F -:1003E0008F7090E002973CF084E00E942E0F03C0D3 -:1003F00085E00E94350F80E090E0DF91CF91089575 -:1004000081FF03C0569A5E9A02C056985E9880FF9C -:1004100005C03F9A88B18F6788B908953F9847987B -:10042000089581E008950C94110208950F931F938D -:10043000CF93DF938C01FC01C081D181CE010E945A -:100440005E16BE010E94C202EC01B8010E941302B6 -:10045000882309F48DC0F8018281882309F44AC0F9 -:100460008091250181111FC0C431F0E5DF0709F03B -:1004700051C00E94150281E0809325010E94561808 -:10048000909324018093230110921C0110921E016D -:1004900010921D011092200110921F011092220152 -:1004A0001092210165C080912301909124010E9446 -:1004B0006218883C910570F480911C01E82FF0E0EF -:1004C000EE0FFF1FE35EFE4FD183C0838F5F8093EB -:1004D0001C014EC0C43880E5D80721F0C538D0458E -:1004E00001F13AC0F8018281882341F010921A018B -:1004F00082E01EC0C438E0E5DE0759F580911A019C -:10050000811106C086E20E94670E86E20E94060FF5 -:1005100082E01CC0C438F0E5DF0741F3C538D045A0 -:10052000D9F4F8018281882331F010921B0180E216 -:100530000E942E0F1DC080911B01811106C087E211 -:100540000E94670E87E20E94060F80E20E94350F2C -:100550000FC0C538D04529F381E080931A018093FC -:100560001B01C801DF91CF911F910F910C9498014D -:1005700080E0DF91CF911F910F9108950C94940129 -:100580000C9496019BE0799FF001112496E1899FDC -:10059000E00DF11D1124E60FF11DEE0FFF1FE65EC9 -:1005A000FE4F859194910895880F991FFC01E6579D -:1005B000F040859194910895880F991FFC01E65FA2 -:1005C000FE4F8591949108950F931F93CF93DF93DE -:1005D000EC01811520E3920750F5C11580E2D807A0 -:1005E00008F0C3C0CB3BD10590F4C83AD10508F060 -:1005F0006AC0C53AD10508F05BC0C430D10508F027 -:10060000D0C1219709F0CAC101E010E00AC2CF3F72 -:10061000D10511F008F0C5C1C03FD10508F0A2C056 -:10062000CE01805E9109089708F4BBC1B7C1C13003 -:1006300090E5D90709F4A2C020F5C0318FE4D807AE -:1006400070F4C11590E4D90708F094C0C11521E3F6 -:10065000D20708F0A3C1DD278E01106CE2C1C115DD -:10066000D04509F09BC10E9465118FEF94E32CE007 -:10067000815090402040E1F700C000000E94B11876 -:10068000D0C1C11597E5D90758F4C03121E5D2078B -:1006900008F01CC1C43180E5D80708F475C07EC1DC -:1006A000CE0190578115904108F078C1DF7073C179 -:1006B000C53AD10509F477C1C63AD10509F076C12A -:1006C00002E810E4AEC1C83AD10509F472C1C93AD2 -:1006D000D10509F471C1CA3AD10509F470C1CB3A08 -:1006E000D10509F46FC1CC3AD10509F46EC1CD3AF8 -:1006F000D10509F46DC1C03BD10509F46CC1CE3AF6 -:10070000D10509F46BC1CF3AD10509F46AC1C13BE7 -:10071000D10509F469C1C23BD10509F468C1C33BE5 -:10072000D10509F467C1C43BD10509F466C1C53BD5 -:10073000D10509F465C1C63BD10509F464C1C73BC5 -:10074000D10509F463C1C83BD10509F462C1C93BB5 -:10075000D10509F461C1CA3BD10509F460C100E0CB -:1007600014E45FC18E0110655CC1CE019F700E94D0 -:10077000DC0258C1DF708E01106A53C18091AE0156 -:1007800081608093AE014DC10E94611A811102C047 -:100790000E94471A0E947E1A90E09093C3018093B2 -:1007A000C201C23080E5D80721F48091C201816086 -:1007B00086C0C43090E5D90721F48091C2018260DF -:1007C0007EC0C63020E5D20721F48091C20184604A -:1007D00076C0C83080E5D80719F48091C20127C0DF -:1007E000CA3090E5D90721F48091C201806167C0C9 -:1007F000CC3020E5D20721F48091C20180625FC035 -:10080000CE3080E5D80721F48091C201806457C0C2 -:10081000C03190E5D90721F48091C20180684FC0B2 -:10082000C23120E5D20729F48091C201846088603A -:1008300046C0C33080E5D80721F48091C2018E7F85 -:100840003EC0C53090E5D90721F48091C2018D7F6B -:1008500036C0C73020E5D20721F48091C2018B7FDA -:100860002EC0C93080E5D80719F48091C20126C096 -:10087000CB3090E5D90721F48091C2018F7E1FC053 -:10088000CD3020E5D20721F48091C2018F7D17C0C1 -:10089000CF3080E5D80721F48091C2018F7B0FC053 -:1008A000C13190E5D90721F48091C2018F7707C04B -:1008B000C331D04531F48091C2018B7F877F809313 -:1008C000C2018091C2010E94821AABC08D2F99276C -:1008D0008F70992781309105D9F49E0123703327B9 -:1008E00002C0880F991F2A95E2F79C688E0144E0A8 -:1008F000000F111F4A95E1F700271370802B912BF1 -:1009000053E0CC0FDD1F5A95E1F7C076DD272FC0ED -:100910008230910531F4DC2FCC278E01016F106AF3 -:1009200080C08330910569F4CE018370992701E07E -:1009300010E002C0000F111F8A95E2F7C8019C6801 -:100940000FC084309105B9F4CE018370992701E07E -:1009500010E002C0000F111F8A95E2F7C8019A68E3 -:1009600023E0CC0FDD1F2A95E1F7C07ED7708C0104 -:100970000C2B1D2B56C08530910531F4DC2FCC2774 -:100980008E01046F106A4DC0069709F04AC0CF71FE -:10099000DD27DC2FCC278E01106243C000E010E081 -:1009A00040C08E013EC001E810E43BC003E810E403 -:1009B00038C002EE14E435C009EE14E432C00AEE89 -:1009C00014E42FC005EB14E42CC006EB14E429C09A -:1009D00007EB14E426C00CEC14E423C00DEC14E483 -:1009E00020C003E815E41DC00AE815E41AC002E9B6 -:1009F00015E417C004E915E414C001E216E411C0BF -:100A000003E216E40EC004E216E40BC005E216E4AD -:100A100008C006E216E405C007E216E402C00AE2D6 -:100A200016E4C801DF91CF911F910F9108959BE0CB -:100A3000799FF001112496E1899FE00DF11D1124A9 -:100A4000E60FF11DEE0FFF1FE65EFE4F85919491BC -:100A5000803E9105E0F4803C910558F58133910585 -:100A600009F46FC048F48932910509F463C08A32F1 -:100A7000910509F46DC072C089339105E9F082389F -:100A80009105D1F08533910509F44DC067C0833ECF -:100A9000910581F138F4803E9105B9F0823E9105CF -:100AA000D9F05CC0863E910561F1873E9105A1F1C8 -:100AB00055C00E94D40208952091C20120FD02C0B9 -:100AC00021FF4CC080EE90E049C08091C20180FFC0 -:100AD000F9CF89E390E042C08091C20182FF0EC04D -:100AE0008091C20184FF03C080E090E037C083EEB4 -:100AF00090E034C08091C20182FFF2CF82EE90E09C -:100B00002DC08091C20183FF0BC08091C20184FD82 -:100B1000EBCF87EE90E022C08091C20183FFF5CF3A -:100B200086EE90E01BC08091C20185FF07C089E27C -:100B300090E014C08091C20185FFF9CF85E390E079 -:100B40000DC08091C20186FF07C08AE290E006C016 -:100B50008091C20186FFF9CF81E390E00E94E40218 -:100B600008950C949A01E82FF0E0E15FFE4F808138 -:100B7000E82FEF70F0E082958F7021E030E0A9015E -:100B800002C0440F551F8A95E2F740A308950F93C2 -:100B90001F93CF93DF9385B7806885BF85B7806843 -:100BA00085BFCAE0D0E001E010E0FE01E15FFE4F4A -:100BB0008081E82FEF70F0E021A182958F70A8016D -:100BC00002C0440F551F8A95E2F7CA01822B81A308 -:100BD0008C2F0E94B305219740F75D9A5B9ADF91B5 -:100BE000CF911F910F910C94BE020F931F93CF933F -:100BF000DF9301E311E0CAE0D5E08C2F0E94B3053A -:100C00004D9902C082E001C080E04B9B8160F801F9 -:100C100092918F01981719F08083D09300018C2F47 -:100C20000E94B305C15048F78091000187FD1CC0A8 -:100C30008150809300018F3F39F08FE99FE0019749 -:100C4000F1F700C0000010C080E090E0FC01EF5C14 -:100C5000FE4FDC01AA5DBE4F1A962C9122870197A8 -:100C6000853FEFEF9E0791F70E94C00281E0DF9180 -:100C7000CF911F910F91089591E001C0990F8A952E -:100C8000EAF72AE030E040E050E061E070E0F9018E -:100C9000EF5CFE4F8081892349F0FB01022E02C0E8 -:100CA000EE0FFF1F0A94E2F74E2B5F2B2150310904 -:100CB00070F7CA0108950895CF9381E00E943C0621 -:100CC0000E94D917C82F80E00E943C060E94D917C5 -:100CD0008C0FCF91089580914C0108950895CF9382 -:100CE000DF9300D01F92CDB7DEB72091B901243039 -:100CF00021F523E029839B838A8381E08093E900A7 -:100D00008FEF9091E800815095FD06C095ED9A9582 -:100D1000F1F700008111F5CF8091E80085FF0DC04B -:100D200040E050E063E070E0CE0101960E94A1082F -:100D30008091E8008E778093E8000F900F900F90DD -:100D4000DF91CF910895CF93DF9300D01F92CDB75D -:100D5000DEB72091B901243021F522E029839B835D -:100D60008A8381E08093E9008FEF9091E8008150C1 -:100D700095FD06C095ED9A95F1F700008111F5CF2C -:100D80008091E80085FF0DC040E050E063E070E036 -:100D9000CE0101960E94A1088091E8008E77809391 -:100DA000E8000F900F900F90DF91CF910895CF93AF -:100DB000DF932091B901243009F048C0EC01809103 -:100DC0000B018823E1F080910C018823C1F082E0BF -:100DD0008093E9008FEF9091E800815095FD06C067 -:100DE00095E19A95F1F700008111F5CF8091E80027 -:100DF00085FF2CC040E050E060E170E017C081E06A -:100E00008093E9008FEF9091E800815095FD06C036 -:100E100095ED9A95F1F700008111F5CF8091E800EA -:100E200085FF14C040E050E068E070E0CE010E9411 -:100E3000A1088091E8008E778093E80080E1FE01B0 -:100E4000ACE3B1E001900D928A95E1F7DF91CF918B -:100E500008958091B801811109C00E94360A0E944C -:100E6000930A8091E20084608093E20008951092DA -:100E7000B8010895089508950C941E1842E061EC9D -:100E800081E00E94B00942E161EC82E00C94B0097B -:100E90008091BB01833009F453C030F4813071F08C -:100EA000823009F48CC008958A3009F478C08B3000 -:100EB00009F45EC0893009F09AC020C08091BA015F -:100EC000813A09F094C08091E800877F8093E80020 -:100ED0008091BE019091BF01892B21F460E18CE3E8 -:100EE00091E003C060E080E090E070E00E94EC08D8 -:100EF0008091E8008B778093E80008958091BA0193 -:100F0000813209F074C08091BE019091BF010297B7 -:100F100008F06DC08091E800877F8093E8008091A1 -:100F2000E80082FD05C08091B9018111F8CF5FC052 -:100F30008091F10080934C018091E8008B7753C041 -:100F40008091BA01813A09F052C08091BE0190911E -:100F5000BF01892B09F04BC08091E800877F809307 -:100F6000E8008091E80080FFFCCF80910B0136C043 -:100F70008091BA018132D9F58091BE019091BF0173 -:100F8000892BA9F58091E800877F8093E8000E9473 -:100F9000E5098091BC0180930B010C94651180914F -:100FA000BA01813221F58091E800877F8093E800C3 -:100FB0000E94E5098091BD0180934D0108958091C3 -:100FC000BA01813AA1F48091E800877F8093E8001C -:100FD0008091E80080FFFCCF80914D018093F1006B -:100FE0008091E8008E778093E8000C94E5090895DD -:100FF00084B7877F84BF88E10FB6F8948093600040 -:10100000109260000FBE90E080E80FB6F8948093D5 -:101010006100909361000FBE0E947D0D0E94360A10 -:101020000E94930A8091E20084608093E2007894A9 -:101030000E94190D0E947F0D81E091E00E94340D05 -:101040008091B901853069F40E94E5178091B7015C -:101050008823B1F30E941018882391F30E948B0813 -:10106000EFCF0E94890DECCF292F33272330310594 -:10107000C9F064F42130310581F02230310509F0E6 -:1010800042C08BE390E02EEC31E041C021323105CB -:10109000F1F02232310549F136C082E190E029E0D9 -:1010A00032E035C099278130910541F082309105B9 -:1010B00041F0892B41F5EAECF1E005C0EAEBF1E003 -:1010C00002C0EEE9F1E0849190E09F0120C0662328 -:1010D00039F06130C1F489E090E029EF31E017C0C8 -:1010E00089E090E020EE31E012C0662339F06130F3 -:1010F00051F489E390E02BE132E009C08FE390E006 -:1011000024E532E004C080E090E020E030E0FA0125 -:1011100031832083089580E189BD82E189BD09B4CE -:1011200000FEFDCF8091D8008F7D8093D800809104 -:10113000E00082608093E0008091E00081FDFCCFC0 -:101140000895CF92DF92EF92FF920F931F93CF9368 -:10115000DF93EC018B016A010E94040A811133C004 -:10116000C114D10439F0F60180819181081B190B5B -:10117000C80FD91FE12CF12C0115110519F180912F -:10118000E80085FD16C08091E8008E778093E80026 -:10119000C114D10449F0F60180819181E80EF91E55 -:1011A000F182E08285E00FC00E94040A882321F3C7 -:1011B0000AC089918093F10001501109FFEFEF1AE5 -:1011C000FF0ADACF80E0DF91CF911F910F91FF905E -:1011D000EF90DF90CF9008952091C0013091C10130 -:1011E0002617370748F06115710539F42091E8009A -:1011F0002E772093E80001C0B90140E06115710528 -:10120000A9F12091B901222309F443C0253009F442 -:1012100042C02091E80023FD40C02091E80022FD5B -:1012200032C02091E80020FFE9CF4091F3002091E7 -:10123000F20030E0342BFC01CF016115710559F04B -:101240002830310540F481918093F100615071099B -:101250002F5F3F4FF1CF41E02830310509F040E0EA -:101260002091E8002E772093E800C8CF4111C9CF24 -:101270000AC08091B901882361F0853061F08091C6 -:10128000E80083FD0AC08091E80082FFF2CF80E091 -:10129000089582E0089583E0089581E00895209103 -:1012A000C0013091C1012617370748F0611571055B -:1012B00039F42091E8002E772093E80001C0B901AD -:1012C000FC0120E06115710591F18091B90188233D -:1012D00009F440C0853009F43FC08091E80083FDE7 -:1012E0003DC08091E80082FD2FC08091E80080FF22 -:1012F000E9CF2091F3008091F20090E0922B6115EC -:10130000710559F08830910540F424912093F10043 -:101310003196615071090196F2CF21E0089709F0EA -:1013200020E08091E8008E778093E800CBCF2111F8 -:10133000CCCF0AC08091B901882361F0853061F07B -:101340008091E80083FD0AC08091E80082FFF2CF1F -:1013500080E0089582E0089583E0089581E0089593 -:10136000982F973058F59093E900981739F07091BD -:10137000EC002091ED005091F00003C0242F762F57 -:1013800050E021FF19C03091EB003E7F3093EB001D -:101390003091ED003D7F3093ED003091EB003160F6 -:1013A0003093EB007093EC002093ED005093F0002D -:1013B0002091EE0027FF07C09F5FD3CF8F708093EF -:1013C000E90081E0089580E008958091BA0187FFE7 -:1013D00011C08091E80082FD05C08091B9018111A2 -:1013E000F8CF11C08091E8008B770BC08091B901D4 -:1013F000882349F08091E80080FFF8CF8091E800D1 -:101400008E778093E80008952091E4003091E50004 -:1014100095E64091EC00842F817040FF22C08091BE -:10142000E80080FD1CC08091B901882391F08530CF -:1014300091F08091EB0085FD10C04091E400509147 -:10144000E5004217530729F39A01915011F784E000 -:10145000089582E0089583E0089581E0089580E092 -:1014600008954091E80042FFDECF08950E94A40A4B -:101470000E94AC0AE0EEF0E0808181608083E8EDBC -:10148000F0E080818F77808319BCA7EDB0E08C916C -:101490008E7F8C9380818F7E80831092B801089517 -:1014A0000F931F93CF93DF930E94A40A0E94AC0A6C -:1014B000C8EDD0E088818F778883888180688883B1 -:1014C00088818F7D888319BC1092B9011092B50173 -:1014D0001092B7011092B60100EE10E0F801808181 -:1014E0008B7F808388818160888342E060E080E038 -:1014F0000E94B009E1EEF0E080818E7F8083E2EE11 -:10150000F0E0808181608083808188608083F80141 -:1015100080818E7F8083888180618883DF91CF91F5 -:101520001F910F910895E8EDF0E080818F7E808318 -:10153000E7EDF0E080818160808384E082BF81E01C -:101540008093B8010C94500AE8EDF0E080818E7F22 -:1015500080831092E20008951092DA001092E10068 -:1015600008951F920F920FB60F9211242F933F935D -:101570004F935F936F937F938F939F93AF93BF939B -:10158000EF93FF938091E10082FF0BC08091E20016 -:1015900082FF07C08091E1008B7F8093E1000E9471 -:1015A000180D8091DA0080FF1FC08091D80080FF65 -:1015B0001BC08091DA008E7F8093DA008091D90081 -:1015C00080FF0DC080E189BD82E189BD09B400FEC4 -:1015D000FDCF81E08093B9010E94290705C019BCA5 -:1015E0001092B9010E9437078091E10080FF19C075 -:1015F0008091E20080FF15C08091E2008E7F809391 -:10160000E2008091E20080618093E2008091D80046 -:1016100080628093D80019BC85E08093B9010E9454 -:101620003B078091E10084FF30C08091E20084FF9D -:101630002CC080E189BD82E189BD09B400FEFDCFE7 -:101640008091D8008F7D8093D8008091E1008F7EBB -:101650008093E1008091E2008F7E8093E200809190 -:10166000E20081608093E2008091B501882311F04F -:1016700084E007C08091E30087FD02C081E001C0E3 -:1016800083E08093B9010E943C078091E10083FFD1 -:1016900029C08091E20083FF25C08091E100877F0F -:1016A0008093E10082E08093B9011092B5018091AE -:1016B000E1008E7F8093E1008091E2008E7F809335 -:1016C000E2008091E20080618093E20042E060E00D -:1016D00080E00E94B0098091F00088608093F00063 -:1016E0000E943A07FF91EF91BF91AF919F918F9127 -:1016F0007F916F915F914F913F912F910F900FBE0E -:101700000F901F9018951F920F920FB60F921124F1 -:101710002F933F934F935F936F937F938F939F93F9 -:10172000AF93BF93CF93DF93EF93FF93C091E90003 -:10173000CF708091EC00D82FD17080FDD0E810924E -:10174000E9008091F000877F8093F00078940E94F8 -:10175000C70B1092E9008091F00088608093F00040 -:10176000CD2BCF70C093E900FF91EF91DF91CF9126 -:10177000BF91AF919F918F917F916F915F914F91A9 -:101780003F912F910F900FBE0F901F9018951F93B0 -:10179000CF93DF93CDB7DEB7AA970FB6F894DEBF2D -:1017A0000FBECDBFEAEBF1E088E08E0F9091F10023 -:1017B00091938E13FBCF0E9448078091E80083FF2E -:1017C0001FC18091BA019091BB01492F50E04A306E -:1017D000510508F015C1FA01EA5AFF4F0C948C1B11 -:1017E000803881F0823809F00BC18091BE018F7082 -:1017F0008093E9008091EB0085FB882780F91092A7 -:10180000E90006C08091B6019091B7019111826004 -:101810009091E800977F9093E8008093F1001092F8 -:10182000F100C8C0282F2D7F09F0EAC0882319F0E5 -:10183000823061F0E5C08091BC01813009F0E0C0E8 -:10184000933009F080E08093B7012BC08091BC01F8 -:10185000811127C08091BE018F7009F4D1C080939F -:10186000E9002091EB0020FF1CC0933021F480910F -:10187000EB00806214C09091EB0090619093EB00BC -:1018800021E030E0A90102C0440F551F8A95E2F71C -:101890004093EA001092EA008091EB008860809308 -:1018A000EB001092E9008091E800877F86C08111EB -:1018B000A7C01091BC011F778091E3008078812B35 -:1018C0008093E3008091E800877F8093E8000E9486 -:1018D000E5098091E80080FFFCCF8091E3008068FB -:1018E0008093E300111102C082E001C083E0809385 -:1018F000B90186C08058823008F082C08091BC0156 -:101900009091BD018C3D53E0950779F583E08A8382 -:101910008AE289834FB7F894DE01139620E03EE017 -:1019200051E2E32FF0E050935700E49120FF03C011 -:10193000E295EF703F5FEF708E2F90E0EA3010F08D -:10194000C79601C0C0968D939D932F5F243149F7B0 -:101950004FBF8091E800877F8093E8006AE270E0E3 -:10196000CE0101960E94EC0814C0AE014F5F5F4F9C -:101970006091BE010E943408BC01009709F440C088 -:101980009091E800977F9093E80089819A810E9466 -:101990004F098091E8008B778093E80031C0803850 -:1019A00079F58091E800877F8093E8008091B50108 -:1019B0008093F1008091E8008E778093E8000E9488 -:1019C000E5091EC081111CC09091BC019230C0F489 -:1019D0008091E800877F8093E8009093B5010E9492 -:1019E000E5098091B501811106C08091E30087FD72 -:1019F00002C081E001C084E08093B9010E943E07EB -:101A00008091E80083FF0AC08091E800877F80937F -:101A1000E8008091EB0080628093EB00AA960FB6FD -:101A2000F894DEBF0FBECDBFDF91CF911F91089517 -:101A30000895CF938091B9018823A1F0C091E90066 -:101A4000CF709091EC00892F817090FD80E8C82BB9 -:101A50001092E9008091E80083FD0E94C70BCF70CF -:101A6000C093E900CF910895909353018093520160 -:101A70000895E0915201F0915301309721F00190C7 -:101A8000F081E02D099480E00895E0915201F091F9 -:101A90005301309721F00280F381E02D09940895DD -:101AA00020915001309151018217930771F090936A -:101AB000510180935001E0915201F0915301309710 -:101AC00021F00680F781E02D0994089520914E01C0 -:101AD00030914F018217930771F090934F018093DB -:101AE0004E01E0915201F0915301309721F00084B2 -:101AF000F185E02D0994089508950C947C0D0E94C1 -:101B00004D180E94C7050E941A1981E080930C01AC -:101B100008955F926F927F928F929F92AF92BF9241 -:101B2000CF92DF92EF92FF920F931F93CF93DF93A9 -:101B300000D000D01F92CDB7DEB70E94F50599E521 -:101B4000C92E91E0D92E01E010E0AA24A394B12C73 -:101B5000502E802F0E943C064C01F601729062903C -:101B60006F01682679266114710431F4012B09F4A0 -:101B70003BC000E010E0ECCF8091AE0181FD0E94FF -:101B80005B062AE030E07501022E02C0EE0CFF1C5D -:101B90000A94E2F7C70186219721892B09F129834D -:101BA0005A828E209F2091E0892809F490E09B833F -:101BB0000E9456188160782F9D838C8349815A81B9 -:101BC0006B818D810E94390E000F111FF801EB5AB5 -:101BD000FE4F80819181E826F926F182E08214C0CF -:101BE0002150310980F6C2CF8FEF89838A831B820F -:101BF0000E9456188160782F9D838C8349815A8179 -:101C00006B818D810E94390E109154010E94390D13 -:101C10001817D1F00E94390D809354010F900F9046 -:101C20000F900F900F90DF91CF911F910F91FF9028 -:101C3000EF90DF90CF90BF90AF909F908F907F906C -:101C40006F905F900C94B1050F900F900F900F90D4 -:101C50000F90DF91CF911F910F91FF90EF90DF9048 -:101C6000CF90BF90AF909F908F907F906F905F903C -:101C70000895CF93DF93CDB7DEB72B970FB6F894C7 -:101C8000DEBF0FBECDBF4F83588769877A878B87AA -:101C9000DE01119686E0FD0111928A95E9F785E053 -:101CA000FE01379601900D928A95E1F749815A819C -:101CB0006B817C818D819E810E9403142B960FB6CF -:101CC000F894DEBF0FBECDBFDF91CF910895CF93C3 -:101CD000882309F499C0C82F8CEF8C0F813A48F4FF -:101CE0008C2F0E944A1B81118FC08C2F0E94DD1601 -:101CF0000CC080E28C0F883058F4C77081E001C0BE -:101D0000880FCA95EAF70E946317CF910C94AA171F -:101D10008BE58C0F833078F4C53A29F0C63A31F060 -:101D200083E890E005C081E890E002C082E890E09E -:101D3000CF910C94500D88E58C0F833108F064C06E -:101D4000C83A39F1C93A41F1CA3A49F1CB3A51F1AD -:101D5000CC3A59F1CD3A61F1C03B69F1CE3A71F11B -:101D6000CF3A79F1C13B81F1C23B89F1C33B91F19B -:101D7000C43B99F1C53BA1F1C63BA9F1C73BB1F109 -:101D8000C83BB9F1C93BC1F1CA3BC9F180E090E061 -:101D900038C082EE90E035C089EE90E032C08AEE25 -:101DA00090E02FC085EB90E02CC086EB90E029C03E -:101DB00087EB90E026C08CEC90E023C08DEC90E0A7 -:101DC00020C083E891E01DC08AE891E01AC082E952 -:101DD00091E017C084E991E014C081E292E011C063 -:101DE00083E292E00EC084E292E00BC085E292E0D2 -:101DF00008C086E292E005C087E292E002C08AE273 -:101E000092E0CF910C94660DCF910895882329F12B -:101E10009CEF980F913A18F40E941F170DC090E2A2 -:101E2000980F983058F4877091E001C0990F8A9507 -:101E3000EAF7892F0E9469170C94AA179BE5980F5F -:101E4000933020F480E090E00C94500D885A833158 -:101E500020F480E090E00C94660D0895882321F032 -:101E60000E9463170C94AA170895882321F00E94FA -:101E700069170C94AA1708957F928F929F92AF9240 -:101E8000BF92CF92DF92EF92FF920F931F93CF9367 -:101E9000DF931F92CDB7DEB77C01C62E772EFC01F3 -:101EA000158112951F70028101110E9480170E94F6 -:101EB000D616882379F0002369F080E28C0D8830F3 -:101EC00048F082E00E94BF160E94D61691E0D82EFC -:101ED000D92601C0D12CE72DE295EF70F0E0E05A51 -:101EE000FF4F0C948C1B872D807F172D1F7088232C -:101EF00011F01295107F002389F0112309F46DC1B0 -:101F000080E28C0D883020F4812F0E94631703C07B -:101F1000812F0E9473170E94AA175FC18C2D0E9407 -:101F2000060F112309F472C180E28C0D883020F471 -:101F3000812F0E94691703C0812F0E9479170E9488 -:101F4000AA1764C1872D807F972D9F70803211F46E -:101F5000892F03C0892F8295807FCC2021F0F1E06A -:101F6000CF16A1F01DC0002339F0112319F1113053 -:101F700009F50E9493174AC1112319F0113009F491 -:101F800045C189830E9496178981E5C0002321F00D -:101F9000163008F03BC10EC0153008F037C1DBC069 -:101FA000002359F0112331F0F701958190FF15C1FD -:101FB0009F7095830E942E0F29C1112309F4CBC075 -:101FC00012C1872D837009F052C001111FC18C2DE1 -:101FD000829586958770880F880F9C2D9F70892E1B -:101FE000912CA12CB12C082E04C0880C991CAA1C81 -:101FF000BB1C0A94D2F7C4FE14C00FE010E020E02E -:1020000030E0B901A80104C0440F551F661F771FB7 -:102010008A95D2F7CB01BA0160957095809590951D -:1020200003C060E070E0CB01272D26952695237034 -:1020300030E02230310569F02330310589F068291C -:1020400079298A299B292130310571F00E944B158D -:10205000DDC0682979298A299B290E946715D6C085 -:102060000E944B15C501B4010E942F15CFC000235B -:1020700019F0872D817001C08695882309F4C6C0A8 -:102080008C2D829586958770880F880F9C2D9F7068 -:10209000892E912CA12CB12C082E04C0880C991CDF -:1020A000AA1CBB1C0A94D2F7C4FE14C00FE010E0B7 -:1020B00020E030E0B901A80104C0440F551F661F9D -:1020C000771F8A95D2F7CB01BA01609570958095FC -:1020D000909503C060E070E0CB01272D26952695F2 -:1020E0002370422F50E04230510569F043305105D2 -:1020F00089F0682979298A299B294130510571F095 -:102100000E94251683C0682979298A299B290E9463 -:1021100041167CC00E942516C501B4010E94091613 -:1021200075C08C2D90E0FC01E05EF109E531F10510 -:1021300008F04FC0E059FF4F0C948C1B1C2D1F70F2 -:10214000872D8F71002321F00E94A215812F32CF9D -:102150000E94C315812F0E94350F58C0002341F003 -:10216000153008F053C0872D8F710E94E8154EC0BE -:10217000163008F04BC0F7CF002339F0872D8F7150 -:102180000E94A21543C00023C9F3872D8F710E94BE -:10219000C3153CC0002329F0872D8F710E948D1537 -:1021A00035C00E94831532C0002351F0172D1F71D6 -:1021B000812F0E94A21563E0812F0E94B61626C0CF -:1021C00081E00E94BF16123008F182E00E94BF1623 -:1021D0001DC0002331F0112389F28C2D0E94670E5F -:1021E00015C0112391F28C2D0E94060F0FC0472DB0 -:1021F0004F706C2DC7010E949D010E94A71406C05C -:10220000472D4F706C2DC7010E949C01DD20F9F015 -:102210000E94B21680FD1BC0F70112820E94AC160C -:102220000E94A215C7010E9436110E94AC160F90A1 -:10223000DF91CF911F910F91FF90EF90DF90CF90A2 -:10224000BF90AF909F908F907F900C94C3150F908C -:10225000DF91CF911F910F91FF90EF90DF90CF9082 -:10226000BF90AF909F908F907F9008950F931F9392 -:10227000CF93DF93EC01888199812B813C81232BC3 -:10228000B9F09F3F11F48F3F99F0CE010E941602E2 -:10229000882371F0688179818A810E94A8168C0157 -:1022A0000E945D160E942415B801CE010E943C0FC9 -:1022B000DF91CF911F910F9108950E9480170E9486 -:1022C00090170E9455170C94AA170E9470170C942F -:1022D0005D110E949D16292F22952F7030E02C3021 -:1022E00031054CF42A3031056CF42250310922308A -:1022F0003105A8F407C02C30310569F02F303105C5 -:1023000051F00DC0803F69F018F4803E40F409C0E0 -:10231000843F29F406C093FB882780F9089580E064 -:10232000089581E00895CF93DF9300D000D01F92ED -:10233000CDB7DEB70F900F900F900F900F90DF91F9 -:10234000CF910895CF93DF9300D000D000D0CDB7C8 -:10235000DEB726960FB6F894DEBF0FBECDBFDF9175 -:10236000CF9108951F93CF93DF93C091590116E049 -:1023700080915A01C81799F0D0E01C9FF0011D9F71 -:10238000F00D1124E55AFE4F408151816281738125 -:10239000848195810E94A2112196C770E9CFDF91B7 -:1023A000CF911F91089540918B0150918C016091C4 -:1023B0008D0170918E0180918F01909190010C940C -:1023C000A2118091900182958F7009F054C0809184 -:1023D0008D01882309F44FC080915901A0915A01C1 -:1023E00060918B0170918C0140918E0150918F0111 -:1023F000B6E08A1709F43FC090E041155105C1F1DC -:102400007F3F11F46F3FA1F1B89FF001B99FF00D2C -:102410001124E55AFE4F218172132AC020816213D4 -:1024200027C02281211124C023813481241735073C -:1024300010F421503109241B350B283C3105C0F420 -:10244000209190012F7020612093900126E0289F19 -:10245000F001299FF00D1124E05AFE4F80818F700A -:10246000806180838BE891E00E9436110C94B21158 -:1024700001968770BECF0895CF92DF92EF92FF92C0 -:102480000F931F93CF93DF93CDB7DEB762970FB64D -:10249000F894DEBF0FBECDBF8C0185E0F801DE01F0 -:1024A0001D9601900D928A95E1F7D8014C911196F5 -:1024B0005C91119712966C9112971396CD90DC90C7 -:1024C000149730918B0170918C0180918E019091C5 -:1024D0008F01009709F46BC17F3F19F43F3F09F466 -:1024E00066C1E0908D01EE2009F4C0C020919001FA -:1024F000C816D90628F0F601E81BF90BCF0104C075 -:10250000809590958C0D9D1DFF24F394883C91053A -:1025100078F0F12C207F09F0C6C07C2DD98AC88ABA -:1025200089890E9493118BE891E00E943611B1C015 -:10253000822F807F09F046C0751314C0341312C077 -:10254000611110C02F702061209390010E94D3115F -:102550008BE891E00E94361180919001D801159688 -:102560008C932EC0CD2819F15F3F11F44F3FF9F045 -:10257000F62E61111CC08091590120915A0136E05C -:10258000821709F45AC090E0389FF001399FF00D8E -:102590001124E55AFE4F7181571306C0708147130D -:1025A00003C07281711103C001968770E9CFF62EC6 -:1025B000662309F418C18091900181608093900195 -:1025C000F12C11C1751308C0341306C0611104C089 -:1025D00080919001D801C3C04D875E878D859E850F -:1025E0006A8B0E9469116A898823E1F16623D1F11F -:1025F00020919001822F82958F7090E0029774F065 -:1026000080918B0190918C0198878F831986DB864E -:10261000CA862C87CE0107960E94361186E0F80103 -:10262000ABE8B1E001900D928A95E1F70E94E111CB -:102630000E94D311FF24F394D6C04D875E878D8509 -:102640009E850E949D16292F22952F7030E0223002 -:1026500031050CF0BCC09F7009F0B6C0805E8830B8 -:1026600008F4C1C0C8010E943611E4CFC816D906CB -:1026700008F453C0F601E81BF90BCF01883C910523 -:1026800008F450C0F12C7C2DD98AC88A89890E940F -:102690009311EBE8F1E086E0DF011D928A95E9F7FE -:1026A0000E94D311A0C0751314C0341312C061115D -:1026B00010C080919001F8018583C8010E943611F5 -:1026C00086E0EBE8F1E0DF011D928A95E9F7FE2C48 -:1026D0008AC04D875E878D859E856A8B0E946911B1 -:1026E0006A89882309F4BECF662309F4BBCF209101 -:1026F0009001822F82958F7090E002970CF48ECF1C -:1027000080918B0190918C019A8389831B82DD8259 -:10271000CC822E83CE0101967FCF809590958C0D33 -:102720009D1DACCFF62E662309F49CCF75132EC0E9 -:1027300034132CC02091900120FD1FC0822F829560 -:102740008F70D9F0D80115962C9315978F3049F0DA -:102750008F5F982F9295907F822F8F70892B15967F -:102760008C93C8010E94361186E0F801ABE8B1E015 -:1027700001900D928A95E1F793CF86E0F801ABE8DE -:10278000B1E001900D928A95E1F72DC04D875E87EB -:102790008D859E850E946911811140CF80919001A5 -:1027A000816080939001C8010E9436111CC066238D -:1027B00009F458CF4D875E878D859E850E946911EB -:1027C000882309F44FCF2ACF811148CF0CC0243081 -:1027D00031050CF047CF9F7009F440CFF801958187 -:1027E000907F09F03BCF8F2D62960FB6F894DEBF35 -:1027F0000FBECDBFDF91CF911F910F91FF90EF9052 -:10280000DF90CF9008951F93CF93DF93CDB7DEB7BE -:102810002C970FB6F894DEBF0FBECDBF4F835887FD -:1028200069877A878B879C87CE0107960E943C1226 -:10283000882369F08F8198852A853B85232BF1F1C8 -:102840009F3F09F063C08F3F09F060C037C086E04A -:10285000FE013796DE01119601900D928A95E1F7FF -:102860006F817885EA85FB85309741F17F3F11F4D0 -:102870006F3F21F120915A0130E0C9010196877024 -:1028800099274091590150E08417950709F447C0F2 -:1028900069837A83FD83EC8396E0929FD001939FB6 -:1028A000B00D1124A55ABE4FFE01319601900D9234 -:1028B0009A95E1F780935A010E94B21116E0809137 -:1028C000590190915A018917C1F1189FC001112433 -:1028D000855A9E4F0E943C12882379F1E09159015C -:1028E0001E9FF0011124E55AFE4F40815181628103 -:1028F0007381848195810E94A2118091590190E099 -:1029000001968770992780935901D9CF4F815885B7 -:1029100069857A858B859C850E94A211CFCF0E9404 -:10292000651110925A0110925901EBE8F1E086E02E -:10293000DF011D928A95E9F7C1CF2C960FB6F89466 -:10294000DEBF0FBECDBFDF91CF911F910895EF92F3 -:10295000FF920F931F93CF93DF938C01009709F49D -:102960006CC0F12CEE24E394E8012196F8018491E7 -:10297000843740F4843008F051C0813081F08230D7 -:1029800019F15BC0853709F444C0A8F19CE7980FA2 -:10299000903708F052C08F770E94060F41C00E5F3B -:1029A0001F4FFE01C49180E28C0F883048F4C7703D -:1029B0008E2D01C0880FCA95EAF70E94831714C0B4 -:1029C0008C2F0E94670E2DC00E5F1F4FFE01C49119 -:1029D00080E28C0F883058F4C7708E2D01C0880FAC -:1029E000CA95EAF70E9489170E94AA171AC08C2F6D -:1029F0000E94060F16C00E5F1F4FFE01C491CC232C -:102A000081F08FE99FE00197F1F700C00000C1500D -:102A1000F6CF0E5F1F4FFE01F49003C00E94670EB9 -:102A20008E018F2D882309F49FCFEFE9FFE03197C6 -:102A3000F1F700C000008150F5CFDF91CF911F91D9 -:102A40000F91FF90EF900895089560939501709312 -:102A5000960180939701909398010C945D110F93C8 -:102A60001F9300919501109196012091970130914B -:102A70009801DC01CB01802B912BA22BB32B8093EF -:102A8000950190939601A0939701B09398011F919F -:102A90000F910C945D110F931F930091950110916C -:102AA00096012091970130919801DC01CB018023A0 -:102AB0009123A223B3238093950190939601A09331 -:102AC0009701B09398011F910F910C945D110F9392 -:102AD0001F930091950110919601209197013091DB -:102AE0009801DC01CB0180279127A227B32780938F -:102AF000950190939601A0939701B09398011F912F -:102B00000F910C945D11109291011092920110920C -:102B10009301109294010C945D1141E050E060E04B -:102B200070E004C0440F551F661F771F8A95D2F7C7 -:102B3000409391015093920160939301709394019B -:102B40000C945D1141E050E060E070E004C0440F7F -:102B5000551F661F771F8A95D2F78091910190913A -:102B60009201A0919301B0919401482B592B6A2BAB -:102B70007B2B40939101509392016093930170934A -:102B800094010C945D1141E050E060E070E004C0FD -:102B9000440F551F661F771F8A95D2F740955095B1 -:102BA000609570958091910190919201A09193010F -:102BB000B0919401482359236A237B2340939101C8 -:102BC0005093920160939301709394010C945D1162 -:102BD00041E050E060E070E004C0440F551F661F04 -:102BE000771F8A95D2F78091910190919201A091DF -:102BF0009301B0919401482759276A277B27409376 -:102C000091015093920160939301709394010C94FD -:102C10005D110F931F9300919101109192012091EA -:102C2000930130919401DC01CB01802B912BA22BDD -:102C3000B32B8093910190939201A0939301B09351 -:102C400094011F910F910C945D110F931F930091AC -:102C50009101109192012091930130919401DC0136 -:102C6000CB0180239123A223B323809391019093DE -:102C70009201A0939301B09394011F910F910C9432 -:102C80005D110F931F93009191011091920120917A -:102C9000930130919401DC01CB0180279127A22779 -:102CA000B3278093910190939201A0939301B093E5 -:102CB00094011F910F910C945D110895CF92DF92B2 -:102CC000EF92FF920F931F93CF93DF938C01C090ED -:102CD0009501D0909601E0909701F0909801809135 -:102CE000910190919201A0919301B0919401C82A11 -:102CF000D92AEA2AFB2ACFE1D0E0D701C6010C2E5F -:102D000004C0B695A795979587950A94D2F780FF4A -:102D100006C0B8018C2F0E941705019721F4219756 -:102D200060F780E001C08C2FDF91CF911F910F9150 -:102D3000FF90EF90DF90CF900895CF93DF93EC0159 -:102D40000E945E16BE010E941705DF91CF91089583 -:102D5000CB010E949D1608958091990185958595D6 -:102D600085950895809199018770089598E0899FCD -:102D700090011124262B209399010C94A2152091E7 -:102D800099018095822380939901982F977069F417 -:102D900030E0482F552747FD50952417350729F077 -:102DA0008595859585950C94C31508959091990105 -:102DB000977081E009F480E0089590910B019923C8 -:102DC00021F090910C01911109C020910D013091D9 -:102DD0000E01F90132969FEF40E01FC0982F9695A3 -:102DE000969596959F3050F5E0910D01F0910E016A -:102DF000E90FF11D877021E030E0A90102C0440F06 -:102E0000551F8A95E2F7CA019181892B8183089524 -:102E10009F3F39F04F5F4E3041F051915813F8CF3A -:102E20000DC05111F7CF942FF5CF9F3F39F0F90125 -:102E3000E90FF11D97FDFA95828308950895909109 -:102E40000B01992321F090910C01911109C020915F -:102E50000D0130910E01F9013296205F3F4F1FC0E6 -:102E6000982F9695969596959F30F0F4E0910D01E8 -:102E7000F0910E01E90FF11D877021E030E0A9010A -:102E800002C0440F551F8A95E2F7CA0180959181CF -:102E90008923818308953196E217F30729F0908101 -:102EA0009813F9CF1082F7CF089581E090E0E09178 -:102EB0000D01F0910E01E80FF91F1082019680318B -:102EC0009105A9F708959091AD01892B8093AD01EB -:102ED000089580959091AD0189238093AD01089567 -:102EE0001092AD0108959091AC01892B8093AC01B3 -:102EF000089580959091AC0189238093AC01089549 -:102F00001092AC0108959091AB01892B8093AB0195 -:102F1000089580959091AB0189238093AB0108952A -:102F20001092AB01089580939A01089510929A012E -:102F3000089580910D0190910E01FC0131969C0144 -:102F4000205F3F4F80E0919191118F5FE217F3076F -:102F5000D1F70895E0910D01F0910E018091AD013E -:102F60008083E0910D01F0910E0190818091AC0180 -:102F7000892B8083E0910D01F0910E019081809169 -:102F8000AB01892B808380919A01882361F0E091C5 -:102F90000D01F0910E019081892B80830E94991779 -:102FA000811110929A0180910D0190910E010C9463 -:102FB000450D20E0009739F0AC01415051098423C0 -:102FC00095232F5FF7CF822F08958091B901843028 -:102FD00021F11092AF0120E488E190E00FB6F8945F -:102FE000A895809360000FBE2093600080E00E944F -:102FF000B10583B7817F846083BF83B7816083BF5E -:103000007894889583B78E7F83BF88E10FB6F89454 -:1030100080936000109260000FBE08950895089597 -:103020000E940E180E94F5050E940F180E945C066F -:1030300091E0811101C090E0892F08950E946511EF -:103040000E94390D0C94B1051F920F920FB60F928A -:1030500011248F939F93AF93BF938091AF01811100 -:1030600013C08091B0019091B101A091B201B091D3 -:10307000B3014196A11DB11D8093B0019093B101A0 -:10308000A093B201B093B301BF91AF919F918F9183 -:103090000F900FBE0F901F90189582E084BD93E0B3 -:1030A00095BD9AEF97BD80936E0008952FB7F89461 -:1030B0008091B0019091B101A091B201B091B301A2 -:1030C0002FBF0895CF92DF92EF92FF920F931F933D -:1030D0002FB7F8944091B0015091B1016091B201C5 -:1030E0007091B3012FBF6A017B01EE24FF248C0194 -:1030F00020E030E0C016D106E206F30610F441509D -:1031000051099A01281B390BC9011F910F91FF909A -:10311000EF90DF90CF9008951F920F920FB60F920D -:1031200011248F939F93AF93BF938091B00190919F -:10313000B101A091B201B091B3010196A11DB11DE1 -:103140008093B0019093B101A093B201B093B30109 -:10315000BF91AF919F918F910F900FBE0F901F90D5 -:1031600018950E94360AF8942FEF87EA91E62150CD -:1031700080409040E1F700C0000087E090EBDC0168 -:103180008093C3019093C401A093C501B093C6017D -:103190009CE088E10FB6F894A895809360000FBE7C -:1031A00090936000FFCFBF92CF92DF92EF92FF9299 -:1031B0000F931F93CF93DF93B82E11E0EE24E39487 -:1031C000F12C012F812F0E943C066C01CAE0D0E057 -:1031D00097010C2E02C0220F331F0A94E2F72C2114 -:1031E0003D21232B49F06C2F712F80E00E94C202F9 -:1031F000B81202C081E006C0219750F710E001111B -:10320000E0CF80E0DF91CF911F910F91FF90EF9081 -:10321000DF90CF90BF900895CF93C82F8CE20E948B -:10322000D318882321F08C2FCF910C94D31880E0F1 -:10323000CF910895CF930E94611A811102C00E941C -:10324000471AC5E6C15049F00E94F5058FE39CE995 -:103250000197F1F700C00000F5CF89E20E940C1938 -:10326000811113C18AE20E940C1981110E94471A30 -:1032700085E00E940C1981110E94B1180E946C1AFD -:103280008093AE0187E00E940C198823A9F18BE19D -:103290000E940C19882351F08091AE0181FB2227F6 -:1032A00020F991E0922790FB81F90EC08EE00E94F8 -:1032B0000C19882361F08091AE0182FB222720F94E -:1032C00091E0922790FB82F98093AE0115C080E1D6 -:1032D0000E940C199091AE01882341F093FB2227A4 -:1032E00020F981E0822780FB93F904C0892F809523 -:1032F00080FB90F99093AE018091AE010E94701A0C -:103300000E947E1A8093C20180EE0E940C198823CD -:1033100041F08091C201982F909590FB80F98093A5 -:10332000C20189E30E940C19882359F08091C201DF -:1033300081FB222720F991E0922790FB81F980936D -:10334000C20182EE0E940C19882359F08091C201BB -:1033500082FB222720F991E0922790FB82F980934B -:10336000C20186EE0E940C19882359F08091C20197 -:1033700083FB222720F991E0922790FB83F9809329 -:10338000C20183EE0E940C19882359F08091C2017A -:1033900084FB222720F991E0922790FB84F9809307 -:1033A000C20185E30E940C19882359F08091C20163 -:1033B00085FB222720F991E0922790FB85F98093E5 -:1033C000C20181E30E940C19882359F08091C20147 -:1033D00086FB222720F991E0922790FB86F98093C3 -:1033E000C20181E10E940C19882359F08091C20129 -:1033F00087FB222720F991E0922790FB87F98093A1 -:10340000C2018091C2010E94821A8091C20187FB91 -:10341000882780F980930C0187E20E940C19C82F3D -:103420008EE10E940C198111C2608FE10E940C197B -:103430008111C46080E20E940C198111C86081E290 -:103440000E940C198111C06182E20E940C19811145 -:10345000C06283E20E940C198111C06484E20E9460 -:103460000C19882311F0C06802C0CC2329F08C2FDE -:103470000E94791A6C2F03C00E94751A682F70E0A1 -:1034800080E090E0CF910C942515CF9108956DEEDA -:103490007EEF80E090E00E94B21B60E082E090E06E -:1034A0000E94A01B60E083E090E00E94A01B60E00F -:1034B00084E090E00E94A01B60E085E090E00C9426 -:1034C000A01B80E090E00E949A1B21E08D3E9E4F61 -:1034D00009F020E0822F089582E090E00C94921B86 -:1034E000682F82E090E00C94A01B83E090E00C94A5 -:1034F000921B682F83E090E00C94A01B84E090E086 -:103500000C94921B682F84E090E00C94A01B0F9306 -:103510001F938B3109F475C0A0F58E3009F484C077 -:10352000C0F4873009F45BC068F4863009F0AAC0A3 -:103530008091AE01817F8E7F8093AE0181E0809388 -:10354000B401A1C0883009F496C08B3009F493C04F -:1035500099C0813109F472C068F4803109F092C0D9 -:103560008091AE0183FB222720F991E0922790FB06 -:1035700083F950C0863109F47EC0893109F47BC0DB -:1035800081C0853309F479C068F4873209F475C0C5 -:1035900028F48E3108F476C08D515AC0893209F46E -:1035A0006CC070C0833438F48A3308F050C088335C -:1035B00009F461C067C0833409F45FC0883409F03E -:1035C00061C00E9465110FEF13ED20E30150104020 -:1035D0002040E1F700C000000E94B1184CC090915B -:1035E000AE01892F8095817080FB90F929F096605B -:1035F00098609093AE0147C0997F977F9093AE01FA -:103600003AC08091AE0181FB222720F991E09227F8 -:1036100090FB81F98093AE01992369F18091AE010D -:1036200081608093AE0127C08091AE0182FB22278A -:1036300020F991E0922790FB82F9ECCF0E9465116E -:1036400090910C0181E0892780930C0114C089536B -:1036500041E050E060E070E08A019B0104C0000F8F -:10366000111F221F331F8A95D2F7C901B8010E948A -:1036700025150E94651181E006C061E070E080E0E0 -:1036800090E0F5CF80E01F910F91089580E00895BC -:1036900080E00895CF93C82F8091B401882319F05A -:1036A000813049F031C0E0910D01F0910E0180812F -:1036B000823261F507C0E0910D01F0910E01808129 -:1036C000823261F48C2F0E94461B811104C08C2F22 -:1036D0000E94871A17C081E090E014C08C2F0E94CE -:1036E000481B81110EC0C43149F018F4CB3049F0A9 -:1036F0000FC0C93219F0C83321F00AC01092B401CA -:1037000007C081E0817006C01092B40180E002C061 -:1037100080E0F8CFCF910895EE0FFF1F0590F49150 -:10372000E02D0994F999FECF92BD81BDF89A9927B1 -:1037300080B50895A8E1B0E042E050E00C94BA1BD7 -:10374000262FF999FECF92BD81BDF89A019700B45A -:10375000021639F01FBA20BD0FB6F894FA9AF99AFA -:103760000FBE08950196272F0E94A11B0C94A01B49 -:10377000DC01CB01FC01F999FECF06C0F2BDE1BD31 -:10378000F89A319600B40D9241505040B8F7089520 -:04379000F894FFCFDB -:10379400FF6B06D7066E06A3066F0601019B010F99 -:0A37A4001F4F5F6F7F6353437949A5 -:00000001FF diff --git a/keyboards/arrow_pad/keymaps/pad_24/compiled.hex b/keyboards/arrow_pad/keymaps/pad_24/compiled.hex deleted file mode 100644 index 77c385adc..000000000 --- a/keyboards/arrow_pad/keymaps/pad_24/compiled.hex +++ /dev/null @@ -1,935 +0,0 @@ -:100000000C9450010C9494010C9494010C94940160 -:100010000C9494010C9494010C9494010C9494010C -:100020000C9494010C9494010C94580B0C942A0C8D -:100030000C94DC180C9494010C9494010C9494018D -:100040000C9494010C9494010C9494010C949401DC -:100050000C9494010C9444190C9494010C94940104 -:100060000C9494010C9494010C9494010C949401BC -:100070000C9494010C9494010C9494010C949401AC -:100080000C9494010C9494010C9494010C9494019C -:100090000C9494010C9494010C9494010C9494018C -:1000A0000C9494010C9494010C949401970CB90C49 -:1000B000A70DB90CA70DFE0C210DA70D760D890D0E -:1000C000FA0FFA0F29102910B311B311B311B3119C -:1000D0006810B311181118117F118811B311AD11E7 -:1000E0002511251125112511251125112511251160 -:1000F0002511251125112511251125112511251150 -:10010000351143114A1151115B11F1A2028A00D23B -:1001100000D000D100C801C802C829002B0031005E -:10012000C00053005400550056005F00600061009D -:1001300067005C005D005E00570059005A005B00DC -:100140000000620000006300580029002B002C0012 -:100150000100C10019011C011D014A0052004B00A1 -:10016000E2005000C5004F00E0004D0051004E007D -:1001700000002A0000004C00C600C200C300C400FA -:100180000100C100010001000100010001000100A7 -:100190000100010001000100010001000100010057 -:1001A000000000500000010001001A03410072002D -:1001B00072006F0077002000500061006400200092 -:1001C0003200340000000E034E006F0062006F002A -:1001D0006400790000000403090409023B000201E5 -:1001E00000A0FA0904000001030101000921110126 -:1001F0000001223F000705810308000A09040100ED -:100200000103000000092111010001223900070546 -:1002100082031000011201100100000008EDFE969B -:100220004001000102000105010906A101050719AD -:10023000E029E715002501950875018102050819D7 -:100240000129059505750191029501750391010537 -:10025000071900297715002501957875018102C0DD -:1002600005010906A101050719E029E71500250187 -:10027000950875018102950175088101050819012C -:1002800029059505750191029501750391010507F1 -:10029000190029FF150025FF950675088100C0008B -:1002A00011241FBECFEFDAE0DEBFCDBF04B603FEE0 -:1002B00024C08091B8019091B901A091BA01B09188 -:1002C000BB018730904BA740B04BB9F41092B801F6 -:1002D0001092B9011092BA011092BB0114BE84B7FA -:1002E000877F84BF88E10FB6F894809360001092F6 -:1002F00060000FBEE0E0FFE3099511E0A0E0B1E08F -:10030000E8E3FAE302C005900D92AA31B107D9F7EC -:1003100011E0AAE1B1E001C01D92A83BB107E1F7ED -:100320000E949F080C941A1D0C94000008950895D3 -:1003300081E008950C9497010C9498010C94450267 -:10034000279A2F988FEF9FEF9093870080938600D6 -:100350008AE08093800089E1809381000C94471C9F -:100360000E94A0010C949601282F81110BC080914E -:100370008000877F8093800010928D0010928C0007 -:100380002F9808952F988091800088608093800036 -:10039000233019F48FEF9FEF0FC083E090E0821BB2 -:1003A0009109880F991F2FEF3FEFA90102C05695C1 -:1003B00047958A95E2F7CA0190938D0080938C004F -:1003C00008950895CF93DF93EC016130F1F018F0B8 -:1003D0006230E9F155C08A81882309F451C080EE6A -:1003E0000E94EE0E8D81807F803129F486E00E948C -:1003F000EE0E86E006C0803231F48BE10E94EE0EF4 -:100400008BE10E948D0F80EE1FC08A818823C1F08E -:100410008D8182958F7090E003971CF482E00E949A -:10042000B50F8D81807F803219F481E00E94B50F75 -:100430008D81807F803321F588E50E94EE0E20C0FB -:1004400083E00E94BC0F88E50E948D0F19C08A814D -:10045000882399F08D8182958F7090E002971CF42B -:1004600081E00E94B50F8D8182958F7090E0029798 -:100470003CF084E00E94B50F03C085E00E94BC0FF1 -:1004800080E090E0DF91CF91089581FF03C0569AFC -:100490005E9A02C056985E9880FF05C03F9A88B168 -:1004A0008F6788B908953F984798089581E0089527 -:1004B0000C94560208950F931F93CF93DF938C01F2 -:1004C000FC01C081D181CE010E940B17BE010E94A8 -:1004D0000703EC01B8010E945802882309F48DC07B -:1004E000F8018281882309F44AC080912501811195 -:1004F0001FC0C431F0E5DF0709F051C00E945A0265 -:1005000081E0809325010E940E199093240180932D -:10051000230110921C0110921E0110921D011092D5 -:10052000200110921F01109222011092210165C03A -:1005300080912301909124010E941A19883C910511 -:1005400070F480911C01E82FF0E0EE0FFF1FE35ED6 -:10055000FE4FD183C0838F5F80931C014EC0C4388F -:1005600080E5D80721F0C538D04501F13AC0F8013F -:100570008281882341F010921A0182E01EC0C438A3 -:10058000E0E5DE0759F580911A01811106C086E287 -:100590000E94EE0E86E20E948D0F82E01CC0C438DD -:1005A000F0E5DF0741F3C538D045D9F4F801828181 -:1005B000882331F010921B0180E20E94B50F1DC00C -:1005C00080911B01811106C087E20E94EE0E87E236 -:1005D0000E948D0F80E20E94BC0F0FC0C538D0452D -:1005E00029F381E080931A0180931B01C801DF91F8 -:1005F000CF911F910F910C949C0180E0DF91CF91DE -:100600001F910F9108950C94B0010C949A01E72F5B -:10061000F0E096E0899FE00DF11D1124EE0FFF1F21 -:10062000EE0FFF1FE60FF11DEE0FFF1FE65EFE4F00 -:10063000859194910895880F991FFC01E657F04029 -:10064000859194910895880F991FFC01E65FFE4FF4 -:100650008591949108950F931F93CF93DF93EC01AD -:10066000811521E39207A0F5C11580E3D80708F0B2 -:10067000D7C0C83ED105D8F4C03ED10508F003C2AA -:10068000C83AD10578F4C53AD10508F06AC0C1303E -:10069000D10509F463C008F4F3C1C430D10508F0F2 -:1006A000F2C1EEC1CB3BD10508F466C0E9C1C1156A -:1006B00090E2D90708F0AFC0C11521E0D20708F0D9 -:1006C000E2C1C03FD10508F4DBC18E0110651BC239 -:1006D000C03880E5D80700F5C03790E5D90708F0A5 -:1006E000A3C0C11520E5D20709F4ACC050F4CE0177 -:1006F000905480319F4008F0C3C1DF708E01106AB2 -:1007000002C2C13080E5D80709F4AAC0C43190E51F -:10071000D90708F4ABC0B4C1C33820E5D20709F447 -:100720008EC050F4C13890E5D90709F482C008F0B2 -:1007300083C000E011EDE7C1C03181E5D80708F4BE -:100740009FC1C11597E5D90708F432C1CE01905772 -:100750008115904108F094C1DF708FC101E010E075 -:10076000D2C1C53AD10509F490C1C63AD10509F004 -:100770008FC102E810E4C7C1C83AD10509F48BC1A2 -:10078000C93AD10509F48AC1CA3AD10509F489C127 -:10079000CB3AD10509F488C1CC3AD10509F487C117 -:1007A000CD3AD10509F486C1C03BD10509F485C114 -:1007B000CE3AD10509F484C1CF3AD10509F483C1F9 -:1007C000C13BD10509F482C1C23BD10509F481C105 -:1007D000C33BD10509F480C1C43BD10509F47FC1F5 -:1007E000C53BD10509F47EC1C63BD10509F47DC1E5 -:1007F000C73BD10509F47CC1C83BD10509F47BC1D5 -:10080000C93BD10509F47AC1CA3BD10509F479C1C4 -:1008100000E014E478C1CE019F700E94230374C1EC -:10082000DD278E01106C6FC1CF70DD278E01146D36 -:100830006AC100E010ED67C100E012ED64C100E0A4 -:1008400013ED61C10E9412128FEF94E32CE08150EE -:1008500090402040E1F700C000000E94691953C198 -:100860008091A20181608093A2014DC10E94131B5F -:10087000811102C00E94F41A0E94301B90E09093F4 -:10088000B7018093B601C23080E5D80721F480918A -:10089000B601816086C0C43090E5D90721F480910B -:1008A000B60182607EC0C63020E5D20721F4809177 -:1008B000B601846076C0C83080E5D80719F480910D -:1008C000B60127C0CA3090E5D90721F48091B6015E -:1008D000806167C0CC3020E5D20721F48091B60159 -:1008E00080625FC0CE3080E5D80721F48091B601E8 -:1008F000806457C0C03190E5D90721F48091B601DA -:1009000080684FC0C23120E5D20729F48091B6013A -:100910008460886046C0C33080E5D80721F48091A8 -:10092000B6018E7F3EC0C53090E5D90721F4809195 -:10093000B6018D7F36C0C73020E5D20721F4809103 -:10094000B6018B7F2EC0C93080E5D80719F480919D -:10095000B60126C0CB3090E5D90721F48091B601CD -:100960008F7E1FC0CD3020E5D20721F48091B601E3 -:100970008F7D17C0CF3080E5D80721F48091B60174 -:100980008F7B0FC0C13190E5D90721F48091B6016A -:100990008F7707C0C331D04531F48091B6018B7F8A -:1009A000877F8093B6018091B6010E94341BABC053 -:1009B0008D2F99278F70992781309105D9F49E0149 -:1009C0002370332702C0880F991F2A95E2F79C688D -:1009D0008E0144E0000F111F4A95E1F700271370C4 -:1009E000802B912B53E0CC0FDD1F5A95E1F7C07699 -:1009F000DD272FC08230910531F4DC2FCC278E010A -:100A0000016F106A80C08330910569F4CE01837054 -:100A1000992701E010E002C0000F111F8A95E2F74C -:100A2000C8019C680FC084309105B9F4CE01837071 -:100A3000992701E010E002C0000F111F8A95E2F72C -:100A4000C8019A6823E0CC0FDD1F2A95E1F7C07E2C -:100A5000D7708C010C2B1D2B56C08530910531F4BD -:100A6000DC2FCC278E01046F106A4DC0069709F069 -:100A70004AC0CF71DD27DC2FCC278E01106243C026 -:100A800000E010E040C08E013EC001E810E43BC031 -:100A900003E810E438C002EE14E435C009EE14E4B3 -:100AA00032C00AEE14E42FC005EB14E42CC006EBB0 -:100AB00014E429C007EB14E426C00CEC14E423C0B2 -:100AC0000DEC14E420C003E815E41DC00AE815E4A9 -:100AD0001AC002E915E417C004E915E414C001E2E4 -:100AE00016E411C003E216E40EC004E216E40BC0E3 -:100AF00005E216E408C006E216E405C007E216E4C3 -:100B000002C00AE216E4C801DF91CF911F910F9154 -:100B10000895E72FF0E096E0899FE00DF11D112484 -:100B2000EE0FFF1FEE0FFF1FE60FF11DEE0FFF1F71 -:100B3000E65EFE4F85919491803E9105E0F4803C05 -:100B4000910558F58133910509F46FC048F4893255 -:100B5000910509F463C08A32910509F46DC072C031 -:100B600089339105E9F082389105D1F085339105FB -:100B700009F44DC067C0833E910581F138F4803E91 -:100B80009105B9F0823E9105D9F05CC0863E910591 -:100B900061F1873E9105A1F155C00E941B030895A4 -:100BA0002091B60120FD02C021FF4CC080EE90E0F4 -:100BB00049C08091B60180FFF9CF89E390E042C03F -:100BC0008091B60182FF0EC08091B60184FF03C000 -:100BD00080E090E037C083EE90E034C08091B601B1 -:100BE00082FFF2CF82EE90E02DC08091B60183FFAC -:100BF0000BC08091B60184FDEBCF87EE90E022C060 -:100C00008091B60183FFF5CF86EE90E01BC0809106 -:100C1000B60185FF07C089E290E014C08091B6015B -:100C200085FFF9CF85E390E00DC08091B60186FF86 -:100C300007C08AE290E006C08091B60186FFF9CF36 -:100C400081E390E00E942B0308950C949E01E82F0D -:100C5000F0E0E15FFE4F8081E82FEF70F0E08295D9 -:100C60008F7021E030E0A90102C0440F551F8A9522 -:100C7000E2F740A308950F931F93CF93DF9385B7B7 -:100C8000806885BF85B7806885BFC3E0D0E001E09C -:100C900010E0FE01E15FFE4F8081E82FEF70F0E091 -:100CA00021A182958F70A80102C0440F551F8A951B -:100CB000E2F7CA01822B81A38C2F0E94270621977D -:100CC00040F785E090E061E070E0FC01ED5EFE4FF2 -:100CD0002081E22FEF70F0E042A122952F70DB011E -:100CE00002C0AA0FBB1F2A95E2F79D01242B22A365 -:100CF000019758F7DF91CF911F910F910C94030347 -:100D0000EF92FF920F931F93CF93DF930AE211E0CC -:100D1000C3E0EE24E394F12CD5E08C2F0E9427064B -:100D200085E090E040E0FC01ED5EFE4F5081E52F54 -:100D3000EF70F0E020A130E052955F7002C0359571 -:100D400027955A95E2F720FD07C09701082E01C0AC -:100D5000220F0A94EAF7422B019728F7F8018291B3 -:100D60008F01841719F04083D09300018C2F0E94CB -:100D70002706C15090F68091000187FD1CC081506C -:100D8000809300018F3F39F08FE99FE00197F1F7E1 -:100D900000C0000010C08091290180932D01809136 -:100DA000280180932C018091270180932B01809151 -:100DB000260180932A010E94050381E0DF91CF91F3 -:100DC0001F910F91FF90EF90089591E001C0990F4E -:100DD0008A95EAF723E030E080E061E070E0F90115 -:100DE000E65DFE4F4081492339F0AB01022E01C080 -:100DF000440F0A94EAF7842B2150310980F70895B3 -:100E00000895CF93DF93C5E0D0E08C2F0E94E506D4 -:100E100090E00E948618D80FC150B8F78D2FDF914F -:100E2000CF91089580913E0108950895CF93DF9367 -:100E300000D01F92CDB7DEB72091AD01243021F54F -:100E400023E029839B838A8381E08093E9008FEFED -:100E50009091E800815095FD06C095ED9A95F1F7C7 -:100E600000008111F5CF8091E80085FF0DC040E0C2 -:100E700050E063E070E0CE0101960E944809809145 -:100E8000E8008E778093E8000F900F900F90DF912D -:100E9000CF910895CF93DF9300D01F92CDB7DEB7E7 -:100EA0002091AD01243021F522E029839B838A83A0 -:100EB00081E08093E9008FEF9091E800815095FDEB -:100EC00006C095ED9A95F1F700008111F5CF80915C -:100ED000E80085FF0DC040E050E063E070E0CE0127 -:100EE00001960E9448098091E8008E778093E8007F -:100EF0000F900F900F90DF91CF910895CF93DF93D4 -:100F00002091AD01243009F048C0EC0180910B0123 -:100F10008823E1F080910C018823C1F082E0809366 -:100F2000E9008FEF9091E800815095FD06C095E1B2 -:100F30009A95F1F700008111F5CF8091E80085FFC7 -:100F40002CC040E050E060E170E017C081E0809389 -:100F5000E9008FEF9091E800815095FD06C095ED76 -:100F60009A95F1F700008111F5CF8091E80085FF97 -:100F700014C040E050E068E070E0CE010E944809F3 -:100F80008091E8008E778093E80080E1FE01AEE278 -:100F9000B1E001900D928A95E1F7DF91CF9108952C -:100FA0008091AC01811109C00E94DD0A0E943A0BB8 -:100FB0008091E20084608093E20008951092AC0179 -:100FC0000895089508950C94D11842E061EC81E0F1 -:100FD0000E94570A42E161EC82E00C94570A80912A -:100FE000AF01833009F453C030F4813071F08230A6 -:100FF00009F48CC008958A3009F478C08B3009F464 -:101000005EC0893009F09AC020C08091AE01813A5B -:1010100009F094C08091E800877F8093E800809178 -:10102000B2019091B301892B21F460E18EE291E04D -:1010300003C060E080E090E070E00E94930980913E -:10104000E8008B778093E80008958091AE018132AB -:1010500009F074C08091B2019091B301029708F039 -:101060006DC08091E800877F8093E8008091E80060 -:1010700082FD05C08091AD018111F8CF5FC08091E4 -:10108000F10080933E018091E8008B7753C08091FE -:10109000AE01813A09F052C08091B2019091B30142 -:1010A000892B09F04BC08091E800877F8093E8008E -:1010B0008091E80080FFFCCF80910B0136C08091C9 -:1010C000AE018132D9F58091B2019091B301892BA3 -:1010D000A9F58091E800877F8093E8000E948C0A40 -:1010E0008091B00180930B010C9412128091AE019B -:1010F000813221F58091E800877F8093E8000E948B -:101100008C0A8091B10180933F0108958091AE01D6 -:10111000813AA1F48091E800877F8093E800809174 -:10112000E80080FFFCCF80913F018093F100809127 -:10113000E8008E778093E8000C948C0A089584B7B9 -:10114000877F84BF88E10FB6F89480936000109287 -:1011500060000FBE90E080E80FB6F89480936100C5 -:10116000909361000FBE0E94240E0E94DD0A0E942F -:101170003A0B8091E20084608093E20078940E94B0 -:10118000C00D0E94260E81E091E00E94DB0D80914F -:10119000AD01853069F40E9492188091AB018823DB -:1011A000B1F30E94C018882391F30E943209EFCF57 -:1011B0000E94320EECCF292F332723303105C9F09E -:1011C00064F42130310581F02230310509F042C04C -:1011D0008BE390E02AED31E041C021323105F1F09E -:1011E0002232310549F136C082E190E025E132E05A -:1011F00035C099278130910541F08230910541F049 -:10120000892B41F5E6EDF1E005C0E6ECF1E002C026 -:10121000EAEAF1E0849190E09F0120C0662339F072 -:101220006130C1F489E090E025E032E017C089E048 -:1012300090E02CEE31E012C0662339F0613051F4B9 -:1012400089E390E027E232E009C08FE390E020E6F6 -:1012500032E004C080E090E020E030E0FA01318329 -:101260002083089580E189BD82E189BD09B400FE33 -:10127000FDCF8091D8008F7D8093D8008091E000D1 -:1012800082608093E0008091E00081FDFCCF0895B2 -:10129000CF92DF92EF92FF920F931F93CF93DF9342 -:1012A000EC018B016A010E94AB0A811133C0C114A9 -:1012B000D10439F0F60180819181081B190BC80F08 -:1012C000D91FE12CF12C0115110519F18091E800CD -:1012D00085FD16C08091E8008E778093E800C114E8 -:1012E000D10449F0F60180819181E80EF91EF18266 -:1012F000E08285E00FC00E94AB0A882321F30AC078 -:1013000089918093F10001501109FFEFEF1AFF0A54 -:10131000DACF80E0DF91CF911F910F91FF90EF9096 -:10132000DF90CF9008952091B4013091B501261738 -:10133000370748F06115710539F42091E8002E77E0 -:101340002093E80001C0B90140E061157105A9F1E1 -:101350002091AD01222309F443C0253009F442C095 -:101360002091E80023FD40C02091E80022FD32C01A -:101370002091E80020FFE9CF4091F3002091F20096 -:1013800030E0342BFC01CF016115710559F0283094 -:10139000310540F481918093F100615071092F5F14 -:1013A0003F4FF1CF41E02830310509F040E0209176 -:1013B000E8002E772093E800C8CF4111C9CF0AC0BA -:1013C0008091AD01882361F0853061F08091E80063 -:1013D00083FD0AC08091E80082FFF2CF80E008958B -:1013E00082E0089583E0089581E008952091B4019A -:1013F0003091B5012617370748F06115710539F4AA -:101400002091E8002E772093E80001C0B901FC018B -:1014100020E06115710591F18091AD01882309F4F7 -:1014200040C0853009F43FC08091E80083FD3DC095 -:101430008091E80082FD2FC08091E80080FFE9CF15 -:101440002091F3008091F20090E0922B61157105DC -:1014500059F08830910540F424912093F1003196A1 -:10146000615071090196F2CF21E0089709F020E060 -:101470008091E8008E778093E800CBCF2111CCCF0C -:101480000AC08091AD01882361F0853061F08091C0 -:10149000E80083FD0AC08091E80082FFF2CF80E07F -:1014A000089582E0089583E0089581E00895982FDB -:1014B000973058F59093E900981739F07091EC0047 -:1014C0002091ED005091F00003C0242F762F50E0C2 -:1014D00021FF19C03091EB003E7F3093EB0030913B -:1014E000ED003D7F3093ED003091EB0031603093A3 -:1014F000EB007093EC002093ED005093F0002091EE -:10150000EE0027FF07C09F5FD3CF8F708093E90065 -:1015100081E0089580E008958091AE0187FF11C0B9 -:101520008091E80082FD05C08091AD018111F8CF66 -:1015300011C08091E8008B770BC08091AD018823AA -:1015400049F08091E80080FFF8CF8091E8008E7725 -:101550008093E80008952091E4003091E50095E63D -:101560004091EC00842F817040FF22C08091E80000 -:1015700080FD1CC08091AD01882391F0853091F0F1 -:101580008091EB0085FD10C04091E4005091E50092 -:101590004217530729F39A01915011F784E00895F7 -:1015A00082E0089583E0089581E0089580E0089541 -:1015B0004091E80042FFDECF08950E944B0B0E944D -:1015C000530BE0EEF0E0808181608083E8EDF0E095 -:1015D00080818F77808319BCA7EDB0E08C918E7FDE -:1015E0008C9380818F7E80831092AC0108950F933D -:1015F0001F93CF93DF930E944B0B0E94530BC8EDB8 -:10160000D0E088818F77888388818068888388810B -:101610008F7D888319BC1092AD011092A9011092A0 -:10162000AB011092AA0100EE10E0F80180818B7FDF -:10163000808388818160888342E060E080E00E944E -:10164000570AE1EEF0E080818E7F8083E2EEF0E0E9 -:10165000808181608083808188608083F8018081BF -:101660008E7F8083888180618883DF91CF911F91F5 -:101670000F910895E8EDF0E080818F7E8083E7EDA3 -:10168000F0E080818160808384E082BF81E080938C -:10169000AC010C94F70AE8EDF0E080818E7F808346 -:1016A0001092E20008951092DA001092E10008957D -:1016B0001F920F920FB60F9211242F933F934F93C7 -:1016C0005F936F937F938F939F93AF93BF93EF93AA -:1016D000FF938091E10082FF0BC08091E20082FFC6 -:1016E00007C08091E1008B7F8093E1000E94BF0DD5 -:1016F0008091DA0080FF1FC08091D80080FF1BC05E -:101700008091DA008E7F8093DA008091D90080FF8B -:101710000DC080E189BD82E189BD09B400FEFDCF25 -:1017200081E08093AD010E94D00705C019BC1092E2 -:10173000AD010E94DE078091E10080FF19C0809119 -:10174000E20080FF15C08091E2008E7F8093E2006E -:101750008091E20080618093E2008091D8008062F5 -:101760008093D80019BC85E08093AD010E94E20708 -:101770008091E10084FF30C08091E20084FF2CC0A2 -:1017800080E189BD82E189BD09B400FEFDCF809171 -:10179000D8008F7D8093D8008091E1008F7E809368 -:1017A000E1008091E2008F7E8093E2008091E20070 -:1017B00081608093E2008091A901882311F084E088 -:1017C00007C08091E30087FD02C081E001C083E093 -:1017D0008093AD010E94E3078091E10083FF29C05F -:1017E0008091E20083FF25C08091E100877F809394 -:1017F000E10082E08093AD011092A9018091E100A7 -:101800008E7F8093E1008091E2008E7F8093E200E2 -:101810008091E20080618093E20042E060E080E03D -:101820000E94570A8091F00088608093F0000E9427 -:10183000E107FF91EF91BF91AF919F918F917F91C0 -:101840006F915F914F913F912F910F900FBE0F902D -:101850001F9018951F920F920FB60F9211242F937D -:101860003F934F935F936F937F938F939F93AF9328 -:10187000BF93CF93DF93EF93FF93C091E900CF70B5 -:101880008091EC00D82FD17080FDD0E81092E90053 -:101890008091F000877F8093F00078940E946E0C16 -:1018A0001092E9008091F00088608093F000CD2BC9 -:1018B000CF70C093E900FF91EF91DF91CF91BF917D -:1018C000AF919F918F917F916F915F914F913F91D8 -:1018D0002F910F900FBE0F901F9018951F93CF93CD -:1018E000DF93CDB7DEB7AA970FB6F894DEBF0FBE71 -:1018F000CDBFEEEAF1E088E08E0F9091F100919378 -:101900008E13FBCF0E94EF078091E80083FF1FC179 -:101910008091AE019091AF01492F50E04A305105BE -:1019200008F015C1FA01EA5AFF4F0C94DE1C80380A -:1019300081F0823809F00BC18091B2018F708093E1 -:10194000E9008091EB0085FB882780F91092E9007F -:1019500006C08091AA019091AB0191118260909193 -:10196000E800977F9093E8008093F1001092F100D7 -:10197000C8C0282F2D7F09F0EAC0882319F08230D3 -:1019800061F0E5C08091B001813009F0E0C0933092 -:1019900009F080E08093AB012BC08091B0018111F0 -:1019A00027C08091B2018F7009F4D1C08093E90003 -:1019B0002091EB0020FF1CC0933021F48091EB00BC -:1019C000806214C09091EB0090619093EB0021E055 -:1019D00030E0A90102C0440F551F8A95E2F74093F9 -:1019E000EA001092EA008091EB0088608093EB009F -:1019F0001092E9008091E800877F86C08111A7C01E -:101A00001091B0011F778091E3008078812B809343 -:101A1000E3008091E800877F8093E8000E948C0AB1 -:101A20008091E80080FFFCCF8091E3008068809384 -:101A3000E300111102C082E001C083E08093AD0198 -:101A400086C08058823008F082C08091B0019091A9 -:101A5000B1018C3D53E0950779F583E08A838AE2F2 -:101A600089834FB7F894DE01139620E03EE051E2FF -:101A7000E32FF0E050935700E49120FF03C0E2957C -:101A8000EF703F5FEF708E2F90E0EA3010F0C79656 -:101A900001C0C0968D939D932F5F243149F74FBFAE -:101AA0008091E800877F8093E8006AE270E0CE01D1 -:101AB00001960E94930914C0AE014F5F5F4F609181 -:101AC000B2010E94DB08BC01009709F440C090916C -:101AD000E800977F9093E80089819A810E94F60937 -:101AE0008091E8008B778093E80031C0803879F5E9 -:101AF0008091E800877F8093E8008091A90180931E -:101B0000F1008091E8008E778093E8000E948C0AB3 -:101B10001EC081111CC09091B0019230C0F4809120 -:101B2000E800877F8093E8009093A9010E948C0AC7 -:101B30008091A901811106C08091E30087FD02C058 -:101B400081E001C084E08093AD010E94E5078091AF -:101B5000E80083FF0AC08091E800877F8093E80057 -:101B60008091EB0080628093EB00AA960FB6F89408 -:101B7000DEBF0FBECDBFDF91CF911F9108950895B5 -:101B8000CF938091AD018823A1F0C091E900CF707F -:101B90009091EC00892F817090FD80E8C82B109205 -:101BA000E9008091E80083FD0E946E0CCF70C09325 -:101BB000E900CF91089590934501809344010895E1 -:101BC000E0914401F0914501309721F00190F081BE -:101BD000E02D099480E00895E0914401F0914501E1 -:101BE000309721F00280F381E02D0994089520912F -:101BF0004201309143018217930771F090934301A2 -:101C000080934201E0914401F0914501309721F029 -:101C10000680F781E02D09940895209140013091CC -:101C200041018217930771F0909341018093400125 -:101C3000E0914401F0914501309721F00084F18555 -:101C4000E02D0994089508950C94230E0E9405191F -:101C50000E943B060E94C7190E94471C81E08093A6 -:101C60000C010895CF92DF92EF92FF920F931F9392 -:101C7000CF93DF9300D000D000D0CDB7DEB70E9465 -:101C8000800685E0E82EF12C0E2D8E2D0E94E506B3 -:101C90009701295B3E4F6901F90110811827A9F4CA -:101CA000F1E0EF1AF10880F78FEF89838A831B82B6 -:101CB0000E940E198160782F9D838C8349815A81FF -:101CC0006B818D810E94C00E32C09091A20191FF64 -:101CD00004C08E830E9400078E8113FD09C012FD8F -:101CE0000AC011FD0BC010FFDBCF90E011E008C06F -:101CF00093E018E005C092E014E002C091E012E029 -:101D000099830A83812391E009F490E09B830E94E8 -:101D10000E198160782F9D838C8349815A816B8154 -:101D20008D810E94C00EF6018081182710831091CA -:101D300046010E94E00D1817A1F00E94E00D80936B -:101D4000460126960FB6F894DEBF0FBECDBFDF91D9 -:101D5000CF911F910F91FF90EF90DF90CF900C9457 -:101D6000250626960FB6F894DEBF0FBECDBFDF91D5 -:101D7000CF911F910F91FF90EF90DF90CF9008953A -:101D8000CF93DF93CDB7DEB72B970FB6F894DEBFB6 -:101D90000FBECDBF4F83588769877A878B87DE0157 -:101DA000119686E0FD0111928A95E9F785E0FE0122 -:101DB000379601900D928A95E1F749815A816B819E -:101DC0007C818D819E810E94B0142B960FB6F89471 -:101DD000DEBF0FBECDBFDF91CF910895CF93882393 -:101DE00009F499C0C82F8CEF8C0F813A48F48C2FDE -:101DF0000E94051C81118FC08C2F0E948A170CC075 -:101E000080E28C0F883058F4C77081E001C0880FE1 -:101E1000CA95EAF70E941018CF910C9457188BE5D9 -:101E20008C0F833078F4C53A29F0C63A31F083E854 -:101E300090E005C081E890E002C082E890E0CF9198 -:101E40000C94F70D88E58C0F833108F064C0C83A14 -:101E500039F1C93A41F1CA3A49F1CB3A51F1CC3A98 -:101E600059F1CD3A61F1C03B69F1CE3A71F1CF3A07 -:101E700079F1C13B81F1C23B89F1C33B91F1C43B94 -:101E800099F1C53BA1F1C63BA9F1C73BB1F1C83BF4 -:101E9000B9F1C93BC1F1CA3BC9F180E090E038C05B -:101EA00082EE90E035C089EE90E032C08AEE90E09C -:101EB0002FC085EB90E02CC086EB90E029C087EB2B -:101EC00090E026C08CEC90E023C08DEC90E020C028 -:101ED00083E891E01DC08AE891E01AC082E991E0B0 -:101EE00017C084E991E014C081E292E011C083E25E -:101EF00092E00EC084E292E00BC085E292E008C05E -:101F000086E292E005C087E292E002C08AE292E0B7 -:101F1000CF910C940D0ECF910895882329F19CEF59 -:101F2000980F913A18F40E94CC170DC090E2980FC8 -:101F3000983058F4877091E001C0990F8A95EAF7BC -:101F4000892F0E9416180C9457189BE5980F933010 -:101F500020F480E090E00C94F70D885A833120F44F -:101F600080E090E00C940D0E0895882321F00E94EB -:101F700010180C9457180895882321F00E94161801 -:101F80000C94571808957F928F929F92AF92BF92B0 -:101F9000CF92DF92EF92FF920F931F93CF93DF9335 -:101FA0001F92CDB7DEB77C01C62E772EFC010581CE -:101FB00002950F70128111110E942D180E94831733 -:101FC000882379F0112369F080E28C0D883048F085 -:101FD00082E00E946C170E94831791E0D82ED926C8 -:101FE00001C0D12CE72DE295EF70F0E0E05AFF4FF1 -:101FF0000C94DE1C872D807F072D0F70882311F035 -:102000000295007F112389F0002309F46EC180E25C -:102010008C0D883020F4802F0E94101803C0802F70 -:102020000E9420180E94571860C18C2D0E948D0FAD -:10203000002309F498C180E28C0D883020F4802FB1 -:102040000E94161803C0802F0E9426180E9457185D -:102050008AC1872D807F972D9F70803211F4892F40 -:1020600003C0892F8295807FCC2021F0F1E0CF162C -:10207000A1F01DC0112339F0002319F1013009F539 -:102080000E94401870C1002319F0013009F46BC19F -:1020900089830E9443188981E5C0112321F006300D -:1020A00008F061C10EC0053008F05DC1DBC011232E -:1020B00059F0002331F0F701958190FF16C19F7010 -:1020C00095830E94B50F4FC1002309F4CBC013C103 -:1020D000872D837009F052C0111145C18C2D829556 -:1020E00086958770880F880F9C2D9F70892E912C64 -:1020F000A12CB12C082E04C0880C991CAA1CBB1C56 -:102100000A94D2F7C4FE14C00FE010E020E030E0E3 -:10211000B901A80104C0440F551F661F771F8A9597 -:10212000D2F7CB01BA01609570958095909503C068 -:1021300060E070E0CB01272D26952695237030E0D6 -:102140002230310569F02330310589F06829792979 -:102150008A299B292130310571F00E94F81503C1AD -:10216000682979298A299B290E941416FCC00E949B -:10217000F815C501B4010E94DC15F5C0112319F052 -:10218000872D817001C08695882309F4ECC08C2DC1 -:10219000829586958770880F880F9C2D9F70892E59 -:1021A000912CA12CB12C082E04C0880C991CAA1CBF -:1021B000BB1C0A94D2F7C4FE14C00FE010E020E06C -:1021C00030E0B901A80104C0440F551F661F771FF6 -:1021D0008A95D2F7CB01BA0160957095809590955C -:1021E00003C060E070E0CB01272D26952695237073 -:1021F000422F50E04230510569F04330510589F0DB -:10220000682979298A299B294130510571F00E945A -:10221000D216A9C0682979298A299B290E94EE161D -:10222000A2C00E94D216C501B4010E94B6169BC07E -:102230008C2D90E0FC01E05EF109E531F10508F03C -:1022400050C0E059FF4F0C94DE1C0C2D0F70872DF1 -:102250008F71112321F00E944F16802F32CF0E94E0 -:102260007016802F0E94BC0F7EC0112341F00530F4 -:1022700008F079C0872D8F710E94951674C00630C2 -:1022800008F071C0F7CF112339F0872D8F710E94AC -:102290004F1669C01123C9F3872D8F710E947016E4 -:1022A00062C0112329F0872D8F710E943A165BC0FE -:1022B0000E94301658C0112351F0172D1F71812F25 -:1022C0000E944F1663E0812F0E9463174CC081E08B -:1022D0000E946C17023008F446C082E00E946C171E -:1022E00042C0112331F0002381F28C2D0E94EE0EAA -:1022F0003AC0002389F28C2D0E948D0F34C0472DE7 -:102300004F706C2DC7010E94E2010E9454152BC032 -:10231000111129C0472D4F7050E042305105B9F0DE -:102320004CF44115510581F041305105E1F40E9412 -:102330006F1C19C04330510569F04430510599F4C0 -:102340008C2D0E94C11C0FC00E94581C0CC00E9402 -:102350008B1C09C00E949E1C06C0472D4F706C2D1F -:10236000C7010E94E101DD20F9F00E945F1780FDA6 -:102370001BC0F70112820E9459170E944F16C70115 -:102380000E94E3110E9459170F90DF91CF911F9186 -:102390000F91FF90EF90DF90CF90BF90AF909F9004 -:1023A0008F907F900C9470160F90DF91CF911F91BA -:1023B0000F91FF90EF90DF90CF90BF90AF909F90E4 -:1023C0008F907F9008950F931F93CF93DF93EC012D -:1023D000888199812B813C81232BB9F09F3F11F497 -:1023E0008F3F99F0CE010E945B02882371F06881D3 -:1023F00079818A810E9455178C010E940A170E94D8 -:10240000D115B801CE010E94C30FDF91CF911F916A -:102410000F9108950E942D180E943D180E940218E5 -:102420000C9457180E941D180C940A120E944A1707 -:10243000292F22952F7030E02C3031054CF42A30B2 -:1024400031056CF42250310922303105A8F407C05F -:102450002C30310569F02F30310551F00DC0803F2F -:1024600069F018F4803E40F409C0843F29F406C0A6 -:1024700093FB882780F9089580E0089581E008950E -:10248000CF93DF9300D000D01F92CDB7DEB70F906F -:102490000F900F900F900F90DF91CF910895CF93F1 -:1024A000DF9300D000D000D0CDB7DEB726960FB6B0 -:1024B000F894DEBF0FBECDBFDF91CF9108951F937B -:1024C000CF93DF93C0914D0116E080914E01C81764 -:1024D00099F0D0E01C9FF0011D9FF00D1124E15BED -:1024E000FE4F4081518162817381848195810E9478 -:1024F0004F122196C770E9CFDF91CF911F910895B8 -:1025000040917F0150918001609181017091820121 -:1025100080918301909184010C944F1280918401E9 -:1025200082958F7009F054C080918101882309F44D -:102530004FC080914D01A0914E0160917F0170913B -:1025400080014091820150918301B6E08A1709F41D -:102550003FC090E041155105C1F17F3F11F46F3F3D -:10256000A1F1B89FF001B99FF00D1124E15BFE4F7E -:10257000218172132AC02081621327C02281211178 -:1025800024C0238134812417350710F421503109E8 -:10259000241B350B283C3105C0F4209184012F7099 -:1025A00020612093840126E0289FF001299FF00DEF -:1025B0001124EC5AFE4F80818F70806180838FE7F9 -:1025C00091E00E94E3110C945F1201968770BECFD8 -:1025D0000895CF92DF92EF92FF920F931F93CF93C4 -:1025E000DF93CDB7DEB762970FB6F894DEBF0FBEAC -:1025F000CDBF8C0185E0F801DE011D9601900D92A2 -:102600008A95E1F7D8014C9111965C911197129639 -:102610006C9112971396CD90DC90149730917F01B6 -:10262000709180018091820190918301009709F45B -:102630006BC17F3F19F43F3F09F466C1E09081010F -:10264000EE2009F4C0C020918401C816D90628F0F4 -:10265000F601E81BF90BCF0104C0809590958C0D15 -:102660009D1DFF24F394883C910578F0F12C207F88 -:1026700009F0C6C07C2DD98AC88A89890E94401277 -:102680008FE791E00E94E311B1C0822F807F09F0B3 -:1026900046C0751314C0341312C0611110C02F70DE -:1026A0002061209384010E9480128FE791E00E94B4 -:1026B000E31180918401D80115968C932EC0CD280A -:1026C00019F15F3F11F44F3FF9F0F62E61111CC074 -:1026D00080914D0120914E0136E0821709F45AC0D5 -:1026E00090E0389FF001399FF00D1124E15BFE4F1F -:1026F0007181571306C07081471303C07281711135 -:1027000003C001968770E9CFF62E662309F418C13D -:1027100080918401816080938401F12C11C1751333 -:1027200008C0341306C0611104C080918401D8012F -:10273000C3C04D875E878D859E856A8B0E94161269 -:102740006A898823E1F16623D1F120918401822FE7 -:1027500082958F7090E0029774F080917F01909144 -:10276000800198878F831986DB86CA862C87CE01E5 -:1027700007960E94E31186E0F801AFE7B1E001900F -:102780000D928A95E1F70E948E120E948012FF241A -:10279000F394D6C04D875E878D859E850E944A172B -:1027A000292F22952F7030E0223031050CF0BCC06B -:1027B0009F7009F0B6C0805E883008F4C1C0C801BF -:1027C0000E94E311E4CFC816D90608F453C0F601FD -:1027D000E81BF90BCF01883C910508F450C0F12C9F -:1027E0007C2DD98AC88A89890E944012EFE7F1E0DE -:1027F00086E0DF011D928A95E9F70E948012A0C051 -:10280000751314C0341312C0611110C0809184017B -:10281000F8018583C8010E94E31186E0EFE7F1E04B -:10282000DF011D928A95E9F7FE2C8AC04D875E87ED -:102830008D859E856A8B0E9416126A89882309F409 -:10284000BECF662309F4BBCF20918401822F8295ED -:102850008F7090E002970CF48ECF80917F01909161 -:1028600080019A8389831B82DD82CC822E83CE01F4 -:1028700001967FCF809590958C0D9D1DACCFF62E47 -:10288000662309F49CCF75132EC034132CC02091FD -:10289000840120FD1FC0822F82958F70D9F0D8014E -:1028A00015962C9315978F3049F08F5F982F92953E -:1028B000907F822F8F70892B15968C93C8010E9470 -:1028C000E31186E0F801AFE7B1E001900D928A953F -:1028D000E1F793CF86E0F801AFE7B1E001900D9208 -:1028E0008A95E1F72DC04D875E878D859E850E9474 -:1028F0001612811140CF8091840181608093840100 -:10290000C8010E94E3111CC0662309F458CF4D870B -:102910005E878D859E850E941612882309F44FCF0D -:102920002ACF811148CF0CC0243031050CF047CF9D -:102930009F7009F440CFF8019581907F09F03BCF5B -:102940008F2D62960FB6F894DEBF0FBECDBFDF911C -:10295000CF911F910F91FF90EF90DF90CF9008954E -:102960001F93CF93DF93CDB7DEB72C970FB6F894B4 -:10297000DEBF0FBECDBF4F83588769877A878B87AD -:102980009C87CE0107960E94E912882369F08F8107 -:1029900098852A853B85232BF1F19F3F09F063C081 -:1029A0008F3F09F060C037C086E0FE013796DE0138 -:1029B000119601900D928A95E1F76F817885EA85ED -:1029C000FB85309741F17F3F11F46F3F21F120915A -:1029D0004E0130E0C90101968770992740914D0161 -:1029E00050E08417950709F447C069837A83FD8313 -:1029F000EC8396E0929FD001939FB00D1124A15BD0 -:102A0000BE4FFE01319601900D929A95E1F78093A9 -:102A10004E010E945F1216E080914D0190914E018F -:102A20008917C1F1189FC0011124815B9E4F0E943C -:102A3000E912882379F1E0914D011E9FF0011124E4 -:102A4000E15BFE4F40815181628173818481958178 -:102A50000E944F1280914D0190E001968770992756 -:102A600080934D01D9CF4F81588569857A858B85B3 -:102A70009C850E944F12CFCF0E94121210924E01DD -:102A800010924D01EFE7F1E086E0DF011D928A959B -:102A9000E9F7C1CF2C960FB6F894DEBF0FBECDBFBD -:102AA000DF91CF911F910895EF92FF920F931F93A3 -:102AB000CF93DF938C01009709F46CC0F12CEE24C6 -:102AC000E394E8012196F8018491843740F484303E -:102AD00008F051C0813081F0823019F15BC0853738 -:102AE00009F444C0A8F19CE7980F903708F052C051 -:102AF0008F770E948D0F41C00E5F1F4FFE01C49162 -:102B000080E28C0F883048F4C7708E2D01C0880F8A -:102B1000CA95EAF70E94301814C08C2F0E94EE0E5E -:102B20002DC00E5F1F4FFE01C49180E28C0F8830D4 -:102B300058F4C7708E2D01C0880FCA95EAF70E941D -:102B400036180E9457181AC08C2F0E948D0F16C07D -:102B50000E5F1F4FFE01C491CC2381F08FE99FE0EF -:102B60000197F1F700C00000C150F6CF0E5F1F4F74 -:102B7000FE01F49003C00E94EE0E8E018F2D88237B -:102B800009F49FCFEFE9FFE03197F1F700C00000B3 -:102B90008150F5CFDF91CF911F910F91FF90EF9072 -:102BA000089508956093890170938A0180938B0141 -:102BB00090938C010C940A120F931F93009189013A -:102BC00010918A0120918B0130918C01DC01CB01A5 -:102BD000802B912BA22BB32B8093890190938A0198 -:102BE000A0938B01B0938C011F910F910C940A124A -:102BF0000F931F930091890110918A0120918B01FD -:102C000030918C01DC01CB0180239123A223B323DB -:102C10008093890190938A01A0938B01B0938C01DA -:102C20001F910F910C940A120F931F930091890129 -:102C300010918A0120918B0130918C01DC01CB0134 -:102C400080279127A227B3278093890190938A0137 -:102C5000A0938B01B0938C011F910F910C940A12D9 -:102C600010928501109286011092870110928801BE -:102C70000C940A1241E050E060E070E004C0440FA0 -:102C8000551F661F771F8A95D2F740938501509391 -:102C9000860160938701709388010C940A1241E0C9 -:102CA00050E060E070E004C0440F551F661F771FBE -:102CB0008A95D2F78091850190918601A091870134 -:102CC000B0918801482B592B6A2B7B2B40938501AF -:102CD0005093860160938701709388010C940A12C7 -:102CE00041E050E060E070E004C0440F551F661FF3 -:102CF000771F8A95D2F74095509560957095809191 -:102D0000850190918601A0918701B09188014823A7 -:102D100059236A237B234093850150938601609356 -:102D20008701709388010C940A1241E050E060E042 -:102D300070E004C0440F551F661F771F8A95D2F7B5 -:102D40008091850190918601A0918701B0918801C1 -:102D5000482759276A277B2740938501509386018E -:102D600060938701709388010C940A120F931F934C -:102D70000091850110918601209187013091880191 -:102D8000DC01CB01802B912BA22BB32B80938501EF -:102D900090938601A0938701B09388011F910F91B2 -:102DA0000C940A120F931F930091850110918601D4 -:102DB0002091870130918801DC01CB018023912390 -:102DC000A223B3238093850190938601A09387016A -:102DD000B09388011F910F910C940A120F931F93C7 -:102DE0000091850110918601209187013091880121 -:102DF000DC01CB0180279127A227B327809385018F -:102E000090938601A0938701B09388011F910F9141 -:102E10000C940A120895CF92DF92EF92FF920F93D3 -:102E20001F93CF93DF938C01C0908901D0908A01CA -:102E3000E0908B01F0908C0180918501909186014A -:102E4000A0918701B0918801C82AD92AEA2AFB2AD1 -:102E5000CFE1D0E0D701C6010C2E04C0B695A795EE -:102E6000979587950A94D2F780FF06C0B8018C2FFA -:102E70000E948905019721F4219760F780E001C045 -:102E80008C2FDF91CF911F910F91FF90EF90DF90EA -:102E9000CF900895CF93DF93EC010E940B17BE01F2 -:102EA0000E948905DF91CF910895CB010E944A17B6 -:102EB000089580918D0185958595859508958091DA -:102EC0008D018770089598E0899F90011124262B29 -:102ED00020938D010C944F1620918D0180958223B3 -:102EE00080938D01982F977069F430E0482F552713 -:102EF00047FD50952417350729F0859585958595CB -:102F00000C947016089590918D01977081E009F4EA -:102F100080E0089590910B01992321F090910C018C -:102F2000911109C020910D0130910E01F9013296E5 -:102F30009FEF40E01FC0982F9695969596959F30ED -:102F400050F5E0910D01F0910E01E90FF11D877030 -:102F500021E030E0A90102C0440F551F8A95E2F735 -:102F6000CA019181892B818308959F3F39F04F5F7A -:102F70004E3041F051915813F8CF0DC05111F7CF99 -:102F8000942FF5CF9F3F39F0F901E90FF11D97FD1F -:102F9000FA9582830895089590910B01992321F069 -:102FA00090910C01911109C020910D0130910E01F9 -:102FB000F9013296205F3F4F1FC0982F9695969546 -:102FC00096959F30F0F4E0910D01F0910E01E90F1C -:102FD000F11D877021E030E0A90102C0440F551FA8 -:102FE0008A95E2F7CA0180959181892381830895AA -:102FF0003196E217F30729F090819813F9CF1082E8 -:10300000F7CF089581E090E0E0910D01F0910E017D -:10301000E80FF91F1082019680319105A9F70895F4 -:103020009091A101892B8093A101089580959091A1 -:10303000A10189238093A10108951092A10108950F -:103040009091A001892B8093A00108958095909183 -:10305000A00189238093A00108951092A0010895F2 -:1030600090919F01892B80939F0108958095909165 -:103070009F01892380939F01089510929F010895D5 -:1030800080938E01089510928E01089580910D0114 -:1030900090910E01FC0131969C01205F3F4F80E032 -:1030A000919191118F5FE217F307D1F70895E091A5 -:1030B0000D01F0910E018091A1018083E0910D013D -:1030C000F0910E0190818091A001892B8083E09185 -:1030D0000D01F0910E01908180919F01892B8083D9 -:1030E00080918E01882361F0E0910D01F0910E0135 -:1030F0009081892B80830E944618811110928E0145 -:1031000080910D0190910E010C94EC0D20E0009740 -:1031100039F0AC0141505109842395232F5FF7CF3B -:10312000822F08958091AD01843039F11092A3016E -:1031300020E488E190E00FB6F894A89580936000B1 -:103140000FBE2093600080E00E94B40180E00E94E6 -:10315000250683B7817F846083BF83B7816083BF87 -:103160007894889583B78E7F83BF88E10FB6F894F3 -:1031700080936000109260000FBE08950895089536 -:1031800080E00E94B4010E94BE180E9480060E9446 -:10319000BF180E94010791E0811101C090E0892FC2 -:1031A00008950E94121280E00E94B4010E94471C00 -:1031B0000E94E00D0C9425061F920F920FB60F92FD -:1031C00011248F939F93AF93BF938091A30181119B -:1031D00013C08091A4019091A501A091A601B09186 -:1031E000A7014196A11DB11D8093A4019093A50153 -:1031F000A093A601B093A701BF91AF919F918F912A -:103200000F900FBE0F901F90189582E084BD93E041 -:1032100095BD9AEF97BD80936E0008952FB7F894EF -:103220008091A4019091A501A091A601B091A70160 -:103230002FBF0895CF92DF92EF92FF920F931F93CB -:103240002FB7F8944091A4015091A5016091A60177 -:103250007091A7012FBF6A017B01EE24FF248C012E -:1032600020E030E0C016D106E206F30610F441502B -:1032700051099A01281B390BC9011F910F91FF9029 -:10328000EF90DF90CF9008951F920F920FB60F929C -:1032900011248F939F93AF93BF938091A40190913A -:1032A000A501A091A601B091A7010196A11DB11D94 -:1032B0008093A4019093A501A093A601B093A701C8 -:1032C000BF91AF919F918F910F900FBE0F901F9064 -:1032D00018950E94DD0AF8942FEF87EA91E62150B5 -:1032E00080409040E1F700C0000087E090EBDC01F7 -:1032F0008093B8019093B901A093BA01B093BB0138 -:103300009CE088E10FB6F894A895809360000FBE0A -:1033100090936000FFCFEF92FF920F931F93CF9394 -:10332000DF93D82FC5E08C2F0E94E50603E010E064 -:10333000E82EF12CC701002E02C0959587950A94BE -:10334000E2F780FF09C0602F7C2F80E00E94070316 -:10335000D81302C081E006C00150110958F7C150CE -:1033600010F780E0DF91CF911F910F91FF90EF90C8 -:103370000895CF93C82F8CE20E948B19882321F0E7 -:103380008C2FCF910C948B1980E0CF910895CF931F -:103390000E94131B811102C00E94F41AC5E6C1509D -:1033A00049F00E9480068FE39CE90197F1F700C085 -:1033B0000000F5CF89E20E94B919811113C18AE298 -:1033C0000E94B91981110E94F41A85E00E94B9196E -:1033D00081110E9469190E941E1B8093A20187E03F -:1033E0000E94B9198823A9F18BE10E94B919882399 -:1033F00051F08091A20181FB222720F991E09227D0 -:1034000090FB81F90EC08EE00E94B919882361F00B -:103410008091A20182FB222720F991E0922790FB64 -:1034200082F98093A20115C080E10E94B9199091A0 -:10343000A201882341F093FB222720F981E0822713 -:1034400080FB93F904C0892F809580FB90F99093BD -:10345000A2018091A2010E94221B0E94301B809336 -:10346000B60180EE0E94B919882341F08091B6011F -:10347000982F909590FB80F98093B60189E30E9484 -:10348000B919882359F08091B60181FB222720F9D0 -:1034900091E0922790FB81F98093B60182EE0E9421 -:1034A000B919882359F08091B60182FB222720F9AF -:1034B00091E0922790FB82F98093B60186EE0E94FC -:1034C000B919882359F08091B60183FB222720F98E -:1034D00091E0922790FB83F98093B60183EE0E94DE -:1034E000B919882359F08091B60184FB222720F96D -:1034F00091E0922790FB84F98093B60185E30E94C6 -:10350000B919882359F08091B60185FB222720F94B -:1035100091E0922790FB85F98093B60181E30E94A8 -:10352000B919882359F08091B60186FB222720F92A -:1035300091E0922790FB86F98093B60181E10E9489 -:10354000B919882359F08091B60187FB222720F909 -:1035500091E0922790FB87F98093B6018091B601A4 -:103560000E94341B8091B60187FB882780F98093E5 -:103570000C0187E20E94B919C82F8EE10E94B91987 -:103580008111C2608FE10E94B9198111C46080E28B -:103590000E94B9198111C86081E20E94B919811194 -:1035A000C06182E20E94B9198111C06283E20E9467 -:1035B000B9198111C06484E20E94B919882311F0FD -:1035C000C06802C0CC2329F08C2F0E942B1B6C2FCB -:1035D00003C00E94271B682F70E080E090E0CF912D -:1035E0000C94D215CF9108956DEE7EEF80E090E0BF -:1035F0000E94041D60E082E090E00E94F21C60E006 -:1036000083E090E00E94F21C60E084E090E00E9481 -:10361000F21C60E085E090E00E94F21C60E086E031 -:1036200090E00C94F21C80E090E00E94EC1C21E001 -:103630008D3E9E4F09F020E0822F089582E090E0B9 -:103640000C94E41C682F82E090E00C94F21C83E060 -:1036500090E00C94E41C682F83E090E00C94F21C42 -:1036600084E090E00C94E41C682F84E090E00C94DB -:10367000F21C86E090E00C94E41C682F86E090E059 -:103680000C94F21C0F931F938B3109F475C0A0F5B5 -:103690008E3009F484C0C0F4873009F45BC068F44C -:1036A000863009F0AAC08091A201817F8E7F80932D -:1036B000A20181E08093A801A1C0883009F496C0DE -:1036C0008B3009F493C099C0813109F472C068F459 -:1036D000803109F092C08091A20183FB222720F95A -:1036E00091E0922790FB83F950C0863109F47EC0A7 -:1036F000893109F47BC081C0853309F479C068F44D -:10370000873209F475C028F48E3108F476C08D51E3 -:103710005AC0893209F46CC070C0833438F48A33DB -:1037200008F050C0883309F461C067C0833409F4DD -:103730005FC0883409F061C00E9412120FEF13EDD0 -:1037400020E3015010402040E1F700C000000E943B -:1037500069194CC09091A201892F8095817080FBDE -:1037600090F929F0966098609093A20147C0997FE4 -:10377000977F9093A2013AC08091A20181FB2227FA -:1037800020F991E0922790FB81F98093A20199237F -:1037900069F18091A20181608093A20127C080918C -:1037A000A20182FB222720F991E0922790FB82F967 -:1037B000ECCF0E94121290910C0181E08927809336 -:1037C0000C0114C0895341E050E060E070E08A01D0 -:1037D0009B0104C0000F111F221F331F8A95D2F7CF -:1037E000C901B8010E94D2150E94121281E006C0E0 -:1037F00061E070E080E090E0F5CF80E01F910F91F4 -:10380000089580E0089580E00895CF93C82F8091B7 -:10381000A801882319F0813049F031C0E0910D01F1 -:10382000F0910E018081823261F507C0E0910D01B7 -:10383000F0910E018081823261F48C2F0E94011C74 -:10384000811104C08C2F0E94421B17C081E090E0C0 -:1038500014C08C2F0E94031C81110EC0C43149F08A -:1038600018F4CB3049F00FC0C93219F0C83321F039 -:103870000AC01092A80107C081E0817006C01092B2 -:10388000A80180E002C080E0F8CFCF9108950E94A7 -:10389000131B811102C00E94F41A0E94391B8093ED -:1038A000B70180FF02C0869501C080E00C94B4018E -:1038B0008091B701982F9695292F30E0233031055C -:1038C0004CF49F5F990F8170892B81608093B701C1 -:1038D0000E943D1B8091B70186950C94B4018091A4 -:1038E000B701982F969591F09158990F8170892B77 -:1038F0008093B7018E7F91E009F490E08091B70149 -:1039000090FB80F98093B7010E943D1B8091B70125 -:1039100086950C94B4018091B701982F909590FBF7 -:1039200080F98093B7010E943D1B8091B70180FF11 -:1039300002C0869501C080E00C94B4019091B7015B -:10394000892F86958F5F8F779170843028F4880F48 -:10395000892B8093B70102C09093B7018091B70182 -:103960008E7F91E009F490E08091B70190FB80F99F -:103970008093B7010E943D1B8091B70186950C94FE -:10398000B4012091B701922F96958927982F990F0E -:10399000822F8170892B8093B7018E7F91E009F48B -:1039A00090E08091B70190FB80F98093B7010E946D -:1039B0003D1B8091B70186950C94B401EE0FFF1F5B -:1039C0000590F491E02D0994F999FECF92BD81BD47 -:1039D000F89A992780B50895A8E1B0E042E050E058 -:1039E0000C940C1D262FF999FECF92BD81BDF89A3B -:1039F000019700B4021639F01FBA20BD0FB6F89433 -:103A0000FA9AF99A0FBE08950196272F0E94F31C87 -:103A10000C94F21CDC01CB01FC01F999FECF06C02D -:103A2000F2BDE1BDF89A319600B40D92415050407C -:083A3000B8F70895F894FFCFE8 -:103A3800FF12077E0715074A07160701018F0103C2 -:0A3A48001323330F1F4F5F6F7F0041 -:00000001FF diff --git a/keyboards/arrow_pad/keymaps/pad_24/config.h b/keyboards/arrow_pad/keymaps/pad_24/config.h index 75369c047..e940acaa0 100644 --- a/keyboards/arrow_pad/keymaps/pad_24/config.h +++ b/keyboards/arrow_pad/keymaps/pad_24/config.h @@ -46,6 +46,8 @@ along with this program. If not, see . #define MATRIX_COL_PINS { B0, B1, B2, B3 } #define UNUSED_PINS +#define BACKLIGHT_PIN B7 + /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION ROW2COL diff --git a/keyboards/arrow_pad/readme.md b/keyboards/arrow_pad/readme.md new file mode 100644 index 000000000..5aa44cce5 --- /dev/null +++ b/keyboards/arrow_pad/readme.md @@ -0,0 +1,24 @@ +arrow_pad keyboard firmware +====================== + +## Quantum MK Firmware + +For the full Quantum feature list, see [the parent readme.md](/readme.md). + +## Building + +Download or clone the whole firmware and navigate to the keyboards/arrow_pad folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default +To build with the default keymap, simply run `make`. + +### Other Keymaps +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` in the keymaps folder, and see keymap document (you can find in top readme.md) and existent keymap files. + +To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: +``` +$ make KEYMAP=[default|jack|] +``` +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. \ No newline at end of file diff --git a/keyboards/atomic/README.md b/keyboards/atomic/README.md deleted file mode 100644 index 9fe75f572..000000000 --- a/keyboards/atomic/README.md +++ /dev/null @@ -1,25 +0,0 @@ -Atomic keyboard firmware -====================== -DIY/Assembled ortholinear 60% keyboard by [Ortholinear Keyboards](http://ortholinearkeyboards.com). - -## Quantum MK Firmware - -For the full Quantum feature list, see [the parent README.md](/README.md). - -## Building - -Download or clone the whole firmware and navigate to the keyboards/atomic folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use `make dfu` to program your PCB once you hit the reset button. - -Depending on which keymap you would like to use, you will have to compile slightly differently. - -### Default -To build with the default keymap, simply run `make`. - -### Other Keymaps -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a file in the keymaps folder named `.c` and see keymap document (you can find in top README.md) and existent keymap files. - -To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: -``` -$ make KEYMAP=[default|jack|] -``` -Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboards/atomic/atomic.c b/keyboards/atomic/atomic.c index fa218a48f..6f393315e 100644 --- a/keyboards/atomic/atomic.c +++ b/keyboards/atomic/atomic.c @@ -1,26 +1,5 @@ #include "atomic.h" -__attribute__ ((weak)) -void matrix_init_user(void) { - // leave this function blank - it can be defined in a keymap file -}; - -__attribute__ ((weak)) -void matrix_scan_user(void) { - // leave this function blank - it can be defined in a keymap file -} - -__attribute__ ((weak)) -bool process_action_user(keyrecord_t *record) { - // leave this function blank - it can be defined in a keymap file - return true; -} - -__attribute__ ((weak)) -void led_set_user(uint8_t usb_led) { - // leave this function blank - it can be defined in a keymap file -} - void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up @@ -28,298 +7,9 @@ void matrix_init_kb(void) { MCUCR |= (1<= BACKLIGHT_LEVELS ) - { - // Turn on PWM control of PB7 - TCCR1A |= _BV(COM1C1); - - // Set the brightness to max - CHANNEL = 0xFFFF; - } - else - { - // Turn on PWM control of PB7 - TCCR1A |= _BV(COM1C1); - - // Set the brightness - CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); - } - breathing_intensity_default(); -} - - -void breathing_enable(void) -{ - if (get_backlight_level() == 0) - { - breathing_index = 0; - } - else - { - // Set breathing_index to be at the midpoint (brightest point) - breathing_index = 0x20 << breath_speed; - } - - breathing_halt = BREATHING_NO_HALT; - - // Enable breathing interrupt - TIMSK1 |= _BV(OCIE1A); -} - -void breathing_pulse(void) -{ - if (get_backlight_level() == 0) - { - breathing_index = 0; - } - else - { - // Set breathing_index to be at the midpoint + 1 (brightest point) - breathing_index = 0x21 << breath_speed; - } - - breathing_halt = BREATHING_HALT_ON; - - // Enable breathing interrupt - TIMSK1 |= _BV(OCIE1A); -} - -void breathing_disable(void) -{ - // Disable breathing interrupt - TIMSK1 &= ~_BV(OCIE1A); - backlight_set(get_backlight_level()); -} - -void breathing_self_disable(void) -{ - if (get_backlight_level() == 0) - { - breathing_halt = BREATHING_HALT_OFF; - } - else - { - breathing_halt = BREATHING_HALT_ON; - } - - //backlight_set(get_backlight_level()); -} - -void breathing_toggle(void) -{ - if (!is_breathing()) - { - if (get_backlight_level() == 0) - { - breathing_index = 0; - } - else - { - // Set breathing_index to be at the midpoint + 1 (brightest point) - breathing_index = 0x21 << breath_speed; - } - - breathing_halt = BREATHING_NO_HALT; - } - - // Toggle breathing interrupt - TIMSK1 ^= _BV(OCIE1A); - - // Restore backlight level - if (!is_breathing()) - { - backlight_set(get_backlight_level()); - } -} - -bool is_breathing(void) -{ - return (TIMSK1 && _BV(OCIE1A)); -} - -void breathing_intensity_default(void) -{ - //breath_intensity = (uint8_t)((uint16_t)100 * (uint16_t)get_backlight_level() / (uint16_t)BACKLIGHT_LEVELS); - breath_intensity = ((BACKLIGHT_LEVELS - get_backlight_level()) * ((BACKLIGHT_LEVELS + 1) / 2)); -} - -void breathing_intensity_set(uint8_t value) -{ - breath_intensity = value; -} - -void breathing_speed_default(void) -{ - breath_speed = 4; -} - -void breathing_speed_set(uint8_t value) -{ - bool is_breathing_now = is_breathing(); - uint8_t old_breath_speed = breath_speed; - - if (is_breathing_now) - { - // Disable breathing interrupt - TIMSK1 &= ~_BV(OCIE1A); - } - - breath_speed = value; - - if (is_breathing_now) - { - // Adjust index to account for new speed - breathing_index = (( (uint8_t)( (breathing_index) >> old_breath_speed ) ) & 0x3F) << breath_speed; - - // Enable breathing interrupt - TIMSK1 |= _BV(OCIE1A); - } - -} - -void breathing_speed_inc(uint8_t value) -{ - if ((uint16_t)(breath_speed - value) > 10 ) - { - breathing_speed_set(0); - } - else - { - breathing_speed_set(breath_speed - value); - } -} - -void breathing_speed_dec(uint8_t value) -{ - if ((uint16_t)(breath_speed + value) > 10 ) - { - breathing_speed_set(10); - } - else - { - breathing_speed_set(breath_speed + value); - } -} - -void breathing_defaults(void) -{ - breathing_intensity_default(); - breathing_speed_default(); - breathing_halt = BREATHING_NO_HALT; -} - -/* Breathing Sleep LED brighness(PWM On period) table - * (64[steps] * 4[duration]) / 64[PWM periods/s] = 4 second breath cycle - * - * http://www.wolframalpha.com/input/?i=%28sin%28+x%2F64*pi%29**8+*+255%2C+x%3D0+to+63 - * (0..63).each {|x| p ((sin(x/64.0*PI)**8)*255).to_i } - */ -static const uint8_t breathing_table[64] PROGMEM = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 4, 6, 10, - 15, 23, 32, 44, 58, 74, 93, 113, 135, 157, 179, 199, 218, 233, 245, 252, -255, 252, 245, 233, 218, 199, 179, 157, 135, 113, 93, 74, 58, 44, 32, 23, - 15, 10, 6, 4, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -}; - -ISR(TIMER1_COMPA_vect) -{ - // CHANNEL = (pgm_read_byte(&breathing_table[ ( (uint8_t)( (breathing_index++) >> breath_speed ) ) & 0x3F ] )) * breath_intensity; - - - uint8_t local_index = ( (uint8_t)( (breathing_index++) >> breath_speed ) ) & 0x3F; - - if (((breathing_halt == BREATHING_HALT_ON) && (local_index == 0x20)) || ((breathing_halt == BREATHING_HALT_OFF) && (local_index == 0x3F))) - { - // Disable breathing interrupt - TIMSK1 &= ~_BV(OCIE1A); - } - - CHANNEL = (uint16_t)(((uint16_t)pgm_read_byte(&breathing_table[local_index]) * 257)) >> breath_intensity; - -} - - - -#endif \ No newline at end of file +} \ No newline at end of file diff --git a/keyboards/atomic/atomic.h b/keyboards/atomic/atomic.h index 901761f51..88e11fadf 100644 --- a/keyboards/atomic/atomic.h +++ b/keyboards/atomic/atomic.h @@ -24,26 +24,4 @@ { K40, K41, KC_NO, K43, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E } \ } -void matrix_init_user(void); -void matrix_scan_user(void); -bool process_action_user(keyrecord_t *record); -void led_set_user(uint8_t usb_led); -void backlight_init_ports(void); - -void breathing_enable(void); -void breathing_pulse(void); -void breathing_disable(void); -void breathing_self_disable(void); -void breathing_toggle(void); -bool is_breathing(void); - - -void breathing_defaults(void); -void breathing_intensity_default(void); -void breathing_speed_default(void); -void breathing_speed_set(uint8_t value); -void breathing_speed_inc(uint8_t value); -void breathing_speed_dec(uint8_t value); - - #endif \ No newline at end of file diff --git a/keyboards/atomic/config.h b/keyboards/atomic/config.h index bf9550e94..9c40f54e7 100644 --- a/keyboards/atomic/config.h +++ b/keyboards/atomic/config.h @@ -46,6 +46,8 @@ along with this program. If not, see . #define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7, D3, D2, D1 } #define UNUSED_PINS +#define BACKLIGHT_PIN B7 + /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW diff --git a/keyboards/atomic/keymaps/default/compiled.hex b/keyboards/atomic/keymaps/default/compiled.hex deleted file mode 100644 index b9bb143ea..000000000 --- a/keyboards/atomic/keymaps/default/compiled.hex +++ /dev/null @@ -1,1118 +0,0 @@ -:100000000C942A030C946E030C946E030C946E03F0 -:100010000C946E030C946E030C946E030C946E039C -:100020000C946E030C946E030C946A0D0C943C0EAD -:100030000C94531B0C946E030C946E030C946E037F -:100040000C946E030C94D6030C946E030C946E0304 -:100050000C946E030C94BB1B0C946E030C946E03F7 -:100060000C946E030C946E030C946E030C946E034C -:100070000C946E030C946E030C946E030C946E033C -:100080000C946E030C946E030C946E030C946E032C -:100090000C946E030C946E030C946E030C946E031C -:1000A0000C946E030C946E030C946E03A90ECB0E8D -:1000B000B90FCB0EB90F100F330FB90F880F9B0F6D -:1000C00085128512B412B412F31213136914691451 -:1000D0001E136914CE13CE1335143E146914631421 -:1000E000DB13DB13DB13DB13DB13DB13DB13DB13A0 -:1000F000DB13DB13DB13DB13DB13DB13DB13DB1390 -:10010000EB13F91300140714111400000000000091 -:100110000000000000010204060A0F17202C3A4AD2 -:100120005D71879DB3C7DAE9F5FCFFFCF5E9DAC735 -:10013000B39D87715D4A3A2C20170F0A060402010D -:100140000000000000000000000035001E001F003D -:100150002000210022002300240025002600270083 -:100160002D002E002A002A002B0014001A0008007F -:10017000150017001C0018000C00120013002F00BF -:10018000300031004C00290004001600070009006F -:100190000A000B000D000E000F0033003400280091 -:1001A00028004B00E1001D001B000600190005009F -:1001B00011001000360037003800E500E50052005D -:1001C0004E000030E000E200E30004512C002C005F -:1001D0000351E700E600E4000551500051004F00D4 -:1001E00035001E001F0020002100220023002400F3 -:1001F0002500260027002D002E002A002A002B00B3 -:1002000014001A00090013000A000D000F00180066 -:100210001C0033002F00300031004C002900040086 -:1002200015001600170007000B00110008000C0055 -:1002300012003400280028004B00E1001D001B00C4 -:100240000600190005000E001000360037003800C7 -:10025000E500E50052004E000030E000E200E3005F -:1002600004512C002C000351E700E600E400055186 -:10027000500051004F0035001E001F0020002100DB -:100280002200230024002500260027002D002E0038 -:100290002A002A002B0034003600370013001C000F -:1002A00009000A00060015000F002F003000310081 -:1002B0004C00290004001200080018000C00070080 -:1002C0000B001700110016003800280028004B0012 -:1002D000E100330014000D000E001B0005001000AB -:1002E0001A0019001D00E500E50052004E00003024 -:1002F000E000E200E30004512C002C000351E70071 -:10030000E600E4000551500051004F0001003A00A2 -:100310003B003C003D003E003F00400041004200E9 -:100320004300440045000100010001001E021F02BD -:100330002002210222022302240225022602270291 -:10034000010001000100490001003A003B003C00AF -:100350003D003E003F002D022E022F0230023102EE -:100360000100010001000100400041004200430083 -:1003700044004500010001000100010001000100EE -:100380000100010001000100010001000100010065 -:100390000100010001000100010001000100010055 -:1003A000010001003A003B003C003D003E003F00E0 -:1003B00040004100420043004400450001000100AC -:1003C00001001E001F002000210022002300240045 -:1003D000250026002700010001000100490001005E -:1003E0003A003B003C003D003E003F002D002E0047 -:1003F0002F00300031000100010001000100400029 -:10040000410042004300440045000100010001009A -:1004100001000100010001000100010001000100D4 -:1004200001000100010001000100010001000100C4 -:10043000010001000100010053003A003B003C00B4 -:100440003D003E003F0040004100420043004400A8 -:100450004500010001004700680069006A006B0068 -:100460006C006D006E006F00700071007200730010 -:10047000480046003900F800F700F600F500FD00DE -:10048000FF00AB00AA00A900AE00010001000100BE -:10049000F900010001000052015202520100010066 -:1004A000010001000100010001000100F000FA005C -:1004B00001000100010001000100F400F40001004E -:1004C0000100010001000100F200F100F300280327 -:1004D0005400680065002000410074006F006D004A -:1004E0006900630020004B006500790062006F0026 -:1004F00061007200640000002C034F007200740061 -:1005000068006F006C0069006E0065006100720099 -:1005100020004B006500790062006F0061007200EE -:10052000640073000000040309040902540003017D -:1005300000A0FA09040000010301010009211101D2 -:1005400000012240000705810308000A0904010098 -:100550000103010200092111010001224D000705DC -:10056000820308000A0904020001030000000921B7 -:10057000110100012236000705830308000A120159 -:10058000100100000008EDFE6060010001020001A2 -:1005900005010980A101850216010026B7001A0194 -:1005A000002AB700751095018100C0050C0901A152 -:1005B000018503160100269C021A01002A9C02757F -:1005C0001095018100C005010902A1010901A100E6 -:1005D00005091901290515002501950575018102F7 -:1005E0009501750381010501093009311581257FC8 -:1005F00095027508810609381581257F95017508D2 -:100600008106050C0A38021581257F950175088140 -:1006100006C0C005010906A101050719E029E71573 -:100620000025019508750181029501750881010574 -:100630000819012905950575019102950175039128 -:10064000010507190029FF150026FF00950675080A -:100650008100C00011241FBECFEFDAE0DEBFCDBFA6 -:1006600004B603FE24C08091F0019091F101A091A5 -:10067000F201B091F3018730904BA740B04BB9F431 -:100680001092F0011092F1011092F2011092F30118 -:1006900014BE84B7877F84BF88E10FB6F894809337 -:1006A0006000109260000FBEE0E0F8E3099511E0F1 -:1006B000A0E0B1E0EEE7F5E402C005900D92A234AF -:1006C000B107D9F711E0A2E4B1E001C01D92A03F4B -:1006D000B107E1F70E94B40A0C94BD220C9400000B -:1006E0000895089581E0089508950C9471030C9481 -:1006F00072030C9474030E94332123E030E0281B22 -:100700003109220F209346010895282F2F988091B8 -:100710008000211108C0877F8093800010928D0097 -:1007200010928C001BC0886080938000233018F0EA -:100730008FEF9FEF0FC083E090E0821B9109880F3D -:10074000991F2FEF3FEFA90102C0569547958A9553 -:10075000E2F7CA0190938D0080938C000C947B0388 -:100760000E947B0384E0809345011092420108952A -:10077000279A2F988FEF9FEF9093870080938600A2 -:100780008AE08093800089E1809381000E949C2010 -:100790000C94B00385B7806885BF85B7806885BF36 -:1007A0000E94B8036E9A769A0C9470031F920F926F -:1007B0000FB60F9211242F933F938F939F93EF9334 -:1007C000FF93E0914301F0914401CF010196909392 -:1007D0004401809343010090450102C0F695E795DE -:1007E0000A94E2F7EF7380914201823019F4E0320B -:1007F00051F404C0813039F4EF3329F480916F0053 -:100800008D7F80936F00F0E0E65FFE4FE49121E082 -:1008100031E0E29FC001E39F900D1124009046015A -:1008200002C0969587950A94E2F790938D00809385 -:100830008C00FF91EF919F918F913F912F910F909D -:100840000FBE0F901F90189561110DC0FC018281A1 -:10085000882331F085EE0E9429110E94F32003C005 -:1008600085EE0E94F11180E090E0089581E0089506 -:100870000C94360408950F931F93CF93DF938C014C -:10088000FC01C081D181CE010E94CD19BE010E9420 -:100890006C07EC01B8010E943804882309F470C188 -:1008A000F8018281882309F45BC080915201811193 -:1008B0001FC0C431F0E7DF0709F00AC10E943A0403 -:1008C00081E0809352010E94851B90935101809397 -:1008D00050011092490110924B0110924A0110925E -:1008E0004D0110924C0110924F0110924E0148C1DF -:1008F00080915001909151010E94911B883C91057B -:1009000070F480914901E82FF0E0EE0FFF1FE65BE5 -:10091000FE4FD183C0838F5F8093490131C1C431C1 -:1009200020E7D20708F024C1C23080E7D80710F5CD -:10093000C11590E7D90709F0DAC0F8018281882350 -:1009400009F4BFC00E94D414FFEF24E38CE0F150FF -:1009500020408040E1F700C000000E94E01B10C171 -:10096000C431F0E7DF0708F0CFC0C23020E7D2077C -:1009700008F49BC0F8018281882309F4A2C00E9478 -:100980003A1C811102C00E941B1C0E944D1C90E069 -:100990009093E1018093E001C230F0E7DF0721F49A -:1009A0008091E00181607AC0C33020E7D20721F452 -:1009B0008091E001826072C0C43080E7D80721F4E2 -:1009C0008091E00184606AC0C53090E7D90719F4CE -:1009D0008091E00127C0C630E0E7DE0721F4809176 -:1009E000E00180615BC0C730F0E7DF0721F4809150 -:1009F000E001806253C0C83020E7D20721F4809123 -:100A0000E00180644BC0C93080E7D80721F48091B1 -:100A1000E001806843C0CA3090E7D90729F480918B -:100A2000E001846088603AC0CB30E0E7DE0721F463 -:100A30008091E0018E7F32C0CC30F0E7DF0721F4F7 -:100A40008091E0018D7F2AC0CD3020E7D20721F4CC -:100A50008091E0018B7F22C0CE3080E7D80719F467 -:100A60008091E0011AC08091E001CF3090E7D90772 -:100A700011F48F7E13C0C031E0E7DE0711F48F7DE3 -:100A80000DC0C131F0E7DF0711F48F7B07C0C23121 -:100A9000D04711F48F7702C08B7F877F8093E0016E -:100AA0008091E0010E94511C6BC0C11580E7D807FE -:100AB00041F0C130D047F1F081E08093470180934D -:100AC0004801C801DF91CF911F910F910C947703DA -:100AD000C43120E7D20708F04BC0C23080E7D80706 -:100AE00008F048CFC11590E7D90709F42BCFC130E2 -:100AF000D04711F7F8018281882319F38091CF0143 -:100B000081608093CF013CC0C333E0E7DE07A1F4EE -:100B1000F8018281882321F01092470182E017C0FA -:100B200080914701811106C086E20E94291186E268 -:100B30000E94F11182E019C0C433D04709F0BCCF44 -:100B4000F8018281882331F01092480180E20E94EE -:100B5000401216C080914801811106C087E20E94B0 -:100B6000291187E20E94F11180E20E94471208C019 -:100B7000C333F0E7DF0761F2C433D04709F39CCFFA -:100B800080E0DF91CF911F910F9108950C94CA03DB -:100B90000C9475032FE0729FF00111243BE4839FB6 -:100BA000E00DF11D1124E60FF11DEE0FFF1FE65BB6 -:100BB000FE4F859194910E947E07811540E5940730 -:100BC00008F047C0811520E4920708F013C1883E61 -:100BD000910520F5803E910508F07CC1883A910589 -:100BE00078F4853A910508F0A5C08130910509F4A3 -:100BF00071C108F42EC18430910508F06BC129C180 -:100C00008B3B910508F4A1C0803C910508F421C1FB -:100C1000FC01EE0FFF1FE653F040E6C0811530E205 -:100C2000930758F4811541E0940708F053C1803FC1 -:100C3000910508F40EC190650895811520E392078F -:100C400008F0D5C0FC01FF70EE0FFF1FE65BFE4F02 -:100C5000CBC0811535E5930708F043C0811544E505 -:100C6000940708F0DEC0811522E5920708F581158A -:100C700031E5930708F0C1C0482F437021E030E010 -:100C800002C0220F331F4A95E2F73C68AC0164E0D2 -:100C9000569547956A95E1F74370342B8F7086958A -:100CA000869540E2849FC0011124822B932B0895E6 -:100CB000282F26952695AC0143705527811593451D -:100CC00008F0A0C080E2289F9001112481E090E00C -:100CD00002C0880F991F4A95E2F7822B932B9C68DC -:100CE00008958F3240E7940790F48F3120E7920700 -:100CF00008F0A2C0811536E5930708F497C09C015F -:100D000030562115304108F0A4C09F7093C0803345 -:100D100020E7920709F497C008F492C0813340E7B6 -:100D2000940709F493C08233904709F092C080E0A1 -:100D300093ED0895853A910509F48EC0863A9105A0 -:100D400009F08DC082E890E40895883A910509F48D -:100D500089C0893A910509F488C08A3A910509F455 -:100D600087C08B3A910509F486C08C3A910509F445 -:100D700085C08D3A910509F484C0803B910509F442 -:100D800083C08E3A910509F482C08F3A910509F427 -:100D900081C0813B910509F480C0823B910509F433 -:100DA0007FC0833B910509F47EC0843B910509F423 -:100DB0007DC0853B910509F47CC0863B910509F413 -:100DC0007BC0873B910509F47AC0883B910509F403 -:100DD00079C0893B910509F478C08A3B910509F4F3 -:100DE00077C080E094E408958591949108959927BF -:100DF000906C08959F70906A0895982F8827816F4E -:100E0000906A089590E2299F9001112481E090E07A -:100E100002C0880F991F4A95E2F7822B932B9A689C -:100E20000895982F8827846F906A08958F71992765 -:100E3000982F8827906208958F519047946D089558 -:100E400080E091ED089580E090ED089580E092EDCE -:100E5000089580E090E0089581E890E4089583E8A3 -:100E600090E4089582EE94E4089589EE94E4089560 -:100E70008AEE94E4089585EB94E4089586EB94E477 -:100E8000089587EB94E408958CEC94E408958DEC38 -:100E900094E4089583E895E408958AE895E4089534 -:100EA00082E995E4089584E995E4089581E296E461 -:100EB000089583E296E4089584E296E4089585E235 -:100EC00096E4089586E296E4089587E296E408950C -:100ED0008AE296E4089508959FE0799FF001112435 -:100EE0009BE4899FE00DF11D1124E60FF11DEE0F2B -:100EF000FF1FE65BFE4F859194910895823891051E -:100F000049F1B0F48133910509F458C048F48932AD -:100F1000910509F44EC08A32910509F454C0089530 -:100F20008533910509F440C08933910599F00895FE -:100F3000833E910529F138F4803E910591F0823E7F -:100F40009105A1F00895863E9105F9F0873E91053F -:100F500031F108952091E00120FD3AC021FD38C013 -:100F600008958091E00180FD35C032C08091E0019C -:100F700082FF32C08091E00184FD30C083EE39C031 -:100F80008091E00182FD28C0F5CF8091E00183FFD0 -:100F900027C08091E00184FD21C087EE2AC08091A6 -:100FA000E00183FD1DC0F5CF8091E00185FD1AC0F1 -:100FB0001BC08091E00185FD17C014C08091E00145 -:100FC00086FD14C015C08091E00186FD11C00EC0E1 -:100FD00080EE0FC089E30DC082EE0BC080E009C037 -:100FE00086EE07C089E205C085E303C08AE201C03E -:100FF00081E390E008950C947903E82FF0E0ED5D33 -:10100000FE4F8081E82FEF70F0E082958F7021E035 -:1010100030E0A90102C0440F551F8A95E2F740A3B2 -:1010200008950F931F93CF93DF93C4E0D0E001E0C6 -:1010300010E0FE01ED5DFE4F8081E82FEF70F0E0E3 -:1010400021A182958F70A80102C0440F551F8A9577 -:10105000E2F7CA01822B81A38C2F0E94FD07219702 -:1010600040F78EE090E061E070E0FC01EC5EFE4F46 -:101070002081E22FEF70F0E042A122952F70DB017A -:1010800002C0AA0FBB1F2A95E2F79D01242B22A3C1 -:10109000019758F7DF91CF911F910F9108950F930A -:1010A0001F93CF93DF9385B7806885BF85B780682E -:1010B00085BFC4E0D0E001E010E0FE01ED5DFE4F31 -:1010C0008081E82FEF70F0E021A182958F70A80158 -:1010D00002C0440F551F8A95E2F7CA01822B81A3F3 -:1010E0008C2F0E94FD07219740F78EE090E061E091 -:1010F00070E0FC01EC5EFE4F2081E22FEF70F0E02B -:1011000042A122952F70DB0102C0AA0FBB1F2A95B6 -:10111000E2F79D01242B22A3019758F7DF91CF918D -:101120001F910F910C94C605EF92FF920F931F939E -:10113000CF93DF930DE511E0C4E0EE24E394F12CAE -:10114000D5E08C2F0E94FD078EE090E040E050E05B -:10115000FC01EC5EFE4F6081E62FEF70F0E020A115 -:1011600030E062956F7002C0359527956A95E2F779 -:1011700020FD09C09701082E02C0220F331F0A94D8 -:10118000E2F7422B532B019718F7F80192918291C5 -:101190008F018417950721F051834083D09300017C -:1011A0008C2F0E94FD07C15060F68091000187FDE1 -:1011B0001FC08150809300018F3F39F08FE99FE07D -:1011C0000197F1F700C0000013C080E090E0FC013F -:1011D000E35AFE4FDC01AD5ABE4F18962D913C915B -:1011E0001997318720870297863FEFEF9E0779F79F -:1011F0000E94C80581E0DF91CF911F910F91FF9070 -:10120000EF900895E82FF0E0EE0FFF1FE35AFE4F36 -:1012100080819181089508950F931F93CF9307E6DE -:1012200011E0C0E0F801929182918F010E94FE1AB4 -:10123000C80FF1E00D351F07A9F78C2FCF911F9133 -:101240000F91089580916F010895CF93DF9300D09F -:101250001F92CDB7DEB79C018091E601843019F56D -:1012600093E099833B832A839093E9008FEF9091D9 -:10127000E800815095FD06C095ED9A95F1F70000C4 -:101280008111F5CF8091E80085FF0DC040E050E06E -:1012900063E070E0CE0101960E945A0B8091E80055 -:1012A0008E778093E8000F900F900F90DF91CF9191 -:1012B0000895CF93DF9300D01F92CDB7DEB7209172 -:1012C000E601243021F522E029839B838A8383E091 -:1012D0008093E9008FEF9091E800815095FD06C062 -:1012E00095ED9A95F1F700008111F5CF8091E80016 -:1012F00085FF0DC040E050E063E070E0CE01019654 -:101300000E945A0B8091E8008E778093E8000F903E -:101310000F900F90DF91CF9108952091E601243036 -:10132000F1F422E02093E9002FEF3091E800215002 -:1013300035FD06C035ED3A95F1F700002111F5CFE6 -:101340002091E80025FF0BC040E050E065E070E030 -:101350000E945A0B8091E8008E778093E8000895F0 -:10136000CF93DF932091E601243039F521E02093DB -:10137000E9002FEF3091E800215035FD06C035ED32 -:101380003A95F1F700002111F5CF2091E80025FFF3 -:1013900014C0EC0140E050E068E070E00E945A0B9D -:1013A0008091E8008E778093E80088E0FE01A7E650 -:1013B000B1E001900D928A95E1F7DF91CF91089508 -:1013C0008091E501811109C00E94EF0C0E944C0D33 -:1013D0008091E20084608093E20008951092E5011C -:1013E0000895089508950C94481B42E061EC81E053 -:1013F0000E94690C42E061EC82E00E94690C42E0CC -:1014000061EC83E00C94690C8091E801833009F46D -:1014100053C030F4813071F0823009F48CC00895EB -:101420008A3009F478C08B3009F45EC0893009F045 -:101430009AC020C08091E701813A09F094C0809160 -:10144000E800877F8093E8008091EB019091EC01A8 -:10145000892B21F468E087E691E003C060E080E03A -:1014600090E070E00E94A50B8091E8008B7780935C -:10147000E80008958091E701813209F074C08091FD -:10148000EB019091EC01892B09F06DC08091E8008F -:10149000877F8093E8008091E80082FD05C08091FD -:1014A000E6018111F8CF5FC08091F10080936F0158 -:1014B0008091E8008B7753C08091E701813A09F071 -:1014C00052C08091EB019091EC01892B09F04BC047 -:1014D0008091E800877F8093E8008091E80080FF9A -:1014E000FCCF80910B0136C08091E7018132D9F5A4 -:1014F0008091EB019091EC01892BA9F58091E80096 -:10150000877F8093E8000E949E0C8091E901809380 -:101510000B010C94D4148091E701813221F5809164 -:10152000E800877F8093E8000E949E0C8091EA018A -:101530008093700108958091E701813AA1F4809130 -:10154000E800877F8093E8008091E80080FFFCCF6F -:10155000809170018093F1008091E8008E778093F4 -:10156000E8000C949E0C089584B7877F84BF88E1BF -:101570000FB6F89480936000109260000FBE80E870 -:1015800080936100109261000E9441100E94EF0C54 -:101590000E944C0D8091E20084608093E200789478 -:1015A0000E94D20F0E94431081E091E00E94ED0F53 -:1015B0008091E601853069F40E940A1B8091E40164 -:1015C0008823B1F30E94371B882391F30E94440BB8 -:1015D000EFCF0E944B10ECCF292F3327233031055A -:1015E000C9F064F42130310581F02230310509F071 -:1015F00043C084E590E02AE235E042C02132310563 -:10160000F1F02232310541F137C082E190E02EE75E -:1016100035E036C099278130910541F0823091053F -:1016200041F0892B49F5E6E2F5E005C0E8EFF4E08A -:1016300002C0EEECF4E0849190E09F0121C06330A1 -:10164000D8F4E62FF0E0EE0FFF1FEF5CFE4F208195 -:10165000318189E090E014C0633070F470E0FB01E8 -:10166000EE0FFF1FE55DFE4F20813181FB01E85D3C -:10167000FE4F808190E004C080E090E020E030E008 -:10168000FA0131832083089580E189BD82E189BD1B -:1016900009B400FEFDCF8091D8008F7D8093D800E3 -:1016A0008091E00082608093E0008091E00081FD05 -:1016B000FCCF0895CF92DF92EF92FF920F931F938A -:1016C000CF93DF93EC018B016A010E94BD0C811165 -:1016D00033C0C114D10439F0F60180819181081B17 -:1016E000190BC80FD91FE12CF12C0115110519F1A7 -:1016F0008091E80085FD16C08091E8008E77809388 -:10170000E800C114D10449F0F60180819181E80E0E -:10171000F91EF182E08285E00FC00E94BD0C882393 -:1017200021F30AC089918093F10001501109FFEF64 -:10173000EF1AFF0ADACF80E0DF91CF911F910F916E -:10174000FF90EF90DF90CF9008952091ED013091C0 -:10175000EE012617370748F06115710539F420911D -:10176000E8002E772093E80001C0B90140E0611540 -:101770007105A9F12091E601222309F443C0253027 -:1017800009F442C02091E80023FD40C02091E80008 -:1017900022FD32C02091E80020FFE9CF4091F30004 -:1017A0002091F20030E0342BFC01CF01611571056E -:1017B00059F02830310540F481918093F100615057 -:1017C00071092F5F3F4FF1CF41E02830310509F01B -:1017D00040E02091E8002E772093E800C8CF411127 -:1017E000C9CF0AC08091E601882361F0853061F09D -:1017F0008091E80083FD0AC08091E80082FFF2CF6B -:1018000080E0089582E0089583E0089581E00895DE -:101810002091ED013091EE012617370748F0611550 -:10182000710539F42091E8002E772093E80001C07B -:10183000B901FC0120E06115710591F18091E6018B -:10184000882309F440C0853009F43FC08091E80046 -:1018500083FD3DC08091E80082FD2FC08091E800AB -:1018600080FFE9CF2091F3008091F20090E0922B6D -:101870006115710559F08830910540F42491209349 -:10188000F1003196615071090196F2CF21E008977D -:1018900009F020E08091E8008E778093E800CBCFBC -:1018A0002111CCCF0AC08091E601882361F08530F8 -:1018B00061F08091E80083FD0AC08091E80082FF1A -:1018C000F2CF80E0089582E0089583E0089581E0FA -:1018D0000895982F973058F59093E900981739F0AC -:1018E0007091EC002091ED005091F00003C0242F86 -:1018F000762F50E021FF19C03091EB003E7F3093EE -:10190000EB003091ED003D7F3093ED003091EB0026 -:1019100031603093EB007093EC002093ED00509316 -:10192000F0002091EE0027FF07C09F5FD3CF8F709C -:101930008093E90081E0089580E008958091E701B7 -:1019400087FF11C08091E80082FD05C08091E6010B -:101950008111F8CF11C08091E8008B770BC0809186 -:10196000E601882349F08091E80080FFF8CF80915C -:10197000E8008E778093E80008952091E40030918C -:10198000E50095E64091EC00842F817040FF22C075 -:101990008091E80080FD1CC08091E601882391F0D1 -:1019A000853091F08091EB0085FD10C04091E400FE -:1019B0005091E5004217530729F39A01915011F70E -:1019C00084E0089582E0089583E0089581E0089519 -:1019D00080E008954091E80042FFDECF08950E9424 -:1019E0005D0D0E94650DE0EEF0E0808181608083F6 -:1019F000E8EDF0E080818F77808319BCA7EDB0E03F -:101A00008C918E7F8C9380818F7E80831092E501F4 -:101A100008950F931F93CF93DF930E945D0D0E9453 -:101A2000650DC8EDD0E088818F77888388818068D4 -:101A3000888388818F7D888319BC1092E60110927B -:101A4000E2011092E4011092E30100EE10E0F801CF -:101A500080818B7F808388818160888342E060E021 -:101A600080E00E94690CE1EEF0E080818E7F80834F -:101A7000E2EEF0E0808181608083808188608083F5 -:101A8000F80180818E7F8083888180618883DF91E7 -:101A9000CF911F910F910895E8EDF0E080818F7E46 -:101AA0008083E7EDF0E080818160808384E082BF05 -:101AB00081E08093E5010C94090DE8EDF0E0808170 -:101AC0008E7F80831092E20008951092DA001092C7 -:101AD000E10008951F920F920FB60F9211242F93D9 -:101AE0003F934F935F936F937F938F939F93AF93A6 -:101AF000BF93EF93FF938091E10082FF0BC0809131 -:101B0000E20082FF07C08091E1008B7F8093E100BB -:101B10000E94D10F8091DA0080FF1FC08091D80011 -:101B200080FF1BC08091DA008E7F8093DA00809165 -:101B3000D90080FF0DC080E189BD82E189BD09B473 -:101B400000FEFDCF81E08093E6010E94E00905C020 -:101B500019BC1092E6010E94EE098091E10080FF1D -:101B600019C08091E20080FF15C08091E2008E7F55 -:101B70008093E2008091E20080618093E200809196 -:101B8000D80080628093D80019BC85E08093E6017C -:101B90000E94F2098091E10084FF30C08091E20050 -:101BA00084FF2CC080E189BD82E189BD09B400FEBB -:101BB000FDCF8091D8008F7D8093D8008091E10087 -:101BC0008F7E8093E1008091E2008F7E8093E2001F -:101BD0008091E20081608093E2008091E20188239D -:101BE00011F084E007C08091E30087FD02C081E02E -:101BF00001C083E08093E6010E94F3098091E10037 -:101C000083FF29C08091E20083FF25C08091E1001D -:101C1000877F8093E10082E08093E6011092E201E9 -:101C20008091E1008E7F8093E1008091E2008E7FC1 -:101C30008093E2008091E20080618093E20042E0C4 -:101C400060E080E00E94690C8091F00088608093E1 -:101C5000F0000E94F109FF91EF91BF91AF919F9128 -:101C60008F917F916F915F914F913F912F910F9045 -:101C70000FBE0F901F9018951F920F920FB60F92E4 -:101C800011242F933F934F935F936F937F938F9381 -:101C90009F93AF93BF93CF93DF93EF93FF93C09145 -:101CA000E900CF708091EC00D82FD17080FDD0E892 -:101CB0001092E9008091F000877F8093F000789483 -:101CC0000E94800E1092E9008091F000886080935D -:101CD000F000CD2BCF70C093E900FF91EF91DF9121 -:101CE000CF91BF91AF919F918F917F916F915F91B4 -:101CF0004F913F912F910F900FBE0F901F9018950D -:101D00001F93CF93DF93CDB7DEB7AA970FB6F894A2 -:101D1000DEBF0FBECDBFE7EEF1E088E08E0F909101 -:101D2000F10091938E13FBCF0E94040A8091E8008A -:101D300083FF1FC18091E7019091E801492F50E096 -:101D40004A30510508F015C1FA01EA5AFF4F0C94C8 -:101D50006D22803881F0823809F00BC18091EB014F -:101D60008F708093E9008091EB0085FB882780F9D4 -:101D70001092E90006C08091E3019091E401911175 -:101D800082609091E800977F9093E8008093F10043 -:101D90001092F100C8C0282F2D7F09F0EAC08823D7 -:101DA00019F0823061F0E5C08091E901813009F0DD -:101DB000E0C0933009F080E08093E4012BC0809173 -:101DC000E901811127C08091EB018F7009F4D1C026 -:101DD0008093E9002091EB0020FF1CC0933021F498 -:101DE0008091EB00806214C09091EB009061909321 -:101DF000EB0021E030E0A90102C0440F551F8A9595 -:101E0000E2F74093EA001092EA008091EB008860CC -:101E10008093EB001092E9008091E800877F86C0F4 -:101E20008111A7C01091E9011F778091E3008078AC -:101E3000812B8093E3008091E800877F8093E80006 -:101E40000E949E0C8091E80080FFFCCF8091E3000F -:101E500080688093E300111102C082E001C083E03A -:101E60008093E60186C08058823008F082C080915D -:101E7000E9019091EA018C3D53E0950779F583E003 -:101E80008A838AE289834FB7F894DE01139620E0B3 -:101E90003EE051E2E32FF0E050935700E49120FF41 -:101EA00003C0E295EF703F5FEF708E2F90E0EA3055 -:101EB00010F0C79601C0C0968D939D932F5F24317B -:101EC00049F74FBF8091E800877F8093E8006AE27E -:101ED00070E0CE0101960E94A50B14C0AE014F5FC9 -:101EE0005F4F6091EB010E94EC0ABC01009709F47E -:101EF00040C09091E800977F9093E80089819A8193 -:101F00000E94080C8091E8008B778093E80031C034 -:101F1000803879F58091E800877F8093E800809190 -:101F2000E2018093F1008091E8008E778093E800D1 -:101F30000E949E0C1EC081111CC09091E90192303C -:101F4000C0F48091E800877F8093E8009093E201DD -:101F50000E949E0C8091E201811106C08091E300F5 -:101F600087FD02C081E001C084E08093E6010E9409 -:101F7000F5098091E80083FF0AC08091E800877F1F -:101F80008093E8008091EB0080628093EB00AA963A -:101F90000FB6F894DEBF0FBECDBFDF91CF911F917A -:101FA00008950895CF938091E6018823A1F0C09110 -:101FB000E900CF709091EC00892F817090FD80E84E -:101FC000C82B1092E9008091E80083FD0E94800EEA -:101FD000CF70C093E900CF910895909376018093DC -:101FE00075010895E0917501F0917601309721F027 -:101FF0000190F081E02D099480E00895E091750151 -:10200000F0917601309721F00280F381E02D099460 -:102010000895E0917501F0917601309721F00480E8 -:10202000F581E02D09940895209173013091740198 -:102030008217930771F09093740180937301E0917C -:102040007501F0917601309721F00680F781E02D3F -:1020500009940895209171013091720182179307BC -:1020600071F09093720180937101E0917501F0918C -:102070007601309721F00084F185E02D09940895D0 -:1020800008950C9440100E947C1B0E944F080E94EF -:10209000021C0C949C205F926F927F928F929F9271 -:1020A000AF92BF92CF92DF92EF92FF920F931F9366 -:1020B000CF93DF9300D000D01F92CDB7DEB70E9440 -:1020C000940892E8C92E91E0D92E04E010E0AA24E9 -:1020D000A394B12C502E802F0E9402094C01F601CE -:1020E000729062906F016826792661147104A1F4E0 -:1020F0000150110978F78FEF89838A831B820E9430 -:10210000851B8160782F9D838C8349815A816B81E7 -:102110008D810E94FB1038C08091CF0181FD0E940B -:102120000B092EE030E07501022E02C0EE0CFF1C00 -:102130000A94E2F7C70186219721892B09F12983A7 -:102140005A828E209F2091E0892809F490E09B8399 -:102150000E94851B8160782F9D838C8349815A81E1 -:102160006B818D810E94FB10000F111FF801E85850 -:10217000FE4F80819181E826F926F182E08204C039 -:102180002150310980F6B4CF0E94D91D10917701FA -:102190000E94F20F1817D1F00E94F20F809377017E -:1021A0000F900F900F900F900F90DF91CF911F9194 -:1021B0000F91FF90EF90DF90CF90BF90AF909F90E6 -:1021C0008F907F906F905F900C94FB070F900F9013 -:1021D0000F900F900F90DF91CF911F910F91FF9073 -:1021E000EF90DF90CF90BF90AF909F908F907F90B7 -:1021F0006F905F900895CF93DF93CDB7DEB72B97A5 -:102200000FB6F894DEBF0FBECDBF4F8358876987E6 -:102210007A878B87DE01119686E0FD0111928A95FF -:10222000E9F785E0FE01379601900D928A95E1F776 -:1022300049815A816B817C818D819E810E947217B8 -:102240002B960FB6F894DEBF0FBECDBFDF91CF91B6 -:102250000895CF93882309F4C2C0C82F823859F457 -:102260000E94F20F81FDBBC089E30E944C1A0E94BC -:10227000CF1A89E30CC0833879F40E94F20F80FDF5 -:10228000AEC083E50E944C1A0E94CF1A83E50E94DB -:10229000691ACF910C94CF1A843859F40E94F20F26 -:1022A00082FD9DC087E40E944C1A0E94CF1A87E4E9 -:1022B000EECF8CEF8C0F813A48F48C2F0E940420D3 -:1022C00081118DC08C2F0E944C1AE3CF80E28C0FBD -:1022D000883048F4C77081E001C0880FCA95EAF7DA -:1022E0000E94881AD6CF8BE58C0F833078F4C53ADC -:1022F00029F0C63A31F083E890E005C081E890E02B -:1023000002C082E890E0CF910C94141088E58C0F05 -:10231000833108F064C0C83A39F1C93A41F1CA3A88 -:1023200049F1CB3A51F1CC3A59F1CD3A61F1C03B88 -:1023300069F1CE3A71F1CF3A79F1C13B81F1C23BFB -:1023400089F1C33B91F1C43B99F1C53BA1F1C63B77 -:10235000A9F1C73BB1F1C83BB9F1C93BC1F1CA3BD7 -:10236000C9F180E090E038C082EE90E035C089EE9F -:1023700090E032C08AEE90E02FC085EB90E02CC058 -:1023800086EB90E029C087EB90E026C08CEC90E0D3 -:1023900023C08DEC90E020C083E891E01DC08AE866 -:1023A00091E01AC082E991E017C084E991E014C07D -:1023B00081E292E011C083E292E00EC084E292E0FA -:1023C0000BC085E292E008C086E292E005C087E299 -:1023D00092E002C08AE292E0CF910C942A10CF9151 -:1023E0000895882309F44BC0823859F40E94F20FF3 -:1023F00081FF45C089E30E944C1A0E94CF1A89E3ED -:102400000CC0833871F40E94F20F80FF38C083E55E -:102410000E944C1A0E94CF1A83E50E94691A0C94FC -:10242000CF1A843859F40E94F20F82FF28C087E443 -:102430000E944C1A0E94CF1A87E4EFCF9CEF980FAE -:10244000913A58F390E2980F983050F4877091E0E9 -:1024500001C0990F8A95EAF7892F0E948E1ADFCF63 -:102460009BE5980F933020F480E090E00C941410DA -:10247000885A833120F480E090E00C942A1008956B -:10248000882321F00E94881A0C94CF1A089588237B -:1024900021F00E948E1A0C94CF1A08957F928F9289 -:1024A0009F92AF92BF92CF92DF92EF92FF920F93E3 -:1024B0001F93CF93DF931F92CDB7DEB77C01C62E5B -:1024C000772EFC01058102950F70128111110E9477 -:1024D000A51A0E94451A882379F0112369F080E239 -:1024E0008C0D883048F082E00E942E1A0E94451A16 -:1024F00091E0D82ED92601C0D12CE72DE295EF70BE -:10250000F0E0E05AFF4F0C946D22872D807F072D5D -:102510000F70882311F00295007F112389F00023AA -:1025200009F499C180E28C0D883020F4802F0E943C -:10253000881A03C0802F0E94981A0E94CF1A8BC15C -:102540008C2D0E94F111002309F4C3C180E28C0D8F -:10255000883020F4802F0E948E1A03C0802F0E94A2 -:102560009E1A0E94CF1AB5C1872D807F972D9F702C -:10257000803211F4892F03C0892F8295807FCC206F -:1025800021F0F1E0CF16A1F01DC0112339F0002396 -:1025900019F1013009F50E94B81A9BC1002319F006 -:1025A000013009F496C189830E94BB1A898110C148 -:1025B000112321F0063008F08CC10EC0053008F060 -:1025C00088C106C1112359F0002331F0F70195812C -:1025D00090FF41C19F7095830E9440127AC10023F1 -:1025E00009F4F6C03EC1872D86958695837090E0EC -:1025F000009719F0019761F06CC1112321F08C2D27 -:10260000972D937002C080E090E00E94141061C189 -:10261000112321F08C2D972D937002C080E090E063 -:102620000E942A1056C18C2D112319F00E94E11C22 -:1026300002C00E94491D0E94CE1D4BC1872D837090 -:1026400009F052C0111145C18C2D82958695877075 -:10265000880F880F9C2D9F70892E912CA12CB12C56 -:10266000082E04C0880C991CAA1CBB1C0A94D2F723 -:10267000C4FE14C00FE010E020E030E0B901A80172 -:1026800004C0440F551F661F771F8A95D2F7CB01F0 -:10269000BA01609570958095909503C060E070E0F8 -:1026A000CB01272D26952695237030E02230310569 -:1026B00069F02330310589F0682979298A299B2915 -:1026C0002130310571F00E94BA1803C168297929B7 -:1026D0008A299B290E94D618FCC00E94BA18C501FD -:1026E000B4010E949E18F5C0112319F0872D817046 -:1026F00001C08695882309F4ECC08C2D82958695BF -:102700008770880F880F9C2D9F70892E912CA12C8B -:10271000B12C082E04C0880C991CAA1CBB1C0A945E -:10272000D2F7C4FE14C00FE010E020E030E0B901A1 -:10273000A80104C0440F551F661F771F8A95D2F762 -:10274000CB01BA01609570958095909503C060E0CB -:1027500070E0CB01272D269526952370422F50E05F -:102760004230510569F04330510589F068297929D3 -:102770008A299B294130510571F00E949419A9C002 -:10278000682979298A299B290E94B019A2C00E9430 -:102790009419C501B4010E9478199BC08C2D90E05A -:1027A000FC01E05EF109E531F10508F050C0E059A7 -:1027B000FF4F0C946D220C2D0F70872D8F711123FC -:1027C00021F00E941119802F07CF0E943219802F0B -:1027D0000E9447127EC0112341F0053008F079C0F5 -:1027E000872D8F710E94571974C0063008F071C090 -:1027F000F7CF112339F0872D8F710E94111969C00D -:102800001123C9F3872D8F710E94321962C01123E1 -:1028100029F0872D8F710E94FC185BC00E94F2186E -:1028200058C0112351F0172D1F71812F0E941119CB -:1028300063E0812F0E94251A4CC081E00E942E1A6D -:10284000023008F446C082E00E942E1A42C01123D2 -:1028500031F0002381F28C2D0E9429113AC000230F -:1028600089F28C2D0E94F11134C0472D4F706C2DD0 -:10287000C7010E9424040E9416182BC0111129C000 -:10288000472D4F7050E042305105B9F04CF44115DE -:10289000510581F041305105E1F40E94C42019C076 -:1028A0004330510569F04430510599F48C2D0E9454 -:1028B00016210FC00E94AD200CC00E94E02009C06C -:1028C0000E94F32006C0472D4F706C2DC7010E9457 -:1028D0006B07DD20F9F00E94211A80FD1BC0F70173 -:1028E00012820E941B1A0E941119C7010E9499149A -:1028F0000E941B1A0F90DF91CF911F910F91FF90B3 -:10290000EF90DF90CF90BF90AF909F908F907F908F -:102910000C9432190F90DF91CF911F910F91FF907E -:10292000EF90DF90CF90BF90AF909F908F907F906F -:1029300008950F931F93CF93DF93EC0188819981C2 -:102940002B813C81232BB9F09F3F11F48F3F99F0ED -:10295000CE010E943B04882371F0688179818A81CD -:102960000E94171A8C010E94CC190E949318B8017A -:10297000CE010E944E12DF91CF911F910F910895C9 -:102980000E94A51A0E94B51A0E947A1A0E94CF1AB4 -:102990000E947F1E0E94CE1D80E090E00E941410D5 -:1029A00080E090E00C942A100E94951A0C94C014B8 -:1029B0000E940C1A292F22952F7030E02C303105FF -:1029C0004CF42A3031056CF42250310922303105A3 -:1029D000A8F407C02C30310569F02F30310551F0D3 -:1029E0000DC0803F69F018F4803E40F409C0843F78 -:1029F00029F406C093FB882780F9089580E00895A4 -:102A000081E00895CF93DF9300D000D01F92CDB71F -:102A1000DEB70F900F900F900F900F90DF91CF9136 -:102A20000895CF93DF9300D000D000D0CDB7DEB7AC -:102A300026960FB6F894DEBF0FBECDBFDF91CF91C3 -:102A400008951F93CF93DF93C091820116E0809188 -:102A50008301C81799F0D0E01C9FF0011D9FF00D75 -:102A60001124EC57FE4F4081518162817381848132 -:102A700095810E9411152196C770E9CFDF91CF9102 -:102A80001F9108954091B4015091B5016091B60134 -:102A90007091B7018091B8019091B9010C94111512 -:102AA0008091B90182958F7009F054C08091B60170 -:102AB000882309F44FC080918201A0918301609125 -:102AC000B4017091B5014091B7015091B801B6E0E1 -:102AD0008A1709F43FC090E041155105C1F17F3FCD -:102AE00011F46F3FA1F1B89FF001B99FF00D1124CF -:102AF000EC57FE4F218172132AC02081621327C038 -:102B00002281211124C0238134812417350710F438 -:102B100021503109241B350B283C3105C0F420918C -:102B2000B9012F7020612093B90126E0289FF001A0 -:102B3000299FF00D1124E757FE4F80818F7080612F -:102B4000808384EB91E00E9499140C9421150196E6 -:102B50008770BECF0895CF92DF92EF92FF920F93CE -:102B60001F93CF93DF93CDB7DEB762970FB6F8947C -:102B7000DEBF0FBECDBF8C0185E0F801DE011D96E2 -:102B800001900D928A95E1F7D8014C9111965C91D4 -:102B9000119712966C9112971396CD90DC90149722 -:102BA0003091B4017091B5018091B7019091B80155 -:102BB000009709F46BC17F3F19F43F3F09F466C1E8 -:102BC000E090B601EE2009F4C0C02091B901C8160A -:102BD000D90628F0F601E81BF90BCF0104C0809557 -:102BE00090958C0D9D1DFF24F394883C910578F001 -:102BF000F12C207F09F0C6C07C2DD98AC88A89892A -:102C00000E94021584EB91E00E949914B1C0822FBA -:102C1000807F09F046C0751314C0341312C06111CF -:102C200010C02F7020612093B9010E94421584EBDF -:102C300091E00E9499148091B901D80115968C9366 -:102C40002EC0CD2819F15F3F11F44F3FF9F0F62E59 -:102C500061111CC0809182012091830136E08217AE -:102C600009F45AC090E0389FF001399FF00D11240B -:102C7000EC57FE4F7181571306C07081471303C094 -:102C80007281711103C001968770E9CFF62E662319 -:102C900009F418C18091B90181608093B901F12CC8 -:102CA00011C1751308C0341306C0611104C08091AE -:102CB000B901D801C3C04D875E878D859E856A8B1B -:102CC0000E94D8146A898823E1F16623D1F120910A -:102CD000B901822F82958F7090E0029774F08091F5 -:102CE000B4019091B50198878F831986DB86CA86D7 -:102CF0002C87CE0107960E94991486E0F801A4EB78 -:102D0000B1E001900D928A95E1F70E9450150E9462 -:102D10004215FF24F394D6C04D875E878D859E852E -:102D20000E940C1A292F22952F7030E02230310595 -:102D30000CF0BCC09F7009F0B6C0805E883008F40B -:102D4000C1C0C8010E949914E4CFC816D90608F47E -:102D500053C0F601E81BF90BCF01883C910508F43C -:102D600050C0F12C7C2DD98AC88A89890E9402150D -:102D7000E4EBF1E086E0DF011D928A95E9F70E941D -:102D80004215A0C0751314C0341312C0611110C0D5 -:102D90008091B901F8018583C8010E94991486E0E9 -:102DA000E4EBF1E0DF011D928A95E9F7FE2C8AC081 -:102DB0004D875E878D859E856A8B0E94D8146A89AF -:102DC000882309F4BECF662309F4BBCF2091B90153 -:102DD000822F82958F7090E002970CF48ECF8091B5 -:102DE000B4019091B5019A8389831B82DD82CC82E4 -:102DF0002E83CE0101967FCF809590958C0D9D1DE1 -:102E0000ACCFF62E662309F49CCF75132EC0341375 -:102E10002CC02091B90120FD1FC0822F82958F7098 -:102E2000D9F0D80115962C9315978F3049F08F5F04 -:102E3000982F9295907F822F8F70892B15968C9367 -:102E4000C8010E94991486E0F801A4EBB1E001905A -:102E50000D928A95E1F793CF86E0F801A4EBB1E0FB -:102E600001900D928A95E1F72DC04D875E878D8583 -:102E70009E850E94D814811140CF8091B901816054 -:102E80008093B901C8010E9499141CC0662309F4FB -:102E900058CF4D875E878D859E850E94D8148823E4 -:102EA00009F44FCF2ACF811148CF0CC0243031050F -:102EB0000CF047CF9F7009F440CFF8019581907FC7 -:102EC00009F03BCF8F2D62960FB6F894DEBF0FBE90 -:102ED000CDBFDF91CF911F910F91FF90EF90DF90C9 -:102EE000CF9008951F93CF93DF93CDB7DEB72C9784 -:102EF0000FB6F894DEBF0FBECDBF4F8358876987EA -:102F00007A878B879C87CE0107960E94AB15882312 -:102F100069F08F8198852A853B85232BF1F19F3FAE -:102F200009F063C08F3F09F060C037C086E0FE0142 -:102F30003796DE01119601900D928A95E1F76F8127 -:102F40007885EA85FB85309741F17F3F11F46F3F2B -:102F500021F12091830130E0C90101968770992702 -:102F60004091820150E08417950709F447C06983B6 -:102F70007A83FD83EC8396E0929FD001939FB00DFE -:102F80001124AC57BE4FFE01319601900D929A95D7 -:102F9000E1F7809383010E94211516E08091820160 -:102FA000909183018917C1F1189FC00111248C579A -:102FB0009E4F0E94AB15882379F1E09182011E9FFC -:102FC000F0011124EC57FE4F4081518162817381E1 -:102FD000848195810E9411158091820190E0019673 -:102FE0008770992780938201D9CF4F815885698551 -:102FF0007A858B859C850E941115CFCF0E94D414B1 -:103000001092830110928201E4EBF1E086E0DF018F -:103010001D928A95E9F7C1CF2C960FB6F894DEBFC2 -:103020000FBECDBFDF91CF911F910895EF92FF9218 -:103030000F931F93CF93DF938C01009709F46CC01B -:10304000F12CEE24E394E8012196F8018491843771 -:1030500040F4843008F051C0813081F0823019F1A1 -:103060005BC0853709F444C0A8F19CE7980F9037FE -:1030700008F052C08F770E94F11141C00E5F1F4FC0 -:10308000FE01C49180E28C0F883048F4C7708E2D09 -:1030900001C0880FCA95EAF70E94A81A14C08C2FA5 -:1030A0000E9429112DC00E5F1F4FFE01C49180E2C6 -:1030B0008C0F883058F4C7708E2D01C0880FCA95C8 -:1030C000EAF70E94AE1A0E94CF1A1AC08C2F0E94F3 -:1030D000F11116C00E5F1F4FFE01C491CC2381F089 -:1030E0008FE99FE00197F1F700C00000C150F6CFD3 -:1030F0000E5F1F4FFE01F49003C00E9429118E0144 -:103100008F2D882309F49FCFEFE9FFE03197F1F786 -:1031100000C000008150F5CFDF91CF911F910F913A -:10312000FF90EF90089508956093BE017093BF01E2 -:103130008093C0019093C1010C94C0140F931F930E -:103140000091BE011091BF012091C0013091C101D9 -:10315000DC01CB01802B912BA22BB32B8093BE01E2 -:103160009093BF01A093C001B093C1011F910F9133 -:103170000C94C0140F931F930091BE011091BF01D6 -:103180002091C0013091C101DC01CB01802391234A -:10319000A223B3238093BE019093BF01A093C001EB -:1031A000B093C1011F910F910C94C0140F931F9302 -:1031B0000091BE011091BF012091C0013091C10169 -:1031C000DC01CB0180279127A227B3278093BE0182 -:1031D0009093BF01A093C001B093C1011F910F91C3 -:1031E0000C94C0141092BA011092BB011092BC0151 -:1031F0001092BD010C94C01441E050E060E070E01A -:1032000004C0440F551F661F771F8A95D2F740935D -:10321000BA015093BB016093BC017093BD010C9443 -:10322000C01441E050E060E070E004C0440F551F5E -:10323000661F771F8A95D2F78091BA019091BB01E2 -:10324000A091BC01B091BD01482B592B6A2B7B2B5F -:103250004093BA015093BB016093BC017093BD01D0 -:103260000C94C01441E050E060E070E004C0440FF2 -:10327000551F661F771F8A95D2F740955095609528 -:1032800070958091BA019091BB01A091BC01B09161 -:10329000BD01482359236A237B234093BA015093ED -:1032A000BB016093BC017093BD010C94C01441E05C -:1032B00050E060E070E004C0440F551F661F771FA8 -:1032C0008A95D2F78091BA019091BB01A091BC017F -:1032D000B091BD01482759276A277B274093BA013F -:1032E0005093BB016093BC017093BD010C94C0145A -:1032F0000F931F930091BA011091BB012091BC0163 -:103300003091BD01DC01CB01802B912BA22BB32B83 -:103310008093BA019093BB01A093BC01B093BD010F -:103320001F910F910C94C0140F931F930091BA0139 -:103330001091BB012091BC013091BD01DC01CB019A -:1033400080239123A223B3238093BA019093BB01DE -:10335000A093BC01B093BD011F910F910C94C014B8 -:103360000F931F930091BA011091BB012091BC01F2 -:103370003091BD01DC01CB0180279127A227B32723 -:103380008093BA019093BB01A093BC01B093BD019F -:103390001F910F910C94C0140895CF92DF92EF9279 -:1033A000FF920F931F93CF93DF938C01C090BE01C8 -:1033B000D090BF01E090C001F090C1018091BA01AE -:1033C0009091BB01A091BC01B091BD01C82AD92A3E -:1033D000EA2AFB2ACFE1D0E0D701C6010C2E04C0B7 -:1033E000B695A795979587950A94D2F780FF06C062 -:1033F000B8018C2F0E94CA05019721F4219760F72C -:1034000080E001C08C2FDF91CF911F910F91FF9031 -:10341000EF90DF90CF900895CF93DF93EC010E945F -:10342000CD19BE010E94CA05DF91CF910895CB014D -:103430000E940C1A08958091C20185958595859505 -:1034400008958091C2018770089598E0899F900146 -:103450001124262B2093C2010C9411192091C20132 -:10346000809582238093C201982F977069F430E091 -:10347000482F552747FD50952417350729F0859586 -:10348000859585950C94321908959091C201977095 -:1034900081E009F480E0089520910C0130910D0144 -:1034A000F90132969FEF40E05191581789F09F3F04 -:1034B00019F4511101C0942F4F5F4630A9F79F3F77 -:1034C00039F0F901E90FF11D97FDFA95828308950E -:1034D000089520910C0130910D01F9013296285F79 -:1034E0003F4F9081981301C010823196E217F30785 -:1034F000C1F7089581E090E0E0910C01F0910D0199 -:10350000E80FF91F1082019688309105A9F70895F8 -:103510009091CE01892B8093CE0108958095909152 -:10352000CE0189238093CE0108951092CE01089593 -:103530009091CD01892B8093CD0108958095909134 -:10354000CD0189238093CD0108951092CD01089576 -:103550009091CC01892B8093CC0108958095909116 -:10356000CC0189238093CC0108951092CC01089559 -:103570008093C30108951092C301089580910C01B6 -:1035800090910D01FC0131969C01285F3F4F80E036 -:10359000919191118F5FE217F307D1F70895E091B0 -:1035A0000C01F0910D018091CE018083E0910C011E -:1035B000F0910D0190818091CD01892B8083E09164 -:1035C0000C01F0910D0190818091CC01892B8083B9 -:1035D0008091C301882361F0E0910C01F0910D010D -:1035E0009081892B80830E94BE1A81111092C301A1 -:1035F00080910C0190910D010C94FE0F20E000973A -:1036000039F0AC0141505109842395232F5FF7CF46 -:10361000822F08958091E601843039F11092D00113 -:1036200020E488E190E00FB6F894A89580936000BC -:103630000FBE2093600080E00E94850380E00E941E -:10364000FB0783B7817F846083BF83B7816083BFBB -:103650007894889583B78E7F83BF88E10FB6F894FE -:1036600080936000109260000FBE0895089580E07E -:103670000E9485030E9411080E9494080E94361B34 -:103680000E940C0991E0811101C090E0892F0895FA -:103690000E94D41480E00E9485030E949C200E9416 -:1036A000F20F0C94FB071F920F920FB60F9211248A -:1036B0008F939F93AF93BF938091D001811113C0DB -:1036C0008091D1019091D201A091D301B091D40108 -:1036D0004196A11DB11D8093D1019093D201A09379 -:1036E000D301B093D401BF91AF919F918F910F906F -:1036F0000FBE0F901F90189582E084BD93E095BD9A -:103700009AEF97BD80936E0008952FB7F89480913B -:10371000D1019091D201A091D301B091D4012FBFDA -:103720000895CF92DF92EF92FF920F931F932FB7DE -:10373000F8944091D1015091D2016091D3017091E0 -:10374000D4012FBF6A017B01EE24FF248C0120E00D -:1037500030E0C016D106E206F30610F441505109DC -:103760009A01281B390BC9011F910F91FF90EF900F -:10377000DF90CF9008951F920F920FB60F921124F1 -:103780008F939F93AF93BF938091D1019091D2017A -:10379000A091D301B091D4010196A11DB11D8093D8 -:1037A000D1019093D201A093D301B093D401BF91E2 -:1037B000AF919F918F910F900FBE0F901F90189512 -:1037C0000E94EF0CF8942FEF87EA91E62150804099 -:1037D0009040E1F700C0000087E090EBDC018093AF -:1037E000F0019093F101A093F201B093F3019CE0FA -:1037F00088E10FB6F894A895809360000FBE90936F -:103800006000FFCF0E943A1C811102C00E941B1C65 -:103810000E94451C8093CF010E944D1C90E0909324 -:10382000E1018093E0010E94491C682F70E080E074 -:1038300090E00C9494186DEE7EEF80E090E00E9492 -:10384000A72260E082E090E00E94952260E083E0A1 -:1038500090E00E94952260E084E090E00E94952232 -:1038600060E085E090E00E94952260E086E090E0D4 -:103870000C94952280E090E00E948F2221E08D3E02 -:103880009E4F09F020E0822F089582E090E00C9492 -:10389000872283E090E00C94872284E090E00C94EF -:1038A0008722682F84E090E00C94952286E090E0D7 -:1038B0000C948722682F86E090E00C9495228091EA -:1038C000D70180FF0BC06091110185E0689FB001B6 -:1038D000112475956795759567952BC081FF09C073 -:1038E0006091110185E0689FB0011124759567957D -:1038F00020C082FF07C06091110185E0689FB00180 -:10390000112417C09091D8019923D1F06091100132 -:10391000961788F72091110185E0289F90011124C6 -:10392000929FA001939F500D112470E0CA010E9444 -:1039300059226038710540F46115710539F002C0F3 -:1039400065E070E0862F08958FE7089581E008957F -:103950008091D70180FF08C060910F0170E07595DC -:1039600067957595679521C081FF06C060910F012D -:1039700070E07595679519C082FF04C060910F01D2 -:1039800070E010C09091D8019923C1F060910E01B0 -:103990009617A0F780910F01899FC001112470E054 -:1039A0000E9459226038710528F46115710521F0D3 -:1039B000862F08958FE7089581E0089561E070E013 -:1039C000F4CF803F21F40E945F1C819504C0813FA9 -:1039D00029F40E945F1C8093DB010895823F21F44B -:1039E0000E945F1C819504C0833F29F40E945F1CE4 -:1039F0008093DA010895893F19F40E94A81C05C03C -:103A00008A3F31F40E94A81C81958093DC010895BF -:103A10008B3F21F40E94A81C819504C08C3F29F49F -:103A20000E94A81C8093DD010895843F21F48091B9 -:103A3000D901816017C0853F21F48091D90182604E -:103A400011C0863F21F48091D90184600BC0873F6B -:103A500021F48091D901886005C0883F31F48091BC -:103A6000D90180618093D90108958D3F21F480911F -:103A7000D70181600BC08E3F21F48091D701826015 -:103A800005C08F3F29F48091D70184608093D701CE -:103A90000895803F39F48091DB0187FF6CC010925C -:103AA000DB0169C0813F29F48091DB011816BCF36A -:103AB00062C09091DA01823F29F497FF5CC01092B6 -:103AC000DA0159C0833F19F41916CCF354C0893F69 -:103AD00041F48091DC0118160CF04DC01092DC010D -:103AE0004AC08A3F29F48091DC0187FF44C0F6CFA9 -:103AF0008B3F39F48091DD0187FF3DC01092DD01DD -:103B00003AC08C3F29F48091DD011816BCF333C014 -:103B1000843F21F48091D9018E7F17C0853F21F425 -:103B20008091D9018D7F11C0863F21F48091D90108 -:103B30008B7F0BC0873F21F48091D901877F05C01F -:103B4000883F31F48091D9018F7E8093D90113C0D1 -:103B50008D3F21F48091D7018E7F0BC08E3F21F4E1 -:103B60008091D7018D7F05C08F3F29F48091D701C7 -:103B70008B7F8093D7018091DA0181110EC08091F3 -:103B8000DB0181110AC08091DC01811106C08091A6 -:103B9000DD01811102C01092D801089589ED91E0F4 -:103BA0000E9409100E94851B9093D6018093D50135 -:103BB00008951F93CF93DF938091D5019091D60103 -:103BC0000E94911BAC019091D801992321F0209182 -:103BD000120130E006C0209113018AE0289F900175 -:103BE00011244217530708F486C08091DA01C0916E -:103BF000DB01D091DC011091DD01811107C0C11101 -:103C000076C0D11174C0111172C075C09F3F19F0F8 -:103C10009F5F9093D801181624F40E945F1C809334 -:103C2000DA018091DA0187FF05C00E945F1C81954F -:103C30008093DA011C1624F40E945F1C8093DB0140 -:103C40008091DB0187FF05C00E945F1C81958093F6 -:103C5000DB016091DA01662339F1C091DB01CC23ED -:103C600019F1772767FD7095872F972F0E946A219A -:103C700023E333E343E35FE30E94CE210E94372135 -:103C80006093DA016C2F772767FD7095872F972F48 -:103C90000E946A2123E333E343E35FE30E94CE21E2 -:103CA0000E9437216093DB011D1624F40E94A81C9A -:103CB0008093DC018091DC0187FF05C00E94A81C75 -:103CC00081958093DC01111624F40E94A81C809336 -:103CD000DD018091DD0187FF05C00E94A81C819550 -:103CE0008093DD01DF91CF911F910C94CE1D9F3FFA -:103CF00009F08ECF96CFDF91CF911F910895E9ED16 -:103D0000F1E085E0DF011D928A95E9F71092D80174 -:103D10001092D7010895833081F128F4813059F051 -:103D20008230D1F00895853009F449C0B8F1863069 -:103D300009F456C0089580911301262F30E0280F12 -:103D4000311D2F3F310524F4680F6093130108954E -:103D50008FEF80931301089580911201262F30E098 -:103D6000280F311D2F3F310524F4680F6093120195 -:103D700008958FEF80931201089580911101262FED -:103D800030E0280F311D2F3F310524F4680F609378 -:103D9000110108958FEF8093110108958091100112 -:103DA000262F30E0280F311D2F3F310524F4680FF6 -:103DB0006093100108958FEF809310010895809112 -:103DC0000F01262F30E0280F311D2F3F310524F43D -:103DD000680F60930F0108958FEF80930F0108958E -:103DE00080910E01262F30E0280F311D2F3F310525 -:103DF00024F4680F60930E0108958FEF80930E01F5 -:103E00000895833011F128F4813049F0823091F027 -:103E10000895853081F120F18630C1F108958091B7 -:103E20001301681720F4861B8093130108951092E4 -:103E30001301089580911201681720F4861B809366 -:103E400012010895109212010895809111016817CE -:103E500020F4861B8093110108951092110108959A -:103E600080911001681720F4861B8093100108953B -:103E700010921001089580910F01681720F4861B9D -:103E800080930F01089510920F01089580910E0103 -:103E9000681720F4861B80930E01089510920E017E -:103EA00008950F931F938B3109F46EC098F58B30F2 -:103EB00009F49BC0B8F4863009F44AC0873009F48D -:103EC00051C0853009F098C00E94D4140FEF13ED53 -:103ED00020E3015010402040E1F700C000000E94A4 -:103EE000E01B83C0803109F462C068F48E3009F0B1 -:103EF00083C08091CF0182FB222720F991E0922795 -:103F000090FB82F94AC0863109F46FC0893109F407 -:103F10006CC072C0853309F46AC068F4873209F452 -:103F200066C028F48E3108F467C08D514BC08932C9 -:103F300009F45DC061C0833438F48A3308F041C0AD -:103F4000883309F452C058C0833409F450C054C0B7 -:103F50008091CF01817F8E7F8093CF0181E080931C -:103F6000DF014BC09091CF01892F8095817080FB3C -:103F700090F929F0966098609093CF013EC0997FA8 -:103F8000977F9093CF0131C08091CF0181FB222791 -:103F900020F991E0922790FB81F98093CF0199233A -:103FA00021F18091CF0181608093CF011EC080916B -:103FB000CF0183FB222720F991E0922790FB83F920 -:103FC000ECCF895341E050E060E070E08A019B0152 -:103FD00004C0000F111F221F331F8A95D2F7C90199 -:103FE000B8010E9494180E94D41481E006C061E0D8 -:103FF00070E080E090E0F5CF80E01F910F91089590 -:1040000080E0089580E00895CF93C82F8091DF016C -:10401000813069F018F08230C9F184C0E0910C0160 -:10402000F0910D018081823209F07EC007C0E091DD -:104030000C01F0910D018081823261F48C2F0E947D -:104040000020811104C08C2F0E94511F1DC081E0EF -:1040500090E01AC08C2F0E940220811114C0C4313C -:1040600079F048F4CB3079F0C03109F061C082E0DA -:104070008093DF0108C0C93219F0C83321F058C05D -:104080001092DF0155C081E0817054C0C93291F1B6 -:1040900020F5C43179F1B0F4C73009F047C08EE1A2 -:1040A0008093130182E3809312018AE080931101CF -:1040B00084E18093100188E080930F0188E280936F -:1040C0000E0134C0CE51C63088F5EC2FF0E0E95C2B -:1040D000FE4F80818093DE0129C0CE34E9F020F4C8 -:1040E000CB3421F56AE013C0C13579F0C235F1F463 -:1040F00061E00DC08091DE01882319F01092DE018D -:1041000015C081E08093DF0115C061E006C0809199 -:10411000DE010E948B1E0AC06AE08091DE010E94CF -:10412000011F04C01092DF0180E004C081E002C0E2 -:1041300080E0AACFCF9108950E943A1C811102C05D -:104140000E941B1C0E94561C8093EF0180FF02C03E -:10415000869501C080E00C9485038091EF01982F33 -:104160009695292F30E0233031054CF49F5F990F4D -:104170008170892B81608093EF010E945A1C80918D -:10418000EF0186950C9485038091EF01982F969509 -:1041900091F09158990F8170892B8093EF018E7F58 -:1041A00091E009F490E08091EF0190FB80F9809319 -:1041B000EF010E945A1C8091EF0186950C948503B3 -:1041C0008091EF01982F909590FB80F98093EF01FB -:1041D0000E945A1C8091EF0180FF02C0869501C0A9 -:1041E00080E00C9485039091EF01892F86958F5F75 -:1041F0008F779170843028F4880F892B8093EF019A -:1042000002C09093EF018091EF018E7F91E009F45D -:1042100090E08091EF0190FB80F98093EF010E9484 -:104220005A1C8091EF0186950C9485032091EF0133 -:10423000922F96958927982F990F822F8170892B1D -:104240008093EF018E7F91E009F490E08091EF017F -:1042500090FB80F98093EF010E945A1C8091EF013E -:1042600086950C9485038091EF018695089504D07E -:104270006894B1118DC0089570D088F09F5790F068 -:10428000B92F9927B751A0F0D1F0660F771F881F7B -:10429000991F1AF0BA95C9F712C0B13081F077D0E2 -:1042A000B1E0089574C0672F782F8827B85F39F080 -:1042B000B93FCCF3869577956795B395D9F73EF4DA -:1042C00090958095709561957F4F8F4F9F4F089582 -:1042D000E89409C097FB3EF49095809570956195A0 -:1042E0007F4F8F4F9F4F9923A9F0F92F96E9BB2756 -:1042F0009395F695879577956795B795F111F8CFD2 -:10430000FAF4BB0F11F460FF1BC06F5F7F4F8F4F3C -:104310009F4F16C0882311F096E911C0772321F032 -:104320009EE8872F762F05C0662371F096E8862FCA -:1043300070E060E02AF09A95660F771F881FDAF721 -:10434000880F9695879597F9089557FD9058440FD3 -:10435000551F59F05F3F71F04795880F97FB991FE4 -:1043600061F09F3F79F087950895121613061406A1 -:10437000551FF2CF4695F1DF08C01616170618062E -:10438000991FF1CF86957105610508940895E89409 -:10439000BB2766277727CB0197F908950BD078C004 -:1043A00069D028F06ED018F0952309F05AC05FC08C -:1043B0001124EECFCADFA0F3959FD1F3950F50E003 -:1043C000551F629FF001729FBB27F00DB11D639FC7 -:1043D000AA27F00DB11DAA1F649F6627B00DA11D6D -:1043E000661F829F2227B00DA11D621F739FB00D13 -:1043F000A11D621F839FA00D611D221F749F332783 -:10440000A00D611D231F849F600D211D822F762F1B -:104410006A2F11249F5750408AF0E1F088234AF018 -:10442000EE0FFF1FBB1F661F771F881F9150504064 -:10443000A9F79E3F510570F014C0AACF5F3FECF37F -:10444000983EDCF3869577956795B795F795E79550 -:104450009F5FC1F7FE2B880F911D9695879597F961 -:10446000089597F99F6780E870E060E008959FEFF6 -:1044700080EC089500240A941616170618060906FB -:10448000089500240A9412161306140605060895CA -:10449000092E0394000C11F4882352F0BB0F40F452 -:1044A000BF2B11F460FF04C06F5F7F4F8F4F9F4F92 -:1044B000089597FB072E16F4009407D077FD09D0D6 -:1044C0000E94732207FC05D03EF4909581959F4F82 -:1044D0000895709561957F4F0895EE0FFF1F059029 -:1044E000F491E02D0994AA1BBB1B51E107C0AA1F40 -:1044F000BB1FA617B70710F0A61BB70B881F991F85 -:104500005A95A9F780959095BC01CD010895F99928 -:10451000FECF92BD81BDF89A992780B50895A8E194 -:10452000B0E042E050E00C94AF22262FF999FECF84 -:1045300092BD81BDF89A019700B4021639F01FBAF6 -:1045400020BD0FB6F894FA9AF99A0FBE0895019615 -:10455000272F0E9496220C949522DC01CB01FC01AE -:10456000F999FECF06C0F2BDE1BDF89A319600B4CC -:0E4570000D9241505040B8F70895F894FFCFD7 -:10457E00FF2209B0098D095909250901C40128082E -:10458E00140A321E1F0F03764F5F6F7F49694379FE -:10459E003929190959536366404D361306C60590DD -:1045AE00053C0555056E05010203040506070809BD -:0245BE000000FB -:00000001FF diff --git a/keyboards/atomic/keymaps/pvc/compiled.hex b/keyboards/atomic/keymaps/pvc/compiled.hex deleted file mode 100644 index c8cc6d8c0..000000000 --- a/keyboards/atomic/keymaps/pvc/compiled.hex +++ /dev/null @@ -1,1700 +0,0 @@ -:100000000C9483040C94C7040C94C7040C94C70488 -:100010000C94C7040C94C7040C94C7040C94C70434 -:100020000C94C7040C94C7040C94DB190C94AD1AFF -:100030000C9414280C94C7040C94C7040C94C704A3 -:100040000C94C7040C94F0050C94C7040C94C704DA -:100050000C94C7040C947C280C94C7040C94C7041B -:100060000C94C7040C94C7040C94C7040C94C704E4 -:100070000C94C7040C94C7040C94C7040C94C704D4 -:100080000C94940F0C94C7040C94C7040C94C704EC -:100090000C94C7040C94C7040C94C7040C94C704B4 -:1000A0000C94C7040C94C7040C94C7047A068D06FC -:1000B000A206B506BD06D306E906F206FC0607074A -:1000C00010071907210729073C073C073C073C0795 -:1000D0003C073C07370758063C076006690672066E -:1000E0001A1B3C1B2A1C3C1B2A1C811BA41B2A1C00 -:1000F000F91B0C1CFB1EFB1E2A1F2A1F691F891FD0 -:10010000DF20DF20941FDF2044204420AB20B420D8 -:10011000DF20D92051205120512051205120512041 -:100120005120512051205120512051205120512047 -:100130005120512061206F2076207D208720B02D16 -:10014000A62DB92D112E182E182E112E182E182E60 -:10015000DE2D182EE82DF22D182E182E182E182E02 -:10016000112E182E182E112E182ECB2D182E182EBB -:10017000FD2DFD2DFD2DFD2DFD2DFD2DFD2DFD2D2F -:10018000FD2D132E182E132E182E182E182E182E65 -:10019000182E182E182E182E182E182E182E132E34 -:1001A000182E182E112E902DFB2DFB2DFB2DFB2D27 -:1001B000FB2DFB2DFB2DFB2DFB2D132E0763423654 -:1001C000B79BD8A71A39685618AEBAAB558C1D3CE8 -:1001D000B7CC5763BD6DEDFD753EF6177231BF00AC -:1001E0000000803F08000000BE922449123EABAAE6 -:1001F000AA2ABECDCCCC4C3E00000080BEABAAAA41 -:10020000AA3E00000000BF000000803F0000000088 -:1002100000084178D3BB4387D1133D190E3CC3BDC1 -:100220004282AD2B3E68EC8276BED98FE1A93E4C6E -:1002300080EFFFBE01C4FF7F3F0000000000000010 -:10024000000000000000000000010204060A0F1771 -:10025000202C3A4A5D71879DB3C7DAE9F5FCFFFCB3 -:10026000F5E9DAC7B39D87715D4A3A2C20170F0A6A -:10027000060402010000000000000000000000224F -:1002800029001E001F00200021002200230024005E -:100290002500260027002D002E002A002A002B0012 -:1002A00014001A000800150017001C0018000C00AC -:1002B000120013002F00300031004C003900040000 -:1002C0001600070009000A000B000D000E000F00C9 -:1002D00033003400280028004B00E1001D001B0003 -:1002E0000600190005001100100036003700380024 -:1002F000E500E50052004E00E000E3000530E200BA -:1003000003302C002C000430C000E6006500E4003F -:10031000500051004F0029001E001F002000210046 -:100320002200230024002500260027002D002E0097 -:100330002A002A002B0014001A00090013000A00EA -:100340000D000F0018001C0033002F00300031009A -:100350004C002A00040015001600170007000B00CF -:10036000110008000C0012003400280028004B0087 -:10037000E1001D001B000600190005000E00100022 -:10038000360037003800E500E50052004E00E0007E -:10039000E3000530E20003302C002C000430C000E4 -:1003A000E6006500E400500051004F0029001E00E7 -:1003B0001F00200021002200230024002500260029 -:1003C00027002F0030002A002A002B0034003600BE -:1003D000370013001C0009000A00060015000F007A -:1003E00038002E0031004C003900040012000800D3 -:1003F00018000C0007000B001700110016002D005C -:10040000280028004B00E100330014000D000E000E -:100410001B00050010001A0019001D00E500E50092 -:1004200052004E00E000E3000530E20003302C00F3 -:100430002C000430C000E6006500E40050005100CC -:100440004F004600153017301830193000000000FA -:1004500053005400550000000000470048004800C9 -:1004600001003A003B003C003D00000000005F003E -:1004700060006100560001000100010049003900E0 -:100480003E003F0040004100000000005C005D00B5 -:100490005E0057000100010001004A000100420017 -:1004A0004300440045000000000059005A005B0072 -:1004B00058000100010001004D0001000100010091 -:1004C00001000100620062000100E60063005800C4 -:1004D000010001000100010001003A003B003C0066 -:1004E0003D003E003F004000410042004300440008 -:1004F000450001000100010021022F022F00260209 -:10050000220220022702300030021F0201000100F7 -:100510000100490001002302250257005600330064 -:1005200033022D02340034023500010001000100C5 -:100530004A000100310224021E0235023800310057 -:100540002E003602370238020100010001004D0082 -:100550000100010001000100010001000100010093 -:100560000100010001000100010001000100530031 -:100570003A003B003C003D003E003F00400041008F -:1005800042004300440045000100010047006800AC -:1005900069006A006B006C006D006E006F007000F7 -:1005A0007100720073000100480039000100010071 -:1005B0000100010001000100010001000100010033 -:1005C00001000100010046000100010001000100DE -:1005D0000100010001000100010001000100010013 -:1005E0000100A900A80001000100010001000100B4 -:1005F000AE00AE0001000100010001000100AC00EE -:10060000AA00AB000100FD00FE00FF00000000009A -:1006100000000000000000000000000000000000DA -:1006200000000000000000000000000000000000CA -:1006300000000000000000000000000000000000BA -:100640000000F800F700F600F500000000000000D0 -:10065000000000000000000000000000F9000100A0 -:10066000000000000000000000000000000000008A -:100670000000000001000100F000FA00010001008C -:10068000010001000100F400F4000100010001007C -:1006900001000100F200F100F30001000730083012 -:1006A00009300A300B300C300D3001000100010020 -:1006B00025502250010001000100003001300230BD -:1006C0000100010001000100010001000100010022 -:1006D0000100010001000100010001000100010012 -:1006E0000100010001000100010001000100010002 -:1006F0000100010001000100010001001430005060 -:100700000100063001000100010001000100265037 -:1007100001000100010001000100010001000100D1 -:10072000010001000100010001000100275001004B -:1007300028035400680065002000410074006F0029 -:100740006D006900630020004B00650079006200C5 -:100750006F0061007200640000002C034F00720003 -:10076000740068006F006C0069006E006500610035 -:10077000720020004B006500790062006F0061008C -:1007800072006400730000000403090409026D0094 -:10079000040100A0FA09040000010301010009217D -:1007A00011010001223F000705810308000A090426 -:1007B00001000103010200092111010001224D0085 -:1007C0000705820308000A09040200010300000073 -:1007D0000921110100012236000705830308000AE0 -:1007E0000904030001030000000921110100012296 -:1007F00039000705840310000112011001000000F8 -:1008000008EDFE190401000102000105010906A11D -:1008100001050719E029E7150025019508750181F3 -:1008200002050819012905950575019102950175C3 -:1008300003910105071900297715002501957875A1 -:10084000018102C005010980A1018502160100266F -:10085000B7001A01002AB700751095018100C00584 -:100860000C0901A1018503160100269C021A010052 -:100870002A9C02751095018100C005010902A101A1 -:100880000901A10005091901290515002501950592 -:100890007501810295017503810105010930093156 -:1008A0001581257F95027508810609381581257FF8 -:1008B000950175088106050C0A38021581257F957A -:1008C0000175088106C0C005010906A101050719C7 -:1008D000E029E7150025019508750181029501754C -:1008E00008810105081901290595057501910295F1 -:1008F00001750391010507190029FF150025FF95D2 -:100900000675088100C011241FBECFEFDAE0DEBFFC -:10091000CDBF04B603FE24C080917B0590917C0579 -:10092000A0917D05B0917E058730904BA740B04BDC -:10093000B9F410927B0510927C0510927D051092FF -:100940007E0514BE84B7877F84BF88E10FB6F89414 -:1009500080936000109260000FBEE0E0F8E309951C -:1009600014E0A0E0B1E0EEE0F7E602C005900D92E1 -:10097000A431B107D9F715E0A4E1B4E001C01D929C -:10098000AB37B107E1F70E9421170C9485330C9423 -:100990000000089581E008950C94C9040C94CA04E1 -:1009A0000C9441070E944F2F811105C0109216042C -:1009B000109215040DC080E290E00090170402C070 -:1009C000880F991F0A94E2F79093160480931504F8 -:1009D0001092140480916F00826080936F000895DC -:1009E0000E944F2F811105C0109216041092150419 -:1009F0000DC081E290E00090170402C0880F991F9B -:100A00000A94E2F7909316048093150482E0809391 -:100A1000140480916F00826080936F0008950E949B -:100A20004F2F811102C081E001C082E08093140445 -:100A3000089590916F0081E0911101C080E00895C8 -:100A40000E944F2F23E030E0281B3109220F209312 -:100A500018040895282F2F9880918000211108C034 -:100A6000877F8093800010928D0010928C001BC0B5 -:100A7000886080938000233018F08FEF9FEF0FC0C5 -:100A800083E090E0821B9109880F991F2FEF3FEFC1 -:100A9000A90102C0569547958A95E2F7CA0190933D -:100AA0008D0080938C000C9420050E941905811103 -:100AB00018C00E944F2F811105C010921604109289 -:100AC00015040DC081E290E00090170402C0880F69 -:100AD000991F0A94E2F790931604809315041092DC -:100AE000140490916F0082E0892780936F000E9428 -:100AF0001905811104C00E944F2F0C942A050895F6 -:100B0000CF93C82F0E94190540911704882329F01C -:100B100090916F009D7F90936F00C093170488237E -:100B2000D1F0209115043091160402C03695279516 -:100B30004A95E2F72F733327C90102C0880F991F26 -:100B4000CA95E2F7909316048093150480916F0084 -:100B5000826080936F00CF91089590911704292FA0 -:100B600030E0281B31092B30310510F080E002C045 -:100B7000981B892F0C94800590911704282F30E042 -:100B8000290F311D2B30310514F08AE001C0890F87 -:100B90000C9480050E94200584E080931704109235 -:100BA00014040895279A2F988FEF9FEF9093870052 -:100BB000809386008AE08093800089E180938100A1 -:100BC0000E94B82E0C94CA0585B7806885BF85B78A -:100BD000806885BF0E94D2056E9A769A0C94B607FB -:100BE0001F920F920FB60F9211242F933F938F9362 -:100BF0009F93EF93FF93E0911504F0911604CF01BA -:100C0000019690931604809315040090170402C077 -:100C1000F695E7950A94E2F7EF7380911404823019 -:100C200019F4E03251F404C0813039F4EF3329F47F -:100C300080916F008D7F80936F00F0E0E25CFD4F4C -:100C4000E49121E031E0E29FC001E39F900D112487 -:100C50000090180402C0969587950A94E2F7909345 -:100C60008D0080938C00FF91EF919F918F913F9128 -:100C70002F910F900FBE0F901F901895CF93DF9379 -:100C8000EC010E94702ABE0180E090E0DF91CF91DC -:100C90000C940A250F931F93462F50E04A315105BB -:100CA00008F0EAC0DC01FA01EA5AFF4F0C9449331C -:100CB00012968C91882309F4DFC00E945505DCC090 -:100CC00012968C91882309F4D7C081E00E94AD056B -:100CD000D3C012968C91882309F4CEC081E00E9483 -:100CE000BC05CAC012968C91882309F4C5C00E9425 -:100CF000CA05C2C012968C91882309F4BDC081E058 -:100D000090E00E943E060AE017ED23E23CE340E05B -:100D100064E070E080E792E012C012968C91882324 -:100D200009F4AAC082E090E00E943E060AE017EDB6 -:100D300023E23CE340E066E070E080E092E00E9465 -:100D400012139AC012968C91882309F495C084E0FE -:100D500090E00E943E060AE017ED23E23CE340E00B -:100D600068E070E080E392E0EACF12968C918823ED -:100D700011F083E007C083E013C012968C918823A2 -:100D800071F084E00E94872582E00E9480050E9425 -:100D9000F00447E063E084E00E94840D6DC084E0CD -:100DA0000E94A825F6CF12968C91882349F083E003 -:100DB0000E9480050E94D20485E00E9487255CC0C5 -:100DC00081E00E9480050E940F0585E00E94A82511 -:100DD00053C012968C91882309F44EC086E00E947D -:100DE000CD254AC012968C91882309F445C060E055 -:100DF00070E080E09EE308C012968C918823E1F1B8 -:100E000060E070E080E89EE30E94BC1335C012965B -:100E10008C91882389F160E070E080E09FE3F4CF5B -:100E200012968C91882341F160E070E080E49FE3AA -:100E3000EBCF12968C918823F9F08AE00E94CE13B2 -:100E40001BC012968C918823B9F08AE00E94C813C7 -:100E500013C012968C91882379F060E070E080E0F6 -:100E60009FE30E94BC1384E60E94C51305C012963E -:100E70008C9181110E940F2F80E090E01F910F91C3 -:100E800008950F931F93CF93C82F8FE39CE9019789 -:100E9000F1F700C000000E94A51381114BC0909192 -:100EA0001904C1FF0BC091FD14C000E010E09801CF -:100EB00040E062E070E080E591E03AC091FF09C057 -:100EC00000E010E0980140E062E070E080E491E032 -:100ED0002FC0C0FF0BC090FD14C000E010E09801CF -:100EE00040E062E070E080E391E022C090FF09C042 -:100EF00000E010E0980140E062E070E080E291E004 -:100F000017C0C2FF0BC092FD15C000E010E09801B1 -:100F100040E062E070E080E191E00AC092FF0AC028 -:100F200000E010E0980140E062E070E080E091E0D5 -:100F30000E941213C0931904CF911F910F9108952D -:100F40000F931F938FE39CE90197F1F700C0000016 -:100F50000AE017ED23E23CE340E06FE070E088ED4B -:100F600092E00E9412131F910F91089580E00E9459 -:100F7000DF130C94A0070F931F930AE017ED23E2F1 -:100F80003CE340E069E070E080E992E00E941213E7 -:100F90002FEF87EA91E6215080409040E1F700C0B2 -:100FA00000001F910F910C94C70E0F931F930AE03E -:100FB00017ED23E23CE340E065E070E088ED91E06E -:100FC0000E9412131F910F9108950F931F930AE02F -:100FD00017ED23E23CE340E067E070E080EA91E057 -:100FE0000E9412131F910F9108950F931F930AE00F -:100FF00017ED23E23CE340E068E070E080E691E03A -:101000000E9412131F910F91089581E008950C948E -:10101000050808950C94E40580916A04882309F476 -:1010200048C08091260490912704009779F40E948B -:10103000462890932704809326048091280490E00A -:10104000009771F48091290490E00AC00E94522810 -:1010500020915003309151032817390740F329C0DC -:101060000197880F991F880F991FFC01E65DFB4FC0 -:1010700060817181828193810E94FA0EE09128043F -:1010800084E0E89FF0011124E65DFB4F60817181EF -:10109000828193814FE050E00E94B2128091280437 -:1010A00090E001966091290470E00E9435338093AE -:1010B00028040C94CC0410926C040C94C70E81E0AC -:1010C00080936C040C94E5078F929F92AF92BF922D -:1010D000EF92FF920F931F93CF93DF93CDB7DEB7BD -:1010E000A3970FB6F894DEBF0FBECDBF7C01FC0105 -:1010F00000811181C8010E944326B8010E94660A3E -:101100008C01B7010E940708882309F4CCC1003282 -:10111000F0E51F0741F4F7018281882309F458C0E4 -:101120000E94AC13C0C10132F0E51F0741F4F70182 -:101130008281882309F44CC00E94B513B4C10232E5 -:10114000F0E51F0751F4F7018281882309F440C0BC -:101150000E94A8138111F0CFE3CF0332F0E51F07FF -:1011600039F4F7018281882399F10E945F089BC1BD -:101170000432F0E51F0739F4F7018281882341F139 -:101180000E945B0890C10532F0E51F0749F4F701A2 -:1011900082818823E9F080916C048111F1CFE5CF41 -:1011A0000632F0E51F0739F4F7018281882381F0C8 -:1011B0000E94E2130AC00732F0E51F0749F4F70165 -:1011C0008281882329F00E94ED130E94F5076BC1EC -:1011D00080916C04811105C0F70182818111CFC01B -:1011E00018C1003E110579F4F7018281882309F4C2 -:1011F0004DC00E94C70E81E080936B0410926A0478 -:101200001092290450C1023E110559F4F701828160 -:101210008823E1F10E94C70E10926B0410926A04B9 -:1012200042C1033E110591F4F7018281882371F1D7 -:101230000E94C70E10926B0481E080936A041092A2 -:10124000280410922704109226042DC1023511059E -:1012500059F4F7018281882309F425C18091500354 -:10126000909151030A970DC00135110579F4F701EA -:101270008281882309F417C1809150039091510312 -:101280000A9690935103809350030DC140915403EB -:1012900083E2EFE6F3E0DE01119601900D928A956C -:1012A000E1F7F701808121E030E02C0F3D1F280F8E -:1012B000311DC9012091520330915303FC01E20F0B -:1012C000F31F6081772767FD7095640F711D882774 -:1012D00077FD8095982F0E94573020E030E040E461 -:1012E00051E40E94BC2F4B015C01F701218185E094 -:1012F00090E0821B9109BC01882777FD8095982F8B -:101300000E9457309B01AC01C501B4010E94542FCB -:101310009B01AC0160E070E080E090E40E94CA3183 -:1013200020E030E04CED50E40E9467314B015C015D -:10133000F70182818823D1F04FE050E0C501B4016C -:101340000E94B21280916B048823A1F0809129043D -:1013500024E0829FF0011124E65DFB4F80829182A0 -:10136000A282B3828F5F8093290404C0C501B401B7 -:101370000E94FA0E0F3F110508F02ECF94C0809105 -:10138000250481111FC0043130E5130709F051C055 -:101390000E94090881E0809325040E9446289093CA -:1013A00024048093230410921C0410921E041092B3 -:1013B0001D041092200410921F0410922204109217 -:1013C000210471C080912304909124040E9452282A -:1013D000883C910570F480911C04E82FF0E0EE0F3A -:1013E000FF1FE35EFB4F118300838F5F80931C041C -:1013F0005AC0043880E5180721F00538104501F17E -:101400003AC0F7018281882341F010921A0482E0E9 -:101410001EC0043830E5130759F580911A04811174 -:1014200006C086E20E949F1D86E20E94671E82E03F -:101430001CC00438F0E51F0741F305381045D9F406 -:10144000F7018281882331F010921B0480E20E9410 -:10145000B61E29C080911B04811106C087E20E943C -:101460009F1D87E20E94671E80E20E94BD1E1BC076 -:101470000538104529F381E080931A0480931B04FA -:10148000C701A3960FB6F894DEBF0FBECDBFDF91A4 -:10149000CF911F910F91FF90EF90BF90AF909F90D1 -:1014A0008F900C94CE0480E0A3960FB6F894DEBF24 -:1014B0000FBECDBFDF91CF911F910F91FF90EF90A5 -:1014C000BF90AF909F908F90089508959FE0799F6F -:1014D000F00111249BE4899FE00DF11D1124E60F1A -:1014E000F11DEE0FFF1FE058FD4F85919491089577 -:1014F000880F991FFC01E250FF4F85919491089548 -:10150000880F991FFC01E258FD4F85919491089531 -:101510000F931F93CF93DF93EC01811521E3920783 -:10152000A0F5C11580E3D80708F0D7C0C83ED105A3 -:10153000D8F4C03ED10508F007C2C83AD10578F406 -:10154000C53AD10508F06AC0C130D10509F463C0BD -:1015500008F4F7C1C430D10508F0F6C1F2C1CB3BA5 -:10156000D10508F466C0EDC1C11590E2D90708F0B5 -:10157000AFC0C11521E0D20708F0E6C1C03FD105D8 -:1015800008F4DFC18E0110651FC2C03880E5D8079E -:1015900000F5C03790E5D90708F0A3C0C11520E5D4 -:1015A000D20709F4ACC050F4CE01905480319F4072 -:1015B00008F0C7C1DF708E01106A06C2C13080E535 -:1015C000D80709F4AEC0C43190E5D90708F4AFC01C -:1015D000B8C1C33820E5D20709F48EC050F4C13831 -:1015E00090E5D90709F482C008F083C000E011ED4E -:1015F000EBC1C03181E5D80708F4A3C1C11597E557 -:10160000D90708F436C1CE0190578115904108F0F2 -:1016100098C1DF7093C101E010E0D6C1C53AD10591 -:1016200009F494C1C63AD10509F093C102E810E467 -:10163000CBC1C83AD10509F48FC1C93AD10509F423 -:101640008EC1CA3AD10509F48DC1CB3AD10509F44E -:101650008CC1CC3AD10509F48BC1CD3AD10509F43E -:101660008AC1C03BD10509F489C1CE3AD10509F43C -:1016700088C1CF3AD10509F487C1C13BD10509F42E -:1016800086C1C23BD10509F485C1C33BD10509F42C -:1016900084C1C43BD10509F483C1C53BD10509F41C -:1016A00082C1C63BD10509F481C1C73BD10509F40C -:1016B00080C1C83BD10509F47FC1C93BD10509F4FC -:1016C0007EC1CA3BD10509F47DC100E014E47CC1B0 -:1016D000CE019F700E94800A78C1DD278E01106CB8 -:1016E00073C1CF70DD278E01146D6EC100E010ED67 -:1016F0006BC100E012ED68C100E013ED65C10E940E -:101700004A210E94C70E0E94BB078FEF94E32CE092 -:10171000815090402040E1F700C000000E94A128C5 -:1017200053C180914D05816080934D054DC10E944C -:10173000582A811102C00E94342A0E94752A90E022 -:1017400090937A0580937905C23080E5D80721F41B -:1017500080917905816086C0C43090E5D90721F475 -:101760008091790582607EC0C63020E5D20721F4E1 -:1017700080917905846076C0C83080E5D80719F477 -:101780008091790527C0CA3090E5D90721F480916E -:101790007905806167C0CC3020E5D20721F48091C3 -:1017A000790580625FC0CE3080E5D80721F4809152 -:1017B0007905806457C0C03190E5D90721F4809144 -:1017C000790580684FC0C23120E5D20729F48091A5 -:1017D00079058460886046C0C33080E5D80721F46D -:1017E000809179058E7F3EC0C53090E5D90721F400 -:1017F000809179058D7F36C0C73020E5D20721F46E -:10180000809179058B7F2EC0C93080E5D80719F407 -:101810008091790526C0CB3090E5D90721F48091DD -:1018200079058F7E1FC0CD3020E5D20721F480914D -:1018300079058F7D17C0CF3080E5D80721F48091DE -:1018400079058F7B0FC0C13190E5D90721F48091D4 -:1018500079058F7707C0C331D04531F48091790580 -:101860008B7F877F80937905809179050E94792A03 -:10187000ABC08D2F99278F70992781309105D9F4AE -:101880009E012370332702C0880F991F2A95E2F723 -:101890009C688E0144E0000F111F4A95E1F7002774 -:1018A0001370802B912B53E0CC0FDD1F5A95E1F77D -:1018B000C076DD272FC08230910531F4DC2FCC2794 -:1018C0008E01016F106A80C08330910569F4CE01EA -:1018D0008370992701E010E002C0000F111F8A9564 -:1018E000E2F7C8019C680FC084309105B9F4CE01BD -:1018F0008370992701E010E002C0000F111F8A9544 -:10190000E2F7C8019A6823E0CC0FDD1F2A95E1F7C2 -:10191000C07ED7708C010C2B1D2B56C085309105D5 -:1019200031F4DC2FCC278E01046F106A4DC006976E -:1019300009F04AC0CF71DD27DC2FCC278E01106261 -:1019400043C000E010E040C08E013EC001E810E45A -:101950003BC003E810E438C002EE14E435C009EEE1 -:1019600014E432C00AEE14E42FC005EB14E42CC0DA -:1019700006EB14E429C007EB14E426C00CEC14E4D5 -:1019800023C00DEC14E420C003E815E41DC00AE8F0 -:1019900015E41AC002E915E417C004E915E414C0FF -:1019A00001E216E411C003E216E40EC004E216E4FC -:1019B0000BC005E216E408C006E216E405C007E223 -:1019C00016E402C00AE216E4C801DF91CF911F912C -:1019D0000F9108959FE0799FF00111249BE4899F66 -:1019E000E00DF11D1124E60FF11DEE0FFF1FE05871 -:1019F000FD4F85919491803E9105E0F4803C9105E6 -:101A000058F58133910509F46FC048F48932910586 -:101A100009F463C08A32910509F46DC072C089333C -:101A20009105E9F082389105D1F08533910509F4EB -:101A30004DC067C0833E910581F138F4803E910529 -:101A4000B9F0823E9105D9F05CC0863E910561F106 -:101A5000873E9105A1F155C00E94780A0895209112 -:101A6000790520FD02C021FF4CC080EE90E049C006 -:101A70008091790580FFF9CF89E390E042C08091A1 -:101A8000790582FF0EC08091790584FF03C080E054 -:101A900090E037C083EE90E034C08091790582FFFA -:101AA000F2CF82EE90E02DC08091790583FF0BC0CC -:101AB0008091790584FDEBCF87EE90E022C0809184 -:101AC000790583FFF5CF86EE90E01BC08091790504 -:101AD00085FF07C089E290E014C08091790585FFF9 -:101AE000F9CF85E390E00DC08091790586FF07C0AE -:101AF0008AE290E006C08091790586FFF9CF81E304 -:101B000090E00E94880A0895CF92DF92EF92FF92B0 -:101B10000F931F9301E010E020E030E068017901AD -:101B200004C0CC0CDD1CEE1CFF1C8A95D2F704C04F -:101B3000000F111F221F331F6A95D2F70C291D2990 -:101B40002E293F29C0903005D0903105E090320514 -:101B5000F0903305C022D122E222F322842FC01656 -:101B6000D106E206F30641F41F910F91FF90EF902A -:101B7000DF90CF900C9487251F910F91FF90EF90ED -:101B8000DF90CF900C94A8250C94D004E82FF0E0BF -:101B9000EF55FC4F8081E82FEF70F0E082958F7059 -:101BA00021E030E0A90102C0440F551F8A95E2F7F9 -:101BB00040A308950F931F93CF93DF9385B7806859 -:101BC00085BF85B7806885BFC4E0D0E001E010E044 -:101BD000FE01EF55FC4F8081E82FEF70F0E021A16E -:101BE00082958F70A80102C0440F551F8A95E2F7B5 -:101BF000CA01822B81A38C2F0E94C60D219740F72A -:101C00008EE090E061E070E0FC01EE56FC4F208138 -:101C1000E22FEF70F0E042A122952F70DB0102C0AD -:101C2000AA0FBB1F2A95E2F79D01242B22A301973F -:101C300058F7DF91CF911F910F910C940A08EF9202 -:101C4000FF920F931F93CF93DF9307E714E0C4E055 -:101C5000EE24E394F12CD5E08C2F0E94C60D8EE08B -:101C600090E040E050E0FC01EE56FC4F6081E62F32 -:101C7000EF70F0E020A130E062956F7002C0359502 -:101C800027956A95E2F720FD09C09701082E02C04A -:101C9000220F331F0A94E2F7422B532B019718F7B8 -:101CA000F801929182918F018417950721F0518359 -:101CB0004083D09355038C2F0E94C60DC15060F60F -:101CC0008091550387FD1FC08150809355038F3F3E -:101CD00039F08FE99FE00197F1F700C0000013C0D1 -:101CE00080E090E0FC01E958FB4FDC01A359BB4FB9 -:101CF00018962D913C911997318720870297863F3E -:101D0000EFEF9E0779F70E940C0881E0DF91CF91F9 -:101D10001F910F91FF90EF900895E82FF0E0EE0FE4 -:101D2000FF1FE958FB4F80819181089508950F931B -:101D30001F93CF9301E814E0C0E0F80192918291E3 -:101D40008F010E94BE27C80FF4E007371F07A9F7CD -:101D50008C2FCF911F910F9108950E94582A8111C5 -:101D600002C00E94342A0E94872A809364053E9A0A -:101D7000809171008D7F8093710082E0809390004C -:101D80008AE18093910081E080938304089580919B -:101D90008304811102C00E94AD0E1092D3041092F0 -:101DA000D204809171008D7F8093710080919000AA -:101DB0008F73809390001092950410929404109267 -:101DC000CC041092CD041092CE041092CF04109245 -:101DD000CB041092CA04EAEAF4E0AAE9B4E0119252 -:101DE0001192119211921D921D9284E0EA3CF80723 -:101DF000B1F70895CF92DF92EF92FF920F931F9366 -:101E0000CF93DF9320919404222309F484C06B01C3 -:101E10007C0180918304811102C00E94AD0E0AEC06 -:101E200014E0C7E0D0E0A7019601F80192918291F9 -:101E3000729162918F010E94B82F811131C0FE0111 -:101E4000EE0FFF1FEE0FFF1FE655FB4F10821182B2 -:101E500012821382DE01AA0FBB1FA656BB4F11963A -:101E60001C921E92C730D105E9F02196448155811C -:101E700066817781408351836283738314821582E4 -:101E80001682178212968D919C91139711969C93AE -:101E90008E9313961C921E92129734961296E2CF4E -:101EA000219708F68091D2049091D304019797FD71 -:101EB00005C09093D3048093D20404C01092D3043D -:101EC0001092D2048091D2049091D3042091D00436 -:101ED0003091D1042817390724F01092D1041092C0 -:101EE000D004892BC1F4809171008D7F80937100A3 -:101EF000809190008F73809390001092CC04109288 -:101F0000CD041092CE041092CF041092CB04109204 -:101F1000CA0410929404DF91CF911F910F91FF900A -:101F2000EF90DF90CF9008951F920F920FB60F920F -:101F300011244F925F926F927F928F929F92AF92F5 -:101F4000BF92CF92DF92EF92FF922F933F934F93E6 -:101F50005F936F937F938F939F93AF93BF93CF9331 -:101F6000DF93EF93FF9380919404882309F49BC13E -:101F7000C091D204D091D3041C161D060CF093C15D -:101F8000409084045090850460908604709087048B -:101F900020E030E0A901C301B2010E9463311816AC -:101FA0000CF065C0C130D10509F452C08091D00455 -:101FB0009091D104BE010E9435337C019093D104ED -:101FC0008093D0048090960490909704A0909804F9 -:101FD000B090990420E030E040E85FE3C501B4012F -:101FE0000E94542F609396047093970480939804F2 -:101FF00090939904F701EE0FFF1FEE0FFF1FE655B8 -:10200000FB4FA301920160817181828193810E94C3 -:10201000BC2F20E030E040E05EE30E9467319B018E -:10202000AC01C501B4010E94633118168CF4C701DC -:102030000196BE010E9435339093D1048093D00461 -:10204000109296041092970410929804109299049A -:10205000E091D004F091D104EE0FFF1FEE0FFF1FAF -:10206000E655FB4F6081718182819381D0C0C09021 -:10207000CC04D090CD04E090CE04F090CF0420E0CA -:1020800030E0A901C701B6010E94B82F219788232B -:1020900009F4A2C0FE01EE0FFF1FEE0FFF1FE65571 -:1020A000FB4F80809180A280B380A5019401C7017D -:1020B000B6010E94B82F87FF31C0A501940160E0EE -:1020C00070E08CED93EC0E94BC2F20E030E040E407 -:1020D00051E40E94BC2F20E030E040E05FE30E942A -:1020E00067319B01AC0160E070E080E090E40E9409 -:1020F000CA319B01AC01C501B4010E9467319B014B -:10210000AC01C701B6010E94B82F87FF07C0A70125 -:10211000960160E070E08CED93E439C0A501940174 -:10212000C701B6010E94633118160CF055C0A50115 -:10213000940160E070E08CED93E40E94BC2F20E0FD -:1021400030E040E451E40E94BC2F20E030E040E069 -:102150005FE30E9467319B01AC0160E070E080E0CA -:1021600090E40E94CA319B01AC01C501B4010E94F8 -:1021700067319B01AC01C701B6010E94633118169B -:102180005CF5A701960160E070E08CED93EC0E9495 -:10219000BC2F20E030E040E451E40E94BC2F20E05E -:1021A00030E040E05FE30E9467319B01AC0160E0FA -:1021B00070E080E090E40E94CA319B01AC01C7014D -:1021C000B6010E9467316093CC047093CD04809374 -:1021D000CE049093CF0413C0FE01EE0FFF1FEE0F4D -:1021E000FF1FE655FB4F80819181A281B3818093CF -:1021F000CC049093CD04A093CE04B093CF0460910F -:10220000CC047091CD048091CE049091CF042091A4 -:102210008104309182042F3F4FEF340731F02F5F5C -:102220003F4F30938204209381040E94F8136B0186 -:102230007C0120E034E244EF51E40E94B82F87FF94 -:1022400008C086EFC82E88E2D82E84EFE82E81E4FD -:10225000F82E20E030E040E051E4C701B6010E94D2 -:1022600067319B01AC0160E074E284E79BE40E946B -:10227000BC2F6B017C010E94293070939700609302 -:102280009600209156033091570340915803509186 -:102290005903C701B6010E9467310E94293070932B -:1022A00099006093980080919504882309F433C1C4 -:1022B000C0909004D0909104E0909204F090930428 -:1022C00020E030E0A901C701B6010E946331181671 -:1022D000D4F580918104909182048F3F2FEF920773 -:1022E00029F001969093820480938104C701B6017E -:1022F0000E94F81320E030E040E051E40E94673192 -:102300009B01AC0160E074E284E79BE40E94BC2F77 -:102310006B017C010E9429307093970060939600B6 -:10232000209156033091570340915803509159031F -:10233000C701B6010E9467310E942930709399004D -:102340006093980008C01092970010929600109227 -:1023500099001092980060918A0470918B046F5FCD -:102360007F4F70938B0460938A0420919600309184 -:10237000970080E090E0232BF1F0C0919600D0917F -:1023800097000E9455306B017C01BE0180E090E017 -:102390000E9455309B01AC0160918C0470918D04BA -:1023A00080918E0490918F040E94BC2F20E03FEF1B -:1023B0004FE757E410C00E9455306B017C0120E0CC -:1023C00030EE4FEF54E460918C0470918D04809155 -:1023D0008E0490918F040E9467319B01AC01C7016C -:1023E000B6010E94633187FD96C0809188048F5F9B -:1023F0008093880490E020916005309161058217F8 -:102400009307A0F080916B05882319F0109288043F -:102410000DC0809171008D7F80937100809190003C -:102420008F7380939000109295047DC080918904F1 -:10243000C0918804811128C0C0906505D0906605C0 -:10244000E0906705F090680520E030E0A901C70141 -:10245000B6010E9463311816BCF481E080938904B0 -:10246000109290041092910410929204109293048E -:10247000C0928C04D0928D04E0928E04F0928F046E -:10248000C150C093880443C0109289041092820402 -:1024900010928104E0916205F091630548E0C49FC9 -:1024A000E00DF11D112480819181A281B38180937F -:1024B000900490939104A0939204B093930420E02D -:1024C00030E040E85EE364817581868197810E94F7 -:1024D00067316B017C0180915A03682F70E080E0C6 -:1024E00090E00E94553020E030E048EC52E40E9439 -:1024F000BC2F9B01AC01C701B6010E9467316093FC -:102500008C0470938D0480938E0490938F041092AA -:102510008B0410928A048091640580FD04C010929F -:10252000950410929404FF91EF91DF91CF91BF91A8 -:10253000AF919F918F917F916F915F914F913F915B -:102540002F91FF90EF90DF90CF90BF90AF909F9032 -:102550008F907F906F905F904F900F900FBE0F9075 -:102560001F901895CF92DF92EF92FF92CF93DF9357 -:102570006B017C01EA0180918304811102C00E94F9 -:10258000AD0E8091640580FF46C08091D204909189 -:10259000D30408970CF03FC0809171008D7F809329 -:1025A00071008091950481110E94C70E81E0809393 -:1025B0009404109282041092810420E030E0A9017A -:1025C000C701B6010E9463311816DCF48091D20471 -:1025D0009091D304FC01EE0FFF1FEE0FFF1FE65595 -:1025E000FB4FC082D182E282F382FC01EE0FFF1F1B -:1025F000E656FB4FD183C08301969093D30480931A -:10260000D20480917100826080937100809190006B -:10261000806880939000DF91CF91FF90EF90DF90E2 -:10262000CF9008958F929F92AF92BF92CF92DF92F8 -:10263000EF92FF920F931F93CF93DF93EC017B01F7 -:10264000D42E4801590180918304811102C00E9457 -:10265000AD0E8091640580FF6BC0809171008D7F0D -:10266000809371008091940481110E94C70E81E0D3 -:1026700080939504D0936305C0936205F092610541 -:10268000E0926005D0926B05809265059092660598 -:10269000A0926705B0926805109296041092970474 -:1026A000109298041092990410928804888199815C -:1026B000AA81BB818093900490939104A09392048B -:1026C000B093930420E030E040E85EE36C817D81CC -:1026D0008E819F810E9467316B017C0180915A033A -:1026E000682F70E080E090E00E94553020E030E0FC -:1026F00048EC52E40E94BC2F9B01AC01C701B6011B -:102700000E94673160938C0470938D0480938E04D3 -:1027100090938F0410928B0410928A048091710020 -:102720008260809371008091900080688093900017 -:10273000DF91CF911F910F91FF90EF90DF90CF909D -:10274000BF90AF909F908F900895809195040895C9 -:102750008091640581700895809164058160809303 -:1027600064050E948B2A0C94D507809164058E7FA6 -:10277000809364050C948B2A6093560370935703DF -:102780008093580390935903089580935A030895B2 -:1027900090915A03890F80935A03089590915A0398 -:1027A000292F30E0281B31092A30310524F48AE032 -:1027B00080935A030895981B90935A030895809329 -:1027C000D40408958091D40490E0019666E070E00E -:1027D0000E9435338093D40408958091D40490E00E -:1027E000019766E070E00E9435338093D404089529 -:1027F0008F929F92AF92BF92CF92DF92EF92FF9211 -:102800000F931F93CF93DF936B017C01C0918104E1 -:10281000D0918204BE0180E090E00E9455304B01CF -:102820005C01A701960160E070E08CE594E40E94F1 -:10283000BC2F9B01AC01C501B4010E9467310E940D -:1028400029302091D404233009F473C028F42223C2 -:1028500051F02130E9F02CC1243009F4A0C025301A -:1028600009F4E0C025C180E090E0A0E0BFE38093E0 -:10287000560390935703A0935803B09359031092B3 -:10288000840410928504109286041092870410C16B -:10289000109284041092850410928604109287048A -:1028A0006431710540F46A30710560F520E030E074 -:1028B00040E85EE32BC0693C710508F0AAC080E0E7 -:1028C00090E00E94553020E030E040EA51E40E9460 -:1028D000532F20E030E044E353E40E94BC2F9B01DF -:1028E000AC010E94673120E030E040E05EE30E94EE -:1028F00067319B01AC0160E070E080E09EE30E94E4 -:10290000532F44C020E030E040E05FE3C701B60150 -:102910000E9467316B017C0180E090E0A0E0BEE3A3 -:102920008093560390935703A0935803B093590391 -:10293000BFC01092840410928504109286041092F5 -:1029400087044AE0469F9001479F300D1124C9013A -:1029500068EB7BE00E942133BC016C5D754077FF22 -:1029600003C0719561957109882777FD8095982F2F -:102970000E9457302EE333EC4EE259E30E94673158 -:1029800020E030E040EC5EE30E94542F6093560359 -:1029900070935703809358039093590389C0109202 -:1029A0008404109285041092860410928704CE014C -:1029B00083709927892BE1F0BE016170772780E051 -:1029C00090E00E94553020E030E040E05EE30E945D -:1029D000673120E030E040E45FE30E94542F6093D1 -:1029E00056037093570380935803909359030CC078 -:1029F00080E090E0A0E0BFE38093560390935703FC -:102A0000A0935803B0935903C770DD27CD2B09F06D -:102A10004FC0109256031092570310925803109211 -:102A2000590346C0109284041092850410928604C3 -:102A30001092870400E010E020E03FE3009356038B -:102A40001093570320935803309359036739710546 -:102A500078F180E090E00E94553020E030E047E1DE -:102A600053E40E94532F20E030E04AE754E40E94F0 -:102A7000BC2F20E030E048E452E40E94673120E0BF -:102A800030E040EA51E40E9499300E942430660F01 -:102A9000771F660F771FFB01EA55FC4F20813181BC -:102AA00042815381C701B6010E9467316B017C01ED -:102AB000C701B601DF91CF911F910F91FF90EF9069 -:102AC000DF90CF90BF90AF909F908F9008958091AE -:102AD000E5040895CF93DF9300D01F92CDB7DEB702 -:102AE0009C0180917005843019F593E099833B83B4 -:102AF0002A839093E9008FEF9091E800815095FD33 -:102B000006C095ED9A95F1F700008111F5CF8091FF -:102B1000E80085FF0DC040E050E063E070E0CE01CA -:102B200001960E94CB178091E8008E778093E80091 -:102B30000F900F900F90DF91CF910895CF93DF9377 -:102B400000D01F92CDB7DEB720917005243021F55B -:102B500022E029839B838A8383E08093E9008FEFBF -:102B60009091E800815095FD06C095ED9A95F1F79A -:102B700000008111F5CF8091E80085FF0DC040E095 -:102B800050E063E070E0CE0101960E94CB17809187 -:102B9000E8008E778093E8000F900F900F90DF9100 -:102BA000CF910895209170052430F1F422E0209314 -:102BB000E9002FEF3091E800215035FD06C035EDDA -:102BC0003A95F1F700002111F5CF2091E80025FF9B -:102BD0000BC040E050E065E070E00E94CB178091B0 -:102BE000E8008E778093E8000895CF93DF93EC019F -:102BF00090917005943009F046C080916503882358 -:102C0000D9F0809166038823B9F09093E9008FEFA3 -:102C10009091E800815095FD06C095E19A95F1F7F5 -:102C200000008111F5CF8091E80085FF2CC040E0C5 -:102C300050E060E170E017C081E08093E9008FEF21 -:102C40009091E800815095FD06C095ED9A95F1F7B9 -:102C500000008111F5CF8091E80085FF14C040E0AD -:102C600050E068E070E0CE010E94CB178091E80050 -:102C70008E778093E80080E1FE01A5EDB4E001903D -:102C80000D928A95E1F7DF91CF91089580916F05BC -:102C9000811109C00E9460190E94BD198091E20053 -:102CA00084608093E200089510926F05089508955E -:102CB00008950C94092842E061EC81E00E94DA1842 -:102CC00042E061EC82E00E94DA1842E061EC83E0CD -:102CD0000E94DA1842E161EC84E00C94DA188091E9 -:102CE0007205833009F455C030F4813071F08230C0 -:102CF00009F48EC008958A3009F47AC08B3009F443 -:102D000060C0893009F09CC020C080917105813A73 -:102D100009F096C08091E800877F8093E800809159 -:102D2000750590917605892B21F460E185ED94E09D -:102D300003C060E080E090E070E00E94161880918F -:102D4000E8008B778093E8000895809171058132C7 -:102D500009F076C08091750590917605009719F07D -:102D6000039709F06DC08091E800877F8093E800A9 -:102D70008091E80082FD05C0809170058111F8CF37 -:102D80005FC08091F1008093E5048091E8008B772B -:102D900053C080917105813A09F052C08091750548 -:102DA00090917605892B09F04BC08091E800877FD0 -:102DB0008093E8008091E80080FFFCCF809165035C -:102DC00036C0809171058132D9F580917505909159 -:102DD0007605892BA9F58091E800877F8093E8002C -:102DE0000E940F1980917305809365030C944A210A -:102DF00080917105813221F58091E800877F809371 -:102E0000E8000E940F19809174058093E6040895EC -:102E100080917105813AA1F48091E800877F8093C9 -:102E2000E8008091E80080FFFCCF8091E604809369 -:102E3000F1008091E8008E778093E8000C940F19E0 -:102E4000089584B7877F84BF88E10FB6F894809394 -:102E50006000109260000FBE90E080E80FB6F8941A -:102E600080936100909361000FBE0E94B71C0E9486 -:102E700060190E94BD198091E20084608093E20095 -:102E800078940E94431C0E94B91C8BE593E00E9439 -:102E90005E1C80917005853069F40E94CA2780917C -:102EA0006E058823B1F30E94F827882391F30E94CE -:102EB000B517EFCF0E94C11CECCF292F3327233049 -:102EC0003105C9F064F42130310581F0223031053B -:102ED00009F043C08DE690E02CE837E042C0213293 -:102EE0003105F1F02232310541F137C082E190E045 -:102EF00029EF37E036C099278130910541F08230C3 -:102F0000910541F0892B49F5E8E8F7E005C0EAE5CD -:102F1000F7E002C0E0E3F7E0849190E09F0121C078 -:102F20006430D8F4E62FF0E0EE0FFF1FEE5FFB4FAA -:102F30002081318189E090E014C0643070F470E049 -:102F4000FB01EE0FFF1FE650FC4F20813181FB019A -:102F5000EA50FC4F808190E004C080E090E020E0E7 -:102F600030E0FA0131832083089580E189BD82E158 -:102F700089BD09B400FEFDCF8091D8008F7D80937C -:102F8000D8008091E00082608093E0008091E000B2 -:102F900081FDFCCF0895CF92DF92EF92FF920F93C5 -:102FA0001F93CF93DF93EC018B016A010E942E19CE -:102FB000811133C0C114D10439F0F60180819181AF -:102FC000081B190BC80FD91FE12CF12C0115110595 -:102FD00019F18091E80085FD16C08091E8008E7798 -:102FE0008093E800C114D10449F0F60180819181F9 -:102FF000E80EF91EF182E08285E00FC00E942E19D2 -:10300000882321F30AC089918093F10001501109AE -:10301000FFEFEF1AFF0ADACF80E0DF91CF911F9127 -:103020000F91FF90EF90DF90CF900895209177055A -:10303000309178052617370748F06115710539F486 -:103040002091E8002E772093E80001C0B90140E00C -:1030500061157105A9F120917005222309F443C07F -:10306000253009F442C02091E80023FD40C02091A2 -:10307000E80022FD32C02091E80020FFE9CF409116 -:10308000F3002091F20030E0342BFC01CF016115F8 -:10309000710559F02830310540F481918093F10099 -:1030A000615071092F5F3F4FF1CF41E0283031056A -:1030B00009F040E02091E8002E772093E800C8CF87 -:1030C0004111C9CF0AC080917005882361F0853015 -:1030D00061F08091E80083FD0AC08091E80082FFE2 -:1030E000F2CF80E0089582E0089583E0089581E0C2 -:1030F000089520917705309178052617370748F015 -:103100006115710539F42091E8002E772093E800CD -:1031100001C0B901FC0120E06115710591F18091B8 -:103120007005882309F440C0853009F43FC08091C0 -:10313000E80083FD3DC08091E80082FD2FC08091B2 -:10314000E80080FFE9CF2091F3008091F20090E049 -:10315000922B6115710559F08830910540F4249146 -:103160002093F1003196615071090196F2CF21E070 -:10317000089709F020E08091E8008E778093E800BE -:10318000CBCF2111CCCF0AC080917005882361F08C -:10319000853061F08091E80083FD0AC08091E800ED -:1031A00082FFF2CF80E0089582E0089583E00895E1 -:1031B00081E00895982F973058F59093E90098177B -:1031C00039F07091EC002091ED005091F00003C0B7 -:1031D000242F762F50E021FF19C03091EB003E7F65 -:1031E0003093EB003091ED003D7F3093ED00309156 -:1031F000EB0031603093EB007093EC002093ED0016 -:103200005093F0002091EE0027FF07C09F5FD3CFBF -:103210008F708093E90081E0089580E008958091A7 -:10322000710587FF11C08091E80082FD05C0809183 -:1032300070058111F8CF11C08091E8008B770BC029 -:1032400080917005882349F08091E80080FFF8CFD5 -:103250008091E8008E778093E80008952091E40043 -:103260003091E50095E64091EC00842F817040FF9D -:1032700022C08091E80080FD1CC0809170058823E9 -:1032800091F0853091F08091EB0085FD10C0409168 -:10329000E4005091E5004217530729F39A01915039 -:1032A00011F784E0089582E0089583E0089581E0B5 -:1032B000089580E008954091E80042FFDECF089530 -:1032C0000E94CE190E94D619E0EEF0E08081816064 -:1032D0008083E8EDF0E080818F77808319BCA7EDD3 -:1032E000B0E08C918E7F8C9380818F7E8083109252 -:1032F0006F0508950F931F93CF93DF930E94CE190C -:103300000E94D619C8EDD0E088818F7788838881A4 -:103310008068888388818F7D888319BC10927005AE -:1033200010926C0510926E0510926D0500EE10E083 -:10333000F80180818B7F808388818160888342E06F -:1033400060E080E00E94DA18E1EEF0E080818E7F9C -:103350008083E2EEF0E080818160808380818860FC -:103360008083F80180818E7F80838881806188835B -:10337000DF91CF911F910F910895E8EDF0E08081EA -:103380008F7E8083E7EDF0E080818160808384E040 -:1033900082BF81E080936F050C947A19E8EDF0E02C -:1033A00080818E7F80831092E20008951092DA006F -:1033B0001092E10008951F920F920FB60F92112400 -:1033C0002F933F934F935F936F937F938F939F932D -:1033D000AF93BF93EF93FF938091E10082FF0BC007 -:1033E0008091E20082FF07C08091E1008B7F809393 -:1033F000E1000E94421C8091DA0080FF1FC0809192 -:10340000D80080FF1BC08091DA008E7F8093DA00A5 -:103410008091D90080FF0DC080E189BD82E189BD26 -:1034200009B400FEFDCF81E0809370050E9446162E -:1034300005C019BC109270050E9454168091E100DD -:1034400080FF19C08091E20080FF15C08091E200EA -:103450008E7F8093E2008091E20080618093E200A1 -:103460008091D80080628093D80019BC85E0809359 -:1034700070050E9458168091E10084FF30C0809151 -:10348000E20084FF2CC080E189BD82E189BD09B4DE -:1034900000FEFDCF8091D8008F7D8093D800809171 -:1034A000E1008F7E8093E1008091E2008F7E809327 -:1034B000E2008091E20081608093E20080916C05DF -:1034C000882311F084E007C08091E30087FD02C0EB -:1034D00081E001C083E0809370050E9459168091BD -:1034E000E10083FF29C08091E20083FF25C0809125 -:1034F000E100877F8093E10082E080937005109265 -:103500006C058091E1008E7F8093E1008091E20064 -:103510008E7F8093E2008091E20080618093E200E0 -:1035200042E060E080E00E94DA188091F00088605C -:103530008093F0000E945716FF91EF91BF91AF91D9 -:103540009F918F917F916F915F914F913F912F91BB -:103550000F900FBE0F901F9018951F920F920FB6ED -:103560000F9211242F933F934F935F936F937F9309 -:103570008F939F93AF93BF93CF93DF93EF93FF937B -:10358000C091E900CF708091EC00D82FD17080FD00 -:10359000D0E81092E9008091F000877F8093F000DE -:1035A00078940E94F11A1092E9008091F0008860EE -:1035B0008093F000CD2BCF70C093E900FF91EF9185 -:1035C000DF91CF91BF91AF919F918F917F916F913B -:1035D0005F914F913F912F910F900FBE0F901F90D1 -:1035E00018951F93CF93DF93CDB7DEB7AA970FB689 -:1035F000F894DEBF0FBECDBFE1E7F5E088E08E0FA7 -:103600009091F10091938E13FBCF0E946F168091E1 -:10361000E80083FF1FC18091710590917205492FC9 -:1036200050E04A30510508F015C1FA01E059FF4F4A -:103630000C944933803881F0823809F00BC18091B5 -:1036400075058F708093E9008091EB0085FB8827DA -:1036500080F91092E90006C080916D0590916E0589 -:10366000911182609091E800977F9093E800809399 -:10367000F1001092F100C8C0282F2D7F09F0EAC098 -:10368000882319F0823061F0E5C0809173058130A4 -:1036900009F0E0C0933009F080E080936E052BC004 -:1036A00080917305811127C0809175058F7009F491 -:1036B000D1C08093E9002091EB0020FF1CC0933023 -:1036C00021F48091EB00806214C09091EB00906136 -:1036D0009093EB0021E030E0A90102C0440F551F98 -:1036E0008A95E2F74093EA001092EA008091EB009D -:1036F00088608093EB001092E9008091E800877F5A -:1037000086C08111A7C0109173051F778091E300D7 -:103710008078812B8093E3008091E800877F8093FD -:10372000E8000E940F198091E80080FFFCCF809193 -:10373000E30080688093E300111102C082E001C0C1 -:1037400083E08093700586C08058823008F082C084 -:1037500080917305909174058C3D53E0950779F540 -:1037600083E08A838AE289834FB7F894DE01139657 -:1037700020E03EE051E2E32FF0E050935700E49167 -:1037800020FF03C0E295EF703F5FEF708E2F90E057 -:10379000EA3010F0C79601C0C0968D939D932F5FBD -:1037A000243149F74FBF8091E800877F8093E8007C -:1037B0006AE270E0CE0101960E94161814C0AE01B4 -:1037C0004F5F5F4F609175050E945D17BC010097C8 -:1037D00009F440C09091E800977F9093E8008981B8 -:1037E0009A810E9479188091E8008B778093E80095 -:1037F00031C0803879F58091E800877F8093E800B8 -:1038000080916C058093F1008091E8008E77809321 -:10381000E8000E940F191EC081111CC09091730511 -:103820009230C0F48091E800877F8093E800909305 -:103830006C050E940F1980916C05811106C0809162 -:10384000E30087FD02C081E001C084E08093700541 -:103850000E945B168091E80083FF0AC08091E80017 -:10386000877F8093E8008091EB0080628093EB007B -:10387000AA960FB6F894DEBF0FBECDBFDF91CF91F1 -:103880001F9108950895CF93809170058823A1F02A -:10389000C091E900CF709091EC00892F817090FD6C -:1038A00080E8C82B1092E9008091E80083FD0E9417 -:1038B000F11ACF70C093E900CF9108959093EC0472 -:1038C0008093EB0408958091EB049091EC040895AB -:1038D000E091EB04F091EC04309721F00190F0813D -:1038E000E02D099480E00895E091EB04F091EC0460 -:1038F000309721F00280F381E02D09940895E09142 -:10390000EB04F091EC04309721F00480F581E02D78 -:10391000099408952091E9043091EA0482179307ED -:1039200071F09093EA048093E904E091EB04F09144 -:10393000EC04309721F00680F781E02D099408957A -:103940002091E7043091E8048217930771F0909377 -:10395000E8048093E704E091EB04F091EC043097E5 -:1039600021F00084F185E02D0994089508950C94C8 -:10397000B61C0E943D280E94DA0D0E9407290C9473 -:10398000B82E5F926F927F928F929F92AF92BF926A -:10399000CF92DF92EF92FF920F931F93CF93DF931B -:1039A00000D000D01F92CDB7DEB70E941F0E98EF57 -:1039B000C92E94E0D92E04E010E0AA24A394B12CDF -:1039C000502E802F0E948D0E4C01F6017290629055 -:1039D0006F016826792661147104A1F40150110960 -:1039E00078F78FEF89838A831B820E944628816043 -:1039F000782F9D838C8349815A816B818D810E94B0 -:103A0000711D38C080914D0581FD0E94960E2EE0FB -:103A100030E07501022E02C0EE0CFF1C0A94E2F7A2 -:103A2000C70186219721892B09F129835A828E208B -:103A30009F2091E0892809F490E09B830E9446280A -:103A40008160782F9D838C8349815A816B818D8120 -:103A50000E94711D000F111FF801E251FB4F808180 -:103A60009181E826F926F182E08204C021503109D3 -:103A700080F6B4CF0E940A2C1091ED040E94681CBD -:103A80001817D1F00E94681C8093ED040F900F90DE -:103A90000F900F900F90DF91CF911F910F91FF909A -:103AA000EF90DF90CF90BF90AF909F908F907F90DE -:103AB0006F905F900C94C40D0F900F900F900F902B -:103AC0000F90DF91CF911F910F91FF90EF90DF90BA -:103AD000CF90BF90AF909F908F907F906F905F90AE -:103AE0000895CF93DF93CDB7DEB72B970FB6F89439 -:103AF000DEBF0FBECDBF4F83588769877A878B871C -:103B0000DE01119686E0FD0111928A95E9F785E0C4 -:103B1000FE01379601900D928A95E1F749815A810D -:103B20006B817C818D819E810E94E8232B960FB64C -:103B3000F894DEBF0FBECDBFDF91CF910895CF9334 -:103B4000882309F4C2C0C82F823859F40E94681C27 -:103B500081FDBBC089E30E94C2260E948F2789E3B2 -:103B60000CC0833879F40E94681C80FDAEC083E5E8 -:103B70000E94C2260E948F2783E50E940427CF91CE -:103B80000C948F27843859F40E94681C82FD9DC0D4 -:103B900087E40E94C2260E948F2787E4EECF8CEF35 -:103BA0008C0F813A48F48C2F0E94202E81118DC0F9 -:103BB0008C2F0E94C226E3CF80E28C0F883048F41D -:103BC000C77081E001C0880FCA95EAF70E944827B4 -:103BD000D6CF8BE58C0F833078F4C53A29F0C63AFE -:103BE00031F083E890E005C081E890E002C082E80F -:103BF00090E0CF910C948A1C88E58C0F833108F0FB -:103C000064C0C83A39F1C93A41F1CA3A49F1CB3AEC -:103C100051F1CC3A59F1CD3A61F1C03B69F1CE3A5C -:103C200071F1CF3A79F1C13B81F1C23B89F1C33BDC -:103C300091F1C43B99F1C53BA1F1C63BA9F1C73B4A -:103C4000B1F1C83BB9F1C93BC1F1CA3BC9F180E050 -:103C500090E038C082EE90E035C089EE90E032C04E -:103C60008AEE90E02FC085EB90E02CC086EB90E0D0 -:103C700029C087EB90E026C08CEC90E023C08DEC4F -:103C800090E020C083E891E01DC08AE891E01AC06E -:103C900082E991E017C084E991E014C081E292E0EA -:103CA00011C083E292E00EC084E292E00BC085E294 -:103CB00092E008C086E292E005C087E292E002C08E -:103CC0008AE292E0CF910C94A01CCF9108958823B2 -:103CD00009F44BC0823859F40E94681C81FF45C02A -:103CE00089E30E94C2260E948F2789E30CC0833893 -:103CF00071F40E94681C80FF38C083E50E94C226D0 -:103D00000E948F2783E50E9404270C948F27843814 -:103D100059F40E94681C82FF28C087E40E94C226D2 -:103D20000E948F2787E4EFCF9CEF980F913A58F3CA -:103D300090E2980F983050F4877091E001C0990F8D -:103D40008A95EAF7892F0E944E27DFCF9BE5980FCF -:103D5000933020F480E090E00C948A1C885A8331E0 -:103D600020F480E090E00C94A01C0895882321F0BA -:103D70000E9448270C948F270895882321F00E94E1 -:103D80004E270C948F2708957F928F929F92AF9227 -:103D9000BF92CF92DF92EF92FF920F931F93CF9338 -:103DA000DF931F92CDB7DEB77C01C62E772EFC01C4 -:103DB000058102950F70128111110E9465270E94E2 -:103DC000BB26882379F0112369F080E28C0D8830BE -:103DD00048F082E00E94A4260E94BB2691E0D82EE3 -:103DE000D92601C0D12CE72DE295EF70F0E0E6581E -:103DF000FF4F0C944933872D807F072D0F70882348 -:103E000011F00295007F112389F0002309F499C174 -:103E100080E28C0D883020F4802F0E94482703C058 -:103E2000802F0E9458270E948F278BC18C2D0E94C3 -:103E3000671E002309F4C3C180E28C0D883020F492 -:103E4000802F0E944E2703C0802F0E945E270E9471 -:103E50008F27B5C1872D807F972D9F70803211F4F9 -:103E6000892F03C0892F8295807FCC2021F0F1E03B -:103E7000CF16A1F01DC0112339F0002319F1013034 -:103E800009F50E9478279BC1002319F0013009F43D -:103E900096C189830E947B27898110C1112321F05B -:103EA000063008F08CC10EC0053008F088C106C18C -:103EB000112359F0002331F0F701958190FF41C1A2 -:103EC0009F7095830E94B61E7AC1002309F4F6C044 -:103ED0003EC1872D86958695837090E0009719F0F6 -:103EE000019761F06CC1112321F08C2D972D9370F7 -:103EF00002C080E090E00E948A1C61C1112321F081 -:103F00008C2D972D937002C080E090E00E94A01C41 -:103F100056C18C2D112319F00E94122B02C00E9451 -:103F20007A2B0E94FF2B4BC1872D837009F052C062 -:103F3000111145C18C2D829586958770880F880F49 -:103F40009C2D9F70892E912CA12CB12C082E04C081 -:103F5000880C991CAA1CBB1C0A94D2F7C4FE14C07E -:103F60000FE010E020E030E0B901A80104C0440FE8 -:103F7000551F661F771F8A95D2F7CB01BA0160954E -:103F800070958095909503C060E070E0CB01272D7F -:103F900026952695237030E02230310569F02330D4 -:103FA000310589F0682979298A299B292130310531 -:103FB00071F00E94302503C1682979298A299B293B -:103FC0000E944C25FCC00E943025C501B4010E940E -:103FD0001425F5C0112319F0872D817001C0869535 -:103FE000882309F4ECC08C2D829586958770880F04 -:103FF000880F9C2D9F70892E912CA12CB12C082EFE -:1040000004C0880C991CAA1CBB1C0A94D2F7C4FEDD -:1040100014C00FE010E020E030E0B901A80104C0B6 -:10402000440F551F661F771F8A95D2F7CB01BA013F -:10403000609570958095909503C060E070E0CB012D -:10404000272D269526952370422F50E042305105AA -:1040500069F04330510589F0682979298A299B291B -:104060004130510571F00E940A26A9C068297929BA -:104070008A299B290E942626A2C00E940A26C501E1 -:10408000B4010E94EE259BC08C2D90E0FC01E05E07 -:10409000F109E531F10508F050C0E657FF4F0C94E7 -:1040A00049330C2D0F70872D8F71112321F00E9441 -:1040B0008725802F07CF0E94A825802F0E94BD1E34 -:1040C0007EC0112341F0053008F079C0872D8F7133 -:1040D0000E94CD2574C0063008F071C0F7CF1123BF -:1040E00039F0872D8F710E94872569C01123C9F38C -:1040F000872D8F710E94A82562C0112329F0872D7A -:104100008F710E9472255BC00E94682558C01123E0 -:1041100051F0172D1F71812F0E94872563E0812F99 -:104120000E949B264CC081E00E94A426023008F425 -:1041300046C082E00E94A42642C0112331F0002331 -:1041400081F28C2D0E949F1D3AC0002389F28C2D94 -:104150000E94671E34C0472D4F706C2DC7010E940E -:104160004A060E948C242BC0111129C0472D4F7084 -:1041700050E042305105B9F04CF44115510581F041 -:1041800041305105E1F40E94E02E19C04330510541 -:1041900069F04430510599F48C2D0E94322F0FC0E4 -:1041A0000E94C92E0CC00E94FC2E09C00E940F2F35 -:1041B00006C0472D4F706C2DC7010E94650ADD2097 -:1041C000F9F00E94972680FD1BC0F70112820E9421 -:1041D00091260E948725C7010E940F210E949126E7 -:1041E0000F90DF91CF911F910F91FF90EF90DF9093 -:1041F000CF90BF90AF909F908F907F900C94A82508 -:104200000F90DF91CF911F910F91FF90EF90DF9072 -:10421000CF90BF90AF909F908F907F9008950F9315 -:104220001F93CF93DF93EC01888199812B813C818F -:10423000232BB9F09F3F11F48F3F99F0CE010E94DC -:104240006408882371F0688179818A810E948D26B3 -:104250008C010E9442260E940925B801CE010E94CD -:10426000C41EDF91CF911F910F9108950E94652781 -:104270000E9475270E943A270E948F270E94B02C27 -:104280000E94FF2B80E090E00E948A1C80E090E07A -:104290000C94A01C0E9455270C9436210E94822663 -:1042A000292F22952F7030E02C3031054CF42A3024 -:1042B00031056CF42250310922303105A8F407C0D1 -:1042C0002C30310569F02F30310551F00DC0803FA1 -:1042D00069F018F4803E40F409C0843F29F406C018 -:1042E00093FB882780F9089580E0089581E0089580 -:1042F000CF93DF9300D000D01F92CDB7DEB70F90E1 -:104300000F900F900F900F90DF91CF910895CF9362 -:10431000DF9300D000D000D0CDB7DEB726960FB621 -:10432000F894DEBF0FBECDBFDF91CF9108951F93EC -:10433000CF93DF93C091F80416E08091F904C81779 -:1043400099F0D0E01C9FF0011D9FF00D1124E65064 -:10435000FB4F4081518162817381848195810E94EC -:1043600087212196C770E9CFDF91CF911F910895E2 -:1043700040912A0550912B0560912C0570912D05D7 -:1043800080912E0590912F050C94872180912F0507 -:1043900082958F7009F054C080912C05882309F410 -:1043A0004FC08091F804A091F90460912A057091A2 -:1043B0002B0540912D0550912E05B6E08A1709F482 -:1043C0003FC090E041155105C1F17F3F11F46F3FAF -:1043D000A1F1B89FF001B99FF00D1124E650FB4FF9 -:1043E000218172132AC02081621327C022812111EA -:1043F00024C0238134812417350710F4215031095A -:10440000241B350B283C3105C0F420912F052F705B -:10441000206120932F0526E0289FF001299FF00DB1 -:104420001124E150FB4F80818F70806180838AE28C -:1044300095E00E940F210C94972101968770BECFC2 -:104440000895CF92DF92EF92FF920F931F93CF9335 -:10445000DF93CDB7DEB762970FB6F894DEBF0FBE1D -:10446000CDBF8C0185E0F801DE011D9601900D9213 -:104470008A95E1F7D8014C9111965C9111971296AB -:104480006C9112971396CD90DC90149730912A0579 -:1044900070912B0580912D0590912E05009709F4C0 -:1044A0006BC17F3F19F43F3F09F466C1E0902C05D2 -:1044B000EE2009F4C0C020912F05C816D90628F0B7 -:1044C000F601E81BF90BCF0104C0809590958C0D87 -:1044D0009D1DFF24F394883C910578F0F12C207FFA -:1044E00009F0C6C07C2DD98AC88A89890E947821A2 -:1044F0008AE295E00E940F21B1C0822F807F09F0EF -:1045000046C0751314C0341312C0611110C02F704F -:10451000206120932F050E94B8218AE295E00E9435 -:104520000F2180912F05D80115968C932EC0CD2890 -:1045300019F15F3F11F44F3FF9F0F62E61111CC0E5 -:104540008091F8042091F90436E0821709F45AC0EA -:1045500090E0389FF001399FF00D1124E650FB4F99 -:104560007181571306C07081471303C072817111A6 -:1045700003C001968770E9CFF62E662309F418C1AF -:1045800080912F05816080932F05F12C11C1751347 -:1045900008C0341306C0611104C080912F05D801F2 -:1045A000C3C04D875E878D859E856A8B0E944E2194 -:1045B0006A898823E1F16623D1F120912F05822FAA -:1045C00082958F7090E0029774F080912A05909107 -:1045D0002B0598878F831986DB86CA862C87CE01A8 -:1045E00007960E940F2186E0F801AAE2B5E001904B -:1045F0000D928A95E1F70E94C6210E94B821FF24FE -:10460000F394D6C04D875E878D859E850E94822655 -:10461000292F22952F7030E0223031050CF0BCC0DC -:104620009F7009F0B6C0805E883008F4C1C0C80130 -:104630000E940F21E4CFC816D90608F453C0F60132 -:10464000E81BF90BCF01883C910508F450C0F12C10 -:104650007C2DD98AC88A89890E947821EAE2F5E00E -:1046600086E0DF011D928A95E9F70E94B821A0C07B -:10467000751314C0341312C0611110C080912F053E -:10468000F8018583C8010E940F2186E0EAE2F5E087 -:10469000DF011D928A95E9F7FE2C8AC04D875E875F -:1046A0008D859E856A8B0E944E216A89882309F434 -:1046B000BECF662309F4BBCF20912F05822F8295B0 -:1046C0008F7090E002970CF48ECF80912A05909124 -:1046D0002B059A8389831B82DD82CC822E83CE01B7 -:1046E00001967FCF809590958C0D9D1DACCFF62EB9 -:1046F000662309F49CCF75132EC034132CC020916F -:104700002F0520FD1FC0822F82958F70D9F0D80110 -:1047100015962C9315978F3049F08F5F982F9295AF -:10472000907F822F8F70892B15968C93C8010E94E1 -:104730000F2186E0F801AAE2B5E001900D928A957A -:10474000E1F793CF86E0F801AAE2B5E001900D927F -:104750008A95E1F72DC04D875E878D859E850E94E5 -:104760004E21811140CF80912F05816080932F05CC -:10477000C8010E940F211CC0662309F458CF4D8741 -:104780005E878D859E850E944E21882309F44FCF38 -:104790002ACF811148CF0CC0243031050CF047CF0F -:1047A0009F7009F440CFF8019581907F09F03BCFCD -:1047B0008F2D62960FB6F894DEBF0FBECDBFDF918E -:1047C000CF911F910F91FF90EF90DF90CF900895C0 -:1047D0001F93CF93DF93CDB7DEB72C970FB6F89426 -:1047E000DEBF0FBECDBF4F83588769877A878B871F -:1047F0009C87CE0107960E942122882369F08F8131 -:1048000098852A853B85232BF1F19F3F09F063C0F2 -:104810008F3F09F060C037C086E0FE013796DE01A9 -:10482000119601900D928A95E1F76F817885EA855E -:10483000FB85309741F17F3F11F46F3F21F12091CB -:10484000F90430E0C9010196877099274091F80476 -:1048500050E08417950709F447C069837A83FD8384 -:10486000EC8396E0929FD001939FB00D1124A65047 -:10487000BB4FFE01319601900D929A95E1F780931E -:10488000F9040E94972116E08091F8049091F904B0 -:104890008917C1F1189FC001112486509B4F0E94B7 -:1048A0002122882379F1E091F8041E9FF001112460 -:1048B000E650FB4F408151816281738184819581F3 -:1048C0000E9487218091F80490E0019687709927D3 -:1048D0008093F804D9CF4F81588569857A858B8577 -:1048E0009C850E948721CFCF0E944A211092F90413 -:1048F0001092F804EAE2F5E086E0DF011D928A9565 -:10490000E9F7C1CF2C960FB6F894DEBF0FBECDBF2E -:10491000DF91CF911F910895EF92FF920F931F9314 -:10492000CF93DF938C01009709F46CC0F12CEE2437 -:10493000E394E8012196F8018491843740F48430AF -:1049400008F051C0813081F0823019F15BC08537A9 -:1049500009F444C0A8F19CE7980F903708F052C0C2 -:104960008F770E94671E41C00E5F1F4FFE01C491EA -:1049700080E28C0F883048F4C7708E2D01C0880FFC -:10498000CA95EAF70E94682714C08C2F0E949F1DC9 -:104990002DC00E5F1F4FFE01C49180E28C0F883046 -:1049A00058F4C7708E2D01C0880FCA95EAF70E948F -:1049B0006E270E948F271AC08C2F0E94671E16C078 -:1049C0000E5F1F4FFE01C491CC2381F08FE99FE061 -:1049D0000197F1F700C00000C150F6CF0E5F1F4FE6 -:1049E000FE01F49003C00E949F1D8E018F2D88232D -:1049F00009F49FCFEFE9FFE03197F1F700C0000025 -:104A00008150F5CFDF91CF911F910F91FF90EF90E3 -:104A100008950895609334057093350580933605A5 -:104A2000909337050C9436210F931F930091340512 -:104A3000109135052091360530913705DC01CB0109 -:104A4000802B912BA22BB32B8093340590933505AB -:104A5000A0933605B09337051F910F910C94362122 -:104A60000F931F9300913405109135052091360561 -:104A700030913705DC01CB0180239123A223B3239E -:104A80008093340590933505A0933605B093370590 -:104A90001F910F910C9436210F931F9300913405B1 -:104AA000109135052091360530913705DC01CB0199 -:104AB00080279127A227B32780933405909335054B -:104AC000A0933605B09337051F910F910C943621B2 -:104AD0001092300510923105109232051092330574 -:104AE0000C94362141E050E060E070E004C0440FD7 -:104AF000551F661F771F8A95D2F740933005509354 -:104B0000310560933205709333050C94362141E0F2 -:104B100050E060E070E004C0440F551F661F771F2F -:104B20008A95D2F78091300590913105A091320598 -:104B3000B0913305482B592B6A2B7B2B40933005C2 -:104B40005093310560933205709333050C943621F0 -:104B500041E050E060E070E004C0440F551F661F64 -:104B6000771F8A95D2F74095509560957095809102 -:104B7000300590913105A0913205B091330548235D -:104B800059236A237B23409330055093310560936A -:104B90003205709333050C94362141E050E060E01B -:104BA00070E004C0440F551F661F771F8A95D2F727 -:104BB0008091300590913105A0913205B091330577 -:104BC000482759276A277B274093300550933105A2 -:104BD00060933205709333050C9436210F931F9325 -:104BE0000091300510913105209132053091330547 -:104BF000DC01CB01802B912BA22BB32B80933005B2 -:104C000090933105A0933205B09333051F910F9116 -:104C10000C9436210F931F930091300510913105AC -:104C20002091320530913305DC01CB0180239123A3 -:104C3000A223B3238093300590933105A0933205CE -:104C4000B09333051F910F910C9436210F931F934E -:104C500000913005109131052091320530913305D6 -:104C6000DC01CB0180279127A227B3278093300551 -:104C700090933105A0933205B09333051F910F91A6 -:104C80000C9436210895CF92DF92EF92FF920F930A -:104C90001F93CF93DF938C01C0903405D0903505DE -:104CA000E0903605F0903705809130059091310500 -:104CB000A0913205B0913305C82AD92AEA2AFB2AE5 -:104CC000CFE1D0E0D701C6010C2E04C0B695A79560 -:104CD000979587950A94D2F780FF06C0B8018C2F6C -:104CE0000E94EA0C019721F4219760F780E001C04F -:104CF0008C2FDF91CF911F910F91FF90EF90DF905C -:104D0000CF900895CF93DF93EC010E944326BE011C -:104D10000E94EA0CDF91CF910895CB010E94822678 -:104D2000089580913805859585958595089580919C -:104D300038058770089598E0899F90011124262BEB -:104D4000209338050C94872520913805809582237F -:104D500080933805982F977069F430E0482F5527D5 -:104D600047FD50952417350729F08595859585953C -:104D70000C94A825089590913805977081E009F466 -:104D800080E0089590916503992321F09091660346 -:104D9000911109C02091670330916803F90132969F -:104DA0009FEF40E01FC0982F9695969596959F305F -:104DB00050F5E0916703F0916803E90FF11D8770EA -:104DC00021E030E0A90102C0440F551F8A95E2F7A7 -:104DD000CA019181892B818308959F3F39F04F5FEC -:104DE0004E3041F051915813F8CF0DC05111F7CF0B -:104DF000942FF5CF9F3F39F0F901E90FF11D97FD91 -:104E0000FA9582830895089590916503992321F07E -:104E100090916603911109C0209167033091680356 -:104E2000F9013296205F3F4F1FC0982F96959695B7 -:104E300096959F30F0F4E0916703F0916803E90FD5 -:104E4000F11D877021E030E0A90102C0440F551F19 -:104E50008A95E2F7CA01809591818923818308951B -:104E60003196E217F30729F090819813F9CF108259 -:104E7000F7CF089581E090E0E0916703F091680337 -:104E8000E80FF91F1082019680319105A9F7089566 -:104E900090914C05892B80934C05089580959091B5 -:104EA0004C05892380934C05089510924C05089574 -:104EB00090914B05892B80934B0508958095909197 -:104EC0004B05892380934B05089510924B05089557 -:104ED00090914A05892B80934A0508958095909179 -:104EE0004A05892380934A05089510924A0508953A -:104EF00080933905089510923905089580916703CC -:104F000090916803FC0131969C01205F3F4F80E047 -:104F1000919191118F5FE217F307D1F70895E09116 -:104F20006703F091680380914C058083E0916703EB -:104F3000F0916803908180914B05892B8083E091EB -:104F40006703F0916803908180914A05892B8083E3 -:104F500080913905882361F0E0916703F09168033F -:104F60009081892B80830E947E27811110923905C0 -:104F700080916703909168030C94741C20E0009763 -:104F800039F0AC0141505109842395232F5FF7CFAD -:104F9000822F089580917005843039F110924E056A -:104FA00020E488E190E00FB6F894A8958093600023 -:104FB0000FBE2093600080E00E942A0580E00E94DE -:104FC000C40D83B7817F846083BF83B7816083BF53 -:104FD0007894889583B78E7F83BF88E10FB6F89465 -:104FE00080936000109260000FBE089508950895A8 -:104FF00080E00E942A050E94F6270E941F0E0E9450 -:10500000F7270E94970E91E0811101C090E0892F4F -:1050100008950E944A2180E00E942A050E94B82E2D -:105020000E94681C0C94C40D1F920F920FB60F9231 -:1050300011248F939F93AF93BF9380914E0581115D -:1050400013C080914F0590915005A0915105B091EA -:1050500052054196A11DB11D80934F0590935005B7 -:10506000A0935105B0935205BF91AF919F918F913D -:105070000F900FBE0F901F90189582E084BD93E0B3 -:1050800095BD9AEF97BD80936E0008952FB7F89461 -:1050900080914F0590915005A0915105B091520516 -:1050A0002FBF0895CF92DF92EF92FF920F931F933D -:1050B0002FB7F89440914F055091500560915105DC -:1050C000709152052FBF6A017B01EE24FF248C01F1 -:1050D00020E030E0C016D106E206F30610F441509D -:1050E00051099A01281B390BC9011F910F91FF909B -:1050F000EF90DF90CF9008951F920F920FB60F920E -:1051000011248F939F93AF93BF9380914F059091FC -:105110005005A0915105B09152050196A11DB11DF8 -:1051200080934F0590935005A0935105B09352057D -:10513000BF91AF919F918F910F900FBE0F901F90D5 -:1051400018950E946019F8942FEF87EA91E6215094 -:1051500080409040E1F700C0000087E090EBDC0168 -:1051600080937B0590937C05A0937D05B0937E058D -:105170009CE088E10FB6F894A895809360000FBE7C -:1051800090936000FFCFCF92DF92EF92FF920F9348 -:105190001F93CF93DF93D82FC4E0EE24E394F12C38 -:1051A0008C2F0E948D0E6C010EE010E09701002EF6 -:1051B00002C0220F331F0A94E2F72C213D21232B3A -:1051C00049F0602F7C2F80E00E94660AD81302C04D -:1051D00081E006C00150110948F7C15008F780E08E -:1051E000DF91CF911F910F91FF90EF90DF90CF90C3 -:1051F0000895CF93C82F8CE20E94C328882321F002 -:105200008C2FCF910C94C32880E0CF910895CF9339 -:105210000E94582A811102C00E94342AC5E6C1505A -:1052200049F00E941F0E8FE39CE90197F1F700C03F -:105230000000F5CF89E20E94F928811113C18AE2AA -:105240000E94F92881110E94342A85E00E94F928E1 -:1052500081110E94A1280E94632A80934D0587E056 -:105260000E94F9288823A9F18BE10E94F92888235C -:1052700051F080914D0581FB222720F991E0922782 -:1052800090FB81F90EC08EE00E94F928882361F01E -:1052900080914D0582FB222720F991E0922790FB17 -:1052A00082F980934D0515C080E10E94F928909104 -:1052B0004D05882341F093FB222720F981E08227C6 -:1052C00080FB93F904C0892F809580FB90F990931F -:1052D0004D0580914D050E94672A0E94752A809392 -:1052E000790580EE0E94F928882341F080917905A4 -:1052F000982F909590FB80F98093790589E30E941F -:10530000F928882359F08091790581FB222720F91B -:1053100091E0922790FB81F98093790582EE0E94BB -:10532000F928882359F08091790582FB222720F9FA -:1053300091E0922790FB82F98093790586EE0E9496 -:10534000F928882359F08091790583FB222720F9D9 -:1053500091E0922790FB83F98093790583EE0E9478 -:10536000F928882359F08091790584FB222720F9B8 -:1053700091E0922790FB84F98093790585E30E9460 -:10538000F928882359F08091790585FB222720F997 -:1053900091E0922790FB85F98093790581E30E9443 -:1053A000F928882359F08091790586FB222720F976 -:1053B00091E0922790FB86F98093790581E10E9424 -:1053C000F928882359F08091790587FB222720F955 -:1053D00091E0922790FB87F9809379058091790578 -:1053E0000E94792A8091790587FB882780F980932C -:1053F000660387E20E94F928C82F8EE10E94F928EF -:105400008111C2608FE10E94F9288111C46080E29D -:105410000E94F9288111C86081E20E94F928811157 -:10542000C06182E20E94F9288111C06283E20E9479 -:10543000F9288111C06484E20E94F928882311F0C0 -:10544000C06802C0CC2329F08C2F0E94702A6C2FD8 -:1054500003C00E946C2A682F70E080E090E0CF913A -:105460000C940A25CF9108956DEE7EEF80E090E0D8 -:105470000E946F3360E082E090E00E945D3360E064 -:1054800083E090E00E945D3360E084E090E00E9461 -:105490005D3360E085E090E00E945D3360E086E08F -:1054A00090E00E945D336FEF87E090E00C945D33F5 -:1054B00080E090E00E94573321E08D3E9E4F09F03E -:1054C00020E0822F089582E090E00C944F33682F03 -:1054D00082E090E00C945D3383E090E00C944F33D5 -:1054E000682F83E090E00C945D3384E090E00C94AE -:1054F0004F33682F84E090E00C945D3386E090E0B9 -:105500000C944F33682F86E090E00C945D3387E075 -:1055100090E00C944F33682F87E090E00C945D335B -:105520008091550580FF0BC060916C0385E0689FFA -:10553000B001112475956795759567952BC081FF0E -:1055400009C060916C0385E0689FB00111247595D6 -:10555000679520C082FF07C060916C0385E0689F5B -:10556000B001112417C0909156059923D1F0609194 -:105570006B03961788F720916C0385E0289F9001B4 -:105580001124929FA001939F500D112470E0CA0135 -:105590000E9435336038710540F46115710539F0AA -:1055A00002C065E070E0862F08958FE7089581E0DE -:1055B00008958091550580FF08C060916A0370E0EE -:1055C000759567957595679521C081FF06C06091B7 -:1055D0006A0370E07595679519C082FF04C06091F9 -:1055E0006A0370E010C0909156059923C1F0609154 -:1055F00069039617A0F780916A03899FC00111245F -:1056000070E00E9435336038710528F4611571052A -:1056100021F0862F08958FE7089581E0089561E0D5 -:1056200070E0F4CF803F21F40E94902A819504C05D -:10563000813F29F40E94902A809359050895823F62 -:1056400021F40E94902A819504C0833F29F40E948E -:10565000902A809358050895893F19F40E94D92A09 -:1056600005C08A3F31F40E94D92A819580935A055A -:1056700008958B3F21F40E94D92A819504C08C3F64 -:1056800029F40E94D92A80935B050895843F21F470 -:1056900080915705816017C0853F21F4809157059F -:1056A000826011C0863F21F48091570584600BC051 -:1056B000873F21F480915705886005C0883F31F409 -:1056C0008091570580618093570508958D3F21F49F -:1056D0008091550581600BC08E3F21F48091550566 -:1056E000826005C08F3F29F48091550584608093C6 -:1056F00055050895803F39F48091590587FF6CC0A6 -:105700001092590569C0813F29F4809159051816F6 -:10571000BCF362C090915805823F29F497FF5CC0AA -:105720001092580559C0833F19F41916CCF354C090 -:10573000893F41F480915A0518160CF04DC0109223 -:105740005A054AC08A3F29F480915A0587FF44C010 -:10575000F6CF8B3F39F480915B0587FF3DC01092F7 -:105760005B053AC08C3F29F480915B051816BCF3A9 -:1057700033C0843F21F4809157058E7F17C0853F49 -:1057800021F4809157058D7F11C0863F21F48091CF -:1057900057058B7F0BC0873F21F480915705877F8A -:1057A00005C0883F31F4809157058F7E809357055F -:1057B00013C08D3F21F4809155058E7F0BC08E3F25 -:1057C00021F4809155058D7F05C08F3F29F480918C -:1057D00055058B7F809355058091580581110EC02A -:1057E0008091590581110AC080915A05811106C026 -:1057F00080915B05811102C010925605089587E5DE -:1058000095E00E947F1C0E94462890935405809347 -:10581000530508951F93CF93DF9380915305909183 -:1058200054050E945228AC0190915605992321F00D -:1058300020916D0330E006C020916E038AE0289F1E -:10584000900111244217530708F486C0809158052F -:10585000C0915905D0915A0510915B05811107C07F -:10586000C11176C0D11174C0111172C075C09F3FB3 -:1058700019F09F5F90935605181624F40E94902A01 -:10588000809358058091580587FF05C00E94902A93 -:105890008195809358051C1624F40E94902A8093C9 -:1058A00059058091590587FF05C00E94902A81956E -:1058B0008093590560915805662339F1C0915905C7 -:1058C000CC2319F1772767FD7095872F972F0E94BA -:1058D000573023E333E343E35FE30E9467310E94E1 -:1058E0002430609358056C2F772767FD7095872FBC -:1058F000972F0E94573023E333E343E35FE30E9493 -:1059000067310E942430609359051D1624F40E94CB -:10591000D92A80935A0580915A0587FF05C00E94B5 -:10592000D92A819580935A05111624F40E94D92A08 -:1059300080935B0580915B0587FF05C00E94D92A93 -:10594000819580935B05DF91CF911F910C94FF2B84 -:105950009F3F09F08ECF96CFDF91CF911F91089591 -:10596000E7E5F5E085E0DF011D928A95E9F7109201 -:105970005605109255050895833081F128F4813041 -:1059800059F08230D1F00895853009F449C0B8F15A -:10599000863009F456C0089580916E03262F30E0BA -:1059A000280F311D2F3F310524F4680F60936E03DB -:1059B00008958FEF80936E03089580916D03262FD5 -:1059C00030E0280F311D2F3F310524F4680F60931C -:1059D0006D0308958FEF80936D03089580916C039C -:1059E000262F30E0280F311D2F3F310524F4680F9A -:1059F00060936C0308958FEF80936C0308958091FA -:105A00006B03262F30E0280F311D2F3F310524F482 -:105A1000680F60936B0308958FEF80936B03089575 -:105A200080916A03262F30E0280F311D2F3F31056A -:105A300024F4680F60936A0308958FEF80936A03DC -:105A4000089580916903262F30E0280F311D2F3FE4 -:105A5000310524F4680F6093690308958FEF8093F4 -:105A600069030895833011F128F4813049F08230C0 -:105A700091F00895853081F120F18630C1F10895CB -:105A800080916E03681720F4861B80936E0308953F -:105A900010926E03089580916D03681720F4861BA1 -:105AA00080936D03089510926D03089580916C03A7 -:105AB000681720F4861B80936C03089510926C0382 -:105AC000089580916B03681720F4861B80936B0305 -:105AD000089510926B03089580916A03681720F46B -:105AE000861B80936A03089510926A03089580913B -:105AF0006903681720F4861B809369030895109248 -:105B0000690308950F931F93482F50E0FA013597CA -:105B1000EF33F10508F08CC0E156FF4F0C94493388 -:105B20000E94631C892B59F00E94631C90935D05B1 -:105B300080935C050E944A2180E090E004C080913F -:105B40005C0590915D050E945E1C6BC080914D05C7 -:105B5000817F8E7F80934D0581E080935F0569C0D2 -:105B60000E944A210E94C70E0E94BB070E94A128E2 -:105B700058C090914D05892F8095817080FB90F9D8 -:105B800029F09660986090934D0553C0997F977F58 -:105B900090934D0546C080914D0581FB222720F949 -:105BA00091E0922790FB81F980934D059923C9F1EB -:105BB00080914D05816080934D0533C080914D05E6 -:105BC00082FB222720F991E0922790FB82F9ECCF0B -:105BD00080914D0583FB222720F991E0922790FBCD -:105BE00083F9E2CF0E944A219091660381E08927E0 -:105BF0008093660316C0895301C08D5141E050E087 -:105C000060E070E08A019B0104C0000F111F221F99 -:105C1000331F8A95D2F7C901B8010E940A250E9454 -:105C20004A2181E006C061E070E080E090E0F5CFBD -:105C300080E01F910F91089580E0089580E008951D -:105C4000CF93C82F80915F05813069F018F08230C2 -:105C5000C9F184C0E0916703F091680380818232CA -:105C600009F07EC007C0E0916703F091680380816E -:105C7000823261F48C2F0E941C2E811104C08C2F63 -:105C80000E94822D1DC081E090E01AC08C2F0E94DE -:105C90001E2E811114C0C43179F048F4CB3079F054 -:105CA000C03109F061C082E080935F0508C0C9324D -:105CB00019F0C83321F058C010925F0555C081E03B -:105CC000817054C0C93291F120F5C43179F1B0F43A -:105CD000C73009F047C08EE180936E0382E3809362 -:105CE0006D038AE080936C0384E180936B0388E00A -:105CF00080936A0388E28093690334C0CE51C63032 -:105D000088F5EC2FF0E0E65FFB4F808180935E0525 -:105D100029C0CE34E9F020F4CB3421F56AE013C079 -:105D2000C13579F0C235F1F461E00DC080915E05B6 -:105D3000882319F010925E0515C081E080935F05FD -:105D400015C061E006C080915E050E94BC2C0AC0AF -:105D50006AE080915E050E94322D04C010925F05BA -:105D600080E004C081E002C080E0AACFCF91089516 -:105D70000E94582A811102C00E94342A0E947E2A61 -:105D800080937A0580FF02C0869501C080E00C9464 -:105D90002A0580917A05982F9695292F30E0233097 -:105DA00031054CF49F5F990F8170892B816080933E -:105DB0007A050E94822A80917A0586950C942A059C -:105DC00080917A05982F969591F09158990F81704E -:105DD000892B80937A058E7F91E009F490E0809181 -:105DE0007A0590FB80F980937A050E94822A80913F -:105DF0007A0586950C942A0580917A05982F9095BE -:105E000090FB80F980937A050E94822A80917A051E -:105E100080FF02C0869501C080E00C942A05909115 -:105E20007A05892F86958F5F8F779170843028F45B -:105E3000880F892B80937A0502C090937A05809110 -:105E40007A058E7F91E009F490E080917A0590FBCD -:105E500080F980937A050E94822A80917A0586953E -:105E60000C942A0520917A05922F96958927982FD0 -:105E7000990F822F8170892B80937A058E7F91E014 -:105E800009F490E080917A0590FB80F980937A057F -:105E90000E94822A80917A0586950C942A05809129 -:105EA0007A05869508955058BB27AA270ED0D1C1F0 -:105EB000C2D130F0C7D120F031F49F3F11F41EF46D -:105EC000B7C10EF4E095E7FB9FC1E92FD3D180F372 -:105ED000BA17620773078407950718F071F49EF5E7 -:105EE000EBC10EF4E0950B2EBA2FA02D0B01B901DA -:105EF00090010C01CA01A0011124FF27591B99F040 -:105F0000593F50F4503E68F11A16F040A22F232F4B -:105F1000342F4427585FF3CF469537952795A7959B -:105F2000F0405395C9F77EF41F16BA0B620B730B42 -:105F3000840BBAF09150A1F0FF0FBB1F661F771FB3 -:105F4000881FC2F70EC0BA0F621F731F841F48F468 -:105F5000879577956795B795F7959E3F08F0B3CFEE -:105F60009395880F08F09927EE0F979587950895D8 -:105F700027D108F481E008950CD06BC163D140F0C3 -:105F80005AD130F021F45F3F19F03EC1511195C153 -:105F90004FC170D198F39923C9F35523B1F3951BE1 -:105FA000550BBB27AA2762177307840738F09F5F3A -:105FB0005F4F220F331F441FAA1FA9F333D00E2EA9 -:105FC0003AF0E0E830D091505040E695001CCAF716 -:105FD00029D0FE2F27D0660F771F881FBB1F2617DB -:105FE00037074807AB07B0E809F0BB0B802DBF01AE -:105FF000FF2793585F4F2AF09E3F510568F004C178 -:106000005CC15F3FECF3983EDCF38695779567952E -:10601000B795F7959F5FC9F7880F911D969587955E -:1060200097F90895E1E0660F771F881FBB1F62177D -:1060300073078407BA0720F0621B730B840BBA0B3B -:10604000EE1F88F7E095089504D06894B11135C12A -:10605000089518D188F09F5790F0B92F9927B7511C -:10606000A0F0D1F0660F771F881F991F1AF0BA951C -:10607000C9F712C0B13081F01FD1B1E008951CC141 -:10608000672F782F8827B85F39F0B93FCCF3869512 -:1060900077956795B395D9F73EF49095809570956F -:1060A00061957F4F8F4F9F4F0895E89409C097FBEC -:1060B0003EF490958095709561957F4F8F4F9F4FDF -:1060C0009923A9F0F92F96E9BB279395F695879523 -:1060D00077956795B795F111F8CFFAF4BB0F11F4E6 -:1060E00060FF1BC06F5F7F4F8F4F9F4F16C088238D -:1060F00011F096E911C0772321F09EE8872F762FC3 -:1061000005C0662371F096E8862F70E060E02AF003 -:106110009A95660F771F881FDAF7880F96958795EF -:1061200097F9089588D018F011F08CD038F480C019 -:10613000C4C0E92F9FD0B0F35523C9F3E7FB621722 -:10614000730784079507A8F199F3E92FFF278823A0 -:106150002AF03197660F771F881FDAF7952F55279A -:10616000442332F091505040220F331F441FD2F786 -:10617000BB27E91BF50B621B730B840BB109C1F242 -:1061800022F4620F731F841FB11D31972AF0660F2E -:10619000771F881FBB1FEFCF915050405AF041F03E -:1061A000882332F0660F771F881F91505040C1F747 -:1061B000939530C08695779567959F5FD9F7F8CF0F -:1061C000990F0008550FAA0BE0E8FEEF1616170608 -:1061D000E807F907C0F012161306E407F50798F070 -:1061E000621B730B840B950B39F40A2661F0232B89 -:1061F000242B252B21F408950A2609F4A140A69505 -:106200008FEF811D811D089597F99F6780E870E0E9 -:1062100060E008959F3F31F0915020F48795779585 -:106220006795B795880F911D9695879597F908956D -:106230009FEF80EC089500240A941616170618069E -:106240000906089500240A9412161306140605067A -:106250000895092E0394000C11F4882352F0BB0F0B -:1062600040F4BF2B11F460FF04C06F5F7F4F8F4F6E -:106270009F4F089557FD9058440F551F59F05F3FA9 -:1062800071F04795880F97FB991F61F09F3F79F058 -:1062900087950895121613061406551FF2CF4695DA -:1062A000F1DF08C0161617061806991FF1CF86955C -:1062B0007105610508940895E894BB276627772740 -:1062C000CB0197F908957CDF08F48FEF08950BD088 -:1062D000C0CFB1DF28F0B6DF18F0952309F094CFD6 -:1062E000A7CF1124EACFC6DFA0F3959FD1F3950F76 -:1062F00050E0551F629FF001729FBB27F00DB11D4A -:10630000639FAA27F00DB11DAA1F649F6627B00DD9 -:10631000A11D661F829F2227B00DA11D621F739FC2 -:10632000B00DA11D621F839FA00D611D221F749FD0 -:106330003327A00D611D231F849F600D211D822F17 -:10634000762F6A2F11249F5750408AF0E1F088235E -:106350004AF0EE0FFF1FBB1F661F771F881F91506B -:106360005040A9F79E3F510570F04ECFA6CF5F3F3A -:10637000ECF3983EDCF3869577956795B795F7959E -:10638000E7959F5FC1F7FE2B880F911D9695879526 -:1063900097F90895FA01EE0FFF1F30962105310598 -:1063A00099F16115710561F48038BFE39B0749F1EC -:1063B00068949038810561F08038BFEF9B0741F009 -:1063C000992342F5FF3FE1053105210511F1E894DC -:1063D0000894E795D901AA2329F4AB2FBE2FF85FC3 -:1063E000D0F310C0FF5F70F4A695E0F7F73950F0D6 -:1063F00019F0FF3A38F49F779F930CD00F9007FC69 -:10640000905808953EF014CF60E070E080E89FE37C -:1064100008954FE79F775F934F933F932F939ED0BD -:106420002F913F914F915F9152DF05C019F40EF00B -:10643000EBCE42CFFDCE26DFC8F39638C0F707F883 -:106440000F92E8942BE33AEA48EB5FE74EDF0F92B6 -:106450000F920F924DB75EB70F92C0D0ECEBF1E008 -:1064600016D04F915F91EF91FF91E595EE1FFF1FC1 -:1064700049F0FE57E0684427EE0F441FFA95E1F714 -:106480004195550B32D00F9007FE26C00895DF933B -:10649000CF931F930F93FF92EF92DF927B018C01BA -:1064A000689405C0DA2EEF011EDFFE01E894A59185 -:1064B0002591359145915591AEF3EF0106DDFE0131 -:1064C0009701A801DA9479F7DF90EF90FF900F9190 -:1064D0001F91CF91DF9108959B01AC0160E070E0C6 -:1064E00080E89FE349CD90CE95CECCDEE8F39923AA -:1064F000D9F3940F511DBBF39150504094F059F0D3 -:10650000882332F0660F771F881F91505040C1F7E3 -:106510009E3F510544F7880F911D9695879597F9F1 -:1065200008955F3FACF0983E9CF0BB278695779529 -:106530006795B79508F4B1609395C1F7BB0F58F70D -:1065400011F460FFE8CF6F5F7F4F8F4F9F4FE3CF16 -:10655000B4CE0EF05FCE6CCE689456CE93DEC8F308 -:106560009923D1F3C6F3DF93CF931F930F93FF9239 -:10657000C92FDD2788232AF02197660F771F881FF0 -:10658000DAF720E030E040E85FEB9FE3883920F065 -:10659000803E30F021968F7787DCE4EEF1E003C097 -:1065A00083DCE1E1F2E073DF8B01BE01EC01FB2E45 -:1065B0006F5771097595771F880B990B78DD28E166 -:1065C00032E741E35FE38FDEAF2D9801AE01FF902C -:1065D0000F911F91CF91DF9178DC3BCEFA01DC0166 -:1065E000AA0FBB1F9B01AC01BF5728F422273327FA -:1065F000442750781FC0B75188F4AB2F002446952C -:1066000037952795011CA395D2F3002069F0220F3E -:10661000331F441FB395DAF30DD045CC61307105BB -:10662000A0E88A07B94630F49B01AC0166277727BA -:1066300088279078309621F02083318342835383DA -:106640000895AA1BBB1B51E107C0AA1FBB1FA617B9 -:10665000B70710F0A61BB70B881F991F5A95A9F70B -:1066600080959095BC01CD01089597FB072E16F4F7 -:10667000009407D077FD09D00E94213307FC05D094 -:106680003EF4909581959F4F0895709561957F4F49 -:106690000895EE0FFF1F0590F491E02D0994F999EC -:1066A000FECF92BD81BDF89A992780B50895A8E1E3 -:1066B000B0E042E050E00C947733262FF999FECFFA -:1066C00092BD81BDF89A019700B4021639F01FBA45 -:1066D00020BD0FB6F894FA9AF99A0FBE0895019664 -:1066E000272F0E945E330C945D33DC01CB01FC014B -:1066F000F999FECF06C0F2BDE1BDF89A319600B41B -:0E6700000D9241505040B8F70895F894FFCF25 -:10670E00A4D0A443000000417BD49243000000417A -:10671E007BD4924300000041A4D0A443000000416A -:10672E00A4D02444000000411FD5124400000041B3 -:10673E001FD5124400000041A4D0244400000041A3 -:10674E00A4F076430000004100005C4300000041CD -:10675E0000005C4300000041A4F0764300000041BD -:10676E0000005C440000004148F176440000004106 -:10677E005C978A44000000411FD5924400000041FE -:10678E0052D0A444000000415CFFB8440000004118 -:10679E000AA7CF44000000410000DC440000004185 -:1067AE00A4D082430000C0417BD49243000000413C -:1067BE00A4D0A4430000C041A4D0824300000041F5 -:1067CE00A4D0A44300008041A4D0824300008041A5 -:1067DE00A4D0A443000080411FD512440000804184 -:1067EE00A4D024440000804100D002440000804127 -:1067FE00A4D08243000080410000C44300008041C9 -:10680E000AA7CF44000000410000DC440000004114 -:10681E00000000000000804052D02445000040419E -:10682E0000000000000080400AA74F4500004041D4 -:10683E000AA7CF44000000410000DC4400000041E4 -:10684E00000000000000804052D0244500000041AE -:10685E0000000000000080405CFF38450000004151 -:10686E00000000000000804052D02445000000418E -:10687E000AA7CF44000000410000DC4400000041A4 -:10688E00000000000000804052D0244500008041EE -:10689E00A4F0F6430000C0417BD4924300000041B7 -:1068AE0048F176440000804100005C440000004244 -:1068BE005CFF434400008041A4F0F6430000C04159 -:1068CE001FD51244000000415CFF4344000080418C -:1068DE005CFF384400000042A4D0A4430000804175 -:1068EE00A4D0A44300008041719DAE4300008041BE -:1068FE000000C443000080410000C44300008041FA -:10690E00719DAE4300008041A4D0A443000080419D -:10691E007BD4924300008041A4D08243000080418A -:10692E00A4D08243000080417BD49243000080417A -:10693E00A4D0A44300008041A4D0A4430000C041D1 -:10694E007BD49243000000417BD49243000000426E -:10695E00640007000CFF0000003F646715F515D2B8 -:10696E00159E156A1501013A052808140A321E00F3 -:10697E0002040507090B0C0E1011131517181A1C1B -:10698E001D1F2123242628292B2D2F303234353755 -:10699E00393B1F0F03764F5F6F7F49694379392962 -:1069AE001909595363333149803F5D8B803FF8BFDE -:1069BE00803FCAE1803F73ED803FCAE1803FF8BF60 -:1069CE00803F5D8B803F3149803F0000803FF16DFD -:1069DE007F3F75EA7E3F4C827E3F833F7E3F842819 -:1069EE007E3F833F7E3F4C827E3F75EA7E3FF16D58 -:1069FE007F3F0000803F3F4D3639C7087A08440874 -:106A0E000B089E07B707D007E90701020304050626 -:046A1E00070809005C -:00000001FF diff --git a/keyboards/atomic/keymaps/pvc/config.h b/keyboards/atomic/keymaps/pvc/config.h index 1473aac34..70353323b 100644 --- a/keyboards/atomic/keymaps/pvc/config.h +++ b/keyboards/atomic/keymaps/pvc/config.h @@ -46,6 +46,9 @@ along with this program. If not, see . #define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7, D3, D2, D1 } #define UNUSED_PINS +#define BACKLIGHT_PIN B7 +#define BACKLIGHT_BREATHING + /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW diff --git a/keyboards/atomic/readme.md b/keyboards/atomic/readme.md new file mode 100644 index 000000000..ab1e7ba1f --- /dev/null +++ b/keyboards/atomic/readme.md @@ -0,0 +1,25 @@ +Atomic keyboard firmware +====================== +DIY/Assembled ortholinear 60% keyboard by [Ortholinear Keyboards](http://ortholinearkeyboards.com). + +## Quantum MK Firmware + +For the full Quantum feature list, see [the parent readme.md](/readme.md). + +## Building + +Download or clone the whole firmware and navigate to the keyboards/atomic folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use `make dfu` to program your PCB once you hit the reset button. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default +To build with the default keymap, simply run `make`. + +### Other Keymaps +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a file in the keymaps folder named `.c` and see keymap document (you can find in top readme.md) and existent keymap files. + +To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: +``` +$ make KEYMAP=[default|jack|] +``` +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboards/atreus/README.md b/keyboards/atreus/README.md deleted file mode 100644 index 86e6e1f0c..000000000 --- a/keyboards/atreus/README.md +++ /dev/null @@ -1,186 +0,0 @@ -atreus keyboard firmware -====================== - -## Quantum MK Firmware - -You have access to a bunch of goodies! Check out the Makefile to enable/disable some of the features. Uncomment the `#` to enable them. Setting them to `no` does nothing and will only confuse future you. - - BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality - MIDI_ENABLE = yes # MIDI controls - # UNICODE_ENABLE = yes # Unicode support - this is commented out, just as an example. You have to use #, not // - BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID - -## Atreus specific information - -These configuration files are specifically for the Atreus keyboards created by Phil Hagelberg (@technomancy). This keyboard is available in two variants: one powered by a Teensy 2, one powered by an A-Star. This repository currently assumes that you have an A-Star powered Atreus. If you are using a Teensy2, specify that by adding `TEENSY2=yes` to your `make` commands. - -If you are coming from the [atreus-firmware](https://github.com/technomancy/atreus-firmware), we've also brought forward the `make upload` command for you to use. - -## Quick aliases to common actions - -Your keymap can include shortcuts to common operations (called "function actions" in tmk). - -### Switching and toggling layers - -`MO(layer)` - momentary switch to *layer*. As soon as you let go of the key, the layer is deactivated and you pop back out to the previous layer. When you apply this to a key, that same key must be set as `KC_TRNS` on the destination layer. Otherwise, you won't make it back to the original layer when you release the key (and you'll get a keycode sent). You can only switch to layers *above* your current layer. If you're on layer 0 and you use `MO(1)`, that will switch to layer 1 just fine. But if you include `MO(3)` on layer 5, that won't do anything for you -- because layer 3 is lower than layer 5 on the stack. - -`LT(layer, kc)` - momentary switch to *layer* when held, and *kc* when tapped. Like `MO()`, this only works upwards in the layer stack (`layer` must be higher than the current layer). - -`TG(layer)` - toggles a layer on or off. As with `MO()`, you should set this key as `KC_TRNS` in the destination layer so that tapping it again actually toggles back to the original layer. Only works upwards in the layer stack. - -### Fun with modifier keys - -* `LSFT(kc)` - applies left Shift to *kc* (keycode) - `S(kc)` is an alias -* `RSFT(kc)` - applies right Shift to *kc* -* `LCTL(kc)` - applies left Control to *kc* -* `RCTL(kc)` - applies right Control to *kc* -* `LALT(kc)` - applies left Alt to *kc* -* `RALT(kc)` - applies right Alt to *kc* -* `LGUI(kc)` - applies left GUI (command/win) to *kc* -* `RGUI(kc)` - applies right GUI (command/win) to *kc* - -You can also chain these, like this: - - LALT(LCTL(KC_DEL)) -- this makes a key that sends Alt, Control, and Delete in a single keypress. - -The following shortcuts automatically add `LSFT()` to keycodes to get commonly used symbols. Their long names are also available and documented in `/quantum/keymap_common.h`. - - KC_TILD ~ - KC_EXLM ! - KC_AT @ - KC_HASH # - KC_DLR $ - KC_PERC % - KC_CIRC ^ - KC_AMPR & - KC_ASTR * - KC_LPRN ( - KC_RPRN ) - KC_UNDS _ - KC_PLUS + - KC_LCBR { - KC_RCBR } - KC_PIPE | - KC_COLN : - -`MT(mod, kc)` - is *mod* (modifier key - MOD_LCTL, MOD_LSFT) when held, and *kc* when tapped. In other words, you can have a key that sends Esc (or the letter O or whatever) when you tap it, but works as a Control key or a Shift key when you hold it down. - -These are the values you can use for the `mod` in `MT()` (right-hand modifiers are not available): - - * MOD_LCTL - * MOD_LSFT - * MOD_LALT - * MOD_LGUI - -These can also be combined like `MOD_LCTL | MOD_LSFT` e.g. `MT(MOD_LCTL | MOD_LSFT, KC_ESC)` which would activate Control and Shift when held, and send Escape when tapped. - -We've added shortcuts to make common modifier/tap (mod-tap) mappings more compact: - - * `CTL_T(kc)` - is LCTL when held and *kc* when tapped - * `SFT_T(kc)` - is LSFT when held and *kc* when tapped - * `ALT_T(kc)` - is LALT when held and *kc* when tapped - * `GUI_T(kc)` - is LGUI when held and *kc* when tapped - * `ALL_T(kc)` - is Hyper (all mods) when held and *kc* when tapped. To read more about what you can do with a Hyper key, see [this blog post by Brett Terpstra](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) - -### Temporarily setting the default layer - -`DF(layer)` - sets default layer to *layer*. The default layer is the one at the "bottom" of the layer stack - the ultimate fallback layer. This currently does not persist over power loss. When you plug the keyboard back in, layer 0 will always be the default. It is theoretically possible to work around that, but that's not what `DF` does. - -### Remember: These are just aliases - -These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk ACTION_* functions, please see the [TMK documentation](https://github.com/jackhumbert/qmk_firmware/blob/master/tmk_core/doc/keymap.md#2-action). - -Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - the benefit here is being able to use more than 32 function actions (up to 4096), if you happen to need them. - -## Macro shortcuts: Send a whole string when pressing just one key - -Instead of using the `ACTION_MACRO` function, you can simply use `M(n)` to access macro *n* - *n* will get passed into the `action_get_macro` as the `id`, and you can use a switch statement to trigger it. This gets called on the keydown and keyup, so you'll need to use an if statement testing `record->event.pressed` (see keymap_default.c). - -```c -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // this is the function signature -- just copy/paste it into your keymap file as it is. -{ - switch(id) { - case 0: // this would trigger when you hit a key mapped as M(0) - if (record->event.pressed) { - return MACRO( I(255), T(H), T(E), T(L), T(L), W(255), T(O), END ); // this sends the string 'hello' when the macro executes - } - break; - } - return MACRO_NONE; -}; -``` -A macro can include the following commands: - -* I() change interval of stroke in milliseconds. -* D() press key. -* U() release key. -* T() type key(press and release). -* W() wait (milliseconds). -* END end mark. - -So above you can see the stroke interval changed to 255ms between each keystroke, then a bunch of keys being typed, waits a while, then the macro ends. - -Note: Using macros to have your keyboard send passwords for you is a bad idea. - -### Additional keycode aliases for software-implemented layouts (Colemak, Dvorak, etc) - -Everything is assuming you're in Qwerty (in software) by default, but there is built-in support for using a Colemak or Dvorak layout by including this at the top of your keymap: - - #include "keymap_.h" - -Where is "colemak" or "dvorak". After including this line, you will get access to: - - * `CM_*` for all of the Colemak-equivalent characters - * `DV_*` for all of the Dvorak-equivalent characters - -These implementations assume you're using Colemak or Dvorak on your OS, not on your keyboard - this is referred to as a software-implemented layout. If your computer is in Qwerty and your keymap is in Colemak or Dvorak, this is referred to as a firmware-implemented layout, and you won't need these features. - -To give an example, if you're using software-implemented Colemak, and want to get an `F`, you would use `CM_F` - `KC_F` under these same circumstances would result in `T`. - -## Additional language support - -In `quantum/keymap_extras/`, you'll see various language files - these work the same way as the alternative layout ones do. Most are defined by their two letter country/language code followed by an underscore and a 4-letter abbreviation of its name. `FR_UGRV` which will result in a `ù` when using a software-implemented AZERTY layout. It's currently difficult to send such characters in just the firmware (but it's being worked on - see Unicode support). - -## Unicode support - -You can currently send 4 hex digits with your OS-specific modifier key (RALT for OSX with the "Unicode Hex Input" layout) - this is currently limited to supporting one OS at a time, and requires a recompile for switching. 8 digit hex codes are being worked on. The keycode function is `UC(n)`, where *n* is a 4 digit hexidecimal. Enable from the Makefile. - -## Other firmware shortcut keycodes - -* `RESET` - puts the MCU in DFU mode for flashing new firmware (with `make dfu`) -* `DEBUG` - the firmware into debug mode - you'll need hid_listen to see things -* `BL_ON` - turns the backlight on -* `BL_OFF` - turns the backlight off -* `BL_` - sets the backlight to level *n* -* `BL_INC` - increments the backlight level by one -* `BL_DEC` - decrements the backlight level by one -* `BL_TOGG` - toggles the backlight -* `BL_STEP` - steps through the backlight levels - -Enable the backlight from the Makefile. - -## MIDI functionalty - -This is still a WIP, but check out `quantum/keymap_midi.c` to see what's happening. Enable from the Makefile. - -## Bluetooth functionality - -This requires [some hardware changes](https://www.reddit.com/r/MechanicalKeyboards/comments/3psx0q/the_planck_keyboard_with_bluetooth_guide_and/?ref=search_posts), but can be enabled via the Makefile. The firmware will still output characters via USB, so be aware of this when charging via a computer. It would make sense to have a switch on the Bluefruit to turn it off at will. - -## Building - -Download or clone the whole firmware and navigate to the keyboards/planck folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use `make dfu` to program your PCB once you hit the reset button. - -Depending on which keymap you would like to use, you will have to compile slightly differently. - -### Default -To build with the default keymap, simply run `make`. - -### Other Keymaps -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` and see keymap document (you can find in top README.md) and existent keymap files. - -To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: -``` -$ make KEYMAP=[default|jack|] -``` -Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboards/atreus/atreus.c b/keyboards/atreus/atreus.c index 9d1de631b..263ec8732 100644 --- a/keyboards/atreus/atreus.c +++ b/keyboards/atreus/atreus.c @@ -1,29 +1 @@ -#include "atreus.h" - -__attribute__ ((weak)) -void matrix_init_user(void) { - // leave these blank -}; - -__attribute__ ((weak)) -void matrix_scan_user(void) { - // leave these blank -}; - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - - if (matrix_init_user) { - (*matrix_init_user)(); - } -}; - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - - if (matrix_scan_user) { - (*matrix_scan_user)(); - } -}; +#include "atreus.h" \ No newline at end of file diff --git a/keyboards/atreus/atreus.h b/keyboards/atreus/atreus.h index 10712d26d..2b3803bc2 100644 --- a/keyboards/atreus/atreus.h +++ b/keyboards/atreus/atreus.h @@ -1,8 +1,8 @@ #ifndef ATREUS_H #define ATREUS_H +#include "quantum.h" #include "matrix.h" -#include "keymap.h" #include "backlight.h" #include @@ -22,7 +22,4 @@ { k2a, k30, k31, k32, k33, k34, k36, k37, k38, k39, k3a } \ } -void matrix_init_user(void); -void matrix_scan_user(void); - #endif diff --git a/keyboards/atreus/keymaps/default/compiled.hex b/keyboards/atreus/keymaps/default/compiled.hex deleted file mode 100644 index a455e04de..000000000 --- a/keyboards/atreus/keymaps/default/compiled.hex +++ /dev/null @@ -1,1328 +0,0 @@ -:100000000C941A060C945E060C945E060C945E0624 -:100010000C945E060C945E060C945E060C945E06D0 -:100020000C945E060C945E060C945D110C942F12D9 -:100030000C9410200C945E060C945E060C945E06E4 -:100040000C945E060C945E060C945E060C945E06A0 -:100050000C945E060C9478200C945E060C945E065C -:100060000C945E060C945E060C945E060C945E0680 -:100070000C945E060C945E060C945E060C945E0670 -:100080000C945E060C945E060C945E060C945E0660 -:100090000C945E060C945E060C945E060C945E0650 -:1000A0000C945E060C945E060C945E069C12BE12C6 -:1000B000AC13BE12AC1303132613AC137B138E13B5 -:1000C000D116D116001700173F175F178F188F181A -:1000D0006A178F181A181A1880188F188F1889180D -:1000E0002718271827182718271827182718271818 -:1000F0002718271827182718271827182718271808 -:10010000371845184C1853185D1814001A000800C9 -:100110001500170001001C0018000C00120013004D -:1001200004001600070009000A0001000B000D0082 -:100130000E000F0033001D001B0006001900050013 -:10014000E2001100100036003700380029002B00B3 -:10015000E300E1002A00E0002C0001522D003400F1 -:1001600028001E021F022F023002310201004B0044 -:100170002400250026002502200221022602270253 -:10018000350001004E002100220023002E02220231 -:1001900023022F0030003502E20024021E001F005F -:1001A0002000310002544900E300E1002A00E00091 -:1001B0002C000100370027002E0049004A005200A1 -:1001C0004D004B000100520040004100420043003E -:1001D0004C00500051004F005100010051003D0003 -:1001E0003E003F0044000100010001000100010049 -:1001F000E20001003A003B003C0045000100010024 -:10020000E300E1002A00E0002C000053010001009F -:1002100000500A44454255473A20656E61626C655C -:10022000642E0A005374617465206F6620726F77C4 -:100230002025583A2025303136620A0048756D6114 -:100240006E2D7265616461626C65206D61747269A6 -:10025000782073746174653A0D0A004465626F75A5 -:100260006E63696E672064656C61792072656D618B -:10027000696E696E673A2025580A005B735D004B12 -:100280006579626F6172642073746172742E0A0002 -:100290005B575D005B535D005B525D005B445D003E -:1002A0005B435D000E034100740072006500750041 -:1002B00073000000180354006500630068006E00BE -:1002C0006F006D0061006E006300790000000403A0 -:1002D000090409028D00050100A0FA0904000001CB -:1002E00003010100092111010001223F00070581DE -:1002F0000308000A09040100010301020009211199 -:10030000010001224D000705820308000A090402CA -:10031000000103000000092111010001223600073D -:1003200005830308000A0904030002030000000912 -:10033000211101000122200007058403200001078C -:100340000504032000010904040001030000000962 -:100350002111010001223900070585031000011257 -:1003600001100100000008EDFE60600100010200C4 -:100370000105010906A101050719E029E715002576 -:100380000195087501810205081901290595057572 -:10039000019102950175039101050719002977154F -:1003A000002501957875018102C00631FF0974A10D -:1003B000010975150025FF9520750881020976153C -:1003C0000025FF952075089102C005010980A10153 -:1003D000850216010026B7001A01002AB700751021 -:1003E00095018100C0050C0901A1018503160100DA -:1003F000269C021A01002A9C02751095018100C0FA -:1004000005010902A1010901A10005091901290538 -:10041000150025019505750181029501750381017E -:100420000501093009311581257F9502750881067E -:1004300009381581257F950175088106050C0A3854 -:10044000021581257F950175088106C0C005010947 -:1004500006A101050719E029E71500250195087592 -:100460000181029501750881010508190129059589 -:100470000575019102950175039101050719002980 -:10048000FF150025FF950675088100C00A0025307C -:10049000325820006B6579626F6172645F726570BB -:1004A0006F72743A20004B6579626F617264204C00 -:1004B0004544732073746174653A2025780A00649A -:1004C000656C5F6B65795F6269743A2063616E2762 -:1004D000742064656C3A20253032580A00616464E7 -:1004E0005F6B65795F6269743A2063616E2774207F -:1004F0006164643A20253032580A00290A002575C3 -:10050000002F002575005D2800256400200025646B -:1005100000200025640020002564007C0025303286 -:1005200058006D6F7573656B6579205B62746E7CC6 -:10053000782079207620685D287265702F61636C61 -:10054000293A205B006D6B5F776865656C5F746945 -:100550006D655F746F5F6D6178203D2025640A00D2 -:100560006D6B5F776865656C5F6D61785F737065F3 -:100570006564203D2025640A006D6B5F74696D65BC -:100580005F746F5F6D6178203D2025640A006D6B9C -:100590005F6D61785F7370656564203D2025640A36 -:1005A000006D6B5F696E74657276616C203D20250D -:1005B000640A006D6B5F64656C6179203D20256481 -:1005C0000A006D6B5F776865656C5F74696D655F68 -:1005D000746F5F6D6178203D2025640A006D6B5F4C -:1005E000776865656C5F6D61785F737065656420C1 -:1005F0003D2025640A006D6B5F74696D655F746FE3 -:100600005F6D6178203D2025640A006D6B5F6D6130 -:10061000785F7370656564203D2025640A006D6B0A -:100620005F696E74657276616C203D2025640A00F6 -:100630006D6B5F64656C6179203D2025640A000A5A -:1006400000257500363A20776865656C5F74696DC2 -:10065000655F746F5F6D61783A20000A0025750050 -:10066000353A20776865656C5F6D61785F7370659A -:1006700065643A20000A00257500343A2074696DDB -:10068000655F746F5F6D61783A20000A0025750020 -:10069000333A206D61785F73706565643A20000AB3 -:1006A00000257500323A20696E74657276616C2897 -:1006B0006D73293A20000A00257500313A206465DF -:1006C0006C6179282A31306D73293A20000A092D8E -:1006D0002056616C756573202D0A004D3E004D2536 -:1006E000643E20003F007365742064656661756C2C -:1006F000740A00433E200077686572652064656C6B -:1007000074613A20637572736F723D25642C207793 -:100710006865656C3D25640A53656520687474706E -:100720003A2F2F656E2E77696B6970656469612E4B -:100730006F72672F77696B692F4D6F7573655F6B8C -:100740006579730A000A092D204D6F7573656B6515 -:1007500079202D0A4553432F713A09717569740A3E -:10076000313A0964656C6179282A31306D73290A40 -:10077000323A09696E74657276616C286D73290A64 -:10078000333A096D61785F73706565640A343A09BC -:1007900074696D655F746F5F6D61780A353A0977CA -:1007A0006865656C5F6D61785F73706565640A3656 -:1007B0003A09776865656C5F74696D655F746F5F32 -:1007C0006D61780A0A703A097072696E74207661F8 -:1007D0006C7565730A643A097365742064656661B3 -:1007E000756C74730A75703A092B310A646F776EF1 -:1007F0003A092D310A706775703A092B31300A7049 -:1008000067646F776E3A092D31300A0A7370656537 -:1008100064203D2064656C7461202A206D61785FDE -:100820007370656564202A20287265706561742084 -:100830002F2074696D655F746F5F6D6178290A00A0 -:100840003F004D3E2000433E20004C25640A0074CA -:10085000696D65725F636F756E743A202530346C14 -:10086000580A006B6579626F6172645F6E6B726FBC -:100870003A2025580A006B6579626F6172645F697E -:10088000646C653A2025580A006B6579626F617265 -:10089000645F70726F746F636F6C3A2025580A0042 -:1008A000686F73745F6B6579626F6172645F6C65AA -:1008B000647328293A2025580A000A092D20537408 -:1008C00061747573202D0A004743433A20342E3952 -:1008D0002E32204156522D4C4942433A20312E3877 -:1008E0002E31204156525F415243483A2061767280 -:1008F000350A004F5054494F4E533A204C5546410B -:10090000204D4F5553454B45592045585452414B66 -:10091000455920434F4E534F4C4520434F4D4D4179 -:100920004E44204E4B524F20343039360A00425547 -:10093000494C443A20313637313865662D64697246 -:100940007479202832333A30383A3534204A756E7B -:100950002020392032303136290A005649443A20C5 -:1009600030784645454428546563686E6F6D616E06 -:10097000637929205049443A20307836303630287F -:1009800041747265757329205645523A203078308B -:100990003030310A00444553433A20712E6D2E6B9E -:1009A0002E206B6579626F617264206669726D7763 -:1009B00061726520666F72204174726575730A00FA -:1009C0000A092D2056657273696F6E202D0A000A80 -:1009D000092D20436F6E736F6C65202D0A455343BC -:1009E0002F713A09717569740A6D3A096D6F7573E3 -:1009F000656B65790A000A092D204D6167696320DE -:100A00002D0A443A094465627567204D6573736128 -:100A1000676520546F67676C650A583A094D6174C1 -:100A2000726978204465627567204D6F6465205453 -:100A30006F67676C65202D2053686F77206B657931 -:100A40007072657373657320696E206D617472696D -:100A50007820677269640A4B3A094B6579626F6165 -:100A6000726420446562756720546F67676C652007 -:100A70002D2053686F77206B6579707265737320D2 -:100A80007265706F72740A4D3A0944656275672029 -:100A90004D6F75736520546F67676C650A563A0928 -:100AA00056657273696F6E0A533A095374617475AF -:100AB000730A433A09416374697661746520436F30 -:100AC0006E736F6C65204D6F64650A46312D46313B -:100AD000303A0953776974636820746F204C6179E8 -:100AE000657220302D392028463130203D204C3091 -:100AF000290A302D393A0953776974636820746F75 -:100B0000204C6179657220302D390A4553433A09EA -:100B100053776974636820746F204C617965722023 -:100B2000302028616C7465726E617465206B657924 -:100B30002031290A47524156453A0953776974636F -:100B40006820746F204C6179657220302028616CB8 -:100B50007465726E617465206B65792032290A5064 -:100B6000415553453A094A756D7020746F20426FA4 -:100B70006F746C6F616465722028526573657429A7 -:100B80000A4E3A094E4B524F20546F67676C650A04 -:100B9000003F004E4B524F3A206F66660A004E4BA4 -:100BA000524F3A206F6E0A000A6D6F7573653A20D6 -:100BB0006F66660A000A6D6F7573653A206F6E0A7C -:100BC000000A6B6579626F6172643A206F66660A2B -:100BD000000A6B6579626F6172643A206F6E0A0079 -:100BE0000A6D61747269783A206F66660A000A6D50 -:100BF00061747269783A206F6E0A000A64656275E2 -:100C0000673A206F66660A000A64656275673A2073 -:100C10006F6E0A000A0A4A756D70696E6720746FFC -:100C200020626F6F746C6F616465722E2E2E2000CF -:100C3000433E200011241FBECFEFDAE0DEBFCDBF60 -:100C400004B603FE24C08091FE019091FF01A091A3 -:100C50000002B09101028730904BA740B04BB9F42D -:100C60001092FE011092FF011092000210920102F8 -:100C700014BE84B7877F84BF88E10FB6F894809351 -:100C80006000109260000FBEE0E0F8E3099511E00B -:100C9000A0E0B1E0E8E9F2E502C005900D92A834C9 -:100CA000B107D9F711E0A8E4B1E001C01D92AE3F51 -:100CB000B107E1F70E94970E0C944A290C940000AA -:100CC000FF93EF93E0914801F0914901309709F0CB -:100CD0000995EF91FF910895FC018591803011F005 -:100CE000EFDFFBCF0895FF27E0E230E247FF0CC0C3 -:100CF000419597FF09C0EDE26095709580959095BC -:100D0000611D711D811D911D27FF02C0219530E3DA -:100D100050E2AA27660F771F881F991FAA1FA417E2 -:100D200010F0A41B63955A95A9F7AA3008F0A95FA3 -:100D3000A05DAF93F395611571058105910541F7AC -:100D4000ED3211F4EF93F395F21718F43F93F39506 -:100D5000FBCF8F91B5DFFA95E1F70895E991F9910D -:100D60008591803021F0853219F0AADFF9CF0895FE -:100D700020E0E89455915532C1F3503311F4689452 -:100D800055915A3348F4505390F3220F022E220FFC -:100D9000220F200D250FF4CF0EF421958991999102 -:100DA000533619F3533729F1533559F1BC018827CC -:100DB0009927E8945C3621F489919991689455912A -:100DC000543639F446EF7EF077FF0DC08FEF9FEF7A -:100DD0000AC055374AE039F0583540E121F0523623 -:100DE00042E009F00895FF93EF937DDFEF91FF91CB -:100DF000B7CFFF93EF93FC0181918030B9F360DFAF -:100E0000FBCFFF93EF9368DFF1CFDF93CF93CDB7A5 -:100E1000DEB72596A3DFCF91DF9108950895089559 -:100E20008EE097E0892B11F00C940E0708958FE067 -:100E300097E0892B11F00C940F07089561110BC0F6 -:100E4000FC018281882321F085EE0E94751503C084 -:100E500085EE0E943D1680E090E0089581E00895BF -:100E600081E008950C94300708950F931F93CF935A -:100E7000DF938C01FC01C081D181CE010E94F31D62 -:100E8000BE010E94E207EC01B8010E9432078823EC -:100E900009F48DC0F8018281882309F44AC0809149 -:100EA000550181111FC0C431F0E5DF0709F051C0C1 -:100EB0000E94340781E0809355010E944220909364 -:100EC00054018093530110924C0110924E011092E4 -:100ED0004D011092500110924F0110925201109248 -:100EE000510165C080915301909154010E944E20A0 -:100EF000883C910570F480914C01E82FF0E0EE0FF2 -:100F0000FF1FE35BFE4FD183C0838F5F80934C0153 -:100F10004EC0C43880E5D80721F0C538D04501F16E -:100F20003AC0F8018281882341F010924A0182E0A0 -:100F30001EC0C438E0E5DE0759F580914A018111F1 -:100F400006C086E20E94751586E20E943D1682E088 -:100F50001CC0C438F0E5DF0741F3C538D045D9F4EB -:100F6000F8018281882331F010924B0180E20E94C7 -:100F70008C161DC080914B01811106C087E20E9432 -:100F8000751587E20E943D1680E20E9493160FC0FD -:100F9000C538D04529F381E080934A0180934B0105 -:100FA000C801DF91CF911F910F910C942E0780E023 -:100FB000DF91CF911F910F9108950C9410070C941D -:100FC000170708959BE0799FF00111249CE2899F07 -:100FD000E00DF11D1124E60FF11DEE0FFF1FE65F7E -:100FE000FE4F859194910895880F991FFC01E65753 -:100FF000F040859194910895880F991FFC01E65F58 -:10100000FE4F8591949108950F931F93CF93DF9393 -:10101000EC01811520E3920750F5C11580E2D80755 -:1010200008F0C9C0CB3BD10590F4C83AD10508F00F -:1010300070C0C53AD10508F061C0C430D10508F0D0 -:10104000DAC1219709F0D4C101E010E014C2CF3F0A -:10105000D10511F008F0CFC1C03FD10508F0A8C0FC -:10106000CE01805E9109089708F4C5C1C1C1C130A5 -:1010700090E5D90709F4A8C050F5C0318FE4D8072E -:1010800070F4C11590E4D90708F09AC0C11521E3A6 -:10109000D20708F0ADC1DD278E01106CECC1C1157F -:1010A000D04509F0A5C10E94FA188FEF94E32CE017 -:1010B000815090402040E1F700C0000087E797E7AB -:1010C00090930108809300080E949D20D4C1C1150F -:1010D00097E5D90758F4C03121E5D20708F020C1BF -:1010E000C43180E5D80708F479C082C1CE01905799 -:1010F0008115904108F07CC1DF7077C1C53AD105F8 -:1011000009F47BC1C63AD10509F07AC102E810E4BE -:10111000B2C1C83AD10509F476C1C93AD10509F47A -:1011200075C1CA3AD10509F474C1CB3AD10509F4A5 -:1011300073C1CC3AD10509F472C1CD3AD10509F495 -:1011400071C1C03BD10509F470C1CE3AD10509F493 -:101150006FC1CF3AD10509F46EC1C13BD10509F485 -:101160006DC1C23BD10509F46CC1C33BD10509F483 -:101170006BC1C43BD10509F46AC1C53BD10509F473 -:1011800069C1C63BD10509F468C1C73BD10509F463 -:1011900067C1C83BD10509F466C1C93BD10509F453 -:1011A00065C1CA3BD10509F464C100E014E463C120 -:1011B0008E01106560C1CE019F700E94FC075CC16A -:1011C000DF708E01106A57C182E192E00E946C06C6 -:1011D0008091DF0181608093DF014DC10E94F42086 -:1011E000811102C00E94DA200E94072190E09093B2 -:1011F000FE018093FD01C23080E5D80721F4809183 -:10120000FD01816086C0C43090E5D90721F480914A -:10121000FD0182607EC0C63020E5D20721F48091B6 -:10122000FD01846076C0C83080E5D80719F480914C -:10123000FD0127C0CA3090E5D90721F48091FD0156 -:10124000806167C0CC3020E5D20721F48091FD0198 -:1012500080625FC0CE3080E5D80721F48091FD0127 -:10126000806457C0C03190E5D90721F48091FD0119 -:1012700080684FC0C23120E5D20729F48091FD017A -:101280008460886046C0C33080E5D80721F480912F -:10129000FD018E7F3EC0C53090E5D90721F48091D5 -:1012A000FD018D7F36C0C73020E5D20721F4809143 -:1012B000FD018B7F2EC0C93080E5D80719F48091DD -:1012C000FD0126C0CB3090E5D90721F48091FD01C6 -:1012D0008F7E1FC0CD3020E5D20721F48091FD0123 -:1012E0008F7D17C0CF3080E5D80721F48091FD01B4 -:1012F0008F7B0FC0C13190E5D90721F48091FD01AA -:101300008F7707C0C331D04531F48091FD018B7FC9 -:10131000877F8093FD018091FD010E940B21ABC06E -:101320008D2F99278F70992781309105D9F49E01CF -:101330002370332702C0880F991F2A95E2F79C6813 -:101340008E0144E0000F111F4A95E1F7002713704A -:10135000802B912B53E0CC0FDD1F5A95E1F7C0761F -:10136000DD272FC08230910531F4DC2FCC278E0190 -:10137000016F106A80C08330910569F4CE018370DB -:10138000992701E010E002C0000F111F8A95E2F7D3 -:10139000C8019C680FC084309105B9F4CE018370F8 -:1013A000992701E010E002C0000F111F8A95E2F7B3 -:1013B000C8019A6823E0CC0FDD1F2A95E1F7C07EB3 -:1013C000D7708C010C2B1D2B56C08530910531F444 -:1013D000DC2FCC278E01046F106A4DC0069709F0F0 -:1013E0004AC0CF71DD27DC2FCC278E01106243C0AD -:1013F00000E010E040C08E013EC001E810E43BC0B8 -:1014000003E810E438C002EE14E435C009EE14E439 -:1014100032C00AEE14E42FC005EB14E42CC006EB36 -:1014200014E429C007EB14E426C00CEC14E423C038 -:101430000DEC14E420C003E815E41DC00AE815E42F -:101440001AC002E915E417C004E915E414C001E26A -:1014500016E411C003E216E40EC004E216E40BC069 -:1014600005E216E408C006E216E405C007E216E449 -:1014700002C00AE216E4C801DF91CF911F910F91DB -:1014800008959BE0799FF00111249CE2899FE00D73 -:10149000F11D1124E60FF11DEE0FFF1FE65FFE4F59 -:1014A00085919491803E9105E0F4803C910558F53A -:1014B0008133910509F46FC048F48932910509F42C -:1014C00063C08A32910509F46DC072C089339105F9 -:1014D000E9F082389105D1F08533910509F44DC0CA -:1014E00067C0833E910581F138F4803E9105B9F0E3 -:1014F000823E9105D9F05CC0863E910561F1873E40 -:101500009105A1F155C00E94F40708952091FD01B5 -:1015100020FD02C021FF4CC080EE90E049C08091C8 -:10152000FD0180FFF9CF89E390E042C08091FD0189 -:1015300082FF0EC08091FD0184FF03C080E090E037 -:1015400037C083EE90E034C08091FD0182FFF2CF7E -:1015500082EE90E02DC08091FD0183FF0BC0809151 -:10156000FD0184FDEBCF87EE90E022C08091FD016C -:1015700083FFF5CF86EE90E01BC08091FD0185FFD3 -:1015800007C089E290E014C08091FD0185FFF9CF8A -:1015900085E390E00DC08091FD0186FF07C08AE2DF -:1015A00090E006C08091FD0186FFF9CF81E390E0D5 -:1015B0000E940408089508950C94DB0AE82FF0E0D7 -:1015C000E05EFE4F8081E82FEF70F0E082958F7033 -:1015D00021E030E0A90102C0440F551F8A95E2F7CF -:1015E00040A308950F931F93CF93DF9385B780682F -:1015F00085BF85B7806885BFC3E0D0E001E010E01B -:10160000FE01E05EFE4F8081E82FEF70F0E021A147 -:1016100082958F70A80102C0440F551F8A95E2F78A -:10162000CA01822B81A38C2F0E94DE0A219740F7EA -:101630008AE090E061E070E0FC01EB5EFE4F20810B -:10164000E22FEF70F0E042A122952F70DB0102C083 -:10165000AA0FBB1F2A95E2F79D01242B22A3019715 -:1016600058F7DF91CF911F910F910C94DD07EF9206 -:10167000FF920F931F93CF93DF930EE511E0C3E02A -:10168000EE24E394F12CD5E08C2F0E94DE0A8AE050 -:1016900090E040E050E0FC01EB5EFE4F6081E62F01 -:1016A000EF70F0E020A130E062956F7002C03595D8 -:1016B00027956A95E2F720FD09C09701082E02C020 -:1016C000220F331F0A94E2F7422B532B019718F78E -:1016D000F801929182918F018417950721F051832F -:1016E0004083D09300018C2F0E94DE0AC15060F627 -:1016F0008091000187FD42C09091DF0190FF10C0F2 -:10170000282F332727FD30953F938F938BE592E069 -:101710009F938F930E9405070F900F900F900F904B -:101720008091000181508093000187FD07C08FE9FF -:101730009FE00197F1F700C0000020C080915C019C -:1017400090915D01909365018093640180915A01AD -:1017500090915B01909363018093620180915801A5 -:10176000909159019093610180936001809156019D -:101770009091570190935F0180935E010E94DF0773 -:1017800081E0DF91CF911F910F91FF90EF9008952D -:10179000E82FF0E0EE0FFF1FE25AFE4F80819181AB -:1017A0000895EF92FF920F931F93CF93DF93809151 -:1017B000DF0180FF04C08CE392E00E946C060EE51E -:1017C00011E0C0E0D0E084E2E82E82E0F82E8091C3 -:1017D000DF0180FF13C0F801808191810E94B71F53 -:1017E0009F938F93DF93CF93FF92EF920E94050711 -:1017F0000F900F900F900F900F900F9021960E5F0B -:101800001F4FC430D10519F7DF91CF911F910F9170 -:10181000FF90EF9008950F931F93CF9306E611E08A -:10182000C0E0F801929182918F010E94951FC80F2C -:10183000F1E00E351F07A9F78C2FCF911F910F9163 -:1018400008958091790108959FB7F89410926801E6 -:101850009FBF9091F401943009F057C09091E90036 -:101860009F703091EC00232F217030FD20E8922BE7 -:1018700024E02093E9002091EB0020FF43C0209159 -:10188000EE0027FF3FC020916601222321F0209126 -:10189000E80025FF37C01092660126E03091E8008D -:1018A00035FD15C03091F401343061F53091EB0015 -:1018B00035FD28C0215021F481E08093660122C0CB -:1018C000EFE9FFE03197F1F700C00000E7CF809328 -:1018D000F1008091E80085FD0AC08091E80080FF5A -:1018E000FCCF8091E8008E778093E80006C08FB728 -:1018F000F89421E0209368018FBF9F709093E900D6 -:1019000080E008959F709093E9008FEF0895CF9342 -:10191000DF9300D01F92CDB7DEB79C018091F40118 -:10192000843019F593E099833B832A839093E900EF -:101930008FEF9091E800815095FD06C095ED9A9546 -:10194000F1F700008111F5CF8091E80085FF0DC00F -:1019500040E050E063E070E0CE0101960E944D0F40 -:101960008091E8008E778093E8000F900F900F90A1 -:10197000DF91CF910895CF93DF9300D01F92CDB721 -:10198000DEB72091F401243021F522E029839B83E6 -:101990008A8383E08093E9008FEF9091E800815083 -:1019A00095FD06C095ED9A95F1F700008111F5CFF0 -:1019B0008091E80085FF0DC040E050E063E070E0FA -:1019C000CE0101960E944D0F8091E8008E778093A2 -:1019D000E8000F900F900F90DF91CF910895209124 -:1019E000F4012430F1F422E02093E9002FEF30914C -:1019F000E800215035FD06C035ED3A95F1F70000BD -:101A00002111F5CF2091E80025FF0BC040E050E008 -:101A100065E070E00E944D0F8091E8008E77809322 -:101A2000E8000895CF93DF932091F401243009F06A -:101A300048C0EC0180910B018823E1F080910C01FA -:101A40008823C1F085E08093E9008FEF9091E80052 -:101A5000815095FD06C095E19A95F1F7000081113E -:101A6000F5CF8091E80085FF2CC040E050E060E1B8 -:101A700070E017C081E08093E9008FEF9091E8005B -:101A8000815095FD06C095ED9A95F1F70000811102 -:101A9000F5CF8091E80085FF14C040E050E068E099 -:101AA00070E0CE010E944D0F8091E8008E77809308 -:101AB000E80080E1FE01A9E6B1E001900D928A956F -:101AC000E1F7DF91CF91089580EA92E00E946C06E1 -:101AD0008091F301811109C00E94E2100E943F1120 -:101AE0008091E20084608093E20008958CE992E0A6 -:101AF0000E946C061092F301089588E992E00C941C -:101B00006C0684E992E00C946C0680E992E00E94F5 -:101B10006C060C940A20209167012F5F822F62E3EC -:101B20000E94DA28992319F02093670108951092F2 -:101B3000670180916801882371F18091F4018430FC -:101B400041F58091E9008F702091EC00922F917007 -:101B500020FD90E8892B94E09093E9009091EB00B0 -:101B600090FF14C09091EE0097FF10C09091E80094 -:101B700095FF03C01092F100F9CF9091E80090FF1B -:101B800005C09091E8009E779093E8008F70809355 -:101B9000E90010926801089542E061EC81E00E9442 -:101BA0005C1042E061EC82E00E945C1042E061EC7B -:101BB00083E00E945C1042E261EC84E00E945C10D1 -:101BC00042E161EC85E00C945C108091F601833079 -:101BD00009F455C030F4813071F0823009F48EC0C0 -:101BE00008958A3009F47AC08B3009F460C08930D6 -:101BF00009F09CC020C08091F501813A09F096C09F -:101C00008091E800877F8093E8008091F9019091AE -:101C1000FA01892B21F460E189E691E003C060E0DC -:101C200080E090E070E00E94980F8091E8008B7750 -:101C30008093E80008958091F501813209F076C023 -:101C40008091F9019091FA01009719F0049709F039 -:101C50006DC08091E800877F8093E8008091E80064 -:101C600082FD05C08091F4018111F8CF5FC08091A1 -:101C7000F100809379018091E8008B7753C08091C7 -:101C8000F501813A09F052C08091F9019091FA0171 -:101C9000892B09F04BC08091E800877F8093E80092 -:101CA0008091E80080FFFCCF80910B0136C08091CD -:101CB000F5018132D9F58091F9019091FA01892BD2 -:101CC000A9F58091E800877F8093E8000E94911039 -:101CD0008091F70180930B010C94FA188091F50123 -:101CE000813221F58091E800877F8093E8000E948F -:101CF00091108091F80180937A0108958091F50107 -:101D0000813AA1F48091E800877F8093E800809178 -:101D1000E80080FFFCCF80917A018093F1008091F0 -:101D2000E8008E778093E8000C949110089584B7B2 -:101D3000877F84BF88E10FB6F8948093600010928B -:101D400060000FBE90E080E80FB6F89480936100C9 -:101D5000909361000FBE0E9471140E94E2100E94D5 -:101D60003F118091E20084608093E20084E29CE075 -:101D70000E94901F78940E94C4130E94731481E003 -:101D800091E00E94DF138FE792E00E946C06809141 -:101D9000F401853089F48BE792E00E946C060E9482 -:101DA000D11F8091F201882391F30E94FC1F8823A8 -:101DB00071F30E94370FEBCF0E949714E8CF292FC1 -:101DC000332723303105C9F064F42130310581F027 -:101DD0002230310509F043C08DE890E022ED32E079 -:101DE00042C021323105F1F02232310541F137C0D4 -:101DF00082E190E02FE533E036C0992781309105EC -:101E000041F08230910541F0892B49F5EEECF2E08A -:101E100005C0E4EBF2E002C0E4EAF2E0849190E075 -:101E20009F0121C06530D8F4E62FF0E0EE0FFF1FD0 -:101E3000ED5CFE4F2081318189E090E014C0653077 -:101E400070F470E0FB01EE0FFF1FE75DFE4F208195 -:101E50003181FB01EC5DFE4F808190E004C080E0A9 -:101E600090E020E030E0FA0131832083089580E1A2 -:101E700089BD82E189BD09B400FEFDCF8091D80003 -:101E80008F7D8093D8008091E00082608093E00095 -:101E90008091E00081FDFCCF0895CF92DF92EF9218 -:101EA000FF920F931F93CF93DF93EC018B016A0195 -:101EB0000E94B010811133C0C114D10439F0F60171 -:101EC00080819181081B190BC80FD91FE12CF12CBF -:101ED0000115110519F18091E80085FD16C080916A -:101EE000E8008E778093E800C114D10449F0F60130 -:101EF00080819181E80EF91EF182E08285E00FC0B9 -:101F00000E94B010882321F30AC089918093F100C8 -:101F100001501109FFEFEF1AFF0ADACF80E0DF91DD -:101F2000CF911F910F91FF90EF90DF90CF90089588 -:101F30002091FB013091FC012617370748F061150D -:101F4000710539F42091E8002E772093E80001C054 -:101F5000B90140E061157105A9F12091F401222336 -:101F600009F443C0253009F442C02091E80023FD64 -:101F700040C02091E80022FD32C02091E80020FFFF -:101F8000E9CF4091F3002091F20030E0342BFC01C6 -:101F9000CF016115710559F02830310540F4819168 -:101FA0008093F100615071092F5F3F4FF1CF41E005 -:101FB0002830310509F040E02091E8002E77209389 -:101FC000E800C8CF4111C9CF0AC08091F40188232D -:101FD00061F0853061F08091E80083FD0AC0809156 -:101FE000E80082FFF2CF80E0089582E0089583E068 -:101FF000089581E008952091FB013091FC0126179E -:10200000370748F06115710539F42091E8002E7703 -:102010002093E80001C0B901FC0120E061157105C1 -:1020200091F18091F401882309F440C0853009F4CE -:102030003FC08091E80083FD3DC08091E80082FDB3 -:102040002FC08091E80080FFE9CF2091F3008091BC -:10205000F20090E0922B6115710559F088309105DE -:1020600040F424912093F10031966150710901965A -:10207000F2CF21E0089709F020E08091E8008E7708 -:102080008093E800CBCF2111CCCF0AC08091F4011E -:10209000882361F0853061F08091E80083FD0AC0FB -:1020A0008091E80082FFF2CF80E0089582E00895F9 -:1020B00083E0089581E00895982F973058F5909324 -:1020C000E900981739F07091EC002091ED005091E3 -:1020D000F00003C0242F762F50E021FF19C030916B -:1020E000EB003E7F3093EB003091ED003D7F30936D -:1020F000ED003091EB0031603093EB007093EC0019 -:102100002093ED005093F0002091EE0027FF07C0D0 -:102110009F5FD3CF8F708093E90081E0089580E0C6 -:1021200008958091F50187FF11C08091E80082FD3C -:1021300005C08091F4018111F8CF11C08091E800B1 -:102140008B770BC08091F401882349F08091E800DF -:1021500080FFF8CF8091E8008E778093E8000895A3 -:102160002091E4003091E50095E64091EC00842F49 -:10217000817040FF22C08091E80080FD1CC08091EA -:10218000F401882391F0853091F08091EB0085FD7A -:1021900010C04091E4005091E5004217530729F325 -:1021A0009A01915011F784E0089582E0089583E048 -:1021B000089581E0089580E008954091E80042FF8D -:1021C000DECF08950E9450110E945811E0EEF0E019 -:1021D000808181608083E8EDF0E080818F7780836B -:1021E00019BCA7EDB0E08C918E7F8C9380818F7E9F -:1021F00080831092F30108950F931F93CF93DF9381 -:102200000E9450110E945811C8EDD0E088818F774C -:10221000888388818068888388818F7D888319BCC2 -:102220001092F4011092F0011092F2011092F1015B -:1022300000EE10E0F80180818B7F808388818160CF -:10224000888342E060E080E00E945C10E1EEF0E014 -:1022500080818E7F8083E2EEF0E0808181608083E8 -:10226000808188608083F80180818E7F808388816F -:1022700080618883DF91CF911F910F910895E8EDE0 -:10228000F0E080818F7E8083E7EDF0E080818160E7 -:10229000808384E082BF81E08093F3010C94FC1082 -:1022A000E8EDF0E080818E7F80831092E200089557 -:1022B0001092DA001092E10008951F920F920FB66B -:1022C0000F9211242F933F934F935F936F937F93BC -:1022D0008F939F93AF93BF93EF93FF938091E10010 -:1022E00082FF0BC08091E20082FF07C08091E10075 -:1022F0008B7F8093E1000E948B0D8091DA0080FF3C -:102300001FC08091D80080FF1BC08091DA008E7FB3 -:102310008093DA008091D90080FF0DC080E189BDF3 -:1023200082E189BD09B400FEFDCF81E08093F40114 -:102330000E94640D05C019BC1092F4010E94760D34 -:102340008091E10080FF19C08091E20080FF15C0FC -:102350008091E2008E7F8093E2008091E2008061B4 -:102360008093E2008091D80080628093D80019BCED -:1023700085E08093F4010E94810D8091E10084FF4B -:1023800030C08091E20084FF2CC080E189BD82E1F1 -:1023900089BD09B400FEFDCF8091D8008F7D809368 -:1023A000D8008091E1008F7E8093E1008091E2006F -:1023B0008F7E8093E2008091E20081608093E20052 -:1023C0008091F001882311F084E007C08091E30040 -:1023D00087FD02C081E001C083E08093F4010E9488 -:1023E000850D8091E10083FF29C08091E20083FF89 -:1023F00025C08091E100877F8093E10082E0809397 -:10240000F4011092F0018091E1008E7F8093E10051 -:102410008091E2008E7F8093E2008091E2008061F3 -:102420008093E20042E060E080E00E945C108091D6 -:10243000F00088608093F0000E947D0DFF91EF9185 -:10244000BF91AF919F918F917F916F915F914F91CC -:102450003F912F910F900FBE0F901F9018951F92D4 -:102460000F920FB60F9211242F933F934F935F93C8 -:102470006F937F938F939F93AF93BF93CF93DF938C -:10248000EF93FF93C091E900CF708091EC00D82FBB -:10249000D17080FDD0E81092E9008091F000877F34 -:1024A0008093F00078940E9473121092E90080915A -:1024B000F00088608093F000CD2BCF70C093E900CE -:1024C000FF91EF91DF91CF91BF91AF919F918F914C -:1024D0007F916F915F914F913F912F910F900FBE20 -:1024E0000F901F9018951F93CF93DF93CDB7DEB752 -:1024F000AA970FB6F894DEBF0FBECDBFE5EFF1E0AF -:1025000088E08E0F9091F10091938E13FBCF0E9483 -:10251000E50D8091E80083FF1FC18091F501909146 -:10252000F601492F50E04A30510508F015C1FA0173 -:10253000EA5AFF4F0C94FA28803881F0823809F06B -:102540000BC18091F9018F708093E9008091EB00BD -:1025500085FB882780F91092E90006C08091F1017F -:102560009091F201911182609091E800977F909391 -:10257000E8008093F1001092F100C8C0282F2D7F51 -:1025800009F0EAC0882319F0823061F0E5C080913B -:10259000F701813009F0E0C0933009F080E08093CA -:1025A000F2012BC08091F701811127C08091F901C0 -:1025B0008F7009F4D1C08093E9002091EB0020FFD7 -:1025C0001CC0933021F48091EB00806214C0909184 -:1025D000EB0090619093EB0021E030E0A90102C094 -:1025E000440F551F8A95E2F74093EA001092EA00E3 -:1025F0008091EB0088608093EB001092E90080915D -:10260000E800877F86C08111A7C01091F7011F776E -:102610008091E3008078812B8093E3008091E80033 -:10262000877F8093E8000E9491108091E80080FFEE -:10263000FCCF8091E30080688093E300111102C019 -:1026400082E001C083E08093F40186C0805882302C -:1026500008F082C08091F7019091F8018C3D53E021 -:10266000950779F583E08A838AE289834FB7F894E6 -:10267000DE01139620E03EE051E2E32FF0E05093BC -:102680005700E49120FF03C0E295EF703F5FEF70C9 -:102690008E2F90E0EA3010F0C79601C0C0968D935F -:1026A0009D932F5F243149F74FBF8091E800877FCA -:1026B0008093E8006AE270E0CE0101960E94980FD4 -:1026C00014C0AE014F5F5F4F6091F9010E94DF0EB1 -:1026D000BC01009709F440C09091E800977F909367 -:1026E000E80089819A810E94FB0F8091E8008B7736 -:1026F0008093E80031C0803879F58091E800877FC9 -:102700008093E8008091F0018093F1008091E800CF -:102710008E778093E8000E9491101EC081111CC02A -:102720009091F7019230C0F48091E800877F809308 -:10273000E8009093F0010E9491108091F0018111C6 -:1027400006C08091E30087FD02C081E001C084E003 -:102750008093F4010E94CC0D8091E80083FF0AC0B1 -:102760008091E800877F8093E8008091EB00806291 -:102770008093EB00AA960FB6F894DEBF0FBECDBFD4 -:10278000DF91CF911F910895CF938091F401882319 -:10279000A1F0C091E900CF709091EC00892F817079 -:1027A00090FD80E8C82B1092E9008091E80083FD3D -:1027B0000E947312CF70C093E900CF910895909357 -:1027C000800180937F010895E0917F01F091800165 -:1027D000309721F00190F081E02D099480E0089578 -:1027E000EF92FF920F931F93CF93DF93E0917F01BE -:1027F000F09180013097B1F18C010280F381E02DDE -:1028000009958091DF0182FF2DC080FF04C084E91B -:1028100094E00E946C06E80110E18EE8E82E84E066 -:10282000F82E8091DF0180FF0BC088811F928F936B -:10283000FF92EF920E9405070F900F900F900F905C -:10284000115021961111EDCF8091DF0180FF0AC058 -:102850008CE894E0DF91CF911F910F91FF90EF9062 -:102860000C946C06DF91CF911F910F91FF90EF9028 -:102870000895E0917F01F0918001309721F004806C -:10288000F581E02D0994089520917D0130917E011C -:102890008217930771F090937E0180937D01E09100 -:1028A0007F01F0918001309721F00680F781E02DC3 -:1028B0000994089520917B0130917C018217930740 -:1028C00071F090937C0180937B01E0917F01F09106 -:1028D0008001309721F00084F185E02D099408955E -:1028E00008950C9470140E9439200E94F20A0C94EE -:1028F000BF20CF93DF931F92CDB7DEB79091DF015A -:1029000092FF10C090FF0EC01F928F9326EA34E012 -:102910003F932F9389830E9405070F900F900F908C -:102920000F9089810F90DF91CF910C94DC0A5F9218 -:102930006F927F928F929F92AF92BF92CF92DF92CF -:10294000EF92FF920F931F93CF93DF9300D000D0AD -:102950001F92CDB7DEB70E94370B9AE8C92E91E0DF -:10296000D92E03E010E0AA24A394B12C502E802F7E -:102970000E94C80B4C01F601729062906F016826AC -:10298000792661147104A1F40150110978F78FEFD1 -:1029900089838A831B820E9442208160782F9D83D5 -:1029A0008C8349815A816B818D810E94471538C083 -:1029B0008091DF0181FD0E94D10B2AE030E075019A -:1029C000022E02C0EE0CFF1C0A94E2F7C70186211A -:1029D0009721892B09F129835A828E209F2091E02B -:1029E000892809F490E09B830E9442208160782F1F -:1029F0009D838C8349815A816B818D810E9447150B -:102A0000000F111FF801EE57FE4F80819181E826DB -:102A1000F926F182E08204C02150310980F6B4CF5A -:102A20000E940C23109181010E94E4131817D1F029 -:102A30000E94E413809381010F900F900F900F90EC -:102A40000F90DF91CF911F910F91FF90EF90DF904A -:102A5000CF90BF90AF909F908F907F906F905F903E -:102A60000C9479140F900F900F900F900F90DF91AE -:102A7000CF911F910F91FF90EF90DF90CF90BF907B -:102A8000AF909F908F907F906F905F900895CF93BD -:102A9000DF93CDB7DEB72B970FB6F894DEBF0FBE2E -:102AA000CDBF4F83588769877A878B87DE01119660 -:102AB00086E0FD0111928A95E9F785E0FE013796DF -:102AC00001900D928A95E1F749815A816B817C8151 -:102AD0008D819E810E94981B2B960FB6F894DEBFC5 -:102AE0000FBECDBFDF91CF910895CF93882309F416 -:102AF000C2C0C82F823859F40E94E41381FDBBC0C4 -:102B000089E30E94721E0E94611F89E30CC0833812 -:102B100079F40E94E41380FDAEC083E50E94721E2A -:102B20000E94611F83E50E94C51ECF910C94611F16 -:102B3000843859F40E94E41382FD9DC087E40E940A -:102B4000721E0E94611F87E4EECF8CEF8C0F813ADA -:102B500048F48C2F0E94632681118DC08C2F0E9417 -:102B6000721EE3CF80E28C0F883048F4C77081E09A -:102B700001C0880FCA95EAF70E941A1FD6CF8BE5CD -:102B80008C0F833078F4C53A29F0C63A31F083E8E7 -:102B900090E005C081E890E002C082E890E0CF912B -:102BA0000C94441488E58C0F833108F064C0C83A53 -:102BB00039F1C93A41F1CA3A49F1CB3A51F1CC3A2B -:102BC00059F1CD3A61F1C03B69F1CE3A71F1CF3A9A -:102BD00079F1C13B81F1C23B89F1C33B91F1C43B27 -:102BE00099F1C53BA1F1C63BA9F1C73BB1F1C83B87 -:102BF000B9F1C93BC1F1CA3BC9F180E090E038C0EE -:102C000082EE90E035C089EE90E032C08AEE90E02E -:102C10002FC085EB90E02CC086EB90E029C087EBBD -:102C200090E026C08CEC90E023C08DEC90E020C0BA -:102C300083E891E01DC08AE891E01AC082E991E042 -:102C400017C084E991E014C081E292E011C083E2F0 -:102C500092E00EC084E292E00BC085E292E008C0F0 -:102C600086E292E005C087E292E002C08AE292E04A -:102C7000CF910C945A14CF910895882309F44BC036 -:102C8000823859F40E94E41381FF45C089E30E9411 -:102C9000721E0E94611F89E30CC0833871F40E9488 -:102CA000E41380FF38C083E50E94721E0E94611FFA -:102CB00083E50E94C51E0C94611F843859F40E945C -:102CC000E41382FF28C087E40E94721E0E94611FE5 -:102CD00087E4EFCF9CEF980F913A58F390E2980F6A -:102CE000983050F4877091E001C0990F8A95EAF707 -:102CF000892F0E94201FDFCF9BE5980F933020F48F -:102D000080E090E00C944414885A833120F480E0F1 -:102D100090E00C945A140895882321F00E941A1F01 -:102D20000C94611F0895882321F00E94201F0C94A9 -:102D3000611F08957F928F929F92AF92BF92CF9220 -:102D4000DF92EF92FF920F931F93CF93DF931F9227 -:102D5000CDB7DEB77C01C62E772EFC01058102952A -:102D60000F70128111110E94371F0E946B1E882361 -:102D700079F0112369F080E28C0D883048F082E010 -:102D80000E94541E0E946B1E91E0D82ED92601C0CD -:102D9000D12CE72DE295EF70F0E0E05AFF4F0C9454 -:102DA000FA28872D807F072D0F70882311F0029558 -:102DB000007F112389F0002309F498C180E28C0D73 -:102DC000883020F4802F0E941A1F03C0802F0E9499 -:102DD0002A1F0E94611F8AC18C2D0E943D1600236C -:102DE00009F49DC180E28C0D883020F4802F0E9470 -:102DF000201F03C0802F0E94301F0E94611F8FC1BF -:102E0000872D807F972D9F70803211F4892F03C00A -:102E1000892F8295807FCC2021F0F1E0CF16A1F0A0 -:102E20001DC0112339F0002319F1013009F50E946A -:102E30004A1F75C1002319F0013009F470C189835C -:102E40000E944D1F898110C1112321F0063008F026 -:102E500066C10EC0053008F062C106C1112359F0E9 -:102E6000002331F0F701958190FF40C19F70958359 -:102E70000E948C1654C1002309F4F6C03DC1872D71 -:102E800086958695837090E0009719F0019761F020 -:102E900046C1112321F08C2D972D937002C080E044 -:102EA00090E00E9444143BC1112321F08C2D972DFA -:102EB000937002C080E090E00E945A1430C18C2DC3 -:102EC000112319F00E94922102C00E94FA210E944F -:102ED0007F2225C1872D837009F052C011111FC1B7 -:102EE0008C2D829586958770880F880F9C2D9F70FA -:102EF000892E912CA12CB12C082E04C0880C991C71 -:102F0000AA1CBB1C0A94D2F7C4FE14C00FE010E048 -:102F100020E030E0B901A80104C0440F551F661F2E -:102F2000771F8A95D2F7CB01BA016095709580958D -:102F3000909503C060E070E0CB01272D2695269583 -:102F4000237030E02230310569F02330310589F0FB -:102F5000682979298A299B292130310571F00E943D -:102F6000E01CDDC0682979298A299B290E94FC1C64 -:102F7000D6C00E94E01CC501B4010E94C41CCFC091 -:102F8000112319F0872D817001C08695882309F4DB -:102F9000C6C08C2D829586958770880F880F9C2DD2 -:102FA0009F70892E912CA12CB12C082E04C0880C66 -:102FB000991CAA1CBB1C0A94D2F7C4FE14C00FE0D3 -:102FC00010E020E030E0B901A80104C0440F551F13 -:102FD000661F771F8A95D2F7CB01BA01609570956D -:102FE0008095909503C060E070E0CB01272D269579 -:102FF00026952370422F50E04230510569F043304E -:10300000510589F0682979298A299B294130510580 -:1030100071F00E94BA1D83C0682979298A299B29E9 -:103020000E94D61D7CC00E94BA1DC501B4010E9439 -:103030009E1D75C08C2D90E0FC01E05EF109E5312C -:10304000F10508F04FC0E059FF4F0C94FA280C2D01 -:103050000F70872D8F71112321F00E94371D802F53 -:1030600007CF0E94581D802F0E94931658C011232D -:1030700041F0053008F053C0872D8F710E947D1DEF -:103080004EC0063008F04BC0F7CF112339F0872D22 -:103090008F710E94371D43C01123C9F3872D8F7193 -:1030A0000E94581D3CC0112329F0872D8F710E946A -:1030B000221D35C00E94181D32C0112351F0172D5A -:1030C0001F71812F0E94371D63E0812F0E944B1ECC -:1030D00026C081E00E94541E023008F182E00E9466 -:1030E000541E1DC0112331F0002389F28C2D0E9443 -:1030F000751515C0002391F28C2D0E943D160FC04E -:10310000472D4F706C2DC7010E941E070E943C1C6A -:1031100006C0472D4F706C2DC7010E94E107DD20CE -:10312000F9F00E94471E80FD1BC0F70112820E9429 -:10313000411E0E94371DC7010E94BF180E94411EF8 -:103140000F90DF91CF911F910F91FF90EF90DF9043 -:10315000CF90BF90AF909F908F907F900C94581D10 -:103160000F90DF91CF911F910F91FF90EF90DF9023 -:10317000CF90BF90AF909F908F907F9008950F93C6 -:103180001F93CF93DF93EC01888199812B813C8140 -:10319000232BB9F09F3F11F48F3F99F0CE010E948D -:1031A0003507882371F0688179818A810E943D1EEC -:1031B0008C010E94F21D0E94B91CB801CE010E9430 -:1031C0009A16DF91CF911F910F9108950E94371F9A -:1031D0000E94471F0E940C1F0E94611F0E94B22381 -:1031E0000E947F2280E090E00E94441480E090E002 -:1031F0000C945A140E94271F0C94E6180E94321E49 -:10320000292F22952F7030E02C3031054CF42A30D4 -:1032100031056CF42250310922303105A8F407C081 -:103220002C30310569F02F30310551F00DC0803F51 -:1032300069F018F4803E40F409C0843F29F406C0C8 -:1032400093FB882780F9089580E0089581E0089530 -:10325000CF93DF9300D000D01F92CDB7DEB70F9091 -:103260000F900F900F900F90DF91CF910895CF9313 -:10327000DF9300D000D000D0CDB7DEB726960FB6D2 -:10328000F894DEBF0FBECDBFDF91CF9108951F939D -:10329000CF93DF93C0918A0116E080918B01C8170C -:1032A00099F0D0E01C9FF0011D9FF00D1124E45710 -:1032B000FE4F4081518162817381848195810E949A -:1032C00037192196C770E9CFDF91CF911F910895EB -:1032D0004091BC015091BD016091BE017091BF0150 -:1032E0008091C0019091C1010C9437198091C10166 -:1032F00082958F7009F054C08091BE01882309F433 -:103300004FC080918A01A0918B016091BC017091A6 -:10331000BD014091BF015091C001B6E08A1709F488 -:103320003FC090E041155105C1F17F3F11F46F3F5F -:10333000A1F1B89FF001B99FF00D1124E457FE4FA1 -:10334000218172132AC02081621327C0228121119A -:1033500024C0238134812417350710F4215031090A -:10336000241B350B283C3105C0F42091C1012F707E -:1033700020612093C10126E0289FF001299FF00DD4 -:103380001124EF56FE4F80818F70806180838CEB1B -:1033900091E00E94BF180C94471901968770BECF28 -:1033A0000895CF92DF92EF92FF920F931F93CF93E6 -:1033B000DF93CDB7DEB762970FB6F894DEBF0FBECE -:1033C000CDBF8C0185E0F801DE011D9601900D92C4 -:1033D0008A95E1F7D8014C9111965C91119712965C -:1033E0006C9112971396CD90DC9014973091BC019C -:1033F0007091BD018091BF019091C001009709F4C7 -:103400006BC17F3F19F43F3F09F466C1E090BE01F4 -:10341000EE2009F4C0C02091C101C816D90628F0D9 -:10342000F601E81BF90BCF0104C0809590958C0D37 -:103430009D1DFF24F394883C910578F0F12C207FAA -:1034400009F0C6C07C2DD98AC88A89890E942819AA -:103450008CEB91E00E94BF18B1C0822F807F09F0F1 -:1034600046C0751314C0341312C0611110C02F7000 -:1034700020612093C1010E9468198CEB91E00E94A9 -:10348000BF188091C101D80115968C932EC0CD280C -:1034900019F15F3F11F44F3FF9F0F62E61111CC096 -:1034A00080918A0120918B0136E0821709F45AC07D -:1034B00090E0389FF001399FF00D1124E457FE4F42 -:1034C0007181571306C07081471303C07281711157 -:1034D00003C001968770E9CFF62E662309F418C160 -:1034E0008091C10181608093C101F12C11C17513DC -:1034F00008C0341306C0611104C08091C101D80115 -:10350000C3C04D875E878D859E856A8B0E94FE189D -:103510006A898823E1F16623D1F12091C101822FCC -:1035200082958F7090E0029774F08091BC01909129 -:10353000BD0198878F831986DB86CA862C87CE01CA -:1035400007960E94BF1886E0F801ACEBB1E001904D -:103550000D928A95E1F70E9476190E946819FF245E -:10356000F394D6C04D875E878D859E850E94321E5E -:10357000292F22952F7030E0223031050CF0BCC08D -:103580009F7009F0B6C0805E883008F4C1C0C801E1 -:103590000E94BF18E4CFC816D90608F453C0F6013C -:1035A000E81BF90BCF01883C910508F450C0F12CC1 -:1035B0007C2DD98AC88A89890E942819ECEBF1E010 -:1035C00086E0DF011D928A95E9F70E946819A0C084 -:1035D000751314C0341312C0611110C08091C10161 -:1035E000F8018583C8010E94BF1886E0ECEBF1E08A -:1035F000DF011D928A95E9F7FE2C8AC04D875E8710 -:103600008D859E856A8B0E94FE186A89882309F43D -:10361000BECF662309F4BBCF2091C101822F8295D2 -:103620008F7090E002970CF48ECF8091BC01909146 -:10363000BD019A8389831B82DD82CC822E83CE01D9 -:1036400001967FCF809590958C0D9D1DACCFF62E69 -:10365000662309F49CCF75132EC034132CC020911F -:10366000C10120FD1FC0822F82958F70D9F0D80133 -:1036700015962C9315978F3049F08F5F982F929560 -:10368000907F822F8F70892B15968C93C8010E9492 -:10369000BF1886E0F801ACEBB1E001900D928A957D -:1036A000E1F793CF86E0F801ACEBB1E001900D9229 -:1036B0008A95E1F72DC04D875E878D859E850E9496 -:1036C000FE18811140CF8091C10181608093C101BA -:1036D000C8010E94BF181CC0662309F458CF4D874B -:1036E0005E878D859E850E94FE18882309F44FCF42 -:1036F0002ACF811148CF0CC0243031050CF047CFC0 -:103700009F7009F440CFF8019581907F09F03BCF7D -:103710008F2D62960FB6F894DEBF0FBECDBFDF913E -:10372000CF911F910F91FF90EF90DF90CF90089570 -:103730001F93CF93DF93CDB7DEB72C970FB6F894D6 -:10374000DEBF0FBECDBF4F83588769877A878B87CF -:103750009C87CE0107960E94D119882369F08F813A -:1037600098852A853B85232BF1F19F3F09F063C0A3 -:103770008F3F09F060C037C086E0FE013796DE015A -:10378000119601900D928A95E1F76F817885EA850F -:10379000FB85309741F17F3F11F46F3F21F120917C -:1037A0008B0130E0C90101968770992740918A0109 -:1037B00050E08417950709F447C069837A83FD8335 -:1037C000EC8396E0929FD001939FB00D1124A457F3 -:1037D000BE4FFE01319601900D929A95E1F78093CC -:1037E0008B010E94471916E080918A0190918B010C -:1037F0008917C1F1189FC001112484579E4F0E9460 -:10380000D119882379F1E0918A011E9FF0011124DA -:10381000E457FE4F4081518162817381848195819B -:103820000E94371980918A0190E00196877099274C -:1038300080938A01D9CF4F81588569857A858B8598 -:103840009C850E943719CFCF0E94FA1810928B01E5 -:1038500010928A01ECEBF1E086E0DF011D928A957F -:10386000E9F7C1CF2C960FB6F894DEBF0FBECDBFDF -:10387000DF91CF911F910895EF92FF920F931F93C5 -:10388000CF93DF938C01009709F46CC0F12CEE24E8 -:10389000E394E8012196F8018491843740F4843060 -:1038A00008F051C0813081F0823019F15BC085375A -:1038B00009F444C0A8F19CE7980F903708F052C073 -:1038C0008F770E943D1641C00E5F1F4FFE01C491CD -:1038D00080E28C0F883048F4C7708E2D01C0880FAD -:1038E000CA95EAF70E943A1F14C08C2F0E947515E2 -:1038F0002DC00E5F1F4FFE01C49180E28C0F8830F7 -:1039000058F4C7708E2D01C0880FCA95EAF70E943F -:10391000401F0E94611F1AC08C2F0E943D1616C0C6 -:103920000E5F1F4FFE01C491CC2381F08FE99FE011 -:103930000197F1F700C00000C150F6CF0E5F1F4F96 -:10394000FE01F49003C00E9475158E018F2D88230F -:1039500009F49FCFEFE9FFE03197F1F700C00000D5 -:103960008150F5CFDF91CF911F910F91FF90EF9094 -:10397000089508956093C6017093C7018093C801AC -:103980009093C9010C94E6180F931F930091C60100 -:103990001091C7012091C8013091C901DC01CB0110 -:1039A000802B912BA22BB32B8093C6019093C70140 -:1039B000A093C801B093C9011F910F910C94E61810 -:1039C0000F931F930091C6011091C7012091C80168 -:1039D0003091C901DC01CB0180239123A223B323C1 -:1039E0008093C6019093C701A093C801B093C90109 -:1039F0001F910F910C94E6180F931F930091C6012D -:103A00001091C7012091C8013091C901DC01CB019F -:103A100080279127A227B3278093C6019093C701DF -:103A2000A093C801B093C9011F910F910C94E6189F -:103A30001092C2011092C3011092C4011092C501EC -:103A40000C94E61841E050E060E070E004C0440FE0 -:103A5000551F661F771F8A95D2F74093C201509376 -:103A6000C3016093C4017093C5010C94E61841E052 -:103A700050E060E070E004C0440F551F661F771FE0 -:103A80008A95D2F78091C2019091C301A091C4019F -:103A9000B091C501482B592B6A2B7B2B4093C20157 -:103AA0005093C3016093C4017093C5010C94E61850 -:103AB00041E050E060E070E004C0440F551F661F15 -:103AC000771F8A95D2F740955095609570958091B3 -:103AD000C2019091C301A091C401B091C5014823D6 -:103AE00059236A237B234093C2015093C3016093FF -:103AF000C4017093C5010C94E61841E050E060E009 -:103B000070E004C0440F551F661F771F8A95D2F7D7 -:103B10008091C2019091C301A091C401B091C501EF -:103B2000482759276A277B274093C2015093C30136 -:103B30006093C4017093C5010C94E6180F931F9312 -:103B40000091C2011091C3012091C4013091C501BF -:103B5000DC01CB01802B912BA22BB32B8093C201D4 -:103B60009093C301A093C401B093C5011F910F911D -:103B70000C94E6180F931F930091C2011091C3019A -:103B80002091C4013091C501DC01CB018023912338 -:103B9000A223B3238093C2019093C301A093C401D5 -:103BA000B093C5011F910F910C94E6180F931F93CA -:103BB0000091C2011091C3012091C4013091C5014F -:103BC000DC01CB0180279127A227B3278093C20174 -:103BD0009093C301A093C401B093C5011F910F91AD -:103BE0000C94E6180895CF92DF92EF92FF920F9314 -:103BF0001F93CF93DF938C01C090C601D090C70173 -:103C0000E090C801F090C9018091C2019091C30178 -:103C1000A091C401B091C501C82AD92AEA2AFB2A79 -:103C2000CFE1D0E0D701C6010C2E04C0B695A79510 -:103C3000979587950A94D2F780FF06C0B8018C2F1C -:103C40000E94410A019721F4219760F780E001C0AA -:103C50008C2FDF91CF911F910F91FF90EF90DF900C -:103C6000CF900895CF93DF93EC010E94F31DBE0126 -:103C70000E94410ADF91CF910895CB010E94321E2C -:103C800008958091CA0185958595859508958091BF -:103C9000CA018770089598E0899F90011124262B0E -:103CA0002093CA010C94371D2091CA01809582236C -:103CB0008093CA01982F977069F430E0482F5527F8 -:103CC00047FD50952417350729F0859585958595ED -:103CD0000C94581D08959091CA01977081E009F4E1 -:103CE00080E0089590910B01992321F090910C01AF -:103CF000911109C020910D0130910E01F901329608 -:103D00009FEF40E030C0982F9695969596959F30FE -:103D1000A0F4E0910D01F0910E01E90FF11D877003 -:103D200021E030E0A90102C0440F551F8A95E2F757 -:103D3000CA019181892B818308959091DF0190FFC1 -:103D400023C01F928F938DED94E09F938F930E94D9 -:103D500005070F900F900F900F9008959F3F39F037 -:103D60004F5F4E3041F051915813F8CF0DC05111B3 -:103D7000F7CF942FF5CF9F3F39F0F901E90FF11DEF -:103D800097FDFA9582830895089590910B019923E8 -:103D900021F090910C01911109C020910D013091F9 -:103DA0000E01F9013296205F3F4F30C0982F969553 -:103DB000969596959F30A8F4E0910D01F0910E0133 -:103DC000E90FF11D877021E030E0A90102C0440F26 -:103DD000551F8A95E2F7CA018095918189238183D5 -:103DE00008959091DF0190FF16C01F928F938FEB83 -:103DF00094E09F938F930E9405070F900F900F9070 -:103E00000F9008953196E217F30729F090819813E7 -:103E1000F9CF1082F7CF089581E090E0E0910D0195 -:103E2000F0910E01E80FF91F108201968031910583 -:103E3000A9F708959091DE01892B8093DE01089502 -:103E400080959091DE0189238093DE010895109280 -:103E5000DE0108959091DD01892B8093DD010895A5 -:103E600080959091DD0189238093DD010895109262 -:103E7000DD0108959091DC01892B8093DC01089588 -:103E800080959091DC0189238093DC010895109244 -:103E9000DC0108958093CB0108951092CB01089521 -:103EA00080910D0190910E01FC0131969C01205FE3 -:103EB0003F4F80E0919191118F5FE217F307D1F7A7 -:103EC0000895E0910D01F0910E018091DE01808353 -:103ED000E0910D01F0910E0190818091DD01892B1F -:103EE0008083E0910D01F0910E0190818091DC01C1 -:103EF000892B80838091CB01882361F0E0910D01B3 -:103F0000F0910E019081892B80830E94501F8111B6 -:103F10001092CB0180910D0190910E010C94F01341 -:103F20009093490180934801089520E0009739F06B -:103F3000AC0141505109842395232F5FF7CF822F85 -:103F400008958295982F9C7C392F36953695282F89 -:103F5000237344E0249FC0011124932F982B292F11 -:103F60002A7A2695892F8575880F822B08951F93AD -:103F7000CF93DF931F92CDB7DEB799830E94A11F25 -:103F8000182F9981892F0E94A11F212F30E0322FF5 -:103F90002227A901482BCA010F90DF91CF911F91D1 -:103FA00008958091F401843021F11092E00120E421 -:103FB00088E190E00FB6F894A895809360000FBE5A -:103FC0002093600080E00E94DC0A83B7817F8460D8 -:103FD00083BF83B7816083BF7894889583B78E7FD2 -:103FE00083BF88E10FB6F894809360001092600060 -:103FF0000FBE0895089508950E94FA1F0E94370B7E -:104000000E94FB1F0E940B0C91E0811101C090E007 -:10401000892F08950E94FA180E94E4130C94DC0A78 -:104020001F920F920FB60F9211248F939F93AF930D -:10403000BF938091E001811113C08091E1019091C3 -:10404000E201A091E301B091E4014196A11DB11DEF -:104050008093E1019093E201A093E301B093E40126 -:10406000BF91AF919F918F910F900FBE0F901F90B6 -:10407000189582E084BD93E095BD9AEF97BD80933B -:104080006E0008952FB7F8948091E1019091E201BC -:10409000A091E301B091E4012FBF0895CF92DF9288 -:1040A000EF92FF920F931F932FB7F8944091E10185 -:1040B0005091E2016091E3017091E4012FBF6A0128 -:1040C0007B01EE24FF248C0120E030E0C016D106F5 -:1040D000E206F30610F4415051099A01281B390BEE -:1040E000C9011F910F91FF90EF90DF90CF9008953D -:1040F0001F920F920FB60F9211248F939F93AF933D -:10410000BF938091E1019091E201A091E301B09110 -:10411000E4010196A11DB11D8093E1019093E2019C -:10412000A093E301B093E401BF91AF919F918F9170 -:104130000F900FBE0F901F9018950E94E210F894F8 -:104140002FEF87EA91E6215080409040E1F700C0D0 -:10415000000087E090EBDC018093FE019093FF016B -:10416000A0930002B09301029CE088E10FB6F8949E -:10417000A895809360000FBE90936000FFCF0E94CF -:10418000F420811102C00E94DA200E94FF20809357 -:10419000DF010E9407218093FD0187FB882780F9BA -:1041A00080930C010E940321682F70E080E090E072 -:1041B0000C94BA1C6DEE7EEF80E090E00E943429F2 -:1041C00060E082E090E00E94222960E083E090E0DD -:1041D0000E94222960E084E090E00E94222960E0B1 -:1041E00085E090E00C94222980E090E00E941C2958 -:1041F00021E08D3E9E4F09F020E0822F089582E05D -:1042000090E00C94142983E090E00C94142984E04D -:1042100090E00C941429682F84E090E00C942229FB -:104220008091E70180FF0BC06091120185E0689FDB -:10423000B001112475956795759567952BC081FF21 -:1042400009C06091120185E0689FB0011124759545 -:10425000679520C082FF07C06091120185E0689FCA -:10426000B001112417C09091E8019923D1F0609119 -:104270001101961788F72091120185E0289F90017F -:104280001124929FA001939F500D112470E0CA0148 -:104290000E94E6286038710540F46115710539F017 -:1042A00002C065E070E0862F08958FE7089581E0F1 -:1042B00008958091E70180FF08C06091100170E0CF -:1042C000759567957595679521C081FF06C06091CA -:1042D000100170E07595679519C082FF04C0609168 -:1042E000100170E010C09091E8019923C1F0609135 -:1042F0000F019617A0F780911001899FC00111242A -:1043000070E00E94E6286038710528F46115710597 -:1043100021F0862F08958FE7089581E0089561E0E8 -:1043200070E0F4CF803F21F40E941021819504C0F9 -:10433000813F29F40E9410218093EB010895823F70 -:1043400021F40E941021819504C0833F29F40E942A -:1043500010218093EA010895893F19F40E945921A0 -:1043600005C08A3F31F40E94592181958093EC0168 -:1043700008958B3F21F40E945921819504C08C3F00 -:1043800029F40E9459218093ED010895843F21F47E -:104390008091E901816017C0853F21F48091E90196 -:1043A000826011C0863F21F48091E90184600BC0D6 -:1043B000873F21F48091E901886005C0883F31F48E -:1043C0008091E90180618093E90108958D3F21F496 -:1043D0008091E70181600BC08E3F21F48091E7015D -:1043E000826005C08F3F29F48091E701846080934B -:1043F000E7010895803F39F48091EB0187FF6CC09D -:104400001092EB0169C0813F29F48091EB011816ED -:10441000BCF362C09091EA01823F29F497FF5CC02F -:104420001092EA0159C0833F19F41916CCF354C015 -:10443000893F41F48091EC0118160CF04DC01092A8 -:10444000EC014AC08A3F29F48091EC0187FF44C007 -:10445000F6CF8B3F39F48091ED0187FF3DC010927C -:10446000ED013AC08C3F29F48091ED011816BCF3A0 -:1044700033C0843F21F48091E9018E7F17C0853FCE -:1044800021F48091E9018D7F11C0863F21F4809154 -:10449000E9018B7F0BC0873F21F48091E901877F81 -:1044A00005C0883F31F48091E9018F7E8093E90156 -:1044B00013C08D3F21F48091E7018E7F0BC08E3FAA -:1044C00021F48091E7018D7F05C08F3F29F4809111 -:1044D000E7018B7F8093E7018091EA0181110EC093 -:1044E0008091EB0181110AC08091EC01811106C01D -:1044F0008091ED01811102C01092E8010895809130 -:10450000DF0183FF7EC082E295E00E946C0680910D -:10451000E9011F928F938DE195E09F938F930E9405 -:1045200005078BE195E00E946C068091EA01282F37 -:10453000332727FD30953F938F9388E195E09F9334 -:104540008F930E94050786E195E00E946C0680919A -:10455000EB01282F332727FD30953F938F9383E17D -:1045600095E09F938F930E94050781E195E00E945B -:104570006C068091EC01282F332727FD30953F935F -:104580008F938EE095E09F938F930E9405078CE0B8 -:1045900095E00E946C068091ED01282F332727FDBE -:1045A00030953F938F9389E095E09F938F930E947E -:1045B000050786E095E00E946C068091E8011F9255 -:1045C0008F9383E095E09F938F930E94050781E08E -:1045D00095E00E946C068091E7011F928F938EEF09 -:1045E00094E09F938F930E9405078BEF94E00E94C5 -:1045F0006C068DB79EB74C960FB6F8949EBF0FBE53 -:104600008DBF89EE91E00E9439140E944220909360 -:10461000E6018093E50108951F93CF93DF93809186 -:10462000E5019091E6010E944E20AC019091E801D5 -:10463000992321F02091130130E006C0209114014C -:104640008AE0289F900111244217530708F486C07E -:104650008091EA01C091EB01D091EC011091ED0144 -:10466000811107C0C11176C0D11174C0111172C07F -:1046700075C09F3F19F09F5F9093E801181624F4CE -:104680000E9410218093EA018091EA0187FF05C012 -:104690000E94102181958093EA011C1624F40E9447 -:1046A00010218093EB018091EB0187FF05C00E94F0 -:1046B000102181958093EB016091EA01662339F125 -:1046C000C091EB01CC2319F1772767FD7095872FF7 -:1046D000972F0E94EB2723E333E343E35FE30E943A -:1046E0004F280E94B8276093EA016C2F772767FD57 -:1046F0007095872F972F0E94EB2723E333E343E343 -:104700005FE30E944F280E94B8276093EB011D16BB -:1047100024F40E9459218093EC018091EC0187FFE1 -:1047200005C00E94592181958093EC01111624F453 -:104730000E9459218093ED018091ED0187FF05C012 -:104740000E94592181958093ED01DF91CF911F91B6 -:104750000C947F229F3F09F08ECF96CFDF91CF91AF -:104760001F910895E9EEF1E085E0DF011D928A9541 -:10477000E9F71092E8011092E701089585E497E0C7 -:104780000E946C061F9281E08F931F9285E08F93A9 -:1047900087EF96E09F938F930E9405070F900F90ED -:1047A0000F900F900F900F9008958330E9F128F447 -:1047B000813061F0823009F10895853009F462C0DA -:1047C00008F449C0863009F474C00895809114013A -:1047D000262F30E0280F311D2F3F310524F4680FBC -:1047E0006093140103C08FEF809314018091140132 -:1047F0001F928F9380E396E072C080911301262F61 -:1048000030E0280F311D2F3F310524F4680F6093ED -:10481000130103C08FEF80931301809113011F9246 -:104820008F938EE196E05BC080911201262F30E0DD -:10483000280F311D2F3F310524F4680F60931201BA -:1048400003C08FEF80931201809112011F928F930A -:104850008BE096E044C080911101262F30E0280FB4 -:10486000311D2F3F310524F4680F6093110103C0FF -:104870008FEF80931101809111011F928F9386EF2A -:1048800095E02DC080911001262F30E0280F311DBA -:104890002F3F310524F4680F6093100103C08FEFA0 -:1048A00080931001809110011F928F938DED95E000 -:1048B00016C080910F01262F30E0280F311D2F3FA9 -:1048C000310524F4680F60930F0103C08FEF8093CC -:1048D0000F0180910F011F928F9382EC95E09F93BF -:1048E0008F930E9405070F900F900F900F900895DF -:1048F000833081F128F4813059F08230D1F008956D -:10490000853009F449C0B8F1863009F456C00895DD -:1049100080911401681720F4861B8093140102C053 -:1049200010921401809114011F928F9383EB95E0F4 -:1049300054C080911301681720F4861B80931301E3 -:1049400002C010921301809113011F928F9381EA8C -:1049500095E043C080911201681720F4861B809374 -:10496000120102C010921201809112011F928F93C6 -:104970008EE895E032C080911101681720F4861B03 -:104980008093110102C010921101809111011F92B8 -:104990008F9389E795E021C080911001681720F47A -:1049A000861B8093100102C01092100180911001AB -:1049B0001F928F9380E695E010C080910F016817D9 -:1049C00020F4861B80930F0102C010920F0180918A -:1049D0000F011F928F9385E495E09F938F930E9420 -:1049E00005070F900F900F900F900895CF93C82F49 -:1049F0001F928F938AE498E09F938F930E940507FC -:104A000081E090E0A0E0B0E0BC01CD0104C0660F01 -:104A1000771F881F991FCA95D2F70E94BA1C0F9062 -:104A20000F900F900F90CF910C94FA18CF9387327C -:104A3000A8F58E3108F035C1803109F4A5C0F8F42D -:104A4000873009F465C0A8F4863009F030C1809140 -:104A5000DF01817F8E7F8093DF018FEC99E00E94E0 -:104A60006C0680E39CE00E946C0681E08093EF017D -:104A70004DC08B30F1F18E3009F472C018C186310F -:104A800009F4B6C020F4813109F4F9C010C18931AC -:104A900009F497C08B3109F44FC009C1883349F13B -:104AA00050F4893209F4FFC0853309F4FCC0873221 -:104AB00009F4F9C0FCC0833409F4F5C028F48A3342 -:104AC00008F4F5C08953F0C0883409F0F0C00E94A2 -:104AD000FA1884E19CE00E946C062FEF83ED90E3CE -:104AE000215080409040E1F700C000000E949D20CE -:104AF0000DC086EF99E062C08BEF9BE00E946C06D0 -:104B00008091DF01897F877F8093DF01C1E0D4C07E -:104B10008091DF01C82FC095C170C0FB80F98093E0 -:104B2000DF01CC2349F388E09CE00E946C06809171 -:104B3000DF01866088603DC09091DF0191FBCC274A -:104B4000C0F981E0C827892FC0FB81F98093DF017C -:104B5000CC2319F08EEE9BE027C080EE9BE02EC0A8 -:104B60009091DF0192FBCC27C0F981E0C827892F03 -:104B7000C0FB82F98093DF01CC2319F081ED9BE02B -:104B800013C081EC9BE01AC09091DF0193FBCC270E -:104B9000C0F981E0C827892FC0FB83F98093DF012A -:104BA000CC2351F085EB9BE00E946C068091DF01E5 -:104BB00081608093DF0180C088EA9BE00E946C06E0 -:104BC000A5CF80EC99E00E946C0685E999E00E94EF -:104BD0006C068BE599E00E946C068EE299E00E94DB -:104BE0006C0683EF98E00E946C0688EC98E0E6CFB4 -:104BF0008AEB98E00E946C060E94E4131F928F9348 -:104C000080EA98E09F938F930E94050780910B01A3 -:104C10001F928F9389E898E09F938F930E940507D6 -:104C200080917A011F928F9386E798E09F938F93EC -:104C30000E94050780910C011F928F9383E698E0F4 -:104C40009F938F930E9405078091E1019091E2016B -:104C5000A091E301B091E401BF93AF939F938F9331 -:104C60008FE498E09F938F930E9405078DB79EB7BE -:104C700046960FB6F8949EBF0FBE8DBF47CF0E94D9 -:104C8000FA18C0910C0181E0C827C0930C01CC2315 -:104C900029F08EE99BE00E946C060EC083E99BE040 -:104CA0008DCF8D5101C080E00E94F6242FCF81E985 -:104CB0009BE00E946C06C0E08C2FCF91089580E0AD -:104CC000089580E00895CF93C82F8091EF0181303F -:104CD00071F020F0823009F44BC042C1E0910D0127 -:104CE000F0910E018081823209F03CC107C0E09151 -:104CF0000D01F0910E018081823261F48C2F0E94AF -:104D00005F26811104C08C2F0E9416252FC081E0E0 -:104D100090E02CC08C2F0E946126811126C0C431E6 -:104D2000E1F070F4CB3081F0C031D1F40E94BE23A9 -:104D300082E498E00E946C0682E08093EF0115C047 -:104D4000C93259F0C83361F48FEC99E00E946C06C7 -:104D500086E498E00E946C0608C01092EF0104C13E -:104D600080E498E00E946C06FFC081E08170FEC084 -:104D7000C43228F5CE3108F0C1C0CB30A1F1D0F457 -:104D8000C73009F0D3C08EE18093140182E3809391 -:104D900013018AE08093120184E18093110188E07D -:104DA0008093100188E280930F0186EE96E00E94C6 -:104DB0006C06BFC0C33149F1C431C1F0B7C0CB34B8 -:104DC00009F4A9C028F4C93289F0C83361F0AEC033 -:104DD000C13509F49EC0C23509F499C0CE3409F03A -:104DE000A5C06AE09EC00E94BE23A3C08091EE01D0 -:104DF000882319F01092EE019CC083EF96E00E9488 -:104E00006C0681E08093EF01B1C08DEC96E00E94CA -:104E10006C068BEB96E00E946C06809114011F9249 -:104E20008F9388EB96E09F938F930E94050786EB04 -:104E300096E00E946C0684EA96E00E946C068091DF -:104E400013011F928F9381EA96E09F938F930E94A4 -:104E500005078FE996E00E946C0680E996E00E94C3 -:104E60006C06809112011F928F938DE896E09F93BC -:104E70008F930E9405078BE896E00E946C068AE7F4 -:104E800096E00E946C06809111011F928F9387E734 -:104E900096E09F938F930E94050785E796E00E9416 -:104EA0006C0680E696E00E946C06809110011F92CD -:104EB0008F938DE596E09F938F930E9405078BE576 -:104EC00096E00E946C0684E496E00E946C06809155 -:104ED0000F011F928F9381E496E09F938F930E941E -:104EE00005078FE396E00E946C068DB79EB7489643 -:104EF0000FB6F8949EBF0FBE8DBF1BC0CE51EC2FD6 -:104F0000F0E0E35CFE4F80818093EE0112C061E02F -:104F100003C061E006C06AE08091EE010E94D523E3 -:104F200008C08091EE010E94782403C084EE96E0D0 -:104F300013C08091EE01882369F01F928F938EED4C -:104F400096E09F938F930E9405070F900F900F900C -:104F50000F9004C08BED96E00E946C0681E006C0C5 -:104F60001092EF0180E002C080E000CFCF91089561 -:104F700004D06894B1118DC0089570D088F09F5707 -:104F800090F0B92F9927B751A0F0D1F0660F771F95 -:104F9000881F991F1AF0BA95C9F712C0B13081F075 -:104FA00077D0B1E0089574C0672F782F8827B85F55 -:104FB00039F0B93FCCF3869577956795B395D9F7D6 -:104FC0003EF490958095709561957F4F8F4F9F4FE0 -:104FD0000895E89409C097FB3EF4909580957095EC -:104FE00061957F4F8F4F9F4F9923A9F0F92F96E935 -:104FF000BB279395F695879577956795B795F111AA -:10500000F8CFFAF4BB0F11F460FF1BC06F5F7F4F46 -:105010008F4F9F4F16C0882311F096E911C0772358 -:1050200021F09EE8872F762F05C0662371F096E861 -:10503000862F70E060E02AF09A95660F771F881F30 -:10504000DAF7880F9695879597F9089557FD905848 -:10505000440F551F59F05F3F71F04795880F97FB3C -:10506000991F61F09F3F79F08795089512161306F6 -:105070001406551FF2CF4695F1DF08C01616170625 -:105080001806991FF1CF869571056105089408955A -:10509000E894BB2766277727CB0197F908950BD0B3 -:1050A00078C069D028F06ED018F0952309F05AC066 -:1050B0005FC01124EECFCADFA0F3959FD1F3950F07 -:1050C00050E0551F629FF001729FBB27F00DB11D8C -:1050D000639FAA27F00DB11DAA1F649F6627B00D1C -:1050E000A11D661F829F2227B00DA11D621F739F05 -:1050F000B00DA11D621F839FA00D611D221F749F13 -:105100003327A00D611D231F849F600D211D822F59 -:10511000762F6A2F11249F5750408AF0E1F08823A0 -:105120004AF0EE0FFF1FBB1F661F771F881F9150AD -:105130005040A9F79E3F510570F014C0AACF5F3FC1 -:10514000ECF3983EDCF3869577956795B795F795E0 -:10515000E7959F5FC1F7FE2B880F911D9695879568 -:1051600097F9089597F99F6780E870E060E00895E7 -:105170009FEF80EC089500240A941616170618066F -:105180000906089500240A9412161306140605064B -:105190000895092E0394000C11F4882352F0BB0FDC -:1051A00040F4BF2B11F460FF04C06F5F7F4F8F4F3F -:1051B0009F4F0895991B79E004C0991F961708F036 -:1051C000961B881F7A95C9F78095089597FB072E3F -:1051D00016F4009407D077FD09D00E94002907FC3F -:1051E00005D03EF4909581959F4F089570956195F7 -:1051F0007F4F0895EE0FFF1F0590F491E02D099465 -:10520000AA1BBB1B51E107C0AA1FBB1FA617B707EC -:1052100010F0A61BB70B881F991F5A95A9F7809508 -:105220009095BC01CD010895F999FECF92BD81BD45 -:10523000F89A992780B50895A8E1B0E042E050E0DF -:105240000C943C29262FF999FECF92BD81BDF89A86 -:10525000019700B4021639F01FBA20BD0FB6F894BA -:10526000FA9AF99A0FBE08950196272F0E942329D2 -:105270000C942229DC01CB01FC01F999FECF06C078 -:10528000F2BDE1BDF89A319600B40D924150504004 -:08529000B8F70895F894FFCF70 -:10529800FF210C120DEF0CBB0C870C0101CC01286F -:1052A80008140A321E796653436C49636F7F697329 -:1052B800091939293F4D3620394D040004CA03AA7B -:1052C800037103E402FD0216032F034F03010203D7 -:0852D8000405060708090000A7 -:00000001FF diff --git a/keyboards/atreus/keymaps/gerb/compiled.hex b/keyboards/atreus/keymaps/gerb/compiled.hex deleted file mode 100644 index 963a83ad7..000000000 --- a/keyboards/atreus/keymaps/gerb/compiled.hex +++ /dev/null @@ -1,1339 +0,0 @@ -:100000000C9472060C94B6060C94B6060C94B606C4 -:100010000C94B6060C94B6060C94B6060C94B60670 -:100020000C94B6060C94B6060C94B5110C94871279 -:100030000C9468200C94B6060C94B6060C94B60684 -:100040000C94B6060C94B6060C94B6060C94B60640 -:100050000C94B6060C94D0200C94B6060C94B606FC -:100060000C94B6060C94B6060C94B6060C94B60620 -:100070000C94B6060C94B6060C94B6060C94B60610 -:100080000C94B6060C94B6060C94B6060C94B60600 -:100090000C94B6060C94B6060C94B6060C94B606F0 -:1000A0000C94B6060C94B6060C94B606F41216130D -:1000B0000414161304145B137E130414D313E613F1 -:1000C00029172917581758179717B717E718E71858 -:1000D000C217E71872187218D818E718E718E1184D -:1000E0007F187F187F187F187F187F187F187F1858 -:1000F0007F187F187F187F187F187F187F187F1848 -:100100008F189D18A418AB18B51814001A00080011 -:100110001500170000001C0018000C00120013004E -:1001200004001600070009000A0000000B000D0083 -:100130000E000F0033001D001B0006001900050013 -:10014000E2001100100036003700380029002B00B3 -:10015000E300E1002A00E4002C0003522D003400EB -:10016000280014001A00090013000A0000000D0006 -:100170000F0018001C0033000400150016001700C3 -:10018000070000000B00110008000C0012001D0009 -:100190001B00060019000500E2000E0010003600EA -:1001A0003700380029002B00E300E1002A00E400BA -:1001B0002C0003522D003400280034003600370094 -:1001C00013001C00000009000A00060015000F00C3 -:1001D00004001200080018000C00000007000B00CB -:1001E000170011001600330014000D000E001B0054 -:1001F000E200050010001A0019001D0029002B0064 -:10020000E300E1002A00E4002C0003522D00380036 -:10021000280049004A0052004D004B000000A90090 -:100220002400250026002F004C00500051004F00F4 -:100230004E000000AA0021002200230030003500FB -:10024000AC00AE00AB002D00E200A8001E001F00B5 -:100250002000310004546500E300E1002A00E400BE -:100260002C000100370027002E000100FB00F000E9 -:10027000FC00F90000000053400041004200430030 -:100280000100F200F100F300FA00000001533F000A -:100290003E003F004400F700F400F500F600F700D0 -:1002A000E20002533A003B003C004500010001001F -:1002B000E300E1002A00E4002C000100010001003D -:1002C00000500A44454255473A20656E61626C65AC -:1002D000642E0A005374617465206F6620726F7714 -:1002E0002025583A2025303136620A0048756D6164 -:1002F0006E2D7265616461626C65206D61747269F6 -:10030000782073746174653A0D0A004465626F75F4 -:100310006E63696E672064656C61792072656D61DA -:10032000696E696E673A2025580A005B735D004B61 -:100330006579626F6172642073746172742E0A0051 -:100340005B575D005B535D005B525D005B445D008D -:100350005B435D000E034100740072006500750090 -:1003600073000000180354006500630068006E000D -:100370006F006D0061006E006300790000000403EF -:10038000090409028D00050100A0FA09040000011A -:1003900003010100092111010001223F000705812D -:1003A0000308000A090401000103010200092111E8 -:1003B000010001224D000705820308000A0904021A -:1003C000000103000000092111010001223600078D -:1003D00005830308000A0904030002030000000962 -:1003E00021110100012220000705840320000107DC -:1003F00005040320000109040400010300000009B2 -:1004000021110100012239000705850310000112A6 -:1004100001100100000008EDFE6060010001020013 -:100420000105010906A101050719E029E7150025C5 -:1004300001950875018102050819012905950575C1 -:10044000019102950175039101050719002977159E -:10045000002501957875018102C00631FF0974A15C -:10046000010975150025FF9520750881020976158B -:100470000025FF952075089102C005010980A101A2 -:10048000850216010026B7001A01002AB700751070 -:1004900095018100C0050C0901A101850316010029 -:1004A000269C021A01002A9C02751095018100C049 -:1004B00005010902A1010901A10005091901290588 -:1004C00015002501950575018102950175038101CE -:1004D0000501093009311581257F950275088106CE -:1004E00009381581257F950175088106050C0A38A4 -:1004F000021581257F950175088106C0C005010997 -:1005000006A101050719E029E715002501950875E1 -:1005100001810295017508810105081901290595D8 -:1005200005750191029501750391010507190029CF -:10053000FF150025FF950675088100C00A002530CB -:10054000325820006B6579626F6172645F7265700A -:100550006F72743A20004B6579626F617264204C4F -:100560004544732073746174653A2025780A0064E9 -:10057000656C5F6B65795F6269743A2063616E27B1 -:10058000742064656C3A20253032580A0061646436 -:100590005F6B65795F6269743A2063616E277420CE -:1005A0006164643A20253032580A00290A00257512 -:1005B000002F002575005D280025640020002564BB -:1005C00000200025640020002564007C00253032D6 -:1005D00058006D6F7573656B6579205B62746E7C16 -:1005E000782079207620685D287265702F61636CB1 -:1005F000293A205B006D6B5F776865656C5F746995 -:100600006D655F746F5F6D6178203D2025640A0021 -:100610006D6B5F776865656C5F6D61785F73706542 -:100620006564203D2025640A006D6B5F74696D650B -:100630005F746F5F6D6178203D2025640A006D6BEB -:100640005F6D61785F7370656564203D2025640A85 -:10065000006D6B5F696E74657276616C203D20255C -:10066000640A006D6B5F64656C6179203D202564D0 -:100670000A006D6B5F776865656C5F74696D655FB7 -:10068000746F5F6D6178203D2025640A006D6B5F9B -:10069000776865656C5F6D61785F73706565642010 -:1006A0003D2025640A006D6B5F74696D655F746F32 -:1006B0005F6D6178203D2025640A006D6B5F6D6180 -:1006C000785F7370656564203D2025640A006D6B5A -:1006D0005F696E74657276616C203D2025640A0046 -:1006E0006D6B5F64656C6179203D2025640A000AAA -:1006F00000257500363A20776865656C5F74696D12 -:10070000655F746F5F6D61783A20000A002575009F -:10071000353A20776865656C5F6D61785F737065E9 -:1007200065643A20000A00257500343A2074696D2A -:10073000655F746F5F6D61783A20000A002575006F -:10074000333A206D61785F73706565643A20000A02 -:1007500000257500323A20696E74657276616C28E6 -:100760006D73293A20000A00257500313A2064652E -:100770006C6179282A31306D73293A20000A092DDD -:100780002056616C756573202D0A004D3E004D2585 -:10079000643E20003F007365742064656661756C7B -:1007A000740A00433E200077686572652064656CBA -:1007B00074613A20637572736F723D25642C2077E3 -:1007C0006865656C3D25640A5365652068747470BE -:1007D0003A2F2F656E2E77696B6970656469612E9B -:1007E0006F72672F77696B692F4D6F7573655F6BDC -:1007F0006579730A000A092D204D6F7573656B6565 -:1008000079202D0A4553432F713A09717569740A8D -:10081000313A0964656C6179282A31306D73290A8F -:10082000323A09696E74657276616C286D73290AB3 -:10083000333A096D61785F73706565640A343A090B -:1008400074696D655F746F5F6D61780A353A097719 -:100850006865656C5F6D61785F73706565640A36A5 -:100860003A09776865656C5F74696D655F746F5F81 -:100870006D61780A0A703A097072696E7420766147 -:100880006C7565730A643A09736574206465666102 -:10089000756C74730A75703A092B310A646F776E40 -:1008A0003A092D310A706775703A092B31300A7098 -:1008B00067646F776E3A092D31300A0A7370656587 -:1008C00064203D2064656C7461202A206D61785F2E -:1008D0007370656564202A202872657065617420D4 -:1008E0002F2074696D655F746F5F6D6178290A00F0 -:1008F0003F004D3E2000433E20004C25640A00741A -:10090000696D65725F636F756E743A202530346C63 -:10091000580A006B6579626F6172645F6E6B726F0B -:100920003A2025580A006B6579626F6172645F69CD -:10093000646C653A2025580A006B6579626F6172B4 -:10094000645F70726F746F636F6C3A2025580A0091 -:10095000686F73745F6B6579626F6172645F6C65F9 -:10096000647328293A2025580A000A092D20537457 -:1009700061747573202D0A004743433A20342E39A1 -:100980002E32204156522D4C4942433A20312E38C6 -:100990002E31204156525F415243483A20617672CF -:1009A000350A004F5054494F4E533A204C5546415A -:1009B000204D4F5553454B45592045585452414BB6 -:1009C000455920434F4E534F4C4520434F4D4D41C9 -:1009D0004E44204E4B524F20343039360A00425597 -:1009E000494C443A20313637313865662D64697296 -:1009F0007479202832333A30393A3131204A756ED1 -:100A00002020392032303136290A005649443A2014 -:100A100030784645454428546563686E6F6D616E55 -:100A2000637929205049443A2030783630363028CE -:100A300041747265757329205645523A20307830DA -:100A40003030310A00444553433A20712E6D2E6BED -:100A50002E206B6579626F617264206669726D77B2 -:100A600061726520666F72204174726575730A0049 -:100A70000A092D2056657273696F6E202D0A000ACF -:100A8000092D20436F6E736F6C65202D0A4553430B -:100A90002F713A09717569740A6D3A096D6F757332 -:100AA000656B65790A000A092D204D61676963202D -:100AB0002D0A443A094465627567204D6573736178 -:100AC000676520546F67676C650A583A094D617411 -:100AD000726978204465627567204D6F64652054A3 -:100AE0006F67676C65202D2053686F77206B657981 -:100AF0007072657373657320696E206D61747269BD -:100B00007820677269640A4B3A094B6579626F61B4 -:100B1000726420446562756720546F67676C652056 -:100B20002D2053686F77206B657970726573732021 -:100B30007265706F72740A4D3A0944656275672078 -:100B40004D6F75736520546F67676C650A563A0977 -:100B500056657273696F6E0A533A095374617475FE -:100B6000730A433A09416374697661746520436F7F -:100B70006E736F6C65204D6F64650A46312D46318A -:100B8000303A0953776974636820746F204C617937 -:100B9000657220302D392028463130203D204C30E0 -:100BA000290A302D393A0953776974636820746FC4 -:100BB000204C6179657220302D390A4553433A093A -:100BC00053776974636820746F204C617965722073 -:100BD000302028616C7465726E617465206B657974 -:100BE0002031290A47524156453A095377697463BF -:100BF0006820746F204C6179657220302028616C08 -:100C00007465726E617465206B65792032290A50B3 -:100C1000415553453A094A756D7020746F20426FF3 -:100C20006F746C6F616465722028526573657429F6 -:100C30000A4E3A094E4B524F20546F67676C650A53 -:100C4000003F004E4B524F3A206F66660A004E4BF3 -:100C5000524F3A206F6E0A000A6D6F7573653A2025 -:100C60006F66660A000A6D6F7573653A206F6E0ACB -:100C7000000A6B6579626F6172643A206F66660A7A -:100C8000000A6B6579626F6172643A206F6E0A00C8 -:100C90000A6D61747269783A206F66660A000A6D9F -:100CA00061747269783A206F6E0A000A6465627531 -:100CB000673A206F66660A000A64656275673A20C3 -:100CC0006F6E0A000A0A4A756D70696E6720746F4C -:100CD00020626F6F746C6F616465722E2E2E20001F -:100CE000433E200011241FBECFEFDAE0DEBFCDBFB0 -:100CF00004B603FE24C08091FE019091FF01A091F3 -:100D00000002B09101028730904BA740B04BB9F47C -:100D10001092FE011092FF01109200021092010247 -:100D200014BE84B7877F84BF88E10FB6F8948093A0 -:100D30006000109260000FBEE0E0F8E3099511E05A -:100D4000A0E0B1E0E8E4F3E502C005900D92A8341C -:100D5000B107D9F711E0A8E4B1E001C01D92AE3FA0 -:100D6000B107E1F70E94EF0E0C94A2290C94000049 -:100D7000FF93EF93E0914801F0914901309709F01A -:100D80000995EF91FF910895FC018591803011F054 -:100D9000EFDFFBCF0895FF27E0E230E247FF0CC012 -:100DA000419597FF09C0EDE260957095809590950B -:100DB000611D711D811D911D27FF02C0219530E32A -:100DC00050E2AA27660F771F881F991FAA1FA41732 -:100DD00010F0A41B63955A95A9F7AA3008F0A95FF3 -:100DE000A05DAF93F395611571058105910541F7FC -:100DF000ED3211F4EF93F395F21718F43F93F39556 -:100E0000FBCF8F91B5DFFA95E1F70895E991F9915C -:100E10008591803021F0853219F0AADFF9CF08954D -:100E200020E0E89455915532C1F3503311F46894A1 -:100E300055915A3348F4505390F3220F022E220F4B -:100E4000220F200D250FF4CF0EF421958991999151 -:100E5000533619F3533729F1533559F1BC0188271B -:100E60009927E8945C3621F4899199916894559179 -:100E7000543639F446EF7EF077FF0DC08FEF9FEFC9 -:100E80000AC055374AE039F0583540E121F0523672 -:100E900042E009F00895FF93EF937DDFEF91FF911A -:100EA000B7CFFF93EF93FC0181918030B9F360DFFE -:100EB000FBCFFF93EF9368DFF1CFDF93CF93CDB7F5 -:100EC000DEB72596A3DFCF91DF91089508950895A9 -:100ED00086E697E0892B11F00C946607089587E663 -:100EE00097E0892B11F00C946707089561110BC0EE -:100EF000FC018281882321F085EE0E94CD1503C07C -:100F000085EE0E94951680E090E0089581E00895B6 -:100F100081E008950C94880708950F931F93CF9351 -:100F2000DF938C01FC01C081D181CE010E944B1E58 -:100F3000BE010E943A08EC01B8010E948A0788238A -:100F400009F48DC0F8018281882309F44AC0809198 -:100F5000550181111FC0C431F0E5DF0709F051C010 -:100F60000E948C0781E0809355010E949A20909303 -:100F700054018093530110924C0110924E01109233 -:100F80004D011092500110924F0110925201109297 -:100F9000510165C080915301909154010E94A62097 -:100FA000883C910570F480914C01E82FF0E0EE0F41 -:100FB000FF1FE35BFE4FD183C0838F5F80934C01A3 -:100FC0004EC0C43880E5D80721F0C538D04501F1BE -:100FD0003AC0F8018281882341F010924A0182E0F0 -:100FE0001EC0C438E0E5DE0759F580914A01811141 -:100FF00006C086E20E94CD1586E20E94951682E028 -:101000001CC0C438F0E5DF0741F3C538D045D9F43A -:10101000F8018281882331F010924B0180E20E9416 -:10102000E4161DC080914B01811106C087E20E9429 -:10103000CD1587E20E94951680E20E94EB160FC044 -:10104000C538D04529F381E080934A0180934B0154 -:10105000C801DF91CF911F910F910C94860780E01A -:10106000DF91CF911F910F9108950C9468070C9414 -:101070006F0708959BE0799FF00111249CE2899FFE -:10108000E00DF11D1124E60FF11DEE0FFF1FE65FCD -:10109000FE4F859194910895880F991FFC01E657A2 -:1010A000F040859194910895880F991FFC01E65FA7 -:1010B000FE4F8591949108950F931F93CF93DF93E3 -:1010C000EC01811520E3920750F5C11580E2D807A5 -:1010D00008F0C9C0CB3BD10590F4C83AD10508F05F -:1010E00070C0C53AD10508F061C0C430D10508F020 -:1010F000DAC1219709F0D4C101E010E014C2CF3F5A -:10110000D10511F008F0CFC1C03FD10508F0A8C04B -:10111000CE01805E9109089708F4C5C1C1C1C130F4 -:1011200090E5D90709F4A8C050F5C0318FE4D8077D -:1011300070F4C11590E4D90708F09AC0C11521E3F5 -:10114000D20708F0ADC1DD278E01106CECC1C115CE -:10115000D04509F0A5C10E9452198FEF94E32CE00D -:10116000815090402040E1F700C0000087E797E7FA -:1011700090930108809300080E94F520D4C1C11506 -:1011800097E5D90758F4C03121E5D20708F020C10E -:10119000C43180E5D80708F479C082C1CE019057E8 -:1011A0008115904108F07CC1DF7077C1C53AD10547 -:1011B00009F47BC1C63AD10509F07AC102E810E40E -:1011C000B2C1C83AD10509F476C1C93AD10509F4CA -:1011D00075C1CA3AD10509F474C1CB3AD10509F4F5 -:1011E00073C1CC3AD10509F472C1CD3AD10509F4E5 -:1011F00071C1C03BD10509F470C1CE3AD10509F4E3 -:101200006FC1CF3AD10509F46EC1C13BD10509F4D4 -:101210006DC1C23BD10509F46CC1C33BD10509F4D2 -:101220006BC1C43BD10509F46AC1C53BD10509F4C2 -:1012300069C1C63BD10509F468C1C73BD10509F4B2 -:1012400067C1C83BD10509F466C1C93BD10509F4A2 -:1012500065C1CA3BD10509F464C100E014E463C16F -:101260008E01106560C1CE019F700E9454085CC160 -:10127000DF708E01106A57C182EC92E00E94C406B2 -:101280008091DF0181608093DF014DC10E944C217C -:10129000811102C00E9432210E945F2190E0909350 -:1012A000FE018093FD01C23080E5D80721F48091D2 -:1012B000FD01816086C0C43090E5D90721F480919A -:1012C000FD0182607EC0C63020E5D20721F4809106 -:1012D000FD01846076C0C83080E5D80719F480919C -:1012E000FD0127C0CA3090E5D90721F48091FD01A6 -:1012F000806167C0CC3020E5D20721F48091FD01E8 -:1013000080625FC0CE3080E5D80721F48091FD0176 -:10131000806457C0C03190E5D90721F48091FD0168 -:1013200080684FC0C23120E5D20729F48091FD01C9 -:101330008460886046C0C33080E5D80721F480917E -:10134000FD018E7F3EC0C53090E5D90721F4809124 -:10135000FD018D7F36C0C73020E5D20721F4809192 -:10136000FD018B7F2EC0C93080E5D80719F480912C -:10137000FD0126C0CB3090E5D90721F48091FD0115 -:101380008F7E1FC0CD3020E5D20721F48091FD0172 -:101390008F7D17C0CF3080E5D80721F48091FD0103 -:1013A0008F7B0FC0C13190E5D90721F48091FD01F9 -:1013B0008F7707C0C331D04531F48091FD018B7F19 -:1013C000877F8093FD018091FD010E946321ABC066 -:1013D0008D2F99278F70992781309105D9F49E011F -:1013E0002370332702C0880F991F2A95E2F79C6863 -:1013F0008E0144E0000F111F4A95E1F7002713709A -:10140000802B912B53E0CC0FDD1F5A95E1F7C0766E -:10141000DD272FC08230910531F4DC2FCC278E01DF -:10142000016F106A80C08330910569F4CE0183702A -:10143000992701E010E002C0000F111F8A95E2F722 -:10144000C8019C680FC084309105B9F4CE01837047 -:10145000992701E010E002C0000F111F8A95E2F702 -:10146000C8019A6823E0CC0FDD1F2A95E1F7C07E02 -:10147000D7708C010C2B1D2B56C08530910531F493 -:10148000DC2FCC278E01046F106A4DC0069709F03F -:101490004AC0CF71DD27DC2FCC278E01106243C0FC -:1014A00000E010E040C08E013EC001E810E43BC007 -:1014B00003E810E438C002EE14E435C009EE14E489 -:1014C00032C00AEE14E42FC005EB14E42CC006EB86 -:1014D00014E429C007EB14E426C00CEC14E423C088 -:1014E0000DEC14E420C003E815E41DC00AE815E47F -:1014F0001AC002E915E417C004E915E414C001E2BA -:1015000016E411C003E216E40EC004E216E40BC0B8 -:1015100005E216E408C006E216E405C007E216E498 -:1015200002C00AE216E4C801DF91CF911F910F912A -:1015300008959BE0799FF00111249CE2899FE00DC2 -:10154000F11D1124E60FF11DEE0FFF1FE65FFE4FA8 -:1015500085919491803E9105E0F4803C910558F589 -:101560008133910509F46FC048F48932910509F47B -:1015700063C08A32910509F46DC072C08933910548 -:10158000E9F082389105D1F08533910509F44DC019 -:1015900067C0833E910581F138F4803E9105B9F032 -:1015A000823E9105D9F05CC0863E910561F1873E8F -:1015B0009105A1F155C00E944C0808952091FD01AC -:1015C00020FD02C021FF4CC080EE90E049C0809118 -:1015D000FD0180FFF9CF89E390E042C08091FD01D9 -:1015E00082FF0EC08091FD0184FF03C080E090E087 -:1015F00037C083EE90E034C08091FD0182FFF2CFCE -:1016000082EE90E02DC08091FD0183FF0BC08091A0 -:10161000FD0184FDEBCF87EE90E022C08091FD01BB -:1016200083FFF5CF86EE90E01BC08091FD0185FF22 -:1016300007C089E290E014C08091FD0185FFF9CFD9 -:1016400085E390E00DC08091FD0186FF07C08AE22E -:1016500090E006C08091FD0186FFF9CF81E390E024 -:101660000E945C08089508950C94330BE82FF0E075 -:10167000E05EFE4F8081E82FEF70F0E082958F7082 -:1016800021E030E0A90102C0440F551F8A95E2F71E -:1016900040A308950F931F93CF93DF9385B780687E -:1016A00085BF85B7806885BFC3E0D0E001E010E06A -:1016B000FE01E05EFE4F8081E82FEF70F0E021A197 -:1016C00082958F70A80102C0440F551F8A95E2F7DA -:1016D000CA01822B81A38C2F0E94360B219740F7E1 -:1016E0008AE090E061E070E0FC01EB5EFE4F20815B -:1016F000E22FEF70F0E042A122952F70DB0102C0D3 -:10170000AA0FBB1F2A95E2F79D01242B22A3019764 -:1017100058F7DF91CF911F910F910C943508EF92FC -:10172000FF920F931F93CF93DF930EE511E0C3E079 -:10173000EE24E394F12CD5E08C2F0E94360B8AE046 -:1017400090E040E050E0FC01EB5EFE4F6081E62F50 -:10175000EF70F0E020A130E062956F7002C0359527 -:1017600027956A95E2F720FD09C09701082E02C06F -:10177000220F331F0A94E2F7422B532B019718F7DD -:10178000F801929182918F018417950721F051837E -:101790004083D09300018C2F0E94360BC15060F61D -:1017A0008091000187FD42C09091DF0190FF10C041 -:1017B000282F332727FD30953F938F938BE093E0BD -:1017C0009F938F930E945D070F900F900F900F9043 -:1017D0008091000181508093000187FD07C08FE94F -:1017E0009FE00197F1F700C0000020C080915C01EC -:1017F00090915D01909365018093640180915A01FD -:1018000090915B01909363018093620180915801F4 -:1018100090915901909361018093600180915601EC -:101820009091570190935F0180935E010E94370869 -:1018300081E0DF91CF911F910F91FF90EF9008957C -:10184000E82FF0E0EE0FFF1FE25AFE4F80819181FA -:101850000895EF92FF920F931F93CF93DF938091A0 -:10186000DF0180FF04C08CEE92E00E94C4060EE50A -:1018700011E0C0E0D0E084EDE82E82E0F82E809107 -:10188000DF0180FF13C0F801808191810E940F2049 -:101890009F938F93DF93CF93FF92EF920E945D0708 -:1018A0000F900F900F900F900F900F9021960E5F5A -:1018B0001F4FC430D10519F7DF91CF911F910F91C0 -:1018C000FF90EF9008950F931F93CF9306E611E0DA -:1018D000C0E0F801929182918F010E94ED1FC80F24 -:1018E000F1E00E351F07A9F78C2FCF911F910F91B3 -:1018F00008958091790108959FB7F8941092680136 -:101900009FBF9091F401943009F057C09091E90085 -:101910009F703091EC00232F217030FD20E8922B36 -:1019200024E02093E9002091EB0020FF43C02091A8 -:10193000EE0027FF3FC020916601222321F0209175 -:10194000E80025FF37C01092660126E03091E800DC -:1019500035FD15C03091F401343061F53091EB0064 -:1019600035FD28C0215021F481E08093660122C01A -:10197000EFE9FFE03197F1F700C00000E7CF809377 -:10198000F1008091E80085FD0AC08091E80080FFA9 -:10199000FCCF8091E8008E778093E80006C08FB777 -:1019A000F89421E0209368018FBF9F709093E90025 -:1019B00080E008959F709093E9008FEF0895CF9392 -:1019C000DF9300D01F92CDB7DEB79C018091F40168 -:1019D000843019F593E099833B832A839093E9003F -:1019E0008FEF9091E800815095FD06C095ED9A9596 -:1019F000F1F700008111F5CF8091E80085FF0DC05F -:101A000040E050E063E070E0CE0101960E94A50F37 -:101A10008091E8008E778093E8000F900F900F90F0 -:101A2000DF91CF910895CF93DF9300D01F92CDB770 -:101A3000DEB72091F401243021F522E029839B8335 -:101A40008A8383E08093E9008FEF9091E8008150D2 -:101A500095FD06C095ED9A95F1F700008111F5CF3F -:101A60008091E80085FF0DC040E050E063E070E049 -:101A7000CE0101960E94A50F8091E8008E77809399 -:101A8000E8000F900F900F90DF91CF910895209173 -:101A9000F4012430F1F422E02093E9002FEF30919B -:101AA000E800215035FD06C035ED3A95F1F700000C -:101AB0002111F5CF2091E80025FF0BC040E050E058 -:101AC00065E070E00E94A50F8091E8008E7780931A -:101AD000E8000895CF93DF932091F401243009F0BA -:101AE00048C0EC0180910B018823E1F080910C014A -:101AF0008823C1F085E08093E9008FEF9091E800A2 -:101B0000815095FD06C095E19A95F1F7000081118D -:101B1000F5CF8091E80085FF2CC040E050E060E107 -:101B200070E017C081E08093E9008FEF9091E800AA -:101B3000815095FD06C095ED9A95F1F70000811151 -:101B4000F5CF8091E80085FF14C040E050E068E0E8 -:101B500070E0CE010E94A50F8091E8008E778093FF -:101B6000E80080E1FE01A9E6B1E001900D928A95BE -:101B7000E1F7DF91CF91089580E593E00E94C406DC -:101B80008091F301811109C00E943A110E949711BE -:101B90008091E20084608093E20008958CE493E0F9 -:101BA0000E94C4061092F301089588E493E00C9417 -:101BB000C40684E493E00C94C40680E493E00E949D -:101BC000C4060C946220209167012F5F822F62E38C -:101BD0000E943229992319F02093670108951092E9 -:101BE000670180916801882371F18091F40184304C -:101BF00041F58091E9008F702091EC00922F917057 -:101C000020FD90E8892B94E09093E9009091EB00FF -:101C100090FF14C09091EE0097FF10C09091E800E3 -:101C200095FF03C01092F100F9CF9091E80090FF6A -:101C300005C09091E8009E779093E8008F708093A4 -:101C4000E90010926801089542E061EC81E00E9491 -:101C5000B41042E061EC82E00E94B41042E061EC1A -:101C600083E00E94B41042E261EC84E00E94B41070 -:101C700042E161EC85E00C94B4108091F601833070 -:101C800009F455C030F4813071F0823009F48EC00F -:101C900008958A3009F47AC08B3009F460C0893025 -:101CA00009F09CC020C08091F501813A09F096C0EE -:101CB0008091E800877F8093E8008091F9019091FE -:101CC000FA01892B21F460E189E691E003C060E02C -:101CD00080E090E070E00E94F00F8091E8008B7748 -:101CE0008093E80008958091F501813209F076C073 -:101CF0008091F9019091FA01009719F0049709F089 -:101D00006DC08091E800877F8093E8008091E800B3 -:101D100082FD05C08091F4018111F8CF5FC08091F0 -:101D2000F100809379018091E8008B7753C0809116 -:101D3000F501813A09F052C08091F9019091FA01C0 -:101D4000892B09F04BC08091E800877F8093E800E1 -:101D50008091E80080FFFCCF80910B0136C080911C -:101D6000F5018132D9F58091F9019091FA01892B21 -:101D7000A9F58091E800877F8093E8000E94E91030 -:101D80008091F70180930B010C9452198091F50119 -:101D9000813221F58091E800877F8093E8000E94DE -:101DA000E9108091F80180937A0108958091F501FE -:101DB000813AA1F48091E800877F8093E8008091C8 -:101DC000E80080FFFCCF80917A018093F100809140 -:101DD000E8008E778093E8000C94E910089584B7AA -:101DE000877F84BF88E10FB6F894809360001092DB -:101DF00060000FBE90E080E80FB6F8948093610019 -:101E0000909361000FBE0E94C9140E943A110E9473 -:101E100097118091E20084608093E2008CE79CE05F -:101E20000E94E81F78940E941C140E94CB1481E049 -:101E300091E00E9437148FE293E00E94C4068091E3 -:101E4000F401853089F48BE293E00E94C4060E947D -:101E500029208091F201882391F30E945420882345 -:101E600071F30E948F0FEBCF0E94EF14E8CF292F60 -:101E7000332723303105C9F064F42130310581F076 -:101E80002230310509F043C08DE890E022E833E0CC -:101E900042C021323105F1F02232310541F137C023 -:101EA00082E190E02FE034E036C09927813091053F -:101EB00041F08230910541F0892B49F5EEE7F3E0DE -:101EC00005C0E4E6F3E002C0E4E5F3E0849190E0CD -:101ED0009F0121C06530D8F4E62FF0E0EE0FFF1F20 -:101EE000ED5CFE4F2081318189E090E014C06530C7 -:101EF00070F470E0FB01EE0FFF1FE75DFE4F2081E5 -:101F00003181FB01EC5DFE4F808190E004C080E0F8 -:101F100090E020E030E0FA0131832083089580E1F1 -:101F200089BD82E189BD09B400FEFDCF8091D80052 -:101F30008F7D8093D8008091E00082608093E000E4 -:101F40008091E00081FDFCCF0895CF92DF92EF9267 -:101F5000FF920F931F93CF93DF93EC018B016A01E4 -:101F60000E940811811133C0C114D10439F0F60167 -:101F700080819181081B190BC80FD91FE12CF12C0E -:101F80000115110519F18091E80085FD16C08091B9 -:101F9000E8008E778093E800C114D10449F0F6017F -:101FA00080819181E80EF91EF182E08285E00FC008 -:101FB0000E940811882321F30AC089918093F100BF -:101FC00001501109FFEFEF1AFF0ADACF80E0DF912D -:101FD000CF911F910F91FF90EF90DF90CF900895D8 -:101FE0002091FB013091FC012617370748F061155D -:101FF000710539F42091E8002E772093E80001C0A4 -:10200000B90140E061157105A9F12091F401222385 -:1020100009F443C0253009F442C02091E80023FDB3 -:1020200040C02091E80022FD32C02091E80020FF4E -:10203000E9CF4091F3002091F20030E0342BFC0115 -:10204000CF016115710559F02830310540F48191B7 -:102050008093F100615071092F5F3F4FF1CF41E054 -:102060002830310509F040E02091E8002E772093D8 -:10207000E800C8CF4111C9CF0AC08091F40188237C -:1020800061F0853061F08091E80083FD0AC08091A5 -:10209000E80082FFF2CF80E0089582E0089583E0B7 -:1020A000089581E008952091FB013091FC012617ED -:1020B000370748F06115710539F42091E8002E7753 -:1020C0002093E80001C0B901FC0120E06115710511 -:1020D00091F18091F401882309F440C0853009F41E -:1020E0003FC08091E80083FD3DC08091E80082FD03 -:1020F0002FC08091E80080FFE9CF2091F30080910C -:10210000F20090E0922B6115710559F0883091052D -:1021100040F424912093F1003196615071090196A9 -:10212000F2CF21E0089709F020E08091E8008E7757 -:102130008093E800CBCF2111CCCF0AC08091F4016D -:10214000882361F0853061F08091E80083FD0AC04A -:102150008091E80082FFF2CF80E0089582E0089548 -:1021600083E0089581E00895982F973058F5909373 -:10217000E900981739F07091EC002091ED00509132 -:10218000F00003C0242F762F50E021FF19C03091BA -:10219000EB003E7F3093EB003091ED003D7F3093BC -:1021A000ED003091EB0031603093EB007093EC0068 -:1021B0002093ED005093F0002091EE0027FF07C020 -:1021C0009F5FD3CF8F708093E90081E0089580E016 -:1021D00008958091F50187FF11C08091E80082FD8C -:1021E00005C08091F4018111F8CF11C08091E80001 -:1021F0008B770BC08091F401882349F08091E8002F -:1022000080FFF8CF8091E8008E778093E8000895F2 -:102210002091E4003091E50095E64091EC00842F98 -:10222000817040FF22C08091E80080FD1CC0809139 -:10223000F401882391F0853091F08091EB0085FDC9 -:1022400010C04091E4005091E5004217530729F374 -:102250009A01915011F784E0089582E0089583E097 -:10226000089581E0089580E008954091E80042FFDC -:10227000DECF08950E94A8110E94B011E0EEF0E0B8 -:10228000808181608083E8EDF0E080818F778083BA -:1022900019BCA7EDB0E08C918E7F8C9380818F7EEE -:1022A00080831092F30108950F931F93CF93DF93D0 -:1022B0000E94A8110E94B011C8EDD0E088818F77EC -:1022C000888388818068888388818F7D888319BC12 -:1022D0001092F4011092F0011092F2011092F101AB -:1022E00000EE10E0F80180818B7F8083888181601F -:1022F000888342E060E080E00E94B410E1EEF0E00C -:1023000080818E7F8083E2EEF0E080818160808337 -:10231000808188608083F80180818E7F80838881BE -:1023200080618883DF91CF911F910F910895E8ED2F -:10233000F0E080818F7E8083E7EDF0E08081816036 -:10234000808384E082BF81E08093F3010C94541178 -:10235000E8EDF0E080818E7F80831092E2000895A6 -:102360001092DA001092E10008951F920F920FB6BA -:102370000F9211242F933F934F935F936F937F930B -:102380008F939F93AF93BF93EF93FF938091E1005F -:1023900082FF0BC08091E20082FF07C08091E100C4 -:1023A0008B7F8093E1000E94E30D8091DA0080FF33 -:1023B0001FC08091D80080FF1BC08091DA008E7F03 -:1023C0008093DA008091D90080FF0DC080E189BD43 -:1023D00082E189BD09B400FEFDCF81E08093F40164 -:1023E0000E94BC0D05C019BC1092F4010E94CE0DD4 -:1023F0008091E10080FF19C08091E20080FF15C04C -:102400008091E2008E7F8093E2008091E200806103 -:102410008093E2008091D80080628093D80019BC3C -:1024200085E08093F4010E94D90D8091E10084FF42 -:1024300030C08091E20084FF2CC080E189BD82E140 -:1024400089BD09B400FEFDCF8091D8008F7D8093B7 -:10245000D8008091E1008F7E8093E1008091E200BE -:102460008F7E8093E2008091E20081608093E200A1 -:102470008091F001882311F084E007C08091E3008F -:1024800087FD02C081E001C083E08093F4010E94D7 -:10249000DD0D8091E10083FF29C08091E20083FF80 -:1024A00025C08091E100877F8093E10082E08093E6 -:1024B000F4011092F0018091E1008E7F8093E100A1 -:1024C0008091E2008E7F8093E2008091E200806143 -:1024D0008093E20042E060E080E00E94B4108091CE -:1024E000F00088608093F0000E94D50DFF91EF917D -:1024F000BF91AF919F918F917F916F915F914F911C -:102500003F912F910F900FBE0F901F9018951F9223 -:102510000F920FB60F9211242F933F934F935F9317 -:102520006F937F938F939F93AF93BF93CF93DF93DB -:10253000EF93FF93C091E900CF708091EC00D82F0A -:10254000D17080FDD0E81092E9008091F000877F83 -:102550008093F00078940E94CB121092E900809151 -:10256000F00088608093F000CD2BCF70C093E9001D -:10257000FF91EF91DF91CF91BF91AF919F918F919B -:102580007F916F915F914F913F912F910F900FBE6F -:102590000F901F9018951F93CF93DF93CDB7DEB7A1 -:1025A000AA970FB6F894DEBF0FBECDBFE5EFF1E0FE -:1025B00088E08E0F9091F10091938E13FBCF0E94D3 -:1025C0003D0E8091E80083FF1FC18091F50190913D -:1025D000F601492F50E04A30510508F015C1FA01C3 -:1025E000EA5AFF4F0C945229803881F0823809F062 -:1025F0000BC18091F9018F708093E9008091EB000D -:1026000085FB882780F91092E90006C08091F101CE -:102610009091F201911182609091E800977F9093E0 -:10262000E8008093F1001092F100C8C0282F2D7FA0 -:1026300009F0EAC0882319F0823061F0E5C080918A -:10264000F701813009F0E0C0933009F080E0809319 -:10265000F2012BC08091F701811127C08091F9010F -:102660008F7009F4D1C08093E9002091EB0020FF26 -:102670001CC0933021F48091EB00806214C09091D3 -:10268000EB0090619093EB0021E030E0A90102C0E3 -:10269000440F551F8A95E2F74093EA001092EA0032 -:1026A0008091EB0088608093EB001092E9008091AC -:1026B000E800877F86C08111A7C01091F7011F77BE -:1026C0008091E3008078812B8093E3008091E80083 -:1026D000877F8093E8000E94E9108091E80080FFE6 -:1026E000FCCF8091E30080688093E300111102C069 -:1026F00082E001C083E08093F40186C0805882307C -:1027000008F082C08091F7019091F8018C3D53E070 -:10271000950779F583E08A838AE289834FB7F89435 -:10272000DE01139620E03EE051E2E32FF0E050930B -:102730005700E49120FF03C0E295EF703F5FEF7018 -:102740008E2F90E0EA3010F0C79601C0C0968D93AE -:102750009D932F5F243149F74FBF8091E800877F19 -:102760008093E8006AE270E0CE0101960E94F00FCB -:1027700014C0AE014F5F5F4F6091F9010E94370FA7 -:10278000BC01009709F440C09091E800977F9093B6 -:10279000E80089819A810E9453108091E8008B772C -:1027A0008093E80031C0803879F58091E800877F18 -:1027B0008093E8008091F0018093F1008091E8001F -:1027C0008E778093E8000E94E9101EC081111CC022 -:1027D0009091F7019230C0F48091E800877F809358 -:1027E000E8009093F0010E94E9108091F0018111BE -:1027F00006C08091E30087FD02C081E001C084E053 -:102800008093F4010E94240E8091E80083FF0AC0A7 -:102810008091E800877F8093E8008091EB008062E0 -:102820008093EB00AA960FB6F894DEBF0FBECDBF23 -:10283000DF91CF911F910895CF938091F401882368 -:10284000A1F0C091E900CF709091EC00892F8170C8 -:1028500090FD80E8C82B1092E9008091E80083FD8C -:102860000E94CB12CF70C093E900CF91089590934E -:10287000800180937F010895E0917F01F0918001B4 -:10288000309721F00190F081E02D099480E00895C7 -:10289000EF92FF920F931F93CF93DF93E0917F010D -:1028A000F09180013097B1F18C010280F381E02D2D -:1028B00009958091DF0182FF2DC080FF04C084E470 -:1028C00095E00E94C406E80110E18EE3E82E85E061 -:1028D000F82E8091DF0180FF0BC088811F928F93BB -:1028E000FF92EF920E945D070F900F900F900F9054 -:1028F000115021961111EDCF8091DF0180FF0AC0A8 -:102900008CE395E0DF91CF911F910F91FF90EF90B5 -:102910000C94C406DF91CF911F910F91FF90EF901F -:102920000895E0917F01F0918001309721F00480BB -:10293000F581E02D0994089520917D0130917E016B -:102940008217930771F090937E0180937D01E0914F -:102950007F01F0918001309721F00680F781E02D12 -:102960000994089520917B0130917C01821793078F -:1029700071F090937C0180937B01E0917F01F09155 -:102980008001309721F00084F185E02D09940895AD -:1029900008950C94C8140E9491200E944A0B0C9434 -:1029A0001721CF93DF931F92CDB7DEB79091DF0150 -:1029B00092FF10C090FF0EC01F928F9326E535E066 -:1029C0003F932F9389830E945D070F900F900F9084 -:1029D0000F9089810F90DF91CF910C94340B5F920F -:1029E0006F927F928F929F92AF92BF92CF92DF921F -:1029F000EF92FF920F931F93CF93DF9300D000D0FD -:102A00001F92CDB7DEB70E948F0B9AE8C92E91E0D6 -:102A1000D92E03E010E0AA24A394B12C502E802FCD -:102A20000E94200C4C01F601729062906F016826A2 -:102A3000792661147104A1F40150110978F78FEF20 -:102A400089838A831B820E949A208160782F9D83CC -:102A50008C8349815A816B818D810E949F1538C07A -:102A60008091DF0181FD0E94290C2AE030E0750190 -:102A7000022E02C0EE0CFF1C0A94E2F7C701862169 -:102A80009721892B09F129835A828E209F2091E07A -:102A9000892809F490E09B830E949A208160782F16 -:102AA0009D838C8349815A816B818D810E949F1502 -:102AB000000F111FF801EE57FE4F80819181E8262B -:102AC000F926F182E08204C02150310980F6B4CFAA -:102AD0000E946423109181010E943C141817D1F0C8 -:102AE0000E943C14809381010F900F900F900F90E3 -:102AF0000F90DF91CF911F910F91FF90EF90DF909A -:102B0000CF90BF90AF909F908F907F906F905F908D -:102B10000C94D1140F900F900F900F900F90DF91A5 -:102B2000CF911F910F91FF90EF90DF90CF90BF90CA -:102B3000AF909F908F907F906F905F900895CF930C -:102B4000DF93CDB7DEB72B970FB6F894DEBF0FBE7D -:102B5000CDBF4F83588769877A878B87DE011196AF -:102B600086E0FD0111928A95E9F785E0FE0137962E -:102B700001900D928A95E1F749815A816B817C81A0 -:102B80008D819E810E94F01B2B960FB6F894DEBFBC -:102B90000FBECDBFDF91CF910895CF93882309F465 -:102BA000C2C0C82F823859F40E943C1481FDBBC0BA -:102BB00089E30E94CA1E0E94B91F89E30CC08338B2 -:102BC00079F40E943C1480FDAEC083E50E94CA1EC9 -:102BD0000E94B91F83E50E941D1FCF910C94B91F5D -:102BE000843859F40E943C1482FD9DC087E40E9401 -:102BF000CA1E0E94B91F87E4EECF8CEF8C0F813A7A -:102C000048F48C2F0E94BB2681118DC08C2F0E940E -:102C1000CA1EE3CF80E28C0F883048F4C77081E091 -:102C200001C0880FCA95EAF70E94721FD6CF8BE5C4 -:102C30008C0F833078F4C53A29F0C63A31F083E836 -:102C400090E005C081E890E002C082E890E0CF917A -:102C50000C949C1488E58C0F833108F064C0C83A4A -:102C600039F1C93A41F1CA3A49F1CB3A51F1CC3A7A -:102C700059F1CD3A61F1C03B69F1CE3A71F1CF3AE9 -:102C800079F1C13B81F1C23B89F1C33B91F1C43B76 -:102C900099F1C53BA1F1C63BA9F1C73BB1F1C83BD6 -:102CA000B9F1C93BC1F1CA3BC9F180E090E038C03D -:102CB00082EE90E035C089EE90E032C08AEE90E07E -:102CC0002FC085EB90E02CC086EB90E029C087EB0D -:102CD00090E026C08CEC90E023C08DEC90E020C00A -:102CE00083E891E01DC08AE891E01AC082E991E092 -:102CF00017C084E991E014C081E292E011C083E240 -:102D000092E00EC084E292E00BC085E292E008C03F -:102D100086E292E005C087E292E002C08AE292E099 -:102D2000CF910C94B214CF910895882309F44BC02D -:102D3000823859F40E943C1481FF45C089E30E9407 -:102D4000CA1E0E94B91F89E30CC0833871F40E9427 -:102D50003C1480FF38C083E50E94CA1E0E94B91F40 -:102D600083E50E941D1F0C94B91F843859F40E94FA -:102D70003C1482FF28C087E40E94CA1E0E94B91F2B -:102D800087E4EFCF9CEF980F913A58F390E2980FB9 -:102D9000983050F4877091E001C0990F8A95EAF756 -:102DA000892F0E94781FDFCF9BE5980F933020F486 -:102DB00080E090E00C949C14885A833120F480E0E9 -:102DC00090E00C94B2140895882321F00E94721FA1 -:102DD0000C94B91F0895882321F00E94781F0C9449 -:102DE000B91F08957F928F929F92AF92BF92CF9218 -:102DF000DF92EF92FF920F931F93CF93DF931F9277 -:102E0000CDB7DEB77C01C62E772EFC010581029579 -:102E10000F70128111110E948F1F0E94C31E882300 -:102E200079F0112369F080E28C0D883048F082E05F -:102E30000E94AC1E0E94C31E91E0D82ED92601C06C -:102E4000D12CE72DE295EF70F0E0E05AFF4F0C94A3 -:102E50005229872D807F072D0F70882311F002954E -:102E6000007F112389F0002309F498C180E28C0DC2 -:102E7000883020F4802F0E94721F03C0802F0E9490 -:102E8000821F0E94B91F8AC18C2D0E9495160023B3 -:102E900009F49DC180E28C0D883020F4802F0E94BF -:102EA000781F03C0802F0E94881F0E94B91F8FC106 -:102EB000872D807F972D9F70803211F4892F03C05A -:102EC000892F8295807FCC2021F0F1E0CF16A1F0F0 -:102ED0001DC0112339F0002319F1013009F50E94BA -:102EE000A21F75C1002319F0013009F470C1898354 -:102EF0000E94A51F898110C1112321F0063008F01E -:102F000066C10EC0053008F062C106C1112359F038 -:102F1000002331F0F701958190FF40C19F709583A8 -:102F20000E94E41654C1002309F4F6C03DC1872D68 -:102F300086958695837090E0009719F0019761F06F -:102F400046C1112321F08C2D972D937002C080E093 -:102F500090E00E949C143BC1112321F08C2D972DF1 -:102F6000937002C080E090E00E94B21430C18C2DBA -:102F7000112319F00E94EA2102C00E9452220E94ED -:102F8000D72225C1872D837009F052C011111FC1AE -:102F90008C2D829586958770880F880F9C2D9F7049 -:102FA000892E912CA12CB12C082E04C0880C991CC0 -:102FB000AA1CBB1C0A94D2F7C4FE14C00FE010E098 -:102FC00020E030E0B901A80104C0440F551F661F7E -:102FD000771F8A95D2F7CB01BA01609570958095DD -:102FE000909503C060E070E0CB01272D26952695D3 -:102FF000237030E02230310569F02330310589F04B -:10300000682979298A299B292130310571F00E948C -:10301000381DDDC0682979298A299B290E94541D01 -:10302000D6C00E94381DC501B4010E941C1DCFC02E -:10303000112319F0872D817001C08695882309F42A -:10304000C6C08C2D829586958770880F880F9C2D21 -:103050009F70892E912CA12CB12C082E04C0880CB5 -:10306000991CAA1CBB1C0A94D2F7C4FE14C00FE022 -:1030700010E020E030E0B901A80104C0440F551F62 -:10308000661F771F8A95D2F7CB01BA0160957095BC -:103090008095909503C060E070E0CB01272D2695C8 -:1030A00026952370422F50E04230510569F043309D -:1030B000510589F0682979298A299B2941305105D0 -:1030C00071F00E94121E83C0682979298A299B29E0 -:1030D0000E942E1E7CC00E94121EC501B4010E94D7 -:1030E000F61D75C08C2D90E0FC01E05EF109E53124 -:1030F000F10508F04FC0E059FF4F0C9452290C2DF8 -:103100000F70872D8F71112321F00E948F1D802F4A -:1031100007CF0E94B01D802F0E94EB1658C01123CC -:1031200041F0053008F053C0872D8F710E94D51DE6 -:103130004EC0063008F04BC0F7CF112339F0872D71 -:103140008F710E948F1D43C01123C9F3872D8F718A -:103150000E94B01D3CC0112329F0872D8F710E9461 -:103160007A1D35C00E94701D32C0112351F0172DF9 -:103170001F71812F0E948F1D63E0812F0E94A31E6B -:1031800026C081E00E94AC1E023008F182E00E945D -:10319000AC1E1DC0112331F0002389F28C2D0E943A -:1031A000CD1515C0002391F28C2D0E9495160FC0ED -:1031B000472D4F706C2DC7010E9476070E94941C0A -:1031C00006C0472D4F706C2DC7010E943908DD20C5 -:1031D000F9F00E949F1E80FD1BC0F70112820E9421 -:1031E000991E0E948F1DC7010E9417190E94991EE7 -:1031F0000F90DF91CF911F910F91FF90EF90DF9093 -:10320000CF90BF90AF909F908F907F900C94B01D07 -:103210000F90DF91CF911F910F91FF90EF90DF9072 -:10322000CF90BF90AF909F908F907F9008950F9315 -:103230001F93CF93DF93EC01888199812B813C818F -:10324000232BB9F09F3F11F48F3F99F0CE010E94DC -:103250008D07882371F0688179818A810E94951E8B -:103260008C010E944A1E0E94111DB801CE010E94CD -:10327000F216DF91CF911F910F9108950E948F1F39 -:103280000E949F1F0E94641F0E94B91F0E940A246F -:103290000E94D72280E090E00E949C1480E090E0A1 -:1032A0000C94B2140E947F1F0C943E190E948A1E37 -:1032B000292F22952F7030E02C3031054CF42A3024 -:1032C00031056CF42250310922303105A8F407C0D1 -:1032D0002C30310569F02F30310551F00DC0803FA1 -:1032E00069F018F4803E40F409C0843F29F406C018 -:1032F00093FB882780F9089580E0089581E0089580 -:10330000CF93DF9300D000D01F92CDB7DEB70F90E0 -:103310000F900F900F900F90DF91CF910895CF9362 -:10332000DF9300D000D000D0CDB7DEB726960FB621 -:10333000F894DEBF0FBECDBFDF91CF9108951F93EC -:10334000CF93DF93C0918A0116E080918B01C8175B -:1033500099F0D0E01C9FF0011D9FF00D1124E4575F -:10336000FE4F4081518162817381848195810E94E9 -:103370008F192196C770E9CFDF91CF911F910895E2 -:103380004091BC015091BD016091BE017091BF019F -:103390008091C0019091C1010C948F198091C1015D -:1033A00082958F7009F054C08091BE01882309F482 -:1033B0004FC080918A01A0918B016091BC017091F6 -:1033C000BD014091BF015091C001B6E08A1709F4D8 -:1033D0003FC090E041155105C1F17F3F11F46F3FAF -:1033E000A1F1B89FF001B99FF00D1124E457FE4FF1 -:1033F000218172132AC02081621327C022812111EA -:1034000024C0238134812417350710F42150310959 -:10341000241B350B283C3105C0F42091C1012F70CD -:1034200020612093C10126E0289FF001299FF00D23 -:103430001124EF56FE4F80818F70806180838CEB6A -:1034400091E00E9417190C949F1901968770BECFC6 -:103450000895CF92DF92EF92FF920F931F93CF9335 -:10346000DF93CDB7DEB762970FB6F894DEBF0FBE1D -:10347000CDBF8C0185E0F801DE011D9601900D9213 -:103480008A95E1F7D8014C9111965C9111971296AB -:103490006C9112971396CD90DC9014973091BC01EB -:1034A0007091BD018091BF019091C001009709F416 -:1034B0006BC17F3F19F43F3F09F466C1E090BE0144 -:1034C000EE2009F4C0C02091C101C816D90628F029 -:1034D000F601E81BF90BCF0104C0809590958C0D87 -:1034E0009D1DFF24F394883C910578F0F12C207FFA -:1034F00009F0C6C07C2DD98AC88A89890E948019A2 -:103500008CEB91E00E941719B1C0822F807F09F0E7 -:1035100046C0751314C0341312C0611110C02F704F -:1035200020612093C1010E94C0198CEB91E00E94A0 -:1035300017198091C101D80115968C932EC0CD2802 -:1035400019F15F3F11F44F3FF9F0F62E61111CC0E5 -:1035500080918A0120918B0136E0821709F45AC0CC -:1035600090E0389FF001399FF00D1124E457FE4F91 -:103570007181571306C07081471303C072817111A6 -:1035800003C001968770E9CFF62E662309F418C1AF -:103590008091C10181608093C101F12C11C175132B -:1035A00008C0341306C0611104C08091C101D80164 -:1035B000C3C04D875E878D859E856A8B0E94561994 -:1035C0006A898823E1F16623D1F12091C101822F1C -:1035D00082958F7090E0029774F08091BC01909179 -:1035E000BD0198878F831986DB86CA862C87CE011A -:1035F00007960E94171986E0F801ACEBB1E0019044 -:103600000D928A95E1F70E94CE190E94C019FF24FD -:10361000F394D6C04D875E878D859E850E948A1E55 -:10362000292F22952F7030E0223031050CF0BCC0DC -:103630009F7009F0B6C0805E883008F4C1C0C80130 -:103640000E941719E4CFC816D90608F453C0F60132 -:10365000E81BF90BCF01883C910508F450C0F12C10 -:103660007C2DD98AC88A89890E948019ECEBF1E007 -:1036700086E0DF011D928A95E9F70E94C019A0C07B -:10368000751314C0341312C0611110C08091C101B0 -:10369000F8018583C8010E94171986E0ECEBF1E080 -:1036A000DF011D928A95E9F7FE2C8AC04D875E875F -:1036B0008D859E856A8B0E9456196A89882309F434 -:1036C000BECF662309F4BBCF2091C101822F829522 -:1036D0008F7090E002970CF48ECF8091BC01909196 -:1036E000BD019A8389831B82DD82CC822E83CE0129 -:1036F00001967FCF809590958C0D9D1DACCFF62EB9 -:10370000662309F49CCF75132EC034132CC020916E -:10371000C10120FD1FC0822F82958F70D9F0D80182 -:1037200015962C9315978F3049F08F5F982F9295AF -:10373000907F822F8F70892B15968C93C8010E94E1 -:10374000171986E0F801ACEBB1E001900D928A9573 -:10375000E1F793CF86E0F801ACEBB1E001900D9278 -:103760008A95E1F72DC04D875E878D859E850E94E5 -:103770005619811140CF8091C10181608093C101B0 -:10378000C8010E9417191CC0662309F458CF4D8741 -:103790005E878D859E850E945619882309F44FCF38 -:1037A0002ACF811148CF0CC0243031050CF047CF0F -:1037B0009F7009F440CFF8019581907F09F03BCFCD -:1037C0008F2D62960FB6F894DEBF0FBECDBFDF918E -:1037D000CF911F910F91FF90EF90DF90CF900895C0 -:1037E0001F93CF93DF93CDB7DEB72C970FB6F89426 -:1037F000DEBF0FBECDBF4F83588769877A878B871F -:103800009C87CE0107960E94291A882369F08F8130 -:1038100098852A853B85232BF1F19F3F09F063C0F2 -:103820008F3F09F060C037C086E0FE013796DE01A9 -:10383000119601900D928A95E1F76F817885EA855E -:10384000FB85309741F17F3F11F46F3F21F12091CB -:103850008B0130E0C90101968770992740918A0158 -:1038600050E08417950709F447C069837A83FD8384 -:10387000EC8396E0929FD001939FB00D1124A45742 -:10388000BE4FFE01319601900D929A95E1F780931B -:103890008B010E949F1916E080918A0190918B0103 -:1038A0008917C1F1189FC001112484579E4F0E94AF -:1038B000291A882379F1E0918A011E9FF0011124D1 -:1038C000E457FE4F408151816281738184819581EB -:1038D0000E948F1980918A0190E001968770992744 -:1038E00080938A01D9CF4F81588569857A858B85E8 -:1038F0009C850E948F19CFCF0E94521910928B0184 -:1039000010928A01ECEBF1E086E0DF011D928A95CE -:10391000E9F7C1CF2C960FB6F894DEBF0FBECDBF2E -:10392000DF91CF911F910895EF92FF920F931F9314 -:10393000CF93DF938C01009709F46CC0F12CEE2437 -:10394000E394E8012196F8018491843740F48430AF -:1039500008F051C0813081F0823019F15BC08537A9 -:1039600009F444C0A8F19CE7980F903708F052C0C2 -:103970008F770E94951641C00E5F1F4FFE01C491C4 -:1039800080E28C0F883048F4C7708E2D01C0880FFC -:10399000CA95EAF70E94921F14C08C2F0E94CD1581 -:1039A0002DC00E5F1F4FFE01C49180E28C0F883046 -:1039B00058F4C7708E2D01C0880FCA95EAF70E948F -:1039C000981F0E94B91F1AC08C2F0E94951616C00E -:1039D0000E5F1F4FFE01C491CC2381F08FE99FE061 -:1039E0000197F1F700C00000C150F6CF0E5F1F4FE6 -:1039F000FE01F49003C00E94CD158E018F2D882307 -:103A000009F49FCFEFE9FFE03197F1F700C0000024 -:103A10008150F5CFDF91CF911F910F91FF90EF90E3 -:103A2000089508956093C6017093C7018093C801FB -:103A30009093C9010C943E190F931F930091C601F6 -:103A40001091C7012091C8013091C901DC01CB015F -:103A5000802B912BA22BB32B8093C6019093C7018F -:103A6000A093C801B093C9011F910F910C943E1906 -:103A70000F931F930091C6011091C7012091C801B7 -:103A80003091C901DC01CB0180239123A223B32310 -:103A90008093C6019093C701A093C801B093C90158 -:103AA0001F910F910C943E190F931F930091C60123 -:103AB0001091C7012091C8013091C901DC01CB01EF -:103AC00080279127A227B3278093C6019093C7012F -:103AD000A093C801B093C9011F910F910C943E1996 -:103AE0001092C2011092C3011092C4011092C5013C -:103AF0000C943E1941E050E060E070E004C0440FD7 -:103B0000551F661F771F8A95D2F74093C2015093C5 -:103B1000C3016093C4017093C5010C943E1941E048 -:103B200050E060E070E004C0440F551F661F771F2F -:103B30008A95D2F78091C2019091C301A091C401EE -:103B4000B091C501482B592B6A2B7B2B4093C201A6 -:103B50005093C3016093C4017093C5010C943E1946 -:103B600041E050E060E070E004C0440F551F661F64 -:103B7000771F8A95D2F74095509560957095809102 -:103B8000C2019091C301A091C401B091C501482325 -:103B900059236A237B234093C2015093C30160934E -:103BA000C4017093C5010C943E1941E050E060E0FF -:103BB00070E004C0440F551F661F771F8A95D2F727 -:103BC0008091C2019091C301A091C401B091C5013F -:103BD000482759276A277B274093C2015093C30186 -:103BE0006093C4017093C5010C943E190F931F9309 -:103BF0000091C2011091C3012091C4013091C5010F -:103C0000DC01CB01802B912BA22BB32B8093C20123 -:103C10009093C301A093C401B093C5011F910F916C -:103C20000C943E190F931F930091C2011091C30190 -:103C30002091C4013091C501DC01CB018023912387 -:103C4000A223B3238093C2019093C301A093C40124 -:103C5000B093C5011F910F910C943E190F931F93C0 -:103C60000091C2011091C3012091C4013091C5019E -:103C7000DC01CB0180279127A227B3278093C201C3 -:103C80009093C301A093C401B093C5011F910F91FC -:103C90000C943E190895CF92DF92EF92FF920F930A -:103CA0001F93CF93DF938C01C090C601D090C701C2 -:103CB000E090C801F090C9018091C2019091C301C8 -:103CC000A091C401B091C501C82AD92AEA2AFB2AC9 -:103CD000CFE1D0E0D701C6010C2E04C0B695A79560 -:103CE000979587950A94D2F780FF06C0B8018C2F6C -:103CF0000E94990A019721F4219760F780E001C0A2 -:103D00008C2FDF91CF911F910F91FF90EF90DF905B -:103D1000CF900895CF93DF93EC010E944B1EBE011C -:103D20000E94990ADF91CF910895CB010E948A1ECB -:103D300008958091CA01859585958595089580910E -:103D4000CA018770089598E0899F90011124262B5D -:103D50002093CA010C948F1D2091CA018095822363 -:103D60008093CA01982F977069F430E0482F552747 -:103D700047FD50952417350729F08595859585953C -:103D80000C94B01D08959091CA01977081E009F4D8 -:103D900080E0089590910B01992321F090910C01FE -:103DA000911109C020910D0130910E01F901329657 -:103DB0009FEF40E030C0982F9695969596959F304E -:103DC000A0F4E0910D01F0910E01E90FF11D877053 -:103DD00021E030E0A90102C0440F551F8A95E2F7A7 -:103DE000CA019181892B818308959091DF0190FF11 -:103DF00023C01F928F938DE895E09F938F930E942D -:103E00005D070F900F900F900F9008959F3F39F02E -:103E10004F5F4E3041F051915813F8CF0DC0511102 -:103E2000F7CF942FF5CF9F3F39F0F901E90FF11D3E -:103E300097FDFA9582830895089590910B01992337 -:103E400021F090910C01911109C020910D01309148 -:103E50000E01F9013296205F3F4F30C0982F9695A2 -:103E6000969596959F30A8F4E0910D01F0910E0182 -:103E7000E90FF11D877021E030E0A90102C0440F75 -:103E8000551F8A95E2F7CA01809591818923818324 -:103E900008959091DF0190FF16C01F928F938FE6D7 -:103EA00095E09F938F930E945D070F900F900F9066 -:103EB0000F9008953196E217F30729F09081981337 -:103EC000F9CF1082F7CF089581E090E0E0910D01E5 -:103ED000F0910E01E80FF91F1082019680319105D3 -:103EE000A9F708959091DE01892B8093DE01089552 -:103EF00080959091DE0189238093DE0108951092D0 -:103F0000DE0108959091DD01892B8093DD010895F4 -:103F100080959091DD0189238093DD0108951092B1 -:103F2000DD0108959091DC01892B8093DC010895D7 -:103F300080959091DC0189238093DC010895109293 -:103F4000DC0108958093CB0108951092CB01089570 -:103F500080910D0190910E01FC0131969C01205F32 -:103F60003F4F80E0919191118F5FE217F307D1F7F6 -:103F70000895E0910D01F0910E018091DE018083A2 -:103F8000E0910D01F0910E0190818091DD01892B6E -:103F90008083E0910D01F0910E0190818091DC0110 -:103FA000892B80838091CB01882361F0E0910D0102 -:103FB000F0910E019081892B80830E94A81F8111AE -:103FC0001092CB0180910D0190910E010C94481438 -:103FD0009093490180934801089520E0009739F0BB -:103FE000AC0141505109842395232F5FF7CF822FD5 -:103FF00008958295982F9C7C392F36953695282FD9 -:10400000237344E0249FC0011124932F982B292F60 -:104010002A7A2695892F8575880F822B08951F93FC -:10402000CF93DF931F92CDB7DEB799830E94F91F1C -:10403000182F9981892F0E94F91F212F30E0322FEC -:104040002227A901482BCA010F90DF91CF911F9120 -:1040500008958091F401843021F11092E00120E470 -:1040600088E190E00FB6F894A895809360000FBEA9 -:104070002093600080E00E94340B83B7817F8460CE -:1040800083BF83B7816083BF7894889583B78E7F21 -:1040900083BF88E10FB6F8948093600010926000AF -:1040A0000FBE0895089508950E9452200E948F0B1C -:1040B0000E9453200E94630C91E0811101C090E0A6 -:1040C000892F08950E9452190E943C140C94340BBD -:1040D0001F920F920FB60F9211248F939F93AF935D -:1040E000BF938091E001811113C08091E101909113 -:1040F000E201A091E301B091E4014196A11DB11D3F -:104100008093E1019093E201A093E301B093E40175 -:10411000BF91AF919F918F910F900FBE0F901F9005 -:10412000189582E084BD93E095BD9AEF97BD80938A -:104130006E0008952FB7F8948091E1019091E2010B -:10414000A091E301B091E4012FBF0895CF92DF92D7 -:10415000EF92FF920F931F932FB7F8944091E101D4 -:104160005091E2016091E3017091E4012FBF6A0177 -:104170007B01EE24FF248C0120E030E0C016D10644 -:10418000E206F30610F4415051099A01281B390B3D -:10419000C9011F910F91FF90EF90DF90CF9008958C -:1041A0001F920F920FB60F9211248F939F93AF938C -:1041B000BF938091E1019091E201A091E301B09160 -:1041C000E4010196A11DB11D8093E1019093E201EC -:1041D000A093E301B093E401BF91AF919F918F91C0 -:1041E0000F900FBE0F901F9018950E943A11F894EF -:1041F0002FEF87EA91E6215080409040E1F700C020 -:10420000000087E090EBDC018093FE019093FF01BA -:10421000A0930002B09301029CE088E10FB6F894ED -:10422000A895809360000FBE90936000FFCF0E941E -:104230004C21811102C00E9432210E94572180939B -:10424000DF010E945F218093FD0187FB882780F9B1 -:1042500080930C010E945B21682F70E080E090E069 -:104260000C94121D6DEE7EEF80E090E00E948C2990 -:1042700060E082E090E00E947A2960E083E090E0D4 -:104280000E947A2960E084E090E00E947A2960E050 -:1042900085E090E00C947A2980E090E00E947429F7 -:1042A00021E08D3E9E4F09F020E0822F089582E0AC -:1042B00090E00C946C2983E090E00C946C2984E0ED -:1042C00090E00C946C29682F84E090E00C947A299B -:1042D0008091E70180FF0BC06091120185E0689F2B -:1042E000B001112475956795759567952BC081FF71 -:1042F00009C06091120185E0689FB0011124759595 -:10430000679520C082FF07C06091120185E0689F19 -:10431000B001112417C09091E8019923D1F0609168 -:104320001101961788F72091120185E0289F9001CE -:104330001124929FA001939F500D112470E0CA0197 -:104340000E943E296038710540F46115710539F00D -:1043500002C065E070E0862F08958FE7089581E040 -:1043600008958091E70180FF08C06091100170E01E -:10437000759567957595679521C081FF06C0609119 -:10438000100170E07595679519C082FF04C06091B7 -:10439000100170E010C09091E8019923C1F0609184 -:1043A0000F019617A0F780911001899FC001112479 -:1043B00070E00E943E296038710528F4611571058E -:1043C00021F0862F08958FE7089581E0089561E038 -:1043D00070E0F4CF803F21F40E946821819504C0F1 -:1043E000813F29F40E9468218093EB010895823F68 -:1043F00021F40E946821819504C0833F29F40E9422 -:1044000068218093EA010895893F19F40E94B1213F -:1044100005C08A3F31F40E94B12181958093EC015F -:1044200008958B3F21F40E94B121819504C08C3FF7 -:1044300029F40E94B1218093ED010895843F21F475 -:104440008091E901816017C0853F21F48091E901E5 -:10445000826011C0863F21F48091E90184600BC025 -:10446000873F21F48091E901886005C0883F31F4DD -:104470008091E90180618093E90108958D3F21F4E5 -:104480008091E70181600BC08E3F21F48091E701AC -:10449000826005C08F3F29F48091E701846080939A -:1044A000E7010895803F39F48091EB0187FF6CC0EC -:1044B0001092EB0169C0813F29F48091EB0118163D -:1044C000BCF362C09091EA01823F29F497FF5CC07F -:1044D0001092EA0159C0833F19F41916CCF354C065 -:1044E000893F41F48091EC0118160CF04DC01092F8 -:1044F000EC014AC08A3F29F48091EC0187FF44C057 -:10450000F6CF8B3F39F48091ED0187FF3DC01092CB -:10451000ED013AC08C3F29F48091ED011816BCF3EF -:1045200033C0843F21F48091E9018E7F17C0853F1D -:1045300021F48091E9018D7F11C0863F21F48091A3 -:10454000E9018B7F0BC0873F21F48091E901877FD0 -:1045500005C0883F31F48091E9018F7E8093E901A5 -:1045600013C08D3F21F48091E7018E7F0BC08E3FF9 -:1045700021F48091E7018D7F05C08F3F29F4809160 -:10458000E7018B7F8093E7018091EA0181110EC0E2 -:104590008091EB0181110AC08091EC01811106C06C -:1045A0008091ED01811102C01092E801089580917F -:1045B000DF0183FF7EC082ED95E00E94C4068091FA -:1045C000E9011F928F938DEC95E09F938F930E944A -:1045D0005D078BEC95E00E94C4068091EA01282FCC -:1045E000332727FD30953F938F9388EC95E09F9379 -:1045F0008F930E945D0786EC95E00E94C40680912F -:10460000EB01282F332727FD30953F938F9383ECC1 -:1046100095E09F938F930E945D0781EC95E00E9447 -:10462000C4068091EC01282F332727FD30953F9356 -:104630008F938EEB95E09F938F930E945D078CEB99 -:1046400095E00E94C4068091ED01282F332727FDB5 -:1046500030953F938F9389EB95E09F938F930E94C2 -:104660005D0786EB95E00E94C4068091E8011F92E9 -:104670008F9383EB95E09F938F930E945D0781EB6F -:1046800095E00E94C4068091E7011F928F938EEA05 -:1046900095E09F938F930E945D078BEA95E00E94BF -:1046A000C4068DB79EB74C960FB6F8949EBF0FBE4A -:1046B0008DBF89EE91E00E9491140E949A20909300 -:1046C000E6018093E50108951F93CF93DF938091D6 -:1046D000E5019091E6010E94A620AC019091E801CD -:1046E000992321F02091130130E006C0209114019C -:1046F0008AE0289F900111244217530708F486C0CE -:104700008091EA01C091EB01D091EC011091ED0193 -:10471000811107C0C11176C0D11174C0111172C0CE -:1047200075C09F3F19F09F5F9093E801181624F41D -:104730000E9468218093EA018091EA0187FF05C009 -:104740000E94682181958093EA011C1624F40E943E -:1047500068218093EB018091EB0187FF05C00E94E7 -:10476000682181958093EB016091EA01662339F11C -:10477000C091EB01CC2319F1772767FD7095872F46 -:10478000972F0E94432823E333E343E35FE30E9430 -:10479000A7280E9410286093EA016C2F772767FDF5 -:1047A0007095872F972F0E94432823E333E343E339 -:1047B0005FE30E94A7280E9410286093EB011D165A -:1047C00024F40E94B1218093EC018091EC0187FFD9 -:1047D00005C00E94B12181958093EC01111624F44B -:1047E0000E94B1218093ED018091ED0187FF05C00A -:1047F0000E94B12181958093ED01DF91CF911F91AE -:104800000C94D7229F3F09F08ECF96CFDF91CF91A6 -:104810001F910895E9EEF1E085E0DF011D928A9590 -:10482000E9F71092E8011092E701089585EF97E00B -:104830000E94C4061F9281E08F931F9285E08F93A0 -:1048400087EA97E09F938F930E945D070F900F90E8 -:104850000F900F900F900F9008958330E9F128F496 -:10486000813061F0823009F10895853009F462C029 -:1048700008F449C0863009F474C008958091140189 -:10488000262F30E0280F311D2F3F310524F4680F0B -:104890006093140103C08FEF809314018091140181 -:1048A0001F928F9380EE96E072C080911301262FA5 -:1048B00030E0280F311D2F3F310524F4680F60933D -:1048C000130103C08FEF80931301809113011F9296 -:1048D0008F938EEC96E05BC080911201262F30E022 -:1048E000280F311D2F3F310524F4680F609312010A -:1048F00003C08FEF80931201809112011F928F935A -:104900008BEB96E044C080911101262F30E0280FF8 -:10491000311D2F3F310524F4680F6093110103C04E -:104920008FEF80931101809111011F928F9386EA7E -:1049300096E02DC080911001262F30E0280F311D08 -:104940002F3F310524F4680F6093100103C08FEFEF -:1049500080931001809110011F928F938DE896E053 -:1049600016C080910F01262F30E0280F311D2F3FF8 -:10497000310524F4680F60930F0103C08FEF80931B -:104980000F0180910F011F928F9382E796E09F9312 -:104990008F930E945D070F900F900F900F900895D6 -:1049A000833081F128F4813059F08230D1F00895BC -:1049B000853009F449C0B8F1863009F456C008952D -:1049C00080911401681720F4861B8093140102C0A3 -:1049D00010921401809114011F928F9383E696E048 -:1049E00054C080911301681720F4861B8093130133 -:1049F00002C010921301809113011F928F9381E5E1 -:104A000096E043C080911201681720F4861B8093C2 -:104A1000120102C010921201809112011F928F9315 -:104A20008EE396E032C080911101681720F4861B56 -:104A30008093110102C010921101809111011F9207 -:104A40008F9389E296E021C080911001681720F4CD -:104A5000861B8093100102C01092100180911001FA -:104A60001F928F9380E196E010C080910F0168172C -:104A700020F4861B80930F0102C010920F018091D9 -:104A80000F011F928F9385EF95E09F938F930E9464 -:104A90005D070F900F900F900F900895CF93C82F40 -:104AA0001F928F938AEF98E09F938F930E945D07E8 -:104AB00081E090E0A0E0B0E0BC01CD0104C0660F51 -:104AC000771F881F991FCA95D2F70E94121D0F9059 -:104AD0000F900F900F90CF910C945219CF93873273 -:104AE000A8F58E3108F035C1803109F4A5C0F8F47D -:104AF000873009F465C0A8F4863009F030C1809190 -:104B0000DF01817F8E7F8093DF018FE79AE00E9433 -:104B1000C40680EE9CE00E94C40681E08093EF0111 -:104B20004DC08B30F1F18E3009F472C018C186315E -:104B300009F4B6C020F4813109F4F9C010C18931FB -:104B400009F497C08B3109F44FC009C1883349F18A -:104B500050F4893209F4FFC0853309F4FCC0873270 -:104B600009F4F9C0FCC0833409F4F5C028F48A3391 -:104B700008F4F5C08953F0C0883409F0F0C00E94F1 -:104B8000521984EC9CE00E94C4062FEF83ED90E361 -:104B9000215080409040E1F700C000000E94F520C5 -:104BA0000DC086EA9AE062C08BEA9CE00E94C406CF -:104BB0008091DF01897F877F8093DF01C1E0D4C0CE -:104BC0008091DF01C82FC095C170C0FB80F9809330 -:104BD000DF01CC2349F388EB9CE00E94C40680915E -:104BE000DF01866088603DC09091DF0191FBCC279A -:104BF000C0F981E0C827892FC0FB81F98093DF01CC -:104C0000CC2319F08EE99CE027C080E99CE02EC0FF -:104C10009091DF0192FBCC27C0F981E0C827892F52 -:104C2000C0FB82F98093DF01CC2319F081E89CE07E -:104C300013C081E79CE01AC09091DF0193FBCC2761 -:104C4000C0F981E0C827892FC0FB83F98093DF0179 -:104C5000CC2351F085E69CE00E94C4068091DF01E0 -:104C600081608093DF0180C088E59CE00E94C406DB -:104C7000A5CF80E79AE00E94C40685E49AE00E94EE -:104C8000C4068BE09AE00E94C4068EED99E00E9473 -:104C9000C40683EA99E00E94C40688E799E0E6CF5B -:104CA0008AE699E00E94C4060E943C141F928F93EA -:104CB00080E599E09F938F930E945D0780910B019F -:104CC0001F928F9389E399E09F938F930E945D07D2 -:104CD00080917A011F928F9386E299E09F938F9340 -:104CE0000E945D0780910C011F928F9383E199E0F0 -:104CF0009F938F930E945D078091E1019091E20163 -:104D0000A091E301B091E401BF93AF939F938F9380 -:104D10008FEF98E09F938F930E945D078DB79EB7AA -:104D200046960FB6F8949EBF0FBE8DBF47CF0E9428 -:104D30005219C0910C0181E0C827C0930C01CC230B -:104D400029F08EE49CE00E94C4060EC083E49CE03F -:104D50008DCF8D5101C080E00E944E252FCF81E480 -:104D60009CE00E94C406C0E08C2FCF91089580E0A3 -:104D7000089580E00895CF93C82F8091EF0181308E -:104D800071F020F0823009F44BC042C1E0910D0176 -:104D9000F0910E018081823209F03CC107C0E091A0 -:104DA0000D01F0910E018081823261F48C2F0E94FE -:104DB000B726811104C08C2F0E946E252FC081E080 -:104DC00090E02CC08C2F0E94B926811126C0C431DE -:104DD000E1F070F4CB3081F0C031D1F40E941624A0 -:104DE00082EF98E00E94C40682E08093EF0115C034 -:104DF000C93259F0C83361F48FE79AE00E94C406C3 -:104E000086EF98E00E94C40608C01092EF0104C12A -:104E100080EF98E00E94C406FFC081E08170FEC070 -:104E2000C43228F5CE3108F0C1C0CB30A1F1D0F4A6 -:104E3000C73009F0D3C08EE18093140182E38093E0 -:104E400013018AE08093120184E18093110188E0CC -:104E50008093100188E280930F0186E997E00E9419 -:104E6000C406BFC0C33149F1C431C1F0B7C0CB34AF -:104E700009F4A9C028F4C93289F0C83361F0AEC082 -:104E8000C13509F49EC0C23509F499C0CE3409F089 -:104E9000A5C06AE09EC00E941624A3C08091EE01C6 -:104EA000882319F01092EE019CC083EA97E00E94DB -:104EB000C40681E08093EF01B1C08DE797E00E94C6 -:104EC000C4068BE697E00E94C406809114011F92ED -:104ED0008F9388E697E09F938F930E945D0786E605 -:104EE00097E00E94C40684E597E00E94C406809182 -:104EF00013011F928F9381E597E09F938F930E94F8 -:104F00005D078FE497E00E94C40680E497E00E946A -:104F1000C406809112011F928F938DE397E09F93B7 -:104F20008F930E945D078BE397E00E94C4068AE29C -:104F300097E00E94C406809111011F928F9387E22F -:104F400097E09F938F930E945D0785E297E00E9410 -:104F5000C40680E197E00E94C406809110011F9270 -:104F60008F938DE097E09F938F930E945D078BE076 -:104F700097E00E94C40684EF96E00E94C4068091E8 -:104F80000F011F928F9381EF96E09F938F930E9462 -:104F90005D078FEE96E00E94C4068DB79EB74896D7 -:104FA0000FB6F8949EBF0FBE8DBF1BC0CE51EC2F25 -:104FB000F0E0E35CFE4F80818093EE0112C061E07F -:104FC00003C061E006C06AE08091EE010E942D24DA -:104FD00008C08091EE010E94D02403C084E997E0CC -:104FE00013C08091EE01882369F01F928F938EE8A1 -:104FF00097E09F938F930E945D070F900F900F9003 -:105000000F9004C08BE897E00E94C40681E006C0C0 -:105010001092EF0180E002C080E000CFCF910895B0 -:1050200004D06894B1118DC0089570D088F09F5756 -:1050300090F0B92F9927B751A0F0D1F0660F771FE4 -:10504000881F991F1AF0BA95C9F712C0B13081F0C4 -:1050500077D0B1E0089574C0672F782F8827B85FA4 -:1050600039F0B93FCCF3869577956795B395D9F725 -:105070003EF490958095709561957F4F8F4F9F4F2F -:105080000895E89409C097FB3EF49095809570953B -:1050900061957F4F8F4F9F4F9923A9F0F92F96E984 -:1050A000BB279395F695879577956795B795F111F9 -:1050B000F8CFFAF4BB0F11F460FF1BC06F5F7F4F96 -:1050C0008F4F9F4F16C0882311F096E911C07723A8 -:1050D00021F09EE8872F762F05C0662371F096E8B1 -:1050E000862F70E060E02AF09A95660F771F881F80 -:1050F000DAF7880F9695879597F9089557FD905898 -:10510000440F551F59F05F3F71F04795880F97FB8B -:10511000991F61F09F3F79F0879508951216130645 -:105120001406551FF2CF4695F1DF08C01616170674 -:105130001806991FF1CF86957105610508940895A9 -:10514000E894BB2766277727CB0197F908950BD002 -:1051500078C069D028F06ED018F0952309F05AC0B5 -:105160005FC01124EECFCADFA0F3959FD1F3950F56 -:1051700050E0551F629FF001729FBB27F00DB11DDB -:10518000639FAA27F00DB11DAA1F649F6627B00D6B -:10519000A11D661F829F2227B00DA11D621F739F54 -:1051A000B00DA11D621F839FA00D611D221F749F62 -:1051B0003327A00D611D231F849F600D211D822FA9 -:1051C000762F6A2F11249F5750408AF0E1F08823F0 -:1051D0004AF0EE0FFF1FBB1F661F771F881F9150FD -:1051E0005040A9F79E3F510570F014C0AACF5F3F11 -:1051F000ECF3983EDCF3869577956795B795F79530 -:10520000E7959F5FC1F7FE2B880F911D96958795B7 -:1052100097F9089597F99F6780E870E060E0089536 -:105220009FEF80EC089500240A94161617061806BE -:105230000906089500240A9412161306140605069A -:105240000895092E0394000C11F4882352F0BB0F2B -:1052500040F4BF2B11F460FF04C06F5F7F4F8F4F8E -:105260009F4F0895991B79E004C0991F961708F085 -:10527000961B881F7A95C9F78095089597FB072E8E -:1052800016F4009407D077FD09D00E94582907FC36 -:1052900005D03EF4909581959F4F08957095619546 -:1052A0007F4F0895EE0FFF1F0590F491E02D0994B4 -:1052B000AA1BBB1B51E107C0AA1FBB1FA617B7073C -:1052C00010F0A61BB70B881F991F5A95A9F7809558 -:1052D0009095BC01CD010895F999FECF92BD81BD95 -:1052E000F89A992780B50895A8E1B0E042E050E02F -:1052F0000C949429262FF999FECF92BD81BDF89A7E -:10530000019700B4021639F01FBA20BD0FB6F89409 -:10531000FA9AF99A0FBE08950196272F0E947B29C9 -:105320000C947A29DC01CB01FC01F999FECF06C06F -:10533000F2BDE1BDF89A319600B40D924150504053 -:08534000B8F70895F894FFCFBF -:10534800FF790C6A0D470D130DDF0C0101CC012804 -:1053580008140A321E796653436C49636F7F697378 -:10536800091939293F4D362039FD04B0047A045A09 -:105378000421049403AD03C603DF03FF0301020302 -:085388000405060708090000F6 -:00000001FF diff --git a/keyboards/atreus/readme.md b/keyboards/atreus/readme.md new file mode 100644 index 000000000..734f58f0f --- /dev/null +++ b/keyboards/atreus/readme.md @@ -0,0 +1,186 @@ +atreus keyboard firmware +====================== + +## Quantum MK Firmware + +You have access to a bunch of goodies! Check out the Makefile to enable/disable some of the features. Uncomment the `#` to enable them. Setting them to `no` does nothing and will only confuse future you. + + BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality + MIDI_ENABLE = yes # MIDI controls + # UNICODE_ENABLE = yes # Unicode support - this is commented out, just as an example. You have to use #, not // + BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID + +## Atreus specific information + +These configuration files are specifically for the Atreus keyboards created by Phil Hagelberg (@technomancy). This keyboard is available in two variants: one powered by a Teensy 2, one powered by an A-Star. This repository currently assumes that you have an A-Star powered Atreus. If you are using a Teensy2, specify that by adding `TEENSY2=yes` to your `make` commands. + +If you are coming from the [atreus-firmware](https://github.com/technomancy/atreus-firmware), we've also brought forward the `make upload` command for you to use. + +## Quick aliases to common actions + +Your keymap can include shortcuts to common operations (called "function actions" in tmk). + +### Switching and toggling layers + +`MO(layer)` - momentary switch to *layer*. As soon as you let go of the key, the layer is deactivated and you pop back out to the previous layer. When you apply this to a key, that same key must be set as `KC_TRNS` on the destination layer. Otherwise, you won't make it back to the original layer when you release the key (and you'll get a keycode sent). You can only switch to layers *above* your current layer. If you're on layer 0 and you use `MO(1)`, that will switch to layer 1 just fine. But if you include `MO(3)` on layer 5, that won't do anything for you -- because layer 3 is lower than layer 5 on the stack. + +`LT(layer, kc)` - momentary switch to *layer* when held, and *kc* when tapped. Like `MO()`, this only works upwards in the layer stack (`layer` must be higher than the current layer). + +`TG(layer)` - toggles a layer on or off. As with `MO()`, you should set this key as `KC_TRNS` in the destination layer so that tapping it again actually toggles back to the original layer. Only works upwards in the layer stack. + +### Fun with modifier keys + +* `LSFT(kc)` - applies left Shift to *kc* (keycode) - `S(kc)` is an alias +* `RSFT(kc)` - applies right Shift to *kc* +* `LCTL(kc)` - applies left Control to *kc* +* `RCTL(kc)` - applies right Control to *kc* +* `LALT(kc)` - applies left Alt to *kc* +* `RALT(kc)` - applies right Alt to *kc* +* `LGUI(kc)` - applies left GUI (command/win) to *kc* +* `RGUI(kc)` - applies right GUI (command/win) to *kc* + +You can also chain these, like this: + + LALT(LCTL(KC_DEL)) -- this makes a key that sends Alt, Control, and Delete in a single keypress. + +The following shortcuts automatically add `LSFT()` to keycodes to get commonly used symbols. Their long names are also available and documented in `/quantum/keymap_common.h`. + + KC_TILD ~ + KC_EXLM ! + KC_AT @ + KC_HASH # + KC_DLR $ + KC_PERC % + KC_CIRC ^ + KC_AMPR & + KC_ASTR * + KC_LPRN ( + KC_RPRN ) + KC_UNDS _ + KC_PLUS + + KC_LCBR { + KC_RCBR } + KC_PIPE | + KC_COLN : + +`MT(mod, kc)` - is *mod* (modifier key - MOD_LCTL, MOD_LSFT) when held, and *kc* when tapped. In other words, you can have a key that sends Esc (or the letter O or whatever) when you tap it, but works as a Control key or a Shift key when you hold it down. + +These are the values you can use for the `mod` in `MT()` (right-hand modifiers are not available): + + * MOD_LCTL + * MOD_LSFT + * MOD_LALT + * MOD_LGUI + +These can also be combined like `MOD_LCTL | MOD_LSFT` e.g. `MT(MOD_LCTL | MOD_LSFT, KC_ESC)` which would activate Control and Shift when held, and send Escape when tapped. + +We've added shortcuts to make common modifier/tap (mod-tap) mappings more compact: + + * `CTL_T(kc)` - is LCTL when held and *kc* when tapped + * `SFT_T(kc)` - is LSFT when held and *kc* when tapped + * `ALT_T(kc)` - is LALT when held and *kc* when tapped + * `GUI_T(kc)` - is LGUI when held and *kc* when tapped + * `ALL_T(kc)` - is Hyper (all mods) when held and *kc* when tapped. To read more about what you can do with a Hyper key, see [this blog post by Brett Terpstra](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) + +### Temporarily setting the default layer + +`DF(layer)` - sets default layer to *layer*. The default layer is the one at the "bottom" of the layer stack - the ultimate fallback layer. This currently does not persist over power loss. When you plug the keyboard back in, layer 0 will always be the default. It is theoretically possible to work around that, but that's not what `DF` does. + +### Remember: These are just aliases + +These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk ACTION_* functions, please see the [TMK documentation](https://github.com/jackhumbert/qmk_firmware/blob/master/tmk_core/doc/keymap.md#2-action). + +Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - the benefit here is being able to use more than 32 function actions (up to 4096), if you happen to need them. + +## Macro shortcuts: Send a whole string when pressing just one key + +Instead of using the `ACTION_MACRO` function, you can simply use `M(n)` to access macro *n* - *n* will get passed into the `action_get_macro` as the `id`, and you can use a switch statement to trigger it. This gets called on the keydown and keyup, so you'll need to use an if statement testing `record->event.pressed` (see keymap_default.c). + +```c +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // this is the function signature -- just copy/paste it into your keymap file as it is. +{ + switch(id) { + case 0: // this would trigger when you hit a key mapped as M(0) + if (record->event.pressed) { + return MACRO( I(255), T(H), T(E), T(L), T(L), W(255), T(O), END ); // this sends the string 'hello' when the macro executes + } + break; + } + return MACRO_NONE; +}; +``` +A macro can include the following commands: + +* I() change interval of stroke in milliseconds. +* D() press key. +* U() release key. +* T() type key(press and release). +* W() wait (milliseconds). +* END end mark. + +So above you can see the stroke interval changed to 255ms between each keystroke, then a bunch of keys being typed, waits a while, then the macro ends. + +Note: Using macros to have your keyboard send passwords for you is a bad idea. + +### Additional keycode aliases for software-implemented layouts (Colemak, Dvorak, etc) + +Everything is assuming you're in Qwerty (in software) by default, but there is built-in support for using a Colemak or Dvorak layout by including this at the top of your keymap: + + #include "keymap_.h" + +Where is "colemak" or "dvorak". After including this line, you will get access to: + + * `CM_*` for all of the Colemak-equivalent characters + * `DV_*` for all of the Dvorak-equivalent characters + +These implementations assume you're using Colemak or Dvorak on your OS, not on your keyboard - this is referred to as a software-implemented layout. If your computer is in Qwerty and your keymap is in Colemak or Dvorak, this is referred to as a firmware-implemented layout, and you won't need these features. + +To give an example, if you're using software-implemented Colemak, and want to get an `F`, you would use `CM_F` - `KC_F` under these same circumstances would result in `T`. + +## Additional language support + +In `quantum/keymap_extras/`, you'll see various language files - these work the same way as the alternative layout ones do. Most are defined by their two letter country/language code followed by an underscore and a 4-letter abbreviation of its name. `FR_UGRV` which will result in a `ù` when using a software-implemented AZERTY layout. It's currently difficult to send such characters in just the firmware (but it's being worked on - see Unicode support). + +## Unicode support + +You can currently send 4 hex digits with your OS-specific modifier key (RALT for OSX with the "Unicode Hex Input" layout) - this is currently limited to supporting one OS at a time, and requires a recompile for switching. 8 digit hex codes are being worked on. The keycode function is `UC(n)`, where *n* is a 4 digit hexidecimal. Enable from the Makefile. + +## Other firmware shortcut keycodes + +* `RESET` - puts the MCU in DFU mode for flashing new firmware (with `make dfu`) +* `DEBUG` - the firmware into debug mode - you'll need hid_listen to see things +* `BL_ON` - turns the backlight on +* `BL_OFF` - turns the backlight off +* `BL_` - sets the backlight to level *n* +* `BL_INC` - increments the backlight level by one +* `BL_DEC` - decrements the backlight level by one +* `BL_TOGG` - toggles the backlight +* `BL_STEP` - steps through the backlight levels + +Enable the backlight from the Makefile. + +## MIDI functionalty + +This is still a WIP, but check out `quantum/keymap_midi.c` to see what's happening. Enable from the Makefile. + +## Bluetooth functionality + +This requires [some hardware changes](https://www.reddit.com/r/MechanicalKeyboards/comments/3psx0q/the_planck_keyboard_with_bluetooth_guide_and/?ref=search_posts), but can be enabled via the Makefile. The firmware will still output characters via USB, so be aware of this when charging via a computer. It would make sense to have a switch on the Bluefruit to turn it off at will. + +## Building + +Download or clone the whole firmware and navigate to the keyboards/planck folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use `make dfu` to program your PCB once you hit the reset button. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default +To build with the default keymap, simply run `make`. + +### Other Keymaps +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` and see keymap document (you can find in top readme.md) and existent keymap files. + +To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: +``` +$ make KEYMAP=[default|jack|] +``` +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboards/bantam44/README.md b/keyboards/bantam44/README.md deleted file mode 100644 index a571e3d44..000000000 --- a/keyboards/bantam44/README.md +++ /dev/null @@ -1,24 +0,0 @@ -Bantam44 keyboard firmware -====================== - -## Quantum MK Firmware - -For the full Quantum feature list, see [the parent README.md](/README.md). - -## Building - -Download or clone the whole firmware and navigate to the keyboards/Bantam44 folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. - -Depending on which keymap you would like to use, you will have to compile slightly differently. - -### Default -To build with the default keymap, simply run `make`. - -### Other Keymaps -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` and see keymap document (you can find in top README.md) and existent keymap files. - -To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: -``` -$ make KEYMAP=[default|jack|] -``` -Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. \ No newline at end of file diff --git a/keyboards/bantam44/bantam44.c b/keyboards/bantam44/bantam44.c index 5d507adc3..f995308ae 100644 --- a/keyboards/bantam44/bantam44.c +++ b/keyboards/bantam44/bantam44.c @@ -1,25 +1 @@ -#include "bantam44.h" - -__attribute__ ((weak)) -void matrix_init_user(void) { - // leave these blank -} - -__attribute__ ((weak)) -void matrix_scan_user(void) { - // leave these blank -} - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - - matrix_init_user(); -} - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - - matrix_scan_user(); -} +#include "bantam44.h" \ No newline at end of file diff --git a/keyboards/bantam44/bantam44.h b/keyboards/bantam44/bantam44.h index 8e776d63b..3c0117434 100644 --- a/keyboards/bantam44/bantam44.h +++ b/keyboards/bantam44/bantam44.h @@ -1,10 +1,7 @@ #ifndef BANTAM44_H #define BANTAM44_H -#include "matrix.h" -#include "keymap.h" -#include "backlight.h" -#include +#include "quantum.h" // This a shortcut to help you visually see your layout. // The following is an example using the Planck MIT layout @@ -23,7 +20,4 @@ { K30, K31, K32, KC_NO, K33, KC_NO, K34, KC_NO, K35, K36, K37, K38 }, \ } -void matrix_init_user(void); -void matrix_scan_user(void); - #endif diff --git a/keyboards/bantam44/keymaps/default/compiled.hex b/keyboards/bantam44/keymaps/default/compiled.hex deleted file mode 100644 index df7fc1b9c..000000000 --- a/keyboards/bantam44/keymaps/default/compiled.hex +++ /dev/null @@ -1,1398 +0,0 @@ -:100000000C9489060C94CD060C94CD060C94CD0668 -:100010000C94CD060C94CD060C94CD060C94CD0614 -:100020000C94CD060C94CD060C9486110C945812A9 -:100030000C94CD1F0C94CD060C94CD060C94CD06DB -:100040000C94CD060C94CD060C94CD060C94CD06E4 -:100050000C94CD060C9435200C94CD060C94CD0652 -:100060000C94CD060C94CD060C94CD060C94CD06C4 -:100070000C94CD060C94CD060C94CD060C94CD06B4 -:100080000C94CD060C94CD060C94CD060C94CD06A4 -:100090000C94CD060C94CD060C94CD060C94CD0694 -:1000A0000C94CD060C94CD060C94CD06C512E71227 -:1000B000D513E712D5132C134F13D513A413B7136D -:1000C000FA16FA162917291768178817B818B818D2 -:1000D0009317B81843184318A918B818B818B218C5 -:1000E00050185018501850185018501850185018D0 -:1000F00050185018501850185018501850185018C0 -:1001000060186E1875187C188618290014001A00DB -:100110000800150017001C0018000C001200130046 -:100120002A002B0004001600070009000A000B003B -:100130000D000E000F00000028003900E1001D0036 -:100140001B000600190005001100100036003700E2 -:10015000E500E000E300E2000000015200002C0096 -:100160000000025233003400380029001E001F0036 -:100170002000210022002300240025002600270063 -:100180004C002B00AC00AE00AB00350031002D0060 -:100190002E002F003000000028003900E1003A0056 -:1001A0003B003C003D003E003F0000004A004B0089 -:1001B000E500E000E300E2000000010000002C0088 -:1001C000000001004D004E001E0229001E021F0209 -:1001D00020022102220223022402250226022702F3 -:1001E0004C002B00A800AA00A900350231022D0204 -:1001F0002E022F023002000028003900E1004000EA -:10020000410042004300440045000000000052004D -:10021000E500E000E300E2000000010000002C0027 -:1002200000000100500051004F000A44454255476C -:100230003A20656E61626C65642E0A0053746174C5 -:1002400065206F6620726F772025583A202530315F -:1002500036620A0048756D616E2D72656164616277 -:100260006C65206D61747269782073746174653A8D -:100270000D0A004465626F756E63696E6720646580 -:100280006C61792072656D61696E696E673A2025CF -:10029000580A005B735D004B6579626F6172642080 -:1002A00073746172742E0A005B575D005B535D00CE -:1002B0005B525D005B445D005B435D0012034200E6 -:1002C00061006E00740061006D00340034000000B5 -:1002D0002203420061006E00740061006D00200086 -:1002E0004B006500790062006F00610072006400DD -:1002F000730000000403090409027400040100A053 -:10030000FA090400000103010100092111010001A3 -:10031000223F000705810308000A090401000103C8 -:10032000010200092111010001224D00070582038D -:1003300008000A090402000103000000092111015C -:1003400000012236000705830308000A09040300A0 -:10035000020300000009211101000122200007050D -:10036000840320000107050403200001120110018D -:1003700000000008EDFE606001000102000106318E -:10038000FF0974A1010975150025FF9520750881E5 -:10039000020976150025FF952075089102C0050118 -:1003A0000980A101850216010026B7001A01002A62 -:1003B000B700751095018100C0050C0901A10185E8 -:1003C00003160100269C021A01002A9C0275109552 -:1003D000018100C005010902A1010901A10005096F -:1003E0001901290515002501950575018102950161 -:1003F000750381010501093009311581257F9502B9 -:100400007508810609381581257F950175088106D3 -:10041000050C0A38021581257F950175088106C0F3 -:10042000C005010906A101050719E029E715002506 -:10043000019508750181029501750881010508196A -:100440000129059505750191029501750391010535 -:1004500007190029FF150025FF950675088100C0C2 -:100460000A002530325820006B6579626F61726432 -:100470005F7265706F72743A20004B6579626F61CC -:100480007264204C4544732073746174653A20256E -:10049000780A00646F6E652E0A00626F6F676D6187 -:1004A000676963207363616E3A202E2E2E20002927 -:1004B0000A002575002F002575005D2800256400C1 -:1004C0002000256400200025640020002564007CB5 -:1004D0000025303258006D6F7573656B6579205B50 -:1004E00062746E7C782079207620685D2872657051 -:1004F0002F61636C293A205B006D6B5F77686565DF -:100500006C5F74696D655F746F5F6D6178203D200D -:1005100025640A006D6B5F776865656C5F6D617857 -:100520005F7370656564203D2025640A006D6B5F14 -:1005300074696D655F746F5F6D6178203D2025641F -:100540000A006D6B5F6D61785F7370656564203D57 -:100550002025640A006D6B5F696E74657276616C4C -:10056000203D2025640A006D6B5F64656C61792015 -:100570003D2025640A006D6B5F776865656C5F746C -:10058000696D655F746F5F6D6178203D2025640A39 -:10059000006D6B5F776865656C5F6D61785F737028 -:1005A000656564203D2025640A006D6B5F74696D8C -:1005B000655F746F5F6D6178203D2025640A006D72 -:1005C0006B5F6D61785F7370656564203D202564A5 -:1005D0000A006D6B5F696E74657276616C203D20F8 -:1005E00025640A006D6B5F64656C6179203D202590 -:1005F000640A000A00257500363A20776865656C44 -:100600005F74696D655F746F5F6D61783A20000A91 -:1006100000257500353A20776865656C5F6D6178F7 -:100620005F73706565643A20000A00257500343AEE -:100630002074696D655F746F5F6D61783A20000AA0 -:1006400000257500333A206D61785F7370656564CD -:100650003A20000A00257500323A20696E746572EE -:1006600076616C286D73293A20000A0025750031E7 -:100670003A2064656C6179282A31306D73293A20FB -:10068000000A092D2056616C756573202D0A004DF6 -:100690003E004D25643E20003F0073657420646574 -:1006A0006661756C740A00433E2000776865726568 -:1006B0002064656C74613A20637572736F723D25B6 -:1006C000642C20776865656C3D25640A5365652058 -:1006D000687474703A2F2F656E2E77696B69706538 -:1006E0006469612E6F72672F77696B692F4D6F7523 -:1006F00073655F6B6579730A000A092D204D6F756C -:1007000073656B6579202D0A4553432F713A097142 -:100710007569740A313A0964656C6179282A313047 -:100720006D73290A323A09696E74657276616C28B4 -:100730006D73290A333A096D61785F73706565647A -:100740000A343A0974696D655F746F5F6D61780A88 -:10075000353A09776865656C5F6D61785F737065C0 -:1007600065640A363A09776865656C5F74696D651A -:100770005F746F5F6D61780A0A703A097072696E12 -:10078000742076616C7565730A643A097365742028 -:1007900064656661756C74730A75703A092B310A69 -:1007A000646F776E3A092D310A706775703A092BBC -:1007B00031300A7067646F776E3A092D31300A0A5A -:1007C0007370656564203D2064656C7461202A2027 -:1007D0006D61785F7370656564202A20287265708A -:1007E000656174202F2074696D655F746F5F6D6142 -:1007F00078290A003F004D3E2000433E20004C2552 -:10080000640A0074696D65725F636F756E743A2077 -:100810002530346C580A006B6579626F6172645FD1 -:1008200069646C653A2025580A006B6579626F61CE -:1008300072645F70726F746F636F6C3A2025580A30 -:1008400000686F73745F6B6579626F6172645F6C6F -:1008500065647328293A2025580A000A092D205377 -:100860007461747573202D0A004743433A20342E77 -:10087000392E32204156522D4C4942433A20312ED6 -:10088000382E31204156525F415243483A2061761A -:1008900072350A004F5054494F4E533A204C55463A -:1008A0004120424F4F544D41474943204D4F5553EE -:1008B000454B45592045585452414B455920434FCB -:1008C0004E534F4C4520434F4D4D414E4420353102 -:1008D000320A004255494C443A20313637313865A6 -:1008E000662D6469727479202832333A30393A338C -:1008F00031204A756E2020392032303136290A00E5 -:100900005649443A203078464545442842616E7441 -:10091000616D204B6579626F617264732920504963 -:10092000443A203078363036302842616E74616D3A -:10093000343429205645523A203078303030310A4C -:1009400000444553433A204120637573746F6D2012 -:100950006B6579626F6172640A000A092D20566521 -:100960007273696F6E202D0A000A092D20436F6E85 -:10097000736F6C65202D0A4553432F713A097175C9 -:1009800069740A6D3A096D6F7573656B65790A0054 -:100990000A092D204D61676963202D0A443A0944F4 -:1009A00065627567204D65737361676520546F6775 -:1009B000676C650A583A094D61747269782044651C -:1009C000627567204D6F646520546F67676C6520A2 -:1009D0002D2053686F77206B65797072657373652E -:1009E0007320696E206D6174726978206772696422 -:1009F0000A4B3A094B6579626F6172642044656203 -:100A0000756720546F67676C65202D2053686F777A -:100A1000206B65797072657373207265706F727484 -:100A20000A4D3A094465627567204D6F75736520FC -:100A3000546F67676C650A563A0956657273696F39 -:100A40006E0A533A095374617475730A433A094143 -:100A50006374697661746520436F6E736F6C652093 -:100A60004D6F64650A46312D4631303A0953776936 -:100A700074636820746F204C6179657220302D3961 -:100A80002028463130203D204C30290A302D393A7B -:100A90000953776974636820746F204C61796572BB -:100AA00020302D390A4553433A09537769746368F6 -:100AB00020746F204C6179657220302028616C743D -:100AC00065726E617465206B65792031290A475221 -:100AD0004156453A0953776974636820746F204C16 -:100AE0006179657220302028616C7465726E617462 -:100AF00065206B65792032290A50415553453A09E2 -:100B00004A756D7020746F20426F6F746C6F6164F2 -:100B1000657220285265736574290A453A09507236 -:100B2000696E7420454550524F4D20536574746969 -:100B30006E67730A000A002575002E6E6B726F3A9D -:100B400020000A002575002E737761705F62616373 -:100B50006B736C6173685F6261636B737061636513 -:100B60003A20000A002575002E737761705F677266 -:100B70006176655F6573633A20000A002575002E73 -:100B80006E6F5F6775693A20000A002575002E7345 -:100B90007761705F72616C745F726775693A20008B -:100BA0000A002575002E737761705F6C616C745F4D -:100BB0006C6775693A20000A002575002E63617024 -:100BC000736C6F636B5F746F5F636F6E74726F6C67 -:100BD0003A20000A002575002E737761705F636FFD -:100BE0006E74726F6C5F636170736C6F636B3A20CD -:100BF000000A0025303258006B65796D61705F63C3 -:100C00006F6E6669672E7261773A20000A0025755B -:100C1000002E6D6F7573653A20000A002575002E51 -:100C20006B6579626F6172643A20000A0025750075 -:100C30002E6D61747269783A20000A002575002EC5 -:100C4000656E61626C653A20000A002530325800FA -:100C500064656275675F636F6E6669672E72617740 -:100C60003A20000A0025750064656661756C745F42 -:100C70006C617965723A20003F000A6D6F7573658B -:100C80003A206F66660A000A6D6F7573653A206FC9 -:100C90006E0A000A6B6579626F6172643A206F6652 -:100CA000660A000A6B6579626F6172643A206F6E42 -:100CB0000A000A6D61747269783A206F66660A00EC -:100CC0000A6D61747269783A206F6E0A000A646571 -:100CD0006275673A206F66660A000A646562756726 -:100CE0003A206F6E0A000A0A4A756D70696E6720B5 -:100CF000746F20626F6F746C6F616465722E2E2E3C -:100D00002000433E20006565636F6E6669673A0A9E -:100D1000000011241FBECFEFDAE0DEBFCDBF04B666 -:100D200003FE24C08091E8019091E901A091EA01BD -:100D3000B091EB018730904BA740B04BB9F41092C3 -:100D4000E8011092E9011092EA011092EB0114BE41 -:100D500084B7877F84BF88E10FB6F89480936000E2 -:100D6000109260000FBEE0E0FFE3099511E0A0E003 -:100D7000B1E0EEEFF6E502C005900D92A234B107A6 -:100D8000D9F711E0A2E4B1E001C01D92A83EB1077D -:100D9000E1F70E94C00E0C947D2B0C940000FF9391 -:100DA000EF93E0914201F0914301309709F00995EA -:100DB000EF91FF910895FC018591803011F0EFDFF4 -:100DC000FBCF0895FF27E0E230E247FF0CC04195DA -:100DD00097FF09C0EDE26095709580959095611D33 -:100DE000711D811D911D27FF02C0219530E350E246 -:100DF000AA27660F771F881F991FAA1FA41710F034 -:100E0000A41B63955A95A9F7AA3008F0A95FA05DC5 -:100E1000AF93F395611571058105910541F7ED32A9 -:100E200011F4EF93F395F21718F43F93F395FBCF7A -:100E30008F91B5DFFA95E1F70895E991F9918591E0 -:100E4000803021F0853219F0AADFF9CF089520E033 -:100E5000E89455915532C1F3503311F4689455918B -:100E60005A3348F4505390F3220F022E220F220FD0 -:100E7000200D250FF4CF0EF42195899199915336C9 -:100E800019F3533729F1533559F1BC0188279927B4 -:100E9000E8945C3621F4899199916894559154367F -:100EA00039F446EF7EF077FF0DC08FEF9FEF0AC059 -:100EB00055374AE039F0583540E121F0523642E0EA -:100EC00009F00895FF93EF937DDFEF91FF91B7CF86 -:100ED000FF93EF93FC0181918030B9F360DFFBCF8A -:100EE000FF93EF9368DFF1CFDF93CF93CDB7DEB7FA -:100EF0002596A3DFCF91DF910895089508950C946E -:100F00007D070C947E0780E090E0089581E00895CD -:100F100081E008950C94880708950F931F93CF9351 -:100F2000DF938C01FC01C081D181CE010E941C1E87 -:100F3000BE010E943A08EC01B8010E948A0788238A -:100F400009F48DC0F8018281882309F44AC0809198 -:100F50004F0181111FC0C431F0E5DF0709F051C016 -:100F60000E948C0781E080934F010E94FF1F9093A5 -:100F70004E0180934D01109246011092480110924B -:100F8000470110924A011092490110924C011092AF -:100F90004B0165C080914D0190914E010E940B2044 -:100FA000883C910570F480914601E82FF0E0EE0F47 -:100FB000FF1FE95BFE4FD183C0838F5F80934601A3 -:100FC0004EC0C43880E5D80721F0C538D04501F1BE -:100FD0003AC0F8018281882341F01092440182E0F6 -:100FE0001EC0C438E0E5DE0759F580914401811147 -:100FF00006C086E20E949E1586E20E94661682E086 -:101000001CC0C438F0E5DF0741F3C538D045D9F43A -:10101000F8018281882331F01092450180E20E941C -:10102000B5161DC080914501811106C087E20E945E -:101030009E1587E20E94661680E20E94BC160FC0D1 -:10104000C538D04529F381E0809344018093450160 -:10105000C801DF91CF911F910F910C94860780E01A -:10106000DF91CF911F910F9108950C947F070C94FD -:10107000810708959CE0799FF001112490E3899FF6 -:10108000E00DF11D1124E60FF11DEE0FFF1FE65FCD -:10109000FE4F859194910895880F991FFC01E657A2 -:1010A000F040859194910895880F991FFC01E65FA7 -:1010B000FE4F8591949108950F931F93CF93DF93E3 -:1010C000EC01811520E3920750F5C11580E2D807A5 -:1010D00008F0C3C0CB3BD10590F4C83AD10508F065 -:1010E0006AC0C53AD10508F05BC0C430D10508F02C -:1010F000D4C1219709F0CEC101E010E00EC2CF3F6C -:10110000D10511F008F0C9C1C03FD10508F0A2C057 -:10111000CE01805E9109089708F4BFC1BBC1C13000 -:1011200090E5D90709F4A2C020F5C0318FE4D807B3 -:1011300070F4C11590E4D90708F094C0C11521E3FB -:10114000D20708F0A7C1DD278E01106CE6C1C115DA -:10115000D04509F09FC10E9423198FEF94E32CE042 -:10116000815090402040E1F700C000000E945A20CA -:10117000D4C1C11597E5D90758F4C03121E5D2078C -:1011800008F020C1C43180E5D80708F479C082C1D5 -:10119000CE0190578115904108F07CC1DF7077C176 -:1011A000C53AD10509F47BC1C63AD10509F07AC127 -:1011B00002E810E4B2C1C83AD10509F476C1C93ACF -:1011C000D10509F475C1CA3AD10509F474C1CB3A05 -:1011D000D10509F473C1CC3AD10509F472C1CD3AF5 -:1011E000D10509F471C1C03BD10509F470C1CE3AF3 -:1011F000D10509F46FC1CF3AD10509F46EC1C13BE5 -:10120000D10509F46DC1C23BD10509F46CC1C33BE2 -:10121000D10509F46BC1C43BD10509F46AC1C53BD2 -:10122000D10509F469C1C63BD10509F468C1C73BC2 -:10123000D10509F467C1C83BD10509F466C1C93BB2 -:10124000D10509F465C1CA3BD10509F464C100E0C8 -:1012500014E463C18E01106560C1CE019F700E94CD -:1012600054085CC1DF708E01106A57C18AE292E0B7 -:101270000E94DB068091C90181608093C9014DC144 -:101280000E940822811102C00E94EE210E942522A4 -:1012900090E09093E8018093E701C23080E5D807A1 -:1012A00021F48091E701816086C0C43090E5D907C0 -:1012B00021F48091E70182607EC0C63020E5D2072C -:1012C00021F48091E701846076C0C83080E5D807BA -:1012D00019F48091E70127C0CA3090E5D90721F4BD -:1012E0008091E701806167C0CC3020E5D20721F40E -:1012F0008091E70180625FC0CE3080E5D80721F49D -:101300008091E701806457C0C03190E5D90721F48E -:101310008091E70180684FC0C23120E5D20729F4EF -:101320008091E7018460886046C0C33080E5D807BB -:1013300021F48091E7018E7F3EC0C53090E5D9074A -:1013400021F48091E7018D7F36C0C73020E5D207B8 -:1013500021F48091E7018B7F2EC0C93080E5D8074A -:1013600019F48091E70126C0CB3090E5D90721F42C -:101370008091E7018F7E1FC0CD3020E5D20721F498 -:101380008091E7018F7D17C0CF3080E5D80721F429 -:101390008091E7018F7B0FC0C13190E5D90721F41F -:1013A0008091E7018F7707C0C331D04531F4809138 -:1013B000E7018B7F877F8093E7018091E7010E949F -:1013C0002922ABC08D2F99278F70992781309105E5 -:1013D000D9F49E012370332702C0880F991F2A95E4 -:1013E000E2F79C688E0144E0000F111F4A95E1F777 -:1013F00000271370802B912B53E0CC0FDD1F5A95E3 -:10140000E1F7C076DD272FC08230910531F4DC2F63 -:10141000CC278E01016F106A80C08330910569F47A -:10142000CE018370992701E010E002C0000F111F68 -:101430008A95E2F7C8019C680FC084309105B9F421 -:10144000CE018370992701E010E002C0000F111F48 -:101450008A95E2F7C8019A6823E0CC0FDD1F2A9530 -:10146000E1F7C07ED7708C010C2B1D2B56C0853048 -:10147000910531F4DC2FCC278E01046F106A4DC02A -:10148000069709F04AC0CF71DD27DC2FCC278E01EB -:10149000106243C000E010E040C08E013EC001E891 -:1014A00010E43BC003E810E438C002EE14E435C099 -:1014B00009EE14E432C00AEE14E42FC005EB14E484 -:1014C0002CC006EB14E429C007EB14E426C00CEC96 -:1014D00014E423C00DEC14E420C003E815E41DC09F -:1014E0000AE815E41AC002E915E417C004E915E496 -:1014F00014C001E216E411C003E216E40EC004E2D7 -:1015000016E40BC005E216E408C006E216E405C0C6 -:1015100007E216E402C00AE216E4C801DF91CF91A7 -:101520001F910F9108959CE0799FF001112490E3A1 -:10153000899FE00DF11D1124E60FF11DEE0FFF1F35 -:10154000E65FFE4F85919491803E9105E0F4803CEA -:10155000910558F58133910509F46FC048F489323B -:10156000910509F463C08A32910509F46DC072C017 -:1015700089339105E9F082389105D1F085339105E1 -:1015800009F44DC067C0833E910581F138F4803E77 -:101590009105B9F0823E9105D9F05CC0863E910577 -:1015A00061F1873E9105A1F155C00E944C08089554 -:1015B0002091E70120FD02C021FF4CC080EE90E0A9 -:1015C00049C08091E70180FFF9CF89E390E042C0F4 -:1015D0008091E70182FF0EC08091E70184FF03C084 -:1015E00080E090E037C083EE90E034C08091E70166 -:1015F00082FFF2CF82EE90E02DC08091E70183FF61 -:101600000BC08091E70184FDEBCF87EE90E022C014 -:101610008091E70183FFF5CF86EE90E01BC08091BB -:10162000E70185FF07C089E290E014C08091E701DF -:1016300085FFF9CF85E390E00DC08091E70186FF3B -:1016400007C08AE290E006C08091E70186FFF9CFEB -:1016500081E390E00E945C08089508950C942D0B9E -:10166000E82FF0E0E05EFE4F8081E82FEF70F0E0C1 -:1016700082958F7021E030E0A90102C0440F551F10 -:101680008A95E2F740A308950F931F93CF93DF93BA -:1016900085B7806885BF85B7806885BFC3E0D0E027 -:1016A00001E010E0FE01E05EFE4F8081E82FEF7068 -:1016B000F0E021A182958F70A80102C0440F551F50 -:1016C0008A95E2F7CA01822B81A38C2F0E94300BEE -:1016D000219740F78BE090E061E070E0FC01EC5E68 -:1016E000FE4F2081E22FEF70F0E042A122952F7093 -:1016F000DB0102C0AA0FBB1F2A95E2F79D01242B34 -:1017000022A3019758F7DF91CF911F910F910C946D -:101710003508EF92FF920F931F93CF93DF9308E565 -:1017200011E0C3E0EE24E394F12CD5E08C2F0E946D -:10173000300B8BE090E040E050E0FC01EC5EFE4FAF -:101740006081E62FEF70F0E020A130E062956F70CD -:1017500002C0359527956A95E2F720FD09C09701EB -:10176000082E02C0220F331F0A94E2F7422B532B9C -:10177000019718F7F801929182918F0184179507CC -:1017800021F051834083D09300018C2F0E94300BB5 -:10179000C15060F68091000187FD42C09091C9015F -:1017A00090FF10C0282F332727FD30953F938F934C -:1017B00083E792E09F938F930E9474070F900F909E -:1017C0000F900F908091000181508093000187FD60 -:1017D00007C08FE99FE00197F1F700C0000020C02B -:1017E000809156019091570190935F0180935E0123 -:1017F000809154019091550190935D0180935C011B -:10180000809152019091530190935B0180935A0112 -:10181000809150019091510190935901809358010A -:101820000E94370881E0DF91CF911F910F91FF90C7 -:10183000EF900895E82FF0E0EE0FFF1FE85AFE4FFB -:10184000808191810895EF92FF920F931F93CF9320 -:10185000DF938091C90180FF04C084E592E00E947B -:10186000DB0608E511E0C0E0D0E08CE3E82E82E082 -:10187000F82E8091C90180FF13C0F8018081918109 -:101880000E94741F9F938F93DF93CF93FF92EF92E9 -:101890000E9474070F900F900F900F900F900F9071 -:1018A00021960E5F1F4FC430D10519F7DF91CF91FC -:1018B0001F910F91FF90EF9008950F931F93CF9377 -:1018C00000E611E0C0E0F801929182918F010E9440 -:1018D000521FC80FF1E008351F07A9F78C2FCF91D1 -:1018E0001F910F91089580916B0108959FB7F8940F -:1018F000109262019FBF9091DE01943009F057C0B1 -:101900009091E9009F703091EC00232F217030FD01 -:1019100020E8922B24E02093E9002091EB0020FFA7 -:1019200043C02091EE0027FF3FC020916001222399 -:1019300021F02091E80025FF37C01092600126E0D9 -:101940003091E80035FD15C03091DE01343061F58D -:101950003091EB0035FD28C0215021F481E08093C7 -:10196000600122C0EFE9FFE03197F1F700C000000D -:10197000E7CF8093F1008091E80085FD0AC0809157 -:10198000E80080FFFCCF8091E8008E778093E8002C -:1019900006C08FB7F89421E0209362018FBF9F703B -:1019A0009093E90080E008959F709093E9008FEF95 -:1019B0000895CF93DF9300D01F92CDB7DEB79C017F -:1019C0008091DE01843019F593E099833B832A836B -:1019D0009093E9008FEF9091E800815095FD06C04B -:1019E00095ED9A95F1F700008111F5CF8091E8000F -:1019F00085FF0DC040E050E063E070E0CE0101964D -:101A00000E94760F8091E8008E778093E8000F9017 -:101A10000F900F90DF91CF910895CF93DF9300D077 -:101A20001F92CDB7DEB72091DE01243021F522E0F0 -:101A300029839B838A8383E08093E9008FEF9091D1 -:101A4000E800815095FD06C095ED9A95F1F70000EC -:101A50008111F5CF8091E80085FF0DC040E050E096 -:101A600063E070E0CE0101960E94760F8091E8005D -:101A70008E778093E8000F900F900F90DF91CF91B9 -:101A800008952091DE012430F1F422E02093E90052 -:101A90002FEF3091E800215035FD06C035ED3A9525 -:101AA000F1F700002111F5CF2091E80025FF0BC0D0 -:101AB00040E050E065E070E00E94760F8091E80021 -:101AC0008E778093E8000895CF93DF932091DE0115 -:101AD000243039F521E02093E9002FEF3091E80020 -:101AE000215035FD06C035ED3A95F1F70000211182 -:101AF000F5CF2091E80025FF14C0EC0140E050E054 -:101B000068E070E00E94760F8091E8008E77809305 -:101B1000E80088E0FE01A3E6B1E001900D928A950D -:101B2000E1F7DF91CF91089588EB92E00E94DB0608 -:101B30008091DD01811109C00E940B110E94681182 -:101B40008091E20084608093E200089584EB92E04B -:101B50000E94DB061092DD01089580EB92E00C9468 -:101B6000DB068CEA92E00C94DB0688EA92E00E94A5 -:101B7000DB060C94C71F209161012F5F822F62E367 -:101B80000E940D2B992319F0209361010895109262 -:101B9000610180916201882371F18091DE018430BE -:101BA00041F58091E9008F702091EC00922F9170A7 -:101BB00020FD90E8892B94E09093E9009091EB0050 -:101BC00090FF14C09091EE0097FF10C09091E80034 -:101BD00095FF03C01092F100F9CF9091E80090FFBB -:101BE00005C09091E8009E779093E8008F708093F5 -:101BF000E90010926201089542E061EC81E00E94E8 -:101C0000851042E061EC82E00E94851042E061ECC8 -:101C100083E00E94851042E261EC84E00C94851020 -:101C20008091E001833009F453C030F4813071F0C9 -:101C3000823009F48CC008958A3009F478C08B3062 -:101C400009F45EC0893009F09AC020C08091DF019C -:101C5000813A09F094C08091E800877F8093E80082 -:101C60008091E3019091E401892B21F468E083E6FF -:101C700091E003C060E080E090E070E00E94C10F5E -:101C80008091E8008B778093E80008958091DF01D0 -:101C9000813209F074C08091E3019091E401892BB5 -:101CA00009F06DC08091E800877F8093E800809103 -:101CB000E80082FD05C08091DE018111F8CF5FC090 -:101CC0008091F10080936B018091E8008B7753C085 -:101CD0008091DF01813A09F052C08091E301909137 -:101CE000E401892B09F04BC08091E800877F809345 -:101CF000E8008091E80080FFFCCF80910B0136C0A6 -:101D00008091DF018132D9F58091E3019091E40166 -:101D1000892BA9F58091E800877F8093E8000E94D5 -:101D2000BA108091E10180930B010C9423198091EA -:101D3000DF01813221F58091E800877F8093E80000 -:101D40000E94BA108091E20180936C010895809105 -:101D5000DF01813AA1F48091E800877F8093E80059 -:101D60008091E80080FFFCCF80916C018093F100AE -:101D70008091E8008E778093E8000C94BA10089563 -:101D800084B7877F84BF88E10FB6F89480936000A2 -:101D9000109260000FBE90E080E80FB6F894809338 -:101DA0006100909361000FBE0E949A140E940B1173 -:101DB0000E9468118091E20084608093E20086E7CF -:101DC0009CE00E944D1F78940E94ED130E949C1489 -:101DD00081E091E00E94081487E992E00E94DB060E -:101DE0008091DE01853089F483E992E00E94DB0670 -:101DF0000E948E1F8091DC01882391F30E94B91FFD -:101E0000882371F30E94600FEBCF0E94C014E8CFCB -:101E1000292F332723303105C9F064F421303105EF -:101E200081F02230310509F043C084E790E028EFCB -:101E300032E042C021323105F1F02232310541F168 -:101E400037C082E190E02CE633E036C0992781303C -:101E5000910541F08230910541F0892B49F5E4EF7D -:101E6000F2E005C0E0EDF2E002C0ECEBF2E08491BC -:101E700090E09F0121C06430D8F4E62FF0E0EE0F2F -:101E8000FF1FE05DFE4F2081318189E090E014C0AA -:101E9000643070F470E0FB01EE0FFF1FE85DFE4F51 -:101EA00020813181FB01EC5DFE4F808190E004C018 -:101EB00080E090E020E030E0FA0131832083089553 -:101EC00080E189BD82E189BD09B400FEFDCF80912A -:101ED000D8008F7D8093D8008091E000826080934D -:101EE000E0008091E00081FDFCCF0895CF92DF9269 -:101EF000EF92FF920F931F93CF93DF93EC018B012F -:101F00006A010E94D910811133C0C114D10439F083 -:101F1000F60180819181081B190BC80FD91FE12C94 -:101F2000F12C0115110519F18091E80085FD16C00D -:101F30008091E8008E778093E800C114D10449F0C5 -:101F4000F60180819181E80EF91EF182E08285E040 -:101F50000FC00E94D910882321F30AC08991809371 -:101F6000F10001501109FFEFEF1AFF0ADACF80E00C -:101F7000DF91CF911F910F91FF90EF90DF90CF9065 -:101F800008952091E5013091E6012617370748F0C2 -:101F90006115710539F42091E8002E772093E8004F -:101FA00001C0B90140E061157105A9F12091DE0180 -:101FB000222309F443C0253009F442C02091E800EF -:101FC00023FD40C02091E80022FD32C02091E800AE -:101FD00020FFE9CF4091F3002091F20030E0342B54 -:101FE000FC01CF016115710559F02830310540F42D -:101FF00081918093F100615071092F5F3F4FF1CFC4 -:1020000041E02830310509F040E02091E8002E77CA -:102010002093E800C8CF4111C9CF0AC08091DE01EA -:10202000882361F0853061F08091E80083FD0AC06B -:102030008091E80082FFF2CF80E0089582E0089569 -:1020400083E0089581E008952091E5013091E60153 -:102050002617370748F06115710539F42091E8001B -:102060002E772093E80001C0B901FC0120E0611542 -:10207000710591F18091DE01882309F440C085301B -:1020800009F43FC08091E80083FD3DC08091E800E5 -:1020900082FD2FC08091E80080FFE9CF2091F300FE -:1020A0008091F20090E0922B6115710559F0883013 -:1020B000910540F424912093F1003196615071090B -:1020C0000196F2CF21E0089709F020E08091E80026 -:1020D0008E778093E800CBCF2111CCCF0AC08091BE -:1020E000DE01882361F0853061F08091E80083FD96 -:1020F0000AC08091E80082FFF2CF80E0089582E07C -:10210000089583E0089581E00895982F973058F559 -:102110009093E900981739F07091EC002091ED0050 -:102120005091F00003C0242F762F50E021FF19C0FA -:102130003091EB003E7F3093EB003091ED003D7F1E -:102140003093ED003091EB0031603093EB007093F1 -:10215000EC002093ED005093F0002091EE0027FF5B -:1021600007C09F5FD3CF8F708093E90081E008950F -:1021700080E008958091DF0187FF11C08091E80021 -:1021800082FD05C08091DE018111F8CF11C08091E0 -:10219000E8008B770BC08091DE01882349F08091A5 -:1021A000E80080FFF8CF8091E8008E778093E80008 -:1021B00008952091E4003091E50095E64091EC000F -:1021C000842F817040FF22C08091E80080FD1CC0F8 -:1021D0008091DE01882391F0853091F08091EB00B1 -:1021E00085FD10C04091E4005091E500421753076F -:1021F00029F39A01915011F784E0089582E008953F -:1022000083E0089581E0089580E008954091E8001A -:1022100042FFDECF08950E9479110E948111E0EE05 -:10222000F0E0808181608083E8EDF0E080818F774D -:10223000808319BCA7EDB0E08C918E7F8C93808158 -:102240008F7E80831092DD0108950F931F93CF93AB -:10225000DF930E9479110E948111C8EDD0E088813E -:102260008F77888388818068888388818F7D888341 -:1022700019BC1092DE011092DA011092DC0110926A -:10228000DB0100EE10E0F80180818B7F8083888184 -:102290008160888342E060E080E00E948510E1EE8A -:1022A000F0E080818E7F8083E2EEF0E080818160CB -:1022B0008083808188608083F80180818E7F808325 -:1022C000888180618883DF91CF911F910F9108955C -:1022D000E8EDF0E080818F7E8083E7EDF0E08081A3 -:1022E0008160808384E082BF81E08093DD010C9473 -:1022F0002511E8EDF0E080818E7F80831092E2006E -:1023000008951092DA001092E10008951F920F9242 -:102310000FB60F9211242F933F934F935F936F93B8 -:102320007F938F939F93AF93BF93EF93FF9380918E -:10233000E10082FF0BC08091E20082FF07C0809124 -:10234000E1008B7F8093E1000E94BB0D8091DA0059 -:1023500080FF1FC08091D80080FF1BC08091DA00F1 -:102360008E7F8093DA008091D90080FF0DC080E1DC -:1023700089BD82E189BD09B400FEFDCF81E0809373 -:10238000DE010E94940D05C019BC1092DE010E946E -:10239000A60D8091E10080FF19C08091E20080FFCE -:1023A00015C08091E2008E7F8093E2008091E20070 -:1023B00080618093E2008091D80080628093D80091 -:1023C00019BC85E08093DE010E94B10D8091E1008F -:1023D00084FF30C08091E20084FF2CC080E189BD81 -:1023E00082E189BD09B400FEFDCF8091D8008F7DC8 -:1023F0008093D8008091E1008F7E8093E1008091EE -:10240000E2008F7E8093E2008091E2008160809301 -:10241000E2008091DA01882311F084E007C0809106 -:10242000E30087FD02C081E001C083E08093DE010C -:102430000E94B50D8091E10083FF29C08091E200E8 -:1024400083FF25C08091E100877F8093E10082E0D7 -:102450008093DE011092DA018091E1008E7F8093FB -:10246000E1008091E2008E7F8093E2008091E200A3 -:1024700080618093E20042E060E080E00E9485108D -:102480008091F00088608093F0000E94AD0DFF9174 -:10249000EF91BF91AF919F918F917F916F915F91DC -:1024A0004F913F912F910F900FBE0F901F90189555 -:1024B0001F920F920FB60F9211242F933F934F93B9 -:1024C0005F936F937F938F939F93AF93BF93CF93BC -:1024D000DF93EF93FF93C091E900CF708091EC0000 -:1024E000D82FD17080FDD0E81092E9008091F000E3 -:1024F000877F8093F00078940E949C121092E900EC -:102500008091F00088608093F000CD2BCF70C09355 -:10251000E900FF91EF91DF91CF91BF91AF919F9132 -:102520008F917F916F915F914F913F912F910F907C -:102530000FBE0F901F9018951F93CF93DF93CDB7C9 -:10254000DEB7AA970FB6F894DEBF0FBECDBFEFED92 -:10255000F1E088E08E0F9091F10091938E13FBCF04 -:102560000E94100E8091E80083FF1FC18091DF015F -:102570009091E001492F50E04A30510508F015C113 -:10258000FA01EA5AFF4F0C942D2B803881F08238E3 -:1025900009F00BC18091E3018F708093E900809175 -:1025A000EB0085FB882780F91092E90006C0809136 -:1025B000DB019091DC01911182609091E800977F9E -:1025C0009093E8008093F1001092F100C8C0282F8A -:1025D0002D7F09F0EAC0882319F0823061F0E5C050 -:1025E0008091E101813009F0E0C0933009F080E092 -:1025F0008093DC012BC08091E101811127C0809183 -:10260000E3018F7009F4D1C08093E9002091EB00C1 -:1026100020FF1CC0933021F48091EB00806214C035 -:102620009091EB0090619093EB0021E030E0A901E4 -:1026300002C0440F551F8A95E2F74093EA001092BA -:10264000EA008091EB0088608093EB001092E90033 -:102650008091E800877F86C08111A7C01091E101B9 -:102660001F778091E3008078812B8093E300809135 -:10267000E800877F8093E8000E94BA108091E8000C -:1026800080FFFCCF8091E30080688093E30011110C -:1026900002C082E001C083E08093DE0186C08058E2 -:1026A000823008F082C08091E1019091E2018C3D7E -:1026B00053E0950779F583E08A838AE289834FB7EF -:1026C000F894DE01139620E03EE051E2E32FF0E0C3 -:1026D00050935700E49120FF03C0E295EF703F5FF5 -:1026E000EF708E2F90E0EA3010F0C79601C0C096D0 -:1026F0008D939D932F5F243149F74FBF8091E80060 -:10270000877F8093E8006AE270E0CE0101960E9424 -:10271000C10F14C0AE014F5F5F4F6091E3010E9493 -:10272000080FBC01009709F440C09091E800977F22 -:102730009093E80089819A810E9424108091E8009A -:102740008B778093E80031C0803879F58091E8007C -:10275000877F8093E8008091DA018093F100809177 -:10276000E8008E778093E8000E94BA101EC08111A5 -:102770001CC09091E1019230C0F48091E800877F05 -:102780008093E8009093DA010E94BA108091DA01F8 -:10279000811106C08091E30087FD02C081E001C085 -:1027A00084E08093DE010E94FC0D8091E80083FFAD -:1027B0000AC08091E800877F8093E8008091EB0059 -:1027C00080628093EB00AA960FB6F894DEBF0FBE2E -:1027D000CDBFDF91CF911F910895CF938091DE01FE -:1027E0008823A1F0C091E900CF709091EC00892F6F -:1027F000817090FD80E8C82B1092E9008091E8007C -:1028000083FD0E949C12CF70C093E900CF91089580 -:1028100090937201809371010895E0917101F0919C -:102820007201309721F00190F081E02D099480E051 -:102830000895EF92FF920F931F93CF93DF93E09150 -:102840007101F09172013097B1F18C010280F38136 -:10285000E02D09958091C90182FF2DC080FF04C041 -:1028600088E694E00E94DB06E80118E082E6E82EA4 -:1028700084E0F82E8091C90180FF0BC088811F92EF -:102880008F93FF92EF920E9474070F900F900F901A -:102890000F90115021961111EDCF8091C90180FF49 -:1028A0000AC080E694E0DF91CF911F910F91FF90D5 -:1028B000EF900C94DB06DF91CF911F910F91FF9069 -:1028C000EF900895E0917101F0917201309721F03D -:1028D0000480F581E02D0994089520916F013091D5 -:1028E00070018217930771F09093700180936F01CC -:1028F000E0917101F0917201309721F00680F7812B -:10290000E02D0994089520916D0130916E01821798 -:10291000930771F090936E0180936D01E0917101C6 -:10292000F0917201309721F00084F185E02D099437 -:10293000089508950C9499140E94F61F0E94440B68 -:102940000C94C020CF93DF931F92CDB7DEB7909148 -:10295000C90192FF10C090FF0EC01F928F932AE70B -:1029600034E03F932F9389830E9474070F900F9058 -:102970000F900F9089810F90DF91CF910C942E0BC7 -:102980005F926F927F928F929F92AF92BF92CF92FF -:10299000DF92EF92FF920F931F93CF93DF9300D0BC -:1029A00000D01F92CDB7DEB70E94890B9CE7C92EDD -:1029B00091E0D92E03E010E0AA24A394B12C502E6C -:1029C000802F0E941A0C4C01F601729062906F01E8 -:1029D0006826792661147104A1F40150110978F771 -:1029E0008FEF89838A831B820E94FF1F8160782F6B -:1029F0009D838C8349815A816B818D810E947015E2 -:102A000038C08091C90181FD0E94230C2BE030E089 -:102A10007501022E02C0EE0CFF1C0A94E2F7C701FA -:102A200086219721892B09F129835A828E209F20A4 -:102A300091E0892809F490E09B830E94FF1F816048 -:102A4000782F9D838C8349815A816B818D810E946F -:102A50007015000F111FF801EC58FE4F8081918115 -:102A6000E826F926F182E08204C02150310980F67F -:102A7000B4CF0E942A24109173010E940D141817DC -:102A8000D1F00E940D14809373010F900F900F905E -:102A90000F900F90DF91CF911F910F91FF90EF90CA -:102AA000DF90CF90BF90AF909F908F907F906F906E -:102AB0005F900C94A2140F900F900F900F900F90B6 -:102AC000DF91CF911F910F91FF90EF90DF90CF900A -:102AD000BF90AF909F908F907F906F905F90089580 -:102AE000CF93DF93CDB7DEB72B970FB6F894DEBF49 -:102AF0000FBECDBF4F83588769877A878B87DE01EA -:102B0000119686E0FD0111928A95E9F785E0FE01B4 -:102B1000379601900D928A95E1F749815A816B8130 -:102B20007C818D819E810E94C11B2B960FB6F894EB -:102B3000DEBF0FBECDBFDF91CF910895CF93882325 -:102B400009F4C2C0C82F823859F40E940D1481FDC7 -:102B5000BBC089E30E949B1E0E941E1F89E30CC01C -:102B6000833879F40E940D1480FDAEC083E50E9485 -:102B70009B1E0E941E1F83E50E94B81ECF910C94DD -:102B80001E1F843859F40E940D1482FD9DC087E4F5 -:102B90000E949B1E0E941E1F87E4EECF8CEF8C0FBD -:102BA000813A48F48C2F0E94962881118DC08C2F79 -:102BB0000E949B1EE3CF80E28C0F883048F4C770E0 -:102BC00081E001C0880FCA95EAF70E94D71ED6CFD0 -:102BD0008BE58C0F833078F4C53A29F0C63A31F092 -:102BE00083E890E005C081E890E002C082E890E0D0 -:102BF000CF910C946D1488E58C0F833108F064C07C -:102C0000C83A39F1C93A41F1CA3A49F1CB3A51F1DE -:102C1000CC3A59F1CD3A61F1C03B69F1CE3A71F14C -:102C2000CF3A79F1C13B81F1C23B89F1C33B91F1CC -:102C3000C43B99F1C53BA1F1C63BA9F1C73BB1F13A -:102C4000C83BB9F1C93BC1F1CA3BC9F180E090E092 -:102C500038C082EE90E035C089EE90E032C08AEE56 -:102C600090E02FC085EB90E02CC086EB90E029C06F -:102C700087EB90E026C08CEC90E023C08DEC90E0D8 -:102C800020C083E891E01DC08AE891E01AC082E983 -:102C900091E017C084E991E014C081E292E011C094 -:102CA00083E292E00EC084E292E00BC085E292E003 -:102CB00008C086E292E005C087E292E002C08AE2A4 -:102CC00092E0CF910C948314CF910895882309F456 -:102CD0004BC0823859F40E940D1481FF45C089E32E -:102CE0000E949B1E0E941E1F89E30CC0833871F452 -:102CF0000E940D1480FF38C083E50E949B1E0E9435 -:102D00001E1F83E50E94B81E0C941E1F843859F4C0 -:102D10000E940D1482FF28C087E40E949B1E0E941F -:102D20001E1F87E4EFCF9CEF980F913A58F390E283 -:102D3000980F983050F4877091E001C0990F8A95F0 -:102D4000EAF7892F0E94DD1EDFCF9BE5980F9330B5 -:102D500020F480E090E00C946D14885A833120F4C4 -:102D600080E090E00C9483140895882321F00E9461 -:102D7000D71E0C941E1F0895882321F00E94DD1E8B -:102D80000C941E1F08957F928F929F92AF92BF92D4 -:102D9000CF92DF92EF92FF920F931F93CF93DF9327 -:102DA0001F92CDB7DEB77C01C62E772EFC010581C0 -:102DB00002950F70128111110E94F41E0E94941E40 -:102DC000882379F0112369F080E28C0D883048F077 -:102DD00082E00E947D1E0E94941E91E0D82ED9268A -:102DE00001C0D12CE72DE295EF70F0E0E05AFF4FE3 -:102DF0000C942D2B872D807F072D0F70882311F0C9 -:102E00000295007F112389F0002309F498C180E224 -:102E10008C0D883020F4802F0E94D71E03C0802F95 -:102E20000E94E71E0E941E1F8AC18C2D0E946616FA -:102E3000002309F49DC180E28C0D883020F4802F9E -:102E40000E94DD1E03C0802F0E94ED1E0E941E1FE7 -:102E50008FC1872D807F972D9F70803211F4892F2D -:102E600003C0892F8295807FCC2021F0F1E0CF161E -:102E7000A1F01DC0112339F0002319F1013009F52B -:102E80000E94071F75C1002319F0013009F470C1B9 -:102E900089830E940A1F898110C1112321F0063005 -:102EA00008F066C10EC0053008F062C106C11123EA -:102EB00059F0002331F0F701958190FF40C19F70D8 -:102EC00095830E94B51654C1002309F4F6C03DC194 -:102ED000872D86958695837090E0009719F001976D -:102EE00061F046C1112321F08C2D972D937002C003 -:102EF00080E090E00E946D143BC1112321F08C2DE5 -:102F0000972D937002C080E090E00E94831430C13E -:102F10008C2D112319F00E94B02202C00E941823A8 -:102F20000E949D2325C1872D837009F052C0111185 -:102F30001FC18C2D829586958770880F880F9C2DD8 -:102F40009F70892E912CA12CB12C082E04C0880CC6 -:102F5000991CAA1CBB1C0A94D2F7C4FE14C00FE033 -:102F600010E020E030E0B901A80104C0440F551F73 -:102F7000661F771F8A95D2F7CB01BA0160957095CD -:102F80008095909503C060E070E0CB01272D2695D9 -:102F90002695237030E02230310569F02330310569 -:102FA00089F0682979298A299B292130310571F016 -:102FB0000E94091DDDC0682979298A299B290E9460 -:102FC000251DD6C00E94091DC501B4010E94ED1C3B -:102FD000CFC0112319F0872D817001C086958823F9 -:102FE00009F4C6C08C2D829586958770880F880F4E -:102FF0009C2D9F70892E912CA12CB12C082E04C0E1 -:10300000880C991CAA1CBB1C0A94D2F7C4FE14C0DD -:103010000FE010E020E030E0B901A80104C0440F47 -:10302000551F661F771F8A95D2F7CB01BA016095AD -:1030300070958095909503C060E070E0CB01272DDE -:10304000269526952370422F50E04230510569F0B5 -:103050004330510589F0682979298A299B29413013 -:10306000510571F00E94E31D83C0682979298A29DE -:103070009B290E94FF1D7CC00E94E31DC501B40175 -:103080000E94C71D75C08C2D90E0FC01E05EF10927 -:10309000E531F10508F04FC0E059FF4F0C942D2B9E -:1030A0000C2D0F70872D8F71112321F00E94601D50 -:1030B000802F07CF0E94811D802F0E94BC1658C010 -:1030C000112341F0053008F053C0872D8F710E9405 -:1030D000A61D4EC0063008F04BC0F7CF112339F0C3 -:1030E000872D8F710E94601D43C01123C9F3872D66 -:1030F0008F710E94811D3CC0112329F0872D8F7193 -:103100000E944B1D35C00E94411D32C0112351F059 -:10311000172D1F71812F0E94601D63E0812F0E9477 -:10312000741E26C081E00E947D1E023008F182E0FC -:103130000E947D1E1DC0112331F0002389F28C2DC9 -:103140000E949E1515C0002391F28C2D0E946616D8 -:103150000FC0472D4F706C2DC7010E9483070E943E -:10316000651C06C0472D4F706C2DC7010E943908A1 -:10317000DD20F9F00E94701E80FD1BC0F701128255 -:103180000E946A1E0E94601DC7010E94E8180E94EA -:103190006A1E0F90DF91CF911F910F91FF90EF90DA -:1031A000DF90CF90BF90AF909F908F907F900C94C6 -:1031B000811D0F90DF91CF911F910F91FF90EF90A4 -:1031C000DF90CF90BF90AF909F908F907F900895A9 -:1031D0000F931F93CF93DF93EC01888199812B810B -:1031E0003C81232BB9F09F3F11F48F3F99F0CE0122 -:1031F0000E948D07882371F0688179818A810E94FD -:10320000661E8C010E941B1E0E94E21CB801CE01AA -:103210000E94C316DF91CF911F910F9108950E94D4 -:10322000F41E0E94041F0E94C91E0E941E1F0E94BD -:10323000D0240E949D2380E090E00E946D1480E0E5 -:1032400090E00C9483140E94E41E0C940F190E94C9 -:103250005B1E292F22952F7030E02C3031054CF465 -:103260002A3031056CF42250310922303105A8F49E -:1032700007C02C30310569F02F30310551F00DC0F9 -:10328000803F69F018F4803E40F409C0843F29F47F -:1032900006C093FB882780F9089580E0089581E0B7 -:1032A0000895CF93DF9300D000D01F92CDB7DEB743 -:1032B0000F900F900F900F900F90DF91CF91089586 -:1032C000CF93DF9300D000D000D0CDB7DEB72696E5 -:1032D0000FB6F894DEBF0FBECDBFDF91CF9108953A -:1032E0001F93CF93DF93C0917C0116E080917D0105 -:1032F000C81799F0D0E01C9FF0011D9FF00D11241C -:10330000E258FE4F408151816281738184819581B1 -:103310000E9460192196C770E9CFDF91CF911F916C -:1033200008954091AE015091AF016091B00170914C -:10333000B1018091B2019091B3010C946019809118 -:10334000B30182958F7009F054C08091B001882339 -:1033500009F44FC080917C01A0917D016091AE0184 -:103360007091AF014091B1015091B201B6E08A175E -:1033700009F43FC090E041155105C1F17F3F11F4C0 -:103380006F3FA1F1B89FF001B99FF00D1124E258F1 -:10339000FE4F218172132AC02081621327C022812F -:1033A000211124C0238134812417350710F42150C2 -:1033B0003109241B350B283C3105C0F42091B301A1 -:1033C0002F7020612093B30126E0289FF001299FF0 -:1033D000F00D1124ED57FE4F80818F708061808346 -:1033E0008EEA91E00E94E8180C947019019687709B -:1033F000BECF0895CF92DF92EF92FF920F931F936B -:10340000CF93DF93CDB7DEB762970FB6F894DEBFE8 -:103410000FBECDBF8C0185E0F801DE011D96019045 -:103420000D928A95E1F7D8014C9111965C91119714 -:1034300012966C9112971396CD90DC901497309160 -:10344000AE017091AF018091B1019091B2010097EE -:1034500009F46BC17F3F19F43F3F09F466C1E09066 -:10346000B001EE2009F4C0C02091B301C816D906FE -:1034700028F0F601E81BF90BCF0104C08095909568 -:103480008C0D9D1DFF24F394883C910578F0F12C60 -:10349000207F09F0C6C07C2DD98AC88A89890E94FC -:1034A00051198EEA91E00E94E818B1C0822F807F06 -:1034B00009F046C0751314C0341312C0611110C056 -:1034C0002F7020612093B3010E9491198EEA91E040 -:1034D0000E94E8188091B301D80115968C932EC0F4 -:1034E000CD2819F15F3F11F44F3FF9F0F62E61112D -:1034F0001CC080917C0120917D0136E0821709F487 -:103500005AC090E0389FF001399FF00D1124E25825 -:10351000FE4F7181571306C07081471303C072813B -:10352000711103C001968770E9CFF62E662309F466 -:1035300018C18091B30181608093B301F12C11C156 -:10354000751308C0341306C0611104C08091B30123 -:10355000D801C3C04D875E878D859E856A8B0E948A -:1035600027196A898823E1F16623D1F12091B301FB -:10357000822F82958F7090E0029774F08091AE0157 -:103580009091AF0198878F831986DB86CA862C8736 -:10359000CE0107960E94E81886E0F801AEEAB1E095 -:1035A00001900D928A95E1F70E949F190E9491194E -:1035B000FF24F394D6C04D875E878D859E850E943B -:1035C0005B1E292F22952F7030E0223031050CF040 -:1035D000BCC09F7009F0B6C0805E883008F4C1C0DE -:1035E000C8010E94E818E4CFC816D90608F453C0F1 -:1035F000F601E81BF90BCF01883C910508F450C097 -:10360000F12C7C2DD98AC88A89890E945119EEEA49 -:10361000F1E086E0DF011D928A95E9F70E94911999 -:10362000A0C0751314C0341312C0611110C0809172 -:10363000B301F8018583C8010E94E81886E0EEEA2C -:10364000F1E0DF011D928A95E9F7FE2C8AC04D87D3 -:103650005E878D859E856A8B0E9427196A898823DB -:1036600009F4BECF662309F4BBCF2091B301822FAA -:1036700082958F7090E002970CF48ECF8091AE010E -:103680009091AF019A8389831B82DD82CC822E8345 -:10369000CE0101967FCF809590958C0D9D1DACCF6E -:1036A000F62E662309F49CCF75132EC034132CC05C -:1036B0002091B30120FD1FC0822F82958F70D9F019 -:1036C000D80115962C9315978F3049F08F5F982F5E -:1036D0009295907F822F8F70892B15968C93C801BD -:1036E0000E94E81886E0F801AEEAB1E001900D9280 -:1036F0008A95E1F793CF86E0F801AEEAB1E0019058 -:103700000D928A95E1F72DC04D875E878D859E8548 -:103710000E942719811140CF8091B301816080936D -:10372000B301C8010E94E8181CC0662309F458CFF1 -:103730004D875E878D859E850E942719882309F411 -:103740004FCF2ACF811148CF0CC0243031050CF067 -:1037500047CF9F7009F440CFF8019581907F09F021 -:103760003BCF8F2D62960FB6F894DEBF0FBECDBF54 -:10377000DF91CF911F910F91FF90EF90DF90CF904D -:1037800008951F93CF93DF93CDB7DEB72C970FB675 -:10379000F894DEBF0FBECDBF4F83588769877A8705 -:1037A0008B879C87CE0107960E94FA19882369F0BF -:1037B0008F8198852A853B85232BF1F19F3F09F066 -:1037C00063C08F3F09F060C037C086E0FE013796C6 -:1037D000DE01119601900D928A95E1F76F8178854F -:1037E000EA85FB85309741F17F3F11F46F3F21F16E -:1037F00020917D0130E0C9010196877099274091A1 -:103800007C0150E08417950709F447C069837A83E7 -:10381000FD83EC8396E0929FD001939FB00D11241D -:10382000A258BE4FFE01319601900D929A95E1F794 -:1038300080937D010E94701916E080917C01909127 -:103840007D018917C1F1189FC001112482589E4F34 -:103850000E94FA19882379F1E0917C011E9FF00102 -:103860001124E258FE4F408151816281738184812D -:1038700095810E94601980917C0190E0019687708B -:10388000992780937C01D9CF4F81588569857A85A6 -:103890008B859C850E946019CFCF0E9423191092BE -:1038A0007D0110927C01EEEAF1E086E0DF011D92DD -:1038B0008A95E9F7C1CF2C960FB6F894DEBF0FBEFC -:1038C000CDBFDF91CF911F910895EF92FF920F939B -:1038D0001F93CF93DF938C01009709F46CC0F12CF8 -:1038E000EE24E394E8012196F8018491843740F4B2 -:1038F000843008F051C0813081F0823019F15BC012 -:10390000853709F444C0A8F19CE7980F903708F078 -:1039100052C08F770E94661641C00E5F1F4FFE0196 -:10392000C49180E28C0F883048F4C7708E2D01C09E -:10393000880FCA95EAF70E94F71E14C08C2F0E94C8 -:103940009E152DC00E5F1F4FFE01C49180E28C0FAB -:10395000883058F4C7708E2D01C0880FCA95EAF7D9 -:103960000E94FD1E0E941E1F1AC08C2F0E94661608 -:1039700016C00E5F1F4FFE01C491CC2381F08FE96A -:103980009FE00197F1F700C00000C150F6CF0E5F35 -:103990001F4FFE01F49003C00E949E158E018F2DD3 -:1039A000882309F49FCFEFE9FFE03197F1F700C0DA -:1039B00000008150F5CFDF91CF911F910F91FF90C3 -:1039C000EF90089508956093B8017093B9018093C2 -:1039D000BA019093BB010C940F190F931F930091A0 -:1039E000B8011091B9012091BA013091BB01DC01FD -:1039F000CB01802B912BA22BB32B8093B8019093FA -:103A0000B901A093BA01B093BB011F910F910C941F -:103A10000F190F931F930091B8011091B9012091D4 -:103A2000BA013091BB01DC01CB0180239123A22399 -:103A3000B3238093B8019093B901A093BA01B093D6 -:103A4000BB011F910F910C940F190F931F930091BD -:103A5000B8011091B9012091BA013091BB01DC018C -:103A6000CB0180279127A227B3278093B801909399 -:103A7000B901A093BA01B093BB011F910F910C94AF -:103A80000F191092B4011092B5011092B601109264 -:103A9000B7010C940F1941E050E060E070E004C001 -:103AA000440F551F661F771F8A95D2F74093B401C4 -:103AB0005093B5016093B6017093B7010C940F1940 -:103AC00041E050E060E070E004C0440F551F661F05 -:103AD000771F8A95D2F78091B4019091B501A0919A -:103AE000B601B091B701482B592B6A2B7B2B409321 -:103AF000B4015093B5016093B6017093B7010C9473 -:103B00000F1941E050E060E070E004C0440F551F21 -:103B1000661F771F8A95D2F74095509560957095EE -:103B20008091B4019091B501A091B601B091B70117 -:103B3000482359236A237B234093B4015093B50152 -:103B40006093B6017093B7010C940F1941E050E0F7 -:103B500060E070E004C0440F551F661F771F8A9510 -:103B6000D2F78091B4019091B501A091B601B091C6 -:103B7000B701482759276A277B274093B401509300 -:103B8000B5016093B6017093B7010C940F190F93B0 -:103B90001F930091B4011091B5012091B6013091AD -:103BA000B701DC01CB01802B912BA22BB32B80938F -:103BB000B4019093B501A093B601B093B7011F91E2 -:103BC0000F910C940F190F931F930091B401109152 -:103BD000B5012091B6013091B701DC01CB01802302 -:103BE0009123A223B3238093B4019093B501A093B2 -:103BF000B601B093B7011F910F910C940F190F9359 -:103C00001F930091B4011091B5012091B60130913C -:103C1000B701DC01CB0180279127A227B32780932E -:103C2000B4019093B501A093B601B093B7011F9171 -:103C30000F910C940F190895CF92DF92EF92FF929B -:103C40000F931F93CF93DF938C01C090B801D09056 -:103C5000B901E090BA01F090BB018091B40190915C -:103C6000B501A091B601B091B701C82AD92AEA2AB4 -:103C7000FB2ACFE1D0E0D701C6010C2E04C0B695D7 -:103C8000A795979587950A94D2F780FF06C0B8014B -:103C90008C2F0E94930A019721F4219760F780E00E -:103CA00001C08C2FDF91CF911F910F91FF90EF906A -:103CB000DF90CF900895CF93DF93EC010E941C1EFC -:103CC000BE010E94930ADF91CF910895CB010E941B -:103CD0005B1E08958091BC01859585958595089515 -:103CE0008091BC018770089598E0899F900111240C -:103CF000262B2093BC010C94601D2091BC01809563 -:103D000082238093BC01982F977069F430E0482F8C -:103D1000552747FD50952417350729F0859585953A -:103D200085950C94811D08959091BC01977081E058 -:103D300009F480E0089520910C0130910D01F90102 -:103D400032969FEF40E05191581789F09F3F19F448 -:103D5000511101C0942F4F5F4630A9F79F3F39F0B2 -:103D6000F901E90FF11D97FDFA95828308950895F1 -:103D700020910C0130910D01F9013296285F3F4FDF -:103D80009081981301C010823196E217F307C1F7B2 -:103D9000089581E090E0E0910C01F0910D01E80FB1 -:103DA000F91F1082019688309105A9F70895909126 -:103DB000C801892B8093C801089580959091C8010E -:103DC00089238093C80108951092C80108959091A5 -:103DD000C701892B8093C701089580959091C701F1 -:103DE00089238093C70108951092C7010895909187 -:103DF000C601892B8093C601089580959091C601D4 -:103E000089238093C60108951092C6010895809376 -:103E1000BD0108951092BD01089580910C0190910B -:103E20000D01FC0131969C01285F3F4F80E091918C -:103E300091118F5FE217F307D1F70895E0910C011C -:103E4000F0910D018091C8018083E0910C01F09107 -:103E50000D0190818091C701892B8083E0910C0135 -:103E6000F0910D0190818091C601892B8083809112 -:103E7000BD01882361F0E0910C01F0910D0190816A -:103E8000892B80830E940D1F81111092BD018091AA -:103E90000C0190910D010C9419149093430180939F -:103EA0004201089520E0009739F0AC0141505109DA -:103EB000842395232F5FF7CF822F08958295982F23 -:103EC0009C7C392F36953695282F237344E0249F08 -:103ED000C0011124932F982B292F2A7A2695892FF8 -:103EE0008575880F822B08951F93CF93DF931F92C0 -:103EF000CDB7DEB799830E945E1F182F9981892F55 -:103F00000E945E1F212F30E0322F2227A901482B6B -:103F1000CA010F90DF91CF911F9108958091DE012A -:103F2000843021F11092CA0120E488E190E00FB6BC -:103F3000F894A895809360000FBE2093600080E005 -:103F40000E942E0B83B7817F846083BF83B781601B -:103F500083BF7894889583B78E7F83BF88E10FB63F -:103F6000F89480936000109260000FBE0895089549 -:103F700008950E94B71F0E94890B0E94B81F0E94DB -:103F80005D0C91E0811101C090E0892F08950E949D -:103F900023190E940D140C942E0B1F920F920FB632 -:103FA0000F9211248F939F93AF93BF938091CA0177 -:103FB000811113C08091CB019091CC01A091CD01D2 -:103FC000B091CE014196A11DB11D8093CB0190937C -:103FD000CC01A093CD01B093CE01BF91AF919F9141 -:103FE0008F910F900FBE0F901F90189582E084BDA7 -:103FF00093E095BD9AEF97BD80936E0008952FB71B -:10400000F8948091CB019091CC01A091CD01B09119 -:10401000CE012FBF0895CF92DF92EF92FF920F93C0 -:104020001F932FB7F8944091CB015091CC01609130 -:10403000CD017091CE012FBF6A017B01EE24FF24D8 -:104040008C0120E030E0C016D106E206F30610F441 -:10405000415051099A01281B390BC9011F910F9139 -:10406000FF90EF90DF90CF9008951F920F920FB6C0 -:104070000F9211248F939F93AF93BF938091CB01A5 -:104080009091CC01A091CD01B091CE010196A11DDE -:10409000B11D8093CB019093CC01A093CD01B0933F -:1040A000CE01BF91AF919F918F910F900FBE0F9056 -:1040B0001F9018950E940B11F8942FEF87EA91E654 -:1040C000215080409040E1F700C0000087E090EB75 -:1040D000DC018093E8019093E901A093EA01B09399 -:1040E000EB019CE088E10FB6F894A89580936000FE -:1040F0000FBE90936000FFCFCF92DF92EF92FF92BE -:104100000F931F93CF93DF93D82FC3E0EE24E39454 -:10411000F12C8C2F0E941A0C6C010BE010E097011F -:10412000002E02C0220F331F0A94E2F72C213D21FA -:10413000232B49F0602F7C2F80E00E943A08D8138F -:1041400002C081E006C00150110948F7C15008F7CC -:1041500080E0DF91CF911F910F91FF90EF90DF9062 -:10416000CF900895CF93C82F8CE20E947C208823A3 -:1041700021F08C2FCF910C947C2080E0CF9108957A -:10418000CF930E940822811102C00E94EE218AE989 -:1041900094E00E94DB06C5E6C15049F00E94890BFD -:1041A0008FE39CE90197F1F700C00000F5CF83E9A8 -:1041B00094E00E94DB0689E20E94B22081110CC1CA -:1041C0008AE20E94B22081110E94EE2185E00E94C5 -:1041D000B22081110E945A200E9413228093C901AB -:1041E00087E00E94B2208823A9F18BE10E94B220CF -:1041F000882351F08091C90181FB222720F991E0A9 -:10420000922790FB81F90EC08EE00E94B220882395 -:1042100061F08091C90182FB222720F991E0922769 -:1042200090FB82F98093C90115C080E10E94B22001 -:104230009091C901882341F093FB222720F981E066 -:10424000822780FB93F904C0892F809580FB90F929 -:104250009093C9018091C9010E9417220E942522D2 -:104260008093E70180EE0E94B220882341F0809184 -:10427000E701982F909590FB80F98093E70189E3FF -:104280000E94B220882359F08091E70181FB222708 -:1042900020F991E0922790FB81F98093E70182EE6B -:1042A0000E94B220882359F08091E70182FB2227E7 -:1042B00020F991E0922790FB82F98093E70186EE46 -:1042C0000E94B220882359F08091E70183FB2227C6 -:1042D00020F991E0922790FB83F98093E70183EE28 -:1042E0000E94B220882359F08091E70184FB2227A5 -:1042F00020F991E0922790FB84F98093E70185E310 -:104300000E94B220882359F08091E70185FB222783 -:1043100020F991E0922790FB85F98093E70181E3F2 -:104320000E94B220882359F08091E70186FB222762 -:1043300020F991E0922790FB86F98093E70181E1D3 -:104340000E94B220882359F08091E70187FB222741 -:1043500020F991E0922790FB87F98093E701809103 -:10436000E7010E94292287E20E94B220C82F8EE135 -:104370000E94B2208111C2608FE10E94B22081119F -:10438000C46080E20E94B2208111C86081E20E9474 -:10439000B2208111C06182E20E94B2208111C0620C -:1043A00083E20E94B2208111C06484E20E94B220A4 -:1043B000882311F0C06802C0CC2329F08C2F0E9402 -:1043C00020226C2F03C00E941C22682F70E080E026 -:1043D00090E0CF910C94E31CCF9108956DEE7EEFA9 -:1043E00080E090E00E94672B60E082E090E00E9415 -:1043F000552B60E083E090E00E94552B60E084E064 -:1044000090E00E94552B60E085E090E00C94552BE5 -:1044100080E090E00E944F2B21E08D3E9E4F09F0FE -:1044200020E0822F089582E090E00C94472B682FC3 -:1044300082E090E00C94552B83E090E00C94472BA5 -:10444000682F83E090E00C94552B84E090E00C946E -:10445000472B682F84E090E00C94552B8091D1017C -:1044600080FF0BC06091110185E0689FB0011124AD -:1044700075956795759567952BC081FF09C060910B -:10448000110185E0689FB00111247595679520C0E2 -:1044900082FF07C06091110185E0689FB00111247F -:1044A00017C09091D2019923D1F060911001961715 -:1044B00088F72091110185E0289F90011124929F97 -:1044C000A001939F500D112470E0CA010E94192B86 -:1044D0006038710540F46115710539F002C065E07E -:1044E00070E0862F08958FE7089581E00895809108 -:1044F000D10180FF08C060910F0170E0759567954C -:104500007595679521C081FF06C060910F0170E02D -:104510007595679519C082FF04C060910F0170E026 -:1045200010C09091D2019923C1F060910E019617AD -:10453000A0F780910F01899FC001112470E00E94B3 -:10454000192B6038710528F46115710521F0862F4B -:1045500008958FE7089581E0089561E070E0F4CF59 -:10456000803F21F40E942E22819504C0813F29F4CE -:104570000E942E228093D5010895823F21F40E944B -:104580002E22819504C0833F29F40E942E2280931D -:10459000D4010895893F19F40E94772205C08A3F0B -:1045A00031F40E94772281958093D60108958B3F44 -:1045B00021F40E947722819504C08C3F29F40E9447 -:1045C00077228093D7010895843F21F48091D3010D -:1045D000816017C0853F21F48091D301826011C0B2 -:1045E000863F21F48091D30184600BC0873F21F482 -:1045F0008091D301886005C0883F31F48091D30158 -:1046000080618093D30108958D3F21F48091D10181 -:1046100081600BC08E3F21F48091D101826005C082 -:104620008F3F29F48091D10184608093D101089556 -:10463000803F39F48091D50187FF6CC01092D5017D -:1046400069C0813F29F48091D5011816BCF362C07E -:104650009091D401823F29F497FF5CC01092D4015D -:1046600059C0833F19F41916CCF354C0893F41F463 -:104670008091D60118160CF04DC01092D6014AC098 -:104680008A3F29F48091D60187FF44C0F6CF8B3F43 -:1046900039F48091D70187FF3DC01092D7013AC00D -:1046A0008C3F29F48091D7011816BCF333C0843FA6 -:1046B00021F48091D3018E7F17C0853F21F4809132 -:1046C000D3018D7F11C0863F21F48091D3018B7F70 -:1046D0000BC0873F21F48091D301877F05C0883FBD -:1046E00031F48091D3018F7E8093D30113C08D3F2D -:1046F00021F48091D1018E7F0BC08E3F21F48091F7 -:10470000D1018D7F05C08F3F29F48091D1018B7F2E -:104710008093D1018091D40181110EC08091D50187 -:1047200081110AC08091D601811106C08091D70104 -:10473000811102C01092D20108958091C90183FFB6 -:104740007EC086ED94E00E94DB068091D3011F922B -:104750008F9381ED94E09F938F930E9474078FEC69 -:1047600094E00E94DB068091D401282F332727FD97 -:1047700030953F938F938CEC94E09F938F930E949E -:1047800074078AEC94E00E94DB068091D501282F03 -:10479000332727FD30953F938F9387EC94E09F93C9 -:1047A0008F930E94740785EC94E00E94DB06809151 -:1047B000D601282F332727FD30953F938F9382EC26 -:1047C00094E09F938F930E94740780EC94E00E9482 -:1047D000DB068091D701282F332727FD30953F93A3 -:1047E0008F938DEB94E09F938F930E9474078AEBD5 -:1047F00094E00E94DB068091D2011F928F9387EB99 -:1048000094E09F938F930E94740785EB94E00E943D -:10481000DB068091D1011F928F9382EB94E09F93EE -:104820008F930E9474078FEA94E00E94DB068DB795 -:104830009EB74C960FB6F8949EBF0FBE8DBF83ED0A -:1048400091E00E9462140E94FF1F9093D001809318 -:10485000CF0108951F93CF93DF938091CF01909163 -:10486000D0010E940B20AC019091D201992321F03C -:104870002091120130E006C0209113018AE0289FA8 -:10488000900111244217530708F486C08091D40187 -:10489000C091D501D091D6011091D701811107C0E7 -:1048A000C11176C0D11174C0111172C075C09F3F83 -:1048B00019F09F5F9093D201181624F40E942E22C3 -:1048C0008093D4018091D40187FF05C00E942E22DD -:1048D00081958093D4011C1624F40E942E2280938B -:1048E000D5018091D50187FF05C00E942E228195B8 -:1048F0008093D5016091D401662339F1C091D5012F -:10490000CC2319F1772767FD7095872F972F0E9489 -:104910001E2A23E333E343E35FE30E94822A0E94DB -:10492000EB296093D4016C2F772767FD7095872F53 -:10493000972F0E941E2A23E333E343E35FE30E94A1 -:10494000822A0E94EB296093D5011D1624F40E944F -:1049500077228093D6018091D60187FF05C00E94FF -:10496000772281958093D601111624F40E94772234 -:104970008093D7018091D70187FF05C00E947722DD -:1049800081958093D701DF91CF911F910C949D2346 -:104990009F3F09F08ECF96CFDF91CF911F91089561 -:1049A000E3EDF1E085E0DF011D928A95E9F71092D1 -:1049B000D2011092D101089589EF96E00E94DB06A2 -:1049C0001F9281E08F931F9285E08F938BEA96E090 -:1049D0009F938F930E9474070F900F900F900F90EA -:1049E0000F900F9008958330E9F128F4813061F041 -:1049F000823009F10895853009F462C008F449C095 -:104A0000863009F474C0089580911301262F30E098 -:104A1000280F311D2F3F310524F4680F60931301D7 -:104A200003C08FEF80931301809113011F928F9326 -:104A300084EE95E072C080911201262F30E0280F9D -:104A4000311D2F3F310524F4680F6093120103C01C -:104A50008FEF80931201809112011F928F9382ED4C -:104A600095E05BC080911101262F30E0280F311DA9 -:104A70002F3F310524F4680F6093110103C08FEFBD -:104A800080931101809111011F928F938FEB95E01C -:104A900044C080911001262F30E0280F311D2F3F98 -:104AA000310524F4680F6093100103C08FEF8093E9 -:104AB0001001809110011F928F938AEA95E02DC01A -:104AC00080910F01262F30E0280F311D2F3F310537 -:104AD00024F4680F60930F0103C08FEF80930F01E0 -:104AE00080910F011F928F9381E995E016C080910C -:104AF0000E01262F30E0280F311D2F3F310524F401 -:104B0000680F60930E0103C08FEF80930E018091B8 -:104B10000E011F928F9386E795E09F938F930E94DB -:104B200074070F900F900F900F900895833081F1CC -:104B300028F4813059F08230D1F00895853009F49D -:104B400049C0B8F1863009F456C008958091130128 -:104B5000681720F4861B8093130102C01092130182 -:104B6000809113011F928F9387E695E054C0809146 -:104B70001201681720F4861B8093120102C0109264 -:104B80001201809112011F928F9385E595E043C039 -:104B900080911101681720F4861B8093110102C0D7 -:104BA00010921101809111011F928F9382E495E080 -:104BB00032C080911001681720F4861B8093100189 -:104BC00002C010921001809110011F928F938DE20C -:104BD00095E021C080910F01681720F4861B809317 -:104BE0000F0102C010920F0180910F011F928F934D -:104BF00084E195E010C080910E01681720F4861BB7 -:104C000080930E0102C010920E0180910E011F923E -:104C10008F9389EF94E09F938F930E9474070F9076 -:104C20000F900F900F900895CF93C82F1F928F93DE -:104C30008EEF97E09F938F930E94740781E090E03E -:104C4000A0E0B0E0BC01CD0104C0660F771F881F53 -:104C5000991FCA95D2F70E94E31C0F900F900F90F6 -:104C60000F90CF910C942319CF938732B0F58E31EA -:104C700008F04AC28E3009F4C4C100F5873009F447 -:104C80008DC1A8F4863009F045C28091C901817FA9 -:104C90008E7F8093C90189E699E00E94DB0682E05D -:104CA0009DE00E94DB0681E08093D90175C18830C8 -:104CB00009F43FC08B3009F46BC12CC2863109F472 -:104CC000E6C120F4803109F4B0C124C2893109F46D -:104CD000C7C18B3109F481C11DC2883309F458C1A1 -:104CE00050F4893209F412C2853309F40FC28732B5 -:104CF00009F40CC20FC2833409F408C228F48A33C1 -:104D000008F408C2895303C2883409F003C20E9420 -:104D1000231986EE9CE00E94DB069FEF23ED80E3E3 -:104D2000915020408040E1F700C000000E945A20CE -:104D300033C186E09DE00E94DB0688E69CE00E948D -:104D4000DB060E941C221F928F9385E69CE09F93B6 -:104D50008F930E94740783E69CE00E94DB060E940A -:104D60001322C82F80E59CE00E94DB061F92CF93A0 -:104D70008BE49CE09F938F930E94740789E49CE0EE -:104D80000E94DB068FE39CE00E94DB068C2F817083 -:104D90001F928F938CE39CE09F938F930E947407E4 -:104DA0008AE39CE00E94DB0680E39CE00E94DB0635 -:104DB000C1FB882780F91F928F938DE29CE09F931F -:104DC0008F930E9474078BE29CE00E94DB068FE1C8 -:104DD0009CE00E94DB06C2FB882780F91F928F931C -:104DE0008CE19CE09F938F930E9474078AE19CE082 -:104DF0000E94DB0681E19CE00E94DB06C3FBCC271E -:104E0000C0F91F92CF938EE09CE09F938F930E94F6 -:104E100074078CE09CE00E94DB060E942522C82FCC -:104E200088EF9BE00E94DB061F92CF9383EF9BE00D -:104E30009F938F930E94740781EF9BE00E94DB0693 -:104E400088ED9BE00E94DB068C2F81701F928F9370 -:104E500085ED9BE09F938F930E9474078DB79EB75B -:104E600080960FB6F8949EBF0FBE8DBF83ED9BE07A -:104E70000E94DB068CEB9BE00E94DB06C1FB8827CF -:104E800080F91F928F9389EB9BE09F938F930E94F1 -:104E9000740787EB9BE00E94DB0685EA9BE00E949B -:104EA000DB06C2FB882780F91F928F9382EA9BE082 -:104EB0009F938F930E94740780EA9BE00E94DB0619 -:104EC0008EE89BE00E94DB06C3FB882780F91F92D7 -:104ED0008F938BE89BE09F938F930E94740789E8E0 -:104EE0009BE00E94DB068FE79BE00E94DB06C4FB91 -:104EF000882780F91F928F938CE79BE09F938F9375 -:104F00000E9474078AE79BE00E94DB0688E69BE02C -:104F10000E94DB06C5FB882780F91F928F9385E6E8 -:104F20009BE09F938F930E94740783E69BE00E940F -:104F3000DB0687E49BE00E94DB06C6FB882780F93E -:104F40001F928F9384E49BE09F938F930E9474073A -:104F500082E49BE00E94DB068AE39BE00E94DB0682 -:104F6000C7FBCC27C0F91F92CF9387E39BE09F93A9 -:104F70008F930E94740785E39BE00E94DB068DB748 -:104F80009EB74C960FB6F8949EBF0FBE8DBF04C05F -:104F900080E999E00E94DB06C1E0C1C08091C901AF -:104FA000C82FC095C170C0FB80F98093C901CC2384 -:104FB00049F08AED9CE00E94DB068091C901866081 -:104FC000886048C08DEC9CE00E94DB068091C9019E -:104FD000897F877F8093C901DFCF9091C90191FBC1 -:104FE000CC27C0F981E0C827892FC0FB81F98093C5 -:104FF000C901CC2319F080EC9CE027C082EB9CE037 -:10500000C9CF9091C90192FBCC27C0F981E0C82794 -:10501000892FC0FB82F98093C901CC2319F083EA60 -:105020009CE013C083E99CE0B5CF9091C90193FB4C -:10503000CC27C0F981E0C827892FC0FB83F9809372 -:10504000C901CC2351F087E89CE00E94DB068091E7 -:10505000C90181608093C90162C08AE79CE09ACF50 -:105060008AE599E00E94DB0681E499E00E94DB0674 -:1050700080E099E00E94DB0683ED98E00E94DB0669 -:1050800084E998E00E94DB0689E698E083CF8BE50F -:1050900098E00E94DB060E940D141F928F9381E41A -:1050A00098E09F938F930E94740780910B011F9249 -:1050B0008F938AE298E09F938F930E947407809168 -:1050C0006C011F928F9387E198E09F938F930E94CA -:1050D00074078091CB019091CC01A091CD01B0914A -:1050E000CE01BF93AF939F938F9383E098E09F93FC -:1050F0008F930E9474078DB79EB742960FB6F894AF -:105100009EBF0FBE8DBF48CF8D5101C080E00E9471 -:10511000142642CF88E79CE00E94DB06C0E08C2F7B -:10512000CF91089580E0089580E00895CF93C82F2F -:105130008091D901813071F020F0823009F44BC0A8 -:1051400042C1E0910C01F0910D018081823209F0A1 -:105150003CC107C0E0910C01F0910D0180818232C9 -:1051600061F48C2F0E949228811104C08C2F0E9420 -:1051700034262FC081E090E02CC08C2F0E94942810 -:10518000811126C0C431E1F070F4CB3081F0C03120 -:10519000D1F40E94DC2486EF97E00E94DB0682E0D7 -:1051A0008093D90115C0C93259F0C83361F489E63A -:1051B00099E00E94DB068AEF97E00E94DB0608C0B8 -:1051C0001092D90104C184EF97E00E94DB06FFC072 -:1051D00081E08170FEC0C43228F5CE3108F0C1C034 -:1051E000CB30A1F1D0F4C73009F0D3C08EE1809369 -:1051F000130182E3809312018AE08093110184E11C -:105200008093100188E080930F0188E280930E0163 -:105210008AE996E00E94DB06BFC0C33149F1C43180 -:10522000C1F0B7C0CB3409F4A9C028F4C93289F061 -:10523000C83361F0AEC0C13509F49EC0C23509F46F -:1052400099C0CE3409F0A5C06AE09EC00E94DC245B -:10525000A3C08091D801882319F01092D8019CC076 -:1052600087EA96E00E94DB0681E08093D901B1C015 -:1052700081E896E00E94DB068FE696E00E94DB065E -:10528000809113011F928F938CE696E09F938F93EA -:105290000E9474078AE696E00E94DB0688E596E0A5 -:1052A0000E94DB06809112011F928F9385E596E0A4 -:1052B0009F938F930E94740783E596E00E94DB061C -:1052C00084E496E00E94DB06809111011F928F9387 -:1052D00081E496E09F938F930E9474078FE396E09A -:1052E0000E94DB068EE296E00E94DB0680911001B0 -:1052F0001F928F938BE296E09F938F930E94740787 -:1053000089E296E00E94DB0684E196E00E94DB06DB -:1053100080910F011F928F9381E196E09F938F936D -:105320000E9474078FE096E00E94DB0688EF95E00C -:105330000E94DB0680910E011F928F9385EF95E00E -:105340009F938F930E94740783EF95E00E94DB0682 -:105350008DB79EB748960FB6F8949EBF0FBE8DBF0F -:105360001BC0CE51EC2FF0E0E85CFE4F80818093B3 -:10537000D80112C061E003C061E006C06AE080911C -:10538000D8010E94F32408C08091D8010E9496257C -:1053900003C088E996E013C08091D801882369F0A2 -:1053A0001F928F9382E996E09F938F930E947407D8 -:1053B0000F900F900F900F9004C08FE896E00E941E -:1053C000DB0681E006C01092D90180E002C080E0D7 -:1053D00000CFCF91089504D06894B1118DC0089585 -:1053E00070D088F09F5790F0B92F9927B751A0F04F -:1053F000D1F0660F771F881F991F1AF0BA95C9F769 -:1054000012C0B13081F077D0B1E0089574C0672F39 -:10541000782F8827B85F39F0B93FCCF38695779518 -:105420006795B395D9F73EF4909580957095619501 -:105430007F4F8F4F9F4F0895E89409C097FB3EF42C -:1054400090958095709561957F4F8F4F9F4F9923D1 -:10545000A9F0F92F96E9BB279395F695879577954F -:105460006795B795F111F8CFFAF4BB0F11F460FF0F -:105470001BC06F5F7F4F8F4F9F4F16C0882311F067 -:1054800096E911C0772321F09EE8872F762F05C07B -:10549000662371F096E8862F70E060E02AF09A9516 -:1054A000660F771F881FDAF7880F9695879597F90B -:1054B000089557FD9058440F551F59F05F3F71F004 -:1054C0004795880F97FB991F61F09F3F79F087956B -:1054D0000895121613061406551FF2CF4695F1DFF4 -:1054E00008C0161617061806991FF1CF8695710584 -:1054F000610508940895E894BB2766277727CB01B8 -:1055000097F908950BD078C069D028F06ED018F0C4 -:10551000952309F05AC05FC01124EECFCADFA0F373 -:10552000959FD1F3950F50E0551F629FF001729F38 -:10553000BB27F00DB11D639FAA27F00DB11DAA1F57 -:10554000649F6627B00DA11D661F829F2227B00DA4 -:10555000A11D621F739FB00DA11D621F839FA00D2F -:10556000611D221F749F3327A00D611D231F849F7F -:10557000600D211D822F762F6A2F11249F575040D6 -:105580008AF0E1F088234AF0EE0FFF1FBB1F661F71 -:10559000771F881F91505040A9F79E3F510570F02A -:1055A00014C0AACF5F3FECF3983EDCF38695779565 -:1055B0006795B795F795E7959F5FC1F7FE2B880F25 -:1055C000911D9695879597F9089597F99F6780E8BB -:1055D00070E060E008959FEF80EC089500240A9445 -:1055E0001616170618060906089500240A941216BE -:1055F0001306140605060895092E0394000C11F4F1 -:10560000882352F0BB0F40F4BF2B11F460FF04C09D -:105610006F5F7F4F8F4F9F4F0895991B79E004C0B4 -:10562000991F961708F0961B881F7A95C9F78095E1 -:10563000089597FB072E16F4009407D077FD09D044 -:105640000E94332B07FC05D03EF4909581959F4F27 -:105650000895709561957F4F0895EE0FFF1F059097 -:10566000F491E02D0994AA1BBB1B51E107C0AA1FAE -:10567000BB1FA617B70710F0A61BB70B881F991FF3 -:105680005A95A9F780959095BC01CD010895F99997 -:10569000FECF92BD81BDF89A992780B50895A8E103 -:1056A000B0E042E050E00C946F2B262FF999FECF2A -:1056B00092BD81BDF89A019700B4021639F01FBA65 -:1056C00020BD0FB6F894FA9AF99A0FBE0895019684 -:1056D000272F0E94562B0C94552BDC01CB01FC018B -:1056E000F999FECF06C0F2BDE1BDF89A319600B43B -:0E56F0000D9241505040B8F70895F894FFCF46 -:1056FE00FF730C640D410D0D0DD90C01BE01280870 -:10570E00140A321E031323337309637F6F5F4F1F17 -:10571E000F6949593F4D36202104D4039E037E0361 -:10572E000A0323033C03550301020304050607087D -:02573E00090060 -:00000001FF diff --git a/keyboards/bantam44/readme.md b/keyboards/bantam44/readme.md new file mode 100644 index 000000000..89d7f9d05 --- /dev/null +++ b/keyboards/bantam44/readme.md @@ -0,0 +1,24 @@ +Bantam44 keyboard firmware +====================== + +## Quantum MK Firmware + +For the full Quantum feature list, see [the parent readme.md](/readme.md). + +## Building + +Download or clone the whole firmware and navigate to the keyboards/Bantam44 folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default +To build with the default keymap, simply run `make`. + +### Other Keymaps +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` and see keymap document (you can find in top readme.md) and existent keymap files. + +To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: +``` +$ make KEYMAP=[default|jack|] +``` +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. \ No newline at end of file diff --git a/keyboards/clueboard1/Makefile b/keyboards/clueboard1/Makefile index 98ad148c7..a2599d214 100644 --- a/keyboards/clueboard1/Makefile +++ b/keyboards/clueboard1/Makefile @@ -1,8 +1,5 @@ -# # project specific files -SRC = led.c - # MCU name MCU = atmega32u4 diff --git a/keyboards/clueboard1/clueboard1.c b/keyboards/clueboard1/clueboard1.c index 136ddf15b..5785f447f 100644 --- a/keyboards/clueboard1/clueboard1.c +++ b/keyboards/clueboard1/clueboard1.c @@ -1,19 +1,12 @@ #include "clueboard1.h" -__attribute__ ((weak)) -void matrix_init_user(void) { - // leave these blank -} - -__attribute__ ((weak)) -void matrix_scan_user(void) { - // leave these blank -} - -void matrix_init_kb(void) { - matrix_init_user(); -} - -void matrix_scan_kb(void) { - matrix_scan_user(); +void led_set_kb(uint8_t usb_led) { + DDRF |= (1<<0); + if (usb_led & (1< +#include "quantum.h" /* Clueboard matrix layout @@ -46,7 +44,4 @@ { k40, k41, k42, k43, KC_NO, k45, k46, KC_NO, KC_NO, k49, k4A, k4B, k4C, k4D, k4E, k4F } \ } -void matrix_init_user(void); -void matrix_scan_user(void); - #endif diff --git a/keyboards/clueboard1/keymaps/default/compiled.hex b/keyboards/clueboard1/keymaps/default/compiled.hex deleted file mode 100644 index 31008c426..000000000 --- a/keyboards/clueboard1/keymaps/default/compiled.hex +++ /dev/null @@ -1,1192 +0,0 @@ -:100000000C946E050C94B2050C94B2050C94B205D8 -:100010000C94B2050C94B2050C94B2050C94B20584 -:100020000C94B2050C94B2050C94CF100C94A11151 -:100030000C94681F0C94B2050C94B2050C94B20594 -:100040000C94B2050C94B2050C94B2050C94B20554 -:100050000C94B2050C94D01F0C94B2050C94B2050C -:100060000C94B2050C94B2050C94B2050C94B20534 -:100070000C94B2050C94B2050C94B2050C94B20524 -:100080000C94B2050C94B2050C94B2050C94B20514 -:100090000C94B2050C94B2050C94B2050C94B20504 -:1000A0000C94B2050C94B2050C94B2050E123012E9 -:1000B0001E1330121E13751298121E13ED12001328 -:1000C0003616361665166516A416E917E917E917E8 -:1000D000C416E91774177417DA17E917E917E31745 -:1000E0008117811781178117811781178117811750 -:1000F0008117811781178117811781178117811740 -:1001000091179F17A617AD17B71700F000201E0014 -:100110001F002000210022002300240025002600CB -:1001200027002D002E0035002A004B002B00140064 -:100130001A000800150017001C0018000C0012001F -:1001400013002F003000310000004E003900040081 -:100150001600070009000A000B000D000E000F003A -:10016000330034003200280000000000E100640089 -:100170001D001B00060019000500110010003600CC -:10018000370038008700E50052000000E000E3007F -:10019000E2008B0000002C002C00000000008A0010 -:1001A000E600E4000151500051004F0035003A00D4 -:1001B0003B003C003D003E003F004000410042004B -:1001C00043004400450001004C0032700100010072 -:1001D000010001000100010001000100460047008C -:1001E00048000100010001000000010001000100C1 -:1001F00002510100010001000100010001000100A5 -:1002000001000100010001000000000001000100E8 -:1002100001000100010001000100010001000100D6 -:1002200001000100010001004B000000010001007D -:1002300001000100000001000100000000000100B9 -:100240000100010001514A004E004D000100010073 -:100250000100010001000100010001000100010096 -:100260000100010001000100010001000100010086 -:100270000100010000700100010001000100010007 -:100280000100010001000100000001000100010067 -:100290000251010001000100010001000100010004 -:1002A0000100010001000100000000000100010048 -:1002B0000100010001000100010001000100010036 -:1002C0000100010001000100010000000100010027 -:1002D0000100010000000100010000000000010019 -:1002E0000100010001510100010001000A444542E2 -:1002F00055473A20656E61626C65642E0A0053743E -:10030000617465206F6620726F772025583A20252A -:10031000303136620A0048756D616E2D7265616418 -:1003200061626C65206D61747269782073746174A8 -:10033000653A0D0A004465626F756E63696E6720E9 -:1003400064656C61792072656D61696E696E673A8A -:100350002025580A005B735D004B6579626F6172FE -:10036000642073746172742E0A005B575D005B53E6 -:100370005D005B525D005B445D005B435D00140308 -:1003800043006C007500650062006F006100720040 -:1003900064000000140343006C00750065006200F7 -:1003A0006F00610072006400000004030904090288 -:1003B0007400040100A0FA09040000010301010017 -:1003C0000921110100012240000705810308000AEC -:1003D00009040100010300000009211101000122AC -:1003E00036000705820308000A0904020002030020 -:1003F00000000921110100012220000705830320CC -:1004000000010705030320000109040300010300A4 -:1004100000000921110100012239000705840310A1 -:1004200000011201100100000008EDC101230300CA -:100430000102000105010906A101050719E029E7EC -:100440001500250195087501810205081901290586 -:100450009505750191029501750391010507190034 -:10046000297715002501957875018102C00631FFB5 -:100470000974A1010975150025FF952075088102F1 -:100480000976150025FF952075089102C005010920 -:1004900080A101850216010026B7001A01002AB7C3 -:1004A00000751095018100C0050C0901A1018503AB -:1004B000160100269C021A01002A9C027510950163 -:1004C0008100C005010906A101050719E029E7150A -:1004D00000250195087501810295017508810105C6 -:1004E000081901290595057501910295017503917A -:1004F000010507190029FF150026FF00950675085C -:100500008100C00A002530325820006B6579626F87 -:100510006172645F7265706F72743A20004B657926 -:10052000626F617264204C4544732073746174651A -:100530003A2025780A0064656C5F6B65795F6269B3 -:10054000743A2063616E27742064656C3A2025300C -:1005500032580A006164645F6B65795F6269743A5E -:100560002063616E2774206164643A20253032581C -:100570000A00646F6E652E0A00626F6F676D6167B7 -:100580006963207363616E3A202E2E2E20003F0097 -:10059000433E20004C25640A0074696D65725F63F8 -:1005A0006F756E743A202530346C580A006B65798B -:1005B000626F6172645F6E6B726F3A2025580A0039 -:1005C0006B6579626F6172645F69646C653A20255E -:1005D000580A006B6579626F6172645F70726F7444 -:1005E0006F636F6C3A2025580A00686F73745F6BF5 -:1005F0006579626F6172645F6C65647328293A2063 -:1006000025580A000A092D20537461747573202D32 -:100610000A004743433A20342E392E3220415652A5 -:100620002D4C4942433A20312E382E31204156522A -:100630005F415243483A20617672350A004F505468 -:10064000494F4E533A204C55464120424F4F544D4E -:10065000414749432045585452414B455920434F47 -:100660004E534F4C4520434F4D4D414E44204E4B31 -:10067000524F20343039360A004255494C443A2012 -:10068000383063383730352D6469727479202831F9 -:10069000333A31393A3032204A756E2032312032C5 -:1006A000303136290A005649443A203078433145E2 -:1006B0004428436C7565626F617264292050494417 -:1006C0003A2030783233303128436C7565626F617F -:1006D000726429205645523A203078303030330A3F -:1006E00000444553433A20514D4B206B6579626F6E -:1006F000617264206669726D7761726520666F72DF -:1007000020436C7565626F6172640A000A092D20CE -:1007100056657273696F6E202D0A000A092D2043F9 -:100720006F6E736F6C65202D0A4553432F713A0924 -:10073000717569740A000A092D204D61676963208B -:100740002D0A443A094465627567204D65737361EB -:10075000676520546F67676C650A583A094D617484 -:10076000726978204465627567204D6F6465205416 -:100770006F67676C65202D2053686F77206B6579F4 -:100780007072657373657320696E206D6174726930 -:100790007820677269640A4B3A094B6579626F6128 -:1007A000726420446562756720546F67676C6520CA -:1007B0002D2053686F77206B657970726573732095 -:1007C0007265706F72740A4D3A09446562756720EC -:1007D0004D6F75736520546F67676C650A563A09EB -:1007E00056657273696F6E0A533A09537461747572 -:1007F000730A433A09416374697661746520436FF3 -:100800006E736F6C65204D6F64650A46312D4631FD -:10081000303A0953776974636820746F204C6179AA -:10082000657220302D392028463130203D204C3053 -:10083000290A302D393A0953776974636820746F37 -:10084000204C6179657220302D390A4553433A09AD -:1008500053776974636820746F204C6179657220E6 -:10086000302028616C7465726E617465206B6579E7 -:100870002031290A47524156453A09537769746332 -:100880006820746F204C6179657220302028616C7B -:100890007465726E617465206B65792032290A5027 -:1008A000415553453A094A756D7020746F20426F67 -:1008B0006F746C6F6164657220285265736574296A -:1008C0000A453A095072696E7420454550524F4DA1 -:1008D0002053657474696E67730A4E3A094E4B5221 -:1008E0004F20546F67676C650A000A002575002E5B -:1008F0006E6B726F3A20000A002575002E737761C7 -:10090000705F6261636B736C6173685F6261636B7C -:1009100073706163653A20000A002575002E7377B5 -:1009200061705F67726176655F6573633A20000A84 -:10093000002575002E6E6F5F6775693A20000A000A -:100940002575002E737761705F72616C745F7267DA -:1009500075693A20000A002575002E737761705F73 -:100960006C616C745F6C6775693A20000A002575CC -:10097000002E636170736C6F636B5F746F5F636F86 -:100980006E74726F6C3A20000A002575002E737722 -:1009900061705F636F6E74726F6C5F636170736CB4 -:1009A0006F636B3A20000A0025303258006B65797E -:1009B0006D61705F636F6E6669672E7261773A2052 -:1009C000000A002575002E6D6F7573653A20000AC8 -:1009D000002575002E6B6579626F6172643A2000A4 -:1009E0000A002575002E6D61747269783A20000A3C -:1009F000002575002E656E61626C653A20000A0064 -:100A0000253032580064656275675F636F6E666992 -:100A1000672E7261773A20000A00257500646566CA -:100A200061756C745F6C617965723A20003F004EAD -:100A30004B524F3A206F66660A004E4B524F3A2097 -:100A40006F6E0A000A6D6F7573653A206F66660AED -:100A5000000A6D6F7573653A206F6E0A000A6B6548 -:100A600079626F6172643A206F66660A000A6B658C -:100A700079626F6172643A206F6E0A000A6D617468 -:100A80007269783A206F66660A000A6D617472694D -:100A9000783A206F6E0A000A64656275673A206FC3 -:100AA00066660A000A64656275673A206F6E0A001E -:100AB0000A0A4A756D70696E6720746F20626F6FE5 -:100AC000746C6F616465722E2E2E2000433E2000F0 -:100AD0006565636F6E6669673A0A000011241FBE80 -:100AE000CFEFDAE0DEBFCDBF04B603FE24C08091B5 -:100AF000EC019091ED01A091EE01B091EF018730F2 -:100B0000904BA740B04BB9F41092EC011092ED015C -:100B10001092EE011092EF0114BE84B7877F84BF5C -:100B200088E10FB6F89480936000109260000FBEC9 -:100B3000E0E0F8E3099511E0A0E0B1E0E6E2FAE4D4 -:100B400002C005900D92A833B107D9F711E0A8E3D0 -:100B5000B1E001C01D92AC3EB107E1F70E940D0E5D -:100B60000C9411250C940000FF93EF93E091380151 -:100B7000F0913901309709F00995EF91FF910895AF -:100B8000FC018591803011F0EFDFFBCF0895FF2746 -:100B9000E0E230E247FF0CC0419597FF09C0EDE26B -:100BA0006095709580959095611D711D811D911DB9 -:100BB00027FF02C0219530E350E2AA27660F771F76 -:100BC000881F991FAA1FA41710F0A41B63955A959C -:100BD000A9F7AA3008F0A95FA05DAF93F39561155E -:100BE00071058105910541F7ED3211F4EF93F3950D -:100BF000F21718F43F93F395FBCF8F91B5DFFA9579 -:100C0000E1F70895E991F9918591803021F08532DD -:100C100019F0AADFF9CF089520E0E89455915532F4 -:100C2000C1F3503311F4689455915A3348F450533A -:100C300090F3220F022E220F220F200D250FF4CF4A -:100C40000EF4219589919991533619F3533729F16F -:100C5000533559F1BC0188279927E8945C3621F473 -:100C60008991999168945591543639F446EF7EF004 -:100C700077FF0DC08FEF9FEF0AC055374AE039F07C -:100C8000583540E121F0523642E009F00895FF93D3 -:100C9000EF937DDFEF91FF91B7CFFF93EF93FC01CF -:100CA00081918030B9F360DFFBCFFF93EF9368DF72 -:100CB000F1CFDF93CF93CDB7DEB72596A3DFCF91EA -:100CC000DF910895809A81FF02C0889A08958898DC -:100CD0000895089508950C9469060C946A06CF93BC -:100CE000DF93611120C0EC010E94701E827280931C -:100CF0003A019A81992351F0882319F085E390E015 -:100D000002C089E290E00E94C81D09C0882319F042 -:100D100085E390E002C089E290E00E941B1EDF9113 -:100D2000CF910C94BA1EDF91CF91089581E0089580 -:100D300081E008950C94980608950F931F93CF9324 -:100D4000DF938C01FC01C081D181CE010E94491D3D -:100D5000BE010E94B709EC01B8010E949A068823DF -:100D600009F474C1F8018281882309F45BC0809181 -:100D7000460181111FC0C431F0E7DF0709F00AC145 -:100D80000E949C0681E0809346010E949A1F9093E6 -:100D900045018093440110923D0110923F01109251 -:100DA0003E011092410110924001109243011092B5 -:100DB00042014CC180914401909145010E94A61FBF -:100DC000883C910570F480913D01E82FF0E0EE0F32 -:100DD000FF1FE25CFE4FD183C0838F5F80933D0194 -:100DE00035C1C43120E7D20708F028C1C23080E7FE -:100DF000D80710F5C11590E7D90709F0DAC0F80156 -:100E00008281882309F4BFC00E945018FFEF24E3B9 -:100E10008CE0F15020408040E1F700C000000E94CB -:100E2000F51F14C1C431F0E7DF0708F0D3C0C230AA -:100E300020E7D20708F49BC0F8018281882309F4D7 -:100E4000A2C00E94B121811102C00E9497210E947C -:100E5000CE2190E09093DE018093DD01C230F0E777 -:100E6000DF0721F48091DD0181607AC0C33020E783 -:100E7000D20721F48091DD01826072C0C43080E726 -:100E8000D80721F48091DD0184606AC0C53090E705 -:100E9000D90719F48091DD0127C0C630E0E7DE07ED -:100EA00021F48091DD0180615BC0C730F0E7DF078E -:100EB00021F48091DD01806253C0C83020E7D20761 -:100EC00021F48091DD0180644BC0C93080E7D807F0 -:100ED00021F48091DD01806843C0CA3090E7D907D2 -:100EE00029F48091DD01846088603AC0CB30E0E76E -:100EF000DE0721F48091DD018E7F32C0CC30F0E737 -:100F0000DF0721F48091DD018D7F2AC0CD3020E7FD -:100F1000D20721F48091DD018B7F22C0CE3080E7A3 -:100F2000D80719F48091DD011AC08091DD01CF301E -:100F300090E7D90711F48F7E13C0C031E0E7DE07D8 -:100F400011F48F7D0DC0C131F0E7DF0711F48F7B05 -:100F500007C0C231D04711F48F7702C08B7F877FE3 -:100F60008093DD018091DD010E94D2216FC0C11507 -:100F700080E7D80741F0C130D047F1F081E080939D -:100F80003B0180933C01C801DF91CF911F910F91EC -:100F90000C949606C43120E7D20708F04FC0C23047 -:100FA00080E7D80708F048CFC11590E7D90709F4C2 -:100FB0002BCFC130D04711F7F8018281882319F374 -:100FC0008CEE92E00E94C0058091D60181608093F2 -:100FD000D6013CC0C333E0E7DE07A1F4F80182810B -:100FE000882321F010923B0182E017C080913B01E1 -:100FF000811106C086E20E94DA1486E20E94A215E0 -:1010000082E019C0C433D04709F0B8CFF80182811B -:10101000882331F010923C0180E20E94F11516C045 -:1010200080913C01811106C087E20E94DA1487E2B8 -:101030000E94A21580E20E94F81508C0C333F0E7B1 -:10104000DF0761F2C433D04709F398CF80E0DF9126 -:10105000CF911F910F9108950C946B060C946D061F -:10106000E72FF0E025E0829FE00DF11D1124B4E0B0 -:10107000EE0FFF1FBA95E1F7E60FF11DEE0FFF1F10 -:10108000E45FFE4F859194910E94CC09811540E464 -:101090009407B0F5811560E3960708F0DEC0803E46 -:1010A0009105D8F4803C910508F06CC0883A910510 -:1010B00078F4853A910508F06BC08130910509F408 -:1010C00052C108F40FC18430910508F04CC10AC127 -:1010D0008B3B910508F467C005C18F3F910509F06E -:1010E00048F4803F910508F0ADC0883E910508F4B2 -:1010F0003AC1F8C0811570E2970708F0A5C00895BD -:10110000811523E5920790F4811542E5940708F0D4 -:10111000C8C0811561E5960708F0BEC0811570E56D -:10112000970708F09DC09F70906A0895811525E586 -:101130009207D8F4811544E5940708F0C8C0482FF9 -:101140004695469570E2479FA00111248370992728 -:1011500021E030E0B90102C0660F771F8A95E2F7FF -:10116000CB01842B952B9A680895811566E5960727 -:1011700008F4B2C09C0130562115304108F0B2C0CD -:101180009F70AEC0FC01EE0FFF1FE657F04062C03B -:10119000853A910509F4A9C0863A910509F0A8C0DD -:1011A00082E890E40895883A910509F4A4C0893A48 -:1011B000910509F4A3C08A3A910509F4A2C08B3ABB -:1011C000910509F4A1C08C3A910509F4A0C08D3AAB -:1011D000910509F49FC0803B910509F49EC08E3AA9 -:1011E000910509F49DC08F3A910509F49CC0813B9B -:1011F000910509F49BC0823B910509F49AC0833B99 -:10120000910509F499C0843B910509F498C0853B88 -:10121000910509F497C0863B910509F496C0873B78 -:10122000910509F495C0883B910509F494C0893B68 -:10123000910509F493C08A3B910509F492C080E0BE -:1012400094E4089590650895FC01FF70EE0FFF1F70 -:10125000E65FFE4F8591949108959927906C0895CB -:10126000482F437021E030E002C0220F331F4A951F -:10127000E2F73C68AC0164E0569547956A95E1F762 -:101280004370342B8F708695869540E2849FC00111 -:101290001124822B932B0895982F8827816F906AB1 -:1012A0000895482F4695469560E2469FA001112477 -:1012B0008370992721E030E0B90102C0660F771FE3 -:1012C0008A95E2F7CB01842B952B9C680895982F83 -:1012D0008827846F906A08958F719927982F88279F -:1012E0009062089580E090E0089581E890E4089588 -:1012F00083E890E4089582EE94E4089589EE94E4FE -:1013000008958AEE94E4089585EB94E4089586EBBD -:1013100094E4089587EB94E408958CEC94E40895A4 -:101320008DEC94E4089583E895E408958AE895E4C3 -:10133000089582E995E4089584E995E4089581E2A9 -:1013400096E4089583E296E4089584E296E408958D -:1013500085E296E4089586E296E4089587E296E4AD -:1013600008958AE296E4089580E090E00895E72FDA -:10137000F0E095E0899FE00DF11D112484E0EE0F6F -:10138000FF1F8A95E1F7E60FF11DEE0FFF1FE45FE7 -:10139000FE4F8591949108958238910549F1B0F4FA -:1013A0008133910509F458C048F48932910509F454 -:1013B0004EC08A32910509F454C0089585339105D1 -:1013C00009F440C08933910599F00895833E910551 -:1013D00029F138F4803E910591F0823E9105A1F00B -:1013E0000895863E9105F9F0873E910531F1089503 -:1013F0002091DD0120FD3AC021FD38C00895809183 -:10140000DD0180FD35C032C08091DD0182FF32C038 -:101410008091DD0184FD30C083EE39C08091DD0113 -:1014200082FD28C0F5CF8091DD0183FF27C0809128 -:10143000DD0184FD21C087EE2AC08091DD0183FD9E -:101440001DC0F5CF8091DD0185FD1AC01BC08091C4 -:10145000DD0185FD17C014C08091DD0186FD14C03B -:1014600015C08091DD0186FD11C00EC080EE0FC059 -:1014700089E30DC082EE0BC080E009C086EE07C094 -:1014800089E205C085E303C08AE201C081E390E000 -:1014900008950C946206E82FF0E0E15EFE4F808133 -:1014A000E82FEF70F0E082958F7021E030E0A90125 -:1014B00002C0440F551F8A95E2F740A308950F9389 -:1014C0001F93CF93DF93C4E0D0E001E010E0FE0172 -:1014D000E15EFE4F8081E82FEF70F0E021A1829560 -:1014E0008F70A80102C0440F551F8A95E2F7CA0108 -:1014F000822B81A38C2F0E944B0A219740F78FE00B -:1015000090E061E070E0FC01E15FFE4F2081E22F9E -:10151000EF70F0E042A122952F70DB0102C0AA0F0C -:10152000BB1F2A95E2F79D01242B22A3019758F7B0 -:10153000DF91CF911F910F9108950F931F93CF9338 -:10154000DF9385B7806885BF85B7806885BFC4E0B5 -:10155000D0E001E010E0FE01E15EFE4F8081E82F67 -:10156000EF70F0E021A182958F70A80102C0440FB6 -:10157000551F8A95E2F7CA01822B81A38C2F0E9406 -:101580004B0A219740F78FE090E061E070E0FC01AA -:10159000E15FFE4F2081E22FEF70F0E042A1229543 -:1015A0002F70DB0102C0AA0FBB1F2A95E2F79D0135 -:1015B000242B22A3019758F7DF91CF911F910F9110 -:1015C0000C942C08EF92FF920F931F93CF93DF930D -:1015D00001E511E0C4E0EE24E394F12CD5E08C2F7A -:1015E0000E944B0A8FE090E040E050E0FC01E15F98 -:1015F000FE4F6081E62FEF70F0E020A130E06295B1 -:101600006F7002C0359527956A95E2F720FD09C0F5 -:101610009701082E02C0220F331F0A94E2F7422BD3 -:10162000532B019718F7F801929182918F0184173B -:10163000950721F051834083D09300018C2F0E94A5 -:101640004B0AC15060F68091000187FD35C0909132 -:10165000D60190FF10C0282F332727FD30953F93E8 -:101660008F9385E393E09F938F930E9459060F9089 -:101670000F900F900F908091000181508093000196 -:1016800087FD07C08FE99FE00197F1F700C00000D8 -:1016900013C080E090E0FC01EF5AFE4FDC01A95B33 -:1016A000BE4F18962D913C9119973187208702974C -:1016B000863FEFEF9E0779F70E942E0881E0DF91C9 -:1016C000CF911F910F91FF90EF900895E82FF0E0D8 -:1016D000EE0FFF1FEF5AFE4F808191810895EF9228 -:1016E000FF920F931F93CF93DF938091D60180FFDA -:1016F00004C086E193E00E94C00501E511E0C0E06E -:10170000D0E08EEFE82E82E0F82E8091D60180FFA7 -:1017100013C0F801808191810E94101F9F938F93C5 -:10172000DF93CF93FF92EF920E9459060F900F9094 -:101730000F900F900F900F9021960E5F1F4FC530A6 -:10174000D10519F7DF91CF911F910F91FF90EF9085 -:1017500008950F931F93CF930BE511E0C0E0F801BC -:10176000929182918F010E94EE1EC80FF1E0013527 -:101770001F07A9F78C2FCF911F910F91089580918A -:101780006E01089508959FB7F89410925D019FBF70 -:101790009091E301943009F057C09091E9009F7057 -:1017A0003091EC00232F217030FD20E8922B23E0B4 -:1017B0002093E9002091EB0020FF43C02091EE0030 -:1017C00027FF3FC020915B01222321F02091E800F8 -:1017D00025FF37C010925B0126E03091E80035FD0F -:1017E00015C03091E301343061F53091EB0035FDE7 -:1017F00028C0215021F481E080935B0122C0EFE9F1 -:10180000FFE03197F1F700C00000E7CF8093F100CF -:101810008091E80085FD0AC08091E80080FFFCCF40 -:101820008091E8008E778093E80006C08FB7F89427 -:1018300021E020935D018FBF9F709093E90080E0CD -:1018400008959F709093E9008FEF0895CF93DF93F1 -:1018500000D01F92CDB7DEB72091E301243021F5EF -:1018600023E029839B838A8382E08093E9008FEFC2 -:101870009091E800815095FD06C095ED9A95F1F79D -:1018800000008111F5CF8091E80085FF0DC040E098 -:1018900050E063E070E0CE0101960E94BF0E80919F -:1018A000E8008E778093E8000F900F900F90DF9103 -:1018B000CF910895CF93DF9300D01F92CDB7DEB7BD -:1018C0009C018091E301843019F592E099833B8378 -:1018D0002A839093E9008FEF9091E800815095FD65 -:1018E00006C095ED9A95F1F700008111F5CF809132 -:1018F000E80085FF0DC040E050E063E070E0CE01FD -:1019000001960E94BF0E8091E8008E778093E800D8 -:101910000F900F900F90DF91CF910895CF93DF93A9 -:10192000EC019091E301943009F046C080910B01E5 -:101930008823D9F080910C018823B9F09093E900B5 -:101940008FEF9091E800815095FD06C095E19A9542 -:10195000F1F700008111F5CF8091E80085FF2CC0E0 -:1019600040E050E060E170E017C081E08093E90062 -:101970008FEF9091E800815095FD06C095ED9A9506 -:10198000F1F700008111F5CF8091E80085FF14C0C8 -:1019900040E050E068E070E0CE010E94BF0E809110 -:1019A000E8008E778093E80080E1FE01AEE5B1E0CB -:1019B00001900D928A95E1F7DF91CF9108958AE722 -:1019C00093E00E94C0058091E201811109C00E944C -:1019D00054100E94B1108091E20084608093E20074 -:1019E000089586E793E00E94C0051092E2010895F1 -:1019F00082E793E00C94C0058EE693E00C94C0055A -:101A00008AE693E00E94C0050C94621F20915C015D -:101A10002F5F822F62E30E94C924992319F020933B -:101A20005C01089510925C0180915D01882371F141 -:101A30008091E301843041F58091E9008F7020911D -:101A4000EC00922F917020FD90E8892B93E0909309 -:101A5000E9009091EB0090FF14C09091EE0097FF89 -:101A600010C09091E80095FF03C01092F100F9CFEB -:101A70009091E80090FF05C09091E8009E779093C8 -:101A8000E8008F708093E90010925D01089542E0B4 -:101A900061EC81E00E94CE0F42E061EC82E00E94A6 -:101AA000CE0F42E261EC83E00E94CE0F42E161EC96 -:101AB00084E00C94CE0F8091E501833009F455C089 -:101AC00030F4813071F0823009F48EC008958A308C -:101AD00009F47AC08B3009F460C0893009F09CC0E9 -:101AE00020C08091E401813A09F096C08091E8001D -:101AF000877F8093E8008091E8019091E901892B2C -:101B000021F460E18EE591E003C060E080E090E0C8 -:101B100070E00E940A0F8091E8008B778093E800C4 -:101B200008958091E401813209F076C08091E80146 -:101B30009091E901009719F0039709F06DC0809129 -:101B4000E800877F8093E8008091E80082FD05C06F -:101B50008091E3018111F8CF5FC08091F100809303 -:101B60006E018091E8008B7753C08091E401813A47 -:101B700009F052C08091E8019091E901892B09F0A8 -:101B80004BC08091E800877F8093E8008091E80057 -:101B900080FFFCCF80910B0136C08091E40181323F -:101BA000D9F58091E8019091E901892BA9F58091FF -:101BB000E800877F8093E8000E9403108091E6018F -:101BC00080930B010C9450188091E401813221F52F -:101BD0008091E800877F8093E8000E940310809145 -:101BE000E70180936F0108958091E401813AA1F4A7 -:101BF0008091E800877F8093E8008091E80080FF73 -:101C0000FCCF80916F018093F1008091E8008E7786 -:101C10008093E8000C940310089584B7877F84BFF5 -:101C200088E10FB6F89480936000109260000FBEB8 -:101C300080E880936100109261000E94D8130E9496 -:101C400054100E94B1108091E20084608093E20001 -:101C500083EC9BE00E94E91E78940E9436130E9458 -:101C6000DA1381E091E00E94511389E593E00E942C -:101C7000C0058091E301853089F485E593E00E94F9 -:101C8000C0050E942A1F8091E101882391F30E94E0 -:101C9000541F882371F30E94A90EEBCF0E94FE13FC -:101CA000E8CF292F332723303105C9F064F42130E0 -:101CB000310581F02230310509F043C084E790E01E -:101CC0002EEA33E042C021323105F1F022323105F3 -:101CD00041F137C082E190E022E234E036C099273A -:101CE0008130910541F08230910541F0892B49F511 -:101CF000EAEAF3E005C0E4E9F3E002C0EEE7F3E06E -:101D0000849190E09F0121C06430D8F4E62FF0E088 -:101D1000EE0FFF1FE05DFE4F2081318189E090E0F2 -:101D200014C0643070F470E0FB01EE0FFF1FE85D3B -:101D3000FE4F20813181FB01EC5DFE4F808190E000 -:101D400004C080E090E020E030E0FA01318320839D -:101D5000089580E189BD82E189BD09B400FEFDCF0F -:101D60008091D8008F7D8093D8008091E0008260C0 -:101D70008093E0008091E00081FDFCCF0895CF9238 -:101D8000DF92EF92FF920F931F93CF93DF93EC01BB -:101D90008B016A010E942210811133C0C114D10449 -:101DA00039F0F60180819181081B190BC80FD91FEA -:101DB000E12CF12C0115110519F18091E80085FD48 -:101DC00016C08091E8008E778093E800C114D1049A -:101DD00049F0F60180819181E80EF91EF182E082DE -:101DE00085E00FC00E942210882321F30AC0899148 -:101DF0008093F10001501109FFEFEF1AFF0ADACFCB -:101E000080E0DF91CF911F910F91FF90EF90DF90D5 -:101E1000CF9008952091EA013091EB012617370702 -:101E200048F06115710539F42091E8002E77209370 -:101E3000E80001C0B90140E061157105A9F12091E8 -:101E4000E301222309F443C0253009F442C0209164 -:101E5000E80023FD40C02091E80022FD32C020911F -:101E6000E80020FFE9CF4091F3002091F20030E03C -:101E7000342BFC01CF016115710559F02830310573 -:101E800040F481918093F100615071092F5F3F4FC1 -:101E9000F1CF41E02830310509F040E02091E80021 -:101EA0002E772093E800C8CF4111C9CF0AC0809196 -:101EB000E301882361F0853061F08091E80083FDC3 -:101EC0000AC08091E80082FFF2CF80E0089582E0AE -:101ED000089583E0089581E008952091EA0130910A -:101EE000EB012617370748F06115710539F4209189 -:101EF000E8002E772093E80001C0B901FC0120E042 -:101F00006115710591F18091E301882309F440C0C6 -:101F1000853009F43FC08091E80083FD3DC0809189 -:101F2000E80082FD2FC08091E80080FFE9CF20917A -:101F3000F3008091F20090E0922B6115710559F049 -:101F40008830910540F424912093F100319661503E -:101F500071090196F2CF21E0089709F020E0809105 -:101F6000E8008E778093E800CBCF2111CCCF0AC058 -:101F70008091E301882361F0853061F08091E80071 -:101F800083FD0AC08091E80082FFF2CF80E00895CF -:101F900082E0089583E0089581E00895982F9730B6 -:101FA00058F59093E900981739F07091EC00209162 -:101FB000ED005091F00003C0242F762F50E021FF58 -:101FC00019C03091EB003E7F3093EB003091ED0073 -:101FD0003D7F3093ED003091EB0031603093EB00AA -:101FE0007093EC002093ED005093F0002091EE00F0 -:101FF00027FF07C09F5FD3CF8F708093E90081E0F8 -:10200000089580E008958091E40187FF11C08091D8 -:10201000E80082FD05C08091E3018111F8CF11C075 -:102020008091E8008B770BC08091E301882349F011 -:102030008091E80080FFF8CF8091E8008E77809350 -:10204000E80008952091E4003091E50095E6409184 -:10205000EC00842F817040FF22C08091E80080FD59 -:102060001CC08091E301882391F0853091F080912C -:10207000EB0085FD10C04091E4005091E50042174F -:10208000530729F39A01915011F784E0089582E0F3 -:10209000089583E0089581E0089580E008954091D7 -:1020A000E80042FFDECF08950E94C2100E94CA10CD -:1020B000E0EEF0E0808181608083E8EDF0E08081F7 -:1020C0008F77808319BCA7EDB0E08C918E7F8C93C5 -:1020D00080818F7E80831092E20108950F931F9379 -:1020E000CF93DF930E94C2100E94CA10C8EDD0E0C7 -:1020F00088818F77888388818068888388818F7DB5 -:10210000888319BC1092E3011092DF011092E10163 -:102110001092E00100EE10E0F80180818B7F808357 -:1021200088818160888342E060E080E00E94CE0F79 -:10213000E1EEF0E080818E7F8083E2EEF0E080814E -:1021400081608083808188608083F80180818E7FB8 -:102150008083888180618883DF91CF911F910F9167 -:102160000895E8EDF0E080818F7E8083E7EDF0E078 -:1021700080818160808384E082BF81E08093E2017E -:102180000C946E10E8EDF0E080818E7F80831092D9 -:10219000E20008951092DA001092E10008951F9273 -:1021A0000F920FB60F9211242F933F934F935F938B -:1021B0006F937F938F939F93AF93BF93EF93FF930F -:1021C0008091E10082FF0BC08091E20082FF07C096 -:1021D0008091E1008B7F8093E1000E94060D809149 -:1021E000DA0080FF1FC08091D80080FF1BC0809163 -:1021F000DA008E7F8093DA008091D90080FF0DC0D5 -:1022000080E189BD82E189BD09B400FEFDCF81E096 -:102210008093E3010E94DF0C05C019BC1092E3011A -:102220000E94F10C8091E10080FF19C08091E200D2 -:1022300080FF15C08091E2008E7F8093E200809144 -:10224000E20080618093E2008091D80080628093F8 -:10225000D80019BC85E08093E3010E94FC0C8091BA -:10226000E10084FF30C08091E20084FF2CC080E157 -:1022700089BD82E189BD09B400FEFDCF8091D800FF -:102280008F7D8093D8008091E1008F7E8093E10064 -:102290008091E2008F7E8093E2008091E200816075 -:1022A0008093E2008091DF01882311F084E007C071 -:1022B0008091E30087FD02C081E001C083E080934C -:1022C000E3010E94000D8091E10083FF29C080910D -:1022D000E20083FF25C08091E100877F8093E100C9 -:1022E00082E08093E3011092DF018091E1008E7F14 -:1022F0008093E1008091E2008E7F8093E2008091E4 -:10230000E20080618093E20042E060E080E00E94B1 -:10231000CE0F8091F00088608093F0000E94F80C4E -:10232000FF91EF91BF91AF919F918F917F916F91AD -:102330005F914F913F912F910F900FBE0F901F9083 -:1023400018951F920F920FB60F9211242F933F935F -:102350004F935F936F937F938F939F93AF93BF93AD -:10236000CF93DF93EF93FF93C091E900CF708091FB -:10237000EC00D82FD17080FDD0E81092E900809158 -:10238000F000877F8093F00078940E94E51110920E -:10239000E9008091F00088608093F000CD2BCF7031 -:1023A000C093E900FF91EF91DF91CF91BF91AF9181 -:1023B0009F918F917F916F915F914F913F912F915D -:1023C0000F900FBE0F901F9018951F93CF93DF9320 -:1023D000CDB7DEB7AA970FB6F894DEBF0FBECDBF5C -:1023E000E4EEF1E088E08E0F9091F10091938E136E -:1023F000FBCF0E945B0D8091E80083FF1FC180919D -:10240000E4019091E501492F50E04A30510508F070 -:1024100015C1FA01EA5AFF4F0C94D524803881F097 -:10242000823809F00BC18091E8018F708093E90038 -:102430008091EB0085FB882780F91092E90006C0A7 -:102440008091E0019091E101911182609091E8000A -:10245000977F9093E8008093F1001092F100C8C03C -:10246000282F2D7F09F0EAC0882319F0823061F00F -:10247000E5C08091E601813009F0E0C0933009F0B9 -:1024800080E08093E1012BC08091E601811127C09B -:102490008091E8018F7009F4D1C08093E900209108 -:1024A000EB0020FF1CC0933021F48091EB00806290 -:1024B00014C09091EB0090619093EB0021E030E02C -:1024C000A90102C0440F551F8A95E2F74093EA0024 -:1024D0001092EA008091EB0088608093EB001092EC -:1024E000E9008091E800877F86C08111A7C0109124 -:1024F000E6011F778091E3008078812B8093E300D1 -:102500008091E800877F8093E8000E94031080910B -:10251000E80080FFFCCF8091E30080688093E300B7 -:10252000111102C082E001C083E08093E30186C004 -:102530008058823008F082C08091E6019091E701D6 -:102540008C3D53E0950779F583E08A838AE289839D -:102550004FB7F894DE01139620E03EE051E2E32FFE -:10256000F0E050935700E49120FF03C0E295EF7034 -:102570003F5FEF708E2F90E0EA3010F0C79601C0F9 -:10258000C0968D939D932F5F243149F74FBF809163 -:10259000E800877F8093E8006AE270E0CE01019650 -:1025A0000E940A0F14C0AE014F5F5F4F6091E801B7 -:1025B0000E94510EBC01009709F440C09091E800C0 -:1025C000977F9093E80089819A810E946D0F809196 -:1025D000E8008B778093E80031C0803879F58091EE -:1025E000E800877F8093E8008091DF018093F1000D -:1025F0008091E8008E778093E8000E9403101EC04F -:1026000081111CC09091E6019230C0F48091E800E5 -:10261000877F8093E8009093DF010E9403108091F0 -:10262000DF01811106C08091E30087FD02C081E0D7 -:1026300001C084E08093E3010E94470D8091E8008F -:1026400083FF0AC08091E800877F8093E800809133 -:10265000EB0080628093EB00AA960FB6F894DEBF81 -:102660000FBECDBFDF91CF911F910895CF93809181 -:10267000E3018823A1F0C091E900CF709091EC00B4 -:10268000892F817090FD80E8C82B1092E90080911D -:10269000E80083FD0E94E511CF70C093E900CF915F -:1026A000089590937501809374010895E0917401E9 -:1026B000F0917501309721F00190F081E02D09949F -:1026C00080E00895EF92FF920F931F93CF93DF93D3 -:1026D000E0917401F09175013097B1F18C010280A5 -:1026E000F381E02D09958091D60182FF2DC080FFF6 -:1026F00004C08BE095E00E94C005E80110E185E090 -:10270000E82E85E0F82E8091D60180FF0BC08881ED -:102710001F928F93FF92EF920E9459060F900F9095 -:102720000F900F90115021961111EDCF8091D6018D -:1027300080FF0AC083E095E0DF91CF911F910F9158 -:10274000FF90EF900C94C005DF91CF911F910F91F6 -:10275000FF90EF90089520917201309173018217DC -:10276000930771F09093730180937201E09174016B -:10277000F0917501309721F00680F781E02D0994E2 -:10278000089520917001309171018217930771F0C3 -:102790009093710180937001E0917401F091750143 -:1027A000309721F00084F185E02D09940895089573 -:1027B0000C94D7130E94911F0E949D0A0C945F20D5 -:1027C000CF93DF931F92CDB7DEB79091D60192FFE2 -:1027D00010C090FF0EC01F928F932DE135E03F9304 -:1027E0002F9389830E9459060F900F900F900F909E -:1027F00089810F90DF91CF910C94490A5F926F927B -:102800007F928F929F92AF92BF92CF92DF92EF9280 -:10281000FF920F931F93CF93DF9300D000D01F92AE -:10282000CDB7DEB70E94E20A91E8C92E91E0D92E19 -:1028300004E010E0AA24A394B12C502E802F0E9413 -:10284000660B4C01F601729062906F016826792642 -:1028500061147104A1F40150110978F78FEF898395 -:102860008A831B820E949A1F8160782F9D838C83AC -:1028700049815A816B818D810E94AC1438C080914E -:10288000D60181FD0E946F0B2FE030E07501022E12 -:1028900002C0EE0CFF1C0A94E2F7C70186219721C3 -:1028A000892B09F129835A828E209F2091E0892863 -:1028B00009F490E09B830E949A1F8160782F9D838A -:1028C0008C8349815A816B818D810E94AC14000FE9 -:1028D000111FF801E958FE4F80819181E826F92601 -:1028E000F182E08204C02150310980F6B4CF10910A -:1028F00076010E9456131817D1F00E945613809348 -:1029000076010F900F900F900F900F90DF91CF9165 -:102910001F910F91FF90EF90DF90CF90BF90AF90FD -:102920009F908F907F906F905F900C94E0130F902A -:102930000F900F900F900F90DF91CF911F910F91FB -:10294000FF90EF90DF90CF90BF90AF909F908F90CF -:102950007F906F905F900895CF93DF93CDB7DEB7F0 -:102960002B970FB6F894DEBF0FBECDBF4F835887AD -:1029700069877A878B87DE01119686E0FD011192C7 -:102980008A95E9F785E0FE01379601900D928A95C8 -:10299000E1F749815A816B817C818D819E810E9402 -:1029A000EE1A2B960FB6F894DEBF0FBECDBFDF91A7 -:1029B000CF910895CF93882309F4C2C0C82F8238DD -:1029C00059F40E94561381FDBBC089E30E94C81DC3 -:1029D0000E94BA1E89E30CC0833879F40E94561312 -:1029E00080FDAEC083E50E94C81D0E94BA1E83E52B -:1029F0000E941B1ECF910C94BA1E843859F40E9479 -:102A0000561382FD9DC087E40E94C81D0E94BA1E15 -:102A100087E4EECF8CEF8C0F813A48F48C2F0E9424 -:102A20007A2481118DC08C2F0E94C81DE3CF80E2D3 -:102A30008C0F883048F4C77081E001C0880FCA95B8 -:102A4000EAF70E94731ED6CF8BE58C0F833078F4A3 -:102A5000C53A29F0C63A31F083E890E005C081E834 -:102A600090E002C082E890E0CF910C94AB1388E52F -:102A70008C0F833108F064C0C83A39F1C93A41F18A -:102A8000CA3A49F1CB3A51F1CC3A59F1CD3A61F118 -:102A9000C03B69F1CE3A71F1CF3A79F1C13B81F196 -:102AA000C23B89F1C33B91F1C43B99F1C53BA1F114 -:102AB000C63BA9F1C73BB1F1C83BB9F1C93BC1F174 -:102AC000CA3BC9F180E090E038C082EE90E035C0AA -:102AD00089EE90E032C08AEE90E02FC085EB90E066 -:102AE0002CC086EB90E029C087EB90E026C08CECF0 -:102AF00090E023C08DEC90E020C083E891E01DC001 -:102B00008AE891E01AC082E991E017C084E991E077 -:102B100014C081E292E011C083E292E00EC084E230 -:102B200092E00BC085E292E008C086E292E005C028 -:102B300087E292E002C08AE292E0CF910C94C11346 -:102B4000CF910895882309F44BC0823859F40E942C -:102B5000561381FF45C089E30E94C81D0E94BA1E1A -:102B600089E30CC0833871F40E94561380FF38C08B -:102B700083E50E94C81D0E94BA1E83E50E941B1EA9 -:102B80000C94BA1E843859F40E94561382FF28C050 -:102B900087E40E94C81D0E94BA1E87E4EFCF9CEF15 -:102BA000980F913A58F390E2980F983050F487704C -:102BB00091E001C0990F8A95EAF7892F0E94791E4A -:102BC000DFCF9BE5980F933020F480E090E00C94E9 -:102BD000AB13885A833120F480E090E00C94C11349 -:102BE0000895882321F00E94731E0C94BA1E089544 -:102BF000882321F00E94791E0C94BA1E08957F92BA -:102C00008F929F92AF92BF92CF92DF92EF92FF92FC -:102C10000F931F93CF93DF931F92CDB7DEB77C0145 -:102C2000C62E772EFC01058102950F7012811111BD -:102C30000E94901E0E94C11D882379F0112369F023 -:102C400080E28C0D883048F082E00E94AA1D0E942C -:102C5000C11D91E0D82ED92601C0D12CE72DE295D7 -:102C6000EF70F0E0E05AFF4F0C94D524872D807F61 -:102C7000072D0F70882311F00295007F112389F032 -:102C8000002309F48DC180E28C0D883020F4802F60 -:102C90000E94731E03C0802F0E94831E0E94BA1ED2 -:102CA0007FC18C2D0E94A215002309F492C180E2FD -:102CB0008C0D883020F4802F0E94791E03C0802F55 -:102CC0000E94891E0E94BA1E84C1872D807F972D85 -:102CD0009F70803211F4892F03C0892F8295807FE5 -:102CE000CC2021F0F1E0CF16A1F01DC0112339F066 -:102CF000002319F1013009F50E94A31E6AC10023C7 -:102D000019F0013009F465C189830E94A61E8981EA -:102D100005C1112321F0063008F05BC10EC005305B -:102D200008F057C1FBC0112359F0002331F0F7011F -:102D3000958190FF35C19F7095830E94F11549C11F -:102D4000002309F4EBC032C1872D869586958370E8 -:102D500090E0009719F0019761F03BC1112321F039 -:102D60008C2D972D937002C080E090E00E94AB13F1 -:102D700030C1112321F08C2D972D937002C080E07B -:102D800090E00E94C11325C1872D837009F052C0C5 -:102D900011111FC18C2D829586958770880F880F21 -:102DA0009C2D9F70892E912CA12CB12C082E04C033 -:102DB000880C991CAA1CBB1C0A94D2F7C4FE14C030 -:102DC0000FE010E020E030E0B901A80104C0440F9A -:102DD000551F661F771F8A95D2F7CB01BA01609500 -:102DE00070958095909503C060E070E0CB01272D31 -:102DF00026952695237030E02230310569F0233086 -:102E0000310589F0682979298A299B2921303105E2 -:102E100071F00E94361CDDC0682979298A299B2916 -:102E20000E94521CD6C00E94361CC501B4010E94EB -:102E30001A1CCFC0112319F0872D817001C086950F -:102E4000882309F4C6C08C2D829586958770880FDB -:102E5000880F9C2D9F70892E912CA12CB12C082EAF -:102E600004C0880C991CAA1CBB1C0A94D2F7C4FE8F -:102E700014C00FE010E020E030E0B901A80104C068 -:102E8000440F551F661F771F8A95D2F7CB01BA01F1 -:102E9000609570958095909503C060E070E0CB01DF -:102EA000272D269526952370422F50E0423051055C -:102EB00069F04330510589F0682979298A299B29CD -:102EC0004130510571F00E94101D83C06829792995 -:102ED0008A299B290E942C1D7CC00E94101DC501BF -:102EE000B4010E94F41C75C08C2D90E0FC01E05EE2 -:102EF000F109E531F10508F04FC0E059FF4F0C949E -:102F0000D5240C2D0F70872D8F71112321F00E9475 -:102F10008D1C802F12CF0E94AE1C802F0E94F815AE -:102F200058C0112341F0053008F053C0872D8F7130 -:102F30000E94D31C4EC0063008F04BC0F7CF1123BF -:102F400039F0872D8F710E948D1C43C01123C9F366 -:102F5000872D8F710E94AE1C3CC0112329F0872D54 -:102F60008F710E94781C35C00E946E1C32C01123E4 -:102F700051F0172D1F71812F0E948D1C63E0812F4E -:102F80000E94A11D26C081E00E94AA1D023008F106 -:102F900082E00E94AA1D1DC0112331F0002389F296 -:102FA0008C2D0E94DA1415C0002391F28C2D0E9402 -:102FB000A2150FC0472D4F706C2DC7010E94B40998 -:102FC0000E94921B06C0472D4F706C2DC7010E94B6 -:102FD0006F06DD20F9F00E949D1D80FD1BC0F701EA -:102FE00012820E94971D0E948D1CC7010E94191811 -:102FF0000E94971D0F90DF91CF911F910F91FF902D -:10300000EF90DF90CF90BF90AF909F908F907F9088 -:103010000C94AE1C0F90DF91CF911F910F91FF90F8 -:10302000EF90DF90CF90BF90AF909F908F907F9068 -:1030300008950F931F93CF93DF93EC0188819981BB -:103040002B813C81232BB9F09F3F11F48F3F99F0E6 -:10305000CE010E949D06882371F0688179818A8162 -:103060000E94931D8C010E94481D0E940F1CB801F4 -:10307000CE010E94FF15DF91CF911F910F9108950E -:103080000E94901E0E94A01E0E94621E0E94BA1EF4 -:1030900080E090E00E94AB1380E090E00C94C113BC -:1030A0000E94801E0C9440180E94881D292F229592 -:1030B0002F7030E02C3031054CF42A3031056CF49F -:1030C0002250310922303105A8F407C02C303105D7 -:1030D00069F02F30310551F00DC0803F69F018F4D0 -:1030E000803E40F409C0843F29F406C093FB882742 -:1030F00080F9089580E0089581E00895CF93DF93EB -:1031000000D000D01F92CDB7DEB70F900F900F9078 -:103110000F900F90DF91CF910895CF93DF9300D060 -:1031200000D000D0CDB7DEB726960FB6F894DEBF3C -:103130000FBECDBFDF91CF9108951F93CF93DF9343 -:10314000C091810116E080918201C81799F0D0E00A -:103150001C9FF0011D9FF00D1124ED57FE4F408183 -:10316000518162817381848195810E948D1821969D -:10317000C770E9CFDF91CF911F9108954091B301BE -:103180005091B4016091B5017091B6018091B70181 -:103190009091B8010C948D188091B80182958F7030 -:1031A00009F054C08091B501882309F44FC0809183 -:1031B0008101A09182016091B3017091B4014091AD -:1031C000B6015091B701B6E08A1709F43FC090E00C -:1031D00041155105C1F17F3F11F46F3FA1F1B89F37 -:1031E000F001B99FF00D1124ED57FE4F21817213AC -:1031F0002AC02081621327C02281211124C023818B -:1032000034812417350710F421503109241B350B64 -:10321000283C3105C0F42091B8012F702061209323 -:10322000B80126E0289FF001299FF00D1124E857EE -:10323000FE4F80818F708061808383EB91E00E94DC -:1032400019180C949D1801968770BECF0895CF92DF -:10325000DF92EF92FF920F931F93CF93DF93CDB73F -:10326000DEB762970FB6F894DEBF0FBECDBF8C01FC -:1032700085E0F801DE011D9601900D928A95E1F737 -:10328000D8014C9111965C91119712966C911297FE -:103290001396CD90DC9014973091B3017091B401E6 -:1032A0008091B6019091B701009709F46BC17F3FFF -:1032B00019F43F3F09F466C1E090B501EE2009F42E -:1032C000C0C02091B801C816D90628F0F601E81B45 -:1032D000F90BCF0104C0809590958C0D9D1DFF24A6 -:1032E000F394883C910578F0F12C207F09F0C6C05A -:1032F0007C2DD98AC88A89890E947E1883EB91E047 -:103300000E941918B1C0822F807F09F046C0751342 -:1033100014C0341312C0611110C02F7020612093AB -:10332000B8010E94BE1883EB91E00E9419188091A9 -:10333000B801D80115968C932EC0CD2819F15F3FA6 -:1033400011F44F3FF9F0F62E61111CC080918101FC -:103350002091820136E0821709F45AC090E0389F2C -:10336000F001399FF00D1124ED57FE4F7181571375 -:1033700006C07081471303C07281711103C00196AA -:103380008770E9CFF62E662309F418C18091B80141 -:1033900081608093B801F12C11C1751308C03413FA -:1033A00006C0611104C08091B801D801C3C04D8727 -:1033B0005E878D859E856A8B0E9454186A89882352 -:1033C000E1F16623D1F12091B801822F82958F70AF -:1033D00090E0029774F08091B3019091B4019887C6 -:1033E0008F831986DB86CA862C87CE0107960E94BA -:1033F000191886E0F801A3EBB1E001900D928A95CF -:10340000E1F70E94CC180E94BE18FF24F394D6C0A6 -:103410004D875E878D859E850E94881D292F229568 -:103420002F7030E0223031050CF0BCC09F7009F0E5 -:10343000B6C0805E883008F4C1C0C8010E94191867 -:10344000E4CFC816D90608F453C0F601E81BF90BFF -:10345000CF01883C910508F450C0F12C7C2DD98A0D -:10346000C88A89890E947E18E3EBF1E086E0DF01DB -:103470001D928A95E9F70E94BE18A0C0751314C06A -:10348000341312C0611110C08091B801F801858316 -:10349000C8010E94191886E0E3EBF1E0DF011D92FC -:1034A0008A95E9F7FE2C8AC04D875E878D859E85BB -:1034B0006A8B0E9454186A89882309F4BECF662358 -:1034C00009F4BBCF2091B801822F82958F7090E0D4 -:1034D00002970CF48ECF8091B3019091B4019A833E -:1034E00089831B82DD82CC822E83CE0101967FCF21 -:1034F000809590958C0D9D1DACCFF62E662309F41A -:103500009CCF75132EC034132CC02091B80120FD20 -:103510001FC0822F82958F70D9F0D80115962C93F9 -:1035200015978F3049F08F5F982F9295907F822F5B -:103530008F70892B15968C93C8010E94191886E00C -:10354000F801A3EBB1E001900D928A95E1F793CFDA -:1035500086E0F801A3EBB1E001900D928A95E1F7C6 -:103560002DC04D875E878D859E850E9454188111E0 -:1035700040CF8091B80181608093B801C8010E945A -:1035800019181CC0662309F458CF4D875E878D85B6 -:103590009E850E945418882309F44FCF2ACF8111A9 -:1035A00048CF0CC0243031050CF047CF9F7009F490 -:1035B00040CFF8019581907F09F03BCF8F2D629627 -:1035C0000FB6F894DEBF0FBECDBFDF91CF911F9134 -:1035D0000F91FF90EF90DF90CF9008951F93CF93BE -:1035E000DF93CDB7DEB72C970FB6F894DEBF0FBED2 -:1035F000CDBF4F83588769877A878B879C87CE0199 -:1036000007960E942719882369F08F8198852A855B -:103610003B85232BF1F19F3F09F063C08F3F09F0F9 -:1036200060C037C086E0FE013796DE01119601903A -:103630000D928A95E1F76F817885EA85FB85309751 -:1036400041F17F3F11F46F3F21F12091820130E081 -:10365000C9010196877099274091810150E0841734 -:10366000950709F447C069837A83FD83EC8396E06C -:10367000929FD001939FB00D1124AD57BE4FFE0114 -:10368000319601900D929A95E1F7809382010E9404 -:103690009D1816E080918101909182018917C1F1F6 -:1036A000189FC00111248D579E4F0E94271988230F -:1036B00079F1E09181011E9FF0011124ED57FE4F39 -:1036C0004081518162817381848195810E948D182E -:1036D0008091810190E00196877099278093810104 -:1036E000D9CF4F81588569857A858B859C850E94C5 -:1036F0008D18CFCF0E945018109282011092810134 -:10370000E3EBF1E086E0DF011D928A95E9F7C1CF96 -:103710002C960FB6F894DEBF0FBECDBFDF91CF91D0 -:103720001F910895EF92FF920F931F93CF93DF9312 -:103730008C01009709F46CC0F12CEE24E394E801AD -:103740002196F8018491843740F4843008F051C008 -:10375000813081F0823019F15BC0853709F444C0B3 -:10376000A8F19CE7980F903708F052C08F770E941D -:10377000A21541C00E5F1F4FFE01C49180E28C0F65 -:10378000883048F4C7708E2D01C0880FCA95EAF7BB -:103790000E94931E14C08C2F0E94DA142DC00E5F5D -:1037A0001F4FFE01C49180E28C0F883058F4C7701F -:1037B0008E2D01C0880FCA95EAF70E94991E0E94BB -:1037C000BA1E1AC08C2F0E94A21516C00E5F1F4F82 -:1037D000FE01C491CC2381F08FE99FE00197F1F7BE -:1037E00000C00000C150F6CF0E5F1F4FFE01F490E5 -:1037F00003C00E94DA148E018F2D882309F49FCF15 -:10380000EFE9FFE03197F1F700C000008150F5CFFC -:10381000DF91CF911F910F91FF90EF900895089540 -:103820006093BD017093BE018093BF019093C0016E -:103830000C9440180F931F930091BD011091BE018D -:103840002091BF013091C001DC01CB01802B912B75 -:10385000A22BB32B8093BD019093BE01A093BF0117 -:10386000B093C0011F910F910C9440180F931F93B8 -:103870000091BD011091BE012091BF013091C001A6 -:10388000DC01CB0180239123A223B3238093BD01CC -:103890009093BE01A093BF01B093C0011F910F91FF -:1038A0000C9440180F931F930091BD011091BE011D -:1038B0002091BF013091C001DC01CB01802791270D -:1038C000A227B3278093BD019093BE01A093BF01AF -:1038D000B093C0011F910F910C9440181092B90140 -:1038E0001092BA011092BB011092BC010C944018C6 -:1038F00041E050E060E070E004C0440F551F661FD7 -:10390000771F8A95D2F74093B9015093BA0160931B -:10391000BB017093BC010C94401841E050E060E0A2 -:1039200070E004C0440F551F661F771F8A95D2F7B9 -:103930008091B9019091BA01A091BB01B091BC01F5 -:10394000482B592B6A2B7B2B4093B9015093BA011A -:103950006093BB017093BC010C94401841E050E0AF -:1039600060E070E004C0440F551F661F771F8A9502 -:10397000D2F740955095609570958091B9019091DE -:10398000BA01A091BB01B091BC01482359236A231D -:103990007B234093B9015093BA016093BB017093AC -:1039A000BC010C94401841E050E060E070E004C0BD -:1039B000440F551F661F771F8A95D2F78091B90172 -:1039C0009091BA01A091BB01B091BC014827592741 -:1039D0006A277B274093B9015093BA016093BB01DA -:1039E0007093BC010C9440180F931F930091B90180 -:1039F0001091BA012091BB013091BC01DC01CB01D7 -:103A0000802B912BA22BB32B8093B9019093BA01F9 -:103A1000A093BB01B093BC011F910F910C9440186F -:103A20000F931F930091B9011091BA012091BB012E -:103A30003091BC01DC01CB0180239123A223B3236D -:103A40008093B9019093BA01A093BB01B093BC01DC -:103A50001F910F910C9440180F931F930091B9017F -:103A60001091BA012091BB013091BC01DC01CB0166 -:103A700080279127A227B3278093B9019093BA0199 -:103A8000A093BB01B093BC011F910F910C944018FF -:103A90000895CF92DF92EF92FF920F931F93CF93EF -:103AA000DF938C01C090BD01D090BE01E090BF01BA -:103AB000F090C0018091B9019091BA01A091BB0131 -:103AC000B091BC01C82AD92AEA2AFB2ACFE1D0E06A -:103AD000D701C6010C2E04C0B695A795979587957A -:103AE0000A94D2F780FF06C0B8018C2F0E943008DC -:103AF000019721F4219760F780E001C08C2FDF91BE -:103B0000CF911F910F91FF90EF90DF90CF9008958C -:103B1000CF93DF93EC010E94491DBE010E94300843 -:103B2000DF91CF910895CB010E94881D0895809167 -:103B3000C10185958595859508958091C10187700E -:103B4000089598E0899F90011124262B2093C101AC -:103B50000C948D1C2091C101809582238093C1011A -:103B6000982F977069F430E0482F552747FD5095FE -:103B70002417350729F08595859585950C94AE1CFD -:103B800008959091C101977081E009F480E0089553 -:103B900090910B01992321F090910C01911109C092 -:103BA00020910D0130910E01F90132969FEF40E016 -:103BB00030C0982F9695969596959F30A0F4E091F9 -:103BC0000D01F0910E01E90FF11D877021E030E049 -:103BD000A90102C0440F551F8A95E2F7CA019181DD -:103BE000892B818308959091D60190FF23C01F9265 -:103BF0008F9384E595E09F938F930E9459060F90D1 -:103C00000F900F900F9008959F3F39F04F5F4E3007 -:103C100041F051915813F8CF0DC05111F7CF942FA7 -:103C2000F5CF9F3F39F0F901E90FF11D97FDFA95A6 -:103C300082830895089590910B01992321F090912A -:103C40000C01911109C020910D0130910E01F90173 -:103C50003296205F3F4F30C0982F96959695969557 -:103C60009F30A8F4E0910D01F0910E01E90FF11DD4 -:103C7000877021E030E0A90102C0440F551F8A95EA -:103C8000E2F7CA01809591818923818308959091FB -:103C9000D60190FF16C01F928F9386E395E09F9305 -:103CA0008F930E9459060F900F900F900F900895D8 -:103CB0003196E217F30729F090819813F9CF10821B -:103CC000F7CF089581E090E0E0910D01F0910E01B1 -:103CD000E80FF91F1082019680319105A9F7089528 -:103CE0008091D50108959091D501892B8093D501BC -:103CF000089580959091D50189238093D5010895E9 -:103D00001092D50108959091D401892B8093D4010C -:103D1000089580959091D40189238093D4010895CA -:103D20001092D40108959091D301892B8093D301EF -:103D3000089580959091D30189238093D3010895AC -:103D40001092D30108958093C20108951092C20188 -:103D5000089580910D0190910E01FC0131969C0116 -:103D6000205F3F4F80E0919191118F5FE217F30741 -:103D7000D1F70895E0910D01F0910E018091D501E8 -:103D80008083E0910D01F0910E0190818091D4012A -:103D9000892B8083E0910D01F0910E01908180913B -:103DA000D301892B80838091C201882361F0E09147 -:103DB0000D01F0910E019081892B80830E94A91E34 -:103DC00081111092C20180910D0190910E010C940D -:103DD00062139093390180933801089520E0009791 -:103DE00039F0AC0141505109842395232F5FF7CF5F -:103DF000822F08958295982F9C7C392F3695369581 -:103E0000282F237344E0249FC0011124932F982B63 -:103E1000292F2A7A2695892F8575880F822B089558 -:103E20001F93CF93DF931F92CDB7DEB799830E9484 -:103E3000FA1E182F9981892F0E94FA1E212F30E037 -:103E4000322F2227A901482BCA010F90DF91CF9171 -:103E50001F9108958091E301843021F11092D701E0 -:103E600020E488E190E00FB6F894A8958093600074 -:103E70000FBE2093600080E00E94490A83B7817FD3 -:103E8000846083BF83B7816083BF7894889583B74C -:103E90008E7F83BF88E10FB6F89480936000109204 -:103EA00060000FBE089508950E945F0A0E94E20A12 -:103EB0000E94531F0E94A90B91E0811101C090E064 -:103EC000892F08950E9450180E9456130C94490A95 -:103ED0001F920F920FB60F9211248F939F93AF935F -:103EE000BF938091D701811113C08091D801909127 -:103EF000D901A091DA01B091DB014196A11DB11D5C -:103F00008093D8019093D901A093DA01B093DB019B -:103F1000BF91AF919F918F910F900FBE0F901F9007 -:103F2000189582E084BD93E095BD9AEF97BD80938C -:103F30006E0008952FB7F8948091D8019091D9011F -:103F4000A091DA01B091DB012FBF0895CF92DF92EB -:103F5000EF92FF920F931F932FB7F8944091D801DF -:103F60005091D9016091DA017091DB012FBF6A0194 -:103F70007B01EE24FF248C0120E030E0C016D10646 -:103F8000E206F30610F4415051099A01281B390B3F -:103F9000C9011F910F91FF90EF90DF90CF9008958E -:103FA0001F920F920FB60F9211248F939F93AF938E -:103FB000BF938091D8019091D901A091DA01B0917D -:103FC000DB010196A11DB11D8093D8019093D90109 -:103FD000A093DA01B093DB01BF91AF919F918F91D4 -:103FE0000F900FBE0F901F9018950E945410F894D8 -:103FF0002FEF87EA91E6215080409040E1F700C022 -:10400000000087E090EBDC018093EC019093ED01E0 -:10401000A093EE01B093EF019CE088E10FB6F89415 -:10402000A895809360000FBE90936000FFCFAF9281 -:10403000BF92CF92DF92EF92FF920F931F93CF9395 -:10404000C4E0CC24C394D12CE82EF12C8C2F0E94F8 -:10405000660B5C010FE010E09601002E02C0220FFB -:10406000331F0A94E2F72A213B21232B51F0602FC2 -:104070007C2F80E00E94B709E816F90611F481E070 -:1040800006C00150110940F7C15000F780E0CF9100 -:104090001F910F91FF90EF90DF90CF90BF90AF9066 -:1040A0000895CF93C82F8CE20E941720882321F017 -:1040B0008C2FCF910C94172080E0CF910895CF934F -:1040C0000E94B121811102C00E94972189E795E0E9 -:1040D0000E94C005C5E6C15049F00E94E20A8FE384 -:1040E0009CE90197F1F700C00000F5CF82E795E069 -:1040F0000E94C00589E20E945120811116C18AE206 -:104100000E94512081110E94972185E00E94512038 -:1041100081110E94F51F0E94BC218093D60187E087 -:104120000E9451208823A9F18BE10E94512088230D -:1041300051F08091D60181FB222720F991E092274E -:1041400090FB81F90EC08EE00E945120882361F01F -:104150008091D60182FB222720F991E0922790FBE3 -:1041600082F98093D60115C080E10E945120909180 -:10417000D601882341F093FB222720F981E0822792 -:1041800080FB93F904C0892F809580FB90F9909370 -:10419000D6018091D6010E94C0210E94CE2190E0DC -:1041A0009093DE018093DD0180EE0E9451208823F0 -:1041B00041F08091DD01982F909590FB80F98093DC -:1041C000DD0189E30E945120882359F08091DD01AF -:1041D00081FB222720F991E0922790FB81F98093BF -:1041E000DD0182EE0E945120882359F08091DD018B -:1041F00082FB222720F991E0922790FB82F980939D -:10420000DD0186EE0E945120882359F08091DD0166 -:1042100083FB222720F991E0922790FB83F980937A -:10422000DD0183EE0E945120882359F08091DD0149 -:1042300084FB222720F991E0922790FB84F9809358 -:10424000DD0185E30E945120882359F08091DD0132 -:1042500085FB222720F991E0922790FB85F9809336 -:10426000DD0181E30E945120882359F08091DD0116 -:1042700086FB222720F991E0922790FB86F9809314 -:10428000DD0181E10E945120882359F08091DD01F8 -:1042900087FB222720F991E0922790FB87F98093F2 -:1042A000DD018091DD010E94D2218091DD0187FB3B -:1042B000882780F980930C0187E20E945120C82F43 -:1042C0008EE10E9451208111C2608FE10E94512035 -:1042D0008111C46080E20E9451208111C86081E296 -:1042E0000E9451208111C06182E20E9451208111FF -:1042F000C06283E20E9451208111C06484E20E9466 -:104300005120882311F0C06802C0CC2329F08C2FE3 -:104310000E94C9216C2F03C00E94C521682F70E044 -:1043200080E090E0CF910C94101CCF9108956DEE39 -:104330007EEF80E090E00E94FB2460E082E090E06D -:104340000E94E92460E083E090E00E94E92460E0BC -:1043500084E090E00E94E92460E085E090E00C9425 -:10436000E92480E090E00E94E32421E08D3E9E4F0E -:1043700009F020E0822F089582E090E00C94DB2485 -:10438000682F82E090E00C94E92483E090E00C94A4 -:10439000DB24682F83E090E00C94E92484E090E033 -:1043A0000C94DB24682F84E090E00C94E924CF93F4 -:1043B000C82F1F928F9384E995E09F938F930E945B -:1043C000590681E090E0A0E0B0E0BC01CD0104C05E -:1043D000660F771F881F991FCA95D2F70E94101C7D -:1043E0000F900F900F900F90CF910C945018CF9387 -:1043F0008B3109F4D1C108F049C08E3009F4E0C115 -:1044000000F5873009F4A9C1A8F4863009F066C226 -:104410008091D601817F8E7F8093D6018BE197E0DA -:104420000E94C0058CEC9AE00E94C00581E0809358 -:10443000DC0191C1883009F45BC08B3009F487C17D -:104440004DC2813109F432C220F4803109F4CCC16B -:1044500045C2863109F4E3C1893109F03FC28CE0DD -:1044600097E00E94C00581EE96E00E94C00586EAB2 -:1044700096E00E94C00589E796E00E94C0058DE3A2 -:1044800096E00E94C00582E196E063C1853309F49D -:1044900021C268F4873209F41DC228F48E3108F471 -:1044A0001DC28D5118C2893209F414C217C2833457 -:1044B00038F48A3308F00CC2883309F448C10EC2BC -:1044C000833409F407C2883409F008C20E945018E6 -:1044D00080EB9AE00E94C0059FEF23ED80E39150AE -:1044E00020408040E1F700C000000E94F51F33C16A -:1044F00080ED9AE00E94C0058DE19AE00E94C0051F -:104500000E94C5211F928F938AE19AE09F938F9317 -:104510000E94590688E19AE00E94C0050E94BC21D1 -:10452000C82F85E09AE00E94C0051F92CF9380E0DB -:104530009AE09F938F930E9459068EEF99E00E9414 -:10454000C00584EF99E00E94C0058C2F81701F92F6 -:104550008F9381EF99E09F938F930E9459068FEE7E -:1045600099E00E94C00585EE99E00E94C005C1FB5C -:10457000882780F91F928F9382EE99E09F938F9303 -:104580000E94590680EE99E00E94C00584ED99E0F2 -:104590000E94C005C2FB882780F91F928F9381ED8E -:1045A00099E09F938F930E9459068FEC99E00E94A7 -:1045B000C00586EC99E00E94C005C3FBCC27C0F97A -:1045C0001F92CF9383EC99E09F938F930E9459069B -:1045D00081EC99E00E94C0050E94CE21C82F8DEA8F -:1045E00099E00E94C0051F92CF9388EA99E09F93BB -:1045F0008F930E94590686EA99E00E94C0058DE8D3 -:1046000099E00E94C0058C2F81701F928F938AE8D9 -:1046100099E09F938F930E9459068DB79EB780961D -:104620000FB6F8949EBF0FBE8DBF88E899E00E9438 -:10463000C00581E799E00E94C005C1FB882780F989 -:104640001F928F938EE699E09F938F930E94590655 -:104650008CE699E00E94C0058AE599E00E94C005B9 -:10466000C2FB882780F91F928F9387E599E09F937B -:104670008F930E94590685E599E00E94C00583E466 -:1046800099E00E94C005C3FB882780F91F928F9391 -:1046900080E499E09F938F930E9459068EE399E0FE -:1046A0000E94C00584E399E00E94C005C4FB8827EE -:1046B00080F91F928F9381E399E09F938F930E94DB -:1046C00059068FE299E00E94C0058DE199E00E94B1 -:1046D000C005C5FB882780F91F928F938AE199E076 -:1046E0009F938F930E94590688E199E00E94C0052C -:1046F0008CEF98E00E94C005C6FB882780F91F92C6 -:104700008F9389EF98E09F938F930E94590687EFCC -:1047100098E00E94C0058FEE98E00E94C005C7FB9C -:10472000CC27C0F91F92CF938CEE98E09F938F9384 -:104730000E9459068AEE98E00E94C0058DB79EB788 -:104740004C960FB6F8949EBF0FBE8DBF04C086E393 -:1047500097E00E94C005C1E0C6C08091D601C82F75 -:10476000C095C170C0FB80F98093D601CC2349F07D -:1047700084EA9AE00E94C0058091D6018660886034 -:1047800048C087E99AE00E94C0058091D601897FE0 -:10479000877F8093D601DFCF9091D60191FBCC2704 -:1047A000C0F981E0C827892FC0FB81F98093D60129 -:1047B000CC2319F08AE89AE027C08CE79AE0C9CFA9 -:1047C0009091D60192FBCC27C0F981E0C827892FB0 -:1047D000C0FB82F98093D601CC2319F08DE69AE0D4 -:1047E00013C08DE59AE0B5CF9091D60193FBCC270D -:1047F000C0F981E0C827892FC0FB83F98093D601D7 -:10480000CC2351F081E59AE00E94C0058091D60149 -:1048100081608093D60167C084E49AE09ACF84E0F7 -:1048200096E00E94C0050E9456131F928F938AEE55 -:1048300095E09F938F930E94590680910B011F92E0 -:104840008F9383ED95E09F938F930E9459068091FB -:104850006F011F928F9380EC95E09F938F930E943E -:10486000590680910C011F928F938DEA95E09F93DA -:104870008F930E9459068091D8019091D901A091FF -:10488000DA01B091DB01BF93AF939F938F9389E9D6 -:1048900095E09F938F930E9459068DB79EB74696D9 -:1048A0000FB6F8949EBF0FBE8DBF55CF0E94501813 -:1048B000C0910C0181E0C827C0930C01CC2329F0E2 -:1048C0008AE39AE00E94C0050EC08FE29AE041CFD1 -:1048D000895301C080E00E94D7213DCF8DE29AE04C -:1048E0000E94C005C0E08C2FCF91089580E008950C -:1048F00080E00895CF93C82F8091DC01882319F0C0 -:10490000813049F03EC0E0910D01F0910E018081AF -:104910008232C9F507C0E0910D01F0910E0180814E -:10492000823261F48C2F0E947624811104C08C2F76 -:104930000E94F72124C081E090E021C08C2F0E94CA -:10494000782481111BC0C43189F018F4CB3029F0D0 -:1049500010C0C93259F0C83361F48BE197E00E946E -:10496000C00580E995E00E94C00508C01092DC01F6 -:104970000CC08EE895E00E94C00507C081E0817000 -:1049800006C01092DC0180E002C080E0F8CFCF9139 -:104990000895991B79E004C0991F961708F0961B9B -:1049A000881F7A95C9F780950895EE0FFF1F05902F -:1049B000F491E02D0994F999FECF92BD81BDF89A4A -:1049C000992780B50895A8E1B0E042E050E00C944A -:1049D0000325262FF999FECF92BD81BDF89A019744 -:1049E00000B4021639F01FBA20BD0FB6F894FA9A37 -:1049F000F99A0FBE08950196272F0E94EA240C947D -:104A0000E924DC01CB01FC01F999FECF06C0F2BD1F -:104A1000E1BDF89A319600B40D9241505040B8F77C -:064A20000895F894FFCF99 -:104A2600FFBF0B8E0CC20B5A0C260C0101C30133BF -:104A36001F4F5F6F76666353437969497F03131986 -:104A46000929593940362039C3048D046D043404CC -:084A5600C003D903F2031204AE -:00000001FF diff --git a/keyboards/clueboard1/led.c b/keyboards/clueboard1/led.c deleted file mode 100644 index f0dd5662d..000000000 --- a/keyboards/clueboard1/led.c +++ /dev/null @@ -1,32 +0,0 @@ - /* -Copyright 2012 Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include -#include "stdint.h" -#include "led.h" - - -void led_set_kb(uint8_t usb_led) { - DDRF |= (1<<0); - if (usb_led & (1< -#include "backlight.h" -#include "print.h" - -/* Clueboard 2.0 LED locations: - * - * Capslock: B4, pull high to turn on - * LCtrl: Shared with Capslock, DO NOT INSTALL LED'S IN BOTH - * Page Up: B7, pull high to turn on - * Escape: D6, pull high to turn on - * Arrows: D4, pull high to turn on - */ - -void init_backlight_pin(void) { - print("init_backlight_pin()\n"); - // Set our LED pins as output - DDRD |= (1<<6); // Esc - DDRB |= (1<<7); // Page Up - DDRD |= (1<<4); // Arrows - - // Set our LED pins low - PORTD &= ~(1<<6); // Esc - PORTB &= ~(1<<7); // Page Up - PORTD &= ~(1<<4); // Arrows -} - -void backlight_set(uint8_t level) { - if ( level == 0 ) { - // Turn off light - PORTD |= (1<<6); // Esc - PORTB |= (1<<7); // Page Up - PORTD |= (1<<4); // Arrows - } else { - // Turn on light - PORTD &= ~(1<<6); // Esc - PORTB &= ~(1<<7); // Page Up - PORTD &= ~(1<<4); // Arrows - } -} - diff --git a/keyboards/clueboard2/clueboard2.c b/keyboards/clueboard2/clueboard2.c index 8493c564c..d78ffed9b 100644 --- a/keyboards/clueboard2/clueboard2.c +++ b/keyboards/clueboard2/clueboard2.c @@ -1,40 +1,63 @@ #include "clueboard2.h" -#ifdef BACKLIGHT_ENABLE -#include "backlight.h" -#endif - -__attribute__ ((weak)) -void matrix_init_user(void) { - // leave these blank -}; - -__attribute__ ((weak)) -void matrix_scan_user(void) { - // leave these blank -}; - void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up - if (matrix_init_user) { - (*matrix_init_user)(); - } + matrix_init_user(); led_init_ports(); - #ifdef BACKLIGHT_ENABLE - init_backlight_pin(); - #endif - // JTAG disable for PORT F. write JTD bit twice within four cycles. MCUCR |= (1< +#include "quantum.h" /* Clueboard matrix layout @@ -51,7 +49,4 @@ { k90, KC_NO, k92, k93, k94, k95, k96, k97 } \ } -void matrix_init_user(void); -void matrix_scan_user(void); - #endif diff --git a/keyboards/clueboard2/keymaps/default/compiled.hex b/keyboards/clueboard2/keymaps/default/compiled.hex deleted file mode 100644 index c737eb3c6..000000000 --- a/keyboards/clueboard2/keymaps/default/compiled.hex +++ /dev/null @@ -1,1246 +0,0 @@ -:100000000C94E5050C9429060C9429060C942906F9 -:100010000C9429060C9429060C9429060C942906A4 -:100020000C9429060C9429060C9449110C941B126B -:100030000C94FD1F0C9429060C9429060C94290697 -:100040000C9429060C9429060C9429060C94290674 -:100050000C9429060C9465200C9429060C9429060E -:100060000C9429060C9429060C9429060C94290654 -:100070000C9429060C9429060C9429060C94290644 -:100080000C9429060C9429060C9429060C94290634 -:100090000C9429060C9429060C9429060C94290624 -:1000A0000C9429060C9429060C9429068812AA128D -:1000B0009813AA129813EF121213981367137A1356 -:1000C00099169916C816C81607177218721872185A -:1000D00027177218D717D7173E18471872186C18B9 -:1000E000E417E417E417E417E417E417E417E41738 -:1000F000E417E417E417E417E417E417E417E41728 -:10010000F4170218091810181A18696E69745F62DA -:1001100061636B6C696768745F70696E28290A0097 -:1001200000F000201E001F002000210022002300FC -:1001300024002B0014001A000800150017001C00F2 -:100140001800390004001600070009000A000B001F -:100150000D00E10064001D001B00060019000500F1 -:100160001100E000E300E2008B0000002C002C00F6 -:1001700000002500260027002D002E0035002A0053 -:100180004B000C00120013002F0030003100000063 -:100190004E000E000F003300340032002800000033 -:1001A000000010003600370038008700E5005200DC -:1001B00000008A000000E600E400015250005100F7 -:1001C0004F0035003A003B003C003D003E003F0040 -:1001D00040000100010001000100010001000100D8 -:1001E00001000100010002520100010001000100B4 -:1001F00001000100010001000100010001000100F7 -:1002000001000100010001000100000001000100E7 -:1002100000004100420043004400450001004C0042 -:100220008350460047004800010001000100000023 -:1002300001000100010001000100010001000000B7 -:1002400000000100010001000100010001004B005D -:100250000000010000000100010001524A004E00B0 -:100260004D0001000100010001000100010001003A -:100270000100010001000100010000500100010027 -:100280000100010001000252010001000100010013 -:100290000100010001000100010001000100010056 -:1002A0000100010001000100010000000100010047 -:1002B0000000010001000100010001000100010037 -:1002C0000100010001000100010001000100000027 -:1002D0000100010001000100010001000100000017 -:1002E0000000010001000100010001000100010007 -:1002F00000000100000001000100015201000100A6 -:1003000001000A44454255473A20656E61626C65BA -:10031000642E0A005374617465206F6620726F77D3 -:100320002025583A2025303136620A0048756D6123 -:100330006E2D7265616461626C65206D61747269B5 -:10034000782073746174653A0D0A004465626F75B4 -:100350006E63696E672064656C61792072656D619A -:10036000696E696E673A2025580A005B735D004B21 -:100370006579626F6172642073746172742E0A0011 -:100380005B575D005B535D005B525D005B445D004D -:100390005B435D00420343006C0075006500620032 -:1003A0006F00610072006400200077006900740033 -:1003B00068002000520047004200200055006E00F7 -:1003C0006400650072006C006900670068007400DA -:1003D00069006E0067000000140343006C007500A4 -:1003E000650062006F006100720064000000040399 -:1003F000090409027400040100A0FA0904000001C4 -:1004000003010100092111010001223F00070581BC -:100410000308000A0904010001030000000921117A -:100420000100012236000705820308000A090402C0 -:100430000002030000000921110100012220000731 -:1004400005830320000107050303200001090403BD -:1004500000010300000009211101000122390007F9 -:100460000584031000011201100100000008EDC115 -:10047000202301000102000105010906A101050771 -:1004800019E029E715002501950875018102050885 -:1004900019012905950575019102950175039101D1 -:1004A0000507190029771500250195787501810246 -:1004B000C00631FF0974A1010975150025FF9520BB -:1004C000750881020976150025FF952075089102AF -:1004D000C005010980A101850216010026B7001A96 -:1004E00001002AB700751095018100C0050C0901B3 -:1004F000A1018503160100269C021A01002A9C0214 -:10050000751095018100C005010906A101050719B3 -:10051000E029E7150025019508750181029501750F -:1005200008810105081901290595057501910295B4 -:1005300001750391010507190029FF150025FF9595 -:100540000675088100C00A002530325820006B650E -:1005500079626F6172645F7265706F72743A2000C5 -:100560004B6579626F617264204C454473207374EB -:100570006174653A2025780A0064656C5F6B657963 -:100580005F6269743A2063616E27742064656C3A17 -:1005900020253032580A006164645F6B65795F62C0 -:1005A00069743A2063616E2774206164643A20257F -:1005B0003032580A00646F6E652E0A00626F6F67F2 -:1005C0006D61676963207363616E3A202E2E2E2061 -:1005D000003F00433E20004C25640A0074696D65AD -:1005E000725F636F756E743A202530346C580A0060 -:1005F0006B6579626F6172645F6E6B726F3A202512 -:10060000580A006B6579626F6172645F69646C653A -:100610003A2025580A006B6579626F6172645F70D9 -:10062000726F746F636F6C3A2025580A00686F739D -:10063000745F6B6579626F6172645F6C6564732867 -:10064000293A2025580A000A092D2053746174752F -:1006500073202D0A004743433A20342E392E32208E -:100660004156522D4C4942433A20312E382E3120EA -:100670004156525F415243483A20617672350A0032 -:100680004F5054494F4E533A204C55464120424F0B -:100690004F544D414749432045585452414B4559C9 -:1006A00020434F4E534F4C4520434F4D4D414E44F8 -:1006B000204E4B524F20343039360A004255494CB7 -:1006C000443A20313637313865662D646972747961 -:1006D000202832333A31303A3036204A756E2020A5 -:1006E000392032303136290A005649443A203078D0 -:1006F0004331454428436C7565626F6172642920FB -:100700005049443A2030783233323028436C756592 -:10071000626F617264207769746820524742205585 -:100720006E6465726C69676874696E6729205645E6 -:10073000523A203078303030310A00444553433A41 -:1007400020514D4B206B6579626F61726420666940 -:10075000726D7761726520666F7220436C75656299 -:100760006F6172640A000A092D2056657273696F01 -:100770006E202D0A000A092D20436F6E736F6C6581 -:10078000202D0A4553432F713A09717569740A0087 -:100790000A092D204D61676963202D0A443A0944F6 -:1007A00065627567204D65737361676520546F6777 -:1007B000676C650A583A094D61747269782044651E -:1007C000627567204D6F646520546F67676C6520A4 -:1007D0002D2053686F77206B657970726573736530 -:1007E0007320696E206D6174726978206772696424 -:1007F0000A4B3A094B6579626F6172642044656205 -:10080000756720546F67676C65202D2053686F777C -:10081000206B65797072657373207265706F727486 -:100820000A4D3A094465627567204D6F75736520FE -:10083000546F67676C650A563A0956657273696F3B -:100840006E0A533A095374617475730A433A094145 -:100850006374697661746520436F6E736F6C652095 -:100860004D6F64650A46312D4631303A0953776938 -:1008700074636820746F204C6179657220302D3963 -:100880002028463130203D204C30290A302D393A7D -:100890000953776974636820746F204C61796572BD -:1008A00020302D390A4553433A09537769746368F8 -:1008B00020746F204C6179657220302028616C743F -:1008C00065726E617465206B65792031290A475223 -:1008D0004156453A0953776974636820746F204C18 -:1008E0006179657220302028616C7465726E617464 -:1008F00065206B65792032290A50415553453A09E4 -:100900004A756D7020746F20426F6F746C6F6164F4 -:10091000657220285265736574290A453A09507238 -:10092000696E7420454550524F4D2053657474696B -:100930006E67730A4E3A094E4B524F20546F6767E9 -:100940006C650A000A002575002E6C6576656C3AA8 -:1009500020000A002575002E656E61626C653A20E4 -:10096000000A0025303258006261636B6C69676869 -:10097000745F636F6E6669672E7261773A20000A52 -:10098000002575002E6E6B726F3A20000A002575E7 -:10099000002E737761705F6261636B736C61736863 -:1009A0005F6261636B73706163653A20000A0025C2 -:1009B00075002E737761705F67726176655F65732E -:1009C000633A20000A002575002E6E6F5F67756917 -:1009D0003A20000A002575002E737761705F7261FE -:1009E0006C745F726775693A20000A002575002EE5 -:1009F000737761705F6C616C745F6C6775693A20C6 -:100A0000000A002575002E636170736C6F636B5F65 -:100A1000746F5F636F6E74726F6C3A20000A00250A -:100A200075002E737761705F636F6E74726F6C5FA9 -:100A3000636170736C6F636B3A20000A002530327B -:100A400058006B65796D61705F636F6E6669672EC4 -:100A50007261773A20000A002575002E6D6F75735C -:100A6000653A20000A002575002E6B6579626F617A -:100A700072643A20000A002575002E6D6174726957 -:100A8000783A20000A002575002E656E61626C655B -:100A90003A20000A00253032580064656275675FAD -:100AA000636F6E6669672E7261773A20000A0025CF -:100AB000750064656661756C745F6C617965723A26 -:100AC00020003F004E4B524F3A206F66660A004EA0 -:100AD0004B524F3A206F6E0A000A6D6F7573653A7C -:100AE000206F66660A000A6D6F7573653A206F6E37 -:100AF0000A000A6B6579626F6172643A206F6666FC -:100B00000A000A6B6579626F6172643A206F6E0A3F -:100B1000000A6D61747269783A206F66660A000A8D -:100B20006D61747269783A206F6E0A000A646562BA -:100B300075673A206F66660A000A64656275673AEF -:100B4000206F6E0A000A0A4A756D70696E6720741C -:100B50006F20626F6F746C6F616465722E2E2E2031 -:100B600000433E20006565636F6E6669673A0A0060 -:100B70006261636B6C6967687420737465703A2096 -:100B800025750A006261636B6C6967687420746F15 -:100B900067676C653A2025750A006261636B6C6952 -:100BA0006768742064656372656173653A202575B2 -:100BB0000A006261636B6C6967687420696E6372B6 -:100BC000656173653A2025750A0011241FBECFEFB9 -:100BD000DAE0DEBFCDBF04B603FE24C08091EA0197 -:100BE0009091EB01A091EC01B091ED018730904B19 -:100BF000A740B04BB9F41092EA011092EB011092A9 -:100C0000EC011092ED0114BE84B7877F84BF88E1A8 -:100C10000FB6F89480936000109260000FBEE0E081 -:100C2000F8E3099511E0A0E0B1E0E4E8FDE402C0DA -:100C300005900D92A633B107D9F711E0A6E3B1E014 -:100C400001C01D92AA3EB107E1F70E94830E0C94E9 -:100C5000C0260C940000FF93EF93E0913601F091D1 -:100C60003701309709F00995EF91FF910895FC0144 -:100C70008591803011F0EFDFFBCF0895FF27E0E290 -:100C800030E247FF0CC0419597FF09C0EDE2609547 -:100C9000709580959095611D711D811D911D27FF97 -:100CA00002C0219530E350E2AA27660F771F881F04 -:100CB000991FAA1FA41710F0A41B63955A95A9F7B2 -:100CC000AA3008F0A95FA05DAF93F3956115710597 -:100CD0008105910541F7ED3211F4EF93F395F21789 -:100CE00018F43F93F395FBCF8F91B5DFFA95E1F7B9 -:100CF0000895E991F9918591803021F0853219F0BC -:100D0000AADFF9CF089520E0E89455915532C1F358 -:100D1000503311F4689455915A3348F4505390F37A -:100D2000220F022E220F220F200D250FF4CF0EF4DA -:100D3000219589919991533619F3533729F15335F8 -:100D400059F1BC0188279927E8945C3621F48991F0 -:100D5000999168945591543639F446EF7EF077FFB7 -:100D60000DC08FEF9FEF0AC055374AE039F0583574 -:100D700040E121F0523642E009F00895FF93EF93ED -:100D80007DDFEF91FF91B7CFFF93EF93FC0181914E -:100D90008030B9F360DFFBCFFF93EF9368DFF1CFD3 -:100DA000DF93CF93CDB7DEB72596A3DFCF91DF9149 -:100DB00008958AE091E00E943706569A279A549A3D -:100DC0005E982F985C980895811104C05E9A2F9ABE -:100DD0005C9A08955E982F985C980895249A0895D7 -:100DE00081FF02C02C9A08952C98089508950895C3 -:100DF00086EF96E0892B11F00E94F6060E94EE061F -:100E00000E94D90685B7806885BF85B7806885BF91 -:100E1000089587EF96E0892B11F00C94F70608955A -:100E2000CF93DF93611120C0EC010E94F91E827202 -:100E3000809338019A81992351F0882319F085E332 -:100E400090E002C089E290E00E94511E09C0882310 -:100E500019F085E390E002C089E290E00E94A41EB0 -:100E6000DF91CF910C94431FDF91CF91089581E0E2 -:100E7000089581E008950C94390708950F931F9306 -:100E8000CF93DF938C01FC01C081D181CE010E9400 -:100E9000D21DBE010E94ED07EC01B8010E943B0784 -:100EA000882309F48DC0F8018281882309F44AC09F -:100EB0008091440181111FC0C431F0E5DF0709F0C2 -:100EC00051C00E943D0781E0809344010E942F2081 -:100ED000909343018093420110923B0110923D0197 -:100EE00010923C0110923F0110923E01109241017C -:100EF0001092400165C080914201909143010E948F -:100F00003B20883C910570F480913B01E82FF0E094 -:100F1000EE0FFF1FE45CFE4FD183C0838F5F809391 -:100F20003B014EC0C43880E5D80721F0C538D04514 -:100F300001F13AC0F8018281882341F01092390111 -:100F400082E01EC0C438E0E5DE0759F58091390122 -:100F5000811106C086E20E943D1586E20E940516B8 -:100F600082E01CC0C438F0E5DF0741F3C538D04546 -:100F7000D9F4F8018281882331F010923A0180E29D -:100F80000E9454161DC080913A01811106C087E26B -:100F90000E943D1587E20E94051680E20E945B16C2 -:100FA0000FC0C538D04529F381E080933901809383 -:100FB0003A01C801DF91CF911F910F910C9437072F -:100FC00080E0DF91CF911F910F9108950C94F80666 -:100FD0000C94090780E090E00895E72FF0E09AE094 -:100FE000899FE00DF11D112483E0EE0FFF1F8A950C -:100FF000E1F7E60FF11DEE0FFF1FEE5DFE4F85914D -:1010000094910895880F991FFC01E056F040859156 -:1010100094910895880F991FFC01E05EFE4F859121 -:10102000949108950F931F93CF93DF93EC01811553 -:1010300021E39207A0F5C11580E3D80708F0D7C0D7 -:10104000C83ED105D8F4C03ED10508F007C2C83A61 -:10105000D10578F4C53AD10508F06AC0C130D10590 -:1010600009F463C008F4F7C1C430D10508F0F6C133 -:10107000F2C1CB3BD10508F466C0EDC1C11590E2C9 -:10108000D90708F0AFC0C11521E0D20708F0E6C1CA -:10109000C03FD10508F4DFC18E0110651FC2C03802 -:1010A00080E5D80700F5C03790E5D90708F0A3C060 -:1010B000C11520E5D20709F4ACC050F4CE0190541C -:1010C00080319F4008F0C7C1DF708E01106A06C2F0 -:1010D000C13080E5D80709F4AAC0C43190E5D9072A -:1010E00008F4AFC0B8C1C33820E5D20709F48EC0F8 -:1010F00050F4C13890E5D90709F482C008F083C0E4 -:1011000000E011EDEBC1C03181E5D80708F4A3C1BF -:10111000C11597E5D90708F436C1CE01905781155E -:10112000904108F098C1DF7093C101E010E0D6C192 -:10113000C53AD10509F494C1C63AD10509F093C165 -:1011400002E810E4CBC1C83AD10509F48FC1C93A0D -:10115000D10509F48EC1CA3AD10509F48DC1CB3A43 -:10116000D10509F48CC1CC3AD10509F48BC1CD3A33 -:10117000D10509F48AC1C03BD10509F489C1CE3A31 -:10118000D10509F488C1CF3AD10509F487C1C13B23 -:10119000D10509F486C1C23BD10509F485C1C33B21 -:1011A000D10509F484C1C43BD10509F483C1C53B11 -:1011B000D10509F482C1C63BD10509F481C1C73B01 -:1011C000D10509F480C1C83BD10509F47FC1C93BF1 -:1011D000D10509F47EC1CA3BD10509F47DC100E007 -:1011E00014E47CC1CE019F700E940A0878C1DD27FB -:1011F0008E01106C73C1CF70DD278E01146D6EC12E -:1012000000E010ED6BC100E012ED68C100E013EDED -:1012100065C10E94D9188FEF94E32CE08150904073 -:101220002040E1F700C000000E948A2057C182E000 -:1012300093E00E9437068091D40181608093D401AD -:101240004DC10E943C22811102C00E941D220E94B9 -:10125000592290E09093E9018093E801C23080E543 -:10126000D80721F48091E801816086C0C43090E500 -:10127000D90721F48091E80182607EC0C63020E564 -:10128000D20721F48091E801846076C0C83080E5FF -:10129000D80719F48091E80127C0CA3090E5D90732 -:1012A00021F48091E801806167C0CC3020E5D2074D -:1012B00021F48091E80180625FC0CE3080E5D807DC -:1012C00021F48091E801806457C0C03190E5D907CE -:1012D00021F48091E80180684FC0C23120E5D20737 -:1012E00029F48091E8018460886046C0C33080E5BD -:1012F000D80721F48091E8018E7F3EC0C53090E58B -:10130000D90721F48091E8018D7F36C0C73020E5F0 -:10131000D20721F48091E8018B7F2EC0C93080E58F -:10132000D80719F48091E80126C0CB3090E5D907A1 -:1013300021F48091E8018F7E1FC0CD3020E5D207D7 -:1013400021F48091E8018F7D17C0CF3080E5D80768 -:1013500021F48091E8018F7B0FC0C13190E5D9075E -:1013600021F48091E8018F7707C0C331D04531F473 -:101370008091E8018B7F877F8093E8018091E8016D -:101380000E945D22ABC08D2F99278F7099278130E5 -:101390009105D9F49E012370332702C0880F991F4D -:1013A0002A95E2F79C688E0144E0000F111F4A95D0 -:1013B000E1F700271370802B912B53E0CC0FDD1F3A -:1013C0005A95E1F7C076DD272FC08230910531F4C0 -:1013D000DC2FCC278E01016F106A80C0833091050D -:1013E00069F4CE018370992701E010E002C0000F7C -:1013F000111F8A95E2F7C8019C680FC084309105DF -:10140000B9F4CE018370992701E010E002C0000F0B -:10141000111F8A95E2F7C8019A6823E0CC0FDD1FFF -:101420002A95E1F7C07ED7708C010C2B1D2B56C07E -:101430008530910531F4DC2FCC278E01046F106AC2 -:101440004DC0069709F04AC0CF71DD27DC2FCC27AD -:101450008E01106243C000E010E040C08E013EC02B -:1014600001E810E43BC003E810E438C002EE14E4E5 -:1014700035C009EE14E432C00AEE14E42FC005EBC7 -:1014800014E42CC006EB14E429C007EB14E426C0D6 -:101490000CEC14E423C00DEC14E420C003E815E4C4 -:1014A0001DC00AE815E41AC002E915E417C004E9F2 -:1014B00015E414C001E216E411C003E216E40EC004 -:1014C00004E216E40BC005E216E408C006E216E4E6 -:1014D00005C007E216E402C00AE216E4C801DF9183 -:1014E000CF911F910F910895E72FF0E09AE0899F27 -:1014F000E00DF11D112483E0EE0FFF1F8A95E1F747 -:10150000E60FF11DEE0FFF1FEE5DFE4F85919491EA -:10151000803E9105E0F4803C910558F581339105BA -:1015200009F46FC048F48932910509F463C08A3226 -:10153000910509F46DC072C089339105E9F08238D4 -:101540009105D1F08533910509F44DC067C0833E04 -:10155000910581F138F4803E9105B9F0823E910504 -:10156000D9F05CC0863E910561F1873E9105A1F1FD -:1015700055C00E94020808952091E80120FD02C094 -:1015800021FF4CC080EE90E049C08091E80180FFCF -:10159000F9CF89E390E042C08091E80182FF0EC05C -:1015A0008091E80184FF03C080E090E037C083EEC3 -:1015B00090E034C08091E80182FFF2CF82EE90E0AB -:1015C0002DC08091E80183FF0BC08091E80184FD6C -:1015D000EBCF87EE90E022C08091E80183FFF5CF4A -:1015E00086EE90E01BC08091E80185FF07C089E28C -:1015F00090E014C08091E80185FFF9CF85E390E089 -:101600000DC08091E80186FF07C08AE290E006C025 -:101610008091E80186FFF9CF81E390E00E941208F3 -:1016200008950C94F006E82FF0E0E95EFE4F80810B -:10163000E82FEF70F0E082958F7021E030E0A90193 -:1016400002C0440F551F8A95E2F740A308950F93F7 -:101650001F93CF93DF9385B7806885BF85B7806878 -:1016600085BFC9E0D0E001E010E0FE01E95EFE4F79 -:101670008081E82FEF70F0E021A182958F70A801A2 -:1016800002C0440F551F8A95E2F7CA01822B81A33D -:101690008C2F0E94130B219740F787E090E061E0C8 -:1016A00070E0FC01E15FFE4F2081E22FEF70F0E07F -:1016B00042A122952F70DB0102C0AA0FBB1F2A9501 -:1016C000E2F79D01242B22A3019758F7DF91CF91D8 -:1016D0001F910F910C94E607EF92FF920F931F93C7 -:1016E000CF93DF930FE411E0C9E0EE24E394F12CF3 -:1016F000D5E08C2F0E94130B87E090E040E0FC01C6 -:10170000E15FFE4F5081E52FEF70F0E020A130E067 -:1017100052955F7002C0359527955A95E2F720FDE6 -:1017200007C09701082E01C0220F0A94EAF7422B46 -:10173000019728F7F80182918F01841719F04083EF -:10174000D09300018C2F0E94130BC15090F6809112 -:10175000000187FD32C09091D40190FF10C0282F66 -:10176000332727FD30953F938F938BE493E09F932E -:101770008F930E94D0060F900F900F900F90809142 -:10178000000181508093000187FD07C08FE99FE031 -:101790000197F1F700C0000010C080E090E0FC016C -:1017A000E15BFE4FDC01AB5BBE4F19962C912187AC -:1017B0000197863FEFEF9E0791F70E94E80781E0CF -:1017C000DF91CF911F910F91FF90EF900895E82F37 -:1017D000F0E0E15BFE4F808108950F931F93CF935C -:1017E000DF938091D40180FF04C08CE293E00E94DB -:1017F0003706C0E0D0E004E113E08091D40180FF1F -:1018000015C0FE01E15BFE4F808190E00E94991FB0 -:101810009F938F93DF93CF931F930F930E94D006D4 -:101820000F900F900F900F900F900F902196CA304D -:10183000D10519F7DF91CF911F910F9108950F9363 -:101840001F93CF9309E511E0C0E0F80182918F0169 -:1018500090E00E94771FC80FF1E00F341F07A9F72F -:101860008C2FCF911F910F91089580916C01089555 -:1018700008959FB7F89410925B019FBF9091DF018C -:10188000943009F057C09091E9009F703091EC00BE -:10189000232F217030FD20E8922B23E02093E900D4 -:1018A0002091EB0020FF43C02091EE0027FF3FC0B6 -:1018B00020915901222321F02091E80025FF37C013 -:1018C0001092590126E03091E80035FD15C03091A5 -:1018D000DF01343061F53091EB0035FD28C0215037 -:1018E00021F481E08093590122C0EFE9FFE03197B4 -:1018F000F1F700C00000E7CF8093F1008091E8008D -:1019000085FD0AC08091E80080FFFCCF8091E8004F -:101910008E778093E80006C08FB7F89421E020937B -:101920005B018FBF9F709093E90080E008959F70E6 -:101930009093E9008FEF0895CF93DF9300D01F922B -:10194000CDB7DEB72091DF01243021F523E02983D4 -:101950009B838A8382E08093E9008FEF9091E80077 -:10196000815095FD06C095ED9A95F1F70000811123 -:10197000F5CF8091E80085FF0DC040E050E063E0C6 -:1019800070E0CE0101960E94390F8091E8008E77B9 -:101990008093E8000F900F900F90DF91CF91089502 -:1019A000CF93DF9300D01F92CDB7DEB79C0180911B -:1019B000DF01843019F592E099833B832A83909369 -:1019C000E9008FEF9091E800815095FD06C095EDFC -:1019D0009A95F1F700008111F5CF8091E80085FF1D -:1019E0000DC040E050E063E070E0CE0101960E943F -:1019F000390F8091E8008E778093E8000F900F9068 -:101A00000F90DF91CF910895CF93DF93EC019091E8 -:101A1000DF01943009F046C080910B018823D9F092 -:101A200080910C018823B9F09093E9008FEF909199 -:101A3000E800815095FD06C095E19A95F1F7000008 -:101A40008111F5CF8091E80085FF2CC040E050E087 -:101A500060E170E017C081E08093E9008FEF909122 -:101A6000E800815095FD06C095ED9A95F1F70000CC -:101A70008111F5CF8091E80085FF14C040E050E06F -:101A800068E070E0CE010E94390F8091E8008E7707 -:101A90008093E80080E1FE01ACE5B1E001900D9299 -:101AA0008A95E1F7DF91CF91089580E993E00E9454 -:101AB00037068091DE01811109C00E94CE100E947C -:101AC0002B118091E20084608093E20008958CE8FD -:101AD00093E00E9437061092DE01089588E893E0B3 -:101AE0000C94370684E893E00C94370680E893E082 -:101AF0000E9437060C94F21F20915A012F5F822F0B -:101B000062E30E947826992319F020935A010895E0 -:101B100010925A0180915B01882371F18091DF015D -:101B2000843041F58091E9008F702091EC00922F74 -:101B3000917020FD90E8892B93E09093E9009091BB -:101B4000EB0090FF14C09091EE0097FF10C09091B1 -:101B5000E80095FF03C01092F100F9CF9091E800E2 -:101B600090FF05C09091E8009E779093E8008F70F9 -:101B70008093E90010925B01089542E061EC81E0FE -:101B80000E94481042E061EC82E00E94481042E26C -:101B900061EC83E00E94481042E161EC84E00C9427 -:101BA00048108091E101833009F455C030F4813050 -:101BB00071F0823009F48EC008958A3009F47AC039 -:101BC0008B3009F460C0893009F09CC020C080913E -:101BD000E001813A09F096C08091E800877F809308 -:101BE000E8008091E4019091E501892B21F460E106 -:101BF0008CE591E003C060E080E090E070E00E943E -:101C0000840F8091E8008B778093E800089580919D -:101C1000E001813209F076C08091E4019091E50104 -:101C2000009719F0039709F06DC08091E800877F55 -:101C30008093E8008091E80082FD05C08091DF017B -:101C40008111F8CF5FC08091F10080936C01809189 -:101C5000E8008B7753C08091E001813A09F052C0CF -:101C60008091E4019091E501892B09F04BC08091AE -:101C7000E800877F8093E8008091E80080FFFCCF38 -:101C800080910B0136C08091E0018132D9F58091BD -:101C9000E4019091E501892BA9F58091E800877F07 -:101CA0008093E8000E947D108091E20180930B01F7 -:101CB0000C94D9188091E001813221F58091E800DF -:101CC000877F8093E8000E947D108091E3018093DC -:101CD0006D0108958091E001813AA1F48091E800BE -:101CE000877F8093E8008091E80080FFFCCF80919F -:101CF0006D018093F1008091E8008E778093E80079 -:101D00000C947D10089584B7877F84BF88E10FB657 -:101D1000F89480936000109260000FBE90E080E81D -:101D20000FB6F89480936100909361000FBE0E94FB -:101D300052140E94CE100E942B118091E200846008 -:101D40008093E20089E39CE00E94721F78940E94D5 -:101D5000B0130E94541481E091E00E94CB138FE6EF -:101D600093E00E9437068091DF01853089F48BE68D -:101D700093E00E9437060E94B31F8091DD01882303 -:101D800091F30E94E11F882371F30E94230FEBCF90 -:101D90000E947A14E8CF292F332723303105C9F068 -:101DA00064F42130310581F02230310509F043C05F -:101DB00084E790E022EF33E042C021323105F1F0B8 -:101DC0002232310541F137C082E190E026E634E06D -:101DD00036C099278130910541F08230910541F05C -:101DE000892B49F5EEEEF3E005C0E8EDF3E002C023 -:101DF000E4E9F3E0849190E09F0121C06430D8F4DD -:101E0000E62FF0E0EE0FFF1FE35DFE4F20813181F2 -:101E100089E090E014C0643070F470E0FB01EE0FD4 -:101E2000FF1FEB5DFE4F20813181FB01EF5DFE4F17 -:101E3000808190E004C080E090E020E030E0FA0192 -:101E400031832083089580E189BD82E189BD09B491 -:101E500000FEFDCF8091D8008F7D8093D8008091C7 -:101E6000E00082608093E0008091E00081FDFCCF83 -:101E70000895CF92DF92EF92FF920F931F93CF932B -:101E8000DF93EC018B016A010E949C10811133C029 -:101E9000C114D10439F0F60180819181081B190B1E -:101EA000C80FD91FE12CF12C0115110519F18091F2 -:101EB000E80085FD16C08091E8008E778093E800E9 -:101EC000C114D10449F0F60180819181E80EF91E18 -:101ED000F182E08285E00FC00E949C10882321F3EC -:101EE0000AC089918093F10001501109FFEFEF1AA8 -:101EF000FF0ADACF80E0DF91CF911F910F91FF9021 -:101F0000EF90DF90CF9008952091E6013091E701A6 -:101F10002617370748F06115710539F42091E8005C -:101F20002E772093E80001C0B90140E061157105EA -:101F3000A9F12091DF01222309F443C0253009F4DF -:101F400042C02091E80023FD40C02091E80022FD1E -:101F500032C02091E80020FFE9CF4091F3002091AA -:101F6000F20030E0342BFC01CF016115710559F00E -:101F70002830310540F481918093F100615071095E -:101F80002F5F3F4FF1CF41E02830310509F040E0AD -:101F90002091E8002E772093E800C8CF4111C9CFE7 -:101FA0000AC08091DF01882361F0853061F0809163 -:101FB000E80083FD0AC08091E80082FFF2CF80E054 -:101FC000089582E0089583E0089581E008952091C6 -:101FD000E6013091E7012617370748F061157105D2 -:101FE00039F42091E8002E772093E80001C0B90170 -:101FF000FC0120E06115710591F18091DF018823DA -:1020000009F440C0853009F43FC08091E80083FDA9 -:102010003DC08091E80082FD2FC08091E80080FFE4 -:10202000E9CF2091F3008091F20090E0922B6115AE -:10203000710559F08830910540F424912093F10006 -:102040003196615071090196F2CF21E0089709F0AD -:1020500020E08091E8008E778093E800CBCF2111BB -:10206000CCCF0AC08091DF01882361F0853061F018 -:102070008091E80083FD0AC08091E80082FFF2CFE2 -:1020800080E0089582E0089583E0089581E0089556 -:10209000982F973058F59093E900981739F0709180 -:1020A000EC002091ED005091F00003C0242F762F1A -:1020B00050E021FF19C03091EB003E7F3093EB00E0 -:1020C0003091ED003D7F3093ED003091EB003160B9 -:1020D0003093EB007093EC002093ED005093F000F0 -:1020E0002091EE0027FF07C09F5FD3CF8F708093B2 -:1020F000E90081E0089580E008958091E00187FF84 -:1021000011C08091E80082FD05C08091DF0181113E -:10211000F8CF11C08091E8008B770BC08091DF0170 -:10212000882349F08091E80080FFF8CF8091E80093 -:102130008E778093E80008952091E4003091E500C7 -:1021400095E64091EC00842F817040FF22C0809181 -:10215000E80080FD1CC08091DF01882391F085306C -:1021600091F08091EB0085FD10C04091E40050910A -:10217000E5004217530729F39A01915011F784E0C3 -:10218000089582E0089583E0089581E0089580E055 -:1021900008954091E80042FFDECF08950E943C116F -:1021A0000E944411E0EEF0E0808181608083E8EDE0 -:1021B000F0E080818F77808319BCA7EDB0E08C912F -:1021C0008E7F8C9380818F7E80831092DE010895B4 -:1021D0000F931F93CF93DF930E943C110E944411F1 -:1021E000C8EDD0E088818F77888388818068888374 -:1021F00088818F7D888319BC1092DF011092DB01EA -:102200001092DD011092DC0100EE10E0F8018081F7 -:102210008B7F808388818160888342E060E080E0FA -:102220000E944810E1EEF0E080818E7F8083E2EE34 -:10223000F0E0808181608083808188608083F80104 -:1022400080818E7F8083888180618883DF91CF91B8 -:102250001F910F910895E8EDF0E080818F7E8083DB -:10226000E7EDF0E080818160808384E082BF81E0DF -:102270008093DE010C94E810E8EDF0E080818E7F21 -:1022800080831092E20008951092DA001092E1002B -:1022900008951F920F920FB60F9211242F933F9320 -:1022A0004F935F936F937F938F939F93AF93BF935E -:1022B000EF93FF938091E10082FF0BC08091E200D9 -:1022C00082FF07C08091E1008B7F8093E1000E9434 -:1022D0007C0D8091DA0080FF1FC08091D80080FFC4 -:1022E0001BC08091DA008E7F8093DA008091D90044 -:1022F00080FF0DC080E189BD82E189BD09B400FE87 -:10230000FDCF81E08093DF010E94550D05C019BC0F -:102310001092DF010E94670D8091E10080FF19C0DB -:102320008091E20080FF15C08091E2008E7F809353 -:10233000E2008091E20080618093E2008091D80009 -:1023400080628093D80019BC85E08093DF010E94F1 -:10235000720D8091E10084FF30C08091E20084FF23 -:102360002CC080E189BD82E189BD09B400FEFDCFAA -:102370008091D8008F7D8093D8008091E1008F7E7E -:102380008093E1008091E2008F7E8093E200809153 -:10239000E20081608093E2008091DB01882311F0EC -:1023A00084E007C08091E30087FD02C081E001C0A6 -:1023B00083E08093DF010E94760D8091E10083FF2E -:1023C00029C08091E20083FF25C08091E100877FD2 -:1023D0008093E10082E08093DF011092DB01809125 -:1023E000E1008E7F8093E1008091E2008E7F8093F8 -:1023F000E2008091E20080618093E20042E060E0D0 -:1024000080E00E9448108091F00088608093F00086 -:102410000E946E0DFF91EF91BF91AF919F918F91AF -:102420007F916F915F914F913F912F910F900FBED0 -:102430000F901F9018951F920F920FB60F921124B4 -:102440002F933F934F935F936F937F938F939F93BC -:10245000AF93BF93CF93DF93EF93FF93C091E900C6 -:10246000CF708091EC00D82FD17080FDD0E8109211 -:10247000E9008091F000877F8093F00078940E94BB -:102480005F121092E9008091F00088608093F00064 -:10249000CD2BCF70C093E900FF91EF91DF91CF91E9 -:1024A000BF91AF919F918F917F916F915F914F916C -:1024B0003F912F910F900FBE0F901F9018951F9373 -:1024C000CF93DF93CDB7DEB7AA970FB6F894DEBFF0 -:1024D0000FBECDBFE0EEF1E088E08E0F9091F100ED -:1024E00091938E13FBCF0E94D10D8091E80083FF62 -:1024F0001FC18091E0019091E101492F50E04A30E5 -:10250000510508F015C1FA01EA5AFF4F0C948426D0 -:10251000803881F0823809F00BC18091E4018F701E -:102520008093E9008091EB0085FB882780F9109269 -:10253000E90006C08091DC019091DD01911182607B -:102540009091E800977F9093E8008093F1001092BB -:10255000F100C8C0282F2D7F09F0EAC0882319F0A8 -:10256000823061F0E5C08091E201813009F0E0C085 -:10257000933009F080E08093DD012BC08091E2016F -:10258000811127C08091E4018F7009F4D1C080933C -:10259000E9002091EB0020FF1CC0933021F48091D2 -:1025A000EB00806214C09091EB0090619093EB007F -:1025B00021E030E0A90102C0440F551F8A95E2F7DF -:1025C0004093EA001092EA008091EB0088608093CB -:1025D000EB001092E9008091E800877F86C08111AE -:1025E000A7C01091E2011F778091E3008078812BD2 -:1025F0008093E3008091E800877F8093E8000E9449 -:102600007D108091E80080FFFCCF8091E30080681E -:102610008093E300111102C082E001C083E0809347 -:10262000DF0186C08058823008F082C08091E201CC -:102630009091E3018C3D53E0950779F583E08A831F -:102640008AE289834FB7F894DE01139620E03EE0DA -:1026500051E2E32FF0E050935700E49120FF03C0D4 -:10266000E295EF703F5FEF708E2F90E0EA3010F050 -:10267000C79601C0C0968D939D932F5F243149F773 -:102680004FBF8091E800877F8093E8006AE270E0A6 -:10269000CE0101960E94840F14C0AE014F5F5F4FC0 -:1026A0006091E4010E94CB0EBC01009709F440C088 -:1026B0009091E800977F9093E80089819A810E9429 -:1026C000E70F8091E8008B778093E80031C0803875 -:1026D00079F58091E800877F8093E8008091DB01A5 -:1026E0008093F1008091E8008E778093E8000E944B -:1026F0007D101EC081111CC09091E2019230C0F487 -:102700008091E800877F8093E8009093DB010E942E -:102710007D108091DB01811106C08091E30087FD6F -:1027200002C081E001C084E08093DF010E94BD0D02 -:102730008091E80083FF0AC08091E800877F809342 -:10274000E8008091EB0080628093EB00AA960FB6C0 -:10275000F894DEBF0FBECDBFDF91CF911F910895DA -:10276000CF938091DF018823A1F0C091E900CF7061 -:102770009091EC00892F817090FD80E8C82B109219 -:10278000E9008091E80083FD0E945F12CF70C09342 -:10279000E900CF9108959093730180937201089599 -:1027A000E0917201F0917301309721F00190F08176 -:1027B000E02D099480E00895EF92FF920F931F930C -:1027C000CF93DF93E0917201F09173013097B1F1F3 -:1027D0008C010280F381E02D09958091D40182FF64 -:1027E0002DC080FF04C08EE495E00E943706E8010A -:1027F00010E188E4E82E85E0F82E8091D40180FF76 -:102800000BC088811F928F93FF92EF920E94D00697 -:102810000F900F900F900F90115021961111EDCF46 -:102820008091D40180FF0AC086E495E0DF91CF91CA -:102830001F910F91FF90EF900C943706DF91CF918D -:102840001F910F91FF90EF900895209170013091AA -:1028500071018217930771F0909371018093700159 -:10286000E0917201F0917301309721F00680F781B9 -:10287000E02D0994089520916E0130916F01821727 -:10288000930771F090936F0180936E01E091720154 -:10289000F0917301309721F00084F185E02D0994C7 -:1028A000089508950C9451140E9426200E94270B2D -:1028B0000E94E8200C949B25CF93DF931F92CDB705 -:1028C000DEB79091D40192FF10C090FF0EC01F920E -:1028D0008F9320E635E03F932F9389830E94D006A3 -:1028E0000F900F900F900F9089810F90DF91CF91F3 -:1028F0000C94110B9F92AF92BF92CF92DF92EF9206 -:10290000FF920F931F93CF93DF9300D000D000D09E -:10291000CDB7DEB70E946C0B09E010E0AA24A394A7 -:10292000B12C902E802F0E94E70B98012B583E4F20 -:102930006901F901F080F826A1F40150110988F726 -:102940008FEF89838A831B820E942F208160782FDA -:102950009D838C8349815A816B818D810E940F15E3 -:102960002FC09091D40191FF04C08E830E94ED0B83 -:102970008E8127E030E0A501022E01C0440F0A94A9 -:10298000EAF7E42E4F21C1F029839A828E2191E04B -:1029900009F490E09B830E942F208160782F9D8313 -:1029A0008C8349815A816B818D810E940F15F601BC -:1029B0008081E826E08204C021503109E0F6BDCFD5 -:1029C000109174010E94D0131817B9F00E94D0130F -:1029D0008093740126960FB6F894DEBF0FBECDBF6C -:1029E000DF91CF911F910F91FF90EF90DF90CF90EB -:1029F000BF90AF909F900C945C1426960FB6F894FD -:102A0000DEBF0FBECDBFDF91CF911F910F91FF9021 -:102A1000EF90DF90CF90BF90AF909F900895CF93AD -:102A2000DF93CDB7DEB72B970FB6F894DEBF0FBE9E -:102A3000CDBF4F83588769877A878B87DE011196D0 -:102A400086E0FD0111928A95E9F785E0FE0137964F -:102A500001900D928A95E1F749815A816B817C81C1 -:102A60008D819E810E94771B2B960FB6F894DEBF56 -:102A70000FBECDBFDF91CF910895CF93882309F486 -:102A8000C2C0C82F823859F40E94D01381FDBBC048 -:102A900089E30E94511E0E94431F89E30CC08338C2 -:102AA00079F40E94D01380FDAEC083E50E94511ED0 -:102AB0000E94431F83E50E94A41ECF910C94431FE4 -:102AC000843859F40E94D01382FD9DC087E40E948F -:102AD000511E0E94431F87E4EECF8CEF8C0F813A8A -:102AE00048F48C2F0E944C2581118DC08C2F0E94A0 -:102AF000511EE3CF80E28C0F883048F4C77081E02C -:102B000001C0880FCA95EAF70E94FC1ED6CF8BE55C -:102B10008C0F833078F4C53A29F0C63A31F083E857 -:102B200090E005C081E890E002C082E890E0CF919B -:102B30000C94251488E58C0F833108F064C0C83AE2 -:102B400039F1C93A41F1CA3A49F1CB3A51F1CC3A9B -:102B500059F1CD3A61F1C03B69F1CE3A71F1CF3A0A -:102B600079F1C13B81F1C23B89F1C33B91F1C43B97 -:102B700099F1C53BA1F1C63BA9F1C73BB1F1C83BF7 -:102B8000B9F1C93BC1F1CA3BC9F180E090E038C05E -:102B900082EE90E035C089EE90E032C08AEE90E09F -:102BA0002FC085EB90E02CC086EB90E029C087EB2E -:102BB00090E026C08CEC90E023C08DEC90E020C02B -:102BC00083E891E01DC08AE891E01AC082E991E0B3 -:102BD00017C084E991E014C081E292E011C083E261 -:102BE00092E00EC084E292E00BC085E292E008C061 -:102BF00086E292E005C087E292E002C08AE292E0BB -:102C0000CF910C943B14CF910895882309F44BC0C5 -:102C1000823859F40E94D01381FF45C089E30E9495 -:102C2000511E0E94431F89E30CC0833871F40E9437 -:102C3000D01380FF38C083E50E94511E0E94431FBD -:102C400083E50E94A41E0C94431F843859F40E940B -:102C5000D01382FF28C087E40E94511E0E94431FA8 -:102C600087E4EFCF9CEF980F913A58F390E2980FDA -:102C7000983050F4877091E001C0990F8A95EAF777 -:102C8000892F0E94021FDFCF9BE5980F933020F41D -:102C900080E090E00C942514885A833120F480E081 -:102CA00090E00C943B140895882321F00E94FC1EB0 -:102CB0000C94431F0895882321F00E94021F0C9456 -:102CC000431F08957F928F929F92AF92BF92CF92AF -:102CD000DF92EF92FF920F931F93CF93DF931F9298 -:102CE000CDB7DEB77C01C62E772EFC01058102959B -:102CF0000F70128111110E94191F0E944A1E882311 -:102D000079F0112369F080E28C0D883048F082E080 -:102D10000E94331E0E944A1E91E0D82ED92601C07F -:102D2000D12CE72DE295EF70F0E0E05AFF4F0C94C4 -:102D30008426872D807F072D0F70882311F0029540 -:102D4000007F112389F0002309F48EC180E28C0DED -:102D5000883020F4802F0E94FC1E03C0802F0E9428 -:102D60000C1F0E94431F80C18C2D0E94051600235A -:102D700009F4B8C180E28C0D883020F4802F0E94C5 -:102D8000021F03C0802F0E94121F0E94431FAAC16E -:102D9000872D807F972D9F70803211F4892F03C07B -:102DA000892F8295807FCC2021F0F1E0CF16A1F011 -:102DB0001DC0112339F0002319F1013009F50E94DB -:102DC0002C1F90C1002319F0013009F48BC18983B5 -:102DD0000E942F1F898105C1112321F0063008F0C0 -:102DE00081C10EC0053008F07DC1FBC0112359F030 -:102DF000002331F0F701958190FF36C19F709583D4 -:102E00000E9454166FC1002309F4EBC033C1872D13 -:102E100086958695837090E0009719F0019761F090 -:102E200061C1112321F08C2D972D937002C080E099 -:102E300090E00E94251456C1112321F08C2D972D6E -:102E4000937002C080E090E00E943B144BC1872D3C -:102E5000837009F052C0111145C18C2D8295869561 -:102E60008770880F880F9C2D9F70892E912CA12C24 -:102E7000B12C082E04C0880C991CAA1CBB1C0A94F7 -:102E8000D2F7C4FE14C00FE010E020E030E0B9013A -:102E9000A80104C0440F551F661F771F8A95D2F7FB -:102EA000CB01BA01609570958095909503C060E064 -:102EB00070E0CB01272D26952695237030E0223037 -:102EC000310569F02330310589F0682979298A298B -:102ED0009B292130310571F00E94BF1C03C1682974 -:102EE00079298A299B290E94DB1CFCC00E94BF1CF7 -:102EF000C501B4010E94A31CF5C0112319F0872D50 -:102F0000817001C08695882309F4ECC08C2D8295D0 -:102F100086958770880F880F9C2D9F70892E912C25 -:102F2000A12CB12C082E04C0880C991CAA1CBB1C17 -:102F30000A94D2F7C4FE14C00FE010E020E030E0A5 -:102F4000B901A80104C0440F551F661F771F8A9559 -:102F5000D2F7CB01BA01609570958095909503C02A -:102F600060E070E0CB01272D269526952370422F37 -:102F700050E04230510569F04330510589F068292D -:102F800079298A299B294130510571F00E94991DA8 -:102F9000A9C0682979298A299B290E94B51DA2C048 -:102FA0000E94991DC501B4010E947D1D9BC08C2DFE -:102FB00090E0FC01E05EF109E531F10508F050C058 -:102FC000E059FF4F0C9484260C2D0F70872D8F71C4 -:102FD000112321F00E94161D802F12CF0E94371D51 -:102FE000802F0E945B167EC0112341F0053008F04F -:102FF00079C0872D8F710E945C1D74C0063008F067 -:1030000071C0F7CF112339F0872D8F710E94161DE3 -:1030100069C01123C9F3872D8F710E94371D62C0CB -:10302000112329F0872D8F710E94011D5BC00E9422 -:10303000F71C58C0112351F0172D1F71812F0E94CA -:10304000161D63E0812F0E942A1E4CC081E00E9461 -:10305000331E023008F446C082E00E94331E42C094 -:10306000112331F0002381F28C2D0E943D153AC0CE -:10307000002389F28C2D0E94051634C0472D4F7015 -:103080006C2DC7010E94EA070E941B1C2BC0111166 -:1030900029C0472D4F7050E042305105B9F04CF433 -:1030A0004115510581F041305105E1F40E94D025D0 -:1030B00019C04330510569F04430510599F48C2D05 -:1030C0000E945B260FC00E94AC250CC00E94FF2509 -:1030D00009C00E94252606C0472D4F706C2DC701E0 -:1030E0000E941007DD20F9F00E94261E80FD1BC003 -:1030F000F70112820E94201E0E94161DC7010E9425 -:10310000A2180E94201E0F90DF91CF911F910F9166 -:10311000FF90EF90DF90CF90BF90AF909F908F90F7 -:103120007F900C94371D0F90DF91CF911F910F91DD -:10313000FF90EF90DF90CF90BF90AF909F908F90D7 -:103140007F9008950F931F93CF93DF93EC018881B5 -:1031500099812B813C81232BB9F09F3F11F48F3F44 -:1031600099F0CE010E943E07882371F06881798131 -:103170008A810E941C1E8C010E94D11D0E94981CF5 -:10318000B801CE010E946216DF91CF911F910F917D -:1031900008950E94191F0E94291F0E94EB1E0E9481 -:1031A000431F80E090E00E94251480E090E00C94A2 -:1031B0003B140E94091F0C94C9180E94111E292F4C -:1031C00022952F7030E02C3031054CF42A30310537 -:1031D0006CF42250310922303105A8F407C02C309C -:1031E000310569F02F30310551F00DC0803F69F095 -:1031F00018F4803E40F409C0843F29F406C093FBD4 -:10320000882780F9089580E0089581E00895CF939C -:10321000DF9300D000D01F92CDB7DEB70F900F9094 -:103220000F900F900F90DF91CF910895CF93DF9380 -:1032300000D000D000D0CDB7DEB726960FB6F894F8 -:10324000DEBF0FBECDBFDF91CF9108951F93CF9307 -:10325000DF93C0917F0116E080918001C81799F03B -:10326000D0E01C9FF0011D9FF00D1124EF57FE4F81 -:103270004081518162817381848195810E941619F8 -:103280002196C770E9CFDF91CF911F9108954091AA -:10329000B1015091B2016091B3017091B40180917C -:1032A000B5019091B6010C9416198091B6018295E2 -:1032B0008F7009F054C08091B301882309F44FC086 -:1032C00080917F01A09180016091B1017091B20164 -:1032D0004091B4015091B501B6E08A1709F43FC09E -:1032E00090E041155105C1F17F3F11F46F3FA1F10D -:1032F000B89FF001B99FF00D1124EF57FE4F2181C7 -:1033000072132AC02081621327C02281211124C098 -:10331000238134812417350710F421503109241BEF -:10332000350B283C3105C0F42091B6012F70206187 -:103330002093B60126E0289FF001299FF00D11246B -:10334000EA57FE4F80818F708061808381EB91E02E -:103350000E94A2180C94261901968770BECF08957A -:10336000CF92DF92EF92FF920F931F93CF93DF9351 -:10337000CDB7DEB762970FB6F894DEBF0FBECDBFF4 -:103380008C0185E0F801DE011D9601900D928A9571 -:10339000E1F7D8014C9111965C91119712966C91BE -:1033A00012971396CD90DC9014973091B1017091E3 -:1033B000B2018091B4019091B501009709F46BC1FD -:1033C0007F3F19F43F3F09F466C1E090B301EE205E -:1033D00009F4C0C02091B601C816D90628F0F6013C -:1033E000E81BF90BCF0104C0809590958C0D9D1DB5 -:1033F000FF24F394883C910578F0F12C207F09F0AC -:10340000C6C07C2DD98AC88A89890E94071981EB98 -:1034100091E00E94A218B1C0822F807F09F046C0BF -:10342000751314C0341312C0611110C02F702061C5 -:103430002093B6010E94471981EB91E00E94A218E7 -:103440008091B601D80115968C932EC0CD2819F124 -:103450005F3F11F44F3FF9F0F62E61111CC08091CF -:103460007F012091800136E0821709F45AC090E074 -:10347000389FF001399FF00D1124EF57FE4F7181F5 -:10348000571306C07081471303C07281711103C0C6 -:1034900001968770E9CFF62E662309F418C1809152 -:1034A000B60181608093B601F12C11C1751308C07B -:1034B000341306C0611104C08091B601D801C3C0A5 -:1034C0004D875E878D859E856A8B0E94DD186A898F -:1034D0008823E1F16623D1F12091B601822F8295F4 -:1034E0008F7090E0029774F08091B1019091B201D9 -:1034F00098878F831986DB86CA862C87CE0107962C -:103500000E94A21886E0F801A1EBB1E001900D92B3 -:103510008A95E1F70E9455190E944719FF24F394F8 -:10352000D6C04D875E878D859E850E94111E292FEE -:1035300022952F7030E0223031050CF0BCC09F7016 -:1035400009F0B6C0805E883008F4C1C0C8010E948E -:10355000A218E4CFC816D90608F453C0F601E81B38 -:10356000F90BCF01883C910508F450C0F12C7C2D5B -:10357000D98AC88A89890E940719E1EBF1E086E0BF -:10358000DF011D928A95E9F70E944719A0C07513C3 -:1035900014C0341312C0611110C08091B601F8013B -:1035A0008583C8010E94A21886E0E1EBF1E0DF010B -:1035B0001D928A95E9F7FE2C8AC04D875E878D851E -:1035C0009E856A8B0E94DD186A89882309F4BECF24 -:1035D000662309F4BBCF2091B601822F82958F70AC -:1035E00090E002970CF48ECF8091B1019091B201DE -:1035F0009A8389831B82DD82CC822E83CE01019641 -:103600007FCF809590958C0D9D1DACCFF62E6623B7 -:1036100009F49CCF75132EC034132CC02091B60131 -:1036200020FD1FC0822F82958F70D9F0D80115968A -:103630002C9315978F3049F08F5F982F9295907F3C -:10364000822F8F70892B15968C93C8010E94A21827 -:1036500086E0F801A1EBB1E001900D928A95E1F7C7 -:1036600093CF86E0F801A1EBB1E001900D928A952D -:10367000E1F72DC04D875E878D859E850E94DD1800 -:10368000811140CF8091B60181608093B601C8015D -:103690000E94A2181CC0662309F458CF4D875E878C -:1036A0008D859E850E94DD18882309F44FCF2ACF8F -:1036B000811148CF0CC0243031050CF047CF9F70EA -:1036C00009F440CFF8019581907F09F03BCF8F2D11 -:1036D00062960FB6F894DEBF0FBECDBFDF91CF91DB -:1036E0001F910F91FF90EF90DF90CF9008951F935F -:1036F000CF93DF93CDB7DEB72C970FB6F894DEBF2C -:103700000FBECDBF4F83588769877A878B879C8789 -:10371000CE0107960E94B019882369F08F819885A1 -:103720002A853B85232BF1F19F3F09F063C08F3F32 -:1037300009F060C037C086E0FE013796DE011196C1 -:1037400001900D928A95E1F76F817885EA85FB8576 -:10375000309741F17F3F11F46F3F21F120918001BB -:1037600030E0C90101968770992740917F0150E0B0 -:103770008417950709F447C069837A83FD83EC8336 -:1037800096E0929FD001939FB00D1124AF57BE4F8A -:10379000FE01319601900D929A95E1F78093800198 -:1037A0000E94261916E080917F019091800189176F -:1037B000C1F1189FC00111248F579E4F0E94B0196C -:1037C000882379F1E0917F011E9FF0011124EF57CA -:1037D000FE4F4081518162817381848195810E9475 -:1037E000161980917F0190E0019687709927809348 -:1037F0007F01D9CF4F81588569857A858B859C85D6 -:103800000E941619CFCF0E94D918109280011092F1 -:103810007F01E1EBF1E086E0DF011D928A95E9F797 -:10382000C1CF2C960FB6F894DEBF0FBECDBFDF918F -:10383000CF911F910895EF92FF920F931F93CF9313 -:10384000DF938C01009709F46CC0F12CEE24E39413 -:10385000E8012196F8018491843740F4843008F01F -:1038600051C0813081F0823019F15BC0853709F495 -:1038700044C0A8F19CE7980F903708F052C08F77AA -:103880000E94051641C00E5F1F4FFE01C49180E2E9 -:103890008C0F883048F4C7708E2D01C0880FCA95F0 -:1038A000EAF70E941C1F14C08C2F0E943D152DC0EA -:1038B0000E5F1F4FFE01C49180E28C0F883058F4D8 -:1038C000C7708E2D01C0880FCA95EAF70E94221F8B -:1038D0000E94431F1AC08C2F0E94051616C00E5F4F -:1038E0001F4FFE01C491CC2381F08FE99FE0019727 -:1038F000F1F700C00000C150F6CF0E5F1F4FFE0170 -:10390000F49003C00E943D158E018F2D882309F489 -:103910009FCFEFE9FFE03197F1F700C00000815041 -:10392000F5CFDF91CF911F910F91FF90EF90089508 -:1039300008956093BB017093BC018093BD01909387 -:10394000BE010C94C9180F931F930091BB011091F5 -:10395000BC012091BD013091BE01DC01CB01802B67 -:10396000912BA22BB32B8093BB019093BC01A0930E -:10397000BD01B093BE011F910F910C94C9180F9314 -:103980001F930091BB011091BC012091BD013091AA -:10399000BE01DC01CB0180239123A223B3238093BA -:1039A000BB019093BC01A093BD01B093BE011F91D8 -:1039B0000F910C94C9180F931F930091BB011091A4 -:1039C000BC012091BD013091BE01DC01CB018027FB -:1039D0009127A227B3278093BB019093BC01A093AA -:1039E000BD01B093BE011F910F910C94C9181092A4 -:1039F000B7011092B8011092B9011092BA010C945B -:103A0000C91841E050E060E070E004C0440F551F69 -:103A1000661F771F8A95D2F74093B7015093B8017C -:103A20006093B9017093BA010C94C91841E050E059 -:103A300060E070E004C0440F551F661F771F8A9531 -:103A4000D2F78091B7019091B801A091B901B091DE -:103A5000BA01482B592B6A2B7B2B4093B70150930B -:103A6000B8016093B9017093BA010C94C91841E090 -:103A700050E060E070E004C0440F551F661F771FE0 -:103A80008A95D2F740955095609570958091B701D1 -:103A90009091B801A091B901B091BA01482359237E -:103AA0006A237B234093B7015093B8016093B90117 -:103AB0007093BA010C94C91841E050E060E070E0E6 -:103AC00004C0440F551F661F771F8A95D2F7809157 -:103AD000B7019091B801A091B901B091BA014827FE -:103AE00059276A277B274093B7015093B801609309 -:103AF000B9017093BA010C94C9180F931F930091E8 -:103B0000B7011091B8012091B9013091BA01DC01DF -:103B1000CB01802B912BA22BB32B8093B7019093D9 -:103B2000B801A093B901B093BA011F910F910C9401 -:103B3000C9180F931F930091B7011091B8012091FC -:103B4000B9013091BA01DC01CB0180239123A2237A -:103B5000B3238093B7019093B801A093B901B093B8 -:103B6000BA011F910F910C94C9180F931F930091E4 -:103B7000B7011091B8012091B9013091BA01DC016F -:103B8000CB0180279127A227B3278093B701909379 -:103B9000B801A093B901B093BA011F910F910C9491 -:103BA000C9180895CF92DF92EF92FF920F931F935F -:103BB000CF93DF938C01C090BB01D090BC01E0900B -:103BC000BD01F090BE018091B7019091B801A09124 -:103BD000B901B091BA01C82AD92AEA2AFB2ACFE151 -:103BE000D0E0D701C6010C2E04C0B695A7959795D5 -:103BF00087950A94D2F780FF06C0B8018C2F0E94E7 -:103C0000740A019721F4219760F780E001C08C2F9E -:103C1000DF91CF911F910F91FF90EF90DF90CF90A8 -:103C20000895CF93DF93EC010E94D21DBE010E9444 -:103C3000740ADF91CF910895CB010E94111E08955F -:103C40008091BF0185958595859508958091BF01E7 -:103C50008770089598E0899F90011124262B209366 -:103C6000BF010C94161D2091BF0180958223809383 -:103C7000BF01982F977069F430E0482F552747FD12 -:103C800050952417350729F08595859585950C94D1 -:103C9000371D08959091BF01977081E009F480E08D -:103CA000089590910B01992321F090910C019111AD -:103CB00009C020910D0130910E01F90132969FEF5C -:103CC00040E030C0982F9695969596959F30A0F439 -:103CD000E0910D01F0910E01E90FF11D877021E0D7 -:103CE00030E0A90102C0440F551F8A95E2F7CA01CE -:103CF0009181892B818308959091D40190FF23C0F5 -:103D00001F928F9387E995E09F938F930E94D0062F -:103D10000F900F900F900F9008959F3F39F04F5FD5 -:103D20004E3041F051915813F8CF0DC05111F7CFDB -:103D3000942FF5CF9F3F39F0F901E90FF11D97FD61 -:103D4000FA9582830895089590910B01992321F0AB -:103D500090910C01911109C020910D0130910E013B -:103D6000F9013296205F3F4F30C0982F9695969577 -:103D700096959F30A8F4E0910D01F0910E01E90FA6 -:103D8000F11D877021E030E0A90102C0440F551FEA -:103D90008A95E2F7CA0180959181892381830895EC -:103DA0009091D40190FF16C01F928F9389E795E000 -:103DB0009F938F930E94D0060F900F900F900F90BB -:103DC00008953196E217F30729F090819813F9CFFF -:103DD0001082F7CF089581E090E0E0910D01F0911D -:103DE0000E01E80FF91F1082019680319105A9F7A5 -:103DF00008958091D30108959091D301892B8093E8 -:103E0000D301089580959091D30189238093D301A4 -:103E100008951092D30108959091D201892B809337 -:103E2000D201089580959091D20189238093D20187 -:103E300008951092D20108959091D101892B809319 -:103E4000D101089580959091D10189238093D1016A -:103E500008951092D10108958093C00108951092A1 -:103E6000C001089580910D0190910E01FC013196E1 -:103E70009C01205F3F4F80E0919191118F5FE2178D -:103E8000F307D1F70895E0910D01F0910E018091B3 -:103E9000D3018083E0910D01F0910E01908180911A -:103EA000D201892B8083E0910D01F0910E01908168 -:103EB0008091D101892B80838091C001882361F09A -:103EC000E0910D01F0910E019081892B80830E9479 -:103ED000321F81111092C00180910D0190910E014D -:103EE0000C94DC139093370180933601089520E001 -:103EF000009739F0AC0141505109842395232F5F7D -:103F0000F7CF822F08958295982F9C7C392F369574 -:103F10003695282F237344E0249FC0011124932F4A -:103F2000982B292F2A7A2695892F8575880F822B21 -:103F300008951F93CF93DF931F92CDB7DEB7998378 -:103F40000E94831F182F9981892F0E94831F212F80 -:103F500030E0322F2227A901482BCA010F90DF91B0 -:103F6000CF911F9108958091DF01843039F1109233 -:103F7000D50120E488E190E00FB6F894A8958093ED -:103F800060000FBE2093600080E00E94E40680E0A5 -:103F90000E94110B83B7817F846083BF83B78160E8 -:103FA00083BF7894889583B78E7F83BF88E10FB6EF -:103FB000F89480936000109260000FBE08950895F9 -:103FC000089580E00E94E4060E94DF1F0E946C0BAF -:103FD0000E94E01F0E941F0C91E0811101C090E03F -:103FE000892F08950E94D91880E00E94E4060E945B -:103FF0009B250E94D0130C94110B1F920F920FB6A9 -:104000000F9211248F939F93AF93BF938091D5010B -:10401000811113C08091D6019091D701A091D80150 -:10402000B091D9014196A11DB11D8093D601909305 -:10403000D701A093D801B093D901BF91AF919F91BF -:104040008F910F900FBE0F901F90189582E084BD46 -:1040500093E095BD9AEF97BD80936E0008952FB7BA -:10406000F8948091D6019091D701A091D801B09198 -:10407000D9012FBF0895CF92DF92EF92FF920F9355 -:104080001F932FB7F8944091D6015091D7016091BA -:10409000D8017091D9012FBF6A017B01EE24FF2462 -:1040A0008C0120E030E0C016D106E206F30610F4E1 -:1040B000415051099A01281B390BC9011F910F91D9 -:1040C000FF90EF90DF90CF9008951F920F920FB660 -:1040D0000F9211248F939F93AF93BF938091D6013A -:1040E0009091D701A091D801B091D9010196A11D5D -:1040F000B11D8093D6019093D701A093D801B093BE -:10410000D901BF91AF919F918F910F900FBE0F90EA -:104110001F9018950E94CE10F8942FEF87EA91E631 -:10412000215080409040E1F700C0000087E090EB14 -:10413000DC018093EA019093EB01A093EC01B09332 -:10414000ED019CE088E10FB6F894A895809360009B -:104150000FBE90936000FFCFEF92FF920F931F93DB -:10416000CF93DF93D82FC9E08C2F0E94E70B07E095 -:1041700010E0E82EF12CC701002E02C0959587951E -:104180000A94E2F780FF09C0602F7C2F80E00E9434 -:10419000ED07D81302C081E006C00150110958F79D -:1041A000C15010F780E0DF91CF911F910F91FF90E8 -:1041B000EF900895CF93C82F8CE20E94AC20882303 -:1041C00021F08C2FCF910C94AC2080E0CF910895FA -:1041D000CF930E943C22811102C00E941D228CEBD1 -:1041E00095E00E943706C5E6C15049F00E946C0B6D -:1041F0008FE39CE90197F1F700C00000F5CF85EB54 -:1042000095E00E94370689E20E94DA20811113C1ED -:104210008AE20E94DA2081110E941D2285E00E941C -:10422000DA2081110E948A200E9447228093D401C3 -:1042300087E00E94DA208823A9F18BE10E94DA202E -:10424000882351F08091D40181FB222720F991E04D -:10425000922790FB81F90EC08EE00E94DA2088231D -:1042600061F08091D40182FB222720F991E092270E -:1042700090FB82F98093D40115C080E10E94DA207E -:104280009091D401882341F093FB222720F981E00B -:10429000822780FB93F904C0892F809580FB90F9D9 -:1042A0009093D4018091D4010E944B220E94592204 -:1042B0008093E80180EE0E94DA20882341F080910B -:1042C000E801982F909590FB80F98093E80189E3AD -:1042D0000E94DA20882359F08091E80181FB22278F -:1042E00020F991E0922790FB81F98093E80182EE1A -:1042F0000E94DA20882359F08091E80182FB22276E -:1043000020F991E0922790FB82F98093E80186EEF4 -:104310000E94DA20882359F08091E80183FB22274C -:1043200020F991E0922790FB83F98093E80183EED6 -:104330000E94DA20882359F08091E80184FB22272B -:1043400020F991E0922790FB84F98093E80185E3BE -:104350000E94DA20882359F08091E80185FB22270A -:1043600020F991E0922790FB85F98093E80181E3A1 -:104370000E94DA20882359F08091E80186FB2227E9 -:1043800020F991E0922790FB86F98093E80181E182 -:104390000E94DA20882359F08091E80187FB2227C8 -:1043A00020F991E0922790FB87F98093E8018091B2 -:1043B000E8010E945D228091E80187FB882780F94F -:1043C00080930C0187E20E94DA20C82F8EE10E94C0 -:1043D000DA208111C2608FE10E94DA208111C4606D -:1043E00080E20E94DA208111C86081E20E94DA2016 -:1043F0008111C06182E20E94DA208111C06283E2F1 -:104400000E94DA208111C06484E20E94DA208823AD -:1044100011F0C06802C0CC2329F08C2F0E945422D6 -:104420006C2F03C00E945022682F70E080E090E063 -:10443000CF910C94991CCF9108956DEE7EEF80E0A2 -:1044400090E00E94AA2660E082E090E00E94982618 -:1044500060E083E090E00E94982660E084E090E0D5 -:104460000E94982660E085E090E00E94982660E037 -:1044700086E090E00C94982680E090E00E949226DE -:1044800021E08D3E9E4F09F020E0822F089582E0CA -:1044900090E00C948A26682F82E090E00C94982695 -:1044A00083E090E00C948A26682F83E090E00C94DF -:1044B000982684E090E00C948A26682F84E090E0AF -:1044C0000C94982686E090E00C948A26682F86E06B -:1044D00090E00C949826CF93C82F1F928F9387ED6E -:1044E00095E09F938F930E94D00681E090E0A0E03A -:1044F000B0E0BC01CD0104C0660F771F881F991F73 -:10450000CA95D2F70E94991C0F900F900F900F90B0 -:10451000CF910C94D918CF938B3109F40FC208F0C6 -:1045200049C08E3009F41EC200F5873009F4E7C196 -:10453000A8F4863009F0A4C28091D401817F8E7FD7 -:104540008093D40185E797E00E94370681E69BE0DF -:104550000E94370681E08093DA01CFC1883009F4E8 -:104560005BC08B3009F4C5C18BC2813109F470C2C4 -:1045700020F4803109F40AC283C2863109F421C2D1 -:10458000893109F07DC286E697E00E9437068BE309 -:1045900097E00E94370689EE96E00E9437068CEB82 -:1045A00096E00E94370680E896E00E94370685E58F -:1045B00096E0A1C1853309F45FC268F4873209F43B -:1045C0005BC228F48E3108F45BC28D5156C2893229 -:1045D00009F452C255C2833438F48A3308F04AC20F -:1045E000883309F486C14CC2833409F445C2883447 -:1045F00009F046C20E94D91885E49BE00E94370664 -:104600009FEF23ED80E3915020408040E1F700C010 -:1046100000000E948A2071C185E69BE00E94370657 -:1046200082EB9AE00E9437060E9450221F928F93DD -:104630008FEA9AE09F938F930E94D0068DEA9AE0CA -:104640000E9437060E944722C82F8AE99AE00E94FA -:1046500037061F92CF9385E99AE09F938F930E942C -:10466000D00683E99AE00E94370689E89AE00E9422 -:1046700037068C2F81701F928F9386E89AE09F9364 -:104680008F930E94D00684E89AE00E9437068AE75A -:104690009AE00E943706C1FB882780F91F928F930A -:1046A00087E79AE09F938F930E94D00685E79AE070 -:1046B0000E94370689E69AE00E943706C2FB8827E7 -:1046C00080F91F928F9386E69AE09F938F930E94C2 -:1046D000D00684E69AE00E9437068BE59AE00E94B5 -:1046E0003706C3FBCC27C0F91F92CF9388E59AE029 -:1046F0009F938F930E94D00686E59AE00E9437062A -:104700000E945922C82F82E49AE00E9437061F9225 -:10471000CF938DE39AE09F938F930E94D0068BE313 -:104720009AE00E94370682E29AE00E9437068C2FB8 -:1047300081701F928F938FE19AE09F938F930E94D5 -:10474000D0068DB79EB780960FB6F8949EBF0FBE69 -:104750008DBF8DE19AE00E94370686E09AE00E94C4 -:104760003706C1FB882780F91F928F9383E09AE078 -:104770009F938F930E94D00681E09AE00E943706B3 -:104780008FEE99E00E943706C2FB882780F91F92BE -:104790008F938CEE99E09F938F930E94D0068AEEC0 -:1047A00099E00E94370688ED99E00E943706C3FB26 -:1047B000882780F91F928F9385ED99E09F938F93BF -:1047C0000E94D00683ED99E00E94370689EC99E0BB -:1047D0000E943706C4FB882780F91F928F9386ECCE -:1047E00099E09F938F930E94D00684EC99E00E94F9 -:1047F000370682EB99E00E943706C5FB882780F9CF -:104800001F928F938FEA99E09F938F930E94D00617 -:104810008DEA99E00E94370681E999E00E94370607 -:10482000C6FB882780F91F928F938EE899E09F93AB -:104830008F930E94D0068CE899E00E94370684E8A6 -:1048400099E00E943706C7FBCC27C0F91F92CF938F -:1048500081E899E09F938F930E94D0068FE799E0BB -:104860000E9437060E946222C82F88E699E00E94C3 -:1048700037061F92CF9383E699E09F938F930E9410 -:10488000D0068DB79EB780960FB6F8949EBF0FBE28 -:104890008DBF81E699E00E94370687E599E00E9486 -:1048A00037068C2F81701F928F9384E599E09F9338 -:1048B0008F930E94D00682E599E00E94370689E432 -:1048C00099E00E943706C6951F92CF9386E499E03F -:1048D0009F938F930E94D00684E499E00E9437064C -:1048E0008DB79EB708960FB6F8949EBF0FBE8DBFCA -:1048F00004C080E997E00E943706C1E0C6C08091FD -:10490000D401C82FC095C170C0FB80F98093D40139 -:10491000CC2349F089E39BE00E9437068091D401C3 -:104920008660886048C08CE29BE00E9437068091D8 -:10493000D401897F877F8093D401DFCF9091D40108 -:1049400091FBCC27C0F981E0C827892FC0FB81F9F2 -:104950008093D401CC2319F08FE19BE027C081E143 -:104960009BE0C9CF9091D40192FBCC27C0F981E0A4 -:10497000C827892FC0FB82F98093D401CC2319F07A -:1049800082E09BE013C082EF9AE0B5CF9091D40112 -:1049900093FBCC27C0F981E0C827892FC0FB83F99E -:1049A0008093D401CC2351F086EE9AE00E94370622 -:1049B0008091D40181608093D40167C089ED9AE031 -:1049C0009ACF87E496E00E9437060E94D0131F9288 -:1049D0008F938DE296E09F938F930E94D0068091F3 -:1049E0000B011F928F9386E196E09F938F930E9415 -:1049F000D00680916D011F928F9383E096E09F9384 -:104A00008F930E94D00680910C011F928F9380EFAC -:104A100095E09F938F930E94D0068091D60190914C -:104A2000D701A091D801B091D901BF93AF939F93C3 -:104A30008F938CED95E09F938F930E94D0068DB756 -:104A40009EB746960FB6F8949EBF0FBE8DBF55CF4A -:104A50000E94D918C0910C0181E0C827C0930C01B5 -:104A6000CC2329F08FEC9AE00E9437060EC084EC2C -:104A70009AE041CF895301C080E00E946B223DCF74 -:104A800082EC9AE00E943706C0E08C2FCF91089507 -:104A900080E0089580E00895CF93C82F8091DA01D7 -:104AA000882319F0813049F03EC0E0910D01F0916A -:104AB0000E0180818232C9F507C0E0910D01F091AD -:104AC0000E018081823261F48C2F0E944825811171 -:104AD00004C08C2F0E948B2224C081E090E021C072 -:104AE0008C2F0E944A2581111BC0C43189F018F413 -:104AF000CB3029F010C0C93259F0C83361F485E7D2 -:104B000097E00E94370683ED95E00E94370608C0C3 -:104B10001092DA010CC081ED95E00E94370607C0C3 -:104B200081E0817006C01092DA0180E002C080E06E -:104B3000F8CFCF9108950E943C22811102C00E94BB -:104B40001D220E9462228093E90180FF02C08695A7 -:104B500001C080E00C94E4068091E901982F9695BD -:104B600039F48170826081608093E9010E9466223D -:104B70008091D40180FF0FC08091E90186951F923A -:104B80008F9382EB9BE09F938F930E94D0060F90B0 -:104B90000F900F900F908091E90186950C94E40698 -:104BA0008091E901982F969591F09158990F817015 -:104BB000892B8093E9018E7F91E009F490E0809148 -:104BC000E90190FB80F98093E9010E9466228091BF -:104BD000D40180FF0FC08091E90186951F928F93C9 -:104BE0008AE99BE09F938F930E94D0060F900F90CD -:104BF0000F900F908091E90186950C94E4068091C6 -:104C0000E901982F909590FB80F98093E9010E942B -:104C100066228091D40180FF0FC08091E9018170EC -:104C20001F928F9384E89BE09F938F930E94D006FE -:104C30000F900F900F900F908091E90180FF02C0BC -:104C4000869501C080E00C94E4069091E901892FDB -:104C500086958F5F8F779170823028F4880F892B2B -:104C60008093E90102C09093E9018091E9018E7F70 -:104C700091E009F490E08091E90190FB80F9809344 -:104C8000E9010E9466228091D40180FF0FC08091CB -:104C9000E90186951F928F9380E79BE09F938F9306 -:104CA0000E94D0060F900F900F900F908091E90115 -:104CB00086950C94E4062091E901922F9695892718 -:104CC000982F990F822F8170892B8093E9018E7F15 -:104CD00091E009F490E08091E90190FB80F98093E4 -:104CE000E9010E9466228091E90186950C94E40610 -:104CF000991B79E004C0991F961708F0961B881F2E -:104D00007A95C9F780950895EE0FFF1F0590F491ED -:104D1000E02D0994F999FECF92BD81BDF89A9927AB -:104D200080B50895A8E1B0E042E050E00C94B226CE -:104D3000262FF999FECF92BD81BDF89A019700B454 -:104D4000021639F01FBA20BD0FB6F894FA9AF99AF4 -:104D50000FBE08950196272F0E9499260C9498263D -:104D6000DC01CB01FC01F999FECF06C0F2BDE1BD2B -:104D7000F89A319600B40D9241505040B8F708951A -:044D8000F894FFCFD5 -:104D8400FF350C040D380CD00C9C0C0101C1010F33 -:104D94001F4F5F6F7F6C1323766663530333593958 -:104DA400293F3620390705D104B104780404041DD1 -:064DB40004360456040061 -:00000001FF diff --git a/keyboards/clueboard2/keymaps/default/keymap.c b/keyboards/clueboard2/keymaps/default/keymap.c index 73179f94c..1795e68cd 100644 --- a/keyboards/clueboard2/keymaps/default/keymap.c +++ b/keyboards/clueboard2/keymaps/default/keymap.c @@ -1,9 +1,5 @@ #include "clueboard2.h" -#ifdef RGBLIGHT_ENABLE -#include "rgblight.h" -#endif - // Used for SHIFT_ESC #define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) diff --git a/keyboards/clueboard2/keymaps/max/compiled.hex b/keyboards/clueboard2/keymaps/max/compiled.hex deleted file mode 100644 index be12cd219..000000000 --- a/keyboards/clueboard2/keymaps/max/compiled.hex +++ /dev/null @@ -1,1536 +0,0 @@ -:100000000C94EE070C9432080C9432080C943208CD -:100010000C9432080C9432080C9432080C94320878 -:100020000C9432080C9432080C94231A0C94F51A90 -:100030000C94D4280C9432080C9432080C94320896 -:100040000C9432080C9432080C9432080C94320848 -:100050000C9432080C943C290C9432080C9432080D -:100060000C9432080C9432080C9432080C94320828 -:100070000C9432080C9432080C9432080C94320818 -:100080000C94BD140C9432080C9432080C94320871 -:100090000C9432080C9432080C9432080C943208F8 -:1000A0000C9432080C9432080C9432082809440944 -:1000B0002C093009340938093C094009621B841BAA -:1000C000721C841B721CC91BEC1B721C411C541C2F -:1000D000731F731FA21FA21FE11F4C214C214C2133 -:1000E00001204C21B120B120182121214C21462191 -:1000F000BE20BE20BE20BE20BE20BE20BE20BE2010 -:10010000BE20BE20BE20BE20BE20BE20BE20BE20FF -:10011000CE20DC20E320EA20F420696E69745F625F -:1001200061636B6C696768745F70696E28290A0087 -:1001300000F001F002F003F004F005F006F007F023 -:1001400029001E001F00200021002200230024009F -:100150002B0014001A000800150017001C001800DE -:10016000390004001600070009000A000B000D000A -:100170000152E1001D001B000600190005001100DE -:10018000E000E200E3008B0000002C002C000000E7 -:100190002500260027002D002E0035002A004B00E8 -:1001A0000C00120013002F003000310000004E0040 -:1001B0000E000F0033003400320028000000000061 -:1001C0001000360037003800E500015252000000F0 -:1001D0008A000000E700E600E400500051004F00F4 -:1001E00035003A003B003C003D003E003F0040002F -:1001F00001000100010001000100010001000100F7 -:100200000100010002520100010001000100010093 -:100210000152010001000100010001000100010084 -:1002200001000100010001000000010001000000C8 -:100230004100420043004400450001004C0083504F -:10024000010047004800010001000100000001001A -:100250000100010001000100010001000000000098 -:100260000100010001000100010001524B000000EB -:10027000010000000100010001004A004E004D0095 -:100280000100010001000100010001000100010066 -:100290000100010001000100005001000100010007 -:1002A00001000100025201000100010001000100F3 -:1002B00001520100010001000100010001000100E4 -:1002C00001000100010001000000012001200000E8 -:1002D00001000100010001000100010000200620D2 -:1002E00001000100010001000100010000000720E1 -:1002F00001000100010001000100010000000000F8 -:100300000100010001000100010001520420000071 -:10031000010000000100010001000320052002206F -:100320000A44454255473A20656E61626C65642E09 -:100330000A005374617465206F6620726F77202500 -:10034000583A2025303136620A0048756D616E2DAD -:100350007265616461626C65206D61747269782098 -:1003600073746174653A0D0A004465626F756E635B -:10037000696E672064656C61792072656D61696E74 -:10038000696E673A2025580A0054494D455233207A -:1003900064697361626C65642E0A0054494D45526C -:1003A0003320656E61626C65642E0A007267626C50 -:1003B000696768742073657420687376205B4545AF -:1003C00050524F4D5D3A2025752C25752C25750A08 -:1003D000007267626C6967687420746F67676C6528 -:1003E0003A207267626C696768745F636F6E6669F2 -:1003F000672E656E61626C65203D2025750A00726E -:1004000067626C69676874206D6F64653A20257552 -:100410000A007267626C696768745F696E6974204C -:100420007267626C696768745F636F6E6669672E76 -:100430006D6F6465203D20302E20577269746520F1 -:1004400064656661756C742076616C756573207483 -:100450006F20454550524F4D2E0A007267626C69FD -:100460006768745F696E6974206565636F6E66693D -:1004700067206973206E6F7420656E61626C6564BD -:100480002E0A007267626C696768745F696E6974CE -:10049000207374617274210A007267626C69676804 -:1004A000745F696E69742063616C6C65642E0A0008 -:1004B0007267626C696768745F636F6E6669672EE6 -:1004C00076616C203D2025640A007267626C696762 -:1004D00068745F636F6E6669672E736174203D2078 -:1004E00025640A007267626C696768745F636F6E87 -:1004F0006669672E687565203D2025640A0072676D -:10050000686C696768745F636F6E6669672E6D6F8C -:100510006465203D2025640A007267626C69676823 -:10052000745F636F6E6669672E656E61626C6520CD -:100530003D2025640A007267626C696768745F63B6 -:100540006F6E666967206570726F6D0A006565631E -:100550006F6E6669675F7570646174655F7267620C -:100560006C696768745F64656661756C740A0064C1 -:100570003214643214783C1E1E140A050000000078 -:100580000101010202030405050607090A0B0C0E0E -:100590000F1112141517191B1D1F212325282A2C92 -:1005A0002F313436393B3E414346494C4F52555822 -:1005B0005A5D6164676A6D707376797C7F83868922 -:1005C0008C8F9295989B9EA2A5A7AAADB0B3B6B901 -:1005D000BCBEC1C4C6C9CBCED0D3D5D7DADCDEE031 -:1005E000E2E4E6E8EAEBEDEEF0F1F3F4F5F6F8F923 -:1005F000FAFAFBFCFDFDFEFEFEFFFFFFFFFFFFFF23 -:10060000FEFEFEFDFDFCFBFAFAF9F8F6F5F4F3F157 -:10061000F0EEEDEBEAE8E6E4E2E0DEDCDAD7D5D3B3 -:10062000D0CECBC9C6C4C1BEBCB9B6B3B0ADAAA703 -:10063000A5A29E9B9895928F8C898683807C7976E3 -:1006400073706D6A6764615D5A5855524F4C4946E4 -:1006500043413E3B393634312F2C2A282523211F94 -:100660001D1B1917151412110F0E0C0B0A09070682 -:10067000050504030202010101000000000101025E -:10068000020202020203030303030303030303033F -:10069000030303040404040404040404040404051C -:1006A00005050505050505050506060606060606F3 -:1006B00006070707070707070808080808080909C1 -:1006C000090909090A0A0A0A0A0B0B0B0B0B0C0C85 -:1006D0000C0C0C0D0D0D0D0E0E0E0E0F0F0F10103D -:1006E00010101111111212121313131414141515E2 -:1006F000161616171718181919191A1A1B1B1C1C6D -:100700001D1D1E1E1F2020212122232324242526D7 -:1007100026272828292A2B2B2C2D2E2F303031321A -:10072000333435363738393A3B3C3D3E3F40414221 -:1007300044454647494A4B4C4E4F515253555658E3 -:100740005A5B5D5E6062636567696B6D6E70727443 -:1007500076797B7D7F818486888B8D909295979A20 -:100760009D9FA2A5A8ABAEB1B4B7BABEC1C4C8CB59 -:10077000CFD3D6DADEE2E6EAEEF2F8FF5B735D0095 -:100780004B6579626F6172642073746172742E0AB2 -:10079000005B575D005B535D005B525D005B445D39 -:1007A000005B435D00420343006C0075006500621E -:1007B000006F00610072006400200077006900741F -:1007C0000068002000520047004200200055006EE3 -:1007D000006400650072006C0069006700680074C6 -:1007E0000069006E0067000000140343006C007590 -:1007F00000650062006F0061007200640000000488 -:1008000003090409027400040100A0FA09040000AD -:100810000103010100092111010001223F00070528 -:10082000810308000A0904010001030000000921F6 -:10083000110100012236000705820308000A09049D -:100840000200020300000009211101000122200022 -:1008500007058303200001070503032000010904A5 -:1008600003000103000000092111010001223900E9 -:10087000070584031000011201100100000008EDBB -:10088000C1202301000102000105010906A10105A3 -:100890000719E029E7150025019508750181020572 -:1008A00008190129059505750191029501750391B6 -:1008B0000105071900297715002501957875018133 -:1008C00002C00631FF0974A1010975150025FF95C5 -:1008D00020750881020976150025FF95207508917D -:1008E00002C005010980A101850216010026B7009A -:1008F0001A01002AB700751095018100C0050C0986 -:1009000001A1018503160100269C021A01002A9C00 -:1009100002751095018100C005010906A1010507B6 -:1009200019E029E715002501950875018102950157 -:1009300075088101050819012905950575019102C0 -:100940009501750391010507190029FF150025FF81 -:10095000950675088100C00A002530325820006BCA -:100960006579626F6172645F7265706F72743A204C -:10097000004B6579626F617264204C45447320734B -:10098000746174653A2025780A0064656C5F6B6554 -:10099000795F6269743A2063616E27742064656CC4 -:1009A0003A20253032580A006164645F6B65795FD4 -:1009B0006269743A2063616E2774206164643A202E -:1009C000253032580A00646F6E652E0A00626F6F20 -:1009D000676D61676963207363616E3A202E2E2E06 -:1009E00020003F00433E20004C25640A0074696DDE -:1009F00065725F636F756E743A202530346C580AE7 -:100A0000006B6579626F6172645F6E6B726F3A2022 -:100A100025580A006B6579626F6172645F69646C66 -:100A2000653A2025580A006B6579626F6172645FD0 -:100A300070726F746F636F6C3A2025580A00686F8C -:100A400073745F6B6579626F6172645F6C65647308 -:100A500028293A2025580A000A092D205374617468 -:100A60007573202D0A004743433A20342E392E3225 -:100A7000204156522D4C4942433A20312E382E31D6 -:100A8000204156525F415243483A20617672350AFE -:100A9000004F5054494F4E533A204C554641204246 -:100AA0004F4F544D414749432045585452414B45BF -:100AB0005920434F4E534F4C4520434F4D4D414ECF -:100AC00044204E4B524F20343039360A00425549AB -:100AD0004C443A20313637313865662D646972747A -:100AE00079202832333A31303A3233204A756E2039 -:100AF00020392032303136290A005649443A203014 -:100B0000784331454428436C7565626F617264298E -:100B1000205049443A2030783233323028436C75C3 -:100B200065626F6172642077697468205247422061 -:100B3000556E6465726C69676874696E67292056C2 -:100B400045523A203078303030310A004445534322 -:100B50003A20514D4B206B6579626F61726420665B -:100B600069726D7761726520666F7220436C75657E -:100B7000626F6172640A000A092D205665727369FA -:100B80006F6E202D0A000A092D20436F6E736F6C63 -:100B900065202D0A4553432F713A09717569740A0E -:100BA000000A092D204D61676963202D0A443A0926 -:100BB0004465627567204D65737361676520546F86 -:100BC00067676C650A583A094D6174726978204408 -:100BD00065627567204D6F646520546F67676C654B -:100BE000202D2053686F77206B6579707265737361 -:100BF000657320696E206D6174726978206772690F -:100C0000640A4B3A094B6579626F617264204465EE -:100C100062756720546F67676C65202D2053686F7D -:100C200077206B65797072657373207265706F726F -:100C3000740A4D3A094465627567204D6F75736596 -:100C400020546F67676C650A563A09566572736976 -:100C50006F6E0A533A095374617475730A433A0903 -:100C6000416374697661746520436F6E736F6C6560 -:100C7000204D6F64650A46312D4631303A0953776D -:100C80006974636820746F204C6179657220302D1F -:100C9000392028463130203D204C30290A302D396A -:100CA0003A0953776974636820746F204C617965E1 -:100CB0007220302D390A4553433A095377697463DA -:100CC0006820746F204C6179657220302028616C37 -:100CD0007465726E617465206B65792031290A47ED -:100CE000524156453A0953776974636820746F20FE -:100CF0004C6179657220302028616C7465726E6178 -:100D00007465206B65792032290A50415553453A64 -:100D1000094A756D7020746F20426F6F746C6F613B -:100D200064657220285265736574290A453A095032 -:100D300072696E7420454550524F4D20536574744E -:100D4000696E67730A4E3A094E4B524F20546F67D3 -:100D5000676C650A000A002575002E6C6576656C67 -:100D60003A20000A002575002E656E61626C653AB6 -:100D700020000A0025303258006261636B6C69679D -:100D800068745F636F6E6669672E7261773A2000E0 -:100D90000A002575002E6E6B726F3A20000A00253E -:100DA00075002E737761705F6261636B736C617342 -:100DB000685F6261636B73706163653A20000A006B -:100DC0002575002E737761705F67726176655F6568 -:100DD00073633A20000A002575002E6E6F5F6775F9 -:100DE000693A20000A002575002E737761705F72E2 -:100DF000616C745F726775693A20000A002575009E -:100E00002E737761705F6C616C745F6C6775693AA3 -:100E100020000A002575002E636170736C6F636B90 -:100E20005F746F5F636F6E74726F6C3A20000A00BC -:100E30002575002E737761705F636F6E74726F6CCF -:100E40005F636170736C6F636B3A20000A0025303A -:100E50003258006B65796D61705F636F6E666967AC -:100E60002E7261773A20000A002575002E6D6F758D -:100E700073653A20000A002575002E6B6579626F54 -:100E80006172643A20000A002575002E6D6174724B -:100E900069783A20000A002575002E656E61626C43 -:100EA000653A20000A002530325800646562756793 -:100EB0005F636F6E6669672E7261773A20000A0081 -:100EC00025750064656661756C745F6C6179657227 -:100ED0003A20003F004E4B524F3A206F66660A00A0 -:100EE0004E4B524F3A206F6E0A000A6D6F75736554 -:100EF0003A206F66660A000A6D6F7573653A206F57 -:100F00006E0A000A6B6579626F6172643A206F66DF -:100F1000660A000A6B6579626F6172643A206F6ECF -:100F20000A000A6D61747269783A206F66660A0079 -:100F30000A6D61747269783A206F6E0A000A6465FE -:100F40006275673A206F66660A000A6465627567B3 -:100F50003A206F6E0A000A0A4A756D70696E672042 -:100F6000746F20626F6F746C6F616465722E2E2EC9 -:100F70002000433E20006565636F6E6669673A0A2C -:100F8000006261636B6C6967687420737465703AA2 -:100F90002025750A006261636B6C69676874207450 -:100FA0006F67676C653A2025750A006261636B6C38 -:100FB000696768742064656372656173653A2025AA -:100FC000750A006261636B6C6967687420696E639F -:100FD00072656173653A2025750A000011241FBEF1 -:100FE000CFEFDAE0DEBFCDBF04B603FE24C08091B0 -:100FF0002E0290912F02A0913002B09131028730E1 -:10100000904BA740B04BB9F410922E0210922F02D1 -:10101000109230021092310214BE84B7877F84BFD1 -:1010200088E10FB6F89480936000109260000FBEC4 -:10103000E0E0F8E3099511E0A0E0B1E0E6EAFFE5C1 -:1010400002C005900D92A633B107D9F712E0A6E3CE -:10105000B1E001C01D92AE32B107E1F70E945D1709 -:101060000C94D12F0C940000FF93EF93E091360184 -:10107000F0913701309709F00995EF91FF910895AC -:10108000FC018591803011F0EFDFFBCF0895FF2741 -:10109000E0E230E247FF0CC0419597FF09C0EDE266 -:1010A0006095709580959095611D711D811D911DB4 -:1010B00027FF02C0219530E350E2AA27660F771F71 -:1010C000881F991FAA1FA41710F0A41B63955A9597 -:1010D000A9F7AA3008F0A95FA05DAF93F395611559 -:1010E00071058105910541F7ED3211F4EF93F39508 -:1010F000F21718F43F93F395FBCF8F91B5DFFA9574 -:10110000E1F70895E991F9918591803021F08532D8 -:1011100019F0AADFF9CF089520E0E89455915532EF -:10112000C1F3503311F4689455915A3348F4505335 -:1011300090F3220F022E220F220F200D250FF4CF45 -:101140000EF4219589919991533619F3533729F16A -:10115000533559F1BC0188279927E8945C3621F46E -:101160008991999168945591543639F446EF7EF0FF -:1011700077FF0DC08FEF9FEF0AC055374AE039F077 -:10118000583540E121F0523642E009F00895FF93CE -:10119000EF937DDFEF91FF91B7CFFF93EF93FC01CA -:1011A00081918030B9F360DFFBCFFF93EF9368DF6D -:1011B000F1CFDF93CF93CDB7DEB72596A3DFCF91E5 -:1011C000DF9108958AE191E00E944008569A279A9B -:1011D000549A5E982F985C980895811104C05E9A85 -:1011E0002F9A5C9A08955E982F985C980895249A97 -:1011F000089581FF02C02C9A08952C9808950895AF -:1012000008958FEF98E0892B11F00E94FF080E944B -:10121000F7080E94E2080E94F41185B7806885BF34 -:1012200085B7806885BF089580E099E0892B11F02B -:101230000C9400090895462F50E04830510538F5C8 -:10124000FA01EA5AFF4FDC0112968C910C94832F1D -:101250008823E9F00C945F128823C9F00C94CB101A -:101260008823A9F00C94E310882389F00C940211D0 -:10127000882369F00C941D11882349F00C943711D0 -:10128000882329F00C94521181110C945512089561 -:1012900081E0089581E008950C944A0908950F9320 -:1012A0001F93CF93DF938C01FC01C081D181CE01CC -:1012B0000E94AC26BE010E94FE09EC01B8010E940A -:1012C0004C09882309F48DC0F8018281882309F430 -:1012D0004AC08091430181111FC0C431F0E5DF078E -:1012E00009F051C00E944E0981E0809343010E94A1 -:1012F0000629909342018093410110923A01109285 -:101300003C0110923B0110923E0110923D0110925F -:10131000400110923F0165C08091410190914201CE -:101320000E941229883C910570F480913A01E82FBF -:10133000F0E0EE0FFF1FE55CFE4FD183C0838F5FAF -:1013400080933A014EC0C43880E5D80721F0C538F3 -:10135000D04501F13AC0F8018281882341F0109212 -:10136000380182E01EC0C438E0E5DE0759F58091FF -:101370003801811106C086E20E94171E86E20E9493 -:10138000DF1E82E01CC0C438F0E5DF0741F3C5383A -:10139000D045D9F4F8018281882331F010923901C7 -:1013A00080E20E942E1F1DC080913901811106C06C -:1013B00087E20E94171E87E20E94DF1E80E20E94E1 -:1013C000351F0FC0C538D04529F381E0809338011F -:1013D00080933901C801DF91CF911F910F910C9437 -:1013E000480980E0DF91CF911F910F9108950C94EF -:1013F00001090C94140980E090E00895E72FF0E0D3 -:101400009AE0899FE00DF11D112483E0EE0FFF1F8C -:101410008A95E1F7E60FF11DEE0FFF1FE05CFE4F2E -:10142000859194910895880F991FFC01E055F04033 -:10143000859194910895880F991FFC01E05DFE4FFE -:101440008591949108950F931F93CF93DF93EC01AF -:10145000811521E39207A0F5C11580E3D80708F0B4 -:10146000D7C0C83ED105D8F4C03ED10508F007C2A8 -:10147000C83AD10578F4C53AD10508F06AC0C13040 -:10148000D10509F463C008F4F7C1C430D10508F0F0 -:10149000F6C1F2C1CB3BD10508F466C0EDC1C11560 -:1014A00090E2D90708F0AFC0C11521E0D20708F0DB -:1014B000E6C1C03FD10508F4DFC18E0110651FC22F -:1014C000C03880E5D80700F5C03790E5D90708F0A7 -:1014D000A3C0C11520E5D20709F4ACC050F4CE0179 -:1014E000905480319F4008F0C7C1DF708E01106AB0 -:1014F00006C2C13080E5D80709F4AAC0C43190E51E -:10150000D90708F4AFC0B8C1C33820E5D20709F441 -:101510008EC050F4C13890E5D90709F482C008F0B4 -:1015200083C000E011EDEBC1C03181E5D80708F4BC -:10153000A3C1C11597E5D90708F436C1CE0190576C -:101540008115904108F098C1DF7093C101E010E06F -:10155000D6C1C53AD10509F494C1C63AD10509F0FE -:1015600093C102E810E4CBC1C83AD10509F48FC198 -:10157000C93AD10509F48EC1CA3AD10509F48DC121 -:10158000CB3AD10509F48CC1CC3AD10509F48BC111 -:10159000CD3AD10509F48AC1C03BD10509F489C10E -:1015A000CE3AD10509F488C1CF3AD10509F487C1F3 -:1015B000C13BD10509F486C1C23BD10509F485C1FF -:1015C000C33BD10509F484C1C43BD10509F483C1EF -:1015D000C53BD10509F482C1C63BD10509F481C1DF -:1015E000C73BD10509F480C1C83BD10509F47FC1CF -:1015F000C93BD10509F47EC1CA3BD10509F47DC1BF -:1016000000E014E47CC1CE019F700E941B0A78C1E7 -:10161000DD278E01106C73C1CF70DD278E01146D34 -:101620006EC100E010ED6BC100E012ED68C100E09A -:1016300013ED65C10E94B3218FEF94E32CE081503C -:1016400090402040E1F700C000000E94612957C18E -:1016500080E293E00E9440088091E60181608093DF -:10166000E6014DC10E94132B811102C00E94F42A91 -:101670000E94302B90E090932D0280932C02C23078 -:1016800080E5D80721F480912C02816086C0C430A7 -:1016900090E5D90721F480912C0282607EC0C6308B -:1016A00020E5D20721F480912C02846076C0C830F6 -:1016B00080E5D80719F480912C0227C0CA3090E544 -:1016C000D90721F480912C02806167C0CC3020E5DD -:1016D000D20721F480912C0280625FC0CE3080E579 -:1016E000D80721F480912C02806457C0C03190E566 -:1016F000D90721F480912C0280684FC0C23120E5C7 -:10170000D20729F480912C028460886046C0C330DF -:1017100080E5D80721F480912C028E7F3EC0C53031 -:1017200090E5D90721F480912C028D7F36C0C73017 -:1017300020E5D20721F480912C028B7F2EC0C93086 -:1017400080E5D80719F480912C0226C0CB3090E5B3 -:10175000D90721F480912C028F7E1FC0CD3020E567 -:10176000D20721F480912C028F7D17C0CF3080E505 -:10177000D80721F480912C028F7B0FC0C13190E5F6 -:10178000D90721F480912C028F7707C0C331D0454F -:1017900031F480912C028B7F877F80932C02809183 -:1017A0002C020E94342BABC08D2F99278F70992764 -:1017B00081309105D9F49E012370332702C0880F30 -:1017C000991F2A95E2F79C688E0144E0000F111FD3 -:1017D0004A95E1F700271370802B912B53E0CC0F33 -:1017E000DD1F5A95E1F7C076DD272FC082309105C5 -:1017F00031F4DC2FCC278E01016F106A80C083305A -:10180000910569F4CE018370992701E010E002C0D0 -:10181000000F111F8A95E2F7C8019C680FC0843041 -:101820009105B9F4CE018370992701E010E002C060 -:10183000000F111F8A95E2F7C8019A6823E0CC0FC8 -:10184000DD1F2A95E1F7C07ED7708C010C2B1D2B74 -:1018500056C08530910531F4DC2FCC278E01046F02 -:10186000106A4DC0069709F04AC0CF71DD27DC2F02 -:10187000CC278E01106243C000E010E040C08E0112 -:101880003EC001E810E43BC003E810E438C002EEBB -:1018900014E435C009EE14E432C00AEE14E42FC09B -:1018A00005EB14E42CC006EB14E429C007EB14E4A8 -:1018B00026C00CEC14E423C00DEC14E420C003E8B3 -:1018C00015E41DC00AE815E41AC002E915E417C0C2 -:1018D00004E915E414C001E216E411C003E216E4C1 -:1018E0000EC004E216E40BC005E216E408C006E2EE -:1018F00016E405C007E216E402C00AE216E4C801D5 -:10190000DF91CF911F910F910895E72FF0E09AE0BA -:10191000899FE00DF11D112483E0EE0FFF1F8A95D2 -:10192000E1F7E60FF11DEE0FFF1FE05CFE4F859122 -:101930009491803E9105E0F4803C910558F5813307 -:10194000910509F46FC048F48932910509F463C028 -:101950008A32910509F46DC072C089339105E9F0AE -:1019600082389105D1F08533910509F44DC067C0E7 -:10197000833E910581F138F4803E9105B9F0823EB5 -:101980009105D9F05CC0863E910561F1873E9105D5 -:10199000A1F155C00E94130A089520912C0220FD48 -:1019A00002C021FF4CC080EE90E049C080912C0223 -:1019B00080FFF9CF89E390E042C080912C0282FF42 -:1019C0000EC080912C0284FF03C080E090E037C0FD -:1019D00083EE90E034C080912C0282FFF2CF82EE41 -:1019E00090E02DC080912C0283FF0BC080912C02CF -:1019F00084FDEBCF87EE90E022C080912C0283FF24 -:101A0000F5CF86EE90E01BC080912C0285FF07C0C9 -:101A100089E290E014C080912C0285FFF9CF85E324 -:101A200090E00DC080912C0286FF07C08AE290E012 -:101A300006C080912C0286FFF9CF81E390E00E94DE -:101A4000230A08950C94F908E82FF0E0E85EFE4FB1 -:101A50008081E82FEF70F0E082958F7021E030E018 -:101A6000A90102C0440F551F8A95E2F740A30895CB -:101A70000F931F93CF93DF9385B7806885BF85B79A -:101A8000806885BFC9E0D0E001E010E0FE01E85EBB -:101A9000FE4F8081E82FEF70F0E021A182958F70DA -:101AA000A80102C0440F551F8A95E2F7CA01822B94 -:101AB00081A38C2F0E94240D219740F787E090E0AE -:101AC00061E070E0FC01E05FFE4F2081E22FEF70EB -:101AD000F0E042A122952F70DB0102C0AA0FBB1FCC -:101AE0002A95E2F79D01242B22A3019758F7DF9155 -:101AF000CF911F910F910C94F709EF92FF920F93E2 -:101B00001F93CF93DF930EE411E0C9E0EE24E3943A -:101B1000F12CD5E08C2F0E94240D87E090E040E06E -:101B2000FC01E05FFE4F5081E52FEF70F0E020A157 -:101B300030E052955F7002C0359527955A95E2F7CF -:101B400020FD07C09701082E01C0220F0A94EAF772 -:101B5000422B019728F7F80182918F01841719F021 -:101B60004083D09300018C2F0E94240DC15090F629 -:101B70008091000187FD32C09091E60190FF10C076 -:101B8000282F332727FD30953F938F9389E693E0E5 -:101B90009F938F930E94D9080F900F900F900F90F2 -:101BA0008091000181508093000187FD07C08FE97B -:101BB0009FE00197F1F700C0000010C080E090E0C6 -:101BC000FC01E25BFE4FDC01AC5BBE4F19962C9131 -:101BD00021870197863FEFEF9E0791F70E94F90951 -:101BE00081E0DF91CF911F910F91FF90EF900895C9 -:101BF000E82FF0E0E25BFE4F808108950F931F9382 -:101C0000CF93DF938091E60180FF04C08AE493E0E4 -:101C10000E944008C0E0D0E002E313E08091E601BA -:101C200080FF15C0FE01E25BFE4F808190E00E94C4 -:101C300070289F938F93DF93CF931F930F930E94EE -:101C4000D9080F900F900F900F900F900F90219642 -:101C5000CA30D10519F7DF91CF911F910F910895E7 -:101C60000F931F93CF9308E511E0C0E0F801829134 -:101C70008F0190E00E944E28C80FF1E00E341F073C -:101C8000A9F78C2FCF911F910F9108952BB1342F6D -:101C9000309523233BB1432B3FB7F894FC01680FE9 -:101CA000791FE617F70789F0819198E04BB900009A -:101CB00000C087FF2BB9880F000000C000C000C023 -:101CC0002BB900C09A9591F7ECCF3FBF08952AB188 -:101CD000242B2AB99B01220F331F620F731F0E940E -:101CE000460E87EC90E00197F1F700C000000895E0 -:101CF00040E80C94670EAF92BF92CF92DF92EF92C2 -:101D0000FF920F931F93CF93DF936C01790150E003 -:101D1000FA01E458F94F44918FEF90E0FC01E61B83 -:101D2000F109E458F94FE491E09509F495C0C42F06 -:101D3000D0E08E1B91098C9F90018D9F300D9C9F50 -:101D4000300D1124E32F8CE3A82EB12CC601B50170 -:101D50000E945B2FDC016230710509F446C0D0F4AB -:101D60006115710599F16130710509F079C0C31BE6 -:101D7000D109B501681B790BC69FC001C79F900DA3 -:101D8000D69F900D1124B5010E945B2F032F060FE3 -:101D9000142F67C06430710509F44BC0B8F1653089 -:101DA000710509F05DC0C31BD109B501681B790B32 -:101DB000C69FC001C79F900DD69F900D1124B501FD -:101DC0000E945B2F132FE32FE60F44C0C31BD109E2 -:101DD000CC9DC001CD9D900DDC9D900D1124B501D1 -:101DE0000E945B2F132F160F35C0C31BD109CA9F4A -:101DF000C001CB9F900DDA9F900D1124B5010E9478 -:101E00005B2F142F032FE32FE60F2BC0C31BD10929 -:101E1000B501681B790BC69FC001C79F900DD69F67 -:101E2000900D1124B5010E945B2F132F160F032F65 -:101E30000FC0C31BD109CA9FC001CB9F900DDA9F71 -:101E4000900D1124B5010E945B2F032F060F132F55 -:101E5000E42F07C0042F05C0E42F142F042F01C066 -:101E6000E0E0D70111960C9311971C931296EC9316 -:101E7000DF91CF911F910F91FF90EF90DF90CF9066 -:101E8000BF90AF90089587E090E00C94912FAB0144 -:101E9000BC0187E090E00C94AF2F8091E60180FFB9 -:101EA00008C08DE495E09F938F930E94D9080F900E -:101EB0000F9083E08093ED018091EE01807884663D -:101EC0008F778093EE018CEC8093EF018093F0018B -:101ED0006091ED017091EE018091EF019091F00120 -:101EE0000C94470F8091E60180FF08C086E395E0DF -:101EF0009F938F930E94D9080F900F908091E601D5 -:101F000080FF0FC08091ED0181701F928F9389E156 -:101F100095E09F938F930E94D9080F900F900F9098 -:101F20000F908091E60180FF10C08091ED018695B1 -:101F30008F731F928F938EEF94E09F938F930E94E5 -:101F4000D9080F900F900F900F908091E60180FFBD -:101F500019C08091ED01881F8827881F9091EE019C -:101F6000292F220F822B97FB992790F99F938F930C -:101F700084EE94E09F938F930E94D9080F900F9066 -:101F80000F900F908091E60180FF0EC08091EF01CD -:101F90001F928F938AEC94E09F938F930E94D908AD -:101FA0000F900F900F900F908091E60180FF0EC070 -:101FB0008091F0011F928F9380EB94E09F938F9319 -:101FC0000E94D9080F900F900F900F900895809164 -:101FD000ED0180FF06C06EE070E085EF91E00C94AB -:101FE000780E80E090E0FC01EB50FE4F11821082F1 -:101FF000128203968A329105B1F7EDCF20E030E0EE -:10200000F901EB50FE4F8183608342832D5F3F4F88 -:102010002A323105A9F70C94E70FEF92FF920F9344 -:102020001F93CF93DF9300D01F92CDB7DEB70091FF -:10203000ED011091EE012091EF013091F00100933C -:10204000F1011093F2012093F3013093F4012091F8 -:10205000ED0120FF21C0042FF62EE92E182F9E013E -:102060002F5F3F4F0E947B0E8091F10110FB87F99B -:102070008093F10116958091F2018078182BE0FA97 -:1020800017F91093F201F092F3010093F4014B81E0 -:1020900069818A810E94FE0F0F900F900F90DF914F -:1020A000CF911F910F91FF90EF9008950F931F9381 -:1020B000CF93DF93EC01062F142F9091ED0190FF49 -:1020C00065C0892F8E77823021F4CE010E940D10D9 -:1020D0001BC0892F86958F732EE3280F2F73243012 -:1020E00018F41091F00110C0865C8F73893060F491 -:1020F000C92FCC1FCC27CC1FD091EE018D2F880F7C -:10210000C82BD7FBDD27D0F98091ED01C0FB87F903 -:102110008093ED01C6958091EE018078C82BD0FBAD -:10212000C7F9C093EE010093EF011093F0016091A5 -:10213000ED017091EE018091EF019091F0010E940C -:10214000470F8091F0011F928F938091EF011F92B2 -:102150008F938091ED01881F8827881F9091EE0151 -:10216000292F220F822B97FB992790F99F938F930A -:102170008CEA93E09F938F930E94D9088DB79EB706 -:1021800008960FB6F8949EBF0FBE8DBFDF91CF911A -:102190001F910F910895EDEEF1E02081221F22277B -:1021A000221F3091EE01432F440F842F822B37FBE7 -:1021B000992790F90A9668E671E00E946F2F438193 -:1021C00062810C9456102091ED01221F2227221FBC -:1021D0003091EE01432F440F842F822B37FB992738 -:1021E00090F98A3091051CF4825A9E4F01C00A97DB -:1021F00068E671E00E946F2F4091F0016091EF015D -:102200000C9456106091EF01862F90E08F3E91055F -:1022100014F46F5E01C06FEF8091ED01881F882775 -:10222000881F9091EE01292F220F97FB992790F993 -:102230004091F001822B0C9456106091EF01862F93 -:1022400090E0419714F0615101C060E08091ED0190 -:10225000881F8827881F9091EE01292F220F97FB56 -:10226000992790F94091F001822B0C9456104091DF -:10227000F001842F90E08F3E910514F44F5E01C071 -:102280004FEF8091ED01881F8827881F9091EE0104 -:10229000292F220F97FB992790F96091EF01822B4C -:1022A0000C9456104091F001842F90E0419714F067 -:1022B000415101C040E08091ED01881F8827881FAF -:1022C0009091EE01292F220F97FB992790F96091A9 -:1022D000EF01822B0C9456108091690181110FC07F -:1022E00081E08093690189E0809391008FB7F89431 -:1022F00093E09093990090ED909398008FBF08958C -:10230000809171008260809371008091E60180FF6E -:1023100008C08BE993E09F938F930E94D9080F9098 -:102320000F900895809171008D7F8093710080914E -:10233000E60180FF08C089E893E09F938F930E9495 -:10234000D9080F900F9008959091ED0190FF4BC028 -:102350009178811102C0926007C0883110F09E62AE -:1023600003C08F73880F982B9093ED016091ED015E -:102370007091EE018091EF019091F0010E94470F62 -:102380008091ED0186958F731F928F938FEF93E06D -:102390009F938F930E94D9088091ED01982F9E778B -:1023A0000F900F900F900F90923019F40E9492119D -:1023B00007C08695825C8F73863110F40E9480116D -:1023C0008091ED01881F8827881F9091EE01292FA9 -:1023D000220F97FB992790F94091F0016091EF014E -:1023E000822B0C94561008958091E60181608093B1 -:1023F000E60189E994E09F938F930E94D90881E0D8 -:1024000080936A018091E6010F900F9080FF08C0D1 -:1024100083E894E09F938F930E94D9080F900F90C8 -:102420000E94132B811110C08091E60180FF08C02B -:102430008BE594E09F938F930E94D9080F900F90A3 -:102440000E94F42A0E944D0F0E94430F6093ED01F9 -:102450007093EE018093EF019093F0016E77C1F4D9 -:102460008091E60180FF08C082E194E09F938F9302 -:102470000E94D9080F900F900E944D0F0E94430FA9 -:102480006093ED017093EE018093EF019093F00162 -:102490000E94720F0E946C118091ED0180FF04C0B8 -:1024A00086958F730C94A41108958091ED01869503 -:1024B0008F738F5F883108F081E00C94A4118091B4 -:1024C000ED01982F909590FB80F98093ED0160913C -:1024D000ED017091EE018091EF019091F0010E9469 -:1024E000470F8091ED0181701F928F9381ED93E0F2 -:1024F0009F938F930E94D9088091ED010F900F90C8 -:102500000F900F9080FF04C086958F730C94A411D8 -:102510000E9492112FEF80E792E02150804090407E -:10252000E1F700C000000C94E70FCF93C82F809113 -:102530006701909168010E941229EC2FF0E0E858A1 -:10254000FA4FE491F0E08E179F0718F10E940629D8 -:102550009093680180936701E0916601F0E0E45890 -:10256000FA4F44918091ED01881F8827881F909130 -:10257000EE01292F220F97FB992790F96091EF0127 -:10258000822B0E940D108091660190E0019680934D -:102590006601CF910895CF93C82F809164019091E7 -:1025A00065010E941229EC2FF0E0EB58FA4FE491FC -:1025B000F0E08E179F07E8F00E94062990936501CE -:1025C000809364014091F0016091EF01809162017C -:1025D000909163010E940D108091620190916301BE -:1025E000019668E671E00E945B2F909363018093EF -:1025F0006201CF910895CF92DF92FF920F931F93C4 -:10260000CF93DF93F82E80916001909161010E9439 -:102610001229EF2DE695F0E0EB58FA4FE491F0E047 -:102620008E179F07F0F10E94062990936101809315 -:10263000600105EF11E0C0E0D0E088E6C82EDD249F -:10264000D39480915E0190915F018C0F9D1FB60124 -:102650000E945B2F98014091F0016091EF010E9470 -:102660007B0E69960D5F1F4FCE3581E0D80749F785 -:102670000E94E70F20915E0130915F01F0FE0BC0D8 -:10268000C901019668E671E00E945B2F90935F019B -:1026900080935E0106C02150310930935F01209381 -:1026A0005E01DF91CF911F910F91FF90DF90CF904E -:1026B00008958F929F92AF92BF92CF92DF92EF9246 -:1026C000FF920F931F93CF93DF93C82F80FF03C018 -:1026D000DD24DA9402C0DD24D39480915C019091D2 -:1026E0005D010E941229C695EC2FF0E0EE58FA4FDA -:1026F000E491F0E08E179F0708F467C00E94062956 -:1027000090935D0180935C0195EFE92E91E0F92EA5 -:1027100007EF11E0C0E0D0E027E0822E912CF80115 -:1027200031971082F7011082F801108287E0A82EFD -:10273000B12CC12C80915B018C0D87FD825F9927A4 -:1027400087FD9095C817D907E9F42091F0012A9DDB -:10275000C0012B9D900D1124B4010E946F2F462FB4 -:102760008091ED01881F8827881F9091EE01592FD5 -:10277000550F97FB992790F997016091EF01852BF1 -:102780000E947B0ECD0CF1E0AF1AB10899F62196AC -:1027900083E0E80EF11C0D5F1F4FCE30D10509F02C -:1027A000BECF0E94E70F80915B0191E0D91206C075 -:1027B000811102C08DE007C0815005C090E00196F4 -:1027C000BE010E946F2F80935B01DF91CF911F911B -:1027D0000F91FF90EF90DF90CF90BF90AF909F90C0 -:1027E0008F9008959F92AF92BF92CF92DF92EF9217 -:1027F000FF920F931F93CF93DF93CDB7DEB7AA97C6 -:102800000FB6F894DEBF0FBECDBF182F80915901CF -:1028100090915A010E941229E12FF0E0E159FA4FFC -:10282000E491F0E08E179F0708F495C00E940629F6 -:1028300090935A0180935901CE0101967C015E016B -:1028400093E0A90EB11CC12CD12C8701F501319761 -:102850001082F7011082F5011082912C90910101F4 -:1028600080915801999E800D112487FD04C08E30FF -:102870001CF08DE001C080E0992787FD9095C81677 -:10288000D906A1F48091ED01881F8827881F9091B7 -:10289000EE01592F550F97FB992790F99701409119 -:1028A000F0016091EF01852B0E947B0E9394F7E07D -:1028B0009F12D4CF8FEFC81AD80A93E0E90EF11C0B -:1028C000E3E0AE0EB11CFEE0CF16D10409F0BECF9E -:1028D00027EF31E059E0E52EF12C6EE0C62ED12C29 -:1028E000C701B6010E946F2FD9011197FC01EE0FAD -:1028F000FF1FE80FF91FE00FF11F81818C931197E3 -:1029000080818C938281F9018083FFEFEF1AFF0AA7 -:102910002D5F3F4F87E1E816F10411F70E94E70FA2 -:102920009091010180915801913049F48A3F2CF433 -:1029300089EF809358018FEF08C081500AC085311C -:102940003CF084E18093580181E08093010103C051 -:102950008F5F80935801AA960FB6F894DEBF0FBE22 -:10296000CDBFDF91CF911F910F91FF90EF90DF903E -:10297000CF90BF90AF909F9008951F920F920FB687 -:102980000F9211242F933F934F935F936F937F93F5 -:102990008F939F93AF93BF93EF93FF938091ED013C -:1029A00086958F739EE3980F9F73943020F4825026 -:1029B0000E94951223C09AE3980F9F73933020F4DE -:1029C00086500E94CB121AC097E3980F9F739630DF -:1029D00020F489500E94FB1211C091E3980F9F735D -:1029E000963020F48F500E94591308C09BE2980F34 -:1029F0009F73933018F485510E94F213FF91EF9169 -:102A0000BF91AF919F918F917F916F915F914F9106 -:102A10003F912F910F900FBE0F901F9018958091AE -:102A20007E01089508959FB7F89410926D019FBF9D -:102A300090912302943009F057C09091E9009F7063 -:102A40003091EC00232F217030FD20E8922B23E001 -:102A50002093E9002091EB0020FF43C02091EE007D -:102A600027FF3FC020916B01222321F02091E80035 -:102A700025FF37C010926B0126E03091E80035FD4C -:102A800015C030912302343061F53091EB0035FDF3 -:102A900028C0215021F481E080936B0122C0EFE92E -:102AA000FFE03197F1F700C00000E7CF8093F1001D -:102AB0008091E80085FD0AC08091E80080FFFCCF8E -:102AC0008091E8008E778093E80006C08FB7F89475 -:102AD00021E020936D018FBF9F709093E90080E00B -:102AE00008959F709093E9008FEF0895CF93DF933F -:102AF00000D01F92CDB7DEB720912302243021F5FC -:102B000023E029839B838A8382E08093E9008FEF0F -:102B10009091E800815095FD06C095ED9A95F1F7EA -:102B200000008111F5CF8091E80085FF0DC040E0E5 -:102B300050E063E070E0CE0101960E94131880918E -:102B4000E8008E778093E8000F900F900F90DF9150 -:102B5000CF910895CF93DF9300D01F92CDB7DEB70A -:102B60009C0180912302843019F592E099833B8384 -:102B70002A839093E9008FEF9091E800815095FDB2 -:102B800006C095ED9A95F1F700008111F5CF80917F -:102B9000E80085FF0DC040E050E063E070E0CE014A -:102BA00001960E9413188091E8008E778093E800C8 -:102BB0000F900F900F90DF91CF910895CF93DF93F7 -:102BC000EC0190912302943009F046C080910C01F1 -:102BD0008823D9F080910D018823B9F09093E90002 -:102BE0008FEF9091E800815095FD06C095E19A9590 -:102BF000F1F700008111F5CF8091E80085FF2CC02E -:102C000040E050E060E170E017C081E08093E900AF -:102C10008FEF9091E800815095FD06C095ED9A9553 -:102C2000F1F700008111F5CF8091E80085FF14C015 -:102C300040E050E068E070E0CE010E9413188091FF -:102C4000E8008E778093E80080E1FE01AEE6B1E017 -:102C500001900D928A95E1F7DF91CF91089581EA75 -:102C600097E00E94400880912202811109C00E94D1 -:102C7000A8190E94051A8091E20084608093E20006 -:102C800008958DE997E00E9440081092220208956D -:102C900089E997E00C94400885E997E00C94400896 -:102CA00081E997E00E9440080C94C92820916C01AA -:102CB0002F5F822F62E30E944F2F992319F02093F8 -:102CC0006C01089510926C0180916D01882371F15F -:102CD00080912302843041F58091E9008F7020912A -:102CE000EC00922F917020FD90E8892B93E0909357 -:102CF000E9009091EB0090FF14C09091EE0097FFD7 -:102D000010C09091E80095FF03C01092F100F9CF38 -:102D10009091E80090FF05C09091E8009E77909315 -:102D2000E8008F708093E90010926D01089542E0F1 -:102D300061EC81E00E94221942E061EC82E00E9495 -:102D4000221942E261EC83E00E94221942E161EC27 -:102D500084E00C94221980912502833009F455C037 -:102D600030F4813071F0823009F48EC008958A30D9 -:102D700009F47AC08B3009F460C0893009F09CC036 -:102D800020C080912402813A09F096C08091E80029 -:102D9000877F8093E8008091280290912902892BF7 -:102DA00021F460E18EE691E003C060E080E090E015 -:102DB00070E00E945E188091E8008B778093E800B5 -:102DC000089580912402813209F076C08091280212 -:102DD00090912902009719F0039709F06DC0809136 -:102DE000E800877F8093E8008091E80082FD05C0BD -:102DF000809123028111F8CF5FC08091F100809310 -:102E00007E018091E8008B7753C080912402813A43 -:102E100009F052C08091280290912902892B09F073 -:102E20004BC08091E800877F8093E8008091E800A4 -:102E300080FFFCCF80910C0136C08091240281324A -:102E4000D9F58091280290912902892BA9F58091CA -:102E5000E800877F8093E8000E945719809126023E -:102E600080930C010C94B32180912402813221F5CE -:102E70008091E800877F8093E8000E945719809135 -:102E8000270280937F01089580912402813AA1F462 -:102E90008091E800877F8093E8008091E80080FFC0 -:102EA000FCCF80917F018093F1008091E8008E77C4 -:102EB0008093E8000C945719089584B7877F84BFE6 -:102EC00088E10FB6F89480936000109260000FBE06 -:102ED00090E080E80FB6F8948093610090936100D1 -:102EE0000FBE0E942C1D0E94A8190E94051A8091F5 -:102EF000E20084608093E20083E195E10E9449282A -:102F000078940E948A1C0E942E1D82E091E00E940B -:102F1000A51C80E897E00E9440088091230285303C -:102F200089F48CE797E00E9440080E948A288091EB -:102F30002102882391F30E94B828882371F30E940C -:102F4000FD17EBCF0E94541DE8CF292F33272330E4 -:102F50003105C9F064F42130310581F022303105AA -:102F600009F043C084E790E023E038E042C021321A -:102F70003105F1F02232310541F137C082E190E0B4 -:102F800027E738E036C099278130910541F082303B -:102F9000910541F0892B49F5EFEFF7E005C0E9EE27 -:102FA000F7E002C0E5EAF7E0849190E09F0121C0DC -:102FB0006430D8F4E62FF0E0EE0FFF1FE25DFE4F25 -:102FC0002081318189E090E014C0643070F470E0B9 -:102FD000FB01EE0FFF1FEA5DFE4F20813181FB01F7 -:102FE000EE5DFE4F808190E004C080E090E020E044 -:102FF00030E0FA0131832083089580E189BD82E1C8 -:1030000089BD09B400FEFDCF8091D8008F7D8093EB -:10301000D8008091E00082608093E0008091E00021 -:1030200081FDFCCF0895CF92DF92EF92FF920F9334 -:103030001F93CF93DF93EC018B016A010E947619F5 -:10304000811133C0C114D10439F0F601808191811E -:10305000081B190BC80FD91FE12CF12C0115110504 -:1030600019F18091E80085FD16C08091E8008E7707 -:103070008093E800C114D10449F0F6018081918168 -:10308000E80EF91EF182E08285E00FC00E947619F9 -:10309000882321F30AC089918093F100015011091E -:1030A000FFEFEF1AFF0ADACF80E0DF91CF911F9197 -:1030B0000F91FF90EF90DF90CF90089520912A021A -:1030C00030912B022617370748F06115710539F446 -:1030D0002091E8002E772093E80001C0B90140E07C -:1030E00061157105A9F120912302222309F443C03F -:1030F000253009F442C02091E80023FD40C0209112 -:10310000E80022FD32C02091E80020FFE9CF409185 -:10311000F3002091F20030E0342BFC01CF01611567 -:10312000710559F02830310540F481918093F10008 -:10313000615071092F5F3F4FF1CF41E028303105D9 -:1031400009F040E02091E8002E772093E800C8CFF6 -:103150004111C9CF0AC080912302882361F08530D4 -:1031600061F08091E80083FD0AC08091E80082FF51 -:10317000F2CF80E0089582E0089583E0089581E031 -:10318000089520912A0230912B022617370748F024 -:103190006115710539F42091E8002E772093E8003D -:1031A00001C0B901FC0120E06115710591F1809128 -:1031B0002302882309F440C0853009F43FC0809180 -:1031C000E80083FD3DC08091E80082FD2FC0809122 -:1031D000E80080FFE9CF2091F3008091F20090E0B9 -:1031E000922B6115710559F08830910540F42491B6 -:1031F0002093F1003196615071090196F2CF21E0E0 -:10320000089709F020E08091E8008E778093E8002D -:10321000CBCF2111CCCF0AC080912302882361F04B -:10322000853061F08091E80083FD0AC08091E8005C -:1032300082FFF2CF80E0089582E0089583E0089550 -:1032400081E00895982F973058F59093E9009817EA -:1032500039F07091EC002091ED005091F00003C026 -:10326000242F762F50E021FF19C03091EB003E7FD4 -:103270003093EB003091ED003D7F3093ED003091C5 -:10328000EB0031603093EB007093EC002093ED0085 -:103290005093F0002091EE0027FF07C09F5FD3CF2F -:1032A0008F708093E90081E0089580E00895809117 -:1032B000240287FF11C08091E80082FD05C0809143 -:1032C00023028111F8CF11C08091E8008B770BC0E9 -:1032D00080912302882349F08091E80080FFF8CF95 -:1032E0008091E8008E778093E80008952091E400B3 -:1032F0003091E50095E64091EC00842F817040FF0D -:1033000022C08091E80080FD1CC0809123028823A8 -:1033100091F0853091F08091EB0085FD10C04091D7 -:10332000E4005091E5004217530729F39A019150A8 -:1033300011F784E0089582E0089583E0089581E024 -:10334000089580E008954091E80042FFDECF08959F -:103350000E94161A0E941E1AE0EEF0E08081816041 -:103360008083E8EDF0E080818F77808319BCA7ED42 -:10337000B0E08C918E7F8C9380818F7E80831092C1 -:10338000220208950F931F93CF93DF930E94161A82 -:103390000E941E1AC8EDD0E088818F7788838881CB -:1033A0008068888388818F7D888319BC109223026E -:1033B00010921F02109221021092200200EE10E0E3 -:1033C000F80180818B7F808388818160888342E0DF -:1033D00060E080E00E942219E1EEF0E080818E7FC3 -:1033E0008083E2EEF0E0808181608083808188606C -:1033F0008083F80180818E7F8083888180618883CB -:10340000DF91CF911F910F910895E8EDF0E0808159 -:103410008F7E8083E7EDF0E080818160808384E0AF -:1034200082BF81E0809322020C94C219E8EDF0E0A3 -:1034300080818E7F80831092E20008951092DA00DE -:103440001092E10008951F920F920FB60F9211246F -:103450002F933F934F935F936F937F938F939F939C -:10346000AF93BF93EF93FF938091E10082FF0BC076 -:103470008091E20082FF07C08091E1008B7F809302 -:10348000E1000E9456168091DA0080FF1FC08091F3 -:10349000D80080FF1BC08091DA008E7F8093DA0015 -:1034A0008091D90080FF0DC080E189BD82E189BD96 -:1034B00009B400FEFDCF81E0809323020E942F1605 -:1034C00005C019BC109223020E9441168091E100B0 -:1034D00080FF19C08091E20080FF15C08091E2005A -:1034E0008E7F8093E2008091E20080618093E20011 -:1034F0008091D80080628093D80019BC85E08093C9 -:1035000023020E944C168091E10084FF30C080911C -:10351000E20084FF2CC080E189BD82E189BD09B44D -:1035200000FEFDCF8091D8008F7D8093D8008091E0 -:10353000E1008F7E8093E1008091E2008F7E809396 -:10354000E2008091E20081608093E20080911F029E -:10355000882311F084E007C08091E30087FD02C05A -:1035600081E001C083E0809323020E945016809185 -:10357000E10083FF29C08091E20083FF25C0809194 -:10358000E100877F8093E10082E080932302109224 -:103590001F028091E1008E7F8093E1008091E20024 -:1035A0008E7F8093E2008091E20080618093E20050 -:1035B00042E060E080E00E9422198091F000886083 -:1035C0008093F0000E944816FF91EF91BF91AF9158 -:1035D0009F918F917F916F915F914F913F912F912B -:1035E0000F900FBE0F901F9018951F920F920FB65D -:1035F0000F9211242F933F934F935F936F937F9379 -:103600008F939F93AF93BF93CF93DF93EF93FF93EA -:10361000C091E900CF708091EC00D82FD17080FD6F -:10362000D0E81092E9008091F000877F8093F0004D -:1036300078940E94391B1092E9008091F000886014 -:103640008093F000CD2BCF70C093E900FF91EF91F4 -:10365000DF91CF91BF91AF919F918F917F916F91AA -:103660005F914F913F912F910F900FBE0F901F9040 -:1036700018951F93CF93DF93CDB7DEB7AA970FB6F8 -:10368000F894DEBF0FBECDBFE4E2F2E088E08E0F1B -:103690009091F10091938E13FBCF0E94AB16809115 -:1036A000E80083FF1FC18091240290912502492FD9 -:1036B00050E04A30510508F015C1FA01E25AFF4FB7 -:1036C0000C94832F803881F0823809F00BC18091EF -:1036D00028028F708093E9008091EB0085FB88279A -:1036E00080F91092E90006C0809120029091210299 -:1036F000911182609091E800977F9093E800809309 -:10370000F1001092F100C8C0282F2D7F09F0EAC007 -:10371000882319F0823061F0E5C080912602813063 -:1037200009F0E0C0933009F080E0809321022BC0C3 -:1037300080912602811127C0809128028F7009F4A0 -:10374000D1C08093E9002091EB0020FF1CC0933092 -:1037500021F48091EB00806214C09091EB009061A5 -:103760009093EB0021E030E0A90102C0440F551F07 -:103770008A95E2F74093EA001092EA008091EB000C -:1037800088608093EB001092E9008091E800877FC9 -:1037900086C08111A7C0109126021F778091E30097 -:1037A0008078812B8093E3008091E800877F80936D -:1037B000E8000E9457198091E80080FFFCCF8091BB -:1037C000E30080688093E300111102C082E001C031 -:1037D00083E08093230286C08058823008F082C044 -:1037E00080912602909127028C3D53E0950779F550 -:1037F00083E08A838AE289834FB7F894DE011396C7 -:1038000020E03EE051E2E32FF0E050935700E491D6 -:1038100020FF03C0E295EF703F5FEF708E2F90E0C6 -:10382000EA3010F0C79601C0C0968D939D932F5F2C -:10383000243149F74FBF8091E800877F8093E800EB -:103840006AE270E0CE0101960E945E1814C0AE01DB -:103850004F5F5F4F609128020E94A517BC0100973F -:1038600009F440C09091E800977F9093E800898127 -:103870009A810E94C1188091E8008B778093E800BC -:1038800031C0803879F58091E800877F8093E80027 -:1038900080911F028093F1008091E8008E778093E1 -:1038A000E8000E9457191EC081111CC09091260289 -:1038B0009230C0F48091E800877F8093E800909375 -:1038C0001F020E94571980911F02811106C080912A -:1038D000E30087FD02C081E001C084E08093230201 -:1038E0000E9497168091E80083FF0AC08091E8004B -:1038F000877F8093E8008091EB0080628093EB00EB -:10390000AA960FB6F894DEBF0FBECDBFDF91CF9160 -:103910001F910895CF93809123028823A1F0C09135 -:10392000E900CF709091EC00892F817090FD80E8C4 -:10393000C82B1092E9008091E80083FD0E94391B9A -:10394000CF70C093E900CF91089590938501809343 -:1039500084010895E0918401F0918501309721F070 -:103960000190F081E02D099480E00895EF92FF929C -:103970000F931F93CF93DF93E0918401F091850122 -:103980003097B1F18C010280F381E02D099580918F -:10399000E60182FF2DC080FF04C08FE599E00E9400 -:1039A0004008E80110E189E5E82E89E0F82E8091D1 -:1039B000E60180FF0BC088811F928F93FF92EF92E8 -:1039C0000E94D9080F900F900F900F9011502196E0 -:1039D0001111EDCF8091E60180FF0AC087E599E0E3 -:1039E000DF91CF911F910F91FF90EF900C944008C1 -:1039F000DF91CF911F910F91FF90EF90089520914B -:103A00008201309183018217930771F090938301B3 -:103A100080938201E0918401F0918501309721F03B -:103A20000680F781E02D099408952091800130915E -:103A300081018217930771F0909381018093800137 -:103A4000E0918401F0918501309721F00084F185A7 -:103A5000E02D0994089508950C942B1D0E94FD28D3 -:103A60000E94380D0E94BF290C94722ECF93DF93D1 -:103A70001F92CDB7DEB79091E60192FF10C090FF84 -:103A80000EC01F928F9321E739E03F932F938983D4 -:103A90000E94D9080F900F900F900F9089810F907E -:103AA000DF91CF910C94220D9F92AF92BF92CF9253 -:103AB000DF92EF92FF920F931F93CF93DF9300D08B -:103AC00000D000D0CDB7DEB70E947D0D09E010E038 -:103AD000AA24A394B12C902E802F0E94F80D980157 -:103AE00029573E4F6901F901F080F826A1F40150F1 -:103AF000110988F78FEF89838A831B820E94062928 -:103B00008160782F9D838C8349815A816B818D815F -:103B10000E94E91D2FC09091E60191FF04C08E83A1 -:103B20000E94FE0D8E8127E030E0A501022E01C02B -:103B3000440F0A94EAF7E42E4F21C1F029839A82B8 -:103B40008E2191E009F490E09B830E940629816018 -:103B5000782F9D838C8349815A816B818D810E944E -:103B6000E91DF6018081E826E08204C02150310978 -:103B7000E0F6BDCF109186010E94AA1C1817B9F07B -:103B80000E94AA1C8093860126960FB6F894DEBF89 -:103B90000FBECDBFDF91CF911F910F91FF90EF909E -:103BA000DF90CF90BF90AF909F900C94361D2696DB -:103BB0000FB6F894DEBF0FBECDBFDF91CF911F913E -:103BC0000F91FF90EF90DF90CF90BF90AF909F90BC -:103BD0000895CF93DF93CDB7DEB72B970FB6F89448 -:103BE000DEBF0FBECDBF4F83588769877A878B872B -:103BF000DE01119686E0FD0111928A95E9F785E0D4 -:103C0000FE01379601900D928A95E1F749815A811C -:103C10006B817C818D819E810E9451242B960FB6F1 -:103C2000F894DEBF0FBECDBFDF91CF910895CF9343 -:103C3000882309F4C2C0C82F823859F40E94AA1CF4 -:103C400081FDBBC089E30E942B270E941A2889E3CB -:103C50000CC0833879F40E94AA1C80FDAEC083E5B5 -:103C60000E942B270E941A2883E50E947E27CF916D -:103C70000C941A28843859F40E94AA1C82FD9DC015 -:103C800087E40E942B270E941A2887E4EECF8CEF4E -:103C90008C0F813A48F48C2F0E94232E81118DC005 -:103CA0008C2F0E942B27E3CF80E28C0F883048F4C2 -:103CB000C77081E001C0880FCA95EAF70E94D32738 -:103CC000D6CF8BE58C0F833078F4C53A29F0C63A0D -:103CD00031F083E890E005C081E890E002C082E81E -:103CE00090E0CF910C94FF1C88E58C0F833108F095 -:103CF00064C0C83A39F1C93A41F1CA3A49F1CB3AFC -:103D000051F1CC3A59F1CD3A61F1C03B69F1CE3A6B -:103D100071F1CF3A79F1C13B81F1C23B89F1C33BEB -:103D200091F1C43B99F1C53BA1F1C63BA9F1C73B59 -:103D3000B1F1C83BB9F1C93BC1F1CA3BC9F180E05F -:103D400090E038C082EE90E035C089EE90E032C05D -:103D50008AEE90E02FC085EB90E02CC086EB90E0DF -:103D600029C087EB90E026C08CEC90E023C08DEC5E -:103D700090E020C083E891E01DC08AE891E01AC07D -:103D800082E991E017C084E991E014C081E292E0F9 -:103D900011C083E292E00EC084E292E00BC085E2A3 -:103DA00092E008C086E292E005C087E292E002C09D -:103DB0008AE292E0CF910C94151DCF91089588234B -:103DC00009F44BC0823859F40E94AA1C81FF45C0F7 -:103DD00089E30E942B270E941A2889E30CC08338AC -:103DE00071F40E94AA1C80FF38C083E50E942B2733 -:103DF0000E941A2883E50E947E270C941A28843892 -:103E000059F40E94AA1C82FF28C087E40E942B2735 -:103E10000E941A2887E4EFCF9CEF980F913A58F34D -:103E200090E2980F983050F4877091E001C0990F9C -:103E30008A95EAF7892F0E94D927DFCF9BE5980F53 -:103E4000933020F480E090E00C94FF1C885A83317A -:103E500020F480E090E00C94151D0895882321F053 -:103E60000E94D3270C941A280895882321F00E94D9 -:103E7000D9270C941A2808957F928F929F92AF921F -:103E8000BF92CF92DF92EF92FF920F931F93CF9347 -:103E9000DF931F92CDB7DEB77C01C62E772EFC01D3 -:103EA000058102950F70128111110E94F0270E9466 -:103EB0002427882379F0112369F080E28C0D883063 -:103EC00048F082E00E940D270E94242791E0D82E1E -:103ED000D92601C0D12CE72DE295EF70F0E0E8592A -:103EE000FF4F0C94832F872D807F072D0F70882321 -:103EF00011F00295007F112389F0002309F48EC18F -:103F000080E28C0D883020F4802F0E94D32703C0DC -:103F1000802F0E94E3270E941A2880C18C2D0E94C6 -:103F2000DF1E002309F4B8C180E28C0D883020F434 -:103F3000802F0E94D92703C0802F0E94E9270E946A -:103F40001A28AAC1872D807F972D9F70803211F487 -:103F5000892F03C0892F8295807FCC2021F0F1E04A -:103F6000CF16A1F01DC0112339F0002319F1013043 -:103F700009F50E94032890C1002319F0013009F4CB -:103F80008BC189830E940628898105C1112321F0F4 -:103F9000063008F081C10EC0053008F07DC1FBC0BD -:103FA000112359F0002331F0F701958190FF36C1BC -:103FB0009F7095830E942E1F6FC1002309F4EBC0F0 -:103FC00033C1872D86958695837090E0009719F010 -:103FD000019761F061C1112321F08C2D972D937011 -:103FE00002C080E090E00E94FF1C56C1112321F026 -:103FF0008C2D972D937002C080E090E00E94151DDB -:104000004BC1872D837009F052C0111145C18C2D11 -:10401000829586958770880F880F9C2D9F70892EBA -:10402000912CA12CB12C082E04C0880C991CAA1C20 -:10403000BB1C0A94D2F7C4FE14C00FE010E020E0CD -:1040400030E0B901A80104C0440F551F661F771F57 -:104050008A95D2F7CB01BA016095709580959095BD -:1040600003C060E070E0CB01272D269526952370D4 -:1040700030E02230310569F02330310589F06829BC -:1040800079298A299B292130310571F00E949925CF -:1040900003C1682979298A299B290E94B525FCC07A -:1040A0000E949925C501B4010E947D25F5C0112308 -:1040B00019F0872D817001C08695882309F4ECC022 -:1040C0008C2D829586958770880F880F9C2D9F7008 -:1040D000892E912CA12CB12C082E04C0880C991C7F -:1040E000AA1CBB1C0A94D2F7C4FE14C00FE010E057 -:1040F00020E030E0B901A80104C0440F551F661F3D -:10410000771F8A95D2F7CB01BA016095709580959B -:10411000909503C060E070E0CB01272D2695269591 -:104120002370422F50E04230510569F04330510571 -:1041300089F0682979298A299B294130510571F034 -:104140000E947326A9C0682979298A299B290E947F -:104150008F26A2C00E947326C501B4010E94572673 -:104160009BC08C2D90E0FC01E05EF109E531F1058A -:1041700008F050C0E858FF4F0C94832F0C2D0F709F -:10418000872D8F71112321F00E94F025802F12CFEF -:104190000E941126802F0E94351F7EC0112341F0FE -:1041A000053008F079C0872D8F710E94362674C0C3 -:1041B000063008F071C0F7CF112339F0872D8F71C9 -:1041C0000E94F02569C01123C9F3872D8F710E94C9 -:1041D000112662C0112329F0872D8F710E94DB25E3 -:1041E0005BC00E94D12558C0112351F0172D1F71BB -:1041F000812F0E94F02563E0812F0E9404274CC08C -:1042000081E00E940D27023008F446C082E00E943F -:104210000D2742C0112331F0002381F28C2D0E9422 -:10422000171E3AC0002389F28C2D0E94DF1E34C075 -:10423000472D4F706C2DC7010E94FB090E94F52489 -:104240002BC0111129C0472D4F7050E0423051054D -:10425000B9F04CF44115510581F041305105E1F4BC -:104260000E94A72E19C04330510569F04430510512 -:1042700099F48C2D0E94322F0FC00E94832E0CC007 -:104280000E94D62E09C00E94FC2E06C0472D4F70FA -:104290006C2DC7010E941B09DD20F9F00E94002748 -:1042A00080FD1BC0F70112820E94FA260E94F025B1 -:1042B000C7010E947C210E94FA260F90DF91CF91C6 -:1042C0001F910F91FF90EF90DF90CF90BF90AF9034 -:1042D0009F908F907F900C9411260F90DF91CF913B -:1042E0001F910F91FF90EF90DF90CF90BF90AF9014 -:1042F0009F908F907F9008950F931F93CF93DF939C -:10430000EC01888199812B813C81232BB9F09F3F5F -:1043100011F48F3F99F0CE010E944F09882371F06C -:10432000688179818A810E94F6268C010E94AB26E1 -:104330000E947225B801CE010E943C1FDF91CF91EF -:104340001F910F9108950E94F0270E9400280E945B -:10435000C5270E941A2880E090E00E94FF1C80E0A0 -:1043600090E00C94151D0E94E0270C94A3210E945C -:10437000EB26292F22952F7030E02C3031054CF49C -:104380002A3031056CF42250310922303105A8F46D -:1043900007C02C30310569F02F30310551F00DC0C8 -:1043A000803F69F018F4803E40F409C0843F29F44E -:1043B00006C093FB882780F9089580E0089581E086 -:1043C0000895CF93DF9300D000D01F92CDB7DEB712 -:1043D0000F900F900F900F900F90DF91CF91089555 -:1043E000CF93DF9300D000D000D0CDB7DEB72696B4 -:1043F0000FB6F894DEBF0FBECDBFDF91CF91089509 -:104400001F93CF93DF93C091910116E080919201A9 -:10441000C81799F0D0E01C9FF0011D9FF00D1124EA -:10442000ED56FE4F40815181628173818481958177 -:104430000E94F0212196C770E9CFDF91CF911F91A3 -:1044400008954091C3015091C4016091C5017091DC -:10445000C6018091C7019091C8010C94F021809110 -:10446000C80182958F7009F054C08091C5018823DE -:1044700009F44FC080919101A09192016091C30114 -:104480007091C4014091C6015091C701B6E08A17EE -:1044900009F43FC090E041155105C1F17F3F11F48F -:1044A0006F3FA1F1B89FF001B99FF00D1124ED56B7 -:1044B000FE4F218172132AC02081621327C02281FE -:1044C000211124C0238134812417350710F4215091 -:1044D0003109241B350B283C3105C0F42091C8015B -:1044E0002F7020612093C80126E0289FF001299FAA -:1044F000F00D1124E856FE4F80818F70806180831B -:1045000083EC91E00E947C210C940022019687703C -:10451000BECF0895CF92DF92EF92FF920F931F9339 -:10452000CF93DF93CDB7DEB762970FB6F894DEBFB7 -:104530000FBECDBF8C0185E0F801DE011D96019014 -:104540000D928A95E1F7D8014C9111965C911197E3 -:1045500012966C9112971396CD90DC90149730912F -:10456000C3017091C4018091C6019091C701009769 -:1045700009F46BC17F3F19F43F3F09F466C1E09035 -:10458000C501EE2009F4C0C02091C801C816D906A3 -:1045900028F0F601E81BF90BCF0104C08095909537 -:1045A0008C0D9D1DFF24F394883C910578F0F12C2F -:1045B000207F09F0C6C07C2DD98AC88A89890E94CB -:1045C000E12183EC91E00E947C21B1C0822F807FA9 -:1045D00009F046C0751314C0341312C0611110C025 -:1045E0002F7020612093C8010E94212283EC91E06A -:1045F0000E947C218091C801D80115968C932EC011 -:10460000CD2819F15F3F11F44F3FF9F0F62E6111FB -:104610001CC0809191012091920136E0821709F42B -:104620005AC090E0389FF001399FF00D1124ED56EB -:10463000FE4F7181571306C07081471303C072810A -:10464000711103C001968770E9CFF62E662309F435 -:1046500018C18091C80181608093C801F12C11C1FB -:10466000751308C0341306C0611104C08091C801DD -:10467000D801C3C04D875E878D859E856A8B0E9459 -:10468000B7216A898823E1F16623D1F12091C8011D -:10469000822F82958F7090E0029774F08091C30111 -:1046A0009091C40198878F831986DB86CA862C87F0 -:1046B000CE0107960E947C2186E0F801A3ECB1E0D0 -:1046C00001900D928A95E1F70E942F220E942122EB -:1046D000FF24F394D6C04D875E878D859E850E940A -:1046E000EB26292F22952F7030E0223031050CF077 -:1046F000BCC09F7009F0B6C0805E883008F4C1C0AD -:10470000C8010E947C21E4CFC816D90608F453C022 -:10471000F601E81BF90BCF01883C910508F450C065 -:10472000F12C7C2DD98AC88A89890E94E121E3EC89 -:10473000F1E086E0DF011D928A95E9F70E942122CF -:10474000A0C0751314C0341312C0611110C0809141 -:10475000C801F8018583C8010E947C2186E0E3EC52 -:10476000F1E0DF011D928A95E9F7FE2C8AC04D87A2 -:104770005E878D859E856A8B0E94B7216A89882312 -:1047800009F4BECF662309F4BBCF2091C801822F64 -:1047900082958F7090E002970CF48ECF8091C301C8 -:1047A0009091C4019A8389831B82DD82CC822E83FF -:1047B000CE0101967FCF809590958C0D9D1DACCF3D -:1047C000F62E662309F49CCF75132EC034132CC02B -:1047D0002091C80120FD1FC0822F82958F70D9F0D3 -:1047E000D80115962C9315978F3049F08F5F982F2D -:1047F0009295907F822F8F70892B15968C93C8018C -:104800000E947C2186E0F801A3ECB1E001900D92BA -:104810008A95E1F793CF86E0F801A3ECB1E001902F -:104820000D928A95E1F72DC04D875E878D859E8517 -:104830000E94B721811140CF8091C801816080938F -:10484000C801C8010E947C211CC0662309F458CF0E -:104850004D875E878D859E850E94B721882309F448 -:104860004FCF2ACF811148CF0CC0243031050CF036 -:1048700047CF9F7009F440CFF8019581907F09F0F0 -:104880003BCF8F2D62960FB6F894DEBF0FBECDBF23 -:10489000DF91CF911F910F91FF90EF90DF90CF901C -:1048A00008951F93CF93DF93CDB7DEB72C970FB644 -:1048B000F894DEBF0FBECDBF4F83588769877A87D4 -:1048C0008B879C87CE0107960E948A22882369F0F5 -:1048D0008F8198852A853B85232BF1F19F3F09F035 -:1048E00063C08F3F09F060C037C086E0FE01379695 -:1048F000DE01119601900D928A95E1F76F8178851E -:10490000EA85FB85309741F17F3F11F46F3F21F13C -:104910002091920130E0C90101968770992740915A -:10492000910150E08417950709F447C069837A83A1 -:10493000FD83EC8396E0929FD001939FB00D1124EC -:10494000AD56BE4FFE01319601900D929A95E1F75A -:10495000809392010E94002216E080919101909133 -:1049600092018917C1F1189FC00111248D569E4FE5 -:104970000E948A22882379F1E09191011E9FF00123 -:104980001124ED56FE4F40815181628173818481F3 -:1049900095810E94F0218091910190E001968770AD -:1049A000992780939101D9CF4F81588569857A8560 -:1049B0008B859C850E94F021CFCF0E94B32110925D -:1049C000920110929101E3ECF1E086E0DF011D928B -:1049D0008A95E9F7C1CF2C960FB6F894DEBF0FBECB -:1049E000CDBFDF91CF911F910895EF92FF920F936A -:1049F0001F93CF93DF938C01009709F46CC0F12CC7 -:104A0000EE24E394E8012196F8018491843740F480 -:104A1000843008F051C0813081F0823019F15BC0E0 -:104A2000853709F444C0A8F19CE7980F903708F047 -:104A300052C08F770E94DF1E41C00E5F1F4FFE01E4 -:104A4000C49180E28C0F883048F4C7708E2D01C06D -:104A5000880FCA95EAF70E94F32714C08C2F0E9492 -:104A6000171E2DC00E5F1F4FFE01C49180E28C0FF8 -:104A7000883058F4C7708E2D01C0880FCA95EAF7A8 -:104A80000E94F9270E941A281AC08C2F0E94DF1E4C -:104A900016C00E5F1F4FFE01C491CC2381F08FE939 -:104AA0009FE00197F1F700C00000C150F6CF0E5F04 -:104AB0001F4FFE01F49003C00E94171E8E018F2D20 -:104AC000882309F49FCFEFE9FFE03197F1F700C0A9 -:104AD00000008150F5CFDF91CF911F910F91FF9092 -:104AE000EF90089508956093CD017093CE01809367 -:104AF000CF019093D0010C94A3210F931F930091A9 -:104B0000CD011091CE012091CF013091D001DC0177 -:104B1000CB01802B912BA22BB32B8093CD019093B3 -:104B2000CE01A093CF01B093D0011F910F910C94AF -:104B3000A3210F931F930091CD011091CE012091DD -:104B4000CF013091D001DC01CB0180239123A2233E -:104B5000B3238093CD019093CE01A093CF01B09366 -:104B6000D0011F910F910C94A3210F931F930091DB -:104B7000CD011091CE012091CF013091D001DC0107 -:104B8000CB0180279127A227B3278093CD01909353 -:104B9000CE01A093CF01B093D0011F910F910C943F -:104BA000A3211092C9011092CA011092CB01109258 -:104BB000CC010C94A32141E050E060E070E004C01F -:104BC000440F551F661F771F8A95D2F74093C9017E -:104BD0005093CA016093CB017093CC010C94A32134 -:104BE00041E050E060E070E004C0440F551F661FD4 -:104BF000771F8A95D2F78091C9019091CA01A0913F -:104C0000CB01B091CC01482B592B6A2B7B2B4093C5 -:104C1000C9015093CA016093CB017093CC010C94ED -:104C2000A32141E050E060E070E004C0440F551F54 -:104C3000661F771F8A95D2F74095509560957095BD -:104C40008091C9019091CA01A091CB01B091CC0192 -:104C5000482359236A237B234093C9015093CA01F7 -:104C60006093CB017093CC010C94A32141E050E000 -:104C700060E070E004C0440F551F661F771F8A95DF -:104C8000D2F78091C9019091CA01A091CB01B09156 -:104C9000CC01482759276A277B274093C9015093A5 -:104CA000CA016093CB017093CC010C94A3210F93A4 -:104CB0001F930091C9011091CA012091CB0130913D -:104CC000CC01DC01CB01802B912BA22BB32B809349 -:104CD000C9019093CA01A093CB01B093CC011F915D -:104CE0000F910C94A3210F931F930091C901109170 -:104CF000CA012091CB013091CC01DC01CB01802392 -:104D00009123A223B3238093C9019093CA01A09356 -:104D1000CB01B093CC011F910F910C94A3210F9361 -:104D20001F930091C9011091CA012091CB013091CC -:104D3000CC01DC01CB0180279127A227B3278093E8 -:104D4000C9019093CA01A093CB01B093CC011F91EC -:104D50000F910C94A3210895CF92DF92EF92FF92CE -:104D60000F931F93CF93DF938C01C090CD01D09010 -:104D7000CE01E090CF01F090D0018091C9019091D7 -:104D8000CA01A091CB01B091CC01C82AD92AEA2A44 -:104D9000FB2ACFE1D0E0D701C6010C2E04C0B695A6 -:104DA000A795979587950A94D2F780FF06C0B8011A -:104DB0008C2F0E94850C019721F4219760F780E0E9 -:104DC00001C08C2FDF91CF911F910F91FF90EF9039 -:104DD000DF90CF900895CF93DF93EC010E94AC2633 -:104DE000BE010E94850CDF91CF910895CB010E94F6 -:104DF000EB2608958091D101859585958595089537 -:104E00008091D1018770089598E0899F90011124C5 -:104E1000262B2093D1010C94F0252091D10180956F -:104E200082238093D101982F977069F430E0482F46 -:104E3000552747FD50952417350729F08595859509 -:104E400085950C94112608959091D101977081E079 -:104E500009F480E0089590910C01992321F090913C -:104E60000D01911109C020910E0130910F01F9013E -:104E700032969FEF40E030C0982F96959695969584 -:104E80009F30A0F4E0910E01F0910F01E90FF11DA8 -:104E9000877021E030E0A90102C0440F551F8A95B8 -:104EA000E2F7CA019181892B818308959091E601EF -:104EB00090FF23C01F928F9388EA99E09F938F936E -:104EC0000E94D9080F900F900F900F9008959F3F68 -:104ED00039F04F5F4E3041F051915813F8CF0DC06B -:104EE0005111F7CF942FF5CF9F3F39F0F901E90F1A -:104EF000F11D97FDFA9582830895089590910C0114 -:104F0000992321F090910D01911109C020910E017A -:104F100030910F01F9013296205F3F4F30C0982F3A -:104F20009695969596959F30A8F4E0910E01F09194 -:104F30000F01E90FF11D877021E030E0A90102C0E7 -:104F4000440F551F8A95E2F7CA0180959181892304 -:104F5000818308959091E60190FF16C01F928F9370 -:104F60008AE899E09F938F930E94D9080F900F9041 -:104F70000F900F9008953196E217F30729F0908172 -:104F80009813F9CF1082F7CF089581E090E0E09177 -:104F90000E01F0910F01E80FF91F10820196803188 -:104FA0009105A9F708959091E501892B8093E5017A -:104FB000089580959091E50189238093E5010895F6 -:104FC0001092E50108959091E401892B8093E4010A -:104FD000089580959091E40189238093E4010895D8 -:104FE0001092E40108959091E301892B8093E301ED -:104FF000089580959091E30189238093E3010895BA -:105000001092E30108958093D20108951092D20185 -:10501000089580910E0190910F01FC0131969C0141 -:10502000205F3F4F80E0919191118F5FE217F3076E -:10503000D1F70895E0910E01F0910F018091E50103 -:105040008083E0910E01F0910F0190818091E40145 -:10505000892B8083E0910E01F0910F019081809166 -:10506000E301892B80838091D201882361F0E09154 -:105070000E01F0910F019081892B80830E940928F5 -:1050800081111092D20180910E0190910F010C9428 -:10509000B61C9093370180933601089520E0009765 -:1050A00039F0AC0141505109842395232F5FF7CF8C -:1050B000822F08958295982F9C7C392F36953695AE -:1050C000282F237344E0249FC0011124932F982B91 -:1050D000292F2A7A2695892F8575880F822B089586 -:1050E0001F93CF93DF931F92CDB7DEB799830E94B2 -:1050F0005A28182F9981892F0E945A28212F30E091 -:10510000322F2227A901482BCA010F90DF91CF919E -:105110001F91089580912302843039F11092E701A4 -:1051200020E488E190E00FB6F894A89580936000A1 -:105130000FBE2093600080E00E94ED0880E00E9496 -:10514000220D83B7817F846083BF83B7816083BF73 -:105150007894889583B78E7F83BF88E10FB6F894E3 -:1051600080936000109260000FBE08950895089526 -:1051700080E00E94ED080E94B6280E947D0D0E94EA -:10518000B7280E94300E91E0811101C090E0892F74 -:1051900008950E94B32180E00E94ED080E94722EC3 -:1051A0000E94AA1C0C94220D1F920F920FB60F9210 -:1051B00011248F939F93AF93BF938091E701811147 -:1051C00013C08091E8019091E901A091EA01B091AA -:1051D000EB014196A11DB11D8093E8019093E90177 -:1051E000A093EA01B093EB01BF91AF919F918F9192 -:1051F0000F900FBE0F901F90189582E084BD93E032 -:1052000095BD9AEF97BD80936E0008952FB7F894DF -:105210008091E8019091E901A091EA01B091EB0140 -:105220002FBF0895CF92DF92EF92FF920F931F93BB -:105230002FB7F8944091E8015091E9016091EA019B -:105240007091EB012FBF6A017B01EE24FF248C01DA -:1052500020E030E0C016D106E206F30610F441501B -:1052600051099A01281B390BC9011F910F91FF9019 -:10527000EF90DF90CF9008951F920F920FB60F928C -:1052800011248F939F93AF93BF938091E8019091E6 -:10529000E901A091EA01B091EB010196A11DB11DB8 -:1052A0008093E8019093E901A093EA01B093EB01A8 -:1052B000BF91AF919F918F910F900FBE0F901F9054 -:1052C00018950E94A819F8942FEF87EA91E62150CB -:1052D00080409040E1F700C0000087E090EBDC01E7 -:1052E00080932E0290932F02A0933002B09331024C -:1052F0009CE088E10FB6F894A895809360000FBEFB -:1053000090936000FFCFEF92FF920F931F93CF9384 -:10531000DF93D82FC9E08C2F0E94F80D07E010E032 -:10532000E82EF12CC701002E02C0959587950A94AE -:10533000E2F780FF09C0602F7C2F80E00E94FE0909 -:10534000D81302C081E006C00150110958F7C150BE -:1053500010F780E0DF91CF911F910F91FF90EF90B8 -:105360000895CF93C82F8CE20E948329882321F0CF -:105370008C2FCF910C94832980E0CF910895CF9307 -:105380000E94132B811102C00E94F42A8DEC99E037 -:105390000E944008C5E6C15049F00E947D0D8FE390 -:1053A0009CE90197F1F700C00000F5CF86EC99E089 -:1053B0000E94400889E20E94B129811113C18AE24A -:1053C0000E94B12981110E94F42A85E00E94B1292E -:1053D00081110E9461290E941E2B8093E60187E0C3 -:1053E0000E94B1298823A9F18BE10E94B129882369 -:1053F00051F08091E60181FB222720F991E092276C -:1054000090FB81F90EC08EE00E94B129882361F0E3 -:105410008091E60182FB222720F991E0922790FB00 -:1054200082F98093E60115C080E10E94B129909134 -:10543000E601882341F093FB222720F981E08227AF -:1054400080FB93F904C0892F809580FB90F990939D -:10545000E6018091E6010E94222B0E94302B80936E -:105460002C0280EE0E94B129882341F080912C0209 -:10547000982F909590FB80F980932C0289E30E94ED -:10548000B129882359F080912C0281FB222720F931 -:1054900091E0922790FB81F980932C0282EE0E948A -:1054A000B129882359F080912C0282FB222720F910 -:1054B00091E0922790FB82F980932C0286EE0E9465 -:1054C000B129882359F080912C0283FB222720F9EF -:1054D00091E0922790FB83F980932C0283EE0E9447 -:1054E000B129882359F080912C0284FB222720F9CE -:1054F00091E0922790FB84F980932C0285E30E942F -:10550000B129882359F080912C0285FB222720F9AC -:1055100091E0922790FB85F980932C0281E30E9411 -:10552000B129882359F080912C0286FB222720F98B -:1055300091E0922790FB86F980932C0281E10E94F2 -:10554000B129882359F080912C0287FB222720F96A -:1055500091E0922790FB87F980932C0280912C0296 -:105560000E94342B80912C0287FB882780F980933E -:105570000D0187E20E94B129C82F8EE10E94B12956 -:105580008111C2608FE10E94B1298111C46080E263 -:105590000E94B1298111C86081E20E94B129811164 -:1055A000C06182E20E94B1298111C06283E20E943F -:1055B000B1298111C06484E20E94B129882311F0CD -:1055C000C06802C0CC2329F08C2F0E942B2B6C2F9B -:1055D00003C00E94272B682F70E080E090E0CF91FD -:1055E0000C947325CF9108956DEE7EEF80E090E0EE -:1055F0000E94BB2F60E082E090E00E949D2F60E05F -:1056000083E090E00E949D2F60E084E090E00E94A3 -:105610009D2F60E085E090E00E949D2F60E086E095 -:1056200090E00C949D2F80E090E00E94972F21E065 -:105630008D3E9E4F09F020E0822F089582E090E099 -:105640000C94892F682F82E090E00C949D2F83E0CA -:1056500090E00C94892F682F83E090E00C949D2FAC -:1056600084E090E00C94892F682F84E090E00C9403 -:105670009D2F86E090E00C94892F682F86E090E0C3 -:105680000C949D2FCF93C82F1F928F9388EE99E093 -:105690009F938F930E94D90881E090E0A0E0B0E052 -:1056A000BC01CD0104C0660F771F881F991FCA95E2 -:1056B000D2F70E9473250F900F900F900F90CF910B -:1056C0000C94B321CF938B3109F40FC208F049C079 -:1056D0008E3009F41EC200F5873009F4E7C1A8F442 -:1056E000863009F0A4C28091E601817F8E7F80938D -:1056F000E60186E89BE00E94400882E79FE00E9466 -:10570000400881E08093EC01CFC1883009F45BC090 -:105710008B3009F4C5C18BC2813109F470C220F409 -:10572000803109F40AC283C2863109F421C2893169 -:1057300009F07DC287E79BE00E9440088CE49BE073 -:105740000E9440088AEF9AE00E9440088DEC9AE09F -:105750000E94400881E99AE00E94400886E69AE0AB -:10576000A1C1853309F45FC268F4873209F45BC2D2 -:1057700028F48E3108F45BC28D5156C2893209F487 -:1057800052C255C2833438F48A3308F04AC288338F -:1057900009F486C14CC2833409F445C2883409F047 -:1057A00046C20E94B32186E59FE00E9440089FEF19 -:1057B00023ED80E3915020408040E1F700C00000DD -:1057C0000E94612971C186E79FE00E94400883EC36 -:1057D0009EE00E9440080E94272B1F928F9380EC2E -:1057E0009EE09F938F930E94D9088EEB9EE00E94CB -:1057F00040080E941E2BC82F8BEA9EE00E944008A2 -:105800001F92CF9386EA9EE09F938F930E94D908C0 -:1058100084EA9EE00E9440088AE99EE00E944008D7 -:105820008C2F81701F928F9387E99EE09F938F93B7 -:105830000E94D90885E99EE00E9440088BE89EE01E -:105840000E944008C1FB882780F91F928F9388E847 -:105850009EE09F938F930E94D90886E89EE00E9465 -:1058600040088AE79EE00E944008C2FB882780F932 -:105870001F928F9387E79EE09F938F930E94D90892 -:1058800085E79EE00E9440088CE69EE00E9440086A -:10589000C3FBCC27C0F91F92CF9389E69EE09F936C -:1058A0008F930E94D90887E69EE00E9440080E94DC -:1058B000302BC82F83E59EE00E9440081F92CF93B3 -:1058C0008EE49EE09F938F930E94D9088CE49EE023 -:1058D0000E94400883E39EE00E9440088C2F817064 -:1058E0001F928F9380E39EE09F938F930E94D9082D -:1058F0008DB79EB780960FB6F8949EBF0FBE8DBF32 -:105900008EE29EE00E94400887E19EE00E944008EF -:10591000C1FB882780F91F928F9384E19EE09F93BB -:105920008F930E94D90882E19EE00E94400880E0A7 -:105930009EE00E944008C2FB882780F91F928F9347 -:105940008DEF9DE09F938F930E94D9088BEF9DE090 -:105950000E94400889EE9DE00E944008C3FB882712 -:1059600080F91F928F9386EE9DE09F938F930E9404 -:10597000D90884EE9DE00E9440088AED9DE00E94D7 -:105980004008C4FB882780F91F928F9387ED9DE024 -:105990009F938F930E94D90885ED9DE00E94400857 -:1059A00083EC9DE00E944008C5FB882780F91F9288 -:1059B0008F9380EC9DE09F938F930E94D9088EEB8C -:1059C0009DE00E94400882EA9DE00E944008C6FBDC -:1059D000882780F91F928F938FE99DE09F938F9383 -:1059E0000E94D9088DE99DE00E94400885E99DE06C -:1059F0000E944008C7FBCC27C0F91F92CF9382E9D1 -:105A00009DE09F938F930E94D90880E99DE00E94BA -:105A100040080E94392BC82F89E79DE00E9440086A -:105A20001F92CF9384E79DE09F938F930E94D908A4 -:105A30008DB79EB780960FB6F8949EBF0FBE8DBFF0 -:105A400082E79DE00E94400888E69DE00E944008B1 -:105A50008C2F81701F928F9385E69DE09F938F938B -:105A60000E94D90883E69DE00E9440088AE59DE0F7 -:105A70000E944008C6951F92CF9387E59DE09F93B3 -:105A80008F930E94D90885E59DE00E9440088DB75C -:105A90009EB708960FB6F8949EBF0FBE8DBF04C088 -:105AA00081EA9BE00E944008C1E0C6C08091E60107 -:105AB000C82FC095C170C0FB80F98093E601CC234C -:105AC00049F08AE49FE00E9440088091E6018660E8 -:105AD000886048C08DE39FE00E9440088091E60105 -:105AE000897F877F8093E601DFCF9091E60191FB6C -:105AF000CC27C0F981E0C827892FC0FB81F98093AA -:105B0000E601CC2319F080E39FE027C082E29FE00A -:105B1000C9CF9091E60192FBCC27C0F981E0C8275C -:105B2000892FC0FB82F98093E601CC2319F083E131 -:105B30009FE013C083E09FE0B5CF9091E60193FB17 -:105B4000CC27C0F981E0C827892FC0FB83F9809357 -:105B5000E601CC2351F087EF9EE00E94400880913F -:105B6000E60181608093E60167C08AEE9EE09ACFED -:105B700088E59AE00E9440080E94AA1C1F928F9319 -:105B80008EE39AE09F938F930E94D90880910C0135 -:105B90001F928F9387E29AE09F938F930E94D90878 -:105BA00080917F011F928F9384E19AE09F938F935E -:105BB0000E94D90880910D011F928F9381E09AE095 -:105BC0009F938F930E94D9088091E8019091E901F9 -:105BD000A091EA01B091EB01BF93AF939F938F9394 -:105BE0008DEE99E09F938F930E94D9088DB79EB751 -:105BF00046960FB6F8949EBF0FBE8DBF55CF0E943C -:105C0000B321C0910D0181E0C827C0930D01CC23C1 -:105C100029F080EE9EE00E9440080EC085ED9EE0D7 -:105C200041CF895301C080E00E94422B3DCF83EDDC -:105C30009EE00E944008C0E08C2FCF91089580E044 -:105C4000089580E00895CF93C82F8091EC018823B8 -:105C500019F0813049F03EC0E0910E01F0910F0142 -:105C600080818232C9F507C0E0910E01F0910F01E9 -:105C70008081823261F48C2F0E941F2E811104C01A -:105C80008C2F0E94622B24C081E090E021C08C2FD9 -:105C90000E94212E81111BC0C43189F018F4CB3031 -:105CA00029F010C0C93259F0C83361F486E89BE08E -:105CB0000E94400884EE99E00E94400808C01092BB -:105CC000EC010CC082EE99E00E94400807C081E020 -:105CD000817006C01092EC0180E002C080E0F8CF35 -:105CE000CF9108950E94132B811102C00E94F42AC3 -:105CF0000E94392B80932D0280FF02C0869501C03F -:105D000080E00C94ED0880912D02982F969539F43F -:105D100081708260816080932D020E943D2B809172 -:105D2000E60180FF0FC080912D0286951F928F9310 -:105D300083EC9FE09F938F930E94D9080F900F9060 -:105D40000F900F9080912D0286950C94ED08809114 -:105D50002D02982F969591F09158990F8170892B6B -:105D600080932D028E7F91E009F490E080912D02C6 -:105D700090FB80F980932D020E943D2B8091E601DB -:105D800080FF0FC080912D0286951F928F938BEA22 -:105D90009FE09F938F930E94D9080F900F900F90D0 -:105DA0000F9080912D0286950C94ED0880912D0224 -:105DB000982F909590FB80F980932D020E943D2BA7 -:105DC0008091E60180FF0FC080912D0281701F92AB -:105DD0008F9385E99FE09F938F930E94D9080F903E -:105DE0000F900F900F9080912D0280FF02C086953A -:105DF00001C080E00C94ED0890912D02892F8695CA -:105E00008F5F8F779170823028F4880F892B809371 -:105E10002D0202C090932D0280912D028E7F91E081 -:105E200009F490E080912D0290FB80F980932D027F -:105E30000E943D2B8091E60180FF0FC080912D02D2 -:105E400086951F928F9381E89FE09F938F930E9486 -:105E5000D9080F900F900F900F9080912D0286958A -:105E60000C94ED0820912D02922F96958927982F5A -:105E7000990F822F8170892B80932D028E7F91E064 -:105E800009F490E080912D0290FB80F980932D021F -:105E90000E943D2B80912D0286950C94ED08991B54 -:105EA00079E004C0991F961708F0961B881F7A9511 -:105EB000C9F780950895AA1BBB1B51E107C0AA1F13 -:105EC000BB1FA617B70710F0A61BB70B881F991F9B -:105ED0005A95A9F780959095BC01CD01089597FB3F -:105EE000072E16F4009407D077FD09D00E945B2F8F -:105EF00007FC05D03EF4909581959F4F08957095CD -:105F000061957F4F0895EE0FFF1F0590F491E02DEE -:105F10000994F999FECF92BD81BDF89A992780B571 -:105F20000895A6E1B0E044E050E00C94C32FA8E14E -:105F3000B0E042E050E00C94C32F262FF999FECF39 -:105F400092BD81BDF89A019700B4021639F01FBACC -:105F500020BD0FB6F894FA9AF99A0FBE08950396E9 -:105F6000272F0E949E2F0E949D2F252F0E949E2F3B -:105F7000242F0C949E2F0196272F0E949E2F0C9465 -:105F80009D2FDC01CB01FC01F999FECF06C0F2BDCB -:105F9000E1BDF89A319600B40D9241505040B8F7E7 -:065FA0000895F894FFCF04 -:105FA600FFFF0F15DE151215AA1576150101D3018F -:105FB6000F1F4F5F6F7F6C1323766663530333594E -:105FC60039293F3620391809E208C2088908150818 -:065FD6002E0847086708D1 -:00000001FF diff --git a/keyboards/clueboard2/keymaps/max/keymap.c b/keyboards/clueboard2/keymaps/max/keymap.c index 714d6390d..65a101c2b 100644 --- a/keyboards/clueboard2/keymaps/max/keymap.c +++ b/keyboards/clueboard2/keymaps/max/keymap.c @@ -1,9 +1,5 @@ #include "clueboard2.h" -#ifdef ENABLE_RGBLIGHT -#include "rgblight.h" -#endif - // Used for SHIFT_ESC #define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) diff --git a/keyboards/clueboard2/keymaps/skully/compiled.hex b/keyboards/clueboard2/keymaps/skully/compiled.hex deleted file mode 100644 index a8423a2cc..000000000 --- a/keyboards/clueboard2/keymaps/skully/compiled.hex +++ /dev/null @@ -1,1246 +0,0 @@ -:100000000C94E5050C9429060C9429060C942906F9 -:100010000C9429060C9429060C9429060C942906A4 -:100020000C9429060C9429060C9449110C941B126B -:100030000C94FD1F0C9429060C9429060C94290697 -:100040000C9429060C9429060C9429060C94290674 -:100050000C9429060C9465200C9429060C9429060E -:100060000C9429060C9429060C9429060C94290654 -:100070000C9429060C9429060C9429060C94290644 -:100080000C9429060C9429060C9429060C94290634 -:100090000C9429060C9429060C9429060C94290624 -:1000A0000C9429060C9429060C9429068812AA128D -:1000B0009813AA129813EF121213981367137A1356 -:1000C00099169916C816C81607177218721872185A -:1000D00027177218D717D7173E18471872186C18B9 -:1000E000E417E417E417E417E417E417E417E41738 -:1000F000E417E417E417E417E417E417E417E41728 -:10010000F4170218091810181A18696E69745F62DA -:1001100061636B6C696768745F70696E28290A0097 -:1001200000F000201E001F002000210022002300FC -:1001300024002B0014001A000800150017001C00F2 -:100140001800E00004001600070009000A000B0078 -:100150000D00E10064001D001B00060019000500F1 -:100160001100E000E200E300015200002C002C002E -:1001700000002500260027002D002E0035002A0053 -:100180004B000C00120013002F0030003100000063 -:100190004E000E000F003300340032002800000033 -:1001A000000010003600370038008700E5005200DC -:1001B000000001520000E700E4000152500051002D -:1001C0004F0035003A003B003C003D003E003F0040 -:1001D00040000100010001000100010001000100D8 -:1001E00001000100010002520100010001000100B4 -:1001F00001000100010001000100010001000100F7 -:100200000100010001000100015200000100010095 -:1002100000004100420043004400450001004C0042 -:100220008350460047004800010001000100000023 -:1002300001000100010001000100010001000000B7 -:1002400000000100010001000100010001004B005D -:100250000000015200000100010001524A004E005E -:100260004D0001000100010001000100010001003A -:100270000100010001000100010000500100010027 -:100280000100010001000252010001000100010013 -:100290000100010001000100010001000100010056 -:1002A0000100010001000100010000000100010047 -:1002B0000000010001000100010001000100010037 -:1002C0000100010001000100010001000100000027 -:1002D0000100010001000100010001000100000017 -:1002E0000000010001000100010001000100010007 -:1002F00000000100000001000100015201000100A6 -:1003000001000A44454255473A20656E61626C65BA -:10031000642E0A005374617465206F6620726F77D3 -:100320002025583A2025303136620A0048756D6123 -:100330006E2D7265616461626C65206D61747269B5 -:10034000782073746174653A0D0A004465626F75B4 -:100350006E63696E672064656C61792072656D619A -:10036000696E696E673A2025580A005B735D004B21 -:100370006579626F6172642073746172742E0A0011 -:100380005B575D005B535D005B525D005B445D004D -:100390005B435D00420343006C0075006500620032 -:1003A0006F00610072006400200077006900740033 -:1003B00068002000520047004200200055006E00F7 -:1003C0006400650072006C006900670068007400DA -:1003D00069006E0067000000140343006C007500A4 -:1003E000650062006F006100720064000000040399 -:1003F000090409027400040100A0FA0904000001C4 -:1004000003010100092111010001223F00070581BC -:100410000308000A0904010001030000000921117A -:100420000100012236000705820308000A090402C0 -:100430000002030000000921110100012220000731 -:1004400005830320000107050303200001090403BD -:1004500000010300000009211101000122390007F9 -:100460000584031000011201100100000008EDC115 -:10047000202301000102000105010906A101050771 -:1004800019E029E715002501950875018102050885 -:1004900019012905950575019102950175039101D1 -:1004A0000507190029771500250195787501810246 -:1004B000C00631FF0974A1010975150025FF9520BB -:1004C000750881020976150025FF952075089102AF -:1004D000C005010980A101850216010026B7001A96 -:1004E00001002AB700751095018100C0050C0901B3 -:1004F000A1018503160100269C021A01002A9C0214 -:10050000751095018100C005010906A101050719B3 -:10051000E029E7150025019508750181029501750F -:1005200008810105081901290595057501910295B4 -:1005300001750391010507190029FF150025FF9595 -:100540000675088100C00A002530325820006B650E -:1005500079626F6172645F7265706F72743A2000C5 -:100560004B6579626F617264204C454473207374EB -:100570006174653A2025780A0064656C5F6B657963 -:100580005F6269743A2063616E27742064656C3A17 -:1005900020253032580A006164645F6B65795F62C0 -:1005A00069743A2063616E2774206164643A20257F -:1005B0003032580A00646F6E652E0A00626F6F67F2 -:1005C0006D61676963207363616E3A202E2E2E2061 -:1005D000003F00433E20004C25640A0074696D65AD -:1005E000725F636F756E743A202530346C580A0060 -:1005F0006B6579626F6172645F6E6B726F3A202512 -:10060000580A006B6579626F6172645F69646C653A -:100610003A2025580A006B6579626F6172645F70D9 -:10062000726F746F636F6C3A2025580A00686F739D -:10063000745F6B6579626F6172645F6C6564732867 -:10064000293A2025580A000A092D2053746174752F -:1006500073202D0A004743433A20342E392E32208E -:100660004156522D4C4942433A20312E382E3120EA -:100670004156525F415243483A20617672350A0032 -:100680004F5054494F4E533A204C55464120424F0B -:100690004F544D414749432045585452414B4559C9 -:1006A00020434F4E534F4C4520434F4D4D414E44F8 -:1006B000204E4B524F20343039360A004255494CB7 -:1006C000443A20313637313865662D646972747961 -:1006D000202832333A31303A3430204A756E2020A7 -:1006E000392032303136290A005649443A203078D0 -:1006F0004331454428436C7565626F6172642920FB -:100700005049443A2030783233323028436C756592 -:10071000626F617264207769746820524742205585 -:100720006E6465726C69676874696E6729205645E6 -:10073000523A203078303030310A00444553433A41 -:1007400020514D4B206B6579626F61726420666940 -:10075000726D7761726520666F7220436C75656299 -:100760006F6172640A000A092D2056657273696F01 -:100770006E202D0A000A092D20436F6E736F6C6581 -:10078000202D0A4553432F713A09717569740A0087 -:100790000A092D204D61676963202D0A443A0944F6 -:1007A00065627567204D65737361676520546F6777 -:1007B000676C650A583A094D61747269782044651E -:1007C000627567204D6F646520546F67676C6520A4 -:1007D0002D2053686F77206B657970726573736530 -:1007E0007320696E206D6174726978206772696424 -:1007F0000A4B3A094B6579626F6172642044656205 -:10080000756720546F67676C65202D2053686F777C -:10081000206B65797072657373207265706F727486 -:100820000A4D3A094465627567204D6F75736520FE -:10083000546F67676C650A563A0956657273696F3B -:100840006E0A533A095374617475730A433A094145 -:100850006374697661746520436F6E736F6C652095 -:100860004D6F64650A46312D4631303A0953776938 -:1008700074636820746F204C6179657220302D3963 -:100880002028463130203D204C30290A302D393A7D -:100890000953776974636820746F204C61796572BD -:1008A00020302D390A4553433A09537769746368F8 -:1008B00020746F204C6179657220302028616C743F -:1008C00065726E617465206B65792031290A475223 -:1008D0004156453A0953776974636820746F204C18 -:1008E0006179657220302028616C7465726E617464 -:1008F00065206B65792032290A50415553453A09E4 -:100900004A756D7020746F20426F6F746C6F6164F4 -:10091000657220285265736574290A453A09507238 -:10092000696E7420454550524F4D2053657474696B -:100930006E67730A4E3A094E4B524F20546F6767E9 -:100940006C650A000A002575002E6C6576656C3AA8 -:1009500020000A002575002E656E61626C653A20E4 -:10096000000A0025303258006261636B6C69676869 -:10097000745F636F6E6669672E7261773A20000A52 -:10098000002575002E6E6B726F3A20000A002575E7 -:10099000002E737761705F6261636B736C61736863 -:1009A0005F6261636B73706163653A20000A0025C2 -:1009B00075002E737761705F67726176655F65732E -:1009C000633A20000A002575002E6E6F5F67756917 -:1009D0003A20000A002575002E737761705F7261FE -:1009E0006C745F726775693A20000A002575002EE5 -:1009F000737761705F6C616C745F6C6775693A20C6 -:100A0000000A002575002E636170736C6F636B5F65 -:100A1000746F5F636F6E74726F6C3A20000A00250A -:100A200075002E737761705F636F6E74726F6C5FA9 -:100A3000636170736C6F636B3A20000A002530327B -:100A400058006B65796D61705F636F6E6669672EC4 -:100A50007261773A20000A002575002E6D6F75735C -:100A6000653A20000A002575002E6B6579626F617A -:100A700072643A20000A002575002E6D6174726957 -:100A8000783A20000A002575002E656E61626C655B -:100A90003A20000A00253032580064656275675FAD -:100AA000636F6E6669672E7261773A20000A0025CF -:100AB000750064656661756C745F6C617965723A26 -:100AC00020003F004E4B524F3A206F66660A004EA0 -:100AD0004B524F3A206F6E0A000A6D6F7573653A7C -:100AE000206F66660A000A6D6F7573653A206F6E37 -:100AF0000A000A6B6579626F6172643A206F6666FC -:100B00000A000A6B6579626F6172643A206F6E0A3F -:100B1000000A6D61747269783A206F66660A000A8D -:100B20006D61747269783A206F6E0A000A646562BA -:100B300075673A206F66660A000A64656275673AEF -:100B4000206F6E0A000A0A4A756D70696E6720741C -:100B50006F20626F6F746C6F616465722E2E2E2031 -:100B600000433E20006565636F6E6669673A0A0060 -:100B70006261636B6C6967687420737465703A2096 -:100B800025750A006261636B6C6967687420746F15 -:100B900067676C653A2025750A006261636B6C6952 -:100BA0006768742064656372656173653A202575B2 -:100BB0000A006261636B6C6967687420696E6372B6 -:100BC000656173653A2025750A0011241FBECFEFB9 -:100BD000DAE0DEBFCDBF04B603FE24C08091EA0197 -:100BE0009091EB01A091EC01B091ED018730904B19 -:100BF000A740B04BB9F41092EA011092EB011092A9 -:100C0000EC011092ED0114BE84B7877F84BF88E1A8 -:100C10000FB6F89480936000109260000FBEE0E081 -:100C2000F8E3099511E0A0E0B1E0E4E8FDE402C0DA -:100C300005900D92A633B107D9F711E0A6E3B1E014 -:100C400001C01D92AA3EB107E1F70E94830E0C94E9 -:100C5000C0260C940000FF93EF93E0913601F091D1 -:100C60003701309709F00995EF91FF910895FC0144 -:100C70008591803011F0EFDFFBCF0895FF27E0E290 -:100C800030E247FF0CC0419597FF09C0EDE2609547 -:100C9000709580959095611D711D811D911D27FF97 -:100CA00002C0219530E350E2AA27660F771F881F04 -:100CB000991FAA1FA41710F0A41B63955A95A9F7B2 -:100CC000AA3008F0A95FA05DAF93F3956115710597 -:100CD0008105910541F7ED3211F4EF93F395F21789 -:100CE00018F43F93F395FBCF8F91B5DFFA95E1F7B9 -:100CF0000895E991F9918591803021F0853219F0BC -:100D0000AADFF9CF089520E0E89455915532C1F358 -:100D1000503311F4689455915A3348F4505390F37A -:100D2000220F022E220F220F200D250FF4CF0EF4DA -:100D3000219589919991533619F3533729F15335F8 -:100D400059F1BC0188279927E8945C3621F48991F0 -:100D5000999168945591543639F446EF7EF077FFB7 -:100D60000DC08FEF9FEF0AC055374AE039F0583574 -:100D700040E121F0523642E009F00895FF93EF93ED -:100D80007DDFEF91FF91B7CFFF93EF93FC0181914E -:100D90008030B9F360DFFBCFFF93EF9368DFF1CFD3 -:100DA000DF93CF93CDB7DEB72596A3DFCF91DF9149 -:100DB00008958AE091E00E943706569A279A549A3D -:100DC0005E982F985C980895811104C05E9A2F9ABE -:100DD0005C9A08955E982F985C980895249A0895D7 -:100DE00081FF02C02C9A08952C98089508950895C3 -:100DF00086EF96E0892B11F00E94F6060E94EE061F -:100E00000E94D90685B7806885BF85B7806885BF91 -:100E1000089587EF96E0892B11F00C94F70608955A -:100E2000CF93DF93611120C0EC010E94F91E827202 -:100E3000809338019A81992351F0882319F085E332 -:100E400090E002C089E290E00E94511E09C0882310 -:100E500019F085E390E002C089E290E00E94A41EB0 -:100E6000DF91CF910C94431FDF91CF91089581E0E2 -:100E7000089581E008950C94390708950F931F9306 -:100E8000CF93DF938C01FC01C081D181CE010E9400 -:100E9000D21DBE010E94ED07EC01B8010E943B0784 -:100EA000882309F48DC0F8018281882309F44AC09F -:100EB0008091440181111FC0C431F0E5DF0709F0C2 -:100EC00051C00E943D0781E0809344010E942F2081 -:100ED000909343018093420110923B0110923D0197 -:100EE00010923C0110923F0110923E01109241017C -:100EF0001092400165C080914201909143010E948F -:100F00003B20883C910570F480913B01E82FF0E094 -:100F1000EE0FFF1FE45CFE4FD183C0838F5F809391 -:100F20003B014EC0C43880E5D80721F0C538D04514 -:100F300001F13AC0F8018281882341F01092390111 -:100F400082E01EC0C438E0E5DE0759F58091390122 -:100F5000811106C086E20E943D1586E20E940516B8 -:100F600082E01CC0C438F0E5DF0741F3C538D04546 -:100F7000D9F4F8018281882331F010923A0180E29D -:100F80000E9454161DC080913A01811106C087E26B -:100F90000E943D1587E20E94051680E20E945B16C2 -:100FA0000FC0C538D04529F381E080933901809383 -:100FB0003A01C801DF91CF911F910F910C9437072F -:100FC00080E0DF91CF911F910F9108950C94F80666 -:100FD0000C94090780E090E00895E72FF0E09AE094 -:100FE000899FE00DF11D112483E0EE0FFF1F8A950C -:100FF000E1F7E60FF11DEE0FFF1FEE5DFE4F85914D -:1010000094910895880F991FFC01E056F040859156 -:1010100094910895880F991FFC01E05EFE4F859121 -:10102000949108950F931F93CF93DF93EC01811553 -:1010300021E39207A0F5C11580E3D80708F0D7C0D7 -:10104000C83ED105D8F4C03ED10508F007C2C83A61 -:10105000D10578F4C53AD10508F06AC0C130D10590 -:1010600009F463C008F4F7C1C430D10508F0F6C133 -:10107000F2C1CB3BD10508F466C0EDC1C11590E2C9 -:10108000D90708F0AFC0C11521E0D20708F0E6C1CA -:10109000C03FD10508F4DFC18E0110651FC2C03802 -:1010A00080E5D80700F5C03790E5D90708F0A3C060 -:1010B000C11520E5D20709F4ACC050F4CE0190541C -:1010C00080319F4008F0C7C1DF708E01106A06C2F0 -:1010D000C13080E5D80709F4AAC0C43190E5D9072A -:1010E00008F4AFC0B8C1C33820E5D20709F48EC0F8 -:1010F00050F4C13890E5D90709F482C008F083C0E4 -:1011000000E011EDEBC1C03181E5D80708F4A3C1BF -:10111000C11597E5D90708F436C1CE01905781155E -:10112000904108F098C1DF7093C101E010E0D6C192 -:10113000C53AD10509F494C1C63AD10509F093C165 -:1011400002E810E4CBC1C83AD10509F48FC1C93A0D -:10115000D10509F48EC1CA3AD10509F48DC1CB3A43 -:10116000D10509F48CC1CC3AD10509F48BC1CD3A33 -:10117000D10509F48AC1C03BD10509F489C1CE3A31 -:10118000D10509F488C1CF3AD10509F487C1C13B23 -:10119000D10509F486C1C23BD10509F485C1C33B21 -:1011A000D10509F484C1C43BD10509F483C1C53B11 -:1011B000D10509F482C1C63BD10509F481C1C73B01 -:1011C000D10509F480C1C83BD10509F47FC1C93BF1 -:1011D000D10509F47EC1CA3BD10509F47DC100E007 -:1011E00014E47CC1CE019F700E940A0878C1DD27FB -:1011F0008E01106C73C1CF70DD278E01146D6EC12E -:1012000000E010ED6BC100E012ED68C100E013EDED -:1012100065C10E94D9188FEF94E32CE08150904073 -:101220002040E1F700C000000E948A2057C182E000 -:1012300093E00E9437068091D40181608093D401AD -:101240004DC10E943C22811102C00E941D220E94B9 -:10125000592290E09093E9018093E801C23080E543 -:10126000D80721F48091E801816086C0C43090E500 -:10127000D90721F48091E80182607EC0C63020E564 -:10128000D20721F48091E801846076C0C83080E5FF -:10129000D80719F48091E80127C0CA3090E5D90732 -:1012A00021F48091E801806167C0CC3020E5D2074D -:1012B00021F48091E80180625FC0CE3080E5D807DC -:1012C00021F48091E801806457C0C03190E5D907CE -:1012D00021F48091E80180684FC0C23120E5D20737 -:1012E00029F48091E8018460886046C0C33080E5BD -:1012F000D80721F48091E8018E7F3EC0C53090E58B -:10130000D90721F48091E8018D7F36C0C73020E5F0 -:10131000D20721F48091E8018B7F2EC0C93080E58F -:10132000D80719F48091E80126C0CB3090E5D907A1 -:1013300021F48091E8018F7E1FC0CD3020E5D207D7 -:1013400021F48091E8018F7D17C0CF3080E5D80768 -:1013500021F48091E8018F7B0FC0C13190E5D9075E -:1013600021F48091E8018F7707C0C331D04531F473 -:101370008091E8018B7F877F8093E8018091E8016D -:101380000E945D22ABC08D2F99278F7099278130E5 -:101390009105D9F49E012370332702C0880F991F4D -:1013A0002A95E2F79C688E0144E0000F111F4A95D0 -:1013B000E1F700271370802B912B53E0CC0FDD1F3A -:1013C0005A95E1F7C076DD272FC08230910531F4C0 -:1013D000DC2FCC278E01016F106A80C0833091050D -:1013E00069F4CE018370992701E010E002C0000F7C -:1013F000111F8A95E2F7C8019C680FC084309105DF -:10140000B9F4CE018370992701E010E002C0000F0B -:10141000111F8A95E2F7C8019A6823E0CC0FDD1FFF -:101420002A95E1F7C07ED7708C010C2B1D2B56C07E -:101430008530910531F4DC2FCC278E01046F106AC2 -:101440004DC0069709F04AC0CF71DD27DC2FCC27AD -:101450008E01106243C000E010E040C08E013EC02B -:1014600001E810E43BC003E810E438C002EE14E4E5 -:1014700035C009EE14E432C00AEE14E42FC005EBC7 -:1014800014E42CC006EB14E429C007EB14E426C0D6 -:101490000CEC14E423C00DEC14E420C003E815E4C4 -:1014A0001DC00AE815E41AC002E915E417C004E9F2 -:1014B00015E414C001E216E411C003E216E40EC004 -:1014C00004E216E40BC005E216E408C006E216E4E6 -:1014D00005C007E216E402C00AE216E4C801DF9183 -:1014E000CF911F910F910895E72FF0E09AE0899F27 -:1014F000E00DF11D112483E0EE0FFF1F8A95E1F747 -:10150000E60FF11DEE0FFF1FEE5DFE4F85919491EA -:10151000803E9105E0F4803C910558F581339105BA -:1015200009F46FC048F48932910509F463C08A3226 -:10153000910509F46DC072C089339105E9F08238D4 -:101540009105D1F08533910509F44DC067C0833E04 -:10155000910581F138F4803E9105B9F0823E910504 -:10156000D9F05CC0863E910561F1873E9105A1F1FD -:1015700055C00E94020808952091E80120FD02C094 -:1015800021FF4CC080EE90E049C08091E80180FFCF -:10159000F9CF89E390E042C08091E80182FF0EC05C -:1015A0008091E80184FF03C080E090E037C083EEC3 -:1015B00090E034C08091E80182FFF2CF82EE90E0AB -:1015C0002DC08091E80183FF0BC08091E80184FD6C -:1015D000EBCF87EE90E022C08091E80183FFF5CF4A -:1015E00086EE90E01BC08091E80185FF07C089E28C -:1015F00090E014C08091E80185FFF9CF85E390E089 -:101600000DC08091E80186FF07C08AE290E006C025 -:101610008091E80186FFF9CF81E390E00E941208F3 -:1016200008950C94F006E82FF0E0E95EFE4F80810B -:10163000E82FEF70F0E082958F7021E030E0A90193 -:1016400002C0440F551F8A95E2F740A308950F93F7 -:101650001F93CF93DF9385B7806885BF85B7806878 -:1016600085BFC9E0D0E001E010E0FE01E95EFE4F79 -:101670008081E82FEF70F0E021A182958F70A801A2 -:1016800002C0440F551F8A95E2F7CA01822B81A33D -:101690008C2F0E94130B219740F787E090E061E0C8 -:1016A00070E0FC01E15FFE4F2081E22FEF70F0E07F -:1016B00042A122952F70DB0102C0AA0FBB1F2A9501 -:1016C000E2F79D01242B22A3019758F7DF91CF91D8 -:1016D0001F910F910C94E607EF92FF920F931F93C7 -:1016E000CF93DF930FE411E0C9E0EE24E394F12CF3 -:1016F000D5E08C2F0E94130B87E090E040E0FC01C6 -:10170000E15FFE4F5081E52FEF70F0E020A130E067 -:1017100052955F7002C0359527955A95E2F720FDE6 -:1017200007C09701082E01C0220F0A94EAF7422B46 -:10173000019728F7F80182918F01841719F04083EF -:10174000D09300018C2F0E94130BC15090F6809112 -:10175000000187FD32C09091D40190FF10C0282F66 -:10176000332727FD30953F938F938BE493E09F932E -:101770008F930E94D0060F900F900F900F90809142 -:10178000000181508093000187FD07C08FE99FE031 -:101790000197F1F700C0000010C080E090E0FC016C -:1017A000E15BFE4FDC01AB5BBE4F19962C912187AC -:1017B0000197863FEFEF9E0791F70E94E80781E0CF -:1017C000DF91CF911F910F91FF90EF900895E82F37 -:1017D000F0E0E15BFE4F808108950F931F93CF935C -:1017E000DF938091D40180FF04C08CE293E00E94DB -:1017F0003706C0E0D0E004E113E08091D40180FF1F -:1018000015C0FE01E15BFE4F808190E00E94991FB0 -:101810009F938F93DF93CF931F930F930E94D006D4 -:101820000F900F900F900F900F900F902196CA304D -:10183000D10519F7DF91CF911F910F9108950F9363 -:101840001F93CF9309E511E0C0E0F80182918F0169 -:1018500090E00E94771FC80FF1E00F341F07A9F72F -:101860008C2FCF911F910F91089580916C01089555 -:1018700008959FB7F89410925B019FBF9091DF018C -:10188000943009F057C09091E9009F703091EC00BE -:10189000232F217030FD20E8922B23E02093E900D4 -:1018A0002091EB0020FF43C02091EE0027FF3FC0B6 -:1018B00020915901222321F02091E80025FF37C013 -:1018C0001092590126E03091E80035FD15C03091A5 -:1018D000DF01343061F53091EB0035FD28C0215037 -:1018E00021F481E08093590122C0EFE9FFE03197B4 -:1018F000F1F700C00000E7CF8093F1008091E8008D -:1019000085FD0AC08091E80080FFFCCF8091E8004F -:101910008E778093E80006C08FB7F89421E020937B -:101920005B018FBF9F709093E90080E008959F70E6 -:101930009093E9008FEF0895CF93DF9300D01F922B -:10194000CDB7DEB72091DF01243021F523E02983D4 -:101950009B838A8382E08093E9008FEF9091E80077 -:10196000815095FD06C095ED9A95F1F70000811123 -:10197000F5CF8091E80085FF0DC040E050E063E0C6 -:1019800070E0CE0101960E94390F8091E8008E77B9 -:101990008093E8000F900F900F90DF91CF91089502 -:1019A000CF93DF9300D01F92CDB7DEB79C0180911B -:1019B000DF01843019F592E099833B832A83909369 -:1019C000E9008FEF9091E800815095FD06C095EDFC -:1019D0009A95F1F700008111F5CF8091E80085FF1D -:1019E0000DC040E050E063E070E0CE0101960E943F -:1019F000390F8091E8008E778093E8000F900F9068 -:101A00000F90DF91CF910895CF93DF93EC019091E8 -:101A1000DF01943009F046C080910B018823D9F092 -:101A200080910C018823B9F09093E9008FEF909199 -:101A3000E800815095FD06C095E19A95F1F7000008 -:101A40008111F5CF8091E80085FF2CC040E050E087 -:101A500060E170E017C081E08093E9008FEF909122 -:101A6000E800815095FD06C095ED9A95F1F70000CC -:101A70008111F5CF8091E80085FF14C040E050E06F -:101A800068E070E0CE010E94390F8091E8008E7707 -:101A90008093E80080E1FE01ACE5B1E001900D9299 -:101AA0008A95E1F7DF91CF91089580E993E00E9454 -:101AB00037068091DE01811109C00E94CE100E947C -:101AC0002B118091E20084608093E20008958CE8FD -:101AD00093E00E9437061092DE01089588E893E0B3 -:101AE0000C94370684E893E00C94370680E893E082 -:101AF0000E9437060C94F21F20915A012F5F822F0B -:101B000062E30E947826992319F020935A010895E0 -:101B100010925A0180915B01882371F18091DF015D -:101B2000843041F58091E9008F702091EC00922F74 -:101B3000917020FD90E8892B93E09093E9009091BB -:101B4000EB0090FF14C09091EE0097FF10C09091B1 -:101B5000E80095FF03C01092F100F9CF9091E800E2 -:101B600090FF05C09091E8009E779093E8008F70F9 -:101B70008093E90010925B01089542E061EC81E0FE -:101B80000E94481042E061EC82E00E94481042E26C -:101B900061EC83E00E94481042E161EC84E00C9427 -:101BA00048108091E101833009F455C030F4813050 -:101BB00071F0823009F48EC008958A3009F47AC039 -:101BC0008B3009F460C0893009F09CC020C080913E -:101BD000E001813A09F096C08091E800877F809308 -:101BE000E8008091E4019091E501892B21F460E106 -:101BF0008CE591E003C060E080E090E070E00E943E -:101C0000840F8091E8008B778093E800089580919D -:101C1000E001813209F076C08091E4019091E50104 -:101C2000009719F0039709F06DC08091E800877F55 -:101C30008093E8008091E80082FD05C08091DF017B -:101C40008111F8CF5FC08091F10080936C01809189 -:101C5000E8008B7753C08091E001813A09F052C0CF -:101C60008091E4019091E501892B09F04BC08091AE -:101C7000E800877F8093E8008091E80080FFFCCF38 -:101C800080910B0136C08091E0018132D9F58091BD -:101C9000E4019091E501892BA9F58091E800877F07 -:101CA0008093E8000E947D108091E20180930B01F7 -:101CB0000C94D9188091E001813221F58091E800DF -:101CC000877F8093E8000E947D108091E3018093DC -:101CD0006D0108958091E001813AA1F48091E800BE -:101CE000877F8093E8008091E80080FFFCCF80919F -:101CF0006D018093F1008091E8008E778093E80079 -:101D00000C947D10089584B7877F84BF88E10FB657 -:101D1000F89480936000109260000FBE90E080E81D -:101D20000FB6F89480936100909361000FBE0E94FB -:101D300052140E94CE100E942B118091E200846008 -:101D40008093E20089E39CE00E94721F78940E94D5 -:101D5000B0130E94541481E091E00E94CB138FE6EF -:101D600093E00E9437068091DF01853089F48BE68D -:101D700093E00E9437060E94B31F8091DD01882303 -:101D800091F30E94E11F882371F30E94230FEBCF90 -:101D90000E947A14E8CF292F332723303105C9F068 -:101DA00064F42130310581F02230310509F043C05F -:101DB00084E790E022EF33E042C021323105F1F0B8 -:101DC0002232310541F137C082E190E026E634E06D -:101DD00036C099278130910541F08230910541F05C -:101DE000892B49F5EEEEF3E005C0E8EDF3E002C023 -:101DF000E4E9F3E0849190E09F0121C06430D8F4DD -:101E0000E62FF0E0EE0FFF1FE35DFE4F20813181F2 -:101E100089E090E014C0643070F470E0FB01EE0FD4 -:101E2000FF1FEB5DFE4F20813181FB01EF5DFE4F17 -:101E3000808190E004C080E090E020E030E0FA0192 -:101E400031832083089580E189BD82E189BD09B491 -:101E500000FEFDCF8091D8008F7D8093D8008091C7 -:101E6000E00082608093E0008091E00081FDFCCF83 -:101E70000895CF92DF92EF92FF920F931F93CF932B -:101E8000DF93EC018B016A010E949C10811133C029 -:101E9000C114D10439F0F60180819181081B190B1E -:101EA000C80FD91FE12CF12C0115110519F18091F2 -:101EB000E80085FD16C08091E8008E778093E800E9 -:101EC000C114D10449F0F60180819181E80EF91E18 -:101ED000F182E08285E00FC00E949C10882321F3EC -:101EE0000AC089918093F10001501109FFEFEF1AA8 -:101EF000FF0ADACF80E0DF91CF911F910F91FF9021 -:101F0000EF90DF90CF9008952091E6013091E701A6 -:101F10002617370748F06115710539F42091E8005C -:101F20002E772093E80001C0B90140E061157105EA -:101F3000A9F12091DF01222309F443C0253009F4DF -:101F400042C02091E80023FD40C02091E80022FD1E -:101F500032C02091E80020FFE9CF4091F3002091AA -:101F6000F20030E0342BFC01CF016115710559F00E -:101F70002830310540F481918093F100615071095E -:101F80002F5F3F4FF1CF41E02830310509F040E0AD -:101F90002091E8002E772093E800C8CF4111C9CFE7 -:101FA0000AC08091DF01882361F0853061F0809163 -:101FB000E80083FD0AC08091E80082FFF2CF80E054 -:101FC000089582E0089583E0089581E008952091C6 -:101FD000E6013091E7012617370748F061157105D2 -:101FE00039F42091E8002E772093E80001C0B90170 -:101FF000FC0120E06115710591F18091DF018823DA -:1020000009F440C0853009F43FC08091E80083FDA9 -:102010003DC08091E80082FD2FC08091E80080FFE4 -:10202000E9CF2091F3008091F20090E0922B6115AE -:10203000710559F08830910540F424912093F10006 -:102040003196615071090196F2CF21E0089709F0AD -:1020500020E08091E8008E778093E800CBCF2111BB -:10206000CCCF0AC08091DF01882361F0853061F018 -:102070008091E80083FD0AC08091E80082FFF2CFE2 -:1020800080E0089582E0089583E0089581E0089556 -:10209000982F973058F59093E900981739F0709180 -:1020A000EC002091ED005091F00003C0242F762F1A -:1020B00050E021FF19C03091EB003E7F3093EB00E0 -:1020C0003091ED003D7F3093ED003091EB003160B9 -:1020D0003093EB007093EC002093ED005093F000F0 -:1020E0002091EE0027FF07C09F5FD3CF8F708093B2 -:1020F000E90081E0089580E008958091E00187FF84 -:1021000011C08091E80082FD05C08091DF0181113E -:10211000F8CF11C08091E8008B770BC08091DF0170 -:10212000882349F08091E80080FFF8CF8091E80093 -:102130008E778093E80008952091E4003091E500C7 -:1021400095E64091EC00842F817040FF22C0809181 -:10215000E80080FD1CC08091DF01882391F085306C -:1021600091F08091EB0085FD10C04091E40050910A -:10217000E5004217530729F39A01915011F784E0C3 -:10218000089582E0089583E0089581E0089580E055 -:1021900008954091E80042FFDECF08950E943C116F -:1021A0000E944411E0EEF0E0808181608083E8EDE0 -:1021B000F0E080818F77808319BCA7EDB0E08C912F -:1021C0008E7F8C9380818F7E80831092DE010895B4 -:1021D0000F931F93CF93DF930E943C110E944411F1 -:1021E000C8EDD0E088818F77888388818068888374 -:1021F00088818F7D888319BC1092DF011092DB01EA -:102200001092DD011092DC0100EE10E0F8018081F7 -:102210008B7F808388818160888342E060E080E0FA -:102220000E944810E1EEF0E080818E7F8083E2EE34 -:10223000F0E0808181608083808188608083F80104 -:1022400080818E7F8083888180618883DF91CF91B8 -:102250001F910F910895E8EDF0E080818F7E8083DB -:10226000E7EDF0E080818160808384E082BF81E0DF -:102270008093DE010C94E810E8EDF0E080818E7F21 -:1022800080831092E20008951092DA001092E1002B -:1022900008951F920F920FB60F9211242F933F9320 -:1022A0004F935F936F937F938F939F93AF93BF935E -:1022B000EF93FF938091E10082FF0BC08091E200D9 -:1022C00082FF07C08091E1008B7F8093E1000E9434 -:1022D0007C0D8091DA0080FF1FC08091D80080FFC4 -:1022E0001BC08091DA008E7F8093DA008091D90044 -:1022F00080FF0DC080E189BD82E189BD09B400FE87 -:10230000FDCF81E08093DF010E94550D05C019BC0F -:102310001092DF010E94670D8091E10080FF19C0DB -:102320008091E20080FF15C08091E2008E7F809353 -:10233000E2008091E20080618093E2008091D80009 -:1023400080628093D80019BC85E08093DF010E94F1 -:10235000720D8091E10084FF30C08091E20084FF23 -:102360002CC080E189BD82E189BD09B400FEFDCFAA -:102370008091D8008F7D8093D8008091E1008F7E7E -:102380008093E1008091E2008F7E8093E200809153 -:10239000E20081608093E2008091DB01882311F0EC -:1023A00084E007C08091E30087FD02C081E001C0A6 -:1023B00083E08093DF010E94760D8091E10083FF2E -:1023C00029C08091E20083FF25C08091E100877FD2 -:1023D0008093E10082E08093DF011092DB01809125 -:1023E000E1008E7F8093E1008091E2008E7F8093F8 -:1023F000E2008091E20080618093E20042E060E0D0 -:1024000080E00E9448108091F00088608093F00086 -:102410000E946E0DFF91EF91BF91AF919F918F91AF -:102420007F916F915F914F913F912F910F900FBED0 -:102430000F901F9018951F920F920FB60F921124B4 -:102440002F933F934F935F936F937F938F939F93BC -:10245000AF93BF93CF93DF93EF93FF93C091E900C6 -:10246000CF708091EC00D82FD17080FDD0E8109211 -:10247000E9008091F000877F8093F00078940E94BB -:102480005F121092E9008091F00088608093F00064 -:10249000CD2BCF70C093E900FF91EF91DF91CF91E9 -:1024A000BF91AF919F918F917F916F915F914F916C -:1024B0003F912F910F900FBE0F901F9018951F9373 -:1024C000CF93DF93CDB7DEB7AA970FB6F894DEBFF0 -:1024D0000FBECDBFE0EEF1E088E08E0F9091F100ED -:1024E00091938E13FBCF0E94D10D8091E80083FF62 -:1024F0001FC18091E0019091E101492F50E04A30E5 -:10250000510508F015C1FA01EA5AFF4F0C948426D0 -:10251000803881F0823809F00BC18091E4018F701E -:102520008093E9008091EB0085FB882780F9109269 -:10253000E90006C08091DC019091DD01911182607B -:102540009091E800977F9093E8008093F1001092BB -:10255000F100C8C0282F2D7F09F0EAC0882319F0A8 -:10256000823061F0E5C08091E201813009F0E0C085 -:10257000933009F080E08093DD012BC08091E2016F -:10258000811127C08091E4018F7009F4D1C080933C -:10259000E9002091EB0020FF1CC0933021F48091D2 -:1025A000EB00806214C09091EB0090619093EB007F -:1025B00021E030E0A90102C0440F551F8A95E2F7DF -:1025C0004093EA001092EA008091EB0088608093CB -:1025D000EB001092E9008091E800877F86C08111AE -:1025E000A7C01091E2011F778091E3008078812BD2 -:1025F0008093E3008091E800877F8093E8000E9449 -:102600007D108091E80080FFFCCF8091E30080681E -:102610008093E300111102C082E001C083E0809347 -:10262000DF0186C08058823008F082C08091E201CC -:102630009091E3018C3D53E0950779F583E08A831F -:102640008AE289834FB7F894DE01139620E03EE0DA -:1026500051E2E32FF0E050935700E49120FF03C0D4 -:10266000E295EF703F5FEF708E2F90E0EA3010F050 -:10267000C79601C0C0968D939D932F5F243149F773 -:102680004FBF8091E800877F8093E8006AE270E0A6 -:10269000CE0101960E94840F14C0AE014F5F5F4FC0 -:1026A0006091E4010E94CB0EBC01009709F440C088 -:1026B0009091E800977F9093E80089819A810E9429 -:1026C000E70F8091E8008B778093E80031C0803875 -:1026D00079F58091E800877F8093E8008091DB01A5 -:1026E0008093F1008091E8008E778093E8000E944B -:1026F0007D101EC081111CC09091E2019230C0F487 -:102700008091E800877F8093E8009093DB010E942E -:102710007D108091DB01811106C08091E30087FD6F -:1027200002C081E001C084E08093DF010E94BD0D02 -:102730008091E80083FF0AC08091E800877F809342 -:10274000E8008091EB0080628093EB00AA960FB6C0 -:10275000F894DEBF0FBECDBFDF91CF911F910895DA -:10276000CF938091DF018823A1F0C091E900CF7061 -:102770009091EC00892F817090FD80E8C82B109219 -:10278000E9008091E80083FD0E945F12CF70C09342 -:10279000E900CF9108959093730180937201089599 -:1027A000E0917201F0917301309721F00190F08176 -:1027B000E02D099480E00895EF92FF920F931F930C -:1027C000CF93DF93E0917201F09173013097B1F1F3 -:1027D0008C010280F381E02D09958091D40182FF64 -:1027E0002DC080FF04C08EE495E00E943706E8010A -:1027F00010E188E4E82E85E0F82E8091D40180FF76 -:102800000BC088811F928F93FF92EF920E94D00697 -:102810000F900F900F900F90115021961111EDCF46 -:102820008091D40180FF0AC086E495E0DF91CF91CA -:102830001F910F91FF90EF900C943706DF91CF918D -:102840001F910F91FF90EF900895209170013091AA -:1028500071018217930771F0909371018093700159 -:10286000E0917201F0917301309721F00680F781B9 -:10287000E02D0994089520916E0130916F01821727 -:10288000930771F090936F0180936E01E091720154 -:10289000F0917301309721F00084F185E02D0994C7 -:1028A000089508950C9451140E9426200E94270B2D -:1028B0000E94E8200C949B25CF93DF931F92CDB705 -:1028C000DEB79091D40192FF10C090FF0EC01F920E -:1028D0008F9320E635E03F932F9389830E94D006A3 -:1028E0000F900F900F900F9089810F90DF91CF91F3 -:1028F0000C94110B9F92AF92BF92CF92DF92EF9206 -:10290000FF920F931F93CF93DF9300D000D000D09E -:10291000CDB7DEB70E946C0B09E010E0AA24A394A7 -:10292000B12C902E802F0E94E70B98012B583E4F20 -:102930006901F901F080F826A1F40150110988F726 -:102940008FEF89838A831B820E942F208160782FDA -:102950009D838C8349815A816B818D810E940F15E3 -:102960002FC09091D40191FF04C08E830E94ED0B83 -:102970008E8127E030E0A501022E01C0440F0A94A9 -:10298000EAF7E42E4F21C1F029839A828E2191E04B -:1029900009F490E09B830E942F208160782F9D8313 -:1029A0008C8349815A816B818D810E940F15F601BC -:1029B0008081E826E08204C021503109E0F6BDCFD5 -:1029C000109174010E94D0131817B9F00E94D0130F -:1029D0008093740126960FB6F894DEBF0FBECDBF6C -:1029E000DF91CF911F910F91FF90EF90DF90CF90EB -:1029F000BF90AF909F900C945C1426960FB6F894FD -:102A0000DEBF0FBECDBFDF91CF911F910F91FF9021 -:102A1000EF90DF90CF90BF90AF909F900895CF93AD -:102A2000DF93CDB7DEB72B970FB6F894DEBF0FBE9E -:102A3000CDBF4F83588769877A878B87DE011196D0 -:102A400086E0FD0111928A95E9F785E0FE0137964F -:102A500001900D928A95E1F749815A816B817C81C1 -:102A60008D819E810E94771B2B960FB6F894DEBF56 -:102A70000FBECDBFDF91CF910895CF93882309F486 -:102A8000C2C0C82F823859F40E94D01381FDBBC048 -:102A900089E30E94511E0E94431F89E30CC08338C2 -:102AA00079F40E94D01380FDAEC083E50E94511ED0 -:102AB0000E94431F83E50E94A41ECF910C94431FE4 -:102AC000843859F40E94D01382FD9DC087E40E948F -:102AD000511E0E94431F87E4EECF8CEF8C0F813A8A -:102AE00048F48C2F0E944C2581118DC08C2F0E94A0 -:102AF000511EE3CF80E28C0F883048F4C77081E02C -:102B000001C0880FCA95EAF70E94FC1ED6CF8BE55C -:102B10008C0F833078F4C53A29F0C63A31F083E857 -:102B200090E005C081E890E002C082E890E0CF919B -:102B30000C94251488E58C0F833108F064C0C83AE2 -:102B400039F1C93A41F1CA3A49F1CB3A51F1CC3A9B -:102B500059F1CD3A61F1C03B69F1CE3A71F1CF3A0A -:102B600079F1C13B81F1C23B89F1C33B91F1C43B97 -:102B700099F1C53BA1F1C63BA9F1C73BB1F1C83BF7 -:102B8000B9F1C93BC1F1CA3BC9F180E090E038C05E -:102B900082EE90E035C089EE90E032C08AEE90E09F -:102BA0002FC085EB90E02CC086EB90E029C087EB2E -:102BB00090E026C08CEC90E023C08DEC90E020C02B -:102BC00083E891E01DC08AE891E01AC082E991E0B3 -:102BD00017C084E991E014C081E292E011C083E261 -:102BE00092E00EC084E292E00BC085E292E008C061 -:102BF00086E292E005C087E292E002C08AE292E0BB -:102C0000CF910C943B14CF910895882309F44BC0C5 -:102C1000823859F40E94D01381FF45C089E30E9495 -:102C2000511E0E94431F89E30CC0833871F40E9437 -:102C3000D01380FF38C083E50E94511E0E94431FBD -:102C400083E50E94A41E0C94431F843859F40E940B -:102C5000D01382FF28C087E40E94511E0E94431FA8 -:102C600087E4EFCF9CEF980F913A58F390E2980FDA -:102C7000983050F4877091E001C0990F8A95EAF777 -:102C8000892F0E94021FDFCF9BE5980F933020F41D -:102C900080E090E00C942514885A833120F480E081 -:102CA00090E00C943B140895882321F00E94FC1EB0 -:102CB0000C94431F0895882321F00E94021F0C9456 -:102CC000431F08957F928F929F92AF92BF92CF92AF -:102CD000DF92EF92FF920F931F93CF93DF931F9298 -:102CE000CDB7DEB77C01C62E772EFC01058102959B -:102CF0000F70128111110E94191F0E944A1E882311 -:102D000079F0112369F080E28C0D883048F082E080 -:102D10000E94331E0E944A1E91E0D82ED92601C07F -:102D2000D12CE72DE295EF70F0E0E05AFF4F0C94C4 -:102D30008426872D807F072D0F70882311F0029540 -:102D4000007F112389F0002309F48EC180E28C0DED -:102D5000883020F4802F0E94FC1E03C0802F0E9428 -:102D60000C1F0E94431F80C18C2D0E94051600235A -:102D700009F4B8C180E28C0D883020F4802F0E94C5 -:102D8000021F03C0802F0E94121F0E94431FAAC16E -:102D9000872D807F972D9F70803211F4892F03C07B -:102DA000892F8295807FCC2021F0F1E0CF16A1F011 -:102DB0001DC0112339F0002319F1013009F50E94DB -:102DC0002C1F90C1002319F0013009F48BC18983B5 -:102DD0000E942F1F898105C1112321F0063008F0C0 -:102DE00081C10EC0053008F07DC1FBC0112359F030 -:102DF000002331F0F701958190FF36C19F709583D4 -:102E00000E9454166FC1002309F4EBC033C1872D13 -:102E100086958695837090E0009719F0019761F090 -:102E200061C1112321F08C2D972D937002C080E099 -:102E300090E00E94251456C1112321F08C2D972D6E -:102E4000937002C080E090E00E943B144BC1872D3C -:102E5000837009F052C0111145C18C2D8295869561 -:102E60008770880F880F9C2D9F70892E912CA12C24 -:102E7000B12C082E04C0880C991CAA1CBB1C0A94F7 -:102E8000D2F7C4FE14C00FE010E020E030E0B9013A -:102E9000A80104C0440F551F661F771F8A95D2F7FB -:102EA000CB01BA01609570958095909503C060E064 -:102EB00070E0CB01272D26952695237030E0223037 -:102EC000310569F02330310589F0682979298A298B -:102ED0009B292130310571F00E94BF1C03C1682974 -:102EE00079298A299B290E94DB1CFCC00E94BF1CF7 -:102EF000C501B4010E94A31CF5C0112319F0872D50 -:102F0000817001C08695882309F4ECC08C2D8295D0 -:102F100086958770880F880F9C2D9F70892E912C25 -:102F2000A12CB12C082E04C0880C991CAA1CBB1C17 -:102F30000A94D2F7C4FE14C00FE010E020E030E0A5 -:102F4000B901A80104C0440F551F661F771F8A9559 -:102F5000D2F7CB01BA01609570958095909503C02A -:102F600060E070E0CB01272D269526952370422F37 -:102F700050E04230510569F04330510589F068292D -:102F800079298A299B294130510571F00E94991DA8 -:102F9000A9C0682979298A299B290E94B51DA2C048 -:102FA0000E94991DC501B4010E947D1D9BC08C2DFE -:102FB00090E0FC01E05EF109E531F10508F050C058 -:102FC000E059FF4F0C9484260C2D0F70872D8F71C4 -:102FD000112321F00E94161D802F12CF0E94371D51 -:102FE000802F0E945B167EC0112341F0053008F04F -:102FF00079C0872D8F710E945C1D74C0063008F067 -:1030000071C0F7CF112339F0872D8F710E94161DE3 -:1030100069C01123C9F3872D8F710E94371D62C0CB -:10302000112329F0872D8F710E94011D5BC00E9422 -:10303000F71C58C0112351F0172D1F71812F0E94CA -:10304000161D63E0812F0E942A1E4CC081E00E9461 -:10305000331E023008F446C082E00E94331E42C094 -:10306000112331F0002381F28C2D0E943D153AC0CE -:10307000002389F28C2D0E94051634C0472D4F7015 -:103080006C2DC7010E94EA070E941B1C2BC0111166 -:1030900029C0472D4F7050E042305105B9F04CF433 -:1030A0004115510581F041305105E1F40E94D025D0 -:1030B00019C04330510569F04430510599F48C2D05 -:1030C0000E945B260FC00E94AC250CC00E94FF2509 -:1030D00009C00E94252606C0472D4F706C2DC701E0 -:1030E0000E941007DD20F9F00E94261E80FD1BC003 -:1030F000F70112820E94201E0E94161DC7010E9425 -:10310000A2180E94201E0F90DF91CF911F910F9166 -:10311000FF90EF90DF90CF90BF90AF909F908F90F7 -:103120007F900C94371D0F90DF91CF911F910F91DD -:10313000FF90EF90DF90CF90BF90AF909F908F90D7 -:103140007F9008950F931F93CF93DF93EC018881B5 -:1031500099812B813C81232BB9F09F3F11F48F3F44 -:1031600099F0CE010E943E07882371F06881798131 -:103170008A810E941C1E8C010E94D11D0E94981CF5 -:10318000B801CE010E946216DF91CF911F910F917D -:1031900008950E94191F0E94291F0E94EB1E0E9481 -:1031A000431F80E090E00E94251480E090E00C94A2 -:1031B0003B140E94091F0C94C9180E94111E292F4C -:1031C00022952F7030E02C3031054CF42A30310537 -:1031D0006CF42250310922303105A8F407C02C309C -:1031E000310569F02F30310551F00DC0803F69F095 -:1031F00018F4803E40F409C0843F29F406C093FBD4 -:10320000882780F9089580E0089581E00895CF939C -:10321000DF9300D000D01F92CDB7DEB70F900F9094 -:103220000F900F900F90DF91CF910895CF93DF9380 -:1032300000D000D000D0CDB7DEB726960FB6F894F8 -:10324000DEBF0FBECDBFDF91CF9108951F93CF9307 -:10325000DF93C0917F0116E080918001C81799F03B -:10326000D0E01C9FF0011D9FF00D1124EF57FE4F81 -:103270004081518162817381848195810E941619F8 -:103280002196C770E9CFDF91CF911F9108954091AA -:10329000B1015091B2016091B3017091B40180917C -:1032A000B5019091B6010C9416198091B6018295E2 -:1032B0008F7009F054C08091B301882309F44FC086 -:1032C00080917F01A09180016091B1017091B20164 -:1032D0004091B4015091B501B6E08A1709F43FC09E -:1032E00090E041155105C1F17F3F11F46F3FA1F10D -:1032F000B89FF001B99FF00D1124EF57FE4F2181C7 -:1033000072132AC02081621327C02281211124C098 -:10331000238134812417350710F421503109241BEF -:10332000350B283C3105C0F42091B6012F70206187 -:103330002093B60126E0289FF001299FF00D11246B -:10334000EA57FE4F80818F708061808381EB91E02E -:103350000E94A2180C94261901968770BECF08957A -:10336000CF92DF92EF92FF920F931F93CF93DF9351 -:10337000CDB7DEB762970FB6F894DEBF0FBECDBFF4 -:103380008C0185E0F801DE011D9601900D928A9571 -:10339000E1F7D8014C9111965C91119712966C91BE -:1033A00012971396CD90DC9014973091B1017091E3 -:1033B000B2018091B4019091B501009709F46BC1FD -:1033C0007F3F19F43F3F09F466C1E090B301EE205E -:1033D00009F4C0C02091B601C816D90628F0F6013C -:1033E000E81BF90BCF0104C0809590958C0D9D1DB5 -:1033F000FF24F394883C910578F0F12C207F09F0AC -:10340000C6C07C2DD98AC88A89890E94071981EB98 -:1034100091E00E94A218B1C0822F807F09F046C0BF -:10342000751314C0341312C0611110C02F702061C5 -:103430002093B6010E94471981EB91E00E94A218E7 -:103440008091B601D80115968C932EC0CD2819F124 -:103450005F3F11F44F3FF9F0F62E61111CC08091CF -:103460007F012091800136E0821709F45AC090E074 -:10347000389FF001399FF00D1124EF57FE4F7181F5 -:10348000571306C07081471303C07281711103C0C6 -:1034900001968770E9CFF62E662309F418C1809152 -:1034A000B60181608093B601F12C11C1751308C07B -:1034B000341306C0611104C08091B601D801C3C0A5 -:1034C0004D875E878D859E856A8B0E94DD186A898F -:1034D0008823E1F16623D1F12091B601822F8295F4 -:1034E0008F7090E0029774F08091B1019091B201D9 -:1034F00098878F831986DB86CA862C87CE0107962C -:103500000E94A21886E0F801A1EBB1E001900D92B3 -:103510008A95E1F70E9455190E944719FF24F394F8 -:10352000D6C04D875E878D859E850E94111E292FEE -:1035300022952F7030E0223031050CF0BCC09F7016 -:1035400009F0B6C0805E883008F4C1C0C8010E948E -:10355000A218E4CFC816D90608F453C0F601E81B38 -:10356000F90BCF01883C910508F450C0F12C7C2D5B -:10357000D98AC88A89890E940719E1EBF1E086E0BF -:10358000DF011D928A95E9F70E944719A0C07513C3 -:1035900014C0341312C0611110C08091B601F8013B -:1035A0008583C8010E94A21886E0E1EBF1E0DF010B -:1035B0001D928A95E9F7FE2C8AC04D875E878D851E -:1035C0009E856A8B0E94DD186A89882309F4BECF24 -:1035D000662309F4BBCF2091B601822F82958F70AC -:1035E00090E002970CF48ECF8091B1019091B201DE -:1035F0009A8389831B82DD82CC822E83CE01019641 -:103600007FCF809590958C0D9D1DACCFF62E6623B7 -:1036100009F49CCF75132EC034132CC02091B60131 -:1036200020FD1FC0822F82958F70D9F0D80115968A -:103630002C9315978F3049F08F5F982F9295907F3C -:10364000822F8F70892B15968C93C8010E94A21827 -:1036500086E0F801A1EBB1E001900D928A95E1F7C7 -:1036600093CF86E0F801A1EBB1E001900D928A952D -:10367000E1F72DC04D875E878D859E850E94DD1800 -:10368000811140CF8091B60181608093B601C8015D -:103690000E94A2181CC0662309F458CF4D875E878C -:1036A0008D859E850E94DD18882309F44FCF2ACF8F -:1036B000811148CF0CC0243031050CF047CF9F70EA -:1036C00009F440CFF8019581907F09F03BCF8F2D11 -:1036D00062960FB6F894DEBF0FBECDBFDF91CF91DB -:1036E0001F910F91FF90EF90DF90CF9008951F935F -:1036F000CF93DF93CDB7DEB72C970FB6F894DEBF2C -:103700000FBECDBF4F83588769877A878B879C8789 -:10371000CE0107960E94B019882369F08F819885A1 -:103720002A853B85232BF1F19F3F09F063C08F3F32 -:1037300009F060C037C086E0FE013796DE011196C1 -:1037400001900D928A95E1F76F817885EA85FB8576 -:10375000309741F17F3F11F46F3F21F120918001BB -:1037600030E0C90101968770992740917F0150E0B0 -:103770008417950709F447C069837A83FD83EC8336 -:1037800096E0929FD001939FB00D1124AF57BE4F8A -:10379000FE01319601900D929A95E1F78093800198 -:1037A0000E94261916E080917F019091800189176F -:1037B000C1F1189FC00111248F579E4F0E94B0196C -:1037C000882379F1E0917F011E9FF0011124EF57CA -:1037D000FE4F4081518162817381848195810E9475 -:1037E000161980917F0190E0019687709927809348 -:1037F0007F01D9CF4F81588569857A858B859C85D6 -:103800000E941619CFCF0E94D918109280011092F1 -:103810007F01E1EBF1E086E0DF011D928A95E9F797 -:10382000C1CF2C960FB6F894DEBF0FBECDBFDF918F -:10383000CF911F910895EF92FF920F931F93CF9313 -:10384000DF938C01009709F46CC0F12CEE24E39413 -:10385000E8012196F8018491843740F4843008F01F -:1038600051C0813081F0823019F15BC0853709F495 -:1038700044C0A8F19CE7980F903708F052C08F77AA -:103880000E94051641C00E5F1F4FFE01C49180E2E9 -:103890008C0F883048F4C7708E2D01C0880FCA95F0 -:1038A000EAF70E941C1F14C08C2F0E943D152DC0EA -:1038B0000E5F1F4FFE01C49180E28C0F883058F4D8 -:1038C000C7708E2D01C0880FCA95EAF70E94221F8B -:1038D0000E94431F1AC08C2F0E94051616C00E5F4F -:1038E0001F4FFE01C491CC2381F08FE99FE0019727 -:1038F000F1F700C00000C150F6CF0E5F1F4FFE0170 -:10390000F49003C00E943D158E018F2D882309F489 -:103910009FCFEFE9FFE03197F1F700C00000815041 -:10392000F5CFDF91CF911F910F91FF90EF90089508 -:1039300008956093BB017093BC018093BD01909387 -:10394000BE010C94C9180F931F930091BB011091F5 -:10395000BC012091BD013091BE01DC01CB01802B67 -:10396000912BA22BB32B8093BB019093BC01A0930E -:10397000BD01B093BE011F910F910C94C9180F9314 -:103980001F930091BB011091BC012091BD013091AA -:10399000BE01DC01CB0180239123A223B3238093BA -:1039A000BB019093BC01A093BD01B093BE011F91D8 -:1039B0000F910C94C9180F931F930091BB011091A4 -:1039C000BC012091BD013091BE01DC01CB018027FB -:1039D0009127A227B3278093BB019093BC01A093AA -:1039E000BD01B093BE011F910F910C94C9181092A4 -:1039F000B7011092B8011092B9011092BA010C945B -:103A0000C91841E050E060E070E004C0440F551F69 -:103A1000661F771F8A95D2F74093B7015093B8017C -:103A20006093B9017093BA010C94C91841E050E059 -:103A300060E070E004C0440F551F661F771F8A9531 -:103A4000D2F78091B7019091B801A091B901B091DE -:103A5000BA01482B592B6A2B7B2B4093B70150930B -:103A6000B8016093B9017093BA010C94C91841E090 -:103A700050E060E070E004C0440F551F661F771FE0 -:103A80008A95D2F740955095609570958091B701D1 -:103A90009091B801A091B901B091BA01482359237E -:103AA0006A237B234093B7015093B8016093B90117 -:103AB0007093BA010C94C91841E050E060E070E0E6 -:103AC00004C0440F551F661F771F8A95D2F7809157 -:103AD000B7019091B801A091B901B091BA014827FE -:103AE00059276A277B274093B7015093B801609309 -:103AF000B9017093BA010C94C9180F931F930091E8 -:103B0000B7011091B8012091B9013091BA01DC01DF -:103B1000CB01802B912BA22BB32B8093B7019093D9 -:103B2000B801A093B901B093BA011F910F910C9401 -:103B3000C9180F931F930091B7011091B8012091FC -:103B4000B9013091BA01DC01CB0180239123A2237A -:103B5000B3238093B7019093B801A093B901B093B8 -:103B6000BA011F910F910C94C9180F931F930091E4 -:103B7000B7011091B8012091B9013091BA01DC016F -:103B8000CB0180279127A227B3278093B701909379 -:103B9000B801A093B901B093BA011F910F910C9491 -:103BA000C9180895CF92DF92EF92FF920F931F935F -:103BB000CF93DF938C01C090BB01D090BC01E0900B -:103BC000BD01F090BE018091B7019091B801A09124 -:103BD000B901B091BA01C82AD92AEA2AFB2ACFE151 -:103BE000D0E0D701C6010C2E04C0B695A7959795D5 -:103BF00087950A94D2F780FF06C0B8018C2F0E94E7 -:103C0000740A019721F4219760F780E001C08C2F9E -:103C1000DF91CF911F910F91FF90EF90DF90CF90A8 -:103C20000895CF93DF93EC010E94D21DBE010E9444 -:103C3000740ADF91CF910895CB010E94111E08955F -:103C40008091BF0185958595859508958091BF01E7 -:103C50008770089598E0899F90011124262B209366 -:103C6000BF010C94161D2091BF0180958223809383 -:103C7000BF01982F977069F430E0482F552747FD12 -:103C800050952417350729F08595859585950C94D1 -:103C9000371D08959091BF01977081E009F480E08D -:103CA000089590910B01992321F090910C019111AD -:103CB00009C020910D0130910E01F90132969FEF5C -:103CC00040E030C0982F9695969596959F30A0F439 -:103CD000E0910D01F0910E01E90FF11D877021E0D7 -:103CE00030E0A90102C0440F551F8A95E2F7CA01CE -:103CF0009181892B818308959091D40190FF23C0F5 -:103D00001F928F9387E995E09F938F930E94D0062F -:103D10000F900F900F900F9008959F3F39F04F5FD5 -:103D20004E3041F051915813F8CF0DC05111F7CFDB -:103D3000942FF5CF9F3F39F0F901E90FF11D97FD61 -:103D4000FA9582830895089590910B01992321F0AB -:103D500090910C01911109C020910D0130910E013B -:103D6000F9013296205F3F4F30C0982F9695969577 -:103D700096959F30A8F4E0910D01F0910E01E90FA6 -:103D8000F11D877021E030E0A90102C0440F551FEA -:103D90008A95E2F7CA0180959181892381830895EC -:103DA0009091D40190FF16C01F928F9389E795E000 -:103DB0009F938F930E94D0060F900F900F900F90BB -:103DC00008953196E217F30729F090819813F9CFFF -:103DD0001082F7CF089581E090E0E0910D01F0911D -:103DE0000E01E80FF91F1082019680319105A9F7A5 -:103DF00008958091D30108959091D301892B8093E8 -:103E0000D301089580959091D30189238093D301A4 -:103E100008951092D30108959091D201892B809337 -:103E2000D201089580959091D20189238093D20187 -:103E300008951092D20108959091D101892B809319 -:103E4000D101089580959091D10189238093D1016A -:103E500008951092D10108958093C00108951092A1 -:103E6000C001089580910D0190910E01FC013196E1 -:103E70009C01205F3F4F80E0919191118F5FE2178D -:103E8000F307D1F70895E0910D01F0910E018091B3 -:103E9000D3018083E0910D01F0910E01908180911A -:103EA000D201892B8083E0910D01F0910E01908168 -:103EB0008091D101892B80838091C001882361F09A -:103EC000E0910D01F0910E019081892B80830E9479 -:103ED000321F81111092C00180910D0190910E014D -:103EE0000C94DC139093370180933601089520E001 -:103EF000009739F0AC0141505109842395232F5F7D -:103F0000F7CF822F08958295982F9C7C392F369574 -:103F10003695282F237344E0249FC0011124932F4A -:103F2000982B292F2A7A2695892F8575880F822B21 -:103F300008951F93CF93DF931F92CDB7DEB7998378 -:103F40000E94831F182F9981892F0E94831F212F80 -:103F500030E0322F2227A901482BCA010F90DF91B0 -:103F6000CF911F9108958091DF01843039F1109233 -:103F7000D50120E488E190E00FB6F894A8958093ED -:103F800060000FBE2093600080E00E94E40680E0A5 -:103F90000E94110B83B7817F846083BF83B78160E8 -:103FA00083BF7894889583B78E7F83BF88E10FB6EF -:103FB000F89480936000109260000FBE08950895F9 -:103FC000089580E00E94E4060E94DF1F0E946C0BAF -:103FD0000E94E01F0E941F0C91E0811101C090E03F -:103FE000892F08950E94D91880E00E94E4060E945B -:103FF0009B250E94D0130C94110B1F920F920FB6A9 -:104000000F9211248F939F93AF93BF938091D5010B -:10401000811113C08091D6019091D701A091D80150 -:10402000B091D9014196A11DB11D8093D601909305 -:10403000D701A093D801B093D901BF91AF919F91BF -:104040008F910F900FBE0F901F90189582E084BD46 -:1040500093E095BD9AEF97BD80936E0008952FB7BA -:10406000F8948091D6019091D701A091D801B09198 -:10407000D9012FBF0895CF92DF92EF92FF920F9355 -:104080001F932FB7F8944091D6015091D7016091BA -:10409000D8017091D9012FBF6A017B01EE24FF2462 -:1040A0008C0120E030E0C016D106E206F30610F4E1 -:1040B000415051099A01281B390BC9011F910F91D9 -:1040C000FF90EF90DF90CF9008951F920F920FB660 -:1040D0000F9211248F939F93AF93BF938091D6013A -:1040E0009091D701A091D801B091D9010196A11D5D -:1040F000B11D8093D6019093D701A093D801B093BE -:10410000D901BF91AF919F918F910F900FBE0F90EA -:104110001F9018950E94CE10F8942FEF87EA91E631 -:10412000215080409040E1F700C0000087E090EB14 -:10413000DC018093EA019093EB01A093EC01B09332 -:10414000ED019CE088E10FB6F894A895809360009B -:104150000FBE90936000FFCFEF92FF920F931F93DB -:10416000CF93DF93D82FC9E08C2F0E94E70B07E095 -:1041700010E0E82EF12CC701002E02C0959587951E -:104180000A94E2F780FF09C0602F7C2F80E00E9434 -:10419000ED07D81302C081E006C00150110958F79D -:1041A000C15010F780E0DF91CF911F910F91FF90E8 -:1041B000EF900895CF93C82F8CE20E94AC20882303 -:1041C00021F08C2FCF910C94AC2080E0CF910895FA -:1041D000CF930E943C22811102C00E941D228CEBD1 -:1041E00095E00E943706C5E6C15049F00E946C0B6D -:1041F0008FE39CE90197F1F700C00000F5CF85EB54 -:1042000095E00E94370689E20E94DA20811113C1ED -:104210008AE20E94DA2081110E941D2285E00E941C -:10422000DA2081110E948A200E9447228093D401C3 -:1042300087E00E94DA208823A9F18BE10E94DA202E -:10424000882351F08091D40181FB222720F991E04D -:10425000922790FB81F90EC08EE00E94DA2088231D -:1042600061F08091D40182FB222720F991E092270E -:1042700090FB82F98093D40115C080E10E94DA207E -:104280009091D401882341F093FB222720F981E00B -:10429000822780FB93F904C0892F809580FB90F9D9 -:1042A0009093D4018091D4010E944B220E94592204 -:1042B0008093E80180EE0E94DA20882341F080910B -:1042C000E801982F909590FB80F98093E80189E3AD -:1042D0000E94DA20882359F08091E80181FB22278F -:1042E00020F991E0922790FB81F98093E80182EE1A -:1042F0000E94DA20882359F08091E80182FB22276E -:1043000020F991E0922790FB82F98093E80186EEF4 -:104310000E94DA20882359F08091E80183FB22274C -:1043200020F991E0922790FB83F98093E80183EED6 -:104330000E94DA20882359F08091E80184FB22272B -:1043400020F991E0922790FB84F98093E80185E3BE -:104350000E94DA20882359F08091E80185FB22270A -:1043600020F991E0922790FB85F98093E80181E3A1 -:104370000E94DA20882359F08091E80186FB2227E9 -:1043800020F991E0922790FB86F98093E80181E182 -:104390000E94DA20882359F08091E80187FB2227C8 -:1043A00020F991E0922790FB87F98093E8018091B2 -:1043B000E8010E945D228091E80187FB882780F94F -:1043C00080930C0187E20E94DA20C82F8EE10E94C0 -:1043D000DA208111C2608FE10E94DA208111C4606D -:1043E00080E20E94DA208111C86081E20E94DA2016 -:1043F0008111C06182E20E94DA208111C06283E2F1 -:104400000E94DA208111C06484E20E94DA208823AD -:1044100011F0C06802C0CC2329F08C2F0E945422D6 -:104420006C2F03C00E945022682F70E080E090E063 -:10443000CF910C94991CCF9108956DEE7EEF80E0A2 -:1044400090E00E94AA2660E082E090E00E94982618 -:1044500060E083E090E00E94982660E084E090E0D5 -:104460000E94982660E085E090E00E94982660E037 -:1044700086E090E00C94982680E090E00E949226DE -:1044800021E08D3E9E4F09F020E0822F089582E0CA -:1044900090E00C948A26682F82E090E00C94982695 -:1044A00083E090E00C948A26682F83E090E00C94DF -:1044B000982684E090E00C948A26682F84E090E0AF -:1044C0000C94982686E090E00C948A26682F86E06B -:1044D00090E00C949826CF93C82F1F928F9387ED6E -:1044E00095E09F938F930E94D00681E090E0A0E03A -:1044F000B0E0BC01CD0104C0660F771F881F991F73 -:10450000CA95D2F70E94991C0F900F900F900F90B0 -:10451000CF910C94D918CF938B3109F40FC208F0C6 -:1045200049C08E3009F41EC200F5873009F4E7C196 -:10453000A8F4863009F0A4C28091D401817F8E7FD7 -:104540008093D40185E797E00E94370681E69BE0DF -:104550000E94370681E08093DA01CFC1883009F4E8 -:104560005BC08B3009F4C5C18BC2813109F470C2C4 -:1045700020F4803109F40AC283C2863109F421C2D1 -:10458000893109F07DC286E697E00E9437068BE309 -:1045900097E00E94370689EE96E00E9437068CEB82 -:1045A00096E00E94370680E896E00E94370685E58F -:1045B00096E0A1C1853309F45FC268F4873209F43B -:1045C0005BC228F48E3108F45BC28D5156C2893229 -:1045D00009F452C255C2833438F48A3308F04AC20F -:1045E000883309F486C14CC2833409F445C2883447 -:1045F00009F046C20E94D91885E49BE00E94370664 -:104600009FEF23ED80E3915020408040E1F700C010 -:1046100000000E948A2071C185E69BE00E94370657 -:1046200082EB9AE00E9437060E9450221F928F93DD -:104630008FEA9AE09F938F930E94D0068DEA9AE0CA -:104640000E9437060E944722C82F8AE99AE00E94FA -:1046500037061F92CF9385E99AE09F938F930E942C -:10466000D00683E99AE00E94370689E89AE00E9422 -:1046700037068C2F81701F928F9386E89AE09F9364 -:104680008F930E94D00684E89AE00E9437068AE75A -:104690009AE00E943706C1FB882780F91F928F930A -:1046A00087E79AE09F938F930E94D00685E79AE070 -:1046B0000E94370689E69AE00E943706C2FB8827E7 -:1046C00080F91F928F9386E69AE09F938F930E94C2 -:1046D000D00684E69AE00E9437068BE59AE00E94B5 -:1046E0003706C3FBCC27C0F91F92CF9388E59AE029 -:1046F0009F938F930E94D00686E59AE00E9437062A -:104700000E945922C82F82E49AE00E9437061F9225 -:10471000CF938DE39AE09F938F930E94D0068BE313 -:104720009AE00E94370682E29AE00E9437068C2FB8 -:1047300081701F928F938FE19AE09F938F930E94D5 -:10474000D0068DB79EB780960FB6F8949EBF0FBE69 -:104750008DBF8DE19AE00E94370686E09AE00E94C4 -:104760003706C1FB882780F91F928F9383E09AE078 -:104770009F938F930E94D00681E09AE00E943706B3 -:104780008FEE99E00E943706C2FB882780F91F92BE -:104790008F938CEE99E09F938F930E94D0068AEEC0 -:1047A00099E00E94370688ED99E00E943706C3FB26 -:1047B000882780F91F928F9385ED99E09F938F93BF -:1047C0000E94D00683ED99E00E94370689EC99E0BB -:1047D0000E943706C4FB882780F91F928F9386ECCE -:1047E00099E09F938F930E94D00684EC99E00E94F9 -:1047F000370682EB99E00E943706C5FB882780F9CF -:104800001F928F938FEA99E09F938F930E94D00617 -:104810008DEA99E00E94370681E999E00E94370607 -:10482000C6FB882780F91F928F938EE899E09F93AB -:104830008F930E94D0068CE899E00E94370684E8A6 -:1048400099E00E943706C7FBCC27C0F91F92CF938F -:1048500081E899E09F938F930E94D0068FE799E0BB -:104860000E9437060E946222C82F88E699E00E94C3 -:1048700037061F92CF9383E699E09F938F930E9410 -:10488000D0068DB79EB780960FB6F8949EBF0FBE28 -:104890008DBF81E699E00E94370687E599E00E9486 -:1048A00037068C2F81701F928F9384E599E09F9338 -:1048B0008F930E94D00682E599E00E94370689E432 -:1048C00099E00E943706C6951F92CF9386E499E03F -:1048D0009F938F930E94D00684E499E00E9437064C -:1048E0008DB79EB708960FB6F8949EBF0FBE8DBFCA -:1048F00004C080E997E00E943706C1E0C6C08091FD -:10490000D401C82FC095C170C0FB80F98093D40139 -:10491000CC2349F089E39BE00E9437068091D401C3 -:104920008660886048C08CE29BE00E9437068091D8 -:10493000D401897F877F8093D401DFCF9091D40108 -:1049400091FBCC27C0F981E0C827892FC0FB81F9F2 -:104950008093D401CC2319F08FE19BE027C081E143 -:104960009BE0C9CF9091D40192FBCC27C0F981E0A4 -:10497000C827892FC0FB82F98093D401CC2319F07A -:1049800082E09BE013C082EF9AE0B5CF9091D40112 -:1049900093FBCC27C0F981E0C827892FC0FB83F99E -:1049A0008093D401CC2351F086EE9AE00E94370622 -:1049B0008091D40181608093D40167C089ED9AE031 -:1049C0009ACF87E496E00E9437060E94D0131F9288 -:1049D0008F938DE296E09F938F930E94D0068091F3 -:1049E0000B011F928F9386E196E09F938F930E9415 -:1049F000D00680916D011F928F9383E096E09F9384 -:104A00008F930E94D00680910C011F928F9380EFAC -:104A100095E09F938F930E94D0068091D60190914C -:104A2000D701A091D801B091D901BF93AF939F93C3 -:104A30008F938CED95E09F938F930E94D0068DB756 -:104A40009EB746960FB6F8949EBF0FBE8DBF55CF4A -:104A50000E94D918C0910C0181E0C827C0930C01B5 -:104A6000CC2329F08FEC9AE00E9437060EC084EC2C -:104A70009AE041CF895301C080E00E946B223DCF74 -:104A800082EC9AE00E943706C0E08C2FCF91089507 -:104A900080E0089580E00895CF93C82F8091DA01D7 -:104AA000882319F0813049F03EC0E0910D01F0916A -:104AB0000E0180818232C9F507C0E0910D01F091AD -:104AC0000E018081823261F48C2F0E944825811171 -:104AD00004C08C2F0E948B2224C081E090E021C072 -:104AE0008C2F0E944A2581111BC0C43189F018F413 -:104AF000CB3029F010C0C93259F0C83361F485E7D2 -:104B000097E00E94370683ED95E00E94370608C0C3 -:104B10001092DA010CC081ED95E00E94370607C0C3 -:104B200081E0817006C01092DA0180E002C080E06E -:104B3000F8CFCF9108950E943C22811102C00E94BB -:104B40001D220E9462228093E90180FF02C08695A7 -:104B500001C080E00C94E4068091E901982F9695BD -:104B600039F48170826081608093E9010E9466223D -:104B70008091D40180FF0FC08091E90186951F923A -:104B80008F9382EB9BE09F938F930E94D0060F90B0 -:104B90000F900F900F908091E90186950C94E40698 -:104BA0008091E901982F969591F09158990F817015 -:104BB000892B8093E9018E7F91E009F490E0809148 -:104BC000E90190FB80F98093E9010E9466228091BF -:104BD000D40180FF0FC08091E90186951F928F93C9 -:104BE0008AE99BE09F938F930E94D0060F900F90CD -:104BF0000F900F908091E90186950C94E4068091C6 -:104C0000E901982F909590FB80F98093E9010E942B -:104C100066228091D40180FF0FC08091E9018170EC -:104C20001F928F9384E89BE09F938F930E94D006FE -:104C30000F900F900F900F908091E90180FF02C0BC -:104C4000869501C080E00C94E4069091E901892FDB -:104C500086958F5F8F779170823028F4880F892B2B -:104C60008093E90102C09093E9018091E9018E7F70 -:104C700091E009F490E08091E90190FB80F9809344 -:104C8000E9010E9466228091D40180FF0FC08091CB -:104C9000E90186951F928F9380E79BE09F938F9306 -:104CA0000E94D0060F900F900F900F908091E90115 -:104CB00086950C94E4062091E901922F9695892718 -:104CC000982F990F822F8170892B8093E9018E7F15 -:104CD00091E009F490E08091E90190FB80F98093E4 -:104CE000E9010E9466228091E90186950C94E40610 -:104CF000991B79E004C0991F961708F0961B881F2E -:104D00007A95C9F780950895EE0FFF1F0590F491ED -:104D1000E02D0994F999FECF92BD81BDF89A9927AB -:104D200080B50895A8E1B0E042E050E00C94B226CE -:104D3000262FF999FECF92BD81BDF89A019700B454 -:104D4000021639F01FBA20BD0FB6F894FA9AF99AF4 -:104D50000FBE08950196272F0E9499260C9498263D -:104D6000DC01CB01FC01F999FECF06C0F2BDE1BD2B -:104D7000F89A319600B40D9241505040B8F708951A -:044D8000F894FFCFD5 -:104D8400FF350C040D380CD00C9C0C0101C1010F33 -:104D94001F4F5F6F7F6C1323766663530333593958 -:104DA400293F3620390705D104B104780404041DD1 -:064DB40004360456040061 -:00000001FF diff --git a/keyboards/clueboard2/led.c b/keyboards/clueboard2/led.c deleted file mode 100644 index 3d074e5d2..000000000 --- a/keyboards/clueboard2/led.c +++ /dev/null @@ -1,36 +0,0 @@ - /* -Copyright 2012 Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include -#include "stdint.h" -#include "led.h" - - -void led_init_ports() { - // * Set our LED pins as output - DDRB |= (1<<4); -} - -void led_set_kb(uint8_t usb_led) { - if (usb_led & (1< Olivier Smedts diff --git a/keyboards/ergodox_ez/keymaps/bepo/compiled.hex b/keyboards/ergodox_ez/keymaps/bepo/compiled.hex deleted file mode 100644 index e2ed480f0..000000000 --- a/keyboards/ergodox_ez/keymaps/bepo/compiled.hex +++ /dev/null @@ -1,1190 +0,0 @@ -:100000000C94D3030C9417040C9417040C94170449 -:100010000C9417040C9417040C9417040C941704F4 -:100020000C9417040C9417040C94B10E0C94830FC9 -:100030000C9417040C9417040C9417040C941704D4 -:100040000C9417040C943D230C9417040C9417047F -:100050000C9417040C94D01C0C9417040C941704E3 -:100060000C9417040C9417040C9417040C941704A4 -:100070000C9417040C9417040C9417040C94170494 -:100080000C9417040C9417040C9417040C94170484 -:100090000C9417040C9417040C9417040C94170474 -:1000A0000C9417040C9417040C941704F00F1210FE -:1000B00000111210001157107A100011CF10E21029 -:1000C000B113B113E013E013161436146715671556 -:1000D00041146715F114F11458156715671561156A -:1000E000FE14FE14FE14FE14FE14FE14FE14FE1480 -:1000F000FE14FE14FE14FE14FE14FE14FE14FE1470 -:1001000010151D1524152B15351502E002E200010E -:10011000E201E00002620001620262016200350059 -:100120002E0030006400015400001E001400040082 -:100130001D00000004521F001A0016001B00E300FF -:10014000E1002000080007000600E0002C0021006C -:10015000150009001900E2000552220017000A00EC -:100160000500000029004C002A0000002B000000C0 -:100170000652470039000000530000000000230031 -:100180001C000B00110000004900240018000D00A5 -:100190001000E600013025000C000E003600E400DF -:1001A0002800260012000F003700E700E5002700B6 -:1001B000130033003800460004522D002F00340095 -:1001C000310048000000210222021A00080001004C -:1001D000000034020500040004000000045236024E -:1001E000080018001C00E3000252370213000C0044 -:1001F0001B00E0002C002602120008003700E2007D -:1002000005522702080036000E00000029004C00AD -:100210002A0000002B0000000652470039000000B1 -:100220005300000000001F022302060034000000FB -:1002300049002E02190017001400035201002D007E -:10024000070016000A00E400280038000F0015001F -:100250000B00E700025225020D00110009004600C4 -:1002600004522E001D00100006004800000020026D -:1002700035001A020802010000001E0005020402F7 -:100280000402010001001F00080218021C02E30220 -:100290000100200013020C021B02E00201002100F9 -:1002A000120208023302E2020100220008023300B7 -:1002B0000E02000001000100010000002B020000FE -:1002C0000100010001000000010000000100230006 -:1002D0001E02060238020000010024001902170263 -:1002E0001402E60201002500070216020A02E402D7 -:1002F000010026000F0215020B02E7020100270091 -:100300000D02110209020100010001001D0210028C -:10031000060201000000210222021A00080001006A -:1003200000003402310204003100000004523602A1 -:10033000080018002F02E3000252370224020C00CA -:100340003002E0002D022F00120022143700E200DC -:1003500005523000080036003502000029004C002C -:100360002A0000002B000000065247003900000060 -:100370005300000000001F022302060034000000AA -:1003800049002E02190017001400010001002D0081 -:10039000070016000A00E400280038000F001500CE -:1003A0000B00E700025225020D0011000900460073 -:1003B00004522E001D00100006004800000000003E -:1003C000000000000000000000003A0000000000F3 -:1003D0007A00000001003B00000000007B000100EB -:1003E00001003C00000000007C00010000003D0016 -:1003F000000000007D00010000003E000000000041 -:10040000000000000000A800A9000000AA000000F1 -:1004100000000000000000000000000000003F009D -:100420004B004E0000000000000040004A00500059 -:1004300000000100010041005200510000000100D5 -:10044000000042004D004F00000001000100430089 -:100450004400450000000000010000000000000012 -:10046000000000000000000000000000000000008C -:10047000000000000000000000000000000000007C -:10048000000000000000010001000000000000006A -:10049000000001000000000000000000000001005A -:1004A000010000000000000000000000000000004B -:1004B000000000000000000000000000000000003C -:1004C000000000000000000000000000000000002C -:1004D000000057005F005C005900620000005600F9 -:1004E00060005D005A0000305800540061005E005A -:1004F0005B008500010055000000000000000000C6 -:1005000000000000000000000000000000000000EB -:1005100000000000000000000000000000000000DB -:1005200000000000000000000000000000000100CA -:1005300001000000000000000000010000000000B9 -:1005400000000000000001000000000000000000AA -:10055000000000000000000000000000000000009B -:10056000010000000000000000000000000000008A -:10057000000000000000000000000000F400F20095 -:100580000000010000000000F000F1000000010088 -:1005900000000000F500F300000001000100000071 -:1005A000F900FA0000000000000000000000000058 -:1005B00000000000000016034500720067006F0095 -:1005C00044006F007800200045005A000000160328 -:1005D0004500720067006F0044006F007800200043 -:1005E00045005A0000000403090409026D000401DB -:1005F00000A0FA0904000001030101000921110112 -:1006000000012240000705810308000A09040100D7 -:100610000103010200092111010001224D0007051B -:10062000820308000A0904020001030000000921F6 -:10063000110100012236000705830308000A09049E -:10064000030001030000000921110100012239000B -:10065000070584031000011201100100000008EDDD -:10066000FE071301000102000105010906A10105B1 -:100670000719E029E7150025019508750181020594 -:1006800008190129059505750191029501750391D8 -:100690000105071900297715002501957875018155 -:1006A00002C005010980A101850216010026B700DC -:1006B0001A01002AB700751095018100C0050C09C8 -:1006C00001A1018503160100269C021A01002A9C43 -:1006D00002751095018100C005010902A1010901FF -:1006E000A1000509190129051500250195057501C8 -:1006F00081029501750381010501093009311581D8 -:10070000257F95027508810609381581257F950199 -:1007100075088106050C0A38021581257F9501753B -:10072000088106C0C005010906A101050719E029D5 -:10073000E71500250195087501810295017508816D -:1007400001050819012905950575019102950175A5 -:100750000391010507190029FF150026FF009506E2 -:1007600075088100C00000000000000000000000CB -:10077000010204060A0F17202C3A4A5D71879DB3C7 -:10078000C7DAE9F5FCFFFCF5E9DAC7B39D87715DCF -:100790004A3A2C20170F0A0604020100000000004C -:1007A00000000000000011241FBECFEFDAE0DEBF22 -:1007B000CDBF04B603FE24C08091FB019091FC01E3 -:1007C000A091FD01B091FE018730904BA740B04B46 -:1007D000B9F41092FB011092FC011092FD011092ED -:1007E000FE0114BE84B7877F84BF88E10FB6F894FA -:1007F00080936000109260000FBEE0E0FFE3099577 -:1008000011E0A0E0B1E0E8E0FAE402C005900D924A -:10081000A433B107D9F711E0A4E3B1E001C01D9200 -:10082000AB3FB107E1F70E94F50B0C9402250C9445 -:1008300000001092B9008AE08093B800089594EA0D -:100840009093BC009091BC0097FFFCCF9091B900B1 -:10085000987F983021F0903111F081E008958093D5 -:10086000BB0084E88093BC008091BC0087FFFCCF74 -:100870008091B900887F883111F0803471F780E071 -:10088000089584E98093BC008091BC0084FDFCCF76 -:1008900008958093BB0084E88093BC008091BC00E5 -:1008A00087FFFCCF9091B900987F81E0983209F4DE -:1008B00080E0089584E88093BC008091BC0087FFAD -:1008C000FCCF8091BB00089580910101811115C07A -:1008D00080E40E941F048093010181110CC082E119 -:1008E0000E94490480930101811105C08FEF0E948D -:1008F0004904809301010E94410484B1807F84B93E -:1009000085B1807F85B98AB1837F8AB98BB1837FB6 -:100910008BB93E98469808950E941F068093010166 -:100920000E94640480B38C7080BB81B3836F81BBF1 -:10093000A5E3B1E0E3E4F1E08EE08E0F11921D92A9 -:100940008E13FCCF0C940906BF92CF92DF92EF92E8 -:10095000FF920F931F93CF93DF9380910101882320 -:1009600079F0809134018F5F80933401811108C048 -:100970000E941F0680930101811102C00E94B105EF -:1009800005E311E0C0E0D0E0DD24D39482E0C82E7E -:10099000EE24E394F12CC730D10500F580910101DC -:1009A000811164C080E40E941F04809301018111C1 -:1009B00012C082E10E9449048093010181110BC0A1 -:1009C000C7010C2E01C0880F0A94EAF780950E9497 -:1009D0004904809301010E94410448C0CA30A1F03B -:1009E00028F4C83059F0C93061F005C0CC3089F026 -:1009F00070F0CD3089F0209A289810C0219A29985B -:100A00000DC0229A2A980AC0239A2B9807C0529A9E -:100A100001C0539A5B9802C03E9A469890EA9A9514 -:100A2000F1F79FB1799902C082E001C080E0917036 -:100A30009D25982B7C9902C084E001C080E0892B21 -:100A40007D9902C038E001C030E0832B7E9902C05E -:100A500020E101C020E0822B9FB19095991F99273A -:100A6000991F9295990F907E892B0FC0809101015B -:100A7000811149C080E40E941F04809301018823F2 -:100A800079F1B12C0E9441048B2DF80190819817C7 -:100A900019F08083C09200010E94640421960F5FC8 -:100AA0001F4FCE30D10509F076CF80910001882309 -:100AB00061F1815080930001882339F08FE99FE034 -:100AC0000197F1F700C0000020C0A3E4B1E0E5E326 -:100AD000F1E0CF01825F91919D938E13FCCF15C001 -:100AE00083E10E944904809301018111CACF81E40E -:100AF0000E941F04809301018111C3CF0E945A04F8 -:100B0000B82EB094BFCF80E0C0CF0E94AF0581E087 -:100B1000DF91CF911F910F91FF90EF90DF90CF90D9 -:100B2000BF900895E82FF0E0ED5BFE4F80810895BF -:100B300008950F931F93CF93DF93C3E4D1E010E0A8 -:100B40000C2F025F899190E00E94461C180F0C1335 -:100B5000F9CF812FDF91CF911F910F9108950C94C0 -:100B6000910656985E9825982D9826982E98279845 -:100B70002F988FEF90E09093890080938800909356 -:100B80008B0080938A0090938D0080938C00259A2F -:100B90002D9A2FEF80E792E0215080409040E1F7BE -:100BA00000C00000269A2E9A2FEF80E792E0215095 -:100BB00080409040E1F700C00000279A2F9A2FEF65 -:100BC00080E792E0215080409040E1F700C00000B3 -:100BD00025982D982FEF80E792E02150804090409B -:100BE000E1F700C0000026982E982FEF80E792E0F2 -:100BF000215080409040E1F700C0000027982F98D6 -:100C000056985E9825982D9826982E9827982F9874 -:100C1000089589EA8093800089E080938100249878 -:100C20002C983F988AB18F748AB96E98479A8BB185 -:100C3000806B8BB9769A0E94B1050C94900680E285 -:100C4000809301018091510181110EC00E9419040D -:100C500081E0809351012FEF83ED90E3215080409C -:100C60009040E1F700C0000080E40E941F048093E0 -:100C7000010181112EC00E9449048093010181115C -:100C800028C00E94490480930101811122C08FE392 -:100C90000E9449048093010181111BC00E944104FC -:100CA00080E40E941F0480930101811112C08CE036 -:100CB0000E9449048093010181110BC00E944904E4 -:100CC00080930101811105C08FE30E944904809344 -:100CD00001010E944104809101010895662319F0E9 -:100CE000613041F017C0FC018281811116C084E19E -:100CF00091E00895FC018281882331F084E00E9414 -:100D00000F1A8FE091E0089584E00E94301A8AE083 -:100D100091E0089580E090E0089587E191E00895E2 -:100D20000895089581E0089581E008950C94940653 -:100D300008950F931F93CF93DF938C01FC01C08123 -:100D4000D181CE010E94CB1ABE010E944207EC0164 -:100D5000B8010E949606882309F48DC0F8018281AB -:100D6000882309F44AC080915D0181111FC0C431FC -:100D7000F0E5DF0709F051C00E94980681E08093FA -:100D80005D010E949A1C90935C0180935B0110921C -:100D90005401109256011092550110925801109270 -:100DA000570110925A011092590165C080915B0160 -:100DB00090915C010E94A61C883C910570F4809182 -:100DC0005401E82FF0E0EE0FFF1FEB5AFE4FD183E6 -:100DD000C0838F5F809354014EC0C43880E5D8072C -:100DE00021F0C538D04501F13AC0F801828188234D -:100DF00041F01092520182E01EC0C438E0E5DE07E7 -:100E000059F580915201811106C086E20E94551267 -:100E100086E20E941D1382E01CC0C438F0E5DF07A3 -:100E200041F3C538D045D9F4F8018281882331F0E7 -:100E30001092530180E20E946C131DC080915301F7 -:100E4000811106C087E20E94551287E20E941D139D -:100E500080E20E9473130FC0C538D04529F381E0AA -:100E60008093520180935301C801DF91CF911F916C -:100E70000F910C94920680E0DF91CF911F910F911A -:100E80000895089596E0799FF001112494E5899FD3 -:100E9000E00DF11D1124E60FF11DEE0FFF1FE25EC4 -:100EA000FE4F859194910895880F991FFC01E25699 -:100EB000F040859194910895880F991FFC01E25E9E -:100EC000FE4F8591949108950F931F93CF93DF93D5 -:100ED000EC01811520E3920750F5C11580E2D80797 -:100EE00008F0C3C0CB3BD10590F4C83AD10508F057 -:100EF0006AC0C53AD10508F05BC0C430D10508F01E -:100F0000D0C1219709F0CAC101E010E00AC2CF3F69 -:100F1000D10511F008F0C5C1C03FD10508F0A2C04D -:100F2000CE01805E9109089708F4BBC1B7C1C130FA -:100F300090E5D90709F4A2C020F5C0318FE4D807A5 -:100F400070F4C11590E4D90708F094C0C11521E3ED -:100F5000D20708F0A3C1DD278E01106CE2C1C115D4 -:100F6000D04509F09BC10E94D2158FEF94E32CE08D -:100F7000815090402040E1F700C000000E94F51C25 -:100F8000D0C1C11597E5D90758F4C03121E5D20782 -:100F900008F01CC1C43180E5D80708F475C07EC1D3 -:100FA000CE0190578115904108F078C1DF7073C170 -:100FB000C53AD10509F477C1C63AD10509F076C121 -:100FC00002E810E4AEC1C83AD10509F472C1C93AC9 -:100FD000D10509F471C1CA3AD10509F470C1CB3AFF -:100FE000D10509F46FC1CC3AD10509F46EC1CD3AEF -:100FF000D10509F46DC1C03BD10509F46CC1CE3AED -:10100000D10509F46BC1CF3AD10509F46AC1C13BDE -:10101000D10509F469C1C23BD10509F468C1C33BDC -:10102000D10509F467C1C43BD10509F466C1C53BCC -:10103000D10509F465C1C63BD10509F464C1C73BBC -:10104000D10509F463C1C83BD10509F462C1C93BAC -:10105000D10509F461C1CA3BD10509F460C100E0C2 -:1010600014E45FC18E0110655CC1CE019F700E94C7 -:101070005C0758C1DF708E01106A53C18091DA019C -:1010800081608093DA014DC10E949A1E811102C0D5 -:101090000E94801E0E94B71E90E09093FB018093F7 -:1010A000FA01C23080E5D80721F48091FA0181600D -:1010B00086C0C43090E5D90721F48091FA0182609E -:1010C0007EC0C63020E5D20721F48091FA01846009 -:1010D00076C0C83080E5D80719F48091FA0127C09E -:1010E000CA3090E5D90721F48091FA01806167C088 -:1010F000CC3020E5D20721F48091FA0180625FC0F4 -:10110000CE3080E5D80721F48091FA01806457C081 -:10111000C03190E5D90721F48091FA0180684FC071 -:10112000C23120E5D20729F48091FA0184608860F9 -:1011300046C0C33080E5D80721F48091FA018E7F44 -:101140003EC0C53090E5D90721F48091FA018D7F2A -:1011500036C0C73020E5D20721F48091FA018B7F99 -:101160002EC0C93080E5D80719F48091FA0126C055 -:10117000CB3090E5D90721F48091FA018F7E1FC012 -:10118000CD3020E5D20721F48091FA018F7D17C080 -:10119000CF3080E5D80721F48091FA018F7B0FC012 -:1011A000C13190E5D90721F48091FA018F7707C00A -:1011B000C331D04531F48091FA018B7F877F8093D2 -:1011C000FA018091FA010E94BB1EABC08D2F9927B6 -:1011D0008F70992781309105D9F49E0123703327B0 -:1011E00002C0880F991F2A95E2F79C688E0144E09F -:1011F000000F111F4A95E1F700271370802B912BE8 -:1012000053E0CC0FDD1F5A95E1F7C076DD272FC0E4 -:101210008230910531F4DC2FCC278E01016F106AEA -:1012200080C08330910569F4CE018370992701E075 -:1012300010E002C0000F111F8A95E2F7C8019C68F8 -:101240000FC084309105B9F4CE018370992701E075 -:1012500010E002C0000F111F8A95E2F7C8019A68DA -:1012600023E0CC0FDD1F2A95E1F7C07ED7708C01FB -:101270000C2B1D2B56C08530910531F4DC2FCC276B -:101280008E01046F106A4DC0069709F04AC0CF71F5 -:10129000DD27DC2FCC278E01106243C000E010E078 -:1012A00040C08E013EC001E810E43BC003E810E4FA -:1012B00038C002EE14E435C009EE14E432C00AEE80 -:1012C00014E42FC005EB14E42CC006EB14E429C091 -:1012D00007EB14E426C00CEC14E423C00DEC14E47A -:1012E00020C003E815E41DC00AE815E41AC002E9AD -:1012F00015E417C004E915E414C001E216E411C0B6 -:1013000003E216E40EC004E216E40BC005E216E4A4 -:1013100008C006E216E405C007E216E402C00AE2CD -:1013200016E4C801DF91CF911F910F91089596E0C7 -:10133000799FF001112494E5899FE00DF11D11249E -:10134000E60FF11DEE0FFF1FE25EFE4F85919491B7 -:10135000803E9105E0F4803C910558F5813391057C -:1013600009F46FC048F48932910509F463C08A32E8 -:10137000910509F46DC072C089339105E9F0823896 -:101380009105D1F08533910509F44DC067C0833EC6 -:10139000910581F138F4803E9105B9F0823E9105C6 -:1013A000D9F05CC0863E910561F1873E9105A1F1BF -:1013B00055C00E94540708952091FA0120FD02C0F3 -:1013C00021FF4CC080EE90E049C08091FA0180FF7F -:1013D000F9CF89E390E042C08091FA0182FF0EC00C -:1013E0008091FA0184FF03C080E090E037C083EE73 -:1013F00090E034C08091FA0182FFF2CF82EE90E05B -:101400002DC08091FA0183FF0BC08091FA0184FD09 -:10141000EBCF87EE90E022C08091FA0183FFF5CFF9 -:1014200086EE90E01BC08091FA0185FF07C089E23B -:1014300090E014C08091FA0185FFF9CF85E390E038 -:101440000DC08091FA0186FF07C08AE290E006C0D5 -:101450008091FA0186FFF9CF81E390E00E94640752 -:10146000089508950C94310A80916E010895CF93E8 -:10147000DF9300D01F92CDB7DEB79C018091F101C0 -:10148000843019F593E099833B832A839093E90094 -:101490008FEF9091E800815095FD06C095ED9A95EB -:1014A000F1F700008111F5CF8091E80085FF0DC0B4 -:1014B00040E050E063E070E0CE0101960E94A10C94 -:1014C0008091E8008E778093E8000F900F900F9046 -:1014D000DF91CF910895CF93DF9300D01F92CDB7C6 -:1014E000DEB72091F101243021F522E029839B838E -:1014F0008A8383E08093E9008FEF9091E800815028 -:1015000095FD06C095ED9A95F1F700008111F5CF94 -:101510008091E80085FF0DC040E050E063E070E09E -:10152000CE0101960E94A10C8091E8008E778093F5 -:10153000E8000F900F900F90DF91CF9108952091C8 -:10154000F1012430F1F422E02093E9002FEF3091F3 -:10155000E800215035FD06C035ED3A95F1F7000061 -:101560002111F5CF2091E80025FF0BC040E050E0AD -:1015700065E070E00E94A10C8091E8008E77809376 -:10158000E8000895CF93DF93EC019091F10194303E -:1015900009F046C080910C018823D9F080910D019B -:1015A0008823B9F09093E9008FEF9091E800815083 -:1015B00095FD06C095E19A95F1F700008111F5CFF0 -:1015C0008091E80085FF2CC040E050E060E170E0D1 -:1015D00017C081E08093E9008FEF9091E80081507F -:1015E00095FD06C095ED9A95F1F700008111F5CFB4 -:1015F0008091E80085FF14C040E050E068E070E0B2 -:10160000CE010E94A10C8091E8008E778093E800C3 -:1016100080E1FE01AEE5B1E001900D928A95E1F71F -:10162000DF91CF9108958091F001811109C00E944E -:10163000360E0E94930E8091E20084608093E20057 -:1016400008951092F001089508950C942A230E94A1 -:101650008B1C0E9430230E9439110C94320A42E004 -:1016600061EC81E00E94B00D42E061EC82E00E94FA -:10167000B00D42E061EC83E00E94B00D42E161EC0C -:1016800084E00C94B00D8091F301833009F455C0CF -:1016900030F4813071F0823009F48EC008958A30C0 -:1016A00009F47AC08B3009F460C0893009F09CC01D -:1016B00020C08091F201813A09F096C08091E80043 -:1016C000877F8093E8008091F6019091F701892B44 -:1016D00021F460E18EE591E003C060E080E090E0FD -:1016E00070E00E94EC0C8091E8008B778093E8001A -:1016F00008958091F201813209F076C08091F6015F -:101700009091F701009719F0039709F06DC080914F -:10171000E800877F8093E8008091E80082FD05C0A3 -:101720008091F1018111F8CF5FC08091F100809329 -:101730006E018091E8008B7753C08091F201813A6D -:1017400009F052C08091F6019091F701892B09F0C0 -:101750004BC08091E800877F8093E8008091E8008B -:1017600080FFFCCF80910C0136C08091F201813264 -:10177000D9F58091F6019091F701892BA9F5809117 -:10178000E800877F8093E8000E94E50D8091F401D6 -:1017900080930C010C94D2158091F201813221F5D5 -:1017A0008091E800877F8093E8000E94E50D80919A -:1017B000F50180936F0108958091F201813AA1F4BF -:1017C0008091E800877F8093E8008091E80080FFA7 -:1017D000FCCF80916F018093F1008091E8008E77BB -:1017E0008093E8000C94E50D089584B7877F84BF4B -:1017F00088E10FB6F89480936000109260000FBEED -:1018000090E080E80FB6F8948093610090936100B7 -:101810000FBE0E9488110E94360E0E94930E809186 -:10182000E20084608093E20078940E9419110E9483 -:101830008A1182E091E00E9434110E941823809165 -:10184000F101853069F40E94521C8091EF018823D8 -:10185000B1F30E947D1C882391F30E948B0CEFCF83 -:101860000E949011ECCF292F332723303105C9F086 -:1018700064F42130310581F02230310509F043C094 -:101880008DE690E02AEE35E042C021323105F1F0DC -:101890002232310541F137C082E190E027E536E0A0 -:1018A00036C099278130910541F08230910541F091 -:1018B000892B49F5E6EEF5E005C0EEECF5E002C057 -:1018C000E6EBF5E0849190E09F0121C06430D8F40C -:1018D000E62FF0E0EE0FFF1FEE5DFE4F208131811D -:1018E00089E090E014C0643070F470E0FB01EE0F0A -:1018F000FF1FE65EFE4F20813181FB01EA5EFE4F55 -:10190000808190E004C080E090E020E030E0FA01C7 -:1019100031832083089580E189BD82E189BD09B4C6 -:1019200000FEFDCF8091D8008F7D8093D8008091FC -:10193000E00082608093E0008091E00081FDFCCFB8 -:101940000895CF92DF92EF92FF920F931F93CF9360 -:10195000DF93EC018B016A010E94040E811133C0F8 -:10196000C114D10439F0F60180819181081B190B53 -:10197000C80FD91FE12CF12C0115110519F1809127 -:10198000E80085FD16C08091E8008E778093E8001E -:10199000C114D10449F0F60180819181E80EF91E4D -:1019A000F182E08285E00FC00E94040E882321F3BB -:1019B0000AC089918093F10001501109FFEFEF1ADD -:1019C000FF0ADACF80E0DF91CF911F910F91FF9056 -:1019D000EF90DF90CF9008952091F8013091F901B8 -:1019E0002617370748F06115710539F42091E80092 -:1019F0002E772093E80001C0B90140E06115710520 -:101A0000A9F12091F101222309F443C0253009F402 -:101A100042C02091E80023FD40C02091E80022FD53 -:101A200032C02091E80020FFE9CF4091F3002091DF -:101A3000F20030E0342BFC01CF016115710559F043 -:101A40002830310540F481918093F1006150710993 -:101A50002F5F3F4FF1CF41E02830310509F040E0E2 -:101A60002091E8002E772093E800C8CF4111C9CF1C -:101A70000AC08091F101882361F0853061F0809186 -:101A8000E80083FD0AC08091E80082FFF2CF80E089 -:101A9000089582E0089583E0089581E008952091FB -:101AA000F8013091F9012617370748F061157105E3 -:101AB00039F42091E8002E772093E80001C0B901A5 -:101AC000FC0120E06115710591F18091F1018823FD -:101AD00009F440C0853009F43FC08091E80083FDDF -:101AE0003DC08091E80082FD2FC08091E80080FF1A -:101AF000E9CF2091F3008091F20090E0922B6115E4 -:101B0000710559F08830910540F424912093F1003B -:101B10003196615071090196F2CF21E0089709F0E2 -:101B200020E08091E8008E778093E800CBCF2111F0 -:101B3000CCCF0AC08091F101882361F0853061F03B -:101B40008091E80083FD0AC08091E80082FFF2CF17 -:101B500080E0089582E0089583E0089581E008958B -:101B6000982F973058F59093E900981739F07091B5 -:101B7000EC002091ED005091F00003C0242F762F4F -:101B800050E021FF19C03091EB003E7F3093EB0015 -:101B90003091ED003D7F3093ED003091EB003160EE -:101BA0003093EB007093EC002093ED005093F00025 -:101BB0002091EE0027FF07C09F5FD3CF8F708093E7 -:101BC000E90081E0089580E008958091F20187FFA7 -:101BD00011C08091E80082FD05C08091F101811162 -:101BE000F8CF11C08091E8008B770BC08091F10194 -:101BF000882349F08091E80080FFF8CF8091E800C9 -:101C00008E778093E80008952091E4003091E500FC -:101C100095E64091EC00842F817040FF22C08091B6 -:101C2000E80080FD1CC08091F101882391F085308F -:101C300091F08091EB0085FD10C04091E40050913F -:101C4000E5004217530729F39A01915011F784E0F8 -:101C5000089582E0089583E0089581E0089580E08A -:101C600008954091E80042FFDECF08950E94A40E3F -:101C70000E94AC0EE0EEF0E0808181608083E8EDB0 -:101C8000F0E080818F77808319BCA7EDB0E08C9164 -:101C90008E7F8C9380818F7E80831092F0010895D7 -:101CA0000F931F93CF93DF930E94A40E0E94AC0E5C -:101CB000C8EDD0E088818F778883888180688883A9 -:101CC00088818F7D888319BC1092F1011092ED01FB -:101CD0001092EF011092EE0100EE10E0F801808109 -:101CE0008B7F808388818160888342E060E080E030 -:101CF0000E94B00DE1EEF0E080818E7F8083E2EE05 -:101D0000F0E0808181608083808188608083F80139 -:101D100080818E7F8083888180618883DF91CF91ED -:101D20001F910F910895E8EDF0E080818F7E808310 -:101D3000E7EDF0E080818160808384E082BF81E014 -:101D40008093F0010C94500EE8EDF0E080818E7FDE -:101D500080831092E20008951092DA001092E10060 -:101D600008951F920F920FB60F9211242F933F9355 -:101D70004F935F936F937F938F939F93AF93BF9393 -:101D8000EF93FF938091E10082FF0BC08091E2000E -:101D900082FF07C08091E1008B7F8093E1000E9469 -:101DA00018118091DA0080FF1FC08091D80080FF59 -:101DB0001BC08091DA008E7F8093DA008091D90079 -:101DC00080FF0DC080E189BD82E189BD09B400FEBC -:101DD000FDCF81E08093F1010E94130B05C019BC77 -:101DE0001092F1010E94210B8091E10080FF19C047 -:101DF0008091E20080FF15C08091E2008E7F809389 -:101E0000E2008091E20080618093E2008091D8003E -:101E100080628093D80019BC85E08093F1010E9414 -:101E2000250B8091E10084FF30C08091E20084FFA7 -:101E30002CC080E189BD82E189BD09B400FEFDCFDF -:101E40008091D8008F7D8093D8008091E1008F7EB3 -:101E50008093E1008091E2008F7E8093E200809188 -:101E6000E20081608093E2008091ED01882311F00F -:101E700084E007C08091E30087FD02C081E001C0DB -:101E800083E08093F1010E94270B8091E10083FFA2 -:101E900029C08091E20083FF25C08091E100877F07 -:101EA0008093E10082E08093F1011092ED01809136 -:101EB000E1008E7F8093E1008091E2008E7F80932D -:101EC000E2008091E20080618093E20042E060E005 -:101ED00080E00E94B00D8091F00088608093F00057 -:101EE0000E94240BFF91EF91BF91AF919F918F9131 -:101EF0007F916F915F914F913F912F910F900FBE06 -:101F00000F901F9018951F920F920FB60F921124E9 -:101F10002F933F934F935F936F937F938F939F93F1 -:101F2000AF93BF93CF93DF93EF93FF93C091E900FB -:101F3000CF708091EC00D82FD17080FDD0E8109246 -:101F4000E9008091F000877F8093F00078940E94F0 -:101F5000C70F1092E9008091F00088608093F00034 -:101F6000CD2BCF70C093E900FF91EF91DF91CF911E -:101F7000BF91AF919F918F917F916F915F914F91A1 -:101F80003F912F910F900FBE0F901F9018951F93A8 -:101F9000CF93DF93CDB7DEB7AA970FB6F894DEBF25 -:101FA0000FBECDBFE2EFF1E088E08E0F9091F1001F -:101FB00091938E13FBCF0E94430B8091E80083FF27 -:101FC0001FC18091F2019091F301492F50E04A30F6 -:101FD000510508F015C1FA01EA5AFF4F0C94B224DA -:101FE000803881F0823809F00BC18091F6018F7042 -:101FF0008093E9008091EB0085FB882780F910929F -:10200000E90006C08091EE019091EF01911182608C -:102010009091E800977F9093E8008093F1001092F0 -:10202000F100C8C0282F2D7F09F0EAC0882319F0DD -:10203000823061F0E5C08091F401813009F0E0C0A8 -:10204000933009F080E08093EF012BC08091F40180 -:10205000811127C08091F6018F7009F4D1C080935F -:10206000E9002091EB0020FF1CC0933021F4809107 -:10207000EB00806214C09091EB0090619093EB00B4 -:1020800021E030E0A90102C0440F551F8A95E2F714 -:102090004093EA001092EA008091EB008860809300 -:1020A000EB001092E9008091E800877F86C08111E3 -:1020B000A7C01091F4011F778091E3008078812BF5 -:1020C0008093E3008091E800877F8093E8000E947E -:1020D000E50D8091E80080FFFCCF8091E3008068EF -:1020E0008093E300111102C082E001C083E080937D -:1020F000F10186C08058823008F082C08091F401DE -:102100009091F5018C3D53E0950779F583E08A8342 -:102110008AE289834FB7F894DE01139620E03EE00F -:1021200051E2E32FF0E050935700E49120FF03C009 -:10213000E295EF703F5FEF708E2F90E0EA3010F085 -:10214000C79601C0C0968D939D932F5F243149F7A8 -:102150004FBF8091E800877F8093E8006AE270E0DB -:10216000CE0101960E94EC0C14C0AE014F5F5F4F90 -:102170006091F6010E94330CBC01009709F440C045 -:102180009091E800977F9093E80089819A810E945E -:102190004F0D8091E8008B778093E80031C0803844 -:1021A00079F58091E800877F8093E8008091ED01C8 -:1021B0008093F1008091E8008E778093E8000E9480 -:1021C000E50D1EC081111CC09091F4019230C0F445 -:1021D0008091E800877F8093E8009093ED010E9452 -:1021E000E50D8091ED01811106C08091E30087FD2E -:1021F00002C081E001C084E08093F1010E942F0BB6 -:102200008091E80083FF0AC08091E800877F809377 -:10221000E8008091EB0080628093EB00AA960FB6F5 -:10222000F894DEBF0FBECDBFDF91CF911F9108950F -:102230000895CF938091F1018823A1F0C091E90026 -:10224000CF709091EC00892F817090FD80E8C82BB1 -:102250001092E9008091E80083FD0E94C70FCF70C3 -:10226000C093E900CF910895909375018093740114 -:102270000895E0917401F0917501309721F001907B -:10228000F081E02D099480E00895E0917401F091CF -:102290007501309721F00280F381E02D09940895B3 -:1022A000E0917401F0917501309721F00480F5817F -:1022B000E02D0994089520917201309173018217E5 -:1022C000930771F09093730180937201E091740110 -:1022D000F0917501309721F00680F781E02D099487 -:1022E000089520917001309171018217930771F068 -:1022F0009093710180937001E0917401F0917501E8 -:10230000309721F00084F185E02D09940895089517 -:102310000C9487110E94911C0E948C040C94531DF4 -:102320009F92AF92BF92CF92DF92EF92FF920F9364 -:102330001F93CF93DF9300D000D000D0CDB7DEB78E -:102340000E94A4040DE010E0AA24A394B12C902EC6 -:10235000802F0E949205980129583E4F6901F9018A -:10236000F080F826A1F40150110988F78FEF8983D6 -:102370008A831B820E949A1C8160782F9D838C83A4 -:1023800049815A816B818D810E9427122FC09091C3 -:10239000DA0191FF04C08E830E9498058E8125E0AA -:1023A00030E0A501022E01C0440F0A94EAF7E42EA2 -:1023B0004F21C1F029839A828E2191E009F490E0A7 -:1023C0009B830E949A1C8160782F9D838C83498116 -:1023D0005A816B818D810E942712F6018081E82647 -:1023E000E08204C021503109E0F6BDCF0E943A20BE -:1023F000109176010E9439111817B9F00E94391115 -:102400008093760126960FB6F894DEBF0FBECDBF3F -:10241000DF91CF911F910F91FF90EF90DF90CF90C0 -:10242000BF90AF909F900C94320A26960FB6F89406 -:10243000DEBF0FBECDBFDF91CF911F910F91FF90F7 -:10244000EF90DF90CF90BF90AF909F900895CF9383 -:10245000DF93CDB7DEB72B970FB6F894DEBF0FBE74 -:10246000CDBF4F83588769877A878B87DE011196A6 -:1024700086E0FD0111928A95E9F785E0FE01379625 -:1024800001900D928A95E1F749815A816B817C8197 -:102490008D819E810E9470182B960FB6F894DEBF36 -:1024A0000FBECDBFDF91CF910895CF93882309F45C -:1024B000C2C0C82F823859F40E94391181FDBBC0B7 -:1024C00089E30E944A1B0E94171C89E30CC08338D1 -:1024D00079F40E94391180FDAEC083E50E944A1B49 -:1024E0000E94171C83E50E948C1BCF910C94171C33 -:1024F000843859F40E94391182FD9DC087E40E94FE -:102500004A1B0E94171C87E4EECF8CEF8C0F813A98 -:1025100048F48C2F0E947D2281118DC08C2F0E9447 -:102520004A1BE3CF80E28C0F883048F4C77081E00B -:1025300001C0880FCA95EAF70E94D01BD6CF8BE561 -:102540008C0F833078F4C53A29F0C63A31F083E82D -:1025500090E005C081E890E002C082E890E0CF9171 -:102560000C945B1188E58C0F833108F064C0C83A85 -:1025700039F1C93A41F1CA3A49F1CB3A51F1CC3A71 -:1025800059F1CD3A61F1C03B69F1CE3A71F1CF3AE0 -:1025900079F1C13B81F1C23B89F1C33B91F1C43B6D -:1025A00099F1C53BA1F1C63BA9F1C73BB1F1C83BCD -:1025B000B9F1C93BC1F1CA3BC9F180E090E038C034 -:1025C00082EE90E035C089EE90E032C08AEE90E075 -:1025D0002FC085EB90E02CC086EB90E029C087EB04 -:1025E00090E026C08CEC90E023C08DEC90E020C001 -:1025F00083E891E01DC08AE891E01AC082E991E089 -:1026000017C084E991E014C081E292E011C083E236 -:1026100092E00EC084E292E00BC085E292E008C036 -:1026200086E292E005C087E292E002C08AE292E090 -:10263000CF910C947111CF910895882309F44BC068 -:10264000823859F40E94391181FF45C089E30E9404 -:102650004A1B0E94171C89E30CC0833871F40E9446 -:10266000391180FF38C083E50E944A1B0E94171C65 -:1026700083E50E948C1B0C94171C843859F40E942B -:10268000391182FF28C087E40E944A1B0E94171C50 -:1026900087E4EFCF9CEF980F913A58F390E2980FB0 -:1026A000983050F4877091E001C0990F8A95EAF74D -:1026B000892F0E94D61BDFCF9BE5980F933020F423 -:1026C00080E090E00C945B11885A833120F480E024 -:1026D00090E00C9471110895882321F00E94D01B82 -:1026E0000C94171C0895882321F00E94D61B0C948B -:1026F000171C08957F928F929F92AF92BF92CF92B4 -:10270000DF92EF92FF920F931F93CF93DF931F926D -:10271000CDB7DEB77C01C62E772EFC010581029570 -:102720000F70128111110E94ED1B0E94431B882320 -:1027300079F0112369F080E28C0D883048F082E056 -:102740000E942C1B0E94431B91E0D82ED92601C069 -:10275000D12CE72DE295EF70F0E0E05AFF4F0C949A -:10276000B224872D807F072D0F70882311F00295EA -:10277000007F112389F0002309F490C180E28C0DC1 -:10278000883020F4802F0E94D01B03C0802F0E942D -:10279000E01B0E94171C82C18C2D0E941D13002378 -:1027A00009F495C180E28C0D883020F4802F0E94BE -:1027B000D61B03C0802F0E94E61B0E94171C87C1F6 -:1027C000972D907F872D8F70903211F08295807FAA -:1027D000CC2021F0F1E0CF16B1F01EC0112349F05A -:1027E000002309F414C1013009F011C10E94001C3A -:1027F0006EC1002319F0013009F469C189830E9478 -:10280000031C89810AC1112321F0023008F05FC145 -:10281000FEC001115CC101C1112321F0002309F4A4 -:10282000F6C03CC1002309F4F8C03EC1872D86954F -:102830008695837090E0009719F0019761F047C189 -:10284000112321F08C2D972D937002C080E090E031 -:102850000E945B113CC1112321F08C2D972D9370A8 -:1028600002C080E090E00E94711131C18C2D1123D3 -:1028700019F00E94421F02C00E94AA1F0E942F202E -:1028800026C1872D837009F052C0111120C18C2DF3 -:10289000829586958770880F880F9C2D9F70892E52 -:1028A000912CA12CB12C082E04C0880C991CAA1CB8 -:1028B000BB1C0A94D2F7C4FE14C00FE010E020E065 -:1028C00030E0B901A80104C0440F551F661F771FEF -:1028D0008A95D2F7CB01BA01609570958095909555 -:1028E00003C060E070E0CB01272D2695269523706C -:1028F00030E02230310569F02330310589F0682954 -:1029000079298A299B292130310571F00E94B81953 -:10291000DEC0682979298A299B290E94D419D7C049 -:102920000E94B819C501B4010E949C19D0C011239E -:1029300019F0872D817001C08695882309F4C7C0DE -:102940008C2D829586958770880F880F9C2D9F709F -:10295000892E912CA12CB12C082E04C0880C991C16 -:10296000AA1CBB1C0A94D2F7C4FE14C00FE010E0EE -:1029700020E030E0B901A80104C0440F551F661FD4 -:10298000771F8A95D2F7CB01BA0160957095809533 -:10299000909503C060E070E0CB01272D2695269529 -:1029A0002370422F50E04230510569F04330510509 -:1029B00089F0682979298A299B294130510571F0CC -:1029C0000E94921A84C0682979298A299B290E9429 -:1029D000AE1A7DC00E94921AC501B4010E94761AF7 -:1029E00076C08C2D90E0FC01E05EF109E531F10547 -:1029F00008F050C0E059FF4F0C94B2240C2D0F701A -:102A0000872D8F71112331F00E940F1A802F0E94A1 -:102A10006C135DC00E94301A802F0E94731357C040 -:102A2000112339F0011153C0872D8F710E94551A5F -:102A30004EC0023008F04BC0F7CF112339F0872D7C -:102A40008F710E940F1A43C01123C9F3872D8F7114 -:102A50000E94301A3CC0112329F0872D8F710E94EB -:102A6000FA1935C00E94F01932C0112351F0172D08 -:102A70001F71812F0E940F1A63E0812F0E94231B78 -:102A800026C081E00E942C1B023008F182E00E94E7 -:102A90002C1B1DC0112331F0002389F28C2D0E94C4 -:102AA000551215C0002391F28C2D0E941D130FC0EA -:102AB000472D4F706C2DC7010E946E060E9414199D -:102AC00006C0472D4F706C2DC7010E944107DD20C5 -:102AD000F9F00E941F1B80FD1BC0F70112820E94AB -:102AE000191B0E940F1AC7010E9497150E94191BFB -:102AF0000F90DF91CF911F910F91FF90EF90DF909A -:102B0000CF90BF90AF909F908F907F900C94301A91 -:102B10000F90DF91CF911F910F91FF90EF90DF9079 -:102B2000CF90BF90AF909F908F907F9008950F931C -:102B30001F93CF93DF93EC01888199812B813C8196 -:102B4000232BB9F09F3F11F48F3F99F0CE010E94E3 -:102B50009906882371F0688179818A810E94151B0A -:102B60008C010E94CA1A0E949119B801CE010E94DC -:102B70007A13DF91CF911F910F9108950E94ED1B61 -:102B80000E94FD1B0E94C21B0E94171C0E94E02095 -:102B90000E942F2080E090E00E945B1180E090E096 -:102BA0000C9471110E94DD1B0C94BE150E940A1B2F -:102BB000292F22952F7030E02C3031054CF42A302B -:102BC00031056CF42250310922303105A8F407C0D8 -:102BD0002C30310569F02F30310551F00DC0803FA8 -:102BE00069F018F4803E40F409C0843F29F406C01F -:102BF00093FB882780F9089580E0089581E0089587 -:102C0000CF93DF9300D000D01F92CDB7DEB70F90E7 -:102C10000F900F900F900F90DF91CF910895CF9369 -:102C2000DF9300D000D000D0CDB7DEB726960FB628 -:102C3000F894DEBF0FBECDBFDF91CF9108951F93F3 -:102C4000CF93DF93C091850116E080918601C8176C -:102C500099F0D0E01C9FF0011D9FF00D1124E95761 -:102C6000FE4F4081518162817381848195810E94F0 -:102C70000F162196C770E9CFDF91CF911F9108956C -:102C80004091B7015091B8016091B9017091BA01BA -:102C90008091BB019091BC010C940F168091BC01F6 -:102CA00082958F7009F054C08091B901882309F48E -:102CB0004FC080918501A09186016091B70170910C -:102CC000B8014091BA015091BB01B6E08A1709F4EE -:102CD0003FC090E041155105C1F17F3F11F46F3FB6 -:102CE000A1F1B89FF001B99FF00D1124E957FE4FF3 -:102CF000218172132AC02081621327C022812111F1 -:102D000024C0238134812417350710F42150310960 -:102D1000241B350B283C3105C0F42091BC012F70D9 -:102D200020612093BC0126E0289FF001299FF00D2F -:102D30001124E457FE4F80818F708061808387EB80 -:102D400091E00E9497150C941F1601968770BECFD4 -:102D50000895CF92DF92EF92FF920F931F93CF933C -:102D6000DF93CDB7DEB762970FB6F894DEBF0FBE24 -:102D7000CDBF8C0185E0F801DE011D9601900D921A -:102D80008A95E1F7D8014C9111965C9111971296B2 -:102D90006C9112971396CD90DC9014973091B701F7 -:102DA0007091B8018091BA019091BB01009709F42C -:102DB0006BC17F3F19F43F3F09F466C1E090B90150 -:102DC000EE2009F4C0C02091BC01C816D90628F035 -:102DD000F601E81BF90BCF0104C0809590958C0D8E -:102DE0009D1DFF24F394883C910578F0F12C207F01 -:102DF00009F0C6C07C2DD98AC88A89890E9400162C -:102E000087EB91E00E949715B1C0822F807F09F077 -:102E100046C0751314C0341312C0611110C02F7056 -:102E200020612093BC010E94401687EB91E00E9434 -:102E300097158091BC01D80115968C932EC0CD2892 -:102E400019F15F3F11F44F3FF9F0F62E61111CC0EC -:102E5000809185012091860136E0821709F45AC0DD -:102E600090E0389FF001399FF00D1124E957FE4F93 -:102E70007181571306C07081471303C072817111AD -:102E800003C001968770E9CFF62E662309F418C1B6 -:102E90008091BC0181608093BC01F12C11C175133C -:102EA00008C0341306C0611104C08091BC01D80170 -:102EB000C3C04D875E878D859E856A8B0E94D6151F -:102EC0006A898823E1F16623D1F12091BC01822F28 -:102ED00082958F7090E0029774F08091B701909185 -:102EE000B80198878F831986DB86CA862C87CE0126 -:102EF00007960E94971586E0F801A7EBB1E00190D4 -:102F00000D928A95E1F70E944E160E944016FF240A -:102F1000F394D6C04D875E878D859E850E940A1BDF -:102F2000292F22952F7030E0223031050CF0BCC0E3 -:102F30009F7009F0B6C0805E883008F4C1C0C80137 -:102F40000E949715E4CFC816D90608F453C0F601BD -:102F5000E81BF90BCF01883C910508F450C0F12C17 -:102F60007C2DD98AC88A89890E940016E7EBF1E096 -:102F700086E0DF011D928A95E9F70E944016A0C005 -:102F8000751314C0341312C0611110C08091BC01BC -:102F9000F8018583C8010E94971586E0E7EBF1E010 -:102FA000DF011D928A95E9F7FE2C8AC04D875E8766 -:102FB0008D859E856A8B0E94D6156A89882309F4BF -:102FC000BECF662309F4BBCF2091BC01822F82952E -:102FD0008F7090E002970CF48ECF8091B7019091A2 -:102FE000B8019A8389831B82DD82CC822E83CE0135 -:102FF00001967FCF809590958C0D9D1DACCFF62EC0 -:10300000662309F49CCF75132EC034132CC0209175 -:10301000BC0120FD1FC0822F82958F70D9F0D8018E -:1030200015962C9315978F3049F08F5F982F9295B6 -:10303000907F822F8F70892B15968C93C8010E94E8 -:10304000971586E0F801A7EBB1E001900D928A9503 -:10305000E1F793CF86E0F801A7EBB1E001900D9284 -:103060008A95E1F72DC04D875E878D859E850E94EC -:10307000D615811140CF8091BC0181608093BC0145 -:10308000C8010E9497151CC0662309F458CF4D87CC -:103090005E878D859E850E94D615882309F44FCFC3 -:1030A0002ACF811148CF0CC0243031050CF047CF16 -:1030B0009F7009F440CFF8019581907F09F03BCFD4 -:1030C0008F2D62960FB6F894DEBF0FBECDBFDF9195 -:1030D000CF911F910F91FF90EF90DF90CF900895C7 -:1030E0001F93CF93DF93CDB7DEB72C970FB6F8942D -:1030F000DEBF0FBECDBF4F83588769877A878B8726 -:103100009C87CE0107960E94A916882369F08F81BB -:1031100098852A853B85232BF1F19F3F09F063C0F9 -:103120008F3F09F060C037C086E0FE013796DE01B0 -:10313000119601900D928A95E1F76F817885EA8565 -:10314000FB85309741F17F3F11F46F3F21F12091D2 -:10315000860130E0C9010196877099274091850169 -:1031600050E08417950709F447C069837A83FD838B -:10317000EC8396E0929FD001939FB00D1124A95744 -:10318000BE4FFE01319601900D929A95E1F7809322 -:1031900086010E941F1616E080918501909186019C -:1031A0008917C1F1189FC001112489579E4F0E94B1 -:1031B000A916882379F1E09185011E9FF001112461 -:1031C000E957FE4F408151816281738184819581ED -:1031D0000E940F168091850190E0019687709927D3 -:1031E00080938501D9CF4F81588569857A858B85F4 -:1031F0009C850E940F16CFCF0E94D2151092860197 -:1032000010928501E7EBF1E086E0DF011D928A95DF -:10321000E9F7C1CF2C960FB6F894DEBF0FBECDBF35 -:10322000DF91CF911F910895EF92FF920F931F931B -:10323000CF93DF938C01009709F46CC0F12CEE243E -:10324000E394E8012196F8018491843740F48430B6 -:1032500008F051C0813081F0823019F15BC08537B0 -:1032600009F444C0A8F19CE7980F903708F052C0C9 -:103270008F770E941D1341C00E5F1F4FFE01C49146 -:1032800080E28C0F883048F4C7708E2D01C0880F03 -:10329000CA95EAF70E94F01B14C08C2F0E945512A9 -:1032A0002DC00E5F1F4FFE01C49180E28C0F88304D -:1032B00058F4C7708E2D01C0880FCA95EAF70E9496 -:1032C000F61B0E94171C1AC08C2F0E941D1316C0DB -:1032D0000E5F1F4FFE01C491CC2381F08FE99FE068 -:1032E0000197F1F700C00000C150F6CF0E5F1F4FED -:1032F000FE01F49003C00E9455128E018F2D882389 -:1033000009F49FCFEFE9FFE03197F1F700C000002B -:103310008150F5CFDF91CF911F910F91FF90EF90EA -:10332000089508956093C1017093C2018093C30111 -:103330009093C4010C94BE150F931F930091C1018B -:103340001091C2012091C3013091C401DC01CB0175 -:10335000802B912BA22BB32B8093C1019093C201A0 -:10336000A093C301B093C4011F910F910C94BE159B -:103370000F931F930091C1011091C2012091C301CD -:103380003091C401DC01CB0180239123A223B3231C -:103390008093C1019093C201A093C301B093C40173 -:1033A0001F910F910C94BE150F931F930091C101B3 -:1033B0001091C2012091C3013091C401DC01CB0105 -:1033C00080279127A227B3278093C1019093C20140 -:1033D000A093C301B093C4011F910F910C94BE152B -:1033E0001092BD011092BE011092BF011092C00157 -:1033F0000C94BE1541E050E060E070E004C0440F62 -:10340000551F661F771F8A95D2F74093BD015093D1 -:10341000BE016093BF017093C0010C94BE1541E0E2 -:1034200050E060E070E004C0440F551F661F771F36 -:103430008A95D2F78091BD019091BE01A091BF0104 -:10344000B091C001482B592B6A2B7B2B4093BD01B7 -:103450005093BE016093BF017093C0010C94BE15E0 -:1034600041E050E060E070E004C0440F551F661F6B -:10347000771F8A95D2F74095509560957095809109 -:10348000BD019091BE01A091BF01B091C001482340 -:1034900059236A237B234093BD015093BE0160935F -:1034A000BF017093C0010C94BE1541E050E060E094 -:1034B00070E004C0440F551F661F771F8A95D2F72E -:1034C0008091BD019091BE01A091BF01B091C0015A -:1034D000482759276A277B274093BD015093BE0197 -:1034E0006093BF017093C0010C94BE150F931F939E -:1034F0000091BD011091BE012091BF013091C0012A -:10350000DC01CB01802B912BA22BB32B8093BD012F -:103510009093BE01A093BF01B093C0011F910F9182 -:103520000C94BE150F931F930091BD011091BE0125 -:103530002091BF013091C001DC01CB018023912398 -:10354000A223B3238093BD019093BE01A093BF013A -:10355000B093C0011F910F910C94BE150F931F9350 -:103560000091BD011091BE012091BF013091C001B9 -:10357000DC01CB0180279127A227B3278093BD01CF -:103580009093BE01A093BF01B093C0011F910F9112 -:103590000C94BE150895CF92DF92EF92FF920F9395 -:1035A0001F93CF93DF938C01C090C101D090C201D3 -:1035B000E090C301F090C4018091BD019091BE01E3 -:1035C000A091BF01B091C001C82AD92AEA2AFB2ADA -:1035D000CFE1D0E0D701C6010C2E04C0B695A79567 -:1035E000979587950A94D2F780FF06C0B8018C2F73 -:1035F0000E949709019721F4219760F780E001C0AC -:103600008C2FDF91CF911F910F91FF90EF90DF9062 -:10361000CF900895CF93DF93EC010E94CB1ABE01A7 -:103620000E949709DF91CF910895CB010E940A1B58 -:1036300008958091C501859585958595089580911A -:10364000C5018770089598E0899F90011124262B69 -:103650002093C5010C940F1A2091C50180958223F7 -:103660008093C501982F977069F430E0482F552753 -:1036700047FD50952417350729F085958595859543 -:103680000C94301A08959091C501977081E009F467 -:1036900080E0089590910C01992321F090910D0103 -:1036A000911109C020910E0130910F01F90132965C -:1036B0009FEF40E01FC0982F9695969596959F3066 -:1036C00050F5E0910E01F0910F01E90FF11D8770A7 -:1036D00021E030E0A90102C0440F551F8A95E2F7AE -:1036E000CA019181892B818308959F3F39F04F5FF3 -:1036F0004E3041F051915813F8CF0DC05111F7CF12 -:10370000942FF5CF9F3F39F0F901E90FF11D97FD97 -:10371000FA9582830895089590910C01992321F0E0 -:1037200090910D01911109C020910E0130910F016E -:10373000F9013296205F3F4F1FC0982F96959695BE -:1037400096959F30F0F4E0910E01F0910F01E90F92 -:10375000F11D877021E030E0A90102C0440F551F20 -:103760008A95E2F7CA018095918189238183089522 -:103770003196E217F30729F090819813F9CF108260 -:10378000F7CF089581E090E0E0910E01F0910F01F4 -:10379000E80FF91F1082019680319105A9F708956D -:1037A0009091D901892B8093D901089580959091AA -:1037B000D90189238093D90108951092D9010895E0 -:1037C0009091D801892B8093D8010895809590918C -:1037D000D80189238093D80108951092D8010895C3 -:1037E0009091D701892B8093D7010895809590916E -:1037F000D70189238093D70108951092D7010895A6 -:103800008093C60108951092C601089580910E011B -:1038100090910F01FC0131969C01205F3F4F80E0A9 -:10382000919191118F5FE217F307D1F70895E0911D -:103830000E01F0910F018091D9018083E0910E017A -:10384000F0910F0190818091D801892B8083E091C4 -:103850000E01F0910F0190818091D701892B808317 -:103860008091C601882361F0E0910E01F0910F0173 -:103870009081892B80830E94061C81111092C601C1 -:1038800080910E0190910F010C94451120E000975A -:1038900039F0AC0141505109842395232F5FF7CFB4 -:1038A000822F08958091F101843021F11092DB0183 -:1038B00020E488E190E00FB6F894A895809360002A -:1038C0000FBE2093600080E00E94320A83B7817FA0 -:1038D000846083BF83B7816083BF7894889583B702 -:1038E0008E7F83BF88E10FB6F894809360001092BA -:1038F00060000FBE0895089508950E947B1C0E94E9 -:10390000A4040E947C1C0E94990591E0811101C0D1 -:1039100090E0892F08950E94D2150E9439110C94CD -:10392000320A82E084BD93E095BD9AEF97BD809303 -:103930006E0008952FB7F8948091DC019091DD011D -:10394000A091DE01B091DF012FBF0895CF92DF92E9 -:10395000EF92FF920F931F932FB7F8944091DC01E1 -:103960005091DD016091DE017091DF012FBF6A018E -:103970007B01EE24FF248C0120E030E0C016D1064C -:10398000E206F30610F4415051099A01281B390B45 -:10399000C9011F910F91FF90EF90DF90CF90089594 -:1039A0001F920F920FB60F9211248F939F93AF9394 -:1039B000BF938091DC019091DD01A091DE01B09177 -:1039C000DF010196A11DB11D8093DC019093DD0103 -:1039D000A093DE01B093DF01BF91AF919F918F91D2 -:1039E0000F900FBE0F901F9018950E94360EF894FE -:1039F0002FEF87EA91E6215080409040E1F700C028 -:103A0000000087E090EBDC018093FB019093FC01C8 -:103A1000A093FD01B093FE019CE088E10FB6F894FD -:103A2000A895809360000FBE90936000FFCFEF9247 -:103A3000FF920F931F93CF93DF93D82FCDE08C2F5E -:103A40000E94920505E010E0E82EF12CC701002E3F -:103A500002C0959587950A94E2F780FF09C0602F10 -:103A60007C2F80E00E944207D81302C081E006C08C -:103A70000150110958F7C15010F780E0DF91CF9144 -:103A80001F910F91FF90EF900895CF93C82F8CE274 -:103A90000E94171D882321F08C2FCF910C94171DA5 -:103AA00080E0CF910895CF930E949A1E811102C0A9 -:103AB0000E94801EC5E6C15049F00E94A4048FE315 -:103AC0009CE90197F1F700C00000F5CF89E20E9460 -:103AD000451D811113C18AE20E94451D81110E947A -:103AE000801E85E00E94451D81110E94F51C0E94E8 -:103AF000A51E8093DA0187E00E94451D8823A9F165 -:103B00008BE10E94451D882351F08091DA0181FBF1 -:103B1000222720F991E0922790FB81F90EC08EE0D8 -:103B20000E94451D882361F08091DA0182FB2227E3 -:103B300020F991E0922790FB82F98093DA0115C079 -:103B400080E10E94451D9091DA01882341F093FBAA -:103B5000222720F981E0822780FB93F904C0892F76 -:103B6000809580FB90F99093DA018091DA010E94B0 -:103B7000A91E0E94B71E8093FA0180EE0E94451D87 -:103B8000882341F08091FA01982F909590FB80F95D -:103B90008093FA0189E30E94451D882359F08091A2 -:103BA000FA0181FB222720F991E0922790FB81F90D -:103BB0008093FA0182EE0E94451D882359F080917E -:103BC000FA0182FB222720F991E0922790FB82F9EB -:103BD0008093FA0186EE0E94451D882359F080915A -:103BE000FA0183FB222720F991E0922790FB83F9C9 -:103BF0008093FA0183EE0E94451D882359F080913D -:103C0000FA0184FB222720F991E0922790FB84F9A6 -:103C10008093FA0185E30E94451D882359F0809125 -:103C2000FA0185FB222720F991E0922790FB85F984 -:103C30008093FA0181E30E94451D882359F0809109 -:103C4000FA0186FB222720F991E0922790FB86F962 -:103C50008093FA0181E10E94451D882359F08091EB -:103C6000FA0187FB222720F991E0922790FB87F940 -:103C70008093FA018091FA010E94BB1E8091FA01A3 -:103C800087FB882780F980930D0187E20E94451DFC -:103C9000C82F8EE10E94451D8111C2608FE10E94F4 -:103CA000451D8111C46080E20E94451D8111C860DC -:103CB00081E20E94451D8111C06182E20E94451D82 -:103CC0008111C06283E20E94451D8111C06484E2BB -:103CD0000E94451D882311F0C06802C0CC2329F042 -:103CE0008C2F0E94B21E6C2F03C00E94AE1E682F44 -:103CF00070E080E090E0CF910C949219CF910895FC -:103D00006DEE7EEF80E090E00E94EC2460E082E0C7 -:103D100090E00E94DA2460E083E090E00E94DA24E0 -:103D200060E084E090E00E94DA2460E085E090E0CA -:103D30000C94DA2480E090E00E94D42421E08D3EAF -:103D40009E4F09F020E0822F089582E090E00C94CD -:103D5000CC24682F82E090E00C94DA2483E090E099 -:103D60000C94CC24682F83E090E00C94DA2484E057 -:103D700090E00C94CC24682F84E090E00C94DA243A -:103D80008091E20180FF0BC06091130185E0689F84 -:103D9000B001112475956795759567952BC081FFC6 -:103DA00009C06091130185E0689FB00111247595E9 -:103DB000679520C082FF07C06091130185E0689F6E -:103DC000B001112417C09091E3019923D1F06091C3 -:103DD0001201961788F72091130185E0289F900122 -:103DE0001124929FA001939F500D112470E0CA01ED -:103DF0000E949E246038710540F46115710539F008 -:103E000002C065E070E0862F08958FE7089581E095 -:103E100008958091E20180FF08C06091110170E077 -:103E2000759567957595679521C081FF06C060916E -:103E3000110170E07595679519C082FF04C060910B -:103E4000110170E010C09091E3019923C1F06091DD -:103E500010019617A0F780911101899FC0011124CC -:103E600070E00E949E246038710528F46115710588 -:103E700021F0862F08958FE7089581E0089561E08D -:103E800070E0F4CF803F21F40E94C01E819504C0F1 -:103E9000813F29F40E94C01E8093E6010895823F6D -:103EA00021F40E94C01E819504C0833F29F40E9422 -:103EB000C01E8093E5010895893F19F40E94091FEF -:103EC00005C08A3F31F40E94091F81958093E70164 -:103ED00008958B3F21F40E94091F819504C08C3FF7 -:103EE00029F40E94091F8093E8010895843F21F47A -:103EF0008091E401816017C0853F21F48091E40145 -:103F0000826011C0863F21F48091E40184600BC07F -:103F1000873F21F48091E401886005C0883F31F437 -:103F20008091E40180618093E40108958D3F21F444 -:103F30008091E20181600BC08E3F21F48091E2010B -:103F4000826005C08F3F29F48091E20184608093F4 -:103F5000E2010895803F39F48091E60187FF6CC04B -:103F60001092E60169C0813F29F48091E60118169C -:103F7000BCF362C09091E501823F29F497FF5CC0D9 -:103F80001092E50159C0833F19F41916CCF354C0BF -:103F9000893F41F48091E70118160CF04DC0109252 -:103FA000E7014AC08A3F29F48091E70187FF44C0B6 -:103FB000F6CF8B3F39F48091E80187FF3DC0109226 -:103FC000E8013AC08C3F29F48091E8011816BCF34F -:103FD00033C0843F21F48091E4018E7F17C0853F78 -:103FE00021F48091E4018D7F11C0863F21F48091FE -:103FF000E4018B7F0BC0873F21F48091E401877F30 -:1040000005C0883F31F48091E4018F7E8093E40104 -:1040100013C08D3F21F48091E2018E7F0BC08E3F53 -:1040200021F48091E2018D7F05C08F3F29F48091BA -:10403000E2018B7F8093E2018091E50181110EC046 -:104040008091E60181110AC08091E701811106C0CB -:104050008091E801811102C01092E301089584EE7D -:1040600091E00E9450110E949A1C9093E10180936C -:10407000E00108951F93CF93DF938091E001909129 -:10408000E1010E94A61CAC019091E301992321F06B -:104090002091140130E006C0209115018AE0289F8C -:1040A000900111244217530708F486C08091E5015E -:1040B000C091E601D091E7011091E801811107C09C -:1040C000C11176C0D11174C0111172C075C09F3F6B -:1040D00019F09F5F9093E301181624F40E94C01E0C -:1040E0008093E5018091E50187FF05C00E94C01E15 -:1040F00081958093E5011C1624F40E94C01E8093D4 -:10410000E6018091E60187FF05C00E94C01E8195EF -:104110008093E6016091E501662339F1C091E601E3 -:10412000CC2319F1772767FD7095872F972F0E9471 -:10413000AF2323E333E343E35FE30E9413240E94AE -:104140007C236093E5016C2F772767FD7095872F9F -:10415000972F0E94AF2323E333E343E35FE30E94FF -:1041600013240E947C236093E6011D1624F40E9410 -:10417000091F8093E7018091E70187FF05C00E9436 -:10418000091F81958093E701111624F40E94091FED -:104190008093E8018091E80187FF05C00E94091F14 -:1041A00081958093E801DF91CF911F910C942F208E -:1041B0009F3F09F08ECF96CFDF91CF911F91089549 -:1041C000E4EEF1E085E0DF011D928A95E9F71092B7 -:1041D000E3011092E2010895833081F128F48130E7 -:1041E00059F08230D1F00895853009F449C0B8F112 -:1041F000863009F456C0089580911501262F30E0CD -:10420000280F311D2F3F310524F4680F60931501ED -:1042100008958FEF80931501089580911401262F42 -:1042200030E0280F311D2F3F310524F4680F6093D3 -:10423000140108958FEF8093140108958091130164 -:10424000262F30E0280F311D2F3F310524F4680F51 -:104250006093130108958FEF809313010895809167 -:104260001201262F30E0280F311D2F3F310524F495 -:10427000680F6093120108958FEF809312010895E3 -:1042800080911101262F30E0280F311D2F3F31057D -:1042900024F4680F6093110108958FEF809311014A -:1042A000089580911001262F30E0280F311D2F3FF7 -:1042B000310524F4680F6093100108958FEF809307 -:1042C00010010895833011F128F4813049F08230D3 -:1042D00091F00895853081F120F18630C1F1089583 -:1042E00080911501681720F4861B809315010895AD -:1042F00010921501089580911401681720F4861B0F -:10430000809314010895109214010895809113016F -:10431000681720F4861B80931301089510921301EF -:10432000089580911201681720F4861B8093120172 -:10433000089510921201089580911101681720F4D8 -:10434000861B8093110108951092110108958091A8 -:104350001001681720F4861B8093100108951092B5 -:10436000100108950F931F938D3109F46BC008F06D -:104370003FC08E3009F47FC0C0F4873009F469C0B3 -:1043800068F4863009F0B1C08091DA01817F8E7FB8 -:104390008093DA0181E08093EA01A8C0883009F4B3 -:1043A000A2C08B3009F49FC0A0C0863109F49BC025 -:1043B00078F4803109F472C0813109F096C00E940E -:1043C000D21590910D0181E0892780930D018BC05A -:1043D000893109F488C08B3109F087C08091DA01F6 -:1043E00081FB222720F991E0922790FB81F94CC0B4 -:1043F000853309F470C048F4873209F46CC008F4BE -:1044000059C0893209F467C070C0833438F48A33E4 -:1044100008F04EC0883309F466C067C0833409F4DD -:104420005AC0883409F061C00E94D2150FEF13ED15 -:1044300020E3015010402040E1F700C000000E943E -:10444000F51C51C00E9436230E9439110E94320A85 -:104450004AC09091DA01892F8095817080FB90F994 -:1044600029F0966098609093DA0140C0997F977F19 -:104470009093DA0138C08091DA0182FB222720F97B -:1044800091E0922790FB82F98093DA01992359F108 -:104490008091DA0181608093DA0125C08091DA0190 -:1044A00083FB222720F991E0922790FB83F9ECCF40 -:1044B000895301C08D5141E050E060E070E08A0115 -:1044C0009B0104C0000F111F221F331F8A95D2F7D2 -:1044D000C901B80104C061E070E080E090E00E9492 -:1044E00092190E94D21581E001C080E01F910F91C6 -:1044F000089580E0089580E00895CF93C82F8091BB -:10450000EA01813079F018F08230E9F187C0E0915A -:104510000E01F0910F018081813169F0823209F042 -:104520007FC009C0E0910E01F0910F0180818131BF -:1045300011F0823261F48C2F0E947922811104C023 -:104540008C2F0E94B2211DC081E090E01AC08C2FF8 -:104550000E947B22811114C0C43179F048F4CB3021 -:1045600079F0C03109F060C082E08093EA0108C0B0 -:10457000C93219F0C83321F057C01092EA0154C073 -:1045800081E0817053C0C93289F118F5C43171F1ED -:10459000A8F4C73009F046C08AE08093150194E181 -:1045A0009093140193E0909313018093120188E09B -:1045B0008093110188E28093100134C0CE51C6303F -:1045C00088F5EC2FF0E0E65DFE4F80818093E901F5 -:1045D00029C0CE34E9F020F4CB3421F56AE013C0D1 -:1045E000C13579F0C235F1F461E00DC08091E90187 -:1045F000882319F01092E90115C081E08093EA0147 -:1046000015C061E006C08091E9010E94EC200AC05B -:104610006AE08091E9010E94622104C01092EA01DF -:1046200080E004C081E002C080E0ABCFCF9108956C -:10463000E1E8F0E080818860808380818160808310 -:104640008FB7F89493E09093890090ED9093880051 -:104650008FBF0895EFE6F0E0808182608083089547 -:10466000EFE6F0E080818D7F80830895EFE6F0E053 -:10467000908182E08927808308951F920F920FB660 -:104680000F9211242F933F934F935F936F937F93D8 -:104690008F939F93AF93BF93EF93FF938091EB0121 -:1046A0009091EC0101969093EC018093EB018111C4 -:1046B00003C082E00E94320AE091EC01E695E695A3 -:1046C000F0E0EB59F84FE4918091EB018E1303C0B9 -:1046D00080E00E94320AFF91EF91BF91AF919F91CC -:1046E0008F917F916F915F914F913F912F910F909B -:1046F0000FBE0F901F90189504D06894B1118DC013 -:10470000089570D088F09F5790F0B92F9927B7512E -:10471000A0F0D1F0660F771F881F991F1AF0BA9585 -:10472000C9F712C0B13081F077D0B1E0089574C0FC -:10473000672F782F8827B85F39F0B93FCCF386957B -:1047400077956795B395D9F73EF4909580957095D8 -:1047500061957F4F8F4F9F4F0895E89409C097FB55 -:104760003EF490958095709561957F4F8F4F9F4F48 -:104770009923A9F0F92F96E9BB279395F69587958C -:1047800077956795B795F111F8CFFAF4BB0F11F44F -:1047900060FF1BC06F5F7F4F8F4F9F4F16C08823F6 -:1047A00011F096E911C0772321F09EE8872F762F2C -:1047B00005C0662371F096E8862F70E060E02AF06D -:1047C0009A95660F771F881FDAF7880F9695879559 -:1047D00097F9089557FD9058440F551F59F05F3FC2 -:1047E00071F04795880F97FB991F61F09F3F79F013 -:1047F00087950895121613061406551FF2CF469595 -:10480000F1DF08C0161617061806991FF1CF869516 -:104810007105610508940895E894BB2766277727FA -:10482000CB0197F908950BD078C069D028F06ED0ED -:1048300018F0952309F05AC05FC01124EECFCADFEB -:10484000A0F3959FD1F3950F50E0551F629FF001A3 -:10485000729FBB27F00DB11D639FAA27F00DB11DFC -:10486000AA1F649F6627B00DA11D661F829F222785 -:10487000B00DA11D621F739FB00DA11D621F839F0C -:10488000A00D611D221F749F3327A00D611D231FE2 -:10489000849F600D211D822F762F6A2F11249F5730 -:1048A00050408AF0E1F088234AF0EE0FFF1FBB1F53 -:1048B000661F771F881F91505040A9F79E3F5105F2 -:1048C00070F014C0AACF5F3FECF3983EDCF38695FE -:1048D00077956795B795F795E7959F5FC1F7FE2B9D -:1048E000880F911D9695879597F9089597F99F6779 -:1048F00080E870E060E008959FEF80EC0895002468 -:104900000A941616170618060906089500240A9434 -:1049100012161306140605060895092E0394000CBA -:1049200011F4882352F0BB0F40F4BF2B11F460FF49 -:1049300004C06F5F7F4F8F4F9F4F089597FB072EE7 -:1049400016F4009407D077FD09D00E94B82407FC24 -:1049500005D03EF4909581959F4F0895709561958F -:104960007F4F0895EE0FFF1F0590F491E02D0994FD -:10497000AA1BBB1B51E107C0AA1FBB1FA617B70785 -:1049800010F0A61BB70B881F991F5A95A9F78095A1 -:104990009095BC01CD010895F999FECF92BD81BDDE -:1049A000F89A992780B50895A8E1B0E042E050E078 -:1049B0000C94F424262FF999FECF92BD81BDF89A6C -:1049C000019700B4021639F01FBA20BD0FB6F89453 -:1049D000FA9AF99A0FBE08950196272F0E94DB24B8 -:1049E0000C94DA24DC01CB01FC01F999FECF06C05E -:1049F000F2BDE1BDF89A319600B40D92415050409D -:084A0000B8F70895F894FFCF08 -:104A08000220340AC20A9F0A6B0A370A0101C70149 -:104A180028080A03140A404D36392507D806A20685 -:104A28006906FC0515062E0647060102030405065D -:044A38000708090062 -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/bepo/readme.md b/keyboards/ergodox_ez/keymaps/bepo/readme.md new file mode 100644 index 000000000..4a18cd80f --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/bepo/readme.md @@ -0,0 +1,34 @@ +# BEPO keymap for the ErgoDox + +This keymap has been made for the BEPO layout (http://bepo.fr), which is an ergonomic french keyboard layout based on Dvorak rules. As it's made for french people, the following of this readme will be in french. + +# Disposition BÉPO pour l'ErgoDox + +Cette keymap a été pensée pour la disposition BÉPO (http://bepo.fr), qui est une disposition de clavier francophone, ergonomique et libre, élaborée selon la méthode Dvorak. L'adaptation de cette disposition à l'ErgoDox a été réalisée en conservant les points forts du clavier TypeMatrix 2030 (très répandu dans la communauté bépo, avec un excellent rapport ergonomie / prix) voir en réglant certains de ses défauts (3 colonnes pour l'auriculaire droit et touche "Ê") et en apportant son lot de nouveautés (compatibilité avec les systèmes azerty et qwerty). + +Particularités +-------------- + +Touches de repos des pouces : "espace" à gauche et "entrée" à droite. + +Placement des touches de combinaison ("Shift", "Alt", "Ctrl"...) adapté aux pouces, et permettant de conserver chaque doigt pour les rangées de lettres auxquelles ils sont assignés sans avoir à changer la touche de combinaison de côté (exemple : "A" majuscule puis "M" majuscule avec les auriculaires et un seul appui d'une touche "Shift"). + +Les touches "Alt" et "Alt Gr" sont accessibles avec les pouces sur la rangée du bas comme sur la TypeMatrix 2030, avec une symétrie gauche / droite. + +Les touches "Ctrl" sont placées sur la même ligne que les touche "Alt" et "Alt Gr" comme sur un clavier clasique, elles sont accessibles aux pouces sur la rangée du bas (moins éloigné que le groupe de touches de pouces pour des petites mains). + +Les touches "Backspace" et "Delete" sont placées comme sur la TypeMatrix 2030, du côté gauche uniquement (pour laisser celles de la main droite servir de {caps,num,scroll}lock puisqu'elles ont des LED). + +La touche "Tab" est placée comme sur la TypeMatrix 2020. + +Meilleure symétrie et accessibilité que la TypeMatrix 2030 : les touches "W" et "%" ont dû être déplacées du côté gauche en raison du nombre de touches de l'ErgoDox, mais l'auriculaire droit ne gère maintenant que deux colonnes de touches au lieu de trois. La touche "Ê" redevient accessible sur la même rangée que les autres lettres, comme sur un clavier classique en disposition bépo. Les lettres, chiffres et symboles sont tous regroupés sur 4 lignes et 6 colonnes pour chaque main, et la première rangée de lettres à la main gauche conserve une identité visuelle "BÉPO". + +Touche de fonction permettant de saisir les touches F1 à F12, les touches F1 à F10 sont placées de façon logique par rapport aux chiffres 1 à 0. Cette même touche permet l'accès aux touches directionnelles sans déplacer la main droite. Les touches "Home" et "End" sont placées de la même façon que sur une TypeMatrix 2030 par rapport aux touches directionnelles. Les touches "Page Up" et "Page Down" sont également accessibles facilement sans déplacer la main droite. Les fonctions "VolUp" et "VolDown" sont placées comme sur la TypeMatrix 2030, avec la fonction "Mute" juste au dessus. Les fonctions "Undo", "Cut", "Copy" et "Paste" sont placées côte à côte comme elles le seraient sur un clavier QWERTY en combinaison avec la touche "Ctrl" (à l'emplacement des lettres "Z", "X", "C" et "V"). Par rapport au layout "SpaceFN", l'utilisation d'une touche de fonction dédiée au pouce permet de ne pas ajouter de latence, et la touche espace reste compatible avec les jeux (action au moment de l'appui et possibilité d'appui long). + +Touche de fonction permettant l'accès au pavé numérique comme sur la TypeMatrix 2030, mais sans avoir à déplacer la main droite : avec les doigts sur la rangée de repos, possibilité de saisir les chiffres "4", "5" et "6" comme sur un pavé numérique classique. Le double "0" de la TypeMatrix a été conservé, et gagne une possibilité de répétition en simples "0". + +L'appui sur une touche permet de basculer en mode BEPO sur un système configuré pour un clavier QWERTY. Cette compatibilité n'est pas parfaite (pas encore de gestion des accents mais ça devrait être faisable avec une disposition en qwerty international, et les combinaisons de touches ne sont pas toutes supportées puisque le clavier traduit déjà certaines touches en combinaisons) mais reste pratique pour une saisie de texte occasionnelle. + +TODO : couche de compatibilité pour utiliser la disposition BÉPO sur un système configuré pour un clavier AZERTY. + +> Olivier Smedts diff --git a/keyboards/ergodox_ez/keymaps/coderkun_neo2/compiled.hex b/keyboards/ergodox_ez/keymaps/coderkun_neo2/compiled.hex deleted file mode 100644 index 5aa02ca4b..000000000 --- a/keyboards/ergodox_ez/keymaps/coderkun_neo2/compiled.hex +++ /dev/null @@ -1,1195 +0,0 @@ -:100000000C9425030C9469030C9469030C94690304 -:100010000C9469030C9469030C9469030C946903B0 -:100020000C9469030C9469030C94890E0C945B0F77 -:100030000C9469030C9469030C9469030C94690390 -:100040000C9469030C9465230C9469030C94690364 -:100050000C9469030C94F81C0C9469030C946903C8 -:100060000C9469030C9469030C9469030C94690360 -:100070000C9469030C9469030C9469030C94690350 -:100080000C9469030C9469030C9469030C94690340 -:100090000C9469030C9469030C9469030C94690330 -:1000A0000C9469030C9469030C946903C80FEA0F5C -:1000B000D810EA0FD8102F105210D810A710BA106D -:1000C00089138913B813B813EE130E143F153F1597 -:1000D00019143F15C914C91430153F153F153915AA -:1000E000D614D614D614D614D614D614D614D614C0 -:1000F000D614D614D614D614D614D614D614D614B0 -:10010000E814F514FC1403150D1500F001F002F0CD -:10011000F0A3F0A42B0034003900E100E00000005F -:100120001E00140004001D00E200007F1F001A00E2 -:1001300016001B00035228002000080007000600DC -:10014000E3002C00210015000900190064002D00B7 -:10015000220017000A000500000050002E004A008F -:1001600000000154000052002E004D000000025417 -:100170000000510023001C000B00110000004F0084 -:10018000240018000D001000E6002D0025000C00D2 -:100190000E003600E7002C00260012000F0037008A -:1001A000035228002700130033003800E6000077D0 -:1001B0002A002F003100E500E40000002B000600BB -:1001C0003900E100E00000001E00130007003400C9 -:1001D000E200007F1F0017000B00140003522800EC -:1001E0002000090033001500E3002C0021000E0060 -:1001F00012001A0004522D0022000F000C00110002 -:10020000000050002E004A000000010000005200D3 -:100210002E004D00000001000000510023000500E9 -:1002200018000D0000004F002400040038001000EA -:1002300004522D00250016001C003600E7002C009B -:1002400026000A0008003700035228002700190082 -:100250001B002D00E60000772A001D003100E5009C -:10026000E40000002B001D000000E100E0000000A1 -:100270001E001B0018002F00E200007F1F00190065 -:100280000C0033000352280020000F00040034004B -:10029000E3002C00210006000800130004522D008A -:1002A00022001A0012001C00000050002E004A001C -:1002B00000000100000052002E004D00000001006F -:1002C0000000510023000E001600050000004F0042 -:1002D00024000B001100100004522D0025000A001C -:1002E00015003600E7002C00260009001700370033 -:1002F000035228002700140007000D00E6000077D5 -:100300002A002D000000E500E400000001000100CB -:1003100001000100010000000100010001000100D6 -:1003200001000100010001000100010001000100C5 -:10033000010001000100010001000100010013A7FC -:1003400015A701000100F4000100010001000100F7 -:100350000000F20001000100000001000000F000B8 -:1003600001000100000001000000F1000100010097 -:10037000010001000000F300010042003E003A00CD -:100380000100F500010043003F003B0001000100B7 -:100390000100440040003C00010001000100450054 -:1003A00041003D00010001000100010001000100C9 -:1003B000010000000000000000000000000000003C -:1003C00000004B004A0029000000000000002A0045 -:1003D00050002B00010000000000520051004900B5 -:1003E0000000000000004C004F0028000100000049 -:1003F00000004E004D007A000000000000000000E8 -:1004000000000100000000000000000000000100EA -:1004100000000000000000000000000000000000DC -:100420000000240021001E00010000000000250043 -:1004300022001F0000000000000026002300200012 -:100440000100000000003000360000000000000045 -:1004500000003800370000000000000016034500CF -:10046000720067006F0044006F00780020004500B4 -:100470005A00000016034500720067006F00440038 -:100480006F007800200045005A00000004030904B2 -:1004900009026D00040100A0FA0904000001030133 -:1004A0000100092111010001223F00070581030815 -:1004B000000A0904010001030102000921110100E1 -:1004C00001224D000705820308000A090402000109 -:1004D00003000000092111010001223600070583F5 -:1004E0000308000A090403000103000000092111A8 -:1004F00001000122390007058403100001120110D8 -:100500000100000008EDFE071301000102000105D3 -:10051000010906A101050719E029E7150025019544 -:1005200008750181020508190129059505750191D4 -:10053000029501750391010507190029771500251A -:1005400001957875018102C005010980A10185022C -:1005500016010026B7001A01002AB7007510950190 -:100560008100C0050C0901A1018503160100269C2C -:10057000021A01002A9C02751095018100C0050134 -:100580000902A1010901A1000509190129051500A8 -:10059000250195057501810295017503810105010C -:1005A000093009311581257F9502750881060938C2 -:1005B0001581257F950175088106050C0A380215FD -:1005C00081257F950175088106C0C005010906A136 -:1005D00001050719E029E715002501950875018136 -:1005E0000295017508810105081901290595057510 -:1005F0000191029501750391010507190029FF1565 -:100600000025FF950675088100C00000000000006D -:100610000000000000010204060A0F17202C3A4ACD -:100620005D71879DB3C7DAE9F5FCFFFCF5E9DAC730 -:10063000B39D87715D4A3A2C20170F0A0604020108 -:100640000000000000000000000011241FBECFEFDA -:10065000DAE0DEBFCDBF04B603FE24C08091FC010A -:100660009091FD01A091FE01B091FF018730904B68 -:10067000A740B04BB9F41092FC011092FD0110920A -:10068000FE011092FF0114BE84B7877F84BF88E10A -:100690000FB6F89480936000109260000FBEE0E007 -:1006A000FFE3099511E0A0E0B1E0E8E5FAE402C05B -:1006B00005900D92A433B107D9F711E0A4E3B1E09E -:1006C00001C01D92AC3FB107E1F70E94CD0B0C9425 -:1006D0002A250C9400001092B9008AE08093B8009B -:1006E000089594EA9093BC009091BC0097FFFCCFD2 -:1006F0009091B900987F983021F0903111F081E00D -:1007000008958093BB0084E88093BC008091BC0076 -:1007100087FFFCCF8091B900887F883111F0803449 -:1007200071F780E0089584E98093BC008091BC005B -:1007300084FDFCCF08958093BB0084E88093BC00C7 -:100740008091BC0087FFFCCF9091B900987F81E039 -:10075000983209F480E0089584E88093BC00809189 -:10076000BC0087FFFCCF8091BB0008958091010100 -:10077000811115C080E40E947103809301018111F1 -:100780000CC082E10E949B0380930101811105C08E -:100790008FEF0E949B03809301010E94930384B119 -:1007A000807F84B985B1807F85B98AB1837F8AB91A -:1007B0008BB1837F8BB93E98469808950E9471054E -:1007C000809301010E94B60380B38C7080BB81B31B -:1007D000836F81BBA5E3B1E0E3E4F1E08EE08E0F2F -:1007E00011921D928E13FCCF0C945B05BF92CF9299 -:1007F000DF92EF92FF920F931F93CF93DF9380913D -:100800000101882379F0809134018F5F8093340156 -:10081000811108C00E94710580930101811102C0FD -:100820000E94030505E311E0C0E0D0E0DD24D3948D -:1008300082E0C82EEE24E394F12CC730D10500F5F8 -:1008400080910101811164C080E40E947103809352 -:100850000101811112C082E10E949B03809301017A -:1008600081110BC0C7010C2E01C0880F0A94EAF752 -:1008700080950E949B03809301010E94930348C0CE -:10088000CA30A1F028F4C83059F0C93061F005C071 -:10089000CC3089F070F0CD3089F0209A289810C0C3 -:1008A000219A29980DC0229A2A980AC0239A2B9837 -:1008B00007C0529A01C0539A5B9802C03E9A46986C -:1008C00090EA9A95F1F79FB1799902C082E001C050 -:1008D00080E091709D25982B7C9902C084E001C036 -:1008E00080E0892B7D9902C038E001C030E0832B85 -:1008F0007E9902C020E101C020E0822B9FB190953B -:10090000991F9927991F9295990F907E892B0FC057 -:1009100080910101811149C080E40E94710380939C -:100920000101882379F1B12C0E9493038B2DF801EA -:100930009081981719F08083C09200010E94B6033D -:1009400021960F5F1F4FCE30D10509F076CF8091F1 -:100950000001882361F1815080930001882339F0E0 -:100960008FE99FE00197F1F700C0000020C0A3E4E9 -:10097000B1E0E5E3F1E0CF01825F91919D938E13A9 -:10098000FCCF15C083E10E949B038093010181117C -:10099000CACF81E40E947103809301018111C3CF0A -:1009A0000E94AC03B82EB094BFCF80E0C0CF0E94AD -:1009B000010581E0DF91CF911F910F91FF90EF90A2 -:1009C000DF90CF90BF900895E82FF0E0ED5BFE4FF1 -:1009D0008081089508950F931F93CF93DF93C3E40D -:1009E000D1E010E00C2F025F899190E00E941E1C64 -:1009F000180F0C13F9CF812FDF91CF911F910F9119 -:100A000008950C94D10556985E9825982D982698AF -:100A10002E9827982F988FEF90E0909389008093DD -:100A2000880090938B0080938A0090938D00809330 -:100A30008C00259A2D9A2FEF80E792E0215080407C -:100A40009040E1F700C00000269A2E9A2FEF80E731 -:100A500092E0215080409040E1F700C00000279ACA -:100A60002F9A2FEF80E792E0215080409040E1F7ED -:100A700000C0000025982D982FEF80E792E02150CC -:100A800080409040E1F700C0000026982E982FEF9C -:100A900080E792E0215080409040E1F700C00000E4 -:100AA00027982F9856985E9825982D9826982E98D6 -:100AB00027982F98089589EA8093800089E0809391 -:100AC000810024982C983F988AB18F748AB96E98C7 -:100AD000479A8BB1806B8BB9769A0E9403050C9470 -:100AE000D00580E2809301018091510181110EC0F7 -:100AF0000E946B0381E0809351012FEF83ED90E31F -:100B0000215080409040E1F700C0000080E40E9446 -:100B100071038093010181112EC00E949B03809379 -:100B20000101811128C00E949B0380930101811162 -:100B300022C08FE30E949B038093010181111BC09F -:100B40000E94930380E40E9471038093010181114C -:100B500012C08CE00E949B038093010181110BC0A5 -:100B60000E949B0380930101811105C08FE30E94C5 -:100B70009B03809301010E949303809101010895DA -:100B800061110BC0FC018281882321F085EE0E9457 -:100B90002D1203C085EE0E94F51280E090E00895CA -:100BA00008956091BE017091BF018091C001909144 -:100BB000C1010E942A1C56985E9825982D98269867 -:100BC0002E9827982F98823051F0833029F0813069 -:100BD00049F4269A2E9A0895259A2D9A0895279ACF -:100BE0002F9A089556985E98089581E0089581E0BF -:100BF00008950C94F7050895282F882339F090E084 -:100C00002A3010F44D9608950697089587E290E0F3 -:100C10000895AF92BF92DF92EF92FF920F931F93CE -:100C2000CF93DF938C01FC01C081D181CE010E9462 -:100C3000A31ABE010E941A07EC01B8010E94F9052F -:100C4000882309F4EBC0F8018281882309F4A0C04D -:100C500080915E0181111FC0C431F0E5DF0709F00A -:100C6000D7C00E94FB0581E080935E010E94C21CF8 -:100C700090935D0180935C01109255011092570191 -:100C800010925601109259011092580110925B0176 -:100C900010925A01C3C080915C0190915D010E9445 -:100CA000CE1C883C910570F480915501E82FF0E04E -:100CB000EE0FFF1FEA5AFE4FD183C0838F5F8093F0 -:100CC0005501ACC0C13080E8D80708F451C0F80124 -:100CD0008281882309F460C05E01E894B7F88091AE -:100CE0005401813079F050F08230C1F482EE0E94DC -:100CF0002D1287E50E942D1287E50EC082EE0E941C -:100D00002D120CC080EE0E942D1281EE0E942D1239 -:100D100088E10E942D1288E10E94F5128CE0E82EF5 -:100D2000F12CC5010E2C02C0969587950A94E2F726 -:100D30008F700E94FC05D82E0E942D128D2D0E94CE -:100D4000F512F4E0EF1AF1088CEFE8168FEFF806D1 -:100D500041F780915401813029F010F0823041F444 -:100D600082EE04C080EE0E94F51281EE0E94F51220 -:100D7000C438E0E5DE0721F0C538D04501F137C0C1 -:100D8000F8018281882361F01092520182E01EC036 -:100D9000C130F0E8DF0760F3C43880E5D80761F4BC -:100DA00080915201811106C086E20E942D1286E2D6 -:100DB0000E94F51282E018C0C538D045C1F4F80190 -:100DC0008281882331F01092530180E20E94441303 -:100DD00025C080915301811106C087E20E942D1227 -:100DE00087E20E94F51280E20E944B1317C081E057 -:100DF0008093520180935301C801DF91CF911F91DD -:100E00000F91FF90EF90DF90BF90AF900C94F5059D -:100E1000C130F0E8DF0708F05FCFAACF80E0DF91B4 -:100E2000CF911F910F91FF90EF90DF90BF90AF9007 -:100E30000895089596E0799FF001112494E5899F23 -:100E4000E00DF11D1124E60FF11DEE0FFF1FEC5E0A -:100E5000FE4F859194910895880F991FFC01E657E4 -:100E6000F040859194910895880F991FFC01E65FE9 -:100E7000FE4F8591949108950F931F93CF93DF9325 -:100E8000EC01811520E3920750F5C11580E2D807E7 -:100E900008F0C3C0CB3BD10590F4C83AD10508F0A7 -:100EA0006AC0C53AD10508F05BC0C430D10508F06E -:100EB000D0C1219709F0CAC101E010E00AC2CF3FBA -:100EC000D10511F008F0C5C1C03FD10508F0A2C09E -:100ED000CE01805E9109089708F4BBC1B7C1C1304B -:100EE00090E5D90709F4A2C020F5C0318FE4D807F6 -:100EF00070F4C11590E4D90708F094C0C11521E33E -:100F0000D20708F0A3C1DD278E01106CE2C1C11524 -:100F1000D04509F09BC10E94AA158FEF94E32CE005 -:100F2000815090402040E1F700C000000E941D1D4C -:100F3000D0C1C11597E5D90758F4C03121E5D207D2 -:100F400008F01CC1C43180E5D80708F475C07EC123 -:100F5000CE0190578115904108F078C1DF7073C1C0 -:100F6000C53AD10509F477C1C63AD10509F076C171 -:100F700002E810E4AEC1C83AD10509F472C1C93A19 -:100F8000D10509F471C1CA3AD10509F470C1CB3A4F -:100F9000D10509F46FC1CC3AD10509F46EC1CD3A3F -:100FA000D10509F46DC1C03BD10509F46CC1CE3A3D -:100FB000D10509F46BC1CF3AD10509F46AC1C13B2F -:100FC000D10509F469C1C23BD10509F468C1C33B2D -:100FD000D10509F467C1C43BD10509F466C1C53B1D -:100FE000D10509F465C1C63BD10509F464C1C73B0D -:100FF000D10509F463C1C83BD10509F462C1C93BFD -:10100000D10509F461C1CA3BD10509F460C100E012 -:1010100014E45FC18E0110655CC1CE019F700E9417 -:10102000340758C1DF708E01106A53C18091DB0113 -:1010300081608093DB014DC10E94C21E811102C0FC -:101040000E94A81E0E94DF1E90E09093FC018093F6 -:10105000FB01C23080E5D80721F48091FB0181605B -:1010600086C0C43090E5D90721F48091FB018260ED -:101070007EC0C63020E5D20721F48091FB01846058 -:1010800076C0C83080E5D80719F48091FB0127C0ED -:10109000CA3090E5D90721F48091FB01806167C0D7 -:1010A000CC3020E5D20721F48091FB0180625FC043 -:1010B000CE3080E5D80721F48091FB01806457C0D1 -:1010C000C03190E5D90721F48091FB0180684FC0C1 -:1010D000C23120E5D20729F48091FB018460886049 -:1010E00046C0C33080E5D80721F48091FB018E7F94 -:1010F0003EC0C53090E5D90721F48091FB018D7F7A -:1011000036C0C73020E5D20721F48091FB018B7FE8 -:101110002EC0C93080E5D80719F48091FB0126C0A4 -:10112000CB3090E5D90721F48091FB018F7E1FC061 -:10113000CD3020E5D20721F48091FB018F7D17C0CF -:10114000CF3080E5D80721F48091FB018F7B0FC061 -:10115000C13190E5D90721F48091FB018F7707C059 -:10116000C331D04531F48091FB018B7F877F809321 -:10117000FB018091FB010E94E31EABC08D2F9927DC -:101180008F70992781309105D9F49E012370332700 -:1011900002C0880F991F2A95E2F79C688E0144E0EF -:1011A000000F111F4A95E1F700271370802B912B38 -:1011B00053E0CC0FDD1F5A95E1F7C076DD272FC035 -:1011C0008230910531F4DC2FCC278E01016F106A3B -:1011D00080C08330910569F4CE018370992701E0C6 -:1011E00010E002C0000F111F8A95E2F7C8019C6849 -:1011F0000FC084309105B9F4CE018370992701E0C6 -:1012000010E002C0000F111F8A95E2F7C8019A682A -:1012100023E0CC0FDD1F2A95E1F7C07ED7708C014B -:101220000C2B1D2B56C08530910531F4DC2FCC27BB -:101230008E01046F106A4DC0069709F04AC0CF7145 -:10124000DD27DC2FCC278E01106243C000E010E0C8 -:1012500040C08E013EC001E810E43BC003E810E44A -:1012600038C002EE14E435C009EE14E432C00AEED0 -:1012700014E42FC005EB14E42CC006EB14E429C0E1 -:1012800007EB14E426C00CEC14E423C00DEC14E4CA -:1012900020C003E815E41DC00AE815E41AC002E9FD -:1012A00015E417C004E915E414C001E216E411C006 -:1012B00003E216E40EC004E216E40BC005E216E4F5 -:1012C00008C006E216E405C007E216E402C00AE21E -:1012D00016E4C801DF91CF911F910F91089596E018 -:1012E000799FF001112494E5899FE00DF11D1124EF -:1012F000E60FF11DEE0FFF1FEC5EFE4F85919491FE -:10130000803E9105E0F4803C910558F581339105CC -:1013100009F46FC048F48932910509F463C08A3238 -:10132000910509F46DC072C089339105E9F08238E6 -:101330009105D1F08533910509F44DC067C0833E16 -:10134000910581F138F4803E9105B9F0823E910516 -:10135000D9F05CC0863E910561F1873E9105A1F10F -:1013600055C00E942C0708952091FB0120FD02C06A -:1013700021FF4CC080EE90E049C08091FB0180FFCE -:10138000F9CF89E390E042C08091FB0182FF0EC05B -:101390008091FB0184FF03C080E090E037C083EEC2 -:1013A00090E034C08091FB0182FFF2CF82EE90E0AA -:1013B0002DC08091FB0183FF0BC08091FB0184FD58 -:1013C000EBCF87EE90E022C08091FB0183FFF5CF49 -:1013D00086EE90E01BC08091FB0185FF07C089E28B -:1013E00090E014C08091FB0185FFF9CF85E390E088 -:1013F0000DC08091FB0186FF07C08AE290E006C025 -:101400008091FB0186FFF9CF81E390E00E943C07C9 -:10141000089508950C94090A80916F010895CF935F -:10142000DF9300D01F92CDB7DEB79C018091F2010F -:10143000843019F593E099833B832A839093E900E4 -:101440008FEF9091E800815095FD06C095ED9A953B -:10145000F1F700008111F5CF8091E80085FF0DC004 -:1014600040E050E063E070E0CE0101960E94790C0C -:101470008091E8008E778093E8000F900F900F9096 -:10148000DF91CF910895CF93DF9300D01F92CDB716 -:10149000DEB72091F201243021F522E029839B83DD -:1014A0008A8383E08093E9008FEF9091E800815078 -:1014B00095FD06C095ED9A95F1F700008111F5CFE5 -:1014C0008091E80085FF0DC040E050E063E070E0EF -:1014D000CE0101960E94790C8091E8008E7780936E -:1014E000E8000F900F900F90DF91CF910895209119 -:1014F000F2012430F1F422E02093E9002FEF309143 -:10150000E800215035FD06C035ED3A95F1F70000B1 -:101510002111F5CF2091E80025FF0BC040E050E0FD -:1015200065E070E00E94790C8091E8008E778093EE -:10153000E8000895CF93DF93EC019091F20194308D -:1015400009F046C080910C018823D9F080910D01EB -:101550008823B9F09093E9008FEF9091E8008150D3 -:1015600095FD06C095E19A95F1F700008111F5CF40 -:101570008091E80085FF2CC040E050E060E170E021 -:1015800017C081E08093E9008FEF9091E8008150CF -:1015900095FD06C095ED9A95F1F700008111F5CF04 -:1015A0008091E80085FF14C040E050E068E070E002 -:1015B000CE010E94790C8091E8008E778093E8003C -:1015C00080E1FE01AFE5B1E001900D928A95E1F76F -:1015D000DF91CF9108958091F101811109C00E949E -:1015E0000E0E0E946B0E8091E20084608093E200F8 -:1015F00008951092F101089508950C9452230E94C9 -:10160000B31C0E9458230E9411110C940A0A42E054 -:1016100061EC81E00E94880D42E061EC82E00E9472 -:10162000880D42E061EC83E00E94880D42E161ECAC -:1016300084E00C94880D8091F401833009F455C046 -:1016400030F4813071F0823009F48EC008958A3010 -:1016500009F47AC08B3009F460C0893009F09CC06D -:1016600020C08091F301813A09F096C08091E80092 -:10167000877F8093E8008091F7019091F801892B92 -:1016800021F460E18FE591E003C060E080E090E04C -:1016900070E00E94C40C8091E8008B778093E80092 -:1016A00008958091F301813209F076C08091F701AD -:1016B0009091F801009719F0039709F06DC080919F -:1016C000E800877F8093E8008091E80082FD05C0F4 -:1016D0008091F2018111F8CF5FC08091F100809379 -:1016E0006F018091E8008B7753C08091F301813ABC -:1016F00009F052C08091F7019091F801892B09F00F -:101700004BC08091E800877F8093E8008091E800DB -:1017100080FFFCCF80910C0136C08091F3018132B3 -:10172000D9F58091F7019091F801892BA9F5809165 -:10173000E800877F8093E8000E94BD0D8091F5014D -:1017400080930C010C94AA158091F301813221F54C -:101750008091E800877F8093E8000E94BD0D809112 -:10176000F6018093700108958091F301813AA1F40C -:101770008091E800877F8093E8008091E80080FFF7 -:10178000FCCF809170018093F1008091E8008E770A -:101790008093E8000C94BD0D089584B7877F84BFC3 -:1017A00088E10FB6F89480936000109260000FBE3D -:1017B00090E080E80FB6F894809361009093610008 -:1017C0000FBE0E9460110E940E0E0E946B0E80914F -:1017D000E20084608093E20078940E94F1100E94FD -:1017E000621182E091E00E940C110E9440238091DE -:1017F000F201853069F40E947A1C8091F0018823FF -:10180000B1F30E94A51C882391F30E94630CEFCFD3 -:101810000E946811ECCF292F332723303105C9F0FE -:1018200064F42130310581F02230310509F043C0E4 -:101830008DE690E020E934E042C021323105F1F03C -:101840002232310541F137C082E190E02DEF34E0E2 -:1018500036C099278130910541F08230910541F0E1 -:10186000892B49F5ECE8F4E005C0E4E7F4E002C0B8 -:10187000ECE5F4E0849190E09F0121C06430D8F45D -:10188000E62FF0E0EE0FFF1FEE5DFE4F208131816D -:1018900089E090E014C0643070F470E0FB01EE0F5A -:1018A000FF1FE65EFE4F20813181FB01EA5EFE4FA5 -:1018B000808190E004C080E090E020E030E0FA0118 -:1018C00031832083089580E189BD82E189BD09B417 -:1018D00000FEFDCF8091D8008F7D8093D80080914D -:1018E000E00082608093E0008091E00081FDFCCF09 -:1018F0000895CF92DF92EF92FF920F931F93CF93B1 -:10190000DF93EC018B016A010E94DC0D811133C071 -:10191000C114D10439F0F60180819181081B190BA3 -:10192000C80FD91FE12CF12C0115110519F1809177 -:10193000E80085FD16C08091E8008E778093E8006E -:10194000C114D10449F0F60180819181E80EF91E9D -:10195000F182E08285E00FC00E94DC0D882321F334 -:101960000AC089918093F10001501109FFEFEF1A2D -:10197000FF0ADACF80E0DF91CF911F910F91FF90A6 -:10198000EF90DF90CF9008952091F9013091FA0106 -:101990002617370748F06115710539F42091E800E2 -:1019A0002E772093E80001C0B90140E06115710570 -:1019B000A9F12091F201222309F443C0253009F452 -:1019C00042C02091E80023FD40C02091E80022FDA4 -:1019D00032C02091E80020FFE9CF4091F300209130 -:1019E000F20030E0342BFC01CF016115710559F094 -:1019F0002830310540F481918093F10061507109E4 -:101A00002F5F3F4FF1CF41E02830310509F040E032 -:101A10002091E8002E772093E800C8CF4111C9CF6C -:101A20000AC08091F201882361F0853061F08091D5 -:101A3000E80083FD0AC08091E80082FFF2CF80E0D9 -:101A4000089582E0089583E0089581E0089520914B -:101A5000F9013091FA012617370748F06115710531 -:101A600039F42091E8002E772093E80001C0B901F5 -:101A7000FC0120E06115710591F18091F20188234C -:101A800009F440C0853009F43FC08091E80083FD2F -:101A90003DC08091E80082FD2FC08091E80080FF6A -:101AA000E9CF2091F3008091F20090E0922B611534 -:101AB000710559F08830910540F424912093F1008C -:101AC0003196615071090196F2CF21E0089709F033 -:101AD00020E08091E8008E778093E800CBCF211141 -:101AE000CCCF0AC08091F201882361F0853061F08B -:101AF0008091E80083FD0AC08091E80082FFF2CF68 -:101B000080E0089582E0089583E0089581E00895DB -:101B1000982F973058F59093E900981739F0709105 -:101B2000EC002091ED005091F00003C0242F762F9F -:101B300050E021FF19C03091EB003E7F3093EB0065 -:101B40003091ED003D7F3093ED003091EB0031603E -:101B50003093EB007093EC002093ED005093F00075 -:101B60002091EE0027FF07C09F5FD3CF8F70809337 -:101B7000E90081E0089580E008958091F30187FFF6 -:101B800011C08091E80082FD05C08091F2018111B1 -:101B9000F8CF11C08091E8008B770BC08091F201E3 -:101BA000882349F08091E80080FFF8CF8091E80019 -:101BB0008E778093E80008952091E4003091E5004D -:101BC00095E64091EC00842F817040FF22C0809107 -:101BD000E80080FD1CC08091F201882391F08530DF -:101BE00091F08091EB0085FD10C04091E400509190 -:101BF000E5004217530729F39A01915011F784E049 -:101C0000089582E0089583E0089581E0089580E0DA -:101C100008954091E80042FFDECF08950E947C0EB7 -:101C20000E94840EE0EEF0E0808181608083E8ED28 -:101C3000F0E080818F77808319BCA7EDB0E08C91B4 -:101C40008E7F8C9380818F7E80831092F101089526 -:101C50000F931F93CF93DF930E947C0E0E94840EFC -:101C6000C8EDD0E088818F778883888180688883F9 -:101C700088818F7D888319BC1092F2011092EE0149 -:101C80001092F0011092EF0100EE10E0F801808157 -:101C90008B7F808388818160888342E060E080E080 -:101CA0000E94880DE1EEF0E080818E7F8083E2EE7D -:101CB000F0E0808181608083808188608083F8018A -:101CC00080818E7F8083888180618883DF91CF913E -:101CD0001F910F910895E8EDF0E080818F7E808361 -:101CE000E7EDF0E080818160808384E082BF81E065 -:101CF0008093F1010C94280EE8EDF0E080818E7F56 -:101D000080831092E20008951092DA001092E100B0 -:101D100008951F920F920FB60F9211242F933F93A5 -:101D20004F935F936F937F938F939F93AF93BF93E3 -:101D3000EF93FF938091E10082FF0BC08091E2005E -:101D400082FF07C08091E1008B7F8093E1000E94B9 -:101D5000F0108091DA0080FF1FC08091D80080FFD2 -:101D60001BC08091DA008E7F8093DA008091D900C9 -:101D700080FF0DC080E189BD82E189BD09B400FE0C -:101D8000FDCF81E08093F2010E94EB0A05C019BCEF -:101D90001092F2010E94F90A8091E10080FF19C0BF -:101DA0008091E20080FF15C08091E2008E7F8093D9 -:101DB000E2008091E20080618093E2008091D8008F -:101DC00080628093D80019BC85E08093F2010E9464 -:101DD000FD0A8091E10084FF30C08091E20084FF21 -:101DE0002CC080E189BD82E189BD09B400FEFDCF30 -:101DF0008091D8008F7D8093D8008091E1008F7E04 -:101E00008093E1008091E2008F7E8093E2008091D8 -:101E1000E20081608093E2008091EE01882311F05E -:101E200084E007C08091E30087FD02C081E001C02B -:101E300083E08093F2010E94FF0A8091E10083FF1A -:101E400029C08091E20083FF25C08091E100877F57 -:101E50008093E10082E08093F2011092EE01809184 -:101E6000E1008E7F8093E1008091E2008E7F80937D -:101E7000E2008091E20080618093E20042E060E055 -:101E800080E00E94880D8091F00088608093F000CF -:101E90000E94FC0AFF91EF91BF91AF919F918F91AA -:101EA0007F916F915F914F913F912F910F900FBE56 -:101EB0000F901F9018951F920F920FB60F9211243A -:101EC0002F933F934F935F936F937F938F939F9342 -:101ED000AF93BF93CF93DF93EF93FF93C091E9004C -:101EE000CF708091EC00D82FD17080FDD0E8109297 -:101EF000E9008091F000877F8093F00078940E9441 -:101F00009F0F1092E9008091F00088608093F000AC -:101F1000CD2BCF70C093E900FF91EF91DF91CF916E -:101F2000BF91AF919F918F917F916F915F914F91F1 -:101F30003F912F910F900FBE0F901F9018951F93F8 -:101F4000CF93DF93CDB7DEB7AA970FB6F894DEBF75 -:101F50000FBECDBFE3EFF1E088E08E0F9091F1006E -:101F600091938E13FBCF0E941B0B8091E80083FF9F -:101F70001FC18091F3019091F401492F50E04A3044 -:101F8000510508F015C1FA01EA5AFF4F0C94DA2402 -:101F9000803881F0823809F00BC18091F7018F7091 -:101FA0008093E9008091EB0085FB882780F91092EF -:101FB000E90006C08091EF019091F00191118260DB -:101FC0009091E800977F9093E8008093F100109241 -:101FD000F100C8C0282F2D7F09F0EAC0882319F02E -:101FE000823061F0E5C08091F501813009F0E0C0F8 -:101FF000933009F080E08093F0012BC08091F501CF -:10200000811127C08091F7018F7009F4D1C08093AE -:10201000E9002091EB0020FF1CC0933021F4809157 -:10202000EB00806214C09091EB0090619093EB0004 -:1020300021E030E0A90102C0440F551F8A95E2F764 -:102040004093EA001092EA008091EB008860809350 -:10205000EB001092E9008091E800877F86C0811133 -:10206000A7C01091F5011F778091E3008078812B44 -:102070008093E3008091E800877F8093E8000E94CE -:10208000BD0D8091E80080FFFCCF8091E300806867 -:102090008093E300111102C082E001C083E08093CD -:1020A000F20186C08058823008F082C08091F5012C -:1020B0009091F6018C3D53E0950779F583E08A8392 -:1020C0008AE289834FB7F894DE01139620E03EE060 -:1020D00051E2E32FF0E050935700E49120FF03C05A -:1020E000E295EF703F5FEF708E2F90E0EA3010F0D6 -:1020F000C79601C0C0968D939D932F5F243149F7F9 -:102100004FBF8091E800877F8093E8006AE270E02B -:10211000CE0101960E94C40C14C0AE014F5F5F4F08 -:102120006091F7010E940B0CBC01009709F440C0BC -:102130009091E800977F9093E80089819A810E94AE -:10214000270D8091E8008B778093E80031C08038BC -:1021500079F58091E800877F8093E8008091EE0117 -:102160008093F1008091E8008E778093E8000E94D0 -:10217000BD0D1EC081111CC09091F5019230C0F4BC -:102180008091E800877F8093E8009093EE010E94A1 -:10219000BD0D8091EE01811106C08091E30087FDA5 -:1021A00002C081E001C084E08093F2010E94070B2D -:1021B0008091E80083FF0AC08091E800877F8093C8 -:1021C000E8008091EB0080628093EB00AA960FB646 -:1021D000F894DEBF0FBECDBFDF91CF911F91089560 -:1021E0000895CF938091F2018823A1F0C091E90076 -:1021F000CF709091EC00892F817090FD80E8C82B02 -:102200001092E9008091E80083FD0E949F0FCF703B -:10221000C093E900CF910895909376018093750162 -:102220000895E0917501F0917601309721F00190C9 -:10223000F081E02D099480E00895E0917501F0911E -:102240007601309721F00280F381E02D0994089502 -:10225000E0917501F0917601309721F00480F581CD -:10226000E02D099408952091730130917401821733 -:10227000930771F09093740180937301E09175015D -:10228000F0917601309721F00680F781E02D0994D6 -:10229000089520917101309172018217930771F0B6 -:1022A0009093720180937101E0917501F091760134 -:1022B000309721F00084F185E02D09940895089568 -:1022C0000C945F110E94B91C0E94DE030C947B1DCC -:1022D0009F92AF92BF92CF92DF92EF92FF920F93B5 -:1022E0001F93CF93DF9300D000D000D0CDB7DEB7DF -:1022F0000E94F6030DE010E0AA24A394B12C902EC6 -:10230000802F0E94E404980128583E4F6901F9018A -:10231000F080F826A1F40150110988F78FEF898326 -:102320008A831B820E94C21C8160782F9D838C83CC -:1023300049815A816B818D810E94FF112FC090913C -:10234000DB0191FF04C08E830E94EA048E8125E0A8 -:1023500030E0A501022E01C0440F0A94EAF7E42EF2 -:102360004F21C1F029839A828E2191E009F490E0F7 -:102370009B830E94C21C8160782F9D838C8349813E -:102380005A816B818D810E94FF11F6018081E826C0 -:10239000E08204C021503109E0F6BDCF0E946220E6 -:1023A000109177010E9411111817B9F00E941111B4 -:1023B0008093770126960FB6F894DEBF0FBECDBF8F -:1023C000DF91CF911F910F91FF90EF90DF90CF9011 -:1023D000BF90AF909F900C940A0A26960FB6F8947F -:1023E000DEBF0FBECDBFDF91CF911F910F91FF9048 -:1023F000EF90DF90CF90BF90AF909F900895CF93D4 -:10240000DF93CDB7DEB72B970FB6F894DEBF0FBEC4 -:10241000CDBF4F83588769877A878B87DE011196F6 -:1024200086E0FD0111928A95E9F785E0FE01379675 -:1024300001900D928A95E1F749815A816B817C81E7 -:102440008D819E810E9448182B960FB6F894DEBFAE -:102450000FBECDBFDF91CF910895CF93882309F4AC -:10246000C2C0C82F823859F40E94111181FDBBC02F -:1024700089E30E94221B0E94EF1B89E30CC0833872 -:1024800079F40E94111180FDAEC083E50E94221BE9 -:102490000E94EF1B83E50E94641BCF910C94EF1BFD -:1024A000843859F40E94111182FD9DC087E40E9476 -:1024B000221B0E94EF1B87E4EECF8CEF8C0F813A3A -:1024C00048F48C2F0E94A52281118DC08C2F0E9470 -:1024D000221BE3CF80E28C0F883048F4C77081E084 -:1024E00001C0880FCA95EAF70E94A81BD6CF8BE5DA -:1024F0008C0F833078F4C53A29F0C63A31F083E87E -:1025000090E005C081E890E002C082E890E0CF91C1 -:102510000C94331188E58C0F833108F064C0C83AFD -:1025200039F1C93A41F1CA3A49F1CB3A51F1CC3AC1 -:1025300059F1CD3A61F1C03B69F1CE3A71F1CF3A30 -:1025400079F1C13B81F1C23B89F1C33B91F1C43BBD -:1025500099F1C53BA1F1C63BA9F1C73BB1F1C83B1D -:10256000B9F1C93BC1F1CA3BC9F180E090E038C084 -:1025700082EE90E035C089EE90E032C08AEE90E0C5 -:102580002FC085EB90E02CC086EB90E029C087EB54 -:1025900090E026C08CEC90E023C08DEC90E020C051 -:1025A00083E891E01DC08AE891E01AC082E991E0D9 -:1025B00017C084E991E014C081E292E011C083E287 -:1025C00092E00EC084E292E00BC085E292E008C087 -:1025D00086E292E005C087E292E002C08AE292E0E1 -:1025E000CF910C944911CF910895882309F44BC0E1 -:1025F000823859F40E94111181FF45C089E30E947D -:10260000221B0E94EF1B89E30CC0833871F40E94E7 -:10261000111180FF38C083E50E94221B0E94EF1B2E -:1026200083E50E94641B0C94EF1B843859F40E94CC -:10263000111182FF28C087E40E94221B0E94EF1B19 -:1026400087E4EFCF9CEF980F913A58F390E2980F00 -:10265000983050F4877091E001C0990F8A95EAF79D -:10266000892F0E94AE1BDFCF9BE5980F933020F49B -:1026700080E090E00C943311885A833120F480E09C -:1026800090E00C9449110895882321F00E94A81B22 -:102690000C94EF1B0895882321F00E94AE1B0C942C -:1026A000EF1B08957F928F929F92AF92BF92CF922D -:1026B000DF92EF92FF920F931F93CF93DF931F92BE -:1026C000CDB7DEB77C01C62E772EFC0105810295C1 -:1026D0000F70128111110E94C51B0E941B1B8823C1 -:1026E00079F0112369F080E28C0D883048F082E0A7 -:1026F0000E94041B0E941B1B91E0D82ED92601C00A -:10270000D12CE72DE295EF70F0E0E05AFF4F0C94EA -:10271000DA24872D807F072D0F70882311F0029512 -:10272000007F112389F0002309F490C180E28C0D11 -:10273000883020F4802F0E94A81B03C0802F0E94A5 -:10274000B81B0E94EF1B82C18C2D0E94F512002342 -:1027500009F495C180E28C0D883020F4802F0E940E -:10276000AE1B03C0802F0E94BE1B0E94EF1B87C1BF -:10277000972D907F872D8F70903211F08295807FFA -:10278000CC2021F0F1E0CF16B1F01EC0112349F0AA -:10279000002309F414C1013009F011C10E94D81BB3 -:1027A0006EC1002319F0013009F469C189830E94C8 -:1027B000DB1B89810AC1112321F0023008F05FC1BF -:1027C000FEC001115CC101C1112321F0002309F4F5 -:1027D000F6C03CC1002309F4F8C03EC1872D8695A0 -:1027E0008695837090E0009719F0019761F047C1DA -:1027F000112321F08C2D972D937002C080E090E082 -:102800000E9433113CC1112321F08C2D972D937020 -:1028100002C080E090E00E94491131C18C2D11234B -:1028200019F00E946A1F02C00E94D21F0E94572006 -:1028300026C1872D837009F052C0111120C18C2D43 -:10284000829586958770880F880F9C2D9F70892EA2 -:10285000912CA12CB12C082E04C0880C991CAA1C08 -:10286000BB1C0A94D2F7C4FE14C00FE010E020E0B5 -:1028700030E0B901A80104C0440F551F661F771F3F -:102880008A95D2F7CB01BA016095709580959095A5 -:1028900003C060E070E0CB01272D269526952370BC -:1028A00030E02230310569F02330310589F06829A4 -:1028B00079298A299B292130310571F00E949019CC -:1028C000DEC0682979298A299B290E94AC19D7C0C2 -:1028D0000E949019C501B4010E947419D0C011233F -:1028E00019F0872D817001C08695882309F4C7C02F -:1028F0008C2D829586958770880F880F9C2D9F70F0 -:10290000892E912CA12CB12C082E04C0880C991C66 -:10291000AA1CBB1C0A94D2F7C4FE14C00FE010E03E -:1029200020E030E0B901A80104C0440F551F661F24 -:10293000771F8A95D2F7CB01BA0160957095809583 -:10294000909503C060E070E0CB01272D2695269579 -:102950002370422F50E04230510569F04330510559 -:1029600089F0682979298A299B294130510571F01C -:102970000E946A1A84C0682979298A299B290E94A1 -:10298000861A7DC00E946A1AC501B4010E944E1ABF -:1029900076C08C2D90E0FC01E05EF109E531F10597 -:1029A00008F050C0E059FF4F0C94DA240C2D0F7042 -:1029B000872D8F71112331F00E94E719802F0E941B -:1029C00044135DC00E94081A802F0E944B1357C009 -:1029D000112339F0011153C0872D8F710E942D1AD8 -:1029E0004EC0023008F04BC0F7CF112339F0872DCD -:1029F0008F710E94E71943C01123C9F3872D8F718E -:102A00000E94081A3CC0112329F0872D8F710E9463 -:102A1000D21935C00E94C81932C0112351F0172DA8 -:102A20001F71812F0E94E71963E0812F0E94FB1A1A -:102A300026C081E00E94041B023008F182E00E945F -:102A4000041B1DC0112331F0002389F28C2D0E943C -:102A50002D1215C0002391F28C2D0E94F5120FC08B -:102A6000472D4F706C2DC7010E94C0050E94EC18C5 -:102A700006C0472D4F706C2DC7010E941907DD203D -:102A8000F9F00E94F71A80FD1BC0F70112820E9424 -:102A9000F11A0E94E719C7010E946F150E94F11AEE -:102AA0000F90DF91CF911F910F91FF90EF90DF90EA -:102AB000CF90BF90AF909F908F907F900C94081A0A -:102AC0000F90DF91CF911F910F91FF90EF90DF90CA -:102AD000CF90BF90AF909F908F907F9008950F936D -:102AE0001F93CF93DF93EC01888199812B813C81E7 -:102AF000232BB9F09F3F11F48F3F99F0CE010E9434 -:102B00000906882371F0688179818A810E94ED1A13 -:102B10008C010E94A21A0E946919B801CE010E947C -:102B20005213DF91CF911F910F9108950E94C51B01 -:102B30000E94D51B0E949A1B0E94EF1B0E94082135 -:102B40000E94572080E090E00E94331180E090E0E6 -:102B50000C9449110E94B51B0C9496150E94E21A20 -:102B6000292F22952F7030E02C3031054CF42A307B -:102B700031056CF42250310922303105A8F407C028 -:102B80002C30310569F02F30310551F00DC0803FF8 -:102B900069F018F4803E40F409C0843F29F406C06F -:102BA00093FB882780F9089580E0089581E00895D7 -:102BB000CF93DF9300D000D01F92CDB7DEB70F9038 -:102BC0000F900F900F900F90DF91CF910895CF93BA -:102BD000DF9300D000D000D0CDB7DEB726960FB679 -:102BE000F894DEBF0FBECDBFDF91CF9108951F9344 -:102BF000CF93DF93C091860116E080918701C817BB -:102C000099F0D0E01C9FF0011D9FF00D1124E857B2 -:102C1000FE4F4081518162817381848195810E9440 -:102C2000E7152196C770E9CFDF91CF911F910895E5 -:102C30004091B8015091B9016091BA017091BB0106 -:102C40008091BC019091BD010C94E7158091BD016C -:102C500082958F7009F054C08091BA01882309F4DD -:102C60004FC080918601A09187016091B801709159 -:102C7000B9014091BB015091BC01B6E08A1709F43B -:102C80003FC090E041155105C1F17F3F11F46F3F06 -:102C9000A1F1B89FF001B99FF00D1124E857FE4F44 -:102CA000218172132AC02081621327C02281211141 -:102CB00024C0238134812417350710F421503109B1 -:102CC000241B350B283C3105C0F42091BD012F7029 -:102CD00020612093BD0126E0289FF001299FF00D7F -:102CE0001124E357FE4F80818F708061808388EBD1 -:102CF00091E00E946F150C94F71501968770BECF76 -:102D00000895CF92DF92EF92FF920F931F93CF938C -:102D1000DF93CDB7DEB762970FB6F894DEBF0FBE74 -:102D2000CDBF8C0185E0F801DE011D9601900D926A -:102D30008A95E1F7D8014C9111965C911197129602 -:102D40006C9112971396CD90DC9014973091B80146 -:102D50007091B9018091BB019091BC01009709F479 -:102D60006BC17F3F19F43F3F09F466C1E090BA019F -:102D7000EE2009F4C0C02091BD01C816D90628F084 -:102D8000F601E81BF90BCF0104C0809590958C0DDE -:102D90009D1DFF24F394883C910578F0F12C207F51 -:102DA00009F0C6C07C2DD98AC88A89890E94D815A5 -:102DB00088EB91E00E946F15B1C0822F807F09F0EF -:102DC00046C0751314C0341312C0611110C02F70A7 -:102DD00020612093BD010E94181688EB91E00E94AB -:102DE0006F158091BD01D80115968C932EC0CD280A -:102DF00019F15F3F11F44F3FF9F0F62E61111CC03D -:102E0000809186012091870136E0821709F45AC02B -:102E100090E0389FF001399FF00D1124E857FE4FE4 -:102E20007181571306C07081471303C072817111FD -:102E300003C001968770E9CFF62E662309F418C106 -:102E40008091BD0181608093BD01F12C11C175138A -:102E500008C0341306C0611104C08091BD01D801BF -:102E6000C3C04D875E878D859E856A8B0E94AE1597 -:102E70006A898823E1F16623D1F12091BD01822F77 -:102E800082958F7090E0029774F08091B8019091D4 -:102E9000B90198878F831986DB86CA862C87CE0175 -:102EA00007960E946F1586E0F801A8EBB1E001904B -:102EB0000D928A95E1F70E9426160E941816FF24AB -:102EC000F394D6C04D875E878D859E850E94E21A59 -:102ED000292F22952F7030E0223031050CF0BCC034 -:102EE0009F7009F0B6C0805E883008F4C1C0C80188 -:102EF0000E946F15E4CFC816D90608F453C0F60136 -:102F0000E81BF90BCF01883C910508F450C0F12C67 -:102F10007C2DD98AC88A89890E94D815E8EBF1E00E -:102F200086E0DF011D928A95E9F70E941816A0C07D -:102F3000751314C0341312C0611110C08091BD010B -:102F4000F8018583C8010E946F1586E0E8EBF1E087 -:102F5000DF011D928A95E9F7FE2C8AC04D875E87B6 -:102F60008D859E856A8B0E94AE156A89882309F437 -:102F7000BECF662309F4BBCF2091BD01822F82957D -:102F80008F7090E002970CF48ECF8091B8019091F1 -:102F9000B9019A8389831B82DD82CC822E83CE0184 -:102FA00001967FCF809590958C0D9D1DACCFF62E10 -:102FB000662309F49CCF75132EC034132CC02091C6 -:102FC000BD0120FD1FC0822F82958F70D9F0D801DE -:102FD00015962C9315978F3049F08F5F982F929507 -:102FE000907F822F8F70892B15968C93C8010E9439 -:102FF0006F1586E0F801A8EBB1E001900D928A957B -:10300000E1F793CF86E0F801A8EBB1E001900D92D3 -:103010008A95E1F72DC04D875E878D859E850E943C -:10302000AE15811140CF8091BD0181608093BD01BB -:10303000C8010E946F151CC0662309F458CF4D8744 -:103040005E878D859E850E94AE15882309F44FCF3B -:103050002ACF811148CF0CC0243031050CF047CF66 -:103060009F7009F440CFF8019581907F09F03BCF24 -:103070008F2D62960FB6F894DEBF0FBECDBFDF91E5 -:10308000CF911F910F91FF90EF90DF90CF90089517 -:103090001F93CF93DF93CDB7DEB72C970FB6F8947D -:1030A000DEBF0FBECDBF4F83588769877A878B8776 -:1030B0009C87CE0107960E948116882369F08F8134 -:1030C00098852A853B85232BF1F19F3F09F063C04A -:1030D0008F3F09F060C037C086E0FE013796DE0101 -:1030E000119601900D928A95E1F76F817885EA85B6 -:1030F000FB85309741F17F3F11F46F3F21F1209123 -:10310000870130E0C90101968770992740918601B7 -:1031100050E08417950709F447C069837A83FD83DB -:10312000EC8396E0929FD001939FB00D1124A85795 -:10313000BE4FFE01319601900D929A95E1F7809372 -:1031400087010E94F71516E0809186019091870112 -:103150008917C1F1189FC001112488579E4F0E9402 -:103160008116882379F1E09186011E9FF0011124D8 -:10317000E857FE4F4081518162817381848195813E -:103180000E94E7158091860190E00196877099274B -:1031900080938601D9CF4F81588569857A858B8543 -:1031A0009C850E94E715CFCF0E94AA151092870137 -:1031B00010928601E8EBF1E086E0DF011D928A952E -:1031C000E9F7C1CF2C960FB6F894DEBF0FBECDBF86 -:1031D000DF91CF911F910895EF92FF920F931F936C -:1031E000CF93DF938C01009709F46CC0F12CEE248F -:1031F000E394E8012196F8018491843740F4843007 -:1032000008F051C0813081F0823019F15BC0853700 -:1032100009F444C0A8F19CE7980F903708F052C019 -:103220008F770E94F51241C00E5F1F4FFE01C491BF -:1032300080E28C0F883048F4C7708E2D01C0880F53 -:10324000CA95EAF70E94C81B14C08C2F0E942D1249 -:103250002DC00E5F1F4FFE01C49180E28C0F88309D -:1032600058F4C7708E2D01C0880FCA95EAF70E94E6 -:10327000CE1B0E94EF1B1AC08C2F0E94F51216C0A5 -:103280000E5F1F4FFE01C491CC2381F08FE99FE0B8 -:103290000197F1F700C00000C150F6CF0E5F1F4F3D -:1032A000FE01F49003C00E942D128E018F2D882301 -:1032B00009F49FCFEFE9FFE03197F1F700C000007C -:1032C0008150F5CFDF91CF911F910F91FF90EF903B -:1032D000089508956093C2017093C3018093C4015F -:1032E0009093C5010C9496150F931F930091C20102 -:1032F0001091C3012091C4013091C501DC01CB01C3 -:10330000802B912BA22BB32B8093C2019093C301EE -:10331000A093C401B093C5011F910F910C94961511 -:103320000F931F930091C2011091C3012091C4011A -:103330003091C501DC01CB0180239123A223B3236B -:103340008093C2019093C301A093C401B093C501BF -:103350001F910F910C9496150F931F930091C2012A -:103360001091C3012091C4013091C501DC01CB0152 -:1033700080279127A227B3278093C2019093C3018E -:10338000A093C401B093C5011F910F910C949615A1 -:103390001092BE011092BF011092C0011092C101A3 -:1033A0000C94961541E050E060E070E004C0440FDA -:1033B000551F661F771F8A95D2F74093BE01509321 -:1033C000BF016093C0017093C1010C94961541E058 -:1033D00050E060E070E004C0440F551F661F771F87 -:1033E0008A95D2F78091BE019091BF01A091C00152 -:1033F000B091C101482B592B6A2B7B2B4093BE0106 -:103400005093BF016093C0017093C1010C94961555 -:1034100041E050E060E070E004C0440F551F661FBB -:10342000771F8A95D2F74095509560957095809159 -:10343000BE019091BF01A091C001B091C10148238C -:1034400059236A237B234093BE015093BF016093AD -:10345000C0017093C1010C94961541E050E060E00A -:1034600070E004C0440F551F661F771F8A95D2F77E -:103470008091BE019091BF01A091C001B091C101A6 -:10348000482759276A277B274093BE015093BF01E5 -:103490006093C0017093C1010C9496150F931F9314 -:1034A0000091BE011091BF012091C0013091C10176 -:1034B000DC01CB01802B912BA22BB32B8093BE017F -:1034C0009093BF01A093C001B093C1011F910F91D0 -:1034D0000C9496150F931F930091BE011091BF019C -:1034E0002091C0013091C101DC01CB0180239123E7 -:1034F000A223B3238093BE019093BF01A093C00188 -:10350000B093C1011F910F910C9496150F931F93C7 -:103510000091BE011091BF012091C0013091C10105 -:10352000DC01CB0180279127A227B3278093BE011E -:103530009093BF01A093C001B093C1011F910F915F -:103540000C9496150895CF92DF92EF92FF920F930D -:103550001F93CF93DF938C01C090C201D090C30121 -:10356000E090C401F090C5018091BE019091BF012F -:10357000A091C001B091C101C82AD92AEA2AFB2A28 -:10358000CFE1D0E0D701C6010C2E04C0B695A795B7 -:10359000979587950A94D2F780FF06C0B8018C2FC3 -:1035A0000E946F09019721F4219760F780E001C024 -:1035B0008C2FDF91CF911F910F91FF90EF90DF90B3 -:1035C000CF900895CF93DF93EC010E94A31ABE0120 -:1035D0000E946F09DF91CF910895CB010E94E21AFA -:1035E00008958091C601859585958595089580916A -:1035F000C6018770089598E0899F90011124262BB9 -:103600002093C6010C94E7192091C601809582236E -:103610008093C601982F977069F430E0482F5527A2 -:1036200047FD50952417350729F085958595859593 -:103630000C94081A08959091C601977081E009F4DE -:1036400080E0089590910C01992321F090910D0153 -:10365000911109C020910E0130910F01F9013296AC -:103660009FEF40E01FC0982F9695969596959F30B6 -:1036700050F5E0910E01F0910F01E90FF11D8770F7 -:1036800021E030E0A90102C0440F551F8A95E2F7FE -:10369000CA019181892B818308959F3F39F04F5F43 -:1036A0004E3041F051915813F8CF0DC05111F7CF62 -:1036B000942FF5CF9F3F39F0F901E90FF11D97FDE8 -:1036C000FA9582830895089590910C01992321F031 -:1036D00090910D01911109C020910E0130910F01BF -:1036E000F9013296205F3F4F1FC0982F969596950F -:1036F00096959F30F0F4E0910E01F0910F01E90FE3 -:10370000F11D877021E030E0A90102C0440F551F70 -:103710008A95E2F7CA018095918189238183089572 -:103720003196E217F30729F090819813F9CF1082B0 -:10373000F7CF089581E090E0E0910E01F0910F0144 -:10374000E80FF91F1082019680319105A9F70895BD -:103750009091DA01892B8093DA01089580959091F8 -:10376000DA0189238093DA0108951092DA0108952D -:103770009091D901892B8093D901089580959091DA -:10378000D90189238093D90108951092D901089510 -:103790009091D801892B8093D801089580959091BC -:1037A000D80189238093D80108951092D8010895F3 -:1037B0008093C70108951092C701089580910E016A -:1037C00090910F01FC0131969C01205F3F4F80E0FA -:1037D000919191118F5FE217F307D1F70895E0916E -:1037E0000E01F0910F018091DA018083E0910E01CA -:1037F000F0910F0190818091D901892B8083E09114 -:103800000E01F0910F0190818091D801892B808366 -:103810008091C701882361F0E0910E01F0910F01C2 -:103820009081892B80830E94DE1B81111092C70139 -:1038300080910E0190910F010C941D1120E00097D2 -:1038400039F0AC0141505109842395232F5FF7CF04 -:10385000822F0895CF92DF92EF92FF926C01EE24B7 -:10386000FF24C114D104E104F10421F0C701B60121 -:1038700020E101C020E0C72ED82EE92EFF24C1147C -:10388000D104E104F10419F0285FC701B6016B010E -:103890007C0154E0F694E794D794C7945A95D1F7F5 -:1038A000C114D104E104F10419F02C5FC701B60181 -:1038B0006B017C0142E0F694E794D794C7944A9553 -:1038C000D1F7C114D104E104F10419F02E5FC7014E -:1038D000B601DC01CB01B695A79597958795892B05 -:1038E0008A2B8B2B09F02F5F822FFF90EF90DF90B8 -:1038F000CF9008958091F201843021F11092DC0183 -:1039000020E488E190E00FB6F894A89580936000D9 -:103910000FBE2093600080E00E940A0A83B7817F77 -:10392000846083BF83B7816083BF7894889583B7B1 -:103930008E7F83BF88E10FB6F89480936000109269 -:1039400060000FBE0895089508950E94A31C0E9470 -:10395000F6030E94A41C0E94EB0491E0811101C0B7 -:1039600090E0892F08950E94AA150E9411110C94CD -:103970000A0A82E084BD93E095BD9AEF97BD8093DB -:103980006E0008952FB7F8948091DD019091DE01CB -:10399000A091DF01B091E0012FBF0895CF92DF9297 -:1039A000EF92FF920F931F932FB7F8944091DD0190 -:1039B0005091DE016091DF017091E0012FBF6A013B -:1039C0007B01EE24FF248C0120E030E0C016D106FC -:1039D000E206F30610F4415051099A01281B390BF5 -:1039E000C9011F910F91FF90EF90DF90CF90089544 -:1039F0001F920F920FB60F9211248F939F93AF9344 -:103A0000BF938091DD019091DE01A091DF01B09123 -:103A1000E0010196A11DB11D8093DD019093DE01AF -:103A2000A093DF01B093E001BF91AF919F918F917F -:103A30000F900FBE0F901F9018950E940E0EF894D5 -:103A40002FEF87EA91E6215080409040E1F700C0D7 -:103A5000000087E090EBDC018093FC019093FD0176 -:103A6000A093FE01B093FF019CE088E10FB6F894AB -:103A7000A895809360000FBE90936000FFCFEF92F7 -:103A8000FF920F931F93CF93DF93D82FCDE08C2F0E -:103A90000E94E40405E010E0E82EF12CC701002E9E -:103AA00002C0959587950A94E2F780FF09C0602FC0 -:103AB0007C2F80E00E941A07D81302C081E006C064 -:103AC0000150110958F7C15010F780E0DF91CF91F4 -:103AD0001F910F91FF90EF900895CF93C82F8CE224 -:103AE0000E943F1D882321F08C2FCF910C943F1D05 -:103AF00080E0CF910895CF930E94C21E811102C031 -:103B00000E94A81EC5E6C15049F00E94F6038FE34B -:103B10009CE90197F1F700C00000F5CF89E20E940F -:103B20006D1D811113C18AE20E946D1D81110E94D9 -:103B3000A81E85E00E946D1D81110E941D1D0E941E -:103B4000CD1E8093DB0187E00E946D1D8823A9F1C3 -:103B50008BE10E946D1D882351F08091DB0181FB78 -:103B6000222720F991E0922790FB81F90EC08EE088 -:103B70000E946D1D882361F08091DB0182FB22276A -:103B800020F991E0922790FB82F98093DB0115C028 -:103B900080E10E946D1D9091DB01882341F093FB31 -:103BA000222720F981E0822780FB93F904C0892F26 -:103BB000809580FB90F99093DB018091DB010E945E -:103BC000D11E0E94DF1E8093FB0180EE0E946D1DBE -:103BD000882341F08091FB01982F909590FB80F90C -:103BE0008093FB0189E30E946D1D882359F0809129 -:103BF000FB0181FB222720F991E0922790FB81F9BC -:103C00008093FB0182EE0E946D1D882359F0809104 -:103C1000FB0182FB222720F991E0922790FB82F999 -:103C20008093FB0186EE0E946D1D882359F08091E0 -:103C3000FB0183FB222720F991E0922790FB83F977 -:103C40008093FB0183EE0E946D1D882359F08091C3 -:103C5000FB0184FB222720F991E0922790FB84F955 -:103C60008093FB0185E30E946D1D882359F08091AC -:103C7000FB0185FB222720F991E0922790FB85F933 -:103C80008093FB0181E30E946D1D882359F0809190 -:103C9000FB0186FB222720F991E0922790FB86F911 -:103CA0008093FB0181E10E946D1D882359F0809172 -:103CB000FB0187FB222720F991E0922790FB87F9EF -:103CC0008093FB018091FB010E94E31E8091FB0128 -:103CD00087FB882780F980930D0187E20E946D1D84 -:103CE000C82F8EE10E946D1D8111C2608FE10E947C -:103CF0006D1D8111C46080E20E946D1D8111C8603C -:103D000081E20E946D1D8111C06182E20E946D1DE1 -:103D10008111C06283E20E946D1D8111C06484E242 -:103D20000E946D1D882311F0C06802C0CC2329F0C9 -:103D30008C2F0E94DA1E6C2F03C00E94D61E682FA3 -:103D400070E080E090E0CF910C946A19CF910895D3 -:103D50006DEE7EEF80E090E00E94142560E082E04E -:103D600090E00E94022560E083E090E00E9402253E -:103D700060E084E090E00E94022560E085E090E051 -:103D80000C94022580E090E00E94FC2421E08D3E0E -:103D90009E4F09F020E0822F089582E090E00C947D -:103DA000F424682F82E090E00C94022583E090E0F8 -:103DB0000C94F424682F83E090E00C94022584E0B6 -:103DC00090E00C94F424682F84E090E00C94022599 -:103DD0008091E30180FF0BC06091130185E0689F33 -:103DE000B001112475956795759567952BC081FF76 -:103DF00009C06091130185E0689FB0011124759599 -:103E0000679520C082FF07C06091130185E0689F1D -:103E1000B001112417C09091E4019923D1F0609171 -:103E20001201961788F72091130185E0289F9001D1 -:103E30001124929FA001939F500D112470E0CA019C -:103E40000E94C6246038710540F46115710539F08F -:103E500002C065E070E0862F08958FE7089581E045 -:103E600008958091E30180FF08C06091110170E026 -:103E7000759567957595679521C081FF06C060911E -:103E8000110170E07595679519C082FF04C06091BB -:103E9000110170E010C09091E4019923C1F060918C -:103EA00010019617A0F780911101899FC00111247C -:103EB00070E00E94C6246038710528F46115710510 -:103EC00021F0862F08958FE7089581E0089561E03D -:103ED00070E0F4CF803F21F40E94E81E819504C079 -:103EE000813F29F40E94E81E8093E7010895823FF4 -:103EF00021F40E94E81E819504C0833F29F40E94AA -:103F0000E81E8093E6010895893F19F40E94311F4D -:103F100005C08A3F31F40E94311F81958093E801EA -:103F200008958B3F21F40E94311F819504C08C3F7E -:103F300029F40E94311F8093E9010895843F21F400 -:103F40008091E501816017C0853F21F48091E501F2 -:103F5000826011C0863F21F48091E50184600BC02E -:103F6000873F21F48091E501886005C0883F31F4E6 -:103F70008091E50180618093E50108958D3F21F4F2 -:103F80008091E30181600BC08E3F21F48091E301B9 -:103F9000826005C08F3F29F48091E30184608093A3 -:103FA000E3010895803F39F48091E70187FF6CC0F9 -:103FB0001092E70169C0813F29F48091E70118164A -:103FC000BCF362C09091E601823F29F497FF5CC088 -:103FD0001092E60159C0833F19F41916CCF354C06E -:103FE000893F41F48091E80118160CF04DC0109201 -:103FF000E8014AC08A3F29F48091E80187FF44C064 -:10400000F6CF8B3F39F48091E90187FF3DC01092D4 -:10401000E9013AC08C3F29F48091E9011816BCF3FC -:1040200033C0843F21F48091E5018E7F17C0853F26 -:1040300021F48091E5018D7F11C0863F21F48091AC -:10404000E5018B7F0BC0873F21F48091E501877FDD -:1040500005C0883F31F48091E5018F7E8093E501B2 -:1040600013C08D3F21F48091E3018E7F0BC08E3F02 -:1040700021F48091E3018D7F05C08F3F29F4809169 -:10408000E3018B7F8093E3018091E60181110EC0F3 -:104090008091E70181110AC08091E801811106C079 -:1040A0008091E901811102C01092E401089585EE2A -:1040B00091E00E9428110E94C21C9093E20180931B -:1040C000E10108951F93CF93DF938091E1019091D7 -:1040D000E2010E94CE1CAC019091E401992321F0F1 -:1040E0002091140130E006C0209115018AE0289F3C -:1040F000900111244217530708F486C08091E6010D -:10410000C091E701D091E8011091E901811107C048 -:10411000C11176C0D11174C0111172C075C09F3F1A -:1041200019F09F5F9093E401181624F40E94E81E92 -:104130008093E6018091E60187FF05C00E94E81E9A -:1041400081958093E6011C1624F40E94E81E80935A -:10415000E7018091E70187FF05C00E94E81E819575 -:104160008093E7016091E601662339F1C091E70190 -:10417000CC2319F1772767FD7095872F972F0E9421 -:10418000D72323E333E343E35FE30E943B240E940E -:10419000A4236093E6016C2F772767FD7095872F26 -:1041A000972F0E94D72323E333E343E35FE30E9487 -:1041B0003B240E94A4236093E7011D1624F40E946F -:1041C000311F8093E8018091E80187FF05C00E94BC -:1041D000311F81958093E801111624F40E94311F4C -:1041E0008093E9018091E90187FF05C00E94311F9A -:1041F00081958093E901DF91CF911F910C94572015 -:104200009F3F09F08ECF96CFDF91CF911F910895F8 -:10421000E5EEF1E085E0DF011D928A95E9F7109265 -:10422000E4011092E3010895833081F128F4813094 -:1042300059F08230D1F00895853009F449C0B8F1C1 -:10424000863009F456C0089580911501262F30E07C -:10425000280F311D2F3F310524F4680F609315019D -:1042600008958FEF80931501089580911401262FF2 -:1042700030E0280F311D2F3F310524F4680F609383 -:10428000140108958FEF8093140108958091130114 -:10429000262F30E0280F311D2F3F310524F4680F01 -:1042A0006093130108958FEF809313010895809117 -:1042B0001201262F30E0280F311D2F3F310524F445 -:1042C000680F6093120108958FEF80931201089593 -:1042D00080911101262F30E0280F311D2F3F31052D -:1042E00024F4680F6093110108958FEF80931101FA -:1042F000089580911001262F30E0280F311D2F3FA7 -:10430000310524F4680F6093100108958FEF8093B6 -:1043100010010895833011F128F4813049F0823082 -:1043200091F00895853081F120F18630C1F1089532 -:1043300080911501681720F4861B8093150108955C -:1043400010921501089580911401681720F4861BBE -:10435000809314010895109214010895809113011F -:10436000681720F4861B809313010895109213019F -:10437000089580911201681720F4861B8093120122 -:10438000089510921201089580911101681720F488 -:10439000861B809311010895109211010895809158 -:1043A0001001681720F4861B809310010895109265 -:1043B000100108950F931F938D3109F46BC008F01D -:1043C0003FC08E3009F47FC0C0F4873009F469C063 -:1043D00068F4863009F0B1C08091DB01817F8E7F67 -:1043E0008093DB0181E08093EB01A8C0883009F461 -:1043F000A2C08B3009F49FC0A0C0863109F49BC0D5 -:1044000078F4803109F472C0813109F096C00E94BD -:10441000AA1590910D0181E0892780930D018BC031 -:10442000893109F488C08B3109F087C08091DB01A4 -:1044300081FB222720F991E0922790FB81F94CC063 -:10444000853309F470C048F4873209F46CC008F46D -:1044500059C0893209F467C070C0833438F48A3394 -:1044600008F04EC0883309F466C067C0833409F48D -:104470005AC0883409F061C00E94AA150FEF13EDED -:1044800020E3015010402040E1F700C000000E94EE -:104490001D1D51C00E945E230E9411110E940A0A34 -:1044A0004AC09091DB01892F8095817080FB90F943 -:1044B00029F0966098609093DB0140C0997F977FC8 -:1044C0009093DB0138C08091DB0182FB222720F929 -:1044D00091E0922790FB82F98093DB01992359F1B7 -:1044E0008091DB0181608093DB0125C08091DB013D -:1044F00083FB222720F991E0922790FB83F9ECCFF0 -:10450000895301C08D5141E050E060E070E08A01C4 -:104510009B0104C0000F111F221F331F8A95D2F781 -:10452000C901B80104C061E070E080E090E00E9441 -:104530006A190E94AA1581E001C080E01F910F91C5 -:10454000089580E0089580E00895CF93C82F80916A -:10455000EB01813079F018F08230E9F187C0E09109 -:104560000E01F0910F018081813169F0823209F0F2 -:104570007FC009C0E0910E01F0910F01808181316F -:1045800011F0823261F48C2F0E94A122811104C0AB -:104590008C2F0E94DA211DC081E090E01AC08C2F80 -:1045A0000E94A322811114C0C43179F048F4CB30A9 -:1045B00079F0C03109F060C082E08093EB0108C05F -:1045C000C93219F0C83321F057C01092EB0154C022 -:1045D00081E0817053C0C93289F118F5C43171F19D -:1045E000A8F4C73009F046C08AE08093150194E131 -:1045F0009093140193E0909313018093120188E04B -:104600008093110188E28093100134C0CE51C630EE -:1046100088F5EC2FF0E0E65DFE4F80818093EA01A3 -:1046200029C0CE34E9F020F4CB3421F56AE013C080 -:10463000C13579F0C235F1F461E00DC08091EA0135 -:10464000882319F01092EA0115C081E08093EB01F4 -:1046500015C061E006C08091EA010E9414210AC0E1 -:104660006AE08091EA010E948A2104C01092EB0165 -:1046700080E004C081E002C080E0ABCFCF9108951C -:10468000E1E8F0E0808188608083808181608083C0 -:104690008FB7F89493E09093890090ED9093880001 -:1046A0008FBF0895EFE6F0E08081826080830895F7 -:1046B000EFE6F0E080818D7F80830895EFE6F0E003 -:1046C000908182E08927808308951F920F920FB610 -:1046D0000F9211242F933F934F935F936F937F9388 -:1046E0008F939F93AF93BF93EF93FF938091EC01D0 -:1046F0009091ED0101969093ED018093EC01811171 -:1047000003C082E00E940A0AE091ED01E695E69579 -:10471000F0E0E65FF94FE4918091EC018E1303C065 -:1047200080E00E940A0AFF91EF91BF91AF919F91A3 -:104730008F917F916F915F914F913F912F910F904A -:104740000FBE0F901F90189504D06894B1118DC0C2 -:10475000089570D088F09F5790F0B92F9927B751DE -:10476000A0F0D1F0660F771F881F991F1AF0BA9535 -:10477000C9F712C0B13081F077D0B1E0089574C0AC -:10478000672F782F8827B85F39F0B93FCCF386952B -:1047900077956795B395D9F73EF490958095709588 -:1047A00061957F4F8F4F9F4F0895E89409C097FB05 -:1047B0003EF490958095709561957F4F8F4F9F4FF8 -:1047C0009923A9F0F92F96E9BB279395F69587953C -:1047D00077956795B795F111F8CFFAF4BB0F11F4FF -:1047E00060FF1BC06F5F7F4F8F4F9F4F16C08823A6 -:1047F00011F096E911C0772321F09EE8872F762FDC -:1048000005C0662371F096E8862F70E060E02AF01C -:104810009A95660F771F881FDAF7880F9695879508 -:1048200097F9089557FD9058440F551F59F05F3F71 -:1048300071F04795880F97FB991F61F09F3F79F0C2 -:1048400087950895121613061406551FF2CF469544 -:10485000F1DF08C0161617061806991FF1CF8695C6 -:104860007105610508940895E894BB2766277727AA -:10487000CB0197F908950BD078C069D028F06ED09D -:1048800018F0952309F05AC05FC01124EECFCADF9B -:10489000A0F3959FD1F3950F50E0551F629FF00153 -:1048A000729FBB27F00DB11D639FAA27F00DB11DAC -:1048B000AA1F649F6627B00DA11D661F829F222735 -:1048C000B00DA11D621F739FB00DA11D621F839FBC -:1048D000A00D611D221F749F3327A00D611D231F92 -:1048E000849F600D211D822F762F6A2F11249F57E0 -:1048F00050408AF0E1F088234AF0EE0FFF1FBB1F03 -:10490000661F771F881F91505040A9F79E3F5105A1 -:1049100070F014C0AACF5F3FECF3983EDCF38695AD -:1049200077956795B795F795E7959F5FC1F7FE2B4C -:10493000880F911D9695879597F9089597F99F6728 -:1049400080E870E060E008959FEF80EC0895002417 -:104950000A941616170618060906089500240A94E4 -:1049600012161306140605060895092E0394000C6A -:1049700011F4882352F0BB0F40F4BF2B11F460FFF9 -:1049800004C06F5F7F4F8F4F9F4F089597FB072E97 -:1049900016F4009407D077FD09D00E94E02407FCAC -:1049A00005D03EF4909581959F4F0895709561953F -:1049B0007F4F0895EE0FFF1F0590F491E02D0994AD -:1049C000AA1BBB1B51E107C0AA1FBB1FA617B70735 -:1049D00010F0A61BB70B881F991F5A95A9F7809551 -:1049E0009095BC01CD010895F999FECF92BD81BD8E -:1049F000F89A992780B50895A8E1B0E042E050E028 -:104A00000C941C25262FF999FECF92BD81BDF89AF2 -:104A1000019700B4021639F01FBA20BD0FB6F89402 -:104A2000FA9AF99A0FBE08950196272F0E9403253E -:104A30000C940225DC01CB01FC01F999FECF06C0E4 -:104A4000F2BDE1BDF89A319600B40D92415050404C -:084A5000B8F70895F894FFCFB8 -:104A580002200C0A9A0A770A430A0F0A0101C801C0 -:104A680028080A03140A3F4D3639CB057E05480548 -:104A78000F05A204BB04D404ED04010203040506D7 -:044A88000708090012 -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/colemak/compiled.hex b/keyboards/ergodox_ez/keymaps/colemak/compiled.hex deleted file mode 100644 index e3ce9a68f..000000000 --- a/keyboards/ergodox_ez/keymaps/colemak/compiled.hex +++ /dev/null @@ -1,1158 +0,0 @@ -:100000000C947A020C94BE020C94BE020C94BE02B4 -:100010000C94BE020C94BE020C94BE020C94BE0260 -:100020000C94BE020C94BE020C94620D0C94340E1F -:100030000C94BE020C94BE020C94BE020C94BE0240 -:100040000C94BE020C943E220C94BE020C94BE0290 -:100050000C94BE020C94D11B0C94BE020C94BE02F4 -:100060000C94BE020C94BE020C94BE020C94BE0210 -:100070000C94BE020C94BE020C94BE020C94BE0200 -:100080000C94BE020C94BE020C94BE020C94BE02F0 -:100090000C94BE020C94BE020C94BE020C94BE02E0 -:1000A0000C94BE020C94BE020C94BE02A10EC30EB0 -:1000B000B10FC30EB10F080F2B0FB10F800F930FAD -:1000C0006212621291129112C712E71218141814D8 -:1000D000F2121814A213A2130914181418141214EB -:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300 -:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0 -:10010000C113CE13D513DC13E6130000F0A12E00AB -:100110004C002A00E100354100001E0014000400DC -:100120001D7134004D001F001A0015001B00E10472 -:100130002A00200009001600060050002C002100B3 -:100140001300170019004F004A0022000A000700A0 -:10015000050000006574500001540000007F00009D -:10016000E3004F000154000000770000E20023008C -:100170000D000B000E000000297124000F0011007B -:10018000100052004B0025001800080036005100F6 -:10019000280026001C000C0037002F002B00270031 -:1001A00033001242387130004E002D00310034000F -:1001B000E500C10000000100010001000100010094 -:1001C00000003A001E0220022202010001003B0052 -:1001D0001F0221022302010001003C002F0226021F -:1001E0002F00010001003D00300227023000010015 -:1001F00001003E003102350035020000010001001F -:1002000001000000010000000100010001000000E9 -:100210000100000001003F005200510024020000D4 -:1002200001004000240021001E00010001004100E7 -:10023000250022001F003700010042002600230095 -:10024000200027000100430025022E0231002E006D -:100250000100440045000100010001000000010010 -:100260000100010001000100000001000100010087 -:1002700001000100010001000100F2000100010085 -:1002800001000100F000F1000100F4000100010094 -:100290000100F3000100F500010001000100010070 -:1002A0000100000001000100010000000100000049 -:1002B0000100010001000000010000000100010038 -:1002C0000100010001000000010001000100010027 -:1002D0000100A9000100010001000100AC00AA001A -:1002E000B600010001000100AB00A8000100010000 -:1002F0000100010001000100010001000100AE0049 -:1003000001000100000016034500720067006F0045 -:1003100044006F007800200045005A0000001603DA -:100320004500720067006F0044006F0078002000F5 -:1003300045005A0000000403090409026D0004018D -:1003400000A0FA09040000010301010009211101C4 -:100350000001223F000705810308000A090401008B -:100360000103010200092111010001224D000705CE -:10037000820308000A0904020001030000000921A9 -:10038000110100012236000705830308000A090451 -:1003900003000103000000092111010001223900BE -:1003A000070584031000011201100100000008ED90 -:1003B000FE071301000102000105010906A1010564 -:1003C0000719E029E7150025019508750181020547 -:1003D000081901290595057501910295017503918B -:1003E0000105071900297715002501957875018108 -:1003F00002C005010980A101850216010026B7008F -:100400001A01002AB700751095018100C0050C097A -:1004100001A1018503160100269C021A01002A9CF5 -:1004200002751095018100C005010902A1010901B1 -:10043000A10005091901290515002501950575017A -:10044000810295017503810105010930093115818A -:10045000257F95027508810609381581257F95014C -:1004600075088106050C0A38021581257F950175EE -:10047000088106C0C005010906A101050719E02988 -:10048000E715002501950875018102950175088120 -:100490000105081901290595057501910295017558 -:1004A0000391010507190029FF150025FF95067521 -:1004B000088100C0000000000000000000000001F2 -:1004C0000204060A0F17202C3A4A5D71879DB3C7B4 -:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF -:1004E0003A2C20170F0A0604020100000000000049 -:1004F0000000000011241FBECFEFDAE0DEBFCDBF49 -:1005000004B603FE24C08091FB019091FC01A091F0 -:10051000FD01B091FE018730904BA740B04BB9F47C -:100520001092FB011092FC011092FD011092FE014D -:1005300014BE84B7877F84BF88E10FB6F894809398 -:100540006000109260000FBEE0E0FFE3099511E04B -:10055000A0E0B1E0EAE0F8E402C005900D92A43317 -:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0 -:10057000B107E1F70E94A60A0C9403240C94000032 -:100580001092B9008AE08093B800089594EA90939D -:10059000BC009091BC0097FFFCCF9091B900987F70 -:1005A000983021F0903111F081E008958093BB00E4 -:1005B00084E88093BC008091BC0087FFFCCF8091D1 -:1005C000B900887F883111F0803471F780E0089598 -:1005D00084E98093BC008091BC0084FDFCCF089529 -:1005E0008093BB0084E88093BC008091BC0087FFAF -:1005F000FCCF9091B900987F81E0983209F480E0B7 -:10060000089584E88093BC008091BC0087FFFCCFF4 -:100610008091BB00089580910101811115C080E493 -:100620000E94C6028093010181110CC082E10E94E8 -:10063000F00280930101811105C08FEF0E94F0024A -:10064000809301010E94E80284B1807F84B985B162 -:10065000807F85B98AB1837F8AB98BB1837F8BB95B -:100660003E98469808950E94C604809301010E9416 -:100670000B0380B38C7080BB81B3836F81BBA5E318 -:10068000B1E0E3E4F1E08EE08E0F11921D928E1343 -:10069000FCCF0C94B004BF92CF92DF92EF92FF9206 -:1006A0000F931F93CF93DF9380910101882379F0FB -:1006B000809134018F5F80933401811108C00E94C2 -:1006C000C60480930101811102C00E94580405E311 -:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407 -:1006E000E394F12CC730D10500F58091010181110F -:1006F00064C080E40E94C60280930101811112C08F -:1007000082E10E94F0028093010181110BC0C701B8 -:100710000C2E01C0880F0A94EAF780950E94F0021F -:10072000809301010E94E80248C0CA30A1F028F479 -:10073000C83059F0C93061F005C0CC3089F070F094 -:10074000CD3089F0209A289810C0219A29980DC0A0 -:10075000229A2A980AC0239A2B9807C0529A01C05D -:10076000539A5B9802C03E9A469890EA9A95F1F7A0 -:100770009FB1799902C082E001C080E091709D250F -:10078000982B7C9902C084E001C080E0892B7D9980 -:1007900002C038E001C030E0832B7E9902C020E126 -:1007A00001C020E0822B9FB19095991F9927991F36 -:1007B0009295990F907E892B0FC080910101811134 -:1007C00049C080E40E94C60280930101882379F128 -:1007D000B12C0E94E8028B2DF8019081981719F036 -:1007E0008083C09200010E940B0321960F5F1F4F70 -:1007F000CE30D10509F076CF80910001882361F1D8 -:10080000815080930001882339F08FE99FE00197A0 -:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F -:10082000CF01825F91919D938E13FCCF15C083E120 -:100830000E94F002809301018111CACF81E40E94DD -:10084000C602809301018111C3CF0E940103B82E1B -:10085000B094BFCF80E0C0CF0E94560481E0DF910A -:10086000CF911F910F91FF90EF90DF90CF90BF90AD -:100870000895E82FF0E0ED5BFE4F80810895089524 -:100880000F931F93CF93DF93C3E4D1E010E00C2FBD -:10089000025F899190E00E94F71A180F0C13F9CFAC -:1008A000812FDF91CF911F910F9108950C94260510 -:1008B00056985E9825982D9826982E9827982F98C8 -:1008C0008FEF90E0909389008093880090938B0045 -:1008D00080938A0090938D0080938C00259A2D9AA6 -:1008E0002FEF80E792E0215080409040E1F700C078 -:1008F0000000269A2E9A2FEF80E792E02150804048 -:100900009040E1F700C00000279A2F9A2FEF80E770 -:1009100092E0215080409040E1F700C0000025980F -:100920002D982FEF80E792E0215080409040E1F732 -:1009300000C0000026982E982FEF80E792E021500B -:1009400080409040E1F700C0000027982F9856980B -:100950005E9825982D9826982E9827982F98089578 -:1009600089EA8093800089E08093810024982C9804 -:100970003F988AB18F748AB96E98479A8BB1806B11 -:100980008BB9769A0E9458040C94250580E28093D6 -:1009900001018091510181110EC00E94C00281E0CD -:1009A000809351012FEF83ED90E3215080409040E0 -:1009B000E1F700C0000080E40E94C60280930101BC -:1009C00081112EC00E94F00280930101811128C084 -:1009D0000E94F00280930101811122C08FE30E94E6 -:1009E000F0028093010181111BC00E94E80280E4A3 -:1009F0000E94C60280930101811112C08CE00E9406 -:100A0000F0028093010181110BC00E94F0028093DB -:100A10000101811105C08FE30E94F0028093010162 -:100A20000E94E80280910101089561110BC0FC0150 -:100A30008281882321F085EE0E94061103C085EE95 -:100A40000E94CE1180E090E0089508956091BD016C -:100A50007091BE018091BF019091C0010E94031B63 -:100A600056985E9825982D9826982E9827982F9816 -:100A7000813019F0823021F00895259A2D9A089539 -:100A8000269A2E9A089581E0089581E008950C94A5 -:100A9000450508950F931F93CF93DF938C01FC01BD -:100AA000C081D181CE010E947C19BE010E94F30554 -:100AB000EC01B8010E944705882309F48DC0F801B4 -:100AC0008281882309F44AC080915D0181111FC091 -:100AD000C431F0E5DF0709F051C00E94490581E00B -:100AE00080935D010E949B1B90935C0180935B014E -:100AF0001092540110925601109255011092580113 -:100B00001092570110925A011092590165C08091BC -:100B10005B0190915C010E94A71B883C910570F4D9 -:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB -:100B3000D183C0838F5F809354014EC0C43880E559 -:100B4000D80721F0C538D04501F13AC0F8018281BB -:100B5000882341F01092520182E01EC0C438E0E5C3 -:100B6000DE0759F580915201811106C086E20E948C -:100B7000061186E20E94CE1182E01CC0C438F0E566 -:100B8000DF0741F3C538D045D9F4F80182818823C5 -:100B900031F01092530180E20E941D121DC080911D -:100BA0005301811106C087E20E94061187E20E946C -:100BB000CE1180E20E9424120FC0C538D04529F31F -:100BC00081E08093520180935301C801DF91CF915E -:100BD0001F910F910C94430580E0DF91CF911F91FD -:100BE0000F910895089596E0799FF001112494E5FE -:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F -:100C0000E25FFE4F859194910895880F991FFC0132 -:100C1000E657F040859194910895880F991FFC0143 -:100C2000E65FFE4F8591949108950F931F93CF93A4 -:100C3000DF93EC01811520E3920750F5C11580E2A6 -:100C4000D80708F0C3C0CB3BD10590F4C83AD10512 -:100C500008F06AC0C53AD10508F05BC0C430D105C0 -:100C600008F0D0C1219709F0CAC101E010E00AC222 -:100C7000CF3FD10511F008F0C5C1C03FD10508F044 -:100C8000A2C0CE01805E9109089708F4BBC1B7C12C -:100C9000C13090E5D90709F4A2C020F5C0318FE436 -:100CA000D80770F4C11590E4D90708F094C0C115B5 -:100CB00021E3D20708F0A3C1DD278E01106CE2C149 -:100CC000C115D04509F09BC10E9483148FEF94E3B6 -:100CD0002CE0815090402040E1F700C000000E94CD -:100CE000F61BD0C1C11597E5D90758F4C03121E5ED -:100CF000D20708F01CC1C43180E5D80708F475C0DC -:100D00007EC1CE0190578115904108F078C1DF7007 -:100D100073C1C53AD10509F477C1C63AD10509F0C6 -:100D200076C102E810E4AEC1C83AD10509F472C137 -:100D3000C93AD10509F471C1CA3AD10509F470C1A3 -:100D4000CB3AD10509F46FC1CC3AD10509F46EC193 -:100D5000CD3AD10509F46DC1C03BD10509F46CC190 -:100D6000CE3AD10509F46BC1CF3AD10509F46AC175 -:100D7000C13BD10509F469C1C23BD10509F468C181 -:100D8000C33BD10509F467C1C43BD10509F466C171 -:100D9000C53BD10509F465C1C63BD10509F464C161 -:100DA000C73BD10509F463C1C83BD10509F462C151 -:100DB000C93BD10509F461C1CA3BD10509F460C141 -:100DC00000E014E45FC18E0110655CC1CE019F702C -:100DD0000E940D0658C1DF708E01106A53C18091C8 -:100DE000DA0181608093DA014DC10E949B1D81115F -:100DF00002C00E94811D0E94B81D90E09093FB01EB -:100E00008093FA01C23080E5D80721F48091FA017D -:100E1000816086C0C43090E5D90721F48091FA0141 -:100E200082607EC0C63020E5D20721F48091FA01AD -:100E3000846076C0C83080E5D80719F48091FA0143 -:100E400027C0CA3090E5D90721F48091FA0180616A -:100E500067C0CC3020E5D20721F48091FA0180628E -:100E60005FC0CE3080E5D80721F48091FA0180641C -:100E700057C0C03190E5D90721F48091FA0180680C -:100E80004FC0C23120E5D20729F48091FA01846075 -:100E9000886046C0C33080E5D80721F48091FA010C -:100EA0008E7F3EC0C53090E5D90721F48091FA01CC -:100EB0008D7F36C0C73020E5D20721F48091FA013A -:100EC0008B7F2EC0C93080E5D80719F48091FA01D4 -:100ED00026C0CB3090E5D90721F48091FA018F7EAE -:100EE0001FC0CD3020E5D20721F48091FA018F7D1B -:100EF00017C0CF3080E5D80721F48091FA018F7BAD -:100F00000FC0C13190E5D90721F48091FA018F77A4 -:100F100007C0C331D04531F48091FA018B7F877FC0 -:100F20008093FA018091FA010E94BC1DABC08D2F05 -:100F300099278F70992781309105D9F49E012370EC -:100F4000332702C0880F991F2A95E2F79C688E010B -:100F500044E0000F111F4A95E1F700271370802B22 -:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA -:100F70002FC08230910531F4DC2FCC278E01016F18 -:100F8000106A80C08330910569F4CE01837099277F -:100F900001E010E002C0000F111F8A95E2F7C801BE -:100FA0009C680FC084309105B9F4CE0183709927F5 -:100FB00001E010E002C0000F111F8A95E2F7C8019E -:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029 -:100FD0008C010C2B1D2B56C08530910531F4DC2F74 -:100FE000CC278E01046F106A4DC0069709F04AC0E5 -:100FF000CF71DD27DC2FCC278E01106243C000E0CB -:1010000010E040C08E013EC001E810E43BC003E8A0 -:1010100010E438C002EE14E435C009EE14E432C026 -:101020000AEE14E42FC005EB14E42CC006EB14E424 -:1010300029C007EB14E426C00CEC14E423C00DEC2B -:1010400014E420C003E815E41DC00AE815E41AC042 -:1010500002E915E417C004E915E414C001E216E43E -:1010600011C003E216E40EC004E216E40BC005E270 -:1010700016E408C006E216E405C007E216E402C062 -:101080000AE216E4C801DF91CF911F910F910895F4 -:1010900096E0799FF001112494E5899FE00DF11D00 -:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149 -:1010B0009491803E9105E0F4803C910558F5813390 -:1010C000910509F46FC048F48932910509F463C0B1 -:1010D0008A32910509F46DC072C089339105E9F037 -:1010E00082389105D1F08533910509F44DC067C070 -:1010F000833E910581F138F4803E9105B9F0823E3E -:101100009105D9F05CC0863E910561F1873E91055D -:10111000A1F155C00E94050608952091FA0120FD15 -:1011200002C021FF4CC080EE90E049C08091FA01DE -:1011300080FFF9CF89E390E042C08091FA0182FFFD -:101140000EC08091FA0184FF03C080E090E037C0B8 -:1011500083EE90E034C08091FA0182FFF2CF82EEFC -:1011600090E02DC08091FA0183FF0BC08091FA01BD -:1011700084FDEBCF87EE90E022C08091FA0183FFDF -:10118000F5CF86EE90E01BC08091FA0185FF07C085 -:1011900089E290E014C08091FA0185FFF9CF85E3E0 -:1011A00090E00DC08091FA0186FF07C08AE290E0CE -:1011B00006C08091FA0186FFF9CF81E390E00E949A -:1011C0001506089508950C94E20880916E01089523 -:1011D000CF93DF9300D01F92CDB7DEB79C018091F3 -:1011E000F101843019F593E099833B832A8390932E -:1011F000E9008FEF9091E800815095FD06C095EDD4 -:101200009A95F1F700008111F5CF8091E80085FFF4 -:101210000DC040E050E063E070E0CE0101960E9416 -:10122000520B8091E8008E778093E8000F900F902A -:101230000F90DF91CF910895CF93DF9300D01F924D -:10124000CDB7DEB72091F101243021F522E02983CA -:101250009B838A8383E08093E9008FEF9091E8007D -:10126000815095FD06C095ED9A95F1F7000081112A -:10127000F5CF8091E80085FF0DC040E050E063E0CD -:1012800070E0CE0101960E94520B8091E8008E77AB -:101290008093E8000F900F900F90DF91CF91089509 -:1012A0002091F1012430F1F422E02093E9002FEFA6 -:1012B0003091E800215035FD06C035ED3A95F1F743 -:1012C00000002111F5CF2091E80025FF0BC040E080 -:1012D00050E065E070E00E94520B8091E8008E774C -:1012E0008093E8000895CF93DF93EC019091F10192 -:1012F000943009F046C080910C018823D9F0809188 -:101300000D018823B9F09093E9008FEF9091E800E8 -:10131000815095FD06C095E19A95F1F70000811185 -:10132000F5CF8091E80085FF2CC040E050E060E1FF -:1013300070E017C081E08093E9008FEF9091E800A2 -:10134000815095FD06C095ED9A95F1F70000811149 -:10135000F5CF8091E80085FF14C040E050E068E0E0 -:1013600070E0CE010E94520B8091E8008E7780934E -:10137000E80080E1FE01AEE5B1E001900D928A95B2 -:10138000E1F7DF91CF9108958091F001811109C0BB -:101390000E94E70C0E94440D8091E20084608093DB -:1013A000E20008951092F001089508950C942B2204 -:1013B0000E948C1B0E9431220E94EA0F0C94E308C9 -:1013C00042E061EC81E00E94610C42E061EC82E06D -:1013D0000E94610C42E061EC83E00E94610C42E1FA -:1013E00061EC84E00C94610C8091F301833009F48A -:1013F00055C030F4813071F0823009F48EC0089508 -:101400008A3009F47AC08B3009F460C0893009F061 -:101410009CC020C08091F201813A09F096C0809171 -:10142000E800877F8093E8008091F6019091F701B2 -:10143000892B21F460E18EE591E003C060E080E05B -:1014400090E070E00E949D0B8091E8008B77809384 -:10145000E80008958091F201813209F076C0809110 -:10146000F6019091F701009719F0039709F06DC00C -:101470008091E800877F8093E8008091E80082FDFA -:1014800005C08091F1018111F8CF5FC08091F1001A -:1014900080936E018091E8008B7753C08091F201B8 -:1014A000813A09F052C08091F6019091F701892BA1 -:1014B00009F04BC08091E800877F8093E80080911D -:1014C000E80080FFFCCF80910C0136C08091F201D2 -:1014D0008132D9F58091F6019091F701892BA9F518 -:1014E0008091E800877F8093E8000E94960C8091AD -:1014F000F40180930C010C9483148091F2018132E9 -:1015000021F58091E800877F8093E8000E94960C87 -:101510008091F50180936F0108958091F201813AE5 -:10152000A1F48091E800877F8093E8008091E80033 -:1015300080FFFCCF80916F018093F1008091E800E3 -:101540008E778093E8000C94960C089584B7877F7B -:1015500084BF88E10FB6F894809360001092600019 -:101560000FBE90E080E80FB6F894809361009093EE -:1015700061000FBE0E9439100E94E70C0E94440DCA -:101580008091E20084608093E20078940E94CA0F08 -:101590000E943B1082E091E00E94E50F0E94192218 -:1015A0008091F101853069F40E94531B8091EF0115 -:1015B0008823B1F30E947E1B882391F30E943C0B89 -:1015C000EFCF0E944110ECCF292F33272330310574 -:1015D000C9F064F42130310581F02230310509F081 -:1015E00043C08DE690E02AE333E042C0213231056A -:1015F000F1F02232310541F137C082E190E027EA73 -:1016000033E036C099278130910541F08230910551 -:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4 -:1016200002C0E6E0F3E0849190E09F0121C06430C5 -:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5 -:10164000318189E090E014C0643070F470E0FB01F7 -:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47 -:10166000FE4F808190E004C080E090E020E030E018 -:10167000FA0131832083089580E189BD82E189BD2B -:1016800009B400FEFDCF8091D8008F7D8093D800F3 -:101690008091E00082608093E0008091E00081FD15 -:1016A000FCCF0895CF92DF92EF92FF920F931F939A -:1016B000CF93DF93EC018B016A010E94B50C81117D -:1016C00033C0C114D10439F0F60180819181081B27 -:1016D000190BC80FD91FE12CF12C0115110519F1B7 -:1016E0008091E80085FD16C08091E8008E77809398 -:1016F000E800C114D10449F0F60180819181E80E1F -:10170000F91EF182E08285E00FC00E94B50C8823AB -:1017100021F30AC089918093F10001501109FFEF74 -:10172000EF1AFF0ADACF80E0DF91CF911F910F917E -:10173000FF90EF90DF90CF9008952091F8013091C5 -:10174000F9012617370748F06115710539F4209122 -:10175000E8002E772093E80001C0B90140E0611550 -:101760007105A9F12091F101222309F443C025302C -:1017700009F442C02091E80023FD40C02091E80018 -:1017800022FD32C02091E80020FFE9CF4091F30014 -:101790002091F20030E0342BFC01CF01611571057E -:1017A00059F02830310540F481918093F100615067 -:1017B00071092F5F3F4FF1CF41E02830310509F02B -:1017C00040E02091E8002E772093E800C8CF411137 -:1017D000C9CF0AC08091F101882361F0853061F0A2 -:1017E0008091E80083FD0AC08091E80082FFF2CF7B -:1017F00080E0089582E0089583E0089581E00895EF -:101800002091F8013091F9012617370748F061154A -:10181000710539F42091E8002E772093E80001C08B -:10182000B901FC0120E06115710591F18091F10190 -:10183000882309F440C0853009F43FC08091E80056 -:1018400083FD3DC08091E80082FD2FC08091E800BB -:1018500080FFE9CF2091F3008091F20090E0922B7D -:101860006115710559F08830910540F42491209359 -:10187000F1003196615071090196F2CF21E008978D -:1018800009F020E08091E8008E778093E800CBCFCC -:101890002111CCCF0AC08091F101882361F08530FD -:1018A00061F08091E80083FD0AC08091E80082FF2A -:1018B000F2CF80E0089582E0089583E0089581E00A -:1018C0000895982F973058F59093E900981739F0BC -:1018D0007091EC002091ED005091F00003C0242F96 -:1018E000762F50E021FF19C03091EB003E7F3093FE -:1018F000EB003091ED003D7F3093ED003091EB0037 -:1019000031603093EB007093EC002093ED00509326 -:10191000F0002091EE0027FF07C09F5FD3CF8F70AC -:101920008093E90081E0089580E008958091F201BC -:1019300087FF11C08091E80082FD05C08091F10110 -:101940008111F8CF11C08091E8008B770BC0809196 -:10195000F101882349F08091E80080FFF8CF809161 -:10196000E8008E778093E80008952091E40030919C -:10197000E50095E64091EC00842F817040FF22C085 -:101980008091E80080FD1CC08091F101882391F0D6 -:10199000853091F08091EB0085FD10C04091E4000E -:1019A0005091E5004217530729F39A01915011F71E -:1019B00084E0089582E0089583E0089581E0089529 -:1019C00080E008954091E80042FFDECF08950E9434 -:1019D000550D0E945D0DE0EEF0E080818160808316 -:1019E000E8EDF0E080818F77808319BCA7EDB0E04F -:1019F0008C918E7F8C9380818F7E80831092F001FA -:101A000008950F931F93CF93DF930E94550D0E946B -:101A10005D0DC8EDD0E088818F77888388818068EC -:101A2000888388818F7D888319BC1092F101109280 -:101A3000ED011092EF011092EE0100EE10E0F801BE -:101A400080818B7F808388818160888342E060E031 -:101A500080E00E94610CE1EEF0E080818E7F808367 -:101A6000E2EEF0E080818160808380818860808305 -:101A7000F80180818E7F8083888180618883DF91F7 -:101A8000CF911F910F910895E8EDF0E080818F7E56 -:101A90008083E7EDF0E080818160808384E082BF15 -:101AA00081E08093F0010C94010DE8EDF0E080817D -:101AB0008E7F80831092E20008951092DA001092D7 -:101AC000E10008951F920F920FB60F9211242F93E9 -:101AD0003F934F935F936F937F938F939F93AF93B6 -:101AE000BF93EF93FF938091E10082FF0BC0809141 -:101AF000E20082FF07C08091E1008B7F8093E100CC -:101B00000E94C90F8091DA0080FF1FC08091D80029 -:101B100080FF1BC08091DA008E7F8093DA00809175 -:101B2000D90080FF0DC080E189BD82E189BD09B483 -:101B300000FEFDCF81E08093F1010E94C40905C041 -:101B400019BC1092F1010E94D2098091E10080FF3E -:101B500019C08091E20080FF15C08091E2008E7F65 -:101B60008093E2008091E20080618093E2008091A6 -:101B7000D80080628093D80019BC85E08093F10181 -:101B80000E94D6098091E10084FF30C08091E2007C -:101B900084FF2CC080E189BD82E189BD09B400FECB -:101BA000FDCF8091D8008F7D8093D8008091E10097 -:101BB0008F7E8093E1008091E2008F7E8093E2002F -:101BC0008091E20081608093E2008091ED018823A2 -:101BD00011F084E007C08091E30087FD02C081E03E -:101BE00001C083E08093F1010E94D8098091E10057 -:101BF00083FF29C08091E20083FF25C08091E1002E -:101C0000877F8093E10082E08093F1011092ED01E3 -:101C10008091E1008E7F8093E1008091E2008E7FD1 -:101C20008093E2008091E20080618093E20042E0D4 -:101C300060E080E00E94610C8091F00088608093F9 -:101C4000F0000E94D509FF91EF91BF91AF919F9154 -:101C50008F917F916F915F914F913F912F910F9055 -:101C60000FBE0F901F9018951F920F920FB60F92F4 -:101C700011242F933F934F935F936F937F938F9391 -:101C80009F93AF93BF93CF93DF93EF93FF93C09155 -:101C9000E900CF708091EC00D82FD17080FDD0E8A2 -:101CA0001092E9008091F000877F8093F000789493 -:101CB0000E94780E1092E9008091F0008860809375 -:101CC000F000CD2BCF70C093E900FF91EF91DF9131 -:101CD000CF91BF91AF919F918F917F916F915F91C4 -:101CE0004F913F912F910F900FBE0F901F9018951D -:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3 -:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115 -:101D1000F10091938E13FBCF0E94F4098091E800AB -:101D200083FF1FC18091F2019091F301492F50E090 -:101D30004A30510508F015C1FA01EA5AFF4F0C94D8 -:101D4000B323803881F0823809F00BC18091F6010D -:101D50008F708093E9008091EB0085FB882780F9E4 -:101D60001092E90006C08091EE019091EF0191116F -:101D700082609091E800977F9093E8008093F10053 -:101D80001092F100C8C0282F2D7F09F0EAC08823E7 -:101D900019F0823061F0E5C08091F401813009F0E2 -:101DA000E0C0933009F080E08093EF012BC0809178 -:101DB000F401811127C08091F6018F7009F4D1C020 -:101DC0008093E9002091EB0020FF1CC0933021F4A8 -:101DD0008091EB00806214C09091EB009061909331 -:101DE000EB0021E030E0A90102C0440F551F8A95A5 -:101DF000E2F74093EA001092EA008091EB008860DD -:101E00008093EB001092E9008091E800877F86C004 -:101E10008111A7C01091F4011F778091E3008078B1 -:101E2000812B8093E3008091E800877F8093E80016 -:101E30000E94960C8091E80080FFFCCF8091E30027 -:101E400080688093E300111102C082E001C083E04A -:101E50008093F10186C08058823008F082C0809162 -:101E6000F4019091F5018C3D53E0950779F583E0FD -:101E70008A838AE289834FB7F894DE01139620E0C3 -:101E80003EE051E2E32FF0E050935700E49120FF51 -:101E900003C0E295EF703F5FEF708E2F90E0EA3065 -:101EA00010F0C79601C0C0968D939D932F5F24318B -:101EB00049F74FBF8091E800877F8093E8006AE28E -:101EC00070E0CE0101960E949D0B14C0AE014F5FE1 -:101ED0005F4F6091F6010E94E40ABC01009709F48B -:101EE00040C09091E800977F9093E80089819A81A3 -:101EF0000E94000C8091E8008B778093E80031C04D -:101F0000803879F58091E800877F8093E8008091A0 -:101F1000ED018093F1008091E8008E778093E800D6 -:101F20000E94960C1EC081111CC09091F401923049 -:101F3000C0F48091E800877F8093E8009093ED01E2 -:101F40000E94960C8091ED01811106C08091E30002 -:101F500087FD02C081E001C084E08093F1010E940E -:101F6000E0098091E80083FF0AC08091E800877F44 -:101F70008093E8008091EB0080628093EB00AA964A -:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A -:101F900008950895CF938091F1018823A1F0C09115 -:101FA000E900CF709091EC00892F817090FD80E85E -:101FB000C82B1092E9008091E80083FD0E94780E02 -:101FC000CF70C093E900CF910895909375018093ED -:101FD00074010895E0917401F0917501309721F03A -:101FE0000190F081E02D099480E00895E091740162 -:101FF000F0917501309721F00280F381E02D099472 -:102000000895E0917401F0917501309721F00480FA -:10201000F581E02D099408952091720130917301AA -:102020008217930771F09093730180937201E0918E -:102030007401F0917501309721F00680F781E02D51 -:1020400009940895209170013091710182179307CE -:1020500071F09093710180937001E0917401F0919F -:102060007501309721F00084F185E02D09940895E1 -:1020700008950C9438100E94921B0E9433030C9414 -:10208000541C9F92AF92BF92CF92DF92EF92FF9239 -:102090000F931F93CF93DF9300D000D000D0CDB724 -:1020A000DEB70E944B030DE010E0AA24A394B12CEC -:1020B000902E802F0E943904980129583E4F6901C3 -:1020C000F901F080F826A1F40150110988F78FEF8B -:1020D00089838A831B820E949B1B8160782F9D834A -:1020E0008C8349815A816B818D810E94D8102FC0C9 -:1020F0009091DA0191FF04C08E830E943F048E818B -:1021000025E030E0A501022E01C0440F0A94EAF751 -:10211000E42E4F21C1F029839A828E2191E009F4A7 -:1021200090E09B830E949B1B8160782F9D838C8312 -:1021300049815A816B818D810E94D810F60180817E -:10214000E826E08204C021503109E0F6BDCF0E94AC -:102150003B1F109176010E94EA0F1817B9F00E94F8 -:10216000EA0F8093760126960FB6F894DEBF0FBE75 -:10217000CDBFDF91CF911F910F91FF90EF90DF9036 -:10218000CF90BF90AF909F900C94E30826960FB627 -:10219000F894DEBF0FBECDBFDF91CF911F910F919D -:1021A000FF90EF90DF90CF90BF90AF909F900895F9 -:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82 -:1021C0000FBECDBF4F83588769877A878B87DE0123 -:1021D000119686E0FD0111928A95E9F785E0FE01EE -:1021E000379601900D928A95E1F749815A816B816A -:1021F0007C818D819E810E9421172B960FB6F894C9 -:10220000DEBF0FBECDBFDF91CF910895CF9388235E -:1022100009F4C2C0C82F823859F40E94EA0F81FD28 -:10222000BBC089E30E94FB190E94C81A89E30CC055 -:10223000833879F40E94EA0F80FDAEC083E50E94E6 -:10224000FB190E94C81A83E50E943D1ACF910C9495 -:10225000C81A843859F40E94EA0F82FD9DC087E4B1 -:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6 -:10227000813A48F48C2F0E947E2181118DC08C2FD1 -:102280000E94FB19E3CF80E28C0F883048F4C770BE -:1022900081E001C0880FCA95EAF70E94811AD6CF63 -:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB -:1022B00083E890E005C081E890E002C082E890E009 -:1022C000CF910C940C1088E58C0F833108F064C01A -:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118 -:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186 -:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106 -:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173 -:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB -:1023200038C082EE90E035C089EE90E032C08AEE8F -:1023300090E02FC085EB90E02CC086EB90E029C0A8 -:1023400087EB90E026C08CEC90E023C08DEC90E011 -:1023500020C083E891E01DC08AE891E01AC082E9BC -:1023600091E017C084E991E014C081E292E011C0CD -:1023700083E292E00EC084E292E00BC085E292E03C -:1023800008C086E292E005C087E292E002C08AE2DD -:1023900092E0CF910C942210CF910895882309F4F4 -:1023A0004BC0823859F40E94EA0F81FF45C089E38F -:1023B0000E94FB190E94C81A89E30CC0833871F48B -:1023C0000E94EA0F80FF38C083E50E94FB190E943B -:1023D000C81A83E50E943D1A0C94C81A843859F42F -:1023E0000E94EA0F82FF28C087E40E94FB190E9426 -:1023F000C81A87E4EFCF9CEF980F913A58F390E218 -:10240000980F983050F4877091E001C0990F8A9529 -:10241000EAF7892F0E94871ADFCF9BE5980F933048 -:1024200020F480E090E00C940C10885A833120F462 -:1024300080E090E00C9422100895882321F00E94FF -:10244000811A0C94C81A0895882321F00E94871AD3 -:102450000C94C81A08957F928F929F92AF92BF9268 -:10246000CF92DF92EF92FF920F931F93CF93DF9360 -:102470001F92CDB7DEB77C01C62E772EFC010581F9 -:1024800002950F70128111110E949E1A0E94F41978 -:10249000882379F0112369F080E28C0D883048F0B0 -:1024A00082E00E94DD190E94F41991E0D82ED9260D -:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C -:1024C0000C94B323872D807F072D0F70882311F084 -:1024D0000295007F112389F0002309F490C180E266 -:1024E0008C0D883020F4802F0E94811A03C0802F29 -:1024F0000E94911A0E94C81A82C18C2D0E94CE118E -:10250000002309F495C180E28C0D883020F4802FDF -:102510000E94871A03C0802F0E94971A0E94C81A2F -:1025200087C1972D907F872D8F70903211F0829503 -:10253000807FCC2021F0F1E0CF16B1F01EC0112336 -:1025400049F0002309F414C1013009F011C10E94BF -:10255000B11A6EC1002319F0013009F469C18983F1 -:102560000E94B41A89810AC1112321F0023008F0B7 -:102570005FC1FEC001115CC101C1112321F0002324 -:1025800009F4F6C03CC1002309F4F8C03EC1872D10 -:1025900086958695837090E0009719F0019761F019 -:1025A00047C1112321F08C2D972D937002C080E03C -:1025B00090E00E940C103CC1112321F08C2D972D2E -:1025C000937002C080E090E00E94221031C18C2DF7 -:1025D000112319F00E94431E02C00E94AB1E0E94EC -:1025E000301F26C1872D837009F052C0111120C100 -:1025F0008C2D829586958770880F880F9C2D9F70F3 -:10260000892E912CA12CB12C082E04C0880C991C69 -:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041 -:1026200020E030E0B901A80104C0440F551F661F27 -:10263000771F8A95D2F7CB01BA0160957095809586 -:10264000909503C060E070E0CB01272D269526957C -:10265000237030E02230310569F02330310589F0F4 -:10266000682979298A299B292130310571F00E9436 -:102670006918DEC0682979298A299B290E94851852 -:10268000D7C00E946918C501B4010E944D18D0C07E -:10269000112319F0872D817001C08695882309F4D4 -:1026A000C7C08C2D829586958770880F880F9C2DCA -:1026B0009F70892E912CA12CB12C082E04C0880C5F -:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC -:1026D00010E020E030E0B901A80104C0440F551F0C -:1026E000661F771F8A95D2F7CB01BA016095709566 -:1026F0008095909503C060E070E0CB01272D269572 -:1027000026952370422F50E04230510569F0433046 -:10271000510589F0682979298A299B294130510579 -:1027200071F00E94431984C0682979298A299B295C -:102730000E945F197DC00E944319C501B4010E9427 -:10274000271976C08C2D90E0FC01E05EF109E5319F -:10275000F10508F050C0E059FF4F0C94B3230C2D45 -:102760000F70872D8F71112331F00E94C018802FB8 -:102770000E941D125DC00E94E118802F0E94241249 -:1027800057C0112339F0011153C0872D8F710E945A -:1027900006194EC0023008F04BC0F7CF112339F0B4 -:1027A000872D8F710E94C01843C01123C9F3872D54 -:1027B0008F710E94E1183CC0112329F0872D8F7181 -:1027C0000E94AB1835C00E94A11832C0112351F0ED -:1027D000172D1F71812F0E94C01863E0812F0E9466 -:1027E000D41926C081E00E94DD19023008F182E090 -:1027F0000E94DD191DC0112331F0002389F28C2DB8 -:102800000E94061115C0002391F28C2D0E94CE115A -:102810000FC0472D4F706C2DC7010E9415050E94F7 -:10282000C51706C0472D4F706C2DC7010E94F205D9 -:10283000DD20F9F00E94D01980FD1BC0F701128243 -:102840000E94CA190E94C018C7010E9448140E9421 -:10285000CA190F90DF91CF911F910F91FF90EF90C8 -:10286000DF90CF90BF90AF909F908F907F900C940F -:10287000E1180F90DF91CF911F910F91FF90EF9092 -:10288000DF90CF90BF90AF909F908F907F900895F2 -:102890000F931F93CF93DF93EC01888199812B8154 -:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B -:1028B0000E944A05882371F0688179818A810E948B -:1028C000C6198C010E947B190E944218B801CE01E2 -:1028D0000E942B12DF91CF911F910F9108950E94BA -:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471 -:1028F000E11F0E94301F80E090E00E940C1080E0F9 -:1029000090E00C9422100E948E1A0C946F140E9476 -:10291000BB19292F22952F7030E02C3031054CF453 -:102920002A3031056CF42250310922303105A8F4E7 -:1029300007C02C30310569F02F30310551F00DC042 -:10294000803F69F018F4803E40F409C0843F29F4C8 -:1029500006C093FB882780F9089580E0089581E000 -:102960000895CF93DF9300D000D01F92CDB7DEB78C -:102970000F900F900F900F900F90DF91CF910895CF -:10298000CF93DF9300D000D000D0CDB7DEB726962E -:102990000FB6F894DEBF0FBECDBFDF91CF91089583 -:1029A0001F93CF93DF93C091850116E0809186013C -:1029B000C81799F0D0E01C9FF0011D9FF00D112465 -:1029C000E957FE4F408151816281738184819581F5 -:1029D0000E94C0142196C770E9CFDF91CF911F915B -:1029E00008954091B7015091B8016091B90170917B -:1029F000BA018091BB019091BC010C94C0148091EC -:102A0000BC0182958F7009F054C08091B901882370 -:102A100009F44FC080918501A09186016091B701B2 -:102A20007091B8014091BA015091BB01B6E08A178C -:102A300009F43FC090E041155105C1F17F3F11F409 -:102A40006F3FA1F1B89FF001B99FF00D1124E95734 -:102A5000FE4F218172132AC02081621327C0228178 -:102A6000211124C0238134812417350710F421500B -:102A70003109241B350B283C3105C0F42091BC01E1 -:102A80002F7020612093BC0126E0289FF001299F30 -:102A9000F00D1124E457FE4F80818F708061808398 -:102AA00087EB91E00E9448140C94D0140196877033 -:102AB000BECF0895CF92DF92EF92FF920F931F93B4 -:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32 -:102AD0000FBECDBF8C0185E0F801DE011D9601908F -:102AE0000D928A95E1F7D8014C9111965C9111975E -:102AF00012966C9112971396CD90DC9014973091AA -:102B0000B7017091B8018091BA019091BB01009713 -:102B100009F46BC17F3F19F43F3F09F466C1E090AF -:102B2000B901EE2009F4C0C02091BC01C816D90635 -:102B300028F0F601E81BF90BCF0104C080959095B1 -:102B40008C0D9D1DFF24F394883C910578F0F12CA9 -:102B5000207F09F0C6C07C2DD98AC88A89890E9445 -:102B6000B11487EB91E00E944814B1C0822F807F9E -:102B700009F046C0751314C0341312C0611110C09F -:102B80002F7020612093BC010E94F11487EB91E02B -:102B90000E9448148091BC01D80115968C932EC0D8 -:102BA000CD2819F15F3F11F44F3FF9F0F62E611176 -:102BB0001CC0809185012091860136E0821709F4BE -:102BC0005AC090E0389FF001399FF00D1124E95769 -:102BD000FE4F7181571306C07081471303C0728185 -:102BE000711103C001968770E9CFF62E662309F4B0 -:102BF00018C18091BC0181608093BC01F12C11C18E -:102C0000751308C0341306C0611104C08091BC0163 -:102C1000D801C3C04D875E878D859E856A8B0E94D3 -:102C200087146A898823E1F16623D1F12091BC01E0 -:102C3000822F82958F7090E0029774F08091B70197 -:102C40009091B80198878F831986DB86CA862C8776 -:102C5000CE0107960E94481486E0F801A7EBB1E088 -:102C600001900D928A95E1F70E94FF140E94F114E1 -:102C7000FF24F394D6C04D875E878D859E850E9484 -:102C8000BB19292F22952F7030E0223031050CF02E -:102C9000BCC09F7009F0B6C0805E883008F4C1C027 -:102CA000C8010E944814E4CFC816D90608F453C0DE -:102CB000F601E81BF90BCF01883C910508F450C0E0 -:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E -:102CD000F1E086E0DF011D928A95E9F70E94F11488 -:102CE000A0C0751314C0341312C0611110C08091BC -:102CF000BC01F8018583C8010E94481486E0E7EB17 -:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C -:102D10005E878D859E856A8B0E9487146A898823C9 -:102D200009F4BECF662309F4BBCF2091BC01822FEA -:102D300082958F7090E002970CF48ECF8091B7014E -:102D40009091B8019A8389831B82DD82CC822E8385 -:102D5000CE0101967FCF809590958C0D9D1DACCFB7 -:102D6000F62E662309F49CCF75132EC034132CC0A5 -:102D70002091BC0120FD1FC0822F82958F70D9F059 -:102D8000D80115962C9315978F3049F08F5F982FA7 -:102D90009295907F822F8F70892B15968C93C80106 -:102DA0000E94481486E0F801A7EBB1E001900D9273 -:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7 -:102DC0000D928A95E1F72DC04D875E878D859E8592 -:102DD0000E948714811140CF8091BC018160809353 -:102DE000BC01C8010E9448141CC0662309F458CFD6 -:102DF0004D875E878D859E850E948714882309F400 -:102E00004FCF2ACF811148CF0CC0243031050CF0B0 -:102E100047CF9F7009F440CFF8019581907F09F06A -:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D -:102E3000DF91CF911F910F91FF90EF90DF90CF9096 -:102E400008951F93CF93DF93CDB7DEB72C970FB6BE -:102E5000F894DEBF0FBECDBF4F83588769877A874E -:102E60008B879C87CE0107960E945A15882369F0AC -:102E70008F8198852A853B85232BF1F19F3F09F0AF -:102E800063C08F3F09F060C037C086E0FE0137960F -:102E9000DE01119601900D928A95E1F76F81788598 -:102EA000EA85FB85309741F17F3F11F46F3F21F1B7 -:102EB0002091860130E0C9010196877099274091E1 -:102EC000850150E08417950709F447C069837A8328 -:102ED000FD83EC8396E0929FD001939FB00D112467 -:102EE000A957BE4FFE01319601900D929A95E1F7D8 -:102EF000809386010E94D01416E080918501909104 -:102F000086018917C1F1189FC001112489579E4F6E -:102F10000E945A15882379F1E09185011E9FF001E6 -:102F20001124E957FE4F4081518162817381848170 -:102F300095810E94C0148091850190E00196877070 -:102F4000992780938501D9CF4F81588569857A85E6 -:102F50008B859C850E94C014CFCF0E948314109251 -:102F6000860110928501E7EBF1E086E0DF011D921A -:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45 -:102F8000CDBFDF91CF911F910895EF92FF920F93E4 -:102F90001F93CF93DF938C01009709F46CC0F12C41 -:102FA000EE24E394E8012196F8018491843740F4FB -:102FB000843008F051C0813081F0823019F15BC05B -:102FC000853709F444C0A8F19CE7980F903708F0C2 -:102FD00052C08F770E94CE1141C00E5F1F4FFE017D -:102FE000C49180E28C0F883048F4C7708E2D01C0E8 -:102FF000880FCA95EAF70E94A11A14C08C2F0E946C -:1030000006112DC00E5F1F4FFE01C49180E28C0F90 -:10301000883058F4C7708E2D01C0880FCA95EAF722 -:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3 -:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3 -:103040009FE00197F1F700C00000C150F6CF0E5F7E -:103050001F4FFE01F49003C00E9406118E018F2DB8 -:10306000882309F49FCFEFE9FFE03197F1F700C023 -:1030700000008150F5CFDF91CF911F910F91FF900C -:10308000EF90089508956093C1017093C2018093F9 -:10309000C3019093C4010C946F140F931F9300917C -:1030A000C1011091C2012091C3013091C401DC0122 -:1030B000CB01802B912BA22BB32B8093C10190933A -:1030C000C201A093C301B093C4011F910F910C944E -:1030D0006F140F931F930091C1011091C2012091B1 -:1030E000C3013091C401DC01CB0180239123A223D1 -:1030F000B3238093C1019093C201A093C301B09305 -:10310000C4011F910F910C946F140F931F930091A2 -:10311000C1011091C2012091C3013091C401DC01B1 -:10312000CB0180279127A227B3278093C1019093D9 -:10313000C201A093C301B093C4011F910F910C94DD -:103140006F141092BD011092BE011092BF01109237 -:10315000C0010C946F1441E050E060E070E004C0E6 -:10316000440F551F661F771F8A95D2F74093BD0104 -:103170005093BE016093BF017093C0010C946F1413 -:1031800041E050E060E070E004C0440F551F661F4E -:10319000771F8A95D2F78091BD019091BE01A091D1 -:1031A000BF01B091C001482B592B6A2B7B2B409358 -:1031B000BD015093BE016093BF017093C0010C9498 -:1031C0006F1441E050E060E070E004C0440F551F10 -:1031D000661F771F8A95D2F7409550956095709538 -:1031E0008091BD019091BE01A091BF01B091C0013D -:1031F000482359236A237B234093BD015093BE018A -:103200006093BF017093C0010C946F1441E050E0D3 -:1032100060E070E004C0440F551F661F771F8A9559 -:10322000D2F78091BD019091BE01A091BF01B091F4 -:10323000C001482759276A277B274093BD01509337 -:10324000BE016093BF017093C0010C946F140F9383 -:103250001F930091BD011091BE012091BF013091DB -:10326000C001DC01CB01802B912BA22BB32B8093CF -:10327000BD019093BE01A093BF01B093C0011F9107 -:103280000F910C946F140F931F930091BD01109137 -:10329000BE012091BF013091C001DC01CB01802330 -:1032A0009123A223B3238093BD019093BE01A093E9 -:1032B000BF01B093C0011F910F910C946F140F9335 -:1032C0001F930091BD011091BE012091BF0130916B -:1032D000C001DC01CB0180279127A227B32780936F -:1032E000BD019093BE01A093BF01B093C0011F9197 -:1032F0000F910C946F140895CF92DF92EF92FF928A -:103300000F931F93CF93DF938C01C090C101D09096 -:10331000C201E090C301F090C4018091BD01909181 -:10332000BE01A091BF01B091C001C82AD92AEA2AE2 -:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520 -:10334000A795979587950A94D2F780FF06C0B80194 -:103350008C2F0E944808019721F4219760F780E0A4 -:1033600001C08C2FDF91CF911F910F91FF90EF90B3 -:10337000DF90CF900895CF93DF93EC010E947C19EA -:10338000BE010E944808DF91CF910895CB010E94B1 -:10339000BB1908958091C5018595859585950895FA -:1033A0008091C5018770089598E0899F900111244C -:1033B000262B2093C5010C94C0182091C50180953F -:1033C00082238093C501982F977069F430E0482FCD -:1033D000552747FD50952417350729F08595859584 -:1033E00085950C94E11808959091C501977081E03E -:1033F00009F480E0089590910C01992321F09091B7 -:103400000D01911109C020910E0130910F01F901B8 -:1034100032969FEF40E01FC0982F9695969596950F -:103420009F3050F5E0910E01F0910F01E90FF11D71 -:10343000877021E030E0A90102C0440F551F8A9532 -:10344000E2F7CA019181892B818308959F3F39F06A -:103450004F5F4E3041F051915813F8CF0DC05111CC -:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08 -:1034700097FDFA9582830895089590910C01992300 -:1034800021F090910D01911109C020910E01309110 -:103490000F01F9013296205F3F4F1FC0982F96957C -:1034A000969596959F30F0F4E0910E01F0910F0102 -:1034B000E90FF11D877021E030E0A90102C0440F3F -:1034C000551F8A95E2F7CA018095918189238183EE -:1034D00008953196E217F30729F090819813F9CFF8 -:1034E0001082F7CF089581E090E0E0910E01F09115 -:1034F0000F01E80FF91F1082019680319105A9F79D -:1035000008959091D901892B8093D90108958095D0 -:103510009091D90189238093D90108951092D901FE -:1035200008959091D801892B8093D80108958095B2 -:103530009091D80189238093D80108951092D801E1 -:1035400008959091D701892B8093D7010895809594 -:103550009091D70189238093D70108951092D701C4 -:1035600008958093C60108951092C6010895809130 -:103570000E0190910F01FC0131969C01205F3F4F9D -:1035800080E0919191118F5FE217F307D1F70895D1 -:10359000E0910E01F0910F018091D9018083E091BB -:1035A0000E01F0910F0190818091D801892B8083C9 -:1035B000E0910E01F0910F0190818091D701892B4C -:1035C00080838091C601882361F0E0910E01F09123 -:1035D0000F019081892B80830E94B71A811110926C -:1035E000C60180910E0190910F010C94F60F20E01E -:1035F000009739F0AC0141505109842395232F5F86 -:10360000F7CF822F0895CF92DF92EF92FF926C0155 -:10361000EE24FF24C114D104E104F10421F0C70118 -:10362000B60120E101C020E0C72ED82EE92EFF24EC -:10363000C114D104E104F10419F0285FC701B601F7 -:103640006B017C0154E0F694E794D794C7945A95A3 -:10365000D1F7C114D104E104F10419F02C5FC701C2 -:10366000B6016B017C0142E0F694E794D794C794CD -:103670004A95D1F7C114D104E104F10419F02E5F89 -:10368000C701B601DC01CB01B695A7959795879543 -:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5 -:1036A000DF90CF9008958091F101843021F1109244 -:1036B000DB0120E488E190E00FB6F894A8958093B0 -:1036C00060000FBE2093600080E00E94E30883B793 -:1036D000817F846083BF83B7816083BF789488953E -:1036E00083B78E7F83BF88E10FB6F8948093600024 -:1036F000109260000FBE0895089508950E947C1BEB -:103700000E944B030E947D1B0E94400491E08111A6 -:1037100001C090E0892F08950E9483140E94EA0F4F -:103720000C94E30882E084BD93E095BD9AEF97BDC9 -:1037300080936E0008952FB7F8948091DC019091EA -:10374000DD01A091DE01B091DF012FBF0895CF927E -:10375000DF92EF92FF920F931F932FB7F89440914F -:10376000DC015091DD016091DE017091DF012FBF1E -:103770006A017B01EE24FF248C0120E030E0C016BA -:10378000D106E206F30610F4415051099A01281BB4 -:10379000390BC9011F910F91FF90EF90DF90CF90EF -:1037A00008951F920F920FB60F9211248F939F933B -:1037B000AF93BF938091DC019091DD01A091DE0178 -:1037C000B091DF010196A11DB11D8093DC019093A2 -:1037D000DD01A093DE01B093DF01BF91AF919F9116 -:1037E0008F910F900FBE0F901F9018950E94E70CBD -:1037F000F8942FEF87EA91E6215080409040E1F75E -:1038000000C0000087E090EBDC018093FB01909307 -:10381000FC01A093FD01B093FE019CE088E10FB68E -:10382000F894A895809360000FBE90936000FFCF3E -:10383000EF92FF920F931F93CF93DF93D82FCDE09A -:103840008C2F0E94390405E010E0E82EF12CC7010E -:10385000002E02C0959587950A94E2F780FF09C073 -:10386000602F7C2F80E00E94F305D81302C081E016 -:1038700006C00150110958F7C15010F780E0DF91E0 -:10388000CF911F910F91FF90EF900895CF93C82F84 -:103890008CE20E94181C882321F08C2FCF910C946D -:1038A000181C80E0CF910895CF930E949B1D811139 -:1038B00002C00E94811DC5E6C15049F00E944B0321 -:1038C0008FE39CE90197F1F700C00000F5CF89E292 -:1038D0000E94461C811113C18AE20E94461C81117C -:1038E0000E94811D85E00E94461C81110E94F61BEA -:1038F0000E94A61D8093DA0187E00E94461C88235F -:10390000A9F18BE10E94461C882351F08091DA01D5 -:1039100081FB222720F991E0922790FB81F90EC0CC -:103920008EE00E94461C882361F08091DA0182FBC0 -:10393000222720F991E0922790FB82F98093DA0107 -:1039400015C080E10E94461C9091DA01882341F065 -:1039500093FB222720F981E0822780FB93F904C0A2 -:10396000892F809580FB90F99093DA018091DA019C -:103970000E94AA1D0E94B81D8093FA0180EE0E9449 -:10398000461C882341F08091FA01982F909590FB76 -:1039900080F98093FA0189E30E94461C882359F03C -:1039A0008091FA0181FB222720F991E0922790FB78 -:1039B00081F98093FA0182EE0E94461C882359F017 -:1039C0008091FA0182FB222720F991E0922790FB57 -:1039D00082F98093FA0186EE0E94461C882359F0F2 -:1039E0008091FA0183FB222720F991E0922790FB36 -:1039F00083F98093FA0183EE0E94461C882359F0D4 -:103A00008091FA0184FB222720F991E0922790FB14 -:103A100084F98093FA0185E30E94461C882359F0BB -:103A20008091FA0185FB222720F991E0922790FBF3 -:103A300085F98093FA0181E30E94461C882359F09E -:103A40008091FA0186FB222720F991E0922790FBD2 -:103A500086F98093FA0181E10E94461C882359F07F -:103A60008091FA0187FB222720F991E0922790FBB1 -:103A700087F98093FA018091FA010E94BC1D809120 -:103A8000FA0187FB882780F980930D0187E20E9465 -:103A9000461CC82F8EE10E94461C8111C2608FE136 -:103AA0000E94461C8111C46080E20E94461C811164 -:103AB000C86081E20E94461C8111C06182E20E94BE -:103AC000461C8111C06283E20E94461C8111C064C1 -:103AD00084E20E94461C882311F0C06802C0CC23F7 -:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4 -:103AF000682F70E080E090E0CF910C944318CF9154 -:103B000008956DEE7EEF80E090E00E94ED2360E08E -:103B100082E090E00E94DB2360E083E090E00E947E -:103B2000DB2360E084E090E00E94DB2360E085E03E -:103B300090E00C94DB2380E090E00E94D52321E00C -:103B40008D3E9E4F09F020E0822F089582E090E0A4 -:103B50000C94CD23682F82E090E00C94DB2383E06B -:103B600090E00C94CD23682F83E090E00C94DB234D -:103B700084E090E00C94CD23682F84E090E00C94D6 -:103B8000DB238091E20180FF0BC06091130185E08F -:103B9000689FB001112475956795759567952BC041 -:103BA00081FF09C06091130185E0689FB001112475 -:103BB0007595679520C082FF07C06091130185E06D -:103BC000689FB001112417C09091E3019923D1F0AF -:103BD00060911201961788F72091130185E0289FC4 -:103BE00090011124929FA001939F500D112470E029 -:103BF000CA010E949F236038710540F46115710568 -:103C000039F002C065E070E0862F08958FE70895CF -:103C100081E008958091E20180FF08C06091110168 -:103C200070E0759567957595679521C081FF06C011 -:103C30006091110170E07595679519C082FF04C00D -:103C40006091110170E010C09091E3019923C1F0DF -:103C5000609110019617A0F780911101899FC00112 -:103C6000112470E00E949F236038710528F46115CB -:103C7000710521F0862F08958FE7089581E008955A -:103C800061E070E0F4CF803F21F40E94C11D819576 -:103C900004C0813F29F40E94C11D8093E60108956C -:103CA000823F21F40E94C11D819504C0833F29F405 -:103CB0000E94C11D8093E5010895893F19F40E9477 -:103CC0000A1E05C08A3F31F40E940A1E8195809326 -:103CD000E70108958B3F21F40E940A1E819504C0DC -:103CE0008C3F29F40E940A1E8093E8010895843FC6 -:103CF00021F48091E401816017C0853F21F4809117 -:103D0000E401826011C0863F21F48091E401846067 -:103D10000BC0873F21F48091E401886005C0883F93 -:103D200031F48091E40180618093E40108958D3F36 -:103D300021F48091E20181600BC08E3F21F48091DB -:103D4000E201826005C08F3F29F48091E201846026 -:103D50008093E2010895803F39F48091E60187FF66 -:103D60006CC01092E60169C0813F29F48091E601A0 -:103D70001816BCF362C09091E501823F29F497FFC9 -:103D80005CC01092E50159C0833F19F41916CCF3B9 -:103D900054C0893F41F48091E70118160CF04DC0E2 -:103DA0001092E7014AC08A3F29F48091E70187FF1A -:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6 -:103DC0001092E8013AC08C3F29F48091E80118165E -:103DD000BCF333C0843F21F48091E4018E7F17C08F -:103DE000853F21F48091E4018D7F11C0863F21F44D -:103DF0008091E4018B7F0BC0873F21F48091E40127 -:103E0000877F05C0883F31F48091E4018F7E8093E5 -:103E1000E40113C08D3F21F48091E2018E7F0BC03D -:103E20008E3F21F48091E2018D7F05C08F3F29F400 -:103E30008091E2018B7F8093E2018091E501811105 -:103E40000EC08091E60181110AC08091E7018111C5 -:103E500006C08091E801811102C01092E30108952B -:103E600084EE91E00E9401100E949B1B9093E1015F -:103E70008093E00108951F93CF93DF938091E00139 -:103E80009091E1010E94A71BAC019091E30199235D -:103E900021F02091140130E006C0209115018AE044 -:103EA000289F900111244217530708F486C080917F -:103EB000E501C091E601D091E7011091E80181117F -:103EC00007C0C11176C0D11174C0111172C075C084 -:103ED0009F3F19F09F5F9093E301181624F40E940E -:103EE000C11D8093E5018091E50187FF05C00E9417 -:103EF000C11D81958093E5011C1624F40E94C11D0B -:103F00008093E6018091E60187FF05C00E94C11DF4 -:103F100081958093E6016091E501662339F1C091B6 -:103F2000E601CC2319F1772767FD7095872F972F2E -:103F30000E94B02223E333E343E35FE30E941423B0 -:103F40000E947D226093E5016C2F772767FD7095B5 -:103F5000872F972F0E94B02223E333E343E35FE3ED -:103F60000E9414230E947D226093E6011D1624F412 -:103F70000E940A1E8093E7018091E70187FF05C038 -:103F80000E940A1E81958093E701111624F40E9475 -:103F90000A1E8093E8018091E80187FF05C00E9416 -:103FA0000A1E81958093E801DF91CF911F910C94B7 -:103FB000301F9F3F09F08ECF96CFDF91CF911F9199 -:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE -:103FD0001092E3011092E2010895833081F128F4F8 -:103FE000813059F08230D1F00895853009F449C00C -:103FF000B8F1863009F456C0089580911501262F36 -:1040000030E0280F311D2F3F310524F4680F6093F5 -:10401000150108958FEF8093150108958091140183 -:10402000262F30E0280F311D2F3F310524F4680F73 -:104030006093140108958FEF809314010895809187 -:104040001301262F30E0280F311D2F3F310524F4B6 -:10405000680F6093130108958FEF80931301089503 -:1040600080911201262F30E0280F311D2F3F31059E -:1040700024F4680F6093120108958FEF809312016A -:10408000089580911101262F30E0280F311D2F3F18 -:10409000310524F4680F6093110108958FEF809328 -:1040A0001101089580911001262F30E0280F311D55 -:1040B0002F3F310524F4680F6093100108958FEFAE -:1040C000809310010895833011F128F4813049F074 -:1040D000823091F00895853081F120F18630C1F170 -:1040E000089580911501681720F4861B80931501AF -:1040F000089510921501089580911401681720F415 -:10410000861B8093140108951092140108958091E4 -:104110001301681720F4861B8093130108951092F1 -:104120001301089580911201681720F4861B809373 -:1041300012010895109212010895809111016817DB -:1041400020F4861B809311010895109211010895A7 -:1041500080911001681720F4861B80931001089548 -:104160001092100108950F931F938D3109F46BC0C5 -:1041700008F03FC08E3009F47FC0C0F4873009F4E6 -:1041800069C068F4863009F0B1C08091DA01817F9E -:104190008E7F8093DA0181E08093EA01A8C08830A5 -:1041A00009F4A2C08B3009F49FC0A0C0863109F485 -:1041B0009BC078F4803109F472C0813109F096C057 -:1041C0000E94831490910D0181E0892780930D0155 -:1041D0008BC0893109F488C08B3109F087C0809188 -:1041E000DA0181FB222720F991E0922790FB81F9E7 -:1041F0004CC0853309F470C048F4873209F46CC0B0 -:1042000008F459C0893209F467C070C0833438F4A7 -:104210008A3308F04EC0883309F466C067C083341F -:1042200009F45AC0883409F061C00E9483140FEF6A -:1042300013ED20E3015010402040E1F700C00000E2 -:104240000E94F61B51C00E9437220E94EA0F0E9472 -:10425000E3084AC09091DA01892F8095817080FB34 -:1042600090F929F0966098609093DA0140C0997FA8 -:10427000977F9093DA0138C08091DA0182FB222780 -:1042800020F991E0922790FB82F98093DA0199233B -:1042900059F18091DA0181608093DA0125C0809123 -:1042A000DA0183FB222720F991E0922790FB83F922 -:1042B000ECCF895301C08D5141E050E060E070E0E7 -:1042C0008A019B0104C0000F111F221F331F8A9512 -:1042D000D2F7C901B80104C061E070E080E090E06D -:1042E0000E9443180E94831481E001C080E01F9166 -:1042F0000F91089580E0089580E00895CF93C82F2E -:104300008091EA01813079F018F08230E9F187C0BC -:10431000E0910E01F0910F018081813169F08232CC -:1043200009F07FC009C0E0910E01F0910F0180817A -:10433000813111F0823261F48C2F0E947A21811137 -:1043400004C08C2F0E94B3201DC081E090E01AC0F1 -:104350008C2F0E947C21811114C0C43179F048F463 -:10436000CB3079F0C03109F060C082E08093EA017F -:1043700008C0C93219F0C83321F057C01092EA01C1 -:1043800054C081E0817053C0C93289F118F5C4313D -:1043900071F1A8F4C73009F046C08AE08093150196 -:1043A00094E19093140193E0909313018093120190 -:1043B00088E08093110188E28093100134C0CE51CF -:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB -:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC -:1043E00013C0C13579F0C235F1F461E00DC08091A0 -:1043F000E901882319F01092E90115C081E080934A -:10440000EA0115C061E006C08091E9010E94ED1F3C -:104410000AC06AE08091E9010E94632004C0109202 -:10442000EA0180E004C081E002C080E0ABCFCF9120 -:104430000895E1E8F0E08081886080838081816078 -:1044400080838FB7F89493E09093890090ED9093D8 -:1044500088008FBF0895EFE6F0E08081826080835E -:104460000895EFE6F0E080818D7F80830895EFE688 -:10447000F0E0908182E08927808308951F920F9257 -:104480000FB60F9211242F933F934F935F936F9327 -:104490007F938F939F93AF93BF93EF93FF938091FD -:1044A000EB019091EC0101969093EC018093EB016C -:1044B000811103C082E00E94E308E091EC01E695DF -:1044C000E695F0E0EC54FB4FE4918091EB018E1304 -:1044D00003C080E00E94E308FF91EF91BF91AF918C -:1044E0009F918F917F916F915F914F913F912F910C -:1044F0000F900FBE0F901F90189504D06894B111C3 -:104500008DC0089570D088F09F5790F0B92F9927EB -:10451000B751A0F0D1F0660F771F881F991F1AF0CE -:10452000BA95C9F712C0B13081F077D0B1E00895E3 -:1045300074C0672F782F8827B85F39F0B93FCCF364 -:10454000869577956795B395D9F73EF490958095C4 -:10455000709561957F4F8F4F9F4F0895E89409C0E4 -:1045600097FB3EF490958095709561957F4F8F4FA6 -:104570009F4F9923A9F0F92F96E9BB279395F695BC -:10458000879577956795B795F111F8CFFAF4BB0F3A -:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E -:1045A000882311F096E911C0772321F09EE8872F28 -:1045B000762F05C0662371F096E8862F70E060E0E4 -:1045C0002AF09A95660F771F881FDAF7880F96955D -:1045D000879597F9089557FD9058440F551F59F046 -:1045E0005F3F71F04795880F97FB991F61F09F3FE0 -:1045F00079F087950895121613061406551FF2CF09 -:104600004695F1DF08C0161617061806991FF1CF58 -:1046100086957105610508940895E894BB2766277F -:104620007727CB0197F908950BD078C069D028F08F -:104630006ED018F0952309F05AC05FC01124EECF58 -:10464000CADFA0F3959FD1F3950F50E0551F629FED -:10465000F001729FBB27F00DB11D639FAA27F00DDB -:10466000B11DAA1F649F6627B00DA11D661F829F02 -:104670002227B00DA11D621F739FB00DA11D621FE7 -:10468000839FA00D611D221F749F3327A00D611D04 -:10469000231F849F600D211D822F762F6A2F1124E6 -:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39 -:1046B000BB1F661F771F881F91505040A9F79E3F70 -:1046C000510570F014C0AACF5F3FECF3983EDCF3C5 -:1046D000869577956795B795F795E7959F5FC1F7AD -:1046E000FE2B880F911D9695879597F9089597F958 -:1046F0009F6780E870E060E008959FEF80EC089588 -:1047000000240A94161617061806090608950024B0 -:104710000A9412161306140605060895092E03942A -:10472000000C11F4882352F0BB0F40F4BF2B11F49E -:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF -:10474000072E16F4009407D077FD09D00E94B923F4 -:1047500007FC05D03EF4909581959F4F0895709584 -:1047600061957F4F0895EE0FFF1F0590F491E02DA6 -:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8 -:10478000B70710F0A61BB70B881F991F5A95A9F7FA -:1047900080959095BC01CD010895F999FECF92BD09 -:1047A00081BDF89A992780B50895A8E1B0E042E06C -:1047B00050E00C94F523262FF999FECF92BD81BDD0 -:1047C000F89A019700B4021639F01FBA20BD0FB64F -:1047D000F894FA9AF99A0FBE08950196272F0E942D -:1047E000DC230C94DB23DC01CB01FC01F999FECF27 -:1047F00006C0F2BDE1BDF89A319600B40D92415069 -:0A4800005040B8F70895F894FFCF78 -:10480A000220E508730950091C09E8080101C701DB -:10481A0028080A03140A3F4D363975042804F2039E -:10482A00B9034C0365037E039703010203040506DB -:04483A000708090062 -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/compiled.hex b/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/compiled.hex deleted file mode 100644 index 726a776d2..000000000 --- a/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/compiled.hex +++ /dev/null @@ -1,1179 +0,0 @@ -:100000000C9461030C94A5030C94A5030C94A50314 -:100010000C94A5030C94A5030C94A5030C94A503C0 -:100020000C94A5030C94A5030C94590E0C942B0F5F -:100030000C94A5030C94A5030C94A5030C94A503A0 -:100040000C94A5030C94E5220C94A5030C94A50331 -:100050000C94A5030C94781C0C94A5030C94A50394 -:100060000C94A5030C94A5030C94A5030C94A50370 -:100070000C94A5030C94A5030C94A5030C94A50360 -:100080000C94A5030C94A5030C94A5030C94A50350 -:100090000C94A5030C94A5030C94A5030C94A50340 -:1000A0000C94A5030C94A5030C94A5030A060F0653 -:1000B000140619061E06230628062D063206980F7A -:1000C000BA0FA810BA0FA810FF0F2210A8107710AF -:1000D0008A105913591388138813BE13DE130F1592 -:1000E0000F15E9130F159914991400150F150F1515 -:1000F0000915A614A614A614A614A614A614A614CC -:10010000A614A614A614A614A614A614A614A6141F -:10011000A614B814C514CC14D314DD14012E022E69 -:10012000012C022C0001E10135023502E10001350C -:1001300002350001E1012E022E012C022C02E10009 -:1001400001E6012E022E02E6012C022C0001E10143 -:1001500030023002E1012C022C0001E10164026452 -:1001600002E100016402640001E60130023002E6AF -:10017000012C022C000000002200C001C002C003BC -:10018000C004C005C006C007C008C02E002D02373D -:10019000021E02045200002514140004001D00F485 -:1001A00000387426141A0015001B00F5003771245E -:1001B000140900160006002B00C1002714130017B5 -:1001C00000190036782D0031020A000700050000F2 -:1001D00000230201541F020000360200003500C552 -:1001E000003200000027020000490021140D000B1E -:1001F000000E000000240225020F00110010005024 -:10020000004C002602180008004F0029002C00C3F3 -:10021000001C000C005100C7002800C4002F001271 -:1002200000520020022A001F14340033003802025A -:10023000520000241601000100010001000000012D -:1002400000010001000100010001000100010001A6 -:1002500000010001003778251601000100010001AE -:1002600000010026160100010001003671010001A5 -:100270000001000100010000000100010001000078 -:1002800000010000002414010064000000010000CF -:100290000001002102010001000100000001000135 -:1002A0000001000100010001000100010001000146 -:1002B00000010001000100C8000100010001002E42 -:1002C000140100C90001000100010001000100311A -:1002D00000010001000100035200000100010001C3 -:1002E00000010001000000010001002000010001E8 -:1002F000000100010001001F0001000100010001D8 -:100300000001001E0001000100010001002202277F -:1003100000210001000100010001000100010000B6 -:1003200000010001000100000001000000010001C7 -:1003300000010000000100000001000100010001B7 -:10034000004A00000001000100C200220026004A0D -:100350000001000100C60023004D00010001000162 -:1003600000010024004E00010001000100010025F1 -:10037000004B00010001000100010001000100012B -:100380000000000100010001000100010000000167 -:100390000001002000010001000100010001001F18 -:1003A00000010001000100010001001E0001000128 -:1003B00000010001002202270021000100010001CC -:1003C0000001000100010000000100010001000027 -:1003D0000001000000010001000100000001000018 -:1003E0000001000100010001004A000000010001BD -:1003F00000C200220026004A0001000100CA0023BA -:10040000004D00010001000100010024004E000128 -:100410000001000100010025004B00010001000166 -:1004200000010001000100010000002200010001A4 -:1004300000010001000000010001003C000100017A -:10044000000100010001003B00010001000100016A -:100450000001003A0001000100010001000100015B -:10046000003D000100010001000100010001000049 -:100470000001000100010000000100000001000176 -:100480000001000000010000000100010001000166 -:1004900000301400000100010001003E0042000194 -:1004A000000100010001003F0043000100010001C4 -:1004B0000001004000440001000100010001004172 -:1004C00000450001000100010001000100010001E0 -:1004D00000000016034500720067006F0044006FC3 -:1004E000007800200045005A000000160345007205 -:1004F0000067006F0044006F007800200045005A3C -:100500000000000403090409026D00040100A0FAC0 -:100510000904000001030101000921110100012269 -:100520003F000705810308000A09040100010301D7 -:100530000200092111010001224D00070582030874 -:10054000000A090402000103000000092111010052 -:10055000012236000705830308000A09040300018D -:100560000300000009211101000122390007058460 -:10057000031000011201100100000008EDFE071336 -:1005800001000102000105010906A101050719E0AA -:1005900029E7150025019508750181020508190153 -:1005A00029059505750191029501750391010507CE -:1005B0001900297715002501957875018102C0057C -:1005C000010980A101850216010026B7001A010069 -:1005D0002AB700751095018100C0050C0901A10121 -:1005E0008503160100269C021A01002A9C02751040 -:1005F00095018100C005010902A1010901A10005C1 -:100600000919012905150025019505750181029536 -:1006100001750381010501093009311581257F9597 -:10062000027508810609381581257F9501750881B5 -:1006300006050C0A38021581257F9501750881068B -:10064000C0C005010906A101050719E029E7150049 -:10065000250195087501810295017508810105083C -:1006600019012905950575019102950175039101FF -:100670000507190029FF150025FF9506750881005B -:10068000C00000000000000000000000010204069D -:100690000A0F17202C3A4A5D71879DB3C7DAE9F536 -:1006A000FCFFFCF5E9DAC7B39D87715D4A3A2C205F -:1006B000170F0A06040201000000000000000000FD -:1006C000000011241FBECFEFDAE0DEBFCDBF04B6BD -:1006D00003FE24C08091FB019091FC01A091FD01DB -:1006E000B091FE018730904BA740B04BB9F4109207 -:1006F000FB011092FC011092FD011092FE0114BE4C -:1007000084B7877F84BF88E10FB6F8948093600038 -:10071000109260000FBEE0E0FFE3099511E0A0E059 -:10072000B1E0E8E5F9E402C005900D92A433B10709 -:10073000D9F711E0A4E3B1E001C01D92AB3FB107CE -:10074000E1F70E949D0B0C94AA240C9400001092D7 -:10075000B9008AE08093B800089594EA9093BC00B1 -:100760009091BC0097FFFCCF9091B900987F983092 -:1007700021F0903111F081E008958093BB0084E86E -:100780008093BC008091BC0087FFFCCF8091B900B2 -:10079000887F883111F0803471F780E0089584E912 -:1007A0008093BC008091BC0084FDFCCF08958093B1 -:1007B000BB0084E88093BC008091BC0087FFFCCF25 -:1007C0009091B900987F81E0983209F480E0089513 -:1007D00084E88093BC008091BC0087FFFCCF8091AF -:1007E000BB00089580910101811115C080E40E9431 -:1007F000AD038093010181110CC082E10E94D703F7 -:1008000080930101811105C08FEF0E94D70380936F -:1008100001010E94CF0384B1807F84B985B1807FBC -:1008200085B98AB1837F8AB98BB1837F8BB93E98B2 -:10083000469808950E94AF05809301010E94F2033B -:1008400080B38C7080BB81B3836F81BBA5E3B1E0C3 -:10085000E3E4F1E08EE08E0F11921D928E13FCCF37 -:100860000C949905BF92CF92DF92EF92FF920F9373 -:100870001F93CF93DF9380910101882379F08091BA -:1008800034018F5F80933401811108C00E94AF054D -:1008900080930101811102C00E94410505E311E02E -:1008A000C0E0D0E0DD24D39482E0C82EEE24E394AF -:1008B000F12CC730D10500F580910101811164C090 -:1008C00080E40E94AD0380930101811112C082E196 -:1008D0000E94D7038093010181110BC0C7010C2E28 -:1008E00001C0880F0A94EAF780950E94D70380938D -:1008F00001010E94CF0348C0CA30A1F028F4C830DB -:1009000059F0C93061F005C0CC3089F070F0CD30BD -:1009100089F0209A289810C0219A29980DC0229A0F -:100920002A980AC0239A2B9807C0529A01C0539A5A -:100930005B9802C03E9A469890EA9A95F1F79FB16B -:10094000799902C082E001C080E091709D25982BCA -:100950007C9902C084E001C080E0892B7D9902C0AF -:1009600038E001C030E0832B7E9902C020E101C055 -:1009700020E0822B9FB19095991F9927991F9295FE -:10098000990F907E892B0FC080910101811149C080 -:1009900080E40E94AD0380930101882379F1B12C9A -:1009A0000E94CF038B2DF8019081981719F0808356 -:1009B000C09200010E94F20321960F5F1F4FCE30BC -:1009C000D10509F076CF80910001882361F1815033 -:1009D00080930001882339F08FE99FE00197F1F7B8 -:1009E00000C0000020C0A3E4B1E0E5E3F1E0CF01E6 -:1009F000825F91919D938E13FCCF15C083E10E947D -:100A0000D703809301018111CACF81E40E94AD0315 -:100A1000809301018111C3CF0E94E803B82EB094E6 -:100A2000BFCF80E0C0CF0E943F0581E0DF91CF9132 -:100A30001F910F91FF90EF90DF90CF90BF9008959E -:100A4000E82FF0E0ED5BFE4F8081089508950F934D -:100A50001F93CF93DF93C3E4D1E010E00C2F025F2C -:100A6000899190E00E94EE1B180F0C13F9CF812F93 -:100A7000DF91CF911F910F910895089508950C94DF -:100A80003E0556985E9825982D9826982E9827987A -:100A90002F988FEF90E09093890080938800909337 -:100AA0008B0080938A0090938D0080938C00259A10 -:100AB0002D9A2FEF80E792E0215080409040E1F79F -:100AC00000C00000269A2E9A2FEF80E792E0215076 -:100AD00080409040E1F700C00000279A2F9A2FEF46 -:100AE00080E792E0215080409040E1F700C0000094 -:100AF00025982D982FEF80E792E02150804090407C -:100B0000E1F700C0000026982E982FEF80E792E0D2 -:100B1000215080409040E1F700C0000027982F98B6 -:100B200056985E9825982D9826982E9827982F9855 -:100B3000089589EA8093800089E080938100249859 -:100B40002C983F988AB18F748AB96E98479A8BB166 -:100B5000806B8BB9769A0E9441050C943D0580E22A -:100B6000809301018091510181110EC00E94A70361 -:100B700081E0809351012FEF83ED90E3215080407D -:100B80009040E1F700C0000080E40E94AD03809334 -:100B9000010181112EC00E94D703809301018111B0 -:100BA00028C00E94D70380930101811122C08FE3E6 -:100BB0000E94D7038093010181111BC00E94CF03C3 -:100BC00080E40E94AD0380930101811112C08CE08A -:100BD0000E94D7038093010181110BC00E94D703AB -:100BE00080930101811105C08FE30E94D703809398 -:100BF00001010E94CF03809101010895FC018281CF -:100C0000462F50E04930510590F5FA01EA5AFF4F5E -:100C10000C945A24882359F188E691E0089588239A -:100C200031F183E691E00895882309F18AE591E0A6 -:100C300008958823E1F08DE491E008958823B9F0C8 -:100C400080E491E00895882391F083E391E0089592 -:100C5000882369F08EE291E00895882341F085E2CF -:100C600091E00895882319F08CE191E0089580E0E7 -:100C700090E0089581E0089581E008950C943C0689 -:100C800008950F931F93CF93DF938C01FC01C081D4 -:100C9000D181CE010E94731ABE010E94EA06EC01C6 -:100CA000B8010E943E06882309F48DC0F8018281B4 -:100CB000882309F44AC080915D0181111FC0C431AD -:100CC000F0E5DF0709F051C00E94400681E0809303 -:100CD0005D010E94421C90935C0180935B01109225 -:100CE0005401109256011092550110925801109221 -:100CF000570110925A011092590165C080915B0111 -:100D000090915C010E944E1C883C910570F480918A -:100D10005401E82FF0E0EE0FFF1FEB5AFE4FD18396 -:100D2000C0838F5F809354014EC0C43880E5D807DC -:100D300021F0C538D04501F13AC0F80182818823FD -:100D400041F01092520182E01EC0C438E0E5DE0797 -:100D500059F580915201811106C086E20E94FD1171 -:100D600086E20E94C51282E01CC0C438F0E5DF07AD -:100D700041F3C538D045D9F4F8018281882331F098 -:100D80001092530180E20E9414131DC08091530100 -:100D9000811106C087E20E94FD1187E20E94C51200 -:100DA00080E20E941B130FC0C538D04529F381E0B3 -:100DB0008093520180935301C801DF91CF911F911D -:100DC0000F910C943A0680E0DF91CF911F910F9123 -:100DD0000895089596E0799FF001112494E5899F84 -:100DE000E00DF11D1124E60FF11DEE0FFF1FE55779 -:100DF000FE4F859194910895880F991FFC01EB5047 -:100E0000F040859194910895880F991FFC01EB584B -:100E1000FE4F8591949108950F931F93CF93DF9385 -:100E2000EC01811520E3920750F5C11580E2D80747 -:100E300008F0C3C0CB3BD10590F4C83AD10508F007 -:100E40006AC0C53AD10508F05BC0C430D10508F0CE -:100E5000D0C1219709F0CAC101E010E00AC2CF3F1A -:100E6000D10511F008F0C5C1C03FD10508F0A2C0FE -:100E7000CE01805E9109089708F4BBC1B7C1C130AB -:100E800090E5D90709F4A2C020F5C0318FE4D80756 -:100E900070F4C11590E4D90708F094C0C11521E39E -:100EA000D20708F0A3C1DD278E01106CE2C1C11585 -:100EB000D04509F09BC10E947A158FEF94E32CE096 -:100EC000815090402040E1F700C000000E949D1C2E -:100ED000D0C1C11597E5D90758F4C03121E5D20733 -:100EE00008F01CC1C43180E5D80708F475C07EC184 -:100EF000CE0190578115904108F078C1DF7073C121 -:100F0000C53AD10509F477C1C63AD10509F076C1D1 -:100F100002E810E4AEC1C83AD10509F472C1C93A79 -:100F2000D10509F471C1CA3AD10509F470C1CB3AAF -:100F3000D10509F46FC1CC3AD10509F46EC1CD3A9F -:100F4000D10509F46DC1C03BD10509F46CC1CE3A9D -:100F5000D10509F46BC1CF3AD10509F46AC1C13B8F -:100F6000D10509F469C1C23BD10509F468C1C33B8D -:100F7000D10509F467C1C43BD10509F466C1C53B7D -:100F8000D10509F465C1C63BD10509F464C1C73B6D -:100F9000D10509F463C1C83BD10509F462C1C93B5D -:100FA000D10509F461C1CA3BD10509F460C100E073 -:100FB00014E45FC18E0110655CC1CE019F700E9478 -:100FC000040758C1DF708E01106A53C18091DA01A5 -:100FD00081608093DA014DC10E94421E811102C0DE -:100FE0000E94281E0E945F1E90E09093FB01809358 -:100FF000FA01C23080E5D80721F48091FA018160BE -:1010000086C0C43090E5D90721F48091FA0182604E -:101010007EC0C63020E5D20721F48091FA018460B9 -:1010200076C0C83080E5D80719F48091FA0127C04E -:10103000CA3090E5D90721F48091FA01806167C038 -:10104000CC3020E5D20721F48091FA0180625FC0A4 -:10105000CE3080E5D80721F48091FA01806457C032 -:10106000C03190E5D90721F48091FA0180684FC022 -:10107000C23120E5D20729F48091FA0184608860AA -:1010800046C0C33080E5D80721F48091FA018E7FF5 -:101090003EC0C53090E5D90721F48091FA018D7FDB -:1010A00036C0C73020E5D20721F48091FA018B7F4A -:1010B0002EC0C93080E5D80719F48091FA0126C006 -:1010C000CB3090E5D90721F48091FA018F7E1FC0C3 -:1010D000CD3020E5D20721F48091FA018F7D17C031 -:1010E000CF3080E5D80721F48091FA018F7B0FC0C3 -:1010F000C13190E5D90721F48091FA018F7707C0BB -:10110000C331D04531F48091FA018B7F877F809382 -:10111000FA018091FA010E94631EABC08D2F9927BE -:101120008F70992781309105D9F49E012370332760 -:1011300002C0880F991F2A95E2F79C688E0144E04F -:10114000000F111F4A95E1F700271370802B912B98 -:1011500053E0CC0FDD1F5A95E1F7C076DD272FC095 -:101160008230910531F4DC2FCC278E01016F106A9B -:1011700080C08330910569F4CE018370992701E026 -:1011800010E002C0000F111F8A95E2F7C8019C68A9 -:101190000FC084309105B9F4CE018370992701E026 -:1011A00010E002C0000F111F8A95E2F7C8019A688B -:1011B00023E0CC0FDD1F2A95E1F7C07ED7708C01AC -:1011C0000C2B1D2B56C08530910531F4DC2FCC271C -:1011D0008E01046F106A4DC0069709F04AC0CF71A6 -:1011E000DD27DC2FCC278E01106243C000E010E029 -:1011F00040C08E013EC001E810E43BC003E810E4AB -:1012000038C002EE14E435C009EE14E432C00AEE30 -:1012100014E42FC005EB14E42CC006EB14E429C041 -:1012200007EB14E426C00CEC14E423C00DEC14E42A -:1012300020C003E815E41DC00AE815E41AC002E95D -:1012400015E417C004E915E414C001E216E411C066 -:1012500003E216E40EC004E216E40BC005E216E455 -:1012600008C006E216E405C007E216E402C00AE27E -:1012700016E4C801DF91CF911F910F91089596E078 -:10128000799FF001112494E5899FE00DF11D11244F -:10129000E60FF11DEE0FFF1FE557FE4F859194916C -:1012A000803E9105E0F4803C910558F5813391052D -:1012B00009F46FC048F48932910509F463C08A3299 -:1012C000910509F46DC072C089339105E9F0823847 -:1012D0009105D1F08533910509F44DC067C0833E77 -:1012E000910581F138F4803E9105B9F0823E910577 -:1012F000D9F05CC0863E910561F1873E9105A1F170 -:1013000055C00E94FC0608952091FA0120FD02C0FC -:1013100021FF4CC080EE90E049C08091FA0180FF2F -:10132000F9CF89E390E042C08091FA0182FF0EC0BC -:101330008091FA0184FF03C080E090E037C083EE23 -:1013400090E034C08091FA0182FFF2CF82EE90E00B -:101350002DC08091FA0183FF0BC08091FA0184FDBA -:10136000EBCF87EE90E022C08091FA0183FFF5CFAA -:1013700086EE90E01BC08091FA0185FF07C089E2EC -:1013800090E014C08091FA0185FFF9CF85E390E0E9 -:101390000DC08091FA0186FF07C08AE290E006C086 -:1013A0008091FA0186FFF9CF81E390E00E940C075B -:1013B000089508950C94D90980916E010895CF93F2 -:1013C000DF9300D01F92CDB7DEB79C018091F10171 -:1013D000843019F593E099833B832A839093E90045 -:1013E0008FEF9091E800815095FD06C095ED9A959C -:1013F000F1F700008111F5CF8091E80085FF0DC065 -:1014000040E050E063E070E0CE0101960E94490C9C -:101410008091E8008E778093E8000F900F900F90F6 -:10142000DF91CF910895CF93DF9300D01F92CDB776 -:10143000DEB72091F101243021F522E029839B833E -:101440008A8383E08093E9008FEF9091E8008150D8 -:1014500095FD06C095ED9A95F1F700008111F5CF45 -:101460008091E80085FF0DC040E050E063E070E04F -:10147000CE0101960E94490C8091E8008E778093FE -:10148000E8000F900F900F90DF91CF910895209179 -:10149000F1012430F1F422E02093E9002FEF3091A4 -:1014A000E800215035FD06C035ED3A95F1F7000012 -:1014B0002111F5CF2091E80025FF0BC040E050E05E -:1014C00065E070E00E94490C8091E8008E7780937F -:1014D000E8000895CF93DF93EC019091F1019430EF -:1014E00009F046C080910C018823D9F080910D014C -:1014F0008823B9F09093E9008FEF9091E800815034 -:1015000095FD06C095E19A95F1F700008111F5CFA0 -:101510008091E80085FF2CC040E050E060E170E081 -:1015200017C081E08093E9008FEF9091E80081502F -:1015300095FD06C095ED9A95F1F700008111F5CF64 -:101540008091E80085FF14C040E050E068E070E062 -:10155000CE010E94490C8091E8008E778093E800CC -:1015600080E1FE01AEE5B1E001900D928A95E1F7D0 -:10157000DF91CF9108958091F001811109C00E94FF -:10158000DE0D0E943B0E8091E20084608093E200B9 -:1015900008951092F001089508950C94D2220E94AB -:1015A000331C0E94D8220E94E1100C94DA0942E018 -:1015B00061EC81E00E94580D42E061EC82E00E9403 -:1015C000580D42E061EC83E00E94580D42E161EC6D -:1015D00084E00C94580D8091F301833009F455C0D8 -:1015E00030F4813071F0823009F48EC008958A3071 -:1015F00009F47AC08B3009F460C0893009F09CC0CE -:1016000020C08091F201813A09F096C08091E800F3 -:10161000877F8093E8008091F6019091F701892BF4 -:1016200021F460E18EE591E003C060E080E090E0AD -:1016300070E00E94940C8091E8008B778093E80022 -:1016400008958091F201813209F076C08091F6010F -:101650009091F701009719F0039709F06DC0809100 -:10166000E800877F8093E8008091E80082FD05C054 -:101670008091F1018111F8CF5FC08091F1008093DA -:101680006E018091E8008B7753C08091F201813A1E -:1016900009F052C08091F6019091F701892B09F071 -:1016A0004BC08091E800877F8093E8008091E8003C -:1016B00080FFFCCF80910C0136C08091F201813215 -:1016C000D9F58091F6019091F701892BA9F58091C8 -:1016D000E800877F8093E8000E948D0D8091F401DF -:1016E00080930C010C947A158091F201813221F5DE -:1016F0008091E800877F8093E8000E948D0D8091A3 -:10170000F50180936F0108958091F201813AA1F46F -:101710008091E800877F8093E8008091E80080FF57 -:10172000FCCF80916F018093F1008091E8008E776B -:101730008093E8000C948D0D089584B7877F84BF53 -:1017400088E10FB6F89480936000109260000FBE9D -:1017500090E080E80FB6F894809361009093610068 -:101760000FBE0E9430110E94DE0D0E943B0E809140 -:10177000E20084608093E20078940E94C1100E948D -:10178000321182E091E00E94DC100E94C022809120 -:10179000F101853069F40E94FA1B8091EF018823E2 -:1017A000B1F30E94251C882391F30E94330CEFCFE4 -:1017B0000E943811ECCF292F332723303105C9F08F -:1017C00064F42130310581F02230310509F043C045 -:1017D0008DE690E027E035E042C021323105F1F09E -:1017E0002232310541F137C082E190E024E735E053 -:1017F00036C099278130910541F08230910541F042 -:10180000892B49F5E3E0F5E005C0EBEEF4E002C01A -:10181000E3EDF4E0849190E09F0121C06430D8F4BE -:10182000E62FF0E0EE0FFF1FEE5DFE4F20813181CD -:1018300089E090E014C0643070F470E0FB01EE0FBA -:10184000FF1FE65EFE4F20813181FB01EA5EFE4F05 -:10185000808190E004C080E090E020E030E0FA0178 -:1018600031832083089580E189BD82E189BD09B477 -:1018700000FEFDCF8091D8008F7D8093D8008091AD -:10188000E00082608093E0008091E00081FDFCCF69 -:101890000895CF92DF92EF92FF920F931F93CF9311 -:1018A000DF93EC018B016A010E94AC0D811133C002 -:1018B000C114D10439F0F60180819181081B190B04 -:1018C000C80FD91FE12CF12C0115110519F18091D8 -:1018D000E80085FD16C08091E8008E778093E800CF -:1018E000C114D10449F0F60180819181E80EF91EFE -:1018F000F182E08285E00FC00E94AC0D882321F3C5 -:101900000AC089918093F10001501109FFEFEF1A8D -:10191000FF0ADACF80E0DF91CF911F910F91FF9006 -:10192000EF90DF90CF9008952091F8013091F90168 -:101930002617370748F06115710539F42091E80042 -:101940002E772093E80001C0B90140E061157105D0 -:10195000A9F12091F101222309F443C0253009F4B3 -:1019600042C02091E80023FD40C02091E80022FD04 -:1019700032C02091E80020FFE9CF4091F300209190 -:10198000F20030E0342BFC01CF016115710559F0F4 -:101990002830310540F481918093F1006150710944 -:1019A0002F5F3F4FF1CF41E02830310509F040E093 -:1019B0002091E8002E772093E800C8CF4111C9CFCD -:1019C0000AC08091F101882361F0853061F0809137 -:1019D000E80083FD0AC08091E80082FFF2CF80E03A -:1019E000089582E0089583E0089581E008952091AC -:1019F000F8013091F9012617370748F06115710594 -:101A000039F42091E8002E772093E80001C0B90155 -:101A1000FC0120E06115710591F18091F1018823AD -:101A200009F440C0853009F43FC08091E80083FD8F -:101A30003DC08091E80082FD2FC08091E80080FFCA -:101A4000E9CF2091F3008091F20090E0922B611594 -:101A5000710559F08830910540F424912093F100EC -:101A60003196615071090196F2CF21E0089709F093 -:101A700020E08091E8008E778093E800CBCF2111A1 -:101A8000CCCF0AC08091F101882361F0853061F0EC -:101A90008091E80083FD0AC08091E80082FFF2CFC8 -:101AA00080E0089582E0089583E0089581E008953C -:101AB000982F973058F59093E900981739F0709166 -:101AC000EC002091ED005091F00003C0242F762F00 -:101AD00050E021FF19C03091EB003E7F3093EB00C6 -:101AE0003091ED003D7F3093ED003091EB0031609F -:101AF0003093EB007093EC002093ED005093F000D6 -:101B00002091EE0027FF07C09F5FD3CF8F70809397 -:101B1000E90081E0089580E008958091F20187FF57 -:101B200011C08091E80082FD05C08091F101811112 -:101B3000F8CF11C08091E8008B770BC08091F10144 -:101B4000882349F08091E80080FFF8CF8091E80079 -:101B50008E778093E80008952091E4003091E500AD -:101B600095E64091EC00842F817040FF22C0809167 -:101B7000E80080FD1CC08091F101882391F0853040 -:101B800091F08091EB0085FD10C04091E4005091F0 -:101B9000E5004217530729F39A01915011F784E0A9 -:101BA000089582E0089583E0089581E0089580E03B -:101BB00008954091E80042FFDECF08950E944C0E48 -:101BC0000E94540EE0EEF0E0808181608083E8EDB9 -:101BD000F0E080818F77808319BCA7EDB0E08C9115 -:101BE0008E7F8C9380818F7E80831092F001089588 -:101BF0000F931F93CF93DF930E944C0E0E94540EBD -:101C0000C8EDD0E088818F77888388818068888359 -:101C100088818F7D888319BC1092F1011092ED01AB -:101C20001092EF011092EE0100EE10E0F8018081B9 -:101C30008B7F808388818160888342E060E080E0E0 -:101C40000E94580DE1EEF0E080818E7F8083E2EE0D -:101C5000F0E0808181608083808188608083F801EA -:101C600080818E7F8083888180618883DF91CF919E -:101C70001F910F910895E8EDF0E080818F7E8083C1 -:101C8000E7EDF0E080818160808384E082BF81E0C5 -:101C90008093F0010C94F80DE8EDF0E080818E7FE8 -:101CA00080831092E20008951092DA001092E10011 -:101CB00008951F920F920FB60F9211242F933F9306 -:101CC0004F935F936F937F938F939F93AF93BF9344 -:101CD000EF93FF938091E10082FF0BC08091E200BF -:101CE00082FF07C08091E1008B7F8093E1000E941A -:101CF000C0108091DA0080FF1FC08091D80080FF63 -:101D00001BC08091DA008E7F8093DA008091D90029 -:101D100080FF0DC080E189BD82E189BD09B400FE6C -:101D2000FDCF81E08093F1010E94BB0A05C019BC80 -:101D30001092F1010E94C90A8091E10080FF19C050 -:101D40008091E20080FF15C08091E2008E7F809339 -:101D5000E2008091E20080618093E2008091D800EF -:101D600080628093D80019BC85E08093F1010E94C5 -:101D7000CD0A8091E10084FF30C08091E20084FFB1 -:101D80002CC080E189BD82E189BD09B400FEFDCF90 -:101D90008091D8008F7D8093D8008091E1008F7E64 -:101DA0008093E1008091E2008F7E8093E200809139 -:101DB000E20081608093E2008091ED01882311F0C0 -:101DC00084E007C08091E30087FD02C081E001C08C -:101DD00083E08093F1010E94CF0A8091E10083FFAC -:101DE00029C08091E20083FF25C08091E100877FB8 -:101DF0008093E10082E08093F1011092ED018091E7 -:101E0000E1008E7F8093E1008091E2008E7F8093DD -:101E1000E2008091E20080618093E20042E060E0B5 -:101E200080E00E94580D8091F00088608093F0005F -:101E30000E94CC0AFF91EF91BF91AF919F918F913A -:101E40007F916F915F914F913F912F910F900FBEB6 -:101E50000F901F9018951F920F920FB60F9211249A -:101E60002F933F934F935F936F937F938F939F93A2 -:101E7000AF93BF93CF93DF93EF93FF93C091E900AC -:101E8000CF708091EC00D82FD17080FDD0E81092F7 -:101E9000E9008091F000877F8093F00078940E94A1 -:101EA0006F0F1092E9008091F00088608093F0003D -:101EB000CD2BCF70C093E900FF91EF91DF91CF91CF -:101EC000BF91AF919F918F917F916F915F914F9152 -:101ED0003F912F910F900FBE0F901F9018951F9359 -:101EE000CF93DF93CDB7DEB7AA970FB6F894DEBFD6 -:101EF0000FBECDBFE2EFF1E088E08E0F9091F100D0 -:101F000091938E13FBCF0E94EB0A8091E80083FF30 -:101F10001FC18091F2019091F301492F50E04A30A6 -:101F2000510508F015C1FA01E15AFF4F0C945A24EB -:101F3000803881F0823809F00BC18091F6018F70F2 -:101F40008093E9008091EB0085FB882780F910924F -:101F5000E90006C08091EE019091EF01911182603D -:101F60009091E800977F9093E8008093F1001092A1 -:101F7000F100C8C0282F2D7F09F0EAC0882319F08E -:101F8000823061F0E5C08091F401813009F0E0C059 -:101F9000933009F080E08093EF012BC08091F40131 -:101FA000811127C08091F6018F7009F4D1C0809310 -:101FB000E9002091EB0020FF1CC0933021F48091B8 -:101FC000EB00806214C09091EB0090619093EB0065 -:101FD00021E030E0A90102C0440F551F8A95E2F7C5 -:101FE0004093EA001092EA008091EB0088608093B1 -:101FF000EB001092E9008091E800877F86C0811194 -:10200000A7C01091F4011F778091E3008078812BA5 -:102010008093E3008091E800877F8093E8000E942E -:102020008D0D8091E80080FFFCCF8091E3008068F7 -:102030008093E300111102C082E001C083E080932D -:10204000F10186C08058823008F082C08091F4018E -:102050009091F5018C3D53E0950779F583E08A83F3 -:102060008AE289834FB7F894DE01139620E03EE0C0 -:1020700051E2E32FF0E050935700E49120FF03C0BA -:10208000E295EF703F5FEF708E2F90E0EA3010F036 -:10209000C79601C0C0968D939D932F5F243149F759 -:1020A0004FBF8091E800877F8093E8006AE270E08C -:1020B000CE0101960E94940C14C0AE014F5F5F4F99 -:1020C0006091F6010E94DB0BBC01009709F440C04F -:1020D0009091E800977F9093E80089819A810E940F -:1020E000F70C8091E8008B778093E80031C080384E -:1020F00079F58091E800877F8093E8008091ED0179 -:102100008093F1008091E8008E778093E8000E9430 -:102110008D0D1EC081111CC09091F4019230C0F44D -:102120008091E800877F8093E8009093ED010E9402 -:102130008D0D8091ED01811106C08091E30087FD36 -:1021400002C081E001C084E08093F1010E94D70ABF -:102150008091E80083FF0AC08091E800877F809328 -:10216000E8008091EB0080628093EB00AA960FB6A6 -:10217000F894DEBF0FBECDBFDF91CF911F910895C0 -:102180000895CF938091F1018823A1F0C091E900D7 -:10219000CF709091EC00892F817090FD80E8C82B62 -:1021A0001092E9008091E80083FD0E946F0FCF70CC -:1021B000C093E900CF9108959093750180937401C5 -:1021C0000895E0917401F0917501309721F001902C -:1021D000F081E02D099480E00895E0917401F09180 -:1021E0007501309721F00280F381E02D0994089564 -:1021F000E0917401F0917501309721F00480F58130 -:10220000E02D099408952091720130917301821795 -:10221000930771F09093730180937201E0917401C0 -:10222000F0917501309721F00680F781E02D099437 -:10223000089520917001309171018217930771F018 -:102240009093710180937001E0917401F091750198 -:10225000309721F00084F185E02D099408950895C8 -:102260000C942F110E94391C0E941A040C94FB1C20 -:102270009F92AF92BF92CF92DF92EF92FF920F9315 -:102280001F93CF93DF9300D000D000D0CDB7DEB73F -:102290000E9432040DE010E0AA24A394B12C902EE9 -:1022A000802F0E942005980129583E4F6901F901AD -:1022B000F080F826A1F40150110988F78FEF898387 -:1022C0008A831B820E94421C8160782F9D838C83AD -:1022D00049815A816B818D810E94CF112FC09091CD -:1022E000DA0191FF04C08E830E9426058E8125E0CD -:1022F00030E0A501022E01C0440F0A94EAF7E42E53 -:102300004F21C1F029839A828E2191E009F490E057 -:102310009B830E94421C8160782F9D838C8349811E -:102320005A816B818D810E94CF11F6018081E82650 -:10233000E08204C021503109E0F6BDCF0E94E21FC7 -:10234000109176010E94E1101817B9F00E94E11077 -:102350008093760126960FB6F894DEBF0FBECDBFF0 -:10236000DF91CF911F910F91FF90EF90DF90CF9071 -:10237000BF90AF909F900C94DA0926960FB6F89410 -:10238000DEBF0FBECDBFDF91CF911F910F91FF90A8 -:10239000EF90DF90CF90BF90AF909F900895CF9334 -:1023A000DF93CDB7DEB72B970FB6F894DEBF0FBE25 -:1023B000CDBF4F83588769877A878B87DE01119657 -:1023C00086E0FD0111928A95E9F785E0FE013796D6 -:1023D00001900D928A95E1F749815A816B817C8148 -:1023E0008D819E810E9418182B960FB6F894DEBF3F -:1023F0000FBECDBFDF91CF910895CF93882309F40D -:10240000C2C0C82F823859F40E94E11081FDBBC0C0 -:1024100089E30E94F21A0E94BF1B89E30CC0833833 -:1024200079F40E94E11080FDAEC083E50E94F21AAB -:102430000E94BF1B83E50E94341BCF910C94BF1BED -:10244000843859F40E94E11082FD9DC087E40E9407 -:10245000F21A0E94BF1B87E4EECF8CEF8C0F813AFB -:1024600048F48C2F0E94252281118DC08C2F0E9450 -:10247000F21AE3CF80E28C0F883048F4C77081E015 -:1024800001C0880FCA95EAF70E94781BD6CF8BE56A -:102490008C0F833078F4C53A29F0C63A31F083E8DE -:1024A00090E005C081E890E002C082E890E0CF9122 -:1024B0000C94031188E58C0F833108F064C0C83A8E -:1024C00039F1C93A41F1CA3A49F1CB3A51F1CC3A22 -:1024D00059F1CD3A61F1C03B69F1CE3A71F1CF3A91 -:1024E00079F1C13B81F1C23B89F1C33B91F1C43B1E -:1024F00099F1C53BA1F1C63BA9F1C73BB1F1C83B7E -:10250000B9F1C93BC1F1CA3BC9F180E090E038C0E4 -:1025100082EE90E035C089EE90E032C08AEE90E025 -:102520002FC085EB90E02CC086EB90E029C087EBB4 -:1025300090E026C08CEC90E023C08DEC90E020C0B1 -:1025400083E891E01DC08AE891E01AC082E991E039 -:1025500017C084E991E014C081E292E011C083E2E7 -:1025600092E00EC084E292E00BC085E292E008C0E7 -:1025700086E292E005C087E292E002C08AE292E041 -:10258000CF910C941911CF910895882309F44BC071 -:10259000823859F40E94E11081FF45C089E30E940E -:1025A000F21A0E94BF1B89E30CC0833871F40E94A9 -:1025B000E11080FF38C083E50E94F21A0E94BF1B21 -:1025C00083E50E94341B0C94BF1B843859F40E948D -:1025D000E11082FF28C087E40E94F21A0E94BF1B0C -:1025E00087E4EFCF9CEF980F913A58F390E2980F61 -:1025F000983050F4877091E001C0990F8A95EAF7FE -:10260000892F0E947E1BDFCF9BE5980F933020F42B -:1026100080E090E00C940311885A833120F480E02C -:1026200090E00C9419110895882321F00E94781BE2 -:102630000C94BF1B0895882321F00E947E1B0C94EC -:10264000BF1B08957F928F929F92AF92BF92CF92BD -:10265000DF92EF92FF920F931F93CF93DF931F921E -:10266000CDB7DEB77C01C62E772EFC010581029521 -:102670000F70128111110E94951B0E94EB1A882382 -:1026800079F0112369F080E28C0D883048F082E007 -:102690000E94D41A0E94EB1A91E0D82ED92601C0CC -:1026A000D12CE72DE295EF70F0E0E759FF4F0C9445 -:1026B0005A24872D807F072D0F70882311F00295F3 -:1026C000007F112389F0002309F490C180E28C0D72 -:1026D000883020F4802F0E94781B03C0802F0E9436 -:1026E000881B0E94BF1B82C18C2D0E94C512002333 -:1026F00009F495C180E28C0D883020F4802F0E946F -:102700007E1B03C0802F0E948E1B0E94BF1B87C1AF -:10271000972D907F872D8F70903211F08295807F5A -:10272000CC2021F0F1E0CF16B1F01EC0112349F00A -:10273000002309F414C1013009F011C10E94A81B43 -:102740006EC1002319F0013009F469C189830E9428 -:10275000AB1B89810AC1112321F0023008F05FC14F -:10276000FEC001115CC101C1112321F0002309F455 -:10277000F6C03CC1002309F4F8C03EC1872D869500 -:102780008695837090E0009719F0019761F047C13A -:10279000112321F08C2D972D937002C080E090E0E2 -:1027A0000E9403113CC1112321F08C2D972D9370B1 -:1027B00002C080E090E00E94191131C18C2D1123DC -:1027C00019F00E94EA1E02C00E94521F0E94D71FE9 -:1027D00026C1872D837009F052C0111120C18C2DA4 -:1027E000829586958770880F880F9C2D9F70892E03 -:1027F000912CA12CB12C082E04C0880C991CAA1C69 -:10280000BB1C0A94D2F7C4FE14C00FE010E020E015 -:1028100030E0B901A80104C0440F551F661F771F9F -:102820008A95D2F7CB01BA01609570958095909505 -:1028300003C060E070E0CB01272D2695269523701C -:1028400030E02230310569F02330310589F0682904 -:1028500079298A299B292130310571F00E9460195C -:10286000DEC0682979298A299B290E947C19D7C052 -:102870000E946019C501B4010E944419D0C01123FF -:1028800019F0872D817001C08695882309F4C7C08F -:102890008C2D829586958770880F880F9C2D9F7050 -:1028A000892E912CA12CB12C082E04C0880C991CC7 -:1028B000AA1CBB1C0A94D2F7C4FE14C00FE010E09F -:1028C00020E030E0B901A80104C0440F551F661F85 -:1028D000771F8A95D2F7CB01BA01609570958095E4 -:1028E000909503C060E070E0CB01272D26952695DA -:1028F0002370422F50E04230510569F043305105BA -:1029000089F0682979298A299B294130510571F07C -:102910000E943A1A84C0682979298A299B290E9431 -:10292000561A7DC00E943A1AC501B4010E941E1AAF -:1029300076C08C2D90E0FC01E05EF109E531F105F7 -:1029400008F050C0E758FF4F0C945A240C2D0F701C -:10295000872D8F71112331F00E94B719802F0E94AB -:1029600014135DC00E94D819802F0E941B1357C0FA -:10297000112339F0011153C0872D8F710E94FD1969 -:102980004EC0023008F04BC0F7CF112339F0872D2D -:102990008F710E94B71943C01123C9F3872D8F711E -:1029A0000E94D8193CC0112329F0872D8F710E94F5 -:1029B000A21935C00E94981932C0112351F0172D69 -:1029C0001F71812F0E94B71963E0812F0E94CB1ADB -:1029D00026C081E00E94D41A023008F182E00E94F1 -:1029E000D41A1DC0112331F0002389F28C2D0E94CE -:1029F000FD1115C0002391F28C2D0E94C5120FC04D -:102A0000472D4F706C2DC7010E94FE050E94BC1817 -:102A100006C0472D4F706C2DC7010E94E906DD20CE -:102A2000F9F00E94C71A80FD1BC0F70112820E94B4 -:102A3000C11A0E94B719C7010E943F150E94C11A0E -:102A40000F90DF91CF911F910F91FF90EF90DF904A -:102A5000CF90BF90AF909F908F907F900C94D8199B -:102A60000F90DF91CF911F910F91FF90EF90DF902A -:102A7000CF90BF90AF909F908F907F9008950F93CD -:102A80001F93CF93DF93EC01888199812B813C8147 -:102A9000232BB9F09F3F11F48F3F99F0CE010E9494 -:102AA0004106882371F0688179818A810E94BD1A6C -:102AB0008C010E94721A0E943919B801CE010E943D -:102AC0002213DF91CF911F910F9108950E94951BC2 -:102AD0000E94A51B0E946A1B0E94BF1B0E948820A7 -:102AE0000E94D71F80E090E00E94031180E090E0F8 -:102AF0000C9419110E94851B0C9466150E94B21A41 -:102B0000292F22952F7030E02C3031054CF42A30DB -:102B100031056CF42250310922303105A8F407C088 -:102B20002C30310569F02F30310551F00DC0803F58 -:102B300069F018F4803E40F409C0843F29F406C0CF -:102B400093FB882780F9089580E0089581E0089537 -:102B5000CF93DF9300D000D01F92CDB7DEB70F9098 -:102B60000F900F900F900F90DF91CF910895CF931A -:102B7000DF9300D000D000D0CDB7DEB726960FB6D9 -:102B8000F894DEBF0FBECDBFDF91CF9108951F93A4 -:102B9000CF93DF93C091850116E080918601C8171D -:102BA00099F0D0E01C9FF0011D9FF00D1124E95712 -:102BB000FE4F4081518162817381848195810E94A1 -:102BC000B7152196C770E9CFDF91CF911F91089576 -:102BD0004091B7015091B8016091B9017091BA016B -:102BE0008091BB019091BC010C94B7158091BC0100 -:102BF00082958F7009F054C08091B901882309F43F -:102C00004FC080918501A09186016091B7017091BC -:102C1000B8014091BA015091BB01B6E08A1709F49E -:102C20003FC090E041155105C1F17F3F11F46F3F66 -:102C3000A1F1B89FF001B99FF00D1124E957FE4FA3 -:102C4000218172132AC02081621327C022812111A1 -:102C500024C0238134812417350710F42150310911 -:102C6000241B350B283C3105C0F42091BC012F708A -:102C700020612093BC0126E0289FF001299FF00DE0 -:102C80001124E457FE4F80818F708061808387EB31 -:102C900091E00E943F150C94C71501968770BECF36 -:102CA0000895CF92DF92EF92FF920F931F93CF93ED -:102CB000DF93CDB7DEB762970FB6F894DEBF0FBED5 -:102CC000CDBF8C0185E0F801DE011D9601900D92CB -:102CD0008A95E1F7D8014C9111965C911197129663 -:102CE0006C9112971396CD90DC9014973091B701A8 -:102CF0007091B8018091BA019091BB01009709F4DD -:102D00006BC17F3F19F43F3F09F466C1E090B90100 -:102D1000EE2009F4C0C02091BC01C816D90628F0E5 -:102D2000F601E81BF90BCF0104C0809590958C0D3E -:102D30009D1DFF24F394883C910578F0F12C207FB1 -:102D400009F0C6C07C2DD98AC88A89890E94A81535 -:102D500087EB91E00E943F15B1C0822F807F09F080 -:102D600046C0751314C0341312C0611110C02F7007 -:102D700020612093BC010E94E81587EB91E00E943E -:102D80003F158091BC01D80115968C932EC0CD289B -:102D900019F15F3F11F44F3FF9F0F62E61111CC09D -:102DA000809185012091860136E0821709F45AC08E -:102DB00090E0389FF001399FF00D1124E957FE4F44 -:102DC0007181571306C07081471303C0728171115E -:102DD00003C001968770E9CFF62E662309F418C167 -:102DE0008091BC0181608093BC01F12C11C17513ED -:102DF00008C0341306C0611104C08091BC01D80121 -:102E0000C3C04D875E878D859E856A8B0E947E1527 -:102E10006A898823E1F16623D1F12091BC01822FD8 -:102E200082958F7090E0029774F08091B701909135 -:102E3000B80198878F831986DB86CA862C87CE01D6 -:102E400007960E943F1586E0F801A7EBB1E00190DC -:102E50000D928A95E1F70E94F6150E94E815FF246D -:102E6000F394D6C04D875E878D859E850E94B21AE9 -:102E7000292F22952F7030E0223031050CF0BCC094 -:102E80009F7009F0B6C0805E883008F4C1C0C801E8 -:102E90000E943F15E4CFC816D90608F453C0F601C6 -:102EA000E81BF90BCF01883C910508F450C0F12CC8 -:102EB0007C2DD98AC88A89890E94A815E7EBF1E0A0 -:102EC00086E0DF011D928A95E9F70E94E815A0C00F -:102ED000751314C0341312C0611110C08091BC016D -:102EE000F8018583C8010E943F1586E0E7EBF1E019 -:102EF000DF011D928A95E9F7FE2C8AC04D875E8717 -:102F00008D859E856A8B0E947E156A89882309F4C7 -:102F1000BECF662309F4BBCF2091BC01822F8295DE -:102F20008F7090E002970CF48ECF8091B701909152 -:102F3000B8019A8389831B82DD82CC822E83CE01E5 -:102F400001967FCF809590958C0D9D1DACCFF62E70 -:102F5000662309F49CCF75132EC034132CC0209126 -:102F6000BC0120FD1FC0822F82958F70D9F0D8013F -:102F700015962C9315978F3049F08F5F982F929567 -:102F8000907F822F8F70892B15968C93C8010E9499 -:102F90003F1586E0F801A7EBB1E001900D928A950C -:102FA000E1F793CF86E0F801A7EBB1E001900D9235 -:102FB0008A95E1F72DC04D875E878D859E850E949D -:102FC0007E15811140CF8091BC0181608093BC014E -:102FD000C8010E943F151CC0662309F458CF4D87D5 -:102FE0005E878D859E850E947E15882309F44FCFCC -:102FF0002ACF811148CF0CC0243031050CF047CFC7 -:103000009F7009F440CFF8019581907F09F03BCF84 -:103010008F2D62960FB6F894DEBF0FBECDBFDF9145 -:10302000CF911F910F91FF90EF90DF90CF90089577 -:103030001F93CF93DF93CDB7DEB72C970FB6F894DD -:10304000DEBF0FBECDBF4F83588769877A878B87D6 -:103050009C87CE0107960E945116882369F08F81C4 -:1030600098852A853B85232BF1F19F3F09F063C0AA -:103070008F3F09F060C037C086E0FE013796DE0161 -:10308000119601900D928A95E1F76F817885EA8516 -:10309000FB85309741F17F3F11F46F3F21F1209183 -:1030A000860130E0C901019687709927409185011A -:1030B00050E08417950709F447C069837A83FD833C -:1030C000EC8396E0929FD001939FB00D1124A957F5 -:1030D000BE4FFE01319601900D929A95E1F78093D3 -:1030E00086010E94C71516E08091850190918601A6 -:1030F0008917C1F1189FC001112489579E4F0E9462 -:103100005116882379F1E09185011E9FF001112469 -:10311000E957FE4F4081518162817381848195819D -:103120000E94B7158091850190E0019687709927DC -:1031300080938501D9CF4F81588569857A858B85A4 -:103140009C850E94B715CFCF0E947A1510928601F8 -:1031500010928501E7EBF1E086E0DF011D928A9590 -:10316000E9F7C1CF2C960FB6F894DEBF0FBECDBFE6 -:10317000DF91CF911F910895EF92FF920F931F93CC -:10318000CF93DF938C01009709F46CC0F12CEE24EF -:10319000E394E8012196F8018491843740F4843067 -:1031A00008F051C0813081F0823019F15BC0853761 -:1031B00009F444C0A8F19CE7980F903708F052C07A -:1031C0008F770E94C51241C00E5F1F4FFE01C49150 -:1031D00080E28C0F883048F4C7708E2D01C0880FB4 -:1031E000CA95EAF70E94981B14C08C2F0E94FD110B -:1031F0002DC00E5F1F4FFE01C49180E28C0F8830FE -:1032000058F4C7708E2D01C0880FCA95EAF70E9446 -:103210009E1B0E94BF1B1AC08C2F0E94C51216C095 -:103220000E5F1F4FFE01C491CC2381F08FE99FE018 -:103230000197F1F700C00000C150F6CF0E5F1F4F9D -:10324000FE01F49003C00E94FD118E018F2D882392 -:1032500009F49FCFEFE9FFE03197F1F700C00000DC -:103260008150F5CFDF91CF911F910F91FF90EF909B -:10327000089508956093C1017093C2018093C301C2 -:103280009093C4010C9466150F931F930091C10194 -:103290001091C2012091C3013091C401DC01CB0126 -:1032A000802B912BA22BB32B8093C1019093C20151 -:1032B000A093C301B093C4011F910F910C946615A4 -:1032C0000F931F930091C1011091C2012091C3017E -:1032D0003091C401DC01CB0180239123A223B323CD -:1032E0008093C1019093C201A093C301B093C40124 -:1032F0001F910F910C9466150F931F930091C101BC -:103300001091C2012091C3013091C401DC01CB01B5 -:1033100080279127A227B3278093C1019093C201F0 -:10332000A093C301B093C4011F910F910C94661533 -:103330001092BD011092BE011092BF011092C00107 -:103340000C94661541E050E060E070E004C0440F6A -:10335000551F661F771F8A95D2F74093BD01509382 -:10336000BE016093BF017093C0010C94661541E0EB -:1033700050E060E070E004C0440F551F661F771FE7 -:103380008A95D2F78091BD019091BE01A091BF01B5 -:10339000B091C001482B592B6A2B7B2B4093BD0168 -:1033A0005093BE016093BF017093C0010C946615E9 -:1033B00041E050E060E070E004C0440F551F661F1C -:1033C000771F8A95D2F740955095609570958091BA -:1033D000BD019091BE01A091BF01B091C0014823F1 -:1033E00059236A237B234093BD015093BE01609310 -:1033F000BF017093C0010C94661541E050E060E09D -:1034000070E004C0440F551F661F771F8A95D2F7DE -:103410008091BD019091BE01A091BF01B091C0010A -:10342000482759276A277B274093BD015093BE0147 -:103430006093BF017093C0010C9466150F931F93A6 -:103440000091BD011091BE012091BF013091C001DA -:10345000DC01CB01802B912BA22BB32B8093BD01E0 -:103460009093BE01A093BF01B093C0011F910F9133 -:103470000C9466150F931F930091BD011091BE012E -:103480002091BF013091C001DC01CB018023912349 -:10349000A223B3238093BD019093BE01A093BF01EB -:1034A000B093C0011F910F910C9466150F931F9359 -:1034B0000091BD011091BE012091BF013091C0016A -:1034C000DC01CB0180279127A227B3278093BD0180 -:1034D0009093BE01A093BF01B093C0011F910F91C3 -:1034E0000C9466150895CF92DF92EF92FF920F939E -:1034F0001F93CF93DF938C01C090C101D090C20184 -:10350000E090C301F090C4018091BD019091BE0193 -:10351000A091BF01B091C001C82AD92AEA2AFB2A8A -:10352000CFE1D0E0D701C6010C2E04C0B695A79517 -:10353000979587950A94D2F780FF06C0B8018C2F23 -:103540000E943F09019721F4219760F780E001C0B4 -:103550008C2FDF91CF911F910F91FF90EF90DF9013 -:10356000CF900895CF93DF93EC010E94731ABE01B0 -:103570000E943F09DF91CF910895CB010E94B21ABA -:1035800008958091C50185958595859508958091CB -:10359000C5018770089598E0899F90011124262B1A -:1035A0002093C5010C94B7192091C5018095822301 -:1035B0008093C501982F977069F430E0482F552704 -:1035C00047FD50952417350729F0859585958595F4 -:1035D0000C94D81908959091C501977081E009F471 -:1035E00080E0089590910C01992321F090910D01B4 -:1035F000911109C020910E0130910F01F90132960D -:103600009FEF40E01FC0982F9695969596959F3016 -:1036100050F5E0910E01F0910F01E90FF11D877057 -:1036200021E030E0A90102C0440F551F8A95E2F75E -:10363000CA019181892B818308959F3F39F04F5FA3 -:103640004E3041F051915813F8CF0DC05111F7CFC2 -:10365000942FF5CF9F3F39F0F901E90FF11D97FD48 -:10366000FA9582830895089590910C01992321F091 -:1036700090910D01911109C020910E0130910F011F -:10368000F9013296205F3F4F1FC0982F969596956F -:1036900096959F30F0F4E0910E01F0910F01E90F43 -:1036A000F11D877021E030E0A90102C0440F551FD1 -:1036B0008A95E2F7CA0180959181892381830895D3 -:1036C0003196E217F30729F090819813F9CF108211 -:1036D000F7CF089581E090E0E0910E01F0910F01A5 -:1036E000E80FF91F1082019680319105A9F708951E -:1036F0009091D901892B8093D9010895809590915B -:10370000D90189238093D90108951092D901089590 -:103710009091D801892B8093D8010895809590913C -:10372000D80189238093D80108951092D801089573 -:103730009091D701892B8093D7010895809590911E -:10374000D70189238093D70108951092D701089556 -:103750008093C60108951092C601089580910E01CC -:1037600090910F01FC0131969C01205F3F4F80E05A -:10377000919191118F5FE217F307D1F70895E091CE -:103780000E01F0910F018091D9018083E0910E012B -:10379000F0910F0190818091D801892B8083E09175 -:1037A0000E01F0910F0190818091D701892B8083C8 -:1037B0008091C601882361F0E0910E01F0910F0124 -:1037C0009081892B80830E94AE1B81111092C601CB -:1037D00080910E0190910F010C94ED1020E0009764 -:1037E00039F0AC0141505109842395232F5FF7CF65 -:1037F000822F08958091F101843021F11092DB0134 -:1038000020E488E190E00FB6F894A89580936000DA -:103810000FBE2093600080E00E94DA0983B7817FA9 -:10382000846083BF83B7816083BF7894889583B7B2 -:103830008E7F83BF88E10FB6F8948093600010926A -:1038400060000FBE0895089508950E94231C0E94F1 -:1038500032040E94241C0E94270591E0811101C0BE -:1038600090E0892F08950E947A150E94E1100C942F -:10387000DA0982E084BD93E095BD9AEF97BD80930D -:103880006E0008952FB7F8948091DC019091DD01CE -:10389000A091DE01B091DF012FBF0895CF92DF929A -:1038A000EF92FF920F931F932FB7F8944091DC0192 -:1038B0005091DD016091DE017091DF012FBF6A013F -:1038C0007B01EE24FF248C0120E030E0C016D106FD -:1038D000E206F30610F4415051099A01281B390BF6 -:1038E000C9011F910F91FF90EF90DF90CF90089545 -:1038F0001F920F920FB60F9211248F939F93AF9345 -:10390000BF938091DC019091DD01A091DE01B09127 -:10391000DF010196A11DB11D8093DC019093DD01B3 -:10392000A093DE01B093DF01BF91AF919F918F9182 -:103930000F900FBE0F901F9018950E94DE0DF89407 -:103940002FEF87EA91E6215080409040E1F700C0D8 -:10395000000087E090EBDC018093FB019093FC0179 -:10396000A093FD01B093FE019CE088E10FB6F894AE -:10397000A895809360000FBE90936000FFCFEF92F8 -:10398000FF920F931F93CF93DF93D82FCDE08C2F0F -:103990000E94200505E010E0E82EF12CC701002E62 -:1039A00002C0959587950A94E2F780FF09C0602FC1 -:1039B0007C2F80E00E94EA06D81302C081E006C096 -:1039C0000150110958F7C15010F780E0DF91CF91F5 -:1039D0001F910F91FF90EF900895CF93C82F8CE225 -:1039E0000E94BF1C882321F08C2FCF910C94BF1C08 -:1039F00080E0CF910895CF930E94421E811102C0B2 -:103A00000E94281EC5E6C15049F00E9432048FE38F -:103A10009CE90197F1F700C00000F5CF89E20E9410 -:103A2000ED1C811113C18AE20E94ED1C81110E94DC -:103A3000281E85E00E94ED1C81110E949D1C0E94A1 -:103A40004D1E8093DA0187E00E94ED1C8823A9F1C6 -:103A50008BE10E94ED1C882351F08091DA0181FBFB -:103A6000222720F991E0922790FB81F90EC08EE089 -:103A70000E94ED1C882361F08091DA0182FB2227ED -:103A800020F991E0922790FB82F98093DA0115C02A -:103A900080E10E94ED1C9091DA01882341F093FBB4 -:103AA000222720F981E0822780FB93F904C0892F27 -:103AB000809580FB90F99093DA018091DA010E9461 -:103AC000511E0E945F1E8093FA0180EE0E94ED1C41 -:103AD000882341F08091FA01982F909590FB80F90E -:103AE0008093FA0189E30E94ED1C882359F08091AC -:103AF000FA0181FB222720F991E0922790FB81F9BE -:103B00008093FA0182EE0E94ED1C882359F0809187 -:103B1000FA0182FB222720F991E0922790FB82F99B -:103B20008093FA0186EE0E94ED1C882359F0809163 -:103B3000FA0183FB222720F991E0922790FB83F979 -:103B40008093FA0183EE0E94ED1C882359F0809146 -:103B5000FA0184FB222720F991E0922790FB84F957 -:103B60008093FA0185E30E94ED1C882359F080912F -:103B7000FA0185FB222720F991E0922790FB85F935 -:103B80008093FA0181E30E94ED1C882359F0809113 -:103B9000FA0186FB222720F991E0922790FB86F913 -:103BA0008093FA0181E10E94ED1C882359F08091F5 -:103BB000FA0187FB222720F991E0922790FB87F9F1 -:103BC0008093FA018091FA010E94631E8091FA01AC -:103BD00087FB882780F980930D0187E20E94ED1C06 -:103BE000C82F8EE10E94ED1C8111C2608FE10E94FE -:103BF000ED1C8111C46080E20E94ED1C8111C8603F -:103C000081E20E94ED1C8111C06182E20E94ED1CE4 -:103C10008111C06283E20E94ED1C8111C06484E2C4 -:103C20000E94ED1C882311F0C06802C0CC2329F04B -:103C30008C2F0E945A1E6C2F03C00E94561E682FA4 -:103C400070E080E090E0CF910C943A19CF91089504 -:103C50006DEE7EEF80E090E00E94942460E082E0D0 -:103C600090E00E94822460E083E090E00E94822441 -:103C700060E084E090E00E94822460E085E090E0D3 -:103C80000C94822480E090E00E947C2421E08D3E10 -:103C90009E4F09F020E0822F089582E090E00C947E -:103CA0007424682F82E090E00C94822483E090E0FA -:103CB0000C947424682F83E090E00C94822484E0B8 -:103CC00090E00C947424682F84E090E00C9482249B -:103CD0008091E20180FF0BC06091130185E0689F35 -:103CE000B001112475956795759567952BC081FF77 -:103CF00009C06091130185E0689FB001112475959A -:103D0000679520C082FF07C06091130185E0689F1E -:103D1000B001112417C09091E3019923D1F0609173 -:103D20001201961788F72091130185E0289F9001D2 -:103D30001124929FA001939F500D112470E0CA019D -:103D40000E9446246038710540F46115710539F010 -:103D500002C065E070E0862F08958FE7089581E046 -:103D600008958091E20180FF08C06091110170E028 -:103D7000759567957595679521C081FF06C060911F -:103D8000110170E07595679519C082FF04C06091BC -:103D9000110170E010C09091E3019923C1F060918E -:103DA00010019617A0F780911101899FC00111247D -:103DB00070E00E9446246038710528F46115710591 -:103DC00021F0862F08958FE7089581E0089561E03E -:103DD00070E0F4CF803F21F40E94681E819504C0FA -:103DE000813F29F40E94681E8093E6010895823F76 -:103DF00021F40E94681E819504C0833F29F40E942B -:103E0000681E8093E5010895893F19F40E94B11E50 -:103E100005C08A3F31F40E94B11E81958093E7016D -:103E200008958B3F21F40E94B11E819504C08C3F00 -:103E300029F40E94B11E8093E8010895843F21F483 -:103E40008091E401816017C0853F21F48091E401F5 -:103E5000826011C0863F21F48091E40184600BC030 -:103E6000873F21F48091E401886005C0883F31F4E8 -:103E70008091E40180618093E40108958D3F21F4F5 -:103E80008091E20181600BC08E3F21F48091E201BC -:103E9000826005C08F3F29F48091E20184608093A5 -:103EA000E2010895803F39F48091E60187FF6CC0FC -:103EB0001092E60169C0813F29F48091E60118164D -:103EC000BCF362C09091E501823F29F497FF5CC08A -:103ED0001092E50159C0833F19F41916CCF354C070 -:103EE000893F41F48091E70118160CF04DC0109203 -:103EF000E7014AC08A3F29F48091E70187FF44C067 -:103F0000F6CF8B3F39F48091E80187FF3DC01092D6 -:103F1000E8013AC08C3F29F48091E8011816BCF3FF -:103F200033C0843F21F48091E4018E7F17C0853F28 -:103F300021F48091E4018D7F11C0863F21F48091AE -:103F4000E4018B7F0BC0873F21F48091E401877FE0 -:103F500005C0883F31F48091E4018F7E8093E401B5 -:103F600013C08D3F21F48091E2018E7F0BC08E3F04 -:103F700021F48091E2018D7F05C08F3F29F480916B -:103F8000E2018B7F8093E2018091E50181110EC0F7 -:103F90008091E60181110AC08091E701811106C07C -:103FA0008091E801811102C01092E301089584EE2E -:103FB00091E00E94F8100E94421C9093E1018093CE -:103FC000E00108951F93CF93DF938091E0019091DA -:103FD000E1010E944E1CAC019091E301992321F074 -:103FE0002091140130E006C0209115018AE0289F3D -:103FF000900111244217530708F486C08091E5010F -:10400000C091E601D091E7011091E801811107C04C -:10401000C11176C0D11174C0111172C075C09F3F1B -:1040200019F09F5F9093E301181624F40E94681E14 -:104030008093E5018091E50187FF05C00E94681E1D -:1040400081958093E5011C1624F40E94681E8093DC -:10405000E6018091E60187FF05C00E94681E8195F8 -:104060008093E6016091E501662339F1C091E60194 -:10407000CC2319F1772767FD7095872F972F0E9422 -:10408000572323E333E343E35FE30E94BB230E9410 -:1040900024236093E5016C2F772767FD7095872FA8 -:1040A000972F0E94572323E333E343E35FE30E9408 -:1040B000BB230E9424236093E6011D1624F40E9472 -:1040C000B11E8093E7018091E70187FF05C00E9440 -:1040D000B11E81958093E701111624F40E94B11E50 -:1040E0008093E8018091E80187FF05C00E94B11E1E -:1040F00081958093E801DF91CF911F910C94D71F98 -:104100009F3F09F08ECF96CFDF91CF911F910895F9 -:10411000E4EEF1E085E0DF011D928A95E9F7109267 -:10412000E3011092E2010895833081F128F4813097 -:1041300059F08230D1F00895853009F449C0B8F1C2 -:10414000863009F456C0089580911501262F30E07D -:10415000280F311D2F3F310524F4680F609315019E -:1041600008958FEF80931501089580911401262FF3 -:1041700030E0280F311D2F3F310524F4680F609384 -:10418000140108958FEF8093140108958091130115 -:10419000262F30E0280F311D2F3F310524F4680F02 -:1041A0006093130108958FEF809313010895809118 -:1041B0001201262F30E0280F311D2F3F310524F446 -:1041C000680F6093120108958FEF80931201089594 -:1041D00080911101262F30E0280F311D2F3F31052E -:1041E00024F4680F6093110108958FEF80931101FB -:1041F000089580911001262F30E0280F311D2F3FA8 -:10420000310524F4680F6093100108958FEF8093B7 -:1042100010010895833011F128F4813049F0823083 -:1042200091F00895853081F120F18630C1F1089533 -:1042300080911501681720F4861B8093150108955D -:1042400010921501089580911401681720F4861BBF -:104250008093140108951092140108958091130120 -:10426000681720F4861B80931301089510921301A0 -:10427000089580911201681720F4861B8093120123 -:10428000089510921201089580911101681720F489 -:10429000861B809311010895109211010895809159 -:1042A0001001681720F4861B809310010895109266 -:1042B000100108950F931F938D3109F46BC008F01E -:1042C0003FC08E3009F47FC0C0F4873009F469C064 -:1042D00068F4863009F0B1C08091DA01817F8E7F69 -:1042E0008093DA0181E08093EA01A8C0883009F464 -:1042F000A2C08B3009F49FC0A0C0863109F49BC0D6 -:1043000078F4803109F472C0813109F096C00E94BE -:104310007A1590910D0181E0892780930D018BC062 -:10432000893109F488C08B3109F087C08091DA01A6 -:1043300081FB222720F991E0922790FB81F94CC064 -:10434000853309F470C048F4873209F46CC008F46E -:1043500059C0893209F467C070C0833438F48A3395 -:1043600008F04EC0883309F466C067C0833409F48E -:104370005AC0883409F061C00E947A150FEF13ED1E -:1043800020E3015010402040E1F700C000000E94EF -:104390009D1C51C00E94DE220E94E1100E94DA0999 -:1043A0004AC09091DA01892F8095817080FB90F945 -:1043B00029F0966098609093DA0140C0997F977FCA -:1043C0009093DA0138C08091DA0182FB222720F92C -:1043D00091E0922790FB82F98093DA01992359F1B9 -:1043E0008091DA0181608093DA0125C08091DA0141 -:1043F00083FB222720F991E0922790FB83F9ECCFF1 -:10440000895301C08D5141E050E060E070E08A01C5 -:104410009B0104C0000F111F221F331F8A95D2F782 -:10442000C901B80104C061E070E080E090E00E9442 -:104430003A190E947A1581E001C080E01F910F9126 -:10444000089580E0089580E00895CF93C82F80916B -:10445000EA01813079F018F08230E9F187C0E0910B -:104460000E01F0910F018081813169F0823209F0F3 -:104470007FC009C0E0910E01F0910F018081813170 -:1044800011F0823261F48C2F0E942122811104C02C -:104490008C2F0E945A211DC081E090E01AC08C2F01 -:1044A0000E942322811114C0C43179F048F4CB302A -:1044B00079F0C03109F060C082E08093EA0108C061 -:1044C000C93219F0C83321F057C01092EA0154C024 -:1044D00081E0817053C0C93289F118F5C43171F19E -:1044E000A8F4C73009F046C08AE08093150194E132 -:1044F0009093140193E0909313018093120188E04C -:104500008093110188E28093100134C0CE51C630EF -:1045100088F5EC2FF0E0E65DFE4F80818093E901A5 -:1045200029C0CE34E9F020F4CB3421F56AE013C081 -:10453000C13579F0C235F1F461E00DC08091E90137 -:10454000882319F01092E90115C081E08093EA01F7 -:1045500015C061E006C08091E9010E9494200AC064 -:104560006AE08091E9010E940A2104C01092EA01E8 -:1045700080E004C081E002C080E0ABCFCF9108951D -:10458000E1E8F0E0808188608083808181608083C1 -:104590008FB7F89493E09093890090ED9093880002 -:1045A0008FBF0895EFE6F0E08081826080830895F8 -:1045B000EFE6F0E080818D7F80830895EFE6F0E004 -:1045C000908182E08927808308951F920F920FB611 -:1045D0000F9211242F933F934F935F936F937F9389 -:1045E0008F939F93AF93BF93EF93FF938091EB01D2 -:1045F0009091EC0101969093EC018093EB01811175 -:1046000003C082E00E94DA09E091EC01E695E695AC -:10461000F0E0EF57F94FE4918091EB018E1303C066 -:1046200080E00E94DA09FF91EF91BF91AF919F91D5 -:104630008F917F916F915F914F913F912F910F904B -:104640000FBE0F901F90189504D06894B1118DC0C3 -:10465000089570D088F09F5790F0B92F9927B751DF -:10466000A0F0D1F0660F771F881F991F1AF0BA9536 -:10467000C9F712C0B13081F077D0B1E0089574C0AD -:10468000672F782F8827B85F39F0B93FCCF386952C -:1046900077956795B395D9F73EF490958095709589 -:1046A00061957F4F8F4F9F4F0895E89409C097FB06 -:1046B0003EF490958095709561957F4F8F4F9F4FF9 -:1046C0009923A9F0F92F96E9BB279395F69587953D -:1046D00077956795B795F111F8CFFAF4BB0F11F400 -:1046E00060FF1BC06F5F7F4F8F4F9F4F16C08823A7 -:1046F00011F096E911C0772321F09EE8872F762FDD -:1047000005C0662371F096E8862F70E060E02AF01D -:104710009A95660F771F881FDAF7880F9695879509 -:1047200097F9089557FD9058440F551F59F05F3F72 -:1047300071F04795880F97FB991F61F09F3F79F0C3 -:1047400087950895121613061406551FF2CF469545 -:10475000F1DF08C0161617061806991FF1CF8695C7 -:104760007105610508940895E894BB2766277727AB -:10477000CB0197F908950BD078C069D028F06ED09E -:1047800018F0952309F05AC05FC01124EECFCADF9C -:10479000A0F3959FD1F3950F50E0551F629FF00154 -:1047A000729FBB27F00DB11D639FAA27F00DB11DAD -:1047B000AA1F649F6627B00DA11D661F829F222736 -:1047C000B00DA11D621F739FB00DA11D621F839FBD -:1047D000A00D611D221F749F3327A00D611D231F93 -:1047E000849F600D211D822F762F6A2F11249F57E1 -:1047F00050408AF0E1F088234AF0EE0FFF1FBB1F04 -:10480000661F771F881F91505040A9F79E3F5105A2 -:1048100070F014C0AACF5F3FECF3983EDCF38695AE -:1048200077956795B795F795E7959F5FC1F7FE2B4D -:10483000880F911D9695879597F9089597F99F6729 -:1048400080E870E060E008959FEF80EC0895002418 -:104850000A941616170618060906089500240A94E5 -:1048600012161306140605060895092E0394000C6B -:1048700011F4882352F0BB0F40F4BF2B11F460FFFA -:1048800004C06F5F7F4F8F4F9F4F089597FB072E98 -:1048900016F4009407D077FD09D00E94602407FC2D -:1048A00005D03EF4909581959F4F08957095619540 -:1048B0007F4F0895EE0FFF1F0590F491E02D0994AE -:1048C000AA1BBB1B51E107C0AA1FBB1FA617B70736 -:1048D00010F0A61BB70B881F991F5A95A9F7809552 -:1048E0009095BC01CD010895F999FECF92BD81BD8F -:1048F000F89A992780B50895A8E1B0E042E050E029 -:104900000C949C24262FF999FECF92BD81BDF89A74 -:10491000019700B4021639F01FBA20BD0FB6F89403 -:10492000FA9AF99A0FBE08950196272F0E948324C0 -:104930000C948224DC01CB01FC01F999FECF06C066 -:10494000F2BDE1BDF89A319600B40D92415050404D -:08495000B8F70895F894FFCFB9 -:104958000220DC096A0A470A130ADF090101C701B4 -:1049680028080A03140A3F4D36394206F505BF05E3 -:104978008605190532054B05640501020304050681 -:044988000708090013 -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/csharp_dev/compiled.hex b/keyboards/ergodox_ez/keymaps/csharp_dev/compiled.hex deleted file mode 100644 index 3f42f6272..000000000 --- a/keyboards/ergodox_ez/keymaps/csharp_dev/compiled.hex +++ /dev/null @@ -1,1159 +0,0 @@ -:100000000C94F5020C9439030C9439030C943903C5 -:100010000C9439030C9439030C9439030C94390370 -:100020000C9439030C9439030C94B90E0C948B0F77 -:100030000C9439030C9439030C9439030C94390350 -:100040000C9439030C9445220C9439030C94390315 -:100050000C9439030C94271D0C9439030C94390328 -:100060000C9439030C9439030C9439030C94390320 -:100070000C9439030C9439030C9439030C94390310 -:100080000C9439030C9439030C9439030C94390300 -:100090000C9439030C9439030C9439030C943903F0 -:1000A0000C9439030C9439030C943903B505BB0542 -:1000B000C105C705CD05D205D705E105E605DC0577 -:1000C000EB05F005F505FA05FF050406F80F1A1013 -:1000D00008111A1008115F1082100811D710EA10C9 -:1000E000B913B913E813E8131E143E146F156F15F6 -:1000F00049146F15F914F91460156F156F1569150A -:100100000615061506150615061506150615061517 -:100110000615061506150615061506150615061507 -:10012000181525152C1533153D1501E1012602265C -:100130000127022702E101330233000111021101FC -:10014000080208011A021A012C022C000138023898 -:100150000138023801E101170217011202120107EA -:1001600002070112021202E1012C022C0001050219 -:1001700005011502150108020801040204010E021E -:100180000E01330233000111021101180218010F90 -:10019000020F010F020F00011502150108020801EC -:1001A000170217011802180115021501110211009A -:1001B00001090209010F020F0112021201040204D7 -:1001C00001170217012C022C00010C020C01110274 -:1001D0001101170217012C022C0001050205011262 -:1001E000021201120212010F020F012C022C000157 -:1001F0001602160117021701150215010C020C0157 -:10020000110211010A020A012C022C000119021923 -:100210000104020401150215012C022C000119022F -:100220001901120212010C020C01070207012C0233 -:100230002C00010602060112021201110211011620 -:10024000021601170217012C022C000116021601DA -:100250001702170104020401170217010C020C0116 -:10026000060206012C022C000113021301150215CF -:10027000010C020C011902190104020401170217F2 -:1002800001080208012C022C0001130213011802BC -:100290001801050205010F020F010C020C010602F4 -:1002A00006012C022C000000F0A1260227022F02DA -:1002B00030022B6100001E00140004001D64360291 -:1002C00019011F001A0016001B0037022C622000C3 -:1002D0000800070006003102286821001500090007 -:1002E000190024020601220017000A000500000080 -:1002F000374134022A0000003800000036001601A1 -:100300004C000000330000004A0023001C000B00DA -:10031000110000004D41240018000D0010002E00B7 -:10032000520025000C000E0034002E022868260022 -:1003300012000F001E022D002C62270013002D0258 -:100340003802250251002F0030001C011D0101530D -:10035000000029002B0001000100010000003A000C -:100360000A300B300100E30001003B000C300D307F -:100370000100E20001003C0010300F300E3001009F -:1003800001003D00113012301330010001003E0029 -:100390001430153016300000010035000100000057 -:1003A000310000001B01B200010000003502000016 -:1003B00001003F00173018301930000001004000E4 -:1003C0000100010001004B0001004100010001009B -:1003D00001004E004F0042000100010001004900F1 -:1003E00050004300010001000100460001004400EC -:1003F00045000100010001000000160345007200E5 -:1004000067006F0044006F007800200045005A002C -:10041000000016034500720067006F0044006F0083 -:100420007800200045005A00000004030904090276 -:100430006D00040100A0FA0904000001030101009D -:100440000921110100012240000705810308000A6B -:100450000904010001030102000921110100012228 -:100460004D000705820308000A0904020001030089 -:10047000000009211101000122360007058303084D -:10048000000A090403000103000000092111010012 -:100490000122390007058403100001120110010038 -:1004A000000008EDFE07130100010200010501092B -:1004B00006A101050719E029E71500250195087532 -:1004C000018102050819012905950575019102951B -:1004D000017503910105071900297715002501957C -:1004E0007875018102C005010980A101850216010C -:1004F0000026B7001A01002AB70075109501810087 -:10050000C0050C0901A1018503160100269C021AF1 -:1005100001002A9C02751095018100C005010902A5 -:10052000A1010901A10005091901290515002501ED -:100530009505750181029501750381010501093059 -:1005400009311581257F95027508810609381581C5 -:10055000257F950175088106050C0A38021581254D -:100560007F950175088106C0C005010906A1010536 -:100570000719E029E7150025019508750181029505 -:100580000175088101050819012905950575019175 -:10059000029501750391010507190029FF15002631 -:1005A000FF00950675088100C000000000000000F3 -:1005B00000000000010204060A0F17202C3A4A5DD1 -:1005C00071879DB3C7DAE9F5FCFFFCF5E9DAC7B33B -:1005D0009D87715D4A3A2C20170F0A06040201001C -:1005E0000000000000000000000011241FBECFEF3B -:1005F000DAE0DEBFCDBF04B603FE24C08091FD016A -:100600009091FE01A091FF01B09100028730904BC4 -:10061000A740B04BB9F41092FD011092FE01109268 -:10062000FF011092000214BE84B7877F84BF88E167 -:100630000FB6F89480936000109260000FBEE0E067 -:10064000FFE3099511E0A0E0B1E0E8E1F8E402C0C1 -:1006500005900D92A433B107D9F711E0A4E3B1E0FE -:1006600001C01D92AD3FB107E1F70E94010C0C944F -:100670000A240C9400001092B9008AE08093B8001C -:10068000089594EA9093BC009091BC0097FFFCCF32 -:100690009091B900987F983021F0903111F081E06D -:1006A00008958093BB0084E88093BC008091BC00D7 -:1006B00087FFFCCF8091B900887F883111F08034AA -:1006C00071F780E0089584E98093BC008091BC00BC -:1006D00084FDFCCF08958093BB0084E88093BC0028 -:1006E0008091BC0087FFFCCF9091B900987F81E09A -:1006F000983209F480E0089584E88093BC008091EA -:10070000BC0087FFFCCF8091BB00089580B38C7044 -:1007100080BB81B3836F81BB0895809101018111FA -:1007200015C080E40E9441038093010181110CC037 -:1007300082E10E946B0380930101811105C08FEF5C -:100740000E946B03809301010E94630384B1807F48 -:1007500084B985B1807F85B98AB1837F8AB98BB12D -:10076000837F8BB93E98469808950E9457058093E1 -:1007700001010E948D030E948603A5E3B1E0E3E43A -:10078000F1E08EE08E0F11921D928E13FCCF0C942F -:1007900041050E945705809301010E948D030E942C -:1007A0008603A5E3B1E0E3E4F1E08EE08E0F119261 -:1007B0001D928E13FCCF0895BF92CF92DF92EF92DD -:1007C000FF920F931F93CF93DF93809101018823B2 -:1007D00079F0809134018F5F80933401811108C0DA -:1007E0000E94570580930101811102C00E94E90413 -:1007F00005E311E0C0E0D0E0DD24D39482E0C82E10 -:10080000EE24E394F12CC730D10500F5809101016D -:10081000811164C080E40E94410380930101811131 -:1008200012C082E10E946B038093010181110BC011 -:10083000C7010C2E01C0880F0A94EAF780950E9428 -:100840006B03809301010E94630348C0CA30A1F08A -:1008500028F4C83059F0C93061F005C0CC3089F0B7 -:1008600070F0CD3089F0209A289810C0219A2998EC -:100870000DC0229A2A980AC0239A2B9807C0529A30 -:1008800001C0539A5B9802C03E9A469890EA9A95A6 -:10089000F1F79FB1799902C082E001C080E09170C8 -:1008A0009D25982B7C9902C084E001C080E0892BB3 -:1008B0007D9902C038E001C030E0832B7E9902C0F0 -:1008C00020E101C020E0822B9FB19095991F9927CC -:1008D000991F9295990F907E892B0FC080910101ED -:1008E000811149C080E40E94410380930101882363 -:1008F00079F1B12C0E9463038B2DF8019081981738 -:1009000019F08083C09200010E948D0321960F5F31 -:100910001F4FCE30D10509F076CF8091000188239A -:1009200061F1815080930001882339F08FE99FE0C5 -:100930000197F1F700C0000020C0A3E4B1E0E5E3B7 -:10094000F1E0CF01825F91919D938E13FCCF15C092 -:1009500083E10E946B03809301018111CACF81E47E -:100960000E944103809301018111C3CF0E947C0347 -:10097000B82EB094BFCF80E0C0CF0E94E70481E0E2 -:10098000DF91CF911F910F91FF90EF90DF90CF906B -:10099000BF900895E82FF0E0ED5BFE4F8081089551 -:1009A00008950F931F93CF93DF93C3E4D1E010E03A -:1009B0000C2F025F899190E00E944E1C180F0C13BF -:1009C000F9CF812FDF91CF911F910F9108950C9452 -:1009D0000D0656985E9825982D9826982E9827985B -:1009E0002F988FEF90E090938900809388009093E8 -:1009F0008B0080938A0090938D0080938C00259AC1 -:100A00002D9A2FEF80E792E0215080409040E1F74F -:100A100000C00000269A2E9A2FEF80E792E0215026 -:100A200080409040E1F700C00000279A2F9A2FEFF6 -:100A300080E792E0215080409040E1F700C0000044 -:100A400025982D982FEF80E792E02150804090402C -:100A5000E1F700C0000026982E982FEF80E792E083 -:100A6000215080409040E1F700C0000027982F9867 -:100A700056985E9825982D9826982E9827982F9806 -:100A8000089589EA8093800089E08093810024980A -:100A90002C983F988AB18F748AB96E98479A8BB117 -:100AA000806B8BB9769A0E94E9040C940C0680E264 -:100AB000809301018091510181110EC00E943B037E -:100AC00081E0809351012FEF83ED90E3215080402E -:100AD0009040E1F700C0000080E40E944103809351 -:100AE000010181112EC00E946B03809301018111CD -:100AF00028C00E946B0380930101811122C08FE303 -:100B00000E946B038093010181111BC00E9463034B -:100B100080E40E94410380930101811112C08CE0A6 -:100B20000E946B038093010181110BC00E946B0333 -:100B300080930101811105C08FE30E946B038093B4 -:100B400001010E946303809101010895462F50E046 -:100B5000FA013A97E031F10508F05BC0EA5AFF4F1D -:100B6000DC0112968C910C94BA23882309F451C0AD -:100B700089E892E00895882309F44BC088E692E062 -:100B80000895882309F445C08BE492E008958823F2 -:100B900009F43FC082E392E008958823D1F18DE10A -:100BA00092E008958823A9F18CE092E008958823CB -:100BB00081F18FEE91E00895882359F18AED91E05B -:100BC0000895882331F189EC91E00895882309F193 -:100BD00080EB91E008958823E1F087E991E00895A2 -:100BE0008823B9F086E891E00895882391F08DE696 -:100BF00091E00895882369F08CE491E008958823BA -:100C000041F08BE391E00895882319F08AE291E0A6 -:100C1000089580E090E0089508956091BE0170917C -:100C2000BF018091C0019091C1010E945A1C569849 -:100C30005E9825982D9826982E9827982F98813081 -:100C400019F0823021F00895259A2D9A0895269A58 -:100C50002E9A089581E0089581E008950C942C0661 -:100C60000895282F882339F090E02A3010F44D960B -:100C700008950697089587E290E00895AF92BF9295 -:100C8000DF92EF92FF920F931F93CF93DF938C012C -:100C9000FC01C081D181CE010E94D31ABE010E9405 -:100CA000AE09EC01B8010E942E06882309F4C9C1DF -:100CB000F8018281882309F4BEC080915E01811110 -:100CC0001FC0C431F0E7DF0709F0B5C10E9430064C -:100CD00081E080935E010E94F11C90935D018093FE -:100CE0005C0110925501109257011092560110921A -:100CF00059011092580110925B0110925A01A1C142 -:100D000080915C0190915D010E94FD1C883C9105E1 -:100D100070F480915501E82FF0E0EE0FFF1FEA5AC2 -:100D2000FE4FD183C0838F5F809355018AC1C1304C -:100D300020E8D20708F451C0F8018281882309F421 -:100D40007EC05E01E894B7F880915401813079F05B -:100D500050F08230C1F482EE0E945D1287E50E945D -:100D60005D1287E50EC082EE0E945D120CC080EE1F -:100D70000E945D1281EE0E945D1288E10E945D1268 -:100D800088E10E9425138CE0E82EF12CC5010E2C81 -:100D900002C0969587950A94E2F78F700E943106FB -:100DA000D82E0E945D128D2D0E942513F4E0EF1ABB -:100DB000F1082CEFE2162FEFF20641F78091540173 -:100DC000813029F010F0823041F482EE04C080EED0 -:100DD0000E94251381EE0E942513C43180E7D807B5 -:100DE00068F4C23090E7D90708F046C0C115E0E7C3 -:100DF000DE0771F0C130D047A1F10CC1C33320E749 -:100E0000D20709F4D8C0C433D04709F4EBC002C1FB -:100E1000F8018281882309F402C10E94DA15FFEFEC -:100E200024E38CE0F15020408040E1F700C0000056 -:100E30000E944C1D06C1C13080E8D80770F2C43151 -:100E400020E7D20708F0B3C0C23080E7D807A0F48B -:100E5000C11590E7D90709F4E2C0C130D04709F0C5 -:100E6000D9C0F8018281882309F4D9C08091DB01BF -:100E700081608093DB01E5C0F8018281882309F459 -:100E8000CEC00E94A61D811102C00E948C1D0E942E -:100E9000B91D90E09093EF018093EE01C230F0E72E -:100EA000DF0721F48091EE0181607AC0C33020E732 -:100EB000D20721F48091EE01826072C0C43080E7D5 -:100EC000D80721F48091EE0184606AC0C53090E7B4 -:100ED000D90719F48091EE0127C0C630E0E7DE079C -:100EE00021F48091EE0180615BC0C730F0E7DF073D -:100EF00021F48091EE01806253C0C83020E7D20710 -:100F000021F48091EE0180644BC0C93080E7D8079E -:100F100021F48091EE01806843C0CA3090E7D90780 -:100F200029F48091EE01846088603AC0CB30E0E71C -:100F3000DE0721F48091EE018E7F32C0CC30F0E7E5 -:100F4000DF0721F48091EE018D7F2AC0CD3020E7AC -:100F5000D20721F48091EE018B7F22C0CE3080E752 -:100F6000D80719F48091EE011AC08091EE01CF30BC -:100F700090E7D90711F48F7E13C0C031E0E7DE0798 -:100F800011F48F7D0DC0C131F0E7DF0711F48F7BC5 -:100F900007C0C231D04711F48F7702C08B7F877FA3 -:100FA0008093EE018091EE010E94BD1D4AC0C333C3 -:100FB000F0E7DF07A1F4F8018281882321F0109285 -:100FC000520182E016C080915201811106C086E272 -:100FD0000E945D1286E20E94251382E018C0C4338D -:100FE000D047C1F4F8018281882331F01092530177 -:100FF00080E20E94741325C080915301811106C0C4 -:1010000087E20E945D1287E20E94251380E20E941F -:101010007B1317C081E08093520180935301C80174 -:10102000DF91CF911F910F91FF90EF90DF90BF90D4 -:10103000AF900C942A06C130F0E8DF0708F081CEAB -:10104000CCCE80E0DF91CF911F910F91FF90EF9078 -:10105000DF90BF90AF90089526E0729FF0011124B9 -:1010600044E5849FE00DF11D1124E60FF11DEE0F04 -:10107000FF1FE655FD4F859194910E94C00981158F -:1010800060E49607B0F5811570E3970708F0DEC0BD -:10109000803E9105D8F4803C910508F06CC0883AF8 -:1010A000910578F4853A910508F06BC0813091057F -:1010B00009F452C108F40FC18430910508F04CC105 -:1010C0000AC18B3B910508F467C005C18F3F9105AC -:1010D00009F048F4803F910508F0ADC0883E9105C5 -:1010E00008F43AC1F8C0811520E2920708F0A5C0C3 -:1010F0000895811543E5940790F4811562E59607FC -:1011000008F0C8C0811571E5970708F0BEC08115C9 -:1011100020E5920708F09DC09F70906A08958115A0 -:1011200045E59407D8F4811564E5960708F0C8C032 -:10113000482F4695469570E2479FA0011124837081 -:10114000992721E030E0B90102C0660F771F8A9528 -:10115000E2F7CB01842B952B9A680895811576E5EB -:10116000970708F4B2C09C0130562115304108F0B1 -:10117000B2C09F70AEC0FC01EE0FFF1FEA5DFE4FD4 -:1011800062C0853A910509F4A9C0863A910509F033 -:10119000A8C082E890E40895883A910509F4A4C0B3 -:1011A000893A910509F4A3C08A3A910509F4A2C0CD -:1011B0008B3A910509F4A1C08C3A910509F4A0C0BD -:1011C0008D3A910509F49FC0803B910509F49EC0BA -:1011D0008E3A910509F49DC08F3A910509F49CC09F -:1011E000813B910509F49BC0823B910509F49AC0AB -:1011F000833B910509F499C0843B910509F498C09B -:10120000853B910509F497C0863B910509F496C08A -:10121000873B910509F495C0883B910509F494C07A -:10122000893B910509F493C08A3B910509F492C06A -:1012300080E094E4089590650895FC01FF70EE0F3E -:10124000FF1FEA55FD4F8591949108959927906C61 -:101250000895482F437021E030E002C0220F331F71 -:101260004A95E2F73C68AC0164E0569547956A956B -:10127000E1F74370342B8F708695869560E2869FE8 -:10128000C0011124822B932B0895982F8827816FFA -:10129000906A0895482F4695469570E2479FA001B1 -:1012A00011248370992721E030E0B90102C0660F54 -:1012B000771F8A95E2F7CB01842B952B9C680895C4 -:1012C000982F8827846F906A08958F719927982F97 -:1012D00088279062089580E090E0089581E890E486 -:1012E000089583E890E4089582EE94E4089589EEE9 -:1012F00094E408958AEE94E4089585EB94E40895C7 -:1013000086EB94E4089587EB94E408958CEC94E4E0 -:1013100008958DEC94E4089583E895E408958AE8AF -:1013200095E4089582E995E4089584E995E40895A3 -:1013300081E296E4089583E296E4089584E296E4D7 -:10134000089585E296E4089586E296E4089587E29A -:1013500096E408958AE296E40895089596E0799FC8 -:10136000F001112494E5899FE00DF11D1124E60F91 -:10137000F11DEE0FFF1FE655FD4F859194910895E5 -:101380008238910549F1B0F48133910509F458C0D0 -:1013900048F48932910509F44EC08A32910509F466 -:1013A00054C008958533910509F440C089339105EF -:1013B00099F00895833E910529F138F4803E910516 -:1013C00091F0823E9105A1F00895863E9105F9F0D5 -:1013D000873E910531F108952091EE0120FD3AC03C -:1013E00021FD38C008958091EE0180FD35C032C0E6 -:1013F0008091EE0182FF32C08091EE0184FD30C009 -:1014000083EE39C08091EE0182FD28C0F5CF809136 -:10141000EE0183FF27C08091EE0184FD21C087EE9D -:101420002AC08091EE0183FD1DC0F5CF8091EE01B1 -:1014300085FD1AC01BC08091EE0185FD17C014C048 -:101440008091EE0186FD14C015C08091EE0186FDED -:1014500011C00EC080EE0FC089E30DC082EE0BC03C -:1014600080E009C086EE07C089E205C085E303C0BD -:101470008AE201C081E390E0089508950C943D0A4A -:1014800080916F010895CF93DF9300D01F92CDB765 -:10149000DEB79C018091F401843019F593E09983C3 -:1014A0003B832A839093E9008FEF9091E80081506D -:1014B00095FD06C095ED9A95F1F700008111F5CFE5 -:1014C0008091E80085FF0DC040E050E063E070E0EF -:1014D000CE0101960E94A90C8091E8008E7780933E -:1014E000E8000F900F900F90DF91CF910895CF9368 -:1014F000DF9300D01F92CDB7DEB72091F4012430E6 -:1015000021F522E029839B838A8383E08093E9008D -:101510008FEF9091E800815095FD06C095ED9A956A -:10152000F1F700008111F5CF8091E80085FF0DC033 -:1015300040E050E063E070E0CE0101960E94A90C0B -:101540008091E8008E778093E8000F900F900F90C5 -:10155000DF91CF9108952091F4012430F1F422E03D -:101560002093E9002FEF3091E800215035FD06C0AF -:1015700035ED3A95F1F700002111F5CF2091E80003 -:1015800025FF0BC040E050E065E070E00E94A90C30 -:101590008091E8008E778093E8000895CF93DF93E1 -:1015A000EC019091F401943009F046C080910C0157 -:1015B0008823D9F080910D018823B9F09093E90038 -:1015C0008FEF9091E800815095FD06C095E19A95C6 -:1015D000F1F700008111F5CF8091E80085FF2CC064 -:1015E00040E050E060E170E017C081E08093E900E6 -:1015F0008FEF9091E800815095FD06C095ED9A958A -:10160000F1F700008111F5CF8091E80085FF14C04B -:1016100040E050E068E070E0CE010E94A90C8091AB -:10162000E8008E778093E80080E1FE01AFE5B1E04D -:1016300001900D928A95E1F7DF91CF910895809105 -:10164000F301811109C00E943E0E0E949B0E809101 -:10165000E20084608093E20008951092F3010895FF -:1016600008950C9432220E94E21C0E9438220E94AB -:1016700041110C943E0A42E061EC81E00E94B80DF9 -:1016800042E061EC82E00E94B80D42E061EC83E050 -:101690000E94B80D42E161EC84E00C94B80D809199 -:1016A000F601833009F455C030F4813071F0823096 -:1016B00009F48EC008958A3009F47AC08B3009F499 -:1016C00060C0893009F09CC020C08091F501813A4A -:1016D00009F096C08091E800877F8093E8008091B0 -:1016E000F9019091FA01892B21F460E18FE591E0F5 -:1016F00003C060E080E090E070E00E94F40C809114 -:10170000E8008B778093E80008958091F50181329D -:1017100009F076C08091F9019091FA01009719F0D3 -:10172000039709F06DC08091E800877F8093E800FF -:101730008091E80082FD05C08091F4018111F8CF0D -:101740005FC08091F10080936F018091E8008B77FA -:1017500053C08091F501813A09F052C08091F9019E -:101760009091FA01892B09F04BC08091E800877FA6 -:101770008093E8008091E80080FFFCCF80910C010D -:1017800036C08091F5018132D9F58091F9019091AF -:10179000FA01892BA9F58091E800877F8093E80002 -:1017A0000E94ED0D8091F70180930C010C94DA15E5 -:1017B0008091F501813221F58091E800877F809347 -:1017C000E8000E94ED0D8091F8018093700108956A -:1017D0008091F501813AA1F48091E800877F8093A0 -:1017E000E8008091E80080FFFCCF80917001809339 -:1017F000F1008091E8008E778093E8000C94ED0D65 -:10180000089584B7877F84BF88E10FB6F8948093EA -:101810006000109260000FBE80E88093610010921B -:1018200061000E9490110E943E0E0E949B0E8091CA -:10183000E20084608093E20078940E9421110E946B -:10184000921182E091E00E943C110E94202280913E -:10185000F401853069F40E94AA1C8091F20188236A -:10186000B1F30E94D41C882391F30E94930CEFCF14 -:101870000E949811ECCF292F332723303105C9F06E -:1018800064F42130310581F02230310509F043C084 -:101890008DE690E02EE234E042C021323105F1F0D5 -:1018A0002232310541F137C082E190E02BE934E08A -:1018B00036C099278130910541F08230910541F081 -:1018C000892B49F5EAE2F4E005C0E2E1F4E002C068 -:1018D000EAEFF3E0849190E09F0121C06430D8F4F6 -:1018E000E62FF0E0EE0FFF1FEE5DFE4F208131810D -:1018F00089E090E014C0643070F470E0FB01EE0FFA -:10190000FF1FE65EFE4F20813181FB01EA5EFE4F44 -:10191000808190E004C080E090E020E030E0FA01B7 -:1019200031832083089580E189BD82E189BD09B4B6 -:1019300000FEFDCF8091D8008F7D8093D8008091EC -:10194000E00082608093E0008091E00081FDFCCFA8 -:101950000895CF92DF92EF92FF920F931F93CF9350 -:10196000DF93EC018B016A010E940C0E811133C0E0 -:10197000C114D10439F0F60180819181081B190B43 -:10198000C80FD91FE12CF12C0115110519F1809117 -:10199000E80085FD16C08091E8008E778093E8000E -:1019A000C114D10449F0F60180819181E80EF91E3D -:1019B000F182E08285E00FC00E940C0E882321F3A3 -:1019C0000AC089918093F10001501109FFEFEF1ACD -:1019D000FF0ADACF80E0DF91CF911F910F91FF9046 -:1019E000EF90DF90CF9008952091FB013091FC01A2 -:1019F0002617370748F06115710539F42091E80082 -:101A00002E772093E80001C0B90140E0611571050F -:101A1000A9F12091F401222309F443C0253009F4EF -:101A200042C02091E80023FD40C02091E80022FD43 -:101A300032C02091E80020FFE9CF4091F3002091CF -:101A4000F20030E0342BFC01CF016115710559F033 -:101A50002830310540F481918093F1006150710983 -:101A60002F5F3F4FF1CF41E02830310509F040E0D2 -:101A70002091E8002E772093E800C8CF4111C9CF0C -:101A80000AC08091F401882361F0853061F0809173 -:101A9000E80083FD0AC08091E80082FFF2CF80E079 -:101AA000089582E0089583E0089581E008952091EB -:101AB000FB013091FC012617370748F061157105CD -:101AC00039F42091E8002E772093E80001C0B90195 -:101AD000FC0120E06115710591F18091F4018823EA -:101AE00009F440C0853009F43FC08091E80083FDCF -:101AF0003DC08091E80082FD2FC08091E80080FF0A -:101B0000E9CF2091F3008091F20090E0922B6115D3 -:101B1000710559F08830910540F424912093F1002B -:101B20003196615071090196F2CF21E0089709F0D2 -:101B300020E08091E8008E778093E800CBCF2111E0 -:101B4000CCCF0AC08091F401882361F0853061F028 -:101B50008091E80083FD0AC08091E80082FFF2CF07 -:101B600080E0089582E0089583E0089581E008957B -:101B7000982F973058F59093E900981739F07091A5 -:101B8000EC002091ED005091F00003C0242F762F3F -:101B900050E021FF19C03091EB003E7F3093EB0005 -:101BA0003091ED003D7F3093ED003091EB003160DE -:101BB0003093EB007093EC002093ED005093F00015 -:101BC0002091EE0027FF07C09F5FD3CF8F708093D7 -:101BD000E90081E0089580E008958091F50187FF94 -:101BE00011C08091E80082FD05C08091F40181114F -:101BF000F8CF11C08091E8008B770BC08091F40181 -:101C0000882349F08091E80080FFF8CF8091E800B8 -:101C10008E778093E80008952091E4003091E500EC -:101C200095E64091EC00842F817040FF22C08091A6 -:101C3000E80080FD1CC08091F401882391F085307C -:101C400091F08091EB0085FD10C04091E40050912F -:101C5000E5004217530729F39A01915011F784E0E8 -:101C6000089582E0089583E0089581E0089580E07A -:101C700008954091E80042FFDECF08950E94AC0E27 -:101C80000E94B40EE0EEF0E0808181608083E8ED98 -:101C9000F0E080818F77808319BCA7EDB0E08C9154 -:101CA0008E7F8C9380818F7E80831092F3010895C4 -:101CB0000F931F93CF93DF930E94AC0E0E94B40E3C -:101CC000C8EDD0E088818F77888388818068888399 -:101CD00088818F7D888319BC1092F4011092F001E5 -:101CE0001092F2011092F10100EE10E0F8018081F3 -:101CF0008B7F808388818160888342E060E080E020 -:101D00000E94B80DE1EEF0E080818E7F8083E2EEEC -:101D1000F0E0808181608083808188608083F80129 -:101D200080818E7F8083888180618883DF91CF91DD -:101D30001F910F910895E8EDF0E080818F7E808300 -:101D4000E7EDF0E080818160808384E082BF81E004 -:101D50008093F3010C94580EE8EDF0E080818E7FC3 -:101D600080831092E20008951092DA001092E10050 -:101D700008951F920F920FB60F9211242F933F9345 -:101D80004F935F936F937F938F939F93AF93BF9383 -:101D9000EF93FF938091E10082FF0BC08091E200FE -:101DA00082FF07C08091E1008B7F8093E1000E9459 -:101DB00020118091DA0080FF1FC08091D80080FF41 -:101DC0001BC08091DA008E7F8093DA008091D90069 -:101DD00080FF0DC080E189BD82E189BD09B400FEAC -:101DE000FDCF81E08093F4010E941F0B05C019BC58 -:101DF0001092F4010E942D0B8091E10080FF19C028 -:101E00008091E20080FF15C08091E2008E7F809378 -:101E1000E2008091E20080618093E2008091D8002E -:101E200080628093D80019BC85E08093F4010E9401 -:101E3000310B8091E10084FF30C08091E20084FF8B -:101E40002CC080E189BD82E189BD09B400FEFDCFCF -:101E50008091D8008F7D8093D8008091E1008F7EA3 -:101E60008093E1008091E2008F7E8093E200809178 -:101E7000E20081608093E2008091F001882311F0FC -:101E800084E007C08091E30087FD02C081E001C0CB -:101E900083E08093F4010E94330B8091E10083FF83 -:101EA00029C08091E20083FF25C08091E100877FF7 -:101EB0008093E10082E08093F4011092F001809120 -:101EC000E1008E7F8093E1008091E2008E7F80931D -:101ED000E2008091E20080618093E20042E060E0F5 -:101EE00080E00E94B80D8091F00088608093F0003F -:101EF0000E94300BFF91EF91BF91AF919F918F9115 -:101F00007F916F915F914F913F912F910F900FBEF5 -:101F10000F901F9018951F920F920FB60F921124D9 -:101F20002F933F934F935F936F937F938F939F93E1 -:101F3000AF93BF93CF93DF93EF93FF93C091E900EB -:101F4000CF708091EC00D82FD17080FDD0E8109236 -:101F5000E9008091F000877F8093F00078940E94E0 -:101F6000CF0F1092E9008091F00088608093F0001C -:101F7000CD2BCF70C093E900FF91EF91DF91CF910E -:101F8000BF91AF919F918F917F916F915F914F9191 -:101F90003F912F910F900FBE0F901F9018951F9398 -:101FA000CF93DF93CDB7DEB7AA970FB6F894DEBF15 -:101FB0000FBECDBFE5EFF1E088E08E0F9091F1000C -:101FC00091938E13FBCF0E944F0B8091E80083FF0B -:101FD0001FC18091F5019091F601492F50E04A30E0 -:101FE000510508F015C1FA01EA59FF4F0C94BA23C4 -:101FF000803881F0823809F00BC18091F9018F702F -:102000008093E9008091EB0085FB882780F910928E -:10201000E90006C08091F1019091F2019111826076 -:102020009091E800977F9093E8008093F1001092E0 -:10203000F100C8C0282F2D7F09F0EAC0882319F0CD -:10204000823061F0E5C08091F701813009F0E0C095 -:10205000933009F080E08093F2012BC08091F7016A -:10206000811127C08091F9018F7009F4D1C080934C -:10207000E9002091EB0020FF1CC0933021F48091F7 -:10208000EB00806214C09091EB0090619093EB00A4 -:1020900021E030E0A90102C0440F551F8A95E2F704 -:1020A0004093EA001092EA008091EB0088608093F0 -:1020B000EB001092E9008091E800877F86C08111D3 -:1020C000A7C01091F7011F778091E3008078812BE2 -:1020D0008093E3008091E800877F8093E8000E946E -:1020E000ED0D8091E80080FFFCCF8091E3008068D7 -:1020F0008093E300111102C082E001C083E080936D -:10210000F40186C08058823008F082C08091F701C7 -:102110009091F8018C3D53E0950779F583E08A832F -:102120008AE289834FB7F894DE01139620E03EE0FF -:1021300051E2E32FF0E050935700E49120FF03C0F9 -:10214000E295EF703F5FEF708E2F90E0EA3010F075 -:10215000C79601C0C0968D939D932F5F243149F798 -:102160004FBF8091E800877F8093E8006AE270E0CB -:10217000CE0101960E94F40C14C0AE014F5F5F4F78 -:102180006091F9010E943B0CBC01009709F440C02A -:102190009091E800977F9093E80089819A810E944E -:1021A000570D8091E8008B778093E80031C080382C -:1021B00079F58091E800877F8093E8008091F001B5 -:1021C0008093F1008091E8008E778093E8000E9470 -:1021D000ED0D1EC081111CC09091F7019230C0F42A -:1021E0008091E800877F8093E8009093F0010E943F -:1021F000ED0D8091F001811106C08091E30087FD13 -:1022000002C081E001C084E08093F4010E943B0B96 -:102210008091E80083FF0AC08091E800877F809367 -:10222000E8008091EB0080628093EB00AA960FB6E5 -:10223000F894DEBF0FBECDBFDF91CF911F910895FF -:102240000895CF938091F4018823A1F0C091E90013 -:10225000CF709091EC00892F817090FD80E8C82BA1 -:102260001092E9008091E80083FD0E94CF0FCF70AB -:10227000C093E900CF910895909376018093750102 -:102280000895E0917501F0917601309721F0019069 -:10229000F081E02D099480E00895E0917501F091BE -:1022A0007601309721F00280F381E02D09940895A2 -:1022B000E0917501F0917601309721F00480F5816D -:1022C000E02D0994089520917301309174018217D3 -:1022D000930771F09093740180937301E0917501FD -:1022E000F0917601309721F00680F781E02D099476 -:1022F000089520917101309172018217930771F056 -:102300009093720180937101E0917501F0917601D3 -:10231000309721F00084F185E02D09940895089507 -:102320000C948F110E94E81C0E94B5030C946E1D42 -:102330009F92AF92BF92CF92DF92EF92FF920F9354 -:102340001F93CF93DF9300D000D000D0CDB7DEB77E -:102350000E94DC030DE010E0AA24A394B12C902E7F -:10236000802F0E94CA04980128583E4F6901F90144 -:10237000F080F826A1F40150110988F78FEF8983C6 -:102380008A831B820E94F11C8160782F9D838C833D -:1023900049815A816B818D810E942F122FC09091AB -:1023A000DB0191FF04C08E830E94D0048E8125E062 -:1023B00030E0A501022E01C0440F0A94EAF7E42E92 -:1023C0004F21C1F029839A828E2191E009F490E097 -:1023D0009B830E94F11C8160782F9D838C834981AF -:1023E0005A816B818D810E942F12F6018081E8262F -:1023F000E08204C021503109E0F6BDCF0E943C1FAD -:10240000109177010E9441111817B9F00E944111F3 -:102410008093770126960FB6F894DEBF0FBECDBF2E -:10242000DF91CF911F910F91FF90EF90DF90CF90B0 -:10243000BF90AF909F900C943E0A26960FB6F894EA -:10244000DEBF0FBECDBFDF91CF911F910F91FF90E7 -:10245000EF90DF90CF90BF90AF909F900895CF9373 -:10246000DF93CDB7DEB72B970FB6F894DEBF0FBE64 -:10247000CDBF4F83588769877A878B87DE01119696 -:1024800086E0FD0111928A95E9F785E0FE01379615 -:1024900001900D928A95E1F749815A816B817C8187 -:1024A0008D819E810E9478182B960FB6F894DEBF1E -:1024B0000FBECDBFDF91CF910895CF93882309F44C -:1024C000C2C0C82F823859F40E94411181FDBBC09F -:1024D00089E30E94521B0E941F1C89E30CC08338B1 -:1024E00079F40E94411180FDAEC083E50E94521B29 -:1024F0000E941F1C83E50E94941BCF910C941F1C0B -:10250000843859F40E94411182FD9DC087E40E94E5 -:10251000521B0E941F1C87E4EECF8CEF8C0F813A78 -:1025200048F48C2F0E94862181118DC08C2F0E942F -:10253000521BE3CF80E28C0F883048F4C77081E0F3 -:1025400001C0880FCA95EAF70E94D81BD6CF8BE549 -:102550008C0F833078F4C53A29F0C63A31F083E81D -:1025600090E005C081E890E002C082E890E0CF9161 -:102570000C94631188E58C0F833108F064C0C83A6D -:1025800039F1C93A41F1CA3A49F1CB3A51F1CC3A61 -:1025900059F1CD3A61F1C03B69F1CE3A71F1CF3AD0 -:1025A00079F1C13B81F1C23B89F1C33B91F1C43B5D -:1025B00099F1C53BA1F1C63BA9F1C73BB1F1C83BBD -:1025C000B9F1C93BC1F1CA3BC9F180E090E038C024 -:1025D00082EE90E035C089EE90E032C08AEE90E065 -:1025E0002FC085EB90E02CC086EB90E029C087EBF4 -:1025F00090E026C08CEC90E023C08DEC90E020C0F1 -:1026000083E891E01DC08AE891E01AC082E991E078 -:1026100017C084E991E014C081E292E011C083E226 -:1026200092E00EC084E292E00BC085E292E008C026 -:1026300086E292E005C087E292E002C08AE292E080 -:10264000CF910C947911CF910895882309F44BC050 -:10265000823859F40E94411181FF45C089E30E94EC -:10266000521B0E941F1C89E30CC0833871F40E9426 -:10267000411180FF38C083E50E94521B0E941F1C3D -:1026800083E50E94941B0C941F1C843859F40E940B -:10269000411182FF28C087E40E94521B0E941F1C28 -:1026A00087E4EFCF9CEF980F913A58F390E2980FA0 -:1026B000983050F4877091E001C0990F8A95EAF73D -:1026C000892F0E94DE1BDFCF9BE5980F933020F40B -:1026D00080E090E00C946311885A833120F480E00C -:1026E00090E00C9479110895882321F00E94D81B62 -:1026F0000C941F1C0895882321F00E94DE1B0C946B -:102700001F1C08957F928F929F92AF92BF92CF929B -:10271000DF92EF92FF920F931F93CF93DF931F925D -:10272000CDB7DEB77C01C62E772EFC010581029560 -:102730000F70128111110E94F51B0E944B1B882300 -:1027400079F0112369F080E28C0D883048F082E046 -:102750000E94341B0E944B1B91E0D82ED92601C049 -:10276000D12CE72DE295EF70F0E0E059FF4F0C948B -:10277000BA23872D807F072D0F70882311F00295D3 -:10278000007F112389F0002309F490C180E28C0DB1 -:10279000883020F4802F0E94D81B03C0802F0E9415 -:1027A000E81B0E941F1C82C18C2D0E942513002350 -:1027B00009F495C180E28C0D883020F4802F0E94AE -:1027C000DE1B03C0802F0E94EE1B0E941F1C87C1CE -:1027D000972D907F872D8F70903211F08295807F9A -:1027E000CC2021F0F1E0CF16B1F01EC0112349F04A -:1027F000002309F414C1013009F011C10E94081C22 -:102800006EC1002319F0013009F469C189830E9467 -:102810000B1C89810AC1112321F0023008F05FC12D -:10282000FEC001115CC101C1112321F0002309F494 -:10283000F6C03CC1002309F4F8C03EC1872D86953F -:102840008695837090E0009719F0019761F047C179 -:10285000112321F08C2D972D937002C080E090E021 -:102860000E9463113CC1112321F08C2D972D937090 -:1028700002C080E090E00E94791131C18C2D1123BB -:1028800019F00E94441E02C00E94AC1E0E94311F1B -:1028900026C1872D837009F052C0111120C18C2DE3 -:1028A000829586958770880F880F9C2D9F70892E42 -:1028B000912CA12CB12C082E04C0880C991CAA1CA8 -:1028C000BB1C0A94D2F7C4FE14C00FE010E020E055 -:1028D00030E0B901A80104C0440F551F661F771FDF -:1028E0008A95D2F7CB01BA01609570958095909545 -:1028F00003C060E070E0CB01272D2695269523705C -:1029000030E02230310569F02330310589F0682943 -:1029100079298A299B292130310571F00E94C0193B -:10292000DEC0682979298A299B290E94DC19D7C031 -:102930000E94C019C501B4010E94A419D0C011237E -:1029400019F0872D817001C08695882309F4C7C0CE -:102950008C2D829586958770880F880F9C2D9F708F -:10296000892E912CA12CB12C082E04C0880C991C06 -:10297000AA1CBB1C0A94D2F7C4FE14C00FE010E0DE -:1029800020E030E0B901A80104C0440F551F661FC4 -:10299000771F8A95D2F7CB01BA0160957095809523 -:1029A000909503C060E070E0CB01272D2695269519 -:1029B0002370422F50E04230510569F043305105F9 -:1029C00089F0682979298A299B294130510571F0BC -:1029D0000E949A1A84C0682979298A299B290E9411 -:1029E000B61A7DC00E949A1AC501B4010E947E1ACF -:1029F00076C08C2D90E0FC01E05EF109E531F10537 -:102A000008F050C0E058FF4F0C94BA230C2D0F7003 -:102A1000872D8F71112331F00E94171A802F0E9489 -:102A200074135DC00E94381A802F0E947B1357C018 -:102A3000112339F0011153C0872D8F710E945D1A47 -:102A40004EC0023008F04BC0F7CF112339F0872D6C -:102A50008F710E94171A43C01123C9F3872D8F71FC -:102A60000E94381A3CC0112329F0872D8F710E94D3 -:102A7000021A35C00E94F81932C0112351F0172DE7 -:102A80001F71812F0E94171A63E0812F0E942B1B58 -:102A900026C081E00E94341B023008F182E00E94CF -:102AA000341B1DC0112331F0002389F28C2D0E94AC -:102AB0005D1215C0002391F28C2D0E9425130FC0CA -:102AC000472D4F706C2DC7010E94A6050E941C194E -:102AD00006C0472D4F706C2DC7010E94AD09DD2047 -:102AE000F9F00E94271B80FD1BC0F70112820E9493 -:102AF000211B0E94171AC7010E949F150E94211BCB -:102B00000F90DF91CF911F910F91FF90EF90DF9089 -:102B1000CF90BF90AF909F908F907F900C94381A79 -:102B20000F90DF91CF911F910F91FF90EF90DF9069 -:102B3000CF90BF90AF909F908F907F9008950F930C -:102B40001F93CF93DF93EC01888199812B813C8186 -:102B5000232BB9F09F3F11F48F3F99F0CE010E94D3 -:102B60003E06882371F0688179818A810E941D1B4D -:102B70008C010E94D21A0E949919B801CE010E94BC -:102B80008213DF91CF911F910F9108950E94F51B41 -:102B90000E94051C0E94CA1B0E941F1C0E94E21F6B -:102BA0000E94311F80E090E00E94631180E090E07D -:102BB0000C9479110E94E51B0C94C6150E94121BFF -:102BC000292F22952F7030E02C3031054CF42A301B -:102BD00031056CF42250310922303105A8F407C0C8 -:102BE0002C30310569F02F30310551F00DC0803F98 -:102BF00069F018F4803E40F409C0843F29F406C00F -:102C000093FB882780F9089580E0089581E0089576 -:102C1000CF93DF9300D000D01F92CDB7DEB70F90D7 -:102C20000F900F900F900F90DF91CF910895CF9359 -:102C3000DF9300D000D000D0CDB7DEB726960FB618 -:102C4000F894DEBF0FBECDBFDF91CF9108951F93E3 -:102C5000CF93DF93C091860116E080918701C8175A -:102C600099F0D0E01C9FF0011D9FF00D1124E85752 -:102C7000FE4F4081518162817381848195810E94E0 -:102C800017162196C770E9CFDF91CF911F91089554 -:102C90004091B8015091B9016091BA017091BB01A6 -:102CA0008091BC019091BD010C9417168091BD01DB -:102CB00082958F7009F054C08091BA01882309F47D -:102CC0004FC080918601A09187016091B8017091F9 -:102CD000B9014091BB015091BC01B6E08A1709F4DB -:102CE0003FC090E041155105C1F17F3F11F46F3FA6 -:102CF000A1F1B89FF001B99FF00D1124E857FE4FE4 -:102D0000218172132AC02081621327C022812111E0 -:102D100024C0238134812417350710F42150310950 -:102D2000241B350B283C3105C0F42091BD012F70C8 -:102D300020612093BD0126E0289FF001299FF00D1E -:102D40001124E357FE4F80818F708061808388EB70 -:102D500091E00E949F150C94271601968770BECFB4 -:102D60000895CF92DF92EF92FF920F931F93CF932C -:102D7000DF93CDB7DEB762970FB6F894DEBF0FBE14 -:102D8000CDBF8C0185E0F801DE011D9601900D920A -:102D90008A95E1F7D8014C9111965C9111971296A2 -:102DA0006C9112971396CD90DC9014973091B801E6 -:102DB0007091B9018091BB019091BC01009709F419 -:102DC0006BC17F3F19F43F3F09F466C1E090BA013F -:102DD000EE2009F4C0C02091BD01C816D90628F024 -:102DE000F601E81BF90BCF0104C0809590958C0D7E -:102DF0009D1DFF24F394883C910578F0F12C207FF1 -:102E000009F0C6C07C2DD98AC88A89890E94081613 -:102E100088EB91E00E949F15B1C0822F807F09F05E -:102E200046C0751314C0341312C0611110C02F7046 -:102E300020612093BD010E94481688EB91E00E941A -:102E40009F158091BD01D80115968C932EC0CD2879 -:102E500019F15F3F11F44F3FF9F0F62E61111CC0DC -:102E6000809186012091870136E0821709F45AC0CB -:102E700090E0389FF001399FF00D1124E857FE4F84 -:102E80007181571306C07081471303C0728171119D -:102E900003C001968770E9CFF62E662309F418C1A6 -:102EA0008091BD0181608093BD01F12C11C175132A -:102EB00008C0341306C0611104C08091BD01D8015F -:102EC000C3C04D875E878D859E856A8B0E94DE1507 -:102ED0006A898823E1F16623D1F12091BD01822F17 -:102EE00082958F7090E0029774F08091B801909174 -:102EF000B90198878F831986DB86CA862C87CE0115 -:102F000007960E949F1586E0F801A8EBB1E00190BA -:102F10000D928A95E1F70E9456160E944816FF24EA -:102F2000F394D6C04D875E878D859E850E94121BC7 -:102F3000292F22952F7030E0223031050CF0BCC0D3 -:102F40009F7009F0B6C0805E883008F4C1C0C80127 -:102F50000E949F15E4CFC816D90608F453C0F601A5 -:102F6000E81BF90BCF01883C910508F450C0F12C07 -:102F70007C2DD98AC88A89890E940816E8EBF1E07D -:102F800086E0DF011D928A95E9F70E944816A0C0ED -:102F9000751314C0341312C0611110C08091BD01AB -:102FA000F8018583C8010E949F1586E0E8EBF1E0F7 -:102FB000DF011D928A95E9F7FE2C8AC04D875E8756 -:102FC0008D859E856A8B0E94DE156A89882309F4A7 -:102FD000BECF662309F4BBCF2091BD01822F82951D -:102FE0008F7090E002970CF48ECF8091B801909191 -:102FF000B9019A8389831B82DD82CC822E83CE0124 -:1030000001967FCF809590958C0D9D1DACCFF62EAF -:10301000662309F49CCF75132EC034132CC0209165 -:10302000BD0120FD1FC0822F82958F70D9F0D8017D -:1030300015962C9315978F3049F08F5F982F9295A6 -:10304000907F822F8F70892B15968C93C8010E94D8 -:103050009F1586E0F801A8EBB1E001900D928A95EA -:10306000E1F793CF86E0F801A8EBB1E001900D9273 -:103070008A95E1F72DC04D875E878D859E850E94DC -:10308000DE15811140CF8091BD0181608093BD012B -:10309000C8010E949F151CC0662309F458CF4D87B4 -:1030A0005E878D859E850E94DE15882309F44FCFAB -:1030B0002ACF811148CF0CC0243031050CF047CF06 -:1030C0009F7009F440CFF8019581907F09F03BCFC4 -:1030D0008F2D62960FB6F894DEBF0FBECDBFDF9185 -:1030E000CF911F910F91FF90EF90DF90CF900895B7 -:1030F0001F93CF93DF93CDB7DEB72C970FB6F8941D -:10310000DEBF0FBECDBF4F83588769877A878B8715 -:103110009C87CE0107960E94B116882369F08F81A3 -:1031200098852A853B85232BF1F19F3F09F063C0E9 -:103130008F3F09F060C037C086E0FE013796DE01A0 -:10314000119601900D928A95E1F76F817885EA8555 -:10315000FB85309741F17F3F11F46F3F21F12091C2 -:10316000870130E0C9010196877099274091860157 -:1031700050E08417950709F447C069837A83FD837B -:10318000EC8396E0929FD001939FB00D1124A85735 -:10319000BE4FFE01319601900D929A95E1F7809312 -:1031A00087010E94271616E0809186019091870181 -:1031B0008917C1F1189FC001112488579E4F0E94A2 -:1031C000B116882379F1E09186011E9FF001112448 -:1031D000E857FE4F408151816281738184819581DE -:1031E0000E9417168091860190E0019687709927BA -:1031F00080938601D9CF4F81588569857A858B85E3 -:103200009C850E941716CFCF0E94DA151092870175 -:1032100010928601E8EBF1E086E0DF011D928A95CD -:10322000E9F7C1CF2C960FB6F894DEBF0FBECDBF25 -:10323000DF91CF911F910895EF92FF920F931F930B -:10324000CF93DF938C01009709F46CC0F12CEE242E -:10325000E394E8012196F8018491843740F48430A6 -:1032600008F051C0813081F0823019F15BC08537A0 -:1032700009F444C0A8F19CE7980F903708F052C0B9 -:103280008F770E94251341C00E5F1F4FFE01C4912E -:1032900080E28C0F883048F4C7708E2D01C0880FF3 -:1032A000CA95EAF70E94F81B14C08C2F0E945D1289 -:1032B0002DC00E5F1F4FFE01C49180E28C0F88303D -:1032C00058F4C7708E2D01C0880FCA95EAF70E9486 -:1032D000FE1B0E941F1C1AC08C2F0E94251316C0B3 -:1032E0000E5F1F4FFE01C491CC2381F08FE99FE058 -:1032F0000197F1F700C00000C150F6CF0E5F1F4FDD -:10330000FE01F49003C00E945D128E018F2D882370 -:1033100009F49FCFEFE9FFE03197F1F700C000001B -:103320008150F5CFDF91CF911F910F91FF90EF90DA -:10333000089508956093C2017093C3018093C401FE -:103340009093C5010C94C6150F931F930091C20171 -:103350001091C3012091C4013091C501DC01CB0162 -:10336000802B912BA22BB32B8093C2019093C3018E -:10337000A093C401B093C5011F910F910C94C61581 -:103380000F931F930091C2011091C3012091C401BA -:103390003091C501DC01CB0180239123A223B3230B -:1033A0008093C2019093C301A093C401B093C5015F -:1033B0001F910F910C94C6150F931F930091C2019A -:1033C0001091C3012091C4013091C501DC01CB01F2 -:1033D00080279127A227B3278093C2019093C3012E -:1033E000A093C401B093C5011F910F910C94C61511 -:1033F0001092BE011092BF011092C0011092C10143 -:103400000C94C61541E050E060E070E004C0440F49 -:10341000551F661F771F8A95D2F74093BE015093C0 -:10342000BF016093C0017093C1010C94C61541E0C7 -:1034300050E060E070E004C0440F551F661F771F26 -:103440008A95D2F78091BE019091BF01A091C001F1 -:10345000B091C101482B592B6A2B7B2B4093BE01A5 -:103460005093BF016093C0017093C1010C94C615C5 -:1034700041E050E060E070E004C0440F551F661F5B -:10348000771F8A95D2F740955095609570958091F9 -:10349000BE019091BF01A091C001B091C10148232C -:1034A00059236A237B234093BE015093BF0160934D -:1034B000C0017093C1010C94C61541E050E060E07A -:1034C00070E004C0440F551F661F771F8A95D2F71E -:1034D0008091BE019091BF01A091C001B091C10146 -:1034E000482759276A277B274093BE015093BF0185 -:1034F0006093C0017093C1010C94C6150F931F9384 -:103500000091BE011091BF012091C0013091C10115 -:10351000DC01CB01802B912BA22BB32B8093BE011E -:103520009093BF01A093C001B093C1011F910F916F -:103530000C94C6150F931F930091BE011091BF010B -:103540002091C0013091C101DC01CB018023912386 -:10355000A223B3238093BE019093BF01A093C00127 -:10356000B093C1011F910F910C94C6150F931F9337 -:103570000091BE011091BF012091C0013091C101A5 -:10358000DC01CB0180279127A227B3278093BE01BE -:103590009093BF01A093C001B093C1011F910F91FF -:1035A0000C94C6150895CF92DF92EF92FF920F937D -:1035B0001F93CF93DF938C01C090C201D090C301C1 -:1035C000E090C401F090C5018091BE019091BF01CF -:1035D000A091C001B091C101C82AD92AEA2AFB2AC8 -:1035E000CFE1D0E0D701C6010C2E04C0B695A79557 -:1035F000979587950A94D2F780FF06C0B8018C2F63 -:103600000E942C08019721F4219760F780E001C007 -:103610008C2FDF91CF911F910F91FF90EF90DF9052 -:10362000CF900895CF93DF93EC010E94D31ABE018F -:103630000E942C08DF91CF910895CB010E94121BAC -:1036400008958091C6018595859585950895809109 -:10365000C6018770089598E0899F90011124262B58 -:103660002093C6010C94171A2091C60180958223DD -:103670008093C601982F977069F430E0482F552742 -:1036800047FD50952417350729F085958595859533 -:103690000C94381A08959091C601977081E009F44E -:1036A00080E0089590910C01992321F090910D01F3 -:1036B000911109C020910E0130910F01F90132964C -:1036C0009FEF40E01FC0982F9695969596959F3056 -:1036D00050F5E0910E01F0910F01E90FF11D877097 -:1036E00021E030E0A90102C0440F551F8A95E2F79E -:1036F000CA019181892B818308959F3F39F04F5FE3 -:103700004E3041F051915813F8CF0DC05111F7CF01 -:10371000942FF5CF9F3F39F0F901E90FF11D97FD87 -:10372000FA9582830895089590910C01992321F0D0 -:1037300090910D01911109C020910E0130910F015E -:10374000F9013296205F3F4F1FC0982F96959695AE -:1037500096959F30F0F4E0910E01F0910F01E90F82 -:10376000F11D877021E030E0A90102C0440F551F10 -:103770008A95E2F7CA018095918189238183089512 -:103780003196E217F30729F090819813F9CF108250 -:10379000F7CF089581E090E0E0910E01F0910F01E4 -:1037A000E80FF91F1082019680319105A9F708955D -:1037B0009091DA01892B8093DA0108958095909198 -:1037C000DA0189238093DA0108951092DA010895CD -:1037D0009091D901892B8093D9010895809590917A -:1037E000D90189238093D90108951092D9010895B0 -:1037F0009091D801892B8093D8010895809590915C -:10380000D80189238093D80108951092D801089592 -:103810008093C70108951092C701089580910E0109 -:1038200090910F01FC0131969C01205F3F4F80E099 -:10383000919191118F5FE217F307D1F70895E0910D -:103840000E01F0910F018091DA018083E0910E0169 -:10385000F0910F0190818091D901892B8083E091B3 -:103860000E01F0910F0190818091D801892B808306 -:103870008091C701882361F0E0910E01F0910F0162 -:103880009081892B80830E940E1C81111092C701A8 -:1038900080910E0190910F010C944D1120E0009742 -:1038A00039F0AC0141505109842395232F5FF7CFA4 -:1038B000822F0895CF92DF92EF92FF926C01EE2457 -:1038C000FF24C114D104E104F10421F0C701B601C1 -:1038D00020E101C020E0C72ED82EE92EFF24C1141C -:1038E000D104E104F10419F0285FC701B6016B01AE -:1038F0007C0154E0F694E794D794C7945A95D1F795 -:10390000C114D104E104F10419F02C5FC701B60120 -:103910006B017C0142E0F694E794D794C7944A95F2 -:10392000D1F7C114D104E104F10419F02E5FC701ED -:10393000B601DC01CB01B695A79597958795892BA4 -:103940008A2B8B2B09F02F5F822FFF90EF90DF9057 -:10395000CF9008958091F401843021F11092DC0120 -:1039600020E488E190E00FB6F894A8958093600079 -:103970000FBE2093600080E00E943E0A83B7817FE3 -:10398000846083BF83B7816083BF7894889583B751 -:103990008E7F83BF88E10FB6F89480936000109209 -:1039A00060000FBE089508950E94C9030E94DC03C1 -:1039B0000E94D31C0E94D10491E0811101C090E0CB -:1039C000892F08950E94DA150E9441110C943E0A35 -:1039D00082E084BD93E095BD9AEF97BD80936E0021 -:1039E00008952FB7F8948091DD019091DE01A091A8 -:1039F000DF01B091E0012FBF0895CF92DF92EF92E7 -:103A0000FF920F931F932FB7F8944091DD015091CF -:103A1000DE016091DF017091E0012FBF6A017B013F -:103A2000EE24FF248C0120E030E0C016D106E2062F -:103A3000F30610F4415051099A01281B390BC901B2 -:103A40001F910F91FF90EF90DF90CF9008951F92FC -:103A50000F920FB60F9211248F939F93AF93BF9342 -:103A60008091DD019091DE01A091DF01B091E00134 -:103A70000196A11DB11D8093DD019093DE01A093FD -:103A8000DF01B093E001BF91AF919F918F910F90B3 -:103A90000FBE0F901F9018950E943E0EF8942FEFC6 -:103AA00087EA91E6215080409040E1F700C0000095 -:103AB00087E090EBDC018093FD019093FE01A093E1 -:103AC000FF01B09300029CE088E10FB6F894A8953E -:103AD000809360000FBE90936000FFCF0E94A61DF0 -:103AE000811102C00E948C1D0E94B11D8093DB01D8 -:103AF0000E94B91D90E09093EF018093EE0187FB47 -:103B0000882780F980930D010E94B51D682F70E011 -:103B100080E090E00C949A196DEE7EEF80E090E0EA -:103B20000E94F42360E082E090E00E94E22360E0E3 -:103B300083E090E00E94E22360E084E090E00E9455 -:103B4000E22360E085E090E00C94E22380E090E0E6 -:103B50000E94DC2321E08D3E9E4F09F020E0822F61 -:103B6000089582E090E00C94D42383E090E00C94DC -:103B7000D42384E090E00C94D423682F84E090E078 -:103B80000C94E2238091E30180FF0BC0609113014C -:103B900085E0689FB00111247595679575956795C7 -:103BA0002BC081FF09C06091130185E0689FB001BF -:103BB00011247595679520C082FF07C0609113019D -:103BC00085E0689FB001112417C09091E40199230A -:103BD000D1F060911201961788F72091130185E0CA -:103BE000289F90011124929FA001939F500D1124B2 -:103BF00070E0CA010E94A6236038710540F4611587 -:103C0000710539F002C065E070E0862F08958FE7F6 -:103C1000089581E008958091E30180FF08C06091DC -:103C2000110170E0759567957595679521C081FFC5 -:103C300006C06091110170E07595679519C082FF0B -:103C400004C06091110170E010C09091E4019923CB -:103C5000C1F0609110019617A0F780911101899F22 -:103C6000C001112470E00E94A6236038710528F479 -:103C70006115710521F0862F08958FE7089581E081 -:103C8000089561E070E0F4CF803F21F40E94C21DEE -:103C9000819504C0813F29F40E94C21D8093E701F1 -:103CA0000895823F21F40E94C21D819504C0833F84 -:103CB00029F40E94C21D8093E6010895893F19F4FA -:103CC0000E940B1E05C08A3F31F40E940B1E819595 -:103CD0008093E80108958B3F21F40E940B1E81958B -:103CE00004C08C3F29F40E940B1E8093E9010895C3 -:103CF000843F21F48091E501816017C0853F21F464 -:103D00008091E501826011C0863F21F48091E50138 -:103D100084600BC0873F21F48091E501886005C075 -:103D2000883F31F48091E50180618093E501089539 -:103D30008D3F21F48091E30181600BC08E3F21F41F -:103D40008091E301826005C08F3F29F48091E301F7 -:103D500084608093E3010895803F39F48091E70106 -:103D600087FF6CC01092E70169C0813F29F4809100 -:103D7000E7011816BCF362C09091E601823F29F476 -:103D800097FF5CC01092E60159C0833F19F41916E1 -:103D9000CCF354C0893F41F48091E80118160CF02F -:103DA0004DC01092E8014AC08A3F29F48091E80191 -:103DB00087FF44C0F6CF8B3F39F48091E90187FF3C -:103DC0003DC01092E9013AC08C3F29F48091E9018D -:103DD0001816BCF333C0843F21F48091E5018E7F37 -:103DE00017C0853F21F48091E5018D7F11C0863F8A -:103DF00021F48091E5018B7F0BC0873F21F48091F6 -:103E0000E501877F05C0883F31F48091E5018F7E11 -:103E10008093E50113C08D3F21F48091E3018E7FF3 -:103E20000BC08E3F21F48091E3018D7F05C08F3F51 -:103E300029F48091E3018B7F8093E3018091E60177 -:103E400081110EC08091E70181110AC08091E801C3 -:103E5000811106C08091E901811102C01092E40134 -:103E6000089585EE91E00E9458110E94F11C9093F4 -:103E7000E2018093E10108951F93CF93DF93809136 -:103E8000E1019091E2010E94FD1CAC019091E401DE -:103E9000992321F02091140130E006C020911501F2 -:103EA0008AE0289F900111244217530708F486C026 -:103EB0008091E601C091E701D091E8011091E901FC -:103EC000811107C0C11176C0D11174C0111172C027 -:103ED00075C09F3F19F09F5F9093E401181624F47A -:103EE0000E94C21D8093E6018091E60187FF05C014 -:103EF0000E94C21D81958093E6011C1624F40E9445 -:103F0000C21D8093E7018091E70187FF05C00E94F1 -:103F1000C21D81958093E7016091E601662339F126 -:103F2000C091E701CC2319F1772767FD7095872FA2 -:103F3000972F0E94B72223E333E343E35FE30E941A -:103F40001B230E9484226093E6016C2F772767FD74 -:103F50007095872F972F0E94B72223E333E343E323 -:103F60005FE30E941B230E9484226093E7011D16D9 -:103F700024F40E940B1E8093E8018091E80187FFE2 -:103F800005C00E940B1E81958093E801111624F450 -:103F90000E940B1E8093E9018091E90187FF05C013 -:103FA0000E940B1E81958093E901DF91CF911F91B3 -:103FB0000C94311F9F3F09F08ECF96CFDF91CF91A8 -:103FC0001F910895E5EEF1E085E0DF011D928A95ED -:103FD000E9F71092E4011092E3010895833081F132 -:103FE00028F4813059F08230D1F00895853009F4F9 -:103FF00049C0B8F1863009F456C008958091150182 -:10400000262F30E0280F311D2F3F310524F4680F93 -:104010006093150108958FEF8093150108958091A5 -:104020001401262F30E0280F311D2F3F310524F4D5 -:10403000680F6093140108958FEF80931401089521 -:1040400080911301262F30E0280F311D2F3F3105BD -:1040500024F4680F6093130108958FEF8093130188 -:10406000089580911201262F30E0280F311D2F3F37 -:10407000310524F4680F6093120108958FEF809347 -:104080001201089580911101262F30E0280F311D73 -:104090002F3F310524F4680F6093110108958FEFCD -:1040A00080931101089580911001262F30E0280F90 -:1040B000311D2F3F310524F4680F609310010895DE -:1040C0008FEF809310010895833011F128F481302F -:1040D00049F0823091F00895853081F120F18630E9 -:1040E000C1F1089580911501681720F4861B809313 -:1040F0001501089510921501089580911401681713 -:1041000020F4861B809314010895109214010895E1 -:1041100080911301681720F4861B80931301089582 -:1041200010921301089580911201681720F4861BE4 -:104130008093120108951092120108958091110147 -:10414000681720F4861B80931101089510921101C5 -:10415000089580911001681720F4861B8093100148 -:1041600008951092100108950F931F938D3109F453 -:1041700071C008F045C0803109F485C008F587306A -:1041800009F46FC068F4863009F0ADC08091DB019E -:10419000817F8E7F8093DB0181E08093EB01A4C05F -:1041A0008B3009F49EC08E3009F09DC08091DB01F8 -:1041B00082FB222720F991E0922790FB82F96CC0C4 -:1041C000863109F48EC060F4813109F08CC00E9400 -:1041D000DA1590910D0181E0892780930D0181C04E -:1041E000893109F47EC08B3109F07DC08091DB01FB -:1041F00081FB222720F991E0922790FB81F94CC0A6 -:10420000853309F466C048F4873209F462C008F4C3 -:104210004FC0893209F45DC066C0833438F48A33F4 -:1042200008F044C0883309F45CC05DC0833409F4ED -:1042300050C0883409F057C00E94DA150FEF13ED13 -:1042400020E3015010402040E1F700C000000E9430 -:104250004C1D47C00E943E220E9441110E943E0A0E -:1042600040C09091DB01892F8095817080FB90F98F -:1042700029F0966098609093DB0136C0997F977F14 -:104280009093DB012EC08091DB0183FB222720F974 -:1042900091E0922790FB83F98093DB01992309F148 -:1042A0008091DB0181608093DB011BC0895301C0D9 -:1042B0008D5141E050E060E070E08A019B0104C054 -:1042C000000F111F221F331F8A95D2F7C901B801B1 -:1042D00004C061E070E080E090E00E949A190E94C2 -:1042E000DA1581E001C080E01F910F91089580E010 -:1042F000089580E008958E518A3030F4E82FF0E080 -:10430000E65DFE4F8081089580E00895CF93C82F29 -:104310008091EB01813079F018F08230E9F186C0AC -:10432000E0910E01F0910F018081813169F08232BC -:1043300009F07EC009C0E0910E01F0910F0180816B -:10434000813111F0823261F48C2F0E94772181112A -:1043500004C08C2F0E94B4201DC081E090E01AC0E0 -:104360008C2F0E947921811114C0C43179F048F456 -:10437000CB3079F0C03109F05FC082E08093EB016F -:1043800008C0C93219F0C83321F056C01092EB01B1 -:1043900053C081E0817052C0C93281F110F5C4313F -:1043A00069F1A8F4C73009F045C08AE0809315018F -:1043B00094E19093140193E0909313018093120180 -:1043C00088E08093110188E28093100133C082EE6F -:1043D0008C0F863078F58C2F0E947B218093EA0128 -:1043E00029C0CE34E9F020F4CB3421F56AE013C0C3 -:1043F000C13579F0C235F1F461E00DC08091EA0178 -:10440000882319F01092EA0115C081E08093EB0136 -:1044100015C061E006C08091EA010E94EE1F0AC04B -:104420006AE08091EA010E94642004C01092EB01CE -:1044300080E004C081E002C080E0ACCFCF9108955D -:10444000E1E8F0E080818860808380818160808302 -:104450008FB7F89493E09093890090ED9093880043 -:104460008FBF0895EFE6F0E0808182608083089539 -:10447000EFE6F0E080818D7F80830895EFE6F0E045 -:10448000908182E08927808308951F920F920FB652 -:104490000F9211242F933F934F935F936F937F93CA -:1044A0008F939F93AF93BF93EF93FF938091EC0112 -:1044B0009091ED0101969093ED018093EC018111B3 -:1044C00003C082E00E943E0AE091ED01E695E69588 -:1044D000F0E0E755FA4FE4918091EC018E1303C0B0 -:1044E00080E00E943E0AFF91EF91BF91AF919F91B2 -:1044F0008F917F916F915F914F913F912F910F908D -:104500000FBE0F901F90189504D06894B1118DC004 -:10451000089570D088F09F5790F0B92F9927B75120 -:10452000A0F0D1F0660F771F881F991F1AF0BA9577 -:10453000C9F712C0B13081F077D0B1E0089574C0EE -:10454000672F782F8827B85F39F0B93FCCF386956D -:1045500077956795B395D9F73EF4909580957095CA -:1045600061957F4F8F4F9F4F0895E89409C097FB47 -:104570003EF490958095709561957F4F8F4F9F4F3A -:104580009923A9F0F92F96E9BB279395F69587957E -:1045900077956795B795F111F8CFFAF4BB0F11F441 -:1045A00060FF1BC06F5F7F4F8F4F9F4F16C08823E8 -:1045B00011F096E911C0772321F09EE8872F762F1E -:1045C00005C0662371F096E8862F70E060E02AF05F -:1045D0009A95660F771F881FDAF7880F969587954B -:1045E00097F9089557FD9058440F551F59F05F3FB4 -:1045F00071F04795880F97FB991F61F09F3F79F005 -:1046000087950895121613061406551FF2CF469586 -:10461000F1DF08C0161617061806991FF1CF869508 -:104620007105610508940895E894BB2766277727EC -:10463000CB0197F908950BD078C069D028F06ED0DF -:1046400018F0952309F05AC05FC01124EECFCADFDD -:10465000A0F3959FD1F3950F50E0551F629FF00195 -:10466000729FBB27F00DB11D639FAA27F00DB11DEE -:10467000AA1F649F6627B00DA11D661F829F222777 -:10468000B00DA11D621F739FB00DA11D621F839FFE -:10469000A00D611D221F749F3327A00D611D231FD4 -:1046A000849F600D211D822F762F6A2F11249F5722 -:1046B00050408AF0E1F088234AF0EE0FFF1FBB1F45 -:1046C000661F771F881F91505040A9F79E3F5105E4 -:1046D00070F014C0AACF5F3FECF3983EDCF38695F0 -:1046E00077956795B795F795E7959F5FC1F7FE2B8F -:1046F000880F911D9695879597F9089597F99F676B -:1047000080E870E060E008959FEF80EC0895002459 -:104710000A941616170618060906089500240A9426 -:1047200012161306140605060895092E0394000CAC -:1047300011F4882352F0BB0F40F4BF2B11F460FF3B -:1047400004C06F5F7F4F8F4F9F4F089597FB072ED9 -:1047500016F4009407D077FD09D00E94C02307FC0F -:1047600005D03EF4909581959F4F08957095619581 -:104770007F4F0895EE0FFF1F0590F491E02D0994EF -:10478000AA1BBB1B51E107C0AA1FBB1FA617B70777 -:1047900010F0A61BB70B881F991F5A95A9F7809593 -:1047A0009095BC01CD010895F999FECF92BD81BDD0 -:1047B000F89A992780B50895A8E1B0E042E050E06A -:1047C0000C94FC23262FF999FECF92BD81BDF89A57 -:1047D000019700B4021639F01FBA20BD0FB6F89445 -:1047E000FA9AF99A0FBE08950196272F0E94E323A3 -:1047F0000C94E223DC01CB01FC01F999FECF06C049 -:10480000F2BDE1BDF89A319600B40D92415050408E -:08481000B8F70895F894FFCFFA -:104818000220400ACE0AAB0A770A430A0101C801FE -:1048280028080A03140A404D363969051C05E604B0 -:10483800AD044004590472048B0401020304050604 -:044848000708090054 -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/dave/compiled.hex b/keyboards/ergodox_ez/keymaps/dave/compiled.hex deleted file mode 100644 index 22b5c6682..000000000 --- a/keyboards/ergodox_ez/keymaps/dave/compiled.hex +++ /dev/null @@ -1,1169 +0,0 @@ -:100000000C9478020C94BC020C94BC020C94BC02BC -:100010000C94BC020C94BC020C94BC020C94BC0268 -:100020000C94BC020C94BC020C94BC0D0C948E0E6F -:100030000C94BC020C94BC020C94BC020C94BC0248 -:100040000C94BC020C9498220C94BC020C94BC023C -:100050000C94BC020C942B1C0C94BC020C94BC029F -:100060000C94BC020C94BC020C94BC020C94BC0218 -:100070000C94BC020C94BC020C94BC020C94BC0208 -:100080000C94BC020C94BC020C94BC020C94BC02F8 -:100090000C94BC020C94BC020C94BC020C94BC02E8 -:1000A0000C94BC020C94BC020C94BC02FB0E1D0F01 -:1000B0000B101D0F0B10620F850F0B10DA0FED0FD9 -:1000C000BC12BC12EB12EB12211341137214721406 -:1000D0004C137214FC13FC136314721472146C141A -:1000E0000914091409140914091409140914091428 -:1000F0000914091409140914091409140914091418 -:100100001B1428142F143614401429002B00E0006F -:10011000E100357100001E00140004001D006400A1 -:10012000E3001F001A0016001B000000025220000E -:1001300008000700060000002C002100150009003F -:100140001900E2001151220017000A00050000000A -:10015000460023001C0000000B00000046002300A6 -:100160000A00000005000000007524001C000B00C0 -:10017000110000000075250018000D001000E600B9 -:10018000115126000C000E0036002F002C00270015 -:1001900012000F003700300001522D001300330011 -:1001A00038000000E7002A0028002800E50034712C -:1001B0000000010001000100010001000000010039 -:1001C0001E02200222020100010001001F02210282 -:1001D00023020100010001002F0226022F0001006E -:1001E000010001003002270230000100125101001D -:1001F000310235003502000001000100010000005D -:1002000001000000010001000100000001000000E9 -:1002100001000100010001000100000001000000D8 -:100220005F005C00590062001251540060005D00E4 -:100230005A0062000100550061005E005B0063002F -:1002400001005600570057005800580001002E00CA -:100250003200340001000100000001000100010033 -:100260000100010000003A004A005000F400F200D2 -:1002700001003B0052005100F000F10001003C0081 -:100280004D004F00F500F30001003D0049004C0017 -:100290000100010010513E004B004E000100000023 -:1002A00001003F00010000000100000001004000CB -:1002B00001000000010000000100410001000100F8 -:1002C00001000000010042000100B600AC00AA00DD -:1002D0001051430049004C00AE00A800010044004A -:1002E0000100B700AB00A9000100450001000100BA -:1002F00001000100010001000100010001000100F6 -:10030000000016034500720067006F0044006F0094 -:100310007800200045005A000000160345007200D6 -:1003200067006F0044006F007800200045005A000D -:1003300000000403090409026D00040100A0FA0989 -:100340000400000103010100092111010001223F05 -:10035000000705810308000A0904010001030102E6 -:1003600000092111010001224D0007058203080048 -:100370000A09040200010300000009211101000123 -:100380002236000705830308000A0904030001035D -:100390000000000921110100012239000705840332 -:1003A0001000011201100100000008EDFE0713010A -:1003B000000102000105010906A101050719E02954 -:1003C000E715002501950875018102050819012925 -:1003D00005950575019102950175039101050719B0 -:1003E00000297715002501957875018102C0050166 -:1003F0000980A101850216010026B7001A01002A12 -:10040000B700751095018100C0050C0901A1018597 -:1004100003160100269C021A01002A9C0275109501 -:10042000018100C005010902A1010901A10005091E -:100430001901290515002501950575018102950110 -:10044000750381010501093009311581257F950268 -:100450007508810609381581257F95017508810683 -:10046000050C0A38021581257F950175088106C0A3 -:10047000C005010906A101050719E029E7150025B6 -:10048000019508750181029501750881010508191A -:1004900001290595057501910295017503910105E5 -:1004A00007190029FF150025FF950675088100C072 -:1004B0000000000000000000000000010204060A25 -:1004C0000F17202C3A4A5D71879DB3C7DAE9F5FC16 -:1004D000FFFCF5E9DAC7B39D87715D4A3A2C201716 -:1004E0000F0A0604020100000000000000000000E6 -:1004F00011241FBECFEFDAE0DEBFCDBF04B603FE8E -:1005000024C08091FF0190910002A0910102B0915E -:1005100002028730904BA740B04BB9F41092FF0114 -:1005200010920002109201021092020214BE84B7CF -:10053000877F84BF88E10FB6F894809360001092A3 -:1005400060000FBEE0E0FFE3099511E0A0E0B1E03C -:10055000EEEBF8E402C005900D92A433B107D9F791 -:1005600011E0A4E3B1E001C01D92AF3FB107E1F794 -:100570000E94000B0C945D240C9400001092B900B2 -:100580008AE08093B800089594EA9093BC0090911B -:10059000BC0097FFFCCF9091B900987F983021F074 -:1005A000903111F081E008958093BB0084E880933E -:1005B000BC008091BC0087FFFCCF8091B900887F90 -:1005C000883111F0803471F780E0089584E98093D8 -:1005D000BC008091BC0084FDFCCF08958093BB00DB -:1005E00084E88093BC008091BC0087FFFCCF909191 -:1005F000B900987F81E0983209F480E0089584E89A -:100600008093BC008091BC0087FFFCCF8091BB0031 -:10061000089580910101811115C080E40E94C402F7 -:100620008093010181110CC082E10E94EE0280934F -:100630000101811105C08FEF0E94EE02809301013C -:100640000E94E60284B1807F84B985B1807F85B93C -:100650008AB1837F8AB98BB1837F8BB93E984698E4 -:1006600008950E94C404809301010E94090380B38D -:100670008C7080BB81B3836F81BBA5E3B1E0E3E401 -:10068000F1E08EE08E0F11921D928E13FCCF0C9430 -:10069000AE04BF92CF92DF92EF92FF920F931F931F -:1006A000CF93DF9380910101882379F08091340109 -:1006B0008F5F80933401811108C00E94C40480932D -:1006C0000101811102C00E94560405E311E0C0E05F -:1006D000D0E0DD24D39482E0C82EEE24E394F12C04 -:1006E000C730D10500F580910101811164C080E41B -:1006F0000E94C40280930101811112C082E10E9414 -:10070000EE028093010181110BC0C7010C2E01C0C4 -:10071000880F0A94EAF780950E94EE028093010107 -:100720000E94E60248C0CA30A1F028F4C83059F04F -:10073000C93061F005C0CC3089F070F0CD3089F05F -:10074000209A289810C0219A29980DC0229A2A9898 -:100750000AC0239A2B9807C0529A01C0539A5B98FB -:1007600002C03E9A469890EA9A95F1F79FB179991E -:1007700002C082E001C080E091709D25982B7C9999 -:1007800002C084E001C080E0892B7D9902C038E07E -:1007900001C030E0832B7E9902C020E101C020E03F -:1007A000822B9FB19095991F9927991F9295990F28 -:1007B000907E892B0FC080910101811149C080E496 -:1007C0000E94C40280930101882379F1B12C0E9418 -:1007D000E6028B2DF8019081981719F08083C09262 -:1007E00000010E94090321960F5F1F4FCE30D105F3 -:1007F00009F076CF80910001882361F181508093C8 -:100800000001882339F08FE99FE00197F1F700C0DC -:10081000000020C0A3E4B1E0E5E3F1E0CF01825F96 -:1008200091919D938E13FCCF15C083E10E94EE023F -:10083000809301018111CACF81E40E94C402809398 -:1008400001018111C3CF0E94FF02B82EB094BFCF27 -:1008500080E0C0CF0E94540481E0DF91CF911F91CE -:100860000F91FF90EF90DF90CF90BF900895E82F09 -:10087000F0E0ED5BFE4F8081089508950F931F9384 -:10088000CF93DF93C3E4D1E010E00C2F025F899196 -:1008900090E00E94511B180F0C13F9CF812FDF91AC -:1008A000CF911F910F9108950C94240556985E984E -:1008B00025982D9826982E9827982F988FEF90E0BE -:1008C000909389008093880090938B0080938A0096 -:1008D00090938D0080938C00259A2D9A2FEF80E7BE -:1008E00092E0215080409040E1F700C00000269A3D -:1008F0002E9A2FEF80E792E0215080409040E1F760 -:1009000000C00000279A2F9A2FEF80E792E0215035 -:1009100080409040E1F700C0000025982D982FEF0F -:1009200080E792E0215080409040E1F700C0000055 -:1009300026982E982FEF80E792E02150804090403B -:10094000E1F700C0000027982F9856985E982598E8 -:100950002D9826982E9827982F98089589EA8093A5 -:10096000800089E08093810024982C983F988AB178 -:100970008F748AB96E98479A8BB1806B8BB9769ACF -:100980000E9456040C94230580E28093010180911B -:10099000510181110EC00E94BE0281E0809351017D -:1009A0002FEF83ED90E3215080409040E1F700C0AD -:1009B000000080E40E94C4028093010181112EC0D6 -:1009C0000E94EE0280930101811128C00E94EE0274 -:1009D00080930101811122C08FE30E94EE02809377 -:1009E000010181111BC00E94E60280E40E94C40242 -:1009F00080930101811112C08CE00E94EE0280936D -:100A0000010181110BC00E94EE028093010181114E -:100A100005C08FE30E94EE02809301010E94E6026E -:100A200080910101089561110BC0FC01828188232E -:100A300021F085EE0E94601103C085EE0E9428120D -:100A400080E090E008950895EF92FF921F93CF9376 -:100A5000DF936091C1017091C2018091C3019091B7 -:100A6000C4010E945D1B56985E9821E030E0E82F9B -:100A7000F0E0AF014E5A5E4F7A01A1E0B0E0122FD4 -:100A8000821308C0AF01E701988161E09F3F69F4DC -:100A900060E00BC0A901B9016E5A7E4FEB0198814D -:100AA00061E0911101C060E06195960FBA016E5A44 -:100AB0007E4FEB0198834C5F5F4F992321F194B1F6 -:100AC000ED0102C0CC0FDD1F4A95E2F7AE019C2B71 -:100AD00094B995B1492B45B9EB01488150E02130DB -:100AE000310529F450938900409388001AC01230D0 -:100AF00029F450938B0040938A0013C050938D00CB -:100B000040938C000EC094B1BD0102C0660F771FE8 -:100B10004A95E2F7AB014095942394B995B14923E6 -:100B200045B92F5F3F4F2430310509F0A8CFDF9141 -:100B3000CF911F91FF90EF90089581E0089581E09B -:100B400008950C949F0508950F931F93CF93DF93FF -:100B50008C01FC01C081D181CE010E94D619BE0159 -:100B60000E944D06EC01B8010E94A105882309F4FA -:100B70008DC0F8018281882309F44AC08091610107 -:100B800081111FC0C431F0E5DF0709F051C00E9498 -:100B9000A30581E0809361010E94F51B90936001A1 -:100BA00080935F011092580110925A0110925901DE -:100BB00010925C0110925B0110925E0110925D0137 -:100BC00065C080915F01909160010E94011C883C8A -:100BD000910570F480915801E82FF0E0EE0FFF1FAF -:100BE000E75AFE4FD183C0838F5F809358014EC078 -:100BF000C43880E5D80721F0C538D04501F13AC0A6 -:100C0000F8018281882341F01092560182E01EC0D3 -:100C1000C438E0E5DE0759F580915601811106C020 -:100C200086E20E94601186E20E94281282E01CC0C7 -:100C3000C438F0E5DF0741F3C538D045D9F4F801F1 -:100C40008281882331F01092570180E20E9477124E -:100C50001DC080915701811106C087E20E9460117A -:100C600087E20E94281280E20E947E120FC0C538DF -:100C7000D04529F381E08093560180935701C80144 -:100C8000DF91CF911F910F910C949D0580E0DF9132 -:100C9000CF911F910F910895089596E0799FF001EB -:100CA000112494E5899FE00DF11D1124E60FF11D3B -:100CB000EE0FFF1FE65FFE4F859194910895880F18 -:100CC000991FFC01E657F040859194910895880F93 -:100CD000991FFC01E65FFE4F8591949108950F9353 -:100CE0001F93CF93DF93EC01811520E3920750F51A -:100CF000C11580E2D80708F0C3C0CB3BD10590F402 -:100D0000C83AD10508F06AC0C53AD10508F05BC001 -:100D1000C430D10508F0D0C1219709F0CAC101E063 -:100D200010E00AC2CF3FD10511F008F0C5C1C03FA5 -:100D3000D10508F0A2C0CE01805E9109089708F4A1 -:100D4000BBC1B7C1C13090E5D90709F4A2C020F5F5 -:100D5000C0318FE4D80770F4C11590E4D90708F0CA -:100D600094C0C11521E3D20708F0A3C1DD278E018D -:100D7000106CE2C1C115D04509F09BC10E94DD1481 -:100D80008FEF94E32CE0815090402040E1F700C0C9 -:100D900000000E94501CD0C1C11597E5D90758F436 -:100DA000C03121E5D20708F01CC1C43180E5D80765 -:100DB00008F475C07EC1CE0190578115904108F0AE -:100DC00078C1DF7073C1C53AD10509F477C1C63A5D -:100DD000D10509F076C102E810E4AEC1C83AD105E8 -:100DE00009F472C1C93AD10509F471C1CA3AD105F1 -:100DF00009F470C1CB3AD10509F46FC1CC3AD105E1 -:100E000009F46EC1CD3AD10509F46DC1C03BD105DD -:100E100009F46CC1CE3AD10509F46BC1CF3AD105C2 -:100E200009F46AC1C13BD10509F469C1C23BD105CE -:100E300009F468C1C33BD10509F467C1C43BD105BE -:100E400009F466C1C53BD10509F465C1C63BD105AE -:100E500009F464C1C73BD10509F463C1C83BD1059E -:100E600009F462C1C93BD10509F461C1CA3BD1058E -:100E700009F460C100E014E45FC18E0110655CC13B -:100E8000CE019F700E94670658C1DF708E01106A04 -:100E900053C18091DE0181608093DE014DC10E94CB -:100EA000F51D811102C00E94DB1D0E94121E90E000 -:100EB0009093FF018093FE01C23080E5D80721F4B2 -:100EC0008091FE01816086C0C43090E5D90721F48D -:100ED0008091FE0182607EC0C63020E5D20721F4F9 -:100EE0008091FE01846076C0C83080E5D80719F48F -:100EF0008091FE0127C0CA3090E5D90721F4809186 -:100F0000FE01806167C0CC3020E5D20721F48091DA -:100F1000FE0180625FC0CE3080E5D80721F4809169 -:100F2000FE01806457C0C03190E5D90721F480915B -:100F3000FE0180684FC0C23120E5D20729F48091BC -:100F4000FE018460886046C0C33080E5D80721F484 -:100F50008091FE018E7F3EC0C53090E5D90721F417 -:100F60008091FE018D7F36C0C73020E5D20721F485 -:100F70008091FE018B7F2EC0C93080E5D80719F41F -:100F80008091FE0126C0CB3090E5D90721F48091F5 -:100F9000FE018F7E1FC0CD3020E5D20721F4809165 -:100FA000FE018F7D17C0CF3080E5D80721F48091F6 -:100FB000FE018F7B0FC0C13190E5D90721F48091EC -:100FC000FE018F7707C0C331D04531F48091FE0117 -:100FD0008B7F877F8093FE018091FE010E94161E09 -:100FE000ABC08D2F99278F70992781309105D9F447 -:100FF0009E012370332702C0880F991F2A95E2F7BC -:101000009C688E0144E0000F111F4A95E1F700270C -:101010001370802B912B53E0CC0FDD1F5A95E1F715 -:10102000C076DD272FC08230910531F4DC2FCC272C -:101030008E01016F106A80C08330910569F4CE0182 -:101040008370992701E010E002C0000F111F8A95FC -:10105000E2F7C8019C680FC084309105B9F4CE0155 -:101060008370992701E010E002C0000F111F8A95DC -:10107000E2F7C8019A6823E0CC0FDD1F2A95E1F75B -:10108000C07ED7708C010C2B1D2B56C0853091056E -:1010900031F4DC2FCC278E01046F106A4DC0069707 -:1010A00009F04AC0CF71DD27DC2FCC278E011062FA -:1010B00043C000E010E040C08E013EC001E810E4F3 -:1010C0003BC003E810E438C002EE14E435C009EE7A -:1010D00014E432C00AEE14E42FC005EB14E42CC073 -:1010E00006EB14E429C007EB14E426C00CEC14E46E -:1010F00023C00DEC14E420C003E815E41DC00AE889 -:1011000015E41AC002E915E417C004E915E414C097 -:1011100001E216E411C003E216E40EC004E216E494 -:101120000BC005E216E408C006E216E405C007E2BB -:1011300016E402C00AE216E4C801DF91CF911F91C4 -:101140000F91089596E0799FF001112494E5899F0D -:10115000E00DF11D1124E60FF11DEE0FFF1FE65FFC -:10116000FE4F85919491803E9105E0F4803C91057D -:1011700058F58133910509F46FC048F4893291051F -:1011800009F463C08A32910509F46DC072C08933D5 -:101190009105E9F082389105D1F08533910509F484 -:1011A0004DC067C0833E910581F138F4803E9105C2 -:1011B000B9F0823E9105D9F05CC0863E910561F19F -:1011C000873E9105A1F155C00E945F0608952091C8 -:1011D000FE0120FD02C021FF4CC080EE90E049C01E -:1011E0008091FE0180FFF9CF89E390E042C08091B9 -:1011F000FE0182FF0EC08091FE0184FF03C080E0EB -:1012000090E037C083EE90E034C08091FE0182FF11 -:10121000F2CF82EE90E02DC08091FE0183FF0BC0E3 -:101220008091FE0184FDEBCF87EE90E022C080919B -:10123000FE0183FFF5CF86EE90E01BC08091FE019A -:1012400085FF07C089E290E014C08091FE0185FF10 -:10125000F9CF85E390E00DC08091FE0186FF07C0C5 -:101260008AE290E006C08091FE0186FFF9CF81E31B -:1012700090E00E946F06089508950C943C098091B7 -:1012800072010895CF93DF9300D01F92CDB7DEB7E0 -:101290009C018091F501843019F593E099833B839B -:1012A0002A839093E9008FEF9091E800815095FD9B -:1012B00006C095ED9A95F1F700008111F5CF809168 -:1012C000E80085FF0DC040E050E063E070E0CE0133 -:1012D00001960E94AC0B8091E8008E778093E80025 -:1012E0000F900F900F90DF91CF910895CF93DF93E0 -:1012F00000D01F92CDB7DEB72091F501243021F543 -:1013000022E029839B838A8383E08093E9008FEF27 -:101310009091E800815095FD06C095ED9A95F1F702 -:1013200000008111F5CF8091E80085FF0DC040E0FD -:1013300050E063E070E0CE0101960E94AC0B80911A -:10134000E8008E778093E8000F900F900F90DF9168 -:10135000CF9108952091F5012430F1F422E02093FB -:10136000E9002FEF3091E800215035FD06C035ED42 -:101370003A95F1F700002111F5CF2091E80025FF03 -:101380000BC040E050E065E070E00E94AC0B809143 -:10139000E8008E778093E8000895CF93DF93EC0107 -:1013A0009091F501943009F046C080910C0188239A -:1013B000D9F080910D018823B9F09093E9008FEF67 -:1013C0009091E800815095FD06C095E19A95F1F75E -:1013D00000008111F5CF8091E80085FF2CC040E02E -:1013E00050E060E170E017C081E08093E9008FEF8A -:1013F0009091E800815095FD06C095ED9A95F1F722 -:1014000000008111F5CF8091E80085FF14C040E015 -:1014100050E068E070E0CE010E94AC0B8091E800E3 -:101420008E778093E80080E1FE01A2E6B1E00190B2 -:101430000D928A95E1F7DF91CF9108958091F401A3 -:10144000811109C00E94410D0E949E0D8091E20011 -:1014500084608093E20008951092F4010895089545 -:101460000C9485220E94E61B0E948B220E9444104D -:101470000C943D0942E061EC81E00E94BB0C42E02B -:1014800061EC82E00E94BB0C42E061EC83E00E94D0 -:10149000BB0C42E161EC84E00C94BB0C8091F70141 -:1014A000833009F455C030F4813071F0823009F492 -:1014B0008EC008958A3009F47AC08B3009F460C078 -:1014C000893009F09CC020C08091F601813A09F072 -:1014D00096C08091E800877F8093E8008091FA01B0 -:1014E0009091FB01892B21F460E182E691E003C039 -:1014F00060E080E090E070E00E94F70B8091E800EF -:101500008B778093E80008958091F601813209F08D -:1015100076C08091FA019091FB01009719F0039732 -:1015200009F06DC08091E800877F8093E80080918A -:10153000E80082FD05C08091F5018111F8CF5FC000 -:101540008091F100809372018091E8008B7753C005 -:101550008091F601813A09F052C08091FA01909190 -:10156000FB01892B09F04BC08091E800877F8093B5 -:10157000E8008091E80080FFFCCF80910C0136C02C -:101580008091F6018132D9F58091FA019091FB01A9 -:10159000892BA9F58091E800877F8093E8000E945D -:1015A000F00C8091F80180930C010C94DD14809173 -:1015B000F601813221F58091E800877F8093E80071 -:1015C0000E94F00C8091F90180937301089580913D -:1015D000F601813AA1F48091E800877F8093E800CA -:1015E0008091E80080FFFCCF809173018093F1002F -:1015F0008091E8008E778093E8000C94F00C0895B9 -:1016000084B7877F84BF88E10FB6F8948093600029 -:10161000109260000FBE90E080E80FB6F8948093BF -:101620006100909361000FBE0E9493100E94410DD3 -:101630000E949E0D8091E20084608093E200789485 -:101640000E9424100E94951082E091E00E943F10B9 -:101650000E9473228091F501853069F40E94AD1BD0 -:101660008091F3018823B1F30E94D81B882391F362 -:101670000E94960BEFCF0E949B10ECCF292F3327AF -:1016800023303105C9F064F42130310581F0223076 -:10169000310509F043C08DE690E026E333E042C017 -:1016A00021323105F1F02232310541F137C082E1BA -:1016B00090E023EA33E036C099278130910541F06C -:1016C0008230910541F0892B49F5E2E3F3E005C052 -:1016D000EAE1F3E002C0E2E0F3E0849190E09F01F0 -:1016E00021C06430D8F4E62FF0E0EE0FFF1FEE5D6E -:1016F000FE4F2081318189E090E014C0643070F4A5 -:1017000070E0FB01EE0FFF1FE65EFE4F208131818E -:10171000FB01EA5EFE4F808190E004C080E090E033 -:1017200020E030E0FA0131832083089580E189BD13 -:1017300082E189BD09B400FEFDCF8091D8008F7D84 -:101740008093D8008091E00082608093E0008091D7 -:10175000E00081FDFCCF0895CF92DF92EF92FF92DF -:101760000F931F93CF93DF93EC018B016A010E94CB -:101770000F0D811133C0C114D10439F0F6018081FD -:101780009181081B190BC80FD91FE12CF12C0115F1 -:10179000110519F18091E80085FD16C08091E800DF -:1017A0008E778093E800C114D10449F0F60180815E -:1017B0009181E80EF91EF182E08285E00FC00E945F -:1017C0000F0D882321F30AC089918093F100015005 -:1017D0001109FFEFEF1AFF0ADACF80E0DF91CF9116 -:1017E0001F910F91FF90EF90DF90CF90089520917F -:1017F000FC013091FD012617370748F0611571058E -:1018000039F42091E8002E772093E80001C0B90157 -:1018100040E061157105A9F12091F501222309F439 -:1018200043C0253009F442C02091E80023FD40C0A8 -:101830002091E80022FD32C02091E80020FFE9CF8E -:101840004091F3002091F20030E0342BFC01CF01F5 -:101850006115710559F02830310540F4819180936C -:10186000F100615071092F5F3F4FF1CF41E0283007 -:10187000310509F040E02091E8002E772093E80040 -:10188000C8CF4111C9CF0AC08091F501882361F00A -:10189000853061F08091E80083FD0AC08091E80006 -:1018A00082FFF2CF80E0089582E0089583E00895FA -:1018B00081E008952091FC013091FD012617370742 -:1018C00048F06115710539F42091E8002E772093D6 -:1018D000E80001C0B901FC0120E06115710591F13A -:1018E0008091F501882309F440C0853009F43FC098 -:1018F0008091E80083FD3DC08091E80082FD2FC00B -:101900008091E80080FFE9CF2091F3008091F20000 -:1019100090E0922B6115710559F08830910540F4E3 -:1019200024912093F1003196615071090196F2CF14 -:1019300021E0089709F020E08091E8008E778093FD -:10194000E800CBCF2111CCCF0AC08091F5018823CC -:1019500061F0853061F08091E80083FD0AC08091DC -:10196000E80082FFF2CF80E0089582E0089583E0EE -:10197000089581E00895982F973058F59093E900E5 -:10198000981739F07091EC002091ED005091F00023 -:1019900003C0242F762F50E021FF19C03091EB00B7 -:1019A0003E7F3093EB003091ED003D7F3093ED00B2 -:1019B0003091EB0031603093EB007093EC0020939A -:1019C000ED005093F0002091EE0027FF07C09F5FCD -:1019D000D3CF8F708093E90081E0089580E008956F -:1019E0008091F60187FF11C08091E80082FD05C05B -:1019F0008091F5018111F8CF11C08091E8008B77BB -:101A00000BC08091F501882349F08091E80080FFA8 -:101A1000F8CF8091E8008E778093E80008952091B8 -:101A2000E4003091E50095E64091EC00842F817050 -:101A300040FF22C08091E80080FD1CC08091F5012C -:101A4000882391F0853091F08091EB0085FD10C0E6 -:101A50004091E4005091E5004217530729F39A01A1 -:101A6000915011F784E0089582E0089583E008958D -:101A700081E0089580E008954091E80042FFDECFC4 -:101A800008950E94AF0D0E94B70DE0EEF0E0808156 -:101A900081608083E8EDF0E080818F77808319BCDE -:101AA000A7EDB0E08C918E7F8C9380818F7E8083B8 -:101AB0001092F40108950F931F93CF93DF930E9428 -:101AC000AF0D0E94B70DC8EDD0E088818F77888375 -:101AD00088818068888388818F7D888319BC109273 -:101AE000F5011092F1011092F3011092F20100EE53 -:101AF00010E0F80180818B7F8083888181608883FA -:101B000042E060E080E00E94BB0CE1EEF0E080810A -:101B10008E7F8083E2EEF0E080818160808380812F -:101B200088608083F80180818E7F808388818061D6 -:101B30008883DF91CF911F910F910895E8EDF0E038 -:101B400080818F7E8083E7EDF0E0808181608083FB -:101B500084E082BF81E08093F4010C945B0DE8ED9A -:101B6000F0E080818E7F80831092E20008951092D1 -:101B7000DA001092E10008951F920F920FB60F92B3 -:101B800011242F933F934F935F936F937F938F9382 -:101B90009F93AF93BF93EF93FF938091E10082FFF8 -:101BA0000BC08091E20082FF07C08091E1008B7F33 -:101BB0008093E1000E9423108091DA0080FF1FC013 -:101BC0008091D80080FF1BC08091DA008E7F8093C7 -:101BD000DA008091D90080FF0DC080E189BD82E1EB -:101BE00089BD09B400FEFDCF81E08093F5010E941C -:101BF0001E0A05C019BC1092F5010E942C0A8091A2 -:101C0000E10080FF19C08091E20080FF15C0809143 -:101C1000E2008E7F8093E2008091E20080618093F9 -:101C2000E2008091D80080628093D80019BC85E0E2 -:101C30008093F5010E94300A8091E10084FF30C05A -:101C40008091E20084FF2CC080E189BD82E189BDE2 -:101C500009B400FEFDCF8091D8008F7D8093D8001D -:101C60008091E1008F7E8093E1008091E2008F7E81 -:101C70008093E2008091E20081608093E200809195 -:101C8000F101882311F084E007C08091E30087FD13 -:101C900002C081E001C083E08093F5010E94320A16 -:101CA0008091E10083FF29C08091E20083FF25C07D -:101CB0008091E100877F8093E10082E08093F501CD -:101CC0001092F1018091E1008E7F8093E10080917C -:101CD000E2008E7F8093E2008091E2008061809339 -:101CE000E20042E060E080E00E94BB0C8091F000E6 -:101CF00088608093F0000E942F0AFF91EF91BF91BE -:101D0000AF919F918F917F916F915F914F913F9193 -:101D10002F910F900FBE0F901F9018951F920F924A -:101D20000FB60F9211242F933F934F935F936F93AE -:101D30007F938F939F93AF93BF93CF93DF93EF9353 -:101D4000FF93C091E900CF708091EC00D82FD17043 -:101D500080FDD0E81092E9008091F000877F8093A9 -:101D6000F00078940E94D20E1092E9008091F00069 -:101D700088608093F000CD2BCF70C093E900FF9175 -:101D8000EF91DF91CF91BF91AF919F918F917F9113 -:101D90006F915F914F913F912F910F900FBE0F90D8 -:101DA0001F9018951F93CF93DF93CDB7DEB7AA97F7 -:101DB0000FB6F894DEBF0FBECDBFE6EFF1E088E0CE -:101DC0008E0F9091F10091938E13FBCF0E944E0ADB -:101DD0008091E80083FF1FC18091F6019091F70187 -:101DE000492F50E04A30510508F015C1FA01EA5A6E -:101DF000FF4F0C940D24803881F0823809F00BC11C -:101E00008091FA018F708093E9008091EB0085FB4F -:101E1000882780F91092E90006C08091F201909124 -:101E2000F301911182609091E800977F9093E80010 -:101E30008093F1001092F100C8C0282F2D7F09F087 -:101E4000EAC0882319F0823061F0E5C08091F80182 -:101E5000813009F0E0C0933009F080E08093F30115 -:101E60002BC08091F801811127C08091FA018F70F9 -:101E700009F4D1C08093E9002091EB0020FF1CC041 -:101E8000933021F48091EB00806214C09091EB00BC -:101E900090619093EB0021E030E0A90102C0440F73 -:101EA000551F8A95E2F74093EA001092EA0080916C -:101EB000EB0088608093EB001092E9008091E800CD -:101EC000877F86C08111A7C01091F8011F7780918C -:101ED000E3008078812B8093E3008091E800877F86 -:101EE0008093E8000E94F00C8091E80080FFFCCF16 -:101EF0008091E30080688093E300111102C082E0CA -:101F000001C083E08093F50186C08058823008F0DC -:101F100082C08091F8019091F9018C3D53E09507C2 -:101F200079F583E08A838AE289834FB7F894DE01EA -:101F3000139620E03EE051E2E32FF0E0509357008B -:101F4000E49120FF03C0E295EF703F5FEF708E2FAA -:101F500090E0EA3010F0C79601C0C0968D939D9333 -:101F60002F5F243149F74FBF8091E800877F80932E -:101F7000E8006AE270E0CE0101960E94F70B14C0FF -:101F8000AE014F5F5F4F6091FA010E943E0BBC01B2 -:101F9000009709F440C09091E800977F9093E80083 -:101FA00089819A810E945A0C8091E8008B778093F6 -:101FB000E80031C0803879F58091E800877F809310 -:101FC000E8008091F1018093F1008091E8008E7724 -:101FD0008093E8000E94F00C1EC081111CC09091FB -:101FE000F8019230C0F48091E800877F8093E80088 -:101FF0009093F1010E94F00C8091F101811106C0D3 -:102000008091E30087FD02C081E001C084E08093FD -:10201000F5010E943A0A8091E80083FF0AC080918E -:10202000E800877F8093E8008091EB0080628093D6 -:10203000EB00AA960FB6F894DEBF0FBECDBFDF91BE -:10204000CF911F9108950895CF938091F501882332 -:10205000A1F0C091E900CF709091EC00892F8170C0 -:1020600090FD80E8C82B1092E9008091E80083FD84 -:102070000E94D20ECF70C093E900CF910895909343 -:102080007901809378010895E0917801F0917901C8 -:10209000309721F00190F081E02D099480E00895BF -:1020A000E0917801F0917901309721F00280F3817D -:1020B000E02D09940895E0917801F091790130972D -:1020C00021F00480F581E02D099408952091760196 -:1020D000309177018217930771F090937701809385 -:1020E0007601E0917801F0917901309721F0068036 -:1020F000F781E02D099408952091740130917501C4 -:102100008217930771F09093750180937401E091A9 -:102110007801F0917901309721F00084F185E02D6C -:102120000994089508950C9492100E94EC1B0E944B -:1021300031030C94AE1C9F92AF92BF92CF92DF926C -:10214000EF92FF920F931F93CF93DF9300D000D0B5 -:1021500000D0CDB7DEB70E9449030DE010E0AA24FD -:10216000A394B12C902E802F0E94370498012558FB -:102170003E4F6901F901F080F826A1F401501109E0 -:1021800088F78FEF89838A831B820E94F51B816009 -:10219000782F9D838C8349815A816B818D810E9428 -:1021A00032112FC09091DE0191FF04C08E830E94F6 -:1021B0003D048E8125E030E0A501022E01C0440FD0 -:1021C0000A94EAF7E42E4F21C1F029839A828E21E6 -:1021D00091E009F490E09B830E94F51B8160782FC9 -:1021E0009D838C8349815A816B818D810E9432113C -:1021F000F6018081E826E08204C021503109E0F632 -:10220000BDCF0E94951F10917A010E9444101817AB -:10221000B9F00E94441080937A0126960FB6F89484 -:10222000DEBF0FBECDBFDF91CF911F910F91FF9009 -:10223000EF90DF90CF90BF90AF909F900C943D09AE -:1022400026960FB6F894DEBF0FBECDBFDF91CF91BB -:102250001F910F91FF90EF90DF90CF90BF90AF90C4 -:102260009F900895CF93DF93CDB7DEB72B970FB62E -:10227000F894DEBF0FBECDBF4F83588769877A873A -:102280008B87DE01119686E0FD0111928A95E9F7B0 -:1022900085E0FE01379601900D928A95E1F749811C -:1022A0005A816B817C818D819E810E947B172B9648 -:1022B0000FB6F894DEBF0FBECDBFDF91CF9108956A -:1022C000CF93882309F4C2C0C82F823859F40E94E2 -:1022D000441081FDBBC089E30E94551A0E94221B55 -:1022E00089E30CC0833879F40E94441080FDAEC0AD -:1022F00083E50E94551A0E94221B83E50E94971ACB -:10230000CF910C94221B843859F40E94441082FD12 -:102310009DC087E40E94551A0E94221B87E4EECFDD -:102320008CEF8C0F813A48F48C2F0E94D8218111B8 -:102330008DC08C2F0E94551AE3CF80E28C0F88301D -:1023400048F4C77081E001C0880FCA95EAF70E947F -:10235000DB1AD6CF8BE58C0F833078F4C53A29F0A1 -:10236000C63A31F083E890E005C081E890E002C011 -:1023700082E890E0CF910C94661088E58C0F833151 -:1023800008F064C0C83A39F1C93A41F1CA3A49F192 -:10239000CB3A51F1CC3A59F1CD3A61F1C03B69F1F8 -:1023A000CE3A71F1CF3A79F1C13B81F1C23B89F16B -:1023B000C33B91F1C43B99F1C53BA1F1C63BA9F1E7 -:1023C000C73BB1F1C83BB9F1C93BC1F1CA3BC9F147 -:1023D00080E090E038C082EE90E035C089EE90E079 -:1023E00032C08AEE90E02FC085EB90E02CC086EBE7 -:1023F00090E029C087EB90E026C08CEC90E023C0F1 -:102400008DEC90E020C083E891E01DC08AE891E067 -:102410001AC082E991E017C084E991E014C081E21A -:1024200092E011C083E292E00EC084E292E00BC021 -:1024300085E292E008C086E292E005C087E292E081 -:1024400002C08AE292E0CF910C947C10CF91089563 -:10245000882309F44BC0823859F40E94441081FF4C -:1024600045C089E30E94551A0E94221B89E30CC0D3 -:10247000833871F40E94441080FF38C083E50E94C5 -:10248000551A0E94221B83E50E94971A0C94221B66 -:10249000843859F40E94441082FF28C087E40E94C7 -:1024A000551A0E94221B87E4EFCF9CEF980F913AB8 -:1024B00058F390E2980F983050F4877091E001C083 -:1024C000990F8A95EAF7892F0E94E11ADFCF9BE5E1 -:1024D000980F933020F480E090E00C946610885AB6 -:1024E000833120F480E090E00C947C1008958823E0 -:1024F00021F00E94DB1A0C94221B0895882321F0FE -:102500000E94E11A0C94221B08957F928F929F9251 -:10251000AF92BF92CF92DF92EF92FF920F931F93F1 -:10252000CF93DF931F92CDB7DEB77C01C62E772EF7 -:10253000FC01058102950F70128111110E94F81A99 -:102540000E944E1A882379F0112369F080E28C0DE5 -:10255000883048F082E00E94371A0E944E1A91E0BB -:10256000D82ED92601C0D12CE72DE295EF70F0E0EE -:10257000E05AFF4F0C940D24872D807F072D0F709C -:10258000882311F00295007F112389F0002309F4BC -:1025900090C180E28C0D883020F4802F0E94DB1ADD -:1025A00003C0802F0E94EB1A0E94221B82C18C2D37 -:1025B0000E942812002309F495C180E28C0D883016 -:1025C00020F4802F0E94E11A03C0802F0E94F11A8C -:1025D0000E94221B87C1972D907F872D8F7090328C -:1025E00011F08295807FCC2021F0F1E0CF16B1F080 -:1025F0001EC0112349F0002309F414C1013009F071 -:1026000011C10E940B1B6EC1002319F0013009F4A7 -:1026100069C189830E940E1B89810AC1112321F09F -:10262000023008F05FC1FEC001115CC101C111237D -:1026300021F0002309F4F6C03CC1002309F4F8C0DE -:102640003EC1872D86958695837090E0009719F09E -:10265000019761F047C1112321F08C2D972D9370C4 -:1026600002C080E090E00E9466103CC1112321F07E -:102670008C2D972D937002C080E090E00E947C101A -:1026800031C18C2D112319F00E949D1E02C00E94A1 -:10269000051F0E948A1F26C1872D837009F052C032 -:1026A000111120C18C2D829586958770880F880F17 -:1026B0009C2D9F70892E912CA12CB12C082E04C02A -:1026C000880C991CAA1CBB1C0A94D2F7C4FE14C027 -:1026D0000FE010E020E030E0B901A80104C0440F91 -:1026E000551F661F771F8A95D2F7CB01BA016095F7 -:1026F00070958095909503C060E070E0CB01272D28 -:1027000026952695237030E02230310569F023307C -:10271000310589F0682979298A299B2921303105D9 -:1027200071F00E94C318DEC0682979298A299B2983 -:102730000E94DF18D7C00E94C318C501B4010E94CF -:10274000A718D0C0112319F0872D817001C086957C -:10275000882309F4C7C08C2D829586958770880FD1 -:10276000880F9C2D9F70892E912CA12CB12C082EA6 -:1027700004C0880C991CAA1CBB1C0A94D2F7C4FE86 -:1027800014C00FE010E020E030E0B901A80104C05F -:10279000440F551F661F771F8A95D2F7CB01BA01E8 -:1027A000609570958095909503C060E070E0CB01D6 -:1027B000272D269526952370422F50E04230510553 -:1027C00069F04330510589F0682979298A299B29C4 -:1027D0004130510571F00E949D1984C06829792902 -:1027E0008A299B290E94B9197DC00E949D19C501A3 -:1027F000B4010E94811976C08C2D90E0FC01E05E4E -:10280000F109E531F10508F050C0E059FF4F0C9493 -:102810000D240C2D0F70872D8F71112331F00E9424 -:102820001A19802F0E9477125DC00E943B19802FD9 -:102830000E947E1257C0112339F0011153C0872D19 -:102840008F710E9460194EC0023008F04BC0F7CF64 -:10285000112339F0872D8F710E941A1943C011235B -:10286000C9F3872D8F710E943B193CC0112329F0B9 -:10287000872D8F710E94051935C00E94FB1832C048 -:10288000112351F0172D1F71812F0E941A1963E037 -:10289000812F0E942E1A26C081E00E94371A023032 -:1028A00008F182E00E94371A1DC0112331F0002385 -:1028B00089F28C2D0E94601115C0002391F28C2D9D -:1028C0000E9428120FC0472D4F706C2DC7010E9427 -:1028D00013050E941F1806C0472D4F706C2DC701AD -:1028E0000E944C06DD20F9F00E942A1A80FD1BC0D0 -:1028F000F70112820E94241A0E941A19C7010E942D -:10290000A2140E94241A0F90DF91CF911F910F9172 -:10291000FF90EF90DF90CF90BF90AF909F908F90FF -:102920007F900C943B190F90DF91CF911F910F91E5 -:10293000FF90EF90DF90CF90BF90AF909F908F90DF -:102940007F9008950F931F93CF93DF93EC018881BD -:1029500099812B813C81232BB9F09F3F11F48F3F4C -:1029600099F0CE010E94A405882371F068817981D5 -:102970008A810E94201A8C010E94D5190E949C18FD -:10298000B801CE010E948512DF91CF911F910F9166 -:1029900008950E94F81A0E94081B0E94CD1A0E94F6 -:1029A000221B0E943B200E948A1F80E090E00E9430 -:1029B000661080E090E00C947C100E94E81A0C9461 -:1029C000C9140E94151A292F22952F7030E02C303F -:1029D00031054CF42A3031056CF422503109223093 -:1029E0003105A8F407C02C30310569F02F303105CE -:1029F00051F00DC0803F69F018F4803E40F409C0EA -:102A0000843F29F406C093FB882780F9089580E06D -:102A1000089581E00895CF93DF9300D000D01F92F6 -:102A2000CDB7DEB70F900F900F900F900F90DF9102 -:102A3000CF910895CF93DF9300D000D000D0CDB7D1 -:102A4000DEB726960FB6F894DEBF0FBECDBFDF917E -:102A5000CF9108951F93CF93DF93C091890116E022 -:102A600080918A01C81799F0D0E01C9FF0011D9F4A -:102A7000F00D1124E557FE4F408151816281738131 -:102A8000848195810E941A152196C770E9CFDF9144 -:102A9000CF911F9108954091BB015091BC0160916D -:102AA000BD017091BE018091BF019091C0010C9455 -:102AB0001A158091C00182958F7009F054C08091E1 -:102AC000BD01882309F44FC080918901A0918A013A -:102AD0006091BB017091BC014091BE015091BF015A -:102AE000B6E08A1709F43FC090E041155105C1F1E5 -:102AF0007F3F11F46F3FA1F1B89FF001B99FF00D36 -:102B00001124E557FE4F218172132AC020816213E0 -:102B100027C02281211124C0238134812417350745 -:102B200010F421503109241B350B283C3105C0F429 -:102B30002091C0012F7020612093C00126E0289FC2 -:102B4000F001299FF00D1124E057FE4F80818F7016 -:102B5000806180838BEB91E00E94A2140C942A1573 -:102B600001968770BECF0895CF92DF92EF92FF92C9 -:102B70000F931F93CF93DF93CDB7DEB762970FB656 -:102B8000F894DEBF0FBECDBF8C0185E0F801DE01F9 -:102B90001D9601900D928A95E1F7D8014C911196FE -:102BA0005C91119712966C9112971396CD90DC90D0 -:102BB00014973091BB017091BC018091BE0190913E -:102BC000BF01009709F46BC17F3F19F43F3F09F43F -:102BD00066C1E090BD01EE2009F4C0C02091C001A3 -:102BE000C816D90628F0F601E81BF90BCF0104C07E -:102BF000809590958C0D9D1DFF24F394883C910544 -:102C000078F0F12C207F09F0C6C07C2DD98AC88AC3 -:102C100089890E940B158BEB91E00E94A214B1C030 -:102C2000822F807F09F046C0751314C0341312C080 -:102C3000611110C02F7020612093C0010E944B15BC -:102C40008BEB91E00E94A2148091C001D8011596EF -:102C50008C932EC0CD2819F15F3F11F44F3FF9F04E -:102C6000F62E61111CC08091890120918A0136E005 -:102C7000821709F45AC090E0389FF001399FF00D97 -:102C80001124E557FE4F7181571306C07081471319 -:102C900003C07281711103C001968770E9CFF62ECF -:102CA000662309F418C18091C00181608093C0013E -:102CB000F12C11C1751308C0341306C0611104C092 -:102CC0008091C001D801C3C04D875E878D859E85E8 -:102CD0006A8B0E94E1146A898823E1F16623D1F1AD -:102CE0002091C001822F82958F7090E0029774F03E -:102CF0008091BB019091BC0198878F831986DB86F8 -:102D0000CA862C87CE0107960E94A21486E0F8019D -:102D1000ABEBB1E001900D928A95E1F70E94591555 -:102D20000E944B15FF24F394D6C04D875E878D8596 -:102D30009E850E94151A292F22952F7030E022308F -:102D400031050CF0BCC09F7009F0B6C0805E8830C1 -:102D500008F4C1C0C8010E94A214E4CFC816D90665 -:102D600008F453C0F601E81BF90BCF01883C91052C -:102D700008F450C0F12C7C2DD98AC88A89890E9418 -:102D80000B15EBEBF1E086E0DF011D928A95E9F788 -:102D90000E944B15A0C0751314C0341312C06111EA -:102DA00010C08091C001F8018583C8010E94A2145F -:102DB00086E0EBEBF1E0DF011D928A95E9F7FE2C4E -:102DC0008AC04D875E878D859E856A8B0E94E1143F -:102DD0006A89882309F4BECF662309F4BBCF20910A -:102DE000C001822F82958F7090E002970CF48ECFF5 -:102DF0008091BB019091BC019A8389831B82DD8203 -:102E0000CC822E83CE0101967FCF809590958C0D3C -:102E10009D1DACCFF62E662309F49CCF75132EC0F2 -:102E200034132CC02091C00120FD1FC0822F829539 -:102E30008F70D9F0D80115962C9315978F3049F0E3 -:102E40008F5F982F9295907F822F8F70892B159688 -:102E50008C93C8010E94A21486E0F801ABEBB1E0AC -:102E600001900D928A95E1F793CF86E0F801ABEBE4 -:102E7000B1E001900D928A95E1F72DC04D875E87F4 -:102E80008D859E850E94E114811140CF8091C00103 -:102E900081608093C001C8010E94A2141CC06623F7 -:102EA00009F458CF4D875E878D859E850E94E11479 -:102EB000882309F44FCF2ACF811148CF0CC024308A -:102EC00031050CF047CF9F7009F440CFF801958190 -:102ED000907F09F03BCF8F2D62960FB6F894DEBF3E -:102EE0000FBECDBFDF91CF911F910F91FF90EF905B -:102EF000DF90CF9008951F93CF93DF93CDB7DEB7C8 -:102F00002C970FB6F894DEBF0FBECDBF4F83588706 -:102F100069877A878B879C87CE0107960E94B415B4 -:102F2000882369F08F8198852A853B85232BF1F1D1 -:102F30009F3F09F063C08F3F09F060C037C086E053 -:102F4000FE013796DE01119601900D928A95E1F708 -:102F50006F817885EA85FB85309741F17F3F11F4D9 -:102F60006F3F21F120918A0130E0C90101968770FD -:102F700099274091890150E08417950709F447C0CB -:102F800069837A83FD83EC8396E0929FD001939FBF -:102F9000B00D1124A557BE4FFE01319601900D9240 -:102FA0009A95E1F780938A010E942A1516E0809194 -:102FB000890190918A018917C1F1189FC0011124DC -:102FC00085579E4F0E94B415882379F1E0918901BD -:102FD0001E9FF0011124E557FE4F4081518162810F -:102FE0007381848195810E941A158091890190E0F6 -:102FF00001968770992780938901D9CF4F81588591 -:1030000069857A858B859C850E941A15CFCF0E9491 -:10301000DD1410928A0110928901EBEBF1E086E059 -:10302000DF011D928A95E9F7C1CF2C960FB6F8946F -:10303000DEBF0FBECDBFDF91CF911F910895EF92FC -:10304000FF920F931F93CF93DF938C01009709F4A6 -:103050006CC0F12CEE24E394E8012196F8018491F0 -:10306000843740F4843008F051C0813081F08230E0 -:1030700019F15BC0853709F444C0A8F19CE7980FAB -:10308000903708F052C08F770E94281241C00E5F1F -:103090001F4FFE01C49180E28C0F883048F4C77046 -:1030A0008E2D01C0880FCA95EAF70E94FB1A14C042 -:1030B0008C2F0E9460112DC00E5F1F4FFE01C49126 -:1030C00080E28C0F883058F4C7708E2D01C0880FB5 -:1030D000CA95EAF70E94011B0E94221B1AC08C2F7E -:1030E0000E94281216C00E5F1F4FFE01C491CC2310 -:1030F00081F08FE99FE00197F1F700C00000C15017 -:10310000F6CF0E5F1F4FFE01F49003C00E946011C6 -:103110008E018F2D882309F49FCFEFE9FFE03197CF -:10312000F1F700C000008150F5CFDF91CF911F91E2 -:103130000F91FF90EF90089508956093C5017093EB -:10314000C6018093C7019093C8010C94C9140F93D2 -:103150001F930091C5011091C6012091C7013091C4 -:10316000C801DC01CB01802B912BA22BB32B8093C8 -:10317000C5019093C601A093C701B093C8011F91E8 -:103180000F910C94C9140F931F930091C5011091D6 -:10319000C6012091C7013091C801DC01CB01802319 -:1031A0009123A223B3238093C5019093C601A093DA -:1031B000C701B093C8011F910F910C94C9140F93CC -:1031C0001F930091C5011091C6012091C701309154 -:1031D000C801DC01CB0180279127A227B327809368 -:1031E000C5019093C601A093C701B093C8011F9178 -:1031F0000F910C94C9141092C1011092C201109247 -:10320000C3011092C4010C94C91441E050E060E085 -:1032100070E004C0440F551F661F771F8A95D2F7D0 -:103220004093C1015093C2016093C3017093C401E4 -:103230000C94C91441E050E060E070E004C0440F19 -:10324000551F661F771F8A95D2F78091C101909113 -:10325000C201A091C301B091C401482B592B6A2B24 -:103260007B2B4093C1015093C2016093C3017093C3 -:10327000C4010C94C91441E050E060E070E004C067 -:10328000440F551F661F771F8A95D2F740955095BA -:10329000609570958091C1019091C201A091C30188 -:1032A000B091C401482359236A237B234093C10171 -:1032B0005093C2016093C3017093C4010C94C9146C -:1032C00041E050E060E070E004C0440F551F661F0D -:1032D000771F8A95D2F78091C1019091C201A09188 -:1032E000C301B091C401482759276A277B2740931F -:1032F000C1015093C2016093C3017093C4010C9447 -:10330000C9140F931F930091C1011091C201209124 -:10331000C3013091C401DC01CB01802B912BA22B86 -:10332000B32B8093C1019093C201A093C301B093CA -:10333000C4011F910F910C94C9140F931F93009116 -:10334000C1011091C2012091C3013091C401DC017F -:10335000CB0180239123A223B3238093C1019093B7 -:10336000C201A093C301B093C4011F910F910C94AB -:10337000C9140F931F930091C1011091C2012091B4 -:10338000C3013091C401DC01CB0180279127A22722 -:10339000B3278093C1019093C201A093C301B0935E -:1033A000C4011F910F910C94C9140895CF92DF921C -:1033B000EF92FF920F931F93CF93DF938C01C090F6 -:1033C000C501D090C601E090C701F090C80180917E -:1033D000C1019091C201A091C301B091C401C82A5A -:1033E000D92AEA2AFB2ACFE1D0E0D701C6010C2E68 -:1033F00004C0B695A795979587950A94D2F780FF54 -:1034000006C0B8018C2F0E94A208019721F42197D1 -:1034100060F780E001C08C2FDF91CF911F910F9159 -:10342000FF90EF90DF90CF900895CF93DF93EC0162 -:103430000E94D619BE010E94A208DF91CF91089583 -:10344000CB010E94151A08958091C9018595859533 -:10345000859508958091C9018770089598E0899FA6 -:1034600090011124262B2093C9010C941A19209144 -:10347000C901809582238093C901982F977069F4C0 -:1034800030E0482F552747FD50952417350729F080 -:103490008595859585950C943B1908959091C90162 -:1034A000977081E009F480E0089590910C019923D0 -:1034B00021F090910D01911109C020910E013091E0 -:1034C0000F01F90132969FEF40E01FC0982F9695AB -:1034D000969596959F3050F5E0910E01F0910F0171 -:1034E000E90FF11D877021E030E0A90102C0440F0F -:1034F000551F8A95E2F7CA019181892B818308952E -:103500009F3F39F04F5F4E3041F051915813F8CF43 -:103510000DC05111F7CF942FF5CF9F3F39F0F9012E -:10352000E90FF11D97FDFA95828308950895909112 -:103530000C01992321F090910D01911109C0209166 -:103540000E0130910F01F9013296205F3F4F1FC0ED -:10355000982F9695969596959F30F0F4E0910E01F0 -:10356000F0910F01E90FF11D877021E030E0A90112 -:1035700002C0440F551F8A95E2F7CA0180959181D8 -:103580008923818308953196E217F30729F090810A -:103590009813F9CF1082F7CF089581E090E0E09181 -:1035A0000E01F0910F01E80FF91F10820196803192 -:1035B0009105A9F708959091DD01892B8093DD0194 -:1035C000089580959091DD0189238093DD01089510 -:1035D0001092DD0108959091DC01892B8093DC012C -:1035E000089580959091DC0189238093DC010895F2 -:1035F0001092DC0108959091DB01892B8093DB010F -:10360000089580959091DB0189238093DB010895D3 -:103610001092DB0108958093CA0108951092CA01A7 -:10362000089580910E0190910F01FC0131969C014B -:10363000205F3F4F80E0919191118F5FE217F30778 -:10364000D1F70895E0910E01F0910F018091DD0115 -:103650008083E0910E01F0910F0190818091DC0157 -:10366000892B8083E0910E01F0910F019081809170 -:10367000DB01892B80838091CA01882361F0E0916E -:103680000E01F0910F019081892B80830E94111B04 -:1036900081111092CA0180910E0190910F010C943A -:1036A000501020E0009739F0AC01415051098423BB -:1036B00095232F5FF7CF822F0895CF92DF92EF925D -:1036C000FF926C01EE24FF24C114D104E104F10443 -:1036D00021F0C701B60120E101C020E0C72ED82E9D -:1036E000E92EFF24C114D104E104F10419F0285F8C -:1036F000C701B6016B017C0154E0F694E794D794BE -:10370000C7945A95D1F7C114D104E104F10419F01A -:103710002C5FC701B6016B017C0142E0F694E7948F -:10372000D794C7944A95D1F7C114D104E104F104A8 -:1037300019F02E5FC701B601DC01CB01B695A79544 -:1037400097958795892B8A2B8B2B09F02F5F822FDA -:10375000FF90EF90DF90CF9008958091F501843035 -:1037600021F11092DF0120E488E190E00FB6F89497 -:10377000A895809360000FBE2093600080E00E94B7 -:103780003D0983B7817F846083BF83B7816083BF36 -:103790007894889583B78E7F83BF88E10FB6F894BD -:1037A00080936000109260000FBE08950895089500 -:1037B0000E94D61B0E9449030E94D71B0E943E0410 -:1037C00091E0811101C090E0892F08950E94DD14DD -:1037D0000E9444100C943D0982E084BD93E095BDA5 -:1037E0009AEF97BD80936E0008952FB7F89480915B -:1037F000E0019091E101A091E201B091E3012FBFBE -:103800000895CF92DF92EF92FF920F931F932FB7FD -:10381000F8944091E0015091E1016091E2017091D2 -:10382000E3012FBF6A017B01EE24FF248C0120E01D -:1038300030E0C016D106E206F30610F441505109FB -:103840009A01281B390BC9011F910F91FF90EF902E -:10385000DF90CF9008951F920F920FB60F92112410 -:103860008F939F93AF93BF938091E0019091E1017B -:10387000A091E201B091E3010196A11DB11D8093D9 -:10388000E0019093E101A093E201B093E301BF91C5 -:10389000AF919F918F910F900FBE0F901F90189531 -:1038A0000E94410DF8942FEF87EA91E62150804065 -:1038B0009040E1F700C0000087E090EBDC018093CE -:1038C000FF0190930002A0930102B09302029CE0DA -:1038D00088E10FB6F894A895809360000FBE90938E -:1038E0006000FFCFEF92FF920F931F93CF93DF9370 -:1038F000D82FCDE08C2F0E94370405E010E0E82E91 -:10390000F12CC701002E02C0959587950A94E2F725 -:1039100080FF09C0602F7C2F80E00E944D06D813E5 -:1039200002C081E006C00150110958F7C15010F7DC -:1039300080E0DF91CF911F910F91FF90EF9008955C -:10394000CF93C82F8CE20E94721C882321F08C2F09 -:10395000CF910C94721C80E0CF910895CF930E9478 -:10396000F51D811102C00E94DB1DC5E6C15049F062 -:103970000E9449038FE39CE90197F1F700C0000022 -:10398000F5CF89E20E94A01C811113C18AE20E9436 -:10399000A01C81110E94DB1D85E00E94A01C8111EA -:1039A0000E94501C0E94001E8093DE0187E00E944E -:1039B000A01C8823A9F18BE10E94A01C882351F050 -:1039C0008091DE0181FB222720F991E0922790FB74 -:1039D00081F90EC08EE00E94A01C882361F08091C6 -:1039E000DE0182FB222720F991E0922790FB82F9E9 -:1039F0008093DE0115C080E10E94A01C9091DE0141 -:103A0000882341F093FB222720F981E0822780FB65 -:103A100093F904C0892F809580FB90F99093DE0183 -:103A20008091DE010E94041E0E94121E8093FE01FE -:103A300080EE0E94A01C882341F08091FE01982F07 -:103A4000909590FB80F98093FE0189E30E94A01C71 -:103A5000882359F08091FE0181FB222720F991E013 -:103A6000922790FB81F98093FE0182EE0E94A01CB8 -:103A7000882359F08091FE0182FB222720F991E0F2 -:103A8000922790FB82F98093FE0186EE0E94A01C93 -:103A9000882359F08091FE0183FB222720F991E0D1 -:103AA000922790FB83F98093FE0183EE0E94A01C75 -:103AB000882359F08091FE0184FB222720F991E0B0 -:103AC000922790FB84F98093FE0185E30E94A01C5D -:103AD000882359F08091FE0185FB222720F991E08F -:103AE000922790FB85F98093FE0181E30E94A01C40 -:103AF000882359F08091FE0186FB222720F991E06E -:103B0000922790FB86F98093FE0181E10E94A01C20 -:103B1000882359F08091FE0187FB222720F991E04C -:103B2000922790FB87F98093FE018091FE010E940D -:103B3000161E8091FE0187FB882780F980930D0176 -:103B400087E20E94A01CC82F8EE10E94A01C811158 -:103B5000C2608FE10E94A01C8111C46080E20E94BB -:103B6000A01C8111C86081E20E94A01C8111C0616B -:103B700082E20E94A01C8111C06283E20E94A01C0C -:103B80008111C06484E20E94A01C882311F0C068E7 -:103B900002C0CC2329F08C2F0E940D1E6C2F03C075 -:103BA0000E94091E682F70E080E090E0CF910C9495 -:103BB0009D18CF9108956DEE7EEF80E090E00E9419 -:103BC000472460E082E090E00E94352460E083E0DA -:103BD00090E00E94352460E084E090E00E9435246B -:103BE00060E085E090E00C94352480E090E00E9455 -:103BF0002F2421E08D3E9E4F09F020E0822F089572 -:103C000082E090E00C942724682F82E090E00C94EE -:103C1000352483E090E00C942724682F83E090E023 -:103C20000C94352484E090E00C942724682F84E0E1 -:103C300090E00C9435248091E60180FF0BC06091E8 -:103C4000130185E0689FB0011124759567957595FE -:103C500067952BC081FF09C06091130185E0689FC3 -:103C6000B00111247595679520C082FF07C060914F -:103C7000130185E0689FB001112417C09091E701FE -:103C80009923D1F060911201961788F720911301C2 -:103C900085E0289F90011124929FA001939F500DD1 -:103CA000112470E0CA010E94F9236038710540F4C4 -:103CB0006115710539F002C065E070E0862F089546 -:103CC0008FE7089581E008958091E60180FF08C0A4 -:103CD0006091110170E0759567957595679521C0A4 -:103CE00081FF06C06091110170E07595679519C05C -:103CF00082FF04C06091110170E010C09091E70153 -:103D00009923C1F0609110019617A0F780911101DD -:103D1000899FC001112470E00E94F9236038710569 -:103D200028F46115710521F0862F08958FE7089515 -:103D300081E0089561E070E0F4CF803F21F40E94BB -:103D40001B1E819504C0813F29F40E941B1E809395 -:103D5000EA010895823F21F40E941B1E819504C050 -:103D6000833F29F40E941B1E8093E9010895893F37 -:103D700019F40E94641E05C08A3F31F40E94641E3B -:103D800081958093EB0108958B3F21F40E94641E7E -:103D9000819504C08C3F29F40E94641E8093EC013D -:103DA0000895843F21F48091E801816017C0853F28 -:103DB00021F48091E801826011C0863F21F4809156 -:103DC000E80184600BC0873F21F48091E80188609E -:103DD00005C0883F31F48091E80180618093E8015B -:103DE00008958D3F21F48091E60181600BC08E3FE4 -:103DF00021F48091E601826005C08F3F29F4809113 -:103E0000E60184608093E6010895803F39F4809153 -:103E1000EA0187FF6CC01092EA0169C0813F29F472 -:103E20008091EA011816BCF362C09091E901823FCB -:103E300029F497FF5CC01092E90159C0833F19F43F -:103E40001916CCF354C0893F41F48091EB01181648 -:103E50000CF04DC01092EB014AC08A3F29F48091CA -:103E6000EB0187FF44C0F6CF8B3F39F48091EC0122 -:103E700087FF3DC01092EC013AC08C3F29F480913D -:103E8000EC011816BCF333C0843F21F48091E801A3 -:103E90008E7F17C0853F21F48091E8018D7F11C08E -:103EA000863F21F48091E8018B7F0BC0873F21F48E -:103EB0008091E801877F05C0883F31F48091E80157 -:103EC0008F7E8093E80113C08D3F21F48091E6013D -:103ED0008E7F0BC08E3F21F48091E6018D7F05C05F -:103EE0008F3F29F48091E6018B7F8093E6018091DA -:103EF000E90181110EC08091EA0181110AC080910F -:103F0000EB01811106C08091EC01811102C0109279 -:103F1000E701089588EE91E00E945B100E94F51B76 -:103F20009093E5018093E40108951F93CF93DF936D -:103F30008091E4019091E5010E94011CAC019091F7 -:103F4000E701992321F02091140130E006C020916F -:103F500015018AE0289F900111244217530708F4A5 -:103F600086C08091E901C091EA01D091EB011091E6 -:103F7000EC01811107C0C11176C0D11174C01111BB -:103F800072C075C09F3F19F09F5F9093E7011816AC -:103F900024F40E941B1E8093E9018091E90187FFB0 -:103FA00005C00E941B1E81958093E9011C1624F414 -:103FB0000E941B1E8093EA018091EA0187FF05C0E1 -:103FC0000E941B1E81958093EA016091E90166239E -:103FD00039F1C091EA01CC2319F1772767FD70957B -:103FE000872F972F0E940A2323E333E343E35FE302 -:103FF0000E946E230E94D7226093E9016C2F7727DD -:1040000067FD7095872F972F0E940A2323E333E3E0 -:1040100043E35FE30E946E230E94D7226093EA018C -:104020001D1624F40E94641E8093EB018091EB0125 -:1040300087FF05C00E94641E81958093EB011116D5 -:1040400024F40E94641E8093EC018091EC0187FFB0 -:1040500005C00E94641E81958093EC01DF91CF9191 -:104060001F910C948A1F9F3F09F08ECF96CFDF914E -:10407000CF911F910895E8EEF1E085E0DF011D92F8 -:104080008A95E9F71092E7011092E60108958330CE -:1040900081F128F4813059F08230D1F008958530D3 -:1040A00009F449C0B8F1863009F456C008958091EA -:1040B0001501262F30E0280F311D2F3F310524F444 -:1040C000680F6093150108958FEF8093150108958F -:1040D00080911401262F30E0280F311D2F3F31052C -:1040E00024F4680F6093140108958FEF80931401F6 -:1040F000089580911301262F30E0280F311D2F3FA6 -:10410000310524F4680F6093130108958FEF8093B5 -:104110001301089580911201262F30E0280F311DE0 -:104120002F3F310524F4680F6093120108958FEF3B -:1041300080931201089580911101262F30E0280FFD -:10414000311D2F3F310524F4680F6093110108954C -:104150008FEF80931101089580911001262F30E098 -:10416000280F311D2F3F310524F4680F6093100193 -:1041700008958FEF809310010895833011F128F492 -:10418000813049F0823091F00895853081F120F13D -:104190008630C1F1089580911501681720F4861BBF -:1041A00080931501089510921501089580911401CE -:1041B000681720F4861B809314010895109214014F -:1041C000089580911301681720F4861B80931301D2 -:1041D000089510921301089580911201681720F438 -:1041E000861B809312010895109212010895809108 -:1041F0001101681720F4861B809311010895109215 -:104200001101089580911001681720F4861B809396 -:10421000100108951092100108950F931F938D318E -:1042200009F46BC008F03FC08E3009F47FC0C0F4C1 -:10423000873009F469C068F4863009F0B1C0809114 -:10424000DE01817F8E7F8093DE0181E08093EE012D -:10425000A8C0883009F4A2C08B3009F49FC0A0C068 -:10426000863109F49BC078F4803109F472C0813141 -:1042700009F096C00E94DD1490910D0181E089271C -:1042800080930D018BC0893109F488C08B3109F00E -:1042900087C08091DE0181FB222720F991E09227DF -:1042A00090FB81F94CC0853309F470C048F4873223 -:1042B00009F46CC008F459C0893209F467C070C0B1 -:1042C000833438F48A3308F04EC0883309F466C06A -:1042D00067C0833409F45AC0883409F061C00E9471 -:1042E000DD140FEF13ED20E3015010402040E1F703 -:1042F00000C000000E94501C51C00E9491220E94E8 -:1043000044100E943D094AC09091DE01892F80959A -:10431000817080FB90F929F0966098609093DE019F -:1043200040C0997F977F9093DE0138C08091DE0175 -:1043300082FB222720F991E0922790FB82F980935B -:10434000DE01992359F18091DE0181608093DE01C5 -:1043500025C08091DE0183FB222720F991E092277E -:1043600090FB83F9ECCF895301C08D5141E050E0BF -:1043700060E070E08A019B0104C0000F111F221F42 -:10438000331F8A95D2F7C901B80104C061E070E01B -:1043900080E090E00E949D180E94DD1481E001C041 -:1043A00080E01F910F91089580E0089580E00895C6 -:1043B000CF93C82F8091EE01813079F018F08230D0 -:1043C000E9F187C0E0910E01F0910F018081813108 -:1043D00069F0823209F07FC009C0E0910E01F091CE -:1043E0000F018081813111F0823261F48C2F0E94A3 -:1043F000D421811104C08C2F0E940D211DC081E0A9 -:1044000090E01AC08C2F0E94D621811114C0C431B3 -:1044100079F048F4CB3079F0C03109F060C082E027 -:104420008093EE0108C0C93219F0C83321F057C09B -:104430001092EE0154C081E0817053C0C93289F1FD -:1044400018F5C43171F1A8F4C73009F046C08AE00C -:104450008093150194E19093140193E090931301DC -:104460008093120188E08093110188E2809310010B -:1044700034C0CE51C63088F5EC2FF0E0E65DFE4F3B -:1044800080818093ED0129C0CE34E9F020F4CB3453 -:1044900021F56AE013C0C13579F0C235F1F461E06D -:1044A0000DC08091ED01882319F01092ED0115C027 -:1044B00081E08093EE0115C061E006C08091ED01BE -:1044C0000E9447200AC06AE08091ED010E94BD2051 -:1044D00004C01092EE0180E004C081E002C080E0E0 -:1044E000ABCFCF910895E1E8F0E0808188608083D0 -:1044F0008081816080838FB7F89493E090938900E6 -:1045000090ED909388008FBF0895EFE6F0E08081F2 -:10451000826080830895EFE6F0E080818D7F808364 -:104520000895EFE6F0E0908182E089278083089586 -:104530001F920F920FB60F9211242F933F934F9318 -:104540005F936F937F938F939F93AF93BF93EF93FB -:10455000FF938091EF019091F00101969093F0010B -:104560008093EF01811103C082E00E943D09E09138 -:10457000F001E695E695F0E0E055FB4FE49180917F -:10458000EF018E1303C080E00E943D09FF91EF917F -:10459000BF91AF919F918F917F916F915F914F915B -:1045A0003F912F910F900FBE0F901F90189504D040 -:1045B0006894B1118DC0089570D088F09F5790F025 -:1045C000B92F9927B751A0F0D1F0660F771F881F38 -:1045D000991F1AF0BA95C9F712C0B13081F077D09F -:1045E000B1E0089574C0672F782F8827B85F39F03D -:1045F000B93FCCF3869577956795B395D9F73EF497 -:1046000090958095709561957F4F8F4F9F4F08953E -:10461000E89409C097FB3EF490958095709561955C -:104620007F4F8F4F9F4F9923A9F0F92F96E9BB2712 -:104630009395F695879577956795B795F111F8CF8E -:10464000FAF4BB0F11F460FF1BC06F5F7F4F8F4FF9 -:104650009F4F16C0882311F096E911C0772321F0EF -:104660009EE8872F762F05C0662371F096E8862F87 -:1046700070E060E02AF09A95660F771F881FDAF7DE -:10468000880F9695879597F9089557FD9058440F90 -:10469000551F59F05F3F71F04795880F97FB991FA1 -:1046A00061F09F3F79F0879508951216130614065E -:1046B000551FF2CF4695F1DF08C0161617061806EB -:1046C000991FF1CF86957105610508940895E894C6 -:1046D000BB2766277727CB0197F908950BD078C0C1 -:1046E00069D028F06ED018F0952309F05AC05FC049 -:1046F0001124EECFCADFA0F3959FD1F3950F50E0C0 -:10470000551F629FF001729FBB27F00DB11D639F83 -:10471000AA27F00DB11DAA1F649F6627B00DA11D29 -:10472000661F829F2227B00DA11D621F739FB00DCF -:10473000A11D621F839FA00D611D221F749F33273F -:10474000A00D611D231F849F600D211D822F762FD8 -:104750006A2F11249F5750408AF0E1F088234AF0D5 -:10476000EE0FFF1FBB1F661F771F881F9150504021 -:10477000A9F79E3F510570F014C0AACF5F3FECF33C -:10478000983EDCF3869577956795B795F795E7950D -:104790009F5FC1F7FE2B880F911D9695879597F91E -:1047A000089597F99F6780E870E060E008959FEFB3 -:1047B00080EC089500240A941616170618060906B8 -:1047C000089500240A941216130614060506089587 -:1047D000092E0394000C11F4882352F0BB0F40F40F -:1047E000BF2B11F460FF04C06F5F7F4F8F4F9F4F4F -:1047F000089597FB072E16F4009407D077FD09D093 -:104800000E94132407FC05D03EF4909581959F4F9C -:104810000895709561957F4F0895EE0FFF1F0590E5 -:10482000F491E02D0994AA1BBB1B51E107C0AA1FFC -:10483000BB1FA617B70710F0A61BB70B881F991F41 -:104840005A95A9F780959095BC01CD010895F999E5 -:10485000FECF92BD81BDF89A992780B50895A8E151 -:10486000B0E042E050E00C944F24262FF999FECF9F -:1048700092BD81BDF89A019700B4021639F01FBAB3 -:1048800020BD0FB6F894FA9AF99A0FBE08950196D2 -:10489000272F0E9436240C943524DC01CB01FC0127 -:1048A000F999FECF06C0F2BDE1BDF89A319600B489 -:0E48B0000D9241505040B8F70895F894FFCF94 -:1048BE0002203F09CD09AA09760942090101CB015F -:1048CE0028080A03140A3F4D363971042404EE03F6 -:1048DE00B503480361037A0393030102030405063B -:0448EE0007080900AE -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/default/compiled.hex b/keyboards/ergodox_ez/keymaps/default/compiled.hex deleted file mode 100644 index 0285acb6b..000000000 --- a/keyboards/ergodox_ez/keymaps/default/compiled.hex +++ /dev/null @@ -1,1153 +0,0 @@ -:100000000C940E030C9452030C9452030C94520360 -:100010000C9452030C9452030C9452030C9452030C -:100020000C9452030C9452030C94740E0C94460FCF -:100030000C9452030C9452030C9452030C945203EC -:100040000C9452030C9416220C9452030C945203F9 -:100050000C9452030C94141D0C9452030C945203F0 -:100060000C9452030C9452030C9452030C945203BC -:100070000C9452030C9452030C9452030C945203AC -:100080000C9452030C9452030C9452030C9452039C -:100090000C9452030C9452030C9452030C9452038C -:1000A0000C9452030C9452030C945203AB0FCD0FDB -:1000B000B810CD0FB8100F103210B81087109A106A -:1000C00074137413A313A313DB13FD132515251544 -:1000D00008142515AF14AF1418152515251520156E -:1000E000BC14BC14BC14BC14BC14BC14BC14BC1490 -:1000F000BC14BC14BC14BC14BC14BC14BC14BC1480 -:10010000CE14DC14E314EA14F4146572676F646FA0 -:10011000785F657A2F64656661756C74204020761F -:10012000342E302D3232322D67623835643266001B -:100130000000F0A12E004C002A00E1003541000033 -:100140001E00140004001D6134004D001F001A0041 -:1001500016001B00E1042A0020000800070006002A -:1001600050002C0021001500090019004F004A0022 -:10017000220017000A0005000000656450000153CA -:100180000000006F0000E3004F0001530000006713 -:100190000000E20023001C000B0011000000296198 -:1001A000240018000D00100052004B0025000C0028 -:1001B0000E00360051002800260012000F00370004 -:1001C0002F002B00270013003342386130004E000F -:1001D0002D0031003468E500C1000000003001004E -:1001E00001000100010000003A001E02200222026C -:1001F000010001003B001F02210223020100010057 -:100200003C002F0226022F00010001003D003002B9 -:1002100027023000010001003E00310235003502A6 -:1002200000000100010001000000010000000100C9 -:100230000100010000000100000001003F00520029 -:1002400051002402000001004000240021001E0093 -:10025000010001004100250022001F0037000100BD -:100260004200260023002000270001004300250251 -:100270002E0231002E000100440045000100010063 -:100280000100000001000100010001000100000068 -:100290000100010001000100010001000100010056 -:1002A000F2000100010001000100F000F100010076 -:1002B000F400010001000100F3000100F50001005D -:1002C0000100010001000100000001000100010027 -:1002D0000000010000000100010001000000010019 -:1002E0000000010001000100010001000000010008 -:1002F0000100010001000100A9000100010001004E -:100300000100AC00AA00B600010001000100AB0032 -:10031000A80001000100010001000100010001002E -:1003200001000100AE00010001000000000000001B -:10033000000000002A2B2800000000000000000040 -:100340000000000000000029000000002C1E3420E6 -:10035000212224342627252E362D3738271E1F200C -:100360002122232425263333362E37381F04050651 -:100370000708090A0B0C0D0E0F1011121314151695 -:100380001718191A1B1C1D2F3130232D3504050693 -:100390000708090A0B0C0D0E0F1011121314151675 -:1003A0001718191A1B1C1D2F3130354C0000000086 -:1003B000000000000000000000000000000000003D -:1003C000000000000000000000000000000101012A -:1003D0000101010001010101000000000000000016 -:1003E0000000000000000100010001010101010105 -:1003F00001010101010101010101010101010101ED -:1004000001010101010101000000010100000000E3 -:1004100000000000000000000000000000000000DC -:10042000000000000000000101010100160345006A -:10043000720067006F0044006F00780020004500E4 -:100440005A00000016034500720067006F00440068 -:100450006F007800200045005A00000004030904E2 -:1004600009026D00040100A0FA0904000001030163 -:100470000100092111010001224000070581030844 -:10048000000A090401000103010200092111010011 -:1004900001224D000705820308000A090402000139 -:1004A0000300000009211101000122360007058325 -:1004B0000308000A090403000103000000092111D8 -:1004C0000100012239000705840310000112011008 -:1004D0000100000008EDFE07130100010200010504 -:1004E000010906A101050719E029E7150025019575 -:1004F0000875018102050819012905950575019105 -:10050000029501750391010507190029771500254A -:1005100001957875018102C005010980A10185025C -:1005200016010026B7001A01002AB70075109501C0 -:100530008100C0050C0901A1018503160100269C5C -:10054000021A01002A9C02751095018100C0050164 -:100550000902A1010901A1000509190129051500D8 -:10056000250195057501810295017503810105013C -:10057000093009311581257F9502750881060938F2 -:100580001581257F950175088106050C0A3802152D -:1005900081257F950175088106C0C005010906A166 -:1005A00001050719E029E715002501950875018166 -:1005B0000295017508810105081901290595057540 -:1005C0000191029501750391010507190029FF1595 -:1005D0000026FF00950675088100C000000000009D -:1005E000000000000000010204060A0F17202C3A48 -:1005F0004A5D71879DB3C7DAE9F5FCFFFCF5E9DADE -:10060000C7B39D87715D4A3A2C20170F0A06040272 -:1006100001000000000000000000000011241FBEC7 -:10062000CFEFDAE0DEBFCDBF04B603FE24C0809179 -:10063000FD019091FE01A091FF01B0910002873071 -:10064000904BA740B04BB9F41092FD011092FE01FF -:100650001092FF011092000214BE84B7877F84BFFE -:1006600088E10FB6F89480936000109260000FBE8E -:10067000E0E0FFE3099511E0A0E0B1E0EAEBF7E488 -:1006800002C005900D92A433B107D9F711E0A4E39D -:10069000B1E001C01D92AD3FB107E1F70E94BE0B72 -:1006A0000C94DB230C9400001092B9008AE0809334 -:1006B000B800089594EA9093BC009091BC0097FF15 -:1006C000FCCF9091B900987F983021F0903111F0D3 -:1006D00081E008958093BB0084E88093BC00809102 -:1006E000BC0087FFFCCF8091B900887F883111F072 -:1006F000803471F780E0089584E98093BC00809194 -:10070000BC0084FDFCCF08958093BB0084E88093F7 -:10071000BC008091BC0087FFFCCF9091B900987F0E -:1007200081E0983209F480E0089584E88093BC0069 -:100730008091BC0087FFFCCF8091BB00089580B3FF -:100740008C7080BB81B3836F81BB08958091010160 -:10075000811115C080E40E945A0380930101811128 -:100760000CC082E10E94840380930101811105C0C5 -:100770008FEF0E948403809301010E947C0384B167 -:10078000807F84B985B1807F85B98AB1837F8AB93A -:100790008BB1837F8BB93E98469808950E946D0572 -:1007A000809301010E94A6030E949F03E3E4F1E00D -:1007B000A5E3B1E011921D9281E0E135F807D1F790 -:1007C0000C9457050E946D05809301010E94A603B9 -:1007D0000E949F03E3E4F1E0A5E3B1E011921D92D2 -:1007E00081E0E135F807D1F70895BF92CF92DF920B -:1007F000EF92FF920F931F93CF93DF9380910101AC -:10080000882379F0809134018F5F809334018111C6 -:1008100008C00E946D0580930101811102C00E94F1 -:10082000FF0405E311E0C0E0D0E0DD24D39482E0D2 -:10083000C82EEE24E394F12CC73000F5809101011D -:10084000811162C080E40E945A03809301018111EA -:1008500012C082E10E9484038093010181110BC0C8 -:10086000C7010C2E01C0880F0A94EAF780950E94F8 -:100870008403809301010E947C0346C0CA30A1F02A -:1008800028F4C83059F0C93061F005C0CC3089F087 -:1008900070F0CD3089F0209A289810C0219A2998BC -:1008A0000DC0229A2A980AC0239A2B9807C0529A00 -:1008B00001C0539A5B9802C03E9A4698E0EAEA95D6 -:1008C000F1F78FB179995AC092E081708D25892B0B -:1008D0007C9B02C090E001C094E0892B7D9B02C00C -:1008E00090E001C098E0892B7E9B02C090E001C09F -:1008F00090E1892B9FB19095991F9927991F929507 -:10090000990F907E892B0FC08091010181114BC0FE -:1009100080E40E945A0380930101882389F1B12C5D -:100920000E947C038B2DF8019081981719F0808329 -:10093000C09200010E94A60321960F5F1F4FCE3088 -:10094000D10509F079CF80910001882371F18150A0 -:1009500080930001882339F08FE99FE00197F1F738 -:1009600000C0000022C0A3E4B1E0E5E3F1E0819122 -:100970008D9391E0E334F907D1F717C090E0A5CF4C -:1009800083E10E948403809301018111C8CF81E437 -:100990000E945A03809301018111C1CF0E949503E7 -:1009A000B82EB094BDCF80E0BECF0E94FD0481E0A0 -:1009B000DF91CF911F910F91FF90EF90DF90CF903B -:1009C000BF900895E82FF0E0ED5BFE4F8081089521 -:1009D00008951F93CF93DF93C3E4D1E010E0899192 -:1009E00090E00E94391C180F81E0C135D807B9F793 -:1009F000812FDF91CF911F9108950C94CA055698CD -:100A00005E9825982D9826982E9827982F988FEFE6 -:100A100090E0909389008093880090938B0080935E -:100A20008A0090938D0080938C00259A2D9A2FEF49 -:100A300080E792E0215080409040E1F700C0000044 -:100A4000269A2E9A2FEF80E792E021508040904026 -:100A5000E1F700C00000279A2F9A2FEF80E792E07D -:100A6000215080409040E1F700C0000025982D986B -:100A70002FEF80E792E0215080409040E1F700C0E6 -:100A8000000026982E982FEF80E792E021508040BA -:100A90009040E1F700C0000027982F9856985E9884 -:100AA00025982D9826982E9827982F98089589EAAA -:100AB0008093800089E08093810024982C983F984F -:100AC0008AB18F748AB96E98479A8BB1806B8BB953 -:100AD000769A0E94FF040C94C90580E2809301017C -:100AE0008091510181110EC00E94540381E08093D6 -:100AF00051012FEF83ED90E3215080409040E1F7CA -:100B000000C0000080E40E945A038093010181111B -:100B10002EC00E94840380930101811128C00E948D -:100B2000840380930101811122C08FE30E9484031A -:100B30008093010181111BC00E947C0380E40E940C -:100B40005A0380930101811112C08CE00E9484033A -:100B50008093010181110BC00E94840380930101E5 -:100B6000811105C08FE30E948403809301010E94DC -:100B70007C03809101010895611108C0FC0182810C -:100B8000882321F08AE091E00E94C30780E090E092 -:100B9000089508956091BE017091BF018091C001D8 -:100BA0009091C1010E94451C56985E9825982D98F9 -:100BB00026982E9827982F98813019F0823021F0AE -:100BC0000895259A2D9A0895269A2E9A089581E0DF -:100BD000089581E008950C94E9050895282F88234D -:100BE00039F090E02A3010F44D9608950697089554 -:100BF00087E290E00895BF92CF92DF92EF92FF924A -:100C00000F931F93CF93DF938C01FC01C081D1819F -:100C1000CE010E94C01ABE010E946D09EC01B8010C -:100C20000E94EB05882309F4A3C1F801828188237F -:100C3000C9F180915E0181111EC0C431F0E7DF0768 -:100C400089F50E94ED0581E080935E010E94DF1C22 -:100C500090935D0180935C011092550110925701B1 -:100C600010925601109259011092580110925B0196 -:100C700010925A017DC180915C0190915D010E94AA -:100C8000EB1C883C910570F480915501E82FF0E051 -:100C9000EE0FFF1FEA5AFE4FD183C0838F5F809310 -:100CA000550166C1C13020E8D20708F451C0F801EF -:100CB0008281882309F44CC06E01E894D7F88091B2 -:100CC0005401813079F050F08230C1F482EE0E94FC -:100CD000121287E50E94121287E50EC082EE0E9472 -:100CE00012120CC080EE0E94121281EE0E941212AB -:100CF00088E10E94121288E10E94DA128CE0E82E4C -:100D0000F12CC6010E2C02C0969587950A94E2F745 -:100D10008F700E94EE05B82E0E9412128B2D0E9439 -:100D2000DA12F4E0EF1AF1082CEFE2162FEFF206D8 -:100D300041F780915401813029F010F0823041F464 -:100D400082EE04C080EE0E94DA1281EE0E94DA1276 -:100D5000C43180E7D80760F4C23090E7D90780F546 -:100D6000C115E0E7DE0771F0C130D047F1F0EFC008 -:100D7000C33320E7D20709F4BEC0C433D04709F417 -:100D8000CEC0E5C0F8018281882309F4E5C00E9445 -:100D90009315FFEF24E38CE0F15020408040E1F711 -:100DA00000C000000E94391DE3C0F8018281882341 -:100DB00009F4D2C08091DB0181608093DB01D8C04F -:100DC000F8018281882309F4C7C00E94941D811113 -:100DD00002C00E947A1D0E94A71D90E09093EF012F -:100DE0008093EE01C230F0E7DF0721F48091EE013D -:100DF00081607AC0C33020E7D20721F48091EE01F0 -:100E0000826072C0C43080E7D80721F48091EE017F -:100E100084606AC0C53090E7D90719F48091EE016B -:100E200027C0C630E0E7DE0721F48091EE01806143 -:100E30005BC0C730F0E7DF0721F48091EE018062EC -:100E400053C0C83020E7D20721F48091EE018064BE -:100E50004BC0C93080E7D80721F48091EE0180684B -:100E600043C0CA3090E7D90729F48091EE0184602D -:100E700088603AC0CB30E0E7DE0721F48091EE01D4 -:100E80008E7F32C0CC30F0E7DF0721F48091EE0195 -:100E90008D7F2AC0CD3020E7D20721F48091EE016A -:100EA0008B7F22C0CE3080E7D80719F48091EE0105 -:100EB0001AC08091EE01CF3090E7D90711F48F7EF0 -:100EC00013C0C031E0E7DE0711F48F7D0DC0C131E2 -:100ED000F0E7DF0711F48F7B07C0C231D04711F470 -:100EE0008F7702C08B7F877F8093EE018091EE0128 -:100EF0000E94AB1D3DC0F8018281882321F0109231 -:100F0000520182E013C080915201811106C086E235 -:100F10000E94121286E20E94DA1282E015C0F801E5 -:100F20008281882331F01092530182E10E942913BB -:100F30001FC080915301811106C087E20E941212E6 -:100F400087E20E94DA1282E10E94301311C081E030 -:100F50008093520180935301C801DF91CF911F917B -:100F60000F91FF90EF90DF90CF90BF900C94E7052A -:100F700080E0DF91CF911F910F91FF90EF90DF9074 -:100F8000CF90BF9008951F93CF93DF93EC01FE01A4 -:100F900024912223F1F030E0F901E45DFC4F14913B -:100FA000F901E455FC4F2491222359F081EE0E946F -:100FB0001212812F0E941212812F0E94DA1281EEEA -:100FC00004C0812F0E941212812F0E94DA122196F2 -:100FD000DECFDF91CF911F91089526E0729FF0013F -:100FE000112444E5849FE00DF11D1124E60FF11D4D -:100FF000EE0FFF1FEC5CFE4F859194910E947F09DC -:10100000811520E49207B0F5811540E3940708F0BC -:10101000DDC0803E9105D8F4803C910508F06BC09E -:10102000883A910578F4853A910508F06AC08130D4 -:10103000910509F450C108F40DC18430910508F000 -:101040004AC108C18B3B910508F466C003C18F3FBC -:10105000910509F048F4803F910508F0ACC0883E46 -:10106000910508F438C1F6C0811520E2920708F016 -:10107000A4C00895811543E5940790F4811522E5F5 -:10108000920708F0C7C0811541E5940708F0BDC07C -:10109000811520E5920708F09CC09F70906A089522 -:1010A000811545E59407D0F4811524E5920708F0F1 -:1010B000C6C0282F2695269540E2249F9001112432 -:1010C000AC014370552781E090E002C0880F991F62 -:1010D0004A95E2F7822B932B9A680895811546E58D -:1010E000940708F4B1C09C0130562115304108F036 -:1010F000B1C09F70ADC0FC01EE0FFF1FE055F04086 -:1011000062C0853A910509F4A8C0863A910509F4B0 -:10111000A7C083E890E40895883A910509F4A3C034 -:10112000893A910509F4A2C08A3A910509F4A1C04F -:101130008B3A910509F4A0C08C3A910509F49FC03F -:101140008D3A910509F49EC0803B910509F49DC03C -:101150008E3A910509F49CC08F3A910509F49BC021 -:10116000813B910509F49AC0823B910509F499C02D -:10117000833B910509F498C0843B910509F497C01D -:10118000853B910509F496C0863B910509F495C00D -:10119000873B910509F494C0883B910509F493C0FD -:1011A000893B910509F492C08A3B910509F091C0F1 -:1011B0008AE296E40895906508959F70880F991FBC -:1011C000805D9E4FFC018591949108959927906CC4 -:1011D0000895482F437021E030E002C0220F331FF2 -:1011E0004A95E2F73C68AC0164E0569547956A95EC -:1011F000E1F74370342B8F708695869540E2849F8B -:10120000C0011124822B932B0895982F8827816F7A -:10121000906A0895282F2695269540E2249F9001F4 -:101220001124AC014370552781E090E002C0880F83 -:10123000991F4A95E2F7822B932B9C680895982F6B -:101240008827846F906A08958F719927982F88272F -:101250009062089580E090E0089581E890E4089518 -:1012600082E890E4089582EE94E4089589EE94E48F -:1012700008958AEE94E4089585EB94E4089586EB4E -:1012800094E4089587EB94E408958CEC94E4089535 -:101290008DEC94E4089583E895E408958AE895E454 -:1012A000089582E995E4089584E995E4089581E23A -:1012B00096E4089583E296E4089584E296E408951E -:1012C00085E296E4089586E296E4089587E296E43E -:1012D000089580E094E40895089596E0799FF001E0 -:1012E000112494E5899FE00DF11D1124E60FF11DF5 -:1012F000EE0FFF1FEC5CFE4F8591949108958238AC -:10130000910549F1B0F48133910509F459C048F4CD -:101310008932910509F44FC08A32910509F455C00C -:1013200008958533910509F441C08933910599F0F9 -:101330000895833E910531F138F4803E910591F096 -:10134000823E9105A9F00895863E910501F1873E00 -:10135000910539F108952091EE0120FD3BC021FD5A -:1013600039C008958091EE0180FF34C089E341C007 -:101370008091EE0182FF32C08091EE0184FF2CC08B -:1013800080E037C08091EE0182FD28C0F5CF8091CA -:10139000EE0183FF25C08091EE0184FDF1CF87EE41 -:1013A00028C08091EE0183FD1BC0F5CF8091EE0136 -:1013B00085FF18C019C08091EE0185FF15C012C0CD -:1013C0008091EE0186FF12C013C08091EE0186FF6E -:1013D0000FC00CC080EE0DC083EE0BC082EE09C0C2 -:1013E00086EE07C085E305C089E203C081E301C042 -:1013F0008AE290E0089508950C94FB0980916F01B2 -:101400000895CF93DF9300D01F92CDB7DEB7209120 -:10141000F401243019F523E029839B838A832093E8 -:10142000E9008FEF9091E800815095FD06C095EDA1 -:101430009A95F1F700008111F5CF8091E80085FFC2 -:101440000DC040E050E063E070E0CE0101960E94E4 -:10145000670C8091E8008E778093E8000F900F90E2 -:101460000F90DF91CF910895CF93DF9300D01F921B -:10147000CDB7DEB72091F401243021F522E0298395 -:101480009B838A8383E08093E9008FEF9091E8004B -:10149000815095FD06C095ED9A95F1F700008111F8 -:1014A000F5CF8091E80085FF0DC040E050E063E09B -:1014B00070E0CE0101960E94670C8091E8008E7763 -:1014C0008093E8000F900F900F90DF91CF910895D7 -:1014D0002091F4012430F1F422E02093E9002FEF71 -:1014E0003091E800215035FD06C035ED3A95F1F711 -:1014F00000002111F5CF2091E80025FF0BC040E04E -:1015000050E065E070E00E94670C8091E8008E7703 -:101510008093E8000895CF93DF93EC018091F4016C -:10152000843009F046C090910C019923D9F0909134 -:101530000D019923B9F08093E9008FEF9091E800B5 -:10154000815095FD06C095E19A95F1F70000811153 -:10155000F5CF8091E80085FF2CC040E050E060E1CD -:1015600070E017C081E08093E9008FEF9091E80070 -:10157000815095FD06C095ED9A95F1F70000811117 -:10158000F5CF8091E80085FF14C040E050E068E0AE -:1015900070E0CE010E94670C8091E8008E77809306 -:1015A000E80080E1FE01AFE5B1E001900D928A957F -:1015B000E1F7DF91CF9108958091F301811109C086 -:1015C0000E94F90D0E94560E8091E2008460809383 -:1015D000E20008951092F301089508950C940322F7 -:1015E0000E94D01C0E9409220E94F3100C94FC0956 -:1015F00042E061EC81E00E94730D42E061EC82E028 -:101600000E94730D42E061EC83E00E94730D42E1A1 -:1016100061EC84E00C94730D8091F601833009F441 -:1016200055C030F4813071F0823009F48EC00895D5 -:101630008A3009F47AC08B3009F460C0893009F02F -:101640009CC020C08091F501813A09F096C080913C -:10165000E800877F8093E8008091F9019091FA017A -:10166000892B21F060E080E090E003C060E18FE52D -:1016700091E070E00E94B00C8091E8008B7780933D -:10168000E80008958091F501813209F076C08091DB -:10169000F9019091FA01009719F0039709F06DC0D4 -:1016A0008091E800877F8093E8008091E80082FDC8 -:1016B00005C08091F4018111F8CF5FC08091F100E5 -:1016C00080936F018091E8008B7753C08091F50182 -:1016D000813A09F052C08091F9019091FA01892B69 -:1016E00009F04BC08091E800877F8093E8008091EB -:1016F000E80080FFFCCF80910C0136C08091F5019D -:101700008132D9F58091F9019091FA01892BA9F5DF -:101710008091E800877F8093E8000E94A80D809167 -:10172000F70180930C010C9493158091F50181329F -:1017300021F58091E800877F8093E8000E94A80D42 -:101740008091F8018093700108958091F501813AAC -:10175000A1F48091E800877F8093E8008091E80001 -:1017600080FFFCCF809170018093F1008091E800B0 -:101770008E778093E8000C94A80D089584B7877F36 -:1017800084BF88E10FB6F8948093600010926000E7 -:101790000FBE80E880936100109261000E944211A8 -:1017A0000E94F90D0E94560E8091E20084608093A1 -:1017B000E20078940E94D1100E94441182E091E0EE -:1017C0000E94EE100E94F1218091F401853069F4AD -:1017D0000E94981C8091F2018823B1F30E94C21CE0 -:1017E000882391F30E94510CEFCF0E944A11ECCF55 -:1017F000292F332723303105A9F06CF4213031052E -:1018000009F442C02230310509F043C08DE690E072 -:1018100020E634E042C021323105C9F022323105E0 -:1018200019F137C099278130910541F08230910537 -:1018300041F0892B71F5ECE5F4E005C0E4E4F4E057 -:1018400002C0ECE2F4E0849190E09F0126C0643095 -:1018500000F5E62FF0E0EE0FFF1FEE5DFE4F20815A -:10186000318189E090E019C0643098F4E62FF0E00F -:10187000DF01AA0FBB1FA65EBE4F2D913C91EA5E11 -:10188000FE4F808190E009C082E190E02DEC34E0D1 -:1018900004C080E090E020E030E0FA013183208352 -:1018A000089580E189BD82E189BD09B400FEFDCFC4 -:1018B0008091D8008F7D8093D8008091E000826075 -:1018C0008093E0008091E00081FDFCCF0895CF92ED -:1018D000DF92EF92FF920F931F93CF93DF937C01E0 -:1018E0008B01EA010E94C90D811131C0209731F0AE -:1018F00088819981081B190BE80EF91EC12CD12C87 -:101900000115110519F18091E80085FD14C0809141 -:10191000E8008E778093E800209741F088819981D4 -:101920008C0D9D1D9983888385E011C00E94C90D8F -:10193000882331F30CC0F70181917F018093F1007E -:1019400001501109FFEFCF1ADF0ADACF80E0DF91F3 -:10195000CF911F910F91FF90EF90DF90CF9008955E -:101960002091FB013091FC012617370748F06115E3 -:10197000710539F42091E8002E772093E80001C02A -:10198000B901FC0120E061157105B9F18091F40104 -:10199000882309F440C0853009F43FC08091E800F5 -:1019A00083FD3DC08091E80082FF06C08091E80081 -:1019B00082FF26C080E008958091E80080FFE3CF99 -:1019C0002091F3008091F20090E0922B6115710557 -:1019D00051F08830910538F421912093F100615045 -:1019E00071090196F3CF21E0089709F020E080917A -:1019F000E8008E778093E800C6CF2111C7CFD6CFFD -:101A00008091F401882339F0853039F08091E80025 -:101A100083FFCCCF04C082E0089583E0089581E085 -:101A200008952091FB013091FC012617370748F0FB -:101A30006115710539F42091E8002E772093E800B4 -:101A400001C0B901FC0120E061157105C1F180916F -:101A5000F401882309F441C0853009F440C0809125 -:101A6000E80083FD3EC08091E80082FF06C08091BF -:101A7000E80082FF27C080E008958091E80080FFA1 -:101A8000E3CF2091F3008091F20090E0922B61155A -:101A9000710559F08830910540F424912093F100AC -:101AA0003196615071090196F2CF21E0089709F053 -:101AB00020E08091E8008E778093E800C5CF211167 -:101AC000C6CFD5CF8091F401882339F0853039F025 -:101AD0008091E80083FFCBCF04C082E0089583E0CB -:101AE000089581E00895982F973058F59093E90074 -:101AF000981739F07091EC002091ED005091F000B2 -:101B000003C0242F762F50E021FF19C03091EB0045 -:101B10003E7F3093EB003091ED003D7F3093ED0040 -:101B20003091EB0031603093EB007093EC00209328 -:101B3000ED005093F0002091EE0027FF07C09F5F5B -:101B4000D3CF8F708093E90081E0089580E00895FD -:101B50008091F50187FD05C08091E80080FF0EC0EF -:101B600012C08091E80082FD05C08091F4018111CE -:101B7000F8CF08958091E8008B7708C08091F40138 -:101B80008111EACF08958091E8008E778093E80074 -:101B900008958091E4009091E50045E62091EC00E5 -:101BA00020FF21C02091E80020FD21C02091F401F8 -:101BB000222389F0253089F02091EB0025FD0FC00C -:101BC0002091E4003091E5002817390739F341509E -:101BD00041F0C901E3CF82E0089583E0089581E0F8 -:101BE000089584E008952091E80022FFDFCF80E08F -:101BF00008950E94670E0E946F0EE0EEF0E0808173 -:101C000081608083E8EDF0E080818F77808319BC6C -:101C1000A7EDB0E08C918E7F8C9380818F7E808346 -:101C20001092F30108950F931F93CF93DF930E94B7 -:101C3000670E0E946F0EC8EDD0E088818F77888391 -:101C400088818068888388818F7D888319BC109201 -:101C5000F4011092F0011092F2011092F10100EEE5 -:101C600010E0F80180818B7F808388818160888388 -:101C700042E060E080E00E94730DE1EEF0E08081E0 -:101C80008E7F8083E2EEF0E08081816080838081BE -:101C900088608083F80180818E7F80838881806165 -:101CA0008883DF91CF911F910F910895E8EDF0E0C7 -:101CB00080818F7E8083E7EDF0E08081816080838A -:101CC00084E082BF81E08093F3010C94130EE8ED71 -:101CD000F0E080818E7F80831092E2000895109260 -:101CE000DA001092E10008951F920F920FB60F9242 -:101CF00011242F933F934F935F936F937F938F9311 -:101D00009F93AF93BF93EF93FF938091E10082FF86 -:101D10000BC08091E20082FF07C08091E1008B7FC1 -:101D20008093E1000E94D0108091DA0080FF1FC0F4 -:101D30008091D80080FF1BC08091DA008E7F809355 -:101D4000DA008091D90080FF0DC080E189BD82E179 -:101D500089BD09B400FEFDCF81E08093F4010E94AB -:101D6000DC0A05C019BC1092F4010E94EA0A8091B5 -:101D7000E10080FF19C08091E20080FF15C08091D2 -:101D8000E2008E7F8093E2008091E2008061809388 -:101D9000E2008091D80080628093D80019BC85E071 -:101DA0008093F4010E94EE0A8091E10084FF30C02C -:101DB0008091E20084FF2CC080E189BD82E189BD71 -:101DC00009B400FEFDCF8091D8008F7D8093D800AC -:101DD0008091E1008F7E8093E1008091E2008F7E10 -:101DE0008093E2008091E20081608093E200809124 -:101DF000F001882311F084E007C08091E30087FFA1 -:101E000002C083E001C081E08093F4010E94F00AE7 -:101E10008091E10083FF29C08091E20083FF25C00B -:101E20008091E100877F8093E10082E08093F4015C -:101E30001092F0018091E1008E7F8093E10080910B -:101E4000E2008E7F8093E2008091E20080618093C7 -:101E5000E20042E060E080E00E94730D8091F000BB -:101E600088608093F0000E94ED0AFF91EF91BF918E -:101E7000AF919F918F917F916F915F914F913F9122 -:101E80002F910F900FBE0F901F9018951F920F92D9 -:101E90000FB60F9211242F933F934F935F936F933D -:101EA0007F938F939F93AF93BF93CF93EF93FF93C2 -:101EB000C091E900CF708091EC001092E900809110 -:101EC000F000877F8093F00078940E94820F109238 -:101ED000E9008091F00088608093F000C093E900F1 -:101EE000FF91EF91CF91BF91AF919F918F917F9192 -:101EF0006F915F914F913F912F910F900FBE0F9077 -:101F00001F9018951F93CF93DF93CDB7DEB7AA9795 -:101F10000FB6F894DEBF0FBECDBFE5EFF1E08091C4 -:101F2000F100819321E0ED3FF207C9F70E940C0B0D -:101F30008091E80083FF1CC12091F5013091F601EA -:101F4000832F90E08A30910508F012C1FC01EA5A13 -:101F5000FF4F0C948B23203881F0223809F008C100 -:101F60008091F9018F708093E9008091EB0085FBEF -:101F7000882780F91092E90006C08091F1019091C4 -:101F8000F201911182609091E800977F9093E800B0 -:101F90008093F1001092F100C5C0822F8D7F09F06F -:101FA000E7C0222319F0223061F0E2C08091F701EE -:101FB000813009F0DDC0333009F080E08093F20118 -:101FC00028C08091F701811124C02091F9012F7060 -:101FD00009F4CEC02093E9008091EB0080FF19C086 -:101FE0008091EB00333011F4806211C080618093E6 -:101FF000EB0081E090E0022E01C0880F0A94EAF71E -:102000008093EA001092EA008091EB008860809350 -:10201000EB001092E9008091E800877F86C02111D3 -:10202000A7C01091F7011F778091E3008078812B82 -:102030008093E3008091E800877F8093E8000E940E -:10204000A80D8091E80080FFFCCF8091E3008068BC -:102050008093E300112311F083E001C082E08093BC -:10206000F40186C02058223008F082C08091F70128 -:102070009091F8018C3D23E0920779F583E08A8303 -:102080008AE289834FB7F894DE01139620E03EE0A0 -:1020900051E2E32FF0E050935700E49120FF03C09A -:1020A000E295EF703F5FEF708E2F90E0EA3010F016 -:1020B000C79601C0C0968D939D932F5F243149F739 -:1020C0004FBF8091E800877F8093E8006AE270E06C -:1020D000CE0101960E94B00C14C0AE014F5F5F4F5D -:1020E0006091F9010E94F80B009709F441C020911A -:1020F000E800277F2093E800BC0189819A810E9433 -:10210000110D8091E8008B778093E80031C0203872 -:1021100079F58091E800877F8093E8008091F00155 -:102120008093F1008091E8008E778093E8000E9410 -:10213000A80D1EC021111CC09091F7019230C0F46F -:102140008091E800877F8093E8009093F0010E94DF -:10215000A80D8091F001811104C08091E30087FFF8 -:1021600002C084E001C081E08093F4010E94F80A7B -:102170008091E80083FF0AC08091E800877F809308 -:10218000E8008091EB0080628093EB00AA960FB686 -:10219000F894DEBF0FBECDBFDF91CF911F910895A0 -:1021A0000895CF938091F4018823B1F08091E900E4 -:1021B0008F709091EC0090FF02C090E801C090E019 -:1021C000C92FC82B1092E9008091E80083FD0E947E -:1021D000820FCF70C093E900CF910895909376015C -:1021E000809375010895E0917501F0917601309723 -:1021F00021F00190F081E02D099480E00895E091B4 -:102200007501F0917601309721F00280F381E02D85 -:1022100009940895E0917501F0917601309721F0CD -:102220000480F581E02D0994089520917301309187 -:1022300074018217930771F0909374018093730176 -:10224000E0917501F0917601309721F00680F781D9 -:10225000E02D099408952091710130917201821747 -:10226000930771F09093720180937101E091750171 -:10227000F0917601309721F00084F185E02D0994EA -:10228000089508950C9441110E94D61C0E94CE031B -:102290000C945C1D9F92AF92BF92CF92DF92EF920F -:1022A000FF920F931F93CF93DF9300D000D000D005 -:1022B000CDB7DEB70E94F50386E8E82E81E0F82E60 -:1022C0000DE010E0CC24C394D12C902E802F0E94DE -:1022D000E204F701B2907F01B826A1F40150110980 -:1022E000A0F78FEF89838A831B820E94DF1C8160A5 -:1022F000782F9D838C8349815A816B818D810E94C7 -:10230000E41131C09091DB0191FF04C08E830E94E3 -:10231000E8048E8125E030E0A601022E01C0440FC2 -:102320000A94EAF7A42E4B21D1F029839A828A21BC -:1023300091E009F490E09B830E94DF1C8160782F7C -:102340009D838C8349815A816B818D810E94E41128 -:10235000F801E858FE4F80818A25808304C021500F -:102360003109D0F6BBCF0E94291F109177010E943E -:10237000F3101817B9F00E94F31080937701269696 -:102380000FB6F894DEBF0FBECDBFDF91CF911F9186 -:102390000F91FF90EF90DF90CF90BF90AF909F9004 -:1023A0000C94FC0926960FB6F894DEBF0FBECDBF85 -:1023B000DF91CF911F910F91FF90EF90DF90CF9021 -:1023C000BF90AF909F900895CF93DF93CDB7DEB7C6 -:1023D0002B970FB6F894DEBF0FBECDBF4F83588743 -:1023E00069877A878B87DE01119686E0FD0111925D -:1023F0008A95E9F785E0FE01379601900D928A955E -:10240000E1F749815A816B817C818D819E810E9497 -:1024100063182B960FB6F894DEBF0FBECDBFDF91C9 -:10242000CF910895CF93C82F882309F4C1C0823873 -:1024300059F40E94F31081FDBBC089E30E94401B48 -:102440000E940A1C89E30CC0833879F40E94F310BF -:1024500080FDAEC083E50E94401B0E940A1C83E5FC -:102460000E94801BCF910C940A1C843859F40E945E -:10247000F31082FD9DC087E40E94401B0E940A1C4D -:1024800087E4EECF8CEF8C0F813A48F48C2F0E94BA -:10249000592181118DC08C2F0E94401BE3CF80E217 -:1024A0008C0F883048F4C77081E001C0880FCA954E -:1024B000EAF70E94C11BD6CF8BE58C0F833078F4EE -:1024C000C53A29F0C63A31F482E890E005C081E8C7 -:1024D00090E002C083E890E0CF910C94151188E55C -:1024E0008C0F833108F064C0C83A39F1C93A41F120 -:1024F000CA3A49F1CB3A51F1CC3A59F1CD3A61F1AE -:10250000C03B69F1CE3A71F1CF3A79F1C13B81F12B -:10251000C23B89F1C33B91F1C43B99F1C53BA1F1A9 -:10252000C63BA9F1C73BB1F1C83BB9F1C93BC1F109 -:10253000CA3BC9F58AE292E038C082EE90E035C02D -:1025400089EE90E032C08AEE90E02FC085EB90E0FB -:102550002CC086EB90E029C087EB90E026C08CEC85 -:1025600090E023C08DEC90E020C083E891E01DC096 -:102570008AE891E01AC082E991E017C084E991E00D -:1025800014C081E292E011C083E292E00EC084E2C6 -:1025900092E00BC085E292E008C086E292E005C0BE -:1025A00087E292E002C080E090E0CF910C942B1182 -:1025B000CF910895882309F44BC0823859F40E94C2 -:1025C000F31081FF45C089E30E94401B0E940A1C52 -:1025D00089E30CC0833871F40E94F31080FF38C087 -:1025E00083E50E94401B0E940A1C83E50E94801B19 -:1025F0000C940A1C843859F40E94F31082FF28C0FE -:1026000087E40E94401B0E940A1C87E4EFCF9CEFE6 -:10261000980F913A58F390E2980F983050F48770E1 -:1026200091E001C0990F8A95EAF7892F0E94C71B94 -:10263000DFCF9BE5980F933020F480E090E00C947E -:102640001511885A833120F480E090E00C942B110E -:102650000895882321F00E94C11B0C940A1C089540 -:10266000882321F00E94C71B0C940A1C08958F92A6 -:102670009F92AF92BF92CF92DF92EF92FF920F9311 -:102680001F93CF93DF931F92CDB7DEB74C01A62ED9 -:10269000472FFC01E580E2948FE0E822F280FF20E2 -:1026A00021F079830E94DE1B498149830E94391BF6 -:1026B0004981882381F0FF2071F080E28A0D883003 -:1026C00050F082E00E94221B0E94391BBB24B3946D -:1026D000B826498101C0B12CE42FE295EF70F0E0FB -:1026E000E05AFF4F0C948B23842F807F142F1F7090 -:1026F000882311F01295107FFF2089F0112309F42F -:102700008DC180E28A0D883020F4812F0E94C11B88 -:1027100003C0812F0E94D11B0E940A1C7FC18A2DF9 -:102720000E94DA12112309F490C180E28A0D8830E8 -:1027300020F4812F0E94C71B03C0812F0E94D71B4A -:102740000E940A1C82C1242F207F842F8F70203288 -:1027500011F08295807FAA2021F0F1E0AF16B9F048 -:1027600020C0FF2049F0EE2009F40FC191E0E912EA -:102770000CC10E94F11B69C1EE2021F0E1E0EE16D0 -:1027800009F463C189830E94F41B898104C1FF207D -:1027900029F0F1E0FE1508F458C1F7C0E11055C169 -:1027A000FAC0FF2021F0EE2009F4EFC037C1EE207F -:1027B00009F4F1C039C1242F26952695237030E005 -:1027C0002115310521F02130310561F03EC1FF2096 -:1027D00021F08A2D942F937002C080E090E00E9437 -:1027E000151133C1FF2021F08A2D942F937002C060 -:1027F00080E090E00E942B1128C18A2DFF2019F063 -:102800000E94311E02C00E94991E0E941E1F1DC1FF -:10281000842F837009F04EC0F11017C12A2D229524 -:1028200026952770220F220F8A2D8F70C82ED12C4B -:10283000E12CF12C022E04C0CC0CDD1CEE1CFF1C84 -:102840000A94D2F7A4FE10C06FE070E080E090E040 -:1028500004C0660F771F881F991F2A95D2F76095CD -:1028600070958095909503C060E070E0CB01242FB7 -:1028700026952695237030E02230310569F023300B -:10288000310589F06C297D298E299F292130310558 -:1028900071F00E94B719D9C06C297D298E299F2912 -:1028A0000E94D119D2C00E94B719C701B6010E9477 -:1028B0009D19CBC0FF2019F0842F817001C086952F -:1028C000882309F4C2C02A2D229526952770220F4D -:1028D000220F8A2D8F70C82ED12CE12CF12C022EC4 -:1028E00004C0CC0CDD1CEE1CFF1C0A94D2F7A4FE25 -:1028F00010C06FE070E080E090E004C0660F771FCA -:10290000881F991F2A95D2F76095709580959095AC -:1029100003C060E070E0CB01242F2695269523703C -:1029200030E02230310569F02330310589F06C291F -:102930007D298E299F292130310571F00E948B1A43 -:1029400084C06C297D298E299F290E94A51A7DC0EB -:102950000E948B1AC701B6010E94711A76C00A2D17 -:1029600010E0F801E05EF109E531F10508F052C030 -:10297000E059FF4F0C948B231A2D1F70842F8F71F9 -:10298000FF2031F00E940A1A812F0E9429135DC096 -:102990000E942B1A812F0E94301357C0FF2039F05C -:1029A000E11053C0842F8F710E94501A4EC081E0F5 -:1029B0008E1508F44AC0F6CFFF2039F0842F8F71AE -:1029C0000E940A1A42C0FF20C9F3842F8F710E940F -:1029D0002B1A3BC0FF2029F0842F8F710E94F5191C -:1029E00034C00E94EB1931C0FF2051F0142F1F7129 -:1029F000812F0E940A1A63E0812F0E94191B25C0B3 -:102A000081E00E94221B91E09E15F8F482E00E9472 -:102A1000221B1BC0FF2031F0EE2081F28A2D0E9484 -:102A2000121213C0EE2089F28A2D0E94DA120DC014 -:102A30004F706A2DC4010E94BC050E94101905C088 -:102A40004F706A2DC4010E946C09BB20F1F00E94F6 -:102A5000151B80FD1AC0F40112820E940F1B0E94F8 -:102A60000A1AC4010E9453150E940F1B0F90DF9198 -:102A7000CF911F910F91FF90EF90DF90CF90BF907B -:102A8000AF909F908F900C942B1A0F90DF91CF9165 -:102A90001F910F91FF90EF90DF90CF90BF90AF907C -:102AA0009F908F9008950F931F93CF93DF93EC0126 -:102AB000288139818B819C81892B31F03F3F11F036 -:102AC00080E003C02F3FE1F781E0811113C0CE0108 -:102AD0000E94FB05882371F0688179818A810E94B8 -:102AE0000B1B8C010E94BF1A0E949219B801CE01E3 -:102AF0000E943713DF91CF911F910F9108950E948B -:102B0000DE1B0E94EE1B0E94B31B0E940A1C0E9447 -:102B1000CA1F0E941E1F80E090E00E94151180E0F5 -:102B200090E00C942B110E94CE1B0C947F150E94F8 -:102B3000001B292F22952F7030E02C3031054CF4EA -:102B40002A3031056CF42250310922303105B0F4BD -:102B500007C02C30310571F02F30310559F00EC00F -:102B6000803F31F018F4803E48F402C0843F31F4D5 -:102B700081E0089593FB882780F9089580E0089507 -:102B8000CF93DF9300D000D01F92CDB7DEB70F9068 -:102B90000F900F900F900F90DF91CF910895CF93EA -:102BA000DF9300D000D000D0CDB7DEB726960FB6A9 -:102BB000F894DEBF0FBECDBFDF91CF9108951F9374 -:102BC000CF93DF93C091860116E080918701C817EB -:102BD00099F0D0E01C9FF0011D9FF00D1124E857E3 -:102BE000FE4F4081518162817381848195810E9471 -:102BF000CF152196C770E9CFDF91CF911F9108952E -:102C00004091B8015091B9016091BA017091BB0136 -:102C10008091BC019091BD010C94CF15CF93809110 -:102C2000BD0182958F7009F05FC08091BA01882341 -:102C300009F45AC020918601A09187016091B801E2 -:102C40007091B9018091BB019091BC0131E06F3F5F -:102C500009F030E0B32FC6E02A1709F445C0009709 -:102C600021F07F3F21F44B2F03C041E001C040E041 -:102C700030E040FD35C0C29FF001C39FF00D11242C -:102C8000E857FE4F418174132BC04081641328C064 -:102C90004281411125C0438154814817590710F4DE -:102CA00041505109481B590B483C5105C8F48091CB -:102CB000BD018F7080618093BD0186E0829FF0012D -:102CC000839FF00D1124E357FE4F80818F70806148 -:102CD000808388EB91E00E945315CF910C94DF150F -:102CE0002F5F3F4F2770B8CFCF910895CF92DF92DB -:102CF000EF92FF920F931F93CF93DF93CDB7DEB781 -:102D000062970FB6F894DEBF0FBECDBF8C0185E091 -:102D1000F801DE011D9601900D928A95E1F7D80128 -:102D20004C9111965C91119712966C911297139693 -:102D3000ED90FC9014977091B801E091B901209149 -:102D4000BB013091BC012115310531F0EF3F31F469 -:102D500081E07F3F19F403C081E001C080E0B82F1B -:102D6000B170CB2E80FD6CC1D090BA01DD2009F48A -:102D7000F5C0F091BD01E216F30638F0C701821BE1 -:102D8000930B883C910548F09BC0209530952E0D03 -:102D90003F1D283C310508F093C08F2F807F09F03C -:102DA00052C0E51314C0741312C0D62E61110FC0A7 -:102DB000FF70F061F093BD010E94001688EB91E076 -:102DC0000E9453158091BD01F80185836CC1EF28E5 -:102DD00031F05F3F31F481E04F3F19F403C081E0EF -:102DE00001C080E080FD03C081E0862701C080E053 -:102DF000F82FF170FF2E80FF1CC08091860120917A -:102E0000870136E0821709F428C190E0389FF0016D -:102E1000399FF00D1124E857FE4F7181571306C0FA -:102E20007081471303C07281671303C001968770D6 -:102E3000E9CFD62E662309F436C18091BD018160A9 -:102E40008093BD0153C0E51308C0741306C061111F -:102E500004C0D8011596FC93AEC04D875E878D8562 -:102E60009E856A8B0E9497156A89882329F1D62E40 -:102E7000662311F12091BD01822F82958F7090E021 -:102E800002970CF460C08091B8019091B9019887C5 -:102E90008F831986FB86EA862C87CE01079651C060 -:102EA000E51731F14D875E878D859E856A8B0E947F -:102EB00097156A8981112EC0C8010E945315A4C0BC -:102EC0008F2F807F69F77E2DF98AE88A89890E9491 -:102ED000C01588EB91E00E945315E8EBF1E086E025 -:102EE000DF011D928A95E9F70E940016D12CDBC004 -:102EF0007413D8CF6111D6CFD8011596FC93C801B1 -:102F00000E945315E8EBF1E086E0DF011D928A95FF -:102F1000E9F7C9C0D62E662379F22091BD01822F30 -:102F200082958F7090E0029774F08091B801909133 -:102F3000B9019A8389831B82FD82EC822E83CE01A4 -:102F400001960E94531586E0F801A8EBB1E00190CC -:102F50000D928A95E1F70E940E166FC0E216F306F5 -:102F600028F0C701821B930B9C0104C0209530956B -:102F70002E0D3F1D283C310508F052C0D62E662389 -:102F800009F49ACFE5132CC074132AC08091BD01B7 -:102F900080FD1DC0982F92959F70C9F0D80115969D -:102FA0008C9315979F3039F09F5F9295907F8F702B -:102FB000892B15968C93C8010E94531586E0F80161 -:102FC000A8EBB1E001900D928A95E1F736C086E05A -:102FD000F801A8EBB1E001900D928A95E1F763C08A -:102FE0004D875E878D859E850E949715882379F091 -:102FF00086E0F801A8EBB1E001900D928A95E1F727 -:103000000E940E160E940016DD24D3944CC08091BD -:10301000BD0181608093BD01C8010E94531543C06A -:103020007E2DF98AE88A89890E94C015E8EBF1E0D3 -:1030300086E0DF011D928A95E9F70E94001633C0F1 -:10304000662309F439CF4D875E878D859E850E9462 -:103050009715882309F430CFCBCF4D875E878D85B8 -:103060009E850E94001B292F22952F7030E0223070 -:1030700031052CF49F7041F0811106C00CC0243042 -:1030800031052CF49F7049F4805E883020F0C8012F -:103090000E945315CF2CDC2C06C0D80115969C91AC -:1030A000907F91F7F8CF8D2D62960FB6F894DEBF22 -:1030B0000FBECDBFDF91CF911F910F91FF90EF9089 -:1030C000DF90CF9008951F93CF93DF93CDB7DEB7F6 -:1030D0002C970FB6F894DEBF0FBECDBF4F83588735 -:1030E00069877A878B879C87CE0107960E94761620 -:1030F0008823C1F02F8138858A859B85892B31F003 -:103100003F3F11F080E003C02F3FE1F781E08111E4 -:1031100047C04F81588569857A858B859C850E943B -:10312000CF153EC086E0FE013796DE011196019074 -:103130000D928A95E1F7FF81E8854A855B85411507 -:10314000510531F0EF3F31F481E0FF3F19F403C046 -:1031500081E001C080E080FD23C02091870130E044 -:10316000C9010196877099276091860170E08617E2 -:103170009707F1F1F983EA835D834C8396E0929F90 -:10318000D001939FB00D1124A857BE4FFE01319678 -:1031900001900D929A95E1F7809387010E94DF15C7 -:1031A00016E08091860190918701891779F1189F27 -:1031B000C001112488579E4F0E947616882331F152 -:1031C000E09186011E9FF0011124E857FE4F4081D7 -:1031D000518162817381848195810E94CF15809194 -:1031E000860190E001968770992780938601D9CF58 -:1031F0000E9493151092870110928601E8EBF1E08E -:1032000086E0DF011D928A95E9F7CACF2C960FB6AA -:10321000F894DEBF0FBECDBFDF91CF911F9108950F -:10322000EF92FF920F931F93CF93DF939C01009730 -:1032300009F471C0F12CEE24E394E9012196F9011F -:103240008491843740F4843008F056C0813081F096 -:10325000823021F160C0853709F449C0C0F19CE794 -:10326000980F903708F057C08F770E94DA1246C047 -:1032700089010E5F1F4FFE01849190E2980F9830F4 -:1032800050F48770FE2D01C0FF0F8A95EAF78F2F4B -:103290000E94E11B15C00E94121214C089010E5F2A -:1032A0001F4FFE01849190E2980F983068F4877068 -:1032B000FE2D01C0FF0F8A95EAF78F2F0E94E71BB2 -:1032C0000E940A1CE8011AC00E94DA12FBCF2E5F8E -:1032D0003F4FFE01C491CC2341F08FE99FE001975D -:1032E000F1F700C00000C150F6CFE90107C0FE01B0 -:1032F000F490E901229602C00E9412128F2D8823B9 -:1033000041F0EFE9FFE03197F1F700C00000815094 -:10331000F6CF9E0192CFDF91CF911F910F91FF9039 -:10332000EF90089508956093C2017093C301809354 -:10333000C4019093C5010C947F150F931F930091C6 -:10334000C2011091C3012091C4013091C501062B27 -:10335000172B282B392B0093C2011093C301209304 -:10336000C4013093C5011F910F910C947F150F93E9 -:103370001F930091C2011091C3012091C4013091AB -:10338000C50106231723282339230093C201109374 -:10339000C3012093C4013093C5011F910F910C9478 -:1033A0007F150F931F930091C2011091C3012091CB -:1033B000C4013091C5010627172728273927009314 -:1033C000C2011093C3012093C4013093C5011F9122 -:1033D0000F910C947F151092BE011092BF011092B4 -:1033E000C0011092C1010C947F1541E050E060E0F3 -:1033F00070E004C0440F551F661F771F8A95D2F7EF -:103400004093BE015093BF016093C0017093C1010E -:103410000C947F1541E050E060E070E004C0440F80 -:10342000551F661F771F8A95D2F78091BE01909134 -:10343000BF01A091C001B091C101842B952BA62B97 -:10344000B72B8093BE019093BF01A093C001B093AE -:10345000C1010C947F1541E050E060E070E004C0D1 -:10346000440F551F661F771F8A95D2F740955095D8 -:10347000609570958091BE019091BF01A091C001AF -:10348000B091C10184239523A623B7238093BE0165 -:103490009093BF01A093C001B093C1010C947F151C -:1034A00041E050E060E070E004C0440F551F661F2B -:1034B000771F8A95D2F78091BE019091BF01A091AC -:1034C000C001B091C10184279527A627B727809313 -:1034D000BE019093BF01A093C001B093C1010C94B1 -:1034E0007F150F931F930091BE011091BF01209192 -:1034F000C0013091C101062B172B282B392B0093CB -:10350000BE011093BF012093C0013093C1011F91F0 -:103510000F910C947F150F931F930091BE01109192 -:10352000BF012091C0013091C10106231723282338 -:1035300039230093BE011093BF012093C001309343 -:10354000C1011F910F910C947F150F931F93009150 -:10355000BE011091BF012091C0013091C101062729 -:103560001727282739270093BE011093BF01209306 -:10357000C0013093C1011F910F910C947F150895E4 -:10358000CF92DF92EF92FF920F931F93CF93DF932F -:10359000EC01C090C201D090C301E090C401F09052 -:1035A000C5018091BE019091BF01A091C001B09171 -:1035B000C101C82AD92AEA2AFB2A0FE110E0B70183 -:1035C000A601002E04C076956795579547950A94F5 -:1035D000D2F740FD05C00150110988F780E007C00F -:1035E000BE01802F0E94ED070197A9F3802FDF9184 -:1035F000CF911F910F91FF90EF90DF90CF900895A2 -:10360000CF93DF93EC010E94C01ABE010E94ED0728 -:10361000DF91CF910895CB010E94001B0895809106 -:10362000C60185958595859508958091C601877019 -:10363000089598E0899F90011124622B6093C60140 -:103640000C940A1A4091C601809584238093C60188 -:10365000982F977069F450E0282F332727FD309575 -:103660004217530729F08595859585950C942B1A5B -:1036700008959091C601977081E009F480E0089563 -:1036800090910C019923D9F090910D019923B9F0F3 -:10369000982F9695969596959F3088F5E0910E0116 -:1036A000F0910F01E90FF11D877021E030E001C0BA -:1036B000220F8A95EAF78181822B818308954091B8 -:1036C0000E0150910F0120E030E09FEFFA01E20F70 -:1036D000F31F6281681799F09F3F19F4611101C0CF -:1036E000922F2F5F3F4F2E30310581F79F3F39F0EA -:1036F000FA01E90FF11D97FDFA9582830895089567 -:1037000090910C019923E1F090910D019923C1F062 -:10371000982F9695969596959F3020F5E0910E01FD -:10372000F0910F01E90FF11D877021E030E001C039 -:10373000220F8A95EAF72095818128232183089515 -:1037400040910E0150910F0120E030E0FA01E20FAC -:10375000F31F9281981301C012822F5F3F4F2E30CA -:103760003105A1F7089581E090E0E0910E01F0911C -:103770000F01E80FF91F1082019680319105A9F71A -:1037800008959091DA01982B9093DA01089580952D -:103790009091DA0198239093DA0108951092DA015A -:1037A00008959091D901982B9093D901089580950F -:1037B0009091D90198239093D90108951092D9013D -:1037C00008959091D801982B9093D80108958095F1 -:1037D0009091D80198239093D80108951092D80120 -:1037E00008958093C70108951092C70108954091EC -:1037F0000E0150910F0120E030E080E0FA01E20F6D -:10380000F31F918191118F5F2F5F3F4F2F30310553 -:10381000A9F70895E0910E01F0910F018091DA016E -:103820008083E0910E01F0910F0180819091D90188 -:10383000892B8083E0910E01F0910F01808190919E -:10384000D801892B80839091C701992361F0E09181 -:103850000E01F0910F018081892B80830E94F71B5C -:1038600081111092C70180910E0190910F010C946B -:10387000FF1040E0009739F09C012150310982236C -:1038800093234F5FF7CF842F0895CF92DF92EF926B -:10389000FF920F931F936C01EE24FF24C114D104F7 -:1038A000E104F10421F46B017C0180E001C080E1BE -:1038B00033272F2D1E2D0D2D011511052105310545 -:1038C00019F0885F6801790197018601A4E03695B7 -:1038D000279517950795AA95D1F70115110521058B -:1038E000310519F08C5F6801790197018601F2E0DA -:1038F0003695279517950795FA95D1F70115110576 -:103900002105310519F08E5F68017901B701A60123 -:103910007695679557954795452B462B472B09F08C -:103920008F5F1F910F91FF90EF90DF90CF900895E0 -:103930008091F401843021F11092DC0120E488E1CF -:1039400090E00FB6F894A895809360000FBE209386 -:10395000600080E00E94FC0983B7817F846083BFA0 -:1039600083B7816083BF7894889583B78E7F83BF48 -:1039700088E10FB6F89480936000109260000FBE4B -:10398000089508950E94E2030E94F5030E94C11C5D -:103990000E94E90491E0811101C090E0892F08950F -:1039A0000E9493150E94F3100C94FC0982E084BDE0 -:1039B00093E095BD9AEF97BD80936E0008952FB761 -:1039C000F8948091DD019091DE01A091DF01B0912A -:1039D000E0012FBF0895CF92DF92EF92FF920F93F5 -:1039E0001F932FB7F8944091DD015091DE01609153 -:1039F000DF017091E0012FBF6A017B01EE24FF24FB -:103A00008C0120E030E0C016D106E206F30610F487 -:103A100041505109481B590BCA011F910F91FF904A -:103A2000EF90DF90CF9008951F920F920FB60F92F4 -:103A300011248F939F93AF93BF938091DD01909159 -:103A4000DE01A091DF01B091E0010196A11DB11D41 -:103A50008093DD019093DE01A093DF01B093E0013C -:103A6000BF91AF919F918F910F900FBE0F901F90BC -:103A700018950E94F90DF8942FEF87EA91E62150EE -:103A800080409040E1F700C0000087E090EBDC014F -:103A90008093FD019093FE01A093FF01B09300027B -:103AA0002CE088E190E00FB6F894A8958093600030 -:103AB0000FBE20936000FFCF0E94941D811102C0B1 -:103AC0000E947A1D0E949F1D8093DB010E94A71D0A -:103AD00090E09093EF018093EE0187FB882780F9B7 -:103AE00080930D010E94A31D682F70E080E090E09C -:103AF0000C9493196DEE7EEF80E090E00E94C52358 -:103B000060E082E090E00E94B32360E083E090E018 -:103B10000E94B32360E084E090E00E94B32360E061 -:103B200085E090E00C94B32380E090E00E94AD2308 -:103B300021E08D3E9E4F09F020E0822F089582E023 -:103B400090E00C94A52383E090E00C94A52384E0FE -:103B500090E00C94A523682F84E090E00C94B323AC -:103B60008091E30180FF0BC06091130185E0689FA5 -:103B7000B001112475956795759567952AC081FFE9 -:103B800009C06091130185E0689FB001112475950B -:103B900067951FC082FF07C06091130185E0689F91 -:103BA000B001112416C04091E4014423C9F0609192 -:103BB0001201461788F72091130185E0289F900194 -:103BC0001124429FC001439F900D112470E00E9478 -:103BD00077236038710540F46115710539F002C032 -:103BE00065E070E0862F08958FE7089581E00895DD -:103BF0008091E30180FF08C06091110170E075952C -:103C000067957595679521C081FF06C06091110188 -:103C100070E07595679519C082FF04C0609111012D -:103C200070E010C08091E4018823C1F06091100120 -:103C30008617A0F790911101989FC001112470E0A0 -:103C40000E9477236038710528F46115710521F011 -:103C5000862F08958FE7089581E0089561E070E070 -:103C6000F4CF803F21F40E94B01D819504C0813FB4 -:103C700029F40E94B01D8093E7010895823F21F44A -:103C80000E94B01D819504C0833F29F40E94B01D9D -:103C90008093E6010895893F19F40E94F81D05C03C -:103CA0008A3F31F40E94F81D81958093E8010895C0 -:103CB0008B3F21F40E94F81D819504C08C3F29F4AC -:103CC0000E94F81D8093E9010895843F21F48091BA -:103CD000E501816017C0853F21F48091E501826094 -:103CE00011C0863F21F48091E50184600BC0873FBD -:103CF00021F48091E501886005C0883F31F480910E -:103D0000E50180618093E50108958D3F21F4809164 -:103D1000E30181600BC08E3F21F48091E30182605A -:103D200005C08F3F29F48091E30184608093E30113 -:103D30000895803F39F48091E70187FF6CC01092AD -:103D4000E70169C0813F29F48091E7011816BCF3AF -:103D500062C09091E601823F29F497FF5CC0109207 -:103D6000E60159C0833F19F41916CCF354C0893FBA -:103D700041F48091E80118160CF04DC01092E80152 -:103D80004AC08A3F29F48091E80187FF44C0F6CFFA -:103D90008B3F39F48091E90187FF3DC01092E90122 -:103DA0003AC08C3F29F48091E9011816BCF333C066 -:103DB000843F21F48091E5018E7F17C0853F21F477 -:103DC0008091E5018D7F11C0863F21F48091E5014E -:103DD0008B7F0BC0873F21F48091E501877F05C071 -:103DE000883F31F48091E5018F7E8093E50113C017 -:103DF0008D3F21F48091E3018E7F0BC08E3F21F433 -:103E00008091E3018D7F05C08F3F29F48091E3010C -:103E10008B7F8093E3018091E60181110EC0809138 -:103E2000E70181110AC08091E801811106C08091EB -:103E3000E901811102C01092E401089585EE91E03C -:103E40000E940A110E94DF1C9093E2018093E1011D -:103E500008951F93CF93DF938091E1019091E20148 -:103E60000E94EB1C4091E401442321F020911401B5 -:103E700030E006C0209115015AE0259F90011124E1 -:103E80008217930708F482C08091E6011091E70140 -:103E9000D091E801C091E901811107C0111105C05D -:103EA000D11103C0CC2309F471C04F3F19F04F5F0B -:103EB0004093E401181624F40E94B01D8093E6019B -:103EC0008091E60187FF05C00E94B01D8195809317 -:103ED000E601111624F40E94B01D8093E701809141 -:103EE000E70187FF05C00E94B01D81958093E7011F -:103EF0006091E601662339F11091E701112319F170 -:103F0000772767FD7095872F972F0E94882223E3DC -:103F100033E343E35FE30E94EC220E945522609367 -:103F2000E601612F772767FD7095872F972F0E94F5 -:103F3000882223E333E343E35FE30E94EC220E9401 -:103F400055226093E7011D1624F40E94F81D80930A -:103F5000E8018091E80187FF05C00E94F81D819566 -:103F60008093E8011C1624F40E94F81D8093E90157 -:103F70008091E90187FF05C00E94F81D819580931B -:103F8000E901DF91CF911F910C941E1FDF91CF911A -:103F90001F910895E5EEF1E085E0DF011D928A951D -:103FA000E9F71092E4011092E3010895833081F162 -:103FB00028F4813059F08230D1F00895853009F429 -:103FC00049C0B8F1863009F456C008952091150112 -:103FD000862F90E0820F911D8F3F910520F4620F94 -:103FE0006093150108958FEF809315010895209136 -:103FF0001401862F90E0820F911D8F3F910520F4D0 -:10400000620F6093140108958FEF80931401089557 -:1040100020911301862F90E0820F911D8F3F910513 -:1040200020F4620F6093130108958FEF80931301C2 -:10403000089520911201862F90E0820F911D8F3FED -:10404000910520F4620F6093120108958FEF809321 -:104050001201089520911101862F90E0820F911D89 -:104060008F3F910520F4620F6093110108958FEF47 -:1040700080931101089520911001862F90E0820F06 -:10408000911D8F3F910520F4620F609310010895F8 -:104090008FEF809310010895833011F128F481305F -:1040A00049F0823091F00895853081F120F1863019 -:1040B000C1F1089580911501681720F4861B809343 -:1040C0001501089510921501089580911401681743 -:1040D00020F4861B80931401089510921401089512 -:1040E00080911301681720F4861B809313010895B3 -:1040F00010921301089580911201681720F4861B15 -:104100008093120108951092120108958091110177 -:10411000681720F4861B80931101089510921101F5 -:10412000089580911001681720F4861B8093100178 -:1041300008951092100108958D3109F43FC008F5DB -:10414000803109F485C070F4873009F456C018F442 -:104150008630D9F131C08B3009F4A5C08E3009F416 -:1041600066C02AC0863109F49EC020F4813109F46A -:1041700079C022C0893109F496C08B3109F44DC051 -:104180001BC0853309F487C048F4873209F483C023 -:1041900008F473C0893209F47EC00EC0833438F449 -:1041A0008A3308F068C0883309F47DC005C08334C1 -:1041B00009F471C0883499F080E008950E940F22BC -:1041C0000E94F3100E94FC096EC08091DB01817F88 -:1041D0008E7F8093DB0181E08093EB0108950E9444 -:1041E00093152FEF83ED90E3215080409040E1F74D -:1041F00000C000000E94391D56C09091DB01892F3C -:104200008095817080FB90F919F0966098601DC0D0 -:10421000997F977F9093DB0146C09091DB0191FBE2 -:10422000882780F921E0822780FB91F909C09091CD -:10423000DB0192FB882780F921E0822780FB92F93D -:104240009093DB01882379F191609093DB010895CD -:104250009091DB0193FB882780F921E0822780FB86 -:1042600093F9EECF0E94931580910D0191E089277B -:1042700080930D0118C027EC01C023EE280F61E0E8 -:1042800070E080E090E004C0660F771F881F991FE0 -:104290002A95D2F704C061E070E080E090E00E94CF -:1042A00093190E94931581E0089580E0089580E0BD -:1042B0000895CF93C82F8091EB01813079F018F0E9 -:1042C0008230D1F184C0A0910E01B0910F018C9188 -:1042D000813169F0823209F07CC009C0A0910E01E1 -:1042E000B0910F018C91813111F0823249F48C2F01 -:1042F0000E94552181111DC08C2F0E949C201AC044 -:104300008C2F0E945721811114C0C43179F048F4D8 -:10431000CB3079F0C03109F060C082E08093EB01CE -:1043200008C0C93219F0C83321F057C01092EB0110 -:1043300054C081E0817053C0C93289F118F5C4318D -:1043400071F1A8F4C73009F046C08AE080931501E6 -:1043500094E19093140193E09093130180931201E0 -:1043600088E08093110188E28093100134C0CE511F -:10437000C63088F5EC2FF0E0E65DFE4F808180933B -:10438000EA0129C0CE34E9F020F4CB3421F56AE00B -:1043900013C0C13579F0C235F1F461E00DC08091F0 -:1043A000EA01882319F01092EA0115C081E0809398 -:1043B000EB0115C061E006C08091EA010E94D61FA2 -:1043C0000AC06AE08091EA010E944C2004C0109269 -:1043D000EB0180E004C081E002C080E0ABCFCF9170 -:1043E0000895E1E8F0E080818860808380818160C9 -:1043F00080838FB7F89493E09093890090ED909329 -:1044000088008FBF0895EFE6F0E0808182608083AE -:104410000895EFE6F0E080818D7F80830895EFE6D8 -:10442000F0E0808192E08927808308951F920F92A7 -:104430000FB60F9211242F933F934F935F936F9377 -:104440007F938F939F93AF93BF93EF93FF9380914D -:10445000EC019091ED0101969093ED018093EC01B8 -:10446000811103C082E00E94FC09E091ED01E69514 -:10447000E695F0E0E552FA4FE4918091EC018E135D -:1044800003C080E00E94FC09FF91EF91BF91AF91C2 -:104490009F918F917F916F915F914F913F912F915C -:1044A0000F900FBE0F901F90189504D06894B11113 -:1044B0008DC0089570D088F09F5790F0B92F99273C -:1044C000B751A0F0D1F0660F771F881F991F1AF01F -:1044D000BA95C9F712C0B13081F077D0B1E0089534 -:1044E00074C0672F782F8827B85F39F0B93FCCF3B5 -:1044F000869577956795B395D9F73EF49095809515 -:10450000709561957F4F8F4F9F4F0895E89409C034 -:1045100097FB3EF490958095709561957F4F8F4FF6 -:104520009F4F9923A9F0F92F96E9BB279395F6950C -:10453000879577956795B795F111F8CFFAF4BB0F8A -:1045400011F460FF1BC06F5F7F4F8F4F9F4F16C0EE -:10455000882311F096E911C0772321F09EE8872F78 -:10456000762F05C0662371F096E8862F70E060E034 -:104570002AF09A95660F771F881FDAF7880F9695AD -:10458000879597F9089557FD9058440F551F59F096 -:104590005F3F71F04795880F97FB991F61F09F3F30 -:1045A00079F087950895121613061406551FF2CF59 -:1045B0004695F1DF08C0161617061806991FF1CFA9 -:1045C00086957105610508940895E894BB276627D0 -:1045D0007727CB0197F908950BD078C069D028F0E0 -:1045E0006ED018F0952309F05AC05FC01124EECFA9 -:1045F000CADFA0F3959FD1F3950F50E0551F629F3E -:10460000F001729FBB27F00DB11D639FAA27F00D2B -:10461000B11DAA1F649F6627B00DA11D661F829F52 -:104620002227B00DA11D621F739FB00DA11D621F37 -:10463000839FA00D611D221F749F3327A00D611D54 -:10464000231F849F600D211D822F762F6A2F112436 -:104650009F5750408AF0E1F088234AF0EE0FFF1F89 -:10466000BB1F661F771F881F91505040A9F79E3FC0 -:10467000510570F014C0AACF5F3FECF3983EDCF315 -:10468000869577956795B795F795E7959F5FC1F7FD -:10469000FE2B880F911D9695879597F9089597F9A8 -:1046A0009F6780E870E060E008959FEF80EC0895D8 -:1046B00000240A9416161706180609060895002401 -:1046C0000A9412161306140605060895092E03947B -:1046D000000C11F4882352F0BB0F40F4BF2B11F4EF -:1046E00060FF04C06F5F7F4F8F4F9F4F089597FB10 -:1046F000072E16F4009407D077FD09D00E9491236D -:1047000007FC05D03EF4909581959F4F08957095D4 -:1047100061957F4F0895EE0FFF1F0590F491E02DF6 -:104720000994AA1BBB1B51E107C0AA1FBB1FA617F8 -:10473000B70710F0A61BB70B881F991F5A95A9F74A -:1047400080959095BC01CD010895F999FECF92BD59 -:1047500081BDF89A992780B50895A8E1B0E042E0BC -:1047600050E00C94CD23262FF999FECF92BD81BD48 -:10477000F89A019700B4021639F01FBA20BD0FB69F -:10478000F894FA9AF99A0FBE08950196272F0E947D -:10479000B4230C94B323DC01CB01FC01F999FECFC7 -:1047A00006C0F2BDE1BDF89A319600B40D924150B9 -:0A47B0005040B8F70895F894FFCFC9 -:1047BA000220FE098B0A680A340A010A0101C801AB -:1047CA0028080A03140A404D36399B054E05180578 -:1047DA00DF0472048B04A404BD0401020304050669 -:0447EA0007080900B3 -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/default_osx/compiled.hex b/keyboards/ergodox_ez/keymaps/default_osx/compiled.hex deleted file mode 100644 index cdd9b9704..000000000 --- a/keyboards/ergodox_ez/keymaps/default_osx/compiled.hex +++ /dev/null @@ -1,1158 +0,0 @@ -:100000000C947A020C94BE020C94BE020C94BE02B4 -:100010000C94BE020C94BE020C94BE020C94BE0260 -:100020000C94BE020C94BE020C94620D0C94340E1F -:100030000C94BE020C94BE020C94BE020C94BE0240 -:100040000C94BE020C943E220C94BE020C94BE0290 -:100050000C94BE020C94D11B0C94BE020C94BE02F4 -:100060000C94BE020C94BE020C94BE020C94BE0210 -:100070000C94BE020C94BE020C94BE020C94BE0200 -:100080000C94BE020C94BE020C94BE020C94BE02F0 -:100090000C94BE020C94BE020C94BE020C94BE02E0 -:1000A0000C94BE020C94BE020C94BE02A10EC30EB0 -:1000B000B10FC30EB10F080F2B0FB10F800F930FAD -:1000C0006212621291129112C712E71218141814D8 -:1000D000F2121814A213A2130914181418141214EB -:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300 -:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0 -:10010000C113CE13D513DC13E6130000F0A12E00AB -:100110004C002A00E100354100001E0014000400DC -:100120001D7134004D001F001A0016001B00E10471 -:100130002A00200008000700060050002C002100C3 -:100140001500090019004F004A00220017000A009C -:10015000050000006574500001540000007F00009D -:10016000E3004F000154000000770000E20023008C -:100170001C000B00110000002971240018000D0064 -:10018000100052004B0025000C000E0036005100FC -:100190002800260012000F0037002F002B00270038 -:1001A00013003342387130004E002D003100E3005F -:1001B000E500C10000000100010001000100010094 -:1001C00000003A001E0220022202010001003B0052 -:1001D0001F0221022302010001003C002F0226021F -:1001E0002F00010001003D00300227023000010015 -:1001F00001003E003102350035020000010001001F -:1002000001000000010000000100010001000000E9 -:100210000100000001003F005200510024020000D4 -:1002200001004000240021001E00010001004100E7 -:10023000250022001F003700010042002600230095 -:10024000200027000100430025022E0231002E006D -:100250000100440045000100010001000000010010 -:100260000100010001000100000001000100010087 -:1002700001000100010001000100F2000100010085 -:1002800001000100F000F1000100F4000100010094 -:100290000100F3000100F500010001000100010070 -:1002A0000100000001000100010000000100000049 -:1002B0000100010001000000010000000100010038 -:1002C0000100010001000000010001000100010027 -:1002D0000100A9000100010001000100AC00AA001A -:1002E000B600010001000100AB00A8000100010000 -:1002F0000100010001000100010001000100AE0049 -:1003000001000100000016034500720067006F0045 -:1003100044006F007800200045005A0000001603DA -:100320004500720067006F0044006F0078002000F5 -:1003300045005A0000000403090409026D0004018D -:1003400000A0FA09040000010301010009211101C4 -:100350000001223F000705810308000A090401008B -:100360000103010200092111010001224D000705CE -:10037000820308000A0904020001030000000921A9 -:10038000110100012236000705830308000A090451 -:1003900003000103000000092111010001223900BE -:1003A000070584031000011201100100000008ED90 -:1003B000FE071301000102000105010906A1010564 -:1003C0000719E029E7150025019508750181020547 -:1003D000081901290595057501910295017503918B -:1003E0000105071900297715002501957875018108 -:1003F00002C005010980A101850216010026B7008F -:100400001A01002AB700751095018100C0050C097A -:1004100001A1018503160100269C021A01002A9CF5 -:1004200002751095018100C005010902A1010901B1 -:10043000A10005091901290515002501950575017A -:10044000810295017503810105010930093115818A -:10045000257F95027508810609381581257F95014C -:1004600075088106050C0A38021581257F950175EE -:10047000088106C0C005010906A101050719E02988 -:10048000E715002501950875018102950175088120 -:100490000105081901290595057501910295017558 -:1004A0000391010507190029FF150025FF95067521 -:1004B000088100C0000000000000000000000001F2 -:1004C0000204060A0F17202C3A4A5D71879DB3C7B4 -:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF -:1004E0003A2C20170F0A0604020100000000000049 -:1004F0000000000011241FBECFEFDAE0DEBFCDBF49 -:1005000004B603FE24C08091FB019091FC01A091F0 -:10051000FD01B091FE018730904BA740B04BB9F47C -:100520001092FB011092FC011092FD011092FE014D -:1005300014BE84B7877F84BF88E10FB6F894809398 -:100540006000109260000FBEE0E0FFE3099511E04B -:10055000A0E0B1E0EAE0F8E402C005900D92A43317 -:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0 -:10057000B107E1F70E94A60A0C9403240C94000032 -:100580001092B9008AE08093B800089594EA90939D -:10059000BC009091BC0097FFFCCF9091B900987F70 -:1005A000983021F0903111F081E008958093BB00E4 -:1005B00084E88093BC008091BC0087FFFCCF8091D1 -:1005C000B900887F883111F0803471F780E0089598 -:1005D00084E98093BC008091BC0084FDFCCF089529 -:1005E0008093BB0084E88093BC008091BC0087FFAF -:1005F000FCCF9091B900987F81E0983209F480E0B7 -:10060000089584E88093BC008091BC0087FFFCCFF4 -:100610008091BB00089580910101811115C080E493 -:100620000E94C6028093010181110CC082E10E94E8 -:10063000F00280930101811105C08FEF0E94F0024A -:10064000809301010E94E80284B1807F84B985B162 -:10065000807F85B98AB1837F8AB98BB1837F8BB95B -:100660003E98469808950E94C604809301010E9416 -:100670000B0380B38C7080BB81B3836F81BBA5E318 -:10068000B1E0E3E4F1E08EE08E0F11921D928E1343 -:10069000FCCF0C94B004BF92CF92DF92EF92FF9206 -:1006A0000F931F93CF93DF9380910101882379F0FB -:1006B000809134018F5F80933401811108C00E94C2 -:1006C000C60480930101811102C00E94580405E311 -:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407 -:1006E000E394F12CC730D10500F58091010181110F -:1006F00064C080E40E94C60280930101811112C08F -:1007000082E10E94F0028093010181110BC0C701B8 -:100710000C2E01C0880F0A94EAF780950E94F0021F -:10072000809301010E94E80248C0CA30A1F028F479 -:10073000C83059F0C93061F005C0CC3089F070F094 -:10074000CD3089F0209A289810C0219A29980DC0A0 -:10075000229A2A980AC0239A2B9807C0529A01C05D -:10076000539A5B9802C03E9A469890EA9A95F1F7A0 -:100770009FB1799902C082E001C080E091709D250F -:10078000982B7C9902C084E001C080E0892B7D9980 -:1007900002C038E001C030E0832B7E9902C020E126 -:1007A00001C020E0822B9FB19095991F9927991F36 -:1007B0009295990F907E892B0FC080910101811134 -:1007C00049C080E40E94C60280930101882379F128 -:1007D000B12C0E94E8028B2DF8019081981719F036 -:1007E0008083C09200010E940B0321960F5F1F4F70 -:1007F000CE30D10509F076CF80910001882361F1D8 -:10080000815080930001882339F08FE99FE00197A0 -:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F -:10082000CF01825F91919D938E13FCCF15C083E120 -:100830000E94F002809301018111CACF81E40E94DD -:10084000C602809301018111C3CF0E940103B82E1B -:10085000B094BFCF80E0C0CF0E94560481E0DF910A -:10086000CF911F910F91FF90EF90DF90CF90BF90AD -:100870000895E82FF0E0ED5BFE4F80810895089524 -:100880000F931F93CF93DF93C3E4D1E010E00C2FBD -:10089000025F899190E00E94F71A180F0C13F9CFAC -:1008A000812FDF91CF911F910F9108950C94260510 -:1008B00056985E9825982D9826982E9827982F98C8 -:1008C0008FEF90E0909389008093880090938B0045 -:1008D00080938A0090938D0080938C00259A2D9AA6 -:1008E0002FEF80E792E0215080409040E1F700C078 -:1008F0000000269A2E9A2FEF80E792E02150804048 -:100900009040E1F700C00000279A2F9A2FEF80E770 -:1009100092E0215080409040E1F700C0000025980F -:100920002D982FEF80E792E0215080409040E1F732 -:1009300000C0000026982E982FEF80E792E021500B -:1009400080409040E1F700C0000027982F9856980B -:100950005E9825982D9826982E9827982F98089578 -:1009600089EA8093800089E08093810024982C9804 -:100970003F988AB18F748AB96E98479A8BB1806B11 -:100980008BB9769A0E9458040C94250580E28093D6 -:1009900001018091510181110EC00E94C00281E0CD -:1009A000809351012FEF83ED90E3215080409040E0 -:1009B000E1F700C0000080E40E94C60280930101BC -:1009C00081112EC00E94F00280930101811128C084 -:1009D0000E94F00280930101811122C08FE30E94E6 -:1009E000F0028093010181111BC00E94E80280E4A3 -:1009F0000E94C60280930101811112C08CE00E9406 -:100A0000F0028093010181110BC00E94F0028093DB -:100A10000101811105C08FE30E94F0028093010162 -:100A20000E94E80280910101089561110BC0FC0150 -:100A30008281882321F085EE0E94061103C085EE95 -:100A40000E94CE1180E090E0089508956091BD016C -:100A50007091BE018091BF019091C0010E94031B63 -:100A600056985E9825982D9826982E9827982F9816 -:100A7000813019F0823021F00895259A2D9A089539 -:100A8000269A2E9A089581E0089581E008950C94A5 -:100A9000450508950F931F93CF93DF938C01FC01BD -:100AA000C081D181CE010E947C19BE010E94F30554 -:100AB000EC01B8010E944705882309F48DC0F801B4 -:100AC0008281882309F44AC080915D0181111FC091 -:100AD000C431F0E5DF0709F051C00E94490581E00B -:100AE00080935D010E949B1B90935C0180935B014E -:100AF0001092540110925601109255011092580113 -:100B00001092570110925A011092590165C08091BC -:100B10005B0190915C010E94A71B883C910570F4D9 -:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB -:100B3000D183C0838F5F809354014EC0C43880E559 -:100B4000D80721F0C538D04501F13AC0F8018281BB -:100B5000882341F01092520182E01EC0C438E0E5C3 -:100B6000DE0759F580915201811106C086E20E948C -:100B7000061186E20E94CE1182E01CC0C438F0E566 -:100B8000DF0741F3C538D045D9F4F80182818823C5 -:100B900031F01092530180E20E941D121DC080911D -:100BA0005301811106C087E20E94061187E20E946C -:100BB000CE1180E20E9424120FC0C538D04529F31F -:100BC00081E08093520180935301C801DF91CF915E -:100BD0001F910F910C94430580E0DF91CF911F91FD -:100BE0000F910895089596E0799FF001112494E5FE -:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F -:100C0000E25FFE4F859194910895880F991FFC0132 -:100C1000E657F040859194910895880F991FFC0143 -:100C2000E65FFE4F8591949108950F931F93CF93A4 -:100C3000DF93EC01811520E3920750F5C11580E2A6 -:100C4000D80708F0C3C0CB3BD10590F4C83AD10512 -:100C500008F06AC0C53AD10508F05BC0C430D105C0 -:100C600008F0D0C1219709F0CAC101E010E00AC222 -:100C7000CF3FD10511F008F0C5C1C03FD10508F044 -:100C8000A2C0CE01805E9109089708F4BBC1B7C12C -:100C9000C13090E5D90709F4A2C020F5C0318FE436 -:100CA000D80770F4C11590E4D90708F094C0C115B5 -:100CB00021E3D20708F0A3C1DD278E01106CE2C149 -:100CC000C115D04509F09BC10E9483148FEF94E3B6 -:100CD0002CE0815090402040E1F700C000000E94CD -:100CE000F61BD0C1C11597E5D90758F4C03121E5ED -:100CF000D20708F01CC1C43180E5D80708F475C0DC -:100D00007EC1CE0190578115904108F078C1DF7007 -:100D100073C1C53AD10509F477C1C63AD10509F0C6 -:100D200076C102E810E4AEC1C83AD10509F472C137 -:100D3000C93AD10509F471C1CA3AD10509F470C1A3 -:100D4000CB3AD10509F46FC1CC3AD10509F46EC193 -:100D5000CD3AD10509F46DC1C03BD10509F46CC190 -:100D6000CE3AD10509F46BC1CF3AD10509F46AC175 -:100D7000C13BD10509F469C1C23BD10509F468C181 -:100D8000C33BD10509F467C1C43BD10509F466C171 -:100D9000C53BD10509F465C1C63BD10509F464C161 -:100DA000C73BD10509F463C1C83BD10509F462C151 -:100DB000C93BD10509F461C1CA3BD10509F460C141 -:100DC00000E014E45FC18E0110655CC1CE019F702C -:100DD0000E940D0658C1DF708E01106A53C18091C8 -:100DE000DA0181608093DA014DC10E949B1D81115F -:100DF00002C00E94811D0E94B81D90E09093FB01EB -:100E00008093FA01C23080E5D80721F48091FA017D -:100E1000816086C0C43090E5D90721F48091FA0141 -:100E200082607EC0C63020E5D20721F48091FA01AD -:100E3000846076C0C83080E5D80719F48091FA0143 -:100E400027C0CA3090E5D90721F48091FA0180616A -:100E500067C0CC3020E5D20721F48091FA0180628E -:100E60005FC0CE3080E5D80721F48091FA0180641C -:100E700057C0C03190E5D90721F48091FA0180680C -:100E80004FC0C23120E5D20729F48091FA01846075 -:100E9000886046C0C33080E5D80721F48091FA010C -:100EA0008E7F3EC0C53090E5D90721F48091FA01CC -:100EB0008D7F36C0C73020E5D20721F48091FA013A -:100EC0008B7F2EC0C93080E5D80719F48091FA01D4 -:100ED00026C0CB3090E5D90721F48091FA018F7EAE -:100EE0001FC0CD3020E5D20721F48091FA018F7D1B -:100EF00017C0CF3080E5D80721F48091FA018F7BAD -:100F00000FC0C13190E5D90721F48091FA018F77A4 -:100F100007C0C331D04531F48091FA018B7F877FC0 -:100F20008093FA018091FA010E94BC1DABC08D2F05 -:100F300099278F70992781309105D9F49E012370EC -:100F4000332702C0880F991F2A95E2F79C688E010B -:100F500044E0000F111F4A95E1F700271370802B22 -:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA -:100F70002FC08230910531F4DC2FCC278E01016F18 -:100F8000106A80C08330910569F4CE01837099277F -:100F900001E010E002C0000F111F8A95E2F7C801BE -:100FA0009C680FC084309105B9F4CE0183709927F5 -:100FB00001E010E002C0000F111F8A95E2F7C8019E -:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029 -:100FD0008C010C2B1D2B56C08530910531F4DC2F74 -:100FE000CC278E01046F106A4DC0069709F04AC0E5 -:100FF000CF71DD27DC2FCC278E01106243C000E0CB -:1010000010E040C08E013EC001E810E43BC003E8A0 -:1010100010E438C002EE14E435C009EE14E432C026 -:101020000AEE14E42FC005EB14E42CC006EB14E424 -:1010300029C007EB14E426C00CEC14E423C00DEC2B -:1010400014E420C003E815E41DC00AE815E41AC042 -:1010500002E915E417C004E915E414C001E216E43E -:1010600011C003E216E40EC004E216E40BC005E270 -:1010700016E408C006E216E405C007E216E402C062 -:101080000AE216E4C801DF91CF911F910F910895F4 -:1010900096E0799FF001112494E5899FE00DF11D00 -:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149 -:1010B0009491803E9105E0F4803C910558F5813390 -:1010C000910509F46FC048F48932910509F463C0B1 -:1010D0008A32910509F46DC072C089339105E9F037 -:1010E00082389105D1F08533910509F44DC067C070 -:1010F000833E910581F138F4803E9105B9F0823E3E -:101100009105D9F05CC0863E910561F1873E91055D -:10111000A1F155C00E94050608952091FA0120FD15 -:1011200002C021FF4CC080EE90E049C08091FA01DE -:1011300080FFF9CF89E390E042C08091FA0182FFFD -:101140000EC08091FA0184FF03C080E090E037C0B8 -:1011500083EE90E034C08091FA0182FFF2CF82EEFC -:1011600090E02DC08091FA0183FF0BC08091FA01BD -:1011700084FDEBCF87EE90E022C08091FA0183FFDF -:10118000F5CF86EE90E01BC08091FA0185FF07C085 -:1011900089E290E014C08091FA0185FFF9CF85E3E0 -:1011A00090E00DC08091FA0186FF07C08AE290E0CE -:1011B00006C08091FA0186FFF9CF81E390E00E949A -:1011C0001506089508950C94E20880916E01089523 -:1011D000CF93DF9300D01F92CDB7DEB79C018091F3 -:1011E000F101843019F593E099833B832A8390932E -:1011F000E9008FEF9091E800815095FD06C095EDD4 -:101200009A95F1F700008111F5CF8091E80085FFF4 -:101210000DC040E050E063E070E0CE0101960E9416 -:10122000520B8091E8008E778093E8000F900F902A -:101230000F90DF91CF910895CF93DF9300D01F924D -:10124000CDB7DEB72091F101243021F522E02983CA -:101250009B838A8383E08093E9008FEF9091E8007D -:10126000815095FD06C095ED9A95F1F7000081112A -:10127000F5CF8091E80085FF0DC040E050E063E0CD -:1012800070E0CE0101960E94520B8091E8008E77AB -:101290008093E8000F900F900F90DF91CF91089509 -:1012A0002091F1012430F1F422E02093E9002FEFA6 -:1012B0003091E800215035FD06C035ED3A95F1F743 -:1012C00000002111F5CF2091E80025FF0BC040E080 -:1012D00050E065E070E00E94520B8091E8008E774C -:1012E0008093E8000895CF93DF93EC019091F10192 -:1012F000943009F046C080910C018823D9F0809188 -:101300000D018823B9F09093E9008FEF9091E800E8 -:10131000815095FD06C095E19A95F1F70000811185 -:10132000F5CF8091E80085FF2CC040E050E060E1FF -:1013300070E017C081E08093E9008FEF9091E800A2 -:10134000815095FD06C095ED9A95F1F70000811149 -:10135000F5CF8091E80085FF14C040E050E068E0E0 -:1013600070E0CE010E94520B8091E8008E7780934E -:10137000E80080E1FE01AEE5B1E001900D928A95B2 -:10138000E1F7DF91CF9108958091F001811109C0BB -:101390000E94E70C0E94440D8091E20084608093DB -:1013A000E20008951092F001089508950C942B2204 -:1013B0000E948C1B0E9431220E94EA0F0C94E308C9 -:1013C00042E061EC81E00E94610C42E061EC82E06D -:1013D0000E94610C42E061EC83E00E94610C42E1FA -:1013E00061EC84E00C94610C8091F301833009F48A -:1013F00055C030F4813071F0823009F48EC0089508 -:101400008A3009F47AC08B3009F460C0893009F061 -:101410009CC020C08091F201813A09F096C0809171 -:10142000E800877F8093E8008091F6019091F701B2 -:10143000892B21F460E18EE591E003C060E080E05B -:1014400090E070E00E949D0B8091E8008B77809384 -:10145000E80008958091F201813209F076C0809110 -:10146000F6019091F701009719F0039709F06DC00C -:101470008091E800877F8093E8008091E80082FDFA -:1014800005C08091F1018111F8CF5FC08091F1001A -:1014900080936E018091E8008B7753C08091F201B8 -:1014A000813A09F052C08091F6019091F701892BA1 -:1014B00009F04BC08091E800877F8093E80080911D -:1014C000E80080FFFCCF80910C0136C08091F201D2 -:1014D0008132D9F58091F6019091F701892BA9F518 -:1014E0008091E800877F8093E8000E94960C8091AD -:1014F000F40180930C010C9483148091F2018132E9 -:1015000021F58091E800877F8093E8000E94960C87 -:101510008091F50180936F0108958091F201813AE5 -:10152000A1F48091E800877F8093E8008091E80033 -:1015300080FFFCCF80916F018093F1008091E800E3 -:101540008E778093E8000C94960C089584B7877F7B -:1015500084BF88E10FB6F894809360001092600019 -:101560000FBE90E080E80FB6F894809361009093EE -:1015700061000FBE0E9439100E94E70C0E94440DCA -:101580008091E20084608093E20078940E94CA0F08 -:101590000E943B1082E091E00E94E50F0E94192218 -:1015A0008091F101853069F40E94531B8091EF0115 -:1015B0008823B1F30E947E1B882391F30E943C0B89 -:1015C000EFCF0E944110ECCF292F33272330310574 -:1015D000C9F064F42130310581F02230310509F081 -:1015E00043C08DE690E02AE333E042C0213231056A -:1015F000F1F02232310541F137C082E190E027EA73 -:1016000033E036C099278130910541F08230910551 -:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4 -:1016200002C0E6E0F3E0849190E09F0121C06430C5 -:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5 -:10164000318189E090E014C0643070F470E0FB01F7 -:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47 -:10166000FE4F808190E004C080E090E020E030E018 -:10167000FA0131832083089580E189BD82E189BD2B -:1016800009B400FEFDCF8091D8008F7D8093D800F3 -:101690008091E00082608093E0008091E00081FD15 -:1016A000FCCF0895CF92DF92EF92FF920F931F939A -:1016B000CF93DF93EC018B016A010E94B50C81117D -:1016C00033C0C114D10439F0F60180819181081B27 -:1016D000190BC80FD91FE12CF12C0115110519F1B7 -:1016E0008091E80085FD16C08091E8008E77809398 -:1016F000E800C114D10449F0F60180819181E80E1F -:10170000F91EF182E08285E00FC00E94B50C8823AB -:1017100021F30AC089918093F10001501109FFEF74 -:10172000EF1AFF0ADACF80E0DF91CF911F910F917E -:10173000FF90EF90DF90CF9008952091F8013091C5 -:10174000F9012617370748F06115710539F4209122 -:10175000E8002E772093E80001C0B90140E0611550 -:101760007105A9F12091F101222309F443C025302C -:1017700009F442C02091E80023FD40C02091E80018 -:1017800022FD32C02091E80020FFE9CF4091F30014 -:101790002091F20030E0342BFC01CF01611571057E -:1017A00059F02830310540F481918093F100615067 -:1017B00071092F5F3F4FF1CF41E02830310509F02B -:1017C00040E02091E8002E772093E800C8CF411137 -:1017D000C9CF0AC08091F101882361F0853061F0A2 -:1017E0008091E80083FD0AC08091E80082FFF2CF7B -:1017F00080E0089582E0089583E0089581E00895EF -:101800002091F8013091F9012617370748F061154A -:10181000710539F42091E8002E772093E80001C08B -:10182000B901FC0120E06115710591F18091F10190 -:10183000882309F440C0853009F43FC08091E80056 -:1018400083FD3DC08091E80082FD2FC08091E800BB -:1018500080FFE9CF2091F3008091F20090E0922B7D -:101860006115710559F08830910540F42491209359 -:10187000F1003196615071090196F2CF21E008978D -:1018800009F020E08091E8008E778093E800CBCFCC -:101890002111CCCF0AC08091F101882361F08530FD -:1018A00061F08091E80083FD0AC08091E80082FF2A -:1018B000F2CF80E0089582E0089583E0089581E00A -:1018C0000895982F973058F59093E900981739F0BC -:1018D0007091EC002091ED005091F00003C0242F96 -:1018E000762F50E021FF19C03091EB003E7F3093FE -:1018F000EB003091ED003D7F3093ED003091EB0037 -:1019000031603093EB007093EC002093ED00509326 -:10191000F0002091EE0027FF07C09F5FD3CF8F70AC -:101920008093E90081E0089580E008958091F201BC -:1019300087FF11C08091E80082FD05C08091F10110 -:101940008111F8CF11C08091E8008B770BC0809196 -:10195000F101882349F08091E80080FFF8CF809161 -:10196000E8008E778093E80008952091E40030919C -:10197000E50095E64091EC00842F817040FF22C085 -:101980008091E80080FD1CC08091F101882391F0D6 -:10199000853091F08091EB0085FD10C04091E4000E -:1019A0005091E5004217530729F39A01915011F71E -:1019B00084E0089582E0089583E0089581E0089529 -:1019C00080E008954091E80042FFDECF08950E9434 -:1019D000550D0E945D0DE0EEF0E080818160808316 -:1019E000E8EDF0E080818F77808319BCA7EDB0E04F -:1019F0008C918E7F8C9380818F7E80831092F001FA -:101A000008950F931F93CF93DF930E94550D0E946B -:101A10005D0DC8EDD0E088818F77888388818068EC -:101A2000888388818F7D888319BC1092F101109280 -:101A3000ED011092EF011092EE0100EE10E0F801BE -:101A400080818B7F808388818160888342E060E031 -:101A500080E00E94610CE1EEF0E080818E7F808367 -:101A6000E2EEF0E080818160808380818860808305 -:101A7000F80180818E7F8083888180618883DF91F7 -:101A8000CF911F910F910895E8EDF0E080818F7E56 -:101A90008083E7EDF0E080818160808384E082BF15 -:101AA00081E08093F0010C94010DE8EDF0E080817D -:101AB0008E7F80831092E20008951092DA001092D7 -:101AC000E10008951F920F920FB60F9211242F93E9 -:101AD0003F934F935F936F937F938F939F93AF93B6 -:101AE000BF93EF93FF938091E10082FF0BC0809141 -:101AF000E20082FF07C08091E1008B7F8093E100CC -:101B00000E94C90F8091DA0080FF1FC08091D80029 -:101B100080FF1BC08091DA008E7F8093DA00809175 -:101B2000D90080FF0DC080E189BD82E189BD09B483 -:101B300000FEFDCF81E08093F1010E94C40905C041 -:101B400019BC1092F1010E94D2098091E10080FF3E -:101B500019C08091E20080FF15C08091E2008E7F65 -:101B60008093E2008091E20080618093E2008091A6 -:101B7000D80080628093D80019BC85E08093F10181 -:101B80000E94D6098091E10084FF30C08091E2007C -:101B900084FF2CC080E189BD82E189BD09B400FECB -:101BA000FDCF8091D8008F7D8093D8008091E10097 -:101BB0008F7E8093E1008091E2008F7E8093E2002F -:101BC0008091E20081608093E2008091ED018823A2 -:101BD00011F084E007C08091E30087FD02C081E03E -:101BE00001C083E08093F1010E94D8098091E10057 -:101BF00083FF29C08091E20083FF25C08091E1002E -:101C0000877F8093E10082E08093F1011092ED01E3 -:101C10008091E1008E7F8093E1008091E2008E7FD1 -:101C20008093E2008091E20080618093E20042E0D4 -:101C300060E080E00E94610C8091F00088608093F9 -:101C4000F0000E94D509FF91EF91BF91AF919F9154 -:101C50008F917F916F915F914F913F912F910F9055 -:101C60000FBE0F901F9018951F920F920FB60F92F4 -:101C700011242F933F934F935F936F937F938F9391 -:101C80009F93AF93BF93CF93DF93EF93FF93C09155 -:101C9000E900CF708091EC00D82FD17080FDD0E8A2 -:101CA0001092E9008091F000877F8093F000789493 -:101CB0000E94780E1092E9008091F0008860809375 -:101CC000F000CD2BCF70C093E900FF91EF91DF9131 -:101CD000CF91BF91AF919F918F917F916F915F91C4 -:101CE0004F913F912F910F900FBE0F901F9018951D -:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3 -:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115 -:101D1000F10091938E13FBCF0E94F4098091E800AB -:101D200083FF1FC18091F2019091F301492F50E090 -:101D30004A30510508F015C1FA01EA5AFF4F0C94D8 -:101D4000B323803881F0823809F00BC18091F6010D -:101D50008F708093E9008091EB0085FB882780F9E4 -:101D60001092E90006C08091EE019091EF0191116F -:101D700082609091E800977F9093E8008093F10053 -:101D80001092F100C8C0282F2D7F09F0EAC08823E7 -:101D900019F0823061F0E5C08091F401813009F0E2 -:101DA000E0C0933009F080E08093EF012BC0809178 -:101DB000F401811127C08091F6018F7009F4D1C020 -:101DC0008093E9002091EB0020FF1CC0933021F4A8 -:101DD0008091EB00806214C09091EB009061909331 -:101DE000EB0021E030E0A90102C0440F551F8A95A5 -:101DF000E2F74093EA001092EA008091EB008860DD -:101E00008093EB001092E9008091E800877F86C004 -:101E10008111A7C01091F4011F778091E3008078B1 -:101E2000812B8093E3008091E800877F8093E80016 -:101E30000E94960C8091E80080FFFCCF8091E30027 -:101E400080688093E300111102C082E001C083E04A -:101E50008093F10186C08058823008F082C0809162 -:101E6000F4019091F5018C3D53E0950779F583E0FD -:101E70008A838AE289834FB7F894DE01139620E0C3 -:101E80003EE051E2E32FF0E050935700E49120FF51 -:101E900003C0E295EF703F5FEF708E2F90E0EA3065 -:101EA00010F0C79601C0C0968D939D932F5F24318B -:101EB00049F74FBF8091E800877F8093E8006AE28E -:101EC00070E0CE0101960E949D0B14C0AE014F5FE1 -:101ED0005F4F6091F6010E94E40ABC01009709F48B -:101EE00040C09091E800977F9093E80089819A81A3 -:101EF0000E94000C8091E8008B778093E80031C04D -:101F0000803879F58091E800877F8093E8008091A0 -:101F1000ED018093F1008091E8008E778093E800D6 -:101F20000E94960C1EC081111CC09091F401923049 -:101F3000C0F48091E800877F8093E8009093ED01E2 -:101F40000E94960C8091ED01811106C08091E30002 -:101F500087FD02C081E001C084E08093F1010E940E -:101F6000E0098091E80083FF0AC08091E800877F44 -:101F70008093E8008091EB0080628093EB00AA964A -:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A -:101F900008950895CF938091F1018823A1F0C09115 -:101FA000E900CF709091EC00892F817090FD80E85E -:101FB000C82B1092E9008091E80083FD0E94780E02 -:101FC000CF70C093E900CF910895909375018093ED -:101FD00074010895E0917401F0917501309721F03A -:101FE0000190F081E02D099480E00895E091740162 -:101FF000F0917501309721F00280F381E02D099472 -:102000000895E0917401F0917501309721F00480FA -:10201000F581E02D099408952091720130917301AA -:102020008217930771F09093730180937201E0918E -:102030007401F0917501309721F00680F781E02D51 -:1020400009940895209170013091710182179307CE -:1020500071F09093710180937001E0917401F0919F -:102060007501309721F00084F185E02D09940895E1 -:1020700008950C9438100E94921B0E9433030C9414 -:10208000541C9F92AF92BF92CF92DF92EF92FF9239 -:102090000F931F93CF93DF9300D000D000D0CDB724 -:1020A000DEB70E944B030DE010E0AA24A394B12CEC -:1020B000902E802F0E943904980129583E4F6901C3 -:1020C000F901F080F826A1F40150110988F78FEF8B -:1020D00089838A831B820E949B1B8160782F9D834A -:1020E0008C8349815A816B818D810E94D8102FC0C9 -:1020F0009091DA0191FF04C08E830E943F048E818B -:1021000025E030E0A501022E01C0440F0A94EAF751 -:10211000E42E4F21C1F029839A828E2191E009F4A7 -:1021200090E09B830E949B1B8160782F9D838C8312 -:1021300049815A816B818D810E94D810F60180817E -:10214000E826E08204C021503109E0F6BDCF0E94AC -:102150003B1F109176010E94EA0F1817B9F00E94F8 -:10216000EA0F8093760126960FB6F894DEBF0FBE75 -:10217000CDBFDF91CF911F910F91FF90EF90DF9036 -:10218000CF90BF90AF909F900C94E30826960FB627 -:10219000F894DEBF0FBECDBFDF91CF911F910F919D -:1021A000FF90EF90DF90CF90BF90AF909F900895F9 -:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82 -:1021C0000FBECDBF4F83588769877A878B87DE0123 -:1021D000119686E0FD0111928A95E9F785E0FE01EE -:1021E000379601900D928A95E1F749815A816B816A -:1021F0007C818D819E810E9421172B960FB6F894C9 -:10220000DEBF0FBECDBFDF91CF910895CF9388235E -:1022100009F4C2C0C82F823859F40E94EA0F81FD28 -:10222000BBC089E30E94FB190E94C81A89E30CC055 -:10223000833879F40E94EA0F80FDAEC083E50E94E6 -:10224000FB190E94C81A83E50E943D1ACF910C9495 -:10225000C81A843859F40E94EA0F82FD9DC087E4B1 -:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6 -:10227000813A48F48C2F0E947E2181118DC08C2FD1 -:102280000E94FB19E3CF80E28C0F883048F4C770BE -:1022900081E001C0880FCA95EAF70E94811AD6CF63 -:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB -:1022B00083E890E005C081E890E002C082E890E009 -:1022C000CF910C940C1088E58C0F833108F064C01A -:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118 -:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186 -:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106 -:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173 -:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB -:1023200038C082EE90E035C089EE90E032C08AEE8F -:1023300090E02FC085EB90E02CC086EB90E029C0A8 -:1023400087EB90E026C08CEC90E023C08DEC90E011 -:1023500020C083E891E01DC08AE891E01AC082E9BC -:1023600091E017C084E991E014C081E292E011C0CD -:1023700083E292E00EC084E292E00BC085E292E03C -:1023800008C086E292E005C087E292E002C08AE2DD -:1023900092E0CF910C942210CF910895882309F4F4 -:1023A0004BC0823859F40E94EA0F81FF45C089E38F -:1023B0000E94FB190E94C81A89E30CC0833871F48B -:1023C0000E94EA0F80FF38C083E50E94FB190E943B -:1023D000C81A83E50E943D1A0C94C81A843859F42F -:1023E0000E94EA0F82FF28C087E40E94FB190E9426 -:1023F000C81A87E4EFCF9CEF980F913A58F390E218 -:10240000980F983050F4877091E001C0990F8A9529 -:10241000EAF7892F0E94871ADFCF9BE5980F933048 -:1024200020F480E090E00C940C10885A833120F462 -:1024300080E090E00C9422100895882321F00E94FF -:10244000811A0C94C81A0895882321F00E94871AD3 -:102450000C94C81A08957F928F929F92AF92BF9268 -:10246000CF92DF92EF92FF920F931F93CF93DF9360 -:102470001F92CDB7DEB77C01C62E772EFC010581F9 -:1024800002950F70128111110E949E1A0E94F41978 -:10249000882379F0112369F080E28C0D883048F0B0 -:1024A00082E00E94DD190E94F41991E0D82ED9260D -:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C -:1024C0000C94B323872D807F072D0F70882311F084 -:1024D0000295007F112389F0002309F490C180E266 -:1024E0008C0D883020F4802F0E94811A03C0802F29 -:1024F0000E94911A0E94C81A82C18C2D0E94CE118E -:10250000002309F495C180E28C0D883020F4802FDF -:102510000E94871A03C0802F0E94971A0E94C81A2F -:1025200087C1972D907F872D8F70903211F0829503 -:10253000807FCC2021F0F1E0CF16B1F01EC0112336 -:1025400049F0002309F414C1013009F011C10E94BF -:10255000B11A6EC1002319F0013009F469C18983F1 -:102560000E94B41A89810AC1112321F0023008F0B7 -:102570005FC1FEC001115CC101C1112321F0002324 -:1025800009F4F6C03CC1002309F4F8C03EC1872D10 -:1025900086958695837090E0009719F0019761F019 -:1025A00047C1112321F08C2D972D937002C080E03C -:1025B00090E00E940C103CC1112321F08C2D972D2E -:1025C000937002C080E090E00E94221031C18C2DF7 -:1025D000112319F00E94431E02C00E94AB1E0E94EC -:1025E000301F26C1872D837009F052C0111120C100 -:1025F0008C2D829586958770880F880F9C2D9F70F3 -:10260000892E912CA12CB12C082E04C0880C991C69 -:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041 -:1026200020E030E0B901A80104C0440F551F661F27 -:10263000771F8A95D2F7CB01BA0160957095809586 -:10264000909503C060E070E0CB01272D269526957C -:10265000237030E02230310569F02330310589F0F4 -:10266000682979298A299B292130310571F00E9436 -:102670006918DEC0682979298A299B290E94851852 -:10268000D7C00E946918C501B4010E944D18D0C07E -:10269000112319F0872D817001C08695882309F4D4 -:1026A000C7C08C2D829586958770880F880F9C2DCA -:1026B0009F70892E912CA12CB12C082E04C0880C5F -:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC -:1026D00010E020E030E0B901A80104C0440F551F0C -:1026E000661F771F8A95D2F7CB01BA016095709566 -:1026F0008095909503C060E070E0CB01272D269572 -:1027000026952370422F50E04230510569F0433046 -:10271000510589F0682979298A299B294130510579 -:1027200071F00E94431984C0682979298A299B295C -:102730000E945F197DC00E944319C501B4010E9427 -:10274000271976C08C2D90E0FC01E05EF109E5319F -:10275000F10508F050C0E059FF4F0C94B3230C2D45 -:102760000F70872D8F71112331F00E94C018802FB8 -:102770000E941D125DC00E94E118802F0E94241249 -:1027800057C0112339F0011153C0872D8F710E945A -:1027900006194EC0023008F04BC0F7CF112339F0B4 -:1027A000872D8F710E94C01843C01123C9F3872D54 -:1027B0008F710E94E1183CC0112329F0872D8F7181 -:1027C0000E94AB1835C00E94A11832C0112351F0ED -:1027D000172D1F71812F0E94C01863E0812F0E9466 -:1027E000D41926C081E00E94DD19023008F182E090 -:1027F0000E94DD191DC0112331F0002389F28C2DB8 -:102800000E94061115C0002391F28C2D0E94CE115A -:102810000FC0472D4F706C2DC7010E9415050E94F7 -:10282000C51706C0472D4F706C2DC7010E94F205D9 -:10283000DD20F9F00E94D01980FD1BC0F701128243 -:102840000E94CA190E94C018C7010E9448140E9421 -:10285000CA190F90DF91CF911F910F91FF90EF90C8 -:10286000DF90CF90BF90AF909F908F907F900C940F -:10287000E1180F90DF91CF911F910F91FF90EF9092 -:10288000DF90CF90BF90AF909F908F907F900895F2 -:102890000F931F93CF93DF93EC01888199812B8154 -:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B -:1028B0000E944A05882371F0688179818A810E948B -:1028C000C6198C010E947B190E944218B801CE01E2 -:1028D0000E942B12DF91CF911F910F9108950E94BA -:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471 -:1028F000E11F0E94301F80E090E00E940C1080E0F9 -:1029000090E00C9422100E948E1A0C946F140E9476 -:10291000BB19292F22952F7030E02C3031054CF453 -:102920002A3031056CF42250310922303105A8F4E7 -:1029300007C02C30310569F02F30310551F00DC042 -:10294000803F69F018F4803E40F409C0843F29F4C8 -:1029500006C093FB882780F9089580E0089581E000 -:102960000895CF93DF9300D000D01F92CDB7DEB78C -:102970000F900F900F900F900F90DF91CF910895CF -:10298000CF93DF9300D000D000D0CDB7DEB726962E -:102990000FB6F894DEBF0FBECDBFDF91CF91089583 -:1029A0001F93CF93DF93C091850116E0809186013C -:1029B000C81799F0D0E01C9FF0011D9FF00D112465 -:1029C000E957FE4F408151816281738184819581F5 -:1029D0000E94C0142196C770E9CFDF91CF911F915B -:1029E00008954091B7015091B8016091B90170917B -:1029F000BA018091BB019091BC010C94C0148091EC -:102A0000BC0182958F7009F054C08091B901882370 -:102A100009F44FC080918501A09186016091B701B2 -:102A20007091B8014091BA015091BB01B6E08A178C -:102A300009F43FC090E041155105C1F17F3F11F409 -:102A40006F3FA1F1B89FF001B99FF00D1124E95734 -:102A5000FE4F218172132AC02081621327C0228178 -:102A6000211124C0238134812417350710F421500B -:102A70003109241B350B283C3105C0F42091BC01E1 -:102A80002F7020612093BC0126E0289FF001299F30 -:102A9000F00D1124E457FE4F80818F708061808398 -:102AA00087EB91E00E9448140C94D0140196877033 -:102AB000BECF0895CF92DF92EF92FF920F931F93B4 -:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32 -:102AD0000FBECDBF8C0185E0F801DE011D9601908F -:102AE0000D928A95E1F7D8014C9111965C9111975E -:102AF00012966C9112971396CD90DC9014973091AA -:102B0000B7017091B8018091BA019091BB01009713 -:102B100009F46BC17F3F19F43F3F09F466C1E090AF -:102B2000B901EE2009F4C0C02091BC01C816D90635 -:102B300028F0F601E81BF90BCF0104C080959095B1 -:102B40008C0D9D1DFF24F394883C910578F0F12CA9 -:102B5000207F09F0C6C07C2DD98AC88A89890E9445 -:102B6000B11487EB91E00E944814B1C0822F807F9E -:102B700009F046C0751314C0341312C0611110C09F -:102B80002F7020612093BC010E94F11487EB91E02B -:102B90000E9448148091BC01D80115968C932EC0D8 -:102BA000CD2819F15F3F11F44F3FF9F0F62E611176 -:102BB0001CC0809185012091860136E0821709F4BE -:102BC0005AC090E0389FF001399FF00D1124E95769 -:102BD000FE4F7181571306C07081471303C0728185 -:102BE000711103C001968770E9CFF62E662309F4B0 -:102BF00018C18091BC0181608093BC01F12C11C18E -:102C0000751308C0341306C0611104C08091BC0163 -:102C1000D801C3C04D875E878D859E856A8B0E94D3 -:102C200087146A898823E1F16623D1F12091BC01E0 -:102C3000822F82958F7090E0029774F08091B70197 -:102C40009091B80198878F831986DB86CA862C8776 -:102C5000CE0107960E94481486E0F801A7EBB1E088 -:102C600001900D928A95E1F70E94FF140E94F114E1 -:102C7000FF24F394D6C04D875E878D859E850E9484 -:102C8000BB19292F22952F7030E0223031050CF02E -:102C9000BCC09F7009F0B6C0805E883008F4C1C027 -:102CA000C8010E944814E4CFC816D90608F453C0DE -:102CB000F601E81BF90BCF01883C910508F450C0E0 -:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E -:102CD000F1E086E0DF011D928A95E9F70E94F11488 -:102CE000A0C0751314C0341312C0611110C08091BC -:102CF000BC01F8018583C8010E94481486E0E7EB17 -:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C -:102D10005E878D859E856A8B0E9487146A898823C9 -:102D200009F4BECF662309F4BBCF2091BC01822FEA -:102D300082958F7090E002970CF48ECF8091B7014E -:102D40009091B8019A8389831B82DD82CC822E8385 -:102D5000CE0101967FCF809590958C0D9D1DACCFB7 -:102D6000F62E662309F49CCF75132EC034132CC0A5 -:102D70002091BC0120FD1FC0822F82958F70D9F059 -:102D8000D80115962C9315978F3049F08F5F982FA7 -:102D90009295907F822F8F70892B15968C93C80106 -:102DA0000E94481486E0F801A7EBB1E001900D9273 -:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7 -:102DC0000D928A95E1F72DC04D875E878D859E8592 -:102DD0000E948714811140CF8091BC018160809353 -:102DE000BC01C8010E9448141CC0662309F458CFD6 -:102DF0004D875E878D859E850E948714882309F400 -:102E00004FCF2ACF811148CF0CC0243031050CF0B0 -:102E100047CF9F7009F440CFF8019581907F09F06A -:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D -:102E3000DF91CF911F910F91FF90EF90DF90CF9096 -:102E400008951F93CF93DF93CDB7DEB72C970FB6BE -:102E5000F894DEBF0FBECDBF4F83588769877A874E -:102E60008B879C87CE0107960E945A15882369F0AC -:102E70008F8198852A853B85232BF1F19F3F09F0AF -:102E800063C08F3F09F060C037C086E0FE0137960F -:102E9000DE01119601900D928A95E1F76F81788598 -:102EA000EA85FB85309741F17F3F11F46F3F21F1B7 -:102EB0002091860130E0C9010196877099274091E1 -:102EC000850150E08417950709F447C069837A8328 -:102ED000FD83EC8396E0929FD001939FB00D112467 -:102EE000A957BE4FFE01319601900D929A95E1F7D8 -:102EF000809386010E94D01416E080918501909104 -:102F000086018917C1F1189FC001112489579E4F6E -:102F10000E945A15882379F1E09185011E9FF001E6 -:102F20001124E957FE4F4081518162817381848170 -:102F300095810E94C0148091850190E00196877070 -:102F4000992780938501D9CF4F81588569857A85E6 -:102F50008B859C850E94C014CFCF0E948314109251 -:102F6000860110928501E7EBF1E086E0DF011D921A -:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45 -:102F8000CDBFDF91CF911F910895EF92FF920F93E4 -:102F90001F93CF93DF938C01009709F46CC0F12C41 -:102FA000EE24E394E8012196F8018491843740F4FB -:102FB000843008F051C0813081F0823019F15BC05B -:102FC000853709F444C0A8F19CE7980F903708F0C2 -:102FD00052C08F770E94CE1141C00E5F1F4FFE017D -:102FE000C49180E28C0F883048F4C7708E2D01C0E8 -:102FF000880FCA95EAF70E94A11A14C08C2F0E946C -:1030000006112DC00E5F1F4FFE01C49180E28C0F90 -:10301000883058F4C7708E2D01C0880FCA95EAF722 -:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3 -:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3 -:103040009FE00197F1F700C00000C150F6CF0E5F7E -:103050001F4FFE01F49003C00E9406118E018F2DB8 -:10306000882309F49FCFEFE9FFE03197F1F700C023 -:1030700000008150F5CFDF91CF911F910F91FF900C -:10308000EF90089508956093C1017093C2018093F9 -:10309000C3019093C4010C946F140F931F9300917C -:1030A000C1011091C2012091C3013091C401DC0122 -:1030B000CB01802B912BA22BB32B8093C10190933A -:1030C000C201A093C301B093C4011F910F910C944E -:1030D0006F140F931F930091C1011091C2012091B1 -:1030E000C3013091C401DC01CB0180239123A223D1 -:1030F000B3238093C1019093C201A093C301B09305 -:10310000C4011F910F910C946F140F931F930091A2 -:10311000C1011091C2012091C3013091C401DC01B1 -:10312000CB0180279127A227B3278093C1019093D9 -:10313000C201A093C301B093C4011F910F910C94DD -:103140006F141092BD011092BE011092BF01109237 -:10315000C0010C946F1441E050E060E070E004C0E6 -:10316000440F551F661F771F8A95D2F74093BD0104 -:103170005093BE016093BF017093C0010C946F1413 -:1031800041E050E060E070E004C0440F551F661F4E -:10319000771F8A95D2F78091BD019091BE01A091D1 -:1031A000BF01B091C001482B592B6A2B7B2B409358 -:1031B000BD015093BE016093BF017093C0010C9498 -:1031C0006F1441E050E060E070E004C0440F551F10 -:1031D000661F771F8A95D2F7409550956095709538 -:1031E0008091BD019091BE01A091BF01B091C0013D -:1031F000482359236A237B234093BD015093BE018A -:103200006093BF017093C0010C946F1441E050E0D3 -:1032100060E070E004C0440F551F661F771F8A9559 -:10322000D2F78091BD019091BE01A091BF01B091F4 -:10323000C001482759276A277B274093BD01509337 -:10324000BE016093BF017093C0010C946F140F9383 -:103250001F930091BD011091BE012091BF013091DB -:10326000C001DC01CB01802B912BA22BB32B8093CF -:10327000BD019093BE01A093BF01B093C0011F9107 -:103280000F910C946F140F931F930091BD01109137 -:10329000BE012091BF013091C001DC01CB01802330 -:1032A0009123A223B3238093BD019093BE01A093E9 -:1032B000BF01B093C0011F910F910C946F140F9335 -:1032C0001F930091BD011091BE012091BF0130916B -:1032D000C001DC01CB0180279127A227B32780936F -:1032E000BD019093BE01A093BF01B093C0011F9197 -:1032F0000F910C946F140895CF92DF92EF92FF928A -:103300000F931F93CF93DF938C01C090C101D09096 -:10331000C201E090C301F090C4018091BD01909181 -:10332000BE01A091BF01B091C001C82AD92AEA2AE2 -:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520 -:10334000A795979587950A94D2F780FF06C0B80194 -:103350008C2F0E944808019721F4219760F780E0A4 -:1033600001C08C2FDF91CF911F910F91FF90EF90B3 -:10337000DF90CF900895CF93DF93EC010E947C19EA -:10338000BE010E944808DF91CF910895CB010E94B1 -:10339000BB1908958091C5018595859585950895FA -:1033A0008091C5018770089598E0899F900111244C -:1033B000262B2093C5010C94C0182091C50180953F -:1033C00082238093C501982F977069F430E0482FCD -:1033D000552747FD50952417350729F08595859584 -:1033E00085950C94E11808959091C501977081E03E -:1033F00009F480E0089590910C01992321F09091B7 -:103400000D01911109C020910E0130910F01F901B8 -:1034100032969FEF40E01FC0982F9695969596950F -:103420009F3050F5E0910E01F0910F01E90FF11D71 -:10343000877021E030E0A90102C0440F551F8A9532 -:10344000E2F7CA019181892B818308959F3F39F06A -:103450004F5F4E3041F051915813F8CF0DC05111CC -:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08 -:1034700097FDFA9582830895089590910C01992300 -:1034800021F090910D01911109C020910E01309110 -:103490000F01F9013296205F3F4F1FC0982F96957C -:1034A000969596959F30F0F4E0910E01F0910F0102 -:1034B000E90FF11D877021E030E0A90102C0440F3F -:1034C000551F8A95E2F7CA018095918189238183EE -:1034D00008953196E217F30729F090819813F9CFF8 -:1034E0001082F7CF089581E090E0E0910E01F09115 -:1034F0000F01E80FF91F1082019680319105A9F79D -:1035000008959091D901892B8093D90108958095D0 -:103510009091D90189238093D90108951092D901FE -:1035200008959091D801892B8093D80108958095B2 -:103530009091D80189238093D80108951092D801E1 -:1035400008959091D701892B8093D7010895809594 -:103550009091D70189238093D70108951092D701C4 -:1035600008958093C60108951092C6010895809130 -:103570000E0190910F01FC0131969C01205F3F4F9D -:1035800080E0919191118F5FE217F307D1F70895D1 -:10359000E0910E01F0910F018091D9018083E091BB -:1035A0000E01F0910F0190818091D801892B8083C9 -:1035B000E0910E01F0910F0190818091D701892B4C -:1035C00080838091C601882361F0E0910E01F09123 -:1035D0000F019081892B80830E94B71A811110926C -:1035E000C60180910E0190910F010C94F60F20E01E -:1035F000009739F0AC0141505109842395232F5F86 -:10360000F7CF822F0895CF92DF92EF92FF926C0155 -:10361000EE24FF24C114D104E104F10421F0C70118 -:10362000B60120E101C020E0C72ED82EE92EFF24EC -:10363000C114D104E104F10419F0285FC701B601F7 -:103640006B017C0154E0F694E794D794C7945A95A3 -:10365000D1F7C114D104E104F10419F02C5FC701C2 -:10366000B6016B017C0142E0F694E794D794C794CD -:103670004A95D1F7C114D104E104F10419F02E5F89 -:10368000C701B601DC01CB01B695A7959795879543 -:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5 -:1036A000DF90CF9008958091F101843021F1109244 -:1036B000DB0120E488E190E00FB6F894A8958093B0 -:1036C00060000FBE2093600080E00E94E30883B793 -:1036D000817F846083BF83B7816083BF789488953E -:1036E00083B78E7F83BF88E10FB6F8948093600024 -:1036F000109260000FBE0895089508950E947C1BEB -:103700000E944B030E947D1B0E94400491E08111A6 -:1037100001C090E0892F08950E9483140E94EA0F4F -:103720000C94E30882E084BD93E095BD9AEF97BDC9 -:1037300080936E0008952FB7F8948091DC019091EA -:10374000DD01A091DE01B091DF012FBF0895CF927E -:10375000DF92EF92FF920F931F932FB7F89440914F -:10376000DC015091DD016091DE017091DF012FBF1E -:103770006A017B01EE24FF248C0120E030E0C016BA -:10378000D106E206F30610F4415051099A01281BB4 -:10379000390BC9011F910F91FF90EF90DF90CF90EF -:1037A00008951F920F920FB60F9211248F939F933B -:1037B000AF93BF938091DC019091DD01A091DE0178 -:1037C000B091DF010196A11DB11D8093DC019093A2 -:1037D000DD01A093DE01B093DF01BF91AF919F9116 -:1037E0008F910F900FBE0F901F9018950E94E70CBD -:1037F000F8942FEF87EA91E6215080409040E1F75E -:1038000000C0000087E090EBDC018093FB01909307 -:10381000FC01A093FD01B093FE019CE088E10FB68E -:10382000F894A895809360000FBE90936000FFCF3E -:10383000EF92FF920F931F93CF93DF93D82FCDE09A -:103840008C2F0E94390405E010E0E82EF12CC7010E -:10385000002E02C0959587950A94E2F780FF09C073 -:10386000602F7C2F80E00E94F305D81302C081E016 -:1038700006C00150110958F7C15010F780E0DF91E0 -:10388000CF911F910F91FF90EF900895CF93C82F84 -:103890008CE20E94181C882321F08C2FCF910C946D -:1038A000181C80E0CF910895CF930E949B1D811139 -:1038B00002C00E94811DC5E6C15049F00E944B0321 -:1038C0008FE39CE90197F1F700C00000F5CF89E292 -:1038D0000E94461C811113C18AE20E94461C81117C -:1038E0000E94811D85E00E94461C81110E94F61BEA -:1038F0000E94A61D8093DA0187E00E94461C88235F -:10390000A9F18BE10E94461C882351F08091DA01D5 -:1039100081FB222720F991E0922790FB81F90EC0CC -:103920008EE00E94461C882361F08091DA0182FBC0 -:10393000222720F991E0922790FB82F98093DA0107 -:1039400015C080E10E94461C9091DA01882341F065 -:1039500093FB222720F981E0822780FB93F904C0A2 -:10396000892F809580FB90F99093DA018091DA019C -:103970000E94AA1D0E94B81D8093FA0180EE0E9449 -:10398000461C882341F08091FA01982F909590FB76 -:1039900080F98093FA0189E30E94461C882359F03C -:1039A0008091FA0181FB222720F991E0922790FB78 -:1039B00081F98093FA0182EE0E94461C882359F017 -:1039C0008091FA0182FB222720F991E0922790FB57 -:1039D00082F98093FA0186EE0E94461C882359F0F2 -:1039E0008091FA0183FB222720F991E0922790FB36 -:1039F00083F98093FA0183EE0E94461C882359F0D4 -:103A00008091FA0184FB222720F991E0922790FB14 -:103A100084F98093FA0185E30E94461C882359F0BB -:103A20008091FA0185FB222720F991E0922790FBF3 -:103A300085F98093FA0181E30E94461C882359F09E -:103A40008091FA0186FB222720F991E0922790FBD2 -:103A500086F98093FA0181E10E94461C882359F07F -:103A60008091FA0187FB222720F991E0922790FBB1 -:103A700087F98093FA018091FA010E94BC1D809120 -:103A8000FA0187FB882780F980930D0187E20E9465 -:103A9000461CC82F8EE10E94461C8111C2608FE136 -:103AA0000E94461C8111C46080E20E94461C811164 -:103AB000C86081E20E94461C8111C06182E20E94BE -:103AC000461C8111C06283E20E94461C8111C064C1 -:103AD00084E20E94461C882311F0C06802C0CC23F7 -:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4 -:103AF000682F70E080E090E0CF910C944318CF9154 -:103B000008956DEE7EEF80E090E00E94ED2360E08E -:103B100082E090E00E94DB2360E083E090E00E947E -:103B2000DB2360E084E090E00E94DB2360E085E03E -:103B300090E00C94DB2380E090E00E94D52321E00C -:103B40008D3E9E4F09F020E0822F089582E090E0A4 -:103B50000C94CD23682F82E090E00C94DB2383E06B -:103B600090E00C94CD23682F83E090E00C94DB234D -:103B700084E090E00C94CD23682F84E090E00C94D6 -:103B8000DB238091E20180FF0BC06091130185E08F -:103B9000689FB001112475956795759567952BC041 -:103BA00081FF09C06091130185E0689FB001112475 -:103BB0007595679520C082FF07C06091130185E06D -:103BC000689FB001112417C09091E3019923D1F0AF -:103BD00060911201961788F72091130185E0289FC4 -:103BE00090011124929FA001939F500D112470E029 -:103BF000CA010E949F236038710540F46115710568 -:103C000039F002C065E070E0862F08958FE70895CF -:103C100081E008958091E20180FF08C06091110168 -:103C200070E0759567957595679521C081FF06C011 -:103C30006091110170E07595679519C082FF04C00D -:103C40006091110170E010C09091E3019923C1F0DF -:103C5000609110019617A0F780911101899FC00112 -:103C6000112470E00E949F236038710528F46115CB -:103C7000710521F0862F08958FE7089581E008955A -:103C800061E070E0F4CF803F21F40E94C11D819576 -:103C900004C0813F29F40E94C11D8093E60108956C -:103CA000823F21F40E94C11D819504C0833F29F405 -:103CB0000E94C11D8093E5010895893F19F40E9477 -:103CC0000A1E05C08A3F31F40E940A1E8195809326 -:103CD000E70108958B3F21F40E940A1E819504C0DC -:103CE0008C3F29F40E940A1E8093E8010895843FC6 -:103CF00021F48091E401816017C0853F21F4809117 -:103D0000E401826011C0863F21F48091E401846067 -:103D10000BC0873F21F48091E401886005C0883F93 -:103D200031F48091E40180618093E40108958D3F36 -:103D300021F48091E20181600BC08E3F21F48091DB -:103D4000E201826005C08F3F29F48091E201846026 -:103D50008093E2010895803F39F48091E60187FF66 -:103D60006CC01092E60169C0813F29F48091E601A0 -:103D70001816BCF362C09091E501823F29F497FFC9 -:103D80005CC01092E50159C0833F19F41916CCF3B9 -:103D900054C0893F41F48091E70118160CF04DC0E2 -:103DA0001092E7014AC08A3F29F48091E70187FF1A -:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6 -:103DC0001092E8013AC08C3F29F48091E80118165E -:103DD000BCF333C0843F21F48091E4018E7F17C08F -:103DE000853F21F48091E4018D7F11C0863F21F44D -:103DF0008091E4018B7F0BC0873F21F48091E40127 -:103E0000877F05C0883F31F48091E4018F7E8093E5 -:103E1000E40113C08D3F21F48091E2018E7F0BC03D -:103E20008E3F21F48091E2018D7F05C08F3F29F400 -:103E30008091E2018B7F8093E2018091E501811105 -:103E40000EC08091E60181110AC08091E7018111C5 -:103E500006C08091E801811102C01092E30108952B -:103E600084EE91E00E9401100E949B1B9093E1015F -:103E70008093E00108951F93CF93DF938091E00139 -:103E80009091E1010E94A71BAC019091E30199235D -:103E900021F02091140130E006C0209115018AE044 -:103EA000289F900111244217530708F486C080917F -:103EB000E501C091E601D091E7011091E80181117F -:103EC00007C0C11176C0D11174C0111172C075C084 -:103ED0009F3F19F09F5F9093E301181624F40E940E -:103EE000C11D8093E5018091E50187FF05C00E9417 -:103EF000C11D81958093E5011C1624F40E94C11D0B -:103F00008093E6018091E60187FF05C00E94C11DF4 -:103F100081958093E6016091E501662339F1C091B6 -:103F2000E601CC2319F1772767FD7095872F972F2E -:103F30000E94B02223E333E343E35FE30E941423B0 -:103F40000E947D226093E5016C2F772767FD7095B5 -:103F5000872F972F0E94B02223E333E343E35FE3ED -:103F60000E9414230E947D226093E6011D1624F412 -:103F70000E940A1E8093E7018091E70187FF05C038 -:103F80000E940A1E81958093E701111624F40E9475 -:103F90000A1E8093E8018091E80187FF05C00E9416 -:103FA0000A1E81958093E801DF91CF911F910C94B7 -:103FB000301F9F3F09F08ECF96CFDF91CF911F9199 -:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE -:103FD0001092E3011092E2010895833081F128F4F8 -:103FE000813059F08230D1F00895853009F449C00C -:103FF000B8F1863009F456C0089580911501262F36 -:1040000030E0280F311D2F3F310524F4680F6093F5 -:10401000150108958FEF8093150108958091140183 -:10402000262F30E0280F311D2F3F310524F4680F73 -:104030006093140108958FEF809314010895809187 -:104040001301262F30E0280F311D2F3F310524F4B6 -:10405000680F6093130108958FEF80931301089503 -:1040600080911201262F30E0280F311D2F3F31059E -:1040700024F4680F6093120108958FEF809312016A -:10408000089580911101262F30E0280F311D2F3F18 -:10409000310524F4680F6093110108958FEF809328 -:1040A0001101089580911001262F30E0280F311D55 -:1040B0002F3F310524F4680F6093100108958FEFAE -:1040C000809310010895833011F128F4813049F074 -:1040D000823091F00895853081F120F18630C1F170 -:1040E000089580911501681720F4861B80931501AF -:1040F000089510921501089580911401681720F415 -:10410000861B8093140108951092140108958091E4 -:104110001301681720F4861B8093130108951092F1 -:104120001301089580911201681720F4861B809373 -:1041300012010895109212010895809111016817DB -:1041400020F4861B809311010895109211010895A7 -:1041500080911001681720F4861B80931001089548 -:104160001092100108950F931F938D3109F46BC0C5 -:1041700008F03FC08E3009F47FC0C0F4873009F4E6 -:1041800069C068F4863009F0B1C08091DA01817F9E -:104190008E7F8093DA0181E08093EA01A8C08830A5 -:1041A00009F4A2C08B3009F49FC0A0C0863109F485 -:1041B0009BC078F4803109F472C0813109F096C057 -:1041C0000E94831490910D0181E0892780930D0155 -:1041D0008BC0893109F488C08B3109F087C0809188 -:1041E000DA0181FB222720F991E0922790FB81F9E7 -:1041F0004CC0853309F470C048F4873209F46CC0B0 -:1042000008F459C0893209F467C070C0833438F4A7 -:104210008A3308F04EC0883309F466C067C083341F -:1042200009F45AC0883409F061C00E9483140FEF6A -:1042300013ED20E3015010402040E1F700C00000E2 -:104240000E94F61B51C00E9437220E94EA0F0E9472 -:10425000E3084AC09091DA01892F8095817080FB34 -:1042600090F929F0966098609093DA0140C0997FA8 -:10427000977F9093DA0138C08091DA0182FB222780 -:1042800020F991E0922790FB82F98093DA0199233B -:1042900059F18091DA0181608093DA0125C0809123 -:1042A000DA0183FB222720F991E0922790FB83F922 -:1042B000ECCF895301C08D5141E050E060E070E0E7 -:1042C0008A019B0104C0000F111F221F331F8A9512 -:1042D000D2F7C901B80104C061E070E080E090E06D -:1042E0000E9443180E94831481E001C080E01F9166 -:1042F0000F91089580E0089580E00895CF93C82F2E -:104300008091EA01813079F018F08230E9F187C0BC -:10431000E0910E01F0910F018081813169F08232CC -:1043200009F07FC009C0E0910E01F0910F0180817A -:10433000813111F0823261F48C2F0E947A21811137 -:1043400004C08C2F0E94B3201DC081E090E01AC0F1 -:104350008C2F0E947C21811114C0C43179F048F463 -:10436000CB3079F0C03109F060C082E08093EA017F -:1043700008C0C93219F0C83321F057C01092EA01C1 -:1043800054C081E0817053C0C93289F118F5C4313D -:1043900071F1A8F4C73009F046C08AE08093150196 -:1043A00094E19093140193E0909313018093120190 -:1043B00088E08093110188E28093100134C0CE51CF -:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB -:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC -:1043E00013C0C13579F0C235F1F461E00DC08091A0 -:1043F000E901882319F01092E90115C081E080934A -:10440000EA0115C061E006C08091E9010E94ED1F3C -:104410000AC06AE08091E9010E94632004C0109202 -:10442000EA0180E004C081E002C080E0ABCFCF9120 -:104430000895E1E8F0E08081886080838081816078 -:1044400080838FB7F89493E09093890090ED9093D8 -:1044500088008FBF0895EFE6F0E08081826080835E -:104460000895EFE6F0E080818D7F80830895EFE688 -:10447000F0E0908182E08927808308951F920F9257 -:104480000FB60F9211242F933F934F935F936F9327 -:104490007F938F939F93AF93BF93EF93FF938091FD -:1044A000EB019091EC0101969093EC018093EB016C -:1044B000811103C082E00E94E308E091EC01E695DF -:1044C000E695F0E0EC54FB4FE4918091EB018E1304 -:1044D00003C080E00E94E308FF91EF91BF91AF918C -:1044E0009F918F917F916F915F914F913F912F910C -:1044F0000F900FBE0F901F90189504D06894B111C3 -:104500008DC0089570D088F09F5790F0B92F9927EB -:10451000B751A0F0D1F0660F771F881F991F1AF0CE -:10452000BA95C9F712C0B13081F077D0B1E00895E3 -:1045300074C0672F782F8827B85F39F0B93FCCF364 -:10454000869577956795B395D9F73EF490958095C4 -:10455000709561957F4F8F4F9F4F0895E89409C0E4 -:1045600097FB3EF490958095709561957F4F8F4FA6 -:104570009F4F9923A9F0F92F96E9BB279395F695BC -:10458000879577956795B795F111F8CFFAF4BB0F3A -:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E -:1045A000882311F096E911C0772321F09EE8872F28 -:1045B000762F05C0662371F096E8862F70E060E0E4 -:1045C0002AF09A95660F771F881FDAF7880F96955D -:1045D000879597F9089557FD9058440F551F59F046 -:1045E0005F3F71F04795880F97FB991F61F09F3FE0 -:1045F00079F087950895121613061406551FF2CF09 -:104600004695F1DF08C0161617061806991FF1CF58 -:1046100086957105610508940895E894BB2766277F -:104620007727CB0197F908950BD078C069D028F08F -:104630006ED018F0952309F05AC05FC01124EECF58 -:10464000CADFA0F3959FD1F3950F50E0551F629FED -:10465000F001729FBB27F00DB11D639FAA27F00DDB -:10466000B11DAA1F649F6627B00DA11D661F829F02 -:104670002227B00DA11D621F739FB00DA11D621FE7 -:10468000839FA00D611D221F749F3327A00D611D04 -:10469000231F849F600D211D822F762F6A2F1124E6 -:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39 -:1046B000BB1F661F771F881F91505040A9F79E3F70 -:1046C000510570F014C0AACF5F3FECF3983EDCF3C5 -:1046D000869577956795B795F795E7959F5FC1F7AD -:1046E000FE2B880F911D9695879597F9089597F958 -:1046F0009F6780E870E060E008959FEF80EC089588 -:1047000000240A94161617061806090608950024B0 -:104710000A9412161306140605060895092E03942A -:10472000000C11F4882352F0BB0F40F4BF2B11F49E -:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF -:10474000072E16F4009407D077FD09D00E94B923F4 -:1047500007FC05D03EF4909581959F4F0895709584 -:1047600061957F4F0895EE0FFF1F0590F491E02DA6 -:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8 -:10478000B70710F0A61BB70B881F991F5A95A9F7FA -:1047900080959095BC01CD010895F999FECF92BD09 -:1047A00081BDF89A992780B50895A8E1B0E042E06C -:1047B00050E00C94F523262FF999FECF92BD81BDD0 -:1047C000F89A019700B4021639F01FBA20BD0FB64F -:1047D000F894FA9AF99A0FBE08950196272F0E942D -:1047E000DC230C94DB23DC01CB01FC01F999FECF27 -:1047F00006C0F2BDE1BDF89A319600B40D92415069 -:0A4800005040B8F70895F894FFCF78 -:10480A000220E508730950091C09E8080101C701DB -:10481A0028080A03140A3F4D363975042804F2039E -:10482A00B9034C0365037E039703010203040506DB -:04483A000708090062 -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/dragon788/compiled.hex b/keyboards/ergodox_ez/keymaps/dragon788/compiled.hex deleted file mode 100644 index e46a5054b..000000000 --- a/keyboards/ergodox_ez/keymaps/dragon788/compiled.hex +++ /dev/null @@ -1,1169 +0,0 @@ -:100000000C94CE020C9412030C9412030C94120361 -:100010000C9412030C9412030C9412030C9412030C -:100020000C9412030C9412030C94B60D0C94880ECD -:100030000C9412030C9412030C9412030C941203EC -:100040000C9412030C9492220C9412030C9412033D -:100050000C9412030C94251C0C9412030C941203A0 -:100060000C9412030C9412030C9412030C941203BC -:100070000C9412030C9412030C9412030C941203AC -:100080000C9412030C9412030C9412030C9412039C -:100090000C9412030C9412030C9412030C9412038C -:1000A0000C9412030C9412030C941203F50E170F08 -:1000B0000510170F05105C0F7F0F0510D40FE70F09 -:1000C000B612B612E512E5121B133B136C146C1436 -:1000D00046136C14F613F6135D146C146C1466144A -:1000E0000314031403140314031403140314031458 -:1000F0000314031403140314031403140314031448 -:1001000015142214291430143A140000F0A12E0002 -:100110002B002971E100C10000001E001400040042 -:100120001D003500E2001F001A0016001B003400FD -:100130004C00200008000700060050002A002100A3 -:100140001500090019004F424D00220017000A0057 -:10015000050000006500E30001540000007F00007E -:100160004A00035402540000007700004B002300B3 -:100170001C000B00110000002971240018000D0064 -:10018000100052424E0025000C000E0036005100B7 -:100190002C00260012000F0037002F002800270037 -:1001A00013003300380030002B712D003100347102 -:1001B000E500C10000000100010001000100010094 -:1001C00000003A001E0220022202010001003B0052 -:1001D0001F0221022302010001003C002F0226021F -:1001E0002F00010001003D00300227023000010015 -:1001F00001003E003102350035020000010001001F -:1002000001000000010000000100010001000000E9 -:100210000100000001003F005200510024020000D4 -:10022000B2004000240021001E0001000100410036 -:10023000250022001F003700010042002600230095 -:10024000200027000100430025022E0231002E006D -:1002500001004400450001000100010000000050C1 -:100260000100010001000100000001000100010087 -:1002700001000100AB0001000100F20001000100DB -:10028000F5000100F500F00001000100F40001009C -:10029000F400F10001000100AE0001000100F300D4 -:1002A0000100000001000100010000000100000049 -:1002B000AC0001000100000001000000A9000100E5 -:1002C0000100F2000100000001000100F400F10053 -:1002D00001000100A8000100F500F000010001008C -:1002E000B70001000100F30001000100B6000100A9 -:1002F0000100010001000100AA000100010001004D -:1003000001000100000000000000000000000000EB -:10031000000000001E0014000400000000000000A7 -:100320001F001A001600000019000000200008003D -:100330000700000006000000210015000900000071 -:1003400000000000220017000A000000C4000000A6 -:10035000000000000000000000000100000000009C -:10036000000000000100000023001C000B00000042 -:1003700001000000240018000D0001000100000031 -:1003800025000C000E0001001000000026001200E5 -:100390000F000000110000002700130033000000D0 -:1003A0000000010001002F003400000000001603CF -:1003B0004500720067006F0044006F007800200065 -:1003C00045005A00000016034500720067006F00E8 -:1003D00044006F007800200045005A00000004032C -:1003E000090409026D00040100A0FA0904000001DB -:1003F00003010100092111010001223F00070581CD -:100400000308000A09040100010301020009211187 -:10041000010001224D000705820308000A090402B9 -:10042000000103000000092111010001223600072C -:1004300005830308000A0904030001030000000902 -:100440002111010001223900070584031000011267 -:1004500001100100000008EDFE0713010001020079 -:100460000105010906A101050719E029E715002585 -:100470000195087501810205081901290595057581 -:10048000019102950175039101050719002977155E -:10049000002501957875018102C005010980A1013F -:1004A000850216010026B7001A01002AB700751050 -:1004B00095018100C0050C0901A101850316010009 -:1004C000269C021A01002A9C02751095018100C029 -:1004D00005010902A1010901A10005091901290568 -:1004E00015002501950575018102950175038101AE -:1004F0000501093009311581257F950275088106AE -:1005000009381581257F950175088106050C0A3883 -:10051000021581257F950175088106C0C005010976 -:1005200006A101050719E029E715002501950875C1 -:1005300001810295017508810105081901290595B8 -:1005400005750191029501750391010507190029AF -:10055000FF150025FF950675088100C0000000000A -:1005600000000000000000010204060A0F17202C02 -:100570003A4A5D71879DB3C7DAE9F5FCFFFCF5E9FE -:10058000DAC7B39D87715D4A3A2C20170F0A06041B -:1005900002010000000000000000000011241FBE46 -:1005A000CFEFDAE0DEBFCDBF04B603FE24C08091FA -:1005B000FB019091FC01A091FD01B091FE018730FB -:1005C000904BA740B04BB9F41092FB011092FC0184 -:1005D0001092FD011092FE0114BE84B7877F84BF84 -:1005E00088E10FB6F89480936000109260000FBE0F -:1005F000E0E0FFE3099511E0A0E0B1E0E2EBF8E410 -:1006000002C005900D92A433B107D9F711E0A4E31D -:10061000B1E001C01D92AB3FB107E1F70E94FA0AB9 -:100620000C9457240C9400001092B9008AE0809337 -:10063000B800089594EA9093BC009091BC0097FF95 -:10064000FCCF9091B900987F983021F0903111F053 -:1006500081E008958093BB0084E88093BC00809182 -:10066000BC0087FFFCCF8091B900887F883111F0F2 -:10067000803471F780E0089584E98093BC00809114 -:10068000BC0084FDFCCF08958093BB0084E8809378 -:10069000BC008091BC0087FFFCCF9091B900987F8F -:1006A00081E0983209F480E0089584E88093BC00EA -:1006B0008091BC0087FFFCCF8091BB0008958091A2 -:1006C0000101811115C080E40E941A038093010189 -:1006D00081110CC082E10E944403809301018111C9 -:1006E00005C08FEF0E944403809301010E943C03E8 -:1006F00084B1807F84B985B1807F85B98AB1837FD9 -:100700008AB98BB1837F8BB93E98469808950E9431 -:100710001A05809301010E945F0380B38C7080BB37 -:1007200081B3836F81BBA5E3B1E0E3E4F1E08EE048 -:100730008E0F11921D928E13FCCF0C940405BF9264 -:10074000CF92DF92EF92FF920F931F93CF93DF939D -:1007500080910101882379F0809134018F5F80932B -:100760003401811108C00E941A0580930101811192 -:1007700002C00E94AC0405E311E0C0E0D0E0DD243B -:10078000D39482E0C82EEE24E394F12CC730D10537 -:1007900000F580910101811164C080E40E941A0378 -:1007A00080930101811112C082E10E944403809371 -:1007B000010181110BC0C7010C2E01C0880F0A94E2 -:1007C000EAF780950E944403809301010E943C0354 -:1007D00048C0CA30A1F028F4C83059F0C93061F0DF -:1007E00005C0CC3089F070F0CD3089F0209A28987F -:1007F00010C0219A29980DC0229A2A980AC0239ADB -:100800002B9807C0529A01C0539A5B9802C03E9A37 -:10081000469890EA9A95F1F79FB1799902C082E0E3 -:1008200001C080E091709D25982B7C9902C084E0E6 -:1008300001C080E0892B7D9902C038E001C030E022 -:10084000832B7E9902C020E101C020E0822B9FB162 -:100850009095991F9927991F9295990F907E892BB2 -:100860000FC080910101811149C080E40E941A03E8 -:1008700080930101882379F1B12C0E943C038B2DD8 -:10088000F8019081981719F08083C09200010E94AE -:100890005F0321960F5F1F4FCE30D10509F076CF51 -:1008A00080910001882361F18150809300018823A9 -:1008B00039F08FE99FE00197F1F700C0000020C0F8 -:1008C000A3E4B1E0E5E3F1E0CF01825F91919D9374 -:1008D0008E13FCCF15C083E10E9444038093010175 -:1008E0008111CACF81E40E941A0380930101811112 -:1008F000C3CF0E945503B82EB094BFCF80E0C0CFC5 -:100900000E94AA0481E0DF91CF911F910F91FF9087 -:10091000EF90DF90CF90BF900895E82FF0E0ED5B6F -:10092000FE4F8081089508950F931F93CF93DF9317 -:10093000C3E4D1E010E00C2F025F899190E00E94A7 -:100940004B1B180F0C13F9CF812FDF91CF911F9103 -:100950000F9108950C947A0556985E9825982D98D5 -:1009600026982E9827982F988FEF90E090938900E3 -:100970008093880090938B0080938A0090938D00E1 -:1009800080938C00259A2D9A2FEF80E792E02150DA -:1009900080409040E1F700C00000269A2E9A2FEF89 -:1009A00080E792E0215080409040E1F700C00000D5 -:1009B000279A2F9A2FEF80E792E0215080409040B5 -:1009C000E1F700C0000025982D982FEF80E792E016 -:1009D000215080409040E1F700C0000026982E98FA -:1009E0002FEF80E792E0215080409040E1F700C077 -:1009F000000027982F9856985E9825982D9826984D -:100A00002E9827982F98089589EA8093800089E08E -:100A10008093810024982C983F988AB18F748AB96A -:100A20006E98479A8BB1806B8BB9769A0E94AC0412 -:100A30000C94790580E2809301018091510181112C -:100A40000EC00E94140381E0809351012FEF83EDCB -:100A500090E3215080409040E1F700C0000080E426 -:100A60000E941A038093010181112EC00E94440349 -:100A700080930101811128C00E94440380930101E9 -:100A8000811122C08FE30E944403809301018111F0 -:100A90001BC00E943C0380E40E941A038093010162 -:100AA000811112C08CE00E944403809301018111E6 -:100AB0000BC00E94440380930101811105C08FE3A4 -:100AC0000E944403809301010E943C038091010134 -:100AD000089561110BC0FC018281882321F085EE0D -:100AE0000E945A1103C085EE0E94221280E090E01D -:100AF000089508956091BD017091BE018091BF017C -:100B00009091C0010E94571B56985E9825982D9889 -:100B100026982E9827982F98813019F0823021F04E -:100B20000895259A2D9A0895269A2E9A089581E07F -:100B3000089581E008950C94990508950F931F93EB -:100B4000CF93DF938C01FC01C081D181CE010E9443 -:100B5000D019BE010E944706EC01B8010E949B0516 -:100B6000882309F48DC0F8018281882309F44AC0E2 -:100B700080915D0181111FC0C431F0E5DF0709F0EC -:100B800051C00E949D0581E080935D010E94EF1B92 -:100B900090935C0180935B01109254011092560176 -:100BA00010925501109258011092570110925A015B -:100BB0001092590165C080915B0190915C010E9487 -:100BC000FB1B883C910570F480915401E82FF0E004 -:100BD000EE0FFF1FEB5AFE4FD183C0838F5F8093D0 -:100BE00054014EC0C43880E5D80721F0C538D0453F -:100BF00001F13AC0F8018281882341F0109252013C -:100C000082E01EC0C438E0E5DE0759F5809152014C -:100C1000811106C086E20E945A1186E20E942212C9 -:100C200082E01CC0C438F0E5DF0741F3C538D04589 -:100C3000D9F4F8018281882331F01092530180E2C7 -:100C40000E9471121DC080915301811106C087E27C -:100C50000E945A1187E20E94221280E20E947812BA -:100C60000FC0C538D04529F381E0809352018093AD -:100C70005301C801DF91CF911F910F910C949705FB -:100C800080E0DF91CF911F910F910895089596E034 -:100C9000799FF001112494E5899FE00DF11D112445 -:100CA000E60FF11DEE0FFF1FE25FFE4F859194915D -:100CB0000895880F991FFC01E657F04085919491A3 -:100CC0000895880F991FFC01E65FFE4F859194916E -:100CD00008950F931F93CF93DF93EC01811520E3C9 -:100CE000920750F5C11580E2D80708F0C3C0CB3B8E -:100CF000D10590F4C83AD10508F06AC0C53AD105CB -:100D000008F05BC0C430D10508F0D0C1219709F0CC -:100D1000CAC101E010E00AC2CF3FD10511F008F0CE -:100D2000C5C1C03FD10508F0A2C0CE01805E9109C7 -:100D3000089708F4BBC1B7C1C13090E5D90709F4E1 -:100D4000A2C020F5C0318FE4D80770F4C11590E43B -:100D5000D90708F094C0C11521E3D20708F0A3C158 -:100D6000DD278E01106CE2C1C115D04509F09BC191 -:100D70000E94D7148FEF94E32CE0815090402040E4 -:100D8000E1F700C000000E944A1CD0C1C11597E5E0 -:100D9000D90758F4C03121E5D20708F01CC1C4318D -:100DA00080E5D80708F475C07EC1CE019057811543 -:100DB000904108F078C1DF7073C1C53AD10509F4DC -:100DC00077C1C63AD10509F076C102E810E4AEC198 -:100DD000C83AD10509F472C1C93AD10509F471C103 -:100DE000CA3AD10509F470C1CB3AD10509F46FC1F3 -:100DF000CC3AD10509F46EC1CD3AD10509F46DC1E3 -:100E0000C03BD10509F46CC1CE3AD10509F46BC1E0 -:100E1000CF3AD10509F46AC1C13BD10509F469C1D2 -:100E2000C23BD10509F468C1C33BD10509F467C1D0 -:100E3000C43BD10509F466C1C53BD10509F465C1C0 -:100E4000C63BD10509F464C1C73BD10509F463C1B0 -:100E5000C83BD10509F462C1C93BD10509F461C1A0 -:100E6000CA3BD10509F460C100E014E45FC18E0102 -:100E700010655CC1CE019F700E94610658C1DF7091 -:100E80008E01106A53C18091DA0181608093DA018A -:100E90004DC10E94EF1D811102C00E94D51D0E940C -:100EA0000C1E90E09093FB018093FA01C23080E524 -:100EB000D80721F48091FA01816086C0C43090E5A2 -:100EC000D90721F48091FA0182607EC0C63020E506 -:100ED000D20721F48091FA01846076C0C83080E5A1 -:100EE000D80719F48091FA0127C0CA3090E5D907D4 -:100EF00021F48091FA01806167C0CC3020E5D207EF -:100F000021F48091FA0180625FC0CE3080E5D8077D -:100F100021F48091FA01806457C0C03190E5D9076F -:100F200021F48091FA0180684FC0C23120E5D207D8 -:100F300029F48091FA018460886046C0C33080E55E -:100F4000D80721F48091FA018E7F3EC0C53090E52C -:100F5000D90721F48091FA018D7F36C0C73020E592 -:100F6000D20721F48091FA018B7F2EC0C93080E531 -:100F7000D80719F48091FA0126C0CB3090E5D90743 -:100F800021F48091FA018F7E1FC0CD3020E5D20779 -:100F900021F48091FA018F7D17C0CF3080E5D8070A -:100FA00021F48091FA018F7B0FC0C13190E5D90700 -:100FB00021F48091FA018F7707C0C331D04531F415 -:100FC0008091FA018B7F877F8093FA018091FA01EB -:100FD0000E94101EABC08D2F99278F7099278130EA -:100FE0009105D9F49E012370332702C0880F991F01 -:100FF0002A95E2F79C688E0144E0000F111F4A9584 -:10100000E1F700271370802B912B53E0CC0FDD1FED -:101010005A95E1F7C076DD272FC08230910531F473 -:10102000DC2FCC278E01016F106A80C083309105C0 -:1010300069F4CE018370992701E010E002C0000F2F -:10104000111F8A95E2F7C8019C680FC08430910592 -:10105000B9F4CE018370992701E010E002C0000FBF -:10106000111F8A95E2F7C8019A6823E0CC0FDD1FB3 -:101070002A95E1F7C07ED7708C010C2B1D2B56C032 -:101080008530910531F4DC2FCC278E01046F106A76 -:101090004DC0069709F04AC0CF71DD27DC2FCC2761 -:1010A0008E01106243C000E010E040C08E013EC0DF -:1010B00001E810E43BC003E810E438C002EE14E499 -:1010C00035C009EE14E432C00AEE14E42FC005EB7B -:1010D00014E42CC006EB14E429C007EB14E426C08A -:1010E0000CEC14E423C00DEC14E420C003E815E478 -:1010F0001DC00AE815E41AC002E915E417C004E9A6 -:1011000015E414C001E216E411C003E216E40EC0B7 -:1011100004E216E40BC005E216E408C006E216E499 -:1011200005C007E216E402C00AE216E4C801DF9136 -:10113000CF911F910F91089596E0799FF0011124AE -:1011400094E5899FE00DF11D1124E60FF11DEE0FCE -:10115000FF1FE25FFE4F85919491803E9105E0F480 -:10116000803C910558F58133910509F46FC048F42E -:101170008932910509F463C08A32910509F46DC082 -:1011800072C089339105E9F082389105D1F0853339 -:10119000910509F44DC067C0833E910581F138F493 -:1011A000803E9105B9F0823E9105D9F05CC0863E43 -:1011B000910561F1873E9105A1F155C00E94590644 -:1011C00008952091FA0120FD02C021FF4CC080EE5D -:1011D00090E049C08091FA0180FFF9CF89E390E067 -:1011E00042C08091FA0182FF0EC08091FA0184FF13 -:1011F00003C080E090E037C083EE90E034C080917F -:10120000FA0182FFF2CF82EE90E02DC08091FA01C8 -:1012100083FF0BC08091FA0184FDEBCF87EE90E055 -:1012200022C08091FA0183FFF5CF86EE90E01BC0CB -:101230008091FA0185FF07C089E290E014C0809197 -:10124000FA0185FFF9CF85E390E00DC08091FA01A6 -:1012500086FF07C08AE290E006C08091FA0186FF0F -:10126000F9CF81E390E00E946906089508950C94F7 -:10127000360980916E010895CF93DF9300D01F92BD -:10128000CDB7DEB79C018091F101843019F593E070 -:1012900099833B832A839093E9008FEF9091E80034 -:1012A000815095FD06C095ED9A95F1F700008111EA -:1012B000F5CF8091E80085FF0DC040E050E063E08D -:1012C00070E0CE0101960E94A60B8091E8008E7717 -:1012D0008093E8000F900F900F90DF91CF910895C9 -:1012E000CF93DF9300D01F92CDB7DEB72091F101ED -:1012F000243021F522E029839B838A8383E0809335 -:10130000E9008FEF9091E800815095FD06C095EDC2 -:101310009A95F1F700008111F5CF8091E80085FFE3 -:101320000DC040E050E063E070E0CE0101960E9405 -:10133000A60B8091E8008E778093E8000F900F90C5 -:101340000F90DF91CF9108952091F1012430F1F4B5 -:1013500022E02093E9002FEF3091E800215035FD85 -:1013600006C035ED3A95F1F700002111F5CF209137 -:10137000E80025FF0BC040E050E065E070E00E940F -:10138000A60B8091E8008E778093E8000895CF93B4 -:10139000DF93EC019091F101943009F046C0809107 -:1013A0000C018823D9F080910D018823B9F0909326 -:1013B000E9008FEF9091E800815095FD06C095E11E -:1013C0009A95F1F700008111F5CF8091E80085FF33 -:1013D0002CC040E050E060E170E017C081E08093F5 -:1013E000E9008FEF9091E800815095FD06C095EDE2 -:1013F0009A95F1F700008111F5CF8091E80085FF03 -:1014000014C040E050E068E070E0CE010E94A60BFE -:101410008091E8008E778093E80080E1FE01AEE5E0 -:10142000B1E001900D928A95E1F7DF91CF91089597 -:101430008091F001811109C00E943B0D0E94980D1E -:101440008091E20084608093E20008951092F001A0 -:10145000089508950C947F220E94E01B0E9485222B -:101460000E943E100C94370942E061EC81E00E943A -:10147000B50C42E061EC82E00E94B50C42E061EC08 -:1014800083E00E94B50C42E161EC84E00C94B50C61 -:101490008091F301833009F455C030F4813071F04C -:1014A000823009F48EC008958A3009F47AC08B30F6 -:1014B00009F460C0893009F09CC020C08091F2011D -:1014C000813A09F096C08091E800877F8093E80018 -:1014D0008091F6019091F701892B21F460E18EE56E -:1014E00091E003C060E080E090E070E00E94F10BCA -:1014F0008091E8008B778093E80008958091F20155 -:10150000813209F076C08091F6019091F701009741 -:1015100019F0039709F06DC08091E800877F8093F0 -:10152000E8008091E80082FD05C08091F101811101 -:10153000F8CF5FC08091F10080936E018091E80048 -:101540008B7753C08091F201813A09F052C08091AB -:10155000F6019091F701892B09F04BC08091E800CA -:10156000877F8093E8008091E80080FFFCCF809126 -:101570000C0136C08091F2018132D9F58091F601DB -:101580009091F701892BA9F58091E800877F8093DE -:10159000E8000E94EA0C8091F40180930C010C9405 -:1015A000D7148091F201813221F58091E800877F84 -:1015B0008093E8000E94EA0C8091F50180936F010E -:1015C00008958091F201813AA1F48091E800877F2B -:1015D0008093E8008091E80080FFFCCF80916F014C -:1015E0008093F1008091E8008E778093E8000C945E -:1015F000EA0C089584B7877F84BF88E10FB6F8941A -:1016000080936000109260000FBE90E080E80FB6FB -:10161000F89480936100909361000FBE0E948D103A -:101620000E943B0D0E94980D8091E200846080939F -:10163000E20078940E941E100E948F1082E091E0D8 -:101640000E9439100E946D228091F101853069F469 -:101650000E94A71B8091EF018823B1F30E94D21B47 -:10166000882391F30E94900BEFCF0E949510ECCF4E -:10167000292F332723303105C9F064F42130310597 -:1016800081F02230310509F043C08DE690E022EE72 -:1016900033E042C021323105F1F02232310541F10F -:1016A00037C082E190E02FE434E036C099278130E2 -:1016B000910541F08230910541F0892B49F5EEED1D -:1016C000F3E005C0E6ECF3E002C0EEEAF3E084915B -:1016D00090E09F0121C06430D8F4E62FF0E0EE0FD7 -:1016E000FF1FEE5DFE4F2081318189E090E014C044 -:1016F000643070F470E0FB01EE0FFF1FE65EFE4FFA -:1017000020813181FB01EA5EFE4F808190E004C0C0 -:1017100080E090E020E030E0FA01318320830895FA -:1017200080E189BD82E189BD09B400FEFDCF8091D1 -:10173000D8008F7D8093D8008091E00082608093F4 -:10174000E0008091E00081FDFCCF0895CF92DF9210 -:10175000EF92FF920F931F93CF93DF93EC018B01D6 -:101760006A010E94090D811133C0C114D10439F0FE -:10177000F60180819181081B190BC80FD91FE12C3C -:10178000F12C0115110519F18091E80085FD16C0B5 -:101790008091E8008E778093E800C114D10449F06D -:1017A000F60180819181E80EF91EF182E08285E0E8 -:1017B0000FC00E94090D882321F30AC089918093EC -:1017C000F10001501109FFEFEF1AFF0ADACF80E0B4 -:1017D000DF91CF911F910F91FF90EF90DF90CF900D -:1017E00008952091F8013091F9012617370748F044 -:1017F0006115710539F42091E8002E772093E800F7 -:1018000001C0B90140E061157105A9F12091F10114 -:10181000222309F443C0253009F442C02091E80096 -:1018200023FD40C02091E80022FD32C02091E80055 -:1018300020FFE9CF4091F3002091F20030E0342BFB -:10184000FC01CF016115710559F02830310540F4D4 -:1018500081918093F100615071092F5F3F4FF1CF6B -:1018600041E02830310509F040E02091E8002E7772 -:101870002093E800C8CF4111C9CF0AC08091F1017F -:10188000882361F0853061F08091E80083FD0AC013 -:101890008091E80082FFF2CF80E0089582E0089511 -:1018A00083E0089581E008952091F8013091F901D5 -:1018B0002617370748F06115710539F42091E800C3 -:1018C0002E772093E80001C0B901FC0120E06115EA -:1018D000710591F18091F101882309F440C08530B0 -:1018E00009F43FC08091E80083FD3DC08091E8008D -:1018F00082FD2FC08091E80080FFE9CF2091F300A6 -:101900008091F20090E0922B6115710559F08830BA -:10191000910540F424912093F100319661507109B2 -:101920000196F2CF21E0089709F020E08091E800CD -:101930008E778093E800CBCF2111CCCF0AC0809165 -:10194000F101882361F0853061F08091E80083FD2A -:101950000AC08091E80082FFF2CF80E0089582E023 -:10196000089583E0089581E00895982F973058F501 -:101970009093E900981739F07091EC002091ED00F8 -:101980005091F00003C0242F762F50E021FF19C0A2 -:101990003091EB003E7F3093EB003091ED003D7FC6 -:1019A0003093ED003091EB0031603093EB00709399 -:1019B000EC002093ED005093F0002091EE0027FF03 -:1019C00007C09F5FD3CF8F708093E90081E00895B7 -:1019D00080E008958091F20187FF11C08091E800B6 -:1019E00082FD05C08091F1018111F8CF11C0809175 -:1019F000E8008B770BC08091F101882349F080913A -:101A0000E80080FFF8CF8091E8008E778093E800AF -:101A100008952091E4003091E50095E64091EC00B6 -:101A2000842F817040FF22C08091E80080FD1CC09F -:101A30008091F101882391F0853091F08091EB0045 -:101A400085FD10C04091E4005091E5004217530716 -:101A500029F39A01915011F784E0089582E00895E6 -:101A600083E0089581E0089580E008954091E800C2 -:101A700042FFDECF08950E94A90D0E94B10DE0EE55 -:101A8000F0E0808181608083E8EDF0E080818F77F5 -:101A9000808319BCA7EDB0E08C918E7F8C93808100 -:101AA0008F7E80831092F00108950F931F93CF9340 -:101AB000DF930E94A90D0E94B10DC8EDD0E088818E -:101AC0008F77888388818068888388818F7D8883E9 -:101AD00019BC1092F1011092ED011092EF011092D9 -:101AE000EE0100EE10E0F80180818B7F8083888119 -:101AF0008160888342E060E080E00E94B50CE1EE06 -:101B0000F0E080818E7F8083E2EEF0E08081816072 -:101B10008083808188608083F80180818E7F8083CC -:101B2000888180618883DF91CF911F910F91089503 -:101B3000E8EDF0E080818F7E8083E7EDF0E080814A -:101B40008160808384E082BF81E08093F0010C9407 -:101B5000550DE8EDF0E080818E7F80831092E200E9 -:101B600008951092DA001092E10008951F920F92EA -:101B70000FB60F9211242F933F934F935F936F9360 -:101B80007F938F939F93AF93BF93EF93FF93809136 -:101B9000E10082FF0BC08091E20082FF07C08091CC -:101BA000E1008B7F8093E1000E941D108091DA009C -:101BB00080FF1FC08091D80080FF1BC08091DA0099 -:101BC0008E7F8093DA008091D90080FF0DC080E184 -:101BD00089BD82E189BD09B400FEFDCF81E080931B -:101BE000F1010E94180A05C019BC1092F1010E946F -:101BF000260A8091E10080FF19C08091E20080FFF9 -:101C000015C08091E2008E7F8093E2008091E20017 -:101C100080618093E2008091D80080628093D80038 -:101C200019BC85E08093F1010E942A0A8091E100AD -:101C300084FF30C08091E20084FF2CC080E189BD28 -:101C400082E189BD09B400FEFDCF8091D8008F7D6F -:101C50008093D8008091E1008F7E8093E100809195 -:101C6000E2008F7E8093E2008091E20081608093A9 -:101C7000E2008091ED01882311F084E007C080919B -:101C8000E30087FD02C081E001C083E08093F101A1 -:101C90000E942C0A8091E10083FF29C08091E2001C -:101CA00083FF25C08091E100877F8093E10082E07F -:101CB0008093F1011092ED018091E1008E7F80937D -:101CC000E1008091E2008E7F8093E2008091E2004B -:101CD00080618093E20042E060E080E00E94B50C09 -:101CE0008091F00088608093F0000E94290AFF91A3 -:101CF000EF91BF91AF919F918F917F916F915F9184 -:101D00004F913F912F910F900FBE0F901F901895FC -:101D10001F920F920FB60F9211242F933F934F9360 -:101D20005F936F937F938F939F93AF93BF93CF9363 -:101D3000DF93EF93FF93C091E900CF708091EC00A7 -:101D4000D82FD17080FDD0E81092E9008091F0008A -:101D5000877F8093F00078940E94CC0E1092E90067 -:101D60008091F00088608093F000CD2BCF70C093FD -:101D7000E900FF91EF91DF91CF91BF91AF919F91DA -:101D80008F917F916F915F914F913F912F910F9024 -:101D90000FBE0F901F9018951F93CF93DF93CDB771 -:101DA000DEB7AA970FB6F894DEBF0FBECDBFE2EF45 -:101DB000F1E088E08E0F9091F10091938E13FBCFAC -:101DC0000E94480A8091E80083FF1FC18091F201C0 -:101DD0009091F301492F50E04A30510508F015C1A8 -:101DE000FA01EA5AFF4F0C940724803881F08238B8 -:101DF00009F00BC18091F6018F708093E90080910A -:101E0000EB0085FB882780F91092E90006C08091DD -:101E1000EE019091EF01911182609091E800977F1F -:101E20009093E8008093F1001092F100C8C0282F31 -:101E30002D7F09F0EAC0882319F0823061F0E5C0F7 -:101E40008091F401813009F0E0C0933009F080E026 -:101E50008093EF012BC08091F401811127C0809104 -:101E6000F6018F7009F4D1C08093E9002091EB0056 -:101E700020FF1CC0933021F48091EB00806214C0DD -:101E80009091EB0090619093EB0021E030E0A9018C -:101E900002C0440F551F8A95E2F74093EA00109262 -:101EA000EA008091EB0088608093EB001092E900DB -:101EB0008091E800877F86C08111A7C01091F4014E -:101EC0001F778091E3008078812B8093E3008091DD -:101ED000E800877F8093E8000E94EA0C8091E80088 -:101EE00080FFFCCF8091E30080688093E3001111B4 -:101EF00002C082E001C083E08093F10186C0805877 -:101F0000823008F082C08091F4019091F5018C3DFF -:101F100053E0950779F583E08A838AE289834FB796 -:101F2000F894DE01139620E03EE051E2E32FF0E06A -:101F300050935700E49120FF03C0E295EF703F5F9C -:101F4000EF708E2F90E0EA3010F0C79601C0C09677 -:101F50008D939D932F5F243149F74FBF8091E80007 -:101F6000877F8093E8006AE270E0CE0101960E94CC -:101F7000F10B14C0AE014F5F5F4F6091F6010E94FC -:101F8000380BBC01009709F440C09091E800977F9E -:101F90009093E80089819A810E94540C8091E80016 -:101FA0008B778093E80031C0803879F58091E80024 -:101FB000877F8093E8008091ED018093F10080910C -:101FC000E8008E778093E8000E94EA0C1EC0811121 -:101FD0001CC09091F4019230C0F48091E800877F9A -:101FE0008093E8009093ED010E94EA0C8091ED014E -:101FF000811106C08091E30087FD02C081E001C02D -:1020000084E08093F1010E94340A8091E80083FF0C -:102010000AC08091E800877F8093E8008091EB0000 -:1020200080628093EB00AA960FB6F894DEBF0FBED5 -:10203000CDBFDF91CF911F9108950895CF938091E7 -:10204000F1018823A1F0C091E900CF709091EC00DC -:10205000892F817090FD80E8C82B1092E900809153 -:10206000E80083FD0E94CC0ECF70C093E900CF91B1 -:10207000089590937501809374010895E09174011F -:10208000F0917501309721F00190F081E02D0994D5 -:1020900080E00895E0917401F0917501309721F08E -:1020A0000280F381E02D09940895E0917401F0918C -:1020B0007501309721F00480F581E02D0994089591 -:1020C00020917201309173018217930771F0909300 -:1020D000730180937201E0917401F0917501309762 -:1020E00021F00680F781E02D099408952091700178 -:1020F000309171018217930771F090937101809371 -:102100007001E0917401F0917501309721F0008425 -:10211000F185E02D0994089508950C948C100E9487 -:10212000E61B0E9487030C94A81C9F92AF92BF925B -:10213000CF92DF92EF92FF920F931F93CF93DF9393 -:1021400000D000D000D0CDB7DEB70E949F030DE0D5 -:1021500010E0AA24A394B12C902E802F0E948D040D -:10216000980129583E4F6901F901F080F826A1F441 -:102170000150110988F78FEF89838A831B820E949F -:10218000EF1B8160782F9D838C8349815A816B81FD -:102190008D810E942C112FC09091DA0191FF04C013 -:1021A0008E830E9493048E8125E030E0A501022EEB -:1021B00001C0440F0A94EAF7E42E4F21C1F02983AD -:1021C0009A828E2191E009F490E09B830E94EF1B9C -:1021D0008160782F9D838C8349815A816B818D81A9 -:1021E0000E942C11F6018081E826E08204C0215073 -:1021F0003109E0F6BDCF0E948F1F109176010E9439 -:102200003E101817B9F00E943E1080937601269672 -:102210000FB6F894DEBF0FBECDBFDF91CF911F91F7 -:102220000F91FF90EF90DF90CF90BF90AF909F9075 -:102230000C94370926960FB6F894DEBF0FBECDBFBB -:10224000DF91CF911F910F91FF90EF90DF90CF9092 -:10225000BF90AF909F900895CF93DF93CDB7DEB737 -:102260002B970FB6F894DEBF0FBECDBF4F835887B4 -:1022700069877A878B87DE01119686E0FD011192CE -:102280008A95E9F785E0FE01379601900D928A95CF -:10229000E1F749815A816B817C818D819E810E9409 -:1022A00075172B960FB6F894DEBF0FBECDBFDF912A -:1022B000CF910895CF93882309F4C2C0C82F8238E4 -:1022C00059F40E943E1081FDBBC089E30E944F1A61 -:1022D0000E941C1B89E30CC0833879F40E943E10D5 -:1022E00080FDAEC083E50E944F1A0E941C1B83E54F -:1022F0000E94911ACF910C941C1B843859F40E94AF -:102300003E1082FD9DC087E40E944F1A0E941C1B54 -:1023100087E4EECF8CEF8C0F813A48F48C2F0E942B -:10232000D22181118DC08C2F0E944F1AE3CF80E201 -:102330008C0F883048F4C77081E001C0880FCA95BF -:10234000EAF70E94D51AD6CF8BE58C0F833078F44C -:10235000C53A29F0C63A31F083E890E005C081E83B -:1023600090E002C082E890E0CF910C94601088E584 -:102370008C0F833108F064C0C83A39F1C93A41F191 -:10238000CA3A49F1CB3A51F1CC3A59F1CD3A61F11F -:10239000C03B69F1CE3A71F1CF3A79F1C13B81F19D -:1023A000C23B89F1C33B91F1C43B99F1C53BA1F11B -:1023B000C63BA9F1C73BB1F1C83BB9F1C93BC1F17B -:1023C000CA3BC9F180E090E038C082EE90E035C0B1 -:1023D00089EE90E032C08AEE90E02FC085EB90E06D -:1023E0002CC086EB90E029C087EB90E026C08CECF7 -:1023F00090E023C08DEC90E020C083E891E01DC008 -:102400008AE891E01AC082E991E017C084E991E07E -:1024100014C081E292E011C083E292E00EC084E237 -:1024200092E00BC085E292E008C086E292E005C02F -:1024300087E292E002C08AE292E0CF910C9476109B -:10244000CF910895882309F44BC0823859F40E9433 -:102450003E1081FF45C089E30E944F1A0E941C1B59 -:1024600089E30CC0833871F40E943E1080FF38C0AD -:1024700083E50E944F1A0E941C1B83E50E94911A5B -:102480000C941C1B843859F40E943E1082FF28C013 -:1024900087E40E944F1A0E941C1B87E4EFCF9CEF39 -:1024A000980F913A58F390E2980F983050F4877053 -:1024B00091E001C0990F8A95EAF7892F0E94DB1AF3 -:1024C000DFCF9BE5980F933020F480E090E00C94F0 -:1024D0006010885A833120F480E090E00C947610EC -:1024E0000895882321F00E94D51A0C941C1B08958E -:1024F000882321F00E94DB1A0C941C1B08957F9204 -:102500008F929F92AF92BF92CF92DF92EF92FF9203 -:102510000F931F93CF93DF931F92CDB7DEB77C014C -:10252000C62E772EFC01058102950F7012811111C4 -:102530000E94F21A0E94481A882379F0112369F048 -:1025400080E28C0D883048F082E00E94311A0E94AF -:10255000481A91E0D82ED92601C0D12CE72DE2955A -:10256000EF70F0E0E05AFF4F0C940724872D807F36 -:10257000072D0F70882311F00295007F112389F039 -:10258000002309F490C180E28C0D883020F4802F64 -:102590000E94D51A03C0802F0E94E51A0E941C1BBE -:1025A00082C18C2D0E942212002309F495C180E281 -:1025B0008C0D883020F4802F0E94DB1A03C0802FFE -:1025C0000E94EB1A0E941C1B87C1972D907F872DBC -:1025D0008F70903211F08295807FCC2021F0F1E055 -:1025E000CF16B1F01EC0112349F0002309F414C125 -:1025F000013009F011C10E94051B6EC1002319F0C2 -:10260000013009F469C189830E94081B89810AC1CC -:10261000112321F0023008F05FC1FEC001115CC13E -:1026200001C1112321F0002309F4F6C03CC10023AD -:1026300009F4F8C03EC1872D86958695837090E099 -:10264000009719F0019761F047C1112321F08C2DFB -:10265000972D937002C080E090E00E9460103CC112 -:10266000112321F08C2D972D937002C080E090E013 -:102670000E94761031C18C2D112319F00E94971EF3 -:1026800002C00E94FF1E0E94841F26C1872D8370F6 -:1026900009F052C0111120C18C2D8295869587704A -:1026A000880F880F9C2D9F70892E912CA12CB12C06 -:1026B000082E04C0880C991CAA1CBB1C0A94D2F7D3 -:1026C000C4FE14C00FE010E020E030E0B901A80122 -:1026D00004C0440F551F661F771F8A95D2F7CB01A0 -:1026E000BA01609570958095909503C060E070E0A8 -:1026F000CB01272D26952695237030E02230310519 -:1027000069F02330310589F0682979298A299B29C4 -:102710002130310571F00E94BD18DEC06829792989 -:102720008A299B290E94D918D7C00E94BD18C501CB -:10273000B4010E94A118D0C0112319F0872D817017 -:1027400001C08695882309F4C7C08C2D8295869593 -:102750008770880F880F9C2D9F70892E912CA12C3B -:10276000B12C082E04C0880C991CAA1CBB1C0A940E -:10277000D2F7C4FE14C00FE010E020E030E0B90151 -:10278000A80104C0440F551F661F771F8A95D2F712 -:10279000CB01BA01609570958095909503C060E07B -:1027A00070E0CB01272D269526952370422F50E00F -:1027B0004230510569F04330510589F06829792983 -:1027C0008A299B294130510571F00E94971984C0D4 -:1027D000682979298A299B290E94B3197DC00E9402 -:1027E0009719C501B4010E947B1976C08C2D90E029 -:1027F000FC01E05EF109E531F10508F050C0E05957 -:10280000FF4F0C9407240C2D0F70872D8F7111230F -:1028100031F00E941419802F0E9471125DC00E9435 -:102820003519802F0E94781257C0112339F00111F9 -:1028300053C0872D8F710E945A194EC0023008F084 -:102840004BC0F7CF112339F0872D8F710E941419D7 -:1028500043C01123C9F3872D8F710E9435193CC0E5 -:10286000112329F0872D8F710E94FF1835C00E9417 -:10287000F51832C0112351F0172D1F71812F0E94BE -:10288000141963E0812F0E94281A26C081E00E945B -:10289000311A023008F182E00E94311A1DC0112362 -:1028A00031F0002389F28C2D0E945A1115C00023AB -:1028B00091F28C2D0E9422120FC0472D4F706C2D6B -:1028C000C7010E9469050E94191806C0472D4F7064 -:1028D0006C2DC7010E944606DD20F9F00E94241AE3 -:1028E00080FD1BC0F70112820E941E1A0E9414195B -:1028F000C7010E949C140E941E1A0F90DF91CF9175 -:102900001F910F91FF90EF90DF90CF90BF90AF900D -:102910009F908F907F900C9435190F90DF91CF91FD -:102920001F910F91FF90EF90DF90CF90BF90AF90ED -:102930009F908F907F9008950F931F93CF93DF9375 -:10294000EC01888199812B813C81232BB9F09F3F39 -:1029500011F48F3F99F0CE010E949E05882371F0FB -:10296000688179818A810E941A1A8C010E94CF198C -:102970000E949618B801CE010E947F12DF91CF917C -:102980001F910F9108950E94F21A0E94021B0E944B -:10299000C71A0E941C1B0E9435200E94841F80E0E1 -:1029A00090E00E94601080E090E00C9476100E940D -:1029B000E21A0C94C3140E940F1A292F22952F702B -:1029C00030E02C3031054CF42A3031056CF42250C3 -:1029D000310922303105A8F407C02C30310569F0E7 -:1029E0002F30310551F00DC0803F69F018F4803E62 -:1029F00040F409C0843F29F406C093FB882780F97E -:102A0000089580E0089581E00895CF93DF9300D08A -:102A100000D01F92CDB7DEB70F900F900F900F90A0 -:102A20000F90DF91CF910895CF93DF9300D000D026 -:102A300000D0CDB7DEB726960FB6F894DEBF0FBE36 -:102A4000CDBFDF91CF9108951F93CF93DF93C091B6 -:102A5000850116E080918601C81799F0D0E01C9F8F -:102A6000F0011D9FF00D1124E957FE4F4081518167 -:102A700062817381848195810E9414152196C770AB -:102A8000E9CFDF91CF911F9108954091B701509107 -:102A9000B8016091B9017091BA018091BB01909128 -:102AA000BC010C9414158091BC0182958F7009F0C3 -:102AB00054C08091B901882309F44FC080918501E9 -:102AC000A09186016091B7017091B8014091BA015F -:102AD0005091BB01B6E08A1709F43FC090E0411560 -:102AE0005105C1F17F3F11F46F3FA1F1B89FF00193 -:102AF000B99FF00D1124E957FE4F218172132AC0AE -:102B00002081621327C02281211124C023813481B6 -:102B10002417350710F421503109241B350B283CAC -:102B20003105C0F42091BC012F7020612093BC01BD -:102B300026E0289FF001299FF00D1124E457FE4F55 -:102B400080818F708061808387EB91E00E949C146C -:102B50000C94241501968770BECF0895CF92DF9212 -:102B6000EF92FF920F931F93CF93DF93CDB7DEB712 -:102B700062970FB6F894DEBF0FBECDBF8C0185E023 -:102B8000F801DE011D9601900D928A95E1F7D801BA -:102B90004C9111965C91119712966C911297139625 -:102BA000CD90DC9014973091B7017091B80180916D -:102BB000BA019091BB01009709F46BC17F3F19F4F2 -:102BC0003F3F09F466C1E090B901EE2009F4C0C0AE -:102BD0002091BC01C816D90628F0F601E81BF90BB4 -:102BE000CF0104C0809590958C0D9D1DFF24F3941A -:102BF000883C910578F0F12C207F09F0C6C07C2D2F -:102C0000D98AC88A89890E94051587EB91E00E94BC -:102C10009C14B1C0822F807F09F046C0751314C088 -:102C2000341312C0611110C02F7020612093BC01B9 -:102C30000E94451587EB91E00E949C148091BC0195 -:102C4000D80115968C932EC0CD2819F15F3F11F451 -:102C50004F3FF9F0F62E61111CC080918501209143 -:102C6000860136E0821709F45AC090E0389FF001DF -:102C7000399FF00D1124E957FE4F7181571306C09B -:102C80007081471303C07281711103C00196877070 -:102C9000E9CFF62E662309F418C18091BC0181604A -:102CA0008093BC01F12C11C1751308C0341306C008 -:102CB000611104C08091BC01D801C3C04D875E87FB -:102CC0008D859E856A8B0E94DB146A898823E1F1D9 -:102CD0006623D1F12091BC01822F82958F7090E004 -:102CE000029774F08091B7019091B80198878F8313 -:102CF0001986DB86CA862C87CE0107960E949C1413 -:102D000086E0F801A7EBB1E001900D928A95E1F71A -:102D10000E9453150E944515FF24F394D6C04D8799 -:102D20005E878D859E850E940F1A292F22952F7010 -:102D300030E0223031050CF0BCC09F7009F0B6C005 -:102D4000805E883008F4C1C0C8010E949C14E4CFA2 -:102D5000C816D90608F453C0F601E81BF90BCF01D9 -:102D6000883C910508F450C0F12C7C2DD98AC88A82 -:102D700089890E940515E7EBF1E086E0DF011D92ED -:102D80008A95E9F70E944515A0C0751314C0341345 -:102D900012C0611110C08091BC01F8018583C80187 -:102DA0000E949C1486E0E7EBF1E0DF011D928A951A -:102DB000E9F7FE2C8AC04D875E878D859E856A8BDC -:102DC0000E94DB146A89882309F4BECF662309F4C4 -:102DD000BBCF2091BC01822F82958F7090E002972B -:102DE0000CF48ECF8091B7019091B8019A838983BA -:102DF0001B82DD82CC822E83CE0101967FCF80950F -:102E000090958C0D9D1DACCFF62E662309F49CCFBA -:102E100075132EC034132CC02091BC0120FD1FC09F -:102E2000822F82958F70D9F0D80115962C93159723 -:102E30008F3049F08F5F982F9295907F822F8F70FF -:102E4000892B15968C93C8010E949C1486E0F8018A -:102E5000A7EBB1E001900D928A95E1F793CF86E060 -:102E6000F801A7EBB1E001900D928A95E1F72DC032 -:102E70004D875E878D859E850E94DB14811140CF32 -:102E80008091BC0181608093BC01C8010E949C14A8 -:102E90001CC0662309F458CF4D875E878D859E85BB -:102EA0000E94DB14882309F44FCF2ACF811148CF29 -:102EB0000CC0243031050CF047CF9F7009F440CF8F -:102EC000F8019581907F09F03BCF8F2D62960FB668 -:102ED000F894DEBF0FBECDBFDF91CF911F910F9150 -:102EE000FF90EF90DF90CF9008951F93CF93DF93E3 -:102EF000CDB7DEB72C970FB6F894DEBF0FBECDBFAF -:102F00004F83588769877A878B879C87CE0107967E -:102F10000E94AE15882369F08F8198852A853B85AC -:102F2000232BF1F19F3F09F063C08F3F09F060C090 -:102F300037C086E0FE013796DE01119601900D92B2 -:102F40008A95E1F76F817885EA85FB85309741F1B5 -:102F50007F3F11F46F3F21F12091860130E0C901DC -:102F60000196877099274091850150E08417950755 -:102F700009F447C069837A83FD83EC8396E0929FCE -:102F8000D001939FB00D1124A957BE4FFE01319679 -:102F900001900D929A95E1F7809386010E94241585 -:102FA00016E080918501909186018917C1F1189FE3 -:102FB000C001112489579E4F0E94AE15882379F1D4 -:102FC000E09185011E9FF0011124E957FE4F4081D9 -:102FD000518162817381848195810E941415809151 -:102FE000850190E001968770992780938501D9CF5C -:102FF0004F81588569857A858B859C850E9414153B -:10300000CFCF0E94D7141092860110928501E7EB72 -:10301000F1E086E0DF011D928A95E9F7C1CF2C9699 -:103020000FB6F894DEBF0FBECDBFDF91CF911F91D9 -:103030000895EF92FF920F931F93CF93DF938C012C -:10304000009709F46CC0F12CEE24E394E80121967A -:10305000F8018491843740F4843008F051C0813005 -:1030600081F0823019F15BC0853709F444C0A8F1C2 -:103070009CE7980F903708F052C08F770E94221279 -:1030800041C00E5F1F4FFE01C49180E28C0F88305B -:1030900048F4C7708E2D01C0880FCA95EAF70E94C8 -:1030A000F51A14C08C2F0E945A112DC00E5F1F4FAD -:1030B000FE01C49180E28C0F883058F4C7708E2DC9 -:1030C00001C0880FCA95EAF70E94FB1A0E941C1BD8 -:1030D0001AC08C2F0E94221216C00E5F1F4FFE01D5 -:1030E000C491CC2381F08FE99FE00197F1F700C0F4 -:1030F0000000C150F6CF0E5F1F4FFE01F49003C0D9 -:103100000E945A118E018F2D882309F49FCFEFE979 -:10311000FFE03197F1F700C000008150F5CFDF915B -:10312000CF911F910F91FF90EF90089508956093B4 -:10313000C1017093C2018093C3019093C4010C94A8 -:10314000C3140F931F930091C1011091C2012091EC -:10315000C3013091C401DC01CB01802B912BA22B48 -:10316000B32B8093C1019093C201A093C301B0938C -:10317000C4011F910F910C94C3140F931F930091DE -:10318000C1011091C2012091C3013091C401DC0141 -:10319000CB0180239123A223B3238093C101909379 -:1031A000C201A093C301B093C4011F910F910C946D -:1031B000C3140F931F930091C1011091C20120917C -:1031C000C3013091C401DC01CB0180279127A227E4 -:1031D000B3278093C1019093C201A093C301B09320 -:1031E000C4011F910F910C94C3141092BD01109251 -:1031F000BE011092BF011092C0010C94C31441E0B3 -:1032000050E060E070E004C0440F551F661F771F58 -:103210008A95D2F74093BD015093BE016093BF01E0 -:103220007093C0010C94C31441E050E060E070E082 -:1032300004C0440F551F661F771F8A95D2F78091EF -:10324000BD019091BE01A091BF01B091C001482B7A -:10325000592B6A2B7B2B4093BD015093BE01609389 -:10326000BF017093C0010C94C31441E050E060E0D2 -:1032700070E004C0440F551F661F771F8A95D2F770 -:1032800040955095609570958091BD019091BE01DB -:10329000A091BF01B091C001482359236A237B2329 -:1032A0004093BD015093BE016093BF017093C00174 -:1032B0000C94C31441E050E060E070E004C0440F9F -:1032C000551F661F771F8A95D2F78091BD01909197 -:1032D000BE01A091BF01B091C001482759276A27BC -:1032E0007B274093BD015093BE016093BF01709353 -:1032F000C0010C94C3140F931F930091BD01109152 -:10330000BE012091BF013091C001DC01CB01802BB7 -:10331000912BA22BB32B8093BD019093BE01A09360 -:10332000BF01B093C0011F910F910C94C3140F9370 -:103330001F930091BD011091BE012091BF013091FA -:10334000C001DC01CB0180239123A223B32380930E -:10335000BD019093BE01A093BF01B093C0011F9126 -:103360000F910C94C3140F931F930091BD01109102 -:10337000BE012091BF013091C001DC01CB0180274B -:103380009127A227B3278093BD019093BE01A093FC -:10339000BF01B093C0011F910F910C94C314089505 -:1033A000CF92DF92EF92FF920F931F93CF93DF9311 -:1033B0008C01C090C101D090C201E090C301F09097 -:1033C000C4018091BD019091BE01A091BF01B09157 -:1033D000C001C82AD92AEA2AFB2ACFE1D0E0D701C6 -:1033E000C6010C2E04C0B695A795979587950A94AB -:1033F000D2F780FF06C0B8018C2F0E949C0801976D -:1034000021F4219760F780E001C08C2FDF91CF91EC -:103410001F910F91FF90EF90DF90CF900895CF9381 -:10342000DF93EC010E94D019BE010E949C08DF913D -:10343000CF910895CB010E940F1A08958091C50184 -:1034400085958595859508958091C5018770089526 -:1034500098E0899F90011124262B2093C5010C949C -:1034600014192091C501809582238093C501982F5E -:10347000977069F430E0482F552747FD5095241781 -:10348000350729F08595859585950C94351908950E -:103490009091C501977081E009F480E008959091C2 -:1034A0000C01992321F090910D01911109C02091F7 -:1034B0000E0130910F01F90132969FEF40E01FC0DD -:1034C000982F9695969596959F3050F5E0910E0120 -:1034D000F0910F01E90FF11D877021E030E0A901A3 -:1034E00002C0440F551F8A95E2F7CA019181892BCA -:1034F000818308959F3F39F04F5F4E3041F05191E5 -:103500005813F8CF0DC05111F7CF942FF5CF9F3F2F -:1035100039F0F901E90FF11D97FDFA9582830895BD -:10352000089590910C01992321F090910D01911132 -:1035300009C020910E0130910F01F9013296205FF0 -:103540003F4F1FC0982F9695969596959F30F0F413 -:10355000E0910E01F0910F01E90FF11D877021E05C -:1035600030E0A90102C0440F551F8A95E2F7CA0155 -:10357000809591818923818308953196E217F3071D -:1035800029F090819813F9CF1082F7CF089581E048 -:1035900090E0E0910E01F0910F01E80FF91F108209 -:1035A000019680319105A9F708959091D901892B51 -:1035B0008093D901089580959091D90189238093B2 -:1035C000D90108951092D90108959091D801892BBD -:1035D0008093D801089580959091D8018923809394 -:1035E000D80108951092D80108959091D701892BA0 -:1035F0008093D701089580959091D7018923809376 -:10360000D70108951092D70108958093C6010895B7 -:103610001092C601089580910E0190910F01FC0156 -:1036200031969C01205F3F4F80E0919191118F5F17 -:10363000E217F307D1F70895E0910E01F0910F0121 -:103640008091D9018083E0910E01F0910F0190816A -:103650008091D801892B8083E0910E01F0910F01B8 -:1036600090818091D701892B80838091C601882326 -:1036700061F0E0910E01F0910F019081892B808320 -:103680000E940B1B81111092C60180910E01909136 -:103690000F010C944A1020E0009739F0AC01415022 -:1036A0005109842395232F5FF7CF822F0895CF925E -:1036B000DF92EF92FF926C01EE24FF24C114D1043B -:1036C000E104F10421F0C701B60120E101C020E0CE -:1036D000C72ED82EE92EFF24C114D104E104F10431 -:1036E00019F0285FC701B6016B017C0154E0F69424 -:1036F000E794D794C7945A95D1F7C114D104E10443 -:10370000F10419F02C5FC701B6016B017C0142E0A6 -:10371000F694E794D794C7944A95D1F7C114D1048D -:10372000E104F10419F02E5FC701B601DC01CB0101 -:10373000B695A79597958795892B8A2B8B2B09F0A2 -:103740002F5F822FFF90EF90DF90CF9008958091B0 -:10375000F101843021F11092DB0120E488E190E056 -:103760000FB6F894A895809360000FBE2093600078 -:1037700080E00E94370983B7817F846083BF83B76D -:10378000816083BF7894889583B78E7F83BF88E1FB -:103790000FB6F89480936000109260000FBE0895F9 -:1037A000089508950E94D01B0E949F030E94D11B80 -:1037B0000E94940491E0811101C090E0892F089546 -:1037C0000E94D7140E943E100C94370982E084BDF9 -:1037D00093E095BD9AEF97BD80936E0008952FB743 -:1037E000F8948091DC019091DD01A091DE01B0910F -:1037F000DF012FBF0895CF92DF92EF92FF920F93D8 -:103800001F932FB7F8944091DC015091DD01609136 -:10381000DE017091DF012FBF6A017B01EE24FF24DE -:103820008C0120E030E0C016D106E206F30610F469 -:10383000415051099A01281B390BC9011F910F9161 -:10384000FF90EF90DF90CF9008951F920F920FB6E8 -:103850000F9211248F939F93AF93BF938091DC01BC -:103860009091DD01A091DE01B091DF010196A11DD3 -:10387000B11D8093DC019093DD01A093DE01B09334 -:10388000DF01BF91AF919F918F910F900FBE0F906D -:103890001F9018950E943B0DF8942FEF87EA91E650 -:1038A000215080409040E1F700C0000087E090EB9D -:1038B000DC018093FB019093FC01A093FD01B09388 -:1038C000FE019CE088E10FB6F894A8958093600013 -:1038D0000FBE90936000FFCFEF92FF920F931F9364 -:1038E000CF93DF93D82FCDE08C2F0E948D0405E07D -:1038F00010E0E82EF12CC701002E02C095958795A7 -:103900000A94E2F780FF09C0602F7C2F80E00E94BC -:103910004706D81302C081E006C00150110958F7CC -:10392000C15010F780E0DF91CF911F910F91FF9070 -:10393000EF900895CF93C82F8CE20E946C1C8823CF -:1039400021F08C2FCF910C946C1C80E0CF910895C6 -:10395000CF930E94EF1D811102C00E94D51DC5E6C4 -:10396000C15049F00E949F038FE39CE90197F1F752 -:1039700000C00000F5CF89E20E949A1C811113C19A -:103980008AE20E949A1C81110E94D51D85E00E9446 -:103990009A1C81110E944A1C0E94FA1D8093DA0130 -:1039A00087E00E949A1C8823A9F18BE10E949A1C4F -:1039B000882351F08091DA0181FB222720F991E0E0 -:1039C000922790FB81F90EC08EE00E949A1C8823FA -:1039D00061F08091DA0182FB222720F991E09227A1 -:1039E00090FB82F98093DA0115C080E10E949A1C55 -:1039F0009091DA01882341F093FB222720F981E09E -:103A0000822780FB93F904C0892F809580FB90F971 -:103A10009093DA018091DA010E94FE1D0E940C1E33 -:103A20008093FA0180EE0E949A1C882341F08091D5 -:103A3000FA01982F909590FB80F98093FA0189E321 -:103A40000E949A1C882359F08091FA0181FB222759 -:103A500020F991E0922790FB81F98093FA0182EEA0 -:103A60000E949A1C882359F08091FA0182FB222738 -:103A700020F991E0922790FB82F98093FA0186EE7B -:103A80000E949A1C882359F08091FA0183FB222717 -:103A900020F991E0922790FB83F98093FA0183EE5D -:103AA0000E949A1C882359F08091FA0184FB2227F6 -:103AB00020F991E0922790FB84F98093FA0185E345 -:103AC0000E949A1C882359F08091FA0185FB2227D5 -:103AD00020F991E0922790FB85F98093FA0181E328 -:103AE0000E949A1C882359F08091FA0186FB2227B4 -:103AF00020F991E0922790FB86F98093FA0181E109 -:103B00000E949A1C882359F08091FA0187FB222792 -:103B100020F991E0922790FB87F98093FA01809138 -:103B2000FA010E94101E8091FA0187FB882780F914 -:103B300080930D0187E20E949A1CC82F8EE10E949B -:103B40009A1C8111C2608FE10E949A1C8111C4608D -:103B500080E20E949A1C8111C86081E20E949A1C36 -:103B60008111C06182E20E949A1C8111C06283E2CD -:103B70000E949A1C8111C06484E20E949A1C8823CE -:103B800011F0C06802C0CC2329F08C2F0E94071EC0 -:103B90006C2F03C00E94031E682F70E080E090E04D -:103BA000CF910C949718CF9108956DEE7EEF80E041 -:103BB00090E00E94412460E082E090E00E942F2487 -:103BC00060E083E090E00E942F2460E084E090E0D9 -:103BD0000E942F2460E085E090E00C942F2480E088 -:103BE00090E00E94292421E08D3E9E4F09F020E0C4 -:103BF000822F089582E090E00C942124682F82E0C7 -:103C000090E00C942F2483E090E00C942124682F02 -:103C100083E090E00C942F2484E090E00C94212425 -:103C2000682F84E090E00C942F248091E20180FFC3 -:103C30000BC06091130185E0689FB0011124759558 -:103C40006795759567952BC081FF09C06091130139 -:103C500085E0689FB00111247595679520C082FFAB -:103C600007C06091130185E0689FB001112417C05F -:103C70009091E3019923D1F060911201961788F792 -:103C80002091130185E0289F90011124929FA001AB -:103C9000939F500D112470E0CA010E94F3236038F5 -:103CA000710540F46115710539F002C065E070E0FE -:103CB000862F08958FE7089581E008958091E201AD -:103CC00080FF08C06091110170E07595679575954A -:103CD000679521C081FF06C06091110170E0759564 -:103CE000679519C082FF04C06091110170E010C097 -:103CF0009091E3019923C1F0609110019617A0F70C -:103D000080911101899FC001112470E00E94F3236A -:103D10006038710528F46115710521F0862F08952A -:103D20008FE7089581E0089561E070E0F4CF803F6F -:103D300021F40E94151E819504C0813F29F40E9440 -:103D4000151E8093E6010895823F21F40E94151EFE -:103D5000819504C0833F29F40E94151E8093E501DC -:103D60000895893F19F40E945E1E05C08A3F31F410 -:103D70000E945E1E81958093E70108958B3F21F498 -:103D80000E945E1E819504C08C3F29F40E945E1E35 -:103D90008093E8010895843F21F48091E4018160DB -:103DA00017C0853F21F48091E401826011C0863FF5 -:103DB00021F48091E40184600BC0873F21F480915D -:103DC000E401886005C0883F31F48091E40180619E -:103DD0008093E40108958D3F21F48091E201816098 -:103DE0000BC08E3F21F48091E201826005C08F3FBD -:103DF00029F48091E20184608093E2010895803F7C -:103E000039F48091E60187FF6CC01092E60169C029 -:103E1000813F29F48091E6011816BCF362C09091AD -:103E2000E501823F29F497FF5CC01092E50159C07B -:103E3000833F19F41916CCF354C0893F41F48091A3 -:103E4000E70118160CF04DC01092E7014AC08A3FF6 -:103E500029F48091E70187FF44C0F6CF8B3F39F406 -:103E60008091E80187FF3DC01092E8013AC08C3F85 -:103E700029F48091E8011816BCF333C0843F21F483 -:103E80008091E4018E7F17C0853F21F48091E40189 -:103E90008D7F11C0863F21F48091E4018B7F0BC0A0 -:103EA000873F21F48091E401877F05C0883F31F48A -:103EB0008091E4018F7E8093E40113C08D3F21F453 -:103EC0008091E2018E7F0BC08E3F21F48091E20150 -:103ED0008D7F05C08F3F29F48091E2018B7F809315 -:103EE000E2018091E50181110EC08091E60181110E -:103EF0000AC08091E701811106C08091E80181111B -:103F000002C01092E301089584EE91E00E945510E2 -:103F10000E94EF1B9093E1018093E00108951F93AD -:103F2000CF93DF938091E0019091E1010E94FB1B10 -:103F3000AC019091E301992321F02091140130E02C -:103F400006C0209115018AE0289F90011124421794 -:103F5000530708F486C08091E501C091E601D09135 -:103F6000E7011091E801811107C0C11176C0D1119C -:103F700074C0111172C075C09F3F19F09F5F90937C -:103F8000E301181624F40E94151E8093E501809128 -:103F9000E50187FF05C00E94151E81958093E5010C -:103FA0001C1624F40E94151E8093E6018091E60100 -:103FB00087FF05C00E94151E81958093E6016091E0 -:103FC000E501662339F1C091E601CC2319F1772789 -:103FD00067FD7095872F972F0E94042323E333E317 -:103FE00043E35FE30E9468230E94D1226093E501CE -:103FF0006C2F772767FD7095872F972F0E940423DA -:1040000023E333E343E35FE30E9468230E94D1226A -:104010006093E6011D1624F40E945E1E8093E70162 -:104020008091E70187FF05C00E945E1E8195809305 -:10403000E701111624F40E945E1E8093E80180912E -:10404000E80187FF05C00E945E1E81958093E8010C -:10405000DF91CF911F910C94841F9F3F09F08ECF69 -:1040600096CFDF91CF911F910895E4EEF1E085E0C6 -:10407000DF011D928A95E9F71092E3011092E201A7 -:104080000895833081F128F4813059F08230D1F0E5 -:104090000895853009F449C0B8F1863009F456C056 -:1040A000089580911501262F30E0280F311D2F3FF4 -:1040B000310524F4680F6093150108958FEF809304 -:1040C0001501089580911401262F30E0280F311D2D -:1040D0002F3F310524F4680F6093140108958FEF8A -:1040E00080931401089580911301262F30E0280F4A -:1040F000311D2F3F310524F4680F6093130108959B -:104100008FEF80931301089580911201262F30E0E4 -:10411000280F311D2F3F310524F4680F60931201E1 -:1041200008958FEF80931201089580911101262F39 -:1041300030E0280F311D2F3F310524F4680F6093C4 -:10414000110108958FEF809311010895809110015E -:10415000262F30E0280F311D2F3F310524F4680F42 -:104160006093100108958FEF8093100108958330BC -:1041700011F128F4813049F0823091F008958530B2 -:1041800081F120F18630C1F1089580911501681701 -:1041900020F4861B8093150108951092150108954F -:1041A00080911401681720F4861B809314010895F0 -:1041B00010921401089580911301681720F4861B52 -:1041C00080931301089510921301089580911201B4 -:1041D000681720F4861B8093120108951092120133 -:1041E000089580911101681720F4861B80931101B6 -:1041F000089510921101089580911001681720F41C -:10420000861B8093100108951092100108950F935A -:104210001F938D3109F46BC008F03FC08E3009F454 -:104220007FC0C0F4873009F469C068F4863009F0B3 -:10423000B1C08091DA01817F8E7F8093DA0181E0C5 -:104240008093EA01A8C0883009F4A2C08B3009F439 -:104250009FC0A0C0863109F49BC078F4803109F476 -:1042600072C0813109F096C00E94D71490910D015F -:1042700081E0892780930D018BC0893109F488C0C2 -:104280008B3109F087C08091DA0181FB222720F968 -:1042900091E0922790FB81F94CC0853309F470C0FE -:1042A00048F4873209F46CC008F459C0893209F423 -:1042B00067C070C0833438F48A3308F04EC0883346 -:1042C00009F466C067C0833409F45AC0883409F021 -:1042D00061C00E94D7140FEF13ED20E3015010408E -:1042E0002040E1F700C000000E944A1C51C00E941B -:1042F0008B220E943E100E9437094AC09091DA0139 -:10430000892F8095817080FB90F929F096609860E4 -:104310009093DA0140C0997F977F9093DA0138C07B -:104320008091DA0182FB222720F991E0922790FB0D -:1043300082F98093DA01992359F18091DA01816041 -:104340008093DA0125C08091DA0183FB222720F9CE -:1043500091E0922790FB83F9ECCF895301C08D51F6 -:1043600041E050E060E070E08A019B0104C0000F72 -:10437000111F221F331F8A95D2F7C901B80104C04B -:1043800061E070E080E090E00E9497180E94D714EE -:1043900081E001C080E01F910F91089580E00895B1 -:1043A00080E00895CF93C82F8091EA01813079F0A1 -:1043B00018F08230E9F187C0E0910E01F0910F0111 -:1043C0008081813169F0823209F07FC009C0E091BB -:1043D0000E01F0910F018081813111F0823261F480 -:1043E0008C2F0E94CE21811104C08C2F0E940721A6 -:1043F0001DC081E090E01AC08C2F0E94D021811155 -:1044000014C0C43179F048F4CB3079F0C03109F0F0 -:1044100060C082E08093EA0108C0C93219F0C83355 -:1044200021F057C01092EA0154C081E0817053C05E -:10443000C93289F118F5C43171F1A8F4C73009F017 -:1044400046C08AE08093150194E19093140193E0B3 -:10445000909313018093120188E08093110188E208 -:104460008093100134C0CE51C63088F5EC2FF0E0B7 -:10447000E65DFE4F80818093E90129C0CE34E9F0EA -:1044800020F4CB3421F56AE013C0C13579F0C23590 -:10449000F1F461E00DC08091E901882319F01092D8 -:1044A000E90115C081E08093EA0115C061E006C012 -:1044B0008091E9010E9441200AC06AE08091E901EF -:1044C0000E94B72004C01092EA0180E004C081E09D -:1044D00002C080E0ABCFCF910895E1E8F0E08081A9 -:1044E000886080838081816080838FB7F89493E0B7 -:1044F0009093890090ED909388008FBF0895EFE628 -:10450000F0E08081826080830895EFE6F0E08081B2 -:104510008D7F80830895EFE6F0E0908182E0892727 -:10452000808308951F920F920FB60F9211242F933C -:104530003F934F935F936F937F938F939F93AF932B -:10454000BF93EF93FF938091EB019091EC01019663 -:104550009093EC018093EB01811103C082E00E94F3 -:104560003709E091EC01E695E695F0E0E45AFA4F60 -:10457000E4918091EB018E1303C080E00E94370923 -:10458000FF91EF91BF91AF919F918F917F916F912B -:104590005F914F913F912F910F900FBE0F901F9001 -:1045A000189504D06894B1118DC0089570D088F02A -:1045B0009F5790F0B92F9927B751A0F0D1F0660F0F -:1045C000771F881F991F1AF0BA95C9F712C0B1302A -:1045D00081F077D0B1E0089574C0672F782F8827D5 -:1045E000B85F39F0B93FCCF3869577956795B39569 -:1045F000D9F73EF490958095709561957F4F8F4FD8 -:104600009F4F0895E89409C097FB3EF490958095DC -:10461000709561957F4F8F4F9F4F9923A9F0F92F88 -:1046200096E9BB279395F695879577956795B79506 -:10463000F111F8CFFAF4BB0F11F460FF1BC06F5FEC -:104640007F4F8F4F9F4F16C0882311F096E911C0FE -:10465000772321F09EE8872F762F05C0662371F01F -:1046600096E8862F70E060E02AF09A95660F771F33 -:10467000881FDAF7880F9695879597F9089557FD63 -:104680009058440F551F59F05F3F71F04795880FC0 -:1046900097FB991F61F09F3F79F087950895121657 -:1046A00013061406551FF2CF4695F1DF08C0161603 -:1046B00017061806991FF1CF8695710561050894B4 -:1046C0000895E894BB2766277727CB0197F90895CB -:1046D0000BD078C069D028F06ED018F0952309F07F -:1046E0005AC05FC01124EECFCADFA0F3959FD1F36B -:1046F000950F50E0551F629FF001729FBB27F00D90 -:10470000B11D639FAA27F00DB11DAA1F649F6627E4 -:10471000B00DA11D661F829F2227B00DA11D621F33 -:10472000739FB00DA11D621F839FA00D611D221FED -:10473000749F3327A00D611D231F849F600D211DD1 -:10474000822F762F6A2F11249F5750408AF0E1F074 -:1047500088234AF0EE0FFF1FBB1F661F771F881FBD -:1047600091505040A9F79E3F510570F014C0AACF58 -:104770005F3FECF3983EDCF3869577956795B795A8 -:10478000F795E7959F5FC1F7FE2B880F911D9695D2 -:10479000879597F9089597F99F6780E870E060E042 -:1047A00008959FEF80EC089500240A9416161706CA -:1047B00018060906089500240A9412161306140612 -:1047C00005060895092E0394000C11F4882352F075 -:1047D000BB0F40F4BF2B11F460FF04C06F5F7F4F2D -:1047E0008F4F9F4F089597FB072E16F4009407D024 -:1047F00077FD09D00E940D2407FC05D03EF490956A -:1048000081959F4F0895709561957F4F0895EE0FA4 -:10481000FF1F0590F491E02D0994AA1BBB1B51E1E9 -:1048200007C0AA1FBB1FA617B70710F0A61BB70B20 -:10483000881F991F5A95A9F780959095BC01CD01C5 -:104840000895F999FECF92BD81BDF89A992780B558 -:104850000895A8E1B0E042E050E00C944924262FEE -:10486000F999FECF92BD81BDF89A019700B4021666 -:1048700039F01FBA20BD0FB6F894FA9AF99A0FBE14 -:1048800008950196272F0E9430240C942F24DC01D8 -:10489000CB01FC01F999FECF06C0F2BDE1BDF89A4B -:1048A000319600B40D9241505040B8F70895F894F5 -:0248B000FFCF38 -:1048B20002203909C709A40970093C090101C7018D -:1048C20028080A03140A3F4D36391D05D0049A04FC -:1048D2006104F4030D0426043F04010203040506E7 -:0448E20007080900BA -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/dvorak/compiled.hex b/keyboards/ergodox_ez/keymaps/dvorak/compiled.hex deleted file mode 100644 index c757b276d..000000000 --- a/keyboards/ergodox_ez/keymaps/dvorak/compiled.hex +++ /dev/null @@ -1,1158 +0,0 @@ -:100000000C947A020C94BE020C94BE020C94BE02B4 -:100010000C94BE020C94BE020C94BE020C94BE0260 -:100020000C94BE020C94BE020C94620D0C94340E1F -:100030000C94BE020C94BE020C94BE020C94BE0240 -:100040000C94BE020C943E220C94BE020C94BE0290 -:100050000C94BE020C94D11B0C94BE020C94BE02F4 -:100060000C94BE020C94BE020C94BE020C94BE0210 -:100070000C94BE020C94BE020C94BE020C94BE0200 -:100080000C94BE020C94BE020C94BE020C94BE02F0 -:100090000C94BE020C94BE020C94BE020C94BE02E0 -:1000A0000C94BE020C94BE020C94BE02A10EC30EB0 -:1000B000B10FC30EB10F080F2B0FB10F800F930FAD -:1000C0006212621291129112C712E71218141814D8 -:1000D000F2121814A213A2130914181418141214EB -:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300 -:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0 -:10010000C113CE13D513DC13E6130000F0A12E00AB -:100110004C002A00E100354100001E0034000400BC -:10012000337134004D001F00360012001400E1044A -:100130002A002000370008000D0050002C0021008C -:10014000130018000E004F004A0022001C000C0093 -:100150001B0000006574500001540000007F000087 -:10016000E3004F000154000000770000E20023008C -:100170000900070005000000297124000A000B0097 -:10018000100052004B002500060017001A00510015 -:10019000280026001500110019002F002B00270051 -:1001A0000F0016421D7130004E00310038002D0046 -:1001B000E500C10000000100010001000100010094 -:1001C00000003A001E0220022202010001003B0052 -:1001D0001F0221022302010001003C002F0226021F -:1001E0002F00010001003D00300227023000010015 -:1001F00001003E003102350035020000010001001F -:1002000001000000010000000100010001000000E9 -:100210000100000001003F005200510024020000D4 -:1002200001004000240021001E00010001004100E7 -:10023000250022001F003700010042002600230095 -:10024000200027000100430025022E0231002E006D -:100250000100440045000100010001000000010010 -:100260000100010001000100000001000100010087 -:1002700001000100010001000100F2000100010085 -:1002800001000100F000F1000100F4000100010094 -:100290000100F3000100F500010001000100010070 -:1002A0000100000001000100010000000100000049 -:1002B0000100010001000000010000000100010038 -:1002C0000100010001000000010001000100010027 -:1002D0000100A9000100010001000100AC00AA001A -:1002E000B600010001000100AB00A8000100010000 -:1002F0000100010001000100010001000100AE0049 -:1003000001000100000016034500720067006F0045 -:1003100044006F007800200045005A0000001603DA -:100320004500720067006F0044006F0078002000F5 -:1003300045005A0000000403090409026D0004018D -:1003400000A0FA09040000010301010009211101C4 -:100350000001223F000705810308000A090401008B -:100360000103010200092111010001224D000705CE -:10037000820308000A0904020001030000000921A9 -:10038000110100012236000705830308000A090451 -:1003900003000103000000092111010001223900BE -:1003A000070584031000011201100100000008ED90 -:1003B000FE071301000102000105010906A1010564 -:1003C0000719E029E7150025019508750181020547 -:1003D000081901290595057501910295017503918B -:1003E0000105071900297715002501957875018108 -:1003F00002C005010980A101850216010026B7008F -:100400001A01002AB700751095018100C0050C097A -:1004100001A1018503160100269C021A01002A9CF5 -:1004200002751095018100C005010902A1010901B1 -:10043000A10005091901290515002501950575017A -:10044000810295017503810105010930093115818A -:10045000257F95027508810609381581257F95014C -:1004600075088106050C0A38021581257F950175EE -:10047000088106C0C005010906A101050719E02988 -:10048000E715002501950875018102950175088120 -:100490000105081901290595057501910295017558 -:1004A0000391010507190029FF150025FF95067521 -:1004B000088100C0000000000000000000000001F2 -:1004C0000204060A0F17202C3A4A5D71879DB3C7B4 -:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF -:1004E0003A2C20170F0A0604020100000000000049 -:1004F0000000000011241FBECFEFDAE0DEBFCDBF49 -:1005000004B603FE24C08091FB019091FC01A091F0 -:10051000FD01B091FE018730904BA740B04BB9F47C -:100520001092FB011092FC011092FD011092FE014D -:1005300014BE84B7877F84BF88E10FB6F894809398 -:100540006000109260000FBEE0E0FFE3099511E04B -:10055000A0E0B1E0EAE0F8E402C005900D92A43317 -:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0 -:10057000B107E1F70E94A60A0C9403240C94000032 -:100580001092B9008AE08093B800089594EA90939D -:10059000BC009091BC0097FFFCCF9091B900987F70 -:1005A000983021F0903111F081E008958093BB00E4 -:1005B00084E88093BC008091BC0087FFFCCF8091D1 -:1005C000B900887F883111F0803471F780E0089598 -:1005D00084E98093BC008091BC0084FDFCCF089529 -:1005E0008093BB0084E88093BC008091BC0087FFAF -:1005F000FCCF9091B900987F81E0983209F480E0B7 -:10060000089584E88093BC008091BC0087FFFCCFF4 -:100610008091BB00089580910101811115C080E493 -:100620000E94C6028093010181110CC082E10E94E8 -:10063000F00280930101811105C08FEF0E94F0024A -:10064000809301010E94E80284B1807F84B985B162 -:10065000807F85B98AB1837F8AB98BB1837F8BB95B -:100660003E98469808950E94C604809301010E9416 -:100670000B0380B38C7080BB81B3836F81BBA5E318 -:10068000B1E0E3E4F1E08EE08E0F11921D928E1343 -:10069000FCCF0C94B004BF92CF92DF92EF92FF9206 -:1006A0000F931F93CF93DF9380910101882379F0FB -:1006B000809134018F5F80933401811108C00E94C2 -:1006C000C60480930101811102C00E94580405E311 -:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407 -:1006E000E394F12CC730D10500F58091010181110F -:1006F00064C080E40E94C60280930101811112C08F -:1007000082E10E94F0028093010181110BC0C701B8 -:100710000C2E01C0880F0A94EAF780950E94F0021F -:10072000809301010E94E80248C0CA30A1F028F479 -:10073000C83059F0C93061F005C0CC3089F070F094 -:10074000CD3089F0209A289810C0219A29980DC0A0 -:10075000229A2A980AC0239A2B9807C0529A01C05D -:10076000539A5B9802C03E9A469890EA9A95F1F7A0 -:100770009FB1799902C082E001C080E091709D250F -:10078000982B7C9902C084E001C080E0892B7D9980 -:1007900002C038E001C030E0832B7E9902C020E126 -:1007A00001C020E0822B9FB19095991F9927991F36 -:1007B0009295990F907E892B0FC080910101811134 -:1007C00049C080E40E94C60280930101882379F128 -:1007D000B12C0E94E8028B2DF8019081981719F036 -:1007E0008083C09200010E940B0321960F5F1F4F70 -:1007F000CE30D10509F076CF80910001882361F1D8 -:10080000815080930001882339F08FE99FE00197A0 -:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F -:10082000CF01825F91919D938E13FCCF15C083E120 -:100830000E94F002809301018111CACF81E40E94DD -:10084000C602809301018111C3CF0E940103B82E1B -:10085000B094BFCF80E0C0CF0E94560481E0DF910A -:10086000CF911F910F91FF90EF90DF90CF90BF90AD -:100870000895E82FF0E0ED5BFE4F80810895089524 -:100880000F931F93CF93DF93C3E4D1E010E00C2FBD -:10089000025F899190E00E94F71A180F0C13F9CFAC -:1008A000812FDF91CF911F910F9108950C94260510 -:1008B00056985E9825982D9826982E9827982F98C8 -:1008C0008FEF90E0909389008093880090938B0045 -:1008D00080938A0090938D0080938C00259A2D9AA6 -:1008E0002FEF80E792E0215080409040E1F700C078 -:1008F0000000269A2E9A2FEF80E792E02150804048 -:100900009040E1F700C00000279A2F9A2FEF80E770 -:1009100092E0215080409040E1F700C0000025980F -:100920002D982FEF80E792E0215080409040E1F732 -:1009300000C0000026982E982FEF80E792E021500B -:1009400080409040E1F700C0000027982F9856980B -:100950005E9825982D9826982E9827982F98089578 -:1009600089EA8093800089E08093810024982C9804 -:100970003F988AB18F748AB96E98479A8BB1806B11 -:100980008BB9769A0E9458040C94250580E28093D6 -:1009900001018091510181110EC00E94C00281E0CD -:1009A000809351012FEF83ED90E3215080409040E0 -:1009B000E1F700C0000080E40E94C60280930101BC -:1009C00081112EC00E94F00280930101811128C084 -:1009D0000E94F00280930101811122C08FE30E94E6 -:1009E000F0028093010181111BC00E94E80280E4A3 -:1009F0000E94C60280930101811112C08CE00E9406 -:100A0000F0028093010181110BC00E94F0028093DB -:100A10000101811105C08FE30E94F0028093010162 -:100A20000E94E80280910101089561110BC0FC0150 -:100A30008281882321F085EE0E94061103C085EE95 -:100A40000E94CE1180E090E0089508956091BD016C -:100A50007091BE018091BF019091C0010E94031B63 -:100A600056985E9825982D9826982E9827982F9816 -:100A7000813019F0823021F00895259A2D9A089539 -:100A8000269A2E9A089581E0089581E008950C94A5 -:100A9000450508950F931F93CF93DF938C01FC01BD -:100AA000C081D181CE010E947C19BE010E94F30554 -:100AB000EC01B8010E944705882309F48DC0F801B4 -:100AC0008281882309F44AC080915D0181111FC091 -:100AD000C431F0E5DF0709F051C00E94490581E00B -:100AE00080935D010E949B1B90935C0180935B014E -:100AF0001092540110925601109255011092580113 -:100B00001092570110925A011092590165C08091BC -:100B10005B0190915C010E94A71B883C910570F4D9 -:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB -:100B3000D183C0838F5F809354014EC0C43880E559 -:100B4000D80721F0C538D04501F13AC0F8018281BB -:100B5000882341F01092520182E01EC0C438E0E5C3 -:100B6000DE0759F580915201811106C086E20E948C -:100B7000061186E20E94CE1182E01CC0C438F0E566 -:100B8000DF0741F3C538D045D9F4F80182818823C5 -:100B900031F01092530180E20E941D121DC080911D -:100BA0005301811106C087E20E94061187E20E946C -:100BB000CE1180E20E9424120FC0C538D04529F31F -:100BC00081E08093520180935301C801DF91CF915E -:100BD0001F910F910C94430580E0DF91CF911F91FD -:100BE0000F910895089596E0799FF001112494E5FE -:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F -:100C0000E25FFE4F859194910895880F991FFC0132 -:100C1000E657F040859194910895880F991FFC0143 -:100C2000E65FFE4F8591949108950F931F93CF93A4 -:100C3000DF93EC01811520E3920750F5C11580E2A6 -:100C4000D80708F0C3C0CB3BD10590F4C83AD10512 -:100C500008F06AC0C53AD10508F05BC0C430D105C0 -:100C600008F0D0C1219709F0CAC101E010E00AC222 -:100C7000CF3FD10511F008F0C5C1C03FD10508F044 -:100C8000A2C0CE01805E9109089708F4BBC1B7C12C -:100C9000C13090E5D90709F4A2C020F5C0318FE436 -:100CA000D80770F4C11590E4D90708F094C0C115B5 -:100CB00021E3D20708F0A3C1DD278E01106CE2C149 -:100CC000C115D04509F09BC10E9483148FEF94E3B6 -:100CD0002CE0815090402040E1F700C000000E94CD -:100CE000F61BD0C1C11597E5D90758F4C03121E5ED -:100CF000D20708F01CC1C43180E5D80708F475C0DC -:100D00007EC1CE0190578115904108F078C1DF7007 -:100D100073C1C53AD10509F477C1C63AD10509F0C6 -:100D200076C102E810E4AEC1C83AD10509F472C137 -:100D3000C93AD10509F471C1CA3AD10509F470C1A3 -:100D4000CB3AD10509F46FC1CC3AD10509F46EC193 -:100D5000CD3AD10509F46DC1C03BD10509F46CC190 -:100D6000CE3AD10509F46BC1CF3AD10509F46AC175 -:100D7000C13BD10509F469C1C23BD10509F468C181 -:100D8000C33BD10509F467C1C43BD10509F466C171 -:100D9000C53BD10509F465C1C63BD10509F464C161 -:100DA000C73BD10509F463C1C83BD10509F462C151 -:100DB000C93BD10509F461C1CA3BD10509F460C141 -:100DC00000E014E45FC18E0110655CC1CE019F702C -:100DD0000E940D0658C1DF708E01106A53C18091C8 -:100DE000DA0181608093DA014DC10E949B1D81115F -:100DF00002C00E94811D0E94B81D90E09093FB01EB -:100E00008093FA01C23080E5D80721F48091FA017D -:100E1000816086C0C43090E5D90721F48091FA0141 -:100E200082607EC0C63020E5D20721F48091FA01AD -:100E3000846076C0C83080E5D80719F48091FA0143 -:100E400027C0CA3090E5D90721F48091FA0180616A -:100E500067C0CC3020E5D20721F48091FA0180628E -:100E60005FC0CE3080E5D80721F48091FA0180641C -:100E700057C0C03190E5D90721F48091FA0180680C -:100E80004FC0C23120E5D20729F48091FA01846075 -:100E9000886046C0C33080E5D80721F48091FA010C -:100EA0008E7F3EC0C53090E5D90721F48091FA01CC -:100EB0008D7F36C0C73020E5D20721F48091FA013A -:100EC0008B7F2EC0C93080E5D80719F48091FA01D4 -:100ED00026C0CB3090E5D90721F48091FA018F7EAE -:100EE0001FC0CD3020E5D20721F48091FA018F7D1B -:100EF00017C0CF3080E5D80721F48091FA018F7BAD -:100F00000FC0C13190E5D90721F48091FA018F77A4 -:100F100007C0C331D04531F48091FA018B7F877FC0 -:100F20008093FA018091FA010E94BC1DABC08D2F05 -:100F300099278F70992781309105D9F49E012370EC -:100F4000332702C0880F991F2A95E2F79C688E010B -:100F500044E0000F111F4A95E1F700271370802B22 -:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA -:100F70002FC08230910531F4DC2FCC278E01016F18 -:100F8000106A80C08330910569F4CE01837099277F -:100F900001E010E002C0000F111F8A95E2F7C801BE -:100FA0009C680FC084309105B9F4CE0183709927F5 -:100FB00001E010E002C0000F111F8A95E2F7C8019E -:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029 -:100FD0008C010C2B1D2B56C08530910531F4DC2F74 -:100FE000CC278E01046F106A4DC0069709F04AC0E5 -:100FF000CF71DD27DC2FCC278E01106243C000E0CB -:1010000010E040C08E013EC001E810E43BC003E8A0 -:1010100010E438C002EE14E435C009EE14E432C026 -:101020000AEE14E42FC005EB14E42CC006EB14E424 -:1010300029C007EB14E426C00CEC14E423C00DEC2B -:1010400014E420C003E815E41DC00AE815E41AC042 -:1010500002E915E417C004E915E414C001E216E43E -:1010600011C003E216E40EC004E216E40BC005E270 -:1010700016E408C006E216E405C007E216E402C062 -:101080000AE216E4C801DF91CF911F910F910895F4 -:1010900096E0799FF001112494E5899FE00DF11D00 -:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149 -:1010B0009491803E9105E0F4803C910558F5813390 -:1010C000910509F46FC048F48932910509F463C0B1 -:1010D0008A32910509F46DC072C089339105E9F037 -:1010E00082389105D1F08533910509F44DC067C070 -:1010F000833E910581F138F4803E9105B9F0823E3E -:101100009105D9F05CC0863E910561F1873E91055D -:10111000A1F155C00E94050608952091FA0120FD15 -:1011200002C021FF4CC080EE90E049C08091FA01DE -:1011300080FFF9CF89E390E042C08091FA0182FFFD -:101140000EC08091FA0184FF03C080E090E037C0B8 -:1011500083EE90E034C08091FA0182FFF2CF82EEFC -:1011600090E02DC08091FA0183FF0BC08091FA01BD -:1011700084FDEBCF87EE90E022C08091FA0183FFDF -:10118000F5CF86EE90E01BC08091FA0185FF07C085 -:1011900089E290E014C08091FA0185FFF9CF85E3E0 -:1011A00090E00DC08091FA0186FF07C08AE290E0CE -:1011B00006C08091FA0186FFF9CF81E390E00E949A -:1011C0001506089508950C94E20880916E01089523 -:1011D000CF93DF9300D01F92CDB7DEB79C018091F3 -:1011E000F101843019F593E099833B832A8390932E -:1011F000E9008FEF9091E800815095FD06C095EDD4 -:101200009A95F1F700008111F5CF8091E80085FFF4 -:101210000DC040E050E063E070E0CE0101960E9416 -:10122000520B8091E8008E778093E8000F900F902A -:101230000F90DF91CF910895CF93DF9300D01F924D -:10124000CDB7DEB72091F101243021F522E02983CA -:101250009B838A8383E08093E9008FEF9091E8007D -:10126000815095FD06C095ED9A95F1F7000081112A -:10127000F5CF8091E80085FF0DC040E050E063E0CD -:1012800070E0CE0101960E94520B8091E8008E77AB -:101290008093E8000F900F900F90DF91CF91089509 -:1012A0002091F1012430F1F422E02093E9002FEFA6 -:1012B0003091E800215035FD06C035ED3A95F1F743 -:1012C00000002111F5CF2091E80025FF0BC040E080 -:1012D00050E065E070E00E94520B8091E8008E774C -:1012E0008093E8000895CF93DF93EC019091F10192 -:1012F000943009F046C080910C018823D9F0809188 -:101300000D018823B9F09093E9008FEF9091E800E8 -:10131000815095FD06C095E19A95F1F70000811185 -:10132000F5CF8091E80085FF2CC040E050E060E1FF -:1013300070E017C081E08093E9008FEF9091E800A2 -:10134000815095FD06C095ED9A95F1F70000811149 -:10135000F5CF8091E80085FF14C040E050E068E0E0 -:1013600070E0CE010E94520B8091E8008E7780934E -:10137000E80080E1FE01AEE5B1E001900D928A95B2 -:10138000E1F7DF91CF9108958091F001811109C0BB -:101390000E94E70C0E94440D8091E20084608093DB -:1013A000E20008951092F001089508950C942B2204 -:1013B0000E948C1B0E9431220E94EA0F0C94E308C9 -:1013C00042E061EC81E00E94610C42E061EC82E06D -:1013D0000E94610C42E061EC83E00E94610C42E1FA -:1013E00061EC84E00C94610C8091F301833009F48A -:1013F00055C030F4813071F0823009F48EC0089508 -:101400008A3009F47AC08B3009F460C0893009F061 -:101410009CC020C08091F201813A09F096C0809171 -:10142000E800877F8093E8008091F6019091F701B2 -:10143000892B21F460E18EE591E003C060E080E05B -:1014400090E070E00E949D0B8091E8008B77809384 -:10145000E80008958091F201813209F076C0809110 -:10146000F6019091F701009719F0039709F06DC00C -:101470008091E800877F8093E8008091E80082FDFA -:1014800005C08091F1018111F8CF5FC08091F1001A -:1014900080936E018091E8008B7753C08091F201B8 -:1014A000813A09F052C08091F6019091F701892BA1 -:1014B00009F04BC08091E800877F8093E80080911D -:1014C000E80080FFFCCF80910C0136C08091F201D2 -:1014D0008132D9F58091F6019091F701892BA9F518 -:1014E0008091E800877F8093E8000E94960C8091AD -:1014F000F40180930C010C9483148091F2018132E9 -:1015000021F58091E800877F8093E8000E94960C87 -:101510008091F50180936F0108958091F201813AE5 -:10152000A1F48091E800877F8093E8008091E80033 -:1015300080FFFCCF80916F018093F1008091E800E3 -:101540008E778093E8000C94960C089584B7877F7B -:1015500084BF88E10FB6F894809360001092600019 -:101560000FBE90E080E80FB6F894809361009093EE -:1015700061000FBE0E9439100E94E70C0E94440DCA -:101580008091E20084608093E20078940E94CA0F08 -:101590000E943B1082E091E00E94E50F0E94192218 -:1015A0008091F101853069F40E94531B8091EF0115 -:1015B0008823B1F30E947E1B882391F30E943C0B89 -:1015C000EFCF0E944110ECCF292F33272330310574 -:1015D000C9F064F42130310581F02230310509F081 -:1015E00043C08DE690E02AE333E042C0213231056A -:1015F000F1F02232310541F137C082E190E027EA73 -:1016000033E036C099278130910541F08230910551 -:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4 -:1016200002C0E6E0F3E0849190E09F0121C06430C5 -:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5 -:10164000318189E090E014C0643070F470E0FB01F7 -:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47 -:10166000FE4F808190E004C080E090E020E030E018 -:10167000FA0131832083089580E189BD82E189BD2B -:1016800009B400FEFDCF8091D8008F7D8093D800F3 -:101690008091E00082608093E0008091E00081FD15 -:1016A000FCCF0895CF92DF92EF92FF920F931F939A -:1016B000CF93DF93EC018B016A010E94B50C81117D -:1016C00033C0C114D10439F0F60180819181081B27 -:1016D000190BC80FD91FE12CF12C0115110519F1B7 -:1016E0008091E80085FD16C08091E8008E77809398 -:1016F000E800C114D10449F0F60180819181E80E1F -:10170000F91EF182E08285E00FC00E94B50C8823AB -:1017100021F30AC089918093F10001501109FFEF74 -:10172000EF1AFF0ADACF80E0DF91CF911F910F917E -:10173000FF90EF90DF90CF9008952091F8013091C5 -:10174000F9012617370748F06115710539F4209122 -:10175000E8002E772093E80001C0B90140E0611550 -:101760007105A9F12091F101222309F443C025302C -:1017700009F442C02091E80023FD40C02091E80018 -:1017800022FD32C02091E80020FFE9CF4091F30014 -:101790002091F20030E0342BFC01CF01611571057E -:1017A00059F02830310540F481918093F100615067 -:1017B00071092F5F3F4FF1CF41E02830310509F02B -:1017C00040E02091E8002E772093E800C8CF411137 -:1017D000C9CF0AC08091F101882361F0853061F0A2 -:1017E0008091E80083FD0AC08091E80082FFF2CF7B -:1017F00080E0089582E0089583E0089581E00895EF -:101800002091F8013091F9012617370748F061154A -:10181000710539F42091E8002E772093E80001C08B -:10182000B901FC0120E06115710591F18091F10190 -:10183000882309F440C0853009F43FC08091E80056 -:1018400083FD3DC08091E80082FD2FC08091E800BB -:1018500080FFE9CF2091F3008091F20090E0922B7D -:101860006115710559F08830910540F42491209359 -:10187000F1003196615071090196F2CF21E008978D -:1018800009F020E08091E8008E778093E800CBCFCC -:101890002111CCCF0AC08091F101882361F08530FD -:1018A00061F08091E80083FD0AC08091E80082FF2A -:1018B000F2CF80E0089582E0089583E0089581E00A -:1018C0000895982F973058F59093E900981739F0BC -:1018D0007091EC002091ED005091F00003C0242F96 -:1018E000762F50E021FF19C03091EB003E7F3093FE -:1018F000EB003091ED003D7F3093ED003091EB0037 -:1019000031603093EB007093EC002093ED00509326 -:10191000F0002091EE0027FF07C09F5FD3CF8F70AC -:101920008093E90081E0089580E008958091F201BC -:1019300087FF11C08091E80082FD05C08091F10110 -:101940008111F8CF11C08091E8008B770BC0809196 -:10195000F101882349F08091E80080FFF8CF809161 -:10196000E8008E778093E80008952091E40030919C -:10197000E50095E64091EC00842F817040FF22C085 -:101980008091E80080FD1CC08091F101882391F0D6 -:10199000853091F08091EB0085FD10C04091E4000E -:1019A0005091E5004217530729F39A01915011F71E -:1019B00084E0089582E0089583E0089581E0089529 -:1019C00080E008954091E80042FFDECF08950E9434 -:1019D000550D0E945D0DE0EEF0E080818160808316 -:1019E000E8EDF0E080818F77808319BCA7EDB0E04F -:1019F0008C918E7F8C9380818F7E80831092F001FA -:101A000008950F931F93CF93DF930E94550D0E946B -:101A10005D0DC8EDD0E088818F77888388818068EC -:101A2000888388818F7D888319BC1092F101109280 -:101A3000ED011092EF011092EE0100EE10E0F801BE -:101A400080818B7F808388818160888342E060E031 -:101A500080E00E94610CE1EEF0E080818E7F808367 -:101A6000E2EEF0E080818160808380818860808305 -:101A7000F80180818E7F8083888180618883DF91F7 -:101A8000CF911F910F910895E8EDF0E080818F7E56 -:101A90008083E7EDF0E080818160808384E082BF15 -:101AA00081E08093F0010C94010DE8EDF0E080817D -:101AB0008E7F80831092E20008951092DA001092D7 -:101AC000E10008951F920F920FB60F9211242F93E9 -:101AD0003F934F935F936F937F938F939F93AF93B6 -:101AE000BF93EF93FF938091E10082FF0BC0809141 -:101AF000E20082FF07C08091E1008B7F8093E100CC -:101B00000E94C90F8091DA0080FF1FC08091D80029 -:101B100080FF1BC08091DA008E7F8093DA00809175 -:101B2000D90080FF0DC080E189BD82E189BD09B483 -:101B300000FEFDCF81E08093F1010E94C40905C041 -:101B400019BC1092F1010E94D2098091E10080FF3E -:101B500019C08091E20080FF15C08091E2008E7F65 -:101B60008093E2008091E20080618093E2008091A6 -:101B7000D80080628093D80019BC85E08093F10181 -:101B80000E94D6098091E10084FF30C08091E2007C -:101B900084FF2CC080E189BD82E189BD09B400FECB -:101BA000FDCF8091D8008F7D8093D8008091E10097 -:101BB0008F7E8093E1008091E2008F7E8093E2002F -:101BC0008091E20081608093E2008091ED018823A2 -:101BD00011F084E007C08091E30087FD02C081E03E -:101BE00001C083E08093F1010E94D8098091E10057 -:101BF00083FF29C08091E20083FF25C08091E1002E -:101C0000877F8093E10082E08093F1011092ED01E3 -:101C10008091E1008E7F8093E1008091E2008E7FD1 -:101C20008093E2008091E20080618093E20042E0D4 -:101C300060E080E00E94610C8091F00088608093F9 -:101C4000F0000E94D509FF91EF91BF91AF919F9154 -:101C50008F917F916F915F914F913F912F910F9055 -:101C60000FBE0F901F9018951F920F920FB60F92F4 -:101C700011242F933F934F935F936F937F938F9391 -:101C80009F93AF93BF93CF93DF93EF93FF93C09155 -:101C9000E900CF708091EC00D82FD17080FDD0E8A2 -:101CA0001092E9008091F000877F8093F000789493 -:101CB0000E94780E1092E9008091F0008860809375 -:101CC000F000CD2BCF70C093E900FF91EF91DF9131 -:101CD000CF91BF91AF919F918F917F916F915F91C4 -:101CE0004F913F912F910F900FBE0F901F9018951D -:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3 -:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115 -:101D1000F10091938E13FBCF0E94F4098091E800AB -:101D200083FF1FC18091F2019091F301492F50E090 -:101D30004A30510508F015C1FA01EA5AFF4F0C94D8 -:101D4000B323803881F0823809F00BC18091F6010D -:101D50008F708093E9008091EB0085FB882780F9E4 -:101D60001092E90006C08091EE019091EF0191116F -:101D700082609091E800977F9093E8008093F10053 -:101D80001092F100C8C0282F2D7F09F0EAC08823E7 -:101D900019F0823061F0E5C08091F401813009F0E2 -:101DA000E0C0933009F080E08093EF012BC0809178 -:101DB000F401811127C08091F6018F7009F4D1C020 -:101DC0008093E9002091EB0020FF1CC0933021F4A8 -:101DD0008091EB00806214C09091EB009061909331 -:101DE000EB0021E030E0A90102C0440F551F8A95A5 -:101DF000E2F74093EA001092EA008091EB008860DD -:101E00008093EB001092E9008091E800877F86C004 -:101E10008111A7C01091F4011F778091E3008078B1 -:101E2000812B8093E3008091E800877F8093E80016 -:101E30000E94960C8091E80080FFFCCF8091E30027 -:101E400080688093E300111102C082E001C083E04A -:101E50008093F10186C08058823008F082C0809162 -:101E6000F4019091F5018C3D53E0950779F583E0FD -:101E70008A838AE289834FB7F894DE01139620E0C3 -:101E80003EE051E2E32FF0E050935700E49120FF51 -:101E900003C0E295EF703F5FEF708E2F90E0EA3065 -:101EA00010F0C79601C0C0968D939D932F5F24318B -:101EB00049F74FBF8091E800877F8093E8006AE28E -:101EC00070E0CE0101960E949D0B14C0AE014F5FE1 -:101ED0005F4F6091F6010E94E40ABC01009709F48B -:101EE00040C09091E800977F9093E80089819A81A3 -:101EF0000E94000C8091E8008B778093E80031C04D -:101F0000803879F58091E800877F8093E8008091A0 -:101F1000ED018093F1008091E8008E778093E800D6 -:101F20000E94960C1EC081111CC09091F401923049 -:101F3000C0F48091E800877F8093E8009093ED01E2 -:101F40000E94960C8091ED01811106C08091E30002 -:101F500087FD02C081E001C084E08093F1010E940E -:101F6000E0098091E80083FF0AC08091E800877F44 -:101F70008093E8008091EB0080628093EB00AA964A -:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A -:101F900008950895CF938091F1018823A1F0C09115 -:101FA000E900CF709091EC00892F817090FD80E85E -:101FB000C82B1092E9008091E80083FD0E94780E02 -:101FC000CF70C093E900CF910895909375018093ED -:101FD00074010895E0917401F0917501309721F03A -:101FE0000190F081E02D099480E00895E091740162 -:101FF000F0917501309721F00280F381E02D099472 -:102000000895E0917401F0917501309721F00480FA -:10201000F581E02D099408952091720130917301AA -:102020008217930771F09093730180937201E0918E -:102030007401F0917501309721F00680F781E02D51 -:1020400009940895209170013091710182179307CE -:1020500071F09093710180937001E0917401F0919F -:102060007501309721F00084F185E02D09940895E1 -:1020700008950C9438100E94921B0E9433030C9414 -:10208000541C9F92AF92BF92CF92DF92EF92FF9239 -:102090000F931F93CF93DF9300D000D000D0CDB724 -:1020A000DEB70E944B030DE010E0AA24A394B12CEC -:1020B000902E802F0E943904980129583E4F6901C3 -:1020C000F901F080F826A1F40150110988F78FEF8B -:1020D00089838A831B820E949B1B8160782F9D834A -:1020E0008C8349815A816B818D810E94D8102FC0C9 -:1020F0009091DA0191FF04C08E830E943F048E818B -:1021000025E030E0A501022E01C0440F0A94EAF751 -:10211000E42E4F21C1F029839A828E2191E009F4A7 -:1021200090E09B830E949B1B8160782F9D838C8312 -:1021300049815A816B818D810E94D810F60180817E -:10214000E826E08204C021503109E0F6BDCF0E94AC -:102150003B1F109176010E94EA0F1817B9F00E94F8 -:10216000EA0F8093760126960FB6F894DEBF0FBE75 -:10217000CDBFDF91CF911F910F91FF90EF90DF9036 -:10218000CF90BF90AF909F900C94E30826960FB627 -:10219000F894DEBF0FBECDBFDF91CF911F910F919D -:1021A000FF90EF90DF90CF90BF90AF909F900895F9 -:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82 -:1021C0000FBECDBF4F83588769877A878B87DE0123 -:1021D000119686E0FD0111928A95E9F785E0FE01EE -:1021E000379601900D928A95E1F749815A816B816A -:1021F0007C818D819E810E9421172B960FB6F894C9 -:10220000DEBF0FBECDBFDF91CF910895CF9388235E -:1022100009F4C2C0C82F823859F40E94EA0F81FD28 -:10222000BBC089E30E94FB190E94C81A89E30CC055 -:10223000833879F40E94EA0F80FDAEC083E50E94E6 -:10224000FB190E94C81A83E50E943D1ACF910C9495 -:10225000C81A843859F40E94EA0F82FD9DC087E4B1 -:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6 -:10227000813A48F48C2F0E947E2181118DC08C2FD1 -:102280000E94FB19E3CF80E28C0F883048F4C770BE -:1022900081E001C0880FCA95EAF70E94811AD6CF63 -:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB -:1022B00083E890E005C081E890E002C082E890E009 -:1022C000CF910C940C1088E58C0F833108F064C01A -:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118 -:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186 -:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106 -:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173 -:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB -:1023200038C082EE90E035C089EE90E032C08AEE8F -:1023300090E02FC085EB90E02CC086EB90E029C0A8 -:1023400087EB90E026C08CEC90E023C08DEC90E011 -:1023500020C083E891E01DC08AE891E01AC082E9BC -:1023600091E017C084E991E014C081E292E011C0CD -:1023700083E292E00EC084E292E00BC085E292E03C -:1023800008C086E292E005C087E292E002C08AE2DD -:1023900092E0CF910C942210CF910895882309F4F4 -:1023A0004BC0823859F40E94EA0F81FF45C089E38F -:1023B0000E94FB190E94C81A89E30CC0833871F48B -:1023C0000E94EA0F80FF38C083E50E94FB190E943B -:1023D000C81A83E50E943D1A0C94C81A843859F42F -:1023E0000E94EA0F82FF28C087E40E94FB190E9426 -:1023F000C81A87E4EFCF9CEF980F913A58F390E218 -:10240000980F983050F4877091E001C0990F8A9529 -:10241000EAF7892F0E94871ADFCF9BE5980F933048 -:1024200020F480E090E00C940C10885A833120F462 -:1024300080E090E00C9422100895882321F00E94FF -:10244000811A0C94C81A0895882321F00E94871AD3 -:102450000C94C81A08957F928F929F92AF92BF9268 -:10246000CF92DF92EF92FF920F931F93CF93DF9360 -:102470001F92CDB7DEB77C01C62E772EFC010581F9 -:1024800002950F70128111110E949E1A0E94F41978 -:10249000882379F0112369F080E28C0D883048F0B0 -:1024A00082E00E94DD190E94F41991E0D82ED9260D -:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C -:1024C0000C94B323872D807F072D0F70882311F084 -:1024D0000295007F112389F0002309F490C180E266 -:1024E0008C0D883020F4802F0E94811A03C0802F29 -:1024F0000E94911A0E94C81A82C18C2D0E94CE118E -:10250000002309F495C180E28C0D883020F4802FDF -:102510000E94871A03C0802F0E94971A0E94C81A2F -:1025200087C1972D907F872D8F70903211F0829503 -:10253000807FCC2021F0F1E0CF16B1F01EC0112336 -:1025400049F0002309F414C1013009F011C10E94BF -:10255000B11A6EC1002319F0013009F469C18983F1 -:102560000E94B41A89810AC1112321F0023008F0B7 -:102570005FC1FEC001115CC101C1112321F0002324 -:1025800009F4F6C03CC1002309F4F8C03EC1872D10 -:1025900086958695837090E0009719F0019761F019 -:1025A00047C1112321F08C2D972D937002C080E03C -:1025B00090E00E940C103CC1112321F08C2D972D2E -:1025C000937002C080E090E00E94221031C18C2DF7 -:1025D000112319F00E94431E02C00E94AB1E0E94EC -:1025E000301F26C1872D837009F052C0111120C100 -:1025F0008C2D829586958770880F880F9C2D9F70F3 -:10260000892E912CA12CB12C082E04C0880C991C69 -:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041 -:1026200020E030E0B901A80104C0440F551F661F27 -:10263000771F8A95D2F7CB01BA0160957095809586 -:10264000909503C060E070E0CB01272D269526957C -:10265000237030E02230310569F02330310589F0F4 -:10266000682979298A299B292130310571F00E9436 -:102670006918DEC0682979298A299B290E94851852 -:10268000D7C00E946918C501B4010E944D18D0C07E -:10269000112319F0872D817001C08695882309F4D4 -:1026A000C7C08C2D829586958770880F880F9C2DCA -:1026B0009F70892E912CA12CB12C082E04C0880C5F -:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC -:1026D00010E020E030E0B901A80104C0440F551F0C -:1026E000661F771F8A95D2F7CB01BA016095709566 -:1026F0008095909503C060E070E0CB01272D269572 -:1027000026952370422F50E04230510569F0433046 -:10271000510589F0682979298A299B294130510579 -:1027200071F00E94431984C0682979298A299B295C -:102730000E945F197DC00E944319C501B4010E9427 -:10274000271976C08C2D90E0FC01E05EF109E5319F -:10275000F10508F050C0E059FF4F0C94B3230C2D45 -:102760000F70872D8F71112331F00E94C018802FB8 -:102770000E941D125DC00E94E118802F0E94241249 -:1027800057C0112339F0011153C0872D8F710E945A -:1027900006194EC0023008F04BC0F7CF112339F0B4 -:1027A000872D8F710E94C01843C01123C9F3872D54 -:1027B0008F710E94E1183CC0112329F0872D8F7181 -:1027C0000E94AB1835C00E94A11832C0112351F0ED -:1027D000172D1F71812F0E94C01863E0812F0E9466 -:1027E000D41926C081E00E94DD19023008F182E090 -:1027F0000E94DD191DC0112331F0002389F28C2DB8 -:102800000E94061115C0002391F28C2D0E94CE115A -:102810000FC0472D4F706C2DC7010E9415050E94F7 -:10282000C51706C0472D4F706C2DC7010E94F205D9 -:10283000DD20F9F00E94D01980FD1BC0F701128243 -:102840000E94CA190E94C018C7010E9448140E9421 -:10285000CA190F90DF91CF911F910F91FF90EF90C8 -:10286000DF90CF90BF90AF909F908F907F900C940F -:10287000E1180F90DF91CF911F910F91FF90EF9092 -:10288000DF90CF90BF90AF909F908F907F900895F2 -:102890000F931F93CF93DF93EC01888199812B8154 -:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B -:1028B0000E944A05882371F0688179818A810E948B -:1028C000C6198C010E947B190E944218B801CE01E2 -:1028D0000E942B12DF91CF911F910F9108950E94BA -:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471 -:1028F000E11F0E94301F80E090E00E940C1080E0F9 -:1029000090E00C9422100E948E1A0C946F140E9476 -:10291000BB19292F22952F7030E02C3031054CF453 -:102920002A3031056CF42250310922303105A8F4E7 -:1029300007C02C30310569F02F30310551F00DC042 -:10294000803F69F018F4803E40F409C0843F29F4C8 -:1029500006C093FB882780F9089580E0089581E000 -:102960000895CF93DF9300D000D01F92CDB7DEB78C -:102970000F900F900F900F900F90DF91CF910895CF -:10298000CF93DF9300D000D000D0CDB7DEB726962E -:102990000FB6F894DEBF0FBECDBFDF91CF91089583 -:1029A0001F93CF93DF93C091850116E0809186013C -:1029B000C81799F0D0E01C9FF0011D9FF00D112465 -:1029C000E957FE4F408151816281738184819581F5 -:1029D0000E94C0142196C770E9CFDF91CF911F915B -:1029E00008954091B7015091B8016091B90170917B -:1029F000BA018091BB019091BC010C94C0148091EC -:102A0000BC0182958F7009F054C08091B901882370 -:102A100009F44FC080918501A09186016091B701B2 -:102A20007091B8014091BA015091BB01B6E08A178C -:102A300009F43FC090E041155105C1F17F3F11F409 -:102A40006F3FA1F1B89FF001B99FF00D1124E95734 -:102A5000FE4F218172132AC02081621327C0228178 -:102A6000211124C0238134812417350710F421500B -:102A70003109241B350B283C3105C0F42091BC01E1 -:102A80002F7020612093BC0126E0289FF001299F30 -:102A9000F00D1124E457FE4F80818F708061808398 -:102AA00087EB91E00E9448140C94D0140196877033 -:102AB000BECF0895CF92DF92EF92FF920F931F93B4 -:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32 -:102AD0000FBECDBF8C0185E0F801DE011D9601908F -:102AE0000D928A95E1F7D8014C9111965C9111975E -:102AF00012966C9112971396CD90DC9014973091AA -:102B0000B7017091B8018091BA019091BB01009713 -:102B100009F46BC17F3F19F43F3F09F466C1E090AF -:102B2000B901EE2009F4C0C02091BC01C816D90635 -:102B300028F0F601E81BF90BCF0104C080959095B1 -:102B40008C0D9D1DFF24F394883C910578F0F12CA9 -:102B5000207F09F0C6C07C2DD98AC88A89890E9445 -:102B6000B11487EB91E00E944814B1C0822F807F9E -:102B700009F046C0751314C0341312C0611110C09F -:102B80002F7020612093BC010E94F11487EB91E02B -:102B90000E9448148091BC01D80115968C932EC0D8 -:102BA000CD2819F15F3F11F44F3FF9F0F62E611176 -:102BB0001CC0809185012091860136E0821709F4BE -:102BC0005AC090E0389FF001399FF00D1124E95769 -:102BD000FE4F7181571306C07081471303C0728185 -:102BE000711103C001968770E9CFF62E662309F4B0 -:102BF00018C18091BC0181608093BC01F12C11C18E -:102C0000751308C0341306C0611104C08091BC0163 -:102C1000D801C3C04D875E878D859E856A8B0E94D3 -:102C200087146A898823E1F16623D1F12091BC01E0 -:102C3000822F82958F7090E0029774F08091B70197 -:102C40009091B80198878F831986DB86CA862C8776 -:102C5000CE0107960E94481486E0F801A7EBB1E088 -:102C600001900D928A95E1F70E94FF140E94F114E1 -:102C7000FF24F394D6C04D875E878D859E850E9484 -:102C8000BB19292F22952F7030E0223031050CF02E -:102C9000BCC09F7009F0B6C0805E883008F4C1C027 -:102CA000C8010E944814E4CFC816D90608F453C0DE -:102CB000F601E81BF90BCF01883C910508F450C0E0 -:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E -:102CD000F1E086E0DF011D928A95E9F70E94F11488 -:102CE000A0C0751314C0341312C0611110C08091BC -:102CF000BC01F8018583C8010E94481486E0E7EB17 -:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C -:102D10005E878D859E856A8B0E9487146A898823C9 -:102D200009F4BECF662309F4BBCF2091BC01822FEA -:102D300082958F7090E002970CF48ECF8091B7014E -:102D40009091B8019A8389831B82DD82CC822E8385 -:102D5000CE0101967FCF809590958C0D9D1DACCFB7 -:102D6000F62E662309F49CCF75132EC034132CC0A5 -:102D70002091BC0120FD1FC0822F82958F70D9F059 -:102D8000D80115962C9315978F3049F08F5F982FA7 -:102D90009295907F822F8F70892B15968C93C80106 -:102DA0000E94481486E0F801A7EBB1E001900D9273 -:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7 -:102DC0000D928A95E1F72DC04D875E878D859E8592 -:102DD0000E948714811140CF8091BC018160809353 -:102DE000BC01C8010E9448141CC0662309F458CFD6 -:102DF0004D875E878D859E850E948714882309F400 -:102E00004FCF2ACF811148CF0CC0243031050CF0B0 -:102E100047CF9F7009F440CFF8019581907F09F06A -:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D -:102E3000DF91CF911F910F91FF90EF90DF90CF9096 -:102E400008951F93CF93DF93CDB7DEB72C970FB6BE -:102E5000F894DEBF0FBECDBF4F83588769877A874E -:102E60008B879C87CE0107960E945A15882369F0AC -:102E70008F8198852A853B85232BF1F19F3F09F0AF -:102E800063C08F3F09F060C037C086E0FE0137960F -:102E9000DE01119601900D928A95E1F76F81788598 -:102EA000EA85FB85309741F17F3F11F46F3F21F1B7 -:102EB0002091860130E0C9010196877099274091E1 -:102EC000850150E08417950709F447C069837A8328 -:102ED000FD83EC8396E0929FD001939FB00D112467 -:102EE000A957BE4FFE01319601900D929A95E1F7D8 -:102EF000809386010E94D01416E080918501909104 -:102F000086018917C1F1189FC001112489579E4F6E -:102F10000E945A15882379F1E09185011E9FF001E6 -:102F20001124E957FE4F4081518162817381848170 -:102F300095810E94C0148091850190E00196877070 -:102F4000992780938501D9CF4F81588569857A85E6 -:102F50008B859C850E94C014CFCF0E948314109251 -:102F6000860110928501E7EBF1E086E0DF011D921A -:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45 -:102F8000CDBFDF91CF911F910895EF92FF920F93E4 -:102F90001F93CF93DF938C01009709F46CC0F12C41 -:102FA000EE24E394E8012196F8018491843740F4FB -:102FB000843008F051C0813081F0823019F15BC05B -:102FC000853709F444C0A8F19CE7980F903708F0C2 -:102FD00052C08F770E94CE1141C00E5F1F4FFE017D -:102FE000C49180E28C0F883048F4C7708E2D01C0E8 -:102FF000880FCA95EAF70E94A11A14C08C2F0E946C -:1030000006112DC00E5F1F4FFE01C49180E28C0F90 -:10301000883058F4C7708E2D01C0880FCA95EAF722 -:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3 -:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3 -:103040009FE00197F1F700C00000C150F6CF0E5F7E -:103050001F4FFE01F49003C00E9406118E018F2DB8 -:10306000882309F49FCFEFE9FFE03197F1F700C023 -:1030700000008150F5CFDF91CF911F910F91FF900C -:10308000EF90089508956093C1017093C2018093F9 -:10309000C3019093C4010C946F140F931F9300917C -:1030A000C1011091C2012091C3013091C401DC0122 -:1030B000CB01802B912BA22BB32B8093C10190933A -:1030C000C201A093C301B093C4011F910F910C944E -:1030D0006F140F931F930091C1011091C2012091B1 -:1030E000C3013091C401DC01CB0180239123A223D1 -:1030F000B3238093C1019093C201A093C301B09305 -:10310000C4011F910F910C946F140F931F930091A2 -:10311000C1011091C2012091C3013091C401DC01B1 -:10312000CB0180279127A227B3278093C1019093D9 -:10313000C201A093C301B093C4011F910F910C94DD -:103140006F141092BD011092BE011092BF01109237 -:10315000C0010C946F1441E050E060E070E004C0E6 -:10316000440F551F661F771F8A95D2F74093BD0104 -:103170005093BE016093BF017093C0010C946F1413 -:1031800041E050E060E070E004C0440F551F661F4E -:10319000771F8A95D2F78091BD019091BE01A091D1 -:1031A000BF01B091C001482B592B6A2B7B2B409358 -:1031B000BD015093BE016093BF017093C0010C9498 -:1031C0006F1441E050E060E070E004C0440F551F10 -:1031D000661F771F8A95D2F7409550956095709538 -:1031E0008091BD019091BE01A091BF01B091C0013D -:1031F000482359236A237B234093BD015093BE018A -:103200006093BF017093C0010C946F1441E050E0D3 -:1032100060E070E004C0440F551F661F771F8A9559 -:10322000D2F78091BD019091BE01A091BF01B091F4 -:10323000C001482759276A277B274093BD01509337 -:10324000BE016093BF017093C0010C946F140F9383 -:103250001F930091BD011091BE012091BF013091DB -:10326000C001DC01CB01802B912BA22BB32B8093CF -:10327000BD019093BE01A093BF01B093C0011F9107 -:103280000F910C946F140F931F930091BD01109137 -:10329000BE012091BF013091C001DC01CB01802330 -:1032A0009123A223B3238093BD019093BE01A093E9 -:1032B000BF01B093C0011F910F910C946F140F9335 -:1032C0001F930091BD011091BE012091BF0130916B -:1032D000C001DC01CB0180279127A227B32780936F -:1032E000BD019093BE01A093BF01B093C0011F9197 -:1032F0000F910C946F140895CF92DF92EF92FF928A -:103300000F931F93CF93DF938C01C090C101D09096 -:10331000C201E090C301F090C4018091BD01909181 -:10332000BE01A091BF01B091C001C82AD92AEA2AE2 -:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520 -:10334000A795979587950A94D2F780FF06C0B80194 -:103350008C2F0E944808019721F4219760F780E0A4 -:1033600001C08C2FDF91CF911F910F91FF90EF90B3 -:10337000DF90CF900895CF93DF93EC010E947C19EA -:10338000BE010E944808DF91CF910895CB010E94B1 -:10339000BB1908958091C5018595859585950895FA -:1033A0008091C5018770089598E0899F900111244C -:1033B000262B2093C5010C94C0182091C50180953F -:1033C00082238093C501982F977069F430E0482FCD -:1033D000552747FD50952417350729F08595859584 -:1033E00085950C94E11808959091C501977081E03E -:1033F00009F480E0089590910C01992321F09091B7 -:103400000D01911109C020910E0130910F01F901B8 -:1034100032969FEF40E01FC0982F9695969596950F -:103420009F3050F5E0910E01F0910F01E90FF11D71 -:10343000877021E030E0A90102C0440F551F8A9532 -:10344000E2F7CA019181892B818308959F3F39F06A -:103450004F5F4E3041F051915813F8CF0DC05111CC -:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08 -:1034700097FDFA9582830895089590910C01992300 -:1034800021F090910D01911109C020910E01309110 -:103490000F01F9013296205F3F4F1FC0982F96957C -:1034A000969596959F30F0F4E0910E01F0910F0102 -:1034B000E90FF11D877021E030E0A90102C0440F3F -:1034C000551F8A95E2F7CA018095918189238183EE -:1034D00008953196E217F30729F090819813F9CFF8 -:1034E0001082F7CF089581E090E0E0910E01F09115 -:1034F0000F01E80FF91F1082019680319105A9F79D -:1035000008959091D901892B8093D90108958095D0 -:103510009091D90189238093D90108951092D901FE -:1035200008959091D801892B8093D80108958095B2 -:103530009091D80189238093D80108951092D801E1 -:1035400008959091D701892B8093D7010895809594 -:103550009091D70189238093D70108951092D701C4 -:1035600008958093C60108951092C6010895809130 -:103570000E0190910F01FC0131969C01205F3F4F9D -:1035800080E0919191118F5FE217F307D1F70895D1 -:10359000E0910E01F0910F018091D9018083E091BB -:1035A0000E01F0910F0190818091D801892B8083C9 -:1035B000E0910E01F0910F0190818091D701892B4C -:1035C00080838091C601882361F0E0910E01F09123 -:1035D0000F019081892B80830E94B71A811110926C -:1035E000C60180910E0190910F010C94F60F20E01E -:1035F000009739F0AC0141505109842395232F5F86 -:10360000F7CF822F0895CF92DF92EF92FF926C0155 -:10361000EE24FF24C114D104E104F10421F0C70118 -:10362000B60120E101C020E0C72ED82EE92EFF24EC -:10363000C114D104E104F10419F0285FC701B601F7 -:103640006B017C0154E0F694E794D794C7945A95A3 -:10365000D1F7C114D104E104F10419F02C5FC701C2 -:10366000B6016B017C0142E0F694E794D794C794CD -:103670004A95D1F7C114D104E104F10419F02E5F89 -:10368000C701B601DC01CB01B695A7959795879543 -:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5 -:1036A000DF90CF9008958091F101843021F1109244 -:1036B000DB0120E488E190E00FB6F894A8958093B0 -:1036C00060000FBE2093600080E00E94E30883B793 -:1036D000817F846083BF83B7816083BF789488953E -:1036E00083B78E7F83BF88E10FB6F8948093600024 -:1036F000109260000FBE0895089508950E947C1BEB -:103700000E944B030E947D1B0E94400491E08111A6 -:1037100001C090E0892F08950E9483140E94EA0F4F -:103720000C94E30882E084BD93E095BD9AEF97BDC9 -:1037300080936E0008952FB7F8948091DC019091EA -:10374000DD01A091DE01B091DF012FBF0895CF927E -:10375000DF92EF92FF920F931F932FB7F89440914F -:10376000DC015091DD016091DE017091DF012FBF1E -:103770006A017B01EE24FF248C0120E030E0C016BA -:10378000D106E206F30610F4415051099A01281BB4 -:10379000390BC9011F910F91FF90EF90DF90CF90EF -:1037A00008951F920F920FB60F9211248F939F933B -:1037B000AF93BF938091DC019091DD01A091DE0178 -:1037C000B091DF010196A11DB11D8093DC019093A2 -:1037D000DD01A093DE01B093DF01BF91AF919F9116 -:1037E0008F910F900FBE0F901F9018950E94E70CBD -:1037F000F8942FEF87EA91E6215080409040E1F75E -:1038000000C0000087E090EBDC018093FB01909307 -:10381000FC01A093FD01B093FE019CE088E10FB68E -:10382000F894A895809360000FBE90936000FFCF3E -:10383000EF92FF920F931F93CF93DF93D82FCDE09A -:103840008C2F0E94390405E010E0E82EF12CC7010E -:10385000002E02C0959587950A94E2F780FF09C073 -:10386000602F7C2F80E00E94F305D81302C081E016 -:1038700006C00150110958F7C15010F780E0DF91E0 -:10388000CF911F910F91FF90EF900895CF93C82F84 -:103890008CE20E94181C882321F08C2FCF910C946D -:1038A000181C80E0CF910895CF930E949B1D811139 -:1038B00002C00E94811DC5E6C15049F00E944B0321 -:1038C0008FE39CE90197F1F700C00000F5CF89E292 -:1038D0000E94461C811113C18AE20E94461C81117C -:1038E0000E94811D85E00E94461C81110E94F61BEA -:1038F0000E94A61D8093DA0187E00E94461C88235F -:10390000A9F18BE10E94461C882351F08091DA01D5 -:1039100081FB222720F991E0922790FB81F90EC0CC -:103920008EE00E94461C882361F08091DA0182FBC0 -:10393000222720F991E0922790FB82F98093DA0107 -:1039400015C080E10E94461C9091DA01882341F065 -:1039500093FB222720F981E0822780FB93F904C0A2 -:10396000892F809580FB90F99093DA018091DA019C -:103970000E94AA1D0E94B81D8093FA0180EE0E9449 -:10398000461C882341F08091FA01982F909590FB76 -:1039900080F98093FA0189E30E94461C882359F03C -:1039A0008091FA0181FB222720F991E0922790FB78 -:1039B00081F98093FA0182EE0E94461C882359F017 -:1039C0008091FA0182FB222720F991E0922790FB57 -:1039D00082F98093FA0186EE0E94461C882359F0F2 -:1039E0008091FA0183FB222720F991E0922790FB36 -:1039F00083F98093FA0183EE0E94461C882359F0D4 -:103A00008091FA0184FB222720F991E0922790FB14 -:103A100084F98093FA0185E30E94461C882359F0BB -:103A20008091FA0185FB222720F991E0922790FBF3 -:103A300085F98093FA0181E30E94461C882359F09E -:103A40008091FA0186FB222720F991E0922790FBD2 -:103A500086F98093FA0181E10E94461C882359F07F -:103A60008091FA0187FB222720F991E0922790FBB1 -:103A700087F98093FA018091FA010E94BC1D809120 -:103A8000FA0187FB882780F980930D0187E20E9465 -:103A9000461CC82F8EE10E94461C8111C2608FE136 -:103AA0000E94461C8111C46080E20E94461C811164 -:103AB000C86081E20E94461C8111C06182E20E94BE -:103AC000461C8111C06283E20E94461C8111C064C1 -:103AD00084E20E94461C882311F0C06802C0CC23F7 -:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4 -:103AF000682F70E080E090E0CF910C944318CF9154 -:103B000008956DEE7EEF80E090E00E94ED2360E08E -:103B100082E090E00E94DB2360E083E090E00E947E -:103B2000DB2360E084E090E00E94DB2360E085E03E -:103B300090E00C94DB2380E090E00E94D52321E00C -:103B40008D3E9E4F09F020E0822F089582E090E0A4 -:103B50000C94CD23682F82E090E00C94DB2383E06B -:103B600090E00C94CD23682F83E090E00C94DB234D -:103B700084E090E00C94CD23682F84E090E00C94D6 -:103B8000DB238091E20180FF0BC06091130185E08F -:103B9000689FB001112475956795759567952BC041 -:103BA00081FF09C06091130185E0689FB001112475 -:103BB0007595679520C082FF07C06091130185E06D -:103BC000689FB001112417C09091E3019923D1F0AF -:103BD00060911201961788F72091130185E0289FC4 -:103BE00090011124929FA001939F500D112470E029 -:103BF000CA010E949F236038710540F46115710568 -:103C000039F002C065E070E0862F08958FE70895CF -:103C100081E008958091E20180FF08C06091110168 -:103C200070E0759567957595679521C081FF06C011 -:103C30006091110170E07595679519C082FF04C00D -:103C40006091110170E010C09091E3019923C1F0DF -:103C5000609110019617A0F780911101899FC00112 -:103C6000112470E00E949F236038710528F46115CB -:103C7000710521F0862F08958FE7089581E008955A -:103C800061E070E0F4CF803F21F40E94C11D819576 -:103C900004C0813F29F40E94C11D8093E60108956C -:103CA000823F21F40E94C11D819504C0833F29F405 -:103CB0000E94C11D8093E5010895893F19F40E9477 -:103CC0000A1E05C08A3F31F40E940A1E8195809326 -:103CD000E70108958B3F21F40E940A1E819504C0DC -:103CE0008C3F29F40E940A1E8093E8010895843FC6 -:103CF00021F48091E401816017C0853F21F4809117 -:103D0000E401826011C0863F21F48091E401846067 -:103D10000BC0873F21F48091E401886005C0883F93 -:103D200031F48091E40180618093E40108958D3F36 -:103D300021F48091E20181600BC08E3F21F48091DB -:103D4000E201826005C08F3F29F48091E201846026 -:103D50008093E2010895803F39F48091E60187FF66 -:103D60006CC01092E60169C0813F29F48091E601A0 -:103D70001816BCF362C09091E501823F29F497FFC9 -:103D80005CC01092E50159C0833F19F41916CCF3B9 -:103D900054C0893F41F48091E70118160CF04DC0E2 -:103DA0001092E7014AC08A3F29F48091E70187FF1A -:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6 -:103DC0001092E8013AC08C3F29F48091E80118165E -:103DD000BCF333C0843F21F48091E4018E7F17C08F -:103DE000853F21F48091E4018D7F11C0863F21F44D -:103DF0008091E4018B7F0BC0873F21F48091E40127 -:103E0000877F05C0883F31F48091E4018F7E8093E5 -:103E1000E40113C08D3F21F48091E2018E7F0BC03D -:103E20008E3F21F48091E2018D7F05C08F3F29F400 -:103E30008091E2018B7F8093E2018091E501811105 -:103E40000EC08091E60181110AC08091E7018111C5 -:103E500006C08091E801811102C01092E30108952B -:103E600084EE91E00E9401100E949B1B9093E1015F -:103E70008093E00108951F93CF93DF938091E00139 -:103E80009091E1010E94A71BAC019091E30199235D -:103E900021F02091140130E006C0209115018AE044 -:103EA000289F900111244217530708F486C080917F -:103EB000E501C091E601D091E7011091E80181117F -:103EC00007C0C11176C0D11174C0111172C075C084 -:103ED0009F3F19F09F5F9093E301181624F40E940E -:103EE000C11D8093E5018091E50187FF05C00E9417 -:103EF000C11D81958093E5011C1624F40E94C11D0B -:103F00008093E6018091E60187FF05C00E94C11DF4 -:103F100081958093E6016091E501662339F1C091B6 -:103F2000E601CC2319F1772767FD7095872F972F2E -:103F30000E94B02223E333E343E35FE30E941423B0 -:103F40000E947D226093E5016C2F772767FD7095B5 -:103F5000872F972F0E94B02223E333E343E35FE3ED -:103F60000E9414230E947D226093E6011D1624F412 -:103F70000E940A1E8093E7018091E70187FF05C038 -:103F80000E940A1E81958093E701111624F40E9475 -:103F90000A1E8093E8018091E80187FF05C00E9416 -:103FA0000A1E81958093E801DF91CF911F910C94B7 -:103FB000301F9F3F09F08ECF96CFDF91CF911F9199 -:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE -:103FD0001092E3011092E2010895833081F128F4F8 -:103FE000813059F08230D1F00895853009F449C00C -:103FF000B8F1863009F456C0089580911501262F36 -:1040000030E0280F311D2F3F310524F4680F6093F5 -:10401000150108958FEF8093150108958091140183 -:10402000262F30E0280F311D2F3F310524F4680F73 -:104030006093140108958FEF809314010895809187 -:104040001301262F30E0280F311D2F3F310524F4B6 -:10405000680F6093130108958FEF80931301089503 -:1040600080911201262F30E0280F311D2F3F31059E -:1040700024F4680F6093120108958FEF809312016A -:10408000089580911101262F30E0280F311D2F3F18 -:10409000310524F4680F6093110108958FEF809328 -:1040A0001101089580911001262F30E0280F311D55 -:1040B0002F3F310524F4680F6093100108958FEFAE -:1040C000809310010895833011F128F4813049F074 -:1040D000823091F00895853081F120F18630C1F170 -:1040E000089580911501681720F4861B80931501AF -:1040F000089510921501089580911401681720F415 -:10410000861B8093140108951092140108958091E4 -:104110001301681720F4861B8093130108951092F1 -:104120001301089580911201681720F4861B809373 -:1041300012010895109212010895809111016817DB -:1041400020F4861B809311010895109211010895A7 -:1041500080911001681720F4861B80931001089548 -:104160001092100108950F931F938D3109F46BC0C5 -:1041700008F03FC08E3009F47FC0C0F4873009F4E6 -:1041800069C068F4863009F0B1C08091DA01817F9E -:104190008E7F8093DA0181E08093EA01A8C08830A5 -:1041A00009F4A2C08B3009F49FC0A0C0863109F485 -:1041B0009BC078F4803109F472C0813109F096C057 -:1041C0000E94831490910D0181E0892780930D0155 -:1041D0008BC0893109F488C08B3109F087C0809188 -:1041E000DA0181FB222720F991E0922790FB81F9E7 -:1041F0004CC0853309F470C048F4873209F46CC0B0 -:1042000008F459C0893209F467C070C0833438F4A7 -:104210008A3308F04EC0883309F466C067C083341F -:1042200009F45AC0883409F061C00E9483140FEF6A -:1042300013ED20E3015010402040E1F700C00000E2 -:104240000E94F61B51C00E9437220E94EA0F0E9472 -:10425000E3084AC09091DA01892F8095817080FB34 -:1042600090F929F0966098609093DA0140C0997FA8 -:10427000977F9093DA0138C08091DA0182FB222780 -:1042800020F991E0922790FB82F98093DA0199233B -:1042900059F18091DA0181608093DA0125C0809123 -:1042A000DA0183FB222720F991E0922790FB83F922 -:1042B000ECCF895301C08D5141E050E060E070E0E7 -:1042C0008A019B0104C0000F111F221F331F8A9512 -:1042D000D2F7C901B80104C061E070E080E090E06D -:1042E0000E9443180E94831481E001C080E01F9166 -:1042F0000F91089580E0089580E00895CF93C82F2E -:104300008091EA01813079F018F08230E9F187C0BC -:10431000E0910E01F0910F018081813169F08232CC -:1043200009F07FC009C0E0910E01F0910F0180817A -:10433000813111F0823261F48C2F0E947A21811137 -:1043400004C08C2F0E94B3201DC081E090E01AC0F1 -:104350008C2F0E947C21811114C0C43179F048F463 -:10436000CB3079F0C03109F060C082E08093EA017F -:1043700008C0C93219F0C83321F057C01092EA01C1 -:1043800054C081E0817053C0C93289F118F5C4313D -:1043900071F1A8F4C73009F046C08AE08093150196 -:1043A00094E19093140193E0909313018093120190 -:1043B00088E08093110188E28093100134C0CE51CF -:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB -:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC -:1043E00013C0C13579F0C235F1F461E00DC08091A0 -:1043F000E901882319F01092E90115C081E080934A -:10440000EA0115C061E006C08091E9010E94ED1F3C -:104410000AC06AE08091E9010E94632004C0109202 -:10442000EA0180E004C081E002C080E0ABCFCF9120 -:104430000895E1E8F0E08081886080838081816078 -:1044400080838FB7F89493E09093890090ED9093D8 -:1044500088008FBF0895EFE6F0E08081826080835E -:104460000895EFE6F0E080818D7F80830895EFE688 -:10447000F0E0908182E08927808308951F920F9257 -:104480000FB60F9211242F933F934F935F936F9327 -:104490007F938F939F93AF93BF93EF93FF938091FD -:1044A000EB019091EC0101969093EC018093EB016C -:1044B000811103C082E00E94E308E091EC01E695DF -:1044C000E695F0E0EC54FB4FE4918091EB018E1304 -:1044D00003C080E00E94E308FF91EF91BF91AF918C -:1044E0009F918F917F916F915F914F913F912F910C -:1044F0000F900FBE0F901F90189504D06894B111C3 -:104500008DC0089570D088F09F5790F0B92F9927EB -:10451000B751A0F0D1F0660F771F881F991F1AF0CE -:10452000BA95C9F712C0B13081F077D0B1E00895E3 -:1045300074C0672F782F8827B85F39F0B93FCCF364 -:10454000869577956795B395D9F73EF490958095C4 -:10455000709561957F4F8F4F9F4F0895E89409C0E4 -:1045600097FB3EF490958095709561957F4F8F4FA6 -:104570009F4F9923A9F0F92F96E9BB279395F695BC -:10458000879577956795B795F111F8CFFAF4BB0F3A -:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E -:1045A000882311F096E911C0772321F09EE8872F28 -:1045B000762F05C0662371F096E8862F70E060E0E4 -:1045C0002AF09A95660F771F881FDAF7880F96955D -:1045D000879597F9089557FD9058440F551F59F046 -:1045E0005F3F71F04795880F97FB991F61F09F3FE0 -:1045F00079F087950895121613061406551FF2CF09 -:104600004695F1DF08C0161617061806991FF1CF58 -:1046100086957105610508940895E894BB2766277F -:104620007727CB0197F908950BD078C069D028F08F -:104630006ED018F0952309F05AC05FC01124EECF58 -:10464000CADFA0F3959FD1F3950F50E0551F629FED -:10465000F001729FBB27F00DB11D639FAA27F00DDB -:10466000B11DAA1F649F6627B00DA11D661F829F02 -:104670002227B00DA11D621F739FB00DA11D621FE7 -:10468000839FA00D611D221F749F3327A00D611D04 -:10469000231F849F600D211D822F762F6A2F1124E6 -:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39 -:1046B000BB1F661F771F881F91505040A9F79E3F70 -:1046C000510570F014C0AACF5F3FECF3983EDCF3C5 -:1046D000869577956795B795F795E7959F5FC1F7AD -:1046E000FE2B880F911D9695879597F9089597F958 -:1046F0009F6780E870E060E008959FEF80EC089588 -:1047000000240A94161617061806090608950024B0 -:104710000A9412161306140605060895092E03942A -:10472000000C11F4882352F0BB0F40F4BF2B11F49E -:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF -:10474000072E16F4009407D077FD09D00E94B923F4 -:1047500007FC05D03EF4909581959F4F0895709584 -:1047600061957F4F0895EE0FFF1F0590F491E02DA6 -:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8 -:10478000B70710F0A61BB70B881F991F5A95A9F7FA -:1047900080959095BC01CD010895F999FECF92BD09 -:1047A00081BDF89A992780B50895A8E1B0E042E06C -:1047B00050E00C94F523262FF999FECF92BD81BDD0 -:1047C000F89A019700B4021639F01FBA20BD0FB64F -:1047D000F894FA9AF99A0FBE08950196272F0E942D -:1047E000DC230C94DB23DC01CB01FC01F999FECF27 -:1047F00006C0F2BDE1BDF89A319600B40D92415069 -:0A4800005040B8F70895F894FFCF78 -:10480A000220E508730950091C09E8080101C701DB -:10481A0028080A03140A3F4D363975042804F2039E -:10482A00B9034C0365037E039703010203040506DB -:04483A000708090062 -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/README.md b/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/README.md deleted file mode 100644 index 984106ff4..000000000 --- a/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# ErgoDox EZ Dvorak International Squisher - -Dvorak layout adjusted with several (linux) applications in mind: - -* Easier Escape for VIM -* Windows/Super key for awesome WM -* Alt+Shift for international characters -* PrintScreen for sys-rq -* Insert for the X11 clip-board - -Major layer changes: - -* Common multimedia keys are integrated into layer 0, less common into layer 1 -* No mouse keys -* Layer 2 is qwerty (for easier gaming & less fortunate keyboard users) - -Known issues: - -* Alt+Shift does not work reliably (depends on the X11 kb layout? Not - entirely clear...) - -![layer0](keyboard-layout0.png) -![layer1](keyboard-layout1.png) -![layer2](keyboard-layout2.png) - -## Changelog - -* 2016-03-29 - * Initial release diff --git a/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/compiled.hex b/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/compiled.hex deleted file mode 100644 index dc734d241..000000000 --- a/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/compiled.hex +++ /dev/null @@ -1,1158 +0,0 @@ -:100000000C947A020C94BE020C94BE020C94BE02B4 -:100010000C94BE020C94BE020C94BE020C94BE0260 -:100020000C94BE020C94BE020C94620D0C94340E1F -:100030000C94BE020C94BE020C94BE020C94BE0240 -:100040000C94BE020C943E220C94BE020C94BE0290 -:100050000C94BE020C94D11B0C94BE020C94BE02F4 -:100060000C94BE020C94BE020C94BE020C94BE0210 -:100070000C94BE020C94BE020C94BE020C94BE0200 -:100080000C94BE020C94BE020C94BE020C94BE02F0 -:100090000C94BE020C94BE020C94BE020C94BE02E0 -:1000A0000C94BE020C94BE020C94BE02A10EC30EB0 -:1000B000B10FC30EB10F080F2B0FB10F800F930FAD -:1000C0006212621291129112C712E71218141814D8 -:1000D000F2121814A213A2130914181418141214EB -:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300 -:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0 -:10010000C113CE13D513DC13E6130000F0A12E00AB -:1001100029002A00E100354100001E0034000400DF -:100120003371E2004D001F00360012001400E3009E -:100130002B002000370008000D0050002C0021008B -:10014000130018000E004F004A0022001C000C0093 -:100150001B0000006571B6004C000000007F00002D -:100160000154AE0049000000007700000254230053 -:100170000900070005000000460024000A000B00EB -:10018000100052004B002500060017001A00510015 -:10019000280026001500110019002F00E514270083 -:1001A0000F0016001D7130004E00314238002D0046 -:1001B000E500C10000000100010001000100010094 -:1001C00000003A001E0220022202010001003B0052 -:1001D0001F0221022302010001003C002F0226021F -:1001E0002F00AC0001003D00300227023000AB00C0 -:1001F00001003E003102350035020000010001001F -:1002000001000000010000000100010001000000E9 -:100210000100000001003F005200510024020000D4 -:1002200001004000240021001E000100A90041003F -:10023000250022001F003700010042002600230095 -:1002400020002700A800430025022E0231002E00C6 -:10025000AA00440045000100010001000000010067 -:100260000100010001000100000001001400040071 -:100270001D710100010001001A0016001B000100A1 -:100280000100010008000700060001000100010054 -:1002900015000900190001000100010017000A0003 -:1002A0000500000001000100010000000100000045 -:1002B0000100010001000000010000000100010038 -:1002C0001C000B00110000000100010018000D00CF -:1002D00010000100010001000C000E0036000100BA -:1002E0000100010012000F003700010001000100B1 -:1002F00013003342387101000100010001000100C8 -:1003000001000100000016034500720067006F0045 -:1003100044006F007800200045005A0000001603DA -:100320004500720067006F0044006F0078002000F5 -:1003300045005A0000000403090409026D0004018D -:1003400000A0FA09040000010301010009211101C4 -:100350000001223F000705810308000A090401008B -:100360000103010200092111010001224D000705CE -:10037000820308000A0904020001030000000921A9 -:10038000110100012236000705830308000A090451 -:1003900003000103000000092111010001223900BE -:1003A000070584031000011201100100000008ED90 -:1003B000FE071301000102000105010906A1010564 -:1003C0000719E029E7150025019508750181020547 -:1003D000081901290595057501910295017503918B -:1003E0000105071900297715002501957875018108 -:1003F00002C005010980A101850216010026B7008F -:100400001A01002AB700751095018100C0050C097A -:1004100001A1018503160100269C021A01002A9CF5 -:1004200002751095018100C005010902A1010901B1 -:10043000A10005091901290515002501950575017A -:10044000810295017503810105010930093115818A -:10045000257F95027508810609381581257F95014C -:1004600075088106050C0A38021581257F950175EE -:10047000088106C0C005010906A101050719E02988 -:10048000E715002501950875018102950175088120 -:100490000105081901290595057501910295017558 -:1004A0000391010507190029FF150025FF95067521 -:1004B000088100C0000000000000000000000001F2 -:1004C0000204060A0F17202C3A4A5D71879DB3C7B4 -:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF -:1004E0003A2C20170F0A0604020100000000000049 -:1004F0000000000011241FBECFEFDAE0DEBFCDBF49 -:1005000004B603FE24C08091FB019091FC01A091F0 -:10051000FD01B091FE018730904BA740B04BB9F47C -:100520001092FB011092FC011092FD011092FE014D -:1005300014BE84B7877F84BF88E10FB6F894809398 -:100540006000109260000FBEE0E0FFE3099511E04B -:10055000A0E0B1E0EAE0F8E402C005900D92A43317 -:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0 -:10057000B107E1F70E94A60A0C9403240C94000032 -:100580001092B9008AE08093B800089594EA90939D -:10059000BC009091BC0097FFFCCF9091B900987F70 -:1005A000983021F0903111F081E008958093BB00E4 -:1005B00084E88093BC008091BC0087FFFCCF8091D1 -:1005C000B900887F883111F0803471F780E0089598 -:1005D00084E98093BC008091BC0084FDFCCF089529 -:1005E0008093BB0084E88093BC008091BC0087FFAF -:1005F000FCCF9091B900987F81E0983209F480E0B7 -:10060000089584E88093BC008091BC0087FFFCCFF4 -:100610008091BB00089580910101811115C080E493 -:100620000E94C6028093010181110CC082E10E94E8 -:10063000F00280930101811105C08FEF0E94F0024A -:10064000809301010E94E80284B1807F84B985B162 -:10065000807F85B98AB1837F8AB98BB1837F8BB95B -:100660003E98469808950E94C604809301010E9416 -:100670000B0380B38C7080BB81B3836F81BBA5E318 -:10068000B1E0E3E4F1E08EE08E0F11921D928E1343 -:10069000FCCF0C94B004BF92CF92DF92EF92FF9206 -:1006A0000F931F93CF93DF9380910101882379F0FB -:1006B000809134018F5F80933401811108C00E94C2 -:1006C000C60480930101811102C00E94580405E311 -:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407 -:1006E000E394F12CC730D10500F58091010181110F -:1006F00064C080E40E94C60280930101811112C08F -:1007000082E10E94F0028093010181110BC0C701B8 -:100710000C2E01C0880F0A94EAF780950E94F0021F -:10072000809301010E94E80248C0CA30A1F028F479 -:10073000C83059F0C93061F005C0CC3089F070F094 -:10074000CD3089F0209A289810C0219A29980DC0A0 -:10075000229A2A980AC0239A2B9807C0529A01C05D -:10076000539A5B9802C03E9A469890EA9A95F1F7A0 -:100770009FB1799902C082E001C080E091709D250F -:10078000982B7C9902C084E001C080E0892B7D9980 -:1007900002C038E001C030E0832B7E9902C020E126 -:1007A00001C020E0822B9FB19095991F9927991F36 -:1007B0009295990F907E892B0FC080910101811134 -:1007C00049C080E40E94C60280930101882379F128 -:1007D000B12C0E94E8028B2DF8019081981719F036 -:1007E0008083C09200010E940B0321960F5F1F4F70 -:1007F000CE30D10509F076CF80910001882361F1D8 -:10080000815080930001882339F08FE99FE00197A0 -:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F -:10082000CF01825F91919D938E13FCCF15C083E120 -:100830000E94F002809301018111CACF81E40E94DD -:10084000C602809301018111C3CF0E940103B82E1B -:10085000B094BFCF80E0C0CF0E94560481E0DF910A -:10086000CF911F910F91FF90EF90DF90CF90BF90AD -:100870000895E82FF0E0ED5BFE4F80810895089524 -:100880000F931F93CF93DF93C3E4D1E010E00C2FBD -:10089000025F899190E00E94F71A180F0C13F9CFAC -:1008A000812FDF91CF911F910F9108950C94260510 -:1008B00056985E9825982D9826982E9827982F98C8 -:1008C0008FEF90E0909389008093880090938B0045 -:1008D00080938A0090938D0080938C00259A2D9AA6 -:1008E0002FEF80E792E0215080409040E1F700C078 -:1008F0000000269A2E9A2FEF80E792E02150804048 -:100900009040E1F700C00000279A2F9A2FEF80E770 -:1009100092E0215080409040E1F700C0000025980F -:100920002D982FEF80E792E0215080409040E1F732 -:1009300000C0000026982E982FEF80E792E021500B -:1009400080409040E1F700C0000027982F9856980B -:100950005E9825982D9826982E9827982F98089578 -:1009600089EA8093800089E08093810024982C9804 -:100970003F988AB18F748AB96E98479A8BB1806B11 -:100980008BB9769A0E9458040C94250580E28093D6 -:1009900001018091510181110EC00E94C00281E0CD -:1009A000809351012FEF83ED90E3215080409040E0 -:1009B000E1F700C0000080E40E94C60280930101BC -:1009C00081112EC00E94F00280930101811128C084 -:1009D0000E94F00280930101811122C08FE30E94E6 -:1009E000F0028093010181111BC00E94E80280E4A3 -:1009F0000E94C60280930101811112C08CE00E9406 -:100A0000F0028093010181110BC00E94F0028093DB -:100A10000101811105C08FE30E94F0028093010162 -:100A20000E94E80280910101089561110BC0FC0150 -:100A30008281882321F085EE0E94061103C085EE95 -:100A40000E94CE1180E090E0089508956091BD016C -:100A50007091BE018091BF019091C0010E94031B63 -:100A600056985E9825982D9826982E9827982F9816 -:100A7000813019F0823021F00895259A2D9A089539 -:100A8000269A2E9A089581E0089581E008950C94A5 -:100A9000450508950F931F93CF93DF938C01FC01BD -:100AA000C081D181CE010E947C19BE010E94F30554 -:100AB000EC01B8010E944705882309F48DC0F801B4 -:100AC0008281882309F44AC080915D0181111FC091 -:100AD000C431F0E5DF0709F051C00E94490581E00B -:100AE00080935D010E949B1B90935C0180935B014E -:100AF0001092540110925601109255011092580113 -:100B00001092570110925A011092590165C08091BC -:100B10005B0190915C010E94A71B883C910570F4D9 -:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB -:100B3000D183C0838F5F809354014EC0C43880E559 -:100B4000D80721F0C538D04501F13AC0F8018281BB -:100B5000882341F01092520182E01EC0C438E0E5C3 -:100B6000DE0759F580915201811106C086E20E948C -:100B7000061186E20E94CE1182E01CC0C438F0E566 -:100B8000DF0741F3C538D045D9F4F80182818823C5 -:100B900031F01092530180E20E941D121DC080911D -:100BA0005301811106C087E20E94061187E20E946C -:100BB000CE1180E20E9424120FC0C538D04529F31F -:100BC00081E08093520180935301C801DF91CF915E -:100BD0001F910F910C94430580E0DF91CF911F91FD -:100BE0000F910895089596E0799FF001112494E5FE -:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F -:100C0000E25FFE4F859194910895880F991FFC0132 -:100C1000E657F040859194910895880F991FFC0143 -:100C2000E65FFE4F8591949108950F931F93CF93A4 -:100C3000DF93EC01811520E3920750F5C11580E2A6 -:100C4000D80708F0C3C0CB3BD10590F4C83AD10512 -:100C500008F06AC0C53AD10508F05BC0C430D105C0 -:100C600008F0D0C1219709F0CAC101E010E00AC222 -:100C7000CF3FD10511F008F0C5C1C03FD10508F044 -:100C8000A2C0CE01805E9109089708F4BBC1B7C12C -:100C9000C13090E5D90709F4A2C020F5C0318FE436 -:100CA000D80770F4C11590E4D90708F094C0C115B5 -:100CB00021E3D20708F0A3C1DD278E01106CE2C149 -:100CC000C115D04509F09BC10E9483148FEF94E3B6 -:100CD0002CE0815090402040E1F700C000000E94CD -:100CE000F61BD0C1C11597E5D90758F4C03121E5ED -:100CF000D20708F01CC1C43180E5D80708F475C0DC -:100D00007EC1CE0190578115904108F078C1DF7007 -:100D100073C1C53AD10509F477C1C63AD10509F0C6 -:100D200076C102E810E4AEC1C83AD10509F472C137 -:100D3000C93AD10509F471C1CA3AD10509F470C1A3 -:100D4000CB3AD10509F46FC1CC3AD10509F46EC193 -:100D5000CD3AD10509F46DC1C03BD10509F46CC190 -:100D6000CE3AD10509F46BC1CF3AD10509F46AC175 -:100D7000C13BD10509F469C1C23BD10509F468C181 -:100D8000C33BD10509F467C1C43BD10509F466C171 -:100D9000C53BD10509F465C1C63BD10509F464C161 -:100DA000C73BD10509F463C1C83BD10509F462C151 -:100DB000C93BD10509F461C1CA3BD10509F460C141 -:100DC00000E014E45FC18E0110655CC1CE019F702C -:100DD0000E940D0658C1DF708E01106A53C18091C8 -:100DE000DA0181608093DA014DC10E949B1D81115F -:100DF00002C00E94811D0E94B81D90E09093FB01EB -:100E00008093FA01C23080E5D80721F48091FA017D -:100E1000816086C0C43090E5D90721F48091FA0141 -:100E200082607EC0C63020E5D20721F48091FA01AD -:100E3000846076C0C83080E5D80719F48091FA0143 -:100E400027C0CA3090E5D90721F48091FA0180616A -:100E500067C0CC3020E5D20721F48091FA0180628E -:100E60005FC0CE3080E5D80721F48091FA0180641C -:100E700057C0C03190E5D90721F48091FA0180680C -:100E80004FC0C23120E5D20729F48091FA01846075 -:100E9000886046C0C33080E5D80721F48091FA010C -:100EA0008E7F3EC0C53090E5D90721F48091FA01CC -:100EB0008D7F36C0C73020E5D20721F48091FA013A -:100EC0008B7F2EC0C93080E5D80719F48091FA01D4 -:100ED00026C0CB3090E5D90721F48091FA018F7EAE -:100EE0001FC0CD3020E5D20721F48091FA018F7D1B -:100EF00017C0CF3080E5D80721F48091FA018F7BAD -:100F00000FC0C13190E5D90721F48091FA018F77A4 -:100F100007C0C331D04531F48091FA018B7F877FC0 -:100F20008093FA018091FA010E94BC1DABC08D2F05 -:100F300099278F70992781309105D9F49E012370EC -:100F4000332702C0880F991F2A95E2F79C688E010B -:100F500044E0000F111F4A95E1F700271370802B22 -:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA -:100F70002FC08230910531F4DC2FCC278E01016F18 -:100F8000106A80C08330910569F4CE01837099277F -:100F900001E010E002C0000F111F8A95E2F7C801BE -:100FA0009C680FC084309105B9F4CE0183709927F5 -:100FB00001E010E002C0000F111F8A95E2F7C8019E -:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029 -:100FD0008C010C2B1D2B56C08530910531F4DC2F74 -:100FE000CC278E01046F106A4DC0069709F04AC0E5 -:100FF000CF71DD27DC2FCC278E01106243C000E0CB -:1010000010E040C08E013EC001E810E43BC003E8A0 -:1010100010E438C002EE14E435C009EE14E432C026 -:101020000AEE14E42FC005EB14E42CC006EB14E424 -:1010300029C007EB14E426C00CEC14E423C00DEC2B -:1010400014E420C003E815E41DC00AE815E41AC042 -:1010500002E915E417C004E915E414C001E216E43E -:1010600011C003E216E40EC004E216E40BC005E270 -:1010700016E408C006E216E405C007E216E402C062 -:101080000AE216E4C801DF91CF911F910F910895F4 -:1010900096E0799FF001112494E5899FE00DF11D00 -:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149 -:1010B0009491803E9105E0F4803C910558F5813390 -:1010C000910509F46FC048F48932910509F463C0B1 -:1010D0008A32910509F46DC072C089339105E9F037 -:1010E00082389105D1F08533910509F44DC067C070 -:1010F000833E910581F138F4803E9105B9F0823E3E -:101100009105D9F05CC0863E910561F1873E91055D -:10111000A1F155C00E94050608952091FA0120FD15 -:1011200002C021FF4CC080EE90E049C08091FA01DE -:1011300080FFF9CF89E390E042C08091FA0182FFFD -:101140000EC08091FA0184FF03C080E090E037C0B8 -:1011500083EE90E034C08091FA0182FFF2CF82EEFC -:1011600090E02DC08091FA0183FF0BC08091FA01BD -:1011700084FDEBCF87EE90E022C08091FA0183FFDF -:10118000F5CF86EE90E01BC08091FA0185FF07C085 -:1011900089E290E014C08091FA0185FFF9CF85E3E0 -:1011A00090E00DC08091FA0186FF07C08AE290E0CE -:1011B00006C08091FA0186FFF9CF81E390E00E949A -:1011C0001506089508950C94E20880916E01089523 -:1011D000CF93DF9300D01F92CDB7DEB79C018091F3 -:1011E000F101843019F593E099833B832A8390932E -:1011F000E9008FEF9091E800815095FD06C095EDD4 -:101200009A95F1F700008111F5CF8091E80085FFF4 -:101210000DC040E050E063E070E0CE0101960E9416 -:10122000520B8091E8008E778093E8000F900F902A -:101230000F90DF91CF910895CF93DF9300D01F924D -:10124000CDB7DEB72091F101243021F522E02983CA -:101250009B838A8383E08093E9008FEF9091E8007D -:10126000815095FD06C095ED9A95F1F7000081112A -:10127000F5CF8091E80085FF0DC040E050E063E0CD -:1012800070E0CE0101960E94520B8091E8008E77AB -:101290008093E8000F900F900F90DF91CF91089509 -:1012A0002091F1012430F1F422E02093E9002FEFA6 -:1012B0003091E800215035FD06C035ED3A95F1F743 -:1012C00000002111F5CF2091E80025FF0BC040E080 -:1012D00050E065E070E00E94520B8091E8008E774C -:1012E0008093E8000895CF93DF93EC019091F10192 -:1012F000943009F046C080910C018823D9F0809188 -:101300000D018823B9F09093E9008FEF9091E800E8 -:10131000815095FD06C095E19A95F1F70000811185 -:10132000F5CF8091E80085FF2CC040E050E060E1FF -:1013300070E017C081E08093E9008FEF9091E800A2 -:10134000815095FD06C095ED9A95F1F70000811149 -:10135000F5CF8091E80085FF14C040E050E068E0E0 -:1013600070E0CE010E94520B8091E8008E7780934E -:10137000E80080E1FE01AEE5B1E001900D928A95B2 -:10138000E1F7DF91CF9108958091F001811109C0BB -:101390000E94E70C0E94440D8091E20084608093DB -:1013A000E20008951092F001089508950C942B2204 -:1013B0000E948C1B0E9431220E94EA0F0C94E308C9 -:1013C00042E061EC81E00E94610C42E061EC82E06D -:1013D0000E94610C42E061EC83E00E94610C42E1FA -:1013E00061EC84E00C94610C8091F301833009F48A -:1013F00055C030F4813071F0823009F48EC0089508 -:101400008A3009F47AC08B3009F460C0893009F061 -:101410009CC020C08091F201813A09F096C0809171 -:10142000E800877F8093E8008091F6019091F701B2 -:10143000892B21F460E18EE591E003C060E080E05B -:1014400090E070E00E949D0B8091E8008B77809384 -:10145000E80008958091F201813209F076C0809110 -:10146000F6019091F701009719F0039709F06DC00C -:101470008091E800877F8093E8008091E80082FDFA -:1014800005C08091F1018111F8CF5FC08091F1001A -:1014900080936E018091E8008B7753C08091F201B8 -:1014A000813A09F052C08091F6019091F701892BA1 -:1014B00009F04BC08091E800877F8093E80080911D -:1014C000E80080FFFCCF80910C0136C08091F201D2 -:1014D0008132D9F58091F6019091F701892BA9F518 -:1014E0008091E800877F8093E8000E94960C8091AD -:1014F000F40180930C010C9483148091F2018132E9 -:1015000021F58091E800877F8093E8000E94960C87 -:101510008091F50180936F0108958091F201813AE5 -:10152000A1F48091E800877F8093E8008091E80033 -:1015300080FFFCCF80916F018093F1008091E800E3 -:101540008E778093E8000C94960C089584B7877F7B -:1015500084BF88E10FB6F894809360001092600019 -:101560000FBE90E080E80FB6F894809361009093EE -:1015700061000FBE0E9439100E94E70C0E94440DCA -:101580008091E20084608093E20078940E94CA0F08 -:101590000E943B1082E091E00E94E50F0E94192218 -:1015A0008091F101853069F40E94531B8091EF0115 -:1015B0008823B1F30E947E1B882391F30E943C0B89 -:1015C000EFCF0E944110ECCF292F33272330310574 -:1015D000C9F064F42130310581F02230310509F081 -:1015E00043C08DE690E02AE333E042C0213231056A -:1015F000F1F02232310541F137C082E190E027EA73 -:1016000033E036C099278130910541F08230910551 -:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4 -:1016200002C0E6E0F3E0849190E09F0121C06430C5 -:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5 -:10164000318189E090E014C0643070F470E0FB01F7 -:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47 -:10166000FE4F808190E004C080E090E020E030E018 -:10167000FA0131832083089580E189BD82E189BD2B -:1016800009B400FEFDCF8091D8008F7D8093D800F3 -:101690008091E00082608093E0008091E00081FD15 -:1016A000FCCF0895CF92DF92EF92FF920F931F939A -:1016B000CF93DF93EC018B016A010E94B50C81117D -:1016C00033C0C114D10439F0F60180819181081B27 -:1016D000190BC80FD91FE12CF12C0115110519F1B7 -:1016E0008091E80085FD16C08091E8008E77809398 -:1016F000E800C114D10449F0F60180819181E80E1F -:10170000F91EF182E08285E00FC00E94B50C8823AB -:1017100021F30AC089918093F10001501109FFEF74 -:10172000EF1AFF0ADACF80E0DF91CF911F910F917E -:10173000FF90EF90DF90CF9008952091F8013091C5 -:10174000F9012617370748F06115710539F4209122 -:10175000E8002E772093E80001C0B90140E0611550 -:101760007105A9F12091F101222309F443C025302C -:1017700009F442C02091E80023FD40C02091E80018 -:1017800022FD32C02091E80020FFE9CF4091F30014 -:101790002091F20030E0342BFC01CF01611571057E -:1017A00059F02830310540F481918093F100615067 -:1017B00071092F5F3F4FF1CF41E02830310509F02B -:1017C00040E02091E8002E772093E800C8CF411137 -:1017D000C9CF0AC08091F101882361F0853061F0A2 -:1017E0008091E80083FD0AC08091E80082FFF2CF7B -:1017F00080E0089582E0089583E0089581E00895EF -:101800002091F8013091F9012617370748F061154A -:10181000710539F42091E8002E772093E80001C08B -:10182000B901FC0120E06115710591F18091F10190 -:10183000882309F440C0853009F43FC08091E80056 -:1018400083FD3DC08091E80082FD2FC08091E800BB -:1018500080FFE9CF2091F3008091F20090E0922B7D -:101860006115710559F08830910540F42491209359 -:10187000F1003196615071090196F2CF21E008978D -:1018800009F020E08091E8008E778093E800CBCFCC -:101890002111CCCF0AC08091F101882361F08530FD -:1018A00061F08091E80083FD0AC08091E80082FF2A -:1018B000F2CF80E0089582E0089583E0089581E00A -:1018C0000895982F973058F59093E900981739F0BC -:1018D0007091EC002091ED005091F00003C0242F96 -:1018E000762F50E021FF19C03091EB003E7F3093FE -:1018F000EB003091ED003D7F3093ED003091EB0037 -:1019000031603093EB007093EC002093ED00509326 -:10191000F0002091EE0027FF07C09F5FD3CF8F70AC -:101920008093E90081E0089580E008958091F201BC -:1019300087FF11C08091E80082FD05C08091F10110 -:101940008111F8CF11C08091E8008B770BC0809196 -:10195000F101882349F08091E80080FFF8CF809161 -:10196000E8008E778093E80008952091E40030919C -:10197000E50095E64091EC00842F817040FF22C085 -:101980008091E80080FD1CC08091F101882391F0D6 -:10199000853091F08091EB0085FD10C04091E4000E -:1019A0005091E5004217530729F39A01915011F71E -:1019B00084E0089582E0089583E0089581E0089529 -:1019C00080E008954091E80042FFDECF08950E9434 -:1019D000550D0E945D0DE0EEF0E080818160808316 -:1019E000E8EDF0E080818F77808319BCA7EDB0E04F -:1019F0008C918E7F8C9380818F7E80831092F001FA -:101A000008950F931F93CF93DF930E94550D0E946B -:101A10005D0DC8EDD0E088818F77888388818068EC -:101A2000888388818F7D888319BC1092F101109280 -:101A3000ED011092EF011092EE0100EE10E0F801BE -:101A400080818B7F808388818160888342E060E031 -:101A500080E00E94610CE1EEF0E080818E7F808367 -:101A6000E2EEF0E080818160808380818860808305 -:101A7000F80180818E7F8083888180618883DF91F7 -:101A8000CF911F910F910895E8EDF0E080818F7E56 -:101A90008083E7EDF0E080818160808384E082BF15 -:101AA00081E08093F0010C94010DE8EDF0E080817D -:101AB0008E7F80831092E20008951092DA001092D7 -:101AC000E10008951F920F920FB60F9211242F93E9 -:101AD0003F934F935F936F937F938F939F93AF93B6 -:101AE000BF93EF93FF938091E10082FF0BC0809141 -:101AF000E20082FF07C08091E1008B7F8093E100CC -:101B00000E94C90F8091DA0080FF1FC08091D80029 -:101B100080FF1BC08091DA008E7F8093DA00809175 -:101B2000D90080FF0DC080E189BD82E189BD09B483 -:101B300000FEFDCF81E08093F1010E94C40905C041 -:101B400019BC1092F1010E94D2098091E10080FF3E -:101B500019C08091E20080FF15C08091E2008E7F65 -:101B60008093E2008091E20080618093E2008091A6 -:101B7000D80080628093D80019BC85E08093F10181 -:101B80000E94D6098091E10084FF30C08091E2007C -:101B900084FF2CC080E189BD82E189BD09B400FECB -:101BA000FDCF8091D8008F7D8093D8008091E10097 -:101BB0008F7E8093E1008091E2008F7E8093E2002F -:101BC0008091E20081608093E2008091ED018823A2 -:101BD00011F084E007C08091E30087FD02C081E03E -:101BE00001C083E08093F1010E94D8098091E10057 -:101BF00083FF29C08091E20083FF25C08091E1002E -:101C0000877F8093E10082E08093F1011092ED01E3 -:101C10008091E1008E7F8093E1008091E2008E7FD1 -:101C20008093E2008091E20080618093E20042E0D4 -:101C300060E080E00E94610C8091F00088608093F9 -:101C4000F0000E94D509FF91EF91BF91AF919F9154 -:101C50008F917F916F915F914F913F912F910F9055 -:101C60000FBE0F901F9018951F920F920FB60F92F4 -:101C700011242F933F934F935F936F937F938F9391 -:101C80009F93AF93BF93CF93DF93EF93FF93C09155 -:101C9000E900CF708091EC00D82FD17080FDD0E8A2 -:101CA0001092E9008091F000877F8093F000789493 -:101CB0000E94780E1092E9008091F0008860809375 -:101CC000F000CD2BCF70C093E900FF91EF91DF9131 -:101CD000CF91BF91AF919F918F917F916F915F91C4 -:101CE0004F913F912F910F900FBE0F901F9018951D -:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3 -:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115 -:101D1000F10091938E13FBCF0E94F4098091E800AB -:101D200083FF1FC18091F2019091F301492F50E090 -:101D30004A30510508F015C1FA01EA5AFF4F0C94D8 -:101D4000B323803881F0823809F00BC18091F6010D -:101D50008F708093E9008091EB0085FB882780F9E4 -:101D60001092E90006C08091EE019091EF0191116F -:101D700082609091E800977F9093E8008093F10053 -:101D80001092F100C8C0282F2D7F09F0EAC08823E7 -:101D900019F0823061F0E5C08091F401813009F0E2 -:101DA000E0C0933009F080E08093EF012BC0809178 -:101DB000F401811127C08091F6018F7009F4D1C020 -:101DC0008093E9002091EB0020FF1CC0933021F4A8 -:101DD0008091EB00806214C09091EB009061909331 -:101DE000EB0021E030E0A90102C0440F551F8A95A5 -:101DF000E2F74093EA001092EA008091EB008860DD -:101E00008093EB001092E9008091E800877F86C004 -:101E10008111A7C01091F4011F778091E3008078B1 -:101E2000812B8093E3008091E800877F8093E80016 -:101E30000E94960C8091E80080FFFCCF8091E30027 -:101E400080688093E300111102C082E001C083E04A -:101E50008093F10186C08058823008F082C0809162 -:101E6000F4019091F5018C3D53E0950779F583E0FD -:101E70008A838AE289834FB7F894DE01139620E0C3 -:101E80003EE051E2E32FF0E050935700E49120FF51 -:101E900003C0E295EF703F5FEF708E2F90E0EA3065 -:101EA00010F0C79601C0C0968D939D932F5F24318B -:101EB00049F74FBF8091E800877F8093E8006AE28E -:101EC00070E0CE0101960E949D0B14C0AE014F5FE1 -:101ED0005F4F6091F6010E94E40ABC01009709F48B -:101EE00040C09091E800977F9093E80089819A81A3 -:101EF0000E94000C8091E8008B778093E80031C04D -:101F0000803879F58091E800877F8093E8008091A0 -:101F1000ED018093F1008091E8008E778093E800D6 -:101F20000E94960C1EC081111CC09091F401923049 -:101F3000C0F48091E800877F8093E8009093ED01E2 -:101F40000E94960C8091ED01811106C08091E30002 -:101F500087FD02C081E001C084E08093F1010E940E -:101F6000E0098091E80083FF0AC08091E800877F44 -:101F70008093E8008091EB0080628093EB00AA964A -:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A -:101F900008950895CF938091F1018823A1F0C09115 -:101FA000E900CF709091EC00892F817090FD80E85E -:101FB000C82B1092E9008091E80083FD0E94780E02 -:101FC000CF70C093E900CF910895909375018093ED -:101FD00074010895E0917401F0917501309721F03A -:101FE0000190F081E02D099480E00895E091740162 -:101FF000F0917501309721F00280F381E02D099472 -:102000000895E0917401F0917501309721F00480FA -:10201000F581E02D099408952091720130917301AA -:102020008217930771F09093730180937201E0918E -:102030007401F0917501309721F00680F781E02D51 -:1020400009940895209170013091710182179307CE -:1020500071F09093710180937001E0917401F0919F -:102060007501309721F00084F185E02D09940895E1 -:1020700008950C9438100E94921B0E9433030C9414 -:10208000541C9F92AF92BF92CF92DF92EF92FF9239 -:102090000F931F93CF93DF9300D000D000D0CDB724 -:1020A000DEB70E944B030DE010E0AA24A394B12CEC -:1020B000902E802F0E943904980129583E4F6901C3 -:1020C000F901F080F826A1F40150110988F78FEF8B -:1020D00089838A831B820E949B1B8160782F9D834A -:1020E0008C8349815A816B818D810E94D8102FC0C9 -:1020F0009091DA0191FF04C08E830E943F048E818B -:1021000025E030E0A501022E01C0440F0A94EAF751 -:10211000E42E4F21C1F029839A828E2191E009F4A7 -:1021200090E09B830E949B1B8160782F9D838C8312 -:1021300049815A816B818D810E94D810F60180817E -:10214000E826E08204C021503109E0F6BDCF0E94AC -:102150003B1F109176010E94EA0F1817B9F00E94F8 -:10216000EA0F8093760126960FB6F894DEBF0FBE75 -:10217000CDBFDF91CF911F910F91FF90EF90DF9036 -:10218000CF90BF90AF909F900C94E30826960FB627 -:10219000F894DEBF0FBECDBFDF91CF911F910F919D -:1021A000FF90EF90DF90CF90BF90AF909F900895F9 -:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82 -:1021C0000FBECDBF4F83588769877A878B87DE0123 -:1021D000119686E0FD0111928A95E9F785E0FE01EE -:1021E000379601900D928A95E1F749815A816B816A -:1021F0007C818D819E810E9421172B960FB6F894C9 -:10220000DEBF0FBECDBFDF91CF910895CF9388235E -:1022100009F4C2C0C82F823859F40E94EA0F81FD28 -:10222000BBC089E30E94FB190E94C81A89E30CC055 -:10223000833879F40E94EA0F80FDAEC083E50E94E6 -:10224000FB190E94C81A83E50E943D1ACF910C9495 -:10225000C81A843859F40E94EA0F82FD9DC087E4B1 -:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6 -:10227000813A48F48C2F0E947E2181118DC08C2FD1 -:102280000E94FB19E3CF80E28C0F883048F4C770BE -:1022900081E001C0880FCA95EAF70E94811AD6CF63 -:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB -:1022B00083E890E005C081E890E002C082E890E009 -:1022C000CF910C940C1088E58C0F833108F064C01A -:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118 -:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186 -:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106 -:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173 -:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB -:1023200038C082EE90E035C089EE90E032C08AEE8F -:1023300090E02FC085EB90E02CC086EB90E029C0A8 -:1023400087EB90E026C08CEC90E023C08DEC90E011 -:1023500020C083E891E01DC08AE891E01AC082E9BC -:1023600091E017C084E991E014C081E292E011C0CD -:1023700083E292E00EC084E292E00BC085E292E03C -:1023800008C086E292E005C087E292E002C08AE2DD -:1023900092E0CF910C942210CF910895882309F4F4 -:1023A0004BC0823859F40E94EA0F81FF45C089E38F -:1023B0000E94FB190E94C81A89E30CC0833871F48B -:1023C0000E94EA0F80FF38C083E50E94FB190E943B -:1023D000C81A83E50E943D1A0C94C81A843859F42F -:1023E0000E94EA0F82FF28C087E40E94FB190E9426 -:1023F000C81A87E4EFCF9CEF980F913A58F390E218 -:10240000980F983050F4877091E001C0990F8A9529 -:10241000EAF7892F0E94871ADFCF9BE5980F933048 -:1024200020F480E090E00C940C10885A833120F462 -:1024300080E090E00C9422100895882321F00E94FF -:10244000811A0C94C81A0895882321F00E94871AD3 -:102450000C94C81A08957F928F929F92AF92BF9268 -:10246000CF92DF92EF92FF920F931F93CF93DF9360 -:102470001F92CDB7DEB77C01C62E772EFC010581F9 -:1024800002950F70128111110E949E1A0E94F41978 -:10249000882379F0112369F080E28C0D883048F0B0 -:1024A00082E00E94DD190E94F41991E0D82ED9260D -:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C -:1024C0000C94B323872D807F072D0F70882311F084 -:1024D0000295007F112389F0002309F490C180E266 -:1024E0008C0D883020F4802F0E94811A03C0802F29 -:1024F0000E94911A0E94C81A82C18C2D0E94CE118E -:10250000002309F495C180E28C0D883020F4802FDF -:102510000E94871A03C0802F0E94971A0E94C81A2F -:1025200087C1972D907F872D8F70903211F0829503 -:10253000807FCC2021F0F1E0CF16B1F01EC0112336 -:1025400049F0002309F414C1013009F011C10E94BF -:10255000B11A6EC1002319F0013009F469C18983F1 -:102560000E94B41A89810AC1112321F0023008F0B7 -:102570005FC1FEC001115CC101C1112321F0002324 -:1025800009F4F6C03CC1002309F4F8C03EC1872D10 -:1025900086958695837090E0009719F0019761F019 -:1025A00047C1112321F08C2D972D937002C080E03C -:1025B00090E00E940C103CC1112321F08C2D972D2E -:1025C000937002C080E090E00E94221031C18C2DF7 -:1025D000112319F00E94431E02C00E94AB1E0E94EC -:1025E000301F26C1872D837009F052C0111120C100 -:1025F0008C2D829586958770880F880F9C2D9F70F3 -:10260000892E912CA12CB12C082E04C0880C991C69 -:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041 -:1026200020E030E0B901A80104C0440F551F661F27 -:10263000771F8A95D2F7CB01BA0160957095809586 -:10264000909503C060E070E0CB01272D269526957C -:10265000237030E02230310569F02330310589F0F4 -:10266000682979298A299B292130310571F00E9436 -:102670006918DEC0682979298A299B290E94851852 -:10268000D7C00E946918C501B4010E944D18D0C07E -:10269000112319F0872D817001C08695882309F4D4 -:1026A000C7C08C2D829586958770880F880F9C2DCA -:1026B0009F70892E912CA12CB12C082E04C0880C5F -:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC -:1026D00010E020E030E0B901A80104C0440F551F0C -:1026E000661F771F8A95D2F7CB01BA016095709566 -:1026F0008095909503C060E070E0CB01272D269572 -:1027000026952370422F50E04230510569F0433046 -:10271000510589F0682979298A299B294130510579 -:1027200071F00E94431984C0682979298A299B295C -:102730000E945F197DC00E944319C501B4010E9427 -:10274000271976C08C2D90E0FC01E05EF109E5319F -:10275000F10508F050C0E059FF4F0C94B3230C2D45 -:102760000F70872D8F71112331F00E94C018802FB8 -:102770000E941D125DC00E94E118802F0E94241249 -:1027800057C0112339F0011153C0872D8F710E945A -:1027900006194EC0023008F04BC0F7CF112339F0B4 -:1027A000872D8F710E94C01843C01123C9F3872D54 -:1027B0008F710E94E1183CC0112329F0872D8F7181 -:1027C0000E94AB1835C00E94A11832C0112351F0ED -:1027D000172D1F71812F0E94C01863E0812F0E9466 -:1027E000D41926C081E00E94DD19023008F182E090 -:1027F0000E94DD191DC0112331F0002389F28C2DB8 -:102800000E94061115C0002391F28C2D0E94CE115A -:102810000FC0472D4F706C2DC7010E9415050E94F7 -:10282000C51706C0472D4F706C2DC7010E94F205D9 -:10283000DD20F9F00E94D01980FD1BC0F701128243 -:102840000E94CA190E94C018C7010E9448140E9421 -:10285000CA190F90DF91CF911F910F91FF90EF90C8 -:10286000DF90CF90BF90AF909F908F907F900C940F -:10287000E1180F90DF91CF911F910F91FF90EF9092 -:10288000DF90CF90BF90AF909F908F907F900895F2 -:102890000F931F93CF93DF93EC01888199812B8154 -:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B -:1028B0000E944A05882371F0688179818A810E948B -:1028C000C6198C010E947B190E944218B801CE01E2 -:1028D0000E942B12DF91CF911F910F9108950E94BA -:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471 -:1028F000E11F0E94301F80E090E00E940C1080E0F9 -:1029000090E00C9422100E948E1A0C946F140E9476 -:10291000BB19292F22952F7030E02C3031054CF453 -:102920002A3031056CF42250310922303105A8F4E7 -:1029300007C02C30310569F02F30310551F00DC042 -:10294000803F69F018F4803E40F409C0843F29F4C8 -:1029500006C093FB882780F9089580E0089581E000 -:102960000895CF93DF9300D000D01F92CDB7DEB78C -:102970000F900F900F900F900F90DF91CF910895CF -:10298000CF93DF9300D000D000D0CDB7DEB726962E -:102990000FB6F894DEBF0FBECDBFDF91CF91089583 -:1029A0001F93CF93DF93C091850116E0809186013C -:1029B000C81799F0D0E01C9FF0011D9FF00D112465 -:1029C000E957FE4F408151816281738184819581F5 -:1029D0000E94C0142196C770E9CFDF91CF911F915B -:1029E00008954091B7015091B8016091B90170917B -:1029F000BA018091BB019091BC010C94C0148091EC -:102A0000BC0182958F7009F054C08091B901882370 -:102A100009F44FC080918501A09186016091B701B2 -:102A20007091B8014091BA015091BB01B6E08A178C -:102A300009F43FC090E041155105C1F17F3F11F409 -:102A40006F3FA1F1B89FF001B99FF00D1124E95734 -:102A5000FE4F218172132AC02081621327C0228178 -:102A6000211124C0238134812417350710F421500B -:102A70003109241B350B283C3105C0F42091BC01E1 -:102A80002F7020612093BC0126E0289FF001299F30 -:102A9000F00D1124E457FE4F80818F708061808398 -:102AA00087EB91E00E9448140C94D0140196877033 -:102AB000BECF0895CF92DF92EF92FF920F931F93B4 -:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32 -:102AD0000FBECDBF8C0185E0F801DE011D9601908F -:102AE0000D928A95E1F7D8014C9111965C9111975E -:102AF00012966C9112971396CD90DC9014973091AA -:102B0000B7017091B8018091BA019091BB01009713 -:102B100009F46BC17F3F19F43F3F09F466C1E090AF -:102B2000B901EE2009F4C0C02091BC01C816D90635 -:102B300028F0F601E81BF90BCF0104C080959095B1 -:102B40008C0D9D1DFF24F394883C910578F0F12CA9 -:102B5000207F09F0C6C07C2DD98AC88A89890E9445 -:102B6000B11487EB91E00E944814B1C0822F807F9E -:102B700009F046C0751314C0341312C0611110C09F -:102B80002F7020612093BC010E94F11487EB91E02B -:102B90000E9448148091BC01D80115968C932EC0D8 -:102BA000CD2819F15F3F11F44F3FF9F0F62E611176 -:102BB0001CC0809185012091860136E0821709F4BE -:102BC0005AC090E0389FF001399FF00D1124E95769 -:102BD000FE4F7181571306C07081471303C0728185 -:102BE000711103C001968770E9CFF62E662309F4B0 -:102BF00018C18091BC0181608093BC01F12C11C18E -:102C0000751308C0341306C0611104C08091BC0163 -:102C1000D801C3C04D875E878D859E856A8B0E94D3 -:102C200087146A898823E1F16623D1F12091BC01E0 -:102C3000822F82958F7090E0029774F08091B70197 -:102C40009091B80198878F831986DB86CA862C8776 -:102C5000CE0107960E94481486E0F801A7EBB1E088 -:102C600001900D928A95E1F70E94FF140E94F114E1 -:102C7000FF24F394D6C04D875E878D859E850E9484 -:102C8000BB19292F22952F7030E0223031050CF02E -:102C9000BCC09F7009F0B6C0805E883008F4C1C027 -:102CA000C8010E944814E4CFC816D90608F453C0DE -:102CB000F601E81BF90BCF01883C910508F450C0E0 -:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E -:102CD000F1E086E0DF011D928A95E9F70E94F11488 -:102CE000A0C0751314C0341312C0611110C08091BC -:102CF000BC01F8018583C8010E94481486E0E7EB17 -:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C -:102D10005E878D859E856A8B0E9487146A898823C9 -:102D200009F4BECF662309F4BBCF2091BC01822FEA -:102D300082958F7090E002970CF48ECF8091B7014E -:102D40009091B8019A8389831B82DD82CC822E8385 -:102D5000CE0101967FCF809590958C0D9D1DACCFB7 -:102D6000F62E662309F49CCF75132EC034132CC0A5 -:102D70002091BC0120FD1FC0822F82958F70D9F059 -:102D8000D80115962C9315978F3049F08F5F982FA7 -:102D90009295907F822F8F70892B15968C93C80106 -:102DA0000E94481486E0F801A7EBB1E001900D9273 -:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7 -:102DC0000D928A95E1F72DC04D875E878D859E8592 -:102DD0000E948714811140CF8091BC018160809353 -:102DE000BC01C8010E9448141CC0662309F458CFD6 -:102DF0004D875E878D859E850E948714882309F400 -:102E00004FCF2ACF811148CF0CC0243031050CF0B0 -:102E100047CF9F7009F440CFF8019581907F09F06A -:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D -:102E3000DF91CF911F910F91FF90EF90DF90CF9096 -:102E400008951F93CF93DF93CDB7DEB72C970FB6BE -:102E5000F894DEBF0FBECDBF4F83588769877A874E -:102E60008B879C87CE0107960E945A15882369F0AC -:102E70008F8198852A853B85232BF1F19F3F09F0AF -:102E800063C08F3F09F060C037C086E0FE0137960F -:102E9000DE01119601900D928A95E1F76F81788598 -:102EA000EA85FB85309741F17F3F11F46F3F21F1B7 -:102EB0002091860130E0C9010196877099274091E1 -:102EC000850150E08417950709F447C069837A8328 -:102ED000FD83EC8396E0929FD001939FB00D112467 -:102EE000A957BE4FFE01319601900D929A95E1F7D8 -:102EF000809386010E94D01416E080918501909104 -:102F000086018917C1F1189FC001112489579E4F6E -:102F10000E945A15882379F1E09185011E9FF001E6 -:102F20001124E957FE4F4081518162817381848170 -:102F300095810E94C0148091850190E00196877070 -:102F4000992780938501D9CF4F81588569857A85E6 -:102F50008B859C850E94C014CFCF0E948314109251 -:102F6000860110928501E7EBF1E086E0DF011D921A -:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45 -:102F8000CDBFDF91CF911F910895EF92FF920F93E4 -:102F90001F93CF93DF938C01009709F46CC0F12C41 -:102FA000EE24E394E8012196F8018491843740F4FB -:102FB000843008F051C0813081F0823019F15BC05B -:102FC000853709F444C0A8F19CE7980F903708F0C2 -:102FD00052C08F770E94CE1141C00E5F1F4FFE017D -:102FE000C49180E28C0F883048F4C7708E2D01C0E8 -:102FF000880FCA95EAF70E94A11A14C08C2F0E946C -:1030000006112DC00E5F1F4FFE01C49180E28C0F90 -:10301000883058F4C7708E2D01C0880FCA95EAF722 -:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3 -:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3 -:103040009FE00197F1F700C00000C150F6CF0E5F7E -:103050001F4FFE01F49003C00E9406118E018F2DB8 -:10306000882309F49FCFEFE9FFE03197F1F700C023 -:1030700000008150F5CFDF91CF911F910F91FF900C -:10308000EF90089508956093C1017093C2018093F9 -:10309000C3019093C4010C946F140F931F9300917C -:1030A000C1011091C2012091C3013091C401DC0122 -:1030B000CB01802B912BA22BB32B8093C10190933A -:1030C000C201A093C301B093C4011F910F910C944E -:1030D0006F140F931F930091C1011091C2012091B1 -:1030E000C3013091C401DC01CB0180239123A223D1 -:1030F000B3238093C1019093C201A093C301B09305 -:10310000C4011F910F910C946F140F931F930091A2 -:10311000C1011091C2012091C3013091C401DC01B1 -:10312000CB0180279127A227B3278093C1019093D9 -:10313000C201A093C301B093C4011F910F910C94DD -:103140006F141092BD011092BE011092BF01109237 -:10315000C0010C946F1441E050E060E070E004C0E6 -:10316000440F551F661F771F8A95D2F74093BD0104 -:103170005093BE016093BF017093C0010C946F1413 -:1031800041E050E060E070E004C0440F551F661F4E -:10319000771F8A95D2F78091BD019091BE01A091D1 -:1031A000BF01B091C001482B592B6A2B7B2B409358 -:1031B000BD015093BE016093BF017093C0010C9498 -:1031C0006F1441E050E060E070E004C0440F551F10 -:1031D000661F771F8A95D2F7409550956095709538 -:1031E0008091BD019091BE01A091BF01B091C0013D -:1031F000482359236A237B234093BD015093BE018A -:103200006093BF017093C0010C946F1441E050E0D3 -:1032100060E070E004C0440F551F661F771F8A9559 -:10322000D2F78091BD019091BE01A091BF01B091F4 -:10323000C001482759276A277B274093BD01509337 -:10324000BE016093BF017093C0010C946F140F9383 -:103250001F930091BD011091BE012091BF013091DB -:10326000C001DC01CB01802B912BA22BB32B8093CF -:10327000BD019093BE01A093BF01B093C0011F9107 -:103280000F910C946F140F931F930091BD01109137 -:10329000BE012091BF013091C001DC01CB01802330 -:1032A0009123A223B3238093BD019093BE01A093E9 -:1032B000BF01B093C0011F910F910C946F140F9335 -:1032C0001F930091BD011091BE012091BF0130916B -:1032D000C001DC01CB0180279127A227B32780936F -:1032E000BD019093BE01A093BF01B093C0011F9197 -:1032F0000F910C946F140895CF92DF92EF92FF928A -:103300000F931F93CF93DF938C01C090C101D09096 -:10331000C201E090C301F090C4018091BD01909181 -:10332000BE01A091BF01B091C001C82AD92AEA2AE2 -:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520 -:10334000A795979587950A94D2F780FF06C0B80194 -:103350008C2F0E944808019721F4219760F780E0A4 -:1033600001C08C2FDF91CF911F910F91FF90EF90B3 -:10337000DF90CF900895CF93DF93EC010E947C19EA -:10338000BE010E944808DF91CF910895CB010E94B1 -:10339000BB1908958091C5018595859585950895FA -:1033A0008091C5018770089598E0899F900111244C -:1033B000262B2093C5010C94C0182091C50180953F -:1033C00082238093C501982F977069F430E0482FCD -:1033D000552747FD50952417350729F08595859584 -:1033E00085950C94E11808959091C501977081E03E -:1033F00009F480E0089590910C01992321F09091B7 -:103400000D01911109C020910E0130910F01F901B8 -:1034100032969FEF40E01FC0982F9695969596950F -:103420009F3050F5E0910E01F0910F01E90FF11D71 -:10343000877021E030E0A90102C0440F551F8A9532 -:10344000E2F7CA019181892B818308959F3F39F06A -:103450004F5F4E3041F051915813F8CF0DC05111CC -:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08 -:1034700097FDFA9582830895089590910C01992300 -:1034800021F090910D01911109C020910E01309110 -:103490000F01F9013296205F3F4F1FC0982F96957C -:1034A000969596959F30F0F4E0910E01F0910F0102 -:1034B000E90FF11D877021E030E0A90102C0440F3F -:1034C000551F8A95E2F7CA018095918189238183EE -:1034D00008953196E217F30729F090819813F9CFF8 -:1034E0001082F7CF089581E090E0E0910E01F09115 -:1034F0000F01E80FF91F1082019680319105A9F79D -:1035000008959091D901892B8093D90108958095D0 -:103510009091D90189238093D90108951092D901FE -:1035200008959091D801892B8093D80108958095B2 -:103530009091D80189238093D80108951092D801E1 -:1035400008959091D701892B8093D7010895809594 -:103550009091D70189238093D70108951092D701C4 -:1035600008958093C60108951092C6010895809130 -:103570000E0190910F01FC0131969C01205F3F4F9D -:1035800080E0919191118F5FE217F307D1F70895D1 -:10359000E0910E01F0910F018091D9018083E091BB -:1035A0000E01F0910F0190818091D801892B8083C9 -:1035B000E0910E01F0910F0190818091D701892B4C -:1035C00080838091C601882361F0E0910E01F09123 -:1035D0000F019081892B80830E94B71A811110926C -:1035E000C60180910E0190910F010C94F60F20E01E -:1035F000009739F0AC0141505109842395232F5F86 -:10360000F7CF822F0895CF92DF92EF92FF926C0155 -:10361000EE24FF24C114D104E104F10421F0C70118 -:10362000B60120E101C020E0C72ED82EE92EFF24EC -:10363000C114D104E104F10419F0285FC701B601F7 -:103640006B017C0154E0F694E794D794C7945A95A3 -:10365000D1F7C114D104E104F10419F02C5FC701C2 -:10366000B6016B017C0142E0F694E794D794C794CD -:103670004A95D1F7C114D104E104F10419F02E5F89 -:10368000C701B601DC01CB01B695A7959795879543 -:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5 -:1036A000DF90CF9008958091F101843021F1109244 -:1036B000DB0120E488E190E00FB6F894A8958093B0 -:1036C00060000FBE2093600080E00E94E30883B793 -:1036D000817F846083BF83B7816083BF789488953E -:1036E00083B78E7F83BF88E10FB6F8948093600024 -:1036F000109260000FBE0895089508950E947C1BEB -:103700000E944B030E947D1B0E94400491E08111A6 -:1037100001C090E0892F08950E9483140E94EA0F4F -:103720000C94E30882E084BD93E095BD9AEF97BDC9 -:1037300080936E0008952FB7F8948091DC019091EA -:10374000DD01A091DE01B091DF012FBF0895CF927E -:10375000DF92EF92FF920F931F932FB7F89440914F -:10376000DC015091DD016091DE017091DF012FBF1E -:103770006A017B01EE24FF248C0120E030E0C016BA -:10378000D106E206F30610F4415051099A01281BB4 -:10379000390BC9011F910F91FF90EF90DF90CF90EF -:1037A00008951F920F920FB60F9211248F939F933B -:1037B000AF93BF938091DC019091DD01A091DE0178 -:1037C000B091DF010196A11DB11D8093DC019093A2 -:1037D000DD01A093DE01B093DF01BF91AF919F9116 -:1037E0008F910F900FBE0F901F9018950E94E70CBD -:1037F000F8942FEF87EA91E6215080409040E1F75E -:1038000000C0000087E090EBDC018093FB01909307 -:10381000FC01A093FD01B093FE019CE088E10FB68E -:10382000F894A895809360000FBE90936000FFCF3E -:10383000EF92FF920F931F93CF93DF93D82FCDE09A -:103840008C2F0E94390405E010E0E82EF12CC7010E -:10385000002E02C0959587950A94E2F780FF09C073 -:10386000602F7C2F80E00E94F305D81302C081E016 -:1038700006C00150110958F7C15010F780E0DF91E0 -:10388000CF911F910F91FF90EF900895CF93C82F84 -:103890008CE20E94181C882321F08C2FCF910C946D -:1038A000181C80E0CF910895CF930E949B1D811139 -:1038B00002C00E94811DC5E6C15049F00E944B0321 -:1038C0008FE39CE90197F1F700C00000F5CF89E292 -:1038D0000E94461C811113C18AE20E94461C81117C -:1038E0000E94811D85E00E94461C81110E94F61BEA -:1038F0000E94A61D8093DA0187E00E94461C88235F -:10390000A9F18BE10E94461C882351F08091DA01D5 -:1039100081FB222720F991E0922790FB81F90EC0CC -:103920008EE00E94461C882361F08091DA0182FBC0 -:10393000222720F991E0922790FB82F98093DA0107 -:1039400015C080E10E94461C9091DA01882341F065 -:1039500093FB222720F981E0822780FB93F904C0A2 -:10396000892F809580FB90F99093DA018091DA019C -:103970000E94AA1D0E94B81D8093FA0180EE0E9449 -:10398000461C882341F08091FA01982F909590FB76 -:1039900080F98093FA0189E30E94461C882359F03C -:1039A0008091FA0181FB222720F991E0922790FB78 -:1039B00081F98093FA0182EE0E94461C882359F017 -:1039C0008091FA0182FB222720F991E0922790FB57 -:1039D00082F98093FA0186EE0E94461C882359F0F2 -:1039E0008091FA0183FB222720F991E0922790FB36 -:1039F00083F98093FA0183EE0E94461C882359F0D4 -:103A00008091FA0184FB222720F991E0922790FB14 -:103A100084F98093FA0185E30E94461C882359F0BB -:103A20008091FA0185FB222720F991E0922790FBF3 -:103A300085F98093FA0181E30E94461C882359F09E -:103A40008091FA0186FB222720F991E0922790FBD2 -:103A500086F98093FA0181E10E94461C882359F07F -:103A60008091FA0187FB222720F991E0922790FBB1 -:103A700087F98093FA018091FA010E94BC1D809120 -:103A8000FA0187FB882780F980930D0187E20E9465 -:103A9000461CC82F8EE10E94461C8111C2608FE136 -:103AA0000E94461C8111C46080E20E94461C811164 -:103AB000C86081E20E94461C8111C06182E20E94BE -:103AC000461C8111C06283E20E94461C8111C064C1 -:103AD00084E20E94461C882311F0C06802C0CC23F7 -:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4 -:103AF000682F70E080E090E0CF910C944318CF9154 -:103B000008956DEE7EEF80E090E00E94ED2360E08E -:103B100082E090E00E94DB2360E083E090E00E947E -:103B2000DB2360E084E090E00E94DB2360E085E03E -:103B300090E00C94DB2380E090E00E94D52321E00C -:103B40008D3E9E4F09F020E0822F089582E090E0A4 -:103B50000C94CD23682F82E090E00C94DB2383E06B -:103B600090E00C94CD23682F83E090E00C94DB234D -:103B700084E090E00C94CD23682F84E090E00C94D6 -:103B8000DB238091E20180FF0BC06091130185E08F -:103B9000689FB001112475956795759567952BC041 -:103BA00081FF09C06091130185E0689FB001112475 -:103BB0007595679520C082FF07C06091130185E06D -:103BC000689FB001112417C09091E3019923D1F0AF -:103BD00060911201961788F72091130185E0289FC4 -:103BE00090011124929FA001939F500D112470E029 -:103BF000CA010E949F236038710540F46115710568 -:103C000039F002C065E070E0862F08958FE70895CF -:103C100081E008958091E20180FF08C06091110168 -:103C200070E0759567957595679521C081FF06C011 -:103C30006091110170E07595679519C082FF04C00D -:103C40006091110170E010C09091E3019923C1F0DF -:103C5000609110019617A0F780911101899FC00112 -:103C6000112470E00E949F236038710528F46115CB -:103C7000710521F0862F08958FE7089581E008955A -:103C800061E070E0F4CF803F21F40E94C11D819576 -:103C900004C0813F29F40E94C11D8093E60108956C -:103CA000823F21F40E94C11D819504C0833F29F405 -:103CB0000E94C11D8093E5010895893F19F40E9477 -:103CC0000A1E05C08A3F31F40E940A1E8195809326 -:103CD000E70108958B3F21F40E940A1E819504C0DC -:103CE0008C3F29F40E940A1E8093E8010895843FC6 -:103CF00021F48091E401816017C0853F21F4809117 -:103D0000E401826011C0863F21F48091E401846067 -:103D10000BC0873F21F48091E401886005C0883F93 -:103D200031F48091E40180618093E40108958D3F36 -:103D300021F48091E20181600BC08E3F21F48091DB -:103D4000E201826005C08F3F29F48091E201846026 -:103D50008093E2010895803F39F48091E60187FF66 -:103D60006CC01092E60169C0813F29F48091E601A0 -:103D70001816BCF362C09091E501823F29F497FFC9 -:103D80005CC01092E50159C0833F19F41916CCF3B9 -:103D900054C0893F41F48091E70118160CF04DC0E2 -:103DA0001092E7014AC08A3F29F48091E70187FF1A -:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6 -:103DC0001092E8013AC08C3F29F48091E80118165E -:103DD000BCF333C0843F21F48091E4018E7F17C08F -:103DE000853F21F48091E4018D7F11C0863F21F44D -:103DF0008091E4018B7F0BC0873F21F48091E40127 -:103E0000877F05C0883F31F48091E4018F7E8093E5 -:103E1000E40113C08D3F21F48091E2018E7F0BC03D -:103E20008E3F21F48091E2018D7F05C08F3F29F400 -:103E30008091E2018B7F8093E2018091E501811105 -:103E40000EC08091E60181110AC08091E7018111C5 -:103E500006C08091E801811102C01092E30108952B -:103E600084EE91E00E9401100E949B1B9093E1015F -:103E70008093E00108951F93CF93DF938091E00139 -:103E80009091E1010E94A71BAC019091E30199235D -:103E900021F02091140130E006C0209115018AE044 -:103EA000289F900111244217530708F486C080917F -:103EB000E501C091E601D091E7011091E80181117F -:103EC00007C0C11176C0D11174C0111172C075C084 -:103ED0009F3F19F09F5F9093E301181624F40E940E -:103EE000C11D8093E5018091E50187FF05C00E9417 -:103EF000C11D81958093E5011C1624F40E94C11D0B -:103F00008093E6018091E60187FF05C00E94C11DF4 -:103F100081958093E6016091E501662339F1C091B6 -:103F2000E601CC2319F1772767FD7095872F972F2E -:103F30000E94B02223E333E343E35FE30E941423B0 -:103F40000E947D226093E5016C2F772767FD7095B5 -:103F5000872F972F0E94B02223E333E343E35FE3ED -:103F60000E9414230E947D226093E6011D1624F412 -:103F70000E940A1E8093E7018091E70187FF05C038 -:103F80000E940A1E81958093E701111624F40E9475 -:103F90000A1E8093E8018091E80187FF05C00E9416 -:103FA0000A1E81958093E801DF91CF911F910C94B7 -:103FB000301F9F3F09F08ECF96CFDF91CF911F9199 -:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE -:103FD0001092E3011092E2010895833081F128F4F8 -:103FE000813059F08230D1F00895853009F449C00C -:103FF000B8F1863009F456C0089580911501262F36 -:1040000030E0280F311D2F3F310524F4680F6093F5 -:10401000150108958FEF8093150108958091140183 -:10402000262F30E0280F311D2F3F310524F4680F73 -:104030006093140108958FEF809314010895809187 -:104040001301262F30E0280F311D2F3F310524F4B6 -:10405000680F6093130108958FEF80931301089503 -:1040600080911201262F30E0280F311D2F3F31059E -:1040700024F4680F6093120108958FEF809312016A -:10408000089580911101262F30E0280F311D2F3F18 -:10409000310524F4680F6093110108958FEF809328 -:1040A0001101089580911001262F30E0280F311D55 -:1040B0002F3F310524F4680F6093100108958FEFAE -:1040C000809310010895833011F128F4813049F074 -:1040D000823091F00895853081F120F18630C1F170 -:1040E000089580911501681720F4861B80931501AF -:1040F000089510921501089580911401681720F415 -:10410000861B8093140108951092140108958091E4 -:104110001301681720F4861B8093130108951092F1 -:104120001301089580911201681720F4861B809373 -:1041300012010895109212010895809111016817DB -:1041400020F4861B809311010895109211010895A7 -:1041500080911001681720F4861B80931001089548 -:104160001092100108950F931F938D3109F46BC0C5 -:1041700008F03FC08E3009F47FC0C0F4873009F4E6 -:1041800069C068F4863009F0B1C08091DA01817F9E -:104190008E7F8093DA0181E08093EA01A8C08830A5 -:1041A00009F4A2C08B3009F49FC0A0C0863109F485 -:1041B0009BC078F4803109F472C0813109F096C057 -:1041C0000E94831490910D0181E0892780930D0155 -:1041D0008BC0893109F488C08B3109F087C0809188 -:1041E000DA0181FB222720F991E0922790FB81F9E7 -:1041F0004CC0853309F470C048F4873209F46CC0B0 -:1042000008F459C0893209F467C070C0833438F4A7 -:104210008A3308F04EC0883309F466C067C083341F -:1042200009F45AC0883409F061C00E9483140FEF6A -:1042300013ED20E3015010402040E1F700C00000E2 -:104240000E94F61B51C00E9437220E94EA0F0E9472 -:10425000E3084AC09091DA01892F8095817080FB34 -:1042600090F929F0966098609093DA0140C0997FA8 -:10427000977F9093DA0138C08091DA0182FB222780 -:1042800020F991E0922790FB82F98093DA0199233B -:1042900059F18091DA0181608093DA0125C0809123 -:1042A000DA0183FB222720F991E0922790FB83F922 -:1042B000ECCF895301C08D5141E050E060E070E0E7 -:1042C0008A019B0104C0000F111F221F331F8A9512 -:1042D000D2F7C901B80104C061E070E080E090E06D -:1042E0000E9443180E94831481E001C080E01F9166 -:1042F0000F91089580E0089580E00895CF93C82F2E -:104300008091EA01813079F018F08230E9F187C0BC -:10431000E0910E01F0910F018081813169F08232CC -:1043200009F07FC009C0E0910E01F0910F0180817A -:10433000813111F0823261F48C2F0E947A21811137 -:1043400004C08C2F0E94B3201DC081E090E01AC0F1 -:104350008C2F0E947C21811114C0C43179F048F463 -:10436000CB3079F0C03109F060C082E08093EA017F -:1043700008C0C93219F0C83321F057C01092EA01C1 -:1043800054C081E0817053C0C93289F118F5C4313D -:1043900071F1A8F4C73009F046C08AE08093150196 -:1043A00094E19093140193E0909313018093120190 -:1043B00088E08093110188E28093100134C0CE51CF -:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB -:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC -:1043E00013C0C13579F0C235F1F461E00DC08091A0 -:1043F000E901882319F01092E90115C081E080934A -:10440000EA0115C061E006C08091E9010E94ED1F3C -:104410000AC06AE08091E9010E94632004C0109202 -:10442000EA0180E004C081E002C080E0ABCFCF9120 -:104430000895E1E8F0E08081886080838081816078 -:1044400080838FB7F89493E09093890090ED9093D8 -:1044500088008FBF0895EFE6F0E08081826080835E -:104460000895EFE6F0E080818D7F80830895EFE688 -:10447000F0E0908182E08927808308951F920F9257 -:104480000FB60F9211242F933F934F935F936F9327 -:104490007F938F939F93AF93BF93EF93FF938091FD -:1044A000EB019091EC0101969093EC018093EB016C -:1044B000811103C082E00E94E308E091EC01E695DF -:1044C000E695F0E0EC54FB4FE4918091EB018E1304 -:1044D00003C080E00E94E308FF91EF91BF91AF918C -:1044E0009F918F917F916F915F914F913F912F910C -:1044F0000F900FBE0F901F90189504D06894B111C3 -:104500008DC0089570D088F09F5790F0B92F9927EB -:10451000B751A0F0D1F0660F771F881F991F1AF0CE -:10452000BA95C9F712C0B13081F077D0B1E00895E3 -:1045300074C0672F782F8827B85F39F0B93FCCF364 -:10454000869577956795B395D9F73EF490958095C4 -:10455000709561957F4F8F4F9F4F0895E89409C0E4 -:1045600097FB3EF490958095709561957F4F8F4FA6 -:104570009F4F9923A9F0F92F96E9BB279395F695BC -:10458000879577956795B795F111F8CFFAF4BB0F3A -:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E -:1045A000882311F096E911C0772321F09EE8872F28 -:1045B000762F05C0662371F096E8862F70E060E0E4 -:1045C0002AF09A95660F771F881FDAF7880F96955D -:1045D000879597F9089557FD9058440F551F59F046 -:1045E0005F3F71F04795880F97FB991F61F09F3FE0 -:1045F00079F087950895121613061406551FF2CF09 -:104600004695F1DF08C0161617061806991FF1CF58 -:1046100086957105610508940895E894BB2766277F -:104620007727CB0197F908950BD078C069D028F08F -:104630006ED018F0952309F05AC05FC01124EECF58 -:10464000CADFA0F3959FD1F3950F50E0551F629FED -:10465000F001729FBB27F00DB11D639FAA27F00DDB -:10466000B11DAA1F649F6627B00DA11D661F829F02 -:104670002227B00DA11D621F739FB00DA11D621FE7 -:10468000839FA00D611D221F749F3327A00D611D04 -:10469000231F849F600D211D822F762F6A2F1124E6 -:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39 -:1046B000BB1F661F771F881F91505040A9F79E3F70 -:1046C000510570F014C0AACF5F3FECF3983EDCF3C5 -:1046D000869577956795B795F795E7959F5FC1F7AD -:1046E000FE2B880F911D9695879597F9089597F958 -:1046F0009F6780E870E060E008959FEF80EC089588 -:1047000000240A94161617061806090608950024B0 -:104710000A9412161306140605060895092E03942A -:10472000000C11F4882352F0BB0F40F4BF2B11F49E -:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF -:10474000072E16F4009407D077FD09D00E94B923F4 -:1047500007FC05D03EF4909581959F4F0895709584 -:1047600061957F4F0895EE0FFF1F0590F491E02DA6 -:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8 -:10478000B70710F0A61BB70B881F991F5A95A9F7FA -:1047900080959095BC01CD010895F999FECF92BD09 -:1047A00081BDF89A992780B50895A8E1B0E042E06C -:1047B00050E00C94F523262FF999FECF92BD81BDD0 -:1047C000F89A019700B4021639F01FBA20BD0FB64F -:1047D000F894FA9AF99A0FBE08950196272F0E942D -:1047E000DC230C94DB23DC01CB01FC01F999FECF27 -:1047F00006C0F2BDE1BDF89A319600B40D92415069 -:0A4800005040B8F70895F894FFCF78 -:10480A000220E508730950091C09E8080101C701DB -:10481A0028080A03140A3F4D363975042804F2039E -:10482A00B9034C0365037E039703010203040506DB -:04483A000708090062 -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/readme.md b/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/readme.md new file mode 100644 index 000000000..984106ff4 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/readme.md @@ -0,0 +1,29 @@ +# ErgoDox EZ Dvorak International Squisher + +Dvorak layout adjusted with several (linux) applications in mind: + +* Easier Escape for VIM +* Windows/Super key for awesome WM +* Alt+Shift for international characters +* PrintScreen for sys-rq +* Insert for the X11 clip-board + +Major layer changes: + +* Common multimedia keys are integrated into layer 0, less common into layer 1 +* No mouse keys +* Layer 2 is qwerty (for easier gaming & less fortunate keyboard users) + +Known issues: + +* Alt+Shift does not work reliably (depends on the X11 kb layout? Not + entirely clear...) + +![layer0](keyboard-layout0.png) +![layer1](keyboard-layout1.png) +![layer2](keyboard-layout2.png) + +## Changelog + +* 2016-03-29 + * Initial release diff --git a/keyboards/ergodox_ez/keymaps/dvorak_spanish/README.md b/keyboards/ergodox_ez/keymaps/dvorak_spanish/README.md deleted file mode 100644 index e075e3cd7..000000000 --- a/keyboards/ergodox_ez/keymaps/dvorak_spanish/README.md +++ /dev/null @@ -1,99 +0,0 @@ -# Ergodox Spanish Dvorak Layout - * See spanish dvorak layout [here](http://djelibeibi.unex.es/dvorak/) - * Software layout must be set to SPANISH QWERTY to work properly - -## Keymap Layers - - L0: spanish dvorak with some customizations (see layout below) - - L1: auxiliary keys (includes qwerty shortcuts, numpad...) - - L2: qwerty layout with customizations - - -### Keymap 0: Base layer -Keys with double values (like Esc/Ctrl) correspond to the 'tapped' key and the 'held' key, respectively - -

-
-,--------------------------------------------------.           ,--------------------------------------------------.
-|   \    |   1  |   2  |   3  |   4  |   5  |  <>  |           |   ¡  |   6  |   7  |   8  |   9  |   0  |   '    |
-|--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
-| F1/~L1 |   .  |   ,  |   Ñ  |   P  |   Y  |MEH_T |           |  L1  |   F  |   G  |   C  |   H  |   L  |ALL_T/+ |
-|--------+------+------+------+------+------| DEL  |           | ~L1  |------+------+------+------+------+--------|
-|Esc/Ctrl|   A  |   O  |   E  |   U  |   I  |------|           |------|   D  |   R  |   T  |   N  |   S  |'/RCtrl |
-|--------+------+------+------+------+------| LGUI |           | RALT |------+------+------+------+------+--------|
-| {/LSft |   -  |   Q  |   J  |   K  |   X  |      |           |      |   B  |   M  |   W  |   V  |   Z  | }/RSft |
-'--------+------+------+------+------+-------------'           '-------------+------+------+------+------+--------'
-  |[/LALT| HOME |PGDOWN| PGUP | END  |                                       | LEFT | DOWN |  UP  |RIGHT |]/LALT|
-  '----------------------------------'                                       '----------------------------------'
-                                       ,-------------.       ,-------------.
-                                       |F5/CAG|F6/~L1|       |F7/~L1|F8/CAG|
-                                ,------|------|------|       |------+--------+------.
-                                |      |      |F4/CA |       |F11/CA|        |      |
-                                | ENTER| TAB  |------|       |------|  BSPC  | SPACE|
-                                |      |      |F3/SA |       |F12/SA|        |      |
-                                '--------------------'       '----------------------'
- CAG = CTRL-ALT-GUI
-  CA = CTRL-ALT
-  SA = SHIFT-ALT
-
-
- -### Keymap 1: Aux layer - -

-
-,--------------------------------------------------.           ,--------------------------------------------------.
-|        |  F1  |  F2  |  F3  |  F4  |  F5  | SLEEP|           | PWR  |  F6  |  F7  |  F8  |  F9  |  F10 |   F11  |
-|--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
-|        |  <   |  >   | MsUp |      |      |      |           | ~L0  |      |   7  |   8  |   9  |   *  |  '^    |
-|--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
-|        |      |MsLeft|MsDown|MsRght|      |------|           |------|      |   4  |   5  |   6  |   +  |   Ç    |
-|--------+------+------+------+------+------|      |           |PSCR  |------+------+------+------+------+--------|
-|CAPSLOCK|      |      |      |      |      |      |           |      |      |   1  |   2  |   3  |   /  |        |
-'--------+------+------+------+------+-------------'           '-------------+------+------+------+------+--------'
-  |CTRL-S|CTRL-Z|CTRL-X|CTRL-C|CTRL-V|                                       |      |    . |   0  |   =  |      |
-  '----------------------------------'                                       '----------------------------------'
-                                       ,-------------.       ,-------------.
-                                       |      |      |       |      | Play |
-                                ,------|------|------|       |------+------+------.
-                                |      |      |      |       | VolUp|      |      |
-                                | Lclk | Rclk |------|       |------| Prev | Next |
-                                |      |      |  L2  |       | VolDn|      |      |
-                                '--------------------'       '--------------------'
-
-
- -### Keymap 2: QWERTY layer - -

-
-,--------------------------------------------------.           ,--------------------------------------------------.
-|   \    |   1  |   2  |   3  |   4  |   5  |  <>  |           |   ¡  |   6  |   7  |   8  |   9  |   0  |   '    |
-|--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
-|  TRANS |   Q  |   W  |   E  |   R  |   T  |MEH_T |           | TRANS|   Y  |   U  |   I  |   O  |   P  |ALL_T/+ |
-|--------+------+------+------+------+------| DEL  |           |      |------+------+------+------+------+--------|
-|Esc/Ctrl|   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |   Ñ  |'/RCtrl |
-|--------+------+------+------+------+------| LGUI |           | RALT |------+------+------+------+------+--------|
-| {/LSft |   Z  |   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |   ,  |   .  |   -  | }/RSft |
-'--------+------+------+------+------+-------------'           '-------------+------+------+------+------+--------'
-  |[/LALT| HOME |PGDOWN| PGUP | END  |                                       | LEFT | DOWN |  UP  |RIGHT |]/LALT|
-  '----------------------------------'                                       '----------------------------------'
-                                       ,-------------.       ,-------------.
-                                       |F5/CAG| TRANS|       | TRANS|F8/CAG|
-                                ,------|------|------|       |------+--------+------.
-                                |      |      |F4/CA |       |F11/CA|        |      |
-                                | ENTER| TAB  |------|       |------|  BSPC  | SPACE|
-                                |      |      | TRANS|       |F12/SA|        |      |
-                                '--------------------'       '----------------------'
- CAG = CTRL-ALT-GUI
-  CA = CTRL-ALT
-  SA = SHIFT-ALT
-
-
- - -## Generation of .hex file -> [Download scripts from here](https://github.com/johgh/keyboard/tree/master/ergodox) - -> Execute install.sh and generate.sh scripts. - -> Flash with `teensy_loader` binary (should be installed from previous step) diff --git a/keyboards/ergodox_ez/keymaps/dvorak_spanish/compiled.hex b/keyboards/ergodox_ez/keymaps/dvorak_spanish/compiled.hex deleted file mode 100644 index dcac1fe29..000000000 --- a/keyboards/ergodox_ez/keymaps/dvorak_spanish/compiled.hex +++ /dev/null @@ -1,1149 +0,0 @@ -:100000000C947B020C94BF020C94BF020C94BF02B0 -:100010000C94BF020C94BF020C94BF020C94BF025C -:100020000C94BF020C94BF020C946D0E0C943F0F05 -:100030000C94BF020C94BF020C94BF020C94BF023C -:100040000C94BF020C94F9210C94BF020C94BF02D3 -:100050000C94BF020C94DB1C0C94BF020C94BF02E6 -:100060000C94BF020C94BF020C94BF020C94BF020C -:100070000C94BF020C94BF020C94BF020C94BF02FC -:100080000C94BF020C94BF020C94BF020C94BF02EC -:100090000C94BF020C94BF020C94BF020C94BF02DC -:1000A0000C94BF020C94BF020C94BF02AC0FCE0F95 -:1000B000BC10CE0FBC1013103610BC108B109E104D -:1000C0006D136D139C139C13D213F2132315231578 -:1000D000FD132315AD14AD141415231523151D158B -:1000E000BA14BA14BA14BA14BA14BA14BA14BA14A0 -:1000F000BA14BA14BA14BA14BA14BA14BA14BA1490 -:10010000CC14D914E014E714F1140000F0A1350068 -:100110003A4129610030023000001E00370004001F -:1001200038004A003C661F003600120014004E00E2 -:100130002B002000330008000D004B002800210098 -:10014000130018000E004D003D6522001C000C003D -:100150001B0000003E6D64004C670000E3000000DF -:100160003F412E00C1000000E60000004041230096 -:100170000900070005000000416D24000A00150079 -:100180001000500044652500060017001A005100B9 -:100190002C0026000B001100190052002A00270035 -:1001A0000F0016001D004F0045662D00306F3461B2 -:1001B000013003300000000001000000043016018F -:1001C00000003A006400000000001D0102533B00E3 -:1001D0006402F20000001B01F5003C00F000F10099 -:1001E00000000601F4003D000000F30000001901CA -:1001F00000003E0000000000000000000000A6001B -:1002000000000000000000000100A5000100000047 -:100210004600000001003F00000000000000000058 -:10022000AE004000240021001E000000A900410093 -:10023000250022001F003700AB00420026002300EB -:1002400020002700AC004300550057005400670011 -:10025000AA0044002F00310000000000000035001B -:10026000010029610030023000001E00140004006B -:100270001D004A0001001F001A0016001B004E005E -:100280002B0020000800070006004B00280021007A -:100290001500090019004D003D65220017000A00F5 -:1002A000050000003E6D64004C670000E3000000A4 -:1002B00001002E0001000000E60000000100230004 -:1002C0001C000B0011000000416D240018000D00FF -:1002D00010005000446525000C000E00360051004F -:1002E0002C00260012000F00370052002A002700C1 -:1002F0001300330038004F0045662D00306F346125 -:1003000001300330000016034500720067006F00E3 -:1003100044006F007800200045005A0000001603DA -:100320004500720067006F0044006F0078002000F5 -:1003300045005A0000000403090409026D0004018D -:1003400000A0FA09040000010301010009211101C4 -:1003500000012240000705810308000A090401008A -:100360000103010200092111010001224D000705CE -:10037000820308000A0904020001030000000921A9 -:10038000110100012236000705830308000A090451 -:1003900003000103000000092111010001223900BE -:1003A000070584031000011201100100000008ED90 -:1003B000FE071301000102000105010906A1010564 -:1003C0000719E029E7150025019508750181020547 -:1003D000081901290595057501910295017503918B -:1003E0000105071900297715002501957875018108 -:1003F00002C005010980A101850216010026B7008F -:100400001A01002AB700751095018100C0050C097A -:1004100001A1018503160100269C021A01002A9CF5 -:1004200002751095018100C005010902A1010901B1 -:10043000A10005091901290515002501950575017A -:10044000810295017503810105010930093115818A -:10045000257F95027508810609381581257F95014C -:1004600075088106050C0A38021581257F950175EE -:10047000088106C0C005010906A101050719E02988 -:10048000E715002501950875018102950175088120 -:100490000105081901290595057501910295017558 -:1004A0000391010507190029FF150026FF00950695 -:1004B00075088100C000000000000000000000007E -:1004C000010204060A0F17202C3A4A5D71879DB37A -:1004D000C7DAE9F5FCFFFCF5E9DAC7B39D87715D82 -:1004E0004A3A2C20170F0A060402010000000000FF -:1004F00000000000000011241FBECFEFDAE0DEBFD5 -:10050000CDBF04B603FE24C08091FF01909100028C -:10051000A0910102B09102028730904BA740B04BEE -:10052000B9F41092FF011092000210920102109291 -:10053000020214BE84B7877F84BF88E10FB6F894A7 -:1005400080936000109260000FBEE0E0FFE3099529 -:1005500011E0A0E0B1E0E0E8F7E402C005900D9200 -:10056000A433B107D9F711E0A4E3B1E001C01D92B3 -:10057000AF3FB107E1F70E94B50B0C94BE230C947A -:1005800000001092B9008AE08093B800089594EAC0 -:100590009093BC009091BC0097FFFCCF9091B90064 -:1005A000987F983021F0903111F081E00895809388 -:1005B000BB0084E88093BC008091BC0087FFFCCF27 -:1005C0008091B900887F883111F0803471F780E024 -:1005D000089584E98093BC008091BC0084FDFCCF29 -:1005E00008958093BB0084E88093BC008091BC0098 -:1005F00087FFFCCF9091B900987F81E0983209F491 -:1006000080E0089584E88093BC008091BC0087FF5F -:10061000FCCF8091BB00089580B38C7080BB81B308 -:10062000836F81BB089580910101811115C080E421 -:100630000E94C7028093010181110CC082E10E94D7 -:10064000F10280930101811105C08FEF0E94F10238 -:10065000809301010E94E90284B1807F84B985B151 -:10066000807F85B98AB1837F8AB98BB1837F8BB94B -:100670003E98469808950E94DD04809301010E94EF -:1006800013030E940C03A5E3B1E0E3E4F1E08EE084 -:100690008E0F11921D928E13FCCF0C94C7040E94F2 -:1006A000DD04809301010E9413030E940C03A5E363 -:1006B000B1E0E3E4F1E08EE08E0F11921D928E1313 -:1006C000FCCF0895BF92CF92DF92EF92FF920F93EB -:1006D0001F93CF93DF9380910101882379F080915C -:1006E00034018F5F80933401811108C00E94DD04C2 -:1006F00080930101811102C00E946F0405E311E0A3 -:10070000C0E0D0E0DD24D39482E0C82EEE24E39450 -:10071000F12CC730D10500F580910101811164C031 -:1007200080E40E94C70280930101811112C082E11E -:100730000E94F1028093010181110BC0C7010C2EB0 -:1007400001C0880F0A94EAF780950E94F102809315 -:1007500001010E94E90248C0CA30A1F028F4C83063 -:1007600059F0C93061F005C0CC3089F070F0CD305F -:1007700089F0209A289810C0219A29980DC0229AB1 -:100780002A980AC0239A2B9807C0529A01C0539AFC -:100790005B9802C03E9A469890EA9A95F1F79FB10D -:1007A000799902C082E001C080E091709D25982B6C -:1007B0007C9902C084E001C080E0892B7D9902C051 -:1007C00038E001C030E0832B7E9902C020E101C0F7 -:1007D00020E0822B9FB19095991F9927991F9295A0 -:1007E000990F907E892B0FC080910101811149C022 -:1007F00080E40E94C70280930101882379F1B12C23 -:100800000E94E9028B2DF8019081981719F08083DE -:10081000C09200010E94130321960F5F1F4FCE303C -:10082000D10509F076CF80910001882361F18150D4 -:1008300080930001882339F08FE99FE00197F1F759 -:1008400000C0000020C0A3E4B1E0E5E3F1E0CF0187 -:10085000825F91919D938E13FCCF15C083E10E941E -:10086000F102809301018111CACF81E40E94C70285 -:10087000809301018111C3CF0E940203B82EB0946E -:10088000BFCF80E0C0CF0E946D0481E0DF91CF91A7 -:100890001F910F91FF90EF90DF90CF90BF90089540 -:1008A000E82FF0E0ED5BFE4F8081089508950F93EF -:1008B0001F93CF93DF93C3E4D1E010E00C2F025FCE -:1008C000899190E00E94021C180F0C13F9CF812F20 -:1008D000DF91CF911F910F9108950C94BC0556980C -:1008E0005E9825982D9826982E9827982F988FEF08 -:1008F00090E0909389008093880090938B00809380 -:100900008A0090938D0080938C00259A2D9A2FEF6A -:1009100080E792E0215080409040E1F700C0000065 -:10092000269A2E9A2FEF80E792E021508040904047 -:10093000E1F700C00000279A2F9A2FEF80E792E09E -:10094000215080409040E1F700C0000025982D988C -:100950002FEF80E792E0215080409040E1F700C007 -:10096000000026982E982FEF80E792E021508040DB -:100970009040E1F700C0000027982F9856985E98A5 -:1009800025982D9826982E9827982F98089589EACB -:100990008093800089E08093810024982C983F9870 -:1009A0008AB18F748AB96E98479A8BB1806B8BB974 -:1009B000769A0E946F040C94BB0580E2809301013B -:1009C0008091510181110EC00E94C10281E080938B -:1009D00051012FEF83ED90E3215080409040E1F7EB -:1009E00000C0000080E40E94C702809301018111D1 -:1009F0002EC00E94F10280930101811128C00E9443 -:100A0000F10280930101811122C08FE30E94F10263 -:100A10008093010181111BC00E94E90280E40E94C1 -:100A2000C70280930101811112C08CE00E94F10283 -:100A30008093010181110BC00E94F102809301019A -:100A4000811105C08FE30E94F102809301010E9491 -:100A5000E902809101010895FC01623009F445C06A -:100A600028F4662351F0613041F182C0633009F40B -:100A70005BC0643009F472C07BC08281882341F07E -:100A80000E94A51C909353018093520185EE6AC089 -:100A900085EE0E94D91280915201909153010E94DB -:100AA000B11C8F35910508F063C086EE0E941112CB -:100AB00084E30E94111284E34DC082818111E0CF52 -:100AC00085EE0E94D91280915201909153010E94AB -:100AD000B11C8F35910508F04BC086EE0E941112B3 -:100AE00081E30E94111281E335C08281882341F0A5 -:100AF0000E94A51C909353018093520182EE32C054 -:100B000082EE0E94D91280915201909153010E946D -:100B1000B11C8F35910560F586EE0E9411128FE2AF -:100B20000E9411128FE216C082818111E1CF82EE04 -:100B30000E94D91280915201909153010E94B11CE0 -:100B40008F359105A8F486EE0E94111280E30E9471 -:100B5000111280E30E94D91286EE08C08281882398 -:100B600021F089E30E94111203C089E30E94D91287 -:100B700080E090E0089508956091C0017091C101F6 -:100B80008091C2019091C3010E940E1C56985E98FC -:100B900025982D9826982E9827982F98813029F0FF -:100BA000823029F4269A2E9A02C0279A2F9A0E9400 -:100BB000F51081FF02C0259A2D9A089581E00895CD -:100BC00081E008950C94E0050895282F882339F0DA -:100BD00090E02A3010F44D9608950697089587E224 -:100BE00090E00895AF92BF92DF92EF92FF920F9341 -:100BF0001F93CF93DF938C01FC01C081D181CE0183 -:100C00000E94871ABE010E946209EC01B8010E948D -:100C1000E205882309F4C9C1F8018281882309F417 -:100C2000BEC08091600181111FC0C431F0E7DF07B1 -:100C300009F0B5C10E94E40581E0809360010E9443 -:100C4000A51C90935F0180935E0110925701109252 -:100C500059011092580110925B0110925A011092A2 -:100C60005D0110925C01A1C180915E0190915F01D4 -:100C70000E94B11C883C910570F480915701E82FC7 -:100C8000F0E0EE0FFF1FE85AFE4FD183C0838F5F65 -:100C9000809357018AC1C13020E8D20708F451C0BF -:100CA000F8018281882309F47EC05E01E894B7F8D8 -:100CB00080915601813079F050F08230C1F482EE9B -:100CC0000E94111287E50E94111287E50EC082EE84 -:100CD0000E9411120CC080EE0E94111281EE0E943F -:100CE000111288E10E94111288E10E94D9128CE051 -:100CF000E82EF12CC5010E2C02C0969587950A941A -:100D0000E2F78F700E94E505D82E0E9411128D2DFA -:100D10000E94D912F4E0EF1AF1082CEFE2162FEF3F -:100D2000F20641F780915601813029F010F08230AF -:100D300041F482EE04C080EE0E94D91281EE0E943E -:100D4000D912C43180E7D80768F4C23090E7D907D8 -:100D500008F046C0C115E0E7DE0771F0C130D047AA -:100D6000A1F10CC1C33320E7D20709F4D8C0C433C2 -:100D7000D04709F4EBC002C1F8018281882309F44D -:100D800002C10E948E15FFEF24E38CE0F150204059 -:100D90008040E1F700C000000E94001D06C1C13084 -:100DA00080E8D80770F2C43120E7D20708F0B3C05A -:100DB000C23080E7D807A0F4C11590E7D90709F43D -:100DC000E2C0C130D04709F0D9C0F8018281882340 -:100DD00009F4D9C08091DD0181608093DD01E5C017 -:100DE000F8018281882309F4CEC00E945A1D811126 -:100DF00002C00E94401D0E946D1D90E09093F10181 -:100E00008093F001C230F0E7DF0721F48091F00118 -:100E100081607AC0C33020E7D20721F48091F001CD -:100E2000826072C0C43080E7D80721F48091F0015D -:100E300084606AC0C53090E7D90719F48091F00149 -:100E400027C0C630E0E7DE0721F48091F001806121 -:100E50005BC0C730F0E7DF0721F48091F0018062CA -:100E600053C0C83020E7D20721F48091F00180649C -:100E70004BC0C93080E7D80721F48091F001806829 -:100E800043C0CA3090E7D90729F48091F00184600B -:100E900088603AC0CB30E0E7DE0721F48091F001B2 -:100EA0008E7F32C0CC30F0E7DF0721F48091F00173 -:100EB0008D7F2AC0CD3020E7D20721F48091F00148 -:100EC0008B7F22C0CE3080E7D80719F48091F001E3 -:100ED0001AC08091F001CF3090E7D90711F48F7ECE -:100EE00013C0C031E0E7DE0711F48F7D0DC0C131C2 -:100EF000F0E7DF0711F48F7B07C0C231D04711F450 -:100F00008F7702C08B7F877F8093F0018091F00103 -:100F10000E94711D4AC0C333F0E7DF07A1F4F80156 -:100F20008281882321F01092540182E016C08091C2 -:100F30005401811106C086E20E94111286E20E94CD -:100F4000D91282E018C0C433D047C1F4F8018281BD -:100F5000882331F01092550180E20E94281325C0A9 -:100F600080915501811106C087E20E94111287E22B -:100F70000E94D91280E20E942F1317C081E0809353 -:100F8000540180935501C801DF91CF911F910F91BA -:100F9000FF90EF90DF90BF90AF900C94DE05C130D2 -:100FA000F0E8DF0708F081CECCCE80E0DF91CF9172 -:100FB0001F910F91FF90EF90DF90BF90AF90089539 -:100FC00026E0729FF001112444E5849FE00DF11D9D -:100FD0001124E60FF11DEE0FFF1FE25FFE4F85911A -:100FE00094910E947409811560E49607B0F581150B -:100FF00070E3970708F0DEC0803E9105D8F4803C8E -:10100000910508F06CC0883A910578F4853A91050D -:1010100008F06BC08130910509F452C108F40FC18A -:101020008430910508F04CC10AC18B3B910508F44E -:1010300067C005C18F3F910509F048F4803F9105D5 -:1010400008F0ADC0883E910508F43AC1F8C081159A -:1010500020E2920708F0A5C00895811543E59407A2 -:1010600090F4811562E5960708F0C8C0811571E516 -:10107000970708F0BEC0811520E5920708F09DC0D3 -:101080009F70906A0895811545E59407D8F48115FD -:1010900064E5960708F0C8C0482F4695469570E26B -:1010A000479FA00111248370992721E030E0B90106 -:1010B00002C0660F771F8A95E2F7CB01842B952B30 -:1010C0009A680895811576E5970708F4B2C09C01E7 -:1010D00030562115304108F0B2C09F70AEC0FC01FF -:1010E000EE0FFF1FE657F04062C0853A910509F404 -:1010F000A9C0863A910509F0A8C082E890E4089555 -:10110000883A910509F4A4C0893A910509F4A3C06D -:101110008A3A910509F4A2C08B3A910509F4A1C05D -:101120008C3A910509F4A0C08D3A910509F49FC04D -:10113000803B910509F49EC08E3A910509F49DC04B -:101140008F3A910509F49CC0813B910509F49BC03D -:10115000823B910509F49AC0833B910509F499C03B -:10116000843B910509F498C0853B910509F497C02B -:10117000863B910509F496C0873B910509F495C01B -:10118000883B910509F494C0893B910509F493C00B -:101190008A3B910509F492C080E094E4089590653B -:1011A0000895FC01FF70EE0FFF1FE65FFE4F859173 -:1011B000949108959927906C0895482F437021E0E9 -:1011C00030E002C0220F331F4A95E2F73C68AC01C1 -:1011D00064E0569547956A95E1F74370342B8F701C -:1011E0008695869560E2869FC0011124822B932B01 -:1011F0000895982F8827816F906A0895482F469503 -:10120000469570E2479FA00111248370992721E041 -:1012100030E0B90102C0660F771F8A95E2F7CB0173 -:10122000842B952B9C680895982F8827846F906A4B -:1012300008958F719927982F88279062089580E0EC -:1012400090E0089581E890E4089583E890E408959B -:1012500082EE94E4089589EE94E408958AEE94E48D -:10126000089585EB94E4089586EB94E4089587EB64 -:1012700094E408958CEC94E408958DEC94E408953E -:1012800083E895E408958AE895E4089582E995E471 -:10129000089584E995E4089581E296E4089583E24F -:1012A00096E4089584E296E4089585E296E408952C -:1012B00086E296E4089587E296E408958AE296E449 -:1012C0000895089596E0799FF001112494E5899F8F -:1012D000E00DF11D1124E60FF11DEE0FFF1FE25F7F -:1012E000FE4F8591949108958238910549F1B0F4AB -:1012F0008133910509F458C048F48932910509F405 -:101300004EC08A32910509F454C008958533910581 -:1013100009F440C08933910599F00895833E910501 -:1013200029F138F4803E910591F0823E9105A1F0BB -:101330000895863E9105F9F0873E910531F10895B3 -:101340002091F00120FD3AC021FD38C00895809120 -:10135000F00180FD35C032C08091F00182FF32C0C3 -:101360008091F00184FD30C083EE39C08091F0019E -:1013700082FD28C0F5CF8091F00183FF27C08091C6 -:10138000F00184FD21C087EE2AC08091F00183FD29 -:101390001DC0F5CF8091F00185FD1AC01BC0809162 -:1013A000F00185FD17C014C08091F00186FD14C0C6 -:1013B00015C08091F00186FD11C00EC080EE0FC0F7 -:1013C00089E30DC082EE0BC080E009C086EE07C045 -:1013D00089E205C085E303C08AE201C081E390E0B1 -:1013E000089508950C94F109809171010895CF93A7 -:1013F000DF9300D01F92CDB7DEB79C018091F6013C -:10140000843019F593E099833B832A839093E90014 -:101410008FEF9091E800815095FD06C095ED9A956B -:10142000F1F700008111F5CF8091E80085FF0DC034 -:1014300040E050E063E070E0CE0101960E945D0C58 -:101440008091E8008E778093E8000F900F900F90C6 -:10145000DF91CF910895CF93DF9300D01F92CDB746 -:10146000DEB72091F601243021F522E029839B8309 -:101470008A8383E08093E9008FEF9091E8008150A8 -:1014800095FD06C095ED9A95F1F700008111F5CF15 -:101490008091E80085FF0DC040E050E063E070E01F -:1014A000CE0101960E945D0C8091E8008E778093BA -:1014B000E8000F900F900F90DF91CF910895209149 -:1014C000F6012430F1F422E02093E9002FEF30916F -:1014D000E800215035FD06C035ED3A95F1F70000E2 -:1014E0002111F5CF2091E80025FF0BC040E050E02E -:1014F00065E070E00E945D0C8091E8008E7780933B -:10150000E8000895CF93DF93EC019091F6019430B9 -:1015100009F046C080910C018823D9F080910D011B -:101520008823B9F09093E9008FEF9091E800815003 -:1015300095FD06C095E19A95F1F700008111F5CF70 -:101540008091E80085FF2CC040E050E060E170E051 -:1015500017C081E08093E9008FEF9091E8008150FF -:1015600095FD06C095ED9A95F1F700008111F5CF34 -:101570008091E80085FF14C040E050E068E070E032 -:10158000CE010E945D0C8091E8008E778093E80088 -:1015900080E1FE01A1E6B1E001900D928A95E1F7AC -:1015A000DF91CF9108958091F501811109C00E94CA -:1015B000F20D0E944F0E8091E20084608093E20061 -:1015C00008951092F501089508950C94E6210E9463 -:1015D000961C0E94EC210E94F5100C94F20942E046 -:1015E00061EC81E00E946C0D42E061EC82E00E94BF -:1015F0006C0D42E061EC83E00E946C0D42E161EC15 -:1016000084E00C946C0D8091F801833009F455C08E -:1016100030F4813071F0823009F48EC008958A3040 -:1016200009F47AC08B3009F460C0893009F09CC09D -:1016300020C08091F701813A09F096C08091E800BE -:10164000877F8093E8008091FB019091FC01892BBA -:1016500021F460E181E691E003C060E080E090E089 -:1016600070E00E94A80C8091E8008B778093E800DE -:1016700008958091F701813209F076C08091FB01D5 -:101680009091FC01009719F0039709F06DC08091CB -:10169000E800877F8093E8008091E80082FD05C024 -:1016A0008091F6018111F8CF5FC08091F1008093A5 -:1016B00071018091E8008B7753C08091F701813AE6 -:1016C00009F052C08091FB019091FC01892B09F037 -:1016D0004BC08091E800877F8093E8008091E8000C -:1016E00080FFFCCF80910C0136C08091F7018132E0 -:1016F000D9F58091FB019091FC01892BA9F580918E -:10170000E800877F8093E8000E94A10D8091F90195 -:1017100080930C010C948E158091F701813221F594 -:101720008091E800877F8093E8000E94A10D80915E -:10173000FA018093720108958091F701813AA1F432 -:101740008091E800877F8093E8008091E80080FF27 -:10175000FCCF809172018093F1008091E8008E7738 -:101760008093E8000C94A10D089584B7877F84BF0F -:1017700088E10FB6F89480936000109260000FBE6D -:1017800080E880936100109261000E9444110E94E1 -:10179000F20D0E944F0E8091E20084608093E2007F -:1017A00078940E94D5100E94461182E091E00E9438 -:1017B000F0100E94D4218091F601853069F40E94D6 -:1017C0005E1C8091F4018823B1F30E94881C882359 -:1017D00091F30E94470CEFCF0E944C11ECCF292FC0 -:1017E000332723303105C9F064F42130310581F00D -:1017F0002230310509F043C08DE690E02AE333E062 -:1018000042C021323105F1F02232310541F137C0B9 -:1018100082E190E027EA33E036C0992781309105D4 -:1018200041F08230910541F0892B49F5E6E3F3E080 -:1018300005C0EEE1F3E002C0E6E0F3E0849190E061 -:101840009F0121C06430D8F4E62FF0E0EE0FFF1FB7 -:10185000EE5DFE4F2081318189E090E014C064305C -:1018600070F470E0FB01EE0FFF1FE65EFE4F20817B -:101870003181FB01EA5EFE4F808190E004C080E090 -:1018800090E020E030E0FA0131832083089580E188 -:1018900089BD82E189BD09B400FEFDCF8091D800E9 -:1018A0008F7D8093D8008091E00082608093E0007B -:1018B0008091E00081FDFCCF0895CF92DF92EF92FE -:1018C000FF920F931F93CF93DF93EC018B016A017B -:1018D0000E94C00D811133C0C114D10439F0F6014A -:1018E00080819181081B190BC80FD91FE12CF12CA5 -:1018F0000115110519F18091E80085FD16C0809150 -:10190000E8008E778093E800C114D10449F0F60115 -:1019100080819181E80EF91EF182E08285E00FC09E -:101920000E94C00D882321F30AC089918093F100A1 -:1019300001501109FFEFEF1AFF0ADACF80E0DF91C3 -:10194000CF911F910F91FF90EF90DF90CF9008956E -:101950002091FD013091FE012617370748F06115EF -:10196000710539F42091E8002E772093E80001C03A -:10197000B90140E061157105A9F12091F60122231A -:1019800009F443C0253009F442C02091E80023FD4A -:1019900040C02091E80022FD32C02091E80020FFE5 -:1019A000E9CF4091F3002091F20030E0342BFC01AC -:1019B000CF016115710559F02830310540F481914E -:1019C0008093F100615071092F5F3F4FF1CF41E0EB -:1019D0002830310509F040E02091E8002E7720936F -:1019E000E800C8CF4111C9CF0AC08091F601882311 -:1019F00061F0853061F08091E80083FD0AC080913C -:101A0000E80082FFF2CF80E0089582E0089583E04D -:101A1000089581E008952091FD013091FE0126177F -:101A2000370748F06115710539F42091E8002E77E9 -:101A30002093E80001C0B901FC0120E061157105A7 -:101A400091F18091F601882309F440C0853009F4B2 -:101A50003FC08091E80083FD3DC08091E80082FD99 -:101A60002FC08091E80080FFE9CF2091F3008091A2 -:101A7000F20090E0922B6115710559F088309105C4 -:101A800040F424912093F100319661507109019640 -:101A9000F2CF21E0089709F020E08091E8008E77EE -:101AA0008093E800CBCF2111CCCF0AC08091F60102 -:101AB000882361F0853061F08091E80083FD0AC0E1 -:101AC0008091E80082FFF2CF80E0089582E00895DF -:101AD00083E0089581E00895982F973058F590930A -:101AE000E900981739F07091EC002091ED005091C9 -:101AF000F00003C0242F762F50E021FF19C0309151 -:101B0000EB003E7F3093EB003091ED003D7F309352 -:101B1000ED003091EB0031603093EB007093EC00FE -:101B20002093ED005093F0002091EE0027FF07C0B6 -:101B30009F5FD3CF8F708093E90081E0089580E0AC -:101B400008958091F70187FF11C08091E80082FD20 -:101B500005C08091F6018111F8CF11C08091E80095 -:101B60008B770BC08091F601882349F08091E800C3 -:101B700080FFF8CF8091E8008E778093E800089589 -:101B80002091E4003091E50095E64091EC00842F2F -:101B9000817040FF22C08091E80080FD1CC08091D0 -:101BA000F601882391F0853091F08091EB0085FD5E -:101BB00010C04091E4005091E5004217530729F30B -:101BC0009A01915011F784E0089582E0089583E02E -:101BD000089581E0089580E008954091E80042FF73 -:101BE000DECF08950E94600E0E94680EE0EEF0E0E5 -:101BF000808181608083E8EDF0E080818F77808351 -:101C000019BCA7EDB0E08C918E7F8C9380818F7E84 -:101C100080831092F50108950F931F93CF93DF9364 -:101C20000E94600E0E94680EC8EDD0E088818F7718 -:101C3000888388818068888388818F7D888319BCA8 -:101C40001092F6011092F2011092F4011092F30139 -:101C500000EE10E0F80180818B7F808388818160B5 -:101C6000888342E060E080E00E946C0DE1EEF0E0ED -:101C700080818E7F8083E2EEF0E0808181608083CE -:101C8000808188608083F80180818E7F8083888155 -:101C900080618883DF91CF911F910F910895E8EDC6 -:101CA000F0E080818F7E8083E7EDF0E080818160CD -:101CB000808384E082BF81E08093F5010C940C0E58 -:101CC000E8EDF0E080818E7F80831092E20008953D -:101CD0001092DA001092E10008951F920F920FB651 -:101CE0000F9211242F933F934F935F936F937F93A2 -:101CF0008F939F93AF93BF93EF93FF938091E100F6 -:101D000082FF0BC08091E20082FF07C08091E1005A -:101D10008B7F8093E1000E94D4108091DA0080FFD5 -:101D20001FC08091D80080FF1BC08091DA008E7F99 -:101D30008093DA008091D90080FF0DC080E189BDD9 -:101D400082E189BD09B400FEFDCF81E08093F601F8 -:101D50000E94D30A05C019BC1092F6010E94E10A44 -:101D60008091E10080FF19C08091E20080FF15C0E2 -:101D70008091E2008E7F8093E2008091E20080619A -:101D80008093E2008091D80080628093D80019BCD3 -:101D900085E08093F6010E94E50A8091E10084FFCE -:101DA00030C08091E20084FF2CC080E189BD82E1D7 -:101DB00089BD09B400FEFDCF8091D8008F7D80934E -:101DC000D8008091E1008F7E8093E1008091E20055 -:101DD0008F7E8093E2008091E20081608093E20038 -:101DE0008091F201882311F084E007C08091E30024 -:101DF00087FD02C081E001C083E08093F6010E946C -:101E0000E70A8091E10083FF29C08091E20083FF0F -:101E100025C08091E100877F8093E10082E080937C -:101E2000F6011092F2018091E1008E7F8093E10033 -:101E30008091E2008E7F8093E2008091E2008061D9 -:101E40008093E20042E060E080E00E946C0D8091AF -:101E5000F00088608093F0000E94E40AFF91EF9107 -:101E6000BF91AF919F918F917F916F915F914F91B2 -:101E70003F912F910F900FBE0F901F9018951F92BA -:101E80000F920FB60F9211242F933F934F935F93AE -:101E90006F937F938F939F93AF93BF93CF93DF9372 -:101EA000EF93FF93C091E900CF708091EC00D82FA1 -:101EB000D17080FDD0E81092E9008091F000877F1A -:101EC0008093F00078940E94830F1092E900809133 -:101ED000F00088608093F000CD2BCF70C093E900B4 -:101EE000FF91EF91DF91CF91BF91AF919F918F9132 -:101EF0007F916F915F914F913F912F910F900FBE06 -:101F00000F901F9018951F93CF93DF93CDB7DEB737 -:101F1000AA970FB6F894DEBF0FBECDBFE7EFF1E092 -:101F200088E08E0F9091F10091938E13FBCF0E9469 -:101F3000030B8091E80083FF1FC18091F70190910E -:101F4000F801492F50E04A30510508F015C1FA0157 -:101F5000EA5AFF4F0C946E23803881F0823809F0E2 -:101F60000BC18091FB018F708093E9008091EB00A1 -:101F700085FB882780F91092E90006C08091F30163 -:101F80009091F401911182609091E800977F909375 -:101F9000E8008093F1001092F100C8C0282F2D7F37 -:101FA00009F0EAC0882319F0823061F0E5C0809121 -:101FB000F901813009F0E0C0933009F080E08093AE -:101FC000F4012BC08091F901811127C08091FB01A0 -:101FD0008F7009F4D1C08093E9002091EB0020FFBD -:101FE0001CC0933021F48091EB00806214C090916A -:101FF000EB0090619093EB0021E030E0A90102C07A -:10200000440F551F8A95E2F74093EA001092EA00C8 -:102010008091EB0088608093EB001092E900809142 -:10202000E800877F86C08111A7C01091F9011F7752 -:102030008091E3008078812B8093E3008091E80019 -:10204000877F8093E8000E94A10D8091E80080FFC7 -:10205000FCCF8091E30080688093E300111102C0FF -:1020600082E001C083E08093F60186C08058823010 -:1020700008F082C08091F9019091FA018C3D53E003 -:10208000950779F583E08A838AE289834FB7F894CC -:10209000DE01139620E03EE051E2E32FF0E05093A2 -:1020A0005700E49120FF03C0E295EF703F5FEF70AF -:1020B0008E2F90E0EA3010F0C79601C0C0968D9345 -:1020C0009D932F5F243149F74FBF8091E800877FB0 -:1020D0008093E8006AE270E0CE0101960E94A80CAD -:1020E00014C0AE014F5F5F4F6091FB010E94EF0B88 -:1020F000BC01009709F440C09091E800977F90934D -:10210000E80089819A810E940B0D8091E8008B770D -:102110008093E80031C0803879F58091E800877FAE -:102120008093E8008091F2018093F1008091E800B3 -:102130008E778093E8000E94A10D1EC081111CC003 -:102140009091F9019230C0F48091E800877F8093EC -:10215000E8009093F2010E94A10D8091F20181119B -:1021600006C08091E30087FD02C081E001C084E0E9 -:102170008093F6010E94EF0A8091E80083FF0AC075 -:102180008091E800877F8093E8008091EB00806277 -:102190008093EB00AA960FB6F894DEBF0FBECDBFBA -:1021A000DF91CF911F9108950895CF938091F6010B -:1021B0008823A1F0C091E900CF709091EC00892FA5 -:1021C000817090FD80E8C82B1092E9008091E800B2 -:1021D00083FD0E94830FCF70C093E900CF910895D3 -:1021E00090937801809377010895E0917701F091C1 -:1021F0007801309721F00190F081E02D099480E082 -:102200000895E0917701F0917801309721F00280F4 -:10221000F381E02D09940895E0917701F091780120 -:10222000309721F00480F581E02D099408952091E4 -:102230007501309176018217930771F090937601C2 -:1022400080937501E0917701F0917801309721F04A -:102250000680F781E02D0994089520917301309153 -:1022600074018217930771F0909374018093730146 -:10227000E0917701F0917801309721F00084F185A9 -:10228000E02D0994089508950C9443110E949C1C1C -:102290000E943B030C94221D9F92AF92BF92CF925B -:1022A000DF92EF92FF920F931F93CF93DF9300D0B3 -:1022B00000D000D0CDB7DEB70E9462030DE010E081 -:1022C000AA24A394B12C902E802F0E945004980130 -:1022D00026583E4F6901F901F080F826A1F401501B -:1022E000110988F78FEF89838A831B820E94A51CBE -:1022F0008160782F9D838C8349815A816B818D8188 -:102300000E94E3112FC09091DD0191FF04C08E83E4 -:102310000E9456048E8125E030E0A501022E01C006 -:10232000440F0A94EAF7E42E4F21C1F029839A82E0 -:102330008E2191E009F490E09B830E94A51C8160AE -:10234000782F9D838C8349815A816B818D810E9476 -:10235000E311F6018081E826E08204C021503109B2 -:10236000E0F6BDCF0E94F01E109179010E94F51099 -:102370001817B9F00E94F5108093790126960FB6D0 -:10238000F894DEBF0FBECDBFDF91CF911F910F91AB -:10239000FF90EF90DF90CF90BF90AF909F900C9404 -:1023A000F20926960FB6F894DEBF0FBECDBFDF91BF -:1023B000CF911F910F91FF90EF90DF90CF90BF9042 -:1023C000AF909F900895CF93DF93CDB7DEB72B9753 -:1023D0000FB6F894DEBF0FBECDBF4F835887698715 -:1023E0007A878B87DE01119686E0FD0111928A952E -:1023F000E9F785E0FE01379601900D928A95E1F7A5 -:1024000049815A816B817C818D819E810E942C182B -:102410002B960FB6F894DEBF0FBECDBFDF91CF91E4 -:102420000895CF93882309F4C2C0C82F823859F485 -:102430000E94F51081FDBBC089E30E94061B0E942B -:10244000D31B89E30CC0833879F40E94F51080FD1A -:10245000AEC083E50E94061B0E94D31B83E50E9449 -:10246000481BCF910C94D31B843859F40E94F5106B -:1024700082FD9DC087E40E94061B0E94D31B87E457 -:10248000EECF8CEF8C0F813A48F48C2F0E943A21CA -:1024900081118DC08C2F0E94061BE3CF80E28C0F30 -:1024A000883048F4C77081E001C0880FCA95EAF708 -:1024B0000E948C1BD6CF8BE58C0F833078F4C53A05 -:1024C00029F0C63A31F083E890E005C081E890E059 -:1024D00002C082E890E0CF910C94171188E58C0F30 -:1024E000833108F064C0C83A39F1C93A41F1CA3AB7 -:1024F00049F1CB3A51F1CC3A59F1CD3A61F1C03BB7 -:1025000069F1CE3A71F1CF3A79F1C13B81F1C23B29 -:1025100089F1C33B91F1C43B99F1C53BA1F1C63BA5 -:10252000A9F1C73BB1F1C83BB9F1C93BC1F1CA3B05 -:10253000C9F180E090E038C082EE90E035C089EECD -:1025400090E032C08AEE90E02FC085EB90E02CC086 -:1025500086EB90E029C087EB90E026C08CEC90E001 -:1025600023C08DEC90E020C083E891E01DC08AE894 -:1025700091E01AC082E991E017C084E991E014C0AB -:1025800081E292E011C083E292E00EC084E292E028 -:102590000BC085E292E008C086E292E005C087E2C7 -:1025A00092E002C08AE292E0CF910C942D11CF917B -:1025B0000895882309F44BC0823859F40E94F5101D -:1025C00081FF45C089E30E94061B0E94D31B89E35B -:1025D0000CC0833871F40E94F51080FF38C083E589 -:1025E0000E94061B0E94D31B83E50E94481B0C948B -:1025F000D31B843859F40E94F51082FF28C087E469 -:102600000E94061B0E94D31B87E4EFCF9CEF980F1C -:10261000913A58F390E2980F983050F4877091E017 -:1026200001C0990F8A95EAF7892F0E94921BDFCF8C -:102630009BE5980F933020F480E090E00C94171104 -:10264000885A833120F480E090E00C942D11089595 -:10265000882321F00E948C1B0C94D31B089588239F -:1026600021F00E94921B0C94D31B08957F928F92AD -:102670009F92AF92BF92CF92DF92EF92FF920F9311 -:102680001F93CF93DF931F92CDB7DEB77C01C62E89 -:10269000772EFC01058102950F70128111110E94A5 -:1026A000A91B0E94FF1A882379F0112369F080E2A8 -:1026B0008C0D883048F082E00E94E81A0E94FF1AD0 -:1026C00091E0D82ED92601C0D12CE72DE295EF70EC -:1026D000F0E0E05AFF4F0C946E23872D807F072D8A -:1026E0000F70882311F00295007F112389F00023D9 -:1026F00009F490C180E28C0D883020F4802F0E9474 -:102700008C1B03C0802F0E949C1B0E94D31B82C184 -:102710008C2D0E94D912002309F495C180E28C0D02 -:10272000883020F4802F0E94921B03C0802F0E94CB -:10273000A21B0E94D31B87C1972D907F872D8F707E -:10274000903211F08295807FCC2021F0F1E0CF16FD -:10275000B1F01EC0112349F0002309F414C1013067 -:1027600009F011C10E94BC1B6EC1002319F0013099 -:1027700009F469C189830E94BF1B89810AC11123A1 -:1027800021F0023008F05FC1FEC001115CC101C13F -:10279000112321F0002309F4F6C03CC1002309F401 -:1027A000F8C03EC1872D86958695837090E000978E -:1027B00019F0019761F047C1112321F08C2D972D5D -:1027C000937002C080E090E00E9417113CC1112379 -:1027D00021F08C2D972D937002C080E090E00E9434 -:1027E0002D1131C18C2D112319F00E94F81D02C04A -:1027F0000E94601E0E94E51E26C1872D837009F08D -:1028000052C0111120C18C2D829586958770880F3A -:10281000880F9C2D9F70892E912CA12CB12C082EF5 -:1028200004C0880C991CAA1CBB1C0A94D2F7C4FED5 -:1028300014C00FE010E020E030E0B901A80104C0AE -:10284000440F551F661F771F8A95D2F7CB01BA0137 -:10285000609570958095909503C060E070E0CB0125 -:10286000272D26952695237030E02230310569F01A -:102870002330310589F0682979298A299B2921305B -:10288000310571F00E947419DEC0682979298A29FE -:102890009B290E949019D7C00E947419C501B401E8 -:1028A0000E945819D0C0112319F0872D817001C0E2 -:1028B0008695882309F4C7C08C2D829586958770EC -:1028C000880F880F9C2D9F70892E912CA12CB12CE4 -:1028D000082E04C0880C991CAA1CBB1C0A94D2F7B1 -:1028E000C4FE14C00FE010E020E030E0B901A80100 -:1028F00004C0440F551F661F771F8A95D2F7CB017E -:10290000BA01609570958095909503C060E070E085 -:10291000CB01272D269526952370422F50E042307B -:10292000510569F04330510589F0682979298A29D0 -:102930009B294130510571F00E944E1A84C06829CC -:1029400079298A299B290E946A1A7DC00E944E1A01 -:10295000C501B4010E94321A76C08C2D90E0FC01B2 -:10296000E05EF109E531F10508F050C0E059FF4F94 -:102970000C946E230C2D0F70872D8F71112331F065 -:102980000E94CB19802F0E9428135DC00E94EC1971 -:10299000802F0E942F1357C0112339F0011153C00B -:1029A000872D8F710E94111A4EC0023008F04BC063 -:1029B000F7CF112339F0872D8F710E94CB1943C0B7 -:1029C0001123C9F3872D8F710E94EC193CC011238C -:1029D00029F0872D8F710E94B61935C00E94AC195D -:1029E00032C0112351F0172D1F71812F0E94CB1976 -:1029F00063E0812F0E94DF1A26C081E00E94E81A5E -:102A0000023008F182E00E94E81A1DC0112331F063 -:102A1000002389F28C2D0E94111215C0002391F21F -:102A20008C2D0E94D9120FC0472D4F706C2DC701FD -:102A30000E942C050E94D01806C0472D4F706C2DA7 -:102A4000C7010E946109DD20F9F00E94DB1A80FDB8 -:102A50001BC0F70112820E94D51A0E94CB19C70130 -:102A60000E9453150E94D51A0F90DF91CF911F91AC -:102A70000F91FF90EF90DF90CF90BF90AF909F901D -:102A80008F907F900C94EC190F90DF91CF911F9154 -:102A90000F91FF90EF90DF90CF90BF90AF909F90FD -:102AA0008F907F9008950F931F93CF93DF93EC0146 -:102AB000888199812B813C81232BB9F09F3F11F4B0 -:102AC0008F3F99F0CE010E94F205882371F0688152 -:102AD00079818A810E94D11A8C010E94861A0E94F3 -:102AE0004D19B801CE010E943613DF91CF911F918D -:102AF0000F9108950E94A91B0E94B91B0E947E1B82 -:102B00000E94D31B0E94961F0E94E51E80E090E069 -:102B10000E94171180E090E00C942D110E94991BE7 -:102B20000C947A150E94C61A292F22952F7030E036 -:102B30002C3031054CF42A3031056CF42250310927 -:102B400022303105A8F407C02C30310569F02F3050 -:102B5000310551F00DC0803F69F018F4803E40F41B -:102B600009C0843F29F406C093FB882780F90895A3 -:102B700080E0089581E00895CF93DF9300D000D0E6 -:102B80001F92CDB7DEB70F900F900F900F900F9060 -:102B9000DF91CF910895CF93DF9300D000D000D084 -:102BA000CDB7DEB726960FB6F894DEBF0FBECDBF09 -:102BB000DF91CF9108951F93CF93DF93C091880148 -:102BC00016E080918901C81799F0D0E01C9FF001B0 -:102BD0001D9FF00D1124E657FE4F40815181628107 -:102BE0007381848195810E94CB152196C770E9CFAE -:102BF000DF91CF911F9108954091BA015091BB018F -:102C00006091BC017091BD018091BE019091BF01A6 -:102C10000C94CB158091BF0182958F7009F054C040 -:102C20008091BC01882309F44FC080918801A09154 -:102C300089016091BA017091BB014091BD01509131 -:102C4000BE01B6E08A1709F43FC090E04115510576 -:102C5000C1F17F3F11F46F3FA1F1B89FF001B99F1F -:102C6000F00D1124E657FE4F218172132AC02081F6 -:102C7000621327C02281211124C0238134812417AB -:102C8000350710F421503109241B350B283C310540 -:102C9000C0F42091BF012F7020612093BF0126E076 -:102CA000289FF001299FF00D1124E157FE4F8081EC -:102CB0008F70806180838AEB91E00E9453150C94A1 -:102CC000DB1501968770BECF0895CF92DF92EF9209 -:102CD000FF920F931F93CF93DF93CDB7DEB7629729 -:102CE0000FB6F894DEBF0FBECDBF8C0185E0F801B2 -:102CF000DE011D9601900D928A95E1F7D8014C9165 -:102D000011965C91119712966C9112971396CD9033 -:102D1000DC9014973091BA017091BB018091BD0194 -:102D20009091BE01009709F46BC17F3F19F43F3FBA -:102D300009F466C1E090BC01EE2009F4C0C0209106 -:102D4000BF01C816D90628F0F601E81BF90BCF0120 -:102D500004C0809590958C0D9D1DFF24F394883CB4 -:102D6000910578F0F12C207F09F0C6C07C2DD98A1E -:102D7000C88A89890E94BC158AEB91E00E9453158C -:102D8000B1C0822F807F09F046C0751314C0341380 -:102D900012C0611110C02F7020612093BF010E94EA -:102DA000FC158AEB91E00E9453158091BF01D80178 -:102DB00015968C932EC0CD2819F15F3F11F44F3F2B -:102DC000F9F0F62E61111CC08091880120918901D3 -:102DD00036E0821709F45AC090E0389FF001399F1D -:102DE000F00D1124E657FE4F7181571306C0708114 -:102DF000471303C07281711103C001968770E9CF38 -:102E0000F62E662309F418C18091BF01816080937A -:102E1000BF01F12C11C1751308C0341306C0611134 -:102E200004C08091BF01D801C3C04D875E878D85E6 -:102E30009E856A8B0E9492156A898823E1F1662338 -:102E4000D1F12091BF01822F82958F7090E002977F -:102E500074F08091BA019091BB0198878F83198695 -:102E6000DB86CA862C87CE0107960E94531586E022 -:102E7000F801AAEBB1E001900D928A95E1F70E946A -:102E80000A160E94FC15FF24F394D6C04D875E8776 -:102E90008D859E850E94C61A292F22952F7030E0BD -:102EA000223031050CF0BCC09F7009F0B6C0805EC6 -:102EB000883008F4C1C0C8010E945315E4CFC81679 -:102EC000D90608F453C0F601E81BF90BCF01883C82 -:102ED000910508F450C0F12C7C2DD98AC88A8989C3 -:102EE0000E94BC15EAEBF1E086E0DF011D928A95B5 -:102EF000E9F70E94FC15A0C0751314C0341312C06A -:102F0000611110C08091BF01F8018583C8010E9442 -:102F1000531586E0EAEBF1E0DF011D928A95E9F7AF -:102F2000FE2C8AC04D875E878D859E856A8B0E94A8 -:102F300092156A89882309F4BECF662309F4BBCFB2 -:102F40002091BF01822F82958F7090E002970CF440 -:102F50008ECF8091BA019091BB019A8389831B82A5 -:102F6000DD82CC822E83CE0101967FCF8095909515 -:102F70008C0D9D1DACCFF62E662309F49CCF7513E6 -:102F80002EC034132CC02091BF0120FD1FC0822F02 -:102F900082958F70D9F0D80115962C9315978F30A4 -:102FA00049F08F5F982F9295907F822F8F70892B99 -:102FB00015968C93C8010E94531586E0F801AAEB80 -:102FC000B1E001900D928A95E1F793CF86E0F80188 -:102FD000AAEBB1E001900D928A95E1F72DC04D87E3 -:102FE0005E878D859E850E949215811140CF8091CC -:102FF000BF0181608093BF01C8010E9453151CC0AE -:10300000662309F458CF4D875E878D859E850E9483 -:103010009215882309F44FCF2ACF811148CF0CC0D5 -:10302000243031050CF047CF9F7009F440CFF801F0 -:103030009581907F09F03BCF8F2D62960FB6F89463 -:10304000DEBF0FBECDBFDF91CF911F910F91FF90DB -:10305000EF90DF90CF9008951F93CF93DF93CDB77C -:10306000DEB72C970FB6F894DEBF0FBECDBF4F83EF -:10307000588769877A878B879C87CE0107960E943D -:103080006516882369F08F8198852A853B85232BD7 -:10309000F1F19F3F09F063C08F3F09F060C037C076 -:1030A00086E0FE013796DE01119601900D928A9519 -:1030B000E1F76F817885EA85FB85309741F17F3FA5 -:1030C00011F46F3F21F12091890130E0C90101968F -:1030D000877099274091880150E08417950709F47B -:1030E00047C069837A83FD83EC8396E0929FD00189 -:1030F000939FB00D1124A657BE4FFE01319601904B -:103100000D929A95E1F7809389010E94DB1516E0F4 -:1031100080918801909189018917C1F1189FC001A0 -:10312000112486579E4F0E946516882379F1E091FD -:1031300088011E9FF0011124E657FE4F4081518106 -:1031400062817381848195810E94CB158091880171 -:1031500090E001968770992780938801D9CF4F819D -:10316000588569857A858B859C850E94CB15CFCF44 -:103170000E948E151092890110928801EAEBF1E00D -:1031800086E0DF011D928A95E9F7C1CF2C960FB634 -:10319000F894DEBF0FBECDBFDF91CF911F91089590 -:1031A000EF92FF920F931F93CF93DF938C010097C1 -:1031B00009F46CC0F12CEE24E394E8012196F801A7 -:1031C0008491843740F4843008F051C0813081F01C -:1031D000823019F15BC0853709F444C0A8F19CE73F -:1031E000980F903708F052C08F770E94D91241C0D3 -:1031F0000E5F1F4FFE01C49180E28C0F883048F4AF -:10320000C7708E2D01C0880FCA95EAF70E94AC1BCB -:1032100014C08C2F0E9411122DC00E5F1F4FFE0193 -:10322000C49180E28C0F883058F4C7708E2D01C095 -:10323000880FCA95EAF70E94B21B0E94D31B1AC0DE -:103240008C2F0E94D91216C00E5F1F4FFE01C49131 -:10325000CC2381F08FE99FE00197F1F700C00000D7 -:10326000C150F6CF0E5F1F4FFE01F49003C00E94C5 -:1032700011128E018F2D882309F49FCFEFE9FFE013 -:103280003197F1F700C000008150F5CFDF91CF9169 -:103290001F910F91FF90EF90089508956093C401DE -:1032A0007093C5018093C6019093C7010C947A1561 -:1032B0000F931F930091C4011091C5012091C60185 -:1032C0003091C701DC01CB01802B912BA22BB32BBA -:1032D0008093C4019093C501A093C601B093C70128 -:1032E0001F910F910C947A150F931F930091C401B5 -:1032F0001091C5012091C6013091C701DC01CB01BD -:1033000080239123A223B3238093C4019093C5010A -:10331000A093C601B093C7011F910F910C947A1529 -:103320000F931F930091C4011091C5012091C60114 -:103330003091C701DC01CB0180279127A227B32759 -:103340008093C4019093C501A093C601B093C701B7 -:103350001F910F910C947A151092C0011092C10127 -:103360001092C2011092C3010C947A1541E050E012 -:1033700060E070E004C0440F551F661F771F8A95F8 -:10338000D2F74093C0015093C1016093C201709382 -:10339000C3010C947A1541E050E060E070E004C095 -:1033A000440F551F661F771F8A95D2F78091C00181 -:1033B0009091C101A091C201B091C301482B592B3A -:1033C0006A2B7B2B4093C0015093C1016093C201D3 -:1033D0007093C3010C947A1541E050E060E070E016 -:1033E00004C0440F551F661F771F8A95D2F740957A -:1033F0005095609570958091C0019091C101A09108 -:10340000C201B091C301482359236A237B2340930F -:10341000C0015093C1016093C2017093C3010C9429 -:103420007A1541E050E060E070E004C0440F551FA1 -:10343000661F771F8A95D2F78091C0019091C101D4 -:10344000A091C201B091C301482759276A277B2761 -:103450004093C0015093C1016093C2017093C301B6 -:103460000C947A150F931F930091C0011091C10124 -:103470002091C2013091C301DC01CB01802B912B43 -:10348000A22BB32B8093C0019093C101A093C201E2 -:10349000B093C3011F910F910C947A150F931F9352 -:1034A0000091C0011091C1012091C2013091C3016E -:1034B000DC01CB0180239123A223B3238093C0019D -:1034C0009093C101A093C201B093C3011F910F91CA -:1034D0000C947A150F931F930091C0011091C101B4 -:1034E0002091C2013091C301DC01CB0180279127DB -:1034F000A227B3278093C0019093C101A093C2017A -:10350000B093C3011F910F910C947A150895CF9237 -:10351000DF92EF92FF920F931F93CF93DF938C0173 -:10352000C090C401D090C501E090C601F090C701E1 -:103530008091C0019091C101A091C201B091C301DD -:10354000C82AD92AEA2AFB2ACFE1D0E0D701C6014E -:103550000C2E04C0B695A795979587950A94D2F737 -:1035600080FF06C0B8018C2F0E94E007019721F46C -:10357000219760F780E001C08C2FDF91CF911F91E0 -:103580000F91FF90EF90DF90CF900895CF93DF934E -:10359000EC010E94871ABE010E94E007DF91CF91E3 -:1035A0000895CB010E94C61A08958091C80185959F -:1035B0008595859508958091C8018770089598E054 -:1035C000899F90011124262B2093C8010C94CB19BC -:1035D0002091C801809582238093C801982F97700D -:1035E00069F430E0482F552747FD509524173507DB -:1035F00029F08595859585950C94EC190895909101 -:10360000C801977081E009F480E0089590910C0161 -:10361000992321F090910D01911109C020910E0183 -:1036200030910F01F90132969FEF40E01FC0982FB3 -:103630009695969596959F3050F5E0910E01F091F4 -:103640000F01E90FF11D877021E030E0A90102C0F0 -:10365000440F551F8A95E2F7CA019181892B818316 -:1036600008959F3F39F04F5F4E3041F0519158130C -:10367000F8CF0DC05111F7CF942FF5CF9F3F39F000 -:10368000F901E90FF11D97FDFA95828308950895D8 -:1036900090910C01992321F090910D01911109C095 -:1036A00020910E0130910F01F9013296205F3F4FBA -:1036B0001FC0982F9695969596959F30F0F4E091BF -:1036C0000E01F0910F01E90FF11D877021E030E04C -:1036D000A90102C0440F551F8A95E2F7CA018095DF -:1036E00091818923818308953196E217F30729F0A8 -:1036F00090819813F9CF1082F7CF089581E090E080 -:10370000E0910E01F0910F01E80FF91F1082019670 -:1037100080319105A9F708959091DC01892B809360 -:10372000DC01089580959091DC0189238093DC0170 -:1037300008951092DC0108959091DB01892B80930C -:10374000DB01089580959091DB0189238093DB0153 -:1037500008951092DB0108959091DA01892B8093EE -:10376000DA01089580959091DA0189238093DA0136 -:1037700008951092DA0108958093C9010895109276 -:10378000C901089580910E0190910F01FC013196BD -:103790009C01205F3F4F80E0919191118F5FE21774 -:1037A000F307D1F70895E0910E01F0910F01809198 -:1037B000DC018083E0910E01F0910F0190818091F6 -:1037C000DB01892B8083E0910E01F0910F01908144 -:1037D0008091DA01892B80838091C901882361F06F -:1037E000E0910E01F0910F019081892B80830E945E -:1037F000C21B81111092C90180910E0190910F019D -:103800000C94011120E0009739F0AC0141505109AE -:10381000842395232F5FF7CF822F0895CF92DF92D5 -:10382000EF92FF926C01EE24FF24C114D104E10455 -:10383000F10421F0C701B60120E101C020E0C72E4C -:10384000D82EE92EFF24C114D104E104F10419F0AB -:10385000285FC701B6016B017C0154E0F694E79440 -:10386000D794C7945A95D1F7C114D104E104F10457 -:1038700019F02C5FC701B6016B017C0142E0F694A0 -:10388000E794D794C7944A95D1F7C114D104E104C1 -:10389000F10419F02E5FC701B601DC01CB01B6952A -:1038A000A79597958795892B8A2B8B2B09F02F5FEE -:1038B000822FFF90EF90DF90CF9008958091F601D6 -:1038C000843021F11092DE0120E488E190E00FB60F -:1038D000F894A895809360000FBE2093600080E06C -:1038E0000E94F20983B7817F846083BF83B78160C0 -:1038F00083BF7894889583B78E7F83BF88E10FB6A6 -:10390000F89480936000109260000FBE08950895AF -:103910000E944F030E9462030E94871C0E9457046A -:1039200091E0811101C090E0892F08950E948E15C9 -:103930000E94F5100C94F20982E084BD93E095BDDD -:103940009AEF97BD80936E0008952FB7F8948091F9 -:10395000DF019091E001A091E101B091E2012FBF60 -:103960000895CF92DF92EF92FF920F931F932FB79C -:10397000F8944091DF015091E0016091E101709174 -:10398000E2012FBF6A017B01EE24FF248C0120E0BD -:1039900030E0C016D106E206F30610F4415051099A -:1039A0009A01281B390BC9011F910F91FF90EF90CD -:1039B000DF90CF9008951F920F920FB60F921124AF -:1039C0008F939F93AF93BF938091DF019091E0011C -:1039D000A091E101B091E2010196A11DB11D80937A -:1039E000DF019093E001A093E101B093E201BF9168 -:1039F000AF919F918F910F900FBE0F901F901895D0 -:103A00000E94F20DF8942FEF87EA91E62150804052 -:103A10009040E1F700C0000087E090EBDC0180936C -:103A2000FF0190930002A0930102B09302029CE078 -:103A300088E10FB6F894A895809360000FBE90932C -:103A40006000FFCF0E945A1D811102C00E94401DDC -:103A50000E94651D8093DD010E946D1D90E0909392 -:103A6000F1018093F00187FB882780F980930D0195 -:103A70000E94691D682F70E080E090E00C944E1960 -:103A80006DEE7EEF80E090E00E94A82360E082E08F -:103A900090E00E94962360E083E090E00E949623ED -:103AA00060E084E090E00E94962360E085E090E092 -:103AB0000C94962380E090E00E94902321E08D3EBC -:103AC0009E4F09F020E0822F089582E090E00C9450 -:103AD000882383E090E00C94882384E090E00C94A9 -:103AE0008823682F84E090E00C9496238091E50170 -:103AF00080FF0BC06091130185E0689FB001112425 -:103B000075956795759567952BC081FF09C0609184 -:103B1000130185E0689FB00111247595679520C059 -:103B200082FF07C06091130185E0689FB0011124F6 -:103B300017C09091E6019923D1F060911201961778 -:103B400088F72091130185E0289F90011124929F0E -:103B5000A001939F500D112470E0CA010E945A23C6 -:103B60006038710540F46115710539F002C065E0F7 -:103B700070E0862F08958FE7089581E00895809181 -:103B8000E50180FF08C06091110170E075956795AF -:103B90007595679521C081FF06C06091110170E0A5 -:103BA0007595679519C082FF04C06091110170E09E -:103BB00010C09091E6019923C1F060911001961711 -:103BC000A0F780911101899FC001112470E00E942B -:103BD0005A236038710528F46115710521F0862F8C -:103BE00008958FE7089581E0089561E070E0F4CFD3 -:103BF000803F21F40E94761D819504C0813F29F405 -:103C00000E94761D8093E9010895823F21F40E946D -:103C1000761D819504C0833F29F40E94761D809310 -:103C2000E8010895893F19F40E94BF1D05C08A3F2D -:103C300031F40E94BF1D81958093EA0108958B3F66 -:103C400021F40E94BF1D819504C08C3F29F40E947D -:103C5000BF1D8093EB010895843F21F48091E7011B -:103C6000816017C0853F21F48091E701826011C017 -:103C7000863F21F48091E70184600BC0873F21F4E7 -:103C80008091E701886005C0883F31F48091E701A9 -:103C900080618093E70108958D3F21F48091E501D3 -:103CA00081600BC08E3F21F48091E501826005C0E8 -:103CB0008F3F29F48091E50184608093E5010895A8 -:103CC000803F39F48091E90187FF6CC01092E901CF -:103CD00069C0813F29F48091E9011816BCF362C0E4 -:103CE0009091E801823F29F497FF5CC01092E801AF -:103CF00059C0833F19F41916CCF354C0893F41F4DD -:103D00008091EA0118160CF04DC01092EA014AC0E9 -:103D10008A3F29F48091EA0187FF44C0F6CF8B3FA8 -:103D200039F48091EB0187FF3DC01092EB013AC05E -:103D30008C3F29F48091EB011816BCF333C0843F0B -:103D400021F48091E7018E7F17C0853F21F4809197 -:103D5000E7018D7F11C0863F21F48091E7018B7FC1 -:103D60000BC0873F21F48091E701877F05C0883F22 -:103D700031F48091E7018F7E8093E70113C08D3F7E -:103D800021F48091E5018E7F0BC08E3F21F480915C -:103D9000E5018D7F05C08F3F29F48091E5018B7F80 -:103DA0008093E5018091E80181110EC08091E901C5 -:103DB00081110AC08091EA01811106C08091EB0156 -:103DC000811102C01092E601089587EE91E00E94F1 -:103DD0000C110E94A51C9093E4018093E3010895C7 -:103DE0001F93CF93DF938091E3019091E4010E94B0 -:103DF000B11CAC019091E601992321F020911401AE -:103E000030E006C0209115018AE0289F900111241E -:103E10004217530708F486C08091E801C091E90178 -:103E2000D091EA011091EB01811107C0C11176C058 -:103E3000D11174C0111172C075C09F3F19F09F5FFE -:103E40009093E601181624F40E94761D8093E801F1 -:103E50008091E80187FF05C00E94761D81958093BF -:103E6000E8011C1624F40E94761D8093E9018091DC -:103E7000E90187FF05C00E94761D81958093E901C5 -:103E80006091E801662339F1C091E901CC2319F171 -:103E9000772767FD7095872F972F0E946B2223E36A -:103EA00033E343E35FE30E94CF220E943822609312 -:103EB000E8016C2F772767FD7095872F972F0E9459 -:103EC0006B2223E333E343E35FE30E94CF220E94AC -:103ED00038226093E9011D1624F40E94BF1D8093CF -:103EE000EA018091EA0187FF05C00E94BF1D81950C -:103EF0008093EA01111624F40E94BF1D8093EB0108 -:103F00008091EB0187FF05C00E94BF1D81958093C2 -:103F1000EB01DF91CF911F910C94E51E9F3F09F0BB -:103F20008ECF96CFDF91CF911F910895E7EEF1E00C -:103F300085E0DF011D928A95E9F71092E601109263 -:103F4000E5010895833081F128F4813059F0823001 -:103F5000D1F00895853009F449C0B8F1863009F4EC -:103F600056C0089580911501262F30E0280F311D8D -:103F70002F3F310524F4680F6093150108958FEFEA -:103F800080931501089580911401262F30E0280FA9 -:103F9000311D2F3F310524F4680F609314010895FB -:103FA0008FEF80931401089580911301262F30E044 -:103FB000280F311D2F3F310524F4680F6093130142 -:103FC00008958FEF80931301089580911201262F99 -:103FD00030E0280F311D2F3F310524F4680F609326 -:103FE000120108958FEF80931201089580911101BD -:103FF000262F30E0280F311D2F3F310524F4680FA4 -:104000006093110108958FEF8093110108958091BD -:104010001001262F30E0280F311D2F3F310524F4E9 -:10402000680F6093100108958FEF80931001089539 -:10403000833011F128F4813049F0823091F00895F5 -:10404000853081F120F18630C1F10895809115010C -:10405000681720F4861B80931501089510921501AE -:10406000089580911401681720F4861B8093140131 -:10407000089510921401089580911301681720F497 -:10408000861B809313010895109213010895809167 -:104090001201681720F4861B809312010895109274 -:1040A0001201089580911101681720F4861B8093F6 -:1040B000110108951092110108958091100168175F -:1040C00020F4861B8093100108951092100108952A -:1040D0000F931F938D3109F471C008F045C08031F2 -:1040E00009F485C008F5873009F46FC068F486309C -:1040F00009F0ADC08091DD01817F8E7F8093DD016D -:1041000081E08093ED01A4C08B3009F49EC08E3015 -:1041100009F09DC08091DD0182FB222720F991E00A -:10412000922790FB82F96CC0863109F48EC060F44E -:10413000813109F08CC00E948E1590910D0181E0B3 -:10414000892780930D0181C0893109F47EC08B31AC -:1041500009F07DC08091DD0181FB222720F991E0EB -:10416000922790FB81F94CC0853309F466C048F46E -:10417000873209F462C008F44FC0893209F45DC087 -:1041800066C0833438F48A3308F044C0883309F4B5 -:104190005CC05DC0833409F450C0883409F057C056 -:1041A0000E948E150FEF13ED20E3015010402040C8 -:1041B000E1F700C000000E94001D47C00E94F221EC -:1041C0000E94F5100E94F20940C09091DD01892FF4 -:1041D0008095817080FB90F929F0966098609093AB -:1041E000DD0136C0997F977F9093DD012EC08091CD -:1041F000DD0183FB222720F991E0922790FB83F9D0 -:104200008093DD01992309F18091DD018160809324 -:10421000DD011BC0895301C08D5141E050E060E0D9 -:1042200070E08A019B0104C0000F111F221F331F81 -:104230008A95D2F7C901B80104C061E070E080E05E -:1042400090E00E944E190E948E1581E001C080E02E -:104250001F910F91089580E0089580E008958E5198 -:104260008A3030F4E82FF0E0E65DFE4F808108955B -:1042700080E00895CF93C82F8091ED01813079F0CF -:1042800018F08230E9F186C0E0910E01F0910F0143 -:104290008081813169F0823209F07EC009C0E091ED -:1042A0000E01F0910F018081813111F0823261F4B1 -:1042B0008C2F0E942B21811104C08C2F0E9468201A -:1042C0001DC081E090E01AC08C2F0E942D21811129 -:1042D00014C0C43179F048F4CB3079F0C03109F022 -:1042E0005FC082E08093ED0108C0C93219F0C83385 -:1042F00021F056C01092ED0153C081E0817052C090 -:10430000C93281F110F5C43169F1A8F4C73009F060 -:1043100045C08AE08093150194E19093140193E0E5 -:10432000909313018093120188E08093110188E239 -:104330008093100133C082EE8C0F863078F58C2F7D -:104340000E942F218093EC0129C0CE34E9F020F4A3 -:10435000CB3421F56AE013C0C13579F0C235F1F4F0 -:1043600061E00DC08091EC01882319F01092EC01FE -:1043700015C081E08093ED0115C061E006C0809119 -:10438000EC010E94A21F0AC06AE08091EC010E9429 -:10439000182004C01092ED0180E004C081E002C04A -:1043A00080E0ACCFCF910895E1E8F0E080818860B3 -:1043B00080838081816080838FB7F89493E09093AD -:1043C000890090ED909388008FBF0895EFE6F0E0AC -:1043D0008081826080830895EFE6F0E080818D7FA8 -:1043E00080830895EFE6F0E0908182E08927808362 -:1043F00008951F920F920FB60F9211242F933F939F -:104400004F935F936F937F938F939F93AF93BF93DC -:10441000EF93FF938091EE019091EF0101969093BD -:10442000EF018093EE01811103C082E00E94F20946 -:10443000E091EF01E695E695F0E0EB54FB4FE49157 -:104440008091EE018E1303C080E00E94F209FF917B -:10445000EF91BF91AF919F918F917F916F915F91FC -:104460004F913F912F910F900FBE0F901F90189575 -:1044700004D06894B1118DC0089570D088F09F5712 -:1044800090F0B92F9927B751A0F0D1F0660F771FA0 -:10449000881F991F1AF0BA95C9F712C0B13081F080 -:1044A00077D0B1E0089574C0672F782F8827B85F60 -:1044B00039F0B93FCCF3869577956795B395D9F7E1 -:1044C0003EF490958095709561957F4F8F4F9F4FEB -:1044D0000895E89409C097FB3EF4909580957095F7 -:1044E00061957F4F8F4F9F4F9923A9F0F92F96E940 -:1044F000BB279395F695879577956795B795F111B5 -:10450000F8CFFAF4BB0F11F460FF1BC06F5F7F4F51 -:104510008F4F9F4F16C0882311F096E911C0772363 -:1045200021F09EE8872F762F05C0662371F096E86C -:10453000862F70E060E02AF09A95660F771F881F3B -:10454000DAF7880F9695879597F9089557FD905853 -:10455000440F551F59F05F3F71F04795880F97FB47 -:10456000991F61F09F3F79F0879508951216130601 -:104570001406551FF2CF4695F1DF08C01616170630 -:104580001806991FF1CF8695710561050894089565 -:10459000E894BB2766277727CB0197F908950BD0BE -:1045A00078C069D028F06ED018F0952309F05AC071 -:1045B0005FC01124EECFCADFA0F3959FD1F3950F12 -:1045C00050E0551F629FF001729FBB27F00DB11D97 -:1045D000639FAA27F00DB11DAA1F649F6627B00D27 -:1045E000A11D661F829F2227B00DA11D621F739F10 -:1045F000B00DA11D621F839FA00D611D221F749F1E -:104600003327A00D611D231F849F600D211D822F64 -:10461000762F6A2F11249F5750408AF0E1F08823AB -:104620004AF0EE0FFF1FBB1F661F771F881F9150B8 -:104630005040A9F79E3F510570F014C0AACF5F3FCC -:10464000ECF3983EDCF3869577956795B795F795EB -:10465000E7959F5FC1F7FE2B880F911D9695879573 -:1046600097F9089597F99F6780E870E060E00895F2 -:104670009FEF80EC089500240A941616170618067A -:104680000906089500240A94121613061406050656 -:104690000895092E0394000C11F4882352F0BB0FE7 -:1046A00040F4BF2B11F460FF04C06F5F7F4F8F4F4A -:1046B0009F4F089597FB072E16F4009407D077FDBF -:1046C00009D00E94742307FC05D03EF49095819593 -:1046D0009F4F0895709561957F4F0895EE0FFF1FCE -:1046E0000590F491E02D0994AA1BBB1B51E107C072 -:1046F000AA1FBB1FA617B70710F0A61BB70B881F72 -:10470000991F5A95A9F780959095BC01CD01089500 -:10471000F999FECF92BD81BDF89A992780B5089589 -:10472000A8E1B0E042E050E00C94B023262FF999C4 -:10473000FECF92BD81BDF89A019700B4021639F000 -:104740001FBA20BD0FB6F894FA9AF99A0FBE0895D1 -:104750000196272F0E9497230C949623DC01CB010E -:10476000FC01F999FECF06C0F2BDE1BDF89A319681 -:1047700000B40D9241505040B8F70895F894FFCF1F -:104780000220F409820A5F0A2B0AF7090101CA0113 -:1047900028080A03140A404D363975042804F20328 -:1047A000B9034C0365037E03970301020304050666 -:0447B00007080900ED -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/dvorak_spanish/readme.md b/keyboards/ergodox_ez/keymaps/dvorak_spanish/readme.md new file mode 100644 index 000000000..e075e3cd7 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/dvorak_spanish/readme.md @@ -0,0 +1,99 @@ +# Ergodox Spanish Dvorak Layout + * See spanish dvorak layout [here](http://djelibeibi.unex.es/dvorak/) + * Software layout must be set to SPANISH QWERTY to work properly + +## Keymap Layers + - L0: spanish dvorak with some customizations (see layout below) + - L1: auxiliary keys (includes qwerty shortcuts, numpad...) + - L2: qwerty layout with customizations + + +### Keymap 0: Base layer +Keys with double values (like Esc/Ctrl) correspond to the 'tapped' key and the 'held' key, respectively + +

+
+,--------------------------------------------------.           ,--------------------------------------------------.
+|   \    |   1  |   2  |   3  |   4  |   5  |  <>  |           |   ¡  |   6  |   7  |   8  |   9  |   0  |   '    |
+|--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+| F1/~L1 |   .  |   ,  |   Ñ  |   P  |   Y  |MEH_T |           |  L1  |   F  |   G  |   C  |   H  |   L  |ALL_T/+ |
+|--------+------+------+------+------+------| DEL  |           | ~L1  |------+------+------+------+------+--------|
+|Esc/Ctrl|   A  |   O  |   E  |   U  |   I  |------|           |------|   D  |   R  |   T  |   N  |   S  |'/RCtrl |
+|--------+------+------+------+------+------| LGUI |           | RALT |------+------+------+------+------+--------|
+| {/LSft |   -  |   Q  |   J  |   K  |   X  |      |           |      |   B  |   M  |   W  |   V  |   Z  | }/RSft |
+'--------+------+------+------+------+-------------'           '-------------+------+------+------+------+--------'
+  |[/LALT| HOME |PGDOWN| PGUP | END  |                                       | LEFT | DOWN |  UP  |RIGHT |]/LALT|
+  '----------------------------------'                                       '----------------------------------'
+                                       ,-------------.       ,-------------.
+                                       |F5/CAG|F6/~L1|       |F7/~L1|F8/CAG|
+                                ,------|------|------|       |------+--------+------.
+                                |      |      |F4/CA |       |F11/CA|        |      |
+                                | ENTER| TAB  |------|       |------|  BSPC  | SPACE|
+                                |      |      |F3/SA |       |F12/SA|        |      |
+                                '--------------------'       '----------------------'
+ CAG = CTRL-ALT-GUI
+  CA = CTRL-ALT
+  SA = SHIFT-ALT
+
+
+ +### Keymap 1: Aux layer + +

+
+,--------------------------------------------------.           ,--------------------------------------------------.
+|        |  F1  |  F2  |  F3  |  F4  |  F5  | SLEEP|           | PWR  |  F6  |  F7  |  F8  |  F9  |  F10 |   F11  |
+|--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+|        |  <   |  >   | MsUp |      |      |      |           | ~L0  |      |   7  |   8  |   9  |   *  |  '^    |
+|--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+|        |      |MsLeft|MsDown|MsRght|      |------|           |------|      |   4  |   5  |   6  |   +  |   Ç    |
+|--------+------+------+------+------+------|      |           |PSCR  |------+------+------+------+------+--------|
+|CAPSLOCK|      |      |      |      |      |      |           |      |      |   1  |   2  |   3  |   /  |        |
+'--------+------+------+------+------+-------------'           '-------------+------+------+------+------+--------'
+  |CTRL-S|CTRL-Z|CTRL-X|CTRL-C|CTRL-V|                                       |      |    . |   0  |   =  |      |
+  '----------------------------------'                                       '----------------------------------'
+                                       ,-------------.       ,-------------.
+                                       |      |      |       |      | Play |
+                                ,------|------|------|       |------+------+------.
+                                |      |      |      |       | VolUp|      |      |
+                                | Lclk | Rclk |------|       |------| Prev | Next |
+                                |      |      |  L2  |       | VolDn|      |      |
+                                '--------------------'       '--------------------'
+
+
+ +### Keymap 2: QWERTY layer + +

+
+,--------------------------------------------------.           ,--------------------------------------------------.
+|   \    |   1  |   2  |   3  |   4  |   5  |  <>  |           |   ¡  |   6  |   7  |   8  |   9  |   0  |   '    |
+|--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+|  TRANS |   Q  |   W  |   E  |   R  |   T  |MEH_T |           | TRANS|   Y  |   U  |   I  |   O  |   P  |ALL_T/+ |
+|--------+------+------+------+------+------| DEL  |           |      |------+------+------+------+------+--------|
+|Esc/Ctrl|   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |   Ñ  |'/RCtrl |
+|--------+------+------+------+------+------| LGUI |           | RALT |------+------+------+------+------+--------|
+| {/LSft |   Z  |   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |   ,  |   .  |   -  | }/RSft |
+'--------+------+------+------+------+-------------'           '-------------+------+------+------+------+--------'
+  |[/LALT| HOME |PGDOWN| PGUP | END  |                                       | LEFT | DOWN |  UP  |RIGHT |]/LALT|
+  '----------------------------------'                                       '----------------------------------'
+                                       ,-------------.       ,-------------.
+                                       |F5/CAG| TRANS|       | TRANS|F8/CAG|
+                                ,------|------|------|       |------+--------+------.
+                                |      |      |F4/CA |       |F11/CA|        |      |
+                                | ENTER| TAB  |------|       |------|  BSPC  | SPACE|
+                                |      |      | TRANS|       |F12/SA|        |      |
+                                '--------------------'       '----------------------'
+ CAG = CTRL-ALT-GUI
+  CA = CTRL-ALT
+  SA = SHIFT-ALT
+
+
+ + +## Generation of .hex file +> [Download scripts from here](https://github.com/johgh/keyboard/tree/master/ergodox) + +> Execute install.sh and generate.sh scripts. + +> Flash with `teensy_loader` binary (should be installed from previous step) diff --git a/keyboards/ergodox_ez/keymaps/emacs_osx_dk/compiled.hex b/keyboards/ergodox_ez/keymaps/emacs_osx_dk/compiled.hex deleted file mode 100644 index 4db0ef029..000000000 --- a/keyboards/ergodox_ez/keymaps/emacs_osx_dk/compiled.hex +++ /dev/null @@ -1,1158 +0,0 @@ -:100000000C947A020C94BE020C94BE020C94BE02B4 -:100010000C94BE020C94BE020C94BE020C94BE0260 -:100020000C94BE020C94BE020C94620D0C94340E1F -:100030000C94BE020C94BE020C94BE020C94BE0240 -:100040000C94BE020C943E220C94BE020C94BE0290 -:100050000C94BE020C94D11B0C94BE020C94BE02F4 -:100060000C94BE020C94BE020C94BE020C94BE0210 -:100070000C94BE020C94BE020C94BE020C94BE0200 -:100080000C94BE020C94BE020C94BE020C94BE02F0 -:100090000C94BE020C94BE020C94BE020C94BE02E0 -:1000A0000C94BE020C94BE020C94BE02A10EC30EB0 -:1000B000B10FC30EB10F080F2B0FB10F800F930FAD -:1000C0006212621291129112C712E71218141814D8 -:1000D000F2121814A213A2130914181418141214EB -:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300 -:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0 -:10010000C113CE13D513DC13E6130000F0A13500A4 -:100110002B003171E100015200001E0014000400A8 -:100120001D00E0004D001F001A0016001B005000CB -:100130002A0020000800070006004F002C002100C4 -:10014000150009001900E2004A00220017000A0009 -:10015000050000004C0001542F000000E6000000E4 -:100160004900025430000000E6000000290023008E -:100170001C000B00110000006500240018000D0099 -:100180001000E2004B0025000C000E00360052006B -:100190002800260012000F0037005100E30027005E -:1001A000130033003800E4004E002E002D0034719F -:1001B000E500025200000100010001000100010001 -:1001C00000003A001E0220022202010001003B0052 -:1001D0001F0221022302010001003C002F0226021F -:1001E0002F00010001003D00300227023000010015 -:1001F00001003E003102350035020000010001001F -:1002000001000000010000000100010001000000E9 -:100210000100000001003F005200510024020000D4 -:1002200001004000240021001E00270001004100C1 -:10023000250022001F0027000100420026002300A5 -:10024000200037000100430025022E0231002E005D -:100250000100440045000100010001000000010010 -:100260000100010001000100000001000100010087 -:1002700001000100010001000100F2000100010085 -:1002800001000100F000F1000100F4000100010094 -:100290000100F3000100F500010001000100010070 -:1002A0000100000001000100010000000100000049 -:1002B0000100010001000000010000000100010038 -:1002C0000100010001000000010001000100010027 -:1002D0000100A9000100010001000100AC00AA001A -:1002E000B600010001000100AB00A8000100010000 -:1002F0000100010001000100010001000100AE0049 -:1003000001000100000016034500720067006F0045 -:1003100044006F007800200045005A0000001603DA -:100320004500720067006F0044006F0078002000F5 -:1003300045005A0000000403090409026D0004018D -:1003400000A0FA09040000010301010009211101C4 -:100350000001223F000705810308000A090401008B -:100360000103010200092111010001224D000705CE -:10037000820308000A0904020001030000000921A9 -:10038000110100012236000705830308000A090451 -:1003900003000103000000092111010001223900BE -:1003A000070584031000011201100100000008ED90 -:1003B000FE071301000102000105010906A1010564 -:1003C0000719E029E7150025019508750181020547 -:1003D000081901290595057501910295017503918B -:1003E0000105071900297715002501957875018108 -:1003F00002C005010980A101850216010026B7008F -:100400001A01002AB700751095018100C0050C097A -:1004100001A1018503160100269C021A01002A9CF5 -:1004200002751095018100C005010902A1010901B1 -:10043000A10005091901290515002501950575017A -:10044000810295017503810105010930093115818A -:10045000257F95027508810609381581257F95014C -:1004600075088106050C0A38021581257F950175EE -:10047000088106C0C005010906A101050719E02988 -:10048000E715002501950875018102950175088120 -:100490000105081901290595057501910295017558 -:1004A0000391010507190029FF150025FF95067521 -:1004B000088100C0000000000000000000000001F2 -:1004C0000204060A0F17202C3A4A5D71879DB3C7B4 -:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF -:1004E0003A2C20170F0A0604020100000000000049 -:1004F0000000000011241FBECFEFDAE0DEBFCDBF49 -:1005000004B603FE24C08091FB019091FC01A091F0 -:10051000FD01B091FE018730904BA740B04BB9F47C -:100520001092FB011092FC011092FD011092FE014D -:1005300014BE84B7877F84BF88E10FB6F894809398 -:100540006000109260000FBEE0E0FFE3099511E04B -:10055000A0E0B1E0EAE0F8E402C005900D92A43317 -:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0 -:10057000B107E1F70E94A60A0C9403240C94000032 -:100580001092B9008AE08093B800089594EA90939D -:10059000BC009091BC0097FFFCCF9091B900987F70 -:1005A000983021F0903111F081E008958093BB00E4 -:1005B00084E88093BC008091BC0087FFFCCF8091D1 -:1005C000B900887F883111F0803471F780E0089598 -:1005D00084E98093BC008091BC0084FDFCCF089529 -:1005E0008093BB0084E88093BC008091BC0087FFAF -:1005F000FCCF9091B900987F81E0983209F480E0B7 -:10060000089584E88093BC008091BC0087FFFCCFF4 -:100610008091BB00089580910101811115C080E493 -:100620000E94C6028093010181110CC082E10E94E8 -:10063000F00280930101811105C08FEF0E94F0024A -:10064000809301010E94E80284B1807F84B985B162 -:10065000807F85B98AB1837F8AB98BB1837F8BB95B -:100660003E98469808950E94C604809301010E9416 -:100670000B0380B38C7080BB81B3836F81BBA5E318 -:10068000B1E0E3E4F1E08EE08E0F11921D928E1343 -:10069000FCCF0C94B004BF92CF92DF92EF92FF9206 -:1006A0000F931F93CF93DF9380910101882379F0FB -:1006B000809134018F5F80933401811108C00E94C2 -:1006C000C60480930101811102C00E94580405E311 -:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407 -:1006E000E394F12CC730D10500F58091010181110F -:1006F00064C080E40E94C60280930101811112C08F -:1007000082E10E94F0028093010181110BC0C701B8 -:100710000C2E01C0880F0A94EAF780950E94F0021F -:10072000809301010E94E80248C0CA30A1F028F479 -:10073000C83059F0C93061F005C0CC3089F070F094 -:10074000CD3089F0209A289810C0219A29980DC0A0 -:10075000229A2A980AC0239A2B9807C0529A01C05D -:10076000539A5B9802C03E9A469890EA9A95F1F7A0 -:100770009FB1799902C082E001C080E091709D250F -:10078000982B7C9902C084E001C080E0892B7D9980 -:1007900002C038E001C030E0832B7E9902C020E126 -:1007A00001C020E0822B9FB19095991F9927991F36 -:1007B0009295990F907E892B0FC080910101811134 -:1007C00049C080E40E94C60280930101882379F128 -:1007D000B12C0E94E8028B2DF8019081981719F036 -:1007E0008083C09200010E940B0321960F5F1F4F70 -:1007F000CE30D10509F076CF80910001882361F1D8 -:10080000815080930001882339F08FE99FE00197A0 -:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F -:10082000CF01825F91919D938E13FCCF15C083E120 -:100830000E94F002809301018111CACF81E40E94DD -:10084000C602809301018111C3CF0E940103B82E1B -:10085000B094BFCF80E0C0CF0E94560481E0DF910A -:10086000CF911F910F91FF90EF90DF90CF90BF90AD -:100870000895E82FF0E0ED5BFE4F80810895089524 -:100880000F931F93CF93DF93C3E4D1E010E00C2FBD -:10089000025F899190E00E94F71A180F0C13F9CFAC -:1008A000812FDF91CF911F910F9108950C94260510 -:1008B00056985E9825982D9826982E9827982F98C8 -:1008C0008FEF90E0909389008093880090938B0045 -:1008D00080938A0090938D0080938C00259A2D9AA6 -:1008E0002FEF80E792E0215080409040E1F700C078 -:1008F0000000269A2E9A2FEF80E792E02150804048 -:100900009040E1F700C00000279A2F9A2FEF80E770 -:1009100092E0215080409040E1F700C0000025980F -:100920002D982FEF80E792E0215080409040E1F732 -:1009300000C0000026982E982FEF80E792E021500B -:1009400080409040E1F700C0000027982F9856980B -:100950005E9825982D9826982E9827982F98089578 -:1009600089EA8093800089E08093810024982C9804 -:100970003F988AB18F748AB96E98479A8BB1806B11 -:100980008BB9769A0E9458040C94250580E28093D6 -:1009900001018091510181110EC00E94C00281E0CD -:1009A000809351012FEF83ED90E3215080409040E0 -:1009B000E1F700C0000080E40E94C60280930101BC -:1009C00081112EC00E94F00280930101811128C084 -:1009D0000E94F00280930101811122C08FE30E94E6 -:1009E000F0028093010181111BC00E94E80280E4A3 -:1009F0000E94C60280930101811112C08CE00E9406 -:100A0000F0028093010181110BC00E94F0028093DB -:100A10000101811105C08FE30E94F0028093010162 -:100A20000E94E80280910101089561110BC0FC0150 -:100A30008281882321F085EE0E94061103C085EE95 -:100A40000E94CE1180E090E0089508956091BD016C -:100A50007091BE018091BF019091C0010E94031B63 -:100A600056985E9825982D9826982E9827982F9816 -:100A7000813019F0823021F00895259A2D9A089539 -:100A8000269A2E9A089581E0089581E008950C94A5 -:100A9000450508950F931F93CF93DF938C01FC01BD -:100AA000C081D181CE010E947C19BE010E94F30554 -:100AB000EC01B8010E944705882309F48DC0F801B4 -:100AC0008281882309F44AC080915D0181111FC091 -:100AD000C431F0E5DF0709F051C00E94490581E00B -:100AE00080935D010E949B1B90935C0180935B014E -:100AF0001092540110925601109255011092580113 -:100B00001092570110925A011092590165C08091BC -:100B10005B0190915C010E94A71B883C910570F4D9 -:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB -:100B3000D183C0838F5F809354014EC0C43880E559 -:100B4000D80721F0C538D04501F13AC0F8018281BB -:100B5000882341F01092520182E01EC0C438E0E5C3 -:100B6000DE0759F580915201811106C086E20E948C -:100B7000061186E20E94CE1182E01CC0C438F0E566 -:100B8000DF0741F3C538D045D9F4F80182818823C5 -:100B900031F01092530180E20E941D121DC080911D -:100BA0005301811106C087E20E94061187E20E946C -:100BB000CE1180E20E9424120FC0C538D04529F31F -:100BC00081E08093520180935301C801DF91CF915E -:100BD0001F910F910C94430580E0DF91CF911F91FD -:100BE0000F910895089596E0799FF001112494E5FE -:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F -:100C0000E25FFE4F859194910895880F991FFC0132 -:100C1000E657F040859194910895880F991FFC0143 -:100C2000E65FFE4F8591949108950F931F93CF93A4 -:100C3000DF93EC01811520E3920750F5C11580E2A6 -:100C4000D80708F0C3C0CB3BD10590F4C83AD10512 -:100C500008F06AC0C53AD10508F05BC0C430D105C0 -:100C600008F0D0C1219709F0CAC101E010E00AC222 -:100C7000CF3FD10511F008F0C5C1C03FD10508F044 -:100C8000A2C0CE01805E9109089708F4BBC1B7C12C -:100C9000C13090E5D90709F4A2C020F5C0318FE436 -:100CA000D80770F4C11590E4D90708F094C0C115B5 -:100CB00021E3D20708F0A3C1DD278E01106CE2C149 -:100CC000C115D04509F09BC10E9483148FEF94E3B6 -:100CD0002CE0815090402040E1F700C000000E94CD -:100CE000F61BD0C1C11597E5D90758F4C03121E5ED -:100CF000D20708F01CC1C43180E5D80708F475C0DC -:100D00007EC1CE0190578115904108F078C1DF7007 -:100D100073C1C53AD10509F477C1C63AD10509F0C6 -:100D200076C102E810E4AEC1C83AD10509F472C137 -:100D3000C93AD10509F471C1CA3AD10509F470C1A3 -:100D4000CB3AD10509F46FC1CC3AD10509F46EC193 -:100D5000CD3AD10509F46DC1C03BD10509F46CC190 -:100D6000CE3AD10509F46BC1CF3AD10509F46AC175 -:100D7000C13BD10509F469C1C23BD10509F468C181 -:100D8000C33BD10509F467C1C43BD10509F466C171 -:100D9000C53BD10509F465C1C63BD10509F464C161 -:100DA000C73BD10509F463C1C83BD10509F462C151 -:100DB000C93BD10509F461C1CA3BD10509F460C141 -:100DC00000E014E45FC18E0110655CC1CE019F702C -:100DD0000E940D0658C1DF708E01106A53C18091C8 -:100DE000DA0181608093DA014DC10E949B1D81115F -:100DF00002C00E94811D0E94B81D90E09093FB01EB -:100E00008093FA01C23080E5D80721F48091FA017D -:100E1000816086C0C43090E5D90721F48091FA0141 -:100E200082607EC0C63020E5D20721F48091FA01AD -:100E3000846076C0C83080E5D80719F48091FA0143 -:100E400027C0CA3090E5D90721F48091FA0180616A -:100E500067C0CC3020E5D20721F48091FA0180628E -:100E60005FC0CE3080E5D80721F48091FA0180641C -:100E700057C0C03190E5D90721F48091FA0180680C -:100E80004FC0C23120E5D20729F48091FA01846075 -:100E9000886046C0C33080E5D80721F48091FA010C -:100EA0008E7F3EC0C53090E5D90721F48091FA01CC -:100EB0008D7F36C0C73020E5D20721F48091FA013A -:100EC0008B7F2EC0C93080E5D80719F48091FA01D4 -:100ED00026C0CB3090E5D90721F48091FA018F7EAE -:100EE0001FC0CD3020E5D20721F48091FA018F7D1B -:100EF00017C0CF3080E5D80721F48091FA018F7BAD -:100F00000FC0C13190E5D90721F48091FA018F77A4 -:100F100007C0C331D04531F48091FA018B7F877FC0 -:100F20008093FA018091FA010E94BC1DABC08D2F05 -:100F300099278F70992781309105D9F49E012370EC -:100F4000332702C0880F991F2A95E2F79C688E010B -:100F500044E0000F111F4A95E1F700271370802B22 -:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA -:100F70002FC08230910531F4DC2FCC278E01016F18 -:100F8000106A80C08330910569F4CE01837099277F -:100F900001E010E002C0000F111F8A95E2F7C801BE -:100FA0009C680FC084309105B9F4CE0183709927F5 -:100FB00001E010E002C0000F111F8A95E2F7C8019E -:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029 -:100FD0008C010C2B1D2B56C08530910531F4DC2F74 -:100FE000CC278E01046F106A4DC0069709F04AC0E5 -:100FF000CF71DD27DC2FCC278E01106243C000E0CB -:1010000010E040C08E013EC001E810E43BC003E8A0 -:1010100010E438C002EE14E435C009EE14E432C026 -:101020000AEE14E42FC005EB14E42CC006EB14E424 -:1010300029C007EB14E426C00CEC14E423C00DEC2B -:1010400014E420C003E815E41DC00AE815E41AC042 -:1010500002E915E417C004E915E414C001E216E43E -:1010600011C003E216E40EC004E216E40BC005E270 -:1010700016E408C006E216E405C007E216E402C062 -:101080000AE216E4C801DF91CF911F910F910895F4 -:1010900096E0799FF001112494E5899FE00DF11D00 -:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149 -:1010B0009491803E9105E0F4803C910558F5813390 -:1010C000910509F46FC048F48932910509F463C0B1 -:1010D0008A32910509F46DC072C089339105E9F037 -:1010E00082389105D1F08533910509F44DC067C070 -:1010F000833E910581F138F4803E9105B9F0823E3E -:101100009105D9F05CC0863E910561F1873E91055D -:10111000A1F155C00E94050608952091FA0120FD15 -:1011200002C021FF4CC080EE90E049C08091FA01DE -:1011300080FFF9CF89E390E042C08091FA0182FFFD -:101140000EC08091FA0184FF03C080E090E037C0B8 -:1011500083EE90E034C08091FA0182FFF2CF82EEFC -:1011600090E02DC08091FA0183FF0BC08091FA01BD -:1011700084FDEBCF87EE90E022C08091FA0183FFDF -:10118000F5CF86EE90E01BC08091FA0185FF07C085 -:1011900089E290E014C08091FA0185FFF9CF85E3E0 -:1011A00090E00DC08091FA0186FF07C08AE290E0CE -:1011B00006C08091FA0186FFF9CF81E390E00E949A -:1011C0001506089508950C94E20880916E01089523 -:1011D000CF93DF9300D01F92CDB7DEB79C018091F3 -:1011E000F101843019F593E099833B832A8390932E -:1011F000E9008FEF9091E800815095FD06C095EDD4 -:101200009A95F1F700008111F5CF8091E80085FFF4 -:101210000DC040E050E063E070E0CE0101960E9416 -:10122000520B8091E8008E778093E8000F900F902A -:101230000F90DF91CF910895CF93DF9300D01F924D -:10124000CDB7DEB72091F101243021F522E02983CA -:101250009B838A8383E08093E9008FEF9091E8007D -:10126000815095FD06C095ED9A95F1F7000081112A -:10127000F5CF8091E80085FF0DC040E050E063E0CD -:1012800070E0CE0101960E94520B8091E8008E77AB -:101290008093E8000F900F900F90DF91CF91089509 -:1012A0002091F1012430F1F422E02093E9002FEFA6 -:1012B0003091E800215035FD06C035ED3A95F1F743 -:1012C00000002111F5CF2091E80025FF0BC040E080 -:1012D00050E065E070E00E94520B8091E8008E774C -:1012E0008093E8000895CF93DF93EC019091F10192 -:1012F000943009F046C080910C018823D9F0809188 -:101300000D018823B9F09093E9008FEF9091E800E8 -:10131000815095FD06C095E19A95F1F70000811185 -:10132000F5CF8091E80085FF2CC040E050E060E1FF -:1013300070E017C081E08093E9008FEF9091E800A2 -:10134000815095FD06C095ED9A95F1F70000811149 -:10135000F5CF8091E80085FF14C040E050E068E0E0 -:1013600070E0CE010E94520B8091E8008E7780934E -:10137000E80080E1FE01AEE5B1E001900D928A95B2 -:10138000E1F7DF91CF9108958091F001811109C0BB -:101390000E94E70C0E94440D8091E20084608093DB -:1013A000E20008951092F001089508950C942B2204 -:1013B0000E948C1B0E9431220E94EA0F0C94E308C9 -:1013C00042E061EC81E00E94610C42E061EC82E06D -:1013D0000E94610C42E061EC83E00E94610C42E1FA -:1013E00061EC84E00C94610C8091F301833009F48A -:1013F00055C030F4813071F0823009F48EC0089508 -:101400008A3009F47AC08B3009F460C0893009F061 -:101410009CC020C08091F201813A09F096C0809171 -:10142000E800877F8093E8008091F6019091F701B2 -:10143000892B21F460E18EE591E003C060E080E05B -:1014400090E070E00E949D0B8091E8008B77809384 -:10145000E80008958091F201813209F076C0809110 -:10146000F6019091F701009719F0039709F06DC00C -:101470008091E800877F8093E8008091E80082FDFA -:1014800005C08091F1018111F8CF5FC08091F1001A -:1014900080936E018091E8008B7753C08091F201B8 -:1014A000813A09F052C08091F6019091F701892BA1 -:1014B00009F04BC08091E800877F8093E80080911D -:1014C000E80080FFFCCF80910C0136C08091F201D2 -:1014D0008132D9F58091F6019091F701892BA9F518 -:1014E0008091E800877F8093E8000E94960C8091AD -:1014F000F40180930C010C9483148091F2018132E9 -:1015000021F58091E800877F8093E8000E94960C87 -:101510008091F50180936F0108958091F201813AE5 -:10152000A1F48091E800877F8093E8008091E80033 -:1015300080FFFCCF80916F018093F1008091E800E3 -:101540008E778093E8000C94960C089584B7877F7B -:1015500084BF88E10FB6F894809360001092600019 -:101560000FBE90E080E80FB6F894809361009093EE -:1015700061000FBE0E9439100E94E70C0E94440DCA -:101580008091E20084608093E20078940E94CA0F08 -:101590000E943B1082E091E00E94E50F0E94192218 -:1015A0008091F101853069F40E94531B8091EF0115 -:1015B0008823B1F30E947E1B882391F30E943C0B89 -:1015C000EFCF0E944110ECCF292F33272330310574 -:1015D000C9F064F42130310581F02230310509F081 -:1015E00043C08DE690E02AE333E042C0213231056A -:1015F000F1F02232310541F137C082E190E027EA73 -:1016000033E036C099278130910541F08230910551 -:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4 -:1016200002C0E6E0F3E0849190E09F0121C06430C5 -:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5 -:10164000318189E090E014C0643070F470E0FB01F7 -:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47 -:10166000FE4F808190E004C080E090E020E030E018 -:10167000FA0131832083089580E189BD82E189BD2B -:1016800009B400FEFDCF8091D8008F7D8093D800F3 -:101690008091E00082608093E0008091E00081FD15 -:1016A000FCCF0895CF92DF92EF92FF920F931F939A -:1016B000CF93DF93EC018B016A010E94B50C81117D -:1016C00033C0C114D10439F0F60180819181081B27 -:1016D000190BC80FD91FE12CF12C0115110519F1B7 -:1016E0008091E80085FD16C08091E8008E77809398 -:1016F000E800C114D10449F0F60180819181E80E1F -:10170000F91EF182E08285E00FC00E94B50C8823AB -:1017100021F30AC089918093F10001501109FFEF74 -:10172000EF1AFF0ADACF80E0DF91CF911F910F917E -:10173000FF90EF90DF90CF9008952091F8013091C5 -:10174000F9012617370748F06115710539F4209122 -:10175000E8002E772093E80001C0B90140E0611550 -:101760007105A9F12091F101222309F443C025302C -:1017700009F442C02091E80023FD40C02091E80018 -:1017800022FD32C02091E80020FFE9CF4091F30014 -:101790002091F20030E0342BFC01CF01611571057E -:1017A00059F02830310540F481918093F100615067 -:1017B00071092F5F3F4FF1CF41E02830310509F02B -:1017C00040E02091E8002E772093E800C8CF411137 -:1017D000C9CF0AC08091F101882361F0853061F0A2 -:1017E0008091E80083FD0AC08091E80082FFF2CF7B -:1017F00080E0089582E0089583E0089581E00895EF -:101800002091F8013091F9012617370748F061154A -:10181000710539F42091E8002E772093E80001C08B -:10182000B901FC0120E06115710591F18091F10190 -:10183000882309F440C0853009F43FC08091E80056 -:1018400083FD3DC08091E80082FD2FC08091E800BB -:1018500080FFE9CF2091F3008091F20090E0922B7D -:101860006115710559F08830910540F42491209359 -:10187000F1003196615071090196F2CF21E008978D -:1018800009F020E08091E8008E778093E800CBCFCC -:101890002111CCCF0AC08091F101882361F08530FD -:1018A00061F08091E80083FD0AC08091E80082FF2A -:1018B000F2CF80E0089582E0089583E0089581E00A -:1018C0000895982F973058F59093E900981739F0BC -:1018D0007091EC002091ED005091F00003C0242F96 -:1018E000762F50E021FF19C03091EB003E7F3093FE -:1018F000EB003091ED003D7F3093ED003091EB0037 -:1019000031603093EB007093EC002093ED00509326 -:10191000F0002091EE0027FF07C09F5FD3CF8F70AC -:101920008093E90081E0089580E008958091F201BC -:1019300087FF11C08091E80082FD05C08091F10110 -:101940008111F8CF11C08091E8008B770BC0809196 -:10195000F101882349F08091E80080FFF8CF809161 -:10196000E8008E778093E80008952091E40030919C -:10197000E50095E64091EC00842F817040FF22C085 -:101980008091E80080FD1CC08091F101882391F0D6 -:10199000853091F08091EB0085FD10C04091E4000E -:1019A0005091E5004217530729F39A01915011F71E -:1019B00084E0089582E0089583E0089581E0089529 -:1019C00080E008954091E80042FFDECF08950E9434 -:1019D000550D0E945D0DE0EEF0E080818160808316 -:1019E000E8EDF0E080818F77808319BCA7EDB0E04F -:1019F0008C918E7F8C9380818F7E80831092F001FA -:101A000008950F931F93CF93DF930E94550D0E946B -:101A10005D0DC8EDD0E088818F77888388818068EC -:101A2000888388818F7D888319BC1092F101109280 -:101A3000ED011092EF011092EE0100EE10E0F801BE -:101A400080818B7F808388818160888342E060E031 -:101A500080E00E94610CE1EEF0E080818E7F808367 -:101A6000E2EEF0E080818160808380818860808305 -:101A7000F80180818E7F8083888180618883DF91F7 -:101A8000CF911F910F910895E8EDF0E080818F7E56 -:101A90008083E7EDF0E080818160808384E082BF15 -:101AA00081E08093F0010C94010DE8EDF0E080817D -:101AB0008E7F80831092E20008951092DA001092D7 -:101AC000E10008951F920F920FB60F9211242F93E9 -:101AD0003F934F935F936F937F938F939F93AF93B6 -:101AE000BF93EF93FF938091E10082FF0BC0809141 -:101AF000E20082FF07C08091E1008B7F8093E100CC -:101B00000E94C90F8091DA0080FF1FC08091D80029 -:101B100080FF1BC08091DA008E7F8093DA00809175 -:101B2000D90080FF0DC080E189BD82E189BD09B483 -:101B300000FEFDCF81E08093F1010E94C40905C041 -:101B400019BC1092F1010E94D2098091E10080FF3E -:101B500019C08091E20080FF15C08091E2008E7F65 -:101B60008093E2008091E20080618093E2008091A6 -:101B7000D80080628093D80019BC85E08093F10181 -:101B80000E94D6098091E10084FF30C08091E2007C -:101B900084FF2CC080E189BD82E189BD09B400FECB -:101BA000FDCF8091D8008F7D8093D8008091E10097 -:101BB0008F7E8093E1008091E2008F7E8093E2002F -:101BC0008091E20081608093E2008091ED018823A2 -:101BD00011F084E007C08091E30087FD02C081E03E -:101BE00001C083E08093F1010E94D8098091E10057 -:101BF00083FF29C08091E20083FF25C08091E1002E -:101C0000877F8093E10082E08093F1011092ED01E3 -:101C10008091E1008E7F8093E1008091E2008E7FD1 -:101C20008093E2008091E20080618093E20042E0D4 -:101C300060E080E00E94610C8091F00088608093F9 -:101C4000F0000E94D509FF91EF91BF91AF919F9154 -:101C50008F917F916F915F914F913F912F910F9055 -:101C60000FBE0F901F9018951F920F920FB60F92F4 -:101C700011242F933F934F935F936F937F938F9391 -:101C80009F93AF93BF93CF93DF93EF93FF93C09155 -:101C9000E900CF708091EC00D82FD17080FDD0E8A2 -:101CA0001092E9008091F000877F8093F000789493 -:101CB0000E94780E1092E9008091F0008860809375 -:101CC000F000CD2BCF70C093E900FF91EF91DF9131 -:101CD000CF91BF91AF919F918F917F916F915F91C4 -:101CE0004F913F912F910F900FBE0F901F9018951D -:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3 -:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115 -:101D1000F10091938E13FBCF0E94F4098091E800AB -:101D200083FF1FC18091F2019091F301492F50E090 -:101D30004A30510508F015C1FA01EA5AFF4F0C94D8 -:101D4000B323803881F0823809F00BC18091F6010D -:101D50008F708093E9008091EB0085FB882780F9E4 -:101D60001092E90006C08091EE019091EF0191116F -:101D700082609091E800977F9093E8008093F10053 -:101D80001092F100C8C0282F2D7F09F0EAC08823E7 -:101D900019F0823061F0E5C08091F401813009F0E2 -:101DA000E0C0933009F080E08093EF012BC0809178 -:101DB000F401811127C08091F6018F7009F4D1C020 -:101DC0008093E9002091EB0020FF1CC0933021F4A8 -:101DD0008091EB00806214C09091EB009061909331 -:101DE000EB0021E030E0A90102C0440F551F8A95A5 -:101DF000E2F74093EA001092EA008091EB008860DD -:101E00008093EB001092E9008091E800877F86C004 -:101E10008111A7C01091F4011F778091E3008078B1 -:101E2000812B8093E3008091E800877F8093E80016 -:101E30000E94960C8091E80080FFFCCF8091E30027 -:101E400080688093E300111102C082E001C083E04A -:101E50008093F10186C08058823008F082C0809162 -:101E6000F4019091F5018C3D53E0950779F583E0FD -:101E70008A838AE289834FB7F894DE01139620E0C3 -:101E80003EE051E2E32FF0E050935700E49120FF51 -:101E900003C0E295EF703F5FEF708E2F90E0EA3065 -:101EA00010F0C79601C0C0968D939D932F5F24318B -:101EB00049F74FBF8091E800877F8093E8006AE28E -:101EC00070E0CE0101960E949D0B14C0AE014F5FE1 -:101ED0005F4F6091F6010E94E40ABC01009709F48B -:101EE00040C09091E800977F9093E80089819A81A3 -:101EF0000E94000C8091E8008B778093E80031C04D -:101F0000803879F58091E800877F8093E8008091A0 -:101F1000ED018093F1008091E8008E778093E800D6 -:101F20000E94960C1EC081111CC09091F401923049 -:101F3000C0F48091E800877F8093E8009093ED01E2 -:101F40000E94960C8091ED01811106C08091E30002 -:101F500087FD02C081E001C084E08093F1010E940E -:101F6000E0098091E80083FF0AC08091E800877F44 -:101F70008093E8008091EB0080628093EB00AA964A -:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A -:101F900008950895CF938091F1018823A1F0C09115 -:101FA000E900CF709091EC00892F817090FD80E85E -:101FB000C82B1092E9008091E80083FD0E94780E02 -:101FC000CF70C093E900CF910895909375018093ED -:101FD00074010895E0917401F0917501309721F03A -:101FE0000190F081E02D099480E00895E091740162 -:101FF000F0917501309721F00280F381E02D099472 -:102000000895E0917401F0917501309721F00480FA -:10201000F581E02D099408952091720130917301AA -:102020008217930771F09093730180937201E0918E -:102030007401F0917501309721F00680F781E02D51 -:1020400009940895209170013091710182179307CE -:1020500071F09093710180937001E0917401F0919F -:102060007501309721F00084F185E02D09940895E1 -:1020700008950C9438100E94921B0E9433030C9414 -:10208000541C9F92AF92BF92CF92DF92EF92FF9239 -:102090000F931F93CF93DF9300D000D000D0CDB724 -:1020A000DEB70E944B030DE010E0AA24A394B12CEC -:1020B000902E802F0E943904980129583E4F6901C3 -:1020C000F901F080F826A1F40150110988F78FEF8B -:1020D00089838A831B820E949B1B8160782F9D834A -:1020E0008C8349815A816B818D810E94D8102FC0C9 -:1020F0009091DA0191FF04C08E830E943F048E818B -:1021000025E030E0A501022E01C0440F0A94EAF751 -:10211000E42E4F21C1F029839A828E2191E009F4A7 -:1021200090E09B830E949B1B8160782F9D838C8312 -:1021300049815A816B818D810E94D810F60180817E -:10214000E826E08204C021503109E0F6BDCF0E94AC -:102150003B1F109176010E94EA0F1817B9F00E94F8 -:10216000EA0F8093760126960FB6F894DEBF0FBE75 -:10217000CDBFDF91CF911F910F91FF90EF90DF9036 -:10218000CF90BF90AF909F900C94E30826960FB627 -:10219000F894DEBF0FBECDBFDF91CF911F910F919D -:1021A000FF90EF90DF90CF90BF90AF909F900895F9 -:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82 -:1021C0000FBECDBF4F83588769877A878B87DE0123 -:1021D000119686E0FD0111928A95E9F785E0FE01EE -:1021E000379601900D928A95E1F749815A816B816A -:1021F0007C818D819E810E9421172B960FB6F894C9 -:10220000DEBF0FBECDBFDF91CF910895CF9388235E -:1022100009F4C2C0C82F823859F40E94EA0F81FD28 -:10222000BBC089E30E94FB190E94C81A89E30CC055 -:10223000833879F40E94EA0F80FDAEC083E50E94E6 -:10224000FB190E94C81A83E50E943D1ACF910C9495 -:10225000C81A843859F40E94EA0F82FD9DC087E4B1 -:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6 -:10227000813A48F48C2F0E947E2181118DC08C2FD1 -:102280000E94FB19E3CF80E28C0F883048F4C770BE -:1022900081E001C0880FCA95EAF70E94811AD6CF63 -:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB -:1022B00083E890E005C081E890E002C082E890E009 -:1022C000CF910C940C1088E58C0F833108F064C01A -:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118 -:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186 -:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106 -:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173 -:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB -:1023200038C082EE90E035C089EE90E032C08AEE8F -:1023300090E02FC085EB90E02CC086EB90E029C0A8 -:1023400087EB90E026C08CEC90E023C08DEC90E011 -:1023500020C083E891E01DC08AE891E01AC082E9BC -:1023600091E017C084E991E014C081E292E011C0CD -:1023700083E292E00EC084E292E00BC085E292E03C -:1023800008C086E292E005C087E292E002C08AE2DD -:1023900092E0CF910C942210CF910895882309F4F4 -:1023A0004BC0823859F40E94EA0F81FF45C089E38F -:1023B0000E94FB190E94C81A89E30CC0833871F48B -:1023C0000E94EA0F80FF38C083E50E94FB190E943B -:1023D000C81A83E50E943D1A0C94C81A843859F42F -:1023E0000E94EA0F82FF28C087E40E94FB190E9426 -:1023F000C81A87E4EFCF9CEF980F913A58F390E218 -:10240000980F983050F4877091E001C0990F8A9529 -:10241000EAF7892F0E94871ADFCF9BE5980F933048 -:1024200020F480E090E00C940C10885A833120F462 -:1024300080E090E00C9422100895882321F00E94FF -:10244000811A0C94C81A0895882321F00E94871AD3 -:102450000C94C81A08957F928F929F92AF92BF9268 -:10246000CF92DF92EF92FF920F931F93CF93DF9360 -:102470001F92CDB7DEB77C01C62E772EFC010581F9 -:1024800002950F70128111110E949E1A0E94F41978 -:10249000882379F0112369F080E28C0D883048F0B0 -:1024A00082E00E94DD190E94F41991E0D82ED9260D -:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C -:1024C0000C94B323872D807F072D0F70882311F084 -:1024D0000295007F112389F0002309F490C180E266 -:1024E0008C0D883020F4802F0E94811A03C0802F29 -:1024F0000E94911A0E94C81A82C18C2D0E94CE118E -:10250000002309F495C180E28C0D883020F4802FDF -:102510000E94871A03C0802F0E94971A0E94C81A2F -:1025200087C1972D907F872D8F70903211F0829503 -:10253000807FCC2021F0F1E0CF16B1F01EC0112336 -:1025400049F0002309F414C1013009F011C10E94BF -:10255000B11A6EC1002319F0013009F469C18983F1 -:102560000E94B41A89810AC1112321F0023008F0B7 -:102570005FC1FEC001115CC101C1112321F0002324 -:1025800009F4F6C03CC1002309F4F8C03EC1872D10 -:1025900086958695837090E0009719F0019761F019 -:1025A00047C1112321F08C2D972D937002C080E03C -:1025B00090E00E940C103CC1112321F08C2D972D2E -:1025C000937002C080E090E00E94221031C18C2DF7 -:1025D000112319F00E94431E02C00E94AB1E0E94EC -:1025E000301F26C1872D837009F052C0111120C100 -:1025F0008C2D829586958770880F880F9C2D9F70F3 -:10260000892E912CA12CB12C082E04C0880C991C69 -:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041 -:1026200020E030E0B901A80104C0440F551F661F27 -:10263000771F8A95D2F7CB01BA0160957095809586 -:10264000909503C060E070E0CB01272D269526957C -:10265000237030E02230310569F02330310589F0F4 -:10266000682979298A299B292130310571F00E9436 -:102670006918DEC0682979298A299B290E94851852 -:10268000D7C00E946918C501B4010E944D18D0C07E -:10269000112319F0872D817001C08695882309F4D4 -:1026A000C7C08C2D829586958770880F880F9C2DCA -:1026B0009F70892E912CA12CB12C082E04C0880C5F -:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC -:1026D00010E020E030E0B901A80104C0440F551F0C -:1026E000661F771F8A95D2F7CB01BA016095709566 -:1026F0008095909503C060E070E0CB01272D269572 -:1027000026952370422F50E04230510569F0433046 -:10271000510589F0682979298A299B294130510579 -:1027200071F00E94431984C0682979298A299B295C -:102730000E945F197DC00E944319C501B4010E9427 -:10274000271976C08C2D90E0FC01E05EF109E5319F -:10275000F10508F050C0E059FF4F0C94B3230C2D45 -:102760000F70872D8F71112331F00E94C018802FB8 -:102770000E941D125DC00E94E118802F0E94241249 -:1027800057C0112339F0011153C0872D8F710E945A -:1027900006194EC0023008F04BC0F7CF112339F0B4 -:1027A000872D8F710E94C01843C01123C9F3872D54 -:1027B0008F710E94E1183CC0112329F0872D8F7181 -:1027C0000E94AB1835C00E94A11832C0112351F0ED -:1027D000172D1F71812F0E94C01863E0812F0E9466 -:1027E000D41926C081E00E94DD19023008F182E090 -:1027F0000E94DD191DC0112331F0002389F28C2DB8 -:102800000E94061115C0002391F28C2D0E94CE115A -:102810000FC0472D4F706C2DC7010E9415050E94F7 -:10282000C51706C0472D4F706C2DC7010E94F205D9 -:10283000DD20F9F00E94D01980FD1BC0F701128243 -:102840000E94CA190E94C018C7010E9448140E9421 -:10285000CA190F90DF91CF911F910F91FF90EF90C8 -:10286000DF90CF90BF90AF909F908F907F900C940F -:10287000E1180F90DF91CF911F910F91FF90EF9092 -:10288000DF90CF90BF90AF909F908F907F900895F2 -:102890000F931F93CF93DF93EC01888199812B8154 -:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B -:1028B0000E944A05882371F0688179818A810E948B -:1028C000C6198C010E947B190E944218B801CE01E2 -:1028D0000E942B12DF91CF911F910F9108950E94BA -:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471 -:1028F000E11F0E94301F80E090E00E940C1080E0F9 -:1029000090E00C9422100E948E1A0C946F140E9476 -:10291000BB19292F22952F7030E02C3031054CF453 -:102920002A3031056CF42250310922303105A8F4E7 -:1029300007C02C30310569F02F30310551F00DC042 -:10294000803F69F018F4803E40F409C0843F29F4C8 -:1029500006C093FB882780F9089580E0089581E000 -:102960000895CF93DF9300D000D01F92CDB7DEB78C -:102970000F900F900F900F900F90DF91CF910895CF -:10298000CF93DF9300D000D000D0CDB7DEB726962E -:102990000FB6F894DEBF0FBECDBFDF91CF91089583 -:1029A0001F93CF93DF93C091850116E0809186013C -:1029B000C81799F0D0E01C9FF0011D9FF00D112465 -:1029C000E957FE4F408151816281738184819581F5 -:1029D0000E94C0142196C770E9CFDF91CF911F915B -:1029E00008954091B7015091B8016091B90170917B -:1029F000BA018091BB019091BC010C94C0148091EC -:102A0000BC0182958F7009F054C08091B901882370 -:102A100009F44FC080918501A09186016091B701B2 -:102A20007091B8014091BA015091BB01B6E08A178C -:102A300009F43FC090E041155105C1F17F3F11F409 -:102A40006F3FA1F1B89FF001B99FF00D1124E95734 -:102A5000FE4F218172132AC02081621327C0228178 -:102A6000211124C0238134812417350710F421500B -:102A70003109241B350B283C3105C0F42091BC01E1 -:102A80002F7020612093BC0126E0289FF001299F30 -:102A9000F00D1124E457FE4F80818F708061808398 -:102AA00087EB91E00E9448140C94D0140196877033 -:102AB000BECF0895CF92DF92EF92FF920F931F93B4 -:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32 -:102AD0000FBECDBF8C0185E0F801DE011D9601908F -:102AE0000D928A95E1F7D8014C9111965C9111975E -:102AF00012966C9112971396CD90DC9014973091AA -:102B0000B7017091B8018091BA019091BB01009713 -:102B100009F46BC17F3F19F43F3F09F466C1E090AF -:102B2000B901EE2009F4C0C02091BC01C816D90635 -:102B300028F0F601E81BF90BCF0104C080959095B1 -:102B40008C0D9D1DFF24F394883C910578F0F12CA9 -:102B5000207F09F0C6C07C2DD98AC88A89890E9445 -:102B6000B11487EB91E00E944814B1C0822F807F9E -:102B700009F046C0751314C0341312C0611110C09F -:102B80002F7020612093BC010E94F11487EB91E02B -:102B90000E9448148091BC01D80115968C932EC0D8 -:102BA000CD2819F15F3F11F44F3FF9F0F62E611176 -:102BB0001CC0809185012091860136E0821709F4BE -:102BC0005AC090E0389FF001399FF00D1124E95769 -:102BD000FE4F7181571306C07081471303C0728185 -:102BE000711103C001968770E9CFF62E662309F4B0 -:102BF00018C18091BC0181608093BC01F12C11C18E -:102C0000751308C0341306C0611104C08091BC0163 -:102C1000D801C3C04D875E878D859E856A8B0E94D3 -:102C200087146A898823E1F16623D1F12091BC01E0 -:102C3000822F82958F7090E0029774F08091B70197 -:102C40009091B80198878F831986DB86CA862C8776 -:102C5000CE0107960E94481486E0F801A7EBB1E088 -:102C600001900D928A95E1F70E94FF140E94F114E1 -:102C7000FF24F394D6C04D875E878D859E850E9484 -:102C8000BB19292F22952F7030E0223031050CF02E -:102C9000BCC09F7009F0B6C0805E883008F4C1C027 -:102CA000C8010E944814E4CFC816D90608F453C0DE -:102CB000F601E81BF90BCF01883C910508F450C0E0 -:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E -:102CD000F1E086E0DF011D928A95E9F70E94F11488 -:102CE000A0C0751314C0341312C0611110C08091BC -:102CF000BC01F8018583C8010E94481486E0E7EB17 -:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C -:102D10005E878D859E856A8B0E9487146A898823C9 -:102D200009F4BECF662309F4BBCF2091BC01822FEA -:102D300082958F7090E002970CF48ECF8091B7014E -:102D40009091B8019A8389831B82DD82CC822E8385 -:102D5000CE0101967FCF809590958C0D9D1DACCFB7 -:102D6000F62E662309F49CCF75132EC034132CC0A5 -:102D70002091BC0120FD1FC0822F82958F70D9F059 -:102D8000D80115962C9315978F3049F08F5F982FA7 -:102D90009295907F822F8F70892B15968C93C80106 -:102DA0000E94481486E0F801A7EBB1E001900D9273 -:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7 -:102DC0000D928A95E1F72DC04D875E878D859E8592 -:102DD0000E948714811140CF8091BC018160809353 -:102DE000BC01C8010E9448141CC0662309F458CFD6 -:102DF0004D875E878D859E850E948714882309F400 -:102E00004FCF2ACF811148CF0CC0243031050CF0B0 -:102E100047CF9F7009F440CFF8019581907F09F06A -:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D -:102E3000DF91CF911F910F91FF90EF90DF90CF9096 -:102E400008951F93CF93DF93CDB7DEB72C970FB6BE -:102E5000F894DEBF0FBECDBF4F83588769877A874E -:102E60008B879C87CE0107960E945A15882369F0AC -:102E70008F8198852A853B85232BF1F19F3F09F0AF -:102E800063C08F3F09F060C037C086E0FE0137960F -:102E9000DE01119601900D928A95E1F76F81788598 -:102EA000EA85FB85309741F17F3F11F46F3F21F1B7 -:102EB0002091860130E0C9010196877099274091E1 -:102EC000850150E08417950709F447C069837A8328 -:102ED000FD83EC8396E0929FD001939FB00D112467 -:102EE000A957BE4FFE01319601900D929A95E1F7D8 -:102EF000809386010E94D01416E080918501909104 -:102F000086018917C1F1189FC001112489579E4F6E -:102F10000E945A15882379F1E09185011E9FF001E6 -:102F20001124E957FE4F4081518162817381848170 -:102F300095810E94C0148091850190E00196877070 -:102F4000992780938501D9CF4F81588569857A85E6 -:102F50008B859C850E94C014CFCF0E948314109251 -:102F6000860110928501E7EBF1E086E0DF011D921A -:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45 -:102F8000CDBFDF91CF911F910895EF92FF920F93E4 -:102F90001F93CF93DF938C01009709F46CC0F12C41 -:102FA000EE24E394E8012196F8018491843740F4FB -:102FB000843008F051C0813081F0823019F15BC05B -:102FC000853709F444C0A8F19CE7980F903708F0C2 -:102FD00052C08F770E94CE1141C00E5F1F4FFE017D -:102FE000C49180E28C0F883048F4C7708E2D01C0E8 -:102FF000880FCA95EAF70E94A11A14C08C2F0E946C -:1030000006112DC00E5F1F4FFE01C49180E28C0F90 -:10301000883058F4C7708E2D01C0880FCA95EAF722 -:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3 -:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3 -:103040009FE00197F1F700C00000C150F6CF0E5F7E -:103050001F4FFE01F49003C00E9406118E018F2DB8 -:10306000882309F49FCFEFE9FFE03197F1F700C023 -:1030700000008150F5CFDF91CF911F910F91FF900C -:10308000EF90089508956093C1017093C2018093F9 -:10309000C3019093C4010C946F140F931F9300917C -:1030A000C1011091C2012091C3013091C401DC0122 -:1030B000CB01802B912BA22BB32B8093C10190933A -:1030C000C201A093C301B093C4011F910F910C944E -:1030D0006F140F931F930091C1011091C2012091B1 -:1030E000C3013091C401DC01CB0180239123A223D1 -:1030F000B3238093C1019093C201A093C301B09305 -:10310000C4011F910F910C946F140F931F930091A2 -:10311000C1011091C2012091C3013091C401DC01B1 -:10312000CB0180279127A227B3278093C1019093D9 -:10313000C201A093C301B093C4011F910F910C94DD -:103140006F141092BD011092BE011092BF01109237 -:10315000C0010C946F1441E050E060E070E004C0E6 -:10316000440F551F661F771F8A95D2F74093BD0104 -:103170005093BE016093BF017093C0010C946F1413 -:1031800041E050E060E070E004C0440F551F661F4E -:10319000771F8A95D2F78091BD019091BE01A091D1 -:1031A000BF01B091C001482B592B6A2B7B2B409358 -:1031B000BD015093BE016093BF017093C0010C9498 -:1031C0006F1441E050E060E070E004C0440F551F10 -:1031D000661F771F8A95D2F7409550956095709538 -:1031E0008091BD019091BE01A091BF01B091C0013D -:1031F000482359236A237B234093BD015093BE018A -:103200006093BF017093C0010C946F1441E050E0D3 -:1032100060E070E004C0440F551F661F771F8A9559 -:10322000D2F78091BD019091BE01A091BF01B091F4 -:10323000C001482759276A277B274093BD01509337 -:10324000BE016093BF017093C0010C946F140F9383 -:103250001F930091BD011091BE012091BF013091DB -:10326000C001DC01CB01802B912BA22BB32B8093CF -:10327000BD019093BE01A093BF01B093C0011F9107 -:103280000F910C946F140F931F930091BD01109137 -:10329000BE012091BF013091C001DC01CB01802330 -:1032A0009123A223B3238093BD019093BE01A093E9 -:1032B000BF01B093C0011F910F910C946F140F9335 -:1032C0001F930091BD011091BE012091BF0130916B -:1032D000C001DC01CB0180279127A227B32780936F -:1032E000BD019093BE01A093BF01B093C0011F9197 -:1032F0000F910C946F140895CF92DF92EF92FF928A -:103300000F931F93CF93DF938C01C090C101D09096 -:10331000C201E090C301F090C4018091BD01909181 -:10332000BE01A091BF01B091C001C82AD92AEA2AE2 -:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520 -:10334000A795979587950A94D2F780FF06C0B80194 -:103350008C2F0E944808019721F4219760F780E0A4 -:1033600001C08C2FDF91CF911F910F91FF90EF90B3 -:10337000DF90CF900895CF93DF93EC010E947C19EA -:10338000BE010E944808DF91CF910895CB010E94B1 -:10339000BB1908958091C5018595859585950895FA -:1033A0008091C5018770089598E0899F900111244C -:1033B000262B2093C5010C94C0182091C50180953F -:1033C00082238093C501982F977069F430E0482FCD -:1033D000552747FD50952417350729F08595859584 -:1033E00085950C94E11808959091C501977081E03E -:1033F00009F480E0089590910C01992321F09091B7 -:103400000D01911109C020910E0130910F01F901B8 -:1034100032969FEF40E01FC0982F9695969596950F -:103420009F3050F5E0910E01F0910F01E90FF11D71 -:10343000877021E030E0A90102C0440F551F8A9532 -:10344000E2F7CA019181892B818308959F3F39F06A -:103450004F5F4E3041F051915813F8CF0DC05111CC -:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08 -:1034700097FDFA9582830895089590910C01992300 -:1034800021F090910D01911109C020910E01309110 -:103490000F01F9013296205F3F4F1FC0982F96957C -:1034A000969596959F30F0F4E0910E01F0910F0102 -:1034B000E90FF11D877021E030E0A90102C0440F3F -:1034C000551F8A95E2F7CA018095918189238183EE -:1034D00008953196E217F30729F090819813F9CFF8 -:1034E0001082F7CF089581E090E0E0910E01F09115 -:1034F0000F01E80FF91F1082019680319105A9F79D -:1035000008959091D901892B8093D90108958095D0 -:103510009091D90189238093D90108951092D901FE -:1035200008959091D801892B8093D80108958095B2 -:103530009091D80189238093D80108951092D801E1 -:1035400008959091D701892B8093D7010895809594 -:103550009091D70189238093D70108951092D701C4 -:1035600008958093C60108951092C6010895809130 -:103570000E0190910F01FC0131969C01205F3F4F9D -:1035800080E0919191118F5FE217F307D1F70895D1 -:10359000E0910E01F0910F018091D9018083E091BB -:1035A0000E01F0910F0190818091D801892B8083C9 -:1035B000E0910E01F0910F0190818091D701892B4C -:1035C00080838091C601882361F0E0910E01F09123 -:1035D0000F019081892B80830E94B71A811110926C -:1035E000C60180910E0190910F010C94F60F20E01E -:1035F000009739F0AC0141505109842395232F5F86 -:10360000F7CF822F0895CF92DF92EF92FF926C0155 -:10361000EE24FF24C114D104E104F10421F0C70118 -:10362000B60120E101C020E0C72ED82EE92EFF24EC -:10363000C114D104E104F10419F0285FC701B601F7 -:103640006B017C0154E0F694E794D794C7945A95A3 -:10365000D1F7C114D104E104F10419F02C5FC701C2 -:10366000B6016B017C0142E0F694E794D794C794CD -:103670004A95D1F7C114D104E104F10419F02E5F89 -:10368000C701B601DC01CB01B695A7959795879543 -:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5 -:1036A000DF90CF9008958091F101843021F1109244 -:1036B000DB0120E488E190E00FB6F894A8958093B0 -:1036C00060000FBE2093600080E00E94E30883B793 -:1036D000817F846083BF83B7816083BF789488953E -:1036E00083B78E7F83BF88E10FB6F8948093600024 -:1036F000109260000FBE0895089508950E947C1BEB -:103700000E944B030E947D1B0E94400491E08111A6 -:1037100001C090E0892F08950E9483140E94EA0F4F -:103720000C94E30882E084BD93E095BD9AEF97BDC9 -:1037300080936E0008952FB7F8948091DC019091EA -:10374000DD01A091DE01B091DF012FBF0895CF927E -:10375000DF92EF92FF920F931F932FB7F89440914F -:10376000DC015091DD016091DE017091DF012FBF1E -:103770006A017B01EE24FF248C0120E030E0C016BA -:10378000D106E206F30610F4415051099A01281BB4 -:10379000390BC9011F910F91FF90EF90DF90CF90EF -:1037A00008951F920F920FB60F9211248F939F933B -:1037B000AF93BF938091DC019091DD01A091DE0178 -:1037C000B091DF010196A11DB11D8093DC019093A2 -:1037D000DD01A093DE01B093DF01BF91AF919F9116 -:1037E0008F910F900FBE0F901F9018950E94E70CBD -:1037F000F8942FEF87EA91E6215080409040E1F75E -:1038000000C0000087E090EBDC018093FB01909307 -:10381000FC01A093FD01B093FE019CE088E10FB68E -:10382000F894A895809360000FBE90936000FFCF3E -:10383000EF92FF920F931F93CF93DF93D82FCDE09A -:103840008C2F0E94390405E010E0E82EF12CC7010E -:10385000002E02C0959587950A94E2F780FF09C073 -:10386000602F7C2F80E00E94F305D81302C081E016 -:1038700006C00150110958F7C15010F780E0DF91E0 -:10388000CF911F910F91FF90EF900895CF93C82F84 -:103890008CE20E94181C882321F08C2FCF910C946D -:1038A000181C80E0CF910895CF930E949B1D811139 -:1038B00002C00E94811DC5E6C15049F00E944B0321 -:1038C0008FE39CE90197F1F700C00000F5CF89E292 -:1038D0000E94461C811113C18AE20E94461C81117C -:1038E0000E94811D85E00E94461C81110E94F61BEA -:1038F0000E94A61D8093DA0187E00E94461C88235F -:10390000A9F18BE10E94461C882351F08091DA01D5 -:1039100081FB222720F991E0922790FB81F90EC0CC -:103920008EE00E94461C882361F08091DA0182FBC0 -:10393000222720F991E0922790FB82F98093DA0107 -:1039400015C080E10E94461C9091DA01882341F065 -:1039500093FB222720F981E0822780FB93F904C0A2 -:10396000892F809580FB90F99093DA018091DA019C -:103970000E94AA1D0E94B81D8093FA0180EE0E9449 -:10398000461C882341F08091FA01982F909590FB76 -:1039900080F98093FA0189E30E94461C882359F03C -:1039A0008091FA0181FB222720F991E0922790FB78 -:1039B00081F98093FA0182EE0E94461C882359F017 -:1039C0008091FA0182FB222720F991E0922790FB57 -:1039D00082F98093FA0186EE0E94461C882359F0F2 -:1039E0008091FA0183FB222720F991E0922790FB36 -:1039F00083F98093FA0183EE0E94461C882359F0D4 -:103A00008091FA0184FB222720F991E0922790FB14 -:103A100084F98093FA0185E30E94461C882359F0BB -:103A20008091FA0185FB222720F991E0922790FBF3 -:103A300085F98093FA0181E30E94461C882359F09E -:103A40008091FA0186FB222720F991E0922790FBD2 -:103A500086F98093FA0181E10E94461C882359F07F -:103A60008091FA0187FB222720F991E0922790FBB1 -:103A700087F98093FA018091FA010E94BC1D809120 -:103A8000FA0187FB882780F980930D0187E20E9465 -:103A9000461CC82F8EE10E94461C8111C2608FE136 -:103AA0000E94461C8111C46080E20E94461C811164 -:103AB000C86081E20E94461C8111C06182E20E94BE -:103AC000461C8111C06283E20E94461C8111C064C1 -:103AD00084E20E94461C882311F0C06802C0CC23F7 -:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4 -:103AF000682F70E080E090E0CF910C944318CF9154 -:103B000008956DEE7EEF80E090E00E94ED2360E08E -:103B100082E090E00E94DB2360E083E090E00E947E -:103B2000DB2360E084E090E00E94DB2360E085E03E -:103B300090E00C94DB2380E090E00E94D52321E00C -:103B40008D3E9E4F09F020E0822F089582E090E0A4 -:103B50000C94CD23682F82E090E00C94DB2383E06B -:103B600090E00C94CD23682F83E090E00C94DB234D -:103B700084E090E00C94CD23682F84E090E00C94D6 -:103B8000DB238091E20180FF0BC06091130185E08F -:103B9000689FB001112475956795759567952BC041 -:103BA00081FF09C06091130185E0689FB001112475 -:103BB0007595679520C082FF07C06091130185E06D -:103BC000689FB001112417C09091E3019923D1F0AF -:103BD00060911201961788F72091130185E0289FC4 -:103BE00090011124929FA001939F500D112470E029 -:103BF000CA010E949F236038710540F46115710568 -:103C000039F002C065E070E0862F08958FE70895CF -:103C100081E008958091E20180FF08C06091110168 -:103C200070E0759567957595679521C081FF06C011 -:103C30006091110170E07595679519C082FF04C00D -:103C40006091110170E010C09091E3019923C1F0DF -:103C5000609110019617A0F780911101899FC00112 -:103C6000112470E00E949F236038710528F46115CB -:103C7000710521F0862F08958FE7089581E008955A -:103C800061E070E0F4CF803F21F40E94C11D819576 -:103C900004C0813F29F40E94C11D8093E60108956C -:103CA000823F21F40E94C11D819504C0833F29F405 -:103CB0000E94C11D8093E5010895893F19F40E9477 -:103CC0000A1E05C08A3F31F40E940A1E8195809326 -:103CD000E70108958B3F21F40E940A1E819504C0DC -:103CE0008C3F29F40E940A1E8093E8010895843FC6 -:103CF00021F48091E401816017C0853F21F4809117 -:103D0000E401826011C0863F21F48091E401846067 -:103D10000BC0873F21F48091E401886005C0883F93 -:103D200031F48091E40180618093E40108958D3F36 -:103D300021F48091E20181600BC08E3F21F48091DB -:103D4000E201826005C08F3F29F48091E201846026 -:103D50008093E2010895803F39F48091E60187FF66 -:103D60006CC01092E60169C0813F29F48091E601A0 -:103D70001816BCF362C09091E501823F29F497FFC9 -:103D80005CC01092E50159C0833F19F41916CCF3B9 -:103D900054C0893F41F48091E70118160CF04DC0E2 -:103DA0001092E7014AC08A3F29F48091E70187FF1A -:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6 -:103DC0001092E8013AC08C3F29F48091E80118165E -:103DD000BCF333C0843F21F48091E4018E7F17C08F -:103DE000853F21F48091E4018D7F11C0863F21F44D -:103DF0008091E4018B7F0BC0873F21F48091E40127 -:103E0000877F05C0883F31F48091E4018F7E8093E5 -:103E1000E40113C08D3F21F48091E2018E7F0BC03D -:103E20008E3F21F48091E2018D7F05C08F3F29F400 -:103E30008091E2018B7F8093E2018091E501811105 -:103E40000EC08091E60181110AC08091E7018111C5 -:103E500006C08091E801811102C01092E30108952B -:103E600084EE91E00E9401100E949B1B9093E1015F -:103E70008093E00108951F93CF93DF938091E00139 -:103E80009091E1010E94A71BAC019091E30199235D -:103E900021F02091140130E006C0209115018AE044 -:103EA000289F900111244217530708F486C080917F -:103EB000E501C091E601D091E7011091E80181117F -:103EC00007C0C11176C0D11174C0111172C075C084 -:103ED0009F3F19F09F5F9093E301181624F40E940E -:103EE000C11D8093E5018091E50187FF05C00E9417 -:103EF000C11D81958093E5011C1624F40E94C11D0B -:103F00008093E6018091E60187FF05C00E94C11DF4 -:103F100081958093E6016091E501662339F1C091B6 -:103F2000E601CC2319F1772767FD7095872F972F2E -:103F30000E94B02223E333E343E35FE30E941423B0 -:103F40000E947D226093E5016C2F772767FD7095B5 -:103F5000872F972F0E94B02223E333E343E35FE3ED -:103F60000E9414230E947D226093E6011D1624F412 -:103F70000E940A1E8093E7018091E70187FF05C038 -:103F80000E940A1E81958093E701111624F40E9475 -:103F90000A1E8093E8018091E80187FF05C00E9416 -:103FA0000A1E81958093E801DF91CF911F910C94B7 -:103FB000301F9F3F09F08ECF96CFDF91CF911F9199 -:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE -:103FD0001092E3011092E2010895833081F128F4F8 -:103FE000813059F08230D1F00895853009F449C00C -:103FF000B8F1863009F456C0089580911501262F36 -:1040000030E0280F311D2F3F310524F4680F6093F5 -:10401000150108958FEF8093150108958091140183 -:10402000262F30E0280F311D2F3F310524F4680F73 -:104030006093140108958FEF809314010895809187 -:104040001301262F30E0280F311D2F3F310524F4B6 -:10405000680F6093130108958FEF80931301089503 -:1040600080911201262F30E0280F311D2F3F31059E -:1040700024F4680F6093120108958FEF809312016A -:10408000089580911101262F30E0280F311D2F3F18 -:10409000310524F4680F6093110108958FEF809328 -:1040A0001101089580911001262F30E0280F311D55 -:1040B0002F3F310524F4680F6093100108958FEFAE -:1040C000809310010895833011F128F4813049F074 -:1040D000823091F00895853081F120F18630C1F170 -:1040E000089580911501681720F4861B80931501AF -:1040F000089510921501089580911401681720F415 -:10410000861B8093140108951092140108958091E4 -:104110001301681720F4861B8093130108951092F1 -:104120001301089580911201681720F4861B809373 -:1041300012010895109212010895809111016817DB -:1041400020F4861B809311010895109211010895A7 -:1041500080911001681720F4861B80931001089548 -:104160001092100108950F931F938D3109F46BC0C5 -:1041700008F03FC08E3009F47FC0C0F4873009F4E6 -:1041800069C068F4863009F0B1C08091DA01817F9E -:104190008E7F8093DA0181E08093EA01A8C08830A5 -:1041A00009F4A2C08B3009F49FC0A0C0863109F485 -:1041B0009BC078F4803109F472C0813109F096C057 -:1041C0000E94831490910D0181E0892780930D0155 -:1041D0008BC0893109F488C08B3109F087C0809188 -:1041E000DA0181FB222720F991E0922790FB81F9E7 -:1041F0004CC0853309F470C048F4873209F46CC0B0 -:1042000008F459C0893209F467C070C0833438F4A7 -:104210008A3308F04EC0883309F466C067C083341F -:1042200009F45AC0883409F061C00E9483140FEF6A -:1042300013ED20E3015010402040E1F700C00000E2 -:104240000E94F61B51C00E9437220E94EA0F0E9472 -:10425000E3084AC09091DA01892F8095817080FB34 -:1042600090F929F0966098609093DA0140C0997FA8 -:10427000977F9093DA0138C08091DA0182FB222780 -:1042800020F991E0922790FB82F98093DA0199233B -:1042900059F18091DA0181608093DA0125C0809123 -:1042A000DA0183FB222720F991E0922790FB83F922 -:1042B000ECCF895301C08D5141E050E060E070E0E7 -:1042C0008A019B0104C0000F111F221F331F8A9512 -:1042D000D2F7C901B80104C061E070E080E090E06D -:1042E0000E9443180E94831481E001C080E01F9166 -:1042F0000F91089580E0089580E00895CF93C82F2E -:104300008091EA01813079F018F08230E9F187C0BC -:10431000E0910E01F0910F018081813169F08232CC -:1043200009F07FC009C0E0910E01F0910F0180817A -:10433000813111F0823261F48C2F0E947A21811137 -:1043400004C08C2F0E94B3201DC081E090E01AC0F1 -:104350008C2F0E947C21811114C0C43179F048F463 -:10436000CB3079F0C03109F060C082E08093EA017F -:1043700008C0C93219F0C83321F057C01092EA01C1 -:1043800054C081E0817053C0C93289F118F5C4313D -:1043900071F1A8F4C73009F046C08AE08093150196 -:1043A00094E19093140193E0909313018093120190 -:1043B00088E08093110188E28093100134C0CE51CF -:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB -:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC -:1043E00013C0C13579F0C235F1F461E00DC08091A0 -:1043F000E901882319F01092E90115C081E080934A -:10440000EA0115C061E006C08091E9010E94ED1F3C -:104410000AC06AE08091E9010E94632004C0109202 -:10442000EA0180E004C081E002C080E0ABCFCF9120 -:104430000895E1E8F0E08081886080838081816078 -:1044400080838FB7F89493E09093890090ED9093D8 -:1044500088008FBF0895EFE6F0E08081826080835E -:104460000895EFE6F0E080818D7F80830895EFE688 -:10447000F0E0908182E08927808308951F920F9257 -:104480000FB60F9211242F933F934F935F936F9327 -:104490007F938F939F93AF93BF93EF93FF938091FD -:1044A000EB019091EC0101969093EC018093EB016C -:1044B000811103C082E00E94E308E091EC01E695DF -:1044C000E695F0E0EC54FB4FE4918091EB018E1304 -:1044D00003C080E00E94E308FF91EF91BF91AF918C -:1044E0009F918F917F916F915F914F913F912F910C -:1044F0000F900FBE0F901F90189504D06894B111C3 -:104500008DC0089570D088F09F5790F0B92F9927EB -:10451000B751A0F0D1F0660F771F881F991F1AF0CE -:10452000BA95C9F712C0B13081F077D0B1E00895E3 -:1045300074C0672F782F8827B85F39F0B93FCCF364 -:10454000869577956795B395D9F73EF490958095C4 -:10455000709561957F4F8F4F9F4F0895E89409C0E4 -:1045600097FB3EF490958095709561957F4F8F4FA6 -:104570009F4F9923A9F0F92F96E9BB279395F695BC -:10458000879577956795B795F111F8CFFAF4BB0F3A -:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E -:1045A000882311F096E911C0772321F09EE8872F28 -:1045B000762F05C0662371F096E8862F70E060E0E4 -:1045C0002AF09A95660F771F881FDAF7880F96955D -:1045D000879597F9089557FD9058440F551F59F046 -:1045E0005F3F71F04795880F97FB991F61F09F3FE0 -:1045F00079F087950895121613061406551FF2CF09 -:104600004695F1DF08C0161617061806991FF1CF58 -:1046100086957105610508940895E894BB2766277F -:104620007727CB0197F908950BD078C069D028F08F -:104630006ED018F0952309F05AC05FC01124EECF58 -:10464000CADFA0F3959FD1F3950F50E0551F629FED -:10465000F001729FBB27F00DB11D639FAA27F00DDB -:10466000B11DAA1F649F6627B00DA11D661F829F02 -:104670002227B00DA11D621F739FB00DA11D621FE7 -:10468000839FA00D611D221F749F3327A00D611D04 -:10469000231F849F600D211D822F762F6A2F1124E6 -:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39 -:1046B000BB1F661F771F881F91505040A9F79E3F70 -:1046C000510570F014C0AACF5F3FECF3983EDCF3C5 -:1046D000869577956795B795F795E7959F5FC1F7AD -:1046E000FE2B880F911D9695879597F9089597F958 -:1046F0009F6780E870E060E008959FEF80EC089588 -:1047000000240A94161617061806090608950024B0 -:104710000A9412161306140605060895092E03942A -:10472000000C11F4882352F0BB0F40F4BF2B11F49E -:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF -:10474000072E16F4009407D077FD09D00E94B923F4 -:1047500007FC05D03EF4909581959F4F0895709584 -:1047600061957F4F0895EE0FFF1F0590F491E02DA6 -:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8 -:10478000B70710F0A61BB70B881F991F5A95A9F7FA -:1047900080959095BC01CD010895F999FECF92BD09 -:1047A00081BDF89A992780B50895A8E1B0E042E06C -:1047B00050E00C94F523262FF999FECF92BD81BDD0 -:1047C000F89A019700B4021639F01FBA20BD0FB64F -:1047D000F894FA9AF99A0FBE08950196272F0E942D -:1047E000DC230C94DB23DC01CB01FC01F999FECF27 -:1047F00006C0F2BDE1BDF89A319600B40D92415069 -:0A4800005040B8F70895F894FFCF78 -:10480A000220E508730950091C09E8080101C701DB -:10481A0028080A03140A3F4D363975042804F2039E -:10482A00B9034C0365037E039703010203040506DB -:04483A000708090062 -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/erez_experimental/compiled.hex b/keyboards/ergodox_ez/keymaps/erez_experimental/compiled.hex deleted file mode 100644 index c709537d6..000000000 --- a/keyboards/ergodox_ez/keymaps/erez_experimental/compiled.hex +++ /dev/null @@ -1,1080 +0,0 @@ -:100000000C945D020C94A1020C94A1020C94A10228 -:100010000C94A1020C94A1020C94A1020C94A102D4 -:100020000C94A1020C94A1020C94DB0D0C94AD0E67 -:100030000C94EA1C0C94A1020C94A1020C94A10251 -:100040000C94A1020C94A1020C94A1020C94A102A4 -:100050000C94A1020C94511D0C94A1020C94A102C9 -:100060000C94A1020C94A1020C94A1020C94A10284 -:100070000C94A1020C94A1020C94A1020C94A10274 -:100080000C94A1020C94A1020C94A1020C94A10264 -:100090000C94A1020C94A1020C94A1020C94A10254 -:1000A0000C94A1020C94A1020C94A102120F340F23 -:1000B0001F10340F1F10760F990F1F10EE0F011035 -:1000C000CD12CD12FC12FC1243136513BD14BD14E6 -:1000D0007013BD1417141714AE14BD14BD14B71447 -:1000E0002414241424142414241424142414241450 -:1000F0002414241424142414241424142414241440 -:10010000361443144A1451145B140000F0A100C8C3 -:1001100001C82E004C002A003370354100001E003B -:10012000140004001D6134004D001F001A00160069 -:100130001B00E104147020000800070006005000B6 -:100140002C0021001500090019004F004A00220070 -:1001500017000A000500000065645000015300000C -:100160002F6F0000E3004F000153000030670000D4 -:10017000E20023001C000B00110000002961240094 -:1001800018000D64100052004B0025000C000E00FA -:10019000360051002800260012000F0037002F0003 -:1001A0002B41270013003342386130004E002D00F0 -:1001B0003100346834702D4100000100010001005D -:1001C0000100010000003A0001001E0023000100B0 -:1001D00001003B0001001F002400010001003C0061 -:1001E0000100200025004B0101003D00010021001D -:1001F00026004E0101003E00010022002700000001 -:1002000001000100010000000100000001000100E8 -:10021000010000000100000001003F000100240275 -:10022000310200000100400001002D021F02010008 -:100230000100410001002D002E00010001004200DC -:1002400001001300220201000100430001002E0200 -:10025000010001000100440045000100010001000F -:100260000000010001000100010001000000010088 -:1002700001004B00010001000100010001004A00E3 -:10028000010001000100010001004D00010001001A -:100290000100010001004E00010001000100010009 -:1002A0000100010001000000010001000100000048 -:1002B0000100000001000100010000000100000039 -:1002C0000100010001000100010000000100010027 -:1002D000010001000100A90001000100010001006E -:1002E000AC00AA00B600010001000100AB00A800AC -:1002F00001000100010001000100010001000100F6 -:100300000100AE000100010000001603450072006C -:1003100067006F0044006F007800200045005A001D -:10032000000016034500720067006F0044006F0074 -:100330007800200045005A00000004030904090267 -:100340006D00040100A0FA0904000001030101008E -:100350000921110100012240000705810308000A5C -:100360000904010001030102000921110100012219 -:100370004D000705820308000A090402000103007A -:10038000000009211101000122360007058303083E -:10039000000A090403000103000000092111010003 -:1003A0000122390007058403100001120110010029 -:1003B000000008EDFE07130100010200010501091C -:1003C00006A101050719E029E71500250195087523 -:1003D000018102050819012905950575019102950C -:1003E000017503910105071900297715002501956D -:1003F0007875018102C005010980A10185021601FD -:100400000026B7001A01002AB70075109501810077 -:10041000C0050C0901A1018503160100269C021AE2 -:1004200001002A9C02751095018100C00501090296 -:10043000A1010901A10005091901290515002501DE -:10044000950575018102950175038101050109304A -:1004500009311581257F95027508810609381581B6 -:10046000257F950175088106050C0A38021581253E -:100470007F950175088106C0C005010906A1010527 -:100480000719E029E71500250195087501810295F6 -:100490000175088101050819012905950575019166 -:1004A000029501750391010507190029FF15002622 -:1004B000FF00950675088100C00011241FBECFEF14 -:1004C000DAE0DEBFCDBF04B603FE24C08091F401A4 -:1004D0009091F501A091F601B091F7018730904B12 -:1004E000A740B04BB9F41092F4011092F5011092AC -:1004F000F6011092F70114BE84B7877F84BF88E1AC -:100500000FB6F89480936000109260000FBEE0E098 -:10051000FFE3099511E0A0E0B1E0E6E3F3E402C0F7 -:1005200005900D92AA32B107D9F711E0AAE2B1E025 -:1005300001C01D92A43FB107E1F70E94270B0C9464 -:1005400099210C9400001092B9008AE08093B800C1 -:10055000089594EA9093BC009091BC0097FFFCCF63 -:100560009091B900987F983021F0903111F081E09E -:1005700008958093BB0084E88093BC008091BC0008 -:1005800087FFFCCF8091B900887F883111F08034DB -:1005900071F780E0089584E98093BC008091BC00ED -:1005A00084FDFCCF08958093BB0084E88093BC0059 -:1005B0008091BC0087FFFCCF9091B900987F81E0CB -:1005C000983209F480E0089584E88093BC0080911B -:1005D000BC0087FFFCCF8091BB00089580B38C7076 -:1005E00080BB81B3836F81BB08958091010181112C -:1005F00015C080E40E94A9028093010181110CC002 -:1006000082E10E94D30280930101811105C08FEF26 -:100610000E94D302809301010E94CB0284B1807FAB -:1006200084B985B1807F85B98AB1837F8AB98BB15E -:10063000837F8BB93E98469808950E94BC048093AE -:1006400001010E94F5020E94EE02E9E3F1E0ABE253 -:10065000B1E011921D9281E0E734F807D1F70C94D4 -:10066000A6040E94BC04809301010E94F5020E942E -:10067000EE02E9E3F1E0ABE2B1E011921D9281E01C -:10068000E734F807D1F70895BF92CF92DF92EF9247 -:10069000FF920F931F93CF93DF93809101018823E3 -:1006A00079F080912A018F5F80932A01811108C01F -:1006B0000E94BC0480930101811102C00E944E047B -:1006C0000BE211E0C0E0D0E0DD24D39482E0C82E3C -:1006D000EE24E394F12CC73000F5809101018111E3 -:1006E00062C080E40E94A90280930101811112C0BE -:1006F00082E10E94D3028093010181110BC0C701E6 -:100700000C2E01C0880F0A94EAF780950E94D3024C -:10071000809301010E94CB0246C0CA30A1F028F4A8 -:10072000C83059F0C93061F005C0CC3089F070F0A4 -:10073000CD3089F0209A289810C0219A29980DC0B0 -:10074000229A2A980AC0239A2B9807C0529A01C06D -:10075000539A5B9802C03E9A4698E0EAEA95F1F710 -:100760008FB179995AC092E081708D25892B7C9B3D -:1007700002C090E001C094E0892B7D9B02C090E014 -:1007800001C098E0892B7E9B02C090E001C090E1FF -:10079000892B9FB19095991F9927991F9295990F31 -:1007A000907E892B0FC08091010181114BC080E4A4 -:1007B0000E94A90280930101882389F1B12C0E9433 -:1007C000CB028B2DF8019081981719F08083C0928D -:1007D00000010E94F50221960F5F1F4FCE30D10518 -:1007E00009F079CF80910001882371F181508093C5 -:1007F0000001882339F08FE99FE00197F1F700C0ED -:10080000000022C0A9E3B1E0EBE2F1E081918D9319 -:1008100091E0E933F907D1F717C090E0A5CF83E164 -:100820000E94D302809301018111C8CF81E40E940C -:10083000A902809301018111C1CF0E94E402B82E68 -:10084000B094BDCF80E0BECF0E944C0481E0DF9128 -:10085000CF911F910F91FF90EF90DF90CF90BF90BD -:100860000895E82FF0E0E75CFE4F80810895089539 -:100870001F93CF93DF93C9E3D1E010E0899190E01B -:100880000E944D1C180F81E0C734D807B9F7812F9B -:10089000DF91CF911F9108950C940F0556985E98A3 -:1008A00025982D9826982E9827982F988FEF90E0CE -:1008B000909389008093880090938B0080938A00A6 -:1008C00090938D0080938C00259A2D9A2FEF80E7CE -:1008D00092E0215080409040E1F700C00000269A4D -:1008E0002E9A2FEF80E792E0215080409040E1F770 -:1008F00000C00000279A2F9A2FEF80E792E0215046 -:1009000080409040E1F700C0000025982D982FEF1F -:1009100080E792E0215080409040E1F700C0000065 -:1009200026982E982FEF80E792E02150804090404B -:10093000E1F700C0000027982F9856985E982598F8 -:100940002D9826982E9827982F98089589EA8093B5 -:10095000800089E08093810024982C983F988AB188 -:100960008F748AB96E98479A8BB1806B8BB9769ADF -:100970000E944E040C940E0580E280930101809148 -:10098000470181110EC00E94A30281E080934701BC -:100990002FEF83ED90E3215080409040E1F700C0BD -:1009A000000080E40E94A9028093010181112EC001 -:1009B0000E94D30280930101811128C00E94D302BA -:1009C00080930101811122C08FE30E94D3028093A2 -:1009D000010181111BC00E94CB0280E40E94A90288 -:1009E00080930101811112C08CE00E94D302809398 -:1009F000010181110BC00E94D3028093010181117A -:100A000005C08FE30E94D302809301010E94CB02B4 -:100A100080910101089580E090E00895089560912B -:100A2000B4017091B5018091B6019091B7010E9417 -:100A3000591C56985E9825982D9826982E98279898 -:100A40002F98813029F0823029F4269A2E9A02C0FC -:100A5000259A2D9A80915401882309F450C08091E1 -:100A60005201909153010E94281D8D32914008F44B -:100A700046C0109254010E94870580914C019091CC -:100A80004D014A97C1F480914E0190914F01892BFD -:100A900091F48091500190915101892B61F482EE83 -:100AA0000E9479118DE30E9479118DE30E94361224 -:100AB00082EE0E94361280914C0190914D01429736 -:100AC000F1F480914E0190914F01892BC1F48091F6 -:100AD000500190915101892B91F480EE0E9479117F -:100AE00081EE0E94791182E10E94791182E10E94D7 -:100AF000361281EE0E94361280EE0C943612089562 -:100B000081E0089581E008950C9482050895089588 -:100B1000282F882339F090E02A3010F44D9608955C -:100B20000697089587E290E00895BF92CF92DF92F2 -:100B3000EF92FF920F931F93CF93DF938C01FC01F1 -:100B4000C081D181CE010E94561ABE010E94DD08EB -:100B5000EC01B8010E948405882309F4A3C1F801BF -:100B600082818823C9F18091540181111EC0C43152 -:100B7000F0E7DF0789F50E94860581E08093540144 -:100B80000E941C1D909353018093520110924B01BF -:100B900010924D0110924C0110924F0110924E0193 -:100BA00010925101109250017DC18091520190919B -:100BB00053010E94281D883C910570F480914B01DF -:100BC000E82FF0E0EE0FFF1FE45BFE4FD183C08300 -:100BD0008F5F80934B0166C1C13020E8D20708F4D3 -:100BE00051C0F8018281882309F44CC06E01E89459 -:100BF000D7F880914A01813079F050F08230C1F409 -:100C000082EE0E94791187E50E94791187E50EC076 -:100C100082EE0E9479110CC080EE0E94791181EE63 -:100C20000E94791188E10E94791188E10E943612B0 -:100C30008CE0E82EF12CC6010E2C02C0969587950B -:100C40000A94E2F78F700E948805B82E0E947911ED -:100C50008B2D0E943612F4E0EF1AF1082CEFE21609 -:100C60002FEFF20641F780914A01813029F010F010 -:100C7000823041F482EE04C080EE0E94361281EE92 -:100C80000E943612C43180E7D80760F4C23090E782 -:100C9000D90780F5C115E0E7DE0771F0C130D04714 -:100CA000F1F0EFC0C33320E7D20709F4BEC0C4336C -:100CB000D04709F4CEC0E5C0F8018281882309F449 -:100CC000E5C00E942915FFEF24E38CE0F15020409D -:100CD0008040E1F700C000000E94761DE3C0F801EB -:100CE0008281882309F4D2C08091D60181608093EB -:100CF000D601D8C0F8018281882309F4C7C00E94B8 -:100D0000D11D811102C00E94B71D0E94E41D90E018 -:100D10009093E6018093E501C230F0E7DF0721F40C -:100D20008091E50181607AC0C33020E7D20721F4C9 -:100D30008091E501826072C0C43080E7D80721F459 -:100D40008091E50184606AC0C53090E7D90719F445 -:100D50008091E50127C0C630E0E7DE0721F48091ED -:100D6000E50180615BC0C730F0E7DF0721F48091C7 -:100D7000E501806253C0C83020E7D20721F480919A -:100D8000E50180644BC0C93080E7D80721F4809129 -:100D9000E501806843C0CA3090E7D90729F4809103 -:100DA000E501846088603AC0CB30E0E7DE0721F4DB -:100DB0008091E5018E7F32C0CC30F0E7DF0721F46F -:100DC0008091E5018D7F2AC0CD3020E7D20721F444 -:100DD0008091E5018B7F22C0CE3080E7D80719F4DF -:100DE0008091E5011AC08091E501CF3090E7D907E5 -:100DF00011F48F7E13C0C031E0E7DE0711F48F7D60 -:100E00000DC0C131F0E7DF0711F48F7B07C0C2319D -:100E1000D04711F48F7702C08B7F877F8093E501E5 -:100E20008091E5010E94E81D3DC0F8018281882380 -:100E300021F01092480182E013C080914801811195 -:100E400006C086E20E94791186E20E94361282E094 -:100E500015C0F8018281882331F01092490180E2A7 -:100E60000E9485121FC080914901811106C087E24E -:100E70000E94791187E20E94361280E20E948C1251 -:100E800011C081E08093480180934901C801DF913E -:100E9000CF911F910F91FF90EF90DF90CF90BF9077 -:100EA0000C94800580E0DF91CF911F910F91FF900E -:100EB000EF90DF90CF90BF90089526E0729FF001F1 -:100EC000112444E5849FE00DF11D1124E60FF11D6E -:100ED000EE0FFF1FEE5EFE4F859194910E94EF088A -:100EE000811520E49207B0F5811540E3940708F0DE -:100EF000DDC0803E9105D8F4803C910508F06BC0C0 -:100F0000883A910578F4853A910508F06AC08130F5 -:100F1000910509F450C108F40DC18430910508F021 -:100F20004AC108C18B3B910508F466C003C18F3FDD -:100F3000910509F048F4803F910508F0ACC0883E67 -:100F4000910508F438C1F6C0811520E2920708F037 -:100F5000A4C00895811543E5940790F4811522E516 -:100F6000920708F0C7C0811541E5940708F0BDC09D -:100F7000811520E5920708F09CC09F70906A089543 -:100F8000811545E59407D0F4811524E5920708F012 -:100F9000C6C0282F2695269540E2249F9001112453 -:100FA000AC014370552781E090E002C0880F991F83 -:100FB0004A95E2F7822B932B9A680895811546E5AE -:100FC000940708F4B1C09C0130562115304108F057 -:100FD000B1C09F70ADC0FC01EE0FFF1FE657F0409F -:100FE00062C0853A910509F4A8C0863A910509F4D2 -:100FF000A7C083E890E40895883A910509F4A3C056 -:10100000893A910509F4A2C08A3A910509F4A1C070 -:101010008B3A910509F4A0C08C3A910509F49FC060 -:101020008D3A910509F49EC0803B910509F49DC05D -:101030008E3A910509F49CC08F3A910509F49BC042 -:10104000813B910509F49AC0823B910509F499C04E -:10105000833B910509F498C0843B910509F497C03E -:10106000853B910509F496C0863B910509F495C02E -:10107000873B910509F494C0883B910509F493C01E -:10108000893B910509F492C08A3B910509F091C012 -:101090008AE296E40895906508959F70880F991FDD -:1010A000865F9E4FFC018591949108959927906CDD -:1010B0000895482F437021E030E002C0220F331F13 -:1010C0004A95E2F73C68AC0164E0569547956A950D -:1010D000E1F74370342B8F708695869540E2849FAC -:1010E000C0011124822B932B0895982F8827816F9C -:1010F000906A0895282F2695269540E2249F900116 -:101100001124AC014370552781E090E002C0880FA4 -:10111000991F4A95E2F7822B932B9C680895982F8C -:101120008827846F906A08958F719927982F882750 -:101130009062089580E090E0089581E890E4089539 -:1011400082E890E4089582EE94E4089589EE94E4B0 -:1011500008958AEE94E4089585EB94E4089586EB6F -:1011600094E4089587EB94E408958CEC94E4089556 -:101170008DEC94E4089583E895E408958AE895E475 -:10118000089582E995E4089584E995E4089581E25B -:1011900096E4089583E296E4089584E296E408953F -:1011A00085E296E4089586E296E4089587E296E45F -:1011B000089580E094E40895089596E0799FF00101 -:1011C000112494E5899FE00DF11D1124E60FF11D16 -:1011D000EE0FFF1FEE5EFE4F8591949108958238C9 -:1011E000910549F1B0F48133910509F459C048F4EF -:1011F0008932910509F44FC08A32910509F455C02E -:1012000008958533910509F441C08933910599F01A -:101210000895833E910531F138F4803E910591F0B7 -:10122000823E9105A9F00895863E910501F1873E21 -:10123000910539F108952091E50120FD3BC021FD84 -:1012400039C008958091E50180FF34C089E341C031 -:101250008091E50182FF32C08091E50184FF2CC0BE -:1012600080E037C08091E50182FD28C0F5CF8091F4 -:10127000E50183FF25C08091E50184FDF1CF87EE74 -:1012800028C08091E50183FD1BC0F5CF8091E50169 -:1012900085FF18C019C08091E50185FF15C012C0F7 -:1012A0008091E50186FF12C013C08091E50186FFA1 -:1012B0000FC00CC080EE0DC083EE0BC082EE09C0E3 -:1012C00086EE07C085E305C089E203C081E301C063 -:1012D0008AE290E0089508950C946B09809165016D -:1012E0000895CF93DF9300D01F92CDB7DEB7209142 -:1012F000EB01243019F523E029839B838A83209313 -:10130000E9008FEF9091E800815095FD06C095EDC2 -:101310009A95F1F700008111F5CF8091E80085FFE3 -:101320000DC040E050E063E070E0CE0101960E9405 -:10133000CE0B8091E8008E778093E8000F900F909D -:101340000F90DF91CF910895CF93DF9300D01F923C -:10135000CDB7DEB72091EB01243021F522E02983BF -:101360009B838A8383E08093E9008FEF9091E8006C -:10137000815095FD06C095ED9A95F1F70000811119 -:10138000F5CF8091E80085FF0DC040E050E063E0BC -:1013900070E0CE0101960E94CE0B8091E8008E771E -:1013A0008093E8000F900F900F90DF91CF910895F8 -:1013B0002091EB012430F1F422E02093E9002FEF9B -:1013C0003091E800215035FD06C035ED3A95F1F732 -:1013D00000002111F5CF2091E80025FF0BC040E06F -:1013E00050E065E070E00E94CE0B8091E8008E77BF -:1013F0008093E8000895CF93DF93EC018091EB0197 -:10140000843009F046C090910C019923D9F0909155 -:101410000D019923B9F08093E9008FEF9091E800D6 -:10142000815095FD06C095E19A95F1F70000811174 -:10143000F5CF8091E80085FF2CC040E050E060E1EE -:1014400070E017C081E08093E9008FEF9091E80091 -:10145000815095FD06C095ED9A95F1F70000811138 -:10146000F5CF8091E80085FF14C040E050E068E0CF -:1014700070E0CE010E94CE0B8091E8008E778093C1 -:10148000E80080E1FE01A5E5B1E001900D928A95AA -:10149000E1F7DF91CF9108958091EA01811109C0B0 -:1014A0000E94600D0E94BD0D8091E20084608093D7 -:1014B000E20008951092EA010895089508950C94A9 -:1014C000E41C42E061EC81E00E94DA0C42E061EC55 -:1014D00082E00E94DA0C42E061EC83E00E94DA0CC8 -:1014E00042E161EC84E00C94DA0C8091ED018330F0 -:1014F00009F455C030F4813071F0823009F48EC0A7 -:1015000008958A3009F47AC08B3009F460C08930BC -:1015100009F09CC020C08091EC01813A09F096C08E -:101520008091E800877F8093E8008091F00190919E -:10153000F101892B21F060E080E090E003C060E1E0 -:1015400085E591E070E00E94170C8091E8008B77B0 -:101550008093E80008958091EC01813209F076C013 -:101560008091F0019091F101009719F0039709F033 -:101570006DC08091E800877F8093E8008091E8004B -:1015800082FD05C08091EB018111F8CF5FC0809191 -:10159000F100809365018091E8008B7753C08091C2 -:1015A000EC01813A09F052C08091F0019091F10173 -:1015B000892B09F04BC08091E800877F8093E80079 -:1015C0008091E80080FFFCCF80910C0136C08091B3 -:1015D000EC018132D9F58091F0019091F101892BD4 -:1015E000A9F58091E800877F8093E8000E940F0DA5 -:1015F0008091EE0180930C010C9429158091EC01EF -:10160000813221F58091E800877F8093E8000E9475 -:101610000F0D8091EF018093660108958091EC0198 -:10162000813AA1F48091E800877F8093E80080915F -:10163000E80080FFFCCF809166018093F1008091EB -:10164000E8008E778093E8000C940F0D089584B71E -:10165000877F84BF88E10FB6F89480936000109272 -:1016600060000FBE80E880936100109261000E94CC -:10167000A9100E94600D0E94BD0D8091E20084605F -:101680008093E20078940E9438100E94AB1082E0B0 -:1016900091E00E9455108091EB01853069F40E9421 -:1016A000AC1C8091E9018823B1F30E94D61C8823E9 -:1016B00091F30E94B80BEFCF0E94B110ECCF292F0D -:1016C000332723303105A9F06CF42130310509F4BA -:1016D00042C02230310509F043C08DE690E02EE390 -:1016E00033E042C021323105C9F02232310519F10F -:1016F00037C099278130910541F08230910541F042 -:10170000892B71F5EAE3F3E005C0E2E2F3E002C001 -:10171000EAE0F3E0849190E09F0126C0643000F598 -:10172000E62FF0E0EE0FFF1FEE5DFE4F20813181CE -:1017300089E090E019C0643098F4E62FF0E0DF0112 -:10174000AA0FBB1FA65EBE4F2D913C91EA5EFE4FD5 -:10175000808190E009C082E190E02BEA33E004C090 -:1017600080E090E020E030E0FA01318320830895AA -:1017700080E189BD82E189BD09B400FEFDCF809181 -:10178000D8008F7D8093D8008091E00082608093A4 -:10179000E0008091E00081FDFCCF0895CF92DF92C0 -:1017A000EF92FF920F931F93CF93DF937C018B01F6 -:1017B000EA010E94300D811131C0209731F08881FB -:1017C0009981081B190BE80EF91EC12CD12C0115AB -:1017D000110519F18091E80085FD14C08091E800A1 -:1017E0008E778093E800209741F0888199818C0D55 -:1017F0009D1D9983888385E011C00E94300D882348 -:1018000031F30CC0F70181917F018093F100015009 -:101810001109FFEFCF1ADF0ADACF80E0DF91CF9115 -:101820001F910F91FF90EF90DF90CF90089520913E -:10183000F2013091F3012617370748F06115710561 -:1018400039F42091E8002E772093E80001C0B90117 -:10185000FC0120E061157105B9F18091EB0188234D -:1018600009F440C0853009F43FC08091E80083FD51 -:101870003DC08091E80082FF06C08091E80082FFB1 -:1018800026C080E008958091E80080FFE3CF20919A -:10189000F3008091F20090E0922B6115710551F0F8 -:1018A0008830910538F421912093F100615071093D -:1018B0000196F3CF21E0089709F020E08091E8003D -:1018C0008E778093E800C6CF2111C7CFD6CF809105 -:1018D000EB01882339F0853039F08091E80083FFEF -:1018E000CCCF04C082E0089583E0089581E008959C -:1018F0002091F2013091F3012617370748F0611566 -:10190000710539F42091E8002E772093E80001C09A -:10191000B901FC0120E061157105C1F18091EB0175 -:10192000882309F441C0853009F440C08091E80063 -:1019300083FD3EC08091E80082FF06C08091E800F0 -:1019400082FF27C080E008958091E80080FFE3CF08 -:101950002091F3008091F20090E0922B61157105C7 -:1019600059F08830910540F424912093F10031968C -:10197000615071090196F2CF21E0089709F020E04B -:101980008091E8008E778093E800C5CF2111C6CF03 -:10199000D5CF8091EB01882339F0853039F08091E3 -:1019A000E80083FFCBCF04C082E0089583E0089570 -:1019B00081E00895982F973058F59093E900981793 -:1019C00039F07091EC002091ED005091F00003C0CF -:1019D000242F762F50E021FF19C03091EB003E7F7D -:1019E0003093EB003091ED003D7F3093ED0030916E -:1019F000EB0031603093EB007093EC002093ED002E -:101A00005093F0002091EE0027FF07C09F5FD3CFD7 -:101A10008F708093E90081E0089580E008958091BF -:101A2000EC0187FD05C08091E80080FF0EC012C068 -:101A30008091E80082FD05C08091EB018111F8CF13 -:101A400008958091E8008B7708C08091EB018111A7 -:101A5000EACF08958091E8008E778093E80008959A -:101A60008091E4009091E50045E62091EC0020FF94 -:101A700021C02091E80020FD21C02091EB0122230C -:101A800089F0253089F02091EB0025FD0FC02091D1 -:101A9000E4003091E5002817390739F3415041F04F -:101AA000C901E3CF82E0089583E0089581E00895BD -:101AB00084E008952091E80022FFDFCF80E00895C0 -:101AC0000E94CE0D0E94D60DE0EEF0E08081816094 -:101AD0008083E8EDF0E080818F77808319BCA7EDEB -:101AE000B0E08C918E7F8C9380818F7E808310926A -:101AF000EA0108950F931F93CF93DF930E94CE0DB9 -:101B00000E94D60DC8EDD0E088818F7788838881C8 -:101B10008068888388818F7D888319BC1092EB014F -:101B20001092E7011092E9011092E80100EE10E036 -:101B3000F80180818B7F808388818160888342E087 -:101B400060E080E00E94DA0CE1EEF0E080818E7FC0 -:101B50008083E2EEF0E08081816080838081886014 -:101B60008083F80180818E7F808388818061888373 -:101B7000DF91CF911F910F910895E8EDF0E0808102 -:101B80008F7E8083E7EDF0E080818160808384E058 -:101B900082BF81E08093EA010C947A0DE8EDF0E0D9 -:101BA00080818E7F80831092E20008951092DA0087 -:101BB0001092E10008951F920F920FB60F92112418 -:101BC0002F933F934F935F936F937F938F939F9345 -:101BD000AF93BF93EF93FF938091E10082FF0BC01F -:101BE0008091E20082FF07C08091E1008B7F8093AB -:101BF000E1000E9437108091DA0080FF1FC08091C1 -:101C0000D80080FF1BC08091DA008E7F8093DA00BD -:101C10008091D90080FF0DC080E189BD82E189BD3E -:101C200009B400FEFDCF81E08093EB010E944C0AD5 -:101C300005C019BC1092EB010E945A0A8091E10084 -:101C400080FF19C08091E20080FF15C08091E20002 -:101C50008E7F8093E2008091E20080618093E200B9 -:101C60008091D80080628093D80019BC85E0809371 -:101C7000EB010E945E0A8091E10084FF30C08091F8 -:101C8000E20084FF2CC080E189BD82E189BD09B4F6 -:101C900000FEFDCF8091D8008F7D8093D800809189 -:101CA000E1008F7E8093E1008091E2008F7E80933F -:101CB000E2008091E20081608093E2008091E70180 -:101CC000882311F084E007C08091E30087FF02C001 -:101CD00083E001C081E08093EB010E945F0A809164 -:101CE000E10083FF29C08091E20083FF25C080913D -:101CF000E100877F8093E10082E08093EB01109206 -:101D0000E7018091E1008E7F8093E1008091E20005 -:101D10008E7F8093E2008091E20080618093E200F8 -:101D200042E060E080E00E94DA0C8091F000886080 -:101D30008093F0000E945D0AFF91EF91BF91AF91F7 -:101D40009F918F917F916F915F914F913F912F91D3 -:101D50000F900FBE0F901F9018951F920F920FB605 -:101D60000F9211242F933F934F935F936F937F9321 -:101D70008F939F93AF93BF93CF93EF93FF93C091B4 -:101D8000E900CF708091EC001092E9008091F000A2 -:101D9000877F8093F00078940E94E90E1092E9000A -:101DA0008091F00088608093F000C093E900FF917B -:101DB000EF91CF91BF91AF919F918F917F916F9153 -:101DC0005F914F913F912F910F900FBE0F901F90F9 -:101DD00018951F93CF93DF93CDB7DEB7AA970FB6B1 -:101DE000F894DEBF0FBECDBFECEEF1E08091F100C4 -:101DF000819321E0E43FF207C9F70E94750A8091C0 -:101E0000E80083FF1CC12091EC013091ED01832F8C -:101E100090E08A30910508F012C1FC01EA5AFF4FA8 -:101E20000C944921203881F0223809F008C18091B2 -:101E3000F0018F708093E9008091EB0085FB88278B -:101E400080F91092E90006C08091E8019091E901C3 -:101E5000911182609091E800977F9093E8008093C1 -:101E6000F1001092F100C5C0822F8D7F09F0E7C00C -:101E7000222319F0223061F0E2C08091EE0181301E -:101E800009F0DDC0333009F080E08093E90128C01B -:101E90008091EE01811124C02091F0012F7009F48E -:101EA000CEC02093E9008091EB0080FF19C08091A3 -:101EB000EB00333011F4806211C080618093EB003D -:101EC00081E090E0022E01C0880F0A94EAF7809327 -:101ED000EA001092EA008091EB0088608093EB00AA -:101EE0001092E9008091E800877F86C02111A7C089 -:101EF0001091EE011F778091E3008078812B809311 -:101F0000E3008091E800877F8093E8000E940F0D36 -:101F10008091E80080FFFCCF8091E300806880938F -:101F2000E300112311F083E001C082E08093EB0114 -:101F300086C02058223008F082C08091EE01909136 -:101F4000EF018C3D23E0920779F583E08A838AE2F2 -:101F500089834FB7F894DE01139620E03EE051E20A -:101F6000E32FF0E050935700E49120FF03C0E29587 -:101F7000EF703F5FEF708E2F90E0EA3010F0C79661 -:101F800001C0C0968D939D932F5F243149F74FBFB9 -:101F90008091E800877F8093E8006AE270E0CE01DC -:101FA00001960E94170C14C0AE014F5F5F4F609105 -:101FB000F0010E945F0B009709F441C02091E800F6 -:101FC000277F2093E800BC0189819A810E94780CC8 -:101FD0008091E8008B778093E80031C0203879F554 -:101FE0008091E800877F8093E8008091E7018093EB -:101FF000F1008091E8008E778093E8000E940F0D39 -:102000001EC021111CC09091EE019230C0F480914D -:10201000E800877F8093E8009093E7010E940F0D0E -:102020008091E701811104C08091E30087FF02C025 -:1020300084E001C081E08093EB010E94610A8091FD -:10204000E80083FF0AC08091E800877F8093E80062 -:102050008091EB0080628093EB00AA960FB6F89413 -:10206000DEBF0FBECDBFDF91CF911F9108950895C0 -:10207000CF938091EB018823B1F08091E9008F70BC -:102080009091EC0090FF02C090E801C090E0C92F51 -:10209000C82B1092E9008091E80083FD0E94E90EB0 -:1020A000CF70C093E900CF91089590936C01809315 -:1020B0006B010895E0916B01F0916C01309721F074 -:1020C0000190F081E02D099480E00895E0916B018A -:1020D000F0916C01309721F00280F381E02D09949A -:1020E0000895E0916B01F0916C01309721F004802C -:1020F000F581E02D099408952091690130916A01DC -:102100008217930771F090936A0180936901E091BF -:102110006B01F0916C01309721F00680F781E02D82 -:1021200009940895209167013091680182179307FF -:1021300071F09093680180936701E0916B01F091D9 -:102140006C01309721F00084F185E02D0994089509 -:1021500008950C94A8100E94131D0E941D030C9456 -:10216000991D9F92AF92BF92CF92DF92EF92FF9212 -:102170000F931F93CF93DF9300D000D000D0CDB743 -:10218000DEB70E9444038CE7E82E81E0F82E0DE0D4 -:1021900010E0CC24C394D12C902E802F0E943104C7 -:1021A000F701B2907F01B826A1F401501109A0F700 -:1021B0008FEF89838A831B820E941C1D8160782F88 -:1021C0009D838C8349815A816B818D810E944B1143 -:1021D00031C09091D60191FF04C08E830E943704D4 -:1021E0008E8125E030E0A601022E01C0440F0A9442 -:1021F000EAF7A42E4B21D1F029839A828A2191E01B -:1022000009F490E09B830E941C1D8160782F9D83C0 -:102210008C8349815A816B818D810E944B11F80119 -:10222000E259FE4F80818A25808304C02150310904 -:10223000D0F6BBCF0E94661F10916D010E945A100C -:102240001817B9F00E945A1080936D0126960FB6A8 -:10225000F894DEBF0FBECDBFDF91CF911F910F91DC -:10226000FF90EF90DF90CF90BF90AF909F900C9435 -:102270006C0926960FB6F894DEBF0FBECDBFDF9176 -:10228000CF911F910F91FF90EF90DF90CF90BF9073 -:10229000AF909F900895CF93DF93CDB7DEB72B9784 -:1022A0000FB6F894DEBF0FBECDBF4F835887698746 -:1022B0007A878B87DE01119686E0FD0111928A955F -:1022C000E9F785E0FE01379601900D928A95E1F7D6 -:1022D00049815A816B817C818D819E810E94F91791 -:1022E0002B960FB6F894DEBF0FBECDBFDF91CF9116 -:1022F0000895882309F4B9C0823859F40E945A100D -:1023000081FDB3C089E30E94401B0E94171C89E332 -:102310000CC0833871F40E945A1080FDA6C083E57A -:102320000E94401B0E94171C83E50E94801B0C9496 -:10233000171C843859F40E945A1082FD96C087E415 -:102340000E94401B0E94171C87E4EFCF9CEF980F60 -:10235000913A18F40E94401BEACF90E2980F98300F -:1023600050F4877091E001C0990F8A95EAF7892FA0 -:102370000E94C41BDCCF9BE5980F933070F4853A24 -:1023800029F0863A31F482E890E005C081E890E0D7 -:1023900002C083E890E00C947C1098E5980F93318C -:1023A00008F063C0883A39F1893A41F18A3A49F133 -:1023B0008B3A51F18C3A59F18D3A61F1803B69F1D8 -:1023C0008E3A71F18F3A79F1813B81F1823B89F14B -:1023D000833B91F1843B99F1853BA1F1863BA9F1C7 -:1023E000873BB1F1883BB9F1893BC1F18A3BC9F523 -:1023F0008AE292E038C082EE90E035C089EE90E04B -:1024000032C08AEE90E02FC085EB90E02CC086EBC6 -:1024100090E029C087EB90E026C08CEC90E023C0D0 -:102420008DEC90E020C083E891E01DC08AE891E047 -:102430001AC082E991E017C084E991E014C081E2FA -:1024400092E011C083E292E00EC084E292E00BC001 -:1024500085E292E008C086E292E005C087E292E061 -:1024600002C080E090E00C9492100895882309F453 -:102470004BC0823859F40E945A1081FF45C089E34D -:102480000E94401B0E94171C89E30CC0833871F422 -:102490000E945A1080FF38C083E50E94401B0E94B2 -:1024A000171C83E50E94801B0C94171C843859F478 -:1024B0000E945A1082FF28C087E40E94401B0E949D -:1024C000171C87E4EFCF9CEF980F913A58F390E2F6 -:1024D000980F983050F4877091E001C0990F8A9559 -:1024E000EAF7892F0E94CA1BDFCF9BE5980F933034 -:1024F00020F480E090E00C947C10885A833120F422 -:1025000080E090E00C9492100895882321F00E94BE -:10251000C41B0C94171C0895882321F00E94CA1B29 -:102520000C94171C08958F929F92AF92BF92CF92F6 -:10253000DF92EF92FF920F931F93CF93DF934C01A3 -:10254000A62EC72FFC01E280D581D295DF700E94B4 -:10255000DB1A882319F082E00E941E1BE1100E9402 -:10256000E11B0E94391B882379F0EE2069F080E29C -:102570008A0D883048F082E00E941E1B0E94391BA1 -:10258000BB24B394B82601C0B12CEC2FE295EF70B8 -:10259000F0E0E05AFF4F0C9449218C2F807F1C2FD4 -:1025A0001F70882311F01295107FEE2089F01123FF -:1025B00009F4C9C180E28A0D883020F4812F0E947D -:1025C000C41B03C0812F0E94D41B0E94171CBBC1D7 -:1025D0008A2D0E943612112309F4CFC180E28A0DA0 -:1025E000883020F4812F0E94CA1B03C0812F0E94D3 -:1025F000DA1B0E94171CC1C18C2F807F1C2F1F70FB -:10260000803211F01295107FAA2021F0F1E0AF1670 -:1026100039F12FC0EE2091F0DD2309F41DC1D13036 -:1026200021F4812F0E94F41BA8C1D23009F014C1FB -:102630000E94FD1B812F0E94A81A0EC1DD2369F0A4 -:10264000D13041F40E94C11B812309F496C10E943C -:10265000AB1A03C0D23009F490C10E94FD1B02C125 -:10266000EE2021F0D23008F088C1F6C0D11185C12A -:10267000F9C0EE2021F0DD2309F4EEC064C1DD23B2 -:1026800009F4F0C067C12C2F26952695237030E001 -:102690002115310521F02130310561F06EC1EE20A8 -:1026A00021F08A2D9C2F937002C080E090E00E9460 -:1026B0007C1063C1EE2021F08A2D9C2F937002C004 -:1026C00080E090E00E94921058C18A2DEE2019F00F -:1026D0000E946E1E02C00E94D61E0E945B1F4DC14A -:1026E0008C2F837009F04EC0E11047C12A2D22952E -:1026F00026952770220F220F8A2D8F70C82ED12C7D -:10270000E12CF12C022E04C0CC0CDD1CEE1CFF1CB5 -:102710000A94D2F7A4FE10C06FE070E080E090E071 -:1027200004C0660F771F881F991F2A95D2F76095FE -:1027300070958095909503C060E070E0CB012C2FE0 -:1027400026952695237030E02230310569F023303C -:10275000310589F06C297D298E299F292130310589 -:1027600071F00E944D1909C16C297D298E299F297C -:102770000E94671902C10E944D19C701B6010E944B -:102780003319FBC0EE2019F08C2F817001C08695A3 -:10279000882309F4F2C02A2D229526952770220F4E -:1027A000220F8A2D8F70C82ED12CE12CF12C022EF5 -:1027B00004C0CC0CDD1CEE1CFF1C0A94D2F7A4FE56 -:1027C00010C06FE070E080E090E004C0660F771FFB -:1027D000881F991F2A95D2F76095709580959095DE -:1027E00003C060E070E0CB012C2F26952695237066 -:1027F00030E02230310569F02330310589F06C2951 -:102800007D298E299F292130310571F00E94211ADE -:10281000B4C06C297D298E299F290E943B1AADC026 -:102820000E94211AC701B6010E94071AA6C00A2DEC -:1028300010E0F801E05EF109E531F10508F07EC035 -:10284000E059FF4F0C9449211A2D1F708C2F8F7166 -:10285000EE2031F00E94A019812F0E9485128DC0B8 -:102860000E94C119812F0E948C1287C0EE2039F07E -:10287000D11183C08C2F8F710E94E6197EC0D23097 -:1028800008F07BC0F7CFEE2039F08C2F8F710E94BB -:10289000A01973C0EE20C9F38C2F8F710E94C1194B -:1028A0006CC0EE2029F08C2F8F710E948B1965C0AF -:1028B0000E94811962C0EE20B9F00E94A51A0E9400 -:1028C000CA1B0E94D71A843029F40E94171B8C2F30 -:1028D0008F7164C0D23008F06FC0CF718C2F0E940E -:1028E000A01963E08C2F0DC00E94A51A0E94C41B82 -:1028F000D230A8F00E94171B0E94AB1A64E08C2F04 -:102900008F71DF91CF911F910F91FF90EF90DF902A -:10291000CF90BF90AF909F908F900C94071B81E059 -:10292000DF91CF911F910F91FF90EF90DF90CF90AB -:10293000BF90AF909F908F900C941E1BEE2039F0AB -:10294000DD2309F4A2CF8A2D0E94791116C0DD2360 -:1029500009F4A2CF8A2D0E9436120FC04C2F4F705F -:102960006A2DC4010E940B050E94A61806C04C2FB8 -:102970004F706A2DC4010E94DC08BB20E9F00E9460 -:10298000D71A80FD19C0F40112820E94D11A0E9448 -:10299000A019C4010E94E9140E94D11ADF91CF91BD -:1029A0001F910F91FF90EF90DF90CF90BF90AF906D -:1029B0009F908F900C94C119DF91CF911F910F912F -:1029C000FF90EF90DF90CF90BF90AF909F908F904F -:1029D00008950F931F93CF93DF93EC0128813981E2 -:1029E0008B819C81892B31F03F3F11F080E003C047 -:1029F0002F3FE1F781E0811113C0CE010E949505C0 -:102A0000882371F0688179818A810E94A11A8C01E2 -:102A10000E94551A0E942819B801CE010E949312F3 -:102A2000DF91CF911F910F9108950E94E11B0E94A9 -:102A3000F11B0E94B31B0E94171C0E9407200E94DA -:102A40005B1F80E090E00E947C1080E090E00C949E -:102A500092100E94D11B0C9415150E94961A292FD2 -:102A600022952F7030E02C3031054CF42A3031059E -:102A70006CF42250310922303105B0F407C02C30FB -:102A8000310571F02F30310559F00EC0803F31F023 -:102A900018F4803E48F402C0843F31F481E0089588 -:102AA00093FB882780F9089580E00895CF93DF9302 -:102AB00000D000D01F92CDB7DEB70F900F900F90CF -:102AC0000F900F90DF91CF910895CF93DF9300D0B7 -:102AD00000D000D0CDB7DEB726960FB6F894DEBF93 -:102AE0000FBECDBFDF91CF9108951F93CF93DF939A -:102AF000C0917C0116E080917D01C81799F0D0E06B -:102B00001C9FF0011D9FF00D1124E258FE4F4081E3 -:102B1000518162817381848195810E94651521961E -:102B2000C770E9CFDF91CF911F9108954091AE0119 -:102B30005091AF016091B0017091B1018091B201EB -:102B40009091B3010C946515CF938091B301829558 -:102B50008F7009F05FC08091B001882309F45AC0DA -:102B600020917C01A0917D016091AE017091AF0137 -:102B70008091B1019091B20131E06F3F09F030E0F6 -:102B8000B32FC6E02A1709F445C0009721F07F3F14 -:102B900021F44B2F03C041E001C040E030E040FD94 -:102BA00035C0C29FF001C39FF00D1124E258FE4FC3 -:102BB000418174132BC04081641328C042814111AC -:102BC00025C0438154814817590710F441505109D9 -:102BD000481B590B483C5105C8F48091B3018F70D4 -:102BE00080618093B30186E0829FF001839FF00DA6 -:102BF0001124ED57FE4F80818F70806180838EEAB3 -:102C000091E00E94E914CF910C9475152F5F3F4F0E -:102C10002770B8CFCF910895CF92DF92EF92FF92B5 -:102C20000F931F93CF93DF93CDB7DEB762970FB6A5 -:102C3000F894DEBF0FBECDBF8C0185E0F801DE0148 -:102C40001D9601900D928A95E1F7D8014C9111964D -:102C50005C91119712966C9112971396ED90FC90DF -:102C600014977091AE01E091AF012091B1013091C4 -:102C7000B2012115310531F0EF3F31F481E07F3FA2 -:102C800019F403C081E001C080E0B82FB170CB2EF1 -:102C900080FD6CC1D090B001DD2009F4F5C0F09149 -:102CA000B301E216F30638F0C701821B930B883C90 -:102CB000910548F09BC0209530952E0D3F1D283C76 -:102CC000310508F093C08F2F807F09F052C0E513C3 -:102CD00014C0741312C0D62E61110FC0FF70F061C2 -:102CE000F093B3010E9496158EEA91E00E94E914D8 -:102CF0008091B301F80185836CC1EF2831F05F3F0B -:102D000031F481E04F3F19F403C081E001C080E05D -:102D100080FD03C081E0862701C080E0F82FF170BC -:102D2000FF2E80FF1CC080917C0120917D0136E048 -:102D3000821709F428C190E0389FF001399FF00D07 -:102D40001124E258FE4F7181571306C0708147135A -:102D500003C07281671303C001968770E9CFD62E36 -:102D6000662309F436C18091B30181608093B30179 -:102D700053C0E51308C0741306C0611104C0D80124 -:102D80001596FC93AEC04D875E878D859E856A8BB8 -:102D90000E942D156A89882329F1D62E662311F108 -:102DA0002091B301822F82958F7090E002970CF4EE -:102DB00060C08091AE019091AF0198878F83198692 -:102DC000FB86EA862C87CE01079651C0E51731F1C4 -:102DD0004D875E878D859E856A8B0E942D156A8939 -:102DE00081112EC0C8010E94E914A4C08F2F807FDA -:102DF00069F77E2DF98AE88A89890E9456158EEA3C -:102E000091E00E94E914EEEAF1E086E0DF011D9214 -:102E10008A95E9F70E949615D12CDBC07413D8CFA0 -:102E20006111D6CFD8011596FC93C8010E94E91410 -:102E3000EEEAF1E086E0DF011D928A95E9F7C9C06C -:102E4000D62E662379F22091B301822F82958F705E -:102E500090E0029774F08091AE019091AF019A8357 -:102E600089831B82FD82EC822E83CE0101960E9413 -:102E7000E91486E0F801AEEAB1E001900D928A957E -:102E8000E1F70E94A4156FC0E216F30628F0C7010F -:102E9000821B930B9C0104C0209530952E0D3F1D85 -:102EA000283C310508F052C0D62E662309F49ACF8B -:102EB000E5132CC074132AC08091B30180FD1DC09E -:102EC000982F92959F70C9F0D80115968C931597FD -:102ED0009F3039F09F5F9295907F8F70892B159668 -:102EE0008C93C8010E94E91486E0F801AEEAB1E0D3 -:102EF00001900D928A95E1F736C086E0F801AEEABE -:102F0000B1E001900D928A95E1F763C04D875E872D -:102F10008D859E850E942D15882379F086E0F80125 -:102F2000AEEAB1E001900D928A95E1F70E94A415F6 -:102F30000E949615DD24D3944CC08091B30181602A -:102F40008093B301C8010E94E91443C07E2DF98A21 -:102F5000E88A89890E945615EEEAF1E086E0DF01F1 -:102F60001D928A95E9F70E94961533C0662309F4ED -:102F700039CF4D875E878D859E850E942D158823CC -:102F800009F430CFCBCF4D875E878D859E850E941B -:102F9000961A292F22952F7030E0223031052CF41B -:102FA0009F7041F0811106C00CC0243031052CF413 -:102FB0009F7049F4805E883020F0C8010E94E914B7 -:102FC000CF2CDC2C06C0D80115969C91907F91F7F0 -:102FD000F8CF8D2D62960FB6F894DEBF0FBECDBF31 -:102FE000DF91CF911F910F91FF90EF90DF90CF90E5 -:102FF00008951F93CF93DF93CDB7DEB72C970FB60D -:10300000F894DEBF0FBECDBF4F83588769877A879C -:103010008B879C87CE0107960E940C168823C1F0EF -:103020002F8138858A859B85892B31F03F3F11F0B0 -:1030300080E003C02F3FE1F781E0811147C04F815D -:10304000588569857A858B859C850E9465153EC06B -:1030500086E0FE013796DE01119601900D928A9569 -:10306000E1F7FF81E8854A855B854115510531F01F -:10307000EF3F31F481E0FF3F19F403C081E001C06C -:1030800080E080FD23C020917D0130E0C9010196E0 -:103090008770992760917C0170E086179707F1F19E -:1030A000F983EA835D834C8396E0929FD001939FDE -:1030B000B00D1124A258BE4FFE01319601900D9221 -:1030C0009A95E1F780937D010E94751516E0809135 -:1030D0007C0190917D01891779F1189FC00111241D -:1030E00082589E4F0E940C16882331F1E0917C019A -:1030F0001E9FF0011124E258FE4F408151816281F0 -:103100007381848195810E94651580917C0190E096 -:1031100001968770992780937C01D9CF0E94291549 -:1031200010927D0110927C01EEEAF1E086E0DF0171 -:103130001D928A95E9F7CACF2C960FB6F894DEBF98 -:103140000FBECDBFDF91CF911F910895EF92FF92F7 -:103150000F931F93CF93DF939C01009709F471C0E5 -:10316000F12CEE24E394E9012196F901849184374E -:1031700040F4843008F056C0813081F0823021F173 -:1031800060C0853709F449C0C0F19CE7980F9037BB -:1031900008F057C08F770E94361246C089010E5F33 -:1031A0001F4FFE01849190E2980F983050F4877081 -:1031B000FE2D01C0FF0F8A95EAF78F2F0E94E41BB6 -:1031C00015C00E94791114C089010E5F1F4FFE01C6 -:1031D000849190E2980F983068F48770FE2D01C0BA -:1031E000FF0F8A95EAF78F2F0E94EA1B0E94171C97 -:1031F000E8011AC00E943612FBCF2E5F3F4FFE013E -:10320000C491CC2341F08FE99FE00197F1F700C012 -:103210000000C150F6CFE90107C0FE01F490E901BA -:10322000229602C00E9479118F2D882341F0EFE988 -:10323000FFE03197F1F700C000008150F6CF9E010A -:1032400092CFDF91CF911F910F91FF90EF90089552 -:1032500008956093B8017093B9018093BA01909377 -:10326000BB010C9415150F931F930091B801109199 -:10327000B9012091BA013091BB01062B172B282BE5 -:10328000392B0093B8011093B9012093BA01309300 -:10329000BB011F910F910C9415150F931F93009173 -:1032A000B8011091B9012091BA013091BB010623F8 -:1032B0001723282339230093B8011093B9012093D1 -:1032C000BA013093BB011F910F910C9415150F9308 -:1032D0001F930091B8011091B9012091BA0130916A -:1032E000BB0106271727282739270093B801109319 -:1032F000B9012093BA013093BB011F910F910C9437 -:1033000015151092B4011092B5011092B6011092E9 -:10331000B7010C94151541E050E060E070E004C086 -:10332000440F551F661F771F8A95D2F74093B4014B -:103330005093B5016093B6017093B7010C941515C5 -:1033400041E050E060E070E004C0440F551F661F8C -:10335000771F8A95D2F78091B4019091B501A09121 -:10336000B601B091B701842B952BA62BB72B809378 -:10337000B4019093B501A093B601B093B7010C943A -:10338000151541E050E060E070E004C0440F551FA7 -:10339000661F771F8A95D2F7409550956095709576 -:1033A0008091B4019091B501A091B601B091B7019F -:1033B00084239523A623B7238093B4019093B5016A -:1033C000A093B601B093B7010C94151541E050E0FD -:1033D00060E070E004C0440F551F661F771F8A9598 -:1033E000D2F78091B4019091B501A091B601B0914E -:1033F000B70184279527A627B7278093B401909318 -:10340000B501A093B601B093B7010C9415150F93B5 -:103410001F930091B4011091B5012091B601309134 -:10342000B701062B172B282B392B0093B4011093CF -:10343000B5012093B6013093B7011F910F910C9401 -:1034400015150F931F930091B4011091B5012091B0 -:10345000B6013091B701062317232823392300939F -:10346000B4011093B5012093B6013093B7011F91B9 -:103470000F910C9415150F931F930091B4011091A7 -:10348000B5012091B6013091B701062717272827EB -:1034900039270093B4011093B5012093B6013093FE -:1034A000B7011F910F910C9415150895CF92DF92DB -:1034B000EF92FF920F931F93CF93DF93EC01C09095 -:1034C000B801D090B901E090BA01F090BB018091B1 -:1034D000B4019091B501A091B601B091B701C82A8D -:1034E000D92AEA2AFB2A0FE110E0B701A601002E33 -:1034F00004C076956795579547950A94D2F740FD95 -:1035000005C00150110988F780E007C0BE01802F77 -:103510000E945D070197A9F3802FDF91CF911F9142 -:103520000F91FF90EF90DF90CF900895CF93DF93AE -:10353000EC010E94561ABE010E945D07DF91CF91F7 -:103540000895CB010E94961A08958091C1010895B3 -:103550008093C10108951092C10108950E941C1D1D -:103560002091BF013091C0018217930750F00E9453 -:103570001C1D2091BF013091C001821B930B9C0147 -:103580000AC00E941C1D2091BF013091C0012095EE -:103590003095280F391F81E02C32314008F480E04B -:1035A00008958091BE0185958595859508958091B2 -:1035B000BE01877008950E941C1D2091BC013091AE -:1035C000BD018217930768F00E941C1D2091BC0169 -:1035D0003091BD01821B930B8C32914078F480E0D6 -:1035E00014C00E941C1D2091BC013091BD0120958A -:1035F0003095280F391F2C32314088F38091BE015D -:1036000082FB882780F991E089278170089598E0EE -:10361000899F90011124622B6093BE010E94A01922 -:103620000E941C1D9093BD018093BC0108951092CF -:10363000BE011092BD011092BC0108954091BE01DF -:10364000809584238093BE01982F977089F450E071 -:10365000282F332727FD30954217530749F08595CA -:10366000859585950E94C1191092BD011092BC01EB -:1036700008959091BE01977081E009F480E008956B -:1036800090910C019923D9F090910D019923B9F0F3 -:10369000982F9695969596959F3088F5E0910E0116 -:1036A000F0910F01E90FF11D877021E030E001C0BA -:1036B000220F8A95EAF78181822B818308954091B8 -:1036C0000E0150910F0120E030E09FEFFA01E20F70 -:1036D000F31F6281681799F09F3F19F4611101C0CF -:1036E000922F2F5F3F4F2E30310581F79F3F39F0EA -:1036F000FA01E90FF11D97FDFA9582830895089567 -:1037000090910C019923E1F090910D019923C1F062 -:10371000982F9695969596959F3020F5E0910E01FD -:10372000F0910F01E90FF11D877021E030E001C039 -:10373000220F8A95EAF72095818128232183089515 -:1037400040910E0150910F0120E030E0FA01E20FAC -:10375000F31F9281981301C012822F5F3F4F2E30CA -:103760003105A1F7089581E090E0E0910E01F0911C -:103770000F01E80FF91F1082019680319105A9F71A -:1037800008958091D50108959091D501982B90933B -:10379000D501089580959091D50198239093D501F6 -:1037A00008951092D50108959091D401982B90938B -:1037B000D401089580959091D40198239093D401D9 -:1037C00008951092D40108959091D301982B90936D -:1037D000D301089580959091D30198239093D301BC -:1037E00008951092D30108958093C2010E941C1D78 -:1037F0009093C0018093BF0108951092C20110926E -:10380000C0011092BF01089540910E0150910F0127 -:1038100020E030E080E0FA01E20FF31F9181911186 -:103820008F5F2F5F3F4F2F303105A9F70895E0914B -:103830000E01F0910F018091D5018083E0910E017E -:10384000F0910F0180819091D401892B8083E091C8 -:103850000E01F0910F0180819091D301892B80831B -:103860008091C201882399F00E94AE1A81110E94B2 -:10387000FD1BE0910E01F0910F0180819091C2013A -:10388000892B80830E94041C81110E94FD1B809162 -:103890000E0190910F010C94661040E0009739F0F2 -:1038A0009C0121503109822393234F5FF7CF842F4E -:1038B0000895CF92DF92EF92FF920F931F936C01C6 -:1038C000EE24FF24C114D104E104F10421F46B01BE -:1038D0007C0180E001C080E133272F2D1E2D0D2DAE -:1038E000011511052105310519F0885F680179017D -:1038F00097018601A4E03695279517950795AA9517 -:10390000D1F7011511052105310519F08C5F68010A -:10391000790197018601F2E036952795179507956D -:10392000FA95D1F7011511052105310519F08E5FC2 -:1039300068017901B701A601769567955795479576 -:10394000452B462B472B09F08F5F1F910F91FF905E -:10395000EF90DF90CF9008958091EB01843021F1BA -:103960001092D70120E488E190E00FB6F894A89572 -:10397000809360000FBE2093600080E00E946C097D -:1039800083B7817F846083BF83B7816083BF78946E -:10399000889583B78E7F83BF88E10FB6F8948093B4 -:1039A0006000109260000FBE089508950E943103D8 -:1039B0000E9444030E94D51C0E94380491E08111AA -:1039C00001C090E0892F08950E9429150E945A1085 -:1039D0000C946C091F920F920FB60F9211248F93C3 -:1039E0009F93AF93BF938091D701811113C08091B2 -:1039F000D8019091D901A091DA01B091DB014196F3 -:103A0000A11DB11D8093D8019093D901A093DA0133 -:103A1000B093DB01BF91AF919F918F910F900FBE3B -:103A20000F901F90189582E084BD93E095BD9AEFAA -:103A300097BD80936E0008952FB7F8948091D801B8 -:103A40009091D901A091DA01B091DB012FBF0895C7 -:103A5000CF92DF92EF92FF920F931F932FB7F894BC -:103A60004091D8015091D9016091DA017091DB0148 -:103A70002FBF6A017B01EE24FF248C0120E030E09F -:103A8000C016D106E206F30610F441505109481B56 -:103A9000590BCA011F910F91FF90EF90DF90CF90CB -:103AA00008951F920F920FB60F9211248F939F9338 -:103AB000AF93BF938091D8019091D901A091DA0181 -:103AC000B091DB010196A11DB11D8093D8019093A7 -:103AD000D901A093DA01B093DB01BF91AF919F911F -:103AE0008F910F900FBE0F901F9018950E94600D40 -:103AF000F8942FEF87EA91E6215080409040E1F75B -:103B000000C0000087E090EBDC018093F40190930B -:103B1000F501A093F601B093F7012CE088E190E065 -:103B20000FB6F894A895809360000FBE20936000B4 -:103B3000FFCF0E94D11D811102C00E94B71D0E94BB -:103B4000DC1D8093D6010E94E41D90E09093E60175 -:103B50008093E50187FB882780F980930D010E94FF -:103B6000E01D682F70E080E090E00C9429196DEE64 -:103B70007EEF80E090E00E94832160E082E090E0B0 -:103B80000E94712160E083E090E00E94712160E07A -:103B900084E090E00E94712160E085E090E00C9468 -:103BA000712180E090E00E946B2121E08D3E9E4FCC -:103BB00009F020E0822F089582E090E00C946321C8 -:103BC00083E090E00C94632184E090E00C94632106 -:103BD000682F84E090E00C9471218091DE0180FFD9 -:103BE0000BC06091130185E0689FB00111247595A9 -:103BF0006795759567952AC081FF09C0609113018B -:103C000085E0689FB0011124759567951FC082FFFC -:103C100007C06091130185E0689FB001112416C0B0 -:103C20004091DF014423C9F060911201461788F7E3 -:103C30002091130185E0289F90011124429FC0012B -:103C4000439F900D112470E00E943521603871056A -:103C500040F46115710539F002C065E070E0862F0F -:103C600008958FE7089581E008958091DE0180FF37 -:103C700008C06091110170E075956795759567951D -:103C800021C081FF06C06091110170E075956795B4 -:103C900019C082FF04C06091110170E010C08091D2 -:103CA000DF018823C1F0609110018617A0F7909181 -:103CB0001101989FC001112470E00E9435216038E5 -:103CC000710528F46115710521F0862F08958FE79D -:103CD000089581E0089561E070E0F4CF803F21F421 -:103CE0000E94ED1D819504C0813F29F40E94ED1DC5 -:103CF0008093E2010895823F21F40E94ED1D819599 -:103D000004C0833F29F40E94ED1D8093E1010895D2 -:103D1000893F19F40E94351E05C08A3F31F40E9484 -:103D2000351E81958093E30108958B3F21F40E9415 -:103D3000351E819504C08C3F29F40E94351E809366 -:103D4000E4010895843F21F48091E001816017C06F -:103D5000853F21F48091E001826011C0863F21F40B -:103D60008091E00184600BC0873F21F48091E001E5 -:103D7000886005C0883F31F48091E00180618093C4 -:103D8000E00108958D3F21F48091DE0181600BC038 -:103D90008E3F21F48091DE01826005C08F3F29F4BF -:103DA0008091DE0184608093DE010895803F39F4C4 -:103DB0008091E20187FF6CC01092E20169C0813FEF -:103DC00029F48091E2011816BCF362C09091E101E0 -:103DD000823F29F497FF5CC01092E10159C0833FF4 -:103DE00019F41916CCF354C0893F41F48091E301D2 -:103DF00018160CF04DC01092E3014AC08A3F29F416 -:103E00008091E30187FF44C0F6CF8B3F39F4809166 -:103E1000E40187FF3DC01092E4013AC08C3F29F4D1 -:103E20008091E4011816BCF333C0843F21F48091E3 -:103E3000E0018E7F17C0853F21F48091E0018D7FE6 -:103E400011C0863F21F48091E0018B7F0BC0873F3A -:103E500021F48091E001877F05C0883F31F4809193 -:103E6000E0018F7E8093E00113C08D3F21F48091AB -:103E7000DE018E7F0BC08E3F21F48091DE018D7FAD -:103E800005C08F3F29F48091DE018B7F8093DE0196 -:103E90008091E10181110EC08091E20181110AC07F -:103EA0008091E301811106C08091E401811102C07B -:103EB0001092DF01089580EE91E00E9471100E943F -:103EC0001C1D9093DD018093DC0108951F93CF9317 -:103ED000DF938091DC019091DD010E94281D4091CB -:103EE000DF01442321F02091140130E006C020912D -:103EF00015015AE0259F900111248217930708F4B9 -:103F000082C08091E1011091E201D091E301C09162 -:103F1000E401811107C0111105C0D11103C0CC23E8 -:103F200009F471C04F3F19F04F5F4093DF0118163D -:103F300024F40E94ED1D8093E1018091E10187FF4F -:103F400005C00E94ED1D81958093E101111624F4B6 -:103F50000E94ED1D8093E2018091E20187FF05C080 -:103F60000E94ED1D81958093E2016091E10166233D -:103F700039F11091E201112319F1772767FD70954E -:103F8000872F972F0E94462023E333E343E35FE329 -:103F90000E94AA200E9413206093E101612F7727DD -:103FA00067FD7095872F972F0E94462023E333E308 -:103FB00043E35FE30E94AA200E9413206093E20182 -:103FC0001D1624F40E94351E8093E3018091E301C5 -:103FD00087FF05C00E94351E81958093E3011C1662 -:103FE00024F40E94351E8093E4018091E40187FF50 -:103FF00005C00E94351E81958093E401DF91CF9129 -:104000001F910C945B1FDF91CF911F910895E0EEFB -:10401000F1E085E0DF011D928A95E9F71092DF015A -:104020001092DE01089504D06894B1118DC00895F6 -:1040300070D088F09F5790F0B92F9927B751A0F012 -:10404000D1F0660F771F881F991F1AF0BA95C9F72C -:1040500012C0B13081F077D0B1E0089574C0672FFD -:10406000782F8827B85F39F0B93FCCF386957795DC -:104070006795B395D9F73EF49095809570956195C5 -:104080007F4F8F4F9F4F0895E89409C097FB3EF4F0 -:1040900090958095709561957F4F8F4F9F4F992395 -:1040A000A9F0F92F96E9BB279395F6958795779513 -:1040B0006795B795F111F8CFFAF4BB0F11F460FFD3 -:1040C0001BC06F5F7F4F8F4F9F4F16C0882311F02B -:1040D00096E911C0772321F09EE8872F762F05C03F -:1040E000662371F096E8862F70E060E02AF09A95DA -:1040F000660F771F881FDAF7880F9695879597F9CF -:10410000089557FD9058440F551F59F05F3F71F0C7 -:104110004795880F97FB991F61F09F3F79F087952E -:104120000895121613061406551FF2CF4695F1DFB7 -:1041300008C0161617061806991FF1CF8695710547 -:10414000610508940895E894BB2766277727CB017B -:1041500097F908950BD078C069D028F06ED018F088 -:10416000952309F05AC05FC01124EECFCADFA0F337 -:10417000959FD1F3950F50E0551F629FF001729FFC -:10418000BB27F00DB11D639FAA27F00DB11DAA1F1B -:10419000649F6627B00DA11D661F829F2227B00D68 -:1041A000A11D621F739FB00DA11D621F839FA00DF3 -:1041B000611D221F749F3327A00D611D231F849F43 -:1041C000600D211D822F762F6A2F11249F5750409A -:1041D0008AF0E1F088234AF0EE0FFF1FBB1F661F35 -:1041E000771F881F91505040A9F79E3F510570F0EE -:1041F00014C0AACF5F3FECF3983EDCF38695779529 -:104200006795B795F795E7959F5FC1F7FE2B880FE8 -:10421000911D9695879597F9089597F99F6780E87E -:1042200070E060E008959FEF80EC089500240A9408 -:104230001616170618060906089500240A94121681 -:104240001306140605060895092E0394000C11F4B4 -:10425000882352F0BB0F40F4BF2B11F460FF04C061 -:104260006F5F7F4F8F4F9F4F089597FB072E16F478 -:10427000009407D077FD09D00E944F2107FC05D09C -:104280003EF4909581959F4F0895709561957F4F6D -:104290000895EE0FFF1F0590F491E02D0994AA1BDD -:1042A000BB1B51E107C0AA1FBB1FA617B70710F021 -:1042B000A61BB70B881F991F5A95A9F78095909553 -:1042C000BC01CD010895F999FECF92BD81BDF89A48 -:1042D000992780B50895A8E1B0E042E050E00C9441 -:1042E0008B21262FF999FECF92BD81BDF89A0197B7 -:1042F00000B4021639F01FBA20BD0FB6F894FA9A2E -:10430000F99A0FBE08950196272F0E9472210C94EE -:104310007121DC01CB01FC01F999FECF06C0F2BD91 -:10432000E1BDF89A319600B40D9241505040B8F773 -:064330000895F894FFCF90 -:1043360002206E09FB09D809A40971090101C3010C -:1043460028080A03140A404D363979042C04F6036A -:0A435600BD035003690382039B03BB -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/german-kinergo/compiled.hex b/keyboards/ergodox_ez/keymaps/german-kinergo/compiled.hex deleted file mode 100644 index 1ecea9fa4..000000000 --- a/keyboards/ergodox_ez/keymaps/german-kinergo/compiled.hex +++ /dev/null @@ -1,1158 +0,0 @@ -:100000000C947A020C94BE020C94BE020C94BE02B4 -:100010000C94BE020C94BE020C94BE020C94BE0260 -:100020000C94BE020C94BE020C94640D0C94360E1B -:100030000C94BE020C94BE020C94BE020C94BE0240 -:100040000C94BE020C9440220C94BE020C94BE028E -:100050000C94BE020C94D31B0C94BE020C94BE02F2 -:100060000C94BE020C94BE020C94BE020C94BE0210 -:100070000C94BE020C94BE020C94BE020C94BE0200 -:100080000C94BE020C94BE020C94BE020C94BE02F0 -:100090000C94BE020C94BE020C94BE020C94BE02E0 -:1000A0000C94BE020C94BE020C94BE02A30EC50EAC -:1000B000B30FC50EB30F0A0F2D0FB30F820F950F9D -:1000C0006412641293129312C912E9121A141A14C8 -:1000D000F4121A14A413A4130B141A141A141414DB -:1000E000B113B113B113B113B113B113B113B113F0 -:1000F000B113B113B113B113B113B113B113B113E0 -:10010000C313D013D713DE13E8130000F0A12900A6 -:100110002B003900E100E30000001E001400040081 -:100120001D0035004D001F001A0016001B00640062 -:100130004C00200008000700060050002A002100A3 -:100140001500090019004F004A00220017000A009C -:1001500005000000E0002E000152000002520000E5 -:10016000E20046000152000002520000E6002300B7 -:100170001C000B0011000000E400240018000D001A -:10018000100051004B0025000C000E0036005200FC -:100190002C00260012000F00370031002800270035 -:1001A00013003300380030004E002D002F00344281 -:1001B000E500E7000000010001000100010001006E -:1001C00000003A001E0231002202010001003B0043 -:1001D000141421023500010001003C002414250202 -:1001E0002514010001003D002714260226140100F9 -:1001F00001003E0064142E023014000001000100D2 -:1002000001000000010000000100010001000000E9 -:100210000100000001003F005200510023020000D5 -:1002200001004000240021001E00010001004100E7 -:10023000250022001F003700010042002600230095 -:100240002000270001004300300230002D14270257 -:100250000100440045000100010001000000010010 -:10026000010001000100010000003A000100F70058 -:10027000FB00010001003B00F400F200FA00FD0069 -:10028000F5003C00F000F100F900FE00F4003D0034 -:10029000F500F300FC00FF0001003E000100F80043 -:1002A000F600000001000100010000000100000054 -:1002B00001000100010000000100000001003F00FA -:1002C00001000100B400000001004000AA00AC00E1 -:1002D000B600010001004100A800AD00B50001001A -:1002E000B7004200A900AE00B9000100B60043000B -:1002F0000100AB00B700010001004400450001000F -:1003000001000100000016034500720067006F0045 -:1003100044006F007800200045005A0000001603DA -:100320004500720067006F0044006F0078002000F5 -:1003300045005A0000000403090409026D0004018D -:1003400000A0FA09040000010301010009211101C4 -:100350000001223F000705810308000A090401008B -:100360000103010200092111010001224D000705CE -:10037000820308000A0904020001030000000921A9 -:10038000110100012236000705830308000A090451 -:1003900003000103000000092111010001223900BE -:1003A000070584031000011201100100000008ED90 -:1003B000FE071301000102000105010906A1010564 -:1003C0000719E029E7150025019508750181020547 -:1003D000081901290595057501910295017503918B -:1003E0000105071900297715002501957875018108 -:1003F00002C005010980A101850216010026B7008F -:100400001A01002AB700751095018100C0050C097A -:1004100001A1018503160100269C021A01002A9CF5 -:1004200002751095018100C005010902A1010901B1 -:10043000A10005091901290515002501950575017A -:10044000810295017503810105010930093115818A -:10045000257F95027508810609381581257F95014C -:1004600075088106050C0A38021581257F950175EE -:10047000088106C0C005010906A101050719E02988 -:10048000E715002501950875018102950175088120 -:100490000105081901290595057501910295017558 -:1004A0000391010507190029FF150025FF95067521 -:1004B000088100C0000000000000000000000001F2 -:1004C0000204060A0F17202C3A4A5D71879DB3C7B4 -:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF -:1004E0003A2C20170F0A0604020100000000000049 -:1004F0000000000011241FBECFEFDAE0DEBFCDBF49 -:1005000004B603FE24C08091FB019091FC01A091F0 -:10051000FD01B091FE018730904BA740B04BB9F47C -:100520001092FB011092FC011092FD011092FE014D -:1005300014BE84B7877F84BF88E10FB6F894809398 -:100540006000109260000FBEE0E0FFE3099511E04B -:10055000A0E0B1E0EEE0F8E402C005900D92A43313 -:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0 -:10057000B107E1F70E94A80A0C9405240C9400002E -:100580001092B9008AE08093B800089594EA90939D -:10059000BC009091BC0097FFFCCF9091B900987F70 -:1005A000983021F0903111F081E008958093BB00E4 -:1005B00084E88093BC008091BC0087FFFCCF8091D1 -:1005C000B900887F883111F0803471F780E0089598 -:1005D00084E98093BC008091BC0084FDFCCF089529 -:1005E0008093BB0084E88093BC008091BC0087FFAF -:1005F000FCCF9091B900987F81E0983209F480E0B7 -:10060000089584E88093BC008091BC0087FFFCCFF4 -:100610008091BB00089580910101811115C080E493 -:100620000E94C6028093010181110CC082E10E94E8 -:10063000F00280930101811105C08FEF0E94F0024A -:10064000809301010E94E80284B1807F84B985B162 -:10065000807F85B98AB1837F8AB98BB1837F8BB95B -:100660003E98469808950E94C604809301010E9416 -:100670000B0380B38C7080BB81B3836F81BBA5E318 -:10068000B1E0E3E4F1E08EE08E0F11921D928E1343 -:10069000FCCF0C94B004BF92CF92DF92EF92FF9206 -:1006A0000F931F93CF93DF9380910101882379F0FB -:1006B000809134018F5F80933401811108C00E94C2 -:1006C000C60480930101811102C00E94580405E311 -:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407 -:1006E000E394F12CC730D10500F58091010181110F -:1006F00064C080E40E94C60280930101811112C08F -:1007000082E10E94F0028093010181110BC0C701B8 -:100710000C2E01C0880F0A94EAF780950E94F0021F -:10072000809301010E94E80248C0CA30A1F028F479 -:10073000C83059F0C93061F005C0CC3089F070F094 -:10074000CD3089F0209A289810C0219A29980DC0A0 -:10075000229A2A980AC0239A2B9807C0529A01C05D -:10076000539A5B9802C03E9A469890EA9A95F1F7A0 -:100770009FB1799902C082E001C080E091709D250F -:10078000982B7C9902C084E001C080E0892B7D9980 -:1007900002C038E001C030E0832B7E9902C020E126 -:1007A00001C020E0822B9FB19095991F9927991F36 -:1007B0009295990F907E892B0FC080910101811134 -:1007C00049C080E40E94C60280930101882379F128 -:1007D000B12C0E94E8028B2DF8019081981719F036 -:1007E0008083C09200010E940B0321960F5F1F4F70 -:1007F000CE30D10509F076CF80910001882361F1D8 -:10080000815080930001882339F08FE99FE00197A0 -:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F -:10082000CF01825F91919D938E13FCCF15C083E120 -:100830000E94F002809301018111CACF81E40E94DD -:10084000C602809301018111C3CF0E940103B82E1B -:10085000B094BFCF80E0C0CF0E94560481E0DF910A -:10086000CF911F910F91FF90EF90DF90CF90BF90AD -:100870000895E82FF0E0ED5BFE4F80810895089524 -:100880000F931F93CF93DF93C3E4D1E010E00C2FBD -:10089000025F899190E00E94F91A180F0C13F9CFAA -:1008A000812FDF91CF911F910F9108950C94260510 -:1008B00056985E9825982D9826982E9827982F98C8 -:1008C0008FEF90E0909389008093880090938B0045 -:1008D00080938A0090938D0080938C00259A2D9AA6 -:1008E0002FEF80E792E0215080409040E1F700C078 -:1008F0000000269A2E9A2FEF80E792E02150804048 -:100900009040E1F700C00000279A2F9A2FEF80E770 -:1009100092E0215080409040E1F700C0000025980F -:100920002D982FEF80E792E0215080409040E1F732 -:1009300000C0000026982E982FEF80E792E021500B -:1009400080409040E1F700C0000027982F9856980B -:100950005E9825982D9826982E9827982F98089578 -:1009600089EA8093800089E08093810024982C9804 -:100970003F988AB18F748AB96E98479A8BB1806B11 -:100980008BB9769A0E9458040C94250580E28093D6 -:1009900001018091510181110EC00E94C00281E0CD -:1009A000809351012FEF83ED90E3215080409040E0 -:1009B000E1F700C0000080E40E94C60280930101BC -:1009C00081112EC00E94F00280930101811128C084 -:1009D0000E94F00280930101811122C08FE30E94E6 -:1009E000F0028093010181111BC00E94E80280E4A3 -:1009F0000E94C60280930101811112C08CE00E9406 -:100A0000F0028093010181110BC00E94F0028093DB -:100A10000101811105C08FE30E94F0028093010162 -:100A20000E94E80280910101089561110BC0FC0150 -:100A30008281882321F085EE0E94081103C085EE93 -:100A40000E94D01180E090E0089508956091BD016A -:100A50007091BE018091BF019091C0010E94051B61 -:100A600056985E9825982D9826982E9827982F9816 -:100A7000813029F0823031F4269A2E9A0895259AF1 -:100A80002D9A089556985E98089581E0089581E022 -:100A900008950C94470508950F931F93CF93DF9308 -:100AA0008C01FC01C081D181CE010E947E19BE0162 -:100AB0000E94F505EC01B8010E944905882309F45C -:100AC0008DC0F8018281882309F44AC080915D01BC -:100AD00081111FC0C431F0E5DF0709F051C00E9449 -:100AE0004B0581E080935D010E949D1B90935C010A -:100AF00080935B011092540110925601109255019F -:100B0000109258011092570110925A0110925901F7 -:100B100065C080915B0190915C010E94A91B883C9B -:100B2000910570F480915401E82FF0E0EE0FFF1F63 -:100B3000EB5AFE4FD183C0838F5F809354014EC028 -:100B4000C43880E5D80721F0C538D04501F13AC056 -:100B5000F8018281882341F01092520182E01EC088 -:100B6000C438E0E5DE0759F580915201811106C0D5 -:100B700086E20E94081186E20E94D01182E01CC029 -:100B8000C438F0E5DF0741F3C538D045D9F4F801A2 -:100B90008281882331F01092530180E20E941F125B -:100BA0001DC080915301811106C087E20E94081187 -:100BB00087E20E94D01180E20E9426120FC0C53841 -:100BC000D04529F381E08093520180935301C801FD -:100BD000DF91CF911F910F910C94450580E0DF913B -:100BE000CF911F910F910895089596E0799FF0019C -:100BF000112494E5899FE00DF11D1124E60FF11DEC -:100C0000EE0FFF1FE25FFE4F859194910895880FCC -:100C1000991FFC01E657F040859194910895880F43 -:100C2000991FFC01E65FFE4F8591949108950F9303 -:100C30001F93CF93DF93EC01811520E3920750F5CA -:100C4000C11580E2D80708F0C3C0CB3BD10590F4B2 -:100C5000C83AD10508F06AC0C53AD10508F05BC0B2 -:100C6000C430D10508F0D0C1219709F0CAC101E014 -:100C700010E00AC2CF3FD10511F008F0C5C1C03F56 -:100C8000D10508F0A2C0CE01805E9109089708F452 -:100C9000BBC1B7C1C13090E5D90709F4A2C020F5A6 -:100CA000C0318FE4D80770F4C11590E4D90708F07B -:100CB00094C0C11521E3D20708F0A3C1DD278E013E -:100CC000106CE2C1C115D04509F09BC10E9485148A -:100CD0008FEF94E32CE0815090402040E1F700C07A -:100CE00000000E94F81BD0C1C11597E5D90758F440 -:100CF000C03121E5D20708F01CC1C43180E5D80716 -:100D000008F475C07EC1CE0190578115904108F05E -:100D100078C1DF7073C1C53AD10509F477C1C63A0D -:100D2000D10509F076C102E810E4AEC1C83AD10598 -:100D300009F472C1C93AD10509F471C1CA3AD105A1 -:100D400009F470C1CB3AD10509F46FC1CC3AD10591 -:100D500009F46EC1CD3AD10509F46DC1C03BD1058E -:100D600009F46CC1CE3AD10509F46BC1CF3AD10573 -:100D700009F46AC1C13BD10509F469C1C23BD1057F -:100D800009F468C1C33BD10509F467C1C43BD1056F -:100D900009F466C1C53BD10509F465C1C63BD1055F -:100DA00009F464C1C73BD10509F463C1C83BD1054F -:100DB00009F462C1C93BD10509F461C1CA3BD1053F -:100DC00009F460C100E014E45FC18E0110655CC1EC -:100DD000CE019F700E940F0658C1DF708E01106A0D -:100DE00053C18091DA0181608093DA014DC10E9484 -:100DF0009D1D811102C00E94831D0E94BA1D90E0BA -:100E00009093FB018093FA01C23080E5D80721F46A -:100E10008091FA01816086C0C43090E5D90721F441 -:100E20008091FA0182607EC0C63020E5D20721F4AD -:100E30008091FA01846076C0C83080E5D80719F443 -:100E40008091FA0127C0CA3090E5D90721F480913A -:100E5000FA01806167C0CC3020E5D20721F480918F -:100E6000FA0180625FC0CE3080E5D80721F480911E -:100E7000FA01806457C0C03190E5D90721F4809110 -:100E8000FA0180684FC0C23120E5D20729F4809171 -:100E9000FA018460886046C0C33080E5D80721F439 -:100EA0008091FA018E7F3EC0C53090E5D90721F4CC -:100EB0008091FA018D7F36C0C73020E5D20721F43A -:100EC0008091FA018B7F2EC0C93080E5D80719F4D4 -:100ED0008091FA0126C0CB3090E5D90721F48091AA -:100EE000FA018F7E1FC0CD3020E5D20721F480911A -:100EF000FA018F7D17C0CF3080E5D80721F48091AB -:100F0000FA018F7B0FC0C13190E5D90721F48091A0 -:100F1000FA018F7707C0C331D04531F48091FA01CF -:100F20008B7F877F8093FA018091FA010E94BE1D1A -:100F3000ABC08D2F99278F70992781309105D9F4F7 -:100F40009E012370332702C0880F991F2A95E2F76C -:100F50009C688E0144E0000F111F4A95E1F70027BD -:100F60001370802B912B53E0CC0FDD1F5A95E1F7C6 -:100F7000C076DD272FC08230910531F4DC2FCC27DD -:100F80008E01016F106A80C08330910569F4CE0133 -:100F90008370992701E010E002C0000F111F8A95AD -:100FA000E2F7C8019C680FC084309105B9F4CE0106 -:100FB0008370992701E010E002C0000F111F8A958D -:100FC000E2F7C8019A6823E0CC0FDD1F2A95E1F70C -:100FD000C07ED7708C010C2B1D2B56C0853091051F -:100FE00031F4DC2FCC278E01046F106A4DC00697B8 -:100FF00009F04AC0CF71DD27DC2FCC278E011062AB -:1010000043C000E010E040C08E013EC001E810E4A3 -:101010003BC003E810E438C002EE14E435C009EE2A -:1010200014E432C00AEE14E42FC005EB14E42CC023 -:1010300006EB14E429C007EB14E426C00CEC14E41E -:1010400023C00DEC14E420C003E815E41DC00AE839 -:1010500015E41AC002E915E417C004E915E414C048 -:1010600001E216E411C003E216E40EC004E216E445 -:101070000BC005E216E408C006E216E405C007E26C -:1010800016E402C00AE216E4C801DF91CF911F9175 -:101090000F91089596E0799FF001112494E5899FBE -:1010A000E00DF11D1124E60FF11DEE0FFF1FE25FB1 -:1010B000FE4F85919491803E9105E0F4803C91052E -:1010C00058F58133910509F46FC048F489329105D0 -:1010D00009F463C08A32910509F46DC072C0893386 -:1010E0009105E9F082389105D1F08533910509F435 -:1010F0004DC067C0833E910581F138F4803E910573 -:10110000B9F0823E9105D9F05CC0863E910561F14F -:10111000873E9105A1F155C00E94070608952091D0 -:10112000FA0120FD02C021FF4CC080EE90E049C0D2 -:101130008091FA0180FFF9CF89E390E042C080916D -:10114000FA0182FF0EC08091FA0184FF03C080E0A3 -:1011500090E037C083EE90E034C08091FA0182FFC6 -:10116000F2CF82EE90E02DC08091FA0183FF0BC098 -:101170008091FA0184FDEBCF87EE90E022C0809150 -:10118000FA0183FFF5CF86EE90E01BC08091FA0153 -:1011900085FF07C089E290E014C08091FA0185FFC5 -:1011A000F9CF85E390E00DC08091FA0186FF07C07A -:1011B0008AE290E006C08091FA0186FFF9CF81E3D0 -:1011C00090E00E941706089508950C94E408809119 -:1011D0006E010895CF93DF9300D01F92CDB7DEB795 -:1011E0009C018091F101843019F593E099833B8350 -:1011F0002A839093E9008FEF9091E800815095FD4C -:1012000006C095ED9A95F1F700008111F5CF809118 -:10121000E80085FF0DC040E050E063E070E0CE01E3 -:1012200001960E94540B8091E8008E778093E8002D -:101230000F900F900F90DF91CF910895CF93DF9390 -:1012400000D01F92CDB7DEB72091F101243021F5F7 -:1012500022E029839B838A8383E08093E9008FEFD8 -:101260009091E800815095FD06C095ED9A95F1F7B3 -:1012700000008111F5CF8091E80085FF0DC040E0AE -:1012800050E063E070E0CE0101960E94540B809123 -:10129000E8008E778093E8000F900F900F90DF9119 -:1012A000CF9108952091F1012430F1F422E02093B0 -:1012B000E9002FEF3091E800215035FD06C035EDF3 -:1012C0003A95F1F700002111F5CF2091E80025FFB4 -:1012D0000BC040E050E065E070E00E94540B80914C -:1012E000E8008E778093E8000895CF93DF93EC01B8 -:1012F0009091F101943009F046C080910C0188234F -:10130000D9F080910D018823B9F09093E9008FEF17 -:101310009091E800815095FD06C095E19A95F1F70E -:1013200000008111F5CF8091E80085FF2CC040E0DE -:1013300050E060E170E017C081E08093E9008FEF3A -:101340009091E800815095FD06C095ED9A95F1F7D2 -:1013500000008111F5CF8091E80085FF14C040E0C6 -:1013600050E068E070E0CE010E94540B8091E800EC -:101370008E778093E80080E1FE01AEE5B1E0019058 -:101380000D928A95E1F7DF91CF9108958091F00158 -:10139000811109C00E94E90C0E94460D8091E20073 -:1013A00084608093E20008951092F00108950895FA -:1013B0000C942D220E948E1B0E9433220E94EC0F5F -:1013C0000C94E50842E061EC81E00E94630C42E08D -:1013D00061EC82E00E94630C42E061EC83E00E94D9 -:1013E000630C42E161EC84E00C94630C8091F301A6 -:1013F000833009F455C030F4813071F0823009F443 -:101400008EC008958A3009F47AC08B3009F460C028 -:10141000893009F09CC020C08091F201813A09F026 -:1014200096C08091E800877F8093E8008091F60164 -:101430009091F701892B21F460E18EE591E003C0E2 -:1014400060E080E090E070E00E949F0B8091E800F7 -:101450008B778093E80008958091F201813209F042 -:1014600076C08091F6019091F701009719F00397EB -:1014700009F06DC08091E800877F8093E80080913B -:10148000E80082FD05C08091F1018111F8CF5FC0B5 -:101490008091F10080936E018091E8008B7753C0BA -:1014A0008091F201813A09F052C08091F601909149 -:1014B000F701892B09F04BC08091E800877F80936A -:1014C000E8008091E80080FFFCCF80910C0136C0DD -:1014D0008091F2018132D9F58091F6019091F70166 -:1014E000892BA9F58091E800877F8093E8000E940E -:1014F000980C8091F40180930C010C9485148091D8 -:10150000F201813221F58091E800877F8093E80025 -:101510000E94980C8091F50180936F01089580914D -:10152000F201813AA1F48091E800877F8093E8007E -:101530008091E80080FFFCCF80916F018093F100E3 -:101540008091E8008E778093E8000C94980C0895C1 -:1015500084B7877F84BF88E10FB6F89480936000DA -:10156000109260000FBE90E080E80FB6F894809370 -:101570006100909361000FBE0E943B100E94E90C35 -:101580000E94460D8091E20084608093E20078948E -:101590000E94CC0F0E943D1082E091E00E94E70F74 -:1015A0000E941B228091F101853069F40E94551B35 -:1015B0008091EF018823B1F30E94801B882391F36F -:1015C0000E943E0BEFCF0E944310ECCF292F332710 -:1015D00023303105C9F064F42130310581F0223027 -:1015E000310509F043C08DE690E02AE333E042C0C4 -:1015F00021323105F1F02232310541F137C082E16B -:1016000090E027EA33E036C099278130910541F018 -:101610008230910541F0892B49F5E6E3F3E005C0FE -:10162000EEE1F3E002C0E6E0F3E0849190E09F0198 -:1016300021C06430D8F4E62FF0E0EE0FFF1FEE5D1E -:10164000FE4F2081318189E090E014C0643070F455 -:1016500070E0FB01EE0FFF1FE65EFE4F208131813F -:10166000FB01EA5EFE4F808190E004C080E090E0E4 -:1016700020E030E0FA0131832083089580E189BDC4 -:1016800082E189BD09B400FEFDCF8091D8008F7D35 -:101690008093D8008091E00082608093E000809188 -:1016A000E00081FDFCCF0895CF92DF92EF92FF9290 -:1016B0000F931F93CF93DF93EC018B016A010E947C -:1016C000B70C811133C0C114D10439F0F601808107 -:1016D0009181081B190BC80FD91FE12CF12C0115A2 -:1016E000110519F18091E80085FD16C08091E80090 -:1016F0008E778093E800C114D10449F0F60180810F -:101700009181E80EF91EF182E08285E00FC00E940F -:10171000B70C882321F30AC089918093F10001500E -:101720001109FFEFEF1AFF0ADACF80E0DF91CF91C6 -:101730001F910F91FF90EF90DF90CF90089520912F -:10174000F8013091F9012617370748F06115710546 -:1017500039F42091E8002E772093E80001C0B90108 -:1017600040E061157105A9F12091F101222309F4EE -:1017700043C0253009F442C02091E80023FD40C059 -:101780002091E80022FD32C02091E80020FFE9CF3F -:101790004091F3002091F20030E0342BFC01CF01A6 -:1017A0006115710559F02830310540F4819180931D -:1017B000F100615071092F5F3F4FF1CF41E02830B8 -:1017C000310509F040E02091E8002E772093E800F1 -:1017D000C8CF4111C9CF0AC08091F101882361F0BF -:1017E000853061F08091E80083FD0AC08091E800B7 -:1017F00082FFF2CF80E0089582E0089583E00895AB -:1018000081E008952091F8013091F90126173707FA -:1018100048F06115710539F42091E8002E77209386 -:10182000E80001C0B901FC0120E06115710591F1EA -:101830008091F101882309F440C0853009F43FC04C -:101840008091E80083FD3DC08091E80082FD2FC0BB -:101850008091E80080FFE9CF2091F3008091F200B1 -:1018600090E0922B6115710559F08830910540F494 -:1018700024912093F1003196615071090196F2CFC5 -:1018800021E0089709F020E08091E8008E778093AE -:10189000E800CBCF2111CCCF0AC08091F101882381 -:1018A00061F0853061F08091E80083FD0AC080918D -:1018B000E80082FFF2CF80E0089582E0089583E09F -:1018C000089581E00895982F973058F59093E90096 -:1018D000981739F07091EC002091ED005091F000D4 -:1018E00003C0242F762F50E021FF19C03091EB0068 -:1018F0003E7F3093EB003091ED003D7F3093ED0063 -:101900003091EB0031603093EB007093EC0020934A -:10191000ED005093F0002091EE0027FF07C09F5F7D -:10192000D3CF8F708093E90081E0089580E008951F -:101930008091F20187FF11C08091E80082FD05C00F -:101940008091F1018111F8CF11C08091E8008B776F -:101950000BC08091F101882349F08091E80080FF5D -:10196000F8CF8091E8008E778093E8000895209169 -:10197000E4003091E50095E64091EC00842F817001 -:1019800040FF22C08091E80080FD1CC08091F101E1 -:10199000882391F0853091F08091EB0085FD10C097 -:1019A0004091E4005091E5004217530729F39A0152 -:1019B000915011F784E0089582E0089583E008953E -:1019C00081E0089580E008954091E80042FFDECF75 -:1019D00008950E94570D0E945F0DE0EEF0E08081B7 -:1019E00081608083E8EDF0E080818F77808319BC8F -:1019F000A7EDB0E08C918E7F8C9380818F7E808369 -:101A00001092F00108950F931F93CF93DF930E94DC -:101A1000570D0E945F0DC8EDD0E088818F778883D5 -:101A200088818068888388818F7D888319BC109223 -:101A3000F1011092ED011092EF011092EE0100EE13 -:101A400010E0F80180818B7F8083888181608883AA -:101A500042E060E080E00E94630CE1EEF0E0808113 -:101A60008E7F8083E2EEF0E08081816080838081E0 -:101A700088608083F80180818E7F80838881806187 -:101A80008883DF91CF911F910F910895E8EDF0E0E9 -:101A900080818F7E8083E7EDF0E0808181608083AC -:101AA00084E082BF81E08093F0010C94030DE8EDA7 -:101AB000F0E080818E7F80831092E2000895109282 -:101AC000DA001092E10008951F920F920FB60F9264 -:101AD00011242F933F934F935F936F937F938F9333 -:101AE0009F93AF93BF93EF93FF938091E10082FFA9 -:101AF0000BC08091E20082FF07C08091E1008B7FE4 -:101B00008093E1000E94CB0F8091DA0080FF1FC01C -:101B10008091D80080FF1BC08091DA008E7F809377 -:101B2000DA008091D90080FF0DC080E189BD82E19B -:101B300089BD09B400FEFDCF81E08093F1010E94D0 -:101B4000C60905C019BC1092F1010E94D409809108 -:101B5000E10080FF19C08091E20080FF15C08091F4 -:101B6000E2008E7F8093E2008091E20080618093AA -:101B7000E2008091D80080628093D80019BC85E093 -:101B80008093F1010E94D8098091E10084FF30C068 -:101B90008091E20084FF2CC080E189BD82E189BD93 -:101BA00009B400FEFDCF8091D8008F7D8093D800CE -:101BB0008091E1008F7E8093E1008091E2008F7E32 -:101BC0008093E2008091E20081608093E200809146 -:101BD000ED01882311F084E007C08091E30087FDC8 -:101BE00002C081E001C083E08093F1010E94DA0924 -:101BF0008091E10083FF29C08091E20083FF25C02E -:101C00008091E100877F8093E10082E08093F10181 -:101C10001092ED018091E1008E7F8093E100809130 -:101C2000E2008E7F8093E2008091E20080618093E9 -:101C3000E20042E060E080E00E94630C8091F000EE -:101C400088608093F0000E94D709FF91EF91BF91C7 -:101C5000AF919F918F917F916F915F914F913F9144 -:101C60002F910F900FBE0F901F9018951F920F92FB -:101C70000FB60F9211242F933F934F935F936F935F -:101C80007F938F939F93AF93BF93CF93DF93EF9304 -:101C9000FF93C091E900CF708091EC00D82FD170F4 -:101CA00080FDD0E81092E9008091F000877F80935A -:101CB000F00078940E947A0E1092E9008091F00072 -:101CC00088608093F000CD2BCF70C093E900FF9126 -:101CD000EF91DF91CF91BF91AF919F918F917F91C4 -:101CE0006F915F914F913F912F910F900FBE0F9089 -:101CF0001F9018951F93CF93DF93CDB7DEB7AA97A8 -:101D00000FB6F894DEBF0FBECDBFE2EFF1E088E082 -:101D10008E0F9091F10091938E13FBCF0E94F609E4 -:101D20008091E80083FF1FC18091F2019091F3013F -:101D3000492F50E04A30510508F015C1FA01EA5A1E -:101D4000FF4F0C94B523803881F0823809F00BC125 -:101D50008091F6018F708093E9008091EB0085FB04 -:101D6000882780F91092E90006C08091EE019091D9 -:101D7000EF01911182609091E800977F9093E800C5 -:101D80008093F1001092F100C8C0282F2D7F09F038 -:101D9000EAC0882319F0823061F0E5C08091F40137 -:101DA000813009F0E0C0933009F080E08093EF01CA -:101DB0002BC08091F401811127C08091F6018F70B2 -:101DC00009F4D1C08093E9002091EB0020FF1CC0F2 -:101DD000933021F48091EB00806214C09091EB006D -:101DE00090619093EB0021E030E0A90102C0440F24 -:101DF000551F8A95E2F74093EA001092EA0080911D -:101E0000EB0088608093EB001092E9008091E8007D -:101E1000877F86C08111A7C01091F4011F77809140 -:101E2000E3008078812B8093E3008091E800877F36 -:101E30008093E8000E94980C8091E80080FFFCCF1E -:101E40008091E30080688093E300111102C082E07A -:101E500001C083E08093F10186C08058823008F091 -:101E600082C08091F4019091F5018C3D53E095077B -:101E700079F583E08A838AE289834FB7F894DE019B -:101E8000139620E03EE051E2E32FF0E0509357003C -:101E9000E49120FF03C0E295EF703F5FEF708E2F5B -:101EA00090E0EA3010F0C79601C0C0968D939D93E4 -:101EB0002F5F243149F74FBF8091E800877F8093DF -:101EC000E8006AE270E0CE0101960E949F0B14C008 -:101ED000AE014F5F5F4F6091F6010E94E60ABC01C0 -:101EE000009709F440C09091E800977F9093E80034 -:101EF00089819A810E94020C8091E8008B778093FF -:101F0000E80031C0803879F58091E800877F8093C0 -:101F1000E8008091ED018093F1008091E8008E77D8 -:101F20008093E8000E94980C1EC081111CC0909103 -:101F3000F4019230C0F48091E800877F8093E8003C -:101F40009093ED010E94980C8091ED01811106C0E3 -:101F50008091E30087FD02C081E001C084E08093AE -:101F6000F1010E94E2098091E80083FF0AC080919C -:101F7000E800877F8093E8008091EB008062809387 -:101F8000EB00AA960FB6F894DEBF0FBECDBFDF916F -:101F9000CF911F9108950895CF938091F1018823E7 -:101FA000A1F0C091E900CF709091EC00892F817071 -:101FB00090FD80E8C82B1092E9008091E80083FD35 -:101FC0000E947A0ECF70C093E900CF91089590934C -:101FD0007501809374010895E0917401F091750189 -:101FE000309721F00190F081E02D099480E0089570 -:101FF000E0917401F0917501309721F00280F38136 -:10200000E02D09940895E0917401F09175013097E5 -:1020100021F00480F581E02D09940895209172014A -:10202000309173018217930771F09093730180933D -:102030007201E0917401F0917501309721F00680F2 -:10204000F781E02D0994089520917001309171017C -:102050008217930771F09093710180937001E09162 -:102060007401F0917501309721F00084F185E02D25 -:102070000994089508950C943A100E94941B0E94AC -:1020800033030C94561C9F92AF92BF92CF92DF9273 -:10209000EF92FF920F931F93CF93DF9300D000D066 -:1020A00000D0CDB7DEB70E944B030DE010E0AA24AC -:1020B000A394B12C902E802F0E94390498012958A6 -:1020C0003E4F6901F901F080F826A1F40150110991 -:1020D00088F78FEF89838A831B820E949D1B816012 -:1020E000782F9D838C8349815A816B818D810E94D9 -:1020F000DA102FC09091DA0191FF04C08E830E9404 -:102100003F048E8125E030E0A501022E01C0440F7E -:102110000A94EAF7E42E4F21C1F029839A828E2196 -:1021200091E009F490E09B830E949D1B8160782FD1 -:102130009D838C8349815A816B818D810E94DA1045 -:10214000F6018081E826E08204C021503109E0F6E2 -:10215000BDCF0E943D1F109176010E94EC0F181711 -:10216000B9F00E94EC0F8093760126960FB6F89492 -:10217000DEBF0FBECDBFDF91CF911F910F91FF90BA -:10218000EF90DF90CF90BF90AF909F900C94E508B8 -:1021900026960FB6F894DEBF0FBECDBFDF91CF916C -:1021A0001F910F91FF90EF90DF90CF90BF90AF9075 -:1021B0009F900895CF93DF93CDB7DEB72B970FB6DF -:1021C000F894DEBF0FBECDBF4F83588769877A87EB -:1021D0008B87DE01119686E0FD0111928A95E9F761 -:1021E00085E0FE01379601900D928A95E1F74981CD -:1021F0005A816B817C818D819E810E9423172B9651 -:102200000FB6F894DEBF0FBECDBFDF91CF9108951A -:10221000CF93882309F4C2C0C82F823859F40E9492 -:10222000EC0F81FDBBC089E30E94FD190E94CA1A10 -:1022300089E30CC0833879F40E94EC0F80FDAEC0B6 -:1022400083E50E94FD190E94CA1A83E50E943F1A85 -:10225000CF910C94CA1A843859F40E94EC0F82FD75 -:102260009DC087E40E94FD190E94CA1A87E4EECF40 -:102270008CEF8C0F813A48F48C2F0E9480218111C1 -:102280008DC08C2F0E94FD19E3CF80E28C0F883027 -:1022900048F4C77081E001C0880FCA95EAF70E9430 -:1022A000831AD6CF8BE58C0F833078F4C53A29F0AA -:1022B000C63A31F083E890E005C081E890E002C0C2 -:1022C00082E890E0CF910C940E1088E58C0F83315A -:1022D00008F064C0C83A39F1C93A41F1CA3A49F143 -:1022E000CB3A51F1CC3A59F1CD3A61F1C03B69F1A9 -:1022F000CE3A71F1CF3A79F1C13B81F1C23B89F11C -:10230000C33B91F1C43B99F1C53BA1F1C63BA9F197 -:10231000C73BB1F1C83BB9F1C93BC1F1CA3BC9F1F7 -:1023200080E090E038C082EE90E035C089EE90E029 -:1023300032C08AEE90E02FC085EB90E02CC086EB97 -:1023400090E029C087EB90E026C08CEC90E023C0A1 -:102350008DEC90E020C083E891E01DC08AE891E018 -:102360001AC082E991E017C084E991E014C081E2CB -:1023700092E011C083E292E00EC084E292E00BC0D2 -:1023800085E292E008C086E292E005C087E292E032 -:1023900002C08AE292E0CF910C942410CF9108956C -:1023A000882309F44BC0823859F40E94EC0F81FF56 -:1023B00045C089E30E94FD190E94CA1A89E30CC036 -:1023C000833871F40E94EC0F80FF38C083E50E94CF -:1023D000FD190E94CA1A83E50E943F1A0C94CA1A7A -:1023E000843859F40E94EC0F82FF28C087E40E94D1 -:1023F000FD190E94CA1A87E4EFCF9CEF980F913A1B -:1024000058F390E2980F983050F4877091E001C033 -:10241000990F8A95EAF7892F0E94891ADFCF9BE5E9 -:10242000980F933020F480E090E00C940E10885ABE -:10243000833120F480E090E00C94241008958823E8 -:1024400021F00E94831A0C94CA1A0895882321F05F -:102450000E94891A0C94CA1A08957F928F929F92B3 -:10246000AF92BF92CF92DF92EF92FF920F931F93A2 -:10247000CF93DF931F92CDB7DEB77C01C62E772EA8 -:10248000FC01058102950F70128111110E94A01AA2 -:102490000E94F619882379F0112369F080E28C0DEF -:1024A000883048F082E00E94DF190E94F61991E01E -:1024B000D82ED92601C0D12CE72DE295EF70F0E09F -:1024C000E05AFF4F0C94B523872D807F072D0F70A6 -:1024D000882311F00295007F112389F0002309F46D -:1024E00090C180E28C0D883020F4802F0E94831AE6 -:1024F00003C0802F0E94931A0E94CA1A82C18C2D99 -:102500000E94D011002309F495C180E28C0D88301F -:1025100020F4802F0E94891A03C0802F0E94991AEC -:102520000E94CA1A87C1972D907F872D8F70903295 -:1025300011F08295807FCC2021F0F1E0CF16B1F030 -:102540001EC0112349F0002309F414C1013009F021 -:1025500011C10E94B31A6EC1002319F0013009F4B1 -:1025600069C189830E94B61A89810AC1112321F0A9 -:10257000023008F05FC1FEC001115CC101C111232E -:1025800021F0002309F4F6C03CC1002309F4F8C08F -:102590003EC1872D86958695837090E0009719F04F -:1025A000019761F047C1112321F08C2D972D937075 -:1025B00002C080E090E00E940E103CC1112321F087 -:1025C0008C2D972D937002C080E090E00E94241023 -:1025D00031C18C2D112319F00E94451E02C00E94AA -:1025E000AD1E0E94321F26C1872D837009F052C094 -:1025F000111120C18C2D829586958770880F880FC8 -:102600009C2D9F70892E912CA12CB12C082E04C0DA -:10261000880C991CAA1CBB1C0A94D2F7C4FE14C0D7 -:102620000FE010E020E030E0B901A80104C0440F41 -:10263000551F661F771F8A95D2F7CB01BA016095A7 -:1026400070958095909503C060E070E0CB01272DD8 -:1026500026952695237030E02230310569F023302D -:10266000310589F0682979298A299B29213031058A -:1026700071F00E946B18DEC0682979298A299B298C -:102680000E948718D7C00E946B18C501B4010E9430 -:102690004F18D0C0112319F0872D817001C0869585 -:1026A000882309F4C7C08C2D829586958770880F82 -:1026B000880F9C2D9F70892E912CA12CB12C082E57 -:1026C00004C0880C991CAA1CBB1C0A94D2F7C4FE37 -:1026D00014C00FE010E020E030E0B901A80104C010 -:1026E000440F551F661F771F8A95D2F7CB01BA0199 -:1026F000609570958095909503C060E070E0CB0187 -:10270000272D269526952370422F50E04230510503 -:1027100069F04330510589F0682979298A299B2974 -:102720004130510571F00E94451984C0682979290A -:102730008A299B290E9461197DC00E944519C50103 -:10274000B4010E94291976C08C2D90E0FC01E05E56 -:10275000F109E531F10508F050C0E059FF4F0C9444 -:10276000B5230C2D0F70872D8F71112331F00E942E -:10277000C218802F0E941F125DC00E94E318802F94 -:102780000E94261257C0112339F0011153C0872D22 -:102790008F710E9408194EC0023008F04BC0F7CF6D -:1027A000112339F0872D8F710E94C21843C0112365 -:1027B000C9F3872D8F710E94E3183CC0112329F0C3 -:1027C000872D8F710E94AD1835C00E94A31832C0AA -:1027D000112351F0172D1F71812F0E94C21863E041 -:1027E000812F0E94D61926C081E00E94DF19023095 -:1027F00008F182E00E94DF191DC0112331F000238F -:1028000089F28C2D0E94081115C0002391F28C2DA5 -:102810000E94D0110FC0472D4F706C2DC7010E9430 -:1028200015050E94C71706C0472D4F706C2DC701B4 -:102830000E94F405DD20F9F00E94D21980FD1BC032 -:10284000F70112820E94CC190E94C218C7010E948F -:102850004A140E94CC190F90DF91CF911F910F91D4 -:10286000FF90EF90DF90CF90BF90AF909F908F90B0 -:102870007F900C94E3180F90DF91CF911F910F91EF -:10288000FF90EF90DF90CF90BF90AF909F908F9090 -:102890007F9008950F931F93CF93DF93EC0188816E -:1028A00099812B813C81232BB9F09F3F11F48F3FFD -:1028B00099F0CE010E944C05882371F068817981DE -:1028C0008A810E94C8198C010E947D190E944418B7 -:1028D000B801CE010E942D12DF91CF911F910F916F -:1028E00008950E94A01A0E94B01A0E94751A0E94B0 -:1028F000CA1A0E94E31F0E94321F80E090E00E94EB -:102900000E1080E090E00C9424100E94901A0C9419 -:1029100071140E94BD19292F22952F7030E02C30A0 -:1029200031054CF42A3031056CF422503109223043 -:102930003105A8F407C02C30310569F02F3031057E -:1029400051F00DC0803F69F018F4803E40F409C09A -:10295000843F29F406C093FB882780F9089580E01E -:10296000089581E00895CF93DF9300D000D01F92A7 -:10297000CDB7DEB70F900F900F900F900F90DF91B3 -:10298000CF910895CF93DF9300D000D000D0CDB782 -:10299000DEB726960FB6F894DEBF0FBECDBFDF912F -:1029A000CF9108951F93CF93DF93C091850116E0D7 -:1029B00080918601C81799F0D0E01C9FF0011D9FFF -:1029C000F00D1124E957FE4F4081518162817381DE -:1029D000848195810E94C2142196C770E9CFDF914E -:1029E000CF911F9108954091B7015091B801609126 -:1029F000B9017091BA018091BB019091BC010C9416 -:102A0000C2148091BC0182958F7009F054C08091EE -:102A1000B901882309F44FC080918501A0918601F6 -:102A20006091B7017091B8014091BA015091BB011A -:102A3000B6E08A1709F43FC090E041155105C1F195 -:102A40007F3F11F46F3FA1F1B89FF001B99FF00DE6 -:102A50001124E957FE4F218172132AC0208162138D -:102A600027C02281211124C02381348124173507F6 -:102A700010F421503109241B350B283C3105C0F4DA -:102A80002091BC012F7020612093BC0126E0289F7B -:102A9000F001299FF00D1124E457FE4F80818F70C3 -:102AA0008061808387EB91E00E944A140C94D214D9 -:102AB00001968770BECF0895CF92DF92EF92FF927A -:102AC0000F931F93CF93DF93CDB7DEB762970FB607 -:102AD000F894DEBF0FBECDBF8C0185E0F801DE01AA -:102AE0001D9601900D928A95E1F7D8014C911196AF -:102AF0005C91119712966C9112971396CD90DC9081 -:102B000014973091B7017091B8018091BA019091FA -:102B1000BB01009709F46BC17F3F19F43F3F09F4F3 -:102B200066C1E090B901EE2009F4C0C02091BC015B -:102B3000C816D90628F0F601E81BF90BCF0104C02E -:102B4000809590958C0D9D1DFF24F394883C9105F4 -:102B500078F0F12C207F09F0C6C07C2DD98AC88A74 -:102B600089890E94B31487EB91E00E944A14B1C096 -:102B7000822F807F09F046C0751314C0341312C031 -:102B8000611110C02F7020612093BC010E94F314CA -:102B900087EB91E00E944A148091BC01D801159600 -:102BA0008C932EC0CD2819F15F3F11F44F3FF9F0FF -:102BB000F62E61111CC0809185012091860136E0BE -:102BC000821709F45AC090E0389FF001399FF00D48 -:102BD0001124E957FE4F7181571306C070814713C6 -:102BE00003C07281711103C001968770E9CFF62E80 -:102BF000662309F418C18091BC0181608093BC01F7 -:102C0000F12C11C1751308C0341306C0611104C042 -:102C10008091BC01D801C3C04D875E878D859E859C -:102C20006A8B0E9489146A898823E1F16623D1F1B5 -:102C30002091BC01822F82958F7090E0029774F0F2 -:102C40008091B7019091B80198878F831986DB86B0 -:102C5000CA862C87CE0107960E944A1486E0F801A6 -:102C6000A7EBB1E001900D928A95E1F70E94011562 -:102C70000E94F314FF24F394D6C04D875E878D85A0 -:102C80009E850E94BD19292F22952F7030E0223099 -:102C900031050CF0BCC09F7009F0B6C0805E883072 -:102CA00008F4C1C0C8010E944A14E4CFC816D9066E -:102CB00008F453C0F601E81BF90BCF01883C9105DD -:102CC00008F450C0F12C7C2DD98AC88A89890E94C9 -:102CD000B314E7EBF1E086E0DF011D928A95E9F796 -:102CE0000E94F314A0C0751314C0341312C06111F4 -:102CF00010C08091BC01F8018583C8010E944A146C -:102D000086E0E7EBF1E0DF011D928A95E9F7FE2C02 -:102D10008AC04D875E878D859E856A8B0E94891447 -:102D20006A89882309F4BECF662309F4BBCF2091BA -:102D3000BC01822F82958F7090E002970CF48ECFA9 -:102D40008091B7019091B8019A8389831B82DD82BB -:102D5000CC822E83CE0101967FCF809590958C0DED -:102D60009D1DACCFF62E662309F49CCF75132EC0A3 -:102D700034132CC02091BC0120FD1FC0822F8295EE -:102D80008F70D9F0D80115962C9315978F3049F094 -:102D90008F5F982F9295907F822F8F70892B159639 -:102DA0008C93C8010E944A1486E0F801A7EBB1E0B9 -:102DB00001900D928A95E1F793CF86E0F801A7EB99 -:102DC000B1E001900D928A95E1F72DC04D875E87A5 -:102DD0008D859E850E948914811140CF8091BC0110 -:102DE00081608093BC01C8010E944A141CC0662304 -:102DF00009F458CF4D875E878D859E850E94891482 -:102E0000882309F44FCF2ACF811148CF0CC024303A -:102E100031050CF047CF9F7009F440CFF801958140 -:102E2000907F09F03BCF8F2D62960FB6F894DEBFEE -:102E30000FBECDBFDF91CF911F910F91FF90EF900B -:102E4000DF90CF9008951F93CF93DF93CDB7DEB778 -:102E50002C970FB6F894DEBF0FBECDBF4F835887B7 -:102E600069877A878B879C87CE0107960E945C15BD -:102E7000882369F08F8198852A853B85232BF1F182 -:102E80009F3F09F063C08F3F09F060C037C086E004 -:102E9000FE013796DE01119601900D928A95E1F7B9 -:102EA0006F817885EA85FB85309741F17F3F11F48A -:102EB0006F3F21F12091860130E0C90101968770B2 -:102EC00099274091850150E08417950709F447C080 -:102ED00069837A83FD83EC8396E0929FD001939F70 -:102EE000B00D1124A957BE4FFE01319601900D92ED -:102EF0009A95E1F7809386010E94D21416E08091A2 -:102F00008501909186018917C1F1189FC001112494 -:102F100089579E4F0E945C15882379F1E0918501C5 -:102F20001E9FF0011124E957FE4F408151816281BB -:102F30007381848195810E94C2148091850190E003 -:102F400001968770992780938501D9CF4F81588545 -:102F500069857A858B859C850E94C214CFCF0E949B -:102F600085141092860110928501E7EBF1E086E06E -:102F7000DF011D928A95E9F7C1CF2C960FB6F89420 -:102F8000DEBF0FBECDBFDF91CF911F910895EF92AD -:102F9000FF920F931F93CF93DF938C01009709F457 -:102FA0006CC0F12CEE24E394E8012196F8018491A1 -:102FB000843740F4843008F051C0813081F0823091 -:102FC00019F15BC0853709F444C0A8F19CE7980F5C -:102FD000903708F052C08F770E94D01141C00E5F29 -:102FE0001F4FFE01C49180E28C0F883048F4C770F7 -:102FF0008E2D01C0880FCA95EAF70E94A31A14C04B -:103000008C2F0E9408112DC00E5F1F4FFE01C4912E -:1030100080E28C0F883058F4C7708E2D01C0880F65 -:10302000CA95EAF70E94A91A0E94CA1A1AC08C2FE0 -:103030000E94D01116C00E5F1F4FFE01C491CC2319 -:1030400081F08FE99FE00197F1F700C00000C150C7 -:10305000F6CF0E5F1F4FFE01F49003C00E940811CF -:103060008E018F2D882309F49FCFEFE9FFE0319780 -:10307000F1F700C000008150F5CFDF91CF911F9193 -:103080000F91FF90EF90089508956093C1017093A0 -:10309000C2018093C3019093C4010C9471140F93E7 -:1030A0001F930091C1011091C2012091C301309181 -:1030B000C401DC01CB01802B912BA22BB32B80937D -:1030C000C1019093C201A093C301B093C4011F91A9 -:1030D0000F910C9471140F931F930091C1011091E3 -:1030E000C2012091C3013091C401DC01CB018023D6 -:1030F0009123A223B3238093C1019093C201A09393 -:10310000C301B093C4011F910F910C9471140F93DC -:103110001F930091C1011091C2012091C301309110 -:10312000C401DC01CB0180279127A227B32780931C -:10313000C1019093C201A093C301B093C4011F9138 -:103140000F910C9471141092BD011092BE01109257 -:10315000BF011092C0010C94711441E050E060E096 -:1031600070E004C0440F551F661F771F8A95D2F781 -:103170004093BD015093BE016093BF017093C001A5 -:103180000C94711441E050E060E070E004C0440F22 -:10319000551F661F771F8A95D2F78091BD019091C8 -:1031A000BE01A091BF01B091C001482B592B6A2BE1 -:1031B0007B2B4093BD015093BE016093BF01709380 -:1031C000C0010C94711441E050E060E070E004C074 -:1031D000440F551F661F771F8A95D2F7409550956B -:1031E000609570958091BD019091BE01A091BF0145 -:1031F000B091C001482359236A237B234093BD012A -:103200005093BE016093BF017093C0010C94711480 -:1032100041E050E060E070E004C0440F551F661FBD -:10322000771F8A95D2F78091BD019091BE01A09140 -:10323000BF01B091C001482759276A277B274093D7 -:10324000BD015093BE016093BF017093C0010C9407 -:1032500071140F931F930091BD011091BE01209135 -:10326000BF013091C001DC01CB01802B912BA22B3F -:10327000B32B8093BD019093BE01A093BF01B09387 -:10328000C0011F910F910C9471140F931F93009123 -:10329000BD011091BE012091BF013091C001DC0140 -:1032A000CB0180239123A223B3238093BD0190936C -:1032B000BE01A093BF01B093C0011F910F910C9468 -:1032C00071140F931F930091BD011091BE012091C5 -:1032D000BF013091C001DC01CB0180279127A227DB -:1032E000B3278093BD019093BE01A093BF01B0931B -:1032F000C0011F910F910C9471140895CF92DF9229 -:10330000EF92FF920F931F93CF93DF938C01C090A6 -:10331000C101D090C201E090C301F090C40180913E -:10332000BD019091BE01A091BF01B091C001C82A1A -:10333000D92AEA2AFB2ACFE1D0E0D701C6010C2E18 -:1033400004C0B695A795979587950A94D2F780FF04 -:1033500006C0B8018C2F0E944A08019721F42197DA -:1033600060F780E001C08C2FDF91CF911F910F910A -:10337000FF90EF90DF90CF900895CF93DF93EC0113 -:103380000E947E19BE010E944A08DF91CF910895E4 -:10339000CB010E94BD1908958091C5018595859541 -:1033A000859508958091C5018770089598E0899F5B -:1033B00090011124262B2093C5010C94C218209152 -:1033C000C501809582238093C501982F977069F479 -:1033D00030E0482F552747FD50952417350729F031 -:1033E0008595859585950C94E31808959091C50170 -:1033F000977081E009F480E0089590910C01992381 -:1034000021F090910D01911109C020910E01309190 -:103410000F01F90132969FEF40E01FC0982F96955B -:10342000969596959F3050F5E0910E01F0910F0121 -:10343000E90FF11D877021E030E0A90102C0440FBF -:10344000551F8A95E2F7CA019181892B81830895DE -:103450009F3F39F04F5F4E3041F051915813F8CFF4 -:103460000DC05111F7CF942FF5CF9F3F39F0F901DF -:10347000E90FF11D97FDFA958283089508959091C3 -:103480000C01992321F090910D01911109C0209117 -:103490000E0130910F01F9013296205F3F4F1FC09E -:1034A000982F9695969596959F30F0F4E0910E01A1 -:1034B000F0910F01E90FF11D877021E030E0A901C3 -:1034C00002C0440F551F8A95E2F7CA018095918189 -:1034D0008923818308953196E217F30729F09081BB -:1034E0009813F9CF1082F7CF089581E090E0E09132 -:1034F0000E01F0910F01E80FF91F10820196803143 -:103500009105A9F708959091D901892B8093D9014C -:10351000089580959091D90189238093D9010895C8 -:103520001092D90108959091D801892B8093D801E8 -:10353000089580959091D80189238093D8010895AA -:103540001092D80108959091D701892B8093D701CB -:10355000089580959091D70189238093D70108958C -:103560001092D70108958093C60108951092C60164 -:10357000089580910E0190910F01FC0131969C01FC -:10358000205F3F4F80E0919191118F5FE217F30729 -:10359000D1F70895E0910E01F0910F018091D901CA -:1035A0008083E0910E01F0910F0190818091D8010C -:1035B000892B8083E0910E01F0910F019081809121 -:1035C000D701892B80838091C601882361F0E09127 -:1035D0000E01F0910F019081892B80830E94B91A0E -:1035E00081111092C60180910E0190910F010C94EF -:1035F000F80F20E0009739F0AC01415051098423C5 -:1036000095232F5FF7CF822F0895CF92DF92EF920D -:10361000FF926C01EE24FF24C114D104E104F104F3 -:1036200021F0C701B60120E101C020E0C72ED82E4D -:10363000E92EFF24C114D104E104F10419F0285F3C -:10364000C701B6016B017C0154E0F694E794D7946E -:10365000C7945A95D1F7C114D104E104F10419F0CB -:103660002C5FC701B6016B017C0142E0F694E79440 -:10367000D794C7944A95D1F7C114D104E104F10459 -:1036800019F02E5FC701B601DC01CB01B695A795F5 -:1036900097958795892B8A2B8B2B09F02F5F822F8B -:1036A000FF90EF90DF90CF9008958091F1018430EA -:1036B00021F11092DB0120E488E190E00FB6F8944C -:1036C000A895809360000FBE2093600080E00E9468 -:1036D000E50883B7817F846083BF83B7816083BF40 -:1036E0007894889583B78E7F83BF88E10FB6F8946E -:1036F00080936000109260000FBE089508950895B1 -:103700000E947E1B0E944B030E947F1B0E9440046C -:1037100091E0811101C090E0892F08950E948514E5 -:103720000E94EC0F0C94E50882E084BD93E095BD07 -:103730009AEF97BD80936E0008952FB7F89480910B -:10374000DC019091DD01A091DE01B091DF012FBF7E -:103750000895CF92DF92EF92FF920F931F932FB7AE -:10376000F8944091DC015091DD016091DE0170918F -:10377000DF012FBF6A017B01EE24FF248C0120E0D2 -:1037800030E0C016D106E206F30610F441505109AC -:103790009A01281B390BC9011F910F91FF90EF90DF -:1037A000DF90CF9008951F920F920FB60F921124C1 -:1037B0008F939F93AF93BF938091DC019091DD0134 -:1037C000A091DE01B091DF010196A11DB11D809392 -:1037D000DC019093DD01A093DE01B093DF01BF9186 -:1037E000AF919F918F910F900FBE0F901F901895E2 -:1037F0000E94E90CF8942FEF87EA91E6215080406F -:103800009040E1F700C0000087E090EBDC0180937E -:10381000FB019093FC01A093FD01B093FE019CE09D -:1038200088E10FB6F894A895809360000FBE90933E -:103830006000FFCFEF92FF920F931F93CF93DF9320 -:10384000D82FCDE08C2F0E94390405E010E0E82E3F -:10385000F12CC701002E02C0959587950A94E2F7D6 -:1038600080FF09C0602F7C2F80E00E94F505D813EF -:1038700002C081E006C00150110958F7C15010F78D -:1038800080E0DF91CF911F910F91FF90EF9008950D -:10389000CF93C82F8CE20E941A1C882321F08C2F12 -:1038A000CF910C941A1C80E0CF910895CF930E9481 -:1038B0009D1D811102C00E94831DC5E6C15049F0C3 -:1038C0000E944B038FE39CE90197F1F700C00000D1 -:1038D000F5CF89E20E94481C811113C18AE20E943F -:1038E000481C81110E94831D85E00E94481C8111A3 -:1038F0000E94F81B0E94A81D8093DA0187E00E94B5 -:10390000481C8823A9F18BE10E94481C882351F0B0 -:103910008091DA0181FB222720F991E0922790FB28 -:1039200081F90EC08EE00E94481C882361F08091CE -:10393000DA0182FB222720F991E0922790FB82F99D -:103940008093DA0115C080E10E94481C9091DA0151 -:10395000882341F093FB222720F981E0822780FB16 -:1039600093F904C0892F809580FB90F99093DA0138 -:103970008091DA010E94AC1D0E94BA1D8093FA0169 -:1039800080EE0E94481C882341F08091FA01982F14 -:10399000909590FB80F98093FA0189E30E94481C7E -:1039A000882359F08091FA0181FB222720F991E0C8 -:1039B000922790FB81F98093FA0182EE0E94481CC5 -:1039C000882359F08091FA0182FB222720F991E0A7 -:1039D000922790FB82F98093FA0186EE0E94481CA0 -:1039E000882359F08091FA0183FB222720F991E086 -:1039F000922790FB83F98093FA0183EE0E94481C82 -:103A0000882359F08091FA0184FB222720F991E064 -:103A1000922790FB84F98093FA0185E30E94481C69 -:103A2000882359F08091FA0185FB222720F991E043 -:103A3000922790FB85F98093FA0181E30E94481C4C -:103A4000882359F08091FA0186FB222720F991E022 -:103A5000922790FB86F98093FA0181E10E94481C2D -:103A6000882359F08091FA0187FB222720F991E001 -:103A7000922790FB87F98093FA018091FA010E94C6 -:103A8000BE1D8091FA0187FB882780F980930D0184 -:103A900087E20E94481CC82F8EE10E94481C8111B9 -:103AA000C2608FE10E94481C8111C46080E20E94C4 -:103AB000481C8111C86081E20E94481C8111C061CC -:103AC00082E20E94481C8111C06283E20E94481C6D -:103AD0008111C06484E20E94481C882311F0C068F0 -:103AE00002C0CC2329F08C2F0E94B51D6C2F03C07F -:103AF0000E94B11D682F70E080E090E0CF910C949F -:103B00004518CF9108956DEE7EEF80E090E00E9421 -:103B1000EF2360E082E090E00E94DD2360E083E03C -:103B200090E00E94DD2360E084E090E00E94DD23CD -:103B300060E085E090E00C94DD2380E090E00E945E -:103B4000D72321E08D3E9E4F09F020E0822F08957B -:103B500082E090E00C94CF23682F82E090E00C94F8 -:103B6000DD2383E090E00C94CF23682F83E090E086 -:103B70000C94DD2384E090E00C94CF23682F84E044 -:103B800090E00C94DD238091E20180FF0BC06091F6 -:103B9000130185E0689FB0011124759567957595AF -:103BA00067952BC081FF09C06091130185E0689F74 -:103BB000B00111247595679520C082FF07C0609100 -:103BC000130185E0689FB001112417C09091E301B3 -:103BD0009923D1F060911201961788F72091130173 -:103BE00085E0289F90011124929FA001939F500D82 -:103BF000112470E0CA010E94A1236038710540F4CD -:103C00006115710539F002C065E070E0862F0895F6 -:103C10008FE7089581E008958091E20180FF08C058 -:103C20006091110170E0759567957595679521C054 -:103C300081FF06C06091110170E07595679519C00C -:103C400082FF04C06091110170E010C09091E30107 -:103C50009923C1F0609110019617A0F7809111018E -:103C6000899FC001112470E00E94A1236038710572 -:103C700028F46115710521F0862F08958FE70895C6 -:103C800081E0089561E070E0F4CF803F21F40E946C -:103C9000C31D819504C0813F29F40E94C31D8093F8 -:103CA000E6010895823F21F40E94C31D819504C05E -:103CB000833F29F40E94C31D8093E5010895893F45 -:103CC00019F40E940C1E05C08A3F31F40E940C1E9C -:103CD00081958093E70108958B3F21F40E940C1E8B -:103CE000819504C08C3F29F40E940C1E8093E8014A -:103CF0000895843F21F48091E401816017C0853FDD -:103D000021F48091E401826011C0863F21F480910A -:103D1000E40184600BC0873F21F48091E401886056 -:103D200005C0883F31F48091E40180618093E40113 -:103D300008958D3F21F48091E20181600BC08E3F98 -:103D400021F48091E201826005C08F3F29F48091C7 -:103D5000E20184608093E2010895803F39F480910C -:103D6000E60187FF6CC01092E60169C0813F29F42B -:103D70008091E6011816BCF362C09091E501823F84 -:103D800029F497FF5CC01092E50159C0833F19F4F4 -:103D90001916CCF354C0893F41F48091E7011816FD -:103DA0000CF04DC01092E7014AC08A3F29F480917F -:103DB000E70187FF44C0F6CF8B3F39F48091E801DB -:103DC00087FF3DC01092E8013AC08C3F29F48091F2 -:103DD000E8011816BCF333C0843F21F48091E4015C -:103DE0008E7F17C0853F21F48091E4018D7F11C043 -:103DF000863F21F48091E4018B7F0BC0873F21F443 -:103E00008091E401877F05C0883F31F48091E4010F -:103E10008F7E8093E40113C08D3F21F48091E201F5 -:103E20008E7F0BC08E3F21F48091E2018D7F05C013 -:103E30008F3F29F48091E2018B7F8093E201809192 -:103E4000E50181110EC08091E60181110AC08091C7 -:103E5000E701811106C08091E801811102C0109232 -:103E6000E301089584EE91E00E9403100E949D1BDF -:103E70009093E1018093E00108951F93CF93DF9326 -:103E80008091E0019091E1010E94A91BAC01909109 -:103E9000E301992321F02091140130E006C0209124 -:103EA00015018AE0289F900111244217530708F456 -:103EB00086C08091E501C091E601D091E7011091A3 -:103EC000E801811107C0C11176C0D11174C0111170 -:103ED00072C075C09F3F19F09F5F9093E301181661 -:103EE00024F40E94C31D8093E5018091E50187FFC2 -:103EF00005C00E94C31D81958093E5011C1624F422 -:103F00000E94C31D8093E6018091E60187FF05C0F2 -:103F10000E94C31D81958093E6016091E5016623AF -:103F200039F1C091E601CC2319F1772767FD70952F -:103F3000872F972F0E94B22223E333E343E35FE30B -:103F40000E9416230E947F226093E5016C2F772741 -:103F500067FD7095872F972F0E94B22223E333E3EA -:103F600043E35FE30E9416230E947F226093E601F1 -:103F70001D1624F40E940C1E8093E7018091E70136 -:103F800087FF05C00E940C1E81958093E7011116E2 -:103F900024F40E940C1E8093E8018091E80187FFC1 -:103FA00005C00E940C1E81958093E801DF91CF919E -:103FB0001F910C94321F9F3F09F08ECF96CFDF9157 -:103FC000CF911F910895E4EEF1E085E0DF011D92AD -:103FD0008A95E9F71092E3011092E2010895833087 -:103FE00081F128F4813059F08230D1F00895853084 -:103FF00009F449C0B8F1863009F456C0089580919B -:104000001501262F30E0280F311D2F3F310524F4F4 -:10401000680F6093150108958FEF8093150108953F -:1040200080911401262F30E0280F311D2F3F3105DC -:1040300024F4680F6093140108958FEF80931401A6 -:10404000089580911301262F30E0280F311D2F3F56 -:10405000310524F4680F6093130108958FEF809366 -:104060001301089580911201262F30E0280F311D91 -:104070002F3F310524F4680F6093120108958FEFEC -:1040800080931201089580911101262F30E0280FAE -:10409000311D2F3F310524F4680F609311010895FD -:1040A0008FEF80931101089580911001262F30E049 -:1040B000280F311D2F3F310524F4680F6093100144 -:1040C00008958FEF809310010895833011F128F443 -:1040D000813049F0823091F00895853081F120F1EE -:1040E0008630C1F1089580911501681720F4861B70 -:1040F000809315010895109215010895809114017F -:10410000681720F4861B80931401089510921401FF -:10411000089580911301681720F4861B8093130182 -:10412000089510921301089580911201681720F4E8 -:10413000861B8093120108951092120108958091B8 -:104140001101681720F4861B8093110108951092C5 -:104150001101089580911001681720F4861B809347 -:10416000100108951092100108950F931F938D313F -:1041700009F46BC008F03FC08E3009F47FC0C0F472 -:10418000873009F469C068F4863009F0B1C08091C5 -:10419000DA01817F8E7F8093DA0181E08093EA01EA -:1041A000A8C0883009F4A2C08B3009F49FC0A0C019 -:1041B000863109F49BC078F4803109F472C08131F2 -:1041C00009F096C00E94851490910D0181E0892725 -:1041D00080930D018BC0893109F488C08B3109F0BF -:1041E00087C08091DA0181FB222720F991E0922794 -:1041F00090FB81F94CC0853309F470C048F48732D4 -:1042000009F46CC008F459C0893209F467C070C061 -:10421000833438F48A3308F04EC0883309F466C01A -:1042200067C0833409F45AC0883409F061C00E9421 -:1042300085140FEF13ED20E3015010402040E1F70B -:1042400000C000000E94F81B51C00E9439220E9449 -:10425000EC0F0E94E5084AC09091DA01892F809501 -:10426000817080FB90F929F0966098609093DA0154 -:1042700040C0997F977F9093DA0138C08091DA012E -:1042800082FB222720F991E0922790FB82F980930C -:10429000DA01992359F18091DA0181608093DA0182 -:1042A00025C08091DA0183FB222720F991E0922733 -:1042B00090FB83F9ECCF895301C08D5141E050E070 -:1042C00060E070E08A019B0104C0000F111F221FF3 -:1042D000331F8A95D2F7C901B80104C061E070E0CC -:1042E00080E090E00E9445180E94851481E001C0A2 -:1042F00080E01F910F91089580E0089580E0089577 -:10430000CF93C82F8091EA01813079F018F0823084 -:10431000E9F187C0E0910E01F0910F0180818131B8 -:1043200069F0823209F07FC009C0E0910E01F0917E -:104330000F018081813111F0823261F48C2F0E9453 -:104340007C21811104C08C2F0E94B5201DC081E00A -:1043500090E01AC08C2F0E947E21811114C0C431BC -:1043600079F048F4CB3079F0C03109F060C082E0D8 -:104370008093EA0108C0C93219F0C83321F057C050 -:104380001092EA0154C081E0817053C0C93289F1B2 -:1043900018F5C43171F1A8F4C73009F046C08AE0BD -:1043A0008093150194E19093140193E0909313018D -:1043B0008093120188E08093110188E280931001BC -:1043C00034C0CE51C63088F5EC2FF0E0E65DFE4FEC -:1043D00080818093E90129C0CE34E9F020F4CB3408 -:1043E00021F56AE013C0C13579F0C235F1F461E01E -:1043F0000DC08091E901882319F01092E90115C0E0 -:1044000081E08093EA0115C061E006C08091E90176 -:104410000E94EF1F0AC06AE08091E9010E946520B6 -:1044200004C01092EA0180E004C081E002C080E094 -:10443000ABCFCF910895E1E8F0E080818860808380 -:104440008081816080838FB7F89493E09093890096 -:1044500090ED909388008FBF0895EFE6F0E08081A3 -:10446000826080830895EFE6F0E080818D7F808315 -:104470000895EFE6F0E0908182E089278083089537 -:104480001F920F920FB60F9211242F933F934F93C9 -:104490005F936F937F938F939F93AF93BF93EF93AC -:1044A000FF938091EB019091EC0101969093EC01C8 -:1044B0008093EB01811103C082E00E94E508E09146 -:1044C000EC01E695E695F0E0EC54FB4FE491809129 -:1044D000EB018E1303C080E00E94E508FF91EF918D -:1044E000BF91AF919F918F917F916F915F914F910C -:1044F0003F912F910F900FBE0F901F90189504D0F1 -:104500006894B1118DC0089570D088F09F5790F0D5 -:10451000B92F9927B751A0F0D1F0660F771F881FE8 -:10452000991F1AF0BA95C9F712C0B13081F077D04F -:10453000B1E0089574C0672F782F8827B85F39F0ED -:10454000B93FCCF3869577956795B395D9F73EF447 -:1045500090958095709561957F4F8F4F9F4F0895EF -:10456000E89409C097FB3EF490958095709561950D -:104570007F4F8F4F9F4F9923A9F0F92F96E9BB27C3 -:104580009395F695879577956795B795F111F8CF3F -:10459000FAF4BB0F11F460FF1BC06F5F7F4F8F4FAA -:1045A0009F4F16C0882311F096E911C0772321F0A0 -:1045B0009EE8872F762F05C0662371F096E8862F38 -:1045C00070E060E02AF09A95660F771F881FDAF78F -:1045D000880F9695879597F9089557FD9058440F41 -:1045E000551F59F05F3F71F04795880F97FB991F52 -:1045F00061F09F3F79F0879508951216130614060F -:10460000551FF2CF4695F1DF08C01616170618069B -:10461000991FF1CF86957105610508940895E89476 -:10462000BB2766277727CB0197F908950BD078C071 -:1046300069D028F06ED018F0952309F05AC05FC0F9 -:104640001124EECFCADFA0F3959FD1F3950F50E070 -:10465000551F629FF001729FBB27F00DB11D639F34 -:10466000AA27F00DB11DAA1F649F6627B00DA11DDA -:10467000661F829F2227B00DA11D621F739FB00D80 -:10468000A11D621F839FA00D611D221F749F3327F0 -:10469000A00D611D231F849F600D211D822F762F89 -:1046A0006A2F11249F5750408AF0E1F088234AF086 -:1046B000EE0FFF1FBB1F661F771F881F91505040D2 -:1046C000A9F79E3F510570F014C0AACF5F3FECF3ED -:1046D000983EDCF3869577956795B795F795E795BE -:1046E0009F5FC1F7FE2B880F911D9695879597F9CF -:1046F000089597F99F6780E870E060E008959FEF64 -:1047000080EC089500240A94161617061806090668 -:10471000089500240A941216130614060506089537 -:10472000092E0394000C11F4882352F0BB0F40F4BF -:10473000BF2B11F460FF04C06F5F7F4F8F4F9F4FFF -:10474000089597FB072E16F4009407D077FD09D043 -:104750000E94BB2307FC05D03EF4909581959F4FA6 -:104760000895709561957F4F0895EE0FFF1F059096 -:10477000F491E02D0994AA1BBB1B51E107C0AA1FAD -:10478000BB1FA617B70710F0A61BB70B881F991FF2 -:104790005A95A9F780959095BC01CD010895F99996 -:1047A000FECF92BD81BDF89A992780B50895A8E102 -:1047B000B0E042E050E00C94F723262FF999FECFA9 -:1047C00092BD81BDF89A019700B4021639F01FBA64 -:1047D00020BD0FB6F894FA9AF99A0FBE0895019683 -:1047E000272F0E94DE230C94DD23DC01CB01FC018A -:1047F000F999FECF06C0F2BDE1BDF89A319600B43A -:0E4800000D9241505040B8F70895F894FFCF44 -:10480E000220E708750952091E09EA080101C701CD -:10481E0028080A03140A3F4D363975042804F2039A -:10482E00B9034C0365037E039703010203040506D7 -:04483E00070809005E -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/german-manuneo/compiled.hex b/keyboards/ergodox_ez/keymaps/german-manuneo/compiled.hex deleted file mode 100644 index bef079b16..000000000 --- a/keyboards/ergodox_ez/keymaps/german-manuneo/compiled.hex +++ /dev/null @@ -1,1274 +0,0 @@ -:100000000C9427040C946B040C946B040C946B04F8 -:100010000C946B040C946B040C946B040C946B04A4 -:100020000C946B040C946B040C9403110C94D51178 -:100030000C946B040C946B040C946B040C946B0484 -:100040000C946B040C94DF250C946B040C946B04DF -:100050000C946B040C94721F0C946B040C946B0442 -:100060000C946B040C946B040C946B040C946B0454 -:100070000C946B040C946B040C946B040C946B0444 -:100080000C946B040C946B040C946B040C946B0434 -:100090000C946B040C946B040C946B040C946B0424 -:1000A0000C946B040C946B040C946B040F08DC0729 -:1000B000C707210848087B085D0863087808A60878 -:1000C0009B0866089E08B20757088F089808D9074A -:1000D000D0071E081508FD07D30792072A088008D5 -:1000E00089089508030833081208AC0786085108E8 -:1000F000F40709080008E8078C08F7079D0754086B -:10010000EE072D088C071808CA07B807E207DF07B3 -:10011000360806087208A307F1071B088F07240892 -:100120006F0875083F08C1075A08AF07D607BB0715 -:1001300030086008A10895070C08270869083908E5 -:10014000BE0792084E08A907FA07C4074508CD075D -:100150006C08A6073C084B089807B507AB0883084E -:10016000E507A0074208EB0780074212641252130A -:1001700064125213A912CC12521321133413031612 -:1001800003163216321668168816B917B917931661 -:10019000B91743174317AA17B917B917B317501749 -:1001A0005017501750175017501750175017501717 -:1001B00050175017501750175017501750176217F5 -:1001C0006F1776177D178717055204520152035295 -:1001D000010000001E001B0018002F000100290074 -:1001E0001F0013000C003300E300E10020000900B1 -:1001F00004003400E2002A0021001A000800060072 -:10020000E000650022000A00120019000000490009 -:100210002E004A0000004D00000002542E0202543D -:1002200000002B0000005E3023000B0016000500CC -:1002300000004C0024000D0011001000E4004B00F1 -:1002400025000E0015003600E6002C0026000F00E9 -:100250001700370050002800270014000700520044 -:1002600051004E0035001C002D001D004F00000005 -:100270000100010001000100010000001E02300227 -:1002800038020100010001001F0264143800300030 -:1002900001000100200224022302270201000100C4 -:1002A000010024142514010001000100010027149D -:1002B00026140100000001000100010000000100FF -:1002C0000000010001000100000001000000010029 -:1002D0000100310021022D14000001000100640022 -:1002E00025022202010001000100640226023602FA -:1002F0000100010001000100301437023830010014 -:1003000035021F02310255300230010001000100A8 -:100310002D0201003D30000001000100010001003C -:10032000010000003A00010001000100010001008D -:100330003B00010001000100010001003C00010040 -:1003400001000100010001003D0001000100010069 -:10035000010001003E000100010001000000010059 -:100360004400010000000100000001004500010000 -:1003700000005300000001003F00010001000100E7 -:100380000000010040005F005C00590062000100B5 -:10039000410060005D005A008500010042006100DC -:1003A0005E005B00630001004300550056005700EB -:1003B0005800010067005400560057005800000024 -:1003C0000100010001000100010000004D30393042 -:1003D00001005B3001000100513058303C303B30AF -:1003E000010001005030013014145D3001000100A3 -:1003F0004A30593008145C30010001004930573050 -:100400000430003000000100053001000000010050 -:1004100000000100010001000000010000000100D7 -:100420004F305A3037301E02000001004E300100BC -:100430004B30010001000100483056305430533039 -:10044000010001004C30010003303A30010001008E -:100450005230010001000100010001000100010013 -:100460000100010001000000010001000100010085 -:100470000100000042302030343001000100010052 -:1004800046302E30263033300100010045302D300B -:100490001E3001000100010040302B3022300100ED -:1004A000010001003F3025302C3001000000010028 -:1004B0000100010000000100000001000100010036 -:1004C00000000100000001004430233031301F30B3 -:1004D00000000100433035302A302930010001008E -:1004E0003E3027303030010001000100413028301B -:1004F00032300100010001004730010021300100CD -:10050000010001000100363024302F3001000000CE -:10051000010001000100010001000000010008309D -:100520001B30010001000100010015300D301A30B0 -:10053000010001000100143006300100010001003B -:10054000010012300A3001000100010001000C30EE -:100550001330010000000100010001000000010053 -:100560000000010001000100000001000000010086 -:1005700001000B30183007300000010001001C3072 -:10058000113010300100010001000E301730010061 -:100590000100010001000F301930010001000100CD -:1005A00001000100093001000100010001001D30BF -:1005B00001001630010000000100010001000100EF -:1005C0000100000001000100010001000100010024 -:1005D0000100010001000100010001000100010013 -:1005E0000100010001000100010001000100010003 -:1005F00001000100010001000100010000000100F4 -:1006000001000100000001000000010001000100E4 -:1006100000000100000001000100010001000100D4 -:1006200000000100010001000100010001000100C3 -:1006300001000100010001000100010001000100B2 -:1006400001000100010001000100010001000100A2 -:100650000100010001000100010001000100000093 -:1006600016034500720067006F0044006F007800B9 -:10067000200045005A000000160345007200670084 -:100680006F0044006F007800200045005A00000011 -:100690000403090409026D00040100A0FA09040022 -:1006A000000103010100092111010001223F00079F -:1006B00005810308000A0904010001030102000981 -:1006C0002111010001224D000705820308000A09DB -:1006D000040200010300000009211101000122367B -:1006E000000705830308000A090403000103000052 -:1006F00000092111010001223900070584031000BF -:10070000011201100100000008EDFE0713010001B5 -:1007100002000105010906A101050719E029E715F5 -:100720000025019508750181020508190129059523 -:1007300005750191029501750391010507190029BD -:100740007715002501957875018102C005010980A2 -:10075000A101850216010026B7001A01002AB70080 -:10076000751095018100C0050C0901A101850316D2 -:100770000100269C021A01002A9C02751095018135 -:1007800000C005010902A1010901A1000509190123 -:10079000290515002501950575018102950175034F -:1007A00081010501093009311581257F9502750800 -:1007B000810609381581257F950175088106050C8C -:1007C0000A38021581257F950175088106C0C0058C -:1007D000010906A101050719E029E7150025019582 -:1007E0000875018102950175088101050819012923 -:1007F000059505750191029501750391010507198C -:100800000029FF150025FF950675088100C000002E -:10081000000000000000000000010204060A0F179B -:10082000202C3A4A5D71879DB3C7DAE9F5FCFFFCDD -:10083000F5E9DAC7B39D87715D4A3A2C20170F0A94 -:100840000604020100000000000000000000112466 -:100850001FBECFEFDAE0DEBFCDBF04B603FE24C07B -:100860008091FD019091FE01A091FF01B0910002E5 -:100870008730904BA740B04BB9F41092FD01109215 -:10088000FE011092FF011092000214BE84B7877F10 -:1008900084BF88E10FB6F8948093600010926000E6 -:1008A0000FBEE0E0FFE3099511E0A0E0B1E0ECE469 -:1008B000FFE402C005900D92A433B107D9F711E00F -:1008C000A4E3B1E001C01D92AD3FB107E1F70E9482 -:1008D000470E0C94A4270C9400001092B9008AE0F3 -:1008E0008093B800089594EA9093BC009091BC0066 -:1008F00097FFFCCF9091B900987F983021F090310C -:1009000011F081E008958093BB0084E88093BC00DF -:100910008091BC0087FFFCCF8091B900887F88312F -:1009200011F0803471F780E0089584E98093BC0071 -:100930008091BC0084FDFCCF08958093BB0084E8C7 -:100940008093BC008091BC0087FFFCCF9091B900E0 -:10095000987F81E0983209F480E0089584E88093DC -:10096000BC008091BC0087FFFCCF8091BB00089544 -:1009700080910101811115C080E40E94730480936D -:10098000010181110CC082E10E949D04809301014C -:10099000811105C08FEF0E949D04809301010E9488 -:1009A000950484B1807F84B985B1807F85B98AB18F -:1009B000837F8AB98BB1837F8BB93E98469808951F -:1009C0000E947306809301010E94B80480B38C706A -:1009D00080BB81B3836F81BBA5E3B1E0E3E4F1E0C9 -:1009E0008EE08E0F11921D928E13FCCF0C945D063B -:1009F000BF92CF92DF92EF92FF920F931F93CF930C -:100A0000DF9380910101882379F0809134018F5F19 -:100A100080933401811108C00E9473068093010104 -:100A2000811102C00E94050605E311E0C0E0D0E09C -:100A3000DD24D39482E0C82EEE24E394F12CC73059 -:100A4000D10500F580910101811164C080E40E940C -:100A5000730480930101811112C082E10E949D0400 -:100A60008093010181110BC0C7010C2E01C0880FBA -:100A70000A94EAF780950E949D04809301010E94E8 -:100A8000950448C0CA30A1F028F4C83059F0C930E4 -:100A900061F005C0CC3089F070F0CD3089F0209A3B -:100AA000289810C0219A29980DC0229A2A980AC025 -:100AB000239A2B9807C0529A01C0539A5B9802C0A0 -:100AC0003E9A469890EA9A95F1F79FB1799902C0BB -:100AD00082E001C080E091709D25982B7C9902C036 -:100AE00084E001C080E0892B7D9902C038E001C01C -:100AF00030E0832B7E9902C020E101C020E0822BF0 -:100B00009FB19095991F9927991F9295990F907E63 -:100B1000892B0FC080910101811149C080E40E949E -:100B2000730480930101882379F1B12C0E9495040C -:100B30008B2DF8019081981719F08083C0920001E5 -:100B40000E94B80421960F5F1F4FCE30D10509F0E7 -:100B500076CF80910001882361F18150809300015C -:100B6000882339F08FE99FE00197F1F700C000007A -:100B700020C0A3E4B1E0E5E3F1E0CF01825F919111 -:100B80009D938E13FCCF15C083E10E949D0480933A -:100B900001018111CACF81E40E9473048093010195 -:100BA0008111C3CF0E94AE04B82EB094BFCF80E0B5 -:100BB000C0CF0E94030681E0DF91CF911F910F917A -:100BC000FF90EF90DF90CF90BF900895E82FF0E076 -:100BD000ED5BFE4F8081089508950F931F93CF938F -:100BE000DF93C3E4D1E010E00C2F025F899190E025 -:100BF0000E94981E180F0C13F9CF812FDF91CF910F -:100C00001F910F9108950C94B50856985E982598F9 -:100C10002D9826982E9827982F988FEF90E09093F4 -:100C200089008093880090938B0080938A00909332 -:100C30008D0080938C00259A2D9A2FEF80E792E00B -:100C4000215080409040E1F700C00000269A2E9A83 -:100C50002FEF80E792E0215080409040E1F700C004 -:100C60000000279A2F9A2FEF80E792E021508040D2 -:100C70009040E1F700C0000025982D982FEF80E705 -:100C800092E0215080409040E1F700C0000026989B -:100C90002E982FEF80E792E0215080409040E1F7BE -:100CA00000C0000027982F9856985E9825982D9898 -:100CB00026982E9827982F98089589EA8093800087 -:100CC00089E08093810024982C983F988AB18F7492 -:100CD0008AB96E98479A8BB1806B8BB9769A0E94CD -:100CE00005060C94B40880E28093010180915101C3 -:100CF00081110EC00E946D0481E0809351012FEF9D -:100D000083ED90E3215080409040E1F700C0000067 -:100D100080E40E9473048093010181112EC00E941F -:100D20009D0480930101811128C00E949D0480933D -:100D30000101811122C08FE30E949D048093010173 -:100D400081111BC00E94950480E40E94730480936B -:100D50000101811112C08CE00E949D048093010169 -:100D600081110BC00E949D0480930101811105C077 -:100D70008FE30E949D04809301010E94950480915D -:100D800001010895882359F0282F30E08A3020F49B -:100D9000C901885A9F4F0895C9010697089582E6B0 -:100DA00090E008950F931F93CF93DF938C01EB0195 -:100DB0008091520190915301009709F448C0019726 -:100DC00009F089C080EE0E94A71481EE0E94A7144A -:100DD00088E10E94A71488E10E946F15C801807FF6 -:100DE000992724E0969587952A95E1F70E94C206F7 -:100DF000182F0E94A714812F0E946F15802F8F70CB -:100E00000E94C206182F0E94A714812F0E946F15FE -:100E1000CE01807F992734E0969587953A95E1F742 -:100E20000E94C206D82F0E94A7148D2F0E946F1512 -:100E30008C2F8F700E94C206C82F0E94A7148C2F7F -:100E40000E946F1580EE0E946F1581EE3EC082EE0B -:100E50000E94A71487E50E94A71487E50E946F15DA -:100E6000C801807F992744E0969587954A95E1F7D8 -:100E70000E94C206182F0E94A714812F0E946F158E -:100E8000802F8F700E94C206182F0E94A714812FF6 -:100E90000E946F15CE01807F992754E09695879523 -:100EA0005A95E1F70E94C206D82F0E94A7148D2FF1 -:100EB0000E946F158C2F8F700E94C206C82F0E944F -:100EC000A7148C2F0E946F1582EEDF91CF911F9196 -:100ED0000F910C946F15DF91CF911F910F91089591 -:100EE000FC018281882309F43CC1862F90E08F3574 -:100EF000910508F036C1FC01EA5AFF4F0C945427C3 -:100F0000809152019091530101968170992790939D -:100F100053018093520125C16FEB70E019C160E964 -:100F200070E008C061EA70E013C163E870E00BC1D3 -:100F30006BE570E081E290E012C16BEB70E008C1FC -:100F400063E570E0F7CF6EEB70E002C164E070E043 -:100F5000D4C069EB70E001C162EB70E0F9C065E8F4 -:100F600070E0F1C069E970E0F3C065E570E0E2CFE0 -:100F700068EC70E0EDC069E870E0E5C064E770E03F -:100F8000E2C062E970E0D6CF66E770E0DCC063E9FA -:100F900070E0D0CF60EC70E0DBC062EB70E0DDC0F1 -:100FA00069EA70E0D5C068EA70E0D2C064E870E039 -:100FB000CAC06DE970E0CCC067EF70E0CEC063ECF2 -:100FC00070E0C6C061EC70E0C3C069E570E0B2CF0C -:100FD00063EB70E0BDC064E570E0ACCF6DEB70E03A -:100FE000B7C066EB70E0B4C065EB70E0B1C06AEB0F -:100FF00070E0AEC067E770E0A6C060EA70E0A8C02D -:1010000062EC70E0A5C06EE970E0A2C068EB70E031 -:101010009FC067EB70E09CC062E870E094C063E43E -:1010200070E06BC061EB70E093C066EA70E090C066 -:1010300066EC70E08DC06EE170E05FC06FE970E05B -:1010400087C068E070E059C067ED70E086C060E876 -:1010500070E079C063EA70E07BC069EC70E078C052 -:1010600061E870E070C066E970E072C064EC70E046 -:101070006FC065E770E067C063E070E03EC061EBA1 -:1010800070E06BC06EEB70E068C063EB70E065C051 -:1010900065E070E032C061E970E04CCF69E770E074 -:1010A00052C064EB70E054C06CEB70E051C06AE970 -:1010B00070E04EC068E870E046C061E970E048C08A -:1010C00067E870E040C062E970E042C067E970E044 -:1010D0003FC068E770E037C060E770E034C069E0A7 -:1010E00070E00BC065EC70E033C060E670E005C0F6 -:1010F00067EA70E02DC060E070E082E290E02FC00F -:1011000064EA70E025C06CEB70E027C067EC70E02B -:101110001FC068E970E01CC069EB70E019C06BE9A2 -:1011200070E016C06FE770E00EC065EA70E010C0B6 -:101130006CE970E00DC065E970E00AC063E970E039 -:1011400007C066E870E080E290E009C064E970E002 -:1011500083E090E004C06DEB70E080E090E00E94DE -:10116000D20680E090E0089508956091BF017091EB -:10117000C0018091C1019091C2010E94A41E5698A5 -:101180005E9825982D9826982E9827982F9883302A -:10119000A9F028F4813051F0823069F012C0843017 -:1011A00041F0853071F4259A2D9A08C0259A2D9A20 -:1011B0000895259A2D9A269A2E9A0895279A2F9A5D -:1011C000089556985E98089581E0089581E0089505 -:1011D0000C94E60808950F931F93CF93DF938C012F -:1011E000FC01C081D181CE010E941D1DBE010E9463 -:1011F0009409EC01B8010E94E808882309F48DC025 -:10120000F8018281882309F44AC080915F0181112D -:101210001FC0C431F0E5DF0709F051C00E94EA08A1 -:1012200081E080935F010E943C1F90935E01809358 -:101230005D011092560110925801109257011092C0 -:101240005A011092590110925C0110925B0165C025 -:1012500080915D0190915E010E94481F883C91053C -:1012600070F480915601E82FF0E0EE0FFF1FE95A6D -:10127000FE4FD183C0838F5F809356014EC0C43828 -:1012800080E5D80721F0C538D04501F13AC0F80112 -:101290008281882341F01092540182E01EC0C4383C -:1012A000E0E5DE0759F580915401811106C086E220 -:1012B0000E94A71486E20E946F1582E01CC0C43809 -:1012C000F0E5DF0741F3C538D045D9F4F801828154 -:1012D000882331F01092550180E20E94BE151DC096 -:1012E00080915501811106C087E20E94A71487E210 -:1012F0000E946F1580E20E94C5150FC0C538D04509 -:1013000029F381E08093540180935501C801DF9156 -:10131000CF911F910F910C94E40880E0DF91CF9161 -:101320001F910F910895089596E0799FF00111247F -:1013300094E5899FE00DF11D1124E60FF11DEE0FDC -:10134000FF1FE853FE4F859194910895880F991FD0 -:10135000FC01E85BFF4F859194910895880F991FD8 -:10136000FC01E853FE4F8591949108950F931F93CC -:10137000CF93DF93EC01811520E3920750F5C1155F -:1013800080E2D80708F0C3C0CB3BD10590F4C83A3F -:10139000D10508F06AC0C53AD10508F05BC0C43079 -:1013A000D10508F0D0C1219709F0CAC101E010E0D1 -:1013B0000AC2CF3FD10511F008F0C5C1C03FD10529 -:1013C00008F0A2C0CE01805E9109089708F4BBC165 -:1013D000B7C1C13090E5D90709F4A2C020F5C031EA -:1013E0008FE4D80770F4C11590E4D90708F094C0D1 -:1013F000C11521E3D20708F0A3C1DD278E01106CCF -:10140000E2C1C115D04509F09BC10E9424188FEF9D -:1014100094E32CE0815090402040E1F700C00000B0 -:101420000E94971FD0C1C11597E5D90758F4C03164 -:1014300021E5D20708F01CC1C43180E5D80708F4C3 -:1014400075C07EC1CE0190578115904108F078C1DA -:10145000DF7073C1C53AD10509F477C1C63AD10529 -:1014600009F076C102E810E4AEC1C83AD10509F42A -:1014700072C1C93AD10509F471C1CA3AD10509F45A -:1014800070C1CB3AD10509F46FC1CC3AD10509F44A -:101490006EC1CD3AD10509F46DC1C03BD10509F447 -:1014A0006CC1CE3AD10509F46BC1CF3AD10509F42C -:1014B0006AC1C13BD10509F469C1C23BD10509F438 -:1014C00068C1C33BD10509F467C1C43BD10509F428 -:1014D00066C1C53BD10509F465C1C63BD10509F418 -:1014E00064C1C73BD10509F463C1C83BD10509F408 -:1014F00062C1C93BD10509F461C1CA3BD10509F4F8 -:1015000060C100E014E45FC18E0110655CC1CE01D2 -:101510009F700E94AE0958C1DF708E01106A53C1DE -:101520008091DC0181608093DC014DC10E943C21EF -:10153000811102C00E9422210E94592190E09093C3 -:10154000FD018093FC01C23080E5D80721F4809131 -:10155000FC01816086C0C43090E5D90721F48091F8 -:10156000FC0182607EC0C63020E5D20721F4809164 -:10157000FC01846076C0C83080E5D80719F48091FA -:10158000FC0127C0CA3090E5D90721F48091FC0105 -:10159000806167C0CC3020E5D20721F48091FC0146 -:1015A00080625FC0CE3080E5D80721F48091FC01D5 -:1015B000806457C0C03190E5D90721F48091FC01C7 -:1015C00080684FC0C23120E5D20729F48091FC0128 -:1015D0008460886046C0C33080E5D80721F48091DC -:1015E000FC018E7F3EC0C53090E5D90721F4809183 -:1015F000FC018D7F36C0C73020E5D20721F48091F1 -:10160000FC018B7F2EC0C93080E5D80719F480918A -:10161000FC0126C0CB3090E5D90721F48091FC0174 -:101620008F7E1FC0CD3020E5D20721F48091FC01D0 -:101630008F7D17C0CF3080E5D80721F48091FC0161 -:101640008F7B0FC0C13190E5D90721F48091FC0157 -:101650008F7707C0C331D04531F48091FC018B7F77 -:10166000877F8093FC018091FC010E945D21ABC0CB -:101670008D2F99278F70992781309105D9F49E017C -:101680002370332702C0880F991F2A95E2F79C68C0 -:101690008E0144E0000F111F4A95E1F700271370F7 -:1016A000802B912B53E0CC0FDD1F5A95E1F7C076CC -:1016B000DD272FC08230910531F4DC2FCC278E013D -:1016C000016F106A80C08330910569F4CE01837088 -:1016D000992701E010E002C0000F111F8A95E2F780 -:1016E000C8019C680FC084309105B9F4CE018370A5 -:1016F000992701E010E002C0000F111F8A95E2F760 -:10170000C8019A6823E0CC0FDD1F2A95E1F7C07E5F -:10171000D7708C010C2B1D2B56C08530910531F4F0 -:10172000DC2FCC278E01046F106A4DC0069709F09C -:101730004AC0CF71DD27DC2FCC278E01106243C059 -:1017400000E010E040C08E013EC001E810E43BC064 -:1017500003E810E438C002EE14E435C009EE14E4E6 -:1017600032C00AEE14E42FC005EB14E42CC006EBE3 -:1017700014E429C007EB14E426C00CEC14E423C0E5 -:101780000DEC14E420C003E815E41DC00AE815E4DC -:101790001AC002E915E417C004E915E414C001E217 -:1017A00016E411C003E216E40EC004E216E40BC016 -:1017B00005E216E408C006E216E405C007E216E4F6 -:1017C00002C00AE216E4C801DF91CF911F910F9188 -:1017D000089596E0799FF001112494E5899FE00D2A -:1017E000F11D1124E60FF11DEE0FFF1FE853FE4F10 -:1017F00085919491803E9105E0F4803C910558F5E7 -:101800008133910509F46FC048F48932910509F4D8 -:1018100063C08A32910509F46DC072C089339105A5 -:10182000E9F082389105D1F08533910509F44DC076 -:1018300067C0833E910581F138F4803E9105B9F08F -:10184000823E9105D9F05CC0863E910561F1873EEC -:101850009105A1F155C00E94A60908952091FC01AF -:1018600020FD02C021FF4CC080EE90E049C0809175 -:10187000FC0180FFF9CF89E390E042C08091FC0138 -:1018800082FF0EC08091FC0184FF03C080E090E0E5 -:1018900037C083EE90E034C08091FC0182FFF2CF2C -:1018A00082EE90E02DC08091FC0183FF0BC08091FF -:1018B000FC0184FDEBCF87EE90E022C08091FC011B -:1018C00083FFF5CF86EE90E01BC08091FC0185FF81 -:1018D00007C089E290E014C08091FC0185FFF9CF38 -:1018E00085E390E00DC08091FC0186FF07C08AE28D -:1018F00090E006C08091FC0186FFF9CF81E390E083 -:101900000E94B609089508950C94830C809170018B -:101910000895CF93DF9300D01F92CDB7DEB79C011F -:101920008091F301843019F593E099833B832A83F6 -:101930009093E9008FEF9091E800815095FD06C0EB -:1019400095ED9A95F1F700008111F5CF8091E800AF -:1019500085FF0DC040E050E063E070E0CE010196ED -:101960000E94F30E8091E8008E778093E8000F903C -:101970000F900F90DF91CF910895CF93DF9300D018 -:101980001F92CDB7DEB72091F301243021F522E07C -:1019900029839B838A8383E08093E9008FEF909172 -:1019A000E800815095FD06C095ED9A95F1F700008D -:1019B0008111F5CF8091E80085FF0DC040E050E037 -:1019C00063E070E0CE0101960E94F30E8091E80082 -:1019D0008E778093E8000F900F900F90DF91CF915A -:1019E00008952091F3012430F1F422E02093E900DE -:1019F0002FEF3091E800215035FD06C035ED3A95C6 -:101A0000F1F700002111F5CF2091E80025FF0BC070 -:101A100040E050E065E070E00E94F30E8091E80045 -:101A20008E778093E8000895CF93DF93EC01909137 -:101A3000F301943009F046C080910C018823D9F05D -:101A400080910D018823B9F09093E9008FEF909178 -:101A5000E800815095FD06C095E19A95F1F70000E8 -:101A60008111F5CF8091E80085FF2CC040E050E067 -:101A700060E170E017C081E08093E9008FEF909102 -:101A8000E800815095FD06C095ED9A95F1F70000AC -:101A90008111F5CF8091E80085FF14C040E050E04F -:101AA00068E070E0CE010E94F30E8091E8008E772E -:101AB0008093E80080E1FE01A0E6B1E001900D9284 -:101AC0008A95E1F7DF91CF9108958091F20181111C -:101AD00009C00E9488100E94E5108091E200846095 -:101AE0008093E20008951092F201089508950C94F5 -:101AF000CC250E942D1F0E94D2250E948B130C948E -:101B0000840C42E061EC81E00E94021042E061EC52 -:101B100082E00E94021042E061EC83E00E94021029 -:101B200042E161EC84E00C9402108091F501833075 -:101B300009F455C030F4813071F0823009F48EC060 -:101B400008958A3009F47AC08B3009F460C0893076 -:101B500009F09CC020C08091F401813A09F096C040 -:101B60008091E800877F8093E8008091F801909150 -:101B7000F901892B21F460E180E691E003C060E087 -:101B800080E090E070E00E943E0F8091E8008B774B -:101B90008093E80008958091F401813209F076C0C5 -:101BA0008091F8019091F901009719F0039709F0DD -:101BB0006DC08091E800877F8093E8008091E80005 -:101BC00082FD05C08091F3018111F8CF5FC0809143 -:101BD000F100809370018091E8008B7753C0809171 -:101BE000F401813A09F052C08091F8019091F90115 -:101BF000892B09F04BC08091E800877F8093E80033 -:101C00008091E80080FFFCCF80910C0136C080916C -:101C1000F4018132D9F58091F8019091F901892B75 -:101C2000A9F58091E800877F8093E8000E94371033 -:101C30008091F60180930C010C9424188091F4019A -:101C4000813221F58091E800877F8093E8000E942F -:101C500037108091F7018093710108958091F4010C -:101C6000813AA1F48091E800877F8093E800809119 -:101C7000E80080FFFCCF809171018093F10080919A -:101C8000E8008E778093E8000C943710089584B7AD -:101C9000877F84BF88E10FB6F8948093600010922C -:101CA00060000FBE90E080E80FB6F894809361006A -:101CB000909361000FBE0E94DA130E9488100E9468 -:101CC000E5108091E20084608093E20078940E94A5 -:101CD0006B130E94DC1382E091E00E9486130E9445 -:101CE000BA258091F301853069F40E94F41E809139 -:101CF000F1018823B1F30E941F1F882391F30E94F2 -:101D0000DD0EEFCF0E94E213ECCF292F33272330D3 -:101D10003105C9F064F42130310581F022303105FC -:101D200009F043C08DE690E024E936E042C021325C -:101D30003105F1F02232310541F137C082E190E006 -:101D400021E037E036C099278130910541F082309B -:101D5000910541F0892B49F5E0E9F6E005C0E8E797 -:101D6000F6E002C0E0E6F6E0849190E09F0121C039 -:101D70006430D8F4E62FF0E0EE0FFF1FEE5DFE4F6B -:101D80002081318189E090E014C0643070F470E00B -:101D9000FB01EE0FFF1FE65EFE4F20813181FB014C -:101DA000EA5EFE4F808190E004C080E090E020E099 -:101DB00030E0FA0131832083089580E189BD82E11A -:101DC00089BD09B400FEFDCF8091D8008F7D80933E -:101DD000D8008091E00082608093E0008091E00074 -:101DE00081FDFCCF0895CF92DF92EF92FF920F9387 -:101DF0001F93CF93DF93EC018B016A010E94561071 -:101E0000811133C0C114D10439F0F6018081918170 -:101E1000081B190BC80FD91FE12CF12C0115110556 -:101E200019F18091E80085FD16C08091E8008E7759 -:101E30008093E800C114D10449F0F60180819181BA -:101E4000E80EF91EF182E08285E00FC00E94561074 -:101E5000882321F30AC089918093F1000150110970 -:101E6000FFEFEF1AFF0ADACF80E0DF91CF911F91E9 -:101E70000F91FF90EF90DF90CF9008952091FA019D -:101E80003091FB012617370748F06115710539F4C9 -:101E90002091E8002E772093E80001C0B90140E0CE -:101EA00061157105A9F12091F301222309F443C0C2 -:101EB000253009F442C02091E80023FD40C0209164 -:101EC000E80022FD32C02091E80020FFE9CF4091D8 -:101ED000F3002091F20030E0342BFC01CF016115BA -:101EE000710559F02830310540F481918093F1005B -:101EF000615071092F5F3F4FF1CF41E0283031052C -:101F000009F040E02091E8002E772093E800C8CF48 -:101F10004111C9CF0AC08091F301882361F0853057 -:101F200061F08091E80083FD0AC08091E80082FFA3 -:101F3000F2CF80E0089582E0089583E0089581E083 -:101F400008952091FA013091FB012617370748F0D8 -:101F50006115710539F42091E8002E772093E8008F -:101F600001C0B901FC0120E06115710591F180917A -:101F7000F301882309F440C0853009F43FC0809103 -:101F8000E80083FD3DC08091E80082FD2FC0809174 -:101F9000E80080FFE9CF2091F3008091F20090E00B -:101FA000922B6115710559F08830910540F4249108 -:101FB0002093F1003196615071090196F2CF21E032 -:101FC000089709F020E08091E8008E778093E80080 -:101FD000CBCF2111CCCF0AC08091F301882361F0CF -:101FE000853061F08091E80083FD0AC08091E800AF -:101FF00082FFF2CF80E0089582E0089583E00895A3 -:1020000081E00895982F973058F59093E90098173C -:1020100039F07091EC002091ED005091F00003C078 -:10202000242F762F50E021FF19C03091EB003E7F26 -:102030003093EB003091ED003D7F3093ED00309117 -:10204000EB0031603093EB007093EC002093ED00D7 -:102050005093F0002091EE0027FF07C09F5FD3CF81 -:102060008F708093E90081E0089580E00895809169 -:10207000F40187FF11C08091E80082FD05C08091C6 -:10208000F3018111F8CF11C08091E8008B770BC06C -:102090008091F301882349F08091E80080FFF8CF18 -:1020A0008091E8008E778093E80008952091E40005 -:1020B0003091E50095E64091EC00842F817040FF5F -:1020C00022C08091E80080FD1CC08091F30188232C -:1020D00091F0853091F08091EB0085FD10C040912A -:1020E000E4005091E5004217530729F39A019150FB -:1020F00011F784E0089582E0089583E0089581E077 -:10210000089580E008954091E80042FFDECF0895F1 -:102110000E94F6100E94FE10E0EEF0E080818160E7 -:102120008083E8EDF0E080818F77808319BCA7ED94 -:10213000B0E08C918E7F8C9380818F7E8083109213 -:10214000F20108950F931F93CF93DF930E94F6102F -:102150000E94FE10C8EDD0E088818F778883888147 -:102160008068888388818F7D888319BC1092F301F1 -:102170001092EF011092F1011092F00100EE10E0C8 -:10218000F80180818B7F808388818160888342E031 -:1021900060E080E00E940210E1EEF0E080818E7F3E -:1021A0008083E2EEF0E080818160808380818860BE -:1021B0008083F80180818E7F80838881806188831D -:1021C000DF91CF911F910F910895E8EDF0E08081AC -:1021D0008F7E8083E7EDF0E080818160808384E002 -:1021E00082BF81E08093F2010C94A210E8EDF0E050 -:1021F00080818E7F80831092E20008951092DA0031 -:102200001092E10008951F920F920FB60F921124C1 -:102210002F933F934F935F936F937F938F939F93EE -:10222000AF93BF93EF93FF938091E10082FF0BC0C8 -:102230008091E20082FF07C08091E1008B7F809354 -:10224000E1000E946A138091DA0080FF1FC0809134 -:10225000D80080FF1BC08091DA008E7F8093DA0067 -:102260008091D90080FF0DC080E189BD82E189BDE8 -:1022700009B400FEFDCF81E08093F3010E94650D5B -:1022800005C019BC1092F3010E94730D8091E1000A -:1022900080FF19C08091E20080FF15C08091E200AC -:1022A0008E7F8093E2008091E20080618093E20063 -:1022B0008091D80080628093D80019BC85E080931B -:1022C000F3010E94770D8091E10084FF30C080917E -:1022D000E20084FF2CC080E189BD82E189BD09B4A0 -:1022E00000FEFDCF8091D8008F7D8093D800809133 -:1022F000E1008F7E8093E1008091E2008F7E8093E9 -:10230000E2008091E20081608093E2008091EF0121 -:10231000882311F084E007C08091E30087FD02C0AC -:1023200081E001C083E08093F3010E94790D8091E8 -:10233000E10083FF29C08091E20083FF25C08091E6 -:10234000E100877F8093E10082E08093F3011092A7 -:10235000EF018091E1008E7F8093E1008091E200A7 -:102360008E7F8093E2008091E20080618093E200A2 -:1023700042E060E080E00E9402108091F0008860FE -:102380008093F0000E94760DFF91EF91BF91AF9185 -:102390009F918F917F916F915F914F913F912F917D -:1023A0000F900FBE0F901F9018951F920F920FB6AF -:1023B0000F9211242F933F934F935F936F937F93CB -:1023C0008F939F93AF93BF93CF93DF93EF93FF933D -:1023D000C091E900CF708091EC00D82FD17080FDC2 -:1023E000D0E81092E9008091F000877F8093F000A0 -:1023F00078940E9419121092E9008091F000886090 -:102400008093F000CD2BCF70C093E900FF91EF9146 -:10241000DF91CF91BF91AF919F918F917F916F91FC -:102420005F914F913F912F910F900FBE0F901F9092 -:1024300018951F93CF93DF93CDB7DEB7AA970FB64A -:10244000F894DEBF0FBECDBFE4EFF1E088E08E0F61 -:102450009091F10091938E13FBCF0E94950D809186 -:10246000E80083FF1FC18091F4019091F501492F8D -:1024700050E04A30510508F015C1FA01EB54FF4F06 -:102480000C945427803881F0823809F00BC1809178 -:10249000F8018F708093E9008091EB0085FB88271D -:1024A00080F91092E90006C08091F0019091F1014D -:1024B000911182609091E800977F9093E80080935B -:1024C000F1001092F100C8C0282F2D7F09F0EAC05A -:1024D000882319F0823061F0E5C08091F6018130E7 -:1024E00009F0E0C0933009F080E08093F1012BC047 -:1024F0008091F601811127C08091F8018F7009F455 -:10250000D1C08093E9002091EB0020FF1CC09330E4 -:1025100021F48091EB00806214C09091EB009061F7 -:102520009093EB0021E030E0A90102C0440F551F59 -:102530008A95E2F74093EA001092EA008091EB005E -:1025400088608093EB001092E9008091E800877F1B -:1025500086C08111A7C01091F6011F778091E3001A -:102560008078812B8093E3008091E800877F8093BF -:10257000E8000E9437108091E80080FFFCCF809136 -:10258000E30080688093E300111102C082E001C083 -:1025900083E08093F30186C08058823008F082C0C7 -:1025A0008091F6019091F7018C3D53E0950779F504 -:1025B00083E08A838AE289834FB7F894DE01139619 -:1025C00020E03EE051E2E32FF0E050935700E49129 -:1025D00020FF03C0E295EF703F5FEF708E2F90E019 -:1025E000EA3010F0C79601C0C0968D939D932F5F7F -:1025F000243149F74FBF8091E800877F8093E8003E -:102600006AE270E0CE0101960E943E0F14C0AE0156 -:102610004F5F5F4F6091F8010E94850EBC010097EB -:1026200009F440C09091E800977F9093E800898179 -:102630009A810E94A10F8091E8008B778093E80037 -:1026400031C0803879F58091E800877F8093E80079 -:102650008091EF018093F1008091E8008E77809364 -:10266000E8000E9437101EC081111CC09091F60135 -:102670009230C0F48091E800877F8093E8009093C7 -:10268000EF010E9437108091EF01811106C0809107 -:10269000E30087FD02C081E001C084E08093F30184 -:1026A0000E94810D8091E80083FF0AC08091E800BC -:1026B000877F8093E8008091EB0080628093EB003D -:1026C000AA960FB6F894DEBF0FBECDBFDF91CF91B3 -:1026D0001F9108950895CF938091F3018823A1F06D -:1026E000C091E900CF709091EC00892F817090FD2E -:1026F00080E8C82B1092E9008091E80083FD0E94D9 -:102700001912CF70C093E900CF910895909377018B -:10271000809376010895E0917601F09177013097EA -:1027200021F00190F081E02D099480E00895E0917E -:102730007601F0917701309721F00280F381E02D4E -:1027400009940895E0917601F0917701309721F096 -:102750000480F581E02D0994089520917401309151 -:1027600075018217930771F090937501809374013E -:10277000E0917601F0917701309721F00680F781A2 -:10278000E02D099408952091720130917301821710 -:10279000930771F09093730180937201E091760139 -:1027A000F0917701309721F00084F185E02D0994B4 -:1027B000089508950C94D9130E94331F0E94E004D9 -:1027C0000C94F51F9F92AF92BF92CF92DF92EF923F -:1027D000FF920F931F93CF93DF9300D000D000D0D0 -:1027E000CDB7DEB70E94F8040DE010E0AA24A39450 -:1027F000B12C902E802F0E94E605980127583E4F5D -:102800006901F901F080F826A1F40150110988F757 -:102810008FEF89838A831B820E943C1F8160782FFF -:102820009D838C8349815A816B818D810E947914AB -:102830002FC09091DC0191FF04C08E830E94EC05B3 -:102840008E8125E030E0A501022E01C0440F0A94DC -:10285000EAF7E42E4F21C1F029839A828E2191E07C -:1028600009F490E09B830E943C1F8160782F9D8338 -:102870008C8349815A816B818D810E947914F60184 -:102880008081E826E08204C021503109E0F6BDCF06 -:102890000E94DC22109178010E948B131817B9F066 -:1028A0000E948B138093780126960FB6F894DEBFB2 -:1028B0000FBECDBFDF91CF911F910F91FF90EF9091 -:1028C000DF90CF90BF90AF909F900C94840C269691 -:1028D0000FB6F894DEBF0FBECDBFDF91CF911F9131 -:1028E0000F91FF90EF90DF90CF90BF90AF909F90AF -:1028F0000895CF93DF93CDB7DEB72B970FB6F8943B -:10290000DEBF0FBECDBF4F83588769877A878B871D -:10291000DE01119686E0FD0111928A95E9F785E0C6 -:10292000FE01379601900D928A95E1F749815A810F -:102930006B817C818D819E810E94C21A2B960FB67D -:10294000F894DEBF0FBECDBFDF91CF910895CF9336 -:10295000882309F4C2C0C82F823859F40E948B130F -:1029600081FDBBC089E30E949C1D0E94691E89E312 -:102970000CC0833879F40E948B1380FDAEC083E5D0 -:102980000E949C1D0E94691E83E50E94DE1DCF915E -:102990000C94691E843859F40E948B1382FD9DC0EB -:1029A00087E40E949C1D0E94691E87E4EECF8CEF95 -:1029B0008C0F813A48F48C2F0E941F2581118DC005 -:1029C0008C2F0E949C1DE3CF80E28C0F883048F44E -:1029D000C77081E001C0880FCA95EAF70E94221EE5 -:1029E000D6CF8BE58C0F833078F4C53A29F0C63A00 -:1029F00031F083E890E005C081E890E002C082E811 -:102A000090E0CF910C94AD1388E58C0F833108F0E2 -:102A100064C0C83A39F1C93A41F1CA3A49F1CB3AEE -:102A200051F1CC3A59F1CD3A61F1C03B69F1CE3A5E -:102A300071F1CF3A79F1C13B81F1C23B89F1C33BDE -:102A400091F1C43B99F1C53BA1F1C63BA9F1C73B4C -:102A5000B1F1C83BB9F1C93BC1F1CA3BC9F180E052 -:102A600090E038C082EE90E035C089EE90E032C050 -:102A70008AEE90E02FC085EB90E02CC086EB90E0D2 -:102A800029C087EB90E026C08CEC90E023C08DEC51 -:102A900090E020C083E891E01DC08AE891E01AC070 -:102AA00082E991E017C084E991E014C081E292E0EC -:102AB00011C083E292E00EC084E292E00BC085E296 -:102AC00092E008C086E292E005C087E292E002C090 -:102AD0008AE292E0CF910C94C313CF91089588239A -:102AE00009F44BC0823859F40E948B1381FF45C012 -:102AF00089E30E949C1D0E94691E89E30CC08338F3 -:102B000071F40E948B1380FF38C083E50E949C1DE6 -:102B10000E94691E83E50E94DE1D0C94691E8438A4 -:102B200059F40E948B1382FF28C087E40E949C1DE9 -:102B30000E94691E87E4EFCF9CEF980F913A58F3FB -:102B400090E2980F983050F4877091E001C0990F8F -:102B50008A95EAF7892F0E94281EDFCF9BE5980F00 -:102B6000933020F480E090E00C94AD13885A8331C8 -:102B700020F480E090E00C94C3130895882321F0A2 -:102B80000E94221E0C94691E0895882321F00E9441 -:102B9000281E0C94691E08957F928F929F92AF9287 -:102BA000BF92CF92DF92EF92FF920F931F93CF933A -:102BB000DF931F92CDB7DEB77C01C62E772EFC01C6 -:102BC000058102950F70128111110E943F1E0E9413 -:102BD000951D882379F0112369F080E28C0D8830EF -:102BE00048F082E00E947E1D0E94951D91E0D82E43 -:102BF000D92601C0D12CE72DE295EF70F0E0E15429 -:102C0000FF4F0C945427872D807F072D0F7088234A -:102C100011F00295007F112389F0002309F490C17F -:102C200080E28C0D883020F4802F0E94221E03C089 -:102C3000802F0E94321E0E94691E82C18C2D0E942C -:102C40006F15002309F495C180E28C0D883020F4C3 -:102C5000802F0E94281E03C0802F0E94381E0E94D1 -:102C6000691E87C1972D907F872D8F70903211F04C -:102C70008295807FCC2021F0F1E0CF16B1F01EC00C -:102C8000112349F0002309F414C1013009F011C1E6 -:102C90000E94521E6EC1002319F0013009F469C16F -:102CA00089830E94551E89810AC1112321F00230B7 -:102CB00008F05FC1FEC001115CC101C1112321F008 -:102CC000002309F4F6C03CC1002309F4F8C03EC15A -:102CD000872D86958695837090E0009719F001976F -:102CE00061F047C1112321F08C2D972D937002C004 -:102CF00080E090E00E94AD133CC1112321F08C2DA7 -:102D0000972D937002C080E090E00E94C31331C100 -:102D10008C2D112319F00E94E42102C00E944C2244 -:102D20000E94D12226C1872D837009F052C0111153 -:102D300020C18C2D829586958770880F880F9C2DD9 -:102D40009F70892E912CA12CB12C082E04C0880CC8 -:102D5000991CAA1CBB1C0A94D2F7C4FE14C00FE035 -:102D600010E020E030E0B901A80104C0440F551F75 -:102D7000661F771F8A95D2F7CB01BA0160957095CF -:102D80008095909503C060E070E0CB01272D2695DB -:102D90002695237030E02230310569F0233031056B -:102DA00089F0682979298A299B292130310571F018 -:102DB0000E940A1CDEC0682979298A299B290E9461 -:102DC000261CD7C00E940A1CC501B4010E94EE1B3C -:102DD000D0C0112319F0872D817001C086958823FA -:102DE00009F4C7C08C2D829586958770880F880F4F -:102DF0009C2D9F70892E912CA12CB12C082E04C0E3 -:102E0000880C991CAA1CBB1C0A94D2F7C4FE14C0DF -:102E10000FE010E020E030E0B901A80104C0440F49 -:102E2000551F661F771F8A95D2F7CB01BA016095AF -:102E300070958095909503C060E070E0CB01272DE0 -:102E4000269526952370422F50E04230510569F0B7 -:102E50004330510589F0682979298A299B29413015 -:102E6000510571F00E94E41C84C0682979298A29DF -:102E70009B290E94001D7DC00E94E41CC501B40175 -:102E80000E94C81C76C08C2D90E0FC01E05EF10928 -:102E9000E531F10508F050C0E153FF4F0C94542781 -:102EA0000C2D0F70872D8F71112331F00E94611C42 -:102EB000802F0E94BE155DC00E94821C802F0E9440 -:102EC000C51557C0112339F0011153C0872D8F71DB -:102ED0000E94A71C4EC0023008F04BC0F7CF112350 -:102EE00039F0872D8F710E94611C43C01123C9F3F3 -:102EF000872D8F710E94821C3CC0112329F0872DE1 -:102F00008F710E944C1C35C00E94421C32C011239C -:102F100051F0172D1F71812F0E94611C63E0812FDA -:102F20000E94751D26C081E00E947E1D023008F1BE -:102F300082E00E947E1D1DC0112331F0002389F222 -:102F40008C2D0E94A71415C0002391F28C2D0E9495 -:102F50006F150FC0472D4F706C2DC7010E94700771 -:102F60000E94661B06C0472D4F706C2DC7010E9442 -:102F70009309DD20F9F00E94711D80FD1BC0F7014F -:102F800012820E946B1D0E94611CC7010E94E917FA -:102F90000E946B1D0F90DF91CF911F910F91FF90B9 -:102FA000EF90DF90CF90BF90AF909F908F907F90E9 -:102FB0000C94821C0F90DF91CF911F910F91FF9085 -:102FC000EF90DF90CF90BF90AF909F908F907F90C9 -:102FD00008950F931F93CF93DF93EC01888199811C -:102FE0002B813C81232BB9F09F3F11F48F3F99F047 -:102FF000CE010E94EB08882371F0688179818A8173 -:103000000E94671D8C010E941C1D0E94E31BB801D9 -:10301000CE010E94CC15DF91CF911F910F910895A1 -:103020000E943F1E0E944F1E0E94141E0E94691E95 -:103030000E9482230E94D12280E090E00E94AD1382 -:1030400080E090E00C94C3130E942F1E0C94101883 -:103050000E945C1D292F22952F7030E02C30310505 -:103060004CF42A3031056CF42250310922303105FC -:10307000A8F407C02C30310569F02F30310551F02C -:103080000DC0803F69F018F4803E40F409C0843FD1 -:1030900029F406C093FB882780F9089580E00895FD -:1030A00081E00895CF93DF9300D000D01F92CDB779 -:1030B000DEB70F900F900F900F900F90DF91CF9190 -:1030C0000895CF93DF9300D000D000D0CDB7DEB706 -:1030D00026960FB6F894DEBF0FBECDBFDF91CF911D -:1030E00008951F93CF93DF93C091870116E08091DD -:1030F0008801C81799F0D0E01C9FF0011D9FF00DCA -:103100001124E757FE4F4081518162817381848190 -:1031100095810E9461182196C770E9CFDF91CF9108 -:103120001F9108954091B9015091BA016091BB017E -:103130007091BC018091BD019091BE010C94611809 -:103140008091BE0182958F7009F054C08091BB01BF -:10315000882309F44FC080918701A0918801609174 -:10316000B9017091BA014091BC015091BD01B6E026 -:103170008A1709F43FC090E041155105C1F17F3F26 -:1031800011F46F3FA1F1B89FF001B99FF00D112428 -:10319000E757FE4F218172132AC02081621327C096 -:1031A0002281211124C0238134812417350710F492 -:1031B00021503109241B350B283C3105C0F42091E6 -:1031C000BE012F7020612093BE0126E0289FF001F0 -:1031D000299FF00D1124E257FE4F80818F7080618E -:1031E000808389EB91E00E94E9170C947118019695 -:1031F0008770BECF0895CF92DF92EF92FF920F9328 -:103200001F93CF93DF93CDB7DEB762970FB6F894D5 -:10321000DEBF0FBECDBF8C0185E0F801DE011D963B -:1032200001900D928A95E1F7D8014C9111965C912D -:10323000119712966C9112971396CD90DC9014977B -:103240003091B9017091BA018091BC019091BD019A -:10325000009709F46BC17F3F19F43F3F09F466C141 -:10326000E090BB01EE2009F4C0C02091BE01C81659 -:10327000D90628F0F601E81BF90BCF0104C08095B0 -:1032800090958C0D9D1DFF24F394883C910578F05A -:10329000F12C207F09F0C6C07C2DD98AC88A898983 -:1032A0000E94521889EB91E00E94E917B1C0822F69 -:1032B000807F09F046C0751314C0341312C0611129 -:1032C00010C02F7020612093BE010E94921889EBDC -:1032D00091E00E94E9178091BE01D80115968C9368 -:1032E0002EC0CD2819F15F3F11F44F3FF9F0F62EB3 -:1032F00061111CC0809187012091880136E08217FE -:1033000009F45AC090E0389FF001399FF00D112464 -:10331000E757FE4F7181571306C07081471303C0F2 -:103320007281711103C001968770E9CFF62E662372 -:1033300009F418C18091BE0181608093BE01F12C17 -:1033400011C1751308C0341306C0611104C0809107 -:10335000BE01D801C3C04D875E878D859E856A8B6F -:103360000E9428186A898823E1F16623D1F120910F -:10337000BE01822F82958F7090E0029774F0809149 -:10338000B9019091BA0198878F831986DB86CA8626 -:103390002C87CE0107960E94E91786E0F801A9EB79 -:1033A000B1E001900D928A95E1F70E94A0180E9469 -:1033B0009218FF24F394D6C04D875E878D859E8535 -:1033C0000E945C1D292F22952F7030E0223031059C -:1033D0000CF0BCC09F7009F0B6C0805E883008F465 -:1033E000C1C0C8010E94E917E4CFC816D90608F485 -:1033F00053C0F601E81BF90BCF01883C910508F496 -:1034000050C0F12C7C2DD98AC88A89890E94521813 -:10341000E9EBF1E086E0DF011D928A95E9F70E9471 -:103420009218A0C0751314C0341312C0611110C0DB -:103430008091BE01F8018583C8010E94E91786E0EA -:10344000E9EBF1E0DF011D928A95E9F7FE2C8AC0D5 -:103450004D875E878D859E856A8B0E9428186A89B4 -:10346000882309F4BECF662309F4BBCF2091BE01A7 -:10347000822F82958F7090E002970CF48ECF80910E -:10348000B9019091BA019A8389831B82DD82CC8233 -:103490002E83CE0101967FCF809590958C0D9D1D3A -:1034A000ACCFF62E662309F49CCF75132EC03413CF -:1034B0002CC02091BE0120FD1FC0822F82958F70ED -:1034C000D9F0D80115962C9315978F3049F08F5F5E -:1034D000982F9295907F822F8F70892B15968C93C1 -:1034E000C8010E94E91786E0F801A9EBB1E001905C -:1034F0000D928A95E1F793CF86E0F801A9EBB1E050 -:1035000001900D928A95E1F72DC04D875E878D85DC -:103510009E850E942818811140CF8091BE01816054 -:103520008093BE01C8010E94E9171CC0662309F4FC -:1035300058CF4D875E878D859E850E9428188823E9 -:1035400009F44FCF2ACF811148CF0CC02430310568 -:103550000CF047CF9F7009F440CFF8019581907F20 -:1035600009F03BCF8F2D62960FB6F894DEBF0FBEE9 -:10357000CDBFDF91CF911F910F91FF90EF90DF9022 -:10358000CF9008951F93CF93DF93CDB7DEB72C97DD -:103590000FB6F894DEBF0FBECDBF4F835887698743 -:1035A0007A878B879C87CE0107960E94FB18882319 -:1035B00069F08F8198852A853B85232BF1F19F3F08 -:1035C00009F063C08F3F09F060C037C086E0FE019C -:1035D0003796DE01119601900D928A95E1F76F8181 -:1035E0007885EA85FB85309741F17F3F11F46F3F85 -:1035F00021F12091880130E0C90101968770992757 -:103600004091870150E08417950709F447C069830A -:103610007A83FD83EC8396E0929FD001939FB00D57 -:103620001124A757BE4FFE01319601900D929A9535 -:10363000E1F7809388010E94711816E0809187015C -:10364000909188018917C1F1189FC00111248757F3 -:103650009E4F0E94FB18882379F1E09187011E9FFD -:10366000F0011124E757FE4F40815181628173813F -:10367000848195810E9461188091870190E0019674 -:103680008770992780938701D9CF4F8158856985A5 -:103690007A858B859C850E946118CFCF0E94241863 -:1036A0001092880110928701E9EBF1E086E0DF01DA -:1036B0001D928A95E9F7C1CF2C960FB6F894DEBF1C -:1036C0000FBECDBFDF91CF911F910895EF92FF9272 -:1036D0000F931F93CF93DF938C01009709F46CC075 -:1036E000F12CEE24E394E8012196F80184918437CB -:1036F00040F4843008F051C0813081F0823019F1FB -:103700005BC0853709F444C0A8F19CE7980F903757 -:1037100008F052C08F770E946F1541C00E5F1F4F97 -:10372000FE01C49180E28C0F883048F4C7708E2D62 -:1037300001C0880FCA95EAF70E94421E14C08C2F60 -:103740000E94A7142DC00E5F1F4FFE01C49180E29E -:103750008C0F883058F4C7708E2D01C0880FCA9521 -:10376000EAF70E94481E0E94691E1AC08C2F0E9410 -:103770006F1516C00E5F1F4FFE01C491CC2381F060 -:103780008FE99FE00197F1F700C00000C150F6CF2C -:103790000E5F1F4FFE01F49003C00E94A7148E011C -:1037A0008F2D882309F49FCFEFE9FFE03197F1F7E0 -:1037B00000C000008150F5CFDF91CF911F910F9194 -:1037C000FF90EF90089508956093C3017093C40132 -:1037D0008093C5019093C6010C9410180F931F930A -:1037E0000091C3011091C4012091C5013091C6011F -:1037F000DC01CB01802B912BA22BB32B8093C30137 -:103800009093C401A093C501B093C6011F910F917D -:103810000C9410180F931F930091C3011091C401D1 -:103820002091C5013091C601DC01CB018023912399 -:10383000A223B3238093C3019093C401A093C50135 -:10384000B093C6011F910F910C9410180F931F9302 -:103850000091C3011091C4012091C5013091C601AE -:10386000DC01CB0180279127A227B3278093C301D6 -:103870009093C401A093C501B093C6011F910F910D -:103880000C9410181092BF011092C0011092C10147 -:103890001092C2010C94101841E050E060E070E01A -:1038A00004C0440F551F661F771F8A95D2F74093B7 -:1038B000BF015093C0016093C1017093C2010C9489 -:1038C000101841E050E060E070E004C0440F551F64 -:1038D000661F771F8A95D2F78091BF019091C00132 -:1038E000A091C101B091C201482B592B6A2B7B2BAF -:1038F0004093BF015093C0016093C1017093C20116 -:103900000C94101841E050E060E070E004C0440FF7 -:10391000551F661F771F8A95D2F740955095609581 -:1039200070958091BF019091C001A091C101B091AB -:10393000C201482359236A237B234093BF0150933C -:10394000C0016093C1017093C2010C94101841E052 -:1039500050E060E070E004C0440F551F661F771F01 -:103960008A95D2F78091BF019091C001A091C101C9 -:10397000B091C201482759276A277B274093BF018E -:103980005093C0016093C1017093C2010C94101850 -:103990000F931F930091BF011091C0012091C101AD -:1039A0003091C201DC01CB01802B912BA22BB32BD8 -:1039B0008093BF019093C001A093C101B093C20155 -:1039C0001F910F910C9410180F931F930091BF013A -:1039D0001091C0012091C1013091C201DC01CB01E5 -:1039E00080239123A223B3238093BF019093C0012E -:1039F000A093C101B093C2011F910F910C941018B4 -:103A00000F931F930091BF011091C0012091C1013C -:103A10003091C201DC01CB0180279127A227B32777 -:103A20008093BF019093C001A093C101B093C201E4 -:103A30001F910F910C9410180895CF92DF92EF927E -:103A4000FF920F931F93CF93DF938C01C090C3011C -:103A5000D090C401E090C501F090C6018091BF01F3 -:103A60009091C001A091C101B091C201C82AD92A88 -:103A7000EA2AFB2ACFE1D0E0D701C6010C2E04C010 -:103A8000B695A795979587950A94D2F780FF06C0BB -:103A9000B8018C2F0E94E90B019721F4219760F760 -:103AA00080E001C08C2FDF91CF911F910F91FF908B -:103AB000EF90DF90CF900895CF93DF93EC010E94B9 -:103AC0001D1DBE010E94E90BDF91CF910895CB012E -:103AD0000E945C1D08958091C70185958595859507 -:103AE00008958091C7018770089598E0899F90019B -:103AF0001124262B2093C7010C94611C2091C7012F -:103B0000809582238093C701982F977069F430E0E5 -:103B1000482F552747FD50952417350729F08595DF -:103B2000859585950C94821C08959091C701977096 -:103B300081E009F480E0089590910C01992321F02F -:103B400090910D01911109C020910E0130910F014A -:103B5000F90132969FEF40E01FC0982F96959695F9 -:103B600096959F3050F5E0910E01F0910F01E90F0D -:103B7000F11D877021E030E0A90102C0440F551FFC -:103B80008A95E2F7CA019181892B818308959F3F2D -:103B900039F04F5F4E3041F051915813F8CF0DC0BE -:103BA0005111F7CF942FF5CF9F3F39F0F901E90F6D -:103BB000F11D97FDFA9582830895089590910C0167 -:103BC000992321F090910D01911109C020910E01CE -:103BD00030910F01F9013296205F3F4F1FC0982F9F -:103BE0009695969596959F30F0F4E0910E01F091A0 -:103BF0000F01E90FF11D877021E030E0A90102C03B -:103C0000440F551F8A95E2F7CA0180959181892357 -:103C1000818308953196E217F30729F09081981374 -:103C2000F9CF1082F7CF089581E090E0E0910E0186 -:103C3000F0910F01E80FF91F108201968031910574 -:103C4000A9F708959091DB01892B8093DB010895FA -:103C500080959091DB0189238093DB010895109278 -:103C6000DB0108959091DA01892B8093DA010895A0 -:103C700080959091DA0189238093DA01089510925A -:103C8000DA0108959091D901892B8093D901089583 -:103C900080959091D90189238093D901089510923C -:103CA000D90108958093C80108951092C80108951C -:103CB00080910E0190910F01FC0131969C01205FD3 -:103CC0003F4F80E0919191118F5FE217F307D1F799 -:103CD0000895E0910E01F0910F018091DB01808346 -:103CE000E0910E01F0910F0190818091DA01892B12 -:103CF0008083E0910E01F0910F0190818091D901B4 -:103D0000892B80838091C801882361F0E0910E01A6 -:103D1000F0910F019081892B80830E94581E8111A0 -:103D20001092C80180910E0190910F010C9497138D -:103D300020E0009739F0AC014150510984239523CC -:103D40002F5FF7CF822F0895CF92DF92EF92FF92ED -:103D50006C01EE24FF24C114D104E104F10421F02C -:103D6000C701B60120E101C020E0C72ED82EE92E00 -:103D7000FF24C114D104E104F10419F0285FC70144 -:103D8000B6016B017C0154E0F694E794D794C79494 -:103D90005A95D1F7C114D104E104F10419F02C5F54 -:103DA000C701B6016B017C0142E0F694E794D79419 -:103DB000C7944A95D1F7C114D104E104F10419F074 -:103DC0002E5FC701B601DC01CB01B695A79597958B -:103DD0008795892B8A2B8B2B09F02F5F822FFF90E1 -:103DE000EF90DF90CF9008958091F301843021F11E -:103DF0001092DD0120E488E190E00FB6F894A895D8 -:103E0000809360000FBE2093600080E00E94840CCD -:103E100083B7817F846083BF83B7816083BF7894D9 -:103E2000889583B78E7F83BF88E10FB6F89480931F -:103E30006000109260000FBE0895089508950E94DA -:103E40001D1F0E94F8040E941E1F0E94ED0591E0B4 -:103E5000811101C090E0892F08950E9424180E94CA -:103E60008B130C94840C82E084BD93E095BD9AEF93 -:103E700097BD80936E0008952FB7F8948091DE016E -:103E80009091DF01A091E001B091E1012FBF089571 -:103E9000CF92DF92EF92FF920F931F932FB7F89478 -:103EA0004091DE015091DF016091E0017091E101EC -:103EB0002FBF6A017B01EE24FF248C0120E030E05B -:103EC000C016D106E206F30610F4415051099A01DA -:103ED000281B390BC9011F910F91FF90EF90DF90C4 -:103EE000CF9008951F920F920FB60F9211248F93C7 -:103EF0009F93AF93BF938091DE019091DF01A091DA -:103F0000E001B091E1010196A11DB11D8093DE0198 -:103F10009093DF01A093E001B093E101BF91AF91D5 -:103F20009F918F910F900FBE0F901F9018950E9438 -:103F30008810F8942FEF87EA91E621508040904056 -:103F4000E1F700C0000087E090EBDC018093FD0109 -:103F50009093FE01A093FF01B09300029CE088E1E2 -:103F60000FB6F894A895809360000FBE9093600000 -:103F7000FFCFEF92FF920F931F93CF93DF93D82F32 -:103F8000CDE08C2F0E94E60505E010E0E82EF12C34 -:103F9000C701002E02C0959587950A94E2F780FF2D -:103FA00009C0602F7C2F80E00E949409D81302C0C2 -:103FB00081E006C00150110958F7C15010F780E0A8 -:103FC000DF91CF911F910F91FF90EF900895CF93C4 -:103FD000C82F8CE20E94B91F882321F08C2FCF912B -:103FE0000C94B91F80E0CF910895CF930E943C219B -:103FF000811102C00E942221C5E6C15049F00E94F1 -:10400000F8048FE39CE90197F1F700C00000F5CFB9 -:1040100089E20E94E71F811113C18AE20E94E71F13 -:1040200081110E94222185E00E94E71F81110E94D8 -:10403000971F0E9447218093DC0187E00E94E71FC1 -:104040008823A9F18BE10E94E71F882351F080911A -:10405000DC0181FB222720F991E0922790FB81F976 -:104060000EC08EE00E94E71F882361F08091DC0182 -:1040700082FB222720F991E0922790FB82F980931E -:10408000DC0115C080E10E94E71F9091DC018823CC -:1040900041F093FB222720F981E0822780FB93F9EE -:1040A00004C0892F809580FB90F99093DC0180916A -:1040B000DC010E944B210E9459218093FC0180EE7B -:1040C0000E94E71F882341F08091FC01982F909572 -:1040D00090FB80F98093FC0189E30E94E71F88230D -:1040E00059F08091FC0181FB222720F991E0922771 -:1040F00090FB81F98093FC0182EE0E94E71F8823E8 -:1041000059F08091FC0182FB222720F991E092274F -:1041100090FB82F98093FC0186EE0E94E71F8823C2 -:1041200059F08091FC0183FB222720F991E092272E -:1041300090FB83F98093FC0183EE0E94E71F8823A4 -:1041400059F08091FC0184FB222720F991E092270D -:1041500090FB84F98093FC0185E30E94E71F88238C -:1041600059F08091FC0185FB222720F991E09227EC -:1041700090FB85F98093FC0181E30E94E71F88236F -:1041800059F08091FC0186FB222720F991E09227CB -:1041900090FB86F98093FC0181E10E94E71F882350 -:1041A00059F08091FC0187FB222720F991E09227AA -:1041B00090FB87F98093FC018091FC010E945D21B6 -:1041C0008091FC0187FB882780F980930D0187E2AD -:1041D0000E94E71FC82F8EE10E94E71F8111C26075 -:1041E0008FE10E94E71F8111C46080E20E94E71FF7 -:1041F0008111C86081E20E94E71F8111C06182E2E3 -:104200000E94E71F8111C06283E20E94E71F8111B3 -:10421000C06484E20E94E71F882311F0C06802C0D6 -:10422000CC2329F08C2F0E9454216C2F03C00E94B4 -:104230005021682F70E080E090E0CF910C94E41B57 -:10424000CF9108956DEE7EEF80E090E00E948E2782 -:1042500060E082E090E00E947C2760E083E090E0F4 -:104260000E947C2760E084E090E00E947C2760E070 -:1042700085E090E00C947C2780E090E00E94762717 -:1042800021E08D3E9E4F09F020E0822F089582E0CC -:1042900090E00C946E27682F82E090E00C947C27CD -:1042A00083E090E00C946E27682F83E090E00C94FC -:1042B0007C2784E090E00C946E27682F84E090E0E7 -:1042C0000C947C278091E40180FF0BC06091130166 -:1042D00085E0689FB0011124759567957595679580 -:1042E0002BC081FF09C06091130185E0689FB00178 -:1042F00011247595679520C082FF07C06091130156 -:1043000085E0689FB001112417C09091E5019923C1 -:10431000D1F060911201961788F72091130185E082 -:10432000289F90011124929FA001939F500D11246A -:1043300070E0CA010E9440276038710540F46115A1 -:10434000710539F002C065E070E0862F08958FE7AF -:10435000089581E008958091E40180FF08C0609194 -:10436000110170E0759567957595679521C081FF7E -:1043700006C06091110170E07595679519C082FFC4 -:1043800004C06091110170E010C09091E501992383 -:10439000C1F0609110019617A0F780911101899FDB -:1043A000C001112470E00E9440276038710528F494 -:1043B0006115710521F0862F08958FE7089581E03A -:1043C000089561E070E0F4CF803F21F40E94622103 -:1043D000819504C0813F29F40E9462218093E80105 -:1043E0000895823F21F40E946221819504C0833F99 -:1043F00029F40E9462218093E7010895893F19F40E -:104400000E94AB2105C08A3F31F40E94AB21819507 -:104410008093E90108958B3F21F40E94AB2181959F -:1044200004C08C3F29F40E94AB218093EA010895D7 -:10443000843F21F48091E601816017C0853F21F41B -:104440008091E601826011C0863F21F48091E601EF -:1044500084600BC0873F21F48091E601886005C02D -:10446000883F31F48091E60180618093E6010895F0 -:104470008D3F21F48091E40181600BC08E3F21F4D7 -:104480008091E401826005C08F3F29F48091E401AE -:1044900084608093E4010895803F39F48091E801BD -:1044A00087FF6CC01092E80169C0813F29F48091B8 -:1044B000E8011816BCF362C09091E701823F29F42D -:1044C00097FF5CC01092E70159C0833F19F4191699 -:1044D000CCF354C0893F41F48091E90118160CF0E7 -:1044E0004DC01092E9014AC08A3F29F48091E90148 -:1044F00087FF44C0F6CF8B3F39F48091EA0187FFF4 -:104500003DC01092EA013AC08C3F29F48091EA0143 -:104510001816BCF333C0843F21F48091E6018E7FEE -:1045200017C0853F21F48091E6018D7F11C0863F41 -:1045300021F48091E6018B7F0BC0873F21F48091AD -:10454000E601877F05C0883F31F48091E6018F7EC8 -:104550008093E60113C08D3F21F48091E4018E7FAA -:104560000BC08E3F21F48091E4018D7F05C08F3F09 -:1045700029F48091E4018B7F8093E4018091E7012D -:1045800081110EC08091E80181110AC08091E9017A -:10459000811106C08091EA01811102C01092E501EB -:1045A000089586EE91E00E94A2130E943C1F909312 -:1045B000E3018093E20108951F93CF93DF938091ED -:1045C000E2019091E3010E94481FAC019091E50146 -:1045D000992321F02091140130E006C020911501AB -:1045E0008AE0289F900111244217530708F486C0DF -:1045F0008091E701C091E801D091E9011091EA01B1 -:10460000811107C0C11176C0D11174C0111172C0DF -:1046100075C09F3F19F09F5F9093E501181624F431 -:104620000E9462218093E7018091E70187FF05C026 -:104630000E94622181958093E7011C1624F40E9458 -:1046400062218093E8018091E80187FF05C00E9404 -:10465000622181958093E8016091E701662339F139 -:10466000C091E801CC2319F1772767FD7095872F5A -:10467000972F0E94512623E333E343E35FE30E9435 -:10468000B5260E941E266093E7016C2F772767FDF1 -:104690007095872F972F0E94512623E333E343E33E -:1046A0005FE30E94B5260E941E266093E8011D1656 -:1046B00024F40E94AB218093E9018091E90187FFF6 -:1046C00005C00E94AB2181958093E901111624F465 -:1046D0000E94AB218093EA018091EA0187FF05C027 -:1046E0000E94AB2181958093EA01DF91CF911F91C8 -:1046F0000C94D1229F3F09F08ECF96CFDF91CF91BE -:104700001F910895E6EEF1E085E0DF011D928A95A4 -:10471000E9F71092E5011092E4010895833081F1E8 -:1047200028F4813059F08230D1F00895853009F4B1 -:1047300049C0B8F1863009F456C00895809115013A -:10474000262F30E0280F311D2F3F310524F4680F4C -:104750006093150108958FEF80931501089580915E -:104760001401262F30E0280F311D2F3F310524F48E -:10477000680F6093140108958FEF809314010895DA -:1047800080911301262F30E0280F311D2F3F310576 -:1047900024F4680F6093130108958FEF8093130141 -:1047A000089580911201262F30E0280F311D2F3FF0 -:1047B000310524F4680F6093120108958FEF809300 -:1047C0001201089580911101262F30E0280F311D2C -:1047D0002F3F310524F4680F6093110108958FEF86 -:1047E00080931101089580911001262F30E0280F49 -:1047F000311D2F3F310524F4680F60931001089597 -:104800008FEF809310010895833011F128F48130E7 -:1048100049F0823091F00895853081F120F18630A1 -:10482000C1F1089580911501681720F4861B8093CB -:1048300015010895109215010895809114016817CB -:1048400020F4861B8093140108951092140108959A -:1048500080911301681720F4861B8093130108953B -:1048600010921301089580911201681720F4861B9D -:104870008093120108951092120108958091110100 -:10488000681720F4861B809311010895109211017E -:10489000089580911001681720F4861B8093100101 -:1048A00008951092100108950F931F938D3109F40C -:1048B0006BC008F03FC08E3009F47FC0C0F4873071 -:1048C00009F469C068F4863009F0B1C08091DC0158 -:1048D000817F8E7F8093DC0181E08093EC01A8C012 -:1048E000883009F4A2C08B3009F49FC0A0C0863183 -:1048F00009F49BC078F4803109F472C0813109F069 -:1049000096C00E94241890910D0181E08927809320 -:104910000D018BC0893109F488C08B3109F087C043 -:104920008091DC0181FB222720F991E0922790FB06 -:1049300081F94CC0853309F470C048F4873209F41A -:104940006CC008F459C0893209F467C070C0833460 -:1049500038F48A3308F04EC0883309F466C067C063 -:10496000833409F45AC0883409F061C00E942418C5 -:104970000FEF13ED20E3015010402040E1F700C09D -:1049800000000E94971F51C00E94D8250E948B13DF -:104990000E94840C4AC09091DC01892F809581701F -:1049A00080FB90F929F0966098609093DC0140C0FC -:1049B000997F977F9093DC0138C08091DC0182FB66 -:1049C000222720F991E0922790FB82F98093DC0165 -:1049D000992359F18091DC0181608093DC0125C02D -:1049E0008091DC0183FB222720F991E0922790FB44 -:1049F00083F9ECCF895301C08D5141E050E060E074 -:104A000070E08A019B0104C0000F111F221F331F99 -:104A10008A95D2F7C901B80104C061E070E080E076 -:104A200090E00E94E41B0E94241881E001C080E015 -:104A30001F910F91089580E0089580E00895CF932D -:104A4000C82F8091EC01813079F018F08230E9F1C3 -:104A500087C0E0910E01F0910F018081813169F0F2 -:104A6000823209F07FC009C0E0910E01F0910F0180 -:104A70008081813111F0823261F48C2F0E941B25DC -:104A8000811104C08C2F0E9454241DC081E090E04D -:104A90001AC08C2F0E941D25811114C0C43179F0D9 -:104AA00048F4CB3079F0C03109F060C082E08093E7 -:104AB000EC0108C0C93219F0C83321F057C0109278 -:104AC000EC0154C081E0817053C0C93289F118F5FE -:104AD000C43171F1A8F4C73009F046C08AE0809370 -:104AE000150194E19093140193E090931301809346 -:104AF000120188E08093110188E28093100134C094 -:104B0000CE51C63088F5EC2FF0E0E65DFE4F808197 -:104B10008093EB0129C0CE34E9F020F4CB3421F5A9 -:104B20006AE013C0C13579F0C235F1F461E00DC01F -:104B30008091EB01882319F01092EB0115C081E000 -:104B40008093EC0115C061E006C08091EB010E94EA -:104B50008E230AC06AE08091EB010E94042404C005 -:104B60001092EC0180E004C081E002C080E0ABCF95 -:104B7000CF910895E1E8F0E08081886080838081B2 -:104B8000816080838FB7F89493E09093890090EDD3 -:104B9000909388008FBF0895EFE6F0E080818260F7 -:104BA00080830895EFE6F0E080818D7F8083089513 -:104BB000EFE6F0E0908182E08927808308951F92DC -:104BC0000F920FB60F9211242F933F934F935F9341 -:104BD0006F937F938F939F93AF93BF93EF93FF93C5 -:104BE0008091ED019091EE0101969093EE018093FA -:104BF000ED01811103C082E00E94840CE091EE017E -:104C0000E695E695F0E0E25FF74FE4918091ED01E3 -:104C10008E1303C080E00E94840CFF91EF91BF913E -:104C2000AF919F918F917F916F915F914F913F9144 -:104C30002F910F900FBE0F901F90189504D068947D -:104C4000B1118DC0089570D088F09F5790F0B92FA2 -:104C50009927B751A0F0D1F0660F771F881F991FD1 -:104C60001AF0BA95C9F712C0B13081F077D0B1E02F -:104C7000089574C0672F782F8827B85F39F0B93F3F -:104C8000CCF3869577956795B395D9F73EF49095D3 -:104C90008095709561957F4F8F4F9F4F0895E89451 -:104CA00009C097FB3EF490958095709561957F4F74 -:104CB0008F4F9F4F9923A9F0F92F96E9BB27939522 -:104CC000F695879577956795B795F111F8CFFAF432 -:104CD000BB0F11F460FF1BC06F5F7F4F8F4F9F4F63 -:104CE00016C0882311F096E911C0772321F09EE8C1 -:104CF000872F762F05C0662371F096E8862F70E027 -:104D000060E02AF09A95660F771F881FDAF7880F00 -:104D10009695879597F9089557FD9058440F551F1C -:104D200059F05F3F71F04795880F97FB991F61F02D -:104D30009F3F79F087950895121613061406551FA4 -:104D4000F2CF4695F1DF08C0161617061806991F10 -:104D5000F1CF86957105610508940895E894BB2705 -:104D600066277727CB0197F908950BD078C069D0D3 -:104D700028F06ED018F0952309F05AC05FC01124B6 -:104D8000EECFCADFA0F3959FD1F3950F50E0551FEA -:104D9000629FF001729FBB27F00DB11D639FAA2790 -:104DA000F00DB11DAA1F649F6627B00DA11D661FDF -:104DB000829F2227B00DA11D621F739FB00DA11D00 -:104DC000621F839FA00D611D221F749F3327A00DBA -:104DD000611D231F849F600D211D822F762F6A2F56 -:104DE00011249F5750408AF0E1F088234AF0EE0FDB -:104DF000FF1FBB1F661F771F881F91505040A9F7E8 -:104E00009E3F510570F014C0AACF5F3FECF3983E6F -:104E1000DCF3869577956795B795F795E7959F5F4E -:104E2000C1F7FE2B880F911D9695879597F90895E8 -:104E300097F99F6780E870E060E008959FEF80EC4D -:104E4000089500240A9416161706180609060895F0 -:104E500000240A9412161306140605060895092E56 -:104E60000394000C11F4882352F0BB0F40F4BF2BC5 -:104E700011F460FF04C06F5F7F4F8F4F9F4F089505 -:104E800097FB072E16F4009407D077FD09D00E94F7 -:104E90005A2707FC05D03EF4909581959F4F0895C1 -:104EA000709561957F4F0895EE0FFF1F0590F49167 -:104EB000E02D0994AA1BBB1B51E107C0AA1FBB1F11 -:104EC000A617B70710F0A61BB70B881F991F5A9596 -:104ED000A9F780959095BC01CD010895F999FECF71 -:104EE00092BD81BDF89A992780B50895A8E1B0E0F8 -:104EF00042E050E00C949627262FF999FECF92BD00 -:104F000081BDF89A019700B4021639F01FBA20BD8E -:104F10000FB6F894FA9AF99A0FBE08950196272FC2 -:104F20000E947D270C947C27DC01CB01FC01F999C0 -:104F3000FECF06C0F2BDE1BDF89A319600B40D92E5 -:0C4F400041505040B8F70895F894FFCF9E -:104F4C000220860C140DF10CBD0C890C0101C90159 -:104F5C0028080A03140A3F4D3639CF0782074C073D -:104F6C001307A606BF06D806F106010203040506C0 -:044F7C000708090019 -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/german/compiled.hex b/keyboards/ergodox_ez/keymaps/german/compiled.hex deleted file mode 100644 index 3979ad8c9..000000000 --- a/keyboards/ergodox_ez/keymaps/german/compiled.hex +++ /dev/null @@ -1,1158 +0,0 @@ -:100000000C947A020C94BE020C94BE020C94BE02B4 -:100010000C94BE020C94BE020C94BE020C94BE0260 -:100020000C94BE020C94BE020C94640D0C94360E1B -:100030000C94BE020C94BE020C94BE020C94BE0240 -:100040000C94BE020C9440220C94BE020C94BE028E -:100050000C94BE020C94D31B0C94BE020C94BE02F2 -:100060000C94BE020C94BE020C94BE020C94BE0210 -:100070000C94BE020C94BE020C94BE020C94BE0200 -:100080000C94BE020C94BE020C94BE020C94BE02F0 -:100090000C94BE020C94BE020C94BE020C94BE02E0 -:1000A0000C94BE020C94BE020C94BE02A30EC50EAC -:1000B000B30FC50EB30F0A0F2D0FB30F820F950F9D -:1000C0006412641293129312C912E9121A141A14C8 -:1000D000F4121A14A413A4130B141A141A141414DB -:1000E000B113B113B113B113B113B113B113B113F0 -:1000F000B113B113B113B113B113B113B113B113E0 -:10010000C313D013D713DE13E8130000F0A12302AA -:100110004C003900E100644100001E00140004009E -:100120001D0031714D001F001A0016001B002E002B -:100130002A00200008000700060038002C002100DB -:1001400015000900190030004A00220017000A00BB -:10015000050000006574AE0001540000007F00003F -:10016000E300AB000254000000770000E20023002F -:100170001C000B00110000002971240018000D0064 -:10018000100050004B0025000C000E0036005100FE -:100190002800260012000F00370052002B00270015 -:1001A0001300330038714F004E002D002F003442F1 -:1001B000E500C10000000100010001000100010094 -:1001C00000003A001E0231002202010001003B0043 -:1001D000141421023500010001003C002414250202 -:1001E0002514010001003D002714260226140100F9 -:1001F00001003E0064142E023014000001000100D2 -:1002000001000000010000000100010001000000E9 -:100210000100000001003F005200510023020000D5 -:1002200001004000240021001E00010001004100E7 -:10023000250022001F003700010042002600230095 -:100240002000270001004300300230002D14270257 -:100250000100440045000100010001000000010010 -:10026000010001000100010000003A000100F70058 -:10027000FB00010001003B00F400F200FA00FD0069 -:10028000F5003C00F000F100F900FE00F4003D0034 -:10029000F500F300FC00FF0001003E000100F80043 -:1002A000F600000001000100010000000100000054 -:1002B00001000100010000000100000001003F00FA -:1002C00001000100B400000001004000AA00AC00E1 -:1002D000B600010001004100A800AD00B50001001A -:1002E000B7004200A900AE00B9000100B60043000B -:1002F0000100AB00B700010001004400450001000F -:1003000001000100000016034500720067006F0045 -:1003100044006F007800200045005A0000001603DA -:100320004500720067006F0044006F0078002000F5 -:1003300045005A0000000403090409026D0004018D -:1003400000A0FA09040000010301010009211101C4 -:100350000001223F000705810308000A090401008B -:100360000103010200092111010001224D000705CE -:10037000820308000A0904020001030000000921A9 -:10038000110100012236000705830308000A090451 -:1003900003000103000000092111010001223900BE -:1003A000070584031000011201100100000008ED90 -:1003B000FE071301000102000105010906A1010564 -:1003C0000719E029E7150025019508750181020547 -:1003D000081901290595057501910295017503918B -:1003E0000105071900297715002501957875018108 -:1003F00002C005010980A101850216010026B7008F -:100400001A01002AB700751095018100C0050C097A -:1004100001A1018503160100269C021A01002A9CF5 -:1004200002751095018100C005010902A1010901B1 -:10043000A10005091901290515002501950575017A -:10044000810295017503810105010930093115818A -:10045000257F95027508810609381581257F95014C -:1004600075088106050C0A38021581257F950175EE -:10047000088106C0C005010906A101050719E02988 -:10048000E715002501950875018102950175088120 -:100490000105081901290595057501910295017558 -:1004A0000391010507190029FF150025FF95067521 -:1004B000088100C0000000000000000000000001F2 -:1004C0000204060A0F17202C3A4A5D71879DB3C7B4 -:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF -:1004E0003A2C20170F0A0604020100000000000049 -:1004F0000000000011241FBECFEFDAE0DEBFCDBF49 -:1005000004B603FE24C08091FB019091FC01A091F0 -:10051000FD01B091FE018730904BA740B04BB9F47C -:100520001092FB011092FC011092FD011092FE014D -:1005300014BE84B7877F84BF88E10FB6F894809398 -:100540006000109260000FBEE0E0FFE3099511E04B -:10055000A0E0B1E0EEE0F8E402C005900D92A43313 -:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0 -:10057000B107E1F70E94A80A0C9405240C9400002E -:100580001092B9008AE08093B800089594EA90939D -:10059000BC009091BC0097FFFCCF9091B900987F70 -:1005A000983021F0903111F081E008958093BB00E4 -:1005B00084E88093BC008091BC0087FFFCCF8091D1 -:1005C000B900887F883111F0803471F780E0089598 -:1005D00084E98093BC008091BC0084FDFCCF089529 -:1005E0008093BB0084E88093BC008091BC0087FFAF -:1005F000FCCF9091B900987F81E0983209F480E0B7 -:10060000089584E88093BC008091BC0087FFFCCFF4 -:100610008091BB00089580910101811115C080E493 -:100620000E94C6028093010181110CC082E10E94E8 -:10063000F00280930101811105C08FEF0E94F0024A -:10064000809301010E94E80284B1807F84B985B162 -:10065000807F85B98AB1837F8AB98BB1837F8BB95B -:100660003E98469808950E94C604809301010E9416 -:100670000B0380B38C7080BB81B3836F81BBA5E318 -:10068000B1E0E3E4F1E08EE08E0F11921D928E1343 -:10069000FCCF0C94B004BF92CF92DF92EF92FF9206 -:1006A0000F931F93CF93DF9380910101882379F0FB -:1006B000809134018F5F80933401811108C00E94C2 -:1006C000C60480930101811102C00E94580405E311 -:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407 -:1006E000E394F12CC730D10500F58091010181110F -:1006F00064C080E40E94C60280930101811112C08F -:1007000082E10E94F0028093010181110BC0C701B8 -:100710000C2E01C0880F0A94EAF780950E94F0021F -:10072000809301010E94E80248C0CA30A1F028F479 -:10073000C83059F0C93061F005C0CC3089F070F094 -:10074000CD3089F0209A289810C0219A29980DC0A0 -:10075000229A2A980AC0239A2B9807C0529A01C05D -:10076000539A5B9802C03E9A469890EA9A95F1F7A0 -:100770009FB1799902C082E001C080E091709D250F -:10078000982B7C9902C084E001C080E0892B7D9980 -:1007900002C038E001C030E0832B7E9902C020E126 -:1007A00001C020E0822B9FB19095991F9927991F36 -:1007B0009295990F907E892B0FC080910101811134 -:1007C00049C080E40E94C60280930101882379F128 -:1007D000B12C0E94E8028B2DF8019081981719F036 -:1007E0008083C09200010E940B0321960F5F1F4F70 -:1007F000CE30D10509F076CF80910001882361F1D8 -:10080000815080930001882339F08FE99FE00197A0 -:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F -:10082000CF01825F91919D938E13FCCF15C083E120 -:100830000E94F002809301018111CACF81E40E94DD -:10084000C602809301018111C3CF0E940103B82E1B -:10085000B094BFCF80E0C0CF0E94560481E0DF910A -:10086000CF911F910F91FF90EF90DF90CF90BF90AD -:100870000895E82FF0E0ED5BFE4F80810895089524 -:100880000F931F93CF93DF93C3E4D1E010E00C2FBD -:10089000025F899190E00E94F91A180F0C13F9CFAA -:1008A000812FDF91CF911F910F9108950C94260510 -:1008B00056985E9825982D9826982E9827982F98C8 -:1008C0008FEF90E0909389008093880090938B0045 -:1008D00080938A0090938D0080938C00259A2D9AA6 -:1008E0002FEF80E792E0215080409040E1F700C078 -:1008F0000000269A2E9A2FEF80E792E02150804048 -:100900009040E1F700C00000279A2F9A2FEF80E770 -:1009100092E0215080409040E1F700C0000025980F -:100920002D982FEF80E792E0215080409040E1F732 -:1009300000C0000026982E982FEF80E792E021500B -:1009400080409040E1F700C0000027982F9856980B -:100950005E9825982D9826982E9827982F98089578 -:1009600089EA8093800089E08093810024982C9804 -:100970003F988AB18F748AB96E98479A8BB1806B11 -:100980008BB9769A0E9458040C94250580E28093D6 -:1009900001018091510181110EC00E94C00281E0CD -:1009A000809351012FEF83ED90E3215080409040E0 -:1009B000E1F700C0000080E40E94C60280930101BC -:1009C00081112EC00E94F00280930101811128C084 -:1009D0000E94F00280930101811122C08FE30E94E6 -:1009E000F0028093010181111BC00E94E80280E4A3 -:1009F0000E94C60280930101811112C08CE00E9406 -:100A0000F0028093010181110BC00E94F0028093DB -:100A10000101811105C08FE30E94F0028093010162 -:100A20000E94E80280910101089561110BC0FC0150 -:100A30008281882321F085EE0E94081103C085EE93 -:100A40000E94D01180E090E0089508956091BD016A -:100A50007091BE018091BF019091C0010E94051B61 -:100A600056985E9825982D9826982E9827982F9816 -:100A7000813029F0823031F4269A2E9A0895259AF1 -:100A80002D9A089556985E98089581E0089581E022 -:100A900008950C94470508950F931F93CF93DF9308 -:100AA0008C01FC01C081D181CE010E947E19BE0162 -:100AB0000E94F505EC01B8010E944905882309F45C -:100AC0008DC0F8018281882309F44AC080915D01BC -:100AD00081111FC0C431F0E5DF0709F051C00E9449 -:100AE0004B0581E080935D010E949D1B90935C010A -:100AF00080935B011092540110925601109255019F -:100B0000109258011092570110925A0110925901F7 -:100B100065C080915B0190915C010E94A91B883C9B -:100B2000910570F480915401E82FF0E0EE0FFF1F63 -:100B3000EB5AFE4FD183C0838F5F809354014EC028 -:100B4000C43880E5D80721F0C538D04501F13AC056 -:100B5000F8018281882341F01092520182E01EC088 -:100B6000C438E0E5DE0759F580915201811106C0D5 -:100B700086E20E94081186E20E94D01182E01CC029 -:100B8000C438F0E5DF0741F3C538D045D9F4F801A2 -:100B90008281882331F01092530180E20E941F125B -:100BA0001DC080915301811106C087E20E94081187 -:100BB00087E20E94D01180E20E9426120FC0C53841 -:100BC000D04529F381E08093520180935301C801FD -:100BD000DF91CF911F910F910C94450580E0DF913B -:100BE000CF911F910F910895089596E0799FF0019C -:100BF000112494E5899FE00DF11D1124E60FF11DEC -:100C0000EE0FFF1FE25FFE4F859194910895880FCC -:100C1000991FFC01E657F040859194910895880F43 -:100C2000991FFC01E65FFE4F8591949108950F9303 -:100C30001F93CF93DF93EC01811520E3920750F5CA -:100C4000C11580E2D80708F0C3C0CB3BD10590F4B2 -:100C5000C83AD10508F06AC0C53AD10508F05BC0B2 -:100C6000C430D10508F0D0C1219709F0CAC101E014 -:100C700010E00AC2CF3FD10511F008F0C5C1C03F56 -:100C8000D10508F0A2C0CE01805E9109089708F452 -:100C9000BBC1B7C1C13090E5D90709F4A2C020F5A6 -:100CA000C0318FE4D80770F4C11590E4D90708F07B -:100CB00094C0C11521E3D20708F0A3C1DD278E013E -:100CC000106CE2C1C115D04509F09BC10E9485148A -:100CD0008FEF94E32CE0815090402040E1F700C07A -:100CE00000000E94F81BD0C1C11597E5D90758F440 -:100CF000C03121E5D20708F01CC1C43180E5D80716 -:100D000008F475C07EC1CE0190578115904108F05E -:100D100078C1DF7073C1C53AD10509F477C1C63A0D -:100D2000D10509F076C102E810E4AEC1C83AD10598 -:100D300009F472C1C93AD10509F471C1CA3AD105A1 -:100D400009F470C1CB3AD10509F46FC1CC3AD10591 -:100D500009F46EC1CD3AD10509F46DC1C03BD1058E -:100D600009F46CC1CE3AD10509F46BC1CF3AD10573 -:100D700009F46AC1C13BD10509F469C1C23BD1057F -:100D800009F468C1C33BD10509F467C1C43BD1056F -:100D900009F466C1C53BD10509F465C1C63BD1055F -:100DA00009F464C1C73BD10509F463C1C83BD1054F -:100DB00009F462C1C93BD10509F461C1CA3BD1053F -:100DC00009F460C100E014E45FC18E0110655CC1EC -:100DD000CE019F700E940F0658C1DF708E01106A0D -:100DE00053C18091DA0181608093DA014DC10E9484 -:100DF0009D1D811102C00E94831D0E94BA1D90E0BA -:100E00009093FB018093FA01C23080E5D80721F46A -:100E10008091FA01816086C0C43090E5D90721F441 -:100E20008091FA0182607EC0C63020E5D20721F4AD -:100E30008091FA01846076C0C83080E5D80719F443 -:100E40008091FA0127C0CA3090E5D90721F480913A -:100E5000FA01806167C0CC3020E5D20721F480918F -:100E6000FA0180625FC0CE3080E5D80721F480911E -:100E7000FA01806457C0C03190E5D90721F4809110 -:100E8000FA0180684FC0C23120E5D20729F4809171 -:100E9000FA018460886046C0C33080E5D80721F439 -:100EA0008091FA018E7F3EC0C53090E5D90721F4CC -:100EB0008091FA018D7F36C0C73020E5D20721F43A -:100EC0008091FA018B7F2EC0C93080E5D80719F4D4 -:100ED0008091FA0126C0CB3090E5D90721F48091AA -:100EE000FA018F7E1FC0CD3020E5D20721F480911A -:100EF000FA018F7D17C0CF3080E5D80721F48091AB -:100F0000FA018F7B0FC0C13190E5D90721F48091A0 -:100F1000FA018F7707C0C331D04531F48091FA01CF -:100F20008B7F877F8093FA018091FA010E94BE1D1A -:100F3000ABC08D2F99278F70992781309105D9F4F7 -:100F40009E012370332702C0880F991F2A95E2F76C -:100F50009C688E0144E0000F111F4A95E1F70027BD -:100F60001370802B912B53E0CC0FDD1F5A95E1F7C6 -:100F7000C076DD272FC08230910531F4DC2FCC27DD -:100F80008E01016F106A80C08330910569F4CE0133 -:100F90008370992701E010E002C0000F111F8A95AD -:100FA000E2F7C8019C680FC084309105B9F4CE0106 -:100FB0008370992701E010E002C0000F111F8A958D -:100FC000E2F7C8019A6823E0CC0FDD1F2A95E1F70C -:100FD000C07ED7708C010C2B1D2B56C0853091051F -:100FE00031F4DC2FCC278E01046F106A4DC00697B8 -:100FF00009F04AC0CF71DD27DC2FCC278E011062AB -:1010000043C000E010E040C08E013EC001E810E4A3 -:101010003BC003E810E438C002EE14E435C009EE2A -:1010200014E432C00AEE14E42FC005EB14E42CC023 -:1010300006EB14E429C007EB14E426C00CEC14E41E -:1010400023C00DEC14E420C003E815E41DC00AE839 -:1010500015E41AC002E915E417C004E915E414C048 -:1010600001E216E411C003E216E40EC004E216E445 -:101070000BC005E216E408C006E216E405C007E26C -:1010800016E402C00AE216E4C801DF91CF911F9175 -:101090000F91089596E0799FF001112494E5899FBE -:1010A000E00DF11D1124E60FF11DEE0FFF1FE25FB1 -:1010B000FE4F85919491803E9105E0F4803C91052E -:1010C00058F58133910509F46FC048F489329105D0 -:1010D00009F463C08A32910509F46DC072C0893386 -:1010E0009105E9F082389105D1F08533910509F435 -:1010F0004DC067C0833E910581F138F4803E910573 -:10110000B9F0823E9105D9F05CC0863E910561F14F -:10111000873E9105A1F155C00E94070608952091D0 -:10112000FA0120FD02C021FF4CC080EE90E049C0D2 -:101130008091FA0180FFF9CF89E390E042C080916D -:10114000FA0182FF0EC08091FA0184FF03C080E0A3 -:1011500090E037C083EE90E034C08091FA0182FFC6 -:10116000F2CF82EE90E02DC08091FA0183FF0BC098 -:101170008091FA0184FDEBCF87EE90E022C0809150 -:10118000FA0183FFF5CF86EE90E01BC08091FA0153 -:1011900085FF07C089E290E014C08091FA0185FFC5 -:1011A000F9CF85E390E00DC08091FA0186FF07C07A -:1011B0008AE290E006C08091FA0186FFF9CF81E3D0 -:1011C00090E00E941706089508950C94E408809119 -:1011D0006E010895CF93DF9300D01F92CDB7DEB795 -:1011E0009C018091F101843019F593E099833B8350 -:1011F0002A839093E9008FEF9091E800815095FD4C -:1012000006C095ED9A95F1F700008111F5CF809118 -:10121000E80085FF0DC040E050E063E070E0CE01E3 -:1012200001960E94540B8091E8008E778093E8002D -:101230000F900F900F90DF91CF910895CF93DF9390 -:1012400000D01F92CDB7DEB72091F101243021F5F7 -:1012500022E029839B838A8383E08093E9008FEFD8 -:101260009091E800815095FD06C095ED9A95F1F7B3 -:1012700000008111F5CF8091E80085FF0DC040E0AE -:1012800050E063E070E0CE0101960E94540B809123 -:10129000E8008E778093E8000F900F900F90DF9119 -:1012A000CF9108952091F1012430F1F422E02093B0 -:1012B000E9002FEF3091E800215035FD06C035EDF3 -:1012C0003A95F1F700002111F5CF2091E80025FFB4 -:1012D0000BC040E050E065E070E00E94540B80914C -:1012E000E8008E778093E8000895CF93DF93EC01B8 -:1012F0009091F101943009F046C080910C0188234F -:10130000D9F080910D018823B9F09093E9008FEF17 -:101310009091E800815095FD06C095E19A95F1F70E -:1013200000008111F5CF8091E80085FF2CC040E0DE -:1013300050E060E170E017C081E08093E9008FEF3A -:101340009091E800815095FD06C095ED9A95F1F7D2 -:1013500000008111F5CF8091E80085FF14C040E0C6 -:1013600050E068E070E0CE010E94540B8091E800EC -:101370008E778093E80080E1FE01AEE5B1E0019058 -:101380000D928A95E1F7DF91CF9108958091F00158 -:10139000811109C00E94E90C0E94460D8091E20073 -:1013A00084608093E20008951092F00108950895FA -:1013B0000C942D220E948E1B0E9433220E94EC0F5F -:1013C0000C94E50842E061EC81E00E94630C42E08D -:1013D00061EC82E00E94630C42E061EC83E00E94D9 -:1013E000630C42E161EC84E00C94630C8091F301A6 -:1013F000833009F455C030F4813071F0823009F443 -:101400008EC008958A3009F47AC08B3009F460C028 -:10141000893009F09CC020C08091F201813A09F026 -:1014200096C08091E800877F8093E8008091F60164 -:101430009091F701892B21F460E18EE591E003C0E2 -:1014400060E080E090E070E00E949F0B8091E800F7 -:101450008B778093E80008958091F201813209F042 -:1014600076C08091F6019091F701009719F00397EB -:1014700009F06DC08091E800877F8093E80080913B -:10148000E80082FD05C08091F1018111F8CF5FC0B5 -:101490008091F10080936E018091E8008B7753C0BA -:1014A0008091F201813A09F052C08091F601909149 -:1014B000F701892B09F04BC08091E800877F80936A -:1014C000E8008091E80080FFFCCF80910C0136C0DD -:1014D0008091F2018132D9F58091F6019091F70166 -:1014E000892BA9F58091E800877F8093E8000E940E -:1014F000980C8091F40180930C010C9485148091D8 -:10150000F201813221F58091E800877F8093E80025 -:101510000E94980C8091F50180936F01089580914D -:10152000F201813AA1F48091E800877F8093E8007E -:101530008091E80080FFFCCF80916F018093F100E3 -:101540008091E8008E778093E8000C94980C0895C1 -:1015500084B7877F84BF88E10FB6F89480936000DA -:10156000109260000FBE90E080E80FB6F894809370 -:101570006100909361000FBE0E943B100E94E90C35 -:101580000E94460D8091E20084608093E20078948E -:101590000E94CC0F0E943D1082E091E00E94E70F74 -:1015A0000E941B228091F101853069F40E94551B35 -:1015B0008091EF018823B1F30E94801B882391F36F -:1015C0000E943E0BEFCF0E944310ECCF292F332710 -:1015D00023303105C9F064F42130310581F0223027 -:1015E000310509F043C08DE690E02AE333E042C0C4 -:1015F00021323105F1F02232310541F137C082E16B -:1016000090E027EA33E036C099278130910541F018 -:101610008230910541F0892B49F5E6E3F3E005C0FE -:10162000EEE1F3E002C0E6E0F3E0849190E09F0198 -:1016300021C06430D8F4E62FF0E0EE0FFF1FEE5D1E -:10164000FE4F2081318189E090E014C0643070F455 -:1016500070E0FB01EE0FFF1FE65EFE4F208131813F -:10166000FB01EA5EFE4F808190E004C080E090E0E4 -:1016700020E030E0FA0131832083089580E189BDC4 -:1016800082E189BD09B400FEFDCF8091D8008F7D35 -:101690008093D8008091E00082608093E000809188 -:1016A000E00081FDFCCF0895CF92DF92EF92FF9290 -:1016B0000F931F93CF93DF93EC018B016A010E947C -:1016C000B70C811133C0C114D10439F0F601808107 -:1016D0009181081B190BC80FD91FE12CF12C0115A2 -:1016E000110519F18091E80085FD16C08091E80090 -:1016F0008E778093E800C114D10449F0F60180810F -:101700009181E80EF91EF182E08285E00FC00E940F -:10171000B70C882321F30AC089918093F10001500E -:101720001109FFEFEF1AFF0ADACF80E0DF91CF91C6 -:101730001F910F91FF90EF90DF90CF90089520912F -:10174000F8013091F9012617370748F06115710546 -:1017500039F42091E8002E772093E80001C0B90108 -:1017600040E061157105A9F12091F101222309F4EE -:1017700043C0253009F442C02091E80023FD40C059 -:101780002091E80022FD32C02091E80020FFE9CF3F -:101790004091F3002091F20030E0342BFC01CF01A6 -:1017A0006115710559F02830310540F4819180931D -:1017B000F100615071092F5F3F4FF1CF41E02830B8 -:1017C000310509F040E02091E8002E772093E800F1 -:1017D000C8CF4111C9CF0AC08091F101882361F0BF -:1017E000853061F08091E80083FD0AC08091E800B7 -:1017F00082FFF2CF80E0089582E0089583E00895AB -:1018000081E008952091F8013091F90126173707FA -:1018100048F06115710539F42091E8002E77209386 -:10182000E80001C0B901FC0120E06115710591F1EA -:101830008091F101882309F440C0853009F43FC04C -:101840008091E80083FD3DC08091E80082FD2FC0BB -:101850008091E80080FFE9CF2091F3008091F200B1 -:1018600090E0922B6115710559F08830910540F494 -:1018700024912093F1003196615071090196F2CFC5 -:1018800021E0089709F020E08091E8008E778093AE -:10189000E800CBCF2111CCCF0AC08091F101882381 -:1018A00061F0853061F08091E80083FD0AC080918D -:1018B000E80082FFF2CF80E0089582E0089583E09F -:1018C000089581E00895982F973058F59093E90096 -:1018D000981739F07091EC002091ED005091F000D4 -:1018E00003C0242F762F50E021FF19C03091EB0068 -:1018F0003E7F3093EB003091ED003D7F3093ED0063 -:101900003091EB0031603093EB007093EC0020934A -:10191000ED005093F0002091EE0027FF07C09F5F7D -:10192000D3CF8F708093E90081E0089580E008951F -:101930008091F20187FF11C08091E80082FD05C00F -:101940008091F1018111F8CF11C08091E8008B776F -:101950000BC08091F101882349F08091E80080FF5D -:10196000F8CF8091E8008E778093E8000895209169 -:10197000E4003091E50095E64091EC00842F817001 -:1019800040FF22C08091E80080FD1CC08091F101E1 -:10199000882391F0853091F08091EB0085FD10C097 -:1019A0004091E4005091E5004217530729F39A0152 -:1019B000915011F784E0089582E0089583E008953E -:1019C00081E0089580E008954091E80042FFDECF75 -:1019D00008950E94570D0E945F0DE0EEF0E08081B7 -:1019E00081608083E8EDF0E080818F77808319BC8F -:1019F000A7EDB0E08C918E7F8C9380818F7E808369 -:101A00001092F00108950F931F93CF93DF930E94DC -:101A1000570D0E945F0DC8EDD0E088818F778883D5 -:101A200088818068888388818F7D888319BC109223 -:101A3000F1011092ED011092EF011092EE0100EE13 -:101A400010E0F80180818B7F8083888181608883AA -:101A500042E060E080E00E94630CE1EEF0E0808113 -:101A60008E7F8083E2EEF0E08081816080838081E0 -:101A700088608083F80180818E7F80838881806187 -:101A80008883DF91CF911F910F910895E8EDF0E0E9 -:101A900080818F7E8083E7EDF0E0808181608083AC -:101AA00084E082BF81E08093F0010C94030DE8EDA7 -:101AB000F0E080818E7F80831092E2000895109282 -:101AC000DA001092E10008951F920F920FB60F9264 -:101AD00011242F933F934F935F936F937F938F9333 -:101AE0009F93AF93BF93EF93FF938091E10082FFA9 -:101AF0000BC08091E20082FF07C08091E1008B7FE4 -:101B00008093E1000E94CB0F8091DA0080FF1FC01C -:101B10008091D80080FF1BC08091DA008E7F809377 -:101B2000DA008091D90080FF0DC080E189BD82E19B -:101B300089BD09B400FEFDCF81E08093F1010E94D0 -:101B4000C60905C019BC1092F1010E94D409809108 -:101B5000E10080FF19C08091E20080FF15C08091F4 -:101B6000E2008E7F8093E2008091E20080618093AA -:101B7000E2008091D80080628093D80019BC85E093 -:101B80008093F1010E94D8098091E10084FF30C068 -:101B90008091E20084FF2CC080E189BD82E189BD93 -:101BA00009B400FEFDCF8091D8008F7D8093D800CE -:101BB0008091E1008F7E8093E1008091E2008F7E32 -:101BC0008093E2008091E20081608093E200809146 -:101BD000ED01882311F084E007C08091E30087FDC8 -:101BE00002C081E001C083E08093F1010E94DA0924 -:101BF0008091E10083FF29C08091E20083FF25C02E -:101C00008091E100877F8093E10082E08093F10181 -:101C10001092ED018091E1008E7F8093E100809130 -:101C2000E2008E7F8093E2008091E20080618093E9 -:101C3000E20042E060E080E00E94630C8091F000EE -:101C400088608093F0000E94D709FF91EF91BF91C7 -:101C5000AF919F918F917F916F915F914F913F9144 -:101C60002F910F900FBE0F901F9018951F920F92FB -:101C70000FB60F9211242F933F934F935F936F935F -:101C80007F938F939F93AF93BF93CF93DF93EF9304 -:101C9000FF93C091E900CF708091EC00D82FD170F4 -:101CA00080FDD0E81092E9008091F000877F80935A -:101CB000F00078940E947A0E1092E9008091F00072 -:101CC00088608093F000CD2BCF70C093E900FF9126 -:101CD000EF91DF91CF91BF91AF919F918F917F91C4 -:101CE0006F915F914F913F912F910F900FBE0F9089 -:101CF0001F9018951F93CF93DF93CDB7DEB7AA97A8 -:101D00000FB6F894DEBF0FBECDBFE2EFF1E088E082 -:101D10008E0F9091F10091938E13FBCF0E94F609E4 -:101D20008091E80083FF1FC18091F2019091F3013F -:101D3000492F50E04A30510508F015C1FA01EA5A1E -:101D4000FF4F0C94B523803881F0823809F00BC125 -:101D50008091F6018F708093E9008091EB0085FB04 -:101D6000882780F91092E90006C08091EE019091D9 -:101D7000EF01911182609091E800977F9093E800C5 -:101D80008093F1001092F100C8C0282F2D7F09F038 -:101D9000EAC0882319F0823061F0E5C08091F40137 -:101DA000813009F0E0C0933009F080E08093EF01CA -:101DB0002BC08091F401811127C08091F6018F70B2 -:101DC00009F4D1C08093E9002091EB0020FF1CC0F2 -:101DD000933021F48091EB00806214C09091EB006D -:101DE00090619093EB0021E030E0A90102C0440F24 -:101DF000551F8A95E2F74093EA001092EA0080911D -:101E0000EB0088608093EB001092E9008091E8007D -:101E1000877F86C08111A7C01091F4011F77809140 -:101E2000E3008078812B8093E3008091E800877F36 -:101E30008093E8000E94980C8091E80080FFFCCF1E -:101E40008091E30080688093E300111102C082E07A -:101E500001C083E08093F10186C08058823008F091 -:101E600082C08091F4019091F5018C3D53E095077B -:101E700079F583E08A838AE289834FB7F894DE019B -:101E8000139620E03EE051E2E32FF0E0509357003C -:101E9000E49120FF03C0E295EF703F5FEF708E2F5B -:101EA00090E0EA3010F0C79601C0C0968D939D93E4 -:101EB0002F5F243149F74FBF8091E800877F8093DF -:101EC000E8006AE270E0CE0101960E949F0B14C008 -:101ED000AE014F5F5F4F6091F6010E94E60ABC01C0 -:101EE000009709F440C09091E800977F9093E80034 -:101EF00089819A810E94020C8091E8008B778093FF -:101F0000E80031C0803879F58091E800877F8093C0 -:101F1000E8008091ED018093F1008091E8008E77D8 -:101F20008093E8000E94980C1EC081111CC0909103 -:101F3000F4019230C0F48091E800877F8093E8003C -:101F40009093ED010E94980C8091ED01811106C0E3 -:101F50008091E30087FD02C081E001C084E08093AE -:101F6000F1010E94E2098091E80083FF0AC080919C -:101F7000E800877F8093E8008091EB008062809387 -:101F8000EB00AA960FB6F894DEBF0FBECDBFDF916F -:101F9000CF911F9108950895CF938091F1018823E7 -:101FA000A1F0C091E900CF709091EC00892F817071 -:101FB00090FD80E8C82B1092E9008091E80083FD35 -:101FC0000E947A0ECF70C093E900CF91089590934C -:101FD0007501809374010895E0917401F091750189 -:101FE000309721F00190F081E02D099480E0089570 -:101FF000E0917401F0917501309721F00280F38136 -:10200000E02D09940895E0917401F09175013097E5 -:1020100021F00480F581E02D09940895209172014A -:10202000309173018217930771F09093730180933D -:102030007201E0917401F0917501309721F00680F2 -:10204000F781E02D0994089520917001309171017C -:102050008217930771F09093710180937001E09162 -:102060007401F0917501309721F00084F185E02D25 -:102070000994089508950C943A100E94941B0E94AC -:1020800033030C94561C9F92AF92BF92CF92DF9273 -:10209000EF92FF920F931F93CF93DF9300D000D066 -:1020A00000D0CDB7DEB70E944B030DE010E0AA24AC -:1020B000A394B12C902E802F0E94390498012958A6 -:1020C0003E4F6901F901F080F826A1F40150110991 -:1020D00088F78FEF89838A831B820E949D1B816012 -:1020E000782F9D838C8349815A816B818D810E94D9 -:1020F000DA102FC09091DA0191FF04C08E830E9404 -:102100003F048E8125E030E0A501022E01C0440F7E -:102110000A94EAF7E42E4F21C1F029839A828E2196 -:1021200091E009F490E09B830E949D1B8160782FD1 -:102130009D838C8349815A816B818D810E94DA1045 -:10214000F6018081E826E08204C021503109E0F6E2 -:10215000BDCF0E943D1F109176010E94EC0F181711 -:10216000B9F00E94EC0F8093760126960FB6F89492 -:10217000DEBF0FBECDBFDF91CF911F910F91FF90BA -:10218000EF90DF90CF90BF90AF909F900C94E508B8 -:1021900026960FB6F894DEBF0FBECDBFDF91CF916C -:1021A0001F910F91FF90EF90DF90CF90BF90AF9075 -:1021B0009F900895CF93DF93CDB7DEB72B970FB6DF -:1021C000F894DEBF0FBECDBF4F83588769877A87EB -:1021D0008B87DE01119686E0FD0111928A95E9F761 -:1021E00085E0FE01379601900D928A95E1F74981CD -:1021F0005A816B817C818D819E810E9423172B9651 -:102200000FB6F894DEBF0FBECDBFDF91CF9108951A -:10221000CF93882309F4C2C0C82F823859F40E9492 -:10222000EC0F81FDBBC089E30E94FD190E94CA1A10 -:1022300089E30CC0833879F40E94EC0F80FDAEC0B6 -:1022400083E50E94FD190E94CA1A83E50E943F1A85 -:10225000CF910C94CA1A843859F40E94EC0F82FD75 -:102260009DC087E40E94FD190E94CA1A87E4EECF40 -:102270008CEF8C0F813A48F48C2F0E9480218111C1 -:102280008DC08C2F0E94FD19E3CF80E28C0F883027 -:1022900048F4C77081E001C0880FCA95EAF70E9430 -:1022A000831AD6CF8BE58C0F833078F4C53A29F0AA -:1022B000C63A31F083E890E005C081E890E002C0C2 -:1022C00082E890E0CF910C940E1088E58C0F83315A -:1022D00008F064C0C83A39F1C93A41F1CA3A49F143 -:1022E000CB3A51F1CC3A59F1CD3A61F1C03B69F1A9 -:1022F000CE3A71F1CF3A79F1C13B81F1C23B89F11C -:10230000C33B91F1C43B99F1C53BA1F1C63BA9F197 -:10231000C73BB1F1C83BB9F1C93BC1F1CA3BC9F1F7 -:1023200080E090E038C082EE90E035C089EE90E029 -:1023300032C08AEE90E02FC085EB90E02CC086EB97 -:1023400090E029C087EB90E026C08CEC90E023C0A1 -:102350008DEC90E020C083E891E01DC08AE891E018 -:102360001AC082E991E017C084E991E014C081E2CB -:1023700092E011C083E292E00EC084E292E00BC0D2 -:1023800085E292E008C086E292E005C087E292E032 -:1023900002C08AE292E0CF910C942410CF9108956C -:1023A000882309F44BC0823859F40E94EC0F81FF56 -:1023B00045C089E30E94FD190E94CA1A89E30CC036 -:1023C000833871F40E94EC0F80FF38C083E50E94CF -:1023D000FD190E94CA1A83E50E943F1A0C94CA1A7A -:1023E000843859F40E94EC0F82FF28C087E40E94D1 -:1023F000FD190E94CA1A87E4EFCF9CEF980F913A1B -:1024000058F390E2980F983050F4877091E001C033 -:10241000990F8A95EAF7892F0E94891ADFCF9BE5E9 -:10242000980F933020F480E090E00C940E10885ABE -:10243000833120F480E090E00C94241008958823E8 -:1024400021F00E94831A0C94CA1A0895882321F05F -:102450000E94891A0C94CA1A08957F928F929F92B3 -:10246000AF92BF92CF92DF92EF92FF920F931F93A2 -:10247000CF93DF931F92CDB7DEB77C01C62E772EA8 -:10248000FC01058102950F70128111110E94A01AA2 -:102490000E94F619882379F0112369F080E28C0DEF -:1024A000883048F082E00E94DF190E94F61991E01E -:1024B000D82ED92601C0D12CE72DE295EF70F0E09F -:1024C000E05AFF4F0C94B523872D807F072D0F70A6 -:1024D000882311F00295007F112389F0002309F46D -:1024E00090C180E28C0D883020F4802F0E94831AE6 -:1024F00003C0802F0E94931A0E94CA1A82C18C2D99 -:102500000E94D011002309F495C180E28C0D88301F -:1025100020F4802F0E94891A03C0802F0E94991AEC -:102520000E94CA1A87C1972D907F872D8F70903295 -:1025300011F08295807FCC2021F0F1E0CF16B1F030 -:102540001EC0112349F0002309F414C1013009F021 -:1025500011C10E94B31A6EC1002319F0013009F4B1 -:1025600069C189830E94B61A89810AC1112321F0A9 -:10257000023008F05FC1FEC001115CC101C111232E -:1025800021F0002309F4F6C03CC1002309F4F8C08F -:102590003EC1872D86958695837090E0009719F04F -:1025A000019761F047C1112321F08C2D972D937075 -:1025B00002C080E090E00E940E103CC1112321F087 -:1025C0008C2D972D937002C080E090E00E94241023 -:1025D00031C18C2D112319F00E94451E02C00E94AA -:1025E000AD1E0E94321F26C1872D837009F052C094 -:1025F000111120C18C2D829586958770880F880FC8 -:102600009C2D9F70892E912CA12CB12C082E04C0DA -:10261000880C991CAA1CBB1C0A94D2F7C4FE14C0D7 -:102620000FE010E020E030E0B901A80104C0440F41 -:10263000551F661F771F8A95D2F7CB01BA016095A7 -:1026400070958095909503C060E070E0CB01272DD8 -:1026500026952695237030E02230310569F023302D -:10266000310589F0682979298A299B29213031058A -:1026700071F00E946B18DEC0682979298A299B298C -:102680000E948718D7C00E946B18C501B4010E9430 -:102690004F18D0C0112319F0872D817001C0869585 -:1026A000882309F4C7C08C2D829586958770880F82 -:1026B000880F9C2D9F70892E912CA12CB12C082E57 -:1026C00004C0880C991CAA1CBB1C0A94D2F7C4FE37 -:1026D00014C00FE010E020E030E0B901A80104C010 -:1026E000440F551F661F771F8A95D2F7CB01BA0199 -:1026F000609570958095909503C060E070E0CB0187 -:10270000272D269526952370422F50E04230510503 -:1027100069F04330510589F0682979298A299B2974 -:102720004130510571F00E94451984C0682979290A -:102730008A299B290E9461197DC00E944519C50103 -:10274000B4010E94291976C08C2D90E0FC01E05E56 -:10275000F109E531F10508F050C0E059FF4F0C9444 -:10276000B5230C2D0F70872D8F71112331F00E942E -:10277000C218802F0E941F125DC00E94E318802F94 -:102780000E94261257C0112339F0011153C0872D22 -:102790008F710E9408194EC0023008F04BC0F7CF6D -:1027A000112339F0872D8F710E94C21843C0112365 -:1027B000C9F3872D8F710E94E3183CC0112329F0C3 -:1027C000872D8F710E94AD1835C00E94A31832C0AA -:1027D000112351F0172D1F71812F0E94C21863E041 -:1027E000812F0E94D61926C081E00E94DF19023095 -:1027F00008F182E00E94DF191DC0112331F000238F -:1028000089F28C2D0E94081115C0002391F28C2DA5 -:102810000E94D0110FC0472D4F706C2DC7010E9430 -:1028200015050E94C71706C0472D4F706C2DC701B4 -:102830000E94F405DD20F9F00E94D21980FD1BC032 -:10284000F70112820E94CC190E94C218C7010E948F -:102850004A140E94CC190F90DF91CF911F910F91D4 -:10286000FF90EF90DF90CF90BF90AF909F908F90B0 -:102870007F900C94E3180F90DF91CF911F910F91EF -:10288000FF90EF90DF90CF90BF90AF909F908F9090 -:102890007F9008950F931F93CF93DF93EC0188816E -:1028A00099812B813C81232BB9F09F3F11F48F3FFD -:1028B00099F0CE010E944C05882371F068817981DE -:1028C0008A810E94C8198C010E947D190E944418B7 -:1028D000B801CE010E942D12DF91CF911F910F916F -:1028E00008950E94A01A0E94B01A0E94751A0E94B0 -:1028F000CA1A0E94E31F0E94321F80E090E00E94EB -:102900000E1080E090E00C9424100E94901A0C9419 -:1029100071140E94BD19292F22952F7030E02C30A0 -:1029200031054CF42A3031056CF422503109223043 -:102930003105A8F407C02C30310569F02F3031057E -:1029400051F00DC0803F69F018F4803E40F409C09A -:10295000843F29F406C093FB882780F9089580E01E -:10296000089581E00895CF93DF9300D000D01F92A7 -:10297000CDB7DEB70F900F900F900F900F90DF91B3 -:10298000CF910895CF93DF9300D000D000D0CDB782 -:10299000DEB726960FB6F894DEBF0FBECDBFDF912F -:1029A000CF9108951F93CF93DF93C091850116E0D7 -:1029B00080918601C81799F0D0E01C9FF0011D9FFF -:1029C000F00D1124E957FE4F4081518162817381DE -:1029D000848195810E94C2142196C770E9CFDF914E -:1029E000CF911F9108954091B7015091B801609126 -:1029F000B9017091BA018091BB019091BC010C9416 -:102A0000C2148091BC0182958F7009F054C08091EE -:102A1000B901882309F44FC080918501A0918601F6 -:102A20006091B7017091B8014091BA015091BB011A -:102A3000B6E08A1709F43FC090E041155105C1F195 -:102A40007F3F11F46F3FA1F1B89FF001B99FF00DE6 -:102A50001124E957FE4F218172132AC0208162138D -:102A600027C02281211124C02381348124173507F6 -:102A700010F421503109241B350B283C3105C0F4DA -:102A80002091BC012F7020612093BC0126E0289F7B -:102A9000F001299FF00D1124E457FE4F80818F70C3 -:102AA0008061808387EB91E00E944A140C94D214D9 -:102AB00001968770BECF0895CF92DF92EF92FF927A -:102AC0000F931F93CF93DF93CDB7DEB762970FB607 -:102AD000F894DEBF0FBECDBF8C0185E0F801DE01AA -:102AE0001D9601900D928A95E1F7D8014C911196AF -:102AF0005C91119712966C9112971396CD90DC9081 -:102B000014973091B7017091B8018091BA019091FA -:102B1000BB01009709F46BC17F3F19F43F3F09F4F3 -:102B200066C1E090B901EE2009F4C0C02091BC015B -:102B3000C816D90628F0F601E81BF90BCF0104C02E -:102B4000809590958C0D9D1DFF24F394883C9105F4 -:102B500078F0F12C207F09F0C6C07C2DD98AC88A74 -:102B600089890E94B31487EB91E00E944A14B1C096 -:102B7000822F807F09F046C0751314C0341312C031 -:102B8000611110C02F7020612093BC010E94F314CA -:102B900087EB91E00E944A148091BC01D801159600 -:102BA0008C932EC0CD2819F15F3F11F44F3FF9F0FF -:102BB000F62E61111CC0809185012091860136E0BE -:102BC000821709F45AC090E0389FF001399FF00D48 -:102BD0001124E957FE4F7181571306C070814713C6 -:102BE00003C07281711103C001968770E9CFF62E80 -:102BF000662309F418C18091BC0181608093BC01F7 -:102C0000F12C11C1751308C0341306C0611104C042 -:102C10008091BC01D801C3C04D875E878D859E859C -:102C20006A8B0E9489146A898823E1F16623D1F1B5 -:102C30002091BC01822F82958F7090E0029774F0F2 -:102C40008091B7019091B80198878F831986DB86B0 -:102C5000CA862C87CE0107960E944A1486E0F801A6 -:102C6000A7EBB1E001900D928A95E1F70E94011562 -:102C70000E94F314FF24F394D6C04D875E878D85A0 -:102C80009E850E94BD19292F22952F7030E0223099 -:102C900031050CF0BCC09F7009F0B6C0805E883072 -:102CA00008F4C1C0C8010E944A14E4CFC816D9066E -:102CB00008F453C0F601E81BF90BCF01883C9105DD -:102CC00008F450C0F12C7C2DD98AC88A89890E94C9 -:102CD000B314E7EBF1E086E0DF011D928A95E9F796 -:102CE0000E94F314A0C0751314C0341312C06111F4 -:102CF00010C08091BC01F8018583C8010E944A146C -:102D000086E0E7EBF1E0DF011D928A95E9F7FE2C02 -:102D10008AC04D875E878D859E856A8B0E94891447 -:102D20006A89882309F4BECF662309F4BBCF2091BA -:102D3000BC01822F82958F7090E002970CF48ECFA9 -:102D40008091B7019091B8019A8389831B82DD82BB -:102D5000CC822E83CE0101967FCF809590958C0DED -:102D60009D1DACCFF62E662309F49CCF75132EC0A3 -:102D700034132CC02091BC0120FD1FC0822F8295EE -:102D80008F70D9F0D80115962C9315978F3049F094 -:102D90008F5F982F9295907F822F8F70892B159639 -:102DA0008C93C8010E944A1486E0F801A7EBB1E0B9 -:102DB00001900D928A95E1F793CF86E0F801A7EB99 -:102DC000B1E001900D928A95E1F72DC04D875E87A5 -:102DD0008D859E850E948914811140CF8091BC0110 -:102DE00081608093BC01C8010E944A141CC0662304 -:102DF00009F458CF4D875E878D859E850E94891482 -:102E0000882309F44FCF2ACF811148CF0CC024303A -:102E100031050CF047CF9F7009F440CFF801958140 -:102E2000907F09F03BCF8F2D62960FB6F894DEBFEE -:102E30000FBECDBFDF91CF911F910F91FF90EF900B -:102E4000DF90CF9008951F93CF93DF93CDB7DEB778 -:102E50002C970FB6F894DEBF0FBECDBF4F835887B7 -:102E600069877A878B879C87CE0107960E945C15BD -:102E7000882369F08F8198852A853B85232BF1F182 -:102E80009F3F09F063C08F3F09F060C037C086E004 -:102E9000FE013796DE01119601900D928A95E1F7B9 -:102EA0006F817885EA85FB85309741F17F3F11F48A -:102EB0006F3F21F12091860130E0C90101968770B2 -:102EC00099274091850150E08417950709F447C080 -:102ED00069837A83FD83EC8396E0929FD001939F70 -:102EE000B00D1124A957BE4FFE01319601900D92ED -:102EF0009A95E1F7809386010E94D21416E08091A2 -:102F00008501909186018917C1F1189FC001112494 -:102F100089579E4F0E945C15882379F1E0918501C5 -:102F20001E9FF0011124E957FE4F408151816281BB -:102F30007381848195810E94C2148091850190E003 -:102F400001968770992780938501D9CF4F81588545 -:102F500069857A858B859C850E94C214CFCF0E949B -:102F600085141092860110928501E7EBF1E086E06E -:102F7000DF011D928A95E9F7C1CF2C960FB6F89420 -:102F8000DEBF0FBECDBFDF91CF911F910895EF92AD -:102F9000FF920F931F93CF93DF938C01009709F457 -:102FA0006CC0F12CEE24E394E8012196F8018491A1 -:102FB000843740F4843008F051C0813081F0823091 -:102FC00019F15BC0853709F444C0A8F19CE7980F5C -:102FD000903708F052C08F770E94D01141C00E5F29 -:102FE0001F4FFE01C49180E28C0F883048F4C770F7 -:102FF0008E2D01C0880FCA95EAF70E94A31A14C04B -:103000008C2F0E9408112DC00E5F1F4FFE01C4912E -:1030100080E28C0F883058F4C7708E2D01C0880F65 -:10302000CA95EAF70E94A91A0E94CA1A1AC08C2FE0 -:103030000E94D01116C00E5F1F4FFE01C491CC2319 -:1030400081F08FE99FE00197F1F700C00000C150C7 -:10305000F6CF0E5F1F4FFE01F49003C00E940811CF -:103060008E018F2D882309F49FCFEFE9FFE0319780 -:10307000F1F700C000008150F5CFDF91CF911F9193 -:103080000F91FF90EF90089508956093C1017093A0 -:10309000C2018093C3019093C4010C9471140F93E7 -:1030A0001F930091C1011091C2012091C301309181 -:1030B000C401DC01CB01802B912BA22BB32B80937D -:1030C000C1019093C201A093C301B093C4011F91A9 -:1030D0000F910C9471140F931F930091C1011091E3 -:1030E000C2012091C3013091C401DC01CB018023D6 -:1030F0009123A223B3238093C1019093C201A09393 -:10310000C301B093C4011F910F910C9471140F93DC -:103110001F930091C1011091C2012091C301309110 -:10312000C401DC01CB0180279127A227B32780931C -:10313000C1019093C201A093C301B093C4011F9138 -:103140000F910C9471141092BD011092BE01109257 -:10315000BF011092C0010C94711441E050E060E096 -:1031600070E004C0440F551F661F771F8A95D2F781 -:103170004093BD015093BE016093BF017093C001A5 -:103180000C94711441E050E060E070E004C0440F22 -:10319000551F661F771F8A95D2F78091BD019091C8 -:1031A000BE01A091BF01B091C001482B592B6A2BE1 -:1031B0007B2B4093BD015093BE016093BF01709380 -:1031C000C0010C94711441E050E060E070E004C074 -:1031D000440F551F661F771F8A95D2F7409550956B -:1031E000609570958091BD019091BE01A091BF0145 -:1031F000B091C001482359236A237B234093BD012A -:103200005093BE016093BF017093C0010C94711480 -:1032100041E050E060E070E004C0440F551F661FBD -:10322000771F8A95D2F78091BD019091BE01A09140 -:10323000BF01B091C001482759276A277B274093D7 -:10324000BD015093BE016093BF017093C0010C9407 -:1032500071140F931F930091BD011091BE01209135 -:10326000BF013091C001DC01CB01802B912BA22B3F -:10327000B32B8093BD019093BE01A093BF01B09387 -:10328000C0011F910F910C9471140F931F93009123 -:10329000BD011091BE012091BF013091C001DC0140 -:1032A000CB0180239123A223B3238093BD0190936C -:1032B000BE01A093BF01B093C0011F910F910C9468 -:1032C00071140F931F930091BD011091BE012091C5 -:1032D000BF013091C001DC01CB0180279127A227DB -:1032E000B3278093BD019093BE01A093BF01B0931B -:1032F000C0011F910F910C9471140895CF92DF9229 -:10330000EF92FF920F931F93CF93DF938C01C090A6 -:10331000C101D090C201E090C301F090C40180913E -:10332000BD019091BE01A091BF01B091C001C82A1A -:10333000D92AEA2AFB2ACFE1D0E0D701C6010C2E18 -:1033400004C0B695A795979587950A94D2F780FF04 -:1033500006C0B8018C2F0E944A08019721F42197DA -:1033600060F780E001C08C2FDF91CF911F910F910A -:10337000FF90EF90DF90CF900895CF93DF93EC0113 -:103380000E947E19BE010E944A08DF91CF910895E4 -:10339000CB010E94BD1908958091C5018595859541 -:1033A000859508958091C5018770089598E0899F5B -:1033B00090011124262B2093C5010C94C218209152 -:1033C000C501809582238093C501982F977069F479 -:1033D00030E0482F552747FD50952417350729F031 -:1033E0008595859585950C94E31808959091C50170 -:1033F000977081E009F480E0089590910C01992381 -:1034000021F090910D01911109C020910E01309190 -:103410000F01F90132969FEF40E01FC0982F96955B -:10342000969596959F3050F5E0910E01F0910F0121 -:10343000E90FF11D877021E030E0A90102C0440FBF -:10344000551F8A95E2F7CA019181892B81830895DE -:103450009F3F39F04F5F4E3041F051915813F8CFF4 -:103460000DC05111F7CF942FF5CF9F3F39F0F901DF -:10347000E90FF11D97FDFA958283089508959091C3 -:103480000C01992321F090910D01911109C0209117 -:103490000E0130910F01F9013296205F3F4F1FC09E -:1034A000982F9695969596959F30F0F4E0910E01A1 -:1034B000F0910F01E90FF11D877021E030E0A901C3 -:1034C00002C0440F551F8A95E2F7CA018095918189 -:1034D0008923818308953196E217F30729F09081BB -:1034E0009813F9CF1082F7CF089581E090E0E09132 -:1034F0000E01F0910F01E80FF91F10820196803143 -:103500009105A9F708959091D901892B8093D9014C -:10351000089580959091D90189238093D9010895C8 -:103520001092D90108959091D801892B8093D801E8 -:10353000089580959091D80189238093D8010895AA -:103540001092D80108959091D701892B8093D701CB -:10355000089580959091D70189238093D70108958C -:103560001092D70108958093C60108951092C60164 -:10357000089580910E0190910F01FC0131969C01FC -:10358000205F3F4F80E0919191118F5FE217F30729 -:10359000D1F70895E0910E01F0910F018091D901CA -:1035A0008083E0910E01F0910F0190818091D8010C -:1035B000892B8083E0910E01F0910F019081809121 -:1035C000D701892B80838091C601882361F0E09127 -:1035D0000E01F0910F019081892B80830E94B91A0E -:1035E00081111092C60180910E0190910F010C94EF -:1035F000F80F20E0009739F0AC01415051098423C5 -:1036000095232F5FF7CF822F0895CF92DF92EF920D -:10361000FF926C01EE24FF24C114D104E104F104F3 -:1036200021F0C701B60120E101C020E0C72ED82E4D -:10363000E92EFF24C114D104E104F10419F0285F3C -:10364000C701B6016B017C0154E0F694E794D7946E -:10365000C7945A95D1F7C114D104E104F10419F0CB -:103660002C5FC701B6016B017C0142E0F694E79440 -:10367000D794C7944A95D1F7C114D104E104F10459 -:1036800019F02E5FC701B601DC01CB01B695A795F5 -:1036900097958795892B8A2B8B2B09F02F5F822F8B -:1036A000FF90EF90DF90CF9008958091F1018430EA -:1036B00021F11092DB0120E488E190E00FB6F8944C -:1036C000A895809360000FBE2093600080E00E9468 -:1036D000E50883B7817F846083BF83B7816083BF40 -:1036E0007894889583B78E7F83BF88E10FB6F8946E -:1036F00080936000109260000FBE089508950895B1 -:103700000E947E1B0E944B030E947F1B0E9440046C -:1037100091E0811101C090E0892F08950E948514E5 -:103720000E94EC0F0C94E50882E084BD93E095BD07 -:103730009AEF97BD80936E0008952FB7F89480910B -:10374000DC019091DD01A091DE01B091DF012FBF7E -:103750000895CF92DF92EF92FF920F931F932FB7AE -:10376000F8944091DC015091DD016091DE0170918F -:10377000DF012FBF6A017B01EE24FF248C0120E0D2 -:1037800030E0C016D106E206F30610F441505109AC -:103790009A01281B390BC9011F910F91FF90EF90DF -:1037A000DF90CF9008951F920F920FB60F921124C1 -:1037B0008F939F93AF93BF938091DC019091DD0134 -:1037C000A091DE01B091DF010196A11DB11D809392 -:1037D000DC019093DD01A093DE01B093DF01BF9186 -:1037E000AF919F918F910F900FBE0F901F901895E2 -:1037F0000E94E90CF8942FEF87EA91E6215080406F -:103800009040E1F700C0000087E090EBDC0180937E -:10381000FB019093FC01A093FD01B093FE019CE09D -:1038200088E10FB6F894A895809360000FBE90933E -:103830006000FFCFEF92FF920F931F93CF93DF9320 -:10384000D82FCDE08C2F0E94390405E010E0E82E3F -:10385000F12CC701002E02C0959587950A94E2F7D6 -:1038600080FF09C0602F7C2F80E00E94F505D813EF -:1038700002C081E006C00150110958F7C15010F78D -:1038800080E0DF91CF911F910F91FF90EF9008950D -:10389000CF93C82F8CE20E941A1C882321F08C2F12 -:1038A000CF910C941A1C80E0CF910895CF930E9481 -:1038B0009D1D811102C00E94831DC5E6C15049F0C3 -:1038C0000E944B038FE39CE90197F1F700C00000D1 -:1038D000F5CF89E20E94481C811113C18AE20E943F -:1038E000481C81110E94831D85E00E94481C8111A3 -:1038F0000E94F81B0E94A81D8093DA0187E00E94B5 -:10390000481C8823A9F18BE10E94481C882351F0B0 -:103910008091DA0181FB222720F991E0922790FB28 -:1039200081F90EC08EE00E94481C882361F08091CE -:10393000DA0182FB222720F991E0922790FB82F99D -:103940008093DA0115C080E10E94481C9091DA0151 -:10395000882341F093FB222720F981E0822780FB16 -:1039600093F904C0892F809580FB90F99093DA0138 -:103970008091DA010E94AC1D0E94BA1D8093FA0169 -:1039800080EE0E94481C882341F08091FA01982F14 -:10399000909590FB80F98093FA0189E30E94481C7E -:1039A000882359F08091FA0181FB222720F991E0C8 -:1039B000922790FB81F98093FA0182EE0E94481CC5 -:1039C000882359F08091FA0182FB222720F991E0A7 -:1039D000922790FB82F98093FA0186EE0E94481CA0 -:1039E000882359F08091FA0183FB222720F991E086 -:1039F000922790FB83F98093FA0183EE0E94481C82 -:103A0000882359F08091FA0184FB222720F991E064 -:103A1000922790FB84F98093FA0185E30E94481C69 -:103A2000882359F08091FA0185FB222720F991E043 -:103A3000922790FB85F98093FA0181E30E94481C4C -:103A4000882359F08091FA0186FB222720F991E022 -:103A5000922790FB86F98093FA0181E10E94481C2D -:103A6000882359F08091FA0187FB222720F991E001 -:103A7000922790FB87F98093FA018091FA010E94C6 -:103A8000BE1D8091FA0187FB882780F980930D0184 -:103A900087E20E94481CC82F8EE10E94481C8111B9 -:103AA000C2608FE10E94481C8111C46080E20E94C4 -:103AB000481C8111C86081E20E94481C8111C061CC -:103AC00082E20E94481C8111C06283E20E94481C6D -:103AD0008111C06484E20E94481C882311F0C068F0 -:103AE00002C0CC2329F08C2F0E94B51D6C2F03C07F -:103AF0000E94B11D682F70E080E090E0CF910C949F -:103B00004518CF9108956DEE7EEF80E090E00E9421 -:103B1000EF2360E082E090E00E94DD2360E083E03C -:103B200090E00E94DD2360E084E090E00E94DD23CD -:103B300060E085E090E00C94DD2380E090E00E945E -:103B4000D72321E08D3E9E4F09F020E0822F08957B -:103B500082E090E00C94CF23682F82E090E00C94F8 -:103B6000DD2383E090E00C94CF23682F83E090E086 -:103B70000C94DD2384E090E00C94CF23682F84E044 -:103B800090E00C94DD238091E20180FF0BC06091F6 -:103B9000130185E0689FB0011124759567957595AF -:103BA00067952BC081FF09C06091130185E0689F74 -:103BB000B00111247595679520C082FF07C0609100 -:103BC000130185E0689FB001112417C09091E301B3 -:103BD0009923D1F060911201961788F72091130173 -:103BE00085E0289F90011124929FA001939F500D82 -:103BF000112470E0CA010E94A1236038710540F4CD -:103C00006115710539F002C065E070E0862F0895F6 -:103C10008FE7089581E008958091E20180FF08C058 -:103C20006091110170E0759567957595679521C054 -:103C300081FF06C06091110170E07595679519C00C -:103C400082FF04C06091110170E010C09091E30107 -:103C50009923C1F0609110019617A0F7809111018E -:103C6000899FC001112470E00E94A1236038710572 -:103C700028F46115710521F0862F08958FE70895C6 -:103C800081E0089561E070E0F4CF803F21F40E946C -:103C9000C31D819504C0813F29F40E94C31D8093F8 -:103CA000E6010895823F21F40E94C31D819504C05E -:103CB000833F29F40E94C31D8093E5010895893F45 -:103CC00019F40E940C1E05C08A3F31F40E940C1E9C -:103CD00081958093E70108958B3F21F40E940C1E8B -:103CE000819504C08C3F29F40E940C1E8093E8014A -:103CF0000895843F21F48091E401816017C0853FDD -:103D000021F48091E401826011C0863F21F480910A -:103D1000E40184600BC0873F21F48091E401886056 -:103D200005C0883F31F48091E40180618093E40113 -:103D300008958D3F21F48091E20181600BC08E3F98 -:103D400021F48091E201826005C08F3F29F48091C7 -:103D5000E20184608093E2010895803F39F480910C -:103D6000E60187FF6CC01092E60169C0813F29F42B -:103D70008091E6011816BCF362C09091E501823F84 -:103D800029F497FF5CC01092E50159C0833F19F4F4 -:103D90001916CCF354C0893F41F48091E7011816FD -:103DA0000CF04DC01092E7014AC08A3F29F480917F -:103DB000E70187FF44C0F6CF8B3F39F48091E801DB -:103DC00087FF3DC01092E8013AC08C3F29F48091F2 -:103DD000E8011816BCF333C0843F21F48091E4015C -:103DE0008E7F17C0853F21F48091E4018D7F11C043 -:103DF000863F21F48091E4018B7F0BC0873F21F443 -:103E00008091E401877F05C0883F31F48091E4010F -:103E10008F7E8093E40113C08D3F21F48091E201F5 -:103E20008E7F0BC08E3F21F48091E2018D7F05C013 -:103E30008F3F29F48091E2018B7F8093E201809192 -:103E4000E50181110EC08091E60181110AC08091C7 -:103E5000E701811106C08091E801811102C0109232 -:103E6000E301089584EE91E00E9403100E949D1BDF -:103E70009093E1018093E00108951F93CF93DF9326 -:103E80008091E0019091E1010E94A91BAC01909109 -:103E9000E301992321F02091140130E006C0209124 -:103EA00015018AE0289F900111244217530708F456 -:103EB00086C08091E501C091E601D091E7011091A3 -:103EC000E801811107C0C11176C0D11174C0111170 -:103ED00072C075C09F3F19F09F5F9093E301181661 -:103EE00024F40E94C31D8093E5018091E50187FFC2 -:103EF00005C00E94C31D81958093E5011C1624F422 -:103F00000E94C31D8093E6018091E60187FF05C0F2 -:103F10000E94C31D81958093E6016091E5016623AF -:103F200039F1C091E601CC2319F1772767FD70952F -:103F3000872F972F0E94B22223E333E343E35FE30B -:103F40000E9416230E947F226093E5016C2F772741 -:103F500067FD7095872F972F0E94B22223E333E3EA -:103F600043E35FE30E9416230E947F226093E601F1 -:103F70001D1624F40E940C1E8093E7018091E70136 -:103F800087FF05C00E940C1E81958093E7011116E2 -:103F900024F40E940C1E8093E8018091E80187FFC1 -:103FA00005C00E940C1E81958093E801DF91CF919E -:103FB0001F910C94321F9F3F09F08ECF96CFDF9157 -:103FC000CF911F910895E4EEF1E085E0DF011D92AD -:103FD0008A95E9F71092E3011092E2010895833087 -:103FE00081F128F4813059F08230D1F00895853084 -:103FF00009F449C0B8F1863009F456C0089580919B -:104000001501262F30E0280F311D2F3F310524F4F4 -:10401000680F6093150108958FEF8093150108953F -:1040200080911401262F30E0280F311D2F3F3105DC -:1040300024F4680F6093140108958FEF80931401A6 -:10404000089580911301262F30E0280F311D2F3F56 -:10405000310524F4680F6093130108958FEF809366 -:104060001301089580911201262F30E0280F311D91 -:104070002F3F310524F4680F6093120108958FEFEC -:1040800080931201089580911101262F30E0280FAE -:10409000311D2F3F310524F4680F609311010895FD -:1040A0008FEF80931101089580911001262F30E049 -:1040B000280F311D2F3F310524F4680F6093100144 -:1040C00008958FEF809310010895833011F128F443 -:1040D000813049F0823091F00895853081F120F1EE -:1040E0008630C1F1089580911501681720F4861B70 -:1040F000809315010895109215010895809114017F -:10410000681720F4861B80931401089510921401FF -:10411000089580911301681720F4861B8093130182 -:10412000089510921301089580911201681720F4E8 -:10413000861B8093120108951092120108958091B8 -:104140001101681720F4861B8093110108951092C5 -:104150001101089580911001681720F4861B809347 -:10416000100108951092100108950F931F938D313F -:1041700009F46BC008F03FC08E3009F47FC0C0F472 -:10418000873009F469C068F4863009F0B1C08091C5 -:10419000DA01817F8E7F8093DA0181E08093EA01EA -:1041A000A8C0883009F4A2C08B3009F49FC0A0C019 -:1041B000863109F49BC078F4803109F472C08131F2 -:1041C00009F096C00E94851490910D0181E0892725 -:1041D00080930D018BC0893109F488C08B3109F0BF -:1041E00087C08091DA0181FB222720F991E0922794 -:1041F00090FB81F94CC0853309F470C048F48732D4 -:1042000009F46CC008F459C0893209F467C070C061 -:10421000833438F48A3308F04EC0883309F466C01A -:1042200067C0833409F45AC0883409F061C00E9421 -:1042300085140FEF13ED20E3015010402040E1F70B -:1042400000C000000E94F81B51C00E9439220E9449 -:10425000EC0F0E94E5084AC09091DA01892F809501 -:10426000817080FB90F929F0966098609093DA0154 -:1042700040C0997F977F9093DA0138C08091DA012E -:1042800082FB222720F991E0922790FB82F980930C -:10429000DA01992359F18091DA0181608093DA0182 -:1042A00025C08091DA0183FB222720F991E0922733 -:1042B00090FB83F9ECCF895301C08D5141E050E070 -:1042C00060E070E08A019B0104C0000F111F221FF3 -:1042D000331F8A95D2F7C901B80104C061E070E0CC -:1042E00080E090E00E9445180E94851481E001C0A2 -:1042F00080E01F910F91089580E0089580E0089577 -:10430000CF93C82F8091EA01813079F018F0823084 -:10431000E9F187C0E0910E01F0910F0180818131B8 -:1043200069F0823209F07FC009C0E0910E01F0917E -:104330000F018081813111F0823261F48C2F0E9453 -:104340007C21811104C08C2F0E94B5201DC081E00A -:1043500090E01AC08C2F0E947E21811114C0C431BC -:1043600079F048F4CB3079F0C03109F060C082E0D8 -:104370008093EA0108C0C93219F0C83321F057C050 -:104380001092EA0154C081E0817053C0C93289F1B2 -:1043900018F5C43171F1A8F4C73009F046C08AE0BD -:1043A0008093150194E19093140193E0909313018D -:1043B0008093120188E08093110188E280931001BC -:1043C00034C0CE51C63088F5EC2FF0E0E65DFE4FEC -:1043D00080818093E90129C0CE34E9F020F4CB3408 -:1043E00021F56AE013C0C13579F0C235F1F461E01E -:1043F0000DC08091E901882319F01092E90115C0E0 -:1044000081E08093EA0115C061E006C08091E90176 -:104410000E94EF1F0AC06AE08091E9010E946520B6 -:1044200004C01092EA0180E004C081E002C080E094 -:10443000ABCFCF910895E1E8F0E080818860808380 -:104440008081816080838FB7F89493E09093890096 -:1044500090ED909388008FBF0895EFE6F0E08081A3 -:10446000826080830895EFE6F0E080818D7F808315 -:104470000895EFE6F0E0908182E089278083089537 -:104480001F920F920FB60F9211242F933F934F93C9 -:104490005F936F937F938F939F93AF93BF93EF93AC -:1044A000FF938091EB019091EC0101969093EC01C8 -:1044B0008093EB01811103C082E00E94E508E09146 -:1044C000EC01E695E695F0E0EC54FB4FE491809129 -:1044D000EB018E1303C080E00E94E508FF91EF918D -:1044E000BF91AF919F918F917F916F915F914F910C -:1044F0003F912F910F900FBE0F901F90189504D0F1 -:104500006894B1118DC0089570D088F09F5790F0D5 -:10451000B92F9927B751A0F0D1F0660F771F881FE8 -:10452000991F1AF0BA95C9F712C0B13081F077D04F -:10453000B1E0089574C0672F782F8827B85F39F0ED -:10454000B93FCCF3869577956795B395D9F73EF447 -:1045500090958095709561957F4F8F4F9F4F0895EF -:10456000E89409C097FB3EF490958095709561950D -:104570007F4F8F4F9F4F9923A9F0F92F96E9BB27C3 -:104580009395F695879577956795B795F111F8CF3F -:10459000FAF4BB0F11F460FF1BC06F5F7F4F8F4FAA -:1045A0009F4F16C0882311F096E911C0772321F0A0 -:1045B0009EE8872F762F05C0662371F096E8862F38 -:1045C00070E060E02AF09A95660F771F881FDAF78F -:1045D000880F9695879597F9089557FD9058440F41 -:1045E000551F59F05F3F71F04795880F97FB991F52 -:1045F00061F09F3F79F0879508951216130614060F -:10460000551FF2CF4695F1DF08C01616170618069B -:10461000991FF1CF86957105610508940895E89476 -:10462000BB2766277727CB0197F908950BD078C071 -:1046300069D028F06ED018F0952309F05AC05FC0F9 -:104640001124EECFCADFA0F3959FD1F3950F50E070 -:10465000551F629FF001729FBB27F00DB11D639F34 -:10466000AA27F00DB11DAA1F649F6627B00DA11DDA -:10467000661F829F2227B00DA11D621F739FB00D80 -:10468000A11D621F839FA00D611D221F749F3327F0 -:10469000A00D611D231F849F600D211D822F762F89 -:1046A0006A2F11249F5750408AF0E1F088234AF086 -:1046B000EE0FFF1FBB1F661F771F881F91505040D2 -:1046C000A9F79E3F510570F014C0AACF5F3FECF3ED -:1046D000983EDCF3869577956795B795F795E795BE -:1046E0009F5FC1F7FE2B880F911D9695879597F9CF -:1046F000089597F99F6780E870E060E008959FEF64 -:1047000080EC089500240A94161617061806090668 -:10471000089500240A941216130614060506089537 -:10472000092E0394000C11F4882352F0BB0F40F4BF -:10473000BF2B11F460FF04C06F5F7F4F8F4F9F4FFF -:10474000089597FB072E16F4009407D077FD09D043 -:104750000E94BB2307FC05D03EF4909581959F4FA6 -:104760000895709561957F4F0895EE0FFF1F059096 -:10477000F491E02D0994AA1BBB1B51E107C0AA1FAD -:10478000BB1FA617B70710F0A61BB70B881F991FF2 -:104790005A95A9F780959095BC01CD010895F99996 -:1047A000FECF92BD81BDF89A992780B50895A8E102 -:1047B000B0E042E050E00C94F723262FF999FECFA9 -:1047C00092BD81BDF89A019700B4021639F01FBA64 -:1047D00020BD0FB6F894FA9AF99A0FBE0895019683 -:1047E000272F0E94DE230C94DD23DC01CB01FC018A -:1047F000F999FECF06C0F2BDE1BDF89A319600B43A -:0E4800000D9241505040B8F70895F894FFCF44 -:10480E000220E708750952091E09EA080101C701CD -:10481E0028080A03140A3F4D363975042804F2039A -:10482E00B9034C0365037E039703010203040506D7 -:04483E00070809005E -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/j3rn/compiled.hex b/keyboards/ergodox_ez/keymaps/j3rn/compiled.hex deleted file mode 100644 index d92538340..000000000 --- a/keyboards/ergodox_ez/keymaps/j3rn/compiled.hex +++ /dev/null @@ -1,1158 +0,0 @@ -:100000000C947B020C94BF020C94BF020C94BF02B0 -:100010000C94BF020C94BF020C94BF020C94BF025C -:100020000C94BF020C94BF020C94630D0C94350E1B -:100030000C94BF020C94BF020C94BF020C94BF023C -:100040000C94BF020C943F220C94BF020C94BF028C -:100050000C94BF020C94D21B0C94BF020C94BF02F0 -:100060000C94BF020C94BF020C94BF020C94BF020C -:100070000C94BF020C94BF020C94BF020C94BF02FC -:100080000C94BF020C94BF020C94BF020C94BF02EC -:100090000C94BF020C94BF020C94BF020C94BF02DC -:1000A0000C94BF020C94BF020C94BF02A20EC40EAB -:1000B000B20FC40EB20F090F2C0FB20F810F940FA5 -:1000C0006312631292129212C812E81219141914D0 -:1000D000F3121914A313A3130A14191419141314E3 -:1000E000B013B013B013B013B013B013B013B013F8 -:1000F000B013B013B013B013B013B013B013B013E8 -:10010000C213CF13D613DD13E7130000F0A1F0A242 -:1001100035002B002971E100C10000001E00140011 -:1001200004421D71C200E1001F001A0016001B00EE -:10013000E104E300200008000700060050002C0046 -:1001400021001500090019004F004D002200170082 -:100150000A000500000065742F002D000000007FDC -:1001600000004A0030002E000000007700004B0025 -:1001700023001C000B00110000002971240018004E -:100180000D00100052004E0025000C000E0036003D -:1001900051002800260012000F0037002F002B000E -:1001A00027001300330038713000E2002A003100CC -:1001B0003400E500C1000000010001000100010061 -:1001C000010000003A001E0220022202010001008C -:1001D0003B001F0221022302010001003C002F020C -:1001E00026022F00010001003D00300227023000EE -:1001F000010001003E00310235003502000001001F -:1002000001000100000001000000010001000100E8 -:1002100000000100000001003F00520051002402D4 -:10022000000001004000240021001E000100010028 -:100230004100250022001F00370001004200260077 -:100240002300200027000100430025022E02310078 -:100250002E000100440045000100010001000000E3 -:100260000100010001000100010000000100010087 -:100270000100010001000100010001000100010076 -:100280000100010001000100010001000100010066 -:100290000100010001000100010001000100010056 -:1002A0000100010000000100010001000000010048 -:1002B0000000010001000100000001000000010039 -:1002C00001000100F2000100000001000100010036 -:1002D000F1000100A90001000100F400F000AC00F1 -:1002E000AA00B6000100F500F300AB00A800010071 -:1002F00001000100010001000100010001000100F6 -:10030000AE00010001000000160345007200670006 -:100310006F0044006F007800200045005A00000084 -:1003200016034500720067006F0044006F007800FC -:10033000200045005A0000000403090409026D0072 -:10034000040100A0FA0904000001030101000921D1 -:1003500011010001223F000705810308000A09047A -:1003600001000103010200092111010001224D00D9 -:100370000705820308000A090402000103000000C7 -:100380000921110100012236000705830308000A34 -:1003900009040300010300000009211101000122EA -:1003A000390007058403100001120110010000004C -:1003B00008EDFE071301000102000105010906A175 -:1003C00001050719E029E715002501950875018148 -:1003D0000205081901290595057501910295017518 -:1003E00003910105071900297715002501957875F6 -:1003F000018102C005010980A101850216010026C4 -:10040000B7001A01002AB700751095018100C005D8 -:100410000C0901A1018503160100269C021A0100A6 -:100420002A9C02751095018100C005010902A101F5 -:100430000901A100050919012905150025019505E6 -:1004400075018102950175038101050109300931AA -:100450001581257F95027508810609381581257F4C -:10046000950175088106050C0A38021581257F95CE -:100470000175088106C0C005010906A1010507191B -:10048000E029E715002501950875018102950175A0 -:100490000881010508190129059505750191029545 -:1004A00001750391010507190029FF150025FF9526 -:1004B0000675088100C00000000000000000000078 -:1004C00000010204060A0F17202C3A4A5D71879D2D -:1004D000B3C7DAE9F5FCFFFCF5E9DAC7B39D87712C -:1004E0005D4A3A2C20170F0A0604020100000000A2 -:1004F00000000000000011241FBECFEFDAE0DEBFD5 -:10050000CDBF04B603FE24C08091FB019091FC0195 -:10051000A091FD01B091FE018730904BA740B04BF8 -:10052000B9F41092FB011092FC011092FD0110929F -:10053000FE0114BE84B7877F84BF88E10FB6F894AC -:1005400080936000109260000FBEE0E0FFE3099529 -:1005500011E0A0E0B1E0ECE0F8E402C005900D92FB -:10056000A433B107D9F711E0A4E3B1E001C01D92B3 -:10057000AB3FB107E1F70E94A70A0C9404240C9446 -:1005800000001092B9008AE08093B800089594EAC0 -:100590009093BC009091BC0097FFFCCF9091B90064 -:1005A000987F983021F0903111F081E00895809388 -:1005B000BB0084E88093BC008091BC0087FFFCCF27 -:1005C0008091B900887F883111F0803471F780E024 -:1005D000089584E98093BC008091BC0084FDFCCF29 -:1005E00008958093BB0084E88093BC008091BC0098 -:1005F00087FFFCCF9091B900987F81E0983209F491 -:1006000080E0089584E88093BC008091BC0087FF5F -:10061000FCCF8091BB00089580910101811115C02C -:1006200080E40E94C7028093010181110CC082E125 -:100630000E94F10280930101811105C08FEF0E9499 -:10064000F102809301010E94E90284B1807F84B9A4 -:1006500085B1807F85B98AB1837F8AB98BB1837F69 -:100660008BB93E98469808950E94C7048093010173 -:100670000E940C0380B38C7080BB81B3836F81BBFD -:10068000A5E3B1E0E3E4F1E08EE08E0F11921D925C -:100690008E13FCCF0C94B104BF92CF92DF92EF92F5 -:1006A000FF920F931F93CF93DF93809101018823D3 -:1006B00079F0809134018F5F80933401811108C0FB -:1006C0000E94C70480930101811102C00E94590455 -:1006D00005E311E0C0E0D0E0DD24D39482E0C82E31 -:1006E000EE24E394F12CC730D10500F5809101018F -:1006F000811164C080E40E94C702809301018111CE -:1007000012C082E10E94F1028093010181110BC0AD -:10071000C7010C2E01C0880F0A94EAF780950E9449 -:10072000F102809301010E94E90248C0CA30A1F0A1 -:1007300028F4C83059F0C93061F005C0CC3089F0D8 -:1007400070F0CD3089F0209A289810C0219A29980D -:100750000DC0229A2A980AC0239A2B9807C0529A51 -:1007600001C0539A5B9802C03E9A469890EA9A95C7 -:10077000F1F79FB1799902C082E001C080E09170E9 -:100780009D25982B7C9902C084E001C080E0892BD4 -:100790007D9902C038E001C030E0832B7E9902C011 -:1007A00020E101C020E0822B9FB19095991F9927ED -:1007B000991F9295990F907E892B0FC0809101010E -:1007C000811149C080E40E94C702809301018823FF -:1007D00079F1B12C0E94E9028B2DF80190819817D4 -:1007E00019F08083C09200010E940C0321960F5FD4 -:1007F0001F4FCE30D10509F076CF809100018823BC -:1008000061F1815080930001882339F08FE99FE0E6 -:100810000197F1F700C0000020C0A3E4B1E0E5E3D8 -:10082000F1E0CF01825F91919D938E13FCCF15C0B3 -:1008300083E10E94F102809301018111CACF81E41A -:100840000E94C702809301018111C3CF0E9402035D -:10085000B82EB094BFCF80E0C0CF0E94570481E093 -:10086000DF91CF911F910F91FF90EF90DF90CF908C -:10087000BF900895E82FF0E0ED5BFE4F8081089572 -:1008800008950F931F93CF93DF93C3E4D1E010E05B -:100890000C2F025F899190E00E94F81A180F0C1338 -:1008A000F9CF812FDF91CF911F910F9108950C9473 -:1008B000270556985E9825982D9826982E98279863 -:1008C0002F988FEF90E09093890080938800909309 -:1008D0008B0080938A0090938D0080938C00259AE2 -:1008E0002D9A2FEF80E792E0215080409040E1F771 -:1008F00000C00000269A2E9A2FEF80E792E0215048 -:1009000080409040E1F700C00000279A2F9A2FEF17 -:1009100080E792E0215080409040E1F700C0000065 -:1009200025982D982FEF80E792E02150804090404D -:10093000E1F700C0000026982E982FEF80E792E0A4 -:10094000215080409040E1F700C0000027982F9888 -:1009500056985E9825982D9826982E9827982F9827 -:10096000089589EA8093800089E08093810024982B -:100970002C983F988AB18F748AB96E98479A8BB138 -:10098000806B8BB9769A0E9459040C94260580E2FC -:10099000809301018091510181110EC00E94C1021A -:1009A00081E0809351012FEF83ED90E3215080404F -:1009B0009040E1F700C0000080E40E94C7028093ED -:1009C000010181112EC00E94F10280930101811169 -:1009D00028C00E94F10280930101811122C08FE39F -:1009E0000E94F1028093010181111BC00E94E90263 -:1009F00080E40E94C70280930101811112C08CE043 -:100A00000E94F1028093010181110BC00E94F1024A -:100A100080930101811105C08FE30E94F102809350 -:100A200001010E94E90280910101089561110BC04A -:100A3000FC018281882321F085EE0E94071103C00A -:100A400085EE0E94CF1180E090E0089508956091B6 -:100A5000BD017091BE018091BF019091C0010E94C3 -:100A6000041B56985E9825982D9826982E982798BE -:100A70002F98813019F0823021F00895259A2D9A0F -:100A80000895269A2E9A089581E0089581E00895A8 -:100A90000C94460508950F931F93CF93DF938C0119 -:100AA000FC01C081D181CE010E947D19BE010E944E -:100AB000F405EC01B8010E944805882309F48DC0B3 -:100AC000F8018281882309F44AC080915D01811177 -:100AD0001FC0C431F0E5DF0709F051C00E944A058C -:100AE00081E080935D010E949C1B90935C01809348 -:100AF0005B01109254011092560110925501109210 -:100B000058011092570110925A011092590165C074 -:100B100080915B0190915C010E94A81B883C91052B -:100B200070F480915401E82FF0E0EE0FFF1FEB5AB4 -:100B3000FE4FD183C0838F5F809354014EC0C43871 -:100B400080E5D80721F0C538D04501F13AC0F80159 -:100B50008281882341F01092520182E01EC0C43885 -:100B6000E0E5DE0759F580915201811106C086E269 -:100B70000E94071186E20E94CF1182E01CC0C43897 -:100B8000F0E5DF0741F3C538D045D9F4F80182819B -:100B9000882331F01092530180E20E941E121DC082 -:100BA00080915301811106C087E20E94071187E2FC -:100BB0000E94CF1180E20E9425120FC0C538D04597 -:100BC00029F381E08093520180935301C801DF91A2 -:100BD000CF911F910F910C94440580E0DF91CF914C -:100BE0001F910F910895089596E0799FF0011124C7 -:100BF00094E5899FE00DF11D1124E60FF11DEE0F24 -:100C0000FF1FE05FFE4F859194910895880F991F13 -:100C1000FC01E657F040859194910895880F991F43 -:100C2000FC01E65FFE4F8591949108950F931F9309 -:100C3000CF93DF93EC01811520E3920750F5C115A6 -:100C400080E2D80708F0C3C0CB3BD10590F4C83A86 -:100C5000D10508F06AC0C53AD10508F05BC0C430C0 -:100C6000D10508F0D0C1219709F0CAC101E010E018 -:100C70000AC2CF3FD10511F008F0C5C1C03FD10570 -:100C800008F0A2C0CE01805E9109089708F4BBC1AC -:100C9000B7C1C13090E5D90709F4A2C020F5C03131 -:100CA0008FE4D80770F4C11590E4D90708F094C018 -:100CB000C11521E3D20708F0A3C1DD278E01106C16 -:100CC000E2C1C115D04509F09BC10E9484148FEF89 -:100CD00094E32CE0815090402040E1F700C00000F8 -:100CE0000E94F71BD0C1C11597E5D90758F4C03150 -:100CF00021E5D20708F01CC1C43180E5D80708F40B -:100D000075C07EC1CE0190578115904108F078C121 -:100D1000DF7073C1C53AD10509F477C1C63AD10570 -:100D200009F076C102E810E4AEC1C83AD10509F471 -:100D300072C1C93AD10509F471C1CA3AD10509F4A1 -:100D400070C1CB3AD10509F46FC1CC3AD10509F491 -:100D50006EC1CD3AD10509F46DC1C03BD10509F48E -:100D60006CC1CE3AD10509F46BC1CF3AD10509F473 -:100D70006AC1C13BD10509F469C1C23BD10509F47F -:100D800068C1C33BD10509F467C1C43BD10509F46F -:100D900066C1C53BD10509F465C1C63BD10509F45F -:100DA00064C1C73BD10509F463C1C83BD10509F44F -:100DB00062C1C93BD10509F461C1CA3BD10509F43F -:100DC00060C100E014E45FC18E0110655CC1CE011A -:100DD0009F700E940E0658C1DF708E01106A53C1C9 -:100DE0008091DA0181608093DA014DC10E949C1DDF -:100DF000811102C00E94821D0E94B91D90E0909353 -:100E0000FB018093FA01C23080E5D80721F480917C -:100E1000FA01816086C0C43090E5D90721F4809141 -:100E2000FA0182607EC0C63020E5D20721F48091AD -:100E3000FA01846076C0C83080E5D80719F4809143 -:100E4000FA0127C0CA3090E5D90721F48091FA0150 -:100E5000806167C0CC3020E5D20721F48091FA018F -:100E600080625FC0CE3080E5D80721F48091FA011E -:100E7000806457C0C03190E5D90721F48091FA0110 -:100E800080684FC0C23120E5D20729F48091FA0171 -:100E90008460886046C0C33080E5D80721F4809123 -:100EA000FA018E7F3EC0C53090E5D90721F48091CC -:100EB000FA018D7F36C0C73020E5D20721F480913A -:100EC000FA018B7F2EC0C93080E5D80719F48091D4 -:100ED000FA0126C0CB3090E5D90721F48091FA01C0 -:100EE0008F7E1FC0CD3020E5D20721F48091FA011A -:100EF0008F7D17C0CF3080E5D80721F48091FA01AB -:100F00008F7B0FC0C13190E5D90721F48091FA01A0 -:100F10008F7707C0C331D04531F48091FA018B7FC0 -:100F2000877F8093FA018091FA010E94BD1DABC0BA -:100F30008D2F99278F70992781309105D9F49E01C3 -:100F40002370332702C0880F991F2A95E2F79C6807 -:100F50008E0144E0000F111F4A95E1F7002713703E -:100F6000802B912B53E0CC0FDD1F5A95E1F7C07613 -:100F7000DD272FC08230910531F4DC2FCC278E0184 -:100F8000016F106A80C08330910569F4CE018370CF -:100F9000992701E010E002C0000F111F8A95E2F7C7 -:100FA000C8019C680FC084309105B9F4CE018370EC -:100FB000992701E010E002C0000F111F8A95E2F7A7 -:100FC000C8019A6823E0CC0FDD1F2A95E1F7C07EA7 -:100FD000D7708C010C2B1D2B56C08530910531F438 -:100FE000DC2FCC278E01046F106A4DC0069709F0E4 -:100FF0004AC0CF71DD27DC2FCC278E01106243C0A1 -:1010000000E010E040C08E013EC001E810E43BC0AB -:1010100003E810E438C002EE14E435C009EE14E42D -:1010200032C00AEE14E42FC005EB14E42CC006EB2A -:1010300014E429C007EB14E426C00CEC14E423C02C -:101040000DEC14E420C003E815E41DC00AE815E423 -:101050001AC002E915E417C004E915E414C001E25E -:1010600016E411C003E216E40EC004E216E40BC05D -:1010700005E216E408C006E216E405C007E216E43D -:1010800002C00AE216E4C801DF91CF911F910F91CF -:10109000089596E0799FF001112494E5899FE00D71 -:1010A000F11D1124E60FF11DEE0FFF1FE05FFE4F53 -:1010B00085919491803E9105E0F4803C910558F52E -:1010C0008133910509F46FC048F48932910509F420 -:1010D00063C08A32910509F46DC072C089339105ED -:1010E000E9F082389105D1F08533910509F44DC0BE -:1010F00067C0833E910581F138F4803E9105B9F0D7 -:10110000823E9105D9F05CC0863E910561F1873E33 -:101110009105A1F155C00E94060608952091FA019B -:1011200020FD02C021FF4CC080EE90E049C08091BC -:10113000FA0180FFF9CF89E390E042C08091FA0183 -:1011400082FF0EC08091FA0184FF03C080E090E02E -:1011500037C083EE90E034C08091FA0182FFF2CF75 -:1011600082EE90E02DC08091FA0183FF0BC0809148 -:10117000FA0184FDEBCF87EE90E022C08091FA0166 -:1011800083FFF5CF86EE90E01BC08091FA0185FFCA -:1011900007C089E290E014C08091FA0185FFF9CF81 -:1011A00085E390E00DC08091FA0186FF07C08AE2D6 -:1011B00090E006C08091FA0186FFF9CF81E390E0CC -:1011C0000E941606089508950C94E30880916E011C -:1011D0000895CF93DF9300D01F92CDB7DEB79C0167 -:1011E0008091F101843019F593E099833B832A8340 -:1011F0009093E9008FEF9091E800815095FD06C033 -:1012000095ED9A95F1F700008111F5CF8091E800F6 -:1012100085FF0DC040E050E063E070E0CE01019634 -:101220000E94530B8091E8008E778093E8000F9026 -:101230000F900F90DF91CF910895CF93DF9300D05F -:101240001F92CDB7DEB72091F101243021F522E0C5 -:1012500029839B838A8383E08093E9008FEF9091B9 -:10126000E800815095FD06C095ED9A95F1F70000D4 -:101270008111F5CF8091E80085FF0DC040E050E07E -:1012800063E070E0CE0101960E94530B8091E8006C -:101290008E778093E8000F900F900F90DF91CF91A1 -:1012A00008952091F1012430F1F422E02093E90027 -:1012B0002FEF3091E800215035FD06C035ED3A950D -:1012C000F1F700002111F5CF2091E80025FF0BC0B8 -:1012D00040E050E065E070E00E94530B8091E80030 -:1012E0008E778093E8000895CF93DF93EC0190917F -:1012F000F101943009F046C080910C018823D9F0A7 -:1013000080910D018823B9F09093E9008FEF9091BF -:10131000E800815095FD06C095E19A95F1F700002F -:101320008111F5CF8091E80085FF2CC040E050E0AE -:1013300060E170E017C081E08093E9008FEF909149 -:10134000E800815095FD06C095ED9A95F1F70000F3 -:101350008111F5CF8091E80085FF14C040E050E096 -:1013600068E070E0CE010E94530B8091E8008E7718 -:101370008093E80080E1FE01AEE5B1E001900D92BE -:101380008A95E1F7DF91CF9108958091F001811165 -:1013900009C00E94E80C0E94450D8091E200846023 -:1013A0008093E20008951092F001089508950C943E -:1013B0002C220E948D1B0E9432220E94EB0F0C9463 -:1013C000E40842E061EC81E00E94620C42E061ECE2 -:1013D00082E00E94620C42E061EC83E00E94620CB9 -:1013E00042E161EC84E00C94620C8091F301833063 -:1013F00009F455C030F4813071F0823009F48EC0A8 -:1014000008958A3009F47AC08B3009F460C08930BD -:1014100009F09CC020C08091F201813A09F096C089 -:101420008091E800877F8093E8008091F601909199 -:10143000F701892B21F460E18EE591E003C060E0C3 -:1014400080E090E070E00E949E0B8091E8008B7736 -:101450008093E80008958091F201813209F076C00E -:101460008091F6019091F701009719F0039709F028 -:101470006DC08091E800877F8093E8008091E8004C -:1014800082FD05C08091F1018111F8CF5FC080918C -:10149000F10080936E018091E8008B7753C08091BA -:1014A000F201813A09F052C08091F6019091F70162 -:1014B000892B09F04BC08091E800877F8093E8007A -:1014C0008091E80080FFFCCF80910C0136C08091B4 -:1014D000F2018132D9F58091F6019091F701892BC3 -:1014E000A9F58091E800877F8093E8000E94970C1F -:1014F0008091F40180930C010C9484148091F2018A -:10150000813221F58091E800877F8093E8000E9476 -:10151000970C8091F50180936F0108958091F201FD -:10152000813AA1F48091E800877F8093E800809160 -:10153000E80080FFFCCF80916F018093F1008091E3 -:10154000E8008E778093E8000C94970C089584B798 -:10155000877F84BF88E10FB6F89480936000109273 -:1015600060000FBE90E080E80FB6F89480936100B1 -:10157000909361000FBE0E943A100E94E80C0E94F6 -:10158000450D8091E20084608093E20078940E948F -:10159000CB0F0E943C1082E091E00E94E60F0E9477 -:1015A0001A228091F101853069F40E94541B8091C8 -:1015B000EF018823B1F30E947F1B882391F30E94DF -:1015C0003D0BEFCF0E944210ECCF292F3327233061 -:1015D0003105C9F064F42130310581F02230310544 -:1015E00009F043C08DE690E02CE333E042C02132A5 -:1015F0003105F1F02232310541F137C082E190E04E -:1016000029EA33E036C099278130910541F08230D4 -:10161000910541F0892B49F5E8E3F3E005C0E0E2EC -:10162000F3E002C0E8E0F3E0849190E09F0121C084 -:101630006430D8F4E62FF0E0EE0FFF1FEE5DFE4FB2 -:101640002081318189E090E014C0643070F470E052 -:10165000FB01EE0FFF1FE65EFE4F20813181FB0193 -:10166000EA5EFE4F808190E004C080E090E020E0E0 -:1016700030E0FA0131832083089580E189BD82E161 -:1016800089BD09B400FEFDCF8091D8008F7D809385 -:10169000D8008091E00082608093E0008091E000BB -:1016A00081FDFCCF0895CF92DF92EF92FF920F93CE -:1016B0001F93CF93DF93EC018B016A010E94B60C5C -:1016C000811133C0C114D10439F0F60180819181B8 -:1016D000081B190BC80FD91FE12CF12C011511059E -:1016E00019F18091E80085FD16C08091E8008E77A1 -:1016F0008093E800C114D10449F0F6018081918102 -:10170000E80EF91EF182E08285E00FC00E94B60C5F -:10171000882321F30AC089918093F10001501109B7 -:10172000FFEFEF1AFF0ADACF80E0DF91CF911F9130 -:101730000F91FF90EF90DF90CF9008952091F801E6 -:101740003091F9012617370748F06115710539F412 -:101750002091E8002E772093E80001C0B90140E015 -:1017600061157105A9F12091F101222309F443C00B -:10177000253009F442C02091E80023FD40C02091AB -:10178000E80022FD32C02091E80020FFE9CF40911F -:10179000F3002091F20030E0342BFC01CF01611501 -:1017A000710559F02830310540F481918093F100A2 -:1017B000615071092F5F3F4FF1CF41E02830310573 -:1017C00009F040E02091E8002E772093E800C8CF90 -:1017D0004111C9CF0AC08091F101882361F08530A1 -:1017E00061F08091E80083FD0AC08091E80082FFEB -:1017F000F2CF80E0089582E0089583E0089581E0CB -:1018000008952091F8013091F9012617370748F023 -:101810006115710539F42091E8002E772093E800D6 -:1018200001C0B901FC0120E06115710591F18091C1 -:10183000F101882309F440C0853009F43FC080914C -:10184000E80083FD3DC08091E80082FD2FC08091BB -:10185000E80080FFE9CF2091F3008091F20090E052 -:10186000922B6115710559F08830910540F424914F -:101870002093F1003196615071090196F2CF21E079 -:10188000089709F020E08091E8008E778093E800C7 -:10189000CBCF2111CCCF0AC08091F101882361F018 -:1018A000853061F08091E80083FD0AC08091E800F6 -:1018B00082FFF2CF80E0089582E0089583E00895EA -:1018C00081E00895982F973058F59093E900981784 -:1018D00039F07091EC002091ED005091F00003C0C0 -:1018E000242F762F50E021FF19C03091EB003E7F6E -:1018F0003093EB003091ED003D7F3093ED0030915F -:10190000EB0031603093EB007093EC002093ED001E -:101910005093F0002091EE0027FF07C09F5FD3CFC8 -:101920008F708093E90081E0089580E008958091B0 -:10193000F20187FF11C08091E80082FD05C080910F -:10194000F1018111F8CF11C08091E8008B770BC0B5 -:101950008091F101882349F08091E80080FFF8CF61 -:101960008091E8008E778093E80008952091E4004C -:101970003091E50095E64091EC00842F817040FFA6 -:1019800022C08091E80080FD1CC08091F101882375 -:1019900091F0853091F08091EB0085FD10C0409171 -:1019A000E4005091E5004217530729F39A01915042 -:1019B00011F784E0089582E0089583E0089581E0BE -:1019C000089580E008954091E80042FFDECF089539 -:1019D0000E94560D0E945E0DE0EEF0E08081816075 -:1019E0008083E8EDF0E080818F77808319BCA7EDDC -:1019F000B0E08C918E7F8C9380818F7E808310925B -:101A0000F00108950F931F93CF93DF930E94560D1B -:101A10000E945E0DC8EDD0E088818F778883888131 -:101A20008068888388818F7D888319BC1092F1013A -:101A30001092ED011092EF011092EE0100EE10E015 -:101A4000F80180818B7F808388818160888342E078 -:101A500060E080E00E94620CE1EEF0E080818E7F29 -:101A60008083E2EEF0E08081816080838081886005 -:101A70008083F80180818E7F808388818061888364 -:101A8000DF91CF911F910F910895E8EDF0E08081F3 -:101A90008F7E8083E7EDF0E080818160808384E049 -:101AA00082BF81E08093F0010C94020DE8EDF0E03C -:101AB00080818E7F80831092E20008951092DA0078 -:101AC0001092E10008951F920F920FB60F92112409 -:101AD0002F933F934F935F936F937F938F939F9336 -:101AE000AF93BF93EF93FF938091E10082FF0BC010 -:101AF0008091E20082FF07C08091E1008B7F80939C -:101B0000E1000E94CA0F8091DA0080FF1FC080911F -:101B1000D80080FF1BC08091DA008E7F8093DA00AE -:101B20008091D90080FF0DC080E189BD82E189BD2F -:101B300009B400FEFDCF81E08093F1010E94C50948 -:101B400005C019BC1092F1010E94D3098091E100F7 -:101B500080FF19C08091E20080FF15C08091E200F3 -:101B60008E7F8093E2008091E20080618093E200AA -:101B70008091D80080628093D80019BC85E0809362 -:101B8000F1010E94D7098091E10084FF30C080916B -:101B9000E20084FF2CC080E189BD82E189BD09B4E7 -:101BA00000FEFDCF8091D8008F7D8093D80080917A -:101BB000E1008F7E8093E1008091E2008F7E809330 -:101BC000E2008091E20081608093E2008091ED016B -:101BD000882311F084E007C08091E30087FD02C0F4 -:101BE00081E001C083E08093F1010E94D9098091D6 -:101BF000E10083FF29C08091E20083FF25C080912E -:101C0000E100877F8093E10082E08093F1011092F0 -:101C1000ED018091E1008E7F8093E1008091E200F0 -:101C20008E7F8093E2008091E20080618093E200E9 -:101C300042E060E080E00E94620C8091F0008860E9 -:101C40008093F0000E94D609FF91EF91BF91AF9170 -:101C50009F918F917F916F915F914F913F912F91C4 -:101C60000F900FBE0F901F9018951F920F920FB6F6 -:101C70000F9211242F933F934F935F936F937F9312 -:101C80008F939F93AF93BF93CF93DF93EF93FF9384 -:101C9000C091E900CF708091EC00D82FD17080FD09 -:101CA000D0E81092E9008091F000877F8093F000E7 -:101CB00078940E94790E1092E9008091F00088607B -:101CC0008093F000CD2BCF70C093E900FF91EF918E -:101CD000DF91CF91BF91AF919F918F917F916F9144 -:101CE0005F914F913F912F910F900FBE0F901F90DA -:101CF00018951F93CF93DF93CDB7DEB7AA970FB692 -:101D0000F894DEBF0FBECDBFE2EFF1E088E08E0FAA -:101D10009091F10091938E13FBCF0E94F509809171 -:101D2000E80083FF1FC18091F2019091F301492FD8 -:101D300050E04A30510508F015C1FA01EA5AFF4F48 -:101D40000C94B423803881F0823809F00BC1809163 -:101D5000F6018F708093E9008091EB0085FB882766 -:101D600080F91092E90006C08091EE019091EF0198 -:101D7000911182609091E800977F9093E8008093A2 -:101D8000F1001092F100C8C0282F2D7F09F0EAC0A1 -:101D9000882319F0823061F0E5C08091F401813030 -:101DA00009F0E0C0933009F080E08093EF012BC090 -:101DB0008091F401811127C08091F6018F7009F4A0 -:101DC000D1C08093E9002091EB0020FF1CC093302C -:101DD00021F48091EB00806214C09091EB0090613F -:101DE0009093EB0021E030E0A90102C0440F551FA1 -:101DF0008A95E2F74093EA001092EA008091EB00A6 -:101E000088608093EB001092E9008091E800877F62 -:101E100086C08111A7C01091F4011F778091E30063 -:101E20008078812B8093E3008091E800877F809306 -:101E3000E8000E94970C8091E80080FFFCCF809121 -:101E4000E30080688093E300111102C082E001C0CA -:101E500083E08093F10186C08058823008F082C010 -:101E60008091F4019091F5018C3D53E0950779F54F -:101E700083E08A838AE289834FB7F894DE01139660 -:101E800020E03EE051E2E32FF0E050935700E49170 -:101E900020FF03C0E295EF703F5FEF708E2F90E060 -:101EA000EA3010F0C79601C0C0968D939D932F5FC6 -:101EB000243149F74FBF8091E800877F8093E80085 -:101EC0006AE270E0CE0101960E949E0B14C0AE0142 -:101ED0004F5F5F4F6091F6010E94E50ABC010097D9 -:101EE00009F440C09091E800977F9093E8008981C1 -:101EF0009A810E94010C8091E8008B778093E80022 -:101F000031C0803879F58091E800877F8093E800C0 -:101F10008091ED018093F1008091E8008E778093AD -:101F2000E8000E94970C1EC081111CC09091F40122 -:101F30009230C0F48091E800877F8093E80090930E -:101F4000ED010E94970C8091ED01811106C08091F6 -:101F5000E30087FD02C081E001C084E08093F101CD -:101F60000E94E1098091E80083FF0AC08091E800A7 -:101F7000877F8093E8008091EB0080628093EB0084 -:101F8000AA960FB6F894DEBF0FBECDBFDF91CF91FA -:101F90001F9108950895CF938091F1018823A1F0B6 -:101FA000C091E900CF709091EC00892F817090FD75 -:101FB00080E8C82B1092E9008091E80083FD0E9420 -:101FC000790ECF70C093E900CF9108959093750179 -:101FD000809374010895E0917401F0917501309738 -:101FE00021F00190F081E02D099480E00895E091C6 -:101FF0007401F0917501309721F00280F381E02D9A -:1020000009940895E0917401F0917501309721F0E1 -:102010000480F581E02D099408952091720130919A -:1020200073018217930771F090937301809372018B -:10203000E0917401F0917501309721F00680F781ED -:10204000E02D09940895209170013091710182175B -:10205000930771F09093710180937001E091740186 -:10206000F0917501309721F00084F185E02D0994FD -:10207000089508950C9439100E94931B0E94340314 -:102080000C94551C9F92AF92BF92CF92DF92EF9229 -:10209000FF920F931F93CF93DF9300D000D000D017 -:1020A000CDB7DEB70E944C030DE010E0AA24A39444 -:1020B000B12C902E802F0E943A04980129583E4F4F -:1020C0006901F901F080F826A1F40150110988F79F -:1020D0008FEF89838A831B820E949C1B8160782FEB -:1020E0009D838C8349815A816B818D810E94D91097 -:1020F0002FC09091DA0191FF04C08E830E944004AA -:102100008E8125E030E0A501022E01C0440F0A9423 -:10211000EAF7E42E4F21C1F029839A828E2191E0C3 -:1021200009F490E09B830E949C1B8160782F9D8323 -:102130008C8349815A816B818D810E94D910F6016F -:102140008081E826E08204C021503109E0F6BDCF4D -:102150000E943C1F109176010E94EB0F1817B9F0F6 -:102160000E94EB0F8093760126960FB6F894DEBF9F -:102170000FBECDBFDF91CF911F910F91FF90EF90D8 -:10218000DF90CF90BF90AF909F900C94E40826967C -:102190000FB6F894DEBF0FBECDBFDF91CF911F9178 -:1021A0000F91FF90EF90DF90CF90BF90AF909F90F6 -:1021B0000895CF93DF93CDB7DEB72B970FB6F89482 -:1021C000DEBF0FBECDBF4F83588769877A878B8765 -:1021D000DE01119686E0FD0111928A95E9F785E00E -:1021E000FE01379601900D928A95E1F749815A8157 -:1021F0006B817C818D819E810E9422172B960FB668 -:10220000F894DEBF0FBECDBFDF91CF910895CF937D -:10221000882309F4C2C0C82F823859F40E94EB0FFA -:1022200081FDBBC089E30E94FC190E94C91A89E3A1 -:102230000CC0833879F40E94EB0F80FDAEC083E5BB -:102240000E94FC190E94C91A83E50E943E1ACF9190 -:102250000C94C91A843859F40E94EB0F82FD9DC07A -:1022600087E40E94FC190E94C91A87E4EECF8CEF24 -:102270008C0F813A48F48C2F0E947F2181118DC0F0 -:102280008C2F0E94FC19E3CF80E28C0F883048F439 -:10229000C77081E001C0880FCA95EAF70E94821AD0 -:1022A000D6CF8BE58C0F833078F4C53A29F0C63A47 -:1022B00031F083E890E005C081E890E002C082E858 -:1022C00090E0CF910C940D1088E58C0F833108F0CD -:1022D00064C0C83A39F1C93A41F1CA3A49F1CB3A36 -:1022E00051F1CC3A59F1CD3A61F1C03B69F1CE3AA6 -:1022F00071F1CF3A79F1C13B81F1C23B89F1C33B26 -:1023000091F1C43B99F1C53BA1F1C63BA9F1C73B93 -:10231000B1F1C83BB9F1C93BC1F1CA3BC9F180E099 -:1023200090E038C082EE90E035C089EE90E032C097 -:102330008AEE90E02FC085EB90E02CC086EB90E019 -:1023400029C087EB90E026C08CEC90E023C08DEC98 -:1023500090E020C083E891E01DC08AE891E01AC0B7 -:1023600082E991E017C084E991E014C081E292E033 -:1023700011C083E292E00EC084E292E00BC085E2DD -:1023800092E008C086E292E005C087E292E002C0D7 -:102390008AE292E0CF910C942310CF910895882384 -:1023A00009F44BC0823859F40E94EB0F81FF45C0FD -:1023B00089E30E94FC190E94C91A89E30CC0833882 -:1023C00071F40E94EB0F80FF38C083E50E94FC1976 -:1023D0000E94C91A83E50E943E1A0C94C91A8438D7 -:1023E00059F40E94EB0F82FF28C087E40E94FC1979 -:1023F0000E94C91A87E4EFCF9CEF980F913A58F3E7 -:1024000090E2980F983050F4877091E001C0990FD6 -:102410008A95EAF7892F0E94881ADFCF9BE5980FEB -:10242000933020F480E090E00C940D10885A8331B2 -:1024300020F480E090E00C9423100895882321F08C -:102440000E94821A0C94C91A0895882321F00E94D0 -:10245000881A0C94C91A08957F928F929F92AF9216 -:10246000BF92CF92DF92EF92FF920F931F93CF9381 -:10247000DF931F92CDB7DEB77C01C62E772EFC010D -:10248000058102950F70128111110E949F1A0E94FE -:10249000F519882379F0112369F080E28C0D8830DA -:1024A00048F082E00E94DE190E94F51991E0D82ED2 -:1024B000D92601C0D12CE72DE295EF70F0E0E05A6B -:1024C000FF4F0C94B423872D807F072D0F70882336 -:1024D00011F00295007F112389F0002309F490C1C7 -:1024E00080E28C0D883020F4802F0E94821A03C075 -:1024F000802F0E94921A0E94C91A82C18C2D0E94BC -:10250000CF11002309F495C180E28C0D883020F4AE -:10251000802F0E94881A03C0802F0E94981A0E9460 -:10252000C91A87C1972D907F872D8F70903211F037 -:102530008295807FCC2021F0F1E0CF16B1F01EC053 -:10254000112349F0002309F414C1013009F011C12D -:102550000E94B21A6EC1002319F0013009F469C15A -:1025600089830E94B51A89810AC1112321F00230A2 -:1025700008F05FC1FEC001115CC101C1112321F04F -:10258000002309F4F6C03CC1002309F4F8C03EC1A1 -:10259000872D86958695837090E0009719F00197B6 -:1025A00061F047C1112321F08C2D972D937002C04B -:1025B00080E090E00E940D103CC1112321F08C2D91 -:1025C000972D937002C080E090E00E94231031C1EB -:1025D0008C2D112319F00E94441E02C00E94AC1ED3 -:1025E0000E94311F26C1872D837009F052C011113E -:1025F00020C18C2D829586958770880F880F9C2D21 -:102600009F70892E912CA12CB12C082E04C0880C0F -:10261000991CAA1CBB1C0A94D2F7C4FE14C00FE07C -:1026200010E020E030E0B901A80104C0440F551FBC -:10263000661F771F8A95D2F7CB01BA016095709516 -:102640008095909503C060E070E0CB01272D269522 -:102650002695237030E02230310569F023303105B2 -:1026600089F0682979298A299B292130310571F05F -:102670000E946A18DEC0682979298A299B290E944C -:102680008618D7C00E946A18C501B4010E944E186E -:10269000D0C0112319F0872D817001C08695882341 -:1026A00009F4C7C08C2D829586958770880F880F96 -:1026B0009C2D9F70892E912CA12CB12C082E04C02A -:1026C000880C991CAA1CBB1C0A94D2F7C4FE14C027 -:1026D0000FE010E020E030E0B901A80104C0440F91 -:1026E000551F661F771F8A95D2F7CB01BA016095F7 -:1026F00070958095909503C060E070E0CB01272D28 -:10270000269526952370422F50E04230510569F0FE -:102710004330510589F0682979298A299B2941305C -:10272000510571F00E94441984C0682979298A29C9 -:102730009B290E9460197DC00E944419C501B40103 -:102740000E94281976C08C2D90E0FC01E05EF10912 -:10275000E531F10508F050C0E059FF4F0C94B42367 -:102760000C2D0F70872D8F71112331F00E94C1182D -:10277000802F0E941E125DC00E94E218802F0E94CE -:10278000251257C0112339F0011153C0872D8F71C5 -:102790000E9407194EC0023008F04BC0F7CF11233A -:1027A00039F0872D8F710E94C11843C01123C9F3DE -:1027B000872D8F710E94E2183CC0112329F0872DCC -:1027C0008F710E94AC1835C00E94A21832C011232C -:1027D00051F0172D1F71812F0E94C11863E0812FC6 -:1027E0000E94D51926C081E00E94DE19023008F14E -:1027F00082E00E94DE191DC0112331F0002389F20E -:102800008C2D0E94071115C0002391F28C2D0E947F -:10281000CF110FC0472D4F706C2DC7010E941605B8 -:102820000E94C61706C0472D4F706C2DC7010E942D -:10283000F305DD20F9F00E94D11980FD1BC0F701DE -:1028400012820E94CB190E94C118C7010E9449142C -:102850000E94CB190F90DF91CF911F910F91FF90A4 -:10286000EF90DF90CF90BF90AF909F908F907F9030 -:102870000C94E2180F90DF91CF911F910F91FF9070 -:10288000EF90DF90CF90BF90AF909F908F907F9010 -:1028900008950F931F93CF93DF93EC018881998163 -:1028A0002B813C81232BB9F09F3F11F48F3F99F08E -:1028B000CE010E944B05882371F0688179818A815D -:1028C0000E94C7198C010E947C190E944318B8010C -:1028D000CE010E942C12DF91CF911F910F9108958C -:1028E0000E949F1A0E94AF1A0E94741A0E94C91A6D -:1028F0000E94E21F0E94311F80E090E00E940D10B4 -:1029000080E090E00C9423100E948F1A0C947014B5 -:102910000E94BC19292F22952F7030E02C303105F0 -:102920004CF42A3031056CF4225031092230310543 -:10293000A8F407C02C30310569F02F30310551F073 -:102940000DC0803F69F018F4803E40F409C0843F18 -:1029500029F406C093FB882780F9089580E0089544 -:1029600081E00895CF93DF9300D000D01F92CDB7C0 -:10297000DEB70F900F900F900F900F90DF91CF91D7 -:102980000895CF93DF9300D000D000D0CDB7DEB74D -:1029900026960FB6F894DEBF0FBECDBFDF91CF9164 -:1029A00008951F93CF93DF93C091850116E0809126 -:1029B0008601C81799F0D0E01C9FF0011D9FF00D13 -:1029C0001124E957FE4F40815181628173818481D6 -:1029D00095810E94C1142196C770E9CFDF91CF91F4 -:1029E0001F9108954091B7015091B8016091B901CC -:1029F0007091BA018091BB019091BC010C94C114FB -:102A00008091BC0182958F7009F054C08091B9010A -:102A1000882309F44FC080918501A09186016091BF -:102A2000B7017091B8014091BA015091BB01B6E075 -:102A30008A1709F43FC090E041155105C1F17F3F6D -:102A400011F46F3FA1F1B89FF001B99FF00D11246F -:102A5000E957FE4F218172132AC02081621327C0DB -:102A60002281211124C0238134812417350710F4D9 -:102A700021503109241B350B283C3105C0F420912D -:102A8000BC012F7020612093BC0126E0289FF0013B -:102A9000299FF00D1124E457FE4F80818F708061D3 -:102AA000808387EB91E00E9449140C94D114019625 -:102AB0008770BECF0895CF92DF92EF92FF920F936F -:102AC0001F93CF93DF93CDB7DEB762970FB6F8941D -:102AD000DEBF0FBECDBF8C0185E0F801DE011D9683 -:102AE00001900D928A95E1F7D8014C9111965C9175 -:102AF000119712966C9112971396CD90DC901497C3 -:102B00003091B7017091B8018091BA019091BB01E9 -:102B1000009709F46BC17F3F19F43F3F09F466C188 -:102B2000E090B901EE2009F4C0C02091BC01C816A4 -:102B3000D90628F0F601E81BF90BCF0104C08095F7 -:102B400090958C0D9D1DFF24F394883C910578F0A1 -:102B5000F12C207F09F0C6C07C2DD98AC88A8989CA -:102B60000E94B21487EB91E00E944914B1C0822FF9 -:102B7000807F09F046C0751314C0341312C0611170 -:102B800010C02F7020612093BC010E94F21487EBCB -:102B900091E00E9449148091BC01D80115968C9354 -:102BA0002EC0CD2819F15F3F11F44F3FF9F0F62EFA -:102BB00061111CC0809185012091860136E0821749 -:102BC00009F45AC090E0389FF001399FF00D1124AC -:102BD000E957FE4F7181571306C07081471303C038 -:102BE0007281711103C001968770E9CFF62E6623BA -:102BF00009F418C18091BC0181608093BC01F12C63 -:102C000011C1751308C0341306C0611104C080914E -:102C1000BC01D801C3C04D875E878D859E856A8BB8 -:102C20000E9488146A898823E1F16623D1F12091FA -:102C3000BC01822F82958F7090E0029774F0809192 -:102C4000B7019091B80198878F831986DB86CA8671 -:102C50002C87CE0107960E94491486E0F801A7EB65 -:102C6000B1E001900D928A95E1F70E9400150E9453 -:102C7000F214FF24F394D6C04D875E878D859E8520 -:102C80000E94BC19292F22952F7030E02230310587 -:102C90000CF0BCC09F7009F0B6C0805E883008F4AC -:102CA000C1C0C8010E944914E4CFC816D90608F46F -:102CB00053C0F601E81BF90BCF01883C910508F4DD -:102CC00050C0F12C7C2DD98AC88A89890E94B214FF -:102CD000E7EBF1E086E0DF011D928A95E9F70E94BB -:102CE000F214A0C0751314C0341312C0611110C0C7 -:102CF0008091BC01F8018583C8010E94491486E0D7 -:102D0000E7EBF1E0DF011D928A95E9F7FE2C8AC01E -:102D10004D875E878D859E856A8B0E9488146A899F -:102D2000882309F4BECF662309F4BBCF2091BC01F0 -:102D3000822F82958F7090E002970CF48ECF809155 -:102D4000B7019091B8019A8389831B82DD82CC827E -:102D50002E83CE0101967FCF809590958C0D9D1D81 -:102D6000ACCFF62E662309F49CCF75132EC0341316 -:102D70002CC02091BC0120FD1FC0822F82958F7036 -:102D8000D9F0D80115962C9315978F3049F08F5FA5 -:102D9000982F9295907F822F8F70892B15968C9308 -:102DA000C8010E94491486E0F801A7EBB1E0019048 -:102DB0000D928A95E1F793CF86E0F801A7EBB1E099 -:102DC00001900D928A95E1F72DC04D875E878D8524 -:102DD0009E850E948814811140CF8091BC01816042 -:102DE0008093BC01C8010E9449141CC0662309F4E9 -:102DF00058CF4D875E878D859E850E9488148823D5 -:102E000009F44FCF2ACF811148CF0CC024303105AF -:102E10000CF047CF9F7009F440CFF8019581907F67 -:102E200009F03BCF8F2D62960FB6F894DEBF0FBE30 -:102E3000CDBFDF91CF911F910F91FF90EF90DF9069 -:102E4000CF9008951F93CF93DF93CDB7DEB72C9724 -:102E50000FB6F894DEBF0FBECDBF4F83588769878A -:102E60007A878B879C87CE0107960E945B15882303 -:102E700069F08F8198852A853B85232BF1F19F3F4F -:102E800009F063C08F3F09F060C037C086E0FE01E3 -:102E90003796DE01119601900D928A95E1F76F81C8 -:102EA0007885EA85FB85309741F17F3F11F46F3FCC -:102EB00021F12091860130E0C901019687709927A0 -:102EC0004091850150E08417950709F447C0698354 -:102ED0007A83FD83EC8396E0929FD001939FB00D9F -:102EE0001124A957BE4FFE01319601900D929A957B -:102EF000E1F7809386010E94D11416E0809185014C -:102F0000909186018917C1F1189FC001112489573A -:102F10009E4F0E945B15882379F1E09185011E9FE9 -:102F2000F0011124E957FE4F408151816281738184 -:102F3000848195810E94C1148091850190E0019661 -:102F40008770992780938501D9CF4F8158856985EE -:102F50007A858B859C850E94C114CFCF0E948414F2 -:102F60001092860110928501E7EBF1E086E0DF0127 -:102F70001D928A95E9F7C1CF2C960FB6F894DEBF63 -:102F80000FBECDBFDF91CF911F910895EF92FF92B9 -:102F90000F931F93CF93DF938C01009709F46CC0BC -:102FA000F12CEE24E394E8012196F8018491843712 -:102FB00040F4843008F051C0813081F0823019F142 -:102FC0005BC0853709F444C0A8F19CE7980F90379F -:102FD00008F052C08F770E94CF1141C00E5F1F4F83 -:102FE000FE01C49180E28C0F883048F4C7708E2DAA -:102FF00001C0880FCA95EAF70E94A21A14C08C2F4C -:103000000E9407112DC00E5F1F4FFE01C49180E288 -:103010008C0F883058F4C7708E2D01C0880FCA9568 -:10302000EAF70E94A81A0E94C91A1AC08C2F0E949F -:10303000CF1116C00E5F1F4FFE01C491CC2381F04B -:103040008FE99FE00197F1F700C00000C150F6CF73 -:103050000E5F1F4FFE01F49003C00E9407118E0106 -:103060008F2D882309F49FCFEFE9FFE03197F1F727 -:1030700000C000008150F5CFDF91CF911F910F91DB -:10308000FF90EF90089508956093C1017093C2017D -:103090008093C3019093C4010C9470140F931F93F9 -:1030A0000091C1011091C2012091C3013091C4016E -:1030B000DC01CB01802B912BA22BB32B8093C10180 -:1030C0009093C201A093C301B093C4011F910F91CB -:1030D0000C9470140F931F930091C1011091C201C1 -:1030E0002091C3013091C401DC01CB0180239123E5 -:1030F000A223B3238093C1019093C201A093C30183 -:10310000B093C4011F910F910C9470140F931F93EF -:103110000091C1011091C2012091C3013091C401FD -:10312000DC01CB0180279127A227B3278093C1011F -:103130009093C201A093C301B093C4011F910F915A -:103140000C9470141092BD011092BE011092BF0138 -:103150001092C0010C94701441E050E060E070E007 -:1031600004C0440F551F661F771F8A95D2F74093FE -:10317000BD015093BE016093BF017093C0010C94D8 -:10318000701441E050E060E070E004C0440F551F4F -:10319000661F771F8A95D2F78091BD019091BE017D -:1031A000A091BF01B091C001482B592B6A2B7B2BFA -:1031B0004093BD015093BE016093BF017093C00165 -:1031C0000C94701441E050E060E070E004C0440FE3 -:1031D000551F661F771F8A95D2F7409550956095C9 -:1031E00070958091BD019091BE01A091BF01B091F9 -:1031F000C001482359236A237B234093BD01509388 -:10320000BE016093BF017093C0010C94701441E043 -:1032100050E060E070E004C0440F551F661F771F48 -:103220008A95D2F78091BD019091BE01A091BF0116 -:10323000B091C001482759276A277B274093BD01D9 -:103240005093BE016093BF017093C0010C94701441 -:103250000F931F930091BD011091BE012091BF01FA -:103260003091C001DC01CB01802B912BA22BB32B21 -:103270008093BD019093BE01A093BF01B093C001A4 -:103280001F910F910C9470140F931F930091BD0127 -:103290001091BE012091BF013091C001DC01CB0132 -:1032A00080239123A223B3238093BD019093BE0179 -:1032B000A093BF01B093C0011F910F910C947014A3 -:1032C0000F931F930091BD011091BE012091BF018A -:1032D0003091C001DC01CB0180279127A227B327C1 -:1032E0008093BD019093BE01A093BF01B093C00134 -:1032F0001F910F910C9470140895CF92DF92EF926A -:10330000FF920F931F93CF93DF938C01C090C10165 -:10331000D090C201E090C301F090C4018091BD0142 -:103320009091BE01A091BF01B091C001C82AD92AD5 -:10333000EA2AFB2ACFE1D0E0D701C6010C2E04C057 -:10334000B695A795979587950A94D2F780FF06C002 -:10335000B8018C2F0E944908019721F4219760F74A -:1033600080E001C08C2FDF91CF911F910F91FF90D2 -:10337000EF90DF90CF900895CF93DF93EC010E9400 -:103380007D19BE010E944908DF91CF910895CB01BC -:103390000E94BC1908958091C501859585958595F4 -:1033A00008958091C5018770089598E0899F9001E4 -:1033B0001124262B2093C5010C94C1182091C5011E -:1033C000809582238093C501982F977069F430E02F -:1033D000482F552747FD50952417350729F0859527 -:1033E000859585950C94E21808959091C501977084 -:1033F00081E009F480E0089590910C01992321F077 -:1034000090910D01911109C020910E0130910F0191 -:10341000F90132969FEF40E01FC0982F9695969540 -:1034200096959F3050F5E0910E01F0910F01E90F54 -:10343000F11D877021E030E0A90102C0440F551F43 -:103440008A95E2F7CA019181892B818308959F3F74 -:1034500039F04F5F4E3041F051915813F8CF0DC005 -:103460005111F7CF942FF5CF9F3F39F0F901E90FB4 -:10347000F11D97FDFA9582830895089590910C01AE -:10348000992321F090910D01911109C020910E0115 -:1034900030910F01F9013296205F3F4F1FC0982FE6 -:1034A0009695969596959F30F0F4E0910E01F091E7 -:1034B0000F01E90FF11D877021E030E0A90102C082 -:1034C000440F551F8A95E2F7CA018095918189239F -:1034D000818308953196E217F30729F090819813BC -:1034E000F9CF1082F7CF089581E090E0E0910E01CE -:1034F000F0910F01E80FF91F1082019680319105BC -:10350000A9F708959091D901892B8093D901089545 -:1035100080959091D90189238093D90108951092C3 -:10352000D90108959091D801892B8093D8010895ED -:1035300080959091D80189238093D80108951092A5 -:10354000D80108959091D701892B8093D7010895D0 -:1035500080959091D70189238093D7010895109287 -:10356000D70108958093C60108951092C601089569 -:1035700080910E0190910F01FC0131969C01205F1A -:103580003F4F80E0919191118F5FE217F307D1F7E0 -:103590000895E0910E01F0910F018091D90180838F -:1035A000E0910E01F0910F0190818091D801892B5B -:1035B0008083E0910E01F0910F0190818091D701FD -:1035C000892B80838091C601882361F0E0910E01F0 -:1035D000F0910F019081892B80830E94B81A81118C -:1035E0001092C60180910E0190910F010C94F70F7B -:1035F00020E0009739F0AC01415051098423952314 -:103600002F5FF7CF822F0895CF92DF92EF92FF9234 -:103610006C01EE24FF24C114D104E104F10421F073 -:10362000C701B60120E101C020E0C72ED82EE92E47 -:10363000FF24C114D104E104F10419F0285FC7018B -:10364000B6016B017C0154E0F694E794D794C794DB -:103650005A95D1F7C114D104E104F10419F02C5F9B -:10366000C701B6016B017C0142E0F694E794D79460 -:10367000C7944A95D1F7C114D104E104F10419F0BB -:103680002E5FC701B601DC01CB01B695A7959795D2 -:103690008795892B8A2B8B2B09F02F5F822FFF9028 -:1036A000EF90DF90CF9008958091F101843021F167 -:1036B0001092DB0120E488E190E00FB6F894A89521 -:1036C000809360000FBE2093600080E00E94E408B9 -:1036D00083B7817F846083BF83B7816083BF789421 -:1036E000889583B78E7F83BF88E10FB6F894809367 -:1036F0006000109260000FBE0895089508950E9422 -:103700007D1B0E944C030E947E1B0E94410491E09D -:10371000811101C090E0892F08950E9484140E94B5 -:10372000EB0F0C94E40882E084BD93E095BD9AEF22 -:1037300097BD80936E0008952FB7F8948091DC01B7 -:103740009091DD01A091DE01B091DF012FBF0895BE -:10375000CF92DF92EF92FF920F931F932FB7F894BF -:103760004091DC015091DD016091DE017091DF013B -:103770002FBF6A017B01EE24FF248C0120E030E0A2 -:10378000C016D106E206F30610F4415051099A0121 -:10379000281B390BC9011F910F91FF90EF90DF900B -:1037A000CF9008951F920F920FB60F9211248F930E -:1037B0009F93AF93BF938091DC019091DD01A09125 -:1037C000DE01B091DF010196A11DB11D8093DC01E6 -:1037D0009093DD01A093DE01B093DF01BF91AF9123 -:1037E0009F918F910F900FBE0F901F9018950E9480 -:1037F000E80CF8942FEF87EA91E621508040904042 -:10380000E1F700C0000087E090EBDC018093FB0152 -:103810009093FC01A093FD01B093FE019CE088E130 -:103820000FB6F894A895809360000FBE9093600047 -:10383000FFCFEF92FF920F931F93CF93DF93D82F79 -:10384000CDE08C2F0E943A0405E010E0E82EF12C28 -:10385000C701002E02C0959587950A94E2F780FF74 -:1038600009C0602F7C2F80E00E94F405D81302C0AD -:1038700081E006C00150110958F7C15010F780E0EF -:10388000DF91CF911F910F91FF90EF900895CF930B -:10389000C82F8CE20E94191C882321F08C2FCF9115 -:1038A0000C94191C80E0CF910895CF930E949C1D29 -:1038B000811102C00E94821DC5E6C15049F00E94DC -:1038C0004C038FE39CE90197F1F700C00000F5CFAE -:1038D00089E20E94471C811113C18AE20E94471CA1 -:1038E00081110E94821D85E00E94471C81110E9467 -:1038F000F71B0E94A71D8093DA0187E00E94471CF6 -:103900008823A9F18BE10E94471C882351F0809104 -:10391000DA0181FB222720F991E0922790FB81F9BF -:103920000EC08EE00E94471C882361F08091DA016E -:1039300082FB222720F991E0922790FB82F9809365 -:10394000DA0115C080E10E94471C9091DA018823BA -:1039500041F093FB222720F981E0822780FB93F935 -:1039600004C0892F809580FB90F99093DA018091B3 -:10397000DA010E94AB1D0E94B91D8093FA0180EE0E -:103980000E94471C882341F08091FA01982F90955E -:1039900090FB80F98093FA0189E30E94471C8823F9 -:1039A00059F08091FA0181FB222720F991E09227BA -:1039B00090FB81F98093FA0182EE0E94471C8823D4 -:1039C00059F08091FA0182FB222720F991E0922799 -:1039D00090FB82F98093FA0186EE0E94471C8823AF -:1039E00059F08091FA0183FB222720F991E0922778 -:1039F00090FB83F98093FA0183EE0E94471C882391 -:103A000059F08091FA0184FB222720F991E0922756 -:103A100090FB84F98093FA0185E30E94471C882378 -:103A200059F08091FA0185FB222720F991E0922735 -:103A300090FB85F98093FA0181E30E94471C88235B -:103A400059F08091FA0186FB222720F991E0922714 -:103A500090FB86F98093FA0181E10E94471C88233C -:103A600059F08091FA0187FB222720F991E09227F3 -:103A700090FB87F98093FA018091FA010E94BD1DA5 -:103A80008091FA0187FB882780F980930D0187E2F6 -:103A90000E94471CC82F8EE10E94471C8111C26002 -:103AA0008FE10E94471C8111C46080E20E94471C84 -:103AB0008111C86081E20E94471C8111C06182E2CD -:103AC0000E94471C8111C06283E20E94471C811141 -:103AD000C06484E20E94471C882311F0C06802C0C1 -:103AE000CC2329F08C2F0E94B41D6C2F03C00E94A0 -:103AF000B01D682F70E080E090E0CF910C944418E6 -:103B0000CF9108956DEE7EEF80E090E00E94EE236D -:103B100060E082E090E00E94DC2360E083E090E0DF -:103B20000E94DC2360E084E090E00E94DC2360E0FF -:103B300085E090E00C94DC2380E090E00E94D623A6 -:103B400021E08D3E9E4F09F020E0822F089582E013 -:103B500090E00C94CE23682F82E090E00C94DC235C -:103B600083E090E00C94CE23682F83E090E00C94E7 -:103B7000DC2384E090E00C94CE23682F84E090E076 -:103B80000C94DC238091E20180FF0BC06091130153 -:103B900085E0689FB00111247595679575956795C7 -:103BA0002BC081FF09C06091130185E0689FB001BF -:103BB00011247595679520C082FF07C0609113019D -:103BC00085E0689FB001112417C09091E30199230B -:103BD000D1F060911201961788F72091130185E0CA -:103BE000289F90011124929FA001939F500D1124B2 -:103BF00070E0CA010E94A0236038710540F461158D -:103C0000710539F002C065E070E0862F08958FE7F6 -:103C1000089581E008958091E20180FF08C06091DD -:103C2000110170E0759567957595679521C081FFC5 -:103C300006C06091110170E07595679519C082FF0B -:103C400004C06091110170E010C09091E3019923CC -:103C5000C1F0609110019617A0F780911101899F22 -:103C6000C001112470E00E94A0236038710528F47F -:103C70006115710521F0862F08958FE7089581E081 -:103C8000089561E070E0F4CF803F21F40E94C21DEE -:103C9000819504C0813F29F40E94C21D8093E601F2 -:103CA0000895823F21F40E94C21D819504C0833F84 -:103CB00029F40E94C21D8093E5010895893F19F4FB -:103CC0000E940B1E05C08A3F31F40E940B1E819595 -:103CD0008093E70108958B3F21F40E940B1E81958C -:103CE00004C08C3F29F40E940B1E8093E8010895C4 -:103CF000843F21F48091E401816017C0853F21F465 -:103D00008091E401826011C0863F21F48091E4013A -:103D100084600BC0873F21F48091E401886005C076 -:103D2000883F31F48091E40180618093E40108953B -:103D30008D3F21F48091E20181600BC08E3F21F420 -:103D40008091E201826005C08F3F29F48091E201F9 -:103D500084608093E2010895803F39F48091E60108 -:103D600087FF6CC01092E60169C0813F29F4809101 -:103D7000E6011816BCF362C09091E501823F29F478 -:103D800097FF5CC01092E50159C0833F19F41916E2 -:103D9000CCF354C0893F41F48091E70118160CF030 -:103DA0004DC01092E7014AC08A3F29F48091E70193 -:103DB00087FF44C0F6CF8B3F39F48091E80187FF3D -:103DC0003DC01092E8013AC08C3F29F48091E8018F -:103DD0001816BCF333C0843F21F48091E4018E7F38 -:103DE00017C0853F21F48091E4018D7F11C0863F8B -:103DF00021F48091E4018B7F0BC0873F21F48091F7 -:103E0000E401877F05C0883F31F48091E4018F7E13 -:103E10008093E40113C08D3F21F48091E2018E7FF5 -:103E20000BC08E3F21F48091E2018D7F05C08F3F52 -:103E300029F48091E2018B7F8093E2018091E5017A -:103E400081110EC08091E60181110AC08091E701C5 -:103E5000811106C08091E801811102C01092E30136 -:103E6000089584EE91E00E9402100E949C1B9093A2 -:103E7000E1018093E00108951F93CF93DF93809138 -:103E8000E0019091E1010E94A81BAC019091E30137 -:103E9000992321F02091140130E006C020911501F2 -:103EA0008AE0289F900111244217530708F486C026 -:103EB0008091E501C091E601D091E7011091E80100 -:103EC000811107C0C11176C0D11174C0111172C027 -:103ED00075C09F3F19F09F5F9093E301181624F47B -:103EE0000E94C21D8093E5018091E50187FF05C016 -:103EF0000E94C21D81958093E5011C1624F40E9446 -:103F0000C21D8093E6018091E60187FF05C00E94F3 -:103F1000C21D81958093E6016091E501662339F128 -:103F2000C091E601CC2319F1772767FD7095872FA3 -:103F3000972F0E94B12223E333E343E35FE30E9420 -:103F400015230E947E226093E5016C2F772767FD81 -:103F50007095872F972F0E94B12223E333E343E329 -:103F60005FE30E9415230E947E226093E6011D16E6 -:103F700024F40E940B1E8093E7018091E70187FFE4 -:103F800005C00E940B1E81958093E701111624F451 -:103F90000E940B1E8093E8018091E80187FF05C015 -:103FA0000E940B1E81958093E801DF91CF911F91B4 -:103FB0000C94311F9F3F09F08ECF96CFDF91CF91A8 -:103FC0001F910895E4EEF1E085E0DF011D928A95EE -:103FD000E9F71092E3011092E2010895833081F134 -:103FE00028F4813059F08230D1F00895853009F4F9 -:103FF00049C0B8F1863009F456C008958091150182 -:10400000262F30E0280F311D2F3F310524F4680F93 -:104010006093150108958FEF8093150108958091A5 -:104020001401262F30E0280F311D2F3F310524F4D5 -:10403000680F6093140108958FEF80931401089521 -:1040400080911301262F30E0280F311D2F3F3105BD -:1040500024F4680F6093130108958FEF8093130188 -:10406000089580911201262F30E0280F311D2F3F37 -:10407000310524F4680F6093120108958FEF809347 -:104080001201089580911101262F30E0280F311D73 -:104090002F3F310524F4680F6093110108958FEFCD -:1040A00080931101089580911001262F30E0280F90 -:1040B000311D2F3F310524F4680F609310010895DE -:1040C0008FEF809310010895833011F128F481302F -:1040D00049F0823091F00895853081F120F18630E9 -:1040E000C1F1089580911501681720F4861B809313 -:1040F0001501089510921501089580911401681713 -:1041000020F4861B809314010895109214010895E1 -:1041100080911301681720F4861B80931301089582 -:1041200010921301089580911201681720F4861BE4 -:104130008093120108951092120108958091110147 -:10414000681720F4861B80931101089510921101C5 -:10415000089580911001681720F4861B8093100148 -:1041600008951092100108950F931F938D3109F453 -:104170006BC008F03FC08E3009F47FC0C0F48730B8 -:1041800009F469C068F4863009F0B1C08091DA01A1 -:10419000817F8E7F8093DA0181E08093EA01A8C05D -:1041A000883009F4A2C08B3009F49FC0A0C08631CA -:1041B00009F49BC078F4803109F472C0813109F0B0 -:1041C00096C00E94841490910D0181E0892780930C -:1041D0000D018BC0893109F488C08B3109F087C08B -:1041E0008091DA0181FB222720F991E0922790FB50 -:1041F00081F94CC0853309F470C048F4873209F462 -:104200006CC008F459C0893209F467C070C08334A7 -:1042100038F48A3308F04EC0883309F466C067C0AA -:10422000833409F45AC0883409F061C00E948414B0 -:104230000FEF13ED20E3015010402040E1F700C0E4 -:1042400000000E94F71B51C00E9438220E94EB0F11 -:104250000E94E4084AC09091DA01892F809581700C -:1042600080FB90F929F0966098609093DA0140C045 -:10427000997F977F9093DA0138C08091DA0182FBB1 -:10428000222720F991E0922790FB82F98093DA01AE -:10429000992359F18091DA0181608093DA0125C078 -:1042A0008091DA0183FB222720F991E0922790FB8D -:1042B00083F9ECCF895301C08D5141E050E060E0BB -:1042C00070E08A019B0104C0000F111F221F331FE1 -:1042D0008A95D2F7C901B80104C061E070E080E0BE -:1042E00090E00E9444180E94841481E001C080E0A4 -:1042F0001F910F91089580E0089580E00895CF9375 -:10430000C82F8091EA01813079F018F08230E9F10C -:1043100087C0E0910E01F0910F018081813169F039 -:10432000823209F07FC009C0E0910E01F0910F01C7 -:104330008081813111F0823261F48C2F0E947B21C7 -:10434000811104C08C2F0E94B4201DC081E090E038 -:104350001AC08C2F0E947D21811114C0C43179F0C4 -:1043600048F4CB3079F0C03109F060C082E080932E -:10437000EA0108C0C93219F0C83321F057C01092C1 -:10438000EA0154C081E0817053C0C93289F118F547 -:10439000C43171F1A8F4C73009F046C08AE08093B7 -:1043A000150194E19093140193E09093130180938D -:1043B000120188E08093110188E28093100134C0DB -:1043C000CE51C63088F5EC2FF0E0E65DFE4F8081DF -:1043D0008093E90129C0CE34E9F020F4CB3421F5F3 -:1043E0006AE013C0C13579F0C235F1F461E00DC067 -:1043F0008091E901882319F01092E90115C081E04C -:104400008093EA0115C061E006C08091E9010E9435 -:10441000EE1F0AC06AE08091E9010E94642004C096 -:104420001092EA0180E004C081E002C080E0ABCFDE -:10443000CF910895E1E8F0E08081886080838081F9 -:10444000816080838FB7F89493E09093890090ED1A -:10445000909388008FBF0895EFE6F0E0808182603E -:1044600080830895EFE6F0E080818D7F808308955A -:10447000EFE6F0E0908182E08927808308951F9223 -:104480000F920FB60F9211242F933F934F935F9388 -:104490006F937F938F939F93AF93BF93EF93FF930C -:1044A0008091EB019091EC0101969093EC01809347 -:1044B000EB01811103C082E00E94E408E091EC016D -:1044C000E695E695F0E0EA54FB4FE4918091EB012C -:1044D0008E1303C080E00E94E408FF91EF91BF912A -:1044E000AF919F918F917F916F915F914F913F918C -:1044F0002F910F900FBE0F901F90189504D06894C5 -:10450000B1118DC0089570D088F09F5790F0B92FE9 -:104510009927B751A0F0D1F0660F771F881F991F18 -:104520001AF0BA95C9F712C0B13081F077D0B1E076 -:10453000089574C0672F782F8827B85F39F0B93F86 -:10454000CCF3869577956795B395D9F73EF490951A -:104550008095709561957F4F8F4F9F4F0895E89498 -:1045600009C097FB3EF490958095709561957F4FBB -:104570008F4F9F4F9923A9F0F92F96E9BB27939569 -:10458000F695879577956795B795F111F8CFFAF479 -:10459000BB0F11F460FF1BC06F5F7F4F8F4F9F4FAA -:1045A00016C0882311F096E911C0772321F09EE808 -:1045B000872F762F05C0662371F096E8862F70E06E -:1045C00060E02AF09A95660F771F881FDAF7880F48 -:1045D0009695879597F9089557FD9058440F551F64 -:1045E00059F05F3F71F04795880F97FB991F61F075 -:1045F0009F3F79F087950895121613061406551FEC -:10460000F2CF4695F1DF08C0161617061806991F57 -:10461000F1CF86957105610508940895E894BB274C -:1046200066277727CB0197F908950BD078C069D01A -:1046300028F06ED018F0952309F05AC05FC01124FD -:10464000EECFCADFA0F3959FD1F3950F50E0551F31 -:10465000629FF001729FBB27F00DB11D639FAA27D7 -:10466000F00DB11DAA1F649F6627B00DA11D661F26 -:10467000829F2227B00DA11D621F739FB00DA11D47 -:10468000621F839FA00D611D221F749F3327A00D01 -:10469000611D231F849F600D211D822F762F6A2F9D -:1046A00011249F5750408AF0E1F088234AF0EE0F22 -:1046B000FF1FBB1F661F771F881F91505040A9F72F -:1046C0009E3F510570F014C0AACF5F3FECF3983EB7 -:1046D000DCF3869577956795B795F795E7959F5F96 -:1046E000C1F7FE2B880F911D9695879597F9089530 -:1046F00097F99F6780E870E060E008959FEF80EC95 -:10470000089500240A941616170618060906089537 -:1047100000240A9412161306140605060895092E9D -:104720000394000C11F4882352F0BB0F40F4BF2B0C -:1047300011F460FF04C06F5F7F4F8F4F9F4F08954C -:1047400097FB072E16F4009407D077FD09D00E943E -:10475000BA2307FC05D03EF4909581959F4F0895AC -:10476000709561957F4F0895EE0FFF1F0590F491AE -:10477000E02D0994AA1BBB1B51E107C0AA1FBB1F58 -:10478000A617B70710F0A61BB70B881F991F5A95DD -:10479000A9F780959095BC01CD010895F999FECFB8 -:1047A00092BD81BDF89A992780B50895A8E1B0E03F -:1047B00042E050E00C94F623262FF999FECF92BDEB -:1047C00081BDF89A019700B4021639F01FBA20BDD6 -:1047D0000FB6F894FA9AF99A0FBE08950196272F0A -:1047E0000E94DD230C94DC23DC01CB01FC01F99950 -:1047F000FECF06C0F2BDE1BDF89A319600B40D922D -:0C48000041505040B8F70895F894FFCFE5 -:10480C000220E608740951091D09E9080101C701D4 -:10481C0028080A03140A3F4D363977042A04F40396 -:10482C00BB034E03670380039903010203040506CF -:04483C000708090060 -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/jack/compiled.hex b/keyboards/ergodox_ez/keymaps/jack/compiled.hex deleted file mode 100644 index b5f54dd92..000000000 --- a/keyboards/ergodox_ez/keymaps/jack/compiled.hex +++ /dev/null @@ -1,1158 +0,0 @@ -:100000000C947A020C94BE020C94BE020C94BE02B4 -:100010000C94BE020C94BE020C94BE020C94BE0260 -:100020000C94BE020C94BE020C94620D0C94340E1F -:100030000C94BE020C94BE020C94BE020C94BE0240 -:100040000C94BE020C943E220C94BE020C94BE0290 -:100050000C94BE020C94D11B0C94BE020C94BE02F4 -:100060000C94BE020C94BE020C94BE020C94BE0210 -:100070000C94BE020C94BE020C94BE020C94BE0200 -:100080000C94BE020C94BE020C94BE020C94BE02F0 -:100090000C94BE020C94BE020C94BE020C94BE02E0 -:1000A0000C94BE020C94BE020C94BE02A10EC30EB0 -:1000B000B10FC30EB10F080F2B0FB10F800F930FAD -:1000C0006212621291129112C712E71218141814D8 -:1000D000F2121814A213A2130914181418141214EB -:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300 -:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0 -:10010000C113CE13D513DC13E6130000F0A10000D9 -:100110002B002900E100000000001E001400040074 -:100120001D00E0004D001F001A0016001B00E20039 -:100130002C002000080007000600E3002C0021002E -:1001400015000900190002524A00220017000A0097 -:1001500005000000657400000000000000000000C1 -:10016000E300000000000000000000000000230089 -:100170001C000B00110000000000240018000D00FE -:10018000100001524B0025000C000E0036005000FC -:100190002C00260012000F00370051002C00270011 -:1001A00013003300380052004E0000002A003400D3 -:1001B00028004F000000010035000100010001008F -:1001C00000003A001E003A004000010001003B0020 -:1001D0001F003B004100010001003C0020003C00EA -:1001E0004200010001003D0021003D0043000100EC -:1001F00001003E0022003E0044000000010001001A -:1002000001000000010000000100010001000000E9 -:100210000100000001003F0023003F0045000000F6 -:100220000100400024002D000000010001004100F9 -:1002300025002E000000AB000100420026002F0028 -:100240000000AA0001004300270030000050A90070 -:10025000010044002A0031000100AE00000001004E -:100260003502010001000100000001001E023A00F9 -:1002700040000100010001001F023B00410001009D -:100280000100010020023C004200010001000100C9 -:1002900021023D00430001000100010022023E0056 -:1002A0004400000001000100010000000100000006 -:1002B0000100010001000000010000000100010038 -:1002C00023023F00450000000100010024022D022E -:1002D000000001000100010025022E020000AB0019 -:1002E0000100010026022F020000AA000100010007 -:1002F000270230020050A900010001002A0031024B -:100300000100AE00000016034500720067006F0098 -:1003100044006F007800200045005A0000001603DA -:100320004500720067006F0044006F0078002000F5 -:1003300045005A0000000403090409026D0004018D -:1003400000A0FA09040000010301010009211101C4 -:100350000001223F000705810308000A090401008B -:100360000103010200092111010001224D000705CE -:10037000820308000A0904020001030000000921A9 -:10038000110100012236000705830308000A090451 -:1003900003000103000000092111010001223900BE -:1003A000070584031000011201100100000008ED90 -:1003B000FE071301000102000105010906A1010564 -:1003C0000719E029E7150025019508750181020547 -:1003D000081901290595057501910295017503918B -:1003E0000105071900297715002501957875018108 -:1003F00002C005010980A101850216010026B7008F -:100400001A01002AB700751095018100C0050C097A -:1004100001A1018503160100269C021A01002A9CF5 -:1004200002751095018100C005010902A1010901B1 -:10043000A10005091901290515002501950575017A -:10044000810295017503810105010930093115818A -:10045000257F95027508810609381581257F95014C -:1004600075088106050C0A38021581257F950175EE -:10047000088106C0C005010906A101050719E02988 -:10048000E715002501950875018102950175088120 -:100490000105081901290595057501910295017558 -:1004A0000391010507190029FF150025FF95067521 -:1004B000088100C0000000000000000000000001F2 -:1004C0000204060A0F17202C3A4A5D71879DB3C7B4 -:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF -:1004E0003A2C20170F0A0604020100000000000049 -:1004F0000000000011241FBECFEFDAE0DEBFCDBF49 -:1005000004B603FE24C08091FB019091FC01A091F0 -:10051000FD01B091FE018730904BA740B04BB9F47C -:100520001092FB011092FC011092FD011092FE014D -:1005300014BE84B7877F84BF88E10FB6F894809398 -:100540006000109260000FBEE0E0FFE3099511E04B -:10055000A0E0B1E0EAE0F8E402C005900D92A43317 -:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0 -:10057000B107E1F70E94A60A0C9403240C94000032 -:100580001092B9008AE08093B800089594EA90939D -:10059000BC009091BC0097FFFCCF9091B900987F70 -:1005A000983021F0903111F081E008958093BB00E4 -:1005B00084E88093BC008091BC0087FFFCCF8091D1 -:1005C000B900887F883111F0803471F780E0089598 -:1005D00084E98093BC008091BC0084FDFCCF089529 -:1005E0008093BB0084E88093BC008091BC0087FFAF -:1005F000FCCF9091B900987F81E0983209F480E0B7 -:10060000089584E88093BC008091BC0087FFFCCFF4 -:100610008091BB00089580910101811115C080E493 -:100620000E94C6028093010181110CC082E10E94E8 -:10063000F00280930101811105C08FEF0E94F0024A -:10064000809301010E94E80284B1807F84B985B162 -:10065000807F85B98AB1837F8AB98BB1837F8BB95B -:100660003E98469808950E94C604809301010E9416 -:100670000B0380B38C7080BB81B3836F81BBA5E318 -:10068000B1E0E3E4F1E08EE08E0F11921D928E1343 -:10069000FCCF0C94B004BF92CF92DF92EF92FF9206 -:1006A0000F931F93CF93DF9380910101882379F0FB -:1006B000809134018F5F80933401811108C00E94C2 -:1006C000C60480930101811102C00E94580405E311 -:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407 -:1006E000E394F12CC730D10500F58091010181110F -:1006F00064C080E40E94C60280930101811112C08F -:1007000082E10E94F0028093010181110BC0C701B8 -:100710000C2E01C0880F0A94EAF780950E94F0021F -:10072000809301010E94E80248C0CA30A1F028F479 -:10073000C83059F0C93061F005C0CC3089F070F094 -:10074000CD3089F0209A289810C0219A29980DC0A0 -:10075000229A2A980AC0239A2B9807C0529A01C05D -:10076000539A5B9802C03E9A469890EA9A95F1F7A0 -:100770009FB1799902C082E001C080E091709D250F -:10078000982B7C9902C084E001C080E0892B7D9980 -:1007900002C038E001C030E0832B7E9902C020E126 -:1007A00001C020E0822B9FB19095991F9927991F36 -:1007B0009295990F907E892B0FC080910101811134 -:1007C00049C080E40E94C60280930101882379F128 -:1007D000B12C0E94E8028B2DF8019081981719F036 -:1007E0008083C09200010E940B0321960F5F1F4F70 -:1007F000CE30D10509F076CF80910001882361F1D8 -:10080000815080930001882339F08FE99FE00197A0 -:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F -:10082000CF01825F91919D938E13FCCF15C083E120 -:100830000E94F002809301018111CACF81E40E94DD -:10084000C602809301018111C3CF0E940103B82E1B -:10085000B094BFCF80E0C0CF0E94560481E0DF910A -:10086000CF911F910F91FF90EF90DF90CF90BF90AD -:100870000895E82FF0E0ED5BFE4F80810895089524 -:100880000F931F93CF93DF93C3E4D1E010E00C2FBD -:10089000025F899190E00E94F71A180F0C13F9CFAC -:1008A000812FDF91CF911F910F9108950C94260510 -:1008B00056985E9825982D9826982E9827982F98C8 -:1008C0008FEF90E0909389008093880090938B0045 -:1008D00080938A0090938D0080938C00259A2D9AA6 -:1008E0002FEF80E792E0215080409040E1F700C078 -:1008F0000000269A2E9A2FEF80E792E02150804048 -:100900009040E1F700C00000279A2F9A2FEF80E770 -:1009100092E0215080409040E1F700C0000025980F -:100920002D982FEF80E792E0215080409040E1F732 -:1009300000C0000026982E982FEF80E792E021500B -:1009400080409040E1F700C0000027982F9856980B -:100950005E9825982D9826982E9827982F98089578 -:1009600089EA8093800089E08093810024982C9804 -:100970003F988AB18F748AB96E98479A8BB1806B11 -:100980008BB9769A0E9458040C94250580E28093D6 -:1009900001018091510181110EC00E94C00281E0CD -:1009A000809351012FEF83ED90E3215080409040E0 -:1009B000E1F700C0000080E40E94C60280930101BC -:1009C00081112EC00E94F00280930101811128C084 -:1009D0000E94F00280930101811122C08FE30E94E6 -:1009E000F0028093010181111BC00E94E80280E4A3 -:1009F0000E94C60280930101811112C08CE00E9406 -:100A0000F0028093010181110BC00E94F0028093DB -:100A10000101811105C08FE30E94F0028093010162 -:100A20000E94E80280910101089561110BC0FC0150 -:100A30008281882321F085EE0E94061103C085EE95 -:100A40000E94CE1180E090E0089508956091BD016C -:100A50007091BE018091BF019091C0010E94031B63 -:100A600056985E9825982D9826982E9827982F9816 -:100A7000813019F0823021F00895259A2D9A089539 -:100A8000269A2E9A089581E0089581E008950C94A5 -:100A9000450508950F931F93CF93DF938C01FC01BD -:100AA000C081D181CE010E947C19BE010E94F30554 -:100AB000EC01B8010E944705882309F48DC0F801B4 -:100AC0008281882309F44AC080915D0181111FC091 -:100AD000C431F0E5DF0709F051C00E94490581E00B -:100AE00080935D010E949B1B90935C0180935B014E -:100AF0001092540110925601109255011092580113 -:100B00001092570110925A011092590165C08091BC -:100B10005B0190915C010E94A71B883C910570F4D9 -:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB -:100B3000D183C0838F5F809354014EC0C43880E559 -:100B4000D80721F0C538D04501F13AC0F8018281BB -:100B5000882341F01092520182E01EC0C438E0E5C3 -:100B6000DE0759F580915201811106C086E20E948C -:100B7000061186E20E94CE1182E01CC0C438F0E566 -:100B8000DF0741F3C538D045D9F4F80182818823C5 -:100B900031F01092530180E20E941D121DC080911D -:100BA0005301811106C087E20E94061187E20E946C -:100BB000CE1180E20E9424120FC0C538D04529F31F -:100BC00081E08093520180935301C801DF91CF915E -:100BD0001F910F910C94430580E0DF91CF911F91FD -:100BE0000F910895089596E0799FF001112494E5FE -:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F -:100C0000E25FFE4F859194910895880F991FFC0132 -:100C1000E657F040859194910895880F991FFC0143 -:100C2000E65FFE4F8591949108950F931F93CF93A4 -:100C3000DF93EC01811520E3920750F5C11580E2A6 -:100C4000D80708F0C3C0CB3BD10590F4C83AD10512 -:100C500008F06AC0C53AD10508F05BC0C430D105C0 -:100C600008F0D0C1219709F0CAC101E010E00AC222 -:100C7000CF3FD10511F008F0C5C1C03FD10508F044 -:100C8000A2C0CE01805E9109089708F4BBC1B7C12C -:100C9000C13090E5D90709F4A2C020F5C0318FE436 -:100CA000D80770F4C11590E4D90708F094C0C115B5 -:100CB00021E3D20708F0A3C1DD278E01106CE2C149 -:100CC000C115D04509F09BC10E9483148FEF94E3B6 -:100CD0002CE0815090402040E1F700C000000E94CD -:100CE000F61BD0C1C11597E5D90758F4C03121E5ED -:100CF000D20708F01CC1C43180E5D80708F475C0DC -:100D00007EC1CE0190578115904108F078C1DF7007 -:100D100073C1C53AD10509F477C1C63AD10509F0C6 -:100D200076C102E810E4AEC1C83AD10509F472C137 -:100D3000C93AD10509F471C1CA3AD10509F470C1A3 -:100D4000CB3AD10509F46FC1CC3AD10509F46EC193 -:100D5000CD3AD10509F46DC1C03BD10509F46CC190 -:100D6000CE3AD10509F46BC1CF3AD10509F46AC175 -:100D7000C13BD10509F469C1C23BD10509F468C181 -:100D8000C33BD10509F467C1C43BD10509F466C171 -:100D9000C53BD10509F465C1C63BD10509F464C161 -:100DA000C73BD10509F463C1C83BD10509F462C151 -:100DB000C93BD10509F461C1CA3BD10509F460C141 -:100DC00000E014E45FC18E0110655CC1CE019F702C -:100DD0000E940D0658C1DF708E01106A53C18091C8 -:100DE000DA0181608093DA014DC10E949B1D81115F -:100DF00002C00E94811D0E94B81D90E09093FB01EB -:100E00008093FA01C23080E5D80721F48091FA017D -:100E1000816086C0C43090E5D90721F48091FA0141 -:100E200082607EC0C63020E5D20721F48091FA01AD -:100E3000846076C0C83080E5D80719F48091FA0143 -:100E400027C0CA3090E5D90721F48091FA0180616A -:100E500067C0CC3020E5D20721F48091FA0180628E -:100E60005FC0CE3080E5D80721F48091FA0180641C -:100E700057C0C03190E5D90721F48091FA0180680C -:100E80004FC0C23120E5D20729F48091FA01846075 -:100E9000886046C0C33080E5D80721F48091FA010C -:100EA0008E7F3EC0C53090E5D90721F48091FA01CC -:100EB0008D7F36C0C73020E5D20721F48091FA013A -:100EC0008B7F2EC0C93080E5D80719F48091FA01D4 -:100ED00026C0CB3090E5D90721F48091FA018F7EAE -:100EE0001FC0CD3020E5D20721F48091FA018F7D1B -:100EF00017C0CF3080E5D80721F48091FA018F7BAD -:100F00000FC0C13190E5D90721F48091FA018F77A4 -:100F100007C0C331D04531F48091FA018B7F877FC0 -:100F20008093FA018091FA010E94BC1DABC08D2F05 -:100F300099278F70992781309105D9F49E012370EC -:100F4000332702C0880F991F2A95E2F79C688E010B -:100F500044E0000F111F4A95E1F700271370802B22 -:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA -:100F70002FC08230910531F4DC2FCC278E01016F18 -:100F8000106A80C08330910569F4CE01837099277F -:100F900001E010E002C0000F111F8A95E2F7C801BE -:100FA0009C680FC084309105B9F4CE0183709927F5 -:100FB00001E010E002C0000F111F8A95E2F7C8019E -:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029 -:100FD0008C010C2B1D2B56C08530910531F4DC2F74 -:100FE000CC278E01046F106A4DC0069709F04AC0E5 -:100FF000CF71DD27DC2FCC278E01106243C000E0CB -:1010000010E040C08E013EC001E810E43BC003E8A0 -:1010100010E438C002EE14E435C009EE14E432C026 -:101020000AEE14E42FC005EB14E42CC006EB14E424 -:1010300029C007EB14E426C00CEC14E423C00DEC2B -:1010400014E420C003E815E41DC00AE815E41AC042 -:1010500002E915E417C004E915E414C001E216E43E -:1010600011C003E216E40EC004E216E40BC005E270 -:1010700016E408C006E216E405C007E216E402C062 -:101080000AE216E4C801DF91CF911F910F910895F4 -:1010900096E0799FF001112494E5899FE00DF11D00 -:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149 -:1010B0009491803E9105E0F4803C910558F5813390 -:1010C000910509F46FC048F48932910509F463C0B1 -:1010D0008A32910509F46DC072C089339105E9F037 -:1010E00082389105D1F08533910509F44DC067C070 -:1010F000833E910581F138F4803E9105B9F0823E3E -:101100009105D9F05CC0863E910561F1873E91055D -:10111000A1F155C00E94050608952091FA0120FD15 -:1011200002C021FF4CC080EE90E049C08091FA01DE -:1011300080FFF9CF89E390E042C08091FA0182FFFD -:101140000EC08091FA0184FF03C080E090E037C0B8 -:1011500083EE90E034C08091FA0182FFF2CF82EEFC -:1011600090E02DC08091FA0183FF0BC08091FA01BD -:1011700084FDEBCF87EE90E022C08091FA0183FFDF -:10118000F5CF86EE90E01BC08091FA0185FF07C085 -:1011900089E290E014C08091FA0185FFF9CF85E3E0 -:1011A00090E00DC08091FA0186FF07C08AE290E0CE -:1011B00006C08091FA0186FFF9CF81E390E00E949A -:1011C0001506089508950C94E20880916E01089523 -:1011D000CF93DF9300D01F92CDB7DEB79C018091F3 -:1011E000F101843019F593E099833B832A8390932E -:1011F000E9008FEF9091E800815095FD06C095EDD4 -:101200009A95F1F700008111F5CF8091E80085FFF4 -:101210000DC040E050E063E070E0CE0101960E9416 -:10122000520B8091E8008E778093E8000F900F902A -:101230000F90DF91CF910895CF93DF9300D01F924D -:10124000CDB7DEB72091F101243021F522E02983CA -:101250009B838A8383E08093E9008FEF9091E8007D -:10126000815095FD06C095ED9A95F1F7000081112A -:10127000F5CF8091E80085FF0DC040E050E063E0CD -:1012800070E0CE0101960E94520B8091E8008E77AB -:101290008093E8000F900F900F90DF91CF91089509 -:1012A0002091F1012430F1F422E02093E9002FEFA6 -:1012B0003091E800215035FD06C035ED3A95F1F743 -:1012C00000002111F5CF2091E80025FF0BC040E080 -:1012D00050E065E070E00E94520B8091E8008E774C -:1012E0008093E8000895CF93DF93EC019091F10192 -:1012F000943009F046C080910C018823D9F0809188 -:101300000D018823B9F09093E9008FEF9091E800E8 -:10131000815095FD06C095E19A95F1F70000811185 -:10132000F5CF8091E80085FF2CC040E050E060E1FF -:1013300070E017C081E08093E9008FEF9091E800A2 -:10134000815095FD06C095ED9A95F1F70000811149 -:10135000F5CF8091E80085FF14C040E050E068E0E0 -:1013600070E0CE010E94520B8091E8008E7780934E -:10137000E80080E1FE01AEE5B1E001900D928A95B2 -:10138000E1F7DF91CF9108958091F001811109C0BB -:101390000E94E70C0E94440D8091E20084608093DB -:1013A000E20008951092F001089508950C942B2204 -:1013B0000E948C1B0E9431220E94EA0F0C94E308C9 -:1013C00042E061EC81E00E94610C42E061EC82E06D -:1013D0000E94610C42E061EC83E00E94610C42E1FA -:1013E00061EC84E00C94610C8091F301833009F48A -:1013F00055C030F4813071F0823009F48EC0089508 -:101400008A3009F47AC08B3009F460C0893009F061 -:101410009CC020C08091F201813A09F096C0809171 -:10142000E800877F8093E8008091F6019091F701B2 -:10143000892B21F460E18EE591E003C060E080E05B -:1014400090E070E00E949D0B8091E8008B77809384 -:10145000E80008958091F201813209F076C0809110 -:10146000F6019091F701009719F0039709F06DC00C -:101470008091E800877F8093E8008091E80082FDFA -:1014800005C08091F1018111F8CF5FC08091F1001A -:1014900080936E018091E8008B7753C08091F201B8 -:1014A000813A09F052C08091F6019091F701892BA1 -:1014B00009F04BC08091E800877F8093E80080911D -:1014C000E80080FFFCCF80910C0136C08091F201D2 -:1014D0008132D9F58091F6019091F701892BA9F518 -:1014E0008091E800877F8093E8000E94960C8091AD -:1014F000F40180930C010C9483148091F2018132E9 -:1015000021F58091E800877F8093E8000E94960C87 -:101510008091F50180936F0108958091F201813AE5 -:10152000A1F48091E800877F8093E8008091E80033 -:1015300080FFFCCF80916F018093F1008091E800E3 -:101540008E778093E8000C94960C089584B7877F7B -:1015500084BF88E10FB6F894809360001092600019 -:101560000FBE90E080E80FB6F894809361009093EE -:1015700061000FBE0E9439100E94E70C0E94440DCA -:101580008091E20084608093E20078940E94CA0F08 -:101590000E943B1082E091E00E94E50F0E94192218 -:1015A0008091F101853069F40E94531B8091EF0115 -:1015B0008823B1F30E947E1B882391F30E943C0B89 -:1015C000EFCF0E944110ECCF292F33272330310574 -:1015D000C9F064F42130310581F02230310509F081 -:1015E00043C08DE690E02AE333E042C0213231056A -:1015F000F1F02232310541F137C082E190E027EA73 -:1016000033E036C099278130910541F08230910551 -:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4 -:1016200002C0E6E0F3E0849190E09F0121C06430C5 -:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5 -:10164000318189E090E014C0643070F470E0FB01F7 -:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47 -:10166000FE4F808190E004C080E090E020E030E018 -:10167000FA0131832083089580E189BD82E189BD2B -:1016800009B400FEFDCF8091D8008F7D8093D800F3 -:101690008091E00082608093E0008091E00081FD15 -:1016A000FCCF0895CF92DF92EF92FF920F931F939A -:1016B000CF93DF93EC018B016A010E94B50C81117D -:1016C00033C0C114D10439F0F60180819181081B27 -:1016D000190BC80FD91FE12CF12C0115110519F1B7 -:1016E0008091E80085FD16C08091E8008E77809398 -:1016F000E800C114D10449F0F60180819181E80E1F -:10170000F91EF182E08285E00FC00E94B50C8823AB -:1017100021F30AC089918093F10001501109FFEF74 -:10172000EF1AFF0ADACF80E0DF91CF911F910F917E -:10173000FF90EF90DF90CF9008952091F8013091C5 -:10174000F9012617370748F06115710539F4209122 -:10175000E8002E772093E80001C0B90140E0611550 -:101760007105A9F12091F101222309F443C025302C -:1017700009F442C02091E80023FD40C02091E80018 -:1017800022FD32C02091E80020FFE9CF4091F30014 -:101790002091F20030E0342BFC01CF01611571057E -:1017A00059F02830310540F481918093F100615067 -:1017B00071092F5F3F4FF1CF41E02830310509F02B -:1017C00040E02091E8002E772093E800C8CF411137 -:1017D000C9CF0AC08091F101882361F0853061F0A2 -:1017E0008091E80083FD0AC08091E80082FFF2CF7B -:1017F00080E0089582E0089583E0089581E00895EF -:101800002091F8013091F9012617370748F061154A -:10181000710539F42091E8002E772093E80001C08B -:10182000B901FC0120E06115710591F18091F10190 -:10183000882309F440C0853009F43FC08091E80056 -:1018400083FD3DC08091E80082FD2FC08091E800BB -:1018500080FFE9CF2091F3008091F20090E0922B7D -:101860006115710559F08830910540F42491209359 -:10187000F1003196615071090196F2CF21E008978D -:1018800009F020E08091E8008E778093E800CBCFCC -:101890002111CCCF0AC08091F101882361F08530FD -:1018A00061F08091E80083FD0AC08091E80082FF2A -:1018B000F2CF80E0089582E0089583E0089581E00A -:1018C0000895982F973058F59093E900981739F0BC -:1018D0007091EC002091ED005091F00003C0242F96 -:1018E000762F50E021FF19C03091EB003E7F3093FE -:1018F000EB003091ED003D7F3093ED003091EB0037 -:1019000031603093EB007093EC002093ED00509326 -:10191000F0002091EE0027FF07C09F5FD3CF8F70AC -:101920008093E90081E0089580E008958091F201BC -:1019300087FF11C08091E80082FD05C08091F10110 -:101940008111F8CF11C08091E8008B770BC0809196 -:10195000F101882349F08091E80080FFF8CF809161 -:10196000E8008E778093E80008952091E40030919C -:10197000E50095E64091EC00842F817040FF22C085 -:101980008091E80080FD1CC08091F101882391F0D6 -:10199000853091F08091EB0085FD10C04091E4000E -:1019A0005091E5004217530729F39A01915011F71E -:1019B00084E0089582E0089583E0089581E0089529 -:1019C00080E008954091E80042FFDECF08950E9434 -:1019D000550D0E945D0DE0EEF0E080818160808316 -:1019E000E8EDF0E080818F77808319BCA7EDB0E04F -:1019F0008C918E7F8C9380818F7E80831092F001FA -:101A000008950F931F93CF93DF930E94550D0E946B -:101A10005D0DC8EDD0E088818F77888388818068EC -:101A2000888388818F7D888319BC1092F101109280 -:101A3000ED011092EF011092EE0100EE10E0F801BE -:101A400080818B7F808388818160888342E060E031 -:101A500080E00E94610CE1EEF0E080818E7F808367 -:101A6000E2EEF0E080818160808380818860808305 -:101A7000F80180818E7F8083888180618883DF91F7 -:101A8000CF911F910F910895E8EDF0E080818F7E56 -:101A90008083E7EDF0E080818160808384E082BF15 -:101AA00081E08093F0010C94010DE8EDF0E080817D -:101AB0008E7F80831092E20008951092DA001092D7 -:101AC000E10008951F920F920FB60F9211242F93E9 -:101AD0003F934F935F936F937F938F939F93AF93B6 -:101AE000BF93EF93FF938091E10082FF0BC0809141 -:101AF000E20082FF07C08091E1008B7F8093E100CC -:101B00000E94C90F8091DA0080FF1FC08091D80029 -:101B100080FF1BC08091DA008E7F8093DA00809175 -:101B2000D90080FF0DC080E189BD82E189BD09B483 -:101B300000FEFDCF81E08093F1010E94C40905C041 -:101B400019BC1092F1010E94D2098091E10080FF3E -:101B500019C08091E20080FF15C08091E2008E7F65 -:101B60008093E2008091E20080618093E2008091A6 -:101B7000D80080628093D80019BC85E08093F10181 -:101B80000E94D6098091E10084FF30C08091E2007C -:101B900084FF2CC080E189BD82E189BD09B400FECB -:101BA000FDCF8091D8008F7D8093D8008091E10097 -:101BB0008F7E8093E1008091E2008F7E8093E2002F -:101BC0008091E20081608093E2008091ED018823A2 -:101BD00011F084E007C08091E30087FD02C081E03E -:101BE00001C083E08093F1010E94D8098091E10057 -:101BF00083FF29C08091E20083FF25C08091E1002E -:101C0000877F8093E10082E08093F1011092ED01E3 -:101C10008091E1008E7F8093E1008091E2008E7FD1 -:101C20008093E2008091E20080618093E20042E0D4 -:101C300060E080E00E94610C8091F00088608093F9 -:101C4000F0000E94D509FF91EF91BF91AF919F9154 -:101C50008F917F916F915F914F913F912F910F9055 -:101C60000FBE0F901F9018951F920F920FB60F92F4 -:101C700011242F933F934F935F936F937F938F9391 -:101C80009F93AF93BF93CF93DF93EF93FF93C09155 -:101C9000E900CF708091EC00D82FD17080FDD0E8A2 -:101CA0001092E9008091F000877F8093F000789493 -:101CB0000E94780E1092E9008091F0008860809375 -:101CC000F000CD2BCF70C093E900FF91EF91DF9131 -:101CD000CF91BF91AF919F918F917F916F915F91C4 -:101CE0004F913F912F910F900FBE0F901F9018951D -:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3 -:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115 -:101D1000F10091938E13FBCF0E94F4098091E800AB -:101D200083FF1FC18091F2019091F301492F50E090 -:101D30004A30510508F015C1FA01EA5AFF4F0C94D8 -:101D4000B323803881F0823809F00BC18091F6010D -:101D50008F708093E9008091EB0085FB882780F9E4 -:101D60001092E90006C08091EE019091EF0191116F -:101D700082609091E800977F9093E8008093F10053 -:101D80001092F100C8C0282F2D7F09F0EAC08823E7 -:101D900019F0823061F0E5C08091F401813009F0E2 -:101DA000E0C0933009F080E08093EF012BC0809178 -:101DB000F401811127C08091F6018F7009F4D1C020 -:101DC0008093E9002091EB0020FF1CC0933021F4A8 -:101DD0008091EB00806214C09091EB009061909331 -:101DE000EB0021E030E0A90102C0440F551F8A95A5 -:101DF000E2F74093EA001092EA008091EB008860DD -:101E00008093EB001092E9008091E800877F86C004 -:101E10008111A7C01091F4011F778091E3008078B1 -:101E2000812B8093E3008091E800877F8093E80016 -:101E30000E94960C8091E80080FFFCCF8091E30027 -:101E400080688093E300111102C082E001C083E04A -:101E50008093F10186C08058823008F082C0809162 -:101E6000F4019091F5018C3D53E0950779F583E0FD -:101E70008A838AE289834FB7F894DE01139620E0C3 -:101E80003EE051E2E32FF0E050935700E49120FF51 -:101E900003C0E295EF703F5FEF708E2F90E0EA3065 -:101EA00010F0C79601C0C0968D939D932F5F24318B -:101EB00049F74FBF8091E800877F8093E8006AE28E -:101EC00070E0CE0101960E949D0B14C0AE014F5FE1 -:101ED0005F4F6091F6010E94E40ABC01009709F48B -:101EE00040C09091E800977F9093E80089819A81A3 -:101EF0000E94000C8091E8008B778093E80031C04D -:101F0000803879F58091E800877F8093E8008091A0 -:101F1000ED018093F1008091E8008E778093E800D6 -:101F20000E94960C1EC081111CC09091F401923049 -:101F3000C0F48091E800877F8093E8009093ED01E2 -:101F40000E94960C8091ED01811106C08091E30002 -:101F500087FD02C081E001C084E08093F1010E940E -:101F6000E0098091E80083FF0AC08091E800877F44 -:101F70008093E8008091EB0080628093EB00AA964A -:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A -:101F900008950895CF938091F1018823A1F0C09115 -:101FA000E900CF709091EC00892F817090FD80E85E -:101FB000C82B1092E9008091E80083FD0E94780E02 -:101FC000CF70C093E900CF910895909375018093ED -:101FD00074010895E0917401F0917501309721F03A -:101FE0000190F081E02D099480E00895E091740162 -:101FF000F0917501309721F00280F381E02D099472 -:102000000895E0917401F0917501309721F00480FA -:10201000F581E02D099408952091720130917301AA -:102020008217930771F09093730180937201E0918E -:102030007401F0917501309721F00680F781E02D51 -:1020400009940895209170013091710182179307CE -:1020500071F09093710180937001E0917401F0919F -:102060007501309721F00084F185E02D09940895E1 -:1020700008950C9438100E94921B0E9433030C9414 -:10208000541C9F92AF92BF92CF92DF92EF92FF9239 -:102090000F931F93CF93DF9300D000D000D0CDB724 -:1020A000DEB70E944B030DE010E0AA24A394B12CEC -:1020B000902E802F0E943904980129583E4F6901C3 -:1020C000F901F080F826A1F40150110988F78FEF8B -:1020D00089838A831B820E949B1B8160782F9D834A -:1020E0008C8349815A816B818D810E94D8102FC0C9 -:1020F0009091DA0191FF04C08E830E943F048E818B -:1021000025E030E0A501022E01C0440F0A94EAF751 -:10211000E42E4F21C1F029839A828E2191E009F4A7 -:1021200090E09B830E949B1B8160782F9D838C8312 -:1021300049815A816B818D810E94D810F60180817E -:10214000E826E08204C021503109E0F6BDCF0E94AC -:102150003B1F109176010E94EA0F1817B9F00E94F8 -:10216000EA0F8093760126960FB6F894DEBF0FBE75 -:10217000CDBFDF91CF911F910F91FF90EF90DF9036 -:10218000CF90BF90AF909F900C94E30826960FB627 -:10219000F894DEBF0FBECDBFDF91CF911F910F919D -:1021A000FF90EF90DF90CF90BF90AF909F900895F9 -:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82 -:1021C0000FBECDBF4F83588769877A878B87DE0123 -:1021D000119686E0FD0111928A95E9F785E0FE01EE -:1021E000379601900D928A95E1F749815A816B816A -:1021F0007C818D819E810E9421172B960FB6F894C9 -:10220000DEBF0FBECDBFDF91CF910895CF9388235E -:1022100009F4C2C0C82F823859F40E94EA0F81FD28 -:10222000BBC089E30E94FB190E94C81A89E30CC055 -:10223000833879F40E94EA0F80FDAEC083E50E94E6 -:10224000FB190E94C81A83E50E943D1ACF910C9495 -:10225000C81A843859F40E94EA0F82FD9DC087E4B1 -:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6 -:10227000813A48F48C2F0E947E2181118DC08C2FD1 -:102280000E94FB19E3CF80E28C0F883048F4C770BE -:1022900081E001C0880FCA95EAF70E94811AD6CF63 -:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB -:1022B00083E890E005C081E890E002C082E890E009 -:1022C000CF910C940C1088E58C0F833108F064C01A -:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118 -:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186 -:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106 -:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173 -:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB -:1023200038C082EE90E035C089EE90E032C08AEE8F -:1023300090E02FC085EB90E02CC086EB90E029C0A8 -:1023400087EB90E026C08CEC90E023C08DEC90E011 -:1023500020C083E891E01DC08AE891E01AC082E9BC -:1023600091E017C084E991E014C081E292E011C0CD -:1023700083E292E00EC084E292E00BC085E292E03C -:1023800008C086E292E005C087E292E002C08AE2DD -:1023900092E0CF910C942210CF910895882309F4F4 -:1023A0004BC0823859F40E94EA0F81FF45C089E38F -:1023B0000E94FB190E94C81A89E30CC0833871F48B -:1023C0000E94EA0F80FF38C083E50E94FB190E943B -:1023D000C81A83E50E943D1A0C94C81A843859F42F -:1023E0000E94EA0F82FF28C087E40E94FB190E9426 -:1023F000C81A87E4EFCF9CEF980F913A58F390E218 -:10240000980F983050F4877091E001C0990F8A9529 -:10241000EAF7892F0E94871ADFCF9BE5980F933048 -:1024200020F480E090E00C940C10885A833120F462 -:1024300080E090E00C9422100895882321F00E94FF -:10244000811A0C94C81A0895882321F00E94871AD3 -:102450000C94C81A08957F928F929F92AF92BF9268 -:10246000CF92DF92EF92FF920F931F93CF93DF9360 -:102470001F92CDB7DEB77C01C62E772EFC010581F9 -:1024800002950F70128111110E949E1A0E94F41978 -:10249000882379F0112369F080E28C0D883048F0B0 -:1024A00082E00E94DD190E94F41991E0D82ED9260D -:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C -:1024C0000C94B323872D807F072D0F70882311F084 -:1024D0000295007F112389F0002309F490C180E266 -:1024E0008C0D883020F4802F0E94811A03C0802F29 -:1024F0000E94911A0E94C81A82C18C2D0E94CE118E -:10250000002309F495C180E28C0D883020F4802FDF -:102510000E94871A03C0802F0E94971A0E94C81A2F -:1025200087C1972D907F872D8F70903211F0829503 -:10253000807FCC2021F0F1E0CF16B1F01EC0112336 -:1025400049F0002309F414C1013009F011C10E94BF -:10255000B11A6EC1002319F0013009F469C18983F1 -:102560000E94B41A89810AC1112321F0023008F0B7 -:102570005FC1FEC001115CC101C1112321F0002324 -:1025800009F4F6C03CC1002309F4F8C03EC1872D10 -:1025900086958695837090E0009719F0019761F019 -:1025A00047C1112321F08C2D972D937002C080E03C -:1025B00090E00E940C103CC1112321F08C2D972D2E -:1025C000937002C080E090E00E94221031C18C2DF7 -:1025D000112319F00E94431E02C00E94AB1E0E94EC -:1025E000301F26C1872D837009F052C0111120C100 -:1025F0008C2D829586958770880F880F9C2D9F70F3 -:10260000892E912CA12CB12C082E04C0880C991C69 -:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041 -:1026200020E030E0B901A80104C0440F551F661F27 -:10263000771F8A95D2F7CB01BA0160957095809586 -:10264000909503C060E070E0CB01272D269526957C -:10265000237030E02230310569F02330310589F0F4 -:10266000682979298A299B292130310571F00E9436 -:102670006918DEC0682979298A299B290E94851852 -:10268000D7C00E946918C501B4010E944D18D0C07E -:10269000112319F0872D817001C08695882309F4D4 -:1026A000C7C08C2D829586958770880F880F9C2DCA -:1026B0009F70892E912CA12CB12C082E04C0880C5F -:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC -:1026D00010E020E030E0B901A80104C0440F551F0C -:1026E000661F771F8A95D2F7CB01BA016095709566 -:1026F0008095909503C060E070E0CB01272D269572 -:1027000026952370422F50E04230510569F0433046 -:10271000510589F0682979298A299B294130510579 -:1027200071F00E94431984C0682979298A299B295C -:102730000E945F197DC00E944319C501B4010E9427 -:10274000271976C08C2D90E0FC01E05EF109E5319F -:10275000F10508F050C0E059FF4F0C94B3230C2D45 -:102760000F70872D8F71112331F00E94C018802FB8 -:102770000E941D125DC00E94E118802F0E94241249 -:1027800057C0112339F0011153C0872D8F710E945A -:1027900006194EC0023008F04BC0F7CF112339F0B4 -:1027A000872D8F710E94C01843C01123C9F3872D54 -:1027B0008F710E94E1183CC0112329F0872D8F7181 -:1027C0000E94AB1835C00E94A11832C0112351F0ED -:1027D000172D1F71812F0E94C01863E0812F0E9466 -:1027E000D41926C081E00E94DD19023008F182E090 -:1027F0000E94DD191DC0112331F0002389F28C2DB8 -:102800000E94061115C0002391F28C2D0E94CE115A -:102810000FC0472D4F706C2DC7010E9415050E94F7 -:10282000C51706C0472D4F706C2DC7010E94F205D9 -:10283000DD20F9F00E94D01980FD1BC0F701128243 -:102840000E94CA190E94C018C7010E9448140E9421 -:10285000CA190F90DF91CF911F910F91FF90EF90C8 -:10286000DF90CF90BF90AF909F908F907F900C940F -:10287000E1180F90DF91CF911F910F91FF90EF9092 -:10288000DF90CF90BF90AF909F908F907F900895F2 -:102890000F931F93CF93DF93EC01888199812B8154 -:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B -:1028B0000E944A05882371F0688179818A810E948B -:1028C000C6198C010E947B190E944218B801CE01E2 -:1028D0000E942B12DF91CF911F910F9108950E94BA -:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471 -:1028F000E11F0E94301F80E090E00E940C1080E0F9 -:1029000090E00C9422100E948E1A0C946F140E9476 -:10291000BB19292F22952F7030E02C3031054CF453 -:102920002A3031056CF42250310922303105A8F4E7 -:1029300007C02C30310569F02F30310551F00DC042 -:10294000803F69F018F4803E40F409C0843F29F4C8 -:1029500006C093FB882780F9089580E0089581E000 -:102960000895CF93DF9300D000D01F92CDB7DEB78C -:102970000F900F900F900F900F90DF91CF910895CF -:10298000CF93DF9300D000D000D0CDB7DEB726962E -:102990000FB6F894DEBF0FBECDBFDF91CF91089583 -:1029A0001F93CF93DF93C091850116E0809186013C -:1029B000C81799F0D0E01C9FF0011D9FF00D112465 -:1029C000E957FE4F408151816281738184819581F5 -:1029D0000E94C0142196C770E9CFDF91CF911F915B -:1029E00008954091B7015091B8016091B90170917B -:1029F000BA018091BB019091BC010C94C0148091EC -:102A0000BC0182958F7009F054C08091B901882370 -:102A100009F44FC080918501A09186016091B701B2 -:102A20007091B8014091BA015091BB01B6E08A178C -:102A300009F43FC090E041155105C1F17F3F11F409 -:102A40006F3FA1F1B89FF001B99FF00D1124E95734 -:102A5000FE4F218172132AC02081621327C0228178 -:102A6000211124C0238134812417350710F421500B -:102A70003109241B350B283C3105C0F42091BC01E1 -:102A80002F7020612093BC0126E0289FF001299F30 -:102A9000F00D1124E457FE4F80818F708061808398 -:102AA00087EB91E00E9448140C94D0140196877033 -:102AB000BECF0895CF92DF92EF92FF920F931F93B4 -:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32 -:102AD0000FBECDBF8C0185E0F801DE011D9601908F -:102AE0000D928A95E1F7D8014C9111965C9111975E -:102AF00012966C9112971396CD90DC9014973091AA -:102B0000B7017091B8018091BA019091BB01009713 -:102B100009F46BC17F3F19F43F3F09F466C1E090AF -:102B2000B901EE2009F4C0C02091BC01C816D90635 -:102B300028F0F601E81BF90BCF0104C080959095B1 -:102B40008C0D9D1DFF24F394883C910578F0F12CA9 -:102B5000207F09F0C6C07C2DD98AC88A89890E9445 -:102B6000B11487EB91E00E944814B1C0822F807F9E -:102B700009F046C0751314C0341312C0611110C09F -:102B80002F7020612093BC010E94F11487EB91E02B -:102B90000E9448148091BC01D80115968C932EC0D8 -:102BA000CD2819F15F3F11F44F3FF9F0F62E611176 -:102BB0001CC0809185012091860136E0821709F4BE -:102BC0005AC090E0389FF001399FF00D1124E95769 -:102BD000FE4F7181571306C07081471303C0728185 -:102BE000711103C001968770E9CFF62E662309F4B0 -:102BF00018C18091BC0181608093BC01F12C11C18E -:102C0000751308C0341306C0611104C08091BC0163 -:102C1000D801C3C04D875E878D859E856A8B0E94D3 -:102C200087146A898823E1F16623D1F12091BC01E0 -:102C3000822F82958F7090E0029774F08091B70197 -:102C40009091B80198878F831986DB86CA862C8776 -:102C5000CE0107960E94481486E0F801A7EBB1E088 -:102C600001900D928A95E1F70E94FF140E94F114E1 -:102C7000FF24F394D6C04D875E878D859E850E9484 -:102C8000BB19292F22952F7030E0223031050CF02E -:102C9000BCC09F7009F0B6C0805E883008F4C1C027 -:102CA000C8010E944814E4CFC816D90608F453C0DE -:102CB000F601E81BF90BCF01883C910508F450C0E0 -:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E -:102CD000F1E086E0DF011D928A95E9F70E94F11488 -:102CE000A0C0751314C0341312C0611110C08091BC -:102CF000BC01F8018583C8010E94481486E0E7EB17 -:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C -:102D10005E878D859E856A8B0E9487146A898823C9 -:102D200009F4BECF662309F4BBCF2091BC01822FEA -:102D300082958F7090E002970CF48ECF8091B7014E -:102D40009091B8019A8389831B82DD82CC822E8385 -:102D5000CE0101967FCF809590958C0D9D1DACCFB7 -:102D6000F62E662309F49CCF75132EC034132CC0A5 -:102D70002091BC0120FD1FC0822F82958F70D9F059 -:102D8000D80115962C9315978F3049F08F5F982FA7 -:102D90009295907F822F8F70892B15968C93C80106 -:102DA0000E94481486E0F801A7EBB1E001900D9273 -:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7 -:102DC0000D928A95E1F72DC04D875E878D859E8592 -:102DD0000E948714811140CF8091BC018160809353 -:102DE000BC01C8010E9448141CC0662309F458CFD6 -:102DF0004D875E878D859E850E948714882309F400 -:102E00004FCF2ACF811148CF0CC0243031050CF0B0 -:102E100047CF9F7009F440CFF8019581907F09F06A -:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D -:102E3000DF91CF911F910F91FF90EF90DF90CF9096 -:102E400008951F93CF93DF93CDB7DEB72C970FB6BE -:102E5000F894DEBF0FBECDBF4F83588769877A874E -:102E60008B879C87CE0107960E945A15882369F0AC -:102E70008F8198852A853B85232BF1F19F3F09F0AF -:102E800063C08F3F09F060C037C086E0FE0137960F -:102E9000DE01119601900D928A95E1F76F81788598 -:102EA000EA85FB85309741F17F3F11F46F3F21F1B7 -:102EB0002091860130E0C9010196877099274091E1 -:102EC000850150E08417950709F447C069837A8328 -:102ED000FD83EC8396E0929FD001939FB00D112467 -:102EE000A957BE4FFE01319601900D929A95E1F7D8 -:102EF000809386010E94D01416E080918501909104 -:102F000086018917C1F1189FC001112489579E4F6E -:102F10000E945A15882379F1E09185011E9FF001E6 -:102F20001124E957FE4F4081518162817381848170 -:102F300095810E94C0148091850190E00196877070 -:102F4000992780938501D9CF4F81588569857A85E6 -:102F50008B859C850E94C014CFCF0E948314109251 -:102F6000860110928501E7EBF1E086E0DF011D921A -:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45 -:102F8000CDBFDF91CF911F910895EF92FF920F93E4 -:102F90001F93CF93DF938C01009709F46CC0F12C41 -:102FA000EE24E394E8012196F8018491843740F4FB -:102FB000843008F051C0813081F0823019F15BC05B -:102FC000853709F444C0A8F19CE7980F903708F0C2 -:102FD00052C08F770E94CE1141C00E5F1F4FFE017D -:102FE000C49180E28C0F883048F4C7708E2D01C0E8 -:102FF000880FCA95EAF70E94A11A14C08C2F0E946C -:1030000006112DC00E5F1F4FFE01C49180E28C0F90 -:10301000883058F4C7708E2D01C0880FCA95EAF722 -:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3 -:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3 -:103040009FE00197F1F700C00000C150F6CF0E5F7E -:103050001F4FFE01F49003C00E9406118E018F2DB8 -:10306000882309F49FCFEFE9FFE03197F1F700C023 -:1030700000008150F5CFDF91CF911F910F91FF900C -:10308000EF90089508956093C1017093C2018093F9 -:10309000C3019093C4010C946F140F931F9300917C -:1030A000C1011091C2012091C3013091C401DC0122 -:1030B000CB01802B912BA22BB32B8093C10190933A -:1030C000C201A093C301B093C4011F910F910C944E -:1030D0006F140F931F930091C1011091C2012091B1 -:1030E000C3013091C401DC01CB0180239123A223D1 -:1030F000B3238093C1019093C201A093C301B09305 -:10310000C4011F910F910C946F140F931F930091A2 -:10311000C1011091C2012091C3013091C401DC01B1 -:10312000CB0180279127A227B3278093C1019093D9 -:10313000C201A093C301B093C4011F910F910C94DD -:103140006F141092BD011092BE011092BF01109237 -:10315000C0010C946F1441E050E060E070E004C0E6 -:10316000440F551F661F771F8A95D2F74093BD0104 -:103170005093BE016093BF017093C0010C946F1413 -:1031800041E050E060E070E004C0440F551F661F4E -:10319000771F8A95D2F78091BD019091BE01A091D1 -:1031A000BF01B091C001482B592B6A2B7B2B409358 -:1031B000BD015093BE016093BF017093C0010C9498 -:1031C0006F1441E050E060E070E004C0440F551F10 -:1031D000661F771F8A95D2F7409550956095709538 -:1031E0008091BD019091BE01A091BF01B091C0013D -:1031F000482359236A237B234093BD015093BE018A -:103200006093BF017093C0010C946F1441E050E0D3 -:1032100060E070E004C0440F551F661F771F8A9559 -:10322000D2F78091BD019091BE01A091BF01B091F4 -:10323000C001482759276A277B274093BD01509337 -:10324000BE016093BF017093C0010C946F140F9383 -:103250001F930091BD011091BE012091BF013091DB -:10326000C001DC01CB01802B912BA22BB32B8093CF -:10327000BD019093BE01A093BF01B093C0011F9107 -:103280000F910C946F140F931F930091BD01109137 -:10329000BE012091BF013091C001DC01CB01802330 -:1032A0009123A223B3238093BD019093BE01A093E9 -:1032B000BF01B093C0011F910F910C946F140F9335 -:1032C0001F930091BD011091BE012091BF0130916B -:1032D000C001DC01CB0180279127A227B32780936F -:1032E000BD019093BE01A093BF01B093C0011F9197 -:1032F0000F910C946F140895CF92DF92EF92FF928A -:103300000F931F93CF93DF938C01C090C101D09096 -:10331000C201E090C301F090C4018091BD01909181 -:10332000BE01A091BF01B091C001C82AD92AEA2AE2 -:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520 -:10334000A795979587950A94D2F780FF06C0B80194 -:103350008C2F0E944808019721F4219760F780E0A4 -:1033600001C08C2FDF91CF911F910F91FF90EF90B3 -:10337000DF90CF900895CF93DF93EC010E947C19EA -:10338000BE010E944808DF91CF910895CB010E94B1 -:10339000BB1908958091C5018595859585950895FA -:1033A0008091C5018770089598E0899F900111244C -:1033B000262B2093C5010C94C0182091C50180953F -:1033C00082238093C501982F977069F430E0482FCD -:1033D000552747FD50952417350729F08595859584 -:1033E00085950C94E11808959091C501977081E03E -:1033F00009F480E0089590910C01992321F09091B7 -:103400000D01911109C020910E0130910F01F901B8 -:1034100032969FEF40E01FC0982F9695969596950F -:103420009F3050F5E0910E01F0910F01E90FF11D71 -:10343000877021E030E0A90102C0440F551F8A9532 -:10344000E2F7CA019181892B818308959F3F39F06A -:103450004F5F4E3041F051915813F8CF0DC05111CC -:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08 -:1034700097FDFA9582830895089590910C01992300 -:1034800021F090910D01911109C020910E01309110 -:103490000F01F9013296205F3F4F1FC0982F96957C -:1034A000969596959F30F0F4E0910E01F0910F0102 -:1034B000E90FF11D877021E030E0A90102C0440F3F -:1034C000551F8A95E2F7CA018095918189238183EE -:1034D00008953196E217F30729F090819813F9CFF8 -:1034E0001082F7CF089581E090E0E0910E01F09115 -:1034F0000F01E80FF91F1082019680319105A9F79D -:1035000008959091D901892B8093D90108958095D0 -:103510009091D90189238093D90108951092D901FE -:1035200008959091D801892B8093D80108958095B2 -:103530009091D80189238093D80108951092D801E1 -:1035400008959091D701892B8093D7010895809594 -:103550009091D70189238093D70108951092D701C4 -:1035600008958093C60108951092C6010895809130 -:103570000E0190910F01FC0131969C01205F3F4F9D -:1035800080E0919191118F5FE217F307D1F70895D1 -:10359000E0910E01F0910F018091D9018083E091BB -:1035A0000E01F0910F0190818091D801892B8083C9 -:1035B000E0910E01F0910F0190818091D701892B4C -:1035C00080838091C601882361F0E0910E01F09123 -:1035D0000F019081892B80830E94B71A811110926C -:1035E000C60180910E0190910F010C94F60F20E01E -:1035F000009739F0AC0141505109842395232F5F86 -:10360000F7CF822F0895CF92DF92EF92FF926C0155 -:10361000EE24FF24C114D104E104F10421F0C70118 -:10362000B60120E101C020E0C72ED82EE92EFF24EC -:10363000C114D104E104F10419F0285FC701B601F7 -:103640006B017C0154E0F694E794D794C7945A95A3 -:10365000D1F7C114D104E104F10419F02C5FC701C2 -:10366000B6016B017C0142E0F694E794D794C794CD -:103670004A95D1F7C114D104E104F10419F02E5F89 -:10368000C701B601DC01CB01B695A7959795879543 -:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5 -:1036A000DF90CF9008958091F101843021F1109244 -:1036B000DB0120E488E190E00FB6F894A8958093B0 -:1036C00060000FBE2093600080E00E94E30883B793 -:1036D000817F846083BF83B7816083BF789488953E -:1036E00083B78E7F83BF88E10FB6F8948093600024 -:1036F000109260000FBE0895089508950E947C1BEB -:103700000E944B030E947D1B0E94400491E08111A6 -:1037100001C090E0892F08950E9483140E94EA0F4F -:103720000C94E30882E084BD93E095BD9AEF97BDC9 -:1037300080936E0008952FB7F8948091DC019091EA -:10374000DD01A091DE01B091DF012FBF0895CF927E -:10375000DF92EF92FF920F931F932FB7F89440914F -:10376000DC015091DD016091DE017091DF012FBF1E -:103770006A017B01EE24FF248C0120E030E0C016BA -:10378000D106E206F30610F4415051099A01281BB4 -:10379000390BC9011F910F91FF90EF90DF90CF90EF -:1037A00008951F920F920FB60F9211248F939F933B -:1037B000AF93BF938091DC019091DD01A091DE0178 -:1037C000B091DF010196A11DB11D8093DC019093A2 -:1037D000DD01A093DE01B093DF01BF91AF919F9116 -:1037E0008F910F900FBE0F901F9018950E94E70CBD -:1037F000F8942FEF87EA91E6215080409040E1F75E -:1038000000C0000087E090EBDC018093FB01909307 -:10381000FC01A093FD01B093FE019CE088E10FB68E -:10382000F894A895809360000FBE90936000FFCF3E -:10383000EF92FF920F931F93CF93DF93D82FCDE09A -:103840008C2F0E94390405E010E0E82EF12CC7010E -:10385000002E02C0959587950A94E2F780FF09C073 -:10386000602F7C2F80E00E94F305D81302C081E016 -:1038700006C00150110958F7C15010F780E0DF91E0 -:10388000CF911F910F91FF90EF900895CF93C82F84 -:103890008CE20E94181C882321F08C2FCF910C946D -:1038A000181C80E0CF910895CF930E949B1D811139 -:1038B00002C00E94811DC5E6C15049F00E944B0321 -:1038C0008FE39CE90197F1F700C00000F5CF89E292 -:1038D0000E94461C811113C18AE20E94461C81117C -:1038E0000E94811D85E00E94461C81110E94F61BEA -:1038F0000E94A61D8093DA0187E00E94461C88235F -:10390000A9F18BE10E94461C882351F08091DA01D5 -:1039100081FB222720F991E0922790FB81F90EC0CC -:103920008EE00E94461C882361F08091DA0182FBC0 -:10393000222720F991E0922790FB82F98093DA0107 -:1039400015C080E10E94461C9091DA01882341F065 -:1039500093FB222720F981E0822780FB93F904C0A2 -:10396000892F809580FB90F99093DA018091DA019C -:103970000E94AA1D0E94B81D8093FA0180EE0E9449 -:10398000461C882341F08091FA01982F909590FB76 -:1039900080F98093FA0189E30E94461C882359F03C -:1039A0008091FA0181FB222720F991E0922790FB78 -:1039B00081F98093FA0182EE0E94461C882359F017 -:1039C0008091FA0182FB222720F991E0922790FB57 -:1039D00082F98093FA0186EE0E94461C882359F0F2 -:1039E0008091FA0183FB222720F991E0922790FB36 -:1039F00083F98093FA0183EE0E94461C882359F0D4 -:103A00008091FA0184FB222720F991E0922790FB14 -:103A100084F98093FA0185E30E94461C882359F0BB -:103A20008091FA0185FB222720F991E0922790FBF3 -:103A300085F98093FA0181E30E94461C882359F09E -:103A40008091FA0186FB222720F991E0922790FBD2 -:103A500086F98093FA0181E10E94461C882359F07F -:103A60008091FA0187FB222720F991E0922790FBB1 -:103A700087F98093FA018091FA010E94BC1D809120 -:103A8000FA0187FB882780F980930D0187E20E9465 -:103A9000461CC82F8EE10E94461C8111C2608FE136 -:103AA0000E94461C8111C46080E20E94461C811164 -:103AB000C86081E20E94461C8111C06182E20E94BE -:103AC000461C8111C06283E20E94461C8111C064C1 -:103AD00084E20E94461C882311F0C06802C0CC23F7 -:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4 -:103AF000682F70E080E090E0CF910C944318CF9154 -:103B000008956DEE7EEF80E090E00E94ED2360E08E -:103B100082E090E00E94DB2360E083E090E00E947E -:103B2000DB2360E084E090E00E94DB2360E085E03E -:103B300090E00C94DB2380E090E00E94D52321E00C -:103B40008D3E9E4F09F020E0822F089582E090E0A4 -:103B50000C94CD23682F82E090E00C94DB2383E06B -:103B600090E00C94CD23682F83E090E00C94DB234D -:103B700084E090E00C94CD23682F84E090E00C94D6 -:103B8000DB238091E20180FF0BC06091130185E08F -:103B9000689FB001112475956795759567952BC041 -:103BA00081FF09C06091130185E0689FB001112475 -:103BB0007595679520C082FF07C06091130185E06D -:103BC000689FB001112417C09091E3019923D1F0AF -:103BD00060911201961788F72091130185E0289FC4 -:103BE00090011124929FA001939F500D112470E029 -:103BF000CA010E949F236038710540F46115710568 -:103C000039F002C065E070E0862F08958FE70895CF -:103C100081E008958091E20180FF08C06091110168 -:103C200070E0759567957595679521C081FF06C011 -:103C30006091110170E07595679519C082FF04C00D -:103C40006091110170E010C09091E3019923C1F0DF -:103C5000609110019617A0F780911101899FC00112 -:103C6000112470E00E949F236038710528F46115CB -:103C7000710521F0862F08958FE7089581E008955A -:103C800061E070E0F4CF803F21F40E94C11D819576 -:103C900004C0813F29F40E94C11D8093E60108956C -:103CA000823F21F40E94C11D819504C0833F29F405 -:103CB0000E94C11D8093E5010895893F19F40E9477 -:103CC0000A1E05C08A3F31F40E940A1E8195809326 -:103CD000E70108958B3F21F40E940A1E819504C0DC -:103CE0008C3F29F40E940A1E8093E8010895843FC6 -:103CF00021F48091E401816017C0853F21F4809117 -:103D0000E401826011C0863F21F48091E401846067 -:103D10000BC0873F21F48091E401886005C0883F93 -:103D200031F48091E40180618093E40108958D3F36 -:103D300021F48091E20181600BC08E3F21F48091DB -:103D4000E201826005C08F3F29F48091E201846026 -:103D50008093E2010895803F39F48091E60187FF66 -:103D60006CC01092E60169C0813F29F48091E601A0 -:103D70001816BCF362C09091E501823F29F497FFC9 -:103D80005CC01092E50159C0833F19F41916CCF3B9 -:103D900054C0893F41F48091E70118160CF04DC0E2 -:103DA0001092E7014AC08A3F29F48091E70187FF1A -:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6 -:103DC0001092E8013AC08C3F29F48091E80118165E -:103DD000BCF333C0843F21F48091E4018E7F17C08F -:103DE000853F21F48091E4018D7F11C0863F21F44D -:103DF0008091E4018B7F0BC0873F21F48091E40127 -:103E0000877F05C0883F31F48091E4018F7E8093E5 -:103E1000E40113C08D3F21F48091E2018E7F0BC03D -:103E20008E3F21F48091E2018D7F05C08F3F29F400 -:103E30008091E2018B7F8093E2018091E501811105 -:103E40000EC08091E60181110AC08091E7018111C5 -:103E500006C08091E801811102C01092E30108952B -:103E600084EE91E00E9401100E949B1B9093E1015F -:103E70008093E00108951F93CF93DF938091E00139 -:103E80009091E1010E94A71BAC019091E30199235D -:103E900021F02091140130E006C0209115018AE044 -:103EA000289F900111244217530708F486C080917F -:103EB000E501C091E601D091E7011091E80181117F -:103EC00007C0C11176C0D11174C0111172C075C084 -:103ED0009F3F19F09F5F9093E301181624F40E940E -:103EE000C11D8093E5018091E50187FF05C00E9417 -:103EF000C11D81958093E5011C1624F40E94C11D0B -:103F00008093E6018091E60187FF05C00E94C11DF4 -:103F100081958093E6016091E501662339F1C091B6 -:103F2000E601CC2319F1772767FD7095872F972F2E -:103F30000E94B02223E333E343E35FE30E941423B0 -:103F40000E947D226093E5016C2F772767FD7095B5 -:103F5000872F972F0E94B02223E333E343E35FE3ED -:103F60000E9414230E947D226093E6011D1624F412 -:103F70000E940A1E8093E7018091E70187FF05C038 -:103F80000E940A1E81958093E701111624F40E9475 -:103F90000A1E8093E8018091E80187FF05C00E9416 -:103FA0000A1E81958093E801DF91CF911F910C94B7 -:103FB000301F9F3F09F08ECF96CFDF91CF911F9199 -:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE -:103FD0001092E3011092E2010895833081F128F4F8 -:103FE000813059F08230D1F00895853009F449C00C -:103FF000B8F1863009F456C0089580911501262F36 -:1040000030E0280F311D2F3F310524F4680F6093F5 -:10401000150108958FEF8093150108958091140183 -:10402000262F30E0280F311D2F3F310524F4680F73 -:104030006093140108958FEF809314010895809187 -:104040001301262F30E0280F311D2F3F310524F4B6 -:10405000680F6093130108958FEF80931301089503 -:1040600080911201262F30E0280F311D2F3F31059E -:1040700024F4680F6093120108958FEF809312016A -:10408000089580911101262F30E0280F311D2F3F18 -:10409000310524F4680F6093110108958FEF809328 -:1040A0001101089580911001262F30E0280F311D55 -:1040B0002F3F310524F4680F6093100108958FEFAE -:1040C000809310010895833011F128F4813049F074 -:1040D000823091F00895853081F120F18630C1F170 -:1040E000089580911501681720F4861B80931501AF -:1040F000089510921501089580911401681720F415 -:10410000861B8093140108951092140108958091E4 -:104110001301681720F4861B8093130108951092F1 -:104120001301089580911201681720F4861B809373 -:1041300012010895109212010895809111016817DB -:1041400020F4861B809311010895109211010895A7 -:1041500080911001681720F4861B80931001089548 -:104160001092100108950F931F938D3109F46BC0C5 -:1041700008F03FC08E3009F47FC0C0F4873009F4E6 -:1041800069C068F4863009F0B1C08091DA01817F9E -:104190008E7F8093DA0181E08093EA01A8C08830A5 -:1041A00009F4A2C08B3009F49FC0A0C0863109F485 -:1041B0009BC078F4803109F472C0813109F096C057 -:1041C0000E94831490910D0181E0892780930D0155 -:1041D0008BC0893109F488C08B3109F087C0809188 -:1041E000DA0181FB222720F991E0922790FB81F9E7 -:1041F0004CC0853309F470C048F4873209F46CC0B0 -:1042000008F459C0893209F467C070C0833438F4A7 -:104210008A3308F04EC0883309F466C067C083341F -:1042200009F45AC0883409F061C00E9483140FEF6A -:1042300013ED20E3015010402040E1F700C00000E2 -:104240000E94F61B51C00E9437220E94EA0F0E9472 -:10425000E3084AC09091DA01892F8095817080FB34 -:1042600090F929F0966098609093DA0140C0997FA8 -:10427000977F9093DA0138C08091DA0182FB222780 -:1042800020F991E0922790FB82F98093DA0199233B -:1042900059F18091DA0181608093DA0125C0809123 -:1042A000DA0183FB222720F991E0922790FB83F922 -:1042B000ECCF895301C08D5141E050E060E070E0E7 -:1042C0008A019B0104C0000F111F221F331F8A9512 -:1042D000D2F7C901B80104C061E070E080E090E06D -:1042E0000E9443180E94831481E001C080E01F9166 -:1042F0000F91089580E0089580E00895CF93C82F2E -:104300008091EA01813079F018F08230E9F187C0BC -:10431000E0910E01F0910F018081813169F08232CC -:1043200009F07FC009C0E0910E01F0910F0180817A -:10433000813111F0823261F48C2F0E947A21811137 -:1043400004C08C2F0E94B3201DC081E090E01AC0F1 -:104350008C2F0E947C21811114C0C43179F048F463 -:10436000CB3079F0C03109F060C082E08093EA017F -:1043700008C0C93219F0C83321F057C01092EA01C1 -:1043800054C081E0817053C0C93289F118F5C4313D -:1043900071F1A8F4C73009F046C08AE08093150196 -:1043A00094E19093140193E0909313018093120190 -:1043B00088E08093110188E28093100134C0CE51CF -:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB -:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC -:1043E00013C0C13579F0C235F1F461E00DC08091A0 -:1043F000E901882319F01092E90115C081E080934A -:10440000EA0115C061E006C08091E9010E94ED1F3C -:104410000AC06AE08091E9010E94632004C0109202 -:10442000EA0180E004C081E002C080E0ABCFCF9120 -:104430000895E1E8F0E08081886080838081816078 -:1044400080838FB7F89493E09093890090ED9093D8 -:1044500088008FBF0895EFE6F0E08081826080835E -:104460000895EFE6F0E080818D7F80830895EFE688 -:10447000F0E0908182E08927808308951F920F9257 -:104480000FB60F9211242F933F934F935F936F9327 -:104490007F938F939F93AF93BF93EF93FF938091FD -:1044A000EB019091EC0101969093EC018093EB016C -:1044B000811103C082E00E94E308E091EC01E695DF -:1044C000E695F0E0EC54FB4FE4918091EB018E1304 -:1044D00003C080E00E94E308FF91EF91BF91AF918C -:1044E0009F918F917F916F915F914F913F912F910C -:1044F0000F900FBE0F901F90189504D06894B111C3 -:104500008DC0089570D088F09F5790F0B92F9927EB -:10451000B751A0F0D1F0660F771F881F991F1AF0CE -:10452000BA95C9F712C0B13081F077D0B1E00895E3 -:1045300074C0672F782F8827B85F39F0B93FCCF364 -:10454000869577956795B395D9F73EF490958095C4 -:10455000709561957F4F8F4F9F4F0895E89409C0E4 -:1045600097FB3EF490958095709561957F4F8F4FA6 -:104570009F4F9923A9F0F92F96E9BB279395F695BC -:10458000879577956795B795F111F8CFFAF4BB0F3A -:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E -:1045A000882311F096E911C0772321F09EE8872F28 -:1045B000762F05C0662371F096E8862F70E060E0E4 -:1045C0002AF09A95660F771F881FDAF7880F96955D -:1045D000879597F9089557FD9058440F551F59F046 -:1045E0005F3F71F04795880F97FB991F61F09F3FE0 -:1045F00079F087950895121613061406551FF2CF09 -:104600004695F1DF08C0161617061806991FF1CF58 -:1046100086957105610508940895E894BB2766277F -:104620007727CB0197F908950BD078C069D028F08F -:104630006ED018F0952309F05AC05FC01124EECF58 -:10464000CADFA0F3959FD1F3950F50E0551F629FED -:10465000F001729FBB27F00DB11D639FAA27F00DDB -:10466000B11DAA1F649F6627B00DA11D661F829F02 -:104670002227B00DA11D621F739FB00DA11D621FE7 -:10468000839FA00D611D221F749F3327A00D611D04 -:10469000231F849F600D211D822F762F6A2F1124E6 -:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39 -:1046B000BB1F661F771F881F91505040A9F79E3F70 -:1046C000510570F014C0AACF5F3FECF3983EDCF3C5 -:1046D000869577956795B795F795E7959F5FC1F7AD -:1046E000FE2B880F911D9695879597F9089597F958 -:1046F0009F6780E870E060E008959FEF80EC089588 -:1047000000240A94161617061806090608950024B0 -:104710000A9412161306140605060895092E03942A -:10472000000C11F4882352F0BB0F40F4BF2B11F49E -:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF -:10474000072E16F4009407D077FD09D00E94B923F4 -:1047500007FC05D03EF4909581959F4F0895709584 -:1047600061957F4F0895EE0FFF1F0590F491E02DA6 -:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8 -:10478000B70710F0A61BB70B881F991F5A95A9F7FA -:1047900080959095BC01CD010895F999FECF92BD09 -:1047A00081BDF89A992780B50895A8E1B0E042E06C -:1047B00050E00C94F523262FF999FECF92BD81BDD0 -:1047C000F89A019700B4021639F01FBA20BD0FB64F -:1047D000F894FA9AF99A0FBE08950196272F0E942D -:1047E000DC230C94DB23DC01CB01FC01F999FECF27 -:1047F00006C0F2BDE1BDF89A319600B40D92415069 -:0A4800005040B8F70895F894FFCF78 -:10480A000220E508730950091C09E8080101C701DB -:10481A0028080A03140A3F4D363975042804F2039E -:10482A00B9034C0365037E039703010203040506DB -:04483A000708090062 -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/jacobono/README.md b/keyboards/ergodox_ez/keymaps/jacobono/README.md deleted file mode 100644 index 48de0509f..000000000 --- a/keyboards/ergodox_ez/keymaps/jacobono/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# Default Layer # - -I'm using the colemak layer -- customized a bit to work a bit better when using spacemacs as my editor. - -![default-layer](img/colemak-default-layer.png) - -## Special Keys ## - -`SC1` => `LGUI + TAB` - -`SC2` => `LGUI + SPACE + TAB` - -`L1` => Switch to QWERTY Layout - -`T(L2)` => Toggle Symbol Layer - -`T(L3)` => Toggle Number and D-Pad Layer - -# QWERTY # - -Nothing special here -- just need this layer tucked away for the `WASD`. Which is literally the only reason I use it. -Just have the same button to toggle back to colemak. - -# Symbol Layer # - -![symbol-layer](img/symbol-layer.png) - -This is just putting matching closing symbols next to each other -- useful when editing lisp. - -# Number and D-Pad Layer # - -Just a basic number layer with a D-PAD on the other side. - -![number-dpad-layer](img/number-dpad-layer.png) diff --git a/keyboards/ergodox_ez/keymaps/jacobono/compiled.hex b/keyboards/ergodox_ez/keymaps/jacobono/compiled.hex deleted file mode 100644 index bfa00ed2e..000000000 --- a/keyboards/ergodox_ez/keymaps/jacobono/compiled.hex +++ /dev/null @@ -1,1179 +0,0 @@ -:100000000C9422030C9466030C9466030C94660310 -:100010000C9466030C9466030C9466030C946603BC -:100020000C9466030C9466030C940A0E0C94DC0E7C -:100030000C9466030C9466030C9466030C9466039C -:100040000C9466030C94E6220C9466030C946603ED -:100050000C9466030C94791C0C9466030C94660350 -:100060000C9466030C9466030C9466030C9466036C -:100070000C9466030C9466030C9466030C9466035C -:100080000C9466030C9466030C9466030C9466034C -:100090000C9466030C9466030C9466030C9466033C -:1000A0000C9466030C9466030C946603490F6B0F63 -:1000B00059106B0F5910B00FD30F591028103B1067 -:1000C0000A130A13391339136F138F13C014C01492 -:1000D0009A13C0144A144A14B114C014C014BA14A8 -:1000E00057145714571457145714571457145714B8 -:1000F00057145714571457145714571457145714A8 -:10010000691476147D1484148E140000F0A201008A -:100110002B002A00E100015400001E00140004001E -:100120001D71010003521F001A0015001B00010081 -:100130002800200009001600060052002C002100B3 -:1001400013001700190002522C0A22000A000700AF -:1001500005000000E3005000010000000100000065 -:1001600065004F00010000002B08000029712300EA -:100170000D000B000E000000E20024000F00110033 -:10018000100002522C0A2500180008003600510009 -:100190002C0026001C000C0037000100280027005E -:1001A000330012003871E60003524C002B004C0063 -:1001B000E500E70000002A002B00E000E10001005C -:1001C00000001E00140004001D7134004D001F00CB -:1001D0001A0016001B00E104E300200008000700DD -:1001E000060050002C0021001500090019000252E1 -:1001F0004A00220017000A00050000002B005000F2 -:1002000001000000E20000004C004F00010000006F -:10021000E6000000E20023001C000B0011000000BB -:100220002971240018000D00100002524B00250017 -:100230000C000E00360051002800260012000F00AE -:1002400037002F00E70027001300334438713000D7 -:100250004E004C003100E400E500C1000000010048 -:10026000010001000100010000003A00010031021C -:100270000100010001003B001F021E0222020100DA -:1002800001003C0025022E022302010001003D0076 -:100290002E002D002102010001003E002D0234023B -:1002A0002402000001000100010000000100000024 -:1002B00001000100010000000100000001003F00FA -:1002C0003502340233000000010040002F022602F4 -:1002D0002F00010001004100300227023000010020 -:1002E00001004200200234003100010001004300FF -:1002F00033023500380001000100440045000100D0 -:1003000001000100000001000100010001000100E6 -:1003100000000100010001000100010001000100D6 -:1003200001005000010001000100010052005100D5 -:10033000010001000100010001004F000100010067 -:1003400001000100010001000100000001000100A6 -:100350000100000001000000010001000100000098 -:10036000010000000100010021022E002402000013 -:1003700001000100240021001E00360001000100E0 -:10038000250022001F002700010001002600230095 -:1003900020003700010001002E022D002502380048 -:1003A0000100010001000100010001000000010046 -:1003B0000100010001000100000001000100010036 -:1003C00001000100010001000100F2000100010034 -:1003D00001000100F000F1000100F4000100010043 -:1003E0000100F3000100F50001000100010001001F -:1003F00001000000010001000100000001000000F8 -:1004000001000100010000000100000001000100E6 -:1004100001000100010000000100010001000100D5 -:100420000100A9000100010001000100AC00AA00C8 -:10043000B600010001000100AB00A80001000100AE -:100440000100010001000100010001000100AE00F7 -:1004500001000100000016034500720067006F00F4 -:1004600044006F007800200045005A000000160389 -:100470004500720067006F0044006F0078002000A4 -:1004800045005A0000000403090409026D0004013C -:1004900000A0FA0904000001030101000921110173 -:1004A0000001223F000705810308000A090401003A -:1004B0000103010200092111010001224D0007057D -:1004C000820308000A090402000103000000092158 -:1004D000110100012236000705830308000A090400 -:1004E000030001030000000921110100012239006D -:1004F000070584031000011201100100000008ED3F -:10050000FE071301000102000105010906A1010512 -:100510000719E029E71500250195087501810205F5 -:100520000819012905950575019102950175039139 -:1005300001050719002977150025019578750181B6 -:1005400002C005010980A101850216010026B7003D -:100550001A01002AB700751095018100C0050C0929 -:1005600001A1018503160100269C021A01002A9CA4 -:1005700002751095018100C005010902A101090160 -:10058000A100050919012905150025019505750129 -:100590008102950175038101050109300931158139 -:1005A000257F95027508810609381581257F9501FB -:1005B00075088106050C0A38021581257F9501759D -:1005C000088106C0C005010906A101050719E02937 -:1005D000E7150025019508750181029501750881CF -:1005E0000105081901290595057501910295017507 -:1005F0000391010507190029FF150025FF950675D0 -:10060000088100C0000000000000000000000001A0 -:100610000204060A0F17202C3A4A5D71879DB3C762 -:10062000DAE9F5FCFFFCF5E9DAC7B39D87715D4AAD -:100630003A2C20170F0A06040201000000000000F7 -:100640000000000011241FBECFEFDAE0DEBFCDBFF7 -:1006500004B603FE24C08091FB019091FC01A0919F -:10066000FD01B091FE018730904BA740B04BB9F42B -:100670001092FB011092FC011092FD011092FE01FC -:1006800014BE84B7877F84BF88E10FB6F894809347 -:100690006000109260000FBEE0E0FFE3099511E0FA -:1006A000A0E0B1E0EAE5F9E402C005900D92A433C0 -:1006B000B107D9F711E0A4E3B1E001C01D92AB3F4F -:1006C000B107E1F70E944E0B0C94AB240C94000090 -:1006D0001092B9008AE08093B800089594EA90934C -:1006E000BC009091BC0097FFFCCF9091B900987F1F -:1006F000983021F0903111F081E008958093BB0093 -:1007000084E88093BC008091BC0087FFFCCF80917F -:10071000B900887F883111F0803471F780E0089546 -:1007200084E98093BC008091BC0084FDFCCF0895D7 -:100730008093BB0084E88093BC008091BC0087FF5D -:10074000FCCF9091B900987F81E0983209F480E065 -:10075000089584E88093BC008091BC0087FFFCCFA3 -:100760008091BB00089580910101811115C080E442 -:100770000E946E038093010181110CC082E10E94EE -:10078000980380930101811105C08FEF0E949803A7 -:10079000809301010E94900384B1807F84B985B168 -:1007A000807F85B98AB1837F8AB98BB1837F8BB90A -:1007B0003E98469808950E946E05809301010E941C -:1007C000B30380B38C7080BB81B3836F81BBA5E31F -:1007D000B1E0E3E4F1E08EE08E0F11921D928E13F2 -:1007E000FCCF0C945805BF92CF92DF92EF92FF920C -:1007F0000F931F93CF93DF9380910101882379F0AA -:10080000809134018F5F80933401811108C00E9470 -:100810006E0580930101811102C00E94000505E36D -:1008200011E0C0E0D0E0DD24D39482E0C82EEE24B5 -:10083000E394F12CC730D10500F5809101018111BD -:1008400064C080E40E946E0380930101811112C094 -:1008500082E10E9498038093010181110BC0C701BE -:100860000C2E01C0880F0A94EAF780950E94980325 -:10087000809301010E94900348C0CA30A1F028F47F -:10088000C83059F0C93061F005C0CC3089F070F043 -:10089000CD3089F0209A289810C0219A29980DC04F -:1008A000229A2A980AC0239A2B9807C0529A01C00C -:1008B000539A5B9802C03E9A469890EA9A95F1F74F -:1008C0009FB1799902C082E001C080E091709D25BE -:1008D000982B7C9902C084E001C080E0892B7D992F -:1008E00002C038E001C030E0832B7E9902C020E1D5 -:1008F00001C020E0822B9FB19095991F9927991FE5 -:100900009295990F907E892B0FC0809101018111E2 -:1009100049C080E40E946E0380930101882379F12D -:10092000B12C0E9490038B2DF8019081981719F03B -:100930008083C09200010E94B30321960F5F1F4F76 -:10094000CE30D10509F076CF80910001882361F186 -:10095000815080930001882339F08FE99FE001974F -:10096000F1F700C0000020C0A3E4B1E0E5E3F1E04E -:10097000CF01825F91919D938E13FCCF15C083E1CF -:100980000E949803809301018111CACF81E40E94E3 -:100990006E03809301018111C3CF0E94A903B82E79 -:1009A000B094BFCF80E0C0CF0E94FE0481E0DF9111 -:1009B000CF911F910F91FF90EF90DF90CF90BF905C -:1009C0000895E82FF0E0ED5BFE4F808108950895D3 -:1009D0000F931F93CF93DF93C3E4D1E010E00C2F6C -:1009E000025F899190E00E949F1B180F0C13F9CFB2 -:1009F000812FDF91CF911F910F9108950C94CE0517 -:100A000056985E9825982D9826982E9827982F9876 -:100A10008FEF90E0909389008093880090938B00F3 -:100A200080938A0090938D0080938C00259A2D9A54 -:100A30002FEF80E792E0215080409040E1F700C026 -:100A40000000269A2E9A2FEF80E792E021508040F6 -:100A50009040E1F700C00000279A2F9A2FEF80E71F -:100A600092E0215080409040E1F700C000002598BE -:100A70002D982FEF80E792E0215080409040E1F7E1 -:100A800000C0000026982E982FEF80E792E02150BA -:100A900080409040E1F700C0000027982F985698BA -:100AA0005E9825982D9826982E9827982F98089527 -:100AB00089EA8093800089E08093810024982C98B3 -:100AC0003F988AB18F748AB96E98479A8BB1806BC0 -:100AD0008BB9769A0E9400050C94CD0580E2809334 -:100AE00001018091510181110EC00E94680381E0D3 -:100AF000809351012FEF83ED90E32150804090408F -:100B0000E1F700C0000080E40E946E0380930101C1 -:100B100081112EC00E94980380930101811128C089 -:100B20000E94980380930101811122C08FE30E94EB -:100B300098038093010181111BC00E94900380E4FF -:100B40000E946E0380930101811112C08CE00E940B -:100B500098038093010181110BC00E949803809338 -:100B60000101811105C08FE30E9498038093010168 -:100B70000E94900380910101089561110BC0FC0156 -:100B80008281882321F085EE0E94AE1103C085EE9C -:100B90000E94761280E090E0089508956091BD0172 -:100BA0007091BE018091BF019091C0010E94AB1B6A -:100BB00056985E9825982D9826982E9827982F98C5 -:100BC000813019F0823021F00895259A2D9A0895E8 -:100BD000269A2E9A089581E0089581E008950C9454 -:100BE000ED0508950F931F93CF93DF938C01FC01C4 -:100BF000C081D181CE010E94241ABE010E949B06B1 -:100C0000EC01B8010E94EF05882309F48DC0F801BA -:100C10008281882309F44AC080915D0181111FC03F -:100C2000C431F0E5DF0709F051C00E94F10581E011 -:100C300080935D010E94431C90935C0180935B0153 -:100C400010925401109256011092550110925801C1 -:100C50001092570110925A011092590165C080916B -:100C60005B0190915C010E944F1C883C910570F4DF -:100C700080915401E82FF0E0EE0FFF1FEB5AFE4F7A -:100C8000D183C0838F5F809354014EC0C43880E508 -:100C9000D80721F0C538D04501F13AC0F80182816A -:100CA000882341F01092520182E01EC0C438E0E572 -:100CB000DE0759F580915201811106C086E20E943B -:100CC000AE1186E20E94761282E01CC0C438F0E5C4 -:100CD000DF0741F3C538D045D9F4F8018281882374 -:100CE00031F01092530180E20E94C5121DC0809124 -:100CF0005301811106C087E20E94AE1187E20E9473 -:100D0000761280E20E94CC120FC0C538D04529F37C -:100D100081E08093520180935301C801DF91CF910C -:100D20001F910F910C94EB0580E0DF91CF911F9103 -:100D30000F910895089596E0799FF001112494E5AC -:100D4000899FE00DF11D1124E60FF11DEE0FFF1F2D -:100D5000E25FFE4F859194910895880F991FFC01E1 -:100D6000E657F040859194910895880F991FFC01F2 -:100D7000E65FFE4F8591949108950F931F93CF9353 -:100D8000DF93EC01811520E3920750F5C11580E255 -:100D9000D80708F0C3C0CB3BD10590F4C83AD105C1 -:100DA00008F06AC0C53AD10508F05BC0C430D1056F -:100DB00008F0D0C1219709F0CAC101E010E00AC2D1 -:100DC000CF3FD10511F008F0C5C1C03FD10508F0F3 -:100DD000A2C0CE01805E9109089708F4BBC1B7C1DB -:100DE000C13090E5D90709F4A2C020F5C0318FE4E5 -:100DF000D80770F4C11590E4D90708F094C0C11564 -:100E000021E3D20708F0A3C1DD278E01106CE2C1F7 -:100E1000C115D04509F09BC10E942B158FEF94E3BB -:100E20002CE0815090402040E1F700C000000E947B -:100E30009E1CD0C1C11597E5D90758F4C03121E5F2 -:100E4000D20708F01CC1C43180E5D80708F475C08A -:100E50007EC1CE0190578115904108F078C1DF70B6 -:100E600073C1C53AD10509F477C1C63AD10509F075 -:100E700076C102E810E4AEC1C83AD10509F472C1E6 -:100E8000C93AD10509F471C1CA3AD10509F470C152 -:100E9000CB3AD10509F46FC1CC3AD10509F46EC142 -:100EA000CD3AD10509F46DC1C03BD10509F46CC13F -:100EB000CE3AD10509F46BC1CF3AD10509F46AC124 -:100EC000C13BD10509F469C1C23BD10509F468C130 -:100ED000C33BD10509F467C1C43BD10509F466C120 -:100EE000C53BD10509F465C1C63BD10509F464C110 -:100EF000C73BD10509F463C1C83BD10509F462C100 -:100F0000C93BD10509F461C1CA3BD10509F460C1EF -:100F100000E014E45FC18E0110655CC1CE019F70DA -:100F20000E94B50658C1DF708E01106A53C18091CE -:100F3000DA0181608093DA014DC10E94431E811164 -:100F400002C00E94291E0E94601E90E09093FB0147 -:100F50008093FA01C23080E5D80721F48091FA012C -:100F6000816086C0C43090E5D90721F48091FA01F0 -:100F700082607EC0C63020E5D20721F48091FA015C -:100F8000846076C0C83080E5D80719F48091FA01F2 -:100F900027C0CA3090E5D90721F48091FA01806119 -:100FA00067C0CC3020E5D20721F48091FA0180623D -:100FB0005FC0CE3080E5D80721F48091FA018064CB -:100FC00057C0C03190E5D90721F48091FA018068BB -:100FD0004FC0C23120E5D20729F48091FA01846024 -:100FE000886046C0C33080E5D80721F48091FA01BB -:100FF0008E7F3EC0C53090E5D90721F48091FA017B -:101000008D7F36C0C73020E5D20721F48091FA01E8 -:101010008B7F2EC0C93080E5D80719F48091FA0182 -:1010200026C0CB3090E5D90721F48091FA018F7E5C -:101030001FC0CD3020E5D20721F48091FA018F7DC9 -:1010400017C0CF3080E5D80721F48091FA018F7B5B -:101050000FC0C13190E5D90721F48091FA018F7753 -:1010600007C0C331D04531F48091FA018B7F877F6F -:101070008093FA018091FA010E94641EABC08D2F0B -:1010800099278F70992781309105D9F49E0123709B -:10109000332702C0880F991F2A95E2F79C688E01BA -:1010A00044E0000F111F4A95E1F700271370802BD1 -:1010B000912B53E0CC0FDD1F5A95E1F7C076DD2769 -:1010C0002FC08230910531F4DC2FCC278E01016FC7 -:1010D000106A80C08330910569F4CE01837099272E -:1010E00001E010E002C0000F111F8A95E2F7C8016D -:1010F0009C680FC084309105B9F4CE0183709927A4 -:1011000001E010E002C0000F111F8A95E2F7C8014C -:101110009A6823E0CC0FDD1F2A95E1F7C07ED770D7 -:101120008C010C2B1D2B56C08530910531F4DC2F22 -:10113000CC278E01046F106A4DC0069709F04AC093 -:10114000CF71DD27DC2FCC278E01106243C000E079 -:1011500010E040C08E013EC001E810E43BC003E84F -:1011600010E438C002EE14E435C009EE14E432C0D5 -:101170000AEE14E42FC005EB14E42CC006EB14E4D3 -:1011800029C007EB14E426C00CEC14E423C00DECDA -:1011900014E420C003E815E41DC00AE815E41AC0F1 -:1011A00002E915E417C004E915E414C001E216E4ED -:1011B00011C003E216E40EC004E216E40BC005E21F -:1011C00016E408C006E216E405C007E216E402C011 -:1011D0000AE216E4C801DF91CF911F910F910895A3 -:1011E00096E0799FF001112494E5899FE00DF11DAF -:1011F0001124E60FF11DEE0FFF1FE25FFE4F8591F8 -:101200009491803E9105E0F4803C910558F581333E -:10121000910509F46FC048F48932910509F463C05F -:101220008A32910509F46DC072C089339105E9F0E5 -:1012300082389105D1F08533910509F44DC067C01E -:10124000833E910581F138F4803E9105B9F0823EEC -:101250009105D9F05CC0863E910561F1873E91050C -:10126000A1F155C00E94AD0608952091FA0120FD1C -:1012700002C021FF4CC080EE90E049C08091FA018D -:1012800080FFF9CF89E390E042C08091FA0182FFAC -:101290000EC08091FA0184FF03C080E090E037C067 -:1012A00083EE90E034C08091FA0182FFF2CF82EEAB -:1012B00090E02DC08091FA0183FF0BC08091FA016C -:1012C00084FDEBCF87EE90E022C08091FA0183FF8E -:1012D000F5CF86EE90E01BC08091FA0185FF07C034 -:1012E00089E290E014C08091FA0185FFF9CF85E38F -:1012F00090E00DC08091FA0186FF07C08AE290E07D -:1013000006C08091FA0186FFF9CF81E390E00E9448 -:10131000BD06089508950C948A0980916E01089580 -:10132000CF93DF9300D01F92CDB7DEB79C018091A1 -:10133000F101843019F593E099833B832A839093DC -:10134000E9008FEF9091E800815095FD06C095ED82 -:101350009A95F1F700008111F5CF8091E80085FFA3 -:101360000DC040E050E063E070E0CE0101960E94C5 -:10137000FA0B8091E8008E778093E8000F900F9031 -:101380000F90DF91CF910895CF93DF9300D01F92FC -:10139000CDB7DEB72091F101243021F522E0298379 -:1013A0009B838A8383E08093E9008FEF9091E8002C -:1013B000815095FD06C095ED9A95F1F700008111D9 -:1013C000F5CF8091E80085FF0DC040E050E063E07C -:1013D00070E0CE0101960E94FA0B8091E8008E77B2 -:1013E0008093E8000F900F900F90DF91CF910895B8 -:1013F0002091F1012430F1F422E02093E9002FEF55 -:101400003091E800215035FD06C035ED3A95F1F7F1 -:1014100000002111F5CF2091E80025FF0BC040E02E -:1014200050E065E070E00E94FA0B8091E8008E7752 -:101430008093E8000895CF93DF93EC019091F10140 -:10144000943009F046C080910C018823D9F0809136 -:101450000D018823B9F09093E9008FEF9091E80097 -:10146000815095FD06C095E19A95F1F70000811134 -:10147000F5CF8091E80085FF2CC040E050E060E1AE -:1014800070E017C081E08093E9008FEF9091E80051 -:10149000815095FD06C095ED9A95F1F700008111F8 -:1014A000F5CF8091E80085FF14C040E050E068E08F -:1014B00070E0CE010E94FA0B8091E8008E77809355 -:1014C000E80080E1FE01AEE5B1E001900D928A9561 -:1014D000E1F7DF91CF9108958091F001811109C06A -:1014E0000E948F0D0E94EC0D8091E2008460809339 -:1014F000E20008951092F001089508950C94D3220B -:101500000E94341C0E94D9220E9492100C948B09D4 -:1015100042E061EC81E00E94090D42E061EC82E072 -:101520000E94090D42E061EC83E00E94090D42E156 -:1015300061EC84E00C94090D8091F301833009F48F -:1015400055C030F4813071F0823009F48EC00895B6 -:101550008A3009F47AC08B3009F460C0893009F010 -:101560009CC020C08091F201813A09F096C0809120 -:10157000E800877F8093E8008091F6019091F70161 -:10158000892B21F460E18EE591E003C060E080E00A -:1015900090E070E00E94450C8091E8008B7780938A -:1015A000E80008958091F201813209F076C08091BF -:1015B000F6019091F701009719F0039709F06DC0BB -:1015C0008091E800877F8093E8008091E80082FDA9 -:1015D00005C08091F1018111F8CF5FC08091F100C9 -:1015E00080936E018091E8008B7753C08091F20167 -:1015F000813A09F052C08091F6019091F701892B50 -:1016000009F04BC08091E800877F8093E8008091CB -:10161000E80080FFFCCF80910C0136C08091F20180 -:101620008132D9F58091F6019091F701892BA9F5C6 -:101630008091E800877F8093E8000E943E0D8091B2 -:10164000F40180930C010C942B158091F2018132EE -:1016500021F58091E800877F8093E8000E943E0D8D -:101660008091F50180936F0108958091F201813A94 -:10167000A1F48091E800877F8093E8008091E800E2 -:1016800080FFFCCF80916F018093F1008091E80092 -:101690008E778093E8000C943E0D089584B7877F81 -:1016A00084BF88E10FB6F8948093600010926000C8 -:1016B0000FBE90E080E80FB6F8948093610090939D -:1016C00061000FBE0E94E1100E948F0D0E94EC0D80 -:1016D0008091E20084608093E20078940E9472100E -:1016E0000E94E31082E091E00E948D100E94C122CE -:1016F0008091F101853069F40E94FB1B8091EF011C -:101700008823B1F30E94261C882391F30E94E40BE6 -:10171000EFCF0E94E910ECCF292F3327233031057A -:10172000C9F064F42130310581F02230310509F02F -:1017300043C08DE690E02AE834E042C02132310512 -:10174000F1F02232310541F137C082E190E027EF1C -:1017500034E036C099278130910541F082309105FF -:1017600041F0892B49F5E6E8F4E005C0EEE6F4E047 -:1017700002C0E6E5F4E0849190E09F0121C064306E -:10178000D8F4E62FF0E0EE0FFF1FEE5DFE4F208154 -:10179000318189E090E014C0643070F470E0FB01A6 -:1017A000EE0FFF1FE65EFE4F20813181FB01EA5EF6 -:1017B000FE4F808190E004C080E090E020E030E0C7 -:1017C000FA0131832083089580E189BD82E189BDDA -:1017D00009B400FEFDCF8091D8008F7D8093D800A2 -:1017E0008091E00082608093E0008091E00081FDC4 -:1017F000FCCF0895CF92DF92EF92FF920F931F9349 -:10180000CF93DF93EC018B016A010E945D0D811182 -:1018100033C0C114D10439F0F60180819181081BD5 -:10182000190BC80FD91FE12CF12C0115110519F165 -:101830008091E80085FD16C08091E8008E77809346 -:10184000E800C114D10449F0F60180819181E80ECD -:10185000F91EF182E08285E00FC00E945D0D8823B1 -:1018600021F30AC089918093F10001501109FFEF23 -:10187000EF1AFF0ADACF80E0DF91CF911F910F912D -:10188000FF90EF90DF90CF9008952091F801309174 -:10189000F9012617370748F06115710539F42091D1 -:1018A000E8002E772093E80001C0B90140E06115FF -:1018B0007105A9F12091F101222309F443C02530DB -:1018C00009F442C02091E80023FD40C02091E800C7 -:1018D00022FD32C02091E80020FFE9CF4091F300C3 -:1018E0002091F20030E0342BFC01CF01611571052D -:1018F00059F02830310540F481918093F100615016 -:1019000071092F5F3F4FF1CF41E02830310509F0D9 -:1019100040E02091E8002E772093E800C8CF4111E5 -:10192000C9CF0AC08091F101882361F0853061F050 -:101930008091E80083FD0AC08091E80082FFF2CF29 -:1019400080E0089582E0089583E0089581E008959D -:101950002091F8013091F9012617370748F06115F9 -:10196000710539F42091E8002E772093E80001C03A -:10197000B901FC0120E06115710591F18091F1013F -:10198000882309F440C0853009F43FC08091E80005 -:1019900083FD3DC08091E80082FD2FC08091E8006A -:1019A00080FFE9CF2091F3008091F20090E0922B2C -:1019B0006115710559F08830910540F42491209308 -:1019C000F1003196615071090196F2CF21E008973C -:1019D00009F020E08091E8008E778093E800CBCF7B -:1019E0002111CCCF0AC08091F101882361F08530AC -:1019F00061F08091E80083FD0AC08091E80082FFD9 -:101A0000F2CF80E0089582E0089583E0089581E0B8 -:101A10000895982F973058F59093E900981739F06A -:101A20007091EC002091ED005091F00003C0242F44 -:101A3000762F50E021FF19C03091EB003E7F3093AC -:101A4000EB003091ED003D7F3093ED003091EB00E5 -:101A500031603093EB007093EC002093ED005093D5 -:101A6000F0002091EE0027FF07C09F5FD3CF8F705B -:101A70008093E90081E0089580E008958091F2016B -:101A800087FF11C08091E80082FD05C08091F101BF -:101A90008111F8CF11C08091E8008B770BC0809145 -:101AA000F101882349F08091E80080FFF8CF809110 -:101AB000E8008E778093E80008952091E40030914B -:101AC000E50095E64091EC00842F817040FF22C034 -:101AD0008091E80080FD1CC08091F101882391F085 -:101AE000853091F08091EB0085FD10C04091E400BD -:101AF0005091E5004217530729F39A01915011F7CD -:101B000084E0089582E0089583E0089581E00895D7 -:101B100080E008954091E80042FFDECF08950E94E2 -:101B2000FD0D0E94050EE0EEF0E080818160808373 -:101B3000E8EDF0E080818F77808319BCA7EDB0E0FD -:101B40008C918E7F8C9380818F7E80831092F001A8 -:101B500008950F931F93CF93DF930E94FD0D0E9472 -:101B6000050EC8EDD0E088818F77888388818068F2 -:101B7000888388818F7D888319BC1092F10110922F -:101B8000ED011092EF011092EE0100EE10E0F8016D -:101B900080818B7F808388818160888342E060E0E0 -:101BA00080E00E94090DE1EEF0E080818E7F80836D -:101BB000E2EEF0E0808181608083808188608083B4 -:101BC000F80180818E7F8083888180618883DF91A6 -:101BD000CF911F910F910895E8EDF0E080818F7E05 -:101BE0008083E7EDF0E080818160808384E082BFC4 -:101BF00081E08093F0010C94A90DE8EDF0E0808184 -:101C00008E7F80831092E20008951092DA00109285 -:101C1000E10008951F920F920FB60F9211242F9397 -:101C20003F934F935F936F937F938F939F93AF9364 -:101C3000BF93EF93FF938091E10082FF0BC08091EF -:101C4000E20082FF07C08091E1008B7F8093E1007A -:101C50000E9471108091DA0080FF1FC08091D8002F -:101C600080FF1BC08091DA008E7F8093DA00809124 -:101C7000D90080FF0DC080E189BD82E189BD09B432 -:101C800000FEFDCF81E08093F1010E946C0A05C047 -:101C900019BC1092F1010E947A0A8091E10080FF44 -:101CA00019C08091E20080FF15C08091E2008E7F14 -:101CB0008093E2008091E20080618093E200809155 -:101CC000D80080628093D80019BC85E08093F10130 -:101CD0000E947E0A8091E10084FF30C08091E20082 -:101CE00084FF2CC080E189BD82E189BD09B400FE7A -:101CF000FDCF8091D8008F7D8093D8008091E10046 -:101D00008F7E8093E1008091E2008F7E8093E200DD -:101D10008091E20081608093E2008091ED01882350 -:101D200011F084E007C08091E30087FD02C081E0EC -:101D300001C083E08093F1010E94800A8091E1005C -:101D400083FF29C08091E20083FF25C08091E100DC -:101D5000877F8093E10082E08093F1011092ED0192 -:101D60008091E1008E7F8093E1008091E2008E7F80 -:101D70008093E2008091E20080618093E20042E083 -:101D800060E080E00E94090D8091F00088608093FF -:101D9000F0000E947D0AFF91EF91BF91AF919F915A -:101DA0008F917F916F915F914F913F912F910F9004 -:101DB0000FBE0F901F9018951F920F920FB60F92A3 -:101DC00011242F933F934F935F936F937F938F9340 -:101DD0009F93AF93BF93CF93DF93EF93FF93C09104 -:101DE000E900CF708091EC00D82FD17080FDD0E851 -:101DF0001092E9008091F000877F8093F000789442 -:101E00000E94200F1092E9008091F000886080937A -:101E1000F000CD2BCF70C093E900FF91EF91DF91DF -:101E2000CF91BF91AF919F918F917F916F915F9172 -:101E30004F913F912F910F900FBE0F901F901895CB -:101E40001F93CF93DF93CDB7DEB7AA970FB6F89461 -:101E5000DEBF0FBECDBFE2EFF1E088E08E0F9091C4 -:101E6000F10091938E13FBCF0E949C0A8091E800B1 -:101E700083FF1FC18091F2019091F301492F50E03F -:101E80004A30510508F015C1FA01EA5AFF4F0C9487 -:101E90005B24803881F0823809F00BC18091F60113 -:101EA0008F708093E9008091EB0085FB882780F993 -:101EB0001092E90006C08091EE019091EF0191111E -:101EC00082609091E800977F9093E8008093F10002 -:101ED0001092F100C8C0282F2D7F09F0EAC0882396 -:101EE00019F0823061F0E5C08091F401813009F091 -:101EF000E0C0933009F080E08093EF012BC0809127 -:101F0000F401811127C08091F6018F7009F4D1C0CE -:101F10008093E9002091EB0020FF1CC0933021F456 -:101F20008091EB00806214C09091EB0090619093DF -:101F3000EB0021E030E0A90102C0440F551F8A9553 -:101F4000E2F74093EA001092EA008091EB0088608B -:101F50008093EB001092E9008091E800877F86C0B3 -:101F60008111A7C01091F4011F778091E300807860 -:101F7000812B8093E3008091E800877F8093E800C5 -:101F80000E943E0D8091E80080FFFCCF8091E3002D -:101F900080688093E300111102C082E001C083E0F9 -:101FA0008093F10186C08058823008F082C0809111 -:101FB000F4019091F5018C3D53E0950779F583E0AC -:101FC0008A838AE289834FB7F894DE01139620E072 -:101FD0003EE051E2E32FF0E050935700E49120FF00 -:101FE00003C0E295EF703F5FEF708E2F90E0EA3014 -:101FF00010F0C79601C0C0968D939D932F5F24313A -:1020000049F74FBF8091E800877F8093E8006AE23C -:1020100070E0CE0101960E94450C14C0AE014F5FE6 -:102020005F4F6091F6010E948C0BBC01009709F490 -:1020300040C09091E800977F9093E80089819A8151 -:102040000E94A80C8091E8008B778093E80031C053 -:10205000803879F58091E800877F8093E80080914F -:10206000ED018093F1008091E8008E778093E80085 -:102070000E943E0D1EC081111CC09091F40192304F -:10208000C0F48091E800877F8093E8009093ED0191 -:102090000E943E0D8091ED01811106C08091E30008 -:1020A00087FD02C081E001C084E08093F1010E94BD -:1020B000880A8091E80083FF0AC08091E800877F4A -:1020C0008093E8008091EB0080628093EB00AA96F9 -:1020D0000FB6F894DEBF0FBECDBFDF91CF911F9139 -:1020E00008950895CF938091F1018823A1F0C091C4 -:1020F000E900CF709091EC00892F817090FD80E80D -:10210000C82B1092E9008091E80083FD0E94200F07 -:10211000CF70C093E900CF9108959093750180939B -:1021200074010895E0917401F0917501309721F0E8 -:102130000190F081E02D099480E00895E091740110 -:10214000F0917501309721F00280F381E02D099420 -:102150000895E0917401F0917501309721F00480A9 -:10216000F581E02D09940895209172013091730159 -:102170008217930771F09093730180937201E0913D -:102180007401F0917501309721F00680F781E02D00 -:10219000099408952091700130917101821793077D -:1021A00071F09093710180937001E0917401F0914E -:1021B0007501309721F00084F185E02D0994089590 -:1021C00008950C94E0100E943A1C0E94DB030C94CA -:1021D000FC1C9F92AF92BF92CF92DF92EF92FF9240 -:1021E0000F931F93CF93DF9300D000D000D0CDB7D3 -:1021F000DEB70E94F3030DE010E0AA24A394B12CF3 -:10220000902E802F0E94E104980129583E4F6901C9 -:10221000F901F080F826A1F40150110988F78FEF39 -:1022200089838A831B820E94431C8160782F9D834F -:102230008C8349815A816B818D810E9480112FC0CE -:102240009091DA0191FF04C08E830E94E7048E8191 -:1022500025E030E0A501022E01C0440F0A94EAF700 -:10226000E42E4F21C1F029839A828E2191E009F456 -:1022700090E09B830E94431C8160782F9D838C8318 -:1022800049815A816B818D810E948011F601808184 -:10229000E826E08204C021503109E0F6BDCF0E945B -:1022A000E31F109176010E9492101817B9F00E9456 -:1022B00092108093760126960FB6F894DEBF0FBE7B -:1022C000CDBFDF91CF911F910F91FF90EF90DF90E5 -:1022D000CF90BF90AF909F900C948B0926960FB62D -:1022E000F894DEBF0FBECDBFDF91CF911F910F914C -:1022F000FF90EF90DF90CF90BF90AF909F900895A8 -:10230000CF93DF93CDB7DEB72B970FB6F894DEBF30 -:102310000FBECDBF4F83588769877A878B87DE01D1 -:10232000119686E0FD0111928A95E9F785E0FE019C -:10233000379601900D928A95E1F749815A816B8118 -:102340007C818D819E810E94C9172B960FB6F894CF -:10235000DEBF0FBECDBFDF91CF910895CF9388230D -:1023600009F4C2C0C82F823859F40E94921081FD2E -:10237000BBC089E30E94A31A0E94701B89E30CC0B2 -:10238000833879F40E94921080FDAEC083E50E94EC -:10239000A31A0E94701B83E50E94E51ACF910C944A -:1023A000701B843859F40E94921082FD9DC087E40E -:1023B0000E94A31A0E94701B87E4EECF8CEF8C0F53 -:1023C000813A48F48C2F0E94262281118DC08C2FD7 -:1023D0000E94A31AE3CF80E28C0F883048F4C770C4 -:1023E00081E001C0880FCA95EAF70E94291BD6CF69 -:1023F0008BE58C0F833078F4C53A29F0C63A31F07A -:1024000083E890E005C081E890E002C082E890E0B7 -:10241000CF910C94B41088E58C0F833108F064C020 -:10242000C83A39F1C93A41F1CA3A49F1CB3A51F1C6 -:10243000CC3A59F1CD3A61F1C03B69F1CE3A71F134 -:10244000CF3A79F1C13B81F1C23B89F1C33B91F1B4 -:10245000C43B99F1C53BA1F1C63BA9F1C73BB1F122 -:10246000C83BB9F1C93BC1F1CA3BC9F180E090E07A -:1024700038C082EE90E035C089EE90E032C08AEE3E -:1024800090E02FC085EB90E02CC086EB90E029C057 -:1024900087EB90E026C08CEC90E023C08DEC90E0C0 -:1024A00020C083E891E01DC08AE891E01AC082E96B -:1024B00091E017C084E991E014C081E292E011C07C -:1024C00083E292E00EC084E292E00BC085E292E0EB -:1024D00008C086E292E005C087E292E002C08AE28C -:1024E00092E0CF910C94CA10CF910895882309F4FB -:1024F0004BC0823859F40E94921081FF45C089E395 -:102500000E94A31A0E94701B89E30CC0833871F4E7 -:102510000E94921080FF38C083E50E94A31A0E9497 -:10252000701B83E50E94E51A0C94701B843859F4E3 -:102530000E94921082FF28C087E40E94A31A0E9482 -:10254000701B87E4EFCF9CEF980F913A58F390E21D -:10255000980F983050F4877091E001C0990F8A95D8 -:10256000EAF7892F0E942F1BDFCF9BE5980F93304E -:1025700020F480E090E00C94B410885A833120F469 -:1025800080E090E00C94CA100895882321F00E9406 -:10259000291B0C94701B0895882321F00E942F1B87 -:1025A0000C94701B08957F928F929F92AF92BF926E -:1025B000CF92DF92EF92FF920F931F93CF93DF930F -:1025C0001F92CDB7DEB77C01C62E772EFC010581A8 -:1025D00002950F70128111110E94461B0E949C1AD5 -:1025E000882379F0112369F080E28C0D883048F05F -:1025F00082E00E94851A0E949C1A91E0D82ED9266A -:1026000001C0D12CE72DE295EF70F0E0E05AFF4FCA -:102610000C945B24872D807F072D0F70882311F089 -:102620000295007F112389F0002309F490C180E214 -:102630008C0D883020F4802F0E94291B03C0802F2E -:102640000E94391B0E94701B82C18C2D0E94761241 -:10265000002309F495C180E28C0D883020F4802F8E -:102660000E942F1B03C0802F0E943F1B0E94701BE3 -:1026700087C1972D907F872D8F70903211F08295B2 -:10268000807FCC2021F0F1E0CF16B1F01EC01123E5 -:1026900049F0002309F414C1013009F011C10E946E -:1026A000591B6EC1002319F0013009F469C18983F7 -:1026B0000E945C1B89810AC1112321F0023008F0BD -:1026C0005FC1FEC001115CC101C1112321F00023D3 -:1026D00009F4F6C03CC1002309F4F8C03EC1872DBF -:1026E00086958695837090E0009719F0019761F0C8 -:1026F00047C1112321F08C2D972D937002C080E0EB -:1027000090E00E94B4103CC1112321F08C2D972D34 -:10271000937002C080E090E00E94CA1031C18C2DFD -:10272000112319F00E94EB1E02C00E94531F0E9449 -:10273000D81F26C1872D837009F052C0111120C106 -:102740008C2D829586958770880F880F9C2D9F70A1 -:10275000892E912CA12CB12C082E04C0880C991C18 -:10276000AA1CBB1C0A94D2F7C4FE14C00FE010E0F0 -:1027700020E030E0B901A80104C0440F551F661FD6 -:10278000771F8A95D2F7CB01BA0160957095809535 -:10279000909503C060E070E0CB01272D269526952B -:1027A000237030E02230310569F02330310589F0A3 -:1027B000682979298A299B292130310571F00E94E5 -:1027C0001119DEC0682979298A299B290E942D19AF -:1027D000D7C00E941119C501B4010E94F518D0C0DC -:1027E000112319F0872D817001C08695882309F483 -:1027F000C7C08C2D829586958770880F880F9C2D79 -:102800009F70892E912CA12CB12C082E04C0880C0D -:10281000991CAA1CBB1C0A94D2F7C4FE14C00FE07A -:1028200010E020E030E0B901A80104C0440F551FBA -:10283000661F771F8A95D2F7CB01BA016095709514 -:102840008095909503C060E070E0CB01272D269520 -:1028500026952370422F50E04230510569F04330F5 -:10286000510589F0682979298A299B294130510528 -:1028700071F00E94EB1984C0682979298A299B2963 -:102880000E94071A7DC00E94EB19C501B4010E9485 -:10289000CF1976C08C2D90E0FC01E05EF109E531A6 -:1028A000F10508F050C0E059FF4F0C945B240C2D4B -:1028B0000F70872D8F71112331F00E946819802FBE -:1028C0000E94C5125DC00E948919802F0E94CC12FF -:1028D00057C0112339F0011153C0872D8F710E9409 -:1028E000AE194EC0023008F04BC0F7CF112339F0BB -:1028F000872D8F710E94681943C01123C9F3872D5A -:102900008F710E9489193CC0112329F0872D8F7186 -:102910000E94531935C00E94491932C0112351F049 -:10292000172D1F71812F0E94681963E0812F0E946B -:102930007C1A26C081E00E94851A023008F182E0EC -:102940000E94851A1DC0112331F0002389F28C2DBD -:102950000E94AE1115C0002391F28C2D0E947612B8 -:102960000FC0472D4F706C2DC7010E94BD050E94FE -:102970006D1806C0472D4F706C2DC7010E949A0636 -:10298000DD20F9F00E94781A80FD1BC0F701128249 -:102990000E94721A0E946819C7010E94F0140E94D6 -:1029A000721A0F90DF91CF911F910F91FF90EF90CE -:1029B000DF90CF90BF90AF909F908F907F900C94BE -:1029C00089190F90DF91CF911F910F91FF90EF9098 -:1029D000DF90CF90BF90AF909F908F907F900895A1 -:1029E0000F931F93CF93DF93EC01888199812B8103 -:1029F0003C81232BB9F09F3F11F48F3F99F0CE011A -:102A00000E94F205882371F0688179818A810E9491 -:102A10006E1A8C010E94231A0E94EA18B801CE0196 -:102A20000E94D312DF91CF911F910F9108950E94C0 -:102A3000461B0E94561B0E941B1B0E94701B0E947B -:102A400089200E94D81F80E090E00E94B41080E0AE -:102A500090E00C94CA100E94361B0C9417150E942B -:102A6000631A292F22952F7030E02C3031054CF459 -:102A70002A3031056CF42250310922303105A8F496 -:102A800007C02C30310569F02F30310551F00DC0F1 -:102A9000803F69F018F4803E40F409C0843F29F477 -:102AA00006C093FB882780F9089580E0089581E0AF -:102AB0000895CF93DF9300D000D01F92CDB7DEB73B -:102AC0000F900F900F900F900F90DF91CF9108957E -:102AD000CF93DF9300D000D000D0CDB7DEB72696DD -:102AE0000FB6F894DEBF0FBECDBFDF91CF91089532 -:102AF0001F93CF93DF93C091850116E080918601EB -:102B0000C81799F0D0E01C9FF0011D9FF00D112413 -:102B1000E957FE4F408151816281738184819581A3 -:102B20000E9468152196C770E9CFDF91CF911F9160 -:102B300008954091B7015091B8016091B901709129 -:102B4000BA018091BB019091BC010C9468158091F1 -:102B5000BC0182958F7009F054C08091B90188231F -:102B600009F44FC080918501A09186016091B70161 -:102B70007091B8014091BA015091BB01B6E08A173B -:102B800009F43FC090E041155105C1F17F3F11F4B8 -:102B90006F3FA1F1B89FF001B99FF00D1124E957E3 -:102BA000FE4F218172132AC02081621327C0228127 -:102BB000211124C0238134812417350710F42150BA -:102BC0003109241B350B283C3105C0F42091BC0190 -:102BD0002F7020612093BC0126E0289FF001299FDF -:102BE000F00D1124E457FE4F80818F708061808347 -:102BF00087EB91E00E94F0140C9478150196877091 -:102C0000BECF0895CF92DF92EF92FF920F931F9362 -:102C1000CF93DF93CDB7DEB762970FB6F894DEBFE0 -:102C20000FBECDBF8C0185E0F801DE011D9601903D -:102C30000D928A95E1F7D8014C9111965C9111970C -:102C400012966C9112971396CD90DC901497309158 -:102C5000B7017091B8018091BA019091BB010097C2 -:102C600009F46BC17F3F19F43F3F09F466C1E0905E -:102C7000B901EE2009F4C0C02091BC01C816D906E4 -:102C800028F0F601E81BF90BCF0104C08095909560 -:102C90008C0D9D1DFF24F394883C910578F0F12C58 -:102CA000207F09F0C6C07C2DD98AC88A89890E94F4 -:102CB000591587EB91E00E94F014B1C0822F807FFC -:102CC00009F046C0751314C0341312C0611110C04E -:102CD0002F7020612093BC010E94991587EB91E031 -:102CE0000E94F0148091BC01D80115968C932EC0DF -:102CF000CD2819F15F3F11F44F3FF9F0F62E611125 -:102D00001CC0809185012091860136E0821709F46C -:102D10005AC090E0389FF001399FF00D1124E95717 -:102D2000FE4F7181571306C07081471303C0728133 -:102D3000711103C001968770E9CFF62E662309F45E -:102D400018C18091BC0181608093BC01F12C11C13C -:102D5000751308C0341306C0611104C08091BC0112 -:102D6000D801C3C04D875E878D859E856A8B0E9482 -:102D70002F156A898823E1F16623D1F12091BC01E6 -:102D8000822F82958F7090E0029774F08091B70146 -:102D90009091B80198878F831986DB86CA862C8725 -:102DA000CE0107960E94F01486E0F801A7EBB1E08F -:102DB00001900D928A95E1F70E94A7150E9499153E -:102DC000FF24F394D6C04D875E878D859E850E9433 -:102DD000631A292F22952F7030E0223031050CF034 -:102DE000BCC09F7009F0B6C0805E883008F4C1C0D6 -:102DF000C8010E94F014E4CFC816D90608F453C0E5 -:102E0000F601E81BF90BCF01883C910508F450C08E -:102E1000F12C7C2DD98AC88A89890E945915E7EB43 -:102E2000F1E086E0DF011D928A95E9F70E9499158D -:102E3000A0C0751314C0341312C0611110C080916A -:102E4000BC01F8018583C8010E94F01486E0E7EB1D -:102E5000F1E0DF011D928A95E9F7FE2C8AC04D87CB -:102E60005E878D859E856A8B0E942F156A898823CF -:102E700009F4BECF662309F4BBCF2091BC01822F99 -:102E800082958F7090E002970CF48ECF8091B701FD -:102E90009091B8019A8389831B82DD82CC822E8334 -:102EA000CE0101967FCF809590958C0D9D1DACCF66 -:102EB000F62E662309F49CCF75132EC034132CC054 -:102EC0002091BC0120FD1FC0822F82958F70D9F008 -:102ED000D80115962C9315978F3049F08F5F982F56 -:102EE0009295907F822F8F70892B15968C93C801B5 -:102EF0000E94F01486E0F801A7EBB1E001900D927A -:102F00008A95E1F793CF86E0F801A7EBB1E0019055 -:102F10000D928A95E1F72DC04D875E878D859E8540 -:102F20000E942F15811140CF8091BC018160809358 -:102F3000BC01C8010E94F0141CC0662309F458CFDC -:102F40004D875E878D859E850E942F15882309F405 -:102F50004FCF2ACF811148CF0CC0243031050CF05F -:102F600047CF9F7009F440CFF8019581907F09F019 -:102F70003BCF8F2D62960FB6F894DEBF0FBECDBF4C -:102F8000DF91CF911F910F91FF90EF90DF90CF9045 -:102F900008951F93CF93DF93CDB7DEB72C970FB66D -:102FA000F894DEBF0FBECDBF4F83588769877A87FD -:102FB0008B879C87CE0107960E940216882369F0B2 -:102FC0008F8198852A853B85232BF1F19F3F09F05E -:102FD00063C08F3F09F060C037C086E0FE013796BE -:102FE000DE01119601900D928A95E1F76F81788547 -:102FF000EA85FB85309741F17F3F11F46F3F21F166 -:103000002091860130E0C90101968770992740918F -:10301000850150E08417950709F447C069837A83D6 -:10302000FD83EC8396E0929FD001939FB00D112415 -:10303000A957BE4FFE01319601900D929A95E1F786 -:10304000809386010E94781516E080918501909109 -:1030500086018917C1F1189FC001112489579E4F1D -:103060000E940216882379F1E09185011E9FF001EC -:103070001124E957FE4F408151816281738184811F -:1030800095810E9468158091850190E00196877076 -:10309000992780938501D9CF4F81588569857A8595 -:1030A0008B859C850E946815CFCF0E942B151092AE -:1030B000860110928501E7EBF1E086E0DF011D92C9 -:1030C0008A95E9F7C1CF2C960FB6F894DEBF0FBEF4 -:1030D000CDBFDF91CF911F910895EF92FF920F9393 -:1030E0001F93CF93DF938C01009709F46CC0F12CF0 -:1030F000EE24E394E8012196F8018491843740F4AA -:10310000843008F051C0813081F0823019F15BC009 -:10311000853709F444C0A8F19CE7980F903708F070 -:1031200052C08F770E94761241C00E5F1F4FFE0182 -:10313000C49180E28C0F883048F4C7708E2D01C096 -:10314000880FCA95EAF70E94491B14C08C2F0E9471 -:10315000AE112DC00E5F1F4FFE01C49180E28C0F97 -:10316000883058F4C7708E2D01C0880FCA95EAF7D1 -:103170000E944F1B0E94701B1AC08C2F0E94761257 -:1031800016C00E5F1F4FFE01C491CC2381F08FE962 -:103190009FE00197F1F700C00000C150F6CF0E5F2D -:1031A0001F4FFE01F49003C00E94AE118E018F2DBF -:1031B000882309F49FCFEFE9FFE03197F1F700C0D2 -:1031C00000008150F5CFDF91CF911F910F91FF90BB -:1031D000EF90089508956093C1017093C2018093A8 -:1031E000C3019093C4010C9417150F931F93009182 -:1031F000C1011091C2012091C3013091C401DC01D1 -:10320000CB01802B912BA22BB32B8093C1019093E8 -:10321000C201A093C301B093C4011F910F910C94FC -:1032200017150F931F930091C1011091C2012091B6 -:10323000C3013091C401DC01CB0180239123A2237F -:10324000B3238093C1019093C201A093C301B093B3 -:10325000C4011F910F910C9417150F931F930091A8 -:10326000C1011091C2012091C3013091C401DC0160 -:10327000CB0180279127A227B3278093C101909388 -:10328000C201A093C301B093C4011F910F910C948C -:1032900017151092BD011092BE011092BF0110923D -:1032A000C0010C94171541E050E060E070E004C0EC -:1032B000440F551F661F771F8A95D2F74093BD01B3 -:1032C0005093BE016093BF017093C0010C94171519 -:1032D00041E050E060E070E004C0440F551F661FFD -:1032E000771F8A95D2F78091BD019091BE01A09180 -:1032F000BF01B091C001482B592B6A2B7B2B409307 -:10330000BD015093BE016093BF017093C0010C9446 -:10331000171541E050E060E070E004C0440F551F15 -:10332000661F771F8A95D2F74095509560957095E6 -:103330008091BD019091BE01A091BF01B091C001EB -:10334000482359236A237B234093BD015093BE0138 -:103350006093BF017093C0010C94171541E050E0D9 -:1033600060E070E004C0440F551F661F771F8A9508 -:10337000D2F78091BD019091BE01A091BF01B091A3 -:10338000C001482759276A277B274093BD015093E6 -:10339000BE016093BF017093C0010C9417150F9389 -:1033A0001F930091BD011091BE012091BF0130918A -:1033B000C001DC01CB01802B912BA22BB32B80937E -:1033C000BD019093BE01A093BF01B093C0011F91B6 -:1033D0000F910C9417150F931F930091BD0110913D -:1033E000BE012091BF013091C001DC01CB018023DF -:1033F0009123A223B3238093BD019093BE01A09398 -:10340000BF01B093C0011F910F910C9417150F933A -:103410001F930091BD011091BE012091BF01309119 -:10342000C001DC01CB0180279127A227B32780931D -:10343000BD019093BE01A093BF01B093C0011F9145 -:103440000F910C9417150895CF92DF92EF92FF928F -:103450000F931F93CF93DF938C01C090C101D09045 -:10346000C201E090C301F090C4018091BD01909130 -:10347000BE01A091BF01B091C001C82AD92AEA2A91 -:10348000FB2ACFE1D0E0D701C6010C2E04C0B695CF -:10349000A795979587950A94D2F780FF06C0B80143 -:1034A0008C2F0E94F008019721F4219760F780E0AB -:1034B00001C08C2FDF91CF911F910F91FF90EF9062 -:1034C000DF90CF900895CF93DF93EC010E94241AF0 -:1034D000BE010E94F008DF91CF910895CB010E94B8 -:1034E000631A08958091C501859585958595089500 -:1034F0008091C5018770089598E0899F90011124FB -:10350000262B2093C5010C9468192091C501809544 -:1035100082238093C501982F977069F430E0482F7B -:10352000552747FD50952417350729F08595859532 -:1035300085950C94891908959091C501977081E043 -:1035400009F480E0089590910C01992321F0909165 -:103550000D01911109C020910E0130910F01F90167 -:1035600032969FEF40E01FC0982F969596959695BE -:103570009F3050F5E0910E01F0910F01E90FF11D20 -:10358000877021E030E0A90102C0440F551F8A95E1 -:10359000E2F7CA019181892B818308959F3F39F019 -:1035A0004F5F4E3041F051915813F8CF0DC051117B -:1035B000F7CF942FF5CF9F3F39F0F901E90FF11DB7 -:1035C00097FDFA9582830895089590910C019923AF -:1035D00021F090910D01911109C020910E013091BF -:1035E0000F01F9013296205F3F4F1FC0982F96952B -:1035F000969596959F30F0F4E0910E01F0910F01B1 -:10360000E90FF11D877021E030E0A90102C0440FED -:10361000551F8A95E2F7CA0180959181892381839C -:1036200008953196E217F30729F090819813F9CFA6 -:103630001082F7CF089581E090E0E0910E01F091C3 -:103640000F01E80FF91F1082019680319105A9F74B -:1036500008959091D901892B8093D901089580957F -:103660009091D90189238093D90108951092D901AD -:1036700008959091D801892B8093D8010895809561 -:103680009091D80189238093D80108951092D80190 -:1036900008959091D701892B8093D7010895809543 -:1036A0009091D70189238093D70108951092D70173 -:1036B00008958093C60108951092C60108958091DF -:1036C0000E0190910F01FC0131969C01205F3F4F4C -:1036D00080E0919191118F5FE217F307D1F7089580 -:1036E000E0910E01F0910F018091D9018083E0916A -:1036F0000E01F0910F0190818091D801892B808378 -:10370000E0910E01F0910F0190818091D701892BFA -:1037100080838091C601882361F0E0910E01F091D1 -:103720000F019081892B80830E945F1B8111109271 -:10373000C60180910E0190910F010C949E1020E023 -:10374000009739F0AC0141505109842395232F5F34 -:10375000F7CF822F0895CF92DF92EF92FF926C0104 -:10376000EE24FF24C114D104E104F10421F0C701C7 -:10377000B60120E101C020E0C72ED82EE92EFF249B -:10378000C114D104E104F10419F0285FC701B601A6 -:103790006B017C0154E0F694E794D794C7945A9552 -:1037A000D1F7C114D104E104F10419F02C5FC70171 -:1037B000B6016B017C0142E0F694E794D794C7947C -:1037C0004A95D1F7C114D104E104F10419F02E5F38 -:1037D000C701B601DC01CB01B695A79597958795F2 -:1037E000892B8A2B8B2B09F02F5F822FFF90EF9074 -:1037F000DF90CF9008958091F101843021F11092F3 -:10380000DB0120E488E190E00FB6F894A89580935E -:1038100060000FBE2093600080E00E948B0983B798 -:10382000817F846083BF83B7816083BF78948895EC -:1038300083B78E7F83BF88E10FB6F89480936000D2 -:10384000109260000FBE0895089508950E94241CF0 -:103850000E94F3030E94251C0E94E80491E081115C -:1038600001C090E0892F08950E942B150E949210AC -:103870000C948B0982E084BD93E095BD9AEF97BDCF -:1038800080936E0008952FB7F8948091DC01909199 -:10389000DD01A091DE01B091DF012FBF0895CF922D -:1038A000DF92EF92FF920F931F932FB7F8944091FE -:1038B000DC015091DD016091DE017091DF012FBFCD -:1038C0006A017B01EE24FF248C0120E030E0C01669 -:1038D000D106E206F30610F4415051099A01281B63 -:1038E000390BC9011F910F91FF90EF90DF90CF909E -:1038F00008951F920F920FB60F9211248F939F93EA -:10390000AF93BF938091DC019091DD01A091DE0126 -:10391000B091DF010196A11DB11D8093DC01909350 -:10392000DD01A093DE01B093DF01BF91AF919F91C4 -:103930008F910F900FBE0F901F9018950E948F0DC2 -:10394000F8942FEF87EA91E6215080409040E1F70C -:1039500000C0000087E090EBDC018093FB019093B6 -:10396000FC01A093FD01B093FE019CE088E10FB63D -:10397000F894A895809360000FBE90936000FFCFED -:10398000EF92FF920F931F93CF93DF93D82FCDE049 -:103990008C2F0E94E10405E010E0E82EF12CC70115 -:1039A000002E02C0959587950A94E2F780FF09C022 -:1039B000602F7C2F80E00E949B06D81302C081E01C -:1039C00006C00150110958F7C15010F780E0DF918F -:1039D000CF911F910F91FF90EF900895CF93C82F33 -:1039E0008CE20E94C01C882321F08C2FCF910C9474 -:1039F000C01C80E0CF910895CF930E94431E811197 -:103A000002C00E94291EC5E6C15049F00E94F3037E -:103A10008FE39CE90197F1F700C00000F5CF89E240 -:103A20000E94EE1C811113C18AE20E94EE1C8111DA -:103A30000E94291E85E00E94EE1C81110E949E1C9E -:103A40000E944E1E8093DA0187E00E94EE1C8823BC -:103A5000A9F18BE10E94EE1C882351F08091DA01DC -:103A600081FB222720F991E0922790FB81F90EC07B -:103A70008EE00E94EE1C882361F08091DA0182FBC7 -:103A8000222720F991E0922790FB82F98093DA01B6 -:103A900015C080E10E94EE1C9091DA01882341F06C -:103AA00093FB222720F981E0822780FB93F904C051 -:103AB000892F809580FB90F99093DA018091DA014B -:103AC0000E94521E0E94601E8093FA0180EE0E94A6 -:103AD000EE1C882341F08091FA01982F909590FB7D -:103AE00080F98093FA0189E30E94EE1C882359F043 -:103AF0008091FA0181FB222720F991E0922790FB27 -:103B000081F98093FA0182EE0E94EE1C882359F01D -:103B10008091FA0182FB222720F991E0922790FB05 -:103B200082F98093FA0186EE0E94EE1C882359F0F8 -:103B30008091FA0183FB222720F991E0922790FBE4 -:103B400083F98093FA0183EE0E94EE1C882359F0DA -:103B50008091FA0184FB222720F991E0922790FBC3 -:103B600084F98093FA0185E30E94EE1C882359F0C2 -:103B70008091FA0185FB222720F991E0922790FBA2 -:103B800085F98093FA0181E30E94EE1C882359F0A5 -:103B90008091FA0186FB222720F991E0922790FB81 -:103BA00086F98093FA0181E10E94EE1C882359F086 -:103BB0008091FA0187FB222720F991E0922790FB60 -:103BC00087F98093FA018091FA010E94641E809126 -:103BD000FA0187FB882780F980930D0187E20E9414 -:103BE000EE1CC82F8EE10E94EE1C8111C2608FE195 -:103BF0000E94EE1C8111C46080E20E94EE1C8111C3 -:103C0000C86081E20E94EE1C8111C06182E20E94C4 -:103C1000EE1C8111C06283E20E94EE1C8111C0641F -:103C200084E20E94EE1C882311F0C06802C0CC23FD -:103C300029F08C2F0E945B1E6C2F03C00E94571E20 -:103C4000682F70E080E090E0CF910C94EB18CF915A -:103C500008956DEE7EEF80E090E00E94952460E094 -:103C600082E090E00E94832460E083E090E00E9484 -:103C7000832460E084E090E00E94832460E085E09B -:103C800090E00C94832480E090E00E947D2421E069 -:103C90008D3E9E4F09F020E0822F089582E090E053 -:103CA0000C947524682F82E090E00C94832483E0C8 -:103CB00090E00C947524682F83E090E00C948324AA -:103CC00084E090E00C947524682F84E090E00C94DC -:103CD00083248091E20180FF0BC06091130185E095 -:103CE000689FB001112475956795759567952BC0F0 -:103CF00081FF09C06091130185E0689FB001112424 -:103D00007595679520C082FF07C06091130185E01B -:103D1000689FB001112417C09091E3019923D1F05D -:103D200060911201961788F72091130185E0289F72 -:103D300090011124929FA001939F500D112470E0D7 -:103D4000CA010E9447246038710540F4611571056D -:103D500039F002C065E070E0862F08958FE708957E -:103D600081E008958091E20180FF08C06091110117 -:103D700070E0759567957595679521C081FF06C0C0 -:103D80006091110170E07595679519C082FF04C0BC -:103D90006091110170E010C09091E3019923C1F08E -:103DA000609110019617A0F780911101899FC001C1 -:103DB000112470E00E9447246038710528F46115D1 -:103DC000710521F0862F08958FE7089581E0089509 -:103DD00061E070E0F4CF803F21F40E94691E81957C -:103DE00004C0813F29F40E94691E8093E601089572 -:103DF000823F21F40E94691E819504C0833F29F40B -:103E00000E94691E8093E5010895893F19F40E947C -:103E1000B21E05C08A3F31F40E94B21E8195809384 -:103E2000E70108958B3F21F40E94B21E819504C0E2 -:103E30008C3F29F40E94B21E8093E8010895843FCC -:103E400021F48091E401816017C0853F21F48091C5 -:103E5000E401826011C0863F21F48091E401846016 -:103E60000BC0873F21F48091E401886005C0883F42 -:103E700031F48091E40180618093E40108958D3FE5 -:103E800021F48091E20181600BC08E3F21F480918A -:103E9000E201826005C08F3F29F48091E2018460D5 -:103EA0008093E2010895803F39F48091E60187FF15 -:103EB0006CC01092E60169C0813F29F48091E6014F -:103EC0001816BCF362C09091E501823F29F497FF78 -:103ED0005CC01092E50159C0833F19F41916CCF368 -:103EE00054C0893F41F48091E70118160CF04DC091 -:103EF0001092E7014AC08A3F29F48091E70187FFC9 -:103F000044C0F6CF8B3F39F48091E80187FF3DC074 -:103F10001092E8013AC08C3F29F48091E80118160C -:103F2000BCF333C0843F21F48091E4018E7F17C03D -:103F3000853F21F48091E4018D7F11C0863F21F4FB -:103F40008091E4018B7F0BC0873F21F48091E401D5 -:103F5000877F05C0883F31F48091E4018F7E809394 -:103F6000E40113C08D3F21F48091E2018E7F0BC0EC -:103F70008E3F21F48091E2018D7F05C08F3F29F4AF -:103F80008091E2018B7F8093E2018091E5018111B4 -:103F90000EC08091E60181110AC08091E701811174 -:103FA00006C08091E801811102C01092E3010895DA -:103FB00084EE91E00E94A9100E94431C9093E101BD -:103FC0008093E00108951F93CF93DF938091E001E8 -:103FD0009091E1010E944F1CAC019091E301992363 -:103FE00021F02091140130E006C0209115018AE0F3 -:103FF000289F900111244217530708F486C080912E -:10400000E501C091E601D091E7011091E80181112D -:1040100007C0C11176C0D11174C0111172C075C032 -:104020009F3F19F09F5F9093E301181624F40E94BC -:10403000691E8093E5018091E50187FF05C00E941C -:10404000691E81958093E5011C1624F40E94691E67 -:104050008093E6018091E60187FF05C00E94691EFA -:1040600081958093E6016091E501662339F1C09165 -:10407000E601CC2319F1772767FD7095872F972FDD -:104080000E94582323E333E343E35FE30E94BC230E -:104090000E9425236093E5016C2F772767FD7095BB -:1040A000872F972F0E94582323E333E343E35FE3F3 -:1040B0000E94BC230E9425236093E6011D1624F470 -:1040C0000E94B21E8093E7018091E70187FF05C03F -:1040D0000E94B21E81958093E701111624F40E947C -:1040E000B21E8093E8018091E80187FF05C00E941D -:1040F000B21E81958093E801DF91CF911F910C94BE -:10410000D81F9F3F09F08ECF96CFDF91CF911F919F -:104110000895E4EEF1E085E0DF011D928A95E9F76C -:104120001092E3011092E2010895833081F128F4A6 -:10413000813059F08230D1F00895853009F449C0BA -:10414000B8F1863009F456C0089580911501262FE4 -:1041500030E0280F311D2F3F310524F4680F6093A4 -:10416000150108958FEF8093150108958091140132 -:10417000262F30E0280F311D2F3F310524F4680F22 -:104180006093140108958FEF809314010895809136 -:104190001301262F30E0280F311D2F3F310524F465 -:1041A000680F6093130108958FEF809313010895B2 -:1041B00080911201262F30E0280F311D2F3F31054D -:1041C00024F4680F6093120108958FEF8093120119 -:1041D000089580911101262F30E0280F311D2F3FC7 -:1041E000310524F4680F6093110108958FEF8093D7 -:1041F0001101089580911001262F30E0280F311D04 -:104200002F3F310524F4680F6093100108958FEF5C -:10421000809310010895833011F128F4813049F022 -:10422000823091F00895853081F120F18630C1F11E -:10423000089580911501681720F4861B809315015D -:10424000089510921501089580911401681720F4C3 -:10425000861B809314010895109214010895809193 -:104260001301681720F4861B8093130108951092A0 -:104270001301089580911201681720F4861B809322 -:10428000120108951092120108958091110168178A -:1042900020F4861B80931101089510921101089556 -:1042A00080911001681720F4861B809310010895F7 -:1042B0001092100108950F931F938D3109F46BC074 -:1042C00008F03FC08E3009F47FC0C0F4873009F495 -:1042D00069C068F4863009F0B1C08091DA01817F4D -:1042E0008E7F8093DA0181E08093EA01A8C0883054 -:1042F00009F4A2C08B3009F49FC0A0C0863109F434 -:104300009BC078F4803109F472C0813109F096C005 -:104310000E942B1590910D0181E0892780930D015A -:104320008BC0893109F488C08B3109F087C0809136 -:10433000DA0181FB222720F991E0922790FB81F995 -:104340004CC0853309F470C048F4873209F46CC05E -:1043500008F459C0893209F467C070C0833438F456 -:104360008A3308F04EC0883309F466C067C08334CE -:1043700009F45AC0883409F061C00E942B150FEF70 -:1043800013ED20E3015010402040E1F700C0000091 -:104390000E949E1C51C00E94DF220E9492100E9427 -:1043A0008B094AC09091DA01892F8095817080FB3A -:1043B00090F929F0966098609093DA0140C0997F57 -:1043C000977F9093DA0138C08091DA0182FB22272F -:1043D00020F991E0922790FB82F98093DA019923EA -:1043E00059F18091DA0181608093DA0125C08091D2 -:1043F000DA0183FB222720F991E0922790FB83F9D1 -:10440000ECCF895301C08D5141E050E060E070E095 -:104410008A019B0104C0000F111F221F331F8A95C0 -:10442000D2F7C901B80104C061E070E080E090E01B -:104430000E94EB180E942B1581E001C080E01F91C3 -:104440000F91089580E0089580E00895CF93C82FDC -:104450008091EA01813079F018F08230E9F187C06B -:10446000E0910E01F0910F018081813169F082327B -:1044700009F07FC009C0E0910E01F0910F01808129 -:10448000813111F0823261F48C2F0E94222281113D -:1044900004C08C2F0E945B211DC081E090E01AC0F7 -:1044A0008C2F0E942422811114C0C43179F048F469 -:1044B000CB3079F0C03109F060C082E08093EA012E -:1044C00008C0C93219F0C83321F057C01092EA0170 -:1044D00054C081E0817053C0C93289F118F5C431EC -:1044E00071F1A8F4C73009F046C08AE08093150145 -:1044F00094E19093140193E090931301809312013F -:1045000088E08093110188E28093100134C0CE517D -:10451000C63088F5EC2FF0E0E65DFE4F8081809399 -:10452000E90129C0CE34E9F020F4CB3421F56AE06A -:1045300013C0C13579F0C235F1F461E00DC080914E -:10454000E901882319F01092E90115C081E08093F8 -:10455000EA0115C061E006C08091E9010E94952042 -:104560000AC06AE08091E9010E940B2104C0109208 -:10457000EA0180E004C081E002C080E0ABCFCF91CF -:104580000895E1E8F0E08081886080838081816027 -:1045900080838FB7F89493E09093890090ED909387 -:1045A00088008FBF0895EFE6F0E08081826080830D -:1045B0000895EFE6F0E080818D7F80830895EFE637 -:1045C000F0E0908182E08927808308951F920F9206 -:1045D0000FB60F9211242F933F934F935F936F93D6 -:1045E0007F938F939F93AF93BF93EF93FF938091AC -:1045F000EB019091EC0101969093EC018093EB011B -:10460000811103C082E00E948B09E091EC01E695E4 -:10461000E695F0E0EC5FF94FE4918091EB018E13A9 -:1046200003C080E00E948B09FF91EF91BF91AF9191 -:104630009F918F917F916F915F914F913F912F91BA -:104640000F900FBE0F901F90189504D06894B11171 -:104650008DC0089570D088F09F5790F0B92F99279A -:10466000B751A0F0D1F0660F771F881F991F1AF07D -:10467000BA95C9F712C0B13081F077D0B1E0089592 -:1046800074C0672F782F8827B85F39F0B93FCCF313 -:10469000869577956795B395D9F73EF49095809573 -:1046A000709561957F4F8F4F9F4F0895E89409C093 -:1046B00097FB3EF490958095709561957F4F8F4F55 -:1046C0009F4F9923A9F0F92F96E9BB279395F6956B -:1046D000879577956795B795F111F8CFFAF4BB0FE9 -:1046E00011F460FF1BC06F5F7F4F8F4F9F4F16C04D -:1046F000882311F096E911C0772321F09EE8872FD7 -:10470000762F05C0662371F096E8862F70E060E092 -:104710002AF09A95660F771F881FDAF7880F96950B -:10472000879597F9089557FD9058440F551F59F0F4 -:104730005F3F71F04795880F97FB991F61F09F3F8E -:1047400079F087950895121613061406551FF2CFB7 -:104750004695F1DF08C0161617061806991FF1CF07 -:1047600086957105610508940895E894BB2766272E -:104770007727CB0197F908950BD078C069D028F03E -:104780006ED018F0952309F05AC05FC01124EECF07 -:10479000CADFA0F3959FD1F3950F50E0551F629F9C -:1047A000F001729FBB27F00DB11D639FAA27F00D8A -:1047B000B11DAA1F649F6627B00DA11D661F829FB1 -:1047C0002227B00DA11D621F739FB00DA11D621F96 -:1047D000839FA00D611D221F749F3327A00D611DB3 -:1047E000231F849F600D211D822F762F6A2F112495 -:1047F0009F5750408AF0E1F088234AF0EE0FFF1FE8 -:10480000BB1F661F771F881F91505040A9F79E3F1E -:10481000510570F014C0AACF5F3FECF3983EDCF373 -:10482000869577956795B795F795E7959F5FC1F75B -:10483000FE2B880F911D9695879597F9089597F906 -:104840009F6780E870E060E008959FEF80EC089536 -:1048500000240A941616170618060906089500245F -:104860000A9412161306140605060895092E0394D9 -:10487000000C11F4882352F0BB0F40F4BF2B11F44D -:1048800060FF04C06F5F7F4F8F4F9F4F089597FB6E -:10489000072E16F4009407D077FD09D00E946124FA -:1048A00007FC05D03EF4909581959F4F0895709533 -:1048B00061957F4F0895EE0FFF1F0590F491E02D55 -:1048C0000994AA1BBB1B51E107C0AA1FBB1FA61757 -:1048D000B70710F0A61BB70B881F991F5A95A9F7A9 -:1048E00080959095BC01CD010895F999FECF92BDB8 -:1048F00081BDF89A992780B50895A8E1B0E042E01B -:1049000050E00C949D24262FF999FECF92BD81BDD5 -:10491000F89A019700B4021639F01FBA20BD0FB6FD -:10492000F894FA9AF99A0FBE08950196272F0E94DB -:1049300084240C948324DC01CB01FC01F999FECF83 -:1049400006C0F2BDE1BDF89A319600B40D92415017 -:0A4950005040B8F70895F894FFCF27 -:10495A0002208D091B0AF809C40990090101C7013F -:10496A0028080A03140A3F4D3639C5057805420559 -:10497A0009059C04B504CE04E704010203040506F4 -:04498A000708090011 -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/jacobono/readme.md b/keyboards/ergodox_ez/keymaps/jacobono/readme.md new file mode 100644 index 000000000..48de0509f --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/jacobono/readme.md @@ -0,0 +1,34 @@ +# Default Layer # + +I'm using the colemak layer -- customized a bit to work a bit better when using spacemacs as my editor. + +![default-layer](img/colemak-default-layer.png) + +## Special Keys ## + +`SC1` => `LGUI + TAB` + +`SC2` => `LGUI + SPACE + TAB` + +`L1` => Switch to QWERTY Layout + +`T(L2)` => Toggle Symbol Layer + +`T(L3)` => Toggle Number and D-Pad Layer + +# QWERTY # + +Nothing special here -- just need this layer tucked away for the `WASD`. Which is literally the only reason I use it. +Just have the same button to toggle back to colemak. + +# Symbol Layer # + +![symbol-layer](img/symbol-layer.png) + +This is just putting matching closing symbols next to each other -- useful when editing lisp. + +# Number and D-Pad Layer # + +Just a basic number layer with a D-PAD on the other side. + +![number-dpad-layer](img/number-dpad-layer.png) diff --git a/keyboards/ergodox_ez/keymaps/jgarr/compiled.hex b/keyboards/ergodox_ez/keymaps/jgarr/compiled.hex deleted file mode 100644 index d45298399..000000000 --- a/keyboards/ergodox_ez/keymaps/jgarr/compiled.hex +++ /dev/null @@ -1,1158 +0,0 @@ -:100000000C947A020C94BE020C94BE020C94BE02B4 -:100010000C94BE020C94BE020C94BE020C94BE0260 -:100020000C94BE020C94BE020C94620D0C94340E1F -:100030000C94BE020C94BE020C94BE020C94BE0240 -:100040000C94BE020C943E220C94BE020C94BE0290 -:100050000C94BE020C94D11B0C94BE020C94BE02F4 -:100060000C94BE020C94BE020C94BE020C94BE0210 -:100070000C94BE020C94BE020C94BE020C94BE0200 -:100080000C94BE020C94BE020C94BE020C94BE02F0 -:100090000C94BE020C94BE020C94BE020C94BE02E0 -:1000A0000C94BE020C94BE020C94BE02A10EC30EB0 -:1000B000B10FC30EB10F080F2B0FB10F800F930FAD -:1000C0006212621291129112C712E71218141814D8 -:1000D000F2121814A213A2130914181418141214EB -:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300 -:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0 -:10010000C113CE13D513DC13E6130000F0A13500A4 -:100110002B002971E100E00000001E003400040003 -:100120003371E3004D001F00360012001400E2009E -:100130002A002000370008000D0050002C0021008C -:10014000130018000E004F004A0022001C000C0093 -:100150001B000000E1044C0001540000007F00007F -:10016000E3002A000154000000770000E2002300B1 -:100170000900070005000000C10024000A000B0070 -:10018000100052004B002500060017001A00510015 -:100190002C0026001500110019002F002800270050 -:1001A0000F0016421D7130004E00310038002D0046 -:1001B000E5002E0000000100010001000100010027 -:1001C00000003A001E0220022202010001003B0052 -:1001D0001F0221022302010001003C002F0226021F -:1001E0002F00010001003D00300227023000010015 -:1001F00001003E003102350035020000010001001F -:1002000001000000010000000100010001000000E9 -:100210000100000001003F005200510024020000D4 -:1002200001004000240021001E00010001004100E7 -:10023000250022001F003700010042002600230095 -:10024000200027000100430025022E0231002E006D -:100250000100440045000100010001000000010010 -:100260000100010001000100000001000100010087 -:1002700001000100010001000100F2000100010085 -:1002800001000100F000F1000100F4000100010094 -:100290000100F3000100F500010001000100010070 -:1002A0000100000001000100010000000100000049 -:1002B0000100010001000000010000000100010038 -:1002C0000100010001000000010001000100010027 -:1002D0000100A9000100010001000100AC00AA001A -:1002E000B600010001000100AB00A8000100010000 -:1002F0000100010001000100010001000100AE0049 -:1003000001000100000016034500720067006F0045 -:1003100044006F007800200045005A0000001603DA -:100320004500720067006F0044006F0078002000F5 -:1003300045005A0000000403090409026D0004018D -:1003400000A0FA09040000010301010009211101C4 -:100350000001223F000705810308000A090401008B -:100360000103010200092111010001224D000705CE -:10037000820308000A0904020001030000000921A9 -:10038000110100012236000705830308000A090451 -:1003900003000103000000092111010001223900BE -:1003A000070584031000011201100100000008ED90 -:1003B000FE071301000102000105010906A1010564 -:1003C0000719E029E7150025019508750181020547 -:1003D000081901290595057501910295017503918B -:1003E0000105071900297715002501957875018108 -:1003F00002C005010980A101850216010026B7008F -:100400001A01002AB700751095018100C0050C097A -:1004100001A1018503160100269C021A01002A9CF5 -:1004200002751095018100C005010902A1010901B1 -:10043000A10005091901290515002501950575017A -:10044000810295017503810105010930093115818A -:10045000257F95027508810609381581257F95014C -:1004600075088106050C0A38021581257F950175EE -:10047000088106C0C005010906A101050719E02988 -:10048000E715002501950875018102950175088120 -:100490000105081901290595057501910295017558 -:1004A0000391010507190029FF150025FF95067521 -:1004B000088100C0000000000000000000000001F2 -:1004C0000204060A0F17202C3A4A5D71879DB3C7B4 -:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF -:1004E0003A2C20170F0A0604020100000000000049 -:1004F0000000000011241FBECFEFDAE0DEBFCDBF49 -:1005000004B603FE24C08091FB019091FC01A091F0 -:10051000FD01B091FE018730904BA740B04BB9F47C -:100520001092FB011092FC011092FD011092FE014D -:1005300014BE84B7877F84BF88E10FB6F894809398 -:100540006000109260000FBEE0E0FFE3099511E04B -:10055000A0E0B1E0EAE0F8E402C005900D92A43317 -:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0 -:10057000B107E1F70E94A60A0C9403240C94000032 -:100580001092B9008AE08093B800089594EA90939D -:10059000BC009091BC0097FFFCCF9091B900987F70 -:1005A000983021F0903111F081E008958093BB00E4 -:1005B00084E88093BC008091BC0087FFFCCF8091D1 -:1005C000B900887F883111F0803471F780E0089598 -:1005D00084E98093BC008091BC0084FDFCCF089529 -:1005E0008093BB0084E88093BC008091BC0087FFAF -:1005F000FCCF9091B900987F81E0983209F480E0B7 -:10060000089584E88093BC008091BC0087FFFCCFF4 -:100610008091BB00089580910101811115C080E493 -:100620000E94C6028093010181110CC082E10E94E8 -:10063000F00280930101811105C08FEF0E94F0024A -:10064000809301010E94E80284B1807F84B985B162 -:10065000807F85B98AB1837F8AB98BB1837F8BB95B -:100660003E98469808950E94C604809301010E9416 -:100670000B0380B38C7080BB81B3836F81BBA5E318 -:10068000B1E0E3E4F1E08EE08E0F11921D928E1343 -:10069000FCCF0C94B004BF92CF92DF92EF92FF9206 -:1006A0000F931F93CF93DF9380910101882379F0FB -:1006B000809134018F5F80933401811108C00E94C2 -:1006C000C60480930101811102C00E94580405E311 -:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407 -:1006E000E394F12CC730D10500F58091010181110F -:1006F00064C080E40E94C60280930101811112C08F -:1007000082E10E94F0028093010181110BC0C701B8 -:100710000C2E01C0880F0A94EAF780950E94F0021F -:10072000809301010E94E80248C0CA30A1F028F479 -:10073000C83059F0C93061F005C0CC3089F070F094 -:10074000CD3089F0209A289810C0219A29980DC0A0 -:10075000229A2A980AC0239A2B9807C0529A01C05D -:10076000539A5B9802C03E9A469890EA9A95F1F7A0 -:100770009FB1799902C082E001C080E091709D250F -:10078000982B7C9902C084E001C080E0892B7D9980 -:1007900002C038E001C030E0832B7E9902C020E126 -:1007A00001C020E0822B9FB19095991F9927991F36 -:1007B0009295990F907E892B0FC080910101811134 -:1007C00049C080E40E94C60280930101882379F128 -:1007D000B12C0E94E8028B2DF8019081981719F036 -:1007E0008083C09200010E940B0321960F5F1F4F70 -:1007F000CE30D10509F076CF80910001882361F1D8 -:10080000815080930001882339F08FE99FE00197A0 -:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F -:10082000CF01825F91919D938E13FCCF15C083E120 -:100830000E94F002809301018111CACF81E40E94DD -:10084000C602809301018111C3CF0E940103B82E1B -:10085000B094BFCF80E0C0CF0E94560481E0DF910A -:10086000CF911F910F91FF90EF90DF90CF90BF90AD -:100870000895E82FF0E0ED5BFE4F80810895089524 -:100880000F931F93CF93DF93C3E4D1E010E00C2FBD -:10089000025F899190E00E94F71A180F0C13F9CFAC -:1008A000812FDF91CF911F910F9108950C94260510 -:1008B00056985E9825982D9826982E9827982F98C8 -:1008C0008FEF90E0909389008093880090938B0045 -:1008D00080938A0090938D0080938C00259A2D9AA6 -:1008E0002FEF80E792E0215080409040E1F700C078 -:1008F0000000269A2E9A2FEF80E792E02150804048 -:100900009040E1F700C00000279A2F9A2FEF80E770 -:1009100092E0215080409040E1F700C0000025980F -:100920002D982FEF80E792E0215080409040E1F732 -:1009300000C0000026982E982FEF80E792E021500B -:1009400080409040E1F700C0000027982F9856980B -:100950005E9825982D9826982E9827982F98089578 -:1009600089EA8093800089E08093810024982C9804 -:100970003F988AB18F748AB96E98479A8BB1806B11 -:100980008BB9769A0E9458040C94250580E28093D6 -:1009900001018091510181110EC00E94C00281E0CD -:1009A000809351012FEF83ED90E3215080409040E0 -:1009B000E1F700C0000080E40E94C60280930101BC -:1009C00081112EC00E94F00280930101811128C084 -:1009D0000E94F00280930101811122C08FE30E94E6 -:1009E000F0028093010181111BC00E94E80280E4A3 -:1009F0000E94C60280930101811112C08CE00E9406 -:100A0000F0028093010181110BC00E94F0028093DB -:100A10000101811105C08FE30E94F0028093010162 -:100A20000E94E80280910101089561110BC0FC0150 -:100A30008281882321F085EE0E94061103C085EE95 -:100A40000E94CE1180E090E0089508956091BD016C -:100A50007091BE018091BF019091C0010E94031B63 -:100A600056985E9825982D9826982E9827982F9816 -:100A7000813019F0823021F00895259A2D9A089539 -:100A8000269A2E9A089581E0089581E008950C94A5 -:100A9000450508950F931F93CF93DF938C01FC01BD -:100AA000C081D181CE010E947C19BE010E94F30554 -:100AB000EC01B8010E944705882309F48DC0F801B4 -:100AC0008281882309F44AC080915D0181111FC091 -:100AD000C431F0E5DF0709F051C00E94490581E00B -:100AE00080935D010E949B1B90935C0180935B014E -:100AF0001092540110925601109255011092580113 -:100B00001092570110925A011092590165C08091BC -:100B10005B0190915C010E94A71B883C910570F4D9 -:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB -:100B3000D183C0838F5F809354014EC0C43880E559 -:100B4000D80721F0C538D04501F13AC0F8018281BB -:100B5000882341F01092520182E01EC0C438E0E5C3 -:100B6000DE0759F580915201811106C086E20E948C -:100B7000061186E20E94CE1182E01CC0C438F0E566 -:100B8000DF0741F3C538D045D9F4F80182818823C5 -:100B900031F01092530180E20E941D121DC080911D -:100BA0005301811106C087E20E94061187E20E946C -:100BB000CE1180E20E9424120FC0C538D04529F31F -:100BC00081E08093520180935301C801DF91CF915E -:100BD0001F910F910C94430580E0DF91CF911F91FD -:100BE0000F910895089596E0799FF001112494E5FE -:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F -:100C0000E25FFE4F859194910895880F991FFC0132 -:100C1000E657F040859194910895880F991FFC0143 -:100C2000E65FFE4F8591949108950F931F93CF93A4 -:100C3000DF93EC01811520E3920750F5C11580E2A6 -:100C4000D80708F0C3C0CB3BD10590F4C83AD10512 -:100C500008F06AC0C53AD10508F05BC0C430D105C0 -:100C600008F0D0C1219709F0CAC101E010E00AC222 -:100C7000CF3FD10511F008F0C5C1C03FD10508F044 -:100C8000A2C0CE01805E9109089708F4BBC1B7C12C -:100C9000C13090E5D90709F4A2C020F5C0318FE436 -:100CA000D80770F4C11590E4D90708F094C0C115B5 -:100CB00021E3D20708F0A3C1DD278E01106CE2C149 -:100CC000C115D04509F09BC10E9483148FEF94E3B6 -:100CD0002CE0815090402040E1F700C000000E94CD -:100CE000F61BD0C1C11597E5D90758F4C03121E5ED -:100CF000D20708F01CC1C43180E5D80708F475C0DC -:100D00007EC1CE0190578115904108F078C1DF7007 -:100D100073C1C53AD10509F477C1C63AD10509F0C6 -:100D200076C102E810E4AEC1C83AD10509F472C137 -:100D3000C93AD10509F471C1CA3AD10509F470C1A3 -:100D4000CB3AD10509F46FC1CC3AD10509F46EC193 -:100D5000CD3AD10509F46DC1C03BD10509F46CC190 -:100D6000CE3AD10509F46BC1CF3AD10509F46AC175 -:100D7000C13BD10509F469C1C23BD10509F468C181 -:100D8000C33BD10509F467C1C43BD10509F466C171 -:100D9000C53BD10509F465C1C63BD10509F464C161 -:100DA000C73BD10509F463C1C83BD10509F462C151 -:100DB000C93BD10509F461C1CA3BD10509F460C141 -:100DC00000E014E45FC18E0110655CC1CE019F702C -:100DD0000E940D0658C1DF708E01106A53C18091C8 -:100DE000DA0181608093DA014DC10E949B1D81115F -:100DF00002C00E94811D0E94B81D90E09093FB01EB -:100E00008093FA01C23080E5D80721F48091FA017D -:100E1000816086C0C43090E5D90721F48091FA0141 -:100E200082607EC0C63020E5D20721F48091FA01AD -:100E3000846076C0C83080E5D80719F48091FA0143 -:100E400027C0CA3090E5D90721F48091FA0180616A -:100E500067C0CC3020E5D20721F48091FA0180628E -:100E60005FC0CE3080E5D80721F48091FA0180641C -:100E700057C0C03190E5D90721F48091FA0180680C -:100E80004FC0C23120E5D20729F48091FA01846075 -:100E9000886046C0C33080E5D80721F48091FA010C -:100EA0008E7F3EC0C53090E5D90721F48091FA01CC -:100EB0008D7F36C0C73020E5D20721F48091FA013A -:100EC0008B7F2EC0C93080E5D80719F48091FA01D4 -:100ED00026C0CB3090E5D90721F48091FA018F7EAE -:100EE0001FC0CD3020E5D20721F48091FA018F7D1B -:100EF00017C0CF3080E5D80721F48091FA018F7BAD -:100F00000FC0C13190E5D90721F48091FA018F77A4 -:100F100007C0C331D04531F48091FA018B7F877FC0 -:100F20008093FA018091FA010E94BC1DABC08D2F05 -:100F300099278F70992781309105D9F49E012370EC -:100F4000332702C0880F991F2A95E2F79C688E010B -:100F500044E0000F111F4A95E1F700271370802B22 -:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA -:100F70002FC08230910531F4DC2FCC278E01016F18 -:100F8000106A80C08330910569F4CE01837099277F -:100F900001E010E002C0000F111F8A95E2F7C801BE -:100FA0009C680FC084309105B9F4CE0183709927F5 -:100FB00001E010E002C0000F111F8A95E2F7C8019E -:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029 -:100FD0008C010C2B1D2B56C08530910531F4DC2F74 -:100FE000CC278E01046F106A4DC0069709F04AC0E5 -:100FF000CF71DD27DC2FCC278E01106243C000E0CB -:1010000010E040C08E013EC001E810E43BC003E8A0 -:1010100010E438C002EE14E435C009EE14E432C026 -:101020000AEE14E42FC005EB14E42CC006EB14E424 -:1010300029C007EB14E426C00CEC14E423C00DEC2B -:1010400014E420C003E815E41DC00AE815E41AC042 -:1010500002E915E417C004E915E414C001E216E43E -:1010600011C003E216E40EC004E216E40BC005E270 -:1010700016E408C006E216E405C007E216E402C062 -:101080000AE216E4C801DF91CF911F910F910895F4 -:1010900096E0799FF001112494E5899FE00DF11D00 -:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149 -:1010B0009491803E9105E0F4803C910558F5813390 -:1010C000910509F46FC048F48932910509F463C0B1 -:1010D0008A32910509F46DC072C089339105E9F037 -:1010E00082389105D1F08533910509F44DC067C070 -:1010F000833E910581F138F4803E9105B9F0823E3E -:101100009105D9F05CC0863E910561F1873E91055D -:10111000A1F155C00E94050608952091FA0120FD15 -:1011200002C021FF4CC080EE90E049C08091FA01DE -:1011300080FFF9CF89E390E042C08091FA0182FFFD -:101140000EC08091FA0184FF03C080E090E037C0B8 -:1011500083EE90E034C08091FA0182FFF2CF82EEFC -:1011600090E02DC08091FA0183FF0BC08091FA01BD -:1011700084FDEBCF87EE90E022C08091FA0183FFDF -:10118000F5CF86EE90E01BC08091FA0185FF07C085 -:1011900089E290E014C08091FA0185FFF9CF85E3E0 -:1011A00090E00DC08091FA0186FF07C08AE290E0CE -:1011B00006C08091FA0186FFF9CF81E390E00E949A -:1011C0001506089508950C94E20880916E01089523 -:1011D000CF93DF9300D01F92CDB7DEB79C018091F3 -:1011E000F101843019F593E099833B832A8390932E -:1011F000E9008FEF9091E800815095FD06C095EDD4 -:101200009A95F1F700008111F5CF8091E80085FFF4 -:101210000DC040E050E063E070E0CE0101960E9416 -:10122000520B8091E8008E778093E8000F900F902A -:101230000F90DF91CF910895CF93DF9300D01F924D -:10124000CDB7DEB72091F101243021F522E02983CA -:101250009B838A8383E08093E9008FEF9091E8007D -:10126000815095FD06C095ED9A95F1F7000081112A -:10127000F5CF8091E80085FF0DC040E050E063E0CD -:1012800070E0CE0101960E94520B8091E8008E77AB -:101290008093E8000F900F900F90DF91CF91089509 -:1012A0002091F1012430F1F422E02093E9002FEFA6 -:1012B0003091E800215035FD06C035ED3A95F1F743 -:1012C00000002111F5CF2091E80025FF0BC040E080 -:1012D00050E065E070E00E94520B8091E8008E774C -:1012E0008093E8000895CF93DF93EC019091F10192 -:1012F000943009F046C080910C018823D9F0809188 -:101300000D018823B9F09093E9008FEF9091E800E8 -:10131000815095FD06C095E19A95F1F70000811185 -:10132000F5CF8091E80085FF2CC040E050E060E1FF -:1013300070E017C081E08093E9008FEF9091E800A2 -:10134000815095FD06C095ED9A95F1F70000811149 -:10135000F5CF8091E80085FF14C040E050E068E0E0 -:1013600070E0CE010E94520B8091E8008E7780934E -:10137000E80080E1FE01AEE5B1E001900D928A95B2 -:10138000E1F7DF91CF9108958091F001811109C0BB -:101390000E94E70C0E94440D8091E20084608093DB -:1013A000E20008951092F001089508950C942B2204 -:1013B0000E948C1B0E9431220E94EA0F0C94E308C9 -:1013C00042E061EC81E00E94610C42E061EC82E06D -:1013D0000E94610C42E061EC83E00E94610C42E1FA -:1013E00061EC84E00C94610C8091F301833009F48A -:1013F00055C030F4813071F0823009F48EC0089508 -:101400008A3009F47AC08B3009F460C0893009F061 -:101410009CC020C08091F201813A09F096C0809171 -:10142000E800877F8093E8008091F6019091F701B2 -:10143000892B21F460E18EE591E003C060E080E05B -:1014400090E070E00E949D0B8091E8008B77809384 -:10145000E80008958091F201813209F076C0809110 -:10146000F6019091F701009719F0039709F06DC00C -:101470008091E800877F8093E8008091E80082FDFA -:1014800005C08091F1018111F8CF5FC08091F1001A -:1014900080936E018091E8008B7753C08091F201B8 -:1014A000813A09F052C08091F6019091F701892BA1 -:1014B00009F04BC08091E800877F8093E80080911D -:1014C000E80080FFFCCF80910C0136C08091F201D2 -:1014D0008132D9F58091F6019091F701892BA9F518 -:1014E0008091E800877F8093E8000E94960C8091AD -:1014F000F40180930C010C9483148091F2018132E9 -:1015000021F58091E800877F8093E8000E94960C87 -:101510008091F50180936F0108958091F201813AE5 -:10152000A1F48091E800877F8093E8008091E80033 -:1015300080FFFCCF80916F018093F1008091E800E3 -:101540008E778093E8000C94960C089584B7877F7B -:1015500084BF88E10FB6F894809360001092600019 -:101560000FBE90E080E80FB6F894809361009093EE -:1015700061000FBE0E9439100E94E70C0E94440DCA -:101580008091E20084608093E20078940E94CA0F08 -:101590000E943B1082E091E00E94E50F0E94192218 -:1015A0008091F101853069F40E94531B8091EF0115 -:1015B0008823B1F30E947E1B882391F30E943C0B89 -:1015C000EFCF0E944110ECCF292F33272330310574 -:1015D000C9F064F42130310581F02230310509F081 -:1015E00043C08DE690E02AE333E042C0213231056A -:1015F000F1F02232310541F137C082E190E027EA73 -:1016000033E036C099278130910541F08230910551 -:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4 -:1016200002C0E6E0F3E0849190E09F0121C06430C5 -:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5 -:10164000318189E090E014C0643070F470E0FB01F7 -:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47 -:10166000FE4F808190E004C080E090E020E030E018 -:10167000FA0131832083089580E189BD82E189BD2B -:1016800009B400FEFDCF8091D8008F7D8093D800F3 -:101690008091E00082608093E0008091E00081FD15 -:1016A000FCCF0895CF92DF92EF92FF920F931F939A -:1016B000CF93DF93EC018B016A010E94B50C81117D -:1016C00033C0C114D10439F0F60180819181081B27 -:1016D000190BC80FD91FE12CF12C0115110519F1B7 -:1016E0008091E80085FD16C08091E8008E77809398 -:1016F000E800C114D10449F0F60180819181E80E1F -:10170000F91EF182E08285E00FC00E94B50C8823AB -:1017100021F30AC089918093F10001501109FFEF74 -:10172000EF1AFF0ADACF80E0DF91CF911F910F917E -:10173000FF90EF90DF90CF9008952091F8013091C5 -:10174000F9012617370748F06115710539F4209122 -:10175000E8002E772093E80001C0B90140E0611550 -:101760007105A9F12091F101222309F443C025302C -:1017700009F442C02091E80023FD40C02091E80018 -:1017800022FD32C02091E80020FFE9CF4091F30014 -:101790002091F20030E0342BFC01CF01611571057E -:1017A00059F02830310540F481918093F100615067 -:1017B00071092F5F3F4FF1CF41E02830310509F02B -:1017C00040E02091E8002E772093E800C8CF411137 -:1017D000C9CF0AC08091F101882361F0853061F0A2 -:1017E0008091E80083FD0AC08091E80082FFF2CF7B -:1017F00080E0089582E0089583E0089581E00895EF -:101800002091F8013091F9012617370748F061154A -:10181000710539F42091E8002E772093E80001C08B -:10182000B901FC0120E06115710591F18091F10190 -:10183000882309F440C0853009F43FC08091E80056 -:1018400083FD3DC08091E80082FD2FC08091E800BB -:1018500080FFE9CF2091F3008091F20090E0922B7D -:101860006115710559F08830910540F42491209359 -:10187000F1003196615071090196F2CF21E008978D -:1018800009F020E08091E8008E778093E800CBCFCC -:101890002111CCCF0AC08091F101882361F08530FD -:1018A00061F08091E80083FD0AC08091E80082FF2A -:1018B000F2CF80E0089582E0089583E0089581E00A -:1018C0000895982F973058F59093E900981739F0BC -:1018D0007091EC002091ED005091F00003C0242F96 -:1018E000762F50E021FF19C03091EB003E7F3093FE -:1018F000EB003091ED003D7F3093ED003091EB0037 -:1019000031603093EB007093EC002093ED00509326 -:10191000F0002091EE0027FF07C09F5FD3CF8F70AC -:101920008093E90081E0089580E008958091F201BC -:1019300087FF11C08091E80082FD05C08091F10110 -:101940008111F8CF11C08091E8008B770BC0809196 -:10195000F101882349F08091E80080FFF8CF809161 -:10196000E8008E778093E80008952091E40030919C -:10197000E50095E64091EC00842F817040FF22C085 -:101980008091E80080FD1CC08091F101882391F0D6 -:10199000853091F08091EB0085FD10C04091E4000E -:1019A0005091E5004217530729F39A01915011F71E -:1019B00084E0089582E0089583E0089581E0089529 -:1019C00080E008954091E80042FFDECF08950E9434 -:1019D000550D0E945D0DE0EEF0E080818160808316 -:1019E000E8EDF0E080818F77808319BCA7EDB0E04F -:1019F0008C918E7F8C9380818F7E80831092F001FA -:101A000008950F931F93CF93DF930E94550D0E946B -:101A10005D0DC8EDD0E088818F77888388818068EC -:101A2000888388818F7D888319BC1092F101109280 -:101A3000ED011092EF011092EE0100EE10E0F801BE -:101A400080818B7F808388818160888342E060E031 -:101A500080E00E94610CE1EEF0E080818E7F808367 -:101A6000E2EEF0E080818160808380818860808305 -:101A7000F80180818E7F8083888180618883DF91F7 -:101A8000CF911F910F910895E8EDF0E080818F7E56 -:101A90008083E7EDF0E080818160808384E082BF15 -:101AA00081E08093F0010C94010DE8EDF0E080817D -:101AB0008E7F80831092E20008951092DA001092D7 -:101AC000E10008951F920F920FB60F9211242F93E9 -:101AD0003F934F935F936F937F938F939F93AF93B6 -:101AE000BF93EF93FF938091E10082FF0BC0809141 -:101AF000E20082FF07C08091E1008B7F8093E100CC -:101B00000E94C90F8091DA0080FF1FC08091D80029 -:101B100080FF1BC08091DA008E7F8093DA00809175 -:101B2000D90080FF0DC080E189BD82E189BD09B483 -:101B300000FEFDCF81E08093F1010E94C40905C041 -:101B400019BC1092F1010E94D2098091E10080FF3E -:101B500019C08091E20080FF15C08091E2008E7F65 -:101B60008093E2008091E20080618093E2008091A6 -:101B7000D80080628093D80019BC85E08093F10181 -:101B80000E94D6098091E10084FF30C08091E2007C -:101B900084FF2CC080E189BD82E189BD09B400FECB -:101BA000FDCF8091D8008F7D8093D8008091E10097 -:101BB0008F7E8093E1008091E2008F7E8093E2002F -:101BC0008091E20081608093E2008091ED018823A2 -:101BD00011F084E007C08091E30087FD02C081E03E -:101BE00001C083E08093F1010E94D8098091E10057 -:101BF00083FF29C08091E20083FF25C08091E1002E -:101C0000877F8093E10082E08093F1011092ED01E3 -:101C10008091E1008E7F8093E1008091E2008E7FD1 -:101C20008093E2008091E20080618093E20042E0D4 -:101C300060E080E00E94610C8091F00088608093F9 -:101C4000F0000E94D509FF91EF91BF91AF919F9154 -:101C50008F917F916F915F914F913F912F910F9055 -:101C60000FBE0F901F9018951F920F920FB60F92F4 -:101C700011242F933F934F935F936F937F938F9391 -:101C80009F93AF93BF93CF93DF93EF93FF93C09155 -:101C9000E900CF708091EC00D82FD17080FDD0E8A2 -:101CA0001092E9008091F000877F8093F000789493 -:101CB0000E94780E1092E9008091F0008860809375 -:101CC000F000CD2BCF70C093E900FF91EF91DF9131 -:101CD000CF91BF91AF919F918F917F916F915F91C4 -:101CE0004F913F912F910F900FBE0F901F9018951D -:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3 -:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115 -:101D1000F10091938E13FBCF0E94F4098091E800AB -:101D200083FF1FC18091F2019091F301492F50E090 -:101D30004A30510508F015C1FA01EA5AFF4F0C94D8 -:101D4000B323803881F0823809F00BC18091F6010D -:101D50008F708093E9008091EB0085FB882780F9E4 -:101D60001092E90006C08091EE019091EF0191116F -:101D700082609091E800977F9093E8008093F10053 -:101D80001092F100C8C0282F2D7F09F0EAC08823E7 -:101D900019F0823061F0E5C08091F401813009F0E2 -:101DA000E0C0933009F080E08093EF012BC0809178 -:101DB000F401811127C08091F6018F7009F4D1C020 -:101DC0008093E9002091EB0020FF1CC0933021F4A8 -:101DD0008091EB00806214C09091EB009061909331 -:101DE000EB0021E030E0A90102C0440F551F8A95A5 -:101DF000E2F74093EA001092EA008091EB008860DD -:101E00008093EB001092E9008091E800877F86C004 -:101E10008111A7C01091F4011F778091E3008078B1 -:101E2000812B8093E3008091E800877F8093E80016 -:101E30000E94960C8091E80080FFFCCF8091E30027 -:101E400080688093E300111102C082E001C083E04A -:101E50008093F10186C08058823008F082C0809162 -:101E6000F4019091F5018C3D53E0950779F583E0FD -:101E70008A838AE289834FB7F894DE01139620E0C3 -:101E80003EE051E2E32FF0E050935700E49120FF51 -:101E900003C0E295EF703F5FEF708E2F90E0EA3065 -:101EA00010F0C79601C0C0968D939D932F5F24318B -:101EB00049F74FBF8091E800877F8093E8006AE28E -:101EC00070E0CE0101960E949D0B14C0AE014F5FE1 -:101ED0005F4F6091F6010E94E40ABC01009709F48B -:101EE00040C09091E800977F9093E80089819A81A3 -:101EF0000E94000C8091E8008B778093E80031C04D -:101F0000803879F58091E800877F8093E8008091A0 -:101F1000ED018093F1008091E8008E778093E800D6 -:101F20000E94960C1EC081111CC09091F401923049 -:101F3000C0F48091E800877F8093E8009093ED01E2 -:101F40000E94960C8091ED01811106C08091E30002 -:101F500087FD02C081E001C084E08093F1010E940E -:101F6000E0098091E80083FF0AC08091E800877F44 -:101F70008093E8008091EB0080628093EB00AA964A -:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A -:101F900008950895CF938091F1018823A1F0C09115 -:101FA000E900CF709091EC00892F817090FD80E85E -:101FB000C82B1092E9008091E80083FD0E94780E02 -:101FC000CF70C093E900CF910895909375018093ED -:101FD00074010895E0917401F0917501309721F03A -:101FE0000190F081E02D099480E00895E091740162 -:101FF000F0917501309721F00280F381E02D099472 -:102000000895E0917401F0917501309721F00480FA -:10201000F581E02D099408952091720130917301AA -:102020008217930771F09093730180937201E0918E -:102030007401F0917501309721F00680F781E02D51 -:1020400009940895209170013091710182179307CE -:1020500071F09093710180937001E0917401F0919F -:102060007501309721F00084F185E02D09940895E1 -:1020700008950C9438100E94921B0E9433030C9414 -:10208000541C9F92AF92BF92CF92DF92EF92FF9239 -:102090000F931F93CF93DF9300D000D000D0CDB724 -:1020A000DEB70E944B030DE010E0AA24A394B12CEC -:1020B000902E802F0E943904980129583E4F6901C3 -:1020C000F901F080F826A1F40150110988F78FEF8B -:1020D00089838A831B820E949B1B8160782F9D834A -:1020E0008C8349815A816B818D810E94D8102FC0C9 -:1020F0009091DA0191FF04C08E830E943F048E818B -:1021000025E030E0A501022E01C0440F0A94EAF751 -:10211000E42E4F21C1F029839A828E2191E009F4A7 -:1021200090E09B830E949B1B8160782F9D838C8312 -:1021300049815A816B818D810E94D810F60180817E -:10214000E826E08204C021503109E0F6BDCF0E94AC -:102150003B1F109176010E94EA0F1817B9F00E94F8 -:10216000EA0F8093760126960FB6F894DEBF0FBE75 -:10217000CDBFDF91CF911F910F91FF90EF90DF9036 -:10218000CF90BF90AF909F900C94E30826960FB627 -:10219000F894DEBF0FBECDBFDF91CF911F910F919D -:1021A000FF90EF90DF90CF90BF90AF909F900895F9 -:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82 -:1021C0000FBECDBF4F83588769877A878B87DE0123 -:1021D000119686E0FD0111928A95E9F785E0FE01EE -:1021E000379601900D928A95E1F749815A816B816A -:1021F0007C818D819E810E9421172B960FB6F894C9 -:10220000DEBF0FBECDBFDF91CF910895CF9388235E -:1022100009F4C2C0C82F823859F40E94EA0F81FD28 -:10222000BBC089E30E94FB190E94C81A89E30CC055 -:10223000833879F40E94EA0F80FDAEC083E50E94E6 -:10224000FB190E94C81A83E50E943D1ACF910C9495 -:10225000C81A843859F40E94EA0F82FD9DC087E4B1 -:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6 -:10227000813A48F48C2F0E947E2181118DC08C2FD1 -:102280000E94FB19E3CF80E28C0F883048F4C770BE -:1022900081E001C0880FCA95EAF70E94811AD6CF63 -:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB -:1022B00083E890E005C081E890E002C082E890E009 -:1022C000CF910C940C1088E58C0F833108F064C01A -:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118 -:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186 -:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106 -:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173 -:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB -:1023200038C082EE90E035C089EE90E032C08AEE8F -:1023300090E02FC085EB90E02CC086EB90E029C0A8 -:1023400087EB90E026C08CEC90E023C08DEC90E011 -:1023500020C083E891E01DC08AE891E01AC082E9BC -:1023600091E017C084E991E014C081E292E011C0CD -:1023700083E292E00EC084E292E00BC085E292E03C -:1023800008C086E292E005C087E292E002C08AE2DD -:1023900092E0CF910C942210CF910895882309F4F4 -:1023A0004BC0823859F40E94EA0F81FF45C089E38F -:1023B0000E94FB190E94C81A89E30CC0833871F48B -:1023C0000E94EA0F80FF38C083E50E94FB190E943B -:1023D000C81A83E50E943D1A0C94C81A843859F42F -:1023E0000E94EA0F82FF28C087E40E94FB190E9426 -:1023F000C81A87E4EFCF9CEF980F913A58F390E218 -:10240000980F983050F4877091E001C0990F8A9529 -:10241000EAF7892F0E94871ADFCF9BE5980F933048 -:1024200020F480E090E00C940C10885A833120F462 -:1024300080E090E00C9422100895882321F00E94FF -:10244000811A0C94C81A0895882321F00E94871AD3 -:102450000C94C81A08957F928F929F92AF92BF9268 -:10246000CF92DF92EF92FF920F931F93CF93DF9360 -:102470001F92CDB7DEB77C01C62E772EFC010581F9 -:1024800002950F70128111110E949E1A0E94F41978 -:10249000882379F0112369F080E28C0D883048F0B0 -:1024A00082E00E94DD190E94F41991E0D82ED9260D -:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C -:1024C0000C94B323872D807F072D0F70882311F084 -:1024D0000295007F112389F0002309F490C180E266 -:1024E0008C0D883020F4802F0E94811A03C0802F29 -:1024F0000E94911A0E94C81A82C18C2D0E94CE118E -:10250000002309F495C180E28C0D883020F4802FDF -:102510000E94871A03C0802F0E94971A0E94C81A2F -:1025200087C1972D907F872D8F70903211F0829503 -:10253000807FCC2021F0F1E0CF16B1F01EC0112336 -:1025400049F0002309F414C1013009F011C10E94BF -:10255000B11A6EC1002319F0013009F469C18983F1 -:102560000E94B41A89810AC1112321F0023008F0B7 -:102570005FC1FEC001115CC101C1112321F0002324 -:1025800009F4F6C03CC1002309F4F8C03EC1872D10 -:1025900086958695837090E0009719F0019761F019 -:1025A00047C1112321F08C2D972D937002C080E03C -:1025B00090E00E940C103CC1112321F08C2D972D2E -:1025C000937002C080E090E00E94221031C18C2DF7 -:1025D000112319F00E94431E02C00E94AB1E0E94EC -:1025E000301F26C1872D837009F052C0111120C100 -:1025F0008C2D829586958770880F880F9C2D9F70F3 -:10260000892E912CA12CB12C082E04C0880C991C69 -:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041 -:1026200020E030E0B901A80104C0440F551F661F27 -:10263000771F8A95D2F7CB01BA0160957095809586 -:10264000909503C060E070E0CB01272D269526957C -:10265000237030E02230310569F02330310589F0F4 -:10266000682979298A299B292130310571F00E9436 -:102670006918DEC0682979298A299B290E94851852 -:10268000D7C00E946918C501B4010E944D18D0C07E -:10269000112319F0872D817001C08695882309F4D4 -:1026A000C7C08C2D829586958770880F880F9C2DCA -:1026B0009F70892E912CA12CB12C082E04C0880C5F -:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC -:1026D00010E020E030E0B901A80104C0440F551F0C -:1026E000661F771F8A95D2F7CB01BA016095709566 -:1026F0008095909503C060E070E0CB01272D269572 -:1027000026952370422F50E04230510569F0433046 -:10271000510589F0682979298A299B294130510579 -:1027200071F00E94431984C0682979298A299B295C -:102730000E945F197DC00E944319C501B4010E9427 -:10274000271976C08C2D90E0FC01E05EF109E5319F -:10275000F10508F050C0E059FF4F0C94B3230C2D45 -:102760000F70872D8F71112331F00E94C018802FB8 -:102770000E941D125DC00E94E118802F0E94241249 -:1027800057C0112339F0011153C0872D8F710E945A -:1027900006194EC0023008F04BC0F7CF112339F0B4 -:1027A000872D8F710E94C01843C01123C9F3872D54 -:1027B0008F710E94E1183CC0112329F0872D8F7181 -:1027C0000E94AB1835C00E94A11832C0112351F0ED -:1027D000172D1F71812F0E94C01863E0812F0E9466 -:1027E000D41926C081E00E94DD19023008F182E090 -:1027F0000E94DD191DC0112331F0002389F28C2DB8 -:102800000E94061115C0002391F28C2D0E94CE115A -:102810000FC0472D4F706C2DC7010E9415050E94F7 -:10282000C51706C0472D4F706C2DC7010E94F205D9 -:10283000DD20F9F00E94D01980FD1BC0F701128243 -:102840000E94CA190E94C018C7010E9448140E9421 -:10285000CA190F90DF91CF911F910F91FF90EF90C8 -:10286000DF90CF90BF90AF909F908F907F900C940F -:10287000E1180F90DF91CF911F910F91FF90EF9092 -:10288000DF90CF90BF90AF909F908F907F900895F2 -:102890000F931F93CF93DF93EC01888199812B8154 -:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B -:1028B0000E944A05882371F0688179818A810E948B -:1028C000C6198C010E947B190E944218B801CE01E2 -:1028D0000E942B12DF91CF911F910F9108950E94BA -:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471 -:1028F000E11F0E94301F80E090E00E940C1080E0F9 -:1029000090E00C9422100E948E1A0C946F140E9476 -:10291000BB19292F22952F7030E02C3031054CF453 -:102920002A3031056CF42250310922303105A8F4E7 -:1029300007C02C30310569F02F30310551F00DC042 -:10294000803F69F018F4803E40F409C0843F29F4C8 -:1029500006C093FB882780F9089580E0089581E000 -:102960000895CF93DF9300D000D01F92CDB7DEB78C -:102970000F900F900F900F900F90DF91CF910895CF -:10298000CF93DF9300D000D000D0CDB7DEB726962E -:102990000FB6F894DEBF0FBECDBFDF91CF91089583 -:1029A0001F93CF93DF93C091850116E0809186013C -:1029B000C81799F0D0E01C9FF0011D9FF00D112465 -:1029C000E957FE4F408151816281738184819581F5 -:1029D0000E94C0142196C770E9CFDF91CF911F915B -:1029E00008954091B7015091B8016091B90170917B -:1029F000BA018091BB019091BC010C94C0148091EC -:102A0000BC0182958F7009F054C08091B901882370 -:102A100009F44FC080918501A09186016091B701B2 -:102A20007091B8014091BA015091BB01B6E08A178C -:102A300009F43FC090E041155105C1F17F3F11F409 -:102A40006F3FA1F1B89FF001B99FF00D1124E95734 -:102A5000FE4F218172132AC02081621327C0228178 -:102A6000211124C0238134812417350710F421500B -:102A70003109241B350B283C3105C0F42091BC01E1 -:102A80002F7020612093BC0126E0289FF001299F30 -:102A9000F00D1124E457FE4F80818F708061808398 -:102AA00087EB91E00E9448140C94D0140196877033 -:102AB000BECF0895CF92DF92EF92FF920F931F93B4 -:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32 -:102AD0000FBECDBF8C0185E0F801DE011D9601908F -:102AE0000D928A95E1F7D8014C9111965C9111975E -:102AF00012966C9112971396CD90DC9014973091AA -:102B0000B7017091B8018091BA019091BB01009713 -:102B100009F46BC17F3F19F43F3F09F466C1E090AF -:102B2000B901EE2009F4C0C02091BC01C816D90635 -:102B300028F0F601E81BF90BCF0104C080959095B1 -:102B40008C0D9D1DFF24F394883C910578F0F12CA9 -:102B5000207F09F0C6C07C2DD98AC88A89890E9445 -:102B6000B11487EB91E00E944814B1C0822F807F9E -:102B700009F046C0751314C0341312C0611110C09F -:102B80002F7020612093BC010E94F11487EB91E02B -:102B90000E9448148091BC01D80115968C932EC0D8 -:102BA000CD2819F15F3F11F44F3FF9F0F62E611176 -:102BB0001CC0809185012091860136E0821709F4BE -:102BC0005AC090E0389FF001399FF00D1124E95769 -:102BD000FE4F7181571306C07081471303C0728185 -:102BE000711103C001968770E9CFF62E662309F4B0 -:102BF00018C18091BC0181608093BC01F12C11C18E -:102C0000751308C0341306C0611104C08091BC0163 -:102C1000D801C3C04D875E878D859E856A8B0E94D3 -:102C200087146A898823E1F16623D1F12091BC01E0 -:102C3000822F82958F7090E0029774F08091B70197 -:102C40009091B80198878F831986DB86CA862C8776 -:102C5000CE0107960E94481486E0F801A7EBB1E088 -:102C600001900D928A95E1F70E94FF140E94F114E1 -:102C7000FF24F394D6C04D875E878D859E850E9484 -:102C8000BB19292F22952F7030E0223031050CF02E -:102C9000BCC09F7009F0B6C0805E883008F4C1C027 -:102CA000C8010E944814E4CFC816D90608F453C0DE -:102CB000F601E81BF90BCF01883C910508F450C0E0 -:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E -:102CD000F1E086E0DF011D928A95E9F70E94F11488 -:102CE000A0C0751314C0341312C0611110C08091BC -:102CF000BC01F8018583C8010E94481486E0E7EB17 -:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C -:102D10005E878D859E856A8B0E9487146A898823C9 -:102D200009F4BECF662309F4BBCF2091BC01822FEA -:102D300082958F7090E002970CF48ECF8091B7014E -:102D40009091B8019A8389831B82DD82CC822E8385 -:102D5000CE0101967FCF809590958C0D9D1DACCFB7 -:102D6000F62E662309F49CCF75132EC034132CC0A5 -:102D70002091BC0120FD1FC0822F82958F70D9F059 -:102D8000D80115962C9315978F3049F08F5F982FA7 -:102D90009295907F822F8F70892B15968C93C80106 -:102DA0000E94481486E0F801A7EBB1E001900D9273 -:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7 -:102DC0000D928A95E1F72DC04D875E878D859E8592 -:102DD0000E948714811140CF8091BC018160809353 -:102DE000BC01C8010E9448141CC0662309F458CFD6 -:102DF0004D875E878D859E850E948714882309F400 -:102E00004FCF2ACF811148CF0CC0243031050CF0B0 -:102E100047CF9F7009F440CFF8019581907F09F06A -:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D -:102E3000DF91CF911F910F91FF90EF90DF90CF9096 -:102E400008951F93CF93DF93CDB7DEB72C970FB6BE -:102E5000F894DEBF0FBECDBF4F83588769877A874E -:102E60008B879C87CE0107960E945A15882369F0AC -:102E70008F8198852A853B85232BF1F19F3F09F0AF -:102E800063C08F3F09F060C037C086E0FE0137960F -:102E9000DE01119601900D928A95E1F76F81788598 -:102EA000EA85FB85309741F17F3F11F46F3F21F1B7 -:102EB0002091860130E0C9010196877099274091E1 -:102EC000850150E08417950709F447C069837A8328 -:102ED000FD83EC8396E0929FD001939FB00D112467 -:102EE000A957BE4FFE01319601900D929A95E1F7D8 -:102EF000809386010E94D01416E080918501909104 -:102F000086018917C1F1189FC001112489579E4F6E -:102F10000E945A15882379F1E09185011E9FF001E6 -:102F20001124E957FE4F4081518162817381848170 -:102F300095810E94C0148091850190E00196877070 -:102F4000992780938501D9CF4F81588569857A85E6 -:102F50008B859C850E94C014CFCF0E948314109251 -:102F6000860110928501E7EBF1E086E0DF011D921A -:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45 -:102F8000CDBFDF91CF911F910895EF92FF920F93E4 -:102F90001F93CF93DF938C01009709F46CC0F12C41 -:102FA000EE24E394E8012196F8018491843740F4FB -:102FB000843008F051C0813081F0823019F15BC05B -:102FC000853709F444C0A8F19CE7980F903708F0C2 -:102FD00052C08F770E94CE1141C00E5F1F4FFE017D -:102FE000C49180E28C0F883048F4C7708E2D01C0E8 -:102FF000880FCA95EAF70E94A11A14C08C2F0E946C -:1030000006112DC00E5F1F4FFE01C49180E28C0F90 -:10301000883058F4C7708E2D01C0880FCA95EAF722 -:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3 -:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3 -:103040009FE00197F1F700C00000C150F6CF0E5F7E -:103050001F4FFE01F49003C00E9406118E018F2DB8 -:10306000882309F49FCFEFE9FFE03197F1F700C023 -:1030700000008150F5CFDF91CF911F910F91FF900C -:10308000EF90089508956093C1017093C2018093F9 -:10309000C3019093C4010C946F140F931F9300917C -:1030A000C1011091C2012091C3013091C401DC0122 -:1030B000CB01802B912BA22BB32B8093C10190933A -:1030C000C201A093C301B093C4011F910F910C944E -:1030D0006F140F931F930091C1011091C2012091B1 -:1030E000C3013091C401DC01CB0180239123A223D1 -:1030F000B3238093C1019093C201A093C301B09305 -:10310000C4011F910F910C946F140F931F930091A2 -:10311000C1011091C2012091C3013091C401DC01B1 -:10312000CB0180279127A227B3278093C1019093D9 -:10313000C201A093C301B093C4011F910F910C94DD -:103140006F141092BD011092BE011092BF01109237 -:10315000C0010C946F1441E050E060E070E004C0E6 -:10316000440F551F661F771F8A95D2F74093BD0104 -:103170005093BE016093BF017093C0010C946F1413 -:1031800041E050E060E070E004C0440F551F661F4E -:10319000771F8A95D2F78091BD019091BE01A091D1 -:1031A000BF01B091C001482B592B6A2B7B2B409358 -:1031B000BD015093BE016093BF017093C0010C9498 -:1031C0006F1441E050E060E070E004C0440F551F10 -:1031D000661F771F8A95D2F7409550956095709538 -:1031E0008091BD019091BE01A091BF01B091C0013D -:1031F000482359236A237B234093BD015093BE018A -:103200006093BF017093C0010C946F1441E050E0D3 -:1032100060E070E004C0440F551F661F771F8A9559 -:10322000D2F78091BD019091BE01A091BF01B091F4 -:10323000C001482759276A277B274093BD01509337 -:10324000BE016093BF017093C0010C946F140F9383 -:103250001F930091BD011091BE012091BF013091DB -:10326000C001DC01CB01802B912BA22BB32B8093CF -:10327000BD019093BE01A093BF01B093C0011F9107 -:103280000F910C946F140F931F930091BD01109137 -:10329000BE012091BF013091C001DC01CB01802330 -:1032A0009123A223B3238093BD019093BE01A093E9 -:1032B000BF01B093C0011F910F910C946F140F9335 -:1032C0001F930091BD011091BE012091BF0130916B -:1032D000C001DC01CB0180279127A227B32780936F -:1032E000BD019093BE01A093BF01B093C0011F9197 -:1032F0000F910C946F140895CF92DF92EF92FF928A -:103300000F931F93CF93DF938C01C090C101D09096 -:10331000C201E090C301F090C4018091BD01909181 -:10332000BE01A091BF01B091C001C82AD92AEA2AE2 -:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520 -:10334000A795979587950A94D2F780FF06C0B80194 -:103350008C2F0E944808019721F4219760F780E0A4 -:1033600001C08C2FDF91CF911F910F91FF90EF90B3 -:10337000DF90CF900895CF93DF93EC010E947C19EA -:10338000BE010E944808DF91CF910895CB010E94B1 -:10339000BB1908958091C5018595859585950895FA -:1033A0008091C5018770089598E0899F900111244C -:1033B000262B2093C5010C94C0182091C50180953F -:1033C00082238093C501982F977069F430E0482FCD -:1033D000552747FD50952417350729F08595859584 -:1033E00085950C94E11808959091C501977081E03E -:1033F00009F480E0089590910C01992321F09091B7 -:103400000D01911109C020910E0130910F01F901B8 -:1034100032969FEF40E01FC0982F9695969596950F -:103420009F3050F5E0910E01F0910F01E90FF11D71 -:10343000877021E030E0A90102C0440F551F8A9532 -:10344000E2F7CA019181892B818308959F3F39F06A -:103450004F5F4E3041F051915813F8CF0DC05111CC -:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08 -:1034700097FDFA9582830895089590910C01992300 -:1034800021F090910D01911109C020910E01309110 -:103490000F01F9013296205F3F4F1FC0982F96957C -:1034A000969596959F30F0F4E0910E01F0910F0102 -:1034B000E90FF11D877021E030E0A90102C0440F3F -:1034C000551F8A95E2F7CA018095918189238183EE -:1034D00008953196E217F30729F090819813F9CFF8 -:1034E0001082F7CF089581E090E0E0910E01F09115 -:1034F0000F01E80FF91F1082019680319105A9F79D -:1035000008959091D901892B8093D90108958095D0 -:103510009091D90189238093D90108951092D901FE -:1035200008959091D801892B8093D80108958095B2 -:103530009091D80189238093D80108951092D801E1 -:1035400008959091D701892B8093D7010895809594 -:103550009091D70189238093D70108951092D701C4 -:1035600008958093C60108951092C6010895809130 -:103570000E0190910F01FC0131969C01205F3F4F9D -:1035800080E0919191118F5FE217F307D1F70895D1 -:10359000E0910E01F0910F018091D9018083E091BB -:1035A0000E01F0910F0190818091D801892B8083C9 -:1035B000E0910E01F0910F0190818091D701892B4C -:1035C00080838091C601882361F0E0910E01F09123 -:1035D0000F019081892B80830E94B71A811110926C -:1035E000C60180910E0190910F010C94F60F20E01E -:1035F000009739F0AC0141505109842395232F5F86 -:10360000F7CF822F0895CF92DF92EF92FF926C0155 -:10361000EE24FF24C114D104E104F10421F0C70118 -:10362000B60120E101C020E0C72ED82EE92EFF24EC -:10363000C114D104E104F10419F0285FC701B601F7 -:103640006B017C0154E0F694E794D794C7945A95A3 -:10365000D1F7C114D104E104F10419F02C5FC701C2 -:10366000B6016B017C0142E0F694E794D794C794CD -:103670004A95D1F7C114D104E104F10419F02E5F89 -:10368000C701B601DC01CB01B695A7959795879543 -:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5 -:1036A000DF90CF9008958091F101843021F1109244 -:1036B000DB0120E488E190E00FB6F894A8958093B0 -:1036C00060000FBE2093600080E00E94E30883B793 -:1036D000817F846083BF83B7816083BF789488953E -:1036E00083B78E7F83BF88E10FB6F8948093600024 -:1036F000109260000FBE0895089508950E947C1BEB -:103700000E944B030E947D1B0E94400491E08111A6 -:1037100001C090E0892F08950E9483140E94EA0F4F -:103720000C94E30882E084BD93E095BD9AEF97BDC9 -:1037300080936E0008952FB7F8948091DC019091EA -:10374000DD01A091DE01B091DF012FBF0895CF927E -:10375000DF92EF92FF920F931F932FB7F89440914F -:10376000DC015091DD016091DE017091DF012FBF1E -:103770006A017B01EE24FF248C0120E030E0C016BA -:10378000D106E206F30610F4415051099A01281BB4 -:10379000390BC9011F910F91FF90EF90DF90CF90EF -:1037A00008951F920F920FB60F9211248F939F933B -:1037B000AF93BF938091DC019091DD01A091DE0178 -:1037C000B091DF010196A11DB11D8093DC019093A2 -:1037D000DD01A093DE01B093DF01BF91AF919F9116 -:1037E0008F910F900FBE0F901F9018950E94E70CBD -:1037F000F8942FEF87EA91E6215080409040E1F75E -:1038000000C0000087E090EBDC018093FB01909307 -:10381000FC01A093FD01B093FE019CE088E10FB68E -:10382000F894A895809360000FBE90936000FFCF3E -:10383000EF92FF920F931F93CF93DF93D82FCDE09A -:103840008C2F0E94390405E010E0E82EF12CC7010E -:10385000002E02C0959587950A94E2F780FF09C073 -:10386000602F7C2F80E00E94F305D81302C081E016 -:1038700006C00150110958F7C15010F780E0DF91E0 -:10388000CF911F910F91FF90EF900895CF93C82F84 -:103890008CE20E94181C882321F08C2FCF910C946D -:1038A000181C80E0CF910895CF930E949B1D811139 -:1038B00002C00E94811DC5E6C15049F00E944B0321 -:1038C0008FE39CE90197F1F700C00000F5CF89E292 -:1038D0000E94461C811113C18AE20E94461C81117C -:1038E0000E94811D85E00E94461C81110E94F61BEA -:1038F0000E94A61D8093DA0187E00E94461C88235F -:10390000A9F18BE10E94461C882351F08091DA01D5 -:1039100081FB222720F991E0922790FB81F90EC0CC -:103920008EE00E94461C882361F08091DA0182FBC0 -:10393000222720F991E0922790FB82F98093DA0107 -:1039400015C080E10E94461C9091DA01882341F065 -:1039500093FB222720F981E0822780FB93F904C0A2 -:10396000892F809580FB90F99093DA018091DA019C -:103970000E94AA1D0E94B81D8093FA0180EE0E9449 -:10398000461C882341F08091FA01982F909590FB76 -:1039900080F98093FA0189E30E94461C882359F03C -:1039A0008091FA0181FB222720F991E0922790FB78 -:1039B00081F98093FA0182EE0E94461C882359F017 -:1039C0008091FA0182FB222720F991E0922790FB57 -:1039D00082F98093FA0186EE0E94461C882359F0F2 -:1039E0008091FA0183FB222720F991E0922790FB36 -:1039F00083F98093FA0183EE0E94461C882359F0D4 -:103A00008091FA0184FB222720F991E0922790FB14 -:103A100084F98093FA0185E30E94461C882359F0BB -:103A20008091FA0185FB222720F991E0922790FBF3 -:103A300085F98093FA0181E30E94461C882359F09E -:103A40008091FA0186FB222720F991E0922790FBD2 -:103A500086F98093FA0181E10E94461C882359F07F -:103A60008091FA0187FB222720F991E0922790FBB1 -:103A700087F98093FA018091FA010E94BC1D809120 -:103A8000FA0187FB882780F980930D0187E20E9465 -:103A9000461CC82F8EE10E94461C8111C2608FE136 -:103AA0000E94461C8111C46080E20E94461C811164 -:103AB000C86081E20E94461C8111C06182E20E94BE -:103AC000461C8111C06283E20E94461C8111C064C1 -:103AD00084E20E94461C882311F0C06802C0CC23F7 -:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4 -:103AF000682F70E080E090E0CF910C944318CF9154 -:103B000008956DEE7EEF80E090E00E94ED2360E08E -:103B100082E090E00E94DB2360E083E090E00E947E -:103B2000DB2360E084E090E00E94DB2360E085E03E -:103B300090E00C94DB2380E090E00E94D52321E00C -:103B40008D3E9E4F09F020E0822F089582E090E0A4 -:103B50000C94CD23682F82E090E00C94DB2383E06B -:103B600090E00C94CD23682F83E090E00C94DB234D -:103B700084E090E00C94CD23682F84E090E00C94D6 -:103B8000DB238091E20180FF0BC06091130185E08F -:103B9000689FB001112475956795759567952BC041 -:103BA00081FF09C06091130185E0689FB001112475 -:103BB0007595679520C082FF07C06091130185E06D -:103BC000689FB001112417C09091E3019923D1F0AF -:103BD00060911201961788F72091130185E0289FC4 -:103BE00090011124929FA001939F500D112470E029 -:103BF000CA010E949F236038710540F46115710568 -:103C000039F002C065E070E0862F08958FE70895CF -:103C100081E008958091E20180FF08C06091110168 -:103C200070E0759567957595679521C081FF06C011 -:103C30006091110170E07595679519C082FF04C00D -:103C40006091110170E010C09091E3019923C1F0DF -:103C5000609110019617A0F780911101899FC00112 -:103C6000112470E00E949F236038710528F46115CB -:103C7000710521F0862F08958FE7089581E008955A -:103C800061E070E0F4CF803F21F40E94C11D819576 -:103C900004C0813F29F40E94C11D8093E60108956C -:103CA000823F21F40E94C11D819504C0833F29F405 -:103CB0000E94C11D8093E5010895893F19F40E9477 -:103CC0000A1E05C08A3F31F40E940A1E8195809326 -:103CD000E70108958B3F21F40E940A1E819504C0DC -:103CE0008C3F29F40E940A1E8093E8010895843FC6 -:103CF00021F48091E401816017C0853F21F4809117 -:103D0000E401826011C0863F21F48091E401846067 -:103D10000BC0873F21F48091E401886005C0883F93 -:103D200031F48091E40180618093E40108958D3F36 -:103D300021F48091E20181600BC08E3F21F48091DB -:103D4000E201826005C08F3F29F48091E201846026 -:103D50008093E2010895803F39F48091E60187FF66 -:103D60006CC01092E60169C0813F29F48091E601A0 -:103D70001816BCF362C09091E501823F29F497FFC9 -:103D80005CC01092E50159C0833F19F41916CCF3B9 -:103D900054C0893F41F48091E70118160CF04DC0E2 -:103DA0001092E7014AC08A3F29F48091E70187FF1A -:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6 -:103DC0001092E8013AC08C3F29F48091E80118165E -:103DD000BCF333C0843F21F48091E4018E7F17C08F -:103DE000853F21F48091E4018D7F11C0863F21F44D -:103DF0008091E4018B7F0BC0873F21F48091E40127 -:103E0000877F05C0883F31F48091E4018F7E8093E5 -:103E1000E40113C08D3F21F48091E2018E7F0BC03D -:103E20008E3F21F48091E2018D7F05C08F3F29F400 -:103E30008091E2018B7F8093E2018091E501811105 -:103E40000EC08091E60181110AC08091E7018111C5 -:103E500006C08091E801811102C01092E30108952B -:103E600084EE91E00E9401100E949B1B9093E1015F -:103E70008093E00108951F93CF93DF938091E00139 -:103E80009091E1010E94A71BAC019091E30199235D -:103E900021F02091140130E006C0209115018AE044 -:103EA000289F900111244217530708F486C080917F -:103EB000E501C091E601D091E7011091E80181117F -:103EC00007C0C11176C0D11174C0111172C075C084 -:103ED0009F3F19F09F5F9093E301181624F40E940E -:103EE000C11D8093E5018091E50187FF05C00E9417 -:103EF000C11D81958093E5011C1624F40E94C11D0B -:103F00008093E6018091E60187FF05C00E94C11DF4 -:103F100081958093E6016091E501662339F1C091B6 -:103F2000E601CC2319F1772767FD7095872F972F2E -:103F30000E94B02223E333E343E35FE30E941423B0 -:103F40000E947D226093E5016C2F772767FD7095B5 -:103F5000872F972F0E94B02223E333E343E35FE3ED -:103F60000E9414230E947D226093E6011D1624F412 -:103F70000E940A1E8093E7018091E70187FF05C038 -:103F80000E940A1E81958093E701111624F40E9475 -:103F90000A1E8093E8018091E80187FF05C00E9416 -:103FA0000A1E81958093E801DF91CF911F910C94B7 -:103FB000301F9F3F09F08ECF96CFDF91CF911F9199 -:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE -:103FD0001092E3011092E2010895833081F128F4F8 -:103FE000813059F08230D1F00895853009F449C00C -:103FF000B8F1863009F456C0089580911501262F36 -:1040000030E0280F311D2F3F310524F4680F6093F5 -:10401000150108958FEF8093150108958091140183 -:10402000262F30E0280F311D2F3F310524F4680F73 -:104030006093140108958FEF809314010895809187 -:104040001301262F30E0280F311D2F3F310524F4B6 -:10405000680F6093130108958FEF80931301089503 -:1040600080911201262F30E0280F311D2F3F31059E -:1040700024F4680F6093120108958FEF809312016A -:10408000089580911101262F30E0280F311D2F3F18 -:10409000310524F4680F6093110108958FEF809328 -:1040A0001101089580911001262F30E0280F311D55 -:1040B0002F3F310524F4680F6093100108958FEFAE -:1040C000809310010895833011F128F4813049F074 -:1040D000823091F00895853081F120F18630C1F170 -:1040E000089580911501681720F4861B80931501AF -:1040F000089510921501089580911401681720F415 -:10410000861B8093140108951092140108958091E4 -:104110001301681720F4861B8093130108951092F1 -:104120001301089580911201681720F4861B809373 -:1041300012010895109212010895809111016817DB -:1041400020F4861B809311010895109211010895A7 -:1041500080911001681720F4861B80931001089548 -:104160001092100108950F931F938D3109F46BC0C5 -:1041700008F03FC08E3009F47FC0C0F4873009F4E6 -:1041800069C068F4863009F0B1C08091DA01817F9E -:104190008E7F8093DA0181E08093EA01A8C08830A5 -:1041A00009F4A2C08B3009F49FC0A0C0863109F485 -:1041B0009BC078F4803109F472C0813109F096C057 -:1041C0000E94831490910D0181E0892780930D0155 -:1041D0008BC0893109F488C08B3109F087C0809188 -:1041E000DA0181FB222720F991E0922790FB81F9E7 -:1041F0004CC0853309F470C048F4873209F46CC0B0 -:1042000008F459C0893209F467C070C0833438F4A7 -:104210008A3308F04EC0883309F466C067C083341F -:1042200009F45AC0883409F061C00E9483140FEF6A -:1042300013ED20E3015010402040E1F700C00000E2 -:104240000E94F61B51C00E9437220E94EA0F0E9472 -:10425000E3084AC09091DA01892F8095817080FB34 -:1042600090F929F0966098609093DA0140C0997FA8 -:10427000977F9093DA0138C08091DA0182FB222780 -:1042800020F991E0922790FB82F98093DA0199233B -:1042900059F18091DA0181608093DA0125C0809123 -:1042A000DA0183FB222720F991E0922790FB83F922 -:1042B000ECCF895301C08D5141E050E060E070E0E7 -:1042C0008A019B0104C0000F111F221F331F8A9512 -:1042D000D2F7C901B80104C061E070E080E090E06D -:1042E0000E9443180E94831481E001C080E01F9166 -:1042F0000F91089580E0089580E00895CF93C82F2E -:104300008091EA01813079F018F08230E9F187C0BC -:10431000E0910E01F0910F018081813169F08232CC -:1043200009F07FC009C0E0910E01F0910F0180817A -:10433000813111F0823261F48C2F0E947A21811137 -:1043400004C08C2F0E94B3201DC081E090E01AC0F1 -:104350008C2F0E947C21811114C0C43179F048F463 -:10436000CB3079F0C03109F060C082E08093EA017F -:1043700008C0C93219F0C83321F057C01092EA01C1 -:1043800054C081E0817053C0C93289F118F5C4313D -:1043900071F1A8F4C73009F046C08AE08093150196 -:1043A00094E19093140193E0909313018093120190 -:1043B00088E08093110188E28093100134C0CE51CF -:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB -:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC -:1043E00013C0C13579F0C235F1F461E00DC08091A0 -:1043F000E901882319F01092E90115C081E080934A -:10440000EA0115C061E006C08091E9010E94ED1F3C -:104410000AC06AE08091E9010E94632004C0109202 -:10442000EA0180E004C081E002C080E0ABCFCF9120 -:104430000895E1E8F0E08081886080838081816078 -:1044400080838FB7F89493E09093890090ED9093D8 -:1044500088008FBF0895EFE6F0E08081826080835E -:104460000895EFE6F0E080818D7F80830895EFE688 -:10447000F0E0908182E08927808308951F920F9257 -:104480000FB60F9211242F933F934F935F936F9327 -:104490007F938F939F93AF93BF93EF93FF938091FD -:1044A000EB019091EC0101969093EC018093EB016C -:1044B000811103C082E00E94E308E091EC01E695DF -:1044C000E695F0E0EC54FB4FE4918091EB018E1304 -:1044D00003C080E00E94E308FF91EF91BF91AF918C -:1044E0009F918F917F916F915F914F913F912F910C -:1044F0000F900FBE0F901F90189504D06894B111C3 -:104500008DC0089570D088F09F5790F0B92F9927EB -:10451000B751A0F0D1F0660F771F881F991F1AF0CE -:10452000BA95C9F712C0B13081F077D0B1E00895E3 -:1045300074C0672F782F8827B85F39F0B93FCCF364 -:10454000869577956795B395D9F73EF490958095C4 -:10455000709561957F4F8F4F9F4F0895E89409C0E4 -:1045600097FB3EF490958095709561957F4F8F4FA6 -:104570009F4F9923A9F0F92F96E9BB279395F695BC -:10458000879577956795B795F111F8CFFAF4BB0F3A -:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E -:1045A000882311F096E911C0772321F09EE8872F28 -:1045B000762F05C0662371F096E8862F70E060E0E4 -:1045C0002AF09A95660F771F881FDAF7880F96955D -:1045D000879597F9089557FD9058440F551F59F046 -:1045E0005F3F71F04795880F97FB991F61F09F3FE0 -:1045F00079F087950895121613061406551FF2CF09 -:104600004695F1DF08C0161617061806991FF1CF58 -:1046100086957105610508940895E894BB2766277F -:104620007727CB0197F908950BD078C069D028F08F -:104630006ED018F0952309F05AC05FC01124EECF58 -:10464000CADFA0F3959FD1F3950F50E0551F629FED -:10465000F001729FBB27F00DB11D639FAA27F00DDB -:10466000B11DAA1F649F6627B00DA11D661F829F02 -:104670002227B00DA11D621F739FB00DA11D621FE7 -:10468000839FA00D611D221F749F3327A00D611D04 -:10469000231F849F600D211D822F762F6A2F1124E6 -:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39 -:1046B000BB1F661F771F881F91505040A9F79E3F70 -:1046C000510570F014C0AACF5F3FECF3983EDCF3C5 -:1046D000869577956795B795F795E7959F5FC1F7AD -:1046E000FE2B880F911D9695879597F9089597F958 -:1046F0009F6780E870E060E008959FEF80EC089588 -:1047000000240A94161617061806090608950024B0 -:104710000A9412161306140605060895092E03942A -:10472000000C11F4882352F0BB0F40F4BF2B11F49E -:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF -:10474000072E16F4009407D077FD09D00E94B923F4 -:1047500007FC05D03EF4909581959F4F0895709584 -:1047600061957F4F0895EE0FFF1F0590F491E02DA6 -:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8 -:10478000B70710F0A61BB70B881F991F5A95A9F7FA -:1047900080959095BC01CD010895F999FECF92BD09 -:1047A00081BDF89A992780B50895A8E1B0E042E06C -:1047B00050E00C94F523262FF999FECF92BD81BDD0 -:1047C000F89A019700B4021639F01FBA20BD0FB64F -:1047D000F894FA9AF99A0FBE08950196272F0E942D -:1047E000DC230C94DB23DC01CB01FC01F999FECF27 -:1047F00006C0F2BDE1BDF89A319600B40D92415069 -:0A4800005040B8F70895F894FFCF78 -:10480A000220E508730950091C09E8080101C701DB -:10481A0028080A03140A3F4D363975042804F2039E -:10482A00B9034C0365037E039703010203040506DB -:04483A000708090062 -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/kastyle/compiled.hex b/keyboards/ergodox_ez/keymaps/kastyle/compiled.hex deleted file mode 100644 index 0a229cac5..000000000 --- a/keyboards/ergodox_ez/keymaps/kastyle/compiled.hex +++ /dev/null @@ -1,1158 +0,0 @@ -:100000000C947A020C94BE020C94BE020C94BE02B4 -:100010000C94BE020C94BE020C94BE020C94BE0260 -:100020000C94BE020C94BE020C94620D0C94340E1F -:100030000C94BE020C94BE020C94BE020C94BE0240 -:100040000C94BE020C943E220C94BE020C94BE0290 -:100050000C94BE020C94D11B0C94BE020C94BE02F4 -:100060000C94BE020C94BE020C94BE020C94BE0210 -:100070000C94BE020C94BE020C94BE020C94BE0200 -:100080000C94BE020C94BE020C94BE020C94BE02F0 -:100090000C94BE020C94BE020C94BE020C94BE02E0 -:1000A0000C94BE020C94BE020C94BE02A10EC30EB0 -:1000B000B10FC30EB10F080F2B0FB10F800F930FAD -:1000C0006212621291129112C712E71218141814D8 -:1000D000F2121814A213A2130914181418141214EB -:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300 -:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0 -:10010000C113CE13D513DC13E6130000F0A12E00AB -:100110002B00E000E100354100001E001400040047 -:100120001D7134004D001F001A0016001B00E10471 -:100130004C00200008000700060050002A002100A3 -:100140001500090019004F004A00220017000A009C -:10015000050000002971E30001540000007F000049 -:10016000657465000154000000770000E200230080 -:100170001C000B00110000002971240018000D0064 -:10018000100052004B0025000C000E0036005100FC -:100190002C00260012000F0037002F002800270037 -:1001A00013003342387130004E002D00310034000E -:1001B000E500C10000000100010001000100010094 -:1001C00000003A001E0220022202010001003B0052 -:1001D0001F0221022302010001003C002F0226021F -:1001E0002F00010001003D00300227023000010015 -:1001F00001003E003102350035020000010001001F -:1002000001000000010000000100010001000000E9 -:100210000100000001003F005200510024020000D4 -:1002200001004000240021001E00010001004100E7 -:10023000250022001F003700010042002600230095 -:10024000200027000100430025022E0231002E006D -:100250000100440045000100010001000000010010 -:100260000100010001000100000001000100010087 -:1002700001000100010001000100F2000100010085 -:1002800001000100F000F1000100F4000100010094 -:100290000100F3000100F500010001000100010070 -:1002A0000100000001000100010000000100000049 -:1002B0000100010001000000010000000100010038 -:1002C0000100010001000000010001000100010027 -:1002D0000100A9000100010001000100AC00AA001A -:1002E000B600010001000100AB00A8000100010000 -:1002F0000100010001000100010001000100AE0049 -:1003000001000100000016034500720067006F0045 -:1003100044006F007800200045005A0000001603DA -:100320004500720067006F0044006F0078002000F5 -:1003300045005A0000000403090409026D0004018D -:1003400000A0FA09040000010301010009211101C4 -:100350000001223F000705810308000A090401008B -:100360000103010200092111010001224D000705CE -:10037000820308000A0904020001030000000921A9 -:10038000110100012236000705830308000A090451 -:1003900003000103000000092111010001223900BE -:1003A000070584031000011201100100000008ED90 -:1003B000FE071301000102000105010906A1010564 -:1003C0000719E029E7150025019508750181020547 -:1003D000081901290595057501910295017503918B -:1003E0000105071900297715002501957875018108 -:1003F00002C005010980A101850216010026B7008F -:100400001A01002AB700751095018100C0050C097A -:1004100001A1018503160100269C021A01002A9CF5 -:1004200002751095018100C005010902A1010901B1 -:10043000A10005091901290515002501950575017A -:10044000810295017503810105010930093115818A -:10045000257F95027508810609381581257F95014C -:1004600075088106050C0A38021581257F950175EE -:10047000088106C0C005010906A101050719E02988 -:10048000E715002501950875018102950175088120 -:100490000105081901290595057501910295017558 -:1004A0000391010507190029FF150025FF95067521 -:1004B000088100C0000000000000000000000001F2 -:1004C0000204060A0F17202C3A4A5D71879DB3C7B4 -:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF -:1004E0003A2C20170F0A0604020100000000000049 -:1004F0000000000011241FBECFEFDAE0DEBFCDBF49 -:1005000004B603FE24C08091FB019091FC01A091F0 -:10051000FD01B091FE018730904BA740B04BB9F47C -:100520001092FB011092FC011092FD011092FE014D -:1005300014BE84B7877F84BF88E10FB6F894809398 -:100540006000109260000FBEE0E0FFE3099511E04B -:10055000A0E0B1E0EAE0F8E402C005900D92A43317 -:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0 -:10057000B107E1F70E94A60A0C9403240C94000032 -:100580001092B9008AE08093B800089594EA90939D -:10059000BC009091BC0097FFFCCF9091B900987F70 -:1005A000983021F0903111F081E008958093BB00E4 -:1005B00084E88093BC008091BC0087FFFCCF8091D1 -:1005C000B900887F883111F0803471F780E0089598 -:1005D00084E98093BC008091BC0084FDFCCF089529 -:1005E0008093BB0084E88093BC008091BC0087FFAF -:1005F000FCCF9091B900987F81E0983209F480E0B7 -:10060000089584E88093BC008091BC0087FFFCCFF4 -:100610008091BB00089580910101811115C080E493 -:100620000E94C6028093010181110CC082E10E94E8 -:10063000F00280930101811105C08FEF0E94F0024A -:10064000809301010E94E80284B1807F84B985B162 -:10065000807F85B98AB1837F8AB98BB1837F8BB95B -:100660003E98469808950E94C604809301010E9416 -:100670000B0380B38C7080BB81B3836F81BBA5E318 -:10068000B1E0E3E4F1E08EE08E0F11921D928E1343 -:10069000FCCF0C94B004BF92CF92DF92EF92FF9206 -:1006A0000F931F93CF93DF9380910101882379F0FB -:1006B000809134018F5F80933401811108C00E94C2 -:1006C000C60480930101811102C00E94580405E311 -:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407 -:1006E000E394F12CC730D10500F58091010181110F -:1006F00064C080E40E94C60280930101811112C08F -:1007000082E10E94F0028093010181110BC0C701B8 -:100710000C2E01C0880F0A94EAF780950E94F0021F -:10072000809301010E94E80248C0CA30A1F028F479 -:10073000C83059F0C93061F005C0CC3089F070F094 -:10074000CD3089F0209A289810C0219A29980DC0A0 -:10075000229A2A980AC0239A2B9807C0529A01C05D -:10076000539A5B9802C03E9A469890EA9A95F1F7A0 -:100770009FB1799902C082E001C080E091709D250F -:10078000982B7C9902C084E001C080E0892B7D9980 -:1007900002C038E001C030E0832B7E9902C020E126 -:1007A00001C020E0822B9FB19095991F9927991F36 -:1007B0009295990F907E892B0FC080910101811134 -:1007C00049C080E40E94C60280930101882379F128 -:1007D000B12C0E94E8028B2DF8019081981719F036 -:1007E0008083C09200010E940B0321960F5F1F4F70 -:1007F000CE30D10509F076CF80910001882361F1D8 -:10080000815080930001882339F08FE99FE00197A0 -:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F -:10082000CF01825F91919D938E13FCCF15C083E120 -:100830000E94F002809301018111CACF81E40E94DD -:10084000C602809301018111C3CF0E940103B82E1B -:10085000B094BFCF80E0C0CF0E94560481E0DF910A -:10086000CF911F910F91FF90EF90DF90CF90BF90AD -:100870000895E82FF0E0ED5BFE4F80810895089524 -:100880000F931F93CF93DF93C3E4D1E010E00C2FBD -:10089000025F899190E00E94F71A180F0C13F9CFAC -:1008A000812FDF91CF911F910F9108950C94260510 -:1008B00056985E9825982D9826982E9827982F98C8 -:1008C0008FEF90E0909389008093880090938B0045 -:1008D00080938A0090938D0080938C00259A2D9AA6 -:1008E0002FEF80E792E0215080409040E1F700C078 -:1008F0000000269A2E9A2FEF80E792E02150804048 -:100900009040E1F700C00000279A2F9A2FEF80E770 -:1009100092E0215080409040E1F700C0000025980F -:100920002D982FEF80E792E0215080409040E1F732 -:1009300000C0000026982E982FEF80E792E021500B -:1009400080409040E1F700C0000027982F9856980B -:100950005E9825982D9826982E9827982F98089578 -:1009600089EA8093800089E08093810024982C9804 -:100970003F988AB18F748AB96E98479A8BB1806B11 -:100980008BB9769A0E9458040C94250580E28093D6 -:1009900001018091510181110EC00E94C00281E0CD -:1009A000809351012FEF83ED90E3215080409040E0 -:1009B000E1F700C0000080E40E94C60280930101BC -:1009C00081112EC00E94F00280930101811128C084 -:1009D0000E94F00280930101811122C08FE30E94E6 -:1009E000F0028093010181111BC00E94E80280E4A3 -:1009F0000E94C60280930101811112C08CE00E9406 -:100A0000F0028093010181110BC00E94F0028093DB -:100A10000101811105C08FE30E94F0028093010162 -:100A20000E94E80280910101089561110BC0FC0150 -:100A30008281882321F085EE0E94061103C085EE95 -:100A40000E94CE1180E090E0089508956091BD016C -:100A50007091BE018091BF019091C0010E94031B63 -:100A600056985E9825982D9826982E9827982F9816 -:100A7000813019F0823021F00895259A2D9A089539 -:100A8000269A2E9A089581E0089581E008950C94A5 -:100A9000450508950F931F93CF93DF938C01FC01BD -:100AA000C081D181CE010E947C19BE010E94F30554 -:100AB000EC01B8010E944705882309F48DC0F801B4 -:100AC0008281882309F44AC080915D0181111FC091 -:100AD000C431F0E5DF0709F051C00E94490581E00B -:100AE00080935D010E949B1B90935C0180935B014E -:100AF0001092540110925601109255011092580113 -:100B00001092570110925A011092590165C08091BC -:100B10005B0190915C010E94A71B883C910570F4D9 -:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB -:100B3000D183C0838F5F809354014EC0C43880E559 -:100B4000D80721F0C538D04501F13AC0F8018281BB -:100B5000882341F01092520182E01EC0C438E0E5C3 -:100B6000DE0759F580915201811106C086E20E948C -:100B7000061186E20E94CE1182E01CC0C438F0E566 -:100B8000DF0741F3C538D045D9F4F80182818823C5 -:100B900031F01092530180E20E941D121DC080911D -:100BA0005301811106C087E20E94061187E20E946C -:100BB000CE1180E20E9424120FC0C538D04529F31F -:100BC00081E08093520180935301C801DF91CF915E -:100BD0001F910F910C94430580E0DF91CF911F91FD -:100BE0000F910895089596E0799FF001112494E5FE -:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F -:100C0000E25FFE4F859194910895880F991FFC0132 -:100C1000E657F040859194910895880F991FFC0143 -:100C2000E65FFE4F8591949108950F931F93CF93A4 -:100C3000DF93EC01811520E3920750F5C11580E2A6 -:100C4000D80708F0C3C0CB3BD10590F4C83AD10512 -:100C500008F06AC0C53AD10508F05BC0C430D105C0 -:100C600008F0D0C1219709F0CAC101E010E00AC222 -:100C7000CF3FD10511F008F0C5C1C03FD10508F044 -:100C8000A2C0CE01805E9109089708F4BBC1B7C12C -:100C9000C13090E5D90709F4A2C020F5C0318FE436 -:100CA000D80770F4C11590E4D90708F094C0C115B5 -:100CB00021E3D20708F0A3C1DD278E01106CE2C149 -:100CC000C115D04509F09BC10E9483148FEF94E3B6 -:100CD0002CE0815090402040E1F700C000000E94CD -:100CE000F61BD0C1C11597E5D90758F4C03121E5ED -:100CF000D20708F01CC1C43180E5D80708F475C0DC -:100D00007EC1CE0190578115904108F078C1DF7007 -:100D100073C1C53AD10509F477C1C63AD10509F0C6 -:100D200076C102E810E4AEC1C83AD10509F472C137 -:100D3000C93AD10509F471C1CA3AD10509F470C1A3 -:100D4000CB3AD10509F46FC1CC3AD10509F46EC193 -:100D5000CD3AD10509F46DC1C03BD10509F46CC190 -:100D6000CE3AD10509F46BC1CF3AD10509F46AC175 -:100D7000C13BD10509F469C1C23BD10509F468C181 -:100D8000C33BD10509F467C1C43BD10509F466C171 -:100D9000C53BD10509F465C1C63BD10509F464C161 -:100DA000C73BD10509F463C1C83BD10509F462C151 -:100DB000C93BD10509F461C1CA3BD10509F460C141 -:100DC00000E014E45FC18E0110655CC1CE019F702C -:100DD0000E940D0658C1DF708E01106A53C18091C8 -:100DE000DA0181608093DA014DC10E949B1D81115F -:100DF00002C00E94811D0E94B81D90E09093FB01EB -:100E00008093FA01C23080E5D80721F48091FA017D -:100E1000816086C0C43090E5D90721F48091FA0141 -:100E200082607EC0C63020E5D20721F48091FA01AD -:100E3000846076C0C83080E5D80719F48091FA0143 -:100E400027C0CA3090E5D90721F48091FA0180616A -:100E500067C0CC3020E5D20721F48091FA0180628E -:100E60005FC0CE3080E5D80721F48091FA0180641C -:100E700057C0C03190E5D90721F48091FA0180680C -:100E80004FC0C23120E5D20729F48091FA01846075 -:100E9000886046C0C33080E5D80721F48091FA010C -:100EA0008E7F3EC0C53090E5D90721F48091FA01CC -:100EB0008D7F36C0C73020E5D20721F48091FA013A -:100EC0008B7F2EC0C93080E5D80719F48091FA01D4 -:100ED00026C0CB3090E5D90721F48091FA018F7EAE -:100EE0001FC0CD3020E5D20721F48091FA018F7D1B -:100EF00017C0CF3080E5D80721F48091FA018F7BAD -:100F00000FC0C13190E5D90721F48091FA018F77A4 -:100F100007C0C331D04531F48091FA018B7F877FC0 -:100F20008093FA018091FA010E94BC1DABC08D2F05 -:100F300099278F70992781309105D9F49E012370EC -:100F4000332702C0880F991F2A95E2F79C688E010B -:100F500044E0000F111F4A95E1F700271370802B22 -:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA -:100F70002FC08230910531F4DC2FCC278E01016F18 -:100F8000106A80C08330910569F4CE01837099277F -:100F900001E010E002C0000F111F8A95E2F7C801BE -:100FA0009C680FC084309105B9F4CE0183709927F5 -:100FB00001E010E002C0000F111F8A95E2F7C8019E -:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029 -:100FD0008C010C2B1D2B56C08530910531F4DC2F74 -:100FE000CC278E01046F106A4DC0069709F04AC0E5 -:100FF000CF71DD27DC2FCC278E01106243C000E0CB -:1010000010E040C08E013EC001E810E43BC003E8A0 -:1010100010E438C002EE14E435C009EE14E432C026 -:101020000AEE14E42FC005EB14E42CC006EB14E424 -:1010300029C007EB14E426C00CEC14E423C00DEC2B -:1010400014E420C003E815E41DC00AE815E41AC042 -:1010500002E915E417C004E915E414C001E216E43E -:1010600011C003E216E40EC004E216E40BC005E270 -:1010700016E408C006E216E405C007E216E402C062 -:101080000AE216E4C801DF91CF911F910F910895F4 -:1010900096E0799FF001112494E5899FE00DF11D00 -:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149 -:1010B0009491803E9105E0F4803C910558F5813390 -:1010C000910509F46FC048F48932910509F463C0B1 -:1010D0008A32910509F46DC072C089339105E9F037 -:1010E00082389105D1F08533910509F44DC067C070 -:1010F000833E910581F138F4803E9105B9F0823E3E -:101100009105D9F05CC0863E910561F1873E91055D -:10111000A1F155C00E94050608952091FA0120FD15 -:1011200002C021FF4CC080EE90E049C08091FA01DE -:1011300080FFF9CF89E390E042C08091FA0182FFFD -:101140000EC08091FA0184FF03C080E090E037C0B8 -:1011500083EE90E034C08091FA0182FFF2CF82EEFC -:1011600090E02DC08091FA0183FF0BC08091FA01BD -:1011700084FDEBCF87EE90E022C08091FA0183FFDF -:10118000F5CF86EE90E01BC08091FA0185FF07C085 -:1011900089E290E014C08091FA0185FFF9CF85E3E0 -:1011A00090E00DC08091FA0186FF07C08AE290E0CE -:1011B00006C08091FA0186FFF9CF81E390E00E949A -:1011C0001506089508950C94E20880916E01089523 -:1011D000CF93DF9300D01F92CDB7DEB79C018091F3 -:1011E000F101843019F593E099833B832A8390932E -:1011F000E9008FEF9091E800815095FD06C095EDD4 -:101200009A95F1F700008111F5CF8091E80085FFF4 -:101210000DC040E050E063E070E0CE0101960E9416 -:10122000520B8091E8008E778093E8000F900F902A -:101230000F90DF91CF910895CF93DF9300D01F924D -:10124000CDB7DEB72091F101243021F522E02983CA -:101250009B838A8383E08093E9008FEF9091E8007D -:10126000815095FD06C095ED9A95F1F7000081112A -:10127000F5CF8091E80085FF0DC040E050E063E0CD -:1012800070E0CE0101960E94520B8091E8008E77AB -:101290008093E8000F900F900F90DF91CF91089509 -:1012A0002091F1012430F1F422E02093E9002FEFA6 -:1012B0003091E800215035FD06C035ED3A95F1F743 -:1012C00000002111F5CF2091E80025FF0BC040E080 -:1012D00050E065E070E00E94520B8091E8008E774C -:1012E0008093E8000895CF93DF93EC019091F10192 -:1012F000943009F046C080910C018823D9F0809188 -:101300000D018823B9F09093E9008FEF9091E800E8 -:10131000815095FD06C095E19A95F1F70000811185 -:10132000F5CF8091E80085FF2CC040E050E060E1FF -:1013300070E017C081E08093E9008FEF9091E800A2 -:10134000815095FD06C095ED9A95F1F70000811149 -:10135000F5CF8091E80085FF14C040E050E068E0E0 -:1013600070E0CE010E94520B8091E8008E7780934E -:10137000E80080E1FE01AEE5B1E001900D928A95B2 -:10138000E1F7DF91CF9108958091F001811109C0BB -:101390000E94E70C0E94440D8091E20084608093DB -:1013A000E20008951092F001089508950C942B2204 -:1013B0000E948C1B0E9431220E94EA0F0C94E308C9 -:1013C00042E061EC81E00E94610C42E061EC82E06D -:1013D0000E94610C42E061EC83E00E94610C42E1FA -:1013E00061EC84E00C94610C8091F301833009F48A -:1013F00055C030F4813071F0823009F48EC0089508 -:101400008A3009F47AC08B3009F460C0893009F061 -:101410009CC020C08091F201813A09F096C0809171 -:10142000E800877F8093E8008091F6019091F701B2 -:10143000892B21F460E18EE591E003C060E080E05B -:1014400090E070E00E949D0B8091E8008B77809384 -:10145000E80008958091F201813209F076C0809110 -:10146000F6019091F701009719F0039709F06DC00C -:101470008091E800877F8093E8008091E80082FDFA -:1014800005C08091F1018111F8CF5FC08091F1001A -:1014900080936E018091E8008B7753C08091F201B8 -:1014A000813A09F052C08091F6019091F701892BA1 -:1014B00009F04BC08091E800877F8093E80080911D -:1014C000E80080FFFCCF80910C0136C08091F201D2 -:1014D0008132D9F58091F6019091F701892BA9F518 -:1014E0008091E800877F8093E8000E94960C8091AD -:1014F000F40180930C010C9483148091F2018132E9 -:1015000021F58091E800877F8093E8000E94960C87 -:101510008091F50180936F0108958091F201813AE5 -:10152000A1F48091E800877F8093E8008091E80033 -:1015300080FFFCCF80916F018093F1008091E800E3 -:101540008E778093E8000C94960C089584B7877F7B -:1015500084BF88E10FB6F894809360001092600019 -:101560000FBE90E080E80FB6F894809361009093EE -:1015700061000FBE0E9439100E94E70C0E94440DCA -:101580008091E20084608093E20078940E94CA0F08 -:101590000E943B1082E091E00E94E50F0E94192218 -:1015A0008091F101853069F40E94531B8091EF0115 -:1015B0008823B1F30E947E1B882391F30E943C0B89 -:1015C000EFCF0E944110ECCF292F33272330310574 -:1015D000C9F064F42130310581F02230310509F081 -:1015E00043C08DE690E02AE333E042C0213231056A -:1015F000F1F02232310541F137C082E190E027EA73 -:1016000033E036C099278130910541F08230910551 -:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4 -:1016200002C0E6E0F3E0849190E09F0121C06430C5 -:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5 -:10164000318189E090E014C0643070F470E0FB01F7 -:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47 -:10166000FE4F808190E004C080E090E020E030E018 -:10167000FA0131832083089580E189BD82E189BD2B -:1016800009B400FEFDCF8091D8008F7D8093D800F3 -:101690008091E00082608093E0008091E00081FD15 -:1016A000FCCF0895CF92DF92EF92FF920F931F939A -:1016B000CF93DF93EC018B016A010E94B50C81117D -:1016C00033C0C114D10439F0F60180819181081B27 -:1016D000190BC80FD91FE12CF12C0115110519F1B7 -:1016E0008091E80085FD16C08091E8008E77809398 -:1016F000E800C114D10449F0F60180819181E80E1F -:10170000F91EF182E08285E00FC00E94B50C8823AB -:1017100021F30AC089918093F10001501109FFEF74 -:10172000EF1AFF0ADACF80E0DF91CF911F910F917E -:10173000FF90EF90DF90CF9008952091F8013091C5 -:10174000F9012617370748F06115710539F4209122 -:10175000E8002E772093E80001C0B90140E0611550 -:101760007105A9F12091F101222309F443C025302C -:1017700009F442C02091E80023FD40C02091E80018 -:1017800022FD32C02091E80020FFE9CF4091F30014 -:101790002091F20030E0342BFC01CF01611571057E -:1017A00059F02830310540F481918093F100615067 -:1017B00071092F5F3F4FF1CF41E02830310509F02B -:1017C00040E02091E8002E772093E800C8CF411137 -:1017D000C9CF0AC08091F101882361F0853061F0A2 -:1017E0008091E80083FD0AC08091E80082FFF2CF7B -:1017F00080E0089582E0089583E0089581E00895EF -:101800002091F8013091F9012617370748F061154A -:10181000710539F42091E8002E772093E80001C08B -:10182000B901FC0120E06115710591F18091F10190 -:10183000882309F440C0853009F43FC08091E80056 -:1018400083FD3DC08091E80082FD2FC08091E800BB -:1018500080FFE9CF2091F3008091F20090E0922B7D -:101860006115710559F08830910540F42491209359 -:10187000F1003196615071090196F2CF21E008978D -:1018800009F020E08091E8008E778093E800CBCFCC -:101890002111CCCF0AC08091F101882361F08530FD -:1018A00061F08091E80083FD0AC08091E80082FF2A -:1018B000F2CF80E0089582E0089583E0089581E00A -:1018C0000895982F973058F59093E900981739F0BC -:1018D0007091EC002091ED005091F00003C0242F96 -:1018E000762F50E021FF19C03091EB003E7F3093FE -:1018F000EB003091ED003D7F3093ED003091EB0037 -:1019000031603093EB007093EC002093ED00509326 -:10191000F0002091EE0027FF07C09F5FD3CF8F70AC -:101920008093E90081E0089580E008958091F201BC -:1019300087FF11C08091E80082FD05C08091F10110 -:101940008111F8CF11C08091E8008B770BC0809196 -:10195000F101882349F08091E80080FFF8CF809161 -:10196000E8008E778093E80008952091E40030919C -:10197000E50095E64091EC00842F817040FF22C085 -:101980008091E80080FD1CC08091F101882391F0D6 -:10199000853091F08091EB0085FD10C04091E4000E -:1019A0005091E5004217530729F39A01915011F71E -:1019B00084E0089582E0089583E0089581E0089529 -:1019C00080E008954091E80042FFDECF08950E9434 -:1019D000550D0E945D0DE0EEF0E080818160808316 -:1019E000E8EDF0E080818F77808319BCA7EDB0E04F -:1019F0008C918E7F8C9380818F7E80831092F001FA -:101A000008950F931F93CF93DF930E94550D0E946B -:101A10005D0DC8EDD0E088818F77888388818068EC -:101A2000888388818F7D888319BC1092F101109280 -:101A3000ED011092EF011092EE0100EE10E0F801BE -:101A400080818B7F808388818160888342E060E031 -:101A500080E00E94610CE1EEF0E080818E7F808367 -:101A6000E2EEF0E080818160808380818860808305 -:101A7000F80180818E7F8083888180618883DF91F7 -:101A8000CF911F910F910895E8EDF0E080818F7E56 -:101A90008083E7EDF0E080818160808384E082BF15 -:101AA00081E08093F0010C94010DE8EDF0E080817D -:101AB0008E7F80831092E20008951092DA001092D7 -:101AC000E10008951F920F920FB60F9211242F93E9 -:101AD0003F934F935F936F937F938F939F93AF93B6 -:101AE000BF93EF93FF938091E10082FF0BC0809141 -:101AF000E20082FF07C08091E1008B7F8093E100CC -:101B00000E94C90F8091DA0080FF1FC08091D80029 -:101B100080FF1BC08091DA008E7F8093DA00809175 -:101B2000D90080FF0DC080E189BD82E189BD09B483 -:101B300000FEFDCF81E08093F1010E94C40905C041 -:101B400019BC1092F1010E94D2098091E10080FF3E -:101B500019C08091E20080FF15C08091E2008E7F65 -:101B60008093E2008091E20080618093E2008091A6 -:101B7000D80080628093D80019BC85E08093F10181 -:101B80000E94D6098091E10084FF30C08091E2007C -:101B900084FF2CC080E189BD82E189BD09B400FECB -:101BA000FDCF8091D8008F7D8093D8008091E10097 -:101BB0008F7E8093E1008091E2008F7E8093E2002F -:101BC0008091E20081608093E2008091ED018823A2 -:101BD00011F084E007C08091E30087FD02C081E03E -:101BE00001C083E08093F1010E94D8098091E10057 -:101BF00083FF29C08091E20083FF25C08091E1002E -:101C0000877F8093E10082E08093F1011092ED01E3 -:101C10008091E1008E7F8093E1008091E2008E7FD1 -:101C20008093E2008091E20080618093E20042E0D4 -:101C300060E080E00E94610C8091F00088608093F9 -:101C4000F0000E94D509FF91EF91BF91AF919F9154 -:101C50008F917F916F915F914F913F912F910F9055 -:101C60000FBE0F901F9018951F920F920FB60F92F4 -:101C700011242F933F934F935F936F937F938F9391 -:101C80009F93AF93BF93CF93DF93EF93FF93C09155 -:101C9000E900CF708091EC00D82FD17080FDD0E8A2 -:101CA0001092E9008091F000877F8093F000789493 -:101CB0000E94780E1092E9008091F0008860809375 -:101CC000F000CD2BCF70C093E900FF91EF91DF9131 -:101CD000CF91BF91AF919F918F917F916F915F91C4 -:101CE0004F913F912F910F900FBE0F901F9018951D -:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3 -:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115 -:101D1000F10091938E13FBCF0E94F4098091E800AB -:101D200083FF1FC18091F2019091F301492F50E090 -:101D30004A30510508F015C1FA01EA5AFF4F0C94D8 -:101D4000B323803881F0823809F00BC18091F6010D -:101D50008F708093E9008091EB0085FB882780F9E4 -:101D60001092E90006C08091EE019091EF0191116F -:101D700082609091E800977F9093E8008093F10053 -:101D80001092F100C8C0282F2D7F09F0EAC08823E7 -:101D900019F0823061F0E5C08091F401813009F0E2 -:101DA000E0C0933009F080E08093EF012BC0809178 -:101DB000F401811127C08091F6018F7009F4D1C020 -:101DC0008093E9002091EB0020FF1CC0933021F4A8 -:101DD0008091EB00806214C09091EB009061909331 -:101DE000EB0021E030E0A90102C0440F551F8A95A5 -:101DF000E2F74093EA001092EA008091EB008860DD -:101E00008093EB001092E9008091E800877F86C004 -:101E10008111A7C01091F4011F778091E3008078B1 -:101E2000812B8093E3008091E800877F8093E80016 -:101E30000E94960C8091E80080FFFCCF8091E30027 -:101E400080688093E300111102C082E001C083E04A -:101E50008093F10186C08058823008F082C0809162 -:101E6000F4019091F5018C3D53E0950779F583E0FD -:101E70008A838AE289834FB7F894DE01139620E0C3 -:101E80003EE051E2E32FF0E050935700E49120FF51 -:101E900003C0E295EF703F5FEF708E2F90E0EA3065 -:101EA00010F0C79601C0C0968D939D932F5F24318B -:101EB00049F74FBF8091E800877F8093E8006AE28E -:101EC00070E0CE0101960E949D0B14C0AE014F5FE1 -:101ED0005F4F6091F6010E94E40ABC01009709F48B -:101EE00040C09091E800977F9093E80089819A81A3 -:101EF0000E94000C8091E8008B778093E80031C04D -:101F0000803879F58091E800877F8093E8008091A0 -:101F1000ED018093F1008091E8008E778093E800D6 -:101F20000E94960C1EC081111CC09091F401923049 -:101F3000C0F48091E800877F8093E8009093ED01E2 -:101F40000E94960C8091ED01811106C08091E30002 -:101F500087FD02C081E001C084E08093F1010E940E -:101F6000E0098091E80083FF0AC08091E800877F44 -:101F70008093E8008091EB0080628093EB00AA964A -:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A -:101F900008950895CF938091F1018823A1F0C09115 -:101FA000E900CF709091EC00892F817090FD80E85E -:101FB000C82B1092E9008091E80083FD0E94780E02 -:101FC000CF70C093E900CF910895909375018093ED -:101FD00074010895E0917401F0917501309721F03A -:101FE0000190F081E02D099480E00895E091740162 -:101FF000F0917501309721F00280F381E02D099472 -:102000000895E0917401F0917501309721F00480FA -:10201000F581E02D099408952091720130917301AA -:102020008217930771F09093730180937201E0918E -:102030007401F0917501309721F00680F781E02D51 -:1020400009940895209170013091710182179307CE -:1020500071F09093710180937001E0917401F0919F -:102060007501309721F00084F185E02D09940895E1 -:1020700008950C9438100E94921B0E9433030C9414 -:10208000541C9F92AF92BF92CF92DF92EF92FF9239 -:102090000F931F93CF93DF9300D000D000D0CDB724 -:1020A000DEB70E944B030DE010E0AA24A394B12CEC -:1020B000902E802F0E943904980129583E4F6901C3 -:1020C000F901F080F826A1F40150110988F78FEF8B -:1020D00089838A831B820E949B1B8160782F9D834A -:1020E0008C8349815A816B818D810E94D8102FC0C9 -:1020F0009091DA0191FF04C08E830E943F048E818B -:1021000025E030E0A501022E01C0440F0A94EAF751 -:10211000E42E4F21C1F029839A828E2191E009F4A7 -:1021200090E09B830E949B1B8160782F9D838C8312 -:1021300049815A816B818D810E94D810F60180817E -:10214000E826E08204C021503109E0F6BDCF0E94AC -:102150003B1F109176010E94EA0F1817B9F00E94F8 -:10216000EA0F8093760126960FB6F894DEBF0FBE75 -:10217000CDBFDF91CF911F910F91FF90EF90DF9036 -:10218000CF90BF90AF909F900C94E30826960FB627 -:10219000F894DEBF0FBECDBFDF91CF911F910F919D -:1021A000FF90EF90DF90CF90BF90AF909F900895F9 -:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82 -:1021C0000FBECDBF4F83588769877A878B87DE0123 -:1021D000119686E0FD0111928A95E9F785E0FE01EE -:1021E000379601900D928A95E1F749815A816B816A -:1021F0007C818D819E810E9421172B960FB6F894C9 -:10220000DEBF0FBECDBFDF91CF910895CF9388235E -:1022100009F4C2C0C82F823859F40E94EA0F81FD28 -:10222000BBC089E30E94FB190E94C81A89E30CC055 -:10223000833879F40E94EA0F80FDAEC083E50E94E6 -:10224000FB190E94C81A83E50E943D1ACF910C9495 -:10225000C81A843859F40E94EA0F82FD9DC087E4B1 -:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6 -:10227000813A48F48C2F0E947E2181118DC08C2FD1 -:102280000E94FB19E3CF80E28C0F883048F4C770BE -:1022900081E001C0880FCA95EAF70E94811AD6CF63 -:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB -:1022B00083E890E005C081E890E002C082E890E009 -:1022C000CF910C940C1088E58C0F833108F064C01A -:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118 -:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186 -:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106 -:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173 -:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB -:1023200038C082EE90E035C089EE90E032C08AEE8F -:1023300090E02FC085EB90E02CC086EB90E029C0A8 -:1023400087EB90E026C08CEC90E023C08DEC90E011 -:1023500020C083E891E01DC08AE891E01AC082E9BC -:1023600091E017C084E991E014C081E292E011C0CD -:1023700083E292E00EC084E292E00BC085E292E03C -:1023800008C086E292E005C087E292E002C08AE2DD -:1023900092E0CF910C942210CF910895882309F4F4 -:1023A0004BC0823859F40E94EA0F81FF45C089E38F -:1023B0000E94FB190E94C81A89E30CC0833871F48B -:1023C0000E94EA0F80FF38C083E50E94FB190E943B -:1023D000C81A83E50E943D1A0C94C81A843859F42F -:1023E0000E94EA0F82FF28C087E40E94FB190E9426 -:1023F000C81A87E4EFCF9CEF980F913A58F390E218 -:10240000980F983050F4877091E001C0990F8A9529 -:10241000EAF7892F0E94871ADFCF9BE5980F933048 -:1024200020F480E090E00C940C10885A833120F462 -:1024300080E090E00C9422100895882321F00E94FF -:10244000811A0C94C81A0895882321F00E94871AD3 -:102450000C94C81A08957F928F929F92AF92BF9268 -:10246000CF92DF92EF92FF920F931F93CF93DF9360 -:102470001F92CDB7DEB77C01C62E772EFC010581F9 -:1024800002950F70128111110E949E1A0E94F41978 -:10249000882379F0112369F080E28C0D883048F0B0 -:1024A00082E00E94DD190E94F41991E0D82ED9260D -:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C -:1024C0000C94B323872D807F072D0F70882311F084 -:1024D0000295007F112389F0002309F490C180E266 -:1024E0008C0D883020F4802F0E94811A03C0802F29 -:1024F0000E94911A0E94C81A82C18C2D0E94CE118E -:10250000002309F495C180E28C0D883020F4802FDF -:102510000E94871A03C0802F0E94971A0E94C81A2F -:1025200087C1972D907F872D8F70903211F0829503 -:10253000807FCC2021F0F1E0CF16B1F01EC0112336 -:1025400049F0002309F414C1013009F011C10E94BF -:10255000B11A6EC1002319F0013009F469C18983F1 -:102560000E94B41A89810AC1112321F0023008F0B7 -:102570005FC1FEC001115CC101C1112321F0002324 -:1025800009F4F6C03CC1002309F4F8C03EC1872D10 -:1025900086958695837090E0009719F0019761F019 -:1025A00047C1112321F08C2D972D937002C080E03C -:1025B00090E00E940C103CC1112321F08C2D972D2E -:1025C000937002C080E090E00E94221031C18C2DF7 -:1025D000112319F00E94431E02C00E94AB1E0E94EC -:1025E000301F26C1872D837009F052C0111120C100 -:1025F0008C2D829586958770880F880F9C2D9F70F3 -:10260000892E912CA12CB12C082E04C0880C991C69 -:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041 -:1026200020E030E0B901A80104C0440F551F661F27 -:10263000771F8A95D2F7CB01BA0160957095809586 -:10264000909503C060E070E0CB01272D269526957C -:10265000237030E02230310569F02330310589F0F4 -:10266000682979298A299B292130310571F00E9436 -:102670006918DEC0682979298A299B290E94851852 -:10268000D7C00E946918C501B4010E944D18D0C07E -:10269000112319F0872D817001C08695882309F4D4 -:1026A000C7C08C2D829586958770880F880F9C2DCA -:1026B0009F70892E912CA12CB12C082E04C0880C5F -:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC -:1026D00010E020E030E0B901A80104C0440F551F0C -:1026E000661F771F8A95D2F7CB01BA016095709566 -:1026F0008095909503C060E070E0CB01272D269572 -:1027000026952370422F50E04230510569F0433046 -:10271000510589F0682979298A299B294130510579 -:1027200071F00E94431984C0682979298A299B295C -:102730000E945F197DC00E944319C501B4010E9427 -:10274000271976C08C2D90E0FC01E05EF109E5319F -:10275000F10508F050C0E059FF4F0C94B3230C2D45 -:102760000F70872D8F71112331F00E94C018802FB8 -:102770000E941D125DC00E94E118802F0E94241249 -:1027800057C0112339F0011153C0872D8F710E945A -:1027900006194EC0023008F04BC0F7CF112339F0B4 -:1027A000872D8F710E94C01843C01123C9F3872D54 -:1027B0008F710E94E1183CC0112329F0872D8F7181 -:1027C0000E94AB1835C00E94A11832C0112351F0ED -:1027D000172D1F71812F0E94C01863E0812F0E9466 -:1027E000D41926C081E00E94DD19023008F182E090 -:1027F0000E94DD191DC0112331F0002389F28C2DB8 -:102800000E94061115C0002391F28C2D0E94CE115A -:102810000FC0472D4F706C2DC7010E9415050E94F7 -:10282000C51706C0472D4F706C2DC7010E94F205D9 -:10283000DD20F9F00E94D01980FD1BC0F701128243 -:102840000E94CA190E94C018C7010E9448140E9421 -:10285000CA190F90DF91CF911F910F91FF90EF90C8 -:10286000DF90CF90BF90AF909F908F907F900C940F -:10287000E1180F90DF91CF911F910F91FF90EF9092 -:10288000DF90CF90BF90AF909F908F907F900895F2 -:102890000F931F93CF93DF93EC01888199812B8154 -:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B -:1028B0000E944A05882371F0688179818A810E948B -:1028C000C6198C010E947B190E944218B801CE01E2 -:1028D0000E942B12DF91CF911F910F9108950E94BA -:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471 -:1028F000E11F0E94301F80E090E00E940C1080E0F9 -:1029000090E00C9422100E948E1A0C946F140E9476 -:10291000BB19292F22952F7030E02C3031054CF453 -:102920002A3031056CF42250310922303105A8F4E7 -:1029300007C02C30310569F02F30310551F00DC042 -:10294000803F69F018F4803E40F409C0843F29F4C8 -:1029500006C093FB882780F9089580E0089581E000 -:102960000895CF93DF9300D000D01F92CDB7DEB78C -:102970000F900F900F900F900F90DF91CF910895CF -:10298000CF93DF9300D000D000D0CDB7DEB726962E -:102990000FB6F894DEBF0FBECDBFDF91CF91089583 -:1029A0001F93CF93DF93C091850116E0809186013C -:1029B000C81799F0D0E01C9FF0011D9FF00D112465 -:1029C000E957FE4F408151816281738184819581F5 -:1029D0000E94C0142196C770E9CFDF91CF911F915B -:1029E00008954091B7015091B8016091B90170917B -:1029F000BA018091BB019091BC010C94C0148091EC -:102A0000BC0182958F7009F054C08091B901882370 -:102A100009F44FC080918501A09186016091B701B2 -:102A20007091B8014091BA015091BB01B6E08A178C -:102A300009F43FC090E041155105C1F17F3F11F409 -:102A40006F3FA1F1B89FF001B99FF00D1124E95734 -:102A5000FE4F218172132AC02081621327C0228178 -:102A6000211124C0238134812417350710F421500B -:102A70003109241B350B283C3105C0F42091BC01E1 -:102A80002F7020612093BC0126E0289FF001299F30 -:102A9000F00D1124E457FE4F80818F708061808398 -:102AA00087EB91E00E9448140C94D0140196877033 -:102AB000BECF0895CF92DF92EF92FF920F931F93B4 -:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32 -:102AD0000FBECDBF8C0185E0F801DE011D9601908F -:102AE0000D928A95E1F7D8014C9111965C9111975E -:102AF00012966C9112971396CD90DC9014973091AA -:102B0000B7017091B8018091BA019091BB01009713 -:102B100009F46BC17F3F19F43F3F09F466C1E090AF -:102B2000B901EE2009F4C0C02091BC01C816D90635 -:102B300028F0F601E81BF90BCF0104C080959095B1 -:102B40008C0D9D1DFF24F394883C910578F0F12CA9 -:102B5000207F09F0C6C07C2DD98AC88A89890E9445 -:102B6000B11487EB91E00E944814B1C0822F807F9E -:102B700009F046C0751314C0341312C0611110C09F -:102B80002F7020612093BC010E94F11487EB91E02B -:102B90000E9448148091BC01D80115968C932EC0D8 -:102BA000CD2819F15F3F11F44F3FF9F0F62E611176 -:102BB0001CC0809185012091860136E0821709F4BE -:102BC0005AC090E0389FF001399FF00D1124E95769 -:102BD000FE4F7181571306C07081471303C0728185 -:102BE000711103C001968770E9CFF62E662309F4B0 -:102BF00018C18091BC0181608093BC01F12C11C18E -:102C0000751308C0341306C0611104C08091BC0163 -:102C1000D801C3C04D875E878D859E856A8B0E94D3 -:102C200087146A898823E1F16623D1F12091BC01E0 -:102C3000822F82958F7090E0029774F08091B70197 -:102C40009091B80198878F831986DB86CA862C8776 -:102C5000CE0107960E94481486E0F801A7EBB1E088 -:102C600001900D928A95E1F70E94FF140E94F114E1 -:102C7000FF24F394D6C04D875E878D859E850E9484 -:102C8000BB19292F22952F7030E0223031050CF02E -:102C9000BCC09F7009F0B6C0805E883008F4C1C027 -:102CA000C8010E944814E4CFC816D90608F453C0DE -:102CB000F601E81BF90BCF01883C910508F450C0E0 -:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E -:102CD000F1E086E0DF011D928A95E9F70E94F11488 -:102CE000A0C0751314C0341312C0611110C08091BC -:102CF000BC01F8018583C8010E94481486E0E7EB17 -:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C -:102D10005E878D859E856A8B0E9487146A898823C9 -:102D200009F4BECF662309F4BBCF2091BC01822FEA -:102D300082958F7090E002970CF48ECF8091B7014E -:102D40009091B8019A8389831B82DD82CC822E8385 -:102D5000CE0101967FCF809590958C0D9D1DACCFB7 -:102D6000F62E662309F49CCF75132EC034132CC0A5 -:102D70002091BC0120FD1FC0822F82958F70D9F059 -:102D8000D80115962C9315978F3049F08F5F982FA7 -:102D90009295907F822F8F70892B15968C93C80106 -:102DA0000E94481486E0F801A7EBB1E001900D9273 -:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7 -:102DC0000D928A95E1F72DC04D875E878D859E8592 -:102DD0000E948714811140CF8091BC018160809353 -:102DE000BC01C8010E9448141CC0662309F458CFD6 -:102DF0004D875E878D859E850E948714882309F400 -:102E00004FCF2ACF811148CF0CC0243031050CF0B0 -:102E100047CF9F7009F440CFF8019581907F09F06A -:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D -:102E3000DF91CF911F910F91FF90EF90DF90CF9096 -:102E400008951F93CF93DF93CDB7DEB72C970FB6BE -:102E5000F894DEBF0FBECDBF4F83588769877A874E -:102E60008B879C87CE0107960E945A15882369F0AC -:102E70008F8198852A853B85232BF1F19F3F09F0AF -:102E800063C08F3F09F060C037C086E0FE0137960F -:102E9000DE01119601900D928A95E1F76F81788598 -:102EA000EA85FB85309741F17F3F11F46F3F21F1B7 -:102EB0002091860130E0C9010196877099274091E1 -:102EC000850150E08417950709F447C069837A8328 -:102ED000FD83EC8396E0929FD001939FB00D112467 -:102EE000A957BE4FFE01319601900D929A95E1F7D8 -:102EF000809386010E94D01416E080918501909104 -:102F000086018917C1F1189FC001112489579E4F6E -:102F10000E945A15882379F1E09185011E9FF001E6 -:102F20001124E957FE4F4081518162817381848170 -:102F300095810E94C0148091850190E00196877070 -:102F4000992780938501D9CF4F81588569857A85E6 -:102F50008B859C850E94C014CFCF0E948314109251 -:102F6000860110928501E7EBF1E086E0DF011D921A -:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45 -:102F8000CDBFDF91CF911F910895EF92FF920F93E4 -:102F90001F93CF93DF938C01009709F46CC0F12C41 -:102FA000EE24E394E8012196F8018491843740F4FB -:102FB000843008F051C0813081F0823019F15BC05B -:102FC000853709F444C0A8F19CE7980F903708F0C2 -:102FD00052C08F770E94CE1141C00E5F1F4FFE017D -:102FE000C49180E28C0F883048F4C7708E2D01C0E8 -:102FF000880FCA95EAF70E94A11A14C08C2F0E946C -:1030000006112DC00E5F1F4FFE01C49180E28C0F90 -:10301000883058F4C7708E2D01C0880FCA95EAF722 -:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3 -:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3 -:103040009FE00197F1F700C00000C150F6CF0E5F7E -:103050001F4FFE01F49003C00E9406118E018F2DB8 -:10306000882309F49FCFEFE9FFE03197F1F700C023 -:1030700000008150F5CFDF91CF911F910F91FF900C -:10308000EF90089508956093C1017093C2018093F9 -:10309000C3019093C4010C946F140F931F9300917C -:1030A000C1011091C2012091C3013091C401DC0122 -:1030B000CB01802B912BA22BB32B8093C10190933A -:1030C000C201A093C301B093C4011F910F910C944E -:1030D0006F140F931F930091C1011091C2012091B1 -:1030E000C3013091C401DC01CB0180239123A223D1 -:1030F000B3238093C1019093C201A093C301B09305 -:10310000C4011F910F910C946F140F931F930091A2 -:10311000C1011091C2012091C3013091C401DC01B1 -:10312000CB0180279127A227B3278093C1019093D9 -:10313000C201A093C301B093C4011F910F910C94DD -:103140006F141092BD011092BE011092BF01109237 -:10315000C0010C946F1441E050E060E070E004C0E6 -:10316000440F551F661F771F8A95D2F74093BD0104 -:103170005093BE016093BF017093C0010C946F1413 -:1031800041E050E060E070E004C0440F551F661F4E -:10319000771F8A95D2F78091BD019091BE01A091D1 -:1031A000BF01B091C001482B592B6A2B7B2B409358 -:1031B000BD015093BE016093BF017093C0010C9498 -:1031C0006F1441E050E060E070E004C0440F551F10 -:1031D000661F771F8A95D2F7409550956095709538 -:1031E0008091BD019091BE01A091BF01B091C0013D -:1031F000482359236A237B234093BD015093BE018A -:103200006093BF017093C0010C946F1441E050E0D3 -:1032100060E070E004C0440F551F661F771F8A9559 -:10322000D2F78091BD019091BE01A091BF01B091F4 -:10323000C001482759276A277B274093BD01509337 -:10324000BE016093BF017093C0010C946F140F9383 -:103250001F930091BD011091BE012091BF013091DB -:10326000C001DC01CB01802B912BA22BB32B8093CF -:10327000BD019093BE01A093BF01B093C0011F9107 -:103280000F910C946F140F931F930091BD01109137 -:10329000BE012091BF013091C001DC01CB01802330 -:1032A0009123A223B3238093BD019093BE01A093E9 -:1032B000BF01B093C0011F910F910C946F140F9335 -:1032C0001F930091BD011091BE012091BF0130916B -:1032D000C001DC01CB0180279127A227B32780936F -:1032E000BD019093BE01A093BF01B093C0011F9197 -:1032F0000F910C946F140895CF92DF92EF92FF928A -:103300000F931F93CF93DF938C01C090C101D09096 -:10331000C201E090C301F090C4018091BD01909181 -:10332000BE01A091BF01B091C001C82AD92AEA2AE2 -:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520 -:10334000A795979587950A94D2F780FF06C0B80194 -:103350008C2F0E944808019721F4219760F780E0A4 -:1033600001C08C2FDF91CF911F910F91FF90EF90B3 -:10337000DF90CF900895CF93DF93EC010E947C19EA -:10338000BE010E944808DF91CF910895CB010E94B1 -:10339000BB1908958091C5018595859585950895FA -:1033A0008091C5018770089598E0899F900111244C -:1033B000262B2093C5010C94C0182091C50180953F -:1033C00082238093C501982F977069F430E0482FCD -:1033D000552747FD50952417350729F08595859584 -:1033E00085950C94E11808959091C501977081E03E -:1033F00009F480E0089590910C01992321F09091B7 -:103400000D01911109C020910E0130910F01F901B8 -:1034100032969FEF40E01FC0982F9695969596950F -:103420009F3050F5E0910E01F0910F01E90FF11D71 -:10343000877021E030E0A90102C0440F551F8A9532 -:10344000E2F7CA019181892B818308959F3F39F06A -:103450004F5F4E3041F051915813F8CF0DC05111CC -:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08 -:1034700097FDFA9582830895089590910C01992300 -:1034800021F090910D01911109C020910E01309110 -:103490000F01F9013296205F3F4F1FC0982F96957C -:1034A000969596959F30F0F4E0910E01F0910F0102 -:1034B000E90FF11D877021E030E0A90102C0440F3F -:1034C000551F8A95E2F7CA018095918189238183EE -:1034D00008953196E217F30729F090819813F9CFF8 -:1034E0001082F7CF089581E090E0E0910E01F09115 -:1034F0000F01E80FF91F1082019680319105A9F79D -:1035000008959091D901892B8093D90108958095D0 -:103510009091D90189238093D90108951092D901FE -:1035200008959091D801892B8093D80108958095B2 -:103530009091D80189238093D80108951092D801E1 -:1035400008959091D701892B8093D7010895809594 -:103550009091D70189238093D70108951092D701C4 -:1035600008958093C60108951092C6010895809130 -:103570000E0190910F01FC0131969C01205F3F4F9D -:1035800080E0919191118F5FE217F307D1F70895D1 -:10359000E0910E01F0910F018091D9018083E091BB -:1035A0000E01F0910F0190818091D801892B8083C9 -:1035B000E0910E01F0910F0190818091D701892B4C -:1035C00080838091C601882361F0E0910E01F09123 -:1035D0000F019081892B80830E94B71A811110926C -:1035E000C60180910E0190910F010C94F60F20E01E -:1035F000009739F0AC0141505109842395232F5F86 -:10360000F7CF822F0895CF92DF92EF92FF926C0155 -:10361000EE24FF24C114D104E104F10421F0C70118 -:10362000B60120E101C020E0C72ED82EE92EFF24EC -:10363000C114D104E104F10419F0285FC701B601F7 -:103640006B017C0154E0F694E794D794C7945A95A3 -:10365000D1F7C114D104E104F10419F02C5FC701C2 -:10366000B6016B017C0142E0F694E794D794C794CD -:103670004A95D1F7C114D104E104F10419F02E5F89 -:10368000C701B601DC01CB01B695A7959795879543 -:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5 -:1036A000DF90CF9008958091F101843021F1109244 -:1036B000DB0120E488E190E00FB6F894A8958093B0 -:1036C00060000FBE2093600080E00E94E30883B793 -:1036D000817F846083BF83B7816083BF789488953E -:1036E00083B78E7F83BF88E10FB6F8948093600024 -:1036F000109260000FBE0895089508950E947C1BEB -:103700000E944B030E947D1B0E94400491E08111A6 -:1037100001C090E0892F08950E9483140E94EA0F4F -:103720000C94E30882E084BD93E095BD9AEF97BDC9 -:1037300080936E0008952FB7F8948091DC019091EA -:10374000DD01A091DE01B091DF012FBF0895CF927E -:10375000DF92EF92FF920F931F932FB7F89440914F -:10376000DC015091DD016091DE017091DF012FBF1E -:103770006A017B01EE24FF248C0120E030E0C016BA -:10378000D106E206F30610F4415051099A01281BB4 -:10379000390BC9011F910F91FF90EF90DF90CF90EF -:1037A00008951F920F920FB60F9211248F939F933B -:1037B000AF93BF938091DC019091DD01A091DE0178 -:1037C000B091DF010196A11DB11D8093DC019093A2 -:1037D000DD01A093DE01B093DF01BF91AF919F9116 -:1037E0008F910F900FBE0F901F9018950E94E70CBD -:1037F000F8942FEF87EA91E6215080409040E1F75E -:1038000000C0000087E090EBDC018093FB01909307 -:10381000FC01A093FD01B093FE019CE088E10FB68E -:10382000F894A895809360000FBE90936000FFCF3E -:10383000EF92FF920F931F93CF93DF93D82FCDE09A -:103840008C2F0E94390405E010E0E82EF12CC7010E -:10385000002E02C0959587950A94E2F780FF09C073 -:10386000602F7C2F80E00E94F305D81302C081E016 -:1038700006C00150110958F7C15010F780E0DF91E0 -:10388000CF911F910F91FF90EF900895CF93C82F84 -:103890008CE20E94181C882321F08C2FCF910C946D -:1038A000181C80E0CF910895CF930E949B1D811139 -:1038B00002C00E94811DC5E6C15049F00E944B0321 -:1038C0008FE39CE90197F1F700C00000F5CF89E292 -:1038D0000E94461C811113C18AE20E94461C81117C -:1038E0000E94811D85E00E94461C81110E94F61BEA -:1038F0000E94A61D8093DA0187E00E94461C88235F -:10390000A9F18BE10E94461C882351F08091DA01D5 -:1039100081FB222720F991E0922790FB81F90EC0CC -:103920008EE00E94461C882361F08091DA0182FBC0 -:10393000222720F991E0922790FB82F98093DA0107 -:1039400015C080E10E94461C9091DA01882341F065 -:1039500093FB222720F981E0822780FB93F904C0A2 -:10396000892F809580FB90F99093DA018091DA019C -:103970000E94AA1D0E94B81D8093FA0180EE0E9449 -:10398000461C882341F08091FA01982F909590FB76 -:1039900080F98093FA0189E30E94461C882359F03C -:1039A0008091FA0181FB222720F991E0922790FB78 -:1039B00081F98093FA0182EE0E94461C882359F017 -:1039C0008091FA0182FB222720F991E0922790FB57 -:1039D00082F98093FA0186EE0E94461C882359F0F2 -:1039E0008091FA0183FB222720F991E0922790FB36 -:1039F00083F98093FA0183EE0E94461C882359F0D4 -:103A00008091FA0184FB222720F991E0922790FB14 -:103A100084F98093FA0185E30E94461C882359F0BB -:103A20008091FA0185FB222720F991E0922790FBF3 -:103A300085F98093FA0181E30E94461C882359F09E -:103A40008091FA0186FB222720F991E0922790FBD2 -:103A500086F98093FA0181E10E94461C882359F07F -:103A60008091FA0187FB222720F991E0922790FBB1 -:103A700087F98093FA018091FA010E94BC1D809120 -:103A8000FA0187FB882780F980930D0187E20E9465 -:103A9000461CC82F8EE10E94461C8111C2608FE136 -:103AA0000E94461C8111C46080E20E94461C811164 -:103AB000C86081E20E94461C8111C06182E20E94BE -:103AC000461C8111C06283E20E94461C8111C064C1 -:103AD00084E20E94461C882311F0C06802C0CC23F7 -:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4 -:103AF000682F70E080E090E0CF910C944318CF9154 -:103B000008956DEE7EEF80E090E00E94ED2360E08E -:103B100082E090E00E94DB2360E083E090E00E947E -:103B2000DB2360E084E090E00E94DB2360E085E03E -:103B300090E00C94DB2380E090E00E94D52321E00C -:103B40008D3E9E4F09F020E0822F089582E090E0A4 -:103B50000C94CD23682F82E090E00C94DB2383E06B -:103B600090E00C94CD23682F83E090E00C94DB234D -:103B700084E090E00C94CD23682F84E090E00C94D6 -:103B8000DB238091E20180FF0BC06091130185E08F -:103B9000689FB001112475956795759567952BC041 -:103BA00081FF09C06091130185E0689FB001112475 -:103BB0007595679520C082FF07C06091130185E06D -:103BC000689FB001112417C09091E3019923D1F0AF -:103BD00060911201961788F72091130185E0289FC4 -:103BE00090011124929FA001939F500D112470E029 -:103BF000CA010E949F236038710540F46115710568 -:103C000039F002C065E070E0862F08958FE70895CF -:103C100081E008958091E20180FF08C06091110168 -:103C200070E0759567957595679521C081FF06C011 -:103C30006091110170E07595679519C082FF04C00D -:103C40006091110170E010C09091E3019923C1F0DF -:103C5000609110019617A0F780911101899FC00112 -:103C6000112470E00E949F236038710528F46115CB -:103C7000710521F0862F08958FE7089581E008955A -:103C800061E070E0F4CF803F21F40E94C11D819576 -:103C900004C0813F29F40E94C11D8093E60108956C -:103CA000823F21F40E94C11D819504C0833F29F405 -:103CB0000E94C11D8093E5010895893F19F40E9477 -:103CC0000A1E05C08A3F31F40E940A1E8195809326 -:103CD000E70108958B3F21F40E940A1E819504C0DC -:103CE0008C3F29F40E940A1E8093E8010895843FC6 -:103CF00021F48091E401816017C0853F21F4809117 -:103D0000E401826011C0863F21F48091E401846067 -:103D10000BC0873F21F48091E401886005C0883F93 -:103D200031F48091E40180618093E40108958D3F36 -:103D300021F48091E20181600BC08E3F21F48091DB -:103D4000E201826005C08F3F29F48091E201846026 -:103D50008093E2010895803F39F48091E60187FF66 -:103D60006CC01092E60169C0813F29F48091E601A0 -:103D70001816BCF362C09091E501823F29F497FFC9 -:103D80005CC01092E50159C0833F19F41916CCF3B9 -:103D900054C0893F41F48091E70118160CF04DC0E2 -:103DA0001092E7014AC08A3F29F48091E70187FF1A -:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6 -:103DC0001092E8013AC08C3F29F48091E80118165E -:103DD000BCF333C0843F21F48091E4018E7F17C08F -:103DE000853F21F48091E4018D7F11C0863F21F44D -:103DF0008091E4018B7F0BC0873F21F48091E40127 -:103E0000877F05C0883F31F48091E4018F7E8093E5 -:103E1000E40113C08D3F21F48091E2018E7F0BC03D -:103E20008E3F21F48091E2018D7F05C08F3F29F400 -:103E30008091E2018B7F8093E2018091E501811105 -:103E40000EC08091E60181110AC08091E7018111C5 -:103E500006C08091E801811102C01092E30108952B -:103E600084EE91E00E9401100E949B1B9093E1015F -:103E70008093E00108951F93CF93DF938091E00139 -:103E80009091E1010E94A71BAC019091E30199235D -:103E900021F02091140130E006C0209115018AE044 -:103EA000289F900111244217530708F486C080917F -:103EB000E501C091E601D091E7011091E80181117F -:103EC00007C0C11176C0D11174C0111172C075C084 -:103ED0009F3F19F09F5F9093E301181624F40E940E -:103EE000C11D8093E5018091E50187FF05C00E9417 -:103EF000C11D81958093E5011C1624F40E94C11D0B -:103F00008093E6018091E60187FF05C00E94C11DF4 -:103F100081958093E6016091E501662339F1C091B6 -:103F2000E601CC2319F1772767FD7095872F972F2E -:103F30000E94B02223E333E343E35FE30E941423B0 -:103F40000E947D226093E5016C2F772767FD7095B5 -:103F5000872F972F0E94B02223E333E343E35FE3ED -:103F60000E9414230E947D226093E6011D1624F412 -:103F70000E940A1E8093E7018091E70187FF05C038 -:103F80000E940A1E81958093E701111624F40E9475 -:103F90000A1E8093E8018091E80187FF05C00E9416 -:103FA0000A1E81958093E801DF91CF911F910C94B7 -:103FB000301F9F3F09F08ECF96CFDF91CF911F9199 -:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE -:103FD0001092E3011092E2010895833081F128F4F8 -:103FE000813059F08230D1F00895853009F449C00C -:103FF000B8F1863009F456C0089580911501262F36 -:1040000030E0280F311D2F3F310524F4680F6093F5 -:10401000150108958FEF8093150108958091140183 -:10402000262F30E0280F311D2F3F310524F4680F73 -:104030006093140108958FEF809314010895809187 -:104040001301262F30E0280F311D2F3F310524F4B6 -:10405000680F6093130108958FEF80931301089503 -:1040600080911201262F30E0280F311D2F3F31059E -:1040700024F4680F6093120108958FEF809312016A -:10408000089580911101262F30E0280F311D2F3F18 -:10409000310524F4680F6093110108958FEF809328 -:1040A0001101089580911001262F30E0280F311D55 -:1040B0002F3F310524F4680F6093100108958FEFAE -:1040C000809310010895833011F128F4813049F074 -:1040D000823091F00895853081F120F18630C1F170 -:1040E000089580911501681720F4861B80931501AF -:1040F000089510921501089580911401681720F415 -:10410000861B8093140108951092140108958091E4 -:104110001301681720F4861B8093130108951092F1 -:104120001301089580911201681720F4861B809373 -:1041300012010895109212010895809111016817DB -:1041400020F4861B809311010895109211010895A7 -:1041500080911001681720F4861B80931001089548 -:104160001092100108950F931F938D3109F46BC0C5 -:1041700008F03FC08E3009F47FC0C0F4873009F4E6 -:1041800069C068F4863009F0B1C08091DA01817F9E -:104190008E7F8093DA0181E08093EA01A8C08830A5 -:1041A00009F4A2C08B3009F49FC0A0C0863109F485 -:1041B0009BC078F4803109F472C0813109F096C057 -:1041C0000E94831490910D0181E0892780930D0155 -:1041D0008BC0893109F488C08B3109F087C0809188 -:1041E000DA0181FB222720F991E0922790FB81F9E7 -:1041F0004CC0853309F470C048F4873209F46CC0B0 -:1042000008F459C0893209F467C070C0833438F4A7 -:104210008A3308F04EC0883309F466C067C083341F -:1042200009F45AC0883409F061C00E9483140FEF6A -:1042300013ED20E3015010402040E1F700C00000E2 -:104240000E94F61B51C00E9437220E94EA0F0E9472 -:10425000E3084AC09091DA01892F8095817080FB34 -:1042600090F929F0966098609093DA0140C0997FA8 -:10427000977F9093DA0138C08091DA0182FB222780 -:1042800020F991E0922790FB82F98093DA0199233B -:1042900059F18091DA0181608093DA0125C0809123 -:1042A000DA0183FB222720F991E0922790FB83F922 -:1042B000ECCF895301C08D5141E050E060E070E0E7 -:1042C0008A019B0104C0000F111F221F331F8A9512 -:1042D000D2F7C901B80104C061E070E080E090E06D -:1042E0000E9443180E94831481E001C080E01F9166 -:1042F0000F91089580E0089580E00895CF93C82F2E -:104300008091EA01813079F018F08230E9F187C0BC -:10431000E0910E01F0910F018081813169F08232CC -:1043200009F07FC009C0E0910E01F0910F0180817A -:10433000813111F0823261F48C2F0E947A21811137 -:1043400004C08C2F0E94B3201DC081E090E01AC0F1 -:104350008C2F0E947C21811114C0C43179F048F463 -:10436000CB3079F0C03109F060C082E08093EA017F -:1043700008C0C93219F0C83321F057C01092EA01C1 -:1043800054C081E0817053C0C93289F118F5C4313D -:1043900071F1A8F4C73009F046C08AE08093150196 -:1043A00094E19093140193E0909313018093120190 -:1043B00088E08093110188E28093100134C0CE51CF -:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB -:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC -:1043E00013C0C13579F0C235F1F461E00DC08091A0 -:1043F000E901882319F01092E90115C081E080934A -:10440000EA0115C061E006C08091E9010E94ED1F3C -:104410000AC06AE08091E9010E94632004C0109202 -:10442000EA0180E004C081E002C080E0ABCFCF9120 -:104430000895E1E8F0E08081886080838081816078 -:1044400080838FB7F89493E09093890090ED9093D8 -:1044500088008FBF0895EFE6F0E08081826080835E -:104460000895EFE6F0E080818D7F80830895EFE688 -:10447000F0E0908182E08927808308951F920F9257 -:104480000FB60F9211242F933F934F935F936F9327 -:104490007F938F939F93AF93BF93EF93FF938091FD -:1044A000EB019091EC0101969093EC018093EB016C -:1044B000811103C082E00E94E308E091EC01E695DF -:1044C000E695F0E0EC54FB4FE4918091EB018E1304 -:1044D00003C080E00E94E308FF91EF91BF91AF918C -:1044E0009F918F917F916F915F914F913F912F910C -:1044F0000F900FBE0F901F90189504D06894B111C3 -:104500008DC0089570D088F09F5790F0B92F9927EB -:10451000B751A0F0D1F0660F771F881F991F1AF0CE -:10452000BA95C9F712C0B13081F077D0B1E00895E3 -:1045300074C0672F782F8827B85F39F0B93FCCF364 -:10454000869577956795B395D9F73EF490958095C4 -:10455000709561957F4F8F4F9F4F0895E89409C0E4 -:1045600097FB3EF490958095709561957F4F8F4FA6 -:104570009F4F9923A9F0F92F96E9BB279395F695BC -:10458000879577956795B795F111F8CFFAF4BB0F3A -:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E -:1045A000882311F096E911C0772321F09EE8872F28 -:1045B000762F05C0662371F096E8862F70E060E0E4 -:1045C0002AF09A95660F771F881FDAF7880F96955D -:1045D000879597F9089557FD9058440F551F59F046 -:1045E0005F3F71F04795880F97FB991F61F09F3FE0 -:1045F00079F087950895121613061406551FF2CF09 -:104600004695F1DF08C0161617061806991FF1CF58 -:1046100086957105610508940895E894BB2766277F -:104620007727CB0197F908950BD078C069D028F08F -:104630006ED018F0952309F05AC05FC01124EECF58 -:10464000CADFA0F3959FD1F3950F50E0551F629FED -:10465000F001729FBB27F00DB11D639FAA27F00DDB -:10466000B11DAA1F649F6627B00DA11D661F829F02 -:104670002227B00DA11D621F739FB00DA11D621FE7 -:10468000839FA00D611D221F749F3327A00D611D04 -:10469000231F849F600D211D822F762F6A2F1124E6 -:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39 -:1046B000BB1F661F771F881F91505040A9F79E3F70 -:1046C000510570F014C0AACF5F3FECF3983EDCF3C5 -:1046D000869577956795B795F795E7959F5FC1F7AD -:1046E000FE2B880F911D9695879597F9089597F958 -:1046F0009F6780E870E060E008959FEF80EC089588 -:1047000000240A94161617061806090608950024B0 -:104710000A9412161306140605060895092E03942A -:10472000000C11F4882352F0BB0F40F4BF2B11F49E -:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF -:10474000072E16F4009407D077FD09D00E94B923F4 -:1047500007FC05D03EF4909581959F4F0895709584 -:1047600061957F4F0895EE0FFF1F0590F491E02DA6 -:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8 -:10478000B70710F0A61BB70B881F991F5A95A9F7FA -:1047900080959095BC01CD010895F999FECF92BD09 -:1047A00081BDF89A992780B50895A8E1B0E042E06C -:1047B00050E00C94F523262FF999FECF92BD81BDD0 -:1047C000F89A019700B4021639F01FBA20BD0FB64F -:1047D000F894FA9AF99A0FBE08950196272F0E942D -:1047E000DC230C94DB23DC01CB01FC01F999FECF27 -:1047F00006C0F2BDE1BDF89A319600B40D92415069 -:0A4800005040B8F70895F894FFCF78 -:10480A000220E508730950091C09E8080101C701DB -:10481A0028080A03140A3F4D363975042804F2039E -:10482A00B9034C0365037E039703010203040506DB -:04483A000708090062 -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/kines-ish/compiled.hex b/keyboards/ergodox_ez/keymaps/kines-ish/compiled.hex deleted file mode 100644 index 54524b326..000000000 --- a/keyboards/ergodox_ez/keymaps/kines-ish/compiled.hex +++ /dev/null @@ -1,1158 +0,0 @@ -:100000000C947A020C94BE020C94BE020C94BE02B4 -:100010000C94BE020C94BE020C94BE020C94BE0260 -:100020000C94BE020C94BE020C94620D0C94340E1F -:100030000C94BE020C94BE020C94BE020C94BE0240 -:100040000C94BE020C943E220C94BE020C94BE0290 -:100050000C94BE020C94D11B0C94BE020C94BE02F4 -:100060000C94BE020C94BE020C94BE020C94BE0210 -:100070000C94BE020C94BE020C94BE020C94BE0200 -:100080000C94BE020C94BE020C94BE020C94BE02F0 -:100090000C94BE020C94BE020C94BE020C94BE02E0 -:1000A0000C94BE020C94BE020C94BE02A10EC30EB0 -:1000B000B10FC30EB10F080F2B0FB10F800F930FAD -:1000C0006212621291129112C712E71218141814D8 -:1000D000F2121814A213A2130914181418141214EB -:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300 -:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0 -:10010000C113CE13D513DC13E6130000F0A12E00AB -:100110002B003900E100290000001E00140004003B -:100120001D0035004D001F001A0016001B0049007D -:100130004C00200008000700060050002A002100A3 -:100140001500090019004F004A00220017000A009C -:1001500005000000E000500001540000007F000096 -:10016000E2004F000154000000770000E30023008C -:100170001C000B0011000000E400240018000D001A -:10018000100052004B0025000C000E0036005100FC -:100190002C00260012000F0037002F002800270037 -:1001A00013003300380030004E002D0031003400C1 -:1001B000E500C200000046004700480001000100C1 -:1001C00000003A001E0220022202010001003B0052 -:1001D0001F0221022302010001003C002F0226021F -:1001E0002F00010001003D00300227023000010015 -:1001F00001003E003102350035020000010001001F -:1002000001000000010000000100010001000000E9 -:100210000100000001003F005200510024020000D4 -:1002200001004000240021001E00010001004100E7 -:10023000250022001F003700010042002600230095 -:10024000200027000100430025022E0231002E006D -:100250000100440045000100010001000000010010 -:100260000100010001000100000001000100010087 -:1002700001000100010001000100F2000100010085 -:1002800001000100F000F1000100F4000100010094 -:100290000100F3000100F500010001000100010070 -:1002A0000100000001000100010000000100000049 -:1002B0000100010001000000010000000100010038 -:1002C0000100010001000000010001000100010027 -:1002D0000100A9000100010001000100AC00AA001A -:1002E000B600010001000100AB00A8000100010000 -:1002F0000100010001000100010001000100AE0049 -:1003000001000100000016034500720067006F0045 -:1003100044006F007800200045005A0000001603DA -:100320004500720067006F0044006F0078002000F5 -:1003300045005A0000000403090409026D0004018D -:1003400000A0FA09040000010301010009211101C4 -:100350000001223F000705810308000A090401008B -:100360000103010200092111010001224D000705CE -:10037000820308000A0904020001030000000921A9 -:10038000110100012236000705830308000A090451 -:1003900003000103000000092111010001223900BE -:1003A000070584031000011201100100000008ED90 -:1003B000FE071301000102000105010906A1010564 -:1003C0000719E029E7150025019508750181020547 -:1003D000081901290595057501910295017503918B -:1003E0000105071900297715002501957875018108 -:1003F00002C005010980A101850216010026B7008F -:100400001A01002AB700751095018100C0050C097A -:1004100001A1018503160100269C021A01002A9CF5 -:1004200002751095018100C005010902A1010901B1 -:10043000A10005091901290515002501950575017A -:10044000810295017503810105010930093115818A -:10045000257F95027508810609381581257F95014C -:1004600075088106050C0A38021581257F950175EE -:10047000088106C0C005010906A101050719E02988 -:10048000E715002501950875018102950175088120 -:100490000105081901290595057501910295017558 -:1004A0000391010507190029FF150025FF95067521 -:1004B000088100C0000000000000000000000001F2 -:1004C0000204060A0F17202C3A4A5D71879DB3C7B4 -:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF -:1004E0003A2C20170F0A0604020100000000000049 -:1004F0000000000011241FBECFEFDAE0DEBFCDBF49 -:1005000004B603FE24C08091FB019091FC01A091F0 -:10051000FD01B091FE018730904BA740B04BB9F47C -:100520001092FB011092FC011092FD011092FE014D -:1005300014BE84B7877F84BF88E10FB6F894809398 -:100540006000109260000FBEE0E0FFE3099511E04B -:10055000A0E0B1E0EAE0F8E402C005900D92A43317 -:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0 -:10057000B107E1F70E94A60A0C9403240C94000032 -:100580001092B9008AE08093B800089594EA90939D -:10059000BC009091BC0097FFFCCF9091B900987F70 -:1005A000983021F0903111F081E008958093BB00E4 -:1005B00084E88093BC008091BC0087FFFCCF8091D1 -:1005C000B900887F883111F0803471F780E0089598 -:1005D00084E98093BC008091BC0084FDFCCF089529 -:1005E0008093BB0084E88093BC008091BC0087FFAF -:1005F000FCCF9091B900987F81E0983209F480E0B7 -:10060000089584E88093BC008091BC0087FFFCCFF4 -:100610008091BB00089580910101811115C080E493 -:100620000E94C6028093010181110CC082E10E94E8 -:10063000F00280930101811105C08FEF0E94F0024A -:10064000809301010E94E80284B1807F84B985B162 -:10065000807F85B98AB1837F8AB98BB1837F8BB95B -:100660003E98469808950E94C604809301010E9416 -:100670000B0380B38C7080BB81B3836F81BBA5E318 -:10068000B1E0E3E4F1E08EE08E0F11921D928E1343 -:10069000FCCF0C94B004BF92CF92DF92EF92FF9206 -:1006A0000F931F93CF93DF9380910101882379F0FB -:1006B000809134018F5F80933401811108C00E94C2 -:1006C000C60480930101811102C00E94580405E311 -:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407 -:1006E000E394F12CC730D10500F58091010181110F -:1006F00064C080E40E94C60280930101811112C08F -:1007000082E10E94F0028093010181110BC0C701B8 -:100710000C2E01C0880F0A94EAF780950E94F0021F -:10072000809301010E94E80248C0CA30A1F028F479 -:10073000C83059F0C93061F005C0CC3089F070F094 -:10074000CD3089F0209A289810C0219A29980DC0A0 -:10075000229A2A980AC0239A2B9807C0529A01C05D -:10076000539A5B9802C03E9A469890EA9A95F1F7A0 -:100770009FB1799902C082E001C080E091709D250F -:10078000982B7C9902C084E001C080E0892B7D9980 -:1007900002C038E001C030E0832B7E9902C020E126 -:1007A00001C020E0822B9FB19095991F9927991F36 -:1007B0009295990F907E892B0FC080910101811134 -:1007C00049C080E40E94C60280930101882379F128 -:1007D000B12C0E94E8028B2DF8019081981719F036 -:1007E0008083C09200010E940B0321960F5F1F4F70 -:1007F000CE30D10509F076CF80910001882361F1D8 -:10080000815080930001882339F08FE99FE00197A0 -:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F -:10082000CF01825F91919D938E13FCCF15C083E120 -:100830000E94F002809301018111CACF81E40E94DD -:10084000C602809301018111C3CF0E940103B82E1B -:10085000B094BFCF80E0C0CF0E94560481E0DF910A -:10086000CF911F910F91FF90EF90DF90CF90BF90AD -:100870000895E82FF0E0ED5BFE4F80810895089524 -:100880000F931F93CF93DF93C3E4D1E010E00C2FBD -:10089000025F899190E00E94F71A180F0C13F9CFAC -:1008A000812FDF91CF911F910F9108950C94260510 -:1008B00056985E9825982D9826982E9827982F98C8 -:1008C0008FEF90E0909389008093880090938B0045 -:1008D00080938A0090938D0080938C00259A2D9AA6 -:1008E0002FEF80E792E0215080409040E1F700C078 -:1008F0000000269A2E9A2FEF80E792E02150804048 -:100900009040E1F700C00000279A2F9A2FEF80E770 -:1009100092E0215080409040E1F700C0000025980F -:100920002D982FEF80E792E0215080409040E1F732 -:1009300000C0000026982E982FEF80E792E021500B -:1009400080409040E1F700C0000027982F9856980B -:100950005E9825982D9826982E9827982F98089578 -:1009600089EA8093800089E08093810024982C9804 -:100970003F988AB18F748AB96E98479A8BB1806B11 -:100980008BB9769A0E9458040C94250580E28093D6 -:1009900001018091510181110EC00E94C00281E0CD -:1009A000809351012FEF83ED90E3215080409040E0 -:1009B000E1F700C0000080E40E94C60280930101BC -:1009C00081112EC00E94F00280930101811128C084 -:1009D0000E94F00280930101811122C08FE30E94E6 -:1009E000F0028093010181111BC00E94E80280E4A3 -:1009F0000E94C60280930101811112C08CE00E9406 -:100A0000F0028093010181110BC00E94F0028093DB -:100A10000101811105C08FE30E94F0028093010162 -:100A20000E94E80280910101089561110BC0FC0150 -:100A30008281882321F085EE0E94061103C085EE95 -:100A40000E94CE1180E090E0089508956091BD016C -:100A50007091BE018091BF019091C0010E94031B63 -:100A600056985E9825982D9826982E9827982F9816 -:100A7000813019F0823021F00895259A2D9A089539 -:100A8000269A2E9A089581E0089581E008950C94A5 -:100A9000450508950F931F93CF93DF938C01FC01BD -:100AA000C081D181CE010E947C19BE010E94F30554 -:100AB000EC01B8010E944705882309F48DC0F801B4 -:100AC0008281882309F44AC080915D0181111FC091 -:100AD000C431F0E5DF0709F051C00E94490581E00B -:100AE00080935D010E949B1B90935C0180935B014E -:100AF0001092540110925601109255011092580113 -:100B00001092570110925A011092590165C08091BC -:100B10005B0190915C010E94A71B883C910570F4D9 -:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB -:100B3000D183C0838F5F809354014EC0C43880E559 -:100B4000D80721F0C538D04501F13AC0F8018281BB -:100B5000882341F01092520182E01EC0C438E0E5C3 -:100B6000DE0759F580915201811106C086E20E948C -:100B7000061186E20E94CE1182E01CC0C438F0E566 -:100B8000DF0741F3C538D045D9F4F80182818823C5 -:100B900031F01092530180E20E941D121DC080911D -:100BA0005301811106C087E20E94061187E20E946C -:100BB000CE1180E20E9424120FC0C538D04529F31F -:100BC00081E08093520180935301C801DF91CF915E -:100BD0001F910F910C94430580E0DF91CF911F91FD -:100BE0000F910895089596E0799FF001112494E5FE -:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F -:100C0000E25FFE4F859194910895880F991FFC0132 -:100C1000E657F040859194910895880F991FFC0143 -:100C2000E65FFE4F8591949108950F931F93CF93A4 -:100C3000DF93EC01811520E3920750F5C11580E2A6 -:100C4000D80708F0C3C0CB3BD10590F4C83AD10512 -:100C500008F06AC0C53AD10508F05BC0C430D105C0 -:100C600008F0D0C1219709F0CAC101E010E00AC222 -:100C7000CF3FD10511F008F0C5C1C03FD10508F044 -:100C8000A2C0CE01805E9109089708F4BBC1B7C12C -:100C9000C13090E5D90709F4A2C020F5C0318FE436 -:100CA000D80770F4C11590E4D90708F094C0C115B5 -:100CB00021E3D20708F0A3C1DD278E01106CE2C149 -:100CC000C115D04509F09BC10E9483148FEF94E3B6 -:100CD0002CE0815090402040E1F700C000000E94CD -:100CE000F61BD0C1C11597E5D90758F4C03121E5ED -:100CF000D20708F01CC1C43180E5D80708F475C0DC -:100D00007EC1CE0190578115904108F078C1DF7007 -:100D100073C1C53AD10509F477C1C63AD10509F0C6 -:100D200076C102E810E4AEC1C83AD10509F472C137 -:100D3000C93AD10509F471C1CA3AD10509F470C1A3 -:100D4000CB3AD10509F46FC1CC3AD10509F46EC193 -:100D5000CD3AD10509F46DC1C03BD10509F46CC190 -:100D6000CE3AD10509F46BC1CF3AD10509F46AC175 -:100D7000C13BD10509F469C1C23BD10509F468C181 -:100D8000C33BD10509F467C1C43BD10509F466C171 -:100D9000C53BD10509F465C1C63BD10509F464C161 -:100DA000C73BD10509F463C1C83BD10509F462C151 -:100DB000C93BD10509F461C1CA3BD10509F460C141 -:100DC00000E014E45FC18E0110655CC1CE019F702C -:100DD0000E940D0658C1DF708E01106A53C18091C8 -:100DE000DA0181608093DA014DC10E949B1D81115F -:100DF00002C00E94811D0E94B81D90E09093FB01EB -:100E00008093FA01C23080E5D80721F48091FA017D -:100E1000816086C0C43090E5D90721F48091FA0141 -:100E200082607EC0C63020E5D20721F48091FA01AD -:100E3000846076C0C83080E5D80719F48091FA0143 -:100E400027C0CA3090E5D90721F48091FA0180616A -:100E500067C0CC3020E5D20721F48091FA0180628E -:100E60005FC0CE3080E5D80721F48091FA0180641C -:100E700057C0C03190E5D90721F48091FA0180680C -:100E80004FC0C23120E5D20729F48091FA01846075 -:100E9000886046C0C33080E5D80721F48091FA010C -:100EA0008E7F3EC0C53090E5D90721F48091FA01CC -:100EB0008D7F36C0C73020E5D20721F48091FA013A -:100EC0008B7F2EC0C93080E5D80719F48091FA01D4 -:100ED00026C0CB3090E5D90721F48091FA018F7EAE -:100EE0001FC0CD3020E5D20721F48091FA018F7D1B -:100EF00017C0CF3080E5D80721F48091FA018F7BAD -:100F00000FC0C13190E5D90721F48091FA018F77A4 -:100F100007C0C331D04531F48091FA018B7F877FC0 -:100F20008093FA018091FA010E94BC1DABC08D2F05 -:100F300099278F70992781309105D9F49E012370EC -:100F4000332702C0880F991F2A95E2F79C688E010B -:100F500044E0000F111F4A95E1F700271370802B22 -:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA -:100F70002FC08230910531F4DC2FCC278E01016F18 -:100F8000106A80C08330910569F4CE01837099277F -:100F900001E010E002C0000F111F8A95E2F7C801BE -:100FA0009C680FC084309105B9F4CE0183709927F5 -:100FB00001E010E002C0000F111F8A95E2F7C8019E -:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029 -:100FD0008C010C2B1D2B56C08530910531F4DC2F74 -:100FE000CC278E01046F106A4DC0069709F04AC0E5 -:100FF000CF71DD27DC2FCC278E01106243C000E0CB -:1010000010E040C08E013EC001E810E43BC003E8A0 -:1010100010E438C002EE14E435C009EE14E432C026 -:101020000AEE14E42FC005EB14E42CC006EB14E424 -:1010300029C007EB14E426C00CEC14E423C00DEC2B -:1010400014E420C003E815E41DC00AE815E41AC042 -:1010500002E915E417C004E915E414C001E216E43E -:1010600011C003E216E40EC004E216E40BC005E270 -:1010700016E408C006E216E405C007E216E402C062 -:101080000AE216E4C801DF91CF911F910F910895F4 -:1010900096E0799FF001112494E5899FE00DF11D00 -:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149 -:1010B0009491803E9105E0F4803C910558F5813390 -:1010C000910509F46FC048F48932910509F463C0B1 -:1010D0008A32910509F46DC072C089339105E9F037 -:1010E00082389105D1F08533910509F44DC067C070 -:1010F000833E910581F138F4803E9105B9F0823E3E -:101100009105D9F05CC0863E910561F1873E91055D -:10111000A1F155C00E94050608952091FA0120FD15 -:1011200002C021FF4CC080EE90E049C08091FA01DE -:1011300080FFF9CF89E390E042C08091FA0182FFFD -:101140000EC08091FA0184FF03C080E090E037C0B8 -:1011500083EE90E034C08091FA0182FFF2CF82EEFC -:1011600090E02DC08091FA0183FF0BC08091FA01BD -:1011700084FDEBCF87EE90E022C08091FA0183FFDF -:10118000F5CF86EE90E01BC08091FA0185FF07C085 -:1011900089E290E014C08091FA0185FFF9CF85E3E0 -:1011A00090E00DC08091FA0186FF07C08AE290E0CE -:1011B00006C08091FA0186FFF9CF81E390E00E949A -:1011C0001506089508950C94E20880916E01089523 -:1011D000CF93DF9300D01F92CDB7DEB79C018091F3 -:1011E000F101843019F593E099833B832A8390932E -:1011F000E9008FEF9091E800815095FD06C095EDD4 -:101200009A95F1F700008111F5CF8091E80085FFF4 -:101210000DC040E050E063E070E0CE0101960E9416 -:10122000520B8091E8008E778093E8000F900F902A -:101230000F90DF91CF910895CF93DF9300D01F924D -:10124000CDB7DEB72091F101243021F522E02983CA -:101250009B838A8383E08093E9008FEF9091E8007D -:10126000815095FD06C095ED9A95F1F7000081112A -:10127000F5CF8091E80085FF0DC040E050E063E0CD -:1012800070E0CE0101960E94520B8091E8008E77AB -:101290008093E8000F900F900F90DF91CF91089509 -:1012A0002091F1012430F1F422E02093E9002FEFA6 -:1012B0003091E800215035FD06C035ED3A95F1F743 -:1012C00000002111F5CF2091E80025FF0BC040E080 -:1012D00050E065E070E00E94520B8091E8008E774C -:1012E0008093E8000895CF93DF93EC019091F10192 -:1012F000943009F046C080910C018823D9F0809188 -:101300000D018823B9F09093E9008FEF9091E800E8 -:10131000815095FD06C095E19A95F1F70000811185 -:10132000F5CF8091E80085FF2CC040E050E060E1FF -:1013300070E017C081E08093E9008FEF9091E800A2 -:10134000815095FD06C095ED9A95F1F70000811149 -:10135000F5CF8091E80085FF14C040E050E068E0E0 -:1013600070E0CE010E94520B8091E8008E7780934E -:10137000E80080E1FE01AEE5B1E001900D928A95B2 -:10138000E1F7DF91CF9108958091F001811109C0BB -:101390000E94E70C0E94440D8091E20084608093DB -:1013A000E20008951092F001089508950C942B2204 -:1013B0000E948C1B0E9431220E94EA0F0C94E308C9 -:1013C00042E061EC81E00E94610C42E061EC82E06D -:1013D0000E94610C42E061EC83E00E94610C42E1FA -:1013E00061EC84E00C94610C8091F301833009F48A -:1013F00055C030F4813071F0823009F48EC0089508 -:101400008A3009F47AC08B3009F460C0893009F061 -:101410009CC020C08091F201813A09F096C0809171 -:10142000E800877F8093E8008091F6019091F701B2 -:10143000892B21F460E18EE591E003C060E080E05B -:1014400090E070E00E949D0B8091E8008B77809384 -:10145000E80008958091F201813209F076C0809110 -:10146000F6019091F701009719F0039709F06DC00C -:101470008091E800877F8093E8008091E80082FDFA -:1014800005C08091F1018111F8CF5FC08091F1001A -:1014900080936E018091E8008B7753C08091F201B8 -:1014A000813A09F052C08091F6019091F701892BA1 -:1014B00009F04BC08091E800877F8093E80080911D -:1014C000E80080FFFCCF80910C0136C08091F201D2 -:1014D0008132D9F58091F6019091F701892BA9F518 -:1014E0008091E800877F8093E8000E94960C8091AD -:1014F000F40180930C010C9483148091F2018132E9 -:1015000021F58091E800877F8093E8000E94960C87 -:101510008091F50180936F0108958091F201813AE5 -:10152000A1F48091E800877F8093E8008091E80033 -:1015300080FFFCCF80916F018093F1008091E800E3 -:101540008E778093E8000C94960C089584B7877F7B -:1015500084BF88E10FB6F894809360001092600019 -:101560000FBE90E080E80FB6F894809361009093EE -:1015700061000FBE0E9439100E94E70C0E94440DCA -:101580008091E20084608093E20078940E94CA0F08 -:101590000E943B1082E091E00E94E50F0E94192218 -:1015A0008091F101853069F40E94531B8091EF0115 -:1015B0008823B1F30E947E1B882391F30E943C0B89 -:1015C000EFCF0E944110ECCF292F33272330310574 -:1015D000C9F064F42130310581F02230310509F081 -:1015E00043C08DE690E02AE333E042C0213231056A -:1015F000F1F02232310541F137C082E190E027EA73 -:1016000033E036C099278130910541F08230910551 -:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4 -:1016200002C0E6E0F3E0849190E09F0121C06430C5 -:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5 -:10164000318189E090E014C0643070F470E0FB01F7 -:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47 -:10166000FE4F808190E004C080E090E020E030E018 -:10167000FA0131832083089580E189BD82E189BD2B -:1016800009B400FEFDCF8091D8008F7D8093D800F3 -:101690008091E00082608093E0008091E00081FD15 -:1016A000FCCF0895CF92DF92EF92FF920F931F939A -:1016B000CF93DF93EC018B016A010E94B50C81117D -:1016C00033C0C114D10439F0F60180819181081B27 -:1016D000190BC80FD91FE12CF12C0115110519F1B7 -:1016E0008091E80085FD16C08091E8008E77809398 -:1016F000E800C114D10449F0F60180819181E80E1F -:10170000F91EF182E08285E00FC00E94B50C8823AB -:1017100021F30AC089918093F10001501109FFEF74 -:10172000EF1AFF0ADACF80E0DF91CF911F910F917E -:10173000FF90EF90DF90CF9008952091F8013091C5 -:10174000F9012617370748F06115710539F4209122 -:10175000E8002E772093E80001C0B90140E0611550 -:101760007105A9F12091F101222309F443C025302C -:1017700009F442C02091E80023FD40C02091E80018 -:1017800022FD32C02091E80020FFE9CF4091F30014 -:101790002091F20030E0342BFC01CF01611571057E -:1017A00059F02830310540F481918093F100615067 -:1017B00071092F5F3F4FF1CF41E02830310509F02B -:1017C00040E02091E8002E772093E800C8CF411137 -:1017D000C9CF0AC08091F101882361F0853061F0A2 -:1017E0008091E80083FD0AC08091E80082FFF2CF7B -:1017F00080E0089582E0089583E0089581E00895EF -:101800002091F8013091F9012617370748F061154A -:10181000710539F42091E8002E772093E80001C08B -:10182000B901FC0120E06115710591F18091F10190 -:10183000882309F440C0853009F43FC08091E80056 -:1018400083FD3DC08091E80082FD2FC08091E800BB -:1018500080FFE9CF2091F3008091F20090E0922B7D -:101860006115710559F08830910540F42491209359 -:10187000F1003196615071090196F2CF21E008978D -:1018800009F020E08091E8008E778093E800CBCFCC -:101890002111CCCF0AC08091F101882361F08530FD -:1018A00061F08091E80083FD0AC08091E80082FF2A -:1018B000F2CF80E0089582E0089583E0089581E00A -:1018C0000895982F973058F59093E900981739F0BC -:1018D0007091EC002091ED005091F00003C0242F96 -:1018E000762F50E021FF19C03091EB003E7F3093FE -:1018F000EB003091ED003D7F3093ED003091EB0037 -:1019000031603093EB007093EC002093ED00509326 -:10191000F0002091EE0027FF07C09F5FD3CF8F70AC -:101920008093E90081E0089580E008958091F201BC -:1019300087FF11C08091E80082FD05C08091F10110 -:101940008111F8CF11C08091E8008B770BC0809196 -:10195000F101882349F08091E80080FFF8CF809161 -:10196000E8008E778093E80008952091E40030919C -:10197000E50095E64091EC00842F817040FF22C085 -:101980008091E80080FD1CC08091F101882391F0D6 -:10199000853091F08091EB0085FD10C04091E4000E -:1019A0005091E5004217530729F39A01915011F71E -:1019B00084E0089582E0089583E0089581E0089529 -:1019C00080E008954091E80042FFDECF08950E9434 -:1019D000550D0E945D0DE0EEF0E080818160808316 -:1019E000E8EDF0E080818F77808319BCA7EDB0E04F -:1019F0008C918E7F8C9380818F7E80831092F001FA -:101A000008950F931F93CF93DF930E94550D0E946B -:101A10005D0DC8EDD0E088818F77888388818068EC -:101A2000888388818F7D888319BC1092F101109280 -:101A3000ED011092EF011092EE0100EE10E0F801BE -:101A400080818B7F808388818160888342E060E031 -:101A500080E00E94610CE1EEF0E080818E7F808367 -:101A6000E2EEF0E080818160808380818860808305 -:101A7000F80180818E7F8083888180618883DF91F7 -:101A8000CF911F910F910895E8EDF0E080818F7E56 -:101A90008083E7EDF0E080818160808384E082BF15 -:101AA00081E08093F0010C94010DE8EDF0E080817D -:101AB0008E7F80831092E20008951092DA001092D7 -:101AC000E10008951F920F920FB60F9211242F93E9 -:101AD0003F934F935F936F937F938F939F93AF93B6 -:101AE000BF93EF93FF938091E10082FF0BC0809141 -:101AF000E20082FF07C08091E1008B7F8093E100CC -:101B00000E94C90F8091DA0080FF1FC08091D80029 -:101B100080FF1BC08091DA008E7F8093DA00809175 -:101B2000D90080FF0DC080E189BD82E189BD09B483 -:101B300000FEFDCF81E08093F1010E94C40905C041 -:101B400019BC1092F1010E94D2098091E10080FF3E -:101B500019C08091E20080FF15C08091E2008E7F65 -:101B60008093E2008091E20080618093E2008091A6 -:101B7000D80080628093D80019BC85E08093F10181 -:101B80000E94D6098091E10084FF30C08091E2007C -:101B900084FF2CC080E189BD82E189BD09B400FECB -:101BA000FDCF8091D8008F7D8093D8008091E10097 -:101BB0008F7E8093E1008091E2008F7E8093E2002F -:101BC0008091E20081608093E2008091ED018823A2 -:101BD00011F084E007C08091E30087FD02C081E03E -:101BE00001C083E08093F1010E94D8098091E10057 -:101BF00083FF29C08091E20083FF25C08091E1002E -:101C0000877F8093E10082E08093F1011092ED01E3 -:101C10008091E1008E7F8093E1008091E2008E7FD1 -:101C20008093E2008091E20080618093E20042E0D4 -:101C300060E080E00E94610C8091F00088608093F9 -:101C4000F0000E94D509FF91EF91BF91AF919F9154 -:101C50008F917F916F915F914F913F912F910F9055 -:101C60000FBE0F901F9018951F920F920FB60F92F4 -:101C700011242F933F934F935F936F937F938F9391 -:101C80009F93AF93BF93CF93DF93EF93FF93C09155 -:101C9000E900CF708091EC00D82FD17080FDD0E8A2 -:101CA0001092E9008091F000877F8093F000789493 -:101CB0000E94780E1092E9008091F0008860809375 -:101CC000F000CD2BCF70C093E900FF91EF91DF9131 -:101CD000CF91BF91AF919F918F917F916F915F91C4 -:101CE0004F913F912F910F900FBE0F901F9018951D -:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3 -:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115 -:101D1000F10091938E13FBCF0E94F4098091E800AB -:101D200083FF1FC18091F2019091F301492F50E090 -:101D30004A30510508F015C1FA01EA5AFF4F0C94D8 -:101D4000B323803881F0823809F00BC18091F6010D -:101D50008F708093E9008091EB0085FB882780F9E4 -:101D60001092E90006C08091EE019091EF0191116F -:101D700082609091E800977F9093E8008093F10053 -:101D80001092F100C8C0282F2D7F09F0EAC08823E7 -:101D900019F0823061F0E5C08091F401813009F0E2 -:101DA000E0C0933009F080E08093EF012BC0809178 -:101DB000F401811127C08091F6018F7009F4D1C020 -:101DC0008093E9002091EB0020FF1CC0933021F4A8 -:101DD0008091EB00806214C09091EB009061909331 -:101DE000EB0021E030E0A90102C0440F551F8A95A5 -:101DF000E2F74093EA001092EA008091EB008860DD -:101E00008093EB001092E9008091E800877F86C004 -:101E10008111A7C01091F4011F778091E3008078B1 -:101E2000812B8093E3008091E800877F8093E80016 -:101E30000E94960C8091E80080FFFCCF8091E30027 -:101E400080688093E300111102C082E001C083E04A -:101E50008093F10186C08058823008F082C0809162 -:101E6000F4019091F5018C3D53E0950779F583E0FD -:101E70008A838AE289834FB7F894DE01139620E0C3 -:101E80003EE051E2E32FF0E050935700E49120FF51 -:101E900003C0E295EF703F5FEF708E2F90E0EA3065 -:101EA00010F0C79601C0C0968D939D932F5F24318B -:101EB00049F74FBF8091E800877F8093E8006AE28E -:101EC00070E0CE0101960E949D0B14C0AE014F5FE1 -:101ED0005F4F6091F6010E94E40ABC01009709F48B -:101EE00040C09091E800977F9093E80089819A81A3 -:101EF0000E94000C8091E8008B778093E80031C04D -:101F0000803879F58091E800877F8093E8008091A0 -:101F1000ED018093F1008091E8008E778093E800D6 -:101F20000E94960C1EC081111CC09091F401923049 -:101F3000C0F48091E800877F8093E8009093ED01E2 -:101F40000E94960C8091ED01811106C08091E30002 -:101F500087FD02C081E001C084E08093F1010E940E -:101F6000E0098091E80083FF0AC08091E800877F44 -:101F70008093E8008091EB0080628093EB00AA964A -:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A -:101F900008950895CF938091F1018823A1F0C09115 -:101FA000E900CF709091EC00892F817090FD80E85E -:101FB000C82B1092E9008091E80083FD0E94780E02 -:101FC000CF70C093E900CF910895909375018093ED -:101FD00074010895E0917401F0917501309721F03A -:101FE0000190F081E02D099480E00895E091740162 -:101FF000F0917501309721F00280F381E02D099472 -:102000000895E0917401F0917501309721F00480FA -:10201000F581E02D099408952091720130917301AA -:102020008217930771F09093730180937201E0918E -:102030007401F0917501309721F00680F781E02D51 -:1020400009940895209170013091710182179307CE -:1020500071F09093710180937001E0917401F0919F -:102060007501309721F00084F185E02D09940895E1 -:1020700008950C9438100E94921B0E9433030C9414 -:10208000541C9F92AF92BF92CF92DF92EF92FF9239 -:102090000F931F93CF93DF9300D000D000D0CDB724 -:1020A000DEB70E944B030DE010E0AA24A394B12CEC -:1020B000902E802F0E943904980129583E4F6901C3 -:1020C000F901F080F826A1F40150110988F78FEF8B -:1020D00089838A831B820E949B1B8160782F9D834A -:1020E0008C8349815A816B818D810E94D8102FC0C9 -:1020F0009091DA0191FF04C08E830E943F048E818B -:1021000025E030E0A501022E01C0440F0A94EAF751 -:10211000E42E4F21C1F029839A828E2191E009F4A7 -:1021200090E09B830E949B1B8160782F9D838C8312 -:1021300049815A816B818D810E94D810F60180817E -:10214000E826E08204C021503109E0F6BDCF0E94AC -:102150003B1F109176010E94EA0F1817B9F00E94F8 -:10216000EA0F8093760126960FB6F894DEBF0FBE75 -:10217000CDBFDF91CF911F910F91FF90EF90DF9036 -:10218000CF90BF90AF909F900C94E30826960FB627 -:10219000F894DEBF0FBECDBFDF91CF911F910F919D -:1021A000FF90EF90DF90CF90BF90AF909F900895F9 -:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82 -:1021C0000FBECDBF4F83588769877A878B87DE0123 -:1021D000119686E0FD0111928A95E9F785E0FE01EE -:1021E000379601900D928A95E1F749815A816B816A -:1021F0007C818D819E810E9421172B960FB6F894C9 -:10220000DEBF0FBECDBFDF91CF910895CF9388235E -:1022100009F4C2C0C82F823859F40E94EA0F81FD28 -:10222000BBC089E30E94FB190E94C81A89E30CC055 -:10223000833879F40E94EA0F80FDAEC083E50E94E6 -:10224000FB190E94C81A83E50E943D1ACF910C9495 -:10225000C81A843859F40E94EA0F82FD9DC087E4B1 -:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6 -:10227000813A48F48C2F0E947E2181118DC08C2FD1 -:102280000E94FB19E3CF80E28C0F883048F4C770BE -:1022900081E001C0880FCA95EAF70E94811AD6CF63 -:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB -:1022B00083E890E005C081E890E002C082E890E009 -:1022C000CF910C940C1088E58C0F833108F064C01A -:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118 -:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186 -:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106 -:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173 -:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB -:1023200038C082EE90E035C089EE90E032C08AEE8F -:1023300090E02FC085EB90E02CC086EB90E029C0A8 -:1023400087EB90E026C08CEC90E023C08DEC90E011 -:1023500020C083E891E01DC08AE891E01AC082E9BC -:1023600091E017C084E991E014C081E292E011C0CD -:1023700083E292E00EC084E292E00BC085E292E03C -:1023800008C086E292E005C087E292E002C08AE2DD -:1023900092E0CF910C942210CF910895882309F4F4 -:1023A0004BC0823859F40E94EA0F81FF45C089E38F -:1023B0000E94FB190E94C81A89E30CC0833871F48B -:1023C0000E94EA0F80FF38C083E50E94FB190E943B -:1023D000C81A83E50E943D1A0C94C81A843859F42F -:1023E0000E94EA0F82FF28C087E40E94FB190E9426 -:1023F000C81A87E4EFCF9CEF980F913A58F390E218 -:10240000980F983050F4877091E001C0990F8A9529 -:10241000EAF7892F0E94871ADFCF9BE5980F933048 -:1024200020F480E090E00C940C10885A833120F462 -:1024300080E090E00C9422100895882321F00E94FF -:10244000811A0C94C81A0895882321F00E94871AD3 -:102450000C94C81A08957F928F929F92AF92BF9268 -:10246000CF92DF92EF92FF920F931F93CF93DF9360 -:102470001F92CDB7DEB77C01C62E772EFC010581F9 -:1024800002950F70128111110E949E1A0E94F41978 -:10249000882379F0112369F080E28C0D883048F0B0 -:1024A00082E00E94DD190E94F41991E0D82ED9260D -:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C -:1024C0000C94B323872D807F072D0F70882311F084 -:1024D0000295007F112389F0002309F490C180E266 -:1024E0008C0D883020F4802F0E94811A03C0802F29 -:1024F0000E94911A0E94C81A82C18C2D0E94CE118E -:10250000002309F495C180E28C0D883020F4802FDF -:102510000E94871A03C0802F0E94971A0E94C81A2F -:1025200087C1972D907F872D8F70903211F0829503 -:10253000807FCC2021F0F1E0CF16B1F01EC0112336 -:1025400049F0002309F414C1013009F011C10E94BF -:10255000B11A6EC1002319F0013009F469C18983F1 -:102560000E94B41A89810AC1112321F0023008F0B7 -:102570005FC1FEC001115CC101C1112321F0002324 -:1025800009F4F6C03CC1002309F4F8C03EC1872D10 -:1025900086958695837090E0009719F0019761F019 -:1025A00047C1112321F08C2D972D937002C080E03C -:1025B00090E00E940C103CC1112321F08C2D972D2E -:1025C000937002C080E090E00E94221031C18C2DF7 -:1025D000112319F00E94431E02C00E94AB1E0E94EC -:1025E000301F26C1872D837009F052C0111120C100 -:1025F0008C2D829586958770880F880F9C2D9F70F3 -:10260000892E912CA12CB12C082E04C0880C991C69 -:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041 -:1026200020E030E0B901A80104C0440F551F661F27 -:10263000771F8A95D2F7CB01BA0160957095809586 -:10264000909503C060E070E0CB01272D269526957C -:10265000237030E02230310569F02330310589F0F4 -:10266000682979298A299B292130310571F00E9436 -:102670006918DEC0682979298A299B290E94851852 -:10268000D7C00E946918C501B4010E944D18D0C07E -:10269000112319F0872D817001C08695882309F4D4 -:1026A000C7C08C2D829586958770880F880F9C2DCA -:1026B0009F70892E912CA12CB12C082E04C0880C5F -:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC -:1026D00010E020E030E0B901A80104C0440F551F0C -:1026E000661F771F8A95D2F7CB01BA016095709566 -:1026F0008095909503C060E070E0CB01272D269572 -:1027000026952370422F50E04230510569F0433046 -:10271000510589F0682979298A299B294130510579 -:1027200071F00E94431984C0682979298A299B295C -:102730000E945F197DC00E944319C501B4010E9427 -:10274000271976C08C2D90E0FC01E05EF109E5319F -:10275000F10508F050C0E059FF4F0C94B3230C2D45 -:102760000F70872D8F71112331F00E94C018802FB8 -:102770000E941D125DC00E94E118802F0E94241249 -:1027800057C0112339F0011153C0872D8F710E945A -:1027900006194EC0023008F04BC0F7CF112339F0B4 -:1027A000872D8F710E94C01843C01123C9F3872D54 -:1027B0008F710E94E1183CC0112329F0872D8F7181 -:1027C0000E94AB1835C00E94A11832C0112351F0ED -:1027D000172D1F71812F0E94C01863E0812F0E9466 -:1027E000D41926C081E00E94DD19023008F182E090 -:1027F0000E94DD191DC0112331F0002389F28C2DB8 -:102800000E94061115C0002391F28C2D0E94CE115A -:102810000FC0472D4F706C2DC7010E9415050E94F7 -:10282000C51706C0472D4F706C2DC7010E94F205D9 -:10283000DD20F9F00E94D01980FD1BC0F701128243 -:102840000E94CA190E94C018C7010E9448140E9421 -:10285000CA190F90DF91CF911F910F91FF90EF90C8 -:10286000DF90CF90BF90AF909F908F907F900C940F -:10287000E1180F90DF91CF911F910F91FF90EF9092 -:10288000DF90CF90BF90AF909F908F907F900895F2 -:102890000F931F93CF93DF93EC01888199812B8154 -:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B -:1028B0000E944A05882371F0688179818A810E948B -:1028C000C6198C010E947B190E944218B801CE01E2 -:1028D0000E942B12DF91CF911F910F9108950E94BA -:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471 -:1028F000E11F0E94301F80E090E00E940C1080E0F9 -:1029000090E00C9422100E948E1A0C946F140E9476 -:10291000BB19292F22952F7030E02C3031054CF453 -:102920002A3031056CF42250310922303105A8F4E7 -:1029300007C02C30310569F02F30310551F00DC042 -:10294000803F69F018F4803E40F409C0843F29F4C8 -:1029500006C093FB882780F9089580E0089581E000 -:102960000895CF93DF9300D000D01F92CDB7DEB78C -:102970000F900F900F900F900F90DF91CF910895CF -:10298000CF93DF9300D000D000D0CDB7DEB726962E -:102990000FB6F894DEBF0FBECDBFDF91CF91089583 -:1029A0001F93CF93DF93C091850116E0809186013C -:1029B000C81799F0D0E01C9FF0011D9FF00D112465 -:1029C000E957FE4F408151816281738184819581F5 -:1029D0000E94C0142196C770E9CFDF91CF911F915B -:1029E00008954091B7015091B8016091B90170917B -:1029F000BA018091BB019091BC010C94C0148091EC -:102A0000BC0182958F7009F054C08091B901882370 -:102A100009F44FC080918501A09186016091B701B2 -:102A20007091B8014091BA015091BB01B6E08A178C -:102A300009F43FC090E041155105C1F17F3F11F409 -:102A40006F3FA1F1B89FF001B99FF00D1124E95734 -:102A5000FE4F218172132AC02081621327C0228178 -:102A6000211124C0238134812417350710F421500B -:102A70003109241B350B283C3105C0F42091BC01E1 -:102A80002F7020612093BC0126E0289FF001299F30 -:102A9000F00D1124E457FE4F80818F708061808398 -:102AA00087EB91E00E9448140C94D0140196877033 -:102AB000BECF0895CF92DF92EF92FF920F931F93B4 -:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32 -:102AD0000FBECDBF8C0185E0F801DE011D9601908F -:102AE0000D928A95E1F7D8014C9111965C9111975E -:102AF00012966C9112971396CD90DC9014973091AA -:102B0000B7017091B8018091BA019091BB01009713 -:102B100009F46BC17F3F19F43F3F09F466C1E090AF -:102B2000B901EE2009F4C0C02091BC01C816D90635 -:102B300028F0F601E81BF90BCF0104C080959095B1 -:102B40008C0D9D1DFF24F394883C910578F0F12CA9 -:102B5000207F09F0C6C07C2DD98AC88A89890E9445 -:102B6000B11487EB91E00E944814B1C0822F807F9E -:102B700009F046C0751314C0341312C0611110C09F -:102B80002F7020612093BC010E94F11487EB91E02B -:102B90000E9448148091BC01D80115968C932EC0D8 -:102BA000CD2819F15F3F11F44F3FF9F0F62E611176 -:102BB0001CC0809185012091860136E0821709F4BE -:102BC0005AC090E0389FF001399FF00D1124E95769 -:102BD000FE4F7181571306C07081471303C0728185 -:102BE000711103C001968770E9CFF62E662309F4B0 -:102BF00018C18091BC0181608093BC01F12C11C18E -:102C0000751308C0341306C0611104C08091BC0163 -:102C1000D801C3C04D875E878D859E856A8B0E94D3 -:102C200087146A898823E1F16623D1F12091BC01E0 -:102C3000822F82958F7090E0029774F08091B70197 -:102C40009091B80198878F831986DB86CA862C8776 -:102C5000CE0107960E94481486E0F801A7EBB1E088 -:102C600001900D928A95E1F70E94FF140E94F114E1 -:102C7000FF24F394D6C04D875E878D859E850E9484 -:102C8000BB19292F22952F7030E0223031050CF02E -:102C9000BCC09F7009F0B6C0805E883008F4C1C027 -:102CA000C8010E944814E4CFC816D90608F453C0DE -:102CB000F601E81BF90BCF01883C910508F450C0E0 -:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E -:102CD000F1E086E0DF011D928A95E9F70E94F11488 -:102CE000A0C0751314C0341312C0611110C08091BC -:102CF000BC01F8018583C8010E94481486E0E7EB17 -:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C -:102D10005E878D859E856A8B0E9487146A898823C9 -:102D200009F4BECF662309F4BBCF2091BC01822FEA -:102D300082958F7090E002970CF48ECF8091B7014E -:102D40009091B8019A8389831B82DD82CC822E8385 -:102D5000CE0101967FCF809590958C0D9D1DACCFB7 -:102D6000F62E662309F49CCF75132EC034132CC0A5 -:102D70002091BC0120FD1FC0822F82958F70D9F059 -:102D8000D80115962C9315978F3049F08F5F982FA7 -:102D90009295907F822F8F70892B15968C93C80106 -:102DA0000E94481486E0F801A7EBB1E001900D9273 -:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7 -:102DC0000D928A95E1F72DC04D875E878D859E8592 -:102DD0000E948714811140CF8091BC018160809353 -:102DE000BC01C8010E9448141CC0662309F458CFD6 -:102DF0004D875E878D859E850E948714882309F400 -:102E00004FCF2ACF811148CF0CC0243031050CF0B0 -:102E100047CF9F7009F440CFF8019581907F09F06A -:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D -:102E3000DF91CF911F910F91FF90EF90DF90CF9096 -:102E400008951F93CF93DF93CDB7DEB72C970FB6BE -:102E5000F894DEBF0FBECDBF4F83588769877A874E -:102E60008B879C87CE0107960E945A15882369F0AC -:102E70008F8198852A853B85232BF1F19F3F09F0AF -:102E800063C08F3F09F060C037C086E0FE0137960F -:102E9000DE01119601900D928A95E1F76F81788598 -:102EA000EA85FB85309741F17F3F11F46F3F21F1B7 -:102EB0002091860130E0C9010196877099274091E1 -:102EC000850150E08417950709F447C069837A8328 -:102ED000FD83EC8396E0929FD001939FB00D112467 -:102EE000A957BE4FFE01319601900D929A95E1F7D8 -:102EF000809386010E94D01416E080918501909104 -:102F000086018917C1F1189FC001112489579E4F6E -:102F10000E945A15882379F1E09185011E9FF001E6 -:102F20001124E957FE4F4081518162817381848170 -:102F300095810E94C0148091850190E00196877070 -:102F4000992780938501D9CF4F81588569857A85E6 -:102F50008B859C850E94C014CFCF0E948314109251 -:102F6000860110928501E7EBF1E086E0DF011D921A -:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45 -:102F8000CDBFDF91CF911F910895EF92FF920F93E4 -:102F90001F93CF93DF938C01009709F46CC0F12C41 -:102FA000EE24E394E8012196F8018491843740F4FB -:102FB000843008F051C0813081F0823019F15BC05B -:102FC000853709F444C0A8F19CE7980F903708F0C2 -:102FD00052C08F770E94CE1141C00E5F1F4FFE017D -:102FE000C49180E28C0F883048F4C7708E2D01C0E8 -:102FF000880FCA95EAF70E94A11A14C08C2F0E946C -:1030000006112DC00E5F1F4FFE01C49180E28C0F90 -:10301000883058F4C7708E2D01C0880FCA95EAF722 -:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3 -:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3 -:103040009FE00197F1F700C00000C150F6CF0E5F7E -:103050001F4FFE01F49003C00E9406118E018F2DB8 -:10306000882309F49FCFEFE9FFE03197F1F700C023 -:1030700000008150F5CFDF91CF911F910F91FF900C -:10308000EF90089508956093C1017093C2018093F9 -:10309000C3019093C4010C946F140F931F9300917C -:1030A000C1011091C2012091C3013091C401DC0122 -:1030B000CB01802B912BA22BB32B8093C10190933A -:1030C000C201A093C301B093C4011F910F910C944E -:1030D0006F140F931F930091C1011091C2012091B1 -:1030E000C3013091C401DC01CB0180239123A223D1 -:1030F000B3238093C1019093C201A093C301B09305 -:10310000C4011F910F910C946F140F931F930091A2 -:10311000C1011091C2012091C3013091C401DC01B1 -:10312000CB0180279127A227B3278093C1019093D9 -:10313000C201A093C301B093C4011F910F910C94DD -:103140006F141092BD011092BE011092BF01109237 -:10315000C0010C946F1441E050E060E070E004C0E6 -:10316000440F551F661F771F8A95D2F74093BD0104 -:103170005093BE016093BF017093C0010C946F1413 -:1031800041E050E060E070E004C0440F551F661F4E -:10319000771F8A95D2F78091BD019091BE01A091D1 -:1031A000BF01B091C001482B592B6A2B7B2B409358 -:1031B000BD015093BE016093BF017093C0010C9498 -:1031C0006F1441E050E060E070E004C0440F551F10 -:1031D000661F771F8A95D2F7409550956095709538 -:1031E0008091BD019091BE01A091BF01B091C0013D -:1031F000482359236A237B234093BD015093BE018A -:103200006093BF017093C0010C946F1441E050E0D3 -:1032100060E070E004C0440F551F661F771F8A9559 -:10322000D2F78091BD019091BE01A091BF01B091F4 -:10323000C001482759276A277B274093BD01509337 -:10324000BE016093BF017093C0010C946F140F9383 -:103250001F930091BD011091BE012091BF013091DB -:10326000C001DC01CB01802B912BA22BB32B8093CF -:10327000BD019093BE01A093BF01B093C0011F9107 -:103280000F910C946F140F931F930091BD01109137 -:10329000BE012091BF013091C001DC01CB01802330 -:1032A0009123A223B3238093BD019093BE01A093E9 -:1032B000BF01B093C0011F910F910C946F140F9335 -:1032C0001F930091BD011091BE012091BF0130916B -:1032D000C001DC01CB0180279127A227B32780936F -:1032E000BD019093BE01A093BF01B093C0011F9197 -:1032F0000F910C946F140895CF92DF92EF92FF928A -:103300000F931F93CF93DF938C01C090C101D09096 -:10331000C201E090C301F090C4018091BD01909181 -:10332000BE01A091BF01B091C001C82AD92AEA2AE2 -:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520 -:10334000A795979587950A94D2F780FF06C0B80194 -:103350008C2F0E944808019721F4219760F780E0A4 -:1033600001C08C2FDF91CF911F910F91FF90EF90B3 -:10337000DF90CF900895CF93DF93EC010E947C19EA -:10338000BE010E944808DF91CF910895CB010E94B1 -:10339000BB1908958091C5018595859585950895FA -:1033A0008091C5018770089598E0899F900111244C -:1033B000262B2093C5010C94C0182091C50180953F -:1033C00082238093C501982F977069F430E0482FCD -:1033D000552747FD50952417350729F08595859584 -:1033E00085950C94E11808959091C501977081E03E -:1033F00009F480E0089590910C01992321F09091B7 -:103400000D01911109C020910E0130910F01F901B8 -:1034100032969FEF40E01FC0982F9695969596950F -:103420009F3050F5E0910E01F0910F01E90FF11D71 -:10343000877021E030E0A90102C0440F551F8A9532 -:10344000E2F7CA019181892B818308959F3F39F06A -:103450004F5F4E3041F051915813F8CF0DC05111CC -:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08 -:1034700097FDFA9582830895089590910C01992300 -:1034800021F090910D01911109C020910E01309110 -:103490000F01F9013296205F3F4F1FC0982F96957C -:1034A000969596959F30F0F4E0910E01F0910F0102 -:1034B000E90FF11D877021E030E0A90102C0440F3F -:1034C000551F8A95E2F7CA018095918189238183EE -:1034D00008953196E217F30729F090819813F9CFF8 -:1034E0001082F7CF089581E090E0E0910E01F09115 -:1034F0000F01E80FF91F1082019680319105A9F79D -:1035000008959091D901892B8093D90108958095D0 -:103510009091D90189238093D90108951092D901FE -:1035200008959091D801892B8093D80108958095B2 -:103530009091D80189238093D80108951092D801E1 -:1035400008959091D701892B8093D7010895809594 -:103550009091D70189238093D70108951092D701C4 -:1035600008958093C60108951092C6010895809130 -:103570000E0190910F01FC0131969C01205F3F4F9D -:1035800080E0919191118F5FE217F307D1F70895D1 -:10359000E0910E01F0910F018091D9018083E091BB -:1035A0000E01F0910F0190818091D801892B8083C9 -:1035B000E0910E01F0910F0190818091D701892B4C -:1035C00080838091C601882361F0E0910E01F09123 -:1035D0000F019081892B80830E94B71A811110926C -:1035E000C60180910E0190910F010C94F60F20E01E -:1035F000009739F0AC0141505109842395232F5F86 -:10360000F7CF822F0895CF92DF92EF92FF926C0155 -:10361000EE24FF24C114D104E104F10421F0C70118 -:10362000B60120E101C020E0C72ED82EE92EFF24EC -:10363000C114D104E104F10419F0285FC701B601F7 -:103640006B017C0154E0F694E794D794C7945A95A3 -:10365000D1F7C114D104E104F10419F02C5FC701C2 -:10366000B6016B017C0142E0F694E794D794C794CD -:103670004A95D1F7C114D104E104F10419F02E5F89 -:10368000C701B601DC01CB01B695A7959795879543 -:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5 -:1036A000DF90CF9008958091F101843021F1109244 -:1036B000DB0120E488E190E00FB6F894A8958093B0 -:1036C00060000FBE2093600080E00E94E30883B793 -:1036D000817F846083BF83B7816083BF789488953E -:1036E00083B78E7F83BF88E10FB6F8948093600024 -:1036F000109260000FBE0895089508950E947C1BEB -:103700000E944B030E947D1B0E94400491E08111A6 -:1037100001C090E0892F08950E9483140E94EA0F4F -:103720000C94E30882E084BD93E095BD9AEF97BDC9 -:1037300080936E0008952FB7F8948091DC019091EA -:10374000DD01A091DE01B091DF012FBF0895CF927E -:10375000DF92EF92FF920F931F932FB7F89440914F -:10376000DC015091DD016091DE017091DF012FBF1E -:103770006A017B01EE24FF248C0120E030E0C016BA -:10378000D106E206F30610F4415051099A01281BB4 -:10379000390BC9011F910F91FF90EF90DF90CF90EF -:1037A00008951F920F920FB60F9211248F939F933B -:1037B000AF93BF938091DC019091DD01A091DE0178 -:1037C000B091DF010196A11DB11D8093DC019093A2 -:1037D000DD01A093DE01B093DF01BF91AF919F9116 -:1037E0008F910F900FBE0F901F9018950E94E70CBD -:1037F000F8942FEF87EA91E6215080409040E1F75E -:1038000000C0000087E090EBDC018093FB01909307 -:10381000FC01A093FD01B093FE019CE088E10FB68E -:10382000F894A895809360000FBE90936000FFCF3E -:10383000EF92FF920F931F93CF93DF93D82FCDE09A -:103840008C2F0E94390405E010E0E82EF12CC7010E -:10385000002E02C0959587950A94E2F780FF09C073 -:10386000602F7C2F80E00E94F305D81302C081E016 -:1038700006C00150110958F7C15010F780E0DF91E0 -:10388000CF911F910F91FF90EF900895CF93C82F84 -:103890008CE20E94181C882321F08C2FCF910C946D -:1038A000181C80E0CF910895CF930E949B1D811139 -:1038B00002C00E94811DC5E6C15049F00E944B0321 -:1038C0008FE39CE90197F1F700C00000F5CF89E292 -:1038D0000E94461C811113C18AE20E94461C81117C -:1038E0000E94811D85E00E94461C81110E94F61BEA -:1038F0000E94A61D8093DA0187E00E94461C88235F -:10390000A9F18BE10E94461C882351F08091DA01D5 -:1039100081FB222720F991E0922790FB81F90EC0CC -:103920008EE00E94461C882361F08091DA0182FBC0 -:10393000222720F991E0922790FB82F98093DA0107 -:1039400015C080E10E94461C9091DA01882341F065 -:1039500093FB222720F981E0822780FB93F904C0A2 -:10396000892F809580FB90F99093DA018091DA019C -:103970000E94AA1D0E94B81D8093FA0180EE0E9449 -:10398000461C882341F08091FA01982F909590FB76 -:1039900080F98093FA0189E30E94461C882359F03C -:1039A0008091FA0181FB222720F991E0922790FB78 -:1039B00081F98093FA0182EE0E94461C882359F017 -:1039C0008091FA0182FB222720F991E0922790FB57 -:1039D00082F98093FA0186EE0E94461C882359F0F2 -:1039E0008091FA0183FB222720F991E0922790FB36 -:1039F00083F98093FA0183EE0E94461C882359F0D4 -:103A00008091FA0184FB222720F991E0922790FB14 -:103A100084F98093FA0185E30E94461C882359F0BB -:103A20008091FA0185FB222720F991E0922790FBF3 -:103A300085F98093FA0181E30E94461C882359F09E -:103A40008091FA0186FB222720F991E0922790FBD2 -:103A500086F98093FA0181E10E94461C882359F07F -:103A60008091FA0187FB222720F991E0922790FBB1 -:103A700087F98093FA018091FA010E94BC1D809120 -:103A8000FA0187FB882780F980930D0187E20E9465 -:103A9000461CC82F8EE10E94461C8111C2608FE136 -:103AA0000E94461C8111C46080E20E94461C811164 -:103AB000C86081E20E94461C8111C06182E20E94BE -:103AC000461C8111C06283E20E94461C8111C064C1 -:103AD00084E20E94461C882311F0C06802C0CC23F7 -:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4 -:103AF000682F70E080E090E0CF910C944318CF9154 -:103B000008956DEE7EEF80E090E00E94ED2360E08E -:103B100082E090E00E94DB2360E083E090E00E947E -:103B2000DB2360E084E090E00E94DB2360E085E03E -:103B300090E00C94DB2380E090E00E94D52321E00C -:103B40008D3E9E4F09F020E0822F089582E090E0A4 -:103B50000C94CD23682F82E090E00C94DB2383E06B -:103B600090E00C94CD23682F83E090E00C94DB234D -:103B700084E090E00C94CD23682F84E090E00C94D6 -:103B8000DB238091E20180FF0BC06091130185E08F -:103B9000689FB001112475956795759567952BC041 -:103BA00081FF09C06091130185E0689FB001112475 -:103BB0007595679520C082FF07C06091130185E06D -:103BC000689FB001112417C09091E3019923D1F0AF -:103BD00060911201961788F72091130185E0289FC4 -:103BE00090011124929FA001939F500D112470E029 -:103BF000CA010E949F236038710540F46115710568 -:103C000039F002C065E070E0862F08958FE70895CF -:103C100081E008958091E20180FF08C06091110168 -:103C200070E0759567957595679521C081FF06C011 -:103C30006091110170E07595679519C082FF04C00D -:103C40006091110170E010C09091E3019923C1F0DF -:103C5000609110019617A0F780911101899FC00112 -:103C6000112470E00E949F236038710528F46115CB -:103C7000710521F0862F08958FE7089581E008955A -:103C800061E070E0F4CF803F21F40E94C11D819576 -:103C900004C0813F29F40E94C11D8093E60108956C -:103CA000823F21F40E94C11D819504C0833F29F405 -:103CB0000E94C11D8093E5010895893F19F40E9477 -:103CC0000A1E05C08A3F31F40E940A1E8195809326 -:103CD000E70108958B3F21F40E940A1E819504C0DC -:103CE0008C3F29F40E940A1E8093E8010895843FC6 -:103CF00021F48091E401816017C0853F21F4809117 -:103D0000E401826011C0863F21F48091E401846067 -:103D10000BC0873F21F48091E401886005C0883F93 -:103D200031F48091E40180618093E40108958D3F36 -:103D300021F48091E20181600BC08E3F21F48091DB -:103D4000E201826005C08F3F29F48091E201846026 -:103D50008093E2010895803F39F48091E60187FF66 -:103D60006CC01092E60169C0813F29F48091E601A0 -:103D70001816BCF362C09091E501823F29F497FFC9 -:103D80005CC01092E50159C0833F19F41916CCF3B9 -:103D900054C0893F41F48091E70118160CF04DC0E2 -:103DA0001092E7014AC08A3F29F48091E70187FF1A -:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6 -:103DC0001092E8013AC08C3F29F48091E80118165E -:103DD000BCF333C0843F21F48091E4018E7F17C08F -:103DE000853F21F48091E4018D7F11C0863F21F44D -:103DF0008091E4018B7F0BC0873F21F48091E40127 -:103E0000877F05C0883F31F48091E4018F7E8093E5 -:103E1000E40113C08D3F21F48091E2018E7F0BC03D -:103E20008E3F21F48091E2018D7F05C08F3F29F400 -:103E30008091E2018B7F8093E2018091E501811105 -:103E40000EC08091E60181110AC08091E7018111C5 -:103E500006C08091E801811102C01092E30108952B -:103E600084EE91E00E9401100E949B1B9093E1015F -:103E70008093E00108951F93CF93DF938091E00139 -:103E80009091E1010E94A71BAC019091E30199235D -:103E900021F02091140130E006C0209115018AE044 -:103EA000289F900111244217530708F486C080917F -:103EB000E501C091E601D091E7011091E80181117F -:103EC00007C0C11176C0D11174C0111172C075C084 -:103ED0009F3F19F09F5F9093E301181624F40E940E -:103EE000C11D8093E5018091E50187FF05C00E9417 -:103EF000C11D81958093E5011C1624F40E94C11D0B -:103F00008093E6018091E60187FF05C00E94C11DF4 -:103F100081958093E6016091E501662339F1C091B6 -:103F2000E601CC2319F1772767FD7095872F972F2E -:103F30000E94B02223E333E343E35FE30E941423B0 -:103F40000E947D226093E5016C2F772767FD7095B5 -:103F5000872F972F0E94B02223E333E343E35FE3ED -:103F60000E9414230E947D226093E6011D1624F412 -:103F70000E940A1E8093E7018091E70187FF05C038 -:103F80000E940A1E81958093E701111624F40E9475 -:103F90000A1E8093E8018091E80187FF05C00E9416 -:103FA0000A1E81958093E801DF91CF911F910C94B7 -:103FB000301F9F3F09F08ECF96CFDF91CF911F9199 -:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE -:103FD0001092E3011092E2010895833081F128F4F8 -:103FE000813059F08230D1F00895853009F449C00C -:103FF000B8F1863009F456C0089580911501262F36 -:1040000030E0280F311D2F3F310524F4680F6093F5 -:10401000150108958FEF8093150108958091140183 -:10402000262F30E0280F311D2F3F310524F4680F73 -:104030006093140108958FEF809314010895809187 -:104040001301262F30E0280F311D2F3F310524F4B6 -:10405000680F6093130108958FEF80931301089503 -:1040600080911201262F30E0280F311D2F3F31059E -:1040700024F4680F6093120108958FEF809312016A -:10408000089580911101262F30E0280F311D2F3F18 -:10409000310524F4680F6093110108958FEF809328 -:1040A0001101089580911001262F30E0280F311D55 -:1040B0002F3F310524F4680F6093100108958FEFAE -:1040C000809310010895833011F128F4813049F074 -:1040D000823091F00895853081F120F18630C1F170 -:1040E000089580911501681720F4861B80931501AF -:1040F000089510921501089580911401681720F415 -:10410000861B8093140108951092140108958091E4 -:104110001301681720F4861B8093130108951092F1 -:104120001301089580911201681720F4861B809373 -:1041300012010895109212010895809111016817DB -:1041400020F4861B809311010895109211010895A7 -:1041500080911001681720F4861B80931001089548 -:104160001092100108950F931F938D3109F46BC0C5 -:1041700008F03FC08E3009F47FC0C0F4873009F4E6 -:1041800069C068F4863009F0B1C08091DA01817F9E -:104190008E7F8093DA0181E08093EA01A8C08830A5 -:1041A00009F4A2C08B3009F49FC0A0C0863109F485 -:1041B0009BC078F4803109F472C0813109F096C057 -:1041C0000E94831490910D0181E0892780930D0155 -:1041D0008BC0893109F488C08B3109F087C0809188 -:1041E000DA0181FB222720F991E0922790FB81F9E7 -:1041F0004CC0853309F470C048F4873209F46CC0B0 -:1042000008F459C0893209F467C070C0833438F4A7 -:104210008A3308F04EC0883309F466C067C083341F -:1042200009F45AC0883409F061C00E9483140FEF6A -:1042300013ED20E3015010402040E1F700C00000E2 -:104240000E94F61B51C00E9437220E94EA0F0E9472 -:10425000E3084AC09091DA01892F8095817080FB34 -:1042600090F929F0966098609093DA0140C0997FA8 -:10427000977F9093DA0138C08091DA0182FB222780 -:1042800020F991E0922790FB82F98093DA0199233B -:1042900059F18091DA0181608093DA0125C0809123 -:1042A000DA0183FB222720F991E0922790FB83F922 -:1042B000ECCF895301C08D5141E050E060E070E0E7 -:1042C0008A019B0104C0000F111F221F331F8A9512 -:1042D000D2F7C901B80104C061E070E080E090E06D -:1042E0000E9443180E94831481E001C080E01F9166 -:1042F0000F91089580E0089580E00895CF93C82F2E -:104300008091EA01813079F018F08230E9F187C0BC -:10431000E0910E01F0910F018081813169F08232CC -:1043200009F07FC009C0E0910E01F0910F0180817A -:10433000813111F0823261F48C2F0E947A21811137 -:1043400004C08C2F0E94B3201DC081E090E01AC0F1 -:104350008C2F0E947C21811114C0C43179F048F463 -:10436000CB3079F0C03109F060C082E08093EA017F -:1043700008C0C93219F0C83321F057C01092EA01C1 -:1043800054C081E0817053C0C93289F118F5C4313D -:1043900071F1A8F4C73009F046C08AE08093150196 -:1043A00094E19093140193E0909313018093120190 -:1043B00088E08093110188E28093100134C0CE51CF -:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB -:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC -:1043E00013C0C13579F0C235F1F461E00DC08091A0 -:1043F000E901882319F01092E90115C081E080934A -:10440000EA0115C061E006C08091E9010E94ED1F3C -:104410000AC06AE08091E9010E94632004C0109202 -:10442000EA0180E004C081E002C080E0ABCFCF9120 -:104430000895E1E8F0E08081886080838081816078 -:1044400080838FB7F89493E09093890090ED9093D8 -:1044500088008FBF0895EFE6F0E08081826080835E -:104460000895EFE6F0E080818D7F80830895EFE688 -:10447000F0E0908182E08927808308951F920F9257 -:104480000FB60F9211242F933F934F935F936F9327 -:104490007F938F939F93AF93BF93EF93FF938091FD -:1044A000EB019091EC0101969093EC018093EB016C -:1044B000811103C082E00E94E308E091EC01E695DF -:1044C000E695F0E0EC54FB4FE4918091EB018E1304 -:1044D00003C080E00E94E308FF91EF91BF91AF918C -:1044E0009F918F917F916F915F914F913F912F910C -:1044F0000F900FBE0F901F90189504D06894B111C3 -:104500008DC0089570D088F09F5790F0B92F9927EB -:10451000B751A0F0D1F0660F771F881F991F1AF0CE -:10452000BA95C9F712C0B13081F077D0B1E00895E3 -:1045300074C0672F782F8827B85F39F0B93FCCF364 -:10454000869577956795B395D9F73EF490958095C4 -:10455000709561957F4F8F4F9F4F0895E89409C0E4 -:1045600097FB3EF490958095709561957F4F8F4FA6 -:104570009F4F9923A9F0F92F96E9BB279395F695BC -:10458000879577956795B795F111F8CFFAF4BB0F3A -:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E -:1045A000882311F096E911C0772321F09EE8872F28 -:1045B000762F05C0662371F096E8862F70E060E0E4 -:1045C0002AF09A95660F771F881FDAF7880F96955D -:1045D000879597F9089557FD9058440F551F59F046 -:1045E0005F3F71F04795880F97FB991F61F09F3FE0 -:1045F00079F087950895121613061406551FF2CF09 -:104600004695F1DF08C0161617061806991FF1CF58 -:1046100086957105610508940895E894BB2766277F -:104620007727CB0197F908950BD078C069D028F08F -:104630006ED018F0952309F05AC05FC01124EECF58 -:10464000CADFA0F3959FD1F3950F50E0551F629FED -:10465000F001729FBB27F00DB11D639FAA27F00DDB -:10466000B11DAA1F649F6627B00DA11D661F829F02 -:104670002227B00DA11D621F739FB00DA11D621FE7 -:10468000839FA00D611D221F749F3327A00D611D04 -:10469000231F849F600D211D822F762F6A2F1124E6 -:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39 -:1046B000BB1F661F771F881F91505040A9F79E3F70 -:1046C000510570F014C0AACF5F3FECF3983EDCF3C5 -:1046D000869577956795B795F795E7959F5FC1F7AD -:1046E000FE2B880F911D9695879597F9089597F958 -:1046F0009F6780E870E060E008959FEF80EC089588 -:1047000000240A94161617061806090608950024B0 -:104710000A9412161306140605060895092E03942A -:10472000000C11F4882352F0BB0F40F4BF2B11F49E -:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF -:10474000072E16F4009407D077FD09D00E94B923F4 -:1047500007FC05D03EF4909581959F4F0895709584 -:1047600061957F4F0895EE0FFF1F0590F491E02DA6 -:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8 -:10478000B70710F0A61BB70B881F991F5A95A9F7FA -:1047900080959095BC01CD010895F999FECF92BD09 -:1047A00081BDF89A992780B50895A8E1B0E042E06C -:1047B00050E00C94F523262FF999FECF92BD81BDD0 -:1047C000F89A019700B4021639F01FBA20BD0FB64F -:1047D000F894FA9AF99A0FBE08950196272F0E942D -:1047E000DC230C94DB23DC01CB01FC01F999FECF27 -:1047F00006C0F2BDE1BDF89A319600B40D92415069 -:0A4800005040B8F70895F894FFCF78 -:10480A000220E508730950091C09E8080101C701DB -:10481A0028080A03140A3F4D363975042804F2039E -:10482A00B9034C0365037E039703010203040506DB -:04483A000708090062 -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/mpiechotka/compiled.hex b/keyboards/ergodox_ez/keymaps/mpiechotka/compiled.hex deleted file mode 100644 index 35a56dd4c..000000000 --- a/keyboards/ergodox_ez/keymaps/mpiechotka/compiled.hex +++ /dev/null @@ -1,1181 +0,0 @@ -:100000000C9402030C9446030C9446030C94460390 -:100010000C9446030C9446030C9446030C9446033C -:100020000C9446030C9446030C941C0E0C94EE0E98 -:100030000C9446030C9446030C9446030C9446031C -:100040000C9446030C94F8220C9446030C9446033B -:100050000C9446030C948B1C0C9446030C9446039E -:100060000C9446030C9446030C9446030C944603EC -:100070000C9446030C9446030C9446030C944603DC -:100080000C9446030C9446030C9446030C944603CC -:100090000C9446030C9446030C9446030C944603BC -:1000A0000C9446030C9446030C9446035B0F7D0F9F -:1000B0006B107D0F6B10C20FE50F6B103A104D10D7 -:1000C0001C131C134B134B138113A113D214D21402 -:1000D000AC13D2145C145C14C314D214D214CC1418 -:1000E0006914691469146914691469146914691428 -:1000F0006914691469146914691469146914691418 -:100100007B1488148F149614A0140147024774328C -:10011000014702477432012102217432012802286A -:10012000000147024774320147024774320120023E -:100130002074320128022800014702477432014727 -:1001400002477432011F021F743201280228000185 -:100150004702477432014702477432011E021E747F -:10016000320128022800000001C002C003C004C000 -:1001700005C0018C028C2E004C002900E1003542A4 -:1001800000001E00140004001D0034004D421F003A -:100190001A0015001B00E1042A7120000900160056 -:1001A000060050002C7221001300170019004F00A8 -:1001B0004A0022000A00070005000000E20050008B -:1001C000025400002E00000001204F0002540000E5 -:1001D0002D000000E20023000D000B000E000000C7 -:1001E000E60024000F001100100052004B00250013 -:1001F0001800080036005100287226001C000C0070 -:1002000037002F002B7127003300120038713000A7 -:100210004E432D0031003400E500004200002E0066 -:100220004C002900E100354200001E0014000400CB -:100230001D0034004D421F001A0016001B00E1048F -:100240002A71200008000700060050002C722100CF -:100250001500090019004F004A00220017000A008B -:1002600005000000E2005000025400002E000000D3 -:1002700001204F00025400002D000000E200230086 -:100280001C000B0011000000E600240018000D0007 -:10029000100052004B0025000C000E0036005100EB -:1002A0002872260012000F0037002F002B71270044 -:1002B00013003300387130004E432D0031003400FC -:1002C000E500004200000100010001000100010002 -:1002D00000003A001E0220022202010001003B0041 -:1002E0001F0221022302010001003C002F0226020E -:1002F0002F00010001003D00300227023000010004 -:1003000001003E003102350035020000010001000D -:1003100001000000010000000100010001000000D8 -:100320000100000001003F005200510024020000C3 -:1003300001004000240021001E00010001004100D6 -:10034000250022001F003700010042002600230084 -:10035000200027000100430025022E0231002E005C -:100360000100440045000100010001000000000000 -:100370000000000000000000000000000620022035 -:100380000000000001000000072003200000000022 -:100390000100000000000420000000000100000037 -:1003A0000000052000000000010000000000000027 -:1003B000000000000100000000000000000000003C -:1003C000010000000000000000000000010000002B -:1003D000000000000000000001000000000000001C -:1003E000000000000100000000000000000000000C -:1003F00001000000000000000000000001000000FB -:1004000000000000000000000100000000000000EB -:1004100000000000000016034500720067006F0036 -:1004200044006F007800200045005A0000001603C9 -:100430004500720067006F0044006F0078002000E4 -:1004400045005A0000000403090409026D0004017C -:1004500000A0FA09040000010301010009211101B3 -:100460000001223F000705810308000A090401007A -:100470000103010200092111010001224D000705BD -:10048000820308000A090402000103000000092198 -:10049000110100012236000705830308000A090440 -:1004A00003000103000000092111010001223900AD -:1004B000070584031000011201100100000008ED7F -:1004C000FE071301000102000105010906A1010553 -:1004D0000719E029E7150025019508750181020536 -:1004E000081901290595057501910295017503917A -:1004F00001050719002977150025019578750181F7 -:1005000002C005010980A101850216010026B7007D -:100510001A01002AB700751095018100C0050C0969 -:1005200001A1018503160100269C021A01002A9CE4 -:1005300002751095018100C005010902A1010901A0 -:10054000A100050919012905150025019505750169 -:100550008102950175038101050109300931158179 -:10056000257F95027508810609381581257F95013B -:1005700075088106050C0A38021581257F950175DD -:10058000088106C0C005010906A101050719E02977 -:10059000E71500250195087501810295017508810F -:1005A0000105081901290595057501910295017547 -:1005B0000391010507190029FF150025FF95067510 -:1005C000088100C0000000000000000000000001E1 -:1005D0000204060A0F17202C3A4A5D71879DB3C7A3 -:1005E000DAE9F5FCFFFCF5E9DAC7B39D87715D4AEE -:1005F0003A2C20170F0A0604020100000000000038 -:100600000000000011241FBECFEFDAE0DEBFCDBF37 -:1006100004B603FE24C08091FB019091FC01A091DF -:10062000FD01B091FE018730904BA740B04BB9F46B -:100630001092FB011092FC011092FD011092FE013C -:1006400014BE84B7877F84BF88E10FB6F894809387 -:100650006000109260000FBEE0E0FFE3099511E03A -:10066000A0E0B1E0EEE7F9E402C005900D92A433FA -:10067000B107D9F711E0A4E3B1E001C01D92AB3F8F -:10068000B107E1F70E94600B0C94BD240C940000AC -:100690001092B9008AE08093B800089594EA90938C -:1006A000BC009091BC0097FFFCCF9091B900987F5F -:1006B000983021F0903111F081E008958093BB00D3 -:1006C00084E88093BC008091BC0087FFFCCF8091C0 -:1006D000B900887F883111F0803471F780E0089587 -:1006E00084E98093BC008091BC0084FDFCCF089518 -:1006F0008093BB0084E88093BC008091BC0087FF9E -:10070000FCCF9091B900987F81E0983209F480E0A5 -:10071000089584E88093BC008091BC0087FFFCCFE3 -:100720008091BB00089580910101811115C080E482 -:100730000E944E038093010181110CC082E10E944E -:10074000780380930101811105C08FEF0E94780327 -:10075000809301010E94700384B1807F84B985B1C8 -:10076000807F85B98AB1837F8AB98BB1837F8BB94A -:100770003E98469808950E944E05809301010E947C -:10078000930380B38C7080BB81B3836F81BBA5E37F -:10079000B1E0E3E4F1E08EE08E0F11921D928E1332 -:1007A000FCCF0C943805BF92CF92DF92EF92FF926C -:1007B0000F931F93CF93DF9380910101882379F0EA -:1007C000809134018F5F80933401811108C00E94B1 -:1007D0004E0580930101811102C00E94E00405E3EF -:1007E00011E0C0E0D0E0DD24D39482E0C82EEE24F6 -:1007F000E394F12CC730D10500F5809101018111FE -:1008000064C080E40E944E0380930101811112C0F4 -:1008100082E10E9478038093010181110BC0C7011E -:100820000C2E01C0880F0A94EAF780950E94780385 -:10083000809301010E94700348C0CA30A1F028F4DF -:10084000C83059F0C93061F005C0CC3089F070F083 -:10085000CD3089F0209A289810C0219A29980DC08F -:10086000229A2A980AC0239A2B9807C0529A01C04C -:10087000539A5B9802C03E9A469890EA9A95F1F78F -:100880009FB1799902C082E001C080E091709D25FE -:10089000982B7C9902C084E001C080E0892B7D996F -:1008A00002C038E001C030E0832B7E9902C020E115 -:1008B00001C020E0822B9FB19095991F9927991F25 -:1008C0009295990F907E892B0FC080910101811123 -:1008D00049C080E40E944E0380930101882379F18E -:1008E000B12C0E9470038B2DF8019081981719F09C -:1008F0008083C09200010E94930321960F5F1F4FD7 -:10090000CE30D10509F076CF80910001882361F1C6 -:10091000815080930001882339F08FE99FE001978F -:10092000F1F700C0000020C0A3E4B1E0E5E3F1E08E -:10093000CF01825F91919D938E13FCCF15C083E10F -:100940000E947803809301018111CACF81E40E9443 -:100950004E03809301018111C3CF0E948903B82EF9 -:10096000B094BFCF80E0C0CF0E94DE0481E0DF9171 -:10097000CF911F910F91FF90EF90DF90CF90BF909C -:100980000895E82FF0E0ED5BFE4F80810895089513 -:100990000F931F93CF93DF93C3E4D1E010E00C2FAC -:1009A000025F899190E00E94B11B180F0C13F9CFE0 -:1009B000812FDF91CF911F910F9108950C94E00545 -:1009C00056985E9825982D9826982E9827982F98B7 -:1009D0008FEF90E0909389008093880090938B0034 -:1009E00080938A0090938D0080938C00259A2D9A95 -:1009F0002FEF80E792E0215080409040E1F700C067 -:100A00000000269A2E9A2FEF80E792E02150804036 -:100A10009040E1F700C00000279A2F9A2FEF80E75F -:100A200092E0215080409040E1F700C000002598FE -:100A30002D982FEF80E792E0215080409040E1F721 -:100A400000C0000026982E982FEF80E792E02150FA -:100A500080409040E1F700C0000027982F985698FA -:100A60005E9825982D9826982E9827982F98089567 -:100A700089EA8093800089E08093810024982C98F3 -:100A80003F988AB18F748AB96E98479A8BB1806B00 -:100A90008BB9769A0E94E0040C94DF0580E2809383 -:100AA00001018091510181110EC00E94480381E033 -:100AB000809351012FEF83ED90E3215080409040CF -:100AC000E1F700C0000080E40E944E038093010122 -:100AD00081112EC00E94780380930101811128C0EA -:100AE0000E94780380930101811122C08FE30E944C -:100AF00078038093010181111BC00E94700380E480 -:100B00000E944E0380930101811112C08CE00E946B -:100B100078038093010181110BC00E9478038093B8 -:100B20000101811105C08FE30E94780380930101C8 -:100B30000E947003809101010895FC01623021F14F -:100B400028F4662349F0613071F036C0643041F119 -:100B500008F1653059F130C08281882311F085EEAB -:100B60000CC085EE0EC08281882351F085EE0E9474 -:100B7000C01185EE0E94881283EE0E94C0111CC035 -:100B800083EE0E94881218C08281811115C08FE403 -:100B900091E00895828181110FC088E391E008956A -:100BA0008281811109C081E291E0089582818111E1 -:100BB00003C08AE091E0089580E090E008950895F0 -:100BC0006091BD017091BE018091BF019091C00103 -:100BD0000E94BD1B56985E9825982D9826982E98B1 -:100BE00027982F98823019F0833021F00895259AA4 -:100BF0002D9A0895269A2E9A089581E0089581E00D -:100C000008950C94FF0508950F931F93CF93DF93DE -:100C10008C01FC01C081D181CE010E94361ABE0137 -:100C20000E94AD06EC01B8010E940106882309F478 -:100C30008DC0F8018281882309F44AC080915D014A -:100C400081111FC0C431F0E5DF0709F051C00E94D7 -:100C5000030681E080935D010E94551C90935C0126 -:100C600080935B011092540110925601109255012D -:100C7000109258011092570110925A011092590186 -:100C800065C080915B0190915C010E94611C883C71 -:100C9000910570F480915401E82FF0E0EE0FFF1FF2 -:100CA000EB5AFE4FD183C0838F5F809354014EC0B7 -:100CB000C43880E5D80721F0C538D04501F13AC0E5 -:100CC000F8018281882341F01092520182E01EC017 -:100CD000C438E0E5DE0759F580915201811106C064 -:100CE00086E20E94C01186E20E94881282E01CC047 -:100CF000C438F0E5DF0741F3C538D045D9F4F80131 -:100D00008281882331F01092530180E20E94D71231 -:100D10001DC080915301811106C087E20E94C0115D -:100D200087E20E94881280E20E94DE120FC0C5385E -:100D3000D04529F381E08093520180935301C8018B -:100D4000DF91CF911F910F910C94FD0580E0DF9111 -:100D5000CF911F910F910895089596E0799FF0012A -:100D6000112494E5899FE00DF11D1124E60FF11D7A -:100D7000EE0FFF1FEA58FE4F859194910895880F5A -:100D8000991FFC01EA51F040859194910895880FD4 -:100D9000991FFC01EA59FE4F8591949108950F9394 -:100DA0001F93CF93DF93EC01811520E3920750F559 -:100DB000C11580E2D80708F0C3C0CB3BD10590F441 -:100DC000C83AD10508F06AC0C53AD10508F05BC041 -:100DD000C430D10508F0D0C1219709F0CAC101E0A3 -:100DE00010E00AC2CF3FD10511F008F0C5C1C03FE5 -:100DF000D10508F0A2C0CE01805E9109089708F4E1 -:100E0000BBC1B7C1C13090E5D90709F4A2C020F534 -:100E1000C0318FE4D80770F4C11590E4D90708F009 -:100E200094C0C11521E3D20708F0A3C1DD278E01CC -:100E3000106CE2C1C115D04509F09BC10E943D155F -:100E40008FEF94E32CE0815090402040E1F700C008 -:100E500000000E94B01CD0C1C11597E5D90758F415 -:100E6000C03121E5D20708F01CC1C43180E5D807A4 -:100E700008F475C07EC1CE0190578115904108F0ED -:100E800078C1DF7073C1C53AD10509F477C1C63A9C -:100E9000D10509F076C102E810E4AEC1C83AD10527 -:100EA00009F472C1C93AD10509F471C1CA3AD10530 -:100EB00009F470C1CB3AD10509F46FC1CC3AD10520 -:100EC00009F46EC1CD3AD10509F46DC1C03BD1051D -:100ED00009F46CC1CE3AD10509F46BC1CF3AD10502 -:100EE00009F46AC1C13BD10509F469C1C23BD1050E -:100EF00009F468C1C33BD10509F467C1C43BD105FE -:100F000009F466C1C53BD10509F465C1C63BD105ED -:100F100009F464C1C73BD10509F463C1C83BD105DD -:100F200009F462C1C93BD10509F461C1CA3BD105CD -:100F300009F460C100E014E45FC18E0110655CC17A -:100F4000CE019F700E94C70658C1DF708E01106AE3 -:100F500053C18091DA0181608093DA014DC10E9412 -:100F6000551E811102C00E943B1E0E94721E90E01D -:100F70009093FB018093FA01C23080E5D80721F4F9 -:100F80008091FA01816086C0C43090E5D90721F4D0 -:100F90008091FA0182607EC0C63020E5D20721F43C -:100FA0008091FA01846076C0C83080E5D80719F4D2 -:100FB0008091FA0127C0CA3090E5D90721F48091C9 -:100FC000FA01806167C0CC3020E5D20721F480911E -:100FD000FA0180625FC0CE3080E5D80721F48091AD -:100FE000FA01806457C0C03190E5D90721F480919F -:100FF000FA0180684FC0C23120E5D20729F4809100 -:10100000FA018460886046C0C33080E5D80721F4C7 -:101010008091FA018E7F3EC0C53090E5D90721F45A -:101020008091FA018D7F36C0C73020E5D20721F4C8 -:101030008091FA018B7F2EC0C93080E5D80719F462 -:101040008091FA0126C0CB3090E5D90721F4809138 -:10105000FA018F7E1FC0CD3020E5D20721F48091A8 -:10106000FA018F7D17C0CF3080E5D80721F4809139 -:10107000FA018F7B0FC0C13190E5D90721F480912F -:10108000FA018F7707C0C331D04531F48091FA015E -:101090008B7F877F8093FA018091FA010E94761EF0 -:1010A000ABC08D2F99278F70992781309105D9F486 -:1010B0009E012370332702C0880F991F2A95E2F7FB -:1010C0009C688E0144E0000F111F4A95E1F700274C -:1010D0001370802B912B53E0CC0FDD1F5A95E1F755 -:1010E000C076DD272FC08230910531F4DC2FCC276C -:1010F0008E01016F106A80C08330910569F4CE01C2 -:101100008370992701E010E002C0000F111F8A953B -:10111000E2F7C8019C680FC084309105B9F4CE0194 -:101120008370992701E010E002C0000F111F8A951B -:10113000E2F7C8019A6823E0CC0FDD1F2A95E1F79A -:10114000C07ED7708C010C2B1D2B56C085309105AD -:1011500031F4DC2FCC278E01046F106A4DC0069746 -:1011600009F04AC0CF71DD27DC2FCC278E01106239 -:1011700043C000E010E040C08E013EC001E810E432 -:101180003BC003E810E438C002EE14E435C009EEB9 -:1011900014E432C00AEE14E42FC005EB14E42CC0B2 -:1011A00006EB14E429C007EB14E426C00CEC14E4AD -:1011B00023C00DEC14E420C003E815E41DC00AE8C8 -:1011C00015E41AC002E915E417C004E915E414C0D7 -:1011D00001E216E411C003E216E40EC004E216E4D4 -:1011E0000BC005E216E408C006E216E405C007E2FB -:1011F00016E402C00AE216E4C801DF91CF911F9104 -:101200000F91089596E0799FF001112494E5899F4C -:10121000E00DF11D1124E60FF11DEE0FFF1FEA583E -:10122000FE4F85919491803E9105E0F4803C9105BC -:1012300058F58133910509F46FC048F4893291055E -:1012400009F463C08A32910509F46DC072C0893314 -:101250009105E9F082389105D1F08533910509F4C3 -:101260004DC067C0833E910581F138F4803E910501 -:10127000B9F0823E9105D9F05CC0863E910561F1DE -:10128000873E9105A1F155C00E94BF0608952091A7 -:10129000FA0120FD02C021FF4CC080EE90E049C061 -:1012A0008091FA0180FFF9CF89E390E042C08091FC -:1012B000FA0182FF0EC08091FA0184FF03C080E032 -:1012C00090E037C083EE90E034C08091FA0182FF55 -:1012D000F2CF82EE90E02DC08091FA0183FF0BC027 -:1012E0008091FA0184FDEBCF87EE90E022C08091DF -:1012F000FA0183FFF5CF86EE90E01BC08091FA01E2 -:1013000085FF07C089E290E014C08091FA0185FF53 -:10131000F9CF85E390E00DC08091FA0186FF07C008 -:101320008AE290E006C08091FA0186FFF9CF81E35E -:1013300090E00E94CF06089508950C949C09809136 -:101340006E010895CF93DF9300D01F92CDB7DEB723 -:101350009C018091F101843019F593E099833B83DE -:101360002A839093E9008FEF9091E800815095FDDA -:1013700006C095ED9A95F1F700008111F5CF8091A7 -:10138000E80085FF0DC040E050E063E070E0CE0172 -:1013900001960E940C0C8091E8008E778093E80003 -:1013A0000F900F900F90DF91CF910895CF93DF931F -:1013B00000D01F92CDB7DEB72091F101243021F586 -:1013C00022E029839B838A8383E08093E9008FEF67 -:1013D0009091E800815095FD06C095ED9A95F1F742 -:1013E00000008111F5CF8091E80085FF0DC040E03D -:1013F00050E063E070E0CE0101960E940C0C8091F9 -:10140000E8008E778093E8000F900F900F90DF91A7 -:10141000CF9108952091F1012430F1F422E020933E -:10142000E9002FEF3091E800215035FD06C035ED81 -:101430003A95F1F700002111F5CF2091E80025FF42 -:101440000BC040E050E065E070E00E940C0C809121 -:10145000E8008E778093E8000895CF93DF93EC0146 -:101460009091F101943009F046C080910C018823DD -:10147000D9F080910D018823B9F09093E9008FEFA6 -:101480009091E800815095FD06C095E19A95F1F79D -:1014900000008111F5CF8091E80085FF2CC040E06D -:1014A00050E060E170E017C081E08093E9008FEFC9 -:1014B0009091E800815095FD06C095ED9A95F1F761 -:1014C00000008111F5CF8091E80085FF14C040E055 -:1014D00050E068E070E0CE010E940C0C8091E800C2 -:1014E0008E778093E80080E1FE01AEE5B1E00190E7 -:1014F0000D928A95E1F7DF91CF9108958091F001E7 -:10150000811109C00E94A10D0E94FE0D8091E20090 -:1015100084608093E20008951092F0010895089588 -:101520000C94E5220E94461C0E94EB220E94A4100B -:101530000C949D0942E061EC81E00E941B0D42E0A9 -:1015400061EC82E00E941B0D42E061EC83E00E94AE -:101550001B0D42E161EC84E00C941B0D8091F301C2 -:10156000833009F455C030F4813071F0823009F4D1 -:101570008EC008958A3009F47AC08B3009F460C0B7 -:10158000893009F09CC020C08091F201813A09F0B5 -:1015900096C08091E800877F8093E8008091F601F3 -:1015A0009091F701892B21F460E18EE591E003C071 -:1015B00060E080E090E070E00E94570C8091E800CD -:1015C0008B778093E80008958091F201813209F0D1 -:1015D00076C08091F6019091F701009719F003977A -:1015E00009F06DC08091E800877F8093E8008091CA -:1015F000E80082FD05C08091F1018111F8CF5FC044 -:101600008091F10080936E018091E8008B7753C048 -:101610008091F201813A09F052C08091F6019091D7 -:10162000F701892B09F04BC08091E800877F8093F8 -:10163000E8008091E80080FFFCCF80910C0136C06B -:101640008091F2018132D9F58091F6019091F701F4 -:10165000892BA9F58091E800877F8093E8000E949C -:10166000500D8091F40180930C010C943D158091F4 -:10167000F201813221F58091E800877F8093E800B4 -:101680000E94500D8091F50180936F010895809123 -:10169000F201813AA1F48091E800877F8093E8000D -:1016A0008091E80080FFFCCF80916F018093F10072 -:1016B0008091E8008E778093E8000C94500D089597 -:1016C00084B7877F84BF88E10FB6F8948093600069 -:1016D000109260000FBE90E080E80FB6F8948093FF -:1016E0006100909361000FBE0E94F3100E94A10D53 -:1016F0000E94FE0D8091E20084608093E200789465 -:101700000E9484100E94F51082E091E00E949F10D8 -:101710000E94D3228091F101853069F40E940D1C52 -:101720008091EF018823B1F30E94381C882391F344 -:101730000E94F60BEFCF0E94FB10ECCF292F33272E -:1017400023303105C9F064F42130310581F02230B5 -:10175000310509F043C08DE690E02AE434E042C050 -:1017600021323105F1F02232310541F137C082E1F9 -:1017700090E027EB34E036C099278130910541F0A5 -:101780008230910541F0892B49F5E6E4F4E005C08B -:10179000EEE2F4E002C0E6E1F4E0849190E09F0123 -:1017A00021C06430D8F4E62FF0E0EE0FFF1FEE5DAD -:1017B000FE4F2081318189E090E014C0643070F4E4 -:1017C00070E0FB01EE0FFF1FE65EFE4F20813181CE -:1017D000FB01EA5EFE4F808190E004C080E090E073 -:1017E00020E030E0FA0131832083089580E189BD53 -:1017F00082E189BD09B400FEFDCF8091D8008F7DC4 -:101800008093D8008091E00082608093E000809116 -:10181000E00081FDFCCF0895CF92DF92EF92FF921E -:101820000F931F93CF93DF93EC018B016A010E940A -:101830006F0D811133C0C114D10439F0F6018081DC -:101840009181081B190BC80FD91FE12CF12C011530 -:10185000110519F18091E80085FD16C08091E8001E -:101860008E778093E800C114D10449F0F60180819D -:101870009181E80EF91EF182E08285E00FC00E949E -:101880006F0D882321F30AC089918093F1000150E4 -:101890001109FFEFEF1AFF0ADACF80E0DF91CF9155 -:1018A0001F910F91FF90EF90DF90CF9008952091BE -:1018B000F8013091F9012617370748F061157105D5 -:1018C00039F42091E8002E772093E80001C0B90197 -:1018D00040E061157105A9F12091F101222309F47D -:1018E00043C0253009F442C02091E80023FD40C0E8 -:1018F0002091E80022FD32C02091E80020FFE9CFCE -:101900004091F3002091F20030E0342BFC01CF0134 -:101910006115710559F02830310540F481918093AB -:10192000F100615071092F5F3F4FF1CF41E0283046 -:10193000310509F040E02091E8002E772093E8007F -:10194000C8CF4111C9CF0AC08091F101882361F04D -:10195000853061F08091E80083FD0AC08091E80045 -:1019600082FFF2CF80E0089582E0089583E0089539 -:1019700081E008952091F8013091F9012617370789 -:1019800048F06115710539F42091E8002E77209315 -:10199000E80001C0B901FC0120E06115710591F179 -:1019A0008091F101882309F440C0853009F43FC0DB -:1019B0008091E80083FD3DC08091E80082FD2FC04A -:1019C0008091E80080FFE9CF2091F3008091F20040 -:1019D00090E0922B6115710559F08830910540F423 -:1019E00024912093F1003196615071090196F2CF54 -:1019F00021E0089709F020E08091E8008E7780933D -:101A0000E800CBCF2111CCCF0AC08091F10188230F -:101A100061F0853061F08091E80083FD0AC080911B -:101A2000E80082FFF2CF80E0089582E0089583E02D -:101A3000089581E00895982F973058F59093E90024 -:101A4000981739F07091EC002091ED005091F00062 -:101A500003C0242F762F50E021FF19C03091EB00F6 -:101A60003E7F3093EB003091ED003D7F3093ED00F1 -:101A70003091EB0031603093EB007093EC002093D9 -:101A8000ED005093F0002091EE0027FF07C09F5F0C -:101A9000D3CF8F708093E90081E0089580E00895AE -:101AA0008091F20187FF11C08091E80082FD05C09E -:101AB0008091F1018111F8CF11C08091E8008B77FE -:101AC0000BC08091F101882349F08091E80080FFEC -:101AD000F8CF8091E8008E778093E80008952091F8 -:101AE000E4003091E50095E64091EC00842F817090 -:101AF00040FF22C08091E80080FD1CC08091F10170 -:101B0000882391F0853091F08091EB0085FD10C025 -:101B10004091E4005091E5004217530729F39A01E0 -:101B2000915011F784E0089582E0089583E00895CC -:101B300081E0089580E008954091E80042FFDECF03 -:101B400008950E940F0E0E94170EE0EEF0E08081D3 -:101B500081608083E8EDF0E080818F77808319BC1D -:101B6000A7EDB0E08C918E7F8C9380818F7E8083F7 -:101B70001092F00108950F931F93CF93DF930E946B -:101B80000F0E0E94170EC8EDD0E088818F778883F2 -:101B900088818068888388818F7D888319BC1092B2 -:101BA000F1011092ED011092EF011092EE0100EEA2 -:101BB00010E0F80180818B7F808388818160888339 -:101BC00042E060E080E00E941B0DE1EEF0E08081E9 -:101BD0008E7F8083E2EEF0E080818160808380816F -:101BE00088608083F80180818E7F80838881806116 -:101BF0008883DF91CF911F910F910895E8EDF0E078 -:101C000080818F7E8083E7EDF0E08081816080833A -:101C100084E082BF81E08093F0010C94BB0DE8ED7D -:101C2000F0E080818E7F80831092E2000895109210 -:101C3000DA001092E10008951F920F920FB60F92F2 -:101C400011242F933F934F935F936F937F938F93C1 -:101C50009F93AF93BF93EF93FF938091E10082FF37 -:101C60000BC08091E20082FF07C08091E1008B7F72 -:101C70008093E1000E9483108091DA0080FF1FC0F2 -:101C80008091D80080FF1BC08091DA008E7F809306 -:101C9000DA008091D90080FF0DC080E189BD82E12A -:101CA00089BD09B400FEFDCF81E08093F1010E945F -:101CB0007E0A05C019BC1092F1010E948C0A809125 -:101CC000E10080FF19C08091E20080FF15C0809183 -:101CD000E2008E7F8093E2008091E2008061809339 -:101CE000E2008091D80080628093D80019BC85E022 -:101CF0008093F1010E94900A8091E10084FF30C03E -:101D00008091E20084FF2CC080E189BD82E189BD21 -:101D100009B400FEFDCF8091D8008F7D8093D8005C -:101D20008091E1008F7E8093E1008091E2008F7EC0 -:101D30008093E2008091E20081608093E2008091D4 -:101D4000ED01882311F084E007C08091E30087FD56 -:101D500002C081E001C083E08093F1010E94920AF9 -:101D60008091E10083FF29C08091E20083FF25C0BC -:101D70008091E100877F8093E10082E08093F10110 -:101D80001092ED018091E1008E7F8093E1008091BF -:101D9000E2008E7F8093E2008091E2008061809378 -:101DA000E20042E060E080E00E941B0D8091F000C4 -:101DB00088608093F0000E948F0AFF91EF91BF919D -:101DC000AF919F918F917F916F915F914F913F91D3 -:101DD0002F910F900FBE0F901F9018951F920F928A -:101DE0000FB60F9211242F933F934F935F936F93EE -:101DF0007F938F939F93AF93BF93CF93DF93EF9393 -:101E0000FF93C091E900CF708091EC00D82FD17082 -:101E100080FDD0E81092E9008091F000877F8093E8 -:101E2000F00078940E94320F1092E9008091F00047 -:101E300088608093F000CD2BCF70C093E900FF91B4 -:101E4000EF91DF91CF91BF91AF919F918F917F9152 -:101E50006F915F914F913F912F910F900FBE0F9017 -:101E60001F9018951F93CF93DF93CDB7DEB7AA9736 -:101E70000FB6F894DEBF0FBECDBFE2EFF1E088E011 -:101E80008E0F9091F10091938E13FBCF0E94AE0ABA -:101E90008091E80083FF1FC18091F2019091F301CE -:101EA000492F50E04A30510508F015C1FA01EA5AAD -:101EB000FF4F0C946D24803881F0823809F00BC1FB -:101EC0008091F6018F708093E9008091EB0085FB93 -:101ED000882780F91092E90006C08091EE01909168 -:101EE000EF01911182609091E800977F9093E80054 -:101EF0008093F1001092F100C8C0282F2D7F09F0C7 -:101F0000EAC0882319F0823061F0E5C08091F401C5 -:101F1000813009F0E0C0933009F080E08093EF0158 -:101F20002BC08091F401811127C08091F6018F7040 -:101F300009F4D1C08093E9002091EB0020FF1CC080 -:101F4000933021F48091EB00806214C09091EB00FB -:101F500090619093EB0021E030E0A90102C0440FB2 -:101F6000551F8A95E2F74093EA001092EA008091AB -:101F7000EB0088608093EB001092E9008091E8000C -:101F8000877F86C08111A7C01091F4011F778091CF -:101F9000E3008078812B8093E3008091E800877FC5 -:101FA0008093E8000E94500D8091E80080FFFCCFF4 -:101FB0008091E30080688093E300111102C082E009 -:101FC00001C083E08093F10186C08058823008F020 -:101FD00082C08091F4019091F5018C3D53E095070A -:101FE00079F583E08A838AE289834FB7F894DE012A -:101FF000139620E03EE051E2E32FF0E050935700CB -:10200000E49120FF03C0E295EF703F5FEF708E2FE9 -:1020100090E0EA3010F0C79601C0C0968D939D9372 -:102020002F5F243149F74FBF8091E800877F80936D -:10203000E8006AE270E0CE0101960E94570C14C0DD -:10204000AE014F5F5F4F6091F6010E949E0BBC0195 -:10205000009709F440C09091E800977F9093E800C2 -:1020600089819A810E94BA0C8091E8008B778093D5 -:10207000E80031C0803879F58091E800877F80934F -:10208000E8008091ED018093F1008091E8008E7767 -:102090008093E8000E94500D1EC081111CC09091D9 -:1020A000F4019230C0F48091E800877F8093E800CB -:1020B0009093ED010E94500D8091ED01811106C0B9 -:1020C0008091E30087FD02C081E001C084E080933D -:1020D000F1010E949A0A8091E80083FF0AC0809172 -:1020E000E800877F8093E8008091EB008062809316 -:1020F000EB00AA960FB6F894DEBF0FBECDBFDF91FE -:10210000CF911F9108950895CF938091F101882375 -:10211000A1F0C091E900CF709091EC00892F8170FF -:1021200090FD80E8C82B1092E9008091E80083FDC3 -:102130000E94320FCF70C093E900CF910895909321 -:102140007501809374010895E0917401F091750117 -:10215000309721F00190F081E02D099480E00895FE -:10216000E0917401F0917501309721F00280F381C4 -:10217000E02D09940895E0917401F0917501309774 -:1021800021F00480F581E02D0994089520917201D9 -:10219000309173018217930771F0909373018093CC -:1021A0007201E0917401F0917501309721F0068081 -:1021B000F781E02D0994089520917001309171010B -:1021C0008217930771F09093710180937001E091F1 -:1021D0007401F0917501309721F00084F185E02DB4 -:1021E0000994089508950C94F2100E944C1C0E94CA -:1021F000BB030C940E1D9F92AF92BF92CF92DF92C1 -:10220000EF92FF920F931F93CF93DF9300D000D0F4 -:1022100000D0CDB7DEB70E94D3030DE010E0AA24B2 -:10222000A394B12C902E802F0E94C10498012958AC -:102230003E4F6901F901F080F826A1F4015011091F -:1022400088F78FEF89838A831B820E94551C8160E7 -:10225000782F9D838C8349815A816B818D810E9467 -:1022600092112FC09091DA0191FF04C08E830E94D9 -:10227000C7048E8125E030E0A501022E01C0440F85 -:102280000A94EAF7E42E4F21C1F029839A828E2125 -:1022900091E009F490E09B830E94551C8160782FA7 -:1022A0009D838C8349815A816B818D810E9492111B -:1022B000F6018081E826E08204C021503109E0F671 -:1022C000BDCF0E94F51F109176010E94A41018172F -:1022D000B9F00E94A4108093760126960FB6F89468 -:1022E000DEBF0FBECDBFDF91CF911F910F91FF9049 -:1022F000EF90DF90CF90BF90AF909F900C949D098E -:1023000026960FB6F894DEBF0FBECDBFDF91CF91FA -:102310001F910F91FF90EF90DF90CF90BF90AF9003 -:102320009F900895CF93DF93CDB7DEB72B970FB66D -:10233000F894DEBF0FBECDBF4F83588769877A8779 -:102340008B87DE01119686E0FD0111928A95E9F7EF -:1023500085E0FE01379601900D928A95E1F749815B -:102360005A816B817C818D819E810E94DB172B9627 -:102370000FB6F894DEBF0FBECDBFDF91CF910895A9 -:10238000CF93882309F4C2C0C82F823859F40E9421 -:10239000A41081FDBBC089E30E94B51A0E94821B74 -:1023A00089E30CC0833879F40E94A41080FDAEC08C -:1023B00083E50E94B51A0E94821B83E50E94F71AEA -:1023C000CF910C94821B843859F40E94A41082FD92 -:1023D0009DC087E40E94B51A0E94821B87E4EECF5D -:1023E0008CEF8C0F813A48F48C2F0E943822811197 -:1023F0008DC08C2F0E94B51AE3CF80E28C0F8830FD -:1024000048F4C77081E001C0880FCA95EAF70E94BE -:102410003B1BD6CF8BE58C0F833078F4C53A29F07F -:10242000C63A31F083E890E005C081E890E002C050 -:1024300082E890E0CF910C94C61088E58C0F833130 -:1024400008F064C0C83A39F1C93A41F1CA3A49F1D1 -:10245000CB3A51F1CC3A59F1CD3A61F1C03B69F137 -:10246000CE3A71F1CF3A79F1C13B81F1C23B89F1AA -:10247000C33B91F1C43B99F1C53BA1F1C63BA9F126 -:10248000C73BB1F1C83BB9F1C93BC1F1CA3BC9F186 -:1024900080E090E038C082EE90E035C089EE90E0B8 -:1024A00032C08AEE90E02FC085EB90E02CC086EB26 -:1024B00090E029C087EB90E026C08CEC90E023C030 -:1024C0008DEC90E020C083E891E01DC08AE891E0A7 -:1024D0001AC082E991E017C084E991E014C081E25A -:1024E00092E011C083E292E00EC084E292E00BC061 -:1024F00085E292E008C086E292E005C087E292E0C1 -:1025000002C08AE292E0CF910C94DC10CF91089542 -:10251000882309F44BC0823859F40E94A41081FF2B -:1025200045C089E30E94B51A0E94821B89E30CC052 -:10253000833871F40E94A41080FF38C083E50E94A4 -:10254000B51A0E94821B83E50E94F71A0C94821B25 -:10255000843859F40E94A41082FF28C087E40E94A6 -:10256000B51A0E94821B87E4EFCF9CEF980F913A37 -:1025700058F390E2980F983050F4877091E001C0C2 -:10258000990F8A95EAF7892F0E94411BDFCF9BE5BF -:10259000980F933020F480E090E00C94C610885A95 -:1025A000833120F480E090E00C94DC1008958823BF -:1025B00021F00E943B1B0C94821B0895882321F07C -:1025C0000E94411B0C94821B08957F928F929F92D0 -:1025D000AF92BF92CF92DF92EF92FF920F931F9331 -:1025E000CF93DF931F92CDB7DEB77C01C62E772E37 -:1025F000FC01058102950F70128111110E94581B78 -:102600000E94AE1A882379F0112369F080E28C0DC4 -:10261000883048F082E00E94971A0E94AE1A91E03A -:10262000D82ED92601C0D12CE72DE295EF70F0E02D -:10263000E05AFF4F0C946D24872D807F072D0F707B -:10264000882311F00295007F112389F0002309F4FB -:1026500090C180E28C0D883020F4802F0E943B1BBB -:1026600003C0802F0E944B1B0E94821B82C18C2DB5 -:102670000E948812002309F495C180E28C0D8830F5 -:1026800020F4802F0E94411B03C0802F0E94511B09 -:102690000E94821B87C1972D907F872D8F7090326B -:1026A00011F08295807FCC2021F0F1E0CF16B1F0BF -:1026B0001EC0112349F0002309F414C1013009F0B0 -:1026C00011C10E946B1B6EC1002319F0013009F487 -:1026D00069C189830E946E1B89810AC1112321F07F -:1026E000023008F05FC1FEC001115CC101C11123BD -:1026F00021F0002309F4F6C03CC1002309F4F8C01E -:102700003EC1872D86958695837090E0009719F0DD -:10271000019761F047C1112321F08C2D972D937003 -:1027200002C080E090E00E94C6103CC1112321F05D -:102730008C2D972D937002C080E090E00E94DC10F9 -:1027400031C18C2D112319F00E94FD1E02C00E9480 -:10275000651F0E94EA1F26C1872D837009F052C0B1 -:10276000111120C18C2D829586958770880F880F56 -:102770009C2D9F70892E912CA12CB12C082E04C069 -:10278000880C991CAA1CBB1C0A94D2F7C4FE14C066 -:102790000FE010E020E030E0B901A80104C0440FD0 -:1027A000551F661F771F8A95D2F7CB01BA01609536 -:1027B00070958095909503C060E070E0CB01272D67 -:1027C00026952695237030E02230310569F02330BC -:1027D000310589F0682979298A299B292130310519 -:1027E00071F00E942319DEC0682979298A299B2962 -:1027F0000E943F19D7C00E942319C501B4010E944D -:102800000719D0C0112319F0872D817001C086955A -:10281000882309F4C7C08C2D829586958770880F10 -:10282000880F9C2D9F70892E912CA12CB12C082EE5 -:1028300004C0880C991CAA1CBB1C0A94D2F7C4FEC5 -:1028400014C00FE010E020E030E0B901A80104C09E -:10285000440F551F661F771F8A95D2F7CB01BA0127 -:10286000609570958095909503C060E070E0CB0115 -:10287000272D269526952370422F50E04230510592 -:1028800069F04330510589F0682979298A299B2903 -:102890004130510571F00E94FD1984C068297929E1 -:1028A0008A299B290E94191A7DC00E94FD19C50121 -:1028B000B4010E94E11976C08C2D90E0FC01E05E2D -:1028C000F109E531F10508F050C0E059FF4F0C94D3 -:1028D0006D240C2D0F70872D8F71112331F00E9404 -:1028E0007A19802F0E94D7125DC00E949B19802FF9 -:1028F0000E94DE1257C0112339F0011153C0872DF9 -:102900008F710E94C0194EC0023008F04BC0F7CF43 -:10291000112339F0872D8F710E947A1943C011233A -:10292000C9F3872D8F710E949B193CC0112329F098 -:10293000872D8F710E94651935C00E945B1932C0C6 -:10294000112351F0172D1F71812F0E947A1963E016 -:10295000812F0E948E1A26C081E00E94971A0230B1 -:1029600008F182E00E94971A1DC0112331F0002364 -:1029700089F28C2D0E94C01115C0002391F28C2D7C -:102980000E9488120FC0472D4F706C2DC7010E9406 -:102990009D050E947F1806C0472D4F706C2DC70102 -:1029A0000E94AC06DD20F9F00E948A1A80FD1BC04F -:1029B000F70112820E94841A0E947A19C7010E94AC -:1029C00002150E94841A0F90DF91CF911F910F91F1 -:1029D000FF90EF90DF90CF90BF90AF909F908F903F -:1029E0007F900C949B190F90DF91CF911F910F91C5 -:1029F000FF90EF90DF90CF90BF90AF909F908F901F -:102A00007F9008950F931F93CF93DF93EC018881FC -:102A100099812B813C81232BB9F09F3F11F48F3F8B -:102A200099F0CE010E940406882371F068817981B3 -:102A30008A810E94801A8C010E94351A0E94FC181B -:102A4000B801CE010E94E512DF91CF911F910F9145 -:102A500008950E94581B0E94681B0E942D1B0E9413 -:102A6000821B0E949B200E94EA1F80E090E00E944F -:102A7000C61080E090E00C94DC100E94481B0C947F -:102A800029150E94751A292F22952F7030E02C30BD -:102A900031054CF42A3031056CF4225031092230D2 -:102AA0003105A8F407C02C30310569F02F3031050D -:102AB00051F00DC0803F69F018F4803E40F409C029 -:102AC000843F29F406C093FB882780F9089580E0AD -:102AD000089581E00895CF93DF9300D000D01F9236 -:102AE000CDB7DEB70F900F900F900F900F90DF9142 -:102AF000CF910895CF93DF9300D000D000D0CDB711 -:102B0000DEB726960FB6F894DEBF0FBECDBFDF91BD -:102B1000CF9108951F93CF93DF93C091850116E065 -:102B200080918601C81799F0D0E01C9FF0011D9F8D -:102B3000F00D1124E957FE4F40815181628173816C -:102B4000848195810E947A152196C770E9CFDF9123 -:102B5000CF911F9108954091B7015091B8016091B4 -:102B6000B9017091BA018091BB019091BC010C94A4 -:102B70007A158091BC0182958F7009F054C08091C4 -:102B8000B901882309F44FC080918501A091860185 -:102B90006091B7017091B8014091BA015091BB01A9 -:102BA000B6E08A1709F43FC090E041155105C1F124 -:102BB0007F3F11F46F3FA1F1B89FF001B99FF00D75 -:102BC0001124E957FE4F218172132AC0208162131C -:102BD00027C02281211124C0238134812417350785 -:102BE00010F421503109241B350B283C3105C0F469 -:102BF0002091BC012F7020612093BC0126E0289F0A -:102C0000F001299FF00D1124E457FE4F80818F7051 -:102C10008061808387EB91E00E9402150C948A15F5 -:102C200001968770BECF0895CF92DF92EF92FF9208 -:102C30000F931F93CF93DF93CDB7DEB762970FB695 -:102C4000F894DEBF0FBECDBF8C0185E0F801DE0138 -:102C50001D9601900D928A95E1F7D8014C9111963D -:102C60005C91119712966C9112971396CD90DC900F -:102C700014973091B7017091B8018091BA01909189 -:102C8000BB01009709F46BC17F3F19F43F3F09F482 -:102C900066C1E090B901EE2009F4C0C02091BC01EA -:102CA000C816D90628F0F601E81BF90BCF0104C0BD -:102CB000809590958C0D9D1DFF24F394883C910583 -:102CC00078F0F12C207F09F0C6C07C2DD98AC88A03 -:102CD00089890E946B1587EB91E00E940215B1C0B3 -:102CE000822F807F09F046C0751314C0341312C0C0 -:102CF000611110C02F7020612093BC010E94AB15A0 -:102D000087EB91E00E9402158091BC01D8011596D5 -:102D10008C932EC0CD2819F15F3F11F44F3FF9F08D -:102D2000F62E61111CC0809185012091860136E04C -:102D3000821709F45AC090E0389FF001399FF00DD6 -:102D40001124E957FE4F7181571306C07081471354 -:102D500003C07281711103C001968770E9CFF62E0E -:102D6000662309F418C18091BC0181608093BC0185 -:102D7000F12C11C1751308C0341306C0611104C0D1 -:102D80008091BC01D801C3C04D875E878D859E852B -:102D90006A8B0E9441156A898823E1F16623D1F18B -:102DA0002091BC01822F82958F7090E0029774F081 -:102DB0008091B7019091B80198878F831986DB863F -:102DC000CA862C87CE0107960E94021586E0F8017C -:102DD000A7EBB1E001900D928A95E1F70E94B91539 -:102DE0000E94AB15FF24F394D6C04D875E878D8576 -:102DF0009E850E94751A292F22952F7030E022306F -:102E000031050CF0BCC09F7009F0B6C0805E883000 -:102E100008F4C1C0C8010E940215E4CFC816D90643 -:102E200008F453C0F601E81BF90BCF01883C91056B -:102E300008F450C0F12C7C2DD98AC88A89890E9457 -:102E40006B15E7EBF1E086E0DF011D928A95E9F76B -:102E50000E94AB15A0C0751314C0341312C06111C9 -:102E600010C08091BC01F8018583C8010E94021541 -:102E700086E0E7EBF1E0DF011D928A95E9F7FE2C91 -:102E80008AC04D875E878D859E856A8B0E9441151D -:102E90006A89882309F4BECF662309F4BBCF209149 -:102EA000BC01822F82958F7090E002970CF48ECF38 -:102EB0008091B7019091B8019A8389831B82DD824A -:102EC000CC822E83CE0101967FCF809590958C0D7C -:102ED0009D1DACCFF62E662309F49CCF75132EC032 -:102EE00034132CC02091BC0120FD1FC0822F82957D -:102EF0008F70D9F0D80115962C9315978F3049F023 -:102F00008F5F982F9295907F822F8F70892B1596C7 -:102F10008C93C8010E94021586E0F801A7EBB1E08E -:102F200001900D928A95E1F793CF86E0F801A7EB27 -:102F3000B1E001900D928A95E1F72DC04D875E8733 -:102F40008D859E850E944115811140CF8091BC01E5 -:102F500081608093BC01C8010E9402151CC06623D9 -:102F600009F458CF4D875E878D859E850E94411557 -:102F7000882309F44FCF2ACF811148CF0CC02430C9 -:102F800031050CF047CF9F7009F440CFF8019581CF -:102F9000907F09F03BCF8F2D62960FB6F894DEBF7D -:102FA0000FBECDBFDF91CF911F910F91FF90EF909A -:102FB000DF90CF9008951F93CF93DF93CDB7DEB707 -:102FC0002C970FB6F894DEBF0FBECDBF4F83588746 -:102FD00069877A878B879C87CE0107960E94141693 -:102FE000882369F08F8198852A853B85232BF1F111 -:102FF0009F3F09F063C08F3F09F060C037C086E093 -:10300000FE013796DE01119601900D928A95E1F747 -:103010006F817885EA85FB85309741F17F3F11F418 -:103020006F3F21F12091860130E0C9010196877040 -:1030300099274091850150E08417950709F447C00E -:1030400069837A83FD83EC8396E0929FD001939FFE -:10305000B00D1124A957BE4FFE01319601900D927B -:103060009A95E1F7809386010E948A1516E0809177 -:103070008501909186018917C1F1189FC001112423 -:1030800089579E4F0E941416882379F1E09185019B -:103090001E9FF0011124E957FE4F4081518162814A -:1030A0007381848195810E947A158091850190E0D9 -:1030B00001968770992780938501D9CF4F815885D4 -:1030C00069857A858B859C850E947A15CFCF0E9471 -:1030D0003D151092860110928501E7EBF1E086E044 -:1030E000DF011D928A95E9F7C1CF2C960FB6F894AF -:1030F000DEBF0FBECDBFDF91CF911F910895EF923C -:10310000FF920F931F93CF93DF938C01009709F4E5 -:103110006CC0F12CEE24E394E8012196F80184912F -:10312000843740F4843008F051C0813081F082301F -:1031300019F15BC0853709F444C0A8F19CE7980FEA -:10314000903708F052C08F770E94881241C00E5FFE -:103150001F4FFE01C49180E28C0F883048F4C77085 -:103160008E2D01C0880FCA95EAF70E945B1B14C020 -:103170008C2F0E94C0112DC00E5F1F4FFE01C49105 -:1031800080E28C0F883058F4C7708E2D01C0880FF4 -:10319000CA95EAF70E94611B0E94821B1AC08C2FFD -:1031A0000E94881216C00E5F1F4FFE01C491CC23EF -:1031B00081F08FE99FE00197F1F700C00000C15056 -:1031C000F6CF0E5F1F4FFE01F49003C00E94C011A6 -:1031D0008E018F2D882309F49FCFEFE9FFE031970F -:1031E000F1F700C000008150F5CFDF91CF911F9122 -:1031F0000F91FF90EF90089508956093C10170932F -:10320000C2018093C3019093C4010C9429150F93BC -:103210001F930091C1011091C2012091C30130910F -:10322000C401DC01CB01802B912BA22BB32B80930B -:10323000C1019093C201A093C301B093C4011F9137 -:103240000F910C9429150F931F930091C1011091B8 -:10325000C2012091C3013091C401DC01CB01802364 -:103260009123A223B3238093C1019093C201A09321 -:10327000C301B093C4011F910F910C9429150F93B2 -:103280001F930091C1011091C2012091C30130919F -:10329000C401DC01CB0180279127A227B3278093AB -:1032A000C1019093C201A093C301B093C4011F91C7 -:1032B0000F910C9429151092BD011092BE0110922D -:1032C000BF011092C0010C94291541E050E060E06C -:1032D00070E004C0440F551F661F771F8A95D2F710 -:1032E0004093BD015093BE016093BF017093C00134 -:1032F0000C94291541E050E060E070E004C0440FF8 -:10330000551F661F771F8A95D2F78091BD01909156 -:10331000BE01A091BF01B091C001482B592B6A2B6F -:103320007B2B4093BD015093BE016093BF0170930E -:10333000C0010C94291541E050E060E070E004C049 -:10334000440F551F661F771F8A95D2F740955095F9 -:10335000609570958091BD019091BE01A091BF01D3 -:10336000B091C001482359236A237B234093BD01B8 -:103370005093BE016093BF017093C0010C94291556 -:1033800041E050E060E070E004C0440F551F661F4C -:10339000771F8A95D2F78091BD019091BE01A091CF -:1033A000BF01B091C001482759276A277B27409366 -:1033B000BD015093BE016093BF017093C0010C9496 -:1033C00029150F931F930091BD011091BE0120910B -:1033D000BF013091C001DC01CB01802B912BA22BCE -:1033E000B32B8093BD019093BE01A093BF01B09316 -:1033F000C0011F910F910C9429150F931F930091F9 -:10340000BD011091BE012091BF013091C001DC01CE -:10341000CB0180239123A223B3238093BD019093FA -:10342000BE01A093BF01B093C0011F910F910C94F6 -:1034300029150F931F930091BD011091BE0120919A -:10344000BF013091C001DC01CB0180279127A22769 -:10345000B3278093BD019093BE01A093BF01B093A9 -:10346000C0011F910F910C9429150895CF92DF92FE -:10347000EF92FF920F931F93CF93DF938C01C09035 -:10348000C101D090C201E090C301F090C4018091CD -:10349000BD019091BE01A091BF01B091C001C82AA9 -:1034A000D92AEA2AFB2ACFE1D0E0D701C6010C2EA7 -:1034B00004C0B695A795979587950A94D2F780FF93 -:1034C00006C0B8018C2F0E940209019721F42197B0 -:1034D00060F780E001C08C2FDF91CF911F910F9199 -:1034E000FF90EF90DF90CF900895CF93DF93EC01A2 -:1034F0000E94361ABE010E940209DF91CF91089501 -:10350000CB010E94751A08958091C5018595859516 -:10351000859508958091C5018770089598E0899FE9 -:1035200090011124262B2093C5010C947A19209127 -:10353000C501809582238093C501982F977069F407 -:1035400030E0482F552747FD50952417350729F0BF -:103550008595859585950C949B1908959091C50145 -:10356000977081E009F480E0089590910C0199230F -:1035700021F090910D01911109C020910E0130911F -:103580000F01F90132969FEF40E01FC0982F9695EA -:10359000969596959F3050F5E0910E01F0910F01B0 -:1035A000E90FF11D877021E030E0A90102C0440F4E -:1035B000551F8A95E2F7CA019181892B818308956D -:1035C0009F3F39F04F5F4E3041F051915813F8CF83 -:1035D0000DC05111F7CF942FF5CF9F3F39F0F9016E -:1035E000E90FF11D97FDFA95828308950895909152 -:1035F0000C01992321F090910D01911109C02091A6 -:103600000E0130910F01F9013296205F3F4F1FC02C -:10361000982F9695969596959F30F0F4E0910E012F -:10362000F0910F01E90FF11D877021E030E0A90151 -:1036300002C0440F551F8A95E2F7CA018095918117 -:103640008923818308953196E217F30729F0908149 -:103650009813F9CF1082F7CF089581E090E0E091C0 -:103660000E01F0910F01E80FF91F108201968031D1 -:103670009105A9F708959091D901892B8093D901DB -:10368000089580959091D90189238093D901089557 -:103690001092D90108959091D801892B8093D80177 -:1036A000089580959091D80189238093D801089539 -:1036B0001092D80108959091D701892B8093D7015A -:1036C000089580959091D70189238093D70108951B -:1036D0001092D70108958093C60108951092C601F3 -:1036E000089580910E0190910F01FC0131969C018B -:1036F000205F3F4F80E0919191118F5FE217F307B8 -:10370000D1F70895E0910E01F0910F018091D90158 -:103710008083E0910E01F0910F0190818091D8019A -:10372000892B8083E0910E01F0910F0190818091AF -:10373000D701892B80838091C601882361F0E091B5 -:103740000E01F0910F019081892B80830E94711BE3 -:1037500081111092C60180910E0190910F010C947D -:10376000B01020E0009739F0AC014150510984239A -:1037700095232F5FF7CF822F0895CF92DF92EF929C -:10378000FF926C01EE24FF24C114D104E104F10482 -:1037900021F0C701B60120E101C020E0C72ED82EDC -:1037A000E92EFF24C114D104E104F10419F0285FCB -:1037B000C701B6016B017C0154E0F694E794D794FD -:1037C000C7945A95D1F7C114D104E104F10419F05A -:1037D0002C5FC701B6016B017C0142E0F694E794CF -:1037E000D794C7944A95D1F7C114D104E104F104E8 -:1037F00019F02E5FC701B601DC01CB01B695A79584 -:1038000097958795892B8A2B8B2B09F02F5F822F19 -:10381000FF90EF90DF90CF9008958091F101843078 -:1038200021F11092DB0120E488E190E00FB6F894DA -:10383000A895809360000FBE2093600080E00E94F6 -:103840009D0983B7817F846083BF83B7816083BF15 -:103850007894889583B78E7F83BF88E10FB6F894FC -:1038600080936000109260000FBE0895089508953F -:103870000E94361C0E94D3030E94371C0E94C80479 -:1038800091E0811101C090E0892F08950E943D15BB -:103890000E94A4100C949D0982E084BD93E095BD24 -:1038A0009AEF97BD80936E0008952FB7F89480919A -:1038B000DC019091DD01A091DE01B091DF012FBF0D -:1038C0000895CF92DF92EF92FF920F931F932FB73D -:1038D000F8944091DC015091DD016091DE0170911E -:1038E000DF012FBF6A017B01EE24FF248C0120E061 -:1038F00030E0C016D106E206F30610F4415051093B -:103900009A01281B390BC9011F910F91FF90EF906D -:10391000DF90CF9008951F920F920FB60F9211244F -:103920008F939F93AF93BF938091DC019091DD01C2 -:10393000A091DE01B091DF010196A11DB11D809320 -:10394000DC019093DD01A093DE01B093DF01BF9114 -:10395000AF919F918F910F900FBE0F901F90189570 -:103960000E94A10DF8942FEF87EA91E62150804044 -:103970009040E1F700C0000087E090EBDC0180930D -:10398000FB019093FC01A093FD01B093FE019CE02C -:1039900088E10FB6F894A895809360000FBE9093CD -:1039A0006000FFCFEF92FF920F931F93CF93DF93AF -:1039B000D82FCDE08C2F0E94C10405E010E0E82E46 -:1039C000F12CC701002E02C0959587950A94E2F765 -:1039D00080FF09C0602F7C2F80E00E94AD06D813C5 -:1039E00002C081E006C00150110958F7C15010F71C -:1039F00080E0DF91CF911F910F91FF90EF9008959C -:103A0000CF93C82F8CE20E94D21C882321F08C2FE8 -:103A1000CF910C94D21C80E0CF910895CF930E9457 -:103A2000551E811102C00E943B1EC5E6C15049F0DF -:103A30000E94D3038FE39CE90197F1F700C00000D7 -:103A4000F5CF89E20E94001D811113C18AE20E9414 -:103A5000001D81110E943B1E85E00E94001D811106 -:103A60000E94B01C0E94601E8093DA0187E00E94D1 -:103A7000001D8823A9F18BE10E94001D882351F0CD -:103A80008091DA0181FB222720F991E0922790FBB7 -:103A900081F90EC08EE00E94001D882361F08091A4 -:103AA000DA0182FB222720F991E0922790FB82F92C -:103AB0008093DA0115C080E10E94001D9091DA0127 -:103AC000882341F093FB222720F981E0822780FBA5 -:103AD00093F904C0892F809580FB90F99093DA01C7 -:103AE0008091DA010E94641E0E94721E8093FA0186 -:103AF00080EE0E94001D882341F08091FA01982FEA -:103B0000909590FB80F98093FA0189E30E94001D53 -:103B1000882359F08091FA0181FB222720F991E056 -:103B2000922790FB81F98093FA0182EE0E94001D9A -:103B3000882359F08091FA0182FB222720F991E035 -:103B4000922790FB82F98093FA0186EE0E94001D75 -:103B5000882359F08091FA0183FB222720F991E014 -:103B6000922790FB83F98093FA0183EE0E94001D57 -:103B7000882359F08091FA0184FB222720F991E0F3 -:103B8000922790FB84F98093FA0185E30E94001D3F -:103B9000882359F08091FA0185FB222720F991E0D2 -:103BA000922790FB85F98093FA0181E30E94001D22 -:103BB000882359F08091FA0186FB222720F991E0B1 -:103BC000922790FB86F98093FA0181E10E94001D03 -:103BD000882359F08091FA0187FB222720F991E090 -:103BE000922790FB87F98093FA018091FA010E9455 -:103BF000761E8091FA0187FB882780F980930D015A -:103C000087E20E94001DC82F8EE10E94001D8111D5 -:103C1000C2608FE10E94001D8111C46080E20E9499 -:103C2000001D8111C86081E20E94001D8111C061E8 -:103C300082E20E94001D8111C06283E20E94001D89 -:103C40008111C06484E20E94001D882311F0C068C5 -:103C500002C0CC2329F08C2F0E946D1E6C2F03C054 -:103C60000E94691E682F70E080E090E0CF910C9474 -:103C7000FD18CF9108956DEE7EEF80E090E00E94F8 -:103C8000A72460E082E090E00E94952460E083E059 -:103C900090E00E94952460E084E090E00E949524EA -:103CA00060E085E090E00C94952480E090E00E9434 -:103CB0008F2421E08D3E9E4F09F020E0822F089551 -:103CC00082E090E00C948724682F82E090E00C94CE -:103CD000952483E090E00C948724682F83E090E0A3 -:103CE0000C94952484E090E00C948724682F84E061 -:103CF00090E00C9495248091E20180FF0BC06091CC -:103D0000130185E0689FB00111247595679575953D -:103D100067952BC081FF09C06091130185E0689F02 -:103D2000B00111247595679520C082FF07C060918E -:103D3000130185E0689FB001112417C09091E30141 -:103D40009923D1F060911201961788F72091130101 -:103D500085E0289F90011124929FA001939F500D10 -:103D6000112470E0CA010E9459246038710540F4A2 -:103D70006115710539F002C065E070E0862F089585 -:103D80008FE7089581E008958091E20180FF08C0E7 -:103D90006091110170E0759567957595679521C0E3 -:103DA00081FF06C06091110170E07595679519C09B -:103DB00082FF04C06091110170E010C09091E30196 -:103DC0009923C1F0609110019617A0F7809111011D -:103DD000899FC001112470E00E9459246038710548 -:103DE00028F46115710521F0862F08958FE7089555 -:103DF00081E0089561E070E0F4CF803F21F40E94FB -:103E00007B1E819504C0813F29F40E947B1E809314 -:103E1000E6010895823F21F40E947B1E819504C033 -:103E2000833F29F40E947B1E8093E5010895893F1A -:103E300019F40E94C41E05C08A3F31F40E94C41EBA -:103E400081958093E70108958B3F21F40E94C41E61 -:103E5000819504C08C3F29F40E94C41E8093E80120 -:103E60000895843F21F48091E401816017C0853F6B -:103E700021F48091E401826011C0863F21F4809199 -:103E8000E40184600BC0873F21F48091E4018860E5 -:103E900005C0883F31F48091E40180618093E401A2 -:103EA00008958D3F21F48091E20181600BC08E3F27 -:103EB00021F48091E201826005C08F3F29F4809156 -:103EC000E20184608093E2010895803F39F480919B -:103ED000E60187FF6CC01092E60169C0813F29F4BA -:103EE0008091E6011816BCF362C09091E501823F13 -:103EF00029F497FF5CC01092E50159C0833F19F483 -:103F00001916CCF354C0893F41F48091E70118168B -:103F10000CF04DC01092E7014AC08A3F29F480910D -:103F2000E70187FF44C0F6CF8B3F39F48091E80169 -:103F300087FF3DC01092E8013AC08C3F29F4809180 -:103F4000E8011816BCF333C0843F21F48091E401EA -:103F50008E7F17C0853F21F48091E4018D7F11C0D1 -:103F6000863F21F48091E4018B7F0BC0873F21F4D1 -:103F70008091E401877F05C0883F31F48091E4019E -:103F80008F7E8093E40113C08D3F21F48091E20184 -:103F90008E7F0BC08E3F21F48091E2018D7F05C0A2 -:103FA0008F3F29F48091E2018B7F8093E201809121 -:103FB000E50181110EC08091E60181110AC0809156 -:103FC000E701811106C08091E801811102C01092C1 -:103FD000E301089584EE91E00E94BB100E94551CFD -:103FE0009093E1018093E00108951F93CF93DF93B5 -:103FF0008091E0019091E1010E94611CAC019091DF -:10400000E301992321F02091140130E006C02091B2 -:1040100015018AE0289F900111244217530708F4E4 -:1040200086C08091E501C091E601D091E701109131 -:10403000E801811107C0C11176C0D11174C01111FE -:1040400072C075C09F3F19F09F5F9093E3011816EF -:1040500024F40E947B1E8093E5018091E50187FF97 -:1040600005C00E947B1E81958093E5011C1624F4F7 -:104070000E947B1E8093E6018091E60187FF05C0C8 -:104080000E947B1E81958093E6016091E501662385 -:1040900039F1C091E601CC2319F1772767FD7095BE -:1040A000872F972F0E946A2323E333E343E35FE3E1 -:1040B0000E94CE230E9437236093E5016C2F77275F -:1040C00067FD7095872F972F0E946A2323E333E3C0 -:1040D00043E35FE30E94CE230E9437236093E6010F -:1040E0001D1624F40E94C41E8093E7018091E7010D -:1040F00087FF05C00E94C41E81958093E7011116B9 -:1041000024F40E94C41E8093E8018091E80187FF97 -:1041100005C00E94C41E81958093E801DF91CF9174 -:104120001F910C94EA1F9F3F09F08ECF96CFDF912D -:10413000CF911F910895E4EEF1E085E0DF011D923B -:104140008A95E9F71092E3011092E2010895833015 -:1041500081F128F4813059F08230D1F00895853012 -:1041600009F449C0B8F1863009F456C00895809129 -:104170001501262F30E0280F311D2F3F310524F483 -:10418000680F6093150108958FEF809315010895CE -:1041900080911401262F30E0280F311D2F3F31056B -:1041A00024F4680F6093140108958FEF8093140135 -:1041B000089580911301262F30E0280F311D2F3FE5 -:1041C000310524F4680F6093130108958FEF8093F5 -:1041D0001301089580911201262F30E0280F311D20 -:1041E0002F3F310524F4680F6093120108958FEF7B -:1041F00080931201089580911101262F30E0280F3D -:10420000311D2F3F310524F4680F6093110108958B -:104210008FEF80931101089580911001262F30E0D7 -:10422000280F311D2F3F310524F4680F60931001D2 -:1042300008958FEF809310010895833011F128F4D1 -:10424000813049F0823091F00895853081F120F17C -:104250008630C1F1089580911501681720F4861BFE -:10426000809315010895109215010895809114010D -:10427000681720F4861B809314010895109214018E -:10428000089580911301681720F4861B8093130111 -:10429000089510921301089580911201681720F477 -:1042A000861B809312010895109212010895809147 -:1042B0001101681720F4861B809311010895109254 -:1042C0001101089580911001681720F4861B8093D6 -:1042D000100108951092100108950F931F938D31CE -:1042E00009F46BC008F03FC08E3009F47FC0C0F401 -:1042F000873009F469C068F4863009F0B1C0809154 -:10430000DA01817F8E7F8093DA0181E08093EA0178 -:10431000A8C0883009F4A2C08B3009F49FC0A0C0A7 -:10432000863109F49BC078F4803109F472C0813180 -:1043300009F096C00E943D1590910D0181E08927FA -:1043400080930D018BC0893109F488C08B3109F04D -:1043500087C08091DA0181FB222720F991E0922722 -:1043600090FB81F94CC0853309F470C048F4873262 -:1043700009F46CC008F459C0893209F467C070C0F0 -:10438000833438F48A3308F04EC0883309F466C0A9 -:1043900067C0833409F45AC0883409F061C00E94B0 -:1043A0003D150FEF13ED20E3015010402040E1F7E1 -:1043B00000C000000E94B01C51C00E94F1220E9467 -:1043C000A4100E949D094AC09091DA01892F80951E -:1043D000817080FB90F929F0966098609093DA01E3 -:1043E00040C0997F977F9093DA0138C08091DA01BD -:1043F00082FB222720F991E0922790FB82F980939B -:10440000DA01992359F18091DA0181608093DA0110 -:1044100025C08091DA0183FB222720F991E09227C1 -:1044200090FB83F9ECCF895301C08D5141E050E0FE -:1044300060E070E08A019B0104C0000F111F221F81 -:10444000331F8A95D2F7C901B80104C061E070E05A -:1044500080E090E00E94FD180E943D1581E001C0BF -:1044600080E01F910F91089580E0089580E0089505 -:10447000CF93C82F8091EA01813079F018F0823013 -:10448000E9F187C0E0910E01F0910F018081813147 -:1044900069F0823209F07FC009C0E0910E01F0910D -:1044A0000F018081813111F0823261F48C2F0E94E2 -:1044B0003422811104C08C2F0E946D211DC081E027 -:1044C00090E01AC08C2F0E943622811114C0C43192 -:1044D00079F048F4CB3079F0C03109F060C082E067 -:1044E0008093EA0108C0C93219F0C83321F057C0DF -:1044F0001092EA0154C081E0817053C0C93289F141 -:1045000018F5C43171F1A8F4C73009F046C08AE04B -:104510008093150194E19093140193E0909313011B -:104520008093120188E08093110188E2809310014A -:1045300034C0CE51C63088F5EC2FF0E0E65DFE4F7A -:1045400080818093E90129C0CE34E9F020F4CB3496 -:1045500021F56AE013C0C13579F0C235F1F461E0AC -:104560000DC08091E901882319F01092E90115C06E -:1045700081E08093EA0115C061E006C08091E90105 -:104580000E94A7200AC06AE08091E9010E941D21D3 -:1045900004C01092EA0180E004C081E002C080E023 -:1045A000ABCFCF910895E1E8F0E08081886080830F -:1045B0008081816080838FB7F89493E09093890025 -:1045C00090ED909388008FBF0895EFE6F0E0808132 -:1045D000826080830895EFE6F0E080818D7F8083A4 -:1045E0000895EFE6F0E0908182E0892780830895C6 -:1045F0001F920F920FB60F9211242F933F934F9358 -:104600005F936F937F938F939F93AF93BF93EF933A -:10461000FF938091EB019091EC0101969093EC0156 -:104620008093EB01811103C082E00E949D09E0911B -:10463000EC01E695E695F0E0EC53FA4FE4918091B9 -:10464000EB018E1303C080E00E949D09FF91EF9162 -:10465000BF91AF919F918F917F916F915F914F919A -:104660003F912F910F900FBE0F901F90189504D07F -:104670006894B1118DC0089570D088F09F5790F064 -:10468000B92F9927B751A0F0D1F0660F771F881F77 -:10469000991F1AF0BA95C9F712C0B13081F077D0DE -:1046A000B1E0089574C0672F782F8827B85F39F07C -:1046B000B93FCCF3869577956795B395D9F73EF4D6 -:1046C00090958095709561957F4F8F4F9F4F08957E -:1046D000E89409C097FB3EF490958095709561959C -:1046E0007F4F8F4F9F4F9923A9F0F92F96E9BB2752 -:1046F0009395F695879577956795B795F111F8CFCE -:10470000FAF4BB0F11F460FF1BC06F5F7F4F8F4F38 -:104710009F4F16C0882311F096E911C0772321F02E -:104720009EE8872F762F05C0662371F096E8862FC6 -:1047300070E060E02AF09A95660F771F881FDAF71D -:10474000880F9695879597F9089557FD9058440FCF -:10475000551F59F05F3F71F04795880F97FB991FE0 -:1047600061F09F3F79F0879508951216130614069D -:10477000551FF2CF4695F1DF08C01616170618062A -:10478000991FF1CF86957105610508940895E89405 -:10479000BB2766277727CB0197F908950BD078C000 -:1047A00069D028F06ED018F0952309F05AC05FC088 -:1047B0001124EECFCADFA0F3959FD1F3950F50E0FF -:1047C000551F629FF001729FBB27F00DB11D639FC3 -:1047D000AA27F00DB11DAA1F649F6627B00DA11D69 -:1047E000661F829F2227B00DA11D621F739FB00D0F -:1047F000A11D621F839FA00D611D221F749F33277F -:10480000A00D611D231F849F600D211D822F762F17 -:104810006A2F11249F5750408AF0E1F088234AF014 -:10482000EE0FFF1FBB1F661F771F881F9150504060 -:10483000A9F79E3F510570F014C0AACF5F3FECF37B -:10484000983EDCF3869577956795B795F795E7954C -:104850009F5FC1F7FE2B880F911D9695879597F95D -:10486000089597F99F6780E870E060E008959FEFF2 -:1048700080EC089500240A941616170618060906F7 -:10488000089500240A9412161306140605060895C6 -:10489000092E0394000C11F4882352F0BB0F40F44E -:1048A000BF2B11F460FF04C06F5F7F4F8F4F9F4F8E -:1048B000089597FB072E16F4009407D077FD09D0D2 -:1048C0000E94732407FC05D03EF4909581959F4F7C -:1048D0000895709561957F4F0895EE0FFF1F059025 -:1048E000F491E02D0994AA1BBB1B51E107C0AA1F3C -:1048F000BB1FA617B70710F0A61BB70B881F991F81 -:104900005A95A9F780959095BC01CD010895F99924 -:10491000FECF92BD81BDF89A992780B50895A8E190 -:10492000B0E042E050E00C94AF24262FF999FECF7E -:1049300092BD81BDF89A019700B4021639F01FBAF2 -:1049400020BD0FB6F894FA9AF99A0FBE0895019611 -:10495000272F0E9496240C949524DC01CB01FC01A6 -:10496000F999FECF06C0F2BDE1BDF89A319600B4C8 -:0E4970000D9241505040B8F70895F894FFCFD3 -:10497E0002209F092D0A0A0AD609A2090101C701C0 -:10498E0028080A03140A3F4D3639850538050205F5 -:10499E00C9045C0475048E04A70401020304050611 -:0449AE0007080900ED -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/msc/compiled.hex b/keyboards/ergodox_ez/keymaps/msc/compiled.hex deleted file mode 100644 index b30b84d29..000000000 --- a/keyboards/ergodox_ez/keymaps/msc/compiled.hex +++ /dev/null @@ -1,1158 +0,0 @@ -:100000000C947A020C94BE020C94BE020C94BE02B4 -:100010000C94BE020C94BE020C94BE020C94BE0260 -:100020000C94BE020C94BE020C94620D0C94340E1F -:100030000C94BE020C94BE020C94BE020C94BE0240 -:100040000C94BE020C943E220C94BE020C94BE0290 -:100050000C94BE020C94D11B0C94BE020C94BE02F4 -:100060000C94BE020C94BE020C94BE020C94BE0210 -:100070000C94BE020C94BE020C94BE020C94BE0200 -:100080000C94BE020C94BE020C94BE020C94BE02F0 -:100090000C94BE020C94BE020C94BE020C94BE02E0 -:1000A0000C94BE020C94BE020C94BE02A10EC30EB0 -:1000B000B10FC30EB10F080F2B0FB10F800F930FAD -:1000C0006212621291129112C712E71218141814D8 -:1000D000F2121814A213A2130914181418141214EB -:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300 -:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0 -:10010000C113CE13D513DC13E6130000F0A12E00AB -:100110004C002A00E100E30000001E00140004006F -:100120001D71E2004D001F001A0016001B00E104C3 -:100130002A00200008000700060050002C002100C3 -:100140001500090019004F004A00220017000A009C -:10015000050000006574500001540000007F00009D -:10016000E3004F000154000000770000E20023008C -:100170001C000B00110000002971240018000D0064 -:10018000100050004B0025000C000E0036005100FE -:100190002800260012000F00370052002B00270015 -:1001A0001300330038714F004E002D0031003478B9 -:1001B000E5000254000001000100010001000100FF -:1001C00000003A001E0220022202010001003B0052 -:1001D0001F0221022302010001003C002F0226021F -:1001E0002F00010001003D00300227023000010015 -:1001F00001003E003102350035020000010001001F -:1002000001000000010000000100010001000000E9 -:100210000100000001003F005200510024020000D4 -:1002200001004000240021001E00010001004100E7 -:10023000250022001F003700010042002600230095 -:10024000200027000100430025022E0231002E006D -:100250000100440045000100010001000000010010 -:100260000100010001000100000001000100010087 -:1002700001000100010001000100F2000100010085 -:10028000F5000100F000F10001000100F4000100A0 -:100290000100F30001000100010001000100010064 -:1002A0000100000001000100010000000100000049 -:1002B0000100010001000000010000000100010038 -:1002C0000100010001000000010001000100010027 -:1002D000A800AC0001000100010001000100AA001B -:1002E000B6000100010001000100A90001000100A9 -:1002F000010001000100AB00010001000100AE009F -:1003000001000100000016034500720067006F0045 -:1003100044006F007800200045005A0000001603DA -:100320004500720067006F0044006F0078002000F5 -:1003300045005A0000000403090409026D0004018D -:1003400000A0FA09040000010301010009211101C4 -:100350000001223F000705810308000A090401008B -:100360000103010200092111010001224D000705CE -:10037000820308000A0904020001030000000921A9 -:10038000110100012236000705830308000A090451 -:1003900003000103000000092111010001223900BE -:1003A000070584031000011201100100000008ED90 -:1003B000FE071301000102000105010906A1010564 -:1003C0000719E029E7150025019508750181020547 -:1003D000081901290595057501910295017503918B -:1003E0000105071900297715002501957875018108 -:1003F00002C005010980A101850216010026B7008F -:100400001A01002AB700751095018100C0050C097A -:1004100001A1018503160100269C021A01002A9CF5 -:1004200002751095018100C005010902A1010901B1 -:10043000A10005091901290515002501950575017A -:10044000810295017503810105010930093115818A -:10045000257F95027508810609381581257F95014C -:1004600075088106050C0A38021581257F950175EE -:10047000088106C0C005010906A101050719E02988 -:10048000E715002501950875018102950175088120 -:100490000105081901290595057501910295017558 -:1004A0000391010507190029FF150025FF95067521 -:1004B000088100C0000000000000000000000001F2 -:1004C0000204060A0F17202C3A4A5D71879DB3C7B4 -:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF -:1004E0003A2C20170F0A0604020100000000000049 -:1004F0000000000011241FBECFEFDAE0DEBFCDBF49 -:1005000004B603FE24C08091FB019091FC01A091F0 -:10051000FD01B091FE018730904BA740B04BB9F47C -:100520001092FB011092FC011092FD011092FE014D -:1005300014BE84B7877F84BF88E10FB6F894809398 -:100540006000109260000FBEE0E0FFE3099511E04B -:10055000A0E0B1E0EAE0F8E402C005900D92A43317 -:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0 -:10057000B107E1F70E94A60A0C9403240C94000032 -:100580001092B9008AE08093B800089594EA90939D -:10059000BC009091BC0097FFFCCF9091B900987F70 -:1005A000983021F0903111F081E008958093BB00E4 -:1005B00084E88093BC008091BC0087FFFCCF8091D1 -:1005C000B900887F883111F0803471F780E0089598 -:1005D00084E98093BC008091BC0084FDFCCF089529 -:1005E0008093BB0084E88093BC008091BC0087FFAF -:1005F000FCCF9091B900987F81E0983209F480E0B7 -:10060000089584E88093BC008091BC0087FFFCCFF4 -:100610008091BB00089580910101811115C080E493 -:100620000E94C6028093010181110CC082E10E94E8 -:10063000F00280930101811105C08FEF0E94F0024A -:10064000809301010E94E80284B1807F84B985B162 -:10065000807F85B98AB1837F8AB98BB1837F8BB95B -:100660003E98469808950E94C604809301010E9416 -:100670000B0380B38C7080BB81B3836F81BBA5E318 -:10068000B1E0E3E4F1E08EE08E0F11921D928E1343 -:10069000FCCF0C94B004BF92CF92DF92EF92FF9206 -:1006A0000F931F93CF93DF9380910101882379F0FB -:1006B000809134018F5F80933401811108C00E94C2 -:1006C000C60480930101811102C00E94580405E311 -:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407 -:1006E000E394F12CC730D10500F58091010181110F -:1006F00064C080E40E94C60280930101811112C08F -:1007000082E10E94F0028093010181110BC0C701B8 -:100710000C2E01C0880F0A94EAF780950E94F0021F -:10072000809301010E94E80248C0CA30A1F028F479 -:10073000C83059F0C93061F005C0CC3089F070F094 -:10074000CD3089F0209A289810C0219A29980DC0A0 -:10075000229A2A980AC0239A2B9807C0529A01C05D -:10076000539A5B9802C03E9A469890EA9A95F1F7A0 -:100770009FB1799902C082E001C080E091709D250F -:10078000982B7C9902C084E001C080E0892B7D9980 -:1007900002C038E001C030E0832B7E9902C020E126 -:1007A00001C020E0822B9FB19095991F9927991F36 -:1007B0009295990F907E892B0FC080910101811134 -:1007C00049C080E40E94C60280930101882379F128 -:1007D000B12C0E94E8028B2DF8019081981719F036 -:1007E0008083C09200010E940B0321960F5F1F4F70 -:1007F000CE30D10509F076CF80910001882361F1D8 -:10080000815080930001882339F08FE99FE00197A0 -:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F -:10082000CF01825F91919D938E13FCCF15C083E120 -:100830000E94F002809301018111CACF81E40E94DD -:10084000C602809301018111C3CF0E940103B82E1B -:10085000B094BFCF80E0C0CF0E94560481E0DF910A -:10086000CF911F910F91FF90EF90DF90CF90BF90AD -:100870000895E82FF0E0ED5BFE4F80810895089524 -:100880000F931F93CF93DF93C3E4D1E010E00C2FBD -:10089000025F899190E00E94F71A180F0C13F9CFAC -:1008A000812FDF91CF911F910F9108950C94260510 -:1008B00056985E9825982D9826982E9827982F98C8 -:1008C0008FEF90E0909389008093880090938B0045 -:1008D00080938A0090938D0080938C00259A2D9AA6 -:1008E0002FEF80E792E0215080409040E1F700C078 -:1008F0000000269A2E9A2FEF80E792E02150804048 -:100900009040E1F700C00000279A2F9A2FEF80E770 -:1009100092E0215080409040E1F700C0000025980F -:100920002D982FEF80E792E0215080409040E1F732 -:1009300000C0000026982E982FEF80E792E021500B -:1009400080409040E1F700C0000027982F9856980B -:100950005E9825982D9826982E9827982F98089578 -:1009600089EA8093800089E08093810024982C9804 -:100970003F988AB18F748AB96E98479A8BB1806B11 -:100980008BB9769A0E9458040C94250580E28093D6 -:1009900001018091510181110EC00E94C00281E0CD -:1009A000809351012FEF83ED90E3215080409040E0 -:1009B000E1F700C0000080E40E94C60280930101BC -:1009C00081112EC00E94F00280930101811128C084 -:1009D0000E94F00280930101811122C08FE30E94E6 -:1009E000F0028093010181111BC00E94E80280E4A3 -:1009F0000E94C60280930101811112C08CE00E9406 -:100A0000F0028093010181110BC00E94F0028093DB -:100A10000101811105C08FE30E94F0028093010162 -:100A20000E94E80280910101089561110BC0FC0150 -:100A30008281882321F085EE0E94061103C085EE95 -:100A40000E94CE1180E090E0089508956091BD016C -:100A50007091BE018091BF019091C0010E94031B63 -:100A600056985E9825982D9826982E9827982F9816 -:100A7000813019F0823021F00895259A2D9A089539 -:100A8000269A2E9A089581E0089581E008950C94A5 -:100A9000450508950F931F93CF93DF938C01FC01BD -:100AA000C081D181CE010E947C19BE010E94F30554 -:100AB000EC01B8010E944705882309F48DC0F801B4 -:100AC0008281882309F44AC080915D0181111FC091 -:100AD000C431F0E5DF0709F051C00E94490581E00B -:100AE00080935D010E949B1B90935C0180935B014E -:100AF0001092540110925601109255011092580113 -:100B00001092570110925A011092590165C08091BC -:100B10005B0190915C010E94A71B883C910570F4D9 -:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB -:100B3000D183C0838F5F809354014EC0C43880E559 -:100B4000D80721F0C538D04501F13AC0F8018281BB -:100B5000882341F01092520182E01EC0C438E0E5C3 -:100B6000DE0759F580915201811106C086E20E948C -:100B7000061186E20E94CE1182E01CC0C438F0E566 -:100B8000DF0741F3C538D045D9F4F80182818823C5 -:100B900031F01092530180E20E941D121DC080911D -:100BA0005301811106C087E20E94061187E20E946C -:100BB000CE1180E20E9424120FC0C538D04529F31F -:100BC00081E08093520180935301C801DF91CF915E -:100BD0001F910F910C94430580E0DF91CF911F91FD -:100BE0000F910895089596E0799FF001112494E5FE -:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F -:100C0000E25FFE4F859194910895880F991FFC0132 -:100C1000E657F040859194910895880F991FFC0143 -:100C2000E65FFE4F8591949108950F931F93CF93A4 -:100C3000DF93EC01811520E3920750F5C11580E2A6 -:100C4000D80708F0C3C0CB3BD10590F4C83AD10512 -:100C500008F06AC0C53AD10508F05BC0C430D105C0 -:100C600008F0D0C1219709F0CAC101E010E00AC222 -:100C7000CF3FD10511F008F0C5C1C03FD10508F044 -:100C8000A2C0CE01805E9109089708F4BBC1B7C12C -:100C9000C13090E5D90709F4A2C020F5C0318FE436 -:100CA000D80770F4C11590E4D90708F094C0C115B5 -:100CB00021E3D20708F0A3C1DD278E01106CE2C149 -:100CC000C115D04509F09BC10E9483148FEF94E3B6 -:100CD0002CE0815090402040E1F700C000000E94CD -:100CE000F61BD0C1C11597E5D90758F4C03121E5ED -:100CF000D20708F01CC1C43180E5D80708F475C0DC -:100D00007EC1CE0190578115904108F078C1DF7007 -:100D100073C1C53AD10509F477C1C63AD10509F0C6 -:100D200076C102E810E4AEC1C83AD10509F472C137 -:100D3000C93AD10509F471C1CA3AD10509F470C1A3 -:100D4000CB3AD10509F46FC1CC3AD10509F46EC193 -:100D5000CD3AD10509F46DC1C03BD10509F46CC190 -:100D6000CE3AD10509F46BC1CF3AD10509F46AC175 -:100D7000C13BD10509F469C1C23BD10509F468C181 -:100D8000C33BD10509F467C1C43BD10509F466C171 -:100D9000C53BD10509F465C1C63BD10509F464C161 -:100DA000C73BD10509F463C1C83BD10509F462C151 -:100DB000C93BD10509F461C1CA3BD10509F460C141 -:100DC00000E014E45FC18E0110655CC1CE019F702C -:100DD0000E940D0658C1DF708E01106A53C18091C8 -:100DE000DA0181608093DA014DC10E949B1D81115F -:100DF00002C00E94811D0E94B81D90E09093FB01EB -:100E00008093FA01C23080E5D80721F48091FA017D -:100E1000816086C0C43090E5D90721F48091FA0141 -:100E200082607EC0C63020E5D20721F48091FA01AD -:100E3000846076C0C83080E5D80719F48091FA0143 -:100E400027C0CA3090E5D90721F48091FA0180616A -:100E500067C0CC3020E5D20721F48091FA0180628E -:100E60005FC0CE3080E5D80721F48091FA0180641C -:100E700057C0C03190E5D90721F48091FA0180680C -:100E80004FC0C23120E5D20729F48091FA01846075 -:100E9000886046C0C33080E5D80721F48091FA010C -:100EA0008E7F3EC0C53090E5D90721F48091FA01CC -:100EB0008D7F36C0C73020E5D20721F48091FA013A -:100EC0008B7F2EC0C93080E5D80719F48091FA01D4 -:100ED00026C0CB3090E5D90721F48091FA018F7EAE -:100EE0001FC0CD3020E5D20721F48091FA018F7D1B -:100EF00017C0CF3080E5D80721F48091FA018F7BAD -:100F00000FC0C13190E5D90721F48091FA018F77A4 -:100F100007C0C331D04531F48091FA018B7F877FC0 -:100F20008093FA018091FA010E94BC1DABC08D2F05 -:100F300099278F70992781309105D9F49E012370EC -:100F4000332702C0880F991F2A95E2F79C688E010B -:100F500044E0000F111F4A95E1F700271370802B22 -:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA -:100F70002FC08230910531F4DC2FCC278E01016F18 -:100F8000106A80C08330910569F4CE01837099277F -:100F900001E010E002C0000F111F8A95E2F7C801BE -:100FA0009C680FC084309105B9F4CE0183709927F5 -:100FB00001E010E002C0000F111F8A95E2F7C8019E -:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029 -:100FD0008C010C2B1D2B56C08530910531F4DC2F74 -:100FE000CC278E01046F106A4DC0069709F04AC0E5 -:100FF000CF71DD27DC2FCC278E01106243C000E0CB -:1010000010E040C08E013EC001E810E43BC003E8A0 -:1010100010E438C002EE14E435C009EE14E432C026 -:101020000AEE14E42FC005EB14E42CC006EB14E424 -:1010300029C007EB14E426C00CEC14E423C00DEC2B -:1010400014E420C003E815E41DC00AE815E41AC042 -:1010500002E915E417C004E915E414C001E216E43E -:1010600011C003E216E40EC004E216E40BC005E270 -:1010700016E408C006E216E405C007E216E402C062 -:101080000AE216E4C801DF91CF911F910F910895F4 -:1010900096E0799FF001112494E5899FE00DF11D00 -:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149 -:1010B0009491803E9105E0F4803C910558F5813390 -:1010C000910509F46FC048F48932910509F463C0B1 -:1010D0008A32910509F46DC072C089339105E9F037 -:1010E00082389105D1F08533910509F44DC067C070 -:1010F000833E910581F138F4803E9105B9F0823E3E -:101100009105D9F05CC0863E910561F1873E91055D -:10111000A1F155C00E94050608952091FA0120FD15 -:1011200002C021FF4CC080EE90E049C08091FA01DE -:1011300080FFF9CF89E390E042C08091FA0182FFFD -:101140000EC08091FA0184FF03C080E090E037C0B8 -:1011500083EE90E034C08091FA0182FFF2CF82EEFC -:1011600090E02DC08091FA0183FF0BC08091FA01BD -:1011700084FDEBCF87EE90E022C08091FA0183FFDF -:10118000F5CF86EE90E01BC08091FA0185FF07C085 -:1011900089E290E014C08091FA0185FFF9CF85E3E0 -:1011A00090E00DC08091FA0186FF07C08AE290E0CE -:1011B00006C08091FA0186FFF9CF81E390E00E949A -:1011C0001506089508950C94E20880916E01089523 -:1011D000CF93DF9300D01F92CDB7DEB79C018091F3 -:1011E000F101843019F593E099833B832A8390932E -:1011F000E9008FEF9091E800815095FD06C095EDD4 -:101200009A95F1F700008111F5CF8091E80085FFF4 -:101210000DC040E050E063E070E0CE0101960E9416 -:10122000520B8091E8008E778093E8000F900F902A -:101230000F90DF91CF910895CF93DF9300D01F924D -:10124000CDB7DEB72091F101243021F522E02983CA -:101250009B838A8383E08093E9008FEF9091E8007D -:10126000815095FD06C095ED9A95F1F7000081112A -:10127000F5CF8091E80085FF0DC040E050E063E0CD -:1012800070E0CE0101960E94520B8091E8008E77AB -:101290008093E8000F900F900F90DF91CF91089509 -:1012A0002091F1012430F1F422E02093E9002FEFA6 -:1012B0003091E800215035FD06C035ED3A95F1F743 -:1012C00000002111F5CF2091E80025FF0BC040E080 -:1012D00050E065E070E00E94520B8091E8008E774C -:1012E0008093E8000895CF93DF93EC019091F10192 -:1012F000943009F046C080910C018823D9F0809188 -:101300000D018823B9F09093E9008FEF9091E800E8 -:10131000815095FD06C095E19A95F1F70000811185 -:10132000F5CF8091E80085FF2CC040E050E060E1FF -:1013300070E017C081E08093E9008FEF9091E800A2 -:10134000815095FD06C095ED9A95F1F70000811149 -:10135000F5CF8091E80085FF14C040E050E068E0E0 -:1013600070E0CE010E94520B8091E8008E7780934E -:10137000E80080E1FE01AEE5B1E001900D928A95B2 -:10138000E1F7DF91CF9108958091F001811109C0BB -:101390000E94E70C0E94440D8091E20084608093DB -:1013A000E20008951092F001089508950C942B2204 -:1013B0000E948C1B0E9431220E94EA0F0C94E308C9 -:1013C00042E061EC81E00E94610C42E061EC82E06D -:1013D0000E94610C42E061EC83E00E94610C42E1FA -:1013E00061EC84E00C94610C8091F301833009F48A -:1013F00055C030F4813071F0823009F48EC0089508 -:101400008A3009F47AC08B3009F460C0893009F061 -:101410009CC020C08091F201813A09F096C0809171 -:10142000E800877F8093E8008091F6019091F701B2 -:10143000892B21F460E18EE591E003C060E080E05B -:1014400090E070E00E949D0B8091E8008B77809384 -:10145000E80008958091F201813209F076C0809110 -:10146000F6019091F701009719F0039709F06DC00C -:101470008091E800877F8093E8008091E80082FDFA -:1014800005C08091F1018111F8CF5FC08091F1001A -:1014900080936E018091E8008B7753C08091F201B8 -:1014A000813A09F052C08091F6019091F701892BA1 -:1014B00009F04BC08091E800877F8093E80080911D -:1014C000E80080FFFCCF80910C0136C08091F201D2 -:1014D0008132D9F58091F6019091F701892BA9F518 -:1014E0008091E800877F8093E8000E94960C8091AD -:1014F000F40180930C010C9483148091F2018132E9 -:1015000021F58091E800877F8093E8000E94960C87 -:101510008091F50180936F0108958091F201813AE5 -:10152000A1F48091E800877F8093E8008091E80033 -:1015300080FFFCCF80916F018093F1008091E800E3 -:101540008E778093E8000C94960C089584B7877F7B -:1015500084BF88E10FB6F894809360001092600019 -:101560000FBE90E080E80FB6F894809361009093EE -:1015700061000FBE0E9439100E94E70C0E94440DCA -:101580008091E20084608093E20078940E94CA0F08 -:101590000E943B1082E091E00E94E50F0E94192218 -:1015A0008091F101853069F40E94531B8091EF0115 -:1015B0008823B1F30E947E1B882391F30E943C0B89 -:1015C000EFCF0E944110ECCF292F33272330310574 -:1015D000C9F064F42130310581F02230310509F081 -:1015E00043C08DE690E02AE333E042C0213231056A -:1015F000F1F02232310541F137C082E190E027EA73 -:1016000033E036C099278130910541F08230910551 -:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4 -:1016200002C0E6E0F3E0849190E09F0121C06430C5 -:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5 -:10164000318189E090E014C0643070F470E0FB01F7 -:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47 -:10166000FE4F808190E004C080E090E020E030E018 -:10167000FA0131832083089580E189BD82E189BD2B -:1016800009B400FEFDCF8091D8008F7D8093D800F3 -:101690008091E00082608093E0008091E00081FD15 -:1016A000FCCF0895CF92DF92EF92FF920F931F939A -:1016B000CF93DF93EC018B016A010E94B50C81117D -:1016C00033C0C114D10439F0F60180819181081B27 -:1016D000190BC80FD91FE12CF12C0115110519F1B7 -:1016E0008091E80085FD16C08091E8008E77809398 -:1016F000E800C114D10449F0F60180819181E80E1F -:10170000F91EF182E08285E00FC00E94B50C8823AB -:1017100021F30AC089918093F10001501109FFEF74 -:10172000EF1AFF0ADACF80E0DF91CF911F910F917E -:10173000FF90EF90DF90CF9008952091F8013091C5 -:10174000F9012617370748F06115710539F4209122 -:10175000E8002E772093E80001C0B90140E0611550 -:101760007105A9F12091F101222309F443C025302C -:1017700009F442C02091E80023FD40C02091E80018 -:1017800022FD32C02091E80020FFE9CF4091F30014 -:101790002091F20030E0342BFC01CF01611571057E -:1017A00059F02830310540F481918093F100615067 -:1017B00071092F5F3F4FF1CF41E02830310509F02B -:1017C00040E02091E8002E772093E800C8CF411137 -:1017D000C9CF0AC08091F101882361F0853061F0A2 -:1017E0008091E80083FD0AC08091E80082FFF2CF7B -:1017F00080E0089582E0089583E0089581E00895EF -:101800002091F8013091F9012617370748F061154A -:10181000710539F42091E8002E772093E80001C08B -:10182000B901FC0120E06115710591F18091F10190 -:10183000882309F440C0853009F43FC08091E80056 -:1018400083FD3DC08091E80082FD2FC08091E800BB -:1018500080FFE9CF2091F3008091F20090E0922B7D -:101860006115710559F08830910540F42491209359 -:10187000F1003196615071090196F2CF21E008978D -:1018800009F020E08091E8008E778093E800CBCFCC -:101890002111CCCF0AC08091F101882361F08530FD -:1018A00061F08091E80083FD0AC08091E80082FF2A -:1018B000F2CF80E0089582E0089583E0089581E00A -:1018C0000895982F973058F59093E900981739F0BC -:1018D0007091EC002091ED005091F00003C0242F96 -:1018E000762F50E021FF19C03091EB003E7F3093FE -:1018F000EB003091ED003D7F3093ED003091EB0037 -:1019000031603093EB007093EC002093ED00509326 -:10191000F0002091EE0027FF07C09F5FD3CF8F70AC -:101920008093E90081E0089580E008958091F201BC -:1019300087FF11C08091E80082FD05C08091F10110 -:101940008111F8CF11C08091E8008B770BC0809196 -:10195000F101882349F08091E80080FFF8CF809161 -:10196000E8008E778093E80008952091E40030919C -:10197000E50095E64091EC00842F817040FF22C085 -:101980008091E80080FD1CC08091F101882391F0D6 -:10199000853091F08091EB0085FD10C04091E4000E -:1019A0005091E5004217530729F39A01915011F71E -:1019B00084E0089582E0089583E0089581E0089529 -:1019C00080E008954091E80042FFDECF08950E9434 -:1019D000550D0E945D0DE0EEF0E080818160808316 -:1019E000E8EDF0E080818F77808319BCA7EDB0E04F -:1019F0008C918E7F8C9380818F7E80831092F001FA -:101A000008950F931F93CF93DF930E94550D0E946B -:101A10005D0DC8EDD0E088818F77888388818068EC -:101A2000888388818F7D888319BC1092F101109280 -:101A3000ED011092EF011092EE0100EE10E0F801BE -:101A400080818B7F808388818160888342E060E031 -:101A500080E00E94610CE1EEF0E080818E7F808367 -:101A6000E2EEF0E080818160808380818860808305 -:101A7000F80180818E7F8083888180618883DF91F7 -:101A8000CF911F910F910895E8EDF0E080818F7E56 -:101A90008083E7EDF0E080818160808384E082BF15 -:101AA00081E08093F0010C94010DE8EDF0E080817D -:101AB0008E7F80831092E20008951092DA001092D7 -:101AC000E10008951F920F920FB60F9211242F93E9 -:101AD0003F934F935F936F937F938F939F93AF93B6 -:101AE000BF93EF93FF938091E10082FF0BC0809141 -:101AF000E20082FF07C08091E1008B7F8093E100CC -:101B00000E94C90F8091DA0080FF1FC08091D80029 -:101B100080FF1BC08091DA008E7F8093DA00809175 -:101B2000D90080FF0DC080E189BD82E189BD09B483 -:101B300000FEFDCF81E08093F1010E94C40905C041 -:101B400019BC1092F1010E94D2098091E10080FF3E -:101B500019C08091E20080FF15C08091E2008E7F65 -:101B60008093E2008091E20080618093E2008091A6 -:101B7000D80080628093D80019BC85E08093F10181 -:101B80000E94D6098091E10084FF30C08091E2007C -:101B900084FF2CC080E189BD82E189BD09B400FECB -:101BA000FDCF8091D8008F7D8093D8008091E10097 -:101BB0008F7E8093E1008091E2008F7E8093E2002F -:101BC0008091E20081608093E2008091ED018823A2 -:101BD00011F084E007C08091E30087FD02C081E03E -:101BE00001C083E08093F1010E94D8098091E10057 -:101BF00083FF29C08091E20083FF25C08091E1002E -:101C0000877F8093E10082E08093F1011092ED01E3 -:101C10008091E1008E7F8093E1008091E2008E7FD1 -:101C20008093E2008091E20080618093E20042E0D4 -:101C300060E080E00E94610C8091F00088608093F9 -:101C4000F0000E94D509FF91EF91BF91AF919F9154 -:101C50008F917F916F915F914F913F912F910F9055 -:101C60000FBE0F901F9018951F920F920FB60F92F4 -:101C700011242F933F934F935F936F937F938F9391 -:101C80009F93AF93BF93CF93DF93EF93FF93C09155 -:101C9000E900CF708091EC00D82FD17080FDD0E8A2 -:101CA0001092E9008091F000877F8093F000789493 -:101CB0000E94780E1092E9008091F0008860809375 -:101CC000F000CD2BCF70C093E900FF91EF91DF9131 -:101CD000CF91BF91AF919F918F917F916F915F91C4 -:101CE0004F913F912F910F900FBE0F901F9018951D -:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3 -:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115 -:101D1000F10091938E13FBCF0E94F4098091E800AB -:101D200083FF1FC18091F2019091F301492F50E090 -:101D30004A30510508F015C1FA01EA5AFF4F0C94D8 -:101D4000B323803881F0823809F00BC18091F6010D -:101D50008F708093E9008091EB0085FB882780F9E4 -:101D60001092E90006C08091EE019091EF0191116F -:101D700082609091E800977F9093E8008093F10053 -:101D80001092F100C8C0282F2D7F09F0EAC08823E7 -:101D900019F0823061F0E5C08091F401813009F0E2 -:101DA000E0C0933009F080E08093EF012BC0809178 -:101DB000F401811127C08091F6018F7009F4D1C020 -:101DC0008093E9002091EB0020FF1CC0933021F4A8 -:101DD0008091EB00806214C09091EB009061909331 -:101DE000EB0021E030E0A90102C0440F551F8A95A5 -:101DF000E2F74093EA001092EA008091EB008860DD -:101E00008093EB001092E9008091E800877F86C004 -:101E10008111A7C01091F4011F778091E3008078B1 -:101E2000812B8093E3008091E800877F8093E80016 -:101E30000E94960C8091E80080FFFCCF8091E30027 -:101E400080688093E300111102C082E001C083E04A -:101E50008093F10186C08058823008F082C0809162 -:101E6000F4019091F5018C3D53E0950779F583E0FD -:101E70008A838AE289834FB7F894DE01139620E0C3 -:101E80003EE051E2E32FF0E050935700E49120FF51 -:101E900003C0E295EF703F5FEF708E2F90E0EA3065 -:101EA00010F0C79601C0C0968D939D932F5F24318B -:101EB00049F74FBF8091E800877F8093E8006AE28E -:101EC00070E0CE0101960E949D0B14C0AE014F5FE1 -:101ED0005F4F6091F6010E94E40ABC01009709F48B -:101EE00040C09091E800977F9093E80089819A81A3 -:101EF0000E94000C8091E8008B778093E80031C04D -:101F0000803879F58091E800877F8093E8008091A0 -:101F1000ED018093F1008091E8008E778093E800D6 -:101F20000E94960C1EC081111CC09091F401923049 -:101F3000C0F48091E800877F8093E8009093ED01E2 -:101F40000E94960C8091ED01811106C08091E30002 -:101F500087FD02C081E001C084E08093F1010E940E -:101F6000E0098091E80083FF0AC08091E800877F44 -:101F70008093E8008091EB0080628093EB00AA964A -:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A -:101F900008950895CF938091F1018823A1F0C09115 -:101FA000E900CF709091EC00892F817090FD80E85E -:101FB000C82B1092E9008091E80083FD0E94780E02 -:101FC000CF70C093E900CF910895909375018093ED -:101FD00074010895E0917401F0917501309721F03A -:101FE0000190F081E02D099480E00895E091740162 -:101FF000F0917501309721F00280F381E02D099472 -:102000000895E0917401F0917501309721F00480FA -:10201000F581E02D099408952091720130917301AA -:102020008217930771F09093730180937201E0918E -:102030007401F0917501309721F00680F781E02D51 -:1020400009940895209170013091710182179307CE -:1020500071F09093710180937001E0917401F0919F -:102060007501309721F00084F185E02D09940895E1 -:1020700008950C9438100E94921B0E9433030C9414 -:10208000541C9F92AF92BF92CF92DF92EF92FF9239 -:102090000F931F93CF93DF9300D000D000D0CDB724 -:1020A000DEB70E944B030DE010E0AA24A394B12CEC -:1020B000902E802F0E943904980129583E4F6901C3 -:1020C000F901F080F826A1F40150110988F78FEF8B -:1020D00089838A831B820E949B1B8160782F9D834A -:1020E0008C8349815A816B818D810E94D8102FC0C9 -:1020F0009091DA0191FF04C08E830E943F048E818B -:1021000025E030E0A501022E01C0440F0A94EAF751 -:10211000E42E4F21C1F029839A828E2191E009F4A7 -:1021200090E09B830E949B1B8160782F9D838C8312 -:1021300049815A816B818D810E94D810F60180817E -:10214000E826E08204C021503109E0F6BDCF0E94AC -:102150003B1F109176010E94EA0F1817B9F00E94F8 -:10216000EA0F8093760126960FB6F894DEBF0FBE75 -:10217000CDBFDF91CF911F910F91FF90EF90DF9036 -:10218000CF90BF90AF909F900C94E30826960FB627 -:10219000F894DEBF0FBECDBFDF91CF911F910F919D -:1021A000FF90EF90DF90CF90BF90AF909F900895F9 -:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82 -:1021C0000FBECDBF4F83588769877A878B87DE0123 -:1021D000119686E0FD0111928A95E9F785E0FE01EE -:1021E000379601900D928A95E1F749815A816B816A -:1021F0007C818D819E810E9421172B960FB6F894C9 -:10220000DEBF0FBECDBFDF91CF910895CF9388235E -:1022100009F4C2C0C82F823859F40E94EA0F81FD28 -:10222000BBC089E30E94FB190E94C81A89E30CC055 -:10223000833879F40E94EA0F80FDAEC083E50E94E6 -:10224000FB190E94C81A83E50E943D1ACF910C9495 -:10225000C81A843859F40E94EA0F82FD9DC087E4B1 -:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6 -:10227000813A48F48C2F0E947E2181118DC08C2FD1 -:102280000E94FB19E3CF80E28C0F883048F4C770BE -:1022900081E001C0880FCA95EAF70E94811AD6CF63 -:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB -:1022B00083E890E005C081E890E002C082E890E009 -:1022C000CF910C940C1088E58C0F833108F064C01A -:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118 -:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186 -:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106 -:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173 -:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB -:1023200038C082EE90E035C089EE90E032C08AEE8F -:1023300090E02FC085EB90E02CC086EB90E029C0A8 -:1023400087EB90E026C08CEC90E023C08DEC90E011 -:1023500020C083E891E01DC08AE891E01AC082E9BC -:1023600091E017C084E991E014C081E292E011C0CD -:1023700083E292E00EC084E292E00BC085E292E03C -:1023800008C086E292E005C087E292E002C08AE2DD -:1023900092E0CF910C942210CF910895882309F4F4 -:1023A0004BC0823859F40E94EA0F81FF45C089E38F -:1023B0000E94FB190E94C81A89E30CC0833871F48B -:1023C0000E94EA0F80FF38C083E50E94FB190E943B -:1023D000C81A83E50E943D1A0C94C81A843859F42F -:1023E0000E94EA0F82FF28C087E40E94FB190E9426 -:1023F000C81A87E4EFCF9CEF980F913A58F390E218 -:10240000980F983050F4877091E001C0990F8A9529 -:10241000EAF7892F0E94871ADFCF9BE5980F933048 -:1024200020F480E090E00C940C10885A833120F462 -:1024300080E090E00C9422100895882321F00E94FF -:10244000811A0C94C81A0895882321F00E94871AD3 -:102450000C94C81A08957F928F929F92AF92BF9268 -:10246000CF92DF92EF92FF920F931F93CF93DF9360 -:102470001F92CDB7DEB77C01C62E772EFC010581F9 -:1024800002950F70128111110E949E1A0E94F41978 -:10249000882379F0112369F080E28C0D883048F0B0 -:1024A00082E00E94DD190E94F41991E0D82ED9260D -:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C -:1024C0000C94B323872D807F072D0F70882311F084 -:1024D0000295007F112389F0002309F490C180E266 -:1024E0008C0D883020F4802F0E94811A03C0802F29 -:1024F0000E94911A0E94C81A82C18C2D0E94CE118E -:10250000002309F495C180E28C0D883020F4802FDF -:102510000E94871A03C0802F0E94971A0E94C81A2F -:1025200087C1972D907F872D8F70903211F0829503 -:10253000807FCC2021F0F1E0CF16B1F01EC0112336 -:1025400049F0002309F414C1013009F011C10E94BF -:10255000B11A6EC1002319F0013009F469C18983F1 -:102560000E94B41A89810AC1112321F0023008F0B7 -:102570005FC1FEC001115CC101C1112321F0002324 -:1025800009F4F6C03CC1002309F4F8C03EC1872D10 -:1025900086958695837090E0009719F0019761F019 -:1025A00047C1112321F08C2D972D937002C080E03C -:1025B00090E00E940C103CC1112321F08C2D972D2E -:1025C000937002C080E090E00E94221031C18C2DF7 -:1025D000112319F00E94431E02C00E94AB1E0E94EC -:1025E000301F26C1872D837009F052C0111120C100 -:1025F0008C2D829586958770880F880F9C2D9F70F3 -:10260000892E912CA12CB12C082E04C0880C991C69 -:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041 -:1026200020E030E0B901A80104C0440F551F661F27 -:10263000771F8A95D2F7CB01BA0160957095809586 -:10264000909503C060E070E0CB01272D269526957C -:10265000237030E02230310569F02330310589F0F4 -:10266000682979298A299B292130310571F00E9436 -:102670006918DEC0682979298A299B290E94851852 -:10268000D7C00E946918C501B4010E944D18D0C07E -:10269000112319F0872D817001C08695882309F4D4 -:1026A000C7C08C2D829586958770880F880F9C2DCA -:1026B0009F70892E912CA12CB12C082E04C0880C5F -:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC -:1026D00010E020E030E0B901A80104C0440F551F0C -:1026E000661F771F8A95D2F7CB01BA016095709566 -:1026F0008095909503C060E070E0CB01272D269572 -:1027000026952370422F50E04230510569F0433046 -:10271000510589F0682979298A299B294130510579 -:1027200071F00E94431984C0682979298A299B295C -:102730000E945F197DC00E944319C501B4010E9427 -:10274000271976C08C2D90E0FC01E05EF109E5319F -:10275000F10508F050C0E059FF4F0C94B3230C2D45 -:102760000F70872D8F71112331F00E94C018802FB8 -:102770000E941D125DC00E94E118802F0E94241249 -:1027800057C0112339F0011153C0872D8F710E945A -:1027900006194EC0023008F04BC0F7CF112339F0B4 -:1027A000872D8F710E94C01843C01123C9F3872D54 -:1027B0008F710E94E1183CC0112329F0872D8F7181 -:1027C0000E94AB1835C00E94A11832C0112351F0ED -:1027D000172D1F71812F0E94C01863E0812F0E9466 -:1027E000D41926C081E00E94DD19023008F182E090 -:1027F0000E94DD191DC0112331F0002389F28C2DB8 -:102800000E94061115C0002391F28C2D0E94CE115A -:102810000FC0472D4F706C2DC7010E9415050E94F7 -:10282000C51706C0472D4F706C2DC7010E94F205D9 -:10283000DD20F9F00E94D01980FD1BC0F701128243 -:102840000E94CA190E94C018C7010E9448140E9421 -:10285000CA190F90DF91CF911F910F91FF90EF90C8 -:10286000DF90CF90BF90AF909F908F907F900C940F -:10287000E1180F90DF91CF911F910F91FF90EF9092 -:10288000DF90CF90BF90AF909F908F907F900895F2 -:102890000F931F93CF93DF93EC01888199812B8154 -:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B -:1028B0000E944A05882371F0688179818A810E948B -:1028C000C6198C010E947B190E944218B801CE01E2 -:1028D0000E942B12DF91CF911F910F9108950E94BA -:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471 -:1028F000E11F0E94301F80E090E00E940C1080E0F9 -:1029000090E00C9422100E948E1A0C946F140E9476 -:10291000BB19292F22952F7030E02C3031054CF453 -:102920002A3031056CF42250310922303105A8F4E7 -:1029300007C02C30310569F02F30310551F00DC042 -:10294000803F69F018F4803E40F409C0843F29F4C8 -:1029500006C093FB882780F9089580E0089581E000 -:102960000895CF93DF9300D000D01F92CDB7DEB78C -:102970000F900F900F900F900F90DF91CF910895CF -:10298000CF93DF9300D000D000D0CDB7DEB726962E -:102990000FB6F894DEBF0FBECDBFDF91CF91089583 -:1029A0001F93CF93DF93C091850116E0809186013C -:1029B000C81799F0D0E01C9FF0011D9FF00D112465 -:1029C000E957FE4F408151816281738184819581F5 -:1029D0000E94C0142196C770E9CFDF91CF911F915B -:1029E00008954091B7015091B8016091B90170917B -:1029F000BA018091BB019091BC010C94C0148091EC -:102A0000BC0182958F7009F054C08091B901882370 -:102A100009F44FC080918501A09186016091B701B2 -:102A20007091B8014091BA015091BB01B6E08A178C -:102A300009F43FC090E041155105C1F17F3F11F409 -:102A40006F3FA1F1B89FF001B99FF00D1124E95734 -:102A5000FE4F218172132AC02081621327C0228178 -:102A6000211124C0238134812417350710F421500B -:102A70003109241B350B283C3105C0F42091BC01E1 -:102A80002F7020612093BC0126E0289FF001299F30 -:102A9000F00D1124E457FE4F80818F708061808398 -:102AA00087EB91E00E9448140C94D0140196877033 -:102AB000BECF0895CF92DF92EF92FF920F931F93B4 -:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32 -:102AD0000FBECDBF8C0185E0F801DE011D9601908F -:102AE0000D928A95E1F7D8014C9111965C9111975E -:102AF00012966C9112971396CD90DC9014973091AA -:102B0000B7017091B8018091BA019091BB01009713 -:102B100009F46BC17F3F19F43F3F09F466C1E090AF -:102B2000B901EE2009F4C0C02091BC01C816D90635 -:102B300028F0F601E81BF90BCF0104C080959095B1 -:102B40008C0D9D1DFF24F394883C910578F0F12CA9 -:102B5000207F09F0C6C07C2DD98AC88A89890E9445 -:102B6000B11487EB91E00E944814B1C0822F807F9E -:102B700009F046C0751314C0341312C0611110C09F -:102B80002F7020612093BC010E94F11487EB91E02B -:102B90000E9448148091BC01D80115968C932EC0D8 -:102BA000CD2819F15F3F11F44F3FF9F0F62E611176 -:102BB0001CC0809185012091860136E0821709F4BE -:102BC0005AC090E0389FF001399FF00D1124E95769 -:102BD000FE4F7181571306C07081471303C0728185 -:102BE000711103C001968770E9CFF62E662309F4B0 -:102BF00018C18091BC0181608093BC01F12C11C18E -:102C0000751308C0341306C0611104C08091BC0163 -:102C1000D801C3C04D875E878D859E856A8B0E94D3 -:102C200087146A898823E1F16623D1F12091BC01E0 -:102C3000822F82958F7090E0029774F08091B70197 -:102C40009091B80198878F831986DB86CA862C8776 -:102C5000CE0107960E94481486E0F801A7EBB1E088 -:102C600001900D928A95E1F70E94FF140E94F114E1 -:102C7000FF24F394D6C04D875E878D859E850E9484 -:102C8000BB19292F22952F7030E0223031050CF02E -:102C9000BCC09F7009F0B6C0805E883008F4C1C027 -:102CA000C8010E944814E4CFC816D90608F453C0DE -:102CB000F601E81BF90BCF01883C910508F450C0E0 -:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E -:102CD000F1E086E0DF011D928A95E9F70E94F11488 -:102CE000A0C0751314C0341312C0611110C08091BC -:102CF000BC01F8018583C8010E94481486E0E7EB17 -:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C -:102D10005E878D859E856A8B0E9487146A898823C9 -:102D200009F4BECF662309F4BBCF2091BC01822FEA -:102D300082958F7090E002970CF48ECF8091B7014E -:102D40009091B8019A8389831B82DD82CC822E8385 -:102D5000CE0101967FCF809590958C0D9D1DACCFB7 -:102D6000F62E662309F49CCF75132EC034132CC0A5 -:102D70002091BC0120FD1FC0822F82958F70D9F059 -:102D8000D80115962C9315978F3049F08F5F982FA7 -:102D90009295907F822F8F70892B15968C93C80106 -:102DA0000E94481486E0F801A7EBB1E001900D9273 -:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7 -:102DC0000D928A95E1F72DC04D875E878D859E8592 -:102DD0000E948714811140CF8091BC018160809353 -:102DE000BC01C8010E9448141CC0662309F458CFD6 -:102DF0004D875E878D859E850E948714882309F400 -:102E00004FCF2ACF811148CF0CC0243031050CF0B0 -:102E100047CF9F7009F440CFF8019581907F09F06A -:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D -:102E3000DF91CF911F910F91FF90EF90DF90CF9096 -:102E400008951F93CF93DF93CDB7DEB72C970FB6BE -:102E5000F894DEBF0FBECDBF4F83588769877A874E -:102E60008B879C87CE0107960E945A15882369F0AC -:102E70008F8198852A853B85232BF1F19F3F09F0AF -:102E800063C08F3F09F060C037C086E0FE0137960F -:102E9000DE01119601900D928A95E1F76F81788598 -:102EA000EA85FB85309741F17F3F11F46F3F21F1B7 -:102EB0002091860130E0C9010196877099274091E1 -:102EC000850150E08417950709F447C069837A8328 -:102ED000FD83EC8396E0929FD001939FB00D112467 -:102EE000A957BE4FFE01319601900D929A95E1F7D8 -:102EF000809386010E94D01416E080918501909104 -:102F000086018917C1F1189FC001112489579E4F6E -:102F10000E945A15882379F1E09185011E9FF001E6 -:102F20001124E957FE4F4081518162817381848170 -:102F300095810E94C0148091850190E00196877070 -:102F4000992780938501D9CF4F81588569857A85E6 -:102F50008B859C850E94C014CFCF0E948314109251 -:102F6000860110928501E7EBF1E086E0DF011D921A -:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45 -:102F8000CDBFDF91CF911F910895EF92FF920F93E4 -:102F90001F93CF93DF938C01009709F46CC0F12C41 -:102FA000EE24E394E8012196F8018491843740F4FB -:102FB000843008F051C0813081F0823019F15BC05B -:102FC000853709F444C0A8F19CE7980F903708F0C2 -:102FD00052C08F770E94CE1141C00E5F1F4FFE017D -:102FE000C49180E28C0F883048F4C7708E2D01C0E8 -:102FF000880FCA95EAF70E94A11A14C08C2F0E946C -:1030000006112DC00E5F1F4FFE01C49180E28C0F90 -:10301000883058F4C7708E2D01C0880FCA95EAF722 -:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3 -:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3 -:103040009FE00197F1F700C00000C150F6CF0E5F7E -:103050001F4FFE01F49003C00E9406118E018F2DB8 -:10306000882309F49FCFEFE9FFE03197F1F700C023 -:1030700000008150F5CFDF91CF911F910F91FF900C -:10308000EF90089508956093C1017093C2018093F9 -:10309000C3019093C4010C946F140F931F9300917C -:1030A000C1011091C2012091C3013091C401DC0122 -:1030B000CB01802B912BA22BB32B8093C10190933A -:1030C000C201A093C301B093C4011F910F910C944E -:1030D0006F140F931F930091C1011091C2012091B1 -:1030E000C3013091C401DC01CB0180239123A223D1 -:1030F000B3238093C1019093C201A093C301B09305 -:10310000C4011F910F910C946F140F931F930091A2 -:10311000C1011091C2012091C3013091C401DC01B1 -:10312000CB0180279127A227B3278093C1019093D9 -:10313000C201A093C301B093C4011F910F910C94DD -:103140006F141092BD011092BE011092BF01109237 -:10315000C0010C946F1441E050E060E070E004C0E6 -:10316000440F551F661F771F8A95D2F74093BD0104 -:103170005093BE016093BF017093C0010C946F1413 -:1031800041E050E060E070E004C0440F551F661F4E -:10319000771F8A95D2F78091BD019091BE01A091D1 -:1031A000BF01B091C001482B592B6A2B7B2B409358 -:1031B000BD015093BE016093BF017093C0010C9498 -:1031C0006F1441E050E060E070E004C0440F551F10 -:1031D000661F771F8A95D2F7409550956095709538 -:1031E0008091BD019091BE01A091BF01B091C0013D -:1031F000482359236A237B234093BD015093BE018A -:103200006093BF017093C0010C946F1441E050E0D3 -:1032100060E070E004C0440F551F661F771F8A9559 -:10322000D2F78091BD019091BE01A091BF01B091F4 -:10323000C001482759276A277B274093BD01509337 -:10324000BE016093BF017093C0010C946F140F9383 -:103250001F930091BD011091BE012091BF013091DB -:10326000C001DC01CB01802B912BA22BB32B8093CF -:10327000BD019093BE01A093BF01B093C0011F9107 -:103280000F910C946F140F931F930091BD01109137 -:10329000BE012091BF013091C001DC01CB01802330 -:1032A0009123A223B3238093BD019093BE01A093E9 -:1032B000BF01B093C0011F910F910C946F140F9335 -:1032C0001F930091BD011091BE012091BF0130916B -:1032D000C001DC01CB0180279127A227B32780936F -:1032E000BD019093BE01A093BF01B093C0011F9197 -:1032F0000F910C946F140895CF92DF92EF92FF928A -:103300000F931F93CF93DF938C01C090C101D09096 -:10331000C201E090C301F090C4018091BD01909181 -:10332000BE01A091BF01B091C001C82AD92AEA2AE2 -:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520 -:10334000A795979587950A94D2F780FF06C0B80194 -:103350008C2F0E944808019721F4219760F780E0A4 -:1033600001C08C2FDF91CF911F910F91FF90EF90B3 -:10337000DF90CF900895CF93DF93EC010E947C19EA -:10338000BE010E944808DF91CF910895CB010E94B1 -:10339000BB1908958091C5018595859585950895FA -:1033A0008091C5018770089598E0899F900111244C -:1033B000262B2093C5010C94C0182091C50180953F -:1033C00082238093C501982F977069F430E0482FCD -:1033D000552747FD50952417350729F08595859584 -:1033E00085950C94E11808959091C501977081E03E -:1033F00009F480E0089590910C01992321F09091B7 -:103400000D01911109C020910E0130910F01F901B8 -:1034100032969FEF40E01FC0982F9695969596950F -:103420009F3050F5E0910E01F0910F01E90FF11D71 -:10343000877021E030E0A90102C0440F551F8A9532 -:10344000E2F7CA019181892B818308959F3F39F06A -:103450004F5F4E3041F051915813F8CF0DC05111CC -:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08 -:1034700097FDFA9582830895089590910C01992300 -:1034800021F090910D01911109C020910E01309110 -:103490000F01F9013296205F3F4F1FC0982F96957C -:1034A000969596959F30F0F4E0910E01F0910F0102 -:1034B000E90FF11D877021E030E0A90102C0440F3F -:1034C000551F8A95E2F7CA018095918189238183EE -:1034D00008953196E217F30729F090819813F9CFF8 -:1034E0001082F7CF089581E090E0E0910E01F09115 -:1034F0000F01E80FF91F1082019680319105A9F79D -:1035000008959091D901892B8093D90108958095D0 -:103510009091D90189238093D90108951092D901FE -:1035200008959091D801892B8093D80108958095B2 -:103530009091D80189238093D80108951092D801E1 -:1035400008959091D701892B8093D7010895809594 -:103550009091D70189238093D70108951092D701C4 -:1035600008958093C60108951092C6010895809130 -:103570000E0190910F01FC0131969C01205F3F4F9D -:1035800080E0919191118F5FE217F307D1F70895D1 -:10359000E0910E01F0910F018091D9018083E091BB -:1035A0000E01F0910F0190818091D801892B8083C9 -:1035B000E0910E01F0910F0190818091D701892B4C -:1035C00080838091C601882361F0E0910E01F09123 -:1035D0000F019081892B80830E94B71A811110926C -:1035E000C60180910E0190910F010C94F60F20E01E -:1035F000009739F0AC0141505109842395232F5F86 -:10360000F7CF822F0895CF92DF92EF92FF926C0155 -:10361000EE24FF24C114D104E104F10421F0C70118 -:10362000B60120E101C020E0C72ED82EE92EFF24EC -:10363000C114D104E104F10419F0285FC701B601F7 -:103640006B017C0154E0F694E794D794C7945A95A3 -:10365000D1F7C114D104E104F10419F02C5FC701C2 -:10366000B6016B017C0142E0F694E794D794C794CD -:103670004A95D1F7C114D104E104F10419F02E5F89 -:10368000C701B601DC01CB01B695A7959795879543 -:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5 -:1036A000DF90CF9008958091F101843021F1109244 -:1036B000DB0120E488E190E00FB6F894A8958093B0 -:1036C00060000FBE2093600080E00E94E30883B793 -:1036D000817F846083BF83B7816083BF789488953E -:1036E00083B78E7F83BF88E10FB6F8948093600024 -:1036F000109260000FBE0895089508950E947C1BEB -:103700000E944B030E947D1B0E94400491E08111A6 -:1037100001C090E0892F08950E9483140E94EA0F4F -:103720000C94E30882E084BD93E095BD9AEF97BDC9 -:1037300080936E0008952FB7F8948091DC019091EA -:10374000DD01A091DE01B091DF012FBF0895CF927E -:10375000DF92EF92FF920F931F932FB7F89440914F -:10376000DC015091DD016091DE017091DF012FBF1E -:103770006A017B01EE24FF248C0120E030E0C016BA -:10378000D106E206F30610F4415051099A01281BB4 -:10379000390BC9011F910F91FF90EF90DF90CF90EF -:1037A00008951F920F920FB60F9211248F939F933B -:1037B000AF93BF938091DC019091DD01A091DE0178 -:1037C000B091DF010196A11DB11D8093DC019093A2 -:1037D000DD01A093DE01B093DF01BF91AF919F9116 -:1037E0008F910F900FBE0F901F9018950E94E70CBD -:1037F000F8942FEF87EA91E6215080409040E1F75E -:1038000000C0000087E090EBDC018093FB01909307 -:10381000FC01A093FD01B093FE019CE088E10FB68E -:10382000F894A895809360000FBE90936000FFCF3E -:10383000EF92FF920F931F93CF93DF93D82FCDE09A -:103840008C2F0E94390405E010E0E82EF12CC7010E -:10385000002E02C0959587950A94E2F780FF09C073 -:10386000602F7C2F80E00E94F305D81302C081E016 -:1038700006C00150110958F7C15010F780E0DF91E0 -:10388000CF911F910F91FF90EF900895CF93C82F84 -:103890008CE20E94181C882321F08C2FCF910C946D -:1038A000181C80E0CF910895CF930E949B1D811139 -:1038B00002C00E94811DC5E6C15049F00E944B0321 -:1038C0008FE39CE90197F1F700C00000F5CF89E292 -:1038D0000E94461C811113C18AE20E94461C81117C -:1038E0000E94811D85E00E94461C81110E94F61BEA -:1038F0000E94A61D8093DA0187E00E94461C88235F -:10390000A9F18BE10E94461C882351F08091DA01D5 -:1039100081FB222720F991E0922790FB81F90EC0CC -:103920008EE00E94461C882361F08091DA0182FBC0 -:10393000222720F991E0922790FB82F98093DA0107 -:1039400015C080E10E94461C9091DA01882341F065 -:1039500093FB222720F981E0822780FB93F904C0A2 -:10396000892F809580FB90F99093DA018091DA019C -:103970000E94AA1D0E94B81D8093FA0180EE0E9449 -:10398000461C882341F08091FA01982F909590FB76 -:1039900080F98093FA0189E30E94461C882359F03C -:1039A0008091FA0181FB222720F991E0922790FB78 -:1039B00081F98093FA0182EE0E94461C882359F017 -:1039C0008091FA0182FB222720F991E0922790FB57 -:1039D00082F98093FA0186EE0E94461C882359F0F2 -:1039E0008091FA0183FB222720F991E0922790FB36 -:1039F00083F98093FA0183EE0E94461C882359F0D4 -:103A00008091FA0184FB222720F991E0922790FB14 -:103A100084F98093FA0185E30E94461C882359F0BB -:103A20008091FA0185FB222720F991E0922790FBF3 -:103A300085F98093FA0181E30E94461C882359F09E -:103A40008091FA0186FB222720F991E0922790FBD2 -:103A500086F98093FA0181E10E94461C882359F07F -:103A60008091FA0187FB222720F991E0922790FBB1 -:103A700087F98093FA018091FA010E94BC1D809120 -:103A8000FA0187FB882780F980930D0187E20E9465 -:103A9000461CC82F8EE10E94461C8111C2608FE136 -:103AA0000E94461C8111C46080E20E94461C811164 -:103AB000C86081E20E94461C8111C06182E20E94BE -:103AC000461C8111C06283E20E94461C8111C064C1 -:103AD00084E20E94461C882311F0C06802C0CC23F7 -:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4 -:103AF000682F70E080E090E0CF910C944318CF9154 -:103B000008956DEE7EEF80E090E00E94ED2360E08E -:103B100082E090E00E94DB2360E083E090E00E947E -:103B2000DB2360E084E090E00E94DB2360E085E03E -:103B300090E00C94DB2380E090E00E94D52321E00C -:103B40008D3E9E4F09F020E0822F089582E090E0A4 -:103B50000C94CD23682F82E090E00C94DB2383E06B -:103B600090E00C94CD23682F83E090E00C94DB234D -:103B700084E090E00C94CD23682F84E090E00C94D6 -:103B8000DB238091E20180FF0BC06091130185E08F -:103B9000689FB001112475956795759567952BC041 -:103BA00081FF09C06091130185E0689FB001112475 -:103BB0007595679520C082FF07C06091130185E06D -:103BC000689FB001112417C09091E3019923D1F0AF -:103BD00060911201961788F72091130185E0289FC4 -:103BE00090011124929FA001939F500D112470E029 -:103BF000CA010E949F236038710540F46115710568 -:103C000039F002C065E070E0862F08958FE70895CF -:103C100081E008958091E20180FF08C06091110168 -:103C200070E0759567957595679521C081FF06C011 -:103C30006091110170E07595679519C082FF04C00D -:103C40006091110170E010C09091E3019923C1F0DF -:103C5000609110019617A0F780911101899FC00112 -:103C6000112470E00E949F236038710528F46115CB -:103C7000710521F0862F08958FE7089581E008955A -:103C800061E070E0F4CF803F21F40E94C11D819576 -:103C900004C0813F29F40E94C11D8093E60108956C -:103CA000823F21F40E94C11D819504C0833F29F405 -:103CB0000E94C11D8093E5010895893F19F40E9477 -:103CC0000A1E05C08A3F31F40E940A1E8195809326 -:103CD000E70108958B3F21F40E940A1E819504C0DC -:103CE0008C3F29F40E940A1E8093E8010895843FC6 -:103CF00021F48091E401816017C0853F21F4809117 -:103D0000E401826011C0863F21F48091E401846067 -:103D10000BC0873F21F48091E401886005C0883F93 -:103D200031F48091E40180618093E40108958D3F36 -:103D300021F48091E20181600BC08E3F21F48091DB -:103D4000E201826005C08F3F29F48091E201846026 -:103D50008093E2010895803F39F48091E60187FF66 -:103D60006CC01092E60169C0813F29F48091E601A0 -:103D70001816BCF362C09091E501823F29F497FFC9 -:103D80005CC01092E50159C0833F19F41916CCF3B9 -:103D900054C0893F41F48091E70118160CF04DC0E2 -:103DA0001092E7014AC08A3F29F48091E70187FF1A -:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6 -:103DC0001092E8013AC08C3F29F48091E80118165E -:103DD000BCF333C0843F21F48091E4018E7F17C08F -:103DE000853F21F48091E4018D7F11C0863F21F44D -:103DF0008091E4018B7F0BC0873F21F48091E40127 -:103E0000877F05C0883F31F48091E4018F7E8093E5 -:103E1000E40113C08D3F21F48091E2018E7F0BC03D -:103E20008E3F21F48091E2018D7F05C08F3F29F400 -:103E30008091E2018B7F8093E2018091E501811105 -:103E40000EC08091E60181110AC08091E7018111C5 -:103E500006C08091E801811102C01092E30108952B -:103E600084EE91E00E9401100E949B1B9093E1015F -:103E70008093E00108951F93CF93DF938091E00139 -:103E80009091E1010E94A71BAC019091E30199235D -:103E900021F02091140130E006C0209115018AE044 -:103EA000289F900111244217530708F486C080917F -:103EB000E501C091E601D091E7011091E80181117F -:103EC00007C0C11176C0D11174C0111172C075C084 -:103ED0009F3F19F09F5F9093E301181624F40E940E -:103EE000C11D8093E5018091E50187FF05C00E9417 -:103EF000C11D81958093E5011C1624F40E94C11D0B -:103F00008093E6018091E60187FF05C00E94C11DF4 -:103F100081958093E6016091E501662339F1C091B6 -:103F2000E601CC2319F1772767FD7095872F972F2E -:103F30000E94B02223E333E343E35FE30E941423B0 -:103F40000E947D226093E5016C2F772767FD7095B5 -:103F5000872F972F0E94B02223E333E343E35FE3ED -:103F60000E9414230E947D226093E6011D1624F412 -:103F70000E940A1E8093E7018091E70187FF05C038 -:103F80000E940A1E81958093E701111624F40E9475 -:103F90000A1E8093E8018091E80187FF05C00E9416 -:103FA0000A1E81958093E801DF91CF911F910C94B7 -:103FB000301F9F3F09F08ECF96CFDF91CF911F9199 -:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE -:103FD0001092E3011092E2010895833081F128F4F8 -:103FE000813059F08230D1F00895853009F449C00C -:103FF000B8F1863009F456C0089580911501262F36 -:1040000030E0280F311D2F3F310524F4680F6093F5 -:10401000150108958FEF8093150108958091140183 -:10402000262F30E0280F311D2F3F310524F4680F73 -:104030006093140108958FEF809314010895809187 -:104040001301262F30E0280F311D2F3F310524F4B6 -:10405000680F6093130108958FEF80931301089503 -:1040600080911201262F30E0280F311D2F3F31059E -:1040700024F4680F6093120108958FEF809312016A -:10408000089580911101262F30E0280F311D2F3F18 -:10409000310524F4680F6093110108958FEF809328 -:1040A0001101089580911001262F30E0280F311D55 -:1040B0002F3F310524F4680F6093100108958FEFAE -:1040C000809310010895833011F128F4813049F074 -:1040D000823091F00895853081F120F18630C1F170 -:1040E000089580911501681720F4861B80931501AF -:1040F000089510921501089580911401681720F415 -:10410000861B8093140108951092140108958091E4 -:104110001301681720F4861B8093130108951092F1 -:104120001301089580911201681720F4861B809373 -:1041300012010895109212010895809111016817DB -:1041400020F4861B809311010895109211010895A7 -:1041500080911001681720F4861B80931001089548 -:104160001092100108950F931F938D3109F46BC0C5 -:1041700008F03FC08E3009F47FC0C0F4873009F4E6 -:1041800069C068F4863009F0B1C08091DA01817F9E -:104190008E7F8093DA0181E08093EA01A8C08830A5 -:1041A00009F4A2C08B3009F49FC0A0C0863109F485 -:1041B0009BC078F4803109F472C0813109F096C057 -:1041C0000E94831490910D0181E0892780930D0155 -:1041D0008BC0893109F488C08B3109F087C0809188 -:1041E000DA0181FB222720F991E0922790FB81F9E7 -:1041F0004CC0853309F470C048F4873209F46CC0B0 -:1042000008F459C0893209F467C070C0833438F4A7 -:104210008A3308F04EC0883309F466C067C083341F -:1042200009F45AC0883409F061C00E9483140FEF6A -:1042300013ED20E3015010402040E1F700C00000E2 -:104240000E94F61B51C00E9437220E94EA0F0E9472 -:10425000E3084AC09091DA01892F8095817080FB34 -:1042600090F929F0966098609093DA0140C0997FA8 -:10427000977F9093DA0138C08091DA0182FB222780 -:1042800020F991E0922790FB82F98093DA0199233B -:1042900059F18091DA0181608093DA0125C0809123 -:1042A000DA0183FB222720F991E0922790FB83F922 -:1042B000ECCF895301C08D5141E050E060E070E0E7 -:1042C0008A019B0104C0000F111F221F331F8A9512 -:1042D000D2F7C901B80104C061E070E080E090E06D -:1042E0000E9443180E94831481E001C080E01F9166 -:1042F0000F91089580E0089580E00895CF93C82F2E -:104300008091EA01813079F018F08230E9F187C0BC -:10431000E0910E01F0910F018081813169F08232CC -:1043200009F07FC009C0E0910E01F0910F0180817A -:10433000813111F0823261F48C2F0E947A21811137 -:1043400004C08C2F0E94B3201DC081E090E01AC0F1 -:104350008C2F0E947C21811114C0C43179F048F463 -:10436000CB3079F0C03109F060C082E08093EA017F -:1043700008C0C93219F0C83321F057C01092EA01C1 -:1043800054C081E0817053C0C93289F118F5C4313D -:1043900071F1A8F4C73009F046C08AE08093150196 -:1043A00094E19093140193E0909313018093120190 -:1043B00088E08093110188E28093100134C0CE51CF -:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB -:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC -:1043E00013C0C13579F0C235F1F461E00DC08091A0 -:1043F000E901882319F01092E90115C081E080934A -:10440000EA0115C061E006C08091E9010E94ED1F3C -:104410000AC06AE08091E9010E94632004C0109202 -:10442000EA0180E004C081E002C080E0ABCFCF9120 -:104430000895E1E8F0E08081886080838081816078 -:1044400080838FB7F89493E09093890090ED9093D8 -:1044500088008FBF0895EFE6F0E08081826080835E -:104460000895EFE6F0E080818D7F80830895EFE688 -:10447000F0E0908182E08927808308951F920F9257 -:104480000FB60F9211242F933F934F935F936F9327 -:104490007F938F939F93AF93BF93EF93FF938091FD -:1044A000EB019091EC0101969093EC018093EB016C -:1044B000811103C082E00E94E308E091EC01E695DF -:1044C000E695F0E0EC54FB4FE4918091EB018E1304 -:1044D00003C080E00E94E308FF91EF91BF91AF918C -:1044E0009F918F917F916F915F914F913F912F910C -:1044F0000F900FBE0F901F90189504D06894B111C3 -:104500008DC0089570D088F09F5790F0B92F9927EB -:10451000B751A0F0D1F0660F771F881F991F1AF0CE -:10452000BA95C9F712C0B13081F077D0B1E00895E3 -:1045300074C0672F782F8827B85F39F0B93FCCF364 -:10454000869577956795B395D9F73EF490958095C4 -:10455000709561957F4F8F4F9F4F0895E89409C0E4 -:1045600097FB3EF490958095709561957F4F8F4FA6 -:104570009F4F9923A9F0F92F96E9BB279395F695BC -:10458000879577956795B795F111F8CFFAF4BB0F3A -:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E -:1045A000882311F096E911C0772321F09EE8872F28 -:1045B000762F05C0662371F096E8862F70E060E0E4 -:1045C0002AF09A95660F771F881FDAF7880F96955D -:1045D000879597F9089557FD9058440F551F59F046 -:1045E0005F3F71F04795880F97FB991F61F09F3FE0 -:1045F00079F087950895121613061406551FF2CF09 -:104600004695F1DF08C0161617061806991FF1CF58 -:1046100086957105610508940895E894BB2766277F -:104620007727CB0197F908950BD078C069D028F08F -:104630006ED018F0952309F05AC05FC01124EECF58 -:10464000CADFA0F3959FD1F3950F50E0551F629FED -:10465000F001729FBB27F00DB11D639FAA27F00DDB -:10466000B11DAA1F649F6627B00DA11D661F829F02 -:104670002227B00DA11D621F739FB00DA11D621FE7 -:10468000839FA00D611D221F749F3327A00D611D04 -:10469000231F849F600D211D822F762F6A2F1124E6 -:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39 -:1046B000BB1F661F771F881F91505040A9F79E3F70 -:1046C000510570F014C0AACF5F3FECF3983EDCF3C5 -:1046D000869577956795B795F795E7959F5FC1F7AD -:1046E000FE2B880F911D9695879597F9089597F958 -:1046F0009F6780E870E060E008959FEF80EC089588 -:1047000000240A94161617061806090608950024B0 -:104710000A9412161306140605060895092E03942A -:10472000000C11F4882352F0BB0F40F4BF2B11F49E -:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF -:10474000072E16F4009407D077FD09D00E94B923F4 -:1047500007FC05D03EF4909581959F4F0895709584 -:1047600061957F4F0895EE0FFF1F0590F491E02DA6 -:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8 -:10478000B70710F0A61BB70B881F991F5A95A9F7FA -:1047900080959095BC01CD010895F999FECF92BD09 -:1047A00081BDF89A992780B50895A8E1B0E042E06C -:1047B00050E00C94F523262FF999FECF92BD81BDD0 -:1047C000F89A019700B4021639F01FBA20BD0FB64F -:1047D000F894FA9AF99A0FBE08950196272F0E942D -:1047E000DC230C94DB23DC01CB01FC01F999FECF27 -:1047F00006C0F2BDE1BDF89A319600B40D92415069 -:0A4800005040B8F70895F894FFCF78 -:10480A000220E508730950091C09E8080101C701DB -:10481A0028080A03140A3F4D363975042804F2039E -:10482A00B9034C0365037E039703010203040506DB -:04483A000708090062 -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/naps62/README.md b/keyboards/ergodox_ez/keymaps/naps62/README.md deleted file mode 100644 index 14728e4cc..000000000 --- a/keyboards/ergodox_ez/keymaps/naps62/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# ErgoDox EZ naps62 Configuration - -## Motivation - -I wanted a layout that suited my Linux & Vim usage. I also didn't like the lack of efficient access to some of the more common special characters used in programming. - -## Key features / changes - -### Base Layer (L1) - -* **No `MT(mod, kc)` keys (modifier when pressed, key when tapped).** Those keys work with a global timeout. When a key press is shorter than the timeout, it's considered a tap, otherwise it's a hold. I couldn't find any particular timeout that would work for me. I need to use mods extremely fast, but also want the confort of using them more slowly in other occasions. So I gave up on this feature altogether. -* **Direct access to `{}[]`.** When programming, these are used extremely often. I was still getting used to the coder layer, and I prefer the arrows on the home row, so I used the bottom-right keys for this. -* **Layer keys everywhere.** I either use my little finger or my index finger to go to L1, whichever is more confortable in any given situation. L2 is not used while coding/writing, so I don't need an extremely-optimized access to it. -* **Lang key.** This is nothing more than `Super-Space` combo, which in my systems (both Linux & Windows) is the shortcut to change the keyboard language. I'm Portuguese, so I often cycle between US layout for coding, and PT layout for writing. -* **Special chars on the right-most column.** I only use Ctrl & Shift keys on the left side, so I used the right keys to include some of the more useful special characters as well. - -### Coder Layer (L2) - -* The `=` and `-` signs where nowhere to be found. `-` was already on the base layer, but it's still useful to have a fully-featured NumPad on the coder layer. - -### Media Layer (L3) - -* **Better media keys**. Why was Play/Pause so far away? And where was Mute? I put all my media keys close to each other, including the missing ones -* **Arrow keys on home row.** I use vim, so I'm always on my home row. I use this sometimes to get around, but not as often as to need them on the base row. I'm fine with them here -* I don't use mouse keys. They're still set up, and I made some changes as an experiment, but I mostly forgot they exist by now. - -## Author - -[Miguel Palhas](https://github.com/naps62) diff --git a/keyboards/ergodox_ez/keymaps/naps62/compiled.hex b/keyboards/ergodox_ez/keymaps/naps62/compiled.hex deleted file mode 100644 index 02cbf8be3..000000000 --- a/keyboards/ergodox_ez/keymaps/naps62/compiled.hex +++ /dev/null @@ -1,1158 +0,0 @@ -:100000000C947A020C94BE020C94BE020C94BE02B4 -:100010000C94BE020C94BE020C94BE020C94BE0260 -:100020000C94BE020C94BE020C94620D0C94340E1F -:100030000C94BE020C94BE020C94BE020C94BE0240 -:100040000C94BE020C943E220C94BE020C94BE0290 -:100050000C94BE020C94D11B0C94BE020C94BE02F4 -:100060000C94BE020C94BE020C94BE020C94BE0210 -:100070000C94BE020C94BE020C94BE020C94BE0200 -:100080000C94BE020C94BE020C94BE020C94BE02F0 -:100090000C94BE020C94BE020C94BE020C94BE02E0 -:1000A0000C94BE020C94BE020C94BE02A10EC30EB0 -:1000B000B10FC30EB10F080F2B0FB10F800F930FAD -:1000C0006212621291129112C712E71218141814D8 -:1000D000F2121814A213A2130914181418141214EB -:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300 -:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0 -:10010000C113CE13D513DC13E6130000F0A12900B0 -:100110002B00E000E100015200001E00140004006A -:100120001D003500E3001F001A0016001B003400FC -:10013000E200200008000700060031002C0021002A -:100140001500090019000252E300220017000A00FE -:10015000050000004A002C08025200000152000075 -:100160004D00290002520000015200004B00230004 -:100170001C000B00110000004900240018000D00B5 -:1001800010002F024C0025000C000E00360030023B -:100190002C00260012000F0037002F002800270037 -:1001A00013003300380030002A002A0031003400E8 -:1001B0002D000152000001000100010001000100BA -:1001C00000003A001E0220022202010001003B0052 -:1001D0001F0221022302010001003C002F0226021F -:1001E0002F00010001003D00300227023000010015 -:1001F00001003E003102350035020000010001001F -:1002000001000000010000000100010001000000E9 -:100210000100000001003F005200510024020000D4 -:1002200001004000240021001E002E0001004100BA -:10023000250022001F003700010042002600230095 -:10024000200027000100430025022E0231002D006E -:1002500001004400450001000100010000000050C1 -:10026000010001000100010000000100010004087C -:1002700001000100010001001A0816080100010038 -:10028000F50001000808070801000100F400010062 -:10029000F400F10001000100010001001708F30063 -:1002A0000100000001000100010000000100000049 -:1002B0000100010001000000010000000100010038 -:1002C0000100500001000000010001000100510088 -:1002D000AA00AE000100010001005200A900AC001C -:1002E000B700010001004F00A800AB00B6000100FC -:1002F00001000100010001000100010001000100F6 -:1003000001000100000016034500720067006F0045 -:1003100044006F007800200045005A0000001603DA -:100320004500720067006F0044006F0078002000F5 -:1003300045005A0000000403090409026D0004018D -:1003400000A0FA09040000010301010009211101C4 -:100350000001223F000705810308000A090401008B -:100360000103010200092111010001224D000705CE -:10037000820308000A0904020001030000000921A9 -:10038000110100012236000705830308000A090451 -:1003900003000103000000092111010001223900BE -:1003A000070584031000011201100100000008ED90 -:1003B000FE071301000102000105010906A1010564 -:1003C0000719E029E7150025019508750181020547 -:1003D000081901290595057501910295017503918B -:1003E0000105071900297715002501957875018108 -:1003F00002C005010980A101850216010026B7008F -:100400001A01002AB700751095018100C0050C097A -:1004100001A1018503160100269C021A01002A9CF5 -:1004200002751095018100C005010902A1010901B1 -:10043000A10005091901290515002501950575017A -:10044000810295017503810105010930093115818A -:10045000257F95027508810609381581257F95014C -:1004600075088106050C0A38021581257F950175EE -:10047000088106C0C005010906A101050719E02988 -:10048000E715002501950875018102950175088120 -:100490000105081901290595057501910295017558 -:1004A0000391010507190029FF150025FF95067521 -:1004B000088100C0000000000000000000000001F2 -:1004C0000204060A0F17202C3A4A5D71879DB3C7B4 -:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF -:1004E0003A2C20170F0A0604020100000000000049 -:1004F0000000000011241FBECFEFDAE0DEBFCDBF49 -:1005000004B603FE24C08091FB019091FC01A091F0 -:10051000FD01B091FE018730904BA740B04BB9F47C -:100520001092FB011092FC011092FD011092FE014D -:1005300014BE84B7877F84BF88E10FB6F894809398 -:100540006000109260000FBEE0E0FFE3099511E04B -:10055000A0E0B1E0EAE0F8E402C005900D92A43317 -:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0 -:10057000B107E1F70E94A60A0C9403240C94000032 -:100580001092B9008AE08093B800089594EA90939D -:10059000BC009091BC0097FFFCCF9091B900987F70 -:1005A000983021F0903111F081E008958093BB00E4 -:1005B00084E88093BC008091BC0087FFFCCF8091D1 -:1005C000B900887F883111F0803471F780E0089598 -:1005D00084E98093BC008091BC0084FDFCCF089529 -:1005E0008093BB0084E88093BC008091BC0087FFAF -:1005F000FCCF9091B900987F81E0983209F480E0B7 -:10060000089584E88093BC008091BC0087FFFCCFF4 -:100610008091BB00089580910101811115C080E493 -:100620000E94C6028093010181110CC082E10E94E8 -:10063000F00280930101811105C08FEF0E94F0024A -:10064000809301010E94E80284B1807F84B985B162 -:10065000807F85B98AB1837F8AB98BB1837F8BB95B -:100660003E98469808950E94C604809301010E9416 -:100670000B0380B38C7080BB81B3836F81BBA5E318 -:10068000B1E0E3E4F1E08EE08E0F11921D928E1343 -:10069000FCCF0C94B004BF92CF92DF92EF92FF9206 -:1006A0000F931F93CF93DF9380910101882379F0FB -:1006B000809134018F5F80933401811108C00E94C2 -:1006C000C60480930101811102C00E94580405E311 -:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407 -:1006E000E394F12CC730D10500F58091010181110F -:1006F00064C080E40E94C60280930101811112C08F -:1007000082E10E94F0028093010181110BC0C701B8 -:100710000C2E01C0880F0A94EAF780950E94F0021F -:10072000809301010E94E80248C0CA30A1F028F479 -:10073000C83059F0C93061F005C0CC3089F070F094 -:10074000CD3089F0209A289810C0219A29980DC0A0 -:10075000229A2A980AC0239A2B9807C0529A01C05D -:10076000539A5B9802C03E9A469890EA9A95F1F7A0 -:100770009FB1799902C082E001C080E091709D250F -:10078000982B7C9902C084E001C080E0892B7D9980 -:1007900002C038E001C030E0832B7E9902C020E126 -:1007A00001C020E0822B9FB19095991F9927991F36 -:1007B0009295990F907E892B0FC080910101811134 -:1007C00049C080E40E94C60280930101882379F128 -:1007D000B12C0E94E8028B2DF8019081981719F036 -:1007E0008083C09200010E940B0321960F5F1F4F70 -:1007F000CE30D10509F076CF80910001882361F1D8 -:10080000815080930001882339F08FE99FE00197A0 -:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F -:10082000CF01825F91919D938E13FCCF15C083E120 -:100830000E94F002809301018111CACF81E40E94DD -:10084000C602809301018111C3CF0E940103B82E1B -:10085000B094BFCF80E0C0CF0E94560481E0DF910A -:10086000CF911F910F91FF90EF90DF90CF90BF90AD -:100870000895E82FF0E0ED5BFE4F80810895089524 -:100880000F931F93CF93DF93C3E4D1E010E00C2FBD -:10089000025F899190E00E94F71A180F0C13F9CFAC -:1008A000812FDF91CF911F910F9108950C94260510 -:1008B00056985E9825982D9826982E9827982F98C8 -:1008C0008FEF90E0909389008093880090938B0045 -:1008D00080938A0090938D0080938C00259A2D9AA6 -:1008E0002FEF80E792E0215080409040E1F700C078 -:1008F0000000269A2E9A2FEF80E792E02150804048 -:100900009040E1F700C00000279A2F9A2FEF80E770 -:1009100092E0215080409040E1F700C0000025980F -:100920002D982FEF80E792E0215080409040E1F732 -:1009300000C0000026982E982FEF80E792E021500B -:1009400080409040E1F700C0000027982F9856980B -:100950005E9825982D9826982E9827982F98089578 -:1009600089EA8093800089E08093810024982C9804 -:100970003F988AB18F748AB96E98479A8BB1806B11 -:100980008BB9769A0E9458040C94250580E28093D6 -:1009900001018091510181110EC00E94C00281E0CD -:1009A000809351012FEF83ED90E3215080409040E0 -:1009B000E1F700C0000080E40E94C60280930101BC -:1009C00081112EC00E94F00280930101811128C084 -:1009D0000E94F00280930101811122C08FE30E94E6 -:1009E000F0028093010181111BC00E94E80280E4A3 -:1009F0000E94C60280930101811112C08CE00E9406 -:100A0000F0028093010181110BC00E94F0028093DB -:100A10000101811105C08FE30E94F0028093010162 -:100A20000E94E80280910101089561110BC0FC0150 -:100A30008281882321F085EE0E94061103C085EE95 -:100A40000E94CE1180E090E0089508956091BD016C -:100A50007091BE018091BF019091C0010E94031B63 -:100A600056985E9825982D9826982E9827982F9816 -:100A7000813019F0823021F00895259A2D9A089539 -:100A8000269A2E9A089581E0089581E008950C94A5 -:100A9000450508950F931F93CF93DF938C01FC01BD -:100AA000C081D181CE010E947C19BE010E94F30554 -:100AB000EC01B8010E944705882309F48DC0F801B4 -:100AC0008281882309F44AC080915D0181111FC091 -:100AD000C431F0E5DF0709F051C00E94490581E00B -:100AE00080935D010E949B1B90935C0180935B014E -:100AF0001092540110925601109255011092580113 -:100B00001092570110925A011092590165C08091BC -:100B10005B0190915C010E94A71B883C910570F4D9 -:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB -:100B3000D183C0838F5F809354014EC0C43880E559 -:100B4000D80721F0C538D04501F13AC0F8018281BB -:100B5000882341F01092520182E01EC0C438E0E5C3 -:100B6000DE0759F580915201811106C086E20E948C -:100B7000061186E20E94CE1182E01CC0C438F0E566 -:100B8000DF0741F3C538D045D9F4F80182818823C5 -:100B900031F01092530180E20E941D121DC080911D -:100BA0005301811106C087E20E94061187E20E946C -:100BB000CE1180E20E9424120FC0C538D04529F31F -:100BC00081E08093520180935301C801DF91CF915E -:100BD0001F910F910C94430580E0DF91CF911F91FD -:100BE0000F910895089596E0799FF001112494E5FE -:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F -:100C0000E25FFE4F859194910895880F991FFC0132 -:100C1000E657F040859194910895880F991FFC0143 -:100C2000E65FFE4F8591949108950F931F93CF93A4 -:100C3000DF93EC01811520E3920750F5C11580E2A6 -:100C4000D80708F0C3C0CB3BD10590F4C83AD10512 -:100C500008F06AC0C53AD10508F05BC0C430D105C0 -:100C600008F0D0C1219709F0CAC101E010E00AC222 -:100C7000CF3FD10511F008F0C5C1C03FD10508F044 -:100C8000A2C0CE01805E9109089708F4BBC1B7C12C -:100C9000C13090E5D90709F4A2C020F5C0318FE436 -:100CA000D80770F4C11590E4D90708F094C0C115B5 -:100CB00021E3D20708F0A3C1DD278E01106CE2C149 -:100CC000C115D04509F09BC10E9483148FEF94E3B6 -:100CD0002CE0815090402040E1F700C000000E94CD -:100CE000F61BD0C1C11597E5D90758F4C03121E5ED -:100CF000D20708F01CC1C43180E5D80708F475C0DC -:100D00007EC1CE0190578115904108F078C1DF7007 -:100D100073C1C53AD10509F477C1C63AD10509F0C6 -:100D200076C102E810E4AEC1C83AD10509F472C137 -:100D3000C93AD10509F471C1CA3AD10509F470C1A3 -:100D4000CB3AD10509F46FC1CC3AD10509F46EC193 -:100D5000CD3AD10509F46DC1C03BD10509F46CC190 -:100D6000CE3AD10509F46BC1CF3AD10509F46AC175 -:100D7000C13BD10509F469C1C23BD10509F468C181 -:100D8000C33BD10509F467C1C43BD10509F466C171 -:100D9000C53BD10509F465C1C63BD10509F464C161 -:100DA000C73BD10509F463C1C83BD10509F462C151 -:100DB000C93BD10509F461C1CA3BD10509F460C141 -:100DC00000E014E45FC18E0110655CC1CE019F702C -:100DD0000E940D0658C1DF708E01106A53C18091C8 -:100DE000DA0181608093DA014DC10E949B1D81115F -:100DF00002C00E94811D0E94B81D90E09093FB01EB -:100E00008093FA01C23080E5D80721F48091FA017D -:100E1000816086C0C43090E5D90721F48091FA0141 -:100E200082607EC0C63020E5D20721F48091FA01AD -:100E3000846076C0C83080E5D80719F48091FA0143 -:100E400027C0CA3090E5D90721F48091FA0180616A -:100E500067C0CC3020E5D20721F48091FA0180628E -:100E60005FC0CE3080E5D80721F48091FA0180641C -:100E700057C0C03190E5D90721F48091FA0180680C -:100E80004FC0C23120E5D20729F48091FA01846075 -:100E9000886046C0C33080E5D80721F48091FA010C -:100EA0008E7F3EC0C53090E5D90721F48091FA01CC -:100EB0008D7F36C0C73020E5D20721F48091FA013A -:100EC0008B7F2EC0C93080E5D80719F48091FA01D4 -:100ED00026C0CB3090E5D90721F48091FA018F7EAE -:100EE0001FC0CD3020E5D20721F48091FA018F7D1B -:100EF00017C0CF3080E5D80721F48091FA018F7BAD -:100F00000FC0C13190E5D90721F48091FA018F77A4 -:100F100007C0C331D04531F48091FA018B7F877FC0 -:100F20008093FA018091FA010E94BC1DABC08D2F05 -:100F300099278F70992781309105D9F49E012370EC -:100F4000332702C0880F991F2A95E2F79C688E010B -:100F500044E0000F111F4A95E1F700271370802B22 -:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA -:100F70002FC08230910531F4DC2FCC278E01016F18 -:100F8000106A80C08330910569F4CE01837099277F -:100F900001E010E002C0000F111F8A95E2F7C801BE -:100FA0009C680FC084309105B9F4CE0183709927F5 -:100FB00001E010E002C0000F111F8A95E2F7C8019E -:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029 -:100FD0008C010C2B1D2B56C08530910531F4DC2F74 -:100FE000CC278E01046F106A4DC0069709F04AC0E5 -:100FF000CF71DD27DC2FCC278E01106243C000E0CB -:1010000010E040C08E013EC001E810E43BC003E8A0 -:1010100010E438C002EE14E435C009EE14E432C026 -:101020000AEE14E42FC005EB14E42CC006EB14E424 -:1010300029C007EB14E426C00CEC14E423C00DEC2B -:1010400014E420C003E815E41DC00AE815E41AC042 -:1010500002E915E417C004E915E414C001E216E43E -:1010600011C003E216E40EC004E216E40BC005E270 -:1010700016E408C006E216E405C007E216E402C062 -:101080000AE216E4C801DF91CF911F910F910895F4 -:1010900096E0799FF001112494E5899FE00DF11D00 -:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149 -:1010B0009491803E9105E0F4803C910558F5813390 -:1010C000910509F46FC048F48932910509F463C0B1 -:1010D0008A32910509F46DC072C089339105E9F037 -:1010E00082389105D1F08533910509F44DC067C070 -:1010F000833E910581F138F4803E9105B9F0823E3E -:101100009105D9F05CC0863E910561F1873E91055D -:10111000A1F155C00E94050608952091FA0120FD15 -:1011200002C021FF4CC080EE90E049C08091FA01DE -:1011300080FFF9CF89E390E042C08091FA0182FFFD -:101140000EC08091FA0184FF03C080E090E037C0B8 -:1011500083EE90E034C08091FA0182FFF2CF82EEFC -:1011600090E02DC08091FA0183FF0BC08091FA01BD -:1011700084FDEBCF87EE90E022C08091FA0183FFDF -:10118000F5CF86EE90E01BC08091FA0185FF07C085 -:1011900089E290E014C08091FA0185FFF9CF85E3E0 -:1011A00090E00DC08091FA0186FF07C08AE290E0CE -:1011B00006C08091FA0186FFF9CF81E390E00E949A -:1011C0001506089508950C94E20880916E01089523 -:1011D000CF93DF9300D01F92CDB7DEB79C018091F3 -:1011E000F101843019F593E099833B832A8390932E -:1011F000E9008FEF9091E800815095FD06C095EDD4 -:101200009A95F1F700008111F5CF8091E80085FFF4 -:101210000DC040E050E063E070E0CE0101960E9416 -:10122000520B8091E8008E778093E8000F900F902A -:101230000F90DF91CF910895CF93DF9300D01F924D -:10124000CDB7DEB72091F101243021F522E02983CA -:101250009B838A8383E08093E9008FEF9091E8007D -:10126000815095FD06C095ED9A95F1F7000081112A -:10127000F5CF8091E80085FF0DC040E050E063E0CD -:1012800070E0CE0101960E94520B8091E8008E77AB -:101290008093E8000F900F900F90DF91CF91089509 -:1012A0002091F1012430F1F422E02093E9002FEFA6 -:1012B0003091E800215035FD06C035ED3A95F1F743 -:1012C00000002111F5CF2091E80025FF0BC040E080 -:1012D00050E065E070E00E94520B8091E8008E774C -:1012E0008093E8000895CF93DF93EC019091F10192 -:1012F000943009F046C080910C018823D9F0809188 -:101300000D018823B9F09093E9008FEF9091E800E8 -:10131000815095FD06C095E19A95F1F70000811185 -:10132000F5CF8091E80085FF2CC040E050E060E1FF -:1013300070E017C081E08093E9008FEF9091E800A2 -:10134000815095FD06C095ED9A95F1F70000811149 -:10135000F5CF8091E80085FF14C040E050E068E0E0 -:1013600070E0CE010E94520B8091E8008E7780934E -:10137000E80080E1FE01AEE5B1E001900D928A95B2 -:10138000E1F7DF91CF9108958091F001811109C0BB -:101390000E94E70C0E94440D8091E20084608093DB -:1013A000E20008951092F001089508950C942B2204 -:1013B0000E948C1B0E9431220E94EA0F0C94E308C9 -:1013C00042E061EC81E00E94610C42E061EC82E06D -:1013D0000E94610C42E061EC83E00E94610C42E1FA -:1013E00061EC84E00C94610C8091F301833009F48A -:1013F00055C030F4813071F0823009F48EC0089508 -:101400008A3009F47AC08B3009F460C0893009F061 -:101410009CC020C08091F201813A09F096C0809171 -:10142000E800877F8093E8008091F6019091F701B2 -:10143000892B21F460E18EE591E003C060E080E05B -:1014400090E070E00E949D0B8091E8008B77809384 -:10145000E80008958091F201813209F076C0809110 -:10146000F6019091F701009719F0039709F06DC00C -:101470008091E800877F8093E8008091E80082FDFA -:1014800005C08091F1018111F8CF5FC08091F1001A -:1014900080936E018091E8008B7753C08091F201B8 -:1014A000813A09F052C08091F6019091F701892BA1 -:1014B00009F04BC08091E800877F8093E80080911D -:1014C000E80080FFFCCF80910C0136C08091F201D2 -:1014D0008132D9F58091F6019091F701892BA9F518 -:1014E0008091E800877F8093E8000E94960C8091AD -:1014F000F40180930C010C9483148091F2018132E9 -:1015000021F58091E800877F8093E8000E94960C87 -:101510008091F50180936F0108958091F201813AE5 -:10152000A1F48091E800877F8093E8008091E80033 -:1015300080FFFCCF80916F018093F1008091E800E3 -:101540008E778093E8000C94960C089584B7877F7B -:1015500084BF88E10FB6F894809360001092600019 -:101560000FBE90E080E80FB6F894809361009093EE -:1015700061000FBE0E9439100E94E70C0E94440DCA -:101580008091E20084608093E20078940E94CA0F08 -:101590000E943B1082E091E00E94E50F0E94192218 -:1015A0008091F101853069F40E94531B8091EF0115 -:1015B0008823B1F30E947E1B882391F30E943C0B89 -:1015C000EFCF0E944110ECCF292F33272330310574 -:1015D000C9F064F42130310581F02230310509F081 -:1015E00043C08DE690E02AE333E042C0213231056A -:1015F000F1F02232310541F137C082E190E027EA73 -:1016000033E036C099278130910541F08230910551 -:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4 -:1016200002C0E6E0F3E0849190E09F0121C06430C5 -:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5 -:10164000318189E090E014C0643070F470E0FB01F7 -:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47 -:10166000FE4F808190E004C080E090E020E030E018 -:10167000FA0131832083089580E189BD82E189BD2B -:1016800009B400FEFDCF8091D8008F7D8093D800F3 -:101690008091E00082608093E0008091E00081FD15 -:1016A000FCCF0895CF92DF92EF92FF920F931F939A -:1016B000CF93DF93EC018B016A010E94B50C81117D -:1016C00033C0C114D10439F0F60180819181081B27 -:1016D000190BC80FD91FE12CF12C0115110519F1B7 -:1016E0008091E80085FD16C08091E8008E77809398 -:1016F000E800C114D10449F0F60180819181E80E1F -:10170000F91EF182E08285E00FC00E94B50C8823AB -:1017100021F30AC089918093F10001501109FFEF74 -:10172000EF1AFF0ADACF80E0DF91CF911F910F917E -:10173000FF90EF90DF90CF9008952091F8013091C5 -:10174000F9012617370748F06115710539F4209122 -:10175000E8002E772093E80001C0B90140E0611550 -:101760007105A9F12091F101222309F443C025302C -:1017700009F442C02091E80023FD40C02091E80018 -:1017800022FD32C02091E80020FFE9CF4091F30014 -:101790002091F20030E0342BFC01CF01611571057E -:1017A00059F02830310540F481918093F100615067 -:1017B00071092F5F3F4FF1CF41E02830310509F02B -:1017C00040E02091E8002E772093E800C8CF411137 -:1017D000C9CF0AC08091F101882361F0853061F0A2 -:1017E0008091E80083FD0AC08091E80082FFF2CF7B -:1017F00080E0089582E0089583E0089581E00895EF -:101800002091F8013091F9012617370748F061154A -:10181000710539F42091E8002E772093E80001C08B -:10182000B901FC0120E06115710591F18091F10190 -:10183000882309F440C0853009F43FC08091E80056 -:1018400083FD3DC08091E80082FD2FC08091E800BB -:1018500080FFE9CF2091F3008091F20090E0922B7D -:101860006115710559F08830910540F42491209359 -:10187000F1003196615071090196F2CF21E008978D -:1018800009F020E08091E8008E778093E800CBCFCC -:101890002111CCCF0AC08091F101882361F08530FD -:1018A00061F08091E80083FD0AC08091E80082FF2A -:1018B000F2CF80E0089582E0089583E0089581E00A -:1018C0000895982F973058F59093E900981739F0BC -:1018D0007091EC002091ED005091F00003C0242F96 -:1018E000762F50E021FF19C03091EB003E7F3093FE -:1018F000EB003091ED003D7F3093ED003091EB0037 -:1019000031603093EB007093EC002093ED00509326 -:10191000F0002091EE0027FF07C09F5FD3CF8F70AC -:101920008093E90081E0089580E008958091F201BC -:1019300087FF11C08091E80082FD05C08091F10110 -:101940008111F8CF11C08091E8008B770BC0809196 -:10195000F101882349F08091E80080FFF8CF809161 -:10196000E8008E778093E80008952091E40030919C -:10197000E50095E64091EC00842F817040FF22C085 -:101980008091E80080FD1CC08091F101882391F0D6 -:10199000853091F08091EB0085FD10C04091E4000E -:1019A0005091E5004217530729F39A01915011F71E -:1019B00084E0089582E0089583E0089581E0089529 -:1019C00080E008954091E80042FFDECF08950E9434 -:1019D000550D0E945D0DE0EEF0E080818160808316 -:1019E000E8EDF0E080818F77808319BCA7EDB0E04F -:1019F0008C918E7F8C9380818F7E80831092F001FA -:101A000008950F931F93CF93DF930E94550D0E946B -:101A10005D0DC8EDD0E088818F77888388818068EC -:101A2000888388818F7D888319BC1092F101109280 -:101A3000ED011092EF011092EE0100EE10E0F801BE -:101A400080818B7F808388818160888342E060E031 -:101A500080E00E94610CE1EEF0E080818E7F808367 -:101A6000E2EEF0E080818160808380818860808305 -:101A7000F80180818E7F8083888180618883DF91F7 -:101A8000CF911F910F910895E8EDF0E080818F7E56 -:101A90008083E7EDF0E080818160808384E082BF15 -:101AA00081E08093F0010C94010DE8EDF0E080817D -:101AB0008E7F80831092E20008951092DA001092D7 -:101AC000E10008951F920F920FB60F9211242F93E9 -:101AD0003F934F935F936F937F938F939F93AF93B6 -:101AE000BF93EF93FF938091E10082FF0BC0809141 -:101AF000E20082FF07C08091E1008B7F8093E100CC -:101B00000E94C90F8091DA0080FF1FC08091D80029 -:101B100080FF1BC08091DA008E7F8093DA00809175 -:101B2000D90080FF0DC080E189BD82E189BD09B483 -:101B300000FEFDCF81E08093F1010E94C40905C041 -:101B400019BC1092F1010E94D2098091E10080FF3E -:101B500019C08091E20080FF15C08091E2008E7F65 -:101B60008093E2008091E20080618093E2008091A6 -:101B7000D80080628093D80019BC85E08093F10181 -:101B80000E94D6098091E10084FF30C08091E2007C -:101B900084FF2CC080E189BD82E189BD09B400FECB -:101BA000FDCF8091D8008F7D8093D8008091E10097 -:101BB0008F7E8093E1008091E2008F7E8093E2002F -:101BC0008091E20081608093E2008091ED018823A2 -:101BD00011F084E007C08091E30087FD02C081E03E -:101BE00001C083E08093F1010E94D8098091E10057 -:101BF00083FF29C08091E20083FF25C08091E1002E -:101C0000877F8093E10082E08093F1011092ED01E3 -:101C10008091E1008E7F8093E1008091E2008E7FD1 -:101C20008093E2008091E20080618093E20042E0D4 -:101C300060E080E00E94610C8091F00088608093F9 -:101C4000F0000E94D509FF91EF91BF91AF919F9154 -:101C50008F917F916F915F914F913F912F910F9055 -:101C60000FBE0F901F9018951F920F920FB60F92F4 -:101C700011242F933F934F935F936F937F938F9391 -:101C80009F93AF93BF93CF93DF93EF93FF93C09155 -:101C9000E900CF708091EC00D82FD17080FDD0E8A2 -:101CA0001092E9008091F000877F8093F000789493 -:101CB0000E94780E1092E9008091F0008860809375 -:101CC000F000CD2BCF70C093E900FF91EF91DF9131 -:101CD000CF91BF91AF919F918F917F916F915F91C4 -:101CE0004F913F912F910F900FBE0F901F9018951D -:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3 -:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115 -:101D1000F10091938E13FBCF0E94F4098091E800AB -:101D200083FF1FC18091F2019091F301492F50E090 -:101D30004A30510508F015C1FA01EA5AFF4F0C94D8 -:101D4000B323803881F0823809F00BC18091F6010D -:101D50008F708093E9008091EB0085FB882780F9E4 -:101D60001092E90006C08091EE019091EF0191116F -:101D700082609091E800977F9093E8008093F10053 -:101D80001092F100C8C0282F2D7F09F0EAC08823E7 -:101D900019F0823061F0E5C08091F401813009F0E2 -:101DA000E0C0933009F080E08093EF012BC0809178 -:101DB000F401811127C08091F6018F7009F4D1C020 -:101DC0008093E9002091EB0020FF1CC0933021F4A8 -:101DD0008091EB00806214C09091EB009061909331 -:101DE000EB0021E030E0A90102C0440F551F8A95A5 -:101DF000E2F74093EA001092EA008091EB008860DD -:101E00008093EB001092E9008091E800877F86C004 -:101E10008111A7C01091F4011F778091E3008078B1 -:101E2000812B8093E3008091E800877F8093E80016 -:101E30000E94960C8091E80080FFFCCF8091E30027 -:101E400080688093E300111102C082E001C083E04A -:101E50008093F10186C08058823008F082C0809162 -:101E6000F4019091F5018C3D53E0950779F583E0FD -:101E70008A838AE289834FB7F894DE01139620E0C3 -:101E80003EE051E2E32FF0E050935700E49120FF51 -:101E900003C0E295EF703F5FEF708E2F90E0EA3065 -:101EA00010F0C79601C0C0968D939D932F5F24318B -:101EB00049F74FBF8091E800877F8093E8006AE28E -:101EC00070E0CE0101960E949D0B14C0AE014F5FE1 -:101ED0005F4F6091F6010E94E40ABC01009709F48B -:101EE00040C09091E800977F9093E80089819A81A3 -:101EF0000E94000C8091E8008B778093E80031C04D -:101F0000803879F58091E800877F8093E8008091A0 -:101F1000ED018093F1008091E8008E778093E800D6 -:101F20000E94960C1EC081111CC09091F401923049 -:101F3000C0F48091E800877F8093E8009093ED01E2 -:101F40000E94960C8091ED01811106C08091E30002 -:101F500087FD02C081E001C084E08093F1010E940E -:101F6000E0098091E80083FF0AC08091E800877F44 -:101F70008093E8008091EB0080628093EB00AA964A -:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A -:101F900008950895CF938091F1018823A1F0C09115 -:101FA000E900CF709091EC00892F817090FD80E85E -:101FB000C82B1092E9008091E80083FD0E94780E02 -:101FC000CF70C093E900CF910895909375018093ED -:101FD00074010895E0917401F0917501309721F03A -:101FE0000190F081E02D099480E00895E091740162 -:101FF000F0917501309721F00280F381E02D099472 -:102000000895E0917401F0917501309721F00480FA -:10201000F581E02D099408952091720130917301AA -:102020008217930771F09093730180937201E0918E -:102030007401F0917501309721F00680F781E02D51 -:1020400009940895209170013091710182179307CE -:1020500071F09093710180937001E0917401F0919F -:102060007501309721F00084F185E02D09940895E1 -:1020700008950C9438100E94921B0E9433030C9414 -:10208000541C9F92AF92BF92CF92DF92EF92FF9239 -:102090000F931F93CF93DF9300D000D000D0CDB724 -:1020A000DEB70E944B030DE010E0AA24A394B12CEC -:1020B000902E802F0E943904980129583E4F6901C3 -:1020C000F901F080F826A1F40150110988F78FEF8B -:1020D00089838A831B820E949B1B8160782F9D834A -:1020E0008C8349815A816B818D810E94D8102FC0C9 -:1020F0009091DA0191FF04C08E830E943F048E818B -:1021000025E030E0A501022E01C0440F0A94EAF751 -:10211000E42E4F21C1F029839A828E2191E009F4A7 -:1021200090E09B830E949B1B8160782F9D838C8312 -:1021300049815A816B818D810E94D810F60180817E -:10214000E826E08204C021503109E0F6BDCF0E94AC -:102150003B1F109176010E94EA0F1817B9F00E94F8 -:10216000EA0F8093760126960FB6F894DEBF0FBE75 -:10217000CDBFDF91CF911F910F91FF90EF90DF9036 -:10218000CF90BF90AF909F900C94E30826960FB627 -:10219000F894DEBF0FBECDBFDF91CF911F910F919D -:1021A000FF90EF90DF90CF90BF90AF909F900895F9 -:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82 -:1021C0000FBECDBF4F83588769877A878B87DE0123 -:1021D000119686E0FD0111928A95E9F785E0FE01EE -:1021E000379601900D928A95E1F749815A816B816A -:1021F0007C818D819E810E9421172B960FB6F894C9 -:10220000DEBF0FBECDBFDF91CF910895CF9388235E -:1022100009F4C2C0C82F823859F40E94EA0F81FD28 -:10222000BBC089E30E94FB190E94C81A89E30CC055 -:10223000833879F40E94EA0F80FDAEC083E50E94E6 -:10224000FB190E94C81A83E50E943D1ACF910C9495 -:10225000C81A843859F40E94EA0F82FD9DC087E4B1 -:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6 -:10227000813A48F48C2F0E947E2181118DC08C2FD1 -:102280000E94FB19E3CF80E28C0F883048F4C770BE -:1022900081E001C0880FCA95EAF70E94811AD6CF63 -:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB -:1022B00083E890E005C081E890E002C082E890E009 -:1022C000CF910C940C1088E58C0F833108F064C01A -:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118 -:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186 -:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106 -:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173 -:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB -:1023200038C082EE90E035C089EE90E032C08AEE8F -:1023300090E02FC085EB90E02CC086EB90E029C0A8 -:1023400087EB90E026C08CEC90E023C08DEC90E011 -:1023500020C083E891E01DC08AE891E01AC082E9BC -:1023600091E017C084E991E014C081E292E011C0CD -:1023700083E292E00EC084E292E00BC085E292E03C -:1023800008C086E292E005C087E292E002C08AE2DD -:1023900092E0CF910C942210CF910895882309F4F4 -:1023A0004BC0823859F40E94EA0F81FF45C089E38F -:1023B0000E94FB190E94C81A89E30CC0833871F48B -:1023C0000E94EA0F80FF38C083E50E94FB190E943B -:1023D000C81A83E50E943D1A0C94C81A843859F42F -:1023E0000E94EA0F82FF28C087E40E94FB190E9426 -:1023F000C81A87E4EFCF9CEF980F913A58F390E218 -:10240000980F983050F4877091E001C0990F8A9529 -:10241000EAF7892F0E94871ADFCF9BE5980F933048 -:1024200020F480E090E00C940C10885A833120F462 -:1024300080E090E00C9422100895882321F00E94FF -:10244000811A0C94C81A0895882321F00E94871AD3 -:102450000C94C81A08957F928F929F92AF92BF9268 -:10246000CF92DF92EF92FF920F931F93CF93DF9360 -:102470001F92CDB7DEB77C01C62E772EFC010581F9 -:1024800002950F70128111110E949E1A0E94F41978 -:10249000882379F0112369F080E28C0D883048F0B0 -:1024A00082E00E94DD190E94F41991E0D82ED9260D -:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C -:1024C0000C94B323872D807F072D0F70882311F084 -:1024D0000295007F112389F0002309F490C180E266 -:1024E0008C0D883020F4802F0E94811A03C0802F29 -:1024F0000E94911A0E94C81A82C18C2D0E94CE118E -:10250000002309F495C180E28C0D883020F4802FDF -:102510000E94871A03C0802F0E94971A0E94C81A2F -:1025200087C1972D907F872D8F70903211F0829503 -:10253000807FCC2021F0F1E0CF16B1F01EC0112336 -:1025400049F0002309F414C1013009F011C10E94BF -:10255000B11A6EC1002319F0013009F469C18983F1 -:102560000E94B41A89810AC1112321F0023008F0B7 -:102570005FC1FEC001115CC101C1112321F0002324 -:1025800009F4F6C03CC1002309F4F8C03EC1872D10 -:1025900086958695837090E0009719F0019761F019 -:1025A00047C1112321F08C2D972D937002C080E03C -:1025B00090E00E940C103CC1112321F08C2D972D2E -:1025C000937002C080E090E00E94221031C18C2DF7 -:1025D000112319F00E94431E02C00E94AB1E0E94EC -:1025E000301F26C1872D837009F052C0111120C100 -:1025F0008C2D829586958770880F880F9C2D9F70F3 -:10260000892E912CA12CB12C082E04C0880C991C69 -:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041 -:1026200020E030E0B901A80104C0440F551F661F27 -:10263000771F8A95D2F7CB01BA0160957095809586 -:10264000909503C060E070E0CB01272D269526957C -:10265000237030E02230310569F02330310589F0F4 -:10266000682979298A299B292130310571F00E9436 -:102670006918DEC0682979298A299B290E94851852 -:10268000D7C00E946918C501B4010E944D18D0C07E -:10269000112319F0872D817001C08695882309F4D4 -:1026A000C7C08C2D829586958770880F880F9C2DCA -:1026B0009F70892E912CA12CB12C082E04C0880C5F -:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC -:1026D00010E020E030E0B901A80104C0440F551F0C -:1026E000661F771F8A95D2F7CB01BA016095709566 -:1026F0008095909503C060E070E0CB01272D269572 -:1027000026952370422F50E04230510569F0433046 -:10271000510589F0682979298A299B294130510579 -:1027200071F00E94431984C0682979298A299B295C -:102730000E945F197DC00E944319C501B4010E9427 -:10274000271976C08C2D90E0FC01E05EF109E5319F -:10275000F10508F050C0E059FF4F0C94B3230C2D45 -:102760000F70872D8F71112331F00E94C018802FB8 -:102770000E941D125DC00E94E118802F0E94241249 -:1027800057C0112339F0011153C0872D8F710E945A -:1027900006194EC0023008F04BC0F7CF112339F0B4 -:1027A000872D8F710E94C01843C01123C9F3872D54 -:1027B0008F710E94E1183CC0112329F0872D8F7181 -:1027C0000E94AB1835C00E94A11832C0112351F0ED -:1027D000172D1F71812F0E94C01863E0812F0E9466 -:1027E000D41926C081E00E94DD19023008F182E090 -:1027F0000E94DD191DC0112331F0002389F28C2DB8 -:102800000E94061115C0002391F28C2D0E94CE115A -:102810000FC0472D4F706C2DC7010E9415050E94F7 -:10282000C51706C0472D4F706C2DC7010E94F205D9 -:10283000DD20F9F00E94D01980FD1BC0F701128243 -:102840000E94CA190E94C018C7010E9448140E9421 -:10285000CA190F90DF91CF911F910F91FF90EF90C8 -:10286000DF90CF90BF90AF909F908F907F900C940F -:10287000E1180F90DF91CF911F910F91FF90EF9092 -:10288000DF90CF90BF90AF909F908F907F900895F2 -:102890000F931F93CF93DF93EC01888199812B8154 -:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B -:1028B0000E944A05882371F0688179818A810E948B -:1028C000C6198C010E947B190E944218B801CE01E2 -:1028D0000E942B12DF91CF911F910F9108950E94BA -:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471 -:1028F000E11F0E94301F80E090E00E940C1080E0F9 -:1029000090E00C9422100E948E1A0C946F140E9476 -:10291000BB19292F22952F7030E02C3031054CF453 -:102920002A3031056CF42250310922303105A8F4E7 -:1029300007C02C30310569F02F30310551F00DC042 -:10294000803F69F018F4803E40F409C0843F29F4C8 -:1029500006C093FB882780F9089580E0089581E000 -:102960000895CF93DF9300D000D01F92CDB7DEB78C -:102970000F900F900F900F900F90DF91CF910895CF -:10298000CF93DF9300D000D000D0CDB7DEB726962E -:102990000FB6F894DEBF0FBECDBFDF91CF91089583 -:1029A0001F93CF93DF93C091850116E0809186013C -:1029B000C81799F0D0E01C9FF0011D9FF00D112465 -:1029C000E957FE4F408151816281738184819581F5 -:1029D0000E94C0142196C770E9CFDF91CF911F915B -:1029E00008954091B7015091B8016091B90170917B -:1029F000BA018091BB019091BC010C94C0148091EC -:102A0000BC0182958F7009F054C08091B901882370 -:102A100009F44FC080918501A09186016091B701B2 -:102A20007091B8014091BA015091BB01B6E08A178C -:102A300009F43FC090E041155105C1F17F3F11F409 -:102A40006F3FA1F1B89FF001B99FF00D1124E95734 -:102A5000FE4F218172132AC02081621327C0228178 -:102A6000211124C0238134812417350710F421500B -:102A70003109241B350B283C3105C0F42091BC01E1 -:102A80002F7020612093BC0126E0289FF001299F30 -:102A9000F00D1124E457FE4F80818F708061808398 -:102AA00087EB91E00E9448140C94D0140196877033 -:102AB000BECF0895CF92DF92EF92FF920F931F93B4 -:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32 -:102AD0000FBECDBF8C0185E0F801DE011D9601908F -:102AE0000D928A95E1F7D8014C9111965C9111975E -:102AF00012966C9112971396CD90DC9014973091AA -:102B0000B7017091B8018091BA019091BB01009713 -:102B100009F46BC17F3F19F43F3F09F466C1E090AF -:102B2000B901EE2009F4C0C02091BC01C816D90635 -:102B300028F0F601E81BF90BCF0104C080959095B1 -:102B40008C0D9D1DFF24F394883C910578F0F12CA9 -:102B5000207F09F0C6C07C2DD98AC88A89890E9445 -:102B6000B11487EB91E00E944814B1C0822F807F9E -:102B700009F046C0751314C0341312C0611110C09F -:102B80002F7020612093BC010E94F11487EB91E02B -:102B90000E9448148091BC01D80115968C932EC0D8 -:102BA000CD2819F15F3F11F44F3FF9F0F62E611176 -:102BB0001CC0809185012091860136E0821709F4BE -:102BC0005AC090E0389FF001399FF00D1124E95769 -:102BD000FE4F7181571306C07081471303C0728185 -:102BE000711103C001968770E9CFF62E662309F4B0 -:102BF00018C18091BC0181608093BC01F12C11C18E -:102C0000751308C0341306C0611104C08091BC0163 -:102C1000D801C3C04D875E878D859E856A8B0E94D3 -:102C200087146A898823E1F16623D1F12091BC01E0 -:102C3000822F82958F7090E0029774F08091B70197 -:102C40009091B80198878F831986DB86CA862C8776 -:102C5000CE0107960E94481486E0F801A7EBB1E088 -:102C600001900D928A95E1F70E94FF140E94F114E1 -:102C7000FF24F394D6C04D875E878D859E850E9484 -:102C8000BB19292F22952F7030E0223031050CF02E -:102C9000BCC09F7009F0B6C0805E883008F4C1C027 -:102CA000C8010E944814E4CFC816D90608F453C0DE -:102CB000F601E81BF90BCF01883C910508F450C0E0 -:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E -:102CD000F1E086E0DF011D928A95E9F70E94F11488 -:102CE000A0C0751314C0341312C0611110C08091BC -:102CF000BC01F8018583C8010E94481486E0E7EB17 -:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C -:102D10005E878D859E856A8B0E9487146A898823C9 -:102D200009F4BECF662309F4BBCF2091BC01822FEA -:102D300082958F7090E002970CF48ECF8091B7014E -:102D40009091B8019A8389831B82DD82CC822E8385 -:102D5000CE0101967FCF809590958C0D9D1DACCFB7 -:102D6000F62E662309F49CCF75132EC034132CC0A5 -:102D70002091BC0120FD1FC0822F82958F70D9F059 -:102D8000D80115962C9315978F3049F08F5F982FA7 -:102D90009295907F822F8F70892B15968C93C80106 -:102DA0000E94481486E0F801A7EBB1E001900D9273 -:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7 -:102DC0000D928A95E1F72DC04D875E878D859E8592 -:102DD0000E948714811140CF8091BC018160809353 -:102DE000BC01C8010E9448141CC0662309F458CFD6 -:102DF0004D875E878D859E850E948714882309F400 -:102E00004FCF2ACF811148CF0CC0243031050CF0B0 -:102E100047CF9F7009F440CFF8019581907F09F06A -:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D -:102E3000DF91CF911F910F91FF90EF90DF90CF9096 -:102E400008951F93CF93DF93CDB7DEB72C970FB6BE -:102E5000F894DEBF0FBECDBF4F83588769877A874E -:102E60008B879C87CE0107960E945A15882369F0AC -:102E70008F8198852A853B85232BF1F19F3F09F0AF -:102E800063C08F3F09F060C037C086E0FE0137960F -:102E9000DE01119601900D928A95E1F76F81788598 -:102EA000EA85FB85309741F17F3F11F46F3F21F1B7 -:102EB0002091860130E0C9010196877099274091E1 -:102EC000850150E08417950709F447C069837A8328 -:102ED000FD83EC8396E0929FD001939FB00D112467 -:102EE000A957BE4FFE01319601900D929A95E1F7D8 -:102EF000809386010E94D01416E080918501909104 -:102F000086018917C1F1189FC001112489579E4F6E -:102F10000E945A15882379F1E09185011E9FF001E6 -:102F20001124E957FE4F4081518162817381848170 -:102F300095810E94C0148091850190E00196877070 -:102F4000992780938501D9CF4F81588569857A85E6 -:102F50008B859C850E94C014CFCF0E948314109251 -:102F6000860110928501E7EBF1E086E0DF011D921A -:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45 -:102F8000CDBFDF91CF911F910895EF92FF920F93E4 -:102F90001F93CF93DF938C01009709F46CC0F12C41 -:102FA000EE24E394E8012196F8018491843740F4FB -:102FB000843008F051C0813081F0823019F15BC05B -:102FC000853709F444C0A8F19CE7980F903708F0C2 -:102FD00052C08F770E94CE1141C00E5F1F4FFE017D -:102FE000C49180E28C0F883048F4C7708E2D01C0E8 -:102FF000880FCA95EAF70E94A11A14C08C2F0E946C -:1030000006112DC00E5F1F4FFE01C49180E28C0F90 -:10301000883058F4C7708E2D01C0880FCA95EAF722 -:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3 -:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3 -:103040009FE00197F1F700C00000C150F6CF0E5F7E -:103050001F4FFE01F49003C00E9406118E018F2DB8 -:10306000882309F49FCFEFE9FFE03197F1F700C023 -:1030700000008150F5CFDF91CF911F910F91FF900C -:10308000EF90089508956093C1017093C2018093F9 -:10309000C3019093C4010C946F140F931F9300917C -:1030A000C1011091C2012091C3013091C401DC0122 -:1030B000CB01802B912BA22BB32B8093C10190933A -:1030C000C201A093C301B093C4011F910F910C944E -:1030D0006F140F931F930091C1011091C2012091B1 -:1030E000C3013091C401DC01CB0180239123A223D1 -:1030F000B3238093C1019093C201A093C301B09305 -:10310000C4011F910F910C946F140F931F930091A2 -:10311000C1011091C2012091C3013091C401DC01B1 -:10312000CB0180279127A227B3278093C1019093D9 -:10313000C201A093C301B093C4011F910F910C94DD -:103140006F141092BD011092BE011092BF01109237 -:10315000C0010C946F1441E050E060E070E004C0E6 -:10316000440F551F661F771F8A95D2F74093BD0104 -:103170005093BE016093BF017093C0010C946F1413 -:1031800041E050E060E070E004C0440F551F661F4E -:10319000771F8A95D2F78091BD019091BE01A091D1 -:1031A000BF01B091C001482B592B6A2B7B2B409358 -:1031B000BD015093BE016093BF017093C0010C9498 -:1031C0006F1441E050E060E070E004C0440F551F10 -:1031D000661F771F8A95D2F7409550956095709538 -:1031E0008091BD019091BE01A091BF01B091C0013D -:1031F000482359236A237B234093BD015093BE018A -:103200006093BF017093C0010C946F1441E050E0D3 -:1032100060E070E004C0440F551F661F771F8A9559 -:10322000D2F78091BD019091BE01A091BF01B091F4 -:10323000C001482759276A277B274093BD01509337 -:10324000BE016093BF017093C0010C946F140F9383 -:103250001F930091BD011091BE012091BF013091DB -:10326000C001DC01CB01802B912BA22BB32B8093CF -:10327000BD019093BE01A093BF01B093C0011F9107 -:103280000F910C946F140F931F930091BD01109137 -:10329000BE012091BF013091C001DC01CB01802330 -:1032A0009123A223B3238093BD019093BE01A093E9 -:1032B000BF01B093C0011F910F910C946F140F9335 -:1032C0001F930091BD011091BE012091BF0130916B -:1032D000C001DC01CB0180279127A227B32780936F -:1032E000BD019093BE01A093BF01B093C0011F9197 -:1032F0000F910C946F140895CF92DF92EF92FF928A -:103300000F931F93CF93DF938C01C090C101D09096 -:10331000C201E090C301F090C4018091BD01909181 -:10332000BE01A091BF01B091C001C82AD92AEA2AE2 -:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520 -:10334000A795979587950A94D2F780FF06C0B80194 -:103350008C2F0E944808019721F4219760F780E0A4 -:1033600001C08C2FDF91CF911F910F91FF90EF90B3 -:10337000DF90CF900895CF93DF93EC010E947C19EA -:10338000BE010E944808DF91CF910895CB010E94B1 -:10339000BB1908958091C5018595859585950895FA -:1033A0008091C5018770089598E0899F900111244C -:1033B000262B2093C5010C94C0182091C50180953F -:1033C00082238093C501982F977069F430E0482FCD -:1033D000552747FD50952417350729F08595859584 -:1033E00085950C94E11808959091C501977081E03E -:1033F00009F480E0089590910C01992321F09091B7 -:103400000D01911109C020910E0130910F01F901B8 -:1034100032969FEF40E01FC0982F9695969596950F -:103420009F3050F5E0910E01F0910F01E90FF11D71 -:10343000877021E030E0A90102C0440F551F8A9532 -:10344000E2F7CA019181892B818308959F3F39F06A -:103450004F5F4E3041F051915813F8CF0DC05111CC -:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08 -:1034700097FDFA9582830895089590910C01992300 -:1034800021F090910D01911109C020910E01309110 -:103490000F01F9013296205F3F4F1FC0982F96957C -:1034A000969596959F30F0F4E0910E01F0910F0102 -:1034B000E90FF11D877021E030E0A90102C0440F3F -:1034C000551F8A95E2F7CA018095918189238183EE -:1034D00008953196E217F30729F090819813F9CFF8 -:1034E0001082F7CF089581E090E0E0910E01F09115 -:1034F0000F01E80FF91F1082019680319105A9F79D -:1035000008959091D901892B8093D90108958095D0 -:103510009091D90189238093D90108951092D901FE -:1035200008959091D801892B8093D80108958095B2 -:103530009091D80189238093D80108951092D801E1 -:1035400008959091D701892B8093D7010895809594 -:103550009091D70189238093D70108951092D701C4 -:1035600008958093C60108951092C6010895809130 -:103570000E0190910F01FC0131969C01205F3F4F9D -:1035800080E0919191118F5FE217F307D1F70895D1 -:10359000E0910E01F0910F018091D9018083E091BB -:1035A0000E01F0910F0190818091D801892B8083C9 -:1035B000E0910E01F0910F0190818091D701892B4C -:1035C00080838091C601882361F0E0910E01F09123 -:1035D0000F019081892B80830E94B71A811110926C -:1035E000C60180910E0190910F010C94F60F20E01E -:1035F000009739F0AC0141505109842395232F5F86 -:10360000F7CF822F0895CF92DF92EF92FF926C0155 -:10361000EE24FF24C114D104E104F10421F0C70118 -:10362000B60120E101C020E0C72ED82EE92EFF24EC -:10363000C114D104E104F10419F0285FC701B601F7 -:103640006B017C0154E0F694E794D794C7945A95A3 -:10365000D1F7C114D104E104F10419F02C5FC701C2 -:10366000B6016B017C0142E0F694E794D794C794CD -:103670004A95D1F7C114D104E104F10419F02E5F89 -:10368000C701B601DC01CB01B695A7959795879543 -:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5 -:1036A000DF90CF9008958091F101843021F1109244 -:1036B000DB0120E488E190E00FB6F894A8958093B0 -:1036C00060000FBE2093600080E00E94E30883B793 -:1036D000817F846083BF83B7816083BF789488953E -:1036E00083B78E7F83BF88E10FB6F8948093600024 -:1036F000109260000FBE0895089508950E947C1BEB -:103700000E944B030E947D1B0E94400491E08111A6 -:1037100001C090E0892F08950E9483140E94EA0F4F -:103720000C94E30882E084BD93E095BD9AEF97BDC9 -:1037300080936E0008952FB7F8948091DC019091EA -:10374000DD01A091DE01B091DF012FBF0895CF927E -:10375000DF92EF92FF920F931F932FB7F89440914F -:10376000DC015091DD016091DE017091DF012FBF1E -:103770006A017B01EE24FF248C0120E030E0C016BA -:10378000D106E206F30610F4415051099A01281BB4 -:10379000390BC9011F910F91FF90EF90DF90CF90EF -:1037A00008951F920F920FB60F9211248F939F933B -:1037B000AF93BF938091DC019091DD01A091DE0178 -:1037C000B091DF010196A11DB11D8093DC019093A2 -:1037D000DD01A093DE01B093DF01BF91AF919F9116 -:1037E0008F910F900FBE0F901F9018950E94E70CBD -:1037F000F8942FEF87EA91E6215080409040E1F75E -:1038000000C0000087E090EBDC018093FB01909307 -:10381000FC01A093FD01B093FE019CE088E10FB68E -:10382000F894A895809360000FBE90936000FFCF3E -:10383000EF92FF920F931F93CF93DF93D82FCDE09A -:103840008C2F0E94390405E010E0E82EF12CC7010E -:10385000002E02C0959587950A94E2F780FF09C073 -:10386000602F7C2F80E00E94F305D81302C081E016 -:1038700006C00150110958F7C15010F780E0DF91E0 -:10388000CF911F910F91FF90EF900895CF93C82F84 -:103890008CE20E94181C882321F08C2FCF910C946D -:1038A000181C80E0CF910895CF930E949B1D811139 -:1038B00002C00E94811DC5E6C15049F00E944B0321 -:1038C0008FE39CE90197F1F700C00000F5CF89E292 -:1038D0000E94461C811113C18AE20E94461C81117C -:1038E0000E94811D85E00E94461C81110E94F61BEA -:1038F0000E94A61D8093DA0187E00E94461C88235F -:10390000A9F18BE10E94461C882351F08091DA01D5 -:1039100081FB222720F991E0922790FB81F90EC0CC -:103920008EE00E94461C882361F08091DA0182FBC0 -:10393000222720F991E0922790FB82F98093DA0107 -:1039400015C080E10E94461C9091DA01882341F065 -:1039500093FB222720F981E0822780FB93F904C0A2 -:10396000892F809580FB90F99093DA018091DA019C -:103970000E94AA1D0E94B81D8093FA0180EE0E9449 -:10398000461C882341F08091FA01982F909590FB76 -:1039900080F98093FA0189E30E94461C882359F03C -:1039A0008091FA0181FB222720F991E0922790FB78 -:1039B00081F98093FA0182EE0E94461C882359F017 -:1039C0008091FA0182FB222720F991E0922790FB57 -:1039D00082F98093FA0186EE0E94461C882359F0F2 -:1039E0008091FA0183FB222720F991E0922790FB36 -:1039F00083F98093FA0183EE0E94461C882359F0D4 -:103A00008091FA0184FB222720F991E0922790FB14 -:103A100084F98093FA0185E30E94461C882359F0BB -:103A20008091FA0185FB222720F991E0922790FBF3 -:103A300085F98093FA0181E30E94461C882359F09E -:103A40008091FA0186FB222720F991E0922790FBD2 -:103A500086F98093FA0181E10E94461C882359F07F -:103A60008091FA0187FB222720F991E0922790FBB1 -:103A700087F98093FA018091FA010E94BC1D809120 -:103A8000FA0187FB882780F980930D0187E20E9465 -:103A9000461CC82F8EE10E94461C8111C2608FE136 -:103AA0000E94461C8111C46080E20E94461C811164 -:103AB000C86081E20E94461C8111C06182E20E94BE -:103AC000461C8111C06283E20E94461C8111C064C1 -:103AD00084E20E94461C882311F0C06802C0CC23F7 -:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4 -:103AF000682F70E080E090E0CF910C944318CF9154 -:103B000008956DEE7EEF80E090E00E94ED2360E08E -:103B100082E090E00E94DB2360E083E090E00E947E -:103B2000DB2360E084E090E00E94DB2360E085E03E -:103B300090E00C94DB2380E090E00E94D52321E00C -:103B40008D3E9E4F09F020E0822F089582E090E0A4 -:103B50000C94CD23682F82E090E00C94DB2383E06B -:103B600090E00C94CD23682F83E090E00C94DB234D -:103B700084E090E00C94CD23682F84E090E00C94D6 -:103B8000DB238091E20180FF0BC06091130185E08F -:103B9000689FB001112475956795759567952BC041 -:103BA00081FF09C06091130185E0689FB001112475 -:103BB0007595679520C082FF07C06091130185E06D -:103BC000689FB001112417C09091E3019923D1F0AF -:103BD00060911201961788F72091130185E0289FC4 -:103BE00090011124929FA001939F500D112470E029 -:103BF000CA010E949F236038710540F46115710568 -:103C000039F002C065E070E0862F08958FE70895CF -:103C100081E008958091E20180FF08C06091110168 -:103C200070E0759567957595679521C081FF06C011 -:103C30006091110170E07595679519C082FF04C00D -:103C40006091110170E010C09091E3019923C1F0DF -:103C5000609110019617A0F780911101899FC00112 -:103C6000112470E00E949F236038710528F46115CB -:103C7000710521F0862F08958FE7089581E008955A -:103C800061E070E0F4CF803F21F40E94C11D819576 -:103C900004C0813F29F40E94C11D8093E60108956C -:103CA000823F21F40E94C11D819504C0833F29F405 -:103CB0000E94C11D8093E5010895893F19F40E9477 -:103CC0000A1E05C08A3F31F40E940A1E8195809326 -:103CD000E70108958B3F21F40E940A1E819504C0DC -:103CE0008C3F29F40E940A1E8093E8010895843FC6 -:103CF00021F48091E401816017C0853F21F4809117 -:103D0000E401826011C0863F21F48091E401846067 -:103D10000BC0873F21F48091E401886005C0883F93 -:103D200031F48091E40180618093E40108958D3F36 -:103D300021F48091E20181600BC08E3F21F48091DB -:103D4000E201826005C08F3F29F48091E201846026 -:103D50008093E2010895803F39F48091E60187FF66 -:103D60006CC01092E60169C0813F29F48091E601A0 -:103D70001816BCF362C09091E501823F29F497FFC9 -:103D80005CC01092E50159C0833F19F41916CCF3B9 -:103D900054C0893F41F48091E70118160CF04DC0E2 -:103DA0001092E7014AC08A3F29F48091E70187FF1A -:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6 -:103DC0001092E8013AC08C3F29F48091E80118165E -:103DD000BCF333C0843F21F48091E4018E7F17C08F -:103DE000853F21F48091E4018D7F11C0863F21F44D -:103DF0008091E4018B7F0BC0873F21F48091E40127 -:103E0000877F05C0883F31F48091E4018F7E8093E5 -:103E1000E40113C08D3F21F48091E2018E7F0BC03D -:103E20008E3F21F48091E2018D7F05C08F3F29F400 -:103E30008091E2018B7F8093E2018091E501811105 -:103E40000EC08091E60181110AC08091E7018111C5 -:103E500006C08091E801811102C01092E30108952B -:103E600084EE91E00E9401100E949B1B9093E1015F -:103E70008093E00108951F93CF93DF938091E00139 -:103E80009091E1010E94A71BAC019091E30199235D -:103E900021F02091140130E006C0209115018AE044 -:103EA000289F900111244217530708F486C080917F -:103EB000E501C091E601D091E7011091E80181117F -:103EC00007C0C11176C0D11174C0111172C075C084 -:103ED0009F3F19F09F5F9093E301181624F40E940E -:103EE000C11D8093E5018091E50187FF05C00E9417 -:103EF000C11D81958093E5011C1624F40E94C11D0B -:103F00008093E6018091E60187FF05C00E94C11DF4 -:103F100081958093E6016091E501662339F1C091B6 -:103F2000E601CC2319F1772767FD7095872F972F2E -:103F30000E94B02223E333E343E35FE30E941423B0 -:103F40000E947D226093E5016C2F772767FD7095B5 -:103F5000872F972F0E94B02223E333E343E35FE3ED -:103F60000E9414230E947D226093E6011D1624F412 -:103F70000E940A1E8093E7018091E70187FF05C038 -:103F80000E940A1E81958093E701111624F40E9475 -:103F90000A1E8093E8018091E80187FF05C00E9416 -:103FA0000A1E81958093E801DF91CF911F910C94B7 -:103FB000301F9F3F09F08ECF96CFDF91CF911F9199 -:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE -:103FD0001092E3011092E2010895833081F128F4F8 -:103FE000813059F08230D1F00895853009F449C00C -:103FF000B8F1863009F456C0089580911501262F36 -:1040000030E0280F311D2F3F310524F4680F6093F5 -:10401000150108958FEF8093150108958091140183 -:10402000262F30E0280F311D2F3F310524F4680F73 -:104030006093140108958FEF809314010895809187 -:104040001301262F30E0280F311D2F3F310524F4B6 -:10405000680F6093130108958FEF80931301089503 -:1040600080911201262F30E0280F311D2F3F31059E -:1040700024F4680F6093120108958FEF809312016A -:10408000089580911101262F30E0280F311D2F3F18 -:10409000310524F4680F6093110108958FEF809328 -:1040A0001101089580911001262F30E0280F311D55 -:1040B0002F3F310524F4680F6093100108958FEFAE -:1040C000809310010895833011F128F4813049F074 -:1040D000823091F00895853081F120F18630C1F170 -:1040E000089580911501681720F4861B80931501AF -:1040F000089510921501089580911401681720F415 -:10410000861B8093140108951092140108958091E4 -:104110001301681720F4861B8093130108951092F1 -:104120001301089580911201681720F4861B809373 -:1041300012010895109212010895809111016817DB -:1041400020F4861B809311010895109211010895A7 -:1041500080911001681720F4861B80931001089548 -:104160001092100108950F931F938D3109F46BC0C5 -:1041700008F03FC08E3009F47FC0C0F4873009F4E6 -:1041800069C068F4863009F0B1C08091DA01817F9E -:104190008E7F8093DA0181E08093EA01A8C08830A5 -:1041A00009F4A2C08B3009F49FC0A0C0863109F485 -:1041B0009BC078F4803109F472C0813109F096C057 -:1041C0000E94831490910D0181E0892780930D0155 -:1041D0008BC0893109F488C08B3109F087C0809188 -:1041E000DA0181FB222720F991E0922790FB81F9E7 -:1041F0004CC0853309F470C048F4873209F46CC0B0 -:1042000008F459C0893209F467C070C0833438F4A7 -:104210008A3308F04EC0883309F466C067C083341F -:1042200009F45AC0883409F061C00E9483140FEF6A -:1042300013ED20E3015010402040E1F700C00000E2 -:104240000E94F61B51C00E9437220E94EA0F0E9472 -:10425000E3084AC09091DA01892F8095817080FB34 -:1042600090F929F0966098609093DA0140C0997FA8 -:10427000977F9093DA0138C08091DA0182FB222780 -:1042800020F991E0922790FB82F98093DA0199233B -:1042900059F18091DA0181608093DA0125C0809123 -:1042A000DA0183FB222720F991E0922790FB83F922 -:1042B000ECCF895301C08D5141E050E060E070E0E7 -:1042C0008A019B0104C0000F111F221F331F8A9512 -:1042D000D2F7C901B80104C061E070E080E090E06D -:1042E0000E9443180E94831481E001C080E01F9166 -:1042F0000F91089580E0089580E00895CF93C82F2E -:104300008091EA01813079F018F08230E9F187C0BC -:10431000E0910E01F0910F018081813169F08232CC -:1043200009F07FC009C0E0910E01F0910F0180817A -:10433000813111F0823261F48C2F0E947A21811137 -:1043400004C08C2F0E94B3201DC081E090E01AC0F1 -:104350008C2F0E947C21811114C0C43179F048F463 -:10436000CB3079F0C03109F060C082E08093EA017F -:1043700008C0C93219F0C83321F057C01092EA01C1 -:1043800054C081E0817053C0C93289F118F5C4313D -:1043900071F1A8F4C73009F046C08AE08093150196 -:1043A00094E19093140193E0909313018093120190 -:1043B00088E08093110188E28093100134C0CE51CF -:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB -:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC -:1043E00013C0C13579F0C235F1F461E00DC08091A0 -:1043F000E901882319F01092E90115C081E080934A -:10440000EA0115C061E006C08091E9010E94ED1F3C -:104410000AC06AE08091E9010E94632004C0109202 -:10442000EA0180E004C081E002C080E0ABCFCF9120 -:104430000895E1E8F0E08081886080838081816078 -:1044400080838FB7F89493E09093890090ED9093D8 -:1044500088008FBF0895EFE6F0E08081826080835E -:104460000895EFE6F0E080818D7F80830895EFE688 -:10447000F0E0908182E08927808308951F920F9257 -:104480000FB60F9211242F933F934F935F936F9327 -:104490007F938F939F93AF93BF93EF93FF938091FD -:1044A000EB019091EC0101969093EC018093EB016C -:1044B000811103C082E00E94E308E091EC01E695DF -:1044C000E695F0E0EC54FB4FE4918091EB018E1304 -:1044D00003C080E00E94E308FF91EF91BF91AF918C -:1044E0009F918F917F916F915F914F913F912F910C -:1044F0000F900FBE0F901F90189504D06894B111C3 -:104500008DC0089570D088F09F5790F0B92F9927EB -:10451000B751A0F0D1F0660F771F881F991F1AF0CE -:10452000BA95C9F712C0B13081F077D0B1E00895E3 -:1045300074C0672F782F8827B85F39F0B93FCCF364 -:10454000869577956795B395D9F73EF490958095C4 -:10455000709561957F4F8F4F9F4F0895E89409C0E4 -:1045600097FB3EF490958095709561957F4F8F4FA6 -:104570009F4F9923A9F0F92F96E9BB279395F695BC -:10458000879577956795B795F111F8CFFAF4BB0F3A -:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E -:1045A000882311F096E911C0772321F09EE8872F28 -:1045B000762F05C0662371F096E8862F70E060E0E4 -:1045C0002AF09A95660F771F881FDAF7880F96955D -:1045D000879597F9089557FD9058440F551F59F046 -:1045E0005F3F71F04795880F97FB991F61F09F3FE0 -:1045F00079F087950895121613061406551FF2CF09 -:104600004695F1DF08C0161617061806991FF1CF58 -:1046100086957105610508940895E894BB2766277F -:104620007727CB0197F908950BD078C069D028F08F -:104630006ED018F0952309F05AC05FC01124EECF58 -:10464000CADFA0F3959FD1F3950F50E0551F629FED -:10465000F001729FBB27F00DB11D639FAA27F00DDB -:10466000B11DAA1F649F6627B00DA11D661F829F02 -:104670002227B00DA11D621F739FB00DA11D621FE7 -:10468000839FA00D611D221F749F3327A00D611D04 -:10469000231F849F600D211D822F762F6A2F1124E6 -:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39 -:1046B000BB1F661F771F881F91505040A9F79E3F70 -:1046C000510570F014C0AACF5F3FECF3983EDCF3C5 -:1046D000869577956795B795F795E7959F5FC1F7AD -:1046E000FE2B880F911D9695879597F9089597F958 -:1046F0009F6780E870E060E008959FEF80EC089588 -:1047000000240A94161617061806090608950024B0 -:104710000A9412161306140605060895092E03942A -:10472000000C11F4882352F0BB0F40F4BF2B11F49E -:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF -:10474000072E16F4009407D077FD09D00E94B923F4 -:1047500007FC05D03EF4909581959F4F0895709584 -:1047600061957F4F0895EE0FFF1F0590F491E02DA6 -:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8 -:10478000B70710F0A61BB70B881F991F5A95A9F7FA -:1047900080959095BC01CD010895F999FECF92BD09 -:1047A00081BDF89A992780B50895A8E1B0E042E06C -:1047B00050E00C94F523262FF999FECF92BD81BDD0 -:1047C000F89A019700B4021639F01FBA20BD0FB64F -:1047D000F894FA9AF99A0FBE08950196272F0E942D -:1047E000DC230C94DB23DC01CB01FC01F999FECF27 -:1047F00006C0F2BDE1BDF89A319600B40D92415069 -:0A4800005040B8F70895F894FFCF78 -:10480A000220E508730950091C09E8080101C701DB -:10481A0028080A03140A3F4D363975042804F2039E -:10482A00B9034C0365037E039703010203040506DB -:04483A000708090062 -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/naps62/readme.md b/keyboards/ergodox_ez/keymaps/naps62/readme.md new file mode 100644 index 000000000..14728e4cc --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/naps62/readme.md @@ -0,0 +1,29 @@ +# ErgoDox EZ naps62 Configuration + +## Motivation + +I wanted a layout that suited my Linux & Vim usage. I also didn't like the lack of efficient access to some of the more common special characters used in programming. + +## Key features / changes + +### Base Layer (L1) + +* **No `MT(mod, kc)` keys (modifier when pressed, key when tapped).** Those keys work with a global timeout. When a key press is shorter than the timeout, it's considered a tap, otherwise it's a hold. I couldn't find any particular timeout that would work for me. I need to use mods extremely fast, but also want the confort of using them more slowly in other occasions. So I gave up on this feature altogether. +* **Direct access to `{}[]`.** When programming, these are used extremely often. I was still getting used to the coder layer, and I prefer the arrows on the home row, so I used the bottom-right keys for this. +* **Layer keys everywhere.** I either use my little finger or my index finger to go to L1, whichever is more confortable in any given situation. L2 is not used while coding/writing, so I don't need an extremely-optimized access to it. +* **Lang key.** This is nothing more than `Super-Space` combo, which in my systems (both Linux & Windows) is the shortcut to change the keyboard language. I'm Portuguese, so I often cycle between US layout for coding, and PT layout for writing. +* **Special chars on the right-most column.** I only use Ctrl & Shift keys on the left side, so I used the right keys to include some of the more useful special characters as well. + +### Coder Layer (L2) + +* The `=` and `-` signs where nowhere to be found. `-` was already on the base layer, but it's still useful to have a fully-featured NumPad on the coder layer. + +### Media Layer (L3) + +* **Better media keys**. Why was Play/Pause so far away? And where was Mute? I put all my media keys close to each other, including the missing ones +* **Arrow keys on home row.** I use vim, so I'm always on my home row. I use this sometimes to get around, but not as often as to need them on the base row. I'm fine with them here +* I don't use mouse keys. They're still set up, and I made some changes as an experiment, but I mostly forgot they exist by now. + +## Author + +[Miguel Palhas](https://github.com/naps62) diff --git a/keyboards/ergodox_ez/keymaps/ordinary/compiled.hex b/keyboards/ergodox_ez/keymaps/ordinary/compiled.hex deleted file mode 100644 index 501f14f9f..000000000 --- a/keyboards/ergodox_ez/keymaps/ordinary/compiled.hex +++ /dev/null @@ -1,1182 +0,0 @@ -:100000000C94ED020C9431030C9431030C943103E5 -:100010000C9431030C9431030C9431030C94310390 -:100020000C9431030C9431030C94C10F0C94931075 -:100030000C9431030C9431030C9431030C94310370 -:100040000C9431030C94FD220C9431030C94310375 -:100050000C9431030C94DF1D0C9431030C94310388 -:100060000C9431030C9431030C9431030C94310340 -:100070000C9431030C9431030C9431030C94310330 -:100080000C9431030C9431030C9431030C94310320 -:100090000C9431030C9431030C9431030C94310310 -:1000A0000C9431030C9431030C943103AB05DF0540 -:1000B00004064206AB05E8052606500605070507B7 -:1000C000D406DC06E406F2060011221110122211F9 -:1000D000101267118A111012DF11F211C114C1142C -:1000E000F014F01426154615771677165115771665 -:1000F0000116011668167716771671160E160E166B -:100100000E160E160E160E160E160E160E160E16CF -:100110000E160E160E160E160E160E1620162D168E -:1001200034163B16451600000000000000000000D9 -:10013000000000000000000000000AC80BC80CC846 -:100140000DC80EC80FC810C811C80D200C200B30E8 -:100150000A30E00000001E00140004001D0000072B -:100160004E001F001A0016001B00000F4C0020005C -:10017000080007000600E2002A002100150009001F -:100180001900E3004B00220017000A0005000000E0 -:100190004A0029002F0000002B0200004D002D0016 -:1001A000300000002B000000500023001C000B005A -:1001B000110000004F00240018000D001000E7009F -:1001C000520025000C000E003600E6002C00260030 -:1001D00012000F003700000F280027001300330023 -:1001E000380000075100112010200F200E30E400CD -:1001F00000000100010001000100E00000003A00E1 -:100200001E0220022202000751003B001F022102B1 -:100210002302000F28003C002F0226022F00E200DC -:100220002C003D00300227023000E30052003E0067 -:10023000240235003502000050002900360200007B -:100240002B0000004F002D00370200002B020000A1 -:100250004A003F0031023800310000004D004000EC -:10026000240021001E0027684B00410025002200C9 -:100270001F0037644C0042002600230020002E6F30 -:100280002A004300380025022D002E674E00010091 -:1002900001000100010028610000010001000100CF -:1002A0000100E000000044006600A6000000000716 -:1002B000B50045001430F2001630F600000068006A -:1002C000F000F100F100F400B60069001530F30011 -:1002D0001730F500B4006A00A900AA00A8000000C9 -:1002E000B8002900F9000000FA000000B900000081 -:1002F000F9000000FA000000AC006B00460053005B -:1003000000000000AB006C004A0050004D0049683E -:10031000A9006D005200510051004C64AE006E0007 -:100320004B004F004E00000FAD006F00B100B30056 -:1003300000000007AA000100010001000100E40024 -:10034000000001000100010001000100000029007F -:100350000100010001000100010001000100010095 -:100360000100010001000100010001000100010085 -:100370000100010001000100010001000100010075 -:100380000100010001000000010001000100000067 -:100390000100000001000100010000000100000058 -:1003A0000100010001000100010000000100010046 -:1003B0000100010001000100010001000100010035 -:1003C0000100010001000100010001000100010025 -:1003D00001002A00010001000100010001000100EC -:1003E00001000100E5000100000016034500720055 -:1003F00067006F0044006F007800200045005A003D -:10040000000016034500720067006F0044006F0093 -:100410007800200045005A00000004030904090286 -:100420006D00040100A0FA090400000103010100AD -:100430000921110100012240000705810308000A7B -:100440000904010001030102000921110100012238 -:100450004D000705820308000A0904020001030099 -:10046000000009211101000122360007058303085D -:10047000000A090403000103000000092111010022 -:100480000122390007058403100001120110010048 -:10049000000008EDFE07130100010200010501093B -:1004A00006A101050719E029E71500250195087542 -:1004B000018102050819012905950575019102952B -:1004C000017503910105071900297715002501958C -:1004D0007875018102C005010980A101850216011C -:1004E0000026B7001A01002AB70075109501810097 -:1004F000C0050C0901A1018503160100269C021A02 -:1005000001002A9C02751095018100C005010902B5 -:10051000A1010901A10005091901290515002501FD -:100520009505750181029501750381010501093069 -:1005300009311581257F95027508810609381581D5 -:10054000257F950175088106050C0A38021581255D -:100550007F950175088106C0C005010906A1010546 -:100560000719E029E7150025019508750181029515 -:100570000175088101050819012905950575019185 -:10058000029501750391010507190029FF15002641 -:10059000FF00950675088100C00000000000000003 -:1005A00000000000010204060A0F17202C3A4A5DE1 -:1005B00071879DB3C7DAE9F5FCFFFCF5E9DAC7B34B -:1005C0009D87715D4A3A2C20170F0A06040201002C -:1005D0000000000000000000000011241FBECFEF4B -:1005E000DAE0DEBFCDBF04B603FE24C08091050271 -:1005F00090910602A0910702B09108028730904BBB -:10060000A740B04BB9F41092050210920602109266 -:1006100007021092080214BE84B7877F84BF88E166 -:100620000FB6F89480936000109260000FBEE0E077 -:10063000FFE3099511E0A0E0B1E0E8E8F9E402C0C9 -:1006400005900D92A433B107D9F712E0A4E3B1E00D -:1006500001C01D92A530B107E1F70E94090D0C946D -:10066000C2240C9400001092B9008AE08093B80074 -:10067000089594EA9093BC009091BC0097FFFCCF42 -:100680009091B900987F983021F0903111F081E07D -:1006900008958093BB0084E88093BC008091BC00E7 -:1006A00087FFFCCF8091B900887F883111F08034BA -:1006B00071F780E0089584E98093BC008091BC00CC -:1006C00084FDFCCF08958093BB0084E88093BC0038 -:1006D0008091BC0087FFFCCF9091B900987F81E0AA -:1006E000983209F480E0089584E88093BC008091FA -:1006F000BC0087FFFCCF8091BB00089580B38C7055 -:1007000080BB81B3836F81BB08958091010181110A -:1007100015C080E40E9439038093010181110CC04F -:1007200082E10E94630380930101811105C08FEF74 -:100730000E946303809301010E945B0384B1807F68 -:1007400084B985B1807F85B98AB1837F8AB98BB13D -:10075000837F8BB93E98469808950E944F058093F9 -:1007600001010E9485030E947E03A5E3B1E0E3E45A -:10077000F1E08EE08E0F11921D928E13FCCF0C943F -:1007800039050E944F05809301010E9485030E9454 -:100790007E03A5E3B1E0E3E4F1E08EE08E0F119279 -:1007A0001D928E13FCCF0895BF92CF92DF92EF92ED -:1007B000FF920F931F93CF93DF93809101018823C2 -:1007C00079F0809134018F5F80933401811108C0EA -:1007D0000E944F0580930101811102C00E94E10433 -:1007E00005E311E0C0E0D0E0DD24D39482E0C82E20 -:1007F000EE24E394F12CC730D10500F5809101017E -:10080000811164C080E40E94390380930101811149 -:1008100012C082E10E9463038093010181110BC029 -:10082000C7010C2E01C0880F0A94EAF780950E9438 -:100830006303809301010E945B0348C0CA30A1F0AA -:1008400028F4C83059F0C93061F005C0CC3089F0C7 -:1008500070F0CD3089F0209A289810C0219A2998FC -:100860000DC0229A2A980AC0239A2B9807C0529A40 -:1008700001C0539A5B9802C03E9A469890EA9A95B6 -:10088000F1F79FB1799902C082E001C080E09170D8 -:100890009D25982B7C9902C084E001C080E0892BC3 -:1008A0007D9902C038E001C030E0832B7E9902C000 -:1008B00020E101C020E0822B9FB19095991F9927DC -:1008C000991F9295990F907E892B0FC080910101FD -:1008D000811149C080E40E9439038093010188237B -:1008E00079F1B12C0E945B038B2DF8019081981750 -:1008F00019F08083C09200010E94850321960F5F4A -:100900001F4FCE30D10509F076CF809100018823AA -:1009100061F1815080930001882339F08FE99FE0D5 -:100920000197F1F700C0000020C0A3E4B1E0E5E3C7 -:10093000F1E0CF01825F91919D938E13FCCF15C0A2 -:1009400083E10E946303809301018111CACF81E496 -:100950000E943903809301018111C3CF0E94740367 -:10096000B82EB094BFCF80E0C0CF0E94DF0481E0FA -:10097000DF91CF911F910F91FF90EF90DF90CF907B -:10098000BF900895E82FF0E0ED5BFE4F8081089561 -:1009900008950F931F93CF93DF93C3E4D1E010E04A -:1009A0000C2F025F899190E00E94561D180F0C13C6 -:1009B000F9CF812FDF91CF911F910F9108950C9462 -:1009C000090756985E9825982D9826982E9827986E -:1009D0002F988FEF90E090938900809388009093F8 -:1009E0008B0080938A0090938D0080938C00259AD1 -:1009F0002D9A2FEF80E792E0215080409040E1F760 -:100A000000C00000269A2E9A2FEF80E792E0215036 -:100A100080409040E1F700C00000279A2F9A2FEF06 -:100A200080E792E0215080409040E1F700C0000054 -:100A300025982D982FEF80E792E02150804090403C -:100A4000E1F700C0000026982E982FEF80E792E093 -:100A5000215080409040E1F700C0000027982F9877 -:100A600056985E9825982D9826982E9827982F9816 -:100A7000089589EA8093800089E08093810024981A -:100A80002C983F988AB18F748AB96E98479A8BB127 -:100A9000806B8BB9769A0E94E1040C94080780E27F -:100AA000809301018091510181110EC00E94330396 -:100AB00081E0809351012FEF83ED90E3215080403E -:100AC0009040E1F700C0000080E40E943903809369 -:100AD000010181112EC00E946303809301018111E5 -:100AE00028C00E94630380930101811122C08FE31B -:100AF0000E9463038093010181111BC00E945B036C -:100B000080E40E94390380930101811112C08CE0BE -:100B10000E9463038093010181110BC00E94630353 -:100B200080930101811105C08FE30E9463038093CC -:100B300001010E945B03809101010895462F50E05E -:100B4000FA013A97EE30F10508F05FC1DC01EA5A8C -:100B5000FF4F0C94722412962C9112978091580199 -:100B6000909159012223F9F015962C91207FD9F408 -:100B700001968330910510F082E090E09093590146 -:100B800080935801809158019091590182309105CC -:100B900029F489E30E94651389E30EC0019709F0E7 -:100BA00034C181EEFAC001979093590180935801A6 -:100BB000892B09F02AC181EE0E942D1426C11296BC -:100BC0002C918091560190915701222379F090C089 -:100BD00012963C91129715962C9180915601909106 -:100BE0005701207F31117AC009F09FC0019790937F -:100BF000570180935601892B09F007C18091530159 -:100C0000811103C181E067C012963C91129715963D -:100C10002C918091540190915501207F332361F0F4 -:100C2000222309F491C0009709F08EC0209152014F -:100C300021118AC08BE2B1C02223B1F00097A1F448 -:100C400020915201211110C08BE2B6CF12963C9137 -:100C5000129715962C918091540190915501207F07 -:100C6000311168C009F08DC00197909355018093B0 -:100C70005401892B09F0C9C0809152018111C5C06E -:100C800082E029C012969C91129715968C91992317 -:100C9000B1F0982F907F79F080FD0DC085E37DC085 -:100CA00012969C91129715968C91992379F0982F12 -:100CB000907F09F06FC083E00E941F1BA6C0982F91 -:100CC000907F41F080FD06C085E376CF982F907F1E -:100CD00009F066C083E00E94401B97C0222341F0C8 -:100CE000009731F420915301211102C084E355C0D3 -:100CF00001968330910510F082E090E090935701C7 -:100D00008093560180915601909157018230910550 -:100D100029F0019709F079C081E0CECF909153017D -:100D200081E089278093530170C0009709F05ECF5E -:100D300084E342CF222341F0009731F42091520105 -:100D4000211102C081E329C001968330910510F082 -:100D500082E090E09093550180935401809154017A -:100D6000909155018230910529F0019709F04DC00D -:100D700082E0A2CF9091520181E0892780935201B5 -:100D800044C0009709F070CF2091520121116CCF1F -:100D900081E312CF80FD8FCF8EE20E94651335C0B4 -:100DA00080FD98CF8EE208CF12968C91882311F0A7 -:100DB00080EF0FC080EF12C012968C91882311F043 -:100DC00080EF15C080EF1AC012968C91882329F00D -:100DD00081EF0E94FC1E82EF0DC081EF0E94641F14 -:100DE00082EF0FC012968C91882339F081EF0E9418 -:100DF000FC1E83EF0E94FC1E06C081EF0E94641F50 -:100E000083EF0E94641F0E94E91F80E090E0089534 -:100E100008958091580190915901892B19F0259AD4 -:100E20002D9A0DC0E0910E01F0910F01808185FD9A -:100E3000F6CF0E94491281FDF2CF25982D9880911E -:100E4000C60181FF03C0269A2E9A02C026982E98CA -:100E50008091C60182FF03C0279A2F9A0895279890 -:100E60002F98089581E0089581E008950C94340747 -:100E70000895282F882339F090E02A3010F44D96F9 -:100E800008950697089587E290E00895AF92BF9283 -:100E9000DF92EF92FF920F931F93CF93DF938C011A -:100EA000FC01C081D181CE010E94DB1BBE010E94EA -:100EB000B60AEC01B8010E943607882309F4C9C1BB -:100EC000F8018281882309F4BEC0809166018111F6 -:100ED0001FC0C431F0E7DF0709F0B5C10E94380731 -:100EE00081E0809366010E94A91D90936501809323 -:100EF000640110925D0110925F0110925E011092E8 -:100F00006101109260011092630110926201A1C10F -:100F100080916401909165010E94B51D883C910506 -:100F200070F480915D01E82FF0E0EE0FFF1FE25AB0 -:100F3000FE4FD183C0838F5F80935D018AC1C13032 -:100F400020E8D20708F451C0F8018281882309F40F -:100F50007EC05E01E894B7F880915C01813079F041 -:100F600050F08230C1F482EE0E94651387E50E9442 -:100F7000651387E50EC082EE0E9465130CC080EEFB -:100F80000E94651381EE0E94651388E10E9465133B -:100F900088E10E942D148CE0E82EF12CC5010E2C66 -:100FA00002C0969587950A94E2F78F700E943907E0 -:100FB000D82E0E9465138D2D0E942D14F4E0EF1A97 -:100FC000F1082CEFE2162FEFF20641F780915C0159 -:100FD000813029F010F0823041F482EE04C080EEBE -:100FE0000E942D1481EE0E942D14C43180E7D80791 -:100FF00068F4C23090E7D90708F046C0C115E0E7B1 -:10100000DE0771F0C130D047A1F10CC1C33320E736 -:10101000D20709F4D8C0C433D04709F4EBC002C1E9 -:10102000F8018281882309F402C10E94E216FFEFD1 -:1010300024E38CE0F15020408040E1F700C0000044 -:101040000E94041E06C1C13080E8D80770F2C43186 -:1010500020E7D20708F0B3C0C23080E7D807A0F479 -:10106000C11590E7D90709F4E2C0C130D04709F0B3 -:10107000D9C0F8018281882309F4D9C08091E301A5 -:1010800081608093E301E5C0F8018281882309F43F -:10109000CEC00E945E1E811102C00E94441E0E94AA -:1010A000711E90E09093F7018093F601C230F0E753 -:1010B000DF0721F48091F60181607AC0C33020E718 -:1010C000D20721F48091F601826072C0C43080E7BB -:1010D000D80721F48091F60184606AC0C53090E79A -:1010E000D90719F48091F60127C0C630E0E7DE0782 -:1010F00021F48091F60180615BC0C730F0E7DF0723 -:1011000021F48091F601806253C0C83020E7D207F5 -:1011100021F48091F60180644BC0C93080E7D80784 -:1011200021F48091F601806843C0CA3090E7D90766 -:1011300029F48091F601846088603AC0CB30E0E702 -:10114000DE0721F48091F6018E7F32C0CC30F0E7CB -:10115000DF0721F48091F6018D7F2AC0CD3020E792 -:10116000D20721F48091F6018B7F22C0CE3080E738 -:10117000D80719F48091F6011AC08091F601CF309A -:1011800090E7D90711F48F7E13C0C031E0E7DE0786 -:1011900011F48F7D0DC0C131F0E7DF0711F48F7BB3 -:1011A00007C0C231D04711F48F7702C08B7F877F91 -:1011B0008093F6018091F6010E94751E4AC0C333E8 -:1011C000F0E7DF07A1F4F8018281882321F0109273 -:1011D0005A0182E016C080915A01811106C086E250 -:1011E0000E94651386E20E942D1482E018C0C43369 -:1011F000D047C1F4F8018281882331F010925B015D -:1012000080E20E947C1425C080915B01811106C0A0 -:1012100087E20E94651387E20E942D1480E20E94FB -:10122000831417C081E080935A0180935B01C80149 -:10123000DF91CF911F910F91FF90EF90DF90BF90C2 -:10124000AF900C943207C130F0E8DF0708F081CE90 -:10125000CCCE80E0DF91CF911F910F91FF90EF9066 -:10126000DF90BF90AF90089526E0729FF0011124A7 -:1012700044E5849FE00DF11D1124E60FF11DEE0FF2 -:10128000FF1FE65BFE4F859194910E94C80A81156D -:1012900060E49607B0F5811570E3970708F0DEC0AB -:1012A000803E9105D8F4803C910508F06CC0883AE6 -:1012B000910578F4853A910508F06BC0813091056D -:1012C00009F452C108F40FC18430910508F04CC1F3 -:1012D0000AC18B3B910508F467C005C18F3F91059A -:1012E00009F048F4803F910508F0ADC0883E9105B3 -:1012F00008F43AC1F8C0811520E2920708F0A5C0B1 -:101300000895811543E5940790F4811562E59607E9 -:1013100008F0C8C0811571E5970708F0BEC08115B7 -:1013200020E5920708F09DC09F70906A089581158E -:1013300045E59407D8F4811564E5960708F0C8C020 -:10134000482F4695469570E2479FA001112483706F -:10135000992721E030E0B90102C0660F771F8A9516 -:10136000E2F7CB01842B952B9A680895811576E5D9 -:10137000970708F4B2C09C0130562115304108F09F -:10138000B2C09F70AEC0FC01EE0FFF1FEA55F040E7 -:1013900062C0853A910509F4A9C0863A910509F021 -:1013A000A8C082E890E40895883A910509F4A4C0A1 -:1013B000893A910509F4A3C08A3A910509F4A2C0BB -:1013C0008B3A910509F4A1C08C3A910509F4A0C0AB -:1013D0008D3A910509F49FC0803B910509F49EC0A8 -:1013E0008E3A910509F49DC08F3A910509F49CC08D -:1013F000813B910509F49BC0823B910509F49AC099 -:10140000833B910509F499C0843B910509F498C088 -:10141000853B910509F497C0863B910509F496C078 -:10142000873B910509F495C0883B910509F494C068 -:10143000893B910509F493C08A3B910509F492C058 -:1014400080E094E4089590650895FC01FF70EE0F2C -:10145000FF1FEA5DFE4F8591949108959927906C46 -:101460000895482F437021E030E002C0220F331F5F -:101470004A95E2F73C68AC0164E0569547956A9559 -:10148000E1F74370342B8F708695869560E2869FD6 -:10149000C0011124822B932B0895982F8827816FE8 -:1014A000906A0895482F4695469570E2479FA0019F -:1014B00011248370992721E030E0B90102C0660F42 -:1014C000771F8A95E2F7CB01842B952B9C680895B2 -:1014D000982F8827846F906A08958F719927982F85 -:1014E00088279062089580E090E0089581E890E474 -:1014F000089583E890E4089582EE94E4089589EED7 -:1015000094E408958AEE94E4089585EB94E40895B4 -:1015100086EB94E4089587EB94E408958CEC94E4CE -:1015200008958DEC94E4089583E895E408958AE89D -:1015300095E4089582E995E4089584E995E4089591 -:1015400081E296E4089583E296E4089584E296E4C5 -:10155000089585E296E4089586E296E4089587E288 -:1015600096E408958AE296E40895089596E0799FB6 -:10157000F001112494E5899FE00DF11D1124E60F7F -:10158000F11DEE0FFF1FE65BFE4F859194910895CC -:101590008238910549F1B0F48133910509F458C0BE -:1015A00048F48932910509F44EC08A32910509F454 -:1015B00054C008958533910509F440C089339105DD -:1015C00099F00895833E910529F138F4803E910504 -:1015D00091F0823E9105A1F00895863E9105F9F0C3 -:1015E000873E910531F108952091F60120FD3AC022 -:1015F00021FD38C008958091F60180FD35C032C0CC -:101600008091F60182FF32C08091F60184FD30C0E6 -:1016100083EE39C08091F60182FD28C0F5CF80911C -:10162000F60183FF27C08091F60184FD21C087EE7B -:101630002AC08091F60183FD1DC0F5CF8091F6018F -:1016400085FD1AC01BC08091F60185FD17C014C02E -:101650008091F60186FD14C015C08091F60186FDCB -:1016600011C00EC080EE0FC089E30DC082EE0BC02A -:1016700080E009C086EE07C089E205C085E303C0AB -:101680008AE201C081E390E0089508950C94450B2F -:10169000809177010895CF93DF9300D01F92CDB74B -:1016A000DEB79C018091FC01843019F593E09983A9 -:1016B0003B832A839093E9008FEF9091E80081505B -:1016C00095FD06C095ED9A95F1F700008111F5CFD3 -:1016D0008091E80085FF0DC040E050E063E070E0DD -:1016E000CE0101960E94B10D8091E8008E77809323 -:1016F000E8000F900F900F90DF91CF910895CF9356 -:10170000DF9300D01F92CDB7DEB72091FC012430CB -:1017100021F522E029839B838A8383E08093E9007B -:101720008FEF9091E800815095FD06C095ED9A9558 -:10173000F1F700008111F5CF8091E80085FF0DC021 -:1017400040E050E063E070E0CE0101960E94B10DF0 -:101750008091E8008E778093E8000F900F900F90B3 -:10176000DF91CF9108952091FC012430F1F422E023 -:101770002093E9002FEF3091E800215035FD06C09D -:1017800035ED3A95F1F700002111F5CF2091E800F1 -:1017900025FF0BC040E050E065E070E00E94B10D15 -:1017A0008091E8008E778093E8000895CF93DF93CF -:1017B000EC019091FC01943009F046C080910C013D -:1017C0008823D9F080910D018823B9F09093E90026 -:1017D0008FEF9091E800815095FD06C095E19A95B4 -:1017E000F1F700008111F5CF8091E80085FF2CC052 -:1017F00040E050E060E170E017C081E08093E900D4 -:101800008FEF9091E800815095FD06C095ED9A9577 -:10181000F1F700008111F5CF8091E80085FF14C039 -:1018200040E050E068E070E0CE010E94B10D809190 -:10183000E8008E778093E80080E1FE01A7E6B1E042 -:1018400001900D928A95E1F7DF91CF9108958091F3 -:10185000FB01811109C00E94460F0E94A30F8091D5 -:10186000E20084608093E20008951092FB010895E5 -:1018700008950C94EA220E949A1D0E94F0220E9470 -:1018800049120C94460B42E061EC81E00E94C00ECC -:1018900042E061EC82E00E94C00E42E061EC83E035 -:1018A0000E94C00E42E161EC84E00C94C00E809175 -:1018B000FE01833009F455C030F4813071F082307C -:1018C00009F48EC008958A3009F47AC08B3009F487 -:1018D00060C0893009F09CC020C08091FD01813A30 -:1018E00009F096C08091E800877F8093E80080919E -:1018F000010290910202892B21F460E187E691E0D8 -:1019000003C060E080E090E070E00E94FC0D8091F8 -:10191000E8008B778093E80008958091FD01813283 -:1019200009F076C08091010290910202009719F0AF -:10193000039709F06DC08091E800877F8093E800ED -:101940008091E80082FD05C08091FC018111F8CFF3 -:101950005FC08091F100809377018091E8008B77E0 -:1019600053C08091FD01813A09F052C0809101027B -:1019700090910202892B09F04BC08091E800877F8B -:101980008093E8008091E80080FFFCCF80910C01FB -:1019900036C08091FD018132D9F58091010290918C -:1019A0000202892BA9F58091E800877F8093E800E7 -:1019B0000E94F50E8091FF0180930C010C94E216B9 -:1019C0008091FD01813221F58091E800877F80932D -:1019D000E8000E94F50E809100028093780108953E -:1019E0008091FD01813AA1F48091E800877F809386 -:1019F000E8008091E80080FFFCCF8091780180931F -:101A0000F1008091E8008E778093E8000C94F50E49 -:101A1000089584B7877F84BF88E10FB6F8948093D8 -:101A20006000109260000FBE80E880936100109209 -:101A300061000E9498120E94460F0E94A30F80919D -:101A4000E20084608093E20078940E9429120E9450 -:101A50009A1282E091E00E9444120E94D822809162 -:101A6000FC01853069F40E94621D8091FA0188238F -:101A7000B1F30E948C1D882391F30E949B0DEFCF40 -:101A80000E94A012ECCF292F332723303105C9F053 -:101A900064F42130310581F02230310509F043C072 -:101AA0008DE690E02EE134E042C021323105F1F0C4 -:101AB0002232310541F137C082E190E02BE834E079 -:101AC00036C099278130910541F08230910541F06F -:101AD000892B49F5EAE1F4E005C0E2E0F4E002C058 -:101AE000EAEEF3E0849190E09F0121C06430D8F4E5 -:101AF000E62FF0E0EE0FFF1FEE5DFE4F20813181FB -:101B000089E090E014C0643070F470E0FB01EE0FE7 -:101B1000FF1FE65EFE4F20813181FB01EA5EFE4F32 -:101B2000808190E004C080E090E020E030E0FA01A5 -:101B300031832083089580E189BD82E189BD09B4A4 -:101B400000FEFDCF8091D8008F7D8093D8008091DA -:101B5000E00082608093E0008091E00081FDFCCF96 -:101B60000895CF92DF92EF92FF920F931F93CF933E -:101B7000DF93EC018B016A010E94140F811133C0C5 -:101B8000C114D10439F0F60180819181081B190B31 -:101B9000C80FD91FE12CF12C0115110519F1809105 -:101BA000E80085FD16C08091E8008E778093E800FC -:101BB000C114D10449F0F60180819181E80EF91E2B -:101BC000F182E08285E00FC00E94140F882321F388 -:101BD0000AC089918093F10001501109FFEFEF1ABB -:101BE000FF0ADACF80E0DF91CF911F910F91FF9034 -:101BF000EF90DF90CF90089520910302309104027E -:101C00002617370748F06115710539F42091E8006F -:101C10002E772093E80001C0B90140E061157105FD -:101C2000A9F12091FC01222309F443C0253009F4D5 -:101C300042C02091E80023FD40C02091E80022FD31 -:101C400032C02091E80020FFE9CF4091F3002091BD -:101C5000F20030E0342BFC01CF016115710559F021 -:101C60002830310540F481918093F1006150710971 -:101C70002F5F3F4FF1CF41E02830310509F040E0C0 -:101C80002091E8002E772093E800C8CF4111C9CFFA -:101C90000AC08091FC01882361F0853061F0809159 -:101CA000E80083FD0AC08091E80082FFF2CF80E067 -:101CB000089582E0089583E0089581E008952091D9 -:101CC0000302309104022617370748F061157105A9 -:101CD00039F42091E8002E772093E80001C0B90183 -:101CE000FC0120E06115710591F18091FC018823D0 -:101CF00009F440C0853009F43FC08091E80083FDBD -:101D00003DC08091E80082FD2FC08091E80080FFF7 -:101D1000E9CF2091F3008091F20090E0922B6115C1 -:101D2000710559F08830910540F424912093F10019 -:101D30003196615071090196F2CF21E0089709F0C0 -:101D400020E08091E8008E778093E800CBCF2111CE -:101D5000CCCF0AC08091FC01882361F0853061F00E -:101D60008091E80083FD0AC08091E80082FFF2CFF5 -:101D700080E0089582E0089583E0089581E0089569 -:101D8000982F973058F59093E900981739F0709193 -:101D9000EC002091ED005091F00003C0242F762F2D -:101DA00050E021FF19C03091EB003E7F3093EB00F3 -:101DB0003091ED003D7F3093ED003091EB003160CC -:101DC0003093EB007093EC002093ED005093F00003 -:101DD0002091EE0027FF07C09F5FD3CF8F708093C5 -:101DE000E90081E0089580E008958091FD0187FF7A -:101DF00011C08091E80082FD05C08091FC01811135 -:101E0000F8CF11C08091E8008B770BC08091FC0166 -:101E1000882349F08091E80080FFF8CF8091E800A6 -:101E20008E778093E80008952091E4003091E500DA -:101E300095E64091EC00842F817040FF22C0809194 -:101E4000E80080FD1CC08091FC01882391F0853062 -:101E500091F08091EB0085FD10C04091E40050911D -:101E6000E5004217530729F39A01915011F784E0D6 -:101E7000089582E0089583E0089581E0089580E068 -:101E800008954091E80042FFDECF08950E94B40F0C -:101E90000E94BC0FE0EEF0E0808181608083E8ED7D -:101EA000F0E080818F77808319BCA7EDB0E08C9142 -:101EB0008E7F8C9380818F7E80831092FB010895AA -:101EC0000F931F93CF93DF930E94B40F0E94BC0F18 -:101ED000C8EDD0E088818F77888388818068888387 -:101EE00088818F7D888319BC1092FC011092F801C3 -:101EF0001092FA011092F90100EE10E0F8018081D1 -:101F00008B7F808388818160888342E060E080E00D -:101F10000E94C00EE1EEF0E080818E7F8083E2EED1 -:101F2000F0E0808181608083808188608083F80117 -:101F300080818E7F8083888180618883DF91CF91CB -:101F40001F910F910895E8EDF0E080818F7E8083EE -:101F5000E7EDF0E080818160808384E082BF81E0F2 -:101F60008093FB010C94600FE8EDF0E080818E7FA0 -:101F700080831092E20008951092DA001092E1003E -:101F800008951F920F920FB60F9211242F933F9333 -:101F90004F935F936F937F938F939F93AF93BF9371 -:101FA000EF93FF938091E10082FF0BC08091E200EC -:101FB00082FF07C08091E1008B7F8093E1000E9447 -:101FC00028128091DA0080FF1FC08091D80080FF26 -:101FD0001BC08091DA008E7F8093DA008091D90057 -:101FE00080FF0DC080E189BD82E189BD09B400FE9A -:101FF000FDCF81E08093FC010E94270C05C019BC35 -:102000001092FC010E94350C8091E10080FF19C004 -:102010008091E20080FF15C08091E2008E7F809366 -:10202000E2008091E20080618093E2008091D8001C -:1020300080628093D80019BC85E08093FC010E94E7 -:10204000390C8091E10084FF30C08091E20084FF70 -:102050002CC080E189BD82E189BD09B400FEFDCFBD -:102060008091D8008F7D8093D8008091E1008F7E91 -:102070008093E1008091E2008F7E8093E200809166 -:10208000E20081608093E2008091F801882311F0E2 -:1020900084E007C08091E30087FD02C081E001C0B9 -:1020A00083E08093FC010E943B0C8091E10083FF60 -:1020B00029C08091E20083FF25C08091E100877FE5 -:1020C0008093E10082E08093FC011092F8018091FE -:1020D000E1008E7F8093E1008091E2008E7F80930B -:1020E000E2008091E20080618093E20042E060E0E3 -:1020F00080E00E94C00E8091F00088608093F00024 -:102100000E94380CFF91EF91BF91AF919F918F91F9 -:102110007F916F915F914F913F912F910F900FBEE3 -:102120000F901F9018951F920F920FB60F921124C7 -:102130002F933F934F935F936F937F938F939F93CF -:10214000AF93BF93CF93DF93EF93FF93C091E900D9 -:10215000CF708091EC00D82FD17080FDD0E8109224 -:10216000E9008091F000877F8093F00078940E94CE -:10217000D7101092E9008091F00088608093F00001 -:10218000CD2BCF70C093E900FF91EF91DF91CF91FC -:10219000BF91AF919F918F917F916F915F914F917F -:1021A0003F912F910F900FBE0F901F9018951F9386 -:1021B000CF93DF93CDB7DEB7AA970FB6F894DEBF03 -:1021C0000FBECDBFEDEFF1E088E08E0F9091F100F2 -:1021D00091938E13FBCF0E94570C8091E80083FFF0 -:1021E0001FC18091FD019091FE01492F50E04A30BE -:1021F000510508F015C1FA01EC59FF4F0C947224F7 -:10220000803881F0823809F00BC1809101028F7013 -:102210008093E9008091EB0085FB882780F910927C -:10222000E90006C08091F9019091FA019111826054 -:102230009091E800977F9093E8008093F1001092CE -:10224000F100C8C0282F2D7F09F0EAC0882319F0BB -:10225000823061F0E5C08091FF01813009F0E0C07B -:10226000933009F080E08093FA012BC08091FF0148 -:10227000811127C0809101028F7009F4D1C0809331 -:10228000E9002091EB0020FF1CC0933021F48091E5 -:10229000EB00806214C09091EB0090619093EB0092 -:1022A00021E030E0A90102C0440F551F8A95E2F7F2 -:1022B0004093EA001092EA008091EB0088608093DE -:1022C000EB001092E9008091E800877F86C08111C1 -:1022D000A7C01091FF011F778091E3008078812BC8 -:1022E0008093E3008091E800877F8093E8000E945C -:1022F000F50E8091E80080FFFCCF8091E3008068BC -:102300008093E300111102C082E001C083E080935A -:10231000FC0186C08058823008F082C08091FF01A5 -:10232000909100028C3D53E0950779F583E08A8314 -:102330008AE289834FB7F894DE01139620E03EE0ED -:1023400051E2E32FF0E050935700E49120FF03C0E7 -:10235000E295EF703F5FEF708E2F90E0EA3010F063 -:10236000C79601C0C0968D939D932F5F243149F786 -:102370004FBF8091E800877F8093E8006AE270E0B9 -:10238000CE0101960E94FC0D14C0AE014F5F5F4F5D -:10239000609101020E94430DBC01009709F440C006 -:1023A0009091E800977F9093E80089819A810E943C -:1023B0005F0E8091E8008B778093E80031C0803811 -:1023C00079F58091E800877F8093E8008091F8019B -:1023D0008093F1008091E8008E778093E8000E945E -:1023E000F50E1EC081111CC09091FF019230C0F407 -:1023F0008091E800877F8093E8009093F8010E9425 -:10240000F50E8091F801811106C08091E30087FDEF -:1024100002C081E001C084E08093FC010E94430C73 -:102420008091E80083FF0AC08091E800877F809355 -:10243000E8008091EB0080628093EB00AA960FB6D3 -:10244000F894DEBF0FBECDBFDF91CF911F910895ED -:102450000895CF938091FC018823A1F0C091E900F9 -:10246000CF709091EC00892F817090FD80E8C82B8F -:102470001092E9008091E80083FD0E94D710CF7090 -:10248000C093E900CF91089590937E0180937D01E0 -:102490000895E0917D01F0917E01309721F0019047 -:1024A000F081E02D099480E00895E0917D01F091A4 -:1024B0007E01309721F00280F381E02D0994089588 -:1024C000E0917D01F0917E01309721F00480F5814B -:1024D000E02D0994089520917B0130917C018217B1 -:1024E000930771F090937C0180937B01E0917D01D3 -:1024F000F0917E01309721F00680F781E02D09945C -:1025000008952091790130917A018217930771F033 -:1025100090937A0180937901E0917D01F0917E01A1 -:10252000309721F00084F185E02D099408950895F5 -:102530000C9497120E94A01D0E94AD030C94261EBD -:102540009F92AF92BF92CF92DF92EF92FF920F9342 -:102550001F93CF93DF9300D000D000D0CDB7DEB76C -:102560000E94D4030DE010E0AA24A394B12C902E75 -:10257000802F0E94C204980120583E4F6901F90142 -:10258000F080F826A1F40150110988F78FEF8983B4 -:102590008A831B820E94A91D8160782F9D838C8372 -:1025A00049815A816B818D810E9437132FC0909190 -:1025B000E30191FF04C08E830E94C8048E8125E050 -:1025C00030E0A501022E01C0440F0A94EAF7E42E80 -:1025D0004F21C1F029839A828E2191E009F490E085 -:1025E0009B830E94A91D8160782F9D838C834981E4 -:1025F0005A816B818D810E943713F6018081E82614 -:10260000E08204C021503109E0F6BDCF0E94F41FE2 -:1026100010917F010E9449121817B9F00E944912C7 -:1026200080937F0126960FB6F894DEBF0FBECDBF14 -:10263000DF91CF911F910F91FF90EF90DF90CF909E -:10264000BF90AF909F900C94460B26960FB6F894CF -:10265000DEBF0FBECDBFDF91CF911F910F91FF90D5 -:10266000EF90DF90CF90BF90AF909F900895CF9361 -:10267000DF93CDB7DEB72B970FB6F894DEBF0FBE52 -:10268000CDBF4F83588769877A878B87DE01119684 -:1026900086E0FD0111928A95E9F785E0FE01379603 -:1026A00001900D928A95E1F749815A816B817C8175 -:1026B0008D819E810E9480192B960FB6F894DEBF03 -:1026C0000FBECDBFDF91CF910895CF93882309F43A -:1026D000C2C0C82F823859F40E94491281FDBBC084 -:1026E00089E30E945A1C0E94271D89E30CC083388D -:1026F00079F40E94491280FDAEC083E50E945A1C05 -:102700000E94271D83E50E949C1CCF910C94271DDD -:10271000843859F40E94491282FD9DC087E40E94CA -:102720005A1C0E94271D87E4EECF8CEF8C0F813A54 -:1027300048F48C2F0E943E2281118DC08C2F0E9464 -:102740005A1CE3CF80E28C0F883048F4C77081E0D8 -:1027500001C0880FCA95EAF70E94E01CD6CF8BE52E -:102760008C0F833078F4C53A29F0C63A31F083E80B -:1027700090E005C081E890E002C082E890E0CF914F -:102780000C946B1288E58C0F833108F064C0C83A52 -:1027900039F1C93A41F1CA3A49F1CB3A51F1CC3A4F -:1027A00059F1CD3A61F1C03B69F1CE3A71F1CF3ABE -:1027B00079F1C13B81F1C23B89F1C33B91F1C43B4B -:1027C00099F1C53BA1F1C63BA9F1C73BB1F1C83BAB -:1027D000B9F1C93BC1F1CA3BC9F180E090E038C012 -:1027E00082EE90E035C089EE90E032C08AEE90E053 -:1027F0002FC085EB90E02CC086EB90E029C087EBE2 -:1028000090E026C08CEC90E023C08DEC90E020C0DE -:1028100083E891E01DC08AE891E01AC082E991E066 -:1028200017C084E991E014C081E292E011C083E214 -:1028300092E00EC084E292E00BC085E292E008C014 -:1028400086E292E005C087E292E002C08AE292E06E -:10285000CF910C948112CF910895882309F44BC035 -:10286000823859F40E94491281FF45C089E30E94D1 -:102870005A1C0E94271D89E30CC0833871F40E9402 -:10288000491280FF38C083E50E945A1C0E94271D10 -:1028900083E50E949C1C0C94271D843859F40E94E7 -:1028A000491282FF28C087E40E945A1C0E94271DFB -:1028B00087E4EFCF9CEF980F913A58F390E2980F8E -:1028C000983050F4877091E001C0990F8A95EAF72B -:1028D000892F0E94E61CDFCF9BE5980F933020F4F0 -:1028E00080E090E00C946B12885A833120F480E0F1 -:1028F00090E00C9481120895882321F00E94E01C3E -:102900000C94271D0895882321F00E94E61C0C9446 -:10291000271D08957F928F929F92AF92BF92CF9280 -:10292000DF92EF92FF920F931F93CF93DF931F924B -:10293000CDB7DEB77C01C62E772EFC01058102954E -:102940000F70128111110E94FD1C0E94531C8823DC -:1029500079F0112369F080E28C0D883048F082E034 -:102960000E943C1C0E94531C91E0D82ED92601C025 -:10297000D12CE72DE295EF70F0E0E259FF4F0C9477 -:102980007224872D807F072D0F70882311F0029508 -:10299000007F112389F0002309F490C180E28C0D9F -:1029A000883020F4802F0E94E01C03C0802F0E94FA -:1029B000F01C0E94271D82C18C2D0E942D14002323 -:1029C00009F495C180E28C0D883020F4802F0E949C -:1029D000E61C03C0802F0E94F61C0E94271D87C1A1 -:1029E000972D907F872D8F70903211F08295807F88 -:1029F000CC2021F0F1E0CF16B1F01EC0112349F038 -:102A0000002309F414C1013009F011C10E94101D06 -:102A10006EC1002319F0013009F469C189830E9455 -:102A2000131D89810AC1112321F0023008F05FC112 -:102A3000FEC001115CC101C1112321F0002309F482 -:102A4000F6C03CC1002309F4F8C03EC1872D86952D -:102A50008695837090E0009719F0019761F047C167 -:102A6000112321F08C2D972D937002C080E090E00F -:102A70000E946B123CC1112321F08C2D972D937075 -:102A800002C080E090E00E94811231C18C2D1123A0 -:102A900019F00E94FC1E02C00E94641F0E94E91FE0 -:102AA00026C1872D837009F052C0111120C18C2DD1 -:102AB000829586958770880F880F9C2D9F70892E30 -:102AC000912CA12CB12C082E04C0880C991CAA1C96 -:102AD000BB1C0A94D2F7C4FE14C00FE010E020E043 -:102AE00030E0B901A80104C0440F551F661F771FCD -:102AF0008A95D2F7CB01BA01609570958095909533 -:102B000003C060E070E0CB01272D26952695237049 -:102B100030E02230310569F02330310589F0682931 -:102B200079298A299B292130310571F00E94C81A20 -:102B3000DEC0682979298A299B290E94E41AD7C016 -:102B40000E94C81AC501B4010E94AC1AD0C011235A -:102B500019F0872D817001C08695882309F4C7C0BC -:102B60008C2D829586958770880F880F9C2D9F707D -:102B7000892E912CA12CB12C082E04C0880C991CF4 -:102B8000AA1CBB1C0A94D2F7C4FE14C00FE010E0CC -:102B900020E030E0B901A80104C0440F551F661FB2 -:102BA000771F8A95D2F7CB01BA0160957095809511 -:102BB000909503C060E070E0CB01272D2695269507 -:102BC0002370422F50E04230510569F043305105E7 -:102BD00089F0682979298A299B294130510571F0AA -:102BE0000E94A21B84C0682979298A299B290E94F6 -:102BF000BE1B7DC00E94A21BC501B4010E94861BA2 -:102C000076C08C2D90E0FC01E05EF109E531F10524 -:102C100008F050C0E258FF4F0C9472240C2D0F7036 -:102C2000872D8F71112331F00E941F1B802F0E946E -:102C30007C145DC00E94401B802F0E94831457C0EB -:102C4000112339F0011153C0872D8F710E94651B2C -:102C50004EC0023008F04BC0F7CF112339F0872D5A -:102C60008F710E941F1B43C01123C9F3872D8F71E1 -:102C70000E94401B3CC0112329F0872D8F710E94B8 -:102C80000A1B35C00E94001B32C0112351F0172DC2 -:102C90001F71812F0E941F1B63E0812F0E94331C34 -:102CA00026C081E00E943C1C023008F182E00E94B4 -:102CB0003C1C1DC0112331F0002389F28C2D0E9491 -:102CC000651315C0002391F28C2D0E942D140FC0A6 -:102CD000472D4F706C2DC7010E949E050E94241A3B -:102CE00006C0472D4F706C2DC7010E94B50ADD202C -:102CF000F9F00E942F1C80FD1BC0F70112820E9478 -:102D0000291C0E941F1BC7010E94A7160E94291C94 -:102D10000F90DF91CF911F910F91FF90EF90DF9077 -:102D2000CF90BF90AF909F908F907F900C94401B5E -:102D30000F90DF91CF911F910F91FF90EF90DF9057 -:102D4000CF90BF90AF909F908F907F9008950F93FA -:102D50001F93CF93DF93EC01888199812B813C8174 -:102D6000232BB9F09F3F11F48F3F99F0CE010E94C1 -:102D70004607882371F0688179818A810E94251C29 -:102D80008C010E94DA1B0E94A11AB801CE010E9498 -:102D90008A14DF91CF911F910F9108950E94FD1C1D -:102DA0000E940D1D0E94D21C0E94271D0E949A2085 -:102DB0000E94E91F80E090E00E946B1280E090E0AA -:102DC0000C9481120E94ED1C0C94CE160E941A1CC9 -:102DD000292F22952F7030E02C3031054CF42A3009 -:102DE00031056CF42250310922303105A8F407C0B6 -:102DF0002C30310569F02F30310551F00DC0803F86 -:102E000069F018F4803E40F409C0843F29F406C0FC -:102E100093FB882780F9089580E0089581E0089564 -:102E2000CF93DF9300D000D01F92CDB7DEB70F90C5 -:102E30000F900F900F900F90DF91CF910895CF9347 -:102E4000DF9300D000D000D0CDB7DEB726960FB606 -:102E5000F894DEBF0FBECDBFDF91CF9108951F93D1 -:102E6000CF93DF93C0918E0116E080918F01C81738 -:102E700099F0D0E01C9FF0011D9FF00D1124E05748 -:102E8000FE4F4081518162817381848195810E94CE -:102E90001F172196C770E9CFDF91CF911F91089539 -:102EA0004091C0015091C1016091C2017091C30174 -:102EB0008091C4019091C5010C941F178091C501A8 -:102EC00082958F7009F054C08091C201882309F463 -:102ED0004FC080918E01A0918F016091C0017091CF -:102EE000C1014091C3015091C401B6E08A1709F4B1 -:102EF0003FC090E041155105C1F17F3F11F46F3F94 -:102F0000A1F1B89FF001B99FF00D1124E057FE4FD9 -:102F1000218172132AC02081621327C022812111CE -:102F200024C0238134812417350710F4215031093E -:102F3000241B350B283C3105C0F42091C5012F70AE -:102F400020612093C50126E0289FF001299FF00D04 -:102F50001124EB56FE4F80818F708061808380EC5E -:102F600091E00E94A7160C942F1701968770BECF90 -:102F70000895CF92DF92EF92FF920F931F93CF931A -:102F8000DF93CDB7DEB762970FB6F894DEBF0FBE02 -:102F9000CDBF8C0185E0F801DE011D9601900D92F8 -:102FA0008A95E1F7D8014C9111965C911197129690 -:102FB0006C9112971396CD90DC9014973091C001CC -:102FC0007091C1018091C3019091C401009709F4EF -:102FD0006BC17F3F19F43F3F09F466C1E090C20125 -:102FE000EE2009F4C0C02091C501C816D90628F00A -:102FF000F601E81BF90BCF0104C0809590958C0D6C -:103000009D1DFF24F394883C910578F0F12C207FDE -:1030100009F0C6C07C2DD98AC88A89890E941017F8 -:1030200080EC91E00E94A716B1C0822F807F09F04A -:1030300046C0751314C0341312C0611110C02F7034 -:1030400020612093C5010E94501780EC91E00E94FE -:10305000A7168091C501D80115968C932EC0CD2856 -:1030600019F15F3F11F44F3FF9F0F62E61111CC0CA -:1030700080918E0120918F0136E0821709F45AC0A9 -:1030800090E0389FF001399FF00D1124E057FE4F7A -:103090007181571306C07081471303C0728171118B -:1030A00003C001968770E9CFF62E662309F418C194 -:1030B0008091C50181608093C501F12C11C1751308 -:1030C00008C0341306C0611104C08091C501D80145 -:1030D000C3C04D875E878D859E856A8B0E94E616EC -:1030E0006A898823E1F16623D1F12091C501822FFD -:1030F00082958F7090E0029774F08091C00190915A -:10310000C10198878F831986DB86CA862C87CE01FA -:1031100007960E94A71686E0F801A0ECB1E00190A6 -:103120000D928A95E1F70E945E170E945017FF24C6 -:10313000F394D6C04D875E878D859E850E941A1CAC -:10314000292F22952F7030E0223031050CF0BCC0C1 -:103150009F7009F0B6C0805E883008F4C1C0C80115 -:103160000E94A716E4CFC816D90608F453C0F6018A -:10317000E81BF90BCF01883C910508F450C0F12CF5 -:103180007C2DD98AC88A89890E941017E0ECF1E069 -:1031900086E0DF011D928A95E9F70E945017A0C0D2 -:1031A000751314C0341312C0611110C08091C50191 -:1031B000F8018583C8010E94A71686E0E0ECF1E0E3 -:1031C000DF011D928A95E9F7FE2C8AC04D875E8744 -:1031D0008D859E856A8B0E94E6166A89882309F48C -:1031E000BECF662309F4BBCF2091C501822F829503 -:1031F0008F7090E002970CF48ECF8091C001909177 -:10320000C1019A8389831B82DD82CC822E83CE0109 -:1032100001967FCF809590958C0D9D1DACCFF62E9D -:10322000662309F49CCF75132EC034132CC0209153 -:10323000C50120FD1FC0822F82958F70D9F0D80163 -:1032400015962C9315978F3049F08F5F982F929594 -:10325000907F822F8F70892B15968C93C8010E94C6 -:10326000A71686E0F801A0ECB1E001900D928A95D6 -:10327000E1F793CF86E0F801A0ECB1E001900D9268 -:103280008A95E1F72DC04D875E878D859E850E94CA -:10329000E616811140CF8091C50181608093C50100 -:1032A000C8010E94A7161CC0662309F458CF4D8799 -:1032B0005E878D859E850E94E616882309F44FCF90 -:1032C0002ACF811148CF0CC0243031050CF047CFF4 -:1032D0009F7009F440CFF8019581907F09F03BCFB2 -:1032E0008F2D62960FB6F894DEBF0FBECDBFDF9173 -:1032F000CF911F910F91FF90EF90DF90CF900895A5 -:103300001F93CF93DF93CDB7DEB72C970FB6F8940A -:10331000DEBF0FBECDBF4F83588769877A878B8703 -:103320009C87CE0107960E94B917882369F08F8188 -:1033300098852A853B85232BF1F19F3F09F063C0D7 -:103340008F3F09F060C037C086E0FE013796DE018E -:10335000119601900D928A95E1F76F817885EA8543 -:10336000FB85309741F17F3F11F46F3F21F12091B0 -:103370008F0130E0C90101968770992740918E0135 -:1033800050E08417950709F447C069837A83FD8369 -:10339000EC8396E0929FD001939FB00D1124A0572B -:1033A000BE4FFE01319601900D929A95E1F7809300 -:1033B0008F010E942F1716E080918E0190918F014E -:1033C0008917C1F1189FC001112480579E4F0E9498 -:1033D000B917882379F1E0918E011E9FF001112425 -:1033E000E057FE4F408151816281738184819581D4 -:1033F0000E941F1780918E0190E001968770992797 -:1034000080938E01D9CF4F81588569857A858B85C8 -:103410009C850E941F17CFCF0E94E21610928F0149 -:1034200010928E01E0ECF1E086E0DF011D928A95BA -:10343000E9F7C1CF2C960FB6F894DEBF0FBECDBF13 -:10344000DF91CF911F910895EF92FF920F931F93F9 -:10345000CF93DF938C01009709F46CC0F12CEE241C -:10346000E394E8012196F8018491843740F4843094 -:1034700008F051C0813081F0823019F15BC085378E -:1034800009F444C0A8F19CE7980F903708F052C0A7 -:103490008F770E942D1441C00E5F1F4FFE01C49113 -:1034A00080E28C0F883048F4C7708E2D01C0880FE1 -:1034B000CA95EAF70E94001D14C08C2F0E94651364 -:1034C0002DC00E5F1F4FFE01C49180E28C0F88302B -:1034D00058F4C7708E2D01C0880FCA95EAF70E9474 -:1034E000061D0E94271D1AC08C2F0E942D1416C085 -:1034F0000E5F1F4FFE01C491CC2381F08FE99FE046 -:103500000197F1F700C00000C150F6CF0E5F1F4FCA -:10351000FE01F49003C00E9465138E018F2D882355 -:1035200009F49FCFEFE9FFE03197F1F700C0000009 -:103530008150F5CFDF91CF911F910F91FF90EF90C8 -:10354000089508956093CA017093CB018093CC01D4 -:103550009093CD010C94CE160F931F930091CA0146 -:103560001091CB012091CC013091CD01DC01CB0138 -:10357000802B912BA22BB32B8093CA019093CB016C -:10358000A093CC01B093CD011F910F910C94CE1656 -:103590000F931F930091CA011091CB012091CC0190 -:1035A0003091CD01DC01CB0180239123A223B323F1 -:1035B0008093CA019093CB01A093CC01B093CD012D -:1035C0001F910F910C94CE160F931F930091CA0177 -:1035D0001091CB012091CC013091CD01DC01CB01C8 -:1035E00080279127A227B3278093CA019093CB010C -:1035F000A093CC01B093CD011F910F910C94CE16E6 -:103600001092C6011092C7011092C8011092C90110 -:103610000C94CE1641E050E060E070E004C0440F2E -:10362000551F661F771F8A95D2F74093C6015093A6 -:10363000C7016093C8017093C9010C94CE1641E094 -:1036400050E060E070E004C0440F551F661F771F14 -:103650008A95D2F78091C6019091C701A091C801C7 -:10366000B091C901482B592B6A2B7B2B4093C60183 -:103670005093C7016093C8017093C9010C94CE1692 -:1036800041E050E060E070E004C0440F551F661F49 -:10369000771F8A95D2F740955095609570958091E7 -:1036A000C6019091C701A091C801B091C9014823FA -:1036B00059236A237B234093C6015093C70160932B -:1036C000C8017093C9010C94CE1641E050E060E04F -:1036D00070E004C0440F551F661F771F8A95D2F70C -:1036E0008091C6019091C701A091C801B091C90114 -:1036F000482759276A277B274093C6015093C70163 -:103700006093C8017093C9010C94CE160F931F9358 -:103710000091C6011091C7012091C8013091C901E3 -:10372000DC01CB01802B912BA22BB32B8093C60104 -:103730009093C701A093C801B093C9011F910F9145 -:103740000C94CE160F931F930091C6011091C701E0 -:103750002091C8013091C901DC01CB018023912364 -:10376000A223B3238093C6019093C701A093C801FD -:10377000B093C9011F910F910C94CE160F931F9314 -:103780000091C6011091C7012091C8013091C90173 -:10379000DC01CB0180279127A227B3278093C601A4 -:1037A0009093C701A093C801B093C9011F910F91D5 -:1037B0000C94CE160895CF92DF92EF92FF920F9362 -:1037C0001F93CF93DF938C01C090CA01D090CB019F -:1037D000E090CC01F090CD018091C6019091C7019D -:1037E000A091C801B091C901C82AD92AEA2AFB2AA6 -:1037F000CFE1D0E0D701C6010C2E04C0B695A79545 -:10380000979587950A94D2F780FF06C0B8018C2F50 -:103810000E943409019721F4219760F780E001C0EC -:103820008C2FDF91CF911F910F91FF90EF90DF9040 -:10383000CF900895CF93DF93EC010E94DB1BBE0174 -:103840000E943409DF91CF910895CB010E941A1C88 -:1038500008958091CE0185958595859508958091EF -:10386000CE018770089598E0899F90011124262B3E -:103870002093CE010C941F1B2091CE0180958223B2 -:103880008093CE01982F977069F430E0482F552728 -:1038900047FD50952417350729F085958595859521 -:1038A0000C94401B08959091CE01977081E009F42B -:1038B00080E0089590910C01992321F090910D01E1 -:1038C000911109C020910E0130910F01F90132963A -:1038D0009FEF40E01FC0982F9695969596959F3044 -:1038E00050F5E0910E01F0910F01E90FF11D877085 -:1038F00021E030E0A90102C0440F551F8A95E2F78C -:10390000CA019181892B818308959F3F39F04F5FD0 -:103910004E3041F051915813F8CF0DC05111F7CFEF -:10392000942FF5CF9F3F39F0F901E90FF11D97FD75 -:10393000FA9582830895089590910C01992321F0BE -:1039400090910D01911109C020910E0130910F014C -:10395000F9013296205F3F4F1FC0982F969596959C -:1039600096959F30F0F4E0910E01F0910F01E90F70 -:10397000F11D877021E030E0A90102C0440F551FFE -:103980008A95E2F7CA018095918189238183089500 -:103990003196E217F30729F090819813F9CF10823E -:1039A000F7CF089581E090E0E0910E01F0910F01D2 -:1039B000E80FF91F1082019680319105A9F708954B -:1039C0009091E201892B8093E20108958095909176 -:1039D000E20189238093E20108951092E2010895A3 -:1039E0009091E101892B8093E10108958095909158 -:1039F000E10189238093E10108951092E101089586 -:103A00009091E001892B8093E00108958095909139 -:103A1000E00189238093E00108951092E001089568 -:103A20008093CF0108951092CF01089580910E01E7 -:103A300090910F01FC0131969C01205F3F4F80E087 -:103A4000919191118F5FE217F307D1F70895E091FB -:103A50000E01F0910F018091E2018083E0910E014F -:103A6000F0910F0190818091E101892B8083E09199 -:103A70000E01F0910F0190818091E001892B8083EC -:103A80008091CF01882361F0E0910E01F0910F0148 -:103A90009081892B80830E94161D81111092CF0185 -:103AA00080910E0190910F010C94551220E0009727 -:103AB00039F0AC0141505109842395232F5FF7CF92 -:103AC000822F08958091FC01843021F11092E4014D -:103AD00020E488E190E00FB6F894A8958093600008 -:103AE0000FBE2093600080E00E94460B83B7817F69 -:103AF000846083BF83B7816083BF7894889583B7E0 -:103B00008E7F83BF88E10FB6F89480936000109297 -:103B100060000FBE089508950E94C1030E94D4035F -:103B20000E948B1D0E94C90491E0811101C090E0A8 -:103B3000892F08950E94E2160E9449120C94460BA8 -:103B400082E084BD93E095BD9AEF97BD80936E00AF -:103B500008952FB7F8948091E5019091E601A09126 -:103B6000E701B091E8012FBF0895CF92DF92EF9265 -:103B7000FF920F931F932FB7F8944091E501509156 -:103B8000E6016091E7017091E8012FBF6A017B01B6 -:103B9000EE24FF248C0120E030E0C016D106E206BE -:103BA000F30610F4415051099A01281B390BC90141 -:103BB0001F910F91FF90EF90DF90CF9008951F928B -:103BC0000F920FB60F9211248F939F93AF93BF93D1 -:103BD0008091E5019091E601A091E701B091E801A3 -:103BE0000196A11DB11D8093E5019093E601A0937C -:103BF000E701B093E801BF91AF919F918F910F9032 -:103C00000FBE0F901F9018950E94460FF8942FEF4B -:103C100087EA91E6215080409040E1F700C0000023 -:103C200087E090EBDC018093050290930602A0935D -:103C30000702B09308029CE088E10FB6F894A895BB -:103C4000809360000FBE90936000FFCF0E945E1EC5 -:103C5000811102C00E94441E0E94691E8093E301EC -:103C60000E94711E90E09093F7018093F60187FB0C -:103C7000882780F980930D010E946D1E682F70E0E7 -:103C800080E090E00C94A21A6DEE7EEF80E090E070 -:103C90000E94AC2460E082E090E00E949A2460E000 -:103CA00083E090E00E949A2460E084E090E00E942B -:103CB0009A2460E085E090E00C949A2480E090E003 -:103CC0000E94942421E08D3E9E4F09F020E0822F37 -:103CD000089582E090E00C948C2483E090E00C94B2 -:103CE0008C2484E090E00C948C24682F84E090E095 -:103CF0000C949A248091EB0180FF0BC0609113011A -:103D000085E0689FB0011124759567957595679555 -:103D10002BC081FF09C06091130185E0689FB0014D -:103D200011247595679520C082FF07C0609113012B -:103D300085E0689FB001112417C09091EC01992390 -:103D4000D1F060911201961788F72091130185E058 -:103D5000289F90011124929FA001939F500D112440 -:103D600070E0CA010E945E246038710540F461155C -:103D7000710539F002C065E070E0862F08958FE785 -:103D8000089581E008958091EB0180FF08C0609163 -:103D9000110170E0759567957595679521C081FF54 -:103DA00006C06091110170E07595679519C082FF9A -:103DB00004C06091110170E010C09091EC01992352 -:103DC000C1F0609110019617A0F780911101899FB1 -:103DD000C001112470E00E945E246038710528F44F -:103DE0006115710521F0862F08958FE7089581E010 -:103DF000089561E070E0F4CF803F21F40E947A1EC4 -:103E0000819504C0813F29F40E947A1E8093EF01BE -:103E10000895823F21F40E947A1E819504C0833F59 -:103E200029F40E947A1E8093EE010895893F19F4C7 -:103E30000E94C31E05C08A3F31F40E94C31E8195B3 -:103E40008093F00108958B3F21F40E94C31E819559 -:103E500004C08C3F29F40E94C31E8093F101089591 -:103E6000843F21F48091ED01816017C0853F21F4EA -:103E70008091ED01826011C0863F21F48091ED01B7 -:103E800084600BC0873F21F48091ED01886005C0FC -:103E9000883F31F48091ED0180618093ED010895B8 -:103EA0008D3F21F48091EB0181600BC08E3F21F4A6 -:103EB0008091EB01826005C08F3F29F48091EB0176 -:103EC00084608093EB010895803F39F48091EF0185 -:103ED00087FF6CC01092EF0169C0813F29F4809187 -:103EE000EF011816BCF362C09091EE01823F29F4F5 -:103EF00097FF5CC01092EE0159C0833F19F4191668 -:103F0000CCF354C0893F41F48091F00118160CF0B5 -:103F10004DC01092F0014AC08A3F29F48091F0010F -:103F200087FF44C0F6CF8B3F39F48091F10187FFC2 -:103F30003DC01092F1013AC08C3F29F48091F1010B -:103F40001816BCF333C0843F21F48091ED018E7FBD -:103F500017C0853F21F48091ED018D7F11C0863F10 -:103F600021F48091ED018B7F0BC0873F21F480917C -:103F7000ED01877F05C0883F31F48091ED018F7E90 -:103F80008093ED0113C08D3F21F48091EB018E7F72 -:103F90000BC08E3F21F48091EB018D7F05C08F3FD8 -:103FA00029F48091EB018B7F8093EB018091EE01EE -:103FB00081110EC08091EF0181110AC08091F00142 -:103FC000811106C08091F101811102C01092EC01B3 -:103FD00008958DEE91E00E9460120E94A91D9093B9 -:103FE000EA018093E90108951F93CF93DF938091B5 -:103FF000E9019091EA010E94B51DAC019091EC019C -:10400000992321F02091140130E006C02091150180 -:104010008AE0289F900111244217530708F486C0B4 -:104020008091EE01C091EF01D091F0011091F1016A -:10403000811107C0C11176C0D11174C0111172C0B5 -:1040400075C09F3F19F09F5F9093EC01181624F400 -:104050000E947A1E8093EE018091EE0187FF05C0D9 -:104060000E947A1E81958093EE011C1624F40E9412 -:104070007A1E8093EF018091EF0187FF05C00E94B7 -:104080007A1E81958093EF016091EE01662339F1EC -:10409000C091EF01CC2319F1772767FD7095872F29 -:1040A000972F0E946F2323E333E343E35FE30E94F0 -:1040B000D3230E943C236093EE016C2F772767FD8A -:1040C0007095872F972F0E946F2323E333E343E3F9 -:1040D0005FE30E94D3230E943C236093EF011D16EF -:1040E00024F40E94C31E8093F0018091F00187FFA9 -:1040F00005C00E94C31E81958093F001111624F41F -:104100000E94C31E8093F1018091F10187FF05C0D9 -:104110000E94C31E81958093F101DF91CF911F9181 -:104120000C94E91F9F3F09F08ECF96CFDF91CF917E -:104130001F910895EDEEF1E085E0DF011D928A9573 -:10414000E9F71092EC011092EB010895833081F1B0 -:1041500028F4813059F08230D1F00895853009F487 -:1041600049C0B8F1863009F456C008958091150110 -:10417000262F30E0280F311D2F3F310524F4680F22 -:104180006093150108958FEF809315010895809134 -:104190001401262F30E0280F311D2F3F310524F464 -:1041A000680F6093140108958FEF809314010895B0 -:1041B00080911301262F30E0280F311D2F3F31054C -:1041C00024F4680F6093130108958FEF8093130117 -:1041D000089580911201262F30E0280F311D2F3FC6 -:1041E000310524F4680F6093120108958FEF8093D6 -:1041F0001201089580911101262F30E0280F311D02 -:104200002F3F310524F4680F6093110108958FEF5B -:1042100080931101089580911001262F30E0280F1E -:10422000311D2F3F310524F4680F6093100108956C -:104230008FEF809310010895833011F128F48130BD -:1042400049F0823091F00895853081F120F1863077 -:10425000C1F1089580911501681720F4861B8093A1 -:1042600015010895109215010895809114016817A1 -:1042700020F4861B80931401089510921401089570 -:1042800080911301681720F4861B80931301089511 -:1042900010921301089580911201681720F4861B73 -:1042A00080931201089510921201089580911101D6 -:1042B000681720F4861B8093110108951092110154 -:1042C000089580911001681720F4861B80931001D7 -:1042D00008951092100108950F931F938D3109F4E2 -:1042E00071C008F045C0803109F485C008F58730F9 -:1042F00009F46FC068F4863009F0ADC08091E30125 -:10430000817F8E7F8093E30181E08093F301A4C0DD -:104310008B3009F49EC08E3009F09DC08091E3017E -:1043200082FB222720F991E0922790FB82F96CC052 -:10433000863109F48EC060F4813109F08CC00E948E -:10434000E21690910D0181E0892780930D0181C0D3 -:10435000893109F47EC08B3109F07DC08091E30181 -:1043600081FB222720F991E0922790FB81F94CC034 -:10437000853309F466C048F4873209F462C008F452 -:104380004FC0893209F45DC066C0833438F48A3383 -:1043900008F044C0883309F45CC05DC0833409F47C -:1043A00050C0883409F057C00E94E2160FEF13ED99 -:1043B00020E3015010402040E1F700C000000E94BF -:1043C000041E47C00E94F6220E9449120E94460B1A -:1043D00040C09091E301892F8095817080FB90F916 -:1043E00029F0966098609093E30136C0997F977F9B -:1043F0009093E3012EC08091E30183FB222720F9F3 -:1044000091E0922790FB83F98093E301992309F1CE -:104410008091E30181608093E3011BC0895301C057 -:104420008D5141E050E060E070E08A019B0104C0E2 -:10443000000F111F221F331F8A95D2F7C901B8013F -:1044400004C061E070E080E090E00E94A21A0E9447 -:10445000E21681E001C080E01F910F91089580E095 -:10446000089580E008958E518A3030F4E82FF0E00E -:10447000E65DFE4F8081089580E00895CF93C82FB8 -:104480008091F301813079F018F08230E9F186C033 -:10449000E0910E01F0910F018081813169F082324B -:1044A00009F07EC009C0E0910E01F0910F018081FA -:1044B000813111F0823261F48C2F0E942F22811100 -:1044C00004C08C2F0E946C211DC081E090E01AC0B6 -:1044D0008C2F0E943122811114C0C43179F048F42C -:1044E000CB3079F0C03109F05FC082E08093F301F6 -:1044F00008C0C93219F0C83321F056C01092F30138 -:1045000053C081E0817052C0C93281F110F5C431CD -:1045100069F1A8F4C73009F045C08AE0809315011D -:1045200094E19093140193E090931301809312010E -:1045300088E08093110188E28093100133C082EEFD -:104540008C0F863078F58C2F0E9433228093F201F5 -:1045500029C0CE34E9F020F4CB3421F56AE013C051 -:10456000C13579F0C235F1F461E00DC08091F201FE -:10457000882319F01092F20115C081E08093F301B5 -:1045800015C061E006C08091F2010E94A6200AC019 -:104590006AE08091F2010E941C2104C01092F30194 -:1045A00080E004C081E002C080E0ACCFCF910895EC -:1045B000E1E8F0E080818860808380818160808391 -:1045C0008FB7F89493E09093890090ED90938800D2 -:1045D0008FBF0895EFE6F0E08081826080830895C8 -:1045E000EFE6F0E080818D7F80830895EFE6F0E0D4 -:1045F000908182E08927808308951F920F920FB6E1 -:104600000F9211242F933F934F935F936F937F9358 -:104610008F939F93AF93BF93EF93FF938091F40198 -:104620009091F50101969093F5018093F401811129 -:1046300003C082E00E94460BE091F501E695E69505 -:10464000F0E0E756FA4FE4918091F4018E1303C035 -:1046500080E00E94460BFF91EF91BF91AF919F9137 -:104660008F917F916F915F914F913F912F910F901B -:104670000FBE0F901F90189504D06894B1118DC093 -:10468000089570D088F09F5790F0B92F9927B751AF -:10469000A0F0D1F0660F771F881F991F1AF0BA9506 -:1046A000C9F712C0B13081F077D0B1E0089574C07D -:1046B000672F782F8827B85F39F0B93FCCF38695FC -:1046C00077956795B395D9F73EF490958095709559 -:1046D00061957F4F8F4F9F4F0895E89409C097FBD6 -:1046E0003EF490958095709561957F4F8F4F9F4FC9 -:1046F0009923A9F0F92F96E9BB279395F69587950D -:1047000077956795B795F111F8CFFAF4BB0F11F4CF -:1047100060FF1BC06F5F7F4F8F4F9F4F16C0882376 -:1047200011F096E911C0772321F09EE8872F762FAC -:1047300005C0662371F096E8862F70E060E02AF0ED -:104740009A95660F771F881FDAF7880F96958795D9 -:1047500097F9089557FD9058440F551F59F05F3F42 -:1047600071F04795880F97FB991F61F09F3F79F093 -:1047700087950895121613061406551FF2CF469515 -:10478000F1DF08C0161617061806991FF1CF869597 -:104790007105610508940895E894BB27662777277B -:1047A000CB0197F908950BD078C069D028F06ED06E -:1047B00018F0952309F05AC05FC01124EECFCADF6C -:1047C000A0F3959FD1F3950F50E0551F629FF00124 -:1047D000729FBB27F00DB11D639FAA27F00DB11D7D -:1047E000AA1F649F6627B00DA11D661F829F222706 -:1047F000B00DA11D621F739FB00DA11D621F839F8D -:10480000A00D611D221F749F3327A00D611D231F62 -:10481000849F600D211D822F762F6A2F11249F57B0 -:1048200050408AF0E1F088234AF0EE0FFF1FBB1FD3 -:10483000661F771F881F91505040A9F79E3F510572 -:1048400070F014C0AACF5F3FECF3983EDCF386957E -:1048500077956795B795F795E7959F5FC1F7FE2B1D -:10486000880F911D9695879597F9089597F99F67F9 -:1048700080E870E060E008959FEF80EC08950024E8 -:104880000A941616170618060906089500240A94B5 -:1048900012161306140605060895092E0394000C3B -:1048A00011F4882352F0BB0F40F4BF2B11F460FFCA -:1048B00004C06F5F7F4F8F4F9F4F089597FB072E68 -:1048C00016F4009407D077FD09D00E94782407FCE5 -:1048D00005D03EF4909581959F4F08957095619510 -:1048E0007F4F0895EE0FFF1F0590F491E02D09947E -:1048F000AA1BBB1B51E107C0AA1FBB1FA617B70706 -:1049000010F0A61BB70B881F991F5A95A9F7809521 -:104910009095BC01CD010895F999FECF92BD81BD5E -:10492000F89A992780B50895A8E1B0E042E050E0F8 -:104930000C94B424262FF999FECF92BD81BDF89A2C -:10494000019700B4021639F01FBA20BD0FB6F894D3 -:10495000FA9AF99A0FBE08950196272F0E949B2478 -:104960000C949A24DC01CB01FC01F999FECF06C01E -:10497000F2BDE1BDF89A319600B40D92415050401D -:08498000B8F70895F894FFCF89 -:104988000220480BD60BB30B7F0B4B0B0101D00158 -:1049980028080A03140A404D363959050C05D6046F -:1049A8009D043004490462047B04010203040506E3 -:0449B80007080900E3 -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/osx_de/compiled.hex b/keyboards/ergodox_ez/keymaps/osx_de/compiled.hex deleted file mode 100644 index 2233a8cbf..000000000 --- a/keyboards/ergodox_ez/keymaps/osx_de/compiled.hex +++ /dev/null @@ -1,1216 +0,0 @@ -:100000000C9412040C9456040C9456040C9456044C -:100010000C9456040C9456040C9456040C945604F8 -:100020000C9456040C9456040C9485100C9457119F -:100030000C9456040C9456040C9456040C945604D8 -:100040000C9456040C9411240C9456040C945604ED -:100050000C9456040C94F31E0C9456040C94560401 -:100060000C9456040C9456040C9456040C945604A8 -:100070000C9456040C9456040C9456040C94560498 -:100080000C9456040C9456040C9456040C94560488 -:100090000C9456040C9456040C9456040C94560478 -:1000A0000C9456040C9456040C9456048007EB06EA -:1000B000970739074A07680703072D0733072707FC -:1000C00062073E0744071B072107D106C411E6114A -:1000D000D412E611D4122B124E12D412A312B6125D -:1000E00085158515B415B415EA150A163B173B1787 -:1000F00015163B17C516C5162C173B173B1735179A -:10010000D216D216D216D216D216D216D216D216AF -:10011000D216D216D216D216D216D216D216D2169F -:10012000E416F116F816FF16091702E002E2012E96 -:10013000022E02E10002E002E102E20001E001E140 -:1001400001E20002E001E30119021902E30002E00A -:100150000001E00002E002E3016402640002E00248 -:10016000E30001E001E30001E10137023702E101B0 -:1001700038023801E10125022502E10002E002E136 -:10018000013102310002E002E10001E001E1000181 -:10019000E10137023702E10138023801E1010702CB -:1001A0000702E10001350235012002200002E302CE -:1001B000E10001E301E10001E10136023602E10163 -:1001C00038023801E10126022602E10001E101378F -:1001D000023702E10138023801E10126022602E17C -:1001E0000001E10136023602E10138023801E10185 -:1001F00025022502E10001E10137023702E1013861 -:10020000023801E20125022502E20001E101370284 -:100210003702E10138023801E10130023002E10029 -:1002200002E002E2013002300002E002E20001E0FE -:1002300001E20002E001E30106020602E30002E03F -:100240000001E00029002B00E200E1003541000040 -:100250001E00140004001D6105304D431F001A00EC -:1002600016001B0006304C002000080007000600A6 -:1002700052002A00210015000900190051004A000F -:10028000220017000A000500000002300430E300DD -:100290000000E200000002530430E7000000E60026 -:1002A0000000045323001C000B00110000002E6FFF -:1002B000240018000D00100050004B0025000C0019 -:1002C0000E0036004F002C00260012000F003700F1 -:1002D000E10828002700130033003861E1044E00D4 -:1002E0002D002F003464E5003041000001000100C2 -:1002F00001000100010000003A003500310001005A -:10030000010001003B0035022102350001004C00D4 -:100310003C001E0224062202010001003D002D02C5 -:1003200024022404010001003E00010037001104F2 -:1003300000000100010001000000010000000100B8 -:100340000F30010000000100000068003F0024069B -:100350002402240400004500400022042502110468 -:1003600031026900410023042602640050000100AC -:1003700042003500250452005100010043003502BF -:10038000260438004F006A0044001E02310021029A -:100390000100000001000100010001000100000057 -:1003A0000100010001000100010001000100F40052 -:1003B000F200FB00010001000100F000F100FA0072 -:1003C000010001000100F500F300FC000100010044 -:1003D0000100F900FA00F600000001000100010030 -:1003E0000000010000000100A80001000000010061 -:1003F0000000010001000100A900AA0000000100A6 -:1004000001000100010001000100010001000100E4 -:100410000100AC000100B600010001000100AB00CA -:1004200050000100010001000100520051000100D4 -:10043000AE000100010001004F00000001000100BA -:1004400001000100010000000100010001000100A5 -:100450000100010001000100010001000100010094 -:100460000100010001000100010001000100010084 -:100470000100010001000100010001000100010074 -:100480000000010001000100000001000000010067 -:1004900007300100000001000000010008300E30AC -:1004A0000B300100000001000C300A300D3001005B -:1004B00001000100010009300100010001000100FC -:1004C0000100010001000100010001000100010024 -:1004D0000100010001000100010001000100010014 -:1004E0000100000001000100010001000100000006 -:1004F00001000100010001000100010001000100F4 -:1005000050000100010001000100520051000100F3 -:1005100001000100010001004F0001000100010085 -:1005200001000100010001000000010001000100C4 -:1005300000000100000001000100010000000100B6 -:10054000000001003F0052005100230200000100A2 -:100550004000240021001E0027000100410025006A -:1005600022001F0037000100420026002300200067 -:10057000360001004300300230002402270201004F -:1005800044004500380001000100000001000100A6 -:10059000E1000100E0000000010001000100010095 -:1005A00001003D0001000100010001000100E00028 -:1005B000010001000100010001002C000100010008 -:1005C0000100010001003C000100010001000100E8 -:1005D00000003A00010001000000010000003B00A3 -:1005E0000F300100000001000000010001000100C7 -:1005F00001000100000001000100010001000100F4 -:1006000001000100010001000100010001000100E2 -:1006100001000100010001000100010001000100D2 -:1006200001000100010001000100010001000100C2 -:100630000100000016034500720067006F004400CF -:100640006F007800200045005A00000016034500A6 -:10065000720067006F0044006F00780020004500C2 -:100660005A0000000403090409026D00040100A0FF -:10067000FA09040000010301010009211101000130 -:100680002240000705810308000A09040100010354 -:10069000010200092111010001224D00070582031A -:1006A00008000A09040200010300000009211101E9 -:1006B00000012236000705830308000A090403002D -:1006C0000103000000092111010001223900070582 -:1006D00084031000011201100100000008EDFE0764 -:1006E0001301000102000105010906A10105071916 -:1006F000E029E71500250195087501810205081913 -:100700000129059505750191029501750391010572 -:10071000071900297715002501957875018102C018 -:1007200005010980A101850216010026B7001A0102 -:10073000002AB700751095018100C0050C0901A1C0 -:10074000018503160100269C021A01002A9C0275ED -:100750001095018100C005010902A1010901A10054 -:100760000509190129051500250195057501810265 -:100770009501750381010501093009311581257F36 -:1007800095027508810609381581257F9501750840 -:100790008106050C0A38021581257F9501750881AF -:1007A00006C0C005010906A101050719E029E715E2 -:1007B00000250195087501810295017508810105E3 -:1007C0000819012905950575019102950175039197 -:1007D000010507190029FF150026FF009506750879 -:1007E0008100C000000000000000000000000102C5 -:1007F00004060A0F17202C3A4A5D71879DB3C7DAA9 -:10080000E9F5FCFFFCF5E9DAC7B39D87715D4A3A6B -:100810002C20170F0A06040201000000000000004F -:100820000000000011241FBECFEFDAE0DEBFCDBF15 -:1008300004B603FE24C08091FF0190910002A091B4 -:100840000102B09102028730904BA740B04BB9F43F -:100850001092FF0110920002109201021092020207 -:1008600014BE84B7877F84BF88E10FB6F894809365 -:100870006000109260000FBEE0E0FFE3099511E018 -:10088000A0E0B1E0E0EBFBE402C005900D92A433E0 -:10089000B107D9F711E0A4E3B1E001C01D92AF3F69 -:1008A000B107E1F70E94CD0D0C94D6250C94000001 -:1008B0001092B9008AE08093B800089594EA90936A -:1008C000BC009091BC0097FFFCCF9091B900987F3D -:1008D000983021F0903111F081E008958093BB00B1 -:1008E00084E88093BC008091BC0087FFFCCF80919E -:1008F000B900887F883111F0803471F780E0089565 -:1009000084E98093BC008091BC0084FDFCCF0895F5 -:100910008093BB0084E88093BC008091BC0087FF7B -:10092000FCCF9091B900987F81E0983209F480E083 -:10093000089584E88093BC008091BC0087FFFCCFC1 -:100940008091BB00089580B38C7080BB81B3836FAE -:1009500081BB089580910101811115C080E40E943E -:100960005E048093010181110CC082E10E94880421 -:1009700080930101811105C08FEF0E94880480934C -:1009800001010E94800484B1807F84B985B1807F99 -:1009900085B98AB1837F8AB98BB1837F8BB93E9841 -:1009A000469808950E947406809301010E94AA044B -:1009B0000E94A304A5E3B1E0E3E4F1E08EE08E0F32 -:1009C00011921D928E13FCCF0C945E060E94740649 -:1009D000809301010E94AA040E94A304A5E3B1E050 -:1009E000E3E4F1E08EE08E0F11921D928E13FCCFA6 -:1009F0000895BF92CF92DF92EF92FF920F931F93D1 -:100A0000CF93DF9380910101882379F080913401A5 -:100A10008F5F80933401811108C00E947406809317 -:100A20000101811102C00E94060605E311E0C0E049 -:100A3000D0E0DD24D39482E0C82EEE24E394F12CA0 -:100A4000C730D10500F580910101811164C080E4B7 -:100A50000E945E0480930101811112C082E10E9414 -:100A600088048093010181110BC0C7010C2E01C0C5 -:100A7000880F0A94EAF780950E9488048093010108 -:100A80000E94800448C0CA30A1F028F4C83059F050 -:100A9000C93061F005C0CC3089F070F0CD3089F0FC -:100AA000209A289810C0219A29980DC0229A2A9835 -:100AB0000AC0239A2B9807C0529A01C0539A5B9898 -:100AC00002C03E9A469890EA9A95F1F79FB17999BB -:100AD00002C082E001C080E091709D25982B7C9936 -:100AE00002C084E001C080E0892B7D9902C038E01B -:100AF00001C030E0832B7E9902C020E101C020E0DC -:100B0000822B9FB19095991F9927991F9295990FC4 -:100B1000907E892B0FC080910101811149C080E432 -:100B20000E945E0480930101882379F1B12C0E9418 -:100B300080048B2DF8019081981719F08083C09262 -:100B400000010E94AA0421960F5F1F4FCE30D105ED -:100B500009F076CF80910001882361F18150809364 -:100B60000001882339F08FE99FE00197F1F700C079 -:100B7000000020C0A3E4B1E0E5E3F1E0CF01825F33 -:100B800091919D938E13FCCF15C083E10E94880440 -:100B9000809301018111CACF81E40E945E04809399 -:100BA00001018111C3CF0E949904B82EB094BFCF28 -:100BB00080E0C0CF0E94040681E0DF91CF911F91B9 -:100BC0000F91FF90EF90DF90CF90BF900895E82FA6 -:100BD000F0E0ED5BFE4F8081089508950F931F9321 -:100BE000CF93DF93C3E4D1E010E00C2F025F899133 -:100BF00090E00E941A1E180F0C13F9CF812FDF917D -:100C0000CF911F910F9108950C94C70756985E9845 -:100C100025982D9826982E9827982F988FEF90E05A -:100C2000909389008093880090938B0080938A0032 -:100C300090938D0080938C00259A2D9A2FEF80E75A -:100C400092E0215080409040E1F700C00000269AD9 -:100C50002E9A2FEF80E792E0215080409040E1F7FC -:100C600000C00000279A2F9A2FEF80E792E02150D2 -:100C700080409040E1F700C0000025982D982FEFAC -:100C800080E792E0215080409040E1F700C00000F2 -:100C900026982E982FEF80E792E0215080409040D8 -:100CA000E1F700C0000027982F9856985E98259885 -:100CB0002D9826982E9827982F98089589EA809342 -:100CC000800089E08093810024982C983F988AB115 -:100CD0008F748AB96E98479A8BB1806B8BB9769A6C -:100CE0000E9406060C94C60780E280930101809161 -:100CF000510181110EC00E94580481E0809351017E -:100D00002FEF83ED90E3215080409040E1F700C049 -:100D1000000080E40E945E048093010181112EC0D6 -:100D20000E94880480930101811128C00E948804D8 -:100D300080930101811122C08FE30E948804809377 -:100D4000010181111BC00E94800480E40E945E04A6 -:100D500080930101811112C08CE00E94880480936D -:100D6000010181110BC00E9488048093010181114F -:100D700005C08FE30E948804809301010E948004D3 -:100D8000809101010895462F50E04031510508F04F -:100D9000F1C0DC01FA01EA5AFF4F12968C910C94D3 -:100DA0008625882309F4E6C08091C0019091C10195 -:100DB000A091C201B091C30120E2822780729927DD -:100DC000AA27BB278093C0019093C101A093C201C1 -:100DD000B093C301CFC0882349F00E94BD1E9093F9 -:100DE00053018093520181E492E008958091520171 -:100DF000909153010E94C91E8739910508F0AEC039 -:100E000083E392E00895882349F00E94BD1E9093E9 -:100E10005301809352018EE292E008958091520135 -:100E2000909153010E94C91E8739910508F099C01D -:100E300080E292E00895882309F49CC08BE092E060 -:100E40000895882309F496C086EF91E008958823D9 -:100E500009F490C081EE91E00895882309F48AC0D6 -:100E60008CEC91E00895882309F484C087EB91E02D -:100E70000895811179C08DEA91E00895882309F4DD -:100E800079C084EA91E00895882309F473C08FE85B -:100E900091E00895882349F00E94BD1E909353016C -:100EA000809352018AE891E00895809152019091D7 -:100EB00053010E94C91E8739910508F058C08CE77C -:100EC00091E00895882309F455C087E691E00895DC -:100ED000882349F00E94BD1E9093530180935201D4 -:100EE00082E691E0089580915201909153010E9411 -:100EF000C91E8739910508F040C084E591E0089546 -:100F0000882349F00E94BD1E9093530180935201A3 -:100F100081E591E0089580915201909153010E94E2 -:100F2000C91E8739910560F583E491E0089588230F -:100F300049F00E94BD1E90935301809352018CE3AF -:100F400091E0089580915201909153010E94C91E31 -:100F500087399105C0F48AE291E008958EE392E02A -:100F6000089589E292E0089582EB91E0089585E882 -:100F700091E0089580E090E008958DE591E0089576 -:100F80008EE491E0089585E391E0089508956091DD -:100F9000C0017091C1018091C2019091C3010E9472 -:100FA000261E56985E9825982D9826982E98279854 -:100FB0002F988330C1F028F4813041F0823049F01D -:100FC0000895843049F0853051F00895259A2D9A7E -:100FD0000895269A2E9A0895259A2D9A04C0259A46 -:100FE0002D9A269A2E9A279A2F9A089581E008958D -:100FF00081E008950C94F8070895282F882339F08C -:1010000090E02A3010F44D9608950697089587E2EF -:1010100090E00895AF92BF92DF92EF92FF920F930C -:101020001F93CF93DF938C01FC01C081D181CE014E -:101030000E949F1CBE010E947A0BEC01B8010E9425 -:10104000FA07882309F4C9C1F8018281882309F4C9 -:10105000BEC08091600181111FC0C431F0E7DF077D -:1010600009F0B5C10E94FC0781E0809360010E94F5 -:10107000BD1E90935F0180935E0110925701109204 -:1010800059011092580110925B0110925A0110926E -:101090005D0110925C01A1C180915E0190915F01A0 -:1010A0000E94C91E883C910570F480915701E82F79 -:1010B000F0E0EE0FFF1FE85AFE4FD183C0838F5F31 -:1010C000809357018AC1C13020E8D20708F451C08B -:1010D000F8018281882309F47EC05E01E894B7F8A4 -:1010E00080915601813079F050F08230C1F482EE67 -:1010F0000E94291487E50E94291487E50EC082EE1C -:101100000E9429140CC080EE0E94291481EE0E94D6 -:10111000291488E10E94291488E10E94F1148CE0CE -:10112000E82EF12CC5010E2C02C0969587950A94E5 -:10113000E2F78F700E94FD07D82E0E9429148D2D92 -:101140000E94F114F4E0EF1AF1082CEFE2162FEFF1 -:10115000F20641F780915601813029F010F082307B -:1011600041F482EE04C080EE0E94F11481EE0E94F0 -:10117000F114C43180E7D80768F4C23090E7D9078A -:1011800008F046C0C115E0E7DE0771F0C130D04776 -:10119000A1F10CC1C33320E7D20709F4D8C0C4338E -:1011A000D04709F4EBC002C1F8018281882309F419 -:1011B00002C10E94A617FFEF24E38CE0F15020400B -:1011C0008040E1F700C000000E94181F06C1C13036 -:1011D00080E8D80770F2C43120E7D20708F0B3C026 -:1011E000C23080E7D807A0F4C11590E7D90709F409 -:1011F000E2C0C130D04709F0D9C0F801828188230C -:1012000009F4D9C08091DD0181608093DD01E5C0E2 -:10121000F8018281882309F4CEC00E94721F8111D7 -:1012200002C00E94581F0E94851F90E09093F10118 -:101230008093F001C230F0E7DF0721F48091F001E4 -:1012400081607AC0C33020E7D20721F48091F00199 -:10125000826072C0C43080E7D80721F48091F00129 -:1012600084606AC0C53090E7D90719F48091F00115 -:1012700027C0C630E0E7DE0721F48091F0018061ED -:101280005BC0C730F0E7DF0721F48091F001806296 -:1012900053C0C83020E7D20721F48091F001806468 -:1012A0004BC0C93080E7D80721F48091F0018068F5 -:1012B00043C0CA3090E7D90729F48091F0018460D7 -:1012C00088603AC0CB30E0E7DE0721F48091F0017E -:1012D0008E7F32C0CC30F0E7DF0721F48091F0013F -:1012E0008D7F2AC0CD3020E7D20721F48091F00114 -:1012F0008B7F22C0CE3080E7D80719F48091F001AF -:101300001AC08091F001CF3090E7D90711F48F7E99 -:1013100013C0C031E0E7DE0711F48F7D0DC0C1318D -:10132000F0E7DF0711F48F7B07C0C231D04711F41B -:101330008F7702C08B7F877F8093F0018091F001CF -:101340000E94891F4AC0C333F0E7DF07A1F4F80108 -:101350008281882321F01092540182E016C080918E -:101360005401811106C086E20E94291486E20E947F -:10137000F11482E018C0C433D047C1F4F80182816F -:10138000882331F01092550180E20E94401525C05B -:1013900080915501811106C087E20E94291487E2DD -:1013A0000E94F11480E20E94471517C081E08093EB -:1013B000540180935501C801DF91CF911F910F9186 -:1013C000FF90EF90DF90BF90AF900C94F607C13084 -:1013D000F0E8DF0708F081CECCCE80E0DF91CF913E -:1013E0001F910F91FF90EF90DF90BF90AF90089505 -:1013F00026E0729FF001112444E5849FE00DF11D69 -:101400001124E60FF11DEE0FFF1FEC5BFD4F8591E0 -:1014100094910E948C0B811560E49607B0F58115BC -:1014200070E3970708F0DEC0803E9105D8F4803C59 -:10143000910508F06CC0883A910578F4853A9105D9 -:1014400008F06BC08130910509F452C108F40FC156 -:101450008430910508F04CC10AC18B3B910508F41A -:1014600067C005C18F3F910509F048F4803F9105A1 -:1014700008F0ADC0883E910508F43AC1F8C0811566 -:1014800020E2920708F0A5C00895811543E594076E -:1014900090F4811562E5960708F0C8C0811571E5E2 -:1014A000970708F0BEC0811520E5920708F09DC09F -:1014B0009F70906A0895811545E59407D8F48115C9 -:1014C00064E5960708F0C8C0482F4695469570E237 -:1014D000479FA00111248370992721E030E0B901D2 -:1014E00002C0660F771F8A95E2F7CB01842B952BFC -:1014F0009A680895811576E5970708F4B2C09C01B3 -:1015000030562115304108F0B2C09F70AEC0FC01CA -:10151000EE0FFF1FEC53FF4F62C0853A910509F4AF -:10152000A9C0863A910509F0A8C082E890E4089520 -:10153000883A910509F4A4C0893A910509F4A3C039 -:101540008A3A910509F4A2C08B3A910509F4A1C029 -:101550008C3A910509F4A0C08D3A910509F49FC019 -:10156000803B910509F49EC08E3A910509F49DC017 -:101570008F3A910509F49CC0813B910509F49BC009 -:10158000823B910509F49AC0833B910509F499C007 -:10159000843B910509F498C0853B910509F497C0F7 -:1015A000863B910509F496C0873B910509F495C0E7 -:1015B000883B910509F494C0893B910509F493C0D7 -:1015C0008A3B910509F492C080E094E40895906507 -:1015D0000895FC01FF70EE0FFF1FEC5BFD4F85913E -:1015E000949108959927906C0895482F437021E0B5 -:1015F00030E002C0220F331F4A95E2F73C68AC018D -:1016000064E0569547956A95E1F74370342B8F70E7 -:101610008695869560E2869FC0011124822B932BCC -:101620000895982F8827816F906A0895482F4695CE -:10163000469570E2479FA00111248370992721E00D -:1016400030E0B90102C0660F771F8A95E2F7CB013F -:10165000842B952B9C680895982F8827846F906A17 -:1016600008958F719927982F88279062089580E0B8 -:1016700090E0089581E890E4089583E890E4089567 -:1016800082EE94E4089589EE94E408958AEE94E459 -:10169000089585EB94E4089586EB94E4089587EB30 -:1016A00094E408958CEC94E408958DEC94E408950A -:1016B00083E895E408958AE895E4089582E995E43D -:1016C000089584E995E4089581E296E4089583E21B -:1016D00096E4089584E296E4089585E296E40895F8 -:1016E00086E296E4089587E296E408958AE296E415 -:1016F0000895089596E0799FF001112494E5899F5B -:10170000E00DF11D1124E60FF11DEE0FFF1FEC5B44 -:10171000FD4F8591949108958238910549F1B0F477 -:101720008133910509F458C048F48932910509F4D0 -:101730004EC08A32910509F454C00895853391054D -:1017400009F440C08933910599F00895833E9105CD -:1017500029F138F4803E910591F0823E9105A1F087 -:101760000895863E9105F9F0873E910531F108957F -:101770002091F00120FD3AC021FD38C008958091EC -:10178000F00180FD35C032C08091F00182FF32C08F -:101790008091F00184FD30C083EE39C08091F0016A -:1017A00082FD28C0F5CF8091F00183FF27C0809192 -:1017B000F00184FD21C087EE2AC08091F00183FDF5 -:1017C0001DC0F5CF8091F00185FD1AC01BC080912E -:1017D000F00185FD17C014C08091F00186FD14C092 -:1017E00015C08091F00186FD11C00EC080EE0FC0C3 -:1017F00089E30DC082EE0BC080E009C086EE07C011 -:1018000089E205C085E303C08AE201C081E390E07C -:10181000089508950C94090C809171010895CF9357 -:10182000DF9300D01F92CDB7DEB79C018091F60107 -:10183000843019F593E099833B832A839093E900E0 -:101840008FEF9091E800815095FD06C095ED9A9537 -:10185000F1F700008111F5CF8091E80085FF0DC000 -:1018600040E050E063E070E0CE0101960E94750E0A -:101870008091E8008E778093E8000F900F900F9092 -:10188000DF91CF910895CF93DF9300D01F92CDB712 -:10189000DEB72091F601243021F522E029839B83D5 -:1018A0008A8383E08093E9008FEF9091E800815074 -:1018B00095FD06C095ED9A95F1F700008111F5CFE1 -:1018C0008091E80085FF0DC040E050E063E070E0EB -:1018D000CE0101960E94750E8091E8008E7780936C -:1018E000E8000F900F900F90DF91CF910895209115 -:1018F000F6012430F1F422E02093E9002FEF30913B -:10190000E800215035FD06C035ED3A95F1F70000AD -:101910002111F5CF2091E80025FF0BC040E050E0F9 -:1019200065E070E00E94750E8091E8008E778093EC -:10193000E8000895CF93DF93EC019091F601943085 -:1019400009F046C080910C018823D9F080910D01E7 -:101950008823B9F09093E9008FEF9091E8008150CF -:1019600095FD06C095E19A95F1F700008111F5CF3C -:101970008091E80085FF2CC040E050E060E170E01D -:1019800017C081E08093E9008FEF9091E8008150CB -:1019900095FD06C095ED9A95F1F700008111F5CF00 -:1019A0008091E80085FF14C040E050E068E070E0FE -:1019B000CE010E94750E8091E8008E778093E8003A -:1019C00080E1FE01A1E6B1E001900D928A95E1F778 -:1019D000DF91CF9108958091F501811109C00E9496 -:1019E0000A100E9467108091E20084608093E200F8 -:1019F00008951092F501089508950C94FE230E9415 -:101A0000AE1E0E9404240E940D130C940A0C42E0A6 -:101A100061EC81E00E94840F42E061EC82E00E9470 -:101A2000840F42E061EC83E00E94840F42E161ECAC -:101A300084E00C94840F8091F801833009F455C040 -:101A400030F4813071F0823009F48EC008958A300C -:101A500009F47AC08B3009F460C0893009F09CC069 -:101A600020C08091F701813A09F096C08091E8008A -:101A7000877F8093E8008091FB019091FC01892B86 -:101A800021F460E181E691E003C060E080E090E055 -:101A900070E00E94C00E8091E8008B778093E80090 -:101AA00008958091F701813209F076C08091FB01A1 -:101AB0009091FC01009719F0039709F06DC0809197 -:101AC000E800877F8093E8008091E80082FD05C0F0 -:101AD0008091F6018111F8CF5FC08091F100809371 -:101AE00071018091E8008B7753C08091F701813AB2 -:101AF00009F052C08091FB019091FC01892B09F003 -:101B00004BC08091E800877F8093E8008091E800D7 -:101B100080FFFCCF80910C0136C08091F7018132AB -:101B2000D9F58091FB019091FC01892BA9F5809159 -:101B3000E800877F8093E8000E94B90F8091F90147 -:101B400080930C010C94A6178091F701813221F546 -:101B50008091E800877F8093E8000E94B90F809110 -:101B6000FA018093720108958091F701813AA1F4FE -:101B70008091E800877F8093E8008091E80080FFF3 -:101B8000FCCF809172018093F1008091E8008E7704 -:101B90008093E8000C94B90F089584B7877F84BFC1 -:101BA00088E10FB6F89480936000109260000FBE39 -:101BB00080E880936100109261000E945C130E9493 -:101BC0000A100E9467108091E20084608093E20016 -:101BD00078940E94ED120E945E1382E091E00E94D0 -:101BE00008130E94EC238091F601853069F40E946D -:101BF000761E8091F4018823B1F30E94A01E8823F1 -:101C000091F30E945F0EEFCF0E946413ECCF292F57 -:101C1000332723303105C9F064F42130310581F0D8 -:101C20002230310509F043C08DE690E028E636E029 -:101C300042C021323105F1F02232310541F137C085 -:101C400082E190E025ED36E036C09927813091059C -:101C500041F08230910541F0892B49F5E4E6F6E048 -:101C600005C0ECE4F6E002C0E4E3F6E0849190E025 -:101C70009F0121C06430D8F4E62FF0E0EE0FFF1F83 -:101C8000EE5DFE4F2081318189E090E014C0643028 -:101C900070F470E0FB01EE0FFF1FE65EFE4F208147 -:101CA0003181FB01EA5EFE4F808190E004C080E05C -:101CB00090E020E030E0FA0131832083089580E154 -:101CC00089BD82E189BD09B400FEFDCF8091D800B5 -:101CD0008F7D8093D8008091E00082608093E00047 -:101CE0008091E00081FDFCCF0895CF92DF92EF92CA -:101CF000FF920F931F93CF93DF93EC018B016A0147 -:101D00000E94D80F811133C0C114D10439F0F601FB -:101D100080819181081B190BC80FD91FE12CF12C70 -:101D20000115110519F18091E80085FD16C080911B -:101D3000E8008E778093E800C114D10449F0F601E1 -:101D400080819181E80EF91EF182E08285E00FC06A -:101D50000E94D80F882321F30AC089918093F10053 -:101D600001501109FFEFEF1AFF0ADACF80E0DF918F -:101D7000CF911F910F91FF90EF90DF90CF9008953A -:101D80002091FD013091FE012617370748F06115BB -:101D9000710539F42091E8002E772093E80001C006 -:101DA000B90140E061157105A9F12091F6012223E6 -:101DB00009F443C0253009F442C02091E80023FD16 -:101DC00040C02091E80022FD32C02091E80020FFB1 -:101DD000E9CF4091F3002091F20030E0342BFC0178 -:101DE000CF016115710559F02830310540F481911A -:101DF0008093F100615071092F5F3F4FF1CF41E0B7 -:101E00002830310509F040E02091E8002E7720933A -:101E1000E800C8CF4111C9CF0AC08091F6018823DC -:101E200061F0853061F08091E80083FD0AC0809107 -:101E3000E80082FFF2CF80E0089582E0089583E019 -:101E4000089581E008952091FD013091FE0126174B -:101E5000370748F06115710539F42091E8002E77B5 -:101E60002093E80001C0B901FC0120E06115710573 -:101E700091F18091F601882309F440C0853009F47E -:101E80003FC08091E80083FD3DC08091E80082FD65 -:101E90002FC08091E80080FFE9CF2091F30080916E -:101EA000F20090E0922B6115710559F08830910590 -:101EB00040F424912093F10031966150710901960C -:101EC000F2CF21E0089709F020E08091E8008E77BA -:101ED0008093E800CBCF2111CCCF0AC08091F601CE -:101EE000882361F0853061F08091E80083FD0AC0AD -:101EF0008091E80082FFF2CF80E0089582E00895AB -:101F000083E0089581E00895982F973058F59093D5 -:101F1000E900981739F07091EC002091ED00509194 -:101F2000F00003C0242F762F50E021FF19C030911C -:101F3000EB003E7F3093EB003091ED003D7F30931E -:101F4000ED003091EB0031603093EB007093EC00CA -:101F50002093ED005093F0002091EE0027FF07C082 -:101F60009F5FD3CF8F708093E90081E0089580E078 -:101F700008958091F70187FF11C08091E80082FDEC -:101F800005C08091F6018111F8CF11C08091E80061 -:101F90008B770BC08091F601882349F08091E8008F -:101FA00080FFF8CF8091E8008E778093E800089555 -:101FB0002091E4003091E50095E64091EC00842FFB -:101FC000817040FF22C08091E80080FD1CC080919C -:101FD000F601882391F0853091F08091EB0085FD2A -:101FE00010C04091E4005091E5004217530729F3D7 -:101FF0009A01915011F784E0089582E0089583E0FA -:10200000089581E0089580E008954091E80042FF3E -:10201000DECF08950E9478100E948010E0EEF0E07C -:10202000808181608083E8EDF0E080818F7780831C -:1020300019BCA7EDB0E08C918E7F8C9380818F7E50 -:1020400080831092F50108950F931F93CF93DF9330 -:102050000E9478100E948010C8EDD0E088818F77B0 -:10206000888388818068888388818F7D888319BC74 -:102070001092F6011092F2011092F4011092F30105 -:1020800000EE10E0F80180818B7F80838881816081 -:10209000888342E060E080E00E94840FE1EEF0E09F -:1020A00080818E7F8083E2EEF0E08081816080839A -:1020B000808188608083F80180818E7F8083888121 -:1020C00080618883DF91CF911F910F910895E8ED92 -:1020D000F0E080818F7E8083E7EDF0E08081816099 -:1020E000808384E082BF81E08093F5010C9424100A -:1020F000E8EDF0E080818E7F80831092E200089509 -:102100001092DA001092E10008951F920F920FB61C -:102110000F9211242F933F934F935F936F937F936D -:102120008F939F93AF93BF93EF93FF938091E100C1 -:1021300082FF0BC08091E20082FF07C08091E10026 -:102140008B7F8093E1000E94EC128091DA0080FF87 -:102150001FC08091D80080FF1BC08091DA008E7F65 -:102160008093DA008091D90080FF0DC080E189BDA5 -:1021700082E189BD09B400FEFDCF81E08093F601C4 -:102180000E94EB0C05C019BC1092F6010E94F90CDC -:102190008091E10080FF19C08091E20080FF15C0AE -:1021A0008091E2008E7F8093E2008091E200806166 -:1021B0008093E2008091D80080628093D80019BC9F -:1021C00085E08093F6010E94FD0C8091E10084FF80 -:1021D00030C08091E20084FF2CC080E189BD82E1A3 -:1021E00089BD09B400FEFDCF8091D8008F7D80931A -:1021F000D8008091E1008F7E8093E1008091E20021 -:102200008F7E8093E2008091E20081608093E20003 -:102210008091F201882311F084E007C08091E300EF -:1022200087FD02C081E001C083E08093F6010E9437 -:10223000FF0C8091E10083FF29C08091E20083FFC1 -:1022400025C08091E100877F8093E10082E0809348 -:10225000F6011092F2018091E1008E7F8093E100FF -:102260008091E2008E7F8093E2008091E2008061A5 -:102270008093E20042E060E080E00E94840F809161 -:10228000F00088608093F0000E94FC0CFF91EF91B9 -:10229000BF91AF919F918F917F916F915F914F917E -:1022A0003F912F910F900FBE0F901F9018951F9286 -:1022B0000F920FB60F9211242F933F934F935F937A -:1022C0006F937F938F939F93AF93BF93CF93DF933E -:1022D000EF93FF93C091E900CF708091EC00D82F6D -:1022E000D17080FDD0E81092E9008091F000877FE6 -:1022F0008093F00078940E949B111092E9008091E5 -:10230000F00088608093F000CD2BCF70C093E9007F -:10231000FF91EF91DF91CF91BF91AF919F918F91FD -:102320007F916F915F914F913F912F910F900FBED1 -:102330000F901F9018951F93CF93DF93CDB7DEB703 -:10234000AA970FB6F894DEBF0FBECDBFE7EFF1E05E -:1023500088E08E0F9091F10091938E13FBCF0E9435 -:102360001B0D8091E80083FF1FC18091F7019091C0 -:10237000F801492F50E04A30510508F015C1FA0123 -:10238000EA59FF4F0C948625803881F0823809F095 -:102390000BC18091FB018F708093E9008091EB006D -:1023A00085FB882780F91092E90006C08091F3012F -:1023B0009091F401911182609091E800977F909341 -:1023C000E8008093F1001092F100C8C0282F2D7F03 -:1023D00009F0EAC0882319F0823061F0E5C08091ED -:1023E000F901813009F0E0C0933009F080E080937A -:1023F000F4012BC08091F901811127C08091FB016C -:102400008F7009F4D1C08093E9002091EB0020FF88 -:102410001CC0933021F48091EB00806214C0909135 -:10242000EB0090619093EB0021E030E0A90102C045 -:10243000440F551F8A95E2F74093EA001092EA0094 -:102440008091EB0088608093EB001092E90080910E -:10245000E800877F86C08111A7C01091F9011F771E -:102460008091E3008078812B8093E3008091E800E5 -:10247000877F8093E8000E94B90F8091E80080FF79 -:10248000FCCF8091E30080688093E300111102C0CB -:1024900082E001C083E08093F60186C080588230DC -:1024A00008F082C08091F9019091FA018C3D53E0CF -:1024B000950779F583E08A838AE289834FB7F89498 -:1024C000DE01139620E03EE051E2E32FF0E050936E -:1024D0005700E49120FF03C0E295EF703F5FEF707B -:1024E0008E2F90E0EA3010F0C79601C0C0968D9311 -:1024F0009D932F5F243149F74FBF8091E800877F7C -:102500008093E8006AE270E0CE0101960E94C00E5E -:1025100014C0AE014F5F5F4F6091FB010E94070E38 -:10252000BC01009709F440C09091E800977F909318 -:10253000E80089819A810E94230F8091E8008B77BF -:102540008093E80031C0803879F58091E800877F7A -:102550008093E8008091F2018093F1008091E8007F -:102560008E778093E8000E94B90F1EC081111CC0B5 -:102570009091F9019230C0F48091E800877F8093B8 -:10258000E8009093F2010E94B90F8091F20181114D -:1025900006C08091E30087FD02C081E001C084E0B5 -:1025A0008093F6010E94070D8091E80083FF0AC026 -:1025B0008091E800877F8093E8008091EB00806243 -:1025C0008093EB00AA960FB6F894DEBF0FBECDBF86 -:1025D000DF91CF911F9108950895CF938091F601D7 -:1025E0008823A1F0C091E900CF709091EC00892F71 -:1025F000817090FD80E8C82B1092E9008091E8007E -:1026000083FD0E949B11CF70C093E900CF91089584 -:1026100090937801809377010895E0917701F0918C -:102620007801309721F00190F081E02D099480E04D -:102630000895E0917701F0917801309721F00280C0 -:10264000F381E02D09940895E0917701F0917801EC -:10265000309721F00480F581E02D099408952091B0 -:102660007501309176018217930771F0909376018E -:1026700080937501E0917701F0917801309721F016 -:102680000680F781E02D099408952091730130911F -:1026900074018217930771F0909374018093730112 -:1026A000E0917701F0917801309721F00084F18575 -:1026B000E02D0994089508950C945B130E94B41EB4 -:1026C0000E94D2040C943A1F9F92AF92BF92CF9275 -:1026D000DF92EF92FF920F931F93CF93DF9300D07F -:1026E00000D000D0CDB7DEB70E94F9040DE010E0B5 -:1026F000AA24A394B12C902E802F0E94E705980164 -:1027000026583E4F6901F901F080F826A1F40150E6 -:10271000110988F78FEF89838A831B820E94BD1E6F -:102720008160782F9D838C8349815A816B818D8153 -:102730000E94FB132FC09091DD0191FF04C08E8396 -:102740000E94ED058E8125E030E0A501022E01C03A -:10275000440F0A94EAF7E42E4F21C1F029839A82AC -:102760008E2191E009F490E09B830E94BD1E816060 -:10277000782F9D838C8349815A816B818D810E9442 -:10278000FB13F6018081E826E08204C02150310964 -:10279000E0F6BDCF0E940821109179010E940D132F -:1027A0001817B9F00E940D138093790126960FB681 -:1027B000F894DEBF0FBECDBFDF91CF911F910F9177 -:1027C000FF90EF90DF90CF90BF90AF909F900C94D0 -:1027D0000A0C26960FB6F894DEBF0FBECDBFDF9170 -:1027E000CF911F910F91FF90EF90DF90CF90BF900E -:1027F000AF909F900895CF93DF93CDB7DEB72B971F -:102800000FB6F894DEBF0FBECDBF4F8358876987E0 -:102810007A878B87DE01119686E0FD0111928A95F9 -:10282000E9F785E0FE01379601900D928A95E1F770 -:1028300049815A816B817C818D819E810E94441ADD -:102840002B960FB6F894DEBF0FBECDBFDF91CF91B0 -:102850000895CF93882309F4C2C0C82F823859F451 -:102860000E940D1381FDBBC089E30E941E1D0E94C2 -:10287000EB1D89E30CC0833879F40E940D1380FDB1 -:10288000AEC083E50E941E1D0E94EB1D83E50E94E1 -:10289000601DCF910C94EB1D843859F40E940D13E8 -:1028A00082FD9DC087E40E941E1D0E94EB1D87E4EF -:1028B000EECF8CEF8C0F813A48F48C2F0E9452237C -:1028C00081118DC08C2F0E941E1DE3CF80E28C0FE2 -:1028D000883048F4C77081E001C0880FCA95EAF7D4 -:1028E0000E94A41DD6CF8BE58C0F833078F4C53AB7 -:1028F00029F0C63A31F083E890E005C081E890E025 -:1029000002C082E890E0CF910C942F1388E58C0FE1 -:10291000833108F064C0C83A39F1C93A41F1CA3A82 -:1029200049F1CB3A51F1CC3A59F1CD3A61F1C03B82 -:1029300069F1CE3A71F1CF3A79F1C13B81F1C23BF5 -:1029400089F1C33B91F1C43B99F1C53BA1F1C63B71 -:10295000A9F1C73BB1F1C83BB9F1C93BC1F1CA3BD1 -:10296000C9F180E090E038C082EE90E035C089EE99 -:1029700090E032C08AEE90E02FC085EB90E02CC052 -:1029800086EB90E029C087EB90E026C08CEC90E0CD -:1029900023C08DEC90E020C083E891E01DC08AE860 -:1029A00091E01AC082E991E017C084E991E014C077 -:1029B00081E292E011C083E292E00EC084E292E0F4 -:1029C0000BC085E292E008C086E292E005C087E293 -:1029D00092E002C08AE292E0CF910C944513CF912D -:1029E0000895882309F44BC0823859F40E940D13CE -:1029F00081FF45C089E30E941E1D0E94EB1D89E3F3 -:102A00000CC0833871F40E940D1380FF38C083E539 -:102A10000E941E1D0E94EB1D83E50E94601D0C9408 -:102A2000EB1D843859F40E940D1382FF28C087E4FF -:102A30000E941E1D0E94EB1D87E4EFCF9CEF980FB4 -:102A4000913A58F390E2980F983050F4877091E0E3 -:102A500001C0990F8A95EAF7892F0E94AA1DDFCF3E -:102A60009BE5980F933020F480E090E00C942F13B6 -:102A7000885A833120F480E090E00C944513089547 -:102A8000882321F00E94A41D0C94EB1D0895882337 -:102A900021F00E94AA1D0C94EB1D08957F928F9245 -:102AA0009F92AF92BF92CF92DF92EF92FF920F93DD -:102AB0001F93CF93DF931F92CDB7DEB77C01C62E55 -:102AC000772EFC01058102950F70128111110E9471 -:102AD000C11D0E94171D882379F0112369F080E23F -:102AE0008C0D883048F082E00E94001D0E94171D66 -:102AF00091E0D82ED92601C0D12CE72DE295EF70B8 -:102B0000F0E0E059FF4F0C948625872D807F072D3C -:102B10000F70882311F00295007F112389F00023A4 -:102B200009F490C180E28C0D883020F4802F0E943F -:102B3000A41D03C0802F0E94B41D0E94EB1D82C102 -:102B40008C2D0E94F114002309F495C180E28C0DB4 -:102B5000883020F4802F0E94AA1D03C0802F0E947D -:102B6000BA1D0E94EB1D87C1972D907F872D8F7016 -:102B7000903211F08295807FCC2021F0F1E0CF16C9 -:102B8000B1F01EC0112349F0002309F414C1013033 -:102B900009F011C10E94D41D6EC1002319F001304B -:102BA00009F469C189830E94D71D89810AC1112353 -:102BB00021F0023008F05FC1FEC001115CC101C10B -:102BC000112321F0002309F4F6C03CC1002309F4CD -:102BD000F8C03EC1872D86958695837090E000975A -:102BE00019F0019761F047C1112321F08C2D972D29 -:102BF000937002C080E090E00E942F133CC111232B -:102C000021F08C2D972D937002C080E090E00E94FF -:102C1000451331C18C2D112319F00E94102002C0E0 -:102C20000E9478200E94FD2026C1872D837009F024 -:102C300052C0111120C18C2D829586958770880F06 -:102C4000880F9C2D9F70892E912CA12CB12C082EC1 -:102C500004C0880C991CAA1CBB1C0A94D2F7C4FEA1 -:102C600014C00FE010E020E030E0B901A80104C07A -:102C7000440F551F661F771F8A95D2F7CB01BA0103 -:102C8000609570958095909503C060E070E0CB01F1 -:102C9000272D26952695237030E02230310569F0E6 -:102CA0002330310589F0682979298A299B29213027 -:102CB000310571F00E948C1BDEC0682979298A29B0 -:102CC0009B290E94A81BD7C00E948C1BC501B40180 -:102CD0000E94701BD0C0112319F0872D817001C094 -:102CE0008695882309F4C7C08C2D829586958770B8 -:102CF000880F880F9C2D9F70892E912CA12CB12CB0 -:102D0000082E04C0880C991CAA1CBB1C0A94D2F77C -:102D1000C4FE14C00FE010E020E030E0B901A801CB -:102D200004C0440F551F661F771F8A95D2F7CB0149 -:102D3000BA01609570958095909503C060E070E051 -:102D4000CB01272D269526952370422F50E0423047 -:102D5000510569F04330510589F0682979298A299C -:102D60009B294130510571F00E94661C84C068297E -:102D700079298A299B290E94821C7DC00E94661C99 -:102D8000C501B4010E944A1C76C08C2D90E0FC0164 -:102D9000E05EF109E531F10508F050C0E058FF4F61 -:102DA0000C9486250C2D0F70872D8F71112331F017 -:102DB0000E94E31B802F0E9440155DC00E94041CEE -:102DC000802F0E94471557C0112339F0011153C0BD -:102DD000872D8F710E94291C4EC0023008F04BC015 -:102DE000F7CF112339F0872D8F710E94E31B43C069 -:102DF0001123C9F3872D8F710E94041C3CC011233D -:102E000029F0872D8F710E94CE1B35C00E94C41BF4 -:102E100032C0112351F0172D1F71812F0E94E31B27 -:102E200063E0812F0E94F71C26C081E00E94001DF4 -:102E3000023008F182E00E94001D1DC0112331F014 -:102E4000002389F28C2D0E94291415C0002391F2D1 -:102E50008C2D0E94F1140FC0472D4F706C2DC701AF -:102E60000E94C3060E94E81A06C0472D4F706C2DC1 -:102E7000C7010E94790BDD20F9F00E94F31C80FD50 -:102E80001BC0F70112820E94ED1C0E94E31BC701C8 -:102E90000E946B170E94ED1C0F90DF91CF911F9144 -:102EA0000F91FF90EF90DF90CF90BF90AF909F90E9 -:102EB0008F907F900C94041C0F90DF91CF911F9105 -:102EC0000F91FF90EF90DF90CF90BF90AF909F90C9 -:102ED0008F907F9008950F931F93CF93DF93EC0112 -:102EE000888199812B813C81232BB9F09F3F11F47C -:102EF0008F3F99F0CE010E940A08882371F0688103 -:102F000079818A810E94E91C8C010E949E1C0E948A -:102F1000651BB801CE010E944E15DF91CF911F9124 -:102F20000F9108950E94C11D0E94D11D0E94961DFF -:102F30000E94EB1D0E94AE210E94FD2080E090E0E7 -:102F40000E942F1380E090E00C9445130E94B11D65 -:102F50000C9492170E94DE1C292F22952F7030E0CE -:102F60002C3031054CF42A3031056CF422503109F3 -:102F700022303105A8F407C02C30310569F02F301C -:102F8000310551F00DC0803F69F018F4803E40F4E7 -:102F900009C0843F29F406C093FB882780F908956F -:102FA00080E0089581E00895CF93DF9300D000D0B2 -:102FB0001F92CDB7DEB70F900F900F900F900F902C -:102FC000DF91CF910895CF93DF9300D000D000D050 -:102FD000CDB7DEB726960FB6F894DEBF0FBECDBFD5 -:102FE000DF91CF9108951F93CF93DF93C091880114 -:102FF00016E080918901C81799F0D0E01C9FF0017C -:103000001D9FF00D1124E657FE4F408151816281D2 -:103010007381848195810E94E3172196C770E9CF5F -:10302000DF91CF911F9108954091BA015091BB015A -:103030006091BC017091BD018091BE019091BF0172 -:103040000C94E3178091BF0182958F7009F054C0F2 -:103050008091BC01882309F44FC080918801A09120 -:1030600089016091BA017091BB014091BD015091FD -:10307000BE01B6E08A1709F43FC090E04115510542 -:10308000C1F17F3F11F46F3FA1F1B89FF001B99FEB -:10309000F00D1124E657FE4F218172132AC02081C2 -:1030A000621327C02281211124C023813481241777 -:1030B000350710F421503109241B350B283C31050C -:1030C000C0F42091BF012F7020612093BF0126E042 -:1030D000289FF001299FF00D1124E157FE4F8081B8 -:1030E0008F70806180838AEB91E00E946B170C9453 -:1030F000F31701968770BECF0895CF92DF92EF92BB -:10310000FF920F931F93CF93DF93CDB7DEB76297F4 -:103110000FB6F894DEBF0FBECDBF8C0185E0F8017D -:10312000DE011D9601900D928A95E1F7D8014C9130 -:1031300011965C91119712966C9112971396CD90FF -:10314000DC9014973091BA017091BB018091BD0160 -:103150009091BE01009709F46BC17F3F19F43F3F86 -:1031600009F466C1E090BC01EE2009F4C0C02091D2 -:10317000BF01C816D90628F0F601E81BF90BCF01EC -:1031800004C0809590958C0D9D1DFF24F394883C80 -:10319000910578F0F12C207F09F0C6C07C2DD98AEA -:1031A000C88A89890E94D4178AEB91E00E946B1724 -:1031B000B1C0822F807F09F046C0751314C034134C -:1031C00012C0611110C02F7020612093BF010E94B6 -:1031D00014188AEB91E00E946B178091BF01D8010F -:1031E00015968C932EC0CD2819F15F3F11F44F3FF7 -:1031F000F9F0F62E61111CC080918801209189019F -:1032000036E0821709F45AC090E0389FF001399FE8 -:10321000F00D1124E657FE4F7181571306C07081DF -:10322000471303C07281711103C001968770E9CF03 -:10323000F62E662309F418C18091BF018160809346 -:10324000BF01F12C11C1751308C0341306C0611100 -:1032500004C08091BF01D801C3C04D875E878D85B2 -:103260009E856A8B0E94AA176A898823E1F16623EA -:10327000D1F12091BF01822F82958F7090E002974B -:1032800074F08091BA019091BB0198878F83198661 -:10329000DB86CA862C87CE0107960E946B1786E0D4 -:1032A000F801AAEBB1E001900D928A95E1F70E9436 -:1032B00022180E941418FF24F394D6C04D875E870D -:1032C0008D859E850E94DE1C292F22952F7030E06F -:1032D000223031050CF0BCC09F7009F0B6C0805E92 -:1032E000883008F4C1C0C8010E946B17E4CFC8162B -:1032F000D90608F453C0F601E81BF90BCF01883C4E -:10330000910508F450C0F12C7C2DD98AC88A89898E -:103310000E94D417EAEBF1E086E0DF011D928A9566 -:10332000E9F70E941418A0C0751314C0341312C01A -:10333000611110C08091BF01F8018583C8010E940E -:103340006B1786E0EAEBF1E0DF011D928A95E9F761 -:10335000FE2C8AC04D875E878D859E856A8B0E9474 -:10336000AA176A89882309F4BECF662309F4BBCF64 -:103370002091BF01822F82958F7090E002970CF40C -:103380008ECF8091BA019091BB019A8389831B8271 -:10339000DD82CC822E83CE0101967FCF80959095E1 -:1033A0008C0D9D1DACCFF62E662309F49CCF7513B2 -:1033B0002EC034132CC02091BF0120FD1FC0822FCE -:1033C00082958F70D9F0D80115962C9315978F3070 -:1033D00049F08F5F982F9295907F822F8F70892B65 -:1033E00015968C93C8010E946B1786E0F801AAEB32 -:1033F000B1E001900D928A95E1F793CF86E0F80154 -:10340000AAEBB1E001900D928A95E1F72DC04D87AE -:103410005E878D859E850E94AA17811140CF80917D -:10342000BF0181608093BF01C8010E946B171CC05F -:10343000662309F458CF4D875E878D859E850E944F -:10344000AA17882309F44FCF2ACF811148CF0CC087 -:10345000243031050CF047CF9F7009F440CFF801BC -:103460009581907F09F03BCF8F2D62960FB6F8942F -:10347000DEBF0FBECDBFDF91CF911F910F91FF90A7 -:10348000EF90DF90CF9008951F93CF93DF93CDB748 -:10349000DEB72C970FB6F894DEBF0FBECDBF4F83BB -:1034A000588769877A878B879C87CE0107960E9409 -:1034B0007D18882369F08F8198852A853B85232B89 -:1034C000F1F19F3F09F063C08F3F09F060C037C042 -:1034D00086E0FE013796DE01119601900D928A95E5 -:1034E000E1F76F817885EA85FB85309741F17F3F71 -:1034F00011F46F3F21F12091890130E0C90101965B -:10350000877099274091880150E08417950709F446 -:1035100047C069837A83FD83EC8396E0929FD00154 -:10352000939FB00D1124A657BE4FFE013196019016 -:103530000D929A95E1F7809389010E94F31716E0A6 -:1035400080918801909189018917C1F1189FC0016C -:10355000112486579E4F0E947D18882379F1E091AF -:1035600088011E9FF0011124E657FE4F40815181D2 -:1035700062817381848195810E94E3178091880123 -:1035800090E001968770992780938801D9CF4F8169 -:10359000588569857A858B859C850E94E317CFCFF6 -:1035A0000E94A6171092890110928801EAEBF1E0BF -:1035B00086E0DF011D928A95E9F7C1CF2C960FB600 -:1035C000F894DEBF0FBECDBFDF91CF911F9108955C -:1035D000EF92FF920F931F93CF93DF938C0100978D -:1035E00009F46CC0F12CEE24E394E8012196F80173 -:1035F0008491843740F4843008F051C0813081F0E8 -:10360000823019F15BC0853709F444C0A8F19CE70A -:10361000980F903708F052C08F770E94F11441C084 -:103620000E5F1F4FFE01C49180E28C0F883048F47A -:10363000C7708E2D01C0880FCA95EAF70E94C41D7D -:1036400014C08C2F0E9429142DC00E5F1F4FFE0145 -:10365000C49180E28C0F883058F4C7708E2D01C061 -:10366000880FCA95EAF70E94CA1D0E94EB1D1AC076 -:103670008C2F0E94F11416C00E5F1F4FFE01C491E3 -:10368000CC2381F08FE99FE00197F1F700C00000A3 -:10369000C150F6CF0E5F1F4FFE01F49003C00E9491 -:1036A00029148E018F2D882309F49FCFEFE9FFE0C5 -:1036B0003197F1F700C000008150F5CFDF91CF9135 -:1036C0001F910F91FF90EF90089508956093C401AA -:1036D0007093C5018093C6019093C7010C94921713 -:1036E0000F931F930091C4011091C5012091C60151 -:1036F0003091C701DC01CB01802B912BA22BB32B86 -:103700008093C4019093C501A093C601B093C701F3 -:103710001F910F910C9492170F931F930091C40166 -:103720001091C5012091C6013091C701DC01CB0188 -:1037300080239123A223B3238093C4019093C501D6 -:10374000A093C601B093C7011F910F910C949217DB -:103750000F931F930091C4011091C5012091C601E0 -:103760003091C701DC01CB0180279127A227B32725 -:103770008093C4019093C501A093C601B093C70183 -:103780001F910F910C9492171092C0011092C101D9 -:103790001092C2011092C3010C94921741E050E0C4 -:1037A00060E070E004C0440F551F661F771F8A95C4 -:1037B000D2F74093C0015093C1016093C20170934E -:1037C000C3010C94921741E050E060E070E004C047 -:1037D000440F551F661F771F8A95D2F78091C0014D -:1037E0009091C101A091C201B091C301482B592B06 -:1037F0006A2B7B2B4093C0015093C1016093C2019F -:103800007093C3010C94921741E050E060E070E0C7 -:1038100004C0440F551F661F771F8A95D2F7409545 -:103820005095609570958091C0019091C101A091D3 -:10383000C201B091C301482359236A237B234093DB -:10384000C0015093C1016093C2017093C3010C94F5 -:10385000921741E050E060E070E004C0440F551F53 -:10386000661F771F8A95D2F78091C0019091C101A0 -:10387000A091C201B091C301482759276A277B272D -:103880004093C0015093C1016093C2017093C30182 -:103890000C9492170F931F930091C0011091C101D6 -:1038A0002091C2013091C301DC01CB01802B912B0F -:1038B000A22BB32B8093C0019093C101A093C201AE -:1038C000B093C3011F910F910C9492170F931F9304 -:1038D0000091C0011091C1012091C2013091C3013A -:1038E000DC01CB0180239123A223B3238093C00169 -:1038F0009093C101A093C201B093C3011F910F9196 -:103900000C9492170F931F930091C0011091C10165 -:103910002091C2013091C301DC01CB0180279127A6 -:10392000A227B3278093C0019093C101A093C20145 -:10393000B093C3011F910F910C9492170895CF92E9 -:10394000DF92EF92FF920F931F93CF93DF938C013F -:10395000C090C401D090C501E090C601F090C701AD -:103960008091C0019091C101A091C201B091C301A9 -:10397000C82AD92AEA2AFB2ACFE1D0E0D701C6011A -:103980000C2E04C0B695A795979587950A94D2F703 -:1039900080FF06C0B8018C2F0E94F809019721F41E -:1039A000219760F780E001C08C2FDF91CF911F91AC -:1039B0000F91FF90EF90DF90CF900895CF93DF931A -:1039C000EC010E949F1CBE010E94F809DF91CF917B -:1039D0000895CB010E94DE1C08958091C801859551 -:1039E0008595859508958091C8018770089598E020 -:1039F000899F90011124262B2093C8010C94E31B6E -:103A00002091C801809582238093C801982F9770D8 -:103A100069F430E0482F552747FD509524173507A6 -:103A200029F08595859585950C94041C08959091B1 -:103A3000C801977081E009F480E0089590910C012D -:103A4000992321F090910D01911109C020910E014F -:103A500030910F01F90132969FEF40E01FC0982F7F -:103A60009695969596959F3050F5E0910E01F091C0 -:103A70000F01E90FF11D877021E030E0A90102C0BC -:103A8000440F551F8A95E2F7CA019181892B8183E2 -:103A900008959F3F39F04F5F4E3041F051915813D8 -:103AA000F8CF0DC05111F7CF942FF5CF9F3F39F0CC -:103AB000F901E90FF11D97FDFA95828308950895A4 -:103AC00090910C01992321F090910D01911109C061 -:103AD00020910E0130910F01F9013296205F3F4F86 -:103AE0001FC0982F9695969596959F30F0F4E0918B -:103AF0000E01F0910F01E90FF11D877021E030E018 -:103B0000A90102C0440F551F8A95E2F7CA018095AA -:103B100091818923818308953196E217F30729F073 -:103B200090819813F9CF1082F7CF089581E090E04B -:103B3000E0910E01F0910F01E80FF91F108201963C -:103B400080319105A9F708959091DC01892B80932C -:103B5000DC01089580959091DC0189238093DC013C -:103B600008951092DC0108959091DB01892B8093D8 -:103B7000DB01089580959091DB0189238093DB011F -:103B800008951092DB0108959091DA01892B8093BA -:103B9000DA01089580959091DA0189238093DA0102 -:103BA00008951092DA0108958093C9010895109242 -:103BB000C901089580910E0190910F01FC01319689 -:103BC0009C01205F3F4F80E0919191118F5FE21740 -:103BD000F307D1F70895E0910E01F0910F01809164 -:103BE000DC018083E0910E01F0910F0190818091C2 -:103BF000DB01892B8083E0910E01F0910F01908110 -:103C00008091DA01892B80838091C901882361F03A -:103C1000E0910E01F0910F019081892B80830E9429 -:103C2000DA1D81111092C90180910E0190910F014E -:103C30000C94191320E0009739F0AC014150510960 -:103C4000842395232F5FF7CF822F0895CF92DF92A1 -:103C5000EF92FF926C01EE24FF24C114D104E10421 -:103C6000F10421F0C701B60120E101C020E0C72E18 -:103C7000D82EE92EFF24C114D104E104F10419F077 -:103C8000285FC701B6016B017C0154E0F694E7940C -:103C9000D794C7945A95D1F7C114D104E104F10423 -:103CA00019F02C5FC701B6016B017C0142E0F6946C -:103CB000E794D794C7944A95D1F7C114D104E1048D -:103CC000F10419F02E5FC701B601DC01CB01B695F6 -:103CD000A79597958795892B8A2B8B2B09F02F5FBA -:103CE000822FFF90EF90DF90CF9008958091F601A2 -:103CF000843021F11092DE0120E488E190E00FB6DB -:103D0000F894A895809360000FBE2093600080E037 -:103D10000E940A0C83B7817F846083BF83B7816070 -:103D200083BF7894889583B78E7F83BF88E10FB671 -:103D3000F89480936000109260000FBE089508957B -:103D40000E94E6040E94F9040E949F1E0E94EE0554 -:103D500091E0811101C090E0892F08950E94A6177B -:103D60000E940D130C940A0C82E084BD93E095BD73 -:103D70009AEF97BD80936E0008952FB7F8948091C5 -:103D8000DF019091E001A091E101B091E2012FBF2C -:103D90000895CF92DF92EF92FF920F931F932FB768 -:103DA000F8944091DF015091E0016091E101709140 -:103DB000E2012FBF6A017B01EE24FF248C0120E089 -:103DC00030E0C016D106E206F30610F44150510966 -:103DD0009A01281B390BC9011F910F91FF90EF9099 -:103DE000DF90CF9008951F920F920FB60F9211247B -:103DF0008F939F93AF93BF938091DF019091E001E8 -:103E0000A091E101B091E2010196A11DB11D809345 -:103E1000DF019093E001A093E101B093E201BF9133 -:103E2000AF919F918F910F900FBE0F901F9018959B -:103E30000E940A10F8942FEF87EA91E62150804003 -:103E40009040E1F700C0000087E090EBDC01809338 -:103E5000FF0190930002A0930102B09302029CE044 -:103E600088E10FB6F894A895809360000FBE9093F8 -:103E70006000FFCF0E94721F811102C00E94581F74 -:103E80000E947D1F8093DD010E94851F90E090932A -:103E9000F1018093F00187FB882780F980930D0161 -:103EA0000E94811F682F70E080E090E00C94661BF8 -:103EB0006DEE7EEF80E090E00E94C02560E082E041 -:103EC00090E00E94AE2560E083E090E00E94AE2585 -:103ED00060E084E090E00E94AE2560E085E090E044 -:103EE0000C94AE2580E090E00E94A82521E08D3E54 -:103EF0009E4F09F020E0822F089582E090E00C941C -:103F0000A02583E090E00C94A02584E090E00C9440 -:103F1000A025682F84E090E00C94AE258091E50107 -:103F200080FF0BC06091130185E0689FB0011124F0 -:103F300075956795759567952BC081FF09C0609150 -:103F4000130185E0689FB00111247595679520C025 -:103F500082FF07C06091130185E0689FB0011124C2 -:103F600017C09091E6019923D1F060911201961744 -:103F700088F72091130185E0289F90011124929FDA -:103F8000A001939F500D112470E0CA010E94722578 -:103F90006038710540F46115710539F002C065E0C3 -:103FA00070E0862F08958FE7089581E0089580914D -:103FB000E50180FF08C06091110170E0759567957B -:103FC0007595679521C081FF06C06091110170E071 -:103FD0007595679519C082FF04C06091110170E06A -:103FE00010C09091E6019923C1F0609110019617DD -:103FF000A0F780911101899FC001112470E00E94F7 -:1040000072256038710528F46115710521F0862F3D -:1040100008958FE7089581E0089561E070E0F4CF9E -:10402000803F21F40E948E1F819504C0813F29F4B6 -:104030000E948E1F8093E9010895823F21F40E941F -:104040008E1F819504C0833F29F40E948E1F8093A8 -:10405000E8010895893F19F40E94D71F05C08A3FDF -:1040600031F40E94D71F81958093EA0108958B3F18 -:1040700021F40E94D71F819504C08C3F29F40E942F -:10408000D71F8093EB010895843F21F48091E701CD -:10409000816017C0853F21F48091E701826011C0E3 -:1040A000863F21F48091E70184600BC0873F21F4B3 -:1040B0008091E701886005C0883F31F48091E70175 -:1040C00080618093E70108958D3F21F48091E5019F -:1040D00081600BC08E3F21F48091E501826005C0B4 -:1040E0008F3F29F48091E50184608093E501089574 -:1040F000803F39F48091E90187FF6CC01092E9019B -:1041000069C0813F29F48091E9011816BCF362C0AF -:104110009091E801823F29F497FF5CC01092E8017A -:1041200059C0833F19F41916CCF354C0893F41F4A8 -:104130008091EA0118160CF04DC01092EA014AC0B5 -:104140008A3F29F48091EA0187FF44C0F6CF8B3F74 -:1041500039F48091EB0187FF3DC01092EB013AC02A -:104160008C3F29F48091EB011816BCF333C0843FD7 -:1041700021F48091E7018E7F17C0853F21F4809163 -:10418000E7018D7F11C0863F21F48091E7018B7F8D -:104190000BC0873F21F48091E701877F05C0883FEE -:1041A00031F48091E7018F7E8093E70113C08D3F4A -:1041B00021F48091E5018E7F0BC08E3F21F4809128 -:1041C000E5018D7F05C08F3F29F48091E5018B7F4C -:1041D0008093E5018091E80181110EC08091E90191 -:1041E00081110AC08091EA01811106C08091EB0122 -:1041F000811102C01092E601089587EE91E00E94BD -:1042000024130E94BD1E9093E4018093E30108955E -:104210001F93CF93DF938091E3019091E4010E947B -:10422000C91EAC019091E601992321F0209114015F -:1042300030E006C0209115018AE0289F90011124EA -:104240004217530708F486C08091E801C091E90144 -:10425000D091EA011091EB01811107C0C11176C024 -:10426000D11174C0111172C075C09F3F19F09F5FCA -:104270009093E601181624F40E948E1F8093E801A3 -:104280008091E80187FF05C00E948E1F8195809371 -:10429000E8011C1624F40E948E1F8093E90180918E -:1042A000E90187FF05C00E948E1F81958093E90177 -:1042B0006091E801662339F1C091E901CC2319F13D -:1042C000772767FD7095872F972F0E94832423E31C -:1042D00033E343E35FE30E94E7240E9450246093AA -:1042E000E8016C2F772767FD7095872F972F0E9425 -:1042F000832423E333E343E35FE30E94E7240E9444 -:1043000050246093E9011D1624F40E94D71F809366 -:10431000EA018091EA0187FF05C00E94D71F8195BD -:104320008093EA01111624F40E94D71F8093EB01B9 -:104330008091EB0187FF05C00E94D71F8195809374 -:10434000EB01DF91CF911F910C94FD209F3F09F06D -:104350008ECF96CFDF91CF911F910895E7EEF1E0D8 -:1043600085E0DF011D928A95E9F71092E60110922F -:10437000E5010895833081F128F4813059F08230CD -:10438000D1F00895853009F449C0B8F1863009F4B8 -:1043900056C0089580911501262F30E0280F311D59 -:1043A0002F3F310524F4680F6093150108958FEFB6 -:1043B00080931501089580911401262F30E0280F75 -:1043C000311D2F3F310524F4680F609314010895C7 -:1043D0008FEF80931401089580911301262F30E010 -:1043E000280F311D2F3F310524F4680F609313010E -:1043F00008958FEF80931301089580911201262F65 -:1044000030E0280F311D2F3F310524F4680F6093F1 -:10441000120108958FEF8093120108958091110188 -:10442000262F30E0280F311D2F3F310524F4680F6F -:104430006093110108958FEF809311010895809189 -:104440001001262F30E0280F311D2F3F310524F4B5 -:10445000680F6093100108958FEF80931001089505 -:10446000833011F128F4813049F0823091F00895C1 -:10447000853081F120F18630C1F1089580911501D8 -:10448000681720F4861B809315010895109215017A -:10449000089580911401681720F4861B80931401FD -:1044A000089510921401089580911301681720F463 -:1044B000861B809313010895109213010895809133 -:1044C0001201681720F4861B809312010895109240 -:1044D0001201089580911101681720F4861B8093C2 -:1044E000110108951092110108958091100168172B -:1044F00020F4861B809310010895109210010895F6 -:104500000F931F938D3109F471C008F045C08031BD -:1045100009F485C008F5873009F46FC068F4863067 -:1045200009F0ADC08091DD01817F8E7F8093DD0138 -:1045300081E08093ED01A4C08B3009F49EC08E30E1 -:1045400009F09DC08091DD0182FB222720F991E0D6 -:10455000922790FB82F96CC0863109F48EC060F41A -:10456000813109F08CC00E94A61790910D0181E065 -:10457000892780930D0181C0893109F47EC08B3178 -:1045800009F07DC08091DD0181FB222720F991E0B7 -:10459000922790FB81F94CC0853309F466C048F43A -:1045A000873209F462C008F44FC0893209F45DC053 -:1045B00066C0833438F48A3308F044C0883309F481 -:1045C0005CC05DC0833409F450C0883409F057C022 -:1045D0000E94A6170FEF13ED20E30150104020407A -:1045E000E1F700C000000E94181F47C00E940A2483 -:1045F0000E940D130E940A0C40C09091DD01892F8A -:104600008095817080FB90F929F096609860909376 -:10461000DD0136C0997F977F9093DD012EC0809198 -:10462000DD0183FB222720F991E0922790FB83F99B -:104630008093DD01992309F18091DD0181608093F0 -:10464000DD011BC0895301C08D5141E050E060E0A5 -:1046500070E08A019B0104C0000F111F221F331F4D -:104660008A95D2F7C901B80104C061E070E080E02A -:1046700090E00E94661B0E94A61781E001C080E0C6 -:104680001F910F91089580E0089580E008958E5164 -:104690008A3030F4E82FF0E0E65DFE4F8081089527 -:1046A00080E00895CF93C82F8091ED01813079F09B -:1046B00018F08230E9F186C0E0910E01F0910F010F -:1046C0008081813169F0823209F07EC009C0E091B9 -:1046D0000E01F0910F018081813111F0823261F47D -:1046E0008C2F0E944323811104C08C2F0E948022B2 -:1046F0001DC081E090E01AC08C2F0E9445238111DB -:1047000014C0C43179F048F4CB3079F0C03109F0ED -:104710005FC082E08093ED0108C0C93219F0C83350 -:1047200021F056C01092ED0153C081E0817052C05B -:10473000C93281F110F5C43169F1A8F4C73009F02C -:1047400045C08AE08093150194E19093140193E0B1 -:10475000909313018093120188E08093110188E205 -:104760008093100133C082EE8C0F863078F58C2F49 -:104770000E9447238093EC0129C0CE34E9F020F455 -:10478000CB3421F56AE013C0C13579F0C235F1F4BC -:1047900061E00DC08091EC01882319F01092EC01CA -:1047A00015C081E08093ED0115C061E006C08091E5 -:1047B000EC010E94BA210AC06AE08091EC010E94DB -:1047C000302204C01092ED0180E004C081E002C0FC -:1047D00080E0ACCFCF910895E1E8F0E0808188607F -:1047E00080838081816080838FB7F89493E0909379 -:1047F000890090ED909388008FBF0895EFE6F0E078 -:104800008081826080830895EFE6F0E080818D7F73 -:1048100080830895EFE6F0E0908182E0892780832D -:1048200008951F920F920FB60F9211242F933F936A -:104830004F935F936F937F938F939F93AF93BF93A8 -:10484000EF93FF938091EE019091EF010196909389 -:10485000EF018093EE01811103C082E00E940A0CF7 -:10486000E091EF01E695E695F0E0ED51F84FE49127 -:104870008091EE018E1303C080E00E940A0CFF912C -:10488000EF91BF91AF919F918F917F916F915F91C8 -:104890004F913F912F910F900FBE0F901F90189541 -:1048A00004D06894B1118DC0089570D088F09F57DE -:1048B00090F0B92F9927B751A0F0D1F0660F771F6C -:1048C000881F991F1AF0BA95C9F712C0B13081F04C -:1048D00077D0B1E0089574C0672F782F8827B85F2C -:1048E00039F0B93FCCF3869577956795B395D9F7AD -:1048F0003EF490958095709561957F4F8F4F9F4FB7 -:104900000895E89409C097FB3EF4909580957095C2 -:1049100061957F4F8F4F9F4F9923A9F0F92F96E90B -:10492000BB279395F695879577956795B795F11180 -:10493000F8CFFAF4BB0F11F460FF1BC06F5F7F4F1D -:104940008F4F9F4F16C0882311F096E911C077232F -:1049500021F09EE8872F762F05C0662371F096E838 -:10496000862F70E060E02AF09A95660F771F881F07 -:10497000DAF7880F9695879597F9089557FD90581F -:10498000440F551F59F05F3F71F04795880F97FB13 -:10499000991F61F09F3F79F08795089512161306CD -:1049A0001406551FF2CF4695F1DF08C016161706FC -:1049B0001806991FF1CF8695710561050894089531 -:1049C000E894BB2766277727CB0197F908950BD08A -:1049D00078C069D028F06ED018F0952309F05AC03D -:1049E0005FC01124EECFCADFA0F3959FD1F3950FDE -:1049F00050E0551F629FF001729FBB27F00DB11D63 -:104A0000639FAA27F00DB11DAA1F649F6627B00DF2 -:104A1000A11D661F829F2227B00DA11D621F739FDB -:104A2000B00DA11D621F839FA00D611D221F749FE9 -:104A30003327A00D611D231F849F600D211D822F30 -:104A4000762F6A2F11249F5750408AF0E1F0882377 -:104A50004AF0EE0FFF1FBB1F661F771F881F915084 -:104A60005040A9F79E3F510570F014C0AACF5F3F98 -:104A7000ECF3983EDCF3869577956795B795F795B7 -:104A8000E7959F5FC1F7FE2B880F911D969587953F -:104A900097F9089597F99F6780E870E060E00895BE -:104AA0009FEF80EC089500240A9416161706180646 -:104AB0000906089500240A94121613061406050622 -:104AC0000895092E0394000C11F4882352F0BB0FB3 -:104AD00040F4BF2B11F460FF04C06F5F7F4F8F4F16 -:104AE0009F4F089597FB072E16F4009407D077FD8B -:104AF00009D00E948C2507FC05D03EF49095819545 -:104B00009F4F0895709561957F4F0895EE0FFF1F99 -:104B10000590F491E02D0994AA1BBB1B51E107C03D -:104B2000AA1FBB1FA617B70710F0A61BB70B881F3D -:104B3000991F5A95A9F780959095BC01CD010895CC -:104B4000F999FECF92BD81BDF89A992780B5089555 -:104B5000A8E1B0E042E050E00C94C825262FF99976 -:104B6000FECF92BD81BDF89A019700B4021639F0CC -:104B70001FBA20BD0FB6F894FA9AF99A0FBE08959D -:104B80000196272F0E94AF250C94AE25DC01CB01A6 -:104B9000FC01F999FECF06C0F2BDE1BDF89A31964D -:104BA00000B40D9241505040B8F70895F894FFCFEB -:104BB00002200C0C9A0C770C430C0F0C0101CA015B -:104BC00028080A03140A404D3639A3075607200760 -:104BD000E7067A069306AC06C5060102030405063D -:044BE00007080900B9 -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/compiled.hex b/keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/compiled.hex deleted file mode 100644 index 3351a628f..000000000 --- a/keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/compiled.hex +++ /dev/null @@ -1,1152 +0,0 @@ -:100000000C9421030C9465030C9465030C94650314 -:100010000C9465030C9465030C9465030C946503C0 -:100020000C9465030C9465030C94850E0C94570F87 -:100030000C9465030C9465030C9465030C946503A0 -:100040000C9465030C9411220C9465030C946503C5 -:100050000C9465030C94F31C0C9465030C946503D9 -:100060000C9465030C9465030C9465030C94650370 -:100070000C9465030C9465030C9465030C94650360 -:100080000C9465030C9465030C9465030C94650350 -:100090000C9465030C9465030C9465030C94650340 -:1000A0000C9465030C9465030C946503C40FE60F70 -:1000B000D410E60FD4102B104E10D410A310B6108D -:1000C00085138513B413B413EA130A143B153B15B7 -:1000D00015143B15C514C5142C153B153B153515CA -:1000E000D214D214D214D214D214D214D214D214E0 -:1000F000D214D214D214D214D214D214D214D214D0 -:10010000E414F114F814FF14091529002B0003530B -:10011000E100354100001E000E000B001B61640071 -:100120004D001F00370004001400E1044C002000C3 -:1001300012000800340050002A00210036000C0094 -:100140002F004F004A0022001D001800330000005D -:100150000253E000E3000000E20000002E67E4002C -:10016000E7000000E60000002E6F230019000700E2 -:1001700005000000045324000A0017001300520079 -:100180004B002500060015001A0051002C00260027 -:100190000F0011001000E108280027002D001600B4 -:1001A0000D6130004E0038001C000942E50031416D -:1001B00000000100010001000100010000003A0000 -:1001C000350031000100010001003B003502210231 -:1001D000640001004C003C001E02240622020100C3 -:1001E00001003D002D0224022404010001003E0014 -:1001F00001003700110400000100010001000000AF -:1002000001000000010001000100000001000000E9 -:1002100001003F00240624022302000001004000E8 -:1002200022042502350001000100410023042602BA -:100230003502370001004200240425041F021E027B -:100240000100430031002604310201000100440096 -:10025000450001002D020100000001000100010025 -:10026000010001000000010001000100FB0001008D -:10027000010001000100F200F9000100010001008D -:10028000F000F100FA00F400010001000100F300A9 -:10029000FC00F5000100010001000100F600000073 -:1002A0000100010001000000010000000100010048 -:1002B0000100000001000000010001000100010038 -:1002C000010000000100010001000100A800A900D8 -:1002D0000100010001000100AC00AA00B60001000D -:1002E00001000100AB00500001000100010001000D -:1002F000520051000100AE000100010001004F005A -:10030000000029002B000100E100354100001E0023 -:10031000140004001D6164004D001F001A00160047 -:100320001B00E1044C0020000800070006005000FC -:100330002A0021001500090019004F004A00220080 -:1003400017000A000500000001001908E300000082 -:10035000E20000002E670608E7000000E60000004B -:100360002E6F23001C000B00110000000100240070 -:1003700018000D00100052004B0025000C000E006C -:10038000360051002C00260012000F003700E10853 -:100390002800270013003300386130004E002D0084 -:1003A0002F003442E500314100000100010001004E -:1003B0000100010000000100010001000100010036 -:1003C00001000100010050000100010001000100D6 -:1003D00052005100010001000100010001004F0026 -:1003E0000100010001000100010001000100000006 -:1003F00001000100010000000100000001000100F7 -:10040000010000000100000001003F005200510007 -:100410002302000001004000240021001E002700EC -:1004200001004100250022001F00370001004200AA -:100430002600230020002700010043003002300086 -:1004400024022E00010044004500010001000100CB -:10045000000016034500720067006F0044006F0043 -:100460007800200045005A00000016034500720085 -:1004700067006F0044006F007800200045005A00BC -:1004800000000403090409026D00040100A0FA0938 -:1004900004000001030101000921110100012240B3 -:1004A000000705810308000A090401000103010295 -:1004B00000092111010001224D00070582030800F7 -:1004C0000A090402000103000000092111010001D2 -:1004D0002236000705830308000A0904030001030C -:1004E00000000009211101000122390007058403E1 -:1004F0001000011201100100000008EDFE071301B9 -:10050000000102000105010906A101050719E02902 -:10051000E7150025019508750181020508190129D3 -:10052000059505750191029501750391010507195E -:1005300000297715002501957875018102C0050114 -:100540000980A101850216010026B7001A01002AC0 -:10055000B700751095018100C0050C0901A1018546 -:1005600003160100269C021A01002A9C02751095B0 -:10057000018100C005010902A1010901A1000509CD -:1005800019012905150025019505750181029501BF -:10059000750381010501093009311581257F950217 -:1005A0007508810609381581257F95017508810632 -:1005B000050C0A38021581257F950175088106C052 -:1005C000C005010906A101050719E029E715002565 -:1005D00001950875018102950175088101050819C9 -:1005E0000129059505750191029501750391010594 -:1005F00007190029FF150026FF00950675088100E0 -:10060000C00000000000000000000000010204061D -:100610000A0F17202C3A4A5D71879DB3C7DAE9F5B6 -:10062000FCFFFCF5E9DAC7B39D87715D4A3A2C20DF -:10063000170F0A060402010000000000000000007D -:10064000000011241FBECFEFDAE0DEBFCDBF04B63D -:1006500003FE24C08091FD019091FE01A091FF0155 -:10066000B09100028730904BA740B04BB9F4109284 -:10067000FD011092FE011092FF011092000214BEC3 -:1006800084B7877F84BF88E10FB6F89480936000B9 -:10069000109260000FBEE0E0FFE3099511E0A0E0DA -:1006A000B1E0E0EBF7E402C005900D92A433B1078E -:1006B000D9F711E0A4E3B1E001C01D92AD3FB1074D -:1006C000E1F70E94CD0B0C94D6230C9400001092FD -:1006D000B9008AE08093B800089594EA9093BC0032 -:1006E0009091BC0097FFFCCF9091B900987F983013 -:1006F00021F0903111F081E008958093BB0084E8EF -:100700008093BC008091BC0087FFFCCF8091B90032 -:10071000887F883111F0803471F780E0089584E992 -:100720008093BC008091BC0084FDFCCF0895809331 -:10073000BB0084E88093BC008091BC0087FFFCCFA5 -:100740009091B900987F81E0983209F480E0089593 -:1007500084E88093BC008091BC0087FFFCCF80912F -:10076000BB00089580B38C7080BB81B3836F81BB65 -:10077000089580910101811115C080E40E946D03EC -:100780008093010181110CC082E10E949703809344 -:100790000101811105C08FEF0E9497038093010131 -:1007A0000E948F0384B1807F84B985B1807F85B931 -:1007B0008AB1837F8AB98BB1837F8BB93E98469883 -:1007C00008950E948305809301010E94B9030E944D -:1007D000B203A5E3B1E0E3E4F1E08EE08E0F119205 -:1007E0001D928E13FCCF0C946D050E94830580939F -:1007F00001010E94B9030E94B203A5E3B1E0E3E462 -:10080000F1E08EE08E0F11921D928E13FCCF0895B1 -:10081000BF92CF92DF92EF92FF920F931F93CF93ED -:10082000DF9380910101882379F0809134018F5FFB -:1008300080933401811108C00E94830580930101D7 -:10084000811102C00E94150505E311E0C0E0D0E06F -:10085000DD24D39482E0C82EEE24E394F12CC7303B -:10086000D10500F580910101811164C080E40E94EE -:100870006D0380930101811112C082E10E949703F0 -:100880008093010181110BC0C7010C2E01C0880F9C -:100890000A94EAF780950E949703809301010E94D1 -:1008A0008F0348C0CA30A1F028F4C83059F0C930CD -:1008B00061F005C0CC3089F070F0CD3089F0209A1D -:1008C000289810C0219A29980DC0229A2A980AC007 -:1008D000239A2B9807C0529A01C0539A5B9802C082 -:1008E0003E9A469890EA9A95F1F79FB1799902C09D -:1008F00082E001C080E091709D25982B7C9902C018 -:1009000084E001C080E0892B7D9902C038E001C0FD -:1009100030E0832B7E9902C020E101C020E0822BD1 -:100920009FB19095991F9927991F9295990F907E45 -:10093000892B0FC080910101811149C080E40E9480 -:100940006D0380930101882379F1B12C0E948F03FC -:100950008B2DF8019081981719F08083C0920001C7 -:100960000E94B90321960F5F1F4FCE30D10509F0C9 -:1009700076CF80910001882361F18150809300013E -:10098000882339F08FE99FE00197F1F700C000005C -:1009900020C0A3E4B1E0E5E3F1E0CF01825F9191F3 -:1009A0009D938E13FCCF15C083E10E949703809323 -:1009B00001018111CACF81E40E946D03809301017E -:1009C0008111C3CF0E94A803B82EB094BFCF80E09E -:1009D000C0CF0E94130581E0DF91CF911F910F914D -:1009E000FF90EF90DF90CF90BF900895E82FF0E058 -:1009F000ED5BFE4F8081089508950F931F93CF9371 -:100A0000DF93C3E4D1E010E00C2F025F899190E006 -:100A10000E941A1C180F0C13F9CF812FDF91CF9170 -:100A20001F910F9108950C94E30556985E982598B0 -:100A30002D9826982E9827982F988FEF90E09093D6 -:100A400089008093880090938B0080938A00909314 -:100A50008D0080938C00259A2D9A2FEF80E792E0ED -:100A6000215080409040E1F700C00000269A2E9A65 -:100A70002FEF80E792E0215080409040E1F700C0E6 -:100A80000000279A2F9A2FEF80E792E021508040B4 -:100A90009040E1F700C0000025982D982FEF80E7E7 -:100AA00092E0215080409040E1F700C0000026987D -:100AB0002E982FEF80E792E0215080409040E1F7A0 -:100AC00000C0000027982F9856985E9825982D987A -:100AD00026982E9827982F98089589EA8093800069 -:100AE00089E08093810024982C983F988AB18F7474 -:100AF0008AB96E98479A8BB1806B8BB9769A0E94AF -:100B000015050C94E20580E280930101809151016A -:100B100081110EC00E94670381E0809351012FEF85 -:100B200083ED90E3215080409040E1F700C0000049 -:100B300080E40E946D038093010181112EC00E9408 -:100B4000970380930101811128C00E94970380932D -:100B50000101811122C08FE30E949703809301015C -:100B600081111BC00E948F0380E40E946D0380935B -:100B70000101811112C08CE00E9497038093010152 -:100B800081110BC00E94970380930101811105C060 -:100B90008FE30E949703809301010E948F0380914D -:100BA0000101089561110BC0FC018281882321F0AD -:100BB00085EE0E94291203C085EE0E94F11280E0AA -:100BC00090E0089508956091BE017091BF018091F9 -:100BD000C0019091C1010E94261C56985E982598EC -:100BE0002D9826982E9827982F98089581E008959B -:100BF00081E008950C94F8050895282F882339F092 -:100C000090E02A3010F44D9608950697089587E2F3 -:100C100090E00895AF92BF92DF92EF92FF920F9310 -:100C20001F93CF93DF938C01FC01C081D181CE0152 -:100C30000E949F1ABE010E947A09EC01B8010E942D -:100C4000FA05882309F4C9C1F8018281882309F4CF -:100C5000BEC080915E0181111FC0C431F0E7DF0783 -:100C600009F0B5C10E94FC0581E080935E010E94FD -:100C7000BD1C90935D0180935C0110925501109210 -:100C8000570110925601109259011092580110927A -:100C90005B0110925A01A1C180915C0190915D01AC -:100CA0000E94C91C883C910570F480915501E82F81 -:100CB000F0E0EE0FFF1FEA5AFE4FD183C0838F5F33 -:100CC000809355018AC1C13020E8D20708F451C091 -:100CD000F8018281882309F47EC05E01E894B7F8A8 -:100CE00080915401813079F050F08230C1F482EE6D -:100CF0000E94291287E50E94291287E50EC082EE24 -:100D00000E9429120CC080EE0E94291281EE0E94DE -:100D1000291288E10E94291288E10E94F1128CE0D8 -:100D2000E82EF12CC5010E2C02C0969587950A94E9 -:100D3000E2F78F700E94FD05D82E0E9429128D2D9A -:100D40000E94F112F4E0EF1AF1082CEFE2162FEFF7 -:100D5000F20641F780915401813029F010F0823081 -:100D600041F482EE04C080EE0E94F11281EE0E94F6 -:100D7000F112C43180E7D80768F4C23090E7D90790 -:100D800008F046C0C115E0E7DE0771F0C130D0477A -:100D9000A1F10CC1C33320E7D20709F4D8C0C43392 -:100DA000D04709F4EBC002C1F8018281882309F41D -:100DB00002C10E94A615FFEF24E38CE0F150204011 -:100DC0008040E1F700C000000E94181D06C1C1303C -:100DD00080E8D80770F2C43120E7D20708F0B3C02A -:100DE000C23080E7D807A0F4C11590E7D90709F40D -:100DF000E2C0C130D04709F0D9C0F8018281882310 -:100E000009F4D9C08091DB0181608093DB01E5C0EA -:100E1000F8018281882309F4CEC00E94721D8111DD -:100E200002C00E94581D0E94851D90E09093EF0122 -:100E30008093EE01C230F0E7DF0721F48091EE01EC -:100E400081607AC0C33020E7D20721F48091EE019F -:100E5000826072C0C43080E7D80721F48091EE012F -:100E600084606AC0C53090E7D90719F48091EE011B -:100E700027C0C630E0E7DE0721F48091EE018061F3 -:100E80005BC0C730F0E7DF0721F48091EE0180629C -:100E900053C0C83020E7D20721F48091EE0180646E -:100EA0004BC0C93080E7D80721F48091EE018068FB -:100EB00043C0CA3090E7D90729F48091EE018460DD -:100EC00088603AC0CB30E0E7DE0721F48091EE0184 -:100ED0008E7F32C0CC30F0E7DF0721F48091EE0145 -:100EE0008D7F2AC0CD3020E7D20721F48091EE011A -:100EF0008B7F22C0CE3080E7D80719F48091EE01B5 -:100F00001AC08091EE01CF3090E7D90711F48F7E9F -:100F100013C0C031E0E7DE0711F48F7D0DC0C13191 -:100F2000F0E7DF0711F48F7B07C0C231D04711F41F -:100F30008F7702C08B7F877F8093EE018091EE01D7 -:100F40000E94891D4AC0C333F0E7DF07A1F4F8010E -:100F50008281882321F01092520182E016C0809194 -:100F60005201811106C086E20E94291286E20E9487 -:100F7000F11282E018C0C433D047C1F4F801828175 -:100F8000882331F01092530180E20E94401325C063 -:100F900080915301811106C087E20E94291287E2E5 -:100FA0000E94F11280E20E94471317C081E08093F3 -:100FB000520180935301C801DF91CF911F910F918E -:100FC000FF90EF90DF90BF90AF900C94F605C1308A -:100FD000F0E8DF0708F081CECCCE80E0DF91CF9142 -:100FE0001F910F91FF90EF90DF90BF90AF90089509 -:100FF00026E0729FF001112444E5849FE00DF11D6D -:101000001124E60FF11DEE0FFF1FE65FFE4F8591E5 -:1010100094910E948C09811560E49607B0F58115C2 -:1010200070E3970708F0DEC0803E9105D8F4803C5D -:10103000910508F06CC0883A910578F4853A9105DD -:1010400008F06BC08130910509F452C108F40FC15A -:101050008430910508F04CC10AC18B3B910508F41E -:1010600067C005C18F3F910509F048F4803F9105A5 -:1010700008F0ADC0883E910508F43AC1F8C081156A -:1010800020E2920708F0A5C00895811543E5940772 -:1010900090F4811562E5960708F0C8C0811571E5E6 -:1010A000970708F0BEC0811520E5920708F09DC0A3 -:1010B0009F70906A0895811545E59407D8F48115CD -:1010C00064E5960708F0C8C0482F4695469570E23B -:1010D000479FA00111248370992721E030E0B901D6 -:1010E00002C0660F771F8A95E2F7CB01842B952B00 -:1010F0009A680895811576E5970708F4B2C09C01B7 -:1011000030562115304108F0B2C09F70AEC0FC01CE -:10111000EE0FFF1FE657F04062C0853A910509F4D3 -:10112000A9C0863A910509F0A8C082E890E4089524 -:10113000883A910509F4A4C0893A910509F4A3C03D -:101140008A3A910509F4A2C08B3A910509F4A1C02D -:101150008C3A910509F4A0C08D3A910509F49FC01D -:10116000803B910509F49EC08E3A910509F49DC01B -:101170008F3A910509F49CC0813B910509F49BC00D -:10118000823B910509F49AC0833B910509F499C00B -:10119000843B910509F498C0853B910509F497C0FB -:1011A000863B910509F496C0873B910509F495C0EB -:1011B000883B910509F494C0893B910509F493C0DB -:1011C0008A3B910509F492C080E094E4089590650B -:1011D0000895FC01FF70EE0FFF1FE65FFE4F859143 -:1011E000949108959927906C0895482F437021E0B9 -:1011F00030E002C0220F331F4A95E2F73C68AC0191 -:1012000064E0569547956A95E1F74370342B8F70EB -:101210008695869560E2869FC0011124822B932BD0 -:101220000895982F8827816F906A0895482F4695D2 -:10123000469570E2479FA00111248370992721E011 -:1012400030E0B90102C0660F771F8A95E2F7CB0143 -:10125000842B952B9C680895982F8827846F906A1B -:1012600008958F719927982F88279062089580E0BC -:1012700090E0089581E890E4089583E890E408956B -:1012800082EE94E4089589EE94E408958AEE94E45D -:10129000089585EB94E4089586EB94E4089587EB34 -:1012A00094E408958CEC94E408958DEC94E408950E -:1012B00083E895E408958AE895E4089582E995E441 -:1012C000089584E995E4089581E296E4089583E21F -:1012D00096E4089584E296E4089585E296E40895FC -:1012E00086E296E4089587E296E408958AE296E419 -:1012F0000895089596E0799FF001112494E5899F5F -:10130000E00DF11D1124E60FF11DEE0FFF1FE65F4A -:10131000FE4F8591949108958238910549F1B0F47A -:101320008133910509F458C048F48932910509F4D4 -:101330004EC08A32910509F454C008958533910551 -:1013400009F440C08933910599F00895833E9105D1 -:1013500029F138F4803E910591F0823E9105A1F08B -:101360000895863E9105F9F0873E910531F1089583 -:101370002091EE0120FD3AC021FD38C008958091F2 -:10138000EE0180FD35C032C08091EE0182FF32C097 -:101390008091EE0184FD30C083EE39C08091EE0172 -:1013A00082FD28C0F5CF8091EE0183FF27C0809198 -:1013B000EE0184FD21C087EE2AC08091EE0183FDFD -:1013C0001DC0F5CF8091EE0185FD1AC01BC0809134 -:1013D000EE0185FD17C014C08091EE0186FD14C09A -:1013E00015C08091EE0186FD11C00EC080EE0FC0C9 -:1013F00089E30DC082EE0BC080E009C086EE07C015 -:1014000089E205C085E303C08AE201C081E390E080 -:10141000089508950C94090A80916F010895CF935F -:10142000DF9300D01F92CDB7DEB79C018091F4010D -:10143000843019F593E099833B832A839093E900E4 -:101440008FEF9091E800815095FD06C095ED9A953B -:10145000F1F700008111F5CF8091E80085FF0DC004 -:1014600040E050E063E070E0CE0101960E94750C10 -:101470008091E8008E778093E8000F900F900F9096 -:10148000DF91CF910895CF93DF9300D01F92CDB716 -:10149000DEB72091F401243021F522E029839B83DB -:1014A0008A8383E08093E9008FEF9091E800815078 -:1014B00095FD06C095ED9A95F1F700008111F5CFE5 -:1014C0008091E80085FF0DC040E050E063E070E0EF -:1014D000CE0101960E94750C8091E8008E77809372 -:1014E000E8000F900F900F90DF91CF910895209119 -:1014F000F4012430F1F422E02093E9002FEF309141 -:10150000E800215035FD06C035ED3A95F1F70000B1 -:101510002111F5CF2091E80025FF0BC040E050E0FD -:1015200065E070E00E94750C8091E8008E778093F2 -:10153000E8000895CF93DF93EC019091F40194308B -:1015400009F046C080910C018823D9F080910D01EB -:101550008823B9F09093E9008FEF9091E8008150D3 -:1015600095FD06C095E19A95F1F700008111F5CF40 -:101570008091E80085FF2CC040E050E060E170E021 -:1015800017C081E08093E9008FEF9091E8008150CF -:1015900095FD06C095ED9A95F1F700008111F5CF04 -:1015A0008091E80085FF14C040E050E068E070E002 -:1015B000CE010E94750C8091E8008E778093E80040 -:1015C00080E1FE01AFE5B1E001900D928A95E1F76F -:1015D000DF91CF9108958091F301811109C00E949C -:1015E0000A0E0E94670E8091E20084608093E20000 -:1015F00008951092F301089508950C94FE210E941D -:10160000AE1C0E9404220E940D110C940A0A42E0B2 -:1016100061EC81E00E94840D42E061EC82E00E9476 -:10162000840D42E061EC83E00E94840D42E161ECB4 -:1016300084E00C94840D8091F601833009F455C048 -:1016400030F4813071F0823009F48EC008958A3010 -:1016500009F47AC08B3009F460C0893009F09CC06D -:1016600020C08091F501813A09F096C08091E80090 -:10167000877F8093E8008091F9019091FA01892B8E -:1016800021F460E18FE591E003C060E080E090E04C -:1016900070E00E94C00C8091E8008B778093E80096 -:1016A00008958091F501813209F076C08091F901A9 -:1016B0009091FA01009719F0039709F06DC080919D -:1016C000E800877F8093E8008091E80082FD05C0F4 -:1016D0008091F4018111F8CF5FC08091F100809377 -:1016E0006F018091E8008B7753C08091F501813ABA -:1016F00009F052C08091F9019091FA01892B09F00B -:101700004BC08091E800877F8093E8008091E800DB -:1017100080FFFCCF80910C0136C08091F5018132B1 -:10172000D9F58091F9019091FA01892BA9F5809161 -:10173000E800877F8093E8000E94B90D8091F7014F -:1017400080930C010C94A6158091F501813221F54E -:101750008091E800877F8093E8000E94B90D809116 -:10176000F8018093700108958091F501813AA1F408 -:101770008091E800877F8093E8008091E80080FFF7 -:10178000FCCF809170018093F1008091E8008E770A -:101790008093E8000C94B90D089584B7877F84BFC7 -:1017A00088E10FB6F89480936000109260000FBE3D -:1017B00080E880936100109261000E945C110E9499 -:1017C0000A0E0E94670E8091E20084608093E2001E -:1017D00078940E94ED100E945E1182E091E00E94D8 -:1017E00008110E94EC218091F401853069F40E9477 -:1017F000761C8091F2018823B1F30E94A01C8823FB -:1018000091F30E945F0CEFCF0E946411ECCF292F5F -:10181000332723303105C9F064F42130310581F0DC -:101820002230310509F043C08DE690E026E834E02F -:1018300042C021323105F1F02232310541F137C089 -:1018400082E190E023EF34E036C0992781309105A2 -:1018500041F08230910541F0892B49F5E2E8F4E04E -:1018600005C0EAE6F4E002C0E2E5F4E0849190E02D -:101870009F0121C06430D8F4E62FF0E0EE0FFF1F87 -:10188000EE5DFE4F2081318189E090E014C064302C -:1018900070F470E0FB01EE0FFF1FE65EFE4F20814B -:1018A0003181FB01EA5EFE4F808190E004C080E060 -:1018B00090E020E030E0FA0131832083089580E158 -:1018C00089BD82E189BD09B400FEFDCF8091D800B9 -:1018D0008F7D8093D8008091E00082608093E0004B -:1018E0008091E00081FDFCCF0895CF92DF92EF92CE -:1018F000FF920F931F93CF93DF93EC018B016A014B -:101900000E94D80D811133C0C114D10439F0F60101 -:1019100080819181081B190BC80FD91FE12CF12C74 -:101920000115110519F18091E80085FD16C080911F -:10193000E8008E778093E800C114D10449F0F601E5 -:1019400080819181E80EF91EF182E08285E00FC06E -:101950000E94D80D882321F30AC089918093F10059 -:1019600001501109FFEFEF1AFF0ADACF80E0DF9193 -:10197000CF911F910F91FF90EF90DF90CF9008953E -:101980002091FB013091FC012617370748F06115C3 -:10199000710539F42091E8002E772093E80001C00A -:1019A000B90140E061157105A9F12091F4012223EC -:1019B00009F443C0253009F442C02091E80023FD1A -:1019C00040C02091E80022FD32C02091E80020FFB5 -:1019D000E9CF4091F3002091F20030E0342BFC017C -:1019E000CF016115710559F02830310540F481911E -:1019F0008093F100615071092F5F3F4FF1CF41E0BB -:101A00002830310509F040E02091E8002E7720933E -:101A1000E800C8CF4111C9CF0AC08091F4018823E2 -:101A200061F0853061F08091E80083FD0AC080910B -:101A3000E80082FFF2CF80E0089582E0089583E01D -:101A4000089581E008952091FB013091FC01261753 -:101A5000370748F06115710539F42091E8002E77B9 -:101A60002093E80001C0B901FC0120E06115710577 -:101A700091F18091F401882309F440C0853009F484 -:101A80003FC08091E80083FD3DC08091E80082FD69 -:101A90002FC08091E80080FFE9CF2091F300809172 -:101AA000F20090E0922B6115710559F08830910594 -:101AB00040F424912093F100319661507109019610 -:101AC000F2CF21E0089709F020E08091E8008E77BE -:101AD0008093E800CBCF2111CCCF0AC08091F401D4 -:101AE000882361F0853061F08091E80083FD0AC0B1 -:101AF0008091E80082FFF2CF80E0089582E00895AF -:101B000083E0089581E00895982F973058F59093D9 -:101B1000E900981739F07091EC002091ED00509198 -:101B2000F00003C0242F762F50E021FF19C0309120 -:101B3000EB003E7F3093EB003091ED003D7F309322 -:101B4000ED003091EB0031603093EB007093EC00CE -:101B50002093ED005093F0002091EE0027FF07C086 -:101B60009F5FD3CF8F708093E90081E0089580E07C -:101B700008958091F50187FF11C08091E80082FDF2 -:101B800005C08091F4018111F8CF11C08091E80067 -:101B90008B770BC08091F401882349F08091E80095 -:101BA00080FFF8CF8091E8008E778093E800089559 -:101BB0002091E4003091E50095E64091EC00842FFF -:101BC000817040FF22C08091E80080FD1CC08091A0 -:101BD000F401882391F0853091F08091EB0085FD30 -:101BE00010C04091E4005091E5004217530729F3DB -:101BF0009A01915011F784E0089582E0089583E0FE -:101C0000089581E0089580E008954091E80042FF42 -:101C1000DECF08950E94780E0E94800EE0EEF0E084 -:101C2000808181608083E8EDF0E080818F77808320 -:101C300019BCA7EDB0E08C918E7F8C9380818F7E54 -:101C400080831092F30108950F931F93CF93DF9336 -:101C50000E94780E0E94800EC8EDD0E088818F77B8 -:101C6000888388818068888388818F7D888319BC78 -:101C70001092F4011092F0011092F2011092F10111 -:101C800000EE10E0F80180818B7F80838881816085 -:101C9000888342E060E080E00E94840DE1EEF0E0A5 -:101CA00080818E7F8083E2EEF0E08081816080839E -:101CB000808188608083F80180818E7F8083888125 -:101CC00080618883DF91CF911F910F910895E8ED96 -:101CD000F0E080818F7E8083E7EDF0E0808181609D -:101CE000808384E082BF81E08093F3010C94240E12 -:101CF000E8EDF0E080818E7F80831092E20008950D -:101D00001092DA001092E10008951F920F920FB620 -:101D10000F9211242F933F934F935F936F937F9371 -:101D20008F939F93AF93BF93EF93FF938091E100C5 -:101D300082FF0BC08091E20082FF07C08091E1002A -:101D40008B7F8093E1000E94EC108091DA0080FF8D -:101D50001FC08091D80080FF1BC08091DA008E7F69 -:101D60008093DA008091D90080FF0DC080E189BDA9 -:101D700082E189BD09B400FEFDCF81E08093F401CA -:101D80000E94EB0A05C019BC1092F4010E94F90AE6 -:101D90008091E10080FF19C08091E20080FF15C0B2 -:101DA0008091E2008E7F8093E2008091E20080616A -:101DB0008093E2008091D80080628093D80019BCA3 -:101DC00085E08093F4010E94FD0A8091E10084FF88 -:101DD00030C08091E20084FF2CC080E189BD82E1A7 -:101DE00089BD09B400FEFDCF8091D8008F7D80931E -:101DF000D8008091E1008F7E8093E1008091E20025 -:101E00008F7E8093E2008091E20081608093E20007 -:101E10008091F001882311F084E007C08091E300F5 -:101E200087FD02C081E001C083E08093F4010E943D -:101E3000FF0A8091E10083FF29C08091E20083FFC7 -:101E400025C08091E100877F8093E10082E080934C -:101E5000F4011092F0018091E1008E7F8093E10007 -:101E60008091E2008E7F8093E2008091E2008061A9 -:101E70008093E20042E060E080E00E94840D809167 -:101E8000F00088608093F0000E94FC0AFF91EF91BF -:101E9000BF91AF919F918F917F916F915F914F9182 -:101EA0003F912F910F900FBE0F901F9018951F928A -:101EB0000F920FB60F9211242F933F934F935F937E -:101EC0006F937F938F939F93AF93BF93CF93DF9342 -:101ED000EF93FF93C091E900CF708091EC00D82F71 -:101EE000D17080FDD0E81092E9008091F000877FEA -:101EF0008093F00078940E949B0F1092E9008091EB -:101F0000F00088608093F000CD2BCF70C093E90083 -:101F1000FF91EF91DF91CF91BF91AF919F918F9101 -:101F20007F916F915F914F913F912F910F900FBED5 -:101F30000F901F9018951F93CF93DF93CDB7DEB707 -:101F4000AA970FB6F894DEBF0FBECDBFE5EFF1E064 -:101F500088E08E0F9091F10091938E13FBCF0E9439 -:101F60001B0B8091E80083FF1FC18091F5019091C8 -:101F7000F601492F50E04A30510508F015C1FA0129 -:101F8000EA5AFF4F0C948623803881F0823809F09A -:101F90000BC18091F9018F708093E9008091EB0073 -:101FA00085FB882780F91092E90006C08091F10135 -:101FB0009091F201911182609091E800977F909347 -:101FC000E8008093F1001092F100C8C0282F2D7F07 -:101FD00009F0EAC0882319F0823061F0E5C08091F1 -:101FE000F701813009F0E0C0933009F080E0809380 -:101FF000F2012BC08091F701811127C08091F90176 -:102000008F7009F4D1C08093E9002091EB0020FF8C -:102010001CC0933021F48091EB00806214C0909139 -:10202000EB0090619093EB0021E030E0A90102C049 -:10203000440F551F8A95E2F74093EA001092EA0098 -:102040008091EB0088608093EB001092E900809112 -:10205000E800877F86C08111A7C01091F7011F7724 -:102060008091E3008078812B8093E3008091E800E9 -:10207000877F8093E8000E94B90D8091E80080FF7F -:10208000FCCF8091E30080688093E300111102C0CF -:1020900082E001C083E08093F40186C080588230E2 -:1020A00008F082C08091F7019091F8018C3D53E0D7 -:1020B000950779F583E08A838AE289834FB7F8949C -:1020C000DE01139620E03EE051E2E32FF0E0509372 -:1020D0005700E49120FF03C0E295EF703F5FEF707F -:1020E0008E2F90E0EA3010F0C79601C0C0968D9315 -:1020F0009D932F5F243149F74FBF8091E800877F80 -:102100008093E8006AE270E0CE0101960E94C00C64 -:1021100014C0AE014F5F5F4F6091F9010E94070C40 -:10212000BC01009709F440C09091E800977F90931C -:10213000E80089819A810E94230D8091E8008B77C5 -:102140008093E80031C0803879F58091E800877F7E -:102150008093E8008091F0018093F1008091E80085 -:102160008E778093E8000E94B90D1EC081111CC0BB -:102170009091F7019230C0F48091E800877F8093BE -:10218000E8009093F0010E94B90D8091F001811157 -:1021900006C08091E30087FD02C081E001C084E0B9 -:1021A0008093F4010E94070B8091E80083FF0AC02E -:1021B0008091E800877F8093E8008091EB00806247 -:1021C0008093EB00AA960FB6F894DEBF0FBECDBF8A -:1021D000DF91CF911F9108950895CF938091F401DD -:1021E0008823A1F0C091E900CF709091EC00892F75 -:1021F000817090FD80E8C82B1092E9008091E80082 -:1022000083FD0E949B0FCF70C093E900CF9108958A -:1022100090937601809375010895E0917501F09196 -:102220007601309721F00190F081E02D099480E053 -:102230000895E0917501F0917601309721F00280C8 -:10224000F381E02D09940895E0917501F0917601F4 -:10225000309721F00480F581E02D099408952091B4 -:102260007301309174018217930771F09093740198 -:1022700080937301E0917501F0917601309721F020 -:102280000680F781E02D0994089520917101309125 -:1022900072018217930771F090937201809371011C -:1022A000E0917501F0917601309721F00084F1857D -:1022B000E02D0994089508950C945B110E94B41CBC -:1022C0000E94E1030C943A1D9F92AF92BF92CF926D -:1022D000DF92EF92FF920F931F93CF93DF9300D083 -:1022E00000D000D0CDB7DEB70E9408040DE010E0AA -:1022F000AA24A394B12C902E802F0E94F60498015A -:1023000028583E4F6901F901F080F826A1F40150E8 -:10231000110988F78FEF89838A831B820E94BD1C75 -:102320008160782F9D838C8349815A816B818D8157 -:102330000E94FB112FC09091DB0191FF04C08E839E -:102340000E94FC048E8125E030E0A501022E01C030 -:10235000440F0A94EAF7E42E4F21C1F029839A82B0 -:102360008E2191E009F490E09B830E94BD1C816066 -:10237000782F9D838C8349815A816B818D810E9446 -:10238000FB11F6018081E826E08204C0215031096A -:10239000E0F6BDCF0E94081F109177010E940D1139 -:1023A0001817B9F00E940D118093770126960FB689 -:1023B000F894DEBF0FBECDBFDF91CF911F910F917B -:1023C000FF90EF90DF90CF90BF90AF909F900C94D4 -:1023D0000A0A26960FB6F894DEBF0FBECDBFDF9176 -:1023E000CF911F910F91FF90EF90DF90CF90BF9012 -:1023F000AF909F900895CF93DF93CDB7DEB72B9723 -:102400000FB6F894DEBF0FBECDBF4F8358876987E4 -:102410007A878B87DE01119686E0FD0111928A95FD -:10242000E9F785E0FE01379601900D928A95E1F774 -:1024300049815A816B817C818D819E810E944418E3 -:102440002B960FB6F894DEBF0FBECDBFDF91CF91B4 -:102450000895CF93882309F4C2C0C82F823859F455 -:102460000E940D1181FDBBC089E30E941E1B0E94CA -:10247000EB1B89E30CC0833879F40E940D1180FDB9 -:10248000AEC083E50E941E1B0E94EB1B83E50E94E9 -:10249000601BCF910C94EB1B843859F40E940D11F2 -:1024A00082FD9DC087E40E941E1B0E94EB1B87E4F7 -:1024B000EECF8CEF8C0F813A48F48C2F0E94522182 -:1024C00081118DC08C2F0E941E1BE3CF80E28C0FE8 -:1024D000883048F4C77081E001C0880FCA95EAF7D8 -:1024E0000E94A41BD6CF8BE58C0F833078F4C53ABD -:1024F00029F0C63A31F083E890E005C081E890E029 -:1025000002C082E890E0CF910C942F1188E58C0FE7 -:10251000833108F064C0C83A39F1C93A41F1CA3A86 -:1025200049F1CB3A51F1CC3A59F1CD3A61F1C03B86 -:1025300069F1CE3A71F1CF3A79F1C13B81F1C23BF9 -:1025400089F1C33B91F1C43B99F1C53BA1F1C63B75 -:10255000A9F1C73BB1F1C83BB9F1C93BC1F1CA3BD5 -:10256000C9F180E090E038C082EE90E035C089EE9D -:1025700090E032C08AEE90E02FC085EB90E02CC056 -:1025800086EB90E029C087EB90E026C08CEC90E0D1 -:1025900023C08DEC90E020C083E891E01DC08AE864 -:1025A00091E01AC082E991E017C084E991E014C07B -:1025B00081E292E011C083E292E00EC084E292E0F8 -:1025C0000BC085E292E008C086E292E005C087E297 -:1025D00092E002C08AE292E0CF910C944511CF9133 -:1025E0000895882309F44BC0823859F40E940D11D4 -:1025F00081FF45C089E30E941E1B0E94EB1B89E3FB -:102600000CC0833871F40E940D1180FF38C083E53F -:102610000E941E1B0E94EB1B83E50E94601B0C9412 -:10262000EB1B843859F40E940D1182FF28C087E407 -:102630000E941E1B0E94EB1B87E4EFCF9CEF980FBC -:10264000913A58F390E2980F983050F4877091E0E7 -:1026500001C0990F8A95EAF7892F0E94AA1BDFCF44 -:102660009BE5980F933020F480E090E00C942F11BC -:10267000885A833120F480E090E00C94451108954D -:10268000882321F00E94A41B0C94EB1B089588233F -:1026900021F00E94AA1B0C94EB1B08957F928F924D -:1026A0009F92AF92BF92CF92DF92EF92FF920F93E1 -:1026B0001F93CF93DF931F92CDB7DEB77C01C62E59 -:1026C000772EFC01058102950F70128111110E9475 -:1026D000C11B0E94171B882379F0112369F080E247 -:1026E0008C0D883048F082E00E94001B0E94171B6E -:1026F00091E0D82ED92601C0D12CE72DE295EF70BC -:10270000F0E0E05AFF4F0C948623872D807F072D41 -:102710000F70882311F00295007F112389F00023A8 -:1027200009F490C180E28C0D883020F4802F0E9443 -:10273000A41B03C0802F0E94B41B0E94EB1B82C10C -:102740008C2D0E94F112002309F495C180E28C0DBA -:10275000883020F4802F0E94AA1B03C0802F0E9483 -:10276000BA1B0E94EB1B87C1972D907F872D8F701E -:10277000903211F08295807FCC2021F0F1E0CF16CD -:10278000B1F01EC0112349F0002309F414C1013037 -:1027900009F011C10E94D41B6EC1002319F0013051 -:1027A00009F469C189830E94D71B89810AC1112359 -:1027B00021F0023008F05FC1FEC001115CC101C10F -:1027C000112321F0002309F4F6C03CC1002309F4D1 -:1027D000F8C03EC1872D86958695837090E000975E -:1027E00019F0019761F047C1112321F08C2D972D2D -:1027F000937002C080E090E00E942F113CC1112331 -:1028000021F08C2D972D937002C080E090E00E9403 -:10281000451131C18C2D112319F00E94101E02C0E8 -:102820000E94781E0E94FD1E26C1872D837009F02C -:1028300052C0111120C18C2D829586958770880F0A -:10284000880F9C2D9F70892E912CA12CB12C082EC5 -:1028500004C0880C991CAA1CBB1C0A94D2F7C4FEA5 -:1028600014C00FE010E020E030E0B901A80104C07E -:10287000440F551F661F771F8A95D2F7CB01BA0107 -:10288000609570958095909503C060E070E0CB01F5 -:10289000272D26952695237030E02230310569F0EA -:1028A0002330310589F0682979298A299B2921302B -:1028B000310571F00E948C19DEC0682979298A29B6 -:1028C0009B290E94A819D7C00E948C19C501B40188 -:1028D0000E947019D0C0112319F0872D817001C09A -:1028E0008695882309F4C7C08C2D829586958770BC -:1028F000880F880F9C2D9F70892E912CA12CB12CB4 -:10290000082E04C0880C991CAA1CBB1C0A94D2F780 -:10291000C4FE14C00FE010E020E030E0B901A801CF -:1029200004C0440F551F661F771F8A95D2F7CB014D -:10293000BA01609570958095909503C060E070E055 -:10294000CB01272D269526952370422F50E042304B -:10295000510569F04330510589F0682979298A29A0 -:102960009B294130510571F00E94661A84C0682984 -:1029700079298A299B290E94821A7DC00E94661AA1 -:10298000C501B4010E944A1A76C08C2D90E0FC016A -:10299000E05EF109E531F10508F050C0E059FF4F64 -:1029A0000C9486230C2D0F70872D8F71112331F01D -:1029B0000E94E319802F0E9440135DC00E94041AF8 -:1029C000802F0E94471357C0112339F0011153C0C3 -:1029D000872D8F710E94291A4EC0023008F04BC01B -:1029E000F7CF112339F0872D8F710E94E31943C06F -:1029F0001123C9F3872D8F710E94041A3CC0112343 -:102A000029F0872D8F710E94CE1935C00E94C419FC -:102A100032C0112351F0172D1F71812F0E94E3192D -:102A200063E0812F0E94F71A26C081E00E94001BFC -:102A3000023008F182E00E94001B1DC0112331F01A -:102A4000002389F28C2D0E94291215C0002391F2D7 -:102A50008C2D0E94F1120FC0472D4F706C2DC701B5 -:102A60000E94D2050E94E81806C0472D4F706C2DB9 -:102A7000C7010E947909DD20F9F00E94F31A80FD58 -:102A80001BC0F70112820E94ED1A0E94E319C701D0 -:102A90000E946B150E94ED1A0F90DF91CF911F914C -:102AA0000F91FF90EF90DF90CF90BF90AF909F90ED -:102AB0008F907F900C94041A0F90DF91CF911F910B -:102AC0000F91FF90EF90DF90CF90BF90AF909F90CD -:102AD0008F907F9008950F931F93CF93DF93EC0116 -:102AE000888199812B813C81232BB9F09F3F11F480 -:102AF0008F3F99F0CE010E940A06882371F0688109 -:102B000079818A810E94E91A8C010E949E1A0E9492 -:102B10006519B801CE010E944E13DF91CF911F912C -:102B20000F9108950E94C11B0E94D11B0E94961B09 -:102B30000E94EB1B0E94AE1F0E94FD1E80E090E0F1 -:102B40000E942F1180E090E00C9445110E94B11B6F -:102B50000C9492150E94DE1A292F22952F7030E0D6 -:102B60002C3031054CF42A3031056CF422503109F7 -:102B700022303105A8F407C02C30310569F02F3020 -:102B8000310551F00DC0803F69F018F4803E40F4EB -:102B900009C0843F29F406C093FB882780F9089573 -:102BA00080E0089581E00895CF93DF9300D000D0B6 -:102BB0001F92CDB7DEB70F900F900F900F900F9030 -:102BC000DF91CF910895CF93DF9300D000D000D054 -:102BD000CDB7DEB726960FB6F894DEBF0FBECDBFD9 -:102BE000DF91CF9108951F93CF93DF93C09186011A -:102BF00016E080918701C81799F0D0E01C9FF00182 -:102C00001D9FF00D1124E857FE4F408151816281D4 -:102C10007381848195810E94E3152196C770E9CF65 -:102C2000DF91CF911F9108954091B8015091B90162 -:102C30006091BA017091BB018091BC019091BD017E -:102C40000C94E3158091BD0182958F7009F054C0FA -:102C50008091BA01882309F44FC080918601A09128 -:102C600087016091B8017091B9014091BB01509109 -:102C7000BC01B6E08A1709F43FC090E04115510548 -:102C8000C1F17F3F11F46F3FA1F1B89FF001B99FEF -:102C9000F00D1124E857FE4F218172132AC02081C4 -:102CA000621327C02281211124C02381348124177B -:102CB000350710F421503109241B350B283C310510 -:102CC000C0F42091BD012F7020612093BD0126E04A -:102CD000289FF001299FF00D1124E357FE4F8081BA -:102CE0008F708061808388EB91E00E946B150C945B -:102CF000F31501968770BECF0895CF92DF92EF92C1 -:102D0000FF920F931F93CF93DF93CDB7DEB76297F8 -:102D10000FB6F894DEBF0FBECDBF8C0185E0F80181 -:102D2000DE011D9601900D928A95E1F7D8014C9134 -:102D300011965C91119712966C9112971396CD9003 -:102D4000DC9014973091B8017091B9018091BB016A -:102D50009091BC01009709F46BC17F3F19F43F3F8C -:102D600009F466C1E090BA01EE2009F4C0C02091D8 -:102D7000BD01C816D90628F0F601E81BF90BCF01F2 -:102D800004C0809590958C0D9D1DFF24F394883C84 -:102D9000910578F0F12C207F09F0C6C07C2DD98AEE -:102DA000C88A89890E94D41588EB91E00E946B152E -:102DB000B1C0822F807F09F046C0751314C0341350 -:102DC00012C0611110C02F7020612093BD010E94BC -:102DD000141688EB91E00E946B158091BD01D8011B -:102DE00015968C932EC0CD2819F15F3F11F44F3FFB -:102DF000F9F0F62E61111CC08091860120918701A7 -:102E000036E0821709F45AC090E0389FF001399FEC -:102E1000F00D1124E857FE4F7181571306C07081E1 -:102E2000471303C07281711103C001968770E9CF07 -:102E3000F62E662309F418C18091BD01816080934C -:102E4000BD01F12C11C1751308C0341306C0611106 -:102E500004C08091BD01D801C3C04D875E878D85B8 -:102E60009E856A8B0E94AA156A898823E1F16623F0 -:102E7000D1F12091BD01822F82958F7090E0029751 -:102E800074F08091B8019091B90198878F83198669 -:102E9000DB86CA862C87CE0107960E946B1586E0DA -:102EA000F801A8EBB1E001900D928A95E1F70E943C -:102EB00022160E941416FF24F394D6C04D875E8715 -:102EC0008D859E850E94DE1A292F22952F7030E075 -:102ED000223031050CF0BCC09F7009F0B6C0805E96 -:102EE000883008F4C1C0C8010E946B15E4CFC81631 -:102EF000D90608F453C0F601E81BF90BCF01883C52 -:102F0000910508F450C0F12C7C2DD98AC88A898992 -:102F10000E94D415E8EBF1E086E0DF011D928A956E -:102F2000E9F70E941416A0C0751314C0341312C020 -:102F3000611110C08091BD01F8018583C8010E9414 -:102F40006B1586E0E8EBF1E0DF011D928A95E9F769 -:102F5000FE2C8AC04D875E878D859E856A8B0E9478 -:102F6000AA156A89882309F4BECF662309F4BBCF6A -:102F70002091BD01822F82958F7090E002970CF412 -:102F80008ECF8091B8019091B9019A8389831B8279 -:102F9000DD82CC822E83CE0101967FCF80959095E5 -:102FA0008C0D9D1DACCFF62E662309F49CCF7513B6 -:102FB0002EC034132CC02091BD0120FD1FC0822FD4 -:102FC00082958F70D9F0D80115962C9315978F3074 -:102FD00049F08F5F982F9295907F822F8F70892B69 -:102FE00015968C93C8010E946B1586E0F801A8EB3A -:102FF000B1E001900D928A95E1F793CF86E0F80158 -:10300000A8EBB1E001900D928A95E1F72DC04D87B4 -:103010005E878D859E850E94AA15811140CF809183 -:10302000BD0181608093BD01C8010E946B151CC069 -:10303000662309F458CF4D875E878D859E850E9453 -:10304000AA15882309F44FCF2ACF811148CF0CC08D -:10305000243031050CF047CF9F7009F440CFF801C0 -:103060009581907F09F03BCF8F2D62960FB6F89433 -:10307000DEBF0FBECDBFDF91CF911F910F91FF90AB -:10308000EF90DF90CF9008951F93CF93DF93CDB74C -:10309000DEB72C970FB6F894DEBF0FBECDBF4F83BF -:1030A000588769877A878B879C87CE0107960E940D -:1030B0007D16882369F08F8198852A853B85232B8F -:1030C000F1F19F3F09F063C08F3F09F060C037C046 -:1030D00086E0FE013796DE01119601900D928A95E9 -:1030E000E1F76F817885EA85FB85309741F17F3F75 -:1030F00011F46F3F21F12091870130E0C901019661 -:10310000877099274091860150E08417950709F44C -:1031100047C069837A83FD83EC8396E0929FD00158 -:10312000939FB00D1124A857BE4FFE013196019018 -:103130000D929A95E1F7809387010E94F31516E0AE -:1031400080918601909187018917C1F1189FC00174 -:10315000112488579E4F0E947D16882379F1E091B3 -:1031600086011E9FF0011124E857FE4F40815181D6 -:1031700062817381848195810E94E315809186012B -:1031800090E001968770992780938601D9CF4F816F -:10319000588569857A858B859C850E94E315CFCFFC -:1031A0000E94A6151092870110928601E8EBF1E0CB -:1031B00086E0DF011D928A95E9F7C1CF2C960FB604 -:1031C000F894DEBF0FBECDBFDF91CF911F91089560 -:1031D000EF92FF920F931F93CF93DF938C01009791 -:1031E00009F46CC0F12CEE24E394E8012196F80177 -:1031F0008491843740F4843008F051C0813081F0EC -:10320000823019F15BC0853709F444C0A8F19CE70E -:10321000980F903708F052C08F770E94F11241C08A -:103220000E5F1F4FFE01C49180E28C0F883048F47E -:10323000C7708E2D01C0880FCA95EAF70E94C41B83 -:1032400014C08C2F0E9429122DC00E5F1F4FFE014B -:10325000C49180E28C0F883058F4C7708E2D01C065 -:10326000880FCA95EAF70E94CA1B0E94EB1B1AC07E -:103270008C2F0E94F11216C00E5F1F4FFE01C491E9 -:10328000CC2381F08FE99FE00197F1F700C00000A7 -:10329000C150F6CF0E5F1F4FFE01F49003C00E9495 -:1032A00029128E018F2D882309F49FCFEFE9FFE0CB -:1032B0003197F1F700C000008150F5CFDF91CF9139 -:1032C0001F910F91FF90EF90089508956093C201B0 -:1032D0007093C3018093C4019093C5010C9492151F -:1032E0000F931F930091C2011091C3012091C4015B -:1032F0003091C501DC01CB01802B912BA22BB32B8C -:103300008093C2019093C301A093C401B093C501FF -:103310001F910F910C9492150F931F930091C2016E -:103320001091C3012091C4013091C501DC01CB0192 -:1033300080239123A223B3238093C2019093C301DE -:10334000A093C401B093C5011F910F910C949215E5 -:103350000F931F930091C2011091C3012091C401EA -:103360003091C501DC01CB0180279127A227B3272B -:103370008093C2019093C301A093C401B093C5018F -:103380001F910F910C9492151092BE011092BF01E3 -:103390001092C0011092C1010C94921541E050E0CE -:1033A00060E070E004C0440F551F661F771F8A95C8 -:1033B000D2F74093BE015093BF016093C001709358 -:1033C000C1010C94921541E050E060E070E004C04F -:1033D000440F551F661F771F8A95D2F78091BE0153 -:1033E0009091BF01A091C001B091C101482B592B10 -:1033F0006A2B7B2B4093BE015093BF016093C001A9 -:103400007093C1010C94921541E050E060E070E0CF -:1034100004C0440F551F661F771F8A95D2F7409549 -:103420005095609570958091BE019091BF01A091DB -:10343000C001B091C101482359236A237B234093E3 -:10344000BE015093BF016093C0017093C1010C9401 -:10345000921541E050E060E070E004C0440F551F59 -:10346000661F771F8A95D2F78091BE019091BF01A8 -:10347000A091C001B091C101482759276A277B2735 -:103480004093BE015093BF016093C0017093C1018E -:103490000C9492150F931F930091BE011091BF01E0 -:1034A0002091C0013091C101DC01CB01802B912B17 -:1034B000A22BB32B8093BE019093BF01A093C001B8 -:1034C000B093C1011F910F910C9492150F931F930C -:1034D0000091BE011091BF012091C0013091C10146 -:1034E000DC01CB0180239123A223B3238093BE016F -:1034F0009093BF01A093C001B093C1011F910F91A0 -:103500000C9492150F931F930091BE011091BF016F -:103510002091C0013091C101DC01CB0180279127AE -:10352000A227B3278093BE019093BF01A093C0014F -:10353000B093C1011F910F910C9492150895CF92F1 -:10354000DF92EF92FF920F931F93CF93DF938C0143 -:10355000C090C201D090C301E090C401F090C501B9 -:103560008091BE019091BF01A091C001B091C101B5 -:10357000C82AD92AEA2AFB2ACFE1D0E0D701C6011E -:103580000C2E04C0B695A795979587950A94D2F707 -:1035900080FF06C0B8018C2F0E94F807019721F424 -:1035A000219760F780E001C08C2FDF91CF911F91B0 -:1035B0000F91FF90EF90DF90CF900895CF93DF931E -:1035C000EC010E949F1ABE010E94F807DF91CF9183 -:1035D0000895CB010E94DE1A08958091C601859559 -:1035E0008595859508958091C6018770089598E026 -:1035F000899F90011124262B2093C6010C94E31976 -:103600002091C601809582238093C601982F9770E0 -:1036100069F430E0482F552747FD509524173507AA -:1036200029F08595859585950C94041A08959091B7 -:10363000C601977081E009F480E0089590910C0133 -:10364000992321F090910D01911109C020910E0153 -:1036500030910F01F90132969FEF40E01FC0982F83 -:103660009695969596959F3050F5E0910E01F091C4 -:103670000F01E90FF11D877021E030E0A90102C0C0 -:10368000440F551F8A95E2F7CA019181892B8183E6 -:1036900008959F3F39F04F5F4E3041F051915813DC -:1036A000F8CF0DC05111F7CF942FF5CF9F3F39F0D0 -:1036B000F901E90FF11D97FDFA95828308950895A8 -:1036C00090910C01992321F090910D01911109C065 -:1036D00020910E0130910F01F9013296205F3F4F8A -:1036E0001FC0982F9695969596959F30F0F4E0918F -:1036F0000E01F0910F01E90FF11D877021E030E01C -:10370000A90102C0440F551F8A95E2F7CA018095AE -:1037100091818923818308953196E217F30729F077 -:1037200090819813F9CF1082F7CF089581E090E04F -:10373000E0910E01F0910F01E80FF91F1082019640 -:1037400080319105A9F708959091DA01892B809332 -:10375000DA01089580959091DA0189238093DA0146 -:1037600008951092DA0108959091D901892B8093E0 -:10377000D901089580959091D90189238093D90129 -:1037800008951092D90108959091D801892B8093C2 -:10379000D801089580959091D80189238093D8010C -:1037A00008951092D80108958093C701089510924A -:1037B000C701089580910E0190910F01FC0131968F -:1037C0009C01205F3F4F80E0919191118F5FE21744 -:1037D000F307D1F70895E0910E01F0910F01809168 -:1037E000DA018083E0910E01F0910F0190818091C8 -:1037F000D901892B8083E0910E01F0910F01908116 -:103800008091D801892B80838091C701882361F042 -:10381000E0910E01F0910F019081892B80830E942D -:10382000DA1B81111092C70180910E0190910F0156 -:103830000C94191120E0009739F0AC014150510966 -:10384000842395232F5FF7CF822F0895CF92DF92A5 -:10385000EF92FF926C01EE24FF24C114D104E10425 -:10386000F10421F0C701B60120E101C020E0C72E1C -:10387000D82EE92EFF24C114D104E104F10419F07B -:10388000285FC701B6016B017C0154E0F694E79410 -:10389000D794C7945A95D1F7C114D104E104F10427 -:1038A00019F02C5FC701B6016B017C0142E0F69470 -:1038B000E794D794C7944A95D1F7C114D104E10491 -:1038C000F10419F02E5FC701B601DC01CB01B695FA -:1038D000A79597958795892B8A2B8B2B09F02F5FBE -:1038E000822FFF90EF90DF90CF9008958091F401A8 -:1038F000843021F11092DC0120E488E190E00FB6E1 -:10390000F894A895809360000FBE2093600080E03B -:103910000E940A0A83B7817F846083BF83B7816076 -:1039200083BF7894889583B78E7F83BF88E10FB675 -:10393000F89480936000109260000FBE089508957F -:103940000E94F5030E9408040E949F1C0E94FD042F -:1039500091E0811101C090E0892F08950E94A61581 -:103960000E940D110C940A0A82E084BD93E095BD7B -:103970009AEF97BD80936E0008952FB7F8948091C9 -:10398000DD019091DE01A091DF01B091E0012FBF38 -:103990000895CF92DF92EF92FF920F931F932FB76C -:1039A000F8944091DD015091DE016091DF0170914A -:1039B000E0012FBF6A017B01EE24FF248C0120E08F -:1039C00030E0C016D106E206F30610F4415051096A -:1039D0009A01281B390BC9011F910F91FF90EF909D -:1039E000DF90CF9008951F920F920FB60F9211247F -:1039F0008F939F93AF93BF938091DD019091DE01F0 -:103A0000A091DF01B091E0010196A11DB11D80934D -:103A1000DD019093DE01A093DF01B093E001BF913F -:103A2000AF919F918F910F900FBE0F901F9018959F -:103A30000E940A0EF8942FEF87EA91E62150804009 -:103A40009040E1F700C0000087E090EBDC0180933C -:103A5000FD019093FE01A093FF01B09300029CE052 -:103A600088E10FB6F894A895809360000FBE9093FC -:103A70006000FFCF0E94721D811102C00E94581D7C -:103A80000E947D1D8093DB010E94851D90E0909334 -:103A9000EF018093EE0187FB882780F980930D0169 -:103AA0000E94811D682F70E080E090E00C94661900 -:103AB0006DEE7EEF80E090E00E94C02360E082E047 -:103AC00090E00E94AE2360E083E090E00E94AE238D -:103AD00060E084E090E00E94AE2360E085E090E04A -:103AE0000C94AE2380E090E00E94A82321E08D3E5C -:103AF0009E4F09F020E0822F089582E090E00C9420 -:103B0000A02383E090E00C94A02384E090E00C9448 -:103B1000A023682F84E090E00C94AE238091E30111 -:103B200080FF0BC06091130185E0689FB0011124F4 -:103B300075956795759567952BC081FF09C0609154 -:103B4000130185E0689FB00111247595679520C029 -:103B500082FF07C06091130185E0689FB0011124C6 -:103B600017C09091E4019923D1F06091120196174A -:103B700088F72091130185E0289F90011124929FDE -:103B8000A001939F500D112470E0CA010E9472237E -:103B90006038710540F46115710539F002C065E0C7 -:103BA00070E0862F08958FE7089581E00895809151 -:103BB000E30180FF08C06091110170E07595679581 -:103BC0007595679521C081FF06C06091110170E075 -:103BD0007595679519C082FF04C06091110170E06E -:103BE00010C09091E4019923C1F0609110019617E3 -:103BF000A0F780911101899FC001112470E00E94FB -:103C000072236038710528F46115710521F0862F43 -:103C100008958FE7089581E0089561E070E0F4CFA2 -:103C2000803F21F40E948E1D819504C0813F29F4BC -:103C30000E948E1D8093E7010895823F21F40E9427 -:103C40008E1D819504C0833F29F40E948E1D8093B0 -:103C5000E6010895893F19F40E94D71D05C08A3FE7 -:103C600031F40E94D71D81958093E80108958B3F20 -:103C700021F40E94D71D819504C08C3F29F40E9435 -:103C8000D71D8093E9010895843F21F48091E501D7 -:103C9000816017C0853F21F48091E501826011C0E9 -:103CA000863F21F48091E50184600BC0873F21F4B9 -:103CB0008091E501886005C0883F31F48091E5017D -:103CC00080618093E50108958D3F21F48091E301A7 -:103CD00081600BC08E3F21F48091E301826005C0BA -:103CE0008F3F29F48091E30184608093E30108957C -:103CF000803F39F48091E70187FF6CC01092E701A3 -:103D000069C0813F29F48091E7011816BCF362C0B5 -:103D10009091E601823F29F497FF5CC01092E60182 -:103D200059C0833F19F41916CCF354C0893F41F4AC -:103D30008091E80118160CF04DC01092E8014AC0BD -:103D40008A3F29F48091E80187FF44C0F6CF8B3F7A -:103D500039F48091E90187FF3DC01092E9013AC032 -:103D60008C3F29F48091E9011816BCF333C0843FDD -:103D700021F48091E5018E7F17C0853F21F4809169 -:103D8000E5018D7F11C0863F21F48091E5018B7F95 -:103D90000BC0873F21F48091E501877F05C0883FF4 -:103DA00031F48091E5018F7E8093E50113C08D3F52 -:103DB00021F48091E3018E7F0BC08E3F21F480912E -:103DC000E3018D7F05C08F3F29F48091E3018B7F54 -:103DD0008093E3018091E60181110EC08091E7019B -:103DE00081110AC08091E801811106C08091E9012A -:103DF000811102C01092E401089585EE91E00E94C5 -:103E000024110E94BD1C9093E2018093E10108956A -:103E10001F93CF93DF938091E1019091E2010E9483 -:103E2000C91CAC019091E401992321F02091140167 -:103E300030E006C0209115018AE0289F90011124EE -:103E40004217530708F486C08091E601C091E7014C -:103E5000D091E8011091E901811107C0C11176C02C -:103E6000D11174C0111172C075C09F3F19F09F5FCE -:103E70009093E401181624F40E948E1D8093E601AD -:103E80008091E60187FF05C00E948E1D8195809379 -:103E9000E6011C1624F40E948E1D8093E701809198 -:103EA000E70187FF05C00E948E1D81958093E70181 -:103EB0006091E601662339F1C091E701CC2319F145 -:103EC000772767FD7095872F972F0E94832223E322 -:103ED00033E343E35FE30E94E7220E9450226093B2 -:103EE000E6016C2F772767FD7095872F972F0E942B -:103EF000832223E333E343E35FE30E94E7220E944C -:103F000050226093E7011D1624F40E94D71D809370 -:103F1000E8018091E80187FF05C00E94D71D8195C7 -:103F20008093E801111624F40E94D71D8093E901C3 -:103F30008091E90187FF05C00E94D71D819580937C -:103F4000E901DF91CF911F910C94FD1E9F3F09F075 -:103F50008ECF96CFDF91CF911F910895E5EEF1E0DE -:103F600085E0DF011D928A95E9F71092E401109235 -:103F7000E3010895833081F128F4813059F08230D3 -:103F8000D1F00895853009F449C0B8F1863009F4BC -:103F900056C0089580911501262F30E0280F311D5D -:103FA0002F3F310524F4680F6093150108958FEFBA -:103FB00080931501089580911401262F30E0280F79 -:103FC000311D2F3F310524F4680F609314010895CB -:103FD0008FEF80931401089580911301262F30E014 -:103FE000280F311D2F3F310524F4680F6093130112 -:103FF00008958FEF80931301089580911201262F69 -:1040000030E0280F311D2F3F310524F4680F6093F5 -:10401000120108958FEF809312010895809111018C -:10402000262F30E0280F311D2F3F310524F4680F73 -:104030006093110108958FEF80931101089580918D -:104040001001262F30E0280F311D2F3F310524F4B9 -:10405000680F6093100108958FEF80931001089509 -:10406000833011F128F4813049F0823091F00895C5 -:10407000853081F120F18630C1F1089580911501DC -:10408000681720F4861B809315010895109215017E -:10409000089580911401681720F4861B8093140101 -:1040A000089510921401089580911301681720F467 -:1040B000861B809313010895109213010895809137 -:1040C0001201681720F4861B809312010895109244 -:1040D0001201089580911101681720F4861B8093C6 -:1040E000110108951092110108958091100168172F -:1040F00020F4861B809310010895109210010895FA -:104100000F931F938D3109F471C008F045C08031C1 -:1041100009F485C008F5873009F46FC068F486306B -:1041200009F0ADC08091DB01817F8E7F8093DB0140 -:1041300081E08093EB01A4C08B3009F49EC08E30E7 -:1041400009F09DC08091DB0182FB222720F991E0DC -:10415000922790FB82F96CC0863109F48EC060F41E -:10416000813109F08CC00E94A61590910D0181E06B -:10417000892780930D0181C0893109F47EC08B317C -:1041800009F07DC08091DB0181FB222720F991E0BD -:10419000922790FB81F94CC0853309F466C048F43E -:1041A000873209F462C008F44FC0893209F45DC057 -:1041B00066C0833438F48A3308F044C0883309F485 -:1041C0005CC05DC0833409F450C0883409F057C026 -:1041D0000E94A6150FEF13ED20E301501040204080 -:1041E000E1F700C000000E94181D47C00E940A228B -:1041F0000E940D110E940A0A40C09091DB01892F94 -:104200008095817080FB90F929F09660986090937A -:10421000DB0136C0997F977F9093DB012EC08091A0 -:10422000DB0183FB222720F991E0922790FB83F9A1 -:104230008093DB01992309F18091DB0181608093F8 -:10424000DB011BC0895301C08D5141E050E060E0AB -:1042500070E08A019B0104C0000F111F221F331F51 -:104260008A95D2F7C901B80104C061E070E080E02E -:1042700090E00E9466190E94A61581E001C080E0CE -:104280001F910F91089580E0089580E008958E5168 -:104290008A3030F4E82FF0E0E65DFE4F808108952B -:1042A00080E00895CF93C82F8091EB01813079F0A1 -:1042B00018F08230E9F186C0E0910E01F0910F0113 -:1042C0008081813169F0823209F07EC009C0E091BD -:1042D0000E01F0910F018081813111F0823261F481 -:1042E0008C2F0E944321811104C08C2F0E948020BA -:1042F0001DC081E090E01AC08C2F0E9445218111E1 -:1043000014C0C43179F048F4CB3079F0C03109F0F1 -:104310005FC082E08093EB0108C0C93219F0C83356 -:1043200021F056C01092EB0153C081E0817052C061 -:10433000C93281F110F5C43169F1A8F4C73009F030 -:1043400045C08AE08093150194E19093140193E0B5 -:10435000909313018093120188E08093110188E209 -:104360008093100133C082EE8C0F863078F58C2F4D -:104370000E9447218093EA0129C0CE34E9F020F45D -:10438000CB3421F56AE013C0C13579F0C235F1F4C0 -:1043900061E00DC08091EA01882319F01092EA01D2 -:1043A00015C081E08093EB0115C061E006C08091EB -:1043B000EA010E94BA1F0AC06AE08091EA010E94E5 -:1043C000302004C01092EB0180E004C081E002C004 -:1043D00080E0ACCFCF910895E1E8F0E08081886083 -:1043E00080838081816080838FB7F89493E090937D -:1043F000890090ED909388008FBF0895EFE6F0E07C -:104400008081826080830895EFE6F0E080818D7F77 -:1044100080830895EFE6F0E0908182E08927808331 -:1044200008951F920F920FB60F9211242F933F936E -:104430004F935F936F937F938F939F93AF93BF93AC -:10444000EF93FF938091EC019091ED010196909391 -:10445000ED018093EC01811103C082E00E940A0A01 -:10446000E091ED01E695E695F0E0EF5FF94FE4911C -:104470008091EC018E1303C080E00E940A0AFF9134 -:10448000EF91BF91AF919F918F917F916F915F91CC -:104490004F913F912F910F900FBE0F901F90189545 -:1044A00004D06894B1118DC0089570D088F09F57E2 -:1044B00090F0B92F9927B751A0F0D1F0660F771F70 -:1044C000881F991F1AF0BA95C9F712C0B13081F050 -:1044D00077D0B1E0089574C0672F782F8827B85F30 -:1044E00039F0B93FCCF3869577956795B395D9F7B1 -:1044F0003EF490958095709561957F4F8F4F9F4FBB -:104500000895E89409C097FB3EF4909580957095C6 -:1045100061957F4F8F4F9F4F9923A9F0F92F96E90F -:10452000BB279395F695879577956795B795F11184 -:10453000F8CFFAF4BB0F11F460FF1BC06F5F7F4F21 -:104540008F4F9F4F16C0882311F096E911C0772333 -:1045500021F09EE8872F762F05C0662371F096E83C -:10456000862F70E060E02AF09A95660F771F881F0B -:10457000DAF7880F9695879597F9089557FD905823 -:10458000440F551F59F05F3F71F04795880F97FB17 -:10459000991F61F09F3F79F08795089512161306D1 -:1045A0001406551FF2CF4695F1DF08C01616170600 -:1045B0001806991FF1CF8695710561050894089535 -:1045C000E894BB2766277727CB0197F908950BD08E -:1045D00078C069D028F06ED018F0952309F05AC041 -:1045E0005FC01124EECFCADFA0F3959FD1F3950FE2 -:1045F00050E0551F629FF001729FBB27F00DB11D67 -:10460000639FAA27F00DB11DAA1F649F6627B00DF6 -:10461000A11D661F829F2227B00DA11D621F739FDF -:10462000B00DA11D621F839FA00D611D221F749FED -:104630003327A00D611D231F849F600D211D822F34 -:10464000762F6A2F11249F5750408AF0E1F088237B -:104650004AF0EE0FFF1FBB1F661F771F881F915088 -:104660005040A9F79E3F510570F014C0AACF5F3F9C -:10467000ECF3983EDCF3869577956795B795F795BB -:10468000E7959F5FC1F7FE2B880F911D9695879543 -:1046900097F9089597F99F6780E870E060E00895C2 -:1046A0009FEF80EC089500240A941616170618064A -:1046B0000906089500240A94121613061406050626 -:1046C0000895092E0394000C11F4882352F0BB0FB7 -:1046D00040F4BF2B11F460FF04C06F5F7F4F8F4F1A -:1046E0009F4F089597FB072E16F4009407D077FD8F -:1046F00009D00E948C2307FC05D03EF4909581954B -:104700009F4F0895709561957F4F0895EE0FFF1F9D -:104710000590F491E02D0994AA1BBB1B51E107C041 -:10472000AA1FBB1FA617B70710F0A61BB70B881F41 -:10473000991F5A95A9F780959095BC01CD010895D0 -:10474000F999FECF92BD81BDF89A992780B5089559 -:10475000A8E1B0E042E050E00C94C823262FF9997C -:10476000FECF92BD81BDF89A019700B4021639F0D0 -:104770001FBA20BD0FB6F894FA9AF99A0FBE0895A1 -:104780000196272F0E94AF230C94AE23DC01CB01AE -:10479000FC01F999FECF06C0F2BDE1BDF89A319651 -:1047A00000B40D9241505040B8F70895F894FFCFEF -:1047B00002200C0A9A0A770A430A0F0A0101C8016B -:1047C00028080A03140A404D3639C10574053E0510 -:1047D00005059804B104CA04E304010203040506B4 -:0447E00007080900BD -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/osx_de_experimental/compiled.hex b/keyboards/ergodox_ez/keymaps/osx_de_experimental/compiled.hex deleted file mode 100644 index 3fe28d5e5..000000000 --- a/keyboards/ergodox_ez/keymaps/osx_de_experimental/compiled.hex +++ /dev/null @@ -1,1228 +0,0 @@ -:100000000C9446040C948A040C948A040C948A047C -:100010000C948A040C948A040C948A040C948A0428 -:100020000C948A040C948A040C94DF100C94B11183 -:100030000C948A040C948A040C948A040C948A0408 -:100040000C948A040C946B240C948A040C948A04F7 -:100050000C948A040C944D1F0C948A040C948A040A -:100060000C948A040C948A040C948A040C948A04D8 -:100070000C948A040C948A040C948A040C948A04C8 -:100080000C948A040C948A040C948A040C948A04B8 -:100090000C948A040C948A040C948A040C948A04A8 -:1000A0000C948A040C948A040C948A0405073F0774 -:1000B000510773078B07910797079D07A307A907A8 -:1000C000AE07B407DE07E307E807FF071E1240127A -:1000D0002E1340122E138512A8122E13FD12101388 -:1000E000DF15DF150E160E164416641695179517B4 -:1000F0006F1695171F171F178617951795178F17C8 -:100100002C172C172C172C172C172C172C172C17D7 -:100110002C172C172C172C172C172C172C172C17C7 -:100120003E174B1752175917631702E002E2012ED0 -:10013000022E02E10002E002E102E20001E001E140 -:1001400001E20002E002E3016402640002E002E373 -:100150000001E001E30001E10137023702E101386B -:10016000023801E10125022502E10001E101370227 -:100170003702E10138023801E10107020702E1001C -:1001800001350235012002200002E302E102E30210 -:10019000E102E302E102E302E102E302E102E3023F -:1001A000E102E302E102E302E102E302E102E3022F -:1001B000E102E302E102E302E102E302E102E3021F -:1001C000E102E302E102E302E102E302E102E3020F -:1001D000E102E302E102E302E102E302E102E302FF -:1001E000E102E302E102E302E102E302E102E302EF -:1001F000E102E302E102E302E102E302E102E302DF -:10020000E102E302E102E302E102E302E102E302CE -:10021000E102E302E102E302E102E302E102E302BE -:10022000E10001E301E10001E10136023602E101F2 -:1002300038023801E10126022602E10001E101371E -:10024000023702E10138023801E10126022602E10B -:100250000001E10136023602E10138023801E10114 -:1002600025022502E10001E10137023702E10138F0 -:10027000023801E20125022502E20001E101370214 -:100280003702E10138023801E10130023002E100B9 -:1002900002E002E2013002300002E002E20001E08E -:1002A00001E20001E10131023102E10029002B00ED -:1002B000E200E100354100001E00140004001D6151 -:1002C0000E304E001F001A0016001B0003304C00B9 -:1002D0002000080007000600E0022A0021001500A7 -:1002E0000900190000304B00220017000A00050029 -:1002F00000004A000230E3000000E20000004D0070 -:100300000B30E7000000E6000000500023001C0056 -:100310000B00110000004F00240018000D00100019 -:100320003167520025000C000E0036002E6F2C00A5 -:10033000260012000F003700E108280027001300F4 -:1003400033003861E10451002D002F003464E500D2 -:1003500030410000650001000100010001000000C3 -:100360003A00350031000100010001003B00350278 -:100370002102350001004C003C001E02240622022E -:10038000010001003D002D022402240401000100AF -:100390003E00010037001104000001003E00010092 -:1003A00000000100000001003F000100000001000A -:1003B000000068003F0024062402240400004500D9 -:1003C0004000220425021104310269004100230487 -:1003D000260201001F020100420035002504010031 -:1003E00001000100430035022604010001306A00CB -:1003F00044001E0231000100010000000100010064 -:1004000001000100010000000100010001000100E5 -:10041000010001000100F400F200FB0001000100F6 -:100420000100F000F100FA00010001000100F500F8 -:10043000F300FC00010001000100F900FA00F600E1 -:1004400000000100010001000000010000000100A7 -:1004500001000100000001000000AC0001000100EB -:10046000010001000000AB000100010001000100DB -:100470000100A90001000100010001000100AE001F -:1004800001000100010001005000A800010001006E -:10049000010052005100AA0001000100010001000A -:1004A0004F000000010001000100010001000000F8 -:1004B0000100010001000100010001000100010034 -:1004C0000100010001000100010001000100010024 -:1004D0000100010001000100010001000100010014 -:1004E0000100010001000100000001000100010005 -:1004F00000000100000001000730010000000100C1 -:1005000000000100083005300A3001000000010041 -:100510000C300D30043001000100010001000630F4 -:1005200001000100010001000100010001000100C3 -:1005300001000100010001000100010001000100B3 -:1005400001000100010001000100000001000100A4 -:100550000100010001000000010001000100010094 -:100560000100010001000100500001000100010034 -:1005700001005200510001000100010001000100D2 -:100580004F00010001000100010001000100010015 -:100590000000010001000100000001000000010056 -:1005A0000100010000000100000001003F002402E2 -:1005B00024022202000001004000240021001E004D -:1005C000270001004100250022001F003700010024 -:1005D00042002600230020003600010043003002C4 -:1005E00030000100270201004400450038000100EE -:1005F0000100000001000100E1000100E000000036 -:10060000010001000100010001003D0001000100A6 -:10061000010001000100E0000100010001000100F3 -:1006200001002C00010001000100010001003C005C -:10063000010001000100010000003A00010001007A -:100640000000010000003B0001000100000001006B -:100650000000010001000100010001000000010094 -:100660000100010001000100010001000100010082 -:100670000100010001000100010001000100010072 -:100680000100010001000100010001000130010032 -:1006900001000100010001000100000016034500F7 -:1006A000720067006F0044006F0078002000450072 -:1006B0005A00000016034500720067006F004400F6 -:1006C0006F007800200045005A0000000403090470 -:1006D00009026D00040100A0FA09040000010301F1 -:1006E00001000921110100012240000705810308D2 -:1006F000000A09040100010301020009211101009F -:1007000001224D000705820308000A0904020001C6 -:1007100003000000092111010001223600070583B2 -:100720000308000A09040300010300000009211165 -:100730000100012239000705840310000112011095 -:100740000100000008EDFE07130100010200010591 -:10075000010906A101050719E029E7150025019502 -:100760000875018102050819012905950575019192 -:1007700002950175039101050719002977150025D8 -:1007800001957875018102C005010980A1018502EA -:1007900016010026B7001A01002AB700751095014E -:1007A0008100C0050C0901A1018503160100269CEA -:1007B000021A01002A9C02751095018100C00501F2 -:1007C0000902A1010901A100050919012905150066 -:1007D00025019505750181029501750381010501CA -:1007E000093009311581257F950275088106093880 -:1007F0001581257F950175088106050C0A380215BB -:1008000081257F950175088106C0C005010906A1F3 -:1008100001050719E029E7150025019508750181F3 -:1008200002950175088101050819012905950575CD -:100830000191029501750391010507190029FF1522 -:100840000026FF00950675088100C000000000002A -:10085000000000000000010204060A0F17202C3AD5 -:100860004A5D71879DB3C7DAE9F5FCFFFCF5E9DA6B -:10087000C7B39D87715D4A3A2C20170F0A06040200 -:1008800001000000000000000000000011241FBE55 -:10089000CFEFDAE0DEBFCDBF04B603FE24C0809107 -:1008A000FF0190910002A0910102B09102028730F5 -:1008B000904BA740B04BB9F41092FF011092000288 -:1008C000109201021092020214BE84B7877F84BF87 -:1008D00088E10FB6F89480936000109260000FBE1C -:1008E000E0E0FFE3099511E0A0E0B1E0E4E6FCE41C -:1008F00002C005900D92A433B107D9F711E0A4E32B -:10090000B1E001C01D92AF3FB107E1F70E94270E91 -:100910000C9430260C9400001092B9008AE0809369 -:10092000B800089594EA9093BC009091BC0097FFA2 -:10093000FCCF9091B900987F983021F0903111F060 -:1009400081E008958093BB0084E88093BC0080918F -:10095000BC0087FFFCCF8091B900887F883111F0FF -:10096000803471F780E0089584E98093BC00809121 -:10097000BC0084FDFCCF08958093BB0084E8809385 -:10098000BC008091BC0087FFFCCF9091B900987F9C -:1009900081E0983209F480E0089584E88093BC00F7 -:1009A0008091BC0087FFFCCF8091BB00089580B38D -:1009B0008C7080BB81B3836F81BB089580910101EE -:1009C000811115C080E40E9492048093010181117D -:1009D0000CC082E10E94BC0480930101811105C01A -:1009E0008FEF0E94BC04809301010E94B40484B183 -:1009F000807F84B985B1807F85B98AB1837F8AB9C8 -:100A00008BB1837F8BB93E98469808950E94A806C3 -:100A1000809301010E94DE040E94D704A5E3B1E0A7 -:100A2000E3E4F1E08EE08E0F11921D928E13FCCF65 -:100A30000C9492060E94A806809301010E94DE0495 -:100A40000E94D704A5E3B1E0E3E4F1E08EE08E0F6D -:100A500011921D928E13FCCF0895BF92CF92DF9218 -:100A6000EF92FF920F931F93CF93DF938091010139 -:100A7000882379F0809134018F5F80933401811154 -:100A800008C00E94A80680930101811102C00E9443 -:100A90003A0605E311E0C0E0D0E0DD24D39482E023 -:100AA000C82EEE24E394F12CC730D10500F58091D7 -:100AB0000101811164C080E40E94920480930101CD -:100AC000811112C082E10E94BC0480930101811156 -:100AD0000BC0C7010C2E01C0880F0A94EAF780955D -:100AE0000E94BC04809301010E94B40448C0CA3033 -:100AF000A1F028F4C83059F0C93061F005C0CC30FD -:100B000089F070F0CD3089F0209A289810C0219A91 -:100B100029980DC0229A2A980AC0239A2B9807C0B8 -:100B2000529A01C0539A5B9802C03E9A469890EA46 -:100B30009A95F1F79FB1799902C082E001C080E0F7 -:100B400091709D25982B7C9902C084E001C080E0C3 -:100B5000892B7D9902C038E001C030E0832B7E995B -:100B600002C020E101C020E0822B9FB19095991F27 -:100B70009927991F9295990F907E892B0FC080918C -:100B80000101811149C080E40E9492048093010117 -:100B9000882379F1B12C0E94B4048B2DF801908147 -:100BA000981719F08083C09200010E94DE042196FC -:100BB0000F5F1F4FCE30D10509F076CF8091000135 -:100BC000882361F1815080930001882339F08FE9F7 -:100BD0009FE00197F1F700C0000020C0A3E4B1E05E -:100BE000E5E3F1E0CF01825F91919D938E13FCCFFD -:100BF00015C083E10E94BC04809301018111CACF1A -:100C000081E40E949204809301018111C3CF0E946C -:100C1000CD04B82EB094BFCF80E0C0CF0E9438067C -:100C200081E0DF91CF911F910F91FF90EF90DF90C6 -:100C3000CF90BF900895E82FF0E0ED5BFE4F8081EC -:100C4000089508950F931F93CF93DF93C3E4D1E0EA -:100C500010E00C2F025F899190E00E94741E180F23 -:100C60000C13F9CF812FDF91CF911F910F91089530 -:100C70000C94260856985E9825982D9826982E98BC -:100C800027982F988FEF90E09093890080938800A9 -:100C900090938B0080938A0090938D0080938C00BA -:100CA000259A2D9A2FEF80E792E0215080409040C6 -:100CB000E1F700C00000269A2E9A2FEF80E792E01D -:100CC000215080409040E1F700C00000279A2F9A01 -:100CD0002FEF80E792E0215080409040E1F700C084 -:100CE000000025982D982FEF80E792E0215080405A -:100CF0009040E1F700C0000026982E982FEF80E783 -:100D000092E0215080409040E1F700C00000279819 -:100D10002F9856985E9825982D9826982E98279863 -:100D20002F98089589EA8093800089E0809381005C -:100D300024982C983F988AB18F748AB96E98479AF4 -:100D40008BB1806B8BB9769A0E943A060C94250879 -:100D500080E2809301018091510181110EC00E94B7 -:100D60008C0481E0809351012FEF83ED90E32150BB -:100D700080409040E1F700C0000080E40E949204AF -:100D80008093010181112EC00E94BC048093010157 -:100D9000811128C00E94BC0480930101811122C0EE -:100DA0008FE30E94BC048093010181111BC00E944B -:100DB000B40480E40E94920480930101811112C066 -:100DC0008CE00E94BC048093010181110BC00E9441 -:100DD000BC0480930101811105C08FE30E94BC0413 -:100DE000809301010E94B404809101010895462F6F -:100DF00050E04031510508F01FC1DC01FA01EA5A08 -:100E0000FF4F12968C910C94E0258823A9F00E9444 -:100E1000171F90935301809352018091C0019091CC -:100E2000C101A091C201B091C30128E0822788705E -:100E30009927AA27BB27AEC08091C0019091C1011C -:100E4000A091C201B091C30128E082278870992740 -:100E5000AA27BB278093C0019093C101A093C20130 -:100E6000B093C30180915201909153010E94231FBE -:100E70008739910508F0E0C083EA92E0089588235D -:100E800009F4DAC08091C0019091C101A091C20122 -:100E9000B091C30120E2822780729927AA27BB273D -:100EA00079C0882339F00E94171F909353018093D3 -:100EB00052010AC080915201909153010E94231F58 -:100EC0008739910508F4B8C08091C0019091C101A3 -:100ED000A091C201B091C30120E1822780719927BE -:100EE000AA27BB2757C0882349F00E94171F909359 -:100EF0005301809352018EE992E00895809152014E -:100F0000909153010E94231F8739910508F08EC0EC -:100F100080E992E00895882309F48EC08BE792E07F -:100F20000895882309F488C086E692E0089588230E -:100F300009F482C081E592E00895882309F47CC019 -:100F40008CE392E00895882309F476C087E292E06A -:100F5000089581116EC089E891E00895882309F40D -:100F60006BC080E891E008958823E9F00E94171F84 -:100F700090935301809352018091C0019091C101DF -:100F8000A091C201B091C30124E082278470992707 -:100F9000AA27BB278093C0019093C101A093C201EF -:100FA000B093C30149C080915201909153010E94B6 -:100FB000231F8739910508F43FC0DECF8823E1F174 -:100FC0008BE691E008958823B9F186E591E00895D4 -:100FD000882349F00E94171F909353018093520178 -:100FE00081E591E0089580915201909153010E9412 -:100FF000231F8739910518F583E491E0089588232C -:1010000049F00E94171F90935301809352018CE383 -:1010100091E0089580915201909153010E94231F05 -:101020008739910578F48AE291E0089589E992E0A0 -:10103000089582E292E0089580E090E008958CE4C3 -:1010400091E0089585E391E0089508956091C001CD -:101050007091C1018091C2019091C3010E94801ED4 -:1010600056985E9825982D9826982E9827982F9810 -:10107000823061F018F4813031F00895843069F0E5 -:10108000853039F00895259A2D9A0895269A2E9A3A -:101090000895259A2D9A269A2E9A279A2F9A08957E -:1010A00081E0089581E008950C9452080895282F56 -:1010B000882339F090E02A3010F44D960895069771 -:1010C000089587E290E00895AF92BF92DF92EF9289 -:1010D000FF920F931F93CF93DF938C01FC01C0818C -:1010E000D181CE010E94F91CBE010E94D40BEC01FB -:1010F000B8010E945408882309F4C9C1F80182810B -:10110000882309F4BEC08091600181111FC0C431E1 -:10111000F0E7DF0709F0B5C10E94560881E080932F -:1011200060010E94171F90935F0180935E011092EF -:101130005701109259011092580110925B011092C0 -:101140005A0110925D0110925C01A1C180915E0173 -:1011500090915F010E94231F883C910570F480915B -:101160005701E82FF0E0EE0FFF1FE85AFE4FD18342 -:10117000C0838F5F809357018AC1C13020E8D207B6 -:1011800008F451C0F8018281882309F47EC05E0111 -:10119000E894B7F880915601813079F050F08230B0 -:1011A000C1F482EE0E94831487E50E94831487E5D0 -:1011B0000EC082EE0E9483140CC080EE0E94831445 -:1011C00081EE0E94831488E10E94831488E10E94CA -:1011D0004B158CE0E82EF12CC5010E2C02C0969523 -:1011E00087950A94E2F78F700E945708D82E0E94C4 -:1011F00083148D2D0E944B15F4E0EF1AF1082CEFAB -:10120000E2162FEFF20641F780915601813029F066 -:1012100010F0823041F482EE04C080EE0E944B1543 -:1012200081EE0E944B15C43180E7D80768F4C230C4 -:1012300090E7D90708F046C0C115E0E7DE0771F076 -:10124000C130D047A1F10CC1C33320E7D20709F464 -:10125000D8C0C433D04709F4EBC002C1F801828181 -:10126000882309F402C10E940018FFEF24E38CE0F8 -:10127000F15020408040E1F700C000000E94721F42 -:1012800006C1C13080E8D80770F2C43120E7D20728 -:1012900008F0B3C0C23080E7D807A0F4C11590E7CA -:1012A000D90709F4E2C0C130D04709F0D9C0F8012C -:1012B0008281882309F4D9C08091DD018160809307 -:1012C000DD01E5C0F8018281882309F4CEC00E94C7 -:1012D000CC1F811102C00E94B21F0E94DF1F90E04C -:1012E0009093F1018093F001C230F0E7DF0721F421 -:1012F0008091F00181607AC0C33020E7D20721F4E9 -:101300008091F001826072C0C43080E7D80721F478 -:101310008091F00184606AC0C53090E7D90719F464 -:101320008091F00127C0C630E0E7DE0721F480910C -:10133000F00180615BC0C730F0E7DF0721F48091E6 -:10134000F001806253C0C83020E7D20721F48091B9 -:10135000F00180644BC0C93080E7D80721F4809148 -:10136000F001806843C0CA3090E7D90729F4809122 -:10137000F001846088603AC0CB30E0E7DE0721F4FA -:101380008091F0018E7F32C0CC30F0E7DF0721F48E -:101390008091F0018D7F2AC0CD3020E7D20721F463 -:1013A0008091F0018B7F22C0CE3080E7D80719F4FE -:1013B0008091F0011AC08091F001CF3090E7D907F9 -:1013C00011F48F7E13C0C031E0E7DE0711F48F7D8A -:1013D0000DC0C131F0E7DF0711F48F7B07C0C231C8 -:1013E000D04711F48F7702C08B7F877F8093F00105 -:1013F0008091F0010E94E31F4AC0C333F0E7DF078A -:10140000A1F4F8018281882321F01092540182E036 -:1014100016C080915401811106C086E20E94831497 -:1014200086E20E944B1582E018C0C433D047C1F455 -:10143000F8018281882331F01092550180E20E94E8 -:101440009A1525C080915501811106C087E20E943E -:10145000831487E20E944B1580E20E94A11517C0F9 -:1014600081E08093540180935501C801DF91CF91B1 -:101470001F910F91FF90EF90DF90BF90AF900C9471 -:101480005008C130F0E8DF0708F081CECCCE80E014 -:10149000DF91CF911F910F91FF90EF90DF90BF9060 -:1014A000AF90089526E0729FF001112444E5849FD7 -:1014B000E00DF11D1124E60FF11DEE0FFF1FE455A5 -:1014C000FD4F859194910E94E60B811560E496078B -:1014D000B0F5811570E3970708F0DEC0803E9105F6 -:1014E000D8F4803C910508F06CC0883A910578F4F6 -:1014F000853A910508F06BC08130910509F452C11D -:1015000008F40FC18430910508F04CC10AC18B3B2F -:10151000910508F467C005C18F3F910509F048F4B3 -:10152000803F910508F0ADC0883E910508F43AC1AE -:10153000F8C0811520E2920708F0A5C00895811532 -:1015400043E5940790F4811562E5960708F0C8C05A -:10155000811571E5970708F0BEC0811520E5920757 -:1015600008F09DC09F70906A0895811545E5940725 -:10157000D8F4811564E5960708F0C8C0482F469551 -:10158000469570E2479FA00111248370992721E0BE -:1015900030E0B90102C0660F771F8A95E2F7CB01F0 -:1015A000842B952B9A680895811576E5970708F4A2 -:1015B000B2C09C0130562115304108F0B2C09F7076 -:1015C000AEC0FC01EE0FFF1FE45DFE4F62C0853A26 -:1015D000910509F4A9C0863A910509F0A8C082E8EE -:1015E00090E40895883A910509F4A4C0893A9105D8 -:1015F00009F4A3C08A3A910509F4A2C08B3A910577 -:1016000009F4A1C08C3A910509F4A0C08D3A910566 -:1016100009F49FC0803B910509F49EC08E3A910564 -:1016200009F49DC08F3A910509F49CC0813B910556 -:1016300009F49BC0823B910509F49AC0833B910554 -:1016400009F499C0843B910509F498C0853B910544 -:1016500009F497C0863B910509F496C0873B910534 -:1016600009F495C0883B910509F494C0893B910524 -:1016700009F493C08A3B910509F492C080E094E498 -:10168000089590650895FC01FF70EE0FFF1FE4556B -:10169000FD4F8591949108959927906C0895482F56 -:1016A000437021E030E002C0220F331F4A95E2F779 -:1016B0003C68AC0164E0569547956A95E1F7437044 -:1016C000342B8F708695869560E2869FC001112429 -:1016D000822B932B0895982F8827816F906A089505 -:1016E000482F4695469570E2479FA00111248370CC -:1016F000992721E030E0B90102C0660F771F8A9573 -:10170000E2F7CB01842B952B9C680895982F8827AE -:10171000846F906A08958F719927982F8827906217 -:10172000089580E090E0089581E890E4089583E8CA -:1017300090E4089582EE94E4089589EE94E4089587 -:101740008AEE94E4089585EB94E4089586EB94E49E -:10175000089587EB94E408958CEC94E408958DEC5F -:1017600094E4089583E895E408958AE895E408955B -:1017700082E995E4089584E995E4089581E296E488 -:10178000089583E296E4089584E296E4089585E25C -:1017900096E4089586E296E4089587E296E4089533 -:1017A0008AE296E40895089596E0799FF001112465 -:1017B00094E5899FE00DF11D1124E60FF11DEE0F58 -:1017C000FF1FE455FD4F859194910895823891054E -:1017D00049F1B0F48133910509F458C048F48932D5 -:1017E000910509F44EC08A32910509F454C0089558 -:1017F0008533910509F440C08933910599F0089526 -:10180000833E910529F138F4803E910591F0823EA6 -:101810009105A1F00895863E9105F9F0873E910566 -:1018200031F108952091F00120FD3AC021FD38C02A -:1018300008958091F00180FD35C032C08091F001A3 -:1018400082FF32C08091F00184FD30C083EE39C048 -:101850008091F00182FD28C0F5CF8091F00183FFD7 -:1018600027C08091F00184FD21C087EE2AC08091BD -:10187000F00183FD1DC0F5CF8091F00185FD1AC0F8 -:101880001BC08091F00185FD17C014C08091F0014C -:1018900086FD14C015C08091F00186FD11C00EC0F8 -:1018A00080EE0FC089E30DC082EE0BC080E009C05E -:1018B00086EE07C089E205C085E303C08AE201C065 -:1018C00081E390E0089508950C94630C8091710178 -:1018D0000895CF93DF9300D01F92CDB7DEB79C0160 -:1018E0008091F601843019F593E099833B832A8334 -:1018F0009093E9008FEF9091E800815095FD06C02C -:1019000095ED9A95F1F700008111F5CF8091E800EF -:1019100085FF0DC040E050E063E070E0CE0101962D -:101920000E94CF0E8091E8008E778093E8000F90A0 -:101930000F900F90DF91CF910895CF93DF9300D058 -:101940001F92CDB7DEB72091F601243021F522E0B9 -:1019500029839B838A8383E08093E9008FEF9091B2 -:10196000E800815095FD06C095ED9A95F1F70000CD -:101970008111F5CF8091E80085FF0DC040E050E077 -:1019800063E070E0CE0101960E94CF0E8091E800E6 -:101990008E778093E8000F900F900F90DF91CF919A -:1019A00008952091F6012430F1F422E02093E9001B -:1019B0002FEF3091E800215035FD06C035ED3A9506 -:1019C000F1F700002111F5CF2091E80025FF0BC0B1 -:1019D00040E050E065E070E00E94CF0E8091E800AA -:1019E0008E778093E8000895CF93DF93EC01909178 -:1019F000F601943009F046C080910C018823D9F09B -:101A000080910D018823B9F09093E9008FEF9091B8 -:101A1000E800815095FD06C095E19A95F1F7000028 -:101A20008111F5CF8091E80085FF2CC040E050E0A7 -:101A300060E170E017C081E08093E9008FEF909142 -:101A4000E800815095FD06C095ED9A95F1F70000EC -:101A50008111F5CF8091E80085FF14C040E050E08F -:101A600068E070E0CE010E94CF0E8091E8008E7792 -:101A70008093E80080E1FE01A1E6B1E001900D92C3 -:101A80008A95E1F7DF91CF9108958091F501811159 -:101A900009C00E9464100E94C1108091E20084601D -:101AA0008093E20008951092F501089508950C9432 -:101AB00058240E94081F0E945E240E9467130C9401 -:101AC000640C42E061EC81E00E94DE0F42E061ECD8 -:101AD00082E00E94DE0F42E061EC83E00E94DE0FB4 -:101AE00042E161EC84E00C94DE0F8091F8018330D8 -:101AF00009F455C030F4813071F0823009F48EC0A1 -:101B000008958A3009F47AC08B3009F460C08930B6 -:101B100009F09CC020C08091F701813A09F096C07D -:101B20008091E800877F8093E8008091FB0190918D -:101B3000FC01892B21F460E181E691E003C060E0C3 -:101B400080E090E070E00E941A0F8091E8008B77AF -:101B50008093E80008958091F701813209F076C002 -:101B60008091FB019091FC01009719F0039709F017 -:101B70006DC08091E800877F8093E8008091E80045 -:101B800082FD05C08091F6018111F8CF5FC0809180 -:101B9000F100809371018091E8008B7753C08091B0 -:101BA000F701813A09F052C08091FB019091FC014C -:101BB000892B09F04BC08091E800877F8093E80073 -:101BC0008091E80080FFFCCF80910C0136C08091AD -:101BD000F7018132D9F58091FB019091FC01892BAD -:101BE000A9F58091E800877F8093E8000E94131098 -:101BF0008091F90180930C010C9400188091F701F9 -:101C0000813221F58091E800877F8093E8000E946F -:101C100013108091FA018093720108958091F70169 -:101C2000813AA1F48091E800877F8093E800809159 -:101C3000E80080FFFCCF809172018093F1008091D9 -:101C4000E8008E778093E8000C941310089584B711 -:101C5000877F84BF88E10FB6F8948093600010926C -:101C600060000FBE80E880936100109261000E94C6 -:101C7000B6130E9464100E94C1108091E20084603B -:101C80008093E20078940E9447130E94B81382E088 -:101C900091E00E9462130E9446248091F6018530F3 -:101CA00069F40E94D01E8091F4018823B1F30E9450 -:101CB000FA1E882391F30E94B90EEFCF0E94BE1343 -:101CC000ECCF292F332723303105C9F064F42130BC -:101CD000310581F02230310509F043C08DE690E0F6 -:101CE00020ED36E042C021323105F1F022323105DB -:101CF00041F137C082E190E02DE337E036C099270B -:101D00008130910541F08230910541F0892B49F5F0 -:101D1000ECECF6E005C0E4EBF6E002C0ECE9F6E03E -:101D2000849190E09F0121C06430D8F4E62FF0E068 -:101D3000EE0FFF1FEE5DFE4F2081318189E090E0C4 -:101D400014C0643070F470E0FB01EE0FFF1FE65E1C -:101D5000FE4F20813181FB01EA5EFE4F808190E0E1 -:101D600004C080E090E020E030E0FA01318320837D -:101D7000089580E189BD82E189BD09B400FEFDCFEF -:101D80008091D8008F7D8093D8008091E0008260A0 -:101D90008093E0008091E00081FDFCCF0895CF9218 -:101DA000DF92EF92FF920F931F93CF93DF93EC019B -:101DB0008B016A010E943210811133C0C114D10419 -:101DC00039F0F60180819181081B190BC80FD91FCA -:101DD000E12CF12C0115110519F18091E80085FD28 -:101DE00016C08091E8008E778093E800C114D1047A -:101DF00049F0F60180819181E80EF91EF182E082BE -:101E000085E00FC00E943210882321F30AC0899117 -:101E10008093F10001501109FFEFEF1AFF0ADACFAA -:101E200080E0DF91CF911F910F91FF90EF90DF90B5 -:101E3000CF9008952091FD013091FE0126173707BC -:101E400048F06115710539F42091E8002E77209350 -:101E5000E80001C0B90140E061157105A9F12091C8 -:101E6000F601222309F443C0253009F442C0209131 -:101E7000E80023FD40C02091E80022FD32C02091FF -:101E8000E80020FFE9CF4091F3002091F20030E01C -:101E9000342BFC01CF016115710559F02830310553 -:101EA00040F481918093F100615071092F5F3F4FA1 -:101EB000F1CF41E02830310509F040E02091E80001 -:101EC0002E772093E800C8CF4111C9CF0AC0809176 -:101ED000F601882361F0853061F08091E80083FD90 -:101EE0000AC08091E80082FFF2CF80E0089582E08E -:101EF000089583E0089581E008952091FD013091D7 -:101F0000FE012617370748F06115710539F4209155 -:101F1000E8002E772093E80001C0B901FC0120E021 -:101F20006115710591F18091F601882309F440C093 -:101F3000853009F43FC08091E80083FD3DC0809169 -:101F4000E80082FD2FC08091E80080FFE9CF20915A -:101F5000F3008091F20090E0922B6115710559F029 -:101F60008830910540F424912093F100319661501E -:101F700071090196F2CF21E0089709F020E08091E5 -:101F8000E8008E778093E800CBCF2111CCCF0AC038 -:101F90008091F601882361F0853061F08091E8003E -:101FA00083FD0AC08091E80082FFF2CF80E00895AF -:101FB00082E0089583E0089581E00895982F973096 -:101FC00058F59093E900981739F07091EC00209142 -:101FD000ED005091F00003C0242F762F50E021FF38 -:101FE00019C03091EB003E7F3093EB003091ED0053 -:101FF0003D7F3093ED003091EB0031603093EB008A -:102000007093EC002093ED005093F0002091EE00CF -:1020100027FF07C09F5FD3CF8F708093E90081E0D7 -:10202000089580E008958091F70187FF11C08091A5 -:10203000E80082FD05C08091F6018111F8CF11C042 -:102040008091E8008B770BC08091F601882349F0DE -:102050008091E80080FFF8CF8091E8008E77809330 -:10206000E80008952091E4003091E50095E6409164 -:10207000EC00842F817040FF22C08091E80080FD39 -:102080001CC08091F601882391F0853091F08091F9 -:10209000EB0085FD10C04091E4005091E50042172F -:1020A000530729F39A01915011F784E0089582E0D3 -:1020B000089583E0089581E0089580E008954091B7 -:1020C000E80042FFDECF08950E94D2100E94DA108D -:1020D000E0EEF0E0808181608083E8EDF0E08081D7 -:1020E0008F77808319BCA7EDB0E08C918E7F8C93A5 -:1020F00080818F7E80831092F50108950F931F9346 -:10210000CF93DF930E94D2100E94DA10C8EDD0E086 -:1021100088818F77888388818068888388818F7D94 -:10212000888319BC1092F6011092F2011092F4010A -:102130001092F30100EE10E0F80180818B7F808324 -:1021400088818160888342E060E080E00E94DE0F49 -:10215000E1EEF0E080818E7F8083E2EEF0E080812E -:1021600081608083808188608083F80180818E7F98 -:102170008083888180618883DF91CF911F910F9147 -:102180000895E8EDF0E080818F7E8083E7EDF0E058 -:1021900080818160808384E082BF81E08093F5014B -:1021A0000C947E10E8EDF0E080818E7F80831092A9 -:1021B000E20008951092DA001092E10008951F9253 -:1021C0000F920FB60F9211242F933F934F935F936B -:1021D0006F937F938F939F93AF93BF93EF93FF93EF -:1021E0008091E10082FF0BC08091E20082FF07C076 -:1021F0008091E1008B7F8093E1000E9446138091E3 -:10220000DA0080FF1FC08091D80080FF1BC0809142 -:10221000DA008E7F8093DA008091D90080FF0DC0B4 -:1022200080E189BD82E189BD09B400FEFDCF81E076 -:102230008093F6010E94450D05C019BC1092F6016D -:102240000E94530D8091E10080FF19C08091E2004F -:1022500080FF15C08091E2008E7F8093E200809124 -:10226000E20080618093E2008091D80080628093D8 -:10227000D80019BC85E08093F6010E94570D80912B -:10228000E10084FF30C08091E20084FF2CC080E137 -:1022900089BD82E189BD09B400FEFDCF8091D800DF -:1022A0008F7D8093D8008091E1008F7E8093E10044 -:1022B0008091E2008F7E8093E2008091E200816055 -:1022C0008093E2008091F201882311F084E007C03E -:1022D0008091E30087FD02C081E001C083E080932C -:1022E000F6010E94590D8091E10083FF29C0809181 -:1022F000E20083FF25C08091E100877F8093E100A9 -:1023000082E08093F6011092F2018091E1008E7FCD -:102310008093E1008091E2008E7F8093E2008091C3 -:10232000E20080618093E20042E060E080E00E9491 -:10233000DE0F8091F00088608093F0000E94560DBF -:10234000FF91EF91BF91AF919F918F917F916F918D -:102350005F914F913F912F910F900FBE0F901F9063 -:1023600018951F920F920FB60F9211242F933F933F -:102370004F935F936F937F938F939F93AF93BF938D -:10238000CF93DF93EF93FF93C091E900CF708091DB -:10239000EC00D82FD17080FDD0E81092E900809138 -:1023A000F000877F8093F00078940E94F5111092DE -:1023B000E9008091F00088608093F000CD2BCF7011 -:1023C000C093E900FF91EF91DF91CF91BF91AF9161 -:1023D0009F918F917F916F915F914F913F912F913D -:1023E0000F900FBE0F901F9018951F93CF93DF9300 -:1023F000CDB7DEB7AA970FB6F894DEBF0FBECDBF3C -:10240000E7EFF1E088E08E0F9091F10091938E1349 -:10241000FBCF0E94750D8091E80083FF1FC1809162 -:10242000F7019091F801492F50E04A30510508F02A -:1024300015C1FA01EA59FF4F0C94E025803881F06C -:10244000823809F00BC18091FB018F708093E90005 -:102450008091EB0085FB882780F91092E90006C087 -:102460008091F3019091F401911182609091E800C4 -:10247000977F9093E8008093F1001092F100C8C01C -:10248000282F2D7F09F0EAC0882319F0823061F0EF -:10249000E5C08091F901813009F0E0C0933009F086 -:1024A00080E08093F4012BC08091F901811127C055 -:1024B0008091FB018F7009F4D1C08093E9002091D5 -:1024C000EB0020FF1CC0933021F48091EB00806270 -:1024D00014C09091EB0090619093EB0021E030E00C -:1024E000A90102C0440F551F8A95E2F74093EA0004 -:1024F0001092EA008091EB0088608093EB001092CC -:10250000E9008091E800877F86C08111A7C0109103 -:10251000F9011F778091E3008078812B8093E3009D -:102520008091E800877F8093E8000E9413108091DB -:10253000E80080FFFCCF8091E30080688093E30097 -:10254000111102C082E001C083E08093F60186C0D1 -:102550008058823008F082C08091F9019091FA0190 -:102560008C3D53E0950779F583E08A838AE289837D -:102570004FB7F894DE01139620E03EE051E2E32FDE -:10258000F0E050935700E49120FF03C0E295EF7014 -:102590003F5FEF708E2F90E0EA3010F0C79601C0D9 -:1025A000C0968D939D932F5F243149F74FBF809143 -:1025B000E800877F8093E8006AE270E0CE01019630 -:1025C0000E941A0F14C0AE014F5F5F4F6091FB0174 -:1025D0000E94610EBC01009709F440C09091E80090 -:1025E000977F9093E80089819A810E947D0F809166 -:1025F000E8008B778093E80031C0803879F58091CE -:10260000E800877F8093E8008091F2018093F100D9 -:102610008091E8008E778093E8000E9413101EC01E -:1026200081111CC09091F9019230C0F48091E800B2 -:10263000877F8093E8009093F2010E9413108091AD -:10264000F201811106C08091E30087FD02C081E0A4 -:1026500001C084E08093F6010E94610D8091E80042 -:1026600083FF0AC08091E800877F8093E800809113 -:10267000EB0080628093EB00AA960FB6F894DEBF61 -:102680000FBECDBFDF91CF911F9108950895CF93D5 -:102690008091F6018823A1F0C091E900CF7090915C -:1026A000EC00892F817090FD80E8C82B1092E90022 -:1026B0008091E80083FD0E94F511CF70C093E9007E -:1026C000CF91089590937801809377010895E091D8 -:1026D0007701F0917801309721F00190F081E02DA1 -:1026E000099480E00895E0917701F09178013097A6 -:1026F00021F00280F381E02D09940895E0917701A3 -:10270000F0917801309721F00480F581E02D099453 -:10271000089520917501309176018217930771F029 -:102720009093760180937501E0917701F0917801A3 -:10273000309721F00680F781E02D099408952091CB -:102740007301309174018217930771F090937401B3 -:1027500080937301E0917701F0917801309721F037 -:102760000084F185E02D0994089508950C94B51323 -:102770000E940E1F0E9406050C94941F9F92AF9218 -:10278000BF92CF92DF92EF92FF920F931F93CF935E -:10279000DF9300D000D000D0CDB7DEB70E942D056A -:1027A0000DE010E0AA24A394B12C902E802F0E945B -:1027B0001B06980126583E4F6901F901F080F82662 -:1027C000A1F40150110988F78FEF89838A831B8256 -:1027D0000E94171F8160782F9D838C8349815A81C5 -:1027E0006B818D810E9455142FC09091DD0191FF66 -:1027F00004C08E830E9421068E8125E030E0A50171 -:10280000022E01C0440F0A94EAF7E42E4F21C1F0D2 -:1028100029839A828E2191E009F490E09B830E94A3 -:10282000171F8160782F9D838C8349815A816B812A -:102830008D810E945514F6018081E826E08204C053 -:1028400021503109E0F6BDCF0E946221109179013B -:102850000E9467131817B9F00E94671380937901DB -:1028600026960FB6F894DEBF0FBECDBFDF91CF9195 -:102870001F910F91FF90EF90DF90CF90BF90AF909E -:102880009F900C94640C26960FB6F894DEBF0FBE92 -:10289000CDBFDF91CF911F910F91FF90EF90DF900F -:1028A000CF90BF90AF909F900895CF93DF93CDB717 -:1028B000DEB72B970FB6F894DEBF0FBECDBF4F83A8 -:1028C000588769877A878B87DE01119686E0FD013C -:1028D00011928A95E9F785E0FE01379601900D92F5 -:1028E0008A95E1F749815A816B817C818D819E8136 -:1028F0000E949E1A2B960FB6F894DEBF0FBECDBF76 -:10290000DF91CF910895CF93882309F4C2C0C82FD7 -:10291000823859F40E94671381FDBBC089E30E948D -:10292000781D0E94451E89E30CC0833879F40E940B -:10293000671380FDAEC083E50E94781D0E94451E8E -:1029400083E50E94BA1DCF910C94451E843859F43A -:102950000E94671382FD9DC087E40E94781D0E943B -:10296000451E87E4EECF8CEF8C0F813A48F48C2F14 -:102970000E94AC2381118DC08C2F0E94781DE3CF63 -:1029800080E28C0F883048F4C77081E001C0880F66 -:10299000CA95EAF70E94FE1DD6CF8BE58C0F8330D7 -:1029A00078F4C53A29F0C63A31F083E890E005C0E2 -:1029B00081E890E002C082E890E0CF910C94891306 -:1029C00088E58C0F833108F064C0C83A39F1C93A00 -:1029D00041F1CA3A49F1CB3A51F1CC3A59F1CD3AE9 -:1029E00061F1C03B69F1CE3A71F1CF3A79F1C13B67 -:1029F00081F1C23B89F1C33B91F1C43B99F1C53BE5 -:102A0000A1F1C63BA9F1C73BB1F1C83BB9F1C93B44 -:102A1000C1F1CA3BC9F180E090E038C082EE90E09D -:102A200035C089EE90E032C08AEE90E02FC085EB91 -:102A300090E02CC086EB90E029C087EB90E026C0A8 -:102A40008CEC90E023C08DEC90E020C083E891E016 -:102A50001DC08AE891E01AC082E991E017C084E9BC -:102A600091E014C081E292E011C083E292E00EC0D6 -:102A700084E292E00BC085E292E008C086E292E038 -:102A800005C087E292E002C08AE292E0CF910C9406 -:102A90009F13CF910895882309F44BC0823859F4CD -:102AA0000E94671381FF45C089E30E94781D0E9440 -:102AB000451E89E30CC0833871F40E94671380FFC0 -:102AC00038C083E50E94781D0E94451E83E50E9460 -:102AD000BA1D0C94451E843859F40E94671382FF76 -:102AE00028C087E40E94781D0E94451E87E4EFCF2E -:102AF0009CEF980F913A58F390E2980F983050F469 -:102B0000877091E001C0990F8A95EAF7892F0E949A -:102B1000041EDFCF9BE5980F933020F480E090E017 -:102B20000C948913885A833120F480E090E00C944F -:102B30009F130895882321F00E94FE1D0C94451ECA -:102B40000895882321F00E94041E0C94451E0895C8 -:102B50007F928F929F92AF92BF92CF92DF92EF922D -:102B6000FF920F931F93CF93DF931F92CDB7DEB7E2 -:102B70007C01C62E772EFC01058102950F70128113 -:102B800011110E941B1E0E94711D882379F01123D0 -:102B900069F080E28C0D883048F082E00E945A1D76 -:102BA0000E94711D91E0D82ED92601C0D12CE72DAD -:102BB000E295EF70F0E0E059FF4F0C94E025872D8F -:102BC000807F072D0F70882311F00295007F11235D -:102BD00089F0002309F490C180E28C0D883020F444 -:102BE000802F0E94FE1D03C0802F0E940E1E0E9497 -:102BF000451E82C18C2D0E944B15002309F495C1FE -:102C000080E28C0D883020F4802F0E94041E03C0C7 -:102C1000802F0E94141E0E94451E87C1972D907F11 -:102C2000872D8F70903211F08295807FCC2021F01B -:102C3000F1E0CF16B1F01EC0112349F0002309F4D2 -:102C400014C1013009F011C10E942E1E6EC1002373 -:102C500019F0013009F469C189830E94311E89810C -:102C60000AC1112321F0023008F05FC1FEC001113A -:102C70005CC101C1112321F0002309F4F6C03CC15D -:102C8000002309F4F8C03EC1872D86958695837090 -:102C900090E0009719F0019761F047C1112321F0EE -:102CA0008C2D972D937002C080E090E00E948913D4 -:102CB0003CC1112321F08C2D972D937002C080E030 -:102CC00090E00E949F1331C18C2D112319F00E94B6 -:102CD0006A2002C00E94D2200E94572126C1872D5F -:102CE000837009F052C0111120C18C2D82958695F8 -:102CF0008770880F880F9C2D9F70892E912CA12C96 -:102D0000B12C082E04C0880C991CAA1CBB1C0A9468 -:102D1000D2F7C4FE14C00FE010E020E030E0B901AB -:102D2000A80104C0440F551F661F771F8A95D2F76C -:102D3000CB01BA01609570958095909503C060E0D5 -:102D400070E0CB01272D26952695237030E02230A8 -:102D5000310569F02330310589F0682979298A29FC -:102D60009B292130310571F00E94E61BDEC06829E5 -:102D700079298A299B290E94021CD7C00E94E61B40 -:102D8000C501B4010E94CA1BD0C0112319F0872DC0 -:102D9000817001C08695882309F4C7C08C2D829567 -:102DA00086958770880F880F9C2D9F70892E912C97 -:102DB000A12CB12C082E04C0880C991CAA1CBB1C89 -:102DC0000A94D2F7C4FE14C00FE010E020E030E017 -:102DD000B901A80104C0440F551F661F771F8A95CB -:102DE000D2F7CB01BA01609570958095909503C09C -:102DF00060E070E0CB01272D269526952370422FA9 -:102E000050E04230510569F04330510589F068299E -:102E100079298A299B294130510571F00E94C01CF3 -:102E200084C0682979298A299B290E94DC1C7DC0DD -:102E30000E94C01CC501B4010E94A41C76C08C2D48 -:102E400090E0FC01E05EF109E531F10508F050C0C9 -:102E5000E058FF4F0C94E0250C2D0F70872D8F71DB -:102E6000112331F00E943D1C802F0E949A155DC0F5 -:102E70000E945E1C802F0E94A11557C0112339F0BB -:102E8000011153C0872D8F710E94831C4EC00230E8 -:102E900008F04BC0F7CF112339F0872D8F710E94B6 -:102EA0003D1C43C01123C9F3872D8F710E945E1C06 -:102EB0003CC0112329F0872D8F710E94281C35C03A -:102EC0000E941E1C32C0112351F0172D1F71812F3B -:102ED0000E943D1C63E0812F0E94511D26C081E0AD -:102EE0000E945A1D023008F182E00E945A1D1DC046 -:102EF000112331F0002389F28C2D0E94831415C018 -:102F0000002391F28C2D0E944B150FC0472D4F705E -:102F10006C2DC7010E94F7060E94421B06C0472D78 -:102F20004F706C2DC7010E94D30BDD20F9F00E9479 -:102F30004D1D80FD1BC0F70112820E94471D0E949B -:102F40003D1CC7010E94C5170E94471D0F90DF91CD -:102F5000CF911F910F91FF90EF90DF90CF90BF9096 -:102F6000AF909F908F907F900C945E1C0F90DF919C -:102F7000CF911F910F91FF90EF90DF90CF90BF9076 -:102F8000AF909F908F907F9008950F931F93CF9352 -:102F9000DF93EC01888199812B813C81232BB9F04F -:102FA0009F3F11F48F3F99F0CE010E94640888235F -:102FB00071F0688179818A810E94431D8C010E9491 -:102FC000F81C0E94BF1BB801CE010E94A815DF911A -:102FD000CF911F910F9108950E941B1E0E942B1EDE -:102FE0000E94F01D0E94451E0E9408220E94572147 -:102FF00080E090E00E94891380E090E00C949F13A1 -:103000000E940B1E0C94EC170E94381D292F22954C -:103010002F7030E02C3031054CF42A3031056CF43F -:103020002250310922303105A8F407C02C30310577 -:1030300069F02F30310551F00DC0803F69F018F470 -:10304000803E40F409C0843F29F406C093FB8827E2 -:1030500080F9089580E0089581E00895CF93DF938B -:1030600000D000D01F92CDB7DEB70F900F900F9019 -:103070000F900F90DF91CF910895CF93DF9300D001 -:1030800000D000D0CDB7DEB726960FB6F894DEBFDD -:103090000FBECDBFDF91CF9108951F93CF93DF93E4 -:1030A000C091880116E080918901C81799F0D0E09D -:1030B0001C9FF0011D9FF00D1124E657FE4F40812B -:1030C000518162817381848195810E943D1821968E -:1030D000C770E9CFDF91CF911F9108954091BA0158 -:1030E0005091BB016091BC017091BD018091BE0106 -:1030F0009091BF010C943D188091BF0182958F7013 -:1031000009F054C08091BC01882309F44FC080911C -:103110008801A09189016091BA017091BB01409131 -:10312000BD015091BE01B6E08A1709F43FC090E09E -:1031300041155105C1F17F3F11F46F3FA1F1B89FD7 -:10314000F001B99FF00D1124E657FE4F2181721353 -:103150002AC02081621327C02281211124C023812B -:1031600034812417350710F421503109241B350B05 -:10317000283C3105C0F42091BF012F7020612093BD -:10318000BF0126E0289FF001299FF00D1124E1578F -:10319000FE4F80818F70806180838AEB91E00E9476 -:1031A000C5170C944D1801968770BECF0895CF9225 -:1031B000DF92EF92FF920F931F93CF93DF93CDB7E0 -:1031C000DEB762970FB6F894DEBF0FBECDBF8C019D -:1031D00085E0F801DE011D9601900D928A95E1F7D8 -:1031E000D8014C9111965C91119712966C9112979F -:1031F0001396CD90DC9014973091BA017091BB0179 -:103200008091BD019091BE01009709F46BC17F3F91 -:1032100019F43F3F09F466C1E090BC01EE2009F4C7 -:10322000C0C02091BF01C816D90628F0F601E81BDE -:10323000F90BCF0104C0809590958C0D9D1DFF2446 -:10324000F394883C910578F0F12C207F09F0C6C0FA -:103250007C2DD98AC88A89890E942E188AEB91E030 -:103260000E94C517B1C0822F807F09F046C0751338 -:1032700014C0341312C0611110C02F70206120934C -:10328000BF010E946E188AEB91E00E94C5178091E1 -:10329000BF01D80115968C932EC0CD2819F15F3F40 -:1032A00011F44F3FF9F0F62E61111CC08091880196 -:1032B0002091890136E0821709F45AC090E0389FC6 -:1032C000F001399FF00D1124E657FE4F718157131D -:1032D00006C07081471303C07281711103C001964B -:1032E0008770E9CFF62E662309F418C18091BF01DB -:1032F00081608093BF01F12C11C1751308C0341394 -:1033000006C0611104C08091BF01D801C3C04D87C0 -:103310005E878D859E856A8B0E9404186A89882342 -:10332000E1F16623D1F12091BF01822F82958F7048 -:1033300090E0029774F08091BA019091BB01988758 -:103340008F831986DB86CA862C87CE0107960E945A -:10335000C51786E0F801AAEBB1E001900D928A95BD -:10336000E1F70E947C180E946E18FF24F394D6C0E7 -:103370004D875E878D859E850E94381D292F229559 -:103380002F7030E0223031050CF0BCC09F7009F086 -:10339000B6C0805E883008F4C1C0C8010E94C5175D -:1033A000E4CFC816D90608F453C0F601E81BF90BA0 -:1033B000CF01883C910508F450C0F12C7C2DD98AAE -:1033C000C88A89890E942E18EAEBF1E086E0DF01C5 -:1033D0001D928A95E9F70E946E18A0C0751314C05B -:1033E000341312C0611110C08091BF01F8018583B0 -:1033F000C8010E94C51786E0EAEBF1E0DF011D92EB -:103400008A95E9F7FE2C8AC04D875E878D859E855B -:103410006A8B0E9404186A89882309F4BECF662348 -:1034200009F4BBCF2091BF01822F82958F7090E06D -:1034300002970CF48ECF8091BA019091BB019A83D0 -:1034400089831B82DD82CC822E83CE0101967FCFC1 -:10345000809590958C0D9D1DACCFF62E662309F4BA -:103460009CCF75132EC034132CC02091BF0120FDBA -:103470001FC0822F82958F70D9F0D80115962C939A -:1034800015978F3049F08F5F982F9295907F822FFC -:103490008F70892B15968C93C8010E94C51786E002 -:1034A000F801AAEBB1E001900D928A95E1F793CF74 -:1034B00086E0F801AAEBB1E001900D928A95E1F760 -:1034C0002DC04D875E878D859E850E9404188111D1 -:1034D00040CF8091BF0181608093BF01C8010E94ED -:1034E000C5171CC0662309F458CF4D875E878D85AC -:1034F0009E850E940418882309F44FCF2ACF81119A -:1035000048CF0CC0243031050CF047CF9F7009F430 -:1035100040CFF8019581907F09F03BCF8F2D6296C7 -:103520000FB6F894DEBF0FBECDBFDF91CF911F91D4 -:103530000F91FF90EF90DF90CF9008951F93CF935E -:10354000DF93CDB7DEB72C970FB6F894DEBF0FBE72 -:10355000CDBF4F83588769877A878B879C87CE0139 -:1035600007960E94D718882369F08F8198852A854D -:103570003B85232BF1F19F3F09F063C08F3F09F09A -:1035800060C037C086E0FE013796DE0111960190DB -:103590000D928A95E1F76F817885EA85FB853097F2 -:1035A00041F17F3F11F46F3F21F12091890130E01B -:1035B000C9010196877099274091880150E08417CE -:1035C000950709F447C069837A83FD83EC8396E00D -:1035D000929FD001939FB00D1124A657BE4FFE01BC -:1035E000319601900D929A95E1F7809389010E949E -:1035F0004D1816E080918801909189018917C1F1D9 -:10360000189FC001112486579E4F0E94D718882307 -:1036100079F1E09188011E9FF0011124E657FE4FD9 -:103620004081518162817381848195810E943D181E -:103630008091880190E00196877099278093880196 -:10364000D9CF4F81588569857A858B859C850E9465 -:103650003D18CFCF0E940018109289011092880166 -:10366000EAEBF1E086E0DF011D928A95E9F7C1CF30 -:103670002C960FB6F894DEBF0FBECDBFDF91CF9171 -:103680001F910895EF92FF920F931F93CF93DF93B3 -:103690008C01009709F46CC0F12CEE24E394E8014E -:1036A0002196F8018491843740F4843008F051C0A9 -:1036B000813081F0823019F15BC0853709F444C054 -:1036C000A8F19CE7980F903708F052C08F770E94BE -:1036D0004B1541C00E5F1F4FFE01C49180E28C0F5D -:1036E000883048F4C7708E2D01C0880FCA95EAF75C -:1036F0000E941E1E14C08C2F0E9483142DC00E5FCA -:103700001F4FFE01C49180E28C0F883058F4C770BF -:103710008E2D01C0880FCA95EAF70E94241E0E94D0 -:10372000451E1AC08C2F0E944B1516C00E5F1F4FEE -:10373000FE01C491CC2381F08FE99FE00197F1F75E -:1037400000C00000C150F6CF0E5F1F4FFE01F49085 -:1037500003C00E9483148E018F2D882309F49FCF0C -:10376000EFE9FFE03197F1F700C000008150F5CF9D -:10377000DF91CF911F910F91FF90EF9008950895E1 -:103780006093C4017093C5018093C6019093C701F3 -:103790000C94EC170F931F930091C4011091C50175 -:1037A0002091C6013091C701DC01CB01802B912B08 -:1037B000A22BB32B8093C4019093C501A093C601A3 -:1037C000B093C7011F910F910C94EC170F931F93A7 -:1037D0000091C4011091C5012091C6013091C7012B -:1037E000DC01CB0180239123A223B3238093C40166 -:1037F0009093C501A093C601B093C7011F910F918B -:103800000C94EC170F931F930091C4011091C50104 -:103810002091C6013091C701DC01CB01802791279F -:10382000A227B3278093C4019093C501A093C6013A -:10383000B093C7011F910F910C94EC171092C00127 -:103840001092C1011092C2011092C3010C94EC17A6 -:1038500041E050E060E070E004C0440F551F661F77 -:10386000771F8A95D2F74093C0015093C1016093AE -:10387000C2017093C3010C94EC1741E050E060E08A -:1038800070E004C0440F551F661F771F8A95D2F75A -:103890008091C0019091C101A091C201B091C3017A -:1038A000482B592B6A2B7B2B4093C0015093C101AD -:1038B0006093C2017093C3010C94EC1741E050E097 -:1038C00060E070E004C0440F551F661F771F8A95A3 -:1038D000D2F740955095609570958091C001909178 -:1038E000C101A091C201B091C301482359236A23A9 -:1038F0007B234093C0015093C1016093C201709338 -:10390000C3010C94EC1741E050E060E070E004C0AB -:10391000440F551F661F771F8A95D2F78091C0010B -:103920009091C101A091C201B091C30148275927CC -:103930006A277B274093C0015093C1016093C20165 -:103940007093C3010C94EC170F931F930091C00167 -:103950001091C1012091C2013091C301DC01CB0162 -:10396000802B912BA22BB32B8093C0019093C1018C -:10397000A093C201B093C3011F910F910C94EC1757 -:103980000F931F930091C0011091C1012091C201BA -:103990003091C301DC01CB0180239123A223B32307 -:1039A0008093C0019093C101A093C201B093C30161 -:1039B0001F910F910C94EC170F931F930091C0016E -:1039C0001091C1012091C2013091C301DC01CB01F2 -:1039D00080279127A227B3278093C0019093C1012C -:1039E000A093C201B093C3011F910F910C94EC17E7 -:1039F0000895CF92DF92EF92FF920F931F93CF9390 -:103A0000DF938C01C090C401D090C501E090C60145 -:103A1000F090C7018091C0019091C101A091C201B5 -:103A2000B091C301C82AD92AEA2AFB2ACFE1D0E003 -:103A3000D701C6010C2E04C0B695A795979587951A -:103A40000A94D2F780FF06C0B8018C2F0E94520A58 -:103A5000019721F4219760F780E001C08C2FDF915E -:103A6000CF911F910F91FF90EF90DF90CF9008952D -:103A7000CF93DF93EC010E94F91CBE010E94520A11 -:103A8000DF91CF910895CB010E94381D0895809158 -:103A9000C80185958595859508958091C8018770A1 -:103AA000089598E0899F90011124262B2093C80146 -:103AB0000C943D1C2091C801809582238093C801FD -:103AC000982F977069F430E0482F552747FD50959F -:103AD0002417350729F08595859585950C945E1CEE -:103AE00008959091C801977081E009F480E00895ED -:103AF00090910C01992321F090910D01911109C031 -:103B000020910E0130910F01F90132969FEF40E0B4 -:103B10001FC0982F9695969596959F3050F5E091F9 -:103B20000E01F0910F01E90FF11D877021E030E0E7 -:103B3000A90102C0440F551F8A95E2F7CA0191817D -:103B4000892B818308959F3F39F04F5F4E3041F0BC -:103B500051915813F8CF0DC05111F7CF942FF5CFD5 -:103B60009F3F39F0F901E90FF11D97FDFA95828326 -:103B70000895089590910C01992321F090910D01E1 -:103B8000911109C020910E0130910F01F901329677 -:103B9000205F3F4F1FC0982F9695969596959F3022 -:103BA000F0F4E0910E01F0910F01E90FF11D877023 -:103BB00021E030E0A90102C0440F551F8A95E2F7C9 -:103BC000CA01809591818923818308953196E217F6 -:103BD000F30729F090819813F9CF1082F7CF089559 -:103BE00081E090E0E0910E01F0910F01E80FF91FE4 -:103BF0001082019680319105A9F708959091DC011A -:103C0000892B8093DC01089580959091DC018923B4 -:103C10008093DC0108951092DC0108959091DB01FE -:103C2000892B8093DB01089580959091DB01892396 -:103C30008093DB0108951092DB0108959091DA01E1 -:103C4000892B8093DA01089580959091DA01892378 -:103C50008093DA0108951092DA0108958093C901E2 -:103C600008951092C901089580910E0190910F015D -:103C7000FC0131969C01205F3F4F80E091919111B2 -:103C80008F5FE217F307D1F70895E0910E01F091ED -:103C90000F018091DC018083E0910E01F0910F0112 -:103CA00090818091DB01892B8083E0910E01F0915E -:103CB0000F0190818091DA01892B80838091C90165 -:103CC000882361F0E0910E01F0910F019081892B22 -:103CD00080830E94341E81111092C90180910E01CF -:103CE00090910F010C94731320E0009739F0AC0110 -:103CF00041505109842395232F5FF7CF822F0895D8 -:103D0000CF92DF92EF92FF926C01EE24FF24C11458 -:103D1000D104E104F10421F0C701B60120E101C0A2 -:103D200020E0C72ED82EE92EFF24C114D104E104CF -:103D3000F10419F0285FC701B6016B017C0154E062 -:103D4000F694E794D794C7945A95D1F7C114D10447 -:103D5000E104F10419F02C5FC701B6016B017C018D -:103D600042E0F694E794D794C7944A95D1F7C114EA -:103D7000D104E104F10419F02E5FC701B601DC01A2 -:103D8000CB01B695A79597958795892B8A2B8B2B79 -:103D900009F02F5F822FFF90EF90DF90CF90089572 -:103DA0008091F601843021F11092DE0120E488E157 -:103DB00090E00FB6F894A895809360000FBE209312 -:103DC000600080E00E94640C83B7817F846083BFC1 -:103DD00083B7816083BF7894889583B78E7F83BFD4 -:103DE00088E10FB6F89480936000109260000FBED7 -:103DF000089508950E941A050E942D050E94F91E3B -:103E00000E94220691E0811101C090E0892F08955F -:103E10000E9400180E9467130C94640C82E084BD19 -:103E200093E095BD9AEF97BD80936E0008952FB7EC -:103E3000F8948091DF019091E001A091E101B091AF -:103E4000E2012FBF0895CF92DF92EF92FF920F937E -:103E50001F932FB7F8944091DF015091E0016091DA -:103E6000E1017091E2012FBF6A017B01EE24FF2482 -:103E70008C0120E030E0C016D106E206F30610F413 -:103E8000415051099A01281B390BC9011F910F910B -:103E9000FF90EF90DF90CF9008951F920F920FB692 -:103EA0000F9211248F939F93AF93BF938091DF0163 -:103EB0009091E001A091E101B091E2010196A11D74 -:103EC000B11D8093DF019093E001A093E101B093D5 -:103ED000E201BF91AF919F918F910F900FBE0F9014 -:103EE0001F9018950E946410F8942FEF87EA91E6CE -:103EF000215080409040E1F700C0000087E090EB47 -:103F0000DC018093FF0190930002A0930102B09323 -:103F100002029CE088E10FB6F894A89580936000B7 -:103F20000FBE90936000FFCF0E94CC1F811102C092 -:103F30000E94B21F0E94D71F8093DD010E94DF1FE5 -:103F400090E09093F1018093F00187FB882780F93E -:103F500080930D010E94DB1F682F70E080E090E0ED -:103F60000C94C01B6DEE7EEF80E090E00E941A265C -:103F700060E082E090E00E94082660E083E090E04C -:103F80000E94082660E084E090E00E94082660E03D -:103F900085E090E00C94082680E090E00E940226E4 -:103FA00021E08D3E9E4F09F020E0822F089582E0AF -:103FB00090E00C94FA2583E090E00C94FA2584E0DC -:103FC00090E00C94FA25682F84E090E00C94082689 -:103FD0008091E50180FF0BC06091130185E0689F2F -:103FE000B001112475956795759567952BC081FF74 -:103FF00009C06091130185E0689FB0011124759597 -:10400000679520C082FF07C06091130185E0689F1B -:10401000B001112417C09091E6019923D1F060916D -:104020001201961788F72091130185E0289F9001CF -:104030001124929FA001939F500D112470E0CA019A -:104040000E94CC256038710540F46115710539F086 -:1040500002C065E070E0862F08958FE7089581E043 -:1040600008958091E50180FF08C06091110170E022 -:10407000759567957595679521C081FF06C060911C -:10408000110170E07595679519C082FF04C06091B9 -:10409000110170E010C09091E6019923C1F0609188 -:1040A00010019617A0F780911101899FC00111247A -:1040B00070E00E94CC256038710528F46115710507 -:1040C00021F0862F08958FE7089581E0089561E03B -:1040D00070E0F4CF803F21F40E94E81F819504C076 -:1040E000813F29F40E94E81F8093E9010895823FEF -:1040F00021F40E94E81F819504C0833F29F40E94A7 -:10410000E81F8093E8010895893F19F40E94312047 -:1041100005C08A3F31F40E94312081958093EA01E5 -:1041200008958B3F21F40E943120819504C08C3F7B -:1041300029F40E9431208093EB010895843F21F4FB -:104140008091E701816017C0853F21F48091E701EC -:10415000826011C0863F21F48091E70184600BC02A -:10416000873F21F48091E701886005C0883F31F4E2 -:104170008091E70180618093E70108958D3F21F4EC -:104180008091E50181600BC08E3F21F48091E501B3 -:10419000826005C08F3F29F48091E501846080939F -:1041A000E5010895803F39F48091E90187FF6CC0F3 -:1041B0001092E90169C0813F29F48091E901181644 -:1041C000BCF362C09091E801823F29F497FF5CC084 -:1041D0001092E80159C0833F19F41916CCF354C06A -:1041E000893F41F48091EA0118160CF04DC01092FD -:1041F000EA014AC08A3F29F48091EA0187FF44C05E -:10420000F6CF8B3F39F48091EB0187FF3DC01092D0 -:10421000EB013AC08C3F29F48091EB011816BCF3F6 -:1042200033C0843F21F48091E7018E7F17C0853F22 -:1042300021F48091E7018D7F11C0863F21F48091A8 -:10424000E7018B7F0BC0873F21F48091E701877FD7 -:1042500005C0883F31F48091E7018F7E8093E701AC -:1042600013C08D3F21F48091E5018E7F0BC08E3FFE -:1042700021F48091E5018D7F05C08F3F29F4809165 -:10428000E5018B7F8093E5018091E80181110EC0EB -:104290008091E90181110AC08091EA01811106C073 -:1042A0008091EB01811102C01092E601089587EE22 -:1042B00091E00E947E130E94171F9093E401809367 -:1042C000E30108951F93CF93DF938091E3019091D1 -:1042D000E4010E94231FAC019091E601992321F093 -:1042E0002091140130E006C0209115018AE0289F3A -:1042F000900111244217530708F486C08091E80109 -:10430000C091E901D091EA011091EB01811107C040 -:10431000C11176C0D11174C0111172C075C09F3F18 -:1043200019F09F5F9093E601181624F40E94E81F8D -:104330008093E8018091E80187FF05C00E94E81F93 -:1043400081958093E8011C1624F40E94E81F809355 -:10435000E9018091E90187FF05C00E94E81F81956E -:104360008093E9016091E801662339F1C091E90188 -:10437000CC2319F1772767FD7095872F972F0E941F -:10438000DD2423E333E343E35FE30E9441250E94FE -:10439000AA246093E8016C2F772767FD7095872F1B -:1043A000972F0E94DD2423E333E343E35FE30E947E -:1043B00041250E94AA246093E9011D1624F40E945D -:1043C00031208093EA018091EA0187FF05C00E94B5 -:1043D000312081958093EA01111624F40E94312046 -:1043E0008093EB018091EB0187FF05C00E94312093 -:1043F00081958093EB01DF91CF911F910C94572110 -:104400009F3F09F08ECF96CFDF91CF911F910895F6 -:10441000E7EEF1E085E0DF011D928A95E9F7109261 -:10442000E6011092E5010895833081F128F481308E -:1044300059F08230D1F00895853009F449C0B8F1BF -:10444000863009F456C0089580911501262F30E07A -:10445000280F311D2F3F310524F4680F609315019B -:1044600008958FEF80931501089580911401262FF0 -:1044700030E0280F311D2F3F310524F4680F609381 -:10448000140108958FEF8093140108958091130112 -:10449000262F30E0280F311D2F3F310524F4680FFF -:1044A0006093130108958FEF809313010895809115 -:1044B0001201262F30E0280F311D2F3F310524F443 -:1044C000680F6093120108958FEF80931201089591 -:1044D00080911101262F30E0280F311D2F3F31052B -:1044E00024F4680F6093110108958FEF80931101F8 -:1044F000089580911001262F30E0280F311D2F3FA5 -:10450000310524F4680F6093100108958FEF8093B4 -:1045100010010895833011F128F4813049F0823080 -:1045200091F00895853081F120F18630C1F1089530 -:1045300080911501681720F4861B8093150108955A -:1045400010921501089580911401681720F4861BBC -:10455000809314010895109214010895809113011D -:10456000681720F4861B809313010895109213019D -:10457000089580911201681720F4861B8093120120 -:10458000089510921201089580911101681720F486 -:10459000861B809311010895109211010895809156 -:1045A0001001681720F4861B809310010895109263 -:1045B000100108950F931F938D3109F471C008F015 -:1045C00045C0803109F485C008F5873009F46FC013 -:1045D00068F4863009F0ADC08091DD01817F8E7F67 -:1045E0008093DD0181E08093ED01A4C08B3009F45C -:1045F0009EC08E3009F09DC08091DD0182FB222794 -:1046000020F991E0922790FB82F96CC0863109F481 -:104610008EC060F4813109F08CC00E940018909126 -:104620000D0181E0892780930D0181C0893109F452 -:104630007EC08B3109F07DC08091DD0181FB222796 -:1046400020F991E0922790FB81F94CC0853309F461 -:1046500066C048F4873209F462C008F44FC089325A -:1046600009F45DC066C0833438F48A3308F044C06E -:10467000883309F45CC05DC0833409F450C08834C9 -:1046800009F057C00E9400180FEF13ED20E301500E -:1046900010402040E1F700C000000E94721F47C098 -:1046A0000E9464240E9467130E94640C40C0909191 -:1046B000DD01892F8095817080FB90F929F096604B -:1046C00098609093DD0136C0997F977F9093DD01CC -:1046D0002EC08091DD0183FB222720F991E09227F3 -:1046E00090FB83F98093DD01992309F18091DD012D -:1046F00081608093DD011BC0895301C08D5141E071 -:1047000050E060E070E08A019B0104C0000F111FBF -:10471000221F331F8A95D2F7C901B80104C061E096 -:1047200070E080E090E00E94C01B0E94001881E0D1 -:1047300001C080E01F910F91089580E0089580E00E -:1047400008958E518A3030F4E82FF0E0E65DFE4F98 -:104750008081089580E00895CF93C82F8091ED0166 -:10476000813079F018F08230E9F186C0E0910E01D5 -:10477000F0910F018081813169F0823209F07EC0B1 -:1047800009C0E0910E01F0910F018081813111F09B -:10479000823261F48C2F0E949D23811104C08C2FE2 -:1047A0000E94DA221DC081E090E01AC08C2F0E9486 -:1047B0009F23811114C0C43179F048F4CB3079F0D3 -:1047C000C03109F05FC082E08093ED0108C0C932BA -:1047D00019F0C83321F056C01092ED0153C081E0AA -:1047E000817052C0C93281F110F5C43169F1A8F469 -:1047F000C73009F045C08AE08093150194E1909399 -:10480000140193E0909313018093120188E0809348 -:10481000110188E28093100133C082EE8C0F863044 -:1048200078F58C2F0E94A1238093EC0129C0CE340F -:10483000E9F020F4CB3421F56AE013C0C13579F0FA -:10484000C235F1F461E00DC08091EC01882319F0CC -:104850001092EC0115C081E08093ED0115C061E07C -:1048600006C08091EC010E9414220AC06AE0809187 -:10487000EC010E948A2204C01092ED0180E004C085 -:1048800081E002C080E0ACCFCF910895E1E8F0E094 -:104890008081886080838081816080838FB7F89475 -:1048A00093E09093890090ED909388008FBF0895D6 -:1048B000EFE6F0E08081826080830895EFE6F0E02B -:1048C00080818D7F80830895EFE6F0E0908182E023 -:1048D0008927808308951F920F920FB60F9211249B -:1048E0002F933F934F935F936F937F938F939F93F8 -:1048F000AF93BF93EF93FF938091EE019091EF01FF -:1049000001969093EF018093EE01811103C082E044 -:104910000E94640CE091EF01E695E695F0E0E55B1E -:10492000F74FE4918091EE018E1303C080E00E9466 -:10493000640CFF91EF91BF91AF919F918F917F9107 -:104940006F915F914F913F912F910F900FBE0F90FC -:104950001F90189504D06894B1118DC0089570D03F -:1049600088F09F5790F0B92F9927B751A0F0D1F058 -:10497000660F771F881F991F1AF0BA95C9F712C0E2 -:10498000B13081F077D0B1E0089574C0672F782FEF -:104990008827B85F39F0B93FCCF38695779567954E -:1049A000B395D9F73EF490958095709561957F4FBA -:1049B0008F4F9F4F0895E89409C097FB3EF4909560 -:1049C0008095709561957F4F8F4F9F4F9923A9F0E8 -:1049D000F92F96E9BB279395F69587957795679577 -:1049E000B795F111F8CFFAF4BB0F11F460FF1BC0BB -:1049F0006F5F7F4F8F4F9F4F16C0882311F096E94E -:104A000011C0772321F09EE8872F762F05C06623FB -:104A100071F096E8862F70E060E02AF09A95660FB4 -:104A2000771F881FDAF7880F9695879597F908956D -:104A300057FD9058440F551F59F05F3F71F047954F -:104A4000880F97FB991F61F09F3F79F08795089534 -:104A5000121613061406551FF2CF4695F1DF08C053 -:104A6000161617061806991FF1CF86957105610570 -:104A700008940895E894BB2766277727CB0197F918 -:104A800008950BD078C069D028F06ED018F0952327 -:104A900009F05AC05FC01124EECFCADFA0F3959F82 -:104AA000D1F3950F50E0551F629FF001729FBB2715 -:104AB000F00DB11D639FAA27F00DB11DAA1F649FC1 -:104AC0006627B00DA11D661F829F2227B00DA11D74 -:104AD000621F739FB00DA11D621F839FA00D611DFA -:104AE000221F749F3327A00D611D231F849F600D1B -:104AF000211D822F762F6A2F11249F5750408AF054 -:104B0000E1F088234AF0EE0FFF1FBB1F661F771FDF -:104B1000881F91505040A9F79E3F510570F014C076 -:104B2000AACF5F3FECF3983EDCF3869577956795C7 -:104B3000B795F795E7959F5FC1F7FE2B880F911DFD -:104B40009695879597F9089597F99F6780E870E0A3 -:104B500060E008959FEF80EC089500240A941616F3 -:104B6000170618060906089500240A94121613065B -:104B7000140605060895092E0394000C11F48823E9 -:104B800052F0BB0F40F4BF2B11F460FF04C06F5F05 -:104B90007F4F8F4F9F4F089597FB072E16F4009479 -:104BA00007D077FD09D00E94E62507FC05D03EF42A -:104BB000909581959F4F0895709561957F4F0895C9 -:104BC000EE0FFF1F0590F491E02D0994AA1BBB1B6B -:104BD00051E107C0AA1FBB1FA617B70710F0A61BFD -:104BE000B70B881F991F5A95A9F780959095BC011E -:104BF000CD010895F999FECF92BD81BDF89A99270C -:104C000080B50895A8E1B0E042E050E00C9422267F -:104C1000262FF999FECF92BD81BDF89A019700B475 -:104C2000021639F01FBA20BD0FB6F894FA9AF99A15 -:104C30000FBE08950196272F0E9409260C9408267E -:104C4000DC01CB01FC01F999FECF06C0F2BDE1BD4C -:104C5000F89A319600B40D9241505040B8F708953B -:044C6000F894FFCFF6 -:104C64000220660CF40CD10C9D0C690C0101CA01E4 -:104C740028080A03140A404D36390B08BE07880772 -:104C84004F07E206FB0614072D070102030405067D -:044C94000708090004 -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/osx_fr/compiled.hex b/keyboards/ergodox_ez/keymaps/osx_fr/compiled.hex deleted file mode 100644 index 37112ba42..000000000 --- a/keyboards/ergodox_ez/keymaps/osx_fr/compiled.hex +++ /dev/null @@ -1,1158 +0,0 @@ -:100000000C947A020C94BE020C94BE020C94BE02B4 -:100010000C94BE020C94BE020C94BE020C94BE0260 -:100020000C94BE020C94BE020C94620D0C94340E1F -:100030000C94BE020C94BE020C94BE020C94BE0240 -:100040000C94BE020C943E220C94BE020C94BE0290 -:100050000C94BE020C94D11B0C94BE020C94BE02F4 -:100060000C94BE020C94BE020C94BE020C94BE0210 -:100070000C94BE020C94BE020C94BE020C94BE0200 -:100080000C94BE020C94BE020C94BE020C94BE02F0 -:100090000C94BE020C94BE020C94BE020C94BE02E0 -:1000A0000C94BE020C94BE020C94BE02A10EC30EB0 -:1000B000B10FC30EB10F080F2B0FB10F800F930FAD -:1000C0006212621291129112C712E71218141814D8 -:1000D000F2121814A213A2130914181418141214EB -:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300 -:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0 -:10010000C113CE13D513DC13E6130000F0A12E00AB -:100110004C002A00E100344100001E0014000400DD -:100120001D7164004D001F001A0016001B00E10441 -:100130002A00200008000700060050002C002100C3 -:100140001500090019004F004A00220017000A009C -:10015000050000006574500001540000007F00009D -:10016000E3004F000154000000770000E20023008C -:100170001C000B00110000002971240018000D0064 -:10018000100052004B0025000C000E0036425100BA -:100190002800260012000F0037002F002B00270038 -:1001A00013003300387130004E002D003200E300A0 -:1001B000E500C10000000100010001000100010094 -:1001C00000003A00250035023402010001003B0026 -:1001D000350030002F00010001003C002204220005 -:1001E0002206010001003D002D042D002D06010016 -:1001F00001003E000F063200110400000100010062 -:1002000001000000010000000100010001000000E9 -:100210000100000001003F00520051001E000000DC -:1002200001004000240221021E02010001004100E1 -:10023000250222021F0210000100420026022302B2 -:10024000200227020100430030023802370638003E -:100250000100440045000100010001000000010010 -:100260000100010001000100000001000100010087 -:1002700001000100010001000100F2000100010085 -:1002800001000100F000F1000100F4000100010094 -:100290000100F3000100F500010001000100010070 -:1002A0000100000001000100010000000100000049 -:1002B0000100010001000000010000000100010038 -:1002C0000100010001000000010001000100010027 -:1002D0000100A9000100010001000100AC00AA001A -:1002E000B600010001000100AB00A8000100010000 -:1002F0000100010001000100010001000100AE0049 -:1003000001000100000016034500720067006F0045 -:1003100044006F007800200045005A0000001603DA -:100320004500720067006F0044006F0078002000F5 -:1003300045005A0000000403090409026D0004018D -:1003400000A0FA09040000010301010009211101C4 -:100350000001223F000705810308000A090401008B -:100360000103010200092111010001224D000705CE -:10037000820308000A0904020001030000000921A9 -:10038000110100012236000705830308000A090451 -:1003900003000103000000092111010001223900BE -:1003A000070584031000011201100100000008ED90 -:1003B000FE071301000102000105010906A1010564 -:1003C0000719E029E7150025019508750181020547 -:1003D000081901290595057501910295017503918B -:1003E0000105071900297715002501957875018108 -:1003F00002C005010980A101850216010026B7008F -:100400001A01002AB700751095018100C0050C097A -:1004100001A1018503160100269C021A01002A9CF5 -:1004200002751095018100C005010902A1010901B1 -:10043000A10005091901290515002501950575017A -:10044000810295017503810105010930093115818A -:10045000257F95027508810609381581257F95014C -:1004600075088106050C0A38021581257F950175EE -:10047000088106C0C005010906A101050719E02988 -:10048000E715002501950875018102950175088120 -:100490000105081901290595057501910295017558 -:1004A0000391010507190029FF150025FF95067521 -:1004B000088100C0000000000000000000000001F2 -:1004C0000204060A0F17202C3A4A5D71879DB3C7B4 -:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF -:1004E0003A2C20170F0A0604020100000000000049 -:1004F0000000000011241FBECFEFDAE0DEBFCDBF49 -:1005000004B603FE24C08091FB019091FC01A091F0 -:10051000FD01B091FE018730904BA740B04BB9F47C -:100520001092FB011092FC011092FD011092FE014D -:1005300014BE84B7877F84BF88E10FB6F894809398 -:100540006000109260000FBEE0E0FFE3099511E04B -:10055000A0E0B1E0EAE0F8E402C005900D92A43317 -:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0 -:10057000B107E1F70E94A60A0C9403240C94000032 -:100580001092B9008AE08093B800089594EA90939D -:10059000BC009091BC0097FFFCCF9091B900987F70 -:1005A000983021F0903111F081E008958093BB00E4 -:1005B00084E88093BC008091BC0087FFFCCF8091D1 -:1005C000B900887F883111F0803471F780E0089598 -:1005D00084E98093BC008091BC0084FDFCCF089529 -:1005E0008093BB0084E88093BC008091BC0087FFAF -:1005F000FCCF9091B900987F81E0983209F480E0B7 -:10060000089584E88093BC008091BC0087FFFCCFF4 -:100610008091BB00089580910101811115C080E493 -:100620000E94C6028093010181110CC082E10E94E8 -:10063000F00280930101811105C08FEF0E94F0024A -:10064000809301010E94E80284B1807F84B985B162 -:10065000807F85B98AB1837F8AB98BB1837F8BB95B -:100660003E98469808950E94C604809301010E9416 -:100670000B0380B38C7080BB81B3836F81BBA5E318 -:10068000B1E0E3E4F1E08EE08E0F11921D928E1343 -:10069000FCCF0C94B004BF92CF92DF92EF92FF9206 -:1006A0000F931F93CF93DF9380910101882379F0FB -:1006B000809134018F5F80933401811108C00E94C2 -:1006C000C60480930101811102C00E94580405E311 -:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407 -:1006E000E394F12CC730D10500F58091010181110F -:1006F00064C080E40E94C60280930101811112C08F -:1007000082E10E94F0028093010181110BC0C701B8 -:100710000C2E01C0880F0A94EAF780950E94F0021F -:10072000809301010E94E80248C0CA30A1F028F479 -:10073000C83059F0C93061F005C0CC3089F070F094 -:10074000CD3089F0209A289810C0219A29980DC0A0 -:10075000229A2A980AC0239A2B9807C0529A01C05D -:10076000539A5B9802C03E9A469890EA9A95F1F7A0 -:100770009FB1799902C082E001C080E091709D250F -:10078000982B7C9902C084E001C080E0892B7D9980 -:1007900002C038E001C030E0832B7E9902C020E126 -:1007A00001C020E0822B9FB19095991F9927991F36 -:1007B0009295990F907E892B0FC080910101811134 -:1007C00049C080E40E94C60280930101882379F128 -:1007D000B12C0E94E8028B2DF8019081981719F036 -:1007E0008083C09200010E940B0321960F5F1F4F70 -:1007F000CE30D10509F076CF80910001882361F1D8 -:10080000815080930001882339F08FE99FE00197A0 -:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F -:10082000CF01825F91919D938E13FCCF15C083E120 -:100830000E94F002809301018111CACF81E40E94DD -:10084000C602809301018111C3CF0E940103B82E1B -:10085000B094BFCF80E0C0CF0E94560481E0DF910A -:10086000CF911F910F91FF90EF90DF90CF90BF90AD -:100870000895E82FF0E0ED5BFE4F80810895089524 -:100880000F931F93CF93DF93C3E4D1E010E00C2FBD -:10089000025F899190E00E94F71A180F0C13F9CFAC -:1008A000812FDF91CF911F910F9108950C94260510 -:1008B00056985E9825982D9826982E9827982F98C8 -:1008C0008FEF90E0909389008093880090938B0045 -:1008D00080938A0090938D0080938C00259A2D9AA6 -:1008E0002FEF80E792E0215080409040E1F700C078 -:1008F0000000269A2E9A2FEF80E792E02150804048 -:100900009040E1F700C00000279A2F9A2FEF80E770 -:1009100092E0215080409040E1F700C0000025980F -:100920002D982FEF80E792E0215080409040E1F732 -:1009300000C0000026982E982FEF80E792E021500B -:1009400080409040E1F700C0000027982F9856980B -:100950005E9825982D9826982E9827982F98089578 -:1009600089EA8093800089E08093810024982C9804 -:100970003F988AB18F748AB96E98479A8BB1806B11 -:100980008BB9769A0E9458040C94250580E28093D6 -:1009900001018091510181110EC00E94C00281E0CD -:1009A000809351012FEF83ED90E3215080409040E0 -:1009B000E1F700C0000080E40E94C60280930101BC -:1009C00081112EC00E94F00280930101811128C084 -:1009D0000E94F00280930101811122C08FE30E94E6 -:1009E000F0028093010181111BC00E94E80280E4A3 -:1009F0000E94C60280930101811112C08CE00E9406 -:100A0000F0028093010181110BC00E94F0028093DB -:100A10000101811105C08FE30E94F0028093010162 -:100A20000E94E80280910101089561110BC0FC0150 -:100A30008281882321F085EE0E94061103C085EE95 -:100A40000E94CE1180E090E0089508956091BD016C -:100A50007091BE018091BF019091C0010E94031B63 -:100A600056985E9825982D9826982E9827982F9816 -:100A7000813019F0823021F00895259A2D9A089539 -:100A8000269A2E9A089581E0089581E008950C94A5 -:100A9000450508950F931F93CF93DF938C01FC01BD -:100AA000C081D181CE010E947C19BE010E94F30554 -:100AB000EC01B8010E944705882309F48DC0F801B4 -:100AC0008281882309F44AC080915D0181111FC091 -:100AD000C431F0E5DF0709F051C00E94490581E00B -:100AE00080935D010E949B1B90935C0180935B014E -:100AF0001092540110925601109255011092580113 -:100B00001092570110925A011092590165C08091BC -:100B10005B0190915C010E94A71B883C910570F4D9 -:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB -:100B3000D183C0838F5F809354014EC0C43880E559 -:100B4000D80721F0C538D04501F13AC0F8018281BB -:100B5000882341F01092520182E01EC0C438E0E5C3 -:100B6000DE0759F580915201811106C086E20E948C -:100B7000061186E20E94CE1182E01CC0C438F0E566 -:100B8000DF0741F3C538D045D9F4F80182818823C5 -:100B900031F01092530180E20E941D121DC080911D -:100BA0005301811106C087E20E94061187E20E946C -:100BB000CE1180E20E9424120FC0C538D04529F31F -:100BC00081E08093520180935301C801DF91CF915E -:100BD0001F910F910C94430580E0DF91CF911F91FD -:100BE0000F910895089596E0799FF001112494E5FE -:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F -:100C0000E25FFE4F859194910895880F991FFC0132 -:100C1000E657F040859194910895880F991FFC0143 -:100C2000E65FFE4F8591949108950F931F93CF93A4 -:100C3000DF93EC01811520E3920750F5C11580E2A6 -:100C4000D80708F0C3C0CB3BD10590F4C83AD10512 -:100C500008F06AC0C53AD10508F05BC0C430D105C0 -:100C600008F0D0C1219709F0CAC101E010E00AC222 -:100C7000CF3FD10511F008F0C5C1C03FD10508F044 -:100C8000A2C0CE01805E9109089708F4BBC1B7C12C -:100C9000C13090E5D90709F4A2C020F5C0318FE436 -:100CA000D80770F4C11590E4D90708F094C0C115B5 -:100CB00021E3D20708F0A3C1DD278E01106CE2C149 -:100CC000C115D04509F09BC10E9483148FEF94E3B6 -:100CD0002CE0815090402040E1F700C000000E94CD -:100CE000F61BD0C1C11597E5D90758F4C03121E5ED -:100CF000D20708F01CC1C43180E5D80708F475C0DC -:100D00007EC1CE0190578115904108F078C1DF7007 -:100D100073C1C53AD10509F477C1C63AD10509F0C6 -:100D200076C102E810E4AEC1C83AD10509F472C137 -:100D3000C93AD10509F471C1CA3AD10509F470C1A3 -:100D4000CB3AD10509F46FC1CC3AD10509F46EC193 -:100D5000CD3AD10509F46DC1C03BD10509F46CC190 -:100D6000CE3AD10509F46BC1CF3AD10509F46AC175 -:100D7000C13BD10509F469C1C23BD10509F468C181 -:100D8000C33BD10509F467C1C43BD10509F466C171 -:100D9000C53BD10509F465C1C63BD10509F464C161 -:100DA000C73BD10509F463C1C83BD10509F462C151 -:100DB000C93BD10509F461C1CA3BD10509F460C141 -:100DC00000E014E45FC18E0110655CC1CE019F702C -:100DD0000E940D0658C1DF708E01106A53C18091C8 -:100DE000DA0181608093DA014DC10E949B1D81115F -:100DF00002C00E94811D0E94B81D90E09093FB01EB -:100E00008093FA01C23080E5D80721F48091FA017D -:100E1000816086C0C43090E5D90721F48091FA0141 -:100E200082607EC0C63020E5D20721F48091FA01AD -:100E3000846076C0C83080E5D80719F48091FA0143 -:100E400027C0CA3090E5D90721F48091FA0180616A -:100E500067C0CC3020E5D20721F48091FA0180628E -:100E60005FC0CE3080E5D80721F48091FA0180641C -:100E700057C0C03190E5D90721F48091FA0180680C -:100E80004FC0C23120E5D20729F48091FA01846075 -:100E9000886046C0C33080E5D80721F48091FA010C -:100EA0008E7F3EC0C53090E5D90721F48091FA01CC -:100EB0008D7F36C0C73020E5D20721F48091FA013A -:100EC0008B7F2EC0C93080E5D80719F48091FA01D4 -:100ED00026C0CB3090E5D90721F48091FA018F7EAE -:100EE0001FC0CD3020E5D20721F48091FA018F7D1B -:100EF00017C0CF3080E5D80721F48091FA018F7BAD -:100F00000FC0C13190E5D90721F48091FA018F77A4 -:100F100007C0C331D04531F48091FA018B7F877FC0 -:100F20008093FA018091FA010E94BC1DABC08D2F05 -:100F300099278F70992781309105D9F49E012370EC -:100F4000332702C0880F991F2A95E2F79C688E010B -:100F500044E0000F111F4A95E1F700271370802B22 -:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA -:100F70002FC08230910531F4DC2FCC278E01016F18 -:100F8000106A80C08330910569F4CE01837099277F -:100F900001E010E002C0000F111F8A95E2F7C801BE -:100FA0009C680FC084309105B9F4CE0183709927F5 -:100FB00001E010E002C0000F111F8A95E2F7C8019E -:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029 -:100FD0008C010C2B1D2B56C08530910531F4DC2F74 -:100FE000CC278E01046F106A4DC0069709F04AC0E5 -:100FF000CF71DD27DC2FCC278E01106243C000E0CB -:1010000010E040C08E013EC001E810E43BC003E8A0 -:1010100010E438C002EE14E435C009EE14E432C026 -:101020000AEE14E42FC005EB14E42CC006EB14E424 -:1010300029C007EB14E426C00CEC14E423C00DEC2B -:1010400014E420C003E815E41DC00AE815E41AC042 -:1010500002E915E417C004E915E414C001E216E43E -:1010600011C003E216E40EC004E216E40BC005E270 -:1010700016E408C006E216E405C007E216E402C062 -:101080000AE216E4C801DF91CF911F910F910895F4 -:1010900096E0799FF001112494E5899FE00DF11D00 -:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149 -:1010B0009491803E9105E0F4803C910558F5813390 -:1010C000910509F46FC048F48932910509F463C0B1 -:1010D0008A32910509F46DC072C089339105E9F037 -:1010E00082389105D1F08533910509F44DC067C070 -:1010F000833E910581F138F4803E9105B9F0823E3E -:101100009105D9F05CC0863E910561F1873E91055D -:10111000A1F155C00E94050608952091FA0120FD15 -:1011200002C021FF4CC080EE90E049C08091FA01DE -:1011300080FFF9CF89E390E042C08091FA0182FFFD -:101140000EC08091FA0184FF03C080E090E037C0B8 -:1011500083EE90E034C08091FA0182FFF2CF82EEFC -:1011600090E02DC08091FA0183FF0BC08091FA01BD -:1011700084FDEBCF87EE90E022C08091FA0183FFDF -:10118000F5CF86EE90E01BC08091FA0185FF07C085 -:1011900089E290E014C08091FA0185FFF9CF85E3E0 -:1011A00090E00DC08091FA0186FF07C08AE290E0CE -:1011B00006C08091FA0186FFF9CF81E390E00E949A -:1011C0001506089508950C94E20880916E01089523 -:1011D000CF93DF9300D01F92CDB7DEB79C018091F3 -:1011E000F101843019F593E099833B832A8390932E -:1011F000E9008FEF9091E800815095FD06C095EDD4 -:101200009A95F1F700008111F5CF8091E80085FFF4 -:101210000DC040E050E063E070E0CE0101960E9416 -:10122000520B8091E8008E778093E8000F900F902A -:101230000F90DF91CF910895CF93DF9300D01F924D -:10124000CDB7DEB72091F101243021F522E02983CA -:101250009B838A8383E08093E9008FEF9091E8007D -:10126000815095FD06C095ED9A95F1F7000081112A -:10127000F5CF8091E80085FF0DC040E050E063E0CD -:1012800070E0CE0101960E94520B8091E8008E77AB -:101290008093E8000F900F900F90DF91CF91089509 -:1012A0002091F1012430F1F422E02093E9002FEFA6 -:1012B0003091E800215035FD06C035ED3A95F1F743 -:1012C00000002111F5CF2091E80025FF0BC040E080 -:1012D00050E065E070E00E94520B8091E8008E774C -:1012E0008093E8000895CF93DF93EC019091F10192 -:1012F000943009F046C080910C018823D9F0809188 -:101300000D018823B9F09093E9008FEF9091E800E8 -:10131000815095FD06C095E19A95F1F70000811185 -:10132000F5CF8091E80085FF2CC040E050E060E1FF -:1013300070E017C081E08093E9008FEF9091E800A2 -:10134000815095FD06C095ED9A95F1F70000811149 -:10135000F5CF8091E80085FF14C040E050E068E0E0 -:1013600070E0CE010E94520B8091E8008E7780934E -:10137000E80080E1FE01AEE5B1E001900D928A95B2 -:10138000E1F7DF91CF9108958091F001811109C0BB -:101390000E94E70C0E94440D8091E20084608093DB -:1013A000E20008951092F001089508950C942B2204 -:1013B0000E948C1B0E9431220E94EA0F0C94E308C9 -:1013C00042E061EC81E00E94610C42E061EC82E06D -:1013D0000E94610C42E061EC83E00E94610C42E1FA -:1013E00061EC84E00C94610C8091F301833009F48A -:1013F00055C030F4813071F0823009F48EC0089508 -:101400008A3009F47AC08B3009F460C0893009F061 -:101410009CC020C08091F201813A09F096C0809171 -:10142000E800877F8093E8008091F6019091F701B2 -:10143000892B21F460E18EE591E003C060E080E05B -:1014400090E070E00E949D0B8091E8008B77809384 -:10145000E80008958091F201813209F076C0809110 -:10146000F6019091F701009719F0039709F06DC00C -:101470008091E800877F8093E8008091E80082FDFA -:1014800005C08091F1018111F8CF5FC08091F1001A -:1014900080936E018091E8008B7753C08091F201B8 -:1014A000813A09F052C08091F6019091F701892BA1 -:1014B00009F04BC08091E800877F8093E80080911D -:1014C000E80080FFFCCF80910C0136C08091F201D2 -:1014D0008132D9F58091F6019091F701892BA9F518 -:1014E0008091E800877F8093E8000E94960C8091AD -:1014F000F40180930C010C9483148091F2018132E9 -:1015000021F58091E800877F8093E8000E94960C87 -:101510008091F50180936F0108958091F201813AE5 -:10152000A1F48091E800877F8093E8008091E80033 -:1015300080FFFCCF80916F018093F1008091E800E3 -:101540008E778093E8000C94960C089584B7877F7B -:1015500084BF88E10FB6F894809360001092600019 -:101560000FBE90E080E80FB6F894809361009093EE -:1015700061000FBE0E9439100E94E70C0E94440DCA -:101580008091E20084608093E20078940E94CA0F08 -:101590000E943B1082E091E00E94E50F0E94192218 -:1015A0008091F101853069F40E94531B8091EF0115 -:1015B0008823B1F30E947E1B882391F30E943C0B89 -:1015C000EFCF0E944110ECCF292F33272330310574 -:1015D000C9F064F42130310581F02230310509F081 -:1015E00043C08DE690E02AE333E042C0213231056A -:1015F000F1F02232310541F137C082E190E027EA73 -:1016000033E036C099278130910541F08230910551 -:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4 -:1016200002C0E6E0F3E0849190E09F0121C06430C5 -:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5 -:10164000318189E090E014C0643070F470E0FB01F7 -:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47 -:10166000FE4F808190E004C080E090E020E030E018 -:10167000FA0131832083089580E189BD82E189BD2B -:1016800009B400FEFDCF8091D8008F7D8093D800F3 -:101690008091E00082608093E0008091E00081FD15 -:1016A000FCCF0895CF92DF92EF92FF920F931F939A -:1016B000CF93DF93EC018B016A010E94B50C81117D -:1016C00033C0C114D10439F0F60180819181081B27 -:1016D000190BC80FD91FE12CF12C0115110519F1B7 -:1016E0008091E80085FD16C08091E8008E77809398 -:1016F000E800C114D10449F0F60180819181E80E1F -:10170000F91EF182E08285E00FC00E94B50C8823AB -:1017100021F30AC089918093F10001501109FFEF74 -:10172000EF1AFF0ADACF80E0DF91CF911F910F917E -:10173000FF90EF90DF90CF9008952091F8013091C5 -:10174000F9012617370748F06115710539F4209122 -:10175000E8002E772093E80001C0B90140E0611550 -:101760007105A9F12091F101222309F443C025302C -:1017700009F442C02091E80023FD40C02091E80018 -:1017800022FD32C02091E80020FFE9CF4091F30014 -:101790002091F20030E0342BFC01CF01611571057E -:1017A00059F02830310540F481918093F100615067 -:1017B00071092F5F3F4FF1CF41E02830310509F02B -:1017C00040E02091E8002E772093E800C8CF411137 -:1017D000C9CF0AC08091F101882361F0853061F0A2 -:1017E0008091E80083FD0AC08091E80082FFF2CF7B -:1017F00080E0089582E0089583E0089581E00895EF -:101800002091F8013091F9012617370748F061154A -:10181000710539F42091E8002E772093E80001C08B -:10182000B901FC0120E06115710591F18091F10190 -:10183000882309F440C0853009F43FC08091E80056 -:1018400083FD3DC08091E80082FD2FC08091E800BB -:1018500080FFE9CF2091F3008091F20090E0922B7D -:101860006115710559F08830910540F42491209359 -:10187000F1003196615071090196F2CF21E008978D -:1018800009F020E08091E8008E778093E800CBCFCC -:101890002111CCCF0AC08091F101882361F08530FD -:1018A00061F08091E80083FD0AC08091E80082FF2A -:1018B000F2CF80E0089582E0089583E0089581E00A -:1018C0000895982F973058F59093E900981739F0BC -:1018D0007091EC002091ED005091F00003C0242F96 -:1018E000762F50E021FF19C03091EB003E7F3093FE -:1018F000EB003091ED003D7F3093ED003091EB0037 -:1019000031603093EB007093EC002093ED00509326 -:10191000F0002091EE0027FF07C09F5FD3CF8F70AC -:101920008093E90081E0089580E008958091F201BC -:1019300087FF11C08091E80082FD05C08091F10110 -:101940008111F8CF11C08091E8008B770BC0809196 -:10195000F101882349F08091E80080FFF8CF809161 -:10196000E8008E778093E80008952091E40030919C -:10197000E50095E64091EC00842F817040FF22C085 -:101980008091E80080FD1CC08091F101882391F0D6 -:10199000853091F08091EB0085FD10C04091E4000E -:1019A0005091E5004217530729F39A01915011F71E -:1019B00084E0089582E0089583E0089581E0089529 -:1019C00080E008954091E80042FFDECF08950E9434 -:1019D000550D0E945D0DE0EEF0E080818160808316 -:1019E000E8EDF0E080818F77808319BCA7EDB0E04F -:1019F0008C918E7F8C9380818F7E80831092F001FA -:101A000008950F931F93CF93DF930E94550D0E946B -:101A10005D0DC8EDD0E088818F77888388818068EC -:101A2000888388818F7D888319BC1092F101109280 -:101A3000ED011092EF011092EE0100EE10E0F801BE -:101A400080818B7F808388818160888342E060E031 -:101A500080E00E94610CE1EEF0E080818E7F808367 -:101A6000E2EEF0E080818160808380818860808305 -:101A7000F80180818E7F8083888180618883DF91F7 -:101A8000CF911F910F910895E8EDF0E080818F7E56 -:101A90008083E7EDF0E080818160808384E082BF15 -:101AA00081E08093F0010C94010DE8EDF0E080817D -:101AB0008E7F80831092E20008951092DA001092D7 -:101AC000E10008951F920F920FB60F9211242F93E9 -:101AD0003F934F935F936F937F938F939F93AF93B6 -:101AE000BF93EF93FF938091E10082FF0BC0809141 -:101AF000E20082FF07C08091E1008B7F8093E100CC -:101B00000E94C90F8091DA0080FF1FC08091D80029 -:101B100080FF1BC08091DA008E7F8093DA00809175 -:101B2000D90080FF0DC080E189BD82E189BD09B483 -:101B300000FEFDCF81E08093F1010E94C40905C041 -:101B400019BC1092F1010E94D2098091E10080FF3E -:101B500019C08091E20080FF15C08091E2008E7F65 -:101B60008093E2008091E20080618093E2008091A6 -:101B7000D80080628093D80019BC85E08093F10181 -:101B80000E94D6098091E10084FF30C08091E2007C -:101B900084FF2CC080E189BD82E189BD09B400FECB -:101BA000FDCF8091D8008F7D8093D8008091E10097 -:101BB0008F7E8093E1008091E2008F7E8093E2002F -:101BC0008091E20081608093E2008091ED018823A2 -:101BD00011F084E007C08091E30087FD02C081E03E -:101BE00001C083E08093F1010E94D8098091E10057 -:101BF00083FF29C08091E20083FF25C08091E1002E -:101C0000877F8093E10082E08093F1011092ED01E3 -:101C10008091E1008E7F8093E1008091E2008E7FD1 -:101C20008093E2008091E20080618093E20042E0D4 -:101C300060E080E00E94610C8091F00088608093F9 -:101C4000F0000E94D509FF91EF91BF91AF919F9154 -:101C50008F917F916F915F914F913F912F910F9055 -:101C60000FBE0F901F9018951F920F920FB60F92F4 -:101C700011242F933F934F935F936F937F938F9391 -:101C80009F93AF93BF93CF93DF93EF93FF93C09155 -:101C9000E900CF708091EC00D82FD17080FDD0E8A2 -:101CA0001092E9008091F000877F8093F000789493 -:101CB0000E94780E1092E9008091F0008860809375 -:101CC000F000CD2BCF70C093E900FF91EF91DF9131 -:101CD000CF91BF91AF919F918F917F916F915F91C4 -:101CE0004F913F912F910F900FBE0F901F9018951D -:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3 -:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115 -:101D1000F10091938E13FBCF0E94F4098091E800AB -:101D200083FF1FC18091F2019091F301492F50E090 -:101D30004A30510508F015C1FA01EA5AFF4F0C94D8 -:101D4000B323803881F0823809F00BC18091F6010D -:101D50008F708093E9008091EB0085FB882780F9E4 -:101D60001092E90006C08091EE019091EF0191116F -:101D700082609091E800977F9093E8008093F10053 -:101D80001092F100C8C0282F2D7F09F0EAC08823E7 -:101D900019F0823061F0E5C08091F401813009F0E2 -:101DA000E0C0933009F080E08093EF012BC0809178 -:101DB000F401811127C08091F6018F7009F4D1C020 -:101DC0008093E9002091EB0020FF1CC0933021F4A8 -:101DD0008091EB00806214C09091EB009061909331 -:101DE000EB0021E030E0A90102C0440F551F8A95A5 -:101DF000E2F74093EA001092EA008091EB008860DD -:101E00008093EB001092E9008091E800877F86C004 -:101E10008111A7C01091F4011F778091E3008078B1 -:101E2000812B8093E3008091E800877F8093E80016 -:101E30000E94960C8091E80080FFFCCF8091E30027 -:101E400080688093E300111102C082E001C083E04A -:101E50008093F10186C08058823008F082C0809162 -:101E6000F4019091F5018C3D53E0950779F583E0FD -:101E70008A838AE289834FB7F894DE01139620E0C3 -:101E80003EE051E2E32FF0E050935700E49120FF51 -:101E900003C0E295EF703F5FEF708E2F90E0EA3065 -:101EA00010F0C79601C0C0968D939D932F5F24318B -:101EB00049F74FBF8091E800877F8093E8006AE28E -:101EC00070E0CE0101960E949D0B14C0AE014F5FE1 -:101ED0005F4F6091F6010E94E40ABC01009709F48B -:101EE00040C09091E800977F9093E80089819A81A3 -:101EF0000E94000C8091E8008B778093E80031C04D -:101F0000803879F58091E800877F8093E8008091A0 -:101F1000ED018093F1008091E8008E778093E800D6 -:101F20000E94960C1EC081111CC09091F401923049 -:101F3000C0F48091E800877F8093E8009093ED01E2 -:101F40000E94960C8091ED01811106C08091E30002 -:101F500087FD02C081E001C084E08093F1010E940E -:101F6000E0098091E80083FF0AC08091E800877F44 -:101F70008093E8008091EB0080628093EB00AA964A -:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A -:101F900008950895CF938091F1018823A1F0C09115 -:101FA000E900CF709091EC00892F817090FD80E85E -:101FB000C82B1092E9008091E80083FD0E94780E02 -:101FC000CF70C093E900CF910895909375018093ED -:101FD00074010895E0917401F0917501309721F03A -:101FE0000190F081E02D099480E00895E091740162 -:101FF000F0917501309721F00280F381E02D099472 -:102000000895E0917401F0917501309721F00480FA -:10201000F581E02D099408952091720130917301AA -:102020008217930771F09093730180937201E0918E -:102030007401F0917501309721F00680F781E02D51 -:1020400009940895209170013091710182179307CE -:1020500071F09093710180937001E0917401F0919F -:102060007501309721F00084F185E02D09940895E1 -:1020700008950C9438100E94921B0E9433030C9414 -:10208000541C9F92AF92BF92CF92DF92EF92FF9239 -:102090000F931F93CF93DF9300D000D000D0CDB724 -:1020A000DEB70E944B030DE010E0AA24A394B12CEC -:1020B000902E802F0E943904980129583E4F6901C3 -:1020C000F901F080F826A1F40150110988F78FEF8B -:1020D00089838A831B820E949B1B8160782F9D834A -:1020E0008C8349815A816B818D810E94D8102FC0C9 -:1020F0009091DA0191FF04C08E830E943F048E818B -:1021000025E030E0A501022E01C0440F0A94EAF751 -:10211000E42E4F21C1F029839A828E2191E009F4A7 -:1021200090E09B830E949B1B8160782F9D838C8312 -:1021300049815A816B818D810E94D810F60180817E -:10214000E826E08204C021503109E0F6BDCF0E94AC -:102150003B1F109176010E94EA0F1817B9F00E94F8 -:10216000EA0F8093760126960FB6F894DEBF0FBE75 -:10217000CDBFDF91CF911F910F91FF90EF90DF9036 -:10218000CF90BF90AF909F900C94E30826960FB627 -:10219000F894DEBF0FBECDBFDF91CF911F910F919D -:1021A000FF90EF90DF90CF90BF90AF909F900895F9 -:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82 -:1021C0000FBECDBF4F83588769877A878B87DE0123 -:1021D000119686E0FD0111928A95E9F785E0FE01EE -:1021E000379601900D928A95E1F749815A816B816A -:1021F0007C818D819E810E9421172B960FB6F894C9 -:10220000DEBF0FBECDBFDF91CF910895CF9388235E -:1022100009F4C2C0C82F823859F40E94EA0F81FD28 -:10222000BBC089E30E94FB190E94C81A89E30CC055 -:10223000833879F40E94EA0F80FDAEC083E50E94E6 -:10224000FB190E94C81A83E50E943D1ACF910C9495 -:10225000C81A843859F40E94EA0F82FD9DC087E4B1 -:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6 -:10227000813A48F48C2F0E947E2181118DC08C2FD1 -:102280000E94FB19E3CF80E28C0F883048F4C770BE -:1022900081E001C0880FCA95EAF70E94811AD6CF63 -:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB -:1022B00083E890E005C081E890E002C082E890E009 -:1022C000CF910C940C1088E58C0F833108F064C01A -:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118 -:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186 -:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106 -:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173 -:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB -:1023200038C082EE90E035C089EE90E032C08AEE8F -:1023300090E02FC085EB90E02CC086EB90E029C0A8 -:1023400087EB90E026C08CEC90E023C08DEC90E011 -:1023500020C083E891E01DC08AE891E01AC082E9BC -:1023600091E017C084E991E014C081E292E011C0CD -:1023700083E292E00EC084E292E00BC085E292E03C -:1023800008C086E292E005C087E292E002C08AE2DD -:1023900092E0CF910C942210CF910895882309F4F4 -:1023A0004BC0823859F40E94EA0F81FF45C089E38F -:1023B0000E94FB190E94C81A89E30CC0833871F48B -:1023C0000E94EA0F80FF38C083E50E94FB190E943B -:1023D000C81A83E50E943D1A0C94C81A843859F42F -:1023E0000E94EA0F82FF28C087E40E94FB190E9426 -:1023F000C81A87E4EFCF9CEF980F913A58F390E218 -:10240000980F983050F4877091E001C0990F8A9529 -:10241000EAF7892F0E94871ADFCF9BE5980F933048 -:1024200020F480E090E00C940C10885A833120F462 -:1024300080E090E00C9422100895882321F00E94FF -:10244000811A0C94C81A0895882321F00E94871AD3 -:102450000C94C81A08957F928F929F92AF92BF9268 -:10246000CF92DF92EF92FF920F931F93CF93DF9360 -:102470001F92CDB7DEB77C01C62E772EFC010581F9 -:1024800002950F70128111110E949E1A0E94F41978 -:10249000882379F0112369F080E28C0D883048F0B0 -:1024A00082E00E94DD190E94F41991E0D82ED9260D -:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C -:1024C0000C94B323872D807F072D0F70882311F084 -:1024D0000295007F112389F0002309F490C180E266 -:1024E0008C0D883020F4802F0E94811A03C0802F29 -:1024F0000E94911A0E94C81A82C18C2D0E94CE118E -:10250000002309F495C180E28C0D883020F4802FDF -:102510000E94871A03C0802F0E94971A0E94C81A2F -:1025200087C1972D907F872D8F70903211F0829503 -:10253000807FCC2021F0F1E0CF16B1F01EC0112336 -:1025400049F0002309F414C1013009F011C10E94BF -:10255000B11A6EC1002319F0013009F469C18983F1 -:102560000E94B41A89810AC1112321F0023008F0B7 -:102570005FC1FEC001115CC101C1112321F0002324 -:1025800009F4F6C03CC1002309F4F8C03EC1872D10 -:1025900086958695837090E0009719F0019761F019 -:1025A00047C1112321F08C2D972D937002C080E03C -:1025B00090E00E940C103CC1112321F08C2D972D2E -:1025C000937002C080E090E00E94221031C18C2DF7 -:1025D000112319F00E94431E02C00E94AB1E0E94EC -:1025E000301F26C1872D837009F052C0111120C100 -:1025F0008C2D829586958770880F880F9C2D9F70F3 -:10260000892E912CA12CB12C082E04C0880C991C69 -:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041 -:1026200020E030E0B901A80104C0440F551F661F27 -:10263000771F8A95D2F7CB01BA0160957095809586 -:10264000909503C060E070E0CB01272D269526957C -:10265000237030E02230310569F02330310589F0F4 -:10266000682979298A299B292130310571F00E9436 -:102670006918DEC0682979298A299B290E94851852 -:10268000D7C00E946918C501B4010E944D18D0C07E -:10269000112319F0872D817001C08695882309F4D4 -:1026A000C7C08C2D829586958770880F880F9C2DCA -:1026B0009F70892E912CA12CB12C082E04C0880C5F -:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC -:1026D00010E020E030E0B901A80104C0440F551F0C -:1026E000661F771F8A95D2F7CB01BA016095709566 -:1026F0008095909503C060E070E0CB01272D269572 -:1027000026952370422F50E04230510569F0433046 -:10271000510589F0682979298A299B294130510579 -:1027200071F00E94431984C0682979298A299B295C -:102730000E945F197DC00E944319C501B4010E9427 -:10274000271976C08C2D90E0FC01E05EF109E5319F -:10275000F10508F050C0E059FF4F0C94B3230C2D45 -:102760000F70872D8F71112331F00E94C018802FB8 -:102770000E941D125DC00E94E118802F0E94241249 -:1027800057C0112339F0011153C0872D8F710E945A -:1027900006194EC0023008F04BC0F7CF112339F0B4 -:1027A000872D8F710E94C01843C01123C9F3872D54 -:1027B0008F710E94E1183CC0112329F0872D8F7181 -:1027C0000E94AB1835C00E94A11832C0112351F0ED -:1027D000172D1F71812F0E94C01863E0812F0E9466 -:1027E000D41926C081E00E94DD19023008F182E090 -:1027F0000E94DD191DC0112331F0002389F28C2DB8 -:102800000E94061115C0002391F28C2D0E94CE115A -:102810000FC0472D4F706C2DC7010E9415050E94F7 -:10282000C51706C0472D4F706C2DC7010E94F205D9 -:10283000DD20F9F00E94D01980FD1BC0F701128243 -:102840000E94CA190E94C018C7010E9448140E9421 -:10285000CA190F90DF91CF911F910F91FF90EF90C8 -:10286000DF90CF90BF90AF909F908F907F900C940F -:10287000E1180F90DF91CF911F910F91FF90EF9092 -:10288000DF90CF90BF90AF909F908F907F900895F2 -:102890000F931F93CF93DF93EC01888199812B8154 -:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B -:1028B0000E944A05882371F0688179818A810E948B -:1028C000C6198C010E947B190E944218B801CE01E2 -:1028D0000E942B12DF91CF911F910F9108950E94BA -:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471 -:1028F000E11F0E94301F80E090E00E940C1080E0F9 -:1029000090E00C9422100E948E1A0C946F140E9476 -:10291000BB19292F22952F7030E02C3031054CF453 -:102920002A3031056CF42250310922303105A8F4E7 -:1029300007C02C30310569F02F30310551F00DC042 -:10294000803F69F018F4803E40F409C0843F29F4C8 -:1029500006C093FB882780F9089580E0089581E000 -:102960000895CF93DF9300D000D01F92CDB7DEB78C -:102970000F900F900F900F900F90DF91CF910895CF -:10298000CF93DF9300D000D000D0CDB7DEB726962E -:102990000FB6F894DEBF0FBECDBFDF91CF91089583 -:1029A0001F93CF93DF93C091850116E0809186013C -:1029B000C81799F0D0E01C9FF0011D9FF00D112465 -:1029C000E957FE4F408151816281738184819581F5 -:1029D0000E94C0142196C770E9CFDF91CF911F915B -:1029E00008954091B7015091B8016091B90170917B -:1029F000BA018091BB019091BC010C94C0148091EC -:102A0000BC0182958F7009F054C08091B901882370 -:102A100009F44FC080918501A09186016091B701B2 -:102A20007091B8014091BA015091BB01B6E08A178C -:102A300009F43FC090E041155105C1F17F3F11F409 -:102A40006F3FA1F1B89FF001B99FF00D1124E95734 -:102A5000FE4F218172132AC02081621327C0228178 -:102A6000211124C0238134812417350710F421500B -:102A70003109241B350B283C3105C0F42091BC01E1 -:102A80002F7020612093BC0126E0289FF001299F30 -:102A9000F00D1124E457FE4F80818F708061808398 -:102AA00087EB91E00E9448140C94D0140196877033 -:102AB000BECF0895CF92DF92EF92FF920F931F93B4 -:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32 -:102AD0000FBECDBF8C0185E0F801DE011D9601908F -:102AE0000D928A95E1F7D8014C9111965C9111975E -:102AF00012966C9112971396CD90DC9014973091AA -:102B0000B7017091B8018091BA019091BB01009713 -:102B100009F46BC17F3F19F43F3F09F466C1E090AF -:102B2000B901EE2009F4C0C02091BC01C816D90635 -:102B300028F0F601E81BF90BCF0104C080959095B1 -:102B40008C0D9D1DFF24F394883C910578F0F12CA9 -:102B5000207F09F0C6C07C2DD98AC88A89890E9445 -:102B6000B11487EB91E00E944814B1C0822F807F9E -:102B700009F046C0751314C0341312C0611110C09F -:102B80002F7020612093BC010E94F11487EB91E02B -:102B90000E9448148091BC01D80115968C932EC0D8 -:102BA000CD2819F15F3F11F44F3FF9F0F62E611176 -:102BB0001CC0809185012091860136E0821709F4BE -:102BC0005AC090E0389FF001399FF00D1124E95769 -:102BD000FE4F7181571306C07081471303C0728185 -:102BE000711103C001968770E9CFF62E662309F4B0 -:102BF00018C18091BC0181608093BC01F12C11C18E -:102C0000751308C0341306C0611104C08091BC0163 -:102C1000D801C3C04D875E878D859E856A8B0E94D3 -:102C200087146A898823E1F16623D1F12091BC01E0 -:102C3000822F82958F7090E0029774F08091B70197 -:102C40009091B80198878F831986DB86CA862C8776 -:102C5000CE0107960E94481486E0F801A7EBB1E088 -:102C600001900D928A95E1F70E94FF140E94F114E1 -:102C7000FF24F394D6C04D875E878D859E850E9484 -:102C8000BB19292F22952F7030E0223031050CF02E -:102C9000BCC09F7009F0B6C0805E883008F4C1C027 -:102CA000C8010E944814E4CFC816D90608F453C0DE -:102CB000F601E81BF90BCF01883C910508F450C0E0 -:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E -:102CD000F1E086E0DF011D928A95E9F70E94F11488 -:102CE000A0C0751314C0341312C0611110C08091BC -:102CF000BC01F8018583C8010E94481486E0E7EB17 -:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C -:102D10005E878D859E856A8B0E9487146A898823C9 -:102D200009F4BECF662309F4BBCF2091BC01822FEA -:102D300082958F7090E002970CF48ECF8091B7014E -:102D40009091B8019A8389831B82DD82CC822E8385 -:102D5000CE0101967FCF809590958C0D9D1DACCFB7 -:102D6000F62E662309F49CCF75132EC034132CC0A5 -:102D70002091BC0120FD1FC0822F82958F70D9F059 -:102D8000D80115962C9315978F3049F08F5F982FA7 -:102D90009295907F822F8F70892B15968C93C80106 -:102DA0000E94481486E0F801A7EBB1E001900D9273 -:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7 -:102DC0000D928A95E1F72DC04D875E878D859E8592 -:102DD0000E948714811140CF8091BC018160809353 -:102DE000BC01C8010E9448141CC0662309F458CFD6 -:102DF0004D875E878D859E850E948714882309F400 -:102E00004FCF2ACF811148CF0CC0243031050CF0B0 -:102E100047CF9F7009F440CFF8019581907F09F06A -:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D -:102E3000DF91CF911F910F91FF90EF90DF90CF9096 -:102E400008951F93CF93DF93CDB7DEB72C970FB6BE -:102E5000F894DEBF0FBECDBF4F83588769877A874E -:102E60008B879C87CE0107960E945A15882369F0AC -:102E70008F8198852A853B85232BF1F19F3F09F0AF -:102E800063C08F3F09F060C037C086E0FE0137960F -:102E9000DE01119601900D928A95E1F76F81788598 -:102EA000EA85FB85309741F17F3F11F46F3F21F1B7 -:102EB0002091860130E0C9010196877099274091E1 -:102EC000850150E08417950709F447C069837A8328 -:102ED000FD83EC8396E0929FD001939FB00D112467 -:102EE000A957BE4FFE01319601900D929A95E1F7D8 -:102EF000809386010E94D01416E080918501909104 -:102F000086018917C1F1189FC001112489579E4F6E -:102F10000E945A15882379F1E09185011E9FF001E6 -:102F20001124E957FE4F4081518162817381848170 -:102F300095810E94C0148091850190E00196877070 -:102F4000992780938501D9CF4F81588569857A85E6 -:102F50008B859C850E94C014CFCF0E948314109251 -:102F6000860110928501E7EBF1E086E0DF011D921A -:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45 -:102F8000CDBFDF91CF911F910895EF92FF920F93E4 -:102F90001F93CF93DF938C01009709F46CC0F12C41 -:102FA000EE24E394E8012196F8018491843740F4FB -:102FB000843008F051C0813081F0823019F15BC05B -:102FC000853709F444C0A8F19CE7980F903708F0C2 -:102FD00052C08F770E94CE1141C00E5F1F4FFE017D -:102FE000C49180E28C0F883048F4C7708E2D01C0E8 -:102FF000880FCA95EAF70E94A11A14C08C2F0E946C -:1030000006112DC00E5F1F4FFE01C49180E28C0F90 -:10301000883058F4C7708E2D01C0880FCA95EAF722 -:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3 -:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3 -:103040009FE00197F1F700C00000C150F6CF0E5F7E -:103050001F4FFE01F49003C00E9406118E018F2DB8 -:10306000882309F49FCFEFE9FFE03197F1F700C023 -:1030700000008150F5CFDF91CF911F910F91FF900C -:10308000EF90089508956093C1017093C2018093F9 -:10309000C3019093C4010C946F140F931F9300917C -:1030A000C1011091C2012091C3013091C401DC0122 -:1030B000CB01802B912BA22BB32B8093C10190933A -:1030C000C201A093C301B093C4011F910F910C944E -:1030D0006F140F931F930091C1011091C2012091B1 -:1030E000C3013091C401DC01CB0180239123A223D1 -:1030F000B3238093C1019093C201A093C301B09305 -:10310000C4011F910F910C946F140F931F930091A2 -:10311000C1011091C2012091C3013091C401DC01B1 -:10312000CB0180279127A227B3278093C1019093D9 -:10313000C201A093C301B093C4011F910F910C94DD -:103140006F141092BD011092BE011092BF01109237 -:10315000C0010C946F1441E050E060E070E004C0E6 -:10316000440F551F661F771F8A95D2F74093BD0104 -:103170005093BE016093BF017093C0010C946F1413 -:1031800041E050E060E070E004C0440F551F661F4E -:10319000771F8A95D2F78091BD019091BE01A091D1 -:1031A000BF01B091C001482B592B6A2B7B2B409358 -:1031B000BD015093BE016093BF017093C0010C9498 -:1031C0006F1441E050E060E070E004C0440F551F10 -:1031D000661F771F8A95D2F7409550956095709538 -:1031E0008091BD019091BE01A091BF01B091C0013D -:1031F000482359236A237B234093BD015093BE018A -:103200006093BF017093C0010C946F1441E050E0D3 -:1032100060E070E004C0440F551F661F771F8A9559 -:10322000D2F78091BD019091BE01A091BF01B091F4 -:10323000C001482759276A277B274093BD01509337 -:10324000BE016093BF017093C0010C946F140F9383 -:103250001F930091BD011091BE012091BF013091DB -:10326000C001DC01CB01802B912BA22BB32B8093CF -:10327000BD019093BE01A093BF01B093C0011F9107 -:103280000F910C946F140F931F930091BD01109137 -:10329000BE012091BF013091C001DC01CB01802330 -:1032A0009123A223B3238093BD019093BE01A093E9 -:1032B000BF01B093C0011F910F910C946F140F9335 -:1032C0001F930091BD011091BE012091BF0130916B -:1032D000C001DC01CB0180279127A227B32780936F -:1032E000BD019093BE01A093BF01B093C0011F9197 -:1032F0000F910C946F140895CF92DF92EF92FF928A -:103300000F931F93CF93DF938C01C090C101D09096 -:10331000C201E090C301F090C4018091BD01909181 -:10332000BE01A091BF01B091C001C82AD92AEA2AE2 -:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520 -:10334000A795979587950A94D2F780FF06C0B80194 -:103350008C2F0E944808019721F4219760F780E0A4 -:1033600001C08C2FDF91CF911F910F91FF90EF90B3 -:10337000DF90CF900895CF93DF93EC010E947C19EA -:10338000BE010E944808DF91CF910895CB010E94B1 -:10339000BB1908958091C5018595859585950895FA -:1033A0008091C5018770089598E0899F900111244C -:1033B000262B2093C5010C94C0182091C50180953F -:1033C00082238093C501982F977069F430E0482FCD -:1033D000552747FD50952417350729F08595859584 -:1033E00085950C94E11808959091C501977081E03E -:1033F00009F480E0089590910C01992321F09091B7 -:103400000D01911109C020910E0130910F01F901B8 -:1034100032969FEF40E01FC0982F9695969596950F -:103420009F3050F5E0910E01F0910F01E90FF11D71 -:10343000877021E030E0A90102C0440F551F8A9532 -:10344000E2F7CA019181892B818308959F3F39F06A -:103450004F5F4E3041F051915813F8CF0DC05111CC -:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08 -:1034700097FDFA9582830895089590910C01992300 -:1034800021F090910D01911109C020910E01309110 -:103490000F01F9013296205F3F4F1FC0982F96957C -:1034A000969596959F30F0F4E0910E01F0910F0102 -:1034B000E90FF11D877021E030E0A90102C0440F3F -:1034C000551F8A95E2F7CA018095918189238183EE -:1034D00008953196E217F30729F090819813F9CFF8 -:1034E0001082F7CF089581E090E0E0910E01F09115 -:1034F0000F01E80FF91F1082019680319105A9F79D -:1035000008959091D901892B8093D90108958095D0 -:103510009091D90189238093D90108951092D901FE -:1035200008959091D801892B8093D80108958095B2 -:103530009091D80189238093D80108951092D801E1 -:1035400008959091D701892B8093D7010895809594 -:103550009091D70189238093D70108951092D701C4 -:1035600008958093C60108951092C6010895809130 -:103570000E0190910F01FC0131969C01205F3F4F9D -:1035800080E0919191118F5FE217F307D1F70895D1 -:10359000E0910E01F0910F018091D9018083E091BB -:1035A0000E01F0910F0190818091D801892B8083C9 -:1035B000E0910E01F0910F0190818091D701892B4C -:1035C00080838091C601882361F0E0910E01F09123 -:1035D0000F019081892B80830E94B71A811110926C -:1035E000C60180910E0190910F010C94F60F20E01E -:1035F000009739F0AC0141505109842395232F5F86 -:10360000F7CF822F0895CF92DF92EF92FF926C0155 -:10361000EE24FF24C114D104E104F10421F0C70118 -:10362000B60120E101C020E0C72ED82EE92EFF24EC -:10363000C114D104E104F10419F0285FC701B601F7 -:103640006B017C0154E0F694E794D794C7945A95A3 -:10365000D1F7C114D104E104F10419F02C5FC701C2 -:10366000B6016B017C0142E0F694E794D794C794CD -:103670004A95D1F7C114D104E104F10419F02E5F89 -:10368000C701B601DC01CB01B695A7959795879543 -:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5 -:1036A000DF90CF9008958091F101843021F1109244 -:1036B000DB0120E488E190E00FB6F894A8958093B0 -:1036C00060000FBE2093600080E00E94E30883B793 -:1036D000817F846083BF83B7816083BF789488953E -:1036E00083B78E7F83BF88E10FB6F8948093600024 -:1036F000109260000FBE0895089508950E947C1BEB -:103700000E944B030E947D1B0E94400491E08111A6 -:1037100001C090E0892F08950E9483140E94EA0F4F -:103720000C94E30882E084BD93E095BD9AEF97BDC9 -:1037300080936E0008952FB7F8948091DC019091EA -:10374000DD01A091DE01B091DF012FBF0895CF927E -:10375000DF92EF92FF920F931F932FB7F89440914F -:10376000DC015091DD016091DE017091DF012FBF1E -:103770006A017B01EE24FF248C0120E030E0C016BA -:10378000D106E206F30610F4415051099A01281BB4 -:10379000390BC9011F910F91FF90EF90DF90CF90EF -:1037A00008951F920F920FB60F9211248F939F933B -:1037B000AF93BF938091DC019091DD01A091DE0178 -:1037C000B091DF010196A11DB11D8093DC019093A2 -:1037D000DD01A093DE01B093DF01BF91AF919F9116 -:1037E0008F910F900FBE0F901F9018950E94E70CBD -:1037F000F8942FEF87EA91E6215080409040E1F75E -:1038000000C0000087E090EBDC018093FB01909307 -:10381000FC01A093FD01B093FE019CE088E10FB68E -:10382000F894A895809360000FBE90936000FFCF3E -:10383000EF92FF920F931F93CF93DF93D82FCDE09A -:103840008C2F0E94390405E010E0E82EF12CC7010E -:10385000002E02C0959587950A94E2F780FF09C073 -:10386000602F7C2F80E00E94F305D81302C081E016 -:1038700006C00150110958F7C15010F780E0DF91E0 -:10388000CF911F910F91FF90EF900895CF93C82F84 -:103890008CE20E94181C882321F08C2FCF910C946D -:1038A000181C80E0CF910895CF930E949B1D811139 -:1038B00002C00E94811DC5E6C15049F00E944B0321 -:1038C0008FE39CE90197F1F700C00000F5CF89E292 -:1038D0000E94461C811113C18AE20E94461C81117C -:1038E0000E94811D85E00E94461C81110E94F61BEA -:1038F0000E94A61D8093DA0187E00E94461C88235F -:10390000A9F18BE10E94461C882351F08091DA01D5 -:1039100081FB222720F991E0922790FB81F90EC0CC -:103920008EE00E94461C882361F08091DA0182FBC0 -:10393000222720F991E0922790FB82F98093DA0107 -:1039400015C080E10E94461C9091DA01882341F065 -:1039500093FB222720F981E0822780FB93F904C0A2 -:10396000892F809580FB90F99093DA018091DA019C -:103970000E94AA1D0E94B81D8093FA0180EE0E9449 -:10398000461C882341F08091FA01982F909590FB76 -:1039900080F98093FA0189E30E94461C882359F03C -:1039A0008091FA0181FB222720F991E0922790FB78 -:1039B00081F98093FA0182EE0E94461C882359F017 -:1039C0008091FA0182FB222720F991E0922790FB57 -:1039D00082F98093FA0186EE0E94461C882359F0F2 -:1039E0008091FA0183FB222720F991E0922790FB36 -:1039F00083F98093FA0183EE0E94461C882359F0D4 -:103A00008091FA0184FB222720F991E0922790FB14 -:103A100084F98093FA0185E30E94461C882359F0BB -:103A20008091FA0185FB222720F991E0922790FBF3 -:103A300085F98093FA0181E30E94461C882359F09E -:103A40008091FA0186FB222720F991E0922790FBD2 -:103A500086F98093FA0181E10E94461C882359F07F -:103A60008091FA0187FB222720F991E0922790FBB1 -:103A700087F98093FA018091FA010E94BC1D809120 -:103A8000FA0187FB882780F980930D0187E20E9465 -:103A9000461CC82F8EE10E94461C8111C2608FE136 -:103AA0000E94461C8111C46080E20E94461C811164 -:103AB000C86081E20E94461C8111C06182E20E94BE -:103AC000461C8111C06283E20E94461C8111C064C1 -:103AD00084E20E94461C882311F0C06802C0CC23F7 -:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4 -:103AF000682F70E080E090E0CF910C944318CF9154 -:103B000008956DEE7EEF80E090E00E94ED2360E08E -:103B100082E090E00E94DB2360E083E090E00E947E -:103B2000DB2360E084E090E00E94DB2360E085E03E -:103B300090E00C94DB2380E090E00E94D52321E00C -:103B40008D3E9E4F09F020E0822F089582E090E0A4 -:103B50000C94CD23682F82E090E00C94DB2383E06B -:103B600090E00C94CD23682F83E090E00C94DB234D -:103B700084E090E00C94CD23682F84E090E00C94D6 -:103B8000DB238091E20180FF0BC06091130185E08F -:103B9000689FB001112475956795759567952BC041 -:103BA00081FF09C06091130185E0689FB001112475 -:103BB0007595679520C082FF07C06091130185E06D -:103BC000689FB001112417C09091E3019923D1F0AF -:103BD00060911201961788F72091130185E0289FC4 -:103BE00090011124929FA001939F500D112470E029 -:103BF000CA010E949F236038710540F46115710568 -:103C000039F002C065E070E0862F08958FE70895CF -:103C100081E008958091E20180FF08C06091110168 -:103C200070E0759567957595679521C081FF06C011 -:103C30006091110170E07595679519C082FF04C00D -:103C40006091110170E010C09091E3019923C1F0DF -:103C5000609110019617A0F780911101899FC00112 -:103C6000112470E00E949F236038710528F46115CB -:103C7000710521F0862F08958FE7089581E008955A -:103C800061E070E0F4CF803F21F40E94C11D819576 -:103C900004C0813F29F40E94C11D8093E60108956C -:103CA000823F21F40E94C11D819504C0833F29F405 -:103CB0000E94C11D8093E5010895893F19F40E9477 -:103CC0000A1E05C08A3F31F40E940A1E8195809326 -:103CD000E70108958B3F21F40E940A1E819504C0DC -:103CE0008C3F29F40E940A1E8093E8010895843FC6 -:103CF00021F48091E401816017C0853F21F4809117 -:103D0000E401826011C0863F21F48091E401846067 -:103D10000BC0873F21F48091E401886005C0883F93 -:103D200031F48091E40180618093E40108958D3F36 -:103D300021F48091E20181600BC08E3F21F48091DB -:103D4000E201826005C08F3F29F48091E201846026 -:103D50008093E2010895803F39F48091E60187FF66 -:103D60006CC01092E60169C0813F29F48091E601A0 -:103D70001816BCF362C09091E501823F29F497FFC9 -:103D80005CC01092E50159C0833F19F41916CCF3B9 -:103D900054C0893F41F48091E70118160CF04DC0E2 -:103DA0001092E7014AC08A3F29F48091E70187FF1A -:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6 -:103DC0001092E8013AC08C3F29F48091E80118165E -:103DD000BCF333C0843F21F48091E4018E7F17C08F -:103DE000853F21F48091E4018D7F11C0863F21F44D -:103DF0008091E4018B7F0BC0873F21F48091E40127 -:103E0000877F05C0883F31F48091E4018F7E8093E5 -:103E1000E40113C08D3F21F48091E2018E7F0BC03D -:103E20008E3F21F48091E2018D7F05C08F3F29F400 -:103E30008091E2018B7F8093E2018091E501811105 -:103E40000EC08091E60181110AC08091E7018111C5 -:103E500006C08091E801811102C01092E30108952B -:103E600084EE91E00E9401100E949B1B9093E1015F -:103E70008093E00108951F93CF93DF938091E00139 -:103E80009091E1010E94A71BAC019091E30199235D -:103E900021F02091140130E006C0209115018AE044 -:103EA000289F900111244217530708F486C080917F -:103EB000E501C091E601D091E7011091E80181117F -:103EC00007C0C11176C0D11174C0111172C075C084 -:103ED0009F3F19F09F5F9093E301181624F40E940E -:103EE000C11D8093E5018091E50187FF05C00E9417 -:103EF000C11D81958093E5011C1624F40E94C11D0B -:103F00008093E6018091E60187FF05C00E94C11DF4 -:103F100081958093E6016091E501662339F1C091B6 -:103F2000E601CC2319F1772767FD7095872F972F2E -:103F30000E94B02223E333E343E35FE30E941423B0 -:103F40000E947D226093E5016C2F772767FD7095B5 -:103F5000872F972F0E94B02223E333E343E35FE3ED -:103F60000E9414230E947D226093E6011D1624F412 -:103F70000E940A1E8093E7018091E70187FF05C038 -:103F80000E940A1E81958093E701111624F40E9475 -:103F90000A1E8093E8018091E80187FF05C00E9416 -:103FA0000A1E81958093E801DF91CF911F910C94B7 -:103FB000301F9F3F09F08ECF96CFDF91CF911F9199 -:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE -:103FD0001092E3011092E2010895833081F128F4F8 -:103FE000813059F08230D1F00895853009F449C00C -:103FF000B8F1863009F456C0089580911501262F36 -:1040000030E0280F311D2F3F310524F4680F6093F5 -:10401000150108958FEF8093150108958091140183 -:10402000262F30E0280F311D2F3F310524F4680F73 -:104030006093140108958FEF809314010895809187 -:104040001301262F30E0280F311D2F3F310524F4B6 -:10405000680F6093130108958FEF80931301089503 -:1040600080911201262F30E0280F311D2F3F31059E -:1040700024F4680F6093120108958FEF809312016A -:10408000089580911101262F30E0280F311D2F3F18 -:10409000310524F4680F6093110108958FEF809328 -:1040A0001101089580911001262F30E0280F311D55 -:1040B0002F3F310524F4680F6093100108958FEFAE -:1040C000809310010895833011F128F4813049F074 -:1040D000823091F00895853081F120F18630C1F170 -:1040E000089580911501681720F4861B80931501AF -:1040F000089510921501089580911401681720F415 -:10410000861B8093140108951092140108958091E4 -:104110001301681720F4861B8093130108951092F1 -:104120001301089580911201681720F4861B809373 -:1041300012010895109212010895809111016817DB -:1041400020F4861B809311010895109211010895A7 -:1041500080911001681720F4861B80931001089548 -:104160001092100108950F931F938D3109F46BC0C5 -:1041700008F03FC08E3009F47FC0C0F4873009F4E6 -:1041800069C068F4863009F0B1C08091DA01817F9E -:104190008E7F8093DA0181E08093EA01A8C08830A5 -:1041A00009F4A2C08B3009F49FC0A0C0863109F485 -:1041B0009BC078F4803109F472C0813109F096C057 -:1041C0000E94831490910D0181E0892780930D0155 -:1041D0008BC0893109F488C08B3109F087C0809188 -:1041E000DA0181FB222720F991E0922790FB81F9E7 -:1041F0004CC0853309F470C048F4873209F46CC0B0 -:1042000008F459C0893209F467C070C0833438F4A7 -:104210008A3308F04EC0883309F466C067C083341F -:1042200009F45AC0883409F061C00E9483140FEF6A -:1042300013ED20E3015010402040E1F700C00000E2 -:104240000E94F61B51C00E9437220E94EA0F0E9472 -:10425000E3084AC09091DA01892F8095817080FB34 -:1042600090F929F0966098609093DA0140C0997FA8 -:10427000977F9093DA0138C08091DA0182FB222780 -:1042800020F991E0922790FB82F98093DA0199233B -:1042900059F18091DA0181608093DA0125C0809123 -:1042A000DA0183FB222720F991E0922790FB83F922 -:1042B000ECCF895301C08D5141E050E060E070E0E7 -:1042C0008A019B0104C0000F111F221F331F8A9512 -:1042D000D2F7C901B80104C061E070E080E090E06D -:1042E0000E9443180E94831481E001C080E01F9166 -:1042F0000F91089580E0089580E00895CF93C82F2E -:104300008091EA01813079F018F08230E9F187C0BC -:10431000E0910E01F0910F018081813169F08232CC -:1043200009F07FC009C0E0910E01F0910F0180817A -:10433000813111F0823261F48C2F0E947A21811137 -:1043400004C08C2F0E94B3201DC081E090E01AC0F1 -:104350008C2F0E947C21811114C0C43179F048F463 -:10436000CB3079F0C03109F060C082E08093EA017F -:1043700008C0C93219F0C83321F057C01092EA01C1 -:1043800054C081E0817053C0C93289F118F5C4313D -:1043900071F1A8F4C73009F046C08AE08093150196 -:1043A00094E19093140193E0909313018093120190 -:1043B00088E08093110188E28093100134C0CE51CF -:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB -:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC -:1043E00013C0C13579F0C235F1F461E00DC08091A0 -:1043F000E901882319F01092E90115C081E080934A -:10440000EA0115C061E006C08091E9010E94ED1F3C -:104410000AC06AE08091E9010E94632004C0109202 -:10442000EA0180E004C081E002C080E0ABCFCF9120 -:104430000895E1E8F0E08081886080838081816078 -:1044400080838FB7F89493E09093890090ED9093D8 -:1044500088008FBF0895EFE6F0E08081826080835E -:104460000895EFE6F0E080818D7F80830895EFE688 -:10447000F0E0908182E08927808308951F920F9257 -:104480000FB60F9211242F933F934F935F936F9327 -:104490007F938F939F93AF93BF93EF93FF938091FD -:1044A000EB019091EC0101969093EC018093EB016C -:1044B000811103C082E00E94E308E091EC01E695DF -:1044C000E695F0E0EC54FB4FE4918091EB018E1304 -:1044D00003C080E00E94E308FF91EF91BF91AF918C -:1044E0009F918F917F916F915F914F913F912F910C -:1044F0000F900FBE0F901F90189504D06894B111C3 -:104500008DC0089570D088F09F5790F0B92F9927EB -:10451000B751A0F0D1F0660F771F881F991F1AF0CE -:10452000BA95C9F712C0B13081F077D0B1E00895E3 -:1045300074C0672F782F8827B85F39F0B93FCCF364 -:10454000869577956795B395D9F73EF490958095C4 -:10455000709561957F4F8F4F9F4F0895E89409C0E4 -:1045600097FB3EF490958095709561957F4F8F4FA6 -:104570009F4F9923A9F0F92F96E9BB279395F695BC -:10458000879577956795B795F111F8CFFAF4BB0F3A -:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E -:1045A000882311F096E911C0772321F09EE8872F28 -:1045B000762F05C0662371F096E8862F70E060E0E4 -:1045C0002AF09A95660F771F881FDAF7880F96955D -:1045D000879597F9089557FD9058440F551F59F046 -:1045E0005F3F71F04795880F97FB991F61F09F3FE0 -:1045F00079F087950895121613061406551FF2CF09 -:104600004695F1DF08C0161617061806991FF1CF58 -:1046100086957105610508940895E894BB2766277F -:104620007727CB0197F908950BD078C069D028F08F -:104630006ED018F0952309F05AC05FC01124EECF58 -:10464000CADFA0F3959FD1F3950F50E0551F629FED -:10465000F001729FBB27F00DB11D639FAA27F00DDB -:10466000B11DAA1F649F6627B00DA11D661F829F02 -:104670002227B00DA11D621F739FB00DA11D621FE7 -:10468000839FA00D611D221F749F3327A00D611D04 -:10469000231F849F600D211D822F762F6A2F1124E6 -:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39 -:1046B000BB1F661F771F881F91505040A9F79E3F70 -:1046C000510570F014C0AACF5F3FECF3983EDCF3C5 -:1046D000869577956795B795F795E7959F5FC1F7AD -:1046E000FE2B880F911D9695879597F9089597F958 -:1046F0009F6780E870E060E008959FEF80EC089588 -:1047000000240A94161617061806090608950024B0 -:104710000A9412161306140605060895092E03942A -:10472000000C11F4882352F0BB0F40F4BF2B11F49E -:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF -:10474000072E16F4009407D077FD09D00E94B923F4 -:1047500007FC05D03EF4909581959F4F0895709584 -:1047600061957F4F0895EE0FFF1F0590F491E02DA6 -:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8 -:10478000B70710F0A61BB70B881F991F5A95A9F7FA -:1047900080959095BC01CD010895F999FECF92BD09 -:1047A00081BDF89A992780B50895A8E1B0E042E06C -:1047B00050E00C94F523262FF999FECF92BD81BDD0 -:1047C000F89A019700B4021639F01FBA20BD0FB64F -:1047D000F894FA9AF99A0FBE08950196272F0E942D -:1047E000DC230C94DB23DC01CB01FC01F999FECF27 -:1047F00006C0F2BDE1BDF89A319600B40D92415069 -:0A4800005040B8F70895F894FFCF78 -:10480A000220E508730950091C09E8080101C701DB -:10481A0028080A03140A3F4D363975042804F2039E -:10482A00B9034C0365037E039703010203040506DB -:04483A000708090062 -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/osx_kinesis_pnut/compiled.hex b/keyboards/ergodox_ez/keymaps/osx_kinesis_pnut/compiled.hex deleted file mode 100644 index 8a7ad640d..000000000 --- a/keyboards/ergodox_ez/keymaps/osx_kinesis_pnut/compiled.hex +++ /dev/null @@ -1,1158 +0,0 @@ -:100000000C947A020C94BE020C94BE020C94BE02B4 -:100010000C94BE020C94BE020C94BE020C94BE0260 -:100020000C94BE020C94BE020C94620D0C94340E1F -:100030000C94BE020C94BE020C94BE020C94BE0240 -:100040000C94BE020C943E220C94BE020C94BE0290 -:100050000C94BE020C94D11B0C94BE020C94BE02F4 -:100060000C94BE020C94BE020C94BE020C94BE0210 -:100070000C94BE020C94BE020C94BE020C94BE0200 -:100080000C94BE020C94BE020C94BE020C94BE02F0 -:100090000C94BE020C94BE020C94BE020C94BE02E0 -:1000A0000C94BE020C94BE020C94BE02A10EC30EB0 -:1000B000B10FC30EB10F080F2B0FB10F800F930FAD -:1000C0006212621291129112C712E71218141814D8 -:1000D000F2121814A213A2130914181418141214EB -:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300 -:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0 -:10010000C113CE13D513DC13E6130000F0A13900A0 -:100110002B002900E100E10400001E00140004008F -:100120001D7135414D001F001A0016001B003400E0 -:100130004C00200008000700060050002A002100A3 -:100140001500090019004F004A00220017000A009C -:1001500005000000E300500001540000007F000093 -:1001600065744F00015400000077000029712300DE -:100170001C000B0011000000E300240018000D001B -:10018000100052002E0025000C000E003600510019 -:100190002C00260012000F0037002F002800270037 -:1001A00013003342387130002B002D003100340031 -:1001B000E500C10000000100010001000100010094 -:1001C00000003A001E0220022202010001003B0052 -:1001D0001F0221022302010001003C002F0226021F -:1001E0002F00010001003D00300227023000010015 -:1001F00001003E003102350035020000010001001F -:1002000001000000010000000100010001000000E9 -:100210000100000001003F005200510024020000D4 -:1002200001004000240021001E00010001004100E7 -:10023000250022001F003700010042002600230095 -:10024000200027000100430025022E0231002E006D -:100250000100440045000100010001000000010010 -:100260000100010001000100000001000100010087 -:1002700001000100010001000100F2000100010085 -:1002800001000100F000F1000100F4000100010094 -:100290000100F3000100F500010001000100010070 -:1002A0000100000001000100010000000100000049 -:1002B0000100010001000000010000000100010038 -:1002C0000100010001000000010001000100010027 -:1002D0000100A9000100010001000100AC00AA001A -:1002E000B600010001000100AB00A8000100010000 -:1002F0000100010001000100010001000100AE0049 -:1003000001000100000016034500720067006F0045 -:1003100044006F007800200045005A0000001603DA -:100320004500720067006F0044006F0078002000F5 -:1003300045005A0000000403090409026D0004018D -:1003400000A0FA09040000010301010009211101C4 -:100350000001223F000705810308000A090401008B -:100360000103010200092111010001224D000705CE -:10037000820308000A0904020001030000000921A9 -:10038000110100012236000705830308000A090451 -:1003900003000103000000092111010001223900BE -:1003A000070584031000011201100100000008ED90 -:1003B000FE071301000102000105010906A1010564 -:1003C0000719E029E7150025019508750181020547 -:1003D000081901290595057501910295017503918B -:1003E0000105071900297715002501957875018108 -:1003F00002C005010980A101850216010026B7008F -:100400001A01002AB700751095018100C0050C097A -:1004100001A1018503160100269C021A01002A9CF5 -:1004200002751095018100C005010902A1010901B1 -:10043000A10005091901290515002501950575017A -:10044000810295017503810105010930093115818A -:10045000257F95027508810609381581257F95014C -:1004600075088106050C0A38021581257F950175EE -:10047000088106C0C005010906A101050719E02988 -:10048000E715002501950875018102950175088120 -:100490000105081901290595057501910295017558 -:1004A0000391010507190029FF150025FF95067521 -:1004B000088100C0000000000000000000000001F2 -:1004C0000204060A0F17202C3A4A5D71879DB3C7B4 -:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF -:1004E0003A2C20170F0A0604020100000000000049 -:1004F0000000000011241FBECFEFDAE0DEBFCDBF49 -:1005000004B603FE24C08091FB019091FC01A091F0 -:10051000FD01B091FE018730904BA740B04BB9F47C -:100520001092FB011092FC011092FD011092FE014D -:1005300014BE84B7877F84BF88E10FB6F894809398 -:100540006000109260000FBEE0E0FFE3099511E04B -:10055000A0E0B1E0EAE0F8E402C005900D92A43317 -:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0 -:10057000B107E1F70E94A60A0C9403240C94000032 -:100580001092B9008AE08093B800089594EA90939D -:10059000BC009091BC0097FFFCCF9091B900987F70 -:1005A000983021F0903111F081E008958093BB00E4 -:1005B00084E88093BC008091BC0087FFFCCF8091D1 -:1005C000B900887F883111F0803471F780E0089598 -:1005D00084E98093BC008091BC0084FDFCCF089529 -:1005E0008093BB0084E88093BC008091BC0087FFAF -:1005F000FCCF9091B900987F81E0983209F480E0B7 -:10060000089584E88093BC008091BC0087FFFCCFF4 -:100610008091BB00089580910101811115C080E493 -:100620000E94C6028093010181110CC082E10E94E8 -:10063000F00280930101811105C08FEF0E94F0024A -:10064000809301010E94E80284B1807F84B985B162 -:10065000807F85B98AB1837F8AB98BB1837F8BB95B -:100660003E98469808950E94C604809301010E9416 -:100670000B0380B38C7080BB81B3836F81BBA5E318 -:10068000B1E0E3E4F1E08EE08E0F11921D928E1343 -:10069000FCCF0C94B004BF92CF92DF92EF92FF9206 -:1006A0000F931F93CF93DF9380910101882379F0FB -:1006B000809134018F5F80933401811108C00E94C2 -:1006C000C60480930101811102C00E94580405E311 -:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407 -:1006E000E394F12CC730D10500F58091010181110F -:1006F00064C080E40E94C60280930101811112C08F -:1007000082E10E94F0028093010181110BC0C701B8 -:100710000C2E01C0880F0A94EAF780950E94F0021F -:10072000809301010E94E80248C0CA30A1F028F479 -:10073000C83059F0C93061F005C0CC3089F070F094 -:10074000CD3089F0209A289810C0219A29980DC0A0 -:10075000229A2A980AC0239A2B9807C0529A01C05D -:10076000539A5B9802C03E9A469890EA9A95F1F7A0 -:100770009FB1799902C082E001C080E091709D250F -:10078000982B7C9902C084E001C080E0892B7D9980 -:1007900002C038E001C030E0832B7E9902C020E126 -:1007A00001C020E0822B9FB19095991F9927991F36 -:1007B0009295990F907E892B0FC080910101811134 -:1007C00049C080E40E94C60280930101882379F128 -:1007D000B12C0E94E8028B2DF8019081981719F036 -:1007E0008083C09200010E940B0321960F5F1F4F70 -:1007F000CE30D10509F076CF80910001882361F1D8 -:10080000815080930001882339F08FE99FE00197A0 -:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F -:10082000CF01825F91919D938E13FCCF15C083E120 -:100830000E94F002809301018111CACF81E40E94DD -:10084000C602809301018111C3CF0E940103B82E1B -:10085000B094BFCF80E0C0CF0E94560481E0DF910A -:10086000CF911F910F91FF90EF90DF90CF90BF90AD -:100870000895E82FF0E0ED5BFE4F80810895089524 -:100880000F931F93CF93DF93C3E4D1E010E00C2FBD -:10089000025F899190E00E94F71A180F0C13F9CFAC -:1008A000812FDF91CF911F910F9108950C94260510 -:1008B00056985E9825982D9826982E9827982F98C8 -:1008C0008FEF90E0909389008093880090938B0045 -:1008D00080938A0090938D0080938C00259A2D9AA6 -:1008E0002FEF80E792E0215080409040E1F700C078 -:1008F0000000269A2E9A2FEF80E792E02150804048 -:100900009040E1F700C00000279A2F9A2FEF80E770 -:1009100092E0215080409040E1F700C0000025980F -:100920002D982FEF80E792E0215080409040E1F732 -:1009300000C0000026982E982FEF80E792E021500B -:1009400080409040E1F700C0000027982F9856980B -:100950005E9825982D9826982E9827982F98089578 -:1009600089EA8093800089E08093810024982C9804 -:100970003F988AB18F748AB96E98479A8BB1806B11 -:100980008BB9769A0E9458040C94250580E28093D6 -:1009900001018091510181110EC00E94C00281E0CD -:1009A000809351012FEF83ED90E3215080409040E0 -:1009B000E1F700C0000080E40E94C60280930101BC -:1009C00081112EC00E94F00280930101811128C084 -:1009D0000E94F00280930101811122C08FE30E94E6 -:1009E000F0028093010181111BC00E94E80280E4A3 -:1009F0000E94C60280930101811112C08CE00E9406 -:100A0000F0028093010181110BC00E94F0028093DB -:100A10000101811105C08FE30E94F0028093010162 -:100A20000E94E80280910101089561110BC0FC0150 -:100A30008281882321F085EE0E94061103C085EE95 -:100A40000E94CE1180E090E0089508956091BD016C -:100A50007091BE018091BF019091C0010E94031B63 -:100A600056985E9825982D9826982E9827982F9816 -:100A7000813019F0823021F00895259A2D9A089539 -:100A8000269A2E9A089581E0089581E008950C94A5 -:100A9000450508950F931F93CF93DF938C01FC01BD -:100AA000C081D181CE010E947C19BE010E94F30554 -:100AB000EC01B8010E944705882309F48DC0F801B4 -:100AC0008281882309F44AC080915D0181111FC091 -:100AD000C431F0E5DF0709F051C00E94490581E00B -:100AE00080935D010E949B1B90935C0180935B014E -:100AF0001092540110925601109255011092580113 -:100B00001092570110925A011092590165C08091BC -:100B10005B0190915C010E94A71B883C910570F4D9 -:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB -:100B3000D183C0838F5F809354014EC0C43880E559 -:100B4000D80721F0C538D04501F13AC0F8018281BB -:100B5000882341F01092520182E01EC0C438E0E5C3 -:100B6000DE0759F580915201811106C086E20E948C -:100B7000061186E20E94CE1182E01CC0C438F0E566 -:100B8000DF0741F3C538D045D9F4F80182818823C5 -:100B900031F01092530180E20E941D121DC080911D -:100BA0005301811106C087E20E94061187E20E946C -:100BB000CE1180E20E9424120FC0C538D04529F31F -:100BC00081E08093520180935301C801DF91CF915E -:100BD0001F910F910C94430580E0DF91CF911F91FD -:100BE0000F910895089596E0799FF001112494E5FE -:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F -:100C0000E25FFE4F859194910895880F991FFC0132 -:100C1000E657F040859194910895880F991FFC0143 -:100C2000E65FFE4F8591949108950F931F93CF93A4 -:100C3000DF93EC01811520E3920750F5C11580E2A6 -:100C4000D80708F0C3C0CB3BD10590F4C83AD10512 -:100C500008F06AC0C53AD10508F05BC0C430D105C0 -:100C600008F0D0C1219709F0CAC101E010E00AC222 -:100C7000CF3FD10511F008F0C5C1C03FD10508F044 -:100C8000A2C0CE01805E9109089708F4BBC1B7C12C -:100C9000C13090E5D90709F4A2C020F5C0318FE436 -:100CA000D80770F4C11590E4D90708F094C0C115B5 -:100CB00021E3D20708F0A3C1DD278E01106CE2C149 -:100CC000C115D04509F09BC10E9483148FEF94E3B6 -:100CD0002CE0815090402040E1F700C000000E94CD -:100CE000F61BD0C1C11597E5D90758F4C03121E5ED -:100CF000D20708F01CC1C43180E5D80708F475C0DC -:100D00007EC1CE0190578115904108F078C1DF7007 -:100D100073C1C53AD10509F477C1C63AD10509F0C6 -:100D200076C102E810E4AEC1C83AD10509F472C137 -:100D3000C93AD10509F471C1CA3AD10509F470C1A3 -:100D4000CB3AD10509F46FC1CC3AD10509F46EC193 -:100D5000CD3AD10509F46DC1C03BD10509F46CC190 -:100D6000CE3AD10509F46BC1CF3AD10509F46AC175 -:100D7000C13BD10509F469C1C23BD10509F468C181 -:100D8000C33BD10509F467C1C43BD10509F466C171 -:100D9000C53BD10509F465C1C63BD10509F464C161 -:100DA000C73BD10509F463C1C83BD10509F462C151 -:100DB000C93BD10509F461C1CA3BD10509F460C141 -:100DC00000E014E45FC18E0110655CC1CE019F702C -:100DD0000E940D0658C1DF708E01106A53C18091C8 -:100DE000DA0181608093DA014DC10E949B1D81115F -:100DF00002C00E94811D0E94B81D90E09093FB01EB -:100E00008093FA01C23080E5D80721F48091FA017D -:100E1000816086C0C43090E5D90721F48091FA0141 -:100E200082607EC0C63020E5D20721F48091FA01AD -:100E3000846076C0C83080E5D80719F48091FA0143 -:100E400027C0CA3090E5D90721F48091FA0180616A -:100E500067C0CC3020E5D20721F48091FA0180628E -:100E60005FC0CE3080E5D80721F48091FA0180641C -:100E700057C0C03190E5D90721F48091FA0180680C -:100E80004FC0C23120E5D20729F48091FA01846075 -:100E9000886046C0C33080E5D80721F48091FA010C -:100EA0008E7F3EC0C53090E5D90721F48091FA01CC -:100EB0008D7F36C0C73020E5D20721F48091FA013A -:100EC0008B7F2EC0C93080E5D80719F48091FA01D4 -:100ED00026C0CB3090E5D90721F48091FA018F7EAE -:100EE0001FC0CD3020E5D20721F48091FA018F7D1B -:100EF00017C0CF3080E5D80721F48091FA018F7BAD -:100F00000FC0C13190E5D90721F48091FA018F77A4 -:100F100007C0C331D04531F48091FA018B7F877FC0 -:100F20008093FA018091FA010E94BC1DABC08D2F05 -:100F300099278F70992781309105D9F49E012370EC -:100F4000332702C0880F991F2A95E2F79C688E010B -:100F500044E0000F111F4A95E1F700271370802B22 -:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA -:100F70002FC08230910531F4DC2FCC278E01016F18 -:100F8000106A80C08330910569F4CE01837099277F -:100F900001E010E002C0000F111F8A95E2F7C801BE -:100FA0009C680FC084309105B9F4CE0183709927F5 -:100FB00001E010E002C0000F111F8A95E2F7C8019E -:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029 -:100FD0008C010C2B1D2B56C08530910531F4DC2F74 -:100FE000CC278E01046F106A4DC0069709F04AC0E5 -:100FF000CF71DD27DC2FCC278E01106243C000E0CB -:1010000010E040C08E013EC001E810E43BC003E8A0 -:1010100010E438C002EE14E435C009EE14E432C026 -:101020000AEE14E42FC005EB14E42CC006EB14E424 -:1010300029C007EB14E426C00CEC14E423C00DEC2B -:1010400014E420C003E815E41DC00AE815E41AC042 -:1010500002E915E417C004E915E414C001E216E43E -:1010600011C003E216E40EC004E216E40BC005E270 -:1010700016E408C006E216E405C007E216E402C062 -:101080000AE216E4C801DF91CF911F910F910895F4 -:1010900096E0799FF001112494E5899FE00DF11D00 -:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149 -:1010B0009491803E9105E0F4803C910558F5813390 -:1010C000910509F46FC048F48932910509F463C0B1 -:1010D0008A32910509F46DC072C089339105E9F037 -:1010E00082389105D1F08533910509F44DC067C070 -:1010F000833E910581F138F4803E9105B9F0823E3E -:101100009105D9F05CC0863E910561F1873E91055D -:10111000A1F155C00E94050608952091FA0120FD15 -:1011200002C021FF4CC080EE90E049C08091FA01DE -:1011300080FFF9CF89E390E042C08091FA0182FFFD -:101140000EC08091FA0184FF03C080E090E037C0B8 -:1011500083EE90E034C08091FA0182FFF2CF82EEFC -:1011600090E02DC08091FA0183FF0BC08091FA01BD -:1011700084FDEBCF87EE90E022C08091FA0183FFDF -:10118000F5CF86EE90E01BC08091FA0185FF07C085 -:1011900089E290E014C08091FA0185FFF9CF85E3E0 -:1011A00090E00DC08091FA0186FF07C08AE290E0CE -:1011B00006C08091FA0186FFF9CF81E390E00E949A -:1011C0001506089508950C94E20880916E01089523 -:1011D000CF93DF9300D01F92CDB7DEB79C018091F3 -:1011E000F101843019F593E099833B832A8390932E -:1011F000E9008FEF9091E800815095FD06C095EDD4 -:101200009A95F1F700008111F5CF8091E80085FFF4 -:101210000DC040E050E063E070E0CE0101960E9416 -:10122000520B8091E8008E778093E8000F900F902A -:101230000F90DF91CF910895CF93DF9300D01F924D -:10124000CDB7DEB72091F101243021F522E02983CA -:101250009B838A8383E08093E9008FEF9091E8007D -:10126000815095FD06C095ED9A95F1F7000081112A -:10127000F5CF8091E80085FF0DC040E050E063E0CD -:1012800070E0CE0101960E94520B8091E8008E77AB -:101290008093E8000F900F900F90DF91CF91089509 -:1012A0002091F1012430F1F422E02093E9002FEFA6 -:1012B0003091E800215035FD06C035ED3A95F1F743 -:1012C00000002111F5CF2091E80025FF0BC040E080 -:1012D00050E065E070E00E94520B8091E8008E774C -:1012E0008093E8000895CF93DF93EC019091F10192 -:1012F000943009F046C080910C018823D9F0809188 -:101300000D018823B9F09093E9008FEF9091E800E8 -:10131000815095FD06C095E19A95F1F70000811185 -:10132000F5CF8091E80085FF2CC040E050E060E1FF -:1013300070E017C081E08093E9008FEF9091E800A2 -:10134000815095FD06C095ED9A95F1F70000811149 -:10135000F5CF8091E80085FF14C040E050E068E0E0 -:1013600070E0CE010E94520B8091E8008E7780934E -:10137000E80080E1FE01AEE5B1E001900D928A95B2 -:10138000E1F7DF91CF9108958091F001811109C0BB -:101390000E94E70C0E94440D8091E20084608093DB -:1013A000E20008951092F001089508950C942B2204 -:1013B0000E948C1B0E9431220E94EA0F0C94E308C9 -:1013C00042E061EC81E00E94610C42E061EC82E06D -:1013D0000E94610C42E061EC83E00E94610C42E1FA -:1013E00061EC84E00C94610C8091F301833009F48A -:1013F00055C030F4813071F0823009F48EC0089508 -:101400008A3009F47AC08B3009F460C0893009F061 -:101410009CC020C08091F201813A09F096C0809171 -:10142000E800877F8093E8008091F6019091F701B2 -:10143000892B21F460E18EE591E003C060E080E05B -:1014400090E070E00E949D0B8091E8008B77809384 -:10145000E80008958091F201813209F076C0809110 -:10146000F6019091F701009719F0039709F06DC00C -:101470008091E800877F8093E8008091E80082FDFA -:1014800005C08091F1018111F8CF5FC08091F1001A -:1014900080936E018091E8008B7753C08091F201B8 -:1014A000813A09F052C08091F6019091F701892BA1 -:1014B00009F04BC08091E800877F8093E80080911D -:1014C000E80080FFFCCF80910C0136C08091F201D2 -:1014D0008132D9F58091F6019091F701892BA9F518 -:1014E0008091E800877F8093E8000E94960C8091AD -:1014F000F40180930C010C9483148091F2018132E9 -:1015000021F58091E800877F8093E8000E94960C87 -:101510008091F50180936F0108958091F201813AE5 -:10152000A1F48091E800877F8093E8008091E80033 -:1015300080FFFCCF80916F018093F1008091E800E3 -:101540008E778093E8000C94960C089584B7877F7B -:1015500084BF88E10FB6F894809360001092600019 -:101560000FBE90E080E80FB6F894809361009093EE -:1015700061000FBE0E9439100E94E70C0E94440DCA -:101580008091E20084608093E20078940E94CA0F08 -:101590000E943B1082E091E00E94E50F0E94192218 -:1015A0008091F101853069F40E94531B8091EF0115 -:1015B0008823B1F30E947E1B882391F30E943C0B89 -:1015C000EFCF0E944110ECCF292F33272330310574 -:1015D000C9F064F42130310581F02230310509F081 -:1015E00043C08DE690E02AE333E042C0213231056A -:1015F000F1F02232310541F137C082E190E027EA73 -:1016000033E036C099278130910541F08230910551 -:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4 -:1016200002C0E6E0F3E0849190E09F0121C06430C5 -:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5 -:10164000318189E090E014C0643070F470E0FB01F7 -:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47 -:10166000FE4F808190E004C080E090E020E030E018 -:10167000FA0131832083089580E189BD82E189BD2B -:1016800009B400FEFDCF8091D8008F7D8093D800F3 -:101690008091E00082608093E0008091E00081FD15 -:1016A000FCCF0895CF92DF92EF92FF920F931F939A -:1016B000CF93DF93EC018B016A010E94B50C81117D -:1016C00033C0C114D10439F0F60180819181081B27 -:1016D000190BC80FD91FE12CF12C0115110519F1B7 -:1016E0008091E80085FD16C08091E8008E77809398 -:1016F000E800C114D10449F0F60180819181E80E1F -:10170000F91EF182E08285E00FC00E94B50C8823AB -:1017100021F30AC089918093F10001501109FFEF74 -:10172000EF1AFF0ADACF80E0DF91CF911F910F917E -:10173000FF90EF90DF90CF9008952091F8013091C5 -:10174000F9012617370748F06115710539F4209122 -:10175000E8002E772093E80001C0B90140E0611550 -:101760007105A9F12091F101222309F443C025302C -:1017700009F442C02091E80023FD40C02091E80018 -:1017800022FD32C02091E80020FFE9CF4091F30014 -:101790002091F20030E0342BFC01CF01611571057E -:1017A00059F02830310540F481918093F100615067 -:1017B00071092F5F3F4FF1CF41E02830310509F02B -:1017C00040E02091E8002E772093E800C8CF411137 -:1017D000C9CF0AC08091F101882361F0853061F0A2 -:1017E0008091E80083FD0AC08091E80082FFF2CF7B -:1017F00080E0089582E0089583E0089581E00895EF -:101800002091F8013091F9012617370748F061154A -:10181000710539F42091E8002E772093E80001C08B -:10182000B901FC0120E06115710591F18091F10190 -:10183000882309F440C0853009F43FC08091E80056 -:1018400083FD3DC08091E80082FD2FC08091E800BB -:1018500080FFE9CF2091F3008091F20090E0922B7D -:101860006115710559F08830910540F42491209359 -:10187000F1003196615071090196F2CF21E008978D -:1018800009F020E08091E8008E778093E800CBCFCC -:101890002111CCCF0AC08091F101882361F08530FD -:1018A00061F08091E80083FD0AC08091E80082FF2A -:1018B000F2CF80E0089582E0089583E0089581E00A -:1018C0000895982F973058F59093E900981739F0BC -:1018D0007091EC002091ED005091F00003C0242F96 -:1018E000762F50E021FF19C03091EB003E7F3093FE -:1018F000EB003091ED003D7F3093ED003091EB0037 -:1019000031603093EB007093EC002093ED00509326 -:10191000F0002091EE0027FF07C09F5FD3CF8F70AC -:101920008093E90081E0089580E008958091F201BC -:1019300087FF11C08091E80082FD05C08091F10110 -:101940008111F8CF11C08091E8008B770BC0809196 -:10195000F101882349F08091E80080FFF8CF809161 -:10196000E8008E778093E80008952091E40030919C -:10197000E50095E64091EC00842F817040FF22C085 -:101980008091E80080FD1CC08091F101882391F0D6 -:10199000853091F08091EB0085FD10C04091E4000E -:1019A0005091E5004217530729F39A01915011F71E -:1019B00084E0089582E0089583E0089581E0089529 -:1019C00080E008954091E80042FFDECF08950E9434 -:1019D000550D0E945D0DE0EEF0E080818160808316 -:1019E000E8EDF0E080818F77808319BCA7EDB0E04F -:1019F0008C918E7F8C9380818F7E80831092F001FA -:101A000008950F931F93CF93DF930E94550D0E946B -:101A10005D0DC8EDD0E088818F77888388818068EC -:101A2000888388818F7D888319BC1092F101109280 -:101A3000ED011092EF011092EE0100EE10E0F801BE -:101A400080818B7F808388818160888342E060E031 -:101A500080E00E94610CE1EEF0E080818E7F808367 -:101A6000E2EEF0E080818160808380818860808305 -:101A7000F80180818E7F8083888180618883DF91F7 -:101A8000CF911F910F910895E8EDF0E080818F7E56 -:101A90008083E7EDF0E080818160808384E082BF15 -:101AA00081E08093F0010C94010DE8EDF0E080817D -:101AB0008E7F80831092E20008951092DA001092D7 -:101AC000E10008951F920F920FB60F9211242F93E9 -:101AD0003F934F935F936F937F938F939F93AF93B6 -:101AE000BF93EF93FF938091E10082FF0BC0809141 -:101AF000E20082FF07C08091E1008B7F8093E100CC -:101B00000E94C90F8091DA0080FF1FC08091D80029 -:101B100080FF1BC08091DA008E7F8093DA00809175 -:101B2000D90080FF0DC080E189BD82E189BD09B483 -:101B300000FEFDCF81E08093F1010E94C40905C041 -:101B400019BC1092F1010E94D2098091E10080FF3E -:101B500019C08091E20080FF15C08091E2008E7F65 -:101B60008093E2008091E20080618093E2008091A6 -:101B7000D80080628093D80019BC85E08093F10181 -:101B80000E94D6098091E10084FF30C08091E2007C -:101B900084FF2CC080E189BD82E189BD09B400FECB -:101BA000FDCF8091D8008F7D8093D8008091E10097 -:101BB0008F7E8093E1008091E2008F7E8093E2002F -:101BC0008091E20081608093E2008091ED018823A2 -:101BD00011F084E007C08091E30087FD02C081E03E -:101BE00001C083E08093F1010E94D8098091E10057 -:101BF00083FF29C08091E20083FF25C08091E1002E -:101C0000877F8093E10082E08093F1011092ED01E3 -:101C10008091E1008E7F8093E1008091E2008E7FD1 -:101C20008093E2008091E20080618093E20042E0D4 -:101C300060E080E00E94610C8091F00088608093F9 -:101C4000F0000E94D509FF91EF91BF91AF919F9154 -:101C50008F917F916F915F914F913F912F910F9055 -:101C60000FBE0F901F9018951F920F920FB60F92F4 -:101C700011242F933F934F935F936F937F938F9391 -:101C80009F93AF93BF93CF93DF93EF93FF93C09155 -:101C9000E900CF708091EC00D82FD17080FDD0E8A2 -:101CA0001092E9008091F000877F8093F000789493 -:101CB0000E94780E1092E9008091F0008860809375 -:101CC000F000CD2BCF70C093E900FF91EF91DF9131 -:101CD000CF91BF91AF919F918F917F916F915F91C4 -:101CE0004F913F912F910F900FBE0F901F9018951D -:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3 -:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115 -:101D1000F10091938E13FBCF0E94F4098091E800AB -:101D200083FF1FC18091F2019091F301492F50E090 -:101D30004A30510508F015C1FA01EA5AFF4F0C94D8 -:101D4000B323803881F0823809F00BC18091F6010D -:101D50008F708093E9008091EB0085FB882780F9E4 -:101D60001092E90006C08091EE019091EF0191116F -:101D700082609091E800977F9093E8008093F10053 -:101D80001092F100C8C0282F2D7F09F0EAC08823E7 -:101D900019F0823061F0E5C08091F401813009F0E2 -:101DA000E0C0933009F080E08093EF012BC0809178 -:101DB000F401811127C08091F6018F7009F4D1C020 -:101DC0008093E9002091EB0020FF1CC0933021F4A8 -:101DD0008091EB00806214C09091EB009061909331 -:101DE000EB0021E030E0A90102C0440F551F8A95A5 -:101DF000E2F74093EA001092EA008091EB008860DD -:101E00008093EB001092E9008091E800877F86C004 -:101E10008111A7C01091F4011F778091E3008078B1 -:101E2000812B8093E3008091E800877F8093E80016 -:101E30000E94960C8091E80080FFFCCF8091E30027 -:101E400080688093E300111102C082E001C083E04A -:101E50008093F10186C08058823008F082C0809162 -:101E6000F4019091F5018C3D53E0950779F583E0FD -:101E70008A838AE289834FB7F894DE01139620E0C3 -:101E80003EE051E2E32FF0E050935700E49120FF51 -:101E900003C0E295EF703F5FEF708E2F90E0EA3065 -:101EA00010F0C79601C0C0968D939D932F5F24318B -:101EB00049F74FBF8091E800877F8093E8006AE28E -:101EC00070E0CE0101960E949D0B14C0AE014F5FE1 -:101ED0005F4F6091F6010E94E40ABC01009709F48B -:101EE00040C09091E800977F9093E80089819A81A3 -:101EF0000E94000C8091E8008B778093E80031C04D -:101F0000803879F58091E800877F8093E8008091A0 -:101F1000ED018093F1008091E8008E778093E800D6 -:101F20000E94960C1EC081111CC09091F401923049 -:101F3000C0F48091E800877F8093E8009093ED01E2 -:101F40000E94960C8091ED01811106C08091E30002 -:101F500087FD02C081E001C084E08093F1010E940E -:101F6000E0098091E80083FF0AC08091E800877F44 -:101F70008093E8008091EB0080628093EB00AA964A -:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A -:101F900008950895CF938091F1018823A1F0C09115 -:101FA000E900CF709091EC00892F817090FD80E85E -:101FB000C82B1092E9008091E80083FD0E94780E02 -:101FC000CF70C093E900CF910895909375018093ED -:101FD00074010895E0917401F0917501309721F03A -:101FE0000190F081E02D099480E00895E091740162 -:101FF000F0917501309721F00280F381E02D099472 -:102000000895E0917401F0917501309721F00480FA -:10201000F581E02D099408952091720130917301AA -:102020008217930771F09093730180937201E0918E -:102030007401F0917501309721F00680F781E02D51 -:1020400009940895209170013091710182179307CE -:1020500071F09093710180937001E0917401F0919F -:102060007501309721F00084F185E02D09940895E1 -:1020700008950C9438100E94921B0E9433030C9414 -:10208000541C9F92AF92BF92CF92DF92EF92FF9239 -:102090000F931F93CF93DF9300D000D000D0CDB724 -:1020A000DEB70E944B030DE010E0AA24A394B12CEC -:1020B000902E802F0E943904980129583E4F6901C3 -:1020C000F901F080F826A1F40150110988F78FEF8B -:1020D00089838A831B820E949B1B8160782F9D834A -:1020E0008C8349815A816B818D810E94D8102FC0C9 -:1020F0009091DA0191FF04C08E830E943F048E818B -:1021000025E030E0A501022E01C0440F0A94EAF751 -:10211000E42E4F21C1F029839A828E2191E009F4A7 -:1021200090E09B830E949B1B8160782F9D838C8312 -:1021300049815A816B818D810E94D810F60180817E -:10214000E826E08204C021503109E0F6BDCF0E94AC -:102150003B1F109176010E94EA0F1817B9F00E94F8 -:10216000EA0F8093760126960FB6F894DEBF0FBE75 -:10217000CDBFDF91CF911F910F91FF90EF90DF9036 -:10218000CF90BF90AF909F900C94E30826960FB627 -:10219000F894DEBF0FBECDBFDF91CF911F910F919D -:1021A000FF90EF90DF90CF90BF90AF909F900895F9 -:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82 -:1021C0000FBECDBF4F83588769877A878B87DE0123 -:1021D000119686E0FD0111928A95E9F785E0FE01EE -:1021E000379601900D928A95E1F749815A816B816A -:1021F0007C818D819E810E9421172B960FB6F894C9 -:10220000DEBF0FBECDBFDF91CF910895CF9388235E -:1022100009F4C2C0C82F823859F40E94EA0F81FD28 -:10222000BBC089E30E94FB190E94C81A89E30CC055 -:10223000833879F40E94EA0F80FDAEC083E50E94E6 -:10224000FB190E94C81A83E50E943D1ACF910C9495 -:10225000C81A843859F40E94EA0F82FD9DC087E4B1 -:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6 -:10227000813A48F48C2F0E947E2181118DC08C2FD1 -:102280000E94FB19E3CF80E28C0F883048F4C770BE -:1022900081E001C0880FCA95EAF70E94811AD6CF63 -:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB -:1022B00083E890E005C081E890E002C082E890E009 -:1022C000CF910C940C1088E58C0F833108F064C01A -:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118 -:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186 -:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106 -:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173 -:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB -:1023200038C082EE90E035C089EE90E032C08AEE8F -:1023300090E02FC085EB90E02CC086EB90E029C0A8 -:1023400087EB90E026C08CEC90E023C08DEC90E011 -:1023500020C083E891E01DC08AE891E01AC082E9BC -:1023600091E017C084E991E014C081E292E011C0CD -:1023700083E292E00EC084E292E00BC085E292E03C -:1023800008C086E292E005C087E292E002C08AE2DD -:1023900092E0CF910C942210CF910895882309F4F4 -:1023A0004BC0823859F40E94EA0F81FF45C089E38F -:1023B0000E94FB190E94C81A89E30CC0833871F48B -:1023C0000E94EA0F80FF38C083E50E94FB190E943B -:1023D000C81A83E50E943D1A0C94C81A843859F42F -:1023E0000E94EA0F82FF28C087E40E94FB190E9426 -:1023F000C81A87E4EFCF9CEF980F913A58F390E218 -:10240000980F983050F4877091E001C0990F8A9529 -:10241000EAF7892F0E94871ADFCF9BE5980F933048 -:1024200020F480E090E00C940C10885A833120F462 -:1024300080E090E00C9422100895882321F00E94FF -:10244000811A0C94C81A0895882321F00E94871AD3 -:102450000C94C81A08957F928F929F92AF92BF9268 -:10246000CF92DF92EF92FF920F931F93CF93DF9360 -:102470001F92CDB7DEB77C01C62E772EFC010581F9 -:1024800002950F70128111110E949E1A0E94F41978 -:10249000882379F0112369F080E28C0D883048F0B0 -:1024A00082E00E94DD190E94F41991E0D82ED9260D -:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C -:1024C0000C94B323872D807F072D0F70882311F084 -:1024D0000295007F112389F0002309F490C180E266 -:1024E0008C0D883020F4802F0E94811A03C0802F29 -:1024F0000E94911A0E94C81A82C18C2D0E94CE118E -:10250000002309F495C180E28C0D883020F4802FDF -:102510000E94871A03C0802F0E94971A0E94C81A2F -:1025200087C1972D907F872D8F70903211F0829503 -:10253000807FCC2021F0F1E0CF16B1F01EC0112336 -:1025400049F0002309F414C1013009F011C10E94BF -:10255000B11A6EC1002319F0013009F469C18983F1 -:102560000E94B41A89810AC1112321F0023008F0B7 -:102570005FC1FEC001115CC101C1112321F0002324 -:1025800009F4F6C03CC1002309F4F8C03EC1872D10 -:1025900086958695837090E0009719F0019761F019 -:1025A00047C1112321F08C2D972D937002C080E03C -:1025B00090E00E940C103CC1112321F08C2D972D2E -:1025C000937002C080E090E00E94221031C18C2DF7 -:1025D000112319F00E94431E02C00E94AB1E0E94EC -:1025E000301F26C1872D837009F052C0111120C100 -:1025F0008C2D829586958770880F880F9C2D9F70F3 -:10260000892E912CA12CB12C082E04C0880C991C69 -:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041 -:1026200020E030E0B901A80104C0440F551F661F27 -:10263000771F8A95D2F7CB01BA0160957095809586 -:10264000909503C060E070E0CB01272D269526957C -:10265000237030E02230310569F02330310589F0F4 -:10266000682979298A299B292130310571F00E9436 -:102670006918DEC0682979298A299B290E94851852 -:10268000D7C00E946918C501B4010E944D18D0C07E -:10269000112319F0872D817001C08695882309F4D4 -:1026A000C7C08C2D829586958770880F880F9C2DCA -:1026B0009F70892E912CA12CB12C082E04C0880C5F -:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC -:1026D00010E020E030E0B901A80104C0440F551F0C -:1026E000661F771F8A95D2F7CB01BA016095709566 -:1026F0008095909503C060E070E0CB01272D269572 -:1027000026952370422F50E04230510569F0433046 -:10271000510589F0682979298A299B294130510579 -:1027200071F00E94431984C0682979298A299B295C -:102730000E945F197DC00E944319C501B4010E9427 -:10274000271976C08C2D90E0FC01E05EF109E5319F -:10275000F10508F050C0E059FF4F0C94B3230C2D45 -:102760000F70872D8F71112331F00E94C018802FB8 -:102770000E941D125DC00E94E118802F0E94241249 -:1027800057C0112339F0011153C0872D8F710E945A -:1027900006194EC0023008F04BC0F7CF112339F0B4 -:1027A000872D8F710E94C01843C01123C9F3872D54 -:1027B0008F710E94E1183CC0112329F0872D8F7181 -:1027C0000E94AB1835C00E94A11832C0112351F0ED -:1027D000172D1F71812F0E94C01863E0812F0E9466 -:1027E000D41926C081E00E94DD19023008F182E090 -:1027F0000E94DD191DC0112331F0002389F28C2DB8 -:102800000E94061115C0002391F28C2D0E94CE115A -:102810000FC0472D4F706C2DC7010E9415050E94F7 -:10282000C51706C0472D4F706C2DC7010E94F205D9 -:10283000DD20F9F00E94D01980FD1BC0F701128243 -:102840000E94CA190E94C018C7010E9448140E9421 -:10285000CA190F90DF91CF911F910F91FF90EF90C8 -:10286000DF90CF90BF90AF909F908F907F900C940F -:10287000E1180F90DF91CF911F910F91FF90EF9092 -:10288000DF90CF90BF90AF909F908F907F900895F2 -:102890000F931F93CF93DF93EC01888199812B8154 -:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B -:1028B0000E944A05882371F0688179818A810E948B -:1028C000C6198C010E947B190E944218B801CE01E2 -:1028D0000E942B12DF91CF911F910F9108950E94BA -:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471 -:1028F000E11F0E94301F80E090E00E940C1080E0F9 -:1029000090E00C9422100E948E1A0C946F140E9476 -:10291000BB19292F22952F7030E02C3031054CF453 -:102920002A3031056CF42250310922303105A8F4E7 -:1029300007C02C30310569F02F30310551F00DC042 -:10294000803F69F018F4803E40F409C0843F29F4C8 -:1029500006C093FB882780F9089580E0089581E000 -:102960000895CF93DF9300D000D01F92CDB7DEB78C -:102970000F900F900F900F900F90DF91CF910895CF -:10298000CF93DF9300D000D000D0CDB7DEB726962E -:102990000FB6F894DEBF0FBECDBFDF91CF91089583 -:1029A0001F93CF93DF93C091850116E0809186013C -:1029B000C81799F0D0E01C9FF0011D9FF00D112465 -:1029C000E957FE4F408151816281738184819581F5 -:1029D0000E94C0142196C770E9CFDF91CF911F915B -:1029E00008954091B7015091B8016091B90170917B -:1029F000BA018091BB019091BC010C94C0148091EC -:102A0000BC0182958F7009F054C08091B901882370 -:102A100009F44FC080918501A09186016091B701B2 -:102A20007091B8014091BA015091BB01B6E08A178C -:102A300009F43FC090E041155105C1F17F3F11F409 -:102A40006F3FA1F1B89FF001B99FF00D1124E95734 -:102A5000FE4F218172132AC02081621327C0228178 -:102A6000211124C0238134812417350710F421500B -:102A70003109241B350B283C3105C0F42091BC01E1 -:102A80002F7020612093BC0126E0289FF001299F30 -:102A9000F00D1124E457FE4F80818F708061808398 -:102AA00087EB91E00E9448140C94D0140196877033 -:102AB000BECF0895CF92DF92EF92FF920F931F93B4 -:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32 -:102AD0000FBECDBF8C0185E0F801DE011D9601908F -:102AE0000D928A95E1F7D8014C9111965C9111975E -:102AF00012966C9112971396CD90DC9014973091AA -:102B0000B7017091B8018091BA019091BB01009713 -:102B100009F46BC17F3F19F43F3F09F466C1E090AF -:102B2000B901EE2009F4C0C02091BC01C816D90635 -:102B300028F0F601E81BF90BCF0104C080959095B1 -:102B40008C0D9D1DFF24F394883C910578F0F12CA9 -:102B5000207F09F0C6C07C2DD98AC88A89890E9445 -:102B6000B11487EB91E00E944814B1C0822F807F9E -:102B700009F046C0751314C0341312C0611110C09F -:102B80002F7020612093BC010E94F11487EB91E02B -:102B90000E9448148091BC01D80115968C932EC0D8 -:102BA000CD2819F15F3F11F44F3FF9F0F62E611176 -:102BB0001CC0809185012091860136E0821709F4BE -:102BC0005AC090E0389FF001399FF00D1124E95769 -:102BD000FE4F7181571306C07081471303C0728185 -:102BE000711103C001968770E9CFF62E662309F4B0 -:102BF00018C18091BC0181608093BC01F12C11C18E -:102C0000751308C0341306C0611104C08091BC0163 -:102C1000D801C3C04D875E878D859E856A8B0E94D3 -:102C200087146A898823E1F16623D1F12091BC01E0 -:102C3000822F82958F7090E0029774F08091B70197 -:102C40009091B80198878F831986DB86CA862C8776 -:102C5000CE0107960E94481486E0F801A7EBB1E088 -:102C600001900D928A95E1F70E94FF140E94F114E1 -:102C7000FF24F394D6C04D875E878D859E850E9484 -:102C8000BB19292F22952F7030E0223031050CF02E -:102C9000BCC09F7009F0B6C0805E883008F4C1C027 -:102CA000C8010E944814E4CFC816D90608F453C0DE -:102CB000F601E81BF90BCF01883C910508F450C0E0 -:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E -:102CD000F1E086E0DF011D928A95E9F70E94F11488 -:102CE000A0C0751314C0341312C0611110C08091BC -:102CF000BC01F8018583C8010E94481486E0E7EB17 -:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C -:102D10005E878D859E856A8B0E9487146A898823C9 -:102D200009F4BECF662309F4BBCF2091BC01822FEA -:102D300082958F7090E002970CF48ECF8091B7014E -:102D40009091B8019A8389831B82DD82CC822E8385 -:102D5000CE0101967FCF809590958C0D9D1DACCFB7 -:102D6000F62E662309F49CCF75132EC034132CC0A5 -:102D70002091BC0120FD1FC0822F82958F70D9F059 -:102D8000D80115962C9315978F3049F08F5F982FA7 -:102D90009295907F822F8F70892B15968C93C80106 -:102DA0000E94481486E0F801A7EBB1E001900D9273 -:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7 -:102DC0000D928A95E1F72DC04D875E878D859E8592 -:102DD0000E948714811140CF8091BC018160809353 -:102DE000BC01C8010E9448141CC0662309F458CFD6 -:102DF0004D875E878D859E850E948714882309F400 -:102E00004FCF2ACF811148CF0CC0243031050CF0B0 -:102E100047CF9F7009F440CFF8019581907F09F06A -:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D -:102E3000DF91CF911F910F91FF90EF90DF90CF9096 -:102E400008951F93CF93DF93CDB7DEB72C970FB6BE -:102E5000F894DEBF0FBECDBF4F83588769877A874E -:102E60008B879C87CE0107960E945A15882369F0AC -:102E70008F8198852A853B85232BF1F19F3F09F0AF -:102E800063C08F3F09F060C037C086E0FE0137960F -:102E9000DE01119601900D928A95E1F76F81788598 -:102EA000EA85FB85309741F17F3F11F46F3F21F1B7 -:102EB0002091860130E0C9010196877099274091E1 -:102EC000850150E08417950709F447C069837A8328 -:102ED000FD83EC8396E0929FD001939FB00D112467 -:102EE000A957BE4FFE01319601900D929A95E1F7D8 -:102EF000809386010E94D01416E080918501909104 -:102F000086018917C1F1189FC001112489579E4F6E -:102F10000E945A15882379F1E09185011E9FF001E6 -:102F20001124E957FE4F4081518162817381848170 -:102F300095810E94C0148091850190E00196877070 -:102F4000992780938501D9CF4F81588569857A85E6 -:102F50008B859C850E94C014CFCF0E948314109251 -:102F6000860110928501E7EBF1E086E0DF011D921A -:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45 -:102F8000CDBFDF91CF911F910895EF92FF920F93E4 -:102F90001F93CF93DF938C01009709F46CC0F12C41 -:102FA000EE24E394E8012196F8018491843740F4FB -:102FB000843008F051C0813081F0823019F15BC05B -:102FC000853709F444C0A8F19CE7980F903708F0C2 -:102FD00052C08F770E94CE1141C00E5F1F4FFE017D -:102FE000C49180E28C0F883048F4C7708E2D01C0E8 -:102FF000880FCA95EAF70E94A11A14C08C2F0E946C -:1030000006112DC00E5F1F4FFE01C49180E28C0F90 -:10301000883058F4C7708E2D01C0880FCA95EAF722 -:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3 -:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3 -:103040009FE00197F1F700C00000C150F6CF0E5F7E -:103050001F4FFE01F49003C00E9406118E018F2DB8 -:10306000882309F49FCFEFE9FFE03197F1F700C023 -:1030700000008150F5CFDF91CF911F910F91FF900C -:10308000EF90089508956093C1017093C2018093F9 -:10309000C3019093C4010C946F140F931F9300917C -:1030A000C1011091C2012091C3013091C401DC0122 -:1030B000CB01802B912BA22BB32B8093C10190933A -:1030C000C201A093C301B093C4011F910F910C944E -:1030D0006F140F931F930091C1011091C2012091B1 -:1030E000C3013091C401DC01CB0180239123A223D1 -:1030F000B3238093C1019093C201A093C301B09305 -:10310000C4011F910F910C946F140F931F930091A2 -:10311000C1011091C2012091C3013091C401DC01B1 -:10312000CB0180279127A227B3278093C1019093D9 -:10313000C201A093C301B093C4011F910F910C94DD -:103140006F141092BD011092BE011092BF01109237 -:10315000C0010C946F1441E050E060E070E004C0E6 -:10316000440F551F661F771F8A95D2F74093BD0104 -:103170005093BE016093BF017093C0010C946F1413 -:1031800041E050E060E070E004C0440F551F661F4E -:10319000771F8A95D2F78091BD019091BE01A091D1 -:1031A000BF01B091C001482B592B6A2B7B2B409358 -:1031B000BD015093BE016093BF017093C0010C9498 -:1031C0006F1441E050E060E070E004C0440F551F10 -:1031D000661F771F8A95D2F7409550956095709538 -:1031E0008091BD019091BE01A091BF01B091C0013D -:1031F000482359236A237B234093BD015093BE018A -:103200006093BF017093C0010C946F1441E050E0D3 -:1032100060E070E004C0440F551F661F771F8A9559 -:10322000D2F78091BD019091BE01A091BF01B091F4 -:10323000C001482759276A277B274093BD01509337 -:10324000BE016093BF017093C0010C946F140F9383 -:103250001F930091BD011091BE012091BF013091DB -:10326000C001DC01CB01802B912BA22BB32B8093CF -:10327000BD019093BE01A093BF01B093C0011F9107 -:103280000F910C946F140F931F930091BD01109137 -:10329000BE012091BF013091C001DC01CB01802330 -:1032A0009123A223B3238093BD019093BE01A093E9 -:1032B000BF01B093C0011F910F910C946F140F9335 -:1032C0001F930091BD011091BE012091BF0130916B -:1032D000C001DC01CB0180279127A227B32780936F -:1032E000BD019093BE01A093BF01B093C0011F9197 -:1032F0000F910C946F140895CF92DF92EF92FF928A -:103300000F931F93CF93DF938C01C090C101D09096 -:10331000C201E090C301F090C4018091BD01909181 -:10332000BE01A091BF01B091C001C82AD92AEA2AE2 -:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520 -:10334000A795979587950A94D2F780FF06C0B80194 -:103350008C2F0E944808019721F4219760F780E0A4 -:1033600001C08C2FDF91CF911F910F91FF90EF90B3 -:10337000DF90CF900895CF93DF93EC010E947C19EA -:10338000BE010E944808DF91CF910895CB010E94B1 -:10339000BB1908958091C5018595859585950895FA -:1033A0008091C5018770089598E0899F900111244C -:1033B000262B2093C5010C94C0182091C50180953F -:1033C00082238093C501982F977069F430E0482FCD -:1033D000552747FD50952417350729F08595859584 -:1033E00085950C94E11808959091C501977081E03E -:1033F00009F480E0089590910C01992321F09091B7 -:103400000D01911109C020910E0130910F01F901B8 -:1034100032969FEF40E01FC0982F9695969596950F -:103420009F3050F5E0910E01F0910F01E90FF11D71 -:10343000877021E030E0A90102C0440F551F8A9532 -:10344000E2F7CA019181892B818308959F3F39F06A -:103450004F5F4E3041F051915813F8CF0DC05111CC -:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08 -:1034700097FDFA9582830895089590910C01992300 -:1034800021F090910D01911109C020910E01309110 -:103490000F01F9013296205F3F4F1FC0982F96957C -:1034A000969596959F30F0F4E0910E01F0910F0102 -:1034B000E90FF11D877021E030E0A90102C0440F3F -:1034C000551F8A95E2F7CA018095918189238183EE -:1034D00008953196E217F30729F090819813F9CFF8 -:1034E0001082F7CF089581E090E0E0910E01F09115 -:1034F0000F01E80FF91F1082019680319105A9F79D -:1035000008959091D901892B8093D90108958095D0 -:103510009091D90189238093D90108951092D901FE -:1035200008959091D801892B8093D80108958095B2 -:103530009091D80189238093D80108951092D801E1 -:1035400008959091D701892B8093D7010895809594 -:103550009091D70189238093D70108951092D701C4 -:1035600008958093C60108951092C6010895809130 -:103570000E0190910F01FC0131969C01205F3F4F9D -:1035800080E0919191118F5FE217F307D1F70895D1 -:10359000E0910E01F0910F018091D9018083E091BB -:1035A0000E01F0910F0190818091D801892B8083C9 -:1035B000E0910E01F0910F0190818091D701892B4C -:1035C00080838091C601882361F0E0910E01F09123 -:1035D0000F019081892B80830E94B71A811110926C -:1035E000C60180910E0190910F010C94F60F20E01E -:1035F000009739F0AC0141505109842395232F5F86 -:10360000F7CF822F0895CF92DF92EF92FF926C0155 -:10361000EE24FF24C114D104E104F10421F0C70118 -:10362000B60120E101C020E0C72ED82EE92EFF24EC -:10363000C114D104E104F10419F0285FC701B601F7 -:103640006B017C0154E0F694E794D794C7945A95A3 -:10365000D1F7C114D104E104F10419F02C5FC701C2 -:10366000B6016B017C0142E0F694E794D794C794CD -:103670004A95D1F7C114D104E104F10419F02E5F89 -:10368000C701B601DC01CB01B695A7959795879543 -:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5 -:1036A000DF90CF9008958091F101843021F1109244 -:1036B000DB0120E488E190E00FB6F894A8958093B0 -:1036C00060000FBE2093600080E00E94E30883B793 -:1036D000817F846083BF83B7816083BF789488953E -:1036E00083B78E7F83BF88E10FB6F8948093600024 -:1036F000109260000FBE0895089508950E947C1BEB -:103700000E944B030E947D1B0E94400491E08111A6 -:1037100001C090E0892F08950E9483140E94EA0F4F -:103720000C94E30882E084BD93E095BD9AEF97BDC9 -:1037300080936E0008952FB7F8948091DC019091EA -:10374000DD01A091DE01B091DF012FBF0895CF927E -:10375000DF92EF92FF920F931F932FB7F89440914F -:10376000DC015091DD016091DE017091DF012FBF1E -:103770006A017B01EE24FF248C0120E030E0C016BA -:10378000D106E206F30610F4415051099A01281BB4 -:10379000390BC9011F910F91FF90EF90DF90CF90EF -:1037A00008951F920F920FB60F9211248F939F933B -:1037B000AF93BF938091DC019091DD01A091DE0178 -:1037C000B091DF010196A11DB11D8093DC019093A2 -:1037D000DD01A093DE01B093DF01BF91AF919F9116 -:1037E0008F910F900FBE0F901F9018950E94E70CBD -:1037F000F8942FEF87EA91E6215080409040E1F75E -:1038000000C0000087E090EBDC018093FB01909307 -:10381000FC01A093FD01B093FE019CE088E10FB68E -:10382000F894A895809360000FBE90936000FFCF3E -:10383000EF92FF920F931F93CF93DF93D82FCDE09A -:103840008C2F0E94390405E010E0E82EF12CC7010E -:10385000002E02C0959587950A94E2F780FF09C073 -:10386000602F7C2F80E00E94F305D81302C081E016 -:1038700006C00150110958F7C15010F780E0DF91E0 -:10388000CF911F910F91FF90EF900895CF93C82F84 -:103890008CE20E94181C882321F08C2FCF910C946D -:1038A000181C80E0CF910895CF930E949B1D811139 -:1038B00002C00E94811DC5E6C15049F00E944B0321 -:1038C0008FE39CE90197F1F700C00000F5CF89E292 -:1038D0000E94461C811113C18AE20E94461C81117C -:1038E0000E94811D85E00E94461C81110E94F61BEA -:1038F0000E94A61D8093DA0187E00E94461C88235F -:10390000A9F18BE10E94461C882351F08091DA01D5 -:1039100081FB222720F991E0922790FB81F90EC0CC -:103920008EE00E94461C882361F08091DA0182FBC0 -:10393000222720F991E0922790FB82F98093DA0107 -:1039400015C080E10E94461C9091DA01882341F065 -:1039500093FB222720F981E0822780FB93F904C0A2 -:10396000892F809580FB90F99093DA018091DA019C -:103970000E94AA1D0E94B81D8093FA0180EE0E9449 -:10398000461C882341F08091FA01982F909590FB76 -:1039900080F98093FA0189E30E94461C882359F03C -:1039A0008091FA0181FB222720F991E0922790FB78 -:1039B00081F98093FA0182EE0E94461C882359F017 -:1039C0008091FA0182FB222720F991E0922790FB57 -:1039D00082F98093FA0186EE0E94461C882359F0F2 -:1039E0008091FA0183FB222720F991E0922790FB36 -:1039F00083F98093FA0183EE0E94461C882359F0D4 -:103A00008091FA0184FB222720F991E0922790FB14 -:103A100084F98093FA0185E30E94461C882359F0BB -:103A20008091FA0185FB222720F991E0922790FBF3 -:103A300085F98093FA0181E30E94461C882359F09E -:103A40008091FA0186FB222720F991E0922790FBD2 -:103A500086F98093FA0181E10E94461C882359F07F -:103A60008091FA0187FB222720F991E0922790FBB1 -:103A700087F98093FA018091FA010E94BC1D809120 -:103A8000FA0187FB882780F980930D0187E20E9465 -:103A9000461CC82F8EE10E94461C8111C2608FE136 -:103AA0000E94461C8111C46080E20E94461C811164 -:103AB000C86081E20E94461C8111C06182E20E94BE -:103AC000461C8111C06283E20E94461C8111C064C1 -:103AD00084E20E94461C882311F0C06802C0CC23F7 -:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4 -:103AF000682F70E080E090E0CF910C944318CF9154 -:103B000008956DEE7EEF80E090E00E94ED2360E08E -:103B100082E090E00E94DB2360E083E090E00E947E -:103B2000DB2360E084E090E00E94DB2360E085E03E -:103B300090E00C94DB2380E090E00E94D52321E00C -:103B40008D3E9E4F09F020E0822F089582E090E0A4 -:103B50000C94CD23682F82E090E00C94DB2383E06B -:103B600090E00C94CD23682F83E090E00C94DB234D -:103B700084E090E00C94CD23682F84E090E00C94D6 -:103B8000DB238091E20180FF0BC06091130185E08F -:103B9000689FB001112475956795759567952BC041 -:103BA00081FF09C06091130185E0689FB001112475 -:103BB0007595679520C082FF07C06091130185E06D -:103BC000689FB001112417C09091E3019923D1F0AF -:103BD00060911201961788F72091130185E0289FC4 -:103BE00090011124929FA001939F500D112470E029 -:103BF000CA010E949F236038710540F46115710568 -:103C000039F002C065E070E0862F08958FE70895CF -:103C100081E008958091E20180FF08C06091110168 -:103C200070E0759567957595679521C081FF06C011 -:103C30006091110170E07595679519C082FF04C00D -:103C40006091110170E010C09091E3019923C1F0DF -:103C5000609110019617A0F780911101899FC00112 -:103C6000112470E00E949F236038710528F46115CB -:103C7000710521F0862F08958FE7089581E008955A -:103C800061E070E0F4CF803F21F40E94C11D819576 -:103C900004C0813F29F40E94C11D8093E60108956C -:103CA000823F21F40E94C11D819504C0833F29F405 -:103CB0000E94C11D8093E5010895893F19F40E9477 -:103CC0000A1E05C08A3F31F40E940A1E8195809326 -:103CD000E70108958B3F21F40E940A1E819504C0DC -:103CE0008C3F29F40E940A1E8093E8010895843FC6 -:103CF00021F48091E401816017C0853F21F4809117 -:103D0000E401826011C0863F21F48091E401846067 -:103D10000BC0873F21F48091E401886005C0883F93 -:103D200031F48091E40180618093E40108958D3F36 -:103D300021F48091E20181600BC08E3F21F48091DB -:103D4000E201826005C08F3F29F48091E201846026 -:103D50008093E2010895803F39F48091E60187FF66 -:103D60006CC01092E60169C0813F29F48091E601A0 -:103D70001816BCF362C09091E501823F29F497FFC9 -:103D80005CC01092E50159C0833F19F41916CCF3B9 -:103D900054C0893F41F48091E70118160CF04DC0E2 -:103DA0001092E7014AC08A3F29F48091E70187FF1A -:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6 -:103DC0001092E8013AC08C3F29F48091E80118165E -:103DD000BCF333C0843F21F48091E4018E7F17C08F -:103DE000853F21F48091E4018D7F11C0863F21F44D -:103DF0008091E4018B7F0BC0873F21F48091E40127 -:103E0000877F05C0883F31F48091E4018F7E8093E5 -:103E1000E40113C08D3F21F48091E2018E7F0BC03D -:103E20008E3F21F48091E2018D7F05C08F3F29F400 -:103E30008091E2018B7F8093E2018091E501811105 -:103E40000EC08091E60181110AC08091E7018111C5 -:103E500006C08091E801811102C01092E30108952B -:103E600084EE91E00E9401100E949B1B9093E1015F -:103E70008093E00108951F93CF93DF938091E00139 -:103E80009091E1010E94A71BAC019091E30199235D -:103E900021F02091140130E006C0209115018AE044 -:103EA000289F900111244217530708F486C080917F -:103EB000E501C091E601D091E7011091E80181117F -:103EC00007C0C11176C0D11174C0111172C075C084 -:103ED0009F3F19F09F5F9093E301181624F40E940E -:103EE000C11D8093E5018091E50187FF05C00E9417 -:103EF000C11D81958093E5011C1624F40E94C11D0B -:103F00008093E6018091E60187FF05C00E94C11DF4 -:103F100081958093E6016091E501662339F1C091B6 -:103F2000E601CC2319F1772767FD7095872F972F2E -:103F30000E94B02223E333E343E35FE30E941423B0 -:103F40000E947D226093E5016C2F772767FD7095B5 -:103F5000872F972F0E94B02223E333E343E35FE3ED -:103F60000E9414230E947D226093E6011D1624F412 -:103F70000E940A1E8093E7018091E70187FF05C038 -:103F80000E940A1E81958093E701111624F40E9475 -:103F90000A1E8093E8018091E80187FF05C00E9416 -:103FA0000A1E81958093E801DF91CF911F910C94B7 -:103FB000301F9F3F09F08ECF96CFDF91CF911F9199 -:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE -:103FD0001092E3011092E2010895833081F128F4F8 -:103FE000813059F08230D1F00895853009F449C00C -:103FF000B8F1863009F456C0089580911501262F36 -:1040000030E0280F311D2F3F310524F4680F6093F5 -:10401000150108958FEF8093150108958091140183 -:10402000262F30E0280F311D2F3F310524F4680F73 -:104030006093140108958FEF809314010895809187 -:104040001301262F30E0280F311D2F3F310524F4B6 -:10405000680F6093130108958FEF80931301089503 -:1040600080911201262F30E0280F311D2F3F31059E -:1040700024F4680F6093120108958FEF809312016A -:10408000089580911101262F30E0280F311D2F3F18 -:10409000310524F4680F6093110108958FEF809328 -:1040A0001101089580911001262F30E0280F311D55 -:1040B0002F3F310524F4680F6093100108958FEFAE -:1040C000809310010895833011F128F4813049F074 -:1040D000823091F00895853081F120F18630C1F170 -:1040E000089580911501681720F4861B80931501AF -:1040F000089510921501089580911401681720F415 -:10410000861B8093140108951092140108958091E4 -:104110001301681720F4861B8093130108951092F1 -:104120001301089580911201681720F4861B809373 -:1041300012010895109212010895809111016817DB -:1041400020F4861B809311010895109211010895A7 -:1041500080911001681720F4861B80931001089548 -:104160001092100108950F931F938D3109F46BC0C5 -:1041700008F03FC08E3009F47FC0C0F4873009F4E6 -:1041800069C068F4863009F0B1C08091DA01817F9E -:104190008E7F8093DA0181E08093EA01A8C08830A5 -:1041A00009F4A2C08B3009F49FC0A0C0863109F485 -:1041B0009BC078F4803109F472C0813109F096C057 -:1041C0000E94831490910D0181E0892780930D0155 -:1041D0008BC0893109F488C08B3109F087C0809188 -:1041E000DA0181FB222720F991E0922790FB81F9E7 -:1041F0004CC0853309F470C048F4873209F46CC0B0 -:1042000008F459C0893209F467C070C0833438F4A7 -:104210008A3308F04EC0883309F466C067C083341F -:1042200009F45AC0883409F061C00E9483140FEF6A -:1042300013ED20E3015010402040E1F700C00000E2 -:104240000E94F61B51C00E9437220E94EA0F0E9472 -:10425000E3084AC09091DA01892F8095817080FB34 -:1042600090F929F0966098609093DA0140C0997FA8 -:10427000977F9093DA0138C08091DA0182FB222780 -:1042800020F991E0922790FB82F98093DA0199233B -:1042900059F18091DA0181608093DA0125C0809123 -:1042A000DA0183FB222720F991E0922790FB83F922 -:1042B000ECCF895301C08D5141E050E060E070E0E7 -:1042C0008A019B0104C0000F111F221F331F8A9512 -:1042D000D2F7C901B80104C061E070E080E090E06D -:1042E0000E9443180E94831481E001C080E01F9166 -:1042F0000F91089580E0089580E00895CF93C82F2E -:104300008091EA01813079F018F08230E9F187C0BC -:10431000E0910E01F0910F018081813169F08232CC -:1043200009F07FC009C0E0910E01F0910F0180817A -:10433000813111F0823261F48C2F0E947A21811137 -:1043400004C08C2F0E94B3201DC081E090E01AC0F1 -:104350008C2F0E947C21811114C0C43179F048F463 -:10436000CB3079F0C03109F060C082E08093EA017F -:1043700008C0C93219F0C83321F057C01092EA01C1 -:1043800054C081E0817053C0C93289F118F5C4313D -:1043900071F1A8F4C73009F046C08AE08093150196 -:1043A00094E19093140193E0909313018093120190 -:1043B00088E08093110188E28093100134C0CE51CF -:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB -:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC -:1043E00013C0C13579F0C235F1F461E00DC08091A0 -:1043F000E901882319F01092E90115C081E080934A -:10440000EA0115C061E006C08091E9010E94ED1F3C -:104410000AC06AE08091E9010E94632004C0109202 -:10442000EA0180E004C081E002C080E0ABCFCF9120 -:104430000895E1E8F0E08081886080838081816078 -:1044400080838FB7F89493E09093890090ED9093D8 -:1044500088008FBF0895EFE6F0E08081826080835E -:104460000895EFE6F0E080818D7F80830895EFE688 -:10447000F0E0908182E08927808308951F920F9257 -:104480000FB60F9211242F933F934F935F936F9327 -:104490007F938F939F93AF93BF93EF93FF938091FD -:1044A000EB019091EC0101969093EC018093EB016C -:1044B000811103C082E00E94E308E091EC01E695DF -:1044C000E695F0E0EC54FB4FE4918091EB018E1304 -:1044D00003C080E00E94E308FF91EF91BF91AF918C -:1044E0009F918F917F916F915F914F913F912F910C -:1044F0000F900FBE0F901F90189504D06894B111C3 -:104500008DC0089570D088F09F5790F0B92F9927EB -:10451000B751A0F0D1F0660F771F881F991F1AF0CE -:10452000BA95C9F712C0B13081F077D0B1E00895E3 -:1045300074C0672F782F8827B85F39F0B93FCCF364 -:10454000869577956795B395D9F73EF490958095C4 -:10455000709561957F4F8F4F9F4F0895E89409C0E4 -:1045600097FB3EF490958095709561957F4F8F4FA6 -:104570009F4F9923A9F0F92F96E9BB279395F695BC -:10458000879577956795B795F111F8CFFAF4BB0F3A -:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E -:1045A000882311F096E911C0772321F09EE8872F28 -:1045B000762F05C0662371F096E8862F70E060E0E4 -:1045C0002AF09A95660F771F881FDAF7880F96955D -:1045D000879597F9089557FD9058440F551F59F046 -:1045E0005F3F71F04795880F97FB991F61F09F3FE0 -:1045F00079F087950895121613061406551FF2CF09 -:104600004695F1DF08C0161617061806991FF1CF58 -:1046100086957105610508940895E894BB2766277F -:104620007727CB0197F908950BD078C069D028F08F -:104630006ED018F0952309F05AC05FC01124EECF58 -:10464000CADFA0F3959FD1F3950F50E0551F629FED -:10465000F001729FBB27F00DB11D639FAA27F00DDB -:10466000B11DAA1F649F6627B00DA11D661F829F02 -:104670002227B00DA11D621F739FB00DA11D621FE7 -:10468000839FA00D611D221F749F3327A00D611D04 -:10469000231F849F600D211D822F762F6A2F1124E6 -:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39 -:1046B000BB1F661F771F881F91505040A9F79E3F70 -:1046C000510570F014C0AACF5F3FECF3983EDCF3C5 -:1046D000869577956795B795F795E7959F5FC1F7AD -:1046E000FE2B880F911D9695879597F9089597F958 -:1046F0009F6780E870E060E008959FEF80EC089588 -:1047000000240A94161617061806090608950024B0 -:104710000A9412161306140605060895092E03942A -:10472000000C11F4882352F0BB0F40F4BF2B11F49E -:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF -:10474000072E16F4009407D077FD09D00E94B923F4 -:1047500007FC05D03EF4909581959F4F0895709584 -:1047600061957F4F0895EE0FFF1F0590F491E02DA6 -:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8 -:10478000B70710F0A61BB70B881F991F5A95A9F7FA -:1047900080959095BC01CD010895F999FECF92BD09 -:1047A00081BDF89A992780B50895A8E1B0E042E06C -:1047B00050E00C94F523262FF999FECF92BD81BDD0 -:1047C000F89A019700B4021639F01FBA20BD0FB64F -:1047D000F894FA9AF99A0FBE08950196272F0E942D -:1047E000DC230C94DB23DC01CB01FC01F999FECF27 -:1047F00006C0F2BDE1BDF89A319600B40D92415069 -:0A4800005040B8F70895F894FFCF78 -:10480A000220E508730950091C09E8080101C701DB -:10481A0028080A03140A3F4D363975042804F2039E -:10482A00B9034C0365037E039703010203040506DB -:04483A000708090062 -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/plover/compiled.hex b/keyboards/ergodox_ez/keymaps/plover/compiled.hex deleted file mode 100644 index 5e04e2494..000000000 --- a/keyboards/ergodox_ez/keymaps/plover/compiled.hex +++ /dev/null @@ -1,1169 +0,0 @@ -:100000000C94CE020C9412030C9412030C94120361 -:100010000C9412030C9412030C9412030C9412030C -:100020000C9412030C9412030C94B60D0C94880ECD -:100030000C9412030C9412030C9412030C941203EC -:100040000C9412030C9492220C9412030C9412033D -:100050000C9412030C94251C0C9412030C941203A0 -:100060000C9412030C9412030C9412030C941203BC -:100070000C9412030C9412030C9412030C941203AC -:100080000C9412030C9412030C9412030C9412039C -:100090000C9412030C9412030C9412030C9412038C -:1000A0000C9412030C9412030C941203F50E170F08 -:1000B0000510170F05105C0F7F0F0510D40FE70F09 -:1000C000B612B612E512E5121B133B136C146C1436 -:1000D00046136C14F613F6135D146C146C1466144A -:1000E0000314031403140314031403140314031458 -:1000F0000314031403140314031403140314031448 -:1001000015142214291430143A140000F0A12E0002 -:100110002B002900E100354100001E0014000400FE -:100120001D713400E2001F001A0016001B00E104DC -:100130004C00200008000700060050002A002100A3 -:100140001500090019004F004D00220017000A0099 -:10015000050000006574E30001540000007F00000A -:100160004A004F000354000000770000E200230023 -:100170001C000B00110000002971240018000D0064 -:10018000100052004B0025000C000E0036005100FC -:100190002C00260012000F0037002F002800270037 -:1001A00013003342387130004E002D00310034000E -:1001B000E500C10000000100010001000100010094 -:1001C00000003A001E0220022202010001003B0052 -:1001D0001F0221022302010001003C002F0226021F -:1001E0002F00010001003D00300227023000010015 -:1001F00001003E003102350035020000010001001F -:1002000001000000010000000100010001000000E9 -:100210000100000001003F005200510024020000D4 -:1002200001004000240021001E00010001004100E7 -:10023000250022001F003700010042002600230095 -:10024000200027000100430025022E0231002E006D -:100250000100440045000100010001000000010010 -:100260000100010001000100000001000100010087 -:1002700001000100010001000100F2000100010085 -:10028000F5000100F000F1000100F400F4000100AD -:100290000100F3000100F500010001000100010070 -:1002A0000100000001000100010000000100000049 -:1002B0000100010001000000010000000100010038 -:1002C0000100F20001000000010001000100F10046 -:1002D0000100A900010001000100F000AC00AA002B -:1002E000B70001000100F300AB00A800B600010058 -:1002F0000100010001000100010001000100AE0049 -:1003000001000100000000000000000000000000EB -:10031000000000001E0014000400000000000000A7 -:100320001F001A001600000019000000200008003D -:100330000700000006000000210015000900000071 -:1003400000000000220017000A000000C4000000A6 -:10035000000000000000000000000100000000009C -:10036000000000000100000023001C000B00000042 -:1003700001000000240018000D0001000100000031 -:1003800025000C000E0001001000000026001200E5 -:100390000F000000110000002700130033000000D0 -:1003A0000000010001002F003400000000001603CF -:1003B0004500720067006F0044006F007800200065 -:1003C00045005A00000016034500720067006F00E8 -:1003D00044006F007800200045005A00000004032C -:1003E000090409026D00040100A0FA0904000001DB -:1003F00003010100092111010001223F00070581CD -:100400000308000A09040100010301020009211187 -:10041000010001224D000705820308000A090402B9 -:10042000000103000000092111010001223600072C -:1004300005830308000A0904030001030000000902 -:100440002111010001223900070584031000011267 -:1004500001100100000008EDFE0713010001020079 -:100460000105010906A101050719E029E715002585 -:100470000195087501810205081901290595057581 -:10048000019102950175039101050719002977155E -:10049000002501957875018102C005010980A1013F -:1004A000850216010026B7001A01002AB700751050 -:1004B00095018100C0050C0901A101850316010009 -:1004C000269C021A01002A9C02751095018100C029 -:1004D00005010902A1010901A10005091901290568 -:1004E00015002501950575018102950175038101AE -:1004F0000501093009311581257F950275088106AE -:1005000009381581257F950175088106050C0A3883 -:10051000021581257F950175088106C0C005010976 -:1005200006A101050719E029E715002501950875C1 -:1005300001810295017508810105081901290595B8 -:1005400005750191029501750391010507190029AF -:10055000FF150025FF950675088100C0000000000A -:1005600000000000000000010204060A0F17202C02 -:100570003A4A5D71879DB3C7DAE9F5FCFFFCF5E9FE -:10058000DAC7B39D87715D4A3A2C20170F0A06041B -:1005900002010000000000000000000011241FBE46 -:1005A000CFEFDAE0DEBFCDBF04B603FE24C08091FA -:1005B000FB019091FC01A091FD01B091FE018730FB -:1005C000904BA740B04BB9F41092FB011092FC0184 -:1005D0001092FD011092FE0114BE84B7877F84BF84 -:1005E00088E10FB6F89480936000109260000FBE0F -:1005F000E0E0FFE3099511E0A0E0B1E0E2EBF8E410 -:1006000002C005900D92A433B107D9F711E0A4E31D -:10061000B1E001C01D92AB3FB107E1F70E94FA0AB9 -:100620000C9457240C9400001092B9008AE0809337 -:10063000B800089594EA9093BC009091BC0097FF95 -:10064000FCCF9091B900987F983021F0903111F053 -:1006500081E008958093BB0084E88093BC00809182 -:10066000BC0087FFFCCF8091B900887F883111F0F2 -:10067000803471F780E0089584E98093BC00809114 -:10068000BC0084FDFCCF08958093BB0084E8809378 -:10069000BC008091BC0087FFFCCF9091B900987F8F -:1006A00081E0983209F480E0089584E88093BC00EA -:1006B0008091BC0087FFFCCF8091BB0008958091A2 -:1006C0000101811115C080E40E941A038093010189 -:1006D00081110CC082E10E944403809301018111C9 -:1006E00005C08FEF0E944403809301010E943C03E8 -:1006F00084B1807F84B985B1807F85B98AB1837FD9 -:100700008AB98BB1837F8BB93E98469808950E9431 -:100710001A05809301010E945F0380B38C7080BB37 -:1007200081B3836F81BBA5E3B1E0E3E4F1E08EE048 -:100730008E0F11921D928E13FCCF0C940405BF9264 -:10074000CF92DF92EF92FF920F931F93CF93DF939D -:1007500080910101882379F0809134018F5F80932B -:100760003401811108C00E941A0580930101811192 -:1007700002C00E94AC0405E311E0C0E0D0E0DD243B -:10078000D39482E0C82EEE24E394F12CC730D10537 -:1007900000F580910101811164C080E40E941A0378 -:1007A00080930101811112C082E10E944403809371 -:1007B000010181110BC0C7010C2E01C0880F0A94E2 -:1007C000EAF780950E944403809301010E943C0354 -:1007D00048C0CA30A1F028F4C83059F0C93061F0DF -:1007E00005C0CC3089F070F0CD3089F0209A28987F -:1007F00010C0219A29980DC0229A2A980AC0239ADB -:100800002B9807C0529A01C0539A5B9802C03E9A37 -:10081000469890EA9A95F1F79FB1799902C082E0E3 -:1008200001C080E091709D25982B7C9902C084E0E6 -:1008300001C080E0892B7D9902C038E001C030E022 -:10084000832B7E9902C020E101C020E0822B9FB162 -:100850009095991F9927991F9295990F907E892BB2 -:100860000FC080910101811149C080E40E941A03E8 -:1008700080930101882379F1B12C0E943C038B2DD8 -:10088000F8019081981719F08083C09200010E94AE -:100890005F0321960F5F1F4FCE30D10509F076CF51 -:1008A00080910001882361F18150809300018823A9 -:1008B00039F08FE99FE00197F1F700C0000020C0F8 -:1008C000A3E4B1E0E5E3F1E0CF01825F91919D9374 -:1008D0008E13FCCF15C083E10E9444038093010175 -:1008E0008111CACF81E40E941A0380930101811112 -:1008F000C3CF0E945503B82EB094BFCF80E0C0CFC5 -:100900000E94AA0481E0DF91CF911F910F91FF9087 -:10091000EF90DF90CF90BF900895E82FF0E0ED5B6F -:10092000FE4F8081089508950F931F93CF93DF9317 -:10093000C3E4D1E010E00C2F025F899190E00E94A7 -:100940004B1B180F0C13F9CF812FDF91CF911F9103 -:100950000F9108950C947A0556985E9825982D98D5 -:1009600026982E9827982F988FEF90E090938900E3 -:100970008093880090938B0080938A0090938D00E1 -:1009800080938C00259A2D9A2FEF80E792E02150DA -:1009900080409040E1F700C00000269A2E9A2FEF89 -:1009A00080E792E0215080409040E1F700C00000D5 -:1009B000279A2F9A2FEF80E792E0215080409040B5 -:1009C000E1F700C0000025982D982FEF80E792E016 -:1009D000215080409040E1F700C0000026982E98FA -:1009E0002FEF80E792E0215080409040E1F700C077 -:1009F000000027982F9856985E9825982D9826984D -:100A00002E9827982F98089589EA8093800089E08E -:100A10008093810024982C983F988AB18F748AB96A -:100A20006E98479A8BB1806B8BB9769A0E94AC0412 -:100A30000C94790580E2809301018091510181112C -:100A40000EC00E94140381E0809351012FEF83EDCB -:100A500090E3215080409040E1F700C0000080E426 -:100A60000E941A038093010181112EC00E94440349 -:100A700080930101811128C00E94440380930101E9 -:100A8000811122C08FE30E944403809301018111F0 -:100A90001BC00E943C0380E40E941A038093010162 -:100AA000811112C08CE00E944403809301018111E6 -:100AB0000BC00E94440380930101811105C08FE3A4 -:100AC0000E944403809301010E943C038091010134 -:100AD000089561110BC0FC018281882321F085EE0D -:100AE0000E945A1103C085EE0E94221280E090E01D -:100AF000089508956091BD017091BE018091BF017C -:100B00009091C0010E94571B56985E9825982D9889 -:100B100026982E9827982F98813019F0823021F04E -:100B20000895259A2D9A0895269A2E9A089581E07F -:100B3000089581E008950C94990508950F931F93EB -:100B4000CF93DF938C01FC01C081D181CE010E9443 -:100B5000D019BE010E944706EC01B8010E949B0516 -:100B6000882309F48DC0F8018281882309F44AC0E2 -:100B700080915D0181111FC0C431F0E5DF0709F0EC -:100B800051C00E949D0581E080935D010E94EF1B92 -:100B900090935C0180935B01109254011092560176 -:100BA00010925501109258011092570110925A015B -:100BB0001092590165C080915B0190915C010E9487 -:100BC000FB1B883C910570F480915401E82FF0E004 -:100BD000EE0FFF1FEB5AFE4FD183C0838F5F8093D0 -:100BE00054014EC0C43880E5D80721F0C538D0453F -:100BF00001F13AC0F8018281882341F0109252013C -:100C000082E01EC0C438E0E5DE0759F5809152014C -:100C1000811106C086E20E945A1186E20E942212C9 -:100C200082E01CC0C438F0E5DF0741F3C538D04589 -:100C3000D9F4F8018281882331F01092530180E2C7 -:100C40000E9471121DC080915301811106C087E27C -:100C50000E945A1187E20E94221280E20E947812BA -:100C60000FC0C538D04529F381E0809352018093AD -:100C70005301C801DF91CF911F910F910C949705FB -:100C800080E0DF91CF911F910F910895089596E034 -:100C9000799FF001112494E5899FE00DF11D112445 -:100CA000E60FF11DEE0FFF1FE25FFE4F859194915D -:100CB0000895880F991FFC01E657F04085919491A3 -:100CC0000895880F991FFC01E65FFE4F859194916E -:100CD00008950F931F93CF93DF93EC01811520E3C9 -:100CE000920750F5C11580E2D80708F0C3C0CB3B8E -:100CF000D10590F4C83AD10508F06AC0C53AD105CB -:100D000008F05BC0C430D10508F0D0C1219709F0CC -:100D1000CAC101E010E00AC2CF3FD10511F008F0CE -:100D2000C5C1C03FD10508F0A2C0CE01805E9109C7 -:100D3000089708F4BBC1B7C1C13090E5D90709F4E1 -:100D4000A2C020F5C0318FE4D80770F4C11590E43B -:100D5000D90708F094C0C11521E3D20708F0A3C158 -:100D6000DD278E01106CE2C1C115D04509F09BC191 -:100D70000E94D7148FEF94E32CE0815090402040E4 -:100D8000E1F700C000000E944A1CD0C1C11597E5E0 -:100D9000D90758F4C03121E5D20708F01CC1C4318D -:100DA00080E5D80708F475C07EC1CE019057811543 -:100DB000904108F078C1DF7073C1C53AD10509F4DC -:100DC00077C1C63AD10509F076C102E810E4AEC198 -:100DD000C83AD10509F472C1C93AD10509F471C103 -:100DE000CA3AD10509F470C1CB3AD10509F46FC1F3 -:100DF000CC3AD10509F46EC1CD3AD10509F46DC1E3 -:100E0000C03BD10509F46CC1CE3AD10509F46BC1E0 -:100E1000CF3AD10509F46AC1C13BD10509F469C1D2 -:100E2000C23BD10509F468C1C33BD10509F467C1D0 -:100E3000C43BD10509F466C1C53BD10509F465C1C0 -:100E4000C63BD10509F464C1C73BD10509F463C1B0 -:100E5000C83BD10509F462C1C93BD10509F461C1A0 -:100E6000CA3BD10509F460C100E014E45FC18E0102 -:100E700010655CC1CE019F700E94610658C1DF7091 -:100E80008E01106A53C18091DA0181608093DA018A -:100E90004DC10E94EF1D811102C00E94D51D0E940C -:100EA0000C1E90E09093FB018093FA01C23080E524 -:100EB000D80721F48091FA01816086C0C43090E5A2 -:100EC000D90721F48091FA0182607EC0C63020E506 -:100ED000D20721F48091FA01846076C0C83080E5A1 -:100EE000D80719F48091FA0127C0CA3090E5D907D4 -:100EF00021F48091FA01806167C0CC3020E5D207EF -:100F000021F48091FA0180625FC0CE3080E5D8077D -:100F100021F48091FA01806457C0C03190E5D9076F -:100F200021F48091FA0180684FC0C23120E5D207D8 -:100F300029F48091FA018460886046C0C33080E55E -:100F4000D80721F48091FA018E7F3EC0C53090E52C -:100F5000D90721F48091FA018D7F36C0C73020E592 -:100F6000D20721F48091FA018B7F2EC0C93080E531 -:100F7000D80719F48091FA0126C0CB3090E5D90743 -:100F800021F48091FA018F7E1FC0CD3020E5D20779 -:100F900021F48091FA018F7D17C0CF3080E5D8070A -:100FA00021F48091FA018F7B0FC0C13190E5D90700 -:100FB00021F48091FA018F7707C0C331D04531F415 -:100FC0008091FA018B7F877F8093FA018091FA01EB -:100FD0000E94101EABC08D2F99278F7099278130EA -:100FE0009105D9F49E012370332702C0880F991F01 -:100FF0002A95E2F79C688E0144E0000F111F4A9584 -:10100000E1F700271370802B912B53E0CC0FDD1FED -:101010005A95E1F7C076DD272FC08230910531F473 -:10102000DC2FCC278E01016F106A80C083309105C0 -:1010300069F4CE018370992701E010E002C0000F2F -:10104000111F8A95E2F7C8019C680FC08430910592 -:10105000B9F4CE018370992701E010E002C0000FBF -:10106000111F8A95E2F7C8019A6823E0CC0FDD1FB3 -:101070002A95E1F7C07ED7708C010C2B1D2B56C032 -:101080008530910531F4DC2FCC278E01046F106A76 -:101090004DC0069709F04AC0CF71DD27DC2FCC2761 -:1010A0008E01106243C000E010E040C08E013EC0DF -:1010B00001E810E43BC003E810E438C002EE14E499 -:1010C00035C009EE14E432C00AEE14E42FC005EB7B -:1010D00014E42CC006EB14E429C007EB14E426C08A -:1010E0000CEC14E423C00DEC14E420C003E815E478 -:1010F0001DC00AE815E41AC002E915E417C004E9A6 -:1011000015E414C001E216E411C003E216E40EC0B7 -:1011100004E216E40BC005E216E408C006E216E499 -:1011200005C007E216E402C00AE216E4C801DF9136 -:10113000CF911F910F91089596E0799FF0011124AE -:1011400094E5899FE00DF11D1124E60FF11DEE0FCE -:10115000FF1FE25FFE4F85919491803E9105E0F480 -:10116000803C910558F58133910509F46FC048F42E -:101170008932910509F463C08A32910509F46DC082 -:1011800072C089339105E9F082389105D1F0853339 -:10119000910509F44DC067C0833E910581F138F493 -:1011A000803E9105B9F0823E9105D9F05CC0863E43 -:1011B000910561F1873E9105A1F155C00E94590644 -:1011C00008952091FA0120FD02C021FF4CC080EE5D -:1011D00090E049C08091FA0180FFF9CF89E390E067 -:1011E00042C08091FA0182FF0EC08091FA0184FF13 -:1011F00003C080E090E037C083EE90E034C080917F -:10120000FA0182FFF2CF82EE90E02DC08091FA01C8 -:1012100083FF0BC08091FA0184FDEBCF87EE90E055 -:1012200022C08091FA0183FFF5CF86EE90E01BC0CB -:101230008091FA0185FF07C089E290E014C0809197 -:10124000FA0185FFF9CF85E390E00DC08091FA01A6 -:1012500086FF07C08AE290E006C08091FA0186FF0F -:10126000F9CF81E390E00E946906089508950C94F7 -:10127000360980916E010895CF93DF9300D01F92BD -:10128000CDB7DEB79C018091F101843019F593E070 -:1012900099833B832A839093E9008FEF9091E80034 -:1012A000815095FD06C095ED9A95F1F700008111EA -:1012B000F5CF8091E80085FF0DC040E050E063E08D -:1012C00070E0CE0101960E94A60B8091E8008E7717 -:1012D0008093E8000F900F900F90DF91CF910895C9 -:1012E000CF93DF9300D01F92CDB7DEB72091F101ED -:1012F000243021F522E029839B838A8383E0809335 -:10130000E9008FEF9091E800815095FD06C095EDC2 -:101310009A95F1F700008111F5CF8091E80085FFE3 -:101320000DC040E050E063E070E0CE0101960E9405 -:10133000A60B8091E8008E778093E8000F900F90C5 -:101340000F90DF91CF9108952091F1012430F1F4B5 -:1013500022E02093E9002FEF3091E800215035FD85 -:1013600006C035ED3A95F1F700002111F5CF209137 -:10137000E80025FF0BC040E050E065E070E00E940F -:10138000A60B8091E8008E778093E8000895CF93B4 -:10139000DF93EC019091F101943009F046C0809107 -:1013A0000C018823D9F080910D018823B9F0909326 -:1013B000E9008FEF9091E800815095FD06C095E11E -:1013C0009A95F1F700008111F5CF8091E80085FF33 -:1013D0002CC040E050E060E170E017C081E08093F5 -:1013E000E9008FEF9091E800815095FD06C095EDE2 -:1013F0009A95F1F700008111F5CF8091E80085FF03 -:1014000014C040E050E068E070E0CE010E94A60BFE -:101410008091E8008E778093E80080E1FE01AEE5E0 -:10142000B1E001900D928A95E1F7DF91CF91089597 -:101430008091F001811109C00E943B0D0E94980D1E -:101440008091E20084608093E20008951092F001A0 -:10145000089508950C947F220E94E01B0E9485222B -:101460000E943E100C94370942E061EC81E00E943A -:10147000B50C42E061EC82E00E94B50C42E061EC08 -:1014800083E00E94B50C42E161EC84E00C94B50C61 -:101490008091F301833009F455C030F4813071F04C -:1014A000823009F48EC008958A3009F47AC08B30F6 -:1014B00009F460C0893009F09CC020C08091F2011D -:1014C000813A09F096C08091E800877F8093E80018 -:1014D0008091F6019091F701892B21F460E18EE56E -:1014E00091E003C060E080E090E070E00E94F10BCA -:1014F0008091E8008B778093E80008958091F20155 -:10150000813209F076C08091F6019091F701009741 -:1015100019F0039709F06DC08091E800877F8093F0 -:10152000E8008091E80082FD05C08091F101811101 -:10153000F8CF5FC08091F10080936E018091E80048 -:101540008B7753C08091F201813A09F052C08091AB -:10155000F6019091F701892B09F04BC08091E800CA -:10156000877F8093E8008091E80080FFFCCF809126 -:101570000C0136C08091F2018132D9F58091F601DB -:101580009091F701892BA9F58091E800877F8093DE -:10159000E8000E94EA0C8091F40180930C010C9405 -:1015A000D7148091F201813221F58091E800877F84 -:1015B0008093E8000E94EA0C8091F50180936F010E -:1015C00008958091F201813AA1F48091E800877F2B -:1015D0008093E8008091E80080FFFCCF80916F014C -:1015E0008093F1008091E8008E778093E8000C945E -:1015F000EA0C089584B7877F84BF88E10FB6F8941A -:1016000080936000109260000FBE90E080E80FB6FB -:10161000F89480936100909361000FBE0E948D103A -:101620000E943B0D0E94980D8091E200846080939F -:10163000E20078940E941E100E948F1082E091E0D8 -:101640000E9439100E946D228091F101853069F469 -:101650000E94A71B8091EF018823B1F30E94D21B47 -:10166000882391F30E94900BEFCF0E949510ECCF4E -:10167000292F332723303105C9F064F42130310597 -:1016800081F02230310509F043C08DE690E022EE72 -:1016900033E042C021323105F1F02232310541F10F -:1016A00037C082E190E02FE434E036C099278130E2 -:1016B000910541F08230910541F0892B49F5EEED1D -:1016C000F3E005C0E6ECF3E002C0EEEAF3E084915B -:1016D00090E09F0121C06430D8F4E62FF0E0EE0FD7 -:1016E000FF1FEE5DFE4F2081318189E090E014C044 -:1016F000643070F470E0FB01EE0FFF1FE65EFE4FFA -:1017000020813181FB01EA5EFE4F808190E004C0C0 -:1017100080E090E020E030E0FA01318320830895FA -:1017200080E189BD82E189BD09B400FEFDCF8091D1 -:10173000D8008F7D8093D8008091E00082608093F4 -:10174000E0008091E00081FDFCCF0895CF92DF9210 -:10175000EF92FF920F931F93CF93DF93EC018B01D6 -:101760006A010E94090D811133C0C114D10439F0FE -:10177000F60180819181081B190BC80FD91FE12C3C -:10178000F12C0115110519F18091E80085FD16C0B5 -:101790008091E8008E778093E800C114D10449F06D -:1017A000F60180819181E80EF91EF182E08285E0E8 -:1017B0000FC00E94090D882321F30AC089918093EC -:1017C000F10001501109FFEFEF1AFF0ADACF80E0B4 -:1017D000DF91CF911F910F91FF90EF90DF90CF900D -:1017E00008952091F8013091F9012617370748F044 -:1017F0006115710539F42091E8002E772093E800F7 -:1018000001C0B90140E061157105A9F12091F10114 -:10181000222309F443C0253009F442C02091E80096 -:1018200023FD40C02091E80022FD32C02091E80055 -:1018300020FFE9CF4091F3002091F20030E0342BFB -:10184000FC01CF016115710559F02830310540F4D4 -:1018500081918093F100615071092F5F3F4FF1CF6B -:1018600041E02830310509F040E02091E8002E7772 -:101870002093E800C8CF4111C9CF0AC08091F1017F -:10188000882361F0853061F08091E80083FD0AC013 -:101890008091E80082FFF2CF80E0089582E0089511 -:1018A00083E0089581E008952091F8013091F901D5 -:1018B0002617370748F06115710539F42091E800C3 -:1018C0002E772093E80001C0B901FC0120E06115EA -:1018D000710591F18091F101882309F440C08530B0 -:1018E00009F43FC08091E80083FD3DC08091E8008D -:1018F00082FD2FC08091E80080FFE9CF2091F300A6 -:101900008091F20090E0922B6115710559F08830BA -:10191000910540F424912093F100319661507109B2 -:101920000196F2CF21E0089709F020E08091E800CD -:101930008E778093E800CBCF2111CCCF0AC0809165 -:10194000F101882361F0853061F08091E80083FD2A -:101950000AC08091E80082FFF2CF80E0089582E023 -:10196000089583E0089581E00895982F973058F501 -:101970009093E900981739F07091EC002091ED00F8 -:101980005091F00003C0242F762F50E021FF19C0A2 -:101990003091EB003E7F3093EB003091ED003D7FC6 -:1019A0003093ED003091EB0031603093EB00709399 -:1019B000EC002093ED005093F0002091EE0027FF03 -:1019C00007C09F5FD3CF8F708093E90081E00895B7 -:1019D00080E008958091F20187FF11C08091E800B6 -:1019E00082FD05C08091F1018111F8CF11C0809175 -:1019F000E8008B770BC08091F101882349F080913A -:101A0000E80080FFF8CF8091E8008E778093E800AF -:101A100008952091E4003091E50095E64091EC00B6 -:101A2000842F817040FF22C08091E80080FD1CC09F -:101A30008091F101882391F0853091F08091EB0045 -:101A400085FD10C04091E4005091E5004217530716 -:101A500029F39A01915011F784E0089582E00895E6 -:101A600083E0089581E0089580E008954091E800C2 -:101A700042FFDECF08950E94A90D0E94B10DE0EE55 -:101A8000F0E0808181608083E8EDF0E080818F77F5 -:101A9000808319BCA7EDB0E08C918E7F8C93808100 -:101AA0008F7E80831092F00108950F931F93CF9340 -:101AB000DF930E94A90D0E94B10DC8EDD0E088818E -:101AC0008F77888388818068888388818F7D8883E9 -:101AD00019BC1092F1011092ED011092EF011092D9 -:101AE000EE0100EE10E0F80180818B7F8083888119 -:101AF0008160888342E060E080E00E94B50CE1EE06 -:101B0000F0E080818E7F8083E2EEF0E08081816072 -:101B10008083808188608083F80180818E7F8083CC -:101B2000888180618883DF91CF911F910F91089503 -:101B3000E8EDF0E080818F7E8083E7EDF0E080814A -:101B40008160808384E082BF81E08093F0010C9407 -:101B5000550DE8EDF0E080818E7F80831092E200E9 -:101B600008951092DA001092E10008951F920F92EA -:101B70000FB60F9211242F933F934F935F936F9360 -:101B80007F938F939F93AF93BF93EF93FF93809136 -:101B9000E10082FF0BC08091E20082FF07C08091CC -:101BA000E1008B7F8093E1000E941D108091DA009C -:101BB00080FF1FC08091D80080FF1BC08091DA0099 -:101BC0008E7F8093DA008091D90080FF0DC080E184 -:101BD00089BD82E189BD09B400FEFDCF81E080931B -:101BE000F1010E94180A05C019BC1092F1010E946F -:101BF000260A8091E10080FF19C08091E20080FFF9 -:101C000015C08091E2008E7F8093E2008091E20017 -:101C100080618093E2008091D80080628093D80038 -:101C200019BC85E08093F1010E942A0A8091E100AD -:101C300084FF30C08091E20084FF2CC080E189BD28 -:101C400082E189BD09B400FEFDCF8091D8008F7D6F -:101C50008093D8008091E1008F7E8093E100809195 -:101C6000E2008F7E8093E2008091E20081608093A9 -:101C7000E2008091ED01882311F084E007C080919B -:101C8000E30087FD02C081E001C083E08093F101A1 -:101C90000E942C0A8091E10083FF29C08091E2001C -:101CA00083FF25C08091E100877F8093E10082E07F -:101CB0008093F1011092ED018091E1008E7F80937D -:101CC000E1008091E2008E7F8093E2008091E2004B -:101CD00080618093E20042E060E080E00E94B50C09 -:101CE0008091F00088608093F0000E94290AFF91A3 -:101CF000EF91BF91AF919F918F917F916F915F9184 -:101D00004F913F912F910F900FBE0F901F901895FC -:101D10001F920F920FB60F9211242F933F934F9360 -:101D20005F936F937F938F939F93AF93BF93CF9363 -:101D3000DF93EF93FF93C091E900CF708091EC00A7 -:101D4000D82FD17080FDD0E81092E9008091F0008A -:101D5000877F8093F00078940E94CC0E1092E90067 -:101D60008091F00088608093F000CD2BCF70C093FD -:101D7000E900FF91EF91DF91CF91BF91AF919F91DA -:101D80008F917F916F915F914F913F912F910F9024 -:101D90000FBE0F901F9018951F93CF93DF93CDB771 -:101DA000DEB7AA970FB6F894DEBF0FBECDBFE2EF45 -:101DB000F1E088E08E0F9091F10091938E13FBCFAC -:101DC0000E94480A8091E80083FF1FC18091F201C0 -:101DD0009091F301492F50E04A30510508F015C1A8 -:101DE000FA01EA5AFF4F0C940724803881F08238B8 -:101DF00009F00BC18091F6018F708093E90080910A -:101E0000EB0085FB882780F91092E90006C08091DD -:101E1000EE019091EF01911182609091E800977F1F -:101E20009093E8008093F1001092F100C8C0282F31 -:101E30002D7F09F0EAC0882319F0823061F0E5C0F7 -:101E40008091F401813009F0E0C0933009F080E026 -:101E50008093EF012BC08091F401811127C0809104 -:101E6000F6018F7009F4D1C08093E9002091EB0056 -:101E700020FF1CC0933021F48091EB00806214C0DD -:101E80009091EB0090619093EB0021E030E0A9018C -:101E900002C0440F551F8A95E2F74093EA00109262 -:101EA000EA008091EB0088608093EB001092E900DB -:101EB0008091E800877F86C08111A7C01091F4014E -:101EC0001F778091E3008078812B8093E3008091DD -:101ED000E800877F8093E8000E94EA0C8091E80088 -:101EE00080FFFCCF8091E30080688093E3001111B4 -:101EF00002C082E001C083E08093F10186C0805877 -:101F0000823008F082C08091F4019091F5018C3DFF -:101F100053E0950779F583E08A838AE289834FB796 -:101F2000F894DE01139620E03EE051E2E32FF0E06A -:101F300050935700E49120FF03C0E295EF703F5F9C -:101F4000EF708E2F90E0EA3010F0C79601C0C09677 -:101F50008D939D932F5F243149F74FBF8091E80007 -:101F6000877F8093E8006AE270E0CE0101960E94CC -:101F7000F10B14C0AE014F5F5F4F6091F6010E94FC -:101F8000380BBC01009709F440C09091E800977F9E -:101F90009093E80089819A810E94540C8091E80016 -:101FA0008B778093E80031C0803879F58091E80024 -:101FB000877F8093E8008091ED018093F10080910C -:101FC000E8008E778093E8000E94EA0C1EC0811121 -:101FD0001CC09091F4019230C0F48091E800877F9A -:101FE0008093E8009093ED010E94EA0C8091ED014E -:101FF000811106C08091E30087FD02C081E001C02D -:1020000084E08093F1010E94340A8091E80083FF0C -:102010000AC08091E800877F8093E8008091EB0000 -:1020200080628093EB00AA960FB6F894DEBF0FBED5 -:10203000CDBFDF91CF911F9108950895CF938091E7 -:10204000F1018823A1F0C091E900CF709091EC00DC -:10205000892F817090FD80E8C82B1092E900809153 -:10206000E80083FD0E94CC0ECF70C093E900CF91B1 -:10207000089590937501809374010895E09174011F -:10208000F0917501309721F00190F081E02D0994D5 -:1020900080E00895E0917401F0917501309721F08E -:1020A0000280F381E02D09940895E0917401F0918C -:1020B0007501309721F00480F581E02D0994089591 -:1020C00020917201309173018217930771F0909300 -:1020D000730180937201E0917401F0917501309762 -:1020E00021F00680F781E02D099408952091700178 -:1020F000309171018217930771F090937101809371 -:102100007001E0917401F0917501309721F0008425 -:10211000F185E02D0994089508950C948C100E9487 -:10212000E61B0E9487030C94A81C9F92AF92BF925B -:10213000CF92DF92EF92FF920F931F93CF93DF9393 -:1021400000D000D000D0CDB7DEB70E949F030DE0D5 -:1021500010E0AA24A394B12C902E802F0E948D040D -:10216000980129583E4F6901F901F080F826A1F441 -:102170000150110988F78FEF89838A831B820E949F -:10218000EF1B8160782F9D838C8349815A816B81FD -:102190008D810E942C112FC09091DA0191FF04C013 -:1021A0008E830E9493048E8125E030E0A501022EEB -:1021B00001C0440F0A94EAF7E42E4F21C1F02983AD -:1021C0009A828E2191E009F490E09B830E94EF1B9C -:1021D0008160782F9D838C8349815A816B818D81A9 -:1021E0000E942C11F6018081E826E08204C0215073 -:1021F0003109E0F6BDCF0E948F1F109176010E9439 -:102200003E101817B9F00E943E1080937601269672 -:102210000FB6F894DEBF0FBECDBFDF91CF911F91F7 -:102220000F91FF90EF90DF90CF90BF90AF909F9075 -:102230000C94370926960FB6F894DEBF0FBECDBFBB -:10224000DF91CF911F910F91FF90EF90DF90CF9092 -:10225000BF90AF909F900895CF93DF93CDB7DEB737 -:102260002B970FB6F894DEBF0FBECDBF4F835887B4 -:1022700069877A878B87DE01119686E0FD011192CE -:102280008A95E9F785E0FE01379601900D928A95CF -:10229000E1F749815A816B817C818D819E810E9409 -:1022A00075172B960FB6F894DEBF0FBECDBFDF912A -:1022B000CF910895CF93882309F4C2C0C82F8238E4 -:1022C00059F40E943E1081FDBBC089E30E944F1A61 -:1022D0000E941C1B89E30CC0833879F40E943E10D5 -:1022E00080FDAEC083E50E944F1A0E941C1B83E54F -:1022F0000E94911ACF910C941C1B843859F40E94AF -:102300003E1082FD9DC087E40E944F1A0E941C1B54 -:1023100087E4EECF8CEF8C0F813A48F48C2F0E942B -:10232000D22181118DC08C2F0E944F1AE3CF80E201 -:102330008C0F883048F4C77081E001C0880FCA95BF -:10234000EAF70E94D51AD6CF8BE58C0F833078F44C -:10235000C53A29F0C63A31F083E890E005C081E83B -:1023600090E002C082E890E0CF910C94601088E584 -:102370008C0F833108F064C0C83A39F1C93A41F191 -:10238000CA3A49F1CB3A51F1CC3A59F1CD3A61F11F -:10239000C03B69F1CE3A71F1CF3A79F1C13B81F19D -:1023A000C23B89F1C33B91F1C43B99F1C53BA1F11B -:1023B000C63BA9F1C73BB1F1C83BB9F1C93BC1F17B -:1023C000CA3BC9F180E090E038C082EE90E035C0B1 -:1023D00089EE90E032C08AEE90E02FC085EB90E06D -:1023E0002CC086EB90E029C087EB90E026C08CECF7 -:1023F00090E023C08DEC90E020C083E891E01DC008 -:102400008AE891E01AC082E991E017C084E991E07E -:1024100014C081E292E011C083E292E00EC084E237 -:1024200092E00BC085E292E008C086E292E005C02F -:1024300087E292E002C08AE292E0CF910C9476109B -:10244000CF910895882309F44BC0823859F40E9433 -:102450003E1081FF45C089E30E944F1A0E941C1B59 -:1024600089E30CC0833871F40E943E1080FF38C0AD -:1024700083E50E944F1A0E941C1B83E50E94911A5B -:102480000C941C1B843859F40E943E1082FF28C013 -:1024900087E40E944F1A0E941C1B87E4EFCF9CEF39 -:1024A000980F913A58F390E2980F983050F4877053 -:1024B00091E001C0990F8A95EAF7892F0E94DB1AF3 -:1024C000DFCF9BE5980F933020F480E090E00C94F0 -:1024D0006010885A833120F480E090E00C947610EC -:1024E0000895882321F00E94D51A0C941C1B08958E -:1024F000882321F00E94DB1A0C941C1B08957F9204 -:102500008F929F92AF92BF92CF92DF92EF92FF9203 -:102510000F931F93CF93DF931F92CDB7DEB77C014C -:10252000C62E772EFC01058102950F7012811111C4 -:102530000E94F21A0E94481A882379F0112369F048 -:1025400080E28C0D883048F082E00E94311A0E94AF -:10255000481A91E0D82ED92601C0D12CE72DE2955A -:10256000EF70F0E0E05AFF4F0C940724872D807F36 -:10257000072D0F70882311F00295007F112389F039 -:10258000002309F490C180E28C0D883020F4802F64 -:102590000E94D51A03C0802F0E94E51A0E941C1BBE -:1025A00082C18C2D0E942212002309F495C180E281 -:1025B0008C0D883020F4802F0E94DB1A03C0802FFE -:1025C0000E94EB1A0E941C1B87C1972D907F872DBC -:1025D0008F70903211F08295807FCC2021F0F1E055 -:1025E000CF16B1F01EC0112349F0002309F414C125 -:1025F000013009F011C10E94051B6EC1002319F0C2 -:10260000013009F469C189830E94081B89810AC1CC -:10261000112321F0023008F05FC1FEC001115CC13E -:1026200001C1112321F0002309F4F6C03CC10023AD -:1026300009F4F8C03EC1872D86958695837090E099 -:10264000009719F0019761F047C1112321F08C2DFB -:10265000972D937002C080E090E00E9460103CC112 -:10266000112321F08C2D972D937002C080E090E013 -:102670000E94761031C18C2D112319F00E94971EF3 -:1026800002C00E94FF1E0E94841F26C1872D8370F6 -:1026900009F052C0111120C18C2D8295869587704A -:1026A000880F880F9C2D9F70892E912CA12CB12C06 -:1026B000082E04C0880C991CAA1CBB1C0A94D2F7D3 -:1026C000C4FE14C00FE010E020E030E0B901A80122 -:1026D00004C0440F551F661F771F8A95D2F7CB01A0 -:1026E000BA01609570958095909503C060E070E0A8 -:1026F000CB01272D26952695237030E02230310519 -:1027000069F02330310589F0682979298A299B29C4 -:102710002130310571F00E94BD18DEC06829792989 -:102720008A299B290E94D918D7C00E94BD18C501CB -:10273000B4010E94A118D0C0112319F0872D817017 -:1027400001C08695882309F4C7C08C2D8295869593 -:102750008770880F880F9C2D9F70892E912CA12C3B -:10276000B12C082E04C0880C991CAA1CBB1C0A940E -:10277000D2F7C4FE14C00FE010E020E030E0B90151 -:10278000A80104C0440F551F661F771F8A95D2F712 -:10279000CB01BA01609570958095909503C060E07B -:1027A00070E0CB01272D269526952370422F50E00F -:1027B0004230510569F04330510589F06829792983 -:1027C0008A299B294130510571F00E94971984C0D4 -:1027D000682979298A299B290E94B3197DC00E9402 -:1027E0009719C501B4010E947B1976C08C2D90E029 -:1027F000FC01E05EF109E531F10508F050C0E05957 -:10280000FF4F0C9407240C2D0F70872D8F7111230F -:1028100031F00E941419802F0E9471125DC00E9435 -:102820003519802F0E94781257C0112339F00111F9 -:1028300053C0872D8F710E945A194EC0023008F084 -:102840004BC0F7CF112339F0872D8F710E941419D7 -:1028500043C01123C9F3872D8F710E9435193CC0E5 -:10286000112329F0872D8F710E94FF1835C00E9417 -:10287000F51832C0112351F0172D1F71812F0E94BE -:10288000141963E0812F0E94281A26C081E00E945B -:10289000311A023008F182E00E94311A1DC0112362 -:1028A00031F0002389F28C2D0E945A1115C00023AB -:1028B00091F28C2D0E9422120FC0472D4F706C2D6B -:1028C000C7010E9469050E94191806C0472D4F7064 -:1028D0006C2DC7010E944606DD20F9F00E94241AE3 -:1028E00080FD1BC0F70112820E941E1A0E9414195B -:1028F000C7010E949C140E941E1A0F90DF91CF9175 -:102900001F910F91FF90EF90DF90CF90BF90AF900D -:102910009F908F907F900C9435190F90DF91CF91FD -:102920001F910F91FF90EF90DF90CF90BF90AF90ED -:102930009F908F907F9008950F931F93CF93DF9375 -:10294000EC01888199812B813C81232BB9F09F3F39 -:1029500011F48F3F99F0CE010E949E05882371F0FB -:10296000688179818A810E941A1A8C010E94CF198C -:102970000E949618B801CE010E947F12DF91CF917C -:102980001F910F9108950E94F21A0E94021B0E944B -:10299000C71A0E941C1B0E9435200E94841F80E0E1 -:1029A00090E00E94601080E090E00C9476100E940D -:1029B000E21A0C94C3140E940F1A292F22952F702B -:1029C00030E02C3031054CF42A3031056CF42250C3 -:1029D000310922303105A8F407C02C30310569F0E7 -:1029E0002F30310551F00DC0803F69F018F4803E62 -:1029F00040F409C0843F29F406C093FB882780F97E -:102A0000089580E0089581E00895CF93DF9300D08A -:102A100000D01F92CDB7DEB70F900F900F900F90A0 -:102A20000F90DF91CF910895CF93DF9300D000D026 -:102A300000D0CDB7DEB726960FB6F894DEBF0FBE36 -:102A4000CDBFDF91CF9108951F93CF93DF93C091B6 -:102A5000850116E080918601C81799F0D0E01C9F8F -:102A6000F0011D9FF00D1124E957FE4F4081518167 -:102A700062817381848195810E9414152196C770AB -:102A8000E9CFDF91CF911F9108954091B701509107 -:102A9000B8016091B9017091BA018091BB01909128 -:102AA000BC010C9414158091BC0182958F7009F0C3 -:102AB00054C08091B901882309F44FC080918501E9 -:102AC000A09186016091B7017091B8014091BA015F -:102AD0005091BB01B6E08A1709F43FC090E0411560 -:102AE0005105C1F17F3F11F46F3FA1F1B89FF00193 -:102AF000B99FF00D1124E957FE4F218172132AC0AE -:102B00002081621327C02281211124C023813481B6 -:102B10002417350710F421503109241B350B283CAC -:102B20003105C0F42091BC012F7020612093BC01BD -:102B300026E0289FF001299FF00D1124E457FE4F55 -:102B400080818F708061808387EB91E00E949C146C -:102B50000C94241501968770BECF0895CF92DF9212 -:102B6000EF92FF920F931F93CF93DF93CDB7DEB712 -:102B700062970FB6F894DEBF0FBECDBF8C0185E023 -:102B8000F801DE011D9601900D928A95E1F7D801BA -:102B90004C9111965C91119712966C911297139625 -:102BA000CD90DC9014973091B7017091B80180916D -:102BB000BA019091BB01009709F46BC17F3F19F4F2 -:102BC0003F3F09F466C1E090B901EE2009F4C0C0AE -:102BD0002091BC01C816D90628F0F601E81BF90BB4 -:102BE000CF0104C0809590958C0D9D1DFF24F3941A -:102BF000883C910578F0F12C207F09F0C6C07C2D2F -:102C0000D98AC88A89890E94051587EB91E00E94BC -:102C10009C14B1C0822F807F09F046C0751314C088 -:102C2000341312C0611110C02F7020612093BC01B9 -:102C30000E94451587EB91E00E949C148091BC0195 -:102C4000D80115968C932EC0CD2819F15F3F11F451 -:102C50004F3FF9F0F62E61111CC080918501209143 -:102C6000860136E0821709F45AC090E0389FF001DF -:102C7000399FF00D1124E957FE4F7181571306C09B -:102C80007081471303C07281711103C00196877070 -:102C9000E9CFF62E662309F418C18091BC0181604A -:102CA0008093BC01F12C11C1751308C0341306C008 -:102CB000611104C08091BC01D801C3C04D875E87FB -:102CC0008D859E856A8B0E94DB146A898823E1F1D9 -:102CD0006623D1F12091BC01822F82958F7090E004 -:102CE000029774F08091B7019091B80198878F8313 -:102CF0001986DB86CA862C87CE0107960E949C1413 -:102D000086E0F801A7EBB1E001900D928A95E1F71A -:102D10000E9453150E944515FF24F394D6C04D8799 -:102D20005E878D859E850E940F1A292F22952F7010 -:102D300030E0223031050CF0BCC09F7009F0B6C005 -:102D4000805E883008F4C1C0C8010E949C14E4CFA2 -:102D5000C816D90608F453C0F601E81BF90BCF01D9 -:102D6000883C910508F450C0F12C7C2DD98AC88A82 -:102D700089890E940515E7EBF1E086E0DF011D92ED -:102D80008A95E9F70E944515A0C0751314C0341345 -:102D900012C0611110C08091BC01F8018583C80187 -:102DA0000E949C1486E0E7EBF1E0DF011D928A951A -:102DB000E9F7FE2C8AC04D875E878D859E856A8BDC -:102DC0000E94DB146A89882309F4BECF662309F4C4 -:102DD000BBCF2091BC01822F82958F7090E002972B -:102DE0000CF48ECF8091B7019091B8019A838983BA -:102DF0001B82DD82CC822E83CE0101967FCF80950F -:102E000090958C0D9D1DACCFF62E662309F49CCFBA -:102E100075132EC034132CC02091BC0120FD1FC09F -:102E2000822F82958F70D9F0D80115962C93159723 -:102E30008F3049F08F5F982F9295907F822F8F70FF -:102E4000892B15968C93C8010E949C1486E0F8018A -:102E5000A7EBB1E001900D928A95E1F793CF86E060 -:102E6000F801A7EBB1E001900D928A95E1F72DC032 -:102E70004D875E878D859E850E94DB14811140CF32 -:102E80008091BC0181608093BC01C8010E949C14A8 -:102E90001CC0662309F458CF4D875E878D859E85BB -:102EA0000E94DB14882309F44FCF2ACF811148CF29 -:102EB0000CC0243031050CF047CF9F7009F440CF8F -:102EC000F8019581907F09F03BCF8F2D62960FB668 -:102ED000F894DEBF0FBECDBFDF91CF911F910F9150 -:102EE000FF90EF90DF90CF9008951F93CF93DF93E3 -:102EF000CDB7DEB72C970FB6F894DEBF0FBECDBFAF -:102F00004F83588769877A878B879C87CE0107967E -:102F10000E94AE15882369F08F8198852A853B85AC -:102F2000232BF1F19F3F09F063C08F3F09F060C090 -:102F300037C086E0FE013796DE01119601900D92B2 -:102F40008A95E1F76F817885EA85FB85309741F1B5 -:102F50007F3F11F46F3F21F12091860130E0C901DC -:102F60000196877099274091850150E08417950755 -:102F700009F447C069837A83FD83EC8396E0929FCE -:102F8000D001939FB00D1124A957BE4FFE01319679 -:102F900001900D929A95E1F7809386010E94241585 -:102FA00016E080918501909186018917C1F1189FE3 -:102FB000C001112489579E4F0E94AE15882379F1D4 -:102FC000E09185011E9FF0011124E957FE4F4081D9 -:102FD000518162817381848195810E941415809151 -:102FE000850190E001968770992780938501D9CF5C -:102FF0004F81588569857A858B859C850E9414153B -:10300000CFCF0E94D7141092860110928501E7EB72 -:10301000F1E086E0DF011D928A95E9F7C1CF2C9699 -:103020000FB6F894DEBF0FBECDBFDF91CF911F91D9 -:103030000895EF92FF920F931F93CF93DF938C012C -:10304000009709F46CC0F12CEE24E394E80121967A -:10305000F8018491843740F4843008F051C0813005 -:1030600081F0823019F15BC0853709F444C0A8F1C2 -:103070009CE7980F903708F052C08F770E94221279 -:1030800041C00E5F1F4FFE01C49180E28C0F88305B -:1030900048F4C7708E2D01C0880FCA95EAF70E94C8 -:1030A000F51A14C08C2F0E945A112DC00E5F1F4FAD -:1030B000FE01C49180E28C0F883058F4C7708E2DC9 -:1030C00001C0880FCA95EAF70E94FB1A0E941C1BD8 -:1030D0001AC08C2F0E94221216C00E5F1F4FFE01D5 -:1030E000C491CC2381F08FE99FE00197F1F700C0F4 -:1030F0000000C150F6CF0E5F1F4FFE01F49003C0D9 -:103100000E945A118E018F2D882309F49FCFEFE979 -:10311000FFE03197F1F700C000008150F5CFDF915B -:10312000CF911F910F91FF90EF90089508956093B4 -:10313000C1017093C2018093C3019093C4010C94A8 -:10314000C3140F931F930091C1011091C2012091EC -:10315000C3013091C401DC01CB01802B912BA22B48 -:10316000B32B8093C1019093C201A093C301B0938C -:10317000C4011F910F910C94C3140F931F930091DE -:10318000C1011091C2012091C3013091C401DC0141 -:10319000CB0180239123A223B3238093C101909379 -:1031A000C201A093C301B093C4011F910F910C946D -:1031B000C3140F931F930091C1011091C20120917C -:1031C000C3013091C401DC01CB0180279127A227E4 -:1031D000B3278093C1019093C201A093C301B09320 -:1031E000C4011F910F910C94C3141092BD01109251 -:1031F000BE011092BF011092C0010C94C31441E0B3 -:1032000050E060E070E004C0440F551F661F771F58 -:103210008A95D2F74093BD015093BE016093BF01E0 -:103220007093C0010C94C31441E050E060E070E082 -:1032300004C0440F551F661F771F8A95D2F78091EF -:10324000BD019091BE01A091BF01B091C001482B7A -:10325000592B6A2B7B2B4093BD015093BE01609389 -:10326000BF017093C0010C94C31441E050E060E0D2 -:1032700070E004C0440F551F661F771F8A95D2F770 -:1032800040955095609570958091BD019091BE01DB -:10329000A091BF01B091C001482359236A237B2329 -:1032A0004093BD015093BE016093BF017093C00174 -:1032B0000C94C31441E050E060E070E004C0440F9F -:1032C000551F661F771F8A95D2F78091BD01909197 -:1032D000BE01A091BF01B091C001482759276A27BC -:1032E0007B274093BD015093BE016093BF01709353 -:1032F000C0010C94C3140F931F930091BD01109152 -:10330000BE012091BF013091C001DC01CB01802BB7 -:10331000912BA22BB32B8093BD019093BE01A09360 -:10332000BF01B093C0011F910F910C94C3140F9370 -:103330001F930091BD011091BE012091BF013091FA -:10334000C001DC01CB0180239123A223B32380930E -:10335000BD019093BE01A093BF01B093C0011F9126 -:103360000F910C94C3140F931F930091BD01109102 -:10337000BE012091BF013091C001DC01CB0180274B -:103380009127A227B3278093BD019093BE01A093FC -:10339000BF01B093C0011F910F910C94C314089505 -:1033A000CF92DF92EF92FF920F931F93CF93DF9311 -:1033B0008C01C090C101D090C201E090C301F09097 -:1033C000C4018091BD019091BE01A091BF01B09157 -:1033D000C001C82AD92AEA2AFB2ACFE1D0E0D701C6 -:1033E000C6010C2E04C0B695A795979587950A94AB -:1033F000D2F780FF06C0B8018C2F0E949C0801976D -:1034000021F4219760F780E001C08C2FDF91CF91EC -:103410001F910F91FF90EF90DF90CF900895CF9381 -:10342000DF93EC010E94D019BE010E949C08DF913D -:10343000CF910895CB010E940F1A08958091C50184 -:1034400085958595859508958091C5018770089526 -:1034500098E0899F90011124262B2093C5010C949C -:1034600014192091C501809582238093C501982F5E -:10347000977069F430E0482F552747FD5095241781 -:10348000350729F08595859585950C94351908950E -:103490009091C501977081E009F480E008959091C2 -:1034A0000C01992321F090910D01911109C02091F7 -:1034B0000E0130910F01F90132969FEF40E01FC0DD -:1034C000982F9695969596959F3050F5E0910E0120 -:1034D000F0910F01E90FF11D877021E030E0A901A3 -:1034E00002C0440F551F8A95E2F7CA019181892BCA -:1034F000818308959F3F39F04F5F4E3041F05191E5 -:103500005813F8CF0DC05111F7CF942FF5CF9F3F2F -:1035100039F0F901E90FF11D97FDFA9582830895BD -:10352000089590910C01992321F090910D01911132 -:1035300009C020910E0130910F01F9013296205FF0 -:103540003F4F1FC0982F9695969596959F30F0F413 -:10355000E0910E01F0910F01E90FF11D877021E05C -:1035600030E0A90102C0440F551F8A95E2F7CA0155 -:10357000809591818923818308953196E217F3071D -:1035800029F090819813F9CF1082F7CF089581E048 -:1035900090E0E0910E01F0910F01E80FF91F108209 -:1035A000019680319105A9F708959091D901892B51 -:1035B0008093D901089580959091D90189238093B2 -:1035C000D90108951092D90108959091D801892BBD -:1035D0008093D801089580959091D8018923809394 -:1035E000D80108951092D80108959091D701892BA0 -:1035F0008093D701089580959091D7018923809376 -:10360000D70108951092D70108958093C6010895B7 -:103610001092C601089580910E0190910F01FC0156 -:1036200031969C01205F3F4F80E0919191118F5F17 -:10363000E217F307D1F70895E0910E01F0910F0121 -:103640008091D9018083E0910E01F0910F0190816A -:103650008091D801892B8083E0910E01F0910F01B8 -:1036600090818091D701892B80838091C601882326 -:1036700061F0E0910E01F0910F019081892B808320 -:103680000E940B1B81111092C60180910E01909136 -:103690000F010C944A1020E0009739F0AC01415022 -:1036A0005109842395232F5FF7CF822F0895CF925E -:1036B000DF92EF92FF926C01EE24FF24C114D1043B -:1036C000E104F10421F0C701B60120E101C020E0CE -:1036D000C72ED82EE92EFF24C114D104E104F10431 -:1036E00019F0285FC701B6016B017C0154E0F69424 -:1036F000E794D794C7945A95D1F7C114D104E10443 -:10370000F10419F02C5FC701B6016B017C0142E0A6 -:10371000F694E794D794C7944A95D1F7C114D1048D -:10372000E104F10419F02E5FC701B601DC01CB0101 -:10373000B695A79597958795892B8A2B8B2B09F0A2 -:103740002F5F822FFF90EF90DF90CF9008958091B0 -:10375000F101843021F11092DB0120E488E190E056 -:103760000FB6F894A895809360000FBE2093600078 -:1037700080E00E94370983B7817F846083BF83B76D -:10378000816083BF7894889583B78E7F83BF88E1FB -:103790000FB6F89480936000109260000FBE0895F9 -:1037A000089508950E94D01B0E949F030E94D11B80 -:1037B0000E94940491E0811101C090E0892F089546 -:1037C0000E94D7140E943E100C94370982E084BDF9 -:1037D00093E095BD9AEF97BD80936E0008952FB743 -:1037E000F8948091DC019091DD01A091DE01B0910F -:1037F000DF012FBF0895CF92DF92EF92FF920F93D8 -:103800001F932FB7F8944091DC015091DD01609136 -:10381000DE017091DF012FBF6A017B01EE24FF24DE -:103820008C0120E030E0C016D106E206F30610F469 -:10383000415051099A01281B390BC9011F910F9161 -:10384000FF90EF90DF90CF9008951F920F920FB6E8 -:103850000F9211248F939F93AF93BF938091DC01BC -:103860009091DD01A091DE01B091DF010196A11DD3 -:10387000B11D8093DC019093DD01A093DE01B09334 -:10388000DF01BF91AF919F918F910F900FBE0F906D -:103890001F9018950E943B0DF8942FEF87EA91E650 -:1038A000215080409040E1F700C0000087E090EB9D -:1038B000DC018093FB019093FC01A093FD01B09388 -:1038C000FE019CE088E10FB6F894A8958093600013 -:1038D0000FBE90936000FFCFEF92FF920F931F9364 -:1038E000CF93DF93D82FCDE08C2F0E948D0405E07D -:1038F00010E0E82EF12CC701002E02C095958795A7 -:103900000A94E2F780FF09C0602F7C2F80E00E94BC -:103910004706D81302C081E006C00150110958F7CC -:10392000C15010F780E0DF91CF911F910F91FF9070 -:10393000EF900895CF93C82F8CE20E946C1C8823CF -:1039400021F08C2FCF910C946C1C80E0CF910895C6 -:10395000CF930E94EF1D811102C00E94D51DC5E6C4 -:10396000C15049F00E949F038FE39CE90197F1F752 -:1039700000C00000F5CF89E20E949A1C811113C19A -:103980008AE20E949A1C81110E94D51D85E00E9446 -:103990009A1C81110E944A1C0E94FA1D8093DA0130 -:1039A00087E00E949A1C8823A9F18BE10E949A1C4F -:1039B000882351F08091DA0181FB222720F991E0E0 -:1039C000922790FB81F90EC08EE00E949A1C8823FA -:1039D00061F08091DA0182FB222720F991E09227A1 -:1039E00090FB82F98093DA0115C080E10E949A1C55 -:1039F0009091DA01882341F093FB222720F981E09E -:103A0000822780FB93F904C0892F809580FB90F971 -:103A10009093DA018091DA010E94FE1D0E940C1E33 -:103A20008093FA0180EE0E949A1C882341F08091D5 -:103A3000FA01982F909590FB80F98093FA0189E321 -:103A40000E949A1C882359F08091FA0181FB222759 -:103A500020F991E0922790FB81F98093FA0182EEA0 -:103A60000E949A1C882359F08091FA0182FB222738 -:103A700020F991E0922790FB82F98093FA0186EE7B -:103A80000E949A1C882359F08091FA0183FB222717 -:103A900020F991E0922790FB83F98093FA0183EE5D -:103AA0000E949A1C882359F08091FA0184FB2227F6 -:103AB00020F991E0922790FB84F98093FA0185E345 -:103AC0000E949A1C882359F08091FA0185FB2227D5 -:103AD00020F991E0922790FB85F98093FA0181E328 -:103AE0000E949A1C882359F08091FA0186FB2227B4 -:103AF00020F991E0922790FB86F98093FA0181E109 -:103B00000E949A1C882359F08091FA0187FB222792 -:103B100020F991E0922790FB87F98093FA01809138 -:103B2000FA010E94101E8091FA0187FB882780F914 -:103B300080930D0187E20E949A1CC82F8EE10E949B -:103B40009A1C8111C2608FE10E949A1C8111C4608D -:103B500080E20E949A1C8111C86081E20E949A1C36 -:103B60008111C06182E20E949A1C8111C06283E2CD -:103B70000E949A1C8111C06484E20E949A1C8823CE -:103B800011F0C06802C0CC2329F08C2F0E94071EC0 -:103B90006C2F03C00E94031E682F70E080E090E04D -:103BA000CF910C949718CF9108956DEE7EEF80E041 -:103BB00090E00E94412460E082E090E00E942F2487 -:103BC00060E083E090E00E942F2460E084E090E0D9 -:103BD0000E942F2460E085E090E00C942F2480E088 -:103BE00090E00E94292421E08D3E9E4F09F020E0C4 -:103BF000822F089582E090E00C942124682F82E0C7 -:103C000090E00C942F2483E090E00C942124682F02 -:103C100083E090E00C942F2484E090E00C94212425 -:103C2000682F84E090E00C942F248091E20180FFC3 -:103C30000BC06091130185E0689FB0011124759558 -:103C40006795759567952BC081FF09C06091130139 -:103C500085E0689FB00111247595679520C082FFAB -:103C600007C06091130185E0689FB001112417C05F -:103C70009091E3019923D1F060911201961788F792 -:103C80002091130185E0289F90011124929FA001AB -:103C9000939F500D112470E0CA010E94F3236038F5 -:103CA000710540F46115710539F002C065E070E0FE -:103CB000862F08958FE7089581E008958091E201AD -:103CC00080FF08C06091110170E07595679575954A -:103CD000679521C081FF06C06091110170E0759564 -:103CE000679519C082FF04C06091110170E010C097 -:103CF0009091E3019923C1F0609110019617A0F70C -:103D000080911101899FC001112470E00E94F3236A -:103D10006038710528F46115710521F0862F08952A -:103D20008FE7089581E0089561E070E0F4CF803F6F -:103D300021F40E94151E819504C0813F29F40E9440 -:103D4000151E8093E6010895823F21F40E94151EFE -:103D5000819504C0833F29F40E94151E8093E501DC -:103D60000895893F19F40E945E1E05C08A3F31F410 -:103D70000E945E1E81958093E70108958B3F21F498 -:103D80000E945E1E819504C08C3F29F40E945E1E35 -:103D90008093E8010895843F21F48091E4018160DB -:103DA00017C0853F21F48091E401826011C0863FF5 -:103DB00021F48091E40184600BC0873F21F480915D -:103DC000E401886005C0883F31F48091E40180619E -:103DD0008093E40108958D3F21F48091E201816098 -:103DE0000BC08E3F21F48091E201826005C08F3FBD -:103DF00029F48091E20184608093E2010895803F7C -:103E000039F48091E60187FF6CC01092E60169C029 -:103E1000813F29F48091E6011816BCF362C09091AD -:103E2000E501823F29F497FF5CC01092E50159C07B -:103E3000833F19F41916CCF354C0893F41F48091A3 -:103E4000E70118160CF04DC01092E7014AC08A3FF6 -:103E500029F48091E70187FF44C0F6CF8B3F39F406 -:103E60008091E80187FF3DC01092E8013AC08C3F85 -:103E700029F48091E8011816BCF333C0843F21F483 -:103E80008091E4018E7F17C0853F21F48091E40189 -:103E90008D7F11C0863F21F48091E4018B7F0BC0A0 -:103EA000873F21F48091E401877F05C0883F31F48A -:103EB0008091E4018F7E8093E40113C08D3F21F453 -:103EC0008091E2018E7F0BC08E3F21F48091E20150 -:103ED0008D7F05C08F3F29F48091E2018B7F809315 -:103EE000E2018091E50181110EC08091E60181110E -:103EF0000AC08091E701811106C08091E80181111B -:103F000002C01092E301089584EE91E00E945510E2 -:103F10000E94EF1B9093E1018093E00108951F93AD -:103F2000CF93DF938091E0019091E1010E94FB1B10 -:103F3000AC019091E301992321F02091140130E02C -:103F400006C0209115018AE0289F90011124421794 -:103F5000530708F486C08091E501C091E601D09135 -:103F6000E7011091E801811107C0C11176C0D1119C -:103F700074C0111172C075C09F3F19F09F5F90937C -:103F8000E301181624F40E94151E8093E501809128 -:103F9000E50187FF05C00E94151E81958093E5010C -:103FA0001C1624F40E94151E8093E6018091E60100 -:103FB00087FF05C00E94151E81958093E6016091E0 -:103FC000E501662339F1C091E601CC2319F1772789 -:103FD00067FD7095872F972F0E94042323E333E317 -:103FE00043E35FE30E9468230E94D1226093E501CE -:103FF0006C2F772767FD7095872F972F0E940423DA -:1040000023E333E343E35FE30E9468230E94D1226A -:104010006093E6011D1624F40E945E1E8093E70162 -:104020008091E70187FF05C00E945E1E8195809305 -:10403000E701111624F40E945E1E8093E80180912E -:10404000E80187FF05C00E945E1E81958093E8010C -:10405000DF91CF911F910C94841F9F3F09F08ECF69 -:1040600096CFDF91CF911F910895E4EEF1E085E0C6 -:10407000DF011D928A95E9F71092E3011092E201A7 -:104080000895833081F128F4813059F08230D1F0E5 -:104090000895853009F449C0B8F1863009F456C056 -:1040A000089580911501262F30E0280F311D2F3FF4 -:1040B000310524F4680F6093150108958FEF809304 -:1040C0001501089580911401262F30E0280F311D2D -:1040D0002F3F310524F4680F6093140108958FEF8A -:1040E00080931401089580911301262F30E0280F4A -:1040F000311D2F3F310524F4680F6093130108959B -:104100008FEF80931301089580911201262F30E0E4 -:10411000280F311D2F3F310524F4680F60931201E1 -:1041200008958FEF80931201089580911101262F39 -:1041300030E0280F311D2F3F310524F4680F6093C4 -:10414000110108958FEF809311010895809110015E -:10415000262F30E0280F311D2F3F310524F4680F42 -:104160006093100108958FEF8093100108958330BC -:1041700011F128F4813049F0823091F008958530B2 -:1041800081F120F18630C1F1089580911501681701 -:1041900020F4861B8093150108951092150108954F -:1041A00080911401681720F4861B809314010895F0 -:1041B00010921401089580911301681720F4861B52 -:1041C00080931301089510921301089580911201B4 -:1041D000681720F4861B8093120108951092120133 -:1041E000089580911101681720F4861B80931101B6 -:1041F000089510921101089580911001681720F41C -:10420000861B8093100108951092100108950F935A -:104210001F938D3109F46BC008F03FC08E3009F454 -:104220007FC0C0F4873009F469C068F4863009F0B3 -:10423000B1C08091DA01817F8E7F8093DA0181E0C5 -:104240008093EA01A8C0883009F4A2C08B3009F439 -:104250009FC0A0C0863109F49BC078F4803109F476 -:1042600072C0813109F096C00E94D71490910D015F -:1042700081E0892780930D018BC0893109F488C0C2 -:104280008B3109F087C08091DA0181FB222720F968 -:1042900091E0922790FB81F94CC0853309F470C0FE -:1042A00048F4873209F46CC008F459C0893209F423 -:1042B00067C070C0833438F48A3308F04EC0883346 -:1042C00009F466C067C0833409F45AC0883409F021 -:1042D00061C00E94D7140FEF13ED20E3015010408E -:1042E0002040E1F700C000000E944A1C51C00E941B -:1042F0008B220E943E100E9437094AC09091DA0139 -:10430000892F8095817080FB90F929F096609860E4 -:104310009093DA0140C0997F977F9093DA0138C07B -:104320008091DA0182FB222720F991E0922790FB0D -:1043300082F98093DA01992359F18091DA01816041 -:104340008093DA0125C08091DA0183FB222720F9CE -:1043500091E0922790FB83F9ECCF895301C08D51F6 -:1043600041E050E060E070E08A019B0104C0000F72 -:10437000111F221F331F8A95D2F7C901B80104C04B -:1043800061E070E080E090E00E9497180E94D714EE -:1043900081E001C080E01F910F91089580E00895B1 -:1043A00080E00895CF93C82F8091EA01813079F0A1 -:1043B00018F08230E9F187C0E0910E01F0910F0111 -:1043C0008081813169F0823209F07FC009C0E091BB -:1043D0000E01F0910F018081813111F0823261F480 -:1043E0008C2F0E94CE21811104C08C2F0E940721A6 -:1043F0001DC081E090E01AC08C2F0E94D021811155 -:1044000014C0C43179F048F4CB3079F0C03109F0F0 -:1044100060C082E08093EA0108C0C93219F0C83355 -:1044200021F057C01092EA0154C081E0817053C05E -:10443000C93289F118F5C43171F1A8F4C73009F017 -:1044400046C08AE08093150194E19093140193E0B3 -:10445000909313018093120188E08093110188E208 -:104460008093100134C0CE51C63088F5EC2FF0E0B7 -:10447000E65DFE4F80818093E90129C0CE34E9F0EA -:1044800020F4CB3421F56AE013C0C13579F0C23590 -:10449000F1F461E00DC08091E901882319F01092D8 -:1044A000E90115C081E08093EA0115C061E006C012 -:1044B0008091E9010E9441200AC06AE08091E901EF -:1044C0000E94B72004C01092EA0180E004C081E09D -:1044D00002C080E0ABCFCF910895E1E8F0E08081A9 -:1044E000886080838081816080838FB7F89493E0B7 -:1044F0009093890090ED909388008FBF0895EFE628 -:10450000F0E08081826080830895EFE6F0E08081B2 -:104510008D7F80830895EFE6F0E0908182E0892727 -:10452000808308951F920F920FB60F9211242F933C -:104530003F934F935F936F937F938F939F93AF932B -:10454000BF93EF93FF938091EB019091EC01019663 -:104550009093EC018093EB01811103C082E00E94F3 -:104560003709E091EC01E695E695F0E0E45AFA4F60 -:10457000E4918091EB018E1303C080E00E94370923 -:10458000FF91EF91BF91AF919F918F917F916F912B -:104590005F914F913F912F910F900FBE0F901F9001 -:1045A000189504D06894B1118DC0089570D088F02A -:1045B0009F5790F0B92F9927B751A0F0D1F0660F0F -:1045C000771F881F991F1AF0BA95C9F712C0B1302A -:1045D00081F077D0B1E0089574C0672F782F8827D5 -:1045E000B85F39F0B93FCCF3869577956795B39569 -:1045F000D9F73EF490958095709561957F4F8F4FD8 -:104600009F4F0895E89409C097FB3EF490958095DC -:10461000709561957F4F8F4F9F4F9923A9F0F92F88 -:1046200096E9BB279395F695879577956795B79506 -:10463000F111F8CFFAF4BB0F11F460FF1BC06F5FEC -:104640007F4F8F4F9F4F16C0882311F096E911C0FE -:10465000772321F09EE8872F762F05C0662371F01F -:1046600096E8862F70E060E02AF09A95660F771F33 -:10467000881FDAF7880F9695879597F9089557FD63 -:104680009058440F551F59F05F3F71F04795880FC0 -:1046900097FB991F61F09F3F79F087950895121657 -:1046A00013061406551FF2CF4695F1DF08C0161603 -:1046B00017061806991FF1CF8695710561050894B4 -:1046C0000895E894BB2766277727CB0197F90895CB -:1046D0000BD078C069D028F06ED018F0952309F07F -:1046E0005AC05FC01124EECFCADFA0F3959FD1F36B -:1046F000950F50E0551F629FF001729FBB27F00D90 -:10470000B11D639FAA27F00DB11DAA1F649F6627E4 -:10471000B00DA11D661F829F2227B00DA11D621F33 -:10472000739FB00DA11D621F839FA00D611D221FED -:10473000749F3327A00D611D231F849F600D211DD1 -:10474000822F762F6A2F11249F5750408AF0E1F074 -:1047500088234AF0EE0FFF1FBB1F661F771F881FBD -:1047600091505040A9F79E3F510570F014C0AACF58 -:104770005F3FECF3983EDCF3869577956795B795A8 -:10478000F795E7959F5FC1F7FE2B880F911D9695D2 -:10479000879597F9089597F99F6780E870E060E042 -:1047A00008959FEF80EC089500240A9416161706CA -:1047B00018060906089500240A9412161306140612 -:1047C00005060895092E0394000C11F4882352F075 -:1047D000BB0F40F4BF2B11F460FF04C06F5F7F4F2D -:1047E0008F4F9F4F089597FB072E16F4009407D024 -:1047F00077FD09D00E940D2407FC05D03EF490956A -:1048000081959F4F0895709561957F4F0895EE0FA4 -:10481000FF1F0590F491E02D0994AA1BBB1B51E1E9 -:1048200007C0AA1FBB1FA617B70710F0A61BB70B20 -:10483000881F991F5A95A9F780959095BC01CD01C5 -:104840000895F999FECF92BD81BDF89A992780B558 -:104850000895A8E1B0E042E050E00C944924262FEE -:10486000F999FECF92BD81BDF89A019700B4021666 -:1048700039F01FBA20BD0FB6F894FA9AF99A0FBE14 -:1048800008950196272F0E9430240C942F24DC01D8 -:10489000CB01FC01F999FECF06C0F2BDE1BDF89A4B -:1048A000319600B40D9241505040B8F70895F894F5 -:0248B000FFCF38 -:1048B20002203909C709A40970093C090101C7018D -:1048C20028080A03140A3F4D36391D05D0049A04FC -:1048D2006104F4030D0426043F04010203040506E7 -:0448E20007080900BA -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/plums/compiled.hex b/keyboards/ergodox_ez/keymaps/plums/compiled.hex deleted file mode 100644 index 5d928815a..000000000 --- a/keyboards/ergodox_ez/keymaps/plums/compiled.hex +++ /dev/null @@ -1,1165 +0,0 @@ -:100000000C9483020C94C7020C94C7020C94C70290 -:100010000C94C7020C94C7020C94C7020C94C7023C -:100020000C94C7020C94C7020C94960D0C94680EA5 -:100030000C94C7020C94C7020C94C7020C94C7021C -:100040000C94C7020C9472220C94C7020C94C70241 -:100050000C94C7020C94051C0C94C7020C94C702A4 -:100060000C94C7020C94C7020C94C7020C94C702EC -:100070000C94C7020C94C7020C94C7020C94C702DC -:100080000C94C7020C94C7020C94C7020C94C702CC -:100090000C94C7020C94C7020C94C7020C94C702BC -:1000A0000C94C7020C94C7020C94C702D50EF70E2D -:1000B000E50FF70EE50F3C0F5F0FE50FB40FC70F0D -:1000C00096129612C512C512FB121B134C144C1437 -:1000D00026134C14D613D6133D144C144C1446144A -:1000E000E313E313E313E313E313E313E313E31360 -:1000F000E313E313E313E313E313E313E313E31350 -:10010000F5130214091410141A1401E40135023510 -:1001100002E40001E00104020402E00000C801C89A -:1001200035002B00E300E100002000001E00140059 -:1001300004001D002F024D001F001A0016001B00B6 -:1001400026022900200008000700060031022A00CC -:10015000210015000900190033024A00220017008F -:100160000A0005000000E2083E002F0000000154D4 -:100170000000E200100F3000000002540000E60012 -:1001800023001C000B0011000000AE00240018002A -:100190000D0010002D004B0025000C000E00360055 -:1001A0002E002C00260012000F0037002702280026 -:1001B000270013003300380030024E00A800310041 -:1001C0003400E500012000000100010001000100F1 -:1001D000010000003A001E0220022202010001007C -:1001E0003B001F0221022302010001003C002F02FC -:1001F00026022F00010001003D00300227023000DE -:10020000010001003E00310235003502000001000E -:1002100001000100000001000000010001000100D8 -:1002200000000100000001003F000100500001003B -:100230000000010040000100510001000100010028 -:1002400041000100520001000100010042000100D4 -:100250004F00010001000100430001000100010006 -:100260000100010044004500010001000100000000 -:100270000100010001000100A900000001000100CF -:1002800001000100AA0001000100010001000100BD -:10029000AC0001000100010001000100AB00010001 -:1002A0000100010001000100010001000100010046 -:1002B0000100010000000100010001000000010038 -:1002C0000000010001000100000001000000010029 -:1002D00001000100F2000100000001000100010026 -:1002E000F1000100F400010001000100F000010034 -:1002F000F500B60001000100F3000100010001005B -:1003000001000100010001000100010001000100E5 -:1003100001000100010000001603450072006700A3 -:100320006F0044006F007800200045005A00000074 -:1003300016034500720067006F0044006F007800EC -:10034000200045005A0000000403090409026D0062 -:10035000040100A0FA0904000001030101000921C1 -:1003600011010001223F000705810308000A09046A -:1003700001000103010200092111010001224D00C9 -:100380000705820308000A090402000103000000B7 -:100390000921110100012236000705830308000A24 -:1003A00009040300010300000009211101000122DA -:1003B000390007058403100001120110010000003C -:1003C00008EDFE071301000102000105010906A165 -:1003D00001050719E029E715002501950875018138 -:1003E0000205081901290595057501910295017508 -:1003F00003910105071900297715002501957875E6 -:10040000018102C005010980A101850216010026B3 -:10041000B7001A01002AB700751095018100C005C8 -:100420000C0901A1018503160100269C021A010096 -:100430002A9C02751095018100C005010902A101E5 -:100440000901A100050919012905150025019505D6 -:10045000750181029501750381010501093009319A -:100460001581257F95027508810609381581257F3C -:10047000950175088106050C0A38021581257F95BE -:100480000175088106C0C005010906A1010507190B -:10049000E029E71500250195087501810295017590 -:1004A0000881010508190129059505750191029535 -:1004B00001750391010507190029FF150025FF9516 -:1004C0000675088100C00000000000000000000068 -:1004D00000010204060A0F17202C3A4A5D71879D1D -:1004E000B3C7DAE9F5FCFFFCF5E9DAC7B39D87711C -:1004F0005D4A3A2C20170F0A060402010000000092 -:1005000000000000000011241FBECFEFDAE0DEBFC4 -:10051000CDBF04B603FE24C08091FB019091FC0185 -:10052000A091FD01B091FE018730904BA740B04BE8 -:10053000B9F41092FB011092FC011092FD0110928F -:10054000FE0114BE84B7877F84BF88E10FB6F8949C -:1005500080936000109260000FBEE0E0FFE3099519 -:1005600011E0A0E0B1E0E2E7F8E402C005900D92EE -:10057000A433B107D9F711E0A4E3B1E001C01D92A3 -:10058000AB3FB107E1F70E94DA0A0C9437240C94D0 -:1005900000001092B9008AE08093B800089594EAB0 -:1005A0009093BC009091BC0097FFFCCF9091B90054 -:1005B000987F983021F0903111F081E00895809378 -:1005C000BB0084E88093BC008091BC0087FFFCCF17 -:1005D0008091B900887F883111F0803471F780E014 -:1005E000089584E98093BC008091BC0084FDFCCF19 -:1005F00008958093BB0084E88093BC008091BC0088 -:1006000087FFFCCF9091B900987F81E0983209F480 -:1006100080E0089584E88093BC008091BC0087FF4F -:10062000FCCF8091BB00089580910101811115C01C -:1006300080E40E94CF028093010181110CC082E10D -:100640000E94F90280930101811105C08FEF0E9481 -:10065000F902809301010E94F10284B1807F84B984 -:1006600085B1807F85B98AB1837F8AB98BB1837F59 -:100670008BB93E98469808950E94CF04809301015B -:100680000E94140380B38C7080BB81B3836F81BBE5 -:10069000A5E3B1E0E3E4F1E08EE08E0F11921D924C -:1006A0008E13FCCF0C94B904BF92CF92DF92EF92DD -:1006B000FF920F931F93CF93DF93809101018823C3 -:1006C00079F0809134018F5F80933401811108C0EB -:1006D0000E94CF0480930101811102C00E94610435 -:1006E00005E311E0C0E0D0E0DD24D39482E0C82E21 -:1006F000EE24E394F12CC730D10500F5809101017F -:10070000811164C080E40E94CF02809301018111B5 -:1007100012C082E10E94F9028093010181110BC095 -:10072000C7010C2E01C0880F0A94EAF780950E9439 -:10073000F902809301010E94F10248C0CA30A1F081 -:1007400028F4C83059F0C93061F005C0CC3089F0C8 -:1007500070F0CD3089F0209A289810C0219A2998FD -:100760000DC0229A2A980AC0239A2B9807C0529A41 -:1007700001C0539A5B9802C03E9A469890EA9A95B7 -:10078000F1F79FB1799902C082E001C080E09170D9 -:100790009D25982B7C9902C084E001C080E0892BC4 -:1007A0007D9902C038E001C030E0832B7E9902C001 -:1007B00020E101C020E0822B9FB19095991F9927DD -:1007C000991F9295990F907E892B0FC080910101FE -:1007D000811149C080E40E94CF02809301018823E7 -:1007E00079F1B12C0E94F1028B2DF80190819817BC -:1007F00019F08083C09200010E94140321960F5FBC -:100800001F4FCE30D10509F076CF809100018823AB -:1008100061F1815080930001882339F08FE99FE0D6 -:100820000197F1F700C0000020C0A3E4B1E0E5E3C8 -:10083000F1E0CF01825F91919D938E13FCCF15C0A3 -:1008400083E10E94F902809301018111CACF81E402 -:100850000E94CF02809301018111C3CF0E940A033D -:10086000B82EB094BFCF80E0C0CF0E945F0481E07B -:10087000DF91CF911F910F91FF90EF90DF90CF907C -:10088000BF900895E82FF0E0ED5BFE4F8081089562 -:1008900008950F931F93CF93DF93C3E4D1E010E04B -:1008A0000C2F025F899190E00E942B1B180F0C13F4 -:1008B000F9CF812FDF91CF911F910F9108950C9463 -:1008C0005A0556985E9825982D9826982E98279820 -:1008D0002F988FEF90E090938900809388009093F9 -:1008E0008B0080938A0090938D0080938C00259AD2 -:1008F0002D9A2FEF80E792E0215080409040E1F761 -:1009000000C00000269A2E9A2FEF80E792E0215037 -:1009100080409040E1F700C00000279A2F9A2FEF07 -:1009200080E792E0215080409040E1F700C0000055 -:1009300025982D982FEF80E792E02150804090403D -:10094000E1F700C0000026982E982FEF80E792E094 -:10095000215080409040E1F700C0000027982F9878 -:1009600056985E9825982D9826982E9827982F9817 -:10097000089589EA8093800089E08093810024981B -:100980002C983F988AB18F748AB96E98479A8BB128 -:10099000806B8BB9769A0E9461040C94590580E2B1 -:1009A000809301018091510181110EC00E94C90202 -:1009B00081E0809351012FEF83ED90E3215080403F -:1009C0009040E1F700C0000080E40E94CF028093D5 -:1009D000010181112EC00E94F90280930101811151 -:1009E00028C00E94F90280930101811122C08FE387 -:1009F0000E94F9028093010181111BC00E94F10243 -:100A000080E40E94CF0280930101811112C08CE02A -:100A10000E94F9028093010181110BC00E94F9022A -:100A200080930101811105C08FE30E94F902809338 -:100A300001010E94F102809101010895CF93DF939B -:100A4000EC01662319F06130C9F015C09A818D81DF -:100A5000992349F0982F907F21F080FF22C08F705A -:100A60008D8380EE17C0807F19F480EE0E94021201 -:100A70008D818F708D8380E090E018C09A818D8188 -:100A8000992359F0982F907F21F080FF0DC08F702F -:100A90008D8384EE0E943A11EECF807F49F784EE79 -:100AA000E5CF83E191E002C08AE091E0DF91CF9150 -:100AB000089508956091BD017091BE018091BF01BC -:100AC0009091C0010E94371B56985E9825982D98EA -:100AD00026982E9827982F98813019F0823021F08F -:100AE0000895259A2D9A0895269A2E9A089581E0C0 -:100AF000089581E008950C94790508950F931F934C -:100B0000CF93DF938C01FC01C081D181CE010E9483 -:100B1000B019BE010E942706EC01B8010E947B05B6 -:100B2000882309F48DC0F8018281882309F44AC022 -:100B300080915D0181111FC0C431F0E5DF0709F02C -:100B400051C00E947D0581E080935D010E94CF1B12 -:100B500090935C0180935B011092540110925601B6 -:100B600010925501109258011092570110925A019B -:100B70001092590165C080915B0190915C010E94C7 -:100B8000DB1B883C910570F480915401E82FF0E064 -:100B9000EE0FFF1FEB5AFE4FD183C0838F5F809310 -:100BA00054014EC0C43880E5D80721F0C538D0457F -:100BB00001F13AC0F8018281882341F0109252017C -:100BC00082E01EC0C438E0E5DE0759F5809152018D -:100BD000811106C086E20E943A1186E20E9402124A -:100BE00082E01CC0C438F0E5DF0741F3C538D045CA -:100BF000D9F4F8018281882331F01092530180E208 -:100C00000E9451121DC080915301811106C087E2DC -:100C10000E943A1187E20E94021280E20E9458125A -:100C20000FC0C538D04529F381E0809352018093ED -:100C30005301C801DF91CF911F910F910C9477055B -:100C400080E0DF91CF911F910F910895089596E074 -:100C5000799FF001112494E5899FE00DF11D112485 -:100C6000E60FF11DEE0FFF1FE05EFE4F85919491A0 -:100C70000895880F991FFC01E456F04085919491E6 -:100C80000895880F991FFC01E45EFE4F85919491B1 -:100C900008950F931F93CF93DF93EC01811520E309 -:100CA000920750F5C11580E2D80708F0C3C0CB3BCE -:100CB000D10590F4C83AD10508F06AC0C53AD1050B -:100CC00008F05BC0C430D10508F0D0C1219709F00D -:100CD000CAC101E010E00AC2CF3FD10511F008F00F -:100CE000C5C1C03FD10508F0A2C0CE01805E910908 -:100CF000089708F4BBC1B7C1C13090E5D90709F422 -:100D0000A2C020F5C0318FE4D80770F4C11590E47B -:100D1000D90708F094C0C11521E3D20708F0A3C198 -:100D2000DD278E01106CE2C1C115D04509F09BC1D1 -:100D30000E94B7148FEF94E32CE081509040204044 -:100D4000E1F700C000000E942A1CD0C1C11597E540 -:100D5000D90758F4C03121E5D20708F01CC1C431CD -:100D600080E5D80708F475C07EC1CE019057811583 -:100D7000904108F078C1DF7073C1C53AD10509F41C -:100D800077C1C63AD10509F076C102E810E4AEC1D8 -:100D9000C83AD10509F472C1C93AD10509F471C143 -:100DA000CA3AD10509F470C1CB3AD10509F46FC133 -:100DB000CC3AD10509F46EC1CD3AD10509F46DC123 -:100DC000C03BD10509F46CC1CE3AD10509F46BC121 -:100DD000CF3AD10509F46AC1C13BD10509F469C113 -:100DE000C23BD10509F468C1C33BD10509F467C111 -:100DF000C43BD10509F466C1C53BD10509F465C101 -:100E0000C63BD10509F464C1C73BD10509F463C1F0 -:100E1000C83BD10509F462C1C93BD10509F461C1E0 -:100E2000CA3BD10509F460C100E014E45FC18E0142 -:100E300010655CC1CE019F700E94410658C1DF70F1 -:100E40008E01106A53C18091DA0181608093DA01CA -:100E50004DC10E94CF1D811102C00E94B51D0E948C -:100E6000EC1D90E09093FB018093FA01C23080E585 -:100E7000D80721F48091FA01816086C0C43090E5E2 -:100E8000D90721F48091FA0182607EC0C63020E546 -:100E9000D20721F48091FA01846076C0C83080E5E1 -:100EA000D80719F48091FA0127C0CA3090E5D90714 -:100EB00021F48091FA01806167C0CC3020E5D2072F -:100EC00021F48091FA0180625FC0CE3080E5D807BE -:100ED00021F48091FA01806457C0C03190E5D907B0 -:100EE00021F48091FA0180684FC0C23120E5D20719 -:100EF00029F48091FA018460886046C0C33080E59F -:100F0000D80721F48091FA018E7F3EC0C53090E56C -:100F1000D90721F48091FA018D7F36C0C73020E5D2 -:100F2000D20721F48091FA018B7F2EC0C93080E571 -:100F3000D80719F48091FA0126C0CB3090E5D90783 -:100F400021F48091FA018F7E1FC0CD3020E5D207B9 -:100F500021F48091FA018F7D17C0CF3080E5D8074A -:100F600021F48091FA018F7B0FC0C13190E5D90740 -:100F700021F48091FA018F7707C0C331D04531F455 -:100F80008091FA018B7F877F8093FA018091FA012B -:100F90000E94F01DABC08D2F99278F70992781304B -:100FA0009105D9F49E012370332702C0880F991F41 -:100FB0002A95E2F79C688E0144E0000F111F4A95C4 -:100FC000E1F700271370802B912B53E0CC0FDD1F2E -:100FD0005A95E1F7C076DD272FC08230910531F4B4 -:100FE000DC2FCC278E01016F106A80C08330910501 -:100FF00069F4CE018370992701E010E002C0000F70 -:10100000111F8A95E2F7C8019C680FC084309105D2 -:10101000B9F4CE018370992701E010E002C0000FFF -:10102000111F8A95E2F7C8019A6823E0CC0FDD1FF3 -:101030002A95E1F7C07ED7708C010C2B1D2B56C072 -:101040008530910531F4DC2FCC278E01046F106AB6 -:101050004DC0069709F04AC0CF71DD27DC2FCC27A1 -:101060008E01106243C000E010E040C08E013EC01F -:1010700001E810E43BC003E810E438C002EE14E4D9 -:1010800035C009EE14E432C00AEE14E42FC005EBBB -:1010900014E42CC006EB14E429C007EB14E426C0CA -:1010A0000CEC14E423C00DEC14E420C003E815E4B8 -:1010B0001DC00AE815E41AC002E915E417C004E9E6 -:1010C00015E414C001E216E411C003E216E40EC0F8 -:1010D00004E216E40BC005E216E408C006E216E4DA -:1010E00005C007E216E402C00AE216E4C801DF9177 -:1010F000CF911F910F91089596E0799FF0011124EF -:1011000094E5899FE00DF11D1124E60FF11DEE0F0E -:10111000FF1FE05EFE4F85919491803E9105E0F4C3 -:10112000803C910558F58133910509F46FC048F46E -:101130008932910509F463C08A32910509F46DC0C2 -:1011400072C089339105E9F082389105D1F0853379 -:10115000910509F44DC067C0833E910581F138F4D3 -:10116000803E9105B9F0823E9105D9F05CC0863E83 -:10117000910561F1873E9105A1F155C00E943906A4 -:1011800008952091FA0120FD02C021FF4CC080EE9D -:1011900090E049C08091FA0180FFF9CF89E390E0A7 -:1011A00042C08091FA0182FF0EC08091FA0184FF53 -:1011B00003C080E090E037C083EE90E034C08091BF -:1011C000FA0182FFF2CF82EE90E02DC08091FA0109 -:1011D00083FF0BC08091FA0184FDEBCF87EE90E096 -:1011E00022C08091FA0183FFF5CF86EE90E01BC00C -:1011F0008091FA0185FF07C089E290E014C08091D8 -:10120000FA0185FFF9CF85E390E00DC08091FA01E6 -:1012100086FF07C08AE290E006C08091FA0186FF4F -:10122000F9CF81E390E00E944906089508950C9457 -:10123000160980916E010895CF93DF9300D01F921D -:10124000CDB7DEB79C018091F101843019F593E0B0 -:1012500099833B832A839093E9008FEF9091E80074 -:10126000815095FD06C095ED9A95F1F7000081112A -:10127000F5CF8091E80085FF0DC040E050E063E0CD -:1012800070E0CE0101960E94860B8091E8008E7777 -:101290008093E8000F900F900F90DF91CF91089509 -:1012A000CF93DF9300D01F92CDB7DEB72091F1012D -:1012B000243021F522E029839B838A8383E0809375 -:1012C000E9008FEF9091E800815095FD06C095ED03 -:1012D0009A95F1F700008111F5CF8091E80085FF24 -:1012E0000DC040E050E063E070E0CE0101960E9446 -:1012F000860B8091E8008E778093E8000F900F9026 -:101300000F90DF91CF9108952091F1012430F1F4F5 -:1013100022E02093E9002FEF3091E800215035FDC5 -:1013200006C035ED3A95F1F700002111F5CF209177 -:10133000E80025FF0BC040E050E065E070E00E944F -:10134000860B8091E8008E778093E8000895CF9314 -:10135000DF93EC019091F101943009F046C0809147 -:101360000C018823D9F080910D018823B9F0909366 -:10137000E9008FEF9091E800815095FD06C095E15E -:101380009A95F1F700008111F5CF8091E80085FF73 -:101390002CC040E050E060E170E017C081E0809335 -:1013A000E9008FEF9091E800815095FD06C095ED22 -:1013B0009A95F1F700008111F5CF8091E80085FF43 -:1013C00014C040E050E068E070E0CE010E94860B5F -:1013D0008091E8008E778093E80080E1FE01AEE521 -:1013E000B1E001900D928A95E1F7DF91CF910895D8 -:1013F0008091F001811109C00E941B0D0E94780D9F -:101400008091E20084608093E20008951092F001E0 -:10141000089508950C945F220E94C01B0E946522CB -:101420000E941E100C94170942E061EC81E00E94BA -:10143000950C42E061EC82E00E94950C42E061EC88 -:1014400083E00E94950C42E161EC84E00C94950CE1 -:101450008091F301833009F455C030F4813071F08C -:10146000823009F48EC008958A3009F47AC08B3036 -:1014700009F460C0893009F09CC020C08091F2015D -:10148000813A09F096C08091E800877F8093E80058 -:101490008091F6019091F701892B21F460E18EE5AE -:1014A00091E003C060E080E090E070E00E94D10B2A -:1014B0008091E8008B778093E80008958091F20195 -:1014C000813209F076C08091F6019091F701009782 -:1014D00019F0039709F06DC08091E800877F809331 -:1014E000E8008091E80082FD05C08091F101811142 -:1014F000F8CF5FC08091F10080936E018091E80089 -:101500008B7753C08091F201813A09F052C08091EB -:10151000F6019091F701892B09F04BC08091E8000A -:10152000877F8093E8008091E80080FFFCCF809166 -:101530000C0136C08091F2018132D9F58091F6011B -:101540009091F701892BA9F58091E800877F80931E -:10155000E8000E94CA0C8091F40180930C010C9465 -:10156000B7148091F201813221F58091E800877FE4 -:101570008093E8000E94CA0C8091F50180936F016E -:1015800008958091F201813AA1F48091E800877F6B -:101590008093E8008091E80080FFFCCF80916F018C -:1015A0008093F1008091E8008E778093E8000C949E -:1015B000CA0C089584B7877F84BF88E10FB6F8947A -:1015C00080936000109260000FBE90E080E80FB63C -:1015D000F89480936100909361000FBE0E946D109B -:1015E0000E941B0D0E94780D8091E2008460809320 -:1015F000E20078940E94FE0F0E946F1082E091E05A -:101600000E9419100E944D228091F101853069F4E9 -:101610000E94871B8091EF018823B1F30E94B21BC7 -:10162000882391F30E94700BEFCF0E947510ECCFCE -:10163000292F332723303105C9F064F421303105D7 -:1016400081F02230310509F043C08DE690E02CE4B2 -:1016500033E042C021323105F1F02232310541F14F -:1016600037C082E190E029EB33E036C09927813022 -:10167000910541F08230910541F0892B49F5E8E46C -:10168000F3E005C0E0E3F3E002C0E8E1F3E08491B9 -:1016900090E09F0121C06430D8F4E62FF0E0EE0F17 -:1016A000FF1FEE5DFE4F2081318189E090E014C084 -:1016B000643070F470E0FB01EE0FFF1FE65EFE4F3A -:1016C00020813181FB01EA5EFE4F808190E004C001 -:1016D00080E090E020E030E0FA013183208308953B -:1016E00080E189BD82E189BD09B400FEFDCF809112 -:1016F000D8008F7D8093D8008091E0008260809335 -:10170000E0008091E00081FDFCCF0895CF92DF9250 -:10171000EF92FF920F931F93CF93DF93EC018B0116 -:101720006A010E94E90C811133C0C114D10439F05F -:10173000F60180819181081B190BC80FD91FE12C7C -:10174000F12C0115110519F18091E80085FD16C0F5 -:101750008091E8008E778093E800C114D10449F0AD -:10176000F60180819181E80EF91EF182E08285E028 -:101770000FC00E94E90C882321F30AC0899180934D -:10178000F10001501109FFEFEF1AFF0ADACF80E0F4 -:10179000DF91CF911F910F91FF90EF90DF90CF904D -:1017A00008952091F8013091F9012617370748F084 -:1017B0006115710539F42091E8002E772093E80037 -:1017C00001C0B90140E061157105A9F12091F10155 -:1017D000222309F443C0253009F442C02091E800D7 -:1017E00023FD40C02091E80022FD32C02091E80096 -:1017F00020FFE9CF4091F3002091F20030E0342B3C -:10180000FC01CF016115710559F02830310540F414 -:1018100081918093F100615071092F5F3F4FF1CFAB -:1018200041E02830310509F040E02091E8002E77B2 -:101830002093E800C8CF4111C9CF0AC08091F101BF -:10184000882361F0853061F08091E80083FD0AC053 -:101850008091E80082FFF2CF80E0089582E0089551 -:1018600083E0089581E008952091F8013091F90115 -:101870002617370748F06115710539F42091E80003 -:101880002E772093E80001C0B901FC0120E061152A -:10189000710591F18091F101882309F440C08530F0 -:1018A00009F43FC08091E80083FD3DC08091E800CD -:1018B00082FD2FC08091E80080FFE9CF2091F300E6 -:1018C0008091F20090E0922B6115710559F08830FB -:1018D000910540F424912093F100319661507109F3 -:1018E0000196F2CF21E0089709F020E08091E8000E -:1018F0008E778093E800CBCF2111CCCF0AC08091A6 -:10190000F101882361F0853061F08091E80083FD6A -:101910000AC08091E80082FFF2CF80E0089582E063 -:10192000089583E0089581E00895982F973058F541 -:101930009093E900981739F07091EC002091ED0038 -:101940005091F00003C0242F762F50E021FF19C0E2 -:101950003091EB003E7F3093EB003091ED003D7F06 -:101960003093ED003091EB0031603093EB007093D9 -:10197000EC002093ED005093F0002091EE0027FF43 -:1019800007C09F5FD3CF8F708093E90081E00895F7 -:1019900080E008958091F20187FF11C08091E800F6 -:1019A00082FD05C08091F1018111F8CF11C08091B5 -:1019B000E8008B770BC08091F101882349F080917A -:1019C000E80080FFF8CF8091E8008E778093E800F0 -:1019D00008952091E4003091E50095E64091EC00F7 -:1019E000842F817040FF22C08091E80080FD1CC0E0 -:1019F0008091F101882391F0853091F08091EB0086 -:101A000085FD10C04091E4005091E5004217530756 -:101A100029F39A01915011F784E0089582E0089526 -:101A200083E0089581E0089580E008954091E80002 -:101A300042FFDECF08950E94890D0E94910DE0EED5 -:101A4000F0E0808181608083E8EDF0E080818F7735 -:101A5000808319BCA7EDB0E08C918E7F8C93808140 -:101A60008F7E80831092F00108950F931F93CF9380 -:101A7000DF930E94890D0E94910DC8EDD0E088810E -:101A80008F77888388818068888388818F7D888329 -:101A900019BC1092F1011092ED011092EF01109219 -:101AA000EE0100EE10E0F80180818B7F8083888159 -:101AB0008160888342E060E080E00E94950CE1EE66 -:101AC000F0E080818E7F8083E2EEF0E080818160B3 -:101AD0008083808188608083F80180818E7F80830D -:101AE000888180618883DF91CF911F910F91089544 -:101AF000E8EDF0E080818F7E8083E7EDF0E080818B -:101B00008160808384E082BF81E08093F0010C9447 -:101B1000350DE8EDF0E080818E7F80831092E20049 -:101B200008951092DA001092E10008951F920F922A -:101B30000FB60F9211242F933F934F935F936F93A0 -:101B40007F938F939F93AF93BF93EF93FF93809176 -:101B5000E10082FF0BC08091E20082FF07C080910C -:101B6000E1008B7F8093E1000E94FD0F8091DA00FD -:101B700080FF1FC08091D80080FF1BC08091DA00D9 -:101B80008E7F8093DA008091D90080FF0DC080E1C4 -:101B900089BD82E189BD09B400FEFDCF81E080935B -:101BA000F1010E94F80905C019BC1092F1010E94D0 -:101BB000060A8091E10080FF19C08091E20080FF59 -:101BC00015C08091E2008E7F8093E2008091E20058 -:101BD00080618093E2008091D80080628093D80079 -:101BE00019BC85E08093F1010E940A0A8091E1000E -:101BF00084FF30C08091E20084FF2CC080E189BD69 -:101C000082E189BD09B400FEFDCF8091D8008F7DAF -:101C10008093D8008091E1008F7E8093E1008091D5 -:101C2000E2008F7E8093E2008091E20081608093E9 -:101C3000E2008091ED01882311F084E007C08091DB -:101C4000E30087FD02C081E001C083E08093F101E1 -:101C50000E940C0A8091E10083FF29C08091E2007C -:101C600083FF25C08091E100877F8093E10082E0BF -:101C70008093F1011092ED018091E1008E7F8093BD -:101C8000E1008091E2008E7F8093E2008091E2008B -:101C900080618093E20042E060E080E00E94950C69 -:101CA0008091F00088608093F0000E94090AFF9103 -:101CB000EF91BF91AF919F918F917F916F915F91C4 -:101CC0004F913F912F910F900FBE0F901F9018953D -:101CD0001F920F920FB60F9211242F933F934F93A1 -:101CE0005F936F937F938F939F93AF93BF93CF93A4 -:101CF000DF93EF93FF93C091E900CF708091EC00E8 -:101D0000D82FD17080FDD0E81092E9008091F000CA -:101D1000877F8093F00078940E94AC0E1092E900C7 -:101D20008091F00088608093F000CD2BCF70C0933D -:101D3000E900FF91EF91DF91CF91BF91AF919F911A -:101D40008F917F916F915F914F913F912F910F9064 -:101D50000FBE0F901F9018951F93CF93DF93CDB7B1 -:101D6000DEB7AA970FB6F894DEBF0FBECDBFE2EF85 -:101D7000F1E088E08E0F9091F10091938E13FBCFEC -:101D80000E94280A8091E80083FF1FC18091F20120 -:101D90009091F301492F50E04A30510508F015C1E8 -:101DA000FA01EA5AFF4F0C94E723803881F0823819 -:101DB00009F00BC18091F6018F708093E90080914A -:101DC000EB0085FB882780F91092E90006C080911E -:101DD000EE019091EF01911182609091E800977F60 -:101DE0009093E8008093F1001092F100C8C0282F72 -:101DF0002D7F09F0EAC0882319F0823061F0E5C038 -:101E00008091F401813009F0E0C0933009F080E066 -:101E10008093EF012BC08091F401811127C0809144 -:101E2000F6018F7009F4D1C08093E9002091EB0096 -:101E300020FF1CC0933021F48091EB00806214C01D -:101E40009091EB0090619093EB0021E030E0A901CC -:101E500002C0440F551F8A95E2F74093EA001092A2 -:101E6000EA008091EB0088608093EB001092E9001B -:101E70008091E800877F86C08111A7C01091F4018E -:101E80001F778091E3008078812B8093E30080911D -:101E9000E800877F8093E8000E94CA0C8091E800E8 -:101EA00080FFFCCF8091E30080688093E3001111F4 -:101EB00002C082E001C083E08093F10186C08058B7 -:101EC000823008F082C08091F4019091F5018C3D40 -:101ED00053E0950779F583E08A838AE289834FB7D7 -:101EE000F894DE01139620E03EE051E2E32FF0E0AB -:101EF00050935700E49120FF03C0E295EF703F5FDD -:101F0000EF708E2F90E0EA3010F0C79601C0C096B7 -:101F10008D939D932F5F243149F74FBF8091E80047 -:101F2000877F8093E8006AE270E0CE0101960E940C -:101F3000D10B14C0AE014F5F5F4F6091F6010E945C -:101F4000180BBC01009709F440C09091E800977FFE -:101F50009093E80089819A810E94340C8091E80076 -:101F60008B778093E80031C0803879F58091E80064 -:101F7000877F8093E8008091ED018093F10080914C -:101F8000E8008E778093E8000E94CA0C1EC0811181 -:101F90001CC09091F4019230C0F48091E800877FDA -:101FA0008093E8009093ED010E94CA0C8091ED01AE -:101FB000811106C08091E30087FD02C081E001C06D -:101FC00084E08093F1010E94140A8091E80083FF6D -:101FD0000AC08091E800877F8093E8008091EB0041 -:101FE00080628093EB00AA960FB6F894DEBF0FBE16 -:101FF000CDBFDF91CF911F9108950895CF93809128 -:10200000F1018823A1F0C091E900CF709091EC001C -:10201000892F817090FD80E8C82B1092E900809193 -:10202000E80083FD0E94AC0ECF70C093E900CF9111 -:10203000089590937501809374010895E09174015F -:10204000F0917501309721F00190F081E02D099415 -:1020500080E00895E0917401F0917501309721F0CE -:102060000280F381E02D09940895E0917401F091CC -:102070007501309721F00480F581E02D09940895D1 -:1020800020917201309173018217930771F0909340 -:10209000730180937201E0917401F09175013097A2 -:1020A00021F00680F781E02D0994089520917001B8 -:1020B000309171018217930771F0909371018093B1 -:1020C0007001E0917401F0917501309721F0008466 -:1020D000F185E02D0994089508950C946C100E94E8 -:1020E000C61B0E943C030C94881C9F92AF92BF9227 -:1020F000CF92DF92EF92FF920F931F93CF93DF93D4 -:1021000000D000D000D0CDB7DEB70E9454030DE060 -:1021100010E0AA24A394B12C902E802F0E94420498 -:10212000980129583E4F6901F901F080F826A1F481 -:102130000150110988F78FEF89838A831B820E94DF -:10214000CF1B8160782F9D838C8349815A816B815D -:102150008D810E940C112FC09091DA0191FF04C073 -:102160008E830E9448048E8125E030E0A501022E76 -:1021700001C0440F0A94EAF7E42E4F21C1F02983ED -:102180009A828E2191E009F490E09B830E94CF1BFC -:102190008160782F9D838C8349815A816B818D81E9 -:1021A0000E940C11F6018081E826E08204C02150D3 -:1021B0003109E0F6BDCF0E946F1F109176010E9499 -:1021C0001E101817B9F00E941E10809376012696F3 -:1021D0000FB6F894DEBF0FBECDBFDF91CF911F9138 -:1021E0000F91FF90EF90DF90CF90BF90AF909F90B6 -:1021F0000C94170926960FB6F894DEBF0FBECDBF1C -:10220000DF91CF911F910F91FF90EF90DF90CF90D2 -:10221000BF90AF909F900895CF93DF93CDB7DEB777 -:102220002B970FB6F894DEBF0FBECDBF4F835887F4 -:1022300069877A878B87DE01119686E0FD0111920E -:102240008A95E9F785E0FE01379601900D928A950F -:10225000E1F749815A816B817C818D819E810E9449 -:1022600055172B960FB6F894DEBF0FBECDBFDF918A -:10227000CF910895CF93882309F4C2C0C82F823824 -:1022800059F40E941E1081FDBBC089E30E942F1AE1 -:102290000E94FC1A89E30CC0833879F40E941E1056 -:1022A00080FDAEC083E50E942F1A0E94FC1A83E5D0 -:1022B0000E94711ACF910C94FC1A843859F40E9430 -:1022C0001E1082FD9DC087E40E942F1A0E94FC1AF6 -:1022D00087E4EECF8CEF8C0F813A48F48C2F0E946C -:1022E000B22181118DC08C2F0E942F1AE3CF80E282 -:1022F0008C0F883048F4C77081E001C0880FCA9500 -:10230000EAF70E94B51AD6CF8BE58C0F833078F4AC -:10231000C53A29F0C63A31F083E890E005C081E87B -:1023200090E002C082E890E0CF910C94401088E5E4 -:102330008C0F833108F064C0C83A39F1C93A41F1D1 -:10234000CA3A49F1CB3A51F1CC3A59F1CD3A61F15F -:10235000C03B69F1CE3A71F1CF3A79F1C13B81F1DD -:10236000C23B89F1C33B91F1C43B99F1C53BA1F15B -:10237000C63BA9F1C73BB1F1C83BB9F1C93BC1F1BB -:10238000CA3BC9F180E090E038C082EE90E035C0F1 -:1023900089EE90E032C08AEE90E02FC085EB90E0AD -:1023A0002CC086EB90E029C087EB90E026C08CEC37 -:1023B00090E023C08DEC90E020C083E891E01DC048 -:1023C0008AE891E01AC082E991E017C084E991E0BF -:1023D00014C081E292E011C083E292E00EC084E278 -:1023E00092E00BC085E292E008C086E292E005C070 -:1023F00087E292E002C08AE292E0CF910C945610FC -:10240000CF910895882309F44BC0823859F40E9473 -:102410001E1081FF45C089E30E942F1A0E94FC1AFA -:1024200089E30CC0833871F40E941E1080FF38C00D -:1024300083E50E942F1A0E94FC1A83E50E94711AFC -:102440000C94FC1A843859F40E941E1082FF28C094 -:1024500087E40E942F1A0E94FC1A87E4EFCF9CEFBA -:10246000980F913A58F390E2980F983050F4877093 -:1024700091E001C0990F8A95EAF7892F0E94BB1A53 -:10248000DFCF9BE5980F933020F480E090E00C9430 -:102490004010885A833120F480E090E00C9456106C -:1024A0000895882321F00E94B51A0C94FC1A08950F -:1024B000882321F00E94BB1A0C94FC1A08957F9285 -:1024C0008F929F92AF92BF92CF92DF92EF92FF9244 -:1024D0000F931F93CF93DF931F92CDB7DEB77C018D -:1024E000C62E772EFC01058102950F701281111105 -:1024F0000E94D21A0E94281A882379F0112369F0C9 -:1025000080E28C0D883048F082E00E94111A0E940F -:10251000281A91E0D82ED92601C0D12CE72DE295BA -:10252000EF70F0E0E05AFF4F0C94E723872D807F97 -:10253000072D0F70882311F00295007F112389F079 -:10254000002309F490C180E28C0D883020F4802FA4 -:102550000E94B51A03C0802F0E94C51A0E94FC1A5F -:1025600082C18C2D0E940212002309F495C180E2E1 -:102570008C0D883020F4802F0E94BB1A03C0802F5E -:102580000E94CB1A0E94FC1A87C1972D907F872D3D -:102590008F70903211F08295807FCC2021F0F1E095 -:1025A000CF16B1F01EC0112349F0002309F414C165 -:1025B000013009F011C10E94E51A6EC1002319F023 -:1025C000013009F469C189830E94E81A89810AC12E -:1025D000112321F0023008F05FC1FEC001115CC17F -:1025E00001C1112321F0002309F4F6C03CC10023EE -:1025F00009F4F8C03EC1872D86958695837090E0DA -:10260000009719F0019761F047C1112321F08C2D3B -:10261000972D937002C080E090E00E9440103CC172 -:10262000112321F08C2D972D937002C080E090E053 -:102630000E94561031C18C2D112319F00E94771E73 -:1026400002C00E94DF1E0E94641F26C1872D837076 -:1026500009F052C0111120C18C2D8295869587708A -:10266000880F880F9C2D9F70892E912CA12CB12C46 -:10267000082E04C0880C991CAA1CBB1C0A94D2F713 -:10268000C4FE14C00FE010E020E030E0B901A80162 -:1026900004C0440F551F661F771F8A95D2F7CB01E0 -:1026A000BA01609570958095909503C060E070E0E8 -:1026B000CB01272D26952695237030E02230310559 -:1026C00069F02330310589F0682979298A299B2905 -:1026D0002130310571F00E949D18DEC068297929EA -:1026E0008A299B290E94B918D7C00E949D18C5014C -:1026F000B4010E948118D0C0112319F0872D817078 -:1027000001C08695882309F4C7C08C2D82958695D3 -:102710008770880F880F9C2D9F70892E912CA12C7B -:10272000B12C082E04C0880C991CAA1CBB1C0A944E -:10273000D2F7C4FE14C00FE010E020E030E0B90191 -:10274000A80104C0440F551F661F771F8A95D2F752 -:10275000CB01BA01609570958095909503C060E0BB -:1027600070E0CB01272D269526952370422F50E04F -:102770004230510569F04330510589F068297929C3 -:102780008A299B294130510571F00E94771984C034 -:10279000682979298A299B290E9493197DC00E9462 -:1027A0007719C501B4010E945B1976C08C2D90E0A9 -:1027B000FC01E05EF109E531F10508F050C0E05997 -:1027C000FF4F0C94E7230C2D0F70872D8F71112371 -:1027D00031F00E94F418802F0E9451125DC00E94B7 -:1027E0001519802F0E94581257C0112339F001117A -:1027F00053C0872D8F710E943A194EC0023008F0E5 -:102800004BC0F7CF112339F0872D8F710E94F41838 -:1028100043C01123C9F3872D8F710E9415193CC045 -:10282000112329F0872D8F710E94DF1835C00E9477 -:10283000D51832C0112351F0172D1F71812F0E941E -:10284000F41863E0812F0E94081A26C081E00E94DC -:10285000111A023008F182E00E94111A1DC01123E2 -:1028600031F0002389F28C2D0E943A1115C000230B -:1028700091F28C2D0E9402120FC0472D4F706C2DCB -:10288000C7010E941E050E94F91706C0472D4F7010 -:102890006C2DC7010E942606DD20F9F00E94041A63 -:1028A00080FD1BC0F70112820E94FE190E94F418DD -:1028B000C7010E947C140E94FE190F90DF91CF91F6 -:1028C0001F910F91FF90EF90DF90CF90BF90AF904E -:1028D0009F908F907F900C9415190F90DF91CF915E -:1028E0001F910F91FF90EF90DF90CF90BF90AF902E -:1028F0009F908F907F9008950F931F93CF93DF93B6 -:10290000EC01888199812B813C81232BB9F09F3F79 -:1029100011F48F3F99F0CE010E947E05882371F05B -:10292000688179818A810E94FA198C010E94AF190D -:102930000E947618B801CE010E945F12DF91CF91FC -:102940001F910F9108950E94D21A0E94E21A0E94CC -:10295000A71A0E94FC1A0E9415200E94641F80E0A2 -:1029600090E00E94401080E090E00C9456100E948D -:10297000C21A0C94A3140E94EF19292F22952F70CC -:1029800030E02C3031054CF42A3031056CF4225003 -:10299000310922303105A8F407C02C30310569F027 -:1029A0002F30310551F00DC0803F69F018F4803EA2 -:1029B00040F409C0843F29F406C093FB882780F9BE -:1029C000089580E0089581E00895CF93DF9300D0CB -:1029D00000D01F92CDB7DEB70F900F900F900F90E1 -:1029E0000F90DF91CF910895CF93DF9300D000D067 -:1029F00000D0CDB7DEB726960FB6F894DEBF0FBE77 -:102A0000CDBFDF91CF9108951F93CF93DF93C091F6 -:102A1000850116E080918601C81799F0D0E01C9FCF -:102A2000F0011D9FF00D1124E957FE4F40815181A7 -:102A300062817381848195810E94F4142196C7700C -:102A4000E9CFDF91CF911F9108954091B701509147 -:102A5000B8016091B9017091BA018091BB01909168 -:102A6000BC010C94F4148091BC0182958F7009F024 -:102A700054C08091B901882309F44FC08091850129 -:102A8000A09186016091B7017091B8014091BA019F -:102A90005091BB01B6E08A1709F43FC090E04115A0 -:102AA0005105C1F17F3F11F46F3FA1F1B89FF001D3 -:102AB000B99FF00D1124E957FE4F218172132AC0EE -:102AC0002081621327C02281211124C023813481F7 -:102AD0002417350710F421503109241B350B283CED -:102AE0003105C0F42091BC012F7020612093BC01FE -:102AF00026E0289FF001299FF00D1124E457FE4F96 -:102B000080818F708061808387EB91E00E947C14CC -:102B10000C94041501968770BECF0895CF92DF9272 -:102B2000EF92FF920F931F93CF93DF93CDB7DEB752 -:102B300062970FB6F894DEBF0FBECDBF8C0185E063 -:102B4000F801DE011D9601900D928A95E1F7D801FA -:102B50004C9111965C91119712966C911297139665 -:102B6000CD90DC9014973091B7017091B8018091AD -:102B7000BA019091BB01009709F46BC17F3F19F432 -:102B80003F3F09F466C1E090B901EE2009F4C0C0EE -:102B90002091BC01C816D90628F0F601E81BF90BF4 -:102BA000CF0104C0809590958C0D9D1DFF24F3945A -:102BB000883C910578F0F12C207F09F0C6C07C2D6F -:102BC000D98AC88A89890E94E51487EB91E00E941E -:102BD0007C14B1C0822F807F09F046C0751314C0E9 -:102BE000341312C0611110C02F7020612093BC01FA -:102BF0000E94251587EB91E00E947C148091BC0116 -:102C0000D80115968C932EC0CD2819F15F3F11F491 -:102C10004F3FF9F0F62E61111CC080918501209183 -:102C2000860136E0821709F45AC090E0389FF0011F -:102C3000399FF00D1124E957FE4F7181571306C0DB -:102C40007081471303C07281711103C001968770B0 -:102C5000E9CFF62E662309F418C18091BC0181608A -:102C60008093BC01F12C11C1751308C0341306C048 -:102C7000611104C08091BC01D801C3C04D875E873B -:102C80008D859E856A8B0E94BB146A898823E1F139 -:102C90006623D1F12091BC01822F82958F7090E044 -:102CA000029774F08091B7019091B80198878F8353 -:102CB0001986DB86CA862C87CE0107960E947C1473 -:102CC00086E0F801A7EBB1E001900D928A95E1F75B -:102CD0000E9433150E942515FF24F394D6C04D871A -:102CE0005E878D859E850E94EF19292F22952F7072 -:102CF00030E0223031050CF0BCC09F7009F0B6C046 -:102D0000805E883008F4C1C0C8010E947C14E4CF02 -:102D1000C816D90608F453C0F601E81BF90BCF0119 -:102D2000883C910508F450C0F12C7C2DD98AC88AC2 -:102D300089890E94E514E7EBF1E086E0DF011D924E -:102D40008A95E9F70E942515A0C0751314C03413A5 -:102D500012C0611110C08091BC01F8018583C801C7 -:102D60000E947C1486E0E7EBF1E0DF011D928A957A -:102D7000E9F7FE2C8AC04D875E878D859E856A8B1C -:102D80000E94BB146A89882309F4BECF662309F424 -:102D9000BBCF2091BC01822F82958F7090E002976B -:102DA0000CF48ECF8091B7019091B8019A838983FA -:102DB0001B82DD82CC822E83CE0101967FCF80954F -:102DC00090958C0D9D1DACCFF62E662309F49CCFFB -:102DD00075132EC034132CC02091BC0120FD1FC0E0 -:102DE000822F82958F70D9F0D80115962C93159764 -:102DF0008F3049F08F5F982F9295907F822F8F7040 -:102E0000892B15968C93C8010E947C1486E0F801EA -:102E1000A7EBB1E001900D928A95E1F793CF86E0A0 -:102E2000F801A7EBB1E001900D928A95E1F72DC072 -:102E30004D875E878D859E850E94BB14811140CF92 -:102E40008091BC0181608093BC01C8010E947C1408 -:102E50001CC0662309F458CF4D875E878D859E85FB -:102E60000E94BB14882309F44FCF2ACF811148CF89 -:102E70000CC0243031050CF047CF9F7009F440CFCF -:102E8000F8019581907F09F03BCF8F2D62960FB6A8 -:102E9000F894DEBF0FBECDBFDF91CF911F910F9190 -:102EA000FF90EF90DF90CF9008951F93CF93DF9323 -:102EB000CDB7DEB72C970FB6F894DEBF0FBECDBFEF -:102EC0004F83588769877A878B879C87CE010796BF -:102ED0000E948E15882369F08F8198852A853B850D -:102EE000232BF1F19F3F09F063C08F3F09F060C0D1 -:102EF00037C086E0FE013796DE01119601900D92F3 -:102F00008A95E1F76F817885EA85FB85309741F1F5 -:102F10007F3F11F46F3F21F12091860130E0C9011C -:102F20000196877099274091850150E08417950795 -:102F300009F447C069837A83FD83EC8396E0929F0E -:102F4000D001939FB00D1124A957BE4FFE013196B9 -:102F500001900D929A95E1F7809386010E940415E5 -:102F600016E080918501909186018917C1F1189F23 -:102F7000C001112489579E4F0E948E15882379F134 -:102F8000E09185011E9FF0011124E957FE4F408119 -:102F9000518162817381848195810E94F4148091B2 -:102FA000850190E001968770992780938501D9CF9C -:102FB0004F81588569857A858B859C850E94F4149C -:102FC000CFCF0E94B7141092860110928501E7EBD3 -:102FD000F1E086E0DF011D928A95E9F7C1CF2C96DA -:102FE0000FB6F894DEBF0FBECDBFDF91CF911F911A -:102FF0000895EF92FF920F931F93CF93DF938C016D -:10300000009709F46CC0F12CEE24E394E8012196BA -:10301000F8018491843740F4843008F051C0813045 -:1030200081F0823019F15BC0853709F444C0A8F102 -:103030009CE7980F903708F052C08F770E940212D9 -:1030400041C00E5F1F4FFE01C49180E28C0F88309B -:1030500048F4C7708E2D01C0880FCA95EAF70E9408 -:10306000D51A14C08C2F0E943A112DC00E5F1F4F2D -:10307000FE01C49180E28C0F883058F4C7708E2D09 -:1030800001C0880FCA95EAF70E94DB1A0E94FC1A59 -:103090001AC08C2F0E94021216C00E5F1F4FFE0135 -:1030A000C491CC2381F08FE99FE00197F1F700C034 -:1030B0000000C150F6CF0E5F1F4FFE01F49003C019 -:1030C0000E943A118E018F2D882309F49FCFEFE9DA -:1030D000FFE03197F1F700C000008150F5CFDF919C -:1030E000CF911F910F91FF90EF90089508956093F5 -:1030F000C1017093C2018093C3019093C4010C94E9 -:10310000A3140F931F930091C1011091C20120914C -:10311000C3013091C401DC01CB01802B912BA22B88 -:10312000B32B8093C1019093C201A093C301B093CC -:10313000C4011F910F910C94A3140F931F9300913E -:10314000C1011091C2012091C3013091C401DC0181 -:10315000CB0180239123A223B3238093C1019093B9 -:10316000C201A093C301B093C4011F910F910C94AD -:10317000A3140F931F930091C1011091C2012091DC -:10318000C3013091C401DC01CB0180279127A22724 -:10319000B3278093C1019093C201A093C301B09360 -:1031A000C4011F910F910C94A3141092BD011092B1 -:1031B000BE011092BF011092C0010C94A31441E013 -:1031C00050E060E070E004C0440F551F661F771F99 -:1031D0008A95D2F74093BD015093BE016093BF0121 -:1031E0007093C0010C94A31441E050E060E070E0E3 -:1031F00004C0440F551F661F771F8A95D2F7809130 -:10320000BD019091BE01A091BF01B091C001482BBA -:10321000592B6A2B7B2B4093BD015093BE016093C9 -:10322000BF017093C0010C94A31441E050E060E032 -:1032300070E004C0440F551F661F771F8A95D2F7B0 -:1032400040955095609570958091BD019091BE011B -:10325000A091BF01B091C001482359236A237B2369 -:103260004093BD015093BE016093BF017093C001B4 -:103270000C94A31441E050E060E070E004C0440FFF -:10328000551F661F771F8A95D2F78091BD019091D7 -:10329000BE01A091BF01B091C001482759276A27FC -:1032A0007B274093BD015093BE016093BF01709393 -:1032B000C0010C94A3140F931F930091BD011091B2 -:1032C000BE012091BF013091C001DC01CB01802BF8 -:1032D000912BA22BB32B8093BD019093BE01A093A1 -:1032E000BF01B093C0011F910F910C94A3140F93D1 -:1032F0001F930091BD011091BE012091BF0130913B -:10330000C001DC01CB0180239123A223B32380934E -:10331000BD019093BE01A093BF01B093C0011F9166 -:103320000F910C94A3140F931F930091BD01109162 -:10333000BE012091BF013091C001DC01CB0180278B -:103340009127A227B3278093BD019093BE01A0933C -:10335000BF01B093C0011F910F910C94A314089565 -:10336000CF92DF92EF92FF920F931F93CF93DF9351 -:103370008C01C090C101D090C201E090C301F090D7 -:10338000C4018091BD019091BE01A091BF01B09197 -:10339000C001C82AD92AEA2AFB2ACFE1D0E0D70106 -:1033A000C6010C2E04C0B695A795979587950A94EB -:1033B000D2F780FF06C0B8018C2F0E947C080197CD -:1033C00021F4219760F780E001C08C2FDF91CF912D -:1033D0001F910F91FF90EF90DF90CF900895CF93C2 -:1033E000DF93EC010E94B019BE010E947C08DF91BE -:1033F000CF910895CB010E94EF1908958091C501E6 -:1034000085958595859508958091C5018770089566 -:1034100098E0899F90011124262B2093C5010C94DC -:10342000F4182091C501809582238093C501982FBF -:10343000977069F430E0482F552747FD50952417C1 -:10344000350729F08595859585950C94151908956E -:103450009091C501977081E009F480E00895909102 -:103460000C01992321F090910D01911109C0209137 -:103470000E0130910F01F90132969FEF40E01FC01D -:10348000982F9695969596959F3050F5E0910E0160 -:10349000F0910F01E90FF11D877021E030E0A901E3 -:1034A00002C0440F551F8A95E2F7CA019181892B0A -:1034B000818308959F3F39F04F5F4E3041F0519125 -:1034C0005813F8CF0DC05111F7CF942FF5CF9F3F70 -:1034D00039F0F901E90FF11D97FDFA9582830895FE -:1034E000089590910C01992321F090910D01911173 -:1034F00009C020910E0130910F01F9013296205F31 -:103500003F4F1FC0982F9695969596959F30F0F453 -:10351000E0910E01F0910F01E90FF11D877021E09C -:1035200030E0A90102C0440F551F8A95E2F7CA0195 -:10353000809591818923818308953196E217F3075D -:1035400029F090819813F9CF1082F7CF089581E088 -:1035500090E0E0910E01F0910F01E80FF91F108249 -:10356000019680319105A9F708959091D901892B91 -:103570008093D901089580959091D90189238093F2 -:10358000D90108951092D90108959091D801892BFD -:103590008093D801089580959091D80189238093D4 -:1035A000D80108951092D80108959091D701892BE0 -:1035B0008093D701089580959091D70189238093B6 -:1035C000D70108951092D70108958093C6010895F8 -:1035D0001092C601089580910E0190910F01FC0197 -:1035E00031969C01205F3F4F80E0919191118F5F58 -:1035F000E217F307D1F70895E0910E01F0910F0162 -:103600008091D9018083E0910E01F0910F019081AA -:103610008091D801892B8083E0910E01F0910F01F8 -:1036200090818091D701892B80838091C601882366 -:1036300061F0E0910E01F0910F019081892B808360 -:103640000E94EB1A81111092C60180910E01909197 -:103650000F010C942A1020E0009739F0AC01415082 -:103660005109842395232F5FF7CF822F0895CF929E -:10367000DF92EF92FF926C01EE24FF24C114D1047B -:10368000E104F10421F0C701B60120E101C020E00E -:10369000C72ED82EE92EFF24C114D104E104F10471 -:1036A00019F0285FC701B6016B017C0154E0F69464 -:1036B000E794D794C7945A95D1F7C114D104E10483 -:1036C000F10419F02C5FC701B6016B017C0142E0E7 -:1036D000F694E794D794C7944A95D1F7C114D104CE -:1036E000E104F10419F02E5FC701B601DC01CB0142 -:1036F000B695A79597958795892B8A2B8B2B09F0E3 -:103700002F5F822FFF90EF90DF90CF9008958091F0 -:10371000F101843021F11092DB0120E488E190E096 -:103720000FB6F894A895809360000FBE20936000B8 -:1037300080E00E94170983B7817F846083BF83B7CD -:10374000816083BF7894889583B78E7F83BF88E13B -:103750000FB6F89480936000109260000FBE089539 -:10376000089508950E94B01B0E9454030E94B11B4B -:103770000E94490491E0811101C090E0892F0895D1 -:103780000E94B7140E941E100C94170982E084BD99 -:1037900093E095BD9AEF97BD80936E0008952FB783 -:1037A000F8948091DC019091DD01A091DE01B0914F -:1037B000DF012FBF0895CF92DF92EF92FF920F9318 -:1037C0001F932FB7F8944091DC015091DD01609177 -:1037D000DE017091DF012FBF6A017B01EE24FF241F -:1037E0008C0120E030E0C016D106E206F30610F4AA -:1037F000415051099A01281B390BC9011F910F91A2 -:10380000FF90EF90DF90CF9008951F920F920FB628 -:103810000F9211248F939F93AF93BF938091DC01FC -:103820009091DD01A091DE01B091DF010196A11D13 -:10383000B11D8093DC019093DD01A093DE01B09374 -:10384000DF01BF91AF919F918F910F900FBE0F90AD -:103850001F9018950E941B0DF8942FEF87EA91E6B0 -:10386000215080409040E1F700C0000087E090EBDD -:10387000DC018093FB019093FC01A093FD01B093C8 -:10388000FE019CE088E10FB6F894A8958093600053 -:103890000FBE90936000FFCFEF92FF920F931F93A4 -:1038A000CF93DF93D82FCDE08C2F0E94420405E008 -:1038B00010E0E82EF12CC701002E02C095958795E7 -:1038C0000A94E2F780FF09C0602F7C2F80E00E94FD -:1038D0002706D81302C081E006C00150110958F72D -:1038E000C15010F780E0DF91CF911F910F91FF90B1 -:1038F000EF900895CF93C82F8CE20E944C1C882330 -:1039000021F08C2FCF910C944C1C80E0CF91089526 -:10391000CF930E94CF1D811102C00E94B51DC5E644 -:10392000C15049F00E9454038FE39CE90197F1F7DD -:1039300000C00000F5CF89E20E947A1C811113C1FA -:103940008AE20E947A1C81110E94B51D85E00E94C6 -:103950007A1C81110E942A1C0E94DA1D8093DA01D0 -:1039600087E00E947A1C8823A9F18BE10E947A1CCF -:10397000882351F08091DA0181FB222720F991E020 -:10398000922790FB81F90EC08EE00E947A1C88235A -:1039900061F08091DA0182FB222720F991E09227E1 -:1039A00090FB82F98093DA0115C080E10E947A1CB5 -:1039B0009091DA01882341F093FB222720F981E0DE -:1039C000822780FB93F904C0892F809580FB90F9B2 -:1039D0009093DA018091DA010E94DE1D0E94EC1DB5 -:1039E0008093FA0180EE0E947A1C882341F0809136 -:1039F000FA01982F909590FB80F98093FA0189E362 -:103A00000E947A1C882359F08091FA0181FB2227B9 -:103A100020F991E0922790FB81F98093FA0182EEE0 -:103A20000E947A1C882359F08091FA0182FB222798 -:103A300020F991E0922790FB82F98093FA0186EEBB -:103A40000E947A1C882359F08091FA0183FB222777 -:103A500020F991E0922790FB83F98093FA0183EE9D -:103A60000E947A1C882359F08091FA0184FB222756 -:103A700020F991E0922790FB84F98093FA0185E385 -:103A80000E947A1C882359F08091FA0185FB222735 -:103A900020F991E0922790FB85F98093FA0181E368 -:103AA0000E947A1C882359F08091FA0186FB222714 -:103AB00020F991E0922790FB86F98093FA0181E149 -:103AC0000E947A1C882359F08091FA0187FB2227F3 -:103AD00020F991E0922790FB87F98093FA01809179 -:103AE000FA010E94F01D8091FA0187FB882780F976 -:103AF00080930D0187E20E947A1CC82F8EE10E94FC -:103B00007A1C8111C2608FE10E947A1C8111C4600D -:103B100080E20E947A1C8111C86081E20E947A1CB6 -:103B20008111C06182E20E947A1C8111C06283E22D -:103B30000E947A1C8111C06484E20E947A1C88234E -:103B400011F0C06802C0CC2329F08C2F0E94E71D21 -:103B50006C2F03C00E94E31D682F70E080E090E0AE -:103B6000CF910C947718CF9108956DEE7EEF80E0A1 -:103B700090E00E94212460E082E090E00E940F2407 -:103B800060E083E090E00E940F2460E084E090E039 -:103B90000E940F2460E085E090E00C940F2480E008 -:103BA00090E00E94092421E08D3E9E4F09F020E024 -:103BB000822F089582E090E00C940124682F82E027 -:103BC00090E00C940F2483E090E00C940124682F83 -:103BD00083E090E00C940F2484E090E00C940124A6 -:103BE000682F84E090E00C940F248091E20180FF24 -:103BF0000BC06091130185E0689FB0011124759599 -:103C00006795759567952BC081FF09C06091130179 -:103C100085E0689FB00111247595679520C082FFEB -:103C200007C06091130185E0689FB001112417C09F -:103C30009091E3019923D1F060911201961788F7D2 -:103C40002091130185E0289F90011124929FA001EB -:103C5000939F500D112470E0CA010E94D323603855 -:103C6000710540F46115710539F002C065E070E03E -:103C7000862F08958FE7089581E008958091E201ED -:103C800080FF08C06091110170E07595679575958A -:103C9000679521C081FF06C06091110170E07595A4 -:103CA000679519C082FF04C06091110170E010C0D7 -:103CB0009091E3019923C1F0609110019617A0F74C -:103CC00080911101899FC001112470E00E94D323CB -:103CD0006038710528F46115710521F0862F08956B -:103CE0008FE7089581E0089561E070E0F4CF803FB0 -:103CF00021F40E94F51D819504C0813F29F40E94A2 -:103D0000F51D8093E6010895823F21F40E94F51D80 -:103D1000819504C0833F29F40E94F51D8093E5013D -:103D20000895893F19F40E943E1E05C08A3F31F470 -:103D30000E943E1E81958093E70108958B3F21F4F8 -:103D40000E943E1E819504C08C3F29F40E943E1EB5 -:103D50008093E8010895843F21F48091E40181601B -:103D600017C0853F21F48091E401826011C0863F35 -:103D700021F48091E40184600BC0873F21F480919D -:103D8000E401886005C0883F31F48091E4018061DE -:103D90008093E40108958D3F21F48091E2018160D8 -:103DA0000BC08E3F21F48091E201826005C08F3FFD -:103DB00029F48091E20184608093E2010895803FBC -:103DC00039F48091E60187FF6CC01092E60169C06A -:103DD000813F29F48091E6011816BCF362C09091EE -:103DE000E501823F29F497FF5CC01092E50159C0BC -:103DF000833F19F41916CCF354C0893F41F48091E4 -:103E0000E70118160CF04DC01092E7014AC08A3F36 -:103E100029F48091E70187FF44C0F6CF8B3F39F446 -:103E20008091E80187FF3DC01092E8013AC08C3FC5 -:103E300029F48091E8011816BCF333C0843F21F4C3 -:103E40008091E4018E7F17C0853F21F48091E401C9 -:103E50008D7F11C0863F21F48091E4018B7F0BC0E0 -:103E6000873F21F48091E401877F05C0883F31F4CA -:103E70008091E4018F7E8093E40113C08D3F21F493 -:103E80008091E2018E7F0BC08E3F21F48091E20190 -:103E90008D7F05C08F3F29F48091E2018B7F809355 -:103EA000E2018091E50181110EC08091E60181114E -:103EB0000AC08091E701811106C08091E80181115B -:103EC00002C01092E301089584EE91E00E94351043 -:103ED0000E94CF1B9093E1018093E00108951F930E -:103EE000CF93DF938091E0019091E1010E94DB1B71 -:103EF000AC019091E301992321F02091140130E06D -:103F000006C0209115018AE0289F900111244217D4 -:103F1000530708F486C08091E501C091E601D09175 -:103F2000E7011091E801811107C0C11176C0D111DC -:103F300074C0111172C075C09F3F19F09F5F9093BC -:103F4000E301181624F40E94F51D8093E501809189 -:103F5000E50187FF05C00E94F51D81958093E5016D -:103F60001C1624F40E94F51D8093E6018091E60161 -:103F700087FF05C00E94F51D81958093E601609141 -:103F8000E501662339F1C091E601CC2319F17727C9 -:103F900067FD7095872F972F0E94E42223E333E378 -:103FA00043E35FE30E9448230E94B1226093E5014E -:103FB0006C2F772767FD7095872F972F0E94E4223B -:103FC00023E333E343E35FE30E9448230E94B122EB -:103FD0006093E6011D1624F40E943E1E8093E701C3 -:103FE0008091E70187FF05C00E943E1E8195809366 -:103FF000E701111624F40E943E1E8093E80180918F -:10400000E80187FF05C00E943E1E81958093E8016C -:10401000DF91CF911F910C94641F9F3F09F08ECFC9 -:1040200096CFDF91CF911F910895E4EEF1E085E006 -:10403000DF011D928A95E9F71092E3011092E201E7 -:104040000895833081F128F4813059F08230D1F025 -:104050000895853009F449C0B8F1863009F456C096 -:10406000089580911501262F30E0280F311D2F3F34 -:10407000310524F4680F6093150108958FEF809344 -:104080001501089580911401262F30E0280F311D6D -:104090002F3F310524F4680F6093140108958FEFCA -:1040A00080931401089580911301262F30E0280F8A -:1040B000311D2F3F310524F4680F609313010895DB -:1040C0008FEF80931301089580911201262F30E025 -:1040D000280F311D2F3F310524F4680F6093120122 -:1040E00008958FEF80931201089580911101262F7A -:1040F00030E0280F311D2F3F310524F4680F609305 -:10410000110108958FEF809311010895809110019E -:10411000262F30E0280F311D2F3F310524F4680F82 -:104120006093100108958FEF8093100108958330FC -:1041300011F128F4813049F0823091F008958530F2 -:1041400081F120F18630C1F1089580911501681741 -:1041500020F4861B8093150108951092150108958F -:1041600080911401681720F4861B80931401089530 -:1041700010921401089580911301681720F4861B92 -:1041800080931301089510921301089580911201F4 -:10419000681720F4861B8093120108951092120173 -:1041A000089580911101681720F4861B80931101F6 -:1041B000089510921101089580911001681720F45C -:1041C000861B8093100108951092100108950F939B -:1041D0001F938D3109F46BC008F03FC08E3009F495 -:1041E0007FC0C0F4873009F469C068F4863009F0F4 -:1041F000B1C08091DA01817F8E7F8093DA0181E006 -:104200008093EA01A8C0883009F4A2C08B3009F479 -:104210009FC0A0C0863109F49BC078F4803109F4B6 -:1042200072C0813109F096C00E94B71490910D01BF -:1042300081E0892780930D018BC0893109F488C002 -:104240008B3109F087C08091DA0181FB222720F9A8 -:1042500091E0922790FB81F94CC0853309F470C03E -:1042600048F4873209F46CC008F459C0893209F463 -:1042700067C070C0833438F48A3308F04EC0883386 -:1042800009F466C067C0833409F45AC0883409F061 -:1042900061C00E94B7140FEF13ED20E301501040EE -:1042A0002040E1F700C000000E942A1C51C00E947B -:1042B0006B220E941E100E9417094AC09091DA01D9 -:1042C000892F8095817080FB90F929F09660986025 -:1042D0009093DA0140C0997F977F9093DA0138C0BC -:1042E0008091DA0182FB222720F991E0922790FB4E -:1042F00082F98093DA01992359F18091DA01816082 -:104300008093DA0125C08091DA0183FB222720F90E -:1043100091E0922790FB83F9ECCF895301C08D5136 -:1043200041E050E060E070E08A019B0104C0000FB2 -:10433000111F221F331F8A95D2F7C901B80104C08B -:1043400061E070E080E090E00E9477180E94B7146E -:1043500081E001C080E01F910F91089580E00895F1 -:1043600080E00895CF93C82F8091EA01813079F0E1 -:1043700018F08230E9F187C0E0910E01F0910F0151 -:104380008081813169F0823209F07FC009C0E091FB -:104390000E01F0910F018081813111F0823261F4C0 -:1043A0008C2F0E94AE21811104C08C2F0E94E72027 -:1043B0001DC081E090E01AC08C2F0E94B0218111B5 -:1043C00014C0C43179F048F4CB3079F0C03109F031 -:1043D00060C082E08093EA0108C0C93219F0C83396 -:1043E00021F057C01092EA0154C081E0817053C09F -:1043F000C93289F118F5C43171F1A8F4C73009F058 -:1044000046C08AE08093150194E19093140193E0F3 -:10441000909313018093120188E08093110188E248 -:104420008093100134C0CE51C63088F5EC2FF0E0F7 -:10443000E65DFE4F80818093E90129C0CE34E9F02A -:1044400020F4CB3421F56AE013C0C13579F0C235D0 -:10445000F1F461E00DC08091E901882319F0109218 -:10446000E90115C081E08093EA0115C061E006C052 -:104470008091E9010E9421200AC06AE08091E9014F -:104480000E94972004C01092EA0180E004C081E0FD -:1044900002C080E0ABCFCF910895E1E8F0E08081E9 -:1044A000886080838081816080838FB7F89493E0F7 -:1044B0009093890090ED909388008FBF0895EFE668 -:1044C000F0E08081826080830895EFE6F0E08081F3 -:1044D0008D7F80830895EFE6F0E0908182E0892768 -:1044E000808308951F920F920FB60F9211242F937D -:1044F0003F934F935F936F937F938F939F93AF936C -:10450000BF93EF93FF938091EB019091EC010196A3 -:104510009093EC018093EB01811103C082E00E9433 -:104520001709E091EC01E695E695F0E0EA53FB4FC0 -:10453000E4918091EB018E1303C080E00E94170983 -:10454000FF91EF91BF91AF919F918F917F916F916B -:104550005F914F913F912F910F900FBE0F901F9041 -:10456000189504D06894B1118DC0089570D088F06A -:104570009F5790F0B92F9927B751A0F0D1F0660F4F -:10458000771F881F991F1AF0BA95C9F712C0B1306A -:1045900081F077D0B1E0089574C0672F782F882715 -:1045A000B85F39F0B93FCCF3869577956795B395A9 -:1045B000D9F73EF490958095709561957F4F8F4F18 -:1045C0009F4F0895E89409C097FB3EF4909580951D -:1045D000709561957F4F8F4F9F4F9923A9F0F92FC9 -:1045E00096E9BB279395F695879577956795B79547 -:1045F000F111F8CFFAF4BB0F11F460FF1BC06F5F2D -:104600007F4F8F4F9F4F16C0882311F096E911C03E -:10461000772321F09EE8872F762F05C0662371F05F -:1046200096E8862F70E060E02AF09A95660F771F73 -:10463000881FDAF7880F9695879597F9089557FDA3 -:104640009058440F551F59F05F3F71F04795880F00 -:1046500097FB991F61F09F3F79F087950895121697 -:1046600013061406551FF2CF4695F1DF08C0161643 -:1046700017061806991FF1CF8695710561050894F4 -:104680000895E894BB2766277727CB0197F908950B -:104690000BD078C069D028F06ED018F0952309F0BF -:1046A0005AC05FC01124EECFCADFA0F3959FD1F3AB -:1046B000950F50E0551F629FF001729FBB27F00DD0 -:1046C000B11D639FAA27F00DB11DAA1F649F662725 -:1046D000B00DA11D661F829F2227B00DA11D621F74 -:1046E000739FB00DA11D621F839FA00D611D221F2E -:1046F000749F3327A00D611D231F849F600D211D12 -:10470000822F762F6A2F11249F5750408AF0E1F0B4 -:1047100088234AF0EE0FFF1FBB1F661F771F881FFD -:1047200091505040A9F79E3F510570F014C0AACF98 -:104730005F3FECF3983EDCF3869577956795B795E8 -:10474000F795E7959F5FC1F7FE2B880F911D969512 -:10475000879597F9089597F99F6780E870E060E082 -:1047600008959FEF80EC089500240A94161617060A -:1047700018060906089500240A9412161306140652 -:1047800005060895092E0394000C11F4882352F0B5 -:10479000BB0F40F4BF2B11F460FF04C06F5F7F4F6D -:1047A0008F4F9F4F089597FB072E16F4009407D064 -:1047B00077FD09D00E94ED2307FC05D03EF49095CB -:1047C00081959F4F0895709561957F4F0895EE0FE5 -:1047D000FF1F0590F491E02D0994AA1BBB1B51E12A -:1047E00007C0AA1FBB1FA617B70710F0A61BB70B61 -:1047F000881F991F5A95A9F780959095BC01CD0106 -:104800000895F999FECF92BD81BDF89A992780B598 -:104810000895A8E1B0E042E050E00C942924262F4E -:10482000F999FECF92BD81BDF89A019700B40216A6 -:1048300039F01FBA20BD0FB6F894FA9AF99A0FBE54 -:1048400008950196272F0E9410240C940F24DC0158 -:10485000CB01FC01F999FECF06C0F2BDE1BDF89A8B -:10486000319600B40D9241505040B8F70895F89435 -:02487000FFCF78 -:1048720002201909A709840950091C090101C7016D -:1048820028080A03140A3F4D363987043A040404FF -:10489200CB035E0377039003A90301020304050619 -:0448A20007080900FA -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/compiled.hex b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/compiled.hex deleted file mode 100644 index 74449a955..000000000 --- a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/compiled.hex +++ /dev/null @@ -1,1098 +0,0 @@ -:100000000C94D1010C9415020C9415020C94150259 -:100010000C9415020C9415020C9415020C94150204 -:100020000C9415020C9415020C941E0D0C94F00DFA -:100030000C9415020C9415020C9415020C941502E4 -:100040000C9415020C945A200C9415020C94150271 -:100050000C9415020C943C1B0C9415020C94150284 -:100060000C9415020C9415020C9415020C941502B4 -:100070000C9415020C9415020C9415020C941502A4 -:100080000C9415020C9415020C9415020C94150294 -:100090000C9415020C9415020C9415020C94150284 -:1000A0000C9415020C9415020C9415025D0E7F0E33 -:1000B0006D0F7F0E6D0FC40EE70E6D0F3C0F4F0FCF -:1000C0001E121E124D124D128312A312D413D413FA -:1000D000AE12D4135E135E13C513D413D413CE1310 -:1000E0006B136B136B136B136B136B136B136B1320 -:1000F0006B136B136B136B136B136B136B136B1310 -:100100007D138A1391139813A21335002B002961D4 -:10011000E1003A0000001E00140004001D003B0036 -:10012000E2001F001A0016001B003C00296120009D -:100130000700080006003D002A0021000900170002 -:100140001900E300A90022000E000A0005000000CB -:10015000AA003E00310000002F000000A8003F0070 -:100160000000000030000000AE0023000D001C0065 -:1001700013000000AB002400180011001000E7007D -:10018000AC00250015000C00360050002C002600A5 -:100190000F001200370051003400270033000B001D -:1001A00038005200E6002E002D002800E5004F0028 -:1001B000000016034500720067006F0044006F00E6 -:1001C0007800200045005A00000016034500720028 -:1001D00067006F0044006F007800200045005A005F -:1001E00000000403090409026D00040100A0FA09DB -:1001F0000400000103010100092111010001224056 -:10020000000705810308000A090401000103010237 -:1002100000092111010001224D0007058203080099 -:100220000A09040200010300000009211101000174 -:100230002236000705830308000A090403000103AE -:100240000000000921110100012239000705840383 -:100250001000011201100100000008EDFE0713015B -:10026000000102000105010906A101050719E029A5 -:10027000E715002501950875018102050819012976 -:100280000595057501910295017503910105071901 -:1002900000297715002501957875018102C00501B7 -:1002A0000980A101850216010026B7001A01002A63 -:1002B000B700751095018100C0050C0901A10185E9 -:1002C00003160100269C021A01002A9C0275109553 -:1002D000018100C005010902A1010901A100050970 -:1002E0001901290515002501950575018102950162 -:1002F000750381010501093009311581257F9502BA -:100300007508810609381581257F950175088106D4 -:10031000050C0A38021581257F950175088106C0F4 -:10032000C005010906A101050719E029E715002507 -:10033000019508750181029501750881010508196B -:100340000129059505750191029501750391010536 -:1003500007190029FF150026FF0095067508810082 -:10036000C0000000000000000000000001020406C0 -:100370000A0F17202C3A4A5D71879DB3C7DAE9F559 -:10038000FCFFFCF5E9DAC7B39D87715D4A3A2C2082 -:10039000170F0A0604020100000000000000000020 -:1003A000000011241FBECFEFDAE0DEBFCDBF04B6E0 -:1003B00003FE24C08091FD019091FE01A091FF01F8 -:1003C000B09100028730904BA740B04BB9F4109227 -:1003D000FD011092FE011092FF011092000214BE66 -:1003E00084B7877F84BF88E10FB6F894809360005C -:1003F000109260000FBEE0E0FFE3099511E0A0E07D -:10040000B1E0E2E4F4E402C005900D92A433B10738 -:10041000D9F711E0A4E3B1E001C01D92AD3FB107EF -:10042000E1F70E94660A0C941F220C9400001092BF -:10043000B9008AE08093B800089594EA9093BC00D4 -:100440009091BC0097FFFCCF9091B900987F9830B5 -:1004500021F0903111F081E008958093BB0084E891 -:100460008093BC008091BC0087FFFCCF8091B900D5 -:10047000887F883111F0803471F780E0089584E935 -:100480008093BC008091BC0084FDFCCF08958093D4 -:10049000BB0084E88093BC008091BC0087FFFCCF48 -:1004A0009091B900987F81E0983209F480E0089536 -:1004B00084E88093BC008091BC0087FFFCCF8091D2 -:1004C000BB00089580B38C7080BB81B3836F81BB08 -:1004D000089580910101811115C080E40E941D02E0 -:1004E0008093010181110CC082E10E944702809338 -:1004F0000101811105C08FEF0E9447028093010125 -:100500000E943F0284B1807F84B985B1807F85B924 -:100510008AB1837F8AB98BB1837F8BB93E98469825 -:1005200008950E943304809301010E9469020E9491 -:100530006202A5E3B1E0E3E4F1E08EE08E0F1192F8 -:100540001D928E13FCCF0C941D040E9433048093E3 -:1005500001010E9469020E946202A5E3B1E0E3E4A6 -:10056000F1E08EE08E0F11921D928E13FCCF089554 -:10057000BF92CF92DF92EF92FF920F931F93CF9390 -:10058000DF9380910101882379F0809134018F5F9E -:1005900080933401811108C00E94330480930101CB -:1005A000811102C00E94C50305E311E0C0E0D0E064 -:1005B000DD24D39482E0C82EEE24E394F12CC730DE -:1005C000D10500F580910101811164C080E40E9491 -:1005D0001D0280930101811112C082E10E94470235 -:1005E0008093010181110BC0C7010C2E01C0880F3F -:1005F0000A94EAF780950E944702809301010E94C5 -:100600003F0248C0CA30A1F028F4C83059F0C930C0 -:1006100061F005C0CC3089F070F0CD3089F0209ABF -:10062000289810C0219A29980DC0229A2A980AC0A9 -:10063000239A2B9807C0529A01C0539A5B9802C024 -:100640003E9A469890EA9A95F1F79FB1799902C03F -:1006500082E001C080E091709D25982B7C9902C0BA -:1006600084E001C080E0892B7D9902C038E001C0A0 -:1006700030E0832B7E9902C020E101C020E0822B74 -:100680009FB19095991F9927991F9295990F907EE8 -:10069000892B0FC080910101811149C080E40E9423 -:1006A0001D0280930101882379F1B12C0E943F0241 -:1006B0008B2DF8019081981719F08083C09200016A -:1006C0000E94690221960F5F1F4FCE30D10509F0BD -:1006D00076CF80910001882361F1815080930001E1 -:1006E000882339F08FE99FE00197F1F700C00000FF -:1006F00020C0A3E4B1E0E5E3F1E0CF01825F919196 -:100700009D938E13FCCF15C083E10E944702809316 -:1007100001018111CACF81E40E941D028093010171 -:100720008111C3CF0E945802B82EB094BFCF80E091 -:10073000C0CF0E94C30381E0DF91CF911F910F9141 -:10074000FF90EF90DF90CF90BF900895E82FF0E0FA -:10075000ED5BFE4F8081089508950F931F93CF9313 -:10076000DF93C3E4D1E010E00C2F025F899190E0A9 -:100770000E94B31A180F0C13F9CF812FDF91CF917C -:100780001F910F9108950C948E0456985E982598A9 -:100790002D9826982E9827982F988FEF90E0909379 -:1007A00089008093880090938B0080938A009093B7 -:1007B0008D0080938C00259A2D9A2FEF80E792E090 -:1007C000215080409040E1F700C00000269A2E9A08 -:1007D0002FEF80E792E0215080409040E1F700C089 -:1007E0000000279A2F9A2FEF80E792E02150804057 -:1007F0009040E1F700C0000025982D982FEF80E78A -:1008000092E0215080409040E1F700C0000026981F -:100810002E982FEF80E792E0215080409040E1F742 -:1008200000C0000027982F9856985E9825982D981C -:1008300026982E9827982F98089589EA809380000B -:1008400089E08093810024982C983F988AB18F7416 -:100850008AB96E98479A8BB1806B8BB9769A0E9451 -:10086000C5030C94850480E28093010180915101BD -:1008700081110EC00E94170281E0809351012FEF79 -:1008800083ED90E3215080409040E1F700C00000EC -:1008900080E40E941D028093010181112EC00E94FC -:1008A000470280930101811128C00E944702809372 -:1008B0000101811122C08FE30E9447028093010150 -:1008C00081111BC00E943F0280E40E941D028093A0 -:1008D0000101811112C08CE00E9447028093010146 -:1008E00081110BC00E94470280930101811105C054 -:1008F0008FE30E944702809301010E943F02809192 -:100900000101089580E090E0089556985E9825983A -:100910002D9826982E9827982F980895089581E06D -:10092000089581E008950C9491040895282F882358 -:1009300039F090E02A3010F44D9608950697089506 -:1009400087E290E00895AF92BF92DF92EF92FF921C -:100950000F931F93CF93DF938C01FC01C081D18152 -:10096000CE010E943819BE010E941308EC01B801A3 -:100970000E949304882309F4C9C1F8018281882365 -:1009800009F4BEC080915E0181111FC0C431F0E73F -:10099000DF0709F0B5C10E94950481E080935E01F4 -:1009A0000E94061B90935D0180935C01109255019B -:1009B000109257011092560110925901109258014D -:1009C00010925B0110925A01A1C180915C0190913B -:1009D0005D010E94121B883C910570F480915501C5 -:1009E000E82FF0E0EE0FFF1FEA5AFE4FD183C083DD -:1009F0008F5F809355018AC1C13020E8D20708F487 -:100A000051C0F8018281882309F47EC05E01E89418 -:100A1000B7F880915401813079F050F08230C1F400 -:100A200082EE0E94C21087E50E94C21087E50EC0C8 -:100A300082EE0E94C2100CC080EE0E94C21081EEB5 -:100A40000E94C21088E10E94C21088E10E948A11AF -:100A50008CE0E82EF12CC5010E2C02C096958795EE -:100A60000A94E2F78F700E949604D82E0E94C2105A -:100A70008D2D0E948A11F4E0EF1AF1082CEFE21696 -:100A80002FEFF20641F780915401813029F010F0E8 -:100A9000823041F482EE04C080EE0E948A1181EE21 -:100AA0000E948A11C43180E7D80768F4C23090E709 -:100AB000D90708F046C0C115E0E7DE0771F0C13084 -:100AC000D047A1F10CC1C33320E7D20709F4D8C045 -:100AD000C433D04709F4EBC002C1F80182818823F6 -:100AE00009F402C10E943F14FFEF24E38CE0F150AF -:100AF00020408040E1F700C000000E94611B06C159 -:100B0000C13080E8D80770F2C43120E7D20708F07E -:100B1000B3C0C23080E7D807A0F4C11590E7D90769 -:100B200009F4E2C0C130D04709F0D9C0F801828190 -:100B3000882309F4D9C08091DB0181608093DB01B7 -:100B4000E5C0F8018281882309F4CEC00E94BB1B56 -:100B5000811102C00E94A11B0E94CE1B90E09093C5 -:100B6000EF018093EE01C230F0E7DF0721F48091BE -:100B7000EE0181607AC0C33020E7D20721F4809172 -:100B8000EE01826072C0C43080E7D80721F4809102 -:100B9000EE0184606AC0C53090E7D90719F48091EE -:100BA000EE0127C0C630E0E7DE0721F48091EE01B8 -:100BB00080615BC0C730F0E7DF0721F48091EE0170 -:100BC000806253C0C83020E7D20721F48091EE0143 -:100BD00080644BC0C93080E7D80721F48091EE01D2 -:100BE000806843C0CA3090E7D90729F48091EE01AC -:100BF000846088603AC0CB30E0E7DE0721F4809162 -:100C0000EE018E7F32C0CC30F0E7DF0721F4809117 -:100C1000EE018D7F2AC0CD3020E7D20721F48091EC -:100C2000EE018B7F22C0CE3080E7D80719F4809187 -:100C3000EE011AC08091EE01CF3090E7D90711F490 -:100C40008F7E13C0C031E0E7DE0711F48F7D0DC049 -:100C5000C131F0E7DF0711F48F7B07C0C231D04705 -:100C600011F48F7702C08B7F877F8093EE01809194 -:100C7000EE010E94D21B4AC0C333F0E7DF07A1F4A4 -:100C8000F8018281882321F01092520182E016C07F -:100C900080915201811106C086E20E94C21086E254 -:100CA0000E948A1182E018C0C433D047C1F4F80111 -:100CB0008281882331F01092530180E20E94D91181 -:100CC00025C080915301811106C087E20E94C210A5 -:100CD00087E20E948A1180E20E94E01117C081E041 -:100CE0008093520180935301C801DF91CF911F91EE -:100CF0000F91FF90EF90DF90BF90AF900C948F0416 -:100D0000C130F0E8DF0708F081CECCCE80E0DF9183 -:100D1000CF911F910F91FF90EF90DF90BF90AF9018 -:100D2000089526E0729FF001112444E5849FE00DB0 -:100D3000F11D1124E60FF11DEE0FFF1FE65FFE4FC0 -:100D4000859194910E942508811560E49607B0F57D -:100D5000811570E3970708F0DEC0803E9105D8F456 -:100D6000803C910508F06CC0883A910578F4853A8A -:100D7000910508F06BC08130910509F452C108F467 -:100D80000FC18430910508F04CC10AC18B3B91051D -:100D900008F467C005C18F3F910509F048F4803F12 -:100DA000910508F0ADC0883E910508F43AC1F8C03D -:100DB000811520E2920708F0A5C00895811543E54A -:100DC000940790F4811562E5960708F0C8C0811574 -:100DD00071E5970708F0BEC0811520E5920708F07D -:100DE0009DC09F70906A0895811545E59407D8F4D9 -:100DF000811564E5960708F0C8C0482F46954695CA -:100E000070E2479FA00111248370992721E030E010 -:100E1000B90102C0660F771F8A95E2F7CB01842BD8 -:100E2000952B9A680895811576E5970708F4B2C066 -:100E30009C0130562115304108F0B2C09F70AEC001 -:100E4000FC01EE0FFF1FE657F04062C0853A9105A6 -:100E500009F4A9C0863A910509F0A8C082E890E497 -:100E60000895883A910509F4A4C0893A910509F4D6 -:100E7000A3C08A3A910509F4A2C08B3A910509F4FE -:100E8000A1C08C3A910509F4A0C08D3A910509F4EE -:100E90009FC0803B910509F49EC08E3A910509F4EC -:100EA0009DC08F3A910509F49CC0813B910509F4DE -:100EB0009BC0823B910509F49AC0833B910509F4DC -:100EC00099C0843B910509F498C0853B910509F4CC -:100ED00097C0863B910509F496C0873B910509F4BC -:100EE00095C0883B910509F494C0893B910509F4AC -:100EF00093C08A3B910509F492C080E094E4089580 -:100F000090650895FC01FF70EE0FFF1FE65FFE4F36 -:100F10008591949108959927906C0895482F437076 -:100F200021E030E002C0220F331F4A95E2F73C680F -:100F3000AC0164E0569547956A95E1F74370342B10 -:100F40008F708695869560E2869FC0011124822B62 -:100F5000932B0895982F8827816F906A0895482FC2 -:100F60004695469570E2479FA0011124837099270A -:100F700021E030E0B90102C0660F771F8A95E2F7E1 -:100F8000CB01842B952B9C680895982F8827846F1C -:100F9000906A08958F719927982F882790620895F5 -:100FA00080E090E0089581E890E4089583E890E47B -:100FB000089582EE94E4089589EE94E408958AEE0B -:100FC00094E4089585EB94E4089586EB94E4089501 -:100FD00087EB94E408958CEC94E408958DEC94E40C -:100FE000089583E895E408958AE895E4089582E9F0 -:100FF00095E4089584E995E4089581E296E40895DE -:1010000083E296E4089584E296E4089585E296E406 -:10101000089586E296E4089587E296E408958AE2C8 -:1010200096E40895089596E0799FF001112494E5DF -:10103000899FE00DF11D1124E60FF11DEE0FFF1F3A -:10104000E65FFE4F8591949108958238910549F1AC -:10105000B0F48133910509F458C048F48932910500 -:1010600009F44EC08A32910509F454C008958533BD -:10107000910509F440C08933910599F00895833EA4 -:10108000910529F138F4803E910591F0823E910559 -:10109000A1F00895863E9105F9F0873E910531F162 -:1010A00008952091EE0120FD3AC021FD38C0089539 -:1010B0008091EE0180FD35C032C08091EE0182FF4B -:1010C00032C08091EE0184FD30C083EE39C0809142 -:1010D000EE0182FD28C0F5CF8091EE0183FF27C08D -:1010E0008091EE0184FD21C087EE2AC08091EE013F -:1010F00083FD1DC0F5CF8091EE0185FD1AC01BC098 -:101100008091EE0185FD17C014C08091EE0186FD2F -:1011100014C015C08091EE0186FD11C00EC080EE96 -:101120000FC089E30DC082EE0BC080E009C086EEDF -:1011300007C089E205C085E303C08AE201C081E3FC -:1011400090E0089508950C94A20880916F0108958D -:10115000CF93DF9300D01F92CDB7DEB79C01809173 -:10116000F401843019F593E099833B832A839093AB -:10117000E9008FEF9091E800815095FD06C095ED54 -:101180009A95F1F700008111F5CF8091E80085FF75 -:101190000DC040E050E063E070E0CE0101960E9497 -:1011A0000E0B8091E8008E778093E8000F900F90EF -:1011B0000F90DF91CF910895CF93DF9300D01F92CE -:1011C000CDB7DEB72091F401243021F522E0298348 -:1011D0009B838A8383E08093E9008FEF9091E800FE -:1011E000815095FD06C095ED9A95F1F700008111AB -:1011F000F5CF8091E80085FF0DC040E050E063E04E -:1012000070E0CE0101960E940E0B8091E8008E776F -:101210008093E8000F900F900F90DF91CF91089589 -:101220002091F4012430F1F422E02093E9002FEF23 -:101230003091E800215035FD06C035ED3A95F1F7C3 -:1012400000002111F5CF2091E80025FF0BC040E000 -:1012500050E065E070E00E940E0B8091E8008E7710 -:101260008093E8000895CF93DF93EC019091F4010F -:10127000943009F046C080910C018823D9F0809108 -:101280000D018823B9F09093E9008FEF9091E80069 -:10129000815095FD06C095E19A95F1F70000811106 -:1012A000F5CF8091E80085FF2CC040E050E060E180 -:1012B00070E017C081E08093E9008FEF9091E80023 -:1012C000815095FD06C095ED9A95F1F700008111CA -:1012D000F5CF8091E80085FF14C040E050E068E061 -:1012E00070E0CE010E940E0B8091E8008E77809313 -:1012F000E80080E1FE01AFE5B1E001900D928A9532 -:10130000E1F7DF91CF9108958091F301811109C038 -:101310000E94A30C0E94000D8091E20084608093E3 -:10132000E20008951092F301089508950C94472067 -:101330000E94F71A0E944D200E94A60F0C94A30849 -:1013400042E061EC81E00E941D0C42E061EC82E031 -:101350000E941D0C42E061EC83E00E941D0C42E102 -:1013600061EC84E00C941D0C8091F601833009F44B -:1013700055C030F4813071F0823009F48EC0089588 -:101380008A3009F47AC08B3009F460C0893009F0E2 -:101390009CC020C08091F501813A09F096C08091EF -:1013A000E800877F8093E8008091F9019091FA012D -:1013B000892B21F460E18FE591E003C060E080E0DB -:1013C00090E070E00E94590B8091E8008B77809349 -:1013D000E80008958091F501813209F076C080918E -:1013E000F9019091FA01009719F0039709F06DC087 -:1013F0008091E800877F8093E8008091E80082FD7B -:1014000005C08091F4018111F8CF5FC08091F10097 -:1014100080936F018091E8008B7753C08091F50134 -:10142000813A09F052C08091F9019091FA01892B1B -:1014300009F04BC08091E800877F8093E80080919D -:10144000E80080FFFCCF80910C0136C08091F5014F -:101450008132D9F58091F9019091FA01892BA9F592 -:101460008091E800877F8093E8000E94520C809171 -:10147000F70180930C010C943F148091F5018132A7 -:1014800021F58091E800877F8093E8000E94520C4C -:101490008091F8018093700108958091F501813A5F -:1014A000A1F48091E800877F8093E8008091E800B4 -:1014B00080FFFCCF809170018093F1008091E80063 -:1014C0008E778093E8000C94520C089584B7877F40 -:1014D00084BF88E10FB6F89480936000109260009A -:1014E0000FBE80E880936100109261000E94F50FAA -:1014F0000E94A30C0E94000D8091E2008460809302 -:10150000E20078940E94860F0E94F70F82E091E03B -:101510000E94A10F0E9435208091F401853069F46A -:101520000E94BF1A8091F2018823B1F30E94E91A48 -:10153000882391F30E94F80AEFCF0E94FD0FECCFB1 -:10154000292F332723303105C9F064F421303105C8 -:1015500081F02230310509F043C08DE690E026EE9F -:1015600031E042C021323105F1F02232310541F142 -:1015700037C082E190E023E532E036C09927813020 -:10158000910541F08230910541F0892B49F5E2EE59 -:10159000F1E005C0EAECF1E002C0E2EBF1E0849199 -:1015A00090E09F0121C06430D8F4E62FF0E0EE0F08 -:1015B000FF1FEE5DFE4F2081318189E090E014C075 -:1015C000643070F470E0FB01EE0FFF1FE65EFE4F2B -:1015D00020813181FB01EA5EFE4F808190E004C0F2 -:1015E00080E090E020E030E0FA013183208308952C -:1015F00080E189BD82E189BD09B400FEFDCF809103 -:10160000D8008F7D8093D8008091E0008260809325 -:10161000E0008091E00081FDFCCF0895CF92DF9241 -:10162000EF92FF920F931F93CF93DF93EC018B0107 -:101630006A010E94710C811133C0C114D10439F0C8 -:10164000F60180819181081B190BC80FD91FE12C6D -:10165000F12C0115110519F18091E80085FD16C0E6 -:101660008091E8008E778093E800C114D10449F09E -:10167000F60180819181E80EF91EF182E08285E019 -:101680000FC00E94710C882321F30AC089918093B6 -:10169000F10001501109FFEFEF1AFF0ADACF80E0E5 -:1016A000DF91CF911F910F91FF90EF90DF90CF903E -:1016B00008952091FB013091FC012617370748F06F -:1016C0006115710539F42091E8002E772093E80028 -:1016D00001C0B90140E061157105A9F12091F40143 -:1016E000222309F443C0253009F442C02091E800C8 -:1016F00023FD40C02091E80022FD32C02091E80087 -:1017000020FFE9CF4091F3002091F20030E0342B2C -:10171000FC01CF016115710559F02830310540F405 -:1017200081918093F100615071092F5F3F4FF1CF9C -:1017300041E02830310509F040E02091E8002E77A3 -:101740002093E800C8CF4111C9CF0AC08091F401AD -:10175000882361F0853061F08091E80083FD0AC044 -:101760008091E80082FFF2CF80E0089582E0089542 -:1017700083E0089581E008952091FB013091FC0100 -:101780002617370748F06115710539F42091E800F4 -:101790002E772093E80001C0B901FC0120E061151B -:1017A000710591F18091F401882309F440C08530DE -:1017B00009F43FC08091E80083FD3DC08091E800BE -:1017C00082FD2FC08091E80080FFE9CF2091F300D7 -:1017D0008091F20090E0922B6115710559F08830EC -:1017E000910540F424912093F100319661507109E4 -:1017F0000196F2CF21E0089709F020E08091E800FF -:101800008E778093E800CBCF2111CCCF0AC0809196 -:10181000F401882361F0853061F08091E80083FD58 -:101820000AC08091E80082FFF2CF80E0089582E054 -:10183000089583E0089581E00895982F973058F532 -:101840009093E900981739F07091EC002091ED0029 -:101850005091F00003C0242F762F50E021FF19C0D3 -:101860003091EB003E7F3093EB003091ED003D7FF7 -:101870003093ED003091EB0031603093EB007093CA -:10188000EC002093ED005093F0002091EE0027FF34 -:1018900007C09F5FD3CF8F708093E90081E00895E8 -:1018A00080E008958091F50187FF11C08091E800E4 -:1018B00082FD05C08091F4018111F8CF11C08091A3 -:1018C000E8008B770BC08091F401882349F0809168 -:1018D000E80080FFF8CF8091E8008E778093E800E1 -:1018E00008952091E4003091E50095E64091EC00E8 -:1018F000842F817040FF22C08091E80080FD1CC0D1 -:101900008091F401882391F0853091F08091EB0073 -:1019100085FD10C04091E4005091E5004217530747 -:1019200029F39A01915011F784E0089582E0089517 -:1019300083E0089581E0089580E008954091E800F3 -:1019400042FFDECF08950E94110D0E94190DE0EEB6 -:10195000F0E0808181608083E8EDF0E080818F7726 -:10196000808319BCA7EDB0E08C918E7F8C93808131 -:101970008F7E80831092F30108950F931F93CF936E -:10198000DF930E94110D0E94190DC8EDD0E08881EF -:101990008F77888388818068888388818F7D88831A -:1019A00019BC1092F4011092F0011092F201109201 -:1019B000F10100EE10E0F80180818B7F8083888147 -:1019C0008160888342E060E080E00E941D0CE1EECF -:1019D000F0E080818E7F8083E2EEF0E080818160A4 -:1019E0008083808188608083F80180818E7F8083FE -:1019F000888180618883DF91CF911F910F91089535 -:101A0000E8EDF0E080818F7E8083E7EDF0E080817B -:101A10008160808384E082BF81E08093F3010C9435 -:101A2000BD0CE8EDF0E080818E7F80831092E200B3 -:101A300008951092DA001092E10008951F920F921B -:101A40000FB60F9211242F933F934F935F936F9391 -:101A50007F938F939F93AF93BF93EF93FF93809167 -:101A6000E10082FF0BC08091E20082FF07C08091FD -:101A7000E1008B7F8093E1000E94850F8091DA0066 -:101A800080FF1FC08091D80080FF1BC08091DA00CA -:101A90008E7F8093DA008091D90080FF0DC080E1B5 -:101AA00089BD82E189BD09B400FEFDCF81E080934C -:101AB000F4010E94840905C019BC1092F4010E942F -:101AC00092098091E10080FF19C08091E20080FFBF -:101AD00015C08091E2008E7F8093E2008091E20049 -:101AE00080618093E2008091D80080628093D8006A -:101AF00019BC85E08093F4010E9496098091E10071 -:101B000084FF30C08091E20084FF2CC080E189BD59 -:101B100082E189BD09B400FEFDCF8091D8008F7DA0 -:101B20008093D8008091E1008F7E8093E1008091C6 -:101B3000E2008F7E8093E2008091E20081608093DA -:101B4000E2008091F001882311F084E007C08091C9 -:101B5000E30087FD02C081E001C083E08093F401CF -:101B60000E9498098091E10083FF29C08091E200E2 -:101B700083FF25C08091E100877F8093E10082E0B0 -:101B80008093F4011092F0018091E1008E7F8093A8 -:101B9000E1008091E2008E7F8093E2008091E2007C -:101BA00080618093E20042E060E080E00E941D0CD2 -:101BB0008091F00088608093F0000E949509FF9169 -:101BC000EF91BF91AF919F918F917F916F915F91B5 -:101BD0004F913F912F910F900FBE0F901F9018952E -:101BE0001F920F920FB60F9211242F933F934F9392 -:101BF0005F936F937F938F939F93AF93BF93CF9395 -:101C0000DF93EF93FF93C091E900CF708091EC00D8 -:101C1000D82FD17080FDD0E81092E9008091F000BB -:101C2000877F8093F00078940E94340E1092E90030 -:101C30008091F00088608093F000CD2BCF70C0932E -:101C4000E900FF91EF91DF91CF91BF91AF919F910B -:101C50008F917F916F915F914F913F912F910F9055 -:101C60000FBE0F901F9018951F93CF93DF93CDB7A2 -:101C7000DEB7AA970FB6F894DEBF0FBECDBFE5EF73 -:101C8000F1E088E08E0F9091F10091938E13FBCFDD -:101C90000E94B4098091E80083FF1FC18091F50183 -:101CA0009091F601492F50E04A30510508F015C1D6 -:101CB000FA01EA5AFF4F0C94CF21803881F0823824 -:101CC00009F00BC18091F9018F708093E900809138 -:101CD000EB0085FB882780F91092E90006C080910F -:101CE000F1019091F201911182609091E800977F4B -:101CF0009093E8008093F1001092F100C8C0282F63 -:101D00002D7F09F0EAC0882319F0823061F0E5C028 -:101D10008091F701813009F0E0C0933009F080E054 -:101D20008093F2012BC08091F701811127C080912F -:101D3000F9018F7009F4D1C08093E9002091EB0084 -:101D400020FF1CC0933021F48091EB00806214C00E -:101D50009091EB0090619093EB0021E030E0A901BD -:101D600002C0440F551F8A95E2F74093EA00109293 -:101D7000EA008091EB0088608093EB001092E9000C -:101D80008091E800877F86C08111A7C01091F7017C -:101D90001F778091E3008078812B8093E30080910E -:101DA000E800877F8093E8000E94520C8091E80051 -:101DB00080FFFCCF8091E30080688093E3001111E5 -:101DC00002C082E001C083E08093F40186C08058A5 -:101DD000823008F082C08091F7019091F8018C3D2B -:101DE00053E0950779F583E08A838AE289834FB7C8 -:101DF000F894DE01139620E03EE051E2E32FF0E09C -:101E000050935700E49120FF03C0E295EF703F5FCD -:101E1000EF708E2F90E0EA3010F0C79601C0C096A8 -:101E20008D939D932F5F243149F74FBF8091E80038 -:101E3000877F8093E8006AE270E0CE0101960E94FD -:101E4000590B14C0AE014F5F5F4F6091F9010E94C2 -:101E5000A00ABC01009709F440C09091E800977F68 -:101E60009093E80089819A810E94BC0B8091E800E0 -:101E70008B778093E80031C0803879F58091E80055 -:101E8000877F8093E8008091F0018093F10080913A -:101E9000E8008E778093E8000E94520C1EC08111EA -:101EA0001CC09091F7019230C0F48091E800877FC8 -:101EB0008093E8009093F0010E94520C8091F00111 -:101EC000811106C08091E30087FD02C081E001C05E -:101ED00084E08093F4010E94A0098091E80083FFD0 -:101EE0000AC08091E800877F8093E8008091EB0032 -:101EF00080628093EB00AA960FB6F894DEBF0FBE07 -:101F0000CDBFDF91CF911F9108950895CF93809118 -:101F1000F4018823A1F0C091E900CF709091EC000A -:101F2000892F817090FD80E8C82B1092E900809184 -:101F3000E80083FD0E94340ECF70C093E900CF917A -:101F4000089590937601809375010895E09175014D -:101F5000F0917601309721F00190F081E02D099405 -:101F600080E00895E0917501F0917601309721F0BD -:101F70000280F381E02D09940895E0917501F091BC -:101F80007601309721F00480F581E02D09940895C1 -:101F900020917301309174018217930771F090932F -:101FA000740180937301E0917501F091760130978F -:101FB00021F00680F781E02D0994089520917101A8 -:101FC000309172018217930771F0909372018093A0 -:101FD0007101E0917501F0917601309721F0008454 -:101FE000F185E02D0994089508950C94F40F0E9452 -:101FF000FD1A0E9491020C94831B9F92AF92BF9294 -:10200000CF92DF92EF92FF920F931F93CF93DF93C4 -:1020100000D000D000D0CDB7DEB70E94B8020DE0EE -:1020200010E0AA24A394B12C902E802F0E94A60326 -:10203000980128583E4F6901F901F080F826A1F473 -:102040000150110988F78FEF89838A831B820E94D0 -:10205000061B8160782F9D838C8349815A816B8117 -:102060008D810E9494102FC09091DB0191FF04C0DC -:102070008E830E94AC038E8125E030E0A501022E04 -:1020800001C0440F0A94EAF7E42E4F21C1F02983DE -:102090009A828E2191E009F490E09B830E94061BB6 -:1020A0008160782F9D838C8349815A816B818D81DA -:1020B0000E949410F6018081E826E08204C021503D -:1020C0003109E0F6BDCF0E94511D109177010E94A9 -:1020D000A60F1817B9F00E94A60F809377012696D5 -:1020E0000FB6F894DEBF0FBECDBFDF91CF911F9129 -:1020F0000F91FF90EF90DF90CF90BF90AF909F90A7 -:102100000C94A30826960FB6F894DEBF0FBECDBF81 -:10211000DF91CF911F910F91FF90EF90DF90CF90C3 -:10212000BF90AF909F900895CF93DF93CDB7DEB768 -:102130002B970FB6F894DEBF0FBECDBF4F835887E5 -:1021400069877A878B87DE01119686E0FD011192FF -:102150008A95E9F785E0FE01379601900D928A9500 -:10216000E1F749815A816B817C818D819E810E943A -:10217000DD162B960FB6F894DEBF0FBECDBFDF91F4 -:10218000CF910895CF93882309F4C2C0C82F823815 -:1021900059F40E94A60F81FDBBC089E30E94B719C4 -:1021A0000E94841A89E30CC0833879F40E94A60F38 -:1021B00080FDAEC083E50E94B7190E94841A83E5B2 -:1021C0000E94F919CF910C94841A843859F40E9412 -:1021D000A60F82FD9DC087E40E94B7190E94841A51 -:1021E00087E4EECF8CEF8C0F813A48F48C2F0E945D -:1021F0009B1F81118DC08C2F0E94B719E3CF80E205 -:102200008C0F883048F4C77081E001C0880FCA95F0 -:10221000EAF70E943D1AD6CF8BE58C0F833078F415 -:10222000C53A29F0C63A31F083E890E005C081E86C -:1022300090E002C082E890E0CF910C94C80F88E54E -:102240008C0F833108F064C0C83A39F1C93A41F1C2 -:10225000CA3A49F1CB3A51F1CC3A59F1CD3A61F150 -:10226000C03B69F1CE3A71F1CF3A79F1C13B81F1CE -:10227000C23B89F1C33B91F1C43B99F1C53BA1F14C -:10228000C63BA9F1C73BB1F1C83BB9F1C93BC1F1AC -:10229000CA3BC9F180E090E038C082EE90E035C0E2 -:1022A00089EE90E032C08AEE90E02FC085EB90E09E -:1022B0002CC086EB90E029C087EB90E026C08CEC28 -:1022C00090E023C08DEC90E020C083E891E01DC039 -:1022D0008AE891E01AC082E991E017C084E991E0B0 -:1022E00014C081E292E011C083E292E00EC084E269 -:1022F00092E00BC085E292E008C086E292E005C061 -:1023000087E292E002C08AE292E0CF910C94DE0F65 -:10231000CF910895882309F44BC0823859F40E9464 -:10232000A60F81FF45C089E30E94B7190E94841A55 -:1023300089E30CC0833871F40E94A60F80FF38C077 -:1023400083E50E94B7190E94841A83E50E94F91957 -:102350000C94841A843859F40E94A60F82FF28C076 -:1023600087E40E94B7190E94841A87E4EFCF9CEF9C -:10237000980F913A58F390E2980F983050F4877084 -:1023800091E001C0990F8A95EAF7892F0E94431ABC -:10239000DFCF9BE5980F933020F480E090E00C9421 -:1023A000C80F885A833120F480E090E00C94DE0F4F -:1023B0000895882321F00E943D1A0C94841A0895F0 -:1023C000882321F00E94431A0C94841A08957F9266 -:1023D0008F929F92AF92BF92CF92DF92EF92FF9235 -:1023E0000F931F93CF93DF931F92CDB7DEB77C017E -:1023F000C62E772EFC01058102950F7012811111F6 -:102400000E945A1A0E94B019882379F0112369F0AA -:1024100080E28C0D883048F082E00E9499190E9479 -:10242000B01991E0D82ED92601C0D12CE72DE29524 -:10243000EF70F0E0E05AFF4F0C94CF21872D807FA2 -:10244000072D0F70882311F00295007F112389F06A -:10245000002309F490C180E28C0D883020F4802F95 -:102460000E943D1A03C0802F0E944D1A0E94841AB8 -:1024700082C18C2D0E948A11002309F495C180E24B -:102480008C0D883020F4802F0E94431A03C0802FC7 -:102490000E94531A0E94841A87C1972D907F872D1E -:1024A0008F70903211F08295807FCC2021F0F1E086 -:1024B000CF16B1F01EC0112349F0002309F414C156 -:1024C000013009F011C10E946D1A6EC1002319F08C -:1024D000013009F469C189830E94701A89810AC197 -:1024E000112321F0023008F05FC1FEC001115CC170 -:1024F00001C1112321F0002309F4F6C03CC10023DF -:1025000009F4F8C03EC1872D86958695837090E0CA -:10251000009719F0019761F047C1112321F08C2D2C -:10252000972D937002C080E090E00E94C80F3CC1DC -:10253000112321F08C2D972D937002C080E090E044 -:102540000E94DE0F31C18C2D112319F00E94591CFD -:1025500002C00E94C11C0E94461D26C1872D8370A7 -:1025600009F052C0111120C18C2D8295869587707B -:10257000880F880F9C2D9F70892E912CA12CB12C37 -:10258000082E04C0880C991CAA1CBB1C0A94D2F704 -:10259000C4FE14C00FE010E020E030E0B901A80153 -:1025A00004C0440F551F661F771F8A95D2F7CB01D1 -:1025B000BA01609570958095909503C060E070E0D9 -:1025C000CB01272D26952695237030E0223031054A -:1025D00069F02330310589F0682979298A299B29F6 -:1025E0002130310571F00E942518DEC06829792953 -:1025F0008A299B290E944118D7C00E942518C5012D -:10260000B4010E940918D0C0112319F0872D8170E0 -:1026100001C08695882309F4C7C08C2D82958695C4 -:102620008770880F880F9C2D9F70892E912CA12C6C -:10263000B12C082E04C0880C991CAA1CBB1C0A943F -:10264000D2F7C4FE14C00FE010E020E030E0B90182 -:10265000A80104C0440F551F661F771F8A95D2F743 -:10266000CB01BA01609570958095909503C060E0AC -:1026700070E0CB01272D269526952370422F50E040 -:102680004230510569F04330510589F068297929B4 -:102690008A299B294130510571F00E94FF1884C09E -:1026A000682979298A299B290E941B197DC00E94CB -:1026B000FF18C501B4010E94E31876C08C2D90E08C -:1026C000FC01E05EF109E531F10508F050C0E05988 -:1026D000FF4F0C94CF210C2D0F70872D8F7111237C -:1026E00031F00E947C18802F0E94D9115DC00E9499 -:1026F0009D18802F0E94E01157C0112339F001115D -:1027000053C0872D8F710E94C2184EC0023008F04E -:102710004BC0F7CF112339F0872D8F710E947C18A1 -:1027200043C01123C9F3872D8F710E949D183CC0AF -:10273000112329F0872D8F710E94671835C00E94E0 -:102740005D1832C0112351F0172D1F71812F0E9487 -:102750007C1863E0812F0E94901926C081E00E94BE -:102760009919023008F182E00E9499191DC01123C5 -:1027700031F0002389F28C2D0E94C21015C0002375 -:1027800091F28C2D0E948A110FC0472D4F706C2D35 -:10279000C7010E9482040E94811706C0472D4F7016 -:1027A0006C2DC7010E941208DD20F9F00E948C19DF -:1027B00080FD1BC0F70112820E9486190E947C18BE -:1027C000C7010E9404140E9486190F90DF91CF91D7 -:1027D0001F910F91FF90EF90DF90CF90BF90AF903F -:1027E0009F908F907F900C949D180F90DF91CF91C8 -:1027F0001F910F91FF90EF90DF90CF90BF90AF901F -:102800009F908F907F9008950F931F93CF93DF93A6 -:10281000EC01888199812B813C81232BB9F09F3F6A -:1028200011F48F3F99F0CE010E94A304882371F028 -:10283000688179818A810E9482198C010E943719EE -:102840000E94FE17B801CE010E94E711DF91CF91DF -:102850001F910F9108950E945A1A0E946A1A0E94AD -:102860002F1A0E94841A0E94F71D0E94461D80E0C4 -:1028700090E00E94C80F80E090E00C94DE0F0E9470 -:102880004A1A0C942B140E947719292F22952F7025 -:1028900030E02C3031054CF42A3031056CF42250F4 -:1028A000310922303105A8F407C02C30310569F018 -:1028B0002F30310551F00DC0803F69F018F4803E93 -:1028C00040F409C0843F29F406C093FB882780F9AF -:1028D000089580E0089581E00895CF93DF9300D0BC -:1028E00000D01F92CDB7DEB70F900F900F900F90D2 -:1028F0000F90DF91CF910895CF93DF9300D000D058 -:1029000000D0CDB7DEB726960FB6F894DEBF0FBE67 -:10291000CDBFDF91CF9108951F93CF93DF93C091E7 -:10292000860116E080918701C81799F0D0E01C9FBE -:10293000F0011D9FF00D1124E857FE4F4081518199 -:1029400062817381848195810E947C142196C77075 -:10295000E9CFDF91CF911F9108954091B801509137 -:10296000B9016091BA017091BB018091BC01909155 -:10297000BD010C947C148091BD0182958F7009F08B -:1029800054C08091BA01882309F44FC08091860118 -:10299000A09187016091B8017091B9014091BB018C -:1029A0005091BC01B6E08A1709F43FC090E0411590 -:1029B0005105C1F17F3F11F46F3FA1F1B89FF001C4 -:1029C000B99FF00D1124E857FE4F218172132AC0E0 -:1029D0002081621327C02281211124C023813481E8 -:1029E0002417350710F421503109241B350B283CDE -:1029F0003105C0F42091BD012F7020612093BD01ED -:102A000026E0289FF001299FF00D1124E357FE4F87 -:102A100080818F708061808388EB91E00E94041434 -:102A20000C948C1401968770BECF0895CF92DF92DC -:102A3000EF92FF920F931F93CF93DF93CDB7DEB743 -:102A400062970FB6F894DEBF0FBECDBF8C0185E054 -:102A5000F801DE011D9601900D928A95E1F7D801EB -:102A60004C9111965C91119712966C911297139656 -:102A7000CD90DC9014973091B8017091B90180919C -:102A8000BB019091BC01009709F46BC17F3F19F421 -:102A90003F3F09F466C1E090BA01EE2009F4C0C0DE -:102AA0002091BD01C816D90628F0F601E81BF90BE4 -:102AB000CF0104C0809590958C0D9D1DFF24F3944B -:102AC000883C910578F0F12C207F09F0C6C07C2D60 -:102AD000D98AC88A89890E946D1488EB91E00E9486 -:102AE0000414B1C0822F807F09F046C0751314C052 -:102AF000341312C0611110C02F7020612093BD01EA -:102B00000E94AD1488EB91E00E9404148091BD01F5 -:102B1000D80115968C932EC0CD2819F15F3F11F482 -:102B20004F3FF9F0F62E61111CC080918601209173 -:102B3000870136E0821709F45AC090E0389FF0010F -:102B4000399FF00D1124E857FE4F7181571306C0CD -:102B50007081471303C07281711103C001968770A1 -:102B6000E9CFF62E662309F418C18091BD0181607A -:102B70008093BD01F12C11C1751308C0341306C038 -:102B8000611104C08091BD01D801C3C04D875E872B -:102B90008D859E856A8B0E9443146A898823E1F1A2 -:102BA0006623D1F12091BD01822F82958F7090E034 -:102BB000029774F08091B8019091B90198878F8342 -:102BC0001986DB86CA862C87CE0107960E940414DC -:102BD00086E0F801A8EBB1E001900D928A95E1F74B -:102BE0000E94BB140E94AD14FF24F394D6C04D87FD -:102BF0005E878D859E850E947719292F22952F70DB -:102C000030E0223031050CF0BCC09F7009F0B6C036 -:102C1000805E883008F4C1C0C8010E940414E4CF6B -:102C2000C816D90608F453C0F601E81BF90BCF010A -:102C3000883C910508F450C0F12C7C2DD98AC88AB3 -:102C400089890E946D14E8EBF1E086E0DF011D92B6 -:102C50008A95E9F70E94AD14A0C0751314C034130F -:102C600012C0611110C08091BD01F8018583C801B7 -:102C70000E94041486E0E8EBF1E0DF011D928A95E2 -:102C8000E9F7FE2C8AC04D875E878D859E856A8B0D -:102C90000E9443146A89882309F4BECF662309F48D -:102CA000BBCF2091BD01822F82958F7090E002975B -:102CB0000CF48ECF8091B8019091B9019A838983E9 -:102CC0001B82DD82CC822E83CE0101967FCF809540 -:102CD00090958C0D9D1DACCFF62E662309F49CCFEC -:102CE00075132EC034132CC02091BD0120FD1FC0D0 -:102CF000822F82958F70D9F0D80115962C93159755 -:102D00008F3049F08F5F982F9295907F822F8F7030 -:102D1000892B15968C93C8010E94041486E0F80153 -:102D2000A8EBB1E001900D928A95E1F793CF86E090 -:102D3000F801A8EBB1E001900D928A95E1F72DC062 -:102D40004D875E878D859E850E944314811140CFFB -:102D50008091BD0181608093BD01C8010E9404146F -:102D60001CC0662309F458CF4D875E878D859E85EC -:102D70000E944314882309F44FCF2ACF811148CFF2 -:102D80000CC0243031050CF047CF9F7009F440CFC0 -:102D9000F8019581907F09F03BCF8F2D62960FB699 -:102DA000F894DEBF0FBECDBFDF91CF911F910F9181 -:102DB000FF90EF90DF90CF9008951F93CF93DF9314 -:102DC000CDB7DEB72C970FB6F894DEBF0FBECDBFE0 -:102DD0004F83588769877A878B879C87CE010796B0 -:102DE0000E941615882369F08F8198852A853B8576 -:102DF000232BF1F19F3F09F063C08F3F09F060C0C2 -:102E000037C086E0FE013796DE01119601900D92E3 -:102E10008A95E1F76F817885EA85FB85309741F1E6 -:102E20007F3F11F46F3F21F12091870130E0C9010C -:102E30000196877099274091860150E08417950785 -:102E400009F447C069837A83FD83EC8396E0929FFF -:102E5000D001939FB00D1124A857BE4FFE013196AB -:102E600001900D929A95E1F7809387010E948C144E -:102E700016E080918601909187018917C1F1189F12 -:102E8000C001112488579E4F0E941615882379F19E -:102E9000E09186011E9FF0011124E857FE4F40810A -:102EA000518162817381848195810E947C1480911B -:102EB000860190E001968770992780938601D9CF8B -:102EC0004F81588569857A858B859C850E947C1405 -:102ED000CFCF0E943F141092870110928601E8EB39 -:102EE000F1E086E0DF011D928A95E9F7C1CF2C96CB -:102EF0000FB6F894DEBF0FBECDBFDF91CF911F910B -:102F00000895EF92FF920F931F93CF93DF938C015D -:102F1000009709F46CC0F12CEE24E394E8012196AB -:102F2000F8018491843740F4843008F051C0813036 -:102F300081F0823019F15BC0853709F444C0A8F1F3 -:102F40009CE7980F903708F052C08F770E948A1143 -:102F500041C00E5F1F4FFE01C49180E28C0F88308C -:102F600048F4C7708E2D01C0880FCA95EAF70E94F9 -:102F70005D1A14C08C2F0E94C2102DC00E5F1F4F0F -:102F8000FE01C49180E28C0F883058F4C7708E2DFA -:102F900001C0880FCA95EAF70E94631A0E94841A3A -:102FA0001AC08C2F0E948A1116C00E5F1F4FFE019F -:102FB000C491CC2381F08FE99FE00197F1F700C025 -:102FC0000000C150F6CF0E5F1F4FFE01F49003C00A -:102FD0000E94C2108E018F2D882309F49FCFEFE944 -:102FE000FFE03197F1F700C000008150F5CFDF918D -:102FF000CF911F910F91FF90EF90089508956093E6 -:10300000C2017093C3018093C4019093C5010C94D5 -:103010002B140F931F930091C2011091C3012091B3 -:10302000C4013091C501DC01CB01802B912BA22B77 -:10303000B32B8093C2019093C301A093C401B093BA -:10304000C5011F910F910C942B140F931F930091A6 -:10305000C2011091C3012091C4013091C501DC016E -:10306000CB0180239123A223B3238093C2019093A9 -:10307000C301A093C401B093C5011F910F910C949B -:103080002B140F931F930091C2011091C301209143 -:10309000C4013091C501DC01CB0180279127A22713 -:1030A000B3278093C2019093C301A093C401B0934E -:1030B000C5011F910F910C942B141092BE01109218 -:1030C000BF011092C0011092C1010C942B1441E079 -:1030D00050E060E070E004C0440F551F661F771F8A -:1030E0008A95D2F74093BE015093BF016093C0010F -:1030F0007093C1010C942B1441E050E060E070E04B -:1031000004C0440F551F661F771F8A95D2F7809120 -:10311000BE019091BF01A091C001B091C101482BA7 -:10312000592B6A2B7B2B4093BE015093BF016093B8 -:10313000C0017093C1010C942B1441E050E060E099 -:1031400070E004C0440F551F661F771F8A95D2F7A1 -:1031500040955095609570958091BE019091BF010A -:10316000A091C001B091C101482359236A237B2358 -:103170004093BE015093BF016093C0017093C101A1 -:103180000C942B1441E050E060E070E004C0440F68 -:10319000551F661F771F8A95D2F78091BE019091C7 -:1031A000BF01A091C001B091C101482759276A27EA -:1031B0007B274093BE015093BF016093C001709381 -:1031C000C1010C942B140F931F930091BE01109119 -:1031D000BF012091C0013091C101DC01CB01802BE6 -:1031E000912BA22BB32B8093BE019093BF01A09390 -:1031F000C001B093C1011F910F910C942B140F9338 -:103200001F930091BE011091BF012091C001309128 -:10321000C101DC01CB0180239123A223B32380933E -:10322000BE019093BF01A093C001B093C1011F9153 -:103230000F910C942B140F931F930091BE011091CA -:10324000BF012091C0013091C101DC01CB01802779 -:103250009127A227B3278093BE019093BF01A0932B -:10326000C001B093C1011F910F910C942B140895CC -:10327000CF92DF92EF92FF920F931F93CF93DF9342 -:103280008C01C090C201D090C301E090C401F090C5 -:10329000C5018091BE019091BF01A091C001B09184 -:1032A000C101C82AD92AEA2AFB2ACFE1D0E0D701F6 -:1032B000C6010C2E04C0B695A795979587950A94DC -:1032C000D2F780FF06C0B8018C2F0E9491060197AB -:1032D00021F4219760F780E001C08C2FDF91CF911E -:1032E0001F910F91FF90EF90DF90CF900895CF93B3 -:1032F000DF93EC010E943819BE010E949106DF9114 -:10330000CF910895CB010E94771908958091C6014D -:1033100085958595859508958091C6018770089556 -:1033200098E0899F90011124262B2093C6010C94CC -:103330007C182091C601809582238093C601982F26 -:10334000977069F430E0482F552747FD50952417B2 -:10335000350729F08595859585950C949D180895D8 -:103360009091C601977081E009F480E008959091F2 -:103370000C01992321F090910D01911109C0209128 -:103380000E0130910F01F90132969FEF40E01FC00E -:10339000982F9695969596959F3050F5E0910E0151 -:1033A000F0910F01E90FF11D877021E030E0A901D4 -:1033B00002C0440F551F8A95E2F7CA019181892BFB -:1033C000818308959F3F39F04F5F4E3041F0519116 -:1033D0005813F8CF0DC05111F7CF942FF5CF9F3F61 -:1033E00039F0F901E90FF11D97FDFA9582830895EF -:1033F000089590910C01992321F090910D01911164 -:1034000009C020910E0130910F01F9013296205F21 -:103410003F4F1FC0982F9695969596959F30F0F444 -:10342000E0910E01F0910F01E90FF11D877021E08D -:1034300030E0A90102C0440F551F8A95E2F7CA0186 -:10344000809591818923818308953196E217F3074E -:1034500029F090819813F9CF1082F7CF089581E079 -:1034600090E0E0910E01F0910F01E80FF91F10823A -:10347000019680319105A9F708959091DA01892B81 -:103480008093DA01089580959091DA0189238093E1 -:10349000DA0108951092DA0108959091D901892BEB -:1034A0008093D901089580959091D90189238093C3 -:1034B000D90108951092D90108959091D801892BCE -:1034C0008093D801089580959091D80189238093A5 -:1034D000D80108951092D80108958093C7010895E6 -:1034E0001092C701089580910E0190910F01FC0187 -:1034F00031969C01205F3F4F80E0919191118F5F49 -:10350000E217F307D1F70895E0910E01F0910F0152 -:103510008091DA018083E0910E01F0910F0190819A -:103520008091D901892B8083E0910E01F0910F01E8 -:1035300090818091D801892B80838091C701882355 -:1035400061F0E0910E01F0910F019081892B808351 -:103550000E94731A81111092C70180910E019091FF -:103560000F010C94B20F20E0009739F0AC014150EC -:103570005109842395232F5FF7CF822F08958091DF -:10358000F401843021F11092DC0120E488E190E024 -:103590000FB6F894A895809360000FBE209360004A -:1035A00080E00E94A30883B7817F846083BF83B7D4 -:1035B000816083BF7894889583B78E7F83BF88E1CD -:1035C0000FB6F89480936000109260000FBE0895CB -:1035D00008950E94A5020E94B8020E94E81A0E9463 -:1035E000AD0391E0811101C090E0892F08950E9400 -:1035F0003F140E94A60F0C94A30882E084BD93E0C0 -:1036000095BD9AEF97BD80936E0008952FB7F894FB -:103610008091DD019091DE01A091DF01B091E00188 -:103620002FBF0895CF92DF92EF92FF920F931F93D7 -:103630002FB7F8944091DD015091DE016091DF01D8 -:103640007091E0012FBF6A017B01EE24FF248C0101 -:1036500020E030E0C016D106E206F30610F4415037 -:1036600051099A01281B390BC9011F910F91FF9035 -:10367000EF90DF90CF9008951F920F920FB60F92A8 -:1036800011248F939F93AF93BF938091DD0190910D -:10369000DE01A091DF01B091E0010196A11DB11DF5 -:1036A0008093DD019093DE01A093DF01B093E001F0 -:1036B000BF91AF919F918F910F900FBE0F901F9070 -:1036C00018950E94A30CF8942FEF87EA91E62150F9 -:1036D00080409040E1F700C0000087E090EBDC0103 -:1036E0008093FD019093FE01A093FF01B09300022F -:1036F0009CE088E10FB6F894A895809360000FBE17 -:1037000090936000FFCF0E94BB1B811102C00E94FA -:10371000A11B0E94C61B8093DB010E94CE1B90E080 -:103720009093EF018093EE0187FB882780F98093C7 -:103730000D010E94CA1B682F70E080E090E00C949D -:10374000FF176DEE7EEF80E090E00E94092260E0BE -:1037500082E090E00E94F72160E083E090E00E9428 -:10376000F72160E084E090E00E94F72160E085E0CE -:1037700090E00C94F72180E090E00E94F12121E09C -:103780008D3E9E4F09F020E0822F089582E090E068 -:103790000C94E92183E090E00C94E92184E090E02E -:1037A0000C94E921682F84E090E00C94F72180913B -:1037B000E30180FF0BC06091130185E0689FB001B9 -:1037C000112475956795759567952BC081FF09C084 -:1037D0006091130185E0689FB0011124759567958C -:1037E00020C082FF07C06091130185E0689FB0018F -:1037F000112417C09091E4019923D1F06091120136 -:10380000961788F72091130185E0289F90011124D5 -:10381000929FA001939F500D112470E0CA010E9455 -:10382000BB216038710540F46115710539F002C0A3 -:1038300065E070E0862F08958FE7089581E0089590 -:103840008091E30180FF08C06091110170E07595DF -:1038500067957595679521C081FF06C0609111013C -:1038600070E07595679519C082FF04C060911101E1 -:1038700070E010C09091E4019923C1F060911001B3 -:103880009617A0F780911101899FC001112470E063 -:103890000E94BB216038710528F46115710521F083 -:1038A000862F08958FE7089581E0089561E070E024 -:1038B000F4CF803F21F40E94D71B819504C0813F43 -:1038C00029F40E94D71B8093E7010895823F21F4D9 -:1038D0000E94D71B819504C0833F29F40E94D71B07 -:1038E0008093E6010895893F19F40E94201C05C0C9 -:1038F0008A3F31F40E94201C81958093E80108954D -:103900008B3F21F40E94201C819504C08C3F29F438 -:103910000E94201C8093E9010895843F21F4809146 -:10392000E501816017C0853F21F48091E501826047 -:1039300011C0863F21F48091E50184600BC0873F70 -:1039400021F48091E501886005C0883F31F48091C1 -:10395000E50180618093E50108958D3F21F4809118 -:10396000E30181600BC08E3F21F48091E30182600E -:1039700005C08F3F29F48091E30184608093E301C7 -:103980000895803F39F48091E70187FF6CC0109261 -:10399000E70169C0813F29F48091E7011816BCF363 -:1039A00062C09091E601823F29F497FF5CC01092BB -:1039B000E60159C0833F19F41916CCF354C0893F6E -:1039C00041F48091E80118160CF04DC01092E80106 -:1039D0004AC08A3F29F48091E80187FF44C0F6CFAE -:1039E0008B3F39F48091E90187FF3DC01092E901D6 -:1039F0003AC08C3F29F48091E9011816BCF333C01A -:103A0000843F21F48091E5018E7F17C0853F21F42A -:103A10008091E5018D7F11C0863F21F48091E50101 -:103A20008B7F0BC0873F21F48091E501877F05C024 -:103A3000883F31F48091E5018F7E8093E50113C0CA -:103A40008D3F21F48091E3018E7F0BC08E3F21F4E6 -:103A50008091E3018D7F05C08F3F29F48091E301C0 -:103A60008B7F8093E3018091E60181110EC08091EC -:103A7000E70181110AC08091E801811106C080919F -:103A8000E901811102C01092E401089585EE91E0F0 -:103A90000E94BD0F0E94061B9093E2018093E101FA -:103AA00008951F93CF93DF938091E1019091E201FC -:103AB0000E94121BAC019091E401992321F0209106 -:103AC000140130E006C0209115018AE0289F900182 -:103AD00011244217530708F486C08091E601C09173 -:103AE000E701D091E8011091E901811107C0C111EE -:103AF00076C0D11174C0111172C075C09F3F19F00A -:103B00009F5F9093E401181624F40E94D71B8093C2 -:103B1000E6018091E60187FF05C00E94D71B8195D1 -:103B20008093E6011C1624F40E94D71B8093E701C2 -:103B30008091E70187FF05C00E94D71B8195809384 -:103B4000E7016091E601662339F1C091E701CC23DA -:103B500019F1772767FD7095872F972F0E94CC204A -:103B600023E333E343E35FE30E9430210E94992083 -:103B70006093E6016C2F772767FD7095872F972F4D -:103B80000E94CC2023E333E343E35FE30E94302130 -:103B90000E9499206093E7011D1624F40E94201CC6 -:103BA0008093E8018091E80187FF05C00E94201CF6 -:103BB00081958093E801111624F40E94201C8093C3 -:103BC000E9018091E90187FF05C00E94201C8195D1 -:103BD0008093E901DF91CF911F910C94461D9F3F87 -:103BE00009F08ECF96CFDF91CF911F910895E5EE2A -:103BF000F1E085E0DF011D928A95E9F71092E4017A -:103C00001092E3010895833081F128F4813059F056 -:103C10008230D1F00895853009F449C0B8F186307A -:103C200009F456C0089580911501262F30E0280F21 -:103C3000311D2F3F310524F4680F6093150108955D -:103C40008FEF80931501089580911401262F30E0A5 -:103C5000280F311D2F3F310524F4680F60931401A4 -:103C600008958FEF80931401089580911301262FFA -:103C700030E0280F311D2F3F310524F4680F609389 -:103C8000130108958FEF809313010895809112011D -:103C9000262F30E0280F311D2F3F310524F4680F07 -:103CA0006093120108958FEF80931201089580911F -:103CB0001101262F30E0280F311D2F3F310524F44C -:103CC000680F6093110108958FEF8093110108959B -:103CD00080911001262F30E0280F311D2F3F310534 -:103CE00024F4680F6093100108958FEF8093100102 -:103CF0000895833011F128F4813049F0823091F039 -:103D00000895853081F120F18630C1F108958091C8 -:103D10001501681720F4861B8093150108951092F1 -:103D20001501089580911401681720F4861B809373 -:103D300014010895109214010895809113016817D9 -:103D400020F4861B809313010895109213010895A7 -:103D500080911201681720F4861B80931201089548 -:103D600010921201089580911101681720F4861BAA -:103D7000809311010895109211010895809110010E -:103D8000681720F4861B809310010895109210018B -:103D900008950F931F938D3109F471C008F045C049 -:103DA000803109F485C008F5873009F46FC068F4E4 -:103DB000863009F0ADC08091DB01817F8E7F8093DA -:103DC000DB0181E08093EB01A4C08B3009F49EC03D -:103DD0008E3009F09DC08091DB0182FB222720F903 -:103DE00091E0922790FB82F96CC0863109F48EC075 -:103DF00060F4813109F08CC00E943F1490910D0154 -:103E000081E0892780930D0181C0893109F47EC04A -:103E10008B3109F07DC08091DB0181FB222720F9E5 -:103E200091E0922790FB81F94CC0853309F466C07C -:103E300048F4873209F462C008F44FC0893209F4AB -:103E40005DC066C0833438F48A3308F044C08833D8 -:103E500009F45CC05DC0833409F450C0883409F0B3 -:103E600057C00E943F140FEF13ED20E301501040A4 -:103E70002040E1F700C000000E94611B47C00E9483 -:103E800053200E94A60F0E94A30840C09091DB011E -:103E9000892F8095817080FB90F929F09660986059 -:103EA0009093DB0136C0997F977F9093DB012EC002 -:103EB0008091DB0183FB222720F991E0922790FB80 -:103EC00083F98093DB01992309F18091DB01816003 -:103ED0008093DB011BC0895301C08D5141E050E04C -:103EE00060E070E08A019B0104C0000F111F221FD7 -:103EF000331F8A95D2F7C901B80104C061E070E0B0 -:103F000080E090E00E94FF170E943F1481E001C012 -:103F100080E01F910F91089580E0089580E008955A -:103F20008E518A3030F4E82FF0E0E65DFE4F80815C -:103F3000089580E00895CF93C82F8091EB018130E0 -:103F400079F018F08230E9F186C0E0910E01F0912D -:103F50000F018081813169F0823209F07EC009C091 -:103F6000E0910E01F0910F018081813111F08232D8 -:103F700061F48C2F0E948C1F811104C08C2F0E9431 -:103F8000C91E1DC081E090E01AC08C2F0E948E1FB8 -:103F9000811114C0C43179F048F4CB3079F0C031CC -:103FA00009F05FC082E08093EB0108C0C93219F0CC -:103FB000C83321F056C01092EB0153C081E08170EC -:103FC00052C0C93281F110F5C43169F1A8F4C7308B -:103FD00009F045C08AE08093150194E190931401A3 -:103FE00093E0909313018093120188E08093110174 -:103FF00088E28093100133C082EE8C0F863078F512 -:104000008C2F0E94901F8093EA0129C0CE34E9F0E2 -:1040100020F4CB3421F56AE013C0C13579F0C23504 -:10402000F1F461E00DC08091EA01882319F010924B -:10403000EA0115C081E08093EB0115C061E006C084 -:104040008091EA010E94031E0AC06AE08091EA01A1 -:104050000E94791E04C01092EB0180E004C081E050 -:1040600002C080E0ACCFCF910895E1E8F0E080811C -:10407000886080838081816080838FB7F89493E02B -:104080009093890090ED909388008FBF0895EFE69C -:10409000F0E08081826080830895EFE6F0E0808127 -:1040A0008D7F80830895EFE6F0E0908182E089279C -:1040B000808308951F920F920FB60F9211242F93B1 -:1040C0003F934F935F936F937F938F939F93AF93A0 -:1040D000BF93EF93FF938091EC019091ED010196D6 -:1040E0009093ED018093EC01811103C082E00E9466 -:1040F000A308E091ED01E695E695F0E0EF59FC4F5D -:10410000E4918091EC018E1303C080E00E94A3082B -:10411000FF91EF91BF91AF919F918F917F916F919F -:104120005F914F913F912F910F900FBE0F901F9075 -:10413000189504D06894B1118DC0089570D088F09E -:104140009F5790F0B92F9927B751A0F0D1F0660F83 -:10415000771F881F991F1AF0BA95C9F712C0B1309E -:1041600081F077D0B1E0089574C0672F782F882749 -:10417000B85F39F0B93FCCF3869577956795B395DD -:10418000D9F73EF490958095709561957F4F8F4F4C -:104190009F4F0895E89409C097FB3EF49095809551 -:1041A000709561957F4F8F4F9F4F9923A9F0F92FFD -:1041B00096E9BB279395F695879577956795B7957B -:1041C000F111F8CFFAF4BB0F11F460FF1BC06F5F61 -:1041D0007F4F8F4F9F4F16C0882311F096E911C073 -:1041E000772321F09EE8872F762F05C0662371F094 -:1041F00096E8862F70E060E02AF09A95660F771FA8 -:10420000881FDAF7880F9695879597F9089557FDD7 -:104210009058440F551F59F05F3F71F04795880F34 -:1042200097FB991F61F09F3F79F0879508951216CB -:1042300013061406551FF2CF4695F1DF08C0161677 -:1042400017061806991FF1CF869571056105089428 -:104250000895E894BB2766277727CB0197F908953F -:104260000BD078C069D028F06ED018F0952309F0F3 -:104270005AC05FC01124EECFCADFA0F3959FD1F3DF -:10428000950F50E0551F629FF001729FBB27F00D04 -:10429000B11D639FAA27F00DB11DAA1F649F662759 -:1042A000B00DA11D661F829F2227B00DA11D621FA8 -:1042B000739FB00DA11D621F839FA00D611D221F62 -:1042C000749F3327A00D611D231F849F600D211D46 -:1042D000822F762F6A2F11249F5750408AF0E1F0E9 -:1042E00088234AF0EE0FFF1FBB1F661F771F881F32 -:1042F00091505040A9F79E3F510570F014C0AACFCD -:104300005F3FECF3983EDCF3869577956795B7951C -:10431000F795E7959F5FC1F7FE2B880F911D969546 -:10432000879597F9089597F99F6780E870E060E0B6 -:1043300008959FEF80EC089500240A94161617063E -:1043400018060906089500240A9412161306140686 -:1043500005060895092E0394000C11F4882352F0E9 -:10436000BB0F40F4BF2B11F460FF04C06F5F7F4FA1 -:104370008F4F9F4F089597FB072E16F4009407D098 -:1043800077FD09D00E94D52107FC05D03EF4909519 -:1043900081959F4F0895709561957F4F0895EE0F19 -:1043A000FF1F0590F491E02D0994AA1BBB1B51E15E -:1043B00007C0AA1FBB1FA617B70710F0A61BB70B95 -:1043C000881F991F5A95A9F780959095BC01CD013A -:1043D0000895F999FECF92BD81BDF89A992780B5CD -:1043E0000895A8E1B0E042E050E00C941122262F9D -:1043F000F999FECF92BD81BDF89A019700B40216DB -:1044000039F01FBA20BD0FB6F894FA9AF99A0FBE88 -:1044100008950196272F0E94F8210C94F721DC01C2 -:10442000CB01FC01F999FECF06C0F2BDE1BDF89ABF -:10443000319600B40D9241505040B8F70895F89469 -:02444000FFCFAC -:104442000220A50833091009DC08A8080101C801E7 -:1044520028080A03140A404D36392103D4029E0269 -:104462006502F80111022A02430201020304050651 -:04447200070809002E -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/compiled.hex b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/compiled.hex deleted file mode 100644 index 59b9fa1d1..000000000 --- a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/compiled.hex +++ /dev/null @@ -1,1169 +0,0 @@ -:100000000C94D0020C9414030C9414030C94140359 -:100010000C9414030C9414030C9414030C94140304 -:100020000C9414030C9414030C94BC0D0C948E0EBD -:100030000C9414030C9414030C9414030C941403E4 -:100040000C9414030C9498220C9414030C94140331 -:100050000C9414030C942B1C0C9414030C94140394 -:100060000C9414030C9414030C9414030C941403B4 -:100070000C9414030C9414030C9414030C941403A4 -:100080000C9414030C9414030C9414030C94140394 -:100090000C9414030C9414030C9414030C94140384 -:1000A0000C9414030C9414030C941403FB0E1D0FF6 -:1000B0000B101D0F0B10620F850F0B10DA0FED0FD9 -:1000C000BC12BC12EB12EB12211341137214721406 -:1000D0004C137214FC13FC136314721472146C141A -:1000E0000914091409140914091409140914091428 -:1000F0000914091409140914091409140914091418 -:100100001B1428142F14361440140000F0A1F0A280 -:10011000F0A335002B002971E1003A0000001E0019 -:10012000140004001D003B00C1001F001A0016004F -:100130001B003C0029712000070008000600E200B7 -:100140002A002100090017001900E300A90022007D -:100150000E000A0005000000AA0069000254000019 -:100160002F000000A8006A003100000030000000ED -:10017000AE0023000D001C0013000000AB002400A3 -:10018000180011001000E700AC00250015000C005D -:100190003600E6002C0026000F00120037003D005C -:1001A0003400270033000B0038003E00C3002E004F -:1001B0002D002800E5003F000000010001000100C3 -:1001C00001000100000001001E001E0201000100EC -:1001D000010001001F001F020100010001000100D9 -:1001E0002000200201000100010001002100210285 -:1001F00001000100010001002200220201000000B4 -:1002000001000100010000000100000001000100E8 -:100210000100000001000000010001002300230292 -:10022000010000000100010024002402010001007F -:10023000010001002500250201000100010001006C -:10024000260026020100010001000100270027020C -:100250000100010001000100010001000100010096 -:10026000000000000000000000000100000000008D -:100270001E00140004000100000000001F001A000E -:10028000160001001900000020000800070000000F -:100290000600000021001500090000000100000018 -:1002A000220017000A000000010001000100000008 -:1002B000000000000100010000000000000000003C -:1002C0000100000023001C000B00000001000000E2 -:1002D000240018000D0000000100000025000C00A3 -:1002E0000E00000010000000260012000F000000A9 -:1002F0001100000027001300330000000000000080 -:1003000000002F0034000000000001000100010087 -:1003100001000100000001000100010001000100D6 -:10032000010001000100F2000100010001000100D4 -:100330000100F00001000100010001000100F100D6 -:10034000F4000100010001000100F300F5000000CD -:100350000100010001000000010000000100010097 -:100360000100000001000000010001000100500038 -:100370000100000001000100010051000100010026 -:100380000100010001005200010001000100010014 -:1003900001004F0001000100010001000100010007 -:1003A0000100010001000100010001000100010045 -:1003B000000016034500720067006F0044006F00E4 -:1003C0007800200045005A00000016034500720026 -:1003D00067006F0044006F007800200045005A005D -:1003E00000000403090409026D00040100A0FA09D9 -:1003F0000400000103010100092111010001223F55 -:10040000000705810308000A090401000103010235 -:1004100000092111010001224D0007058203080097 -:100420000A09040200010300000009211101000172 -:100430002236000705830308000A090403000103AC -:100440000000000921110100012239000705840381 -:100450001000011201100100000008EDFE07130159 -:10046000000102000105010906A101050719E029A3 -:10047000E715002501950875018102050819012974 -:1004800005950575019102950175039101050719FF -:1004900000297715002501957875018102C00501B5 -:1004A0000980A101850216010026B7001A01002A61 -:1004B000B700751095018100C0050C0901A10185E7 -:1004C00003160100269C021A01002A9C0275109551 -:1004D000018100C005010902A1010901A10005096E -:1004E0001901290515002501950575018102950160 -:1004F000750381010501093009311581257F9502B8 -:100500007508810609381581257F950175088106D2 -:10051000050C0A38021581257F950175088106C0F2 -:10052000C005010906A101050719E029E715002505 -:100530000195087501810295017508810105081969 -:100540000129059505750191029501750391010534 -:1005500007190029FF150025FF950675088100C0C1 -:100560000000000000000000000000010204060A74 -:100570000F17202C3A4A5D71879DB3C7DAE9F5FC65 -:10058000FFFCF5E9DAC7B39D87715D4A3A2C201765 -:100590000F0A060402010000000000000000000035 -:1005A00011241FBECFEFDAE0DEBFCDBF04B603FEDD -:1005B00024C08091FB019091FC01A091FD01B091BC -:1005C000FE018730904BA740B04BB9F41092FB016D -:1005D0001092FC011092FD011092FE0114BE84B72E -:1005E000877F84BF88E10FB6F894809360001092F3 -:1005F00060000FBEE0E0FFE3099511E0A0E0B1E08C -:10060000EEEBF8E402C005900D92A433B107D9F7E0 -:1006100011E0A4E3B1E001C01D92AB3FB107E1F7E7 -:100620000E94000B0C945D240C9400001092B90001 -:100630008AE08093B800089594EA9093BC0090916A -:10064000BC0097FFFCCF9091B900987F983021F0C3 -:10065000903111F081E008958093BB0084E880938D -:10066000BC008091BC0087FFFCCF8091B900887FDF -:10067000883111F0803471F780E0089584E9809327 -:10068000BC008091BC0084FDFCCF08958093BB002A -:1006900084E88093BC008091BC0087FFFCCF9091E0 -:1006A000B900987F81E0983209F480E0089584E8E9 -:1006B0008093BC008091BC0087FFFCCF8091BB0081 -:1006C000089580910101811115C080E40E941C03EE -:1006D0008093010181110CC082E10E944603809346 -:1006E0000101811105C08FEF0E9446038093010133 -:1006F0000E943E0384B1807F84B985B1807F85B933 -:100700008AB1837F8AB98BB1837F8BB93E98469833 -:1007100008950E941C05809301010E94610380B32B -:100720008C7080BB81B3836F81BBA5E3B1E0E3E450 -:10073000F1E08EE08E0F11921D928E13FCCF0C947F -:100740000605BF92CF92DF92EF92FF920F931F9315 -:10075000CF93DF9380910101882379F08091340158 -:100760008F5F80933401811108C00E941C05809323 -:100770000101811102C00E94AE0405E311E0C0E056 -:10078000D0E0DD24D39482E0C82EEE24E394F12C53 -:10079000C730D10500F580910101811164C080E46A -:1007A0000E941C0380930101811112C082E10E940A -:1007B00046038093010181110BC0C7010C2E01C0BB -:1007C000880F0A94EAF780950E94460380930101FE -:1007D0000E943E0348C0CA30A1F028F4C83059F046 -:1007E000C93061F005C0CC3089F070F0CD3089F0AF -:1007F000209A289810C0219A29980DC0229A2A98E8 -:100800000AC0239A2B9807C0529A01C0539A5B984A -:1008100002C03E9A469890EA9A95F1F79FB179996D -:1008200002C082E001C080E091709D25982B7C99E8 -:1008300002C084E001C080E0892B7D9902C038E0CD -:1008400001C030E0832B7E9902C020E101C020E08E -:10085000822B9FB19095991F9927991F9295990F77 -:10086000907E892B0FC080910101811149C080E4E5 -:100870000E941C0380930101882379F1B12C0E940E -:100880003E038B2DF8019081981719F08083C09258 -:1008900000010E94610321960F5F1F4FCE30D105EA -:1008A00009F076CF80910001882361F18150809317 -:1008B0000001882339F08FE99FE00197F1F700C02C -:1008C000000020C0A3E4B1E0E5E3F1E0CF01825FE6 -:1008D00091919D938E13FCCF15C083E10E94460336 -:1008E000809301018111CACF81E40E941C0380938F -:1008F00001018111C3CF0E945703B82EB094BFCF1E -:1009000080E0C0CF0E94AC0481E0DF91CF911F91C5 -:100910000F91FF90EF90DF90CF90BF900895E82F58 -:10092000F0E0ED5BFE4F8081089508950F931F93D3 -:10093000CF93DF93C3E4D1E010E00C2F025F8991E5 -:1009400090E00E94511B180F0C13F9CF812FDF91FB -:10095000CF911F910F9108950C947C0556985E9845 -:1009600025982D9826982E9827982F988FEF90E00D -:10097000909389008093880090938B0080938A00E5 -:1009800090938D0080938C00259A2D9A2FEF80E70D -:1009900092E0215080409040E1F700C00000269A8C -:1009A0002E9A2FEF80E792E0215080409040E1F7AF -:1009B00000C00000279A2F9A2FEF80E792E0215085 -:1009C00080409040E1F700C0000025982D982FEF5F -:1009D00080E792E0215080409040E1F700C00000A5 -:1009E00026982E982FEF80E792E02150804090408B -:1009F000E1F700C0000027982F9856985E98259838 -:100A00002D9826982E9827982F98089589EA8093F4 -:100A1000800089E08093810024982C983F988AB1C7 -:100A20008F748AB96E98479A8BB1806B8BB9769A1E -:100A30000E94AE040C947B0580E2809301018091BA -:100A4000510181110EC00E94160381E08093510173 -:100A50002FEF83ED90E3215080409040E1F700C0FC -:100A6000000080E40E941C038093010181112EC0CC -:100A70000E94460380930101811128C00E94460311 -:100A800080930101811122C08FE30E94460380936D -:100A9000010181111BC00E943E0380E40E941C03DF -:100AA00080930101811112C08CE00E944603809363 -:100AB000010181110BC00E94460380930101811145 -:100AC00005C08FE30E944603809301010E943E030C -:100AD00080910101089561110BC0FC01828188237E -:100AE00021F085EE0E94601103C085EE0E9428125D -:100AF00080E090E0089508956091BD017091BE017D -:100B00008091BF019091C0010E945D1B56985E9834 -:100B100025982D9826982E9827982F98823039F06E -:100B2000833041F0813041F4259A2D9A0895269A18 -:100B30002E9A0895279A2F9A089581E0089581E0CA -:100B400008950C949F0508950F931F93CF93DF93FF -:100B50008C01FC01C081D181CE010E94D619BE0159 -:100B60000E944D06EC01B8010E94A105882309F4FA -:100B70008DC0F8018281882309F44AC080915D010B -:100B800081111FC0C431F0E5DF0709F051C00E9498 -:100B9000A30581E080935D010E94F51B90935C01A9 -:100BA00080935B01109254011092560110925501EE -:100BB000109258011092570110925A011092590147 -:100BC00065C080915B0190915C010E94011C883C92 -:100BD000910570F480915401E82FF0E0EE0FFF1FB3 -:100BE000EB5AFE4FD183C0838F5F809354014EC078 -:100BF000C43880E5D80721F0C538D04501F13AC0A6 -:100C0000F8018281882341F01092520182E01EC0D7 -:100C1000C438E0E5DE0759F580915201811106C024 -:100C200086E20E94601186E20E94281282E01CC0C7 -:100C3000C438F0E5DF0741F3C538D045D9F4F801F1 -:100C40008281882331F01092530180E20E94771252 -:100C50001DC080915301811106C087E20E9460117E -:100C600087E20E94281280E20E947E120FC0C538DF -:100C7000D04529F381E08093520180935301C8014C -:100C8000DF91CF911F910F910C949D0580E0DF9132 -:100C9000CF911F910F910895089596E0799FF001EB -:100CA000112494E5899FE00DF11D1124E60FF11D3B -:100CB000EE0FFF1FEE5EFE4F859194910895880F11 -:100CC000991FFC01E657F040859194910895880F93 -:100CD000991FFC01E65FFE4F8591949108950F9353 -:100CE0001F93CF93DF93EC01811520E3920750F51A -:100CF000C11580E2D80708F0C3C0CB3BD10590F402 -:100D0000C83AD10508F06AC0C53AD10508F05BC001 -:100D1000C430D10508F0D0C1219709F0CAC101E063 -:100D200010E00AC2CF3FD10511F008F0C5C1C03FA5 -:100D3000D10508F0A2C0CE01805E9109089708F4A1 -:100D4000BBC1B7C1C13090E5D90709F4A2C020F5F5 -:100D5000C0318FE4D80770F4C11590E4D90708F0CA -:100D600094C0C11521E3D20708F0A3C1DD278E018D -:100D7000106CE2C1C115D04509F09BC10E94DD1481 -:100D80008FEF94E32CE0815090402040E1F700C0C9 -:100D900000000E94501CD0C1C11597E5D90758F436 -:100DA000C03121E5D20708F01CC1C43180E5D80765 -:100DB00008F475C07EC1CE0190578115904108F0AE -:100DC00078C1DF7073C1C53AD10509F477C1C63A5D -:100DD000D10509F076C102E810E4AEC1C83AD105E8 -:100DE00009F472C1C93AD10509F471C1CA3AD105F1 -:100DF00009F470C1CB3AD10509F46FC1CC3AD105E1 -:100E000009F46EC1CD3AD10509F46DC1C03BD105DD -:100E100009F46CC1CE3AD10509F46BC1CF3AD105C2 -:100E200009F46AC1C13BD10509F469C1C23BD105CE -:100E300009F468C1C33BD10509F467C1C43BD105BE -:100E400009F466C1C53BD10509F465C1C63BD105AE -:100E500009F464C1C73BD10509F463C1C83BD1059E -:100E600009F462C1C93BD10509F461C1CA3BD1058E -:100E700009F460C100E014E45FC18E0110655CC13B -:100E8000CE019F700E94670658C1DF708E01106A04 -:100E900053C18091DA0181608093DA014DC10E94D3 -:100EA000F51D811102C00E94DB1D0E94121E90E000 -:100EB0009093FB018093FA01C23080E5D80721F4BA -:100EC0008091FA01816086C0C43090E5D90721F491 -:100ED0008091FA0182607EC0C63020E5D20721F4FD -:100EE0008091FA01846076C0C83080E5D80719F493 -:100EF0008091FA0127C0CA3090E5D90721F480918A -:100F0000FA01806167C0CC3020E5D20721F48091DE -:100F1000FA0180625FC0CE3080E5D80721F480916D -:100F2000FA01806457C0C03190E5D90721F480915F -:100F3000FA0180684FC0C23120E5D20729F48091C0 -:100F4000FA018460886046C0C33080E5D80721F488 -:100F50008091FA018E7F3EC0C53090E5D90721F41B -:100F60008091FA018D7F36C0C73020E5D20721F489 -:100F70008091FA018B7F2EC0C93080E5D80719F423 -:100F80008091FA0126C0CB3090E5D90721F48091F9 -:100F9000FA018F7E1FC0CD3020E5D20721F4809169 -:100FA000FA018F7D17C0CF3080E5D80721F48091FA -:100FB000FA018F7B0FC0C13190E5D90721F48091F0 -:100FC000FA018F7707C0C331D04531F48091FA011F -:100FD0008B7F877F8093FA018091FA010E94161E11 -:100FE000ABC08D2F99278F70992781309105D9F447 -:100FF0009E012370332702C0880F991F2A95E2F7BC -:101000009C688E0144E0000F111F4A95E1F700270C -:101010001370802B912B53E0CC0FDD1F5A95E1F715 -:10102000C076DD272FC08230910531F4DC2FCC272C -:101030008E01016F106A80C08330910569F4CE0182 -:101040008370992701E010E002C0000F111F8A95FC -:10105000E2F7C8019C680FC084309105B9F4CE0155 -:101060008370992701E010E002C0000F111F8A95DC -:10107000E2F7C8019A6823E0CC0FDD1F2A95E1F75B -:10108000C07ED7708C010C2B1D2B56C0853091056E -:1010900031F4DC2FCC278E01046F106A4DC0069707 -:1010A00009F04AC0CF71DD27DC2FCC278E011062FA -:1010B00043C000E010E040C08E013EC001E810E4F3 -:1010C0003BC003E810E438C002EE14E435C009EE7A -:1010D00014E432C00AEE14E42FC005EB14E42CC073 -:1010E00006EB14E429C007EB14E426C00CEC14E46E -:1010F00023C00DEC14E420C003E815E41DC00AE889 -:1011000015E41AC002E915E417C004E915E414C097 -:1011100001E216E411C003E216E40EC004E216E494 -:101120000BC005E216E408C006E216E405C007E2BB -:1011300016E402C00AE216E4C801DF91CF911F91C4 -:101140000F91089596E0799FF001112494E5899F0D -:10115000E00DF11D1124E60FF11DEE0FFF1FEE5EF5 -:10116000FE4F85919491803E9105E0F4803C91057D -:1011700058F58133910509F46FC048F4893291051F -:1011800009F463C08A32910509F46DC072C08933D5 -:101190009105E9F082389105D1F08533910509F484 -:1011A0004DC067C0833E910581F138F4803E9105C2 -:1011B000B9F0823E9105D9F05CC0863E910561F19F -:1011C000873E9105A1F155C00E945F0608952091C8 -:1011D000FA0120FD02C021FF4CC080EE90E049C022 -:1011E0008091FA0180FFF9CF89E390E042C08091BD -:1011F000FA0182FF0EC08091FA0184FF03C080E0F3 -:1012000090E037C083EE90E034C08091FA0182FF15 -:10121000F2CF82EE90E02DC08091FA0183FF0BC0E7 -:101220008091FA0184FDEBCF87EE90E022C080919F -:10123000FA0183FFF5CF86EE90E01BC08091FA01A2 -:1012400085FF07C089E290E014C08091FA0185FF14 -:10125000F9CF85E390E00DC08091FA0186FF07C0C9 -:101260008AE290E006C08091FA0186FFF9CF81E31F -:1012700090E00E946F06089508950C943C098091B7 -:101280006E010895CF93DF9300D01F92CDB7DEB7E4 -:101290009C018091F101843019F593E099833B839F -:1012A0002A839093E9008FEF9091E800815095FD9B -:1012B00006C095ED9A95F1F700008111F5CF809168 -:1012C000E80085FF0DC040E050E063E070E0CE0133 -:1012D00001960E94AC0B8091E8008E778093E80025 -:1012E0000F900F900F90DF91CF910895CF93DF93E0 -:1012F00000D01F92CDB7DEB72091F101243021F547 -:1013000022E029839B838A8383E08093E9008FEF27 -:101310009091E800815095FD06C095ED9A95F1F702 -:1013200000008111F5CF8091E80085FF0DC040E0FD -:1013300050E063E070E0CE0101960E94AC0B80911A -:10134000E8008E778093E8000F900F900F90DF9168 -:10135000CF9108952091F1012430F1F422E02093FF -:10136000E9002FEF3091E800215035FD06C035ED42 -:101370003A95F1F700002111F5CF2091E80025FF03 -:101380000BC040E050E065E070E00E94AC0B809143 -:10139000E8008E778093E8000895CF93DF93EC0107 -:1013A0009091F101943009F046C080910C0188239E -:1013B000D9F080910D018823B9F09093E9008FEF67 -:1013C0009091E800815095FD06C095E19A95F1F75E -:1013D00000008111F5CF8091E80085FF2CC040E02E -:1013E00050E060E170E017C081E08093E9008FEF8A -:1013F0009091E800815095FD06C095ED9A95F1F722 -:1014000000008111F5CF8091E80085FF14C040E015 -:1014100050E068E070E0CE010E94AC0B8091E800E3 -:101420008E778093E80080E1FE01AEE5B1E00190A7 -:101430000D928A95E1F7DF91CF9108958091F001A7 -:10144000811109C00E94410D0E949E0D8091E20011 -:1014500084608093E20008951092F0010895089549 -:101460000C9485220E94E61B0E948B220E9444104D -:101470000C943D0942E061EC81E00E94BB0C42E02B -:1014800061EC82E00E94BB0C42E061EC83E00E94D0 -:10149000BB0C42E161EC84E00C94BB0C8091F30145 -:1014A000833009F455C030F4813071F0823009F492 -:1014B0008EC008958A3009F47AC08B3009F460C078 -:1014C000893009F09CC020C08091F201813A09F076 -:1014D00096C08091E800877F8093E8008091F601B4 -:1014E0009091F701892B21F460E18EE591E003C032 -:1014F00060E080E090E070E00E94F70B8091E800EF -:101500008B778093E80008958091F201813209F091 -:1015100076C08091F6019091F701009719F003973A -:1015200009F06DC08091E800877F8093E80080918A -:10153000E80082FD05C08091F1018111F8CF5FC004 -:101540008091F10080936E018091E8008B7753C009 -:101550008091F201813A09F052C08091F601909198 -:10156000F701892B09F04BC08091E800877F8093B9 -:10157000E8008091E80080FFFCCF80910C0136C02C -:101580008091F2018132D9F58091F6019091F701B5 -:10159000892BA9F58091E800877F8093E8000E945D -:1015A000F00C8091F40180930C010C94DD14809177 -:1015B000F201813221F58091E800877F8093E80075 -:1015C0000E94F00C8091F50180936F010895809145 -:1015D000F201813AA1F48091E800877F8093E800CE -:1015E0008091E80080FFFCCF80916F018093F10033 -:1015F0008091E8008E778093E8000C94F00C0895B9 -:1016000084B7877F84BF88E10FB6F8948093600029 -:10161000109260000FBE90E080E80FB6F8948093BF -:101620006100909361000FBE0E9493100E94410DD3 -:101630000E949E0D8091E20084608093E200789485 -:101640000E9424100E94951082E091E00E943F10B9 -:101650000E9473228091F101853069F40E94AD1BD4 -:101660008091EF018823B1F30E94D81B882391F366 -:101670000E94960BEFCF0E949B10ECCF292F3327AF -:1016800023303105C9F064F42130310581F0223076 -:10169000310509F043C08DE690E026EE33E042C00C -:1016A00021323105F1F02232310541F137C082E1BA -:1016B00090E023E534E036C099278130910541F070 -:1016C0008230910541F0892B49F5E2EEF3E005C047 -:1016D000EAECF3E002C0E2EBF3E0849190E09F01DA -:1016E00021C06430D8F4E62FF0E0EE0FFF1FEE5D6E -:1016F000FE4F2081318189E090E014C0643070F4A5 -:1017000070E0FB01EE0FFF1FE65EFE4F208131818E -:10171000FB01EA5EFE4F808190E004C080E090E033 -:1017200020E030E0FA0131832083089580E189BD13 -:1017300082E189BD09B400FEFDCF8091D8008F7D84 -:101740008093D8008091E00082608093E0008091D7 -:10175000E00081FDFCCF0895CF92DF92EF92FF92DF -:101760000F931F93CF93DF93EC018B016A010E94CB -:101770000F0D811133C0C114D10439F0F6018081FD -:101780009181081B190BC80FD91FE12CF12C0115F1 -:10179000110519F18091E80085FD16C08091E800DF -:1017A0008E778093E800C114D10449F0F60180815E -:1017B0009181E80EF91EF182E08285E00FC00E945F -:1017C0000F0D882321F30AC089918093F100015005 -:1017D0001109FFEFEF1AFF0ADACF80E0DF91CF9116 -:1017E0001F910F91FF90EF90DF90CF90089520917F -:1017F000F8013091F9012617370748F06115710596 -:1018000039F42091E8002E772093E80001C0B90157 -:1018100040E061157105A9F12091F101222309F43D -:1018200043C0253009F442C02091E80023FD40C0A8 -:101830002091E80022FD32C02091E80020FFE9CF8E -:101840004091F3002091F20030E0342BFC01CF01F5 -:101850006115710559F02830310540F4819180936C -:10186000F100615071092F5F3F4FF1CF41E0283007 -:10187000310509F040E02091E8002E772093E80040 -:10188000C8CF4111C9CF0AC08091F101882361F00E -:10189000853061F08091E80083FD0AC08091E80006 -:1018A00082FFF2CF80E0089582E0089583E00895FA -:1018B00081E008952091F8013091F901261737074A -:1018C00048F06115710539F42091E8002E772093D6 -:1018D000E80001C0B901FC0120E06115710591F13A -:1018E0008091F101882309F440C0853009F43FC09C -:1018F0008091E80083FD3DC08091E80082FD2FC00B -:101900008091E80080FFE9CF2091F3008091F20000 -:1019100090E0922B6115710559F08830910540F4E3 -:1019200024912093F1003196615071090196F2CF14 -:1019300021E0089709F020E08091E8008E778093FD -:10194000E800CBCF2111CCCF0AC08091F1018823D0 -:1019500061F0853061F08091E80083FD0AC08091DC -:10196000E80082FFF2CF80E0089582E0089583E0EE -:10197000089581E00895982F973058F59093E900E5 -:10198000981739F07091EC002091ED005091F00023 -:1019900003C0242F762F50E021FF19C03091EB00B7 -:1019A0003E7F3093EB003091ED003D7F3093ED00B2 -:1019B0003091EB0031603093EB007093EC0020939A -:1019C000ED005093F0002091EE0027FF07C09F5FCD -:1019D000D3CF8F708093E90081E0089580E008956F -:1019E0008091F20187FF11C08091E80082FD05C05F -:1019F0008091F1018111F8CF11C08091E8008B77BF -:101A00000BC08091F101882349F08091E80080FFAC -:101A1000F8CF8091E8008E778093E80008952091B8 -:101A2000E4003091E50095E64091EC00842F817050 -:101A300040FF22C08091E80080FD1CC08091F10130 -:101A4000882391F0853091F08091EB0085FD10C0E6 -:101A50004091E4005091E5004217530729F39A01A1 -:101A6000915011F784E0089582E0089583E008958D -:101A700081E0089580E008954091E80042FFDECFC4 -:101A800008950E94AF0D0E94B70DE0EEF0E0808156 -:101A900081608083E8EDF0E080818F77808319BCDE -:101AA000A7EDB0E08C918E7F8C9380818F7E8083B8 -:101AB0001092F00108950F931F93CF93DF930E942C -:101AC000AF0D0E94B70DC8EDD0E088818F77888375 -:101AD00088818068888388818F7D888319BC109273 -:101AE000F1011092ED011092EF011092EE0100EE63 -:101AF00010E0F80180818B7F8083888181608883FA -:101B000042E060E080E00E94BB0CE1EEF0E080810A -:101B10008E7F8083E2EEF0E080818160808380812F -:101B200088608083F80180818E7F808388818061D6 -:101B30008883DF91CF911F910F910895E8EDF0E038 -:101B400080818F7E8083E7EDF0E0808181608083FB -:101B500084E082BF81E08093F0010C945B0DE8ED9E -:101B6000F0E080818E7F80831092E20008951092D1 -:101B7000DA001092E10008951F920F920FB60F92B3 -:101B800011242F933F934F935F936F937F938F9382 -:101B90009F93AF93BF93EF93FF938091E10082FFF8 -:101BA0000BC08091E20082FF07C08091E1008B7F33 -:101BB0008093E1000E9423108091DA0080FF1FC013 -:101BC0008091D80080FF1BC08091DA008E7F8093C7 -:101BD000DA008091D90080FF0DC080E189BD82E1EB -:101BE00089BD09B400FEFDCF81E08093F1010E9420 -:101BF0001E0A05C019BC1092F1010E942C0A8091A6 -:101C0000E10080FF19C08091E20080FF15C0809143 -:101C1000E2008E7F8093E2008091E20080618093F9 -:101C2000E2008091D80080628093D80019BC85E0E2 -:101C30008093F1010E94300A8091E10084FF30C05E -:101C40008091E20084FF2CC080E189BD82E189BDE2 -:101C500009B400FEFDCF8091D8008F7D8093D8001D -:101C60008091E1008F7E8093E1008091E2008F7E81 -:101C70008093E2008091E20081608093E200809195 -:101C8000ED01882311F084E007C08091E30087FD17 -:101C900002C081E001C083E08093F1010E94320A1A -:101CA0008091E10083FF29C08091E20083FF25C07D -:101CB0008091E100877F8093E10082E08093F101D1 -:101CC0001092ED018091E1008E7F8093E100809180 -:101CD000E2008E7F8093E2008091E2008061809339 -:101CE000E20042E060E080E00E94BB0C8091F000E6 -:101CF00088608093F0000E942F0AFF91EF91BF91BE -:101D0000AF919F918F917F916F915F914F913F9193 -:101D10002F910F900FBE0F901F9018951F920F924A -:101D20000FB60F9211242F933F934F935F936F93AE -:101D30007F938F939F93AF93BF93CF93DF93EF9353 -:101D4000FF93C091E900CF708091EC00D82FD17043 -:101D500080FDD0E81092E9008091F000877F8093A9 -:101D6000F00078940E94D20E1092E9008091F00069 -:101D700088608093F000CD2BCF70C093E900FF9175 -:101D8000EF91DF91CF91BF91AF919F918F917F9113 -:101D90006F915F914F913F912F910F900FBE0F90D8 -:101DA0001F9018951F93CF93DF93CDB7DEB7AA97F7 -:101DB0000FB6F894DEBF0FBECDBFE2EFF1E088E0D2 -:101DC0008E0F9091F10091938E13FBCF0E944E0ADB -:101DD0008091E80083FF1FC18091F2019091F3018F -:101DE000492F50E04A30510508F015C1FA01EA5A6E -:101DF000FF4F0C940D24803881F0823809F00BC11C -:101E00008091F6018F708093E9008091EB0085FB53 -:101E1000882780F91092E90006C08091EE01909128 -:101E2000EF01911182609091E800977F9093E80014 -:101E30008093F1001092F100C8C0282F2D7F09F087 -:101E4000EAC0882319F0823061F0E5C08091F40186 -:101E5000813009F0E0C0933009F080E08093EF0119 -:101E60002BC08091F401811127C08091F6018F7001 -:101E700009F4D1C08093E9002091EB0020FF1CC041 -:101E8000933021F48091EB00806214C09091EB00BC -:101E900090619093EB0021E030E0A90102C0440F73 -:101EA000551F8A95E2F74093EA001092EA0080916C -:101EB000EB0088608093EB001092E9008091E800CD -:101EC000877F86C08111A7C01091F4011F77809190 -:101ED000E3008078812B8093E3008091E800877F86 -:101EE0008093E8000E94F00C8091E80080FFFCCF16 -:101EF0008091E30080688093E300111102C082E0CA -:101F000001C083E08093F10186C08058823008F0E0 -:101F100082C08091F4019091F5018C3D53E09507CA -:101F200079F583E08A838AE289834FB7F894DE01EA -:101F3000139620E03EE051E2E32FF0E0509357008B -:101F4000E49120FF03C0E295EF703F5FEF708E2FAA -:101F500090E0EA3010F0C79601C0C0968D939D9333 -:101F60002F5F243149F74FBF8091E800877F80932E -:101F7000E8006AE270E0CE0101960E94F70B14C0FF -:101F8000AE014F5F5F4F6091F6010E943E0BBC01B6 -:101F9000009709F440C09091E800977F9093E80083 -:101FA00089819A810E945A0C8091E8008B778093F6 -:101FB000E80031C0803879F58091E800877F809310 -:101FC000E8008091ED018093F1008091E8008E7728 -:101FD0008093E8000E94F00C1EC081111CC09091FB -:101FE000F4019230C0F48091E800877F8093E8008C -:101FF0009093ED010E94F00C8091ED01811106C0DB -:102000008091E30087FD02C081E001C084E08093FD -:10201000F1010E943A0A8091E80083FF0AC0809192 -:10202000E800877F8093E8008091EB0080628093D6 -:10203000EB00AA960FB6F894DEBF0FBECDBFDF91BE -:10204000CF911F9108950895CF938091F101882336 -:10205000A1F0C091E900CF709091EC00892F8170C0 -:1020600090FD80E8C82B1092E9008091E80083FD84 -:102070000E94D20ECF70C093E900CF910895909343 -:102080007501809374010895E0917401F0917501D8 -:10209000309721F00190F081E02D099480E00895BF -:1020A000E0917401F0917501309721F00280F38185 -:1020B000E02D09940895E0917401F0917501309735 -:1020C00021F00480F581E02D09940895209172019A -:1020D000309173018217930771F09093730180938D -:1020E0007201E0917401F0917501309721F0068042 -:1020F000F781E02D099408952091700130917101CC -:102100008217930771F09093710180937001E091B1 -:102110007401F0917501309721F00084F185E02D74 -:102120000994089508950C9492100E94EC1B0E944B -:1021300089030C94AE1C9F92AF92BF92CF92DF9214 -:10214000EF92FF920F931F93CF93DF9300D000D0B5 -:1021500000D0CDB7DEB70E94A1030DE010E0AA24A5 -:10216000A394B12C902E802F0E948F04980129589F -:102170003E4F6901F901F080F826A1F401501109E0 -:1021800088F78FEF89838A831B820E94F51B816009 -:10219000782F9D838C8349815A816B818D810E9428 -:1021A00032112FC09091DA0191FF04C08E830E94FA -:1021B00095048E8125E030E0A501022E01C0440F78 -:1021C0000A94EAF7E42E4F21C1F029839A828E21E6 -:1021D00091E009F490E09B830E94F51B8160782FC9 -:1021E0009D838C8349815A816B818D810E9432113C -:1021F000F6018081E826E08204C021503109E0F632 -:10220000BDCF0E94951F109176010E9444101817AF -:10221000B9F00E9444108093760126960FB6F89488 -:10222000DEBF0FBECDBFDF91CF911F910F91FF9009 -:10223000EF90DF90CF90BF90AF909F900C943D09AE -:1022400026960FB6F894DEBF0FBECDBFDF91CF91BB -:102250001F910F91FF90EF90DF90CF90BF90AF90C4 -:102260009F900895CF93DF93CDB7DEB72B970FB62E -:10227000F894DEBF0FBECDBF4F83588769877A873A -:102280008B87DE01119686E0FD0111928A95E9F7B0 -:1022900085E0FE01379601900D928A95E1F749811C -:1022A0005A816B817C818D819E810E947B172B9648 -:1022B0000FB6F894DEBF0FBECDBFDF91CF9108956A -:1022C000CF93882309F4C2C0C82F823859F40E94E2 -:1022D000441081FDBBC089E30E94551A0E94221B55 -:1022E00089E30CC0833879F40E94441080FDAEC0AD -:1022F00083E50E94551A0E94221B83E50E94971ACB -:10230000CF910C94221B843859F40E94441082FD12 -:102310009DC087E40E94551A0E94221B87E4EECFDD -:102320008CEF8C0F813A48F48C2F0E94D8218111B8 -:102330008DC08C2F0E94551AE3CF80E28C0F88301D -:1023400048F4C77081E001C0880FCA95EAF70E947F -:10235000DB1AD6CF8BE58C0F833078F4C53A29F0A1 -:10236000C63A31F083E890E005C081E890E002C011 -:1023700082E890E0CF910C94661088E58C0F833151 -:1023800008F064C0C83A39F1C93A41F1CA3A49F192 -:10239000CB3A51F1CC3A59F1CD3A61F1C03B69F1F8 -:1023A000CE3A71F1CF3A79F1C13B81F1C23B89F16B -:1023B000C33B91F1C43B99F1C53BA1F1C63BA9F1E7 -:1023C000C73BB1F1C83BB9F1C93BC1F1CA3BC9F147 -:1023D00080E090E038C082EE90E035C089EE90E079 -:1023E00032C08AEE90E02FC085EB90E02CC086EBE7 -:1023F00090E029C087EB90E026C08CEC90E023C0F1 -:102400008DEC90E020C083E891E01DC08AE891E067 -:102410001AC082E991E017C084E991E014C081E21A -:1024200092E011C083E292E00EC084E292E00BC021 -:1024300085E292E008C086E292E005C087E292E081 -:1024400002C08AE292E0CF910C947C10CF91089563 -:10245000882309F44BC0823859F40E94441081FF4C -:1024600045C089E30E94551A0E94221B89E30CC0D3 -:10247000833871F40E94441080FF38C083E50E94C5 -:10248000551A0E94221B83E50E94971A0C94221B66 -:10249000843859F40E94441082FF28C087E40E94C7 -:1024A000551A0E94221B87E4EFCF9CEF980F913AB8 -:1024B00058F390E2980F983050F4877091E001C083 -:1024C000990F8A95EAF7892F0E94E11ADFCF9BE5E1 -:1024D000980F933020F480E090E00C946610885AB6 -:1024E000833120F480E090E00C947C1008958823E0 -:1024F00021F00E94DB1A0C94221B0895882321F0FE -:102500000E94E11A0C94221B08957F928F929F9251 -:10251000AF92BF92CF92DF92EF92FF920F931F93F1 -:10252000CF93DF931F92CDB7DEB77C01C62E772EF7 -:10253000FC01058102950F70128111110E94F81A99 -:102540000E944E1A882379F0112369F080E28C0DE5 -:10255000883048F082E00E94371A0E944E1A91E0BB -:10256000D82ED92601C0D12CE72DE295EF70F0E0EE -:10257000E05AFF4F0C940D24872D807F072D0F709C -:10258000882311F00295007F112389F0002309F4BC -:1025900090C180E28C0D883020F4802F0E94DB1ADD -:1025A00003C0802F0E94EB1A0E94221B82C18C2D37 -:1025B0000E942812002309F495C180E28C0D883016 -:1025C00020F4802F0E94E11A03C0802F0E94F11A8C -:1025D0000E94221B87C1972D907F872D8F7090328C -:1025E00011F08295807FCC2021F0F1E0CF16B1F080 -:1025F0001EC0112349F0002309F414C1013009F071 -:1026000011C10E940B1B6EC1002319F0013009F4A7 -:1026100069C189830E940E1B89810AC1112321F09F -:10262000023008F05FC1FEC001115CC101C111237D -:1026300021F0002309F4F6C03CC1002309F4F8C0DE -:102640003EC1872D86958695837090E0009719F09E -:10265000019761F047C1112321F08C2D972D9370C4 -:1026600002C080E090E00E9466103CC1112321F07E -:102670008C2D972D937002C080E090E00E947C101A -:1026800031C18C2D112319F00E949D1E02C00E94A1 -:10269000051F0E948A1F26C1872D837009F052C032 -:1026A000111120C18C2D829586958770880F880F17 -:1026B0009C2D9F70892E912CA12CB12C082E04C02A -:1026C000880C991CAA1CBB1C0A94D2F7C4FE14C027 -:1026D0000FE010E020E030E0B901A80104C0440F91 -:1026E000551F661F771F8A95D2F7CB01BA016095F7 -:1026F00070958095909503C060E070E0CB01272D28 -:1027000026952695237030E02230310569F023307C -:10271000310589F0682979298A299B2921303105D9 -:1027200071F00E94C318DEC0682979298A299B2983 -:102730000E94DF18D7C00E94C318C501B4010E94CF -:10274000A718D0C0112319F0872D817001C086957C -:10275000882309F4C7C08C2D829586958770880FD1 -:10276000880F9C2D9F70892E912CA12CB12C082EA6 -:1027700004C0880C991CAA1CBB1C0A94D2F7C4FE86 -:1027800014C00FE010E020E030E0B901A80104C05F -:10279000440F551F661F771F8A95D2F7CB01BA01E8 -:1027A000609570958095909503C060E070E0CB01D6 -:1027B000272D269526952370422F50E04230510553 -:1027C00069F04330510589F0682979298A299B29C4 -:1027D0004130510571F00E949D1984C06829792902 -:1027E0008A299B290E94B9197DC00E949D19C501A3 -:1027F000B4010E94811976C08C2D90E0FC01E05E4E -:10280000F109E531F10508F050C0E059FF4F0C9493 -:102810000D240C2D0F70872D8F71112331F00E9424 -:102820001A19802F0E9477125DC00E943B19802FD9 -:102830000E947E1257C0112339F0011153C0872D19 -:102840008F710E9460194EC0023008F04BC0F7CF64 -:10285000112339F0872D8F710E941A1943C011235B -:10286000C9F3872D8F710E943B193CC0112329F0B9 -:10287000872D8F710E94051935C00E94FB1832C048 -:10288000112351F0172D1F71812F0E941A1963E037 -:10289000812F0E942E1A26C081E00E94371A023032 -:1028A00008F182E00E94371A1DC0112331F0002385 -:1028B00089F28C2D0E94601115C0002391F28C2D9D -:1028C0000E9428120FC0472D4F706C2DC7010E9427 -:1028D0006B050E941F1806C0472D4F706C2DC70155 -:1028E0000E944C06DD20F9F00E942A1A80FD1BC0D0 -:1028F000F70112820E94241A0E941A19C7010E942D -:10290000A2140E94241A0F90DF91CF911F910F9172 -:10291000FF90EF90DF90CF90BF90AF909F908F90FF -:102920007F900C943B190F90DF91CF911F910F91E5 -:10293000FF90EF90DF90CF90BF90AF909F908F90DF -:102940007F9008950F931F93CF93DF93EC018881BD -:1029500099812B813C81232BB9F09F3F11F48F3F4C -:1029600099F0CE010E94A405882371F068817981D5 -:102970008A810E94201A8C010E94D5190E949C18FD -:10298000B801CE010E948512DF91CF911F910F9166 -:1029900008950E94F81A0E94081B0E94CD1A0E94F6 -:1029A000221B0E943B200E948A1F80E090E00E9430 -:1029B000661080E090E00C947C100E94E81A0C9461 -:1029C000C9140E94151A292F22952F7030E02C303F -:1029D00031054CF42A3031056CF422503109223093 -:1029E0003105A8F407C02C30310569F02F303105CE -:1029F00051F00DC0803F69F018F4803E40F409C0EA -:102A0000843F29F406C093FB882780F9089580E06D -:102A1000089581E00895CF93DF9300D000D01F92F6 -:102A2000CDB7DEB70F900F900F900F900F90DF9102 -:102A3000CF910895CF93DF9300D000D000D0CDB7D1 -:102A4000DEB726960FB6F894DEBF0FBECDBFDF917E -:102A5000CF9108951F93CF93DF93C091850116E026 -:102A600080918601C81799F0D0E01C9FF0011D9F4E -:102A7000F00D1124E957FE4F40815181628173812D -:102A8000848195810E941A152196C770E9CFDF9144 -:102A9000CF911F9108954091B7015091B801609175 -:102AA000B9017091BA018091BB019091BC010C9465 -:102AB0001A158091BC0182958F7009F054C08091E5 -:102AC000B901882309F44FC080918501A091860146 -:102AD0006091B7017091B8014091BA015091BB016A -:102AE000B6E08A1709F43FC090E041155105C1F1E5 -:102AF0007F3F11F46F3FA1F1B89FF001B99FF00D36 -:102B00001124E957FE4F218172132AC020816213DC -:102B100027C02281211124C0238134812417350745 -:102B200010F421503109241B350B283C3105C0F429 -:102B30002091BC012F7020612093BC0126E0289FCA -:102B4000F001299FF00D1124E457FE4F80818F7012 -:102B50008061808387EB91E00E94A2140C942A1577 -:102B600001968770BECF0895CF92DF92EF92FF92C9 -:102B70000F931F93CF93DF93CDB7DEB762970FB656 -:102B8000F894DEBF0FBECDBF8C0185E0F801DE01F9 -:102B90001D9601900D928A95E1F7D8014C911196FE -:102BA0005C91119712966C9112971396CD90DC90D0 -:102BB00014973091B7017091B8018091BA0190914A -:102BC000BB01009709F46BC17F3F19F43F3F09F443 -:102BD00066C1E090B901EE2009F4C0C02091BC01AB -:102BE000C816D90628F0F601E81BF90BCF0104C07E -:102BF000809590958C0D9D1DFF24F394883C910544 -:102C000078F0F12C207F09F0C6C07C2DD98AC88AC3 -:102C100089890E940B1587EB91E00E94A214B1C034 -:102C2000822F807F09F046C0751314C0341312C080 -:102C3000611110C02F7020612093BC010E944B15C0 -:102C400087EB91E00E94A2148091BC01D8011596F7 -:102C50008C932EC0CD2819F15F3F11F44F3FF9F04E -:102C6000F62E61111CC0809185012091860136E00D -:102C7000821709F45AC090E0389FF001399FF00D97 -:102C80001124E957FE4F7181571306C07081471315 -:102C900003C07281711103C001968770E9CFF62ECF -:102CA000662309F418C18091BC0181608093BC0146 -:102CB000F12C11C1751308C0341306C0611104C092 -:102CC0008091BC01D801C3C04D875E878D859E85EC -:102CD0006A8B0E94E1146A898823E1F16623D1F1AD -:102CE0002091BC01822F82958F7090E0029774F042 -:102CF0008091B7019091B80198878F831986DB8600 -:102D0000CA862C87CE0107960E94A21486E0F8019D -:102D1000A7EBB1E001900D928A95E1F70E94591559 -:102D20000E944B15FF24F394D6C04D875E878D8596 -:102D30009E850E94151A292F22952F7030E022308F -:102D400031050CF0BCC09F7009F0B6C0805E8830C1 -:102D500008F4C1C0C8010E94A214E4CFC816D90665 -:102D600008F453C0F601E81BF90BCF01883C91052C -:102D700008F450C0F12C7C2DD98AC88A89890E9418 -:102D80000B15E7EBF1E086E0DF011D928A95E9F78C -:102D90000E944B15A0C0751314C0341312C06111EA -:102DA00010C08091BC01F8018583C8010E94A21463 -:102DB00086E0E7EBF1E0DF011D928A95E9F7FE2C52 -:102DC0008AC04D875E878D859E856A8B0E94E1143F -:102DD0006A89882309F4BECF662309F4BBCF20910A -:102DE000BC01822F82958F7090E002970CF48ECFF9 -:102DF0008091B7019091B8019A8389831B82DD820B -:102E0000CC822E83CE0101967FCF809590958C0D3C -:102E10009D1DACCFF62E662309F49CCF75132EC0F2 -:102E200034132CC02091BC0120FD1FC0822F82953D -:102E30008F70D9F0D80115962C9315978F3049F0E3 -:102E40008F5F982F9295907F822F8F70892B159688 -:102E50008C93C8010E94A21486E0F801A7EBB1E0B0 -:102E600001900D928A95E1F793CF86E0F801A7EBE8 -:102E7000B1E001900D928A95E1F72DC04D875E87F4 -:102E80008D859E850E94E114811140CF8091BC0107 -:102E900081608093BC01C8010E94A2141CC06623FB -:102EA00009F458CF4D875E878D859E850E94E11479 -:102EB000882309F44FCF2ACF811148CF0CC024308A -:102EC00031050CF047CF9F7009F440CFF801958190 -:102ED000907F09F03BCF8F2D62960FB6F894DEBF3E -:102EE0000FBECDBFDF91CF911F910F91FF90EF905B -:102EF000DF90CF9008951F93CF93DF93CDB7DEB7C8 -:102F00002C970FB6F894DEBF0FBECDBF4F83588706 -:102F100069877A878B879C87CE0107960E94B415B4 -:102F2000882369F08F8198852A853B85232BF1F1D1 -:102F30009F3F09F063C08F3F09F060C037C086E053 -:102F4000FE013796DE01119601900D928A95E1F708 -:102F50006F817885EA85FB85309741F17F3F11F4D9 -:102F60006F3F21F12091860130E0C9010196877001 -:102F700099274091850150E08417950709F447C0CF -:102F800069837A83FD83EC8396E0929FD001939FBF -:102F9000B00D1124A957BE4FFE01319601900D923C -:102FA0009A95E1F7809386010E942A1516E0809198 -:102FB0008501909186018917C1F1189FC0011124E4 -:102FC00089579E4F0E94B415882379F1E0918501BD -:102FD0001E9FF0011124E957FE4F4081518162810B -:102FE0007381848195810E941A158091850190E0FA -:102FF00001968770992780938501D9CF4F81588595 -:1030000069857A858B859C850E941A15CFCF0E9491 -:10301000DD141092860110928501E7EBF1E086E065 -:10302000DF011D928A95E9F7C1CF2C960FB6F8946F -:10303000DEBF0FBECDBFDF91CF911F910895EF92FC -:10304000FF920F931F93CF93DF938C01009709F4A6 -:103050006CC0F12CEE24E394E8012196F8018491F0 -:10306000843740F4843008F051C0813081F08230E0 -:1030700019F15BC0853709F444C0A8F19CE7980FAB -:10308000903708F052C08F770E94281241C00E5F1F -:103090001F4FFE01C49180E28C0F883048F4C77046 -:1030A0008E2D01C0880FCA95EAF70E94FB1A14C042 -:1030B0008C2F0E9460112DC00E5F1F4FFE01C49126 -:1030C00080E28C0F883058F4C7708E2D01C0880FB5 -:1030D000CA95EAF70E94011B0E94221B1AC08C2F7E -:1030E0000E94281216C00E5F1F4FFE01C491CC2310 -:1030F00081F08FE99FE00197F1F700C00000C15017 -:10310000F6CF0E5F1F4FFE01F49003C00E946011C6 -:103110008E018F2D882309F49FCFEFE9FFE03197CF -:10312000F1F700C000008150F5CFDF91CF911F91E2 -:103130000F91FF90EF90089508956093C1017093EF -:10314000C2018093C3019093C4010C94C9140F93DE -:103150001F930091C1011091C2012091C3013091D0 -:10316000C401DC01CB01802B912BA22BB32B8093CC -:10317000C1019093C201A093C301B093C4011F91F8 -:103180000F910C94C9140F931F930091C1011091DA -:10319000C2012091C3013091C401DC01CB01802325 -:1031A0009123A223B3238093C1019093C201A093E2 -:1031B000C301B093C4011F910F910C94C9140F93D4 -:1031C0001F930091C1011091C2012091C301309160 -:1031D000C401DC01CB0180279127A227B32780936C -:1031E000C1019093C201A093C301B093C4011F9188 -:1031F0000F910C94C9141092BD011092BE0110924F -:10320000BF011092C0010C94C91441E050E060E08D -:1032100070E004C0440F551F661F771F8A95D2F7D0 -:103220004093BD015093BE016093BF017093C001F4 -:103230000C94C91441E050E060E070E004C0440F19 -:10324000551F661F771F8A95D2F78091BD01909117 -:10325000BE01A091BF01B091C001482B592B6A2B30 -:103260007B2B4093BD015093BE016093BF017093CF -:10327000C0010C94C91441E050E060E070E004C06B -:10328000440F551F661F771F8A95D2F740955095BA -:10329000609570958091BD019091BE01A091BF0194 -:1032A000B091C001482359236A237B234093BD0179 -:1032B0005093BE016093BF017093C0010C94C91478 -:1032C00041E050E060E070E004C0440F551F661F0D -:1032D000771F8A95D2F78091BD019091BE01A09190 -:1032E000BF01B091C001482759276A277B27409327 -:1032F000BD015093BE016093BF017093C0010C9457 -:10330000C9140F931F930091BD011091BE0120912C -:10331000BF013091C001DC01CB01802B912BA22B8E -:10332000B32B8093BD019093BE01A093BF01B093D6 -:10333000C0011F910F910C94C9140F931F9300911A -:10334000BD011091BE012091BF013091C001DC018F -:10335000CB0180239123A223B3238093BD019093BB -:10336000BE01A093BF01B093C0011F910F910C94B7 -:10337000C9140F931F930091BD011091BE012091BC -:10338000BF013091C001DC01CB0180279127A2272A -:10339000B3278093BD019093BE01A093BF01B0936A -:1033A000C0011F910F910C94C9140895CF92DF9220 -:1033B000EF92FF920F931F93CF93DF938C01C090F6 -:1033C000C101D090C201E090C301F090C40180918E -:1033D000BD019091BE01A091BF01B091C001C82A6A -:1033E000D92AEA2AFB2ACFE1D0E0D701C6010C2E68 -:1033F00004C0B695A795979587950A94D2F780FF54 -:1034000006C0B8018C2F0E94A208019721F42197D1 -:1034100060F780E001C08C2FDF91CF911F910F9159 -:10342000FF90EF90DF90CF900895CF93DF93EC0162 -:103430000E94D619BE010E94A208DF91CF91089583 -:10344000CB010E94151A08958091C5018595859537 -:10345000859508958091C5018770089598E0899FAA -:1034600090011124262B2093C5010C941A19209148 -:10347000C501809582238093C501982F977069F4C8 -:1034800030E0482F552747FD50952417350729F080 -:103490008595859585950C943B1908959091C50166 -:1034A000977081E009F480E0089590910C019923D0 -:1034B00021F090910D01911109C020910E013091E0 -:1034C0000F01F90132969FEF40E01FC0982F9695AB -:1034D000969596959F3050F5E0910E01F0910F0171 -:1034E000E90FF11D877021E030E0A90102C0440F0F -:1034F000551F8A95E2F7CA019181892B818308952E -:103500009F3F39F04F5F4E3041F051915813F8CF43 -:103510000DC05111F7CF942FF5CF9F3F39F0F9012E -:10352000E90FF11D97FDFA95828308950895909112 -:103530000C01992321F090910D01911109C0209166 -:103540000E0130910F01F9013296205F3F4F1FC0ED -:10355000982F9695969596959F30F0F4E0910E01F0 -:10356000F0910F01E90FF11D877021E030E0A90112 -:1035700002C0440F551F8A95E2F7CA0180959181D8 -:103580008923818308953196E217F30729F090810A -:103590009813F9CF1082F7CF089581E090E0E09181 -:1035A0000E01F0910F01E80FF91F10820196803192 -:1035B0009105A9F708959091D901892B8093D9019C -:1035C000089580959091D90189238093D901089518 -:1035D0001092D90108959091D801892B8093D80138 -:1035E000089580959091D80189238093D8010895FA -:1035F0001092D80108959091D701892B8093D7011B -:10360000089580959091D70189238093D7010895DB -:103610001092D70108958093C60108951092C601B3 -:10362000089580910E0190910F01FC0131969C014B -:10363000205F3F4F80E0919191118F5FE217F30778 -:10364000D1F70895E0910E01F0910F018091D90119 -:103650008083E0910E01F0910F0190818091D8015B -:10366000892B8083E0910E01F0910F019081809170 -:10367000D701892B80838091C601882361F0E09176 -:103680000E01F0910F019081892B80830E94111B04 -:1036900081111092C60180910E0190910F010C943E -:1036A000501020E0009739F0AC01415051098423BB -:1036B00095232F5FF7CF822F0895CF92DF92EF925D -:1036C000FF926C01EE24FF24C114D104E104F10443 -:1036D00021F0C701B60120E101C020E0C72ED82E9D -:1036E000E92EFF24C114D104E104F10419F0285F8C -:1036F000C701B6016B017C0154E0F694E794D794BE -:10370000C7945A95D1F7C114D104E104F10419F01A -:103710002C5FC701B6016B017C0142E0F694E7948F -:10372000D794C7944A95D1F7C114D104E104F104A8 -:1037300019F02E5FC701B601DC01CB01B695A79544 -:1037400097958795892B8A2B8B2B09F02F5F822FDA -:10375000FF90EF90DF90CF9008958091F101843039 -:1037600021F11092DB0120E488E190E00FB6F8949B -:10377000A895809360000FBE2093600080E00E94B7 -:103780003D0983B7817F846083BF83B7816083BF36 -:103790007894889583B78E7F83BF88E10FB6F894BD -:1037A00080936000109260000FBE08950895089500 -:1037B0000E94D61B0E94A1030E94D71B0E94960460 -:1037C00091E0811101C090E0892F08950E94DD14DD -:1037D0000E9444100C943D0982E084BD93E095BDA5 -:1037E0009AEF97BD80936E0008952FB7F89480915B -:1037F000DC019091DD01A091DE01B091DF012FBFCE -:103800000895CF92DF92EF92FF920F931F932FB7FD -:10381000F8944091DC015091DD016091DE017091DE -:10382000DF012FBF6A017B01EE24FF248C0120E021 -:1038300030E0C016D106E206F30610F441505109FB -:103840009A01281B390BC9011F910F91FF90EF902E -:10385000DF90CF9008951F920F920FB60F92112410 -:103860008F939F93AF93BF938091DC019091DD0183 -:10387000A091DE01B091DF010196A11DB11D8093E1 -:10388000DC019093DD01A093DE01B093DF01BF91D5 -:10389000AF919F918F910F900FBE0F901F90189531 -:1038A0000E94410DF8942FEF87EA91E62150804065 -:1038B0009040E1F700C0000087E090EBDC018093CE -:1038C000FB019093FC01A093FD01B093FE019CE0ED -:1038D00088E10FB6F894A895809360000FBE90938E -:1038E0006000FFCFEF92FF920F931F93CF93DF9370 -:1038F000D82FCDE08C2F0E948F0405E010E0E82E39 -:10390000F12CC701002E02C0959587950A94E2F725 -:1039100080FF09C0602F7C2F80E00E944D06D813E5 -:1039200002C081E006C00150110958F7C15010F7DC -:1039300080E0DF91CF911F910F91FF90EF9008955C -:10394000CF93C82F8CE20E94721C882321F08C2F09 -:10395000CF910C94721C80E0CF910895CF930E9478 -:10396000F51D811102C00E94DB1DC5E6C15049F062 -:103970000E94A1038FE39CE90197F1F700C00000CA -:10398000F5CF89E20E94A01C811113C18AE20E9436 -:10399000A01C81110E94DB1D85E00E94A01C8111EA -:1039A0000E94501C0E94001E8093DA0187E00E9452 -:1039B000A01C8823A9F18BE10E94A01C882351F050 -:1039C0008091DA0181FB222720F991E0922790FB78 -:1039D00081F90EC08EE00E94A01C882361F08091C6 -:1039E000DA0182FB222720F991E0922790FB82F9ED -:1039F0008093DA0115C080E10E94A01C9091DA0149 -:103A0000882341F093FB222720F981E0822780FB65 -:103A100093F904C0892F809580FB90F99093DA0187 -:103A20008091DA010E94041E0E94121E8093FA0106 -:103A300080EE0E94A01C882341F08091FA01982F0B -:103A4000909590FB80F98093FA0189E30E94A01C75 -:103A5000882359F08091FA0181FB222720F991E017 -:103A6000922790FB81F98093FA0182EE0E94A01CBC -:103A7000882359F08091FA0182FB222720F991E0F6 -:103A8000922790FB82F98093FA0186EE0E94A01C97 -:103A9000882359F08091FA0183FB222720F991E0D5 -:103AA000922790FB83F98093FA0183EE0E94A01C79 -:103AB000882359F08091FA0184FB222720F991E0B4 -:103AC000922790FB84F98093FA0185E30E94A01C61 -:103AD000882359F08091FA0185FB222720F991E093 -:103AE000922790FB85F98093FA0181E30E94A01C44 -:103AF000882359F08091FA0186FB222720F991E072 -:103B0000922790FB86F98093FA0181E10E94A01C24 -:103B1000882359F08091FA0187FB222720F991E050 -:103B2000922790FB87F98093FA018091FA010E9415 -:103B3000161E8091FA0187FB882780F980930D017A -:103B400087E20E94A01CC82F8EE10E94A01C811158 -:103B5000C2608FE10E94A01C8111C46080E20E94BB -:103B6000A01C8111C86081E20E94A01C8111C0616B -:103B700082E20E94A01C8111C06283E20E94A01C0C -:103B80008111C06484E20E94A01C882311F0C068E7 -:103B900002C0CC2329F08C2F0E940D1E6C2F03C075 -:103BA0000E94091E682F70E080E090E0CF910C9495 -:103BB0009D18CF9108956DEE7EEF80E090E00E9419 -:103BC000472460E082E090E00E94352460E083E0DA -:103BD00090E00E94352460E084E090E00E9435246B -:103BE00060E085E090E00C94352480E090E00E9455 -:103BF0002F2421E08D3E9E4F09F020E0822F089572 -:103C000082E090E00C942724682F82E090E00C94EE -:103C1000352483E090E00C942724682F83E090E023 -:103C20000C94352484E090E00C942724682F84E0E1 -:103C300090E00C9435248091E20180FF0BC06091EC -:103C4000130185E0689FB0011124759567957595FE -:103C500067952BC081FF09C06091130185E0689FC3 -:103C6000B00111247595679520C082FF07C060914F -:103C7000130185E0689FB001112417C09091E30102 -:103C80009923D1F060911201961788F720911301C2 -:103C900085E0289F90011124929FA001939F500DD1 -:103CA000112470E0CA010E94F9236038710540F4C4 -:103CB0006115710539F002C065E070E0862F089546 -:103CC0008FE7089581E008958091E20180FF08C0A8 -:103CD0006091110170E0759567957595679521C0A4 -:103CE00081FF06C06091110170E07595679519C05C -:103CF00082FF04C06091110170E010C09091E30157 -:103D00009923C1F0609110019617A0F780911101DD -:103D1000899FC001112470E00E94F9236038710569 -:103D200028F46115710521F0862F08958FE7089515 -:103D300081E0089561E070E0F4CF803F21F40E94BB -:103D40001B1E819504C0813F29F40E941B1E809395 -:103D5000E6010895823F21F40E941B1E819504C054 -:103D6000833F29F40E941B1E8093E5010895893F3B -:103D700019F40E94641E05C08A3F31F40E94641E3B -:103D800081958093E70108958B3F21F40E94641E82 -:103D9000819504C08C3F29F40E94641E8093E80141 -:103DA0000895843F21F48091E401816017C0853F2C -:103DB00021F48091E401826011C0863F21F480915A -:103DC000E40184600BC0873F21F48091E4018860A6 -:103DD00005C0883F31F48091E40180618093E40163 -:103DE00008958D3F21F48091E20181600BC08E3FE8 -:103DF00021F48091E201826005C08F3F29F4809117 -:103E0000E20184608093E2010895803F39F480915B -:103E1000E60187FF6CC01092E60169C0813F29F47A -:103E20008091E6011816BCF362C09091E501823FD3 -:103E300029F497FF5CC01092E50159C0833F19F443 -:103E40001916CCF354C0893F41F48091E70118164C -:103E50000CF04DC01092E7014AC08A3F29F48091CE -:103E6000E70187FF44C0F6CF8B3F39F48091E8012A -:103E700087FF3DC01092E8013AC08C3F29F4809141 -:103E8000E8011816BCF333C0843F21F48091E401AB -:103E90008E7F17C0853F21F48091E4018D7F11C092 -:103EA000863F21F48091E4018B7F0BC0873F21F492 -:103EB0008091E401877F05C0883F31F48091E4015F -:103EC0008F7E8093E40113C08D3F21F48091E20145 -:103ED0008E7F0BC08E3F21F48091E2018D7F05C063 -:103EE0008F3F29F48091E2018B7F8093E2018091E2 -:103EF000E50181110EC08091E60181110AC0809117 -:103F0000E701811106C08091E801811102C0109281 -:103F1000E301089584EE91E00E945B100E94F51B7E -:103F20009093E1018093E00108951F93CF93DF9375 -:103F30008091E0019091E1010E94011CAC019091FF -:103F4000E301992321F02091140130E006C0209173 -:103F500015018AE0289F900111244217530708F4A5 -:103F600086C08091E501C091E601D091E7011091F2 -:103F7000E801811107C0C11176C0D11174C01111BF -:103F800072C075C09F3F19F09F5F9093E3011816B0 -:103F900024F40E941B1E8093E5018091E50187FFB8 -:103FA00005C00E941B1E81958093E5011C1624F418 -:103FB0000E941B1E8093E6018091E60187FF05C0E9 -:103FC0000E941B1E81958093E6016091E5016623A6 -:103FD00039F1C091E601CC2319F1772767FD70957F -:103FE000872F972F0E940A2323E333E343E35FE302 -:103FF0000E946E230E94D7226093E5016C2F7727E1 -:1040000067FD7095872F972F0E940A2323E333E3E0 -:1040100043E35FE30E946E230E94D7226093E60190 -:104020001D1624F40E94641E8093E7018091E7012D -:1040300087FF05C00E94641E81958093E7011116D9 -:1040400024F40E94641E8093E8018091E80187FFB8 -:1040500005C00E94641E81958093E801DF91CF9195 -:104060001F910C948A1F9F3F09F08ECF96CFDF914E -:10407000CF911F910895E4EEF1E085E0DF011D92FC -:104080008A95E9F71092E3011092E20108958330D6 -:1040900081F128F4813059F08230D1F008958530D3 -:1040A00009F449C0B8F1863009F456C008958091EA -:1040B0001501262F30E0280F311D2F3F310524F444 -:1040C000680F6093150108958FEF8093150108958F -:1040D00080911401262F30E0280F311D2F3F31052C -:1040E00024F4680F6093140108958FEF80931401F6 -:1040F000089580911301262F30E0280F311D2F3FA6 -:10410000310524F4680F6093130108958FEF8093B5 -:104110001301089580911201262F30E0280F311DE0 -:104120002F3F310524F4680F6093120108958FEF3B -:1041300080931201089580911101262F30E0280FFD -:10414000311D2F3F310524F4680F6093110108954C -:104150008FEF80931101089580911001262F30E098 -:10416000280F311D2F3F310524F4680F6093100193 -:1041700008958FEF809310010895833011F128F492 -:10418000813049F0823091F00895853081F120F13D -:104190008630C1F1089580911501681720F4861BBF -:1041A00080931501089510921501089580911401CE -:1041B000681720F4861B809314010895109214014F -:1041C000089580911301681720F4861B80931301D2 -:1041D000089510921301089580911201681720F438 -:1041E000861B809312010895109212010895809108 -:1041F0001101681720F4861B809311010895109215 -:104200001101089580911001681720F4861B809396 -:10421000100108951092100108950F931F938D318E -:1042200009F46BC008F03FC08E3009F47FC0C0F4C1 -:10423000873009F469C068F4863009F0B1C0809114 -:10424000DA01817F8E7F8093DA0181E08093EA0139 -:10425000A8C0883009F4A2C08B3009F49FC0A0C068 -:10426000863109F49BC078F4803109F472C0813141 -:1042700009F096C00E94DD1490910D0181E089271C -:1042800080930D018BC0893109F488C08B3109F00E -:1042900087C08091DA0181FB222720F991E09227E3 -:1042A00090FB81F94CC0853309F470C048F4873223 -:1042B00009F46CC008F459C0893209F467C070C0B1 -:1042C000833438F48A3308F04EC0883309F466C06A -:1042D00067C0833409F45AC0883409F061C00E9471 -:1042E000DD140FEF13ED20E3015010402040E1F703 -:1042F00000C000000E94501C51C00E9491220E94E8 -:1043000044100E943D094AC09091DA01892F80959E -:10431000817080FB90F929F0966098609093DA01A3 -:1043200040C0997F977F9093DA0138C08091DA017D -:1043300082FB222720F991E0922790FB82F980935B -:10434000DA01992359F18091DA0181608093DA01D1 -:1043500025C08091DA0183FB222720F991E0922782 -:1043600090FB83F9ECCF895301C08D5141E050E0BF -:1043700060E070E08A019B0104C0000F111F221F42 -:10438000331F8A95D2F7C901B80104C061E070E01B -:1043900080E090E00E949D180E94DD1481E001C041 -:1043A00080E01F910F91089580E0089580E00895C6 -:1043B000CF93C82F8091EA01813079F018F08230D4 -:1043C000E9F187C0E0910E01F0910F018081813108 -:1043D00069F0823209F07FC009C0E0910E01F091CE -:1043E0000F018081813111F0823261F48C2F0E94A3 -:1043F000D421811104C08C2F0E940D211DC081E0A9 -:1044000090E01AC08C2F0E94D621811114C0C431B3 -:1044100079F048F4CB3079F0C03109F060C082E027 -:104420008093EA0108C0C93219F0C83321F057C09F -:104430001092EA0154C081E0817053C0C93289F101 -:1044400018F5C43171F1A8F4C73009F046C08AE00C -:104450008093150194E19093140193E090931301DC -:104460008093120188E08093110188E2809310010B -:1044700034C0CE51C63088F5EC2FF0E0E65DFE4F3B -:1044800080818093E90129C0CE34E9F020F4CB3457 -:1044900021F56AE013C0C13579F0C235F1F461E06D -:1044A0000DC08091E901882319F01092E90115C02F -:1044B00081E08093EA0115C061E006C08091E901C6 -:1044C0000E9447200AC06AE08091E9010E94BD2055 -:1044D00004C01092EA0180E004C081E002C080E0E4 -:1044E000ABCFCF910895E1E8F0E0808188608083D0 -:1044F0008081816080838FB7F89493E090938900E6 -:1045000090ED909388008FBF0895EFE6F0E08081F2 -:10451000826080830895EFE6F0E080818D7F808364 -:104520000895EFE6F0E0908182E089278083089586 -:104530001F920F920FB60F9211242F933F934F9318 -:104540005F936F937F938F939F93AF93BF93EF93FB -:10455000FF938091EB019091EC0101969093EC0117 -:104560008093EB01811103C082E00E943D09E0913C -:10457000EC01E695E695F0E0E05AFA4FE49180917F -:10458000EB018E1303C080E00E943D09FF91EF9183 -:10459000BF91AF919F918F917F916F915F914F915B -:1045A0003F912F910F900FBE0F901F90189504D040 -:1045B0006894B1118DC0089570D088F09F5790F025 -:1045C000B92F9927B751A0F0D1F0660F771F881F38 -:1045D000991F1AF0BA95C9F712C0B13081F077D09F -:1045E000B1E0089574C0672F782F8827B85F39F03D -:1045F000B93FCCF3869577956795B395D9F73EF497 -:1046000090958095709561957F4F8F4F9F4F08953E -:10461000E89409C097FB3EF490958095709561955C -:104620007F4F8F4F9F4F9923A9F0F92F96E9BB2712 -:104630009395F695879577956795B795F111F8CF8E -:10464000FAF4BB0F11F460FF1BC06F5F7F4F8F4FF9 -:104650009F4F16C0882311F096E911C0772321F0EF -:104660009EE8872F762F05C0662371F096E8862F87 -:1046700070E060E02AF09A95660F771F881FDAF7DE -:10468000880F9695879597F9089557FD9058440F90 -:10469000551F59F05F3F71F04795880F97FB991FA1 -:1046A00061F09F3F79F0879508951216130614065E -:1046B000551FF2CF4695F1DF08C0161617061806EB -:1046C000991FF1CF86957105610508940895E894C6 -:1046D000BB2766277727CB0197F908950BD078C0C1 -:1046E00069D028F06ED018F0952309F05AC05FC049 -:1046F0001124EECFCADFA0F3959FD1F3950F50E0C0 -:10470000551F629FF001729FBB27F00DB11D639F83 -:10471000AA27F00DB11DAA1F649F6627B00DA11D29 -:10472000661F829F2227B00DA11D621F739FB00DCF -:10473000A11D621F839FA00D611D221F749F33273F -:10474000A00D611D231F849F600D211D822F762FD8 -:104750006A2F11249F5750408AF0E1F088234AF0D5 -:10476000EE0FFF1FBB1F661F771F881F9150504021 -:10477000A9F79E3F510570F014C0AACF5F3FECF33C -:10478000983EDCF3869577956795B795F795E7950D -:104790009F5FC1F7FE2B880F911D9695879597F91E -:1047A000089597F99F6780E870E060E008959FEFB3 -:1047B00080EC089500240A941616170618060906B8 -:1047C000089500240A941216130614060506089587 -:1047D000092E0394000C11F4882352F0BB0F40F40F -:1047E000BF2B11F460FF04C06F5F7F4F8F4F9F4F4F -:1047F000089597FB072E16F4009407D077FD09D093 -:104800000E94132407FC05D03EF4909581959F4F9C -:104810000895709561957F4F0895EE0FFF1F0590E5 -:10482000F491E02D0994AA1BBB1B51E107C0AA1FFC -:10483000BB1FA617B70710F0A61BB70B881F991F41 -:104840005A95A9F780959095BC01CD010895F999E5 -:10485000FECF92BD81BDF89A992780B50895A8E151 -:10486000B0E042E050E00C944F24262FF999FECF9F -:1048700092BD81BDF89A019700B4021639F01FBAB3 -:1048800020BD0FB6F894FA9AF99A0FBE08950196D2 -:10489000272F0E9436240C943524DC01CB01FC0127 -:1048A000F999FECF06C0F2BDE1BDF89A319600B489 -:0E48B0000D9241505040B8F70895F894FFCF94 -:1048BE0002203F09CD09AA09760942090101C70163 -:1048CE0028080A03140A3F4D36392105D4049E04E4 -:1048DE006504F80311042A044304010203040506C7 -:0448EE0007080900AE -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/compiled.hex b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/compiled.hex deleted file mode 100644 index 66d01f1c6..000000000 --- a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/compiled.hex +++ /dev/null @@ -1,1169 +0,0 @@ -:100000000C94D0020C9414030C9414030C94140359 -:100010000C9414030C9414030C9414030C94140304 -:100020000C9414030C9414030C94BC0D0C948E0EBD -:100030000C9414030C9414030C9414030C941403E4 -:100040000C9414030C9498220C9414030C94140331 -:100050000C9414030C942B1C0C9414030C94140394 -:100060000C9414030C9414030C9414030C941403B4 -:100070000C9414030C9414030C9414030C941403A4 -:100080000C9414030C9414030C9414030C94140394 -:100090000C9414030C9414030C9414030C94140384 -:1000A0000C9414030C9414030C941403FB0E1D0FF6 -:1000B0000B101D0F0B10620F850F0B10DA0FED0FD9 -:1000C000BC12BC12EB12EB12211341137214721406 -:1000D0004C137214FC13FC136314721472146C141A -:1000E0000914091409140914091409140914091428 -:1000F0000914091409140914091409140914091418 -:100100001B1428142F14361440140000F0A1F0A280 -:10011000F0A335002B002971E1003A0000001E0019 -:10012000140004001D003B00C1001F001A0016004F -:100130001B003C0029712000070008000600E200B7 -:100140002A002100090017001900E300A90022007D -:100150000E000A0005000000AA0069000254000019 -:100160002F000000A8006A003100000030000000ED -:10017000AE0023000D001C0013000000AB002400A3 -:10018000180011001000E700AC00250015000C005D -:100190003600E6002C0026000F00120037003D005C -:1001A0003400270033000B0038003E00C3002E004F -:1001B0002D002800E5003F000000010001000100C3 -:1001C00001000100000001001E001E0201000100EC -:1001D000010001001F001F020100010001000100D9 -:1001E0002000200201000100010001002100210285 -:1001F00001000100010001002200220201000000B4 -:1002000001000100010000000100000001000100E8 -:100210000100000001000000010001002300230292 -:10022000010000000100010024002402010001007F -:10023000010001002500250201000100010001006C -:10024000260026020100010001000100270027020C -:100250000100010001000100010001000100010096 -:10026000000000000000000000000100000000008D -:100270001E00140004000100000000001F001A000E -:10028000160001001900000020000800070000000F -:100290000600000021001500090000000100000018 -:1002A000220017000A000000010001000100000008 -:1002B000000000000100010000000000000000003C -:1002C0000100000023001C000B00000001000000E2 -:1002D000240018000D0000000100000025000C00A3 -:1002E0000E00000010000000260012000F000000A9 -:1002F0001100000027001300330000000000000080 -:1003000000002F0034000000000001000100010087 -:1003100001000100000001000100010001000100D6 -:1003200001000100F400F2000100010001000100E1 -:10033000F000F1000100010001000100F500F300F0 -:1003400001000100010001000100010001000000A6 -:100350000100010001000000010000000100010097 -:100360000100000001000000010001000100010087 -:100370000100000001000100010050000100010027 -:1003800001000100520051000100010001000100C4 -:1003900001004F0001000100010001000100010007 -:1003A0000100010001000100010001000100010045 -:1003B000000016034500720067006F0044006F00E4 -:1003C0007800200045005A00000016034500720026 -:1003D00067006F0044006F007800200045005A005D -:1003E00000000403090409026D00040100A0FA09D9 -:1003F0000400000103010100092111010001223F55 -:10040000000705810308000A090401000103010235 -:1004100000092111010001224D0007058203080097 -:100420000A09040200010300000009211101000172 -:100430002236000705830308000A090403000103AC -:100440000000000921110100012239000705840381 -:100450001000011201100100000008EDFE07130159 -:10046000000102000105010906A101050719E029A3 -:10047000E715002501950875018102050819012974 -:1004800005950575019102950175039101050719FF -:1004900000297715002501957875018102C00501B5 -:1004A0000980A101850216010026B7001A01002A61 -:1004B000B700751095018100C0050C0901A10185E7 -:1004C00003160100269C021A01002A9C0275109551 -:1004D000018100C005010902A1010901A10005096E -:1004E0001901290515002501950575018102950160 -:1004F000750381010501093009311581257F9502B8 -:100500007508810609381581257F950175088106D2 -:10051000050C0A38021581257F950175088106C0F2 -:10052000C005010906A101050719E029E715002505 -:100530000195087501810295017508810105081969 -:100540000129059505750191029501750391010534 -:1005500007190029FF150025FF950675088100C0C1 -:100560000000000000000000000000010204060A74 -:100570000F17202C3A4A5D71879DB3C7DAE9F5FC65 -:10058000FFFCF5E9DAC7B39D87715D4A3A2C201765 -:100590000F0A060402010000000000000000000035 -:1005A00011241FBECFEFDAE0DEBFCDBF04B603FEDD -:1005B00024C08091FB019091FC01A091FD01B091BC -:1005C000FE018730904BA740B04BB9F41092FB016D -:1005D0001092FC011092FD011092FE0114BE84B72E -:1005E000877F84BF88E10FB6F894809360001092F3 -:1005F00060000FBEE0E0FFE3099511E0A0E0B1E08C -:10060000EEEBF8E402C005900D92A433B107D9F7E0 -:1006100011E0A4E3B1E001C01D92AB3FB107E1F7E7 -:100620000E94000B0C945D240C9400001092B90001 -:100630008AE08093B800089594EA9093BC0090916A -:10064000BC0097FFFCCF9091B900987F983021F0C3 -:10065000903111F081E008958093BB0084E880938D -:10066000BC008091BC0087FFFCCF8091B900887FDF -:10067000883111F0803471F780E0089584E9809327 -:10068000BC008091BC0084FDFCCF08958093BB002A -:1006900084E88093BC008091BC0087FFFCCF9091E0 -:1006A000B900987F81E0983209F480E0089584E8E9 -:1006B0008093BC008091BC0087FFFCCF8091BB0081 -:1006C000089580910101811115C080E40E941C03EE -:1006D0008093010181110CC082E10E944603809346 -:1006E0000101811105C08FEF0E9446038093010133 -:1006F0000E943E0384B1807F84B985B1807F85B933 -:100700008AB1837F8AB98BB1837F8BB93E98469833 -:1007100008950E941C05809301010E94610380B32B -:100720008C7080BB81B3836F81BBA5E3B1E0E3E450 -:10073000F1E08EE08E0F11921D928E13FCCF0C947F -:100740000605BF92CF92DF92EF92FF920F931F9315 -:10075000CF93DF9380910101882379F08091340158 -:100760008F5F80933401811108C00E941C05809323 -:100770000101811102C00E94AE0405E311E0C0E056 -:10078000D0E0DD24D39482E0C82EEE24E394F12C53 -:10079000C730D10500F580910101811164C080E46A -:1007A0000E941C0380930101811112C082E10E940A -:1007B00046038093010181110BC0C7010C2E01C0BB -:1007C000880F0A94EAF780950E94460380930101FE -:1007D0000E943E0348C0CA30A1F028F4C83059F046 -:1007E000C93061F005C0CC3089F070F0CD3089F0AF -:1007F000209A289810C0219A29980DC0229A2A98E8 -:100800000AC0239A2B9807C0529A01C0539A5B984A -:1008100002C03E9A469890EA9A95F1F79FB179996D -:1008200002C082E001C080E091709D25982B7C99E8 -:1008300002C084E001C080E0892B7D9902C038E0CD -:1008400001C030E0832B7E9902C020E101C020E08E -:10085000822B9FB19095991F9927991F9295990F77 -:10086000907E892B0FC080910101811149C080E4E5 -:100870000E941C0380930101882379F1B12C0E940E -:100880003E038B2DF8019081981719F08083C09258 -:1008900000010E94610321960F5F1F4FCE30D105EA -:1008A00009F076CF80910001882361F18150809317 -:1008B0000001882339F08FE99FE00197F1F700C02C -:1008C000000020C0A3E4B1E0E5E3F1E0CF01825FE6 -:1008D00091919D938E13FCCF15C083E10E94460336 -:1008E000809301018111CACF81E40E941C0380938F -:1008F00001018111C3CF0E945703B82EB094BFCF1E -:1009000080E0C0CF0E94AC0481E0DF91CF911F91C5 -:100910000F91FF90EF90DF90CF90BF900895E82F58 -:10092000F0E0ED5BFE4F8081089508950F931F93D3 -:10093000CF93DF93C3E4D1E010E00C2F025F8991E5 -:1009400090E00E94511B180F0C13F9CF812FDF91FB -:10095000CF911F910F9108950C947C0556985E9845 -:1009600025982D9826982E9827982F988FEF90E00D -:10097000909389008093880090938B0080938A00E5 -:1009800090938D0080938C00259A2D9A2FEF80E70D -:1009900092E0215080409040E1F700C00000269A8C -:1009A0002E9A2FEF80E792E0215080409040E1F7AF -:1009B00000C00000279A2F9A2FEF80E792E0215085 -:1009C00080409040E1F700C0000025982D982FEF5F -:1009D00080E792E0215080409040E1F700C00000A5 -:1009E00026982E982FEF80E792E02150804090408B -:1009F000E1F700C0000027982F9856985E98259838 -:100A00002D9826982E9827982F98089589EA8093F4 -:100A1000800089E08093810024982C983F988AB1C7 -:100A20008F748AB96E98479A8BB1806B8BB9769A1E -:100A30000E94AE040C947B0580E2809301018091BA -:100A4000510181110EC00E94160381E08093510173 -:100A50002FEF83ED90E3215080409040E1F700C0FC -:100A6000000080E40E941C038093010181112EC0CC -:100A70000E94460380930101811128C00E94460311 -:100A800080930101811122C08FE30E94460380936D -:100A9000010181111BC00E943E0380E40E941C03DF -:100AA00080930101811112C08CE00E944603809363 -:100AB000010181110BC00E94460380930101811145 -:100AC00005C08FE30E944603809301010E943E030C -:100AD00080910101089561110BC0FC01828188237E -:100AE00021F085EE0E94601103C085EE0E9428125D -:100AF00080E090E0089508956091BD017091BE017D -:100B00008091BF019091C0010E945D1B56985E9834 -:100B100025982D9826982E9827982F98823039F06E -:100B2000833041F0813041F4259A2D9A0895269A18 -:100B30002E9A0895279A2F9A089581E0089581E0CA -:100B400008950C949F0508950F931F93CF93DF93FF -:100B50008C01FC01C081D181CE010E94D619BE0159 -:100B60000E944D06EC01B8010E94A105882309F4FA -:100B70008DC0F8018281882309F44AC080915D010B -:100B800081111FC0C431F0E5DF0709F051C00E9498 -:100B9000A30581E080935D010E94F51B90935C01A9 -:100BA00080935B01109254011092560110925501EE -:100BB000109258011092570110925A011092590147 -:100BC00065C080915B0190915C010E94011C883C92 -:100BD000910570F480915401E82FF0E0EE0FFF1FB3 -:100BE000EB5AFE4FD183C0838F5F809354014EC078 -:100BF000C43880E5D80721F0C538D04501F13AC0A6 -:100C0000F8018281882341F01092520182E01EC0D7 -:100C1000C438E0E5DE0759F580915201811106C024 -:100C200086E20E94601186E20E94281282E01CC0C7 -:100C3000C438F0E5DF0741F3C538D045D9F4F801F1 -:100C40008281882331F01092530180E20E94771252 -:100C50001DC080915301811106C087E20E9460117E -:100C600087E20E94281280E20E947E120FC0C538DF -:100C7000D04529F381E08093520180935301C8014C -:100C8000DF91CF911F910F910C949D0580E0DF9132 -:100C9000CF911F910F910895089596E0799FF001EB -:100CA000112494E5899FE00DF11D1124E60FF11D3B -:100CB000EE0FFF1FEE5EFE4F859194910895880F11 -:100CC000991FFC01E657F040859194910895880F93 -:100CD000991FFC01E65FFE4F8591949108950F9353 -:100CE0001F93CF93DF93EC01811520E3920750F51A -:100CF000C11580E2D80708F0C3C0CB3BD10590F402 -:100D0000C83AD10508F06AC0C53AD10508F05BC001 -:100D1000C430D10508F0D0C1219709F0CAC101E063 -:100D200010E00AC2CF3FD10511F008F0C5C1C03FA5 -:100D3000D10508F0A2C0CE01805E9109089708F4A1 -:100D4000BBC1B7C1C13090E5D90709F4A2C020F5F5 -:100D5000C0318FE4D80770F4C11590E4D90708F0CA -:100D600094C0C11521E3D20708F0A3C1DD278E018D -:100D7000106CE2C1C115D04509F09BC10E94DD1481 -:100D80008FEF94E32CE0815090402040E1F700C0C9 -:100D900000000E94501CD0C1C11597E5D90758F436 -:100DA000C03121E5D20708F01CC1C43180E5D80765 -:100DB00008F475C07EC1CE0190578115904108F0AE -:100DC00078C1DF7073C1C53AD10509F477C1C63A5D -:100DD000D10509F076C102E810E4AEC1C83AD105E8 -:100DE00009F472C1C93AD10509F471C1CA3AD105F1 -:100DF00009F470C1CB3AD10509F46FC1CC3AD105E1 -:100E000009F46EC1CD3AD10509F46DC1C03BD105DD -:100E100009F46CC1CE3AD10509F46BC1CF3AD105C2 -:100E200009F46AC1C13BD10509F469C1C23BD105CE -:100E300009F468C1C33BD10509F467C1C43BD105BE -:100E400009F466C1C53BD10509F465C1C63BD105AE -:100E500009F464C1C73BD10509F463C1C83BD1059E -:100E600009F462C1C93BD10509F461C1CA3BD1058E -:100E700009F460C100E014E45FC18E0110655CC13B -:100E8000CE019F700E94670658C1DF708E01106A04 -:100E900053C18091DA0181608093DA014DC10E94D3 -:100EA000F51D811102C00E94DB1D0E94121E90E000 -:100EB0009093FB018093FA01C23080E5D80721F4BA -:100EC0008091FA01816086C0C43090E5D90721F491 -:100ED0008091FA0182607EC0C63020E5D20721F4FD -:100EE0008091FA01846076C0C83080E5D80719F493 -:100EF0008091FA0127C0CA3090E5D90721F480918A -:100F0000FA01806167C0CC3020E5D20721F48091DE -:100F1000FA0180625FC0CE3080E5D80721F480916D -:100F2000FA01806457C0C03190E5D90721F480915F -:100F3000FA0180684FC0C23120E5D20729F48091C0 -:100F4000FA018460886046C0C33080E5D80721F488 -:100F50008091FA018E7F3EC0C53090E5D90721F41B -:100F60008091FA018D7F36C0C73020E5D20721F489 -:100F70008091FA018B7F2EC0C93080E5D80719F423 -:100F80008091FA0126C0CB3090E5D90721F48091F9 -:100F9000FA018F7E1FC0CD3020E5D20721F4809169 -:100FA000FA018F7D17C0CF3080E5D80721F48091FA -:100FB000FA018F7B0FC0C13190E5D90721F48091F0 -:100FC000FA018F7707C0C331D04531F48091FA011F -:100FD0008B7F877F8093FA018091FA010E94161E11 -:100FE000ABC08D2F99278F70992781309105D9F447 -:100FF0009E012370332702C0880F991F2A95E2F7BC -:101000009C688E0144E0000F111F4A95E1F700270C -:101010001370802B912B53E0CC0FDD1F5A95E1F715 -:10102000C076DD272FC08230910531F4DC2FCC272C -:101030008E01016F106A80C08330910569F4CE0182 -:101040008370992701E010E002C0000F111F8A95FC -:10105000E2F7C8019C680FC084309105B9F4CE0155 -:101060008370992701E010E002C0000F111F8A95DC -:10107000E2F7C8019A6823E0CC0FDD1F2A95E1F75B -:10108000C07ED7708C010C2B1D2B56C0853091056E -:1010900031F4DC2FCC278E01046F106A4DC0069707 -:1010A00009F04AC0CF71DD27DC2FCC278E011062FA -:1010B00043C000E010E040C08E013EC001E810E4F3 -:1010C0003BC003E810E438C002EE14E435C009EE7A -:1010D00014E432C00AEE14E42FC005EB14E42CC073 -:1010E00006EB14E429C007EB14E426C00CEC14E46E -:1010F00023C00DEC14E420C003E815E41DC00AE889 -:1011000015E41AC002E915E417C004E915E414C097 -:1011100001E216E411C003E216E40EC004E216E494 -:101120000BC005E216E408C006E216E405C007E2BB -:1011300016E402C00AE216E4C801DF91CF911F91C4 -:101140000F91089596E0799FF001112494E5899F0D -:10115000E00DF11D1124E60FF11DEE0FFF1FEE5EF5 -:10116000FE4F85919491803E9105E0F4803C91057D -:1011700058F58133910509F46FC048F4893291051F -:1011800009F463C08A32910509F46DC072C08933D5 -:101190009105E9F082389105D1F08533910509F484 -:1011A0004DC067C0833E910581F138F4803E9105C2 -:1011B000B9F0823E9105D9F05CC0863E910561F19F -:1011C000873E9105A1F155C00E945F0608952091C8 -:1011D000FA0120FD02C021FF4CC080EE90E049C022 -:1011E0008091FA0180FFF9CF89E390E042C08091BD -:1011F000FA0182FF0EC08091FA0184FF03C080E0F3 -:1012000090E037C083EE90E034C08091FA0182FF15 -:10121000F2CF82EE90E02DC08091FA0183FF0BC0E7 -:101220008091FA0184FDEBCF87EE90E022C080919F -:10123000FA0183FFF5CF86EE90E01BC08091FA01A2 -:1012400085FF07C089E290E014C08091FA0185FF14 -:10125000F9CF85E390E00DC08091FA0186FF07C0C9 -:101260008AE290E006C08091FA0186FFF9CF81E31F -:1012700090E00E946F06089508950C943C098091B7 -:101280006E010895CF93DF9300D01F92CDB7DEB7E4 -:101290009C018091F101843019F593E099833B839F -:1012A0002A839093E9008FEF9091E800815095FD9B -:1012B00006C095ED9A95F1F700008111F5CF809168 -:1012C000E80085FF0DC040E050E063E070E0CE0133 -:1012D00001960E94AC0B8091E8008E778093E80025 -:1012E0000F900F900F90DF91CF910895CF93DF93E0 -:1012F00000D01F92CDB7DEB72091F101243021F547 -:1013000022E029839B838A8383E08093E9008FEF27 -:101310009091E800815095FD06C095ED9A95F1F702 -:1013200000008111F5CF8091E80085FF0DC040E0FD -:1013300050E063E070E0CE0101960E94AC0B80911A -:10134000E8008E778093E8000F900F900F90DF9168 -:10135000CF9108952091F1012430F1F422E02093FF -:10136000E9002FEF3091E800215035FD06C035ED42 -:101370003A95F1F700002111F5CF2091E80025FF03 -:101380000BC040E050E065E070E00E94AC0B809143 -:10139000E8008E778093E8000895CF93DF93EC0107 -:1013A0009091F101943009F046C080910C0188239E -:1013B000D9F080910D018823B9F09093E9008FEF67 -:1013C0009091E800815095FD06C095E19A95F1F75E -:1013D00000008111F5CF8091E80085FF2CC040E02E -:1013E00050E060E170E017C081E08093E9008FEF8A -:1013F0009091E800815095FD06C095ED9A95F1F722 -:1014000000008111F5CF8091E80085FF14C040E015 -:1014100050E068E070E0CE010E94AC0B8091E800E3 -:101420008E778093E80080E1FE01AEE5B1E00190A7 -:101430000D928A95E1F7DF91CF9108958091F001A7 -:10144000811109C00E94410D0E949E0D8091E20011 -:1014500084608093E20008951092F0010895089549 -:101460000C9485220E94E61B0E948B220E9444104D -:101470000C943D0942E061EC81E00E94BB0C42E02B -:1014800061EC82E00E94BB0C42E061EC83E00E94D0 -:10149000BB0C42E161EC84E00C94BB0C8091F30145 -:1014A000833009F455C030F4813071F0823009F492 -:1014B0008EC008958A3009F47AC08B3009F460C078 -:1014C000893009F09CC020C08091F201813A09F076 -:1014D00096C08091E800877F8093E8008091F601B4 -:1014E0009091F701892B21F460E18EE591E003C032 -:1014F00060E080E090E070E00E94F70B8091E800EF -:101500008B778093E80008958091F201813209F091 -:1015100076C08091F6019091F701009719F003973A -:1015200009F06DC08091E800877F8093E80080918A -:10153000E80082FD05C08091F1018111F8CF5FC004 -:101540008091F10080936E018091E8008B7753C009 -:101550008091F201813A09F052C08091F601909198 -:10156000F701892B09F04BC08091E800877F8093B9 -:10157000E8008091E80080FFFCCF80910C0136C02C -:101580008091F2018132D9F58091F6019091F701B5 -:10159000892BA9F58091E800877F8093E8000E945D -:1015A000F00C8091F40180930C010C94DD14809177 -:1015B000F201813221F58091E800877F8093E80075 -:1015C0000E94F00C8091F50180936F010895809145 -:1015D000F201813AA1F48091E800877F8093E800CE -:1015E0008091E80080FFFCCF80916F018093F10033 -:1015F0008091E8008E778093E8000C94F00C0895B9 -:1016000084B7877F84BF88E10FB6F8948093600029 -:10161000109260000FBE90E080E80FB6F8948093BF -:101620006100909361000FBE0E9493100E94410DD3 -:101630000E949E0D8091E20084608093E200789485 -:101640000E9424100E94951082E091E00E943F10B9 -:101650000E9473228091F101853069F40E94AD1BD4 -:101660008091EF018823B1F30E94D81B882391F366 -:101670000E94960BEFCF0E949B10ECCF292F3327AF -:1016800023303105C9F064F42130310581F0223076 -:10169000310509F043C08DE690E026EE33E042C00C -:1016A00021323105F1F02232310541F137C082E1BA -:1016B00090E023E534E036C099278130910541F070 -:1016C0008230910541F0892B49F5E2EEF3E005C047 -:1016D000EAECF3E002C0E2EBF3E0849190E09F01DA -:1016E00021C06430D8F4E62FF0E0EE0FFF1FEE5D6E -:1016F000FE4F2081318189E090E014C0643070F4A5 -:1017000070E0FB01EE0FFF1FE65EFE4F208131818E -:10171000FB01EA5EFE4F808190E004C080E090E033 -:1017200020E030E0FA0131832083089580E189BD13 -:1017300082E189BD09B400FEFDCF8091D8008F7D84 -:101740008093D8008091E00082608093E0008091D7 -:10175000E00081FDFCCF0895CF92DF92EF92FF92DF -:101760000F931F93CF93DF93EC018B016A010E94CB -:101770000F0D811133C0C114D10439F0F6018081FD -:101780009181081B190BC80FD91FE12CF12C0115F1 -:10179000110519F18091E80085FD16C08091E800DF -:1017A0008E778093E800C114D10449F0F60180815E -:1017B0009181E80EF91EF182E08285E00FC00E945F -:1017C0000F0D882321F30AC089918093F100015005 -:1017D0001109FFEFEF1AFF0ADACF80E0DF91CF9116 -:1017E0001F910F91FF90EF90DF90CF90089520917F -:1017F000F8013091F9012617370748F06115710596 -:1018000039F42091E8002E772093E80001C0B90157 -:1018100040E061157105A9F12091F101222309F43D -:1018200043C0253009F442C02091E80023FD40C0A8 -:101830002091E80022FD32C02091E80020FFE9CF8E -:101840004091F3002091F20030E0342BFC01CF01F5 -:101850006115710559F02830310540F4819180936C -:10186000F100615071092F5F3F4FF1CF41E0283007 -:10187000310509F040E02091E8002E772093E80040 -:10188000C8CF4111C9CF0AC08091F101882361F00E -:10189000853061F08091E80083FD0AC08091E80006 -:1018A00082FFF2CF80E0089582E0089583E00895FA -:1018B00081E008952091F8013091F901261737074A -:1018C00048F06115710539F42091E8002E772093D6 -:1018D000E80001C0B901FC0120E06115710591F13A -:1018E0008091F101882309F440C0853009F43FC09C -:1018F0008091E80083FD3DC08091E80082FD2FC00B -:101900008091E80080FFE9CF2091F3008091F20000 -:1019100090E0922B6115710559F08830910540F4E3 -:1019200024912093F1003196615071090196F2CF14 -:1019300021E0089709F020E08091E8008E778093FD -:10194000E800CBCF2111CCCF0AC08091F1018823D0 -:1019500061F0853061F08091E80083FD0AC08091DC -:10196000E80082FFF2CF80E0089582E0089583E0EE -:10197000089581E00895982F973058F59093E900E5 -:10198000981739F07091EC002091ED005091F00023 -:1019900003C0242F762F50E021FF19C03091EB00B7 -:1019A0003E7F3093EB003091ED003D7F3093ED00B2 -:1019B0003091EB0031603093EB007093EC0020939A -:1019C000ED005093F0002091EE0027FF07C09F5FCD -:1019D000D3CF8F708093E90081E0089580E008956F -:1019E0008091F20187FF11C08091E80082FD05C05F -:1019F0008091F1018111F8CF11C08091E8008B77BF -:101A00000BC08091F101882349F08091E80080FFAC -:101A1000F8CF8091E8008E778093E80008952091B8 -:101A2000E4003091E50095E64091EC00842F817050 -:101A300040FF22C08091E80080FD1CC08091F10130 -:101A4000882391F0853091F08091EB0085FD10C0E6 -:101A50004091E4005091E5004217530729F39A01A1 -:101A6000915011F784E0089582E0089583E008958D -:101A700081E0089580E008954091E80042FFDECFC4 -:101A800008950E94AF0D0E94B70DE0EEF0E0808156 -:101A900081608083E8EDF0E080818F77808319BCDE -:101AA000A7EDB0E08C918E7F8C9380818F7E8083B8 -:101AB0001092F00108950F931F93CF93DF930E942C -:101AC000AF0D0E94B70DC8EDD0E088818F77888375 -:101AD00088818068888388818F7D888319BC109273 -:101AE000F1011092ED011092EF011092EE0100EE63 -:101AF00010E0F80180818B7F8083888181608883FA -:101B000042E060E080E00E94BB0CE1EEF0E080810A -:101B10008E7F8083E2EEF0E080818160808380812F -:101B200088608083F80180818E7F808388818061D6 -:101B30008883DF91CF911F910F910895E8EDF0E038 -:101B400080818F7E8083E7EDF0E0808181608083FB -:101B500084E082BF81E08093F0010C945B0DE8ED9E -:101B6000F0E080818E7F80831092E20008951092D1 -:101B7000DA001092E10008951F920F920FB60F92B3 -:101B800011242F933F934F935F936F937F938F9382 -:101B90009F93AF93BF93EF93FF938091E10082FFF8 -:101BA0000BC08091E20082FF07C08091E1008B7F33 -:101BB0008093E1000E9423108091DA0080FF1FC013 -:101BC0008091D80080FF1BC08091DA008E7F8093C7 -:101BD000DA008091D90080FF0DC080E189BD82E1EB -:101BE00089BD09B400FEFDCF81E08093F1010E9420 -:101BF0001E0A05C019BC1092F1010E942C0A8091A6 -:101C0000E10080FF19C08091E20080FF15C0809143 -:101C1000E2008E7F8093E2008091E20080618093F9 -:101C2000E2008091D80080628093D80019BC85E0E2 -:101C30008093F1010E94300A8091E10084FF30C05E -:101C40008091E20084FF2CC080E189BD82E189BDE2 -:101C500009B400FEFDCF8091D8008F7D8093D8001D -:101C60008091E1008F7E8093E1008091E2008F7E81 -:101C70008093E2008091E20081608093E200809195 -:101C8000ED01882311F084E007C08091E30087FD17 -:101C900002C081E001C083E08093F1010E94320A1A -:101CA0008091E10083FF29C08091E20083FF25C07D -:101CB0008091E100877F8093E10082E08093F101D1 -:101CC0001092ED018091E1008E7F8093E100809180 -:101CD000E2008E7F8093E2008091E2008061809339 -:101CE000E20042E060E080E00E94BB0C8091F000E6 -:101CF00088608093F0000E942F0AFF91EF91BF91BE -:101D0000AF919F918F917F916F915F914F913F9193 -:101D10002F910F900FBE0F901F9018951F920F924A -:101D20000FB60F9211242F933F934F935F936F93AE -:101D30007F938F939F93AF93BF93CF93DF93EF9353 -:101D4000FF93C091E900CF708091EC00D82FD17043 -:101D500080FDD0E81092E9008091F000877F8093A9 -:101D6000F00078940E94D20E1092E9008091F00069 -:101D700088608093F000CD2BCF70C093E900FF9175 -:101D8000EF91DF91CF91BF91AF919F918F917F9113 -:101D90006F915F914F913F912F910F900FBE0F90D8 -:101DA0001F9018951F93CF93DF93CDB7DEB7AA97F7 -:101DB0000FB6F894DEBF0FBECDBFE2EFF1E088E0D2 -:101DC0008E0F9091F10091938E13FBCF0E944E0ADB -:101DD0008091E80083FF1FC18091F2019091F3018F -:101DE000492F50E04A30510508F015C1FA01EA5A6E -:101DF000FF4F0C940D24803881F0823809F00BC11C -:101E00008091F6018F708093E9008091EB0085FB53 -:101E1000882780F91092E90006C08091EE01909128 -:101E2000EF01911182609091E800977F9093E80014 -:101E30008093F1001092F100C8C0282F2D7F09F087 -:101E4000EAC0882319F0823061F0E5C08091F40186 -:101E5000813009F0E0C0933009F080E08093EF0119 -:101E60002BC08091F401811127C08091F6018F7001 -:101E700009F4D1C08093E9002091EB0020FF1CC041 -:101E8000933021F48091EB00806214C09091EB00BC -:101E900090619093EB0021E030E0A90102C0440F73 -:101EA000551F8A95E2F74093EA001092EA0080916C -:101EB000EB0088608093EB001092E9008091E800CD -:101EC000877F86C08111A7C01091F4011F77809190 -:101ED000E3008078812B8093E3008091E800877F86 -:101EE0008093E8000E94F00C8091E80080FFFCCF16 -:101EF0008091E30080688093E300111102C082E0CA -:101F000001C083E08093F10186C08058823008F0E0 -:101F100082C08091F4019091F5018C3D53E09507CA -:101F200079F583E08A838AE289834FB7F894DE01EA -:101F3000139620E03EE051E2E32FF0E0509357008B -:101F4000E49120FF03C0E295EF703F5FEF708E2FAA -:101F500090E0EA3010F0C79601C0C0968D939D9333 -:101F60002F5F243149F74FBF8091E800877F80932E -:101F7000E8006AE270E0CE0101960E94F70B14C0FF -:101F8000AE014F5F5F4F6091F6010E943E0BBC01B6 -:101F9000009709F440C09091E800977F9093E80083 -:101FA00089819A810E945A0C8091E8008B778093F6 -:101FB000E80031C0803879F58091E800877F809310 -:101FC000E8008091ED018093F1008091E8008E7728 -:101FD0008093E8000E94F00C1EC081111CC09091FB -:101FE000F4019230C0F48091E800877F8093E8008C -:101FF0009093ED010E94F00C8091ED01811106C0DB -:102000008091E30087FD02C081E001C084E08093FD -:10201000F1010E943A0A8091E80083FF0AC0809192 -:10202000E800877F8093E8008091EB0080628093D6 -:10203000EB00AA960FB6F894DEBF0FBECDBFDF91BE -:10204000CF911F9108950895CF938091F101882336 -:10205000A1F0C091E900CF709091EC00892F8170C0 -:1020600090FD80E8C82B1092E9008091E80083FD84 -:102070000E94D20ECF70C093E900CF910895909343 -:102080007501809374010895E0917401F0917501D8 -:10209000309721F00190F081E02D099480E00895BF -:1020A000E0917401F0917501309721F00280F38185 -:1020B000E02D09940895E0917401F0917501309735 -:1020C00021F00480F581E02D09940895209172019A -:1020D000309173018217930771F09093730180938D -:1020E0007201E0917401F0917501309721F0068042 -:1020F000F781E02D099408952091700130917101CC -:102100008217930771F09093710180937001E091B1 -:102110007401F0917501309721F00084F185E02D74 -:102120000994089508950C9492100E94EC1B0E944B -:1021300089030C94AE1C9F92AF92BF92CF92DF9214 -:10214000EF92FF920F931F93CF93DF9300D000D0B5 -:1021500000D0CDB7DEB70E94A1030DE010E0AA24A5 -:10216000A394B12C902E802F0E948F04980129589F -:102170003E4F6901F901F080F826A1F401501109E0 -:1021800088F78FEF89838A831B820E94F51B816009 -:10219000782F9D838C8349815A816B818D810E9428 -:1021A00032112FC09091DA0191FF04C08E830E94FA -:1021B00095048E8125E030E0A501022E01C0440F78 -:1021C0000A94EAF7E42E4F21C1F029839A828E21E6 -:1021D00091E009F490E09B830E94F51B8160782FC9 -:1021E0009D838C8349815A816B818D810E9432113C -:1021F000F6018081E826E08204C021503109E0F632 -:10220000BDCF0E94951F109176010E9444101817AF -:10221000B9F00E9444108093760126960FB6F89488 -:10222000DEBF0FBECDBFDF91CF911F910F91FF9009 -:10223000EF90DF90CF90BF90AF909F900C943D09AE -:1022400026960FB6F894DEBF0FBECDBFDF91CF91BB -:102250001F910F91FF90EF90DF90CF90BF90AF90C4 -:102260009F900895CF93DF93CDB7DEB72B970FB62E -:10227000F894DEBF0FBECDBF4F83588769877A873A -:102280008B87DE01119686E0FD0111928A95E9F7B0 -:1022900085E0FE01379601900D928A95E1F749811C -:1022A0005A816B817C818D819E810E947B172B9648 -:1022B0000FB6F894DEBF0FBECDBFDF91CF9108956A -:1022C000CF93882309F4C2C0C82F823859F40E94E2 -:1022D000441081FDBBC089E30E94551A0E94221B55 -:1022E00089E30CC0833879F40E94441080FDAEC0AD -:1022F00083E50E94551A0E94221B83E50E94971ACB -:10230000CF910C94221B843859F40E94441082FD12 -:102310009DC087E40E94551A0E94221B87E4EECFDD -:102320008CEF8C0F813A48F48C2F0E94D8218111B8 -:102330008DC08C2F0E94551AE3CF80E28C0F88301D -:1023400048F4C77081E001C0880FCA95EAF70E947F -:10235000DB1AD6CF8BE58C0F833078F4C53A29F0A1 -:10236000C63A31F083E890E005C081E890E002C011 -:1023700082E890E0CF910C94661088E58C0F833151 -:1023800008F064C0C83A39F1C93A41F1CA3A49F192 -:10239000CB3A51F1CC3A59F1CD3A61F1C03B69F1F8 -:1023A000CE3A71F1CF3A79F1C13B81F1C23B89F16B -:1023B000C33B91F1C43B99F1C53BA1F1C63BA9F1E7 -:1023C000C73BB1F1C83BB9F1C93BC1F1CA3BC9F147 -:1023D00080E090E038C082EE90E035C089EE90E079 -:1023E00032C08AEE90E02FC085EB90E02CC086EBE7 -:1023F00090E029C087EB90E026C08CEC90E023C0F1 -:102400008DEC90E020C083E891E01DC08AE891E067 -:102410001AC082E991E017C084E991E014C081E21A -:1024200092E011C083E292E00EC084E292E00BC021 -:1024300085E292E008C086E292E005C087E292E081 -:1024400002C08AE292E0CF910C947C10CF91089563 -:10245000882309F44BC0823859F40E94441081FF4C -:1024600045C089E30E94551A0E94221B89E30CC0D3 -:10247000833871F40E94441080FF38C083E50E94C5 -:10248000551A0E94221B83E50E94971A0C94221B66 -:10249000843859F40E94441082FF28C087E40E94C7 -:1024A000551A0E94221B87E4EFCF9CEF980F913AB8 -:1024B00058F390E2980F983050F4877091E001C083 -:1024C000990F8A95EAF7892F0E94E11ADFCF9BE5E1 -:1024D000980F933020F480E090E00C946610885AB6 -:1024E000833120F480E090E00C947C1008958823E0 -:1024F00021F00E94DB1A0C94221B0895882321F0FE -:102500000E94E11A0C94221B08957F928F929F9251 -:10251000AF92BF92CF92DF92EF92FF920F931F93F1 -:10252000CF93DF931F92CDB7DEB77C01C62E772EF7 -:10253000FC01058102950F70128111110E94F81A99 -:102540000E944E1A882379F0112369F080E28C0DE5 -:10255000883048F082E00E94371A0E944E1A91E0BB -:10256000D82ED92601C0D12CE72DE295EF70F0E0EE -:10257000E05AFF4F0C940D24872D807F072D0F709C -:10258000882311F00295007F112389F0002309F4BC -:1025900090C180E28C0D883020F4802F0E94DB1ADD -:1025A00003C0802F0E94EB1A0E94221B82C18C2D37 -:1025B0000E942812002309F495C180E28C0D883016 -:1025C00020F4802F0E94E11A03C0802F0E94F11A8C -:1025D0000E94221B87C1972D907F872D8F7090328C -:1025E00011F08295807FCC2021F0F1E0CF16B1F080 -:1025F0001EC0112349F0002309F414C1013009F071 -:1026000011C10E940B1B6EC1002319F0013009F4A7 -:1026100069C189830E940E1B89810AC1112321F09F -:10262000023008F05FC1FEC001115CC101C111237D -:1026300021F0002309F4F6C03CC1002309F4F8C0DE -:102640003EC1872D86958695837090E0009719F09E -:10265000019761F047C1112321F08C2D972D9370C4 -:1026600002C080E090E00E9466103CC1112321F07E -:102670008C2D972D937002C080E090E00E947C101A -:1026800031C18C2D112319F00E949D1E02C00E94A1 -:10269000051F0E948A1F26C1872D837009F052C032 -:1026A000111120C18C2D829586958770880F880F17 -:1026B0009C2D9F70892E912CA12CB12C082E04C02A -:1026C000880C991CAA1CBB1C0A94D2F7C4FE14C027 -:1026D0000FE010E020E030E0B901A80104C0440F91 -:1026E000551F661F771F8A95D2F7CB01BA016095F7 -:1026F00070958095909503C060E070E0CB01272D28 -:1027000026952695237030E02230310569F023307C -:10271000310589F0682979298A299B2921303105D9 -:1027200071F00E94C318DEC0682979298A299B2983 -:102730000E94DF18D7C00E94C318C501B4010E94CF -:10274000A718D0C0112319F0872D817001C086957C -:10275000882309F4C7C08C2D829586958770880FD1 -:10276000880F9C2D9F70892E912CA12CB12C082EA6 -:1027700004C0880C991CAA1CBB1C0A94D2F7C4FE86 -:1027800014C00FE010E020E030E0B901A80104C05F -:10279000440F551F661F771F8A95D2F7CB01BA01E8 -:1027A000609570958095909503C060E070E0CB01D6 -:1027B000272D269526952370422F50E04230510553 -:1027C00069F04330510589F0682979298A299B29C4 -:1027D0004130510571F00E949D1984C06829792902 -:1027E0008A299B290E94B9197DC00E949D19C501A3 -:1027F000B4010E94811976C08C2D90E0FC01E05E4E -:10280000F109E531F10508F050C0E059FF4F0C9493 -:102810000D240C2D0F70872D8F71112331F00E9424 -:102820001A19802F0E9477125DC00E943B19802FD9 -:102830000E947E1257C0112339F0011153C0872D19 -:102840008F710E9460194EC0023008F04BC0F7CF64 -:10285000112339F0872D8F710E941A1943C011235B -:10286000C9F3872D8F710E943B193CC0112329F0B9 -:10287000872D8F710E94051935C00E94FB1832C048 -:10288000112351F0172D1F71812F0E941A1963E037 -:10289000812F0E942E1A26C081E00E94371A023032 -:1028A00008F182E00E94371A1DC0112331F0002385 -:1028B00089F28C2D0E94601115C0002391F28C2D9D -:1028C0000E9428120FC0472D4F706C2DC7010E9427 -:1028D0006B050E941F1806C0472D4F706C2DC70155 -:1028E0000E944C06DD20F9F00E942A1A80FD1BC0D0 -:1028F000F70112820E94241A0E941A19C7010E942D -:10290000A2140E94241A0F90DF91CF911F910F9172 -:10291000FF90EF90DF90CF90BF90AF909F908F90FF -:102920007F900C943B190F90DF91CF911F910F91E5 -:10293000FF90EF90DF90CF90BF90AF909F908F90DF -:102940007F9008950F931F93CF93DF93EC018881BD -:1029500099812B813C81232BB9F09F3F11F48F3F4C -:1029600099F0CE010E94A405882371F068817981D5 -:102970008A810E94201A8C010E94D5190E949C18FD -:10298000B801CE010E948512DF91CF911F910F9166 -:1029900008950E94F81A0E94081B0E94CD1A0E94F6 -:1029A000221B0E943B200E948A1F80E090E00E9430 -:1029B000661080E090E00C947C100E94E81A0C9461 -:1029C000C9140E94151A292F22952F7030E02C303F -:1029D00031054CF42A3031056CF422503109223093 -:1029E0003105A8F407C02C30310569F02F303105CE -:1029F00051F00DC0803F69F018F4803E40F409C0EA -:102A0000843F29F406C093FB882780F9089580E06D -:102A1000089581E00895CF93DF9300D000D01F92F6 -:102A2000CDB7DEB70F900F900F900F900F90DF9102 -:102A3000CF910895CF93DF9300D000D000D0CDB7D1 -:102A4000DEB726960FB6F894DEBF0FBECDBFDF917E -:102A5000CF9108951F93CF93DF93C091850116E026 -:102A600080918601C81799F0D0E01C9FF0011D9F4E -:102A7000F00D1124E957FE4F40815181628173812D -:102A8000848195810E941A152196C770E9CFDF9144 -:102A9000CF911F9108954091B7015091B801609175 -:102AA000B9017091BA018091BB019091BC010C9465 -:102AB0001A158091BC0182958F7009F054C08091E5 -:102AC000B901882309F44FC080918501A091860146 -:102AD0006091B7017091B8014091BA015091BB016A -:102AE000B6E08A1709F43FC090E041155105C1F1E5 -:102AF0007F3F11F46F3FA1F1B89FF001B99FF00D36 -:102B00001124E957FE4F218172132AC020816213DC -:102B100027C02281211124C0238134812417350745 -:102B200010F421503109241B350B283C3105C0F429 -:102B30002091BC012F7020612093BC0126E0289FCA -:102B4000F001299FF00D1124E457FE4F80818F7012 -:102B50008061808387EB91E00E94A2140C942A1577 -:102B600001968770BECF0895CF92DF92EF92FF92C9 -:102B70000F931F93CF93DF93CDB7DEB762970FB656 -:102B8000F894DEBF0FBECDBF8C0185E0F801DE01F9 -:102B90001D9601900D928A95E1F7D8014C911196FE -:102BA0005C91119712966C9112971396CD90DC90D0 -:102BB00014973091B7017091B8018091BA0190914A -:102BC000BB01009709F46BC17F3F19F43F3F09F443 -:102BD00066C1E090B901EE2009F4C0C02091BC01AB -:102BE000C816D90628F0F601E81BF90BCF0104C07E -:102BF000809590958C0D9D1DFF24F394883C910544 -:102C000078F0F12C207F09F0C6C07C2DD98AC88AC3 -:102C100089890E940B1587EB91E00E94A214B1C034 -:102C2000822F807F09F046C0751314C0341312C080 -:102C3000611110C02F7020612093BC010E944B15C0 -:102C400087EB91E00E94A2148091BC01D8011596F7 -:102C50008C932EC0CD2819F15F3F11F44F3FF9F04E -:102C6000F62E61111CC0809185012091860136E00D -:102C7000821709F45AC090E0389FF001399FF00D97 -:102C80001124E957FE4F7181571306C07081471315 -:102C900003C07281711103C001968770E9CFF62ECF -:102CA000662309F418C18091BC0181608093BC0146 -:102CB000F12C11C1751308C0341306C0611104C092 -:102CC0008091BC01D801C3C04D875E878D859E85EC -:102CD0006A8B0E94E1146A898823E1F16623D1F1AD -:102CE0002091BC01822F82958F7090E0029774F042 -:102CF0008091B7019091B80198878F831986DB8600 -:102D0000CA862C87CE0107960E94A21486E0F8019D -:102D1000A7EBB1E001900D928A95E1F70E94591559 -:102D20000E944B15FF24F394D6C04D875E878D8596 -:102D30009E850E94151A292F22952F7030E022308F -:102D400031050CF0BCC09F7009F0B6C0805E8830C1 -:102D500008F4C1C0C8010E94A214E4CFC816D90665 -:102D600008F453C0F601E81BF90BCF01883C91052C -:102D700008F450C0F12C7C2DD98AC88A89890E9418 -:102D80000B15E7EBF1E086E0DF011D928A95E9F78C -:102D90000E944B15A0C0751314C0341312C06111EA -:102DA00010C08091BC01F8018583C8010E94A21463 -:102DB00086E0E7EBF1E0DF011D928A95E9F7FE2C52 -:102DC0008AC04D875E878D859E856A8B0E94E1143F -:102DD0006A89882309F4BECF662309F4BBCF20910A -:102DE000BC01822F82958F7090E002970CF48ECFF9 -:102DF0008091B7019091B8019A8389831B82DD820B -:102E0000CC822E83CE0101967FCF809590958C0D3C -:102E10009D1DACCFF62E662309F49CCF75132EC0F2 -:102E200034132CC02091BC0120FD1FC0822F82953D -:102E30008F70D9F0D80115962C9315978F3049F0E3 -:102E40008F5F982F9295907F822F8F70892B159688 -:102E50008C93C8010E94A21486E0F801A7EBB1E0B0 -:102E600001900D928A95E1F793CF86E0F801A7EBE8 -:102E7000B1E001900D928A95E1F72DC04D875E87F4 -:102E80008D859E850E94E114811140CF8091BC0107 -:102E900081608093BC01C8010E94A2141CC06623FB -:102EA00009F458CF4D875E878D859E850E94E11479 -:102EB000882309F44FCF2ACF811148CF0CC024308A -:102EC00031050CF047CF9F7009F440CFF801958190 -:102ED000907F09F03BCF8F2D62960FB6F894DEBF3E -:102EE0000FBECDBFDF91CF911F910F91FF90EF905B -:102EF000DF90CF9008951F93CF93DF93CDB7DEB7C8 -:102F00002C970FB6F894DEBF0FBECDBF4F83588706 -:102F100069877A878B879C87CE0107960E94B415B4 -:102F2000882369F08F8198852A853B85232BF1F1D1 -:102F30009F3F09F063C08F3F09F060C037C086E053 -:102F4000FE013796DE01119601900D928A95E1F708 -:102F50006F817885EA85FB85309741F17F3F11F4D9 -:102F60006F3F21F12091860130E0C9010196877001 -:102F700099274091850150E08417950709F447C0CF -:102F800069837A83FD83EC8396E0929FD001939FBF -:102F9000B00D1124A957BE4FFE01319601900D923C -:102FA0009A95E1F7809386010E942A1516E0809198 -:102FB0008501909186018917C1F1189FC0011124E4 -:102FC00089579E4F0E94B415882379F1E0918501BD -:102FD0001E9FF0011124E957FE4F4081518162810B -:102FE0007381848195810E941A158091850190E0FA -:102FF00001968770992780938501D9CF4F81588595 -:1030000069857A858B859C850E941A15CFCF0E9491 -:10301000DD141092860110928501E7EBF1E086E065 -:10302000DF011D928A95E9F7C1CF2C960FB6F8946F -:10303000DEBF0FBECDBFDF91CF911F910895EF92FC -:10304000FF920F931F93CF93DF938C01009709F4A6 -:103050006CC0F12CEE24E394E8012196F8018491F0 -:10306000843740F4843008F051C0813081F08230E0 -:1030700019F15BC0853709F444C0A8F19CE7980FAB -:10308000903708F052C08F770E94281241C00E5F1F -:103090001F4FFE01C49180E28C0F883048F4C77046 -:1030A0008E2D01C0880FCA95EAF70E94FB1A14C042 -:1030B0008C2F0E9460112DC00E5F1F4FFE01C49126 -:1030C00080E28C0F883058F4C7708E2D01C0880FB5 -:1030D000CA95EAF70E94011B0E94221B1AC08C2F7E -:1030E0000E94281216C00E5F1F4FFE01C491CC2310 -:1030F00081F08FE99FE00197F1F700C00000C15017 -:10310000F6CF0E5F1F4FFE01F49003C00E946011C6 -:103110008E018F2D882309F49FCFEFE9FFE03197CF -:10312000F1F700C000008150F5CFDF91CF911F91E2 -:103130000F91FF90EF90089508956093C1017093EF -:10314000C2018093C3019093C4010C94C9140F93DE -:103150001F930091C1011091C2012091C3013091D0 -:10316000C401DC01CB01802B912BA22BB32B8093CC -:10317000C1019093C201A093C301B093C4011F91F8 -:103180000F910C94C9140F931F930091C1011091DA -:10319000C2012091C3013091C401DC01CB01802325 -:1031A0009123A223B3238093C1019093C201A093E2 -:1031B000C301B093C4011F910F910C94C9140F93D4 -:1031C0001F930091C1011091C2012091C301309160 -:1031D000C401DC01CB0180279127A227B32780936C -:1031E000C1019093C201A093C301B093C4011F9188 -:1031F0000F910C94C9141092BD011092BE0110924F -:10320000BF011092C0010C94C91441E050E060E08D -:1032100070E004C0440F551F661F771F8A95D2F7D0 -:103220004093BD015093BE016093BF017093C001F4 -:103230000C94C91441E050E060E070E004C0440F19 -:10324000551F661F771F8A95D2F78091BD01909117 -:10325000BE01A091BF01B091C001482B592B6A2B30 -:103260007B2B4093BD015093BE016093BF017093CF -:10327000C0010C94C91441E050E060E070E004C06B -:10328000440F551F661F771F8A95D2F740955095BA -:10329000609570958091BD019091BE01A091BF0194 -:1032A000B091C001482359236A237B234093BD0179 -:1032B0005093BE016093BF017093C0010C94C91478 -:1032C00041E050E060E070E004C0440F551F661F0D -:1032D000771F8A95D2F78091BD019091BE01A09190 -:1032E000BF01B091C001482759276A277B27409327 -:1032F000BD015093BE016093BF017093C0010C9457 -:10330000C9140F931F930091BD011091BE0120912C -:10331000BF013091C001DC01CB01802B912BA22B8E -:10332000B32B8093BD019093BE01A093BF01B093D6 -:10333000C0011F910F910C94C9140F931F9300911A -:10334000BD011091BE012091BF013091C001DC018F -:10335000CB0180239123A223B3238093BD019093BB -:10336000BE01A093BF01B093C0011F910F910C94B7 -:10337000C9140F931F930091BD011091BE012091BC -:10338000BF013091C001DC01CB0180279127A2272A -:10339000B3278093BD019093BE01A093BF01B0936A -:1033A000C0011F910F910C94C9140895CF92DF9220 -:1033B000EF92FF920F931F93CF93DF938C01C090F6 -:1033C000C101D090C201E090C301F090C40180918E -:1033D000BD019091BE01A091BF01B091C001C82A6A -:1033E000D92AEA2AFB2ACFE1D0E0D701C6010C2E68 -:1033F00004C0B695A795979587950A94D2F780FF54 -:1034000006C0B8018C2F0E94A208019721F42197D1 -:1034100060F780E001C08C2FDF91CF911F910F9159 -:10342000FF90EF90DF90CF900895CF93DF93EC0162 -:103430000E94D619BE010E94A208DF91CF91089583 -:10344000CB010E94151A08958091C5018595859537 -:10345000859508958091C5018770089598E0899FAA -:1034600090011124262B2093C5010C941A19209148 -:10347000C501809582238093C501982F977069F4C8 -:1034800030E0482F552747FD50952417350729F080 -:103490008595859585950C943B1908959091C50166 -:1034A000977081E009F480E0089590910C019923D0 -:1034B00021F090910D01911109C020910E013091E0 -:1034C0000F01F90132969FEF40E01FC0982F9695AB -:1034D000969596959F3050F5E0910E01F0910F0171 -:1034E000E90FF11D877021E030E0A90102C0440F0F -:1034F000551F8A95E2F7CA019181892B818308952E -:103500009F3F39F04F5F4E3041F051915813F8CF43 -:103510000DC05111F7CF942FF5CF9F3F39F0F9012E -:10352000E90FF11D97FDFA95828308950895909112 -:103530000C01992321F090910D01911109C0209166 -:103540000E0130910F01F9013296205F3F4F1FC0ED -:10355000982F9695969596959F30F0F4E0910E01F0 -:10356000F0910F01E90FF11D877021E030E0A90112 -:1035700002C0440F551F8A95E2F7CA0180959181D8 -:103580008923818308953196E217F30729F090810A -:103590009813F9CF1082F7CF089581E090E0E09181 -:1035A0000E01F0910F01E80FF91F10820196803192 -:1035B0009105A9F708959091D901892B8093D9019C -:1035C000089580959091D90189238093D901089518 -:1035D0001092D90108959091D801892B8093D80138 -:1035E000089580959091D80189238093D8010895FA -:1035F0001092D80108959091D701892B8093D7011B -:10360000089580959091D70189238093D7010895DB -:103610001092D70108958093C60108951092C601B3 -:10362000089580910E0190910F01FC0131969C014B -:10363000205F3F4F80E0919191118F5FE217F30778 -:10364000D1F70895E0910E01F0910F018091D90119 -:103650008083E0910E01F0910F0190818091D8015B -:10366000892B8083E0910E01F0910F019081809170 -:10367000D701892B80838091C601882361F0E09176 -:103680000E01F0910F019081892B80830E94111B04 -:1036900081111092C60180910E0190910F010C943E -:1036A000501020E0009739F0AC01415051098423BB -:1036B00095232F5FF7CF822F0895CF92DF92EF925D -:1036C000FF926C01EE24FF24C114D104E104F10443 -:1036D00021F0C701B60120E101C020E0C72ED82E9D -:1036E000E92EFF24C114D104E104F10419F0285F8C -:1036F000C701B6016B017C0154E0F694E794D794BE -:10370000C7945A95D1F7C114D104E104F10419F01A -:103710002C5FC701B6016B017C0142E0F694E7948F -:10372000D794C7944A95D1F7C114D104E104F104A8 -:1037300019F02E5FC701B601DC01CB01B695A79544 -:1037400097958795892B8A2B8B2B09F02F5F822FDA -:10375000FF90EF90DF90CF9008958091F101843039 -:1037600021F11092DB0120E488E190E00FB6F8949B -:10377000A895809360000FBE2093600080E00E94B7 -:103780003D0983B7817F846083BF83B7816083BF36 -:103790007894889583B78E7F83BF88E10FB6F894BD -:1037A00080936000109260000FBE08950895089500 -:1037B0000E94D61B0E94A1030E94D71B0E94960460 -:1037C00091E0811101C090E0892F08950E94DD14DD -:1037D0000E9444100C943D0982E084BD93E095BDA5 -:1037E0009AEF97BD80936E0008952FB7F89480915B -:1037F000DC019091DD01A091DE01B091DF012FBFCE -:103800000895CF92DF92EF92FF920F931F932FB7FD -:10381000F8944091DC015091DD016091DE017091DE -:10382000DF012FBF6A017B01EE24FF248C0120E021 -:1038300030E0C016D106E206F30610F441505109FB -:103840009A01281B390BC9011F910F91FF90EF902E -:10385000DF90CF9008951F920F920FB60F92112410 -:103860008F939F93AF93BF938091DC019091DD0183 -:10387000A091DE01B091DF010196A11DB11D8093E1 -:10388000DC019093DD01A093DE01B093DF01BF91D5 -:10389000AF919F918F910F900FBE0F901F90189531 -:1038A0000E94410DF8942FEF87EA91E62150804065 -:1038B0009040E1F700C0000087E090EBDC018093CE -:1038C000FB019093FC01A093FD01B093FE019CE0ED -:1038D00088E10FB6F894A895809360000FBE90938E -:1038E0006000FFCFEF92FF920F931F93CF93DF9370 -:1038F000D82FCDE08C2F0E948F0405E010E0E82E39 -:10390000F12CC701002E02C0959587950A94E2F725 -:1039100080FF09C0602F7C2F80E00E944D06D813E5 -:1039200002C081E006C00150110958F7C15010F7DC -:1039300080E0DF91CF911F910F91FF90EF9008955C -:10394000CF93C82F8CE20E94721C882321F08C2F09 -:10395000CF910C94721C80E0CF910895CF930E9478 -:10396000F51D811102C00E94DB1DC5E6C15049F062 -:103970000E94A1038FE39CE90197F1F700C00000CA -:10398000F5CF89E20E94A01C811113C18AE20E9436 -:10399000A01C81110E94DB1D85E00E94A01C8111EA -:1039A0000E94501C0E94001E8093DA0187E00E9452 -:1039B000A01C8823A9F18BE10E94A01C882351F050 -:1039C0008091DA0181FB222720F991E0922790FB78 -:1039D00081F90EC08EE00E94A01C882361F08091C6 -:1039E000DA0182FB222720F991E0922790FB82F9ED -:1039F0008093DA0115C080E10E94A01C9091DA0149 -:103A0000882341F093FB222720F981E0822780FB65 -:103A100093F904C0892F809580FB90F99093DA0187 -:103A20008091DA010E94041E0E94121E8093FA0106 -:103A300080EE0E94A01C882341F08091FA01982F0B -:103A4000909590FB80F98093FA0189E30E94A01C75 -:103A5000882359F08091FA0181FB222720F991E017 -:103A6000922790FB81F98093FA0182EE0E94A01CBC -:103A7000882359F08091FA0182FB222720F991E0F6 -:103A8000922790FB82F98093FA0186EE0E94A01C97 -:103A9000882359F08091FA0183FB222720F991E0D5 -:103AA000922790FB83F98093FA0183EE0E94A01C79 -:103AB000882359F08091FA0184FB222720F991E0B4 -:103AC000922790FB84F98093FA0185E30E94A01C61 -:103AD000882359F08091FA0185FB222720F991E093 -:103AE000922790FB85F98093FA0181E30E94A01C44 -:103AF000882359F08091FA0186FB222720F991E072 -:103B0000922790FB86F98093FA0181E10E94A01C24 -:103B1000882359F08091FA0187FB222720F991E050 -:103B2000922790FB87F98093FA018091FA010E9415 -:103B3000161E8091FA0187FB882780F980930D017A -:103B400087E20E94A01CC82F8EE10E94A01C811158 -:103B5000C2608FE10E94A01C8111C46080E20E94BB -:103B6000A01C8111C86081E20E94A01C8111C0616B -:103B700082E20E94A01C8111C06283E20E94A01C0C -:103B80008111C06484E20E94A01C882311F0C068E7 -:103B900002C0CC2329F08C2F0E940D1E6C2F03C075 -:103BA0000E94091E682F70E080E090E0CF910C9495 -:103BB0009D18CF9108956DEE7EEF80E090E00E9419 -:103BC000472460E082E090E00E94352460E083E0DA -:103BD00090E00E94352460E084E090E00E9435246B -:103BE00060E085E090E00C94352480E090E00E9455 -:103BF0002F2421E08D3E9E4F09F020E0822F089572 -:103C000082E090E00C942724682F82E090E00C94EE -:103C1000352483E090E00C942724682F83E090E023 -:103C20000C94352484E090E00C942724682F84E0E1 -:103C300090E00C9435248091E20180FF0BC06091EC -:103C4000130185E0689FB0011124759567957595FE -:103C500067952BC081FF09C06091130185E0689FC3 -:103C6000B00111247595679520C082FF07C060914F -:103C7000130185E0689FB001112417C09091E30102 -:103C80009923D1F060911201961788F720911301C2 -:103C900085E0289F90011124929FA001939F500DD1 -:103CA000112470E0CA010E94F9236038710540F4C4 -:103CB0006115710539F002C065E070E0862F089546 -:103CC0008FE7089581E008958091E20180FF08C0A8 -:103CD0006091110170E0759567957595679521C0A4 -:103CE00081FF06C06091110170E07595679519C05C -:103CF00082FF04C06091110170E010C09091E30157 -:103D00009923C1F0609110019617A0F780911101DD -:103D1000899FC001112470E00E94F9236038710569 -:103D200028F46115710521F0862F08958FE7089515 -:103D300081E0089561E070E0F4CF803F21F40E94BB -:103D40001B1E819504C0813F29F40E941B1E809395 -:103D5000E6010895823F21F40E941B1E819504C054 -:103D6000833F29F40E941B1E8093E5010895893F3B -:103D700019F40E94641E05C08A3F31F40E94641E3B -:103D800081958093E70108958B3F21F40E94641E82 -:103D9000819504C08C3F29F40E94641E8093E80141 -:103DA0000895843F21F48091E401816017C0853F2C -:103DB00021F48091E401826011C0863F21F480915A -:103DC000E40184600BC0873F21F48091E4018860A6 -:103DD00005C0883F31F48091E40180618093E40163 -:103DE00008958D3F21F48091E20181600BC08E3FE8 -:103DF00021F48091E201826005C08F3F29F4809117 -:103E0000E20184608093E2010895803F39F480915B -:103E1000E60187FF6CC01092E60169C0813F29F47A -:103E20008091E6011816BCF362C09091E501823FD3 -:103E300029F497FF5CC01092E50159C0833F19F443 -:103E40001916CCF354C0893F41F48091E70118164C -:103E50000CF04DC01092E7014AC08A3F29F48091CE -:103E6000E70187FF44C0F6CF8B3F39F48091E8012A -:103E700087FF3DC01092E8013AC08C3F29F4809141 -:103E8000E8011816BCF333C0843F21F48091E401AB -:103E90008E7F17C0853F21F48091E4018D7F11C092 -:103EA000863F21F48091E4018B7F0BC0873F21F492 -:103EB0008091E401877F05C0883F31F48091E4015F -:103EC0008F7E8093E40113C08D3F21F48091E20145 -:103ED0008E7F0BC08E3F21F48091E2018D7F05C063 -:103EE0008F3F29F48091E2018B7F8093E2018091E2 -:103EF000E50181110EC08091E60181110AC0809117 -:103F0000E701811106C08091E801811102C0109281 -:103F1000E301089584EE91E00E945B100E94F51B7E -:103F20009093E1018093E00108951F93CF93DF9375 -:103F30008091E0019091E1010E94011CAC019091FF -:103F4000E301992321F02091140130E006C0209173 -:103F500015018AE0289F900111244217530708F4A5 -:103F600086C08091E501C091E601D091E7011091F2 -:103F7000E801811107C0C11176C0D11174C01111BF -:103F800072C075C09F3F19F09F5F9093E3011816B0 -:103F900024F40E941B1E8093E5018091E50187FFB8 -:103FA00005C00E941B1E81958093E5011C1624F418 -:103FB0000E941B1E8093E6018091E60187FF05C0E9 -:103FC0000E941B1E81958093E6016091E5016623A6 -:103FD00039F1C091E601CC2319F1772767FD70957F -:103FE000872F972F0E940A2323E333E343E35FE302 -:103FF0000E946E230E94D7226093E5016C2F7727E1 -:1040000067FD7095872F972F0E940A2323E333E3E0 -:1040100043E35FE30E946E230E94D7226093E60190 -:104020001D1624F40E94641E8093E7018091E7012D -:1040300087FF05C00E94641E81958093E7011116D9 -:1040400024F40E94641E8093E8018091E80187FFB8 -:1040500005C00E94641E81958093E801DF91CF9195 -:104060001F910C948A1F9F3F09F08ECF96CFDF914E -:10407000CF911F910895E4EEF1E085E0DF011D92FC -:104080008A95E9F71092E3011092E20108958330D6 -:1040900081F128F4813059F08230D1F008958530D3 -:1040A00009F449C0B8F1863009F456C008958091EA -:1040B0001501262F30E0280F311D2F3F310524F444 -:1040C000680F6093150108958FEF8093150108958F -:1040D00080911401262F30E0280F311D2F3F31052C -:1040E00024F4680F6093140108958FEF80931401F6 -:1040F000089580911301262F30E0280F311D2F3FA6 -:10410000310524F4680F6093130108958FEF8093B5 -:104110001301089580911201262F30E0280F311DE0 -:104120002F3F310524F4680F6093120108958FEF3B -:1041300080931201089580911101262F30E0280FFD -:10414000311D2F3F310524F4680F6093110108954C -:104150008FEF80931101089580911001262F30E098 -:10416000280F311D2F3F310524F4680F6093100193 -:1041700008958FEF809310010895833011F128F492 -:10418000813049F0823091F00895853081F120F13D -:104190008630C1F1089580911501681720F4861BBF -:1041A00080931501089510921501089580911401CE -:1041B000681720F4861B809314010895109214014F -:1041C000089580911301681720F4861B80931301D2 -:1041D000089510921301089580911201681720F438 -:1041E000861B809312010895109212010895809108 -:1041F0001101681720F4861B809311010895109215 -:104200001101089580911001681720F4861B809396 -:10421000100108951092100108950F931F938D318E -:1042200009F46BC008F03FC08E3009F47FC0C0F4C1 -:10423000873009F469C068F4863009F0B1C0809114 -:10424000DA01817F8E7F8093DA0181E08093EA0139 -:10425000A8C0883009F4A2C08B3009F49FC0A0C068 -:10426000863109F49BC078F4803109F472C0813141 -:1042700009F096C00E94DD1490910D0181E089271C -:1042800080930D018BC0893109F488C08B3109F00E -:1042900087C08091DA0181FB222720F991E09227E3 -:1042A00090FB81F94CC0853309F470C048F4873223 -:1042B00009F46CC008F459C0893209F467C070C0B1 -:1042C000833438F48A3308F04EC0883309F466C06A -:1042D00067C0833409F45AC0883409F061C00E9471 -:1042E000DD140FEF13ED20E3015010402040E1F703 -:1042F00000C000000E94501C51C00E9491220E94E8 -:1043000044100E943D094AC09091DA01892F80959E -:10431000817080FB90F929F0966098609093DA01A3 -:1043200040C0997F977F9093DA0138C08091DA017D -:1043300082FB222720F991E0922790FB82F980935B -:10434000DA01992359F18091DA0181608093DA01D1 -:1043500025C08091DA0183FB222720F991E0922782 -:1043600090FB83F9ECCF895301C08D5141E050E0BF -:1043700060E070E08A019B0104C0000F111F221F42 -:10438000331F8A95D2F7C901B80104C061E070E01B -:1043900080E090E00E949D180E94DD1481E001C041 -:1043A00080E01F910F91089580E0089580E00895C6 -:1043B000CF93C82F8091EA01813079F018F08230D4 -:1043C000E9F187C0E0910E01F0910F018081813108 -:1043D00069F0823209F07FC009C0E0910E01F091CE -:1043E0000F018081813111F0823261F48C2F0E94A3 -:1043F000D421811104C08C2F0E940D211DC081E0A9 -:1044000090E01AC08C2F0E94D621811114C0C431B3 -:1044100079F048F4CB3079F0C03109F060C082E027 -:104420008093EA0108C0C93219F0C83321F057C09F -:104430001092EA0154C081E0817053C0C93289F101 -:1044400018F5C43171F1A8F4C73009F046C08AE00C -:104450008093150194E19093140193E090931301DC -:104460008093120188E08093110188E2809310010B -:1044700034C0CE51C63088F5EC2FF0E0E65DFE4F3B -:1044800080818093E90129C0CE34E9F020F4CB3457 -:1044900021F56AE013C0C13579F0C235F1F461E06D -:1044A0000DC08091E901882319F01092E90115C02F -:1044B00081E08093EA0115C061E006C08091E901C6 -:1044C0000E9447200AC06AE08091E9010E94BD2055 -:1044D00004C01092EA0180E004C081E002C080E0E4 -:1044E000ABCFCF910895E1E8F0E0808188608083D0 -:1044F0008081816080838FB7F89493E090938900E6 -:1045000090ED909388008FBF0895EFE6F0E08081F2 -:10451000826080830895EFE6F0E080818D7F808364 -:104520000895EFE6F0E0908182E089278083089586 -:104530001F920F920FB60F9211242F933F934F9318 -:104540005F936F937F938F939F93AF93BF93EF93FB -:10455000FF938091EB019091EC0101969093EC0117 -:104560008093EB01811103C082E00E943D09E0913C -:10457000EC01E695E695F0E0E05AFA4FE49180917F -:10458000EB018E1303C080E00E943D09FF91EF9183 -:10459000BF91AF919F918F917F916F915F914F915B -:1045A0003F912F910F900FBE0F901F90189504D040 -:1045B0006894B1118DC0089570D088F09F5790F025 -:1045C000B92F9927B751A0F0D1F0660F771F881F38 -:1045D000991F1AF0BA95C9F712C0B13081F077D09F -:1045E000B1E0089574C0672F782F8827B85F39F03D -:1045F000B93FCCF3869577956795B395D9F73EF497 -:1046000090958095709561957F4F8F4F9F4F08953E -:10461000E89409C097FB3EF490958095709561955C -:104620007F4F8F4F9F4F9923A9F0F92F96E9BB2712 -:104630009395F695879577956795B795F111F8CF8E -:10464000FAF4BB0F11F460FF1BC06F5F7F4F8F4FF9 -:104650009F4F16C0882311F096E911C0772321F0EF -:104660009EE8872F762F05C0662371F096E8862F87 -:1046700070E060E02AF09A95660F771F881FDAF7DE -:10468000880F9695879597F9089557FD9058440F90 -:10469000551F59F05F3F71F04795880F97FB991FA1 -:1046A00061F09F3F79F0879508951216130614065E -:1046B000551FF2CF4695F1DF08C0161617061806EB -:1046C000991FF1CF86957105610508940895E894C6 -:1046D000BB2766277727CB0197F908950BD078C0C1 -:1046E00069D028F06ED018F0952309F05AC05FC049 -:1046F0001124EECFCADFA0F3959FD1F3950F50E0C0 -:10470000551F629FF001729FBB27F00DB11D639F83 -:10471000AA27F00DB11DAA1F649F6627B00DA11D29 -:10472000661F829F2227B00DA11D621F739FB00DCF -:10473000A11D621F839FA00D611D221F749F33273F -:10474000A00D611D231F849F600D211D822F762FD8 -:104750006A2F11249F5750408AF0E1F088234AF0D5 -:10476000EE0FFF1FBB1F661F771F881F9150504021 -:10477000A9F79E3F510570F014C0AACF5F3FECF33C -:10478000983EDCF3869577956795B795F795E7950D -:104790009F5FC1F7FE2B880F911D9695879597F91E -:1047A000089597F99F6780E870E060E008959FEFB3 -:1047B00080EC089500240A941616170618060906B8 -:1047C000089500240A941216130614060506089587 -:1047D000092E0394000C11F4882352F0BB0F40F40F -:1047E000BF2B11F460FF04C06F5F7F4F8F4F9F4F4F -:1047F000089597FB072E16F4009407D077FD09D093 -:104800000E94132407FC05D03EF4909581959F4F9C -:104810000895709561957F4F0895EE0FFF1F0590E5 -:10482000F491E02D0994AA1BBB1B51E107C0AA1FFC -:10483000BB1FA617B70710F0A61BB70B881F991F41 -:104840005A95A9F780959095BC01CD010895F999E5 -:10485000FECF92BD81BDF89A992780B50895A8E151 -:10486000B0E042E050E00C944F24262FF999FECF9F -:1048700092BD81BDF89A019700B4021639F01FBAB3 -:1048800020BD0FB6F894FA9AF99A0FBE08950196D2 -:10489000272F0E9436240C943524DC01CB01FC0127 -:1048A000F999FECF06C0F2BDE1BDF89A319600B489 -:0E48B0000D9241505040B8F70895F894FFCF94 -:1048BE0002203F09CD09AA09760942090101C70163 -:1048CE0028080A03140A3F4D36392105D4049E04E4 -:1048DE006504F80311042A044304010203040506C7 -:0448EE0007080900AE -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/compiled.hex b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/compiled.hex deleted file mode 100644 index 1debb026a..000000000 --- a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/compiled.hex +++ /dev/null @@ -1,1120 +0,0 @@ -:100000000C9425020C9469020C9469020C94690208 -:100010000C9469020C9469020C9469020C946902B4 -:100020000C9469020C9469020C94800D0C94520E8D -:100030000C9469020C9469020C9469020C94690294 -:100040000C9469020C940C210C9469020C946902C2 -:100050000C9469020C94EE1B0C9469020C946902D6 -:100060000C9469020C9469020C9469020C94690264 -:100070000C9469020C9469020C9469020C94690254 -:100080000C9469020C9469020C9469020C94690244 -:100090000C9469020C9469020C9469020C94690234 -:1000A0000C9469020C9469020C946902BF0EE10E73 -:1000B000CF0FE10ECF0F260F490FCF0F9E0FB10FBD -:1000C00080128012AF12AF12E512051336143614E7 -:1000D00010133614C013C0132714361436143014FA -:1000E000CD13CD13CD13CD13CD13CD13CD13CD1310 -:1000F000CD13CD13CD13CD13CD13CD13CD13CD1300 -:10010000DF13EC13F313FA13041435002B00E00093 -:10011000E1003A0000001E00140004001D003B0036 -:10012000E2001F001A0016001B003C00296120009D -:100130000700080006003D002A0021000900170002 -:100140001900E300A90022000E000A0005000000CB -:10015000AA003E00310000002F000000A8003F0070 -:100160000153000030000000AE0023000D001C0011 -:1001700013000000AB002400180011001000E7007D -:10018000AC00250015000C00360050002C002600A5 -:100190000F001200370051003400270033000B001D -:1001A00038005200E6002E002D002800E5004F0028 -:1001B0000000010001000100010001000000010039 -:1001C0000100010001000100010001000100010027 -:1001D000010001000100010008000700010001000A -:1001E00001000100150009000100010001000100EB -:1001F00017000100010000000100010001000000E3 -:1002000001000000010001000100000001000000E9 -:10021000010001001C000B001100000001000100A2 -:1002200018000D0001000100010001000C000E008B -:10023000010001000100010012000F000100010097 -:100240000100010013003300010001000100010062 -:1002500001000100010001000000160345007200CA -:1002600067006F0044006F007800200045005A00CE -:10027000000016034500720067006F0044006F0025 -:100280007800200045005A00000004030904090218 -:100290006D00040100A0FA0904000001030101003F -:1002A0000921110100012240000705810308000A0D -:1002B00009040100010301020009211101000122CA -:1002C0004D000705820308000A090402000103002B -:1002D00000000921110100012236000705830308EF -:1002E000000A0904030001030000000921110100B4 -:1002F00001223900070584031000011201100100DA -:10030000000008EDFE0713010001020001050109CC -:1003100006A101050719E029E715002501950875D3 -:1003200001810205081901290595057501910295BC -:10033000017503910105071900297715002501951D -:100340007875018102C005010980A10185021601AD -:100350000026B7001A01002AB70075109501810028 -:10036000C0050C0901A1018503160100269C021A93 -:1003700001002A9C02751095018100C00501090247 -:10038000A1010901A100050919012905150025018F -:1003900095057501810295017503810105010930FB -:1003A00009311581257F9502750881060938158167 -:1003B000257F950175088106050C0A3802158125EF -:1003C0007F950175088106C0C005010906A10105D8 -:1003D0000719E029E71500250195087501810295A7 -:1003E0000175088101050819012905950575019117 -:1003F000029501750391010507190029FF150026D3 -:10040000FF00950675088100C00000000000000094 -:1004100000000000010204060A0F17202C3A4A5D72 -:1004200071879DB3C7DAE9F5FCFFFCF5E9DAC7B3DC -:100430009D87715D4A3A2C20170F0A0604020100BD -:100440000000000000000000000011241FBECFEFDC -:10045000DAE0DEBFCDBF04B603FE24C08091FD010B -:100460009091FE01A091FF01B09100028730904B66 -:10047000A740B04BB9F41092FD011092FE0110920A -:10048000FF011092000214BE84B7877F84BF88E109 -:100490000FB6F89480936000109260000FBEE0E009 -:1004A000FFE3099511E0A0E0B1E0E6EAF5E402C05F -:1004B00005900D92A433B107D9F711E0A4E3B1E0A0 -:1004C00001C01D92AD3FB107E1F70E94C80A0C942C -:1004D000D1220C9400001092B9008AE08093B800F9 -:1004E000089594EA9093BC009091BC0097FFFCCFD4 -:1004F0009091B900987F983021F0903111F081E00F -:1005000008958093BB0084E88093BC008091BC0078 -:1005100087FFFCCF8091B900887F883111F080344B -:1005200071F780E0089584E98093BC008091BC005D -:1005300084FDFCCF08958093BB0084E88093BC00C9 -:100540008091BC0087FFFCCF9091B900987F81E03B -:10055000983209F480E0089584E88093BC0080918B -:10056000BC0087FFFCCF8091BB00089580B38C70E6 -:1005700080BB81B3836F81BB08958091010181119C -:1005800015C080E40E9471028093010181110CC0AA -:1005900082E10E949B0280930101811105C08FEFCF -:1005A0000E949B02809301010E94930284B1807F8C -:1005B00084B985B1807F85B98AB1837F8AB98BB1CF -:1005C000837F8BB93E98469808950E948704809354 -:1005D00001010E94BD020E94B602A5E3B1E0E3E47E -:1005E000F1E08EE08E0F11921D928E13FCCF0C94D1 -:1005F00071040E948704809301010E94BD020E9441 -:10060000B602A5E3B1E0E3E4F1E08EE08E0F1192D3 -:100610001D928E13FCCF0895BF92CF92DF92EF927E -:10062000FF920F931F93CF93DF9380910101882353 -:1006300079F0809134018F5F80933401811108C07B -:100640000E94870480930101811102C00E94190455 -:1006500005E311E0C0E0D0E0DD24D39482E0C82EB1 -:10066000EE24E394F12CC730D10500F5809101010F -:10067000811164C080E40E947102809301018111A4 -:1006800012C082E10E949B028093010181110BC084 -:10069000C7010C2E01C0880F0A94EAF780950E94CA -:1006A0009B02809301010E94930248C0CA30A1F0CE -:1006B00028F4C83059F0C93061F005C0CC3089F059 -:1006C00070F0CD3089F0209A289810C0219A29988E -:1006D0000DC0229A2A980AC0239A2B9807C0529AD2 -:1006E00001C0539A5B9802C03E9A469890EA9A9548 -:1006F000F1F79FB1799902C082E001C080E091706A -:100700009D25982B7C9902C084E001C080E0892B54 -:100710007D9902C038E001C030E0832B7E9902C091 -:1007200020E101C020E0822B9FB19095991F99276D -:10073000991F9295990F907E892B0FC0809101018E -:10074000811149C080E40E947102809301018823D5 -:1007500079F1B12C0E9493028B2DF80190819817AA -:1007600019F08083C09200010E94BD0221960F5FA4 -:100770001F4FCE30D10509F076CF8091000188233C -:1007800061F1815080930001882339F08FE99FE067 -:100790000197F1F700C0000020C0A3E4B1E0E5E359 -:1007A000F1E0CF01825F91919D938E13FCCF15C034 -:1007B00083E10E949B02809301018111CACF81E4F1 -:1007C0000E947102809301018111C3CF0E94AC028B -:1007D000B82EB094BFCF80E0C0CF0E94170481E054 -:1007E000DF91CF911F910F91FF90EF90DF90CF900D -:1007F000BF900895E82FF0E0ED5BFE4F80810895F3 -:1008000008950F931F93CF93DF93C3E4D1E010E0DB -:100810000C2F025F899190E00E94151B180F0C139A -:10082000F9CF812FDF91CF911F910F9108950C94F3 -:10083000DA0456985E9825982D9826982E98279831 -:100840002F988FEF90E09093890080938800909389 -:100850008B0080938A0090938D0080938C00259A62 -:100860002D9A2FEF80E792E0215080409040E1F7F1 -:1008700000C00000269A2E9A2FEF80E792E02150C8 -:1008800080409040E1F700C00000279A2F9A2FEF98 -:1008900080E792E0215080409040E1F700C00000E6 -:1008A00025982D982FEF80E792E0215080409040CE -:1008B000E1F700C0000026982E982FEF80E792E025 -:1008C000215080409040E1F700C0000027982F9809 -:1008D00056985E9825982D9826982E9827982F98A8 -:1008E000089589EA8093800089E0809381002498AC -:1008F0002C983F988AB18F748AB96E98479A8BB1B9 -:10090000806B8BB9769A0E9419040C94D90480E20A -:10091000809301018091510181110EC00E946B02F0 -:1009200081E0809351012FEF83ED90E321508040CF -:100930009040E1F700C0000080E40E9471028093C3 -:10094000010181112EC00E949B028093010181113F -:1009500028C00E949B0280930101811122C08FE375 -:100960000E949B028093010181111BC00E9493028F -:1009700080E40E94710280930101811112C08CE019 -:100980000E949B028093010181110BC00E949B0277 -:1009900080930101811105C08FE30E949B02809327 -:1009A00001010E94930280910101089580E090E08E -:1009B000089508956091BE017091BF018091C001BA -:1009C0009091C1010E94211B56985E9825982D9800 -:1009D00026982E9827982F98813011F4259A2D9AD1 -:1009E000089581E0089581E008950C94F30408953A -:1009F000282F882339F090E02A3010F44D9608957E -:100A00000697089587E290E00895AF92BF92DF9233 -:100A1000EF92FF920F931F93CF93DF938C01FC0112 -:100A2000C081D181CE010E949A19BE010E94750831 -:100A3000EC01B8010E94F504882309F4C9C1F8014A -:100A40008281882309F4BEC080915E0181111FC09C -:100A5000C431F0E7DF0709F0B5C10E94F70481E077 -:100A600080935E010E94B81B90935D0180935C01AE -:100A7000109255011092570110925601109259018F -:100A80001092580110925B0110925A01A1C18091FD -:100A90005C0190915D010E94C41B883C910570F43B -:100AA00080915501E82FF0E0EE0FFF1FEA5AFE4F4C -:100AB000D183C0838F5F809355018AC1C13020E804 -:100AC000D20708F451C0F8018281882309F47EC05E -:100AD0005E01E894B7F880915401813079F050F0CC -:100AE0008230C1F482EE0E94241187E50E94241115 -:100AF00087E50EC082EE0E9424110CC080EE0E9499 -:100B0000241181EE0E94241188E10E94241188E1C1 -:100B10000E94EC118CE0E82EF12CC5010E2C02C0D5 -:100B2000969587950A94E2F78F700E94F804D82E64 -:100B30000E9424118D2D0E94EC11F4E0EF1AF108AF -:100B40002CEFE2162FEFF20641F78091540181302D -:100B500029F010F0823041F482EE04C080EE0E9451 -:100B6000EC1181EE0E94EC11C43180E7D80768F4E3 -:100B7000C23090E7D90708F046C0C115E0E7DE07AC -:100B800071F0C130D047A1F10CC1C33320E7D207C7 -:100B900009F4D8C0C433D04709F4EBC002C1F8014E -:100BA0008281882309F402C10E94A114FFEF24E38B -:100BB0008CE0F15020408040E1F700C000000E942E -:100BC000131C06C1C13080E8D80770F2C43120E799 -:100BD000D20708F0B3C0C23080E7D807A0F4C1152F -:100BE00090E7D90709F4E2C0C130D04709F0D9C075 -:100BF000F8018281882309F4D9C08091DB018160EA -:100C00008093DB01E5C0F8018281882309F4CEC01E -:100C10000E946D1C811102C00E94531C0E94801C06 -:100C200090E09093EF018093EE01C230F0E7DF0790 -:100C300021F48091EE0181607AC0C33020E7D207B1 -:100C400021F48091EE01826072C0C43080E7D80741 -:100C500021F48091EE0184606AC0C53090E7D90725 -:100C600019F48091EE0127C0C630E0E7DE0721F4D9 -:100C70008091EE0180615BC0C730F0E7DF0721F4AF -:100C80008091EE01806253C0C83020E7D20721F482 -:100C90008091EE0180644BC0C93080E7D80721F411 -:100CA0008091EE01806843C0CA3090E7D90729F4EB -:100CB0008091EE01846088603AC0CB30E0E7DE07C7 -:100CC00021F48091EE018E7F32C0CC30F0E7DF0757 -:100CD00021F48091EE018D7F2AC0CD3020E7D2072C -:100CE00021F48091EE018B7F22C0CE3080E7D807BF -:100CF00019F48091EE011AC08091EE01CF3090E797 -:100D0000D90711F48F7E13C0C031E0E7DE0711F47C -:100D10008F7D0DC0C131F0E7DF0711F48F7B07C075 -:100D2000C231D04711F48F7702C08B7F877F8093C9 -:100D3000EE018091EE010E94841C4AC0C333F0E7AB -:100D4000DF07A1F4F8018281882321F0109252017B -:100D500082E016C080915201811106C086E20E9495 -:100D6000241186E20E94EC1182E018C0C433D047FF -:100D7000C1F4F8018281882331F01092530180E29E -:100D80000E943B1225C080915301811106C087E269 -:100D90000E94241187E20E94EC1180E20E9442121C -:100DA00017C081E08093520180935301C801DF9105 -:100DB000CF911F910F91FF90EF90DF90BF90AF9078 -:100DC0000C94F104C130F0E8DF0708F081CECCCEFE -:100DD00080E0DF91CF911F910F91FF90EF90DF9016 -:100DE000BF90AF90089526E0729FF001112444E572 -:100DF000849FE00DF11D1124E60FF11DEE0FFF1F82 -:100E0000E65FFE4F859194910E948708811560E40A -:100E10009607B0F5811570E3970708F0DEC0803EB5 -:100E20009105D8F4803C910508F06CC0883A910592 -:100E300078F4853A910508F06BC08130910509F48A -:100E400052C108F40FC18430910508F04CC10AC1A9 -:100E50008B3B910508F467C005C18F3F910509F0F0 -:100E600048F4803F910508F0ADC0883E910508F434 -:100E70003AC1F8C0811520E2920708F0A5C0089594 -:100E8000811543E5940790F4811562E5960708F013 -:100E9000C8C0811571E5970708F0BEC0811520E52F -:100EA000920708F09DC09F70906A0895811545E5EE -:100EB0009407D8F4811564E5960708F0C8C0482F58 -:100EC0004695469570E2479FA001112483709927AB -:100ED00021E030E0B90102C0660F771F8A95E2F782 -:100EE000CB01842B952B9A680895811576E5970799 -:100EF00008F4B2C09C0130562115304108F0B2C050 -:100F00009F70AEC0FC01EE0FFF1FE657F04062C0BD -:100F1000853A910509F4A9C0863A910509F0A8C05F -:100F200082E890E40895883A910509F4A4C0893ACA -:100F3000910509F4A3C08A3A910509F4A2C08B3A3D -:100F4000910509F4A1C08C3A910509F4A0C08D3A2D -:100F5000910509F49FC0803B910509F49EC08E3A2B -:100F6000910509F49DC08F3A910509F49CC0813B1D -:100F7000910509F49BC0823B910509F49AC0833B1B -:100F8000910509F499C0843B910509F498C0853B0B -:100F9000910509F497C0863B910509F496C0873BFB -:100FA000910509F495C0883B910509F494C0893BEB -:100FB000910509F493C08A3B910509F492C080E041 -:100FC00094E4089590650895FC01FF70EE0FFF1FF3 -:100FD000E65FFE4F8591949108959927906C08954E -:100FE000482F437021E030E002C0220F331F4A95A2 -:100FF000E2F73C68AC0164E0569547956A95E1F7E5 -:101000004370342B8F708695869560E2869FC00171 -:101010001124822B932B0895982F8827816F906A33 -:101020000895482F4695469570E2479FA0011124E8 -:101030008370992721E030E0B90102C0660F771F65 -:101040008A95E2F7CB01842B952B9C680895982F05 -:101050008827846F906A08958F719927982F882721 -:101060009062089580E090E0089581E890E408950A -:1010700083E890E4089582EE94E4089589EE94E480 -:1010800008958AEE94E4089585EB94E4089586EB40 -:1010900094E4089587EB94E408958CEC94E4089527 -:1010A0008DEC94E4089583E895E408958AE895E446 -:1010B000089582E995E4089584E995E4089581E22C -:1010C00096E4089583E296E4089584E296E4089510 -:1010D00085E296E4089586E296E4089587E296E430 -:1010E00008958AE296E40895089596E0799FF001C4 -:1010F000112494E5899FE00DF11D1124E60FF11DE7 -:10110000EE0FFF1FE65FFE4F8591949108958238A0 -:10111000910549F1B0F48133910509F458C048F4C0 -:101120008932910509F44EC08A32910509F454C000 -:1011300008958533910509F440C08933910599F0EC -:101140000895833E910529F138F4803E910591F090 -:10115000823E9105A1F00895863E9105F9F0873E03 -:10116000910531F108952091EE0120FD3AC021FD55 -:1011700038C008958091EE0180FD35C032C0809165 -:10118000EE0182FF32C08091EE0184FD30C083EE1B -:1011900039C08091EE0182FD28C0F5CF8091EE012B -:1011A00083FF27C08091EE0184FD21C087EE2AC015 -:1011B0008091EE0183FD1DC0F5CF8091EE0185FD8C -:1011C0001AC01BC08091EE0185FD17C014C080912C -:1011D000EE0186FD14C015C08091EE0186FD11C0A0 -:1011E0000EC080EE0FC089E30DC082EE0BC080E020 -:1011F00009C086EE07C089E205C085E303C08AE224 -:1012000001C081E390E0089508950C940409809151 -:101210006F010895CF93DF9300D01F92CDB7DEB753 -:101220009C018091F401843019F593E099833B830C -:101230002A839093E9008FEF9091E800815095FD0B -:1012400006C095ED9A95F1F700008111F5CF8091D8 -:10125000E80085FF0DC040E050E063E070E0CE01A3 -:1012600001960E94700B8091E8008E778093E800D1 -:101270000F900F900F90DF91CF910895CF93DF9350 -:1012800000D01F92CDB7DEB72091F401243021F5B4 -:1012900022E029839B838A8383E08093E9008FEF98 -:1012A0009091E800815095FD06C095ED9A95F1F773 -:1012B00000008111F5CF8091E80085FF0DC040E06E -:1012C00050E063E070E0CE0101960E94700B8091C7 -:1012D000E8008E778093E8000F900F900F90DF91D9 -:1012E000CF9108952091F4012430F1F422E020936D -:1012F000E9002FEF3091E800215035FD06C035EDB3 -:101300003A95F1F700002111F5CF2091E80025FF73 -:101310000BC040E050E065E070E00E94700B8091EF -:10132000E8008E778093E8000895CF93DF93EC0177 -:101330009091F401943009F046C080910C0188230B -:10134000D9F080910D018823B9F09093E9008FEFD7 -:101350009091E800815095FD06C095E19A95F1F7CE -:1013600000008111F5CF8091E80085FF2CC040E09E -:1013700050E060E170E017C081E08093E9008FEFFA -:101380009091E800815095FD06C095ED9A95F1F792 -:1013900000008111F5CF8091E80085FF14C040E086 -:1013A00050E068E070E0CE010E94700B8091E80090 -:1013B0008E778093E80080E1FE01AFE5B1E0019017 -:1013C0000D928A95E1F7DF91CF9108958091F30115 -:1013D000811109C00E94050D0E94620D8091E200FA -:1013E00084608093E20008951092F30108950895B7 -:1013F0000C94F9200E94A91B0E94FF200E94081053 -:101400000C94050942E061EC81E00E947F0C42E00F -:1014100061EC82E00E947F0C42E061EC83E00E947C -:101420007F0C42E161EC84E00C947F0C8091F6012A -:10143000833009F455C030F4813071F0823009F402 -:101440008EC008958A3009F47AC08B3009F460C0E8 -:10145000893009F09CC020C08091F501813A09F0E3 -:1014600096C08091E800877F8093E8008091F90121 -:101470009091FA01892B21F460E18FE591E003C09E -:1014800060E080E090E070E00E94BB0B8091E8009B -:101490008B778093E80008958091F501813209F0FF -:1014A00076C08091F9019091FA01009719F00397A5 -:1014B00009F06DC08091E800877F8093E8008091FB -:1014C000E80082FD05C08091F4018111F8CF5FC072 -:1014D0008091F10080936F018091E8008B7753C079 -:1014E0008091F501813A09F052C08091F901909103 -:1014F000FA01892B09F04BC08091E800877F809327 -:10150000E8008091E80080FFFCCF80910C0136C09C -:101510008091F5018132D9F58091F9019091FA011C -:10152000892BA9F58091E800877F8093E8000E94CD -:10153000B40C8091F70180930C010C94A11480915C -:10154000F501813221F58091E800877F8093E800E2 -:101550000E94B40C8091F8018093700108958091ED -:10156000F501813AA1F48091E800877F8093E8003B -:101570008091E80080FFFCCF809170018093F100A2 -:101580008091E8008E778093E8000C94B40C089565 -:1015900084B7877F84BF88E10FB6F894809360009A -:1015A000109260000FBE80E880936100109261008D -:1015B0000E9457100E94050D0E94620D8091E2006A -:1015C00084608093E20078940E94E80F0E94591092 -:1015D00082E091E00E9403100E94E7208091F401D4 -:1015E000853069F40E94711B8091F2018823B1F368 -:1015F0000E949B1B882391F30E945A0BEFCF0E94FD -:101600005F10ECCF292F332723303105C9F064F464 -:101610002130310581F02230310509F043C08DE6DB -:1016200090E02EE832E042C021323105F1F0223262 -:10163000310541F137C082E190E02BEF32E036C056 -:1016400099278130910541F08230910541F0892B35 -:1016500049F5EAE8F2E005C0E2E7F2E002C0EAE5B7 -:10166000F2E0849190E09F0121C06430D8F4E62F2D -:10167000F0E0EE0FFF1FEE5DFE4F2081318189E02B -:1016800090E014C0643070F470E0FB01EE0FFF1FB7 -:10169000E65EFE4F20813181FB01EA5EFE4F8081D4 -:1016A00090E004C080E090E020E030E0FA01318377 -:1016B0002083089580E189BD82E189BD09B400FEDF -:1016C000FDCF8091D8008F7D8093D8008091E0007D -:1016D00082608093E0008091E00081FDFCCF08955E -:1016E000CF92DF92EF92FF920F931F93CF93DF93EE -:1016F000EC018B016A010E94D30C811133C0C1142B -:10170000D10439F0F60180819181081B190BC80FB3 -:10171000D91FE12CF12C0115110519F18091E80078 -:1017200085FD16C08091E8008E778093E800C11493 -:10173000D10449F0F60180819181E80EF91EF18211 -:10174000E08285E00FC00E94D30C882321F30AC0F9 -:1017500089918093F10001501109FFEFEF1AFF0A00 -:10176000DACF80E0DF91CF911F910F91FF90EF9042 -:10177000DF90CF9008952091FB013091FC01261756 -:10178000370748F06115710539F42091E8002E778C -:101790002093E80001C0B90140E061157105A9F18D -:1017A0002091F401222309F443C0253009F442C0FA -:1017B0002091E80023FD40C02091E80022FD32C0C6 -:1017C0002091E80020FFE9CF4091F3002091F20042 -:1017D00030E0342BFC01CF016115710559F0283040 -:1017E000310540F481918093F100615071092F5FC0 -:1017F0003F4FF1CF41E02830310509F040E0209122 -:10180000E8002E772093E800C8CF4111C9CF0AC065 -:101810008091F401882361F0853061F08091E800C7 -:1018200083FD0AC08091E80082FFF2CF80E0089536 -:1018300082E0089583E0089581E008952091FB01FE -:101840003091FC012617370748F06115710539F40E -:101850002091E8002E772093E80001C0B901FC0137 -:1018600020E06115710591F18091F401882309F45C -:1018700040C0853009F43FC08091E80083FD3DC041 -:101880008091E80082FD2FC08091E80080FFE9CFC1 -:101890002091F3008091F20090E0922B6115710588 -:1018A00059F08830910540F424912093F10031964D -:1018B000615071090196F2CF21E0089709F020E00C -:1018C0008091E8008E778093E800CBCF2111CCCFB8 -:1018D0000AC08091F401882361F0853061F0809125 -:1018E000E80083FD0AC08091E80082FFF2CF80E02B -:1018F000089582E0089583E0089581E00895982F87 -:10190000973058F59093E900981739F07091EC00F2 -:101910002091ED005091F00003C0242F762F50E06D -:1019200021FF19C03091EB003E7F3093EB003091E6 -:10193000ED003D7F3093ED003091EB00316030934E -:10194000EB007093EC002093ED005093F000209199 -:10195000EE0027FF07C09F5FD3CF8F708093E90011 -:1019600081E0089580E008958091F50187FF11C01E -:101970008091E80082FD05C08091F4018111F8CFCB -:1019800011C08091E8008B770BC08091F40188230F -:1019900049F08091E80080FFF8CF8091E8008E77D1 -:1019A0008093E80008952091E4003091E50095E6E9 -:1019B0004091EC00842F817040FF22C08091E800AC -:1019C00080FD1CC08091F401882391F0853091F056 -:1019D0008091EB0085FD10C04091E4005091E5003E -:1019E0004217530729F39A01915011F784E00895A3 -:1019F00082E0089583E0089581E0089580E00895ED -:101A00004091E80042FFDECF08950E94730D0E94CE -:101A10007B0DE0EEF0E0808181608083E8EDF0E016 -:101A200080818F77808319BCA7EDB0E08C918E7F89 -:101A30008C9380818F7E80831092F30108950F93A1 -:101A40001F93CF93DF930E94730D0E947B0DC8ED0F -:101A5000D0E088818F7788838881806888838881B7 -:101A60008F7D888319BC1092F4011092F0011092BE -:101A7000F2011092F10100EE10E0F80180818B7FFD -:101A8000808388818160888342E060E080E00E94FA -:101A90007F0CE1EEF0E080818E7F8083E2EEF0E06B -:101AA000808181608083808188608083F80180816B -:101AB0008E7F8083888180618883DF91CF911F91A1 -:101AC0000F910895E8EDF0E080818F7E8083E7ED4F -:101AD000F0E080818160808384E082BF81E0809338 -:101AE000F3010C941F0DE8EDF0E080818E7F808380 -:101AF0001092E20008951092DA001092E100089529 -:101B00001F920F920FB60F9211242F933F934F9372 -:101B10005F936F937F938F939F93AF93BF93EF9355 -:101B2000FF938091E10082FF0BC08091E20082FF71 -:101B300007C08091E1008B7F8093E1000E94E70F56 -:101B40008091DA0080FF1FC08091D80080FF1BC009 -:101B50008091DA008E7F8093DA008091D90080FF37 -:101B60000DC080E189BD82E189BD09B400FEFDCFD1 -:101B700081E08093F4010E94E60905C019BC10922F -:101B8000F4010E94F4098091E10080FF19C0809166 -:101B9000E20080FF15C08091E2008E7F8093E2001A -:101BA0008091E20080618093E2008091D8008062A1 -:101BB0008093D80019BC85E08093F4010E94F80955 -:101BC0008091E10084FF30C08091E20084FF2CC04E -:101BD00080E189BD82E189BD09B400FEFDCF80911D -:101BE000D8008F7D8093D8008091E1008F7E809314 -:101BF000E1008091E2008F7E8093E2008091E2001C -:101C000081608093E2008091F001882311F084E0EC -:101C100007C08091E30087FD02C081E001C083E03E -:101C20008093F4010E94FA098091E10083FF29C0AA -:101C30008091E20083FF25C08091E100877F80933F -:101C4000E10082E08093F4011092F0018091E100C4 -:101C50008E7F8093E1008091E2008E7F8093E2008E -:101C60008091E20080618093E20042E060E080E0E9 -:101C70000E947F0C8091F00088608093F0000E94A9 -:101C8000F709FF91EF91BF91AF919F918F917F9154 -:101C90006F915F914F913F912F910F900FBE0F90D9 -:101CA0001F9018951F920F920FB60F9211242F9329 -:101CB0003F934F935F936F937F938F939F93AF93D4 -:101CC000BF93CF93DF93EF93FF93C091E900CF7061 -:101CD0008091EC00D82FD17080FDD0E81092E900FF -:101CE0008091F000877F8093F00078940E94960E98 -:101CF0001092E9008091F00088608093F000CD2B75 -:101D0000CF70C093E900FF91EF91DF91CF91BF9128 -:101D1000AF919F918F917F916F915F914F913F9183 -:101D20002F910F900FBE0F901F9018951F93CF9378 -:101D3000DF93CDB7DEB7AA970FB6F894DEBF0FBE1C -:101D4000CDBFE5EFF1E088E08E0F9091F100919327 -:101D50008E13FBCF0E94160A8091E80083FF1FC1FB -:101D60008091F5019091F601492F50E04A305105DC -:101D700008F015C1FA01EA5AFF4F0C94812280380D -:101D800081F0823809F00BC18091F9018F70809346 -:101D9000E9008091EB0085FB882780F91092E9002B -:101DA00006C08091F1019091F201911182609091B1 -:101DB000E800977F9093E8008093F1001092F10083 -:101DC000C8C0282F2D7F09F0EAC0882319F082307F -:101DD00061F0E5C08091F701813009F0E0C09330F7 -:101DE00009F080E08093F2012BC08091F70181110E -:101DF00027C08091F9018F7009F4D1C08093E90068 -:101E00002091EB0020FF1CC0933021F48091EB0067 -:101E1000806214C09091EB0090619093EB0021E000 -:101E200030E0A90102C0440F551F8A95E2F74093A4 -:101E3000EA001092EA008091EB0088608093EB004A -:101E40001092E9008091E800877F86C08111A7C0C9 -:101E50001091F7011F778091E3008078812B8093A8 -:101E6000E3008091E800877F8093E8000E94B40C33 -:101E70008091E80080FFFCCF8091E3008068809330 -:101E8000E300111102C082E001C083E08093F401FD -:101E900086C08058823008F082C08091F70190910E -:101EA000F8018C3D53E0950779F583E08A838AE257 -:101EB00089834FB7F894DE01139620E03EE051E2AB -:101EC000E32FF0E050935700E49120FF03C0E29528 -:101ED000EF703F5FEF708E2F90E0EA3010F0C79602 -:101EE00001C0C0968D939D932F5F243149F74FBF5A -:101EF0008091E800877F8093E8006AE270E0CE017D -:101F000001960E94BB0B14C0AE014F5F5F4F609102 -:101F1000F9010E94020BBC01009709F440C09091A6 -:101F2000E800977F9093E80089819A810E941E0CB7 -:101F30008091E8008B778093E80031C0803879F594 -:101F40008091E800877F8093E8008091F001809382 -:101F5000F1008091E8008E778093E8000E94B40C35 -:101F60001EC081111CC09091F7019230C0F4809185 -:101F7000E800877F8093E8009093F0010E94B40C02 -:101F80008091F001811106C08091E30087FD02C0BD -:101F900081E001C084E08093F4010E94020A8091F4 -:101FA000E80083FF0AC08091E800877F8093E80003 -:101FB0008091EB0080628093EB00AA960FB6F894B4 -:101FC000DEBF0FBECDBFDF91CF911F910895089561 -:101FD000CF938091F4018823A1F0C091E900CF70E4 -:101FE0009091EC00892F817090FD80E8C82B1092B1 -:101FF000E9008091E80083FD0E94960ECF70C093A7 -:10200000E900CF910895909376018093750108952A -:10201000E0917501F0917601309721F00190F08107 -:10202000E02D099480E00895E0917501F09176012A -:10203000309721F00280F381E02D09940895E0911A -:102040007501F0917601309721F00480F581E02D43 -:1020500009940895209173013091740182179307B8 -:1020600071F09093740180937301E0917501F09188 -:102070007601309721F00680F781E02D09940895CC -:1020800020917101309172018217930771F0909342 -:10209000720180937101E0917501F09176013097A2 -:1020A00021F00084F185E02D0994089508950C94A1 -:1020B00056100E94AF1B0E94E5020C94351C9F92A3 -:1020C000AF92BF92CF92DF92EF92FF920F931F9346 -:1020D000CF93DF9300D000D000D0CDB7DEB70E9401 -:1020E0000C030DE010E0AA24A394B12C902E802FB5 -:1020F0000E94FA03980128583E4F6901F901F080C7 -:10210000F826A1F40150110988F78FEF89838A839B -:102110001B820E94B81B8160782F9D838C8349812C -:102120005A816B818D810E94F6102FC09091DB0146 -:1021300091FF04C08E830E9400048E8125E030E070 -:10214000A501022E01C0440F0A94EAF7E42E4F21A4 -:10215000C1F029839A828E2191E009F490E09B835B -:102160000E94B81B8160782F9D838C8349815A819E -:102170006B818D810E94F610F6018081E826E08255 -:1021800004C021503109E0F6BDCF0E94031E10911A -:1021900077010E9408101817B9F00E940810809368 -:1021A000770126960FB6F894DEBF0FBECDBFDF9144 -:1021B000CF911F910F91FF90EF90DF90CF90BF9044 -:1021C000AF909F900C94050926960FB6F894DEBF49 -:1021D0000FBECDBFDF91CF911F910F91FF90EF9078 -:1021E000DF90CF90BF90AF909F900895CF93DF93F3 -:1021F000CDB7DEB72B970FB6F894DEBF0FBECDBFBD -:102200004F83588769877A878B87DE01119686E02E -:10221000FD0111928A95E9F785E0FE01379601905C -:102220000D928A95E1F749815A816B817C818D817C -:102230009E810E943F172B960FB6F894DEBF0FBE0B -:10224000CDBFDF91CF910895CF93882309F4C2C009 -:10225000C82F823859F40E94081081FDBBC089E361 -:102260000E94191A0E94E61A89E30CC0833879F497 -:102270000E94081080FDAEC083E50E94191A0E94DA -:10228000E61A83E50E945B1ACF910C94E61A843813 -:1022900059F40E94081082FD9DC087E40E94191A1B -:1022A0000E94E61A87E4EECF8CEF8C0F813A48F457 -:1022B0008C2F0E944D2081118DC08C2F0E94191AE5 -:1022C000E3CF80E28C0F883048F4C77081E001C012 -:1022D000880FCA95EAF70E949F1AD6CF8BE58C0F1C -:1022E000833078F4C53A29F0C63A31F083E890E0BB -:1022F00005C081E890E002C082E890E0CF910C94A4 -:102300002A1088E58C0F833108F064C0C83A39F18F -:10231000C93A41F1CA3A49F1CB3A51F1CC3A59F1B3 -:10232000CD3A61F1C03B69F1CE3A71F1CF3A79F122 -:10233000C13B81F1C23B89F1C33B91F1C43B99F1AF -:10234000C53BA1F1C63BA9F1C73BB1F1C83BB9F10F -:10235000C93BC1F1CA3BC9F180E090E038C082EED0 -:1023600090E035C089EE90E032C08AEE90E02FC058 -:1023700085EB90E02CC086EB90E029C087EB90E0E5 -:1023800026C08CEC90E023C08DEC90E020C083E868 -:1023900091E01DC08AE891E01AC082E991E017C07F -:1023A00084E991E014C081E292E011C083E292E0FE -:1023B0000EC084E292E00BC085E292E008C086E2A3 -:1023C00092E005C087E292E002C08AE292E0CF91FB -:1023D0000C944010CF910895882309F44BC08238A3 -:1023E00059F40E94081081FF45C089E30E94191A20 -:1023F0000E94E61A89E30CC0833871F40E94081029 -:1024000080FF38C083E50E94191A0E94E61A83E50E -:102410000E945B1A0C94E61A843859F40E94081042 -:1024200082FF28C087E40E94191A0E94E61A87E4F6 -:10243000EFCF9CEF980F913A58F390E2980F9830B5 -:1024400050F4877091E001C0990F8A95EAF7892FBF -:102450000E94A51ADFCF9BE5980F933020F480E00F -:1024600090E00C942A10885A833120F480E090E0A8 -:102470000C9440100895882321F00E949F1A0C9418 -:10248000E61A0895882321F00E94A51A0C94E61AF2 -:1024900008957F928F929F92AF92BF92CF92DF92D8 -:1024A000EF92FF920F931F93CF93DF931F92CDB7BD -:1024B000DEB77C01C62E772EFC01058102950F70D8 -:1024C000128111110E94BC1A0E94121A882379F0FD -:1024D000112369F080E28C0D883048F082E00E9480 -:1024E000FB190E94121A91E0D82ED92601C0D12CD6 -:1024F000E72DE295EF70F0E0E05AFF4F0C94812257 -:10250000872D807F072D0F70882311F00295007FA3 -:10251000112389F0002309F490C180E28C0D8830EA -:1025200020F4802F0E949F1A03C0802F0E94AF1AB0 -:102530000E94E61A82C18C2D0E94EC11002309F43E -:1025400095C180E28C0D883020F4802F0E94A51A5E -:1025500003C0802F0E94B51A0E94E61A87C1972DEA -:10256000907F872D8F70903211F08295807FCC20E4 -:1025700021F0F1E0CF16B1F01EC0112349F0002385 -:1025800009F414C1013009F011C10E94CF1A6EC1C3 -:10259000002319F0013009F469C189830E94D21A1D -:1025A00089810AC1112321F0023008F05FC1FEC009 -:1025B00001115CC101C1112321F0002309F4F6C00F -:1025C0003CC1002309F4F8C03EC1872D869586954D -:1025D000837090E0009719F0019761F047C11123D3 -:1025E00021F08C2D972D937002C080E090E00E9426 -:1025F0002A103CC1112321F08C2D972D937002C01D -:1026000080E090E00E94401031C18C2D112319F020 -:102610000E940B1D02C00E94731D0E94F81D26C15E -:10262000872D837009F052C0111120C18C2D829525 -:1026300086958770880F880F9C2D9F70892E912C0E -:10264000A12CB12C082E04C0880C991CAA1CBB1C00 -:102650000A94D2F7C4FE14C00FE010E020E030E08E -:10266000B901A80104C0440F551F661F771F8A9542 -:10267000D2F7CB01BA01609570958095909503C013 -:1026800060E070E0CB01272D26952695237030E081 -:102690002230310569F02330310589F06829792924 -:1026A0008A299B292130310571F00E948718DEC0EC -:1026B000682979298A299B290E94A318D7C00E94DA -:1026C0008718C501B4010E946B18D0C0112319F0FE -:1026D000872D817001C08695882309F4C7C08C2D91 -:1026E000829586958770880F880F9C2D9F70892E04 -:1026F000912CA12CB12C082E04C0880C991CAA1C6A -:10270000BB1C0A94D2F7C4FE14C00FE010E020E016 -:1027100030E0B901A80104C0440F551F661F771FA0 -:102720008A95D2F7CB01BA01609570958095909506 -:1027300003C060E070E0CB01272D2695269523701D -:10274000422F50E04230510569F04330510589F085 -:10275000682979298A299B294130510571F00E9405 -:10276000611984C0682979298A299B290E947D19C9 -:102770007DC00E946119C501B4010E94451976C04F -:102780008C2D90E0FC01E05EF109E531F10508F0E7 -:1027900050C0E059FF4F0C9481220C2D0F70872DF3 -:1027A0008F71112331F00E94DE18802F0E943B129E -:1027B0005DC00E94FF18802F0E94421257C0112353 -:1027C00039F0011153C0872D8F710E9424194EC01A -:1027D000023008F04BC0F7CF112339F0872D8F71ED -:1027E0000E94DE1843C01123C9F3872D8F710E9408 -:1027F000FF183CC0112329F0872D8F710E94C91842 -:1028000035C00E94BF1832C0112351F0172D1F711F -:10281000812F0E94DE1863E0812F0E94F21926C0EA -:1028200081E00E94FB19023008F182E00E94FB194E -:102830001DC0112331F0002389F28C2D0E94241138 -:1028400015C0002391F28C2D0E94EC110FC0472D72 -:102850004F706C2DC7010E94D6040E94E31706C07A -:10286000472D4F706C2DC7010E947408DD20F9F0D0 -:102870000E94EE1980FD1BC0F70112820E94E81928 -:102880000E94DE18C7010E9466140E94E8190F908A -:10289000DF91CF911F910F91FF90EF90DF90CF903C -:1028A000BF90AF909F908F907F900C94FF180F90E7 -:1028B000DF91CF911F910F91FF90EF90DF90CF901C -:1028C000BF90AF909F908F907F9008950F931F932C -:1028D000CF93DF93EC01888199812B813C81232B5D -:1028E000B9F09F3F11F48F3F99F0CE010E9405058A -:1028F000882371F0688179818A810E94E4198C01B2 -:102900000E9499190E946018B801CE010E944912D4 -:10291000DF91CF911F910F9108950E94BC1A0E94E0 -:10292000CC1A0E94911A0E94E61A0E94A91E0E94C7 -:10293000F81D80E090E00E942A1080E090E00C9466 -:1029400040100E94AC1A0C948D140E94D919292FA2 -:1029500022952F7030E02C3031054CF42A303105AF -:102960006CF42250310922303105A8F407C02C3014 -:10297000310569F02F30310551F00DC0803F69F00D -:1029800018F4803E40F409C0843F29F406C093FB4C -:10299000882780F9089580E0089581E00895CF9315 -:1029A000DF9300D000D01F92CDB7DEB70F900F900D -:1029B0000F900F900F90DF91CF910895CF93DF93F9 -:1029C00000D000D000D0CDB7DEB726960FB6F89471 -:1029D000DEBF0FBECDBFDF91CF9108951F93CF9380 -:1029E000DF93C091860116E080918701C81799F0A6 -:1029F000D0E01C9FF0011D9FF00D1124E857FE4F01 -:102A00004081518162817381848195810E94DE14AD -:102A10002196C770E9CFDF91CF911F910895409122 -:102A2000B8015091B9016091BA017091BB018091D8 -:102A3000BC019091BD010C94DE148091BD01829582 -:102A40008F7009F054C08091BA01882309F44FC0F7 -:102A500080918601A09187016091B8017091B901C0 -:102A60004091BB015091BC01B6E08A1709F43FC008 -:102A700090E041155105C1F17F3F11F46F3FA1F185 -:102A8000B89FF001B99FF00D1124E857FE4F218146 -:102A900072132AC02081621327C02281211124C011 -:102AA000238134812417350710F421503109241B68 -:102AB000350B283C3105C0F42091BD012F702061F9 -:102AC0002093BD0126E0289FF001299FF00D1124DD -:102AD000E357FE4F80818F708061808388EB91E0A7 -:102AE0000E9466140C94EE1401968770BECF089570 -:102AF000CF92DF92EF92FF920F931F93CF93DF93CA -:102B0000CDB7DEB762970FB6F894DEBF0FBECDBF6C -:102B10008C0185E0F801DE011D9601900D928A95E9 -:102B2000E1F7D8014C9111965C91119712966C9136 -:102B300012971396CD90DC9014973091B801709154 -:102B4000B9018091BB019091BC01009709F46BC160 -:102B50007F3F19F43F3F09F466C1E090BA01EE20CF -:102B600009F4C0C02091BD01C816D90628F0F601AD -:102B7000E81BF90BCF0104C0809590958C0D9D1D2D -:102B8000FF24F394883C910578F0F12C207F09F024 -:102B9000C6C07C2DD98AC88A89890E94CF1488EB47 -:102BA00091E00E946614B1C0822F807F09F046C078 -:102BB000751314C0341312C0611110C02F7020613E -:102BC0002093BD010E940F1588EB91E00E946614CE -:102BD0008091BD01D80115968C932EC0CD2819F196 -:102BE0005F3F11F44F3FF9F0F62E61111CC0809148 -:102BF00086012091870136E0821709F45AC090E0DF -:102C0000389FF001399FF00D1124E857FE4F718174 -:102C1000571306C07081471303C07281711103C03E -:102C200001968770E9CFF62E662309F418C18091CA -:102C3000BD0181608093BD01F12C11C1751308C0E5 -:102C4000341306C0611104C08091BD01D801C3C016 -:102C50004D875E878D859E856A8B0E94A5146A8943 -:102C60008823E1F16623D1F12091BD01822F829565 -:102C70008F7090E0029774F08091B8019091B90143 -:102C800098878F831986DB86CA862C87CE010796A4 -:102C90000E94661486E0F801A8EBB1E001900D9265 -:102CA0008A95E1F70E941D150E940F15FF24F394E9 -:102CB000D6C04D875E878D859E850E94D919292FA4 -:102CC00022952F7030E0223031050CF0BCC09F708F -:102CD00009F0B6C0805E883008F4C1C0C8010E9407 -:102CE0006614E4CFC816D90608F453C0F601E81BF1 -:102CF000F90BCF01883C910508F450C0F12C7C2DD4 -:102D0000D98AC88A89890E94CF14E8EBF1E086E06D -:102D1000DF011D928A95E9F70E940F15A0C0751377 -:102D200014C0341312C0611110C08091BD01F801AC -:102D30008583C8010E94661486E0E8EBF1E0DF01BC -:102D40001D928A95E9F7FE2C8AC04D875E878D8596 -:102D50009E856A8B0E94A5146A89882309F4BECFD8 -:102D6000662309F4BBCF2091BD01822F82958F701D -:102D700090E002970CF48ECF8091B8019091B90148 -:102D80009A8389831B82DD82CC822E83CE010196B9 -:102D90007FCF809590958C0D9D1DACCFF62E662330 -:102DA00009F49CCF75132EC034132CC02091BD01A3 -:102DB00020FD1FC0822F82958F70D9F0D801159603 -:102DC0002C9315978F3049F08F5F982F9295907FB5 -:102DD000822F8F70892B15968C93C8010E946614E0 -:102DE00086E0F801A8EBB1E001900D928A95E1F739 -:102DF00093CF86E0F801A8EBB1E001900D928A959F -:102E0000E1F72DC04D875E878D859E850E94A514B4 -:102E1000811140CF8091BD0181608093BD01C801C7 -:102E20000E9466141CC0662309F458CF4D875E8744 -:102E30008D859E850E94A514882309F44FCF2ACF43 -:102E4000811148CF0CC0243031050CF047CF9F7062 -:102E500009F440CFF8019581907F09F03BCF8F2D89 -:102E600062960FB6F894DEBF0FBECDBFDF91CF9153 -:102E70001F910F91FF90EF90DF90CF9008951F93D7 -:102E8000CF93DF93CDB7DEB72C970FB6F894DEBFA4 -:102E90000FBECDBF4F83588769877A878B879C8702 -:102EA000CE0107960E947815882369F08F81988556 -:102EB0002A853B85232BF1F19F3F09F063C08F3FAB -:102EC00009F060C037C086E0FE013796DE0111963A -:102ED00001900D928A95E1F76F817885EA85FB85EF -:102EE000309741F17F3F11F46F3F21F1209187012D -:102EF00030E0C9010196877099274091860150E022 -:102F00008417950709F447C069837A83FD83EC83AE -:102F100096E0929FD001939FB00D1124A857BE4F09 -:102F2000FE01319601900D929A95E1F78093870109 -:102F30000E94EE1416E08091860190918701891716 -:102F4000C1F1189FC001112488579E4F0E94781527 -:102F5000882379F1E09186011E9FF0011124E85742 -:102F6000FE4F4081518162817381848195810E94ED -:102F7000DE148091860190E00196877099278093F6 -:102F80008601D9CF4F81588569857A858B859C8547 -:102F90000E94DE14CFCF0E94A114109287011092DC -:102FA0008601E8EBF1E086E0DF011D928A95E9F702 -:102FB000C1CF2C960FB6F894DEBF0FBECDBFDF9108 -:102FC000CF911F910895EF92FF920F931F93CF938C -:102FD000DF938C01009709F46CC0F12CEE24E3948C -:102FE000E8012196F8018491843740F4843008F098 -:102FF00051C0813081F0823019F15BC0853709F40E -:1030000044C0A8F19CE7980F903708F052C08F7722 -:103010000E94EC1141C00E5F1F4FFE01C49180E27F -:103020008C0F883048F4C7708E2D01C0880FCA9568 -:10303000EAF70E94BF1A14C08C2F0E9424112DC0E1 -:103040000E5F1F4FFE01C49180E28C0F883058F450 -:10305000C7708E2D01C0880FCA95EAF70E94C51A65 -:103060000E94E61A1AC08C2F0E94EC1116C00E5F47 -:103070001F4FFE01C491CC2381F08FE99FE001979F -:10308000F1F700C00000C150F6CF0E5F1F4FFE01E8 -:10309000F49003C00E9424118E018F2D882309F41F -:1030A0009FCFEFE9FFE03197F1F700C000008150BA -:1030B000F5CFDF91CF911F910F91FF90EF90089581 -:1030C00008956093C2017093C3018093C4019093EB -:1030D000C5010C948D140F931F930091C2011091A0 -:1030E000C3012091C4013091C501DC01CB01802BCB -:1030F000912BA22BB32B8093C2019093C301A09379 -:10310000C401B093C5011F910F910C948D140F93BE -:103110001F930091C2011091C3012091C40130910D -:10312000C501DC01CB0180239123A223B32380932B -:10313000C2019093C301A093C401B093C5011F9134 -:103140000F910C948D140F931F930091C201109155 -:10315000C3012091C4013091C501DC01CB0180275E -:103160009127A227B3278093C2019093C301A09314 -:10317000C401B093C5011F910F910C948D1410924E -:10318000BE011092BF011092C0011092C1010C94B7 -:103190008D1441E050E060E070E004C0440F551F22 -:1031A000661F771F8A95D2F74093BE015093BF01E7 -:1031B0006093C0017093C1010C948D1441E050E004 -:1031C00060E070E004C0440F551F661F771F8A95AA -:1031D000D2F78091BE019091BF01A091C001B09142 -:1031E000C101482B592B6A2B7B2B4093BE01509376 -:1031F000BF016093C0017093C1010C948D1441E034 -:1032000050E060E070E004C0440F551F661F771F58 -:103210008A95D2F740955095609570958091BE0142 -:103220009091BF01A091C001B091C10148235923E1 -:103230006A237B234093BE015093BF016093C0017A -:103240007093C1010C948D1441E050E060E070E097 -:1032500004C0440F551F661F771F8A95D2F78091CF -:10326000BE019091BF01A091C001B091C10148275A -:1032700059276A277B274093BE015093BF01609373 -:10328000C0017093C1010C948D140F931F93009192 -:10329000BE011091BF012091C0013091C101DC013C -:1032A000CB01802B912BA22BB32B8093BE0190934B -:1032B000BF01A093C001B093C1011F910F910C9465 -:1032C0008D140F931F930091BE011091BF012091A7 -:1032D000C0013091C101DC01CB0180239123A223E5 -:1032E000B3238093BE019093BF01A093C001B0931C -:1032F000C1011F910F910C948D140F931F93009196 -:10330000BE011091BF012091C0013091C101DC01CB -:10331000CB0180279127A227B3278093BE019093EA -:10332000BF01A093C001B093C1011F910F910C94F4 -:103330008D140895CF92DF92EF92FF920F931F9317 -:10334000CF93DF938C01C090C201D090C301E09075 -:10335000C401F090C5018091BE019091BF01A09180 -:10336000C001B091C101C82AD92AEA2AFB2ACFE1BB -:10337000D0E0D701C6010C2E04C0B695A79597954D -:1033800087950A94D2F780FF06C0B8018C2F0E945F -:10339000F306019721F4219760F780E001C08C2F9C -:1033A000DF91CF911F910F91FF90EF90DF90CF9021 -:1033B0000895CF93DF93EC010E949A19BE010E94F9 -:1033C000F306DF91CF910895CB010E94D91908959A -:1033D0008091C60185958595859508958091C60152 -:1033E0008770089598E0899F90011124262B2093DF -:1033F000C6010C94DE182091C6018095822380932B -:10340000C601982F977069F430E0482F552747FD83 -:1034100050952417350729F08595859585950C9449 -:10342000FF1808959091C601977081E009F480E03B -:10343000089590910C01992321F090910D01911123 -:1034400009C020910E0130910F01F90132969FEFD2 -:1034500040E01FC0982F9695969596959F3050F511 -:10346000E0910E01F0910F01E90FF11D877021E04D -:1034700030E0A90102C0440F551F8A95E2F7CA0146 -:103480009181892B818308959F3F39F04F5F4E30A2 -:1034900041F051915813F8CF0DC05111F7CF942F2F -:1034A000F5CF9F3F39F0F901E90FF11D97FDFA952E -:1034B00082830895089590910C01992321F09091B1 -:1034C0000D01911109C020910E0130910F01F901F8 -:1034D0003296205F3F4F1FC0982F969596959695F0 -:1034E0009F30F0F4E0910E01F0910F01E90FF11D12 -:1034F000877021E030E0A90102C0440F551F8A9572 -:10350000E2F7CA01809591818923818308953196DC -:10351000E217F30729F090819813F9CF1082F7CFC3 -:10352000089581E090E0E0910E01F0910F01E80F25 -:10353000F91F1082019680319105A9F708959091A5 -:10354000DA01892B8093DA01089580959091DA0150 -:1035500089238093DA0108951092DA0108959091F9 -:10356000D901892B8093D901089580959091D90133 -:1035700089238093D90108951092D90108959091DB -:10358000D801892B8093D801089580959091D80116 -:1035900089238093D80108951092D80108958093CB -:1035A000C70108951092C701089580910E0190916E -:1035B0000F01FC0131969C01205F3F4F80E091910B -:1035C00091118F5FE217F307D1F70895E0910E0193 -:1035D000F0910F018091DA018083E0910E01F0916A -:1035E0000F0190818091D901892B8083E0910E0198 -:1035F000F0910F0190818091D801892B8083809177 -:10360000C701882361F0E0910E01F0910F019081D4 -:10361000892B80830E94D51A81111092C701809155 -:103620000E0190910F010C94141020E0009739F0D6 -:10363000AC0141505109842395232F5FF7CF822F8E -:103640000895CF92DF92EF92FF926C01EE24FF2457 -:10365000C114D104E104F10421F0C701B60120E155 -:1036600001C020E0C72ED82EE92EFF24C114D104BA -:10367000E104F10419F0285FC701B6016B017C0178 -:1036800054E0F694E794D794C7945A95D1F7C114AF -:10369000D104E104F10419F02C5FC701B6016B01FC -:1036A0007C0142E0F694E794D794C7944A95D1F709 -:1036B000C114D104E104F10419F02E5FC701B60171 -:1036C000DC01CB01B695A79597958795892B8A2B19 -:1036D0008B2B09F02F5F822FFF90EF90DF90CF9020 -:1036E00008958091F401843021F11092DC0120E4EE -:1036F00088E190E00FB6F894A895809360000FBE23 -:103700002093600080E00E94050983B7817F846078 -:1037100083BF83B7816083BF7894889583B78E7F9A -:1037200083BF88E10FB6F894809360001092600028 -:103730000FBE089508950E94F9020E940C030E9492 -:103740009A1B0E94010491E0811101C090E0892F31 -:1037500008950E94A1140E9408100C94050982E0AB -:1037600084BD93E095BD9AEF97BD80936E00089558 -:103770002FB7F8948091DD019091DE01A091DF01D7 -:10378000B091E0012FBF0895CF92DF92EF92FF92A8 -:103790000F931F932FB7F8944091DD015091DE01F4 -:1037A0006091DF017091E0012FBF6A017B01EE247F -:1037B000FF248C0120E030E0C016D106E206F306BB -:1037C00010F4415051099A01281B390BC9011F916E -:1037D0000F91FF90EF90DF90CF9008951F920F927E -:1037E0000FB60F9211248F939F93AF93BF93809145 -:1037F000DD019091DE01A091DF01B091E001019621 -:10380000A11DB11D8093DD019093DE01A093DF0126 -:10381000B093E001BF91AF919F918F910F900FBE38 -:103820000F901F9018950E94050DF8942FEF87EACE -:1038300091E6215080409040E1F700C0000087E011 -:1038400090EBDC018093FD019093FE01A093FF01BA -:10385000B09300029CE088E10FB6F894A89580939D -:1038600060000FBE90936000FFCF0E946D1C81111D -:1038700002C00E94531C0E94781C8093DB010E94AE -:10388000801C90E09093EF018093EE0187FB8827E6 -:1038900080F980930D010E947C1C682F70E080E00D -:1038A00090E00C9461186DEE7EEF80E090E00E9455 -:1038B000BB2260E082E090E00E94A92260E083E009 -:1038C00090E00E94A92260E084E090E00E94A9229A -:1038D00060E085E090E00C94A92280E090E00E94F6 -:1038E000A32221E08D3E9E4F09F020E0822F089513 -:1038F00082E090E00C949B2283E090E00C949B2269 -:1039000084E090E00C949B22682F84E090E00C947B -:10391000A9228091E30180FF0BC06091130185E033 -:10392000689FB001112475956795759567952BC0B3 -:1039300081FF09C06091130185E0689FB0011124E7 -:103940007595679520C082FF07C06091130185E0DF -:10395000689FB001112417C09091E4019923D1F020 -:1039600060911201961788F72091130185E0289F36 -:1039700090011124929FA001939F500D112470E09B -:10398000CA010E946D226038710540F4611571050D -:1039900039F002C065E070E0862F08958FE7089542 -:1039A00081E008958091E30180FF08C060911101DA -:1039B00070E0759567957595679521C081FF06C084 -:1039C0006091110170E07595679519C082FF04C080 -:1039D0006091110170E010C09091E4019923C1F051 -:1039E000609110019617A0F780911101899FC00185 -:1039F000112470E00E946D226038710528F4611571 -:103A0000710521F0862F08958FE7089581E00895CC -:103A100061E070E0F4CF803F21F40E94891C819521 -:103A200004C0813F29F40E94891C8093E701089516 -:103A3000823F21F40E94891C819504C0833F29F4B0 -:103A40000E94891C8093E6010895893F19F40E9421 -:103A5000D21C05C08A3F31F40E94D21C819580930C -:103A6000E80108958B3F21F40E94D21C819504C087 -:103A70008C3F29F40E94D21C8093E9010895843F71 -:103A800021F48091E501816017C0853F21F4809188 -:103A9000E501826011C0863F21F48091E5018460D8 -:103AA0000BC0873F21F48091E501886005C0883F05 -:103AB00031F48091E50180618093E50108958D3FA7 -:103AC00021F48091E30181600BC08E3F21F480914D -:103AD000E301826005C08F3F29F48091E301846097 -:103AE0008093E3010895803F39F48091E70187FFD7 -:103AF0006CC01092E70169C0813F29F48091E70111 -:103B00001816BCF362C09091E601823F29F497FF3A -:103B10005CC01092E60159C0833F19F41916CCF32A -:103B200054C0893F41F48091E80118160CF04DC053 -:103B30001092E8014AC08A3F29F48091E80187FF8A -:103B400044C0F6CF8B3F39F48091E90187FF3DC037 -:103B50001092E9013AC08C3F29F48091E9011816CE -:103B6000BCF333C0843F21F48091E5018E7F17C000 -:103B7000853F21F48091E5018D7F11C0863F21F4BE -:103B80008091E5018B7F0BC0873F21F48091E50197 -:103B9000877F05C0883F31F48091E5018F7E809357 -:103BA000E50113C08D3F21F48091E3018E7F0BC0AE -:103BB0008E3F21F48091E3018D7F05C08F3F29F472 -:103BC0008091E3018B7F8093E3018091E601811175 -:103BD0000EC08091E70181110AC08091E801811136 -:103BE00006C08091E901811102C01092E40108959C -:103BF00085EE91E00E941F100E94B81B9093E20195 -:103C00008093E10108951F93CF93DF938091E101A9 -:103C10009091E2010E94C41BAC019091E4019923B0 -:103C200021F02091140130E006C0209115018AE0B6 -:103C3000289F900111244217530708F486C08091F1 -:103C4000E601C091E701D091E8011091E9018111ED -:103C500007C0C11176C0D11174C0111172C075C0F6 -:103C60009F3F19F09F5F9093E401181624F40E947F -:103C7000891C8093E6018091E60187FF05C00E94C0 -:103C8000891C81958093E6011C1624F40E94891CEE -:103C90008093E7018091E70187FF05C00E94891C9E -:103CA00081958093E7016091E601662339F1C09127 -:103CB000E701CC2319F1772767FD7095872F972FA0 -:103CC0000E947E2123E333E343E35FE30E94E2218A -:103CD0000E944B216093E6016C2F772767FD70955A -:103CE000872F972F0E947E2123E333E343E35FE393 -:103CF0000E94E2210E944B216093E7011D1624F4EB -:103D00000E94D21C8093E8018091E80187FF05C0E2 -:103D10000E94D21C81958093E801111624F40E9420 -:103D2000D21C8093E9018091E90187FF05C00E94C0 -:103D3000D21C81958093E901DF91CF911F910C9462 -:103D4000F81D9F3F09F08ECF96CFDF91CF911F9145 -:103D50000895E5EEF1E085E0DF011D928A95E9F72F -:103D60001092E4011092E3010895833081F128F468 -:103D7000813059F08230D1F00895853009F449C07E -:103D8000B8F1863009F456C0089580911501262FA8 -:103D900030E0280F311D2F3F310524F4680F609368 -:103DA000150108958FEF80931501089580911401F6 -:103DB000262F30E0280F311D2F3F310524F4680FE6 -:103DC0006093140108958FEF8093140108958091FA -:103DD0001301262F30E0280F311D2F3F310524F429 -:103DE000680F6093130108958FEF80931301089576 -:103DF00080911201262F30E0280F311D2F3F310511 -:103E000024F4680F6093120108958FEF80931201DC -:103E1000089580911101262F30E0280F311D2F3F8A -:103E2000310524F4680F6093110108958FEF80939A -:103E30001101089580911001262F30E0280F311DC7 -:103E40002F3F310524F4680F6093100108958FEF20 -:103E5000809310010895833011F128F4813049F0E6 -:103E6000823091F00895853081F120F18630C1F1E2 -:103E7000089580911501681720F4861B8093150121 -:103E8000089510921501089580911401681720F487 -:103E9000861B809314010895109214010895809157 -:103EA0001301681720F4861B809313010895109264 -:103EB0001301089580911201681720F4861B8093E6 -:103EC000120108951092120108958091110168174E -:103ED00020F4861B8093110108951092110108951A -:103EE00080911001681720F4861B809310010895BB -:103EF0001092100108950F931F938D3109F471C032 -:103F000008F045C0803109F485C008F5873009F410 -:103F10006FC068F4863009F0ADC08091DB01817F0D -:103F20008E7F8093DB0181E08093EB01A4C08B3016 -:103F300009F49EC08E3009F09DC08091DB0182FBA8 -:103F4000222720F991E0922790FB82F96CC08631FC -:103F500009F48EC060F4813109F08CC00E94A11474 -:103F600090910D0181E0892780930D0181C08931F5 -:103F700009F47EC08B3109F07DC08091DB0181FBAB -:103F8000222720F991E0922790FB81F94CC08533DC -:103F900009F466C048F4873209F462C008F44FC0DF -:103FA000893209F45DC066C0833438F48A3308F07E -:103FB00044C0883309F45CC05DC0833409F450C048 -:103FC000883409F057C00E94A1140FEF13ED20E3CD -:103FD000015010402040E1F700C000000E94131C77 -:103FE00047C00E9405210E9408100E94050940C098 -:103FF0009091DB01892F8095817080FB90F929F0E9 -:10400000966098609093DB0136C0997F977F90937C -:10401000DB012EC08091DB0183FB222720F991E098 -:10402000922790FB83F98093DB01992309F180911A -:10403000DB0181608093DB011BC0895301C08D517E -:1040400041E050E060E070E08A019B0104C0000F95 -:10405000111F221F331F8A95D2F7C901B80104C06E -:1040600061E070E080E090E00E9461180E94A1147D -:1040700081E001C080E01F910F91089580E00895D4 -:1040800080E008958E518A3030F4E82FF0E0E65D4C -:10409000FE4F8081089580E00895CF93C82F8091CE -:1040A000EB01813079F018F08230E9F186C0E091BF -:1040B0000E01F0910F018081813169F0823209F0A7 -:1040C0007EC009C0E0910E01F0910F018081813125 -:1040D00011F0823261F48C2F0E943E20811104C0C5 -:1040E0008C2F0E947B1F1DC081E090E01AC08C2F96 -:1040F0000E944020811114C0C43179F048F4CB30C3 -:1041000079F0C03109F05FC082E08093EB0108C014 -:10411000C93219F0C83321F056C01092EB0153C0D8 -:1041200081E0817052C0C93281F110F5C43169F16A -:10413000A8F4C73009F045C08AE08093150194E1E6 -:104140009093140193E0909313018093120188E0FF -:104150008093110188E28093100133C082EE8C0FAE -:10416000863078F58C2F0E9442208093EA0129C086 -:10417000CE34E9F020F4CB3421F56AE013C0C13528 -:1041800079F0C235F1F461E00DC08091EA01882335 -:1041900019F01092EA0115C081E08093EB0115C07F -:1041A00061E006C08091EA010E94B51E0AC06AE083 -:1041B0008091EA010E942B1F04C01092EB0180E065 -:1041C00004C081E002C080E0ACCFCF910895E1E867 -:1041D000F0E08081886080838081816080838FB7F8 -:1041E000F89493E09093890090ED909388008FBFAE -:1041F0000895EFE6F0E08081826080830895EFE625 -:10420000F0E080818D7F80830895EFE6F0E090817B -:1042100082E08927808308951F920F920FB60F9234 -:1042200011242F933F934F935F936F937F938F93BB -:104230009F93AF93BF93EF93FF938091EC01909185 -:10424000ED0101969093ED018093EC01811103C083 -:1042500082E00E940509E091ED01E695E695F0E027 -:10426000E75FFB4FE4918091EC018E1303C080E087 -:104270000E940509FF91EF91BF91AF919F918F919E -:104280007F916F915F914F913F912F910F900FBE52 -:104290000F901F90189504D06894B1118DC00895A7 -:1042A00070D088F09F5790F0B92F9927B751A0F0A0 -:1042B000D1F0660F771F881F991F1AF0BA95C9F7BA -:1042C00012C0B13081F077D0B1E0089574C0672F8B -:1042D000782F8827B85F39F0B93FCCF3869577956A -:1042E0006795B395D9F73EF4909580957095619553 -:1042F0007F4F8F4F9F4F0895E89409C097FB3EF47E -:1043000090958095709561957F4F8F4F9F4F992322 -:10431000A9F0F92F96E9BB279395F69587957795A0 -:104320006795B795F111F8CFFAF4BB0F11F460FF60 -:104330001BC06F5F7F4F8F4F9F4F16C0882311F0B8 -:1043400096E911C0772321F09EE8872F762F05C0CC -:10435000662371F096E8862F70E060E02AF09A9567 -:10436000660F771F881FDAF7880F9695879597F95C -:10437000089557FD9058440F551F59F05F3F71F055 -:104380004795880F97FB991F61F09F3F79F08795BC -:104390000895121613061406551FF2CF4695F1DF45 -:1043A00008C0161617061806991FF1CF86957105D5 -:1043B000610508940895E894BB2766277727CB0109 -:1043C00097F908950BD078C069D028F06ED018F016 -:1043D000952309F05AC05FC01124EECFCADFA0F3C5 -:1043E000959FD1F3950F50E0551F629FF001729F8A -:1043F000BB27F00DB11D639FAA27F00DB11DAA1FA9 -:10440000649F6627B00DA11D661F829F2227B00DF5 -:10441000A11D621F739FB00DA11D621F839FA00D80 -:10442000611D221F749F3327A00D611D231F849FD0 -:10443000600D211D822F762F6A2F11249F57504027 -:104440008AF0E1F088234AF0EE0FFF1FBB1F661FC2 -:10445000771F881F91505040A9F79E3F510570F07B -:1044600014C0AACF5F3FECF3983EDCF386957795B6 -:104470006795B795F795E7959F5FC1F7FE2B880F76 -:10448000911D9695879597F9089597F99F6780E80C -:1044900070E060E008959FEF80EC089500240A9496 -:1044A0001616170618060906089500240A9412160F -:1044B0001306140605060895092E0394000C11F442 -:1044C000882352F0BB0F40F4BF2B11F460FF04C0EF -:1044D0006F5F7F4F8F4F9F4F089597FB072E16F406 -:1044E000009407D077FD09D00E94872207FC05D0F1 -:1044F0003EF4909581959F4F0895709561957F4FFB -:104500000895EE0FFF1F0590F491E02D0994AA1B6A -:10451000BB1B51E107C0AA1FBB1FA617B70710F0AE -:10452000A61BB70B881F991F5A95A9F780959095E0 -:10453000BC01CD010895F999FECF92BD81BDF89AD5 -:10454000992780B50895A8E1B0E042E050E00C94CE -:10455000C322262FF999FECF92BD81BDF89A01970B -:1045600000B4021639F01FBA20BD0FB6F894FA9ABB -:10457000F99A0FBE08950196272F0E94AA220C9443 -:10458000A922DC01CB01FC01F999FECF06C0F2BDE6 -:10459000E1BDF89A319600B40D9241505040B8F701 -:0645A0000895F894FFCF1E -:1045A60002200709950972093E090A090101C80195 -:1045B60028080A03140A404D3639C9037C0346030A -:1045C6000D03A002B902D202EB02010203040506A2 -:0445D60007080900C9 -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/sneako/README.md b/keyboards/ergodox_ez/keymaps/sneako/README.md deleted file mode 100644 index 8dd110ee6..000000000 --- a/keyboards/ergodox_ez/keymaps/sneako/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# ergodox_keymap - -Based on the default Ergodox EZ firmware - -Replaced the left side Bksp with a Crtl/Esc, this really helps in vim. -Removed the Ctrls from the Z and / keys. diff --git a/keyboards/ergodox_ez/keymaps/sneako/compiled.hex b/keyboards/ergodox_ez/keymaps/sneako/compiled.hex deleted file mode 100644 index d32589092..000000000 --- a/keyboards/ergodox_ez/keymaps/sneako/compiled.hex +++ /dev/null @@ -1,1158 +0,0 @@ -:100000000C947A020C94BE020C94BE020C94BE02B4 -:100010000C94BE020C94BE020C94BE020C94BE0260 -:100020000C94BE020C94BE020C94620D0C94340E1F -:100030000C94BE020C94BE020C94BE020C94BE0240 -:100040000C94BE020C943E220C94BE020C94BE0290 -:100050000C94BE020C94D11B0C94BE020C94BE02F4 -:100060000C94BE020C94BE020C94BE020C94BE0210 -:100070000C94BE020C94BE020C94BE020C94BE0200 -:100080000C94BE020C94BE020C94BE020C94BE02F0 -:100090000C94BE020C94BE020C94BE020C94BE02E0 -:1000A0000C94BE020C94BE020C94BE02A10EC30EB0 -:1000B000B10FC30EB10F080F2B0FB10F800F930FAD -:1000C0006212621291129112C712E71218141814D8 -:1000D000F2121814A213A2130914181418141214EB -:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300 -:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0 -:10010000C113CE13D513DC13E6130000F0A12E00AB -:100110004C002971E100354100001E00140004006C -:100120001D0034004D001F001A0016001B00E104E2 -:100130002A00200008000700060050002C002100C3 -:100140001500090019004F004A00220017000A009C -:10015000050000006574500001540000007F00009D -:10016000E3004F000154000000770000E20023008C -:100170001C000B00110000002971240018000D0064 -:10018000100052004B0025000C000E0036005100FC -:100190002800260012000F0037002F002B00270038 -:1001A00013003342380030004E002D003100347807 -:1001B000E500C10000000100010001000100010094 -:1001C00000003A001E0220022202010001003B0052 -:1001D0001F0221022302010001003C002F0226021F -:1001E0002F00010001003D00300227023000010015 -:1001F00001003E003102350035020000010001001F -:1002000001000000010000000100010001000000E9 -:100210000100000001003F005200510024020000D4 -:1002200001004000240021001E00010001004100E7 -:10023000250022001F003700010042002600230095 -:10024000200027000100430025022E0231002E006D -:100250000100440045000100010001000000010010 -:100260000100010001000100000001000100010087 -:1002700001000100010001000100F2000100010085 -:1002800001000100F000F1000100F4000100010094 -:100290000100F3000100F500010001000100010070 -:1002A0000100000001000100010000000100000049 -:1002B0000100010001000000010000000100010038 -:1002C0000100010001000000010001000100010027 -:1002D0000100A9000100010001000100AC00AA001A -:1002E000B600010001000100AB00A8000100010000 -:1002F0000100010001000100010001000100AE0049 -:1003000001000100000016034500720067006F0045 -:1003100044006F007800200045005A0000001603DA -:100320004500720067006F0044006F0078002000F5 -:1003300045005A0000000403090409026D0004018D -:1003400000A0FA09040000010301010009211101C4 -:100350000001223F000705810308000A090401008B -:100360000103010200092111010001224D000705CE -:10037000820308000A0904020001030000000921A9 -:10038000110100012236000705830308000A090451 -:1003900003000103000000092111010001223900BE -:1003A000070584031000011201100100000008ED90 -:1003B000FE071301000102000105010906A1010564 -:1003C0000719E029E7150025019508750181020547 -:1003D000081901290595057501910295017503918B -:1003E0000105071900297715002501957875018108 -:1003F00002C005010980A101850216010026B7008F -:100400001A01002AB700751095018100C0050C097A -:1004100001A1018503160100269C021A01002A9CF5 -:1004200002751095018100C005010902A1010901B1 -:10043000A10005091901290515002501950575017A -:10044000810295017503810105010930093115818A -:10045000257F95027508810609381581257F95014C -:1004600075088106050C0A38021581257F950175EE -:10047000088106C0C005010906A101050719E02988 -:10048000E715002501950875018102950175088120 -:100490000105081901290595057501910295017558 -:1004A0000391010507190029FF150025FF95067521 -:1004B000088100C0000000000000000000000001F2 -:1004C0000204060A0F17202C3A4A5D71879DB3C7B4 -:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF -:1004E0003A2C20170F0A0604020100000000000049 -:1004F0000000000011241FBECFEFDAE0DEBFCDBF49 -:1005000004B603FE24C08091FB019091FC01A091F0 -:10051000FD01B091FE018730904BA740B04BB9F47C -:100520001092FB011092FC011092FD011092FE014D -:1005300014BE84B7877F84BF88E10FB6F894809398 -:100540006000109260000FBEE0E0FFE3099511E04B -:10055000A0E0B1E0EAE0F8E402C005900D92A43317 -:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0 -:10057000B107E1F70E94A60A0C9403240C94000032 -:100580001092B9008AE08093B800089594EA90939D -:10059000BC009091BC0097FFFCCF9091B900987F70 -:1005A000983021F0903111F081E008958093BB00E4 -:1005B00084E88093BC008091BC0087FFFCCF8091D1 -:1005C000B900887F883111F0803471F780E0089598 -:1005D00084E98093BC008091BC0084FDFCCF089529 -:1005E0008093BB0084E88093BC008091BC0087FFAF -:1005F000FCCF9091B900987F81E0983209F480E0B7 -:10060000089584E88093BC008091BC0087FFFCCFF4 -:100610008091BB00089580910101811115C080E493 -:100620000E94C6028093010181110CC082E10E94E8 -:10063000F00280930101811105C08FEF0E94F0024A -:10064000809301010E94E80284B1807F84B985B162 -:10065000807F85B98AB1837F8AB98BB1837F8BB95B -:100660003E98469808950E94C604809301010E9416 -:100670000B0380B38C7080BB81B3836F81BBA5E318 -:10068000B1E0E3E4F1E08EE08E0F11921D928E1343 -:10069000FCCF0C94B004BF92CF92DF92EF92FF9206 -:1006A0000F931F93CF93DF9380910101882379F0FB -:1006B000809134018F5F80933401811108C00E94C2 -:1006C000C60480930101811102C00E94580405E311 -:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407 -:1006E000E394F12CC730D10500F58091010181110F -:1006F00064C080E40E94C60280930101811112C08F -:1007000082E10E94F0028093010181110BC0C701B8 -:100710000C2E01C0880F0A94EAF780950E94F0021F -:10072000809301010E94E80248C0CA30A1F028F479 -:10073000C83059F0C93061F005C0CC3089F070F094 -:10074000CD3089F0209A289810C0219A29980DC0A0 -:10075000229A2A980AC0239A2B9807C0529A01C05D -:10076000539A5B9802C03E9A469890EA9A95F1F7A0 -:100770009FB1799902C082E001C080E091709D250F -:10078000982B7C9902C084E001C080E0892B7D9980 -:1007900002C038E001C030E0832B7E9902C020E126 -:1007A00001C020E0822B9FB19095991F9927991F36 -:1007B0009295990F907E892B0FC080910101811134 -:1007C00049C080E40E94C60280930101882379F128 -:1007D000B12C0E94E8028B2DF8019081981719F036 -:1007E0008083C09200010E940B0321960F5F1F4F70 -:1007F000CE30D10509F076CF80910001882361F1D8 -:10080000815080930001882339F08FE99FE00197A0 -:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F -:10082000CF01825F91919D938E13FCCF15C083E120 -:100830000E94F002809301018111CACF81E40E94DD -:10084000C602809301018111C3CF0E940103B82E1B -:10085000B094BFCF80E0C0CF0E94560481E0DF910A -:10086000CF911F910F91FF90EF90DF90CF90BF90AD -:100870000895E82FF0E0ED5BFE4F80810895089524 -:100880000F931F93CF93DF93C3E4D1E010E00C2FBD -:10089000025F899190E00E94F71A180F0C13F9CFAC -:1008A000812FDF91CF911F910F9108950C94260510 -:1008B00056985E9825982D9826982E9827982F98C8 -:1008C0008FEF90E0909389008093880090938B0045 -:1008D00080938A0090938D0080938C00259A2D9AA6 -:1008E0002FEF80E792E0215080409040E1F700C078 -:1008F0000000269A2E9A2FEF80E792E02150804048 -:100900009040E1F700C00000279A2F9A2FEF80E770 -:1009100092E0215080409040E1F700C0000025980F -:100920002D982FEF80E792E0215080409040E1F732 -:1009300000C0000026982E982FEF80E792E021500B -:1009400080409040E1F700C0000027982F9856980B -:100950005E9825982D9826982E9827982F98089578 -:1009600089EA8093800089E08093810024982C9804 -:100970003F988AB18F748AB96E98479A8BB1806B11 -:100980008BB9769A0E9458040C94250580E28093D6 -:1009900001018091510181110EC00E94C00281E0CD -:1009A000809351012FEF83ED90E3215080409040E0 -:1009B000E1F700C0000080E40E94C60280930101BC -:1009C00081112EC00E94F00280930101811128C084 -:1009D0000E94F00280930101811122C08FE30E94E6 -:1009E000F0028093010181111BC00E94E80280E4A3 -:1009F0000E94C60280930101811112C08CE00E9406 -:100A0000F0028093010181110BC00E94F0028093DB -:100A10000101811105C08FE30E94F0028093010162 -:100A20000E94E80280910101089561110BC0FC0150 -:100A30008281882321F085EE0E94061103C085EE95 -:100A40000E94CE1180E090E0089508956091BD016C -:100A50007091BE018091BF019091C0010E94031B63 -:100A600056985E9825982D9826982E9827982F9816 -:100A7000813019F0823021F00895259A2D9A089539 -:100A8000269A2E9A089581E0089581E008950C94A5 -:100A9000450508950F931F93CF93DF938C01FC01BD -:100AA000C081D181CE010E947C19BE010E94F30554 -:100AB000EC01B8010E944705882309F48DC0F801B4 -:100AC0008281882309F44AC080915D0181111FC091 -:100AD000C431F0E5DF0709F051C00E94490581E00B -:100AE00080935D010E949B1B90935C0180935B014E -:100AF0001092540110925601109255011092580113 -:100B00001092570110925A011092590165C08091BC -:100B10005B0190915C010E94A71B883C910570F4D9 -:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB -:100B3000D183C0838F5F809354014EC0C43880E559 -:100B4000D80721F0C538D04501F13AC0F8018281BB -:100B5000882341F01092520182E01EC0C438E0E5C3 -:100B6000DE0759F580915201811106C086E20E948C -:100B7000061186E20E94CE1182E01CC0C438F0E566 -:100B8000DF0741F3C538D045D9F4F80182818823C5 -:100B900031F01092530180E20E941D121DC080911D -:100BA0005301811106C087E20E94061187E20E946C -:100BB000CE1180E20E9424120FC0C538D04529F31F -:100BC00081E08093520180935301C801DF91CF915E -:100BD0001F910F910C94430580E0DF91CF911F91FD -:100BE0000F910895089596E0799FF001112494E5FE -:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F -:100C0000E25FFE4F859194910895880F991FFC0132 -:100C1000E657F040859194910895880F991FFC0143 -:100C2000E65FFE4F8591949108950F931F93CF93A4 -:100C3000DF93EC01811520E3920750F5C11580E2A6 -:100C4000D80708F0C3C0CB3BD10590F4C83AD10512 -:100C500008F06AC0C53AD10508F05BC0C430D105C0 -:100C600008F0D0C1219709F0CAC101E010E00AC222 -:100C7000CF3FD10511F008F0C5C1C03FD10508F044 -:100C8000A2C0CE01805E9109089708F4BBC1B7C12C -:100C9000C13090E5D90709F4A2C020F5C0318FE436 -:100CA000D80770F4C11590E4D90708F094C0C115B5 -:100CB00021E3D20708F0A3C1DD278E01106CE2C149 -:100CC000C115D04509F09BC10E9483148FEF94E3B6 -:100CD0002CE0815090402040E1F700C000000E94CD -:100CE000F61BD0C1C11597E5D90758F4C03121E5ED -:100CF000D20708F01CC1C43180E5D80708F475C0DC -:100D00007EC1CE0190578115904108F078C1DF7007 -:100D100073C1C53AD10509F477C1C63AD10509F0C6 -:100D200076C102E810E4AEC1C83AD10509F472C137 -:100D3000C93AD10509F471C1CA3AD10509F470C1A3 -:100D4000CB3AD10509F46FC1CC3AD10509F46EC193 -:100D5000CD3AD10509F46DC1C03BD10509F46CC190 -:100D6000CE3AD10509F46BC1CF3AD10509F46AC175 -:100D7000C13BD10509F469C1C23BD10509F468C181 -:100D8000C33BD10509F467C1C43BD10509F466C171 -:100D9000C53BD10509F465C1C63BD10509F464C161 -:100DA000C73BD10509F463C1C83BD10509F462C151 -:100DB000C93BD10509F461C1CA3BD10509F460C141 -:100DC00000E014E45FC18E0110655CC1CE019F702C -:100DD0000E940D0658C1DF708E01106A53C18091C8 -:100DE000DA0181608093DA014DC10E949B1D81115F -:100DF00002C00E94811D0E94B81D90E09093FB01EB -:100E00008093FA01C23080E5D80721F48091FA017D -:100E1000816086C0C43090E5D90721F48091FA0141 -:100E200082607EC0C63020E5D20721F48091FA01AD -:100E3000846076C0C83080E5D80719F48091FA0143 -:100E400027C0CA3090E5D90721F48091FA0180616A -:100E500067C0CC3020E5D20721F48091FA0180628E -:100E60005FC0CE3080E5D80721F48091FA0180641C -:100E700057C0C03190E5D90721F48091FA0180680C -:100E80004FC0C23120E5D20729F48091FA01846075 -:100E9000886046C0C33080E5D80721F48091FA010C -:100EA0008E7F3EC0C53090E5D90721F48091FA01CC -:100EB0008D7F36C0C73020E5D20721F48091FA013A -:100EC0008B7F2EC0C93080E5D80719F48091FA01D4 -:100ED00026C0CB3090E5D90721F48091FA018F7EAE -:100EE0001FC0CD3020E5D20721F48091FA018F7D1B -:100EF00017C0CF3080E5D80721F48091FA018F7BAD -:100F00000FC0C13190E5D90721F48091FA018F77A4 -:100F100007C0C331D04531F48091FA018B7F877FC0 -:100F20008093FA018091FA010E94BC1DABC08D2F05 -:100F300099278F70992781309105D9F49E012370EC -:100F4000332702C0880F991F2A95E2F79C688E010B -:100F500044E0000F111F4A95E1F700271370802B22 -:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA -:100F70002FC08230910531F4DC2FCC278E01016F18 -:100F8000106A80C08330910569F4CE01837099277F -:100F900001E010E002C0000F111F8A95E2F7C801BE -:100FA0009C680FC084309105B9F4CE0183709927F5 -:100FB00001E010E002C0000F111F8A95E2F7C8019E -:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029 -:100FD0008C010C2B1D2B56C08530910531F4DC2F74 -:100FE000CC278E01046F106A4DC0069709F04AC0E5 -:100FF000CF71DD27DC2FCC278E01106243C000E0CB -:1010000010E040C08E013EC001E810E43BC003E8A0 -:1010100010E438C002EE14E435C009EE14E432C026 -:101020000AEE14E42FC005EB14E42CC006EB14E424 -:1010300029C007EB14E426C00CEC14E423C00DEC2B -:1010400014E420C003E815E41DC00AE815E41AC042 -:1010500002E915E417C004E915E414C001E216E43E -:1010600011C003E216E40EC004E216E40BC005E270 -:1010700016E408C006E216E405C007E216E402C062 -:101080000AE216E4C801DF91CF911F910F910895F4 -:1010900096E0799FF001112494E5899FE00DF11D00 -:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149 -:1010B0009491803E9105E0F4803C910558F5813390 -:1010C000910509F46FC048F48932910509F463C0B1 -:1010D0008A32910509F46DC072C089339105E9F037 -:1010E00082389105D1F08533910509F44DC067C070 -:1010F000833E910581F138F4803E9105B9F0823E3E -:101100009105D9F05CC0863E910561F1873E91055D -:10111000A1F155C00E94050608952091FA0120FD15 -:1011200002C021FF4CC080EE90E049C08091FA01DE -:1011300080FFF9CF89E390E042C08091FA0182FFFD -:101140000EC08091FA0184FF03C080E090E037C0B8 -:1011500083EE90E034C08091FA0182FFF2CF82EEFC -:1011600090E02DC08091FA0183FF0BC08091FA01BD -:1011700084FDEBCF87EE90E022C08091FA0183FFDF -:10118000F5CF86EE90E01BC08091FA0185FF07C085 -:1011900089E290E014C08091FA0185FFF9CF85E3E0 -:1011A00090E00DC08091FA0186FF07C08AE290E0CE -:1011B00006C08091FA0186FFF9CF81E390E00E949A -:1011C0001506089508950C94E20880916E01089523 -:1011D000CF93DF9300D01F92CDB7DEB79C018091F3 -:1011E000F101843019F593E099833B832A8390932E -:1011F000E9008FEF9091E800815095FD06C095EDD4 -:101200009A95F1F700008111F5CF8091E80085FFF4 -:101210000DC040E050E063E070E0CE0101960E9416 -:10122000520B8091E8008E778093E8000F900F902A -:101230000F90DF91CF910895CF93DF9300D01F924D -:10124000CDB7DEB72091F101243021F522E02983CA -:101250009B838A8383E08093E9008FEF9091E8007D -:10126000815095FD06C095ED9A95F1F7000081112A -:10127000F5CF8091E80085FF0DC040E050E063E0CD -:1012800070E0CE0101960E94520B8091E8008E77AB -:101290008093E8000F900F900F90DF91CF91089509 -:1012A0002091F1012430F1F422E02093E9002FEFA6 -:1012B0003091E800215035FD06C035ED3A95F1F743 -:1012C00000002111F5CF2091E80025FF0BC040E080 -:1012D00050E065E070E00E94520B8091E8008E774C -:1012E0008093E8000895CF93DF93EC019091F10192 -:1012F000943009F046C080910C018823D9F0809188 -:101300000D018823B9F09093E9008FEF9091E800E8 -:10131000815095FD06C095E19A95F1F70000811185 -:10132000F5CF8091E80085FF2CC040E050E060E1FF -:1013300070E017C081E08093E9008FEF9091E800A2 -:10134000815095FD06C095ED9A95F1F70000811149 -:10135000F5CF8091E80085FF14C040E050E068E0E0 -:1013600070E0CE010E94520B8091E8008E7780934E -:10137000E80080E1FE01AEE5B1E001900D928A95B2 -:10138000E1F7DF91CF9108958091F001811109C0BB -:101390000E94E70C0E94440D8091E20084608093DB -:1013A000E20008951092F001089508950C942B2204 -:1013B0000E948C1B0E9431220E94EA0F0C94E308C9 -:1013C00042E061EC81E00E94610C42E061EC82E06D -:1013D0000E94610C42E061EC83E00E94610C42E1FA -:1013E00061EC84E00C94610C8091F301833009F48A -:1013F00055C030F4813071F0823009F48EC0089508 -:101400008A3009F47AC08B3009F460C0893009F061 -:101410009CC020C08091F201813A09F096C0809171 -:10142000E800877F8093E8008091F6019091F701B2 -:10143000892B21F460E18EE591E003C060E080E05B -:1014400090E070E00E949D0B8091E8008B77809384 -:10145000E80008958091F201813209F076C0809110 -:10146000F6019091F701009719F0039709F06DC00C -:101470008091E800877F8093E8008091E80082FDFA -:1014800005C08091F1018111F8CF5FC08091F1001A -:1014900080936E018091E8008B7753C08091F201B8 -:1014A000813A09F052C08091F6019091F701892BA1 -:1014B00009F04BC08091E800877F8093E80080911D -:1014C000E80080FFFCCF80910C0136C08091F201D2 -:1014D0008132D9F58091F6019091F701892BA9F518 -:1014E0008091E800877F8093E8000E94960C8091AD -:1014F000F40180930C010C9483148091F2018132E9 -:1015000021F58091E800877F8093E8000E94960C87 -:101510008091F50180936F0108958091F201813AE5 -:10152000A1F48091E800877F8093E8008091E80033 -:1015300080FFFCCF80916F018093F1008091E800E3 -:101540008E778093E8000C94960C089584B7877F7B -:1015500084BF88E10FB6F894809360001092600019 -:101560000FBE90E080E80FB6F894809361009093EE -:1015700061000FBE0E9439100E94E70C0E94440DCA -:101580008091E20084608093E20078940E94CA0F08 -:101590000E943B1082E091E00E94E50F0E94192218 -:1015A0008091F101853069F40E94531B8091EF0115 -:1015B0008823B1F30E947E1B882391F30E943C0B89 -:1015C000EFCF0E944110ECCF292F33272330310574 -:1015D000C9F064F42130310581F02230310509F081 -:1015E00043C08DE690E02AE333E042C0213231056A -:1015F000F1F02232310541F137C082E190E027EA73 -:1016000033E036C099278130910541F08230910551 -:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4 -:1016200002C0E6E0F3E0849190E09F0121C06430C5 -:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5 -:10164000318189E090E014C0643070F470E0FB01F7 -:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47 -:10166000FE4F808190E004C080E090E020E030E018 -:10167000FA0131832083089580E189BD82E189BD2B -:1016800009B400FEFDCF8091D8008F7D8093D800F3 -:101690008091E00082608093E0008091E00081FD15 -:1016A000FCCF0895CF92DF92EF92FF920F931F939A -:1016B000CF93DF93EC018B016A010E94B50C81117D -:1016C00033C0C114D10439F0F60180819181081B27 -:1016D000190BC80FD91FE12CF12C0115110519F1B7 -:1016E0008091E80085FD16C08091E8008E77809398 -:1016F000E800C114D10449F0F60180819181E80E1F -:10170000F91EF182E08285E00FC00E94B50C8823AB -:1017100021F30AC089918093F10001501109FFEF74 -:10172000EF1AFF0ADACF80E0DF91CF911F910F917E -:10173000FF90EF90DF90CF9008952091F8013091C5 -:10174000F9012617370748F06115710539F4209122 -:10175000E8002E772093E80001C0B90140E0611550 -:101760007105A9F12091F101222309F443C025302C -:1017700009F442C02091E80023FD40C02091E80018 -:1017800022FD32C02091E80020FFE9CF4091F30014 -:101790002091F20030E0342BFC01CF01611571057E -:1017A00059F02830310540F481918093F100615067 -:1017B00071092F5F3F4FF1CF41E02830310509F02B -:1017C00040E02091E8002E772093E800C8CF411137 -:1017D000C9CF0AC08091F101882361F0853061F0A2 -:1017E0008091E80083FD0AC08091E80082FFF2CF7B -:1017F00080E0089582E0089583E0089581E00895EF -:101800002091F8013091F9012617370748F061154A -:10181000710539F42091E8002E772093E80001C08B -:10182000B901FC0120E06115710591F18091F10190 -:10183000882309F440C0853009F43FC08091E80056 -:1018400083FD3DC08091E80082FD2FC08091E800BB -:1018500080FFE9CF2091F3008091F20090E0922B7D -:101860006115710559F08830910540F42491209359 -:10187000F1003196615071090196F2CF21E008978D -:1018800009F020E08091E8008E778093E800CBCFCC -:101890002111CCCF0AC08091F101882361F08530FD -:1018A00061F08091E80083FD0AC08091E80082FF2A -:1018B000F2CF80E0089582E0089583E0089581E00A -:1018C0000895982F973058F59093E900981739F0BC -:1018D0007091EC002091ED005091F00003C0242F96 -:1018E000762F50E021FF19C03091EB003E7F3093FE -:1018F000EB003091ED003D7F3093ED003091EB0037 -:1019000031603093EB007093EC002093ED00509326 -:10191000F0002091EE0027FF07C09F5FD3CF8F70AC -:101920008093E90081E0089580E008958091F201BC -:1019300087FF11C08091E80082FD05C08091F10110 -:101940008111F8CF11C08091E8008B770BC0809196 -:10195000F101882349F08091E80080FFF8CF809161 -:10196000E8008E778093E80008952091E40030919C -:10197000E50095E64091EC00842F817040FF22C085 -:101980008091E80080FD1CC08091F101882391F0D6 -:10199000853091F08091EB0085FD10C04091E4000E -:1019A0005091E5004217530729F39A01915011F71E -:1019B00084E0089582E0089583E0089581E0089529 -:1019C00080E008954091E80042FFDECF08950E9434 -:1019D000550D0E945D0DE0EEF0E080818160808316 -:1019E000E8EDF0E080818F77808319BCA7EDB0E04F -:1019F0008C918E7F8C9380818F7E80831092F001FA -:101A000008950F931F93CF93DF930E94550D0E946B -:101A10005D0DC8EDD0E088818F77888388818068EC -:101A2000888388818F7D888319BC1092F101109280 -:101A3000ED011092EF011092EE0100EE10E0F801BE -:101A400080818B7F808388818160888342E060E031 -:101A500080E00E94610CE1EEF0E080818E7F808367 -:101A6000E2EEF0E080818160808380818860808305 -:101A7000F80180818E7F8083888180618883DF91F7 -:101A8000CF911F910F910895E8EDF0E080818F7E56 -:101A90008083E7EDF0E080818160808384E082BF15 -:101AA00081E08093F0010C94010DE8EDF0E080817D -:101AB0008E7F80831092E20008951092DA001092D7 -:101AC000E10008951F920F920FB60F9211242F93E9 -:101AD0003F934F935F936F937F938F939F93AF93B6 -:101AE000BF93EF93FF938091E10082FF0BC0809141 -:101AF000E20082FF07C08091E1008B7F8093E100CC -:101B00000E94C90F8091DA0080FF1FC08091D80029 -:101B100080FF1BC08091DA008E7F8093DA00809175 -:101B2000D90080FF0DC080E189BD82E189BD09B483 -:101B300000FEFDCF81E08093F1010E94C40905C041 -:101B400019BC1092F1010E94D2098091E10080FF3E -:101B500019C08091E20080FF15C08091E2008E7F65 -:101B60008093E2008091E20080618093E2008091A6 -:101B7000D80080628093D80019BC85E08093F10181 -:101B80000E94D6098091E10084FF30C08091E2007C -:101B900084FF2CC080E189BD82E189BD09B400FECB -:101BA000FDCF8091D8008F7D8093D8008091E10097 -:101BB0008F7E8093E1008091E2008F7E8093E2002F -:101BC0008091E20081608093E2008091ED018823A2 -:101BD00011F084E007C08091E30087FD02C081E03E -:101BE00001C083E08093F1010E94D8098091E10057 -:101BF00083FF29C08091E20083FF25C08091E1002E -:101C0000877F8093E10082E08093F1011092ED01E3 -:101C10008091E1008E7F8093E1008091E2008E7FD1 -:101C20008093E2008091E20080618093E20042E0D4 -:101C300060E080E00E94610C8091F00088608093F9 -:101C4000F0000E94D509FF91EF91BF91AF919F9154 -:101C50008F917F916F915F914F913F912F910F9055 -:101C60000FBE0F901F9018951F920F920FB60F92F4 -:101C700011242F933F934F935F936F937F938F9391 -:101C80009F93AF93BF93CF93DF93EF93FF93C09155 -:101C9000E900CF708091EC00D82FD17080FDD0E8A2 -:101CA0001092E9008091F000877F8093F000789493 -:101CB0000E94780E1092E9008091F0008860809375 -:101CC000F000CD2BCF70C093E900FF91EF91DF9131 -:101CD000CF91BF91AF919F918F917F916F915F91C4 -:101CE0004F913F912F910F900FBE0F901F9018951D -:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3 -:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115 -:101D1000F10091938E13FBCF0E94F4098091E800AB -:101D200083FF1FC18091F2019091F301492F50E090 -:101D30004A30510508F015C1FA01EA5AFF4F0C94D8 -:101D4000B323803881F0823809F00BC18091F6010D -:101D50008F708093E9008091EB0085FB882780F9E4 -:101D60001092E90006C08091EE019091EF0191116F -:101D700082609091E800977F9093E8008093F10053 -:101D80001092F100C8C0282F2D7F09F0EAC08823E7 -:101D900019F0823061F0E5C08091F401813009F0E2 -:101DA000E0C0933009F080E08093EF012BC0809178 -:101DB000F401811127C08091F6018F7009F4D1C020 -:101DC0008093E9002091EB0020FF1CC0933021F4A8 -:101DD0008091EB00806214C09091EB009061909331 -:101DE000EB0021E030E0A90102C0440F551F8A95A5 -:101DF000E2F74093EA001092EA008091EB008860DD -:101E00008093EB001092E9008091E800877F86C004 -:101E10008111A7C01091F4011F778091E3008078B1 -:101E2000812B8093E3008091E800877F8093E80016 -:101E30000E94960C8091E80080FFFCCF8091E30027 -:101E400080688093E300111102C082E001C083E04A -:101E50008093F10186C08058823008F082C0809162 -:101E6000F4019091F5018C3D53E0950779F583E0FD -:101E70008A838AE289834FB7F894DE01139620E0C3 -:101E80003EE051E2E32FF0E050935700E49120FF51 -:101E900003C0E295EF703F5FEF708E2F90E0EA3065 -:101EA00010F0C79601C0C0968D939D932F5F24318B -:101EB00049F74FBF8091E800877F8093E8006AE28E -:101EC00070E0CE0101960E949D0B14C0AE014F5FE1 -:101ED0005F4F6091F6010E94E40ABC01009709F48B -:101EE00040C09091E800977F9093E80089819A81A3 -:101EF0000E94000C8091E8008B778093E80031C04D -:101F0000803879F58091E800877F8093E8008091A0 -:101F1000ED018093F1008091E8008E778093E800D6 -:101F20000E94960C1EC081111CC09091F401923049 -:101F3000C0F48091E800877F8093E8009093ED01E2 -:101F40000E94960C8091ED01811106C08091E30002 -:101F500087FD02C081E001C084E08093F1010E940E -:101F6000E0098091E80083FF0AC08091E800877F44 -:101F70008093E8008091EB0080628093EB00AA964A -:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A -:101F900008950895CF938091F1018823A1F0C09115 -:101FA000E900CF709091EC00892F817090FD80E85E -:101FB000C82B1092E9008091E80083FD0E94780E02 -:101FC000CF70C093E900CF910895909375018093ED -:101FD00074010895E0917401F0917501309721F03A -:101FE0000190F081E02D099480E00895E091740162 -:101FF000F0917501309721F00280F381E02D099472 -:102000000895E0917401F0917501309721F00480FA -:10201000F581E02D099408952091720130917301AA -:102020008217930771F09093730180937201E0918E -:102030007401F0917501309721F00680F781E02D51 -:1020400009940895209170013091710182179307CE -:1020500071F09093710180937001E0917401F0919F -:102060007501309721F00084F185E02D09940895E1 -:1020700008950C9438100E94921B0E9433030C9414 -:10208000541C9F92AF92BF92CF92DF92EF92FF9239 -:102090000F931F93CF93DF9300D000D000D0CDB724 -:1020A000DEB70E944B030DE010E0AA24A394B12CEC -:1020B000902E802F0E943904980129583E4F6901C3 -:1020C000F901F080F826A1F40150110988F78FEF8B -:1020D00089838A831B820E949B1B8160782F9D834A -:1020E0008C8349815A816B818D810E94D8102FC0C9 -:1020F0009091DA0191FF04C08E830E943F048E818B -:1021000025E030E0A501022E01C0440F0A94EAF751 -:10211000E42E4F21C1F029839A828E2191E009F4A7 -:1021200090E09B830E949B1B8160782F9D838C8312 -:1021300049815A816B818D810E94D810F60180817E -:10214000E826E08204C021503109E0F6BDCF0E94AC -:102150003B1F109176010E94EA0F1817B9F00E94F8 -:10216000EA0F8093760126960FB6F894DEBF0FBE75 -:10217000CDBFDF91CF911F910F91FF90EF90DF9036 -:10218000CF90BF90AF909F900C94E30826960FB627 -:10219000F894DEBF0FBECDBFDF91CF911F910F919D -:1021A000FF90EF90DF90CF90BF90AF909F900895F9 -:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82 -:1021C0000FBECDBF4F83588769877A878B87DE0123 -:1021D000119686E0FD0111928A95E9F785E0FE01EE -:1021E000379601900D928A95E1F749815A816B816A -:1021F0007C818D819E810E9421172B960FB6F894C9 -:10220000DEBF0FBECDBFDF91CF910895CF9388235E -:1022100009F4C2C0C82F823859F40E94EA0F81FD28 -:10222000BBC089E30E94FB190E94C81A89E30CC055 -:10223000833879F40E94EA0F80FDAEC083E50E94E6 -:10224000FB190E94C81A83E50E943D1ACF910C9495 -:10225000C81A843859F40E94EA0F82FD9DC087E4B1 -:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6 -:10227000813A48F48C2F0E947E2181118DC08C2FD1 -:102280000E94FB19E3CF80E28C0F883048F4C770BE -:1022900081E001C0880FCA95EAF70E94811AD6CF63 -:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB -:1022B00083E890E005C081E890E002C082E890E009 -:1022C000CF910C940C1088E58C0F833108F064C01A -:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118 -:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186 -:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106 -:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173 -:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB -:1023200038C082EE90E035C089EE90E032C08AEE8F -:1023300090E02FC085EB90E02CC086EB90E029C0A8 -:1023400087EB90E026C08CEC90E023C08DEC90E011 -:1023500020C083E891E01DC08AE891E01AC082E9BC -:1023600091E017C084E991E014C081E292E011C0CD -:1023700083E292E00EC084E292E00BC085E292E03C -:1023800008C086E292E005C087E292E002C08AE2DD -:1023900092E0CF910C942210CF910895882309F4F4 -:1023A0004BC0823859F40E94EA0F81FF45C089E38F -:1023B0000E94FB190E94C81A89E30CC0833871F48B -:1023C0000E94EA0F80FF38C083E50E94FB190E943B -:1023D000C81A83E50E943D1A0C94C81A843859F42F -:1023E0000E94EA0F82FF28C087E40E94FB190E9426 -:1023F000C81A87E4EFCF9CEF980F913A58F390E218 -:10240000980F983050F4877091E001C0990F8A9529 -:10241000EAF7892F0E94871ADFCF9BE5980F933048 -:1024200020F480E090E00C940C10885A833120F462 -:1024300080E090E00C9422100895882321F00E94FF -:10244000811A0C94C81A0895882321F00E94871AD3 -:102450000C94C81A08957F928F929F92AF92BF9268 -:10246000CF92DF92EF92FF920F931F93CF93DF9360 -:102470001F92CDB7DEB77C01C62E772EFC010581F9 -:1024800002950F70128111110E949E1A0E94F41978 -:10249000882379F0112369F080E28C0D883048F0B0 -:1024A00082E00E94DD190E94F41991E0D82ED9260D -:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C -:1024C0000C94B323872D807F072D0F70882311F084 -:1024D0000295007F112389F0002309F490C180E266 -:1024E0008C0D883020F4802F0E94811A03C0802F29 -:1024F0000E94911A0E94C81A82C18C2D0E94CE118E -:10250000002309F495C180E28C0D883020F4802FDF -:102510000E94871A03C0802F0E94971A0E94C81A2F -:1025200087C1972D907F872D8F70903211F0829503 -:10253000807FCC2021F0F1E0CF16B1F01EC0112336 -:1025400049F0002309F414C1013009F011C10E94BF -:10255000B11A6EC1002319F0013009F469C18983F1 -:102560000E94B41A89810AC1112321F0023008F0B7 -:102570005FC1FEC001115CC101C1112321F0002324 -:1025800009F4F6C03CC1002309F4F8C03EC1872D10 -:1025900086958695837090E0009719F0019761F019 -:1025A00047C1112321F08C2D972D937002C080E03C -:1025B00090E00E940C103CC1112321F08C2D972D2E -:1025C000937002C080E090E00E94221031C18C2DF7 -:1025D000112319F00E94431E02C00E94AB1E0E94EC -:1025E000301F26C1872D837009F052C0111120C100 -:1025F0008C2D829586958770880F880F9C2D9F70F3 -:10260000892E912CA12CB12C082E04C0880C991C69 -:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041 -:1026200020E030E0B901A80104C0440F551F661F27 -:10263000771F8A95D2F7CB01BA0160957095809586 -:10264000909503C060E070E0CB01272D269526957C -:10265000237030E02230310569F02330310589F0F4 -:10266000682979298A299B292130310571F00E9436 -:102670006918DEC0682979298A299B290E94851852 -:10268000D7C00E946918C501B4010E944D18D0C07E -:10269000112319F0872D817001C08695882309F4D4 -:1026A000C7C08C2D829586958770880F880F9C2DCA -:1026B0009F70892E912CA12CB12C082E04C0880C5F -:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC -:1026D00010E020E030E0B901A80104C0440F551F0C -:1026E000661F771F8A95D2F7CB01BA016095709566 -:1026F0008095909503C060E070E0CB01272D269572 -:1027000026952370422F50E04230510569F0433046 -:10271000510589F0682979298A299B294130510579 -:1027200071F00E94431984C0682979298A299B295C -:102730000E945F197DC00E944319C501B4010E9427 -:10274000271976C08C2D90E0FC01E05EF109E5319F -:10275000F10508F050C0E059FF4F0C94B3230C2D45 -:102760000F70872D8F71112331F00E94C018802FB8 -:102770000E941D125DC00E94E118802F0E94241249 -:1027800057C0112339F0011153C0872D8F710E945A -:1027900006194EC0023008F04BC0F7CF112339F0B4 -:1027A000872D8F710E94C01843C01123C9F3872D54 -:1027B0008F710E94E1183CC0112329F0872D8F7181 -:1027C0000E94AB1835C00E94A11832C0112351F0ED -:1027D000172D1F71812F0E94C01863E0812F0E9466 -:1027E000D41926C081E00E94DD19023008F182E090 -:1027F0000E94DD191DC0112331F0002389F28C2DB8 -:102800000E94061115C0002391F28C2D0E94CE115A -:102810000FC0472D4F706C2DC7010E9415050E94F7 -:10282000C51706C0472D4F706C2DC7010E94F205D9 -:10283000DD20F9F00E94D01980FD1BC0F701128243 -:102840000E94CA190E94C018C7010E9448140E9421 -:10285000CA190F90DF91CF911F910F91FF90EF90C8 -:10286000DF90CF90BF90AF909F908F907F900C940F -:10287000E1180F90DF91CF911F910F91FF90EF9092 -:10288000DF90CF90BF90AF909F908F907F900895F2 -:102890000F931F93CF93DF93EC01888199812B8154 -:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B -:1028B0000E944A05882371F0688179818A810E948B -:1028C000C6198C010E947B190E944218B801CE01E2 -:1028D0000E942B12DF91CF911F910F9108950E94BA -:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471 -:1028F000E11F0E94301F80E090E00E940C1080E0F9 -:1029000090E00C9422100E948E1A0C946F140E9476 -:10291000BB19292F22952F7030E02C3031054CF453 -:102920002A3031056CF42250310922303105A8F4E7 -:1029300007C02C30310569F02F30310551F00DC042 -:10294000803F69F018F4803E40F409C0843F29F4C8 -:1029500006C093FB882780F9089580E0089581E000 -:102960000895CF93DF9300D000D01F92CDB7DEB78C -:102970000F900F900F900F900F90DF91CF910895CF -:10298000CF93DF9300D000D000D0CDB7DEB726962E -:102990000FB6F894DEBF0FBECDBFDF91CF91089583 -:1029A0001F93CF93DF93C091850116E0809186013C -:1029B000C81799F0D0E01C9FF0011D9FF00D112465 -:1029C000E957FE4F408151816281738184819581F5 -:1029D0000E94C0142196C770E9CFDF91CF911F915B -:1029E00008954091B7015091B8016091B90170917B -:1029F000BA018091BB019091BC010C94C0148091EC -:102A0000BC0182958F7009F054C08091B901882370 -:102A100009F44FC080918501A09186016091B701B2 -:102A20007091B8014091BA015091BB01B6E08A178C -:102A300009F43FC090E041155105C1F17F3F11F409 -:102A40006F3FA1F1B89FF001B99FF00D1124E95734 -:102A5000FE4F218172132AC02081621327C0228178 -:102A6000211124C0238134812417350710F421500B -:102A70003109241B350B283C3105C0F42091BC01E1 -:102A80002F7020612093BC0126E0289FF001299F30 -:102A9000F00D1124E457FE4F80818F708061808398 -:102AA00087EB91E00E9448140C94D0140196877033 -:102AB000BECF0895CF92DF92EF92FF920F931F93B4 -:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32 -:102AD0000FBECDBF8C0185E0F801DE011D9601908F -:102AE0000D928A95E1F7D8014C9111965C9111975E -:102AF00012966C9112971396CD90DC9014973091AA -:102B0000B7017091B8018091BA019091BB01009713 -:102B100009F46BC17F3F19F43F3F09F466C1E090AF -:102B2000B901EE2009F4C0C02091BC01C816D90635 -:102B300028F0F601E81BF90BCF0104C080959095B1 -:102B40008C0D9D1DFF24F394883C910578F0F12CA9 -:102B5000207F09F0C6C07C2DD98AC88A89890E9445 -:102B6000B11487EB91E00E944814B1C0822F807F9E -:102B700009F046C0751314C0341312C0611110C09F -:102B80002F7020612093BC010E94F11487EB91E02B -:102B90000E9448148091BC01D80115968C932EC0D8 -:102BA000CD2819F15F3F11F44F3FF9F0F62E611176 -:102BB0001CC0809185012091860136E0821709F4BE -:102BC0005AC090E0389FF001399FF00D1124E95769 -:102BD000FE4F7181571306C07081471303C0728185 -:102BE000711103C001968770E9CFF62E662309F4B0 -:102BF00018C18091BC0181608093BC01F12C11C18E -:102C0000751308C0341306C0611104C08091BC0163 -:102C1000D801C3C04D875E878D859E856A8B0E94D3 -:102C200087146A898823E1F16623D1F12091BC01E0 -:102C3000822F82958F7090E0029774F08091B70197 -:102C40009091B80198878F831986DB86CA862C8776 -:102C5000CE0107960E94481486E0F801A7EBB1E088 -:102C600001900D928A95E1F70E94FF140E94F114E1 -:102C7000FF24F394D6C04D875E878D859E850E9484 -:102C8000BB19292F22952F7030E0223031050CF02E -:102C9000BCC09F7009F0B6C0805E883008F4C1C027 -:102CA000C8010E944814E4CFC816D90608F453C0DE -:102CB000F601E81BF90BCF01883C910508F450C0E0 -:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E -:102CD000F1E086E0DF011D928A95E9F70E94F11488 -:102CE000A0C0751314C0341312C0611110C08091BC -:102CF000BC01F8018583C8010E94481486E0E7EB17 -:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C -:102D10005E878D859E856A8B0E9487146A898823C9 -:102D200009F4BECF662309F4BBCF2091BC01822FEA -:102D300082958F7090E002970CF48ECF8091B7014E -:102D40009091B8019A8389831B82DD82CC822E8385 -:102D5000CE0101967FCF809590958C0D9D1DACCFB7 -:102D6000F62E662309F49CCF75132EC034132CC0A5 -:102D70002091BC0120FD1FC0822F82958F70D9F059 -:102D8000D80115962C9315978F3049F08F5F982FA7 -:102D90009295907F822F8F70892B15968C93C80106 -:102DA0000E94481486E0F801A7EBB1E001900D9273 -:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7 -:102DC0000D928A95E1F72DC04D875E878D859E8592 -:102DD0000E948714811140CF8091BC018160809353 -:102DE000BC01C8010E9448141CC0662309F458CFD6 -:102DF0004D875E878D859E850E948714882309F400 -:102E00004FCF2ACF811148CF0CC0243031050CF0B0 -:102E100047CF9F7009F440CFF8019581907F09F06A -:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D -:102E3000DF91CF911F910F91FF90EF90DF90CF9096 -:102E400008951F93CF93DF93CDB7DEB72C970FB6BE -:102E5000F894DEBF0FBECDBF4F83588769877A874E -:102E60008B879C87CE0107960E945A15882369F0AC -:102E70008F8198852A853B85232BF1F19F3F09F0AF -:102E800063C08F3F09F060C037C086E0FE0137960F -:102E9000DE01119601900D928A95E1F76F81788598 -:102EA000EA85FB85309741F17F3F11F46F3F21F1B7 -:102EB0002091860130E0C9010196877099274091E1 -:102EC000850150E08417950709F447C069837A8328 -:102ED000FD83EC8396E0929FD001939FB00D112467 -:102EE000A957BE4FFE01319601900D929A95E1F7D8 -:102EF000809386010E94D01416E080918501909104 -:102F000086018917C1F1189FC001112489579E4F6E -:102F10000E945A15882379F1E09185011E9FF001E6 -:102F20001124E957FE4F4081518162817381848170 -:102F300095810E94C0148091850190E00196877070 -:102F4000992780938501D9CF4F81588569857A85E6 -:102F50008B859C850E94C014CFCF0E948314109251 -:102F6000860110928501E7EBF1E086E0DF011D921A -:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45 -:102F8000CDBFDF91CF911F910895EF92FF920F93E4 -:102F90001F93CF93DF938C01009709F46CC0F12C41 -:102FA000EE24E394E8012196F8018491843740F4FB -:102FB000843008F051C0813081F0823019F15BC05B -:102FC000853709F444C0A8F19CE7980F903708F0C2 -:102FD00052C08F770E94CE1141C00E5F1F4FFE017D -:102FE000C49180E28C0F883048F4C7708E2D01C0E8 -:102FF000880FCA95EAF70E94A11A14C08C2F0E946C -:1030000006112DC00E5F1F4FFE01C49180E28C0F90 -:10301000883058F4C7708E2D01C0880FCA95EAF722 -:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3 -:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3 -:103040009FE00197F1F700C00000C150F6CF0E5F7E -:103050001F4FFE01F49003C00E9406118E018F2DB8 -:10306000882309F49FCFEFE9FFE03197F1F700C023 -:1030700000008150F5CFDF91CF911F910F91FF900C -:10308000EF90089508956093C1017093C2018093F9 -:10309000C3019093C4010C946F140F931F9300917C -:1030A000C1011091C2012091C3013091C401DC0122 -:1030B000CB01802B912BA22BB32B8093C10190933A -:1030C000C201A093C301B093C4011F910F910C944E -:1030D0006F140F931F930091C1011091C2012091B1 -:1030E000C3013091C401DC01CB0180239123A223D1 -:1030F000B3238093C1019093C201A093C301B09305 -:10310000C4011F910F910C946F140F931F930091A2 -:10311000C1011091C2012091C3013091C401DC01B1 -:10312000CB0180279127A227B3278093C1019093D9 -:10313000C201A093C301B093C4011F910F910C94DD -:103140006F141092BD011092BE011092BF01109237 -:10315000C0010C946F1441E050E060E070E004C0E6 -:10316000440F551F661F771F8A95D2F74093BD0104 -:103170005093BE016093BF017093C0010C946F1413 -:1031800041E050E060E070E004C0440F551F661F4E -:10319000771F8A95D2F78091BD019091BE01A091D1 -:1031A000BF01B091C001482B592B6A2B7B2B409358 -:1031B000BD015093BE016093BF017093C0010C9498 -:1031C0006F1441E050E060E070E004C0440F551F10 -:1031D000661F771F8A95D2F7409550956095709538 -:1031E0008091BD019091BE01A091BF01B091C0013D -:1031F000482359236A237B234093BD015093BE018A -:103200006093BF017093C0010C946F1441E050E0D3 -:1032100060E070E004C0440F551F661F771F8A9559 -:10322000D2F78091BD019091BE01A091BF01B091F4 -:10323000C001482759276A277B274093BD01509337 -:10324000BE016093BF017093C0010C946F140F9383 -:103250001F930091BD011091BE012091BF013091DB -:10326000C001DC01CB01802B912BA22BB32B8093CF -:10327000BD019093BE01A093BF01B093C0011F9107 -:103280000F910C946F140F931F930091BD01109137 -:10329000BE012091BF013091C001DC01CB01802330 -:1032A0009123A223B3238093BD019093BE01A093E9 -:1032B000BF01B093C0011F910F910C946F140F9335 -:1032C0001F930091BD011091BE012091BF0130916B -:1032D000C001DC01CB0180279127A227B32780936F -:1032E000BD019093BE01A093BF01B093C0011F9197 -:1032F0000F910C946F140895CF92DF92EF92FF928A -:103300000F931F93CF93DF938C01C090C101D09096 -:10331000C201E090C301F090C4018091BD01909181 -:10332000BE01A091BF01B091C001C82AD92AEA2AE2 -:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520 -:10334000A795979587950A94D2F780FF06C0B80194 -:103350008C2F0E944808019721F4219760F780E0A4 -:1033600001C08C2FDF91CF911F910F91FF90EF90B3 -:10337000DF90CF900895CF93DF93EC010E947C19EA -:10338000BE010E944808DF91CF910895CB010E94B1 -:10339000BB1908958091C5018595859585950895FA -:1033A0008091C5018770089598E0899F900111244C -:1033B000262B2093C5010C94C0182091C50180953F -:1033C00082238093C501982F977069F430E0482FCD -:1033D000552747FD50952417350729F08595859584 -:1033E00085950C94E11808959091C501977081E03E -:1033F00009F480E0089590910C01992321F09091B7 -:103400000D01911109C020910E0130910F01F901B8 -:1034100032969FEF40E01FC0982F9695969596950F -:103420009F3050F5E0910E01F0910F01E90FF11D71 -:10343000877021E030E0A90102C0440F551F8A9532 -:10344000E2F7CA019181892B818308959F3F39F06A -:103450004F5F4E3041F051915813F8CF0DC05111CC -:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08 -:1034700097FDFA9582830895089590910C01992300 -:1034800021F090910D01911109C020910E01309110 -:103490000F01F9013296205F3F4F1FC0982F96957C -:1034A000969596959F30F0F4E0910E01F0910F0102 -:1034B000E90FF11D877021E030E0A90102C0440F3F -:1034C000551F8A95E2F7CA018095918189238183EE -:1034D00008953196E217F30729F090819813F9CFF8 -:1034E0001082F7CF089581E090E0E0910E01F09115 -:1034F0000F01E80FF91F1082019680319105A9F79D -:1035000008959091D901892B8093D90108958095D0 -:103510009091D90189238093D90108951092D901FE -:1035200008959091D801892B8093D80108958095B2 -:103530009091D80189238093D80108951092D801E1 -:1035400008959091D701892B8093D7010895809594 -:103550009091D70189238093D70108951092D701C4 -:1035600008958093C60108951092C6010895809130 -:103570000E0190910F01FC0131969C01205F3F4F9D -:1035800080E0919191118F5FE217F307D1F70895D1 -:10359000E0910E01F0910F018091D9018083E091BB -:1035A0000E01F0910F0190818091D801892B8083C9 -:1035B000E0910E01F0910F0190818091D701892B4C -:1035C00080838091C601882361F0E0910E01F09123 -:1035D0000F019081892B80830E94B71A811110926C -:1035E000C60180910E0190910F010C94F60F20E01E -:1035F000009739F0AC0141505109842395232F5F86 -:10360000F7CF822F0895CF92DF92EF92FF926C0155 -:10361000EE24FF24C114D104E104F10421F0C70118 -:10362000B60120E101C020E0C72ED82EE92EFF24EC -:10363000C114D104E104F10419F0285FC701B601F7 -:103640006B017C0154E0F694E794D794C7945A95A3 -:10365000D1F7C114D104E104F10419F02C5FC701C2 -:10366000B6016B017C0142E0F694E794D794C794CD -:103670004A95D1F7C114D104E104F10419F02E5F89 -:10368000C701B601DC01CB01B695A7959795879543 -:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5 -:1036A000DF90CF9008958091F101843021F1109244 -:1036B000DB0120E488E190E00FB6F894A8958093B0 -:1036C00060000FBE2093600080E00E94E30883B793 -:1036D000817F846083BF83B7816083BF789488953E -:1036E00083B78E7F83BF88E10FB6F8948093600024 -:1036F000109260000FBE0895089508950E947C1BEB -:103700000E944B030E947D1B0E94400491E08111A6 -:1037100001C090E0892F08950E9483140E94EA0F4F -:103720000C94E30882E084BD93E095BD9AEF97BDC9 -:1037300080936E0008952FB7F8948091DC019091EA -:10374000DD01A091DE01B091DF012FBF0895CF927E -:10375000DF92EF92FF920F931F932FB7F89440914F -:10376000DC015091DD016091DE017091DF012FBF1E -:103770006A017B01EE24FF248C0120E030E0C016BA -:10378000D106E206F30610F4415051099A01281BB4 -:10379000390BC9011F910F91FF90EF90DF90CF90EF -:1037A00008951F920F920FB60F9211248F939F933B -:1037B000AF93BF938091DC019091DD01A091DE0178 -:1037C000B091DF010196A11DB11D8093DC019093A2 -:1037D000DD01A093DE01B093DF01BF91AF919F9116 -:1037E0008F910F900FBE0F901F9018950E94E70CBD -:1037F000F8942FEF87EA91E6215080409040E1F75E -:1038000000C0000087E090EBDC018093FB01909307 -:10381000FC01A093FD01B093FE019CE088E10FB68E -:10382000F894A895809360000FBE90936000FFCF3E -:10383000EF92FF920F931F93CF93DF93D82FCDE09A -:103840008C2F0E94390405E010E0E82EF12CC7010E -:10385000002E02C0959587950A94E2F780FF09C073 -:10386000602F7C2F80E00E94F305D81302C081E016 -:1038700006C00150110958F7C15010F780E0DF91E0 -:10388000CF911F910F91FF90EF900895CF93C82F84 -:103890008CE20E94181C882321F08C2FCF910C946D -:1038A000181C80E0CF910895CF930E949B1D811139 -:1038B00002C00E94811DC5E6C15049F00E944B0321 -:1038C0008FE39CE90197F1F700C00000F5CF89E292 -:1038D0000E94461C811113C18AE20E94461C81117C -:1038E0000E94811D85E00E94461C81110E94F61BEA -:1038F0000E94A61D8093DA0187E00E94461C88235F -:10390000A9F18BE10E94461C882351F08091DA01D5 -:1039100081FB222720F991E0922790FB81F90EC0CC -:103920008EE00E94461C882361F08091DA0182FBC0 -:10393000222720F991E0922790FB82F98093DA0107 -:1039400015C080E10E94461C9091DA01882341F065 -:1039500093FB222720F981E0822780FB93F904C0A2 -:10396000892F809580FB90F99093DA018091DA019C -:103970000E94AA1D0E94B81D8093FA0180EE0E9449 -:10398000461C882341F08091FA01982F909590FB76 -:1039900080F98093FA0189E30E94461C882359F03C -:1039A0008091FA0181FB222720F991E0922790FB78 -:1039B00081F98093FA0182EE0E94461C882359F017 -:1039C0008091FA0182FB222720F991E0922790FB57 -:1039D00082F98093FA0186EE0E94461C882359F0F2 -:1039E0008091FA0183FB222720F991E0922790FB36 -:1039F00083F98093FA0183EE0E94461C882359F0D4 -:103A00008091FA0184FB222720F991E0922790FB14 -:103A100084F98093FA0185E30E94461C882359F0BB -:103A20008091FA0185FB222720F991E0922790FBF3 -:103A300085F98093FA0181E30E94461C882359F09E -:103A40008091FA0186FB222720F991E0922790FBD2 -:103A500086F98093FA0181E10E94461C882359F07F -:103A60008091FA0187FB222720F991E0922790FBB1 -:103A700087F98093FA018091FA010E94BC1D809120 -:103A8000FA0187FB882780F980930D0187E20E9465 -:103A9000461CC82F8EE10E94461C8111C2608FE136 -:103AA0000E94461C8111C46080E20E94461C811164 -:103AB000C86081E20E94461C8111C06182E20E94BE -:103AC000461C8111C06283E20E94461C8111C064C1 -:103AD00084E20E94461C882311F0C06802C0CC23F7 -:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4 -:103AF000682F70E080E090E0CF910C944318CF9154 -:103B000008956DEE7EEF80E090E00E94ED2360E08E -:103B100082E090E00E94DB2360E083E090E00E947E -:103B2000DB2360E084E090E00E94DB2360E085E03E -:103B300090E00C94DB2380E090E00E94D52321E00C -:103B40008D3E9E4F09F020E0822F089582E090E0A4 -:103B50000C94CD23682F82E090E00C94DB2383E06B -:103B600090E00C94CD23682F83E090E00C94DB234D -:103B700084E090E00C94CD23682F84E090E00C94D6 -:103B8000DB238091E20180FF0BC06091130185E08F -:103B9000689FB001112475956795759567952BC041 -:103BA00081FF09C06091130185E0689FB001112475 -:103BB0007595679520C082FF07C06091130185E06D -:103BC000689FB001112417C09091E3019923D1F0AF -:103BD00060911201961788F72091130185E0289FC4 -:103BE00090011124929FA001939F500D112470E029 -:103BF000CA010E949F236038710540F46115710568 -:103C000039F002C065E070E0862F08958FE70895CF -:103C100081E008958091E20180FF08C06091110168 -:103C200070E0759567957595679521C081FF06C011 -:103C30006091110170E07595679519C082FF04C00D -:103C40006091110170E010C09091E3019923C1F0DF -:103C5000609110019617A0F780911101899FC00112 -:103C6000112470E00E949F236038710528F46115CB -:103C7000710521F0862F08958FE7089581E008955A -:103C800061E070E0F4CF803F21F40E94C11D819576 -:103C900004C0813F29F40E94C11D8093E60108956C -:103CA000823F21F40E94C11D819504C0833F29F405 -:103CB0000E94C11D8093E5010895893F19F40E9477 -:103CC0000A1E05C08A3F31F40E940A1E8195809326 -:103CD000E70108958B3F21F40E940A1E819504C0DC -:103CE0008C3F29F40E940A1E8093E8010895843FC6 -:103CF00021F48091E401816017C0853F21F4809117 -:103D0000E401826011C0863F21F48091E401846067 -:103D10000BC0873F21F48091E401886005C0883F93 -:103D200031F48091E40180618093E40108958D3F36 -:103D300021F48091E20181600BC08E3F21F48091DB -:103D4000E201826005C08F3F29F48091E201846026 -:103D50008093E2010895803F39F48091E60187FF66 -:103D60006CC01092E60169C0813F29F48091E601A0 -:103D70001816BCF362C09091E501823F29F497FFC9 -:103D80005CC01092E50159C0833F19F41916CCF3B9 -:103D900054C0893F41F48091E70118160CF04DC0E2 -:103DA0001092E7014AC08A3F29F48091E70187FF1A -:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6 -:103DC0001092E8013AC08C3F29F48091E80118165E -:103DD000BCF333C0843F21F48091E4018E7F17C08F -:103DE000853F21F48091E4018D7F11C0863F21F44D -:103DF0008091E4018B7F0BC0873F21F48091E40127 -:103E0000877F05C0883F31F48091E4018F7E8093E5 -:103E1000E40113C08D3F21F48091E2018E7F0BC03D -:103E20008E3F21F48091E2018D7F05C08F3F29F400 -:103E30008091E2018B7F8093E2018091E501811105 -:103E40000EC08091E60181110AC08091E7018111C5 -:103E500006C08091E801811102C01092E30108952B -:103E600084EE91E00E9401100E949B1B9093E1015F -:103E70008093E00108951F93CF93DF938091E00139 -:103E80009091E1010E94A71BAC019091E30199235D -:103E900021F02091140130E006C0209115018AE044 -:103EA000289F900111244217530708F486C080917F -:103EB000E501C091E601D091E7011091E80181117F -:103EC00007C0C11176C0D11174C0111172C075C084 -:103ED0009F3F19F09F5F9093E301181624F40E940E -:103EE000C11D8093E5018091E50187FF05C00E9417 -:103EF000C11D81958093E5011C1624F40E94C11D0B -:103F00008093E6018091E60187FF05C00E94C11DF4 -:103F100081958093E6016091E501662339F1C091B6 -:103F2000E601CC2319F1772767FD7095872F972F2E -:103F30000E94B02223E333E343E35FE30E941423B0 -:103F40000E947D226093E5016C2F772767FD7095B5 -:103F5000872F972F0E94B02223E333E343E35FE3ED -:103F60000E9414230E947D226093E6011D1624F412 -:103F70000E940A1E8093E7018091E70187FF05C038 -:103F80000E940A1E81958093E701111624F40E9475 -:103F90000A1E8093E8018091E80187FF05C00E9416 -:103FA0000A1E81958093E801DF91CF911F910C94B7 -:103FB000301F9F3F09F08ECF96CFDF91CF911F9199 -:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE -:103FD0001092E3011092E2010895833081F128F4F8 -:103FE000813059F08230D1F00895853009F449C00C -:103FF000B8F1863009F456C0089580911501262F36 -:1040000030E0280F311D2F3F310524F4680F6093F5 -:10401000150108958FEF8093150108958091140183 -:10402000262F30E0280F311D2F3F310524F4680F73 -:104030006093140108958FEF809314010895809187 -:104040001301262F30E0280F311D2F3F310524F4B6 -:10405000680F6093130108958FEF80931301089503 -:1040600080911201262F30E0280F311D2F3F31059E -:1040700024F4680F6093120108958FEF809312016A -:10408000089580911101262F30E0280F311D2F3F18 -:10409000310524F4680F6093110108958FEF809328 -:1040A0001101089580911001262F30E0280F311D55 -:1040B0002F3F310524F4680F6093100108958FEFAE -:1040C000809310010895833011F128F4813049F074 -:1040D000823091F00895853081F120F18630C1F170 -:1040E000089580911501681720F4861B80931501AF -:1040F000089510921501089580911401681720F415 -:10410000861B8093140108951092140108958091E4 -:104110001301681720F4861B8093130108951092F1 -:104120001301089580911201681720F4861B809373 -:1041300012010895109212010895809111016817DB -:1041400020F4861B809311010895109211010895A7 -:1041500080911001681720F4861B80931001089548 -:104160001092100108950F931F938D3109F46BC0C5 -:1041700008F03FC08E3009F47FC0C0F4873009F4E6 -:1041800069C068F4863009F0B1C08091DA01817F9E -:104190008E7F8093DA0181E08093EA01A8C08830A5 -:1041A00009F4A2C08B3009F49FC0A0C0863109F485 -:1041B0009BC078F4803109F472C0813109F096C057 -:1041C0000E94831490910D0181E0892780930D0155 -:1041D0008BC0893109F488C08B3109F087C0809188 -:1041E000DA0181FB222720F991E0922790FB81F9E7 -:1041F0004CC0853309F470C048F4873209F46CC0B0 -:1042000008F459C0893209F467C070C0833438F4A7 -:104210008A3308F04EC0883309F466C067C083341F -:1042200009F45AC0883409F061C00E9483140FEF6A -:1042300013ED20E3015010402040E1F700C00000E2 -:104240000E94F61B51C00E9437220E94EA0F0E9472 -:10425000E3084AC09091DA01892F8095817080FB34 -:1042600090F929F0966098609093DA0140C0997FA8 -:10427000977F9093DA0138C08091DA0182FB222780 -:1042800020F991E0922790FB82F98093DA0199233B -:1042900059F18091DA0181608093DA0125C0809123 -:1042A000DA0183FB222720F991E0922790FB83F922 -:1042B000ECCF895301C08D5141E050E060E070E0E7 -:1042C0008A019B0104C0000F111F221F331F8A9512 -:1042D000D2F7C901B80104C061E070E080E090E06D -:1042E0000E9443180E94831481E001C080E01F9166 -:1042F0000F91089580E0089580E00895CF93C82F2E -:104300008091EA01813079F018F08230E9F187C0BC -:10431000E0910E01F0910F018081813169F08232CC -:1043200009F07FC009C0E0910E01F0910F0180817A -:10433000813111F0823261F48C2F0E947A21811137 -:1043400004C08C2F0E94B3201DC081E090E01AC0F1 -:104350008C2F0E947C21811114C0C43179F048F463 -:10436000CB3079F0C03109F060C082E08093EA017F -:1043700008C0C93219F0C83321F057C01092EA01C1 -:1043800054C081E0817053C0C93289F118F5C4313D -:1043900071F1A8F4C73009F046C08AE08093150196 -:1043A00094E19093140193E0909313018093120190 -:1043B00088E08093110188E28093100134C0CE51CF -:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB -:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC -:1043E00013C0C13579F0C235F1F461E00DC08091A0 -:1043F000E901882319F01092E90115C081E080934A -:10440000EA0115C061E006C08091E9010E94ED1F3C -:104410000AC06AE08091E9010E94632004C0109202 -:10442000EA0180E004C081E002C080E0ABCFCF9120 -:104430000895E1E8F0E08081886080838081816078 -:1044400080838FB7F89493E09093890090ED9093D8 -:1044500088008FBF0895EFE6F0E08081826080835E -:104460000895EFE6F0E080818D7F80830895EFE688 -:10447000F0E0908182E08927808308951F920F9257 -:104480000FB60F9211242F933F934F935F936F9327 -:104490007F938F939F93AF93BF93EF93FF938091FD -:1044A000EB019091EC0101969093EC018093EB016C -:1044B000811103C082E00E94E308E091EC01E695DF -:1044C000E695F0E0EC54FB4FE4918091EB018E1304 -:1044D00003C080E00E94E308FF91EF91BF91AF918C -:1044E0009F918F917F916F915F914F913F912F910C -:1044F0000F900FBE0F901F90189504D06894B111C3 -:104500008DC0089570D088F09F5790F0B92F9927EB -:10451000B751A0F0D1F0660F771F881F991F1AF0CE -:10452000BA95C9F712C0B13081F077D0B1E00895E3 -:1045300074C0672F782F8827B85F39F0B93FCCF364 -:10454000869577956795B395D9F73EF490958095C4 -:10455000709561957F4F8F4F9F4F0895E89409C0E4 -:1045600097FB3EF490958095709561957F4F8F4FA6 -:104570009F4F9923A9F0F92F96E9BB279395F695BC -:10458000879577956795B795F111F8CFFAF4BB0F3A -:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E -:1045A000882311F096E911C0772321F09EE8872F28 -:1045B000762F05C0662371F096E8862F70E060E0E4 -:1045C0002AF09A95660F771F881FDAF7880F96955D -:1045D000879597F9089557FD9058440F551F59F046 -:1045E0005F3F71F04795880F97FB991F61F09F3FE0 -:1045F00079F087950895121613061406551FF2CF09 -:104600004695F1DF08C0161617061806991FF1CF58 -:1046100086957105610508940895E894BB2766277F -:104620007727CB0197F908950BD078C069D028F08F -:104630006ED018F0952309F05AC05FC01124EECF58 -:10464000CADFA0F3959FD1F3950F50E0551F629FED -:10465000F001729FBB27F00DB11D639FAA27F00DDB -:10466000B11DAA1F649F6627B00DA11D661F829F02 -:104670002227B00DA11D621F739FB00DA11D621FE7 -:10468000839FA00D611D221F749F3327A00D611D04 -:10469000231F849F600D211D822F762F6A2F1124E6 -:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39 -:1046B000BB1F661F771F881F91505040A9F79E3F70 -:1046C000510570F014C0AACF5F3FECF3983EDCF3C5 -:1046D000869577956795B795F795E7959F5FC1F7AD -:1046E000FE2B880F911D9695879597F9089597F958 -:1046F0009F6780E870E060E008959FEF80EC089588 -:1047000000240A94161617061806090608950024B0 -:104710000A9412161306140605060895092E03942A -:10472000000C11F4882352F0BB0F40F4BF2B11F49E -:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF -:10474000072E16F4009407D077FD09D00E94B923F4 -:1047500007FC05D03EF4909581959F4F0895709584 -:1047600061957F4F0895EE0FFF1F0590F491E02DA6 -:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8 -:10478000B70710F0A61BB70B881F991F5A95A9F7FA -:1047900080959095BC01CD010895F999FECF92BD09 -:1047A00081BDF89A992780B50895A8E1B0E042E06C -:1047B00050E00C94F523262FF999FECF92BD81BDD0 -:1047C000F89A019700B4021639F01FBA20BD0FB64F -:1047D000F894FA9AF99A0FBE08950196272F0E942D -:1047E000DC230C94DB23DC01CB01FC01F999FECF27 -:1047F00006C0F2BDE1BDF89A319600B40D92415069 -:0A4800005040B8F70895F894FFCF78 -:10480A000220E508730950091C09E8080101C701DB -:10481A0028080A03140A3F4D363975042804F2039E -:10482A00B9034C0365037E039703010203040506DB -:04483A000708090062 -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/sneako/readme.md b/keyboards/ergodox_ez/keymaps/sneako/readme.md new file mode 100644 index 000000000..8dd110ee6 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/sneako/readme.md @@ -0,0 +1,6 @@ +# ergodox_keymap + +Based on the default Ergodox EZ firmware + +Replaced the left side Bksp with a Crtl/Esc, this really helps in vim. +Removed the Ctrls from the Z and / keys. diff --git a/keyboards/ergodox_ez/keymaps/software_neo2/compiled.hex b/keyboards/ergodox_ez/keymaps/software_neo2/compiled.hex deleted file mode 100644 index a4aafc138..000000000 --- a/keyboards/ergodox_ez/keymaps/software_neo2/compiled.hex +++ /dev/null @@ -1,1147 +0,0 @@ -:100000000C9424020C9468020C9468020C9468020C -:100010000C9468020C9468020C9468020C946802B8 -:100020000C9468020C9468020C94090D0C94DB0D7E -:100030000C9468020C9468020C9468020C94680298 -:100040000C9468020C94E5210C9468020C946802EC -:100050000C9468020C94781B0C9468020C9468024F -:100060000C9468020C9468020C9468020C94680268 -:100070000C9468020C9468020C9468020C94680258 -:100080000C9468020C9468020C9468020C94680248 -:100090000C9468020C9468020C9468020C94680238 -:1000A0000C9468020C9468020C946802480E6A0E64 -:1000B000580F6A0E580FAF0ED20E580F270F3A0F77 -:1000C00009120912381238126E128E12BF13BF13A2 -:1000D0009912BF1349134913B013BF13BF13B913B8 -:1000E00056135613561356135613561356135613C8 -:1000F00056135613561356135613561356135613B8 -:10010000681375137C1383138D1323024C0039007D -:10011000E100640000001E00140004001D714A008C -:1001200039001F001A0016001B734E002A00200021 -:100130000800070006744B002B0021001500090081 -:1001400019004D006400220017000A00050000009D -:100150006574AE0001540000007F0000E300AB00B6 -:100160000154000000770000E20023001C000B0097 -:10017000110000002971240018000D00100050002B -:10018000E60025000C000E00360051002800260075 -:1001900012000F00370052002C002700130033001C -:1001A00038004F0031002D002F003400E5002900F9 -:1001B00000000100010001000100010000003A0000 -:1001C0000100F700FB00010001003B00F400F20019 -:1001D000FA00FD00F5003C00F000F100F900FE001F -:1001E000F4003D00F500F300FC00FF0001003E00BC -:1001F0000100F800F600000001000100010000000D -:1002000001000000010001000100000001000000E9 -:1002100001003F0001000100B400000001004000A7 -:10022000AA00AC00B600010001004100A800AD002A -:10023000B5000100B7004200A900AE00B9000100FE -:10024000B60043000100AB00B7000100010044000C -:100250004500010001000100000016034500720086 -:1002600067006F0044006F007800200045005A00CE -:10027000000016034500720067006F0044006F0025 -:100280007800200045005A00000004030904090218 -:100290006D00040100A0FA0904000001030101003F -:1002A000092111010001223F000705810308000A0E -:1002B00009040100010301020009211101000122CA -:1002C0004D000705820308000A090402000103002B -:1002D00000000921110100012236000705830308EF -:1002E000000A0904030001030000000921110100B4 -:1002F00001223900070584031000011201100100DA -:10030000000008EDFE0713010001020001050109CC -:1003100006A101050719E029E715002501950875D3 -:1003200001810205081901290595057501910295BC -:10033000017503910105071900297715002501951D -:100340007875018102C005010980A10185021601AD -:100350000026B7001A01002AB70075109501810028 -:10036000C0050C0901A1018503160100269C021A93 -:1003700001002A9C02751095018100C00501090247 -:10038000A1010901A100050919012905150025018F -:1003900095057501810295017503810105010930FB -:1003A00009311581257F9502750881060938158167 -:1003B000257F950175088106050C0A3802158125EF -:1003C0007F950175088106C0C005010906A10105D8 -:1003D0000719E029E71500250195087501810295A7 -:1003E0000175088101050819012905950575019117 -:1003F000029501750391010507190029FF150025D4 -:10040000FF950675088100C0000000000000000094 -:10041000000000010204060A0F17202C3A4A5D7101 -:10042000879DB3C7DAE9F5FCFFFCF5E9DAC7B39DB0 -:1004300087715D4A3A2C20170F0A0604020100005A -:10044000000000000000000011241FBECFEFDAE022 -:10045000DEBFCDBF04B603FE24C08091FB019091A6 -:10046000FC01A091FD01B091FE018730904BA740A7 -:10047000B04BB9F41092FB011092FC011092FD01F7 -:100480001092FE0114BE84B7877F84BF88E10FB647 -:10049000F89480936000109260000FBEE0E0FFE3EC -:1004A000099511E0A0E0B1E0E8E5F7E402C00590AD -:1004B0000D92A433B107D9F711E0A4E3B1E001C074 -:1004C0001D92AB3FB107E1F70E944D0A0C94AA239D -:1004D0000C9400001092B9008AE08093B80008954F -:1004E00094EA9093BC009091BC0097FFFCCF909150 -:1004F000B900987F983021F0903111F081E0089593 -:100500008093BB0084E88093BC008091BC0087FF8F -:10051000FCCF8091B900887F883111F0803471F769 -:1005200080E0089584E98093BC008091BC0084FD44 -:10053000FCCF08958093BB0084E88093BC00809139 -:10054000BC0087FFFCCF9091B900987F81E0983282 -:1005500009F480E0089584E88093BC008091BC0099 -:1005600087FFFCCF8091BB0008958091010181112C -:1005700015C080E40E9470028093010181110CC0BB -:1005800082E10E949A0280930101811105C08FEFE0 -:100590000E949A02809301010E94920284B1807F9E -:1005A00084B985B1807F85B98AB1837F8AB98BB1DF -:1005B000837F8BB93E98469808950E94700480937B -:1005C00001010E94B50280B38C7080BB81B3836F40 -:1005D00081BBA5E3B1E0E3E4F1E08EE08E0F119280 -:1005E0001D928E13FCCF0C945A04BF92CF92DF92CF -:1005F000EF92FF920F931F93CF93DF9380910101AE -:10060000882379F0809134018F5F809334018111C8 -:1006100008C00E94700480930101811102C00E94F1 -:10062000020405E311E0C0E0D0E0DD24D39482E0D1 -:10063000C82EEE24E394F12CC730D10500F580914B -:100640000101811164C080E40E9470028093010165 -:10065000811112C082E10E949A02809301018111EE -:100660000BC0C7010C2E01C0880F0A94EAF78095D1 -:100670000E949A02809301010E94920248C0CA30EF -:10068000A1F028F4C83059F0C93061F005C0CC3071 -:1006900089F070F0CD3089F0209A289810C0219A06 -:1006A00029980DC0229A2A980AC0239A2B9807C02D -:1006B000529A01C0539A5B9802C03E9A469890EABB -:1006C0009A95F1F79FB1799902C082E001C080E06C -:1006D00091709D25982B7C9902C084E001C080E038 -:1006E000892B7D9902C038E001C030E0832B7E99D0 -:1006F00002C020E101C020E0822B9FB19095991F9C -:100700009927991F9295990F907E892B0FC0809100 -:100710000101811149C080E40E94700280930101AF -:10072000882379F1B12C0E9492028B2DF8019081DF -:10073000981719F08083C09200010E94B50221969B -:100740000F5F1F4FCE30D10509F076CF80910001A9 -:10075000882361F1815080930001882339F08FE96B -:100760009FE00197F1F700C0000020C0A3E4B1E0D2 -:10077000E5E3F1E0CF01825F91919D938E13FCCF71 -:1007800015C083E10E949A02809301018111CACFB2 -:1007900081E40E947002809301018111C3CF0E9405 -:1007A000AB02B82EB094BFCF80E0C0CF0E9400044F -:1007B00081E0DF91CF911F910F91FF90EF90DF903B -:1007C000CF90BF900895E82FF0E0ED5BFE4F808161 -:1007D000089508950F931F93CF93DF93C3E4D1E05F -:1007E00010E00C2F025F899190E00E949E1A180F72 -:1007F0000C13F9CF812FDF91CF911F910F910895A5 -:100800000C94D00456985E9825982D9826982E988A -:1008100027982F988FEF90E090938900809388001D -:1008200090938B0080938A0090938D0080938C002E -:10083000259A2D9A2FEF80E792E02150804090403A -:10084000E1F700C00000269A2E9A2FEF80E792E091 -:10085000215080409040E1F700C00000279A2F9A75 -:100860002FEF80E792E0215080409040E1F700C0F8 -:10087000000025982D982FEF80E792E021508040CE -:100880009040E1F700C0000026982E982FEF80E7F7 -:1008900092E0215080409040E1F700C0000027988E -:1008A0002F9856985E9825982D9826982E982798D8 -:1008B0002F98089589EA8093800089E080938100D1 -:1008C00024982C983F988AB18F748AB96E98479A69 -:1008D0008BB1806B8BB9769A0E9402040C94CF0482 -:1008E00080E2809301018091510181110EC00E942C -:1008F0006A0281E0809351012FEF83ED90E3215054 -:1009000080409040E1F700C0000080E40E94700247 -:100910008093010181112EC00E949A0280930101EF -:10092000811128C00E949A0280930101811122C086 -:100930008FE30E949A028093010181111BC00E94E3 -:10094000920280E40E94700280930101811112C022 -:100950008CE00E949A028093010181110BC00E94D9 -:100960009A0280930101811105C08FE30E949A02CF -:10097000809301010E94920280910101089561110A -:100980000BC0FC018281882321F085EE0E94AD100E -:1009900003C085EE0E94751180E090E008950895EF -:1009A0006091BD017091BE018091BF019091C00125 -:1009B0000E94AA1A56985E9825982D9826982E98E7 -:1009C00027982F98813019F4269A2E9A08955698D0 -:1009D0005E98089581E0089581E008950C94EC04F8 -:1009E00008950F931F93CF93DF938C01FC01C08177 -:1009F000D181CE010E942319BE010E949A05EC010B -:100A0000B8010E94EE04882309F48DC0F8018281A8 -:100A1000882309F44AC080915D0181111FC0C4314F -:100A2000F0E5DF0709F051C00E94F00481E08093F7 -:100A30005D010E94421B90935C0180935B011092C8 -:100A400054011092560110925501109258011092C3 -:100A5000570110925A011092590165C080915B01B3 -:100A600090915C010E944E1B883C910570F480912E -:100A70005401E82FF0E0EE0FFF1FEB5AFE4FD18339 -:100A8000C0838F5F809354014EC0C43880E5D8077F -:100A900021F0C538D04501F13AC0F80182818823A0 -:100AA00041F01092520182E01EC0C438E0E5DE073A -:100AB00059F580915201811106C086E20E94AD1065 -:100AC00086E20E94751182E01CC0C438F0E5DF07A1 -:100AD00041F3C538D045D9F4F8018281882331F03B -:100AE0001092530180E20E94C4111DC080915301F5 -:100AF000811106C087E20E94AD1087E20E94751145 -:100B000080E20E94CB110FC0C538D04529F381E0A7 -:100B10008093520180935301C801DF91CF911F91BF -:100B20000F910C94EA0480E0DF91CF911F910F9117 -:100B30000895089596E0799FF001112494E5899F26 -:100B4000E00DF11D1124E60FF11DEE0FFF1FE65F12 -:100B5000FE4F859194910895880F991FFC01E657E7 -:100B6000F040859194910895880F991FFC01E65FEC -:100B7000FE4F8591949108950F931F93CF93DF9328 -:100B8000EC01811520E3920750F5C11580E2D807EA -:100B900008F0C3C0CB3BD10590F4C83AD10508F0AA -:100BA0006AC0C53AD10508F05BC0C430D10508F071 -:100BB000D0C1219709F0CAC101E010E00AC2CF3FBD -:100BC000D10511F008F0C5C1C03FD10508F0A2C0A1 -:100BD000CE01805E9109089708F4BBC1B7C1C1304E -:100BE00090E5D90709F4A2C020F5C0318FE4D807F9 -:100BF00070F4C11590E4D90708F094C0C11521E341 -:100C0000D20708F0A3C1DD278E01106CE2C1C11527 -:100C1000D04509F09BC10E942A148FEF94E32CE089 -:100C2000815090402040E1F700C000000E949D1BD1 -:100C3000D0C1C11597E5D90758F4C03121E5D207D5 -:100C400008F01CC1C43180E5D80708F475C07EC126 -:100C5000CE0190578115904108F078C1DF7073C1C3 -:100C6000C53AD10509F477C1C63AD10509F076C174 -:100C700002E810E4AEC1C83AD10509F472C1C93A1C -:100C8000D10509F471C1CA3AD10509F470C1CB3A52 -:100C9000D10509F46FC1CC3AD10509F46EC1CD3A42 -:100CA000D10509F46DC1C03BD10509F46CC1CE3A40 -:100CB000D10509F46BC1CF3AD10509F46AC1C13B32 -:100CC000D10509F469C1C23BD10509F468C1C33B30 -:100CD000D10509F467C1C43BD10509F466C1C53B20 -:100CE000D10509F465C1C63BD10509F464C1C73B10 -:100CF000D10509F463C1C83BD10509F462C1C93B00 -:100D0000D10509F461C1CA3BD10509F460C100E015 -:100D100014E45FC18E0110655CC1CE019F700E941A -:100D2000B40558C1DF708E01106A53C18091DA0199 -:100D300081608093DA014DC10E94421D811102C081 -:100D40000E94281D0E945F1D90E09093FB018093FC -:100D5000FA01C23080E5D80721F48091FA01816060 -:100D600086C0C43090E5D90721F48091FA018260F1 -:100D70007EC0C63020E5D20721F48091FA0184605C -:100D800076C0C83080E5D80719F48091FA0127C0F1 -:100D9000CA3090E5D90721F48091FA01806167C0DB -:100DA000CC3020E5D20721F48091FA0180625FC047 -:100DB000CE3080E5D80721F48091FA01806457C0D5 -:100DC000C03190E5D90721F48091FA0180684FC0C5 -:100DD000C23120E5D20729F48091FA01846088604D -:100DE00046C0C33080E5D80721F48091FA018E7F98 -:100DF0003EC0C53090E5D90721F48091FA018D7F7E -:100E000036C0C73020E5D20721F48091FA018B7FEC -:100E10002EC0C93080E5D80719F48091FA0126C0A8 -:100E2000CB3090E5D90721F48091FA018F7E1FC065 -:100E3000CD3020E5D20721F48091FA018F7D17C0D3 -:100E4000CF3080E5D80721F48091FA018F7B0FC065 -:100E5000C13190E5D90721F48091FA018F7707C05D -:100E6000C331D04531F48091FA018B7F877F809325 -:100E7000FA018091FA010E94631DABC08D2F992762 -:100E80008F70992781309105D9F49E012370332703 -:100E900002C0880F991F2A95E2F79C688E0144E0F2 -:100EA000000F111F4A95E1F700271370802B912B3B -:100EB00053E0CC0FDD1F5A95E1F7C076DD272FC038 -:100EC0008230910531F4DC2FCC278E01016F106A3E -:100ED00080C08330910569F4CE018370992701E0C9 -:100EE00010E002C0000F111F8A95E2F7C8019C684C -:100EF0000FC084309105B9F4CE018370992701E0C9 -:100F000010E002C0000F111F8A95E2F7C8019A682D -:100F100023E0CC0FDD1F2A95E1F7C07ED7708C014E -:100F20000C2B1D2B56C08530910531F4DC2FCC27BE -:100F30008E01046F106A4DC0069709F04AC0CF7148 -:100F4000DD27DC2FCC278E01106243C000E010E0CB -:100F500040C08E013EC001E810E43BC003E810E44D -:100F600038C002EE14E435C009EE14E432C00AEED3 -:100F700014E42FC005EB14E42CC006EB14E429C0E4 -:100F800007EB14E426C00CEC14E423C00DEC14E4CD -:100F900020C003E815E41DC00AE815E41AC002E900 -:100FA00015E417C004E915E414C001E216E411C009 -:100FB00003E216E40EC004E216E40BC005E216E4F8 -:100FC00008C006E216E405C007E216E402C00AE221 -:100FD00016E4C801DF91CF911F910F91089596E01B -:100FE000799FF001112494E5899FE00DF11D1124F2 -:100FF000E60FF11DEE0FFF1FE65FFE4F8591949106 -:10100000803E9105E0F4803C910558F581339105CF -:1010100009F46FC048F48932910509F463C08A323B -:10102000910509F46DC072C089339105E9F08238E9 -:101030009105D1F08533910509F44DC067C0833E19 -:10104000910581F138F4803E9105B9F0823E910519 -:10105000D9F05CC0863E910561F1873E9105A1F112 -:1010600055C00E94AC0508952091FA0120FD02C0F0 -:1010700021FF4CC080EE90E049C08091FA0180FFD2 -:10108000F9CF89E390E042C08091FA0182FF0EC05F -:101090008091FA0184FF03C080E090E037C083EEC6 -:1010A00090E034C08091FA0182FFF2CF82EE90E0AE -:1010B0002DC08091FA0183FF0BC08091FA0184FD5D -:1010C000EBCF87EE90E022C08091FA0183FFF5CF4D -:1010D00086EE90E01BC08091FA0185FF07C089E28F -:1010E00090E014C08091FA0185FFF9CF85E390E08C -:1010F0000DC08091FA0186FF07C08AE290E006C029 -:101100008091FA0186FFF9CF81E390E00E94BC054F -:10111000089508950C94890880916E010895CF93E5 -:10112000DF9300D01F92CDB7DEB79C018091F10113 -:10113000843019F593E099833B832A839093E900E7 -:101140008FEF9091E800815095FD06C095ED9A953E -:10115000F1F700008111F5CF8091E80085FF0DC007 -:1011600040E050E063E070E0CE0101960E94F90A91 -:101170008091E8008E778093E8000F900F900F9099 -:10118000DF91CF910895CF93DF9300D01F92CDB719 -:10119000DEB72091F101243021F522E029839B83E1 -:1011A0008A8383E08093E9008FEF9091E80081507B -:1011B00095FD06C095ED9A95F1F700008111F5CFE8 -:1011C0008091E80085FF0DC040E050E063E070E0F2 -:1011D000CE0101960E94F90A8091E8008E778093F3 -:1011E000E8000F900F900F90DF91CF91089520911C -:1011F000F1012430F1F422E02093E9002FEF309147 -:10120000E800215035FD06C035ED3A95F1F70000B4 -:101210002111F5CF2091E80025FF0BC040E050E000 -:1012200065E070E00E94F90A8091E8008E77809373 -:10123000E8000895CF93DF93EC019091F101943091 -:1012400009F046C080910C018823D9F080910D01EE -:101250008823B9F09093E9008FEF9091E8008150D6 -:1012600095FD06C095E19A95F1F700008111F5CF43 -:101270008091E80085FF2CC040E050E060E170E024 -:1012800017C081E08093E9008FEF9091E8008150D2 -:1012900095FD06C095ED9A95F1F700008111F5CF07 -:1012A0008091E80085FF14C040E050E068E070E005 -:1012B000CE010E94F90A8091E8008E778093E800C1 -:1012C00080E1FE01AEE5B1E001900D928A95E1F773 -:1012D000DF91CF9108958091F001811109C00E94A2 -:1012E0008E0C0E94EB0C8091E20084608093E200FF -:1012F00008951092F001089508950C94D2210E944F -:10130000331B0E94D8210E94910F0C948A0842E05E -:1013100061EC81E00E94080C42E061EC82E00E94F6 -:10132000080C42E061EC83E00E94080C42E161ECB1 -:1013300084E00C94080C8091F301833009F455C0CB -:1013400030F4813071F0823009F48EC008958A3013 -:1013500009F47AC08B3009F460C0893009F09CC070 -:1013600020C08091F201813A09F096C08091E80096 -:10137000877F8093E8008091F6019091F701892B97 -:1013800021F460E18EE591E003C060E080E090E050 -:1013900070E00E94440B8091E8008B778093E80016 -:1013A00008958091F201813209F076C08091F601B2 -:1013B0009091F701009719F0039709F06DC08091A3 -:1013C000E800877F8093E8008091E80082FD05C0F7 -:1013D0008091F1018111F8CF5FC08091F10080937D -:1013E0006E018091E8008B7753C08091F201813AC1 -:1013F00009F052C08091F6019091F701892B09F014 -:101400004BC08091E800877F8093E8008091E800DE -:1014100080FFFCCF80910C0136C08091F2018132B7 -:10142000D9F58091F6019091F701892BA9F580916A -:10143000E800877F8093E8000E943D0C8091F401D2 -:1014400080930C010C942A148091F201813221F5D1 -:101450008091E800877F8093E8000E943D0C809196 -:10146000F50180936F0108958091F201813AA1F412 -:101470008091E800877F8093E8008091E80080FFFA -:10148000FCCF80916F018093F1008091E8008E770E -:101490008093E8000C943D0C089584B7877F84BF47 -:1014A00088E10FB6F89480936000109260000FBE40 -:1014B00090E080E80FB6F89480936100909361000B -:1014C0000FBE0E94E00F0E948E0C0E94EB0C8091D8 -:1014D000E20084608093E20078940E94710F0E9481 -:1014E000E20F82E091E00E948C0F0E94C021809167 -:1014F000F101853069F40E94FA1A8091EF01882386 -:10150000B1F30E94251B882391F30E94E30AEFCFD9 -:101510000E94E80FECCF292F332723303105C9F083 -:1015200064F42130310581F02230310509F043C0E7 -:101530008DE690E02EE832E042C021323105F1F034 -:101540002232310541F137C082E190E02BEF32E0E9 -:1015500036C099278130910541F08230910541F0E4 -:10156000892B49F5EAE8F2E005C0E2E7F2E002C0C3 -:10157000EAE5F2E0849190E09F0121C06430D8F464 -:10158000E62FF0E0EE0FFF1FEE5DFE4F2081318170 -:1015900089E090E014C0643070F470E0FB01EE0F5D -:1015A000FF1FE65EFE4F20813181FB01EA5EFE4FA8 -:1015B000808190E004C080E090E020E030E0FA011B -:1015C00031832083089580E189BD82E189BD09B41A -:1015D00000FEFDCF8091D8008F7D8093D800809150 -:1015E000E00082608093E0008091E00081FDFCCF0C -:1015F0000895CF92DF92EF92FF920F931F93CF93B4 -:10160000DF93EC018B016A010E945C0C811133C0F5 -:10161000C114D10439F0F60180819181081B190BA6 -:10162000C80FD91FE12CF12C0115110519F180917A -:10163000E80085FD16C08091E8008E778093E80071 -:10164000C114D10449F0F60180819181E80EF91EA0 -:10165000F182E08285E00FC00E945C0C882321F3B8 -:101660000AC089918093F10001501109FFEFEF1A30 -:10167000FF0ADACF80E0DF91CF911F910F91FF90A9 -:10168000EF90DF90CF9008952091F8013091F9010B -:101690002617370748F06115710539F42091E800E5 -:1016A0002E772093E80001C0B90140E06115710573 -:1016B000A9F12091F101222309F443C0253009F456 -:1016C00042C02091E80023FD40C02091E80022FDA7 -:1016D00032C02091E80020FFE9CF4091F300209133 -:1016E000F20030E0342BFC01CF016115710559F097 -:1016F0002830310540F481918093F10061507109E7 -:101700002F5F3F4FF1CF41E02830310509F040E035 -:101710002091E8002E772093E800C8CF4111C9CF6F -:101720000AC08091F101882361F0853061F08091D9 -:10173000E80083FD0AC08091E80082FFF2CF80E0DC -:10174000089582E0089583E0089581E0089520914E -:10175000F8013091F9012617370748F06115710536 -:1017600039F42091E8002E772093E80001C0B901F8 -:10177000FC0120E06115710591F18091F101882350 -:1017800009F440C0853009F43FC08091E80083FD32 -:101790003DC08091E80082FD2FC08091E80080FF6D -:1017A000E9CF2091F3008091F20090E0922B611537 -:1017B000710559F08830910540F424912093F1008F -:1017C0003196615071090196F2CF21E0089709F036 -:1017D00020E08091E8008E778093E800CBCF211144 -:1017E000CCCF0AC08091F101882361F0853061F08F -:1017F0008091E80083FD0AC08091E80082FFF2CF6B -:1018000080E0089582E0089583E0089581E00895DE -:10181000982F973058F59093E900981739F0709108 -:10182000EC002091ED005091F00003C0242F762FA2 -:1018300050E021FF19C03091EB003E7F3093EB0068 -:101840003091ED003D7F3093ED003091EB00316041 -:101850003093EB007093EC002093ED005093F00078 -:101860002091EE0027FF07C09F5FD3CF8F7080933A -:10187000E90081E0089580E008958091F20187FFFA -:1018800011C08091E80082FD05C08091F1018111B5 -:10189000F8CF11C08091E8008B770BC08091F101E7 -:1018A000882349F08091E80080FFF8CF8091E8001C -:1018B0008E778093E80008952091E4003091E50050 -:1018C00095E64091EC00842F817040FF22C080910A -:1018D000E80080FD1CC08091F101882391F08530E3 -:1018E00091F08091EB0085FD10C04091E400509193 -:1018F000E5004217530729F39A01915011F784E04C -:10190000089582E0089583E0089581E0089580E0DD -:1019100008954091E80042FFDECF08950E94FC0C3C -:101920000E94040DE0EEF0E0808181608083E8EDAC -:10193000F0E080818F77808319BCA7EDB0E08C91B7 -:101940008E7F8C9380818F7E80831092F00108952A -:101950000F931F93CF93DF930E94FC0C0E94040D02 -:10196000C8EDD0E088818F778883888180688883FC -:1019700088818F7D888319BC1092F1011092ED014E -:101980001092EF011092EE0100EE10E0F80180815C -:101990008B7F808388818160888342E060E080E083 -:1019A0000E94080CE1EEF0E080818E7F8083E2EE01 -:1019B000F0E0808181608083808188608083F8018D -:1019C00080818E7F8083888180618883DF91CF9141 -:1019D0001F910F910895E8EDF0E080818F7E808364 -:1019E000E7EDF0E080818160808384E082BF81E068 -:1019F0008093F0010C94A80CE8EDF0E080818E7FDC -:101A000080831092E20008951092DA001092E100B3 -:101A100008951F920F920FB60F9211242F933F93A8 -:101A20004F935F936F937F938F939F93AF93BF93E6 -:101A3000EF93FF938091E10082FF0BC08091E20061 -:101A400082FF07C08091E1008B7F8093E1000E94BC -:101A5000700F8091DA0080FF1FC08091D80080FF56 -:101A60001BC08091DA008E7F8093DA008091D900CC -:101A700080FF0DC080E189BD82E189BD09B400FE0F -:101A8000FDCF81E08093F1010E946B0905C019BC74 -:101A90001092F1010E9479098091E10080FF19C044 -:101AA0008091E20080FF15C08091E2008E7F8093DC -:101AB000E2008091E20080618093E2008091D80092 -:101AC00080628093D80019BC85E08093F1010E9468 -:101AD0007D098091E10084FF30C08091E20084FFA5 -:101AE0002CC080E189BD82E189BD09B400FEFDCF33 -:101AF0008091D8008F7D8093D8008091E1008F7E07 -:101B00008093E1008091E2008F7E8093E2008091DB -:101B1000E20081608093E2008091ED01882311F062 -:101B200084E007C08091E30087FD02C081E001C02E -:101B300083E08093F1010E947F098091E10083FF9F -:101B400029C08091E20083FF25C08091E100877F5A -:101B50008093E10082E08093F1011092ED01809189 -:101B6000E1008E7F8093E1008091E2008E7F809380 -:101B7000E2008091E20080618093E20042E060E058 -:101B800080E00E94080C8091F00088608093F00053 -:101B90000E947C09FF91EF91BF91AF919F918F912E -:101BA0007F916F915F914F913F912F910F900FBE59 -:101BB0000F901F9018951F920F920FB60F9211243D -:101BC0002F933F934F935F936F937F938F939F9345 -:101BD000AF93BF93CF93DF93EF93FF93C091E9004F -:101BE000CF708091EC00D82FD17080FDD0E810929A -:101BF000E9008091F000877F8093F00078940E9444 -:101C00001F0E1092E9008091F00088608093F00030 -:101C1000CD2BCF70C093E900FF91EF91DF91CF9171 -:101C2000BF91AF919F918F917F916F915F914F91F4 -:101C30003F912F910F900FBE0F901F9018951F93FB -:101C4000CF93DF93CDB7DEB7AA970FB6F894DEBF78 -:101C50000FBECDBFE2EFF1E088E08E0F9091F10072 -:101C600091938E13FBCF0E949B098091E80083FF24 -:101C70001FC18091F2019091F301492F50E04A3049 -:101C8000510508F015C1FA01EA5AFF4F0C945A2386 -:101C9000803881F0823809F00BC18091F6018F7095 -:101CA0008093E9008091EB0085FB882780F91092F2 -:101CB000E90006C08091EE019091EF0191118260E0 -:101CC0009091E800977F9093E8008093F100109244 -:101CD000F100C8C0282F2D7F09F0EAC0882319F031 -:101CE000823061F0E5C08091F401813009F0E0C0FC -:101CF000933009F080E08093EF012BC08091F401D4 -:101D0000811127C08091F6018F7009F4D1C08093B2 -:101D1000E9002091EB0020FF1CC0933021F480915A -:101D2000EB00806214C09091EB0090619093EB0007 -:101D300021E030E0A90102C0440F551F8A95E2F767 -:101D40004093EA001092EA008091EB008860809353 -:101D5000EB001092E9008091E800877F86C0811136 -:101D6000A7C01091F4011F778091E3008078812B48 -:101D70008093E3008091E800877F8093E8000E94D1 -:101D80003D0C8091E80080FFFCCF8091E3008068EB -:101D90008093E300111102C082E001C083E08093D0 -:101DA000F10186C08058823008F082C08091F40131 -:101DB0009091F5018C3D53E0950779F583E08A8396 -:101DC0008AE289834FB7F894DE01139620E03EE063 -:101DD00051E2E32FF0E050935700E49120FF03C05D -:101DE000E295EF703F5FEF708E2F90E0EA3010F0D9 -:101DF000C79601C0C0968D939D932F5F243149F7FC -:101E00004FBF8091E800877F8093E8006AE270E02E -:101E1000CE0101960E94440B14C0AE014F5F5F4F8C -:101E20006091F6010E948B0ABC01009709F440C042 -:101E30009091E800977F9093E80089819A810E94B1 -:101E4000A70B8091E8008B778093E80031C0803841 -:101E500079F58091E800877F8093E8008091ED011B -:101E60008093F1008091E8008E778093E8000E94D3 -:101E70003D0C1EC081111CC09091F4019230C0F441 -:101E80008091E800877F8093E8009093ED010E94A5 -:101E90003D0C8091ED01811106C08091E30087FD2A -:101EA00002C081E001C084E08093F1010E948709B3 -:101EB0008091E80083FF0AC08091E800877F8093CB -:101EC000E8008091EB0080628093EB00AA960FB649 -:101ED000F894DEBF0FBECDBFDF91CF911F91089563 -:101EE0000895CF938091F1018823A1F0C091E9007A -:101EF000CF709091EC00892F817090FD80E8C82B05 -:101F00001092E9008091E80083FD0E941F0ECF70BF -:101F1000C093E900CF910895909375018093740167 -:101F20000895E0917401F0917501309721F00190CE -:101F3000F081E02D099480E00895E0917401F09122 -:101F40007501309721F00280F381E02D0994089506 -:101F5000E0917401F0917501309721F00480F581D2 -:101F6000E02D099408952091720130917301821738 -:101F7000930771F09093730180937201E091740163 -:101F8000F0917501309721F00680F781E02D0994DA -:101F9000089520917001309171018217930771F0BB -:101FA0009093710180937001E0917401F09175013B -:101FB000309721F00084F185E02D0994089508956B -:101FC0000C94DF0F0E94391B0E94DD020C94FB1B56 -:101FD0009F92AF92BF92CF92DF92EF92FF920F93B8 -:101FE0001F93CF93DF9300D000D000D0CDB7DEB7E2 -:101FF0000E94F5020DE010E0AA24A394B12C902ECB -:10200000802F0E94E303980129583E4F6901F9018E -:10201000F080F826A1F40150110988F78FEF898329 -:102020008A831B820E94421B8160782F9D838C8350 -:1020300049815A816B818D810E947F102FC09091C0 -:10204000DA0191FF04C08E830E94E9038E8125E0AE -:1020500030E0A501022E01C0440F0A94EAF7E42EF5 -:102060004F21C1F029839A828E2191E009F490E0FA -:102070009B830E94421B8160782F9D838C834981C2 -:102080005A816B818D810E947F10F6018081E82644 -:10209000E08204C021503109E0F6BDCF0E94E21E6B -:1020A000109176010E94910F1817B9F00E94910FBC -:1020B0008093760126960FB6F894DEBF0FBECDBF93 -:1020C000DF91CF911F910F91FF90EF90DF90CF9014 -:1020D000BF90AF909F900C948A0826960FB6F89404 -:1020E000DEBF0FBECDBFDF91CF911F910F91FF904B -:1020F000EF90DF90CF90BF90AF909F900895CF93D7 -:10210000DF93CDB7DEB72B970FB6F894DEBF0FBEC7 -:10211000CDBF4F83588769877A878B87DE011196F9 -:1021200086E0FD0111928A95E9F785E0FE01379678 -:1021300001900D928A95E1F749815A816B817C81EA -:102140008D819E810E94C8162B960FB6F894DEBF33 -:102150000FBECDBFDF91CF910895CF93882309F4AF -:10216000C2C0C82F823859F40E94910F81FDBBC0B4 -:1021700089E30E94A2190E946F1A89E30CC0833878 -:1021800079F40E94910F80FDAEC083E50E94A219F0 -:102190000E946F1A83E50E94E419CF910C946F1A84 -:1021A000843859F40E94910F82FD9DC087E40E94FB -:1021B000A2190E946F1A87E4EECF8CEF8C0F813A40 -:1021C00048F48C2F0E94252181118DC08C2F0E94F4 -:1021D000A219E3CF80E28C0F883048F4C77081E009 -:1021E00001C0880FCA95EAF70E94281AD6CF8BE55E -:1021F0008C0F833078F4C53A29F0C63A31F083E881 -:1022000090E005C081E890E002C082E890E0CF91C4 -:102210000C94B30F88E58C0F833108F064C0C83A82 -:1022200039F1C93A41F1CA3A49F1CB3A51F1CC3AC4 -:1022300059F1CD3A61F1C03B69F1CE3A71F1CF3A33 -:1022400079F1C13B81F1C23B89F1C33B91F1C43BC0 -:1022500099F1C53BA1F1C63BA9F1C73BB1F1C83B20 -:10226000B9F1C93BC1F1CA3BC9F180E090E038C087 -:1022700082EE90E035C089EE90E032C08AEE90E0C8 -:102280002FC085EB90E02CC086EB90E029C087EB57 -:1022900090E026C08CEC90E023C08DEC90E020C054 -:1022A00083E891E01DC08AE891E01AC082E991E0DC -:1022B00017C084E991E014C081E292E011C083E28A -:1022C00092E00EC084E292E00BC085E292E008C08A -:1022D00086E292E005C087E292E002C08AE292E0E4 -:1022E000CF910C94C90FCF910895882309F44BC066 -:1022F000823859F40E94910F81FF45C089E30E9402 -:10230000A2190E946F1A89E30CC0833871F40E94ED -:10231000910F80FF38C083E50E94A2190E946F1AB6 -:1023200083E50E94E4190C946F1A843859F40E94D2 -:10233000910F82FF28C087E40E94A2190E946F1AA1 -:1023400087E4EFCF9CEF980F913A58F390E2980F03 -:10235000983050F4877091E001C0990F8A95EAF7A0 -:10236000892F0E942E1ADFCF9BE5980F933020F41F -:1023700080E090E00C94B30F885A833120F480E021 -:1023800090E00C94C90F0895882321F00E94281A28 -:102390000C946F1A0895882321F00E942E1A0C9431 -:1023A0006F1A08957F928F929F92AF92BF92CF92B1 -:1023B000DF92EF92FF920F931F93CF93DF931F92C1 -:1023C000CDB7DEB77C01C62E772EFC0105810295C4 -:1023D0000F70128111110E94451A0E949B198823C7 -:1023E00079F0112369F080E28C0D883048F082E0AA -:1023F0000E9484190E949B1991E0D82ED92601C011 -:10240000D12CE72DE295EF70F0E0E05AFF4F0C94ED -:102410005A23872D807F072D0F70882311F0029596 -:10242000007F112389F0002309F490C180E28C0D14 -:10243000883020F4802F0E94281A03C0802F0E9429 -:10244000381A0E946F1A82C18C2D0E9475110023C8 -:1024500009F495C180E28C0D883020F4802F0E9411 -:102460002E1A03C0802F0E943E1A0E946F1A87C145 -:10247000972D907F872D8F70903211F08295807FFD -:10248000CC2021F0F1E0CF16B1F01EC0112349F0AD -:10249000002309F414C1013009F011C10E94581A37 -:1024A0006EC1002319F0013009F469C189830E94CB -:1024B0005B1A89810AC1112321F0023008F05FC143 -:1024C000FEC001115CC101C1112321F0002309F4F8 -:1024D000F6C03CC1002309F4F8C03EC1872D8695A3 -:1024E0008695837090E0009719F0019761F047C1DD -:1024F000112321F08C2D972D937002C080E090E085 -:102500000E94B30F3CC1112321F08C2D972D9370A5 -:1025100002C080E090E00E94C90F31C18C2D1123D0 -:1025200019F00E94EA1D02C00E94521E0E94D71E8E -:1025300026C1872D837009F052C0111120C18C2D46 -:10254000829586958770880F880F9C2D9F70892EA5 -:10255000912CA12CB12C082E04C0880C991CAA1C0B -:10256000BB1C0A94D2F7C4FE14C00FE010E020E0B8 -:1025700030E0B901A80104C0440F551F661F771F42 -:102580008A95D2F7CB01BA016095709580959095A8 -:1025900003C060E070E0CB01272D269526952370BF -:1025A00030E02230310569F02330310589F06829A7 -:1025B00079298A299B292130310571F00E94101850 -:1025C000DEC0682979298A299B290E942C18D7C046 -:1025D0000E941018C501B4010E94F417D0C0112345 -:1025E00019F0872D817001C08695882309F4C7C032 -:1025F0008C2D829586958770880F880F9C2D9F70F3 -:10260000892E912CA12CB12C082E04C0880C991C69 -:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041 -:1026200020E030E0B901A80104C0440F551F661F27 -:10263000771F8A95D2F7CB01BA0160957095809586 -:10264000909503C060E070E0CB01272D269526957C -:102650002370422F50E04230510569F0433051055C -:1026600089F0682979298A299B294130510571F01F -:102670000E94EA1884C0682979298A299B290E9426 -:1026800006197DC00E94EA18C501B4010E94CE1847 -:1026900076C08C2D90E0FC01E05EF109E531F1059A -:1026A00008F050C0E059FF4F0C945A230C2D0F70C6 -:1026B000872D8F71112331F00E946718802F0E949F -:1026C000C4115DC00E948818802F0E94CB1157C092 -:1026D000112339F0011153C0872D8F710E94AD185D -:1026E0004EC0023008F04BC0F7CF112339F0872DD0 -:1026F0008F710E94671843C01123C9F3872D8F7112 -:102700000E9488183CC0112329F0872D8F710E94E8 -:10271000521835C00E94481832C0112351F0172DAD -:102720001F71812F0E94671863E0812F0E947B191F -:1027300026C081E00E948419023008F182E00E94E4 -:1027400084191DC0112331F0002389F28C2D0E94C1 -:10275000AD1015C0002391F28C2D0E9475110FC091 -:10276000472D4F706C2DC7010E94BF040E946C174B -:1027700006C0472D4F706C2DC7010E949905DD20C2 -:10278000F9F00E94771980FD1BC0F70112820E94A8 -:1027900071190E946718C7010E94EF130E947119F6 -:1027A0000F90DF91CF911F910F91FF90EF90DF90ED -:1027B000CF90BF90AF909F908F907F900C9488188F -:1027C0000F90DF91CF911F910F91FF90EF90DF90CD -:1027D000CF90BF90AF909F908F907F9008950F9370 -:1027E0001F93CF93DF93EC01888199812B813C81EA -:1027F000232BB9F09F3F11F48F3F99F0CE010E9437 -:10280000F104882371F0688179818A810E946D19B1 -:102810008C010E9422190E94E917B801CE010E9482 -:10282000D211DF91CF911F910F9108950E94451A07 -:102830000E94551A0E941A1A0E946F1A0E94881F3D -:102840000E94D71E80E090E00E94B30F80E090E0ED -:102850000C94C90F0E94351A0C9416140E94621928 -:10286000292F22952F7030E02C3031054CF42A307E -:1028700031056CF42250310922303105A8F407C02B -:102880002C30310569F02F30310551F00DC0803FFB -:1028900069F018F4803E40F409C0843F29F406C072 -:1028A00093FB882780F9089580E0089581E00895DA -:1028B000CF93DF9300D000D01F92CDB7DEB70F903B -:1028C0000F900F900F900F90DF91CF910895CF93BD -:1028D000DF9300D000D000D0CDB7DEB726960FB67C -:1028E000F894DEBF0FBECDBFDF91CF9108951F9347 -:1028F000CF93DF93C091850116E080918601C817C0 -:1029000099F0D0E01C9FF0011D9FF00D1124E957B4 -:10291000FE4F4081518162817381848195810E9443 -:1029200067142196C770E9CFDF91CF911F91089569 -:102930004091B7015091B8016091B9017091BA010D -:102940008091BB019091BC010C9467148091BC01F3 -:1029500082958F7009F054C08091B901882309F4E1 -:102960004FC080918501A09186016091B70170915F -:10297000B8014091BA015091BB01B6E08A1709F441 -:102980003FC090E041155105C1F17F3F11F46F3F09 -:10299000A1F1B89FF001B99FF00D1124E957FE4F46 -:1029A000218172132AC02081621327C02281211144 -:1029B00024C0238134812417350710F421503109B4 -:1029C000241B350B283C3105C0F42091BC012F702D -:1029D00020612093BC0126E0289FF001299FF00D83 -:1029E0001124E457FE4F80818F708061808387EBD4 -:1029F00091E00E94EF130C94771401968770BECF7C -:102A00000895CF92DF92EF92FF920F931F93CF938F -:102A1000DF93CDB7DEB762970FB6F894DEBF0FBE77 -:102A2000CDBF8C0185E0F801DE011D9601900D926D -:102A30008A95E1F7D8014C9111965C911197129605 -:102A40006C9112971396CD90DC9014973091B7014A -:102A50007091B8018091BA019091BB01009709F47F -:102A60006BC17F3F19F43F3F09F466C1E090B901A3 -:102A7000EE2009F4C0C02091BC01C816D90628F088 -:102A8000F601E81BF90BCF0104C0809590958C0DE1 -:102A90009D1DFF24F394883C910578F0F12C207F54 -:102AA00009F0C6C07C2DD98AC88A89890E94581429 -:102AB00087EB91E00E94EF13B1C0822F807F09F075 -:102AC00046C0751314C0341312C0611110C02F70AA -:102AD00020612093BC010E94981487EB91E00E9432 -:102AE000EF138091BC01D80115968C932EC0CD2890 -:102AF00019F15F3F11F44F3FF9F0F62E61111CC040 -:102B0000809185012091860136E0821709F45AC030 -:102B100090E0389FF001399FF00D1124E957FE4FE6 -:102B20007181571306C07081471303C07281711100 -:102B300003C001968770E9CFF62E662309F418C109 -:102B40008091BC0181608093BC01F12C11C175138F -:102B500008C0341306C0611104C08091BC01D801C3 -:102B6000C3C04D875E878D859E856A8B0E942E141B -:102B70006A898823E1F16623D1F12091BC01822F7B -:102B800082958F7090E0029774F08091B7019091D8 -:102B9000B80198878F831986DB86CA862C87CE0179 -:102BA00007960E94EF1386E0F801A7EBB1E00190D1 -:102BB0000D928A95E1F70E94A6140E949814FF24B2 -:102BC000F394D6C04D875E878D859E850E946219DD -:102BD000292F22952F7030E0223031050CF0BCC037 -:102BE0009F7009F0B6C0805E883008F4C1C0C8018B -:102BF0000E94EF13E4CFC816D90608F453C0F601BB -:102C0000E81BF90BCF01883C910508F450C0F12C6A -:102C10007C2DD98AC88A89890E945814E7EBF1E093 -:102C200086E0DF011D928A95E9F70E949814A0C002 -:102C3000751314C0341312C0611110C08091BC010F -:102C4000F8018583C8010E94EF1386E0E7EBF1E00D -:102C5000DF011D928A95E9F7FE2C8AC04D875E87B9 -:102C60008D859E856A8B0E942E146A89882309F4BB -:102C7000BECF662309F4BBCF2091BC01822F829581 -:102C80008F7090E002970CF48ECF8091B7019091F5 -:102C9000B8019A8389831B82DD82CC822E83CE0188 -:102CA00001967FCF809590958C0D9D1DACCFF62E13 -:102CB000662309F49CCF75132EC034132CC02091C9 -:102CC000BC0120FD1FC0822F82958F70D9F0D801E2 -:102CD00015962C9315978F3049F08F5F982F92950A -:102CE000907F822F8F70892B15968C93C8010E943C -:102CF000EF1386E0F801A7EBB1E001900D928A9501 -:102D0000E1F793CF86E0F801A7EBB1E001900D92D7 -:102D10008A95E1F72DC04D875E878D859E850E943F -:102D20002E14811140CF8091BC0181608093BC0141 -:102D3000C8010E94EF131CC0662309F458CF4D87C9 -:102D40005E878D859E850E942E14882309F44FCFBF -:102D50002ACF811148CF0CC0243031050CF047CF69 -:102D60009F7009F440CFF8019581907F09F03BCF27 -:102D70008F2D62960FB6F894DEBF0FBECDBFDF91E8 -:102D8000CF911F910F91FF90EF90DF90CF9008951A -:102D90001F93CF93DF93CDB7DEB72C970FB6F89480 -:102DA000DEBF0FBECDBF4F83588769877A878B8779 -:102DB0009C87CE0107960E940115882369F08F81B8 -:102DC00098852A853B85232BF1F19F3F09F063C04D -:102DD0008F3F09F060C037C086E0FE013796DE0104 -:102DE000119601900D928A95E1F76F817885EA85B9 -:102DF000FB85309741F17F3F11F46F3F21F1209126 -:102E0000860130E0C90101968770992740918501BC -:102E100050E08417950709F447C069837A83FD83DE -:102E2000EC8396E0929FD001939FB00D1124A95797 -:102E3000BE4FFE01319601900D929A95E1F7809375 -:102E400086010E94771416E0809185019091860199 -:102E50008917C1F1189FC001112489579E4F0E9404 -:102E60000115882379F1E09185011E9FF00111245D -:102E7000E957FE4F40815181628173818481958140 -:102E80000E9467148091850190E0019687709927D0 -:102E900080938501D9CF4F81588569857A858B8547 -:102EA0009C850E946714CFCF0E942A14109286013D -:102EB00010928501E7EBF1E086E0DF011D928A9533 -:102EC000E9F7C1CF2C960FB6F894DEBF0FBECDBF89 -:102ED000DF91CF911F910895EF92FF920F931F936F -:102EE000CF93DF938C01009709F46CC0F12CEE2492 -:102EF000E394E8012196F8018491843740F484300A -:102F000008F051C0813081F0823019F15BC0853703 -:102F100009F444C0A8F19CE7980F903708F052C01C -:102F20008F770E94751141C00E5F1F4FFE01C49143 -:102F300080E28C0F883048F4C7708E2D01C0880F56 -:102F4000CA95EAF70E94481A14C08C2F0E94AD104F -:102F50002DC00E5F1F4FFE01C49180E28C0F8830A0 -:102F600058F4C7708E2D01C0880FCA95EAF70E94E9 -:102F70004E1A0E946F1A1AC08C2F0E94751116C02B -:102F80000E5F1F4FFE01C491CC2381F08FE99FE0BB -:102F90000197F1F700C00000C150F6CF0E5F1F4F40 -:102FA000FE01F49003C00E94AD108E018F2D882386 -:102FB00009F49FCFEFE9FFE03197F1F700C000007F -:102FC0008150F5CFDF91CF911F910F91FF90EF903E -:102FD000089508956093C1017093C2018093C30165 -:102FE0009093C4010C9416140F931F930091C10188 -:102FF0001091C2012091C3013091C401DC01CB01C9 -:10300000802B912BA22BB32B8093C1019093C201F3 -:10301000A093C301B093C4011F910F910C94161497 -:103020000F931F930091C1011091C2012091C30120 -:103030003091C401DC01CB0180239123A223B3236F -:103040008093C1019093C201A093C301B093C401C6 -:103050001F910F910C9416140F931F930091C101AF -:103060001091C2012091C3013091C401DC01CB0158 -:1030700080279127A227B3278093C1019093C20193 -:10308000A093C301B093C4011F910F910C94161427 -:103090001092BD011092BE011092BF011092C001AA -:1030A0000C94161441E050E060E070E004C0440F5E -:1030B000551F661F771F8A95D2F74093BD01509325 -:1030C000BE016093BF017093C0010C94161441E0DF -:1030D00050E060E070E004C0440F551F661F771F8A -:1030E0008A95D2F78091BD019091BE01A091BF0158 -:1030F000B091C001482B592B6A2B7B2B4093BD010B -:103100005093BE016093BF017093C0010C941614DC -:1031100041E050E060E070E004C0440F551F661FBE -:10312000771F8A95D2F7409550956095709580915C -:10313000BD019091BE01A091BF01B091C001482393 -:1031400059236A237B234093BD015093BE016093B2 -:10315000BF017093C0010C94161441E050E060E090 -:1031600070E004C0440F551F661F771F8A95D2F781 -:103170008091BD019091BE01A091BF01B091C001AD -:10318000482759276A277B274093BD015093BE01EA -:103190006093BF017093C0010C9416140F931F939A -:1031A0000091BD011091BE012091BF013091C0017D -:1031B000DC01CB01802B912BA22BB32B8093BD0183 -:1031C0009093BE01A093BF01B093C0011F910F91D6 -:1031D0000C9416140F931F930091BD011091BE0122 -:1031E0002091BF013091C001DC01CB0180239123EC -:1031F000A223B3238093BD019093BE01A093BF018E -:10320000B093C0011F910F910C9416140F931F934C -:103210000091BD011091BE012091BF013091C0010C -:10322000DC01CB0180279127A227B3278093BD0122 -:103230009093BE01A093BF01B093C0011F910F9165 -:103240000C9416140895CF92DF92EF92FF920F9391 -:103250001F93CF93DF938C01C090C101D090C20126 -:10326000E090C301F090C4018091BD019091BE0136 -:10327000A091BF01B091C001C82AD92AEA2AFB2A2D -:10328000CFE1D0E0D701C6010C2E04C0B695A795BA -:10329000979587950A94D2F780FF06C0B8018C2FC6 -:1032A0000E94EF07019721F4219760F780E001C0A9 -:1032B0008C2FDF91CF911F910F91FF90EF90DF90B6 -:1032C000CF900895CF93DF93EC010E942319BE01A4 -:1032D0000E94EF07DF91CF910895CB010E94621900 -:1032E00008958091C501859585958595089580916E -:1032F000C5018770089598E0899F90011124262BBD -:103300002093C5010C9467182091C50180958223F4 -:103310008093C501982F977069F430E0482F5527A6 -:1033200047FD50952417350729F085958595859596 -:103330000C94881808959091C501977081E009F464 -:1033400080E0089590910C01992321F090910D0156 -:10335000911109C020910E0130910F01F9013296AF -:103360009FEF40E01FC0982F9695969596959F30B9 -:1033700050F5E0910E01F0910F01E90FF11D8770FA -:1033800021E030E0A90102C0440F551F8A95E2F701 -:10339000CA019181892B818308959F3F39F04F5F46 -:1033A0004E3041F051915813F8CF0DC05111F7CF65 -:1033B000942FF5CF9F3F39F0F901E90FF11D97FDEB -:1033C000FA9582830895089590910C01992321F034 -:1033D00090910D01911109C020910E0130910F01C2 -:1033E000F9013296205F3F4F1FC0982F9695969512 -:1033F00096959F30F0F4E0910E01F0910F01E90FE6 -:10340000F11D877021E030E0A90102C0440F551F73 -:103410008A95E2F7CA018095918189238183089575 -:103420003196E217F30729F090819813F9CF1082B3 -:10343000F7CF089581E090E0E0910E01F0910F0147 -:10344000E80FF91F1082019680319105A9F70895C0 -:103450009091D901892B8093D901089580959091FD -:10346000D90189238093D90108951092D901089533 -:103470009091D801892B8093D801089580959091DF -:10348000D80189238093D80108951092D801089516 -:103490009091D701892B8093D701089580959091C1 -:1034A000D70189238093D70108951092D7010895F9 -:1034B0008093C60108951092C601089580910E016F -:1034C00090910F01FC0131969C01205F3F4F80E0FD -:1034D000919191118F5FE217F307D1F70895E09171 -:1034E0000E01F0910F018091D9018083E0910E01CE -:1034F000F0910F0190818091D801892B8083E09118 -:103500000E01F0910F0190818091D701892B80836A -:103510008091C601882361F0E0910E01F0910F01C6 -:103520009081892B80830E945E1A81111092C601BE -:1035300080910E0190910F010C949D0F20E0009757 -:1035400039F0AC0141505109842395232F5FF7CF07 -:10355000822F0895CF92DF92EF92FF926C01EE24BA -:10356000FF24C114D104E104F10421F0C701B60124 -:1035700020E101C020E0C72ED82EE92EFF24C1147F -:10358000D104E104F10419F0285FC701B6016B0111 -:103590007C0154E0F694E794D794C7945A95D1F7F8 -:1035A000C114D104E104F10419F02C5FC701B60184 -:1035B0006B017C0142E0F694E794D794C7944A9556 -:1035C000D1F7C114D104E104F10419F02E5FC70151 -:1035D000B601DC01CB01B695A79597958795892B08 -:1035E0008A2B8B2B09F02F5F822FFF90EF90DF90BB -:1035F000CF9008958091F101843021F11092DB0188 -:1036000020E488E190E00FB6F894A89580936000DC -:103610000FBE2093600080E00E948A0883B7817FFC -:10362000846083BF83B7816083BF7894889583B7B4 -:103630008E7F83BF88E10FB6F8948093600010926C -:1036400060000FBE0895089508950E94231B0E94F4 -:10365000F5020E94241B0E94EA0391E0811101C03F -:1036600090E0892F08950E942A140E94910F0C94D3 -:103670008A0882E084BD93E095BD9AEF97BD809360 -:103680006E0008952FB7F8948091DC019091DD01D0 -:10369000A091DE01B091DF012FBF0895CF92DF929C -:1036A000EF92FF920F931F932FB7F8944091DC0194 -:1036B0005091DD016091DE017091DF012FBF6A0141 -:1036C0007B01EE24FF248C0120E030E0C016D106FF -:1036D000E206F30610F4415051099A01281B390BF8 -:1036E000C9011F910F91FF90EF90DF90CF90089547 -:1036F0001F920F920FB60F9211248F939F93AF9347 -:10370000BF938091DC019091DD01A091DE01B09129 -:10371000DF010196A11DB11D8093DC019093DD01B5 -:10372000A093DE01B093DF01BF91AF919F918F9184 -:103730000F900FBE0F901F9018950E948E0CF8945A -:103740002FEF87EA91E6215080409040E1F700C0DA -:10375000000087E090EBDC018093FB019093FC017B -:10376000A093FD01B093FE019CE088E10FB6F894B0 -:10377000A895809360000FBE90936000FFCFEF92FA -:10378000FF920F931F93CF93DF93D82FCDE08C2F11 -:103790000E94E30305E010E0E82EF12CC701002EA3 -:1037A00002C0959587950A94E2F780FF09C0602FC3 -:1037B0007C2F80E00E949A05D81302C081E006C0E9 -:1037C0000150110958F7C15010F780E0DF91CF91F7 -:1037D0001F910F91FF90EF900895CF93C82F8CE227 -:1037E0000E94BF1B882321F08C2FCF910C94BF1B0C -:1037F00080E0CF910895CF930E94421D811102C0B5 -:103800000E94281DC5E6C15049F00E94F5028FE3D1 -:103810009CE90197F1F700C00000F5CF89E20E9412 -:10382000ED1B811113C18AE20E94ED1B81110E94E0 -:10383000281D85E00E94ED1B81110E949D1B0E94A6 -:103840004D1D8093DA0187E00E94ED1B8823A9F1CA -:103850008BE10E94ED1B882351F08091DA0181FBFE -:10386000222720F991E0922790FB81F90EC08EE08B -:103870000E94ED1B882361F08091DA0182FB2227F0 -:1038800020F991E0922790FB82F98093DA0115C02C -:1038900080E10E94ED1B9091DA01882341F093FBB7 -:1038A000222720F981E0822780FB93F904C0892F29 -:1038B000809580FB90F99093DA018091DA010E9463 -:1038C000511D0E945F1D8093FA0180EE0E94ED1B46 -:1038D000882341F08091FA01982F909590FB80F910 -:1038E0008093FA0189E30E94ED1B882359F08091AF -:1038F000FA0181FB222720F991E0922790FB81F9C0 -:103900008093FA0182EE0E94ED1B882359F080918A -:10391000FA0182FB222720F991E0922790FB82F99D -:103920008093FA0186EE0E94ED1B882359F0809166 -:10393000FA0183FB222720F991E0922790FB83F97B -:103940008093FA0183EE0E94ED1B882359F0809149 -:10395000FA0184FB222720F991E0922790FB84F959 -:103960008093FA0185E30E94ED1B882359F0809132 -:10397000FA0185FB222720F991E0922790FB85F937 -:103980008093FA0181E30E94ED1B882359F0809116 -:10399000FA0186FB222720F991E0922790FB86F915 -:1039A0008093FA0181E10E94ED1B882359F08091F8 -:1039B000FA0187FB222720F991E0922790FB87F9F3 -:1039C0008093FA018091FA010E94631D8091FA01AF -:1039D00087FB882780F980930D0187E20E94ED1B09 -:1039E000C82F8EE10E94ED1B8111C2608FE10E9401 -:1039F000ED1B8111C46080E20E94ED1B8111C86043 -:103A000081E20E94ED1B8111C06182E20E94ED1BE8 -:103A10008111C06283E20E94ED1B8111C06484E2C7 -:103A20000E94ED1B882311F0C06802C0CC2329F04E -:103A30008C2F0E945A1D6C2F03C00E94561D682FA8 -:103A400070E080E090E0CF910C94EA17CF91089558 -:103A50006DEE7EEF80E090E00E94942360E082E0D3 -:103A600090E00E94822360E083E090E00E94822345 -:103A700060E084E090E00E94822360E085E090E0D6 -:103A80000C94822380E090E00E947C2321E08D3E14 -:103A90009E4F09F020E0822F089582E090E00C9480 -:103AA0007423682F82E090E00C94822383E090E0FE -:103AB0000C947423682F83E090E00C94822384E0BC -:103AC00090E00C947423682F84E090E00C9482239F -:103AD0008091E20180FF0BC06091130185E0689F37 -:103AE000B001112475956795759567952BC081FF79 -:103AF00009C06091130185E0689FB001112475959C -:103B0000679520C082FF07C06091130185E0689F20 -:103B1000B001112417C09091E3019923D1F0609175 -:103B20001201961788F72091130185E0289F9001D4 -:103B30001124929FA001939F500D112470E0CA019F -:103B40000E9446236038710540F46115710539F013 -:103B500002C065E070E0862F08958FE7089581E048 -:103B600008958091E20180FF08C06091110170E02A -:103B7000759567957595679521C081FF06C0609121 -:103B8000110170E07595679519C082FF04C06091BE -:103B9000110170E010C09091E3019923C1F0609190 -:103BA00010019617A0F780911101899FC00111247F -:103BB00070E00E9446236038710528F46115710594 -:103BC00021F0862F08958FE7089581E0089561E040 -:103BD00070E0F4CF803F21F40E94681D819504C0FD -:103BE000813F29F40E94681D8093E6010895823F79 -:103BF00021F40E94681D819504C0833F29F40E942E -:103C0000681D8093E5010895893F19F40E94B11D54 -:103C100005C08A3F31F40E94B11D81958093E70170 -:103C200008958B3F21F40E94B11D819504C08C3F03 -:103C300029F40E94B11D8093E8010895843F21F486 -:103C40008091E401816017C0853F21F48091E401F7 -:103C5000826011C0863F21F48091E40184600BC032 -:103C6000873F21F48091E401886005C0883F31F4EA -:103C70008091E40180618093E40108958D3F21F4F7 -:103C80008091E20181600BC08E3F21F48091E201BE -:103C9000826005C08F3F29F48091E20184608093A7 -:103CA000E2010895803F39F48091E60187FF6CC0FE -:103CB0001092E60169C0813F29F48091E60118164F -:103CC000BCF362C09091E501823F29F497FF5CC08C -:103CD0001092E50159C0833F19F41916CCF354C072 -:103CE000893F41F48091E70118160CF04DC0109205 -:103CF000E7014AC08A3F29F48091E70187FF44C069 -:103D0000F6CF8B3F39F48091E80187FF3DC01092D8 -:103D1000E8013AC08C3F29F48091E8011816BCF301 -:103D200033C0843F21F48091E4018E7F17C0853F2A -:103D300021F48091E4018D7F11C0863F21F48091B0 -:103D4000E4018B7F0BC0873F21F48091E401877FE2 -:103D500005C0883F31F48091E4018F7E8093E401B7 -:103D600013C08D3F21F48091E2018E7F0BC08E3F06 -:103D700021F48091E2018D7F05C08F3F29F480916D -:103D8000E2018B7F8093E2018091E50181110EC0F9 -:103D90008091E60181110AC08091E701811106C07E -:103DA0008091E801811102C01092E301089584EE30 -:103DB00091E00E94A80F0E94421B9093E101809322 -:103DC000E00108951F93CF93DF938091E0019091DC -:103DD000E1010E944E1BAC019091E301992321F077 -:103DE0002091140130E006C0209115018AE0289F3F -:103DF000900111244217530708F486C08091E50111 -:103E0000C091E601D091E7011091E801811107C04E -:103E1000C11176C0D11174C0111172C075C09F3F1D -:103E200019F09F5F9093E301181624F40E94681D17 -:103E30008093E5018091E50187FF05C00E94681D20 -:103E400081958093E5011C1624F40E94681D8093DF -:103E5000E6018091E60187FF05C00E94681D8195FB -:103E60008093E6016091E501662339F1C091E60196 -:103E7000CC2319F1772767FD7095872F972F0E9424 -:103E8000572223E333E343E35FE30E94BB220E9414 -:103E900024226093E5016C2F772767FD7095872FAB -:103EA000972F0E94572223E333E343E35FE30E940B -:103EB000BB220E9424226093E6011D1624F40E9476 -:103EC000B11D8093E7018091E70187FF05C00E9443 -:103ED000B11D81958093E701111624F40E94B11D54 -:103EE0008093E8018091E80187FF05C00E94B11D21 -:103EF00081958093E801DF91CF911F910C94D71E9B -:103F00009F3F09F08ECF96CFDF91CF911F910895FB -:103F1000E4EEF1E085E0DF011D928A95E9F7109269 -:103F2000E3011092E2010895833081F128F4813099 -:103F300059F08230D1F00895853009F449C0B8F1C4 -:103F4000863009F456C0089580911501262F30E07F -:103F5000280F311D2F3F310524F4680F60931501A0 -:103F600008958FEF80931501089580911401262FF5 -:103F700030E0280F311D2F3F310524F4680F609386 -:103F8000140108958FEF8093140108958091130117 -:103F9000262F30E0280F311D2F3F310524F4680F04 -:103FA0006093130108958FEF80931301089580911A -:103FB0001201262F30E0280F311D2F3F310524F448 -:103FC000680F6093120108958FEF80931201089596 -:103FD00080911101262F30E0280F311D2F3F310530 -:103FE00024F4680F6093110108958FEF80931101FD -:103FF000089580911001262F30E0280F311D2F3FAA -:10400000310524F4680F6093100108958FEF8093B9 -:1040100010010895833011F128F4813049F0823085 -:1040200091F00895853081F120F18630C1F1089535 -:1040300080911501681720F4861B8093150108955F -:1040400010921501089580911401681720F4861BC1 -:104050008093140108951092140108958091130122 -:10406000681720F4861B80931301089510921301A2 -:10407000089580911201681720F4861B8093120125 -:10408000089510921201089580911101681720F48B -:10409000861B80931101089510921101089580915B -:1040A0001001681720F4861B809310010895109268 -:1040B000100108950F931F938D3109F46BC008F020 -:1040C0003FC08E3009F47FC0C0F4873009F469C066 -:1040D00068F4863009F0B1C08091DA01817F8E7F6B -:1040E0008093DA0181E08093EA01A8C0883009F466 -:1040F000A2C08B3009F49FC0A0C0863109F49BC0D8 -:1041000078F4803109F472C0813109F096C00E94C0 -:104110002A1490910D0181E0892780930D018BC0B5 -:10412000893109F488C08B3109F087C08091DA01A8 -:1041300081FB222720F991E0922790FB81F94CC066 -:10414000853309F470C048F4873209F46CC008F470 -:1041500059C0893209F467C070C0833438F48A3397 -:1041600008F04EC0883309F466C067C0833409F490 -:104170005AC0883409F061C00E942A140FEF13ED71 -:1041800020E3015010402040E1F700C000000E94F1 -:104190009D1B51C00E94DE210E94910F0E948A083F -:1041A0004AC09091DA01892F8095817080FB90F947 -:1041B00029F0966098609093DA0140C0997F977FCC -:1041C0009093DA0138C08091DA0182FB222720F92E -:1041D00091E0922790FB82F98093DA01992359F1BB -:1041E0008091DA0181608093DA0125C08091DA0143 -:1041F00083FB222720F991E0922790FB83F9ECCFF3 -:10420000895301C08D5141E050E060E070E08A01C7 -:104210009B0104C0000F111F221F331F8A95D2F784 -:10422000C901B80104C061E070E080E090E00E9444 -:10423000EA170E942A1481E001C080E01F910F91CB -:10424000089580E0089580E00895CF93C82F80916D -:10425000EA01813079F018F08230E9F187C0E0910D -:104260000E01F0910F018081813169F0823209F0F5 -:104270007FC009C0E0910E01F0910F018081813172 -:1042800011F0823261F48C2F0E942121811104C02F -:104290008C2F0E945A201DC081E090E01AC08C2F04 -:1042A0000E942321811114C0C43179F048F4CB302D -:1042B00079F0C03109F060C082E08093EA0108C063 -:1042C000C93219F0C83321F057C01092EA0154C026 -:1042D00081E0817053C0C93289F118F5C43171F1A0 -:1042E000A8F4C73009F046C08AE08093150194E134 -:1042F0009093140193E0909313018093120188E04E -:104300008093110188E28093100134C0CE51C630F1 -:1043100088F5EC2FF0E0E65DFE4F80818093E901A7 -:1043200029C0CE34E9F020F4CB3421F56AE013C083 -:10433000C13579F0C235F1F461E00DC08091E90139 -:10434000882319F01092E90115C081E08093EA01F9 -:1043500015C061E006C08091E9010E94941F0AC067 -:104360006AE08091E9010E940A2004C01092EA01EB -:1043700080E004C081E002C080E0ABCFCF9108951F -:10438000E1E8F0E0808188608083808181608083C3 -:104390008FB7F89493E09093890090ED9093880004 -:1043A0008FBF0895EFE6F0E08081826080830895FA -:1043B000EFE6F0E080818D7F80830895EFE6F0E006 -:1043C000908182E08927808308951F920F920FB613 -:1043D0000F9211242F933F934F935F936F937F938B -:1043E0008F939F93AF93BF93EF93FF938091EB01D4 -:1043F0009091EC0101969093EC018093EB01811177 -:1044000003C082E00E948A08E091EC01E695E695FF -:10441000F0E0E85FFB4FE4918091EB018E1303C065 -:1044200080E00E948A08FF91EF91BF91AF919F9128 -:104430008F917F916F915F914F913F912F910F904D -:104440000FBE0F901F90189504D06894B1118DC0C5 -:10445000089570D088F09F5790F0B92F9927B751E1 -:10446000A0F0D1F0660F771F881F991F1AF0BA9538 -:10447000C9F712C0B13081F077D0B1E0089574C0AF -:10448000672F782F8827B85F39F0B93FCCF386952E -:1044900077956795B395D9F73EF49095809570958B -:1044A00061957F4F8F4F9F4F0895E89409C097FB08 -:1044B0003EF490958095709561957F4F8F4F9F4FFB -:1044C0009923A9F0F92F96E9BB279395F69587953F -:1044D00077956795B795F111F8CFFAF4BB0F11F402 -:1044E00060FF1BC06F5F7F4F8F4F9F4F16C08823A9 -:1044F00011F096E911C0772321F09EE8872F762FDF -:1045000005C0662371F096E8862F70E060E02AF01F -:104510009A95660F771F881FDAF7880F969587950B -:1045200097F9089557FD9058440F551F59F05F3F74 -:1045300071F04795880F97FB991F61F09F3F79F0C5 -:1045400087950895121613061406551FF2CF469547 -:10455000F1DF08C0161617061806991FF1CF8695C9 -:104560007105610508940895E894BB2766277727AD -:10457000CB0197F908950BD078C069D028F06ED0A0 -:1045800018F0952309F05AC05FC01124EECFCADF9E -:10459000A0F3959FD1F3950F50E0551F629FF00156 -:1045A000729FBB27F00DB11D639FAA27F00DB11DAF -:1045B000AA1F649F6627B00DA11D661F829F222738 -:1045C000B00DA11D621F739FB00DA11D621F839FBF -:1045D000A00D611D221F749F3327A00D611D231F95 -:1045E000849F600D211D822F762F6A2F11249F57E3 -:1045F00050408AF0E1F088234AF0EE0FFF1FBB1F06 -:10460000661F771F881F91505040A9F79E3F5105A4 -:1046100070F014C0AACF5F3FECF3983EDCF38695B0 -:1046200077956795B795F795E7959F5FC1F7FE2B4F -:10463000880F911D9695879597F9089597F99F672B -:1046400080E870E060E008959FEF80EC089500241A -:104650000A941616170618060906089500240A94E7 -:1046600012161306140605060895092E0394000C6D -:1046700011F4882352F0BB0F40F4BF2B11F460FFFC -:1046800004C06F5F7F4F8F4F9F4F089597FB072E9A -:1046900016F4009407D077FD09D00E94602307FC30 -:1046A00005D03EF4909581959F4F08957095619542 -:1046B0007F4F0895EE0FFF1F0590F491E02D0994B0 -:1046C000AA1BBB1B51E107C0AA1FBB1FA617B70738 -:1046D00010F0A61BB70B881F991F5A95A9F7809554 -:1046E0009095BC01CD010895F999FECF92BD81BD91 -:1046F000F89A992780B50895A8E1B0E042E050E02B -:104700000C949C23262FF999FECF92BD81BDF89A77 -:10471000019700B4021639F01FBA20BD0FB6F89405 -:10472000FA9AF99A0FBE08950196272F0E948323C3 -:104730000C948223DC01CB01FC01F999FECF06C069 -:10474000F2BDE1BDF89A319600B40D92415050404F -:08475000B8F70895F894FFCFBB -:1047580002208C081A09F708C3088F080101C7014D -:1047680028080A03140A3F4D3639C9037C03460357 -:104778000D03A002B902D202EB02010203040506EE -:044788000708090015 -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/supercoder/README.md b/keyboards/ergodox_ez/keymaps/supercoder/README.md deleted file mode 100644 index 97bf7f583..000000000 --- a/keyboards/ergodox_ez/keymaps/supercoder/README.md +++ /dev/null @@ -1,29 +0,0 @@ -SuperCoder 2000 layout for the ErgoDox -================================================== - -![SuperCoder 2000](images/supercoder_2000.jpg) - -Ever found yourself in need of entering binary codes rapidly? Ever wanted to use -all ten fingers to do so? Ever felt your SuperCoder 2000 too limiting, by only -having three buttons? We heard you! With this layout for the ErgoDox EZ, you -will be able to tap in binary at an unparalleled speed and accuracy! Efficiency -never seen before! - -Behold the Ultimate SuperCoder 2000 layout! - -![SuperCoder layout](images/layout.png) - -### To use it... - -To use this piece of top quality engineering, you can either -[download the hex file][hex] we have prepared for you, or you can compile it on -your own: - - [hex]: https://raw.githubusercontent.com/algernon/ergodox-supercoder/master/supercoder.hex - -``` -$ git clone https://github.com/jackhumbert/qmk_firmware.git -$ cd qmk_firmware/keyboards/ergodox_ez -$ git clone https://github.com/algernon/ergodox-supercoder.git keymaps/supercoder -$ make KEYMAP=supercoder -``` diff --git a/keyboards/ergodox_ez/keymaps/supercoder/compiled.hex b/keyboards/ergodox_ez/keymaps/supercoder/compiled.hex deleted file mode 100644 index e4113a757..000000000 --- a/keyboards/ergodox_ez/keymaps/supercoder/compiled.hex +++ /dev/null @@ -1,1122 +0,0 @@ -:100000000C94D0010C9414020C9414020C9414025D -:100010000C9414020C9414020C9414020C94140208 -:100020000C9414020C9414020C948F0C0C94610D1B -:100030000C9414020C9414020C9414020C941402E8 -:100040000C9414020C941B210C9414020C941402B2 -:100050000C9414020C94AE1A0C9414020C94140216 -:100060000C9414020C9414020C9414020C941402B8 -:100070000C9414020C9414020C9414020C941402A8 -:100080000C9414020C9414020C9414020C94140298 -:100090000C9414020C9414020C9414020C94140288 -:1000A0000C9414020C9414020C941402CE0DF00D56 -:1000B000DE0EF00DDE0E350E580EDE0EAD0EC00E4D -:1000C0008F118F11BE11BE11F41114124513451377 -:1000D0001F124513CF12CF123613451345133F138A -:1000E000DC12DC12DC12DC12DC12DC12DC12DC12A0 -:1000F000DC12DC12DC12DC12DC12DC12DC12DC1290 -:10010000EE12FB1202130913131327002700270016 -:1001100027002700000027002700270027002700CE -:100120002800270027002700270027002800270095 -:100130002700270027002700280027002700270086 -:10014000270027002800270027002700270000009D -:1001500028002700270000002700000028001E00BC -:100160001E0000001E00000028001E001E001E00D1 -:100170001E00000028001E001E001E001E001E00A3 -:1001800028001E001E001E001E001E0028001E006B -:100190001E001E001E001E0028001E001E001E0065 -:1001A0001E001E0028001E001E001E001E001E0055 -:1001B000000016034500720067006F0044006F00E6 -:1001C0007800200045005A00000016034500720028 -:1001D00067006F0044006F007800200045005A005F -:1001E00000000403090409026D00040100A0FA09DB -:1001F0000400000103010100092111010001223F57 -:10020000000705810308000A090401000103010237 -:1002100000092111010001224D0007058203080099 -:100220000A09040200010300000009211101000174 -:100230002236000705830308000A090403000103AE -:100240000000000921110100012239000705840383 -:100250001000011201100100000008EDFE0713015B -:10026000000102000105010906A101050719E029A5 -:10027000E715002501950875018102050819012976 -:100280000595057501910295017503910105071901 -:1002900000297715002501957875018102C00501B7 -:1002A0000980A101850216010026B7001A01002A63 -:1002B000B700751095018100C0050C0901A10185E9 -:1002C00003160100269C021A01002A9C0275109553 -:1002D000018100C005010902A1010901A100050970 -:1002E0001901290515002501950575018102950162 -:1002F000750381010501093009311581257F9502BA -:100300007508810609381581257F950175088106D4 -:10031000050C0A38021581257F950175088106C0F4 -:10032000C005010906A101050719E029E715002507 -:10033000019508750181029501750881010508196B -:100340000129059505750191029501750391010536 -:1003500007190029FF150025FF950675088100C0C3 -:100360000000000000000000000000010204060A76 -:100370000F17202C3A4A5D71879DB3C7DAE9F5FC67 -:10038000FFFCF5E9DAC7B39D87715D4A3A2C201767 -:100390000F0A060402010000000000000000000037 -:1003A00011241FBECFEFDAE0DEBFCDBF04B603FEDF -:1003B00024C08091FB019091FC01A091FD01B091BE -:1003C000FE018730904BA740B04BB9F41092FB016F -:1003D0001092FC011092FD011092FE0114BE84B730 -:1003E000877F84BF88E10FB6F894809360001092F5 -:1003F00060000FBEE0E0FFE3099511E0A0E0B1E08E -:10040000E4ECF5E402C005900D92A433B107D9F7EE -:1004100011E0A4E3B1E001C01D92AB3FB107E1F7E9 -:100420000E94D3090C94E0220C9400001092B900B1 -:100430008AE08093B800089594EA9093BC0090916C -:10044000BC0097FFFCCF9091B900987F983021F0C5 -:10045000903111F081E008958093BB0084E880938F -:10046000BC008091BC0087FFFCCF8091B900887FE1 -:10047000883111F0803471F780E0089584E9809329 -:10048000BC008091BC0084FDFCCF08958093BB002C -:1004900084E88093BC008091BC0087FFFCCF9091E2 -:1004A000B900987F81E0983209F480E0089584E8EB -:1004B0008093BC008091BC0087FFFCCF8091BB0083 -:1004C000089580910101811115C080E40E941C02F1 -:1004D0008093010181110CC082E10E944602809349 -:1004E0000101811105C08FEF0E9446028093010136 -:1004F0000E943E0284B1807F84B985B1807F85B936 -:100500008AB1837F8AB98BB1837F8BB93E98469835 -:1005100008950E941C04809301010E94610280B32F -:100520008C7080BB81B3836F81BBA5E3B1E0E3E452 -:10053000F1E08EE08E0F11921D928E13FCCF0C9481 -:100540000604BF92CF92DF92EF92FF920F931F9318 -:10055000CF93DF9380910101882379F0809134015A -:100560008F5F80933401811108C00E941C04809326 -:100570000101811102C00E94AE0305E311E0C0E059 -:10058000D0E0DD24D39482E0C82EEE24E394F12C55 -:10059000C730D10500F580910101811164C080E46C -:1005A0000E941C0280930101811112C082E10E940D -:1005B00046028093010181110BC0C7010C2E01C0BE -:1005C000880F0A94EAF780950E9446028093010101 -:1005D0000E943E0248C0CA30A1F028F4C83059F049 -:1005E000C93061F005C0CC3089F070F0CD3089F0B1 -:1005F000209A289810C0219A29980DC0229A2A98EA -:100600000AC0239A2B9807C0529A01C0539A5B984C -:1006100002C03E9A469890EA9A95F1F79FB179996F -:1006200002C082E001C080E091709D25982B7C99EA -:1006300002C084E001C080E0892B7D9902C038E0CF -:1006400001C030E0832B7E9902C020E101C020E090 -:10065000822B9FB19095991F9927991F9295990F79 -:10066000907E892B0FC080910101811149C080E4E7 -:100670000E941C0280930101882379F1B12C0E9411 -:100680003E028B2DF8019081981719F08083C0925B -:1006900000010E94610221960F5F1F4FCE30D105ED -:1006A00009F076CF80910001882361F18150809319 -:1006B0000001882339F08FE99FE00197F1F700C02E -:1006C000000020C0A3E4B1E0E5E3F1E0CF01825FE8 -:1006D00091919D938E13FCCF15C083E10E94460239 -:1006E000809301018111CACF81E40E941C02809392 -:1006F00001018111C3CF0E945702B82EB094BFCF21 -:1007000080E0C0CF0E94AC0381E0DF91CF911F91C8 -:100710000F91FF90EF90DF90CF90BF900895E82F5A -:10072000F0E0ED5BFE4F8081089508950F931F93D5 -:10073000CF93DF93C3E4D1E010E00C2F025F8991E7 -:1007400090E00E94241A180F0C13F9CF812FDF912B -:10075000CF911F910F9108950C946F0456985E9855 -:1007600025982D9826982E9827982F988FEF90E00F -:10077000909389008093880090938B0080938A00E7 -:1007800090938D0080938C00259A2D9A2FEF80E70F -:1007900092E0215080409040E1F700C00000269A8E -:1007A0002E9A2FEF80E792E0215080409040E1F7B1 -:1007B00000C00000279A2F9A2FEF80E792E0215087 -:1007C00080409040E1F700C0000025982D982FEF61 -:1007D00080E792E0215080409040E1F700C00000A7 -:1007E00026982E982FEF80E792E02150804090408D -:1007F000E1F700C0000027982F9856985E9825983A -:100800002D9826982E9827982F98089589EA8093F6 -:10081000800089E08093810024982C983F988AB1C9 -:100820008F748AB96E98479A8BB1806B8BB9769A20 -:100830000E94AE030C946E0480E2809301018091CB -:10084000510181110EC00E94160281E08093510176 -:100850002FEF83ED90E3215080409040E1F700C0FE -:10086000000080E40E941C028093010181112EC0CF -:100870000E94460280930101811128C00E94460215 -:1008800080930101811122C08FE30E944602809370 -:10089000010181111BC00E943E0280E40E941C02E3 -:1008A00080930101811112C08CE00E944602809366 -:1008B000010181110BC00E94460280930101811148 -:1008C00005C08FE30E944602809301010E943E0210 -:1008D00080910101089580E090E0089508950895C1 -:1008E00081E0089581E008950C94720408950F93B7 -:1008F0001F93CF93DF938C01FC01C081D181CE0186 -:100900000E94A918BE010E942005EC01B8010E94B6 -:100910007404882309F48DC0F8018281882309F4C6 -:100920004AC080915D0181111FC0C431F0E5DF072D -:1009300009F051C00E94760481E080935D010E941D -:10094000781A90935C0180935B011092540110928D -:1009500056011092550110925801109257011092B1 -:100960005A011092590165C080915B0190915C0120 -:100970000E94841A883C910570F480915401E82FFC -:10098000F0E0EE0FFF1FEB5AFE4FD183C0838F5F65 -:10099000809354014EC0C43880E5D80721F0C53893 -:1009A000D04501F13AC0F8018281882341F01092CC -:1009B000520182E01EC0C438E0E5DE0759F580919F -:1009C0005201811106C086E20E94331086E20E9425 -:1009D000FB1082E01CC0C438F0E5DF0741F3C538E6 -:1009E000D045D9F4F8018281882331F01092530167 -:1009F00080E20E944A111DC080915301811106C0FE -:100A000087E20E94331087E20E94FB1080E20E947E -:100A100051110FC0C538D04529F381E080935201B0 -:100A200080935301C801DF91CF911F910F910C94D6 -:100A3000700480E0DF91CF911F910F910895089588 -:100A400096E0799FF001112494E5899FE00DF11D56 -:100A50001124E60FF11DEE0FFF1FE65FFE4F85919B -:100A600094910895880F991FFC01E657F0408591F5 -:100A700094910895880F991FFC01E65FFE4F8591C0 -:100A8000949108950F931F93CF93DF93EC018115F9 -:100A900020E3920750F5C11580E2D80708F0C3C0E3 -:100AA000CB3BD10590F4C83AD10508F06AC0C53AED -:100AB000D10508F05BC0C430D10508F0D0C1219742 -:100AC00009F0CAC101E010E00AC2CF3FD10511F020 -:100AD00008F0C5C1C03FD10508F0A2C0CE01805EBC -:100AE0009109089708F4BBC1B7C1C13090E5D90797 -:100AF00009F4A2C020F5C0318FE4D80770F4C11505 -:100B000090E4D90708F094C0C11521E3D20708F09A -:100B1000A3C1DD278E01106CE2C1C115D04509F0DB -:100B20009BC10E94B0138FEF94E32CE08150904062 -:100B30002040E1F700C000000E94D31AD0C1C115C7 -:100B400097E5D90758F4C03121E5D20708F01CC158 -:100B5000C43180E5D80708F475C07EC1CE01905736 -:100B60008115904108F078C1DF7073C1C53AD10595 -:100B700009F477C1C63AD10509F076C102E810E45C -:100B8000AEC1C83AD10509F472C1C93AD10509F418 -:100B900071C1CA3AD10509F470C1CB3AD10509F443 -:100BA0006FC1CC3AD10509F46EC1CD3AD10509F433 -:100BB0006DC1C03BD10509F46CC1CE3AD10509F431 -:100BC0006BC1CF3AD10509F46AC1C13BD10509F423 -:100BD00069C1C23BD10509F468C1C33BD10509F421 -:100BE00067C1C43BD10509F466C1C53BD10509F411 -:100BF00065C1C63BD10509F464C1C73BD10509F401 -:100C000063C1C83BD10509F462C1C93BD10509F4F0 -:100C100061C1CA3BD10509F460C100E014E45FC1C1 -:100C20008E0110655CC1CE019F700E943A0558C1CB -:100C3000DF708E01106A53C18091DA018160809368 -:100C4000DA014DC10E94781C811102C00E945E1C15 -:100C50000E94951C90E09093FB018093FA01C230B2 -:100C600080E5D80721F48091FA01816086C0C43004 -:100C700090E5D90721F48091FA0182607EC0C630E8 -:100C800020E5D20721F48091FA01846076C0C83053 -:100C900080E5D80719F48091FA0127C0CA3090E5A1 -:100CA000D90721F48091FA01806167C0CC3020E53A -:100CB000D20721F48091FA0180625FC0CE3080E5D6 -:100CC000D80721F48091FA01806457C0C03190E5C3 -:100CD000D90721F48091FA0180684FC0C23120E524 -:100CE000D20729F48091FA018460886046C0C3303D -:100CF00080E5D80721F48091FA018E7F3EC0C5308F -:100D000090E5D90721F48091FA018D7F36C0C73074 -:100D100020E5D20721F48091FA018B7F2EC0C930E3 -:100D200080E5D80719F48091FA0126C0CB3090E510 -:100D3000D90721F48091FA018F7E1FC0CD3020E5C4 -:100D4000D20721F48091FA018F7D17C0CF3080E562 -:100D5000D80721F48091FA018F7B0FC0C13190E553 -:100D6000D90721F48091FA018F7707C0C331D045AC -:100D700031F48091FA018B7F877F8093FA01809113 -:100D8000FA010E94991CABC08D2F99278F7099276B -:100D900081309105D9F49E012370332702C0880F5A -:100DA000991F2A95E2F79C688E0144E0000F111FFD -:100DB0004A95E1F700271370802B912B53E0CC0F5D -:100DC000DD1F5A95E1F7C076DD272FC082309105EF -:100DD00031F4DC2FCC278E01016F106A80C0833084 -:100DE000910569F4CE018370992701E010E002C0FB -:100DF000000F111F8A95E2F7C8019C680FC084306C -:100E00009105B9F4CE018370992701E010E002C08A -:100E1000000F111F8A95E2F7C8019A6823E0CC0FF2 -:100E2000DD1F2A95E1F7C07ED7708C010C2B1D2B9E -:100E300056C08530910531F4DC2FCC278E01046F2C -:100E4000106A4DC0069709F04AC0CF71DD27DC2F2C -:100E5000CC278E01106243C000E010E040C08E013C -:100E60003EC001E810E43BC003E810E438C002EEE5 -:100E700014E435C009EE14E432C00AEE14E42FC0C5 -:100E800005EB14E42CC006EB14E429C007EB14E4D2 -:100E900026C00CEC14E423C00DEC14E420C003E8DD -:100EA00015E41DC00AE815E41AC002E915E417C0EC -:100EB00004E915E414C001E216E411C003E216E4EB -:100EC0000EC004E216E40BC005E216E408C006E218 -:100ED00016E405C007E216E402C00AE216E4C801FF -:100EE000DF91CF911F910F91089596E0799FF001C6 -:100EF000112494E5899FE00DF11D1124E60FF11DE9 -:100F0000EE0FFF1FE65FFE4F85919491803E9105A5 -:100F1000E0F4803C910558F58133910509F46FC0E8 -:100F200048F48932910509F463C08A32910509F4C5 -:100F30006DC072C089339105E9F082389105D1F016 -:100F40008533910509F44DC067C0833E910581F159 -:100F500038F4803E9105B9F0823E9105D9F05CC02D -:100F6000863E910561F1873E9105A1F155C00E9431 -:100F7000320508952091FA0120FD02C021FF4CC0E6 -:100F800080EE90E049C08091FA0180FFF9CF89E3BB -:100F900090E042C08091FA0182FF0EC08091FA0178 -:100FA00084FF03C080E090E037C083EE90E034C05F -:100FB0008091FA0182FFF2CF82EE90E02DC0809105 -:100FC000FA0183FF0BC08091FA0184FDEBCF87EE1D -:100FD00090E022C08091FA0183FFF5CF86EE90E089 -:100FE0001BC08091FA0185FF07C089E290E014C020 -:100FF0008091FA0185FFF9CF85E390E00DC08091E3 -:10100000FA0186FF07C08AE290E006C08091FA01EB -:1010100086FFF9CF81E390E00E944205089508958C -:101020000C940F0880916E010895CF93DF9300D048 -:101030001F92CDB7DEB79C018091F101843019F584 -:1010400093E099833B832A839093E9008FEF9091FB -:10105000E800815095FD06C095ED9A95F1F70000E6 -:101060008111F5CF8091E80085FF0DC040E050E090 -:1010700063E070E0CE0101960E947F0A8091E80053 -:101080008E778093E8000F900F900F90DF91CF91B3 -:101090000895CF93DF9300D01F92CDB7DEB7209194 -:1010A000F101243021F522E029839B838A8383E0A8 -:1010B0008093E9008FEF9091E800815095FD06C084 -:1010C00095ED9A95F1F700008111F5CF8091E80038 -:1010D00085FF0DC040E050E063E070E0CE01019676 -:1010E0000E947F0A8091E8008E778093E8000F903D -:1010F0000F900F90DF91CF9108952091F10124304E -:10110000F1F422E02093E9002FEF3091E800215024 -:1011100035FD06C035ED3A95F1F700002111F5CF08 -:101120002091E80025FF0BC040E050E065E070E052 -:101130000E947F0A8091E8008E778093E8000895EE -:10114000CF93DF93EC019091F101943009F046C008 -:1011500080910C018823D9F080910D018823B9F08A -:101160009093E9008FEF9091E800815095FD06C0C3 -:1011700095E19A95F1F700008111F5CF8091E80093 -:1011800085FF2CC040E050E060E170E017C081E0D6 -:101190008093E9008FEF9091E800815095FD06C0A3 -:1011A00095ED9A95F1F700008111F5CF8091E80057 -:1011B00085FF14C040E050E068E070E0CE010E947E -:1011C0007F0A8091E8008E778093E80080E1FE013D -:1011D000AEE5B1E001900D928A95E1F7DF91CF91F4 -:1011E00008958091F001811109C00E94140C0E94A1 -:1011F000710C8091E20084608093E2000895109267 -:10120000F001089508950C9408210E94691A0E9423 -:101210000E210E94170F0C94100842E061EC81E04F -:101220000E948E0B42E061EC82E00E948E0B42E055 -:1012300061EC83E00E948E0B42E161EC84E00C944F -:101240008E0B8091F301833009F455C030F4813066 -:1012500071F0823009F48EC008958A3009F47AC0A2 -:101260008B3009F460C0893009F09CC020C08091A7 -:10127000F201813A09F096C08091E800877F80935F -:10128000E8008091F6019091F701892B21F460E14B -:101290008EE591E003C060E080E090E070E00E94A5 -:1012A000CA0A8091E8008B778093E80008958091C6 -:1012B000F201813209F076C08091F6019091F70138 -:1012C000009719F0039709F06DC08091E800877FBF -:1012D0008093E8008091E80082FD05C08091F101D3 -:1012E0008111F8CF5FC08091F10080936E018091F1 -:1012F000E8008B7753C08091F201813A09F052C027 -:101300008091F6019091F701892B09F04BC08091F3 -:10131000E800877F8093E8008091E80080FFFCCFA1 -:1013200080910C0136C08091F2018132D9F5809113 -:10133000F6019091F701892BA9F58091E800877F4C -:101340008093E8000E94C30B8091F40180930C010C -:101350000C94B0138091F201813221F58091E80064 -:10136000877F8093E8000E94C30B8091F5018093F2 -:101370006F0108958091F201813AA1F48091E80013 -:10138000877F8093E8008091E80080FFFCCF809108 -:101390006F018093F1008091E8008E778093E800E0 -:1013A0000C94C30B089584B7877F84BF88E10FB680 -:1013B000F89480936000109260000FBE90E080E887 -:1013C0000FB6F89480936100909361000FBE0E9465 -:1013D000660F0E94140C0E94710C8091E2008460E0 -:1013E0008093E20078940E94F70E0E94680F82E0DA -:1013F00091E00E94120F0E94F6208091F101853049 -:1014000069F40E94301A8091EF018823B1F30E94A1 -:101410005B1A882391F30E94690AEFCF0E946E0F36 -:10142000ECCF292F332723303105C9F064F4213064 -:10143000310581F02230310509F043C08DE690E09E -:1014400026EE31E042C021323105F1F02232310581 -:1014500041F137C082E190E023E532E036C09927C0 -:101460008130910541F08230910541F0892B49F599 -:10147000E2EEF1E005C0EAECF1E002C0E2EBF1E0FF -:10148000849190E09F0121C06430D8F4E62FF0E011 -:10149000EE0FFF1FEE5DFE4F2081318189E090E06D -:1014A00014C0643070F470E0FB01EE0FFF1FE65EC5 -:1014B000FE4F20813181FB01EA5EFE4F808190E08A -:1014C00004C080E090E020E030E0FA013183208326 -:1014D000089580E189BD82E189BD09B400FEFDCF98 -:1014E0008091D8008F7D8093D8008091E000826049 -:1014F0008093E0008091E00081FDFCCF0895CF92C1 -:10150000DF92EF92FF920F931F93CF93DF93EC0143 -:101510008B016A010E94E20B811133C0C114D10416 -:1015200039F0F60180819181081B190BC80FD91F72 -:10153000E12CF12C0115110519F18091E80085FDD0 -:1015400016C08091E8008E778093E800C114D10422 -:1015500049F0F60180819181E80EF91EF182E08266 -:1015600085E00FC00E94E20B882321F30AC0899115 -:101570008093F10001501109FFEFEF1AFF0ADACF53 -:1015800080E0DF91CF911F910F91FF90EF90DF905E -:10159000CF9008952091F8013091F901261737076F -:1015A00048F06115710539F42091E8002E772093F9 -:1015B000E80001C0B90140E061157105A9F1209171 -:1015C000F101222309F443C0253009F442C02091DF -:1015D000E80023FD40C02091E80022FD32C02091A8 -:1015E000E80020FFE9CF4091F3002091F20030E0C5 -:1015F000342BFC01CF016115710559F028303105FC -:1016000040F481918093F100615071092F5F3F4F49 -:10161000F1CF41E02830310509F040E02091E800A9 -:101620002E772093E800C8CF4111C9CF0AC080911E -:10163000F101882361F0853061F08091E80083FD3D -:101640000AC08091E80082FFF2CF80E0089582E036 -:10165000089583E0089581E008952091F801309184 -:10166000F9012617370748F06115710539F4209103 -:10167000E8002E772093E80001C0B901FC0120E0CA -:101680006115710591F18091F101882309F440C041 -:10169000853009F43FC08091E80083FD3DC0809112 -:1016A000E80082FD2FC08091E80080FFE9CF209103 -:1016B000F3008091F20090E0922B6115710559F0D2 -:1016C0008830910540F424912093F10031966150C7 -:1016D00071090196F2CF21E0089709F020E080918E -:1016E000E8008E778093E800CBCF2111CCCF0AC0E1 -:1016F0008091F101882361F0853061F08091E800EC -:1017000083FD0AC08091E80082FFF2CF80E0089557 -:1017100082E0089583E0089581E00895982F97303E -:1017200058F59093E900981739F07091EC002091EA -:10173000ED005091F00003C0242F762F50E021FFE0 -:1017400019C03091EB003E7F3093EB003091ED00FB -:101750003D7F3093ED003091EB0031603093EB0032 -:101760007093EC002093ED005093F0002091EE0078 -:1017700027FF07C09F5FD3CF8F708093E90081E080 -:10178000089580E008958091F20187FF11C0809153 -:10179000E80082FD05C08091F1018111F8CF11C0F0 -:1017A0008091E8008B770BC08091F101882349F08C -:1017B0008091E80080FFF8CF8091E8008E778093D9 -:1017C000E80008952091E4003091E50095E640910D -:1017D000EC00842F817040FF22C08091E80080FDE2 -:1017E0001CC08091F101882391F0853091F08091A7 -:1017F000EB0085FD10C04091E4005091E5004217D8 -:10180000530729F39A01915011F784E0089582E07B -:10181000089583E0089581E0089580E0089540915F -:10182000E80042FFDECF08950E94820C0E948A0CDD -:10183000E0EEF0E0808181608083E8EDF0E080817F -:101840008F77808319BCA7EDB0E08C918E7F8C934D -:1018500080818F7E80831092F00108950F931F93F3 -:10186000CF93DF930E94820C0E948A0CC8EDD0E0D7 -:1018700088818F77888388818068888388818F7D3D -:10188000888319BC1092F1011092ED011092EF01C2 -:101890001092EE0100EE10E0F80180818B7F8083D2 -:1018A00088818160888342E060E080E00E948E0B46 -:1018B000E1EEF0E080818E7F8083E2EEF0E08081D7 -:1018C00081608083808188608083F80180818E7F41 -:1018D0008083888180618883DF91CF911F910F91F0 -:1018E0000895E8EDF0E080818F7E8083E7EDF0E001 -:1018F00080818160808384E082BF81E08093F001F9 -:101900000C942E0CE8EDF0E080818E7F80831092A5 -:10191000E20008951092DA001092E10008951F92FB -:101920000F920FB60F9211242F933F934F935F9313 -:101930006F937F938F939F93AF93BF93EF93FF9397 -:101940008091E10082FF0BC08091E20082FF07C01E -:101950008091E1008B7F8093E1000E94F60E8091E0 -:10196000DA0080FF1FC08091D80080FF1BC08091EB -:10197000DA008E7F8093DA008091D90080FF0DC05D -:1019800080E189BD82E189BD09B400FEFDCF81E01F -:101990008093F1010E94F10805C019BC1092F10179 -:1019A0000E94FF088091E10080FF19C08091E20051 -:1019B00080FF15C08091E2008E7F8093E2008091CD -:1019C000E20080618093E2008091D8008062809381 -:1019D000D80019BC85E08093F1010E940309809131 -:1019E000E10084FF30C08091E20084FF2CC080E1E0 -:1019F00089BD82E189BD09B400FEFDCF8091D80088 -:101A00008F7D8093D8008091E1008F7E8093E100EC -:101A10008091E2008F7E8093E2008091E2008160FD -:101A20008093E2008091ED01882311F084E007C0EB -:101A30008091E30087FD02C081E001C083E08093D4 -:101A4000F1010E9405098091E10083FF29C0809186 -:101A5000E20083FF25C08091E100877F8093E10051 -:101A600082E08093F1011092ED018091E1008E7F80 -:101A70008093E1008091E2008E7F8093E20080916C -:101A8000E20080618093E20042E060E080E00E943A -:101A90008E0B8091F00088608093F0000E94020914 -:101AA000FF91EF91BF91AF919F918F917F916F9136 -:101AB0005F914F913F912F910F900FBE0F901F900C -:101AC00018951F920F920FB60F9211242F933F93E8 -:101AD0004F935F936F937F938F939F93AF93BF9336 -:101AE000CF93DF93EF93FF93C091E900CF70809184 -:101AF000EC00D82FD17080FDD0E81092E9008091E1 -:101B0000F000877F8093F00078940E94A50D1092DA -:101B1000E9008091F00088608093F000CD2BCF70B9 -:101B2000C093E900FF91EF91DF91CF91BF91AF9109 -:101B30009F918F917F916F915F914F913F912F91E5 -:101B40000F900FBE0F901F9018951F93CF93DF93A8 -:101B5000CDB7DEB7AA970FB6F894DEBF0FBECDBFE4 -:101B6000E2EFF1E088E08E0F9091F10091938E13F7 -:101B7000FBCF0E9421098091E80083FF1FC1809163 -:101B8000F2019091F301492F50E04A30510508F0DD -:101B900015C1FA01EA5AFF4F0C949022803881F067 -:101BA000823809F00BC18091F6018F708093E900B3 -:101BB0008091EB0085FB882780F91092E90006C030 -:101BC0008091EE019091EF01911182609091E80077 -:101BD000977F9093E8008093F1001092F100C8C0C5 -:101BE000282F2D7F09F0EAC0882319F0823061F098 -:101BF000E5C08091F401813009F0E0C0933009F034 -:101C000080E08093EF012BC08091F401811127C007 -:101C10008091F6018F7009F4D1C08093E900209182 -:101C2000EB0020FF1CC0933021F48091EB00806218 -:101C300014C09091EB0090619093EB0021E030E0B4 -:101C4000A90102C0440F551F8A95E2F74093EA00AC -:101C50001092EA008091EB0088608093EB00109274 -:101C6000E9008091E800877F86C08111A7C01091AC -:101C7000F4011F778091E3008078812B8093E3004B -:101C80008091E800877F8093E8000E94C30B8091D9 -:101C9000E80080FFFCCF8091E30080688093E30040 -:101CA000111102C082E001C083E08093F10186C07F -:101CB0008058823008F082C08091F4019091F50143 -:101CC0008C3D53E0950779F583E08A838AE2898326 -:101CD0004FB7F894DE01139620E03EE051E2E32F87 -:101CE000F0E050935700E49120FF03C0E295EF70BD -:101CF0003F5FEF708E2F90E0EA3010F0C79601C082 -:101D0000C0968D939D932F5F243149F74FBF8091EB -:101D1000E800877F8093E8006AE270E0CE010196D8 -:101D20000E94CA0A14C0AE014F5F5F4F6091F60176 -:101D30000E94110ABC01009709F440C09091E8008C -:101D4000977F9093E80089819A810E942D0B809162 -:101D5000E8008B778093E80031C0803879F5809176 -:101D6000E800877F8093E8008091ED018093F10087 -:101D70008091E8008E778093E8000E94C30B1EC01C -:101D800081111CC09091F4019230C0F48091E80060 -:101D9000877F8093E8009093ED010E94C30B8091B0 -:101DA000ED01811106C08091E30087FD02C081E052 -:101DB00001C084E08093F1010E940D098091E80048 -:101DC00083FF0AC08091E800877F8093E8008091BC -:101DD000EB0080628093EB00AA960FB6F894DEBF0A -:101DE0000FBECDBFDF91CF911F9108950895CF937E -:101DF0008091F1018823A1F0C091E900CF7090910A -:101E0000EC00892F817090FD80E8C82B1092E900CA -:101E10008091E80083FD0E94A50DCF70C093E9007A -:101E2000CF91089590937501809374010895E09186 -:101E30007401F0917501309721F00190F081E02D4F -:101E4000099480E00895E0917401F0917501309754 -:101E500021F00280F381E02D09940895E09174014E -:101E6000F0917501309721F00480F581E02D0994FF -:101E7000089520917201309173018217930771F0D8 -:101E80009093730180937201E0917401F091750158 -:101E9000309721F00680F781E02D09940895209174 -:101EA0007001309171018217930771F09093710165 -:101EB00080937001E0917401F0917501309721F0E9 -:101EC0000084F185E02D0994089508950C94650F20 -:101ED0000E946F1A0E9489020C94311B9F92AF924C -:101EE000BF92CF92DF92EF92FF920F931F93CF9307 -:101EF000DF9300D000D000D0CDB7DEB70E94A102A2 -:101F00000DE010E0AA24A394B12C902E802F0E9403 -:101F10008F03980129583E4F6901F901F080F82696 -:101F2000A1F40150110988F78FEF89838A831B82FE -:101F30000E94781A8160782F9D838C8349815A8111 -:101F40006B818D810E9405102FC09091DA0191FF65 -:101F500004C08E830E9495038E8125E030E0A501A8 -:101F6000022E01C0440F0A94EAF7E42E4F21C1F07B -:101F700029839A828E2191E009F490E09B830E944C -:101F8000781A8160782F9D838C8349815A816B8177 -:101F90008D810E940510F6018081E826E08204C050 -:101FA00021503109E0F6BDCF0E94181E1091760134 -:101FB0000E94170F1817B9F00E94170F809376012F -:101FC00026960FB6F894DEBF0FBECDBFDF91CF913E -:101FD0001F910F91FF90EF90DF90CF90BF90AF9047 -:101FE0009F900C94100826960FB6F894DEBF0FBE93 -:101FF000CDBFDF91CF911F910F91FF90EF90DF90B8 -:10200000CF90BF90AF909F900895CF93DF93CDB7BF -:10201000DEB72B970FB6F894DEBF0FBECDBF4F8350 -:10202000588769877A878B87DE01119686E0FD01E4 -:1020300011928A95E9F785E0FE01379601900D929D -:102040008A95E1F749815A816B817C818D819E81DE -:102050000E944E162B960FB6F894DEBF0FBECDBF72 -:10206000DF91CF910895CF93882309F4C2C0C82F80 -:10207000823859F40E94170F81FDBBC089E30E948A -:1020800028190E94F51989E30CC0833879F40E945D -:10209000170F80FDAEC083E50E9428190E94F51934 -:1020A00083E50E946A19CF910C94F519843859F48C -:1020B0000E94170F82FD9DC087E40E9428190E948C -:1020C000F51987E4EECF8CEF8C0F813A48F48C2F12 -:1020D0000E945B2081118DC08C2F0E942819E3CFB4 -:1020E00080E28C0F883048F4C77081E001C0880F0F -:1020F000CA95EAF70E94AE19D6CF8BE58C0F8330D4 -:1021000078F4C53A29F0C63A31F083E890E005C08A -:1021100081E890E002C082E890E0CF910C94390F02 -:1021200088E58C0F833108F064C0C83A39F1C93AA8 -:1021300041F1CA3A49F1CB3A51F1CC3A59F1CD3A91 -:1021400061F1C03B69F1CE3A71F1CF3A79F1C13B0F -:1021500081F1C23B89F1C33B91F1C43B99F1C53B8D -:10216000A1F1C63BA9F1C73BB1F1C83BB9F1C93BED -:10217000C1F1CA3BC9F180E090E038C082EE90E046 -:1021800035C089EE90E032C08AEE90E02FC085EB3A -:1021900090E02CC086EB90E029C087EB90E026C051 -:1021A0008CEC90E023C08DEC90E020C083E891E0BF -:1021B0001DC08AE891E01AC082E991E017C084E965 -:1021C00091E014C081E292E011C083E292E00EC07F -:1021D00084E292E00BC085E292E008C086E292E0E1 -:1021E00005C087E292E002C08AE292E0CF910C94AF -:1021F0004F0FCF910895882309F44BC0823859F4CA -:102200000E94170F81FF45C089E30E9428190E9490 -:10221000F51989E30CC0833871F40E94170F80FF11 -:1022200038C083E50E9428190E94F51983E50E94B1 -:102230006A190C94F519843859F40E94170F82FF1B -:1022400028C087E40E9428190E94F51987E4EFCF7F -:102250009CEF980F913A58F390E2980F983050F411 -:10226000877091E001C0990F8A95EAF7892F0E9443 -:10227000B419DFCF9BE5980F933020F480E090E015 -:102280000C94390F885A833120F480E090E00C944C -:102290004F0F0895882321F00E94AE190C94F51970 -:1022A0000895882321F00E94B4190C94F51908951B -:1022B0007F928F929F92AF92BF92CF92DF92EF92D6 -:1022C000FF920F931F93CF93DF931F92CDB7DEB78B -:1022D0007C01C62E772EFC01058102950F701281BC -:1022E00011110E94CB190E942119882379F0112322 -:1022F00069F080E28C0D883048F082E00E940A1973 -:102300000E94211991E0D82ED92601C0D12CE72DA9 -:10231000E295EF70F0E0E05AFF4F0C949022872D89 -:10232000807F072D0F70882311F00295007F112305 -:1023300089F0002309F490C180E28C0D883020F4EC -:10234000802F0E94AE1903C0802F0E94BE190E94E8 -:10235000F51982C18C2D0E94FB10002309F495C150 -:1023600080E28C0D883020F4802F0E94B41903C0C5 -:10237000802F0E94C4190E94F51987C1972D907F64 -:10238000872D8F70903211F08295807FCC2021F0C4 -:10239000F1E0CF16B1F01EC0112349F0002309F47B -:1023A00014C1013009F011C10E94DE196EC1002371 -:1023B00019F0013009F469C189830E94E11989810A -:1023C0000AC1112321F0023008F05FC1FEC00111E3 -:1023D0005CC101C1112321F0002309F4F6C03CC106 -:1023E000002309F4F8C03EC1872D86958695837039 -:1023F00090E0009719F0019761F047C1112321F097 -:102400008C2D972D937002C080E090E00E94390FD0 -:102410003CC1112321F08C2D972D937002C080E0D8 -:1024200090E00E944F0F31C18C2D112319F00E94B2 -:10243000201D02C00E94881D0E940D1E26C1872DEE -:10244000837009F052C0111120C18C2D82958695A0 -:102450008770880F880F9C2D9F70892E912CA12C3E -:10246000B12C082E04C0880C991CAA1CBB1C0A9411 -:10247000D2F7C4FE14C00FE010E020E030E0B90154 -:10248000A80104C0440F551F661F771F8A95D2F715 -:10249000CB01BA01609570958095909503C060E07E -:1024A00070E0CB01272D26952695237030E0223051 -:1024B000310569F02330310589F0682979298A29A5 -:1024C0009B292130310571F00E949617DEC06829E2 -:1024D00079298A299B290E94B217D7C00E94961792 -:1024E000C501B4010E947A17D0C0112319F0872DBD -:1024F000817001C08695882309F4C7C08C2D829510 -:1025000086958770880F880F9C2D9F70892E912C3F -:10251000A12CB12C082E04C0880C991CAA1CBB1C31 -:102520000A94D2F7C4FE14C00FE010E020E030E0BF -:10253000B901A80104C0440F551F661F771F8A9573 -:10254000D2F7CB01BA01609570958095909503C044 -:1025500060E070E0CB01272D269526952370422F51 -:1025600050E04230510569F04330510589F0682947 -:1025700079298A299B294130510571F00E947018F0 -:1025800084C0682979298A299B290E948C187DC0DA -:102590000E947018C501B4010E94541876C08C2D99 -:1025A00090E0FC01E05EF109E531F10508F050C072 -:1025B000E059FF4F0C9490220C2D0F70872D8F71D6 -:1025C000112331F00E94ED17802F0E944A115DC047 -:1025D0000E940E18802F0E94511157C0112339F00C -:1025E000011153C0872D8F710E9433184EC00230E5 -:1025F00008F04BC0F7CF112339F0872D8F710E945F -:10260000ED1743C01123C9F3872D8F710E940E1857 -:102610003CC0112329F0872D8F710E94D81735C037 -:102620000E94CE1732C0112351F0172D1F71812F38 -:102630000E94ED1763E0812F0E94011926C081E0FE -:102640000E940A19023008F182E00E940A191DC096 -:10265000112331F0002389F28C2D0E94331015C014 -:10266000002391F28C2D0E94FB100FC0472D4F705C -:102670006C2DC7010E946B040E94F21606C0472D04 -:102680004F706C2DC7010E941F05DD20F9F00E94DC -:10269000FD1880FD1BC0F70112820E94F7180E94EE -:1026A000ED17C7010E9475130E94F7180F90DF9174 -:1026B000CF911F910F91FF90EF90DF90CF90BF903F -:1026C000AF909F908F907F900C940E180F90DF9199 -:1026D000CF911F910F91FF90EF90DF90CF90BF901F -:1026E000AF909F908F907F9008950F931F93CF93FB -:1026F000DF93EC01888199812B813C81232BB9F0F8 -:102700009F3F11F48F3F99F0CE010E9477048823F8 -:1027100071F0688179818A810E94F3188C010E948E -:10272000A8180E946F17B801CE010E945811DF91BE -:10273000CF911F910F9108950E94CB190E94DB1930 -:102740000E94A0190E94F5190E94BE1E0E940D1E33 -:1027500080E090E00E94390F80E090E00C944F0FF1 -:102760000E94BB190C949C130E94E818292F2295F3 -:102770002F7030E02C3031054CF42A3031056CF4E8 -:102780002250310922303105A8F407C02C30310520 -:1027900069F02F30310551F00DC0803F69F018F419 -:1027A000803E40F409C0843F29F406C093FB88278B -:1027B00080F9089580E0089581E00895CF93DF9334 -:1027C00000D000D01F92CDB7DEB70F900F900F90C2 -:1027D0000F900F90DF91CF910895CF93DF9300D0AA -:1027E00000D000D0CDB7DEB726960FB6F894DEBF86 -:1027F0000FBECDBFDF91CF9108951F93CF93DF938D -:10280000C091850116E080918601C81799F0D0E04B -:102810001C9FF0011D9FF00D1124E957FE4F4081D0 -:10282000518162817381848195810E94ED1321968B -:10283000C770E9CFDF91CF911F9108954091B70103 -:102840005091B8016091B9017091BA018091BB01BA -:102850009091BC010C94ED138091BC0182958F7016 -:1028600009F054C08091B901882309F44FC08091C8 -:102870008501A09186016091B7017091B8014091E6 -:10288000BA015091BB01B6E08A1709F43FC090E04D -:1028900041155105C1F17F3F11F46F3FA1F1B89F80 -:1028A000F001B99FF00D1124E957FE4F21817213F9 -:1028B0002AC02081621327C02281211124C02381D4 -:1028C00034812417350710F421503109241B350BAE -:1028D000283C3105C0F42091BC012F702061209369 -:1028E000BC0126E0289FF001299FF00D1124E45738 -:1028F000FE4F80818F708061808387EB91E00E9422 -:1029000075130C94FD1301968770BECF0895CF9276 -:10291000DF92EF92FF920F931F93CF93DF93CDB788 -:10292000DEB762970FB6F894DEBF0FBECDBF8C0145 -:1029300085E0F801DE011D9601900D928A95E1F780 -:10294000D8014C9111965C91119712966C91129747 -:102950001396CD90DC9014973091B7017091B80127 -:102960008091BA019091BB01009709F46BC17F3F40 -:1029700019F43F3F09F466C1E090B901EE2009F473 -:10298000C0C02091BC01C816D90628F0F601E81B8A -:10299000F90BCF0104C0809590958C0D9D1DFF24EF -:1029A000F394883C910578F0F12C207F09F0C6C0A3 -:1029B0007C2DD98AC88A89890E94DE1387EB91E031 -:1029C0000E947513B1C0822F807F09F046C0751335 -:1029D00014C0341312C0611110C02F7020612093F5 -:1029E000BC010E941E1487EB91E00E947513809138 -:1029F000BC01D80115968C932EC0CD2819F15F3FEC -:102A000011F44F3FF9F0F62E61111CC08091850141 -:102A10002091860136E0821709F45AC090E0389F71 -:102A2000F001399FF00D1124E957FE4F71815713C2 -:102A300006C07081471303C07281711103C00196F3 -:102A40008770E9CFF62E662309F418C18091BC0186 -:102A500081608093BC01F12C11C1751308C034133F -:102A600006C0611104C08091BC01D801C3C04D876C -:102A70005E878D859E856A8B0E94B4136A89882340 -:102A8000E1F16623D1F12091BC01822F82958F70F4 -:102A900090E0029774F08091B7019091B801988707 -:102AA0008F831986DB86CA862C87CE0107960E9403 -:102AB000751386E0F801A7EBB1E001900D928A95BD -:102AC000E1F70E942C140E941E14FF24F394D6C038 -:102AD0004D875E878D859E850E94E818292F229557 -:102AE0002F7030E0223031050CF0BCC09F7009F02F -:102AF000B6C0805E883008F4C1C0C8010E9475135A -:102B0000E4CFC816D90608F453C0F601E81BF90B48 -:102B1000CF01883C910508F450C0F12C7C2DD98A56 -:102B2000C88A89890E94DE13E7EBF1E086E0DF01C5 -:102B30001D928A95E9F70E941E14A0C0751314C057 -:102B4000341312C0611110C08091BC01F80185835B -:102B5000C8010E94751386E0E7EBF1E0DF011D92EA -:102B60008A95E9F7FE2C8AC04D875E878D859E8504 -:102B70006A8B0E94B4136A89882309F4BECF662346 -:102B800009F4BBCF2091BC01822F82958F7090E019 -:102B900002970CF48ECF8091B7019091B8019A837F -:102BA00089831B82DD82CC822E83CE0101967FCF6A -:102BB000809590958C0D9D1DACCFF62E662309F463 -:102BC0009CCF75132EC034132CC02091BC0120FD66 -:102BD0001FC0822F82958F70D9F0D80115962C9343 -:102BE00015978F3049F08F5F982F9295907F822FA5 -:102BF0008F70892B15968C93C8010E94751386E0FF -:102C0000F801A7EBB1E001900D928A95E1F793CF1F -:102C100086E0F801A7EBB1E001900D928A95E1F70B -:102C20002DC04D875E878D859E850E94B4138111CE -:102C300040CF8091BC0181608093BC01C8010E949B -:102C400075131CC0662309F458CF4D875E878D85A8 -:102C50009E850E94B413882309F44FCF2ACF811197 -:102C600048CF0CC0243031050CF047CF9F7009F4D9 -:102C700040CFF8019581907F09F03BCF8F2D629670 -:102C80000FB6F894DEBF0FBECDBFDF91CF911F917D -:102C90000F91FF90EF90DF90CF9008951F93CF9307 -:102CA000DF93CDB7DEB72C970FB6F894DEBF0FBE1B -:102CB000CDBF4F83588769877A878B879C87CE01E2 -:102CC00007960E948714882369F08F8198852A854A -:102CD0003B85232BF1F19F3F09F063C08F3F09F043 -:102CE00060C037C086E0FE013796DE011196019084 -:102CF0000D928A95E1F76F817885EA85FB8530979B -:102D000041F17F3F11F46F3F21F12091860130E0C6 -:102D1000C9010196877099274091850150E0841779 -:102D2000950709F447C069837A83FD83EC8396E0B5 -:102D3000929FD001939FB00D1124A957BE4FFE0161 -:102D4000319601900D929A95E1F7809386010E9449 -:102D5000FD1316E080918501909186018917C1F1DC -:102D6000189FC001112489579E4F0E948714882301 -:102D700079F1E09185011E9FF0011124E957FE4F82 -:102D80004081518162817381848195810E94ED131C -:102D90008091850190E00196877099278093850145 -:102DA000D9CF4F81588569857A858B859C850E940E -:102DB000ED13CFCF0E94B0131092860110928501BF -:102DC000E7EBF1E086E0DF011D928A95E9F7C1CFDC -:102DD0002C960FB6F894DEBF0FBECDBFDF91CF911A -:102DE0001F910895EF92FF920F931F93CF93DF935C -:102DF0008C01009709F46CC0F12CEE24E394E801F7 -:102E00002196F8018491843740F4843008F051C051 -:102E1000813081F0823019F15BC0853709F444C0FC -:102E2000A8F19CE7980F903708F052C08F770E9466 -:102E3000FB1041C00E5F1F4FFE01C49180E28C0F5A -:102E4000883048F4C7708E2D01C0880FCA95EAF704 -:102E50000E94CE1914C08C2F0E9433102DC00E5F1B -:102E60001F4FFE01C49180E28C0F883058F4C77068 -:102E70008E2D01C0880FCA95EAF70E94D4190E94CE -:102E8000F5191AC08C2F0E94FB1016C00E5F1F4F41 -:102E9000FE01C491CC2381F08FE99FE00197F1F707 -:102EA00000C00000C150F6CF0E5F1F4FFE01F4902E -:102EB00003C00E9433108E018F2D882309F49FCF09 -:102EC000EFE9FFE03197F1F700C000008150F5CF46 -:102ED000DF91CF911F910F91FF90EF90089508958A -:102EE0006093C1017093C2018093C3019093C401A8 -:102EF0000C949C130F931F930091C1011091C20178 -:102F00002091C3013091C401DC01CB01802B912BB6 -:102F1000A22BB32B8093C1019093C201A093C30154 -:102F2000B093C4011F910F910C949C130F931F93A6 -:102F30000091C1011091C2012091C3013091C401DF -:102F4000DC01CB0180239123A223B3238093C10111 -:102F50009093C201A093C301B093C4011F910F913C -:102F60000C949C130F931F930091C1011091C20107 -:102F70002091C3013091C401DC01CB01802791274E -:102F8000A227B3278093C1019093C201A093C301EC -:102F9000B093C4011F910F910C949C131092BD012A -:102FA0001092BE011092BF011092C0010C949C13AC -:102FB00041E050E060E070E004C0440F551F661F20 -:102FC000771F8A95D2F74093BD015093BE0160935D -:102FD000BF017093C0010C949C1341E050E060E08D -:102FE00070E004C0440F551F661F771F8A95D2F703 -:102FF0008091BD019091BE01A091BF01B091C0012F -:10300000482B592B6A2B7B2B4093BD015093BE015B -:103010006093BF017093C0010C949C1341E050E099 -:1030200060E070E004C0440F551F661F771F8A954B -:10303000D2F740955095609570958091BD01909123 -:10304000BE01A091BF01B091C001482359236A235A -:103050007B234093BD015093BE016093BF017093E9 -:10306000C0010C949C1341E050E060E070E004C0AB -:10307000440F551F661F771F8A95D2F78091BD01B7 -:103080009091BE01A091BF01B091C001482759277E -:103090006A277B274093BD015093BE016093BF0117 -:1030A0007093C0010C949C130F931F930091BD016A -:1030B0001091BE012091BF013091C001DC01CB0114 -:1030C000802B912BA22BB32B8093BD019093BE013B -:1030D000A093BF01B093C0011F910F910C949C135A -:1030E0000F931F930091BD011091BE012091BF016C -:1030F0003091C001DC01CB0180239123A223B323B3 -:103100008093BD019093BE01A093BF01B093C00115 -:103110001F910F910C949C130F931F930091BD016D -:103120001091BE012091BF013091C001DC01CB01A3 -:1031300080279127A227B3278093BD019093BE01DA -:10314000A093BF01B093C0011F910F910C949C13E9 -:103150000895CF92DF92EF92FF920F931F93CF9338 -:10316000DF938C01C090C101D090C201E090C301F7 -:10317000F090C4018091BD019091BE01A091BF016A -:10318000B091C001C82AD92AEA2AFB2ACFE1D0E0AF -:10319000D701C6010C2E04C0B695A79597958795C3 -:1031A0000A94D2F780FF06C0B8018C2F0E947507E1 -:1031B000019721F4219760F780E001C08C2FDF9107 -:1031C000CF911F910F91FF90EF90DF90CF900895D6 -:1031D000CF93DF93EC010E94A918BE010E947507EE -:1031E000DF91CF910895CB010E94E8180895809156 -:1031F000C50185958595859508958091C501877050 -:10320000089598E0899F90011124262B2093C501F1 -:103210000C94ED172091C501809582238093C50100 -:10322000982F977069F430E0482F552747FD509547 -:103230002417350729F08595859585950C940E18EA -:1032400008959091C501977081E009F480E0089598 -:1032500090910C01992321F090910D01911109C0D9 -:1032600020910E0130910F01F90132969FEF40E05D -:103270001FC0982F9695969596959F3050F5E091A2 -:103280000E01F0910F01E90FF11D877021E030E090 -:10329000A90102C0440F551F8A95E2F7CA01918126 -:1032A000892B818308959F3F39F04F5F4E3041F065 -:1032B00051915813F8CF0DC05111F7CF942FF5CF7E -:1032C0009F3F39F0F901E90FF11D97FDFA958283CF -:1032D0000895089590910C01992321F090910D018A -:1032E000911109C020910E0130910F01F901329620 -:1032F000205F3F4F1FC0982F9695969596959F30CB -:10330000F0F4E0910E01F0910F01E90FF11D8770CB -:1033100021E030E0A90102C0440F551F8A95E2F771 -:10332000CA01809591818923818308953196E2179E -:10333000F30729F090819813F9CF1082F7CF089501 -:1033400081E090E0E0910E01F0910F01E80FF91F8C -:103350001082019680319105A9F708959091D901C5 -:10336000892B8093D901089580959091D901892363 -:103370008093D90108951092D90108959091D801B0 -:10338000892B8093D801089580959091D801892345 -:103390008093D80108951092D80108959091D70193 -:1033A000892B8093D701089580959091D701892327 -:1033B0008093D70108951092D70108958093C60194 -:1033C00008951092C601089580910E0190910F0109 -:1033D000FC0131969C01205F3F4F80E0919191115B -:1033E0008F5FE217F307D1F70895E0910E01F09196 -:1033F0000F018091D9018083E0910E01F0910F01BE -:1034000090818091D801892B8083E0910E01F09109 -:103410000F0190818091D701892B80838091C60113 -:10342000882361F0E0910E01F0910F019081892BCA -:1034300080830E94E41981111092C60180910E01CF -:1034400090910F010C94230F20E0009739F0AC010C -:1034500041505109842395232F5FF7CF822F089580 -:103460008091F101843021F11092DB0120E488E1A8 -:1034700090E00FB6F894A895809360000FBE20935B -:10348000600080E00E94100883B7817F846083BF62 -:1034900083B7816083BF7894889583B78E7F83BF1D -:1034A00088E10FB6F89480936000109260000FBE20 -:1034B0000895089508950E94591A0E94A1020E9439 -:1034C0005A1A0E94960391E0811101C090E0892F61 -:1034D00008950E94B0130E94170F0C94100882E008 -:1034E00084BD93E095BD9AEF97BD80936E000895DB -:1034F0002FB7F8948091DC019091DD01A091DE015D -:10350000B091DF012FBF0895CF92DF92EF92FF922B -:103510000F931F932FB7F8944091DC015091DD0178 -:103520006091DE017091DF012FBF6A017B01EE2403 -:10353000FF248C0120E030E0C016D106E206F3063D -:1035400010F4415051099A01281B390BC9011F91F0 -:103550000F91FF90EF90DF90CF9008951F920F9200 -:103560000FB60F9211248F939F93AF93BF938091C7 -:10357000DC019091DD01A091DE01B091DF010196A7 -:10358000A11DB11D8093DC019093DD01A093DE01AC -:10359000B093DF01BF91AF919F918F910F900FBEBC -:1035A0000F901F9018950E94140CF8942FEF87EA43 -:1035B00091E6215080409040E1F700C0000087E094 -:1035C00090EBDC018093FB019093FC01A093FD0143 -:1035D000B093FE019CE088E10FB6F894A895809323 -:1035E00060000FBE90936000FFCFEF92FF920F93A9 -:1035F0001F93CF93DF93D82FCDE08C2F0E948F03A2 -:1036000005E010E0E82EF12CC701002E02C09595D0 -:1036100087950A94E2F780FF09C0602F7C2F80E035 -:103620000E942005D81302C081E006C00150110994 -:1036300058F7C15010F780E0DF91CF911F910F91A3 -:10364000FF90EF900895CF93C82F8CE20E94F51A57 -:10365000882321F08C2FCF910C94F51A80E0CF9124 -:103660000895CF930E94781C811102C00E945E1CB5 -:10367000C5E6C15049F00E94A1028FE39CE9019781 -:10368000F1F700C00000F5CF89E20E94231B8111F1 -:1036900013C18AE20E94231B81110E945E1C85E0F7 -:1036A0000E94231B81110E94D31A0E94831C8093C5 -:1036B000DA0187E00E94231B8823A9F18BE10E9495 -:1036C000231B882351F08091DA0181FB222720F906 -:1036D00091E0922790FB81F90EC08EE00E94231B9F -:1036E000882361F08091DA0182FB222720F991E0A2 -:1036F000922790FB82F98093DA0115C080E10E9445 -:10370000231B9091DA01882341F093FB222720F9B3 -:1037100081E0822780FB93F904C0892F809580FB8C -:1037200090F99093DA018091DA010E94871C0E943F -:10373000951C8093FA0180EE0E94231B882341F0A0 -:103740008091FA01982F909590FB80F98093FA016F -:1037500089E30E94231B882359F08091FA0181FBA1 -:10376000222720F991E0922790FB81F98093FA01BA -:1037700082EE0E94231B882359F08091FA0182FB7C -:10378000222720F991E0922790FB82F98093FA0199 -:1037900086EE0E94231B882359F08091FA0183FB57 -:1037A000222720F991E0922790FB83F98093FA0178 -:1037B00083EE0E94231B882359F08091FA0184FB39 -:1037C000222720F991E0922790FB84F98093FA0157 -:1037D00085E30E94231B882359F08091FA0185FB21 -:1037E000222720F991E0922790FB85F98093FA0136 -:1037F00081E30E94231B882359F08091FA0186FB04 -:10380000222720F991E0922790FB86F98093FA0114 -:1038100081E10E94231B882359F08091FA0187FBE4 -:10382000222720F991E0922790FB87F98093FA01F3 -:103830008091FA010E94991C8091FA0187FB8827E8 -:1038400080F980930D0187E20E94231BC82F8EE12F -:103850000E94231B8111C2608FE10E94231B8111F2 -:10386000C46080E20E94231B8111C86081E20E9433 -:10387000231B8111C06182E20E94231B8111C0625F -:1038800083E20E94231B8111C06484E20E94231BF7 -:10389000882311F0C06802C0CC2329F08C2F0E942D -:1038A000901C6C2F03C00E948C1C682F70E080E07D -:1038B00090E0CF910C947017CF9108956DEE7EEF4C -:1038C00080E090E00E94CA2260E082E090E00E94E6 -:1038D000B82260E083E090E00E94B82260E084E0DB -:1038E00090E00E94B82260E085E090E00C94B8225D -:1038F00080E090E00E94B22221E08D3E9E4F09F0D0 -:1039000020E0822F089582E090E00C94AA22682F94 -:1039100082E090E00C94B82283E090E00C94AA221C -:10392000682F83E090E00C94B82284E090E00C943F -:10393000AA22682F84E090E00C94B8228091E201E2 -:1039400080FF0BC06091130185E0689FB0011124D6 -:1039500075956795759567952BC081FF09C0609136 -:10396000130185E0689FB00111247595679520C00B -:1039700082FF07C06091130185E0689FB0011124A8 -:1039800017C09091E3019923D1F06091120196172D -:1039900088F72091130185E0289F90011124929FC0 -:1039A000A001939F500D112470E0CA010E947C2257 -:1039B0006038710540F46115710539F002C065E0A9 -:1039C00070E0862F08958FE7089581E00895809133 -:1039D000E20180FF08C06091110170E07595679564 -:1039E0007595679521C081FF06C06091110170E057 -:1039F0007595679519C082FF04C06091110170E050 -:103A000010C09091E3019923C1F0609110019617C5 -:103A1000A0F780911101899FC001112470E00E94DC -:103A20007C226038710528F46115710521F0862F1C -:103A300008958FE7089581E0089561E070E0F4CF84 -:103A4000803F21F40E949E1C819504C0813F29F48F -:103A50000E949E1C8093E6010895823F21F40E94FB -:103A60009E1C819504C0833F29F40E949E1C809374 -:103A7000E5010895893F19F40E94E71C05C08A3FBB -:103A800031F40E94E71C81958093E70108958B3FF4 -:103A900021F40E94E71C819504C08C3F29F40E9408 -:103AA000E71C8093E8010895843F21F48091E401AC -:103AB000816017C0853F21F48091E401826011C0CC -:103AC000863F21F48091E40184600BC0873F21F49C -:103AD0008091E401886005C0883F31F48091E40161 -:103AE00080618093E40108958D3F21F48091E2018B -:103AF00081600BC08E3F21F48091E201826005C09D -:103B00008F3F29F48091E20184608093E20108955F -:103B1000803F39F48091E60187FF6CC01092E60186 -:103B200069C0813F29F48091E6011816BCF362C098 -:103B30009091E501823F29F497FF5CC01092E50166 -:103B400059C0833F19F41916CCF354C0893F41F48E -:103B50008091E70118160CF04DC01092E7014AC0A1 -:103B60008A3F29F48091E70187FF44C0F6CF8B3F5D -:103B700039F48091E80187FF3DC01092E8013AC016 -:103B80008C3F29F48091E8011816BCF333C0843FC0 -:103B900021F48091E4018E7F17C0853F21F480914C -:103BA000E4018D7F11C0863F21F48091E4018B7F79 -:103BB0000BC0873F21F48091E401877F05C0883FD7 -:103BC00031F48091E4018F7E8093E40113C08D3F36 -:103BD00021F48091E2018E7F0BC08E3F21F4809111 -:103BE000E2018D7F05C08F3F29F48091E2018B7F38 -:103BF0008093E2018091E50181110EC08091E60180 -:103C000081110AC08091E701811106C08091E8010D -:103C1000811102C01092E301089584EE91E00E94A8 -:103C20002E0F0E94781A9093E1018093E00108958D -:103C30001F93CF93DF938091E0019091E1010E9467 -:103C4000841AAC019091E301992321F02091140191 -:103C500030E006C0209115018AE0289F90011124D0 -:103C60004217530708F486C08091E501C091E60130 -:103C7000D091E7011091E801811107C0C11176C010 -:103C8000D11174C0111172C075C09F3F19F09F5FB0 -:103C90009093E301181624F40E949E1C8093E50182 -:103CA0008091E50187FF05C00E949E1C819580934D -:103CB000E5011C1624F40E949E1C8093E60180916D -:103CC000E60187FF05C00E949E1C81958093E60156 -:103CD0006091E501662339F1C091E601CC2319F129 -:103CE000772767FD7095872F972F0E948D2123E3FB -:103CF00033E343E35FE30E94F1210E945A21609382 -:103D0000E5016C2F772767FD7095872F972F0E940D -:103D10008D2123E333E343E35FE30E94F1210E941B -:103D20005A216093E6011D1624F40E94E71C80933B -:103D3000E7018091E70187FF05C00E94E71C81959C -:103D40008093E701111624F40E94E71C8093E80198 -:103D50008091E80187FF05C00E94E71C8195809350 -:103D6000E801DF91CF911F910C940D1E9F3F09F048 -:103D70008ECF96CFDF91CF911F910895E4EEF1E0C1 -:103D800085E0DF011D928A95E9F71092E301109218 -:103D9000E2010895833081F128F4813059F08230B6 -:103DA000D1F00895853009F449C0B8F1863009F49E -:103DB00056C0089580911501262F30E0280F311D3F -:103DC0002F3F310524F4680F6093150108958FEF9C -:103DD00080931501089580911401262F30E0280F5B -:103DE000311D2F3F310524F4680F609314010895AD -:103DF0008FEF80931401089580911301262F30E0F6 -:103E0000280F311D2F3F310524F4680F60931301F3 -:103E100008958FEF80931301089580911201262F4A -:103E200030E0280F311D2F3F310524F4680F6093D7 -:103E3000120108958FEF809312010895809111016E -:103E4000262F30E0280F311D2F3F310524F4680F55 -:103E50006093110108958FEF80931101089580916F -:103E60001001262F30E0280F311D2F3F310524F49B -:103E7000680F6093100108958FEF809310010895EB -:103E8000833011F128F4813049F0823091F00895A7 -:103E9000853081F120F18630C1F1089580911501BE -:103EA000681720F4861B8093150108951092150160 -:103EB000089580911401681720F4861B80931401E3 -:103EC000089510921401089580911301681720F449 -:103ED000861B809313010895109213010895809119 -:103EE0001201681720F4861B809312010895109226 -:103EF0001201089580911101681720F4861B8093A8 -:103F00001101089510921101089580911001681710 -:103F100020F4861B809310010895109210010895DB -:103F20000F931F938D3109F46BC008F03FC08E30A2 -:103F300009F47FC0C0F4873009F469C068F48630A2 -:103F400009F0B1C08091DA01817F8E7F8093DA0120 -:103F500081E08093EA01A8C0883009F4A2C08B30C8 -:103F600009F49FC0A0C0863109F49BC078F4803169 -:103F700009F472C0813109F096C00E94B01390918B -:103F80000D0181E0892780930D018BC0893109F4EF -:103F900088C08B3109F087C08091DA0181FB22272C -:103FA00020F991E0922790FB81F94CC0853309F408 -:103FB00070C048F4873209F46CC008F459C08932E3 -:103FC00009F467C070C0833438F48A3308F04EC0F7 -:103FD000883309F466C067C0833409F45AC0883452 -:103FE00009F061C00E94B0130FEF13ED20E3015000 -:103FF00010402040E1F700C000000E94D31A51C0D9 -:104000000E9414210E94170F0E9410084AC090912C -:10401000DA01892F8095817080FB90F929F09660F4 -:1040200098609093DA0140C0997F977F9093DA016E -:1040300038C08091DA0182FB222720F991E0922793 -:1040400090FB82F98093DA01992359F18091DA018A -:1040500081608093DA0125C08091DA0183FB2227F9 -:1040600020F991E0922790FB83F9ECCF895301C0AE -:104070008D5141E050E060E070E08A019B0104C096 -:10408000000F111F221F331F8A95D2F7C901B801F3 -:1040900004C061E070E080E090E00E9470170E9430 -:1040A000B01381E001C080E01F910F91089580E07E -:1040B000089580E00895CF93C82F8091EA01813060 -:1040C00079F018F08230E9F187C0E0910E01F091AB -:1040D0000F018081813169F0823209F07FC009C00F -:1040E000E0910E01F0910F018081813111F0823257 -:1040F00061F48C2F0E945720811104C08C2F0E94E4 -:10410000901F1DC081E090E01AC08C2F0E945920A2 -:10411000811114C0C43179F048F4CB3079F0C0314A -:1041200009F060C082E08093EA0108C0C93219F04A -:10413000C83321F057C01092EA0154C081E0817069 -:1041400053C0C93289F118F5C43171F1A8F4C730F0 -:1041500009F046C08AE08093150194E19093140120 -:1041600093E0909313018093120188E080931101F2 -:1041700088E28093100134C0CE51C63088F5EC2F10 -:10418000F0E0E65DFE4F80818093E90129C0CE34E6 -:10419000E9F020F4CB3421F56AE013C0C13579F0A1 -:1041A000C235F1F461E00DC08091E901882319F076 -:1041B0001092E90115C081E08093EA0115C061E029 -:1041C00006C08091E9010E94CA1E0AC06AE080917F -:1041D000E9010E94401F04C01092EA0180E004C07F -:1041E00081E002C080E0ABCFCF910895E1E8F0E03C -:1041F0008081886080838081816080838FB7F8941C -:1042000093E09093890090ED909388008FBF08957C -:10421000EFE6F0E08081826080830895EFE6F0E0D1 -:1042200080818D7F80830895EFE6F0E0908182E0C9 -:104230008927808308951F920F920FB60F92112441 -:104240002F933F934F935F936F937F938F939F939E -:10425000AF93BF93EF93FF938091EB019091EC01AB -:1042600001969093EC018093EB01811103C082E0F1 -:104270000E941008E091EC01E695E695F0E0E05A26 -:10428000FC4FE4918091EB018E1303C080E00E940B -:104290001008FF91EF91BF91AF919F918F917F9106 -:1042A0006F915F914F913F912F910F900FBE0F90A3 -:1042B0001F90189504D06894B1118DC0089570D0E6 -:1042C00088F09F5790F0B92F9927B751A0F0D1F0FF -:1042D000660F771F881F991F1AF0BA95C9F712C089 -:1042E000B13081F077D0B1E0089574C0672F782F96 -:1042F0008827B85F39F0B93FCCF3869577956795F5 -:10430000B395D9F73EF490958095709561957F4F60 -:104310008F4F9F4F0895E89409C097FB3EF4909506 -:104320008095709561957F4F8F4F9F4F9923A9F08E -:10433000F92F96E9BB279395F6958795779567951D -:10434000B795F111F8CFFAF4BB0F11F460FF1BC061 -:104350006F5F7F4F8F4F9F4F16C0882311F096E9F4 -:1043600011C0772321F09EE8872F762F05C06623A2 -:1043700071F096E8862F70E060E02AF09A95660F5B -:10438000771F881FDAF7880F9695879597F9089514 -:1043900057FD9058440F551F59F05F3F71F04795F6 -:1043A000880F97FB991F61F09F3F79F087950895DB -:1043B000121613061406551FF2CF4695F1DF08C0FA -:1043C000161617061806991FF1CF86957105610517 -:1043D00008940895E894BB2766277727CB0197F9BF -:1043E00008950BD078C069D028F06ED018F09523CE -:1043F00009F05AC05FC01124EECFCADFA0F3959F29 -:10440000D1F3950F50E0551F629FF001729FBB27BB -:10441000F00DB11D639FAA27F00DB11DAA1F649F67 -:104420006627B00DA11D661F829F2227B00DA11D1A -:10443000621F739FB00DA11D621F839FA00D611DA0 -:10444000221F749F3327A00D611D231F849F600DC1 -:10445000211D822F762F6A2F11249F5750408AF0FA -:10446000E1F088234AF0EE0FFF1FBB1F661F771F86 -:10447000881F91505040A9F79E3F510570F014C01D -:10448000AACF5F3FECF3983EDCF38695779567956E -:10449000B795F795E7959F5FC1F7FE2B880F911DA4 -:1044A0009695879597F9089597F99F6780E870E04A -:1044B00060E008959FEF80EC089500240A9416169A -:1044C000170618060906089500240A941216130602 -:1044D000140605060895092E0394000C11F4882390 -:1044E00052F0BB0F40F4BF2B11F460FF04C06F5FAC -:1044F0007F4F8F4F9F4F089597FB072E16F4009420 -:1045000007D077FD09D00E94962207FC05D03EF423 -:10451000909581959F4F0895709561957F4F08956F -:10452000EE0FFF1F0590F491E02D0994AA1BBB1B11 -:1045300051E107C0AA1FBB1FA617B70710F0A61BA3 -:10454000B70B881F991F5A95A9F780959095BC01C4 -:10455000CD010895F999FECF92BD81BDF89A9927B2 -:1045600080B50895A8E1B0E042E050E00C94D2227A -:10457000262FF999FECF92BD81BDF89A019700B41C -:10458000021639F01FBA20BD0FB6F894FA9AF99ABC -:104590000FBE08950196272F0E94B9220C94B822CD -:1045A000DC01CB01FC01F999FECF06C0F2BDE1BDF3 -:1045B000F89A319600B40D9241505040B8F70895E2 -:0445C000F894FFCF9D -:1045C40002201208A0087D08490815080101C70146 -:1045D40028080A03140A3F4D36392103D4029E02E7 -:1045E4006502F80111022A024302010203040506CE -:0445F40007080900AB -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/supercoder/readme.md b/keyboards/ergodox_ez/keymaps/supercoder/readme.md new file mode 100644 index 000000000..97bf7f583 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/supercoder/readme.md @@ -0,0 +1,29 @@ +SuperCoder 2000 layout for the ErgoDox +================================================== + +![SuperCoder 2000](images/supercoder_2000.jpg) + +Ever found yourself in need of entering binary codes rapidly? Ever wanted to use +all ten fingers to do so? Ever felt your SuperCoder 2000 too limiting, by only +having three buttons? We heard you! With this layout for the ErgoDox EZ, you +will be able to tap in binary at an unparalleled speed and accuracy! Efficiency +never seen before! + +Behold the Ultimate SuperCoder 2000 layout! + +![SuperCoder layout](images/layout.png) + +### To use it... + +To use this piece of top quality engineering, you can either +[download the hex file][hex] we have prepared for you, or you can compile it on +your own: + + [hex]: https://raw.githubusercontent.com/algernon/ergodox-supercoder/master/supercoder.hex + +``` +$ git clone https://github.com/jackhumbert/qmk_firmware.git +$ cd qmk_firmware/keyboards/ergodox_ez +$ git clone https://github.com/algernon/ergodox-supercoder.git keymaps/supercoder +$ make KEYMAP=supercoder +``` diff --git a/keyboards/ergodox_ez/keymaps/techtomas/compiled.hex b/keyboards/ergodox_ez/keymaps/techtomas/compiled.hex deleted file mode 100644 index 6bab27524..000000000 --- a/keyboards/ergodox_ez/keymaps/techtomas/compiled.hex +++ /dev/null @@ -1,1169 +0,0 @@ -:100000000C94D1020C9415030C9415030C94150355 -:100010000C9415030C9415030C9415030C94150300 -:100020000C9415030C9415030C94BD0D0C948F0EB9 -:100030000C9415030C9415030C9415030C941503E0 -:100040000C9415030C9499220C9415030C9415032D -:100050000C9415030C942C1C0C9415030C94150390 -:100060000C9415030C9415030C9415030C941503B0 -:100070000C9415030C9415030C9415030C941503A0 -:100080000C9415030C9415030C9415030C94150390 -:100090000C9415030C9415030C9415030C94150380 -:1000A0000C9415030C9415030C941503FC0E1E0FF1 -:1000B0000C101E0F0C10630F860F0C10DB0FEE0FD1 -:1000C000BD12BD12EC12EC122213421373147314FE -:1000D0004D137314FD13FD136414731473146D1412 -:1000E0000A140A140A140A140A140A140A140A1420 -:1000F0000A140A140A140A140A140A140A140A1410 -:100100001C1429143014371441140000F0A1F0A27B -:10011000F0A335422B77297FE100504100001E00FB -:10012000140004001D004F434D431F001A00160029 -:100130001B00E0004C002000080007000600E20061 -:100140002A002100150009001900E3004A4122009D -:1001500017000A0005000000E0002C082F00000036 -:100160002B000000E3002D00300000002B020000F7 -:10017000E30423001C000B0011000000E302240034 -:1001800018000D001000E7004B4225000C000E0087 -:10019000360052002C00260012000F0037005100DC -:1001A00028002700130033423842C3004E412E007E -:1001B0003177347FE500C10000000100010001003B -:1001C0000100010000003A001E022002220201008C -:1001D00001003B001F0221022302010001003C003C -:1001E0002F0226022F00010001003D0030022702ED -:1001F0003000010001003E003102350035020000F0 -:1002000001000100360200006900000001002B001F -:10021000370200006A00000001003F003302330093 -:100220002402000001004000240021001E002700DD -:1002300001004100250022001F003700010042009C -:100240002600230020002E0001004300310025027B -:100250002D002E020100440045000100280001008D -:100260000000010001000100010001000000010088 -:10027000140801001D080100010001001A08010016 -:100280001B08010001000100010001000608010037 -:100290000100010001000100190801000100010036 -:1002A0000100010006010000010001002B02000016 -:1002B0000100000001000100AE000000A8000000E5 -:1002C00001000100AC00AA000100000001000100D3 -:1002D000AB00A900010001000100010001000100C4 -:1002E0000100010001000100010001000100010006 -:1002F00001000100460001000100010001000100B1 -:1003000001000100010001000000A5000100010042 -:1003100001000100000001000100010001000100D6 -:10032000010001000100F2000100010001000100D4 -:10033000F000F10001000100010001000100F300E4 -:1003400001000100E20001000100F400F5000000DE -:10035000E1000100010000000100000001000100B7 -:1003600001000000010000004A00010001005000EF -:10037000010000004D0001000100510001000100DA -:100380000100010001005200010001000100010014 -:1003900001004F0001000100010001000100010007 -:1003A0000100010001000100010001000100010045 -:1003B000000016034500720067006F0044006F00E4 -:1003C0007800200045005A00000016034500720026 -:1003D00067006F0044006F007800200045005A005D -:1003E00000000403090409026D00040100A0FA09D9 -:1003F0000400000103010100092111010001224054 -:10040000000705810308000A090401000103010235 -:1004100000092111010001224D0007058203080097 -:100420000A09040200010300000009211101000172 -:100430002236000705830308000A090403000103AC -:100440000000000921110100012239000705840381 -:100450001000011201100100000008EDFE07130159 -:10046000000102000105010906A101050719E029A3 -:10047000E715002501950875018102050819012974 -:1004800005950575019102950175039101050719FF -:1004900000297715002501957875018102C00501B5 -:1004A0000980A101850216010026B7001A01002A61 -:1004B000B700751095018100C0050C0901A10185E7 -:1004C00003160100269C021A01002A9C0275109551 -:1004D000018100C005010902A1010901A10005096E -:1004E0001901290515002501950575018102950160 -:1004F000750381010501093009311581257F9502B8 -:100500007508810609381581257F950175088106D2 -:10051000050C0A38021581257F950175088106C0F2 -:10052000C005010906A101050719E029E715002505 -:100530000195087501810295017508810105081969 -:100540000129059505750191029501750391010534 -:1005500007190029FF150026FF0095067508810080 -:10056000C0000000000000000000000001020406BE -:100570000A0F17202C3A4A5D71879DB3C7DAE9F557 -:10058000FCFFFCF5E9DAC7B39D87715D4A3A2C2080 -:10059000170F0A060402010000000000000000001E -:1005A000000011241FBECFEFDAE0DEBFCDBF04B6DE -:1005B00003FE24C08091FB019091FC01A091FD01FC -:1005C000B091FE018730904BA740B04BB9F4109228 -:1005D000FB011092FC011092FD011092FE0114BE6D -:1005E00084B7877F84BF88E10FB6F894809360005A -:1005F000109260000FBEE0E0FFE3099511E0A0E07B -:10060000B1E0E0ECF8E402C005900D92A433B1072C -:10061000D9F711E0A4E3B1E001C01D92AB3FB107EF -:10062000E1F70E94010B0C945E240C9400001092E0 -:10063000B9008AE08093B800089594EA9093BC00D2 -:100640009091BC0097FFFCCF9091B900987F9830B3 -:1006500021F0903111F081E008958093BB0084E88F -:100660008093BC008091BC0087FFFCCF8091B900D3 -:10067000887F883111F0803471F780E0089584E933 -:100680008093BC008091BC0084FDFCCF08958093D2 -:10069000BB0084E88093BC008091BC0087FFFCCF46 -:1006A0009091B900987F81E0983209F480E0089534 -:1006B00084E88093BC008091BC0087FFFCCF8091D0 -:1006C000BB00089580910101811115C080E40E9452 -:1006D0001D038093010181110CC082E10E94470338 -:1006E00080930101811105C08FEF0E944703809321 -:1006F00001010E943F0384B1807F84B985B1807F6E -:1007000085B98AB1837F8AB98BB1837F8BB93E98D3 -:10071000469808950E941D05809301010E9462037E -:1007200080B38C7080BB81B3836F81BBA5E3B1E0E4 -:10073000E3E4F1E08EE08E0F11921D928E13FCCF58 -:100740000C940705BF92CF92DF92EF92FF920F9326 -:100750001F93CF93DF9380910101882379F08091DB -:1007600034018F5F80933401811108C00E941D0500 -:1007700080930101811102C00E94AF0405E311E0E2 -:10078000C0E0D0E0DD24D39482E0C82EEE24E394D0 -:10079000F12CC730D10500F580910101811164C0B1 -:1007A00080E40E941D0380930101811112C082E147 -:1007B0000E9447038093010181110BC0C7010C2ED9 -:1007C00001C0880F0A94EAF780950E94470380933E -:1007D00001010E943F0348C0CA30A1F028F4C8308C -:1007E00059F0C93061F005C0CC3089F070F0CD30DF -:1007F00089F0209A289810C0219A29980DC0229A31 -:100800002A980AC0239A2B9807C0529A01C0539A7B -:100810005B9802C03E9A469890EA9A95F1F79FB18C -:10082000799902C082E001C080E091709D25982BEB -:100830007C9902C084E001C080E0892B7D9902C0D0 -:1008400038E001C030E0832B7E9902C020E101C076 -:1008500020E0822B9FB19095991F9927991F92951F -:10086000990F907E892B0FC080910101811149C0A1 -:1008700080E40E941D0380930101882379F1B12C4B -:100880000E943F038B2DF8019081981719F0808307 -:10089000C09200010E94620321960F5F1F4FCE306D -:1008A000D10509F076CF80910001882361F1815054 -:1008B00080930001882339F08FE99FE00197F1F7D9 -:1008C00000C0000020C0A3E4B1E0E5E3F1E0CF0107 -:1008D000825F91919D938E13FCCF15C083E10E949E -:1008E0004703809301018111CACF81E40E941D0357 -:1008F000809301018111C3CF0E945803B82EB09498 -:10090000BFCF80E0C0CF0E94AD0481E0DF91CF91E6 -:100910001F910F91FF90EF90DF90CF90BF900895BF -:10092000E82FF0E0ED5BFE4F8081089508950F936E -:100930001F93CF93DF93C3E4D1E010E00C2F025F4D -:10094000899190E00E94521B180F0C13F9CF812F50 -:10095000DF91CF911F910F9108950C947D055698CA -:100960005E9825982D9826982E9827982F988FEF87 -:1009700090E0909389008093880090938B008093FF -:100980008A0090938D0080938C00259A2D9A2FEFEA -:1009900080E792E0215080409040E1F700C00000E5 -:1009A000269A2E9A2FEF80E792E0215080409040C7 -:1009B000E1F700C00000279A2F9A2FEF80E792E01E -:1009C000215080409040E1F700C0000025982D980C -:1009D0002FEF80E792E0215080409040E1F700C087 -:1009E000000026982E982FEF80E792E0215080405B -:1009F0009040E1F700C0000027982F9856985E9825 -:100A000025982D9826982E9827982F98089589EA4A -:100A10008093800089E08093810024982C983F98EF -:100A20008AB18F748AB96E98479A8BB1806B8BB9F3 -:100A3000769A0E94AF040C947C0580E280930101B9 -:100A40008091510181110EC00E94170381E08093B3 -:100A500051012FEF83ED90E3215080409040E1F76A -:100A600000C0000080E40E941D03809301018111F9 -:100A70002EC00E94470380930101811128C00E946B -:100A8000470380930101811122C08FE30E94470335 -:100A90008093010181111BC00E943F0380E40E94EA -:100AA0001D0380930101811112C08CE00E94470355 -:100AB0008093010181110BC00E94470380930101C3 -:100AC000811105C08FE30E944703809301010E94BA -:100AD0003F0380910101089561110BC0FC018281E7 -:100AE000882321F085EE0E94611103C085EE0E94EB -:100AF000291280E090E0089508956091BD01709101 -:100B0000BE018091BF019091C0010E945E1B56986A -:100B10005E9825982D9826982E9827982F988230A1 -:100B200039F0833041F0813041F4259A2D9A0895AF -:100B3000269A2E9A0895279A2F9A089581E008956B -:100B400081E008950C94A00508950F931F93CF930F -:100B5000DF938C01FC01C081D181CE010E94D719A5 -:100B6000BE010E944E06EC01B8010E94A205882336 -:100B700009F48DC0F8018281882309F44AC080916C -:100B80005D0181111FC0C431F0E5DF0709F051C0DC -:100B90000E94A40581E080935D010E94F61B909362 -:100BA0005C0180935B0110925401109256011092E7 -:100BB0005501109258011092570110925A0110924B -:100BC000590165C080915B0190915C010E94021CFB -:100BD000883C910570F480915401E82FF0E0EE0F0D -:100BE000FF1FEB5AFE4FD183C0838F5F8093540168 -:100BF0004EC0C43880E5D80721F0C538D04501F192 -:100C00003AC0F8018281882341F01092520182E0BB -:100C10001EC0C438E0E5DE0759F58091520181110C -:100C200006C086E20E94611186E20E94291282E0DB -:100C30001CC0C438F0E5DF0741F3C538D045D9F40E -:100C4000F8018281882331F01092530180E20E94E2 -:100C500078121DC080915301811106C087E20E9465 -:100C6000611187E20E94291280E20E947F120FC068 -:100C7000C538D04529F381E0809352018093530118 -:100C8000C801DF91CF911F910F910C949E0580E0D8 -:100C9000DF91CF911F910F910895089596E0799F6C -:100CA000F001112494E5899FE00DF11D1124E60F58 -:100CB000F11DEE0FFF1FEE5EFE4F8591949108959A -:100CC000880F991FFC01E657F04085919491089593 -:100CD000880F991FFC01E65FFE4F8591949108955E -:100CE0000F931F93CF93DF93EC01811520E39207BD -:100CF00050F5C11580E2D80708F0C3C0CB3BD10541 -:100D000090F4C83AD10508F06AC0C53AD10508F098 -:100D10005BC0C430D10508F0D0C1219709F0CAC129 -:100D200001E010E00AC2CF3FD10511F008F0C5C1C3 -:100D3000C03FD10508F0A2C0CE01805E910908979E -:100D400008F4BBC1B7C1C13090E5D90709F4A2C00E -:100D500020F5C0318FE4D80770F4C11590E4D907AD -:100D600008F094C0C11521E3D20708F0A3C1DD2724 -:100D70008E01106CE2C1C115D04509F09BC10E94E3 -:100D8000DE148FEF94E32CE0815090402040E1F797 -:100D900000C000000E94511CD0C1C11597E5D907C1 -:100DA00058F4C03121E5D20708F01CC1C43180E5F8 -:100DB000D80708F475C07EC1CE01905781159041C7 -:100DC00008F078C1DF7073C1C53AD10509F477C165 -:100DD000C63AD10509F076C102E810E4AEC1C83ABE -:100DE000D10509F472C1C93AD10509F471C1CA3AF1 -:100DF000D10509F470C1CB3AD10509F46FC1CC3AE1 -:100E0000D10509F46EC1CD3AD10509F46DC1C03BDD -:100E1000D10509F46CC1CE3AD10509F46BC1CF3AC2 -:100E2000D10509F46AC1C13BD10509F469C1C23BCE -:100E3000D10509F468C1C33BD10509F467C1C43BBE -:100E4000D10509F466C1C53BD10509F465C1C63BAE -:100E5000D10509F464C1C73BD10509F463C1C83B9E -:100E6000D10509F462C1C93BD10509F461C1CA3B8E -:100E7000D10509F460C100E014E45FC18E01106582 -:100E80005CC1CE019F700E94680658C1DF708E0160 -:100E9000106A53C18091DA0181608093DA014DC1FB -:100EA0000E94F61D811102C00E94DC1D0E94131ECB -:100EB00090E09093FB018093FA01C23080E5D8075F -:100EC00021F48091FA01816086C0C43090E5D90791 -:100ED00021F48091FA0182607EC0C63020E5D207FD -:100EE00021F48091FA01846076C0C83080E5D8078B -:100EF00019F48091FA0127C0CA3090E5D90721F48E -:100F00008091FA01806167C0CC3020E5D20721F4DE -:100F10008091FA0180625FC0CE3080E5D80721F46D -:100F20008091FA01806457C0C03190E5D90721F45F -:100F30008091FA0180684FC0C23120E5D20729F4C0 -:100F40008091FA018460886046C0C33080E5D8078C -:100F500021F48091FA018E7F3EC0C53090E5D9071B -:100F600021F48091FA018D7F36C0C73020E5D20789 -:100F700021F48091FA018B7F2EC0C93080E5D8071B -:100F800019F48091FA0126C0CB3090E5D90721F4FD -:100F90008091FA018F7E1FC0CD3020E5D20721F469 -:100FA0008091FA018F7D17C0CF3080E5D80721F4FA -:100FB0008091FA018F7B0FC0C13190E5D90721F4F0 -:100FC0008091FA018F7707C0C331D04531F4809109 -:100FD000FA018B7F877F8093FA018091FA010E944A -:100FE000171EABC08D2F99278F70992781309105DF -:100FF000D9F49E012370332702C0880F991F2A95C8 -:10100000E2F79C688E0144E0000F111F4A95E1F75A -:1010100000271370802B912B53E0CC0FDD1F5A95C6 -:10102000E1F7C076DD272FC08230910531F4DC2F47 -:10103000CC278E01016F106A80C08330910569F45E -:10104000CE018370992701E010E002C0000F111F4C -:101050008A95E2F7C8019C680FC084309105B9F405 -:10106000CE018370992701E010E002C0000F111F2C -:101070008A95E2F7C8019A6823E0CC0FDD1F2A9514 -:10108000E1F7C07ED7708C010C2B1D2B56C085302C -:10109000910531F4DC2FCC278E01046F106A4DC00E -:1010A000069709F04AC0CF71DD27DC2FCC278E01CF -:1010B000106243C000E010E040C08E013EC001E875 -:1010C00010E43BC003E810E438C002EE14E435C07D -:1010D00009EE14E432C00AEE14E42FC005EB14E468 -:1010E0002CC006EB14E429C007EB14E426C00CEC7A -:1010F00014E423C00DEC14E420C003E815E41DC083 -:101100000AE815E41AC002E915E417C004E915E479 -:1011100014C001E216E411C003E216E40EC004E2BA -:1011200016E40BC005E216E408C006E216E405C0AA -:1011300007E216E402C00AE216E4C801DF91CF918B -:101140001F910F91089596E0799FF001112494E585 -:10115000899FE00DF11D1124E60FF11DEE0FFF1F19 -:10116000EE5EFE4F85919491803E9105E0F4803CC7 -:10117000910558F58133910509F46FC048F489321F -:10118000910509F463C08A32910509F46DC072C0FB -:1011900089339105E9F082389105D1F085339105C5 -:1011A00009F44DC067C0833E910581F138F4803E5B -:1011B0009105B9F0823E9105D9F05CC0863E91055B -:1011C00061F1873E9105A1F155C00E946006089526 -:1011D0002091FA0120FD02C021FF4CC080EE90E07A -:1011E00049C08091FA0180FFF9CF89E390E042C0C5 -:1011F0008091FA0182FF0EC08091FA0184FF03C042 -:1012000080E090E037C083EE90E034C08091FA0136 -:1012100082FFF2CF82EE90E02DC08091FA0183FF31 -:101220000BC08091FA0184FDEBCF87EE90E022C0E5 -:101230008091FA0183FFF5CF86EE90E01BC080918C -:10124000FA0185FF07C089E290E014C08091FA019D -:1012500085FFF9CF85E390E00DC08091FA0186FF0C -:1012600007C08AE290E006C08091FA0186FFF9CFBC -:1012700081E390E00E947006089508950C943D0962 -:1012800080916E010895CF93DF9300D01F92CDB768 -:10129000DEB79C018091F101843019F593E09983C8 -:1012A0003B832A839093E9008FEF9091E80081506F -:1012B00095FD06C095ED9A95F1F700008111F5CFE7 -:1012C0008091E80085FF0DC040E050E063E070E0F1 -:1012D000CE0101960E94AD0B8091E8008E7780933D -:1012E000E8000F900F900F90DF91CF910895CF936A -:1012F000DF9300D01F92CDB7DEB72091F1012430EB -:1013000021F522E029839B838A8383E08093E9008F -:101310008FEF9091E800815095FD06C095ED9A956C -:10132000F1F700008111F5CF8091E80085FF0DC035 -:1013300040E050E063E070E0CE0101960E94AD0B0A -:101340008091E8008E778093E8000F900F900F90C7 -:10135000DF91CF9108952091F1012430F1F422E042 -:101360002093E9002FEF3091E800215035FD06C0B1 -:1013700035ED3A95F1F700002111F5CF2091E80005 -:1013800025FF0BC040E050E065E070E00E94AD0B2F -:101390008091E8008E778093E8000895CF93DF93E3 -:1013A000EC019091F101943009F046C080910C015C -:1013B0008823D9F080910D018823B9F09093E9003A -:1013C0008FEF9091E800815095FD06C095E19A95C8 -:1013D000F1F700008111F5CF8091E80085FF2CC066 -:1013E00040E050E060E170E017C081E08093E900E8 -:1013F0008FEF9091E800815095FD06C095ED9A958C -:10140000F1F700008111F5CF8091E80085FF14C04D -:1014100040E050E068E070E0CE010E94AD0B8091AA -:10142000E8008E778093E80080E1FE01AEE5B1E050 -:1014300001900D928A95E1F7DF91CF910895809107 -:10144000F001811109C00E94420D0E949F0D809100 -:10145000E20084608093E20008951092F001089504 -:1014600008950C9486220E94E71B0E948C220E9401 -:1014700045100C943E0942E061EC81E00E94BC0CF6 -:1014800042E061EC82E00E94BC0C42E061EC83E04F -:101490000E94BC0C42E161EC84E00C94BC0C809195 -:1014A000F301833009F455C030F4813071F082309B -:1014B00009F48EC008958A3009F47AC08B3009F49B -:1014C00060C0893009F09CC020C08091F201813A4F -:1014D00009F096C08091E800877F8093E8008091B2 -:1014E000F6019091F701892B21F460E18EE591E0FE -:1014F00003C060E080E090E070E00E94F80B809113 -:10150000E8008B778093E80008958091F2018132A2 -:1015100009F076C08091F6019091F701009719F0DB -:10152000039709F06DC08091E800877F8093E80001 -:101530008091E80082FD05C08091F1018111F8CF12 -:101540005FC08091F10080936E018091E8008B77FD -:1015500053C08091F201813A09F052C08091F601A6 -:101560009091F701892B09F04BC08091E800877FAB -:101570008093E8008091E80080FFFCCF80910C010F -:1015800036C08091F2018132D9F58091F6019091B7 -:10159000F701892BA9F58091E800877F8093E80007 -:1015A0000E94F10C8091F40180930C010C94DE14E4 -:1015B0008091F201813221F58091E800877F80934C -:1015C000E8000E94F10C8091F50180936F0108956D -:1015D0008091F201813AA1F48091E800877F8093A5 -:1015E000E8008091E80080FFFCCF80916F0180933C -:1015F000F1008091E8008E778093E8000C94F10C64 -:10160000089584B7877F84BF88E10FB6F8948093EC -:101610006000109260000FBE90E080E80FB6F89472 -:1016200080936100909361000FBE0E9494100E940D -:10163000420D0E949F0D8091E20084608093E20041 -:1016400078940E9425100E94961082E091E00E94FA -:1016500040100E9474228091F101853069F40E944B -:10166000AE1B8091EF018823B1F30E94D91B882320 -:1016700091F30E94970BEFCF0E949C10ECCF292F83 -:10168000332723303105C9F064F42130310581F06E -:101690002230310509F043C08DE690E026EE33E0BC -:1016A00042C021323105F1F02232310541F137C01B -:1016B00082E190E023E534E036C09927813091053E -:1016C00041F08230910541F0892B49F5E2EEF3E0DB -:1016D00005C0EAECF3E002C0E2EBF3E0849190E0B5 -:1016E0009F0121C06430D8F4E62FF0E0EE0FFF1F19 -:1016F000EE5DFE4F2081318189E090E014C06430BE -:1017000070F470E0FB01EE0FFF1FE65EFE4F2081DC -:101710003181FB01EA5EFE4F808190E004C080E0F1 -:1017200090E020E030E0FA0131832083089580E1E9 -:1017300089BD82E189BD09B400FEFDCF8091D8004A -:101740008F7D8093D8008091E00082608093E000DC -:101750008091E00081FDFCCF0895CF92DF92EF925F -:10176000FF920F931F93CF93DF93EC018B016A01DC -:101770000E94100D811133C0C114D10439F0F6015B -:1017800080819181081B190BC80FD91FE12CF12C06 -:101790000115110519F18091E80085FD16C08091B1 -:1017A000E8008E778093E800C114D10449F0F60177 -:1017B00080819181E80EF91EF182E08285E00FC000 -:1017C0000E94100D882321F30AC089918093F100B3 -:1017D00001501109FFEFEF1AFF0ADACF80E0DF9125 -:1017E000CF911F910F91FF90EF90DF90CF900895D0 -:1017F0002091F8013091F9012617370748F061155B -:10180000710539F42091E8002E772093E80001C09B -:10181000B90140E061157105A9F12091F101222380 -:1018200009F443C0253009F442C02091E80023FDAB -:1018300040C02091E80022FD32C02091E80020FF46 -:10184000E9CF4091F3002091F20030E0342BFC010D -:10185000CF016115710559F02830310540F48191AF -:101860008093F100615071092F5F3F4FF1CF41E04C -:101870002830310509F040E02091E8002E772093D0 -:10188000E800C8CF4111C9CF0AC08091F101882377 -:1018900061F0853061F08091E80083FD0AC080919D -:1018A000E80082FFF2CF80E0089582E0089583E0AF -:1018B000089581E008952091F8013091F9012617EB -:1018C000370748F06115710539F42091E8002E774B -:1018D0002093E80001C0B901FC0120E06115710509 -:1018E00091F18091F101882309F440C0853009F419 -:1018F0003FC08091E80083FD3DC08091E80082FDFB -:101900002FC08091E80080FFE9CF2091F300809103 -:10191000F20090E0922B6115710559F08830910525 -:1019200040F424912093F1003196615071090196A1 -:10193000F2CF21E0089709F020E08091E8008E774F -:101940008093E800CBCF2111CCCF0AC08091F10168 -:10195000882361F0853061F08091E80083FD0AC042 -:101960008091E80082FFF2CF80E0089582E0089540 -:1019700083E0089581E00895982F973058F590936B -:10198000E900981739F07091EC002091ED0050912A -:10199000F00003C0242F762F50E021FF19C03091B2 -:1019A000EB003E7F3093EB003091ED003D7F3093B4 -:1019B000ED003091EB0031603093EB007093EC0060 -:1019C0002093ED005093F0002091EE0027FF07C018 -:1019D0009F5FD3CF8F708093E90081E0089580E00E -:1019E00008958091F20187FF11C08091E80082FD87 -:1019F00005C08091F1018111F8CF11C08091E800FC -:101A00008B770BC08091F101882349F08091E80029 -:101A100080FFF8CF8091E8008E778093E8000895EA -:101A20002091E4003091E50095E64091EC00842F90 -:101A3000817040FF22C08091E80080FD1CC0809131 -:101A4000F101882391F0853091F08091EB0085FDC4 -:101A500010C04091E4005091E5004217530729F36C -:101A60009A01915011F784E0089582E0089583E08F -:101A7000089581E0089580E008954091E80042FFD4 -:101A8000DECF08950E94B00D0E94B80DE0EEF0E0A8 -:101A9000808181608083E8EDF0E080818F778083B2 -:101AA00019BCA7EDB0E08C918E7F8C9380818F7EE6 -:101AB00080831092F00108950F931F93CF93DF93CB -:101AC0000E94B00D0E94B80DC8EDD0E088818F77DC -:101AD000888388818068888388818F7D888319BC0A -:101AE0001092F1011092ED011092EF011092EE01AF -:101AF00000EE10E0F80180818B7F80838881816017 -:101B0000888342E060E080E00E94BC0CE1EEF0E0FF -:101B100080818E7F8083E2EEF0E08081816080832F -:101B2000808188608083F80180818E7F80838881B6 -:101B300080618883DF91CF911F910F910895E8ED27 -:101B4000F0E080818F7E8083E7EDF0E0808181602E -:101B5000808384E082BF81E08093F0010C945C0D6F -:101B6000E8EDF0E080818E7F80831092E20008959E -:101B70001092DA001092E10008951F920F920FB6B2 -:101B80000F9211242F933F934F935F936F937F9303 -:101B90008F939F93AF93BF93EF93FF938091E10057 -:101BA00082FF0BC08091E20082FF07C08091E100BC -:101BB0008B7F8093E1000E9424108091DA0080FFE7 -:101BC0001FC08091D80080FF1BC08091DA008E7FFB -:101BD0008093DA008091D90080FF0DC080E189BD3B -:101BE00082E189BD09B400FEFDCF81E08093F1015F -:101BF0000E941F0A05C019BC1092F1010E942D0A13 -:101C00008091E10080FF19C08091E20080FF15C043 -:101C10008091E2008E7F8093E2008091E2008061FB -:101C20008093E2008091D80080628093D80019BC34 -:101C300085E08093F1010E94310A8091E10084FFE8 -:101C400030C08091E20084FF2CC080E189BD82E138 -:101C500089BD09B400FEFDCF8091D8008F7D8093AF -:101C6000D8008091E1008F7E8093E1008091E200B6 -:101C70008F7E8093E2008091E20081608093E20099 -:101C80008091ED01882311F084E007C08091E3008A -:101C900087FD02C081E001C083E08093F1010E94D2 -:101CA000330A8091E10083FF29C08091E20083FF25 -:101CB00025C08091E100877F8093E10082E08093DE -:101CC000F1011092ED018091E1008E7F8093E1009F -:101CD0008091E2008E7F8093E2008091E20080613B -:101CE0008093E20042E060E080E00E94BC0C8091C2 -:101CF000F00088608093F0000E94300AFF91EF911D -:101D0000BF91AF919F918F917F916F915F914F9113 -:101D10003F912F910F900FBE0F901F9018951F921B -:101D20000F920FB60F9211242F933F934F935F930F -:101D30006F937F938F939F93AF93BF93CF93DF93D3 -:101D4000EF93FF93C091E900CF708091EC00D82F02 -:101D5000D17080FDD0E81092E9008091F000877F7B -:101D60008093F00078940E94D30E1092E900809145 -:101D7000F00088608093F000CD2BCF70C093E90015 -:101D8000FF91EF91DF91CF91BF91AF919F918F9193 -:101D90007F916F915F914F913F912F910F900FBE67 -:101DA0000F901F9018951F93CF93DF93CDB7DEB799 -:101DB000AA970FB6F894DEBF0FBECDBFE2EFF1E0F9 -:101DC00088E08E0F9091F10091938E13FBCF0E94CB -:101DD0004F0A8091E80083FF1FC18091F20190912A -:101DE000F301492F50E04A30510508F015C1FA01BE -:101DF000EA5AFF4F0C940E24803881F0823809F0A3 -:101E00000BC18091F6018F708093E9008091EB0007 -:101E100085FB882780F91092E90006C08091EE01C9 -:101E20009091EF01911182609091E800977F9093DB -:101E3000E8008093F1001092F100C8C0282F2D7F98 -:101E400009F0EAC0882319F0823061F0E5C0809182 -:101E5000F401813009F0E0C0933009F080E0809314 -:101E6000EF012BC08091F401811127C08091F60110 -:101E70008F7009F4D1C08093E9002091EB0020FF1E -:101E80001CC0933021F48091EB00806214C09091CB -:101E9000EB0090619093EB0021E030E0A90102C0DB -:101EA000440F551F8A95E2F74093EA001092EA002A -:101EB0008091EB0088608093EB001092E9008091A4 -:101EC000E800877F86C08111A7C01091F4011F77B9 -:101ED0008091E3008078812B8093E3008091E8007B -:101EE000877F8093E8000E94F10C8091E80080FFDA -:101EF000FCCF8091E30080688093E300111102C061 -:101F000082E001C083E08093F10186C08058823076 -:101F100008F082C08091F4019091F5018C3D53E06E -:101F2000950779F583E08A838AE289834FB7F8942D -:101F3000DE01139620E03EE051E2E32FF0E0509303 -:101F40005700E49120FF03C0E295EF703F5FEF7010 -:101F50008E2F90E0EA3010F0C79601C0C0968D93A6 -:101F60009D932F5F243149F74FBF8091E800877F11 -:101F70008093E8006AE270E0CE0101960E94F80BBF -:101F800014C0AE014F5F5F4F6091F6010E943F0B9E -:101F9000BC01009709F440C09091E800977F9093AE -:101FA000E80089819A810E945B0C8091E8008B7720 -:101FB0008093E80031C0803879F58091E800877F10 -:101FC0008093E8008091ED018093F1008091E8001A -:101FD0008E778093E8000E94F10C1EC081111CC016 -:101FE0009091F4019230C0F48091E800877F809353 -:101FF000E8009093ED010E94F10C8091ED018111B8 -:1020000006C08091E30087FD02C081E001C084E04A -:102010008093F1010E943B0A8091E80083FF0AC08F -:102020008091E800877F8093E8008091EB008062D8 -:102030008093EB00AA960FB6F894DEBF0FBECDBF1B -:10204000DF91CF911F9108950895CF938091F10171 -:102050008823A1F0C091E900CF709091EC00892F06 -:10206000817090FD80E8C82B1092E9008091E80013 -:1020700083FD0E94D30ECF70C093E900CF910895E5 -:1020800090937501809374010895E0917401F0912B -:102090007501309721F00190F081E02D099480E0E6 -:1020A0000895E0917401F0917501309721F002805C -:1020B000F381E02D09940895E0917401F091750188 -:1020C000309721F00480F581E02D09940895209146 -:1020D0007201309173018217930771F0909373012D -:1020E00080937201E0917401F0917501309721F0B5 -:1020F0000680F781E02D09940895209170013091B8 -:1021000071018217930771F09093710180937001B0 -:10211000E0917401F0917501309721F00084F18510 -:10212000E02D0994089508950C9493100E94ED1BDE -:102130000E948A030C94AF1C9F92AF92BF92CF92E1 -:10214000DF92EF92FF920F931F93CF93DF9300D014 -:1021500000D000D0CDB7DEB70E94A2030DE010E0A2 -:10216000AA24A394B12C902E802F0E949004980151 -:1021700029583E4F6901F901F080F826A1F4015079 -:10218000110988F78FEF89838A831B820E94F61BCF -:102190008160782F9D838C8349815A816B818D81E9 -:1021A0000E9433112FC09091DA0191FF04C08E83F9 -:1021B0000E9496048E8125E030E0A501022E01C028 -:1021C000440F0A94EAF7E42E4F21C1F029839A8242 -:1021D0008E2191E009F490E09B830E94F61B8160C0 -:1021E000782F9D838C8349815A816B818D810E94D8 -:1021F0003311F6018081E826E08204C021503109C4 -:10220000E0F6BDCF0E94961F109176010E94451006 -:102210001817B9F00E9445108093760126960FB6E4 -:10222000F894DEBF0FBECDBFDF91CF911F910F910C -:10223000FF90EF90DF90CF90BF90AF909F900C9465 -:102240003E0926960FB6F894DEBF0FBECDBFDF91D4 -:10225000CF911F910F91FF90EF90DF90CF90BF90A3 -:10226000AF909F900895CF93DF93CDB7DEB72B97B4 -:102270000FB6F894DEBF0FBECDBF4F835887698776 -:102280007A878B87DE01119686E0FD0111928A958F -:10229000E9F785E0FE01379601900D928A95E1F706 -:1022A00049815A816B817C818D819E810E947C173E -:1022B0002B960FB6F894DEBF0FBECDBFDF91CF9146 -:1022C0000895CF93882309F4C2C0C82F823859F4E7 -:1022D0000E94451081FDBBC089E30E94561A0E94EE -:1022E000231B89E30CC0833879F40E94451080FDDC -:1022F000AEC083E50E94561A0E94231B83E50E940C -:10230000981ACF910C94231B843859F40E944510DD -:1023100082FD9DC087E40E94561A0E94231B87E419 -:10232000EECF8CEF8C0F813A48F48C2F0E94D9218C -:1023300081118DC08C2F0E94561AE3CF80E28C0F42 -:10234000883048F4C77081E001C0880FCA95EAF769 -:102350000E94DC1AD6CF8BE58C0F833078F4C53A17 -:1023600029F0C63A31F083E890E005C081E890E0BA -:1023700002C082E890E0CF910C94671088E58C0F42 -:10238000833108F064C0C83A39F1C93A41F1CA3A18 -:1023900049F1CB3A51F1CC3A59F1CD3A61F1C03B18 -:1023A00069F1CE3A71F1CF3A79F1C13B81F1C23B8B -:1023B00089F1C33B91F1C43B99F1C53BA1F1C63B07 -:1023C000A9F1C73BB1F1C83BB9F1C93BC1F1CA3B67 -:1023D000C9F180E090E038C082EE90E035C089EE2F -:1023E00090E032C08AEE90E02FC085EB90E02CC0E8 -:1023F00086EB90E029C087EB90E026C08CEC90E063 -:1024000023C08DEC90E020C083E891E01DC08AE8F5 -:1024100091E01AC082E991E017C084E991E014C00C -:1024200081E292E011C083E292E00EC084E292E089 -:102430000BC085E292E008C086E292E005C087E228 -:1024400092E002C08AE292E0CF910C947D10CF918D -:102450000895882309F44BC0823859F40E9445102E -:1024600081FF45C089E30E94561A0E94231B89E31D -:102470000CC0833871F40E94451080FF38C083E59A -:102480000E94561A0E94231B83E50E94981A0C94FE -:10249000231B843859F40E94451082FF28C087E42A -:1024A0000E94561A0E94231B87E4EFCF9CEF980FDF -:1024B000913A58F390E2980F983050F4877091E079 -:1024C00001C0990F8A95EAF7892F0E94E21ADFCF9F -:1024D0009BE5980F933020F480E090E00C94671017 -:1024E000885A833120F480E090E00C947D100895A8 -:1024F000882321F00E94DC1A0C94231B0895882362 -:1025000021F00E94E21A0C94231B08957F928F926F -:102510009F92AF92BF92CF92DF92EF92FF920F9372 -:102520001F93CF93DF931F92CDB7DEB77C01C62EEA -:10253000772EFC01058102950F70128111110E9406 -:10254000F91A0E944F1A882379F0112369F080E26A -:102550008C0D883048F082E00E94381A0E944F1A91 -:1025600091E0D82ED92601C0D12CE72DE295EF704D -:10257000F0E0E05AFF4F0C940E24872D807F072D4A -:102580000F70882311F00295007F112389F000233A -:1025900009F490C180E28C0D883020F4802F0E94D5 -:1025A000DC1A03C0802F0E94EC1A0E94231B82C1F8 -:1025B0008C2D0E942912002309F495C180E28C0D14 -:1025C000883020F4802F0E94E21A03C0802F0E94DE -:1025D000F21A0E94231B87C1972D907F872D8F7041 -:1025E000903211F08295807FCC2021F0F1E0CF165F -:1025F000B1F01EC0112349F0002309F414C10130C9 -:1026000009F011C10E940C1B6EC1002319F00130AA -:1026100009F469C189830E940F1B89810AC11123B2 -:1026200021F0023008F05FC1FEC001115CC101C1A0 -:10263000112321F0002309F4F6C03CC1002309F462 -:10264000F8C03EC1872D86958695837090E00097EF -:1026500019F0019761F047C1112321F08C2D972DBE -:10266000937002C080E090E00E9467103CC111238B -:1026700021F08C2D972D937002C080E090E00E9495 -:102680007D1031C18C2D112319F00E949E1E02C0B5 -:102690000E94061F0E948B1F26C1872D837009F0A0 -:1026A00052C0111120C18C2D829586958770880F9C -:1026B000880F9C2D9F70892E912CA12CB12C082E57 -:1026C00004C0880C991CAA1CBB1C0A94D2F7C4FE37 -:1026D00014C00FE010E020E030E0B901A80104C010 -:1026E000440F551F661F771F8A95D2F7CB01BA0199 -:1026F000609570958095909503C060E070E0CB0187 -:10270000272D26952695237030E02230310569F07B -:102710002330310589F0682979298A299B292130BC -:10272000310571F00E94C418DEC0682979298A2910 -:102730009B290E94E018D7C00E94C418C501B401AB -:102740000E94A818D0C0112319F0872D817001C0F4 -:102750008695882309F4C7C08C2D8295869587704D -:10276000880F880F9C2D9F70892E912CA12CB12C45 -:10277000082E04C0880C991CAA1CBB1C0A94D2F712 -:10278000C4FE14C00FE010E020E030E0B901A80161 -:1027900004C0440F551F661F771F8A95D2F7CB01DF -:1027A000BA01609570958095909503C060E070E0E7 -:1027B000CB01272D269526952370422F50E04230DD -:1027C000510569F04330510589F0682979298A2932 -:1027D0009B294130510571F00E949E1984C06829DF -:1027E00079298A299B290E94BA197DC00E949E19C5 -:1027F000C501B4010E94821976C08C2D90E0FC01C5 -:10280000E05EF109E531F10508F050C0E059FF4FF5 -:102810000C940E240C2D0F70872D8F71112331F025 -:102820000E941B19802F0E9478125DC00E943C19E3 -:10283000802F0E947F1257C0112339F0011153C01D -:10284000872D8F710E9461194EC0023008F04BC075 -:10285000F7CF112339F0872D8F710E941B1943C0C8 -:102860001123C9F3872D8F710E943C193CC011239D -:1028700029F0872D8F710E94061935C00E94FC181F -:1028800032C0112351F0172D1F71812F0E941B1987 -:1028900063E0812F0E942F1A26C081E00E94381A1F -:1028A000023008F182E00E94381A1DC0112331F075 -:1028B000002389F28C2D0E94611115C0002391F232 -:1028C0008C2D0E9429120FC0472D4F706C2DC7010F -:1028D0000E946C050E94201806C0472D4F706C2D79 -:1028E000C7010E944D06DD20F9F00E942B1A80FDE1 -:1028F0001BC0F70112820E94251A0E941B19C701F2 -:102900000E94A3140E94251A0F90DF91CF911F916E -:102910000F91FF90EF90DF90CF90BF90AF909F907E -:102920008F907F900C943C190F90DF91CF911F9165 -:102930000F91FF90EF90DF90CF90BF90AF909F905E -:102940008F907F9008950F931F93CF93DF93EC01A7 -:10295000888199812B813C81232BB9F09F3F11F411 -:102960008F3F99F0CE010E94A505882371F0688100 -:1029700079818A810E94211A8C010E94D6190E94B5 -:102980009D18B801CE010E948612DF91CF911F9150 -:102990000F9108950E94F91A0E94091B0E94CE1AF5 -:1029A0000E94231B0E943C200E948B1F80E090E02D -:1029B0000E94671080E090E00C947D100E94E91A5C -:1029C0000C94CA140E94161A292F22952F7030E0F9 -:1029D0002C3031054CF42A3031056CF42250310989 -:1029E00022303105A8F407C02C30310569F02F30B2 -:1029F000310551F00DC0803F69F018F4803E40F47D -:102A000009C0843F29F406C093FB882780F9089504 -:102A100080E0089581E00895CF93DF9300D000D047 -:102A20001F92CDB7DEB70F900F900F900F900F90C1 -:102A3000DF91CF910895CF93DF9300D000D000D0E5 -:102A4000CDB7DEB726960FB6F894DEBF0FBECDBF6A -:102A5000DF91CF9108951F93CF93DF93C0918501AC -:102A600016E080918601C81799F0D0E01C9FF00114 -:102A70001D9FF00D1124E957FE4F40815181628165 -:102A80007381848195810E941B152196C770E9CFBF -:102A9000DF91CF911F9108954091B7015091B801F6 -:102AA0006091B9017091BA018091BB019091BC0114 -:102AB0000C941B158091BC0182958F7009F054C055 -:102AC0008091B901882309F44FC080918501A091BC -:102AD00086016091B7017091B8014091BA0150919F -:102AE000BB01B6E08A1709F43FC090E041155105DB -:102AF000C1F17F3F11F46F3FA1F1B89FF001B99F81 -:102B0000F00D1124E957FE4F218172132AC0208154 -:102B1000621327C02281211124C02381348124170C -:102B2000350710F421503109241B350B283C3105A1 -:102B3000C0F42091BC012F7020612093BC0126E0DD -:102B4000289FF001299FF00D1124E457FE4F80814A -:102B50008F708061808387EB91E00E94A3140C94B6 -:102B60002B1501968770BECF0895CF92DF92EF921A -:102B7000FF920F931F93CF93DF93CDB7DEB762978A -:102B80000FB6F894DEBF0FBECDBF8C0185E0F80113 -:102B9000DE011D9601900D928A95E1F7D8014C91C6 -:102BA00011965C91119712966C9112971396CD9095 -:102BB000DC9014973091B7017091B8018091BA01FF -:102BC0009091BB01009709F46BC17F3F19F43F3F1F -:102BD00009F466C1E090B901EE2009F4C0C020916B -:102BE000BC01C816D90628F0F601E81BF90BCF0185 -:102BF00004C0809590958C0D9D1DFF24F394883C16 -:102C0000910578F0F12C207F09F0C6C07C2DD98A7F -:102C1000C88A89890E940C1587EB91E00E94A31451 -:102C2000B1C0822F807F09F046C0751314C03413E1 -:102C300012C0611110C02F7020612093BC010E944E -:102C40004C1587EB91E00E94A3148091BC01D80140 -:102C500015968C932EC0CD2819F15F3F11F44F3F8C -:102C6000F9F0F62E61111CC080918501209186013A -:102C700036E0821709F45AC090E0389FF001399F7E -:102C8000F00D1124E957FE4F7181571306C0708172 -:102C9000471303C07281711103C001968770E9CF99 -:102CA000F62E662309F418C18091BC0181608093DF -:102CB000BC01F12C11C1751308C0341306C0611199 -:102CC00004C08091BC01D801C3C04D875E878D854B -:102CD0009E856A8B0E94E2146A898823E1F166234B -:102CE000D1F12091BC01822F82958F7090E00297E4 -:102CF00074F08091B7019091B80198878F831986FD -:102D0000DB86CA862C87CE0107960E94A31486E034 -:102D1000F801A7EBB1E001900D928A95E1F70E94CE -:102D20005A150E944C15FF24F394D6C04D875E8738 -:102D30008D859E850E94161A292F22952F7030E0CE -:102D4000223031050CF0BCC09F7009F0B6C0805E27 -:102D5000883008F4C1C0C8010E94A314E4CFC8168B -:102D6000D90608F453C0F601E81BF90BCF01883CE3 -:102D7000910508F450C0F12C7C2DD98AC88A898924 -:102D80000E940C15E7EBF1E086E0DF011D928A95C9 -:102D9000E9F70E944C15A0C0751314C0341312C07B -:102DA000611110C08091BC01F8018583C8010E94A7 -:102DB000A31486E0E7EBF1E0DF011D928A95E9F7C5 -:102DC000FE2C8AC04D875E878D859E856A8B0E940A -:102DD000E2146A89882309F4BECF662309F4BBCFC5 -:102DE0002091BC01822F82958F7090E002970CF4A5 -:102DF0008ECF8091B7019091B8019A8389831B820D -:102E0000DD82CC822E83CE0101967FCF8095909576 -:102E10008C0D9D1DACCFF62E662309F49CCF751347 -:102E20002EC034132CC02091BC0120FD1FC0822F66 -:102E300082958F70D9F0D80115962C9315978F3005 -:102E400049F08F5F982F9295907F822F8F70892BFA -:102E500015968C93C8010E94A31486E0F801A7EB95 -:102E6000B1E001900D928A95E1F793CF86E0F801E9 -:102E7000A7EBB1E001900D928A95E1F72DC04D8747 -:102E80005E878D859E850E94E214811140CF8091DE -:102E9000BC0181608093BC01C8010E94A3141CC0C6 -:102EA000662309F458CF4D875E878D859E850E94E5 -:102EB000E214882309F44FCF2ACF811148CF0CC0E8 -:102EC000243031050CF047CF9F7009F440CFF80152 -:102ED0009581907F09F03BCF8F2D62960FB6F894C5 -:102EE000DEBF0FBECDBFDF91CF911F910F91FF903D -:102EF000EF90DF90CF9008951F93CF93DF93CDB7DE -:102F0000DEB72C970FB6F894DEBF0FBECDBF4F8350 -:102F1000588769877A878B879C87CE0107960E949E -:102F2000B515882369F08F8198852A853B85232BE9 -:102F3000F1F19F3F09F063C08F3F09F060C037C0D7 -:102F400086E0FE013796DE01119601900D928A957A -:102F5000E1F76F817885EA85FB85309741F17F3F06 -:102F600011F46F3F21F12091860130E0C9010196F3 -:102F7000877099274091850150E08417950709F4DF -:102F800047C069837A83FD83EC8396E0929FD001EA -:102F9000939FB00D1124A957BE4FFE0131960190A9 -:102FA0000D929A95E1F7809386010E942B1516E009 -:102FB00080918501909186018917C1F1189FC00108 -:102FC000112489579E4F0E94B515882379F1E0910D -:102FD00085011E9FF0011124E957FE4F4081518168 -:102FE00062817381848195810E941B158091850186 -:102FF00090E001968770992780938501D9CF4F8102 -:10300000588569857A858B859C850E941B15CFCF55 -:103010000E94DE141092860110928501E7EBF1E028 -:1030200086E0DF011D928A95E9F7C1CF2C960FB695 -:10303000F894DEBF0FBECDBFDF91CF911F910895F1 -:10304000EF92FF920F931F93CF93DF938C01009722 -:1030500009F46CC0F12CEE24E394E8012196F80108 -:103060008491843740F4843008F051C0813081F07D -:10307000823019F15BC0853709F444C0A8F19CE7A0 -:10308000980F903708F052C08F770E94291241C0E4 -:103090000E5F1F4FFE01C49180E28C0F883048F410 -:1030A000C7708E2D01C0880FCA95EAF70E94FC1ADE -:1030B00014C08C2F0E9461112DC00E5F1F4FFE01A6 -:1030C000C49180E28C0F883058F4C7708E2D01C0F7 -:1030D000880FCA95EAF70E94021B0E94231B1AC0A0 -:1030E0008C2F0E94291216C00E5F1F4FFE01C49143 -:1030F000CC2381F08FE99FE00197F1F700C0000039 -:10310000C150F6CF0E5F1F4FFE01F49003C00E9426 -:1031100061118E018F2D882309F49FCFEFE9FFE025 -:103120003197F1F700C000008150F5CFDF91CF91CA -:103130001F910F91FF90EF90089508956093C10142 -:103140007093C2018093C3019093C4010C94CA147C -:103150000F931F930091C1011091C2012091C301EF -:103160003091C401DC01CB01802B912BA22BB32B1E -:103170008093C1019093C201A093C301B093C40195 -:103180001F910F910C94CA140F931F930091C101CA -:103190001091C2012091C3013091C401DC01CB0127 -:1031A00080239123A223B3238093C1019093C20172 -:1031B000A093C301B093C4011F910F910C94CA1442 -:1031C0000F931F930091C1011091C2012091C3017F -:1031D0003091C401DC01CB0180279127A227B327BE -:1031E0008093C1019093C201A093C301B093C40125 -:1031F0001F910F910C94CA141092BD011092BE0140 -:103200001092BF011092C0010C94CA1441E050E02A -:1032100060E070E004C0440F551F661F771F8A9559 -:10322000D2F74093BD015093BE016093BF017093EC -:10323000C0010C94CA1441E050E060E070E004C0AA -:10324000440F551F661F771F8A95D2F78091BD01E5 -:103250009091BE01A091BF01B091C001482B592BA4 -:103260006A2B7B2B4093BD015093BE016093BF013D -:103270007093C0010C94CA1441E050E060E070E02B -:1032800004C0440F551F661F771F8A95D2F74095DB -:103290005095609570958091BD019091BE01A0916F -:1032A000BF01B091C001482359236A237B23409377 -:1032B000BD015093BE016093BF017093C0010C9497 -:1032C000CA1441E050E060E070E004C0440F551FB4 -:1032D000661F771F8A95D2F78091BD019091BE013C -:1032E000A091BF01B091C001482759276A277B27C9 -:1032F0004093BD015093BE016093BF017093C00124 -:103300000C94CA140F931F930091BD011091BE013C -:103310002091BF013091C001DC01CB01802B912BAA -:10332000A22BB32B8093BD019093BE01A093BF014C -:10333000B093C0011F910F910C94CA140F931F9367 -:103340000091BD011091BE012091BF013091C001DB -:10335000DC01CB0180239123A223B3238093BD0101 -:103360009093BE01A093BF01B093C0011F910F9134 -:103370000C94CA140F931F930091BD011091BE01CC -:103380002091BF013091C001DC01CB018027912742 -:10339000A227B3278093BD019093BE01A093BF01E4 -:1033A000B093C0011F910F910C94CA140895CF924D -:1033B000DF92EF92FF920F931F93CF93DF938C01D5 -:1033C000C090C101D090C201E090C301F090C4014F -:1033D0008091BD019091BE01A091BF01B091C0014B -:1033E000C82AD92AEA2AFB2ACFE1D0E0D701C601B0 -:1033F0000C2E04C0B695A795979587950A94D2F799 -:1034000080FF06C0B8018C2F0E94A308019721F409 -:10341000219760F780E001C08C2FDF91CF911F9141 -:103420000F91FF90EF90DF90CF900895CF93DF93AF -:10343000EC010E94D719BE010E94A308DF91CF9131 -:103440000895CB010E94161A08958091C5018595B3 -:103450008595859508958091C5018770089598E0B8 -:10346000899F90011124262B2093C5010C941B19D0 -:103470002091C501809582238093C501982F977074 -:1034800069F430E0482F552747FD5095241735073C -:1034900029F08595859585950C943C190895909112 -:1034A000C501977081E009F480E0089590910C01C6 -:1034B000992321F090910D01911109C020910E01E5 -:1034C00030910F01F90132969FEF40E01FC0982F15 -:1034D0009695969596959F3050F5E0910E01F09156 -:1034E0000F01E90FF11D877021E030E0A90102C052 -:1034F000440F551F8A95E2F7CA019181892B818378 -:1035000008959F3F39F04F5F4E3041F0519158136D -:10351000F8CF0DC05111F7CF942FF5CF9F3F39F061 -:10352000F901E90FF11D97FDFA9582830895089539 -:1035300090910C01992321F090910D01911109C0F6 -:1035400020910E0130910F01F9013296205F3F4F1B -:103550001FC0982F9695969596959F30F0F4E09120 -:103560000E01F0910F01E90FF11D877021E030E0AD -:10357000A90102C0440F551F8A95E2F7CA01809540 -:1035800091818923818308953196E217F30729F009 -:1035900090819813F9CF1082F7CF089581E090E0E1 -:1035A000E0910E01F0910F01E80FF91F10820196D2 -:1035B00080319105A9F708959091D901892B8093C5 -:1035C000D901089580959091D90189238093D901DB -:1035D00008951092D90108959091D801892B809374 -:1035E000D801089580959091D80189238093D801BE -:1035F00008951092D80108959091D701892B809356 -:10360000D701089580959091D70189238093D701A0 -:1036100008951092D70108958093C60108951092DD -:10362000C601089580910E0190910F01FC01319621 -:103630009C01205F3F4F80E0919191118F5FE217D5 -:10364000F307D1F70895E0910E01F0910F018091F9 -:10365000D9018083E0910E01F0910F01908180915A -:10366000D801892B8083E0910E01F0910F019081A8 -:103670008091D701892B80838091C601882361F0D6 -:10368000E0910E01F0910F019081892B80830E94BF -:10369000121B81111092C60180910E0190910F01B1 -:1036A0000C94511020E0009739F0AC0141505109C1 -:1036B000842395232F5FF7CF822F0895CF92DF9237 -:1036C000EF92FF926C01EE24FF24C114D104E104B7 -:1036D000F10421F0C701B60120E101C020E0C72EAE -:1036E000D82EE92EFF24C114D104E104F10419F00D -:1036F000285FC701B6016B017C0154E0F694E794A2 -:10370000D794C7945A95D1F7C114D104E104F104B8 -:1037100019F02C5FC701B6016B017C0142E0F69401 -:10372000E794D794C7944A95D1F7C114D104E10422 -:10373000F10419F02E5FC701B601DC01CB01B6958B -:10374000A79597958795892B8A2B8B2B09F02F5F4F -:10375000822FFF90EF90DF90CF9008958091F1013C -:10376000843021F11092DB0120E488E190E00FB673 -:10377000F894A895809360000FBE2093600080E0CD -:103780000E943E0983B7817F846083BF83B78160D5 -:1037900083BF7894889583B78E7F83BF88E10FB607 -:1037A000F89480936000109260000FBE0895089511 -:1037B00008950E94D71B0E94A2030E94D81B0E945A -:1037C000970491E0811101C090E0892F08950E9433 -:1037D000DE140E9445100C943E0982E084BD93E003 -:1037E00095BD9AEF97BD80936E0008952FB7F8941A -:1037F0008091DC019091DD01A091DE01B091DF01AB -:103800002FBF0895CF92DF92EF92FF920F931F93F5 -:103810002FB7F8944091DC015091DD016091DE01F9 -:103820007091DF012FBF6A017B01EE24FF248C0120 -:1038300020E030E0C016D106E206F30610F4415055 -:1038400051099A01281B390BC9011F910F91FF9053 -:10385000EF90DF90CF9008951F920F920FB60F92C6 -:1038600011248F939F93AF93BF938091DC0190912C -:10387000DD01A091DE01B091DF010196A11DB11D16 -:103880008093DC019093DD01A093DE01B093DF0112 -:10389000BF91AF919F918F910F900FBE0F901F908E -:1038A00018950E94420DF8942FEF87EA91E6215077 -:1038B00080409040E1F700C0000087E090EBDC0121 -:1038C0008093FB019093FC01A093FD01B093FE0156 -:1038D0009CE088E10FB6F894A895809360000FBE35 -:1038E00090936000FFCFEF92FF920F931F93CF93BF -:1038F000DF93D82FCDE08C2F0E94900405E010E0DC -:10390000E82EF12CC701002E02C0959587950A94E8 -:10391000E2F780FF09C0602F7C2F80E00E944E06F6 -:10392000D81302C081E006C00150110958F7C150F8 -:1039300010F780E0DF91CF911F910F91FF90EF90F2 -:103940000895CF93C82F8CE20E94731C882321F026 -:103950008C2FCF910C94731C80E0CF910895CF935E -:103960000E94F61D811102C00E94DC1DC5E6C150F7 -:1039700049F00E94A2038FE39CE90197F1F700C090 -:103980000000F5CF89E20E94A11C811113C18AE2D7 -:103990000E94A11C81110E94DC1D85E00E94A11CD7 -:1039A00081110E94511C0E94011E8093DA0187E060 -:1039B0000E94A11C8823A9F18BE10E94A11C8823ED -:1039C00051F08091DA0181FB222720F991E09227C2 -:1039D00090FB81F90EC08EE00E94A11C882361F04B -:1039E0008091DA0182FB222720F991E0922790FB57 -:1039F00082F98093DA0115C080E10E94A11C9091A8 -:103A0000DA01882341F093FB222720F981E0822705 -:103A100080FB93F904C0892F809580FB90F99093E7 -:103A2000DA018091DA010E94051E0E94131E809324 -:103A3000FA0180EE0E94A11C882341F08091FA01D6 -:103A4000982F909590FB80F98093FA0189E30E946A -:103A5000A11C882359F08091FA0181FB222720F9CB -:103A600091E0922790FB81F98093FA0182EE0E9407 -:103A7000A11C882359F08091FA0182FB222720F9AA -:103A800091E0922790FB82F98093FA0186EE0E94E2 -:103A9000A11C882359F08091FA0183FB222720F989 -:103AA00091E0922790FB83F98093FA0183EE0E94C4 -:103AB000A11C882359F08091FA0184FB222720F968 -:103AC00091E0922790FB84F98093FA0185E30E94AC -:103AD000A11C882359F08091FA0185FB222720F947 -:103AE00091E0922790FB85F98093FA0181E30E948F -:103AF000A11C882359F08091FA0186FB222720F926 -:103B000091E0922790FB86F98093FA0181E10E946F -:103B1000A11C882359F08091FA0187FB222720F904 -:103B200091E0922790FB87F98093FA018091FA0146 -:103B30000E94171E8091FA0187FB882780F98093E5 -:103B40000D0187E20E94A11CC82F8EE10E94A11CDA -:103B50008111C2608FE10E94A11C8111C46080E2CA -:103B60000E94A11C8111C86081E20E94A11C8111E8 -:103B7000C06182E20E94A11C8111C06283E20E94A6 -:103B8000A11C8111C06484E20E94A11C882311F051 -:103B9000C06802C0CC2329F08C2F0E940E1E6C2F0F -:103BA00003C00E940A1E682F70E080E090E0CF9171 -:103BB0000C949E18CF9108956DEE7EEF80E090E01A -:103BC0000E94482460E082E090E00E94362460E099 -:103BD00083E090E00E94362460E084E090E00E9460 -:103BE000362460E085E090E00C94362480E090E09C -:103BF0000E94302421E08D3E9E4F09F020E0822F6C -:103C0000089582E090E00C942824682F82E090E0F0 -:103C10000C94362483E090E00C942824682F83E0F1 -:103C200090E00C94362484E090E00C942824682FD3 -:103C300084E090E00C9436248091E20180FF0BC078 -:103C40006091130185E0689FB00111247595679517 -:103C5000759567952BC081FF09C06091130185E0C0 -:103C6000689FB00111247595679520C082FF07C039 -:103C70006091130185E0689FB001112417C09091F5 -:103C8000E3019923D1F060911201961788F72091F2 -:103C9000130185E0289F90011124929FA001939F1A -:103CA000500D112470E0CA010E94FA23603871059A -:103CB00040F46115710539F002C065E070E0862FAF -:103CC00008958FE7089581E008958091E20180FFD3 -:103CD00008C06091110170E07595679575956795BD -:103CE00021C081FF06C06091110170E07595679554 -:103CF00019C082FF04C06091110170E010C0909162 -:103D0000E3019923C1F0609110019617A0F780910B -:103D10001101899FC001112470E00E94FA236038CC -:103D2000710528F46115710521F0862F08958FE73C -:103D3000089581E0089561E070E0F4CF803F21F4C0 -:103D40000E941C1E819504C0813F29F40E941C1E04 -:103D50008093E6010895823F21F40E941C1E819504 -:103D600004C0833F29F40E941C1E8093E50108953E -:103D7000893F19F40E94651E05C08A3F31F40E94F4 -:103D8000651E81958093E70108958B3F21F40E9481 -:103D9000651E819504C08C3F29F40E94651E8093A6 -:103DA000E8010895843F21F48091E401816017C007 -:103DB000853F21F48091E401826011C0863F21F4A7 -:103DC0008091E40184600BC0873F21F48091E4017D -:103DD000886005C0883F31F48091E4018061809360 -:103DE000E40108958D3F21F48091E20181600BC0D0 -:103DF0008E3F21F48091E201826005C08F3F29F45B -:103E00008091E20184608093E2010895803F39F45B -:103E10008091E60187FF6CC01092E60169C0813F86 -:103E200029F48091E6011816BCF362C09091E50177 -:103E3000823F29F497FF5CC01092E50159C0833F8F -:103E400019F41916CCF354C0893F41F48091E7016D -:103E500018160CF04DC01092E7014AC08A3F29F4B1 -:103E60008091E70187FF44C0F6CF8B3F39F4809102 -:103E7000E80187FF3DC01092E8013AC08C3F29F469 -:103E80008091E8011816BCF333C0843F21F480917F -:103E9000E4018E7F17C0853F21F48091E4018D7F7E -:103EA00011C0863F21F48091E4018B7F0BC0873FD6 -:103EB00021F48091E401877F05C0883F31F480912F -:103EC000E4018F7E8093E40113C08D3F21F4809143 -:103ED000E2018E7F0BC08E3F21F48091E2018D7F45 -:103EE00005C08F3F29F48091E2018B7F8093E2012E -:103EF0008091E50181110EC08091E60181110AC017 -:103F00008091E701811106C08091E801811102C012 -:103F10001092E301089584EE91E00E945C100E94EB -:103F2000F61B9093E1018093E00108951F93CF93D6 -:103F3000DF938091E0019091E1010E94021CAC01AD -:103F40009091E301992321F02091140130E006C003 -:103F5000209115018AE0289F9001112442175307F0 -:103F600008F486C08091E501C091E601D091E70197 -:103F70001091E801811107C0C11176C0D11174C040 -:103F8000111172C075C09F3F19F09F5F9093E301BC -:103F9000181624F40E941C1E8093E5018091E5010F -:103FA00087FF05C00E941C1E81958093E5011C16A9 -:103FB00024F40E941C1E8093E6018091E60187FF95 -:103FC00005C00E941C1E81958093E6016091E50169 -:103FD000662339F1C091E601CC2319F1772767FDFB -:103FE0007095872F972F0E940B2323E333E343E33E -:103FF0005FE30E946F230E94D8226093E5016C2F3B -:10400000772767FD7095872F972F0E940B2323E357 -:1040100033E343E35FE30E946F230E94D82260935F -:10402000E6011D1624F40E94651E8093E70180912D -:10403000E70187FF05C00E94651E81958093E70117 -:10404000111624F40E94651E8093E8018091E80116 -:1040500087FF05C00E94651E81958093E801DF916E -:10406000CF911F910C948B1F9F3F09F08ECF96CF5D -:10407000DF91CF911F910895E4EEF1E085E0DF013B -:104080001D928A95E9F71092E3011092E2010895DA -:10409000833081F128F4813059F08230D1F00895D5 -:1040A000853009F449C0B8F1863009F456C0089546 -:1040B00080911501262F30E0280F311D2F3F31054B -:1040C00024F4680F6093150108958FEF8093150114 -:1040D000089580911401262F30E0280F311D2F3FC5 -:1040E000310524F4680F6093140108958FEF8093D5 -:1040F0001401089580911301262F30E0280F311DFF -:104100002F3F310524F4680F6093130108958FEF5A -:1041100080931301089580911201262F30E0280F1B -:10412000311D2F3F310524F4680F6093120108956B -:104130008FEF80931201089580911101262F30E0B6 -:10414000280F311D2F3F310524F4680F60931101B2 -:1041500008958FEF80931101089580911001262F0B -:1041600030E0280F311D2F3F310524F4680F609394 -:10417000100108958FEF809310010895833011F19D -:1041800028F4813049F0823091F00895853081F132 -:1041900020F18630C1F1089580911501681720F44F -:1041A000861B809315010895109215010895809142 -:1041B0001401681720F4861B80931401089510924F -:1041C0001401089580911301681720F4861B8093D1 -:1041D0001301089510921301089580911201681738 -:1041E00020F4861B80931201089510921201089505 -:1041F00080911101681720F4861B809311010895A6 -:1042000010921101089580911001681720F4861B07 -:104210008093100108951092100108950F931F9339 -:104220008D3109F46BC008F03FC08E3009F47FC0B7 -:10423000C0F4873009F469C068F4863009F0B1C071 -:104240008091DA01817F8E7F8093DA0181E0809313 -:10425000EA01A8C0883009F4A2C08B3009F49FC0DD -:10426000A0C0863109F49BC078F4803109F472C093 -:10427000813109F096C00E94DE1490910D0181E019 -:10428000892780930D018BC0893109F488C08B3157 -:1042900009F087C08091DA0181FB222720F991E0A3 -:1042A000922790FB81F94CC0853309F470C048F423 -:1042B000873209F46CC008F459C0893209F467C028 -:1042C00070C0833438F48A3308F04EC0883309F460 -:1042D00066C067C0833409F45AC0883409F061C0ED -:1042E0000E94DE140FEF13ED20E301501040204038 -:1042F000E1F700C000000E94511C51C00E949222B0 -:104300000E9445100E943E094AC09091DA01892F0F -:104310008095817080FB90F929F096609860909369 -:10432000DA0140C0997F977F9093DA0138C080917D -:10433000DA0182FB222720F991E0922790FB82F993 -:104340008093DA01992359F18091DA018160809399 -:10435000DA0125C08091DA0183FB222720F991E060 -:10436000922790FB83F9ECCF895301C08D5141E036 -:1043700050E060E070E08A019B0104C0000F111F53 -:10438000221F331F8A95D2F7C901B80104C061E02A -:1043900070E080E090E00E949E180E94DE1481E0B0 -:1043A00001C080E01F910F91089580E0089580E0A2 -:1043B0000895CF93C82F8091EA01813079F018F0E9 -:1043C0008230E9F187C0E0910E01F0910F01808108 -:1043D000813169F0823209F07FC009C0E0910E019D -:1043E000F0910F018081813111F0823261F48C2FC4 -:1043F0000E94D521811104C08C2F0E940E211DC066 -:1044000081E090E01AC08C2F0E94D721811114C046 -:10441000C43179F048F4CB3079F0C03109F060C094 -:1044200082E08093EA0108C0C93219F0C83321F054 -:1044300057C01092EA0154C081E0817053C0C93264 -:1044400089F118F5C43171F1A8F4C73009F046C0FC -:104450008AE08093150194E19093140193E0909386 -:1044600013018093120188E08093110188E2809308 -:10447000100134C0CE51C63088F5EC2FF0E0E65D77 -:10448000FE4F80818093E90129C0CE34E9F020F409 -:10449000CB3421F56AE013C0C13579F0C235F1F4AF -:1044A00061E00DC08091E901882319F01092E901C3 -:1044B00015C081E08093EA0115C061E006C08091DB -:1044C000E9010E9448200AC06AE08091E9010E9447 -:1044D000BE2004C01092EA0180E004C081E002C066 -:1044E00080E0ABCFCF910895E1E8F0E08081886073 -:1044F00080838081816080838FB7F89493E090936C -:10450000890090ED909388008FBF0895EFE6F0E06A -:104510008081826080830895EFE6F0E080818D7F66 -:1045200080830895EFE6F0E0908182E08927808320 -:1045300008951F920F920FB60F9211242F933F935D -:104540004F935F936F937F938F939F93AF93BF939B -:10455000EF93FF938091EB019091EC010196909382 -:10456000EC018093EB01811103C082E00E943E09BF -:10457000E091EC01E695E695F0E0EF59FA4FE49111 -:104580008091EB018E1303C080E00E943E09FF91F1 -:10459000EF91BF91AF919F918F917F916F915F91BB -:1045A0004F913F912F910F900FBE0F901F90189534 -:1045B00004D06894B1118DC0089570D088F09F57D1 -:1045C00090F0B92F9927B751A0F0D1F0660F771F5F -:1045D000881F991F1AF0BA95C9F712C0B13081F03F -:1045E00077D0B1E0089574C0672F782F8827B85F1F -:1045F00039F0B93FCCF3869577956795B395D9F7A0 -:104600003EF490958095709561957F4F8F4F9F4FA9 -:104610000895E89409C097FB3EF4909580957095B5 -:1046200061957F4F8F4F9F4F9923A9F0F92F96E9FE -:10463000BB279395F695879577956795B795F11173 -:10464000F8CFFAF4BB0F11F460FF1BC06F5F7F4F10 -:104650008F4F9F4F16C0882311F096E911C0772322 -:1046600021F09EE8872F762F05C0662371F096E82B -:10467000862F70E060E02AF09A95660F771F881FFA -:10468000DAF7880F9695879597F9089557FD905812 -:10469000440F551F59F05F3F71F04795880F97FB06 -:1046A000991F61F09F3F79F08795089512161306C0 -:1046B0001406551FF2CF4695F1DF08C016161706EF -:1046C0001806991FF1CF8695710561050894089524 -:1046D000E894BB2766277727CB0197F908950BD07D -:1046E00078C069D028F06ED018F0952309F05AC030 -:1046F0005FC01124EECFCADFA0F3959FD1F3950FD1 -:1047000050E0551F629FF001729FBB27F00DB11D55 -:10471000639FAA27F00DB11DAA1F649F6627B00DE5 -:10472000A11D661F829F2227B00DA11D621F739FCE -:10473000B00DA11D621F839FA00D611D221F749FDC -:104740003327A00D611D231F849F600D211D822F23 -:10475000762F6A2F11249F5750408AF0E1F088236A -:104760004AF0EE0FFF1FBB1F661F771F881F915077 -:104770005040A9F79E3F510570F014C0AACF5F3F8B -:10478000ECF3983EDCF3869577956795B795F795AA -:10479000E7959F5FC1F7FE2B880F911D9695879532 -:1047A00097F9089597F99F6780E870E060E00895B1 -:1047B0009FEF80EC089500240A9416161706180639 -:1047C0000906089500240A94121613061406050615 -:1047D0000895092E0394000C11F4882352F0BB0FA6 -:1047E00040F4BF2B11F460FF04C06F5F7F4F8F4F09 -:1047F0009F4F089597FB072E16F4009407D077FD7E -:1048000009D00E94142407FC05D03EF490958195B0 -:104810009F4F0895709561957F4F0895EE0FFF1F8C -:104820000590F491E02D0994AA1BBB1B51E107C030 -:10483000AA1FBB1FA617B70710F0A61BB70B881F30 -:10484000991F5A95A9F780959095BC01CD010895BF -:10485000F999FECF92BD81BDF89A992780B5089548 -:10486000A8E1B0E042E050E00C945024262FF999E2 -:10487000FECF92BD81BDF89A019700B4021639F0BF -:104880001FBA20BD0FB6F894FA9AF99A0FBE089590 -:104890000196272F0E9437240C943624DC01CB018B -:1048A000FC01F999FECF06C0F2BDE1BDF89A319640 -:1048B00000B40D9241505040B8F70895F894FFCFDE -:1048C00002204009CE09AB09770943090101C7015C -:1048D00028080A03140A404D36392105D4049E04E1 -:1048E0006504F80311042A044304010203040506C5 -:0448F00007080900AC -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/tm2030/README.md b/keyboards/ergodox_ez/keymaps/tm2030/README.md deleted file mode 100644 index ae69adf78..000000000 --- a/keyboards/ergodox_ez/keymaps/tm2030/README.md +++ /dev/null @@ -1,136 +0,0 @@ -# TypeMatrix™ 2030 inspired layout - -This is a [TypeMatrix™ 2030](http://typematrix.com/2030/features.php) inspired layout for the ErgoDox EZ. The _TypeMatrix_ is a nice small ergonomic keyboard with a matrix layout, and it provides several nice features like `enter`, `backspace` and `delete` at the center, bigger `shift` keys and international `cut`, `copy` and `paste` keys. - -The idea in this ErgoDox layout is to make it is as close as possible to the TM2030, such that it would be easy to switch between the TM and the ErgoDox. No _fancy_ features have been implemented, as this is intended to be a base for further customization if desired. Some keys have been duplicated in order to accomodate for most people. - -Most of the TM2030 features are supported except -* automatic window switching (alt-tab key, at the left of the space key) -* show desktop key (at the right of the space key) -* 102/106 modes - -Dvorak mode is even supported by pressing [`Magic`](/TMK_README.md#magic-commands)+`1` (`Magic` is by default `LShift`+`RShift`) - -Some keys had to be moved around to fit into the ErgoDox, especially the `F1`-`F12` keys and the arrow keys. - -## Base Layer -This is the default layer, close to the TM with the following differences: - - - Top row (with the `F`-keys) and rightmost column (with application shortcuts) are removed, the corresponding keys are displaced elsewhere. - - Bottom-left keys are reorganized on a single row as: `Ctrl`, `fn`, `Gui`, `Play`, `App`/`Alt`. - - `shuffle` and `desktop` are not supported. - - `right-shift` is moved on `'`, `\` and on the right thumb (the latter is actually the only _true_ `right-shift`, and must be used in the `Magic` key combination). - - `right-ctrl` is moved on `End`. - - `]` is moved in place of the dash (`-`). - - Dash (`-`) and `=` are moved on bottom right row. - - Arrows and `PgUp`/`PgDn` are moved on the thumbs. - -``` -,--------------------------------------------------. ,--------------------------------------------------. -| ` | 1 | 2 | 3 | 4 | 5 | Del | | Del | 6 | 7 | 8 | 9 | 0 | ] | -|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| -| Tab | Q | W | E | R | T |Backsp| |Backsp| Y | U | I | O | P | [ | -|--------+------+------+------+------+------|ace | |ace |------+------+------+------+------+--------| -| LShift | A | S | D | F | G |------| |------| H | J | K | L | ; | '/Shift| -|--------+------+------+------+------+------|Enter | |Enter |------+------+------+------+------+--------| -| LShift | Z | X | C | V | B | | | | N | M | , | . | / | \/Shift| -`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - |LCtrl | fn | LGui | Play |App/Alt| | RAlt | - | Home | = |End/Ctl| - `-----------------------------------' `-----------------------------------' - ,--------------. ,-------------. - |Esc/Alt| num | | Left |Right | - ,------+-------+------| |------+------+------. - | | | PgUp | | Up | | | - |Space |LShift |------| |------|RShift|Space | - | | | PgDn | | Down | | | - `---------------------' `--------------------' -``` - -### Layer Switching -- Use `num` to toggle the Numeric Layer. -- Hold `fn` to temporarily activate the Numeric & Fn Layers. - -As on the original TM 2030, when `num` layer is activated, holding `fn` disables it but enables the other `fn` keys. - -## Dvorak Layer -Same as Layer 0 but with _Dvorak_ layout, to use with QWERTY OS layout. - -Enable Dvorak layout with [`Magic`](/TMK_README.md#magic-commands)+`1` (`LShift`+`RShift`+`1`), disable with `Magic`-`0`. - -The middle (green) led indicates when the Dvorak layer is activated. - - ,--------------------------------------------------. ,--------------------------------------------------. - | ` | 1 | 2 | 3 | 4 | 5 | Del | | Del | 6 | 7 | 8 | 9 | 0 | = | - |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - | Tab | ' | , | . | P | Y |Backsp| |Backsp| F | G | C | R | L | / | - |--------+------+------+------+------+------|ace | |ace |------+------+------+------+------+--------| - | LShift | A | O | E | U | I |------| |------| D | H | T | N | S | -/Shift| - |--------+------+------+------+------+------|Enter | |Enter |------+------+------+------+------+--------| - | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | \/Shift| - `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - |LCtrl | fn | LGui | Play |App/Alt| | RAlt | [ | Home | ] |End/Ctl| - `-----------------------------------' `-----------------------------------' - ,--------------. ,-------------. - |Esc/Alt| num | | Left |Right | - ,------+-------+------| |------+------+------. - | | | PgUp | | Up | | | - |Space |LShift |------| |------|RShift|Space | - | | | PgDn | | Down | | | - `---------------------' `--------------------' - -## Numeric Layer -Numeric layer close to the TM when toggling `num`, with the following differences: - -- Numpad is displaced by 1 to the top left. -- Arrows are displaced by 1 to the left. -- Provides access to `F1`-`F12`, `caps-lock` and `num-lock`. - -The numeric layer is indicated with the left (red) led. Caps-lock is indicated with the right (blue) led. - - ,--------------------------------------------------. ,--------------------------------------------------. - | | F1 | F2 | F3 | F4 | F5 | | | | | | Tab | / | * | - | - |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - | | F6 | F7 | F8 | F9 | F10 | | | | | Home | 7 | 8 | 9 | + | - |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - | | F11 | F12 | | | |------| |------| Up | End | 4 | 5 | 6 | + | - |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - | | | | | | | | | Left | Down | Right| 1 | 2 | 3 |KpEnter | - `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - | | | | | | | | 0 | 00 | . |Etr/Ctl| - `----------------------------------' `-----------------------------------' - ,-------------. ,-------------. - | | | |n.lock|c.lock| - ,------|------|------| |------+------+------. - | | | | | | | | - | | |------| |------| | | - | | | | | | | | - `--------------------' `--------------------' - -## Fn Layer -Activated simultaneously with the Numeric layer when holding the `fn` key. As on the TM, it provides access to the following features: -- `cut`, `copy` and `paste` -- `volume up`, `volume down` and `mute` — as opposed to the TM, these are only on left hand -- `previous track` and `next track` -- `calculator`, `mail` and `browser home` -- `insert`, `power`, `sleep`, `wake`, `print screen`, `scroll-lock` and `pause` - -Note: the `eject` key does not work due to jackhumbert/qmk_firmware#82 - - ,--------------------------------------------------. ,--------------------------------------------------. - | | | | | | |Insert| |Insert|Eject |Power |Sleep | Wake |PrtScr|ScrollLk| - |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - | | | | | | |VolUp | | | | | | | | Pause | - |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - | | | | Calc | Mail |Browsr|------| |------| | | | | | | - |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - | | | cut | copy |paste | Mute |VolDn | | | | | | | | | - `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - | | | | | | | | | | | | - `----------------------------------' `----------------------------------' - ,-------------. ,-------------. - | | | | | | - ,------|------|------| |------+------+------. - | | | | | Next | | | - | Mute | |------| |------| | | - | | | | | Prev | | | - `--------------------' `--------------------' diff --git a/keyboards/ergodox_ez/keymaps/tm2030/compiled.hex b/keyboards/ergodox_ez/keymaps/tm2030/compiled.hex deleted file mode 100644 index 35837dc30..000000000 --- a/keyboards/ergodox_ez/keymaps/tm2030/compiled.hex +++ /dev/null @@ -1,1224 +0,0 @@ -:100000000C94CA040C940E050C940E050C940E0569 -:100010000C940E050C940E050C940E050C940E0514 -:100020000C940E050C940E050C94C30F0C949510B3 -:100030000C940E050C940E050C940E050C940E05F4 -:100040000C940E050C944F240C940E050C940E0584 -:100050000C940E050C94E21D0C940E050C940E05E8 -:100060000C940E050C940E050C940E050C940E05C4 -:100070000C940E050C940E050C940E050C940E05B4 -:100080000C940E050C940E050C940E050C940E05A4 -:100090000C940E050C940E050C940E050C940E0594 -:1000A0000C940E050C940E050C940E0502112411EF -:1000B00012122411121269118C111212E111F41191 -:1000C000C314C314F214F2142815481579167916BE -:1000D00053157916031603166A16791679167316D0 -:1000E00010161016101610161016101610161016E0 -:1000F00010161016101610161016101610161016D0 -:1001000022162F1636163D16471675190162026221 -:10011000016202620035002B00E100E100E0000016 -:10012000001E00140004001D0002304E001F001AC3 -:100130000016001B00E300E1002000080007000695 -:1001400000AE002C00210015000900190065744B59 -:1001500000220017000A000500000029744C002A44 -:100160000000002800000008544C002A000000286D -:10017000000000500023001C000B00110000004F85 -:1001800000240018000D001000E600520025000CAD -:10019000000E0036002D002C00260012000F003744 -:1001A000004A00E50027001300330038002E0051FC -:1001B0000030002F00347231724D71000035002B79 -:1001C00000E100E100E00000001E00340004003304 -:1001D0000002304E001F00360012001400E300E160 -:1001E000002000370008000D00AE002C0021001395 -:1001F0000018000E0065744B0022001C000C001B50 -:1002000000000029744C002A0000002800000008AB -:10021000544C002A00000028000000500023000970 -:10022000000700050000004F0024000A000B00102A -:1002300000E60052002500060017001A002F002CCF -:100240000026001500110019004A00E50027000FE4 -:100250000016001D00300051002E0038002D7231B4 -:10026000724D71000000000000000000000000005E -:10027000000000000000000000000000000000007E -:10028000000000000000000000000000000000006E -:10029000000000000000000000000000000000005E -:1002A000000000000000000000000000000000004E -:1002B000000000000000000000000000000000003E -:1002C000000000000000000000000000000000002E -:1002D000000000000000000000000000000000001E -:1002E000000000000000000000000000000000000E -:1002F00000000000000000000000000000000000FE -:1003000000000000000000000000000000000000ED -:1003100000000000000000000000000000000000DD -:1003200000000000000000000000000000000000CD -:1003300000000000000000000000000000000000BD -:1003400000000000000000000000000000000000AD -:10035000000000000000000000000000000000009D -:10036000000000000000000000000000000000008D -:10037000000000000000000000000000000000007D -:10038000000000000000000000000000000000006D -:10039000000000000000000000000000000000005D -:1003A000000000000000000000000000000000004D -:1003B000000000000000000000000000000000003D -:1003C000000000000000000000000000000000002D -:1003D000000000000000000000000000000000001D -:1003E000000000000000000000000000000000000D -:1003F00000000000000000000000000000000000FD -:1004000000000000000000000000000000000000EC -:1004100000000000000000000000000000000000DC -:1004200000000000000000000000000000000000CC -:1004300000000000000000000000000000000000BC -:1004400000000000000000000000000000000000AC -:10045000000000000000000000000000000000009C -:10046000000000000000000000000000000000008C -:10047000000000000000000000000000000000007C -:10048000000000000000000000000000000000006C -:10049000000000000000000000000000000000005C -:1004A000000000000000000000000000000000004C -:1004B000000000000000000000000000000000003C -:1004C000000000000000000000000000000000002C -:1004D000000000000000000000000000000000001C -:1004E000000000000000000000000000000000000C -:1004F00000000000000000000000000000000000FC -:1005000000000000000000000000000000000000EB -:1005100000000000000000000000000000000000DB -:1005200000000000000000000000000000000000CB -:1005300000000000000000000000000000000000BB -:1005400000000000000000000000000000000000AB -:10055000000000000000000000000000000000009B -:10056000000000000000000000000000000000008B -:10057000000000000000000000000000000000007B -:10058000000000000000000000000000000000006B -:10059000000000000000000000000000000000005B -:1005A000000000000000000000000000000000004B -:1005B000000000000000000000000000000000003B -:1005C000000000000000000000000000000000002B -:1005D000000000000000000000000000000000001B -:1005E000000000000000000000000000000000000B -:1005F00000000000000000000000000000000000FB -:1006000000000000000000000000000000000000EA -:1006100000000000000000000000000000000000DA -:1006200000000000000000000000000000000000CA -:1006300000000000000000000000000000000000BA -:1006400000000000000000000000000000000000AA -:100650000000000000010001000100010001000095 -:10066000003A003F0044000100010001003B00404F -:100670000045000100010001003C004100010001B3 -:1006800000010001003D00420001000100010001E5 -:10069000003E0043000100010000000100010001D4 -:1006A00000000001000000010001000100000050F6 -:1006B00000000053003F00010052005100000039CB -:1006C0000040004A004D004F00010001002B005F78 -:1006D000005C00590062000100540060005D005A97 -:1006E0000001300100550061005E005B0063000105 -:1006F00000560057005700580058710000010001D3 -:1007000000010001000100000001000100010001E2 -:1007100000010001000100010001004C0201000184 -:100720000001000100B20049010100A80001000120 -:1007300000B10049020100010001000100B500A85C -:1007400000000001004900A9000000AA000000010B -:1007500000490001000000010000000100B000019C -:10076000000100010000000100A5000100010001DE -:10077000000100AC00A60001000100010001000121 -:1007800000A7000100010001000100010046000176 -:1007900000010001000100AB00470048000100011A -:1007A000000100000016034500720067006F00445E -:1007B000006F007800200045005A00000016034535 -:1007C00000720067006F0044006F00780020004551 -:1007D000005A0000000403090409026D000401002E -:1007E000A0FA090400000103010100092111010020 -:1007F00001223F000705810308000A0904010001E6 -:1008000003010200092111010001224D00070582A8 -:100810000308000A09040200010300000009211175 -:100820000100012236000705830308000A090403BA -:100830000001030000000921110100012239000715 -:100840000584031000011201100100000008EDFEF4 -:10085000071301000102000105010906A1010507B6 -:1008600019E029E7150025019508750181020508A1 -:1008700019012905950575019102950175039101ED -:100880000507190029771500250195787501810262 -:10089000C005010980A101850216010026B7001AD2 -:1008A00001002AB700751095018100C0050C0901EF -:1008B000A1018503160100269C021A01002A9C0250 -:1008C000751095018100C005010902A1010901A16E -:1008D00000050919012905150025019505750181F6 -:1008E0000295017503810105010930093115812542 -:1008F0007F95027508810609381581257F95017558 -:10090000088106050C0A38021581257F95017508B6 -:100910008106C0C005010906A101050719E029E704 -:100920001500250195087501810295017508810161 -:1009300005081901290595057501910295017503B1 -:1009400091010507190029FF150025FF9506750877 -:100950008100C00000000000000000000000010253 -:1009600004060A0F17202C3A4A5D71879DB3C7DA37 -:10097000E9F5FCFFFCF5E9DAC7B39D87715D4A3AFA -:100980002C20170F0A0604020100000000000000DE -:100990000000000011241FBECFEFDAE0DEBFCDBFA4 -:1009A00004B603FE24C08091FB019091FC01A0914C -:1009B000FD01B091FE018730904BA740B04BB9F4D8 -:1009C0001092FB011092FC011092FD011092FE01A9 -:1009D00014BE84B7877F84BF88E10FB6F8948093F4 -:1009E0006000109260000FBEE0E0FFE3099511E0A7 -:1009F000A0E0B1E0ECE2FCE402C005900D92A4336B -:100A0000B107D9F711E0A4E3B1E001C01D92AB3FFB -:100A1000B107E1F70E94070D0C9414260C94000016 -:100A20001092B9008AE08093B800089594EA9093F8 -:100A3000BC009091BC0097FFFCCF9091B900987FCB -:100A4000983021F0903111F081E008958093BB003F -:100A500084E88093BC008091BC0087FFFCCF80912C -:100A6000B900887F883111F0803471F780E00895F3 -:100A700084E98093BC008091BC0084FDFCCF089584 -:100A80008093BB0084E88093BC008091BC0087FF0A -:100A9000FCCF9091B900987F81E0983209F480E012 -:100AA000089584E88093BC008091BC0087FFFCCF50 -:100AB0008091BB00089580910101811115C080E4EF -:100AC0000E9416058093010181110CC082E10E94F1 -:100AD000400580930101811105C08FEF0E94400500 -:100AE000809301010E94380584B1807F84B985B16B -:100AF000807F85B98AB1837F8AB98BB1837F8BB9B7 -:100B00003E98469808950E941607809301010E941E -:100B10005B0580B38C7080BB81B3836F81BBA5E321 -:100B2000B1E0E3E4F1E08EE08E0F11921D928E139E -:100B3000FCCF0C940007BF92CF92DF92EF92FF920E -:100B40000F931F93CF93DF9380910101882379F056 -:100B5000809134018F5F80933401811108C00E941D -:100B6000160780930101811102C00E94A80605E3C7 -:100B700011E0C0E0D0E0DD24D39482E0C82EEE2462 -:100B8000E394F12CC730D10500F58091010181116A -:100B900064C080E40E94160580930101811112C097 -:100BA00082E10E9440058093010181110BC0C701C1 -:100BB0000C2E01C0880F0A94EAF780950E94400528 -:100BC000809301010E94380548C0CA30A1F028F482 -:100BD000C83059F0C93061F005C0CC3089F070F0F0 -:100BE000CD3089F0209A289810C0219A29980DC0FC -:100BF000229A2A980AC0239A2B9807C0529A01C0B9 -:100C0000539A5B9802C03E9A469890EA9A95F1F7FB -:100C10009FB1799902C082E001C080E091709D256A -:100C2000982B7C9902C084E001C080E0892B7D99DB -:100C300002C038E001C030E0832B7E9902C020E181 -:100C400001C020E0822B9FB19095991F9927991F91 -:100C50009295990F907E892B0FC08091010181118F -:100C600049C080E40E94160580930101882379F130 -:100C7000B12C0E9438058B2DF8019081981719F03E -:100C80008083C09200010E945B0521960F5F1F4F79 -:100C9000CE30D10509F076CF80910001882361F133 -:100CA000815080930001882339F08FE99FE00197FC -:100CB000F1F700C0000020C0A3E4B1E0E5E3F1E0FB -:100CC000CF01825F91919D938E13FCCF15C083E17C -:100CD0000E944005809301018111CACF81E40E94E6 -:100CE0001605809301018111C3CF0E945105B82ED2 -:100CF000B094BFCF80E0C0CF0E94A60681E0DF9114 -:100D0000CF911F910F91FF90EF90DF90CF90BF9008 -:100D10000895E82FF0E0ED5BFE4F8081089508957F -:100D20000F931F93CF93DF93C3E4D1E010E00C2F18 -:100D3000025F899190E00E94581D180F0C13F9CFA3 -:100D4000812FDF91CF911F910F9108950C947B0714 -:100D500056985E9825982D9826982E9827982F9823 -:100D60008FEF90E0909389008093880090938B00A0 -:100D700080938A0090938D0080938C00259A2D9A01 -:100D80002FEF80E792E0215080409040E1F700C0D3 -:100D90000000269A2E9A2FEF80E792E021508040A3 -:100DA0009040E1F700C00000279A2F9A2FEF80E7CC -:100DB00092E0215080409040E1F700C0000025986B -:100DC0002D982FEF80E792E0215080409040E1F78E -:100DD00000C0000026982E982FEF80E792E0215067 -:100DE00080409040E1F700C0000027982F98569867 -:100DF0005E9825982D9826982E9827982F980895D4 -:100E000089EA8093800089E08093810024982C985F -:100E10003F988AB18F748AB96E98479A8BB1806B6C -:100E20008BB9769A0E94A8060C947A0780E2809388 -:100E300001018091510181110EC00E94100581E0D5 -:100E4000809351012FEF83ED90E32150804090403B -:100E5000E1F700C0000080E40E94160580930101C4 -:100E600081112EC00E94400580930101811128C08C -:100E70000E94400580930101811122C08FE30E94EE -:100E800040058093010181111BC00E94380580E458 -:100E90000E94160580930101811112C08CE00E940E -:100EA00040058093010181110BC00E944005809391 -:100EB0000101811105C08FE30E944005809301016B -:100EC0000E943805809101010895613049F0623037 -:100ED00059F488E00E94671B89E00E94671B04C0E8 -:100EE000FC018281811103C080E090E008958AE0D6 -:100EF00091E00895089556985E9825982D98269823 -:100F00002E9827982F988091BD019091BE01A091B5 -:100F1000BF01B091C00190FF02C0259A2D9A809127 -:100F2000C1019091C201A091C301B091C401029787 -:100F3000A105B10511F4269A2E9A0E944B1281FF49 -:100F400002C0279A2F9A089581E0089581E00895BC -:100F50000C94A60708950F931F93CF93DF938C01F2 -:100F6000FC01C081D181CE010E94DD1BBE010E9427 -:100F70005408EC01B8010E94A807882309F48DC029 -:100F8000F8018281882309F44AC080915D018111B2 -:100F90001FC0C431F0E5DF0709F051C00E94AA0765 -:100FA00081E080935D010E94AC1D90935C01809371 -:100FB0005B0110925401109256011092550110924B -:100FC00058011092570110925A011092590165C0B0 -:100FD00080915B0190915C010E94B81D883C910555 -:100FE00070F480915401E82FF0E0EE0FFF1FEB5AF0 -:100FF000FE4FD183C0838F5F809354014EC0C438AD -:1010000080E5D80721F0C538D04501F13AC0F80194 -:101010008281882341F01092520182E01EC0C438C0 -:10102000E0E5DE0759F580915201811106C086E2A4 -:101030000E94671386E20E942F1482E01CC0C4380D -:10104000F0E5DF0741F3C538D045D9F4F8018281D6 -:10105000882331F01092530180E20E947E141DC05B -:1010600080915301811106C087E20E94671387E2D5 -:101070000E942F1480E20E9485140FC0C538D0450D -:1010800029F381E08093520180935301C801DF91DD -:10109000CF911F910F910C94A40780E0DF91CF9125 -:1010A0001F910F910895089596E0799FF001112402 -:1010B00094E5899FE00DF11D1124E60FF11DEE0F5F -:1010C000FF1FEB5EFE4F859194910895880F991F45 -:1010D000FC01EB56F040859194910895880F991F7B -:1010E000FC01EB5EFE4F8591949108950F931F9341 -:1010F000CF93DF93EC01811520E3920750F5C115E2 -:1011000080E2D80708F0C3C0CB3BD10590F4C83AC1 -:10111000D10508F06AC0C53AD10508F05BC0C430FB -:10112000D10508F0D0C1219709F0CAC101E010E053 -:101130000AC2CF3FD10511F008F0C5C1C03FD105AB -:1011400008F0A2C0CE01805E9109089708F4BBC1E7 -:10115000B7C1C13090E5D90709F4A2C020F5C0316C -:101160008FE4D80770F4C11590E4D90708F094C053 -:10117000C11521E3D20708F0A3C1DD278E01106C51 -:10118000E2C1C115D04509F09BC10E94E4168FEF62 -:1011900094E32CE0815090402040E1F700C0000033 -:1011A0000E94071ED0C1C11597E5D90758F4C03178 -:1011B00021E5D20708F01CC1C43180E5D80708F446 -:1011C00075C07EC1CE0190578115904108F078C15D -:1011D000DF7073C1C53AD10509F477C1C63AD105AC -:1011E00009F076C102E810E4AEC1C83AD10509F4AD -:1011F00072C1C93AD10509F471C1CA3AD10509F4DD -:1012000070C1CB3AD10509F46FC1CC3AD10509F4CC -:101210006EC1CD3AD10509F46DC1C03BD10509F4C9 -:101220006CC1CE3AD10509F46BC1CF3AD10509F4AE -:101230006AC1C13BD10509F469C1C23BD10509F4BA -:1012400068C1C33BD10509F467C1C43BD10509F4AA -:1012500066C1C53BD10509F465C1C63BD10509F49A -:1012600064C1C73BD10509F463C1C83BD10509F48A -:1012700062C1C93BD10509F461C1CA3BD10509F47A -:1012800060C100E014E45FC18E0110655CC1CE0155 -:101290009F700E946E0858C1DF708E01106A53C1A2 -:1012A0008091DA0181608093DA014DC10E94AC1F08 -:1012B000811102C00E94921F0E94C91F90E090936A -:1012C000FB018093FA01C23080E5D80721F48091B8 -:1012D000FA01816086C0C43090E5D90721F480917D -:1012E000FA0182607EC0C63020E5D20721F48091E9 -:1012F000FA01846076C0C83080E5D80719F480917F -:10130000FA0127C0CA3090E5D90721F48091FA018B -:10131000806167C0CC3020E5D20721F48091FA01CA -:1013200080625FC0CE3080E5D80721F48091FA0159 -:10133000806457C0C03190E5D90721F48091FA014B -:1013400080684FC0C23120E5D20729F48091FA01AC -:101350008460886046C0C33080E5D80721F480915E -:10136000FA018E7F3EC0C53090E5D90721F4809107 -:10137000FA018D7F36C0C73020E5D20721F4809175 -:10138000FA018B7F2EC0C93080E5D80719F480910F -:10139000FA0126C0CB3090E5D90721F48091FA01FB -:1013A0008F7E1FC0CD3020E5D20721F48091FA0155 -:1013B0008F7D17C0CF3080E5D80721F48091FA01E6 -:1013C0008F7B0FC0C13190E5D90721F48091FA01DC -:1013D0008F7707C0C331D04531F48091FA018B7FFC -:1013E000877F8093FA018091FA010E94CD1FABC0E4 -:1013F0008D2F99278F70992781309105D9F49E01FF -:101400002370332702C0880F991F2A95E2F79C6842 -:101410008E0144E0000F111F4A95E1F70027137079 -:10142000802B912B53E0CC0FDD1F5A95E1F7C0764E -:10143000DD272FC08230910531F4DC2FCC278E01BF -:10144000016F106A80C08330910569F4CE0183700A -:10145000992701E010E002C0000F111F8A95E2F702 -:10146000C8019C680FC084309105B9F4CE01837027 -:10147000992701E010E002C0000F111F8A95E2F7E2 -:10148000C8019A6823E0CC0FDD1F2A95E1F7C07EE2 -:10149000D7708C010C2B1D2B56C08530910531F473 -:1014A000DC2FCC278E01046F106A4DC0069709F01F -:1014B0004AC0CF71DD27DC2FCC278E01106243C0DC -:1014C00000E010E040C08E013EC001E810E43BC0E7 -:1014D00003E810E438C002EE14E435C009EE14E469 -:1014E00032C00AEE14E42FC005EB14E42CC006EB66 -:1014F00014E429C007EB14E426C00CEC14E423C068 -:101500000DEC14E420C003E815E41DC00AE815E45E -:101510001AC002E915E417C004E915E414C001E299 -:1015200016E411C003E216E40EC004E216E40BC098 -:1015300005E216E408C006E216E405C007E216E478 -:1015400002C00AE216E4C801DF91CF911F910F910A -:10155000089596E0799FF001112494E5899FE00DAC -:10156000F11D1124E60FF11DEE0FFF1FEB5EFE4F84 -:1015700085919491803E9105E0F4803C910558F569 -:101580008133910509F46FC048F48932910509F45B -:1015900063C08A32910509F46DC072C08933910528 -:1015A000E9F082389105D1F08533910509F44DC0F9 -:1015B00067C0833E910581F138F4803E9105B9F012 -:1015C000823E9105D9F05CC0863E910561F1873E6F -:1015D0009105A1F155C00E94660808952091FA0175 -:1015E00020FD02C021FF4CC080EE90E049C08091F8 -:1015F000FA0180FFF9CF89E390E042C08091FA01BF -:1016000082FF0EC08091FA0184FF03C080E090E069 -:1016100037C083EE90E034C08091FA0182FFF2CFB0 -:1016200082EE90E02DC08091FA0183FF0BC0809183 -:10163000FA0184FDEBCF87EE90E022C08091FA01A1 -:1016400083FFF5CF86EE90E01BC08091FA0185FF05 -:1016500007C089E290E014C08091FA0185FFF9CFBC -:1016600085E390E00DC08091FA0186FF07C08AE211 -:1016700090E006C08091FA0186FFF9CF81E390E007 -:101680000E947608089508950C94430B80916E0192 -:101690000895CF93DF9300D01F92CDB7DEB79C01A2 -:1016A0008091F101843019F593E099833B832A837B -:1016B0009093E9008FEF9091E800815095FD06C06E -:1016C00095ED9A95F1F700008111F5CF8091E80032 -:1016D00085FF0DC040E050E063E070E0CE01019670 -:1016E0000E94B30D8091E8008E778093E8000F9000 -:1016F0000F900F90DF91CF910895CF93DF9300D09B -:101700001F92CDB7DEB72091F101243021F522E000 -:1017100029839B838A8383E08093E9008FEF9091F4 -:10172000E800815095FD06C095ED9A95F1F700000F -:101730008111F5CF8091E80085FF0DC040E050E0B9 -:1017400063E070E0CE0101960E94B30D8091E80045 -:101750008E778093E8000F900F900F90DF91CF91DC -:1017600008952091F1012430F1F422E02093E90062 -:101770002FEF3091E800215035FD06C035ED3A9548 -:10178000F1F700002111F5CF2091E80025FF0BC0F3 -:1017900040E050E065E070E00E94B30D8091E80009 -:1017A0008E778093E8000895CF93DF93EC019091BA -:1017B000F101943009F046C080910C018823D9F0E2 -:1017C00080910D018823B9F09093E9008FEF9091FB -:1017D000E800815095FD06C095E19A95F1F700006B -:1017E0008111F5CF8091E80085FF2CC040E050E0EA -:1017F00060E170E017C081E08093E9008FEF909185 -:10180000E800815095FD06C095ED9A95F1F700002E -:101810008111F5CF8091E80085FF14C040E050E0D1 -:1018200068E070E0CE010E94B30D8091E8008E77F1 -:101830008093E80080E1FE01AEE5B1E001900D92F9 -:101840008A95E1F7DF91CF9108958091F0018111A0 -:1018500009C00E94480F0E94A50F8091E200846099 -:101860008093E20008951092F001089508950C9479 -:101870003C240E949D1D0E9442240E944B120C9405 -:10188000440B42E061EC81E00E94C20E42E061EC58 -:1018900082E00E94C20E42E061EC83E00E94C20E30 -:1018A00042E161EC84E00C94C20E8091F30183303C -:1018B00009F455C030F4813071F0823009F48EC0E3 -:1018C00008958A3009F47AC08B3009F460C08930F9 -:1018D00009F09CC020C08091F201813A09F096C0C5 -:1018E0008091E800877F8093E8008091F6019091D5 -:1018F000F701892B21F460E18EE591E003C060E0FF -:1019000080E090E070E00E94FE0D8091E8008B770F -:101910008093E80008958091F201813209F076C049 -:101920008091F6019091F701009719F0039709F063 -:101930006DC08091E800877F8093E8008091E80087 -:1019400082FD05C08091F1018111F8CF5FC08091C7 -:10195000F10080936E018091E8008B7753C08091F5 -:10196000F201813A09F052C08091F6019091F7019D -:10197000892B09F04BC08091E800877F8093E800B5 -:101980008091E80080FFFCCF80910C0136C08091EF -:10199000F2018132D9F58091F6019091F701892BFE -:1019A000A9F58091E800877F8093E8000E94F70EF8 -:1019B0008091F40180930C010C94E4168091F20163 -:1019C000813221F58091E800877F8093E8000E94B2 -:1019D000F70E8091F50180936F0108958091F201D7 -:1019E000813AA1F48091E800877F8093E80080919C -:1019F000E80080FFFCCF80916F018093F10080911F -:101A0000E8008E778093E8000C94F70E089584B771 -:101A1000877F84BF88E10FB6F894809360001092AE -:101A200060000FBE90E080E80FB6F89480936100EC -:101A3000909361000FBE0E949A120E94480F0E946C -:101A4000A50F8091E20084608093E20078940E9468 -:101A50002B120E949C1282E091E00E9446120E948A -:101A60002A248091F101853069F40E94641D8091DF -:101A7000EF018823B1F30E948F1D882391F30E9408 -:101A80009D0DEFCF0E94A212ECCF292F33272330D8 -:101A90003105C9F064F42130310581F0223031057F -:101AA00009F043C08DE690E029ED37E042C02132D5 -:101AB0003105F1F02232310541F137C082E190E089 -:101AC00026E438E036C099278130910541F0823014 -:101AD000910541F0892B49F5E5EDF7E005C0EDEB07 -:101AE000F7E002C0E5EAF7E0849190E09F0121C0B1 -:101AF0006430D8F4E62FF0E0EE0FFF1FEE5DFE4FEE -:101B00002081318189E090E014C0643070F470E08D -:101B1000FB01EE0FFF1FE65EFE4F20813181FB01CE -:101B2000EA5EFE4F808190E004C080E090E020E01B -:101B300030E0FA0131832083089580E189BD82E19C -:101B400089BD09B400FEFDCF8091D8008F7D8093C0 -:101B5000D8008091E00082608093E0008091E000F6 -:101B600081FDFCCF0895CF92DF92EF92FF920F9309 -:101B70001F93CF93DF93EC018B016A010E94160F34 -:101B8000811133C0C114D10439F0F60180819181F3 -:101B9000081B190BC80FD91FE12CF12C01151105D9 -:101BA00019F18091E80085FD16C08091E8008E77DC -:101BB0008093E800C114D10449F0F601808191813D -:101BC000E80EF91EF182E08285E00FC00E94160F38 -:101BD000882321F30AC089918093F10001501109F3 -:101BE000FFEFEF1AFF0ADACF80E0DF91CF911F916C -:101BF0000F91FF90EF90DF90CF9008952091F80122 -:101C00003091F9012617370748F06115710539F44D -:101C10002091E8002E772093E80001C0B90140E050 -:101C200061157105A9F12091F101222309F443C046 -:101C3000253009F442C02091E80023FD40C02091E6 -:101C4000E80022FD32C02091E80020FFE9CF40915A -:101C5000F3002091F20030E0342BFC01CF0161153C -:101C6000710559F02830310540F481918093F100DD -:101C7000615071092F5F3F4FF1CF41E028303105AE -:101C800009F040E02091E8002E772093E800C8CFCB -:101C90004111C9CF0AC08091F101882361F08530DC -:101CA00061F08091E80083FD0AC08091E80082FF26 -:101CB000F2CF80E0089582E0089583E0089581E006 -:101CC00008952091F8013091F9012617370748F05F -:101CD0006115710539F42091E8002E772093E80012 -:101CE00001C0B901FC0120E06115710591F18091FD -:101CF000F101882309F440C0853009F43FC0809188 -:101D0000E80083FD3DC08091E80082FD2FC08091F6 -:101D1000E80080FFE9CF2091F3008091F20090E08D -:101D2000922B6115710559F08830910540F424918A -:101D30002093F1003196615071090196F2CF21E0B4 -:101D4000089709F020E08091E8008E778093E80002 -:101D5000CBCF2111CCCF0AC08091F101882361F053 -:101D6000853061F08091E80083FD0AC08091E80031 -:101D700082FFF2CF80E0089582E0089583E0089525 -:101D800081E00895982F973058F59093E9009817BF -:101D900039F07091EC002091ED005091F00003C0FB -:101DA000242F762F50E021FF19C03091EB003E7FA9 -:101DB0003093EB003091ED003D7F3093ED0030919A -:101DC000EB0031603093EB007093EC002093ED005A -:101DD0005093F0002091EE0027FF07C09F5FD3CF04 -:101DE0008F708093E90081E0089580E008958091EC -:101DF000F20187FF11C08091E80082FD05C080914B -:101E0000F1018111F8CF11C08091E8008B770BC0F0 -:101E10008091F101882349F08091E80080FFF8CF9C -:101E20008091E8008E778093E80008952091E40087 -:101E30003091E50095E64091EC00842F817040FFE1 -:101E400022C08091E80080FD1CC08091F1018823B0 -:101E500091F0853091F08091EB0085FD10C04091AC -:101E6000E4005091E5004217530729F39A0191507D -:101E700011F784E0089582E0089583E0089581E0F9 -:101E8000089580E008954091E80042FFDECF089574 -:101E90000E94B60F0E94BE0FE0EEF0E080818160EC -:101EA0008083E8EDF0E080818F77808319BCA7ED17 -:101EB000B0E08C918E7F8C9380818F7E8083109296 -:101EC000F00108950F931F93CF93DF930E94B60FF5 -:101ED0000E94BE0FC8EDD0E088818F77888388810B -:101EE0008068888388818F7D888319BC1092F10176 -:101EF0001092ED011092EF011092EE0100EE10E051 -:101F0000F80180818B7F808388818160888342E0B3 -:101F100060E080E00E94C20EE1EEF0E080818E7F02 -:101F20008083E2EEF0E08081816080838081886040 -:101F30008083F80180818E7F80838881806188839F -:101F4000DF91CF911F910F910895E8EDF0E080812E -:101F50008F7E8083E7EDF0E080818160808384E084 -:101F600082BF81E08093F0010C94620FE8EDF0E015 -:101F700080818E7F80831092E20008951092DA00B3 -:101F80001092E10008951F920F920FB60F92112444 -:101F90002F933F934F935F936F937F938F939F9371 -:101FA000AF93BF93EF93FF938091E10082FF0BC04B -:101FB0008091E20082FF07C08091E1008B7F8093D7 -:101FC000E1000E942A128091DA0080FF1FC08091F8 -:101FD000D80080FF1BC08091DA008E7F8093DA00EA -:101FE0008091D90080FF0DC080E189BD82E189BD6B -:101FF00009B400FEFDCF81E08093F1010E94250C21 -:1020000005C019BC1092F1010E94330C8091E100CF -:1020100080FF19C08091E20080FF15C08091E2002E -:102020008E7F8093E2008091E20080618093E200E5 -:102030008091D80080628093D80019BC85E080939D -:10204000F1010E94370C8091E10084FF30C0809143 -:10205000E20084FF2CC080E189BD82E189BD09B422 -:1020600000FEFDCF8091D8008F7D8093D8008091B5 -:10207000E1008F7E8093E1008091E2008F7E80936B -:10208000E2008091E20081608093E2008091ED01A6 -:10209000882311F084E007C08091E30087FD02C02F -:1020A00081E001C083E08093F1010E94390C8091AE -:1020B000E10083FF29C08091E20083FF25C0809169 -:1020C000E100877F8093E10082E08093F10110922C -:1020D000ED018091E1008E7F8093E1008091E2002C -:1020E0008E7F8093E2008091E20080618093E20025 -:1020F00042E060E080E00E94C20E8091F0008860C3 -:102100008093F0000E94360CFF91EF91BF91AF9148 -:102110009F918F917F916F915F914F913F912F91FF -:102120000F900FBE0F901F9018951F920F920FB631 -:102130000F9211242F933F934F935F936F937F934D -:102140008F939F93AF93BF93CF93DF93EF93FF93BF -:10215000C091E900CF708091EC00D82FD17080FD44 -:10216000D0E81092E9008091F000877F8093F00022 -:1021700078940E94D9101092E9008091F000886054 -:102180008093F000CD2BCF70C093E900FF91EF91C9 -:10219000DF91CF91BF91AF919F918F917F916F917F -:1021A0005F914F913F912F910F900FBE0F901F9015 -:1021B00018951F93CF93DF93CDB7DEB7AA970FB6CD -:1021C000F894DEBF0FBECDBFE2EFF1E088E08E0FE6 -:1021D0009091F10091938E13FBCF0E94550C80914A -:1021E000E80083FF1FC18091F2019091F301492F14 -:1021F00050E04A30510508F015C1FA01EA5AFF4F84 -:102200000C94C425803881F0823809F00BC180918C -:10221000F6018F708093E9008091EB0085FB8827A1 -:1022200080F91092E90006C08091EE019091EF01D3 -:10223000911182609091E800977F9093E8008093DD -:10224000F1001092F100C8C0282F2D7F09F0EAC0DC -:10225000882319F0823061F0E5C08091F40181306B -:1022600009F0E0C0933009F080E08093EF012BC0CB -:102270008091F401811127C08091F6018F7009F4DB -:10228000D1C08093E9002091EB0020FF1CC0933067 -:1022900021F48091EB00806214C09091EB0090617A -:1022A0009093EB0021E030E0A90102C0440F551FDC -:1022B0008A95E2F74093EA001092EA008091EB00E1 -:1022C00088608093EB001092E9008091E800877F9E -:1022D00086C08111A7C01091F4011F778091E3009F -:1022E0008078812B8093E3008091E800877F809342 -:1022F000E8000E94F70E8091E80080FFFCCF8091FB -:10230000E30080688093E300111102C082E001C005 -:1023100083E08093F10186C08058823008F082C04B -:102320008091F4019091F5018C3D53E0950779F58A -:1023300083E08A838AE289834FB7F894DE0113969B -:1023400020E03EE051E2E32FF0E050935700E491AB -:1023500020FF03C0E295EF703F5FEF708E2F90E09B -:10236000EA3010F0C79601C0C0968D939D932F5F01 -:10237000243149F74FBF8091E800877F8093E800C0 -:102380006AE270E0CE0101960E94FE0D14C0AE011B -:102390004F5F5F4F6091F6010E94450DBC010097B1 -:1023A00009F440C09091E800977F9093E8008981FC -:1023B0009A810E94610E8091E8008B778093E800FB -:1023C00031C0803879F58091E800877F8093E800FC -:1023D0008091ED018093F1008091E8008E778093E9 -:1023E000E8000E94F70E1EC081111CC09091F401FC -:1023F0009230C0F48091E800877F8093E80090934A -:10240000ED010E94F70E8091ED01811106C08091CF -:10241000E30087FD02C081E001C084E08093F10108 -:102420000E94410C8091E80083FF0AC08091E8007F -:10243000877F8093E8008091EB0080628093EB00BF -:10244000AA960FB6F894DEBF0FBECDBFDF91CF9135 -:102450001F9108950895CF938091F1018823A1F0F1 -:10246000C091E900CF709091EC00892F817090FDB0 -:1024700080E8C82B1092E9008091E80083FD0E945B -:10248000D910CF70C093E900CF9108959093750152 -:10249000809374010895E0917401F0917501309773 -:1024A00021F00190F081E02D099480E00895E09101 -:1024B0007401F0917501309721F00280F381E02DD5 -:1024C00009940895E0917401F0917501309721F01D -:1024D0000480F581E02D09940895209172013091D6 -:1024E00073018217930771F09093730180937201C7 -:1024F000E0917401F0917501309721F00680F78129 -:10250000E02D099408952091700130917101821796 -:10251000930771F09093710180937001E0917401C1 -:10252000F0917501309721F00084F185E02D099438 -:10253000089508950C9499120E94A31D0E9483058A -:102540000C94651E9F92AF92BF92CF92DF92EF9252 -:10255000FF920F931F93CF93DF9300D000D000D052 -:10256000CDB7DEB70E949B050DE010E0AA24A3942E -:10257000B12C902E802F0E948906980129583E4F39 -:102580006901F901F080F826A1F40150110988F7DA -:102590008FEF89838A831B820E94AC1D8160782F14 -:1025A0009D838C8349815A816B818D810E9439136F -:1025B0002FC09091DA0191FF04C08E830E948F0694 -:1025C0008E8125E030E0A501022E01C0440F0A945F -:1025D000EAF7E42E4F21C1F029839A828E2191E0FF -:1025E00009F490E09B830E94AC1D8160782F9D834D -:1025F0008C8349815A816B818D810E943913F60148 -:102600008081E826E08204C021503109E0F6BDCF88 -:102610000E944C21109176010E944B121817B9F0BC -:102620000E944B128093760126960FB6F894DEBF77 -:102630000FBECDBFDF91CF911F910F91FF90EF9013 -:10264000DF90CF90BF90AF909F900C94440B269654 -:102650000FB6F894DEBF0FBECDBFDF91CF911F91B3 -:102660000F91FF90EF90DF90CF90BF90AF909F9031 -:102670000895CF93DF93CDB7DEB72B970FB6F894BD -:10268000DEBF0FBECDBF4F83588769877A878B87A0 -:10269000DE01119686E0FD0111928A95E9F785E049 -:1026A000FE01379601900D928A95E1F749815A8192 -:1026B0006B817C818D819E810E9482192B960FB641 -:1026C000F894DEBF0FBECDBFDF91CF910895CF93B9 -:1026D000882309F4C2C0C82F823859F40E944B12D3 -:1026E00081FDBBC089E30E945C1C0E94291D89E317 -:1026F0000CC0833879F40E944B1280FDAEC083E594 -:102700000E945C1C0E94291D83E50E949E1CCF91A3 -:102710000C94291D843859F40E944B1282FD9DC0EF -:1027200087E40E945C1C0E94291D87E4EECF8CEF99 -:102730008C0F813A48F48C2F0E948F2381118DC019 -:102740008C2F0E945C1CE3CF80E28C0F883048F411 -:10275000C77081E001C0880FCA95EAF70E94E21CA9 -:10276000D6CF8BE58C0F833078F4C53A29F0C63A82 -:1027700031F083E890E005C081E890E002C082E893 -:1027800090E0CF910C946D1288E58C0F833108F0A6 -:1027900064C0C83A39F1C93A41F1CA3A49F1CB3A71 -:1027A00051F1CC3A59F1CD3A61F1C03B69F1CE3AE1 -:1027B00071F1CF3A79F1C13B81F1C23B89F1C33B61 -:1027C00091F1C43B99F1C53BA1F1C63BA9F1C73BCF -:1027D000B1F1C83BB9F1C93BC1F1CA3BC9F180E0D5 -:1027E00090E038C082EE90E035C089EE90E032C0D3 -:1027F0008AEE90E02FC085EB90E02CC086EB90E055 -:1028000029C087EB90E026C08CEC90E023C08DECD3 -:1028100090E020C083E891E01DC08AE891E01AC0F2 -:1028200082E991E017C084E991E014C081E292E06E -:1028300011C083E292E00EC084E292E00BC085E218 -:1028400092E008C086E292E005C087E292E002C012 -:102850008AE292E0CF910C948312CF91089588235D -:1028600009F44BC0823859F40E944B1281FF45C0D5 -:1028700089E30E945C1C0E94291D89E30CC08338F7 -:1028800071F40E944B1280FF38C083E50E945C1CEB -:102890000E94291D83E50E949E1C0C94291D8438EA -:1028A00059F40E944B1282FF28C087E40E945C1CEE -:1028B0000E94291D87E4EFCF9CEF980F913A58F3BF -:1028C00090E2980F983050F4877091E001C0990F12 -:1028D0008A95EAF7892F0E94E81CDFCF9BE5980FC5 -:1028E000933020F480E090E00C946D12885A83318C -:1028F00020F480E090E00C9483120895882321F066 -:102900000E94E21C0C94291D0895882321F00E9446 -:10291000E81C0C94291D08957F928F929F92AF928C -:10292000BF92CF92DF92EF92FF920F931F93CF93BC -:10293000DF931F92CDB7DEB77C01C62E772EFC0148 -:10294000058102950F70128111110E94FF1C0E94D7 -:10295000551C882379F0112369F080E28C0D8830B2 -:1029600048F082E00E943E1C0E94551C91E0D82E47 -:10297000D92601C0D12CE72DE295EF70F0E0E05AA6 -:10298000FF4F0C94C425872D807F072D0F7088235F -:1029900011F00295007F112389F0002309F490C102 -:1029A00080E28C0D883020F4802F0E94E21C03C04E -:1029B000802F0E94F21C0E94291D82C18C2D0E9432 -:1029C0002F14002309F495C180E28C0D883020F487 -:1029D000802F0E94E81C03C0802F0E94F81C0E94D8 -:1029E000291D87C1972D907F872D8F70903211F010 -:1029F0008295807FCC2021F0F1E0CF16B1F01EC08F -:102A0000112349F0002309F414C1013009F011C168 -:102A10000E94121D6EC1002319F0013009F469C132 -:102A200089830E94151D89810AC1112321F002307A -:102A300008F05FC1FEC001115CC101C1112321F08A -:102A4000002309F4F6C03CC1002309F4F8C03EC1DC -:102A5000872D86958695837090E0009719F00197F1 -:102A600061F047C1112321F08C2D972D937002C086 -:102A700080E090E00E946D123CC1112321F08C2D6A -:102A8000972D937002C080E090E00E94831231C1C4 -:102A90008C2D112319F00E94542002C00E94BC20EA -:102AA0000E94412126C1872D837009F052C0111167 -:102AB00020C18C2D829586958770880F880F9C2D5C -:102AC0009F70892E912CA12CB12C082E04C0880C4B -:102AD000991CAA1CBB1C0A94D2F7C4FE14C00FE0B8 -:102AE00010E020E030E0B901A80104C0440F551FF8 -:102AF000661F771F8A95D2F7CB01BA016095709552 -:102B00008095909503C060E070E0CB01272D26955D -:102B10002695237030E02230310569F023303105ED -:102B200089F0682979298A299B292130310571F09A -:102B30000E94CA1ADEC0682979298A299B290E9425 -:102B4000E61AD7C00E94CA1AC501B4010E94AE1A83 -:102B5000D0C0112319F0872D817001C0869588237C -:102B600009F4C7C08C2D829586958770880F880FD1 -:102B70009C2D9F70892E912CA12CB12C082E04C065 -:102B8000880C991CAA1CBB1C0A94D2F7C4FE14C062 -:102B90000FE010E020E030E0B901A80104C0440FCC -:102BA000551F661F771F8A95D2F7CB01BA01609532 -:102BB00070958095909503C060E070E0CB01272D63 -:102BC000269526952370422F50E04230510569F03A -:102BD0004330510589F0682979298A299B29413098 -:102BE000510571F00E94A41B84C0682979298A29A3 -:102BF0009B290E94C01B7DC00E94A41BC501B4017B -:102C00000E94881B76C08C2D90E0FC01E05EF109EB -:102C1000E531F10508F050C0E059FF4F0C94C42590 -:102C20000C2D0F70872D8F71112331F00E94211B05 -:102C3000802F0E947E145DC00E94421B802F0E9444 -:102C4000851457C0112339F0011153C0872D8F719E -:102C50000E94671B4EC0023008F04BC0F7CF112313 -:102C600039F0872D8F710E94211B43C01123C9F3B6 -:102C7000872D8F710E94421B3CC0112329F0872DA4 -:102C80008F710E940C1B35C00E94021B32C01123A1 -:102C900051F0172D1F71812F0E94211B63E0812F9E -:102CA0000E94351C26C081E00E943E1C023008F1C3 -:102CB00082E00E943E1C1DC0112331F0002389F2E6 -:102CC0008C2D0E94671315C0002391F28C2D0E9459 -:102CD0002F140FC0472D4F706C2DC7010E94650740 -:102CE0000E94261A06C0472D4F706C2DC7010E9406 -:102CF0005308DD20F9F00E94311C80FD1BC0F70154 -:102D000012820E942B1C0E94211BC7010E94A9163F -:102D10000E942B1C0F90DF91CF911F910F91FF907C -:102D2000EF90DF90CF90BF90AF909F908F907F906B -:102D30000C94421B0F90DF91CF911F910F91FF9048 -:102D4000EF90DF90CF90BF90AF909F908F907F904B -:102D500008950F931F93CF93DF93EC01888199819E -:102D60002B813C81232BB9F09F3F11F48F3F99F0C9 -:102D7000CE010E94AB07882371F0688179818A8136 -:102D80000E94271C8C010E94DC1B0E94A31AB80120 -:102D9000CE010E948C14DF91CF911F910F91089565 -:102DA0000E94FF1C0E940F1D0E94D41C0E94291D1E -:102DB0000E94F2210E94412180E090E00E946D1269 -:102DC00080E090E00C9483120E94EF1C0C94D016CB -:102DD0000E941C1C292F22952F7030E02C303105C9 -:102DE0004CF42A3031056CF422503109223031057F -:102DF000A8F407C02C30310569F02F30310551F0AF -:102E00000DC0803F69F018F4803E40F409C0843F53 -:102E100029F406C093FB882780F9089580E008957F -:102E200081E00895CF93DF9300D000D01F92CDB7FB -:102E3000DEB70F900F900F900F900F90DF91CF9112 -:102E40000895CF93DF9300D000D000D0CDB7DEB788 -:102E500026960FB6F894DEBF0FBECDBFDF91CF919F -:102E600008951F93CF93DF93C091850116E0809161 -:102E70008601C81799F0D0E01C9FF0011D9FF00D4E -:102E80001124E957FE4F4081518162817381848111 -:102E900095810E9421172196C770E9CFDF91CF91CC -:102EA0001F9108954091B7015091B8016091B90107 -:102EB0007091BA018091BB019091BC010C942117D3 -:102EC0008091BC0182958F7009F054C08091B90146 -:102ED000882309F44FC080918501A09186016091FB -:102EE000B7017091B8014091BA015091BB01B6E0B1 -:102EF0008A1709F43FC090E041155105C1F17F3FA9 -:102F000011F46F3FA1F1B89FF001B99FF00D1124AA -:102F1000E957FE4F218172132AC02081621327C016 -:102F20002281211124C0238134812417350710F414 -:102F300021503109241B350B283C3105C0F4209168 -:102F4000BC012F7020612093BC0126E0289FF00176 -:102F5000299FF00D1124E457FE4F80818F7080610E -:102F6000808387EB91E00E94A9160C94311701969B -:102F70008770BECF0895CF92DF92EF92FF920F93AA -:102F80001F93CF93DF93CDB7DEB762970FB6F89458 -:102F9000DEBF0FBECDBF8C0185E0F801DE011D96BE -:102FA00001900D928A95E1F7D8014C9111965C91B0 -:102FB000119712966C9112971396CD90DC901497FE -:102FC0003091B7017091B8018091BA019091BB0125 -:102FD000009709F46BC17F3F19F43F3F09F466C1C4 -:102FE000E090B901EE2009F4C0C02091BC01C816E0 -:102FF000D90628F0F601E81BF90BCF0104C0809533 -:1030000090958C0D9D1DFF24F394883C910578F0DC -:10301000F12C207F09F0C6C07C2DD98AC88A898905 -:103020000E94121787EB91E00E94A916B1C0822F6F -:10303000807F09F046C0751314C0341312C06111AB -:1030400010C02F7020612093BC010E94521787EBA3 -:1030500091E00E94A9168091BC01D80115968C932D -:103060002EC0CD2819F15F3F11F44F3FF9F0F62E35 -:1030700061111CC0809185012091860136E0821784 -:1030800009F45AC090E0389FF001399FF00D1124E7 -:10309000E957FE4F7181571306C07081471303C073 -:1030A0007281711103C001968770E9CFF62E6623F5 -:1030B00009F418C18091BC0181608093BC01F12C9E -:1030C00011C1751308C0341306C0611104C080918A -:1030D000BC01D801C3C04D875E878D859E856A8BF4 -:1030E0000E94E8166A898823E1F16623D1F12091D4 -:1030F000BC01822F82958F7090E0029774F08091CE -:10310000B7019091B80198878F831986DB86CA86AC -:103110002C87CE0107960E94A91686E0F801A7EB3E -:10312000B1E001900D928A95E1F70E9460170E942C -:103130005217FF24F394D6C04D875E878D859E85F8 -:103140000E941C1C292F22952F7030E0223031055F -:103150000CF0BCC09F7009F0B6C0805E883008F4E7 -:10316000C1C0C8010E94A916E4CFC816D90608F448 -:1031700053C0F601E81BF90BCF01883C910508F418 -:1031800050C0F12C7C2DD98AC88A89890E941217D7 -:10319000E7EBF1E086E0DF011D928A95E9F70E94F6 -:1031A0005217A0C0751314C0341312C0611110C09F -:1031B0008091BC01F8018583C8010E94A91686E0B0 -:1031C000E7EBF1E0DF011D928A95E9F7FE2C8AC05A -:1031D0004D875E878D859E856A8B0E94E8166A8979 -:1031E000882309F4BECF662309F4BBCF2091BC012C -:1031F000822F82958F7090E002970CF48ECF809191 -:10320000B7019091B8019A8389831B82DD82CC82B9 -:103210002E83CE0101967FCF809590958C0D9D1DBC -:10322000ACCFF62E662309F49CCF75132EC0341351 -:103230002CC02091BC0120FD1FC0822F82958F7071 -:10324000D9F0D80115962C9315978F3049F08F5FE0 -:10325000982F9295907F822F8F70892B15968C9343 -:10326000C8010E94A91686E0F801A7EBB1E0019021 -:103270000D928A95E1F793CF86E0F801A7EBB1E0D4 -:1032800001900D928A95E1F72DC04D875E878D855F -:103290009E850E94E816811140CF8091BC0181601B -:1032A0008093BC01C8010E94A9161CC0662309F4C2 -:1032B00058CF4D875E878D859E850E94E8168823AE -:1032C00009F44FCF2ACF811148CF0CC024303105EB -:1032D0000CF047CF9F7009F440CFF8019581907FA3 -:1032E00009F03BCF8F2D62960FB6F894DEBF0FBE6C -:1032F000CDBFDF91CF911F910F91FF90EF90DF90A5 -:10330000CF9008951F93CF93DF93CDB7DEB72C975F -:103310000FB6F894DEBF0FBECDBF4F8358876987C5 -:103320007A878B879C87CE0107960E94BB178823DC -:1033300069F08F8198852A853B85232BF1F19F3F8A -:1033400009F063C08F3F09F060C037C086E0FE011E -:103350003796DE01119601900D928A95E1F76F8103 -:103360007885EA85FB85309741F17F3F11F46F3F07 -:1033700021F12091860130E0C901019687709927DB -:103380004091850150E08417950709F447C069838F -:103390007A83FD83EC8396E0929FD001939FB00DDA -:1033A0001124A957BE4FFE01319601900D929A95B6 -:1033B000E1F7809386010E94311716E08091850124 -:1033C000909186018917C1F1189FC0011124895776 -:1033D0009E4F0E94BB17882379F1E09185011E9FC3 -:1033E000F0011124E957FE4F4081518162817381C0 -:1033F000848195810E9421178091850190E001963A -:103400008770992780938501D9CF4F815885698529 -:103410007A858B859C850E942117CFCF0E94E41668 -:103420001092860110928501E7EBF1E086E0DF0162 -:103430001D928A95E9F7C1CF2C960FB6F894DEBF9E -:103440000FBECDBFDF91CF911F910895EF92FF92F4 -:103450000F931F93CF93DF938C01009709F46CC0F7 -:10346000F12CEE24E394E8012196F801849184374D -:1034700040F4843008F051C0813081F0823019F17D -:103480005BC0853709F444C0A8F19CE7980F9037DA -:1034900008F052C08F770E942F1441C00E5F1F4F5B -:1034A000FE01C49180E28C0F883048F4C7708E2DE5 -:1034B00001C0880FCA95EAF70E94021D14C08C2F24 -:1034C0000E9467132DC00E5F1F4FFE01C49180E262 -:1034D0008C0F883058F4C7708E2D01C0880FCA95A4 -:1034E000EAF70E94081D0E94291D1AC08C2F0E9415 -:1034F0002F1416C00E5F1F4FFE01C491CC2381F024 -:103500008FE99FE00197F1F700C00000C150F6CFAE -:103510000E5F1F4FFE01F49003C00E9467138E01DF -:103520008F2D882309F49FCFEFE9FFE03197F1F762 -:1035300000C000008150F5CFDF91CF911F910F9116 -:10354000FF90EF90089508956093C1017093C201B8 -:103550008093C3019093C4010C94D0160F931F93D2 -:103560000091C1011091C2012091C3013091C401A9 -:10357000DC01CB01802B912BA22BB32B8093C101BB -:103580009093C201A093C301B093C4011F910F9106 -:103590000C94D0160F931F930091C1011091C2019A -:1035A0002091C3013091C401DC01CB018023912320 -:1035B000A223B3238093C1019093C201A093C301BE -:1035C000B093C4011F910F910C94D0160F931F93C9 -:1035D0000091C1011091C2012091C3013091C40139 -:1035E000DC01CB0180279127A227B3278093C1015B -:1035F0009093C201A093C301B093C4011F910F9196 -:103600000C94D0161092BD011092BE011092BF0111 -:103610001092C0010C94D01641E050E060E070E0E0 -:1036200004C0440F551F661F771F8A95D2F7409339 -:10363000BD015093BE016093BF017093C0010C9413 -:10364000D01641E050E060E070E004C0440F551F28 -:10365000661F771F8A95D2F78091BD019091BE01B8 -:10366000A091BF01B091C001482B592B6A2B7B2B35 -:103670004093BD015093BE016093BF017093C001A0 -:103680000C94D01641E050E060E070E004C0440FBC -:10369000551F661F771F8A95D2F740955095609504 -:1036A00070958091BD019091BE01A091BF01B09134 -:1036B000C001482359236A237B234093BD015093C3 -:1036C000BE016093BF017093C0010C94D01641E01D -:1036D00050E060E070E004C0440F551F661F771F84 -:1036E0008A95D2F78091BD019091BE01A091BF0152 -:1036F000B091C001482759276A277B274093BD0115 -:103700005093BE016093BF017093C0010C94D0161A -:103710000F931F930091BD011091BE012091BF0135 -:103720003091C001DC01CB01802B912BA22BB32B5C -:103730008093BD019093BE01A093BF01B093C001DF -:103740001F910F910C94D0160F931F930091BD0100 -:103750001091BE012091BF013091C001DC01CB016D -:1037600080239123A223B3238093BD019093BE01B4 -:10377000A093BF01B093C0011F910F910C94D0167C -:103780000F931F930091BD011091BE012091BF01C5 -:103790003091C001DC01CB0180279127A227B327FC -:1037A0008093BD019093BE01A093BF01B093C0016F -:1037B0001F910F910C94D0160895CF92DF92EF9243 -:1037C000FF920F931F93CF93DF938C01C090C101A1 -:1037D000D090C201E090C301F090C4018091BD017E -:1037E0009091BE01A091BF01B091C001C82AD92A11 -:1037F000EA2AFB2ACFE1D0E0D701C6010C2E04C093 -:10380000B695A795979587950A94D2F780FF06C03D -:10381000B8018C2F0E94A90A019721F4219760F723 -:1038200080E001C08C2FDF91CF911F910F91FF900D -:10383000EF90DF90CF900895CF93DF93EC010E943B -:10384000DD1BBE010E94A90ADF91CF910895CB0133 -:103850000E941C1C08958091C501859585958595CC -:1038600008958091C5018770089598E0899F90011F -:103870001124262B2093C5010C94211B2091C501F6 -:10388000809582238093C501982F977069F430E06A -:10389000482F552747FD50952417350729F0859562 -:1038A000859585950C94421B08959091C50197705C -:1038B00081E009F480E0089590910C01992321F0B2 -:1038C00090910D01911109C020910E0130910F01CD -:1038D000F90132969FEF40E01FC0982F969596957C -:1038E00096959F3050F5E0910E01F0910F01E90F90 -:1038F000F11D877021E030E0A90102C0440F551F7F -:103900008A95E2F7CA019181892B818308959F3FAF -:1039100039F04F5F4E3041F051915813F8CF0DC040 -:103920005111F7CF942FF5CF9F3F39F0F901E90FEF -:10393000F11D97FDFA9582830895089590910C01E9 -:10394000992321F090910D01911109C020910E0150 -:1039500030910F01F9013296205F3F4F1FC0982F21 -:103960009695969596959F30F0F4E0910E01F09122 -:103970000F01E90FF11D877021E030E0A90102C0BD -:10398000440F551F8A95E2F7CA01809591818923DA -:10399000818308953196E217F30729F090819813F7 -:1039A000F9CF1082F7CF089581E090E0E0910E0109 -:1039B000F0910F01E80FF91F1082019680319105F7 -:1039C000A9F708959091D901892B8093D901089581 -:1039D00080959091D90189238093D90108951092FF -:1039E000D90108959091D801892B8093D801089529 -:1039F00080959091D80189238093D80108951092E1 -:103A0000D80108959091D701892B8093D70108950B -:103A100080959091D70189238093D70108951092C2 -:103A2000D70108958093C60108951092C6010895A4 -:103A300080910E0190910F01FC0131969C01205F55 -:103A40003F4F80E0919191118F5FE217F307D1F71B -:103A50000895E0910E01F0910F018091D9018083CA -:103A6000E0910E01F0910F0190818091D801892B96 -:103A70008083E0910E01F0910F0190818091D70138 -:103A8000892B80838091C601882361F0E0910E012B -:103A9000F0910F019081892B80830E94181D811164 -:103AA0001092C60180910E0190910F010C94571253 -:103AB00020E0009739F0AC0141505109842395234F -:103AC0002F5FF7CF822F08958091F101843021F18B -:103AD0001092DB0120E488E190E00FB6F894A895FD -:103AE000809360000FBE2093600080E00E94440B32 -:103AF00083B7817F846083BF83B7816083BF7894FD -:103B0000889583B78E7F83BF88E10FB6F894809342 -:103B10006000109260000FBE0895089508950E94FD -:103B20008D1D0E949B050E948E1D0E94900691E0B3 -:103B3000811101C090E0892F08950E94E4160E942F -:103B40004B120C94440B82E084BD93E095BD9AEF38 -:103B500097BD80936E0008952FB7F8948091DC0193 -:103B60009091DD01A091DE01B091DF012FBF08959A -:103B7000CF92DF92EF92FF920F931F932FB7F8949B -:103B80004091DC015091DD016091DE017091DF0117 -:103B90002FBF6A017B01EE24FF248C0120E030E07E -:103BA000C016D106E206F30610F4415051099A01FD -:103BB000281B390BC9011F910F91FF90EF90DF90E7 -:103BC000CF9008951F920F920FB60F9211248F93EA -:103BD0009F93AF93BF938091DC019091DD01A09101 -:103BE000DE01B091DF010196A11DB11D8093DC01C2 -:103BF0009093DD01A093DE01B093DF01BF91AF91FF -:103C00009F918F910F900FBE0F901F9018950E945B -:103C1000480FF8942FEF87EA91E6215080409040BA -:103C2000E1F700C0000087E090EBDC018093FB012E -:103C30009093FC01A093FD01B093FE019CE088E10C -:103C40000FB6F894A895809360000FBE9093600023 -:103C5000FFCFEF92FF920F931F93CF93DF93D82F55 -:103C6000CDE08C2F0E94890605E010E0E82EF12CB3 -:103C7000C701002E02C0959587950A94E2F780FF50 -:103C800009C0602F7C2F80E00E945408D81302C026 -:103C900081E006C00150110958F7C15010F780E0CB -:103CA000DF91CF911F910F91FF90EF900895CF93E7 -:103CB000C82F8CE20E94291E882321F08C2FCF91DF -:103CC0000C94291E80E0CF910895CF930E94AC1FE1 -:103CD000811102C00E94921FC5E6C15049F00E94A6 -:103CE0009B058FE39CE90197F1F700C00000F5CF39 -:103CF00089E20E94571E811113C18AE20E94571E59 -:103D000081110E94921F85E00E94571E81110E941E -:103D1000071E0E94B71F8093DA0187E00E94571E9A -:103D20008823A9F18BE10E94571E882351F08091CE -:103D3000DA0181FB222720F991E0922790FB81F99B -:103D40000EC08EE00E94571E882361F08091DA0138 -:103D500082FB222720F991E0922790FB82F9809341 -:103D6000DA0115C080E10E94571E9091DA01882384 -:103D700041F093FB222720F981E0822780FB93F911 -:103D800004C0892F809580FB90F99093DA0180918F -:103D9000DA010E94BB1F0E94C91F8093FA0180EEC6 -:103DA0000E94571E882341F08091FA01982F909528 -:103DB00090FB80F98093FA0189E30E94571E8823C3 -:103DC00059F08091FA0181FB222720F991E0922796 -:103DD00090FB81F98093FA0182EE0E94571E88239E -:103DE00059F08091FA0182FB222720F991E0922775 -:103DF00090FB82F98093FA0186EE0E94571E882379 -:103E000059F08091FA0183FB222720F991E0922753 -:103E100090FB83F98093FA0183EE0E94571E88235A -:103E200059F08091FA0184FB222720F991E0922732 -:103E300090FB84F98093FA0185E30E94571E882342 -:103E400059F08091FA0185FB222720F991E0922711 -:103E500090FB85F98093FA0181E30E94571E882325 -:103E600059F08091FA0186FB222720F991E09227F0 -:103E700090FB86F98093FA0181E10E94571E882306 -:103E800059F08091FA0187FB222720F991E09227CF -:103E900090FB87F98093FA018091FA010E94CD1F6F -:103EA0008091FA0187FB882780F980930D0187E2D2 -:103EB0000E94571EC82F8EE10E94571E8111C260BA -:103EC0008FE10E94571E8111C46080E20E94571E3C -:103ED0008111C86081E20E94571E8111C06182E297 -:103EE0000E94571E8111C06283E20E94571E8111F9 -:103EF000C06484E20E94571E882311F0C06802C08B -:103F0000CC2329F08C2F0E94C41F6C2F03C00E9469 -:103F1000C01F682F70E080E090E0CF910C94A41A4D -:103F2000CF9108956DEE7EEF80E090E00E94FE2537 -:103F300060E082E090E00E94EC2560E083E090E0A9 -:103F40000E94EC2560E084E090E00E94EC2560E0B7 -:103F500085E090E00C94EC2580E090E00E94E6255E -:103F600021E08D3E9E4F09F020E0822F089582E0EF -:103F700090E00C94DE25682F82E090E00C94EC2514 -:103F800083E090E00C94DE25682F83E090E00C94B1 -:103F9000EC2584E090E00C94DE25682F84E090E02E -:103FA0000C94EC258091E20180FF0BC0609113011D -:103FB00085E0689FB00111247595679575956795A3 -:103FC0002BC081FF09C06091130185E0689FB0019B -:103FD00011247595679520C082FF07C06091130179 -:103FE00085E0689FB001112417C09091E3019923E7 -:103FF000D1F060911201961788F72091130185E0A6 -:10400000289F90011124929FA001939F500D11248D -:1040100070E0CA010E94B0256038710540F4611556 -:10402000710539F002C065E070E0862F08958FE7D2 -:10403000089581E008958091E20180FF08C06091B9 -:10404000110170E0759567957595679521C081FFA1 -:1040500006C06091110170E07595679519C082FFE7 -:1040600004C06091110170E010C09091E3019923A8 -:10407000C1F0609110019617A0F780911101899FFE -:10408000C001112470E00E94B0256038710528F449 -:104090006115710521F0862F08958FE7089581E05D -:1040A000089561E070E0F4CF803F21F40E94D21FB8 -:1040B000819504C0813F29F40E94D21F8093E601BC -:1040C0000895823F21F40E94D21F819504C0833F4E -:1040D00029F40E94D21F8093E5010895893F19F4C5 -:1040E0000E941B2005C08A3F31F40E941B2081954D -:1040F0008093E70108958B3F21F40E941B20819556 -:1041000004C08C3F29F40E941B208093E80108958D -:10411000843F21F48091E401816017C0853F21F440 -:104120008091E401826011C0863F21F48091E40116 -:1041300084600BC0873F21F48091E401886005C052 -:10414000883F31F48091E40180618093E401089517 -:104150008D3F21F48091E20181600BC08E3F21F4FC -:104160008091E201826005C08F3F29F48091E201D5 -:1041700084608093E2010895803F39F48091E601E4 -:1041800087FF6CC01092E60169C0813F29F48091DD -:10419000E6011816BCF362C09091E501823F29F454 -:1041A00097FF5CC01092E50159C0833F19F41916BE -:1041B000CCF354C0893F41F48091E70118160CF00C -:1041C0004DC01092E7014AC08A3F29F48091E7016F -:1041D00087FF44C0F6CF8B3F39F48091E80187FF19 -:1041E0003DC01092E8013AC08C3F29F48091E8016B -:1041F0001816BCF333C0843F21F48091E4018E7F14 -:1042000017C0853F21F48091E4018D7F11C0863F66 -:1042100021F48091E4018B7F0BC0873F21F48091D2 -:10422000E401877F05C0883F31F48091E4018F7EEF -:104230008093E40113C08D3F21F48091E2018E7FD1 -:104240000BC08E3F21F48091E2018D7F05C08F3F2E -:1042500029F48091E2018B7F8093E2018091E50156 -:1042600081110EC08091E60181110AC08091E701A1 -:10427000811106C08091E801811102C01092E30112 -:10428000089584EE91E00E9462120E94AC1D90930A -:10429000E1018093E00108951F93CF93DF93809114 -:1042A000E0019091E1010E94B81DAC019091E30101 -:1042B000992321F02091140130E006C020911501CE -:1042C0008AE0289F900111244217530708F486C002 -:1042D0008091E501C091E601D091E7011091E801DC -:1042E000811107C0C11176C0D11174C0111172C003 -:1042F00075C09F3F19F09F5F9093E301181624F457 -:104300000E94D21F8093E5018091E50187FF05C0DF -:104310000E94D21F81958093E5011C1624F40E940F -:10432000D21F8093E6018091E60187FF05C00E94BD -:10433000D21F81958093E6016091E501662339F1F2 -:10434000C091E601CC2319F1772767FD7095872F7F -:10435000972F0E94C12423E333E343E35FE30E94EA -:1043600025250E948E246093E5016C2F772767FD39 -:104370007095872F972F0E94C12423E333E343E3F3 -:104380005FE30E9425250E948E246093E6011D169E -:1043900024F40E941B208093E7018091E70187FFAE -:1043A00005C00E941B2081958093E701111624F41B -:1043B0000E941B208093E8018091E80187FF05C0DF -:1043C0000E941B2081958093E801DF91CF911F917E -:1043D0000C9441219F3F09F08ECF96CFDF91CF9172 -:1043E0001F910895E4EEF1E085E0DF011D928A95CA -:1043F000E9F71092E3011092E2010895833081F110 -:1044000028F4813059F08230D1F00895853009F4D4 -:1044100049C0B8F1863009F456C00895809115015D -:10442000262F30E0280F311D2F3F310524F4680F6F -:104430006093150108958FEF809315010895809181 -:104440001401262F30E0280F311D2F3F310524F4B1 -:10445000680F6093140108958FEF809314010895FD -:1044600080911301262F30E0280F311D2F3F310599 -:1044700024F4680F6093130108958FEF8093130164 -:10448000089580911201262F30E0280F311D2F3F13 -:10449000310524F4680F6093120108958FEF809323 -:1044A0001201089580911101262F30E0280F311D4F -:1044B0002F3F310524F4680F6093110108958FEFA9 -:1044C00080931101089580911001262F30E0280F6C -:1044D000311D2F3F310524F4680F609310010895BA -:1044E0008FEF809310010895833011F128F481300B -:1044F00049F0823091F00895853081F120F18630C5 -:10450000C1F1089580911501681720F4861B8093EE -:1045100015010895109215010895809114016817EE -:1045200020F4861B809314010895109214010895BD -:1045300080911301681720F4861B8093130108955E -:1045400010921301089580911201681720F4861BC0 -:104550008093120108951092120108958091110123 -:10456000681720F4861B80931101089510921101A1 -:10457000089580911001681720F4861B8093100124 -:1045800008951092100108950F931F938D3109F42F -:104590006BC008F03FC08E3009F47FC0C0F4873094 -:1045A00009F469C068F4863009F0B1C08091DA017D -:1045B000817F8E7F8093DA0181E08093EA01A8C039 -:1045C000883009F4A2C08B3009F49FC0A0C08631A6 -:1045D00009F49BC078F4803109F472C0813109F08C -:1045E00096C00E94E41690910D0181E08927809386 -:1045F0000D018BC0893109F488C08B3109F087C067 -:104600008091DA0181FB222720F991E0922790FB2B -:1046100081F94CC0853309F470C048F4873209F43D -:104620006CC008F459C0893209F467C070C0833483 -:1046300038F48A3308F04EC0883309F466C067C086 -:10464000833409F45AC0883409F061C00E94E4162A -:104650000FEF13ED20E3015010402040E1F700C0C0 -:1046600000000E94071E51C00E9448240E944B1265 -:104670000E94440B4AC09091DA01892F8095817085 -:1046800080FB90F929F0966098609093DA0140C021 -:10469000997F977F9093DA0138C08091DA0182FB8D -:1046A000222720F991E0922790FB82F98093DA018A -:1046B000992359F18091DA0181608093DA0125C054 -:1046C0008091DA0183FB222720F991E0922790FB69 -:1046D00083F9ECCF895301C08D5141E050E060E097 -:1046E00070E08A019B0104C0000F111F221F331FBD -:1046F0008A95D2F7C901B80104C061E070E080E09A -:1047000090E00E94A41A0E94E41681E001C080E0BB -:104710001F910F91089580E0089580E00895CF9350 -:10472000C82F8091EA01813079F018F08230E9F1E8 -:1047300087C0E0910E01F0910F018081813169F015 -:10474000823209F07FC009C0E0910E01F0910F01A3 -:104750008081813111F0823261F48C2F0E948B2391 -:10476000811104C08C2F0E94C4221DC081E090E002 -:104770001AC08C2F0E948D23811114C0C43179F08E -:1047800048F4CB3079F0C03109F060C082E080930A -:10479000EA0108C0C93219F0C83321F057C010929D -:1047A000EA0154C081E0817053C0C93289F118F523 -:1047B000C43171F1A8F4C73009F046C08AE0809393 -:1047C000150194E19093140193E090931301809369 -:1047D000120188E08093110188E28093100134C0B7 -:1047E000CE51C63088F5EC2FF0E0E65DFE4F8081BB -:1047F0008093E90129C0CE34E9F020F4CB3421F5CF -:104800006AE013C0C13579F0C235F1F461E00DC042 -:104810008091E901882319F01092E90115C081E027 -:104820008093EA0115C061E006C08091E9010E9411 -:10483000FE210AC06AE08091E9010E94742204C04E -:104840001092EA0180E004C081E002C080E0ABCFBA -:10485000CF910895E1E8F0E08081886080838081D5 -:10486000816080838FB7F89493E09093890090EDF6 -:10487000909388008FBF0895EFE6F0E0808182601A -:1048800080830895EFE6F0E080818D7F8083089536 -:10489000EFE6F0E0908182E08927808308951F92FF -:1048A0000F920FB60F9211242F933F934F935F9364 -:1048B0006F937F938F939F93AF93BF93EF93FF93E8 -:1048C0008091EB019091EC0101969093EC01809323 -:1048D000EB01811103C082E00E94440BE091EC01E6 -:1048E000E695E695F0E0ED5AF64FE4918091EB0104 -:1048F0008E1303C080E00E94440BFF91EF91BF91A3 -:10490000AF919F918F917F916F915F914F913F9167 -:104910002F910F900FBE0F901F90189504D06894A0 -:10492000B1118DC0089570D088F09F5790F0B92FC5 -:104930009927B751A0F0D1F0660F771F881F991FF4 -:104940001AF0BA95C9F712C0B13081F077D0B1E052 -:10495000089574C0672F782F8827B85F39F0B93F62 -:10496000CCF3869577956795B395D9F73EF49095F6 -:104970008095709561957F4F8F4F9F4F0895E89474 -:1049800009C097FB3EF490958095709561957F4F97 -:104990008F4F9F4F9923A9F0F92F96E9BB27939545 -:1049A000F695879577956795B795F111F8CFFAF455 -:1049B000BB0F11F460FF1BC06F5F7F4F8F4F9F4F86 -:1049C00016C0882311F096E911C0772321F09EE8E4 -:1049D000872F762F05C0662371F096E8862F70E04A -:1049E00060E02AF09A95660F771F881FDAF7880F24 -:1049F0009695879597F9089557FD9058440F551F40 -:104A000059F05F3F71F04795880F97FB991F61F050 -:104A10009F3F79F087950895121613061406551FC7 -:104A2000F2CF4695F1DF08C0161617061806991F33 -:104A3000F1CF86957105610508940895E894BB2728 -:104A400066277727CB0197F908950BD078C069D0F6 -:104A500028F06ED018F0952309F05AC05FC01124D9 -:104A6000EECFCADFA0F3959FD1F3950F50E0551F0D -:104A7000629FF001729FBB27F00DB11D639FAA27B3 -:104A8000F00DB11DAA1F649F6627B00DA11D661F02 -:104A9000829F2227B00DA11D621F739FB00DA11D23 -:104AA000621F839FA00D611D221F749F3327A00DDD -:104AB000611D231F849F600D211D822F762F6A2F79 -:104AC00011249F5750408AF0E1F088234AF0EE0FFE -:104AD000FF1FBB1F661F771F881F91505040A9F70B -:104AE0009E3F510570F014C0AACF5F3FECF3983E93 -:104AF000DCF3869577956795B795F795E7959F5F72 -:104B0000C1F7FE2B880F911D9695879597F908950B -:104B100097F99F6780E870E060E008959FEF80EC70 -:104B2000089500240A941616170618060906089513 -:104B300000240A9412161306140605060895092E79 -:104B40000394000C11F4882352F0BB0F40F4BF2BE8 -:104B500011F460FF04C06F5F7F4F8F4F9F4F089528 -:104B600097FB072E16F4009407D077FD09D00E941A -:104B7000CA2507FC05D03EF4909581959F4F089576 -:104B8000709561957F4F0895EE0FFF1F0590F4918A -:104B9000E02D0994AA1BBB1B51E107C0AA1FBB1F34 -:104BA000A617B70710F0A61BB70B881F991F5A95B9 -:104BB000A9F780959095BC01CD010895F999FECF94 -:104BC00092BD81BDF89A992780B50895A8E1B0E01B -:104BD00042E050E00C940626262FF999FECF92BDB4 -:104BE00081BDF89A019700B4021639F01FBA20BDB2 -:104BF0000FB6F894FA9AF99A0FBE08950196272FE6 -:104C00000E94ED250C94EC25DC01CB01FC01F99907 -:104C1000FECF06C0F2BDE1BDF89A319600B40D9208 -:0C4C200041505040B8F70895F894FFCFC1 -:104C2C000220460BD40BB10B7D0B490B0101C701C4 -:104C3C0028080A03140A3F4D36391409C70891088D -:104C4C005808EB0704081D08360801020304050682 -:044C5C00070809003C -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/tm2030/readme.md b/keyboards/ergodox_ez/keymaps/tm2030/readme.md new file mode 100644 index 000000000..6cd794726 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/tm2030/readme.md @@ -0,0 +1,136 @@ +# TypeMatrix™ 2030 inspired layout + +This is a [TypeMatrix™ 2030](http://typematrix.com/2030/features.php) inspired layout for the ErgoDox EZ. The _TypeMatrix_ is a nice small ergonomic keyboard with a matrix layout, and it provides several nice features like `enter`, `backspace` and `delete` at the center, bigger `shift` keys and international `cut`, `copy` and `paste` keys. + +The idea in this ErgoDox layout is to make it is as close as possible to the TM2030, such that it would be easy to switch between the TM and the ErgoDox. No _fancy_ features have been implemented, as this is intended to be a base for further customization if desired. Some keys have been duplicated in order to accomodate for most people. + +Most of the TM2030 features are supported except +* automatic window switching (alt-tab key, at the left of the space key) +* show desktop key (at the right of the space key) +* 102/106 modes + +Dvorak mode is even supported by pressing [`Magic`](/TMK_readme.md#magic-commands)+`1` (`Magic` is by default `LShift`+`RShift`) + +Some keys had to be moved around to fit into the ErgoDox, especially the `F1`-`F12` keys and the arrow keys. + +## Base Layer +This is the default layer, close to the TM with the following differences: + + - Top row (with the `F`-keys) and rightmost column (with application shortcuts) are removed, the corresponding keys are displaced elsewhere. + - Bottom-left keys are reorganized on a single row as: `Ctrl`, `fn`, `Gui`, `Play`, `App`/`Alt`. + - `shuffle` and `desktop` are not supported. + - `right-shift` is moved on `'`, `\` and on the right thumb (the latter is actually the only _true_ `right-shift`, and must be used in the `Magic` key combination). + - `right-ctrl` is moved on `End`. + - `]` is moved in place of the dash (`-`). + - Dash (`-`) and `=` are moved on bottom right row. + - Arrows and `PgUp`/`PgDn` are moved on the thumbs. + +``` +,--------------------------------------------------. ,--------------------------------------------------. +| ` | 1 | 2 | 3 | 4 | 5 | Del | | Del | 6 | 7 | 8 | 9 | 0 | ] | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| Tab | Q | W | E | R | T |Backsp| |Backsp| Y | U | I | O | P | [ | +|--------+------+------+------+------+------|ace | |ace |------+------+------+------+------+--------| +| LShift | A | S | D | F | G |------| |------| H | J | K | L | ; | '/Shift| +|--------+------+------+------+------+------|Enter | |Enter |------+------+------+------+------+--------| +| LShift | Z | X | C | V | B | | | | N | M | , | . | / | \/Shift| +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + |LCtrl | fn | LGui | Play |App/Alt| | RAlt | - | Home | = |End/Ctl| + `-----------------------------------' `-----------------------------------' + ,--------------. ,-------------. + |Esc/Alt| num | | Left |Right | + ,------+-------+------| |------+------+------. + | | | PgUp | | Up | | | + |Space |LShift |------| |------|RShift|Space | + | | | PgDn | | Down | | | + `---------------------' `--------------------' +``` + +### Layer Switching +- Use `num` to toggle the Numeric Layer. +- Hold `fn` to temporarily activate the Numeric & Fn Layers. + +As on the original TM 2030, when `num` layer is activated, holding `fn` disables it but enables the other `fn` keys. + +## Dvorak Layer +Same as Layer 0 but with _Dvorak_ layout, to use with QWERTY OS layout. + +Enable Dvorak layout with [`Magic`](/TMK_readme.md#magic-commands)+`1` (`LShift`+`RShift`+`1`), disable with `Magic`-`0`. + +The middle (green) led indicates when the Dvorak layer is activated. + + ,--------------------------------------------------. ,--------------------------------------------------. + | ` | 1 | 2 | 3 | 4 | 5 | Del | | Del | 6 | 7 | 8 | 9 | 0 | = | + |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + | Tab | ' | , | . | P | Y |Backsp| |Backsp| F | G | C | R | L | / | + |--------+------+------+------+------+------|ace | |ace |------+------+------+------+------+--------| + | LShift | A | O | E | U | I |------| |------| D | H | T | N | S | -/Shift| + |--------+------+------+------+------+------|Enter | |Enter |------+------+------+------+------+--------| + | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | \/Shift| + `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + |LCtrl | fn | LGui | Play |App/Alt| | RAlt | [ | Home | ] |End/Ctl| + `-----------------------------------' `-----------------------------------' + ,--------------. ,-------------. + |Esc/Alt| num | | Left |Right | + ,------+-------+------| |------+------+------. + | | | PgUp | | Up | | | + |Space |LShift |------| |------|RShift|Space | + | | | PgDn | | Down | | | + `---------------------' `--------------------' + +## Numeric Layer +Numeric layer close to the TM when toggling `num`, with the following differences: + +- Numpad is displaced by 1 to the top left. +- Arrows are displaced by 1 to the left. +- Provides access to `F1`-`F12`, `caps-lock` and `num-lock`. + +The numeric layer is indicated with the left (red) led. Caps-lock is indicated with the right (blue) led. + + ,--------------------------------------------------. ,--------------------------------------------------. + | | F1 | F2 | F3 | F4 | F5 | | | | | | Tab | / | * | - | + |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + | | F6 | F7 | F8 | F9 | F10 | | | | | Home | 7 | 8 | 9 | + | + |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + | | F11 | F12 | | | |------| |------| Up | End | 4 | 5 | 6 | + | + |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + | | | | | | | | | Left | Down | Right| 1 | 2 | 3 |KpEnter | + `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | | | | | | | 0 | 00 | . |Etr/Ctl| + `----------------------------------' `-----------------------------------' + ,-------------. ,-------------. + | | | |n.lock|c.lock| + ,------|------|------| |------+------+------. + | | | | | | | | + | | |------| |------| | | + | | | | | | | | + `--------------------' `--------------------' + +## Fn Layer +Activated simultaneously with the Numeric layer when holding the `fn` key. As on the TM, it provides access to the following features: +- `cut`, `copy` and `paste` +- `volume up`, `volume down` and `mute` — as opposed to the TM, these are only on left hand +- `previous track` and `next track` +- `calculator`, `mail` and `browser home` +- `insert`, `power`, `sleep`, `wake`, `print screen`, `scroll-lock` and `pause` + +Note: the `eject` key does not work due to jackhumbert/qmk_firmware#82 + + ,--------------------------------------------------. ,--------------------------------------------------. + | | | | | | |Insert| |Insert|Eject |Power |Sleep | Wake |PrtScr|ScrollLk| + |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + | | | | | | |VolUp | | | | | | | | Pause | + |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + | | | | Calc | Mail |Browsr|------| |------| | | | | | | + |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + | | | cut | copy |paste | Mute |VolDn | | | | | | | | | + `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | | | | | | | | | | | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + | | | | | | + ,------|------|------| |------+------+------. + | | | | | Next | | | + | Mute | |------| |------| | | + | | | | | Prev | | | + `--------------------' `--------------------' diff --git a/keyboards/ergodox_ez/keymaps/tonyabra_osx/compiled.hex b/keyboards/ergodox_ez/keymaps/tonyabra_osx/compiled.hex deleted file mode 100644 index 336362a58..000000000 --- a/keyboards/ergodox_ez/keymaps/tonyabra_osx/compiled.hex +++ /dev/null @@ -1,1158 +0,0 @@ -:100000000C947A020C94BE020C94BE020C94BE02B4 -:100010000C94BE020C94BE020C94BE020C94BE0260 -:100020000C94BE020C94BE020C94620D0C94340E1F -:100030000C94BE020C94BE020C94BE020C94BE0240 -:100040000C94BE020C943E220C94BE020C94BE0290 -:100050000C94BE020C94D11B0C94BE020C94BE02F4 -:100060000C94BE020C94BE020C94BE020C94BE0210 -:100070000C94BE020C94BE020C94BE020C94BE0200 -:100080000C94BE020C94BE020C94BE020C94BE02F0 -:100090000C94BE020C94BE020C94BE020C94BE02E0 -:1000A0000C94BE020C94BE020C94BE02A10EC30EB0 -:1000B000B10FC30EB10F080F2B0FB10F800F930FAD -:1000C0006212621291129112C712E71218141814D8 -:1000D000F2121814A213A2130914181418141214EB -:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300 -:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0 -:10010000C113CE13D513DC13E6130000F0A12900B0 -:100110002B002A00E100015400001E00140004001E -:100120001D0035004D001F001A0016001B002F0097 -:100130002A00200008000700060030002C002100E3 -:1001400015000900190034004A00220017000A00B7 -:10015000050000004C002E0001540000E3000000E8 -:10016000E2002D0001540000E3000000E60023003F -:100170001C000B0011000000E400240018000D001A -:10018000100050004B0025000C000E0036005200FD -:100190002800260012000F00370051002B00270016 -:1001A0001300330038004F004E00280031003400A7 -:1001B000E5000254000001000100010001000100FF -:1001C00000003A001E0220022202010001003B0052 -:1001D0001F0221022302010001003C002F0226021F -:1001E0002F00010001003D00300227023000010015 -:1001F00001003E003102350035020000010001001F -:1002000001000000010000000100010001000000E9 -:100210000100000001003F005200510024020000D4 -:1002200001004000240021001E00010001004100E7 -:10023000250022001F003700010042002600230095 -:10024000200027000100430025022E0231002E006D -:100250000100440045000100010001000000010010 -:100260000100010001000100000001000100010087 -:1002700001000100010001000100F2000100010085 -:1002800001000100F000F1000100F4000100010094 -:100290000100F3000100F500010001000100010070 -:1002A0000100000001000100010000000100000049 -:1002B0000100010001000000010000000100010038 -:1002C0000100010001000000010001000100010027 -:1002D0000100A9000100010001000100AC00AA001A -:1002E000B600010001000100AB00A8000100010000 -:1002F0000100010001000100010001000100AE0049 -:1003000001000100000016034500720067006F0045 -:1003100044006F007800200045005A0000001603DA -:100320004500720067006F0044006F0078002000F5 -:1003300045005A0000000403090409026D0004018D -:1003400000A0FA09040000010301010009211101C4 -:100350000001223F000705810308000A090401008B -:100360000103010200092111010001224D000705CE -:10037000820308000A0904020001030000000921A9 -:10038000110100012236000705830308000A090451 -:1003900003000103000000092111010001223900BE -:1003A000070584031000011201100100000008ED90 -:1003B000FE071301000102000105010906A1010564 -:1003C0000719E029E7150025019508750181020547 -:1003D000081901290595057501910295017503918B -:1003E0000105071900297715002501957875018108 -:1003F00002C005010980A101850216010026B7008F -:100400001A01002AB700751095018100C0050C097A -:1004100001A1018503160100269C021A01002A9CF5 -:1004200002751095018100C005010902A1010901B1 -:10043000A10005091901290515002501950575017A -:10044000810295017503810105010930093115818A -:10045000257F95027508810609381581257F95014C -:1004600075088106050C0A38021581257F950175EE -:10047000088106C0C005010906A101050719E02988 -:10048000E715002501950875018102950175088120 -:100490000105081901290595057501910295017558 -:1004A0000391010507190029FF150025FF95067521 -:1004B000088100C0000000000000000000000001F2 -:1004C0000204060A0F17202C3A4A5D71879DB3C7B4 -:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF -:1004E0003A2C20170F0A0604020100000000000049 -:1004F0000000000011241FBECFEFDAE0DEBFCDBF49 -:1005000004B603FE24C08091FB019091FC01A091F0 -:10051000FD01B091FE018730904BA740B04BB9F47C -:100520001092FB011092FC011092FD011092FE014D -:1005300014BE84B7877F84BF88E10FB6F894809398 -:100540006000109260000FBEE0E0FFE3099511E04B -:10055000A0E0B1E0EAE0F8E402C005900D92A43317 -:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0 -:10057000B107E1F70E94A60A0C9403240C94000032 -:100580001092B9008AE08093B800089594EA90939D -:10059000BC009091BC0097FFFCCF9091B900987F70 -:1005A000983021F0903111F081E008958093BB00E4 -:1005B00084E88093BC008091BC0087FFFCCF8091D1 -:1005C000B900887F883111F0803471F780E0089598 -:1005D00084E98093BC008091BC0084FDFCCF089529 -:1005E0008093BB0084E88093BC008091BC0087FFAF -:1005F000FCCF9091B900987F81E0983209F480E0B7 -:10060000089584E88093BC008091BC0087FFFCCFF4 -:100610008091BB00089580910101811115C080E493 -:100620000E94C6028093010181110CC082E10E94E8 -:10063000F00280930101811105C08FEF0E94F0024A -:10064000809301010E94E80284B1807F84B985B162 -:10065000807F85B98AB1837F8AB98BB1837F8BB95B -:100660003E98469808950E94C604809301010E9416 -:100670000B0380B38C7080BB81B3836F81BBA5E318 -:10068000B1E0E3E4F1E08EE08E0F11921D928E1343 -:10069000FCCF0C94B004BF92CF92DF92EF92FF9206 -:1006A0000F931F93CF93DF9380910101882379F0FB -:1006B000809134018F5F80933401811108C00E94C2 -:1006C000C60480930101811102C00E94580405E311 -:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407 -:1006E000E394F12CC730D10500F58091010181110F -:1006F00064C080E40E94C60280930101811112C08F -:1007000082E10E94F0028093010181110BC0C701B8 -:100710000C2E01C0880F0A94EAF780950E94F0021F -:10072000809301010E94E80248C0CA30A1F028F479 -:10073000C83059F0C93061F005C0CC3089F070F094 -:10074000CD3089F0209A289810C0219A29980DC0A0 -:10075000229A2A980AC0239A2B9807C0529A01C05D -:10076000539A5B9802C03E9A469890EA9A95F1F7A0 -:100770009FB1799902C082E001C080E091709D250F -:10078000982B7C9902C084E001C080E0892B7D9980 -:1007900002C038E001C030E0832B7E9902C020E126 -:1007A00001C020E0822B9FB19095991F9927991F36 -:1007B0009295990F907E892B0FC080910101811134 -:1007C00049C080E40E94C60280930101882379F128 -:1007D000B12C0E94E8028B2DF8019081981719F036 -:1007E0008083C09200010E940B0321960F5F1F4F70 -:1007F000CE30D10509F076CF80910001882361F1D8 -:10080000815080930001882339F08FE99FE00197A0 -:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F -:10082000CF01825F91919D938E13FCCF15C083E120 -:100830000E94F002809301018111CACF81E40E94DD -:10084000C602809301018111C3CF0E940103B82E1B -:10085000B094BFCF80E0C0CF0E94560481E0DF910A -:10086000CF911F910F91FF90EF90DF90CF90BF90AD -:100870000895E82FF0E0ED5BFE4F80810895089524 -:100880000F931F93CF93DF93C3E4D1E010E00C2FBD -:10089000025F899190E00E94F71A180F0C13F9CFAC -:1008A000812FDF91CF911F910F9108950C94260510 -:1008B00056985E9825982D9826982E9827982F98C8 -:1008C0008FEF90E0909389008093880090938B0045 -:1008D00080938A0090938D0080938C00259A2D9AA6 -:1008E0002FEF80E792E0215080409040E1F700C078 -:1008F0000000269A2E9A2FEF80E792E02150804048 -:100900009040E1F700C00000279A2F9A2FEF80E770 -:1009100092E0215080409040E1F700C0000025980F -:100920002D982FEF80E792E0215080409040E1F732 -:1009300000C0000026982E982FEF80E792E021500B -:1009400080409040E1F700C0000027982F9856980B -:100950005E9825982D9826982E9827982F98089578 -:1009600089EA8093800089E08093810024982C9804 -:100970003F988AB18F748AB96E98479A8BB1806B11 -:100980008BB9769A0E9458040C94250580E28093D6 -:1009900001018091510181110EC00E94C00281E0CD -:1009A000809351012FEF83ED90E3215080409040E0 -:1009B000E1F700C0000080E40E94C60280930101BC -:1009C00081112EC00E94F00280930101811128C084 -:1009D0000E94F00280930101811122C08FE30E94E6 -:1009E000F0028093010181111BC00E94E80280E4A3 -:1009F0000E94C60280930101811112C08CE00E9406 -:100A0000F0028093010181110BC00E94F0028093DB -:100A10000101811105C08FE30E94F0028093010162 -:100A20000E94E80280910101089561110BC0FC0150 -:100A30008281882321F085EE0E94061103C085EE95 -:100A40000E94CE1180E090E0089508956091BD016C -:100A50007091BE018091BF019091C0010E94031B63 -:100A600056985E9825982D9826982E9827982F9816 -:100A7000813019F0823021F00895259A2D9A089539 -:100A8000269A2E9A089581E0089581E008950C94A5 -:100A9000450508950F931F93CF93DF938C01FC01BD -:100AA000C081D181CE010E947C19BE010E94F30554 -:100AB000EC01B8010E944705882309F48DC0F801B4 -:100AC0008281882309F44AC080915D0181111FC091 -:100AD000C431F0E5DF0709F051C00E94490581E00B -:100AE00080935D010E949B1B90935C0180935B014E -:100AF0001092540110925601109255011092580113 -:100B00001092570110925A011092590165C08091BC -:100B10005B0190915C010E94A71B883C910570F4D9 -:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB -:100B3000D183C0838F5F809354014EC0C43880E559 -:100B4000D80721F0C538D04501F13AC0F8018281BB -:100B5000882341F01092520182E01EC0C438E0E5C3 -:100B6000DE0759F580915201811106C086E20E948C -:100B7000061186E20E94CE1182E01CC0C438F0E566 -:100B8000DF0741F3C538D045D9F4F80182818823C5 -:100B900031F01092530180E20E941D121DC080911D -:100BA0005301811106C087E20E94061187E20E946C -:100BB000CE1180E20E9424120FC0C538D04529F31F -:100BC00081E08093520180935301C801DF91CF915E -:100BD0001F910F910C94430580E0DF91CF911F91FD -:100BE0000F910895089596E0799FF001112494E5FE -:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F -:100C0000E25FFE4F859194910895880F991FFC0132 -:100C1000E657F040859194910895880F991FFC0143 -:100C2000E65FFE4F8591949108950F931F93CF93A4 -:100C3000DF93EC01811520E3920750F5C11580E2A6 -:100C4000D80708F0C3C0CB3BD10590F4C83AD10512 -:100C500008F06AC0C53AD10508F05BC0C430D105C0 -:100C600008F0D0C1219709F0CAC101E010E00AC222 -:100C7000CF3FD10511F008F0C5C1C03FD10508F044 -:100C8000A2C0CE01805E9109089708F4BBC1B7C12C -:100C9000C13090E5D90709F4A2C020F5C0318FE436 -:100CA000D80770F4C11590E4D90708F094C0C115B5 -:100CB00021E3D20708F0A3C1DD278E01106CE2C149 -:100CC000C115D04509F09BC10E9483148FEF94E3B6 -:100CD0002CE0815090402040E1F700C000000E94CD -:100CE000F61BD0C1C11597E5D90758F4C03121E5ED -:100CF000D20708F01CC1C43180E5D80708F475C0DC -:100D00007EC1CE0190578115904108F078C1DF7007 -:100D100073C1C53AD10509F477C1C63AD10509F0C6 -:100D200076C102E810E4AEC1C83AD10509F472C137 -:100D3000C93AD10509F471C1CA3AD10509F470C1A3 -:100D4000CB3AD10509F46FC1CC3AD10509F46EC193 -:100D5000CD3AD10509F46DC1C03BD10509F46CC190 -:100D6000CE3AD10509F46BC1CF3AD10509F46AC175 -:100D7000C13BD10509F469C1C23BD10509F468C181 -:100D8000C33BD10509F467C1C43BD10509F466C171 -:100D9000C53BD10509F465C1C63BD10509F464C161 -:100DA000C73BD10509F463C1C83BD10509F462C151 -:100DB000C93BD10509F461C1CA3BD10509F460C141 -:100DC00000E014E45FC18E0110655CC1CE019F702C -:100DD0000E940D0658C1DF708E01106A53C18091C8 -:100DE000DA0181608093DA014DC10E949B1D81115F -:100DF00002C00E94811D0E94B81D90E09093FB01EB -:100E00008093FA01C23080E5D80721F48091FA017D -:100E1000816086C0C43090E5D90721F48091FA0141 -:100E200082607EC0C63020E5D20721F48091FA01AD -:100E3000846076C0C83080E5D80719F48091FA0143 -:100E400027C0CA3090E5D90721F48091FA0180616A -:100E500067C0CC3020E5D20721F48091FA0180628E -:100E60005FC0CE3080E5D80721F48091FA0180641C -:100E700057C0C03190E5D90721F48091FA0180680C -:100E80004FC0C23120E5D20729F48091FA01846075 -:100E9000886046C0C33080E5D80721F48091FA010C -:100EA0008E7F3EC0C53090E5D90721F48091FA01CC -:100EB0008D7F36C0C73020E5D20721F48091FA013A -:100EC0008B7F2EC0C93080E5D80719F48091FA01D4 -:100ED00026C0CB3090E5D90721F48091FA018F7EAE -:100EE0001FC0CD3020E5D20721F48091FA018F7D1B -:100EF00017C0CF3080E5D80721F48091FA018F7BAD -:100F00000FC0C13190E5D90721F48091FA018F77A4 -:100F100007C0C331D04531F48091FA018B7F877FC0 -:100F20008093FA018091FA010E94BC1DABC08D2F05 -:100F300099278F70992781309105D9F49E012370EC -:100F4000332702C0880F991F2A95E2F79C688E010B -:100F500044E0000F111F4A95E1F700271370802B22 -:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA -:100F70002FC08230910531F4DC2FCC278E01016F18 -:100F8000106A80C08330910569F4CE01837099277F -:100F900001E010E002C0000F111F8A95E2F7C801BE -:100FA0009C680FC084309105B9F4CE0183709927F5 -:100FB00001E010E002C0000F111F8A95E2F7C8019E -:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029 -:100FD0008C010C2B1D2B56C08530910531F4DC2F74 -:100FE000CC278E01046F106A4DC0069709F04AC0E5 -:100FF000CF71DD27DC2FCC278E01106243C000E0CB -:1010000010E040C08E013EC001E810E43BC003E8A0 -:1010100010E438C002EE14E435C009EE14E432C026 -:101020000AEE14E42FC005EB14E42CC006EB14E424 -:1010300029C007EB14E426C00CEC14E423C00DEC2B -:1010400014E420C003E815E41DC00AE815E41AC042 -:1010500002E915E417C004E915E414C001E216E43E -:1010600011C003E216E40EC004E216E40BC005E270 -:1010700016E408C006E216E405C007E216E402C062 -:101080000AE216E4C801DF91CF911F910F910895F4 -:1010900096E0799FF001112494E5899FE00DF11D00 -:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149 -:1010B0009491803E9105E0F4803C910558F5813390 -:1010C000910509F46FC048F48932910509F463C0B1 -:1010D0008A32910509F46DC072C089339105E9F037 -:1010E00082389105D1F08533910509F44DC067C070 -:1010F000833E910581F138F4803E9105B9F0823E3E -:101100009105D9F05CC0863E910561F1873E91055D -:10111000A1F155C00E94050608952091FA0120FD15 -:1011200002C021FF4CC080EE90E049C08091FA01DE -:1011300080FFF9CF89E390E042C08091FA0182FFFD -:101140000EC08091FA0184FF03C080E090E037C0B8 -:1011500083EE90E034C08091FA0182FFF2CF82EEFC -:1011600090E02DC08091FA0183FF0BC08091FA01BD -:1011700084FDEBCF87EE90E022C08091FA0183FFDF -:10118000F5CF86EE90E01BC08091FA0185FF07C085 -:1011900089E290E014C08091FA0185FFF9CF85E3E0 -:1011A00090E00DC08091FA0186FF07C08AE290E0CE -:1011B00006C08091FA0186FFF9CF81E390E00E949A -:1011C0001506089508950C94E20880916E01089523 -:1011D000CF93DF9300D01F92CDB7DEB79C018091F3 -:1011E000F101843019F593E099833B832A8390932E -:1011F000E9008FEF9091E800815095FD06C095EDD4 -:101200009A95F1F700008111F5CF8091E80085FFF4 -:101210000DC040E050E063E070E0CE0101960E9416 -:10122000520B8091E8008E778093E8000F900F902A -:101230000F90DF91CF910895CF93DF9300D01F924D -:10124000CDB7DEB72091F101243021F522E02983CA -:101250009B838A8383E08093E9008FEF9091E8007D -:10126000815095FD06C095ED9A95F1F7000081112A -:10127000F5CF8091E80085FF0DC040E050E063E0CD -:1012800070E0CE0101960E94520B8091E8008E77AB -:101290008093E8000F900F900F90DF91CF91089509 -:1012A0002091F1012430F1F422E02093E9002FEFA6 -:1012B0003091E800215035FD06C035ED3A95F1F743 -:1012C00000002111F5CF2091E80025FF0BC040E080 -:1012D00050E065E070E00E94520B8091E8008E774C -:1012E0008093E8000895CF93DF93EC019091F10192 -:1012F000943009F046C080910C018823D9F0809188 -:101300000D018823B9F09093E9008FEF9091E800E8 -:10131000815095FD06C095E19A95F1F70000811185 -:10132000F5CF8091E80085FF2CC040E050E060E1FF -:1013300070E017C081E08093E9008FEF9091E800A2 -:10134000815095FD06C095ED9A95F1F70000811149 -:10135000F5CF8091E80085FF14C040E050E068E0E0 -:1013600070E0CE010E94520B8091E8008E7780934E -:10137000E80080E1FE01AEE5B1E001900D928A95B2 -:10138000E1F7DF91CF9108958091F001811109C0BB -:101390000E94E70C0E94440D8091E20084608093DB -:1013A000E20008951092F001089508950C942B2204 -:1013B0000E948C1B0E9431220E94EA0F0C94E308C9 -:1013C00042E061EC81E00E94610C42E061EC82E06D -:1013D0000E94610C42E061EC83E00E94610C42E1FA -:1013E00061EC84E00C94610C8091F301833009F48A -:1013F00055C030F4813071F0823009F48EC0089508 -:101400008A3009F47AC08B3009F460C0893009F061 -:101410009CC020C08091F201813A09F096C0809171 -:10142000E800877F8093E8008091F6019091F701B2 -:10143000892B21F460E18EE591E003C060E080E05B -:1014400090E070E00E949D0B8091E8008B77809384 -:10145000E80008958091F201813209F076C0809110 -:10146000F6019091F701009719F0039709F06DC00C -:101470008091E800877F8093E8008091E80082FDFA -:1014800005C08091F1018111F8CF5FC08091F1001A -:1014900080936E018091E8008B7753C08091F201B8 -:1014A000813A09F052C08091F6019091F701892BA1 -:1014B00009F04BC08091E800877F8093E80080911D -:1014C000E80080FFFCCF80910C0136C08091F201D2 -:1014D0008132D9F58091F6019091F701892BA9F518 -:1014E0008091E800877F8093E8000E94960C8091AD -:1014F000F40180930C010C9483148091F2018132E9 -:1015000021F58091E800877F8093E8000E94960C87 -:101510008091F50180936F0108958091F201813AE5 -:10152000A1F48091E800877F8093E8008091E80033 -:1015300080FFFCCF80916F018093F1008091E800E3 -:101540008E778093E8000C94960C089584B7877F7B -:1015500084BF88E10FB6F894809360001092600019 -:101560000FBE90E080E80FB6F894809361009093EE -:1015700061000FBE0E9439100E94E70C0E94440DCA -:101580008091E20084608093E20078940E94CA0F08 -:101590000E943B1082E091E00E94E50F0E94192218 -:1015A0008091F101853069F40E94531B8091EF0115 -:1015B0008823B1F30E947E1B882391F30E943C0B89 -:1015C000EFCF0E944110ECCF292F33272330310574 -:1015D000C9F064F42130310581F02230310509F081 -:1015E00043C08DE690E02AE333E042C0213231056A -:1015F000F1F02232310541F137C082E190E027EA73 -:1016000033E036C099278130910541F08230910551 -:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4 -:1016200002C0E6E0F3E0849190E09F0121C06430C5 -:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5 -:10164000318189E090E014C0643070F470E0FB01F7 -:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47 -:10166000FE4F808190E004C080E090E020E030E018 -:10167000FA0131832083089580E189BD82E189BD2B -:1016800009B400FEFDCF8091D8008F7D8093D800F3 -:101690008091E00082608093E0008091E00081FD15 -:1016A000FCCF0895CF92DF92EF92FF920F931F939A -:1016B000CF93DF93EC018B016A010E94B50C81117D -:1016C00033C0C114D10439F0F60180819181081B27 -:1016D000190BC80FD91FE12CF12C0115110519F1B7 -:1016E0008091E80085FD16C08091E8008E77809398 -:1016F000E800C114D10449F0F60180819181E80E1F -:10170000F91EF182E08285E00FC00E94B50C8823AB -:1017100021F30AC089918093F10001501109FFEF74 -:10172000EF1AFF0ADACF80E0DF91CF911F910F917E -:10173000FF90EF90DF90CF9008952091F8013091C5 -:10174000F9012617370748F06115710539F4209122 -:10175000E8002E772093E80001C0B90140E0611550 -:101760007105A9F12091F101222309F443C025302C -:1017700009F442C02091E80023FD40C02091E80018 -:1017800022FD32C02091E80020FFE9CF4091F30014 -:101790002091F20030E0342BFC01CF01611571057E -:1017A00059F02830310540F481918093F100615067 -:1017B00071092F5F3F4FF1CF41E02830310509F02B -:1017C00040E02091E8002E772093E800C8CF411137 -:1017D000C9CF0AC08091F101882361F0853061F0A2 -:1017E0008091E80083FD0AC08091E80082FFF2CF7B -:1017F00080E0089582E0089583E0089581E00895EF -:101800002091F8013091F9012617370748F061154A -:10181000710539F42091E8002E772093E80001C08B -:10182000B901FC0120E06115710591F18091F10190 -:10183000882309F440C0853009F43FC08091E80056 -:1018400083FD3DC08091E80082FD2FC08091E800BB -:1018500080FFE9CF2091F3008091F20090E0922B7D -:101860006115710559F08830910540F42491209359 -:10187000F1003196615071090196F2CF21E008978D -:1018800009F020E08091E8008E778093E800CBCFCC -:101890002111CCCF0AC08091F101882361F08530FD -:1018A00061F08091E80083FD0AC08091E80082FF2A -:1018B000F2CF80E0089582E0089583E0089581E00A -:1018C0000895982F973058F59093E900981739F0BC -:1018D0007091EC002091ED005091F00003C0242F96 -:1018E000762F50E021FF19C03091EB003E7F3093FE -:1018F000EB003091ED003D7F3093ED003091EB0037 -:1019000031603093EB007093EC002093ED00509326 -:10191000F0002091EE0027FF07C09F5FD3CF8F70AC -:101920008093E90081E0089580E008958091F201BC -:1019300087FF11C08091E80082FD05C08091F10110 -:101940008111F8CF11C08091E8008B770BC0809196 -:10195000F101882349F08091E80080FFF8CF809161 -:10196000E8008E778093E80008952091E40030919C -:10197000E50095E64091EC00842F817040FF22C085 -:101980008091E80080FD1CC08091F101882391F0D6 -:10199000853091F08091EB0085FD10C04091E4000E -:1019A0005091E5004217530729F39A01915011F71E -:1019B00084E0089582E0089583E0089581E0089529 -:1019C00080E008954091E80042FFDECF08950E9434 -:1019D000550D0E945D0DE0EEF0E080818160808316 -:1019E000E8EDF0E080818F77808319BCA7EDB0E04F -:1019F0008C918E7F8C9380818F7E80831092F001FA -:101A000008950F931F93CF93DF930E94550D0E946B -:101A10005D0DC8EDD0E088818F77888388818068EC -:101A2000888388818F7D888319BC1092F101109280 -:101A3000ED011092EF011092EE0100EE10E0F801BE -:101A400080818B7F808388818160888342E060E031 -:101A500080E00E94610CE1EEF0E080818E7F808367 -:101A6000E2EEF0E080818160808380818860808305 -:101A7000F80180818E7F8083888180618883DF91F7 -:101A8000CF911F910F910895E8EDF0E080818F7E56 -:101A90008083E7EDF0E080818160808384E082BF15 -:101AA00081E08093F0010C94010DE8EDF0E080817D -:101AB0008E7F80831092E20008951092DA001092D7 -:101AC000E10008951F920F920FB60F9211242F93E9 -:101AD0003F934F935F936F937F938F939F93AF93B6 -:101AE000BF93EF93FF938091E10082FF0BC0809141 -:101AF000E20082FF07C08091E1008B7F8093E100CC -:101B00000E94C90F8091DA0080FF1FC08091D80029 -:101B100080FF1BC08091DA008E7F8093DA00809175 -:101B2000D90080FF0DC080E189BD82E189BD09B483 -:101B300000FEFDCF81E08093F1010E94C40905C041 -:101B400019BC1092F1010E94D2098091E10080FF3E -:101B500019C08091E20080FF15C08091E2008E7F65 -:101B60008093E2008091E20080618093E2008091A6 -:101B7000D80080628093D80019BC85E08093F10181 -:101B80000E94D6098091E10084FF30C08091E2007C -:101B900084FF2CC080E189BD82E189BD09B400FECB -:101BA000FDCF8091D8008F7D8093D8008091E10097 -:101BB0008F7E8093E1008091E2008F7E8093E2002F -:101BC0008091E20081608093E2008091ED018823A2 -:101BD00011F084E007C08091E30087FD02C081E03E -:101BE00001C083E08093F1010E94D8098091E10057 -:101BF00083FF29C08091E20083FF25C08091E1002E -:101C0000877F8093E10082E08093F1011092ED01E3 -:101C10008091E1008E7F8093E1008091E2008E7FD1 -:101C20008093E2008091E20080618093E20042E0D4 -:101C300060E080E00E94610C8091F00088608093F9 -:101C4000F0000E94D509FF91EF91BF91AF919F9154 -:101C50008F917F916F915F914F913F912F910F9055 -:101C60000FBE0F901F9018951F920F920FB60F92F4 -:101C700011242F933F934F935F936F937F938F9391 -:101C80009F93AF93BF93CF93DF93EF93FF93C09155 -:101C9000E900CF708091EC00D82FD17080FDD0E8A2 -:101CA0001092E9008091F000877F8093F000789493 -:101CB0000E94780E1092E9008091F0008860809375 -:101CC000F000CD2BCF70C093E900FF91EF91DF9131 -:101CD000CF91BF91AF919F918F917F916F915F91C4 -:101CE0004F913F912F910F900FBE0F901F9018951D -:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3 -:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115 -:101D1000F10091938E13FBCF0E94F4098091E800AB -:101D200083FF1FC18091F2019091F301492F50E090 -:101D30004A30510508F015C1FA01EA5AFF4F0C94D8 -:101D4000B323803881F0823809F00BC18091F6010D -:101D50008F708093E9008091EB0085FB882780F9E4 -:101D60001092E90006C08091EE019091EF0191116F -:101D700082609091E800977F9093E8008093F10053 -:101D80001092F100C8C0282F2D7F09F0EAC08823E7 -:101D900019F0823061F0E5C08091F401813009F0E2 -:101DA000E0C0933009F080E08093EF012BC0809178 -:101DB000F401811127C08091F6018F7009F4D1C020 -:101DC0008093E9002091EB0020FF1CC0933021F4A8 -:101DD0008091EB00806214C09091EB009061909331 -:101DE000EB0021E030E0A90102C0440F551F8A95A5 -:101DF000E2F74093EA001092EA008091EB008860DD -:101E00008093EB001092E9008091E800877F86C004 -:101E10008111A7C01091F4011F778091E3008078B1 -:101E2000812B8093E3008091E800877F8093E80016 -:101E30000E94960C8091E80080FFFCCF8091E30027 -:101E400080688093E300111102C082E001C083E04A -:101E50008093F10186C08058823008F082C0809162 -:101E6000F4019091F5018C3D53E0950779F583E0FD -:101E70008A838AE289834FB7F894DE01139620E0C3 -:101E80003EE051E2E32FF0E050935700E49120FF51 -:101E900003C0E295EF703F5FEF708E2F90E0EA3065 -:101EA00010F0C79601C0C0968D939D932F5F24318B -:101EB00049F74FBF8091E800877F8093E8006AE28E -:101EC00070E0CE0101960E949D0B14C0AE014F5FE1 -:101ED0005F4F6091F6010E94E40ABC01009709F48B -:101EE00040C09091E800977F9093E80089819A81A3 -:101EF0000E94000C8091E8008B778093E80031C04D -:101F0000803879F58091E800877F8093E8008091A0 -:101F1000ED018093F1008091E8008E778093E800D6 -:101F20000E94960C1EC081111CC09091F401923049 -:101F3000C0F48091E800877F8093E8009093ED01E2 -:101F40000E94960C8091ED01811106C08091E30002 -:101F500087FD02C081E001C084E08093F1010E940E -:101F6000E0098091E80083FF0AC08091E800877F44 -:101F70008093E8008091EB0080628093EB00AA964A -:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A -:101F900008950895CF938091F1018823A1F0C09115 -:101FA000E900CF709091EC00892F817090FD80E85E -:101FB000C82B1092E9008091E80083FD0E94780E02 -:101FC000CF70C093E900CF910895909375018093ED -:101FD00074010895E0917401F0917501309721F03A -:101FE0000190F081E02D099480E00895E091740162 -:101FF000F0917501309721F00280F381E02D099472 -:102000000895E0917401F0917501309721F00480FA -:10201000F581E02D099408952091720130917301AA -:102020008217930771F09093730180937201E0918E -:102030007401F0917501309721F00680F781E02D51 -:1020400009940895209170013091710182179307CE -:1020500071F09093710180937001E0917401F0919F -:102060007501309721F00084F185E02D09940895E1 -:1020700008950C9438100E94921B0E9433030C9414 -:10208000541C9F92AF92BF92CF92DF92EF92FF9239 -:102090000F931F93CF93DF9300D000D000D0CDB724 -:1020A000DEB70E944B030DE010E0AA24A394B12CEC -:1020B000902E802F0E943904980129583E4F6901C3 -:1020C000F901F080F826A1F40150110988F78FEF8B -:1020D00089838A831B820E949B1B8160782F9D834A -:1020E0008C8349815A816B818D810E94D8102FC0C9 -:1020F0009091DA0191FF04C08E830E943F048E818B -:1021000025E030E0A501022E01C0440F0A94EAF751 -:10211000E42E4F21C1F029839A828E2191E009F4A7 -:1021200090E09B830E949B1B8160782F9D838C8312 -:1021300049815A816B818D810E94D810F60180817E -:10214000E826E08204C021503109E0F6BDCF0E94AC -:102150003B1F109176010E94EA0F1817B9F00E94F8 -:10216000EA0F8093760126960FB6F894DEBF0FBE75 -:10217000CDBFDF91CF911F910F91FF90EF90DF9036 -:10218000CF90BF90AF909F900C94E30826960FB627 -:10219000F894DEBF0FBECDBFDF91CF911F910F919D -:1021A000FF90EF90DF90CF90BF90AF909F900895F9 -:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82 -:1021C0000FBECDBF4F83588769877A878B87DE0123 -:1021D000119686E0FD0111928A95E9F785E0FE01EE -:1021E000379601900D928A95E1F749815A816B816A -:1021F0007C818D819E810E9421172B960FB6F894C9 -:10220000DEBF0FBECDBFDF91CF910895CF9388235E -:1022100009F4C2C0C82F823859F40E94EA0F81FD28 -:10222000BBC089E30E94FB190E94C81A89E30CC055 -:10223000833879F40E94EA0F80FDAEC083E50E94E6 -:10224000FB190E94C81A83E50E943D1ACF910C9495 -:10225000C81A843859F40E94EA0F82FD9DC087E4B1 -:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6 -:10227000813A48F48C2F0E947E2181118DC08C2FD1 -:102280000E94FB19E3CF80E28C0F883048F4C770BE -:1022900081E001C0880FCA95EAF70E94811AD6CF63 -:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB -:1022B00083E890E005C081E890E002C082E890E009 -:1022C000CF910C940C1088E58C0F833108F064C01A -:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118 -:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186 -:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106 -:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173 -:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB -:1023200038C082EE90E035C089EE90E032C08AEE8F -:1023300090E02FC085EB90E02CC086EB90E029C0A8 -:1023400087EB90E026C08CEC90E023C08DEC90E011 -:1023500020C083E891E01DC08AE891E01AC082E9BC -:1023600091E017C084E991E014C081E292E011C0CD -:1023700083E292E00EC084E292E00BC085E292E03C -:1023800008C086E292E005C087E292E002C08AE2DD -:1023900092E0CF910C942210CF910895882309F4F4 -:1023A0004BC0823859F40E94EA0F81FF45C089E38F -:1023B0000E94FB190E94C81A89E30CC0833871F48B -:1023C0000E94EA0F80FF38C083E50E94FB190E943B -:1023D000C81A83E50E943D1A0C94C81A843859F42F -:1023E0000E94EA0F82FF28C087E40E94FB190E9426 -:1023F000C81A87E4EFCF9CEF980F913A58F390E218 -:10240000980F983050F4877091E001C0990F8A9529 -:10241000EAF7892F0E94871ADFCF9BE5980F933048 -:1024200020F480E090E00C940C10885A833120F462 -:1024300080E090E00C9422100895882321F00E94FF -:10244000811A0C94C81A0895882321F00E94871AD3 -:102450000C94C81A08957F928F929F92AF92BF9268 -:10246000CF92DF92EF92FF920F931F93CF93DF9360 -:102470001F92CDB7DEB77C01C62E772EFC010581F9 -:1024800002950F70128111110E949E1A0E94F41978 -:10249000882379F0112369F080E28C0D883048F0B0 -:1024A00082E00E94DD190E94F41991E0D82ED9260D -:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C -:1024C0000C94B323872D807F072D0F70882311F084 -:1024D0000295007F112389F0002309F490C180E266 -:1024E0008C0D883020F4802F0E94811A03C0802F29 -:1024F0000E94911A0E94C81A82C18C2D0E94CE118E -:10250000002309F495C180E28C0D883020F4802FDF -:102510000E94871A03C0802F0E94971A0E94C81A2F -:1025200087C1972D907F872D8F70903211F0829503 -:10253000807FCC2021F0F1E0CF16B1F01EC0112336 -:1025400049F0002309F414C1013009F011C10E94BF -:10255000B11A6EC1002319F0013009F469C18983F1 -:102560000E94B41A89810AC1112321F0023008F0B7 -:102570005FC1FEC001115CC101C1112321F0002324 -:1025800009F4F6C03CC1002309F4F8C03EC1872D10 -:1025900086958695837090E0009719F0019761F019 -:1025A00047C1112321F08C2D972D937002C080E03C -:1025B00090E00E940C103CC1112321F08C2D972D2E -:1025C000937002C080E090E00E94221031C18C2DF7 -:1025D000112319F00E94431E02C00E94AB1E0E94EC -:1025E000301F26C1872D837009F052C0111120C100 -:1025F0008C2D829586958770880F880F9C2D9F70F3 -:10260000892E912CA12CB12C082E04C0880C991C69 -:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041 -:1026200020E030E0B901A80104C0440F551F661F27 -:10263000771F8A95D2F7CB01BA0160957095809586 -:10264000909503C060E070E0CB01272D269526957C -:10265000237030E02230310569F02330310589F0F4 -:10266000682979298A299B292130310571F00E9436 -:102670006918DEC0682979298A299B290E94851852 -:10268000D7C00E946918C501B4010E944D18D0C07E -:10269000112319F0872D817001C08695882309F4D4 -:1026A000C7C08C2D829586958770880F880F9C2DCA -:1026B0009F70892E912CA12CB12C082E04C0880C5F -:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC -:1026D00010E020E030E0B901A80104C0440F551F0C -:1026E000661F771F8A95D2F7CB01BA016095709566 -:1026F0008095909503C060E070E0CB01272D269572 -:1027000026952370422F50E04230510569F0433046 -:10271000510589F0682979298A299B294130510579 -:1027200071F00E94431984C0682979298A299B295C -:102730000E945F197DC00E944319C501B4010E9427 -:10274000271976C08C2D90E0FC01E05EF109E5319F -:10275000F10508F050C0E059FF4F0C94B3230C2D45 -:102760000F70872D8F71112331F00E94C018802FB8 -:102770000E941D125DC00E94E118802F0E94241249 -:1027800057C0112339F0011153C0872D8F710E945A -:1027900006194EC0023008F04BC0F7CF112339F0B4 -:1027A000872D8F710E94C01843C01123C9F3872D54 -:1027B0008F710E94E1183CC0112329F0872D8F7181 -:1027C0000E94AB1835C00E94A11832C0112351F0ED -:1027D000172D1F71812F0E94C01863E0812F0E9466 -:1027E000D41926C081E00E94DD19023008F182E090 -:1027F0000E94DD191DC0112331F0002389F28C2DB8 -:102800000E94061115C0002391F28C2D0E94CE115A -:102810000FC0472D4F706C2DC7010E9415050E94F7 -:10282000C51706C0472D4F706C2DC7010E94F205D9 -:10283000DD20F9F00E94D01980FD1BC0F701128243 -:102840000E94CA190E94C018C7010E9448140E9421 -:10285000CA190F90DF91CF911F910F91FF90EF90C8 -:10286000DF90CF90BF90AF909F908F907F900C940F -:10287000E1180F90DF91CF911F910F91FF90EF9092 -:10288000DF90CF90BF90AF909F908F907F900895F2 -:102890000F931F93CF93DF93EC01888199812B8154 -:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B -:1028B0000E944A05882371F0688179818A810E948B -:1028C000C6198C010E947B190E944218B801CE01E2 -:1028D0000E942B12DF91CF911F910F9108950E94BA -:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471 -:1028F000E11F0E94301F80E090E00E940C1080E0F9 -:1029000090E00C9422100E948E1A0C946F140E9476 -:10291000BB19292F22952F7030E02C3031054CF453 -:102920002A3031056CF42250310922303105A8F4E7 -:1029300007C02C30310569F02F30310551F00DC042 -:10294000803F69F018F4803E40F409C0843F29F4C8 -:1029500006C093FB882780F9089580E0089581E000 -:102960000895CF93DF9300D000D01F92CDB7DEB78C -:102970000F900F900F900F900F90DF91CF910895CF -:10298000CF93DF9300D000D000D0CDB7DEB726962E -:102990000FB6F894DEBF0FBECDBFDF91CF91089583 -:1029A0001F93CF93DF93C091850116E0809186013C -:1029B000C81799F0D0E01C9FF0011D9FF00D112465 -:1029C000E957FE4F408151816281738184819581F5 -:1029D0000E94C0142196C770E9CFDF91CF911F915B -:1029E00008954091B7015091B8016091B90170917B -:1029F000BA018091BB019091BC010C94C0148091EC -:102A0000BC0182958F7009F054C08091B901882370 -:102A100009F44FC080918501A09186016091B701B2 -:102A20007091B8014091BA015091BB01B6E08A178C -:102A300009F43FC090E041155105C1F17F3F11F409 -:102A40006F3FA1F1B89FF001B99FF00D1124E95734 -:102A5000FE4F218172132AC02081621327C0228178 -:102A6000211124C0238134812417350710F421500B -:102A70003109241B350B283C3105C0F42091BC01E1 -:102A80002F7020612093BC0126E0289FF001299F30 -:102A9000F00D1124E457FE4F80818F708061808398 -:102AA00087EB91E00E9448140C94D0140196877033 -:102AB000BECF0895CF92DF92EF92FF920F931F93B4 -:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32 -:102AD0000FBECDBF8C0185E0F801DE011D9601908F -:102AE0000D928A95E1F7D8014C9111965C9111975E -:102AF00012966C9112971396CD90DC9014973091AA -:102B0000B7017091B8018091BA019091BB01009713 -:102B100009F46BC17F3F19F43F3F09F466C1E090AF -:102B2000B901EE2009F4C0C02091BC01C816D90635 -:102B300028F0F601E81BF90BCF0104C080959095B1 -:102B40008C0D9D1DFF24F394883C910578F0F12CA9 -:102B5000207F09F0C6C07C2DD98AC88A89890E9445 -:102B6000B11487EB91E00E944814B1C0822F807F9E -:102B700009F046C0751314C0341312C0611110C09F -:102B80002F7020612093BC010E94F11487EB91E02B -:102B90000E9448148091BC01D80115968C932EC0D8 -:102BA000CD2819F15F3F11F44F3FF9F0F62E611176 -:102BB0001CC0809185012091860136E0821709F4BE -:102BC0005AC090E0389FF001399FF00D1124E95769 -:102BD000FE4F7181571306C07081471303C0728185 -:102BE000711103C001968770E9CFF62E662309F4B0 -:102BF00018C18091BC0181608093BC01F12C11C18E -:102C0000751308C0341306C0611104C08091BC0163 -:102C1000D801C3C04D875E878D859E856A8B0E94D3 -:102C200087146A898823E1F16623D1F12091BC01E0 -:102C3000822F82958F7090E0029774F08091B70197 -:102C40009091B80198878F831986DB86CA862C8776 -:102C5000CE0107960E94481486E0F801A7EBB1E088 -:102C600001900D928A95E1F70E94FF140E94F114E1 -:102C7000FF24F394D6C04D875E878D859E850E9484 -:102C8000BB19292F22952F7030E0223031050CF02E -:102C9000BCC09F7009F0B6C0805E883008F4C1C027 -:102CA000C8010E944814E4CFC816D90608F453C0DE -:102CB000F601E81BF90BCF01883C910508F450C0E0 -:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E -:102CD000F1E086E0DF011D928A95E9F70E94F11488 -:102CE000A0C0751314C0341312C0611110C08091BC -:102CF000BC01F8018583C8010E94481486E0E7EB17 -:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C -:102D10005E878D859E856A8B0E9487146A898823C9 -:102D200009F4BECF662309F4BBCF2091BC01822FEA -:102D300082958F7090E002970CF48ECF8091B7014E -:102D40009091B8019A8389831B82DD82CC822E8385 -:102D5000CE0101967FCF809590958C0D9D1DACCFB7 -:102D6000F62E662309F49CCF75132EC034132CC0A5 -:102D70002091BC0120FD1FC0822F82958F70D9F059 -:102D8000D80115962C9315978F3049F08F5F982FA7 -:102D90009295907F822F8F70892B15968C93C80106 -:102DA0000E94481486E0F801A7EBB1E001900D9273 -:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7 -:102DC0000D928A95E1F72DC04D875E878D859E8592 -:102DD0000E948714811140CF8091BC018160809353 -:102DE000BC01C8010E9448141CC0662309F458CFD6 -:102DF0004D875E878D859E850E948714882309F400 -:102E00004FCF2ACF811148CF0CC0243031050CF0B0 -:102E100047CF9F7009F440CFF8019581907F09F06A -:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D -:102E3000DF91CF911F910F91FF90EF90DF90CF9096 -:102E400008951F93CF93DF93CDB7DEB72C970FB6BE -:102E5000F894DEBF0FBECDBF4F83588769877A874E -:102E60008B879C87CE0107960E945A15882369F0AC -:102E70008F8198852A853B85232BF1F19F3F09F0AF -:102E800063C08F3F09F060C037C086E0FE0137960F -:102E9000DE01119601900D928A95E1F76F81788598 -:102EA000EA85FB85309741F17F3F11F46F3F21F1B7 -:102EB0002091860130E0C9010196877099274091E1 -:102EC000850150E08417950709F447C069837A8328 -:102ED000FD83EC8396E0929FD001939FB00D112467 -:102EE000A957BE4FFE01319601900D929A95E1F7D8 -:102EF000809386010E94D01416E080918501909104 -:102F000086018917C1F1189FC001112489579E4F6E -:102F10000E945A15882379F1E09185011E9FF001E6 -:102F20001124E957FE4F4081518162817381848170 -:102F300095810E94C0148091850190E00196877070 -:102F4000992780938501D9CF4F81588569857A85E6 -:102F50008B859C850E94C014CFCF0E948314109251 -:102F6000860110928501E7EBF1E086E0DF011D921A -:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45 -:102F8000CDBFDF91CF911F910895EF92FF920F93E4 -:102F90001F93CF93DF938C01009709F46CC0F12C41 -:102FA000EE24E394E8012196F8018491843740F4FB -:102FB000843008F051C0813081F0823019F15BC05B -:102FC000853709F444C0A8F19CE7980F903708F0C2 -:102FD00052C08F770E94CE1141C00E5F1F4FFE017D -:102FE000C49180E28C0F883048F4C7708E2D01C0E8 -:102FF000880FCA95EAF70E94A11A14C08C2F0E946C -:1030000006112DC00E5F1F4FFE01C49180E28C0F90 -:10301000883058F4C7708E2D01C0880FCA95EAF722 -:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3 -:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3 -:103040009FE00197F1F700C00000C150F6CF0E5F7E -:103050001F4FFE01F49003C00E9406118E018F2DB8 -:10306000882309F49FCFEFE9FFE03197F1F700C023 -:1030700000008150F5CFDF91CF911F910F91FF900C -:10308000EF90089508956093C1017093C2018093F9 -:10309000C3019093C4010C946F140F931F9300917C -:1030A000C1011091C2012091C3013091C401DC0122 -:1030B000CB01802B912BA22BB32B8093C10190933A -:1030C000C201A093C301B093C4011F910F910C944E -:1030D0006F140F931F930091C1011091C2012091B1 -:1030E000C3013091C401DC01CB0180239123A223D1 -:1030F000B3238093C1019093C201A093C301B09305 -:10310000C4011F910F910C946F140F931F930091A2 -:10311000C1011091C2012091C3013091C401DC01B1 -:10312000CB0180279127A227B3278093C1019093D9 -:10313000C201A093C301B093C4011F910F910C94DD -:103140006F141092BD011092BE011092BF01109237 -:10315000C0010C946F1441E050E060E070E004C0E6 -:10316000440F551F661F771F8A95D2F74093BD0104 -:103170005093BE016093BF017093C0010C946F1413 -:1031800041E050E060E070E004C0440F551F661F4E -:10319000771F8A95D2F78091BD019091BE01A091D1 -:1031A000BF01B091C001482B592B6A2B7B2B409358 -:1031B000BD015093BE016093BF017093C0010C9498 -:1031C0006F1441E050E060E070E004C0440F551F10 -:1031D000661F771F8A95D2F7409550956095709538 -:1031E0008091BD019091BE01A091BF01B091C0013D -:1031F000482359236A237B234093BD015093BE018A -:103200006093BF017093C0010C946F1441E050E0D3 -:1032100060E070E004C0440F551F661F771F8A9559 -:10322000D2F78091BD019091BE01A091BF01B091F4 -:10323000C001482759276A277B274093BD01509337 -:10324000BE016093BF017093C0010C946F140F9383 -:103250001F930091BD011091BE012091BF013091DB -:10326000C001DC01CB01802B912BA22BB32B8093CF -:10327000BD019093BE01A093BF01B093C0011F9107 -:103280000F910C946F140F931F930091BD01109137 -:10329000BE012091BF013091C001DC01CB01802330 -:1032A0009123A223B3238093BD019093BE01A093E9 -:1032B000BF01B093C0011F910F910C946F140F9335 -:1032C0001F930091BD011091BE012091BF0130916B -:1032D000C001DC01CB0180279127A227B32780936F -:1032E000BD019093BE01A093BF01B093C0011F9197 -:1032F0000F910C946F140895CF92DF92EF92FF928A -:103300000F931F93CF93DF938C01C090C101D09096 -:10331000C201E090C301F090C4018091BD01909181 -:10332000BE01A091BF01B091C001C82AD92AEA2AE2 -:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520 -:10334000A795979587950A94D2F780FF06C0B80194 -:103350008C2F0E944808019721F4219760F780E0A4 -:1033600001C08C2FDF91CF911F910F91FF90EF90B3 -:10337000DF90CF900895CF93DF93EC010E947C19EA -:10338000BE010E944808DF91CF910895CB010E94B1 -:10339000BB1908958091C5018595859585950895FA -:1033A0008091C5018770089598E0899F900111244C -:1033B000262B2093C5010C94C0182091C50180953F -:1033C00082238093C501982F977069F430E0482FCD -:1033D000552747FD50952417350729F08595859584 -:1033E00085950C94E11808959091C501977081E03E -:1033F00009F480E0089590910C01992321F09091B7 -:103400000D01911109C020910E0130910F01F901B8 -:1034100032969FEF40E01FC0982F9695969596950F -:103420009F3050F5E0910E01F0910F01E90FF11D71 -:10343000877021E030E0A90102C0440F551F8A9532 -:10344000E2F7CA019181892B818308959F3F39F06A -:103450004F5F4E3041F051915813F8CF0DC05111CC -:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08 -:1034700097FDFA9582830895089590910C01992300 -:1034800021F090910D01911109C020910E01309110 -:103490000F01F9013296205F3F4F1FC0982F96957C -:1034A000969596959F30F0F4E0910E01F0910F0102 -:1034B000E90FF11D877021E030E0A90102C0440F3F -:1034C000551F8A95E2F7CA018095918189238183EE -:1034D00008953196E217F30729F090819813F9CFF8 -:1034E0001082F7CF089581E090E0E0910E01F09115 -:1034F0000F01E80FF91F1082019680319105A9F79D -:1035000008959091D901892B8093D90108958095D0 -:103510009091D90189238093D90108951092D901FE -:1035200008959091D801892B8093D80108958095B2 -:103530009091D80189238093D80108951092D801E1 -:1035400008959091D701892B8093D7010895809594 -:103550009091D70189238093D70108951092D701C4 -:1035600008958093C60108951092C6010895809130 -:103570000E0190910F01FC0131969C01205F3F4F9D -:1035800080E0919191118F5FE217F307D1F70895D1 -:10359000E0910E01F0910F018091D9018083E091BB -:1035A0000E01F0910F0190818091D801892B8083C9 -:1035B000E0910E01F0910F0190818091D701892B4C -:1035C00080838091C601882361F0E0910E01F09123 -:1035D0000F019081892B80830E94B71A811110926C -:1035E000C60180910E0190910F010C94F60F20E01E -:1035F000009739F0AC0141505109842395232F5F86 -:10360000F7CF822F0895CF92DF92EF92FF926C0155 -:10361000EE24FF24C114D104E104F10421F0C70118 -:10362000B60120E101C020E0C72ED82EE92EFF24EC -:10363000C114D104E104F10419F0285FC701B601F7 -:103640006B017C0154E0F694E794D794C7945A95A3 -:10365000D1F7C114D104E104F10419F02C5FC701C2 -:10366000B6016B017C0142E0F694E794D794C794CD -:103670004A95D1F7C114D104E104F10419F02E5F89 -:10368000C701B601DC01CB01B695A7959795879543 -:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5 -:1036A000DF90CF9008958091F101843021F1109244 -:1036B000DB0120E488E190E00FB6F894A8958093B0 -:1036C00060000FBE2093600080E00E94E30883B793 -:1036D000817F846083BF83B7816083BF789488953E -:1036E00083B78E7F83BF88E10FB6F8948093600024 -:1036F000109260000FBE0895089508950E947C1BEB -:103700000E944B030E947D1B0E94400491E08111A6 -:1037100001C090E0892F08950E9483140E94EA0F4F -:103720000C94E30882E084BD93E095BD9AEF97BDC9 -:1037300080936E0008952FB7F8948091DC019091EA -:10374000DD01A091DE01B091DF012FBF0895CF927E -:10375000DF92EF92FF920F931F932FB7F89440914F -:10376000DC015091DD016091DE017091DF012FBF1E -:103770006A017B01EE24FF248C0120E030E0C016BA -:10378000D106E206F30610F4415051099A01281BB4 -:10379000390BC9011F910F91FF90EF90DF90CF90EF -:1037A00008951F920F920FB60F9211248F939F933B -:1037B000AF93BF938091DC019091DD01A091DE0178 -:1037C000B091DF010196A11DB11D8093DC019093A2 -:1037D000DD01A093DE01B093DF01BF91AF919F9116 -:1037E0008F910F900FBE0F901F9018950E94E70CBD -:1037F000F8942FEF87EA91E6215080409040E1F75E -:1038000000C0000087E090EBDC018093FB01909307 -:10381000FC01A093FD01B093FE019CE088E10FB68E -:10382000F894A895809360000FBE90936000FFCF3E -:10383000EF92FF920F931F93CF93DF93D82FCDE09A -:103840008C2F0E94390405E010E0E82EF12CC7010E -:10385000002E02C0959587950A94E2F780FF09C073 -:10386000602F7C2F80E00E94F305D81302C081E016 -:1038700006C00150110958F7C15010F780E0DF91E0 -:10388000CF911F910F91FF90EF900895CF93C82F84 -:103890008CE20E94181C882321F08C2FCF910C946D -:1038A000181C80E0CF910895CF930E949B1D811139 -:1038B00002C00E94811DC5E6C15049F00E944B0321 -:1038C0008FE39CE90197F1F700C00000F5CF89E292 -:1038D0000E94461C811113C18AE20E94461C81117C -:1038E0000E94811D85E00E94461C81110E94F61BEA -:1038F0000E94A61D8093DA0187E00E94461C88235F -:10390000A9F18BE10E94461C882351F08091DA01D5 -:1039100081FB222720F991E0922790FB81F90EC0CC -:103920008EE00E94461C882361F08091DA0182FBC0 -:10393000222720F991E0922790FB82F98093DA0107 -:1039400015C080E10E94461C9091DA01882341F065 -:1039500093FB222720F981E0822780FB93F904C0A2 -:10396000892F809580FB90F99093DA018091DA019C -:103970000E94AA1D0E94B81D8093FA0180EE0E9449 -:10398000461C882341F08091FA01982F909590FB76 -:1039900080F98093FA0189E30E94461C882359F03C -:1039A0008091FA0181FB222720F991E0922790FB78 -:1039B00081F98093FA0182EE0E94461C882359F017 -:1039C0008091FA0182FB222720F991E0922790FB57 -:1039D00082F98093FA0186EE0E94461C882359F0F2 -:1039E0008091FA0183FB222720F991E0922790FB36 -:1039F00083F98093FA0183EE0E94461C882359F0D4 -:103A00008091FA0184FB222720F991E0922790FB14 -:103A100084F98093FA0185E30E94461C882359F0BB -:103A20008091FA0185FB222720F991E0922790FBF3 -:103A300085F98093FA0181E30E94461C882359F09E -:103A40008091FA0186FB222720F991E0922790FBD2 -:103A500086F98093FA0181E10E94461C882359F07F -:103A60008091FA0187FB222720F991E0922790FBB1 -:103A700087F98093FA018091FA010E94BC1D809120 -:103A8000FA0187FB882780F980930D0187E20E9465 -:103A9000461CC82F8EE10E94461C8111C2608FE136 -:103AA0000E94461C8111C46080E20E94461C811164 -:103AB000C86081E20E94461C8111C06182E20E94BE -:103AC000461C8111C06283E20E94461C8111C064C1 -:103AD00084E20E94461C882311F0C06802C0CC23F7 -:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4 -:103AF000682F70E080E090E0CF910C944318CF9154 -:103B000008956DEE7EEF80E090E00E94ED2360E08E -:103B100082E090E00E94DB2360E083E090E00E947E -:103B2000DB2360E084E090E00E94DB2360E085E03E -:103B300090E00C94DB2380E090E00E94D52321E00C -:103B40008D3E9E4F09F020E0822F089582E090E0A4 -:103B50000C94CD23682F82E090E00C94DB2383E06B -:103B600090E00C94CD23682F83E090E00C94DB234D -:103B700084E090E00C94CD23682F84E090E00C94D6 -:103B8000DB238091E20180FF0BC06091130185E08F -:103B9000689FB001112475956795759567952BC041 -:103BA00081FF09C06091130185E0689FB001112475 -:103BB0007595679520C082FF07C06091130185E06D -:103BC000689FB001112417C09091E3019923D1F0AF -:103BD00060911201961788F72091130185E0289FC4 -:103BE00090011124929FA001939F500D112470E029 -:103BF000CA010E949F236038710540F46115710568 -:103C000039F002C065E070E0862F08958FE70895CF -:103C100081E008958091E20180FF08C06091110168 -:103C200070E0759567957595679521C081FF06C011 -:103C30006091110170E07595679519C082FF04C00D -:103C40006091110170E010C09091E3019923C1F0DF -:103C5000609110019617A0F780911101899FC00112 -:103C6000112470E00E949F236038710528F46115CB -:103C7000710521F0862F08958FE7089581E008955A -:103C800061E070E0F4CF803F21F40E94C11D819576 -:103C900004C0813F29F40E94C11D8093E60108956C -:103CA000823F21F40E94C11D819504C0833F29F405 -:103CB0000E94C11D8093E5010895893F19F40E9477 -:103CC0000A1E05C08A3F31F40E940A1E8195809326 -:103CD000E70108958B3F21F40E940A1E819504C0DC -:103CE0008C3F29F40E940A1E8093E8010895843FC6 -:103CF00021F48091E401816017C0853F21F4809117 -:103D0000E401826011C0863F21F48091E401846067 -:103D10000BC0873F21F48091E401886005C0883F93 -:103D200031F48091E40180618093E40108958D3F36 -:103D300021F48091E20181600BC08E3F21F48091DB -:103D4000E201826005C08F3F29F48091E201846026 -:103D50008093E2010895803F39F48091E60187FF66 -:103D60006CC01092E60169C0813F29F48091E601A0 -:103D70001816BCF362C09091E501823F29F497FFC9 -:103D80005CC01092E50159C0833F19F41916CCF3B9 -:103D900054C0893F41F48091E70118160CF04DC0E2 -:103DA0001092E7014AC08A3F29F48091E70187FF1A -:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6 -:103DC0001092E8013AC08C3F29F48091E80118165E -:103DD000BCF333C0843F21F48091E4018E7F17C08F -:103DE000853F21F48091E4018D7F11C0863F21F44D -:103DF0008091E4018B7F0BC0873F21F48091E40127 -:103E0000877F05C0883F31F48091E4018F7E8093E5 -:103E1000E40113C08D3F21F48091E2018E7F0BC03D -:103E20008E3F21F48091E2018D7F05C08F3F29F400 -:103E30008091E2018B7F8093E2018091E501811105 -:103E40000EC08091E60181110AC08091E7018111C5 -:103E500006C08091E801811102C01092E30108952B -:103E600084EE91E00E9401100E949B1B9093E1015F -:103E70008093E00108951F93CF93DF938091E00139 -:103E80009091E1010E94A71BAC019091E30199235D -:103E900021F02091140130E006C0209115018AE044 -:103EA000289F900111244217530708F486C080917F -:103EB000E501C091E601D091E7011091E80181117F -:103EC00007C0C11176C0D11174C0111172C075C084 -:103ED0009F3F19F09F5F9093E301181624F40E940E -:103EE000C11D8093E5018091E50187FF05C00E9417 -:103EF000C11D81958093E5011C1624F40E94C11D0B -:103F00008093E6018091E60187FF05C00E94C11DF4 -:103F100081958093E6016091E501662339F1C091B6 -:103F2000E601CC2319F1772767FD7095872F972F2E -:103F30000E94B02223E333E343E35FE30E941423B0 -:103F40000E947D226093E5016C2F772767FD7095B5 -:103F5000872F972F0E94B02223E333E343E35FE3ED -:103F60000E9414230E947D226093E6011D1624F412 -:103F70000E940A1E8093E7018091E70187FF05C038 -:103F80000E940A1E81958093E701111624F40E9475 -:103F90000A1E8093E8018091E80187FF05C00E9416 -:103FA0000A1E81958093E801DF91CF911F910C94B7 -:103FB000301F9F3F09F08ECF96CFDF91CF911F9199 -:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE -:103FD0001092E3011092E2010895833081F128F4F8 -:103FE000813059F08230D1F00895853009F449C00C -:103FF000B8F1863009F456C0089580911501262F36 -:1040000030E0280F311D2F3F310524F4680F6093F5 -:10401000150108958FEF8093150108958091140183 -:10402000262F30E0280F311D2F3F310524F4680F73 -:104030006093140108958FEF809314010895809187 -:104040001301262F30E0280F311D2F3F310524F4B6 -:10405000680F6093130108958FEF80931301089503 -:1040600080911201262F30E0280F311D2F3F31059E -:1040700024F4680F6093120108958FEF809312016A -:10408000089580911101262F30E0280F311D2F3F18 -:10409000310524F4680F6093110108958FEF809328 -:1040A0001101089580911001262F30E0280F311D55 -:1040B0002F3F310524F4680F6093100108958FEFAE -:1040C000809310010895833011F128F4813049F074 -:1040D000823091F00895853081F120F18630C1F170 -:1040E000089580911501681720F4861B80931501AF -:1040F000089510921501089580911401681720F415 -:10410000861B8093140108951092140108958091E4 -:104110001301681720F4861B8093130108951092F1 -:104120001301089580911201681720F4861B809373 -:1041300012010895109212010895809111016817DB -:1041400020F4861B809311010895109211010895A7 -:1041500080911001681720F4861B80931001089548 -:104160001092100108950F931F938D3109F46BC0C5 -:1041700008F03FC08E3009F47FC0C0F4873009F4E6 -:1041800069C068F4863009F0B1C08091DA01817F9E -:104190008E7F8093DA0181E08093EA01A8C08830A5 -:1041A00009F4A2C08B3009F49FC0A0C0863109F485 -:1041B0009BC078F4803109F472C0813109F096C057 -:1041C0000E94831490910D0181E0892780930D0155 -:1041D0008BC0893109F488C08B3109F087C0809188 -:1041E000DA0181FB222720F991E0922790FB81F9E7 -:1041F0004CC0853309F470C048F4873209F46CC0B0 -:1042000008F459C0893209F467C070C0833438F4A7 -:104210008A3308F04EC0883309F466C067C083341F -:1042200009F45AC0883409F061C00E9483140FEF6A -:1042300013ED20E3015010402040E1F700C00000E2 -:104240000E94F61B51C00E9437220E94EA0F0E9472 -:10425000E3084AC09091DA01892F8095817080FB34 -:1042600090F929F0966098609093DA0140C0997FA8 -:10427000977F9093DA0138C08091DA0182FB222780 -:1042800020F991E0922790FB82F98093DA0199233B -:1042900059F18091DA0181608093DA0125C0809123 -:1042A000DA0183FB222720F991E0922790FB83F922 -:1042B000ECCF895301C08D5141E050E060E070E0E7 -:1042C0008A019B0104C0000F111F221F331F8A9512 -:1042D000D2F7C901B80104C061E070E080E090E06D -:1042E0000E9443180E94831481E001C080E01F9166 -:1042F0000F91089580E0089580E00895CF93C82F2E -:104300008091EA01813079F018F08230E9F187C0BC -:10431000E0910E01F0910F018081813169F08232CC -:1043200009F07FC009C0E0910E01F0910F0180817A -:10433000813111F0823261F48C2F0E947A21811137 -:1043400004C08C2F0E94B3201DC081E090E01AC0F1 -:104350008C2F0E947C21811114C0C43179F048F463 -:10436000CB3079F0C03109F060C082E08093EA017F -:1043700008C0C93219F0C83321F057C01092EA01C1 -:1043800054C081E0817053C0C93289F118F5C4313D -:1043900071F1A8F4C73009F046C08AE08093150196 -:1043A00094E19093140193E0909313018093120190 -:1043B00088E08093110188E28093100134C0CE51CF -:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB -:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC -:1043E00013C0C13579F0C235F1F461E00DC08091A0 -:1043F000E901882319F01092E90115C081E080934A -:10440000EA0115C061E006C08091E9010E94ED1F3C -:104410000AC06AE08091E9010E94632004C0109202 -:10442000EA0180E004C081E002C080E0ABCFCF9120 -:104430000895E1E8F0E08081886080838081816078 -:1044400080838FB7F89493E09093890090ED9093D8 -:1044500088008FBF0895EFE6F0E08081826080835E -:104460000895EFE6F0E080818D7F80830895EFE688 -:10447000F0E0908182E08927808308951F920F9257 -:104480000FB60F9211242F933F934F935F936F9327 -:104490007F938F939F93AF93BF93EF93FF938091FD -:1044A000EB019091EC0101969093EC018093EB016C -:1044B000811103C082E00E94E308E091EC01E695DF -:1044C000E695F0E0EC54FB4FE4918091EB018E1304 -:1044D00003C080E00E94E308FF91EF91BF91AF918C -:1044E0009F918F917F916F915F914F913F912F910C -:1044F0000F900FBE0F901F90189504D06894B111C3 -:104500008DC0089570D088F09F5790F0B92F9927EB -:10451000B751A0F0D1F0660F771F881F991F1AF0CE -:10452000BA95C9F712C0B13081F077D0B1E00895E3 -:1045300074C0672F782F8827B85F39F0B93FCCF364 -:10454000869577956795B395D9F73EF490958095C4 -:10455000709561957F4F8F4F9F4F0895E89409C0E4 -:1045600097FB3EF490958095709561957F4F8F4FA6 -:104570009F4F9923A9F0F92F96E9BB279395F695BC -:10458000879577956795B795F111F8CFFAF4BB0F3A -:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E -:1045A000882311F096E911C0772321F09EE8872F28 -:1045B000762F05C0662371F096E8862F70E060E0E4 -:1045C0002AF09A95660F771F881FDAF7880F96955D -:1045D000879597F9089557FD9058440F551F59F046 -:1045E0005F3F71F04795880F97FB991F61F09F3FE0 -:1045F00079F087950895121613061406551FF2CF09 -:104600004695F1DF08C0161617061806991FF1CF58 -:1046100086957105610508940895E894BB2766277F -:104620007727CB0197F908950BD078C069D028F08F -:104630006ED018F0952309F05AC05FC01124EECF58 -:10464000CADFA0F3959FD1F3950F50E0551F629FED -:10465000F001729FBB27F00DB11D639FAA27F00DDB -:10466000B11DAA1F649F6627B00DA11D661F829F02 -:104670002227B00DA11D621F739FB00DA11D621FE7 -:10468000839FA00D611D221F749F3327A00D611D04 -:10469000231F849F600D211D822F762F6A2F1124E6 -:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39 -:1046B000BB1F661F771F881F91505040A9F79E3F70 -:1046C000510570F014C0AACF5F3FECF3983EDCF3C5 -:1046D000869577956795B795F795E7959F5FC1F7AD -:1046E000FE2B880F911D9695879597F9089597F958 -:1046F0009F6780E870E060E008959FEF80EC089588 -:1047000000240A94161617061806090608950024B0 -:104710000A9412161306140605060895092E03942A -:10472000000C11F4882352F0BB0F40F4BF2B11F49E -:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF -:10474000072E16F4009407D077FD09D00E94B923F4 -:1047500007FC05D03EF4909581959F4F0895709584 -:1047600061957F4F0895EE0FFF1F0590F491E02DA6 -:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8 -:10478000B70710F0A61BB70B881F991F5A95A9F7FA -:1047900080959095BC01CD010895F999FECF92BD09 -:1047A00081BDF89A992780B50895A8E1B0E042E06C -:1047B00050E00C94F523262FF999FECF92BD81BDD0 -:1047C000F89A019700B4021639F01FBA20BD0FB64F -:1047D000F894FA9AF99A0FBE08950196272F0E942D -:1047E000DC230C94DB23DC01CB01FC01F999FECF27 -:1047F00006C0F2BDE1BDF89A319600B40D92415069 -:0A4800005040B8F70895F894FFCF78 -:10480A000220E508730950091C09E8080101C701DB -:10481A0028080A03140A3F4D363975042804F2039E -:10482A00B9034C0365037E039703010203040506DB -:04483A000708090062 -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/townk_osx/compiled.hex b/keyboards/ergodox_ez/keymaps/townk_osx/compiled.hex deleted file mode 100644 index c8db30edf..000000000 --- a/keyboards/ergodox_ez/keymaps/townk_osx/compiled.hex +++ /dev/null @@ -1,1171 +0,0 @@ -:100000000C9495020C94D9020C94D9020C94D90248 -:100010000C94D9020C94D9020C94D9020C94D902F4 -:100020000C94D9020C94D9020C94670E0C94390FDD -:100030000C94D9020C94D9020C94D9020C94D902D4 -:100040000C94D9020C94A3220C94D9020C94D902DA -:100050000C94D9020C94851D0C94D9020C94D902ED -:100060000C94D9020C94D9020C94D9020C94D902A4 -:100070000C94D9020C94D9020C94D9020C94D90294 -:100080000C94D9020C94D9020C94D9020C94D90284 -:100090000C94D9020C94D9020C94D9020C94D90274 -:1000A0000C94D9020C94D9020C94D902A60FC80F53 -:1000B000B610C80FB6100D103010B610851098107D -:1000C0006913691395139513D813F8135315531522 -:1000D00003145315B014B0144415531553154D158E -:1000E000BD14BD14BD14BD14BD14BD14BD14BD1488 -:1000F000BD14BD14BD14BD14BD14BD14BD14BD1478 -:10010000CE14DB14E214E914F314021902E3000123 -:10011000E3011900020602E30001E30106000213F5 -:100120000001E00104020402E001130002290001C1 -:10013000E00104020402E00129000000F4A2002210 -:1001400030A135002B003161C200C10000001E004B -:10015000140004001D0001534D001F001A0016007A -:100160001B00E0004C002000080007000600E20031 -:100170002A002100150009001900E3004A002200AE -:1001800017000A00050000000A3029006B67000014 -:100190006D6F00000B3066006C6700006E6F000032 -:1001A0000C3023001C000B00110000000D30240057 -:1001B00018000D001000E7004B0025000C000E0099 -:1001C0003600E6002C00260012000F0037002F61D9 -:1001D00028002700130033003800C3004E002D0014 -:1001E0002E003461C200C10000000000FF00FE00CC -:1001F000FD00000000000000000000000000010001 -:100200000000F400F900F200FB0000000000F5001F -:10021000F000F100000000000000F600FA00F3001A -:10022000FC000000000000000000000000000000D2 -:1002300000000000000000000000000000002B0291 -:100240002B0000005800000000009C005F005C00D4 -:10025000590000000000540060005D005A00620078 -:100260000000550061005E005B0063000000230297 -:100270005700560067008500010026022702000093 -:10028000000001000000000000000000000000006D -:100290000000000000003900E100010000003A0009 -:1002A000AD00B0000000000000003B00BC00AC004E -:1002B0000000010000003C00AF00AE0000000100A3 -:1002C00000003D00BB00AB000000010000003E004C -:1002D000000000000000000000003F0001000000DE -:1002E00001000000000040000100000001000000CB -:1002F000000041000000500000000000000042002B -:100300000000510000000100000043000000520006 -:10031000000001000000440000004F000000010048 -:100320000000450000000000000000000000A900DF -:10033000AA00A800E50001000000160345007200B5 -:1003400067006F0044006F007800200045005A00ED -:10035000000016034500720067006F0044006F0044 -:100360007800200045005A00000004030904090237 -:100370006D00040100A0FA0904000001030101005E -:100380000921110100012240000705810308000A2C -:1003900009040100010301020009211101000122E9 -:1003A0004D000705820308000A090402000103004A -:1003B000000009211101000122360007058303080E -:1003C000000A0904030001030000000921110100D3 -:1003D00001223900070584031000011201100100F9 -:1003E000000008EDFE0713010001020001050109EC -:1003F00006A101050719E029E715002501950875F3 -:1004000001810205081901290595057501910295DB -:10041000017503910105071900297715002501953C -:100420007875018102C005010980A10185021601CC -:100430000026B7001A01002AB70075109501810047 -:10044000C0050C0901A1018503160100269C021AB2 -:1004500001002A9C02751095018100C00501090266 -:10046000A1010901A10005091901290515002501AE -:10047000950575018102950175038101050109301A -:1004800009311581257F9502750881060938158186 -:10049000257F950175088106050C0A38021581250E -:1004A0007F950175088106C0C005010906A10105F7 -:1004B0000719E029E71500250195087501810295C6 -:1004C0000175088101050819012905950575019136 -:1004D000029501750391010507190029FF150026F2 -:1004E000FF00950675088100C000000000000000B4 -:1004F00000000000010204060A0F17202C3A4A5D92 -:1005000071879DB3C7DAE9F5FCFFFCF5E9DAC7B3FB -:100510009D87715D4A3A2C20170F0A0604020100DC -:100520000000000000000000000011241FBECFEFFB -:10053000DAE0DEBFCDBF04B603FE24C08091030223 -:1005400090910402A0910502B09106028730904B71 -:10055000A740B04BB9F4109203021092040210921B -:1005600005021092060214BE84B7877F84BF88E11B -:100570000FB6F89480936000109260000FBEE0E028 -:10058000FFE3099511E0A0E0B1E0E4EDF8E402C07A -:1005900005900D92A433B107D9F712E0A4E3B1E0BE -:1005A00001C01D92A330B107E1F70E94AF0B0C947C -:1005B00068240C9400001092B9008AE08093B8007F -:1005C000089594EA9093BC009091BC0097FFFCCFF3 -:1005D0009091B900987F983021F0903111F081E02E -:1005E00008958093BB0084E88093BC008091BC0098 -:1005F00087FFFCCF8091B900887F883111F080346B -:1006000071F780E0089584E98093BC008091BC007C -:1006100084FDFCCF08958093BB0084E88093BC00E8 -:100620008091BC0087FFFCCF9091B900987F81E05A -:10063000983209F480E0089584E88093BC008091AA -:10064000BC0087FFFCCF8091BB00089580B38C7005 -:1006500080BB81B3836F81BB0895809101018111BB -:1006600015C080E40E94E1028093010181110CC059 -:1006700082E10E940B0380930101811105C08FEF7D -:100680000E940B03809301010E94030384B1807FC9 -:1006900084B985B1807F85B98AB1837F8AB98BB1EE -:1006A000837F8BB93E98469808950E94F704809303 -:1006B00001010E942D030E942603A5E3B1E0E3E4BB -:1006C000F1E08EE08E0F11921D928E13FCCF0C94F0 -:1006D000E1040E94F704809301010E942D030E940F -:1006E0002603A5E3B1E0E3E4F1E08EE08E0F119282 -:1006F0001D928E13FCCF0895BF92CF92DF92EF929E -:10070000FF920F931F93CF93DF9380910101882372 -:1007100079F0809134018F5F80933401811108C09A -:100720000E94F70480930101811102C00E94890494 -:1007300005E311E0C0E0D0E0DD24D39482E0C82ED0 -:10074000EE24E394F12CC730D10500F5809101012E -:10075000811164C080E40E94E10280930101811153 -:1007600012C082E10E940B038093010181110BC032 -:10077000C7010C2E01C0880F0A94EAF780950E94E9 -:100780000B03809301010E94030348C0CA30A1F00B -:1007900028F4C83059F0C93061F005C0CC3089F078 -:1007A00070F0CD3089F0209A289810C0219A2998AD -:1007B0000DC0229A2A980AC0239A2B9807C0529AF1 -:1007C00001C0539A5B9802C03E9A469890EA9A9567 -:1007D000F1F79FB1799902C082E001C080E0917089 -:1007E0009D25982B7C9902C084E001C080E0892B74 -:1007F0007D9902C038E001C030E0832B7E9902C0B1 -:1008000020E101C020E0822B9FB19095991F99278C -:10081000991F9295990F907E892B0FC080910101AD -:10082000811149C080E40E94E10280930101882384 -:1008300079F1B12C0E9403038B2DF8019081981758 -:1008400019F08083C09200010E942D0321960F5F52 -:100850001F4FCE30D10509F076CF8091000188235B -:1008600061F1815080930001882339F08FE99FE086 -:100870000197F1F700C0000020C0A3E4B1E0E5E378 -:10088000F1E0CF01825F91919D938E13FCCF15C053 -:1008900083E10E940B03809301018111CACF81E49F -:1008A0000E94E102809301018111C3CF0E941C03C9 -:1008B000B82EB094BFCF80E0C0CF0E94870481E003 -:1008C000DF91CF911F910F91FF90EF90DF90CF902C -:1008D000BF900895E82FF0E0ED5BFE4F8081089512 -:1008E00008950F931F93CF93DF93C3E4D1E010E0FB -:1008F0000C2F025F899190E00E94AC1C180F0C1322 -:10090000F9CF812FDF91CF911F910F9108950C9412 -:100910007A0556985E9825982D9826982E982798AF -:100920002F988FEF90E090938900809388009093A8 -:100930008B0080938A0090938D0080938C00259A81 -:100940002D9A2FEF80E792E0215080409040E1F710 -:1009500000C00000269A2E9A2FEF80E792E02150E7 -:1009600080409040E1F700C00000279A2F9A2FEFB7 -:1009700080E792E0215080409040E1F700C0000005 -:1009800025982D982FEF80E792E0215080409040ED -:10099000E1F700C0000026982E982FEF80E792E044 -:1009A000215080409040E1F700C0000027982F9828 -:1009B00056985E9825982D9826982E9827982F98C7 -:1009C000089589EA8093800089E0809381002498CB -:1009D0002C983F988AB18F748AB96E98479A8BB1D8 -:1009E000806B8BB9769A0E9489040C94790580E219 -:1009F000809301018091510181110EC00E94DB02A0 -:100A000081E0809351012FEF83ED90E321508040EE -:100A10009040E1F700C0000080E40E94E102809372 -:100A2000010181112EC00E940B03809301018111ED -:100A300028C00E940B0380930101811122C08FE323 -:100A40000E940B038093010181111BC00E940303CC -:100A500080E40E94E10280930101811112C08CE0C8 -:100A60000E940B038093010181110BC00E940B03B4 -:100A700080930101811105C08FE30E940B038093D5 -:100A800001010E940303809101010895FC016B3074 -:100A900079F018F46A3031F01DC06C3079F06D30A7 -:100AA00099F018C08281811118C08CE291E00895FC -:100AB0008281811115C08EE191E0089582818111BA -:100AC00012C084E191E00895828181110FC08AE013 -:100AD00091E0089580E090E008958FE291E008951C -:100AE00081E291E0089589E191E008958FE091E03D -:100AF00008950895CF936091BF017091C0018091D6 -:100B0000C1019091C2010E94B81CC82F56985E98EE -:100B100025982D9826982E9827982F988FE090E06A -:100B2000909389008093880090938B0080938A0033 -:100B300090938D0080938C00CC2329F0C13029F450 -:100B4000C093520102C01092520180915201813033 -:100B500011F4279A2F9A0E94EF10867011F0259AAF -:100B60002D9AC23041F40E94351B811104C0279890 -:100B70002F98269A2E9AE0910E01F0910F01808114 -:100B8000982F927259F08D7D49F48FEF90E09093F9 -:100B9000890080938800259A2D9A08C00E94621CC3 -:100BA000827221F00E94081B882379F3CF91089567 -:100BB00081E0089581E008950C94DA050895282FC6 -:100BC000882339F090E02A3010F44D960895069766 -:100BD000089587E290E00895AF92BF92DF92EF927E -:100BE000FF920F931F93CF93DF938C01FC01C08181 -:100BF000D181CE010E94B11ABE010E945C09EC01B4 -:100C0000B8010E94DC05882309F4C9C1F80182817A -:100C1000882309F4BEC080915F0181111FC0C431D7 -:100C2000F0E7DF0709F0B5C10E94DE0581E080939F -:100C30005F010E944F1D90935E0180935D011092B1 -:100C40005601109258011092570110925A011092B9 -:100C5000590110925C0110925B01A1C180915D016C -:100C600090915E010E945B1D883C910570F480911B -:100C70005601E82FF0E0EE0FFF1FE95AFE4FD18337 -:100C8000C0838F5F809356018AC1C13020E8D207AC -:100C900008F451C0F8018281882309F47EC05E0106 -:100CA000E894B7F880915501813079F050F08230A6 -:100CB000C1F482EE0E940B1287E50E940B1287E5B9 -:100CC0000EC082EE0E940B120CC080EE0E940B122E -:100CD00081EE0E940B1288E10E940B1288E10E94B3 -:100CE000D3128CE0E82EF12CC5010E2C02C0969593 -:100CF00087950A94E2F78F700E94DF05D82E0E9434 -:100D00000B128D2D0E94D312F4E0EF1AF1082CEF94 -:100D1000E2162FEFF20641F780915501813029F05C -:100D200010F0823041F482EE04C080EE0E94D312B3 -:100D300081EE0E94D312C43180E7D80768F4C23034 -:100D400090E7D90708F046C0C115E0E7DE0771F06B -:100D5000C130D047A1F10CC1C33320E7D20709F459 -:100D6000D8C0C433D04709F4EBC002C1F801828176 -:100D7000882309F402C10E94B815FFEF24E38CE038 -:100D8000F15020408040E1F700C000000E94AA1D01 -:100D900006C1C13080E8D80770F2C43120E7D2071D -:100DA00008F0B3C0C23080E7D807A0F4C11590E7BF -:100DB000D90709F4E2C0C130D04709F0D9C0F80121 -:100DC0008281882309F4D9C08091E10181608093F8 -:100DD000E101E5C0F8018281882309F4CEC00E94B8 -:100DE000041E811102C00E94EA1D0E94171E90E09D -:100DF0009093F5018093F401C230F0E7DF0721F40E -:100E00008091F40181607AC0C33020E7D20721F4D9 -:100E10008091F401826072C0C43080E7D80721F469 -:100E20008091F40184606AC0C53090E7D90719F455 -:100E30008091F40127C0C630E0E7DE0721F48091FD -:100E4000F40180615BC0C730F0E7DF0721F48091D7 -:100E5000F401806253C0C83020E7D20721F48091AA -:100E6000F40180644BC0C93080E7D80721F4809139 -:100E7000F401806843C0CA3090E7D90729F4809113 -:100E8000F401846088603AC0CB30E0E7DE0721F4EB -:100E90008091F4018E7F32C0CC30F0E7DF0721F47F -:100EA0008091F4018D7F2AC0CD3020E7D20721F454 -:100EB0008091F4018B7F22C0CE3080E7D80719F4EF -:100EC0008091F4011AC08091F401CF3090E7D907E6 -:100ED00011F48F7E13C0C031E0E7DE0711F48F7D7F -:100EE0000DC0C131F0E7DF0711F48F7B07C0C231BD -:100EF000D04711F48F7702C08B7F877F8093F401F6 -:100F00008091F4010E941B1E4AC0C333F0E7DF0743 -:100F1000A1F4F8018281882321F01092530182E02C -:100F200016C080915301811106C086E20E940B1207 -:100F300086E20E94D31282E018C0C433D047C1F4C5 -:100F4000F8018281882331F01092540180E20E94DE -:100F5000221325C080915401811106C087E20E94AE -:100F60000B1287E20E94D31280E20E94291317C05D -:100F700081E08093530180935401C801DF91CF91A8 -:100F80001F910F91FF90EF90DF90BF90AF900C9466 -:100F9000D805C130F0E8DF0708F081CECCCE80E084 -:100FA000DF91CF911F910F91FF90EF90DF90BF9055 -:100FB000AF90089526E0729FF001112444E5849FCC -:100FC000E00DF11D1124E60FF11DEE0FFF1FEE5B8A -:100FD000FE4F859194910E946E09811560E49607F9 -:100FE000B0F5811570E3970708F0DEC0803E9105EB -:100FF000D8F4803C910508F06CC0883A910578F4EB -:10100000853A910508F06BC08130910509F452C111 -:1010100008F40FC18430910508F04CC10AC18B3B24 -:10102000910508F467C005C18F3F910509F048F4A8 -:10103000803F910508F0ADC0883E910508F43AC1A3 -:10104000F8C0811520E2920708F0A5C00895811527 -:1010500043E5940790F4811562E5960708F0C8C04F -:10106000811571E5970708F0BEC0811520E592074C -:1010700008F09DC09F70906A0895811545E594071A -:10108000D8F4811564E5960708F0C8C0482F469546 -:10109000469570E2479FA00111248370992721E0B3 -:1010A00030E0B90102C0660F771F8A95E2F7CB01E5 -:1010B000842B952B9A680895811576E5970708F497 -:1010C000B2C09C0130562115304108F0B2C09F706B -:1010D000AEC0FC01EE0FFF1FE654F04062C0853A3F -:1010E000910509F4A9C0863A910509F0A8C082E8E3 -:1010F00090E40895883A910509F4A4C0893A9105CD -:1011000009F4A3C08A3A910509F4A2C08B3A91056B -:1011100009F4A1C08C3A910509F4A0C08D3A91055B -:1011200009F49FC0803B910509F49EC08E3A910559 -:1011300009F49DC08F3A910509F49CC0813B91054B -:1011400009F49BC0823B910509F49AC0833B910549 -:1011500009F499C0843B910509F498C0853B910539 -:1011600009F497C0863B910509F496C0873B910529 -:1011700009F495C0883B910509F494C0893B910519 -:1011800009F493C08A3B910509F492C080E094E48D -:10119000089590650895FC01FF70EE0FFF1FE65C57 -:1011A000FE4F8591949108959927906C0895482F4A -:1011B000437021E030E002C0220F331F4A95E2F76E -:1011C0003C68AC0164E0569547956A95E1F7437039 -:1011D000342B8F708695869560E2869FC00111241E -:1011E000822B932B0895982F8827816F906A0895FA -:1011F000482F4695469570E2479FA00111248370C1 -:10120000992721E030E0B90102C0660F771F8A9567 -:10121000E2F7CB01842B952B9C680895982F8827A3 -:10122000846F906A08958F719927982F882790620C -:10123000089580E090E0089581E890E4089583E8BF -:1012400090E4089582EE94E4089589EE94E408957C -:101250008AEE94E4089585EB94E4089586EB94E493 -:10126000089587EB94E408958CEC94E408958DEC54 -:1012700094E4089583E895E408958AE895E4089550 -:1012800082E995E4089584E995E4089581E296E47D -:10129000089583E296E4089584E296E4089585E251 -:1012A00096E4089586E296E4089587E296E4089528 -:1012B0008AE296E40895089596E0799FF00111245A -:1012C00094E5899FE00DF11D1124E60FF11DEE0F4D -:1012D000FF1FEE5BFE4F8591949108958238910532 -:1012E00049F1B0F48133910509F458C048F48932CA -:1012F000910509F44EC08A32910509F454C008954D -:101300008533910509F440C08933910599F008951A -:10131000833E910529F138F4803E910591F0823E9B -:101320009105A1F00895863E9105F9F0873E91055B -:1013300031F108952091F40120FD3AC021FD38C01B -:1013400008958091F40180FD35C032C08091F40190 -:1013500082FF32C08091F40184FD30C083EE39C039 -:101360008091F40182FD28C0F5CF8091F40183FFC4 -:1013700027C08091F40184FD21C087EE2AC08091AE -:10138000F40183FD1DC0F5CF8091F40185FD1AC0E5 -:101390001BC08091F40185FD17C014C08091F40139 -:1013A00086FD14C015C08091F40186FD11C00EC0E9 -:1013B00080EE0FC089E30DC082EE0BC080E009C053 -:1013C00086EE07C089E205C085E303C08AE201C05A -:1013D00081E390E0089508950C94EB0980917001E9 -:1013E0000895CF93DF9300D01F92CDB7DEB79C0155 -:1013F0008091FA01843019F593E099833B832A8325 -:101400009093E9008FEF9091E800815095FD06C020 -:1014100095ED9A95F1F700008111F5CF8091E800E4 -:1014200085FF0DC040E050E063E070E0CE01019622 -:101430000E94570C8091E8008E778093E8000F900F -:101440000F900F90DF91CF910895CF93DF9300D04D -:101450001F92CDB7DEB72091FA01243021F522E0AA -:1014600029839B838A8383E08093E9008FEF9091A7 -:10147000E800815095FD06C095ED9A95F1F70000C2 -:101480008111F5CF8091E80085FF0DC040E050E06C -:1014900063E070E0CE0101960E94570C8091E80055 -:1014A0008E778093E8000F900F900F90DF91CF918F -:1014B00008952091FA012430F1F422E02093E9000C -:1014C0002FEF3091E800215035FD06C035ED3A95FB -:1014D000F1F700002111F5CF2091E80025FF0BC0A6 -:1014E00040E050E065E070E00E94570C8091E80019 -:1014F0008E778093E8000895CF93DF93EC0190916D -:10150000FA01943009F046C080910C018823D9F08B -:1015100080910D018823B9F09093E9008FEF9091AD -:10152000E800815095FD06C095E19A95F1F700001D -:101530008111F5CF8091E80085FF2CC040E050E09C -:1015400060E170E017C081E08093E9008FEF909137 -:10155000E800815095FD06C095ED9A95F1F70000E1 -:101560008111F5CF8091E80085FF14C040E050E084 -:1015700068E070E0CE010E94570C8091E8008E7701 -:101580008093E80080E1FE01A0E6B1E001900D92B9 -:101590008A95E1F7DF91CF9108958091F90181114A -:1015A00009C00E94EC0D0E94490E8091E200846007 -:1015B0008093E20008951092F901089508950C9423 -:1015C00090220E94401D0E9496220E94EF100C94CF -:1015D000EC0942E061EC81E00E94660D42E061ECC2 -:1015E00082E00E94660D42E061EC83E00E94660D9D -:1015F00042E161EC84E00C94660D8091FC01833043 -:1016000009F455C030F4813071F0823009F48EC095 -:1016100008958A3009F47AC08B3009F460C08930AB -:1016200009F09CC020C08091FB01813A09F096C06E -:101630008091E800877F8093E8008091FF0190917E -:101640000002892B21F460E180E691E003C060E0B4 -:1016500080E090E070E00E94A20C8091E8008B771F -:101660008093E80008958091FB01813209F076C0F3 -:101670008091FF0190910002009719F0039709F003 -:101680006DC08091E800877F8093E8008091E8003A -:1016900082FD05C08091FA018111F8CF5FC0809171 -:1016A000F100809370018091E8008B7753C08091A6 -:1016B000FB01813A09F052C08091FF019091000234 -:1016C000892B09F04BC08091E800877F8093E80068 -:1016D0008091E80080FFFCCF80910C0136C08091A2 -:1016E000FB018132D9F58091FF0190910002892B95 -:1016F000A9F58091E800877F8093E8000E949B0D08 -:101700008091FD0180930C010C94B8158091FB0130 -:10171000813221F58091E800877F8093E8000E9464 -:101720009B0D8091FE018093710108958091FB01D2 -:10173000813AA1F48091E800877F8093E80080914E -:10174000E80080FFFCCF809171018093F1008091CF -:10175000E8008E778093E8000C949B0D089584B781 -:10176000877F84BF88E10FB6F89480936000109261 -:1017700060000FBE80E880936100109261000E94BB -:101780003E110E94EC0D0E94490E8091E20084609F -:101790008093E20078940E94CF100E94401182E072 -:1017A00091E00E94EA100E947E228091FA01853029 -:1017B00069F40E94081D8091F8018823B1F30E940A -:1017C000321D882391F30E94410CEFCF0E944611F5 -:1017D000ECCF292F332723303105C9F064F42130B1 -:1017E000310581F02230310509F043C08DE690E0EB -:1017F0002EE633E042C021323105F1F022323105CC -:1018000041F137C082E190E02BED33E036C09927FB -:101810008130910541F08230910541F0892B49F5E5 -:10182000EAE6F3E005C0E2E5F3E002C0EAE3F3E054 -:10183000849190E09F0121C06430D8F4E62FF0E05D -:10184000EE0FFF1FEE5DFE4F2081318189E090E0B9 -:1018500014C0643070F470E0FB01EE0FFF1FE65E11 -:10186000FE4F20813181FB01EA5EFE4F808190E0D6 -:1018700004C080E090E020E030E0FA013183208372 -:10188000089580E189BD82E189BD09B400FEFDCFE4 -:101890008091D8008F7D8093D8008091E000826095 -:1018A0008093E0008091E00081FDFCCF0895CF920D -:1018B000DF92EF92FF920F931F93CF93DF93EC0190 -:1018C0008B016A010E94BA0D811133C0C114D10489 -:1018D00039F0F60180819181081B190BC80FD91FBF -:1018E000E12CF12C0115110519F18091E80085FD1D -:1018F00016C08091E8008E778093E800C114D1046F -:1019000049F0F60180819181E80EF91EF182E082B2 -:1019100085E00FC00E94BA0D882321F30AC0899187 -:101920008093F10001501109FFEFEF1AFF0ADACF9F -:1019300080E0DF91CF911F910F91FF90EF90DF90AA -:10194000CF900895209101023091020226173707A7 -:1019500048F06115710539F42091E8002E77209345 -:10196000E80001C0B90140E061157105A9F12091BD -:10197000FA01222309F443C0253009F442C0209122 -:10198000E80023FD40C02091E80022FD32C02091F4 -:10199000E80020FFE9CF4091F3002091F20030E011 -:1019A000342BFC01CF016115710559F02830310548 -:1019B00040F481918093F100615071092F5F3F4F96 -:1019C000F1CF41E02830310509F040E02091E800F6 -:1019D0002E772093E800C8CF4111C9CF0AC080916B -:1019E000FA01882361F0853061F08091E80083FD81 -:1019F0000AC08091E80082FFF2CF80E0089582E083 -:101A0000089583E0089581E00895209101023091C6 -:101A100002022617370748F06115710539F4209145 -:101A2000E8002E772093E80001C0B901FC0120E016 -:101A30006115710591F18091FA01882309F440C084 -:101A4000853009F43FC08091E80083FD3DC080915E -:101A5000E80082FD2FC08091E80080FFE9CF20914F -:101A6000F3008091F20090E0922B6115710559F01E -:101A70008830910540F424912093F1003196615013 -:101A800071090196F2CF21E0089709F020E08091DA -:101A9000E8008E778093E800CBCF2111CCCF0AC02D -:101AA0008091FA01882361F0853061F08091E8002F -:101AB00083FD0AC08091E80082FFF2CF80E00895A4 -:101AC00082E0089583E0089581E00895982F97308B -:101AD00058F59093E900981739F07091EC00209137 -:101AE000ED005091F00003C0242F762F50E021FF2D -:101AF00019C03091EB003E7F3093EB003091ED0048 -:101B00003D7F3093ED003091EB0031603093EB007E -:101B10007093EC002093ED005093F0002091EE00C4 -:101B200027FF07C09F5FD3CF8F708093E90081E0CC -:101B3000089580E008958091FB0187FF11C0809196 -:101B4000E80082FD05C08091FA018111F8CF11C033 -:101B50008091E8008B770BC08091FA01882349F0CF -:101B60008091E80080FFF8CF8091E8008E77809325 -:101B7000E80008952091E4003091E50095E6409159 -:101B8000EC00842F817040FF22C08091E80080FD2E -:101B90001CC08091FA01882391F0853091F08091EA -:101BA000EB0085FD10C04091E4005091E500421724 -:101BB000530729F39A01915011F784E0089582E0C8 -:101BC000089583E0089581E0089580E008954091AC -:101BD000E80042FFDECF08950E945A0E0E94620E76 -:101BE000E0EEF0E0808181608083E8EDF0E08081CC -:101BF0008F77808319BCA7EDB0E08C918E7F8C939A -:101C000080818F7E80831092F90108950F931F9336 -:101C1000CF93DF930E945A0E0E94620EC8EDD0E06F -:101C200088818F77888388818068888388818F7D89 -:101C3000888319BC1092FA011092F6011092F801F3 -:101C40001092F70100EE10E0F80180818B7F808315 -:101C500088818160888342E060E080E00E94660DB8 -:101C6000E1EEF0E080818E7F8083E2EEF0E0808123 -:101C700081608083808188608083F80180818E7F8D -:101C80008083888180618883DF91CF911F910F913C -:101C90000895E8EDF0E080818F7E8083E7EDF0E04D -:101CA00080818160808384E082BF81E08093F9013C -:101CB0000C94060EE8EDF0E080818E7F8083109218 -:101CC000E20008951092DA001092E10008951F9248 -:101CD0000F920FB60F9211242F933F934F935F9360 -:101CE0006F937F938F939F93AF93BF93EF93FF93E4 -:101CF0008091E10082FF0BC08091E20082FF07C06B -:101D00008091E1008B7F8093E1000E94CE10809152 -:101D1000DA0080FF1FC08091D80080FF1BC0809137 -:101D2000DA008E7F8093DA008091D90080FF0DC0A9 -:101D300080E189BD82E189BD09B400FEFDCF81E06B -:101D40008093FA010E94CD0A05C019BC1092FA01D5 -:101D50000E94DB0A8091E10080FF19C08091E200BF -:101D600080FF15C08091E2008E7F8093E200809119 -:101D7000E20080618093E2008091D80080628093CD -:101D8000D80019BC85E08093FA010E94DF0A809197 -:101D9000E10084FF30C08091E20084FF2CC080E12C -:101DA00089BD82E189BD09B400FEFDCF8091D800D4 -:101DB0008F7D8093D8008091E1008F7E8093E10039 -:101DC0008091E2008F7E8093E2008091E20081604A -:101DD0008093E2008091F601882311F084E007C02F -:101DE0008091E30087FD02C081E001C083E0809321 -:101DF000FA010E94E10A8091E10083FF29C08091ED -:101E0000E20083FF25C08091E100877F8093E1009D -:101E100082E08093FA011092F6018091E1008E7FBA -:101E20008093E1008091E2008E7F8093E2008091B8 -:101E3000E20080618093E20042E060E080E00E9486 -:101E4000660D8091F00088608093F0000E94DE0AA9 -:101E5000FF91EF91BF91AF919F918F917F916F9182 -:101E60005F914F913F912F910F900FBE0F901F9058 -:101E700018951F920F920FB60F9211242F933F9334 -:101E80004F935F936F937F938F939F93AF93BF9382 -:101E9000CF93DF93EF93FF93C091E900CF708091D0 -:101EA000EC00D82FD17080FDD0E81092E90080912D -:101EB000F000877F8093F00078940E947D0F10924D -:101EC000E9008091F00088608093F000CD2BCF7006 -:101ED000C093E900FF91EF91DF91CF91BF91AF9156 -:101EE0009F918F917F916F915F914F913F912F9132 -:101EF0000F900FBE0F901F9018951F93CF93DF93F5 -:101F0000CDB7DEB7AA970FB6F894DEBF0FBECDBF30 -:101F1000EBEFF1E088E08E0F9091F10091938E133A -:101F2000FBCF0E94FD0A8091E80083FF1FC18091D2 -:101F3000FB019091FC01492F50E04A30510508F017 -:101F400015C1FA01EA5AFF4F0C941824803881F029 -:101F5000823809F00BC18091FF018F708093E900F6 -:101F60008091EB0085FB882780F91092E90006C07C -:101F70008091F7019091F801911182609091E800B1 -:101F8000977F9093E8008093F1001092F100C8C011 -:101F9000282F2D7F09F0EAC0882319F0823061F0E4 -:101FA000E5C08091FD01813009F0E0C0933009F077 -:101FB00080E08093F8012BC08091FD01811127C042 -:101FC0008091FF018F7009F4D1C08093E9002091C6 -:101FD000EB0020FF1CC0933021F48091EB00806265 -:101FE00014C09091EB0090619093EB0021E030E001 -:101FF000A90102C0440F551F8A95E2F74093EA00F9 -:102000001092EA008091EB0088608093EB001092C0 -:10201000E9008091E800877F86C08111A7C01091F8 -:10202000FD011F778091E3008078812B8093E3008E -:102030008091E800877F8093E8000E949B0D80914B -:10204000E80080FFFCCF8091E30080688093E3008C -:10205000111102C082E001C083E08093FA0186C0C2 -:102060008058823008F082C08091FD019091FE017D -:102070008C3D53E0950779F583E08A838AE2898372 -:102080004FB7F894DE01139620E03EE051E2E32FD3 -:10209000F0E050935700E49120FF03C0E295EF7009 -:1020A0003F5FEF708E2F90E0EA3010F0C79601C0CE -:1020B000C0968D939D932F5F243149F74FBF809138 -:1020C000E800877F8093E8006AE270E0CE01019625 -:1020D0000E94A20C14C0AE014F5F5F4F6091FF01E0 -:1020E0000E94E90BBC01009709F440C09091E80000 -:1020F000977F9093E80089819A810E94050D8091D5 -:10210000E8008B778093E80031C0803879F58091C2 -:10211000E800877F8093E8008091F6018093F100CA -:102120008091E8008E778093E8000E949B0D1EC08E -:1021300081111CC09091FD019230C0F48091E800A3 -:10214000877F8093E8009093F6010E949B0D809119 -:10215000F601811106C08091E30087FD02C081E095 -:1021600001C084E08093FA010E94E90A8091E800AE -:1021700083FF0AC08091E800877F8093E800809108 -:10218000EB0080628093EB00AA960FB6F894DEBF56 -:102190000FBECDBFDF91CF911F9108950895CF93CA -:1021A0008091FA018823A1F0C091E900CF7090914D -:1021B000EC00892F817090FD80E8C82B1092E90017 -:1021C0008091E80083FD0E947D0FCF70C093E900ED -:1021D000CF91089590937701809376010895E091CF -:1021E0007601F0917701309721F00190F081E02D98 -:1021F000099480E00895E0917601F091770130979D -:1022000021F00280F381E02D09940895E091760198 -:10221000F0917701309721F00480F581E02D099449 -:10222000089520917401309175018217930771F020 -:102230009093750180937401E0917601F09177019C -:10224000309721F00680F781E02D099408952091C0 -:102250007201309173018217930771F090937301AB -:1022600080937201E0917601F0917701309721F02F -:102270000084F185E02D0994089508950C943D1192 -:102280000E94461D0E9455030C94CC1D9F92AF9254 -:10229000BF92CF92DF92EF92FF920F931F93CF9353 -:1022A000DF9300D000D000D0CDB7DEB70E947C0312 -:1022B0000DE010E0AA24A394B12C902E802F0E9450 -:1022C0006A04980127583E4F6901F901F080F82609 -:1022D000A1F40150110988F78FEF89838A831B824B -:1022E0000E944F1D8160782F9D838C8349815A8184 -:1022F0006B818D810E94DD112FC09091E10191FFD2 -:1023000004C08E830E9470048E8125E030E0A50118 -:10231000022E01C0440F0A94EAF7E42E4F21C1F0C7 -:1023200029839A828E2191E009F490E09B830E9498 -:102330004F1D8160782F9D838C8349815A816B81E9 -:102340008D810E94DD11F6018081E826E08204C0C3 -:1023500021503109E0F6BDCF0E949A1F10917801FB -:102360000E94EF101817B9F00E94EF1080937801C7 -:1023700026960FB6F894DEBF0FBECDBFDF91CF918A -:102380001F910F91FF90EF90DF90CF90BF90AF9093 -:102390009F900C94EC0926960FB6F894DEBF0FBE02 -:1023A000CDBFDF91CF911F910F91FF90EF90DF9004 -:1023B000CF90BF90AF909F900895CF93DF93CDB70C -:1023C000DEB72B970FB6F894DEBF0FBECDBF4F839D -:1023D000588769877A878B87DE01119686E0FD0131 -:1023E00011928A95E9F785E0FE01379601900D92EA -:1023F0008A95E1F749815A816B817C818D819E812B -:102400000E9456182B960FB6F894DEBF0FBECDBFB4 -:10241000DF91CF910895CF93882309F4C2C0C82FCC -:10242000823859F40E94EF1081FDBBC089E30E94FD -:10243000991B0E94761C89E30CC0833879F40E94B2 -:10244000EF1080FDAEC083E50E94991B0E94761CB0 -:1024500083E50E94DB1BCF910C94761C843859F4E1 -:102460000E94EF1082FD9DC087E40E94991B0E948C -:10247000761C87E4EECF8CEF8C0F813A48F48C2FDA -:102480000E94E42181118DC08C2F0E94991BE3CF03 -:1024900080E28C0F883048F4C77081E001C0880F5B -:1024A000CA95EAF70E94221CD6CF8BE58C0F8330A9 -:1024B00078F4C53A29F0C63A31F083E890E005C0D7 -:1024C00081E890E002C082E890E0CF910C94111175 -:1024D00088E58C0F833108F064C0C83A39F1C93AF5 -:1024E00041F1CA3A49F1CB3A51F1CC3A59F1CD3ADE -:1024F00061F1C03B69F1CE3A71F1CF3A79F1C13B5C -:1025000081F1C23B89F1C33B91F1C43B99F1C53BD9 -:10251000A1F1C63BA9F1C73BB1F1C83BB9F1C93B39 -:10252000C1F1CA3BC9F180E090E038C082EE90E092 -:1025300035C089EE90E032C08AEE90E02FC085EB86 -:1025400090E02CC086EB90E029C087EB90E026C09D -:102550008CEC90E023C08DEC90E020C083E891E00B -:102560001DC08AE891E01AC082E991E017C084E9B1 -:1025700091E014C081E292E011C083E292E00EC0CB -:1025800084E292E00BC085E292E008C086E292E02D -:1025900005C087E292E002C08AE292E0CF910C94FB -:1025A0002711CF910895882309F44BC0823859F43C -:1025B0000E94EF1081FF45C089E30E94991B0E9491 -:1025C000761C89E30CC0833871F40E94EF1080FF01 -:1025D00038C083E50E94991B0E94761C83E50E9407 -:1025E000DB1B0C94761C843859F40E94EF1082FF98 -:1025F00028C087E40E94991B0E94761C87E4EFCFD5 -:102600009CEF980F913A58F390E2980F983050F45D -:10261000877091E001C0990F8A95EAF7892F0E948F -:10262000281CDFCF9BE5980F933020F480E090E0EA -:102630000C941111885A833120F480E090E00C94BE -:1026400027110895882321F00E94221C0C94761CE7 -:102650000895882321F00E94281C0C94761C08956C -:102660008F929F92AF92BF92DF92EF92FF920F9361 -:102670001F93CF93DF937C01D62FC72FFC010281DC -:10268000158112951F700E94351B882319F082E076 -:102690000E94771B01110E943F1C0E94921B8823FD -:1026A00079F0002369F080E28D0F883048F082E0F5 -:1026B0000E94771B0E94921B91E0D82ED92601C060 -:1026C000D12CEC2FE295EF70F0E0E05AFF4F0C9424 -:1026D00018248C2F807FCF70882311F0C295C07F83 -:1026E000002389F0CC2309F4C4C180E28D0F883027 -:1026F00020F48C2F0E94221C03C08C2F0E94321CBD -:102700000E94761CB6C18D2F0E94D312CC2309F4EF -:10271000CAC1D05E8C2FD83018F40E94281C02C089 -:102720000E94381C0E94761CBEC18C2F807FCF7007 -:10273000803211F0C295C07FDD2319F0D13029F12C -:102740002DC0002381F0112369F1113021F48C2F69 -:102750000E94521CA8C1123029F50E945B1C8C2FCC -:102760000E94021B1FC0112369F0113041F40E9426 -:102770001F1C8C2309F497C10E94051B03C0123053 -:1027800009F491C10E945B1C11C0002321F012309A -:1027900008F089C107C0111186C108C0002321F0CB -:1027A000111167C18C2FF1C011116AC18C2FF3C0B8 -:1027B0008C2F86958695837090E0009719F001978D -:1027C00061F071C1002321F08D2F9C2F937002C006 -:1027D00080E090E00E94111166C1002321F08D2F4E -:1027E0009C2F937002C080E090E00E9427115BC193 -:1027F0008D2F002319F00E94A21E02C00E940A1F02 -:102800000E948F1F50C18C2F837009F050C001119E -:102810004AC18D2F829586958770880F880F9D2FCE -:102820009F70892E912CA12CB12C082E04C0880CED -:10283000991CAA1CBB1C0A94D2F7D4FF14C00FE049 -:1028400010E020E030E0B901A80104C0440F551F9A -:10285000661F771F8A95D2F7CB01BA0160957095F4 -:102860008095909503C060E070E0CB01C695C69559 -:10287000C370D0E0C230D10561F0C330D10581F022 -:10288000682979298A299B29219771F00E949E192C -:102890000AC1682979298A299B290E94BA1903C18A -:1028A0000E949E19C501B4010E948219FCC0002338 -:1028B00019F08C2F817001C08695882309F4F3C02C -:1028C0008D2F829586958770880F880F9D2F9F701A -:1028D000892E912CA12CB12C082E04C0880C991C97 -:1028E000AA1CBB1C0A94D2F7D4FF14C00FE010E05E -:1028F00020E030E0B901A80104C0440F551F661F55 -:10290000771F8A95D2F7CB01BA01609570958095B3 -:10291000909503C060E070E0CB01C695C695C3708A -:102920004C2F50E04230510569F04330510589F099 -:10293000682979298A299B294130510571F00E9423 -:10294000781AB1C0682979298A299B290E94941A8A -:10295000AAC00E94781AC501B4010E945C1AA3C0E3 -:102960008D2F90E0FC01E05EF109E531F10508F002 -:102970007BC0E059FF4F0C941824DF708C2F8F71AF -:10298000002331F00E94F5198D2F0E9422138BC075 -:102990000E94161A8D2F0E94291385C0002339F03A -:1029A000111181C08C2F8F710E943B1A7CC0123094 -:1029B00008F079C0F7CF002339F08C2F8F710E9477 -:1029C000F51971C00023C9F38C2F8F710E94161A5C -:1029D0006AC0002329F08C2F8F710E94E01963C018 -:1029E0000E94D61960C00023B9F00E94FF1A0E940D -:1029F000281C0E94311B843029F40E94701B8C2FEC -:102A00008F7162C0123008F06CC0CF718C2F0E94A1 -:102A1000F51963E08C2F0DC00E94FF1A0E94221C42 -:102A20001230A0F00E94701B0E94051B64E08C2FE6 -:102A30008F71DF91CF911F910F91FF90EF90DF90F9 -:102A4000BF90AF909F908F900C94601B81E0DF91BE -:102A5000CF911F910F91FF90EF90DF90BF90AF90BB -:102A60009F908F900C94771B002339F0112309F469 -:102A7000A4CF8D2F0E940B1216C0112309F4A4CFEE -:102A80008D2F0E94D3120FC04C2F4F706D2FC70196 -:102A90000E9446050E94FA1806C04C2F4F706D2FF9 -:102AA000C7010E945B09DD20E1F00E94311B80FD1F -:102AB00018C0F70112820E942B1B0E94F519C70152 -:102AC0000E947D150E942B1BDF91CF911F910F91CA -:102AD000FF90EF90DF90BF90AF909F908F900C94FD -:102AE000161ADF91CF911F910F91FF90EF90DF9019 -:102AF000BF90AF909F908F9008950F931F93CF93A7 -:102B0000DF93EC01888199812B813C81232BB9F0E3 -:102B10009F3F11F48F3F99F0CE010E94EC0588236E -:102B200071F0688179818A810E94FB1A8C010E9470 -:102B3000B01A0E947719B801CE010E943013DF91BC -:102B4000CF911F910F9108950E943F1C0E944F1C2E -:102B50000E94111C0E94761C0E9440200E948F1F20 -:102B600080E090E00E94111180E090E00C94271129 -:102B70000E942F1C0C94A4150E94F01A292F229554 -:102B80002F7030E02C3031054CF42A3031056CF4D4 -:102B90002250310922303105A8F407C02C3031050C -:102BA00069F02F30310551F00DC0803F69F018F405 -:102BB000803E40F409C0843F29F406C093FB882777 -:102BC00080F9089580E0089581E00895CF93DF9320 -:102BD00000D000D01F92CDB7DEB70F900F900F90AE -:102BE0000F900F90DF91CF910895CF93DF9300D096 -:102BF00000D000D0CDB7DEB726960FB6F894DEBF72 -:102C00000FBECDBFDF91CF9108951F93CF93DF9378 -:102C1000C091870116E080918801C81799F0D0E033 -:102C20001C9FF0011D9FF00D1124E757FE4F4081BE -:102C3000518162817381848195810E94F51521966D -:102C4000C770E9CFDF91CF911F9108954091B901ED -:102C50005091BA016091BB017091BC018091BD019E -:102C60009091BE010C94F5158091BE0182958F70F4 -:102C700009F054C08091BB01882309F44FC08091B2 -:102C80008701A09188016091B9017091BA014091CA -:102C9000BC015091BD01B6E08A1709F43FC090E035 -:102CA00041155105C1F17F3F11F46F3FA1F1B89F6C -:102CB000F001B99FF00D1124E757FE4F21817213E7 -:102CC0002AC02081621327C02281211124C02381C0 -:102CD00034812417350710F421503109241B350B9A -:102CE000283C3105C0F42091BE012F702061209353 -:102CF000BE0126E0289FF001299FF00D1124E25724 -:102D0000FE4F80818F708061808389EB91E00E940B -:102D10007D150C94051601968770BECF0895CF924D -:102D2000DF92EF92FF920F931F93CF93DF93CDB774 -:102D3000DEB762970FB6F894DEBF0FBECDBF8C0131 -:102D400085E0F801DE011D9601900D928A95E1F76C -:102D5000D8014C9111965C91119712966C91129733 -:102D60001396CD90DC9014973091B9017091BA010F -:102D70008091BC019091BD01009709F46BC17F3F28 -:102D800019F43F3F09F466C1E090BB01EE2009F45D -:102D9000C0C02091BE01C816D90628F0F601E81B74 -:102DA000F90BCF0104C0809590958C0D9D1DFF24DB -:102DB000F394883C910578F0F12C207F09F0C6C08F -:102DC0007C2DD98AC88A89890E94E61589EB91E011 -:102DD0000E947D15B1C0822F807F09F046C0751317 -:102DE00014C0341312C0611110C02F7020612093E1 -:102DF000BE010E94261689EB91E00E947D1580910C -:102E0000BE01D80115968C932EC0CD2819F15F3FD5 -:102E100011F44F3FF9F0F62E61111CC0809187012B -:102E20002091880136E0821709F45AC090E0389F5B -:102E3000F001399FF00D1124E757FE4F71815713B0 -:102E400006C07081471303C07281711103C00196DF -:102E50008770E9CFF62E662309F418C18091BE0170 -:102E600081608093BE01F12C11C1751308C0341329 -:102E700006C0611104C08091BE01D801C3C04D8756 -:102E80005E878D859E856A8B0E94BC156A89882322 -:102E9000E1F16623D1F12091BE01822F82958F70DE -:102EA00090E0029774F08091B9019091BA019887EF -:102EB0008F831986DB86CA862C87CE0107960E94EF -:102EC0007D1586E0F801A9EBB1E001900D928A959D -:102ED000E1F70E9434160E942616FF24F394D6C010 -:102EE0004D875E878D859E850E94F01A292F229539 -:102EF0002F7030E0223031050CF0BCC09F7009F01B -:102F0000B6C0805E883008F4C1C0C8010E947D153B -:102F1000E4CFC816D90608F453C0F601E81BF90B34 -:102F2000CF01883C910508F450C0F12C7C2DD98A42 -:102F3000C88A89890E94E615E9EBF1E086E0DF01A5 -:102F40001D928A95E9F70E942616A0C0751314C039 -:102F5000341312C0611110C08091BE01F801858345 -:102F6000C8010E947D1586E0E9EBF1E0DF011D92CA -:102F70008A95E9F7FE2C8AC04D875E878D859E85F0 -:102F80006A8B0E94BC156A89882309F4BECF662328 -:102F900009F4BBCF2091BE01822F82958F7090E003 -:102FA00002970CF48ECF8091B9019091BA019A8367 -:102FB00089831B82DD82CC822E83CE0101967FCF56 -:102FC000809590958C0D9D1DACCFF62E662309F44F -:102FD0009CCF75132EC034132CC02091BE0120FD50 -:102FE0001FC0822F82958F70D9F0D80115962C932F -:102FF00015978F3049F08F5F982F9295907F822F91 -:103000008F70892B15968C93C8010E947D1586E0E0 -:10301000F801A9EBB1E001900D928A95E1F793CF09 -:1030200086E0F801A9EBB1E001900D928A95E1F7F5 -:103030002DC04D875E878D859E850E94BC158111B0 -:1030400040CF8091BE0181608093BE01C8010E9483 -:103050007D151CC0662309F458CF4D875E878D858A -:103060009E850E94BC15882309F44FCF2ACF811179 -:1030700048CF0CC0243031050CF047CF9F7009F4C5 -:1030800040CFF8019581907F09F03BCF8F2D62965C -:103090000FB6F894DEBF0FBECDBFDF91CF911F9169 -:1030A0000F91FF90EF90DF90CF9008951F93CF93F3 -:1030B000DF93CDB7DEB72C970FB6F894DEBF0FBE07 -:1030C000CDBF4F83588769877A878B879C87CE01CE -:1030D00007960E948F16882369F08F8198852A852C -:1030E0003B85232BF1F19F3F09F063C08F3F09F02F -:1030F00060C037C086E0FE013796DE011196019070 -:103100000D928A95E1F76F817885EA85FB85309786 -:1031100041F17F3F11F46F3F21F12091880130E0B0 -:10312000C9010196877099274091870150E0841763 -:10313000950709F447C069837A83FD83EC8396E0A1 -:10314000929FD001939FB00D1124A757BE4FFE014F -:10315000319601900D929A95E1F7809388010E9433 -:10316000051616E080918701909188018917C1F1B9 -:10317000189FC001112487579E4F0E948F168823E5 -:1031800079F1E09187011E9FF0011124E757FE4F6E -:103190004081518162817381848195810E94F515FE -:1031A0008091870190E0019687709927809387012D -:1031B000D9CF4F81588569857A858B859C850E94FA -:1031C000F515CFCF0E94B815109288011092870193 -:1031D000E9EBF1E086E0DF011D928A95E9F7C1CFC6 -:1031E0002C960FB6F894DEBF0FBECDBFDF91CF9106 -:1031F0001F910895EF92FF920F931F93CF93DF9348 -:103200008C01009709F46CC0F12CEE24E394E801E2 -:103210002196F8018491843740F4843008F051C03D -:10322000813081F0823019F15BC0853709F444C0E8 -:10323000A8F19CE7980F903708F052C08F770E9452 -:10324000D31241C00E5F1F4FFE01C49180E28C0F6C -:10325000883048F4C7708E2D01C0880FCA95EAF7F0 -:103260000E94421C14C08C2F0E940B122DC00E5FB6 -:103270001F4FFE01C49180E28C0F883058F4C77054 -:103280008E2D01C0880FCA95EAF70E94481C0E9443 -:10329000761C1AC08C2F0E94D31216C00E5F1F4FCF -:1032A000FE01C491CC2381F08FE99FE00197F1F7F3 -:1032B00000C00000C150F6CF0E5F1F4FFE01F4901A -:1032C00003C00E940B128E018F2D882309F49FCF1B -:1032D000EFE9FFE03197F1F700C000008150F5CF32 -:1032E000DF91CF911F910F91FF90EF900895089576 -:1032F0006093C3017093C4018093C5019093C6018C -:103300000C94A4150F931F930091C3011091C40155 -:103310002091C5013091C601DC01CB01802B912B9E -:10332000A22BB32B8093C3019093C401A093C5013A -:10333000B093C6011F910F910C94A4150F931F9386 -:103340000091C3011091C4012091C5013091C601C3 -:10335000DC01CB0180239123A223B3238093C301FB -:103360009093C401A093C501B093C6011F910F9122 -:103370000C94A4150F931F930091C3011091C401E5 -:103380002091C5013091C601DC01CB018027912736 -:10339000A227B3278093C3019093C401A093C501D2 -:1033A000B093C6011F910F910C94A4151092BF0108 -:1033B0001092C0011092C1011092C2010C94A41588 -:1033C00041E050E060E070E004C0440F551F661F0C -:1033D000771F8A95D2F74093BF015093C001609345 -:1033E000C1017093C2010C94A41541E050E060E06B -:1033F00070E004C0440F551F661F771F8A95D2F7EF -:103400008091BF019091C001A091C101B091C20112 -:10341000482B592B6A2B7B2B4093BF015093C00143 -:103420006093C1017093C2010C94A41541E050E077 -:1034300060E070E004C0440F551F661F771F8A9537 -:10344000D2F740955095609570958091BF0190910D -:10345000C001A091C101B091C201482359236A2340 -:103460007B234093BF015093C0016093C1017093CF -:10347000C2010C94A41541E050E060E070E004C08B -:10348000440F551F661F771F8A95D2F78091BF01A1 -:103490009091C001A091C101B091C2014827592764 -:1034A0006A277B274093BF015093C0016093C101FD -:1034B0007093C2010C94A4150F931F930091BF0148 -:1034C0001091C0012091C1013091C201DC01CB01FA -:1034D000802B912BA22BB32B8093BF019093C00123 -:1034E000A093C101B093C2011F910F910C94A41538 -:1034F0000F931F930091BF011091C0012091C10152 -:103500003091C201DC01CB0180239123A223B3239C -:103510008093BF019093C001A093C101B093C201F9 -:103520001F910F910C94A4150F931F930091BF014D -:103530001091C0012091C1013091C201DC01CB0189 -:1035400080279127A227B3278093BF019093C001C2 -:10355000A093C101B093C2011F910F910C94A415C7 -:103560000895CF92DF92EF92FF920F931F93CF9324 -:10357000DF938C01C090C301D090C401E090C501DD -:10358000F090C6018091BF019091C001A091C1014E -:10359000B091C201C82AD92AEA2AFB2ACFE1D0E099 -:1035A000D701C6010C2E04C0B695A79597958795AF -:1035B0000A94D2F780FF06C0B8018C2F0E94DA0768 -:1035C000019721F4219760F780E001C08C2FDF91F3 -:1035D000CF911F910F91FF90EF90DF90CF900895C2 -:1035E000CF93DF93EC010E94B11ABE010E94DA076B -:1035F000DF91CF910895CB010E94F01A0895809138 -:10360000CC0108958093CC0108951092CC010895C7 -:103610000E944F1D2091CA013091CB018217930760 -:1036200050F00E944F1D2091CA013091CB01821BA6 -:10363000930B9C010AC00E944F1D2091CA0130913A -:10364000CB0120953095280F391F81E0283B3B4066 -:1036500008F480E008958091C90185958595859548 -:1036600008958091C901877008950E944F1D20918F -:10367000C7013091C80182179307A8F00E944F1D1F -:103680002091C7013091C801821B930B883B9B405E -:1036900010F480E013C08091C90182FB882780F973 -:1036A00091E089270BC00E944F1D2091C7013091E6 -:1036B000C80120953095820F931FE8CF817008953F -:1036C00098E0899F90011124262B2093C9010E9424 -:1036D000F5190E944F1D9093C8018093C70108956A -:1036E0001092C9011092C8011092C701089520914B -:1036F000C901809582238093C901982F977089F41E -:1037000030E0482F552747FD50952417350749F0DD -:103710008595859585950E94161A1092C80110927C -:10372000C70108959091C901977081E009F480E084 -:10373000089590910C01992321F090910D01911120 -:1037400009C020910E0130910F01F90132969FEFCF -:1037500040E01FC0982F9695969596959F3050F50E -:10376000E0910E01F0910F01E90FF11D877021E04A -:1037700030E0A90102C0440F551F8A95E2F7CA0143 -:103780009181892B818308959F3F39F04F5F4E309F -:1037900041F051915813F8CF0DC05111F7CF942F2C -:1037A000F5CF9F3F39F0F901E90FF11D97FDFA952B -:1037B00082830895089590910C01992321F09091AE -:1037C0000D01911109C020910E0130910F01F901F5 -:1037D0003296205F3F4F1FC0982F969596959695ED -:1037E0009F30F0F4E0910E01F0910F01E90FF11D0F -:1037F000877021E030E0A90102C0440F551F8A956F -:10380000E2F7CA01809591818923818308953196D9 -:10381000E217F30729F090819813F9CF1082F7CFC0 -:10382000089581E090E0E0910E01F0910F01E80F22 -:10383000F91F1082019680319105A9F708958091B2 -:10384000E00108959091E001892B8093E0010895B3 -:1038500080959091E00189238093E0010895109272 -:10386000E00108959091DF01892B8093DF01089595 -:1038700080959091DF0189238093DF010895109254 -:10388000DF0108959091DE01892B8093DE01089578 -:1038900080959091DE0189238093DE010895109236 -:1038A000DE0108958093CD010E944F1D9093CB01BE -:1038B0008093CA0108951092CD011092CB0110920D -:1038C000CA0108958091CD01089580910E019091D3 -:1038D0000F01FC0131969C01205F3F4F80E09191E8 -:1038E00091118F5FE217F307D1F70895E0910E0170 -:1038F000F0910F018091E0018083E0910E01F09141 -:103900000F0190818091DF01892B8083E0910E016E -:10391000F0910F0190818091DE01892B808380914D -:10392000CD01882399F00E94081B81110E945B1C25 -:10393000E0910E01F0910F0190818091CD01892BD2 -:1039400080830E94651C81110E945B1C80910E0186 -:1039500090910F010C94FB1020E0009739F0AC011E -:1039600041505109842395232F5FF7CF822F08956B -:10397000CF92DF92EF92FF926C01EE24FF24C114EC -:10398000D104E104F10421F0C701B60120E101C036 -:1039900020E0C72ED82EE92EFF24C114D104E10463 -:1039A000F10419F0285FC701B6016B017C0154E0F6 -:1039B000F694E794D794C7945A95D1F7C114D104DB -:1039C000E104F10419F02C5FC701B6016B017C0121 -:1039D00042E0F694E794D794C7944A95D1F7C1147E -:1039E000D104E104F10419F02E5FC701B601DC0136 -:1039F000CB01B695A79597958795892B8A2B8B2B0D -:103A000009F02F5F822FFF90EF90DF90CF90089505 -:103A10008091FA01843021F11092E20120E488E1E2 -:103A200090E00FB6F894A895809360000FBE2093A5 -:103A3000600080E00E94EC0983B7817F846083BFCF -:103A400083B7816083BF7894889583B78E7F83BF67 -:103A500088E10FB6F89480936000109260000FBE6A -:103A6000089508950E9469030E947C030E94311DFD -:103A70000E94710491E0811101C090E0892F0895A6 -:103A80000E94B8150E94EF100C94EC0982E084BDEE -:103A900093E095BD9AEF97BD80936E0008952FB780 -:103AA000F8948091E3019091E401A091E501B09137 -:103AB000E6012FBF0895CF92DF92EF92FF920F930E -:103AC0001F932FB7F8944091E3015091E401609166 -:103AD000E5017091E6012FBF6A017B01EE24FF240E -:103AE0008C0120E030E0C016D106E206F30610F4A7 -:103AF000415051099A01281B390BC9011F910F919F -:103B0000FF90EF90DF90CF9008951F920F920FB625 -:103B10000F9211248F939F93AF93BF938091E301F2 -:103B20009091E401A091E501B091E6010196A11DFB -:103B3000B11D8093E3019093E401A093E501B0935C -:103B4000E601BF91AF919F918F910F900FBE0F90A3 -:103B50001F9018950E94EC0DF8942FEF87EA91E6DC -:103B6000215080409040E1F700C0000087E090EBDA -:103B7000DC018093030290930402A0930502B093AA -:103B800006029CE088E10FB6F894A8958093600047 -:103B90000FBE90936000FFCF0E94041E811102C0EF -:103BA0000E94EA1D0E940F1E8093E1010E94171ED1 -:103BB00090E09093F5018093F40187FB882780F9CA -:103BC00080930D010E94131E682F70E080E090E04A -:103BD0000C9478196DEE7EEF80E090E00E94522404 -:103BE00060E082E090E00E94402460E083E090E0AA -:103BF0000E94402460E084E090E00E94402460E065 -:103C000085E090E00C94402480E090E00E943A240B -:103C100021E08D3E9E4F09F020E0822F089582E042 -:103C200090E00C94322483E090E00C94322484E001 -:103C300090E00C943224682F84E090E00C944024AF -:103C40008091E90180FF0BC06091130185E0689FBE -:103C5000B001112475956795759567952BC081FF07 -:103C600009C06091130185E0689FB001112475952A -:103C7000679520C082FF07C06091130185E0689FAF -:103C8000B001112417C09091EA019923D1F06091FD -:103C90001201961788F72091130185E0289F900163 -:103CA0001124929FA001939F500D112470E0CA012E -:103CB0000E9404246038710540F46115710539F0E3 -:103CC00002C065E070E0862F08958FE7089581E0D7 -:103CD00008958091E90180FF08C06091110170E0B2 -:103CE000759567957595679521C081FF06C06091B0 -:103CF000110170E07595679519C082FF04C060914D -:103D0000110170E010C09091EA019923C1F0609117 -:103D100010019617A0F780911101899FC00111240D -:103D200070E00E9404246038710528F46115710563 -:103D300021F0862F08958FE7089581E0089561E0CE -:103D400070E0F4CF803F21F40E94201E819504C0D2 -:103D5000813F29F40E94201E8093ED010895823F47 -:103D600021F40E94201E819504C0833F29F40E9403 -:103D7000201E8093EC010895893F19F40E94691E6A -:103D800005C08A3F31F40E94691E81958093EE013F -:103D900008958B3F21F40E94691E819504C08C3FD9 -:103DA00029F40E94691E8093EF010895843F21F455 -:103DB0008091EB01816017C0853F21F48091EB0178 -:103DC000826011C0863F21F48091EB0184600BC0BA -:103DD000873F21F48091EB01886005C0883F31F472 -:103DE0008091EB0180618093EB0108958D3F21F478 -:103DF0008091E90181600BC08E3F21F48091E9013F -:103E0000826005C08F3F29F48091E901846080932E -:103E1000E9010895803F39F48091ED0187FF6CC07E -:103E20001092ED0169C0813F29F48091ED011816CF -:103E3000BCF362C09091EC01823F29F497FF5CC013 -:103E40001092EC0159C0833F19F41916CCF354C0F9 -:103E5000893F41F48091EE0118160CF04DC010928C -:103E6000EE014AC08A3F29F48091EE0187FF44C0E9 -:103E7000F6CF8B3F39F48091EF0187FF3DC0109260 -:103E8000EF013AC08C3F29F48091EF011816BCF382 -:103E900033C0843F21F48091EB018E7F17C0853FB2 -:103EA00021F48091EB018D7F11C0863F21F4809138 -:103EB000EB018B7F0BC0873F21F48091EB01877F63 -:103EC00005C0883F31F48091EB018F7E8093EB0138 -:103ED00013C08D3F21F48091E9018E7F0BC08E3F8E -:103EE00021F48091E9018D7F05C08F3F29F48091F5 -:103EF000E9018B7F8093E9018091EC0181110EC073 -:103F00008091ED0181110AC08091EE01811106C0FE -:103F10008091EF01811102C01092EA0108958BEEA9 -:103F200091E00E9406110E944F1D9093E80180933A -:103F3000E70108951F93CF93DF938091E70190915C -:103F4000E8010E945B1DAC019091EA01992321F0E8 -:103F50002091140130E006C0209115018AE0289FCD -:103F6000900111244217530708F486C08091EC0198 -:103F7000C091ED01D091EE011091EF01811107C0C8 -:103F8000C11176C0D11174C0111172C075C09F3FAC -:103F900019F09F5F9093EA01181624F40E94201EE6 -:103FA0008093EC018091EC0187FF05C00E94201EE8 -:103FB00081958093EC011C1624F40E94201E8093AE -:103FC000ED018091ED0187FF05C00E94201E8195C3 -:103FD0008093ED016091EC01662339F1C091ED0110 -:103FE000CC2319F1772767FD7095872F972F0E94B3 -:103FF000152323E333E343E35FE30E9479230E9425 -:10400000E2226093EC016C2F772767FD7095872F74 -:10401000972F0E94152323E333E343E35FE30E94DA -:1040200079230E94E2226093ED011D1624F40E9480 -:10403000691E8093EE018091EE0187FF05C00E940A -:10404000691E81958093EE01111624F40E94691E69 -:104050008093EF018091EF0187FF05C00E94691EE8 -:1040600081958093EF01DF91CF911F910C948F1F69 -:104070009F3F09F08ECF96CFDF91CF911F9108958A -:10408000EBEEF1E085E0DF011D928A95E9F71092F1 -:10409000EA011092E9010895833081F128F481301A -:1040A00059F08230D1F00895853009F449C0B8F153 -:1040B000863009F456C0089580911501262F30E00E -:1040C000280F311D2F3F310524F4680F609315012F -:1040D00008958FEF80931501089580911401262F84 -:1040E00030E0280F311D2F3F310524F4680F609315 -:1040F000140108958FEF80931401089580911301A6 -:10410000262F30E0280F311D2F3F310524F4680F92 -:104110006093130108958FEF8093130108958091A8 -:104120001201262F30E0280F311D2F3F310524F4D6 -:10413000680F6093120108958FEF80931201089524 -:1041400080911101262F30E0280F311D2F3F3105BE -:1041500024F4680F6093110108958FEF809311018B -:10416000089580911001262F30E0280F311D2F3F38 -:10417000310524F4680F6093100108958FEF809348 -:1041800010010895833011F128F4813049F0823014 -:1041900091F00895853081F120F18630C1F10895C4 -:1041A00080911501681720F4861B809315010895EE -:1041B00010921501089580911401681720F4861B50 -:1041C00080931401089510921401089580911301B1 -:1041D000681720F4861B8093130108951092130131 -:1041E000089580911201681720F4861B80931201B4 -:1041F000089510921201089580911101681720F41A -:10420000861B8093110108951092110108958091E9 -:104210001001681720F4861B8093100108951092F6 -:10422000100108950F931F938D3109F471C008F0A8 -:1042300045C0803109F485C008F5873009F46FC0A6 -:1042400068F4863009F0ADC08091E101817F8E7FF6 -:104250008093E10181E08093F101A4C08B3009F4E7 -:104260009EC08E3009F09DC08091E10182FB222723 -:1042700020F991E0922790FB82F96CC0863109F415 -:104280008EC060F4813109F08CC00E94B815909105 -:104290000D0181E0892780930D0181C0893109F4E6 -:1042A0007EC08B3109F07DC08091E10181FB222726 -:1042B00020F991E0922790FB81F94CC0853309F4F5 -:1042C00066C048F4873209F462C008F44FC08932EE -:1042D00009F45DC066C0833438F48A3308F044C002 -:1042E000883309F45CC05DC0833409F450C088345D -:1042F00009F057C00E94B8150FEF13ED20E30150ED -:1043000010402040E1F700C000000E94AA1D47C0F5 -:104310000E949C220E94EF100E94EC0940C09091E4 -:10432000E101892F8095817080FB90F929F09660DA -:1043300098609093E10136C0997F977F9093E10157 -:104340002EC08091E10183FB222720F991E0922782 -:1043500090FB83F98093E101992309F18091E101B8 -:1043600081608093E1011BC0895301C08D5141E000 -:1043700050E060E070E08A019B0104C0000F111F53 -:10438000221F331F8A95D2F7C901B80104C061E02A -:1043900070E080E090E00E9478190E94B81581E0FA -:1043A00001C080E01F910F91089580E0089580E0A2 -:1043B00008958E518A3030F4E82FF0E0E65DFE4F2C -:1043C0008081089580E00895CF93C82F8091F101F6 -:1043D000813079F018F08230E9F186C0E0910E0169 -:1043E000F0910F018081813169F0823209F07EC045 -:1043F00009C0E0910E01F0910F018081813111F02F -:10440000823261F48C2F0E94D521811104C08C2F3F -:104410000E9412211DC081E090E01AC08C2F0E94E2 -:10442000D721811114C0C43179F048F4CB3079F030 -:10443000C03109F05FC082E08093F10108C0C93249 -:1044400019F0C83321F056C01092F10153C081E039 -:10445000817052C0C93281F110F5C43169F1A8F4FC -:10446000C73009F045C08AE08093150194E190932C -:10447000140193E0909313018093120188E08093DC -:10448000110188E28093100133C082EE8C0F8630D8 -:1044900078F58C2F0E94D9218093F00129C0CE3469 -:1044A000E9F020F4CB3421F56AE013C0C13579F08E -:1044B000C235F1F461E00DC08091F001882319F05C -:1044C0001092F00115C081E08093F10115C061E008 -:1044D00006C08091F0010E944C200AC06AE08091E1 -:1044E000F0010E94C22004C01092F10180E004C0DB -:1044F00081E002C080E0ACCFCF910895E1E8F0E028 -:104500008081886080838081816080838FB7F89408 -:1045100093E09093890090ED909388008FBF089569 -:10452000EFE6F0E08081826080830895EFE6F0E0BE -:1045300080818D7F80830895EFE6F0E0908182E0B6 -:104540008927808308951F920F920FB60F9211242E -:104550002F933F934F935F936F937F938F939F938B -:10456000AF93BF93EF93FF938091F2019091F3018A -:1045700001969093F3018093F201811103C082E0D0 -:104580000E94EC09E091F301E695E695F0E0E75131 -:10459000FB4FE4918091F2018E1303C080E00E94F2 -:1045A000EC09FF91EF91BF91AF919F918F917F9116 -:1045B0006F915F914F913F912F910F900FBE0F9090 -:1045C0001F90189504D06894B1118DC0089570D0D3 -:1045D00088F09F5790F0B92F9927B751A0F0D1F0EC -:1045E000660F771F881F991F1AF0BA95C9F712C076 -:1045F000B13081F077D0B1E0089574C0672F782F83 -:104600008827B85F39F0B93FCCF3869577956795E1 -:10461000B395D9F73EF490958095709561957F4F4D -:104620008F4F9F4F0895E89409C097FB3EF49095F3 -:104630008095709561957F4F8F4F9F4F9923A9F07B -:10464000F92F96E9BB279395F6958795779567950A -:10465000B795F111F8CFFAF4BB0F11F460FF1BC04E -:104660006F5F7F4F8F4F9F4F16C0882311F096E9E1 -:1046700011C0772321F09EE8872F762F05C066238F -:1046800071F096E8862F70E060E02AF09A95660F48 -:10469000771F881FDAF7880F9695879597F9089501 -:1046A00057FD9058440F551F59F05F3F71F04795E3 -:1046B000880F97FB991F61F09F3F79F087950895C8 -:1046C000121613061406551FF2CF4695F1DF08C0E7 -:1046D000161617061806991FF1CF86957105610504 -:1046E00008940895E894BB2766277727CB0197F9AC -:1046F00008950BD078C069D028F06ED018F09523BB -:1047000009F05AC05FC01124EECFCADFA0F3959F15 -:10471000D1F3950F50E0551F629FF001729FBB27A8 -:10472000F00DB11D639FAA27F00DB11DAA1F649F54 -:104730006627B00DA11D661F829F2227B00DA11D07 -:10474000621F739FB00DA11D621F839FA00D611D8D -:10475000221F749F3327A00D611D231F849F600DAE -:10476000211D822F762F6A2F11249F5750408AF0E7 -:10477000E1F088234AF0EE0FFF1FBB1F661F771F73 -:10478000881F91505040A9F79E3F510570F014C00A -:10479000AACF5F3FECF3983EDCF38695779567955B -:1047A000B795F795E7959F5FC1F7FE2B880F911D91 -:1047B0009695879597F9089597F99F6780E870E037 -:1047C00060E008959FEF80EC089500240A94161687 -:1047D000170618060906089500240A9412161306EF -:1047E000140605060895092E0394000C11F488237D -:1047F00052F0BB0F40F4BF2B11F460FF04C06F5F99 -:104800007F4F8F4F9F4F089597FB072E16F400940C -:1048100007D077FD09D00E941E2407FC05D03EF486 -:10482000909581959F4F0895709561957F4F08955C -:10483000EE0FFF1F0590F491E02D0994AA1BBB1BFE -:1048400051E107C0AA1FBB1FA617B70710F0A61B90 -:10485000B70B881F991F5A95A9F780959095BC01B1 -:10486000CD010895F999FECF92BD81BDF89A99279F -:1048700080B50895A8E1B0E042E050E00C945A24DD -:10488000262FF999FECF92BD81BDF89A019700B409 -:10489000021639F01FBA20BD0FB6F894FA9AF99AA9 -:1048A0000FBE08950196272F0E9441240C944024A6 -:1048B000DC01CB01FC01F999FECF06C0F2BDE1BDE0 -:1048C000F89A319600B40D9241505040B8F70895CF -:0448D000F894FFCF8A -:1048D4000220EE097C0A590A250AF1090101CE01D8 -:1048E40028080A03140A404D3639A9045C04260436 -:1048F400ED0380039903B203CB030102030405060D -:044904000708090097 -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/twey/compiled.hex b/keyboards/ergodox_ez/keymaps/twey/compiled.hex deleted file mode 100644 index dafb36705..000000000 --- a/keyboards/ergodox_ez/keymaps/twey/compiled.hex +++ /dev/null @@ -1,1178 +0,0 @@ -:100000000C94CE020C9412030C9412030C94120361 -:100010000C9412030C9412030C9412030C9412030C -:100020000C9412030C9412030C94040E0C94D60E30 -:100030000C9412030C9412030C9412030C941203EC -:100040000C9412030C94E0220C9412030C941203EF -:100050000C9412030C94731C0C9412030C94120352 -:100060000C9412030C9412030C9412030C941203BC -:100070000C9412030C9412030C9412030C941203AC -:100080000C9412030C9412030C9412030C9412039C -:100090000C9412030C9412030C9412030C9412038C -:1000A0000C9412030C9412030C941203430F650F6B -:1000B0005310650F5310AA0FCD0F53102210351097 -:1000C000041304133313331369138913BA14BA14C2 -:1000D0009413BA1444144414AB14BA14BA14B414D8 -:1000E00051145114511451145114511451145114E8 -:1000F00051145114511451145114511451145114D8 -:100100006314701477147E1488140000F0A32E007A -:100110004C002A00E100015200001E0034000400DF -:1001200033000000E3001F00360012001400350009 -:1001300028002000370008000D005000E2002100D8 -:10014000130018000E004F00000022001C000C00DD -:100150001B0000004B000030290000002B000000B5 -:100160004E00000039000000280000004A00230073 -:1001700009000700050000004D0024000A000B00E4 -:1001800010005200E6002500060017001A0051007A -:10019000E40026001500110019002F002C00270094 -:1001A0000F0016001D0030000352310038002D00F2 -:1001B000E500015200000100010001000100010002 -:1001C00000003A001E0220022202010001003B0052 -:1001D0001F0221022302010001003C002F0226021F -:1001E0002F00010001003D00300227023000010015 -:1001F00001003E003102350035020000010001001F -:1002000001000000010000000100010001000000E9 -:100210000100000001003F005200510024020000D4 -:1002200001004000240021001E00010001004100E7 -:10023000250022001F003700010042002600230095 -:10024000200027000100430025022E0231002E006D -:100250000100440045000100010001000000000011 -:100260000000000000000100000000001E0014005B -:1002700014000000000000001E001A00160000001C -:10028000190000001E000800070001000600000021 -:100290001E00150009000100000000001E001C00E7 -:1002A0001C000000000001001C0000001C000000F9 -:1002B000000000001C0000001C0000000000000006 -:1002C0001E001C001C000000000000001E001800A2 -:1002D0000D000100000000001E000C000E000100D7 -:1002E000100000001E0012000F00000011000000AE -:1002F0001E00130033000000010000001E002F004C -:1003000034000100000001000100010001000100B3 -:1003100000000100010001000100010001000100D6 -:100320000100F2000100010001000100F000F100F5 -:100330000100F400010001000100F3000100F500DC -:1003400001000100010001000100000001000100A6 -:100350000100000001000000010001000100000098 -:100360000100000001000100010001000100000087 -:1003700001000100B600AC000100A900010001006D -:100380000100AE000100AA00B6000100B700AB00FA -:100390000100A800010001000100010001000100AE -:1003A000010001000100010001000100000016032E -:1003B0004500720067006F0044006F007800200065 -:1003C00045005A00000016034500720067006F00E8 -:1003D00044006F007800200045005A00000004032C -:1003E000090409026D00040100A0FA0904000001DB -:1003F00003010100092111010001223F00070581CD -:100400000308000A09040100010301020009211187 -:10041000010001224D000705820308000A090402B9 -:10042000000103000000092111010001223600072C -:1004300005830308000A0904030001030000000902 -:100440002111010001223900070584031000011267 -:1004500001100100000008EDFE0713010001020079 -:100460000105010906A101050719E029E715002585 -:100470000195087501810205081901290595057581 -:10048000019102950175039101050719002977155E -:10049000002501957875018102C005010980A1013F -:1004A000850216010026B7001A01002AB700751050 -:1004B00095018100C0050C0901A101850316010009 -:1004C000269C021A01002A9C02751095018100C029 -:1004D00005010902A1010901A10005091901290568 -:1004E00015002501950575018102950175038101AE -:1004F0000501093009311581257F950275088106AE -:1005000009381581257F950175088106050C0A3883 -:10051000021581257F950175088106C0C005010976 -:1005200006A101050719E029E715002501950875C1 -:1005300001810295017508810105081901290595B8 -:1005400005750191029501750391010507190029AF -:10055000FF150025FF950675088100C0000000000A -:1005600000000000000000010204060A0F17202C02 -:100570003A4A5D71879DB3C7DAE9F5FCFFFCF5E9FE -:10058000DAC7B39D87715D4A3A2C20170F0A06041B -:1005900002010000000000000000000011241FBE46 -:1005A000CFEFDAE0DEBFCDBF04B603FE24C08091FA -:1005B000FB019091FC01A091FD01B091FE018730FB -:1005C000904BA740B04BB9F41092FB011092FC0184 -:1005D0001092FD011092FE0114BE84B7877F84BF84 -:1005E00088E10FB6F89480936000109260000FBE0F -:1005F000E0E0FFE3099511E0A0E0B1E0EEE4F9E40A -:1006000002C005900D92A433B107D9F711E0A4E31D -:10061000B1E001C01D92AB3FB107E1F70E94480B6A -:100620000C94A5240C9400001092B9008AE08093E9 -:10063000B800089594EA9093BC009091BC0097FF95 -:10064000FCCF9091B900987F983021F0903111F053 -:1006500081E008958093BB0084E88093BC00809182 -:10066000BC0087FFFCCF8091B900887F883111F0F2 -:10067000803471F780E0089584E98093BC00809114 -:10068000BC0084FDFCCF08958093BB0084E8809378 -:10069000BC008091BC0087FFFCCF9091B900987F8F -:1006A00081E0983209F480E0089584E88093BC00EA -:1006B0008091BC0087FFFCCF8091BB0008958091A2 -:1006C0000101811115C080E40E941A038093010189 -:1006D00081110CC082E10E944403809301018111C9 -:1006E00005C08FEF0E944403809301010E943C03E8 -:1006F00084B1807F84B985B1807F85B98AB1837FD9 -:100700008AB98BB1837F8BB93E98469808950E9431 -:100710001A05809301010E945F0380B38C7080BB37 -:1007200081B3836F81BBA5E3B1E0E3E4F1E08EE048 -:100730008E0F11921D928E13FCCF0C940405BF9264 -:10074000CF92DF92EF92FF920F931F93CF93DF939D -:1007500080910101882379F0809134018F5F80932B -:100760003401811108C00E941A0580930101811192 -:1007700002C00E94AC0405E311E0C0E0D0E0DD243B -:10078000D39482E0C82EEE24E394F12CC730D10537 -:1007900000F580910101811164C080E40E941A0378 -:1007A00080930101811112C082E10E944403809371 -:1007B000010181110BC0C7010C2E01C0880F0A94E2 -:1007C000EAF780950E944403809301010E943C0354 -:1007D00048C0CA30A1F028F4C83059F0C93061F0DF -:1007E00005C0CC3089F070F0CD3089F0209A28987F -:1007F00010C0219A29980DC0229A2A980AC0239ADB -:100800002B9807C0529A01C0539A5B9802C03E9A37 -:10081000469890EA9A95F1F79FB1799902C082E0E3 -:1008200001C080E091709D25982B7C9902C084E0E6 -:1008300001C080E0892B7D9902C038E001C030E022 -:10084000832B7E9902C020E101C020E0822B9FB162 -:100850009095991F9927991F9295990F907E892BB2 -:100860000FC080910101811149C080E40E941A03E8 -:1008700080930101882379F1B12C0E943C038B2DD8 -:10088000F8019081981719F08083C09200010E94AE -:100890005F0321960F5F1F4FCE30D10509F076CF51 -:1008A00080910001882361F18150809300018823A9 -:1008B00039F08FE99FE00197F1F700C0000020C0F8 -:1008C000A3E4B1E0E5E3F1E0CF01825F91919D9374 -:1008D0008E13FCCF15C083E10E9444038093010175 -:1008E0008111CACF81E40E941A0380930101811112 -:1008F000C3CF0E945503B82EB094BFCF80E0C0CFC5 -:100900000E94AA0481E0DF91CF911F910F91FF9087 -:10091000EF90DF90CF90BF900895E82FF0E0ED5B6F -:10092000FE4F8081089508950F931F93CF93DF9317 -:10093000C3E4D1E010E00C2F025F899190E00E94A7 -:10094000991B180F0C13F9CF812FDF91CF911F91B5 -:100950000F9108950C94B40556985E9825982D989B -:1009600026982E9827982F988FEF90E090938900E3 -:100970008093880090938B0080938A0090938D00E1 -:1009800080938C00259A2D9A2FEF80E792E02150DA -:1009900080409040E1F700C00000269A2E9A2FEF89 -:1009A00080E792E0215080409040E1F700C00000D5 -:1009B000279A2F9A2FEF80E792E0215080409040B5 -:1009C000E1F700C0000025982D982FEF80E792E016 -:1009D000215080409040E1F700C0000026982E98FA -:1009E0002FEF80E792E0215080409040E1F700C077 -:1009F000000027982F9856985E9825982D9826984D -:100A00002E9827982F98089589EA8093800089E08E -:100A10008093810024982C983F988AB18F748AB96A -:100A20006E98479A8BB1806B8BB9769A0E94AC0412 -:100A30000C94B30580E280930101809151018111F2 -:100A40000EC00E94140381E0809351012FEF83EDCB -:100A500090E3215080409040E1F700C0000080E426 -:100A60000E941A038093010181112EC00E94440349 -:100A700080930101811128C00E94440380930101E9 -:100A8000811122C08FE30E944403809301018111F0 -:100A90001BC00E943C0380E40E941A038093010162 -:100AA000811112C08CE00E944403809301018111E6 -:100AB0000BC00E94440380930101811105C08FE3A4 -:100AC0000E944403809301010E943C038091010134 -:100AD0000895CF93DF93EC016091BD017091BE0149 -:100AE0008091BF019091C0010E94A51BCD2BE9F020 -:100AF000823021F082E00E94621903C082E00E94ED -:100B0000831988E00E94A81185E10E94A81189E05C -:100B10000E94A81189E10E94A81182E10E94A811F7 -:100B20008FE0DF91CF910C94A81188E00E947012A1 -:100B300085E10E94701289E00E94701289E10E9492 -:100B4000701282E10E9470128FE0DF91CF910C94BD -:100B50007012611105C0FC01828190E00E9469055C -:100B600080E090E0089508950F931F938091BD0158 -:100B70009091BE01A091BF01B091C0018C019D0177 -:100B80000470112722273327AC01BD014870552777 -:100B90006627772756985E9825982D9826982E9840 -:100BA00027982F9881FF02C0259A2D9A012B022B9E -:100BB000032B11F0269A2E9A452B462B472B11F02A -:100BC000279A2F9A1F910F91089581E0089581E04F -:100BD00008950C94E70508950F931F93CF93DF9327 -:100BE0008C01FC01C081D181CE010E941E1ABE0180 -:100BF0000E949506EC01B8010E94E905882309F4DA -:100C00008DC0F8018281882309F44AC080915D017A -:100C100081111FC0C431F0E5DF0709F051C00E9407 -:100C2000EB0581E080935D010E943D1C90935C0187 -:100C300080935B011092540110925601109255015D -:100C4000109258011092570110925A0110925901B6 -:100C500065C080915B0190915C010E94491C883CB9 -:100C6000910570F480915401E82FF0E0EE0FFF1F22 -:100C7000EB5AFE4FD183C0838F5F809354014EC0E7 -:100C8000C43880E5D80721F0C538D04501F13AC015 -:100C9000F8018281882341F01092520182E01EC047 -:100CA000C438E0E5DE0759F580915201811106C094 -:100CB00086E20E94A81186E20E94701282E01CC0A7 -:100CC000C438F0E5DF0741F3C538D045D9F4F80161 -:100CD0008281882331F01092530180E20E94BF127A -:100CE0001DC080915301811106C087E20E94A811A6 -:100CF00087E20E94701280E20E94C6120FC0C538BF -:100D0000D04529F381E08093520180935301C801BB -:100D1000DF91CF911F910F910C94E50580E0DF9159 -:100D2000CF911F910F910895089596E0799FF0015A -:100D3000112494E5899FE00DF11D1124E60FF11DAA -:100D4000EE0FFF1FE25FFE4F859194910895880F8B -:100D5000991FFC01E657F040859194910895880F02 -:100D6000991FFC01E65FFE4F8591949108950F93C2 -:100D70001F93CF93DF93EC01811520E3920750F589 -:100D8000C11580E2D80708F0C3C0CB3BD10590F471 -:100D9000C83AD10508F06AC0C53AD10508F05BC071 -:100DA000C430D10508F0D0C1219709F0CAC101E0D3 -:100DB00010E00AC2CF3FD10511F008F0C5C1C03F15 -:100DC000D10508F0A2C0CE01805E9109089708F411 -:100DD000BBC1B7C1C13090E5D90709F4A2C020F565 -:100DE000C0318FE4D80770F4C11590E4D90708F03A -:100DF00094C0C11521E3D20708F0A3C1DD278E01FD -:100E0000106CE2C1C115D04509F09BC10E942515A7 -:100E10008FEF94E32CE0815090402040E1F700C038 -:100E200000000E94981CD0C1C11597E5D90758F45D -:100E3000C03121E5D20708F01CC1C43180E5D807D4 -:100E400008F475C07EC1CE0190578115904108F01D -:100E500078C1DF7073C1C53AD10509F477C1C63ACC -:100E6000D10509F076C102E810E4AEC1C83AD10557 -:100E700009F472C1C93AD10509F471C1CA3AD10560 -:100E800009F470C1CB3AD10509F46FC1CC3AD10550 -:100E900009F46EC1CD3AD10509F46DC1C03BD1054D -:100EA00009F46CC1CE3AD10509F46BC1CF3AD10532 -:100EB00009F46AC1C13BD10509F469C1C23BD1053E -:100EC00009F468C1C33BD10509F467C1C43BD1052E -:100ED00009F466C1C53BD10509F465C1C63BD1051E -:100EE00009F464C1C73BD10509F463C1C83BD1050E -:100EF00009F462C1C93BD10509F461C1CA3BD105FE -:100F000009F460C100E014E45FC18E0110655CC1AA -:100F1000CE019F700E94AF0658C1DF708E01106A2B -:100F200053C18091DA0181608093DA014DC10E9442 -:100F30003D1E811102C00E94231E0E945A1E90E095 -:100F40009093FB018093FA01C23080E5D80721F429 -:100F50008091FA01816086C0C43090E5D90721F400 -:100F60008091FA0182607EC0C63020E5D20721F46C -:100F70008091FA01846076C0C83080E5D80719F402 -:100F80008091FA0127C0CA3090E5D90721F48091F9 -:100F9000FA01806167C0CC3020E5D20721F480914E -:100FA000FA0180625FC0CE3080E5D80721F48091DD -:100FB000FA01806457C0C03190E5D90721F48091CF -:100FC000FA0180684FC0C23120E5D20729F4809130 -:100FD000FA018460886046C0C33080E5D80721F4F8 -:100FE0008091FA018E7F3EC0C53090E5D90721F48B -:100FF0008091FA018D7F36C0C73020E5D20721F4F9 -:101000008091FA018B7F2EC0C93080E5D80719F492 -:101010008091FA0126C0CB3090E5D90721F4809168 -:10102000FA018F7E1FC0CD3020E5D20721F48091D8 -:10103000FA018F7D17C0CF3080E5D80721F4809169 -:10104000FA018F7B0FC0C13190E5D90721F480915F -:10105000FA018F7707C0C331D04531F48091FA018E -:101060008B7F877F8093FA018091FA010E945E1E38 -:10107000ABC08D2F99278F70992781309105D9F4B6 -:101080009E012370332702C0880F991F2A95E2F72B -:101090009C688E0144E0000F111F4A95E1F700277C -:1010A0001370802B912B53E0CC0FDD1F5A95E1F785 -:1010B000C076DD272FC08230910531F4DC2FCC279C -:1010C0008E01016F106A80C08330910569F4CE01F2 -:1010D0008370992701E010E002C0000F111F8A956C -:1010E000E2F7C8019C680FC084309105B9F4CE01C5 -:1010F0008370992701E010E002C0000F111F8A954C -:10110000E2F7C8019A6823E0CC0FDD1F2A95E1F7CA -:10111000C07ED7708C010C2B1D2B56C085309105DD -:1011200031F4DC2FCC278E01046F106A4DC0069776 -:1011300009F04AC0CF71DD27DC2FCC278E01106269 -:1011400043C000E010E040C08E013EC001E810E462 -:101150003BC003E810E438C002EE14E435C009EEE9 -:1011600014E432C00AEE14E42FC005EB14E42CC0E2 -:1011700006EB14E429C007EB14E426C00CEC14E4DD -:1011800023C00DEC14E420C003E815E41DC00AE8F8 -:1011900015E41AC002E915E417C004E915E414C007 -:1011A00001E216E411C003E216E40EC004E216E404 -:1011B0000BC005E216E408C006E216E405C007E22B -:1011C00016E402C00AE216E4C801DF91CF911F9134 -:1011D0000F91089596E0799FF001112494E5899F7D -:1011E000E00DF11D1124E60FF11DEE0FFF1FE25F70 -:1011F000FE4F85919491803E9105E0F4803C9105ED -:1012000058F58133910509F46FC048F4893291058E -:1012100009F463C08A32910509F46DC072C0893344 -:101220009105E9F082389105D1F08533910509F4F3 -:101230004DC067C0833E910581F138F4803E910531 -:10124000B9F0823E9105D9F05CC0863E910561F10E -:10125000873E9105A1F155C00E94A70608952091EF -:10126000FA0120FD02C021FF4CC080EE90E049C091 -:101270008091FA0180FFF9CF89E390E042C080912C -:10128000FA0182FF0EC08091FA0184FF03C080E062 -:1012900090E037C083EE90E034C08091FA0182FF85 -:1012A000F2CF82EE90E02DC08091FA0183FF0BC057 -:1012B0008091FA0184FDEBCF87EE90E022C080910F -:1012C000FA0183FFF5CF86EE90E01BC08091FA0112 -:1012D00085FF07C089E290E014C08091FA0185FF84 -:1012E000F9CF85E390E00DC08091FA0186FF07C039 -:1012F0008AE290E006C08091FA0186FFF9CF81E38F -:1013000090E00E94B706089508950C948409809196 -:101310006E010895CF93DF9300D01F92CDB7DEB753 -:101320009C018091F101843019F593E099833B830E -:101330002A839093E9008FEF9091E800815095FD0A -:1013400006C095ED9A95F1F700008111F5CF8091D7 -:10135000E80085FF0DC040E050E063E070E0CE01A2 -:1013600001960E94F40B8091E8008E778093E8004C -:101370000F900F900F90DF91CF910895CF93DF934F -:1013800000D01F92CDB7DEB72091F101243021F5B6 -:1013900022E029839B838A8383E08093E9008FEF97 -:1013A0009091E800815095FD06C095ED9A95F1F772 -:1013B00000008111F5CF8091E80085FF0DC040E06D -:1013C00050E063E070E0CE0101960E94F40B809142 -:1013D000E8008E778093E8000F900F900F90DF91D8 -:1013E000CF9108952091F1012430F1F422E020936F -:1013F000E9002FEF3091E800215035FD06C035EDB2 -:101400003A95F1F700002111F5CF2091E80025FF72 -:101410000BC040E050E065E070E00E94F40B80916A -:10142000E8008E778093E8000895CF93DF93EC0176 -:101430009091F101943009F046C080910C0188230D -:10144000D9F080910D018823B9F09093E9008FEFD6 -:101450009091E800815095FD06C095E19A95F1F7CD -:1014600000008111F5CF8091E80085FF2CC040E09D -:1014700050E060E170E017C081E08093E9008FEFF9 -:101480009091E800815095FD06C095ED9A95F1F791 -:1014900000008111F5CF8091E80085FF14C040E085 -:1014A00050E068E070E0CE010E94F40B8091E8000B -:1014B0008E778093E80080E1FE01AEE5B1E0019017 -:1014C0000D928A95E1F7DF91CF9108958091F00117 -:1014D000811109C00E94890D0E94E60D8091E200F1 -:1014E00084608093E20008951092F00108950895B9 -:1014F0000C94CD220E942E1C0E94D3220E948C109C -:101500000C94850942E061EC81E00E94030D42E009 -:1015100061EC82E00E94030D42E061EC83E00E94F6 -:10152000030D42E161EC84E00C94030D8091F30122 -:10153000833009F455C030F4813071F0823009F401 -:101540008EC008958A3009F47AC08B3009F460C0E7 -:10155000893009F09CC020C08091F201813A09F0E5 -:1015600096C08091E800877F8093E8008091F60123 -:101570009091F701892B21F460E18EE591E003C0A1 -:1015800060E080E090E070E00E943F0C8091E80015 -:101590008B778093E80008958091F201813209F001 -:1015A00076C08091F6019091F701009719F00397AA -:1015B00009F06DC08091E800877F8093E8008091FA -:1015C000E80082FD05C08091F1018111F8CF5FC074 -:1015D0008091F10080936E018091E8008B7753C079 -:1015E0008091F201813A09F052C08091F601909108 -:1015F000F701892B09F04BC08091E800877F809329 -:10160000E8008091E80080FFFCCF80910C0136C09B -:101610008091F2018132D9F58091F6019091F70124 -:10162000892BA9F58091E800877F8093E8000E94CC -:10163000380D8091F40180930C010C942515809154 -:10164000F201813221F58091E800877F8093E800E4 -:101650000E94380D8091F50180936F01089580916B -:10166000F201813AA1F48091E800877F8093E8003D -:101670008091E80080FFFCCF80916F018093F100A2 -:101680008091E8008E778093E8000C94380D0895DF -:1016900084B7877F84BF88E10FB6F8948093600099 -:1016A000109260000FBE90E080E80FB6F89480932F -:1016B0006100909361000FBE0E94DB100E94890DB3 -:1016C0000E94E60D8091E20084608093E2007894AD -:1016D0000E946C100E94DD1082E091E00E94871051 -:1016E0000E94BB228091F101853069F40E94F51BB4 -:1016F0008091EF018823B1F30E94201C882391F38D -:101700000E94DE0BEFCF0E94E310ECCF292F33278E -:1017100023303105C9F064F42130310581F02230E5 -:10172000310509F043C08DE690E022EE33E042C07F -:1017300021323105F1F02232310541F137C082E129 -:1017400090E02FE434E036C099278130910541F0D4 -:101750008230910541F0892B49F5EEEDF3E005C0AB -:10176000E6ECF3E002C0EEEAF3E0849190E09F0142 -:1017700021C06430D8F4E62FF0E0EE0FFF1FEE5DDD -:10178000FE4F2081318189E090E014C0643070F414 -:1017900070E0FB01EE0FFF1FE65EFE4F20813181FE -:1017A000FB01EA5EFE4F808190E004C080E090E0A3 -:1017B00020E030E0FA0131832083089580E189BD83 -:1017C00082E189BD09B400FEFDCF8091D8008F7DF4 -:1017D0008093D8008091E00082608093E000809147 -:1017E000E00081FDFCCF0895CF92DF92EF92FF924F -:1017F0000F931F93CF93DF93EC018B016A010E943B -:10180000570D811133C0C114D10439F0F601808124 -:101810009181081B190BC80FD91FE12CF12C011560 -:10182000110519F18091E80085FD16C08091E8004E -:101830008E778093E800C114D10449F0F6018081CD -:101840009181E80EF91EF182E08285E00FC00E94CE -:10185000570D882321F30AC089918093F10001502C -:101860001109FFEFEF1AFF0ADACF80E0DF91CF9185 -:101870001F910F91FF90EF90DF90CF9008952091EE -:10188000F8013091F9012617370748F06115710505 -:1018900039F42091E8002E772093E80001C0B901C7 -:1018A00040E061157105A9F12091F101222309F4AD -:1018B00043C0253009F442C02091E80023FD40C018 -:1018C0002091E80022FD32C02091E80020FFE9CFFE -:1018D0004091F3002091F20030E0342BFC01CF0165 -:1018E0006115710559F02830310540F481918093DC -:1018F000F100615071092F5F3F4FF1CF41E0283077 -:10190000310509F040E02091E8002E772093E800AF -:10191000C8CF4111C9CF0AC08091F101882361F07D -:10192000853061F08091E80083FD0AC08091E80075 -:1019300082FFF2CF80E0089582E0089583E0089569 -:1019400081E008952091F8013091F90126173707B9 -:1019500048F06115710539F42091E8002E77209345 -:10196000E80001C0B901FC0120E06115710591F1A9 -:101970008091F101882309F440C0853009F43FC00B -:101980008091E80083FD3DC08091E80082FD2FC07A -:101990008091E80080FFE9CF2091F3008091F20070 -:1019A00090E0922B6115710559F08830910540F453 -:1019B00024912093F1003196615071090196F2CF84 -:1019C00021E0089709F020E08091E8008E7780936D -:1019D000E800CBCF2111CCCF0AC08091F101882340 -:1019E00061F0853061F08091E80083FD0AC080914C -:1019F000E80082FFF2CF80E0089582E0089583E05E -:101A0000089581E00895982F973058F59093E90054 -:101A1000981739F07091EC002091ED005091F00092 -:101A200003C0242F762F50E021FF19C03091EB0026 -:101A30003E7F3093EB003091ED003D7F3093ED0021 -:101A40003091EB0031603093EB007093EC00209309 -:101A5000ED005093F0002091EE0027FF07C09F5F3C -:101A6000D3CF8F708093E90081E0089580E00895DE -:101A70008091F20187FF11C08091E80082FD05C0CE -:101A80008091F1018111F8CF11C08091E8008B772E -:101A90000BC08091F101882349F08091E80080FF1C -:101AA000F8CF8091E8008E778093E8000895209128 -:101AB000E4003091E50095E64091EC00842F8170C0 -:101AC00040FF22C08091E80080FD1CC08091F101A0 -:101AD000882391F0853091F08091EB0085FD10C056 -:101AE0004091E4005091E5004217530729F39A0111 -:101AF000915011F784E0089582E0089583E00895FD -:101B000081E0089580E008954091E80042FFDECF33 -:101B100008950E94F70D0E94FF0DE0EEF0E0808135 -:101B200081608083E8EDF0E080818F77808319BC4D -:101B3000A7EDB0E08C918E7F8C9380818F7E808327 -:101B40001092F00108950F931F93CF93DF930E949B -:101B5000F70D0E94FF0DC8EDD0E088818F77888354 -:101B600088818068888388818F7D888319BC1092E2 -:101B7000F1011092ED011092EF011092EE0100EED2 -:101B800010E0F80180818B7F808388818160888369 -:101B900042E060E080E00E94030DE1EEF0E0808131 -:101BA0008E7F8083E2EEF0E080818160808380819F -:101BB00088608083F80180818E7F80838881806146 -:101BC0008883DF91CF911F910F910895E8EDF0E0A8 -:101BD00080818F7E8083E7EDF0E08081816080836B -:101BE00084E082BF81E08093F0010C94A30DE8EDC6 -:101BF000F0E080818E7F80831092E2000895109241 -:101C0000DA001092E10008951F920F920FB60F9222 -:101C100011242F933F934F935F936F937F938F93F1 -:101C20009F93AF93BF93EF93FF938091E10082FF67 -:101C30000BC08091E20082FF07C08091E1008B7FA2 -:101C40008093E1000E946B108091DA0080FF1FC03A -:101C50008091D80080FF1BC08091DA008E7F809336 -:101C6000DA008091D90080FF0DC080E189BD82E15A -:101C700089BD09B400FEFDCF81E08093F1010E948F -:101C8000660A05C019BC1092F1010E94740A809185 -:101C9000E10080FF19C08091E20080FF15C08091B3 -:101CA000E2008E7F8093E2008091E2008061809369 -:101CB000E2008091D80080628093D80019BC85E052 -:101CC0008093F1010E94780A8091E10084FF30C086 -:101CD0008091E20084FF2CC080E189BD82E189BD52 -:101CE00009B400FEFDCF8091D8008F7D8093D8008D -:101CF0008091E1008F7E8093E1008091E2008F7EF1 -:101D00008093E2008091E20081608093E200809104 -:101D1000ED01882311F084E007C08091E30087FD86 -:101D200002C081E001C083E08093F1010E947A0A41 -:101D30008091E10083FF29C08091E20083FF25C0EC -:101D40008091E100877F8093E10082E08093F10140 -:101D50001092ED018091E1008E7F8093E1008091EF -:101D6000E2008E7F8093E2008091E20080618093A8 -:101D7000E20042E060E080E00E94030D8091F0000C -:101D800088608093F0000E94770AFF91EF91BF91E5 -:101D9000AF919F918F917F916F915F914F913F9103 -:101DA0002F910F900FBE0F901F9018951F920F92BA -:101DB0000FB60F9211242F933F934F935F936F931E -:101DC0007F938F939F93AF93BF93CF93DF93EF93C3 -:101DD000FF93C091E900CF708091EC00D82FD170B3 -:101DE00080FDD0E81092E9008091F000877F809319 -:101DF000F00078940E941A0F1092E9008091F00090 -:101E000088608093F000CD2BCF70C093E900FF91E4 -:101E1000EF91DF91CF91BF91AF919F918F917F9182 -:101E20006F915F914F913F912F910F900FBE0F9047 -:101E30001F9018951F93CF93DF93CDB7DEB7AA9766 -:101E40000FB6F894DEBF0FBECDBFE2EFF1E088E041 -:101E50008E0F9091F10091938E13FBCF0E94960A02 -:101E60008091E80083FF1FC18091F2019091F301FE -:101E7000492F50E04A30510508F015C1FA01EA5ADD -:101E8000FF4F0C945524803881F0823809F00BC143 -:101E90008091F6018F708093E9008091EB0085FBC3 -:101EA000882780F91092E90006C08091EE01909198 -:101EB000EF01911182609091E800977F9093E80084 -:101EC0008093F1001092F100C8C0282F2D7F09F0F7 -:101ED000EAC0882319F0823061F0E5C08091F401F6 -:101EE000813009F0E0C0933009F080E08093EF0189 -:101EF0002BC08091F401811127C08091F6018F7071 -:101F000009F4D1C08093E9002091EB0020FF1CC0B0 -:101F1000933021F48091EB00806214C09091EB002B -:101F200090619093EB0021E030E0A90102C0440FE2 -:101F3000551F8A95E2F74093EA001092EA008091DB -:101F4000EB0088608093EB001092E9008091E8003C -:101F5000877F86C08111A7C01091F4011F778091FF -:101F6000E3008078812B8093E3008091E800877FF5 -:101F70008093E8000E94380D8091E80080FFFCCF3C -:101F80008091E30080688093E300111102C082E039 -:101F900001C083E08093F10186C08058823008F050 -:101FA00082C08091F4019091F5018C3D53E095073A -:101FB00079F583E08A838AE289834FB7F894DE015A -:101FC000139620E03EE051E2E32FF0E050935700FB -:101FD000E49120FF03C0E295EF703F5FEF708E2F1A -:101FE00090E0EA3010F0C79601C0C0968D939D93A3 -:101FF0002F5F243149F74FBF8091E800877F80939E -:10200000E8006AE270E0CE0101960E943F0C14C025 -:10201000AE014F5F5F4F6091F6010E94860BBC01DD -:10202000009709F440C09091E800977F9093E800F2 -:1020300089819A810E94A20C8091E8008B7780931D -:10204000E80031C0803879F58091E800877F80937F -:10205000E8008091ED018093F1008091E8008E7797 -:102060008093E8000E94380D1EC081111CC0909121 -:10207000F4019230C0F48091E800877F8093E800FB -:102080009093ED010E94380D8091ED01811106C001 -:102090008091E30087FD02C081E001C084E080936D -:1020A000F1010E94820A8091E80083FF0AC08091BA -:1020B000E800877F8093E8008091EB008062809346 -:1020C000EB00AA960FB6F894DEBF0FBECDBFDF912E -:1020D000CF911F9108950895CF938091F1018823A6 -:1020E000A1F0C091E900CF709091EC00892F817030 -:1020F00090FD80E8C82B1092E9008091E80083FDF4 -:102100000E941A0FCF70C093E900CF910895909369 -:102110007501809374010895E0917401F091750147 -:10212000309721F00190F081E02D099480E008952E -:10213000E0917401F0917501309721F00280F381F4 -:10214000E02D09940895E0917401F09175013097A4 -:1021500021F00480F581E02D099408952091720109 -:10216000309173018217930771F0909373018093FC -:102170007201E0917401F0917501309721F00680B1 -:10218000F781E02D0994089520917001309171013B -:102190008217930771F09093710180937001E09121 -:1021A0007401F0917501309721F00084F185E02DE4 -:1021B0000994089508950C94DA100E94341C0E942A -:1021C00087030C94F61C9F92AF92BF92CF92DF923E -:1021D000EF92FF920F931F93CF93DF9300D000D025 -:1021E00000D0CDB7DEB70E949F030DE010E0AA2417 -:1021F000A394B12C902E802F0E948D049801295811 -:102200003E4F6901F901F080F826A1F4015011094F -:1022100088F78FEF89838A831B820E943D1C81602F -:10222000782F9D838C8349815A816B818D810E9497 -:102230007A112FC09091DA0191FF04C08E830E9421 -:1022400093048E8125E030E0A501022E01C0440FE9 -:102250000A94EAF7E42E4F21C1F029839A828E2155 -:1022600091E009F490E09B830E943D1C8160782FEF -:102270009D838C8349815A816B818D810E947A1163 -:10228000F6018081E826E08204C021503109E0F6A1 -:10229000BDCF0E94DD1F109176010E948C1018178F -:1022A000B9F00E948C108093760126960FB6F894B0 -:1022B000DEBF0FBECDBFDF91CF911F910F91FF9079 -:1022C000EF90DF90CF90BF90AF909F900C948509D6 -:1022D00026960FB6F894DEBF0FBECDBFDF91CF912B -:1022E0001F910F91FF90EF90DF90CF90BF90AF9034 -:1022F0009F900895CF93DF93CDB7DEB72B970FB69E -:10230000F894DEBF0FBECDBF4F83588769877A87A9 -:102310008B87DE01119686E0FD0111928A95E9F71F -:1023200085E0FE01379601900D928A95E1F749818B -:102330005A816B817C818D819E810E94C3172B966F -:102340000FB6F894DEBF0FBECDBFDF91CF910895D9 -:10235000CF93882309F4C2C0C82F823859F40E9451 -:102360008C1081FDBBC089E30E949D1A0E946A1BEC -:1023700089E30CC0833879F40E948C1080FDAEC0D4 -:1023800083E50E949D1A0E946A1B83E50E94DF1A62 -:10239000CF910C946A1B843859F40E948C1082FDF2 -:1023A0009DC087E40E949D1A0E946A1B87E4EECFBD -:1023B0008CEF8C0F813A48F48C2F0E9420228111DF -:1023C0008DC08C2F0E949D1AE3CF80E28C0F883045 -:1023D00048F4C77081E001C0880FCA95EAF70E94EF -:1023E000231BD6CF8BE58C0F833078F4C53A29F0C8 -:1023F000C63A31F083E890E005C081E890E002C081 -:1024000082E890E0CF910C94AE1088E58C0F833178 -:1024100008F064C0C83A39F1C93A41F1CA3A49F101 -:10242000CB3A51F1CC3A59F1CD3A61F1C03B69F167 -:10243000CE3A71F1CF3A79F1C13B81F1C23B89F1DA -:10244000C33B91F1C43B99F1C53BA1F1C63BA9F156 -:10245000C73BB1F1C83BB9F1C93BC1F1CA3BC9F1B6 -:1024600080E090E038C082EE90E035C089EE90E0E8 -:1024700032C08AEE90E02FC085EB90E02CC086EB56 -:1024800090E029C087EB90E026C08CEC90E023C060 -:102490008DEC90E020C083E891E01DC08AE891E0D7 -:1024A0001AC082E991E017C084E991E014C081E28A -:1024B00092E011C083E292E00EC084E292E00BC091 -:1024C00085E292E008C086E292E005C087E292E0F1 -:1024D00002C08AE292E0CF910C94C410CF9108958B -:1024E000882309F44BC0823859F40E948C1081FF74 -:1024F00045C089E30E949D1A0E946A1B89E30CC0B3 -:10250000833871F40E948C1080FF38C083E50E94EC -:102510009D1A0E946A1B83E50E94DF1A0C946A1BB5 -:10252000843859F40E948C1082FF28C087E40E94EE -:102530009D1A0E946A1B87E4EFCF9CEF980F913A97 -:1025400058F390E2980F983050F4877091E001C0F2 -:10255000990F8A95EAF7892F0E94291BDFCF9BE507 -:10256000980F933020F480E090E00C94AE10885ADD -:10257000833120F480E090E00C94C4100895882307 -:1025800021F00E94231B0C946A1B0895882321F0DC -:102590000E94291B0C946A1B08957F928F929F9230 -:1025A000AF92BF92CF92DF92EF92FF920F931F9361 -:1025B000CF93DF931F92CDB7DEB77C01C62E772E67 -:1025C000FC01058102950F70128111110E94401BC0 -:1025D0000E94961A882379F0112369F080E28C0D0D -:1025E000883048F082E00E947F1A0E94961A91E09B -:1025F000D82ED92601C0D12CE72DE295EF70F0E05E -:10260000E05AFF4F0C945524872D807F072D0F70C3 -:10261000882311F00295007F112389F0002309F42B -:1026200090C180E28C0D883020F4802F0E94231B03 -:1026300003C0802F0E94331B0E946A1B82C18C2D15 -:102640000E947012002309F495C180E28C0D88303D -:1026500020F4802F0E94291B03C0802F0E94391B69 -:102660000E946A1B87C1972D907F872D8F709032B3 -:1026700011F08295807FCC2021F0F1E0CF16B1F0EF -:102680001EC0112349F0002309F414C1013009F0E0 -:1026900011C10E94531B6EC1002319F0013009F4CF -:1026A00069C189830E94561B89810AC1112321F0C7 -:1026B000023008F05FC1FEC001115CC101C11123ED -:1026C00021F0002309F4F6C03CC1002309F4F8C04E -:1026D0003EC1872D86958695837090E0009719F00E -:1026E000019761F047C1112321F08C2D972D937034 -:1026F00002C080E090E00E94AE103CC1112321F0A6 -:102700008C2D972D937002C080E090E00E94C41041 -:1027100031C18C2D112319F00E94E51E02C00E94C8 -:102720004D1F0E94D21F26C1872D837009F052C011 -:10273000111120C18C2D829586958770880F880F86 -:102740009C2D9F70892E912CA12CB12C082E04C099 -:10275000880C991CAA1CBB1C0A94D2F7C4FE14C096 -:102760000FE010E020E030E0B901A80104C0440F00 -:10277000551F661F771F8A95D2F7CB01BA01609566 -:1027800070958095909503C060E070E0CB01272D97 -:1027900026952695237030E02230310569F02330EC -:1027A000310589F0682979298A299B292130310549 -:1027B00071F00E940B19DEC0682979298A299B29AA -:1027C0000E942719D7C00E940B19C501B4010E94AD -:1027D000EF18D0C0112319F0872D817001C08695A4 -:1027E000882309F4C7C08C2D829586958770880F41 -:1027F000880F9C2D9F70892E912CA12CB12C082E16 -:1028000004C0880C991CAA1CBB1C0A94D2F7C4FEF5 -:1028100014C00FE010E020E030E0B901A80104C0CE -:10282000440F551F661F771F8A95D2F7CB01BA0157 -:10283000609570958095909503C060E070E0CB0145 -:10284000272D269526952370422F50E042305105C2 -:1028500069F04330510589F0682979298A299B2933 -:102860004130510571F00E94E51984C06829792929 -:102870008A299B290E94011A7DC00E94E519C50181 -:10288000B4010E94C91976C08C2D90E0FC01E05E75 -:10289000F109E531F10508F050C0E059FF4F0C9403 -:1028A00055240C2D0F70872D8F71112331F00E944C -:1028B0006219802F0E94BF125DC00E948319802F71 -:1028C0000E94C61257C0112339F0011153C0872D41 -:1028D0008F710E94A8194EC0023008F04BC0F7CF8C -:1028E000112339F0872D8F710E94621943C0112383 -:1028F000C9F3872D8F710E9483193CC0112329F0E1 -:10290000872D8F710E944D1935C00E94431932C026 -:10291000112351F0172D1F71812F0E94621963E05E -:10292000812F0E94761A26C081E00E947F1A023011 -:1029300008F182E00E947F1A1DC0112331F00023AC -:1029400089F28C2D0E94A81115C0002391F28C2DC4 -:102950000E9470120FC0472D4F706C2DC7010E944E -:10296000A9050E94671806C0472D4F706C2DC7013E -:102970000E949406DD20F9F00E94721A80FD1BC0AF -:10298000F70112820E946C1A0E946219C7010E940C -:10299000EA140E946C1A0F90DF91CF911F910F9152 -:1029A000FF90EF90DF90CF90BF90AF909F908F906F -:1029B0007F900C9483190F90DF91CF911F910F910D -:1029C000FF90EF90DF90CF90BF90AF909F908F904F -:1029D0007F9008950F931F93CF93DF93EC0188812D -:1029E00099812B813C81232BB9F09F3F11F48F3FBC -:1029F00099F0CE010E94EC05882371F068817981FD -:102A00008A810E94681A8C010E941D1A0E94E41893 -:102A1000B801CE010E94CD12DF91CF911F910F918D -:102A200008950E94401B0E94501B0E94151B0E948B -:102A30006A1B0E9483200E94D21F80E090E00E94C7 -:102A4000AE1080E090E00C94C4100E94301B0C94F7 -:102A500011150E945D1A292F22952F7030E02C301D -:102A600031054CF42A3031056CF422503109223002 -:102A70003105A8F407C02C30310569F02F3031053D -:102A800051F00DC0803F69F018F4803E40F409C059 -:102A9000843F29F406C093FB882780F9089580E0DD -:102AA000089581E00895CF93DF9300D000D01F9266 -:102AB000CDB7DEB70F900F900F900F900F90DF9172 -:102AC000CF910895CF93DF9300D000D000D0CDB741 -:102AD000DEB726960FB6F894DEBF0FBECDBFDF91EE -:102AE000CF9108951F93CF93DF93C091850116E096 -:102AF00080918601C81799F0D0E01C9FF0011D9FBE -:102B0000F00D1124E957FE4F40815181628173819C -:102B1000848195810E9462152196C770E9CFDF916B -:102B2000CF911F9108954091B7015091B8016091E4 -:102B3000B9017091BA018091BB019091BC010C94D4 -:102B400062158091BC0182958F7009F054C080910C -:102B5000B901882309F44FC080918501A0918601B5 -:102B60006091B7017091B8014091BA015091BB01D9 -:102B7000B6E08A1709F43FC090E041155105C1F154 -:102B80007F3F11F46F3FA1F1B89FF001B99FF00DA5 -:102B90001124E957FE4F218172132AC0208162134C -:102BA00027C02281211124C02381348124173507B5 -:102BB00010F421503109241B350B283C3105C0F499 -:102BC0002091BC012F7020612093BC0126E0289F3A -:102BD000F001299FF00D1124E457FE4F80818F7082 -:102BE0008061808387EB91E00E94EA140C94721557 -:102BF00001968770BECF0895CF92DF92EF92FF9239 -:102C00000F931F93CF93DF93CDB7DEB762970FB6C5 -:102C1000F894DEBF0FBECDBF8C0185E0F801DE0168 -:102C20001D9601900D928A95E1F7D8014C9111966D -:102C30005C91119712966C9112971396CD90DC903F -:102C400014973091B7017091B8018091BA019091B9 -:102C5000BB01009709F46BC17F3F19F43F3F09F4B2 -:102C600066C1E090B901EE2009F4C0C02091BC011A -:102C7000C816D90628F0F601E81BF90BCF0104C0ED -:102C8000809590958C0D9D1DFF24F394883C9105B3 -:102C900078F0F12C207F09F0C6C07C2DD98AC88A33 -:102CA00089890E94531587EB91E00E94EA14B1C014 -:102CB000822F807F09F046C0751314C0341312C0F0 -:102CC000611110C02F7020612093BC010E949315E8 -:102CD00087EB91E00E94EA148091BC01D80115961F -:102CE0008C932EC0CD2819F15F3F11F44F3FF9F0BE -:102CF000F62E61111CC0809185012091860136E07D -:102D0000821709F45AC090E0389FF001399FF00D06 -:102D10001124E957FE4F7181571306C07081471384 -:102D200003C07281711103C001968770E9CFF62E3E -:102D3000662309F418C18091BC0181608093BC01B5 -:102D4000F12C11C1751308C0341306C0611104C001 -:102D50008091BC01D801C3C04D875E878D859E855B -:102D60006A8B0E9429156A898823E1F16623D1F1D3 -:102D70002091BC01822F82958F7090E0029774F0B1 -:102D80008091B7019091B80198878F831986DB866F -:102D9000CA862C87CE0107960E94EA1486E0F801C5 -:102DA000A7EBB1E001900D928A95E1F70E94A11581 -:102DB0000E949315FF24F394D6C04D875E878D85BE -:102DC0009E850E945D1A292F22952F7030E02230B7 -:102DD00031050CF0BCC09F7009F0B6C0805E883031 -:102DE00008F4C1C0C8010E94EA14E4CFC816D9068D -:102DF00008F453C0F601E81BF90BCF01883C91059C -:102E000008F450C0F12C7C2DD98AC88A89890E9487 -:102E10005315E7EBF1E086E0DF011D928A95E9F7B3 -:102E20000E949315A0C0751314C0341312C0611111 -:102E300010C08091BC01F8018583C8010E94EA148A -:102E400086E0E7EBF1E0DF011D928A95E9F7FE2CC1 -:102E50008AC04D875E878D859E856A8B0E94291565 -:102E60006A89882309F4BECF662309F4BBCF209179 -:102E7000BC01822F82958F7090E002970CF48ECF68 -:102E80008091B7019091B8019A8389831B82DD827A -:102E9000CC822E83CE0101967FCF809590958C0DAC -:102EA0009D1DACCFF62E662309F49CCF75132EC062 -:102EB00034132CC02091BC0120FD1FC0822F8295AD -:102EC0008F70D9F0D80115962C9315978F3049F053 -:102ED0008F5F982F9295907F822F8F70892B1596F8 -:102EE0008C93C8010E94EA1486E0F801A7EBB1E0D8 -:102EF00001900D928A95E1F793CF86E0F801A7EB58 -:102F0000B1E001900D928A95E1F72DC04D875E8763 -:102F10008D859E850E942915811140CF8091BC012D -:102F200081608093BC01C8010E94EA141CC0662322 -:102F300009F458CF4D875E878D859E850E9429159F -:102F4000882309F44FCF2ACF811148CF0CC02430F9 -:102F500031050CF047CF9F7009F440CFF8019581FF -:102F6000907F09F03BCF8F2D62960FB6F894DEBFAD -:102F70000FBECDBFDF91CF911F910F91FF90EF90CA -:102F8000DF90CF9008951F93CF93DF93CDB7DEB737 -:102F90002C970FB6F894DEBF0FBECDBF4F83588776 -:102FA00069877A878B879C87CE0107960E94FC15DC -:102FB000882369F08F8198852A853B85232BF1F141 -:102FC0009F3F09F063C08F3F09F060C037C086E0C3 -:102FD000FE013796DE01119601900D928A95E1F778 -:102FE0006F817885EA85FB85309741F17F3F11F449 -:102FF0006F3F21F12091860130E0C9010196877071 -:1030000099274091850150E08417950709F447C03E -:1030100069837A83FD83EC8396E0929FD001939F2E -:10302000B00D1124A957BE4FFE01319601900D92AB -:103030009A95E1F7809386010E94721516E08091BF -:103040008501909186018917C1F1189FC001112453 -:1030500089579E4F0E94FC15882379F1E0918501E4 -:103060001E9FF0011124E957FE4F4081518162817A -:103070007381848195810E9462158091850190E021 -:1030800001968770992780938501D9CF4F81588504 -:1030900069857A858B859C850E946215CFCF0E94B9 -:1030A00025151092860110928501E7EBF1E086E08C -:1030B000DF011D928A95E9F7C1CF2C960FB6F894DF -:1030C000DEBF0FBECDBFDF91CF911F910895EF926C -:1030D000FF920F931F93CF93DF938C01009709F416 -:1030E0006CC0F12CEE24E394E8012196F801849160 -:1030F000843740F4843008F051C0813081F0823050 -:1031000019F15BC0853709F444C0A8F19CE7980F1A -:10311000903708F052C08F770E94701241C00E5F46 -:103120001F4FFE01C49180E28C0F883048F4C770B5 -:103130008E2D01C0880FCA95EAF70E94431B14C068 -:103140008C2F0E94A8112DC00E5F1F4FFE01C4914D -:1031500080E28C0F883058F4C7708E2D01C0880F24 -:10316000CA95EAF70E94491B0E946A1B1AC08C2F5D -:103170000E94701216C00E5F1F4FFE01C491CC2337 -:1031800081F08FE99FE00197F1F700C00000C15086 -:10319000F6CF0E5F1F4FFE01F49003C00E94A811EE -:1031A0008E018F2D882309F49FCFEFE9FFE031973F -:1031B000F1F700C000008150F5CFDF91CF911F9152 -:1031C0000F91FF90EF90089508956093C10170935F -:1031D000C2018093C3019093C4010C9411150F9305 -:1031E0001F930091C1011091C2012091C301309140 -:1031F000C401DC01CB01802B912BA22BB32B80933C -:10320000C1019093C201A093C301B093C4011F9167 -:103210000F910C9411150F931F930091C101109100 -:10322000C2012091C3013091C401DC01CB01802394 -:103230009123A223B3238093C1019093C201A09351 -:10324000C301B093C4011F910F910C9411150F93FA -:103250001F930091C1011091C2012091C3013091CF -:10326000C401DC01CB0180279127A227B3278093DB -:10327000C1019093C201A093C301B093C4011F91F7 -:103280000F910C9411151092BD011092BE01109275 -:10329000BF011092C0010C94111541E050E060E0B4 -:1032A00070E004C0440F551F661F771F8A95D2F740 -:1032B0004093BD015093BE016093BF017093C00164 -:1032C0000C94111541E050E060E070E004C0440F40 -:1032D000551F661F771F8A95D2F78091BD01909187 -:1032E000BE01A091BF01B091C001482B592B6A2BA0 -:1032F0007B2B4093BD015093BE016093BF0170933F -:10330000C0010C94111541E050E060E070E004C091 -:10331000440F551F661F771F8A95D2F74095509529 -:10332000609570958091BD019091BE01A091BF0103 -:10333000B091C001482359236A237B234093BD01E8 -:103340005093BE016093BF017093C0010C9411159E -:1033500041E050E060E070E004C0440F551F661F7C -:10336000771F8A95D2F78091BD019091BE01A091FF -:10337000BF01B091C001482759276A277B27409396 -:10338000BD015093BE016093BF017093C0010C94C6 -:1033900011150F931F930091BD011091BE01209153 -:1033A000BF013091C001DC01CB01802B912BA22BFE -:1033B000B32B8093BD019093BE01A093BF01B09346 -:1033C000C0011F910F910C9411150F931F93009141 -:1033D000BD011091BE012091BF013091C001DC01FF -:1033E000CB0180239123A223B3238093BD0190932B -:1033F000BE01A093BF01B093C0011F910F910C9427 -:1034000011150F931F930091BD011091BE012091E2 -:10341000BF013091C001DC01CB0180279127A22799 -:10342000B3278093BD019093BE01A093BF01B093D9 -:10343000C0011F910F910C9411150895CF92DF9246 -:10344000EF92FF920F931F93CF93DF938C01C09065 -:10345000C101D090C201E090C301F090C4018091FD -:10346000BD019091BE01A091BF01B091C001C82AD9 -:10347000D92AEA2AFB2ACFE1D0E0D701C6010C2ED7 -:1034800004C0B695A795979587950A94D2F780FFC3 -:1034900006C0B8018C2F0E94EA08019721F42197F9 -:1034A00060F780E001C08C2FDF91CF911F910F91C9 -:1034B000FF90EF90DF90CF900895CF93DF93EC01D2 -:1034C0000E941E1ABE010E94EA08DF91CF91089562 -:1034D000CB010E945D1A08958091C501859585955F -:1034E000859508958091C5018770089598E0899F1A -:1034F00090011124262B2093C5010C946219209170 -:10350000C501809582238093C501982F977069F437 -:1035100030E0482F552747FD50952417350729F0EF -:103520008595859585950C94831908959091C5018D -:10353000977081E009F480E0089590910C0199233F -:1035400021F090910D01911109C020910E0130914F -:103550000F01F90132969FEF40E01FC0982F96951A -:10356000969596959F3050F5E0910E01F0910F01E0 -:10357000E90FF11D877021E030E0A90102C0440F7E -:10358000551F8A95E2F7CA019181892B818308959D -:103590009F3F39F04F5F4E3041F051915813F8CFB3 -:1035A0000DC05111F7CF942FF5CF9F3F39F0F9019E -:1035B000E90FF11D97FDFA95828308950895909182 -:1035C0000C01992321F090910D01911109C02091D6 -:1035D0000E0130910F01F9013296205F3F4F1FC05D -:1035E000982F9695969596959F30F0F4E0910E0160 -:1035F000F0910F01E90FF11D877021E030E0A90182 -:1036000002C0440F551F8A95E2F7CA018095918147 -:103610008923818308953196E217F30729F0908179 -:103620009813F9CF1082F7CF089581E090E0E091F0 -:103630000E01F0910F01E80FF91F10820196803101 -:103640009105A9F708959091D901892B8093D9010B -:10365000089580959091D90189238093D901089587 -:103660001092D90108959091D801892B8093D801A7 -:10367000089580959091D80189238093D801089569 -:103680001092D80108959091D701892B8093D7018A -:10369000089580959091D70189238093D70108954B -:1036A0001092D70108958093C60108951092C60123 -:1036B000089580910E0190910F01FC0131969C01BB -:1036C000205F3F4F80E0919191118F5FE217F307E8 -:1036D000D1F70895E0910E01F0910F018091D90189 -:1036E0008083E0910E01F0910F0190818091D801CB -:1036F000892B8083E0910E01F0910F0190818091E0 -:10370000D701892B80838091C601882361F0E091E5 -:103710000E01F0910F019081892B80830E94591B2B -:1037200081111092C60180910E0190910F010C94AD -:10373000981020E0009739F0AC01415051098423E2 -:1037400095232F5FF7CF822F0895CF92DF92EF92CC -:10375000FF926C01EE24FF24C114D104E104F104B2 -:1037600021F0C701B60120E101C020E0C72ED82E0C -:10377000E92EFF24C114D104E104F10419F0285FFB -:10378000C701B6016B017C0154E0F694E794D7942D -:10379000C7945A95D1F7C114D104E104F10419F08A -:1037A0002C5FC701B6016B017C0142E0F694E794FF -:1037B000D794C7944A95D1F7C114D104E104F10418 -:1037C00019F02E5FC701B601DC01CB01B695A795B4 -:1037D00097958795892B8A2B8B2B09F02F5F822F4A -:1037E000FF90EF90DF90CF9008958091F1018430A9 -:1037F00021F11092DB0120E488E190E00FB6F8940B -:10380000A895809360000FBE2093600080E00E9426 -:10381000850983B7817F846083BF83B7816083BF5D -:103820007894889583B78E7F83BF88E10FB6F8942C -:1038300080936000109260000FBE0895089508956F -:103840000E941E1C0E949F030E941F1C0E94940441 -:1038500091E0811101C090E0892F08950E94251503 -:103860000E948C100C94850982E084BD93E095BD84 -:103870009AEF97BD80936E0008952FB7F8948091CA -:10388000DC019091DD01A091DE01B091DF012FBF3D -:103890000895CF92DF92EF92FF920F931F932FB76D -:1038A000F8944091DC015091DD016091DE0170914E -:1038B000DF012FBF6A017B01EE24FF248C0120E091 -:1038C00030E0C016D106E206F30610F4415051096B -:1038D0009A01281B390BC9011F910F91FF90EF909E -:1038E000DF90CF9008951F920F920FB60F92112480 -:1038F0008F939F93AF93BF938091DC019091DD01F3 -:10390000A091DE01B091DF010196A11DB11D809350 -:10391000DC019093DD01A093DE01B093DF01BF9144 -:10392000AF919F918F910F900FBE0F901F901895A0 -:103930000E94890DF8942FEF87EA91E6215080408C -:103940009040E1F700C0000087E090EBDC0180933D -:10395000FB019093FC01A093FD01B093FE019CE05C -:1039600088E10FB6F894A895809360000FBE9093FD -:103970006000FFCFEF92FF920F931F93CF93DF93DF -:10398000D82FCDE08C2F0E948D0405E010E0E82EAA -:10399000F12CC701002E02C0959587950A94E2F795 -:1039A00080FF09C0602F7C2F80E00E949506D8130D -:1039B00002C081E006C00150110958F7C15010F74C -:1039C00080E0DF91CF911F910F91FF90EF900895CC -:1039D000CF93C82F8CE20E94BA1C882321F08C2F31 -:1039E000CF910C94BA1C80E0CF910895CF930E94A0 -:1039F0003D1E811102C00E94231EC5E6C15049F040 -:103A00000E949F038FE39CE90197F1F700C000003B -:103A1000F5CF89E20E94E81C811113C18AE20E945D -:103A2000E81C81110E94231E85E00E94E81C811180 -:103A30000E94981C0E94481E8093DA0187E00E9431 -:103A4000E81C8823A9F18BE10E94E81C882351F02F -:103A50008091DA0181FB222720F991E0922790FBE7 -:103A600081F90EC08EE00E94E81C882361F08091ED -:103A7000DA0182FB222720F991E0922790FB82F95C -:103A80008093DA0115C080E10E94E81C9091DA0170 -:103A9000882341F093FB222720F981E0822780FBD5 -:103AA00093F904C0892F809580FB90F99093DA01F7 -:103AB0008091DA010E944C1E0E945A1E8093FA01E6 -:103AC00080EE0E94E81C882341F08091FA01982F33 -:103AD000909590FB80F98093FA0189E30E94E81C9D -:103AE000882359F08091FA0181FB222720F991E087 -:103AF000922790FB81F98093FA0182EE0E94E81CE4 -:103B0000882359F08091FA0182FB222720F991E065 -:103B1000922790FB82F98093FA0186EE0E94E81CBE -:103B2000882359F08091FA0183FB222720F991E044 -:103B3000922790FB83F98093FA0183EE0E94E81CA0 -:103B4000882359F08091FA0184FB222720F991E023 -:103B5000922790FB84F98093FA0185E30E94E81C88 -:103B6000882359F08091FA0185FB222720F991E002 -:103B7000922790FB85F98093FA0181E30E94E81C6B -:103B8000882359F08091FA0186FB222720F991E0E1 -:103B9000922790FB86F98093FA0181E10E94E81C4C -:103BA000882359F08091FA0187FB222720F991E0C0 -:103BB000922790FB87F98093FA018091FA010E9485 -:103BC0005E1E8091FA0187FB882780F980930D01A2 -:103BD00087E20E94E81CC82F8EE10E94E81C811138 -:103BE000C2608FE10E94E81C8111C46080E20E94E3 -:103BF000E81C8111C86081E20E94E81C8111C0614B -:103C000082E20E94E81C8111C06283E20E94E81CEB -:103C10008111C06484E20E94E81C882311F0C0680E -:103C200002C0CC2329F08C2F0E94551E6C2F03C09C -:103C30000E94511E682F70E080E090E0CF910C94BC -:103C4000E518CF9108956DEE7EEF80E090E00E9440 -:103C50008F2460E082E090E00E947D2460E083E0B9 -:103C600090E00E947D2460E084E090E00E947D244A -:103C700060E085E090E00C947D2480E090E00E947C -:103C8000772421E08D3E9E4F09F020E0822F089599 -:103C900082E090E00C946F24682F82E090E00C9416 -:103CA0007D2483E090E00C946F24682F83E090E003 -:103CB0000C947D2484E090E00C946F24682F84E0C1 -:103CC00090E00C947D248091E20180FF0BC0609114 -:103CD000130185E0689FB00111247595679575956E -:103CE00067952BC081FF09C06091130185E0689F33 -:103CF000B00111247595679520C082FF07C06091BF -:103D0000130185E0689FB001112417C09091E30171 -:103D10009923D1F060911201961788F72091130131 -:103D200085E0289F90011124929FA001939F500D40 -:103D3000112470E0CA010E9441246038710540F4EA -:103D40006115710539F002C065E070E0862F0895B5 -:103D50008FE7089581E008958091E20180FF08C017 -:103D60006091110170E0759567957595679521C013 -:103D700081FF06C06091110170E07595679519C0CB -:103D800082FF04C06091110170E010C09091E301C6 -:103D90009923C1F0609110019617A0F7809111014D -:103DA000899FC001112470E00E9441246038710590 -:103DB00028F46115710521F0862F08958FE7089585 -:103DC00081E0089561E070E0F4CF803F21F40E942B -:103DD000631E819504C0813F29F40E94631E809375 -:103DE000E6010895823F21F40E94631E819504C07C -:103DF000833F29F40E94631E8093E5010895893F63 -:103E000019F40E94AC1E05C08A3F31F40E94AC1E1A -:103E100081958093E70108958B3F21F40E94AC1EA9 -:103E2000819504C08C3F29F40E94AC1E8093E80168 -:103E30000895843F21F48091E401816017C0853F9B -:103E400021F48091E401826011C0863F21F48091C9 -:103E5000E40184600BC0873F21F48091E401886015 -:103E600005C0883F31F48091E40180618093E401D2 -:103E700008958D3F21F48091E20181600BC08E3F57 -:103E800021F48091E201826005C08F3F29F4809186 -:103E9000E20184608093E2010895803F39F48091CB -:103EA000E60187FF6CC01092E60169C0813F29F4EA -:103EB0008091E6011816BCF362C09091E501823F43 -:103EC00029F497FF5CC01092E50159C0833F19F4B3 -:103ED0001916CCF354C0893F41F48091E7011816BC -:103EE0000CF04DC01092E7014AC08A3F29F480913E -:103EF000E70187FF44C0F6CF8B3F39F48091E8019A -:103F000087FF3DC01092E8013AC08C3F29F48091B0 -:103F1000E8011816BCF333C0843F21F48091E4011A -:103F20008E7F17C0853F21F48091E4018D7F11C001 -:103F3000863F21F48091E4018B7F0BC0873F21F401 -:103F40008091E401877F05C0883F31F48091E401CE -:103F50008F7E8093E40113C08D3F21F48091E201B4 -:103F60008E7F0BC08E3F21F48091E2018D7F05C0D2 -:103F70008F3F29F48091E2018B7F8093E201809151 -:103F8000E50181110EC08091E60181110AC0809186 -:103F9000E701811106C08091E801811102C01092F1 -:103FA000E301089584EE91E00E94A3100E943D1C5D -:103FB0009093E1018093E00108951F93CF93DF93E5 -:103FC0008091E0019091E1010E94491CAC01909127 -:103FD000E301992321F02091140130E006C02091E3 -:103FE00015018AE0289F900111244217530708F415 -:103FF00086C08091E501C091E601D091E701109162 -:10400000E801811107C0C11176C0D11174C011112E -:1040100072C075C09F3F19F09F5F9093E30118161F -:1040200024F40E94631E8093E5018091E50187FFDF -:1040300005C00E94631E81958093E5011C1624F43F -:104040000E94631E8093E6018091E60187FF05C010 -:104050000E94631E81958093E6016091E5016623CD -:1040600039F1C091E601CC2319F1772767FD7095EE -:10407000872F972F0E94522323E333E343E35FE329 -:104080000E94B6230E941F236093E5016C2F7727BF -:1040900067FD7095872F972F0E94522323E333E308 -:1040A00043E35FE30E94B6230E941F236093E6016F -:1040B0001D1624F40E94AC1E8093E7018091E70155 -:1040C00087FF05C00E94AC1E81958093E701111601 -:1040D00024F40E94AC1E8093E8018091E80187FFE0 -:1040E00005C00E94AC1E81958093E801DF91CF91BD -:1040F0001F910C94D21F9F3F09F08ECF96CFDF9176 -:10410000CF911F910895E4EEF1E085E0DF011D926B -:104110008A95E9F71092E3011092E2010895833045 -:1041200081F128F4813059F08230D1F00895853042 -:1041300009F449C0B8F1863009F456C00895809159 -:104140001501262F30E0280F311D2F3F310524F4B3 -:10415000680F6093150108958FEF809315010895FE -:1041600080911401262F30E0280F311D2F3F31059B -:1041700024F4680F6093140108958FEF8093140165 -:10418000089580911301262F30E0280F311D2F3F15 -:10419000310524F4680F6093130108958FEF809325 -:1041A0001301089580911201262F30E0280F311D50 -:1041B0002F3F310524F4680F6093120108958FEFAB -:1041C00080931201089580911101262F30E0280F6D -:1041D000311D2F3F310524F4680F609311010895BC -:1041E0008FEF80931101089580911001262F30E008 -:1041F000280F311D2F3F310524F4680F6093100103 -:1042000008958FEF809310010895833011F128F401 -:10421000813049F0823091F00895853081F120F1AC -:104220008630C1F1089580911501681720F4861B2E -:10423000809315010895109215010895809114013D -:10424000681720F4861B80931401089510921401BE -:10425000089580911301681720F4861B8093130141 -:10426000089510921301089580911201681720F4A7 -:10427000861B809312010895109212010895809177 -:104280001101681720F4861B809311010895109284 -:104290001101089580911001681720F4861B809306 -:1042A000100108951092100108950F931F938D31FE -:1042B00009F46BC008F03FC08E3009F47FC0C0F431 -:1042C000873009F469C068F4863009F0B1C0809184 -:1042D000DA01817F8E7F8093DA0181E08093EA01A9 -:1042E000A8C0883009F4A2C08B3009F49FC0A0C0D8 -:1042F000863109F49BC078F4803109F472C08131B1 -:1043000009F096C00E94251590910D0181E0892742 -:1043100080930D018BC0893109F488C08B3109F07D -:1043200087C08091DA0181FB222720F991E0922752 -:1043300090FB81F94CC0853309F470C048F4873292 -:1043400009F46CC008F459C0893209F467C070C020 -:10435000833438F48A3308F04EC0883309F466C0D9 -:1043600067C0833409F45AC0883409F061C00E94E0 -:1043700025150FEF13ED20E3015010402040E1F729 -:1043800000C000000E94981C51C00E94D9220E94C7 -:104390008C100E9485094AC09091DA01892F80957E -:1043A000817080FB90F929F0966098609093DA0113 -:1043B00040C0997F977F9093DA0138C08091DA01ED -:1043C00082FB222720F991E0922790FB82F98093CB -:1043D000DA01992359F18091DA0181608093DA0141 -:1043E00025C08091DA0183FB222720F991E09227F2 -:1043F00090FB83F9ECCF895301C08D5141E050E02F -:1044000060E070E08A019B0104C0000F111F221FB1 -:10441000331F8A95D2F7C901B80104C061E070E08A -:1044200080E090E00E94E5180E94251581E001C01F -:1044300080E01F910F91089580E0089580E0089535 -:10444000CF93C82F8091EA01813079F018F0823043 -:10445000E9F187C0E0910E01F0910F018081813177 -:1044600069F0823209F07FC009C0E0910E01F0913D -:104470000F018081813111F0823261F48C2F0E9412 -:104480001C22811104C08C2F0E9455211DC081E087 -:1044900090E01AC08C2F0E941E22811114C0C431DA -:1044A00079F048F4CB3079F0C03109F060C082E097 -:1044B0008093EA0108C0C93219F0C83321F057C00F -:1044C0001092EA0154C081E0817053C0C93289F171 -:1044D00018F5C43171F1A8F4C73009F046C08AE07C -:1044E0008093150194E19093140193E0909313014C -:1044F0008093120188E08093110188E2809310017B -:1045000034C0CE51C63088F5EC2FF0E0E65DFE4FAA -:1045100080818093E90129C0CE34E9F020F4CB34C6 -:1045200021F56AE013C0C13579F0C235F1F461E0DC -:104530000DC08091E901882319F01092E90115C09E -:1045400081E08093EA0115C061E006C08091E90135 -:104550000E948F200AC06AE08091E9010E94052133 -:1045600004C01092EA0180E004C081E002C080E053 -:10457000ABCFCF910895E1E8F0E08081886080833F -:104580008081816080838FB7F89493E09093890055 -:1045900090ED909388008FBF0895EFE6F0E0808162 -:1045A000826080830895EFE6F0E080818D7F8083D4 -:1045B0000895EFE6F0E0908182E0892780830895F6 -:1045C0001F920F920FB60F9211242F933F934F9388 -:1045D0005F936F937F938F939F93AF93BF93EF936B -:1045E000FF938091EB019091EC0101969093EC0187 -:1045F0008093EB01811103C082E00E948509E09164 -:10460000EC01E695E695F0E0E45AFA4FE4918091EA -:10461000EB018E1303C080E00E948509FF91EF91AA -:10462000BF91AF919F918F917F916F915F914F91CA -:104630003F912F910F900FBE0F901F90189504D0AF -:104640006894B1118DC0089570D088F09F5790F094 -:10465000B92F9927B751A0F0D1F0660F771F881FA7 -:10466000991F1AF0BA95C9F712C0B13081F077D00E -:10467000B1E0089574C0672F782F8827B85F39F0AC -:10468000B93FCCF3869577956795B395D9F73EF406 -:1046900090958095709561957F4F8F4F9F4F0895AE -:1046A000E89409C097FB3EF49095809570956195CC -:1046B0007F4F8F4F9F4F9923A9F0F92F96E9BB2782 -:1046C0009395F695879577956795B795F111F8CFFE -:1046D000FAF4BB0F11F460FF1BC06F5F7F4F8F4F69 -:1046E0009F4F16C0882311F096E911C0772321F05F -:1046F0009EE8872F762F05C0662371F096E8862FF7 -:1047000070E060E02AF09A95660F771F881FDAF74D -:10471000880F9695879597F9089557FD9058440FFF -:10472000551F59F05F3F71F04795880F97FB991F10 -:1047300061F09F3F79F087950895121613061406CD -:10474000551FF2CF4695F1DF08C01616170618065A -:10475000991FF1CF86957105610508940895E89435 -:10476000BB2766277727CB0197F908950BD078C030 -:1047700069D028F06ED018F0952309F05AC05FC0B8 -:104780001124EECFCADFA0F3959FD1F3950F50E02F -:10479000551F629FF001729FBB27F00DB11D639FF3 -:1047A000AA27F00DB11DAA1F649F6627B00DA11D99 -:1047B000661F829F2227B00DA11D621F739FB00D3F -:1047C000A11D621F839FA00D611D221F749F3327AF -:1047D000A00D611D231F849F600D211D822F762F48 -:1047E0006A2F11249F5750408AF0E1F088234AF045 -:1047F000EE0FFF1FBB1F661F771F881F9150504091 -:10480000A9F79E3F510570F014C0AACF5F3FECF3AB -:10481000983EDCF3869577956795B795F795E7957C -:104820009F5FC1F7FE2B880F911D9695879597F98D -:10483000089597F99F6780E870E060E008959FEF22 -:1048400080EC089500240A94161617061806090627 -:10485000089500240A9412161306140605060895F6 -:10486000092E0394000C11F4882352F0BB0F40F47E -:10487000BF2B11F460FF04C06F5F7F4F8F4F9F4FBE -:10488000089597FB072E16F4009407D077FD09D002 -:104890000E945B2407FC05D03EF4909581959F4FC4 -:1048A0000895709561957F4F0895EE0FFF1F059055 -:1048B000F491E02D0994AA1BBB1B51E107C0AA1F6C -:1048C000BB1FA617B70710F0A61BB70B881F991FB1 -:1048D0005A95A9F780959095BC01CD010895F99955 -:1048E000FECF92BD81BDF89A992780B50895A8E1C1 -:1048F000B0E042E050E00C949724262FF999FECFC7 -:1049000092BD81BDF89A019700B4021639F01FBA22 -:1049100020BD0FB6F894FA9AF99A0FBE0895019641 -:10492000272F0E947E240C947D24DC01CB01FC0106 -:10493000F999FECF06C0F2BDE1BDF89A319600B4F8 -:0E4940000D9241505040B8F70895F894FFCF03 -:10494E0002208709150AF209BE098A090101C70169 -:10495E0028080A03140A3F4D36391D05D0049A045F -:10496E006104F4030D0426043F040102030405064A -:04497E00070809001D -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/workman_osx_mdw/compiled.hex b/keyboards/ergodox_ez/keymaps/workman_osx_mdw/compiled.hex deleted file mode 100644 index 8bde2f29d..000000000 --- a/keyboards/ergodox_ez/keymaps/workman_osx_mdw/compiled.hex +++ /dev/null @@ -1,1213 +0,0 @@ -:100000000C947B030C94BF030C94BF030C94BF03AC -:100010000C94BF030C94BF030C94BF030C94BF0358 -:100020000C94BF030C94BF030C946C100C943E1101 -:100030000C94BF030C94BF030C94BF030C94BF0338 -:100040000C94BF030C94F8230C94BF030C94BF03CF -:100050000C94BF030C94DA1E0C94BF030C94BF03E2 -:100060000C94BF030C94BF030C94BF030C94BF0308 -:100070000C94BF030C94BF030C94BF030C94BF03F8 -:100080000C94BF030C94BF030C94BF030C94BF03E8 -:100090000C94BF030C94BF030C94BF030C94BF03D8 -:1000A0000C94BF030C94BF030C94BF03AB11CD1190 -:1000B000BB12CD11BB1212123512BB128A129D1245 -:1000C0006C156C159B159B15D115F1152217221770 -:1000D000FC152217AC16AC161317221722171C1783 -:1000E000B916B916B916B916B916B916B916B91698 -:1000F000B916B916B916B916B916B916B916B91688 -:10010000CB16D816DF16E616F0160122022201C41D -:1001100002C4000121022101C402C4000120022006 -:1001200001C402C400011F021F01C402C400013146 -:10013000023101C402C40001E10131023102E101D6 -:10014000C402C4000126022601C402C40001250223 -:100150002501C402C4000124022401C402C4000118 -:1001600023022301C402C40001E10134023402E18C -:1001700001C402C400012D022D01C402C40001E12A -:100180000127022702E101C402C40001E1012502A6 -:100190002502E101C402C400011E021E01C402C402 -:1001A0000001E10130023002E101C402C40001E1BA -:1001B000012F022F02E101C402C40001270227011E -:1001C000C402C400012E022E01C402C40001E101D8 -:1001D00026022602E101C402C4000138023801C42B -:1001E00002C40001E1011E021E02E101C402C400BA -:1001F0000130023001C402C400012F022F01C402E9 -:10020000C40001E1012D022D02E101C402C400017C -:10021000E10121022102E101C402C40001E1011F48 -:10022000021F02E101C402C40001E1012E022E02FC -:10023000E101C402C40001E10138023802E101C455 -:1002400002C40001E10124022402E101C402C4004D -:1002500001E10122022202E101C402C4000000F017 -:10026000A101840884088A35002B00296FE1000071 -:100270000000001E00140004001D0000004D001FBF -:1002800000070016001B00E0002C00200015000BEA -:10029000001000E2002A0021001A0017000600E307 -:1002A000004A00220005000A00190000000000506A -:1002B00000015300000000000000004F0001530047 -:1002C0000000670000000023000D001C000E00006D -:1002D0000000002400090011000F0050004B002511 -:1002E00000180008003600510028002600130012F4 -:1002F00000370052002C00270033000C0038614FFB -:10030000004E002D0031003400E500C40000000163 -:1003100000010001000100010000003A0022023843 -:10032000002300010001003B0024022602240001FA -:100330000001003C0038022E002500010001003DB4 -:10034000002E0227002600010001003E001F022FA0 -:100350000231020000010001000100000001000064 -:100360000001000100010000000100000001003F49 -:10037000002102300238000000010040002D021E62 -:10038000001F000100010041002F00250220000194 -:10039000000100420030002702210001000100435B -:1003A000001E022D0022000100010044004500341F -:1003B0000001000100000001000100010001000136 -:1003C0000000000100010001000100010001000126 -:1003D000000100F2000100010001000100F000F145 -:1003E000000100F400010001000100F3000100F52C -:1003F00000010001000100010001000000010001F6 -:1004000000010000000100000001000100010000E7 -:1004100000010000000100010001000100010000D6 -:100420000001000100010001000100A9000100011C -:100430000001000100AC00AA00B6000100010001AB -:1004400000AB00A800010001000100010001000153 -:1004500000010001000100AE0001000100000001E8 -:1004600000010001000100010000003A0064306D4D -:10047000307830010001003B0065306E307930018A -:100480000001003C0066306F307A30010001003D11 -:1004900000673070307B30010001003E0068307131 -:1004A000307C30000001000100010000000100006C -:1004B0000001000100010000000100000001003FF8 -:1004C00000693072307D300000010040006A3073F6 -:1004D000307E300100010041006B3074307F30010C -:1004E00000010042006C3075308030010001004393 -:1004F00000823076308130010001004400450077F1 -:100500003001000100000016034500720067006F13 -:100510000044006F007800200045005A00000016DB -:10052000034500720067006F0044006F00780020F0 -:100530000045005A0000000403090409026D00048C -:100540000100A0FA090400000103010100092111C2 -:100550000100012240000705810308000A09040187 -:10056000000103010200092111010001224D0007D1 -:1005700005820308000A09040200010300000009C3 -:1005800021110100012236000705830308000A0932 -:1005900004030001030000000921110100012239B8 -:1005A000000705840310000112011001000000087B -:1005B000EDFE071301000102000105010906A1017A -:1005C000050719E029E71500250195087501810245 -:1005D0000508190129059505750191029501750315 -:1005E00091010507190029771500250195787501F6 -:1005F0008102C005010980A101850216010026B70C -:10060000001A01002AB700751095018100C0050C81 -:100610000901A1018503160100269C021A01002A86 -:100620009C02751095018100C005010902A1010914 -:1006300001A1000509190129051500250195057578 -:100640000181029501750381010501093009311508 -:1006500081257F95027508810609381581257F95CA -:100660000175088106050C0A38021581257F950160 -:1006700075088106C0C005010906A101050719E03A -:1006800029E7150025019508750181029501750876 -:10069000810105081901290595057501910295014A -:1006A000750391010507190029FF150026FF009524 -:1006B0000675088100C00000000000000000000076 -:1006C00000010204060A0F17202C3A4A5D71879D2B -:1006D000B3C7DAE9F5FCFFFCF5E9DAC7B39D87712A -:1006E0005D4A3A2C20170F0A0604020100000000A0 -:1006F00000000000000011241FBECFEFDAE0DEBFD3 -:10070000CDBF04B603FE24C08091FD019091FE018F -:10071000A091FF01B09100028730904BA740B04BF1 -:10072000B9F41092FD011092FE011092FF01109297 -:10073000000214BE84B7877F84BF88E10FB6F894A7 -:1007400080936000109260000FBEE0E0FFE3099527 -:1007500011E0A0E0B1E0EEE7FBE402C005900D92ED -:10076000A433B107D9F711E0A4E3B1E001C01D92B1 -:10077000AD3FB107E1F70E94B40D0C94BD250C9478 -:1007800000001092B9008AE08093B800089594EABE -:100790009093BC009091BC0097FFFCCF9091B90062 -:1007A000987F983021F0903111F081E00895809386 -:1007B000BB0084E88093BC008091BC0087FFFCCF25 -:1007C0008091B900887F883111F0803471F780E022 -:1007D000089584E98093BC008091BC0084FDFCCF27 -:1007E00008958093BB0084E88093BC008091BC0096 -:1007F00087FFFCCF9091B900987F81E0983209F48F -:1008000080E0089584E88093BC008091BC0087FF5D -:10081000FCCF8091BB00089580B38C7080BB81B306 -:10082000836F81BB089580910101811115C080E41F -:100830000E94C7038093010181110CC082E10E94D4 -:10084000F10380930101811105C08FEF0E94F10334 -:10085000809301010E94E90384B1807F84B985B14E -:10086000807F85B98AB1837F8AB98BB1837F8BB949 -:100870003E98469808950E94DD05809301010E94EC -:1008800013040E940C04A5E3B1E0E3E4F1E08EE080 -:100890008E0F11921D928E13FCCF0C94C7050E94EF -:1008A000DD05809301010E9413040E940C04A5E35E -:1008B000B1E0E3E4F1E08EE08E0F11921D928E1311 -:1008C000FCCF0895BF92CF92DF92EF92FF920F93E9 -:1008D0001F93CF93DF9380910101882379F080915A -:1008E00034018F5F80933401811108C00E94DD05BF -:1008F00080930101811102C00E946F0505E311E0A0 -:10090000C0E0D0E0DD24D39482E0C82EEE24E3944E -:10091000F12CC730D10500F580910101811164C02F -:1009200080E40E94C70380930101811112C082E11B -:100930000E94F1038093010181110BC0C7010C2EAD -:1009400001C0880F0A94EAF780950E94F103809312 -:1009500001010E94E90348C0CA30A1F028F4C83060 -:1009600059F0C93061F005C0CC3089F070F0CD305D -:1009700089F0209A289810C0219A29980DC0229AAF -:100980002A980AC0239A2B9807C0529A01C0539AFA -:100990005B9802C03E9A469890EA9A95F1F79FB10B -:1009A000799902C082E001C080E091709D25982B6A -:1009B0007C9902C084E001C080E0892B7D9902C04F -:1009C00038E001C030E0832B7E9902C020E101C0F5 -:1009D00020E0822B9FB19095991F9927991F92959E -:1009E000990F907E892B0FC080910101811149C020 -:1009F00080E40E94C70380930101882379F1B12C20 -:100A00000E94E9038B2DF8019081981719F08083DB -:100A1000C09200010E94130421960F5F1F4FCE3039 -:100A2000D10509F076CF80910001882361F18150D2 -:100A300080930001882339F08FE99FE00197F1F757 -:100A400000C0000020C0A3E4B1E0E5E3F1E0CF0185 -:100A5000825F91919D938E13FCCF15C083E10E941C -:100A6000F103809301018111CACF81E40E94C70381 -:100A7000809301018111C3CF0E940204B82EB0946B -:100A8000BFCF80E0C0CF0E946D0581E0DF91CF91A4 -:100A90001F910F91FF90EF90DF90CF90BF9008953E -:100AA000E82FF0E0ED5BFE4F8081089508950F93ED -:100AB0001F93CF93DF93C3E4D1E010E00C2F025FCC -:100AC000899190E00E94011E180F0C13F9CF812F1D -:100AD000DF91CF911F910F9108950C94C007569804 -:100AE0005E9825982D9826982E9827982F988FEF06 -:100AF00090E0909389008093880090938B0080937E -:100B00008A0090938D0080938C00259A2D9A2FEF68 -:100B100080E792E0215080409040E1F700C0000063 -:100B2000269A2E9A2FEF80E792E021508040904045 -:100B3000E1F700C00000279A2F9A2FEF80E792E09C -:100B4000215080409040E1F700C0000025982D988A -:100B50002FEF80E792E0215080409040E1F700C005 -:100B6000000026982E982FEF80E792E021508040D9 -:100B70009040E1F700C0000027982F9856985E98A3 -:100B800025982D9826982E9827982F98089589EAC9 -:100B90008093800089E08093810024982C983F986E -:100BA0008AB18F748AB96E98479A8BB1806B8BB972 -:100BB000769A0E946F050C94BF0780E28093010132 -:100BC0008091510181110EC00E94C10381E0809388 -:100BD00051012FEF83ED90E3215080409040E1F7E9 -:100BE00000C0000080E40E94C703809301018111CE -:100BF0002EC00E94F10380930101811128C00E9440 -:100C0000F10380930101811122C08FE30E94F1035F -:100C10008093010181111BC00E94E90380E40E94BE -:100C2000C70380930101811112C08CE00E94F1037F -:100C30008093010181110BC00E94F1038093010197 -:100C4000811105C08FE30E94F103809301010E948E -:100C5000E903809101010895CF93DF93EC0162379E -:100C600009F4C6C038F56A3609F483C098F46636CC -:100C700009F463C048F4643609F451C008F056C062 -:100C8000662309F441C01CC1683609F464C008F445 -:100C90005BC068C06E3609F48FC030F46C3609F45E -:100CA00076C008F46DC081C0603709F493C008F4C1 -:100CB0008AC097C06A3709F4D1C080F4663709F456 -:100CC000B3C030F4643709F4A1C008F498C0A5C0DB -:100CD000683709F4B7C008F4AEC0BAC06E3709F47B -:100CE000D5C030F46C3709F4C5C008F4BDC0C8C025 -:100CF000603809F4D7C008F4CFC0613809F4D8C00F -:100D0000623809F44BC0DCC08A81882321F085EE6B -:100D10000E941014D5C085EE0E94D814D1C00E9444 -:100D2000AB1B8A81882309F4CBC0CDC00E94AB1BCA -:100D30008A81882309F4C4C0C9C00E94AB1B8A8180 -:100D4000882309F4BDC0C5C00E94AB1B8A818823DB -:100D500009F4B6C0C1C00E94AB1B8A81882309F484 -:100D6000AFC0BDC00E94AB1B8A81882309F4A8C014 -:100D7000B9C00E94AB1B8A81882309F4A1C0B5C009 -:100D80000E94AB1B8A81882309F49AC0B1C00E94DB -:100D9000AB1B8A81882309F493C0ADC00E94AB1BB2 -:100DA0008A81882309F48CC0A9C00E94AB1B8A8168 -:100DB000882309F485C0A5C00E94AB1B8A818823C3 -:100DC00009F47EC0A1C00E94AB1B8A81882309F46C -:100DD00077C09DC00E94AB1B8A81882309F470C034 -:100DE00099C00E94AB1B8A81882309F469C095C011 -:100DF0000E94AB1B8A81882309F462C091C00E94C3 -:100E0000AB1B8A81882309F45BC08DC00E94AB1B99 -:100E10008A81882309F454C089C00E94AB1B8A814F -:100E2000882309F44DC085C00E94AB1B8A818823AA -:100E300009F446C081C00E94AB1B8A81882309F453 -:100E40003FC07DC00E94AB1B8A818823C9F17AC054 -:100E50000E94AB1B8A81882399F177C00E94AB1B4B -:100E60008A81882369F174C00E94AB1B8A81882320 -:100E700039F171C00E94AB1B8A81882309F16EC0D1 -:100E80000E94AB1B8A818823D9F06BC00E94AB1BE8 -:100E90008A818823A9F068C00E94AB1B8A818823BD -:100EA00079F065C00E94AB1B8A81882349F062C03B -:100EB0000E94AB1B8A81882319F08AE091E05CC014 -:100EC00080E090E059C080E592E056C083E492E073 -:100ED00053C086E392E050C089E292E04DC08CE1BD -:100EE00092E04AC08FE092E047C082E092E044C0C6 -:100EF00089EF91E041C080EF91E03EC083EE91E048 -:100F00003BC08AED91E038C08DEC91E035C084ECB7 -:100F100091E032C08BEB91E02FC08EEA91E02CC0C3 -:100F200081EA91E029C088E991E026C08BE891E050 -:100F300023C08EE791E020C085E791E01DC088E6E0 -:100F400091E01AC08FE591E017C086E591E014C0EA -:100F50008DE491E011C084E491E00EC087E391E05C -:100F60000BC08EE291E008C085E291E005C08CE103 -:100F700091E002C083E191E0DF91CF91089508955F -:100F80006091BE017091BF018091C0019091C1013B -:100F90000E940D1E56985E9825982D9826982E989A -:100FA00027982F98813019F0823021F00895259AE2 -:100FB0002D9A0895269A2E9A089581E0089581E049 -:100FC00008950C94DF070895282F882339F090E0C6 -:100FD0002A3010F44D9608950697089587E290E020 -:100FE0000895AF92BF92DF92EF92FF920F931F93FB -:100FF000CF93DF938C01FC01C081D181CE010E948F -:10100000861CBE010E94610BEC01B8010E94E10741 -:10101000882309F4C9C1F8018281882309F4BEC07C -:1010200080915E0181111FC0C431F0E7DF0709F034 -:10103000B5C10E94E30781E080935E010E94A41E77 -:1010400090935D0180935C011092550110925701BD -:1010500010925601109259011092580110925B01A2 -:1010600010925A01A1C180915C0190915D010E9492 -:10107000B01E883C910570F480915501E82FF0E096 -:10108000EE0FFF1FEA5AFE4FD183C0838F5F80931C -:1010900055018AC1C13020E8D20708F451C0F801D7 -:1010A0008281882309F47EC05E01E894B7F88091BC -:1010B0005401813079F050F08230C1F482EE0E9408 -:1010C000101487E50E94101487E50EC082EE0E947E -:1010D00010140CC080EE0E94101481EE0E941014B7 -:1010E00088E10E94101488E10E94D8148CE0E82E58 -:1010F000F12CC5010E2C02C0969587950A94E2F753 -:101100008F700E94E407D82E0E9410148D2D0E942B -:10111000D814F4E0EF1AF1082CEFE2162FEFF206E4 -:1011200041F780915401813029F010F0823041F470 -:1011300082EE04C080EE0E94D81481EE0E94D81482 -:10114000C43180E7D80768F4C23090E7D90708F0C7 -:1011500046C0C115E0E7DE0771F0C130D047A1F10C -:101160000CC1C33320E7D20709F4D8C0C433D04739 -:1011700009F4EBC002C1F8018281882309F402C19D -:101180000E948D17FFEF24E38CE0F1502040804057 -:10119000E1F700C000000E94FF1E06C1C13080E8D8 -:1011A000D80770F2C43120E7D20708F0B3C0C230CC -:1011B00080E7D807A0F4C11590E7D90709F4E2C089 -:1011C000C130D04709F0D9C0F8018281882309F4E1 -:1011D000D9C08091DB0181608093DB01E5C0F8011B -:1011E0008281882309F4CEC00E94591F811102C058 -:1011F0000E943F1F0E946C1F90E09093EF0180932C -:10120000EE01C230F0E7DF0721F48091EE0181604A -:101210007AC0C33020E7D20721F48091EE018260CA -:1012200072C0C43080E7D80721F48091EE01846059 -:101230006AC0C53090E7D90719F48091EE0127C044 -:10124000C630E0E7DE0721F48091EE0180615BC0EB -:10125000C730F0E7DF0721F48091EE01806253C0D0 -:10126000C83020E7D20721F48091EE0180644BC0A2 -:10127000C93080E7D80721F48091EE01806843C02F -:10128000CA3090E7D90729F48091EE018460886024 -:101290003AC0CB30E0E7DE0721F48091EE018E7F8B -:1012A00032C0CC30F0E7DF0721F48091EE018D7F72 -:1012B0002AC0CD3020E7D20721F48091EE018B7F48 -:1012C00022C0CE3080E7D80719F48091EE011AC011 -:1012D0008091EE01CF3090E7D90711F48F7E13C0D3 -:1012E000C031E0E7DE0711F48F7D0DC0C131F0E7BA -:1012F000DF0711F48F7B07C0C231D04711F48F771D -:1013000002C08B7F877F8093EE018091EE010E9467 -:10131000701F4AC0C333F0E7DF07A1F4F8018281F0 -:10132000882321F01092520182E016C08091520170 -:10133000811106C086E20E94101486E20E94D81431 -:1013400082E018C0C433D047C1F4F80182818823F9 -:1013500031F01092530180E20E94271525C0809140 -:101360005301811106C087E20E94101487E20E9497 -:10137000D81480E20E942E1517C081E0809352019C -:1013800080935301C801DF91CF911F910F91FF907E -:10139000EF90DF90BF90AF900C94DD07C130F0E884 -:1013A000DF0708F081CECCCE80E0DF91CF911F9196 -:1013B0000F91FF90EF90DF90BF90AF90089526E0DF -:1013C000729FF001112444E5849FE00DF11D11246A -:1013D000E60FF11DEE0FFF1FE959FD4F8591949126 -:1013E0000E94730B811560E49607B0F5811570E3D8 -:1013F000970708F0DEC0803E9105D8F4803C910547 -:1014000008F06CC0883A910578F4853A910508F0A7 -:101410006BC08130910509F452C108F40FC18430CA -:10142000910508F04CC10AC18B3B910508F467C0D7 -:1014300005C18F3F910509F048F4803F910508F000 -:10144000ADC0883E910508F43AC1F8C0811520E28C -:10145000920708F0A5C00895811543E5940790F41C -:10146000811562E5960708F0C8C0811571E59707F8 -:1014700008F0BEC0811520E5920708F09DC09F705E -:10148000906A0895811545E59407D8F4811564E5BF -:10149000960708F0C8C0482F4695469570E2479FCA -:1014A000A00111248370992721E030E0B90102C026 -:1014B000660F771F8A95E2F7CB01842B952B9A68EC -:1014C0000895811576E5970708F4B2C09C0130565F -:1014D0002115304108F0B2C09F70AEC0FC01EE0F84 -:1014E000FF1FE352FF4F62C0853A910509F4A9C07E -:1014F000863A910509F0A8C082E890E40895883AF8 -:10150000910509F4A4C0893A910509F4A3C08A3A67 -:10151000910509F4A2C08B3A910509F4A1C08C3A57 -:10152000910509F4A0C08D3A910509F49FC0803B54 -:10153000910509F49EC08E3A910509F49DC08F3A39 -:10154000910509F49CC0813B910509F49BC0823B45 -:10155000910509F49AC0833B910509F499C0843B35 -:10156000910509F498C0853B910509F497C0863B25 -:10157000910509F496C0873B910509F495C0883B15 -:10158000910509F494C0893B910509F493C08A3B05 -:10159000910509F492C080E094E40895906508955F -:1015A000FC01FF70EE0FFF1FE35AFD4F85919491F0 -:1015B00008959927906C0895482F437021E030E0FA -:1015C00002C0220F331F4A95E2F73C68AC0164E089 -:1015D000569547956A95E1F74370342B8F70869541 -:1015E000869560E2869FC0011124822B932B08957B -:1015F000982F8827816F906A0895482F46954695C1 -:1016000070E2479FA00111248370992721E030E008 -:10161000B90102C0660F771F8A95E2F7CB01842BD0 -:10162000952B9C680895982F8827846F906A089559 -:101630008F719927982F88279062089580E090E015 -:10164000089581E890E4089583E890E4089582EE97 -:1016500094E4089589EE94E408958AEE94E408955C -:1016600085EB94E4089586EB94E4089587EB94E485 -:1016700008958CEC94E408958DEC94E4089583E847 -:1016800095E408958AE895E4089582E995E408953B -:1016900084E995E4089581E296E4089583E296E46E -:1016A000089584E296E4089585E296E4089586E23A -:1016B00096E4089587E296E408958AE296E4089510 -:1016C000089596E0799FF001112494E5899FE00D3B -:1016D000F11D1124E60FF11DEE0FFF1FE959FD4F1B -:1016E0008591949108958238910549F1B0F4813340 -:1016F000910509F458C048F48932910509F44EC0A7 -:101700008A32910509F454C008958533910509F48E -:1017100040C08933910599F00895833E910529F1E0 -:1017200038F4803E910591F0823E9105A1F0089534 -:10173000863E9105F9F0873E910531F1089520919B -:10174000EE0120FD3AC021FD38C008958091EE01E0 -:1017500080FD35C032C08091EE0182FF32C08091A1 -:10176000EE0184FD30C083EE39C08091EE0182FD30 -:1017700028C0F5CF8091EE0183FF27C08091EE0154 -:1017800084FD21C087EE2AC08091EE0183FD1DC03B -:10179000F5CF8091EE0185FD1AC01BC08091EE014E -:1017A00085FD17C014C08091EE0186FD14C015C0E0 -:1017B0008091EE0186FD11C00EC080EE0FC089E35E -:1017C0000DC082EE0BC080E009C086EE07C089E242 -:1017D00005C085E303C08AE201C081E390E008957B -:1017E00008950C94F00B80916F010895CF93DF93CF -:1017F00000D01F92CDB7DEB79C018091F4018430F8 -:1018000019F593E099833B832A839093E9008FEF46 -:101810009091E800815095FD06C095ED9A95F1F7FD -:1018200000008111F5CF8091E80085FF0DC040E0F8 -:1018300050E063E070E0CE0101960E945C0E809162 -:10184000E8008E778093E8000F900F900F90DF9163 -:10185000CF910895CF93DF9300D01F92CDB7DEB71D -:101860002091F401243021F522E029839B838A838F -:1018700083E08093E9008FEF9091E800815095FD1F -:1018800006C095ED9A95F1F700008111F5CF809192 -:10189000E80085FF0DC040E050E063E070E0CE015D -:1018A00001960E945C0E8091E8008E778093E8009C -:1018B0000F900F900F90DF91CF9108952091F40138 -:1018C0002430F1F422E02093E9002FEF3091E8007A -:1018D000215035FD06C035ED3A95F1F70000211194 -:1018E000F5CF2091E80025FF0BC040E050E065E017 -:1018F00070E00E945C0E8091E8008E778093E80093 -:101900000895CF93DF93EC019091F401943009F0A6 -:1019100046C080910C018823D9F080910D01882365 -:10192000B9F09093E9008FEF9091E800815095FD18 -:1019300006C095E19A95F1F700008111F5CF8091ED -:10194000E80085FF2CC040E050E060E170E017C087 -:1019500081E08093E9008FEF9091E800815095FD40 -:1019600006C095ED9A95F1F700008111F5CF8091B1 -:10197000E80085FF14C040E050E068E070E0CE0170 -:101980000E945C0E8091E8008E778093E80080E1F1 -:10199000FE01AFE5B1E001900D928A95E1F7DF918C -:1019A000CF9108958091F301811109C00E94F10F38 -:1019B0000E944E108091E20084608093E2000895BE -:1019C0001092F301089508950C94E5230E94951E4A -:1019D0000E94EB230E94F4120C94F10B42E061ECA4 -:1019E00081E00E946B0F42E061EC82E00E946B0F8D -:1019F00042E061EC83E00E946B0F42E161EC84E025 -:101A00000C946B0F8091F601833009F455C030F4CB -:101A1000813071F0823009F48EC008958A3009F463 -:101A20007AC08B3009F460C0893009F09CC020C0B6 -:101A30008091F501813A09F096C08091E800877F96 -:101A40008093E8008091F9019091FA01892B21F4AB -:101A500060E18FE591E003C060E080E090E070E03D -:101A60000E94A70E8091E8008B778093E80008958C -:101A70008091F501813209F076C08091F901909151 -:101A8000FA01009719F0039709F06DC08091E80002 -:101A9000877F8093E8008091E80082FD05C08091F7 -:101AA000F4018111F8CF5FC08091F10080936F0144 -:101AB0008091E8008B7753C08091F501813A09F05D -:101AC00052C08091F9019091FA01892B09F04BC025 -:101AD0008091E800877F8093E8008091E80080FF94 -:101AE000FCCF80910C0136C08091F5018132D9F58F -:101AF0008091F9019091FA01892BA9F58091E80074 -:101B0000877F8093E8000E94A00F8091F701809367 -:101B10000C010C948D178091F501813221F5809193 -:101B2000E800877F8093E8000E94A00F8091F80171 -:101B30008093700108958091F501813AA1F480911C -:101B4000E800877F8093E8008091E80080FFFCCF69 -:101B5000809170018093F1008091E8008E778093EE -:101B6000E8000C94A00F089584B7877F84BF88E1B4 -:101B70000FB6F89480936000109260000FBE80E86A -:101B800080936100109261000E9443130E94F10F44 -:101B90000E944E108091E20084608093E20078946D -:101BA0000E94D4120E94451382E091E00E94EF123D -:101BB0000E94D3238091F401853069F40E945D1E58 -:101BC0008091F2018823B1F30E94871E882391F34C -:101BD0000E94460EEFCF0E944B13ECCF292F3327E4 -:101BE00023303105C9F064F42130310581F0223011 -:101BF000310509F043C08DE690E02BE335E042C0AB -:101C000021323105F1F02232310541F137C082E154 -:101C100090E028EA35E036C099278130910541F0FF -:101C20008230910541F0892B49F5E7E3F5E005C0E5 -:101C3000EFE1F5E002C0E7E0F5E0849190E09F017C -:101C400021C06430D8F4E62FF0E0EE0FFF1FEE5D08 -:101C5000FE4F2081318189E090E014C0643070F43F -:101C600070E0FB01EE0FFF1FE65EFE4F2081318129 -:101C7000FB01EA5EFE4F808190E004C080E090E0CE -:101C800020E030E0FA0131832083089580E189BDAE -:101C900082E189BD09B400FEFDCF8091D8008F7D1F -:101CA0008093D8008091E00082608093E000809172 -:101CB000E00081FDFCCF0895CF92DF92EF92FF927A -:101CC0000F931F93CF93DF93EC018B016A010E9466 -:101CD000BF0F811133C0C114D10439F0F6018081E6 -:101CE0009181081B190BC80FD91FE12CF12C01158C -:101CF000110519F18091E80085FD16C08091E8007A -:101D00008E778093E800C114D10449F0F6018081F8 -:101D10009181E80EF91EF182E08285E00FC00E94F9 -:101D2000BF0F882321F30AC089918093F1000150ED -:101D30001109FFEFEF1AFF0ADACF80E0DF91CF91B0 -:101D40001F910F91FF90EF90DF90CF900895209119 -:101D5000FB013091FC012617370748F0611571052A -:101D600039F42091E8002E772093E80001C0B901F2 -:101D700040E061157105A9F12091F401222309F4D5 -:101D800043C0253009F442C02091E80023FD40C043 -:101D90002091E80022FD32C02091E80020FFE9CF29 -:101DA0004091F3002091F20030E0342BFC01CF0190 -:101DB0006115710559F02830310540F48191809307 -:101DC000F100615071092F5F3F4FF1CF41E02830A2 -:101DD000310509F040E02091E8002E772093E800DB -:101DE000C8CF4111C9CF0AC08091F401882361F0A6 -:101DF000853061F08091E80083FD0AC08091E800A1 -:101E000082FFF2CF80E0089582E0089583E0089594 -:101E100081E008952091FB013091FC0126173707DE -:101E200048F06115710539F42091E8002E77209370 -:101E3000E80001C0B901FC0120E06115710591F1D4 -:101E40008091F401882309F440C0853009F43FC033 -:101E50008091E80083FD3DC08091E80082FD2FC0A5 -:101E60008091E80080FFE9CF2091F3008091F2009B -:101E700090E0922B6115710559F08830910540F47E -:101E800024912093F1003196615071090196F2CFAF -:101E900021E0089709F020E08091E8008E77809398 -:101EA000E800CBCF2111CCCF0AC08091F401882368 -:101EB00061F0853061F08091E80083FD0AC0809177 -:101EC000E80082FFF2CF80E0089582E0089583E089 -:101ED000089581E00895982F973058F59093E90080 -:101EE000981739F07091EC002091ED005091F000BE -:101EF00003C0242F762F50E021FF19C03091EB0052 -:101F00003E7F3093EB003091ED003D7F3093ED004C -:101F10003091EB0031603093EB007093EC00209334 -:101F2000ED005093F0002091EE0027FF07C09F5F67 -:101F3000D3CF8F708093E90081E0089580E0089509 -:101F40008091F50187FF11C08091E80082FD05C0F6 -:101F50008091F4018111F8CF11C08091E8008B7756 -:101F60000BC08091F401882349F08091E80080FF44 -:101F7000F8CF8091E8008E778093E8000895209153 -:101F8000E4003091E50095E64091EC00842F8170EB -:101F900040FF22C08091E80080FD1CC08091F401C8 -:101FA000882391F0853091F08091EB0085FD10C081 -:101FB0004091E4005091E5004217530729F39A013C -:101FC000915011F784E0089582E0089583E0089528 -:101FD00081E0089580E008954091E80042FFDECF5F -:101FE00008950E945F100E946710E0EEF0E080818B -:101FF00081608083E8EDF0E080818F77808319BC79 -:10200000A7EDB0E08C918E7F8C9380818F7E808352 -:102010001092F30108950F931F93CF93DF930E94C3 -:102020005F100E946710C8EDD0E088818F778883A9 -:1020300088818068888388818F7D888319BC10920D -:10204000F4011092F0011092F2011092F10100EEF1 -:1020500010E0F80180818B7F808388818160888394 -:1020600042E060E080E00E946B0FE1EEF0E08081F2 -:102070008E7F8083E2EEF0E08081816080838081CA -:1020800088608083F80180818E7F80838881806171 -:102090008883DF91CF911F910F910895E8EDF0E0D3 -:1020A00080818F7E8083E7EDF0E080818160808396 -:1020B00084E082BF81E08093F3010C940B10E8ED83 -:1020C000F0E080818E7F80831092E200089510926C -:1020D000DA001092E10008951F920F920FB60F924E -:1020E00011242F933F934F935F936F937F938F931D -:1020F0009F93AF93BF93EF93FF938091E10082FF93 -:102100000BC08091E20082FF07C08091E1008B7FCD -:102110008093E1000E94D3128091DA0080FF1FC0FB -:102120008091D80080FF1BC08091DA008E7F809361 -:10213000DA008091D90080FF0DC080E189BD82E185 -:1021400089BD09B400FEFDCF81E08093F4010E94B7 -:10215000D20C05C019BC1092F4010E94E00C8091D1 -:10216000E10080FF19C08091E20080FF15C08091DE -:10217000E2008E7F8093E2008091E2008061809394 -:10218000E2008091D80080628093D80019BC85E07D -:102190008093F4010E94E40C8091E10084FF30C040 -:1021A0008091E20084FF2CC080E189BD82E189BD7D -:1021B00009B400FEFDCF8091D8008F7D8093D800B8 -:1021C0008091E1008F7E8093E1008091E2008F7E1C -:1021D0008093E2008091E20081608093E200809130 -:1021E000F001882311F084E007C08091E30087FDAF -:1021F00002C081E001C083E08093F4010E94E60CFC -:102200008091E10083FF29C08091E20083FF25C017 -:102210008091E100877F8093E10082E08093F40168 -:102220001092F0018091E1008E7F8093E100809117 -:10223000E2008E7F8093E2008091E20080618093D3 -:10224000E20042E060E080E00E946B0F8091F000CD -:1022500088608093F0000E94E30CFF91EF91BF91A2 -:10226000AF919F918F917F916F915F914F913F912E -:102270002F910F900FBE0F901F9018951F920F92E5 -:102280000FB60F9211242F933F934F935F936F9349 -:102290007F938F939F93AF93BF93CF93DF93EF93EE -:1022A000FF93C091E900CF708091EC00D82FD170DE -:1022B00080FDD0E81092E9008091F000877F809344 -:1022C000F00078940E9482111092E9008091F00051 -:1022D00088608093F000CD2BCF70C093E900FF9110 -:1022E000EF91DF91CF91BF91AF919F918F917F91AE -:1022F0006F915F914F913F912F910F900FBE0F9073 -:102300001F9018951F93CF93DF93CDB7DEB7AA9791 -:102310000FB6F894DEBF0FBECDBFE5EFF1E088E069 -:102320008E0F9091F10091938E13FBCF0E94020DBE -:102330008091E80083FF1FC18091F5019091F60123 -:10234000492F50E04A30510508F015C1FA01EA5A08 -:10235000FF4F0C946D25803881F0823809F00BC155 -:102360008091F9018F708093E9008091EB0085FBEB -:10237000882780F91092E90006C08091F1019091C0 -:10238000F201911182609091E800977F9093E800AC -:102390008093F1001092F100C8C0282F2D7F09F022 -:1023A000EAC0882319F0823061F0E5C08091F7011E -:1023B000813009F0E0C0933009F080E08093F201B1 -:1023C0002BC08091F701811127C08091F9018F7096 -:1023D00009F4D1C08093E9002091EB0020FF1CC0DC -:1023E000933021F48091EB00806214C09091EB0057 -:1023F00090619093EB0021E030E0A90102C0440F0E -:10240000551F8A95E2F74093EA001092EA00809106 -:10241000EB0088608093EB001092E9008091E80067 -:10242000877F86C08111A7C01091F7011F77809127 -:10243000E3008078812B8093E3008091E800877F20 -:102440008093E8000E94A00F8091E80080FFFCCFFD -:102450008091E30080688093E300111102C082E064 -:1024600001C083E08093F40186C08058823008F078 -:1024700082C08091F7019091F8018C3D53E095075F -:1024800079F583E08A838AE289834FB7F894DE0185 -:10249000139620E03EE051E2E32FF0E05093570026 -:1024A000E49120FF03C0E295EF703F5FEF708E2F45 -:1024B00090E0EA3010F0C79601C0C0968D939D93CE -:1024C0002F5F243149F74FBF8091E800877F8093C9 -:1024D000E8006AE270E0CE0101960E94A70E14C0E7 -:1024E000AE014F5F5F4F6091F9010E94EE0DBC019C -:1024F000009709F440C09091E800977F9093E8001E -:1025000089819A810E940A0F8091E8008B778093DD -:10251000E80031C0803879F58091E800877F8093AA -:10252000E8008091F0018093F1008091E8008E77BF -:102530008093E8000E94A00F1EC081111CC09091E2 -:10254000F7019230C0F48091E800877F8093E80023 -:102550009093F0010E94A00F8091F001811106C0BC -:102560008091E30087FD02C081E001C084E0809398 -:10257000F4010E94EE0C8091E80083FF0AC0809174 -:10258000E800877F8093E8008091EB008062809371 -:10259000EB00AA960FB6F894DEBF0FBECDBFDF9159 -:1025A000CF911F9108950895CF938091F4018823CE -:1025B000A1F0C091E900CF709091EC00892F81705B -:1025C00090FD80E8C82B1092E9008091E80083FD1F -:1025D0000E948211CF70C093E900CF91089590932B -:1025E0007601809375010895E0917501F09176016F -:1025F000309721F00190F081E02D099480E008955A -:10260000E0917501F0917601309721F00280F3811D -:10261000E02D09940895E0917501F09176013097CD -:1026200021F00480F581E02D099408952091730133 -:10263000309174018217930771F090937401809325 -:102640007301E0917501F0917601309721F00680D9 -:10265000F781E02D09940895209171013091720164 -:102660008217930771F09093720180937101E0914A -:102670007501F0917601309721F00084F185E02D0D -:102680000994089508950C9442130E949B1E0E9481 -:102690003B040C94211F9F92AF92BF92CF92DF9286 -:1026A000EF92FF920F931F93CF93DF9300D000D050 -:1026B00000D0CDB7DEB70E9462040DE010E0AA247E -:1026C000A394B12C902E802F0E9450059801285879 -:1026D0003E4F6901F901F080F826A1F4015011097B -:1026E00088F78FEF89838A831B820E94A41E8160F2 -:1026F000782F9D838C8349815A816B818D810E94C3 -:10270000E2132FC09091DB0191FF04C08E830E94E1 -:1027100056058E8125E030E0A501022E01C0440F50 -:102720000A94EAF7E42E4F21C1F029839A828E2180 -:1027300091E009F490E09B830E94A41E8160782FB1 -:102740009D838C8349815A816B818D810E94E21324 -:10275000F6018081E826E08204C021503109E0F6CC -:10276000BDCF0E94EF20109177010E94F41218173C -:10277000B9F00E94F4128093770126960FB6F89470 -:10278000DEBF0FBECDBFDF91CF911F910F91FF90A4 -:10279000EF90DF90CF90BF90AF909F900C94F10B93 -:1027A00026960FB6F894DEBF0FBECDBFDF91CF9156 -:1027B0001F910F91FF90EF90DF90CF90BF90AF905F -:1027C0009F900895CF93DF93CDB7DEB72B970FB6C9 -:1027D000F894DEBF0FBECDBF4F83588769877A87D5 -:1027E0008B87DE01119686E0FD0111928A95E9F74B -:1027F00085E0FE01379601900D928A95E1F74981B7 -:102800005A816B817C818D819E810E942B1A2B962F -:102810000FB6F894DEBF0FBECDBFDF91CF91089504 -:10282000CF93882309F4C2C0C82F823859F40E947C -:10283000F41281FDBBC089E30E94051D0E94D21DD8 -:1028400089E30CC0833879F40E94F41280FDAEC095 -:1028500083E50E94051D0E94D21D83E50E94471D4D -:10286000CF910C94D21D843859F40E94F41282FD49 -:102870009DC087E40E94051D0E94D21D87E4EECF13 -:102880008CEF8C0F813A48F48C2F0E9439238111F0 -:102890008DC08C2F0E94051DE3CF80E28C0F883005 -:1028A00048F4C77081E001C0880FCA95EAF70E941A -:1028B0008B1DD6CF8BE58C0F833078F4C53A29F089 -:1028C000C63A31F083E890E005C081E890E002C0AC -:1028D00082E890E0CF910C94161388E58C0F833139 -:1028E00008F064C0C83A39F1C93A41F1CA3A49F12D -:1028F000CB3A51F1CC3A59F1CD3A61F1C03B69F193 -:10290000CE3A71F1CF3A79F1C13B81F1C23B89F105 -:10291000C33B91F1C43B99F1C53BA1F1C63BA9F181 -:10292000C73BB1F1C83BB9F1C93BC1F1CA3BC9F1E1 -:1029300080E090E038C082EE90E035C089EE90E013 -:1029400032C08AEE90E02FC085EB90E02CC086EB81 -:1029500090E029C087EB90E026C08CEC90E023C08B -:102960008DEC90E020C083E891E01DC08AE891E002 -:102970001AC082E991E017C084E991E014C081E2B5 -:1029800092E011C083E292E00EC084E292E00BC0BC -:1029900085E292E008C086E292E005C087E292E01C -:1029A00002C08AE292E0CF910C942C13CF9108954B -:1029B000882309F44BC0823859F40E94F41281FF35 -:1029C00045C089E30E94051D0E94D21D89E30CC009 -:1029D000833871F40E94F41280FF38C083E50E94AE -:1029E000051D0E94D21D83E50E94471D0C94D21D37 -:1029F000843859F40E94F41282FF28C087E40E94B0 -:102A0000051D0E94D21D87E4EFCF9CEF980F913AED -:102A100058F390E2980F983050F4877091E001C01D -:102A2000990F8A95EAF7892F0E94911DDFCF9BE5C8 -:102A3000980F933020F480E090E00C941613885A9D -:102A4000833120F480E090E00C942C1308958823C7 -:102A500021F00E948B1D0C94D21D0895882321F033 -:102A60000E94911D0C94D21D08957F928F929F9287 -:102A7000AF92BF92CF92DF92EF92FF920F931F938C -:102A8000CF93DF931F92CDB7DEB77C01C62E772E92 -:102A9000FC01058102950F70128111110E94A81D81 -:102AA0000E94FE1C882379F0112369F080E28C0DCE -:102AB000883048F082E00E94E71C0E94FE1C91E0F2 -:102AC000D82ED92601C0D12CE72DE295EF70F0E089 -:102AD000E05AFF4F0C946D25872D807F072D0F70D6 -:102AE000882311F00295007F112389F0002309F457 -:102AF00090C180E28C0D883020F4802F0E948B1DC5 -:102B000003C0802F0E949B1D0E94D21D82C18C2D6C -:102B10000E94D814002309F495C180E28C0D8830FE -:102B200020F4802F0E94911D03C0802F0E94A11DC0 -:102B30000E94D21D87C1972D907F872D8F70903274 -:102B400011F08295807FCC2021F0F1E0CF16B1F01A -:102B50001EC0112349F0002309F414C1013009F00B -:102B600011C10E94BB1D6EC1002319F0013009F490 -:102B700069C189830E94BE1D89810AC1112321F088 -:102B8000023008F05FC1FEC001115CC101C1112318 -:102B900021F0002309F4F6C03CC1002309F4F8C079 -:102BA0003EC1872D86958695837090E0009719F039 -:102BB000019761F047C1112321F08C2D972D93705F -:102BC00002C080E090E00E9416133CC1112321F066 -:102BD0008C2D972D937002C080E090E00E942C1302 -:102BE00031C18C2D112319F00E94F71F02C00E94E1 -:102BF0005F200E94E42026C1872D837009F052C017 -:102C0000111120C18C2D829586958770880F880FB1 -:102C10009C2D9F70892E912CA12CB12C082E04C0C4 -:102C2000880C991CAA1CBB1C0A94D2F7C4FE14C0C1 -:102C30000FE010E020E030E0B901A80104C0440F2B -:102C4000551F661F771F8A95D2F7CB01BA01609591 -:102C500070958095909503C060E070E0CB01272DC2 -:102C600026952695237030E02230310569F0233017 -:102C7000310589F0682979298A299B292130310574 -:102C800071F00E94731BDEC0682979298A299B296B -:102C90000E948F1BD7C00E94731BC501B4010E9404 -:102CA000571BD0C0112319F0872D817001C0869564 -:102CB000882309F4C7C08C2D829586958770880F6C -:102CC000880F9C2D9F70892E912CA12CB12C082E41 -:102CD00004C0880C991CAA1CBB1C0A94D2F7C4FE21 -:102CE00014C00FE010E020E030E0B901A80104C0FA -:102CF000440F551F661F771F8A95D2F7CB01BA0183 -:102D0000609570958095909503C060E070E0CB0170 -:102D1000272D269526952370422F50E042305105ED -:102D200069F04330510589F0682979298A299B295E -:102D30004130510571F00E944D1C84C068297929E9 -:102D40008A299B290E94691C7DC00E944D1CC501D7 -:102D5000B4010E94311C76C08C2D90E0FC01E05E35 -:102D6000F109E531F10508F050C0E059FF4F0C942E -:102D70006D250C2D0F70872D8F71112331F00E945E -:102D8000CA1B802F0E9427155DC00E94EB1B802F5D -:102D90000E942E1557C0112339F0011153C0872D01 -:102DA0008F710E94101C4EC0023008F04BC0F7CF4C -:102DB000112339F0872D8F710E94CA1B43C0112344 -:102DC000C9F3872D8F710E94EB1B3CC0112329F0A2 -:102DD000872D8F710E94B51B35C00E94AB1B32C07E -:102DE000112351F0172D1F71812F0E94CA1B63E020 -:102DF000812F0E94DE1C26C081E00E94E71C023069 -:102E000008F182E00E94E71C1DC0112331F000236D -:102E100089F28C2D0E94101415C0002391F28C2D84 -:102E20000E94D8140FC0472D4F706C2DC7010E940F -:102E30002C060E94CF1A06C0472D4F706C2DC7017B -:102E40000E94600BDD20F9F00E94DA1C80FD1BC09F -:102E5000F70112820E94D41C0E94CA1BC7010E9463 -:102E600052170E94D41C0F90DF91CF911F910F91A8 -:102E7000FF90EF90DF90CF90BF90AF909F908F909A -:102E80007F900C94EB1B0F90DF91CF911F910F91CE -:102E9000FF90EF90DF90CF90BF90AF909F908F907A -:102EA0007F9008950F931F93CF93DF93EC01888158 -:102EB00099812B813C81232BB9F09F3F11F48F3FE7 -:102EC00099F0CE010E94F107882371F06881798121 -:102ED0008A810E94D01C8C010E94851C0E944C1B80 -:102EE000B801CE010E943515DF91CF911F910F914E -:102EF00008950E94A81D0E94B81D0E947D1D0E9479 -:102F0000D21D0E9495210E94E42080E090E00E9462 -:102F1000161380E090E00C942C130E94981D0C94E2 -:102F200079170E94C51C292F22952F7030E02C3074 -:102F300031054CF42A3031056CF42250310922302D -:102F40003105A8F407C02C30310569F02F30310568 -:102F500051F00DC0803F69F018F4803E40F409C084 -:102F6000843F29F406C093FB882780F9089580E008 -:102F7000089581E00895CF93DF9300D000D01F9291 -:102F8000CDB7DEB70F900F900F900F900F90DF919D -:102F9000CF910895CF93DF9300D000D000D0CDB76C -:102FA000DEB726960FB6F894DEBF0FBECDBFDF9119 -:102FB000CF9108951F93CF93DF93C091860116E0C0 -:102FC00080918701C81799F0D0E01C9FF0011D9FE8 -:102FD000F00D1124E857FE4F4081518162817381C9 -:102FE000848195810E94CA172196C770E9CFDF912D -:102FF000CF911F9108954091B8015091B90160910E -:10300000BA017091BB018091BC019091BD010C94FB -:10301000CA178091BD0182958F7009F054C08091CC -:10302000BA01882309F44FC080918601A0918701DD -:103030006091B8017091B9014091BB015091BC0100 -:10304000B6E08A1709F43FC090E041155105C1F17F -:103050007F3F11F46F3FA1F1B89FF001B99FF00DD0 -:103060001124E857FE4F218172132AC02081621378 -:1030700027C02281211124C02381348124173507E0 -:1030800010F421503109241B350B283C3105C0F4C4 -:103090002091BD012F7020612093BD0126E0289F63 -:1030A000F001299FF00D1124E357FE4F80818F70AE -:1030B0008061808388EB91E00E9452170C94DA17AC -:1030C00001968770BECF0895CF92DF92EF92FF9264 -:1030D0000F931F93CF93DF93CDB7DEB762970FB6F1 -:1030E000F894DEBF0FBECDBF8C0185E0F801DE0194 -:1030F0001D9601900D928A95E1F7D8014C91119699 -:103100005C91119712966C9112971396CD90DC906A -:1031100014973091B8017091B9018091BB019091E1 -:10312000BC01009709F46BC17F3F19F43F3F09F4DC -:1031300066C1E090BA01EE2009F4C0C02091BD0143 -:10314000C816D90628F0F601E81BF90BCF0104C018 -:10315000809590958C0D9D1DFF24F394883C9105DE -:1031600078F0F12C207F09F0C6C07C2DD98AC88A5E -:1031700089890E94BB1788EB91E00E945217B1C069 -:10318000822F807F09F046C0751314C0341312C01B -:10319000611110C02F7020612093BD010E94FB17A8 -:1031A00088EB91E00E9452178091BD01D8011596DD -:1031B0008C932EC0CD2819F15F3F11F44F3FF9F0E9 -:1031C000F62E61111CC0809186012091870136E0A6 -:1031D000821709F45AC090E0389FF001399FF00D32 -:1031E0001124E857FE4F7181571306C070814713B1 -:1031F00003C07281711103C001968770E9CFF62E6A -:10320000662309F418C18091BD0181608093BD01DE -:10321000F12C11C1751308C0341306C0611104C02C -:103220008091BD01D801C3C04D875E878D859E8585 -:103230006A8B0E9491176A898823E1F16623D1F194 -:103240002091BD01822F82958F7090E0029774F0DB -:103250008091B8019091B90198878F831986DB8698 -:10326000CA862C87CE0107960E94521786E0F80185 -:10327000A8EBB1E001900D928A95E1F70E94091840 -:103280000E94FB17FF24F394D6C04D875E878D857F -:103290009E850E94C51C292F22952F7030E0223078 -:1032A00031050CF0BCC09F7009F0B6C0805E88305C -:1032B00008F4C1C0C8010E945217E4CFC816D9064D -:1032C00008F453C0F601E81BF90BCF01883C9105C7 -:1032D00008F450C0F12C7C2DD98AC88A89890E94B3 -:1032E000BB17E8EBF1E086E0DF011D928A95E9F774 -:1032F0000E94FB17A0C0751314C0341312C06111D3 -:1033000010C08091BD01F8018583C8010E94521749 -:1033100086E0E8EBF1E0DF011D928A95E9F7FE2CEB -:103320008AC04D875E878D859E856A8B0E94911726 -:103330006A89882309F4BECF662309F4BBCF2091A4 -:10334000BD01822F82958F7090E002970CF48ECF92 -:103350008091B8019091B9019A8389831B82DD82A3 -:10336000CC822E83CE0101967FCF809590958C0DD7 -:103370009D1DACCFF62E662309F49CCF75132EC08D -:1033800034132CC02091BD0120FD1FC0822F8295D7 -:103390008F70D9F0D80115962C9315978F3049F07E -:1033A0008F5F982F9295907F822F8F70892B159623 -:1033B0008C93C8010E94521786E0F801A8EBB1E097 -:1033C00001900D928A95E1F793CF86E0F801A8EB82 -:1033D000B1E001900D928A95E1F72DC04D875E878F -:1033E0008D859E850E949117811140CF8091BD01EE -:1033F00081608093BD01C8010E9452171CC06623E2 -:1034000009F458CF4D875E878D859E850E94911760 -:10341000882309F44FCF2ACF811148CF0CC0243024 -:1034200031050CF047CF9F7009F440CFF80195812A -:10343000907F09F03BCF8F2D62960FB6F894DEBFD8 -:103440000FBECDBFDF91CF911F910F91FF90EF90F5 -:10345000DF90CF9008951F93CF93DF93CDB7DEB762 -:103460002C970FB6F894DEBF0FBECDBF4F835887A1 -:1034700069877A878B879C87CE0107960E9464189C -:10348000882369F08F8198852A853B85232BF1F16C -:103490009F3F09F063C08F3F09F060C037C086E0EE -:1034A000FE013796DE01119601900D928A95E1F7A3 -:1034B0006F817885EA85FB85309741F17F3F11F474 -:1034C0006F3F21F12091870130E0C901019687709B -:1034D00099274091860150E08417950709F447C069 -:1034E00069837A83FD83EC8396E0929FD001939F5A -:1034F000B00D1124A857BE4FFE01319601900D92D8 -:103500009A95E1F7809387010E94DA1716E080917F -:103510008601909187018917C1F1189FC00111247C -:1035200088579E4F0E946418882379F1E0918601A4 -:103530001E9FF0011124E857FE4F408151816281A6 -:103540007381848195810E94CA178091860190E0E1 -:1035500001968770992780938601D9CF4F8158852E -:1035600069857A858B859C850E94CA17CFCF0E947A -:103570008D171092870110928601E8EBF1E086E04A -:10358000DF011D928A95E9F7C1CF2C960FB6F8940A -:10359000DEBF0FBECDBFDF91CF911F910895EF9297 -:1035A000FF920F931F93CF93DF938C01009709F441 -:1035B0006CC0F12CEE24E394E8012196F80184918B -:1035C000843740F4843008F051C0813081F082307B -:1035D00019F15BC0853709F444C0A8F19CE7980F46 -:1035E000903708F052C08F770E94D81441C00E5F08 -:1035F0001F4FFE01C49180E28C0F883048F4C770E1 -:103600008E2D01C0880FCA95EAF70E94AB1D14C029 -:103610008C2F0E9410142DC00E5F1F4FFE01C4910D -:1036200080E28C0F883058F4C7708E2D01C0880F4F -:10363000CA95EAF70E94B11D0E94D21D1AC08C2FB4 -:103640000E94D81416C00E5F1F4FFE01C491CC23F8 -:1036500081F08FE99FE00197F1F700C00000C150B1 -:10366000F6CF0E5F1F4FFE01F49003C00E941014AE -:103670008E018F2D882309F49FCFEFE9FFE031976A -:10368000F1F700C000008150F5CFDF91CF911F917D -:103690000F91FF90EF90089508956093C201709389 -:1036A000C3018093C4019093C5010C9479170F93C3 -:1036B0001F930091C2011091C3012091C401309168 -:1036C000C501DC01CB01802B912BA22BB32B809366 -:1036D000C2019093C301A093C401B093C5011F918F -:1036E0000F910C9479170F931F930091C2011091C1 -:1036F000C3012091C4013091C501DC01CB018023BD -:103700009123A223B3238093C2019093C301A0937A -:10371000C401B093C5011F910F910C9479170F93B9 -:103720001F930091C2011091C3012091C4013091F7 -:10373000C501DC01CB0180279127A227B327809305 -:10374000C2019093C301A093C401B093C5011F911E -:103750000F910C9479171092BE011092BF01109234 -:10376000C0011092C1010C94791741E050E060E073 -:1037700070E004C0440F551F661F771F8A95D2F76B -:103780004093BE015093BF016093C0017093C1018B -:103790000C94791741E050E060E070E004C0440F01 -:1037A000551F661F771F8A95D2F78091BE019091B1 -:1037B000BF01A091C001B091C101482B592B6A2BC8 -:1037C0007B2B4093BE015093BF016093C001709367 -:1037D000C1010C94791741E050E060E070E004C052 -:1037E000440F551F661F771F8A95D2F74095509555 -:1037F000609570958091BE019091BF01A091C0012C -:10380000B091C101482359236A237B234093BE0111 -:103810005093BF016093C0017093C1010C9479175C -:1038200041E050E060E070E004C0440F551F661FA7 -:10383000771F8A95D2F78091BE019091BF01A09128 -:10384000C001B091C101482759276A277B274093BF -:10385000BE015093BF016093C0017093C1010C94ED -:1038600079170F931F930091BE011091BF01209112 -:10387000C0013091C101DC01CB01802B912BA22B27 -:10388000B32B8093BE019093BF01A093C001B0936E -:10389000C1011F910F910C9479170F931F93009101 -:1038A000BE011091BF012091C0013091C101DC0126 -:1038B000CB0180239123A223B3238093BE01909355 -:1038C000BF01A093C001B093C1011F910F910C944F -:1038D00079170F931F930091BE011091BF012091A2 -:1038E000C0013091C101DC01CB0180279127A227C3 -:1038F000B3278093BE019093BF01A093C001B09302 -:10390000C1011F910F910C9479170895CF92DF9206 -:10391000EF92FF920F931F93CF93DF938C01C09090 -:10392000C201D090C301E090C401F090C501809124 -:10393000BE019091BF01A091C001B091C101C82A00 -:10394000D92AEA2AFB2ACFE1D0E0D701C6010C2E02 -:1039500004C0B695A795979587950A94D2F780FFEE -:1039600006C0B8018C2F0E94DF09019721F421972E -:1039700060F780E001C08C2FDF91CF911F910F91F4 -:10398000FF90EF90DF90CF900895CF93DF93EC01FD -:103990000E94861CBE010E94DF09DF91CF9108952D -:1039A000CB010E94C51C08958091C601859585951F -:1039B000859508958091C6018770089598E0899F44 -:1039C00090011124262B2093C6010C94CA1B209130 -:1039D000C601809582238093C601982F977069F461 -:1039E00030E0482F552747FD50952417350729F01B -:1039F0008595859585950C94EB1B08959091C6014E -:103A0000977081E009F480E0089590910C0199236A -:103A100021F090910D01911109C020910E0130917A -:103A20000F01F90132969FEF40E01FC0982F969545 -:103A3000969596959F3050F5E0910E01F0910F010B -:103A4000E90FF11D877021E030E0A90102C0440FA9 -:103A5000551F8A95E2F7CA019181892B81830895C8 -:103A60009F3F39F04F5F4E3041F051915813F8CFDE -:103A70000DC05111F7CF942FF5CF9F3F39F0F901C9 -:103A8000E90FF11D97FDFA958283089508959091AD -:103A90000C01992321F090910D01911109C0209101 -:103AA0000E0130910F01F9013296205F3F4F1FC088 -:103AB000982F9695969596959F30F0F4E0910E018B -:103AC000F0910F01E90FF11D877021E030E0A901AD -:103AD00002C0440F551F8A95E2F7CA018095918173 -:103AE0008923818308953196E217F30729F09081A5 -:103AF0009813F9CF1082F7CF089581E090E0E0911C -:103B00000E01F0910F01E80FF91F1082019680312C -:103B10009105A9F708959091DA01892B8093DA0134 -:103B2000089580959091DA0189238093DA010895B0 -:103B30001092DA0108959091D901892B8093D901CF -:103B4000089580959091D90189238093D901089592 -:103B50001092D90108959091D801892B8093D801B2 -:103B6000089580959091D80189238093D801089574 -:103B70001092D80108958093C70108951092C7014B -:103B8000089580910E0190910F01FC0131969C01E6 -:103B9000205F3F4F80E0919191118F5FE217F30713 -:103BA000D1F70895E0910E01F0910F018091DA01B3 -:103BB0008083E0910E01F0910F0190818091D901F5 -:103BC000892B8083E0910E01F0910F01908180910B -:103BD000D801892B80838091C701882361F0E0910F -:103BE0000E01F0910F019081892B80830E94C11DED -:103BF00081111092C70180910E0190910F010C94D8 -:103C0000001320E0009739F0AC01415051098423A2 -:103C100095232F5FF7CF822F0895CF92DF92EF92F7 -:103C2000FF926C01EE24FF24C114D104E104F104DD -:103C300021F0C701B60120E101C020E0C72ED82E37 -:103C4000E92EFF24C114D104E104F10419F0285F26 -:103C5000C701B6016B017C0154E0F694E794D79458 -:103C6000C7945A95D1F7C114D104E104F10419F0B5 -:103C70002C5FC701B6016B017C0142E0F694E7942A -:103C8000D794C7944A95D1F7C114D104E104F10443 -:103C900019F02E5FC701B601DC01CB01B695A795DF -:103CA00097958795892B8A2B8B2B09F02F5F822F75 -:103CB000FF90EF90DF90CF9008958091F4018430D1 -:103CC00021F11092DC0120E488E190E00FB6F89435 -:103CD000A895809360000FBE2093600080E00E9452 -:103CE000F10B83B7817F846083BF83B7816083BF1B -:103CF0007894889583B78E7F83BF88E10FB6F89458 -:103D000080936000109260000FBE089508950E9495 -:103D10004F040E9462040E94861E0E94570591E093 -:103D2000811101C090E0892F08950E948D170E9493 -:103D3000F4120C94F10B82E084BD93E095BD9AEFF0 -:103D400097BD80936E0008952FB7F8948091DD01A0 -:103D50009091DE01A091DF01B091E0012FBF0895A5 -:103D6000CF92DF92EF92FF920F931F932FB7F894A9 -:103D70004091DD015091DE016091DF017091E00121 -:103D80002FBF6A017B01EE24FF248C0120E030E08C -:103D9000C016D106E206F30610F4415051099A010B -:103DA000281B390BC9011F910F91FF90EF90DF90F5 -:103DB000CF9008951F920F920FB60F9211248F93F8 -:103DC0009F93AF93BF938091DD019091DE01A0910D -:103DD000DF01B091E0010196A11DB11D8093DD01CD -:103DE0009093DE01A093DF01B093E001BF91AF910A -:103DF0009F918F910F900FBE0F901F9018950E946A -:103E0000F10FF8942FEF87EA91E62150804090401F -:103E1000E1F700C0000087E090EBDC018093FD013A -:103E20009093FE01A093FF01B09300029CE088E113 -:103E30000FB6F894A895809360000FBE9093600031 -:103E4000FFCF0E94591F811102C00E943F1F0E9494 -:103E5000641F8093DB010E946C1F90E09093EF0140 -:103E60008093EE0187FB882780F980930D010E94E3 -:103E7000681F682F70E080E090E00C944D1B6DEEA1 -:103E80007EEF80E090E00E94A72560E082E090E075 -:103E90000E94952560E083E090E00E94952560E017 -:103EA00084E090E00E94952560E085E090E00C942D -:103EB000952580E090E00E948F2521E08D3E9E4F69 -:103EC00009F020E0822F089582E090E00C9487258D -:103ED00083E090E00C94872584E090E00C948725A3 -:103EE000682F84E090E00C9495258091E30180FF99 -:103EF0000BC06091130185E0689FB0011124759596 -:103F00006795759567952BC081FF09C06091130176 -:103F100085E0689FB00111247595679520C082FFE8 -:103F200007C06091130185E0689FB001112417C09C -:103F30009091E4019923D1F060911201961788F7CE -:103F40002091130185E0289F90011124929FA001E8 -:103F5000939F500D112470E0CA010E9459256038CA -:103F6000710540F46115710539F002C065E070E03B -:103F7000862F08958FE7089581E008958091E301E9 -:103F800080FF08C06091110170E075956795759587 -:103F9000679521C081FF06C06091110170E07595A1 -:103FA000679519C082FF04C06091110170E010C0D4 -:103FB0009091E4019923C1F0609110019617A0F748 -:103FC00080911101899FC001112470E00E94592540 -:103FD0006038710528F46115710521F0862F089568 -:103FE0008FE7089581E0089561E070E0F4CF803FAD -:103FF00021F40E94751F819504C0813F29F40E941D -:10400000751F8093E7010895823F21F40E94751F78 -:10401000819504C0833F29F40E94751F8093E601B7 -:104020000895893F19F40E94BE1F05C08A3F31F4EC -:104030000E94BE1F81958093E80108958B3F21F473 -:104040000E94BE1F819504C08C3F29F40E94BE1FB0 -:104050008093E9010895843F21F48091E501816016 -:1040600017C0853F21F48091E501826011C0863F31 -:1040700021F48091E50184600BC0873F21F4809199 -:10408000E501886005C0883F31F48091E5018061D9 -:104090008093E50108958D3F21F48091E3018160D3 -:1040A0000BC08E3F21F48091E301826005C08F3FF9 -:1040B00029F48091E30184608093E3010895803FB7 -:1040C00039F48091E70187FF6CC01092E70169C065 -:1040D000813F29F48091E7011816BCF362C09091EA -:1040E000E601823F29F497FF5CC01092E60159C0B7 -:1040F000833F19F41916CCF354C0893F41F48091E1 -:10410000E80118160CF04DC01092E8014AC08A3F31 -:1041100029F48091E80187FF44C0F6CF8B3F39F442 -:104120008091E90187FF3DC01092E9013AC08C3FC0 -:1041300029F48091E9011816BCF333C0843F21F4BF -:104140008091E5018E7F17C0853F21F48091E501C4 -:104150008D7F11C0863F21F48091E5018B7F0BC0DC -:10416000873F21F48091E501877F05C0883F31F4C6 -:104170008091E5018F7E8093E50113C08D3F21F48E -:104180008091E3018E7F0BC08E3F21F48091E3018B -:104190008D7F05C08F3F29F48091E3018B7F809351 -:1041A000E3018091E60181110EC08091E701811148 -:1041B0000AC08091E801811106C08091E901811156 -:1041C00002C01092E401089585EE91E00E940B1365 -:1041D0000E94A41E9093E2018093E10108951F9331 -:1041E000CF93DF938091E1019091E2010E94B01E94 -:1041F000AC019091E401992321F02091140130E069 -:1042000006C0209115018AE0289F900111244217D1 -:10421000530708F486C08091E601C091E701D09170 -:10422000E8011091E901811107C0C11176C0D111D7 -:1042300074C0111172C075C09F3F19F09F5F9093B9 -:10424000E401181624F40E94751F8093E601809102 -:10425000E60187FF05C00E94751F81958093E601E6 -:104260001C1624F40E94751F8093E7018091E701DA -:1042700087FF05C00E94751F81958093E7016091BB -:10428000E601662339F1C091E701CC2319F17727C4 -:1042900067FD7095872F972F0E946A2423E333E3ED -:1042A00043E35FE30E94CE240E9437246093E6013B -:1042B0006C2F772767FD7095872F972F0E946A24B0 -:1042C00023E333E343E35FE30E94CE240E943724D9 -:1042D0006093E7011D1624F40E94BE1F8093E8013D -:1042E0008091E80187FF05C00E94BE1F81958093E1 -:1042F000E801111624F40E94BE1F8093E901809109 -:10430000E90187FF05C00E94BE1F81958093E901E6 -:10431000DF91CF911F910C94E4209F3F09F08ECF45 -:1043200096CFDF91CF911F910895E5EEF1E085E002 -:10433000DF011D928A95E9F71092E4011092E301E2 -:104340000895833081F128F4813059F08230D1F022 -:104350000895853009F449C0B8F1863009F456C093 -:10436000089580911501262F30E0280F311D2F3F31 -:10437000310524F4680F6093150108958FEF809341 -:104380001501089580911401262F30E0280F311D6A -:104390002F3F310524F4680F6093140108958FEFC7 -:1043A00080931401089580911301262F30E0280F87 -:1043B000311D2F3F310524F4680F609313010895D8 -:1043C0008FEF80931301089580911201262F30E022 -:1043D000280F311D2F3F310524F4680F609312011F -:1043E00008958FEF80931201089580911101262F77 -:1043F00030E0280F311D2F3F310524F4680F609302 -:10440000110108958FEF809311010895809110019B -:10441000262F30E0280F311D2F3F310524F4680F7F -:104420006093100108958FEF8093100108958330F9 -:1044300011F128F4813049F0823091F008958530EF -:1044400081F120F18630C1F108958091150168173E -:1044500020F4861B8093150108951092150108958C -:1044600080911401681720F4861B8093140108952D -:1044700010921401089580911301681720F4861B8F -:1044800080931301089510921301089580911201F1 -:10449000681720F4861B8093120108951092120170 -:1044A000089580911101681720F4861B80931101F3 -:1044B000089510921101089580911001681720F459 -:1044C000861B8093100108951092100108950F9398 -:1044D0001F938D3109F471C008F045C0803109F493 -:1044E00085C008F5873009F46FC068F4863009F09C -:1044F000ADC08091DB01817F8E7F8093DB0181E005 -:104500008093EB01A4C08B3009F49EC08E3009F07B -:104510009DC08091DB0182FB222720F991E0922748 -:1045200090FB82F96CC0863109F48EC060F4813151 -:1045300009F08CC00E948D1790910D0181E08927B0 -:1045400080930D0181C0893109F47EC08B3109F05F -:104550007DC08091DB0181FB222720F991E0922729 -:1045600090FB81F94CC0853309F466C048F487326A -:1045700009F462C008F44FC0893209F45DC066C016 -:10458000833438F48A3308F044C0883309F45CC0BB -:104590005DC0833409F450C0883409F057C00E94CC -:1045A0008D170FEF13ED20E3015010402040E1F78D -:1045B00000C000000E94FF1E47C00E94F1230E941D -:1045C000F4120E94F10B40C09091DB01892F80957D -:1045D000817080FB90F929F0966098609093DB01E0 -:1045E00036C0997F977F9093DB012EC08091DB01CD -:1045F00083FB222720F991E0922790FB83F9809397 -:10460000DB01992309F18091DB0181608093DB015B -:104610001BC0895301C08D5141E050E060E070E063 -:104620008A019B0104C0000F111F221F331F8A95AE -:10463000D2F7C901B80104C061E070E080E090E009 -:104640000E944D1B0E948D1781E001C080E01F91E8 -:104650000F91089580E0089580E008958E518A308A -:1046600030F4E82FF0E0E65DFE4F8081089580E0B1 -:104670000895CF93C82F8091EB01813079F018F025 -:104680008230E9F186C0E0910E01F0910F01808146 -:10469000813169F0823209F07EC009C0E0910E01DB -:1046A000F0910F018081813111F0823261F48C2F01 -:1046B0000E942A23811104C08C2F0E9467221DC0F2 -:1046C00081E090E01AC08C2F0E942C23811114C02D -:1046D000C43179F048F4CB3079F0C03109F05FC0D3 -:1046E00082E08093EB0108C0C93219F0C83321F091 -:1046F00056C01092EB0153C081E0817052C0C932A4 -:1047000081F110F5C43169F1A8F4C73009F045C052 -:104710008AE08093150194E19093140193E09093C3 -:1047200013018093120188E08093110188E2809345 -:10473000100133C082EE8C0F863078F58C2F0E94EA -:104740002E238093EA0129C0CE34E9F020F4CB3443 -:1047500021F56AE013C0C13579F0C235F1F461E0AA -:104760000DC08091EA01882319F01092EA0115C06A -:1047700081E08093EB0115C061E006C08091EA0101 -:104780000E94A1210AC06AE08091EA010E941722DA -:1047900004C01092EB0180E004C081E002C080E020 -:1047A000ACCFCF910895E1E8F0E08081886080830C -:1047B0008081816080838FB7F89493E09093890023 -:1047C00090ED909388008FBF0895EFE6F0E0808130 -:1047D000826080830895EFE6F0E080818D7F8083A2 -:1047E0000895EFE6F0E0908182E0892780830895C4 -:1047F0001F920F920FB60F9211242F933F934F9356 -:104800005F936F937F938F939F93AF93BF93EF9338 -:10481000FF938091EC019091ED0101969093ED0151 -:104820008093EC01811103C082E00E94F10BE091C2 -:10483000ED01E695E695F0E0EA54F94FE4918091B8 -:10484000EC018E1303C080E00E94F10BFF91EF9109 -:10485000BF91AF919F918F917F916F915F914F9198 -:104860003F912F910F900FBE0F901F90189504D07D -:104870006894B1118DC0089570D088F09F5790F062 -:10488000B92F9927B751A0F0D1F0660F771F881F75 -:10489000991F1AF0BA95C9F712C0B13081F077D0DC -:1048A000B1E0089574C0672F782F8827B85F39F07A -:1048B000B93FCCF3869577956795B395D9F73EF4D4 -:1048C00090958095709561957F4F8F4F9F4F08957C -:1048D000E89409C097FB3EF490958095709561959A -:1048E0007F4F8F4F9F4F9923A9F0F92F96E9BB2750 -:1048F0009395F695879577956795B795F111F8CFCC -:10490000FAF4BB0F11F460FF1BC06F5F7F4F8F4F36 -:104910009F4F16C0882311F096E911C0772321F02C -:104920009EE8872F762F05C0662371F096E8862FC4 -:1049300070E060E02AF09A95660F771F881FDAF71B -:10494000880F9695879597F9089557FD9058440FCD -:10495000551F59F05F3F71F04795880F97FB991FDE -:1049600061F09F3F79F0879508951216130614069B -:10497000551FF2CF4695F1DF08C016161706180628 -:10498000991FF1CF86957105610508940895E89403 -:10499000BB2766277727CB0197F908950BD078C0FE -:1049A00069D028F06ED018F0952309F05AC05FC086 -:1049B0001124EECFCADFA0F3959FD1F3950F50E0FD -:1049C000551F629FF001729FBB27F00DB11D639FC1 -:1049D000AA27F00DB11DAA1F649F6627B00DA11D67 -:1049E000661F829F2227B00DA11D621F739FB00D0D -:1049F000A11D621F839FA00D611D221F749F33277D -:104A0000A00D611D231F849F600D211D822F762F15 -:104A10006A2F11249F5750408AF0E1F088234AF012 -:104A2000EE0FFF1FBB1F661F771F881F915050405E -:104A3000A9F79E3F510570F014C0AACF5F3FECF379 -:104A4000983EDCF3869577956795B795F795E7954A -:104A50009F5FC1F7FE2B880F911D9695879597F95B -:104A6000089597F99F6780E870E060E008959FEFF0 -:104A700080EC089500240A941616170618060906F5 -:104A8000089500240A9412161306140605060895C4 -:104A9000092E0394000C11F4882352F0BB0F40F44C -:104AA000BF2B11F460FF04C06F5F7F4F8F4F9F4F8C -:104AB000089597FB072E16F4009407D077FD09D0D0 -:104AC0000E94732507FC05D03EF4909581959F4F79 -:104AD0000895709561957F4F0895EE0FFF1F059023 -:104AE000F491E02D0994AA1BBB1B51E107C0AA1F3A -:104AF000BB1FA617B70710F0A61BB70B881F991F7F -:104B00005A95A9F780959095BC01CD010895F99922 -:104B1000FECF92BD81BDF89A992780B50895A8E18E -:104B2000B0E042E050E00C94AF25262FF999FECF7B -:104B300092BD81BDF89A019700B4021639F01FBAF0 -:104B400020BD0FB6F894FA9AF99A0FBE089501960F -:104B5000272F0E9496250C949525DC01CB01FC01A2 -:104B6000F999FECF06C0F2BDE1BDF89A319600B4C6 -:0E4B70000D9241505040B8F70895F894FFCFD1 -:104B7E000220F30B810C5E0C2A0CF60B0101C8010E -:104B8E0028080A03140A404D363976062906F3051D -:104B9E00BA054D0566057F05980501020304050655 -:044BAE0007080900EB -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/workman_osx_mdw/keymap.c b/keyboards/ergodox_ez/keymaps/workman_osx_mdw/keymap.c index c9c0f4c27..8effa53b2 100644 --- a/keyboards/ergodox_ez/keymaps/workman_osx_mdw/keymap.c +++ b/keyboards/ergodox_ez/keymaps/workman_osx_mdw/keymap.c @@ -1,7 +1,7 @@ #include "ergodox_ez.h" #include "debug.h" #include "action_layer.h" -// README +// 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. diff --git a/keyboards/ergodox_ez/keymaps/zweihander-osx/compiled.hex b/keyboards/ergodox_ez/keymaps/zweihander-osx/compiled.hex deleted file mode 100644 index 56a19987f..000000000 --- a/keyboards/ergodox_ez/keymaps/zweihander-osx/compiled.hex +++ /dev/null @@ -1,1173 +0,0 @@ -:100000000C94D3020C9417030C9417030C9417034D -:100010000C9417030C9417030C9417030C941703F8 -:100020000C9417030C9417030C94DA0D0C94AC0E7B -:100030000C9417030C9417030C9417030C941703D8 -:100040000C9417030C94B6220C9417030C9417030A -:100050000C9417030C94491C0C9417030C9417036D -:100060000C9417030C9417030C9417030C941703A8 -:100070000C9417030C9417030C9417030C94170398 -:100080000C9417030C9417030C9417030C94170388 -:100090000C9417030C9417030C9417030C94170378 -:1000A0000C9417030C9417030C941703190F3B0FB0 -:1000B00029103B0F2910800FA30F2910F80F0B10E8 -:1000C000DA12DA12091309133F135F139014901414 -:1000D0006A1390141A141A148114901490148A1428 -:1000E0002714271427142714271427142714271438 -:1000F0002714271427142714271427142714271428 -:10010000391446144D1454145E14750A01E2012C7E -:10011000022C02E2746401160216010402040109B1 -:1001200002090104020401150215010C020C012848 -:10013000022800750A01E2012C022C02E27464011B -:10014000170217010802080115021501100210011B -:100150000C020C0111021101040204010F020F0133 -:1001600028022800750A01E2012C022C02E27464C4 -:100170000105020501050205010802080107020741 -:10018000010C020C011702170128022800750A0150 -:10019000E30116021602E301E3012B022B02E30145 -:1001A000E30115021502E300750A01E301160216C8 -:1001B00002E301E3012B022B02E3000000F0A12E79 -:1001C000004C002A00E100E00000001E00140004C2 -:1001D000001D00E200E2001F001A0016001B00E3F1 -:1001E000002A00200008000700060050002C002113 -:1001F000001500090019004F004B00220017000AEB -:1002000000050000003500015401520000E3000029 -:10021000003400015401520000E3000000290023D3 -:10022000001C000B00110000002A00240018000D23 -:1002300000100052004E0025000C000E0036005148 -:10024000002800260012000F0037002F002B002787 -:10025000001300334238713000E0002D00310034CB -:1002600078E5002C00000001000100010001000100 -:100270000000003A002F0036020100010001003B9F -:1002800000300037020100010001003C002F02266F -:10029000020100010001003D0030022702010001BF -:1002A0000001003E003402340001000000010001A2 -:1002B0000001000000010000000100010001000039 -:1002C000000100000001003F0038002D0024020062 -:1002D0000001004000240021001E0027004A0041C8 -:1002E00000250022001F00370001004200260023E5 -:1002F00000200050000100430025022E022E004F76 -:10030000004D004400450001000100010000000113 -:10031000000100010001000100000069000100016E -:10032000000100010001006A000100043001000129 -:1003300000010001004B004E00010001000100011E -:100340000001300100010001004A000100033001FA -:100350000002300000010001000100000001000067 -:100360000001001408010000000100000001001A53 -:100370000830082F082C0200000100350A520C50EA -:10038000002C00A9000100350852005100AC00AA61 -:100390000019080100510C4F00AB00A8000608012D -:1003A0000001000100010001001B08A5000100AED2 -:1003B0000001000100000016034500720067006F95 -:1003C0000044006F007800200045005A000000162D -:1003D000034500720067006F0044006F0078002042 -:1003E0000045005A0000000403090409026D0004DE -:1003F0000100A0FA09040000010301010009211114 -:10040000010001223F000705810308000A090401D9 -:10041000000103010200092111010001224D000722 -:1004200005820308000A0904020001030000000914 -:1004300021110100012236000705830308000A0983 -:100440000403000103000000092111010001223909 -:1004500000070584031000011201100100000008CC -:10046000EDFE071301000102000105010906A101CB -:10047000050719E029E71500250195087501810296 -:100480000508190129059505750191029501750366 -:100490009101050719002977150025019578750147 -:1004A0008102C005010980A101850216010026B75D -:1004B000001A01002AB700751095018100C0050CD3 -:1004C0000901A1018503160100269C021A01002AD8 -:1004D0009C02751095018100C005010902A1010966 -:1004E00001A10005091901290515002501950575CA -:1004F000018102950175038101050109300931155A -:1005000081257F95027508810609381581257F951B -:100510000175088106050C0A38021581257F9501B1 -:1005200075088106C0C005010906A101050719E08B -:1005300029E71500250195087501810295017508C7 -:10054000810105081901290595057501910295019B -:10055000750391010507190029FF150025FF950670 -:1005600075088100C00000000000000000000000CD -:10057000010204060A0F17202C3A4A5D71879DB3C9 -:10058000C7DAE9F5FCFFFCF5E9DAC7B39D87715DD1 -:100590004A3A2C20170F0A0604020100000000004E -:1005A00000000000000011241FBECFEFDAE0DEBF24 -:1005B000CDBF04B603FE24C08091FB019091FC01E5 -:1005C000A091FD01B091FE018730904BA740B04B48 -:1005D000B9F41092FB011092FC011092FD011092EF -:1005E000FE0114BE84B7877F84BF88E10FB6F894FC -:1005F00080936000109260000FBEE0E0FFE3099579 -:1006000011E0A0E0B1E0EAEFF8E402C005900D923D -:10061000A433B107D9F711E0A4E3B1E001C01D9202 -:10062000AB3FB107E1F70E941E0B0C947B240C94A6 -:1006300000001092B9008AE08093B800089594EA0F -:100640009093BC009091BC0097FFFCCF9091B900B3 -:10065000987F983021F0903111F081E008958093D7 -:10066000BB0084E88093BC008091BC0087FFFCCF76 -:100670008091B900887F883111F0803471F780E073 -:10068000089584E98093BC008091BC0084FDFCCF78 -:1006900008958093BB0084E88093BC008091BC00E7 -:1006A00087FFFCCF9091B900987F81E0983209F4E0 -:1006B00080E0089584E88093BC008091BC0087FFAF -:1006C000FCCF8091BB00089580910101811115C07C -:1006D00080E40E941F038093010181110CC082E11C -:1006E0000E94490380930101811105C08FEF0E9490 -:1006F0004903809301010E94410384B1807F84B942 -:1007000085B1807F85B98AB1837F8AB98BB1837FB8 -:100710008BB93E98469808950E941F058093010169 -:100720000E94640380B38C7080BB81B3836F81BBF4 -:10073000A5E3B1E0E3E4F1E08EE08E0F11921D92AB -:100740008E13FCCF0C940905BF92CF92DF92EF92EB -:10075000FF920F931F93CF93DF9380910101882322 -:1007600079F0809134018F5F80933401811108C04A -:100770000E941F0580930101811102C00E94B104F3 -:1007800005E311E0C0E0D0E0DD24D39482E0C82E80 -:10079000EE24E394F12CC730D10500F580910101DE -:1007A000811164C080E40E941F03809301018111C4 -:1007B00012C082E10E9449038093010181110BC0A4 -:1007C000C7010C2E01C0880F0A94EAF780950E9499 -:1007D0004903809301010E94410348C0CA30A1F03F -:1007E00028F4C83059F0C93061F005C0CC3089F028 -:1007F00070F0CD3089F0209A289810C0219A29985D -:100800000DC0229A2A980AC0239A2B9807C0529AA0 -:1008100001C0539A5B9802C03E9A469890EA9A9516 -:10082000F1F79FB1799902C082E001C080E0917038 -:100830009D25982B7C9902C084E001C080E0892B23 -:100840007D9902C038E001C030E0832B7E9902C060 -:1008500020E101C020E0822B9FB19095991F99273C -:10086000991F9295990F907E892B0FC0809101015D -:10087000811149C080E40E941F03809301018823F5 -:1008800079F1B12C0E9441038B2DF80190819817CA -:1008900019F08083C09200010E94640321960F5FCB -:1008A0001F4FCE30D10509F076CF8091000188230B -:1008B00061F1815080930001882339F08FE99FE036 -:1008C0000197F1F700C0000020C0A3E4B1E0E5E328 -:1008D000F1E0CF01825F91919D938E13FCCF15C003 -:1008E00083E10E944903809301018111CACF81E411 -:1008F0000E941F03809301018111C3CF0E945A03FC -:10090000B82EB094BFCF80E0C0CF0E94AF0481E08A -:10091000DF91CF911F910F91FF90EF90DF90CF90DB -:10092000BF900895E82FF0E0ED5BFE4F80810895C1 -:1009300008950F931F93CF93DF93C3E4D1E010E0AA -:100940000C2F025F899190E00E946F1B180F0C130F -:10095000F9CF812FDF91CF911F910F9108950C94C2 -:100960009E0556985E9825982D9826982E9827983B -:100970002F988FEF90E09093890080938800909358 -:100980008B0080938A0090938D0080938C00259A31 -:100990002D9A2FEF80E792E0215080409040E1F7C0 -:1009A00000C00000269A2E9A2FEF80E792E0215097 -:1009B00080409040E1F700C00000279A2F9A2FEF67 -:1009C00080E792E0215080409040E1F700C00000B5 -:1009D00025982D982FEF80E792E02150804090409D -:1009E000E1F700C0000026982E982FEF80E792E0F4 -:1009F000215080409040E1F700C0000027982F98D8 -:100A000056985E9825982D9826982E9827982F9876 -:100A1000089589EA8093800089E08093810024987A -:100A20002C983F988AB18F748AB96E98479A8BB187 -:100A3000806B8BB9769A0E94B1040C949D0580E27C -:100A4000809301018091510181110EC00E94190310 -:100A500081E0809351012FEF83ED90E3215080409E -:100A60009040E1F700C0000080E40E941F038093E3 -:100A7000010181112EC00E9449038093010181115F -:100A800028C00E94490380930101811122C08FE395 -:100A90000E9449038093010181111BC00E94410300 -:100AA00080E40E941F0380930101811112C08CE039 -:100AB0000E9449038093010181110BC00E944903E8 -:100AC00080930101811105C08FE30E944903809347 -:100AD00001010E944103809101010895FC016230EF -:100AE000B9F028F4662341F0613061F023C063302F -:100AF000A9F06430C9F01EC082818823D9F088EA49 -:100B000091E0089582818823A9F08DE891E008950D -:100B10008281882379F084E691E008958281882398 -:100B200049F083E391E008958281882319F08AE0F7 -:100B300091E0089580E090E0089508956091BD01EE -:100B40007091BE018091BF019091C0010E947B1BFA -:100B500056985E9825982D9826982E9827982F9825 -:100B6000813019F0823021F00895259A2D9A089548 -:100B7000269A2E9A089581E0089581E008950C94B4 -:100B8000BD0508950F931F93CF93DF938C01FC0154 -:100B9000C081D181CE010E94F419BE010E946B0672 -:100BA000EC01B8010E94BF05882309F48DC0F8014B -:100BB0008281882309F44AC080915D0181111FC0A0 -:100BC000C431F0E5DF0709F051C00E94C10581E0A2 -:100BD00080935D010E94131C90935C0180935B01E4 -:100BE0001092540110925601109255011092580122 -:100BF0001092570110925A011092590165C08091CC -:100C00005B0190915C010E941F1C883C910570F46F -:100C100080915401E82FF0E0EE0FFF1FEB5AFE4FDA -:100C2000D183C0838F5F809354014EC0C43880E568 -:100C3000D80721F0C538D04501F13AC0F8018281CA -:100C4000882341F01092520182E01EC0C438E0E5D2 -:100C5000DE0759F580915201811106C086E20E949B -:100C60007E1186E20E94461282E01CC0C438F0E584 -:100C7000DF0741F3C538D045D9F4F80182818823D4 -:100C800031F01092530180E20E9495121DC08091B4 -:100C90005301811106C087E20E947E1187E20E9403 -:100CA000461280E20E949C120FC0C538D04529F33D -:100CB00081E08093520180935301C801DF91CF916D -:100CC0001F910F910C94BB0580E0DF91CF911F9194 -:100CD0000F910895089596E0799FF001112494E50D -:100CE000899FE00DF11D1124E60FF11DEE0FFF1F8E -:100CF000E154FE4F859194910895880F991FFC014E -:100D0000E55CFF4F859194910895880F991FFC0130 -:100D1000E554FE4F8591949108950F931F93CF93BF -:100D2000DF93EC01811520E3920750F5C11580E2B5 -:100D3000D80708F0C3C0CB3BD10590F4C83AD10521 -:100D400008F06AC0C53AD10508F05BC0C430D105CF -:100D500008F0D0C1219709F0CAC101E010E00AC231 -:100D6000CF3FD10511F008F0C5C1C03FD10508F053 -:100D7000A2C0CE01805E9109089708F4BBC1B7C13B -:100D8000C13090E5D90709F4A2C020F5C0318FE445 -:100D9000D80770F4C11590E4D90708F094C0C115C4 -:100DA00021E3D20708F0A3C1DD278E01106CE2C158 -:100DB000C115D04509F09BC10E94FB148FEF94E34D -:100DC0002CE0815090402040E1F700C000000E94DC -:100DD0006E1CD0C1C11597E5D90758F4C03121E583 -:100DE000D20708F01CC1C43180E5D80708F475C0EB -:100DF0007EC1CE0190578115904108F078C1DF7017 -:100E000073C1C53AD10509F477C1C63AD10509F0D5 -:100E100076C102E810E4AEC1C83AD10509F472C146 -:100E2000C93AD10509F471C1CA3AD10509F470C1B2 -:100E3000CB3AD10509F46FC1CC3AD10509F46EC1A2 -:100E4000CD3AD10509F46DC1C03BD10509F46CC19F -:100E5000CE3AD10509F46BC1CF3AD10509F46AC184 -:100E6000C13BD10509F469C1C23BD10509F468C190 -:100E7000C33BD10509F467C1C43BD10509F466C180 -:100E8000C53BD10509F465C1C63BD10509F464C170 -:100E9000C73BD10509F463C1C83BD10509F462C160 -:100EA000C93BD10509F461C1CA3BD10509F460C150 -:100EB00000E014E45FC18E0110655CC1CE019F703B -:100EC0000E94850658C1DF708E01106A53C180915F -:100ED000DA0181608093DA014DC10E94131E8111F5 -:100EE00002C00E94F91D0E94301E90E09093FB0109 -:100EF0008093FA01C23080E5D80721F48091FA018D -:100F0000816086C0C43090E5D90721F48091FA0150 -:100F100082607EC0C63020E5D20721F48091FA01BC -:100F2000846076C0C83080E5D80719F48091FA0152 -:100F300027C0CA3090E5D90721F48091FA01806179 -:100F400067C0CC3020E5D20721F48091FA0180629D -:100F50005FC0CE3080E5D80721F48091FA0180642B -:100F600057C0C03190E5D90721F48091FA0180681B -:100F70004FC0C23120E5D20729F48091FA01846084 -:100F8000886046C0C33080E5D80721F48091FA011B -:100F90008E7F3EC0C53090E5D90721F48091FA01DB -:100FA0008D7F36C0C73020E5D20721F48091FA0149 -:100FB0008B7F2EC0C93080E5D80719F48091FA01E3 -:100FC00026C0CB3090E5D90721F48091FA018F7EBD -:100FD0001FC0CD3020E5D20721F48091FA018F7D2A -:100FE00017C0CF3080E5D80721F48091FA018F7BBC -:100FF0000FC0C13190E5D90721F48091FA018F77B4 -:1010000007C0C331D04531F48091FA018B7F877FCF -:101010008093FA018091FA010E94341EABC08D2F9B -:1010200099278F70992781309105D9F49E012370FB -:10103000332702C0880F991F2A95E2F79C688E011A -:1010400044E0000F111F4A95E1F700271370802B31 -:10105000912B53E0CC0FDD1F5A95E1F7C076DD27C9 -:101060002FC08230910531F4DC2FCC278E01016F27 -:10107000106A80C08330910569F4CE01837099278E -:1010800001E010E002C0000F111F8A95E2F7C801CD -:101090009C680FC084309105B9F4CE018370992704 -:1010A00001E010E002C0000F111F8A95E2F7C801AD -:1010B0009A6823E0CC0FDD1F2A95E1F7C07ED77038 -:1010C0008C010C2B1D2B56C08530910531F4DC2F83 -:1010D000CC278E01046F106A4DC0069709F04AC0F4 -:1010E000CF71DD27DC2FCC278E01106243C000E0DA -:1010F00010E040C08E013EC001E810E43BC003E8B0 -:1011000010E438C002EE14E435C009EE14E432C035 -:101110000AEE14E42FC005EB14E42CC006EB14E433 -:1011200029C007EB14E426C00CEC14E423C00DEC3A -:1011300014E420C003E815E41DC00AE815E41AC051 -:1011400002E915E417C004E915E414C001E216E44D -:1011500011C003E216E40EC004E216E40BC005E27F -:1011600016E408C006E216E405C007E216E402C071 -:101170000AE216E4C801DF91CF911F910F91089503 -:1011800096E0799FF001112494E5899FE00DF11D0F -:101190001124E60FF11DEE0FFF1FE154FE4F859164 -:1011A0009491803E9105E0F4803C910558F581339F -:1011B000910509F46FC048F48932910509F463C0C0 -:1011C0008A32910509F46DC072C089339105E9F046 -:1011D00082389105D1F08533910509F44DC067C07F -:1011E000833E910581F138F4803E9105B9F0823E4D -:1011F0009105D9F05CC0863E910561F1873E91056D -:10120000A1F155C00E947D0608952091FA0120FDAC -:1012100002C021FF4CC080EE90E049C08091FA01ED -:1012200080FFF9CF89E390E042C08091FA0182FF0C -:101230000EC08091FA0184FF03C080E090E037C0C7 -:1012400083EE90E034C08091FA0182FFF2CF82EE0B -:1012500090E02DC08091FA0183FF0BC08091FA01CC -:1012600084FDEBCF87EE90E022C08091FA0183FFEE -:10127000F5CF86EE90E01BC08091FA0185FF07C094 -:1012800089E290E014C08091FA0185FFF9CF85E3EF -:1012900090E00DC08091FA0186FF07C08AE290E0DD -:1012A00006C08091FA0186FFF9CF81E390E00E94A9 -:1012B0008D06089508950C945A0980916E01089541 -:1012C000CF93DF9300D01F92CDB7DEB79C01809102 -:1012D000F101843019F593E099833B832A8390933D -:1012E000E9008FEF9091E800815095FD06C095EDE3 -:1012F0009A95F1F700008111F5CF8091E80085FF04 -:101300000DC040E050E063E070E0CE0101960E9425 -:10131000CA0B8091E8008E778093E8000F900F90C1 -:101320000F90DF91CF910895CF93DF9300D01F925C -:10133000CDB7DEB72091F101243021F522E02983D9 -:101340009B838A8383E08093E9008FEF9091E8008C -:10135000815095FD06C095ED9A95F1F70000811139 -:10136000F5CF8091E80085FF0DC040E050E063E0DC -:1013700070E0CE0101960E94CA0B8091E8008E7742 -:101380008093E8000F900F900F90DF91CF91089518 -:101390002091F1012430F1F422E02093E9002FEFB5 -:1013A0003091E800215035FD06C035ED3A95F1F752 -:1013B00000002111F5CF2091E80025FF0BC040E08F -:1013C00050E065E070E00E94CA0B8091E8008E77E3 -:1013D0008093E8000895CF93DF93EC019091F101A1 -:1013E000943009F046C080910C018823D9F0809197 -:1013F0000D018823B9F09093E9008FEF9091E800F8 -:10140000815095FD06C095E19A95F1F70000811194 -:10141000F5CF8091E80085FF2CC040E050E060E10E -:1014200070E017C081E08093E9008FEF9091E800B1 -:10143000815095FD06C095ED9A95F1F70000811158 -:10144000F5CF8091E80085FF14C040E050E068E0EF -:1014500070E0CE010E94CA0B8091E8008E778093E5 -:10146000E80080E1FE01AEE5B1E001900D928A95C1 -:10147000E1F7DF91CF9108958091F001811109C0CA -:101480000E945F0D0E94BC0D8091E20084608093F9 -:10149000E20008951092F001089508950C94A3229B -:1014A0000E94041C0E94A9220E9462100C945B09F5 -:1014B00042E061EC81E00E94D90C42E061EC82E004 -:1014C0000E94D90C42E061EC83E00E94D90C42E119 -:1014D00061EC84E00C94D90C8091F301833009F421 -:1014E00055C030F4813071F0823009F48EC0089517 -:1014F0008A3009F47AC08B3009F460C0893009F071 -:101500009CC020C08091F201813A09F096C0809180 -:10151000E800877F8093E8008091F6019091F701C1 -:10152000892B21F460E18EE591E003C060E080E06A -:1015300090E070E00E94150C8091E8008B7780931A -:10154000E80008958091F201813209F076C080911F -:10155000F6019091F701009719F0039709F06DC01B -:101560008091E800877F8093E8008091E80082FD09 -:1015700005C08091F1018111F8CF5FC08091F10029 -:1015800080936E018091E8008B7753C08091F201C7 -:10159000813A09F052C08091F6019091F701892BB0 -:1015A00009F04BC08091E800877F8093E80080912C -:1015B000E80080FFFCCF80910C0136C08091F201E1 -:1015C0008132D9F58091F6019091F701892BA9F527 -:1015D0008091E800877F8093E8000E940E0D809143 -:1015E000F40180930C010C94FB148091F201813280 -:1015F00021F58091E800877F8093E8000E940E0D1E -:101600008091F50180936F0108958091F201813AF4 -:10161000A1F48091E800877F8093E8008091E80042 -:1016200080FFFCCF80916F018093F1008091E800F2 -:101630008E778093E8000C940E0D089584B7877F11 -:1016400084BF88E10FB6F894809360001092600028 -:101650000FBE90E080E80FB6F894809361009093FD -:1016600061000FBE0E94B1100E945F0D0E94BC0D70 -:101670008091E20084608093E20078940E9442109E -:101680000E94B31082E091E00E945D100E949122BE -:101690008091F101853069F40E94CB1B8091EF01AC -:1016A0008823B1F30E94F61B882391F30E94B40BA8 -:1016B000EFCF0E94B910ECCF292F3327233031050B -:1016C000C9F064F42130310581F02230310509F090 -:1016D00043C08DE690E02BEE33E042C0213231056D -:1016E000F1F02232310541F137C082E190E028E586 -:1016F00034E036C099278130910541F08230910560 -:1017000041F0892B49F5E7EEF3E005C0EFECF3E09B -:1017100002C0E7EBF3E0849190E09F0121C06430C8 -:10172000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081B4 -:10173000318189E090E014C0643070F470E0FB0106 -:10174000EE0FFF1FE65EFE4F20813181FB01EA5E56 -:10175000FE4F808190E004C080E090E020E030E027 -:10176000FA0131832083089580E189BD82E189BD3A -:1017700009B400FEFDCF8091D8008F7D8093D80002 -:101780008091E00082608093E0008091E00081FD24 -:10179000FCCF0895CF92DF92EF92FF920F931F93A9 -:1017A000CF93DF93EC018B016A010E942D0D811113 -:1017B00033C0C114D10439F0F60180819181081B36 -:1017C000190BC80FD91FE12CF12C0115110519F1C6 -:1017D0008091E80085FD16C08091E8008E778093A7 -:1017E000E800C114D10449F0F60180819181E80E2E -:1017F000F91EF182E08285E00FC00E942D0D882342 -:1018000021F30AC089918093F10001501109FFEF83 -:10181000EF1AFF0ADACF80E0DF91CF911F910F918D -:10182000FF90EF90DF90CF9008952091F8013091D4 -:10183000F9012617370748F06115710539F4209131 -:10184000E8002E772093E80001C0B90140E061155F -:101850007105A9F12091F101222309F443C025303B -:1018600009F442C02091E80023FD40C02091E80027 -:1018700022FD32C02091E80020FFE9CF4091F30023 -:101880002091F20030E0342BFC01CF01611571058D -:1018900059F02830310540F481918093F100615076 -:1018A00071092F5F3F4FF1CF41E02830310509F03A -:1018B00040E02091E8002E772093E800C8CF411146 -:1018C000C9CF0AC08091F101882361F0853061F0B1 -:1018D0008091E80083FD0AC08091E80082FFF2CF8A -:1018E00080E0089582E0089583E0089581E00895FE -:1018F0002091F8013091F9012617370748F061155A -:10190000710539F42091E8002E772093E80001C09A -:10191000B901FC0120E06115710591F18091F1019F -:10192000882309F440C0853009F43FC08091E80065 -:1019300083FD3DC08091E80082FD2FC08091E800CA -:1019400080FFE9CF2091F3008091F20090E0922B8C -:101950006115710559F08830910540F42491209368 -:10196000F1003196615071090196F2CF21E008979C -:1019700009F020E08091E8008E778093E800CBCFDB -:101980002111CCCF0AC08091F101882361F085300C -:1019900061F08091E80083FD0AC08091E80082FF39 -:1019A000F2CF80E0089582E0089583E0089581E019 -:1019B0000895982F973058F59093E900981739F0CB -:1019C0007091EC002091ED005091F00003C0242FA5 -:1019D000762F50E021FF19C03091EB003E7F30930D -:1019E000EB003091ED003D7F3093ED003091EB0046 -:1019F00031603093EB007093EC002093ED00509336 -:101A0000F0002091EE0027FF07C09F5FD3CF8F70BB -:101A10008093E90081E0089580E008958091F201CB -:101A200087FF11C08091E80082FD05C08091F1011F -:101A30008111F8CF11C08091E8008B770BC08091A5 -:101A4000F101882349F08091E80080FFF8CF809170 -:101A5000E8008E778093E80008952091E4003091AB -:101A6000E50095E64091EC00842F817040FF22C094 -:101A70008091E80080FD1CC08091F101882391F0E5 -:101A8000853091F08091EB0085FD10C04091E4001D -:101A90005091E5004217530729F39A01915011F72D -:101AA00084E0089582E0089583E0089581E0089538 -:101AB00080E008954091E80042FFDECF08950E9443 -:101AC000CD0D0E94D50DE0EEF0E080818160808335 -:101AD000E8EDF0E080818F77808319BCA7EDB0E05E -:101AE0008C918E7F8C9380818F7E80831092F00109 -:101AF00008950F931F93CF93DF930E94CD0D0E9403 -:101B0000D50DC8EDD0E088818F7788838881806883 -:101B1000888388818F7D888319BC1092F10110928F -:101B2000ED011092EF011092EE0100EE10E0F801CD -:101B300080818B7F808388818160888342E060E040 -:101B400080E00E94D90CE1EEF0E080818E7F8083FE -:101B5000E2EEF0E080818160808380818860808314 -:101B6000F80180818E7F8083888180618883DF9106 -:101B7000CF911F910F910895E8EDF0E080818F7E65 -:101B80008083E7EDF0E080818160808384E082BF24 -:101B900081E08093F0010C94790DE8EDF0E0808114 -:101BA0008E7F80831092E20008951092DA001092E6 -:101BB000E10008951F920F920FB60F9211242F93F8 -:101BC0003F934F935F936F937F938F939F93AF93C5 -:101BD000BF93EF93FF938091E10082FF0BC0809150 -:101BE000E20082FF07C08091E1008B7F8093E100DB -:101BF0000E9441108091DA0080FF1FC08091D800C0 -:101C000080FF1BC08091DA008E7F8093DA00809184 -:101C1000D90080FF0DC080E189BD82E189BD09B492 -:101C200000FEFDCF81E08093F1010E943C0A05C0D7 -:101C300019BC1092F1010E944A0A8091E10080FFD4 -:101C400019C08091E20080FF15C08091E2008E7F74 -:101C50008093E2008091E20080618093E2008091B5 -:101C6000D80080628093D80019BC85E08093F10190 -:101C70000E944E0A8091E10084FF30C08091E20012 -:101C800084FF2CC080E189BD82E189BD09B400FEDA -:101C9000FDCF8091D8008F7D8093D8008091E100A6 -:101CA0008F7E8093E1008091E2008F7E8093E2003E -:101CB0008091E20081608093E2008091ED018823B1 -:101CC00011F084E007C08091E30087FD02C081E04D -:101CD00001C083E08093F1010E94500A8091E100ED -:101CE00083FF29C08091E20083FF25C08091E1003D -:101CF000877F8093E10082E08093F1011092ED01F3 -:101D00008091E1008E7F8093E1008091E2008E7FE0 -:101D10008093E2008091E20080618093E20042E0E3 -:101D200060E080E00E94D90C8091F0008860809390 -:101D3000F0000E944D0AFF91EF91BF91AF919F91EA -:101D40008F917F916F915F914F913F912F910F9064 -:101D50000FBE0F901F9018951F920F920FB60F9203 -:101D600011242F933F934F935F936F937F938F93A0 -:101D70009F93AF93BF93CF93DF93EF93FF93C09164 -:101D8000E900CF708091EC00D82FD17080FDD0E8B1 -:101D90001092E9008091F000877F8093F0007894A2 -:101DA0000E94F00E1092E9008091F000886080930C -:101DB000F000CD2BCF70C093E900FF91EF91DF9140 -:101DC000CF91BF91AF919F918F917F916F915F91D3 -:101DD0004F913F912F910F900FBE0F901F9018952C -:101DE0001F93CF93DF93CDB7DEB7AA970FB6F894C2 -:101DF000DEBF0FBECDBFE2EFF1E088E08E0F909125 -:101E0000F10091938E13FBCF0E946C0A8091E80041 -:101E100083FF1FC18091F2019091F301492F50E09F -:101E20004A30510508F015C1FA01EA5AFF4F0C94E7 -:101E30002B24803881F0823809F00BC18091F601A3 -:101E40008F708093E9008091EB0085FB882780F9F3 -:101E50001092E90006C08091EE019091EF0191117E -:101E600082609091E800977F9093E8008093F10062 -:101E70001092F100C8C0282F2D7F09F0EAC08823F6 -:101E800019F0823061F0E5C08091F401813009F0F1 -:101E9000E0C0933009F080E08093EF012BC0809187 -:101EA000F401811127C08091F6018F7009F4D1C02F -:101EB0008093E9002091EB0020FF1CC0933021F4B7 -:101EC0008091EB00806214C09091EB009061909340 -:101ED000EB0021E030E0A90102C0440F551F8A95B4 -:101EE000E2F74093EA001092EA008091EB008860EC -:101EF0008093EB001092E9008091E800877F86C014 -:101F00008111A7C01091F4011F778091E3008078C0 -:101F1000812B8093E3008091E800877F8093E80025 -:101F20000E940E0D8091E80080FFFCCF8091E300BD -:101F300080688093E300111102C082E001C083E059 -:101F40008093F10186C08058823008F082C0809171 -:101F5000F4019091F5018C3D53E0950779F583E00C -:101F60008A838AE289834FB7F894DE01139620E0D2 -:101F70003EE051E2E32FF0E050935700E49120FF60 -:101F800003C0E295EF703F5FEF708E2F90E0EA3074 -:101F900010F0C79601C0C0968D939D932F5F24319A -:101FA00049F74FBF8091E800877F8093E8006AE29D -:101FB00070E0CE0101960E94150C14C0AE014F5F77 -:101FC0005F4F6091F6010E945C0BBC01009709F421 -:101FD00040C09091E800977F9093E80089819A81B2 -:101FE0000E94780C8091E8008B778093E80031C0E4 -:101FF000803879F58091E800877F8093E8008091B0 -:10200000ED018093F1008091E8008E778093E800E5 -:102010000E940E0D1EC081111CC09091F4019230DF -:10202000C0F48091E800877F8093E8009093ED01F1 -:102030000E940E0D8091ED01811106C08091E30098 -:1020400087FD02C081E001C084E08093F1010E941D -:10205000580A8091E80083FF0AC08091E800877FDA -:102060008093E8008091EB0080628093EB00AA9659 -:102070000FB6F894DEBF0FBECDBFDF91CF911F9199 -:1020800008950895CF938091F1018823A1F0C09124 -:10209000E900CF709091EC00892F817090FD80E86D -:1020A000C82B1092E9008091E80083FD0E94F00E99 -:1020B000CF70C093E900CF910895909375018093FC -:1020C00074010895E0917401F0917501309721F049 -:1020D0000190F081E02D099480E00895E091740171 -:1020E000F0917501309721F00280F381E02D099481 -:1020F0000895E0917401F0917501309721F004800A -:10210000F581E02D099408952091720130917301B9 -:102110008217930771F09093730180937201E0919D -:102120007401F0917501309721F00680F781E02D60 -:1021300009940895209170013091710182179307DD -:1021400071F09093710180937001E0917401F091AE -:102150007501309721F00084F185E02D09940895F0 -:1021600008950C94B0100E940A1C0E948C030C94D9 -:10217000CC1C9F92AF92BF92CF92DF92EF92FF92D0 -:102180000F931F93CF93DF9300D000D000D0CDB733 -:10219000DEB70E94A4030DE010E0AA24A394B12CA2 -:1021A000902E802F0E949204980129583E4F690179 -:1021B000F901F080F826A1F40150110988F78FEF9A -:1021C00089838A831B820E94131C8160782F9D83E0 -:1021D0008C8349815A816B818D810E9450112FC05F -:1021E0009091DA0191FF04C08E830E9498048E8141 -:1021F00025E030E0A501022E01C0440F0A94EAF761 -:10220000E42E4F21C1F029839A828E2191E009F4B6 -:1022100090E09B830E94131C8160782F9D838C83A8 -:1022200049815A816B818D810E945011F601808114 -:10223000E826E08204C021503109E0F6BDCF0E94BB -:10224000B31F109176010E9462101817B9F00E9416 -:1022500062108093760126960FB6F894DEBF0FBE0B -:10226000CDBFDF91CF911F910F91FF90EF90DF9045 -:10227000CF90BF90AF909F900C945B0926960FB6BD -:10228000F894DEBF0FBECDBFDF91CF911F910F91AC -:10229000FF90EF90DF90CF90BF90AF909F90089508 -:1022A000CF93DF93CDB7DEB72B970FB6F894DEBF91 -:1022B0000FBECDBF4F83588769877A878B87DE0132 -:1022C000119686E0FD0111928A95E9F785E0FE01FD -:1022D000379601900D928A95E1F749815A816B8179 -:1022E0007C818D819E810E9499172B960FB6F89460 -:1022F000DEBF0FBECDBFDF91CF910895CF9388236E -:1023000009F4C2C0C82F823859F40E94621081FDBE -:10231000BBC089E30E94731A0E94401B89E30CC072 -:10232000833879F40E94621080FDAEC083E50E947C -:10233000731A0E94401B83E50E94B51ACF910C943A -:10234000401B843859F40E94621082FD9DC087E4CE -:102350000E94731A0E94401B87E4EECF8CEF8C0F13 -:10236000813A48F48C2F0E94F62181118DC08C2F68 -:102370000E94731AE3CF80E28C0F883048F4C77054 -:1023800081E001C0880FCA95EAF70E94F91AD6CFFA -:102390008BE58C0F833078F4C53A29F0C63A31F0DA -:1023A00083E890E005C081E890E002C082E890E018 -:1023B000CF910C94841088E58C0F833108F064C0B1 -:1023C000C83A39F1C93A41F1CA3A49F1CB3A51F127 -:1023D000CC3A59F1CD3A61F1C03B69F1CE3A71F195 -:1023E000CF3A79F1C13B81F1C23B89F1C33B91F115 -:1023F000C43B99F1C53BA1F1C63BA9F1C73BB1F183 -:10240000C83BB9F1C93BC1F1CA3BC9F180E090E0DA -:1024100038C082EE90E035C089EE90E032C08AEE9E -:1024200090E02FC085EB90E02CC086EB90E029C0B7 -:1024300087EB90E026C08CEC90E023C08DEC90E020 -:1024400020C083E891E01DC08AE891E01AC082E9CB -:1024500091E017C084E991E014C081E292E011C0DC -:1024600083E292E00EC084E292E00BC085E292E04B -:1024700008C086E292E005C087E292E002C08AE2EC -:1024800092E0CF910C949A10CF910895882309F48B -:102490004BC0823859F40E94621081FF45C089E325 -:1024A0000E94731A0E94401B89E30CC0833871F4A8 -:1024B0000E94621080FF38C083E50E94731A0E9458 -:1024C000401B83E50E94B51A0C94401B843859F4D4 -:1024D0000E94621082FF28C087E40E94731A0E9443 -:1024E000401B87E4EFCF9CEF980F913A58F390E2AE -:1024F000980F983050F4877091E001C0990F8A9539 -:10250000EAF7892F0E94FF1ADFCF9BE5980F9330DF -:1025100020F480E090E00C948410885A833120F4F9 -:1025200080E090E00C949A100895882321F00E9496 -:10253000F91A0C94401B0895882321F00E94FF1A79 -:102540000C94401B08957F928F929F92AF92BF92FE -:10255000CF92DF92EF92FF920F931F93CF93DF936F -:102560001F92CDB7DEB77C01C62E772EFC01058108 -:1025700002950F70128111110E94161B0E946C1A95 -:10258000882379F0112369F080E28C0D883048F0BF -:1025900082E00E94551A0E946C1A91E0D82ED9262A -:1025A00001C0D12CE72DE295EF70F0E0E05AFF4F2B -:1025B0000C942B24872D807F072D0F70882311F01A -:1025C0000295007F112389F0002309F490C180E275 -:1025D0008C0D883020F4802F0E94F91A03C0802FC0 -:1025E0000E94091B0E94401B82C18C2D0E94461232 -:1025F000002309F495C180E28C0D883020F4802FEF -:102600000E94FF1A03C0802F0E940F1B0E94401BD4 -:1026100087C1972D907F872D8F70903211F0829512 -:10262000807FCC2021F0F1E0CF16B1F01EC0112345 -:1026300049F0002309F414C1013009F011C10E94CE -:10264000291B6EC1002319F0013009F469C1898387 -:102650000E942C1B89810AC1112321F0023008F04D -:102660005FC1FEC001115CC101C1112321F0002333 -:1026700009F4F6C03CC1002309F4F8C03EC1872D1F -:1026800086958695837090E0009719F0019761F028 -:1026900047C1112321F08C2D972D937002C080E04B -:1026A00090E00E9484103CC1112321F08C2D972DC5 -:1026B000937002C080E090E00E949A1031C18C2D8E -:1026C000112319F00E94BB1E02C00E94231F0E940A -:1026D000A81F26C1872D837009F052C0111120C197 -:1026E0008C2D829586958770880F880F9C2D9F7002 -:1026F000892E912CA12CB12C082E04C0880C991C79 -:10270000AA1CBB1C0A94D2F7C4FE14C00FE010E050 -:1027100020E030E0B901A80104C0440F551F661F36 -:10272000771F8A95D2F7CB01BA0160957095809595 -:10273000909503C060E070E0CB01272D269526958B -:10274000237030E02230310569F02330310589F003 -:10275000682979298A299B292130310571F00E9445 -:10276000E118DEC0682979298A299B290E94FD1871 -:10277000D7C00E94E118C501B4010E94C518D0C09D -:10278000112319F0872D817001C08695882309F4E3 -:10279000C7C08C2D829586958770880F880F9C2DD9 -:1027A0009F70892E912CA12CB12C082E04C0880C6E -:1027B000991CAA1CBB1C0A94D2F7C4FE14C00FE0DB -:1027C00010E020E030E0B901A80104C0440F551F1B -:1027D000661F771F8A95D2F7CB01BA016095709575 -:1027E0008095909503C060E070E0CB01272D269581 -:1027F00026952370422F50E04230510569F0433056 -:10280000510589F0682979298A299B294130510588 -:1028100071F00E94BB1984C0682979298A299B29F3 -:102820000E94D7197DC00E94BB19C501B4010E9446 -:102830009F1976C08C2D90E0FC01E05EF109E53136 -:10284000F10508F050C0E059FF4F0C942B240C2DDB -:102850000F70872D8F71112331F00E943819802F4E -:102860000E9495125DC00E945919802F0E949C12EF -:1028700057C0112339F0011153C0872D8F710E9469 -:102880007E194EC0023008F04BC0F7CF112339F04B -:10289000872D8F710E94381943C01123C9F3872DEA -:1028A0008F710E9459193CC0112329F0872D8F7117 -:1028B0000E94231935C00E94191932C0112351F00A -:1028C000172D1F71812F0E94381963E0812F0E94FC -:1028D0004C1A26C081E00E94551A023008F182E0AD -:1028E0000E94551A1DC0112331F0002389F28C2D4E -:1028F0000E947E1115C0002391F28C2D0E94461279 -:102900000FC0472D4F706C2DC7010E946E050E94AD -:102910003D1806C0472D4F706C2DC7010E946A06F6 -:10292000DD20F9F00E94481A80FD1BC0F7011282D9 -:102930000E94421A0E943819C7010E94C0140E94C6 -:10294000421A0F90DF91CF911F910F91FF90EF905E -:10295000DF90CF90BF90AF909F908F907F900C941E -:1029600059190F90DF91CF911F910F91FF90EF9028 -:10297000DF90CF90BF90AF909F908F907F90089501 -:102980000F931F93CF93DF93EC01888199812B8163 -:102990003C81232BB9F09F3F11F48F3F99F0CE017A -:1029A0000E94C205882371F0688179818A810E9422 -:1029B0003E1A8C010E94F3190E94BA18B801CE0188 -:1029C0000E94A312DF91CF911F910F9108950E9451 -:1029D000161B0E94261B0E94EB1A0E94401B0E949D -:1029E00059200E94A81F80E090E00E94841080E09F -:1029F00090E00C949A100E94061B0C94E7140E941D -:102A0000331A292F22952F7030E02C3031054CF4E9 -:102A10002A3031056CF42250310922303105A8F4F6 -:102A200007C02C30310569F02F30310551F00DC051 -:102A3000803F69F018F4803E40F409C0843F29F4D7 -:102A400006C093FB882780F9089580E0089581E00F -:102A50000895CF93DF9300D000D01F92CDB7DEB79B -:102A60000F900F900F900F900F90DF91CF910895DE -:102A7000CF93DF9300D000D000D0CDB7DEB726963D -:102A80000FB6F894DEBF0FBECDBFDF91CF91089592 -:102A90001F93CF93DF93C091850116E0809186014B -:102AA000C81799F0D0E01C9FF0011D9FF00D112474 -:102AB000E957FE4F40815181628173818481958104 -:102AC0000E9438152196C770E9CFDF91CF911F91F1 -:102AD00008954091B7015091B8016091B90170918A -:102AE000BA018091BB019091BC010C943815809182 -:102AF000BC0182958F7009F054C08091B901882380 -:102B000009F44FC080918501A09186016091B701C1 -:102B10007091B8014091BA015091BB01B6E08A179B -:102B200009F43FC090E041155105C1F17F3F11F418 -:102B30006F3FA1F1B89FF001B99FF00D1124E95743 -:102B4000FE4F218172132AC02081621327C0228187 -:102B5000211124C0238134812417350710F421501A -:102B60003109241B350B283C3105C0F42091BC01F0 -:102B70002F7020612093BC0126E0289FF001299F3F -:102B8000F00D1124E457FE4F80818F7080618083A7 -:102B900087EB91E00E94C0140C9448150196877051 -:102BA000BECF0895CF92DF92EF92FF920F931F93C3 -:102BB000CF93DF93CDB7DEB762970FB6F894DEBF41 -:102BC0000FBECDBF8C0185E0F801DE011D9601909E -:102BD0000D928A95E1F7D8014C9111965C9111976D -:102BE00012966C9112971396CD90DC9014973091B9 -:102BF000B7017091B8018091BA019091BB01009723 -:102C000009F46BC17F3F19F43F3F09F466C1E090BE -:102C1000B901EE2009F4C0C02091BC01C816D90644 -:102C200028F0F601E81BF90BCF0104C080959095C0 -:102C30008C0D9D1DFF24F394883C910578F0F12CB8 -:102C4000207F09F0C6C07C2DD98AC88A89890E9454 -:102C5000291587EB91E00E94C014B1C0822F807FBC -:102C600009F046C0751314C0341312C0611110C0AE -:102C70002F7020612093BC010E94691587EB91E0C1 -:102C80000E94C0148091BC01D80115968C932EC06F -:102C9000CD2819F15F3F11F44F3FF9F0F62E611185 -:102CA0001CC0809185012091860136E0821709F4CD -:102CB0005AC090E0389FF001399FF00D1124E95778 -:102CC000FE4F7181571306C07081471303C0728194 -:102CD000711103C001968770E9CFF62E662309F4BF -:102CE00018C18091BC0181608093BC01F12C11C19D -:102CF000751308C0341306C0611104C08091BC0173 -:102D0000D801C3C04D875E878D859E856A8B0E94E2 -:102D1000FF146A898823E1F16623D1F12091BC0177 -:102D2000822F82958F7090E0029774F08091B701A6 -:102D30009091B80198878F831986DB86CA862C8785 -:102D4000CE0107960E94C01486E0F801A7EBB1E01F -:102D500001900D928A95E1F70E9477150E946915FE -:102D6000FF24F394D6C04D875E878D859E850E9493 -:102D7000331A292F22952F7030E0223031050CF0C4 -:102D8000BCC09F7009F0B6C0805E883008F4C1C036 -:102D9000C8010E94C014E4CFC816D90608F453C075 -:102DA000F601E81BF90BCF01883C910508F450C0EF -:102DB000F12C7C2DD98AC88A89890E942915E7EBD4 -:102DC000F1E086E0DF011D928A95E9F70E9469151E -:102DD000A0C0751314C0341312C0611110C08091CB -:102DE000BC01F8018583C8010E94C01486E0E7EBAE -:102DF000F1E0DF011D928A95E9F7FE2C8AC04D872C -:102E00005E878D859E856A8B0E94FF146A89882360 -:102E100009F4BECF662309F4BBCF2091BC01822FF9 -:102E200082958F7090E002970CF48ECF8091B7015D -:102E30009091B8019A8389831B82DD82CC822E8394 -:102E4000CE0101967FCF809590958C0D9D1DACCFC6 -:102E5000F62E662309F49CCF75132EC034132CC0B4 -:102E60002091BC0120FD1FC0822F82958F70D9F068 -:102E7000D80115962C9315978F3049F08F5F982FB6 -:102E80009295907F822F8F70892B15968C93C80115 -:102E90000E94C01486E0F801A7EBB1E001900D920A -:102EA0008A95E1F793CF86E0F801A7EBB1E00190B6 -:102EB0000D928A95E1F72DC04D875E878D859E85A1 -:102EC0000E94FF14811140CF8091BC0181608093EA -:102ED000BC01C8010E94C0141CC0662309F458CF6D -:102EE0004D875E878D859E850E94FF14882309F497 -:102EF0004FCF2ACF811148CF0CC0243031050CF0C0 -:102F000047CF9F7009F440CFF8019581907F09F079 -:102F10003BCF8F2D62960FB6F894DEBF0FBECDBFAC -:102F2000DF91CF911F910F91FF90EF90DF90CF90A5 -:102F300008951F93CF93DF93CDB7DEB72C970FB6CD -:102F4000F894DEBF0FBECDBF4F83588769877A875D -:102F50008B879C87CE0107960E94D215882369F043 -:102F60008F8198852A853B85232BF1F19F3F09F0BE -:102F700063C08F3F09F060C037C086E0FE0137961E -:102F8000DE01119601900D928A95E1F76F817885A7 -:102F9000EA85FB85309741F17F3F11F46F3F21F1C6 -:102FA0002091860130E0C9010196877099274091F0 -:102FB000850150E08417950709F447C069837A8337 -:102FC000FD83EC8396E0929FD001939FB00D112476 -:102FD000A957BE4FFE01319601900D929A95E1F7E7 -:102FE000809386010E94481516E08091850190919A -:102FF00086018917C1F1189FC001112489579E4F7E -:103000000E94D215882379F1E09185011E9FF0017D -:103010001124E957FE4F408151816281738184817F -:1030200095810E9438158091850190E00196877006 -:10303000992780938501D9CF4F81588569857A85F5 -:103040008B859C850E943815CFCF0E94FB1410926F -:10305000860110928501E7EBF1E086E0DF011D9229 -:103060008A95E9F7C1CF2C960FB6F894DEBF0FBE54 -:10307000CDBFDF91CF911F910895EF92FF920F93F3 -:103080001F93CF93DF938C01009709F46CC0F12C50 -:10309000EE24E394E8012196F8018491843740F40A -:1030A000843008F051C0813081F0823019F15BC06A -:1030B000853709F444C0A8F19CE7980F903708F0D1 -:1030C00052C08F770E94461241C00E5F1F4FFE0113 -:1030D000C49180E28C0F883048F4C7708E2D01C0F7 -:1030E000880FCA95EAF70E94191B14C08C2F0E9402 -:1030F0007E112DC00E5F1F4FFE01C49180E28C0F28 -:10310000883058F4C7708E2D01C0880FCA95EAF731 -:103110000E941F1B0E94401B1AC08C2F0E94461247 -:1031200016C00E5F1F4FFE01C491CC2381F08FE9C2 -:103130009FE00197F1F700C00000C150F6CF0E5F8D -:103140001F4FFE01F49003C00E947E118E018F2D4F -:10315000882309F49FCFEFE9FFE03197F1F700C032 -:1031600000008150F5CFDF91CF911F910F91FF901B -:10317000EF90089508956093C1017093C201809308 -:10318000C3019093C4010C94E7140F931F93009113 -:10319000C1011091C2012091C3013091C401DC0131 -:1031A000CB01802B912BA22BB32B8093C101909349 -:1031B000C201A093C301B093C4011F910F910C945D -:1031C000E7140F931F930091C1011091C201209148 -:1031D000C3013091C401DC01CB0180239123A223E0 -:1031E000B3238093C1019093C201A093C301B09314 -:1031F000C4011F910F910C94E7140F931F9300913A -:10320000C1011091C2012091C3013091C401DC01C0 -:10321000CB0180279127A227B3278093C1019093E8 -:10322000C201A093C301B093C4011F910F910C94EC -:10323000E7141092BD011092BE011092BF011092CE -:10324000C0010C94E71441E050E060E070E004C07D -:10325000440F551F661F771F8A95D2F74093BD0113 -:103260005093BE016093BF017093C0010C94E714AA -:1032700041E050E060E070E004C0440F551F661F5D -:10328000771F8A95D2F78091BD019091BE01A091E0 -:10329000BF01B091C001482B592B6A2B7B2B409367 -:1032A000BD015093BE016093BF017093C0010C94A7 -:1032B000E71441E050E060E070E004C0440F551FA7 -:1032C000661F771F8A95D2F7409550956095709547 -:1032D0008091BD019091BE01A091BF01B091C0014C -:1032E000482359236A237B234093BD015093BE0199 -:1032F0006093BF017093C0010C94E71441E050E06B -:1033000060E070E004C0440F551F661F771F8A9568 -:10331000D2F78091BD019091BE01A091BF01B09103 -:10332000C001482759276A277B274093BD01509346 -:10333000BE016093BF017093C0010C94E7140F931A -:103340001F930091BD011091BE012091BF013091EA -:10335000C001DC01CB01802B912BA22BB32B8093DE -:10336000BD019093BE01A093BF01B093C0011F9116 -:103370000F910C94E7140F931F930091BD011091CE -:10338000BE012091BF013091C001DC01CB0180233F -:103390009123A223B3238093BD019093BE01A093F8 -:1033A000BF01B093C0011F910F910C94E7140F93CC -:1033B0001F930091BD011091BE012091BF0130917A -:1033C000C001DC01CB0180279127A227B32780937E -:1033D000BD019093BE01A093BF01B093C0011F91A6 -:1033E0000F910C94E7140895CF92DF92EF92FF9221 -:1033F0000F931F93CF93DF938C01C090C101D090A6 -:10340000C201E090C301F090C4018091BD01909190 -:10341000BE01A091BF01B091C001C82AD92AEA2AF1 -:10342000FB2ACFE1D0E0D701C6010C2E04C0B6952F -:10343000A795979587950A94D2F780FF06C0B801A3 -:103440008C2F0E94C008019721F4219760F780E03B -:1034500001C08C2FDF91CF911F910F91FF90EF90C2 -:10346000DF90CF900895CF93DF93EC010E94F41981 -:10347000BE010E94C008DF91CF910895CB010E9448 -:10348000331A08958091C501859585958595089590 -:103490008091C5018770089598E0899F900111245B -:1034A000262B2093C5010C9438192091C5018095D5 -:1034B00082238093C501982F977069F430E0482FDC -:1034C000552747FD50952417350729F08595859593 -:1034D00085950C94591908959091C501977081E0D4 -:1034E00009F480E0089590910C01992321F09091C6 -:1034F0000D01911109C020910E0130910F01F901C8 -:1035000032969FEF40E01FC0982F9695969596951E -:103510009F3050F5E0910E01F0910F01E90FF11D80 -:10352000877021E030E0A90102C0440F551F8A9541 -:10353000E2F7CA019181892B818308959F3F39F079 -:103540004F5F4E3041F051915813F8CF0DC05111DB -:10355000F7CF942FF5CF9F3F39F0F901E90FF11D17 -:1035600097FDFA9582830895089590910C0199230F -:1035700021F090910D01911109C020910E0130911F -:103580000F01F9013296205F3F4F1FC0982F96958B -:10359000969596959F30F0F4E0910E01F0910F0111 -:1035A000E90FF11D877021E030E0A90102C0440F4E -:1035B000551F8A95E2F7CA018095918189238183FD -:1035C00008953196E217F30729F090819813F9CF07 -:1035D0001082F7CF089581E090E0E0910E01F09124 -:1035E0000F01E80FF91F1082019680319105A9F7AC -:1035F00008959091D901892B8093D90108958095E0 -:103600009091D90189238093D90108951092D9010D -:1036100008959091D801892B8093D80108958095C1 -:103620009091D80189238093D80108951092D801F0 -:1036300008959091D701892B8093D70108958095A3 -:103640009091D70189238093D70108951092D701D3 -:1036500008958093C60108951092C601089580913F -:103660000E0190910F01FC0131969C01205F3F4FAC -:1036700080E0919191118F5FE217F307D1F70895E0 -:10368000E0910E01F0910F018091D9018083E091CA -:103690000E01F0910F0190818091D801892B8083D8 -:1036A000E0910E01F0910F0190818091D701892B5B -:1036B00080838091C601882361F0E0910E01F09132 -:1036C0000F019081892B80830E942F1B8111109202 -:1036D000C60180910E0190910F010C946E1020E0B4 -:1036E000009739F0AC0141505109842395232F5F95 -:1036F000F7CF822F0895CF92DF92EF92FF926C0165 -:10370000EE24FF24C114D104E104F10421F0C70127 -:10371000B60120E101C020E0C72ED82EE92EFF24FB -:10372000C114D104E104F10419F0285FC701B60106 -:103730006B017C0154E0F694E794D794C7945A95B2 -:10374000D1F7C114D104E104F10419F02C5FC701D1 -:10375000B6016B017C0142E0F694E794D794C794DC -:103760004A95D1F7C114D104E104F10419F02E5F98 -:10377000C701B601DC01CB01B695A7959795879552 -:10378000892B8A2B8B2B09F02F5F822FFF90EF90D4 -:10379000DF90CF9008958091F101843021F1109253 -:1037A000DB0120E488E190E00FB6F894A8958093BF -:1037B00060000FBE2093600080E00E945B0983B729 -:1037C000817F846083BF83B7816083BF789488954D -:1037D00083B78E7F83BF88E10FB6F8948093600033 -:1037E000109260000FBE0895089508950E94F41B82 -:1037F0000E94A4030E94F51B0E94990491E081118C -:1038000001C090E0892F08950E94FB140E9462106D -:103810000C945B0982E084BD93E095BD9AEF97BD5F -:1038200080936E0008952FB7F8948091DC019091F9 -:10383000DD01A091DE01B091DF012FBF0895CF928D -:10384000DF92EF92FF920F931F932FB7F89440915E -:10385000DC015091DD016091DE017091DF012FBF2D -:103860006A017B01EE24FF248C0120E030E0C016C9 -:10387000D106E206F30610F4415051099A01281BC3 -:10388000390BC9011F910F91FF90EF90DF90CF90FE -:1038900008951F920F920FB60F9211248F939F934A -:1038A000AF93BF938091DC019091DD01A091DE0187 -:1038B000B091DF010196A11DB11D8093DC019093B1 -:1038C000DD01A093DE01B093DF01BF91AF919F9125 -:1038D0008F910F900FBE0F901F9018950E945F0D53 -:1038E000F8942FEF87EA91E6215080409040E1F76D -:1038F00000C0000087E090EBDC018093FB01909317 -:10390000FC01A093FD01B093FE019CE088E10FB69D -:10391000F894A895809360000FBE90936000FFCF4D -:10392000EF92FF920F931F93CF93DF93D82FCDE0A9 -:103930008C2F0E94920405E010E0E82EF12CC701C4 -:10394000002E02C0959587950A94E2F780FF09C082 -:10395000602F7C2F80E00E946B06D81302C081E0AC -:1039600006C00150110958F7C15010F780E0DF91EF -:10397000CF911F910F91FF90EF900895CF93C82F93 -:103980008CE20E94901C882321F08C2FCF910C9404 -:10399000901C80E0CF910895CF930E94131E811157 -:1039A00002C00E94F91DC5E6C15049F00E94A4035F -:1039B0008FE39CE90197F1F700C00000F5CF89E2A1 -:1039C0000E94BE1C811113C18AE20E94BE1C81119B -:1039D0000E94F91D85E00E94BE1C81110E946E1C90 -:1039E0000E941E1E8093DA0187E00E94BE1C88237D -:1039F000A9F18BE10E94BE1C882351F08091DA016D -:103A000081FB222720F991E0922790FB81F90EC0DB -:103A10008EE00E94BE1C882361F08091DA0182FB57 -:103A2000222720F991E0922790FB82F98093DA0116 -:103A300015C080E10E94BE1C9091DA01882341F0FC -:103A400093FB222720F981E0822780FB93F904C0B1 -:103A5000892F809580FB90F99093DA018091DA01AB -:103A60000E94221E0E94301E8093FA0180EE0E9466 -:103A7000BE1C882341F08091FA01982F909590FB0D -:103A800080F98093FA0189E30E94BE1C882359F0D3 -:103A90008091FA0181FB222720F991E0922790FB87 -:103AA00081F98093FA0182EE0E94BE1C882359F0AE -:103AB0008091FA0182FB222720F991E0922790FB66 -:103AC00082F98093FA0186EE0E94BE1C882359F089 -:103AD0008091FA0183FB222720F991E0922790FB45 -:103AE00083F98093FA0183EE0E94BE1C882359F06B -:103AF0008091FA0184FB222720F991E0922790FB24 -:103B000084F98093FA0185E30E94BE1C882359F052 -:103B10008091FA0185FB222720F991E0922790FB02 -:103B200085F98093FA0181E30E94BE1C882359F035 -:103B30008091FA0186FB222720F991E0922790FBE1 -:103B400086F98093FA0181E10E94BE1C882359F016 -:103B50008091FA0187FB222720F991E0922790FBC0 -:103B600087F98093FA018091FA010E94341E8091B6 -:103B7000FA0187FB882780F980930D0187E20E9474 -:103B8000BE1CC82F8EE10E94BE1C8111C2608FE155 -:103B90000E94BE1C8111C46080E20E94BE1C811183 -:103BA000C86081E20E94BE1C8111C06182E20E9455 -:103BB000BE1C8111C06283E20E94BE1C8111C064E0 -:103BC00084E20E94BE1C882311F0C06802C0CC238E -:103BD00029F08C2F0E942B1E6C2F03C00E94271EE1 -:103BE000682F70E080E090E0CF910C94BB18CF91EB -:103BF00008956DEE7EEF80E090E00E94652460E025 -:103C000082E090E00E94532460E083E090E00E9414 -:103C1000532460E084E090E00E94532460E085E05B -:103C200090E00C94532480E090E00E944D2421E029 -:103C30008D3E9E4F09F020E0822F089582E090E0B3 -:103C40000C944524682F82E090E00C94532483E088 -:103C500090E00C944524682F83E090E00C9453246A -:103C600084E090E00C944524682F84E090E00C946C -:103C700053248091E20180FF0BC06091130185E025 -:103C8000689FB001112475956795759567952BC050 -:103C900081FF09C06091130185E0689FB001112484 -:103CA0007595679520C082FF07C06091130185E07C -:103CB000689FB001112417C09091E3019923D1F0BE -:103CC00060911201961788F72091130185E0289FD3 -:103CD00090011124929FA001939F500D112470E038 -:103CE000CA010E9417246038710540F461157105FE -:103CF00039F002C065E070E0862F08958FE70895DF -:103D000081E008958091E20180FF08C06091110177 -:103D100070E0759567957595679521C081FF06C020 -:103D20006091110170E07595679519C082FF04C01C -:103D30006091110170E010C09091E3019923C1F0EE -:103D4000609110019617A0F780911101899FC00121 -:103D5000112470E00E9417246038710528F4611561 -:103D6000710521F0862F08958FE7089581E0089569 -:103D700061E070E0F4CF803F21F40E94391E81950C -:103D800004C0813F29F40E94391E8093E601089502 -:103D9000823F21F40E94391E819504C0833F29F49B -:103DA0000E94391E8093E5010895893F19F40E940D -:103DB000821E05C08A3F31F40E94821E8195809345 -:103DC000E70108958B3F21F40E94821E819504C073 -:103DD0008C3F29F40E94821E8093E8010895843F5D -:103DE00021F48091E401816017C0853F21F4809126 -:103DF000E401826011C0863F21F48091E401846077 -:103E00000BC0873F21F48091E401886005C0883FA2 -:103E100031F48091E40180618093E40108958D3F45 -:103E200021F48091E20181600BC08E3F21F48091EA -:103E3000E201826005C08F3F29F48091E201846035 -:103E40008093E2010895803F39F48091E60187FF75 -:103E50006CC01092E60169C0813F29F48091E601AF -:103E60001816BCF362C09091E501823F29F497FFD8 -:103E70005CC01092E50159C0833F19F41916CCF3C8 -:103E800054C0893F41F48091E70118160CF04DC0F1 -:103E90001092E7014AC08A3F29F48091E70187FF29 -:103EA00044C0F6CF8B3F39F48091E80187FF3DC0D5 -:103EB0001092E8013AC08C3F29F48091E80118166D -:103EC000BCF333C0843F21F48091E4018E7F17C09E -:103ED000853F21F48091E4018D7F11C0863F21F45C -:103EE0008091E4018B7F0BC0873F21F48091E40136 -:103EF000877F05C0883F31F48091E4018F7E8093F5 -:103F0000E40113C08D3F21F48091E2018E7F0BC04C -:103F10008E3F21F48091E2018D7F05C08F3F29F40F -:103F20008091E2018B7F8093E2018091E501811114 -:103F30000EC08091E60181110AC08091E7018111D4 -:103F400006C08091E801811102C01092E30108953A -:103F500084EE91E00E9479100E94131C9093E1017D -:103F60008093E00108951F93CF93DF938091E00148 -:103F70009091E1010E941F1CAC019091E3019923F3 -:103F800021F02091140130E006C0209115018AE053 -:103F9000289F900111244217530708F486C080918E -:103FA000E501C091E601D091E7011091E80181118E -:103FB00007C0C11176C0D11174C0111172C075C093 -:103FC0009F3F19F09F5F9093E301181624F40E941D -:103FD000391E8093E5018091E50187FF05C00E94AD -:103FE000391E81958093E5011C1624F40E94391E28 -:103FF0008093E6018091E60187FF05C00E94391E8B -:1040000081958093E6016091E501662339F1C091C5 -:10401000E601CC2319F1772767FD7095872F972F3D -:104020000E94282323E333E343E35FE30E948C23CE -:104030000E94F5226093E5016C2F772767FD70954C -:10404000872F972F0E94282323E333E343E35FE383 -:104050000E948C230E94F5226093E6011D1624F431 -:104060000E94821E8093E7018091E70187FF05C0CF -:104070000E94821E81958093E701111624F40E940C -:10408000821E8093E8018091E80187FF05C00E94AD -:10409000821E81958093E801DF91CF911F910C944E -:1040A000A81F9F3F09F08ECF96CFDF91CF911F9130 -:1040B0000895E4EEF1E085E0DF011D928A95E9F7CD -:1040C0001092E3011092E2010895833081F128F407 -:1040D000813059F08230D1F00895853009F449C01B -:1040E000B8F1863009F456C0089580911501262F45 -:1040F00030E0280F311D2F3F310524F4680F609305 -:10410000150108958FEF8093150108958091140192 -:10411000262F30E0280F311D2F3F310524F4680F82 -:104120006093140108958FEF809314010895809196 -:104130001301262F30E0280F311D2F3F310524F4C5 -:10414000680F6093130108958FEF80931301089512 -:1041500080911201262F30E0280F311D2F3F3105AD -:1041600024F4680F6093120108958FEF8093120179 -:10417000089580911101262F30E0280F311D2F3F27 -:10418000310524F4680F6093110108958FEF809337 -:104190001101089580911001262F30E0280F311D64 -:1041A0002F3F310524F4680F6093100108958FEFBD -:1041B000809310010895833011F128F4813049F083 -:1041C000823091F00895853081F120F18630C1F17F -:1041D000089580911501681720F4861B80931501BE -:1041E000089510921501089580911401681720F424 -:1041F000861B8093140108951092140108958091F4 -:104200001301681720F4861B809313010895109200 -:104210001301089580911201681720F4861B809382 -:1042200012010895109212010895809111016817EA -:1042300020F4861B809311010895109211010895B6 -:1042400080911001681720F4861B80931001089557 -:104250001092100108950F931F938D3109F46BC0D4 -:1042600008F03FC08E3009F47FC0C0F4873009F4F5 -:1042700069C068F4863009F0B1C08091DA01817FAD -:104280008E7F8093DA0181E08093EA01A8C08830B4 -:1042900009F4A2C08B3009F49FC0A0C0863109F494 -:1042A0009BC078F4803109F472C0813109F096C066 -:1042B0000E94FB1490910D0181E0892780930D01EC -:1042C0008BC0893109F488C08B3109F087C0809197 -:1042D000DA0181FB222720F991E0922790FB81F9F6 -:1042E0004CC0853309F470C048F4873209F46CC0BF -:1042F00008F459C0893209F467C070C0833438F4B7 -:104300008A3308F04EC0883309F466C067C083342E -:1043100009F45AC0883409F061C00E94FB140FEF01 -:1043200013ED20E3015010402040E1F700C00000F1 -:104330000E946E1C51C00E94AF220E9462100E9417 -:104340005B094AC09091DA01892F8095817080FBCA -:1043500090F929F0966098609093DA0140C0997FB7 -:10436000977F9093DA0138C08091DA0182FB22278F -:1043700020F991E0922790FB82F98093DA0199234A -:1043800059F18091DA0181608093DA0125C0809132 -:10439000DA0183FB222720F991E0922790FB83F931 -:1043A000ECCF895301C08D5141E050E060E070E0F6 -:1043B0008A019B0104C0000F111F221F331F8A9521 -:1043C000D2F7C901B80104C061E070E080E090E07C -:1043D0000E94BB180E94FB1481E001C080E01F9185 -:1043E0000F91089580E0089580E00895CF93C82F3D -:1043F0008091EA01813079F018F08230E9F187C0CC -:10440000E0910E01F0910F018081813169F08232DB -:1044100009F07FC009C0E0910E01F0910F01808189 -:10442000813111F0823261F48C2F0E94F2218111CE -:1044300004C08C2F0E942B211DC081E090E01AC087 -:104440008C2F0E94F421811114C0C43179F048F4FA -:10445000CB3079F0C03109F060C082E08093EA018E -:1044600008C0C93219F0C83321F057C01092EA01D0 -:1044700054C081E0817053C0C93289F118F5C4314C -:1044800071F1A8F4C73009F046C08AE080931501A5 -:1044900094E19093140193E090931301809312019F -:1044A00088E08093110188E28093100134C0CE51DE -:1044B000C63088F5EC2FF0E0E65DFE4F80818093FA -:1044C000E90129C0CE34E9F020F4CB3421F56AE0CB -:1044D00013C0C13579F0C235F1F461E00DC08091AF -:1044E000E901882319F01092E90115C081E0809359 -:1044F000EA0115C061E006C08091E9010E946520D3 -:104500000AC06AE08091E9010E94DB2004C0109299 -:10451000EA0180E004C081E002C080E0ABCFCF912F -:104520000895E1E8F0E08081886080838081816087 -:1045300080838FB7F89493E09093890090ED9093E7 -:1045400088008FBF0895EFE6F0E08081826080836D -:104550000895EFE6F0E080818D7F80830895EFE697 -:10456000F0E0908182E08927808308951F920F9266 -:104570000FB60F9211242F933F934F935F936F9336 -:104580007F938F939F93AF93BF93EF93FF9380910C -:10459000EB019091EC0101969093EC018093EB017B -:1045A000811103C082E00E945B09E091EC01E69575 -:1045B000E695F0E0EB59FA4FE4918091EB018E1310 -:1045C00003C080E00E945B09FF91EF91BF91AF9122 -:1045D0009F918F917F916F915F914F913F912F911B -:1045E0000F900FBE0F901F90189504D06894B111D2 -:1045F0008DC0089570D088F09F5790F0B92F9927FB -:10460000B751A0F0D1F0660F771F881F991F1AF0DD -:10461000BA95C9F712C0B13081F077D0B1E00895F2 -:1046200074C0672F782F8827B85F39F0B93FCCF373 -:10463000869577956795B395D9F73EF490958095D3 -:10464000709561957F4F8F4F9F4F0895E89409C0F3 -:1046500097FB3EF490958095709561957F4F8F4FB5 -:104660009F4F9923A9F0F92F96E9BB279395F695CB -:10467000879577956795B795F111F8CFFAF4BB0F49 -:1046800011F460FF1BC06F5F7F4F8F4F9F4F16C0AD -:10469000882311F096E911C0772321F09EE8872F37 -:1046A000762F05C0662371F096E8862F70E060E0F3 -:1046B0002AF09A95660F771F881FDAF7880F96956C -:1046C000879597F9089557FD9058440F551F59F055 -:1046D0005F3F71F04795880F97FB991F61F09F3FEF -:1046E00079F087950895121613061406551FF2CF18 -:1046F0004695F1DF08C0161617061806991FF1CF68 -:1047000086957105610508940895E894BB2766278E -:104710007727CB0197F908950BD078C069D028F09E -:104720006ED018F0952309F05AC05FC01124EECF67 -:10473000CADFA0F3959FD1F3950F50E0551F629FFC -:10474000F001729FBB27F00DB11D639FAA27F00DEA -:10475000B11DAA1F649F6627B00DA11D661F829F11 -:104760002227B00DA11D621F739FB00DA11D621FF6 -:10477000839FA00D611D221F749F3327A00D611D13 -:10478000231F849F600D211D822F762F6A2F1124F5 -:104790009F5750408AF0E1F088234AF0EE0FFF1F48 -:1047A000BB1F661F771F881F91505040A9F79E3F7F -:1047B000510570F014C0AACF5F3FECF3983EDCF3D4 -:1047C000869577956795B795F795E7959F5FC1F7BC -:1047D000FE2B880F911D9695879597F9089597F967 -:1047E0009F6780E870E060E008959FEF80EC089597 -:1047F00000240A94161617061806090608950024C0 -:104800000A9412161306140605060895092E039439 -:10481000000C11F4882352F0BB0F40F4BF2B11F4AD -:1048200060FF04C06F5F7F4F8F4F9F4F089597FBCE -:10483000072E16F4009407D077FD09D00E9431248A -:1048400007FC05D03EF4909581959F4F0895709593 -:1048500061957F4F0895EE0FFF1F0590F491E02DB5 -:104860000994AA1BBB1B51E107C0AA1FBB1FA617B7 -:10487000B70710F0A61BB70B881F991F5A95A9F709 -:1048800080959095BC01CD010895F999FECF92BD18 -:1048900081BDF89A992780B50895A8E1B0E042E07B -:1048A00050E00C946D24262FF999FECF92BD81BD66 -:1048B000F89A019700B4021639F01FBA20BD0FB65E -:1048C000F894FA9AF99A0FBE08950196272F0E943C -:1048D00054240C945324DC01CB01FC01F999FECF44 -:1048E00006C0F2BDE1BDF89A319600B40D92415078 -:0A48F0005040B8F70895F894FFCF88 -:1048FA0002205D09EB09C809940960090101C70191 -:10490A0028080A03140A3F4D36392605D904A30498 -:10491A006A04FD0316042F04480401020304050671 -:04492A000708090071 -:00000001FF diff --git a/keyboards/ergodox_ez/readme.md b/keyboards/ergodox_ez/readme.md index b1e9d7eca..67a5fb095 100644 --- a/keyboards/ergodox_ez/readme.md +++ b/keyboards/ergodox_ez/readme.md @@ -13,7 +13,7 @@ There are two main ways you could customize the ErgoDox EZ. This requires a little bit of familiarity with coding. -1. Go to https://github.com/jackhumbert/qmk_firmware and read the Readme at the base of this repository, top to bottom. Then come back here :) +1. Go to https://github.com/jackhumbert/qmk_firmware and read the readme at the base of this repository, top to bottom. Then come back here :) 2. Clone the repository (download it) 3. Set up a build environment as per [the build guide](/doc/BUILD_GUIDE.md) - Using a Mac and have homebrew? just run `brew tap osx-cross/avr && brew install avr-libc` @@ -31,9 +31,8 @@ The ErgoDox EZ firmware is open-source, so it would be wonderful to have your co 1. All work goes inside your keymap subdirectory (`keymaps/german` in this example). 2. `keymap.c` - this is your actual keymap file; please update the ASCII comments in the file so they correspond with what you did. -3. `compiled.hex` - a compiled version of your keymap. 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. +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 diff --git a/keyboards/gh60/README.md b/keyboards/gh60/README.md deleted file mode 100644 index 35c13375c..000000000 --- a/keyboards/gh60/README.md +++ /dev/null @@ -1,60 +0,0 @@ -## gh60 Rev C keyboard firmware - -![gh60 Rev C PCB](gh60revc.jpg) - - /* Column pin configuration - * col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 - * pin: F0 F1 E6 C7 C6 B6 D4 B1 B7 B5 B4 D7 D6 B3 (Rev.C) - */ - - /* Row pin configuration - * row: 0 1 2 3 4 - * pin: D0 D1 D2 D3 D5 - */ - - GPIO pads - 0 F7 WASD LEDs - 1 F6 ESC LED - 2 F5 FN LED - 3 F4 POKER Arrow LEDs - - B2 Capslock LED - B0 not connected - -Functions to controls LED clusters - - gh60_caps_led_on() - gh60_poker_leds_on() - gh60_fn_led_on() - gh60_esc_led_on() - gh60_wasd_leds_on() - - gh60_caps_led_off() - gh60_poker_leds_off() - gh60_fn_led_off() - gh60_esc_led_off() - gh60_wasd_leds_off() - -====================== - -## Quantum MK Firmware - -For the full Quantum feature list, see [the parent README.md](/README.md). - -## Building - -Download or clone the whole firmware and navigate to the keyboards/gh60_rev_c folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. - -Depending on which keymap you would like to use, you will have to compile slightly differently. - -### Default -To build with the default keymap, simply run `make`. - -### Other Keymaps -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` in the keymaps folder, and see keymap document (you can find in top README.md) and existent keymap files. - -To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: -``` -$ make KEYMAP=[default|jack|] -``` -Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboards/gh60/gh60.c b/keyboards/gh60/gh60.c index 6da4d8ee3..255d87de9 100644 --- a/keyboards/gh60/gh60.c +++ b/keyboards/gh60/gh60.c @@ -1,47 +1,4 @@ #include "gh60.h" -#include "led.h" - -__attribute__ ((weak)) -void matrix_init_user(void) { - // leave this function blank - it can be defined in a keymap file -}; - -__attribute__ ((weak)) -void matrix_scan_user(void) { - // leave this function blank - it can be defined in a keymap file -} - -__attribute__ ((weak)) -bool process_action_user(keyrecord_t *record) { - // leave this function blank - it can be defined in a keymap file - return true; -} - -__attribute__ ((weak)) -void led_set_user(uint8_t usb_led) { - // leave this function blank - it can be defined in a keymap file -} - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - - matrix_init_user(); -} - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - - matrix_scan_user(); -} - -bool process_action_kb(keyrecord_t *record) { - // put your per-action keyboard code here - // runs for every action, just before processing by the firmware - - return process_action_user(record); -} void led_set_kb(uint8_t usb_led) { // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here diff --git a/keyboards/gh60/gh60.h b/keyboards/gh60/gh60.h index a0ad51357..ca30562a4 100644 --- a/keyboards/gh60/gh60.h +++ b/keyboards/gh60/gh60.h @@ -1,10 +1,8 @@ #ifndef GH60_H #define GH60_H -#include "matrix.h" -#include "keymap.h" -#include "backlight.h" -#include +#include "quantum.h" +#include "led.h" /* GH60 LEDs * GPIO pads @@ -73,9 +71,4 @@ inline void gh60_wasd_leds_off(void) { DDRF &= ~(1<<7); PORTF &= ~(1<<7); } K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \ ) -void matrix_init_user(void); -void matrix_scan_user(void); -bool process_action_user(keyrecord_t *record); -void led_set_user(uint8_t usb_led); - #endif diff --git a/keyboards/gh60/keymaps/default/compiled.hex b/keyboards/gh60/keymaps/default/compiled.hex deleted file mode 100644 index 5c253e970..000000000 --- a/keyboards/gh60/keymaps/default/compiled.hex +++ /dev/null @@ -1,1019 +0,0 @@ -:100000000C9428020C946C020C946C020C946C02FC -:100010000C946C020C946C020C946C020C946C02A8 -:100020000C946C020C946C020C94A50B0C94770C41 -:100030000C949B190C946C020C946C020C946C0242 -:100040000C946C020C946C020C946C020C946C0278 -:100050000C946C020C94031A0C946C020C946C02B9 -:100060000C946C020C946C020C946C020C946C0258 -:100070000C946C020C946C020C946C020C946C0248 -:100080000C946C020C946C020C946C020C946C0238 -:100090000C946C020C946C020C946C020C946C0228 -:1000A0000C946C020C946C020C946C02E40C060D23 -:1000B000F40D060DF40D4B0D6E0DF40DC30DD60DA4 -:1000C000B310B310E210E21021114111711271123C -:1000D0004C117112FC11FC116212711271126B122F -:1000E0000912091209120912091209120912091238 -:1000F0000912091209120912091209120912091228 -:10010000191227122E1235123F12F1A1048A29006A -:100110001E001F00200021002200230024002500D3 -:10012000260027002D002E0035002B0014001A0099 -:100130000800150017001C0018000C001200130026 -:100140002F0030002A0039000400160007000900C3 -:100150000A000B000D000E000F00330034000000F9 -:100160002800E100C1001D001B0006001900050069 -:1001700011001000360037003800C000E500E00034 -:10018000E300E200000000002C000000000000007E -:100190003100E600E7006500E40029003A003B007A -:1001A0003C003D003E003F00400041004200430053 -:1001B000440045000100010001005200010001005F -:1001C0000100010001000100010001000100010027 -:1001D00001000100500051004F000100010001002A -:1001E0000100010001000100010001000100010007 -:1001F00001000100010001000100010001000100F7 -:1002000001000100010001000100010001000100E6 -:1002100000000000010000000000000001000100DB -:1002200001000100010001000100010001000100C6 -:1002300001000100010001000100010001000100B6 -:1002400001000100010001000100010001000100A6 -:100250000100010001000100010001000100010096 -:100260000100010001000100010001000100010086 -:100270000100010001000100010001000100010076 -:100280000100010001000100010001000100010066 -:100290000100010052000100010001000000000007 -:1002A00001000000000000000100010050005100AA -:1002B0004F000A03470048003600300000001203D8 -:1002C0006700650065006B006800610063006B00FB -:1002D00000000403090409026D00040100A0FA09EA -:1002E0000400000103010100092111010001223F66 -:1002F000000705810308000A090401000103010247 -:1003000000092111010001224D00070582030800A8 -:100310000A09040200010300000009211101000183 -:100320002236000705830308000A090403000103BD -:100330000000000921110100012239000705840392 -:100340001000011201100100000008EDFE606001C4 -:10035000000102000105010906A101050719E029B4 -:10036000E715002501950875018102050819012985 -:100370000595057501910295017503910105071910 -:1003800000297715002501957875018102C00501C6 -:100390000980A101850216010026B7001A01002A72 -:1003A000B700751095018100C0050C0901A10185F8 -:1003B00003160100269C021A01002A9C0275109562 -:1003C000018100C005010902A1010901A10005097F -:1003D0001901290515002501950575018102950171 -:1003E000750381010501093009311581257F9502C9 -:1003F0007508810609381581257F950175088106E4 -:10040000050C0A38021581257F950175088106C003 -:10041000C005010906A101050719E029E715002516 -:10042000019508750181029501750881010508197A -:100430000129059505750191029501750391010545 -:1004400007190029FF150025FF950675088100C0D2 -:1004500011241FBECFEFDAE0DEBFCDBF04B603FE2E -:1004600024C08091F1019091F201A091F301B0912B -:10047000F4018730904BA740B04BB9F41092F101D2 -:100480001092F2011092F3011092F40114BE84B79D -:10049000877F84BF88E10FB6F89480936000109244 -:1004A00060000FBEE0E0F8E3099511E0A0E0B1E0E4 -:1004B000EEE5FFE302C005900D92AC33B107D9F72A -:1004C00011E0ACE3B1E001C01D92A13FB107E1F73B -:1004D0000E94EB080C94AD1F0C940000089581E07D -:1004E000089508950C946E020C9490020C946F027F -:1004F00081FF02C0229A01C022982A980C947102AE -:1005000061110BC0FC018281882321F085EE0E94DD -:10051000620F03C085EE0E941F1080E090E00895F6 -:100520008091B70181FF04C0879A8F98859A03C094 -:1005300087988F9885988D9882FF04C0849A8C98AC -:10054000869A03C084988C9886988E98089581E046 -:1005500008950C94A70208950F931F93CF93DF93F0 -:100560008C01FC01C081D181CE010E94D517BE0152 -:100570000E945903EC01B8010E94A902882309F4E2 -:100580008DC0F8018281882309F44AC08091470117 -:1005900081111FC0C431F0E5DF0709F051C00E948E -:1005A000AB0281E0809347010E94CD1990934601F0 -:1005B0008093450110923E011092400110923F013C -:1005C0001092420110924101109244011092430195 -:1005D00065C080914501909146010E94D919883CDF -:1005E000910570F480913E01E82FF0E0EE0FFF1FBF -:1005F000E15CFE4FD183C0838F5F80933E014EC08C -:10060000C43880E5D80721F0C538D04501F13AC09B -:10061000F8018281882341F010923C0182E01EC0E3 -:10062000C438E0E5DE0759F580913C01811106C030 -:1006300086E20E94620F86E20E941F1082E01CC0C8 -:10064000C438F0E5DF0741F3C538D045D9F4F801E7 -:100650008281882331F010923D0180E20E946E1069 -:100660001DC080913D01811106C087E20E94620F8A -:1006700087E20E941F1080E20E9475100FC0C538EB -:10068000D04529F381E080933C0180933D01C8016E -:10069000DF91CF911F910F910C94760280E0DF9152 -:1006A000CF911F910F9108950C9472020C947402D3 -:1006B00008959EE0799FF001112496E4899FE00D52 -:1006C000F11D1124E60FF11DEE0FFF1FE25FFE4F3B -:1006D000859194910895880F991FFC01E657F04089 -:1006E000859194910895880F991FFC01E65FFE4F54 -:1006F0008591949108950F931F93CF93DF93EC010D -:10070000811520E3920750F5C11580E2D80708F063 -:10071000C3C0CB3BD10590F4C83AD10508F06AC0FC -:10072000C53AD10508F05BC0C430D10508F0D0C18E -:10073000219709F0CAC101E010E00AC2CF3FD105FC -:1007400011F008F0C5C1C03FD10508F0A2C0CE012C -:10075000805E9109089708F4BBC1B7C1C13090E52C -:10076000D90709F4A2C020F5C0318FE4D80770F48E -:10077000C11590E4D90708F094C0C11521E3D20750 -:1007800008F0A3C1DD278E01106CE2C1C115D04570 -:1007900009F09BC10E94DC128FEF94E32CE08150A2 -:1007A00090402040E1F700C000000E94281AD0C10C -:1007B000C11597E5D90758F4C03121E5D20708F0F3 -:1007C0001CC1C43180E5D80708F475C07EC1CE01D4 -:1007D00090578115904108F078C1DF7073C1C53A18 -:1007E000D10509F477C1C63AD10509F076C102E80E -:1007F00010E4AEC1C83AD10509F472C1C93AD105B5 -:1008000009F471C1CA3AD10509F470C1CB3AD105D6 -:1008100009F46FC1CC3AD10509F46EC1CD3AD105C6 -:1008200009F46DC1C03BD10509F46CC1CE3AD105C4 -:1008300009F46BC1CF3AD10509F46AC1C13BD105B6 -:1008400009F469C1C23BD10509F468C1C33BD105B4 -:1008500009F467C1C43BD10509F466C1C53BD105A4 -:1008600009F465C1C63BD10509F464C1C73BD10594 -:1008700009F463C1C83BD10509F462C1C93BD10584 -:1008800009F461C1CA3BD10509F460C100E014E478 -:100890005FC18E0110655CC1CE019F700E94730321 -:1008A00058C1DF708E01106A53C18091D4018160FC -:1008B0008093D4014DC10E94D51B811102C00E94BA -:1008C000BB1B0E94F21B90E09093F1018093F0011A -:1008D000C23080E5D80721F48091F001816086C0A4 -:1008E000C43090E5D90721F48091F00182607EC088 -:1008F000C63020E5D20721F48091F001846076C0F3 -:10090000C83080E5D80719F48091F00127C0CA30BB -:1009100090E5D90721F48091F001806167C0CC3067 -:1009200020E5D20721F48091F00180625FC0CE30D3 -:1009300080E5D80721F48091F001806457C0C03170 -:1009400090E5D90721F48091F00180684FC0C23151 -:1009500020E5D20729F48091F0018460886046C0C8 -:10096000C33080E5D80721F48091F0018E7F3EC02E -:10097000C53090E5D90721F48091F0018D7F36C014 -:10098000C73020E5D20721F48091F0018B7F2EC083 -:10099000C93080E5D80719F48091F00126C0CB302A -:1009A00090E5D90721F48091F0018F7E1FC0CD30F2 -:1009B00020E5D20721F48091F0018F7D17C0CF3060 -:1009C00080E5D80721F48091F0018F7B0FC0C13101 -:1009D00090E5D90721F48091F0018F7707C0C331EA -:1009E000D04531F48091F0018B7F877F8093F001B7 -:1009F0008091F0010E94F61BABC08D2F99278F705C -:100A0000992781309105D9F49E012370332702C0C4 -:100A1000880F991F2A95E2F79C688E0144E0000F29 -:100A2000111F4A95E1F700271370802B912B53E09B -:100A3000CC0FDD1F5A95E1F7C076DD272FC082303D -:100A4000910531F4DC2FCC278E01016F106A80C034 -:100A50008330910569F4CE018370992701E010E09D -:100A600002C0000F111F8A95E2F7C8019C680FC0F1 -:100A700084309105B9F4CE018370992701E010E02C -:100A800002C0000F111F8A95E2F7C8019A6823E09F -:100A9000CC0FDD1F2A95E1F7C07ED7708C010C2B9F -:100AA0001D2B56C08530910531F4DC2FCC278E01EB -:100AB000046F106A4DC0069709F04AC0CF71DD2758 -:100AC000DC2FCC278E01106243C000E010E040C054 -:100AD0008E013EC001E810E43BC003E810E438C0DA -:100AE00002EE14E435C009EE14E432C00AEE14E458 -:100AF0002FC005EB14E42CC006EB14E429C007EB6F -:100B000014E426C00CEC14E423C00DEC14E420C063 -:100B100003E815E41DC00AE815E41AC002E915E46B -:100B200017C004E915E414C001E216E411C003E2A1 -:100B300016E40EC004E216E40BC005E216E408C099 -:100B400006E216E405C007E216E402C00AE216E473 -:100B5000C801DF91CF911F910F9108959EE0799F79 -:100B6000F001112496E4899FE00DF11D1124E60F98 -:100B7000F11DEE0FFF1FE25FFE4F85919491803EC5 -:100B80009105E0F4803C910558F58133910509F415 -:100B90006FC048F48932910509F463C08A32910527 -:100BA00009F46DC072C089339105E9F0823891056E -:100BB000D1F08533910509F44DC067C0833E91059E -:100BC00081F138F4803E9105B9F0823E9105D9F06B -:100BD0005CC0863E910561F1873E9105A1F155C04B -:100BE0000E946B0308952091F00120FD02C021FFB7 -:100BF0004CC080EE90E049C08091F00180FFF9CFB9 -:100C000089E390E042C08091F00182FF0EC08091A4 -:100C1000F00184FF03C080E090E037C083EE90E0F5 -:100C200034C08091F00182FFF2CF82EE90E02DC0BF -:100C30008091F00183FF0BC08091F00184FDEBCF28 -:100C400087EE90E022C08091F00183FFF5CF86EE21 -:100C500090E01BC08091F00185FF07C089E290E021 -:100C600014C08091F00185FFF9CF85E390E00DC0BD -:100C70008091F00186FF07C08AE290E006C0809173 -:100C8000F00186FFF9CF81E390E00E947B03089595 -:100C90000C947802E82FF0E0ED5DFE4F8081E82FA4 -:100CA000EF70F0E082958F7021E030E0A90102C082 -:100CB000440F551F8A95E2F740A308950F931F93A1 -:100CC000CF93DF9385B7806885BF85B7806885BF80 -:100CD000C4E0D0E001E010E0FE01ED5DFE4F808158 -:100CE000E82FEF70F0E021A182958F70A80102C07B -:100CF000440F551F8A95E2F7CA01822B81A38C2FDE -:100D00000E944A06219740F78DE090E061E070E094 -:100D1000FC01EB5EFE4F2081E22FEF70F0E042A17C -:100D200022952F70DB0102C0AA0FBB1F2A95E2F7A4 -:100D30009D01242B22A3019758F7DF91CF911F919A -:100D40000F910C945403EF92FF920F931F93CF9344 -:100D5000DF9302E511E0C4E0EE24E394F12CD5E04A -:100D60008C2F0E944A068DE090E040E050E0FC01AC -:100D7000EB5EFE4F6081E62FEF70F0E020A130E0E7 -:100D800062956F7002C0359527956A95E2F720FD50 -:100D900009C09701082E02C0220F331F0A94E2F700 -:100DA000422B532B019718F7F801929182918F01F2 -:100DB0008417950721F051834083D09300018C2F35 -:100DC0000E944A06C15060F68091000187FD1FC055 -:100DD0008150809300018F3F39F08FE99FE00197A8 -:100DE000F1F700C0000013C080E090E0FC01EE5A73 -:100DF000FE4FDC01A85BBE4F18962D913C911997D0 -:100E0000318720870297863FEFEF9E0779F70E9490 -:100E1000560381E0DF91CF911F910F91FF90EF90EA -:100E20000895E82FF0E0EE0FFF1FEE5AFE4F80818D -:100E30009181089508950F931F93CF930CE511E0CE -:100E4000C0E0F801929182918F010E945019C80F61 -:100E5000F1E002351F07A9F78C2FCF911F910F9159 -:100E6000089580916C010895CF93DF9300D01F9275 -:100E7000CDB7DEB79C018091E701843019F593E08E -:100E800099833B832A839093E9008FEF9091E80048 -:100E9000815095FD06C095ED9A95F1F700008111FE -:100EA000F5CF8091E80085FF0DC040E050E063E0A1 -:100EB00070E0CE0101960E9495098091E8008E773E -:100EC0008093E8000F900F900F90DF91CF910895DD -:100ED000CF93DF9300D01F92CDB7DEB72091E7010B -:100EE000243021F522E029839B838A8383E0809349 -:100EF000E9008FEF9091E800815095FD06C095EDD7 -:100F00009A95F1F700008111F5CF8091E80085FFF7 -:100F10000DC040E050E063E070E0CE0101960E9419 -:100F200095098091E8008E778093E8000F900F90EC -:100F30000F90DF91CF9108952091E7012430F1F4D3 -:100F400022E02093E9002FEF3091E800215035FD99 -:100F500006C035ED3A95F1F700002111F5CF20914B -:100F6000E80025FF0BC040E050E065E070E00E9423 -:100F700095098091E8008E778093E8000895CF93DB -:100F8000DF93EC019091E701943009F046C0809125 -:100F90000B018823D9F080910C018823B9F090933C -:100FA000E9008FEF9091E800815095FD06C095E132 -:100FB0009A95F1F700008111F5CF8091E80085FF47 -:100FC0002CC040E050E060E170E017C081E0809309 -:100FD000E9008FEF9091E800815095FD06C095EDF6 -:100FE0009A95F1F700008111F5CF8091E80085FF17 -:100FF00014C040E050E068E070E0CE010E94950926 -:101000008091E8008E778093E80080E1FE01ACE5F6 -:10101000B1E001900D928A95E1F7DF91CF910895AB -:101020008091E601811109C00E942A0B0E94870B62 -:101030008091E20084608093E20008951092E601BE -:101040000895089508950C94951942E061EC81E0AB -:101050000E94A40A42E061EC82E00E94A40A42E0FD -:1010600061EC83E00E94A40A42E161EC84E00C940C -:10107000A40A8091E901833009F455C030F481302D -:1010800071F0823009F48EC008958A3009F47AC074 -:101090008B3009F460C0893009F09CC020C0809179 -:1010A000E801813A09F096C08091E800877F80933B -:1010B000E8008091EC019091ED01892B21F460E131 -:1010C0008CE591E003C060E080E090E070E00E9479 -:1010D000E0098091E8008B778093E8000895809183 -:1010E000E801813209F076C08091EC019091ED0128 -:1010F000009719F0039709F06DC08091E800877F91 -:101100008093E8008091E80082FD05C08091E701AE -:101110008111F8CF5FC08091F10080936C018091C4 -:10112000E8008B7753C08091E801813A09F052C002 -:101130008091EC019091ED01892B09F04BC08091D9 -:10114000E800877F8093E8008091E80080FFFCCF73 -:1011500080910B0136C08091E8018132D9F58091F0 -:10116000EC019091ED01892BA9F58091E800877F32 -:101170008093E8000E94D90A8091EA0180930B01D4 -:101180000C94DC128091E801813221F58091E80015 -:10119000877F8093E8000E94D90A8091EB018093B9 -:1011A0006D0108958091E801813AA1F48091E800F1 -:1011B000877F8093E8008091E80080FFFCCF8091DA -:1011C0006D018093F1008091E8008E778093E800B4 -:1011D0000C94D90A089584B7877F84BF88E10FB63D -:1011E000F89480936000109260000FBE90E080E859 -:1011F0000FB6F89480936100909361000FBE0E9437 -:101200007C0E0E942A0B0E94870B8091E200846072 -:101210008093E20078940E940D0E0E947E0E81E081 -:1012200091E00E94280E8091E701853069F40E94C8 -:101230005C198091E5018823B1F30E948719882306 -:1012400091F30E947F09EFCF0E94840EECCF292FEB -:10125000332723303105C9F064F42130310581F0A2 -:101260002230310509F043C08DE690E026ED32E0F2 -:1012700042C021323105F1F02232310541F137C04F -:1012800082E190E023E433E036C099278130910574 -:1012900041F08230910541F0892B49F5E2EDF2E011 -:1012A00005C0EEEBF2E002C0E2EBF2E0849190E0E8 -:1012B0009F0121C06430D8F4E62FF0E0EE0FFF1F4D -:1012C000EC5CFE4F2081318189E090E014C06430F5 -:1012D00070F470E0FB01EE0FFF1FE45DFE4F208114 -:1012E0003181FB01E85DFE4F808190E004C080E029 -:1012F00090E020E030E0FA0131832083089580E11E -:1013000089BD82E189BD09B400FEFDCF8091D8007E -:101310008F7D8093D8008091E00082608093E00010 -:101320008091E00081FDFCCF0895CF92DF92EF9293 -:10133000FF920F931F93CF93DF93EC018B016A0110 -:101340000E94F80A811133C0C114D10439F0F601AA -:1013500080819181081B190BC80FD91FE12CF12C3A -:101360000115110519F18091E80085FD16C08091E5 -:10137000E8008E778093E800C114D10449F0F601AB -:1013800080819181E80EF91EF182E08285E00FC034 -:101390000E94F80A882321F30AC089918093F10002 -:1013A00001501109FFEFEF1AFF0ADACF80E0DF9159 -:1013B000CF911F910F91FF90EF90DF90CF90089504 -:1013C0002091EE013091EF012617370748F06115A3 -:1013D000710539F42091E8002E772093E80001C0D0 -:1013E000B90140E061157105A9F12091E7012223BF -:1013F00009F443C0253009F442C02091E80023FDE0 -:1014000040C02091E80022FD32C02091E80020FF7A -:10141000E9CF4091F3002091F20030E0342BFC0141 -:10142000CF016115710559F02830310540F48191E3 -:101430008093F100615071092F5F3F4FF1CF41E080 -:101440002830310509F040E02091E8002E77209304 -:10145000E800C8CF4111C9CF0AC08091E7018823B5 -:1014600061F0853061F08091E80083FD0AC08091D1 -:10147000E80082FFF2CF80E0089582E0089583E0E3 -:10148000089581E008952091EE013091EF01261733 -:10149000370748F06115710539F42091E8002E777F -:1014A0002093E80001C0B901FC0120E0611571053D -:1014B00091F18091E701882309F440C0853009F457 -:1014C0003FC08091E80083FD3DC08091E80082FD2F -:1014D0002FC08091E80080FFE9CF2091F300809138 -:1014E000F20090E0922B6115710559F0883091055A -:1014F00040F424912093F1003196615071090196D6 -:10150000F2CF21E0089709F020E08091E8008E7783 -:101510008093E800CBCF2111CCCF0AC08091E701A6 -:10152000882361F0853061F08091E80083FD0AC076 -:101530008091E80082FFF2CF80E0089582E0089574 -:1015400083E0089581E00895982F973058F590939F -:10155000E900981739F07091EC002091ED0050915E -:10156000F00003C0242F762F50E021FF19C03091E6 -:10157000EB003E7F3093EB003091ED003D7F3093E8 -:10158000ED003091EB0031603093EB007093EC0094 -:101590002093ED005093F0002091EE0027FF07C04C -:1015A0009F5FD3CF8F708093E90081E0089580E042 -:1015B00008958091E80187FF11C08091E80082FDC5 -:1015C00005C08091E7018111F8CF11C08091E8003A -:1015D0008B770BC08091E701882349F08091E80068 -:1015E00080FFF8CF8091E8008E778093E80008951F -:1015F0002091E4003091E50095E64091EC00842FC5 -:10160000817040FF22C08091E80080FD1CC0809165 -:10161000E701882391F0853091F08091EB0085FD02 -:1016200010C04091E4005091E5004217530729F3A0 -:101630009A01915011F784E0089582E0089583E0C3 -:10164000089581E0089580E008954091E80042FF08 -:10165000DECF08950E94980B0E94A00BE0EEF0E010 -:10166000808181608083E8EDF0E080818F778083E6 -:1016700019BCA7EDB0E08C918E7F8C9380818F7E1A -:1016800080831092E60108950F931F93CF93DF9309 -:101690000E94980B0E94A00BC8EDD0E088818F7744 -:1016A000888388818068888388818F7D888319BC3E -:1016B0001092E7011092E3011092E5011092E4010B -:1016C00000EE10E0F80180818B7F8083888181604B -:1016D000888342E060E080E00E94A40AE1EEF0E04E -:1016E00080818E7F8083E2EEF0E080818160808364 -:1016F000808188608083F80180818E7F80838881EB -:1017000080618883DF91CF911F910F910895E8ED5B -:10171000F0E080818F7E8083E7EDF0E08081816062 -:10172000808384E082BF81E08093E6010C94440BC7 -:10173000E8EDF0E080818E7F80831092E2000895D2 -:101740001092DA001092E10008951F920F920FB6E6 -:101750000F9211242F933F934F935F936F937F9337 -:101760008F939F93AF93BF93EF93FF938091E1008B -:1017700082FF0BC08091E20082FF07C08091E100F0 -:101780008B7F8093E1000E940C0E8091DA0080FF35 -:101790001FC08091D80080FF1BC08091DA008E7F2F -:1017A0008093DA008091D90080FF0DC080E189BD6F -:1017B00082E189BD09B400FEFDCF81E08093E7019D -:1017C0000E94100805C019BC1092E7010E941E0873 -:1017D0008091E10080FF19C08091E20080FF15C078 -:1017E0008091E2008E7F8093E2008091E200806130 -:1017F0008093E2008091D80080628093D80019BC69 -:1018000085E08093E7010E9422088091E10084FF37 -:1018100030C08091E20084FF2CC080E189BD82E16C -:1018200089BD09B400FEFDCF8091D8008F7D8093E3 -:10183000D8008091E1008F7E8093E1008091E200EA -:101840008F7E8093E2008091E20081608093E200CD -:101850008091E301882311F084E007C08091E300C8 -:1018600087FD02C081E001C083E08093E7010E9410 -:1018700023088091E10083FF29C08091E20083FF6B -:1018800025C08091E100877F8093E10082E0809312 -:10189000E7011092E3018091E1008E7F8093E100E7 -:1018A0008091E2008E7F8093E2008091E20080616F -:1018B0008093E20042E060E080E00E94A40A809110 -:1018C000F00088608093F0000E942108FF91EF9162 -:1018D000BF91AF919F918F917F916F915F914F9148 -:1018E0003F912F910F900FBE0F901F9018951F9250 -:1018F0000F920FB60F9211242F933F934F935F9344 -:101900006F937F938F939F93AF93BF93CF93DF9307 -:10191000EF93FF93C091E900CF708091EC00D82F36 -:10192000D17080FDD0E81092E9008091F000877FAF -:101930008093F00078940E94BB0C1092E900809193 -:10194000F00088608093F000CD2BCF70C093E90049 -:10195000FF91EF91DF91CF91BF91AF919F918F91C7 -:101960007F916F915F914F913F912F910F900FBE9B -:101970000F901F9018951F93CF93DF93CDB7DEB7CD -:10198000AA970FB6F894DEBF0FBECDBFE8EEF1E028 -:1019900088E08E0F9091F10091938E13FBCF0E94FF -:1019A00039088091E80083FF1FC18091E801909180 -:1019B000E901492F50E04A30510508F015C1FA01FC -:1019C000EA5AFF4F0C945D1F803881F0823809F08D -:1019D0000BC18091EC018F708093E9008091EB0046 -:1019E00085FB882780F91092E90006C08091E40108 -:1019F0009091E501911182609091E800977F90931A -:101A0000E8008093F1001092F100C8C0282F2D7FCC -:101A100009F0EAC0882319F0823061F0E5C08091B6 -:101A2000EA01813009F0E0C0933009F080E0809352 -:101A3000E5012BC08091EA01811127C08091EC0162 -:101A40008F7009F4D1C08093E9002091EB0020FF52 -:101A50001CC0933021F48091EB00806214C09091FF -:101A6000EB0090619093EB0021E030E0A90102C00F -:101A7000440F551F8A95E2F74093EA001092EA005E -:101A80008091EB0088608093EB001092E9008091D8 -:101A9000E800877F86C08111A7C01091EA011F77F7 -:101AA0008091E3008078812B8093E3008091E800AF -:101AB000877F8093E8000E94D90A8091E80080FF28 -:101AC000FCCF8091E30080688093E300111102C095 -:101AD00082E001C083E08093E70186C080588230B5 -:101AE00008F082C08091EA019091EB018C3D53E0B7 -:101AF000950779F583E08A838AE289834FB7F89462 -:101B0000DE01139620E03EE051E2E32FF0E0509337 -:101B10005700E49120FF03C0E295EF703F5FEF7044 -:101B20008E2F90E0EA3010F0C79601C0C0968D93DA -:101B30009D932F5F243149F74FBF8091E800877F45 -:101B40008093E8006AE270E0CE0101960E94E0090D -:101B500014C0AE014F5F5F4F6091EC010E942709F6 -:101B6000BC01009709F440C09091E800977F9093E2 -:101B7000E80089819A810E94430A8091E8008B776E -:101B80008093E80031C0803879F58091E800877F44 -:101B90008093E8008091E3018093F1008091E80058 -:101BA0008E778093E8000E94D90A1EC081111CC064 -:101BB0009091EA019230C0F48091E800877F809391 -:101BC000E8009093E3010E94D90A8091E30181111A -:101BD00006C08091E30087FD02C081E001C084E07F -:101BE0008093E7010E9425088091E80083FF0AC0E6 -:101BF0008091E800877F8093E8008091EB0080620D -:101C00008093EB00AA960FB6F894DEBF0FBECDBF4F -:101C1000DF91CF911F9108950895CF938091E701AF -:101C20008823A1F0C091E900CF709091EC00892F3A -:101C3000817090FD80E8C82B1092E9008091E80047 -:101C400083FD0E94BB0CCF70C093E900CF91089533 -:101C500090937301809372010895E0917201F09165 -:101C60007301309721F00190F081E02D099480E01C -:101C70000895E0917201F0917301309721F0028094 -:101C8000F381E02D09940895E0917201F0917301C0 -:101C9000309721F00480F581E02D0994089520917A -:101CA0007001309171018217930771F09093710167 -:101CB00080937001E0917201F0917301309721F0EF -:101CC0000680F781E02D0994089520916E013091EE -:101CD0006F018217930771F090936F0180936E01EB -:101CE000E0917201F0917301309721F00084F18549 -:101CF000E02D0994089508950C947B0E0E94C41958 -:101D00000E945E060C948E1A5F926F927F928F9261 -:101D10009F92AF92BF92CF92DF92EF92FF920F937A -:101D20001F93CF93DF9300D000D01F92CDB7DEB7C3 -:101D30000E94A3069FE7C92E91E0D92E04E010E08F -:101D4000AA24A394B12C502E802F0E9411074C017D -:101D5000F601729062906F01682679266114710411 -:101D6000A1F40150110978F78FEF89838A831B82D0 -:101D70000E94CD198160782F9D838C8349815A817F -:101D80006B818D810E94340F38C08091D40181FD18 -:101D90000E941A072DE030E07501022E02C0EE0C01 -:101DA000FF1C0A94E2F7C70186219721892B09F1CC -:101DB00029835A828E209F2091E0892809F490E09F -:101DC0009B830E94CD198160782F9D838C834981EC -:101DD0005A816B818D810E94340F000F111FF80111 -:101DE000EB58FE4F80819181E826F926F182E0824E -:101DF00004C02150310980F6B4CF0E94751D1091A6 -:101E000074010E942D0E1817D1F00E942D0E8093A0 -:101E100074010F900F900F900F900F90DF91CF9162 -:101E20001F910F91FF90EF90DF90CF90BF90AF90F8 -:101E30009F908F907F906F905F900C9448060F90CA -:101E40000F900F900F900F90DF91CF911F910F91F6 -:101E5000FF90EF90DF90CF90BF90AF909F908F90CA -:101E60007F906F905F900895CF93DF93CDB7DEB7EB -:101E70002B970FB6F894DEBF0FBECDBF4F835887A8 -:101E800069877A878B87DE01119686E0FD011192C2 -:101E90008A95E9F785E0FE01379601900D928A95C3 -:101EA000E1F749815A816B817C818D819E810E94FD -:101EB0007A152B960FB6F894DEBF0FBECDBFDF911B -:101EC000CF910895882309F4B9C0823859F40E944B -:101ED0002D0E81FDB3C089E30E9454180E94211980 -:101EE00089E30CC0833871F40E942D0E80FDA6C0DA -:101EF00083E50E9454180E94211983E50E949618D8 -:101F00000C942119843859F40E942D0E82FD96C03C -:101F100087E40E9454180E94211987E4EFCF9CEFB8 -:101F2000980F913A18F40E945418EACF90E2980F53 -:101F3000983050F4877091E001C0990F8A95EAF7C4 -:101F4000892F0E94DA18DCCF9BE5980F933070F44C -:101F5000853A29F0863A31F083E890E005C081E8BF -:101F600090E002C082E890E00C944F0E98E5980F44 -:101F7000933108F063C0883A39F1893A41F18A3ADD -:101F800049F18B3A51F18C3A59F18D3A61F1803B2C -:101F900069F18E3A71F18F3A79F1813B81F1823B9F -:101FA00089F1833B91F1843B99F1853BA1F1863B1B -:101FB000A9F1873BB1F1883BB9F1893BC1F18A3B7B -:101FC000C9F180E090E038C082EE90E035C089EE43 -:101FD00090E032C08AEE90E02FC085EB90E02CC0FC -:101FE00086EB90E029C087EB90E026C08CEC90E077 -:101FF00023C08DEC90E020C083E891E01DC08AE80A -:1020000091E01AC082E991E017C084E991E014C020 -:1020100081E292E011C083E292E00EC084E292E09D -:102020000BC085E292E008C086E292E005C087E23C -:1020300092E002C08AE292E00C94650E0895882333 -:1020400009F44BC0823859F40E942D0E81FF45C01F -:1020500089E30E9454180E94211989E30CC0833837 -:1020600071F40E942D0E80FF38C083E50E94541841 -:102070000E94211983E50E9496180C942119843836 -:1020800059F40E942D0E82FF28C087E40E94541844 -:102090000E94211987E4EFCF9CEF980F913A58F3F3 -:1020A00090E2980F983050F4877091E001C0990F3A -:1020B0008A95EAF7892F0E94E018DFCF9BE5980FF9 -:1020C000933020F480E090E00C944F0E885A8331D6 -:1020D00020F480E090E00C94650E0895882321F0B0 -:1020E0000E94DA180C9421190895882321F00E9487 -:1020F000E0180C94211908957F928F929F92AF92CD -:10210000BF92CF92DF92EF92FF920F931F93CF93E4 -:10211000DF931F92CDB7DEB77C01C62E772EFC0170 -:10212000058102950F70128111110E94F7180E940B -:102130004D18882379F0112369F080E28C0D8830E6 -:1021400048F082E00E9436180E944D1891E0D82E87 -:10215000D92601C0D12CE72DE295EF70F0E0E05ACE -:10216000FF4F0C945D1F872D807F072D0F708823F4 -:1021700011F00295007F112389F0002309F498C122 -:1021800080E28C0D883020F4802F0E94DA1803C082 -:10219000802F0E94EA180E9421198AC18C2D0E946A -:1021A0001F10002309F49DC180E28C0D883020F4BB -:1021B000802F0E94E01803C0802F0E94F0180E9418 -:1021C00021198FC1872D807F972D9F70803211F448 -:1021D000892F03C0892F8295807FCC2021F0F1E0E8 -:1021E000CF16A1F01DC0112339F0002319F10130E1 -:1021F00009F50E940A1975C1002319F0013009F48C -:1022000070C189830E940D19898110C1112321F0A9 -:10221000063008F066C10EC0053008F062C106C184 -:10222000112359F0002331F0F701958190FF40C14F -:102230009F7095830E946E1054C1002309F4F6C06C -:102240003DC1872D86958695837090E0009719F0A3 -:10225000019761F046C1112321F08C2D972D9370C9 -:1022600002C080E090E00E944F0E3BC1112321F09C -:102270008C2D972D937002C080E090E00E94650E37 -:1022800030C18C2D112319F00E947D1C02C00E94C8 -:10229000E51C0E946A1D25C1872D837009F052C07C -:1022A00011111FC18C2D829586958770880F880F1C -:1022B0009C2D9F70892E912CA12CB12C082E04C02E -:1022C000880C991CAA1CBB1C0A94D2F7C4FE14C02B -:1022D0000FE010E020E030E0B901A80104C0440F95 -:1022E000551F661F771F8A95D2F7CB01BA016095FB -:1022F00070958095909503C060E070E0CB01272D2C -:1023000026952695237030E02230310569F0233080 -:10231000310589F0682979298A299B2921303105DD -:1023200071F00E94C216DDC0682979298A299B298B -:102330000E94DE16D6C00E94C216C501B4010E94DA -:10234000A616CFC0112319F0872D817001C0869584 -:10235000882309F4C6C08C2D829586958770880FD6 -:10236000880F9C2D9F70892E912CA12CB12C082EAA -:1023700004C0880C991CAA1CBB1C0A94D2F7C4FE8A -:1023800014C00FE010E020E030E0B901A80104C063 -:10239000440F551F661F771F8A95D2F7CB01BA01EC -:1023A000609570958095909503C060E070E0CB01DA -:1023B000272D269526952370422F50E04230510557 -:1023C00069F04330510589F0682979298A299B29C8 -:1023D0004130510571F00E949C1783C0682979290A -:1023E0008A299B290E94B8177CC00E949C17C501AE -:1023F000B4010E94801775C08C2D90E0FC01E05E56 -:10240000F109E531F10508F04FC0E059FF4F0C9498 -:102410005D1F0C2D0F70872D8F71112321F00E94ED -:102420001917802F07CF0E943A17802F0E9475102E -:1024300058C0112341F0053008F053C0872D8F712B -:102440000E945F174EC0063008F04BC0F7CF112333 -:1024500039F0872D8F710E94191743C01123C9F3DA -:10246000872D8F710E943A173CC0112329F0872DC8 -:102470008F710E94041735C00E94FA1632C01123D2 -:1024800051F0172D1F71812F0E94191763E0812FC2 -:102490000E942D1826C081E00E943618023008F1F3 -:1024A00082E00E9436181DC0112331F0002389F20A -:1024B0008C2D0E94620F15C0002391F28C2D0E947A -:1024C0001F100FC0472D4F706C2DC7010E94800256 -:1024D0000E941E1606C0472D4F706C2DC7010E942A -:1024E0005803DD20F9F00E94291880FD1BC0F70178 -:1024F00012820E9423180E941917C7010E94A1127C -:102500000E9423180F90DF91CF911F910F91FF90A0 -:10251000EF90DF90CF90BF90AF909F908F907F9083 -:102520000C943A170F90DF91CF911F910F91FF906C -:10253000EF90DF90CF90BF90AF909F908F907F9063 -:1025400008950F931F93CF93DF93EC0188819981B6 -:102550002B813C81232BB9F09F3F11F48F3F99F0E1 -:10256000CE010E94AC02882371F0688179818A8152 -:102570000E941F188C010E94D4170E949B16B8015C -:10258000CE010E947C10DF91CF911F910F91089591 -:102590000E94F7180E9407190E94CC180E94211966 -:1025A0000E941B1E0E946A1D80E090E00E944F0E58 -:1025B00080E090E00C94650E0E94E7180C94C8121D -:1025C0000E941418292F22952F7030E02C303105ED -:1025D0004CF42A3031056CF4225031092230310597 -:1025E000A8F407C02C30310569F02F30310551F0C7 -:1025F0000DC0803F69F018F4803E40F409C0843F6C -:1026000029F406C093FB882780F9089580E0089597 -:1026100081E00895CF93DF9300D000D01F92CDB713 -:10262000DEB70F900F900F900F900F90DF91CF912A -:102630000895CF93DF9300D000D000D0CDB7DEB7A0 -:1026400026960FB6F894DEBF0FBECDBFDF91CF91B7 -:1026500008951F93CF93DF93C0917F0116E080917F -:102660008001C81799F0D0E01C9FF0011D9FF00D6C -:102670001124EF57FE4F4081518162817381848123 -:1026800095810E9419132196C770E9CFDF91CF91F0 -:102690001F9108954091B1015091B2016091B30131 -:1026A0007091B4018091B5019091B6010C94191309 -:1026B0008091B60182958F7009F054C08091B3016A -:1026C000882309F44FC080917F01A091800160911F -:1026D000B1017091B2014091B4015091B501B6E0E1 -:1026E0008A1709F43FC090E041155105C1F17F3FC1 -:1026F00011F46F3FA1F1B89FF001B99FF00D1124C3 -:10270000EF57FE4F218172132AC02081621327C028 -:102710002281211124C0238134812417350710F42C -:1027200021503109241B350B283C3105C0F4209180 -:10273000B6012F7020612093B60126E0289FF0019A -:10274000299FF00D1124EA57FE4F80818F70806120 -:10275000808381EB91E00E94A1120C9429130196D1 -:102760008770BECF0895CF92DF92EF92FF920F93C2 -:102770001F93CF93DF93CDB7DEB762970FB6F89470 -:10278000DEBF0FBECDBF8C0185E0F801DE011D96D6 -:1027900001900D928A95E1F7D8014C9111965C91C8 -:1027A000119712966C9112971396CD90DC90149716 -:1027B0003091B1017091B2018091B4019091B50155 -:1027C000009709F46BC17F3F19F43F3F09F466C1DC -:1027D000E090B301EE2009F4C0C02091B601C81604 -:1027E000D90628F0F601E81BF90BCF0104C080954B -:1027F00090958C0D9D1DFF24F394883C910578F0F5 -:10280000F12C207F09F0C6C07C2DD98AC88A89891D -:102810000E940A1381EB91E00E94A112B1C0822FA5 -:10282000807F09F046C0751314C0341312C06111C3 -:1028300010C02F7020612093B6010E944A1381EBD3 -:1028400091E00E94A1128091B601D80115968C9357 -:102850002EC0CD2819F15F3F11F44F3FF9F0F62E4D -:1028600061111CC080917F012091800136E08217A8 -:1028700009F45AC090E0389FF001399FF00D1124FF -:10288000EF57FE4F7181571306C07081471303C085 -:102890007281711103C001968770E9CFF62E66230D -:1028A00009F418C18091B60181608093B601F12CC2 -:1028B00011C1751308C0341306C0611104C08091A2 -:1028C000B601D801C3C04D875E878D859E856A8B12 -:1028D0000E94E0126A898823E1F16623D1F12091F8 -:1028E000B601822F82958F7090E0029774F08091EC -:1028F000B1019091B20198878F831986DB86CA86D1 -:102900002C87CE0107960E94A11286E0F801A1EB68 -:10291000B1E001900D928A95E1F70E9458130E9450 -:102920004A13FF24F394D6C04D875E878D859E851C -:102930000E941418292F22952F7030E02230310583 -:102940000CF0BCC09F7009F0B6C0805E883008F4FF -:10295000C1C0C8010E94A112E4CFC816D90608F46C -:1029600053C0F601E81BF90BCF01883C910508F430 -:1029700050C0F12C7C2DD98AC88A89890E940A13FB -:10298000E1EBF1E086E0DF011D928A95E9F70E9414 -:102990004A13A0C0751314C0341312C0611110C0C3 -:1029A0008091B601F8018583C8010E94A11286E0DA -:1029B000E1EBF1E0DF011D928A95E9F7FE2C8AC078 -:1029C0004D875E878D859E856A8B0E94E0126A899D -:1029D000882309F4BECF662309F4BBCF2091B6014A -:1029E000822F82958F7090E002970CF48ECF8091A9 -:1029F000B1019091B2019A8389831B82DD82CC82DE -:102A00002E83CE0101967FCF809590958C0D9D1DD4 -:102A1000ACCFF62E662309F49CCF75132EC0341369 -:102A20002CC02091B60120FD1FC0822F82958F708F -:102A3000D9F0D80115962C9315978F3049F08F5FF8 -:102A4000982F9295907F822F8F70892B15968C935B -:102A5000C8010E94A11286E0F801A1EBB1E001904B -:102A60000D928A95E1F793CF86E0F801A1EBB1E0F2 -:102A700001900D928A95E1F72DC04D875E878D8577 -:102A80009E850E94E012811140CF8091B601816045 -:102A90008093B601C8010E94A1121CC0662309F4EC -:102AA00058CF4D875E878D859E850E94E0128823D2 -:102AB00009F44FCF2ACF811148CF0CC02430310503 -:102AC0000CF047CF9F7009F440CFF8019581907FBB -:102AD00009F03BCF8F2D62960FB6F894DEBF0FBE84 -:102AE000CDBFDF91CF911F910F91FF90EF90DF90BD -:102AF000CF9008951F93CF93DF93CDB7DEB72C9778 -:102B00000FB6F894DEBF0FBECDBF4F8358876987DD -:102B10007A878B879C87CE0107960E94B313882300 -:102B200069F08F8198852A853B85232BF1F19F3FA2 -:102B300009F063C08F3F09F060C037C086E0FE0136 -:102B40003796DE01119601900D928A95E1F76F811B -:102B50007885EA85FB85309741F17F3F11F46F3F1F -:102B600021F12091800130E0C901019687709927F9 -:102B700040917F0150E08417950709F447C06983AD -:102B80007A83FD83EC8396E0929FD001939FB00DF2 -:102B90001124AF57BE4FFE01319601900D929A95C8 -:102BA000E1F7809380010E94291316E080917F0154 -:102BB000909180018917C1F1189FC00111248F578E -:102BC0009E4F0E94B313882379F1E0917F011E9FED -:102BD000F0011124EF57FE4F4081518162817381D2 -:102BE000848195810E94191380917F0190E0019664 -:102BF0008770992780937F01D9CF4F815885698548 -:102C00007A858B859C850E941913CFCF0E94DC1298 -:102C10001092800110927F01E1EBF1E086E0DF018C -:102C20001D928A95E9F7C1CF2C960FB6F894DEBFB6 -:102C30000FBECDBFDF91CF911F910895EF92FF920C -:102C40000F931F93CF93DF938C01009709F46CC00F -:102C5000F12CEE24E394E8012196F8018491843765 -:102C600040F4843008F051C0813081F0823019F195 -:102C70005BC0853709F444C0A8F19CE7980F9037F2 -:102C800008F052C08F770E941F1041C00E5F1F4F87 -:102C9000FE01C49180E28C0F883048F4C7708E2DFD -:102CA00001C0880FCA95EAF70E94FA1814C08C2F49 -:102CB0000E94620F2DC00E5F1F4FFE01C49180E283 -:102CC0008C0F883058F4C7708E2D01C0880FCA95BC -:102CD000EAF70E9400190E9421191AC08C2F0E9445 -:102CE0001F1016C00E5F1F4FFE01C491CC2381F050 -:102CF0008FE99FE00197F1F700C00000C150F6CFC7 -:102D00000E5F1F4FFE01F49003C00E94620F8E0100 -:102D10008F2D882309F49FCFEFE9FFE03197F1F77A -:102D200000C000008150F5CFDF91CF911F910F912E -:102D3000FF90EF90089508956093BB017093BC01DC -:102D40008093BD019093BE010C94C8120F931F9302 -:102D50000091BB011091BC012091BD013091BE01D9 -:102D6000DC01CB01802B912BA22BB32B8093BB01D9 -:102D70009093BC01A093BD01B093BE011F910F9130 -:102D80000C94C8120F931F930091BB011091BC01CA -:102D90002091BD013091BE01DC01CB018023912344 -:102DA000A223B3238093BB019093BC01A093BD01E8 -:102DB000B093BE011F910F910C94C8120F931F93F3 -:102DC0000091BB011091BC012091BD013091BE0169 -:102DD000DC01CB0180279127A227B3278093BB0179 -:102DE0009093BC01A093BD01B093BE011F910F91C0 -:102DF0000C94C8121092B7011092B8011092B90148 -:102E00001092BA010C94C81241E050E060E070E00A -:102E100004C0440F551F661F771F8A95D2F7409351 -:102E2000B7015093B8016093B9017093BA010C9443 -:102E3000C81241E050E060E070E004C0440F551F4C -:102E4000661F771F8A95D2F78091B7019091B801DC -:102E5000A091B901B091BA01482B592B6A2B7B2B59 -:102E60004093B7015093B8016093B9017093BA01D0 -:102E70000C94C81241E050E060E070E004C0440FE0 -:102E8000551F661F771F8A95D2F74095509560951C -:102E900070958091B7019091B801A091B901B0915E -:102EA000BA01482359236A237B234093B7015093E7 -:102EB000B8016093B9017093BA010C94C81241E053 -:102EC00050E060E070E004C0440F551F661F771F9C -:102ED0008A95D2F78091B7019091B801A091B9017C -:102EE000B091BA01482759276A277B274093B70139 -:102EF0005093B8016093B9017093BA010C94C81251 -:102F00000F931F930091B7011091B8012091B9015F -:102F10003091BA01DC01CB01802B912BA22BB32B7A -:102F20008093B7019093B801A093B901B093BA010F -:102F30001F910F910C94C8120F931F930091B7012A -:102F40001091B8012091B9013091BA01DC01CB0197 -:102F500080239123A223B3238093B7019093B801D8 -:102F6000A093B901B093BA011F910F910C94C812AC -:102F70000F931F930091B7011091B8012091B901EF -:102F80003091BA01DC01CB0180279127A227B3271A -:102F90008093B7019093B801A093B901B093BA019F -:102FA0001F910F910C94C8120895CF92DF92EF9267 -:102FB000FF920F931F93CF93DF938C01C090BB01BF -:102FC000D090BC01E090BD01F090BE018091B701AE -:102FD0009091B801A091B901B091BA01C82AD92A3B -:102FE000EA2AFB2ACFE1D0E0D701C6010C2E04C0AB -:102FF000B695A795979587950A94D2F780FF06C056 -:10300000B8018C2F0E94AE05019721F4219760F73B -:1030100080E001C08C2FDF91CF911F910F91FF9025 -:10302000EF90DF90CF900895CF93DF93EC010E9453 -:10303000D517BE010E94AE05DF91CF910895CB0157 -:103040000E94141808958091BF01859585958595F6 -:1030500008958091BF018770089598E0899F90013D -:103060001124262B2093BF010C9419172091BF0126 -:10307000809582238093BF01982F977069F430E088 -:10308000482F552747FD50952417350729F085957A -:10309000859585950C943A1708959091BF01977086 -:1030A00081E009F480E0089590910B01992321F0CB -:1030B00090910C01911109C020910D0130910E01E8 -:1030C000F90132969FEF40E01FC0982F9695969594 -:1030D00096959F3050F5E0910D01F0910E01E90FAA -:1030E000F11D877021E030E0A90102C0440F551F97 -:1030F0008A95E2F7CA019181892B818308959F3FC8 -:1031000039F04F5F4E3041F051915813F8CF0DC058 -:103110005111F7CF942FF5CF9F3F39F0F901E90F07 -:10312000F11D97FDFA9582830895089590910B0102 -:10313000992321F090910C01911109C020910D016A -:1031400030910E01F9013296205F3F4F1FC0982F3A -:103150009695969596959F30F0F4E0910D01F0913B -:103160000E01E90FF11D877021E030E0A90102C0D6 -:10317000440F551F8A95E2F7CA01809591818923F2 -:10318000818308953196E217F30729F0908198130F -:10319000F9CF1082F7CF089581E090E0E0910D0122 -:1031A000F0910E01E80FF91F108201968031910510 -:1031B000A9F708959091D301892B8093D3010895A5 -:1031C00080959091D30189238093D3010895109223 -:1031D000D30108959091D201892B8093D201089553 -:1031E00080959091D20189238093D2010895109205 -:1031F000D20108959091D101892B8093D101089536 -:1032000080959091D10189238093D10108951092E6 -:10321000D10108958093C00108951092C0010895CE -:1032200080910D0190910E01FC0131969C01205F6F -:103230003F4F80E0919191118F5FE217F307D1F733 -:103240000895E0910D01F0910E018091D3018083EA -:10325000E0910D01F0910E0190818091D201892BB6 -:103260008083E0910D01F0910E0190818091D10158 -:10327000892B80838091C001882361F0E0910D014A -:10328000F0910E019081892B80830E941019811189 -:103290001092C00180910D0190910E010C94390E95 -:1032A00020E0009739F0AC01415051098423952367 -:1032B0002F5FF7CF822F08958091E701843021F1AD -:1032C0001092D50120E488E190E00FB6F894A8951B -:1032D000809360000FBE2093600080E00E9448064B -:1032E00083B7817F846083BF83B7816083BF789415 -:1032F000889583B78E7F83BF88E10FB6F89480935B -:103300006000109260000FBE0895089508950E9415 -:1033100085190E94A3060E9486190E941B0791E04E -:10332000811101C090E0892F08950E94DC120E9453 -:103330002D0E0C9448061F920F920FB60F92112477 -:103340008F939F93AF93BF938091D501811113C049 -:103350008091D6019091D701A091D801B091D90167 -:103360004196A11DB11D8093D6019093D701A093E2 -:10337000D801B093D901BF91AF919F918F910F90D8 -:103380000FBE0F901F90189582E084BD93E095BD0D -:103390009AEF97BD80936E0008952FB7F8948091AF -:1033A000D6019091D701A091D801B091D9012FBF3A -:1033B0000895CF92DF92EF92FF920F931F932FB752 -:1033C000F8944091D6015091D7016091D801709145 -:1033D000D9012FBF6A017B01EE24FF248C0120E07C -:1033E00030E0C016D106E206F30610F44150510950 -:1033F0009A01281B390BC9011F910F91FF90EF9083 -:10340000DF90CF9008951F920F920FB60F92112464 -:103410008F939F93AF93BF938091D6019091D701E3 -:10342000A091D801B091D9010196A11DB11D809341 -:10343000D6019093D701A093D801B093D901BF9141 -:10344000AF919F918F910F900FBE0F901F90189585 -:103450000E942A0BF8942FEF87EA91E621508040D2 -:103460009040E1F700C0000087E090EBDC01809322 -:10347000F1019093F201A093F301B093F4019CE069 -:1034800088E10FB6F894A895809360000FBE9093E2 -:103490006000FFCFCF92DF92EF92FF920F931F93C6 -:1034A000CF93DF93D82FC4E0EE24E394F12C8C2F3C -:1034B0000E9411076C010DE010E09701002E02C080 -:1034C000220F331F0A94E2F72C213D21232B49F0D0 -:1034D000602F7C2F80E00E945903D81302C081E046 -:1034E00006C00150110948F7C15008F780E0DF918C -:1034F000CF911F910F91FF90EF90DF90CF900895A3 -:10350000CF93C82F8CE20E944A1A882321F08C2F77 -:10351000CF910C944A1A80E0CF910895CF930E94E6 -:10352000D51B811102C00E94BB1BC5E6C15049F0EA -:103530000E94A3068FE39CE90197F1F700C0000009 -:10354000F5CF89E20E94801A811113C18AE20E949C -:10355000801A81110E94BB1B85E00E94801A811194 -:103560000E94281A0E94E01B8093D40187E00E94E9 -:10357000801A8823A9F18BE10E94801A882351F0D8 -:103580008091D40181FB222720F991E0922790FBC2 -:1035900081F90EC08EE00E94801A882361F080912C -:1035A000D40182FB222720F991E0922790FB82F937 -:1035B0008093D40115C080E10E94801A9091D401BB -:1035C000882341F093FB222720F981E0822780FBAA -:1035D00093F904C0892F809580FB90F99093D401D2 -:1035E0008091D4010E94E41B0E94F21B8093F001A1 -:1035F00080EE0E94801A882341F08091F001982F7C -:10360000909590FB80F98093F00189E30E94801AE5 -:10361000882359F08091F00181FB222720F991E065 -:10362000922790FB81F98093F00182EE0E94801A2C -:10363000882359F08091F00182FB222720F991E044 -:10364000922790FB82F98093F00186EE0E94801A07 -:10365000882359F08091F00183FB222720F991E023 -:10366000922790FB83F98093F00183EE0E94801AE9 -:10367000882359F08091F00184FB222720F991E002 -:10368000922790FB84F98093F00185E30E94801AD1 -:10369000882359F08091F00185FB222720F991E0E1 -:1036A000922790FB85F98093F00181E30E94801AB4 -:1036B000882359F08091F00186FB222720F991E0C0 -:1036C000922790FB86F98093F00181E10E94801A95 -:1036D000882359F08091F00187FB222720F991E09F -:1036E000922790FB87F98093F0018091F0010E946E -:1036F000F61B8091F00187FB882780F980930C01ED -:1037000087E20E94801AC82F8EE10E94801A8111E0 -:10371000C2608FE10E94801A8111C46080E20E9421 -:10372000801A8111C86081E20E94801A8111C061F3 -:1037300082E20E94801A8111C06283E20E94801A94 -:103740008111C06484E20E94801A882311F0C0684D -:1037500002C0CC2329F08C2F0E94ED1B6C2F03C0DC -:103760000E94E91B682F70E080E090E0CF910C94FC -:103770009C16CF9108956DEE7EEF80E090E00E9460 -:10378000971F60E082E090E00E94851F60E083E088 -:1037900090E00E94851F60E084E090E00E94851F19 -:1037A00060E085E090E00C94851F80E090E00E944E -:1037B0007F1F21E08D3E9E4F09F020E0822F08956B -:1037C00082E090E00C94771F682F82E090E00C94E8 -:1037D000851F83E090E00C94771F682F83E090E0D2 -:1037E0000C94851F84E090E00C94771F682F84E090 -:1037F00090E00C94851F8091DC0180FF0BC06091EC -:10380000120185E0689FB001112475956795759543 -:1038100067952BC081FF09C06091120185E0689F08 -:10382000B00111247595679520C082FF07C0609193 -:10383000120185E0689FB001112417C09091DD014D -:103840009923D1F060911101961788F72091120108 -:1038500085E0289F90011124929FA001939F500D15 -:10386000112470E0CA010E94491F6038710540F4BC -:103870006115710539F002C065E070E0862F08958A -:103880008FE7089581E008958091DC0180FF08C0F2 -:103890006091100170E0759567957595679521C0E9 -:1038A00081FF06C06091100170E07595679519C0A1 -:1038B00082FF04C06091100170E010C09091DD01A2 -:1038C0009923C1F060910F019617A0F78091100124 -:1038D000899FC001112470E00E94491F6038710562 -:1038E00028F46115710521F0862F08958FE708955A -:1038F00081E0089561E070E0F4CF803F21F40E9400 -:10390000FB1B819504C0813F29F40E94FB1B80931F -:10391000E0010895823F21F40E94FB1B819504C0C1 -:10392000833F29F40E94FB1B8093DF010895893FA8 -:1039300019F40E94441C05C08A3F31F40E94441CC3 -:1039400081958093E10108958B3F21F40E94441CEE -:10395000819504C08C3F29F40E94441C8093E201AD -:103960000895843F21F48091DE01816017C0853F76 -:1039700021F48091DE01826011C0863F21F48091A4 -:10398000DE0184600BC0873F21F48091DE018860F6 -:1039900005C0883F31F48091DE0180618093DE01B3 -:1039A00008958D3F21F48091DC0181600BC08E3F32 -:1039B00021F48091DC01826005C08F3F29F4809161 -:1039C000DC0184608093DC010895803F39F48091AC -:1039D000E00187FF6CC01092E00169C0813F29F4CB -:1039E0008091E0011816BCF362C09091DF01823F24 -:1039F00029F497FF5CC01092DF0159C0833F19F48E -:103A00001916CCF354C0893F41F48091E101181696 -:103A10000CF04DC01092E1014AC08A3F29F4809118 -:103A2000E10187FF44C0F6CF8B3F39F48091E2017A -:103A300087FF3DC01092E2013AC08C3F29F480918B -:103A4000E2011816BCF333C0843F21F48091DE01FB -:103A50008E7F17C0853F21F48091DE018D7F11C0DC -:103A6000863F21F48091DE018B7F0BC0873F21F4DC -:103A70008091DE01877F05C0883F31F48091DE01AF -:103A80008F7E8093DE0113C08D3F21F48091DC0195 -:103A90008E7F0BC08E3F21F48091DC018D7F05C0AD -:103AA0008F3F29F48091DC018B7F8093DC01809132 -:103AB000DF0181110EC08091E00181110AC0809167 -:103AC000E101811106C08091E201811102C01092D2 -:103AD000DD0108958EED91E00E94440E0E94CD1903 -:103AE0009093DB018093DA0108951F93CF93DF93C6 -:103AF0008091DA019091DB010E94D919AC0190917B -:103B0000DD01992321F02091130130E006C02091BE -:103B100014018AE0289F900111244217530708F4EA -:103B200086C08091DF01C091E001D091E101109148 -:103B3000E201811107C0C11176C0D11174C0111109 -:103B400072C075C09F3F19F09F5F9093DD011816FA -:103B500024F40E94FB1B8093DF018091DF0187FF2B -:103B600005C00E94FB1B81958093DF011C1624F485 -:103B70000E94FB1B8093E0018091E00187FF05C05C -:103B80000E94FB1B81958093E0016091DF01662319 -:103B900039F1C091E001CC2319F1772767FD7095C9 -:103BA000872F972F0E945A1E23E333E343E35FE3FB -:103BB0000E94BE1E0E94271E6093DF016C2F772794 -:103BC00067FD7095872F972F0E945A1E23E333E3DA -:103BD00043E35FE30E94BE1E0E94271E6093E00144 -:103BE0001D1624F40E94441C8093E1018091E101A0 -:103BF00087FF05C00E94441C81958093E101111646 -:103C000024F40E94441C8093E2018091E20187FF2A -:103C100005C00E94441C81958093E201DF91CF9101 -:103C20001F910C946A1D9F3F09F08ECF96CFDF91B4 -:103C3000CF911F910895EEEDF1E085E0DF011D9237 -:103C40008A95E9F71092DD011092DC01089504D005 -:103C50006894B1118DC0089570D088F09F5790F08E -:103C6000B92F9927B751A0F0D1F0660F771F881FA1 -:103C7000991F1AF0BA95C9F712C0B13081F077D008 -:103C8000B1E0089574C0672F782F8827B85F39F0A6 -:103C9000B93FCCF3869577956795B395D9F73EF400 -:103CA00090958095709561957F4F8F4F9F4F0895A8 -:103CB000E89409C097FB3EF49095809570956195C6 -:103CC0007F4F8F4F9F4F9923A9F0F92F96E9BB277C -:103CD0009395F695879577956795B795F111F8CFF8 -:103CE000FAF4BB0F11F460FF1BC06F5F7F4F8F4F63 -:103CF0009F4F16C0882311F096E911C0772321F059 -:103D00009EE8872F762F05C0662371F096E8862FF0 -:103D100070E060E02AF09A95660F771F881FDAF747 -:103D2000880F9695879597F9089557FD9058440FF9 -:103D3000551F59F05F3F71F04795880F97FB991F0A -:103D400061F09F3F79F087950895121613061406C7 -:103D5000551FF2CF4695F1DF08C016161706180654 -:103D6000991FF1CF86957105610508940895E8942F -:103D7000BB2766277727CB0197F908950BD078C02A -:103D800069D028F06ED018F0952309F05AC05FC0B2 -:103D90001124EECFCADFA0F3959FD1F3950F50E029 -:103DA000551F629FF001729FBB27F00DB11D639FED -:103DB000AA27F00DB11DAA1F649F6627B00DA11D93 -:103DC000661F829F2227B00DA11D621F739FB00D39 -:103DD000A11D621F839FA00D611D221F749F3327A9 -:103DE000A00D611D231F849F600D211D822F762F42 -:103DF0006A2F11249F5750408AF0E1F088234AF03F -:103E0000EE0FFF1FBB1F661F771F881F915050408A -:103E1000A9F79E3F510570F014C0AACF5F3FECF3A5 -:103E2000983EDCF3869577956795B795F795E79576 -:103E30009F5FC1F7FE2B880F911D9695879597F987 -:103E4000089597F99F6780E870E060E008959FEF1C -:103E500080EC089500240A94161617061806090621 -:103E6000089500240A9412161306140605060895F0 -:103E7000092E0394000C11F4882352F0BB0F40F478 -:103E8000BF2B11F460FF04C06F5F7F4F8F4F9F4FB8 -:103E9000089597FB072E16F4009407D077FD09D0FC -:103EA0000E94631F07FC05D03EF4909581959F4FBB -:103EB0000895709561957F4F0895EE0FFF1F05904F -:103EC000F491E02D0994AA1BBB1B51E107C0AA1F66 -:103ED000BB1FA617B70710F0A61BB70B881F991FAB -:103EE0005A95A9F780959095BC01CD010895F9994F -:103EF000FECF92BD81BDF89A992780B50895A8E1BB -:103F0000B0E042E050E00C949F1F262FF999FECFBD -:103F100092BD81BDF89A019700B4021639F01FBA1C -:103F200020BD0FB6F894FA9AF99A0FBE089501963B -:103F3000272F0E94861F0C94851FDC01CB01FC01FA -:103F4000F999FECF06C0F2BDE1BDF89A319600B4F2 -:0E3F50000D9241505040B8F70895F894FFCFFD -:103F5E00FF3107BF079C07680734070101C101281D -:103F6E0008140A321E0F1F6C76666349137353438F -:103F7E0079693309192939593F4D36391104C4036A -:0C3F8E008E035503E80201031A033303FD -:00000001FF diff --git a/keyboards/gh60/readme.md b/keyboards/gh60/readme.md new file mode 100644 index 000000000..92302d507 --- /dev/null +++ b/keyboards/gh60/readme.md @@ -0,0 +1,60 @@ +## gh60 Rev C keyboard firmware + +![gh60 Rev C PCB](gh60revc.jpg) + + /* Column pin configuration + * col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 + * pin: F0 F1 E6 C7 C6 B6 D4 B1 B7 B5 B4 D7 D6 B3 (Rev.C) + */ + + /* Row pin configuration + * row: 0 1 2 3 4 + * pin: D0 D1 D2 D3 D5 + */ + + GPIO pads + 0 F7 WASD LEDs + 1 F6 ESC LED + 2 F5 FN LED + 3 F4 POKER Arrow LEDs + + B2 Capslock LED + B0 not connected + +Functions to controls LED clusters + + gh60_caps_led_on() + gh60_poker_leds_on() + gh60_fn_led_on() + gh60_esc_led_on() + gh60_wasd_leds_on() + + gh60_caps_led_off() + gh60_poker_leds_off() + gh60_fn_led_off() + gh60_esc_led_off() + gh60_wasd_leds_off() + +====================== + +## Quantum MK Firmware + +For the full Quantum feature list, see [the parent readme.md](/readme.md). + +## Building + +Download or clone the whole firmware and navigate to the keyboards/gh60_rev_c folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default +To build with the default keymap, simply run `make`. + +### Other Keymaps +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` in the keymaps folder, and see keymap document (you can find in top readme.md) and existent keymap files. + +To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: +``` +$ make KEYMAP=[default|jack|] +``` +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboards/hhkb/README.md b/keyboards/hhkb/README.md deleted file mode 100644 index 2bfec7aa5..000000000 --- a/keyboards/hhkb/README.md +++ /dev/null @@ -1,180 +0,0 @@ -hhkb_qmk keyboard firmware -====================== - -## Quantum MK Firmware - -You have access to a bunch of goodies! Check out the Makefile to enable/disable some of the features. Uncomment the `#` to enable them. Setting them to `no` does nothing and will only confuse future you. - - BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality - MIDI_ENABLE = yes # MIDI controls - # UNICODE_ENABLE = yes # Unicode support - this is commented out, just as an example. You have to use #, not // - BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID - -## Quick aliases to common actions - -Your keymap can include shortcuts to common operations (called "function actions" in tmk). - -### Switching and toggling layers - -`MO(layer)` - momentary switch to *layer*. As soon as you let go of the key, the layer is deactivated and you pop back out to the previous layer. When you apply this to a key, that same key must be set as `KC_TRNS` on the destination layer. Otherwise, you won't make it back to the original layer when you release the key (and you'll get a keycode sent). You can only switch to layers *above* your current layer. If you're on layer 0 and you use `MO(1)`, that will switch to layer 1 just fine. But if you include `MO(3)` on layer 5, that won't do anything for you -- because layer 3 is lower than layer 5 on the stack. - -`LT(layer, kc)` - momentary switch to *layer* when held, and *kc* when tapped. Like `MO()`, this only works upwards in the layer stack (`layer` must be higher than the current layer). - -`TG(layer)` - toggles a layer on or off. As with `MO()`, you should set this key as `KC_TRNS` in the destination layer so that tapping it again actually toggles back to the original layer. Only works upwards in the layer stack. - -### Fun with modifier keys - -* `LSFT(kc)` - applies left Shift to *kc* (keycode) - `S(kc)` is an alias -* `RSFT(kc)` - applies right Shift to *kc* -* `LCTL(kc)` - applies left Control to *kc* -* `RCTL(kc)` - applies right Control to *kc* -* `LALT(kc)` - applies left Alt to *kc* -* `RALT(kc)` - applies right Alt to *kc* -* `LGUI(kc)` - applies left GUI (command/win) to *kc* -* `RGUI(kc)` - applies right GUI (command/win) to *kc* - -You can also chain these, like this: - - LALT(LCTL(KC_DEL)) -- this makes a key that sends Alt, Control, and Delete in a single keypress. - -The following shortcuts automatically add `LSFT()` to keycodes to get commonly used symbols. Their long names are also available and documented in `/quantum/keymap_common.h`. - - KC_TILD ~ - KC_EXLM ! - KC_AT @ - KC_HASH # - KC_DLR $ - KC_PERC % - KC_CIRC ^ - KC_AMPR & - KC_ASTR * - KC_LPRN ( - KC_RPRN ) - KC_UNDS _ - KC_PLUS + - KC_LCBR { - KC_RCBR } - KC_PIPE | - KC_COLN : - -`MT(mod, kc)` - is *mod* (modifier key - MOD_LCTL, MOD_LSFT) when held, and *kc* when tapped. In other words, you can have a key that sends Esc (or the letter O or whatever) when you tap it, but works as a Control key or a Shift key when you hold it down. - -These are the values you can use for the `mod` in `MT()` (right-hand modifiers are not available): - - * MOD_LCTL - * MOD_LSFT - * MOD_LALT - * MOD_LGUI - -These can also be combined like `MOD_LCTL | MOD_LSFT` e.g. `MT(MOD_LCTL | MOD_LSFT, KC_ESC)` which would activate Control and Shift when held, and send Escape when tapped. - -We've added shortcuts to make common modifier/tap (mod-tap) mappings more compact: - - * `CTL_T(kc)` - is LCTL when held and *kc* when tapped - * `SFT_T(kc)` - is LSFT when held and *kc* when tapped - * `ALT_T(kc)` - is LALT when held and *kc* when tapped - * `GUI_T(kc)` - is LGUI when held and *kc* when tapped - * `ALL_T(kc)` - is Hyper (all mods) when held and *kc* when tapped. To read more about what you can do with a Hyper key, see [this blog post by Brett Terpstra](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) - -### Temporarily setting the default layer - -`DF(layer)` - sets default layer to *layer*. The default layer is the one at the "bottom" of the layer stack - the ultimate fallback layer. This currently does not persist over power loss. When you plug the keyboard back in, layer 0 will always be the default. It is theoretically possible to work around that, but that's not what `DF` does. - -### Remember: These are just aliases - -These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk ACTION_* functions, please see the [TMK documentation](https://github.com/jackhumbert/qmk_firmware/blob/master/tmk_core/doc/keymap.md#2-action). - -Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - the benefit here is being able to use more than 32 function actions (up to 4096), if you happen to need them. - -## Macro shortcuts: Send a whole string when pressing just one key - -Instead of using the `ACTION_MACRO` function, you can simply use `M(n)` to access macro *n* - *n* will get passed into the `action_get_macro` as the `id`, and you can use a switch statement to trigger it. This gets called on the keydown and keyup, so you'll need to use an if statement testing `record->event.pressed` (see keymap_default.c). - -```c -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // this is the function signature -- just copy/paste it into your keymap file as it is. -{ - switch(id) { - case 0: // this would trigger when you hit a key mapped as M(0) - if (record->event.pressed) { - return MACRO( I(255), T(H), T(E), T(L), T(L), W(255), T(O), END ); // this sends the string 'hello' when the macro executes - } - break; - } - return MACRO_NONE; -}; -``` -A macro can include the following commands: - -* I() change interval of stroke in milliseconds. -* D() press key. -* U() release key. -* T() type key(press and release). -* W() wait (milliseconds). -* END end mark. - -So above you can see the stroke interval changed to 255ms between each keystroke, then a bunch of keys being typed, waits a while, then the macro ends. - -Note: Using macros to have your keyboard send passwords for you is a bad idea. - -### Additional keycode aliases for software-implemented layouts (Colemak, Dvorak, etc) - -Everything is assuming you're in Qwerty (in software) by default, but there is built-in support for using a Colemak or Dvorak layout by including this at the top of your keymap: - - #include "keymap_.h" - -Where is "colemak" or "dvorak". After including this line, you will get access to: - - * `CM_*` for all of the Colemak-equivalent characters - * `DV_*` for all of the Dvorak-equivalent characters - -These implementations assume you're using Colemak or Dvorak on your OS, not on your keyboard - this is referred to as a software-implemented layout. If your computer is in Qwerty and your keymap is in Colemak or Dvorak, this is referred to as a firmware-implemented layout, and you won't need these features. - -To give an example, if you're using software-implemented Colemak, and want to get an `F`, you would use `CM_F` - `KC_F` under these same circumstances would result in `T`. - -## Additional language support - -In `quantum/keymap_extras/`, you'll see various language files - these work the same way as the alternative layout ones do. Most are defined by their two letter country/language code followed by an underscore and a 4-letter abbreviation of its name. `FR_UGRV` which will result in a `ù` when using a software-implemented AZERTY layout. It's currently difficult to send such characters in just the firmware (but it's being worked on - see Unicode support). - -## Unicode support - -You can currently send 4 hex digits with your OS-specific modifier key (RALT for OSX with the "Unicode Hex Input" layout) - this is currently limited to supporting one OS at a time, and requires a recompile for switching. 8 digit hex codes are being worked on. The keycode function is `UC(n)`, where *n* is a 4 digit hexidecimal. Enable from the Makefile. - -## Other firmware shortcut keycodes - -* `RESET` - puts the MCU in DFU mode for flashing new firmware (with `make dfu`) -* `DEBUG` - the firmware into debug mode - you'll need hid_listen to see things -* `BL_ON` - turns the backlight on -* `BL_OFF` - turns the backlight off -* `BL_` - sets the backlight to level *n* -* `BL_INC` - increments the backlight level by one -* `BL_DEC` - decrements the backlight level by one -* `BL_TOGG` - toggles the backlight -* `BL_STEP` - steps through the backlight levels - -Enable the backlight from the Makefile. - -## MIDI functionalty - -This is still a WIP, but check out `quantum/keymap_midi.c` to see what's happening. Enable from the Makefile. - -## Bluetooth functionality - -This requires [some hardware changes](https://www.reddit.com/r/MechanicalKeyboards/comments/3psx0q/the_planck_keyboard_with_bluetooth_guide_and/?ref=search_posts), but can be enabled via the Makefile. The firmware will still output characters via USB, so be aware of this when charging via a computer. It would make sense to have a switch on the Bluefruit to turn it off at will. - -## Building - -Download or clone the whole firmware and navigate to the keyboards/planck folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use `make dfu` to program your PCB once you hit the reset button. - -Depending on which keymap you would like to use, you will have to compile slightly differently. - -### Default -To build with the default keymap, simply run `make`. - -### Other Keymaps -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a file in the keymaps folder named `.c` and see keymap document (you can find in top README.md) and existent keymap files. - -To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: -``` -$ make KEYMAP=[default|jack|] -``` -Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboards/hhkb/hhkb.c b/keyboards/hhkb/hhkb.c index 6897026c6..a9d35123f 100644 --- a/keyboards/hhkb/hhkb.c +++ b/keyboards/hhkb/hhkb.c @@ -1,29 +1 @@ -#include "hhkb.h" - -__attribute__ ((weak)) -void matrix_init_user(void) { - // leave these blank -}; - -__attribute__ ((weak)) -void matrix_scan_user(void) { - // leave these blank -}; - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - - if (matrix_init_user) { - (*matrix_init_user)(); - } -}; - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - - if (matrix_scan_user) { - (*matrix_scan_user)(); - } -}; +#include "hhkb.h" \ No newline at end of file diff --git a/keyboards/hhkb/hhkb.h b/keyboards/hhkb/hhkb.h index 093d7aeab..cc756c456 100644 --- a/keyboards/hhkb/hhkb.h +++ b/keyboards/hhkb/hhkb.h @@ -1,10 +1,7 @@ #ifndef HHKB_H #define HHKB_H -#include "matrix.h" -#include "keymap.h" -//#include "backlight.h" -#include +#include "quantum.h" #define KEYMAP( \ K31, K30, K00, K10, K11, K20, K21, K40, K41, K60, K61, K70, K71, K50, K51, \ @@ -24,7 +21,4 @@ { K70, K71, K72, K73, K74, K75, K76, KC_NO } \ } -void matrix_init_user(void); -void matrix_scan_user(void); - #endif diff --git a/keyboards/hhkb/keymaps/default/compiled.hex b/keyboards/hhkb/keymaps/default/compiled.hex deleted file mode 100644 index b3af69527..000000000 --- a/keyboards/hhkb/keymaps/default/compiled.hex +++ /dev/null @@ -1,1381 +0,0 @@ -:100000000C9452060C9496060C9496060C94960644 -:100010000C9496060C9496060C9496060C949606F0 -:100020000C9496060C9496060C945A110C942C126F -:100030000C941C1F0C9496060C9496060C94960631 -:100040000C9496060C9496060C9496060C949606C0 -:100050000C9496060C94BC1F0C9496060C94960671 -:100060000C9496060C9496060C9496060C949606A0 -:100070000C9496060C9496060C9496060C94960690 -:100080000C9496060C9496060C9496060C94960680 -:100090000C9496060C9496060C9496060C94960670 -:1000A0000C9496060C9496060C9496069912BB1224 -:1000B000A913BB12A91300132313A91378138B13CD -:1000C0006516651694169416D316F316231823187E -:1000D000FE162318AE17AE171418231823181D1870 -:1000E000BB17BB17BB17BB17BB17BB17BB17BB1780 -:1000F000BB17BB17BB17BB17BB17BB17BB17BB1770 -:10010000CB17D917E017E717F117253032583A20E7 -:10011000253038620A000A722F63203031323334BE -:100120003536370A001F0014001A00160004001D9F -:10013000001B000600200021001500080007000930 -:100140000019000500220023001C0017000A000B04 -:1001500000110000001E0029002B00E000E100E279 -:1001600000E3002C002400250018000C000E000DF8 -:100170000010000000310035002A0028000152E57F -:1001800000E600E700260027001200130033000FEE -:1001900000360000002D002E0030002F0034003803 -:1001A00000370000003B0001000100A900AA000187 -:1001B00000010001003C003D0001000100A8000119 -:1001C00000010001003E003F000100010001005558 -:1001D00000570000003A00A50039000100010001AD -:1001E000000100010040004100010046004A0054A7 -:1001F000005600000049004C002A00580001000190 -:100200000001000100420043004700480050004B3D -:10021000004D00000044004500010052004F005115 -:10022000004E0000000A44454255473A20656E6181 -:10023000626C65642E0A005B735D004B6579626FCA -:100240006172642073746172742E0A005B575D00E2 -:100250005B535D005B525D005B445D005B435D0092 -:100260001203480048004B00420020006D006F0060 -:10027000640000000C0371002E006D002E006B0066 -:1002800000000403090409027400040100A0FA0933 -:100290000400000103010100092111010001223FB6 -:1002A000000705810308000A090401000103010297 -:1002B00000092111010001224D00070582030800F9 -:1002C0000A090402000103000000092111010001D4 -:1002D0002236000705830308000A0904030002030D -:1002E00000000009211101000122200007058403FC -:1002F0002000010705040320000112011001000085 -:100300000008EDFEFECA0401010200010631FF09EA -:1003100074A1010975150025FF9520750881020952 -:1003200076150025FF952075089102C0050109800A -:10033000A101850216010026B7001A01002AB700A4 -:10034000751095018100C0050C0901A101850316F6 -:100350000100269C021A01002A9C02751095018159 -:1003600000C005010902A1010901A1000509190147 -:100370002905150025019505750181029501750373 -:1003800081010501093009311581257F9502750824 -:10039000810609381581257F950175088106050CB0 -:1003A0000A38021581257F950175088106C0C005B0 -:1003B000010906A101050719E029E71500250195A6 -:1003C0000875018102950175088101050819012947 -:1003D00005950575019102950175039101050719B0 -:1003E0000029FF150025FF950675088100C00A0049 -:1003F0002530325820006B6579626F6172645F72DC -:1004000065706F72743A20004B6579626F61726437 -:10041000204C4544732073746174653A2025780A32 -:1004200000646F6E652E0A00626F6F676D616769A9 -:1004300063207363616E3A202E2E2E2000290A005D -:100440002575002F002575005D280025640020001B -:10045000256400200025640020002564007C002520 -:10046000303258006D6F7573656B6579205B62740F -:100470006E7C782079207620685D287265702F6107 -:10048000636C293A205B006D6B5F776865656C5F14 -:1004900074696D655F746F5F6D6178203D202564C0 -:1004A0000A006D6B5F776865656C5F6D61785F737F -:1004B00070656564203D2025640A006D6B5F74697A -:1004C0006D655F746F5F6D6178203D2025640A0063 -:1004D0006D6B5F6D61785F7370656564203D20258D -:1004E000640A006D6B5F696E74657276616C203DA5 -:1004F0002025640A006D6B5F64656C6179203D2086 -:1005000025640A006D6B5F776865656C5F74696D63 -:10051000655F746F5F6D6178203D2025640A006D12 -:100520006B5F776865656C5F6D61785F737065653B -:1005300064203D2025640A006D6B5F74696D655F02 -:10054000746F5F6D6178203D2025640A006D6B5FDC -:100550006D61785F7370656564203D2025640A00D5 -:100560006D6B5F696E74657276616C203D202564E9 -:100570000A006D6B5F64656C6179203D2025640A1B -:10058000000A00257500363A20776865656C5F744F -:10059000696D655F746F5F6D61783A20000A0025B0 -:1005A0007500353A20776865656C5F6D61785F73BB -:1005B000706565643A20000A00257500343A20749D -:1005C000696D655F746F5F6D61783A20000A002580 -:1005D0007500333A206D61785F73706565643A2009 -:1005E000000A00257500323A20696E7465727661E2 -:1005F0006C286D73293A20000A00257500313A20D5 -:1006000064656C6179282A31306D73293A20000ABB -:10061000092D2056616C756573202D0A004D3E0032 -:100620004D25643E20003F0073657420646566615B -:10063000756C740A00433E2000776865726520641B -:10064000656C74613A20637572736F723D25642C1A -:1006500020776865656C3D25640A5365652068747C -:1006600074703A2F2F656E2E77696B6970656469B7 -:10067000612E6F72672F77696B692F4D6F75736588 -:100680005F6B6579730A000A092D204D6F757365DC -:100690006B6579202D0A4553432F713A09717569AD -:1006A000740A313A0964656C6179282A31306D73B6 -:1006B000290A323A09696E74657276616C286D7325 -:1006C000290A333A096D61785F73706565640A348D -:1006D0003A0974696D655F746F5F6D61780A353AC8 -:1006E00009776865656C5F6D61785F7370656564D7 -:1006F0000A363A09776865656C5F74696D655F7481 -:100700006F5F6D61780A0A703A097072696E7420C1 -:1007100076616C7565730A643A0973657420646563 -:100720006661756C74730A75703A092B310A646FCF -:10073000776E3A092D310A706775703A092B31309E -:100740000A7067646F776E3A092D31300A0A737048 -:10075000656564203D2064656C7461202A206D61AC -:10076000785F7370656564202A2028726570656102 -:1007700074202F2074696D655F746F5F6D617829D7 -:100780000A003F004D3E2000433E20004C25640AF5 -:100790000074696D65725F636F756E743A20253001 -:1007A000346C580A006B6579626F6172645F6964CA -:1007B0006C653A2025580A006B6579626F61726436 -:1007C0005F70726F746F636F6C3A2025580A00680F -:1007D0006F73745F6B6579626F6172645F6C65647F -:1007E0007328293A2025580A000A092D20537461DC -:1007F000747573202D0A004743433A20342E392E56 -:1008000032204156522D4C4942433A20312E382E47 -:1008100031204156525F415243483A206176723549 -:100820000A004F5054494F4E533A204C55464120F0 -:10083000424F4F544D41474943204D4F5553454B2F -:1008400045592045585452414B455920434F4E532A -:100850004F4C4520434F4D4D414E44203531320AD7 -:10086000004255494C443A20313637313865662DBF -:100870006469727479202832333A33393A32382035 -:100880004A756E2020392032303136290A00564907 -:10089000443A2030784645454428712E6D2E6B2908 -:1008A000205049443A203078434146452848484B37 -:1008B00042206D6F6429205645523A2030783031FD -:1008C00030340A00444553433A20712E6D2E6B207C -:1008D0006B6579626F617264206669726D776172AF -:1008E0006520666F722048484B420A000A092D2095 -:1008F00056657273696F6E202D0A000A092D204318 -:100900006F6E736F6C65202D0A4553432F713A0942 -:10091000717569740A6D3A096D6F7573656B6579E8 -:100920000A000A092D204D61676963202D0A443AA7 -:10093000094465627567204D65737361676520546E -:100940006F67676C650A583A094D6174726978205F -:100950004465627567204D6F646520546F67676CEE -:1009600065202D2053686F77206B657970726573F1 -:1009700073657320696E206D617472697820677287 -:1009800069640A4B3A094B6579626F61726420446D -:100990006562756720546F67676C65202D2053680A -:1009A0006F77206B65797072657373207265706FF5 -:1009B00072740A4D3A094465627567204D6F75730C -:1009C0006520546F67676C650A563A0956657273FD -:1009D000696F6E0A533A095374617475730A433A26 -:1009E00009416374697661746520436F6E736F6C3F -:1009F00065204D6F64650A46312D4631303A095302 -:100A0000776974636820746F204C61796572203057 -:100A10002D392028463130203D204C30290A302DF8 -:100A2000393A0953776974636820746F204C61798F -:100A3000657220302D390A4553433A09537769745A -:100A4000636820746F204C617965722030202861C2 -:100A50006C7465726E617465206B65792031290A4A -:100A600047524156453A0953776974636820746F59 -:100A7000204C6179657220302028616C7465726E3B -:100A8000617465206B65792032290A5041555345C0 -:100A90003A094A756D7020746F20426F6F746C6FE5 -:100AA0006164657220285265736574290A453A09A4 -:100AB0005072696E7420454550524F4D20536574F5 -:100AC00074696E67730A000A002575002E6E6B72DA -:100AD0006F3A20000A002575002E737761705F62FF -:100AE00061636B736C6173685F6261636B73706188 -:100AF00063653A20000A002575002E737761705FE8 -:100B000067726176655F6573633A20000A00257538 -:100B1000002E6E6F5F6775693A20000A0025750028 -:100B20002E737761705F72616C745F726775693A7A -:100B300020000A002575002E737761705F6C616C70 -:100B4000745F6C6775693A20000A002575002E6392 -:100B50006170736C6F636B5F746F5F636F6E7472E1 -:100B60006F6C3A20000A002575002E737761705F64 -:100B7000636F6E74726F6C5F636170736C6F636BC5 -:100B80003A20000A0025303258006B65796D61709B -:100B90005F636F6E6669672E7261773A20000A00A4 -:100BA0002575002E6D6F7573653A20000A00257556 -:100BB000002E6B6579626F6172643A20000A00252D -:100BC00075002E6D61747269783A20000A002575EF -:100BD000002E656E61626C653A20000A0025303295 -:100BE000580064656275675F636F6E6669672E7231 -:100BF00061773A20000A0025750064656661756CAE -:100C0000745F6C617965723A20003F000A6D6F7500 -:100C100073653A206F66660A000A6D6F7573653AF0 -:100C2000206F6E0A000A6B6579626F6172643A2008 -:100C30006F66660A000A6B6579626F6172643A20BA -:100C40006F6E0A000A6D61747269783A206F666689 -:100C50000A000A6D61747269783A206F6E0A000AA0 -:100C600064656275673A206F66660A000A646562A9 -:100C700075673A206F6E0A000A0A4A756D70696ED0 -:100C80006720746F20626F6F746C6F616465722E81 -:100C90002E2E2000433E20006565636F6E666967F7 -:100CA0003A0A000011241FBECFEFDAE0DEBFCDBF4D -:100CB00004B603FE24C08091E0019091E101A0916F -:100CC000E201B091E3018730904BA740B04BB9F4FB -:100CD0001092E0011092E1011092E2011092E30102 -:100CE00014BE84B7877F84BF88E10FB6F8948093E1 -:100CF0006000109260000FBEE0E0FFE3099511E094 -:100D0000A0E0B1E0ECEFF5E502C005900D92A23352 -:100D1000B107D9F711E0A2E3B1E001C01D92A03EF6 -:100D2000B107E1F70E94940E0C94FC2A0C94000089 -:100D3000FF93EF93E0913201F0913301309709F086 -:100D40000995EF91FF910895FC018591803011F094 -:100D5000EFDFFBCF0895FF27E0E230E247FF0CC052 -:100D6000419597FF09C0EDE260957095809590954B -:100D7000611D711D811D911D27FF02C0219530E36A -:100D800050E2AA27660F771F881F991FAA1FA41772 -:100D900010F0A41B63955A95A9F7AA3008F0A95F33 -:100DA000A05DAF93F395611571058105910541F73C -:100DB000ED3211F4EF93F395F21718F43F93F39596 -:100DC000FBCF8F91B5DFFA95E1F70895E991F9919D -:100DD0008591803021F0853219F0AADFF9CF08958E -:100DE00020E0E89455915532C1F3503311F46894E2 -:100DF00055915A3348F4505390F3220F022E220F8C -:100E0000220F200D250FF4CF0EF421958991999191 -:100E1000533619F3533729F1533559F1BC0188275B -:100E20009927E8945C3621F48991999168945591B9 -:100E3000543639F446EF7EF077FF0DC08FEF9FEF09 -:100E40000AC055374AE039F0583540E121F05236B2 -:100E500042E009F00895FF93EF937DDFEF91FF915A -:100E6000B7CFFF93EF93FC0181918030B9F360DF3E -:100E7000FBCFFF93EF9368DFF1CFDF93CF93CDB735 -:100E8000DEB72596A3DFCF91DF9108958FEF84B968 -:100E900080E485B957985F9A2E9A2F98ECE3F1E099 -:100EA00088E08E0F11928E13FDCFE4E3F1E088E02D -:100EB0008E0F11928E13FDCF8CE391E0909347013A -:100EC0008093460184E391E090934501809344012F -:100ED0000895EF92FF920F931F93CF93DF9380912A -:100EE0004401909145012091460130914701309392 -:100EF0004501209344019093470180934601C0E04F -:100F0000D0E0EE24E394F12C0FEF10E020E030E08D -:100F100085B1807C8C2BA90193E0440F551F9A95D5 -:100F2000E1F7842B85B98AE18A95F1F700C0E09159 -:100F30004401F0914501EC0FFD1F808190E0022EED -:100F400002C0959587950A94E2F780FD2F9A95E364 -:100F50009A95F1F70000E6B52E988AE18A95F1F7A7 -:100F600000C04091460150914701DA01AC0FBD1F0E -:100F70004F9B0AC0C701022E01C0880F0A94EAF7EE -:100F800080959C91892308C06C91C701022E01C0F5 -:100F9000880F0A94EAF7862B8C9386B56E2F70E043 -:100FA0008E1728F086B590E0861B970B06C0E6B535 -:100FB000C801861B970B8E0F911D069758F0E09184 -:100FC0004401F0914501EC0FFD1F8081FA01EC0F07 -:100FD000FD1F80839AE19A95F1F700C02F982E9A11 -:100FE0008BE291E00197F1F700C000002F5F3F4FC7 -:100FF0002830310509F08CCFA0914601B09147010E -:10100000AC0FBD1FE0914401F0914501EC0FFD1FB5 -:101010009C918081981751F00E945A1F609348015B -:101020007093490180934A0190934B012196C830F7 -:10103000D10509F06BCF8091D601853021F08091E8 -:10104000D601811111C060914801709149018091D0 -:101050004A0190914B010E94901F613177428105B6 -:10106000910510F00E94DF1E81E0DF91CF911F916A -:101070000F91FF90EF900895209146013091470124 -:10108000F901E80FF11D808108950F931F93CF930D -:10109000DF9386E191E00E94A406C0E0D0E00AE080 -:1010A00011E0E0914601F0914701EC0FFD1F8081B6 -:1010B0000E94C91E1F928F93DF93CF931F930F93AC -:1010C0000E943D0721960F900F900F900F900F9068 -:1010D0000F90C830D10529F7DF91CF911F910F9163 -:1010E00008951F93CF93DF93C7E0D0E010E0E09125 -:1010F0004601F0914701EC0FFD1F808190E00E94B6 -:10110000BD1E180F219798F7812FDF91CF911F9166 -:1011100008950895089561110BC0FC018281882310 -:1011200021F085EE0E94591503C085EE0E94F81546 -:1011300080E090E0089581E0089581E008950C94A6 -:101140009D0808950F931F93CF93DF938C01FC01AB -:10115000C081D181CE010E94871DBE010E944B0932 -:10116000EC01B8010E949F08882309F48DC0F801A2 -:101170008281882309F44AC08091570181111FC0E0 -:10118000C431F0E5DF0709F051C00E94A10881E0F9 -:10119000809357010E944E1F9093560180935501F2 -:1011A00010924E011092500110924F011092520174 -:1011B00010925101109254011092530165C0809118 -:1011C0005501909156010E94661F883C910570F46C -:1011D00080914E01E82FF0E0EE0FFF1FE15BFE4F24 -:1011E000D183C0838F5F80934E014EC0C43880E5A9 -:1011F000D80721F0C538D04501F13AC0F801828105 -:10120000882341F010924C0182E01EC0C438E0E512 -:10121000DE0759F580914C01811106C086E20E94DB -:10122000591586E20E94F81582E01CC0C438F0E52A -:10123000DF0741F3C538D045D9F4F801828188230E -:1012400031F010924D0180E20E9420161DC0809165 -:101250004D01811106C087E20E94591587E20E9464 -:10126000F81580E20E9427160FC0C538D04529F333 -:1012700081E080934C0180934D01C801DF91CF91B3 -:101280001F910F910C949B0880E0DF91CF911F91EB -:101290000F9108950895E72FF0E098E0899FE00D01 -:1012A000F11D112483E0EE0FFF1F8A95E1F7E60F91 -:1012B000F11DEE0FFF1FEB5DFE4F85919491089598 -:1012C000880F991FFC01EB55F0408591949108958A -:1012D000880F991FFC01EB5DFE4F85919491089555 -:1012E0000F931F93CF93DF93EC01811520E39207B7 -:1012F00050F5C11580E2D80708F0C3C0CB3BD1053B -:1013000090F4C83AD10508F06AC0C53AD10508F092 -:101310005BC0C430D10508F0D4C1219709F0CEC11B -:1013200001E010E00EC2CF3FD10511F008F0C9C1B5 -:10133000C03FD10508F0A2C0CE01805E9109089798 -:1013400008F4BFC1BBC1C13090E5D90709F4A2C000 -:1013500020F5C0318FE4D80770F4C11590E4D907A7 -:1013600008F094C0C11521E3D20708F0A7C1DD271A -:101370008E01106CE6C1C115D04509F09FC10E94D5 -:101380008E188FEF94E32CE0815090402040E1F7DD -:1013900000C000000E94E11FD4C1C11597E5D90724 -:1013A00058F4C03121E5D20708F020C1C43180E5EE -:1013B000D80708F479C082C1CE01905781159041B9 -:1013C00008F07CC1DF7077C1C53AD10509F47BC153 -:1013D000C63AD10509F07AC102E810E4B2C1C83AB0 -:1013E000D10509F476C1C93AD10509F475C1CA3AE3 -:1013F000D10509F474C1CB3AD10509F473C1CC3AD3 -:10140000D10509F472C1CD3AD10509F471C1C03BCF -:10141000D10509F470C1CE3AD10509F46FC1CF3AB4 -:10142000D10509F46EC1C13BD10509F46DC1C23BC0 -:10143000D10509F46CC1C33BD10509F46BC1C43BB0 -:10144000D10509F46AC1C53BD10509F469C1C63BA0 -:10145000D10509F468C1C73BD10509F467C1C83B90 -:10146000D10509F466C1C93BD10509F465C1CA3B80 -:10147000D10509F464C100E014E463C18E01106574 -:1014800060C1CE019F700E9468095CC1DF708E014F -:10149000106A57C185E292E00E94A4068091C101C2 -:1014A00081608093C1014DC10E948721811102C0DA -:1014B0000E946D210E94A42190E09093E00180930E -:1014C000DF01C23080E5D80721F48091DF0181601F -:1014D00086C0C43090E5D90721F48091DF01826095 -:1014E0007EC0C63020E5D20721F48091DF01846000 -:1014F00076C0C83080E5D80719F48091DF0127C095 -:10150000CA3090E5D90721F48091DF01806167C07E -:10151000CC3020E5D20721F48091DF0180625FC0EA -:10152000CE3080E5D80721F48091DF01806457C078 -:10153000C03190E5D90721F48091DF0180684FC068 -:10154000C23120E5D20729F48091DF0184608860F0 -:1015500046C0C33080E5D80721F48091DF018E7F3B -:101560003EC0C53090E5D90721F48091DF018D7F21 -:1015700036C0C73020E5D20721F48091DF018B7F90 -:101580002EC0C93080E5D80719F48091DF0126C04C -:10159000CB3090E5D90721F48091DF018F7E1FC009 -:1015A000CD3020E5D20721F48091DF018F7D17C077 -:1015B000CF3080E5D80721F48091DF018F7B0FC009 -:1015C000C13190E5D90721F48091DF018F7707C001 -:1015D000C331D04531F48091DF018B7F877F8093C9 -:1015E000DF018091DF010E94A821ABC08D2F9927D8 -:1015F0008F70992781309105D9F49E01237033278C -:1016000002C0880F991F2A95E2F79C688E0144E07A -:10161000000F111F4A95E1F700271370802B912BC3 -:1016200053E0CC0FDD1F5A95E1F7C076DD272FC0C0 -:101630008230910531F4DC2FCC278E01016F106AC6 -:1016400080C08330910569F4CE018370992701E051 -:1016500010E002C0000F111F8A95E2F7C8019C68D4 -:101660000FC084309105B9F4CE018370992701E051 -:1016700010E002C0000F111F8A95E2F7C8019A68B6 -:1016800023E0CC0FDD1F2A95E1F7C07ED7708C01D7 -:101690000C2B1D2B56C08530910531F4DC2FCC2747 -:1016A0008E01046F106A4DC0069709F04AC0CF71D1 -:1016B000DD27DC2FCC278E01106243C000E010E054 -:1016C00040C08E013EC001E810E43BC003E810E4D6 -:1016D00038C002EE14E435C009EE14E432C00AEE5C -:1016E00014E42FC005EB14E42CC006EB14E429C06D -:1016F00007EB14E426C00CEC14E423C00DEC14E456 -:1017000020C003E815E41DC00AE815E41AC002E988 -:1017100015E417C004E915E414C001E216E411C091 -:1017200003E216E40EC004E216E40BC005E216E480 -:1017300008C006E216E405C007E216E402C00AE2A9 -:1017400016E4C801DF91CF911F910F910895E72F03 -:10175000F0E098E0899FE00DF11D112483E0EE0F89 -:10176000FF1F8A95E1F7E60FF11DEE0FFF1FEB5DFE -:10177000FE4F85919491803E9105E0F4803C910567 -:1017800058F58133910509F46FC048F48932910509 -:1017900009F463C08A32910509F46DC072C08933BF -:1017A0009105E9F082389105D1F08533910509F46E -:1017B0004DC067C0833E910581F138F4803E9105AC -:1017C000B9F0823E9105D9F05CC0863E910561F189 -:1017D000873E9105A1F155C00E94600908952091AE -:1017E000DF0120FD02C021FF4CC080EE90E049C027 -:1017F0008091DF0180FFF9CF89E390E042C08091C2 -:10180000DF0182FF0EC08091DF0184FF03C080E012 -:1018100090E037C083EE90E034C08091DF0182FF1A -:10182000F2CF82EE90E02DC08091DF0183FF0BC0EC -:101830008091DF0184FDEBCF87EE90E022C08091A4 -:10184000DF0183FFF5CF86EE90E01BC08091DF01C2 -:1018500085FF07C089E290E014C08091DF0185FF19 -:10186000F9CF85E390E00DC08091DF0186FF07C0CE -:101870008AE290E006C08091DF0186FFF9CF81E324 -:1018800090E00E947009089508950C94440C809192 -:10189000630108959FB7F89410925A019FBF9091E9 -:1018A000D601943009F057C09091E9009F703091B3 -:1018B000EC00232F217030FD20E8922B24E02093B0 -:1018C000E9002091EB0020FF43C02091EE0027FFAC -:1018D0003FC020915801222321F02091E80025FFEC -:1018E00037C01092580126E03091E80035FD15C050 -:1018F0003091D601343061F53091EB0035FD28C0D0 -:10190000215021F481E08093580122C0EFE9FFE0EB -:101910003197F1F700C00000E7CF8093F10080918C -:10192000E80085FD0AC08091E80080FFFCCF80912F -:10193000E8008E778093E80006C08FB7F89421E026 -:1019400020935A018FBF9F709093E90080E0089523 -:101950009F709093E9008FEF0895CF93DF9300D0AD -:101960001F92CDB7DEB79C018091D601843019F566 -:1019700093E099833B832A839093E9008FEF9091C2 -:10198000E800815095FD06C095ED9A95F1F70000AD -:101990008111F5CF8091E80085FF0DC040E050E057 -:1019A00063E070E0CE0101960E944A0F8091E8004A -:1019B0008E778093E8000F900F900F90DF91CF917A -:1019C0000895CF93DF9300D01F92CDB7DEB720915B -:1019D000D601243021F522E029839B838A8383E08A -:1019E0008093E9008FEF9091E800815095FD06C04B -:1019F00095ED9A95F1F700008111F5CF8091E800FF -:101A000085FF0DC040E050E063E070E0CE0101963C -:101A10000E944A0F8091E8008E778093E8000F9033 -:101A20000F900F90DF91CF9108952091D60124302F -:101A3000F1F422E02093E9002FEF3091E8002150EB -:101A400035FD06C035ED3A95F1F700002111F5CFCF -:101A50002091E80025FF0BC040E050E065E070E019 -:101A60000E944A0F8091E8008E778093E8000895E5 -:101A7000CF93DF932091D601243039F521E02093D4 -:101A8000E9002FEF3091E800215035FD06C035ED1B -:101A90003A95F1F700002111F5CF2091E80025FFDC -:101AA00014C0EC0140E050E068E070E00E944A0F92 -:101AB0008091E8008E778093E80088E0FE01ABE536 -:101AC000B1E001900D928A95E1F7DF91CF910895F1 -:101AD0008CE592E00E94A4068091D501811109C095 -:101AE0000E94DF100E943C118091E200846080938C -:101AF000E200089588E592E00E94A4061092D501C4 -:101B0000089584E592E00C94A40680E592E00C949C -:101B1000A4068CE492E00E94A4060C94161F209167 -:101B200059012F5F822F62E30E948C2A992319F0BA -:101B30002093590108951092590180915A018823E8 -:101B400071F18091D601843041F58091E9008F7068 -:101B50002091EC00922F917020FD90E8892B94E069 -:101B60009093E9009091EB0090FF14C09091EE00EB -:101B700097FF10C09091E80095FF03C01092F1000C -:101B8000F9CF9091E80090FF05C09091E8009E7712 -:101B90009093E8008F708093E90010925A010895A5 -:101BA00042E061EC81E00E94591042E061EC82E089 -:101BB0000E94591042E061EC83E00E94591042E219 -:101BC00061EC84E00C9459108091D801833009F4C1 -:101BD00053C030F4813071F0823009F48CC0089524 -:101BE0008A3009F478C08B3009F45EC0893009F07E -:101BF0009AC020C08091D701813A09F094C08091A9 -:101C0000E800877F8093E8008091DB019091DC0100 -:101C1000892B21F468E08BE591E003C060E080E06F -:101C200090E070E00E94950F8091E8008B778093A0 -:101C3000E80008958091D701813209F074C0809145 -:101C4000DB019091DC01892B09F06DC08091E800E7 -:101C5000877F8093E8008091E80082FD05C0809135 -:101C6000D6018111F8CF5FC08091F10080936301AC -:101C70008091E8008B7753C08091D701813A09F0B9 -:101C800052C08091DB019091DC01892B09F04BC09F -:101C90008091E800877F8093E8008091E80080FFD2 -:101CA000FCCF80910A0136C08091D7018132D9F5ED -:101CB0008091DB019091DC01892BA9F58091E800EE -:101CC000877F8093E8000E948E108091D9018093D5 -:101CD0000A010C948E188091D701813221F58091F0 -:101CE000E800877F8093E8000E948E108091DA01DF -:101CF0008093640108958091D701813AA1F4809185 -:101D0000E800877F8093E8008091E80080FFFCCFA7 -:101D1000809164018093F1008091E8008E77809338 -:101D2000E8000C948E10089584B7877F84BF88E103 -:101D30000FB6F89480936000109260000FBE90E0A0 -:101D400080E80FB6F89480936100909361000FBE15 -:101D50000E946E140E94DF100E943C118091E200EC -:101D600084608093E2008AE49CE00E94B81E78942C -:101D70000E94C1130E94701480E091E00E94DC1365 -:101D80008BE392E00E94A4068091D601853089F40D -:101D900087E392E00E94A4060E94DF1E8091D40196 -:101DA000882391F30E94081F882371F30E94340F47 -:101DB000EBCF0E949414E8CF292F3327233031052D -:101DC000C9F064F42130310581F02230310509F089 -:101DD00043C084E790E026E832E042C0213231057A -:101DE000F1F02232310541F137C082E190E02AEF73 -:101DF00032E036C099278130910541F0823091055B -:101E000041F0892B49F5E2E8F2E005C0E4E7F2E0B1 -:101E100002C0E0E6F2E0849190E09F0121C06430CE -:101E2000D8F4E62FF0E0EE0FFF1FE15EFE4F2081B9 -:101E3000318189E090E014C0643070F470E0FB01FF -:101E4000EE0FFF1FE95EFE4F20813181FB01ED5E49 -:101E5000FE4F808190E004C080E090E020E030E020 -:101E6000FA0131832083089580E189BD82E189BD33 -:101E700009B400FEFDCF8091D8008F7D8093D800FB -:101E80008091E00082608093E0008091E00081FD1D -:101E9000FCCF0895CF92DF92EF92FF920F931F93A2 -:101EA000CF93DF93EC018B016A010E94AD10811189 -:101EB00033C0C114D10439F0F60180819181081B2F -:101EC000190BC80FD91FE12CF12C0115110519F1BF -:101ED0008091E80085FD16C08091E8008E778093A0 -:101EE000E800C114D10449F0F60180819181E80E27 -:101EF000F91EF182E08285E00FC00E94AD108823B8 -:101F000021F30AC089918093F10001501109FFEF7C -:101F1000EF1AFF0ADACF80E0DF91CF911F910F9186 -:101F2000FF90EF90DF90CF9008952091DD013091E8 -:101F3000DE012617370748F06115710539F4209145 -:101F4000E8002E772093E80001C0B90140E0611558 -:101F50007105A9F12091D601222309F443C025304F -:101F600009F442C02091E80023FD40C02091E80020 -:101F700022FD32C02091E80020FFE9CF4091F3001C -:101F80002091F20030E0342BFC01CF016115710586 -:101F900059F02830310540F481918093F10061506F -:101FA00071092F5F3F4FF1CF41E02830310509F033 -:101FB00040E02091E8002E772093E800C8CF41113F -:101FC000C9CF0AC08091D601882361F0853061F0C5 -:101FD0008091E80083FD0AC08091E80082FFF2CF83 -:101FE00080E0089582E0089583E0089581E00895F7 -:101FF0002091DD013091DE012617370748F0611589 -:10200000710539F42091E8002E772093E80001C093 -:10201000B901FC0120E06115710591F18091D601B3 -:10202000882309F440C0853009F43FC08091E8005E -:1020300083FD3DC08091E80082FD2FC08091E800C3 -:1020400080FFE9CF2091F3008091F20090E0922B85 -:102050006115710559F08830910540F42491209361 -:10206000F1003196615071090196F2CF21E0089795 -:1020700009F020E08091E8008E778093E800CBCFD4 -:102080002111CCCF0AC08091D601882361F0853020 -:1020900061F08091E80083FD0AC08091E80082FF32 -:1020A000F2CF80E0089582E0089583E0089581E012 -:1020B0000895982F973058F59093E900981739F0C4 -:1020C0007091EC002091ED005091F00003C0242F9E -:1020D000762F50E021FF19C03091EB003E7F309306 -:1020E000EB003091ED003D7F3093ED003091EB003F -:1020F00031603093EB007093EC002093ED0050932F -:10210000F0002091EE0027FF07C09F5FD3CF8F70B4 -:102110008093E90081E0089580E008958091D701DF -:1021200087FF11C08091E80082FD05C08091D60133 -:102130008111F8CF11C08091E8008B770BC080919E -:10214000D601882349F08091E80080FFF8CF809184 -:10215000E8008E778093E80008952091E4003091A4 -:10216000E50095E64091EC00842F817040FF22C08D -:102170008091E80080FD1CC08091D601882391F0F9 -:10218000853091F08091EB0085FD10C04091E40016 -:102190005091E5004217530729F39A01915011F726 -:1021A00084E0089582E0089583E0089581E0089531 -:1021B00080E008954091E80042FFDECF08950E943C -:1021C0004D110E945511E0EEF0E080818160808326 -:1021D000E8EDF0E080818F77808319BCA7EDB0E057 -:1021E0008C918E7F8C9380818F7E80831092D5011D -:1021F00008950F931F93CF93DF930E944D110E9478 -:102200005511C8EDD0E088818F77888388818068F8 -:10221000888388818F7D888319BC1092D6011092A3 -:10222000D2011092D4011092D30100EE10E0F80117 -:1022300080818B7F808388818160888342E060E039 -:1022400080E00E945910E1EEF0E080818E7F808373 -:10225000E2EEF0E08081816080838081886080830D -:10226000F80180818E7F8083888180618883DF91FF -:10227000CF911F910F910895E8EDF0E080818F7E5E -:102280008083E7EDF0E080818160808384E082BF1D -:1022900081E08093D5010C94F910E8EDF0E08081A5 -:1022A0008E7F80831092E20008951092DA001092DF -:1022B000E10008951F920F920FB60F9211242F93F1 -:1022C0003F934F935F936F937F938F939F93AF93BE -:1022D000BF93EF93FF938091E10082FF0BC0809149 -:1022E000E20082FF07C08091E1008B7F8093E100D4 -:1022F0000E948F0D8091DA0080FF1FC08091D8006E -:1023000080FF1BC08091DA008E7F8093DA0080917D -:10231000D90080FF0DC080E189BD82E189BD09B48B -:1023200000FEFDCF81E08093D6010E94680D05C0BC -:1023300019BC1092D6010E947A0D8091E10080FFB5 -:1023400019C08091E20080FF15C08091E2008E7F6D -:102350008093E2008091E20080618093E2008091AE -:10236000D80080628093D80019BC85E08093D601A4 -:102370000E94850D8091E10084FF30C08091E200D1 -:1023800084FF2CC080E189BD82E189BD09B400FED3 -:10239000FDCF8091D8008F7D8093D8008091E1009F -:1023A0008F7E8093E1008091E2008F7E8093E20037 -:1023B0008091E20081608093E2008091D2018823C5 -:1023C00011F084E007C08091E30087FD02C081E046 -:1023D00001C083E08093D6010E94890D8091E100C5 -:1023E00083FF29C08091E20083FF25C08091E10036 -:1023F000877F8093E10082E08093D6011092D20122 -:102400008091E1008E7F8093E1008091E2008E7FD9 -:102410008093E2008091E20080618093E20042E0DC -:1024200060E080E00E9459108091F0008860809305 -:10243000F0000E94810DFF91EF91BF91AF919F91AC -:102440008F917F916F915F914F913F912F910F905D -:102450000FBE0F901F9018951F920F920FB60F92FC -:1024600011242F933F934F935F936F937F938F9399 -:102470009F93AF93BF93CF93DF93EF93FF93C0915D -:10248000E900CF708091EC00D82FD17080FDD0E8AA -:102490001092E9008091F000877F8093F00078949B -:1024A0000E9470121092E9008091F0008860809381 -:1024B000F000CD2BCF70C093E900FF91EF91DF9139 -:1024C000CF91BF91AF919F918F917F916F915F91CC -:1024D0004F913F912F910F900FBE0F901F90189525 -:1024E0001F93CF93DF93CDB7DEB7AA970FB6F894BB -:1024F000DEBF0FBECDBFE7EDF1E088E08E0F90911B -:10250000F10091938E13FBCF0E94E40D8091E800BF -:1025100083FF1FC18091D7019091D801492F50E0CE -:102520004A30510508F015C1FA01EA5AFF4F0C94E0 -:10253000AC2A803881F0823809F00BC18091DB0130 -:102540008F708093E9008091EB0085FB882780F9EC -:102550001092E90006C08091D3019091D4019111AD -:1025600082609091E800977F9093E8008093F1005B -:102570001092F100C8C0282F2D7F09F0EAC08823EF -:1025800019F0823061F0E5C08091D901813009F005 -:10259000E0C0933009F080E08093D4012BC080919B -:1025A000D901811127C08091DB018F7009F4D1C05E -:1025B0008093E9002091EB0020FF1CC0933021F4B0 -:1025C0008091EB00806214C09091EB009061909339 -:1025D000EB0021E030E0A90102C0440F551F8A95AD -:1025E000E2F74093EA001092EA008091EB008860E5 -:1025F0008093EB001092E9008091E800877F86C00D -:102600008111A7C01091D9011F778091E3008078D4 -:10261000812B8093E3008091E800877F8093E8001E -:102620000E948E108091E80080FFFCCF8091E30033 -:1026300080688093E300111102C082E001C083E052 -:102640008093D60186C08058823008F082C0809185 -:10265000D9019091DA018C3D53E0950779F583E03B -:102660008A838AE289834FB7F894DE01139620E0CB -:102670003EE051E2E32FF0E050935700E49120FF59 -:1026800003C0E295EF703F5FEF708E2F90E0EA306D -:1026900010F0C79601C0C0968D939D932F5F243193 -:1026A00049F74FBF8091E800877F8093E8006AE296 -:1026B00070E0CE0101960E94950F14C0AE014F5FED -:1026C0005F4F6091DB010E94DC0EBC01009709F4B2 -:1026D00040C09091E800977F9093E80089819A81AB -:1026E0000E94F80F8091E8008B778093E80031C05A -:1026F000803879F58091E800877F8093E8008091A9 -:10270000D2018093F1008091E8008E778093E800F9 -:102710000E948E101EC081111CC09091D901923070 -:10272000C0F48091E800877F8093E8009093D20105 -:102730000E948E108091D201811106C08091E30029 -:1027400087FD02C081E001C084E08093D6010E9431 -:10275000D00D8091E80083FF0AC08091E800877F58 -:102760008093E8008091EB0080628093EB00AA9652 -:102770000FB6F894DEBF0FBECDBFDF91CF911F9192 -:102780000895CF938091D6018823A1F0C091E900EC -:10279000CF709091EC00892F817090FD80E8C82B5C -:1027A0001092E9008091E80083FD0E947012CF70C2 -:1027B000C093E900CF91089590936A0180936901D5 -:1027C0000895E0916901F0916A01309721F001903C -:1027D000F081E02D099480E00895EF92FF920F932D -:1027E0001F93CF93DF93E0916901F0916A013097D5 -:1027F000B1F18C010280F381E02D09958091C10136 -:1028000082FF2DC080FF04C086EF93E00E94A406E3 -:10281000E80118E080EFE82E83E0F82E8091C101F6 -:1028200080FF0BC088811F928F93FF92EF920E94CE -:102830003D070F900F900F900F901150219611119E -:10284000EDCF8091C10180FF0AC08EEE93E0DF9151 -:10285000CF911F910F91FF90EF900C94A406DF9100 -:10286000CF911F910F91FF90EF900895E091690132 -:10287000F0916A01309721F00480F581E02D0994F0 -:10288000089520916701309168018217930771F0D4 -:102890009093680180936701E0916901F0916A016A -:1028A000309721F00680F781E02D0994089520915A -:1028B0006501309166018217930771F0909366016C -:1028C00080936501E0916901F0916A01309721F0F0 -:1028D0000084F185E02D0994089508950C946D14F9 -:1028E0000E94451F0E9446070C943F20CF93DF9320 -:1028F0001F92CDB7DEB79091C10192FF10C090FF3B -:102900000EC01F928F9328E034E03F932F9389836A -:102910000E943D070F900F900F900F9089810F90AC -:10292000DF91CF910C94450C9F92AF92BF92CF92C2 -:10293000DF92EF92FF920F931F93CF93DF9300D01C -:1029400000D000D0CDB7DEB70E94690707E010E0E5 -:10295000AA24A394B12C902E802F0E943C089801A9 -:1029600024593E4F6901F901F080F826A1F4015085 -:10297000110988F78FEF89838A831B820E944E1F7B -:102980008160782F9D838C8349815A816B818D81F1 -:102990000E942B152FC09091C10191FF04C08E831E -:1029A0000E9445088E8127E030E0A501022E01C07B -:1029B000440F0A94EAF7E42E4F21C1F029839A824A -:1029C0008E2191E009F490E09B830E944E1F81606C -:1029D000782F9D838C8349815A816B818D810E94E0 -:1029E0002B15F6018081E826E08204C021503109D0 -:1029F000E0F6BDCF0E94A92310916B010E94E11364 -:102A00001817B9F00E94E11380936B0126960FB658 -:102A1000F894DEBF0FBECDBFDF91CF911F910F9114 -:102A2000FF90EF90DF90CF90BF90AF909F900C946D -:102A3000761426960FB6F894DEBF0FBECDBFDF9199 -:102A4000CF911F910F91FF90EF90DF90CF90BF90AB -:102A5000AF909F900895CF93DF93CDB7DEB72B97BC -:102A60000FB6F894DEBF0FBECDBF4F83588769877E -:102A70007A878B87DE01119686E0FD0111928A9597 -:102A8000E9F785E0FE01379601900D928A95E1F70E -:102A900049815A816B817C818D819E810E942C1B92 -:102AA0002B960FB6F894DEBF0FBECDBFDF91CF914E -:102AB0000895CF93882309F499C0C82F8CEF8C0F09 -:102AC000813A48F48C2F0E94152881118FC08C2FD9 -:102AD0000E94061E0CC080E28C0F883058F4C7702C -:102AE00081E001C0880FCA95EAF70E94421ECF918B -:102AF0000C94891E8BE58C0F833078F4C53A29F04D -:102B0000C63A31F083E890E005C081E890E002C069 -:102B100082E890E0CF910C94411488E58C0F8331CA -:102B200008F064C0C83A39F1C93A41F1CA3A49F1EA -:102B3000CB3A51F1CC3A59F1CD3A61F1C03B69F150 -:102B4000CE3A71F1CF3A79F1C13B81F1C23B89F1C3 -:102B5000C33B91F1C43B99F1C53BA1F1C63BA9F13F -:102B6000C73BB1F1C83BB9F1C93BC1F1CA3BC9F19F -:102B700080E090E038C082EE90E035C089EE90E0D1 -:102B800032C08AEE90E02FC085EB90E02CC086EB3F -:102B900090E029C087EB90E026C08CEC90E023C049 -:102BA0008DEC90E020C083E891E01DC08AE891E0C0 -:102BB0001AC082E991E017C084E991E014C081E273 -:102BC00092E011C083E292E00EC084E292E00BC07A -:102BD00085E292E008C086E292E005C087E292E0DA -:102BE00002C08AE292E0CF910C945714CF910895DD -:102BF000882329F19CEF980F913A18F40E94231E24 -:102C00000DC090E2980F983058F4877091E001C0A1 -:102C1000990F8A95EAF7892F0E94481E0C94891E05 -:102C20009BE5980F933020F480E090E00C944114E1 -:102C3000885A833120F480E090E00C945714089572 -:102C4000882321F00E94421E0C94891E0895882337 -:102C500021F00E94481E0C94891E08957F928F9245 -:102C60009F92AF92BF92CF92DF92EF92FF920F931B -:102C70001F93CF93DF931F92CDB7DEB77C01C62E93 -:102C8000772EFC01058102950F70128111110E94AF -:102C90005F1E0E94FF1D882379F0112369F080E2F6 -:102CA0008C0D883048F082E00E94E81D0E94FF1DD4 -:102CB00091E0D82ED92601C0D12CE72DE295EF70F6 -:102CC000F0E0E05AFF4F0C94AC2A872D807F072D4F -:102CD0000F70882311F00295007F112389F00023E3 -:102CE00009F498C180E28C0D883020F4802F0E9476 -:102CF000421E03C0802F0E94521E0E94891E8AC15C -:102D00008C2D0E94F815002309F49DC180E28C0DE2 -:102D1000883020F4802F0E94481E03C0802F0E941C -:102D2000581E0E94891E8FC1872D807F972D9F700E -:102D3000803211F4892F03C0892F8295807FCC20A7 -:102D400021F0F1E0CF16A1F01DC0112339F00023CE -:102D500019F1013009F50E94721E75C1002319F0A6 -:102D6000013009F470C189830E94751E898110C1E8 -:102D7000112321F0063008F066C10EC0053008F0BE -:102D800062C106C1112359F0002331F0F70195818A -:102D900090FF40C19F7095830E94201654C100236C -:102DA00009F4F6C03DC1872D86958695837090E025 -:102DB000009719F0019761F046C1112321F08C2D85 -:102DC000972D937002C080E090E00E9441143BC1B7 -:102DD000112321F08C2D972D937002C080E090E09C -:102DE0000E94571430C18C2D112319F00E942F22FC -:102DF00002C00E9497220E941C2325C1872D837048 -:102E000009F052C011111FC18C2D829586958770D3 -:102E1000880F880F9C2D9F70892E912CA12CB12C8E -:102E2000082E04C0880C991CAA1CBB1C0A94D2F75B -:102E3000C4FE14C00FE010E020E030E0B901A801AA -:102E400004C0440F551F661F771F8A95D2F7CB0128 -:102E5000BA01609570958095909503C060E070E030 -:102E6000CB01272D26952695237030E022303105A1 -:102E700069F02330310589F0682979298A299B294D -:102E80002130310571F00E94741CDDC06829792958 -:102E90008A299B290E94901CD6C00E94741CC501DF -:102EA000B4010E94581CCFC0112319F0872D8170E6 -:102EB00001C08695882309F4C6C08C2D829586951D -:102EC0008770880F880F9C2D9F70892E912CA12CC4 -:102ED000B12C082E04C0880C991CAA1CBB1C0A9497 -:102EE000D2F7C4FE14C00FE010E020E030E0B901DA -:102EF000A80104C0440F551F661F771F8A95D2F79B -:102F0000CB01BA01609570958095909503C060E003 -:102F100070E0CB01272D269526952370422F50E097 -:102F20004230510569F04330510589F0682979290B -:102F30008A299B294130510571F00E944E1D83C0A2 -:102F4000682979298A299B290E946A1D7CC00E94D0 -:102F50004E1DC501B4010E94321D75C08C2D90E03C -:102F6000FC01E05EF109E531F10508F04FC0E059E0 -:102F7000FF4F0C94AC2A0C2D0F70872D8F711123ED -:102F800021F00E94CB1C802F07CF0E94EC1C802FC9 -:102F90000E94271658C0112341F0053008F053C095 -:102FA000872D8F710E94111D4EC0063008F04BC056 -:102FB000F7CF112339F0872D8F710E94CB1C43C0AE -:102FC0001123C9F3872D8F710E94EC1C3CC0112383 -:102FD00029F0872D8F710E94B61C35C00E94AC1C51 -:102FE00032C0112351F0172D1F71812F0E94CB1C6D -:102FF00063E0812F0E94DF1D26C081E00E94E81D52 -:10300000023008F182E00E94E81D1DC0112331F05A -:10301000002389F28C2D0E94591515C0002391F2CE -:103020008C2D0E94F8150FC0472D4F706C2DC701D5 -:103030000E948B080E94D01B06C0472D4F706C2D3C -:10304000C7010E944A09DD20F9F00E94DB1D80FDC6 -:103050001BC0F70112820E94D51D0E94CB1CC70124 -:103060000E9453180E94D51D0F90DF91CF911F91A0 -:103070000F91FF90EF90DF90CF90BF90AF909F9017 -:103080008F907F900C94EC1C0F90DF91CF911F914B -:103090000F91FF90EF90DF90CF90BF90AF909F90F7 -:1030A0008F907F9008950F931F93CF93DF93EC0140 -:1030B000888199812B813C81232BB9F09F3F11F4AA -:1030C0008F3F99F0CE010E94A208882371F0688199 -:1030D00079818A810E94D11D8C010E94861D0E94E7 -:1030E0004D1CB801CE010E942E16DF91CF911F9189 -:1030F0000F9108950E945F1E0E946F1E0E94341E51 -:103100000E94891E0E944F240E941C2380E090E0B0 -:103110000E94411480E090E00C9457140E944F1ECE -:103120000C947A180E94C61D292F22952F7030E02A -:103130002C3031054CF42A3031056CF42250310921 -:1031400022303105A8F407C02C30310569F02F304A -:10315000310551F00DC0803F69F018F4803E40F415 -:1031600009C0843F29F406C093FB882780F908959D -:1031700080E0089581E00895CF93DF9300D000D0E0 -:103180001F92CDB7DEB70F900F900F900F900F905A -:10319000DF91CF910895CF93DF9300D000D000D07E -:1031A000CDB7DEB726960FB6F894DEBF0FBECDBF03 -:1031B000DF91CF9108951F93CF93DF93C091740156 -:1031C00016E080917501C81799F0D0E01C9FF001BE -:1031D0001D9FF00D1124EA58FE4F408151816281FC -:1031E0007381848195810E94CB182196C770E9CFA5 -:1031F000DF91CF911F9108954091A6015091A701B1 -:103200006091A8017091A9018091AA019091AB01F0 -:103210000C94CB188091AB0182958F7009F054C04B -:103220008091A801882309F44FC080917401A09176 -:1032300075016091A6017091A7014091A90150917B -:10324000AA01B6E08A1709F43FC090E04115510584 -:10325000C1F17F3F11F46F3FA1F1B89FF001B99F19 -:10326000F00D1124EA58FE4F218172132AC02081EB -:10327000621327C02281211124C0238134812417A5 -:10328000350710F421503109241B350B283C31053A -:10329000C0F42091AB012F7020612093AB0126E098 -:1032A000289FF001299FF00D1124E558FE4F8081E1 -:1032B0008F708061808386EA91E00E9453180C949D -:1032C000DB1801968770BECF0895CF92DF92EF9200 -:1032D000FF920F931F93CF93DF93CDB7DEB7629723 -:1032E0000FB6F894DEBF0FBECDBF8C0185E0F801AC -:1032F000DE011D9601900D928A95E1F7D8014C915F -:1033000011965C91119712966C9112971396CD902D -:10331000DC9014973091A6017091A7018091A901CA -:103320009091AA01009709F46BC17F3F19F43F3FC8 -:1033300009F466C1E090A801EE2009F4C0C0209114 -:10334000AB01C816D90628F0F601E81BF90BCF012E -:1033500004C0809590958C0D9D1DFF24F394883CAE -:10336000910578F0F12C207F09F0C6C07C2DD98A18 -:10337000C88A89890E94BC1886EA91E00E94531885 -:10338000B1C0822F807F09F046C0751314C034137A -:1033900012C0611110C02F7020612093AB010E94F8 -:1033A000FC1886EA91E00E9453188091AB01D80185 -:1033B00015968C932EC0CD2819F15F3F11F44F3F25 -:1033C000F9F0F62E61111CC08091740120917501F5 -:1033D00036E0821709F45AC090E0389FF001399F17 -:1033E000F00D1124EA58FE4F7181571306C0708109 -:1033F000471303C07281711103C001968770E9CF32 -:10340000F62E662309F418C18091AB018160809388 -:10341000AB01F12C11C1751308C0341306C0611142 -:1034200004C08091AB01D801C3C04D875E878D85F4 -:103430009E856A8B0E9492186A898823E1F166232F -:10344000D1F12091AB01822F82958F7090E002978D -:1034500074F08091A6019091A70198878F831986B7 -:10346000DB86CA862C87CE0107960E94531886E019 -:10347000F801A6EAB1E001900D928A95E1F70E9469 -:103480000A190E94FC18FF24F394D6C04D875E876A -:103490008D859E850E94C61D292F22952F7030E0B4 -:1034A000223031050CF0BCC09F7009F0B6C0805EC0 -:1034B000883008F4C1C0C8010E945318E4CFC81670 -:1034C000D90608F453C0F601E81BF90BCF01883C7C -:1034D000910508F450C0F12C7C2DD98AC88A8989BD -:1034E0000E94BC18E6EAF1E086E0DF011D928A95B1 -:1034F000E9F70E94FC18A0C0751314C0341312C061 -:10350000611110C08091AB01F8018583C8010E9450 -:10351000531886E0E6EAF1E0DF011D928A95E9F7AB -:10352000FE2C8AC04D875E878D859E856A8B0E94A2 -:1035300092186A89882309F4BECF662309F4BBCFA9 -:103540002091AB01822F82958F7090E002970CF44E -:103550008ECF8091A6019091A7019A8389831B82C7 -:10356000DD82CC822E83CE0101967FCF809590950F -:103570008C0D9D1DACCFF62E662309F49CCF7513E0 -:103580002EC034132CC02091AB0120FD1FC0822F10 -:1035900082958F70D9F0D80115962C9315978F309E -:1035A00049F08F5F982F9295907F822F8F70892B93 -:1035B00015968C93C8010E94531886E0F801A6EA7C -:1035C000B1E001900D928A95E1F793CF86E0F80182 -:1035D000A6EAB1E001900D928A95E1F72DC04D87E2 -:1035E0005E878D859E850E949218811140CF8091C3 -:1035F000AB0181608093AB01C8010E9453181CC0CD -:10360000662309F458CF4D875E878D859E850E947D -:103610009218882309F44FCF2ACF811148CF0CC0CC -:10362000243031050CF047CF9F7009F440CFF801EA -:103630009581907F09F03BCF8F2D62960FB6F8945D -:10364000DEBF0FBECDBFDF91CF911F910F91FF90D5 -:10365000EF90DF90CF9008951F93CF93DF93CDB776 -:10366000DEB72C970FB6F894DEBF0FBECDBF4F83E9 -:10367000588769877A878B879C87CE0107960E9437 -:103680006519882369F08F8198852A853B85232BCE -:10369000F1F19F3F09F063C08F3F09F060C037C070 -:1036A00086E0FE013796DE01119601900D928A9513 -:1036B000E1F76F817885EA85FB85309741F17F3F9F -:1036C00011F46F3F21F12091750130E0C90101969D -:1036D000877099274091740150E08417950709F489 -:1036E00047C069837A83FD83EC8396E0929FD00183 -:1036F000939FB00D1124AA58BE4FFE013196019040 -:103700000D929A95E1F7809375010E94DB1816E0FF -:1037100080917401909175018917C1F1189FC001C2 -:1037200011248A589E4F0E946519882379F1E091EF -:1037300074011E9FF0011124EA58FE4F408151810F -:1037400062817381848195810E94CB18809174017C -:1037500090E001968770992780937401D9CF4F81AB -:10376000588569857A858B859C850E94CB18CFCF3B -:103770000E948E181092750110927401E6EAF1E031 -:1037800086E0DF011D928A95E9F7C1CF2C960FB62E -:10379000F894DEBF0FBECDBFDF91CF911F9108958A -:1037A000EF92FF920F931F93CF93DF938C010097BB -:1037B00009F46CC0F12CEE24E394E8012196F801A1 -:1037C0008491843740F4843008F051C0813081F016 -:1037D000823019F15BC0853709F444C0A8F19CE739 -:1037E000980F903708F052C08F770E94F81541C0AB -:1037F0000E5F1F4FFE01C49180E28C0F883048F4A9 -:10380000C7708E2D01C0880FCA95EAF70E94621E0C -:1038100014C08C2F0E9459152DC00E5F1F4FFE0142 -:10382000C49180E28C0F883058F4C7708E2D01C08F -:10383000880FCA95EAF70E94681E0E94891E1AC066 -:103840008C2F0E94F81516C00E5F1F4FFE01C49109 -:10385000CC2381F08FE99FE00197F1F700C00000D1 -:10386000C150F6CF0E5F1F4FFE01F49003C00E94BF -:1038700059158E018F2D882309F49FCFEFE9FFE0C2 -:103880003197F1F700C000008150F5CFDF91CF9163 -:103890001F910F91FF90EF90089508956093B001EC -:1038A0007093B1018093B2019093B3010C947A1894 -:1038B0000F931F930091B0011091B1012091B201BB -:1038C0003091B301DC01CB01802B912BA22BB32BC8 -:1038D0008093B0019093B101A093B201B093B30172 -:1038E0001F910F910C947A180F931F930091B001C0 -:1038F0001091B1012091B2013091B301DC01CB01F3 -:1039000080239123A223B3238093B0019093B1012C -:10391000A093B201B093B3011F910F910C947A1848 -:103920000F931F930091B0011091B1012091B2014A -:103930003091B301DC01CB0180279127A227B32767 -:103940008093B0019093B101A093B201B093B30101 -:103950001F910F910C947A181092AC011092AD0146 -:103960001092AE011092AF010C947A1841E050E031 -:1039700060E070E004C0440F551F661F771F8A95F2 -:10398000D2F74093AC015093AD016093AE017093B8 -:10399000AF010C947A1841E050E060E070E004C0A0 -:1039A000440F551F661F771F8A95D2F78091AC018F -:1039B0009091AD01A091AE01B091AF01482B592B70 -:1039C0006A2B7B2B4093AC015093AD016093AE0109 -:1039D0007093AF010C947A1841E050E060E070E021 -:1039E00004C0440F551F661F771F8A95D2F7409574 -:1039F0005095609570958091AC019091AD01A0912A -:103A0000AE01B091AF01482359236A237B23409331 -:103A1000AC015093AD016093AE017093AF010C9473 -:103A20007A1841E050E060E070E004C0440F551F98 -:103A3000661F771F8A95D2F78091AC019091AD01F6 -:103A4000A091AE01B091AF01482759276A277B2783 -:103A50004093AC015093AD016093AE017093AF0100 -:103A60000C947A180F931F930091AC011091AD0143 -:103A70002091AE013091AF01DC01CB01802B912B65 -:103A8000A22BB32B8093AC019093AD01A093AE0118 -:103A9000B093AF011F910F910C947A180F931F935D -:103AA0000091AC011091AD012091AE013091AF01B8 -:103AB000DC01CB0180239123A223B3238093AC01AB -:103AC0009093AD01A093AE01B093AF011F910F9100 -:103AD0000C947A180F931F930091AC011091AD01D3 -:103AE0002091AE013091AF01DC01CB0180279127FD -:103AF000A227B3278093AC019093AD01A093AE01B0 -:103B0000B093AF011F910F910C947A180895CF9242 -:103B1000DF92EF92FF920F931F93CF93DF938C016D -:103B2000C090B001D090B101E090B201F090B3012B -:103B30008091AC019091AD01A091AE01B091AF0127 -:103B4000C82AD92AEA2AFB2ACFE1D0E0D701C60148 -:103B50000C2E04C0B695A795979587950A94D2F731 -:103B600080FF06C0B8018C2F0E94A70B019721F49B -:103B7000219760F780E001C08C2FDF91CF911F91DA -:103B80000F91FF90EF90DF90CF900895CF93DF9348 -:103B9000EC010E94871DBE010E94A70BDF91CF910F -:103BA0000895CB010E94C61D08958091B4018595AA -:103BB0008595859508958091B4018770089598E062 -:103BC000899F90011124262B2093B4010C94CB1CC7 -:103BD0002091B401809582238093B401982F97702F -:103BE00069F430E0482F552747FD509524173507D5 -:103BF00029F08595859585950C94EC1C08959091F8 -:103C0000B401977081E009F480E0089520910B01E0 -:103C100030910C01F90132969FEF40E05191581715 -:103C200089F09F3F19F4511101C0942F4F5F463026 -:103C3000A9F79F3F39F0F901E90FF11D97FDFA95BA -:103C400082830895089520910B0130910C01F901B0 -:103C50003296285F3F4F9081981301C010823196B1 -:103C6000E217F307C1F7089581E090E0E0910B01BE -:103C7000F0910C01E80FF91F108201968830910530 -:103C8000A9F708959091C001892B8093C0010895F0 -:103C900080959091C00189238093C001089510926E -:103CA000C00108959091BF01892B8093BF010895B1 -:103CB00080959091BF0189238093BF010895109250 -:103CC000BF0108959091BE01892B8093BE01089594 -:103CD00080959091BE0189238093BE010895109232 -:103CE000BE0108958093B50108951092B50108951D -:103CF00080910B0190910C01FC0131969C01285F91 -:103D00003F4F80E0919191118F5FE217F307D1F758 -:103D10000895E0910B01F0910C018091C001808326 -:103D2000E0910B01F0910C0190818091BF01892BF2 -:103D30008083E0910B01F0910C0190818091BE0194 -:103D4000892B80838091B501882361F0E0910B017C -:103D5000F0910C019081892B80830E94781E811143 -:103D60001092B50180910B0190910C010C94ED1310 -:103D70009093330180933201089520E0009739F049 -:103D8000AC0141505109842395232F5FF7CF822F37 -:103D900008958295982F9C7C392F36953695282F3B -:103DA000237344E0249FC0011124932F982B292FC3 -:103DB0002A7A2695892F8575880F822B0895809100 -:103DC000D601843021F11092C20120E488E190E014 -:103DD0000FB6F894A895809360000FBE2093600002 -:103DE00080E00E94450C83B7817F846083BF83B7E6 -:103DF000816083BF7894889583B78E7F83BF88E185 -:103E00000FB6F89480936000109260000FBE089582 -:103E10000E9489080E9469070E948A080E9471080E -:103E200091E0811101C090E0892F08950E948E18C1 -:103E30000E94E1130C94450C1F920F920FB60F9243 -:103E400011248F939F93AF93BF938091C2018111EF -:103E500013C08091C3019091C401A091C501B0919C -:103E6000C6014196A11DB11D8093C3019093C40169 -:103E7000A093C501B093C601BF91AF919F918F915F -:103E80000F900FBE0F901F90189582E084BD93E0B5 -:103E900095BD9AEF97BD80936E0008952FB7F89463 -:103EA0008091C3019091C401A091C501B091C60158 -:103EB0002FBF08952FB7F8946091C3017091C4018A -:103EC0008091C5019091C6012FBF0895CF92DF92D6 -:103ED000EF92FF920F931F932FB7F8944091C30175 -:103EE0005091C4016091C5017091C6012FBF6A0154 -:103EF0007B01EE24FF248C0120E030E0C016D106C7 -:103F0000E206F30610F4415051099A01281B390BBF -:103F1000C9011F910F91FF90EF90DF90CF9008950E -:103F2000CF92DF92EF92FF920F931F932FB7F894E7 -:103F3000C090C301D090C401E090C501F090C601CB -:103F40002FBF97018601061B170B280B390BC616CE -:103F5000D706E806F90618F0C901B80106C0C9017C -:103F6000B80161507109810991091F910F91FF906A -:103F7000EF90DF90CF9008951F920F920FB60F929F -:103F800011248F939F93AF93BF938091C30190911E -:103F9000C401A091C501B091C6010196A11DB11D3A -:103FA0008093C3019093C401A093C501B093C6014F -:103FB000BF91AF919F918F910F900FBE0F901F9067 -:103FC00018950E94DF10F8942FEF87EA91E62150B0 -:103FD00080409040E1F700C0000087E090EBDC01FA -:103FE0008093E0019093E101A093E201B093E3019B -:103FF0009CE088E10FB6F894A895809360000FBE0E -:1040000090936000FFCFEF92FF920F931F93CF9397 -:10401000DF93D82FC7E08C2F0E943C0807E010E008 -:10402000E82EF12CC701002E02C0959587950A94C1 -:10403000E2F780FF09C0602F7C2F80E00E944B09CF -:10404000D81302C081E006C00150110958F7C150D1 -:1040500010F780E0DF91CF911F910F91FF90EF90CB -:104060000895CF93C82F8CE20E940320882321F06B -:104070008C2FCF910C94032080E0CF910895CF93A3 -:104080000E948721811102C00E946D2188E294E084 -:104090000E94A406C5E6C15049F00E9469078FE35B -:1040A0009CE90197F1F700C00000F5CF81E294E0B0 -:1040B0000E94A40689E20E94312081110CC18AE28B -:1040C0000E94312081110E946D2185E00E943120E3 -:1040D00081110E94E11F0E9492218093C10187E01B -:1040E0000E9431208823A9F18BE10E94312088238E -:1040F00051F08091C10181FB222720F991E09227A4 -:1041000090FB81F90EC08EE00E943120882361F07F -:104110008091C10182FB222720F991E0922790FB38 -:1041200082F98093C10115C080E10E9431209091F5 -:10413000C101882341F093FB222720F981E08227E7 -:1041400080FB93F904C0892F809580FB90F99093B0 -:10415000C1018091C1010E9496210E94A4218093F7 -:10416000DF0180EE0E943120882341F08091DF0141 -:10417000982F909590FB80F98093DF0189E30E944E -:104180003120882359F08091DF0181FB222720F91B -:1041900091E0922790FB81F98093DF0182EE0E94EB -:1041A0003120882359F08091DF0182FB222720F9FA -:1041B00091E0922790FB82F98093DF0186EE0E94C6 -:1041C0003120882359F08091DF0183FB222720F9D9 -:1041D00091E0922790FB83F98093DF0183EE0E94A8 -:1041E0003120882359F08091DF0184FB222720F9B8 -:1041F00091E0922790FB84F98093DF0185E30E9490 -:104200003120882359F08091DF0185FB222720F996 -:1042100091E0922790FB85F98093DF0181E30E9472 -:104220003120882359F08091DF0186FB222720F975 -:1042300091E0922790FB86F98093DF0181E10E9453 -:104240003120882359F08091DF0187FB222720F954 -:1042500091E0922790FB87F98093DF018091DF0145 -:104260000E94A82187E20E943120C82F8EE10E947F -:1042700031208111C2608FE10E9431208111C46020 -:1042800080E20E9431208111C86081E20E943120C9 -:104290008111C06182E20E9431208111C06283E2FB -:1042A0000E9431208111C06484E20E943120882361 -:1042B00011F0C06802C0CC2329F08C2F0E949F21EE -:1042C0006C2F03C00E949B21682F70E080E090E07B -:1042D000CF910C944E1CCF9108956DEE7EEF80E04F -:1042E00090E00E94E62A60E082E090E00E94D42AFA -:1042F00060E083E090E00E94D42A60E084E090E0F7 -:104300000E94D42A60E085E090E00C94D42A80E0FA -:1043100090E00E94CE2A21E08D3E9E4F09F020E0E1 -:10432000822F089582E090E00C94C62A682F82E0E4 -:1043300090E00C94D42A83E090E00C94C62A682F75 -:1043400083E090E00C94D42A84E090E00C94C62A98 -:10435000682F84E090E00C94D42A8091C90180FFFA -:104360000BC06091100185E0689FB0011124759524 -:104370006795759567952BC081FF09C06091100105 -:1043800085E0689FB00111247595679520C082FF74 -:1043900007C06091100185E0689FB001112417C02B -:1043A0009091CA019923D1F060910F01961788F777 -:1043B0002091100185E0289F90011124929FA00177 -:1043C000939F500D112470E0CA010E94982A603812 -:1043D000710540F46115710539F002C065E070E0C7 -:1043E000862F08958FE7089581E008958091C9018F -:1043F00080FF08C060910E0170E075956795759516 -:10440000679521C081FF06C060910E0170E075952F -:10441000679519C082FF04C060910E0170E010C062 -:104420009091CA019923C1F060910D019617A0F7F0 -:1044300080910E01899FC001112470E00E94982A8A -:104440006038710528F46115710521F0862F0895F3 -:104450008FE7089581E0089561E070E0F4CF803F38 -:1044600021F40E94AD21819504C0813F29F40E946E -:10447000AD218093CD010895823F21F40E94AD21AA -:10448000819504C0833F29F40E94AD218093CC0123 -:104490000895893F19F40E94F62105C08A3F31F43E -:1044A0000E94F62181958093CE0108958B3F21F4DF -:1044B0000E94F621819504C08C3F29F40E94F621C8 -:1044C0008093CF010895843F21F48091CB018160D6 -:1044D00017C0853F21F48091CB01826011C0863FD7 -:1044E00021F48091CB0184600BC0873F21F480913F -:1044F000CB01886005C0883F31F48091CB01806199 -:104500008093CB0108958D3F21F48091C901816092 -:104510000BC08E3F21F48091C901826005C08F3F9E -:1045200029F48091C90184608093C9010895803F76 -:1045300039F48091CD0187FF6CC01092CD0169C024 -:10454000813F29F48091CD011816BCF362C090918F -:10455000CC01823F29F497FF5CC01092CC0159C076 -:10456000833F19F41916CCF354C0893F41F480916C -:10457000CE0118160CF04DC01092CE014AC08A3FF1 -:1045800029F48091CE0187FF44C0F6CF8B3F39F4E8 -:104590008091CF0187FF3DC01092CF013AC08C3F80 -:1045A00029F48091CF011816BCF333C0843F21F465 -:1045B0008091CB018E7F17C0853F21F48091CB0184 -:1045C0008D7F11C0863F21F48091CB018B7F0BC082 -:1045D000873F21F48091CB01877F05C0883F31F46C -:1045E0008091CB018F7E8093CB0113C08D3F21F44E -:1045F0008091C9018E7F0BC08E3F21F48091C9014B -:104600008D7F05C08F3F29F48091C9018B7F8093F6 -:10461000C9018091CC0181110EC08091CD01811121 -:104620000AC08091CE01811106C08091CF01811115 -:1046300002C01092CA0108958091C10183FF7EC01B -:1046400084E694E00E94A4068091CB011F928F9390 -:104650008FE594E09F938F930E943D078DE594E052 -:104660000E94A4068091CC01282F332727FD309586 -:104670003F938F938AE594E09F938F930E943D0729 -:1046800088E594E00E94A4068091CD01282F33276D -:1046900027FD30953F938F9385E594E09F938F930B -:1046A0000E943D0783E594E00E94A4068091CE011C -:1046B000282F332727FD30953F938F9380E594E093 -:1046C0009F938F930E943D078EE494E00E94A4067E -:1046D0008091CF01282F332727FD30953F938F936B -:1046E0008BE494E09F938F930E943D0788E494E0CD -:1046F0000E94A4068091CA011F928F9385E494E0E2 -:104700009F938F930E943D0783E494E00E94A40648 -:104710008091C9011F928F9380E494E09F938F93BF -:104720000E943D078DE394E00E94A4068DB79EB7DA -:104730004C960FB6F8949EBF0FBE8DBF8BEC91E0E8 -:104740000E9436140E944E1F9093C8018093C701A7 -:1047500008951F93CF93DF938091C7019091C80173 -:104760000E94661FAC019091CA01992321F020910B -:10477000110130E006C0209112018AE0289F9001CB -:1047800011244217530708F486C08091CC01C091D0 -:10479000CD01D091CE011091CF01811107C0C1117F -:1047A00076C0D11174C0111172C075C09F3F19F04D -:1047B0009F5F9093CA01181624F40E94AD21809344 -:1047C000CC018091CC0187FF05C00E94AD2181956D -:1047D0008093CC011C1624F40E94AD218093CD015E -:1047E0008091CD0187FF05C00E94AD218195809306 -:1047F000CD016091CC01662339F1C091CD01CC236C -:1048000019F1772767FD7095872F972F0E949D29B3 -:1048100023E333E343E35FE30E94012A0E946A2912 -:104820006093CC016C2F772767FD7095872F972FAA -:104830000E949D2923E333E343E35FE30E94012ABF -:104840000E946A296093CD011D1624F40E94F6216E -:104850008093CE018091CE0187FF05C00E94F62192 -:1048600081958093CE01111624F40E94F621809345 -:10487000CF018091CF0187FF05C00E94F62181956D -:104880008093CF01DF91CF911F910C941C239F3F08 -:1048900009F08ECF96CFDF91CF911F910895EBEC69 -:1048A000F1E085E0DF011D928A95E9F71092CA01D7 -:1048B0001092C901089587E896E00E94A4061F920D -:1048C00081E08F931F9285E08F9389E396E09F9319 -:1048D0008F930E943D070F900F900F900F900F90B5 -:1048E0000F9008958330E9F128F4813061F082302F -:1048F00009F10895853009F462C008F449C0863092 -:1049000009F474C0089580911201262F30E0280F19 -:10491000311D2F3F310524F4680F6093120103C04D -:104920008FEF80931201809112011F928F9382E783 -:1049300095E072C080911101262F30E0280F311DC3 -:104940002F3F310524F4680F6093110103C08FEFEE -:1049500080931101809111011F928F9380E695E061 -:104960005BC080911001262F30E0280F311D2F3FB2 -:10497000310524F4680F6093100103C08FEF80931A -:104980001001809110011F928F938DE495E044C037 -:1049900080910F01262F30E0280F311D2F3F310568 -:1049A00024F4680F60930F0103C08FEF80930F0111 -:1049B00080910F011F928F9388E395E02DC0809125 -:1049C0000E01262F30E0280F311D2F3F310524F432 -:1049D000680F60930E0103C08FEF80930E018091EA -:1049E0000E011F928F938FE195E016C080910D010B -:1049F000262F30E0280F311D2F3F310524F4680F9A -:104A000060930D0103C08FEF80930D0180910D0124 -:104A10001F928F9384E095E09F938F930E943D07B0 -:104A20000F900F900F900F900895833081F128F42C -:104A3000813059F08230D1F00895853009F449C0B1 -:104A4000B8F1863009F456C00895809112016817B4 -:104A500020F4861B8093120102C0109212018091F3 -:104A600012011F928F9385EF94E054C08091110141 -:104A7000681720F4861B8093110102C01092110167 -:104A8000809111011F928F9383EE94E043C0809137 -:104A90001001681720F4861B8093100102C0109249 -:104AA0001001809110011F928F9380ED94E032C02D -:104AB00080910F01681720F4861B80930F0102C0BC -:104AC00010920F0180910F011F928F938BEB94E056 -:104AD00021C080910E01681720F4861B80930E017F -:104AE00002C010920E0180910E011F928F9382EAF4 -:104AF00094E010C080910D01681720F4861B80930C -:104B00000D0102C010920D0180910D011F928F9333 -:104B100087E894E09F938F930E943D070F900F903A -:104B20000F900F900895CF93C82F1F928F938CE80A -:104B300097E09F938F930E943D0781E090E0A0E073 -:104B4000B0E0BC01CD0104C0660F771F881F991F1C -:104B5000CA95D2F70E944E1C0F900F900F900F90A5 -:104B6000CF910C948E18CF938732B0F58E3108F028 -:104B70004AC28E3009F4C4C100F5873009F48DC1F2 -:104B8000A8F4863009F045C28091C101817F8E7FF3 -:104B90008093C1018BEF98E00E94A40684E99CE019 -:104BA0000E94A40681E08093D10175C1883009F488 -:104BB0003FC08B3009F46BC12CC2863109F4E6C1C9 -:104BC00020F4803109F4B0C124C2893109F4C7C18D -:104BD0008B3109F481C11DC2883309F458C150F4E6 -:104BE000893209F412C2853309F40FC2873209F4FD -:104BF0000CC20FC2833409F408C228F48A3308F4C3 -:104C000008C2895303C2883409F003C20E948E1877 -:104C100088E79CE00E94A4069FEF23ED80E391507B -:104C200020408040E1F700C000000E94E11F33C136 -:104C300088E99CE00E94A4068AEF9BE00E94A406FB -:104C40000E949B211F928F9387EF9BE09F938F93EE -:104C50000E943D0785EF9BE00E94A4060E949221DE -:104C6000C82F82EE9BE00E94A4061F92CF938DED89 -:104C70009BE09F938F930E943D078BED9BE00E94EA -:104C8000A40681ED9BE00E94A4068C2F81701F92E8 -:104C90008F938EEC9BE09F938F930E943D078CEC4B -:104CA0009BE00E94A40682EC9BE00E94A406C1FB4C -:104CB000882780F91F928F938FEB9BE09F938F93B0 -:104CC0000E943D078DEB9BE00E94A40681EB9BE0D8 -:104CD0000E94A406C2FB882780F91F928F938EEA58 -:104CE0009BE09F938F930E943D078CEA9BE00E947C -:104CF000A40683EA9BE00E94A406C3FBCC27C0F96C -:104D00001F92CF9380EA9BE09F938F930E943D0771 -:104D10008EE99BE00E94A4060E94A421C82F8AE885 -:104D20009BE00E94A4061F92CF9385E89BE09F938F -:104D30008F930E943D0783E89BE00E94A4068AE6C9 -:104D40009BE00E94A4068C2F81701F928F9387E6B0 -:104D50009BE09F938F930E943D078DB79EB78096EF -:104D60000FB6F8949EBF0FBE8DBF85E69BE00E94F4 -:104D7000A4068EE49BE00E94A406C1FB882780F96C -:104D80001F928F938BE49BE09F938F930E943D072C -:104D900089E49BE00E94A40687E39BE00E94A406AE -:104DA000C2FB882780F91F928F9384E39BE09F9337 -:104DB0008F930E943D0782E39BE00E94A40680E25D -:104DC0009BE00E94A406C3FB882780F91F928F9363 -:104DD0008DE19BE09F938F930E943D078BE19BE0C9 -:104DE0000E94A40681E19BE00E94A406C4FB8827E0 -:104DF00080F91F928F938EE09BE09F938F930E9488 -:104E00003D078CE09BE00E94A4068AEF9AE00E9496 -:104E1000A406C5FB882780F91F928F9387EF9AE03D -:104E20009F938F930E943D0785EF9AE00E94A4060E -:104E300089ED9AE00E94A406C6FB882780F91F929C -:104E40008F9386ED9AE09F938F930E943D0784EDA8 -:104E50009AE00E94A4068CEC9AE00E94A406C7FB8C -:104E6000CC27C0F91F92CF9389EC9AE09F938F9340 -:104E70000E943D0787EC9AE00E94A4068DB79EB77A -:104E80004C960FB6F8949EBF0FBE8DBF04C082E251 -:104E900099E00E94A406C1E0C1C08091C101C82F61 -:104EA000C095C170C0FB80F98093C101CC2349F04B -:104EB0008CE69CE00E94A4068091C1018660886017 -:104EC00048C08FE59CE00E94A4068091C101897FC3 -:104ED000877F8093C101DFCF9091C10191FBCC27E7 -:104EE000C0F981E0C827892FC0FB81F98093C101F7 -:104EF000CC2319F082E59CE027C084E49CE0C9CF74 -:104F00009091C10192FBCC27C0F981E0C827892F7D -:104F1000C0FB82F98093C101CC2319F085E39CE0AA -:104F200013C085E29CE0B5CF9091C10193FBCC27E3 -:104F3000C0F981E0C827892FC0FB83F98093C101A4 -:104F4000CC2351F089E19CE00E94A4068091C1012C -:104F500081608093C10162C08CE09CE09ACF8CEEAE -:104F600098E00E94A40684EC98E00E94A4068EE8D3 -:104F700098E00E94A40681E698E00E94A40682E2DE -:104F800098E00E94A40687EF97E083CF89EE97E030 -:104F90000E94A4060E94E1131F928F938FEC97E06A -:104FA0009F938F930E943D0780910A011F928F93D8 -:104FB00088EB97E09F938F930E943D078091640157 -:104FC0001F928F9385EA97E09F938F930E943D07EE -:104FD0008091C3019091C401A091C501B091C60117 -:104FE000BF93AF939F938F9381E997E09F938F93A4 -:104FF0000E943D078DB79EB742960FB6F8949EBFAC -:105000000FBE8DBF48CF8D5101C080E00E94932517 -:1050100042CF8AE09CE00E94A406C0E08C2FCF9192 -:10502000089580E0089580E00895CF93C82F80917F -:10503000D101813071F020F0823009F44BC042C1BF -:10504000E0910B01F0910C018081823209F03CC1AA -:1050500007C0E0910B01F0910C018081823261F474 -:105060008C2F0E941128811104C08C2F0E94B3251F -:105070002FC081E090E02CC08C2F0E94132881115A -:1050800026C0C431E1F070F4CB3081F0C031D1F4EE -:105090000E945B2484E897E00E94A40682E080934B -:1050A000D10115C0C93259F0C83361F48BEF98E0D3 -:1050B0000E94A40688E897E00E94A40608C0109207 -:1050C000D10104C182E897E00E94A406FFC081E0FC -:1050D0008170FEC0C43228F5CE3108F0C1C0CB309B -:1050E000A1F1D0F4C73009F0D3C08EE18093120152 -:1050F00082E3809311018AE08093100184E1809320 -:105100000F0188E080930E0188E280930D0188E210 -:1051100096E00E94A406BFC0C33149F1C431C1F07A -:10512000B7C0CB3409F4A9C028F4C93289F0C83318 -:1051300061F0AEC0C13509F49EC0C23509F499C012 -:10514000CE3409F0A5C06AE09EC00E945B24A3C0D3 -:105150008091D001882319F01092D0019CC085E382 -:1051600096E00E94A40681E08093D101B1C08FE057 -:1051700096E00E94A4068DEF95E00E94A40680911F -:1051800012011F928F938AEF95E09F938F930E9455 -:105190003D0788EF95E00E94A40686EE95E00E9408 -:1051A000A406809111011F928F9383EE95E09F9347 -:1051B0008F930E943D0781EE95E00E94A40682ED48 -:1051C00095E00E94A406809110011F928F938FECAE -:1051D00095E09F938F930E943D078DEC95E00E9490 -:1051E000A4068CEB95E00E94A40680910F011F920B -:1051F0008F9389EB95E09F938F930E943D0787EBF8 -:1052000095E00E94A40682EA95E00E94A40680919F -:105210000E011F928F938FE995E09F938F930E94C9 -:105220003D078DE995E00E94A40686E895E00E947E -:10523000A40680910D011F928F9383E895E09F93C0 -:105240008F930E943D0781E895E00E94A4068DB7E8 -:105250009EB748960FB6F8949EBF0FBE8DBF1BC079 -:10526000CE51EC2FF0E0E95DFE4F80818093D001BC -:1052700012C061E003C061E006C06AE08091D00125 -:105280000E94722408C08091D0010E94152503C09D -:1052900086E296E013C08091D001882369F01F92C6 -:1052A0008F9380E296E09F938F930E943D070F902B -:1052B0000F900F900F9004C08DE196E00E94A4061D -:1052C00081E006C01092D10180E002C080E000CFF2 -:1052D000CF91089504D06894B1118DC0089570D015 -:1052E00088F09F5790F0B92F9927B751A0F0D1F0CF -:1052F000660F771F881F991F1AF0BA95C9F712C059 -:10530000B13081F077D0B1E0089574C0672F782F65 -:105310008827B85F39F0B93FCCF3869577956795C4 -:10532000B395D9F73EF490958095709561957F4F30 -:105330008F4F9F4F0895E89409C097FB3EF49095D6 -:105340008095709561957F4F8F4F9F4F9923A9F05E -:10535000F92F96E9BB279395F695879577956795ED -:10536000B795F111F8CFFAF4BB0F11F460FF1BC031 -:105370006F5F7F4F8F4F9F4F16C0882311F096E9C4 -:1053800011C0772321F09EE8872F762F05C0662372 -:1053900071F096E8862F70E060E02AF09A95660F2B -:1053A000771F881FDAF7880F9695879597F90895E4 -:1053B00057FD9058440F551F59F05F3F71F04795C6 -:1053C000880F97FB991F61F09F3F79F087950895AB -:1053D000121613061406551FF2CF4695F1DF08C0CA -:1053E000161617061806991FF1CF869571056105E7 -:1053F00008940895E894BB2766277727CB0197F98F -:1054000008950BD078C069D028F06ED018F095239D -:1054100009F05AC05FC01124EECFCADFA0F3959FF8 -:10542000D1F3950F50E0551F629FF001729FBB278B -:10543000F00DB11D639FAA27F00DB11DAA1F649F37 -:105440006627B00DA11D661F829F2227B00DA11DEA -:10545000621F739FB00DA11D621F839FA00D611D70 -:10546000221F749F3327A00D611D231F849F600D91 -:10547000211D822F762F6A2F11249F5750408AF0CA -:10548000E1F088234AF0EE0FFF1FBB1F661F771F56 -:10549000881F91505040A9F79E3F510570F014C0ED -:1054A000AACF5F3FECF3983EDCF38695779567953E -:1054B000B795F795E7959F5FC1F7FE2B880F911D74 -:1054C0009695879597F9089597F99F6780E870E01A -:1054D00060E008959FEF80EC089500240A9416166A -:1054E000170618060906089500240A9412161306D2 -:1054F000140605060895092E0394000C11F4882360 -:1055000052F0BB0F40F4BF2B11F460FF04C06F5F7B -:105510007F4F8F4F9F4F0895991B79E004C0991FCB -:10552000961708F0961B881F7A95C9F780950895FD -:1055300097FB072E16F4009407D077FD09D00E9440 -:10554000B22A07FC05D03EF4909581959F4F0895AF -:10555000709561957F4F0895EE0FFF1F0590F491B0 -:10556000E02D0994AA1BBB1B51E107C0AA1FBB1F5A -:10557000A617B70710F0A61BB70B881F991F5A95DF -:10558000A9F780959095BC01CD010895F999FECFBA -:1055900092BD81BDF89A992780B50895A8E1B0E041 -:1055A00042E050E00C94EE2A262FF999FECF92BDEE -:1055B00081BDF89A019700B4021639F01FBA20BDD8 -:1055C0000FB6F894FA9AF99A0FBE08950196272F0C -:1055D0000E94D52A0C94D42ADC01CB01FC01F99954 -:1055E000FECF06C0F2BDE1BDF89A319600B40D922F -:0C55F00041505040B8F70895F894FFCFE8 -:1055FC00470C380D150DE10CAD0C01B60128081443 -:10560C000A321E3F4D3620AF0362032C030C039865 -:10561C0002B102CA02E302010203040506070809EB -:02562C0000007C -:00000001FF diff --git a/keyboards/hhkb/keymaps/lxol/compiled.hex b/keyboards/hhkb/keymaps/lxol/compiled.hex deleted file mode 100644 index 63d3691c4..000000000 --- a/keyboards/hhkb/keymaps/lxol/compiled.hex +++ /dev/null @@ -1,1421 +0,0 @@ -:100000000C9493070C94D7070C94D7070C94D7073C -:100010000C94D7070C94D7070C94D7070C94D707E8 -:100020000C94D7070C94D7070C949B120C946D1367 -:100030000C945D200C94D7070C94D7070C94D70729 -:100040000C94D7070C94D7070C94D7070C94D707B8 -:100050000C94D7070C94FD200C94D7070C94D70769 -:100060000C94D7070C94D7070C94D7070C94D70798 -:100070000C94D7070C94D7070C94D7070C94D70788 -:100080000C94D7070C94D7070C94D7070C94D70778 -:100090000C94D7070C94D7070C94D7070C94D70768 -:1000A0000C94D7070C94D7070C94D707DA13FC13DA -:1000B000EA14FC13EA1441146414EA14B914CC14BD -:1000C000A617A617D517D51714183418641964196C -:1000D0003F186419EF18EF185519641964195E195F -:1000E000FC18FC18FC18FC18FC18FC18FC18FC1870 -:1000F000FC18FC18FC18FC18FC18FC18FC18FC1860 -:100100000C191A19211928193219253032583A2098 -:10011000253038620A000A722F63203031323334BE -:100120003536370A0028311F0014001A001644041F -:10013000461D001B000600200021001500080007D6 -:1001400000090019000500220023001C0017000A06 -:10015000000B00110000001E0029002B00E000E150 -:1001600000E200E3002C002400250018000C000E23 -:10017000000D0010000000310035002A00C0000210 -:1001800052E500E600E700260027001200130033C6 -:10019000450F43360000002D002E0030002F0034A4 -:1001A000003800370000001F0014001A0016460433 -:1001B000441D001B00060020002100150008000758 -:1001C00000090019000500220023001C0017000A86 -:1001D000000B00110000001E0029002B00E000E1D0 -:1001E00000E700E6002C002400250018000C000E9B -:1001F000000D0010000000310035002A00C0000290 -:1002000052E500E700E60026002700120013003345 -:10021000430F45360000002D002E0030002F003423 -:10022000003800370000003B0001000100A900AACF -:10023000000100010001003C003D0001000100A898 -:10024000000100010001003E003F0001000100012B -:10025000005500570000003A00A5003900010001D8 -:100260000001000100010040004100010046004A79 -:100270000054005600000049004C002A00580001BC -:100280000001000100010042004300470048005007 -:10029000004B004D00000044004500010052004F9B -:1002A0000051004E0000001F1814181A18161804E8 -:1002B000181D181B180618201821181518081807DB -:1002C00018091819180518221823181C1817180AC5 -:1002D000180B18111800001E1829182B18E018E127 -:1002E00018E200E3002C182418251818180C180E12 -:1002F000180D1810180000311835182A18C0000100 -:1003000000E518E600E70026182718121813180150 -:10031000000100361800002D182E1830182F183440 -:10032000183818371800001F0814081A08010001AF -:10033000001D081B080608200821081508080807E2 -:1003400008090819080508220823081C0817080AC4 -:10035000080B08110800001E0829082B08E008E116 -:1003600000E200E3002C082408250818080C080EF9 -:10037000080D0810080000310835082A08C00001DF -:1003800000E500E600E300260827081208130833FA -:10039000080F08360800002D082E0830082F0834F2 -:1003A000083808370800001F1414141A141614040F -:1003B000141D141B140614201421141514081407FA -:1003C00014091419140514221423141C1417140AE4 -:1003D000140B14111400001E1429142B14E014E142 -:1003E00014E200E3002C142414251418140C140E29 -:1003F000140D1410140000311435142A14C0000117 -:1004000000E514E600E70026142714121413140163 -:10041000000100361400002D142E1430142F143453 -:10042000143814371400001F0414041A04010001C6 -:10043000001D041B040604200421041504080407FD -:1004400004090419040504220423041C0417040AE3 -:10045000040B04110400001E0429042B04E004E131 -:1004600000E200E3002C042404250418040C040E0C -:10047000040D0410040000310435042A04C00001F6 -:1004800000E500E600E30026042704120413043309 -:10049000040F04360400002D042E0430042F04340D -:1004A000043804370400000A44454255473A2065A1 -:1004B0006E61626C65642E0A005B735D004B65794A -:1004C000626F6172642073746172742E0A005B57EC -:1004D0005D005B535D005B525D005B445D005B4310 -:1004E0005D001203480048004B00420020006D00F0 -:1004F0006F00640000000C0371002E006D002E00E0 -:100500006B0000000403090409027400040100A048 -:10051000FA09040000010301010009211101000191 -:10052000223F000705810308000A090401000103B6 -:10053000010200092111010001224D00070582037B -:1005400008000A090402000103000000092111014A -:1005500000012236000705830308000A090403008E -:1005600002030000000921110100012220000705FB -:10057000840320000107050403200001120110017B -:1005800000000008EDFEFECA040101020001063170 -:10059000FF0974A1010975150025FF9520750881D3 -:1005A000020976150025FF952075089102C0050106 -:1005B0000980A101850216010026B7001A01002A50 -:1005C000B700751095018100C0050C0901A10185D6 -:1005D00003160100269C021A01002A9C0275109540 -:1005E000018100C005010902A1010901A10005095D -:1005F000190129051500250195057501810295014F -:10060000750381010501093009311581257F9502A6 -:100610007508810609381581257F950175088106C1 -:10062000050C0A38021581257F950175088106C0E1 -:10063000C005010906A101050719E029E7150025F4 -:100640000195087501810295017508810105081958 -:100650000129059505750191029501750391010523 -:1006600007190029FF150025FF950675088100C0B0 -:100670000A002530325820006B6579626F61726420 -:100680005F7265706F72743A20004B6579626F61BA -:100690007264204C4544732073746174653A20255C -:1006A000780A00646F6E652E0A00626F6F676D6175 -:1006B000676963207363616E3A202E2E2E20002915 -:1006C0000A002575002F002575005D2800256400AF -:1006D0002000256400200025640020002564007CA3 -:1006E0000025303258006D6F7573656B6579205B3E -:1006F00062746E7C782079207620685D287265703F -:100700002F61636C293A205B006D6B5F77686565CC -:100710006C5F74696D655F746F5F6D6178203D20FB -:1007200025640A006D6B5F776865656C5F6D617845 -:100730005F7370656564203D2025640A006D6B5F02 -:1007400074696D655F746F5F6D6178203D2025640D -:100750000A006D6B5F6D61785F7370656564203D45 -:100760002025640A006D6B5F696E74657276616C3A -:10077000203D2025640A006D6B5F64656C61792003 -:100780003D2025640A006D6B5F776865656C5F745A -:10079000696D655F746F5F6D6178203D2025640A27 -:1007A000006D6B5F776865656C5F6D61785F737016 -:1007B000656564203D2025640A006D6B5F74696D7A -:1007C000655F746F5F6D6178203D2025640A006D60 -:1007D0006B5F6D61785F7370656564203D20256493 -:1007E0000A006D6B5F696E74657276616C203D20E6 -:1007F00025640A006D6B5F64656C6179203D20257E -:10080000640A000A00257500363A20776865656C31 -:100810005F74696D655F746F5F6D61783A20000A7F -:1008200000257500353A20776865656C5F6D6178E5 -:100830005F73706565643A20000A00257500343ADC -:100840002074696D655F746F5F6D61783A20000A8E -:1008500000257500333A206D61785F7370656564BB -:100860003A20000A00257500323A20696E746572DC -:1008700076616C286D73293A20000A0025750031D5 -:100880003A2064656C6179282A31306D73293A20E9 -:10089000000A092D2056616C756573202D0A004DE4 -:1008A0003E004D25643E20003F0073657420646562 -:1008B0006661756C740A00433E2000776865726556 -:1008C0002064656C74613A20637572736F723D25A4 -:1008D000642C20776865656C3D25640A5365652046 -:1008E000687474703A2F2F656E2E77696B69706526 -:1008F0006469612E6F72672F77696B692F4D6F7511 -:1009000073655F6B6579730A000A092D204D6F7559 -:1009100073656B6579202D0A4553432F713A097130 -:100920007569740A313A0964656C6179282A313035 -:100930006D73290A323A09696E74657276616C28A2 -:100940006D73290A333A096D61785F737065656468 -:100950000A343A0974696D655F746F5F6D61780A76 -:10096000353A09776865656C5F6D61785F737065AE -:1009700065640A363A09776865656C5F74696D6508 -:100980005F746F5F6D61780A0A703A097072696E00 -:10099000742076616C7565730A643A097365742016 -:1009A00064656661756C74730A75703A092B310A57 -:1009B000646F776E3A092D310A706775703A092BAA -:1009C00031300A7067646F776E3A092D31300A0A48 -:1009D0007370656564203D2064656C7461202A2015 -:1009E0006D61785F7370656564202A202872657078 -:1009F000656174202F2074696D655F746F5F6D6130 -:100A000078290A003F004D3E2000433E20004C253F -:100A1000640A0074696D65725F636F756E743A2065 -:100A20002530346C580A006B6579626F6172645FBF -:100A300069646C653A2025580A006B6579626F61BC -:100A400072645F70726F746F636F6C3A2025580A1E -:100A500000686F73745F6B6579626F6172645F6C5D -:100A600065647328293A2025580A000A092D205365 -:100A70007461747573202D0A004743433A20342E65 -:100A8000392E32204156522D4C4942433A20312EC4 -:100A9000382E31204156525F415243483A20617608 -:100AA00072350A004F5054494F4E533A204C554628 -:100AB0004120424F4F544D41474943204D4F5553DC -:100AC000454B45592045585452414B455920434FB9 -:100AD0004E534F4C4520434F4D4D414E44203531F0 -:100AE000320A004255494C443A2031363731386594 -:100AF000662D6469727479202832333A33393A3476 -:100B000039204A756E2020392032303136290A00CA -:100B10005649443A2030784645454428712E6D2E7A -:100B20006B29205049443A203078434146452848B3 -:100B3000484B42206D6F6429205645523A20307848 -:100B4000303130340A00444553433A20712E6D2E23 -:100B50006B206B6579626F617264206669726D7774 -:100B600061726520666F722048484B420A000A098C -:100B70002D2056657273696F6E202D0A000A092DAB -:100B800020436F6E736F6C65202D0A4553432F71A0 -:100B90003A09717569740A6D3A096D6F7573656B01 -:100BA00065790A000A092D204D61676963202D0AC5 -:100BB000443A094465627567204D657373616765E2 -:100BC00020546F67676C650A583A094D6174726901 -:100BD00078204465627567204D6F646520546F67A7 -:100BE000676C65202D2053686F77206B6579707274 -:100BF000657373657320696E206D61747269782006 -:100C0000677269640A4B3A094B6579626F61726475 -:100C100020446562756720546F67676C65202D20DE -:100C200053686F77206B6579707265737320726596 -:100C3000706F72740A4D3A094465627567204D6F92 -:100C400075736520546F67676C650A563A09566577 -:100C50007273696F6E0A533A095374617475730A3B -:100C6000433A09416374697661746520436F6E731A -:100C70006F6C65204D6F64650A46312D4631303A00 -:100C80000953776974636820746F204C61796572C9 -:100C900020302D392028463130203D204C30290A83 -:100CA000302D393A0953776974636820746F204C8A -:100CB0006179657220302D390A4553433A095377DB -:100CC0006974636820746F204C61796572203020EC -:100CD00028616C7465726E617465206B6579203172 -:100CE000290A47524156453A095377697463682087 -:100CF000746F204C6179657220302028616C7465B6 -:100D0000726E617465206B65792032290A504155F5 -:100D100053453A094A756D7020746F20426F6F74A5 -:100D20006C6F6164657220285265736574290A4589 -:100D30003A095072696E7420454550524F4D205308 -:100D4000657474696E67730A000A002575002E6E5B -:100D50006B726F3A20000A002575002E7377617060 -:100D60005F6261636B736C6173685F6261636B7315 -:100D7000706163653A20000A002575002E73776163 -:100D8000705F67726176655F6573633A20000A0081 -:100D90002575002E6E6F5F6775693A20000A002581 -:100DA00075002E737761705F72616C745F72677526 -:100DB000693A20000A002575002E737761705F6C18 -:100DC000616C745F6C6775693A20000A00257500D4 -:100DD0002E636170736C6F636B5F746F5F636F6EB4 -:100DE00074726F6C3A20000A002575002E737761CB -:100DF000705F636F6E74726F6C5F636170736C6F42 -:100E0000636B3A20000A0025303258006B65796D1B -:100E100061705F636F6E6669672E7261773A20005A -:100E20000A002575002E6D6F7573653A20000A0063 -:100E30002575002E6B6579626F6172643A20000A35 -:100E4000002575002E6D61747269783A20000A00E1 -:100E50002575002E656E61626C653A20000A0025DA -:100E60003032580064656275675F636F6E666967EC -:100E70002E7261773A20000A00257500646566616C -:100E8000756C745F6C617965723A20003F000A6D81 -:100E90006F7573653A206F66660A000A6D6F757329 -:100EA000653A206F6E0A000A6B6579626F61726441 -:100EB0003A206F66660A000A6B6579626F61726438 -:100EC0003A206F6E0A000A6D61747269783A206F79 -:100ED00066660A000A6D61747269783A206F6E0A5C -:100EE000000A64656275673A206F66660A000A64E4 -:100EF000656275673A206F6E0A000A0A4A756D705E -:100F0000696E6720746F20626F6F746C6F616465C7 -:100F1000722E2E2E2000433E20006565636F6E66A4 -:100F200069673A0A000011241FBECFEFDAE0DEBF86 -:100F3000CDBF04B603FE24C08091E0019091E10191 -:100F4000A091E201B091E3018730904BA740B04BF4 -:100F5000B9F41092E0011092E1011092E2011092B6 -:100F6000E30114BE84B7877F84BF88E10FB6F8948D -:100F700080936000109260000FBEE0E0FFE30995EF -:100F800011E0A0E0B1E0EEE7F8E502C005900D92B7 -:100F9000A233B107D9F711E0A2E3B1E001C01D927D -:100FA000A03EB107E1F70E94D50F0C943D2C0C94A4 -:100FB0000000FF93EF93E0913201F09133013097FD -:100FC00009F00995EF91FF910895FC01859180301A -:100FD00011F0EFDFFBCF0895FF27E0E230E247FF9B -:100FE0000CC0419597FF09C0EDE260957095809522 -:100FF0009095611D711D811D911D27FF02C02195D6 -:1010000030E350E2AA27660F771F881F991FAA1F97 -:10101000A41710F0A41B63955A95A9F7AA3008F0FD -:10102000A95FA05DAF93F3956115710581059105E9 -:1010300041F7ED3211F4EF93F395F21718F43F9363 -:10104000F395FBCF8F91B5DFFA95E1F70895E9911C -:10105000F9918591803021F0853219F0AADFF9CF1E -:10106000089520E0E89455915532C1F3503311F4BE -:10107000689455915A3348F4505390F3220F022E3E -:10108000220F220F200D250FF4CF0EF42195899108 -:101090009991533619F3533729F1533559F1BC015E -:1010A00088279927E8945C3621F48991999168946E -:1010B0005591543639F446EF7EF077FF0DC08FEF2F -:1010C0009FEF0AC055374AE039F0583540E121F02A -:1010D000523642E009F00895FF93EF937DDFEF91E0 -:1010E000FF91B7CFFF93EF93FC0181918030B9F36B -:1010F00060DFFBCFFF93EF9368DFF1CFDF93CF93F8 -:10110000CDB7DEB72596A3DFCF91DF9108958FEF9E -:1011100084B980E485B957985F9A2E9A2F98ECE3AA -:10112000F1E088E08E0F11928E13FDCFE4E3F1E041 -:1011300088E08E0F11928E13FDCF8CE391E0909397 -:1011400047018093460184E391E0909345018093A9 -:1011500044010895EF92FF920F931F93CF93DF9373 -:1011600080914401909145012091460130914701C1 -:1011700030934501209344019093470180934601A9 -:10118000C0E0D0E0EE24E394F12C0FEF10E020E07B -:1011900030E085B1807C8C2BA90193E0440F551F72 -:1011A0009A95E1F7842B85B98AE18A95F1F700C019 -:1011B000E0914401F0914501EC0FFD1F808190E02A -:1011C000022E02C0959587950A94E2F780FD2F9A2A -:1011D00095E39A95F1F70000E6B52E988AE18A9595 -:1011E000F1F700C04091460150914701DA01AC0F80 -:1011F000BD1F4F9B0AC0C701022E01C0880F0A9471 -:10120000EAF780959C91892308C06C91C701022E52 -:1012100001C0880F0A94EAF7862B8C9386B56E2F4F -:1012200070E08E1728F086B590E0861B970B06C0FD -:10123000E6B5C801861B970B8E0F911D069758F0D7 -:10124000E0914401F0914501EC0FFD1F8081FA010E -:10125000EC0FFD1F80839AE19A95F1F700C02F985B -:101260002E9A8BE291E00197F1F700C000002F5F0A -:101270003F4F2830310509F08CCFA0914601B09145 -:101280004701AC0FBD1FE0914401F0914501EC0F07 -:10129000FD1F9C918081981751F00E949B206093C4 -:1012A00048017093490180934A0190934B01219624 -:1012B000C830D10509F06BCF8091D601853021F07F -:1012C0008091D601811111C060914801709149014E -:1012D00080914A0190914B010E94D1206131774267 -:1012E0008105910510F00E94202081E0DF91CF91CF -:1012F0001F910F91FF90EF9008952091460130913A -:101300004701F901E80FF11D808108950F931F93A4 -:10131000CF93DF9386E191E00E94E507C0E0D0E043 -:101320000AE011E0E0914601F0914701EC0FFD1F4A -:1013300080810E940A201F928F93DF93CF931F9387 -:101340000F930E947E0821960F900F900F900F90A0 -:101350000F900F90C830D10529F7DF91CF911F91E1 -:101360000F9108951F93CF93DF93C7E0D0E010E073 -:10137000E0914601F0914701EC0FFD1F808190E064 -:101380000E94FE1F180F219798F7812FDF91CF91B0 -:101390001F9108950895089561110BC0FC01828189 -:1013A000882321F085EE0E949A1603C085EE0E94E4 -:1013B000391780E090E0089581E0089581E0089574 -:1013C0000C94DE0908950F931F93CF93DF938C0144 -:1013D000FC01C081D181CE010E94C81EBE010E94C5 -:1013E0008C0AEC01B8010E94E009882309F48DC041 -:1013F000F8018281882309F44AC080915701811144 -:101400001FC0C431F0E5DF0709F051C00E94E209B6 -:1014100081E0809357010E948F2090935601809322 -:10142000550110924E011092500110924F011092EE -:10143000520110925101109254011092530165C053 -:1014400080915501909156010E94A720883C9105FA -:1014500070F480914E01E82FF0E0EE0FFF1FE15B8A -:10146000FE4FD183C0838F5F80934E014EC0C4383E -:1014700080E5D80721F0C538D04501F13AC0F80120 -:101480008281882341F010924C0182E01EC0C43852 -:10149000E0E5DE0759F580914C01811106C086E236 -:1014A0000E949A1686E20E94391782E01CC0C43856 -:1014B000F0E5DF0741F3C538D045D9F4F801828162 -:1014C000882331F010924D0180E20E9461171DC007 -:1014D00080914D01811106C087E20E949A1687E231 -:1014E0000E94391780E20E9468170FC0C538D045A6 -:1014F00029F381E080934C0180934D01C801DF9175 -:10150000CF911F910F910C94DC0980E0DF91CF9176 -:101510001F910F9108950895E72FF0E098E0899FBB -:10152000E00DF11D112483E0EE0FFF1F8A95E1F716 -:10153000E60FF11DEE0FFF1FE95DFE4F85919491BF -:101540000895880F991FFC01EB55F0408591949107 -:101550000895880F991FFC01EB5DFE4F85919491D2 -:1015600008950F931F93CF93DF93EC01811520E330 -:10157000920750F5C11580E2D80708F0C3C0CB3BF5 -:10158000D10590F4C83AD10508F06AC0C53AD10532 -:1015900008F05BC0C430D10508F0D4C1219709F030 -:1015A000CEC101E010E00EC2CF3FD10511F008F02E -:1015B000C9C1C03FD10508F0A2C0CE01805E91092B -:1015C000089708F4BFC1BBC1C13090E5D90709F441 -:1015D000A2C020F5C0318FE4D80770F4C11590E4A3 -:1015E000D90708F094C0C11521E3D20708F0A7C1BC -:1015F000DD278E01106CE6C1C115D04509F09FC1F1 -:101600000E94CF198FEF94E32CE08150904020404E -:10161000E1F700C000000E942221D4C1C11597E566 -:10162000D90758F4C03121E5D20708F020C1C431F0 -:1016300080E5D80708F479C082C1CE0190578115A2 -:10164000904108F07CC1DF7077C1C53AD10509F43B -:101650007BC1C63AD10509F07AC102E810E4B2C1F3 -:10166000C83AD10509F476C1C93AD10509F475C162 -:10167000CA3AD10509F474C1CB3AD10509F473C152 -:10168000CC3AD10509F472C1CD3AD10509F471C142 -:10169000C03BD10509F470C1CE3AD10509F46FC140 -:1016A000CF3AD10509F46EC1C13BD10509F46DC132 -:1016B000C23BD10509F46CC1C33BD10509F46BC130 -:1016C000C43BD10509F46AC1C53BD10509F469C120 -:1016D000C63BD10509F468C1C73BD10509F467C110 -:1016E000C83BD10509F466C1C93BD10509F465C100 -:1016F000CA3BD10509F464C100E014E463C18E0162 -:10170000106560C1CE019F700E94A90A5CC1DF70A4 -:101710008E01106A57C187EA94E00E94E507809124 -:10172000C10181608093C1014DC10E94C822811115 -:1017300002C00E94AE220E94E52290E09093E00158 -:101740008093DF01C23080E5D80721F48091DF016A -:10175000816086C0C43090E5D90721F48091DF0113 -:1017600082607EC0C63020E5D20721F48091DF017F -:10177000846076C0C83080E5D80719F48091DF0115 -:1017800027C0CA3090E5D90721F48091DF0180613C -:1017900067C0CC3020E5D20721F48091DF01806260 -:1017A0005FC0CE3080E5D80721F48091DF018064EE -:1017B00057C0C03190E5D90721F48091DF018068DE -:1017C0004FC0C23120E5D20729F48091DF01846047 -:1017D000886046C0C33080E5D80721F48091DF01DE -:1017E0008E7F3EC0C53090E5D90721F48091DF019E -:1017F0008D7F36C0C73020E5D20721F48091DF010C -:101800008B7F2EC0C93080E5D80719F48091DF01A5 -:1018100026C0CB3090E5D90721F48091DF018F7E7F -:101820001FC0CD3020E5D20721F48091DF018F7DEC -:1018300017C0CF3080E5D80721F48091DF018F7B7E -:101840000FC0C13190E5D90721F48091DF018F7776 -:1018500007C0C331D04531F48091DF018B7F877F92 -:101860008093DF018091DF010E94E922ABC08D2FC0 -:1018700099278F70992781309105D9F49E012370A3 -:10188000332702C0880F991F2A95E2F79C688E01C2 -:1018900044E0000F111F4A95E1F700271370802BD9 -:1018A000912B53E0CC0FDD1F5A95E1F7C076DD2771 -:1018B0002FC08230910531F4DC2FCC278E01016FCF -:1018C000106A80C08330910569F4CE018370992736 -:1018D00001E010E002C0000F111F8A95E2F7C80175 -:1018E0009C680FC084309105B9F4CE0183709927AC -:1018F00001E010E002C0000F111F8A95E2F7C80155 -:101900009A6823E0CC0FDD1F2A95E1F7C07ED770DF -:101910008C010C2B1D2B56C08530910531F4DC2F2A -:10192000CC278E01046F106A4DC0069709F04AC09B -:10193000CF71DD27DC2FCC278E01106243C000E081 -:1019400010E040C08E013EC001E810E43BC003E857 -:1019500010E438C002EE14E435C009EE14E432C0DD -:101960000AEE14E42FC005EB14E42CC006EB14E4DB -:1019700029C007EB14E426C00CEC14E423C00DECE2 -:1019800014E420C003E815E41DC00AE815E41AC0F9 -:1019900002E915E417C004E915E414C001E216E4F5 -:1019A00011C003E216E40EC004E216E40BC005E227 -:1019B00016E408C006E216E405C007E216E402C019 -:1019C0000AE216E4C801DF91CF911F910F910895AB -:1019D000E72FF0E098E0899FE00DF11D112483E0EE -:1019E000EE0FFF1F8A95E1F7E60FF11DEE0FFF1FC7 -:1019F000E95DFE4F85919491803E9105E0F4803C35 -:101A0000910558F58133910509F46FC048F4893286 -:101A1000910509F463C08A32910509F46DC072C062 -:101A200089339105E9F082389105D1F0853391052C -:101A300009F44DC067C0833E910581F138F4803EC2 -:101A40009105B9F0823E9105D9F05CC0863E9105C2 -:101A500061F1873E9105A1F155C00E94A10A089548 -:101A60002091DF0120FD02C021FF4CC080EE90E0FC -:101A700049C08091DF0180FFF9CF89E390E042C047 -:101A80008091DF0182FF0EC08091DF0184FF03C0DF -:101A900080E090E037C083EE90E034C08091DF01B9 -:101AA00082FFF2CF82EE90E02DC08091DF0183FFB4 -:101AB0000BC08091DF0184FDEBCF87EE90E022C068 -:101AC0008091DF0183FFF5CF86EE90E01BC080910F -:101AD000DF0185FF07C089E290E014C08091DF013B -:101AE00085FFF9CF85E390E00DC08091DF0186FF8F -:101AF00007C08AE290E006C08091DF0186FFF9CF3F -:101B000081E390E00E94B10A089508950C94850D38 -:101B10008091630108959FB7F89410925A019FBF76 -:101B20009091D601943009F057C09091E9009F70D0 -:101B30003091EC00232F217030FD20E8922B24E01F -:101B40002093E9002091EB0020FF43C02091EE009C -:101B500027FF3FC020915801222321F02091E80067 -:101B600025FF37C01092580126E03091E80035FD7E -:101B700015C03091D601343061F53091EB0035FD60 -:101B800028C0215021F481E08093580122C0EFE960 -:101B9000FFE03197F1F700C00000E7CF8093F1003C -:101BA0008091E80085FD0AC08091E80080FFFCCFAD -:101BB0008091E8008E778093E80006C08FB7F89494 -:101BC00021E020935A018FBF9F709093E90080E03D -:101BD00008959F709093E9008FEF0895CF93DF935E -:101BE00000D01F92CDB7DEB79C018091D601843022 -:101BF00019F593E099833B832A839093E9008FEF53 -:101C00009091E800815095FD06C095ED9A95F1F709 -:101C100000008111F5CF8091E80085FF0DC040E004 -:101C200050E063E070E0CE0101960E948B1080913D -:101C3000E8008E778093E8000F900F900F90DF916F -:101C4000CF910895CF93DF9300D01F92CDB7DEB729 -:101C50002091D601243021F522E029839B838A83B9 -:101C600083E08093E9008FEF9091E800815095FD2B -:101C700006C095ED9A95F1F700008111F5CF80919E -:101C8000E80085FF0DC040E050E063E070E0CE0169 -:101C900001960E948B108091E8008E778093E80077 -:101CA0000F900F900F90DF91CF9108952091D60162 -:101CB0002430F1F422E02093E9002FEF3091E80086 -:101CC000215035FD06C035ED3A95F1F700002111A0 -:101CD000F5CF2091E80025FF0BC040E050E065E023 -:101CE00070E00E948B108091E8008E778093E8006E -:101CF0000895CF93DF932091D601243039F521E068 -:101D00002093E9002FEF3091E800215035FD06C007 -:101D100035ED3A95F1F700002111F5CF2091E8005B -:101D200025FF14C0EC0140E050E068E070E00E9444 -:101D30008B108091E8008E778093E80088E0FE01A8 -:101D4000ABE5B1E001900D928A95E1F7DF91CF917B -:101D500008958EED94E00E94E5078091D5018111F0 -:101D600009C00E9420120E947D128091E2008460CE -:101D70008093E20008958AED94E00E94E5071092B6 -:101D8000D501089586ED94E00C94E50782ED94E08A -:101D90000C94E5078EEC94E00E94E5070C94572024 -:101DA000209159012F5F822F62E30E94CD2B99234E -:101DB00019F02093590108951092590180915A0108 -:101DC000882371F18091D601843041F58091E9003A -:101DD0008F702091EC00922F917020FD90E8892B5C -:101DE00094E09093E9009091EB0090FF14C09091E3 -:101DF000EE0097FF10C09091E80095FF03C010928D -:101E0000F100F9CF9091E80090FF05C09091E800B3 -:101E10009E779093E8008F708093E90010925A01AA -:101E2000089542E061EC81E00E949A1142E061EC89 -:101E300082E00E949A1142E061EC83E00E949A11D4 -:101E400042E261EC84E00C949A118091D8018330D5 -:101E500009F453C030F4813071F0823009F48CC041 -:101E600008958A3009F478C08B3009F45EC0893057 -:101E700009F09AC020C08091D701813A09F094C03E -:101E80008091E800877F8093E8008091DB0190914A -:101E9000DC01892B21F468E08BE591E003C060E070 -:101EA00080E090E070E00E94D6108091E8008B778F -:101EB0008093E80008958091D701813209F074C0C1 -:101EC0008091DB019091DC01892B09F06DC080913C -:101ED000E800877F8093E8008091E80082FD05C0DC -:101EE0008091D6018111F8CF5FC08091F10080937D -:101EF00063018091E8008B7753C08091D701813ACC -:101F000009F052C08091DB019091DC01892B09F02E -:101F10004BC08091E800877F8093E8008091E800C3 -:101F200080FFFCCF80910A0136C08091D7018132B9 -:101F3000D9F58091DB019091DC01892BA9F5809185 -:101F4000E800877F8093E8000E94CF118091D9013B -:101F500080930A010C94CF198091D701813221F529 -:101F60008091E800877F8093E8000E94CF118091E4 -:101F7000DA018093640108958091D701813AA1F438 -:101F80008091E800877F8093E8008091E80080FFDF -:101F9000FCCF809164018093F1008091E8008E77FE -:101FA0008093E8000C94CF11089584B7877F84BF95 -:101FB00088E10FB6F89480936000109260000FBE25 -:101FC00090E080E80FB6F8948093610090936100F0 -:101FD0000FBE0E94AF150E9420120E947D128091B8 -:101FE000E20084608093E2008BE89DE00E94F91F8C -:101FF00078940E9402150E94B11580E091E00E9441 -:102000001D158DEB94E00E94E5078091D601853087 -:1020100089F489EB94E00E94E5070E9420208091DA -:10202000D401882391F30E944920882371F30E94F0 -:102030007510EBCF0E94D515E8CF292F3327233019 -:102040003105C9F064F42130310581F022303105C9 -:1020500009F043C084E790E028E035E042C0213237 -:102060003105F1F02232310541F137C082E190E0D3 -:102070002CE735E036C099278130910541F0823058 -:10208000910541F0892B49F5E4E0F5E005C0E6EF64 -:10209000F4E002C0E2EEF4E0849190E09F0121C000 -:1020A0006430D8F4E62FF0E0EE0FFF1FE15EFE4F44 -:1020B0002081318189E090E014C0643070F470E0D8 -:1020C000FB01EE0FFF1FE95EFE4F20813181FB0116 -:1020D000ED5EFE4F808190E004C080E090E020E063 -:1020E00030E0FA0131832083089580E189BD82E1E7 -:1020F00089BD09B400FEFDCF8091D8008F7D80930B -:10210000D8008091E00082608093E0008091E00040 -:1021100081FDFCCF0895CF92DF92EF92FF920F9353 -:102120001F93CF93DF93EC018B016A010E94EE11A4 -:10213000811133C0C114D10439F0F601808191813D -:10214000081B190BC80FD91FE12CF12C0115110523 -:1021500019F18091E80085FD16C08091E8008E7726 -:102160008093E800C114D10449F0F6018081918187 -:10217000E80EF91EF182E08285E00FC00E94EE11A8 -:10218000882321F30AC089918093F100015011093D -:10219000FFEFEF1AFF0ADACF80E0DF91CF911F91B6 -:1021A0000F91FF90EF90DF90CF9008952091DD0187 -:1021B0003091DE012617370748F06115710539F4B3 -:1021C0002091E8002E772093E80001C0B90140E09B -:1021D00061157105A9F12091D601222309F443C0AC -:1021E000253009F442C02091E80023FD40C0209131 -:1021F000E80022FD32C02091E80020FFE9CF4091A5 -:10220000F3002091F20030E0342BFC01CF01611586 -:10221000710559F02830310540F481918093F10027 -:10222000615071092F5F3F4FF1CF41E028303105F8 -:1022300009F040E02091E8002E772093E800C8CF15 -:102240004111C9CF0AC08091D601882361F0853041 -:1022500061F08091E80083FD0AC08091E80082FF70 -:10226000F2CF80E0089582E0089583E0089581E050 -:1022700008952091DD013091DE012617370748F0DF -:102280006115710539F42091E8002E772093E8005C -:1022900001C0B901FC0120E06115710591F1809147 -:1022A000D601882309F440C0853009F43FC08091ED -:1022B000E80083FD3DC08091E80082FD2FC0809141 -:1022C000E80080FFE9CF2091F3008091F20090E0D8 -:1022D000922B6115710559F08830910540F42491D5 -:1022E0002093F1003196615071090196F2CF21E0FF -:1022F000089709F020E08091E8008E778093E8004D -:10230000CBCF2111CCCF0AC08091D601882361F0B8 -:10231000853061F08091E80083FD0AC08091E8007B -:1023200082FFF2CF80E0089582E0089583E008956F -:1023300081E00895982F973058F59093E900981709 -:1023400039F07091EC002091ED005091F00003C045 -:10235000242F762F50E021FF19C03091EB003E7FF3 -:102360003093EB003091ED003D7F3093ED003091E4 -:10237000EB0031603093EB007093EC002093ED00A4 -:102380005093F0002091EE0027FF07C09F5FD3CF4E -:102390008F708093E90081E0089580E00895809136 -:1023A000D70187FF11C08091E80082FD05C08091B0 -:1023B000D6018111F8CF11C08091E8008B770BC056 -:1023C0008091D601882349F08091E80080FFF8CF02 -:1023D0008091E8008E778093E80008952091E400D2 -:1023E0003091E50095E64091EC00842F817040FF2C -:1023F00022C08091E80080FD1CC08091D601882316 -:1024000091F0853091F08091EB0085FD10C04091F6 -:10241000E4005091E5004217530729F39A019150C7 -:1024200011F784E0089582E0089583E0089581E043 -:10243000089580E008954091E80042FFDECF0895BE -:102440000E948E120E949612E0EEF0E08081816080 -:102450008083E8EDF0E080818F77808319BCA7ED61 -:10246000B0E08C918E7F8C9380818F7E80831092E0 -:10247000D50108950F931F93CF93DF930E948E127F -:102480000E949612C8EDD0E088818F77888388817A -:102490008068888388818F7D888319BC1092D601DB -:1024A0001092D2011092D4011092D30100EE10E0EC -:1024B000F80180818B7F808388818160888342E0FE -:1024C00060E080E00E949A11E1EEF0E080818E7F72 -:1024D0008083E2EEF0E0808181608083808188608B -:1024E0008083F80180818E7F8083888180618883EA -:1024F000DF91CF911F910F910895E8EDF0E0808179 -:102500008F7E8083E7EDF0E080818160808384E0CE -:1025100082BF81E08093D5010C943A12E8EDF0E09F -:1025200080818E7F80831092E20008951092DA00FD -:102530001092E10008951F920F920FB60F9211248E -:102540002F933F934F935F936F937F938F939F93BB -:10255000AF93BF93EF93FF938091E10082FF0BC095 -:102560008091E20082FF07C08091E1008B7F809321 -:10257000E1000E94D00E8091DA0080FF1FC08091A0 -:10258000D80080FF1BC08091DA008E7F8093DA0034 -:102590008091D90080FF0DC080E189BD82E189BDB5 -:1025A00009B400FEFDCF81E08093D6010E94A90E00 -:1025B00005C019BC1092D6010E94BB0E8091E100AB -:1025C00080FF19C08091E20080FF15C08091E20079 -:1025D0008E7F8093E2008091E20080618093E20030 -:1025E0008091D80080628093D80019BC85E08093E8 -:1025F000D6010E94C60E8091E10084FF30C0809118 -:10260000E20084FF2CC080E189BD82E189BD09B46C -:1026100000FEFDCF8091D8008F7D8093D8008091FF -:10262000E1008F7E8093E1008091E2008F7E8093B5 -:10263000E2008091E20081608093E2008091D2010B -:10264000882311F084E007C08091E30087FD02C079 -:1026500081E001C083E08093D6010E94CA0E809180 -:10266000E10083FF29C08091E20083FF25C08091B3 -:10267000E100877F8093E10082E08093D601109291 -:10268000D2018091E1008E7F8093E1008091E20091 -:102690008E7F8093E2008091E20080618093E2006F -:1026A00042E060E080E00E949A118091F000886032 -:1026B0008093F0000E94C20EFF91EF91BF91AF9105 -:1026C0009F918F917F916F915F914F913F912F914A -:1026D0000F900FBE0F901F9018951F920F920FB67C -:1026E0000F9211242F933F934F935F936F937F9398 -:1026F0008F939F93AF93BF93CF93DF93EF93FF930A -:10270000C091E900CF708091EC00D82FD17080FD8E -:10271000D0E81092E9008091F000877F8093F0006C -:1027200078940E94B1131092E9008091F0008860C3 -:102730008093F000CD2BCF70C093E900FF91EF9113 -:10274000DF91CF91BF91AF919F918F917F916F91C9 -:102750005F914F913F912F910F900FBE0F901F905F -:1027600018951F93CF93DF93CDB7DEB7AA970FB617 -:10277000F894DEBF0FBECDBFE7EDF1E088E08E0F2D -:102780009091F10091938E13FBCF0E94250F8091C1 -:10279000E80083FF1FC18091D7019091D801492F94 -:1027A00050E04A30510508F015C1FA01EA5AFF4FCE -:1027B0000C94ED2B803881F0823809F00BC18091A8 -:1027C000DB018F708093E9008091EB0085FB882707 -:1027D00080F91092E90006C08091D3019091D40154 -:1027E000911182609091E800977F9093E800809328 -:1027F000F1001092F100C8C0282F2D7F09F0EAC027 -:10280000882319F0823061F0E5C08091D9018130D0 -:1028100009F0E0C0933009F080E08093D4012BC030 -:102820008091D901811127C08091DB018F7009F45B -:10283000D1C08093E9002091EB0020FF1CC09330B1 -:1028400021F48091EB00806214C09091EB009061C4 -:102850009093EB0021E030E0A90102C0440F551F26 -:102860008A95E2F74093EA001092EA008091EB002B -:1028700088608093EB001092E9008091E800877FE8 -:1028800086C08111A7C01091D9011F778091E30004 -:102890008078812B8093E3008091E800877F80938C -:1028A000E8000E94CF118091E80080FFFCCF80916A -:1028B000E30080688093E300111102C082E001C050 -:1028C00083E08093D60186C08058823008F082C0B1 -:1028D0008091D9019091DA018C3D53E0950779F50B -:1028E00083E08A838AE289834FB7F894DE011396E6 -:1028F00020E03EE051E2E32FF0E050935700E491F6 -:1029000020FF03C0E295EF703F5FEF708E2F90E0E5 -:10291000EA3010F0C79601C0C0968D939D932F5F4B -:10292000243149F74FBF8091E800877F8093E8000A -:102930006AE270E0CE0101960E94D61014C0AE018A -:102940004F5F5F4F6091DB010E941D10BC0100973B -:1029500009F440C09091E800977F9093E800898146 -:102960009A810E9439118091E8008B778093E8006A -:1029700031C0803879F58091E800877F8093E80046 -:102980008091D2018093F1008091E8008E7780934E -:10299000E8000E94CF111EC081111CC09091D90186 -:1029A0009230C0F48091E800877F8093E800909394 -:1029B000D2010E94CF118091D201811106C0809175 -:1029C000E30087FD02C081E001C084E08093D6016E -:1029D0000E94110F8091E80083FF0AC08091E800F7 -:1029E000877F8093E8008091EB0080628093EB000A -:1029F000AA960FB6F894DEBF0FBECDBFDF91CF9180 -:102A00001F910895CF938091D6018823A1F0C091A2 -:102A1000E900CF709091EC00892F817090FD80E8E3 -:102A2000C82B1092E9008091E80083FD0E94B11349 -:102A3000CF70C093E900CF91089590936A0180937D -:102A400069010895E0916901F0916A01309721F0E0 -:102A50000190F081E02D099480E00895EF92FF92BB -:102A60000F931F93CF93DF93E0916901F0916A0177 -:102A70003097B1F18C010280F381E02D09958091AE -:102A8000C10182FF2DC080FF04C088E796E00E944C -:102A9000E507E80118E082E7E82E86E0F82E80914D -:102AA000C10180FF0BC088811F928F93FF92EF922C -:102AB0000E947E080F900F900F900F90115021965A -:102AC0001111EDCF8091C10180FF0AC080E796E02F -:102AD000DF91CF911F910F91FF90EF900C94E5073C -:102AE000DF91CF911F910F91FF90EF900895E091AA -:102AF0006901F0916A01309721F00480F581E02DA1 -:102B00000994089520916701309168018217930715 -:102B100071F09093680180936701E0916901F091F1 -:102B20006A01309721F00680F781E02D099408951D -:102B300020916501309166018217930771F090939F -:102B4000660180936501E0916901F0916A01309717 -:102B500021F00084F185E02D0994089508950C94E6 -:102B6000AE150E9486200E9487080C948021CF9386 -:102B7000DF931F92CDB7DEB79091C10192FF10C0D5 -:102B800090FF0EC01F928F932AE836E03F932F9359 -:102B900089830E947E080F900F900F900F9089817B -:102BA0000F90DF91CF910C94860D9F92AF92BF92C0 -:102BB000CF92DF92EF92FF920F931F93CF93DF9309 -:102BC00000D000D000D0CDB7DEB70E94AA0807E041 -:102BD00010E0AA24A394B12C902E802F0E947D098E -:102BE000980124593E4F6901F901F080F826A1F4BB -:102BF0000150110988F78FEF89838A831B820E9415 -:102C00008F208160782F9D838C8349815A816B81CD -:102C10008D810E946C162FC09091C10191FF04C05C -:102C20008E830E9486098E8127E030E0A501022E66 -:102C300001C0440F0A94EAF7E42E4F21C1F0298322 -:102C40009A828E2191E009F490E09B830E948F206C -:102C50008160782F9D838C8349815A816B818D811E -:102C60000E946C16F6018081E826E08204C02150A3 -:102C70003109E0F6BDCF0E94EA2410916B010E9459 -:102C800022151817B9F00E94221580936B01269621 -:102C90000FB6F894DEBF0FBECDBFDF91CF911F916D -:102CA0000F91FF90EF90DF90CF90BF90AF909F90EB -:102CB0000C94B71526960FB6F894DEBF0FBECDBFA5 -:102CC000DF91CF911F910F91FF90EF90DF90CF9008 -:102CD000BF90AF909F900895CF93DF93CDB7DEB7AD -:102CE0002B970FB6F894DEBF0FBECDBF4F8358872A -:102CF00069877A878B87DE01119686E0FD01119244 -:102D00008A95E9F785E0FE01379601900D928A9544 -:102D1000E1F749815A816B817C818D819E810E947E -:102D20006D1C2B960FB6F894DEBF0FBECDBFDF91A2 -:102D3000CF910895CF93882309F499C0C82F8CEFC1 -:102D40008C0F813A48F48C2F0E94562981118FC034 -:102D50008C2F0E94471F0CC080E28C0F883058F4E3 -:102D6000C77081E001C0880FCA95EAF70E94831FEF -:102D7000CF910C94CA1F8BE58C0F833078F4C53A41 -:102D800029F0C63A31F083E890E005C081E890E090 -:102D900002C082E890E0CF910C94821588E58C0FF8 -:102DA000833108F064C0C83A39F1C93A41F1CA3AEE -:102DB00049F1CB3A51F1CC3A59F1CD3A61F1C03BEE -:102DC00069F1CE3A71F1CF3A79F1C13B81F1C23B61 -:102DD00089F1C33B91F1C43B99F1C53BA1F1C63BDD -:102DE000A9F1C73BB1F1C83BB9F1C93BC1F1CA3B3D -:102DF000C9F180E090E038C082EE90E035C089EE05 -:102E000090E032C08AEE90E02FC085EB90E02CC0BD -:102E100086EB90E029C087EB90E026C08CEC90E038 -:102E200023C08DEC90E020C083E891E01DC08AE8CB -:102E300091E01AC082E991E017C084E991E014C0E2 -:102E400081E292E011C083E292E00EC084E292E05F -:102E50000BC085E292E008C086E292E005C087E2FE -:102E600092E002C08AE292E0CF910C949815CF9143 -:102E70000895882329F19CEF980F913A18F40E9445 -:102E8000641F0DC090E2980F983058F4877091E05D -:102E900001C0990F8A95EAF7892F0E94891F0C9427 -:102EA000CA1F9BE5980F933020F480E090E00C94CB -:102EB0008215885A833120F480E090E00C949815B4 -:102EC0000895882321F00E94831F0C94CA1F08953F -:102ED000882321F00E94891F0C94CA1F08957F92B5 -:102EE0008F929F92AF92BF92CF92DF92EF92FF921A -:102EF0000F931F93CF93DF931F92CDB7DEB77C0163 -:102F0000C62E772EFC01058102950F7012811111DA -:102F10000E94A01F0E94401F882379F0112369F0AE -:102F200080E28C0D883048F082E00E94291F0E94C8 -:102F3000401F91E0D82ED92601C0D12CE72DE29573 -:102F4000EF70F0E0E05AFF4F0C94ED2B872D807F5F -:102F5000072D0F70882311F00295007F112389F04F -:102F6000002309F498C180E28C0D883020F4802F72 -:102F70000E94831F03C0802F0E94931F0E94CA1FBC -:102F80008AC18C2D0E943917002309F49DC180E26B -:102F90008C0D883020F4802F0E94891F03C0802F61 -:102FA0000E94991F0E94CA1F8FC1872D807F972D75 -:102FB0009F70803211F4892F03C0892F8295807F02 -:102FC000CC2021F0F1E0CF16A1F01DC0112339F083 -:102FD000002319F1013009F50E94B31F75C10023C8 -:102FE00019F0013009F470C189830E94B61F8981EC -:102FF00010C1112321F0063008F066C10EC0053063 -:1030000008F062C106C1112359F0002331F0F70125 -:10301000958190FF40C19F7095830E94611754C1B4 -:10302000002309F4F6C03DC1872D869586958370EF -:1030300090E0009719F0019761F046C1112321F04B -:103040008C2D972D937002C080E090E00E94821535 -:103050003BC1112321F08C2D972D937002C080E08D -:1030600090E00E94981530C18C2D112319F00E9418 -:10307000702302C00E94D8230E945D2425C1872DA1 -:10308000837009F052C011111FC18C2D8295869555 -:103090008770880F880F9C2D9F70892E912CA12CF2 -:1030A000B12C082E04C0880C991CAA1CBB1C0A94C5 -:1030B000D2F7C4FE14C00FE010E020E030E0B90108 -:1030C000A80104C0440F551F661F771F8A95D2F7C9 -:1030D000CB01BA01609570958095909503C060E032 -:1030E00070E0CB01272D26952695237030E0223005 -:1030F000310569F02330310589F0682979298A2959 -:103100009B292130310571F00E94B51DDDC0682971 -:1031100079298A299B290E94D11DD6C00E94B51DFC -:10312000C501B4010E94991DCFC0112319F0872D4C -:10313000817001C08695882309F4C6C08C2D8295C4 -:1031400086958770880F880F9C2D9F70892E912CF3 -:10315000A12CB12C082E04C0880C991CAA1CBB1CE5 -:103160000A94D2F7C4FE14C00FE010E020E030E073 -:10317000B901A80104C0440F551F661F771F8A9527 -:10318000D2F7CB01BA01609570958095909503C0F8 -:1031900060E070E0CB01272D269526952370422F05 -:1031A00050E04230510569F04330510589F06829FB -:1031B00079298A299B294130510571F00E948F1E7F -:1031C00083C0682979298A299B290E94AB1E7CC06B -:1031D0000E948F1EC501B4010E94731E75C08C2D04 -:1031E00090E0FC01E05EF109E531F10508F04FC027 -:1031F000E059FF4F0C94ED2B0C2D0F70872D8F7124 -:10320000112321F00E940C1E802F07CF0E942D1E3B -:10321000802F0E94681758C0112341F0053008F034 -:1032200053C0872D8F710E94521E4EC0063008F089 -:103230004BC0F7CF112339F0872D8F710E940C1EE0 -:1032400043C01123C9F3872D8F710E942D1E3CC0EE -:10325000112329F0872D8F710E94F71D35C00E9420 -:10326000ED1D32C0112351F0172D1F71812F0E94C7 -:103270000C1E63E0812F0E94201F26C081E00E9467 -:10328000291F023008F182E00E94291F1DC011236E -:1032900031F0002389F28C2D0E949A1615C000236C -:1032A00091F28C2D0E9439170FC0472D4F706C2D55 -:1032B000C7010E94CC090E94111D06C0472D4F7006 -:1032C0006C2DC7010E948B0ADD20F9F00E941C1FA3 -:1032D00080FD1BC0F70112820E94161F0E940C1E67 -:1032E000C7010E9494190E94161F0F90DF91CF9181 -:1032F0001F910F91FF90EF90DF90CF90BF90AF9014 -:103300009F908F907F900C942D1E0F90DF91CF9106 -:103310001F910F91FF90EF90DF90CF90BF90AF90F3 -:103320009F908F907F9008950F931F93CF93DF937B -:10333000EC01888199812B813C81232BB9F09F3F3F -:1033400011F48F3F99F0CE010E94E309882371F0B8 -:10335000688179818A810E94121F8C010E94C71E98 -:103360000E948E1DB801CE010E946F17DF91CF9190 -:103370001F910F9108950E94A01F0E94B01F0E94EC -:10338000751F0E94CA1F0E9490250E945D2480E044 -:1033900090E00E94821580E090E00C9498150E94C5 -:1033A000901F0C94BB190E94071F292F22952F7084 -:1033B00030E02C3031054CF42A3031056CF42250C9 -:1033C000310922303105A8F407C02C30310569F0ED -:1033D0002F30310551F00DC0803F69F018F4803E68 -:1033E00040F409C0843F29F406C093FB882780F984 -:1033F000089580E0089581E00895CF93DF9300D091 -:1034000000D01F92CDB7DEB70F900F900F900F90A6 -:103410000F90DF91CF910895CF93DF9300D000D02C -:1034200000D0CDB7DEB726960FB6F894DEBF0FBE3C -:10343000CDBFDF91CF9108951F93CF93DF93C091BC -:10344000740116E080917501C81799F0D0E01C9FB7 -:10345000F0011D9FF00D1124EA58FE4F408151816B -:1034600062817381848195810E940C1A2196C770B4 -:10347000E9CFDF91CF911F9108954091A60150911E -:10348000A7016091A8017091A9018091AA01909172 -:10349000AB010C940C1A8091AB0182958F7009F0EE -:1034A00054C08091A801882309F44FC08091740111 -:1034B000A09175016091A6017091A7014091A901A9 -:1034C0005091AA01B6E08A1709F43FC090E0411577 -:1034D0005105C1F17F3F11F46F3FA1F1B89FF00199 -:1034E000B99FF00D1124EA58FE4F218172132AC0B2 -:1034F0002081621327C02281211124C023813481BD -:103500002417350710F421503109241B350B283CB2 -:103510003105C0F42091AB012F7020612093AB01E5 -:1035200026E0289FF001299FF00D1124E558FE4F59 -:1035300080818F708061808386EA91E00E94941977 -:103540000C941C1A01968770BECF0895CF92DF921B -:10355000EF92FF920F931F93CF93DF93CDB7DEB718 -:1035600062970FB6F894DEBF0FBECDBF8C0185E029 -:10357000F801DE011D9601900D928A95E1F7D801C0 -:103580004C9111965C91119712966C91129713962B -:10359000CD90DC9014973091A6017091A701809195 -:1035A000A9019091AA01009709F46BC17F3F19F41A -:1035B0003F3F09F466C1E090A801EE2009F4C0C0C5 -:1035C0002091AB01C816D90628F0F601E81BF90BCB -:1035D000CF0104C0809590958C0D9D1DFF24F39420 -:1035E000883C910578F0F12C207F09F0C6C07C2D35 -:1035F000D98AC88A89890E94FD1986EA91E00E94C9 -:103600009419B1C0822F807F09F046C0751314C091 -:10361000341312C0611110C02F7020612093AB01D0 -:103620000E943D1A86EA91E00E9494198091AB01B4 -:10363000D80115968C932EC0CD2819F15F3F11F457 -:103640004F3FF9F0F62E61111CC08091740120915A -:10365000750136E0821709F45AC090E0389FF001F6 -:10366000399FF00D1124EA58FE4F7181571306C09F -:103670007081471303C07281711103C00196877076 -:10368000E9CFF62E662309F418C18091AB01816061 -:103690008093AB01F12C11C1751308C0341306C01F -:1036A000611104C08091AB01D801C3C04D875E8712 -:1036B0008D859E856A8B0E94D3196A898823E1F1E2 -:1036C0006623D1F12091AB01822F82958F7090E01B -:1036D000029774F08091A6019091A70198878F833B -:1036E0001986DB86CA862C87CE0107960E9494191C -:1036F00086E0F801A6EAB1E001900D928A95E1F723 -:103700000E944B1A0E943D1AFF24F394D6C04D87A5 -:103710005E878D859E850E94071F292F22952F7019 -:1037200030E0223031050CF0BCC09F7009F0B6C00B -:10373000805E883008F4C1C0C8010E949419E4CFAB -:10374000C816D90608F453C0F601E81BF90BCF01DF -:10375000883C910508F450C0F12C7C2DD98AC88A88 -:1037600089890E94FD19E6EAF1E086E0DF011D92F9 -:103770008A95E9F70E943D1AA0C0751314C034134E -:1037800012C0611110C08091AB01F8018583C8019E -:103790000E94941986E0E6EAF1E0DF011D928A9525 -:1037A000E9F7FE2C8AC04D875E878D859E856A8BE2 -:1037B0000E94D3196A89882309F4BECF662309F4CD -:1037C000BBCF2091AB01822F82958F7090E0029742 -:1037D0000CF48ECF8091A6019091A7019A838983E2 -:1037E0001B82DD82CC822E83CE0101967FCF809515 -:1037F00090958C0D9D1DACCFF62E662309F49CCFC1 -:1038000075132EC034132CC02091AB0120FD1FC0B6 -:10381000822F82958F70D9F0D80115962C93159729 -:103820008F3049F08F5F982F9295907F822F8F7005 -:10383000892B15968C93C8010E94941986E0F80193 -:10384000A6EAB1E001900D928A95E1F793CF86E068 -:10385000F801A6EAB1E001900D928A95E1F72DC03A -:103860004D875E878D859E850E94D319811140CF3B -:103870008091AB0181608093AB01C8010E949419D3 -:103880001CC0662309F458CF4D875E878D859E85C1 -:103890000E94D319882309F44FCF2ACF811148CF32 -:1038A0000CC0243031050CF047CF9F7009F440CF95 -:1038B000F8019581907F09F03BCF8F2D62960FB66E -:1038C000F894DEBF0FBECDBFDF91CF911F910F9156 -:1038D000FF90EF90DF90CF9008951F93CF93DF93E9 -:1038E000CDB7DEB72C970FB6F894DEBF0FBECDBFB5 -:1038F0004F83588769877A878B879C87CE01079685 -:103900000E94A61A882369F08F8198852A853B85B5 -:10391000232BF1F19F3F09F063C08F3F09F060C096 -:1039200037C086E0FE013796DE01119601900D92B8 -:103930008A95E1F76F817885EA85FB85309741F1BB -:103940007F3F11F46F3F21F12091750130E0C901F3 -:103950000196877099274091740150E0841795076C -:1039600009F447C069837A83FD83EC8396E0929FD4 -:10397000D001939FB00D1124AA58BE4FFE0131967D -:1039800001900D929A95E1F7809375010E941C1A9F -:1039900016E080917401909175018917C1F1189F0B -:1039A000C00111248A589E4F0E94A61A882379F1DB -:1039B000E09174011E9FF0011124EA58FE4F4081EE -:1039C000518162817381848195810E940C1A80915A -:1039D000740190E001968770992780937401D9CF84 -:1039E0004F81588569857A858B859C850E940C1A44 -:1039F000CFCF0E94CF191092750110927401E6EAA0 -:103A0000F1E086E0DF011D928A95E9F7C1CF2C969F -:103A10000FB6F894DEBF0FBECDBFDF91CF911F91DF -:103A20000895EF92FF920F931F93CF93DF938C0132 -:103A3000009709F46CC0F12CEE24E394E801219680 -:103A4000F8018491843740F4843008F051C081300B -:103A500081F0823019F15BC0853709F444C0A8F1C8 -:103A60009CE7980F903708F052C08F770E94391763 -:103A700041C00E5F1F4FFE01C49180E28C0F883061 -:103A800048F4C7708E2D01C0880FCA95EAF70E94CE -:103A9000A31F14C08C2F0E949A162DC00E5F1F4FBB -:103AA000FE01C49180E28C0F883058F4C7708E2DCF -:103AB00001C0880FCA95EAF70E94A91F0E94CA1F79 -:103AC0001AC08C2F0E94391716C00E5F1F4FFE01BF -:103AD000C491CC2381F08FE99FE00197F1F700C0FA -:103AE0000000C150F6CF0E5F1F4FFE01F49003C0DF -:103AF0000E949A168E018F2D882309F49FCFEFE93B -:103B0000FFE03197F1F700C000008150F5CFDF9161 -:103B1000CF911F910F91FF90EF90089508956093BA -:103B2000B0017093B1018093B2019093B3010C94F2 -:103B3000BB190F931F930091B0011091B101209117 -:103B4000B2013091B301DC01CB01802B912BA22B70 -:103B5000B32B8093B0019093B101A093B201B093C5 -:103B6000B3011F910F910C94BB190F931F930091F8 -:103B7000B0011091B1012091B2013091B301DC018B -:103B8000CB0180239123A223B3238093B001909390 -:103B9000B101A093B201B093B3011F910F910C94A6 -:103BA000BB190F931F930091B0011091B1012091A7 -:103BB000B2013091B301DC01CB0180279127A2270C -:103BC000B3278093B0019093B101A093B201B09359 -:103BD000B3011F910F910C94BB191092AC0110927C -:103BE000AD011092AE011092AF010C94BB1941E0EF -:103BF00050E060E070E004C0440F551F661F771F5F -:103C00008A95D2F74093AC015093AD016093AE0119 -:103C10007093AF010C94BB1941E050E060E070E09C -:103C200004C0440F551F661F771F8A95D2F78091F5 -:103C3000AC019091AD01A091AE01B091AF01482BC4 -:103C4000592B6A2B7B2B4093AC015093AD016093B1 -:103C5000AE017093AF010C94BB1941E050E060E0FD -:103C600070E004C0440F551F661F771F8A95D2F776 -:103C700040955095609570958091AC019091AD0103 -:103C8000A091AE01B091AF01482359236A237B2351 -:103C90004093AC015093AD016093AE017093AF01BE -:103CA0000C94BB1941E050E060E070E004C0440FA8 -:103CB000551F661F771F8A95D2F78091AC019091AE -:103CC000AD01A091AE01B091AF01482759276A27F5 -:103CD0007B274093AC015093AD016093AE0170938C -:103CE000AF010C94BB190F931F930091AC0110917D -:103CF000AD012091AE013091AF01DC01CB01802BF1 -:103D0000912BA22BB32B8093AC019093AD01A09388 -:103D1000AE01B093AF011F910F910C94BB190F939B -:103D20001F930091AC011091AD012091AE01309133 -:103D3000AF01DC01CB0180239123A223B323809325 -:103D4000AC019093AD01A093AE01B093AF011F9170 -:103D50000F910C94BB190F931F930091AC0110911C -:103D6000AD012091AE013091AF01DC01CB01802784 -:103D70009127A227B3278093AC019093AD01A09324 -:103D8000AE01B093AF011F910F910C94BB19089530 -:103D9000CF92DF92EF92FF920F931F93CF93DF9317 -:103DA0008C01C090B001D090B101E090B201F090D0 -:103DB000B3018091AC019091AD01A091AE01B091A1 -:103DC000AF01C82AD92AEA2AFB2ACFE1D0E0D701DD -:103DD000C6010C2E04C0B695A795979587950A94B1 -:103DE000D2F780FF06C0B8018C2F0E94E80C019723 -:103DF00021F4219760F780E001C08C2FDF91CF91F3 -:103E00001F910F91FF90EF90DF90CF900895CF9387 -:103E1000DF93EC010E94C81EBE010E94E80CDF91F6 -:103E2000CF910895CB010E94071F08958091B4019E -:103E300085958595859508958091B401877008953D -:103E400098E0899F90011124262B2093B4010C94B3 -:103E50000C1E2091B401809582238093B401982F89 -:103E6000977069F430E0482F552747FD5095241787 -:103E7000350729F08595859585950C942D1E089517 -:103E80009091B401977081E009F480E00895209149 -:103E90000B0130910C01F90132969FEF40E05191F6 -:103EA000581789F09F3F19F4511101C0942F4F5FAB -:103EB0004630A9F79F3F39F0F901E90FF11D97FD51 -:103EC000FA9582830895089520910B0130910C0199 -:103ED000F9013296285F3F4F9081981301C01082FC -:103EE0003196E217F307C1F7089581E090E0E09181 -:103EF0000B01F0910C01E80FF91F10820196883038 -:103F00009105A9F708959091C001892B8093C00174 -:103F1000089580959091C00189238093C0010895F0 -:103F20001092C00108959091BF01892B8093BF0129 -:103F3000089580959091BF0189238093BF010895D2 -:103F40001092BF0108959091BE01892B8093BE010C -:103F5000089580959091BE0189238093BE010895B4 -:103F60001092BE0108958093B50108951092B50195 -:103F7000089580910B0190910C01FC0131969C01F8 -:103F8000285F3F4F80E0919191118F5FE217F30717 -:103F9000D1F70895E0910B01F0910C018091C001DF -:103FA0008083E0910B01F0910C0190818091BF0121 -:103FB000892B8083E0910B01F0910C01908180911D -:103FC000BE01892B80838091B501882361F0E09147 -:103FD0000B01F0910C019081892B80830E94B91F05 -:103FE00081111092B50180910B0190910C010C94FC -:103FF0002E159093330180933201089520E00097AD -:1040000039F0AC0141505109842395232F5FF7CF3C -:10401000822F08958295982F9C7C392F369536955E -:10402000282F237344E0249FC0011124932F982B41 -:10403000292F2A7A2695892F8575880F822B089536 -:104040008091D601843021F11092C20120E488E1F0 -:1040500090E00FB6F894A895809360000FBE20936F -:10406000600080E00E94860D83B7817F846083BFFB -:1040700083B7816083BF7894889583B78E7F83BF31 -:1040800088E10FB6F89480936000109260000FBE34 -:1040900008950E94CA090E94AA080E94CB090E94A2 -:1040A000B20991E0811101C090E0892F08950E942A -:1040B000CF190E9422150C94860D1F920F920FB6F5 -:1040C0000F9211248F939F93AF93BF938091C2015E -:1040D000811113C08091C3019091C401A091C501C9 -:1040E000B091C6014196A11DB11D8093C30190936B -:1040F000C401A093C501B093C601BF91AF919F9138 -:104100008F910F900FBE0F901F90189582E084BD85 -:1041100093E095BD9AEF97BD80936E0008952FB7F9 -:10412000F8948091C3019091C401A091C501B09110 -:10413000C6012FBF08952FB7F8946091C301709105 -:10414000C4018091C5019091C6012FBF0895CF92FF -:10415000DF92EF92FF920F931F932FB7F894409145 -:10416000C3015091C4016091C5017091C6012FBF78 -:104170006A017B01EE24FF248C0120E030E0C016B0 -:10418000D106E206F30610F4415051099A01281BAA -:10419000390BC9011F910F91FF90EF90DF90CF90E5 -:1041A0000895CF92DF92EF92FF920F931F932FB754 -:1041B000F894C090C301D090C401E090C501F09084 -:1041C000C6012FBF97018601061B170B280B390B61 -:1041D000C616D706E806F90618F0C901B80106C0E8 -:1041E000C901B80161507109810991091F910F91AD -:1041F000FF90EF90DF90CF9008951F920F920FB62F -:104200000F9211248F939F93AF93BF938091C3011B -:104210009091C401A091C501B091C6010196A11D64 -:10422000B11D8093C3019093C401A093C501B093C5 -:10423000C601BF91AF919F918F910F900FBE0F90CC -:104240001F9018950E942012F8942FEF87EA91E6AC -:10425000215080409040E1F700C0000087E090EBE3 -:10426000DC018093E0019093E101A093E201B0931F -:10427000E3019CE088E10FB6F894A8958093600074 -:104280000FBE90936000FFCFEF92FF920F931F93AA -:10429000CF93DF93D82FC7E08C2F0E947D0907E0D2 -:1042A00010E0E82EF12CC701002E02C095958795ED -:1042B0000A94E2F780FF09C0602F7C2F80E00E9403 -:1042C0008C0AD81302C081E006C00150110958F7CA -:1042D000C15010F780E0DF91CF911F910F91FF90B7 -:1042E000EF900895CF93C82F8CE20E944421882339 -:1042F00021F08C2FCF910C94442180E0CF91089530 -:10430000CF930E94C822811102C00E94AE228AEA85 -:1043100096E00E94E507C5E6C15049F00E94AA0850 -:104320008FE39CE90197F1F700C00000F5CF83EA25 -:1043300096E00E94E50789E20E94722181110CC17A -:104340008AE20E94722181110E94AE2285E00E94C1 -:10435000722181110E9422210E94D3228093C101E7 -:1043600087E00E9472218823A9F18BE10E947221CB -:10437000882351F08091C10181FB222720F991E02F -:10438000922790FB81F90EC08EE00E947221882353 -:1043900061F08091C10182FB222720F991E09227F0 -:1043A00090FB82F98093C10115C080E10E947221C7 -:1043B0009091C101882341F093FB222720F981E0ED -:1043C000822780FB93F904C0892F809580FB90F9A8 -:1043D0009093C1018091C1010E94D7220E94E522E1 -:1043E0008093DF0180EE0E947221882341F080914A -:1043F000DF01982F909590FB80F98093DF0189E38E -:104400000E947221882359F08091DF0181FB2227CD -:1044100020F991E0922790FB81F98093DF0182EEF1 -:104420000E947221882359F08091DF0182FB2227AC -:1044300020F991E0922790FB82F98093DF0186EECC -:104440000E947221882359F08091DF0183FB22278B -:1044500020F991E0922790FB83F98093DF0183EEAE -:104460000E947221882359F08091DF0184FB22276A -:1044700020F991E0922790FB84F98093DF0185E396 -:104480000E947221882359F08091DF0185FB222749 -:1044900020F991E0922790FB85F98093DF0181E379 -:1044A0000E947221882359F08091DF0186FB222728 -:1044B00020F991E0922790FB86F98093DF0181E15A -:1044C0000E947221882359F08091DF0187FB222707 -:1044D00020F991E0922790FB87F98093DF0180918A -:1044E000DF010E94E92287E20E947221C82F8EE13B -:1044F0000E9472218111C2608FE10E94722181119C -:10450000C46080E20E9472218111C86081E20E9431 -:1045100072218111C06182E20E9472218111C06208 -:1045200083E20E9472218111C06484E20E947221A0 -:10453000882311F0C06802C0CC2329F08C2F0E9480 -:10454000E0226C2F03C00E94DC22682F70E080E024 -:1045500090E0CF910C948F1DCF9108956DEE7EEF7A -:1045600080E090E00E94272C60E082E090E00E94D2 -:10457000152C60E083E090E00E94152C60E084E060 -:1045800090E00E94152C60E085E090E00C94152CE2 -:1045900080E090E00E940F2C21E08D3E9E4F09F0BC -:1045A00020E0822F089582E090E00C94072C682F81 -:1045B00082E090E00C94152C83E090E00C94072CA2 -:1045C000682F83E090E00C94152C84E090E00C942C -:1045D000072C682F84E090E00C94152C8091C90181 -:1045E00080FF0BC06091100185E0689FB00111242D -:1045F00075956795759567952BC081FF09C060918A -:10460000100185E0689FB00111247595679520C061 -:1046100082FF07C06091100185E0689FB0011124FE -:1046200017C09091CA019923D1F060910F0196179C -:1046300088F72091100185E0289F90011124929F16 -:10464000A001939F500D112470E0CA010E94D92B44 -:104650006038710540F46115710539F002C065E0FC -:1046600070E0862F08958FE7089581E00895809186 -:10467000C90180FF08C060910E0170E075956795D3 -:104680007595679521C081FF06C060910E0170E0AD -:104690007595679519C082FF04C060910E0170E0A6 -:1046A00010C09091CA019923C1F060910D01961735 -:1046B000A0F780910E01899FC001112470E00E9433 -:1046C000D92B6038710528F46115710521F0862F0A -:1046D00008958FE7089581E0089561E070E0F4CFD8 -:1046E000803F21F40E94EE22819504C0813F29F48D -:1046F0000E94EE228093CD010895823F21F40E9412 -:10470000EE22819504C0833F29F40E94EE2280931B -:10471000CC010895893F19F40E94372305C08A3FD0 -:1047200031F40E94372381958093CE0108958B3F09 -:1047300021F40E943723819504C08C3F29F40E9404 -:1047400037238093CF010895843F21F48091CB01DA -:10475000816017C0853F21F48091CB01826011C038 -:10476000863F21F48091CB0184600BC0873F21F408 -:104770008091CB01886005C0883F31F48091CB01E6 -:1047800080618093CB0108958D3F21F48091C90110 -:1047900081600BC08E3F21F48091C901826005C009 -:1047A0008F3F29F48091C90184608093C9010895E5 -:1047B000803F39F48091CD0187FF6CC01092CD010C -:1047C00069C0813F29F48091CD011816BCF362C005 -:1047D0009091CC01823F29F497FF5CC01092CC01EC -:1047E00059C0833F19F41916CCF354C0893F41F4E2 -:1047F0008091CE0118160CF04DC01092CE014AC027 -:104800008A3F29F48091CE0187FF44C0F6CF8B3FC9 -:1048100039F48091CF0187FF3DC01092CF013AC09B -:104820008C3F29F48091CF011816BCF333C0843F2C -:1048300021F48091CB018E7F17C0853F21F48091B8 -:10484000CB018D7F11C0863F21F48091CB018B7FFE -:104850000BC0873F21F48091CB01877F05C0883F43 -:1048600031F48091CB018F7E8093CB0113C08D3FBB -:1048700021F48091C9018E7F0BC08E3F21F480917D -:10488000C9018D7F05C08F3F29F48091C9018B7FBD -:104890008093C9018091CC0181110EC08091CD011E -:1048A00081110AC08091CE01811106C08091CF0193 -:1048B000811102C01092CA0108958091C10183FF45 -:1048C0007EC086EE96E00E94E5078091CB011F92A4 -:1048D0008F9381EE96E09F938F930E947E088FEDD9 -:1048E00096E00E94E5078091CC01282F332727FD11 -:1048F00030953F938F938CED96E09F938F930E941A -:104900007E088AED96E00E94E5078091CD01282F70 -:10491000332727FD30953F938F9387ED96E09F9344 -:104920008F930E947E0885ED96E00E94E5078091B6 -:10493000CE01282F332727FD30953F938F9382EDAB -:1049400096E09F938F930E947E0880ED96E00E94F0 -:10495000E5078091CF01282F332727FD30953F931E -:104960008F938DEC96E09F938F930E947E088AEC44 -:1049700096E00E94E5078091CA011F928F9387EC11 -:1049800096E09F938F930E947E0885EC96E00E94AC -:10499000E5078091C9011F928F9382EC96E09F9367 -:1049A0008F930E947E088FEB96E00E94E5078DB7FB -:1049B0009EB74C960FB6F8949EBF0FBE8DBF8BEC82 -:1049C00091E00E9477150E948F209093C8018093F8 -:1049D000C70108951F93CF93DF938091C7019091F2 -:1049E000C8010E94A720AC019091CA01992321F02F -:1049F0002091110130E006C0209112018AE0289F29 -:104A0000900111244217530708F486C08091CC010D -:104A1000C091CD01D091CE011091CF01811107C07D -:104A2000C11176C0D11174C0111172C075C09F3F01 -:104A300019F09F5F9093CA01181624F40E94EE2289 -:104A40008093CC018091CC0187FF05C00E94EE22AB -:104A500081958093CC011C1624F40E94EE22809351 -:104A6000CD018091CD0187FF05C00E94EE22819586 -:104A70008093CD016091CC01662339F1C091CD01C5 -:104A8000CC2319F1772767FD7095872F972F0E9408 -:104A9000DE2A23E333E343E35FE30E94422B0E94D9 -:104AA000AB2A6093CC016C2F772767FD7095872F19 -:104AB000972F0E94DE2A23E333E343E35FE30E9460 -:104AC000422B0E94AB2A6093CD011D1624F40E9454 -:104AD00037238093CE018091CE0187FF05C00E94CD -:104AE000372381958093CE01111624F40E94372339 -:104AF0008093CF018091CF0187FF05C00E943723AB -:104B000081958093CF01DF91CF911F910C945D240B -:104B10009F3F09F08ECF96CFDF91CF911F910895DF -:104B2000EBECF1E085E0DF011D928A95E9F7109248 -:104B3000CA011092C901089589E099E00E94E50731 -:104B40001F9281E08F931F9285E08F938BEB98E00B -:104B50009F938F930E947E080F900F900F900F905D -:104B60000F900F9008958330E9F128F4813061F0BF -:104B7000823009F10895853009F462C008F449C013 -:104B8000863009F474C0089580911201262F30E018 -:104B9000280F311D2F3F310524F4680F6093120157 -:104BA00003C08FEF80931201809112011F928F93A7 -:104BB00084EF97E072C080911101262F30E0280F1A -:104BC000311D2F3F310524F4680F6093110103C09C -:104BD0008FEF80931101809111011F928F9382EECC -:104BE00097E05BC080911001262F30E0280F311D27 -:104BF0002F3F310524F4680F6093100103C08FEF3D -:104C000080931001809110011F928F938FEC97E099 -:104C100044C080910F01262F30E0280F311D2F3F17 -:104C2000310524F4680F60930F0103C08FEF809368 -:104C30000F0180910F011F928F938AEB97E02DC097 -:104C400080910E01262F30E0280F311D2F3F3105B6 -:104C500024F4680F60930E0103C08FEF80930E0160 -:104C600080910E011F928F9381EA97E016C0809188 -:104C70000D01262F30E0280F311D2F3F310524F480 -:104C8000680F60930D0103C08FEF80930D01809139 -:104C90000D011F928F9386E897E09F938F930E9458 -:104CA0007E080F900F900F900F900895833081F140 -:104CB00028F4813059F08230D1F00895853009F41C -:104CC00049C0B8F1863009F456C0089580911201A8 -:104CD000681720F4861B8093120102C01092120103 -:104CE000809112011F928F9387E797E054C08091C3 -:104CF0001101681720F4861B8093110102C01092E5 -:104D00001101809111011F928F9385E697E043C0B6 -:104D100080911001681720F4861B8093100102C057 -:104D200010921001809110011F928F9382E597E0FD -:104D300032C080910F01681720F4861B80930F0109 -:104D400002C010920F0180910F011F928F938DE38B -:104D500097E021C080910E01681720F4861B809394 -:104D60000E0102C010920E0180910E011F928F93CE -:104D700084E297E010C080910D01681720F4861B33 -:104D800080930D0102C010920D0180910D011F92C0 -:104D90008F9389E097E09F938F930E947E080F90F6 -:104DA0000F900F900F900895CF93C82F1F928F935D -:104DB0008EE09AE09F938F930E947E0881E090E0BE -:104DC000A0E0B0E0BC01CD0104C0660F771F881FD2 -:104DD000991FCA95D2F70E948F1D0F900F900F90C8 -:104DE0000F90CF910C94CF19CF938732B0F58E31BD -:104DF00008F04AC28E3009F4C4C100F5873009F4C6 -:104E00008DC1A8F4863009F045C28091C101817F2F -:104E10008E7F8093C1018DE79BE00E94E50786E1CC -:104E20009FE00E94E50781E08093D10175C1883041 -:104E300009F43FC08B3009F46BC12CC2863109F4F0 -:104E4000E6C120F4803109F4B0C124C2893109F4EB -:104E5000C7C18B3109F481C11DC2883309F458C11F -:104E600050F4893209F412C2853309F40FC2873233 -:104E700009F40CC20FC2833409F408C228F48A333F -:104E800008F408C2895303C2883409F003C20E949F -:104E9000CF198AEF9EE00E94E5079FEF23ED80E3A4 -:104EA000915020408040E1F700C000000E94222184 -:104EB00033C18AE19FE00E94E5078CE79EE00E94F3 -:104EC000E5070E94DC221F928F9389E79EE09F9363 -:104ED0008F930E947E0887E79EE00E94E5070E946C -:104EE000D322C82F84E69EE00E94E5071F92CF934D -:104EF0008FE59EE09F938F930E947E088DE59EE054 -:104F00000E94E50783E59EE00E94E5078C2F8170F3 -:104F10001F928F9380E59EE09F938F930E947E085F -:104F20008EE49EE00E94E50784E49EE00E94E5078F -:104F3000C1FB882780F91F928F9381E49EE09F93A5 -:104F40008F930E947E088FE39EE00E94E50783E333 -:104F50009EE00E94E507C2FB882780F91F928F938D -:104F600080E39EE09F938F930E947E088EE29EE0F6 -:104F70000E94E50785E29EE00E94E507C3FBCC277F -:104F8000C0F91F92CF9382E29EE09F938F930E947D -:104F90007E0880E29EE00E94E5070E94E522C82F7D -:104FA0008CE09EE00E94E5071F92CF9387E09EE091 -:104FB0009F938F930E947E0885E09EE00E94E50704 -:104FC0008CEE9DE00E94E5078C2F81701F928F93DD -:104FD00089EE9DE09F938F930E947E088DB79EB7C8 -:104FE00080960FB6F8949EBF0FBE8DBF87EE9DE0F2 -:104FF0000E94E50780ED9DE00E94E507C1FB882740 -:1050000080F91F928F938DEC9DE09F938F930E9468 -:105010007E088BEC9DE00E94E50789EB9DE00E94F5 -:10502000E507C2FB882780F91F928F9386EB9DE0EE -:105030009F938F930E947E0884EB9DE00E94E5077A -:1050400082EA9DE00E94E507C3FB882780F91F9252 -:105050008F938FE99DE09F938F930E947E088DE947 -:105060009DE00E94E50783E99DE00E94E507C4FBFF -:10507000882780F91F928F9380E99DE09F938F93FB -:105080000E947E088EE89DE00E94E5078CE79DE087 -:105090000E94E507C5FB882780F91F928F9389E757 -:1050A0009DE09F938F930E947E0887E79DE00E947A -:1050B000E5078BE59DE00E94E507C6FB882780F9A0 -:1050C0001F928F9388E59DE09F938F930E947E08A7 -:1050D00086E59DE00E94E5078EE49DE00E94E507DD -:1050E000C7FBCC27C0F91F92CF938BE49DE09F9321 -:1050F0008F930E947E0889E49DE00E94E5078DB7AA -:105100009EB74C960FB6F8949EBF0FBE8DBF04C0DD -:1051100084EA9BE00E94E507C1E0C1C08091C10123 -:10512000C82FC095C170C0FB80F98093C101CC230A -:1051300049F08EEE9EE00E94E5078091C1018660F5 -:10514000886048C081EE9EE00E94E5078091C10121 -:10515000897F877F8093C101DFCF9091C10191FB4F -:10516000CC27C0F981E0C827892FC0FB81F9809343 -:10517000C101CC2319F084ED9EE027C086EC9EE0AF -:10518000C9CF9091C10192FBCC27C0F981E0C8271B -:10519000892FC0FB82F98093C101CC2319F087EBE2 -:1051A0009EE013C087EA9EE0B5CF9091C10193FBCA -:1051B000CC27C0F981E0C827892FC0FB83F98093F1 -:1051C000C101CC2351F08BE99EE00E94E50780915C -:1051D000C10181608093C10162C08EE89EE09ACFD8 -:1051E0008EE69BE00E94E50786E49BE00E94E507CF -:1051F00080E19BE00E94E50783EE9AE00E94E507CC -:1052000084EA9AE00E94E50789E79AE083CF8BE67B -:105210009AE00E94E5070E9422151F928F9381E574 -:105220009AE09F938F930E947E0880910A011F92BB -:105230008F938AE39AE09F938F930E947E088091D8 -:1052400064011F928F9387E29AE09F938F930E944D -:105250007E088091C3019091C401A091C501B091D5 -:10526000C601BF93AF939F938F9383E19AE09F937F -:105270008F930E947E088DB79EB742960FB6F89422 -:105280009EBF0FBE8DBF48CF8D5101C080E00E94F0 -:10529000D42642CF8CE89EE00E94E507C0E08C2F28 -:1052A000CF91089580E0089580E00895CF93C82FAE -:1052B0008091D101813071F020F0823009F44BC02F -:1052C00042C1E0910B01F0910C018081823209F022 -:1052D0003CC107C0E0910B01F0910C01808182324A -:1052E00061F48C2F0E945229811104C08C2F0E94DE -:1052F000F4262FC081E090E02CC08C2F0E9454290E -:10530000811126C0C431E1F070F4CB3081F0C0319E -:10531000D1F40E949C2586E09AE00E94E50782E095 -:105320008093D10115C0C93259F0C83361F48DE7BB -:105330009BE00E94E5078AE09AE00E94E50708C02A -:105340001092D10104C184E09AE00E94E507FFC0F9 -:1053500081E08170FEC0C43228F5CE3108F0C1C0B2 -:10536000CB30A1F1D0F4C73009F0D3C08EE18093E7 -:10537000120182E3809311018AE08093100184E19D -:1053800080930F0188E080930E0188E280930D01E5 -:105390008AEA98E00E94E507BFC0C33149F1C431F1 -:1053A000C1F0B7C0CB3409F4A9C028F4C93289F0E0 -:1053B000C83361F0AEC0C13509F49EC0C23509F4EE -:1053C00099C0CE3409F0A5C06AE09EC00E949C2519 -:1053D000A3C08091D001882319F01092D0019CC005 -:1053E00087EB98E00E94E50781E08093D101B1C08E -:1053F00081E998E00E94E5078FE798E00E94E507C1 -:10540000809112011F928F938CE798E09F938F9366 -:105410000E947E088AE798E00E94E50788E698E007 -:105420000E94E507809111011F928F9385E698E015 -:105430009F938F930E947E0883E698E00E94E50781 -:1054400084E598E00E94E507809110011F928F93F8 -:1054500081E598E09F938F930E947E088FE498E007 -:105460000E94E5078EE398E00E94E50780910F0116 -:105470001F928F938BE398E09F938F930E947E08F7 -:1054800089E398E00E94E50784E298E00E94E5073E -:1054900080910E011F928F9381E298E09F938F93EA -:1054A0000E947E088FE198E00E94E50788E098E07E -:1054B0000E94E50780910D011F928F9385E098E08F -:1054C0009F938F930E947E0883E098E00E94E507F7 -:1054D0008DB79EB748960FB6F8949EBF0FBE8DBF8E -:1054E0001BC0CE51EC2FF0E0E95DFE4F8081809330 -:1054F000D00112C061E003C061E006C06AE08091A3 -:10550000D0010E94B32508C08091D0010E94562688 -:1055100003C088EA98E013C08091D001882369F025 -:105520001F928F9382EA98E09F938F930E947E0848 -:105530000F900F900F900F9004C08FE998E00E9499 -:10554000E50781E006C01092D10180E002C080E052 -:1055500000CFCF91089504D06894B1118DC0089503 -:1055600070D088F09F5790F0B92F9927B751A0F0CD -:10557000D1F0660F771F881F991F1AF0BA95C9F7E7 -:1055800012C0B13081F077D0B1E0089574C0672FB8 -:10559000782F8827B85F39F0B93FCCF38695779597 -:1055A0006795B395D9F73EF4909580957095619580 -:1055B0007F4F8F4F9F4F0895E89409C097FB3EF4AB -:1055C00090958095709561957F4F8F4F9F4F992350 -:1055D000A9F0F92F96E9BB279395F69587957795CE -:1055E0006795B795F111F8CFFAF4BB0F11F460FF8E -:1055F0001BC06F5F7F4F8F4F9F4F16C0882311F0E6 -:1056000096E911C0772321F09EE8872F762F05C0F9 -:10561000662371F096E8862F70E060E02AF09A9594 -:10562000660F771F881FDAF7880F9695879597F989 -:10563000089557FD9058440F551F59F05F3F71F082 -:105640004795880F97FB991F61F09F3F79F08795E9 -:105650000895121613061406551FF2CF4695F1DF72 -:1056600008C0161617061806991FF1CF8695710502 -:10567000610508940895E894BB2766277727CB0136 -:1056800097F908950BD078C069D028F06ED018F043 -:10569000952309F05AC05FC01124EECFCADFA0F3F2 -:1056A000959FD1F3950F50E0551F629FF001729FB7 -:1056B000BB27F00DB11D639FAA27F00DB11DAA1FD6 -:1056C000649F6627B00DA11D661F829F2227B00D23 -:1056D000A11D621F739FB00DA11D621F839FA00DAE -:1056E000611D221F749F3327A00D611D231F849FFE -:1056F000600D211D822F762F6A2F11249F57504055 -:105700008AF0E1F088234AF0EE0FFF1FBB1F661FEF -:10571000771F881F91505040A9F79E3F510570F0A8 -:1057200014C0AACF5F3FECF3983EDCF386957795E3 -:105730006795B795F795E7959F5FC1F7FE2B880FA3 -:10574000911D9695879597F9089597F99F6780E839 -:1057500070E060E008959FEF80EC089500240A94C3 -:105760001616170618060906089500240A9412163C -:105770001306140605060895092E0394000C11F46F -:10578000882352F0BB0F40F4BF2B11F460FF04C01C -:105790006F5F7F4F8F4F9F4F0895991B79E004C033 -:1057A000991F961708F0961B881F7A95C9F7809560 -:1057B000089597FB072E16F4009407D077FD09D0C3 -:1057C0000E94F32B07FC05D03EF4909581959F4FE6 -:1057D0000895709561957F4F0895EE0FFF1F059016 -:1057E000F491E02D0994AA1BBB1B51E107C0AA1F2D -:1057F000BB1FA617B70710F0A61BB70B881F991F72 -:105800005A95A9F780959095BC01CD010895F99915 -:10581000FECF92BD81BDF89A992780B50895A8E181 -:10582000B0E042E050E00C942F2C262FF999FECFE7 -:1058300092BD81BDF89A019700B4021639F01FBAE3 -:1058400020BD0FB6F894FA9AF99A0FBE0895019602 -:10585000272F0E94162C0C94152CDC01CB01FC0187 -:10586000F999FECF06C0F2BDE1BDF89A319600B4B9 -:0E5870000D9241505040B8F70895F894FFCFC4 -:10587E00880D790E560E220EEE0D01B60128081473 -:10588E000A321E3F4D36203106E405AE058E051A4E -:10589E000533054C056505010203040506070809D5 -:0258AE000000F8 -:00000001FF diff --git a/keyboards/hhkb/readme.md b/keyboards/hhkb/readme.md new file mode 100644 index 000000000..39d49b32a --- /dev/null +++ b/keyboards/hhkb/readme.md @@ -0,0 +1,180 @@ +hhkb_qmk keyboard firmware +====================== + +## Quantum MK Firmware + +You have access to a bunch of goodies! Check out the Makefile to enable/disable some of the features. Uncomment the `#` to enable them. Setting them to `no` does nothing and will only confuse future you. + + BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality + MIDI_ENABLE = yes # MIDI controls + # UNICODE_ENABLE = yes # Unicode support - this is commented out, just as an example. You have to use #, not // + BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID + +## Quick aliases to common actions + +Your keymap can include shortcuts to common operations (called "function actions" in tmk). + +### Switching and toggling layers + +`MO(layer)` - momentary switch to *layer*. As soon as you let go of the key, the layer is deactivated and you pop back out to the previous layer. When you apply this to a key, that same key must be set as `KC_TRNS` on the destination layer. Otherwise, you won't make it back to the original layer when you release the key (and you'll get a keycode sent). You can only switch to layers *above* your current layer. If you're on layer 0 and you use `MO(1)`, that will switch to layer 1 just fine. But if you include `MO(3)` on layer 5, that won't do anything for you -- because layer 3 is lower than layer 5 on the stack. + +`LT(layer, kc)` - momentary switch to *layer* when held, and *kc* when tapped. Like `MO()`, this only works upwards in the layer stack (`layer` must be higher than the current layer). + +`TG(layer)` - toggles a layer on or off. As with `MO()`, you should set this key as `KC_TRNS` in the destination layer so that tapping it again actually toggles back to the original layer. Only works upwards in the layer stack. + +### Fun with modifier keys + +* `LSFT(kc)` - applies left Shift to *kc* (keycode) - `S(kc)` is an alias +* `RSFT(kc)` - applies right Shift to *kc* +* `LCTL(kc)` - applies left Control to *kc* +* `RCTL(kc)` - applies right Control to *kc* +* `LALT(kc)` - applies left Alt to *kc* +* `RALT(kc)` - applies right Alt to *kc* +* `LGUI(kc)` - applies left GUI (command/win) to *kc* +* `RGUI(kc)` - applies right GUI (command/win) to *kc* + +You can also chain these, like this: + + LALT(LCTL(KC_DEL)) -- this makes a key that sends Alt, Control, and Delete in a single keypress. + +The following shortcuts automatically add `LSFT()` to keycodes to get commonly used symbols. Their long names are also available and documented in `/quantum/keymap_common.h`. + + KC_TILD ~ + KC_EXLM ! + KC_AT @ + KC_HASH # + KC_DLR $ + KC_PERC % + KC_CIRC ^ + KC_AMPR & + KC_ASTR * + KC_LPRN ( + KC_RPRN ) + KC_UNDS _ + KC_PLUS + + KC_LCBR { + KC_RCBR } + KC_PIPE | + KC_COLN : + +`MT(mod, kc)` - is *mod* (modifier key - MOD_LCTL, MOD_LSFT) when held, and *kc* when tapped. In other words, you can have a key that sends Esc (or the letter O or whatever) when you tap it, but works as a Control key or a Shift key when you hold it down. + +These are the values you can use for the `mod` in `MT()` (right-hand modifiers are not available): + + * MOD_LCTL + * MOD_LSFT + * MOD_LALT + * MOD_LGUI + +These can also be combined like `MOD_LCTL | MOD_LSFT` e.g. `MT(MOD_LCTL | MOD_LSFT, KC_ESC)` which would activate Control and Shift when held, and send Escape when tapped. + +We've added shortcuts to make common modifier/tap (mod-tap) mappings more compact: + + * `CTL_T(kc)` - is LCTL when held and *kc* when tapped + * `SFT_T(kc)` - is LSFT when held and *kc* when tapped + * `ALT_T(kc)` - is LALT when held and *kc* when tapped + * `GUI_T(kc)` - is LGUI when held and *kc* when tapped + * `ALL_T(kc)` - is Hyper (all mods) when held and *kc* when tapped. To read more about what you can do with a Hyper key, see [this blog post by Brett Terpstra](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) + +### Temporarily setting the default layer + +`DF(layer)` - sets default layer to *layer*. The default layer is the one at the "bottom" of the layer stack - the ultimate fallback layer. This currently does not persist over power loss. When you plug the keyboard back in, layer 0 will always be the default. It is theoretically possible to work around that, but that's not what `DF` does. + +### Remember: These are just aliases + +These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk ACTION_* functions, please see the [TMK documentation](https://github.com/jackhumbert/qmk_firmware/blob/master/tmk_core/doc/keymap.md#2-action). + +Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - the benefit here is being able to use more than 32 function actions (up to 4096), if you happen to need them. + +## Macro shortcuts: Send a whole string when pressing just one key + +Instead of using the `ACTION_MACRO` function, you can simply use `M(n)` to access macro *n* - *n* will get passed into the `action_get_macro` as the `id`, and you can use a switch statement to trigger it. This gets called on the keydown and keyup, so you'll need to use an if statement testing `record->event.pressed` (see keymap_default.c). + +```c +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // this is the function signature -- just copy/paste it into your keymap file as it is. +{ + switch(id) { + case 0: // this would trigger when you hit a key mapped as M(0) + if (record->event.pressed) { + return MACRO( I(255), T(H), T(E), T(L), T(L), W(255), T(O), END ); // this sends the string 'hello' when the macro executes + } + break; + } + return MACRO_NONE; +}; +``` +A macro can include the following commands: + +* I() change interval of stroke in milliseconds. +* D() press key. +* U() release key. +* T() type key(press and release). +* W() wait (milliseconds). +* END end mark. + +So above you can see the stroke interval changed to 255ms between each keystroke, then a bunch of keys being typed, waits a while, then the macro ends. + +Note: Using macros to have your keyboard send passwords for you is a bad idea. + +### Additional keycode aliases for software-implemented layouts (Colemak, Dvorak, etc) + +Everything is assuming you're in Qwerty (in software) by default, but there is built-in support for using a Colemak or Dvorak layout by including this at the top of your keymap: + + #include "keymap_.h" + +Where is "colemak" or "dvorak". After including this line, you will get access to: + + * `CM_*` for all of the Colemak-equivalent characters + * `DV_*` for all of the Dvorak-equivalent characters + +These implementations assume you're using Colemak or Dvorak on your OS, not on your keyboard - this is referred to as a software-implemented layout. If your computer is in Qwerty and your keymap is in Colemak or Dvorak, this is referred to as a firmware-implemented layout, and you won't need these features. + +To give an example, if you're using software-implemented Colemak, and want to get an `F`, you would use `CM_F` - `KC_F` under these same circumstances would result in `T`. + +## Additional language support + +In `quantum/keymap_extras/`, you'll see various language files - these work the same way as the alternative layout ones do. Most are defined by their two letter country/language code followed by an underscore and a 4-letter abbreviation of its name. `FR_UGRV` which will result in a `ù` when using a software-implemented AZERTY layout. It's currently difficult to send such characters in just the firmware (but it's being worked on - see Unicode support). + +## Unicode support + +You can currently send 4 hex digits with your OS-specific modifier key (RALT for OSX with the "Unicode Hex Input" layout) - this is currently limited to supporting one OS at a time, and requires a recompile for switching. 8 digit hex codes are being worked on. The keycode function is `UC(n)`, where *n* is a 4 digit hexidecimal. Enable from the Makefile. + +## Other firmware shortcut keycodes + +* `RESET` - puts the MCU in DFU mode for flashing new firmware (with `make dfu`) +* `DEBUG` - the firmware into debug mode - you'll need hid_listen to see things +* `BL_ON` - turns the backlight on +* `BL_OFF` - turns the backlight off +* `BL_` - sets the backlight to level *n* +* `BL_INC` - increments the backlight level by one +* `BL_DEC` - decrements the backlight level by one +* `BL_TOGG` - toggles the backlight +* `BL_STEP` - steps through the backlight levels + +Enable the backlight from the Makefile. + +## MIDI functionalty + +This is still a WIP, but check out `quantum/keymap_midi.c` to see what's happening. Enable from the Makefile. + +## Bluetooth functionality + +This requires [some hardware changes](https://www.reddit.com/r/MechanicalKeyboards/comments/3psx0q/the_planck_keyboard_with_bluetooth_guide_and/?ref=search_posts), but can be enabled via the Makefile. The firmware will still output characters via USB, so be aware of this when charging via a computer. It would make sense to have a switch on the Bluefruit to turn it off at will. + +## Building + +Download or clone the whole firmware and navigate to the keyboards/planck folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use `make dfu` to program your PCB once you hit the reset button. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default +To build with the default keymap, simply run `make`. + +### Other Keymaps +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a file in the keymaps folder named `.c` and see keymap document (you can find in top readme.md) and existent keymap files. + +To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: +``` +$ make KEYMAP=[default|jack|] +``` +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboards/jd45/config.h b/keyboards/jd45/config.h index ffedb6a1a..ee989b7b4 100644 --- a/keyboards/jd45/config.h +++ b/keyboards/jd45/config.h @@ -37,6 +37,8 @@ along with this program. If not, see . #define MATRIX_COL_PINS { F4, D7, B5, B6, C6, C7, D4, D6, D5, D0, D1, D2, B0 } #define UNUSED_PINS +#define BACKLIGHT_PIN B7 + /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW diff --git a/keyboards/jd45/jd45.c b/keyboards/jd45/jd45.c index 5437b2bff..00c581047 100644 --- a/keyboards/jd45/jd45.c +++ b/keyboards/jd45/jd45.c @@ -1,81 +1 @@ -#include "jd45.h" - -__attribute__ ((weak)) -void matrix_init_user(void) { - -}; - -__attribute__ ((weak)) -void matrix_scan_user(void) { - -}; - -#define CHANNEL OCR1C - -void backlight_init_ports(void) -{ - - // Setup PB7 as output and output low. - DDRB |= (1<<7); - PORTB &= ~(1<<7); - - // Use full 16-bit resolution. - ICR1 = 0xFFFF; - - // I could write a wall of text here to explain... but TL;DW - // Go read the ATmega32u4 datasheet. - // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on - - // Pin PB7 = OCR1C (Timer 1, Channel C) - // Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0 - // (i.e. start high, go low when counter matches.) - // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0 - // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1 - - TCCR1A = _BV(COM1C1) | _BV(WGM11); // = 0b00001010; - TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; - - backlight_init(); -} - -void backlight_set(uint8_t level) -{ - if ( level == 0 ) - { - // Turn off PWM control on PB7, revert to output low. - TCCR1A &= ~(_BV(COM1C1)); - CHANNEL = 0x0; - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - } - else if ( level == BACKLIGHT_LEVELS ) - { - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - // Turn on PWM control of PB7 - TCCR1A |= _BV(COM1C1); - // Set the brightness - CHANNEL = 0xFFFF; - } - else - { - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - // Turn on PWM control of PB7 - TCCR1A |= _BV(COM1C1); - // Set the brightness - CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); - } -} - -void matrix_init_kb(void) { - #ifdef BACKLIGHT_ENABLE - backlight_init_ports(); - #endif - - matrix_init_user(); -}; - -void matrix_scan_kb(void) { - matrix_scan_user(); -}; +#include "jd45.h" \ No newline at end of file diff --git a/keyboards/jd45/jd45.h b/keyboards/jd45/jd45.h index 1e9de2123..04ac6649e 100644 --- a/keyboards/jd45/jd45.h +++ b/keyboards/jd45/jd45.h @@ -1,13 +1,20 @@ #ifndef JD45_H #define JD45_H -#include "matrix.h" -#include "keymap.h" -#include "backlight.h" -#include -#include +#include "quantum.h" -void matrix_init_user(void); -void matrix_scan_user(void); +/* JD45 keymap definition macro + */ +#define KEYMAP( \ + K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, K13, \ + K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, \ + K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, K37, \ + K38, K39, K40, K41, K42, K43, K44, K45, K46, K47 \ +) { \ + { KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K10, KC_##K11, KC_##K12, KC_##K13 }, \ + { KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_NO }, \ + { KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_NO }, \ + { KC_##K38, KC_##K39, KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_##K43, KC_NO, KC_##K44, KC_##K45, KC_##K46, KC_##K47, KC_NO } \ +} #endif diff --git a/keyboards/jd45/keymaps/default/compiled.hex b/keyboards/jd45/keymaps/default/compiled.hex deleted file mode 100644 index cc20ee3c5..000000000 --- a/keyboards/jd45/keymaps/default/compiled.hex +++ /dev/null @@ -1,1113 +0,0 @@ -:100000000C9480010C94C4010C94C4010C94C401A0 -:100010000C94C4010C94C4010C94C4010C94C4014C -:100020000C94C4010C94C4010C94D40B0C94A60C35 -:100030000C94B2190C94C4010C94C4010C94C40126 -:100040000C94C4010C94C4010C94C4010C94C4011C -:100050000C94C4010C941A1A0C94C4010C94C4019D -:100060000C94C4010C946C0E0C94C4010C94C40147 -:100070000C94C4010C94C4010C94C4010C94C401EC -:100080000C94C4010C94C4010C94C4010C94C401DC -:100090000C94C4010C94C4010C94C4010C94C401CC -:1000A0000C94C4010C94C4010C94C401130D350DBF -:1000B000230E350D230E7A0D9D0D230EF20D050E28 -:1000C0002E112E115D115D119C11BC111213121312 -:1000D000C711121377127712DE12E71212130C13E4 -:1000E0008412841284128412841284128412841260 -:1000F0008412841284128412841284128412841250 -:100100009412A212A912B012BA12290014001A00F5 -:100110000800150017001C0018000C001200130046 -:1001200034002A002B0004001600070009000A0012 -:100130000B000D000E000F00330028000000E1004E -:100140001D001B00060019000500110010003600FC -:1001500037003800E50000004800E000E2004C00F5 -:100160002C0000004C0000005000520051004F00D5 -:1001700000000A034A004400340035000000120366 -:100180006700650065006B006800610063006B003C -:1001900000000403090409027400040100A0FA0924 -:1001A00004000001030101000921110100012240A6 -:1001B000000705810308000A090401000103010288 -:1001C00000092111010001224D00070582030800EA -:1001D0000A090402000103000000092111010001C5 -:1001E0002236000705830308000A090403000203FE -:1001F00000000009211101000122200007058403ED -:100200002000010705040320000112011001000075 -:100210000008EDFE60600100010200010631FF09E7 -:1002200074A1010975150025FF9520750881020943 -:1002300076150025FF952075089102C005010980FB -:10024000A101850216010026B7001A01002AB70095 -:10025000751095018100C0050C0901A101850316E7 -:100260000100269C021A01002A9C0275109501814A -:1002700000C005010902A1010901A1000509190138 -:100280002905150025019505750181029501750364 -:1002900081010501093009311581257F9502750815 -:1002A000810609381581257F950175088106050CA1 -:1002B0000A38021581257F950175088106C0C005A1 -:1002C000010906A101050719E029E7150025019597 -:1002D0000875018102950175088101050819012938 -:1002E00005950575019102950175039101050719A1 -:1002F0000029FF150026FF00950675088100C00043 -:1003000011241FBECFEFDAE0DEBFCDBF04B603FE7F -:1003100024C08091ED029091EE02A091EF02B09185 -:10032000F0028730904BA740B04BB9F41092ED0229 -:100330001092EE021092EF021092F00214BE84B7F7 -:10034000877F84BF88E10FB6F89480936000109295 -:1003500060000FBEE0E0F8E3099511E0A0E0B1E035 -:10036000E8E2F5E402C005900D92A434B107D9F794 -:1003700012E0A4E4B1E001C01D92AD3EB107E1F787 -:100380000E9443090C9492220C9400000895089551 -:10039000279A2F988FEF9FEF909387008093860086 -:1003A0008AE08093800089E1809381000C94692029 -:1003B000282F81110BC080918000877F809380005F -:1003C00010928D0010928C002F9808952F98809194 -:1003D0008000886080938000233019F48FEF9FEFB6 -:1003E0000FC083E090E0821B9109880F991F2FEFC7 -:1003F0003FEFA90102C0569547958A95E2F7CA01D9 -:1004000090938D0080938C0008950E94C8010C94F5 -:10041000C6010C94C70181E0089581E008950C9411 -:100420000D0208950F931F93CF93DF938C01FC016E -:10043000C081D181CE010E947618BE010E9446057E -:10044000EC01B8010E940F02882309F470C1F80181 -:100450008281882309F45BC080914F0181111FC004 -:10046000C431F0E7DF0709F00AC10E94110281E000 -:1004700080934F010E94E41990934E0180934D01A7 -:1004800010924601109248011092470110924A01C1 -:100490001092490110924C0110924B0148C1809179 -:1004A0004D0190914E010E94F019883C910570F425 -:1004B00080914601E82FF0E0EE0FFF1FE95BFE4F51 -:1004C000D183C0838F5F8093460131C1C43120E75F -:1004D000D20708F024C1C23080E7D80710F5C11553 -:1004E00090E7D90709F0DAC0F8018281882309F47E -:1004F000BFC00E947D13FFEF24E38CE0F150204049 -:100500008040E1F700C000000E943F1A10C1C431D2 -:10051000F0E7DF0708F0CFC0C23020E7D20708F4C9 -:100520009BC0F8018281882309F4A2C00E94F11BBC -:10053000811102C00E94D21B0E940E1C90E0909379 -:10054000DE028093DD02C230F0E7DF0721F4809104 -:10055000DD0281607AC0C33020E7D20721F48091A8 -:10056000DD02826072C0C43080E7D80721F4809138 -:10057000DD0284606AC0C53090E7D90719F4809124 -:10058000DD0227C0C630E0E7DE0721F48091DD02FE -:1005900080615BC0C730F0E7DF0721F48091DD02A6 -:1005A000806253C0C83020E7D20721F48091DD0279 -:1005B00080644BC0C93080E7D80721F48091DD0208 -:1005C000806843C0CA3090E7D90729F48091DD02E2 -:1005D000846088603AC0CB30E0E7DE0721F4809188 -:1005E000DD028E7F32C0CC30F0E7DF0721F480914E -:1005F000DD028D7F2AC0CD3020E7D20721F4809123 -:10060000DD028B7F22C0CE3080E7D80719F48091BD -:10061000DD021AC08091DD02CF3090E7D90711F4D6 -:100620008F7E13C0C031E0E7DE0711F48F7D0DC06F -:10063000C131F0E7DF0711F48F7B07C0C231D0472B -:1006400011F48F7702C08B7F877F8093DD028091CA -:10065000DD020E94121C6BC0C11580E7D80741F073 -:10066000C130D047F1F081E080934401809345018F -:10067000C801DF91CF911F910F910C940B02C431EF -:1006800020E7D20708F04BC0C23080E7D80708F057 -:1006900048CFC11590E7D90709F42BCFC130D04717 -:1006A00011F7F8018281882319F38091CC028160CF -:1006B0008093CC023CC0C333E0E7DE07A1F4F8012D -:1006C0008281882321F01092440182E017C080913A -:1006D0004401811106C086E20E94D20F86E20E9488 -:1006E0009A1082E019C0C433D04709F0BCCFF8019A -:1006F0008281882331F01092450180E20E94E91046 -:1007000016C080914501811106C087E20E94D20F78 -:1007100087E20E949A1080E20E94F01008C0C33362 -:10072000F0E7DF0761F2C433D04709F39CCF80E0E4 -:10073000DF91CF911F910F9108950C9405020C94B5 -:1007400009022DE0729FF001112434E3839FE00D34 -:10075000F11D1124E60FF11DEE0FFF1FE65FFE4FA6 -:10076000859194910E945805811540E5940708F001 -:1007700047C0811520E4920708F013C1883E910517 -:1007800020F5803E910508F07CC1883A910578F407 -:10079000853A910508F0A5C08130910509F471C131 -:1007A00008F42EC18430910508F06BC129C18B3B40 -:1007B000910508F4A1C0803C910508F421C1FC0119 -:1007C000EE0FFF1FE657F040E6C0811530E29307B9 -:1007D00058F4811541E0940708F053C1803F91051A -:1007E00008F40EC190650895811520E3920708F082 -:1007F000D5C0FC01FF70EE0FFF1FE65FFE4FCBC0C0 -:10080000811535E5930708F043C0811544E5940749 -:1008100008F0DEC0811522E5920708F5811531E563 -:10082000930708F0C1C0482F437021E030E002C0B8 -:10083000220F331F4A95E2F73C68AC0164E05695FD -:1008400047956A95E1F74370342B8F7086958695AE -:1008500040E2849FC0011124822B932B0895282FFE -:1008600026952695AC01437055278115934508F0D0 -:10087000A0C080E2289F9001112481E090E002C096 -:10088000880F991F4A95E2F7822B932B9C68089555 -:100890008F3240E7940790F48F3120E7920708F0F9 -:1008A000A2C0811536E5930708F497C09C01305625 -:1008B0002115304108F0A4C09F7093C0803320E719 -:1008C000920709F497C008F492C0813340E7940777 -:1008D00009F493C08233904709F092C080E093ED11 -:1008E0000895853A910509F48EC0863A910509F07C -:1008F0008DC082E890E40895883A910509F489C092 -:10090000893A910509F488C08A3A910509F487C0AB -:100910008B3A910509F486C08C3A910509F485C09B -:100920008D3A910509F484C0803B910509F483C098 -:100930008E3A910509F482C08F3A910509F481C07D -:10094000813B910509F480C0823B910509F47FC089 -:10095000833B910509F47EC0843B910509F47DC079 -:10096000853B910509F47CC0863B910509F47BC069 -:10097000873B910509F47AC0883B910509F479C059 -:10098000893B910509F478C08A3B910509F477C049 -:1009900080E094E408958591949108959927906C4E -:1009A00008959F70906A0895982F8827816F906AA4 -:1009B000089590E2299F9001112481E090E002C007 -:1009C000880F991F4A95E2F7822B932B9A68089516 -:1009D000982F8827846F906A08958F719927982F90 -:1009E0008827906208958F519047946D089580E014 -:1009F00091ED089580E090ED089580E092ED0895E6 -:100A000080E090E0089581E890E4089583E890E420 -:100A1000089582EE94E4089589EE94E408958AEEB0 -:100A200094E4089585EB94E4089586EB94E40895A6 -:100A300087EB94E408958CEC94E408958DEC94E4B1 -:100A4000089583E895E408958AE895E4089582E995 -:100A500095E4089584E995E4089581E296E4089583 -:100A600083E296E4089584E296E4089585E296E4AC -:100A7000089586E296E4089587E296E408958AE26E -:100A800096E4089580E090E0089508959DE0799FB0 -:100A9000F001112494E3899FE00DF11D1124E60F6C -:100AA000F11DEE0FFF1FE65FFE4F859194910895B3 -:100AB0008238910549F1B0F48133910509F458C0A9 -:100AC00048F48932910509F44EC08A32910509F43F -:100AD00054C008958533910509F440C089339105C8 -:100AE00099F00895833E910529F138F4803E9105EF -:100AF00091F0823E9105A1F00895863E9105F9F0AE -:100B0000873E910531F108952091DD0220FD3AC024 -:100B100021FD38C008958091DD0280FD35C032C0CE -:100B20008091DD0282FF32C08091DD0284FD30C001 -:100B300083EE39C08091DD0282FD28C0F5CF80911F -:100B4000DD0283FF27C08091DD0284FD21C087EE96 -:100B50002AC08091DD0283FD1DC0F5CF8091DD02AA -:100B600085FD1AC01BC08091DD0285FD17C014C031 -:100B70008091DD0286FD14C015C08091DD0286FDE6 -:100B800011C00EC080EE0FC089E30DC082EE0BC015 -:100B900080E009C086EE07C089E205C085E303C096 -:100BA0008AE201C081E390E0089508950C94D50590 -:100BB000E82FF0E0EF5DFE4F8081E82FEF70F0E06E -:100BC00082958F7021E030E0A90102C0440F551FCB -:100BD0008A95E2F740A308950F931F93CF93DF9375 -:100BE00085B7806885BF85B7806885BFC3E0D0E0E2 -:100BF00001E010E0FE01EF5DFE4F8081E82FEF7015 -:100C0000F0E021A182958F70A80102C0440F551F0A -:100C10008A95E2F7CA01822B81A38C2F0E94D80506 -:100C2000219740F78CE090E061E070E0FC01EC5E21 -:100C3000FE4F2081E22FEF70F0E042A122952F704D -:100C4000DB0102C0AA0FBB1F2A95E2F79D01242BEE -:100C500022A3019758F7DF91CF911F910F910C9428 -:100C60009D03EF92FF920F931F93CF93DF9308E5BD -:100C700011E0C3E0EE24E394F12CD5E08C2F0E9428 -:100C8000D8058CE090E040E050E0FC01EC5EFE4FC7 -:100C90006081E62FEF70F0E020A130E062956F7088 -:100CA00002C0359527956A95E2F720FD09C09701A6 -:100CB000082E02C0220F331F0A94E2F7422B532B57 -:100CC000019718F7F801929182918F018417950787 -:100CD00021F051834083D09300018C2F0E94D805CE -:100CE000C15060F68091000187FD2CC08150809337 -:100CF00000018F3F39F08FE99FE00197F1F700C0C5 -:100D0000000020C0809156019091570190935F019F -:100D100080935E01809154019091550190935D0103 -:100D200080935C01809152019091530190935B01FB -:100D300080935A01809150019091510190935901F3 -:100D4000809358010E949F0381E0DF91CF911F9112 -:100D50000F91FF90EF900895E82FF0E0EE0FFF1F46 -:100D6000E85AFE4F808191810895089580916C0129 -:100D700008950F931F93CF93DF9300D000D01F925D -:100D8000CDB7DEB79C018091610190916201281777 -:100D9000390709F493C03093620120936101223E28 -:100DA0003105F1F1293E310559F12A3E310559F15C -:100DB000253B310559F1263B310551F1273B3105E2 -:100DC00051F12C3C310561F12D3C310531F12338D5 -:100DD00081E0380729F12A3891E0390709F12239F1 -:100DE00081E03807E9F0243991E03907C9F0213270 -:100DF00082E03807B9F0233292E0390789F415C050 -:100E000090E040E114C090E040E211C092E001C0E7 -:100E100094E040E00CC090E1FCCF90E040E407C0DB -:100E200090E0F7CF90E044E002C090E041E089011B -:100E30008DEF4C839D830E94560E80E00E94560EDB -:100E400082E00E94560E4C81842F0E94560E9D8196 -:100E5000892F0E94560E80E00E94560E80E00E946C -:100E6000560E80E00E94560E80E00E94560E809141 -:100E7000E302843019F583E089831B830A8380931E -:100E8000E9008FEF9091E800815095FD06C095ED47 -:100E90009A95F1F700008111F5CF8091E80085FF68 -:100EA0000DC040E050E063E070E0CE0101960E948A -:100EB000C4098091E8008E778093E8000F900F902E -:100EC0000F900F900F90DF91CF911F910F91089588 -:100ED000CF93DF9300D01F92CDB7DEB72091E3020E -:100EE000243021F522E029839B838A8383E0809349 -:100EF000E9008FEF9091E800815095FD06C095EDD7 -:100F00009A95F1F700008111F5CF8091E80085FFF7 -:100F10000DC040E050E063E070E0CE0101960E9419 -:100F2000C4098091E8008E778093E8000F900F90BD -:100F30000F90DF91CF910895CF93DF93EC018DEF68 -:100F40000E94560E80E00E94560E83E00E94560ECC -:100F500088810E94560E89810E94560E8A810E94C5 -:100F6000560E8B810E94560E8C810E94560E80E098 -:100F70000E94560E8091E3028430F9F482E080935F -:100F8000E9008FEF9091E800815095FD06C095ED46 -:100F90009A95F1F700008111F5CF8091E80085FF67 -:100FA0000CC040E050E065E070E0CE010E94C40952 -:100FB0008091E8008E778093E800DF91CF910895CB -:100FC000EF92FF920F931F93CF93DF93EC018DEF7E -:100FD0000E94560E8E017E0188E0E80EF11CF80199 -:100FE00081918F010E94560E0E151F05C1F7809149 -:100FF000E302843039F581E08093E9008FEF90912E -:10100000E800815095FD06C0F5EDFA95F1F7000076 -:101010008111F5CF8091E80085FF14C040E050E0D9 -:1010200068E070E0CE010E94C4098091E8008E77EC -:101030008093E80088E0FE01A4E6B1E001900D9203 -:101040008A95E1F7DF91CF911F910F91FF90EF907B -:1010500008958091E202811109C00E94590B0E94FB -:10106000B60B8091E20084608093E20008951092B4 -:10107000E2020895089508950C94A7192091600143 -:101080002F5F822F62E30E942222992319F020937E -:10109000600108951092600180916301882371F1CD -:1010A0008091E302843041F58091E9008F702091B6 -:1010B000EC00922F917020FD90E8892B94E09093A2 -:1010C000E9009091EB0090FF14C09091EE0097FF23 -:1010D00010C09091E80095FF03C01092F100F9CF85 -:1010E0009091E80090FF05C09091E8009E77909362 -:1010F000E8008F708093E90010926301089542E048 -:1011000061EC81E00E94D30A42E061EC82E00E943F -:10111000D30A42E061EC83E00E94D30A42E261EC30 -:1011200084E00C94D30A8091E502833009F453C023 -:1011300030F4813071F0823009F48CC008958A3027 -:1011400009F478C08B3009F45EC0893009F09AC088 -:1011500020C08091E402813A09F094C08091E800B7 -:10116000877F8093E8008091E8029091E902892BC3 -:1011700021F468E084E691E003C060E080E090E064 -:1011800070E00E940F0A8091E8008B778093E8005E -:1011900008958091E402813209F074C08091E802E0 -:1011A0009091E902892B09F06DC08091E800877F5A -:1011B0008093E8008091E80082FD05C08091E30201 -:1011C0008111F8CF5FC08091F10080936C01809114 -:1011D000E8008B7753C08091E402813A09F052C055 -:1011E0008091E8029091E902892B09F04BC080912F -:1011F000E800877F8093E8008091E80080FFFCCFC3 -:1012000080910B0136C08091E4028132D9F5809142 -:10121000E8029091E902892BA9F58091E800877F87 -:101220008093E8000E94080B8091E60280930B01F6 -:101230000C947D138091E402813221F58091E800C5 -:10124000877F8093E8000E94080B8091E7028093DB -:101250006D0108958091E402813AA1F48091E80043 -:10126000877F8093E8008091E80080FFFCCF809129 -:101270006D018093F1008091E8008E778093E80003 -:101280000C94080B089584B7877F84BF88E10FB65C -:10129000F89480936000109260000FBE80E8809305 -:1012A0006100109261000E94EA0E0E94590B0E9498 -:1012B000B60B8091E20084608093E20078940E94F3 -:1012C000580E0E943B0E0E94EC0E81E091E00E94BD -:1012D000960E0E94F40EFDCF292F332723303105BF -:1012E000C9F064F42130310581F02230310509F074 -:1012F00043C084E790E026E931E042C02132310565 -:10130000F1F02232310541F137C082E190E02AE06C -:1013100032E036C099278130910541F08230910545 -:1013200041F0892B49F5E2E9F1E005C0EEE7F1E093 -:1013300002C0E2E7F1E0849190E09F0121C06430B7 -:10134000D8F4E62FF0E0EE0FFF1FEF5CFE4F208198 -:10135000318189E090E014C0643070F470E0FB01EA -:10136000EE0FFF1FE75DFE4F20813181FB01EB5D3A -:10137000FE4F808190E004C080E090E020E030E00B -:10138000FA01318320830895CF92DF92EF92FF928A -:101390000F931F93CF93DF93EC018B016A010E949F -:1013A000270B811133C0C114D10439F0F6018081BB -:1013B0009181081B190BC80FD91FE12CF12C0115C5 -:1013C000110519F18091E80085FD16C08091E800B3 -:1013D0008E778093E800C114D10449F0F601808132 -:1013E0009181E80EF91EF182E08285E00FC00E9433 -:1013F000270B882321F30AC089918093F1000150C3 -:101400001109FFEFEF1AFF0ADACF80E0DF91CF91E9 -:101410001F910F91FF90EF90DF90CF900895209152 -:10142000EA023091EB022617370748F06115710583 -:1014300039F42091E8002E772093E80001C0B9012B -:1014400040E061157105A9F12091E302222309F41E -:1014500043C0253009F442C02091E80023FD40C07C -:101460002091E80022FD32C02091E80020FFE9CF62 -:101470004091F3002091F20030E0342BFC01CF01C9 -:101480006115710559F02830310540F48191809340 -:10149000F100615071092F5F3F4FF1CF41E02830DB -:1014A000310509F040E02091E8002E772093E80014 -:1014B000C8CF4111C9CF0AC08091E302882361F0EF -:1014C000853061F08091E80083FD0AC08091E800DA -:1014D00082FFF2CF80E0089582E0089583E00895CE -:1014E00081E008952091EA023091EB022617370738 -:1014F00048F06115710539F42091E8002E772093AA -:10150000E80001C0B901FC0120E06115710591F10D -:101510008091E302882309F440C0853009F43FC07C -:101520008091E80083FD3DC08091E80082FD2FC0DE -:101530008091E80080FFE9CF2091F3008091F200D4 -:1015400090E0922B6115710559F08830910540F4B7 -:1015500024912093F1003196615071090196F2CFE8 -:1015600021E0089709F020E08091E8008E778093D1 -:10157000E800CBCF2111CCCF0AC08091E3028823B1 -:1015800061F0853061F08091E80083FD0AC08091B0 -:10159000E80082FFF2CF80E0089582E0089583E0C2 -:1015A000089581E00895982F973058F59093E900B9 -:1015B000981739F07091EC002091ED005091F000F7 -:1015C00003C0242F762F50E021FF19C03091EB008B -:1015D0003E7F3093EB003091ED003D7F3093ED0086 -:1015E0003091EB0031603093EB007093EC0020936E -:1015F000ED005093F0002091EE0027FF07C09F5FA1 -:10160000D3CF8F708093E90081E0089580E0089542 -:101610008091E40287FF11C08091E80082FD05C03F -:101620008091E3028111F8CF11C08091E8008B779F -:101630000BC08091E302882349F08091E80080FF8D -:10164000F8CF8091E8008E778093E800089520918C -:10165000E4003091E50095E64091EC00842F817024 -:1016600040FF22C08091E80080FD1CC08091E30211 -:10167000882391F0853091F08091EB0085FD10C0BA -:101680004091E4005091E5004217530729F39A0175 -:10169000915011F784E0089582E0089583E0089561 -:1016A00081E0089580E008954091E80042FFDECF98 -:1016B00008950E94C70B0E94CF0BE0EEF0E08081FE -:1016C00081608083E8EDF0E080818F77808319BCB2 -:1016D000A7EDB0E08C918E7F8C9380818F7E80838C -:1016E0001092E20208950F931F93CF93DF930E940D -:1016F000C70B0E94CF0BC8EDD0E088818F7788831D -:1017000088818068888388818F7D888319BC109246 -:10171000E3021092DF021092E1021092E00200EE6A -:1017200010E0F80180818B7F8083888181608883CD -:1017300042E060E080E00E94D30AE1EEF0E08081C8 -:101740008E7F8083E2EEF0E0808181608083808103 -:1017500088608083F80180818E7F808388818061AA -:101760008883DF91CF911F910F910895E8EDF0E00C -:1017700080818F7E8083E7EDF0E0808181608083CF -:1017800084E082BF81E08093E2020C94730BE8ED69 -:10179000F0E080818E7F80831092E20008951092A5 -:1017A000DA001092E10008951F920F920FB60F9287 -:1017B00011242F933F934F935F936F937F938F9356 -:1017C0009F93AF93BF93EF93FF938091E10082FFCC -:1017D0000BC08091E20082FF07C08091E1008B7F07 -:1017E0008093E1000E943E088091DA0080FF1FC0D4 -:1017F0008091D80080FF1BC08091DA008E7F80939B -:10180000DA008091D90080FF0DC080E189BD82E1BE -:1018100089BD09B400FEFDCF81E08093E3020E9400 -:10182000290805C019BC1092E3020E943708809174 -:10183000E10080FF19C08091E20080FF15C0809117 -:10184000E2008E7F8093E2008091E20080618093CD -:10185000E2008091D80080628093D80019BC85E0B6 -:101860008093E3020E943B088091E10084FF30C036 -:101870008091E20084FF2CC080E189BD82E189BDB6 -:1018800009B400FEFDCF8091D8008F7D8093D800F1 -:101890008091E1008F7E8093E1008091E2008F7E55 -:1018A0008093E2008091E20081608093E200809169 -:1018B000DF02882311F084E007C08091E30087FDF8 -:1018C00002C081E001C083E08093E3020E943C08F3 -:1018D0008091E10083FF29C08091E20083FF25C051 -:1018E0008091E100877F8093E10082E08093E302B2 -:1018F0001092DF028091E1008E7F8093E100809161 -:10190000E2008E7F8093E2008091E200806180930C -:10191000E20042E060E080E00E94D30A8091F000A3 -:1019200088608093F0000E943A08FF91EF91BF9188 -:10193000AF919F918F917F916F915F914F913F9167 -:101940002F910F900FBE0F901F9018951F920F921E -:101950000FB60F9211242F933F934F935F936F9382 -:101960007F938F939F93AF93BF93CF93DF93EF9327 -:10197000FF93C091E900CF708091EC00D82FD17017 -:1019800080FDD0E81092E9008091F000877F80937D -:10199000F00078940E94EA0C1092E9008091F00027 -:1019A00088608093F000CD2BCF70C093E900FF9149 -:1019B000EF91DF91CF91BF91AF919F918F917F91E7 -:1019C0006F915F914F913F912F910F900FBE0F90AC -:1019D0001F9018951F93CF93DF93CDB7DEB7AA97CB -:1019E0000FB6F894DEBF0FBECDBFE4EEF2E088E0A4 -:1019F0008E0F9091F10091938E13FBCF0E9493086C -:101A00008091E80083FF1FC18091E4029091E5027C -:101A1000492F50E04A30510508F015C1FA01EA5A41 -:101A2000FF4F0C944222803881F0823809F00BC1BC -:101A30008091E8028F708093E9008091EB0085FB34 -:101A4000882780F91092E90006C08091E002909109 -:101A5000E102911182609091E800977F9093E800F5 -:101A60008093F1001092F100C8C0282F2D7F09F05B -:101A7000EAC0882319F0823061F0E5C08091E60267 -:101A8000813009F0E0C0933009F080E08093E102FA -:101A90002BC08091E602811127C08091E8028F70EF -:101AA00009F4D1C08093E9002091EB0020FF1CC015 -:101AB000933021F48091EB00806214C09091EB0090 -:101AC00090619093EB0021E030E0A90102C0440F47 -:101AD000551F8A95E2F74093EA001092EA00809140 -:101AE000EB0088608093EB001092E9008091E800A1 -:101AF000877F86C08111A7C01091E6021F77809171 -:101B0000E3008078812B8093E3008091E800877F59 -:101B10008093E8000E94080B8091E80080FFFCCFD2 -:101B20008091E30080688093E300111102C082E09D -:101B300001C083E08093E30286C08058823008F0C1 -:101B400082C08091E6029091E7028C3D53E09507B8 -:101B500079F583E08A838AE289834FB7F894DE01BE -:101B6000139620E03EE051E2E32FF0E0509357005F -:101B7000E49120FF03C0E295EF703F5FEF708E2F7E -:101B800090E0EA3010F0C79601C0C0968D939D9307 -:101B90002F5F243149F74FBF8091E800877F809302 -:101BA000E8006AE270E0CE0101960E940F0A14C0BC -:101BB000AE014F5F5F4F6091E8020E946C09BC016B -:101BC000009709F440C09091E800977F9093E80057 -:101BD00089819A810E94720A8091E8008B778093B4 -:101BE000E80031C0803879F58091E800877F8093E4 -:101BF000E8008091DF028093F1008091E8008E7709 -:101C00008093E8000E94080B1EC081111CC09091B7 -:101C1000E6029230C0F48091E800877F8093E8006C -:101C20009093DF020E94080B8091DF02811106C0B1 -:101C30008091E30087FD02C081E001C084E08093D1 -:101C4000E3020E947F088091E80083FF0AC0809130 -:101C5000E800877F8093E8008091EB0080628093AA -:101C6000EB00AA960FB6F894DEBF0FBECDBFDF9192 -:101C7000CF911F910895CF938091E3028823A1F023 -:101C8000C091E900CF709091EC00892F817090FD98 -:101C900080E8C82B1092E9008091E80083FD0E9443 -:101CA000EA0CCF70C093E900CF9108950C94650EB3 -:101CB00087E68093CC001092CD0088E08093C90025 -:101CC00086E08093CA00789408959091C80095FFAB -:101CD000FCCF8093CE0008951F920F920FB60F9203 -:101CE00011242F933F934F938F939F93EF93FF93E1 -:101CF00080916F0190E09C012F5F3F4F40916E01FA -:101D0000421741F03091CE00FC01E059FE4F308384 -:101D100020936F01FF91EF919F918F914F913F9190 -:101D20002F910F900FBE0F901F90189590937502F2 -:101D3000809374020895E0917402F09175023097D7 -:101D400021F00190F081E02D099480E00895E09168 -:101D50007402F0917502309721F00280F381E02D3A -:101D600009940895E0917402F0917502309721F082 -:101D70000480F581E02D099408952091720230913C -:101D800073028217930771F090937302809372022B -:101D9000E0917402F0917502309721F00680F7818E -:101DA000E02D0994089520917002309171028217FC -:101DB000930771F09093710280937002E091740226 -:101DC000F0917502309721F00084F185E02D09949F -:101DD000089508950C94E90E0E94DB190E94EC0509 -:101DE0000E94A91A0C9469205F926F927F928F9241 -:101DF0009F92AF92BF92CF92DF92EF92FF920F939A -:101E00001F93CF93DF9300D000D01F92CDB7DEB7E2 -:101E10000E9431069FE7C92E92E0D92E03E010E020 -:101E2000AA24A394B12C502E802F0E94AC064C0102 -:101E3000F601729062906F01682679266114710430 -:101E4000A1F40150110978F78FEF89838A831B82EF -:101E50000E94E4198160782F9D838C8349815A8187 -:101E60006B818D810E94A40F38C08091CC0281FDCE -:101E70000E94B5062CE030E07501022E02C0EE0C87 -:101E8000FF1C0A94E2F7C70186219721892B09F1EB -:101E900029835A828E209F2091E0892809F490E0BE -:101EA0009B830E94E4198160782F9D838C834981F4 -:101EB0005A816B818D810E94A40F000F111FF801C0 -:101EC000E958FD4F80819181E826F926F182E08270 -:101ED00004C02150310980F6B4CF0E949A1D1091A0 -:101EE00076020E949B0E1817D1F00E949B0E8093E1 -:101EF00076020F900F900F900F900F90DF91CF917F -:101F00001F910F91FF90EF90DF90CF90BF90AF9017 -:101F10009F908F907F906F905F900C94D6050F905C -:101F20000F900F900F900F90DF91CF911F910F9115 -:101F3000FF90EF90DF90CF90BF90AF909F908F90E9 -:101F40007F906F905F900895CF93DF93CDB7DEB70A -:101F50002B970FB6F894DEBF0FBECDBF4F835887C7 -:101F600069877A878B87DE01119686E0FD011192E1 -:101F70008A95E9F785E0FE01379601900D928A95E2 -:101F8000E1F749815A816B817C818D819E810E941C -:101F90001B162B960FB6F894DEBF0FBECDBFDF9198 -:101FA000CF910895CF93882309F4C2C0C82F8238F7 -:101FB00059F40E949B0E81FDBBC089E30E94F51875 -:101FC0000E94781989E30CC0833879F40E949B0E33 -:101FD00080FDAEC083E50E94F5180E94781983E564 -:101FE0000E941219CF910C947819843859F40E94E8 -:101FF0009B0E82FD9DC087E40E94F5180E9478190F -:1020000087E4EECF8CEF8C0F813A48F48C2F0E943E -:10201000D21F81118DC08C2F0E94F518E3CF80E272 -:102020008C0F883048F4C77081E001C0880FCA95D2 -:10203000EAF70E943119D6CF8BE58C0F833078F404 -:10204000C53A29F0C63A31F083E890E005C081E84E -:1020500090E002C082E890E0CF910C94BD0E88E53C -:102060008C0F833108F064C0C83A39F1C93A41F1A4 -:10207000CA3A49F1CB3A51F1CC3A59F1CD3A61F132 -:10208000C03B69F1CE3A71F1CF3A79F1C13B81F1B0 -:10209000C23B89F1C33B91F1C43B99F1C53BA1F12E -:1020A000C63BA9F1C73BB1F1C83BB9F1C93BC1F18E -:1020B000CA3BC9F180E090E038C082EE90E035C0C4 -:1020C00089EE90E032C08AEE90E02FC085EB90E080 -:1020D0002CC086EB90E029C087EB90E026C08CEC0A -:1020E00090E023C08DEC90E020C083E891E01DC01B -:1020F0008AE891E01AC082E991E017C084E991E092 -:1021000014C081E292E011C083E292E00EC084E24A -:1021100092E00BC085E292E008C086E292E005C042 -:1021200087E292E002C08AE292E0CF910C94D30E53 -:10213000CF910895882309F44BC0823859F40E9446 -:102140009B0E81FF45C089E30E94F5180E94781913 -:1021500089E30CC0833871F40E949B0E80FF38C065 -:1021600083E50E94F5180E94781983E50E941219F0 -:102170000C947819843859F40E949B0E82FF28C071 -:1021800087E40E94F5180E94781987E4EFCF9CEF4E -:10219000980F913A58F390E2980F983050F4877066 -:1021A00091E001C0990F8A95EAF7892F0E943719AB -:1021B000DFCF9BE5980F933020F480E090E00C9403 -:1021C000BD0E885A833120F480E090E00C94D30E49 -:1021D0000895882321F00E9431190C9478190895EC -:1021E000882321F00E9437190C94781908957F9262 -:1021F0008F929F92AF92BF92CF92DF92EF92FF9217 -:102200000F931F93CF93DF931F92CDB7DEB77C015F -:10221000C62E772EFC01058102950F7012811111D7 -:102220000E944E190E94EE18882379F0112369F05C -:1022300080E28C0D883048F082E00E94D7180E941E -:10224000EE1891E0D82ED92601C0D12CE72DE295C9 -:10225000EF70F0E0E05AFF4F0C944222872D807F10 -:10226000072D0F70882311F00295007F112389F04C -:10227000002309F499C180E28C0D883020F4802F6E -:102280000E94311903C0802F0E9441190E947819C1 -:102290008BC18C2D0E949A10002309F4C3C180E2E7 -:1022A0008C0D883020F4802F0E94371903C0802FB6 -:1022B0000E9447190E947819B5C1872D807F972DFC -:1022C0009F70803211F4892F03C0892F8295807FFF -:1022D000CC2021F0F1E0CF16A1F01DC0112339F080 -:1022E000002319F1013009F50E9461199BC10023F7 -:1022F00019F0013009F496C189830E94641989811B -:1023000010C1112321F0063008F08CC10EC0053039 -:1023100008F088C106C1112359F0002331F0F701FC -:10232000958190FF41C19F7095830E94E9107AC109 -:10233000002309F4F6C03EC1872D869586958370EB -:1023400090E0009719F0019761F06CC1112321F022 -:102350008C2D972D937002C080E090E00E94BD0EFE -:1023600061C1112321F08C2D972D937002C080E064 -:1023700090E00E94D30E56C18C2D112319F00E94BB -:10238000A21C02C00E940A1D0E948F1D4BC1872DF6 -:10239000837009F052C0111145C18C2D829586952C -:1023A0008770880F880F9C2D9F70892E912CA12CEF -:1023B000B12C082E04C0880C991CAA1CBB1C0A94C2 -:1023C000D2F7C4FE14C00FE010E020E030E0B90105 -:1023D000A80104C0440F551F661F771F8A95D2F7C6 -:1023E000CB01BA01609570958095909503C060E02F -:1023F00070E0CB01272D26952695237030E0223002 -:10240000310569F02330310589F0682979298A2955 -:102410009B292130310571F00E94631703C168299F -:1024200079298A299B290E947F17FCC00E94631783 -:10243000C501B4010E944717F5C0112319F0872D7B -:10244000817001C08695882309F4ECC08C2D82959B -:1024500086958770880F880F9C2D9F70892E912CF0 -:10246000A12CB12C082E04C0880C991CAA1CBB1CE2 -:102470000A94D2F7C4FE14C00FE010E020E030E070 -:10248000B901A80104C0440F551F661F771F8A9524 -:10249000D2F7CB01BA01609570958095909503C0F5 -:1024A00060E070E0CB01272D269526952370422F02 -:1024B00050E04230510569F04330510589F06829F8 -:1024C00079298A299B294130510571F00E943D18D4 -:1024D000A9C0682979298A299B290E945918A2C074 -:1024E0000E943D18C501B4010E9421189BC08C2D8B -:1024F00090E0FC01E05EF109E531F10508F050C023 -:10250000E059FF4F0C9442220C2D0F70872D8F71D4 -:10251000112321F00E94BA17802F07CF0E94DB17EA -:10252000802F0E94F0107EC0112341F0053008F08A -:1025300079C0872D8F710E94001874C0063008F092 -:1025400071C0F7CF112339F0872D8F710E94BA1710 -:1025500069C01123C9F3872D8F710E94DB1762C0F8 -:10256000112329F0872D8F710E94A5175BC00E944F -:102570009B1758C0112351F0172D1F71812F0E94F6 -:10258000BA1763E0812F0E94CE184CC081E00E94F0 -:10259000D718023008F446C082E00E94D71842C023 -:1025A000112331F0002381F28C2D0E94D20F3AC00A -:1025B000002389F28C2D0E949A1034C0472D4F7051 -:1025C0006C2DC7010E9442050E94BF162BC011113D -:1025D00029C0472D4F7050E042305105B9F04CF4FE -:1025E0004115510581F041305105E1F40E949120DF -:1025F00019C04330510569F04430510599F48C2DD0 -:102600000E94E3200FC00E947A200CC00E94AD20DF -:1026100009C00E94C02006C0472D4F706C2DC70115 -:102620000E944505DD20F9F00E94CA1880FD1BC0FC -:10263000F70112820E94C4180E94BA17C7010E94B3 -:1026400042130E94C4180F90DF91CF911F910F91F8 -:10265000FF90EF90DF90CF90BF90AF909F908F90C2 -:102660007F900C94DB170F90DF91CF911F910F910A -:10267000FF90EF90DF90CF90BF90AF909F908F90A2 -:102680007F9008950F931F93CF93DF93EC01888180 -:1026900099812B813C81232BB9F09F3F11F48F3F0F -:1026A00099F0CE010E941202882371F0688179812D -:1026B0008A810E94C0188C010E9475180E943C17E4 -:1026C000B801CE010E94F710DF91CF911F910F91B9 -:1026D00008950E944E190E945E190E9423190E94BB -:1026E00078190E94401E0E948F1D80E090E00E9499 -:1026F000BD0E80E090E00C94D30E0E943E190C9425 -:1027000069130E94B518292F22952F7030E02C30C4 -:1027100031054CF42A3031056CF422503109223055 -:102720003105A8F407C02C30310569F02F30310590 -:1027300051F00DC0803F69F018F4803E40F409C0AC -:10274000843F29F406C093FB882780F9089580E030 -:10275000089581E00895CF93DF9300D000D01F92B9 -:10276000CDB7DEB70F900F900F900F900F90DF91C5 -:10277000CF910895CF93DF9300D000D000D0CDB794 -:10278000DEB726960FB6F894DEBF0FBECDBFDF9141 -:10279000CF9108951F93CF93DF93C0917F0216E0EE -:1027A00080918002C81799F0D0E01C9FF0011D9F16 -:1027B000F00D1124EF57FD4F4081518162817381EB -:1027C000848195810E94BA132196C770E9CFDF9169 -:1027D000CF911F9108954091B1025091B202609142 -:1027E000B3027091B4028091B5029091B6020C943C -:1027F000BA138091B60282958F7009F054C080910F -:10280000B302882309F44FC080917F02A091800217 -:102810006091B1027091B2024091B4025091B50240 -:10282000B6E08A1709F43FC090E041155105C1F1A7 -:102830007F3F11F46F3FA1F1B89FF001B99FF00DF8 -:102840001124EF57FD4F218172132AC0208162139A -:1028500027C02281211124C0238134812417350708 -:1028600010F421503109241B350B283C3105C0F4EC -:102870002091B6022F7020612093B60226E0289F97 -:10288000F001299FF00D1124EA57FD4F80818F70D0 -:102890008061808381EB92E00E9442130C94CA1302 -:1028A00001968770BECF0895CF92DF92EF92FF928C -:1028B0000F931F93CF93DF93CDB7DEB762970FB619 -:1028C000F894DEBF0FBECDBF8C0185E0F801DE01BC -:1028D0001D9601900D928A95E1F7D8014C911196C1 -:1028E0005C91119712966C9112971396CD90DC9093 -:1028F00014973091B1027091B2028091B40290911C -:10290000B502009709F46BC17F3F19F43F3F09F40A -:1029100066C1E090B302EE2009F4C0C02091B60277 -:10292000C816D90628F0F601E81BF90BCF0104C040 -:10293000809590958C0D9D1DFF24F394883C910506 -:1029400078F0F12C207F09F0C6C07C2DD98AC88A86 -:1029500089890E94AB1381EB92E00E944213B1C0BF -:10296000822F807F09F046C0751314C0341312C043 -:10297000611110C02F7020612093B6020E94EB13EA -:1029800081EB92E00E9442138091B602D801159625 -:102990008C932EC0CD2819F15F3F11F44F3FF9F011 -:1029A000F62E61111CC080917F022091800236E0DA -:1029B000821709F45AC090E0389FF001399FF00D5A -:1029C0001124EF57FD4F7181571306C070814713D3 -:1029D00003C07281711103C001968770E9CFF62E92 -:1029E000662309F418C18091B60281608093B60213 -:1029F000F12C11C1751308C0341306C0611104C055 -:102A00008091B602D801C3C04D875E878D859E85B3 -:102A10006A8B0E9481136A898823E1F16623D1F1D0 -:102A20002091B602822F82958F7090E0029774F009 -:102A30008091B1029091B20298878F831986DB86CC -:102A4000CA862C87CE0107960E94421386E0F801C1 -:102A5000A1EBB2E001900D928A95E1F70E94F91383 -:102A60000E94EB13FF24F394D6C04D875E878D85BB -:102A70009E850E94B518292F22952F7030E02230B4 -:102A800031050CF0BCC09F7009F0B6C0805E883084 -:102A900008F4C1C0C8010E944213E4CFC816D90689 -:102AA00008F453C0F601E81BF90BCF01883C9105EF -:102AB00008F450C0F12C7C2DD98AC88A89890E94DB -:102AC000AB13E1EBF2E086E0DF011D928A95E9F7B6 -:102AD0000E94EB13A0C0751314C0341312C061110F -:102AE00010C08091B602F8018583C8010E9442138C -:102AF00086E0E1EBF2E0DF011D928A95E9F7FE2C1A -:102B00008AC04D875E878D859E856A8B0E94811362 -:102B10006A89882309F4BECF662309F4BBCF2091CC -:102B2000B602822F82958F7090E002970CF48ECFC0 -:102B30008091B1029091B2029A8389831B82DD82D7 -:102B4000CC822E83CE0101967FCF809590958C0DFF -:102B50009D1DACCFF62E662309F49CCF75132EC0B5 -:102B600034132CC02091B60220FD1FC0822F829505 -:102B70008F70D9F0D80115962C9315978F3049F0A6 -:102B80008F5F982F9295907F822F8F70892B15964B -:102B90008C93C8010E94421386E0F801A1EBB2E0D9 -:102BA00001900D928A95E1F793CF86E0F801A1EBB1 -:102BB000B2E001900D928A95E1F72DC04D875E87B6 -:102BC0008D859E850E948113811140CF8091B60230 -:102BD00081608093B602C8010E9442131CC0662324 -:102BE00009F458CF4D875E878D859E850E9481139D -:102BF000882309F44FCF2ACF811148CF0CC024304D -:102C000031050CF047CF9F7009F440CFF801958152 -:102C1000907F09F03BCF8F2D62960FB6F894DEBF00 -:102C20000FBECDBFDF91CF911F910F91FF90EF901D -:102C3000DF90CF9008951F93CF93DF93CDB7DEB78A -:102C40002C970FB6F894DEBF0FBECDBF4F835887C9 -:102C500069877A878B879C87CE0107960E945414D8 -:102C6000882369F08F8198852A853B85232BF1F194 -:102C70009F3F09F063C08F3F09F060C037C086E016 -:102C8000FE013796DE01119601900D928A95E1F7CB -:102C90006F817885EA85FB85309741F17F3F11F49C -:102CA0006F3F21F12091800230E0C90101968770C9 -:102CB000992740917F0250E08417950709F447C097 -:102CC00069837A83FD83EC8396E0929FD001939F82 -:102CD000B00D1124AF57BD4FFE01319601900D92FA -:102CE0009A95E1F7809380020E94CA1316E08091C2 -:102CF0007F02909180028917C1F1189FC0011124B1 -:102D00008F579D4F0E945414882379F1E0917F02E0 -:102D10001E9FF0011124EF57FD4F408151816281C8 -:102D20007381848195810E94BA1380917F0290E023 -:102D300001968770992780937F02D9CF4F8158855C -:102D400069857A858B859C850E94BA13CFCF0E94B6 -:102D50007D131092800210927F02E1EBF2E086E098 -:102D6000DF011D928A95E9F7C1CF2C960FB6F89432 -:102D7000DEBF0FBECDBFDF91CF911F910895EF92BF -:102D8000FF920F931F93CF93DF938C01009709F469 -:102D90006CC0F12CEE24E394E8012196F8018491B3 -:102DA000843740F4843008F051C0813081F08230A3 -:102DB00019F15BC0853709F444C0A8F19CE7980F6E -:102DC000903708F052C08F770E949A1041C00E5F72 -:102DD0001F4FFE01C49180E28C0F883048F4C77009 -:102DE0008E2D01C0880FCA95EAF70E94511914C0B0 -:102DF0008C2F0E94D20F2DC00E5F1F4FFE01C49179 -:102E000080E28C0F883058F4C7708E2D01C0880F77 -:102E1000CA95EAF70E9457190E9478191AC08C2F98 -:102E20000E949A1016C00E5F1F4FFE01C491CC2362 -:102E300081F08FE99FE00197F1F700C00000C150D9 -:102E4000F6CF0E5F1F4FFE01F49003C00E94D20F19 -:102E50008E018F2D882309F49FCFEFE9FFE0319792 -:102E6000F1F700C000008150F5CFDF91CF911F91A5 -:102E70000F91FF90EF90089508956093BB027093B7 -:102E8000BC028093BD029093BE020C9469130F9311 -:102E90001F930091BB021091BC022091BD023091A2 -:102EA000BE02DC01CB01802B912BA22BB32B809394 -:102EB000BB029093BC02A093BD02B093BE021F91CF -:102EC0000F910C9469130F931F930091BB02109103 -:102ED000BC022091BD023091BE02DC01CB018023F7 -:102EE0009123A223B3238093BB029093BC02A093AF -:102EF000BD02B093BE021F910F910C9469130F9302 -:102F00001F930091BB021091BC022091BD02309131 -:102F1000BE02DC01CB0180279127A227B327809333 -:102F2000BB029093BC02A093BD02B093BE021F915E -:102F30000F910C9469131092B7021092B80210927C -:102F4000B9021092BA020C94691341E050E060E0BB -:102F500070E004C0440F551F661F771F8A95D2F793 -:102F60004093B7025093B8026093B9027093BA02CB -:102F70000C94691341E050E060E070E004C0440F3D -:102F8000551F661F771F8A95D2F78091B7029091DF -:102F9000B802A091B902B091BA02482B592B6A2B02 -:102FA0007B2B4093B7025093B8026093B9027093A1 -:102FB000BA020C94691341E050E060E070E004C094 -:102FC000440F551F661F771F8A95D2F7409550957D -:102FD000609570958091B7029091B802A091B90266 -:102FE000B091BA02482359236A237B234093B70246 -:102FF0005093B8026093B9027093BA020C946913AB -:1030000041E050E060E070E004C0440F551F661FCF -:10301000771F8A95D2F78091B7029091B802A0915C -:10302000B902B091BA02482759276A277B274093F3 -:10303000B7025093B8026093B9027093BA020C942D -:1030400069130F931F930091B7021091B80220915A -:10305000B9023091BA02DC01CB01802B912BA22B5B -:10306000B32B8093B7029093B802A093B902B093A8 -:10307000BA021F910F910C9469130F931F93009143 -:10308000B7021091B8022091B9023091BA02DC0166 -:10309000CB0180239123A223B3238093B702909383 -:1030A000B802A093B902B093BA021F910F910C9489 -:1030B00069130F931F930091B7021091B8022091EA -:1030C000B9023091BA02DC01CB0180279127A227F7 -:1030D000B3278093B7029093B802A093B902B0933C -:1030E000BA021F910F910C9469130895CF92DF9249 -:1030F000EF92FF920F931F93CF93DF938C01C090B9 -:10310000BB02D090BC02E090BD02F090BE02809164 -:10311000B7029091B802A091B902B091BA02C82A40 -:10312000D92AEA2AFB2ACFE1D0E0D701C6010C2E2A -:1031300004C0B695A795979587950A94D2F780FF16 -:1031400006C0B8018C2F0E94A103019721F421979A -:1031500060F780E001C08C2FDF91CF911F910F911C -:10316000FF90EF90DF90CF900895CF93DF93EC0125 -:103170000E947618BE010E94A103DF91CF910895AD -:10318000CB010E94B51808958091BF028595859561 -:10319000859508958091BF028770089598E0899F72 -:1031A00090011124262B2093BF020C94BA17209172 -:1031B000BF02809582238093BF02982F977069F495 -:1031C00030E0482F552747FD50952417350729F043 -:1031D0008595859585950C94DB1708959091BF0290 -:1031E000977081E009F480E0089520910C013091FE -:1031F0000D01F90132969FEF40E05191581789F087 -:103200009F3F19F4511101C0942F4F5F4630A9F729 -:103210009F3F39F0F901E90FF11D97FDFA9582837F -:103220000895089520910C0130910D01F901329615 -:10323000285F3F4F9081981301C010823196E217AA -:10324000F307C1F7089581E090E0E0910C01F0915F -:103250000D01E80FF91F1082019688309105A9F73A -:1032600008959091CB02892B8093CB02089580958D -:103270009091CB0289238093CB0208951092CB02C8 -:1032800008959091CA02892B8093CA02089580956F -:103290009091CA0289238093CA0208951092CA02AB -:1032A00008959091C902892B8093C9020895809551 -:1032B0009091C90289238093C90208951092C9028E -:1032C00008958093C00208951092C00208958091DD -:1032D0000C0190910D01FC0131969C01285F3F4F3C -:1032E00080E0919191118F5FE217F307D1F7089574 -:1032F000E0910C01F0910D018091CB028083E0916F -:103300000C01F0910D0190818091CA02892B80837C -:10331000E0910C01F0910D0190818091C902892BFF -:1033200080838091C002882361F0E0910C01F091CC -:103330000D019081892B80830E9467198111109261 -:10334000C00280910C0190910D010C94A70E0E9477 -:103350007D1380E00E94D8010E9469200E949B0E8C -:103360000C94D6051F920F920FB60F9211248F93D3 -:103370009F93AF93BF938091CD02811113C0809131 -:10338000CE029091CF02A091D002B091D10241968D -:10339000A11DB11D8093CE029093CF02A093D002C5 -:1033A000B093D102BF91AF919F918F910F900FBEBB -:1033B0000F901F90189582E084BD93E095BD9AEF21 -:1033C00097BD80936E0008952FB7F8948091CE0238 -:1033D0009091CF02A091D002B091D1022FBF089559 -:1033E000CF92DF92EF92FF920F931F932FB7F89433 -:1033F0004091CE025091CF026091D0027091D102E3 -:103400002FBF6A017B01EE24FF248C0120E030E015 -:10341000C016D106E206F30610F4415051099A0194 -:10342000281B390BC9011F910F91FF90EF90DF907E -:10343000CF9008951F920F920FB60F9211248F9381 -:103440009F93AF93BF938091CE029091CF02A091B2 -:10345000D002B091D1020196A11DB11D8093CE0280 -:103460009093CF02A093D002B093D102BF91AF91BD -:103470009F918F910F900FBE0F901F9018950E94F3 -:10348000590BF8942FEF87EA91E621508040904045 -:10349000E1F700C0000087E090EBDC018093ED02D3 -:1034A0009093EE02A093EF02B093F0029CE088E1CB -:1034B0000FB6F894A895809360000FBE90936000BB -:1034C000FFCFAF92BF92CF92DF92EF92FF920F9316 -:1034D0001F93CF93C3E0CC24C394D12CE82EF12CBE -:1034E0008C2F0E94AC065C010CE010E09601002ECF -:1034F00002C0220F331F0A94E2F72A213B21232B1B -:1035000051F0602F7C2F80E00E944605E816F906F6 -:1035100011F481E006C00150110940F7C15000F7D5 -:1035200080E0CF911F910F91FF90EF90DF90CF90AF -:10353000BF90AF900895CF93C82F8CE20E94611A7C -:10354000882321F08C2FCF910C94611A80E0CF91C9 -:103550000895CF930E94F11B811102C00E94D21BDB -:10356000C5E6C15049F00E9431068FE39CE90197FE -:10357000F1F700C00000F5CF89E20E949B1A81118B -:103580000FC18AE20E949B1A81110E94D21B85E022 -:103590000E949B1A81110E943F1A0E94FC1B80937B -:1035A000CC0287E00E949B1A8823A9F18BE10E943C -:1035B0009B1A882351F08091CC0281FB222720F9AD -:1035C00091E0922790FB81F90EC08EE00E949B1A39 -:1035D000882361F08091CC0282FB222720F991E0C0 -:1035E000922790FB82F98093CC0215C080E10E9463 -:1035F0009B1A9091CC02882341F093FB222720F95B -:1036000081E0822780FB93F904C0892F809580FB9D -:1036100090F99093CC028091CC020E94001C0E94F1 -:103620000E1C90E09093DE028093DD0280EE0E94FB -:103630009B1A882341F08091DD02982F909590FB92 -:1036400080F98093DD0289E30E949B1A882359F058 -:103650008091DD0281FB222720F991E0922790FBE7 -:1036600081F98093DD0282EE0E949B1A882359F033 -:103670008091DD0282FB222720F991E0922790FBC6 -:1036800082F98093DD0286EE0E949B1A882359F00E -:103690008091DD0283FB222720F991E0922790FBA5 -:1036A00083F98093DD0283EE0E949B1A882359F0F0 -:1036B0008091DD0284FB222720F991E0922790FB84 -:1036C00084F98093DD0285E30E949B1A882359F0D8 -:1036D0008091DD0285FB222720F991E0922790FB63 -:1036E00085F98093DD0281E30E949B1A882359F0BB -:1036F0008091DD0286FB222720F991E0922790FB42 -:1037000086F98093DD0281E10E949B1A882359F09B -:103710008091DD0287FB222720F991E0922790FB20 -:1037200087F98093DD028091DD020E94121C87E2FE -:103730000E949B1AC82F8EE10E949B1A8111C260C1 -:103740008FE10E949B1A8111C46080E20E949B1A43 -:103750008111C86081E20E949B1A8111C06182E2DE -:103760000E949B1A8111C06283E20E949B1A811100 -:10377000C06484E20E949B1A882311F0C06802C0D2 -:10378000CC2329F08C2F0E94091C6C2F03C00E94AF -:10379000051C682F70E080E090E0CF910C943D17FD -:1037A000CF9108956DEE7EEF80E090E00E947C2244 -:1037B00060E082E090E00E946A2260E083E090E0B6 -:1037C0000E946A2260E084E090E00E946A2260E049 -:1037D00085E090E00E946A2260E086E090E00C9430 -:1037E0006A2280E090E00E94642221E08D3E9E4F9C -:1037F00009F020E0822F089582E090E00C945C2292 -:10380000682F82E090E00C946A2283E090E00C94B0 -:103810005C22682F83E090E00C946A2284E090E0C0 -:103820000C945C22682F84E090E00C946A2286E07D -:1038300090E00C945C22682F86E090E00C946A2261 -:103840008091D40280FF0BC06091110185E0689FD8 -:10385000B001112475956795759567952BC081FF0B -:1038600009C06091110185E0689FB0011124759530 -:10387000679520C082FF07C06091110185E0689FB5 -:10388000B001112417C09091D5029923D1F0609115 -:103890001001961788F72091110185E0289F90016B -:1038A0001124929FA001939F500D112470E0CA0132 -:1038B0000E942E226038710540F46115710539F0BF -:1038C00002C065E070E0862F08958FE7089581E0DB -:1038D00008958091D40280FF08C060910F0170E0CC -:1038E000759567957595679521C081FF06C06091B4 -:1038F0000F0170E07595679519C082FF04C0609153 -:103900000F0170E010C09091D5029923C1F0609131 -:103910000E019617A0F780910F01899FC001112415 -:1039200070E00E942E226038710528F4611571053F -:1039300021F0862F08958FE7089581E0089561E0D2 -:1039400070E0F4CF803F21F40E94201C819504C0D8 -:10395000813F29F40E94201C8093D8020895823F61 -:1039600021F40E94201C819504C0833F29F40E9409 -:10397000201C8093D7020895893F19F40E94691C86 -:1039800005C08A3F31F40E94691C81958093D90259 -:1039900008958B3F21F40E94691C819504C08C3FDF -:1039A00029F40E94691C8093DA020895843F21F46F -:1039B0008091D602816017C0853F21F48091D602A4 -:1039C000826011C0863F21F48091D60284600BC0D2 -:1039D000873F21F48091D602886005C0883F31F48A -:1039E0008091D60280618093D60208958D3F21F4A4 -:1039F0008091D40281600BC08E3F21F48091D4026B -:103A0000826005C08F3F29F48091D4028460809346 -:103A1000D4020895803F39F48091D80287FF6CC0AA -:103A20001092D80269C0813F29F48091D8021816FB -:103A3000BCF362C09091D702823F29F497FF5CC02B -:103A40001092D70259C0833F19F41916CCF354C011 -:103A5000893F41F48091D90218160CF04DC01092A4 -:103A6000D9024AC08A3F29F48091D90287FF44C015 -:103A7000F6CF8B3F39F48091DA0287FF3DC0109278 -:103A8000DA023AC08C3F29F48091DA021816BCF3AE -:103A900033C0843F21F48091D6028E7F17C0853FCA -:103AA00021F48091D6028D7F11C0863F21F4809150 -:103AB000D6028B7F0BC0873F21F48091D602877F8F -:103AC00005C0883F31F48091D6028F7E8093D60264 -:103AD00013C08D3F21F48091D4028E7F0BC08E3FA6 -:103AE00021F48091D4028D7F05C08F3F29F480910D -:103AF000D4028B7F8093D4028091D70281110EC0B3 -:103B00008091D80281110AC08091D902811106C02A -:103B10008091DA02811102C01092D502089586EDDB -:103B200092E00E94B20E0E94E4199093D302809317 -:103B3000D20208951F93CF93DF938091D202909188 -:103B4000D3020E94F019AC019091D502992321F083 -:103B50002091120130E006C0209113018AE0289FD5 -:103B6000900111244217530708F486C08091D702B0 -:103B7000C091D802D091D9021091DA02811107C008 -:103B8000C11176C0D11174C0111172C075C09F3FB0 -:103B900019F09F5F9093D502181624F40E94201C00 -:103BA0008093D7028091D70287FF05C00E94201C16 -:103BB00081958093D7021C1624F40E94201C8093C8 -:103BC000D8028091D80287FF05C00E94201C8195F1 -:103BD0008093D8026091D702662339F1C091D80250 -:103BE000CC2319F1772767FD7095872F972F0E94B7 -:103BF000332123E333E343E35FE30E9497210E94F1 -:103C000000216093D7026C2F772767FD7095872F6F -:103C1000972F0E94332123E333E343E35FE30E94C2 -:103C200097210E9400216093D8021D1624F40E945F -:103C3000691C8093D9028091D90287FF05C00E9438 -:103C4000691C81958093D902111624F40E94691C85 -:103C50008093DA028091DA0287FF05C00E94691C16 -:103C600081958093DA02DF91CF911F910C948F1D83 -:103C70009F3F09F08ECF96CFDF91CF911F9108958E -:103C8000E6EDF2E085E0DF011D928A95E9F71092FA -:103C9000D5021092D4020895833081F128F4813046 -:103CA00059F08230D1F00895853009F449C0B8F157 -:103CB000863009F456C0089580911301262F30E014 -:103CC000280F311D2F3F310524F4680F6093130135 -:103CD00008958FEF80931301089580911201262F8C -:103CE00030E0280F311D2F3F310524F4680F609319 -:103CF000120108958FEF80931201089580911101B0 -:103D0000262F30E0280F311D2F3F310524F4680F96 -:103D10006093110108958FEF8093110108958091B0 -:103D20001001262F30E0280F311D2F3F310524F4DC -:103D3000680F6093100108958FEF8093100108952C -:103D400080910F01262F30E0280F311D2F3F3105C4 -:103D500024F4680F60930F0108958FEF80930F0193 -:103D6000089580910E01262F30E0280F311D2F3F3E -:103D7000310524F4680F60930E0108958FEF80934E -:103D80000E010895833011F128F4813049F082301A -:103D900091F00895853081F120F18630C1F10895C8 -:103DA00080911301681720F4861B809313010895F6 -:103DB00010921301089580911201681720F4861B58 -:103DC00080931201089510921201089580911101BB -:103DD000681720F4861B8093110108951092110139 -:103DE000089580911001681720F4861B80931001BC -:103DF000089510921001089580910F01681720F422 -:103E0000861B80930F01089510920F0108958091F1 -:103E10000E01681720F4861B80930E0108951092FE -:103E20000E0108950F931F93873208F040C08E3122 -:103E300008F08AC08E3009F474C0C0F4873009F4E9 -:103E40005EC068F4863009F09AC08091CC02817F10 -:103E50008E7F8093CC0281E08093DC0291C0883019 -:103E600009F486C08B3009F483C089C0863109F417 -:103E70007FC068F4803109F082C08091CC0283FB5E -:103E8000222720F991E0922790FB83F953C08931D2 -:103E900009F46EC08B3109F072C08091CC0281FBB5 -:103EA000222720F991E0922790FB81F943C08833C3 -:103EB00009F45EC050F4893209F45CC0853309F41A -:103EC00059C0873209F456C05AC0833409F452C02D -:103ED00028F48A3308F453C0895337C0883409F072 -:103EE0004EC00E947D130FEF13ED20E301501040F0 -:103EF0002040E1F700C000000E943F1A39C09091B5 -:103F0000CC02892F8095817080FB90F929F0966012 -:103F100098609093CC0234C0997F977F9093CC02A5 -:103F200027C08091CC0282FB222720F991E09227C2 -:103F300090FB82F98093CC029923D1F08091CC023E -:103F400081608093CC0214C08D5141E050E060E06C -:103F500070E08A019B0104C0000F111F221F331F54 -:103F60008A95D2F7C901B8010E943D170E947D13BE -:103F700081E006C061E070E080E090E0F5CF80E095 -:103F80001F910F91089580E0089580E008958E516B -:103F90008A3030F4E82FF0E0E75CFE4F808108952E -:103FA00080E00895CF93C82F8091DC02813069F0C2 -:103FB00018F08230C9F183C0E0910C01F0910D013D -:103FC0008081823209F07DC007C0E0910C01F09140 -:103FD0000D018081823261F48C2F0E94C31F8111F8 -:103FE00004C08C2F0E94121F1DC081E090E01AC0F7 -:103FF0008C2F0E94C51F811114C0C43179F048F480 -:10400000CB3079F0C03109F060C082E08093DC02EF -:1040100008C0C93219F0C83321F057C01092DC0231 -:1040200054C081E0817053C0C93289F118F5C431A0 -:1040300071F1B0F4C73009F046C08EE180931301EE -:1040400082E3809312018AE08093110184E18093DE -:10405000100188E080930F0188E280930E0133C045 -:1040600082EE8C0F863078F58C2F0E94C71F8093CC -:10407000DB0229C0CE34E9F020F4CB3421F56AE02C -:1040800013C0C13579F0C235F1F461E00DC0809103 -:10409000DB02882319F01092DB0215C081E08093C7 -:1040A000DC0215C061E006C08091DB020E944C1E5C -:1040B0000AC06AE08091DB020E94C21E04C0109216 -:1040C000DC0280E004C081E002C080E0ABCFCF9191 -:1040D00008950E94F11B811102C00E94D21B0E9410 -:1040E000171C8093EC0280FF02C0869501C080E01F -:1040F0000C94D8018091EC02982F9695292F30E0EE -:10410000233031054CF49F5F990F8170892B8160BA -:104110008093EC020E941B1C8091EC0286950C940B -:10412000D8018091EC02982F969591F09158990FB3 -:104130008170892B8093EC028E7F91E009F490E0EE -:104140008091EC0290FB80F98093EC020E941B1C92 -:104150008091EC0286950C94D8018091EC02982F06 -:10416000909590FB80F98093EC020E941B1C80913B -:10417000EC0280FF02C0869501C080E00C94D8015B -:104180009091EC02892F86958F5F8F7791708430A4 -:1041900028F4880F892B8093EC0202C09093EC02E4 -:1041A0008091EC028E7F91E009F490E08091EC0226 -:1041B00090FB80F98093EC020E941B1C8091EC0222 -:1041C00086950C94D8012091EC02922F9695892720 -:1041D000982F990F822F8170892B8093EC028E7F0C -:1041E00091E009F490E08091EC0290FB80F98093DB -:1041F000EC020E941B1C8091EC0286950C94D80165 -:1042000004D06894B1118DC0089570D088F09F5784 -:1042100090F0B92F9927B751A0F0D1F0660F771F12 -:10422000881F991F1AF0BA95C9F712C0B13081F0F2 -:1042300077D0B1E0089574C0672F782F8827B85FD2 -:1042400039F0B93FCCF3869577956795B395D9F753 -:104250003EF490958095709561957F4F8F4F9F4F5D -:104260000895E89409C097FB3EF490958095709569 -:1042700061957F4F8F4F9F4F9923A9F0F92F96E9B2 -:10428000BB279395F695879577956795B795F11127 -:10429000F8CFFAF4BB0F11F460FF1BC06F5F7F4FC4 -:1042A0008F4F9F4F16C0882311F096E911C07723D6 -:1042B00021F09EE8872F762F05C0662371F096E8DF -:1042C000862F70E060E02AF09A95660F771F881FAE -:1042D000DAF7880F9695879597F9089557FD9058C6 -:1042E000440F551F59F05F3F71F04795880F97FBBA -:1042F000991F61F09F3F79F0879508951216130674 -:104300001406551FF2CF4695F1DF08C016161706A2 -:104310001806991FF1CF86957105610508940895D7 -:10432000E894BB2766277727CB0197F908950BD030 -:1043300078C069D028F06ED018F0952309F05AC0E3 -:104340005FC01124EECFCADFA0F3959FD1F3950F84 -:1043500050E0551F629FF001729FBB27F00DB11D09 -:10436000639FAA27F00DB11DAA1F649F6627B00D99 -:10437000A11D661F829F2227B00DA11D621F739F82 -:10438000B00DA11D621F839FA00D611D221F749F90 -:104390003327A00D611D231F849F600D211D822FD7 -:1043A000762F6A2F11249F5750408AF0E1F088231E -:1043B0004AF0EE0FFF1FBB1F661F771F881F91502B -:1043C0005040A9F79E3F510570F014C0AACF5F3F3F -:1043D000ECF3983EDCF3869577956795B795F7955E -:1043E000E7959F5FC1F7FE2B880F911D96958795E6 -:1043F00097F9089597F99F6780E870E060E0089565 -:104400009FEF80EC089500240A94161617061806EC -:104410000906089500240A941216130614060506C8 -:104420000895092E0394000C11F4882352F0BB0F59 -:1044300040F4BF2B11F460FF04C06F5F7F4F8F4FBC -:104440009F4F0895991B79E004C0991F961708F0B3 -:10445000961B881F7A95C9F78095089597FB072EBC -:1044600016F4009407D077FD09D00E94482207FC7B -:1044700005D03EF4909581959F4F08957095619574 -:104480007F4F0895EE0FFF1F0590F491E02D0994E2 -:10449000AA1BBB1B51E107C0AA1FBB1FA617B7076A -:1044A00010F0A61BB70B881F991F5A95A9F7809586 -:1044B0009095BC01CD010895F999FECF92BD81BDC3 -:1044C000F89A992780B50895A8E1B0E042E050E05D -:1044D0000C948422262FF999FECF92BD81BDF89AC3 -:1044E000019700B4021639F01FBA20BD0FB6F89438 -:1044F000FA9AF99A0FBE08950196272F0E946B220F -:104500000C946A22DC01CB01FC01F999FECF06C0B4 -:10451000F2BDE1BDF89A319600B40D924150504081 -:08452000B8F70895F894FFCFED -:10452800FFB606E0079C076807B90601C10228081C -:10453800140A321E4F795363667649695909192955 -:10454800030F1F5F43404D3620BF0272023C021C1E -:1045580002A801C101DA01F30101020304050607FB -:04456800080900003E -:00000001FF diff --git a/keyboards/jd45/keymaps/default/keymap.c b/keyboards/jd45/keymaps/default/keymap.c index 05dd46e79..95abb1505 100644 --- a/keyboards/jd45/keymaps/default/keymap.c +++ b/keyboards/jd45/keymaps/default/keymap.c @@ -1,22 +1,8 @@ #include "jd45.h" -#include "backlight.h" /* this keymap is to provide a basic keyboard layout for testing the matrix * for more practical and complicated keymap refer to other keymaps in the same folder */ -/* JD45 keymap definition macro - */ -#define KEYMAP( \ - K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, K13, \ - K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, \ - K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, K37, \ - K38, K39, K40, K41, K42, K43, K44, K45, K46, K47 \ -) { \ - { KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K10, KC_##K11, KC_##K12, KC_##K13 }, \ - { KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_NO }, \ - { KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_NO }, \ - { KC_##K38, KC_##K39, KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_##K43, KC_NO, KC_##K44, KC_##K45, KC_##K46, KC_##K47, KC_NO } \ -} const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = KEYMAP( diff --git a/keyboards/jd45/keymaps/justin/compiled.hex b/keyboards/jd45/keymaps/justin/compiled.hex deleted file mode 100644 index 3f0ab6524..000000000 --- a/keyboards/jd45/keymaps/justin/compiled.hex +++ /dev/null @@ -1,1153 +0,0 @@ -:100000000C94AA020C94EE020C94EE020C94EE02F4 -:100010000C94EE020C94EE020C94EE020C94EE02A0 -:100020000C94EE020C94EE020C94170D0C94E90D56 -:100030000C94F51A0C94EE020C94EE020C94EE0261 -:100040000C94EE020C94EE020C94EE020C94EE0270 -:100050000C94EE020C945D1B0C94EE020C94EE02D8 -:100060000C94EE020C94AF0F0C94EE020C94EE0282 -:100070000C94EE020C94EE020C94EE020C94EE0240 -:100080000C94EE020C94EE020C94EE020C94EE0230 -:100090000C94EE020C94EE020C94EE020C94EE0220 -:1000A0000C94EE020C94EE020C94EE02560E780EB6 -:1000B000660F780E660FBD0EE00E660F350F480F07 -:1000C00071127112A012A012DF12FF1255145514F2 -:1000D0000A135514BA13BA1321142A1455144F14C1 -:1000E000C713C713C713C713C713C713C713C71340 -:1000F000C713C713C713C713C713C713C713C71330 -:10010000D713E513EC13F313FD137500011E021E44 -:10011000011F021F012002200121022101220222CF -:10012000012302230124022401250225012802289B -:10013000007500011E021E011F021F012002200186 -:10014000210221012202220123022301240224018F -:1001500025022501280228007500011E021E011F2C -:10016000021F01200220012102210122022201237B -:100170000223012402240125022501280228002D42 -:1001800021F1A1F1A2F1A33522E7323932E2A42B09 -:1001900021000000C001C002C000000000000000FB -:1001A000000000000000000000000000000000004F -:1001B00000000000000000000000D200D000D129A3 -:1001C0000014001A00090013000A000D000F0018A7 -:1001D000001C00330034002A00C80004001500167B -:1001E00000170007000B00110008000C0012002887 -:1001F000000000E1001D001B000600190005000EB4 -:10020000001000360037003800C6000000C400E3CC -:1002100000C700C200C10000002C000000C500E6BD -:1002200000C300C00000000100CA00CB00CC0001E8 -:100230000001000100010001000100010052004C1A -:1002400000010001000100010001000100010001A6 -:10025000004A004B0050004F000000010001000167 -:1002600000010001000100010001004D004E00519D -:100270000001000000010001000100010001000078 -:100280000001000000010001000100010000000168 -:10029000000100010001000100010001002400250F -:1002A00000260027000100010001000100010001FB -:1002B00000010001002F002100220023003700016F -:1002C00000000001000100010001000100010030F8 -:1002D000001E001F0020003100010000000100DDB1 -:1002E000000100010001000000480000002E002D68 -:1002F0000001000100000001003A003B003C003D0D -:10030000003E003F004000410042004300440045E1 -:1003100000010001000100010001000100010001D5 -:1003200000010001000100010000000100010001C6 -:1003300000010001000100010001000100010001B5 -:1003400000010000000100010001000100010000A7 -:100350000001000000010001000100010000000197 -:10036000000100010001000100010001002400253E -:10037000002600270001000100010001000100012A -:1003800000010001002F002100220023003700019E -:100390000000000100010001000100010001003027 -:1003A000001E001F0020003100010000000100DDE0 -:1003B000000100010001000000480000002E002D97 -:1003C000000100010000000A034A00440034003527 -:1003D00000000012036700650065006B00680061A3 -:1003E0000063006B000000040309040902740004A8 -:1003F0000100A0FA09040000010301010009211114 -:100400000100012240000705810308000A090401D8 -:10041000000103010200092111010001224D000722 -:1004200005820308000A0904020001030000000914 -:1004300021110100012236000705830308000A0983 -:100440000403000203000000092111010001222021 -:1004500000070584032000010705040320000112A2 -:1004600001100100000008EDFE60600100010200C3 -:10047000010631FF0974A1010975150025FF9520BA -:10048000750881020976150025FF952075089102EF -:10049000C005010980A101850216010026B7001AD6 -:1004A00001002AB700751095018100C0050C0901F3 -:1004B000A1018503160100269C021A01002A9C0254 -:1004C000751095018100C005010902A1010901A172 -:1004D00000050919012905150025019505750181FA -:1004E0000295017503810105010930093115812546 -:1004F0007F95027508810609381581257F9501755C -:10050000088106050C0A38021581257F95017508BA -:100510008106C0C005010906A101050719E029E708 -:100520001500250195087501810295017508810165 -:1005300005081901290595057501910295017503B5 -:1005400091010507190029FF150026FF0095067582 -:10055000088100C011241FBECFEFDAE0DEBFCDBF9F -:1005600004B603FE24C08091ED029091EE02A091AA -:10057000EF02B091F0028730904BA740B04BB9F436 -:100580001092ED021092EE021092EF021092F00221 -:1005900014BE84B7877F84BF88E10FB6F894809338 -:1005A0006000109260000FBEE0E0F8E3099511E0F2 -:1005B000A0E0B1E0EEEAF7E402C005900D92A434A9 -:1005C000B107D9F712E0A4E4B1E001C01D92AD3E3D -:1005D000B107E1F70E94860A0C94D5230C94000021 -:1005E00008950895279A2F988FEF9FEF9093870093 -:1005F000809386008AE08093800089E18093810067 -:100600000C94AC21282F81110BC080918000877F32 -:100610008093800010928D0010928C002F98089586 -:100620002F9880918000886080938000233019F497 -:100630008FEF9FEF0FC083E090E0821B9109880F3E -:10064000991F2FEF3FEFA90102C0569547958A9554 -:10065000E2F7CA0190938D0080938C0008950E9468 -:10066000F2020C94F0020C94F102FC01613051F0A2 -:1006700018F0623069F012C08281882379F088E531 -:1006800091E008958281882349F081E391E0089503 -:100690008281882319F08AE091E0089580E090E05B -:1006A000089581E0089581E008950C94530308951E -:1006B0000F931F93CF93DF938C01FC01C081D181F5 -:1006C000CE010E94B919BE010E948906EC01B80151 -:1006D0000E945503882309F470C1F80182818823A0 -:1006E00009F45BC080914F0181111FC0C431F0E754 -:1006F000DF0709F00AC10E94570381E080934F0190 -:100700000E94271B90934E0180934D011092460149 -:10071000109248011092470110924A01109249012B -:1007200010924C0110924B0148C180914D01909163 -:100730004E010E94331B883C910570F48091460164 -:10074000E82FF0E0EE0FFF1FE95BFE4FD183C0837F -:100750008F5F8093460131C1C43120E7D20708F092 -:1007600024C1C23080E7D80710F5C11590E7D9073A -:1007700009F0DAC0F8018281882309F4BFC00E9421 -:10078000C014FFEF24E38CE0F15020408040E1F7FB -:1007900000C000000E94821B10C1C431F0E7DF07D7 -:1007A00008F0CFC0C23020E7D20708F49BC0F801A0 -:1007B0008281882309F4A2C00E94341D811102C0E5 -:1007C0000E94151D0E94511D90E09093DE028093BF -:1007D000DD02C230F0E7DF0721F48091DD028160A5 -:1007E0007AC0C33020E7D20721F48091DD02826015 -:1007F00072C0C43080E7D80721F48091DD028460A4 -:100800006AC0C53090E7D90719F48091DD0227C08E -:10081000C630E0E7DE0721F48091DD0280615BC035 -:10082000C730F0E7DF0721F48091DD02806253C01A -:10083000C83020E7D20721F48091DD0280644BC0EC -:10084000C93080E7D80721F48091DD02806843C079 -:10085000CA3090E7D90729F48091DD02846088606E -:100860003AC0CB30E0E7DE0721F48091DD028E7FD5 -:1008700032C0CC30F0E7DF0721F48091DD028D7FBC -:100880002AC0CD3020E7D20721F48091DD028B7F92 -:1008900022C0CE3080E7D80719F48091DD021AC05B -:1008A0008091DD02CF3090E7D90711F48F7E13C01D -:1008B000C031E0E7DE0711F48F7D0DC0C131F0E7F4 -:1008C000DF0711F48F7B07C0C231D04711F48F7757 -:1008D00002C08B7F877F8093DD028091DD020E94C2 -:1008E000551D6BC0C11580E7D80741F0C130D04716 -:1008F000F1F081E08093440180934501C801DF91CC -:10090000CF911F910F910C945103C43120E7D2076E -:1009100008F04BC0C23080E7D80708F048CFC115B7 -:1009200090E7D90709F42BCFC130D04711F7F80170 -:100930008281882319F38091CC0281608093CC025C -:100940003CC0C333E0E7DE07A1F4F80182818823CD -:1009500021F01092440182E017C08091440181117E -:1009600006C086E20E94151186E20E94DD1182E037 -:1009700019C0C433D04709F0BCCFF8018281882365 -:1009800031F01092450180E20E942C1216C0809135 -:100990004501811106C087E20E94151187E20E947D -:1009A000DD1180E20E94331208C0C333F0E7DF0795 -:1009B00061F2C433D04709F39CCF80E0DF91CF913F -:1009C0001F910F9108950C942F030C9433032DE085 -:1009D000729FF001112434E3839FE00DF11D112477 -:1009E000E60FF11DEE0FFF1FE154FE4F859194912C -:1009F0000E949B06811540E5940708F047C08115C9 -:100A000020E4920708F013C1883E910520F5803E4E -:100A1000910508F07CC1883A910578F4853A9105F2 -:100A200008F0A5C08130910509F471C108F42EC108 -:100A30008430910508F06BC129C18B3B910508F406 -:100A4000A1C0803C910508F421C1FC01EE0FFF1FFD -:100A5000E150F040E6C0811530E2930758F481156B -:100A600041E0940708F053C1803F910508F40EC19E -:100A700090650895811520E3920708F0D5C0FC0128 -:100A8000FF70EE0FFF1FE158FE4FCBC0811535E51B -:100A9000930708F043C0811544E5940708F0DEC0D1 -:100AA000811522E5920708F5811531E5930708F0D5 -:100AB000C1C0482F437021E030E002C0220F331F35 -:100AC0004A95E2F73C68AC0164E0569547956A9513 -:100AD000E1F74370342B8F708695869540E2849FB2 -:100AE000C0011124822B932B0895282F269526953B -:100AF000AC01437055278115934508F0A0C080E2F2 -:100B0000289F9001112481E090E002C0880F991F76 -:100B10004A95E2F7822B932B9C6808958F3240E729 -:100B2000940790F48F3120E7920708F0A2C0811556 -:100B300036E5930708F497C09C01305621153041E3 -:100B400008F0A4C09F7093C0803320E7920709F497 -:100B500097C008F492C0813340E7940709F493C02A -:100B60008233904709F092C080E093ED0895853A72 -:100B7000910509F48EC0863A910509F08DC082E88E -:100B800090E40895883A910509F489C0893A91055D -:100B900009F488C08A3A910509F487C08B3A910517 -:100BA00009F486C08C3A910509F485C08D3A910507 -:100BB00009F484C0803B910509F483C08E3A910505 -:100BC00009F482C08F3A910509F481C0813B9105F7 -:100BD00009F480C0823B910509F47FC0833B9105F5 -:100BE00009F47EC0843B910509F47DC0853B9105E5 -:100BF00009F47CC0863B910509F47BC0873B9105D5 -:100C000009F47AC0883B910509F479C0893B9105C4 -:100C100009F478C08A3B910509F477C080E094E438 -:100C200008958591949108959927906C08959F70E7 -:100C3000906A0895982F8827816F906A089590E2AE -:100C4000299F9001112481E090E002C0880F991F34 -:100C50004A95E2F7822B932B9A680895982F88275C -:100C6000846F906A08958F719927982F88279062D2 -:100C700008958F519047946D089580E091ED089507 -:100C800080E090ED089580E092ED089580E090E09E -:100C9000089581E890E4089583E890E4089582EE51 -:100CA00094E4089589EE94E408958AEE94E4089516 -:100CB00085EB94E4089586EB94E4089587EB94E43F -:100CC00008958CEC94E408958DEC94E4089583E801 -:100CD00095E408958AE895E4089582E995E40895F5 -:100CE00084E995E4089581E296E4089583E296E428 -:100CF000089584E296E4089585E296E4089586E2F4 -:100D000096E4089587E296E408958AE296E40895C9 -:100D100008959DE0799FF001112494E3899FE00DEF -:100D2000F11D1124E60FF11DEE0FFF1FE154FE4FE0 -:100D30008591949108958238910549F1B0F48133F9 -:100D4000910509F458C048F48932910509F44EC060 -:100D50008A32910509F454C008958533910509F448 -:100D600040C08933910599F00895833E910529F19A -:100D700038F4803E910591F0823E9105A1F00895EE -:100D8000863E9105F9F0873E910531F10895209155 -:100D9000DD0220FD3AC021FD38C008958091DD02BA -:100DA00080FD35C032C08091DD0282FF32C080916B -:100DB000DD0284FD30C083EE39C08091DD0282FD0A -:100DC00028C0F5CF8091DD0283FF27C08091DD022E -:100DD00084FD21C087EE2AC08091DD0283FD1DC005 -:100DE000F5CF8091DD0285FD1AC01BC08091DD0228 -:100DF00085FD17C014C08091DD0286FD14C015C0AA -:100E00008091DD0286FD11C00EC080EE0FC089E327 -:100E10000DC082EE0BC080E009C086EE07C089E2FB -:100E200005C085E303C08AE201C081E390E0089534 -:100E300008950C941807E82FF0E0EF5DFE4F8081D5 -:100E4000E82FEF70F0E082958F7021E030E0A9018B -:100E500002C0440F551F8A95E2F740A308950F93EF -:100E60001F93CF93DF9385B7806885BF85B7806870 -:100E700085BFC3E0D0E001E010E0FE01EF5DFE4F72 -:100E80008081E82FEF70F0E021A182958F70A8019A -:100E900002C0440F551F8A95E2F7CA01822B81A335 -:100EA0008C2F0E941B07219740F78CE090E061E0B7 -:100EB00070E0FC01EC5EFE4F2081E22FEF70F0E06D -:100EC00042A122952F70DB0102C0AA0FBB1F2A95F9 -:100ED000E2F79D01242B22A3019758F7DF91CF91D0 -:100EE0001F910F910C94E304EF92FF920F931F93C5 -:100EF000CF93DF9308E511E0C3E0EE24E394F12CF7 -:100F0000D5E08C2F0E941B078CE090E040E050E081 -:100F1000FC01EC5EFE4F6081E62FEF70F0E020A157 -:100F200030E062956F7002C0359527956A95E2F7BB -:100F300020FD09C09701082E02C0220F331F0A941A -:100F4000E2F7422B532B019718F7F8019291829107 -:100F50008F018417950721F051834083D0930001BE -:100F60008C2F0E941B07C15060F68091000187FD05 -:100F70002CC08150809300018F3F39F08FE99FE0B2 -:100F80000197F1F700C0000020C0809156019091B8 -:100F9000570190935F0180935E018091540190917D -:100FA000550190935D0180935C0180915201909175 -:100FB000530190935B0180935A018091500190916D -:100FC000510190935901809358010E94E50481E0FA -:100FD000DF91CF911F910F91FF90EF900895E82F2F -:100FE000F0E0EE0FFF1FE85AFE4F808191810895D7 -:100FF000089580916C0108950F931F93CF93DF9311 -:1010000000D000D01F92CDB7DEB79C018091610166 -:10101000909162012817390709F493C03093620157 -:1010200020936101223E3105F1F1293E310559F14C -:101030002A3E310559F1253B310559F1263B310551 -:1010400051F1273B310551F12C3C310561F12D3C2B -:10105000310531F1233881E0380729F12A3891E050 -:10106000390709F1223981E03807E9F0243991E0A4 -:101070003907C9F0213282E03807B9F0233292E013 -:10108000390789F415C090E040E114C090E040E2D7 -:1010900011C092E001C094E040E00CC090E1FCCFB0 -:1010A00090E040E407C090E0F7CF90E044E002C059 -:1010B00090E041E089018DEF4C839D830E94990F60 -:1010C00080E00E94990F82E00E94990F4C81842F4A -:1010D0000E94990F9D81892F0E94990F80E00E94A4 -:1010E000990F80E00E94990F80E00E94990F80E0A4 -:1010F0000E94990F8091E302843019F583E089837F -:101100001B830A838093E9008FEF9091E800815060 -:1011100095FD06C095ED9A95F1F700008111F5CF88 -:101120008091E80085FF0DC040E050E063E070E092 -:10113000CE0101960E94070B8091E8008E77809384 -:10114000E8000F900F900F900F900F90DF91CF91CC -:101150001F910F910895CF93DF9300D01F92CDB7C9 -:10116000DEB72091E302243021F522E029839B831E -:101170008A8383E08093E9008FEF9091E8008150AB -:1011800095FD06C095ED9A95F1F700008111F5CF18 -:101190008091E80085FF0DC040E050E063E070E022 -:1011A000CE0101960E94070B8091E8008E77809314 -:1011B000E8000F900F900F90DF91CF910895CF939B -:1011C000DF93EC018DEF0E94990F80E00E94990F50 -:1011D00083E00E94990F88810E94990F89810E9463 -:1011E000990F8A810E94990F8B810E94990F8C819F -:1011F0000E94990F80E00E94990F8091E302843051 -:10120000F9F482E08093E9008FEF9091E80081503B -:1012100095FD06C095ED9A95F1F700008111F5CF87 -:101220008091E80085FF0CC040E050E065E070E090 -:10123000CE010E94070B8091E8008E778093E80032 -:10124000DF91CF910895EF92FF920F931F93CF9369 -:10125000DF93EC018DEF0E94990F8E017E0188E0F3 -:10126000E80EF11CF80181918F010E94990F0E1573 -:101270001F05C1F78091E302843039F581E0809346 -:10128000E9008FEF9091E800815095FD06C0F5EDE3 -:10129000FA95F1F700008111F5CF8091E80085FF04 -:1012A00014C040E050E068E070E0CE010E94070BFF -:1012B0008091E8008E778093E80088E0FE01A4E644 -:1012C000B1E001900D928A95E1F7DF91CF911F91E6 -:1012D0000F91FF90EF9008958091E202811109C073 -:1012E0000E949C0C0E94F90C8091E2008460809323 -:1012F000E20008951092E2020895089508950C9472 -:10130000EA1A209160012F5F822F62E30E94652319 -:10131000992319F020936001089510926001809143 -:101320006301882371F18091E302843041F580915B -:10133000E9008F702091EC00922F917020FD90E8D1 -:10134000892B94E09093E9009091EB0090FF14C0FA -:101350009091EE0097FF10C09091E80095FF03C0B8 -:101360001092F100F9CF9091E80090FF05C09091A4 -:10137000E8009E779093E8008F708093E9001092C8 -:101380006301089542E061EC81E00E94160C42E0A6 -:1013900061EC82E00E94160C42E061EC83E00E9466 -:1013A000160C42E261EC84E00C94160C8091E5028C -:1013B000833009F453C030F4813071F0823009F485 -:1013C0008CC008958A3009F478C08B3009F45EC06F -:1013D000893009F09AC020C08091E402813A09F076 -:1013E00094C08091E800877F8093E8008091E802B4 -:1013F0009091E902892B21F468E084E691E003C032 -:1014000060E080E090E070E00E94520B8091E80084 -:101410008B778093E80008958091E402813209F08F -:1014200074C08091E8029091E902892B09F06DC0A7 -:101430008091E800877F8093E8008091E80082FD3A -:1014400005C08091E3028111F8CF5FC08091F10067 -:1014500080936C018091E8008B7753C08091E40207 -:10146000813A09F052C08091E8029091E902892BFB -:1014700009F04BC08091E800877F8093E80080915D -:10148000E80080FFFCCF80910B0136C08091E40220 -:101490008132D9F58091E8029091E902892BA9F572 -:1014A0008091E800877F8093E8000E944B0C809138 -:1014B000E60280930B010C94C0148091E402813207 -:1014C00021F58091E800877F8093E8000E944B0C13 -:1014D0008091E70280936D0108958091E402813A42 -:1014E000A1F48091E800877F8093E8008091E80074 -:1014F00080FFFCCF80916D018093F1008091E80026 -:101500008E778093E8000C944B0C089584B7877F06 -:1015100084BF88E10FB6F894809360001092600059 -:101520000FBE80E880936100109261000E942D1030 -:101530000E949C0C0E94F90C8091E20084608093D0 -:10154000E20078940E949B0F0E947E0F0E942F1051 -:1015500081E091E00E94D90F0E943710FDCF292F22 -:10156000332723303105C9F064F42130310581F08F -:101570002230310509F043C084E790E02BEE33E0E0 -:1015800042C021323105F1F02232310541F137C03C -:1015900082E190E02FE534E036C099278130910553 -:1015A00041F08230910541F0892B49F5E7EEF3E0F7 -:1015B00005C0E3EDF3E002C0E7ECF3E0849190E0D6 -:1015C0009F0121C06430D8F4E62FF0E0EE0FFF1F3A -:1015D000EF5CFE4F2081318189E090E014C06430DF -:1015E00070F470E0FB01EE0FFF1FE75DFE4F2081FE -:1015F0003181FB01EB5DFE4F808190E004C080E013 -:1016000090E020E030E0FA01318320830895CF920A -:10161000DF92EF92FF920F931F93CF93DF93EC0132 -:101620008B016A010E946A0C811133C0C114D1047C -:1016300039F0F60180819181081B190BC80FD91F61 -:10164000E12CF12C0115110519F18091E80085FDBF -:1016500016C08091E8008E778093E800C114D10411 -:1016600049F0F60180819181E80EF91EF182E08255 -:1016700085E00FC00E946A0C882321F30AC089917B -:101680008093F10001501109FFEFEF1AFF0ADACF42 -:1016900080E0DF91CF911F910F91FF90EF90DF904D -:1016A000CF9008952091EA023091EB022617370778 -:1016B00048F06115710539F42091E8002E772093E8 -:1016C000E80001C0B90140E061157105A9F1209160 -:1016D000E302222309F443C0253009F442C02091DB -:1016E000E80023FD40C02091E80022FD32C0209197 -:1016F000E80020FFE9CF4091F3002091F20030E0B4 -:10170000342BFC01CF016115710559F028303105EA -:1017100040F481918093F100615071092F5F3F4F38 -:10172000F1CF41E02830310509F040E02091E80098 -:101730002E772093E800C8CF4111C9CF0AC080910D -:10174000E302882361F0853061F08091E80083FD39 -:101750000AC08091E80082FFF2CF80E0089582E025 -:10176000089583E0089581E008952091EA02309180 -:10177000EB022617370748F06115710539F42091FF -:10178000E8002E772093E80001C0B901FC0120E0B9 -:101790006115710591F18091E302882309F440C03D -:1017A000853009F43FC08091E80083FD3DC0809101 -:1017B000E80082FD2FC08091E80080FFE9CF2091F2 -:1017C000F3008091F20090E0922B6115710559F0C1 -:1017D0008830910540F424912093F10031966150B6 -:1017E00071090196F2CF21E0089709F020E080917D -:1017F000E8008E778093E800CBCF2111CCCF0AC0D0 -:101800008091E302882361F0853061F08091E800E7 -:1018100083FD0AC08091E80082FFF2CF80E0089546 -:1018200082E0089583E0089581E00895982F97302D -:1018300058F59093E900981739F07091EC002091D9 -:10184000ED005091F00003C0242F762F50E021FFCF -:1018500019C03091EB003E7F3093EB003091ED00EA -:101860003D7F3093ED003091EB0031603093EB0021 -:101870007093EC002093ED005093F0002091EE0067 -:1018800027FF07C09F5FD3CF8F708093E90081E06F -:10189000089580E008958091E40287FF11C080914F -:1018A000E80082FD05C08091E3028111F8CF11C0EC -:1018B0008091E8008B770BC08091E302882349F088 -:1018C0008091E80080FFF8CF8091E8008E778093C8 -:1018D000E80008952091E4003091E50095E64091FC -:1018E000EC00842F817040FF22C08091E80080FDD1 -:1018F0001CC08091E302882391F0853091F08091A3 -:10190000EB0085FD10C04091E4005091E5004217C6 -:10191000530729F39A01915011F784E0089582E06A -:10192000089583E0089581E0089580E0089540914E -:10193000E80042FFDECF08950E940A0D0E94120DBA -:10194000E0EEF0E0808181608083E8EDF0E080816E -:101950008F77808319BCA7EDB0E08C918E7F8C933C -:1019600080818F7E80831092E20208950F931F93EF -:10197000CF93DF930E940A0D0E94120DC8EDD0E0B4 -:1019800088818F77888388818068888388818F7D2C -:10199000888319BC1092E3021092DF021092E102D8 -:1019A0001092E00200EE10E0F80180818B7F8083CE -:1019B00088818160888342E060E080E00E94160CAC -:1019C000E1EEF0E080818E7F8083E2EEF0E08081C6 -:1019D00081608083808188608083F80180818E7F30 -:1019E0008083888180618883DF91CF911F910F91DF -:1019F0000895E8EDF0E080818F7E8083E7EDF0E0F0 -:101A000080818160808384E082BF81E08093E202F4 -:101A10000C94B60CE8EDF0E080818E7F808310920C -:101A2000E20008951092DA001092E10008951F92EA -:101A30000F920FB60F9211242F933F934F935F9302 -:101A40006F937F938F939F93AF93BF93EF93FF9386 -:101A50008091E10082FF0BC08091E20082FF07C00D -:101A60008091E1008B7F8093E1000E948109809149 -:101A7000DA0080FF1FC08091D80080FF1BC08091DA -:101A8000DA008E7F8093DA008091D90080FF0DC04C -:101A900080E189BD82E189BD09B400FEFDCF81E00E -:101AA0008093E3020E946C0905C019BC1092E30206 -:101AB0000E947A098091E10080FF19C08091E200C4 -:101AC00080FF15C08091E2008E7F8093E2008091BC -:101AD000E20080618093E2008091D8008062809370 -:101AE000D80019BC85E08093E3020E947E098091B2 -:101AF000E10084FF30C08091E20084FF2CC080E1CF -:101B000089BD82E189BD09B400FEFDCF8091D80076 -:101B10008F7D8093D8008091E1008F7E8093E100DB -:101B20008091E2008F7E8093E2008091E2008160EC -:101B30008093E2008091DF02882311F084E007C0E7 -:101B40008091E30087FD02C081E001C083E08093C3 -:101B5000E3020E947F098091E10083FF29C0809108 -:101B6000E20083FF25C08091E100877F8093E10040 -:101B700082E08093E3021092DF028091E1008E7F89 -:101B80008093E1008091E2008E7F8093E20080915B -:101B9000E20080618093E20042E060E080E00E9429 -:101BA000160C8091F00088608093F0000E947D09FF -:101BB000FF91EF91BF91AF919F918F917F916F9125 -:101BC0005F914F913F912F910F900FBE0F901F90FB -:101BD00018951F920F920FB60F9211242F933F93D7 -:101BE0004F935F936F937F938F939F93AF93BF9325 -:101BF000CF93DF93EF93FF93C091E900CF70809173 -:101C0000EC00D82FD17080FDD0E81092E9008091CF -:101C1000F000877F8093F00078940E942D0E109240 -:101C2000E9008091F00088608093F000CD2BCF70A8 -:101C3000C093E900FF91EF91DF91CF91BF91AF91F8 -:101C40009F918F917F916F915F914F913F912F91D4 -:101C50000F900FBE0F901F9018951F93CF93DF9397 -:101C6000CDB7DEB7AA970FB6F894DEBF0FBECDBFD3 -:101C7000E4EEF2E088E08E0F9091F10091938E13E4 -:101C8000FBCF0E94D6098091E80083FF1FC180919D -:101C9000E4029091E502492F50E04A30510508F0E6 -:101CA00015C1FA01EA5AFF4F0C948523803881F060 -:101CB000823809F00BC18091E8028F708093E900AF -:101CC0008091EB0085FB882780F91092E90006C01F -:101CD0008091E0029091E102911182609091E80080 -:101CE000977F9093E8008093F1001092F100C8C0B4 -:101CF000282F2D7F09F0EAC0882319F0823061F087 -:101D0000E5C08091E602813009F0E0C0933009F02F -:101D100080E08093E1022BC08091E602811127C010 -:101D20008091E8028F7009F4D1C08093E90020917E -:101D3000EB0020FF1CC0933021F48091EB00806207 -:101D400014C09091EB0090619093EB0021E030E0A3 -:101D5000A90102C0440F551F8A95E2F74093EA009B -:101D60001092EA008091EB0088608093EB00109263 -:101D7000E9008091E800877F86C08111A7C010919B -:101D8000E6021F778091E3008078812B8093E30047 -:101D90008091E800877F8093E8000E944B0C80913F -:101DA000E80080FFFCCF8091E30080688093E3002F -:101DB000111102C082E001C083E08093E30286C07B -:101DC0008058823008F082C08091E6029091E7024C -:101DD0008C3D53E0950779F583E08A838AE2898315 -:101DE0004FB7F894DE01139620E03EE051E2E32F76 -:101DF000F0E050935700E49120FF03C0E295EF70AC -:101E00003F5FEF708E2F90E0EA3010F0C79601C070 -:101E1000C0968D939D932F5F243149F74FBF8091DA -:101E2000E800877F8093E8006AE270E0CE010196C7 -:101E30000E94520B14C0AE014F5F5F4F6091E802E9 -:101E40000E94AF0ABC01009709F440C09091E800DD -:101E5000977F9093E80089819A810E94B50B8091C9 -:101E6000E8008B778093E80031C0803879F5809165 -:101E7000E800877F8093E8008091DF028093F10083 -:101E80008091E8008E778093E8000E944B0C1EC082 -:101E900081111CC09091E6029230C0F48091E8005C -:101EA000877F8093E8009093DF020E944B0C809123 -:101EB000DF02811106C08091E30087FD02C081E04E -:101EC00001C084E08093E3020E94C2098091E8008F -:101ED00083FF0AC08091E800877F8093E8008091AB -:101EE000EB0080628093EB00AA960FB6F894DEBFF9 -:101EF0000FBECDBFDF91CF911F910895CF938091F9 -:101F0000E3028823A1F0C091E900CF709091EC002A -:101F1000892F817090FD80E8C82B1092E900809194 -:101F2000E80083FD0E942D0ECF70C093E900CF9191 -:101F300008950C94A80F87E68093CC001092CD00F2 -:101F400088E08093C90086E08093CA007894089561 -:101F50009091C80095FFFCCF8093CE0008951F920A -:101F60000F920FB60F9211242F933F934F938F939D -:101F70009F93EF93FF9380916F0190E09C012F5FFF -:101F80003F4F40916E01421741F03091CE00FC016D -:101F9000E059FE4F308320936F01FF91EF919F91A5 -:101FA0008F914F913F912F910F900FBE0F901F90E7 -:101FB000189590937502809374020895E0917402CD -:101FC000F0917502309721F00190F081E02D099495 -:101FD00080E00895E0917402F0917502309721F04D -:101FE0000280F381E02D09940895E0917402F0914C -:101FF0007502309721F00480F581E02D0994089551 -:1020000020917202309173028217930771F09093BE -:10201000730280937202E0917402F091750230971E -:1020200021F00680F781E02D099408952091700237 -:10203000309171028217930771F09093710280932F -:102040007002E0917402F0917502309721F00084E3 -:10205000F185E02D0994089508950C942C100E94A8 -:102060001E1B0E942F070E94EC1B0C94AC215F9258 -:102070006F927F928F929F92AF92BF92CF92DF9298 -:10208000EF92FF920F931F93CF93DF9300D000D076 -:102090001F92CDB7DEB70E9474079FE7C92E92E06A -:1020A000D92E03E010E0AA24A394B12C502E802F47 -:1020B0000E94EF074C01F601729062906F01682652 -:1020C000792661147104A1F40150110978F78FEF9A -:1020D00089838A831B820E94271B8160782F9D83BE -:1020E0008C8349815A816B818D810E94E71038C0B1 -:1020F0008091CC0281FD0E94F8072CE030E0750150 -:10210000022E02C0EE0CFF1C0A94E2F7C7018621E2 -:102110009721892B09F129835A828E209F2091E0F3 -:10212000892809F490E09B830E94271B8160782F07 -:102130009D838C8349815A816B818D810E94E71038 -:10214000000F111FF801E958FD4F80819181E826A9 -:10215000F926F182E08204C02150310980F6B4CF23 -:102160000E94DD1E109176020E94DE0F1817D1F03A -:102170000E94DE0F809376020F900F900F900F90C9 -:102180000F90DF91CF911F910F91FF90EF90DF9013 -:10219000CF90BF90AF909F908F907F906F905F9007 -:1021A0000C9419070F900F900F900F900F90DF91E4 -:1021B000CF911F910F91FF90EF90DF90CF90BF9044 -:1021C000AF909F908F907F906F905F900895CF9386 -:1021D000DF93CDB7DEB72B970FB6F894DEBF0FBEF7 -:1021E000CDBF4F83588769877A878B87DE01119629 -:1021F00086E0FD0111928A95E9F785E0FE013796A8 -:1022000001900D928A95E1F749815A816B817C8119 -:102210008D819E810E945E172B960FB6F894DEBFCB -:102220000FBECDBFDF91CF910895CF93882309F4DE -:10223000C2C0C82F823859F40E94DE0F81FDBBC096 -:1022400089E30E94381A0E94BB1A89E30CC08338C4 -:1022500079F40E94DE0F80FDAEC083E50E94381A3B -:102260000E94BB1A83E50E94551ACF910C94BB1AA9 -:10227000843859F40E94DE0F82FD9DC087E40E94DD -:10228000381A0E94BB1A87E4EECF8CEF8C0F813A8C -:1022900048F48C2F0E94152181118DC08C2F0E9433 -:1022A000381AE3CF80E28C0F883048F4C77081E0A1 -:1022B00001C0880FCA95EAF70E94741AD6CF8BE541 -:1022C0008C0F833078F4C53A29F0C63A31F083E8B0 -:1022D00090E005C081E890E002C082E890E0CF91F4 -:1022E0000C94001088E58C0F833108F064C0C83A64 -:1022F00039F1C93A41F1CA3A49F1CB3A51F1CC3AF4 -:1023000059F1CD3A61F1C03B69F1CE3A71F1CF3A62 -:1023100079F1C13B81F1C23B89F1C33B91F1C43BEF -:1023200099F1C53BA1F1C63BA9F1C73BB1F1C83B4F -:10233000B9F1C93BC1F1CA3BC9F180E090E038C0B6 -:1023400082EE90E035C089EE90E032C08AEE90E0F7 -:102350002FC085EB90E02CC086EB90E029C087EB86 -:1023600090E026C08CEC90E023C08DEC90E020C083 -:1023700083E891E01DC08AE891E01AC082E991E00B -:1023800017C084E991E014C081E292E011C083E2B9 -:1023900092E00EC084E292E00BC085E292E008C0B9 -:1023A00086E292E005C087E292E002C08AE292E013 -:1023B000CF910C941610CF910895882309F44BC047 -:1023C000823859F40E94DE0F81FF45C089E30E94E4 -:1023D000381A0E94BB1A89E30CC0833871F40E943A -:1023E000DE0F80FF38C083E50E94381A0E94BB1AB6 -:1023F00083E50E94551A0C94BB1A843859F40E9444 -:10240000DE0F82FF28C087E40E94381A0E94BB1AA0 -:1024100087E4EFCF9CEF980F913A58F390E2980F32 -:10242000983050F4877091E001C0990F8A95EAF7CF -:10243000892F0E947A1ADFCF9BE5980F933020F402 -:1024400080E090E00C940010885A833120F480E002 -:1024500090E00C9416100895882321F00E94741ABD -:102460000C94BB1A0895882321F00E947A1A0C94C8 -:10247000BB1A08957F928F929F92AF92BF92CF9294 -:10248000DF92EF92FF920F931F93CF93DF931F92F0 -:10249000CDB7DEB77C01C62E772EFC0105810295F3 -:1024A0000F70128111110E94911A0E94311A882313 -:1024B00079F0112369F080E28C0D883048F082E0D9 -:1024C0000E941A1A0E94311A91E0D82ED92601C012 -:1024D000D12CE72DE295EF70F0E0E05AFF4F0C941D -:1024E0008523872D807F072D0F70882311F002959B -:1024F000007F112389F0002309F499C180E28C0D3B -:10250000883020F4802F0E94741A03C0802F0E940C -:10251000841A0E94BB1A8BC18C2D0E94DD110023EE -:1025200009F4C3C180E28C0D883020F4802F0E9412 -:102530007A1A03C0802F0E948A1A0E94BB1AB5C162 -:10254000872D807F972D9F70803211F4892F03C0D3 -:10255000892F8295807FCC2021F0F1E0CF16A1F069 -:102560001DC0112339F0002319F1013009F50E9433 -:10257000A41A9BC1002319F0013009F496C1898384 -:102580000E94A71A898110C1112321F0063008F09A -:102590008CC10EC0053008F088C106C1112359F066 -:1025A000002331F0F701958190FF41C19F70958321 -:1025B0000E942C127AC1002309F4F6C03EC1872D77 -:1025C00086958695837090E0009719F0019761F0E9 -:1025D0006CC1112321F08C2D972D937002C080E0E7 -:1025E00090E00E94001061C1112321F08C2D972DE5 -:1025F000937002C080E090E00E94161056C18C2DAE -:10260000112319F00E94E51D02C00E944D1E0E9478 -:10261000D21E4BC1872D837009F052C0111145C1E4 -:102620008C2D829586958770880F880F9C2D9F70C2 -:10263000892E912CA12CB12C082E04C0880C991C39 -:10264000AA1CBB1C0A94D2F7C4FE14C00FE010E011 -:1026500020E030E0B901A80104C0440F551F661FF7 -:10266000771F8A95D2F7CB01BA0160957095809556 -:10267000909503C060E070E0CB01272D269526954C -:10268000237030E02230310569F02330310589F0C4 -:10269000682979298A299B292130310571F00E9406 -:1026A000A61803C1682979298A299B290E94C21882 -:1026B000FCC00E94A618C501B4010E948A18F5C08A -:1026C000112319F0872D817001C08695882309F4A4 -:1026D000ECC08C2D829586958770880F880F9C2D75 -:1026E0009F70892E912CA12CB12C082E04C0880C2F -:1026F000991CAA1CBB1C0A94D2F7C4FE14C00FE09C -:1027000010E020E030E0B901A80104C0440F551FDB -:10271000661F771F8A95D2F7CB01BA016095709535 -:102720008095909503C060E070E0CB01272D269541 -:1027300026952370422F50E04230510569F0433016 -:10274000510589F0682979298A299B294130510549 -:1027500071F00E948019A9C0682979298A299B29CA -:102760000E949C19A2C00E948019C501B4010E9458 -:1027700064199BC08C2D90E0FC01E05EF109E5310D -:10278000F10508F050C0E059FF4F0C9485230C2D43 -:102790000F70872D8F71112321F00E94FD18802F5B -:1027A00007CF0E941E19802F0E9433127EC0112372 -:1027B00041F0053008F079C0872D8F710E944319D0 -:1027C00074C0063008F071C0F7CF112339F0872D9F -:1027D0008F710E94FD1869C01123C9F3872D8F7175 -:1027E0000E941E1962C0112329F0872D8F710E944B -:1027F000E8185BC00E94DE1858C0112351F0172D55 -:102800001F71812F0E94FD1863E0812F0E94111A11 -:102810004CC081E00E941A1A023008F446C082E0DF -:102820000E941A1A42C0112331F0002381F28C2D2C -:102830000E9415113AC0002389F28C2D0E94DD11EF -:1028400034C0472D4F706C2DC7010E9435030E9484 -:1028500002182BC0111129C0472D4F7050E0423093 -:102860005105B9F04CF44115510581F04130510545 -:10287000E1F40E94D42119C04330510569F044307D -:10288000510599F48C2D0E9426220FC00E94BD2173 -:102890000CC00E94F02109C00E94032206C0472DEF -:1028A0004F706C2DC7010E948806DD20F9F00E9450 -:1028B0000D1A80FD1BC0F70112820E94071A0E94A8 -:1028C000FD18C7010E9485140E94071A0F90DF911E -:1028D000CF911F910F91FF90EF90DF90CF90BF901D -:1028E000AF909F908F907F900C941E190F90DF9166 -:1028F000CF911F910F91FF90EF90DF90CF90BF90FD -:10290000AF909F908F907F9008950F931F93CF93D8 -:10291000DF93EC01888199812B813C81232BB9F0D5 -:102920009F3F11F48F3F99F0CE010E9458038823F6 -:1029300071F0688179818A810E94031A8C010E945A -:10294000B8190E947F18B801CE010E943A12DF9197 -:10295000CF911F910F9108950E94911A0E94A11A80 -:102960000E94661A0E94BB1A0E94831F0E94D21EF8 -:1029700080E090E00E94001080E090E00C9416103F -:102980000E94811A0C94AC140E94F819292F2295E8 -:102990002F7030E02C3031054CF42A3031056CF4C6 -:1029A0002250310922303105A8F407C02C303105FE -:1029B00069F02F30310551F00DC0803F69F018F4F7 -:1029C000803E40F409C0843F29F406C093FB882769 -:1029D00080F9089580E0089581E00895CF93DF9312 -:1029E00000D000D01F92CDB7DEB70F900F900F90A0 -:1029F0000F900F90DF91CF910895CF93DF9300D088 -:102A000000D000D0CDB7DEB726960FB6F894DEBF63 -:102A10000FBECDBFDF91CF9108951F93CF93DF936A -:102A2000C0917F0216E080918002C81799F0D0E033 -:102A30001C9FF0011D9FF00D1124EF57FD4F4081A9 -:102A4000518162817381848195810E94FD14219658 -:102A5000C770E9CFDF91CF911F9108954091B102E6 -:102A60005091B2026091B3027091B4028091B502AC -:102A70009091B6020C94FD148091B60282958F70ED -:102A800009F054C08091B302882309F44FC08091AB -:102A90007F02A09180026091B1027091B2024091D8 -:102AA000B4025091B502B6E08A1709F43FC090E035 -:102AB00041155105C1F17F3F11F46F3FA1F1B89F5E -:102AC000F001B99FF00D1124EF57FD4F21817213D2 -:102AD0002AC02081621327C02281211124C02381B2 -:102AE00034812417350710F421503109241B350B8C -:102AF000283C3105C0F42091B6022F70206120934C -:102B0000B60226E0289FF001299FF00D1124EA5714 -:102B1000FD4F80818F708061808381EB92E00E9405 -:102B200085140C940D1501968770BECF0895CF9231 -:102B3000DF92EF92FF920F931F93CF93DF93CDB766 -:102B4000DEB762970FB6F894DEBF0FBECDBF8C0123 -:102B500085E0F801DE011D9601900D928A95E1F75E -:102B6000D8014C9111965C91119712966C91129725 -:102B70001396CD90DC9014973091B1027091B2020F -:102B80008091B4029091B502009709F46BC17F3F28 -:102B900019F43F3F09F466C1E090B302EE2009F456 -:102BA000C0C02091B602C816D90628F0F601E81B6D -:102BB000F90BCF0104C0809590958C0D9D1DFF24CD -:102BC000F394883C910578F0F12C207F09F0C6C081 -:102BD0007C2DD98AC88A89890E94EE1481EB92E003 -:102BE0000E948514B1C0822F807F09F046C0751302 -:102BF00014C0341312C0611110C02F7020612093D3 -:102C0000B6020E942E1581EB92E00E9485148091FD -:102C1000B602D80115968C932EC0CD2819F15F3FCE -:102C200011F44F3FF9F0F62E61111CC080917F0224 -:102C30002091800236E0821709F45AC090E0389F54 -:102C4000F001399FF00D1124EF57FD4F718157139B -:102C500006C07081471303C07281711103C00196D1 -:102C60008770E9CFF62E662309F418C18091B60269 -:102C700081608093B602F12C11C1751308C0341322 -:102C800006C0611104C08091B602D801C3C04D874F -:102C90005E878D859E856A8B0E94C4146A8988230D -:102CA000E1F16623D1F12091B602822F82958F70D7 -:102CB00090E0029774F08091B1029091B2029887EF -:102CC0008F831986DB86CA862C87CE0107960E94E1 -:102CD000851486E0F801A1EBB2E001900D928A958F -:102CE000E1F70E943C150E942E15FF24F394D6C0F4 -:102CF0004D875E878D859E850E94F819292F229524 -:102D00002F7030E0223031050CF0BCC09F7009F00C -:102D1000B6C0805E883008F4C1C0C8010E94851426 -:102D2000E4CFC816D90608F453C0F601E81BF90B26 -:102D3000CF01883C910508F450C0F12C7C2DD98A34 -:102D4000C88A89890E94EE14E1EBF2E086E0DF0197 -:102D50001D928A95E9F70E942E15A0C0751314C024 -:102D6000341312C0611110C08091B602F80185833E -:102D7000C8010E94851486E0E1EBF2E0DF011D92BC -:102D80008A95E9F7FE2C8AC04D875E878D859E85E2 -:102D90006A8B0E94C4146A89882309F4BECF662313 -:102DA00009F4BBCF2091B602822F82958F7090E0FC -:102DB00002970CF48ECF8091B1029091B2029A8367 -:102DC00089831B82DD82CC822E83CE0101967FCF48 -:102DD000809590958C0D9D1DACCFF62E662309F441 -:102DE0009CCF75132EC034132CC02091B60220FD49 -:102DF0001FC0822F82958F70D9F0D80115962C9321 -:102E000015978F3049F08F5F982F9295907F822F82 -:102E10008F70892B15968C93C8010E94851486E0CB -:102E2000F801A1EBB2E001900D928A95E1F793CF02 -:102E300086E0F801A1EBB2E001900D928A95E1F7EE -:102E40002DC04D875E878D859E850E94C41481119B -:102E500040CF8091B60281608093B602C8010E9483 -:102E600085141CC0662309F458CF4D875E878D8575 -:102E70009E850E94C414882309F44FCF2ACF811164 -:102E800048CF0CC0243031050CF047CF9F7009F4B7 -:102E900040CFF8019581907F09F03BCF8F2D62964E -:102EA0000FB6F894DEBF0FBECDBFDF91CF911F915B -:102EB0000F91FF90EF90DF90CF9008951F93CF93E5 -:102EC000DF93CDB7DEB72C970FB6F894DEBF0FBEF9 -:102ED000CDBF4F83588769877A878B879C87CE01C0 -:102EE00007960E949715882369F08F8198852A8517 -:102EF0003B85232BF1F19F3F09F063C08F3F09F021 -:102F000060C037C086E0FE013796DE011196019061 -:102F10000D928A95E1F76F817885EA85FB85309778 -:102F200041F17F3F11F46F3F21F12091800230E0A9 -:102F3000C90101968770992740917F0250E084175C -:102F4000950709F447C069837A83FD83EC8396E093 -:102F5000929FD001939FB00D1124AF57BD4FFE013A -:102F6000319601900D929A95E1F7809380020E942C -:102F70000D1516E080917F02909180028917C1F1B2 -:102F8000189FC00111248F579D4F0E9497158823C9 -:102F900079F1E0917F021E9FF0011124EF57FD4F60 -:102FA0004081518162817381848195810E94FD14E9 -:102FB00080917F0290E001968770992780937F022D -:102FC000D9CF4F81588569857A858B859C850E94EC -:102FD000FD14CFCF0E94C0141092800210927F0285 -:102FE000E1EBF2E086E0DF011D928A95E9F7C1CFBF -:102FF0002C960FB6F894DEBF0FBECDBFDF91CF91F8 -:103000001F910895EF92FF920F931F93CF93DF9339 -:103010008C01009709F46CC0F12CEE24E394E801D4 -:103020002196F8018491843740F4843008F051C02F -:10303000813081F0823019F15BC0853709F444C0DA -:10304000A8F19CE7980F903708F052C08F770E9444 -:10305000DD1141C00E5F1F4FFE01C49180E28C0F55 -:10306000883048F4C7708E2D01C0880FCA95EAF7E2 -:103070000E94941A14C08C2F0E9415112DC00E5F4F -:103080001F4FFE01C49180E28C0F883058F4C77046 -:103090008E2D01C0880FCA95EAF70E949A1A0E94E5 -:1030A000BB1A1AC08C2F0E94DD1116C00E5F1F4F75 -:1030B000FE01C491CC2381F08FE99FE00197F1F7E5 -:1030C00000C00000C150F6CF0E5F1F4FFE01F4900C -:1030D00003C00E9415118E018F2D882309F49FCF04 -:1030E000EFE9FFE03197F1F700C000008150F5CF24 -:1030F000DF91CF911F910F91FF90EF900895089568 -:103100006093BB027093BC028093BD029093BE0299 -:103110000C94AC140F931F930091BB021091BC024E -:103120002091BD023091BE02DC01CB01802B912B9E -:10313000A22BB32B8093BB029093BC02A093BD0241 -:10314000B093BE021F910F910C94AC140F931F9378 -:103150000091BB021091BC022091BD023091BE02D1 -:10316000DC01CB0180239123A223B3238093BB02F4 -:103170009093BC02A093BD02B093BE021F910F9129 -:103180000C94AC140F931F930091BB021091BC02DE -:103190002091BD023091BE02DC01CB018027912736 -:1031A000A227B3278093BB029093BC02A093BD02D9 -:1031B000B093BE021F910F910C94AC141092B70201 -:1031C0001092B8021092B9021092BA020C94AC1488 -:1031D00041E050E060E070E004C0440F551F661FFE -:1031E000771F8A95D2F74093B7025093B802609345 -:1031F000B9027093BA020C94AC1441E050E060E064 -:1032000070E004C0440F551F661F771F8A95D2F7E0 -:103210008091B7029091B802A091B902B091BA0220 -:10322000482B592B6A2B7B2B4093B7025093B80243 -:103230006093B9027093BA020C94AC1441E050E070 -:1032400060E070E004C0440F551F661F771F8A9529 -:10325000D2F740955095609570958091B702909106 -:10326000B802A091B902B091BA02482359236A2347 -:103270007B234093B7025093B8026093B9027093D6 -:10328000BA020C94AC1441E050E060E070E004C07D -:10329000440F551F661F771F8A95D2F78091B7029A -:1032A0009091B802A091B902B091BA02482759276B -:1032B0006A277B274093B7025093B8026093B90204 -:1032C0007093BA020C94AC140F931F930091B70241 -:1032D0001091B8022091B9023091BA02DC01CB0101 -:1032E000802B912BA22BB32B8093B7029093B80223 -:1032F000A093B902B093BA021F910F910C94AC1431 -:103300000F931F930091B7021091B8022091B90258 -:103310003091BA02DC01CB0180239123A223B32395 -:103320008093B7029093B802A093B902B093BA0207 -:103330001F910F910C94AC140F931F930091B7023F -:103340001091B8022091B9023091BA02DC01CB0190 -:1033500080279127A227B3278093B7029093B802C2 -:10336000A093B902B093BA021F910F910C94AC14C0 -:103370000895CF92DF92EF92FF920F931F93CF9316 -:10338000DF938C01C090BB02D090BC02E090BD02E4 -:10339000F090BE028091B7029091B802A091B9025C -:1033A000B091BA02C82AD92AEA2AFB2ACFE1D0E092 -:1033B000D701C6010C2E04C0B695A79597958795A1 -:1033C0000A94D2F780FF06C0B8018C2F0E94E70450 -:1033D000019721F4219760F780E001C08C2FDF91E5 -:1033E000CF911F910F91FF90EF90DF90CF900895B4 -:1033F000CF93DF93EC010E94B919BE010E94E7044C -:10340000DF91CF910895CB010E94F8190895809122 -:10341000BF0285958595859508958091BF02877037 -:10342000089598E0899F90011124262B2093BF02D4 -:103430000C94FD182091BF02809582238093BF02D7 -:10344000982F977069F430E0482F552747FD509525 -:103450002417350729F08595859585950C941E19B7 -:1034600008959091BF02977081E009F480E008957B -:1034700020910C0130910D01F90132969FEF40E04F -:103480005191581789F09F3F19F4511101C0942FA1 -:103490004F5F4630A9F79F3F39F0F901E90FF11D61 -:1034A00097FDFA9582830895089520910C0130913B -:1034B0000D01F9013296285F3F4F9081981301C0AA -:1034C00010823196E217F307C1F7089581E090E08A -:1034D000E0910C01F0910D01E80FF91F10820196A7 -:1034E00088309105A9F708959091CB02892B80939C -:1034F000CB02089580959091CB0289238093CB02D3 -:1035000008951092CB0208959091CA02892B80935E -:10351000CA02089580959091CA0289238093CA02B5 -:1035200008951092CA0208959091C902892B809340 -:10353000C902089580959091C90289238093C90298 -:1035400008951092C90208958093C00208951092C0 -:10355000C002089580910C0190910D01FC013196FB -:103560009C01285F3F4F80E0919191118F5FE2179E -:10357000F307D1F70895E0910C01F0910D018091CE -:10358000CB028083E0910C01F0910D01908180913C -:10359000CA02892B8083E0910C01F0910D0190818A -:1035A0008091C902892B80838091C002882361F0B9 -:1035B000E0910C01F0910D019081892B80830E9494 -:1035C000AA1A81111092C00280910C0190910D01F4 -:1035D0000C94EA0F0E94C01480E00E9402030E9433 -:1035E000AC210E94DE0F0C9419071F920F920FB6A8 -:1035F0000F9211248F939F93AF93BF938091CD022D -:10360000811113C08091CE029091CF02A091D0027F -:10361000B091D1024196A11DB11D8093CE0290932D -:10362000CF02A093D002B093D102BF91AF919F91EE -:103630008F910F900FBE0F901F90189582E084BD60 -:1036400093E095BD9AEF97BD80936E0008952FB7D4 -:10365000F8948091CE029091CF02A091D002B091C7 -:10366000D1022FBF0895CF92DF92EF92FF920F9376 -:103670001F932FB7F8944091CE025091CF026091E2 -:10368000D0027091D1022FBF6A017B01EE24FF248A -:103690008C0120E030E0C016D106E206F30610F4FB -:1036A000415051099A01281B390BC9011F910F91F3 -:1036B000FF90EF90DF90CF9008951F920F920FB67A -:1036C0000F9211248F939F93AF93BF938091CE025B -:1036D0009091CF02A091D002B091D1020196A11D8C -:1036E000B11D8093CE029093CF02A093D002B093ED -:1036F000D102BF91AF919F918F910F900FBE0F900C -:103700001F9018950E949C0CF8942FEF87EA91E681 -:10371000215080409040E1F700C0000087E090EB2E -:10372000DC018093ED029093EE02A093EF02B09340 -:10373000F0029CE088E10FB6F894A89580936000B1 -:103740000FBE90936000FFCFAF92BF92CF92DF92F7 -:10375000EF92FF920F931F93CF93C3E0CC24C394B7 -:10376000D12CE82EF12C8C2F0E94EF075C010CE08D -:1037700010E09601002E02C0220F331F0A94E2F7D8 -:103780002A213B21232B51F0602F7C2F80E00E94C7 -:103790008906E816F90611F481E006C00150110906 -:1037A00040F7C15000F780E0CF911F910F91FF903B -:1037B000EF90DF90CF90BF90AF900895CF93C82F38 -:1037C0008CE20E94A41B882321F08C2FCF910C94B3 -:1037D000A41B80E0CF910895CF930E94341D8111E6 -:1037E00002C00E94151DC5E6C15049F00E94740731 -:1037F0008FE39CE90197F1F700C00000F5CF89E263 -:103800000E94DE1B81110FC18AE20E94DE1B811122 -:103810000E94151D85E00E94DE1B81110E94821B03 -:103820000E943F1D8093CC0287E00E94DE1B88230C -:10383000A9F18BE10E94DE1B882351F08091CC021C -:1038400081FB222720F991E0922790FB81F90EC09D -:103850008EE00E94DE1B882361F08091CC0282FB07 -:10386000222720F991E0922790FB82F98093CC02E5 -:1038700015C080E10E94DE1B9091CC02882341F0AC -:1038800093FB222720F981E0822780FB93F904C073 -:10389000892F809580FB90F99093CC028091CC0287 -:1038A0000E94431D0E94511D90E09093DE02809380 -:1038B000DD0280EE0E94DE1B882341F08091DD0254 -:1038C000982F909590FB80F98093DD0289E30E9408 -:1038D000DE1B882359F08091DD0281FB222720F92D -:1038E00091E0922790FB81F98093DD0282EE0E94A5 -:1038F000DE1B882359F08091DD0282FB222720F90C -:1039000091E0922790FB82F98093DD0286EE0E947F -:10391000DE1B882359F08091DD0283FB222720F9EA -:1039200091E0922790FB83F98093DD0283EE0E9461 -:10393000DE1B882359F08091DD0284FB222720F9C9 -:1039400091E0922790FB84F98093DD0285E30E9449 -:10395000DE1B882359F08091DD0285FB222720F9A8 -:1039600091E0922790FB85F98093DD0281E30E942C -:10397000DE1B882359F08091DD0286FB222720F987 -:1039800091E0922790FB86F98093DD0281E10E940D -:10399000DE1B882359F08091DD0287FB222720F966 -:1039A00091E0922790FB87F98093DD028091DD0200 -:1039B0000E94551D87E20E94DE1BC82F8EE10E94E7 -:1039C000DE1B8111C2608FE10E94DE1B8111C46089 -:1039D00080E20E94DE1B8111C86081E20E94DE1B32 -:1039E0008111C06182E20E94DE1B8111C06283E20C -:1039F0000E94DE1B8111C06484E20E94DE1B8823CA -:103A000011F0C06802C0CC2329F08C2F0E944C1DFD -:103A10006C2F03C00E94481D682F70E080E090E08A -:103A2000CF910C948018CF9108956DEE7EEF80E0D9 -:103A300090E00E94BF2360E082E090E00E94AD230E -:103A400060E083E090E00E94AD2360E084E090E0DD -:103A50000E94AD2360E085E090E00E94AD2360E02D -:103A600086E090E00C94AD2380E090E00E94A723D4 -:103A700021E08D3E9E4F09F020E0822F089582E0E4 -:103A800090E00C949F23682F82E090E00C94AD238B -:103A900083E090E00C949F23682F83E090E00C94E7 -:103AA000AD2384E090E00C949F23682F84E090E0A5 -:103AB0000C94AD2386E090E00C949F23682F86E061 -:103AC00090E00C94AD238091D40280FF0BC06091F4 -:103AD000110185E0689FB001112475956795759572 -:103AE00067952BC081FF09C06091110185E0689F37 -:103AF000B00111247595679520C082FF07C06091C1 -:103B0000110185E0689FB001112417C09091D50282 -:103B10009923D1F060911001961788F72091110137 -:103B200085E0289F90011124929FA001939F500D42 -:103B3000112470E0CA010E9471236038710540F4BD -:103B40006115710539F002C065E070E0862F0895B7 -:103B50008FE7089581E008958091D40280FF08C026 -:103B600060910F0170E0759567957595679521C017 -:103B700081FF06C060910F0170E07595679519C0CF -:103B800082FF04C060910F0170E010C09091D502D7 -:103B90009923C1F060910E019617A0F780910F0153 -:103BA000899FC001112470E00E9471236038710563 -:103BB00028F46115710521F0862F08958FE7089587 -:103BC00081E0089561E070E0F4CF803F21F40E942D -:103BD000631D819504C0813F29F40E94631D809379 -:103BE000D8020895823F21F40E94631D819504C08C -:103BF000833F29F40E94631D8093D7020895893F73 -:103C000019F40E94AC1D05C08A3F31F40E94AC1D1E -:103C100081958093D90208958B3F21F40E94AC1DB9 -:103C2000819504C08C3F29F40E94AC1D8093DA0278 -:103C30000895843F21F48091D602816017C0853FAA -:103C400021F48091D602826011C0863F21F48091D8 -:103C5000D60284600BC0873F21F48091D602886031 -:103C600005C0883F31F48091D60280618093D602EE -:103C700008958D3F21F48091D40281600BC08E3F66 -:103C800021F48091D402826005C08F3F29F4809195 -:103C9000D40284608093D4020895803F39F48091E7 -:103CA000D80287FF6CC01092D80269C0813F29F406 -:103CB0008091D8021816BCF362C09091D702823F5F -:103CC00029F497FF5CC01092D70259C0833F19F4C2 -:103CD0001916CCF354C0893F41F48091D9021816CB -:103CE0000CF04DC01092D9024AC08A3F29F480914D -:103CF000D90287FF44C0F6CF8B3F39F48091DA02B6 -:103D000087FF3DC01092DA023AC08C3F29F48091BF -:103D1000DA021816BCF333C0843F21F48091D60236 -:103D20008E7F17C0853F21F48091D6028D7F11C010 -:103D3000863F21F48091D6028B7F0BC0873F21F410 -:103D40008091D602877F05C0883F31F48091D602EA -:103D50008F7E8093D60213C08D3F21F48091D402D0 -:103D60008E7F0BC08E3F21F48091D4028D7F05C0E1 -:103D70008F3F29F48091D4028B7F8093D40280916D -:103D8000D70281110EC08091D80281110AC08091A2 -:103D9000D902811106C08091DA02811102C010920D -:103DA000D502089586ED92E00E94F50F0E94271B30 -:103DB0009093D3028093D20208951F93CF93DF9301 -:103DC0008091D2029091D3020E94331BAC0190915A -:103DD000D502992321F02091120130E006C02091F4 -:103DE00013018AE0289F900111244217530708F419 -:103DF00086C08091D702C091D802D091D90210918B -:103E0000DA02811107C0C11176C0D11174C011113D -:103E100072C075C09F3F19F09F5F9093D50218162E -:103E200024F40E94631D8093D7028091D70287FFFC -:103E300005C00E94631D81958093D7021C1624F44F -:103E40000E94631D8093D8028091D80287FF05C02D -:103E50000E94631D81958093D8026091D7026623EA -:103E600039F1C091D802CC2319F1772767FD7095FD -:103E7000872F972F0E94762223E333E343E35FE308 -:103E80000E94DA220E9443226093D7026C2F772788 -:103E900067FD7095872F972F0E94762223E333E3E7 -:103EA00043E35FE30E94DA220E9443226093D80238 -:103EB0001D1624F40E94AC1D8093D9028091D90272 -:103EC00087FF05C00E94AC1D81958093D902111611 -:103ED00024F40E94AC1D8093DA028091DA0287FFFD -:103EE00005C00E94AC1D81958093DA02DF91CF91CD -:103EF0001F910C94D21E9F3F09F08ECF96CFDF9179 -:103F0000CF911F910895E6EDF2E085E0DF011D926B -:103F10008A95E9F71092D5021092D4020895833061 -:103F200081F128F4813059F08230D1F00895853044 -:103F300009F449C0B8F1863009F456C0089580915B -:103F40001301262F30E0280F311D2F3F310524F4B7 -:103F5000680F6093130108958FEF80931301089504 -:103F600080911201262F30E0280F311D2F3F31059F -:103F700024F4680F6093120108958FEF809312016B -:103F8000089580911101262F30E0280F311D2F3F19 -:103F9000310524F4680F6093110108958FEF809329 -:103FA0001101089580911001262F30E0280F311D56 -:103FB0002F3F310524F4680F6093100108958FEFAF -:103FC00080931001089580910F01262F30E0280F73 -:103FD000311D2F3F310524F4680F60930F010895C0 -:103FE0008FEF80930F01089580910E01262F30E00E -:103FF000280F311D2F3F310524F4680F60930E0107 -:1040000008958FEF80930E010895833011F128F405 -:10401000813049F0823091F00895853081F120F1AE -:104020008630C1F1089580911301681720F4861B32 -:104030008093130108951092130108958091120145 -:10404000681720F4861B80931201089510921201C4 -:10405000089580911101681720F4861B8093110147 -:10406000089510921101089580911001681720F4AD -:10407000861B80931001089510921001089580917D -:104080000F01681720F4861B80930F01089510928A -:104090000F01089580910E01681720F4861B80930C -:1040A0000E01089510920E0108950F931F93873209 -:1040B00008F040C08E3108F08AC08E3009F474C018 -:1040C000C0F4873009F45EC068F4863009F09AC005 -:1040D0008091CC02817F8E7F8093CC0281E080939F -:1040E000DC0291C0883009F486C08B3009F483C0AB -:1040F00089C0863109F47FC068F4803109F082C03C -:104100008091CC0283FB222720F991E0922790FB3B -:1041100083F953C0893109F46EC08B3109F072C044 -:104120008091CC0281FB222720F991E0922790FB1D -:1041300081F943C0883309F45EC050F4893209F430 -:104140005CC0853309F459C0873209F456C05AC09F -:10415000833409F452C028F48A3308F453C08953D5 -:1041600037C0883409F04EC00E94C0140FEF13ED21 -:1041700020E3015010402040E1F700C000000E9401 -:10418000821B39C09091CC02892F8095817080FB71 -:1041900090F929F0966098609093CC0234C0997F92 -:1041A000977F9093CC0227C08091CC0282FB22277C -:1041B00020F991E0922790FB82F98093CC02992319 -:1041C000D1F08091CC0281608093CC0214C08D51DB -:1041D00041E050E060E070E08A019B0104C0000F04 -:1041E000111F221F331F8A95D2F7C901B8010E94FF -:1041F00080180E94C01481E006C061E070E080E099 -:1042000090E0F5CF80E01F910F91089580E0089530 -:1042100080E008958E518A3030F4E82FF0E0E75CBA -:10422000FE4F8081089580E00895CF93C82F80913C -:10423000DC02813069F018F08230C9F183C0E0916E -:104240000C01F0910D018081823209F07DC007C020 -:10425000E0910C01F0910D018081823261F48C2F8C -:104260000E940621811104C08C2F0E9455201DC080 -:1042700081E090E01AC08C2F0E940821811114C0A7 -:10428000C43179F048F4CB3079F0C03109F060C026 -:1042900082E08093DC0208C0C93219F0C83321F0F3 -:1042A00057C01092DC0254C081E0817053C0C93203 -:1042B00089F118F5C43171F1B0F4C73009F046C086 -:1042C0008EE18093130182E3809312018AE0809350 -:1042D000110184E18093100188E080930F0188E24E -:1042E00080930E0133C082EE8C0F863078F58C2FD0 -:1042F0000E940A218093DB0229C0CE34E9F020F429 -:10430000CB3421F56AE013C0C13579F0C235F1F440 -:1043100061E00DC08091DB02882319F01092DB026E -:1043200015C081E08093DC0215C061E006C0809179 -:10433000DB020E948F1F0AC06AE08091DB020E94AC -:10434000052004C01092DC0280E004C081E002C0BD -:1043500080E0ABCFCF9108950E94341D811102C03F -:104360000E94151D0E945A1D8093EC0280FF02C01E -:10437000869501C080E00C9402038091EC02982F96 -:104380009695292F30E0233031054CF49F5F990F2B -:104390008170892B81608093EC020E945E1D809168 -:1043A000EC0286950C9402038091EC02982F96956E -:1043B00091F09158990F8170892B8093EC028E7F38 -:1043C00091E009F490E08091EC0290FB80F98093F9 -:1043D000EC020E945E1D8091EC0286950C94020313 -:1043E0008091EC02982F909590FB80F98093EC02DD -:1043F0000E945E1D8091EC0280FF02C0869501C084 -:1044000080E00C9402039091EC02892F86958F5FD7 -:104410008F779170843028F4880F892B8093EC0279 -:1044200002C09093EC028091EC028E7F91E009F43F -:1044300090E08091EC0290FB80F98093EC020E9466 -:104440005E1D8091EC0286950C9402032091EC0293 -:10445000922F96958927982F990F822F8170892BFB -:104460008093EC028E7F91E009F490E08091EC0261 -:1044700090FB80F98093EC020E945E1D8091EC021B -:1044800086950C94020304D06894B1118DC00895F0 -:1044900070D088F09F5790F0B92F9927B751A0F0AE -:1044A000D1F0660F771F881F991F1AF0BA95C9F7C8 -:1044B00012C0B13081F077D0B1E0089574C0672F99 -:1044C000782F8827B85F39F0B93FCCF38695779578 -:1044D0006795B395D9F73EF4909580957095619561 -:1044E0007F4F8F4F9F4F0895E89409C097FB3EF48C -:1044F00090958095709561957F4F8F4F9F4F992331 -:10450000A9F0F92F96E9BB279395F69587957795AE -:104510006795B795F111F8CFFAF4BB0F11F460FF6E -:104520001BC06F5F7F4F8F4F9F4F16C0882311F0C6 -:1045300096E911C0772321F09EE8872F762F05C0DA -:10454000662371F096E8862F70E060E02AF09A9575 -:10455000660F771F881FDAF7880F9695879597F96A -:10456000089557FD9058440F551F59F05F3F71F063 -:104570004795880F97FB991F61F09F3F79F08795CA -:104580000895121613061406551FF2CF4695F1DF53 -:1045900008C0161617061806991FF1CF86957105E3 -:1045A000610508940895E894BB2766277727CB0117 -:1045B00097F908950BD078C069D028F06ED018F024 -:1045C000952309F05AC05FC01124EECFCADFA0F3D3 -:1045D000959FD1F3950F50E0551F629FF001729F98 -:1045E000BB27F00DB11D639FAA27F00DB11DAA1FB7 -:1045F000649F6627B00DA11D661F829F2227B00D04 -:10460000A11D621F739FB00DA11D621F839FA00D8E -:10461000611D221F749F3327A00D611D231F849FDE -:10462000600D211D822F762F6A2F11249F57504035 -:104630008AF0E1F088234AF0EE0FFF1FBB1F661FD0 -:10464000771F881F91505040A9F79E3F510570F089 -:1046500014C0AACF5F3FECF3983EDCF386957795C4 -:104660006795B795F795E7959F5FC1F7FE2B880F84 -:10467000911D9695879597F9089597F99F6780E81A -:1046800070E060E008959FEF80EC089500240A94A4 -:104690001616170618060906089500240A9412161D -:1046A0001306140605060895092E0394000C11F450 -:1046B000882352F0BB0F40F4BF2B11F460FF04C0FD -:1046C0006F5F7F4F8F4F9F4F0895991B79E004C014 -:1046D000991F961708F0961B881F7A95C9F7809541 -:1046E000089597FB072E16F4009407D077FD09D0A4 -:1046F0000E948B2307FC05D03EF4909581959F4F37 -:104700000895709561957F4F0895EE0FFF1F0590F6 -:10471000F491E02D0994AA1BBB1B51E107C0AA1F0D -:10472000BB1FA617B70710F0A61BB70B881F991F52 -:104730005A95A9F780959095BC01CD010895F999F6 -:10474000FECF92BD81BDF89A992780B50895A8E162 -:10475000B0E042E050E00C94C723262FF999FECF39 -:1047600092BD81BDF89A019700B4021639F01FBAC4 -:1047700020BD0FB6F894FA9AF99A0FBE08950196E3 -:10478000272F0E94AE230C94AD23DC01CB01FC014A -:10479000F999FECF06C0F2BDE1BDF89A319600B49A -:0E47A0000D9241505040B8F70895F894FFCFA5 -:1047AE00FFF9072309DF08AB08FC0701C10228083F -:1047BE00140A321E4F7953636676496959091929CD -:1047CE00030F1F5F43404D36201405C7049104713B -:1047DE0004FD0316042F0448040102030405060712 -:0447EE0008090000B6 -:00000001FF diff --git a/keyboards/jd45/keymaps/justin/keymap.c b/keyboards/jd45/keymaps/justin/keymap.c index f261b5463..c278abba5 100644 --- a/keyboards/jd45/keymaps/justin/keymap.c +++ b/keyboards/jd45/keymaps/justin/keymap.c @@ -1,19 +1,4 @@ #include "jd45.h" -#include "backlight.h" - -/* JD45 keymap definition macro - */ -#define KEYMAP( \ - K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, K13, \ - K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, \ - K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, K37, \ - K38, K39, K40, K41, K42, K43, K44, K45, K46, K47 \ -) { \ - { KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K10, KC_##K11, KC_##K12, KC_##K13 }, \ - { KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_NO }, \ - { KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_NO }, \ - { KC_##K38, KC_##K39, KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_##K43, KC_NO, KC_##K44, KC_##K45, KC_##K46, KC_##K47, KC_NO } \ -} const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = KEYMAP( diff --git a/keyboards/kc60/README.md b/keyboards/kc60/README.md deleted file mode 100644 index 1f03e200e..000000000 --- a/keyboards/kc60/README.md +++ /dev/null @@ -1,27 +0,0 @@ -KC60 (version 2.0) keyboard firmware -====================== - -## Quantum MK Firmware -For the full Quantum feature list, see [the parent README.md](/README.md). - -## Building -Download or clone the whole firmware and navigate to the keyboards/kc60 folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. - -Depending on which keymap you would like to use, you will have to compile slightly differently. - -### Default -To build with the default keymap, simply run `make`. - -### Other Keymaps -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` in the keymaps folder, and see keymap document (you can find in top README.md) and existent keymap files. - -To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: -``` -$ make KEYMAP=[default|jack|] -``` -Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. - -## WS2812 Support -![Image of KC60 with RGB Underglow](keymaps/ws2812/ws2812_example.jpg) - -Build with WS2812 Support by running `make KEYMAP=ws2812`. diff --git a/keyboards/kc60/config.h b/keyboards/kc60/config.h index 91d4e09c2..c4a9b9ff8 100644 --- a/keyboards/kc60/config.h +++ b/keyboards/kc60/config.h @@ -50,6 +50,8 @@ along with this program. If not, see . #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B7, D4, B1, B0, B5, B4, D7, D6, B3 } #define UNUSED_PINS +#define BACKLIGHT_PIN B6 + /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW diff --git a/keyboards/kc60/kc60.c b/keyboards/kc60/kc60.c index 0a578b2b8..746ac634a 100644 --- a/keyboards/kc60/kc60.c +++ b/keyboards/kc60/kc60.c @@ -1,111 +1 @@ #include "kc60.h" - -__attribute__ ((weak)) - void matrix_init_user(void) { - // leave this function blank - it can be defined in a keymap file - }; - -__attribute__ ((weak)) - void matrix_scan_user(void) { - // leave this function blank - it can be defined in a keymap file - } - -__attribute__ ((weak)) - bool process_action_user(keyrecord_t *record) { - // leave this function blank - it can be defined in a keymap file - return true; - } - -__attribute__ ((weak)) - void led_set_user(uint8_t usb_led) { - // leave this function blank - it can be defined in a keymap file - } - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - -#ifdef BACKLIGHT_ENABLE - backlight_init_ports(); -#endif - - matrix_init_user(); -} - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - - matrix_scan_user(); -} - -bool process_action_kb(keyrecord_t *record) { - // put your per-action keyboard code here - // runs for every action, just before processing by the firmware - - return process_action_user(record); -} - -void led_set_kb(uint8_t usb_led) { - // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here - - led_set_user(usb_led); -} - -#ifdef BACKLIGHT_ENABLE -#define CHANNEL OCR1B - -void backlight_init_ports() -{ - - // Setup PB6 as output and output low. - DDRB |= (1<<6); - PORTB &= ~(1<<6); - - // Use full 16-bit resolution. - ICR1 = 0xFFFF; - - // I could write a wall of text here to explain... but TL;DW - // Go read the ATmega32u4 datasheet. - // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on - - // Pin PB7 = OCR1C (Timer 1, Channel C) - // Compare Output Mode = Clear on compare match, Channel C = COM1B1=1 COM1C0=0 - // (i.e. start high, go low when counter matches.) - // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0 - // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1 - - TCCR1A = _BV(COM1B1) | _BV(WGM11); // = 0b00001010; - TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; - - backlight_init(); -} - -void backlight_set(uint8_t level) -{ - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB6)); - - if ( level == 0 ) - { - // Turn off PWM control on PB6, revert to output low. - TCCR1A &= ~(_BV(COM1B1)); - CHANNEL = 0x0; - } - else if ( level == BACKLIGHT_LEVELS) - { - // Turn on PWM control of PB6 - TCCR1A |= _BV(COM1B1); - // Set the brightness - CHANNEL = 0xFFFF; - } - else - { - // Turn on PWM control of PB6 - TCCR1A |= _BV(COM1B1); - // Set the brightness - CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); - } -} - -#endif diff --git a/keyboards/kc60/kc60.h b/keyboards/kc60/kc60.h index a54edfef4..34eab4b2a 100644 --- a/keyboards/kc60/kc60.h +++ b/keyboards/kc60/kc60.h @@ -1,13 +1,7 @@ #ifndef KC60_H #define KC60_H -#include "matrix.h" -#include "keymap.h" -#ifdef BACKLIGHT_ENABLE -#include "backlight.h" -#endif -#include -#include +#include "quantum.h" // This a shortcut to help you visually see your layout. // The first section contains all of the arguements @@ -26,11 +20,4 @@ { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, KC_NO,K4A, K4B, K4C, K4D } \ } -void matrix_init_user(void); -void matrix_scan_user(void); -bool process_action_user(keyrecord_t *record); - -void led_set_user(uint8_t usb_led); -void backlight_init_ports(void); - #endif diff --git a/keyboards/kc60/keymaps/default/compiled.hex b/keyboards/kc60/keymaps/default/compiled.hex deleted file mode 100644 index c8233506d..000000000 --- a/keyboards/kc60/keymaps/default/compiled.hex +++ /dev/null @@ -1,1451 +0,0 @@ -:100000000C9472060C94B6060C94B6060C94B606C4 -:100010000C94B6060C94B6060C94B6060C94B60670 -:100020000C94B6060C94B6060C94AB110C947D128D -:100030000C9454200C94B6060C94B6060C94B60698 -:100040000C94B6060C94B6060C94B6060C94B60640 -:100050000C94B6060C94BB200C94B6060C94B60611 -:100060000C94B6060C94B6060C94B6060C94B60620 -:100070000C94B6060C94B6060C94B6060C94B60610 -:100080000C94B6060C94B6060C94B6060C94B60600 -:100090000C94B6060C94B6060C94B6060C94B606F0 -:1000A0000C94B6060C94B6060C94B606E212041331 -:1000B000EF130413EF1346136913EF13BE13D11399 -:1000C0001A171A17491749178917AB17FA18FA1888 -:1000D000B617FA185D185D18C718CF18FA18F51872 -:1000E0006A186A186A186A186A186A186A186A1800 -:1000F0006A186A186A186A186A186A186A186A18F0 -:100100007A188A1891189818A21829001E001F0042 -:1001100020002100220023002400250026002700C3 -:100120002D002E002A002B0014001A0008001500D4 -:1001300017001C0018000C00120013002F003000E4 -:100140003100390004001600070009000A000B0006 -:100150000D000E000F003300340000002800E10005 -:1001600000001D001B000600190005001100100012 -:100170003600370038000000E500E000E200E30050 -:10018000000000002C000000000000000000E7005C -:10019000E600E40000500A44454255473A20656EA7 -:1001A00061626C65642E0A005374617465206F6629 -:1001B00020726F772025583A2025303136620A00A8 -:1001C00048756D616E2D7265616461626C65206D4C -:1001D00061747269782073746174653A0D0A004421 -:1001E00065626F756E63696E672064656C61792006 -:1001F00072656D61696E696E673A2025580A005B09 -:10020000735D004B6579626F617264207374617213 -:10021000742E0A005B575D005B535D005B525D000E -:100220005B445D005B435D000E036B0063003600C2 -:100230003000760032000000080359006F0075009E -:1002400000000403090409027400040100A0FA0973 -:1002500004000001030101000921110100012240F5 -:10026000000705810308000A0904010001030102D7 -:1002700000092111010001224D0007058203080039 -:100280000A09040200010300000009211101000114 -:100290002236000705830308000A0904030002034D -:1002A000000000092111010001222000070584033C -:1002B00020000107050403200001120110010000C5 -:1002C0000008EDFE60600100010200010631FF0937 -:1002D00074A1010975150025FF9520750881020993 -:1002E00076150025FF952075089102C0050109804B -:1002F000A101850216010026B7001A01002AB700E5 -:10030000751095018100C0050C0901A10185031636 -:100310000100269C021A01002A9C02751095018199 -:1003200000C005010902A1010901A1000509190187 -:1003300029051500250195057501810295017503B3 -:1003400081010501093009311581257F9502750864 -:10035000810609381581257F950175088106050CF0 -:100360000A38021581257F950175088106C0C005F0 -:10037000010906A101050719E029E71500250195E6 -:100380000875018102950175088101050819012987 -:1003900005950575019102950175039101050719F0 -:1003A0000029FF150026FF00950675088100C00A88 -:1003B000002530325820006B6579626F6172645F8E -:1003C0007265706F72743A20004B6579626F61726A -:1003D00064204C4544732073746174653A20257819 -:1003E0000A00646F6E652E0A00626F6F676D616749 -:1003F0006963207363616E3A202E2E2E2000290A35 -:10040000002575002F002575005D2800256400205B -:1004100000256400200025640020002564007C0085 -:1004200025303258006D6F7573656B6579205B629E -:10043000746E7C782079207620685D287265702F34 -:1004400061636C293A205B006D6B5F776865656C52 -:100450005F74696D655F746F5F6D6178203D202505 -:10046000640A006D6B5F776865656C5F6D61785FCE -:100470007370656564203D2025640A006D6B5F74B0 -:10048000696D655F746F5F6D6178203D2025640A3A -:10049000006D6B5F6D61785F7370656564203D20F2 -:1004A00025640A006D6B5F696E74657276616C20FD -:1004B0003D2025640A006D6B5F64656C6179203DA9 -:1004C0002025640A006D6B5F776865656C5F7469F1 -:1004D0006D655F746F5F6D6178203D2025640A0053 -:1004E0006D6B5F776865656C5F6D61785F73706574 -:1004F0006564203D2025640A006D6B5F74696D653D -:100500005F746F5F6D6178203D2025640A006D6B1C -:100510005F6D61785F7370656564203D2025640AB6 -:10052000006D6B5F696E74657276616C203D20258D -:10053000640A006D6B5F64656C6179203D20256401 -:100540000A000A00257500363A20776865656C5FF9 -:1005500074696D655F746F5F6D61783A20000A00A1 -:10056000257500353A20776865656C5F6D61785F49 -:1005700073706565643A20000A00257500343A20DE -:1005800074696D655F746F5F6D61783A20000A0071 -:10059000257500333A206D61785F73706565643A44 -:1005A00020000A00257500323A20696E7465727663 -:1005B000616C286D73293A20000A00257500313AD4 -:1005C0002064656C6179282A31306D73293A2000E6 -:1005D0000A092D2056616C756573202D0A004D3E69 -:1005E000004D25643E20003F0073657420646566FD -:1005F00061756C740A00433E20007768657265205F -:1006000064656C74613A20637572736F723D256422 -:100610002C20776865656C3D25640A536565206804 -:100620007474703A2F2F656E2E77696B69706564EC -:1006300069612E6F72672F77696B692F4D6F7573C4 -:10064000655F6B6579730A000A092D204D6F75731C -:10065000656B6579202D0A4553432F713A097175F1 -:1006600069740A313A0964656C6179282A31306D00 -:1006700073290A323A09696E74657276616C286D65 -:1006800073290A333A096D61785F73706565640A8E -:10069000343A0974696D655F746F5F6D61780A350E -:1006A0003A09776865656C5F6D61785F7370656541 -:1006B000640A363A09776865656C5F74696D655FD1 -:1006C000746F5F6D61780A0A703A097072696E74AE -:1006D0002076616C7565730A643A097365742064E9 -:1006E000656661756C74730A75703A092B310A641A -:1006F0006F776E3A092D310A706775703A092B31A0 -:10070000300A7067646F776E3A092D31300A0A73C8 -:1007100070656564203D2064656C7461202A206DDD -:1007200061785F7370656564202A20287265706542 -:100730006174202F2074696D655F746F5F6D6178DF -:10074000290A003F004D3E2000433E20004C256416 -:100750000A0074696D65725F636F756E743A202567 -:1007600030346C580A006B6579626F6172645F693E -:10077000646C653A2025580A006B6579626F617276 -:10078000645F70726F746F636F6C3A2025580A0053 -:10079000686F73745F6B6579626F6172645F6C65BB -:1007A000647328293A2025580A000A092D20537419 -:1007B00061747573202D0A004743433A20342E3864 -:1007C0002E31204156522D4C4942433A20312E3889 -:1007D0002E3073766E204156525F415243483A2084 -:1007E000617672350A004F5054494F4E533A204CAF -:1007F00055464120424F4F544D41474943204D4FAC -:100800005553454B45592045585452414B45592065 -:10081000434F4E534F4C4520434F4D4D414E442086 -:10082000343039360A004255494C443A203865384C -:1008300039313730202831333A32333A3434204A90 -:10084000756E2031342032303136290A0056494441 -:100850003A2030784645454428596F75292050493B -:10086000443A20307836303630286B633630763272 -:1008700029205645523A203078303030310A004431 -:100880004553433A204120637573746F6D206B6547 -:1008900079626F6172640A000A092D2056657273CD -:1008A000696F6E202D0A000A092D20436F6E736F49 -:1008B0006C65202D0A4553432F713A09717569748F -:1008C0000A6D3A096D6F7573656B65790A000A09DF -:1008D0002D204D61676963202D0A443A0944656201 -:1008E0007567204D65737361676520546F67676C2A -:1008F000650A583A094D61747269782044656275D9 -:1009000067204D6F646520546F67676C65202D20EC -:1009100053686F77206B65797072657373657320A8 -:10092000696E206D617472697820677269640A4B20 -:100930003A094B6579626F6172642044656275673C -:1009400020546F67676C65202D2053686F77206B8C -:1009500065797072657373207265706F72740A4D79 -:100960003A094465627567204D6F75736520546F51 -:1009700067676C650A563A0956657273696F6E0A45 -:10098000533A095374617475730A433A09416374A5 -:10099000697661746520436F6E736F6C65204D6F6F -:1009A00064650A46312D4631303A095377697463DC -:1009B0006820746F204C6179657220302D392028B1 -:1009C000463130203D204C30290A302D393A095328 -:1009D000776974636820746F204C61796572203088 -:1009E0002D390A4553433A09537769746368207473 -:1009F0006F204C6179657220302028616C746572BB -:100A00006E617465206B65792031290A4752415621 -:100A1000453A0953776974636820746F204C617993 -:100A2000657220302028616C7465726E6174652077 -:100A30006B65792032290A50415553453A094A7568 -:100A40006D7020746F20426F6F746C6F616465729B -:100A500020285265736574290A453A095072696EF7 -:100A60007420454550524F4D2053657474696E672C -:100A7000730A000A002575002E6C6576656C3A20B5 -:100A8000000A002575002E656E61626C653A2000D3 -:100A90000A0025303258006261636B6C69676874C4 -:100AA0005F636F6E6669672E7261773A20000A0095 -:100AB0002575002E6E6B726F3A20000A00257500B6 -:100AC0002E737761705F6261636B736C6173685FD3 -:100AD0006261636B73706163653A20000A0025757B -:100AE000002E737761705F67726176655F6573630F -:100AF0003A20000A002575002E6E6F5F6775693A0F -:100B000020000A002575002E737761705F72616C9A -:100B1000745F726775693A20000A002575002E73AC -:100B20007761705F6C616C745F6C6775693A200007 -:100B30000A002575002E636170736C6F636B5F74C0 -:100B40006F5F636F6E74726F6C3A20000A002575D8 -:100B5000002E737761705F636F6E74726F6C5F638A -:100B60006170736C6F636B3A20000A002530325855 -:100B7000006B65796D61705F636F6E6669672E7279 -:100B800061773A20000A002575002E6D6F75736538 -:100B90003A20000A002575002E6B6579626F61723C -:100BA000643A20000A002575002E6D617472697820 -:100BB0003A20000A002575002E656E61626C653A68 -:100BC00020000A00253032580064656275675F6353 -:100BD0006F6E6669672E7261773A20000A0025758C -:100BE0000064656661756C745F6C617965723A204A -:100BF000003F000A6D6F7573653A206F66660A00E4 -:100C00000A6D6F7573653A206F6E0A000A6B65791D -:100C1000626F6172643A206F66660A000A6B6579DA -:100C2000626F6172643A206F6E0A000A6D617472BD -:100C300069783A206F66660A000A6D617472697895 -:100C40003A206F6E0A000A64656275673A206F6623 -:100C5000660A000A64656275673A206F6E0A000AC8 -:100C60000A4A756D70696E6720746F20626F6F74C9 -:100C70006C6F616465722E2E2E2000433E2000654D -:100C800065636F6E6669673A0A006261636B6C69DF -:100C900067687420737465703A2025750A00626174 -:100CA000636B6C6967687420746F67676C653A2062 -:100CB00025750A006261636B6C69676874206465FE -:100CC0006372656173653A2025750A006261636B22 -:100CD0006C6967687420696E6372656173653A2038 -:100CE00025750A0011241FBECFEFDAE0DEBFCDBFAD -:100CF00004B603FE24C08091F3019091F401A09109 -:100D0000F501B091F6018730904BA740B04BB9F494 -:100D10001092F3011092F4011092F5011092F60175 -:100D200014BE84B7877F84BF88E10FB6F8948093A0 -:100D30006000109260000FBEE0E0F8E3099511E05A -:100D4000A0E0B1E0EEE4FAE502C005900D92A63411 -:100D5000B107D9F721E0A6E4B1E001C01D92A33F9D -:100D6000B207E1F70E94EB0E0C94252D0C940000C5 -:100D7000FF93EF93E0914601F0914701309709F01E -:100D80000995EF91FF910895FC018591803011F054 -:100D9000EFDFFBCF0895FF27E0E230E247FF0CC012 -:100DA000419597FF09C0EDE260957095809590950B -:100DB000611D711D811D911D27FF02C0219530E32A -:100DC00050E2AA27660F771F881F991FAA1FA41732 -:100DD00010F0A41B63955A95A9F7AA3008F0A95FF3 -:100DE000A05DAF93F395611571058105910541F7FC -:100DF000ED3211F4EF93F395F21718F43F93F39556 -:100E0000FBCF8F91B5DFFA95E1F70895E991F9915C -:100E10008591803021F0853219F0AADFF9CF08954D -:100E200020E0E89455915532C1F3503311F46894A1 -:100E300055915A3348F4505390F3220F022E220F4B -:100E4000220F200D250FF4CF0EF421958991999151 -:100E5000533619F3533729F1533559F1BC0188271B -:100E60009927E8945C3621F4899199916894559179 -:100E7000543639F446EF7EF077FF0DC08FEF9FEFC9 -:100E80000AC055374AE039F0583540E121F0523672 -:100E900042E009F00895FF93EF937DDFEF91FF911A -:100EA000B7CFFF93EF93FC0181918030B9F360DFFE -:100EB000FBCFFF93EF9368DFF1CFDF93CF93CDB7F5 -:100EC000DEB72596A3DFCF91DF91089508950895A9 -:100ED00081E0089508950C9467070C9468070C94BA -:100EE0006A07269A2E988FEF9FEF90938700809342 -:100EF000860082E28093800089E1809381000C94D7 -:100F0000AF2A0E9471070C9466072E9881110AC0BF -:100F1000809180008F7D8093800010928B001092D2 -:100F20008A000895833041F480918000806280932C -:100F300080008FEF9FEF12C090918000906290939D -:100F4000800023E030E0281B3109220F331F8FEF90 -:100F50009FEF02C0969587952A95E2F790938B00B4 -:100F600080938A00089580E090E0089581E00895DC -:100F70000C94B60708950F931F93CF93DF93EC0162 -:100F800008811981C8010E94931EB8010E9454086B -:100F90008C01BE010E94B807882309F47AC08A81B7 -:100FA0008823C9F18091530181111EC0043180E56D -:100FB000180789F50E94BA0781E0809353010E94C7 -:100FC0008620909352018093510110924A01109211 -:100FD0004C0110924B0110924E0110924D01109253 -:100FE000500110924F0155C08091510190915201D2 -:100FF0000E949220883C910570F480914A01E82F6C -:10100000F0E0EE0FFF1FE55BFE4F118300838F5F63 -:1010100080934A013EC0043880E5180721F0053866 -:101020001045A1F02AC08A81882321F0109248013E -:1010300082E012C080914801811106C086E20E94C0 -:10104000B81586E20E94801682E014C08A81882347 -:1010500031F01092490180E20E94CF161AC08091AF -:101060004901811106C087E20E94B81587E20E94FB -:10107000801680E20E94D6160CC081E08093480161 -:1010800080934901CE01DF91CF911F910F910C9474 -:101090006D0780E0DF91CF911F910F9108950C941F -:1010A00081070C946B0708959EE0799FF00111244D -:1010B00096E4899FE00DF11D1124E60FF11DEE0F5E -:1010C000FF1FE65FFE4F859194910895880F991F49 -:1010D00086579040FC01859194910895880F991F3F -:1010E000865F9E4FFC018591949108950F931F9305 -:1010F000CF93DF93EC01811521E39207A0F58115D1 -:1011000030E3930708F0D7C0883E9105D8F4803EBD -:10111000910508F06FC0883A910578F4853A9105F9 -:1011200008F06AC08130910509F4F8C108F4F3C1F0 -:101130008430910508F05EC0EEC18B3B910508F448 -:1011400066C0E9C1C11580E2D80708F0AFC0C1157B -:1011500091E0D90708F04EC0C03FD10508F4DBC1CB -:101160008E0110651CC2803820E5920700F580379B -:1011700030E5930708F0A3C0C11580E5D80709F44E -:10118000ACC050F4CE01905480319F4008F0C3C1F0 -:101190008E011F70106A03C2C13030E5D30709F415 -:1011A000AAC0C43180E5D80708F4AFC0B4C1C338C1 -:1011B00090E5D90709F48EC050F4C13830E5D30763 -:1011C00009F482C008F083C000E011EDE8C1C0312D -:1011D00091E5D90708F49FC1C11527E5D20708F4A6 -:1011E00036C1CE0190578115904108F094C18E010F -:1011F0001F708FC18E01D3C1853A910509F491C149 -:10120000863A910509F490C103E810E4C8C1883A10 -:10121000910509F48CC1893A910509F48BC18A3A88 -:10122000910509F48AC18B3A910509F489C18C3A78 -:10123000910509F488C18D3A910509F487C1803B75 -:10124000910509F486C18E3A910509F485C18F3A5A -:10125000910509F484C1813B910509F483C1823B66 -:10126000910509F482C1833B910509F481C1843B56 -:10127000910509F480C1853B910509F47FC1863B46 -:10128000910509F47EC1873B910509F47DC1883B36 -:10129000910509F47CC1893B910509F47BC18A3B26 -:1012A000910509F07AC10AE216E479C1CE019F7076 -:1012B0000E946E0875C18C011127106C70C18C01E1 -:1012C0000F701127146D6BC100E010ED68C100E0D4 -:1012D00012ED65C100E013ED62C10E9468198FEF45 -:1012E00094E32CE0815090402040E1F700C00000E2 -:1012F0000E94E02054C186E991E00E94C4068091DA -:10130000D30181608093D3014AC10E94932281114D -:1013100002C00E9474220E94B02290E09093F201D9 -:101320008093F101C23030E5D30721F48091F101BF -:10133000816086C0C43080E5D80721F48091F10136 -:1013400082607EC0C63090E5D90721F48091F1011A -:10135000846076C0C83020E5D20719F48091F1018D -:1013600027C0CA3030E5D30721F48091F1018061B4 -:1013700067C0CC3080E5D80721F48091F10180620C -:101380005FC0CE3090E5D90721F48091F1018064EF -:1013900057C0C03120E5D20721F48091F101806867 -:1013A0004FC0C23130E5D30729F48091F101846048 -:1013B000886046C0C33080E5D80721F48091F101F0 -:1013C0008E7F3EC0C53090E5D90721F48091F101B0 -:1013D0008D7F36C0C73020E5D20721F48091F1011E -:1013E0008B7F2EC0C93030E5D30719F48091F1010D -:1013F00026C0CB3080E5D80721F48091F1018F7EA3 -:101400001FC0CD3090E5D90721F48091F1018F7D87 -:1014100017C0CF3020E5D20721F48091F1018F7BF6 -:101420000FC0C13130E5D30721F48091F1018F77EE -:1014300007C0C331D04531F48091F1018B7F877FA4 -:101440008093F1018091F1010E94B422A8C08D2FF8 -:1014500099278F70992781309105E9F48E010370E7 -:1014600011279C0102C0220F331F0A95E2F7890160 -:101470001C68CE01E4E0880F991FEA95E1F7882700 -:101480009370082B192BF3E0CC0FDD1FFA95E1F7D1 -:10149000C076DD272CC08230910529F41C2F00274F -:1014A000016F106A7CC08330910561F4CE018370B6 -:1014B000992701E010E002C0000F111F8A95E2F7A2 -:1014C0001C680EC084309105A9F4CE018370992761 -:1014D00001E010E002C0000F111F8A95E2F71A68C0 -:1014E00063E0CC0FDD1F6A95E1F7C07ED7700C2B4F -:1014F0001D2B55C08530910529F41C2F0027046F42 -:10150000106A4DC0069709F04AC0CF71DD271C2F25 -:101510000027106244C000E010E041C001E010E08C -:101520003EC001E810E43BC002E810E438C002EE1F -:1015300014E435C009EE14E432C00AEE14E42FC0FE -:1015400005EB14E42CC006EB14E429C007EB14E40B -:1015500026C00CEC14E423C00DEC14E420C003E816 -:1015600015E41DC00AE815E41AC002E915E417C025 -:1015700004E915E414C001E216E411C003E216E424 -:101580000EC004E216E40BC005E216E408C006E251 -:1015900016E405C007E216E402C000E014E4C80146 -:1015A000DF91CF911F910F9108959EE0799FF001F7 -:1015B000112496E4899FE00DF11D1124E60FF11D21 -:1015C000EE0FFF1FE65FFE4F85919491803E9105DF -:1015D000E0F4803C910558F58133910509F46FC022 -:1015E00048F48932910509F463C08A32910509F4FF -:1015F0006DC072C089339105E9F082389105D1F050 -:101600008533910509F44DC067C0833E910581F192 -:1016100038F4803E9105B9F0823E9105D9F05CC066 -:10162000863E910561F1873E9105A1F155C00E946A -:10163000660808952091F10120FD02C021FF4CC0F1 -:1016400080EE90E049C08091F10180FFF9CF89E3FD -:1016500090E042C08091F10182FF0EC08091F101C3 -:1016600084FF03C080E090E037C083EE90E034C098 -:101670008091F10182FFF2CF82EE90E02DC0809147 -:10168000F10183FF0BC08091F10184FDEBCF87EE68 -:1016900090E022C08091F10183FFF5CF86EE90E0CB -:1016A0001BC08091F10185FF07C089E290E014C062 -:1016B0008091F10185FFF9CF85E390E00DC0809125 -:1016C000F10186FF07C08AE290E006C08091F10137 -:1016D00086FFF9CF81E390E00E94760808950C948C -:1016E0006F07E82FF0E0EE5DFE4F8081E82FEF708E -:1016F000F0E0282F22952F7081E090E0022E01C0AB -:10170000880F0A94EAF780A308950F931F93CF934D -:10171000DF9385B7806885BF85B7806885BFC4E0E3 -:10172000D0E001E010E0FE01EE5DFE4F8081E82F89 -:10173000EF70F0E021A182958F70A80102C0440FE4 -:10174000551F8A95E2F7242B21A38C2F0E94710B41 -:10175000219748F78DE090E041E050E0FC01EC5E1D -:10176000FE4F2081E22FEF70F0E062A122952F70F2 -:10177000DA0102C0AA0FBB1F2A95E2F76A2B62A307 -:10178000019760F7DF91CF911F910F910C944F0853 -:10179000EF92FF920F931F93CF93DF93CEE5D1E0AB -:1017A00084E0E82E01E010E095E0F92E8E2D0E94F5 -:1017B000710B2DE030E040E050E0F901EC5EFE4FAF -:1017C0008081E82FEF70F0E060A170E082958F706B -:1017D00002C0759567958A95E2F760FD09C0B8016A -:1017E000022E02C0660F771F0A94E2F7462B572B92 -:1017F0002150310910F73A912A912417350721F029 -:1018000059834883F09200018E2D0E94710BEA9457 -:101810009FEFE912CBCF2091000127FD2EC08091D0 -:10182000D30180FF10C0822F992787FD90959F9349 -:101830002F938FED91E09F938F930E945D070F9000 -:101840000F900F900F9080910001815080930001C4 -:1018500087FD07C08FE99FE00197F1F700C0000006 -:101860000CC0A8E6B1E0EEE5F1E0929182919E9382 -:101870008E9391E0E435F907C1F70E94510881E0A9 -:10188000DF91CF911F910F91FF90EF900895E82F76 -:10189000F0E0EE0FFF1FE25AFE4F80819181089524 -:1018A000EF92FF920F931F93CF93DF938091D30119 -:1018B00080FF04C080EC91E00E94C4060EE511E0B8 -:1018C000C0E0D0E048EAE42E41E0F42E8091D3015C -:1018D00080FF13C0F801808191810E94F01F9F93C7 -:1018E0008F93DF93CF93FF92EF920E945D070F904B -:1018F0000F900F900F900F900F9021960E5F1F4F3B -:10190000C530D10519F7DF91CF911F910F91FF904D -:10191000EF9008951F93CF93DF93C8E6D1E010E0D6 -:101920009A918A910E94D21F180F81E0CE35D80774 -:10193000B9F7812FDF91CF911F91089580917301A5 -:1019400008959FB7F89410926A019FBF9091E801A3 -:10195000943009F058C09091E9009F702091EC00FC -:1019600020FF02C020E801C020E0292B94E09093E2 -:10197000E9009091EB0090FF43C09091EE0097FF3B -:101980003FC090916801992321F09091E80095FF64 -:1019900037C01092680196E03091E80035FD15C01F -:1019A0003091E801343061F53091EB0035FD28C00D -:1019B000915021F481E08093680122C0EFE9FFE0BB -:1019C0003197F1F700C00000E7CF8093F1008091DC -:1019D000E80085FD0AC08091E80080FFFCCF80917F -:1019E000E8008E778093E80006C08FB7F89491E006 -:1019F00090936A018FBF2F702093E90080E00895D3 -:101A00002F702093E9008FEF0895CF93DF9300D0DC -:101A10001F92CDB7DEB72091E801243019F523E0FD -:101A200029839B838A832093E9008FEF9091E800BC -:101A3000815095FD06C095ED9A95F1F70000811152 -:101A4000F5CF8091E80085FF0DC040E050E063E0F5 -:101A500070E0CE0101960E949E0F8091E8008E7783 -:101A60008093E8000F900F900F90DF91CF91089531 -:101A7000CF93DF9300D01F92CDB7DEB72091E8015E -:101A8000243021F522E029839B838A8383E080939D -:101A9000E9008FEF9091E800815095FD06C095ED2B -:101AA0009A95F1F700008111F5CF8091E80085FF4C -:101AB0000DC040E050E063E070E0CE0101960E946E -:101AC0009E0F8091E8008E778093E8000F900F9032 -:101AD0000F90DF91CF9108952091E8012430F1F427 -:101AE00022E02093E9002FEF3091E800215035FDEE -:101AF00006C035ED3A95F1F700002111F5CF2091A0 -:101B0000E80025FF0BC040E050E065E070E00E9477 -:101B10009E0F8091E8008E778093E8000895CF9320 -:101B2000DF93EC018091E801843039F581E0809306 -:101B3000E9008FEF9091E800815095FD06C095ED8A -:101B40009A95F1F700008111F5CF8091E80085FFAB -:101B500014C040E050E068E070E0CE010E949E0FAB -:101B60008091E8008E778093E80088E0FE01ABE684 -:101B7000B1E001900D928A95E1F7DF91CF91089540 -:101B800084E292E00E94C4068091E701811109C0BD -:101B90000E9430110E948D118091E2008460809338 -:101BA000E200089580E292E00E94C4061092E701EC -:101BB00008958CE192E00C94C40688E192E00C94C4 -:101BC000C40684E192E00E94C4060C9449208091EE -:101BD00069018F5F8093690162E30E94B52C9111C6 -:101BE00035C01092690180916A01882379F1809152 -:101BF000E801843049F58091E9008F709091EC0004 -:101C000090FF02C090E801C090E0982B84E08093A0 -:101C1000E9008091EB0080FF14C08091EE0087FF07 -:101C200010C08091E80085FF03C01092F100F9CF49 -:101C30008091E80080FF05C08091E8008E77809356 -:101C4000E8009F709093E90010926A01089542E0C5 -:101C500061EC81E00E94AA1042E061EC82E00E9407 -:101C6000AA1042E061EC83E00E94AA1042E261EC1B -:101C700084E00C94AA108091EA01833009F453C0E7 -:101C800030F4813071F0823009F48CC008958A30CC -:101C900009F478C08B3009F45EC0893009F09AC02D -:101CA00020C08091E901813A09F094C08091E80058 -:101CB000877F8093E8008091ED019091EE01892B60 -:101CC00021F060E080E090E003C068E08BE691E006 -:101CD00070E00E94E70F8091E8008B778093E80026 -:101CE00008958091E901813209F074C08091ED017D -:101CF0009091EE01892B09F06DC08091E800877FFB -:101D00008093E8008091E80082FD05C08091E801A1 -:101D10008111F8CF5FC08091F100809373018091B1 -:101D2000E8008B7753C08091E901813A09F052C0F5 -:101D30008091ED019091EE01892B09F04BC08091CB -:101D4000E800877F8093E8008091E80080FFFCCF67 -:101D500080910B0136C08091E9018132D9F58091E3 -:101D6000ED019091EE01892BA9F58091E800877F24 -:101D70008093E8000E94DF108091EB0180930B01BB -:101D80000C9468198091E901813221F58091E80075 -:101D9000877F8093E8000E94DF108091EC018093A0 -:101DA000740108958091E901813AA1F48091E800DD -:101DB000877F8093E8008091E80080FFFCCF8091CE -:101DC00074018093F1008091E8008E778093E800A1 -:101DD0000C94DF10089584B7877F84BF88E10FB625 -:101DE000F89480936000109260000FBE80E88093AA -:101DF0006100109261000E94B2140E9430110E9492 -:101E00008D118091E20084608093E20081EA9CE081 -:101E10000E94CD1F78940E9407140E94B41481E0A0 -:101E200091E00E94241483E092E00E94C406809115 -:101E3000E801853089F48FEF91E00E94C4060E948A -:101E40000A208091E601882391F30E94382088239C -:101E500071F30E94880FEBCF0E94DA14E8CF292F8C -:101E6000332723303105A9F06CF42130310509F412 -:101E700042C02230310509F043C084E790E026E4F7 -:101E800032E042C021323105C9F02232310519F168 -:101E900037C099278130910541F08230910541F09A -:101EA000892B71F5E2E4F2E005C0E8E3F2E002C05C -:101EB000E8E2F2E0849190E09F0126C0643000F5F2 -:101EC000E62FF0E0EE0FFF1FED5CFE4F2081318129 -:101ED00089E090E019C0643098F4E62FF0E0DF016B -:101EE000AA0FBB1FA55DBE4F2D913C91E95DFE4F32 -:101EF000808190E009C082E190E02AEB32E004C0EA -:101F000080E090E020E030E0FA0131832083089502 -:101F100080E189BD82E189BD09B400FEFDCF8091D9 -:101F2000D8008F7D8093D8008091E00082608093FC -:101F3000E0008091E00081FDFCCF0895CF92DF9218 -:101F4000EF92FF920F931F93CF93DF937C018B014E -:101F5000EA010E940011811131C0209731F088817F -:101F60009981081B190BE80EF91EC12CD12C011503 -:101F7000110519F18091E80085FD14C08091E800F9 -:101F80008E778093E800209741F0888199818C0DAD -:101F90009D1D9983888385E011C00E9400118823CC -:101FA00031F30CC0F70181917F018093F100015062 -:101FB0001109FFEFCF1ADF0ADACF80E0DF91CF916E -:101FC0001F910F91FF90EF90DF90CF900895209197 -:101FD000EF013091F0012617370748F061157105C0 -:101FE00039F42091E8002E772093E80001C0B90170 -:101FF000FC0120E061157105B9F18091E8018823A9 -:1020000009F440C0853009F43FC08091E80083FDA9 -:102010003DC08091E80082FF06C08091E80082FF09 -:1020200026C080E008958091E80080FFE3CF2091F2 -:10203000F3008091F20090E0922B6115710551F050 -:102040008830910538F421912093F1006150710995 -:102050000196F3CF21E0089709F020E08091E80095 -:102060008E778093E800C6CF2111C7CFD6CF80915D -:10207000E801882339F0853039F08091E80083FF4A -:10208000CCCF04C082E0089583E0089581E00895F4 -:102090002091EF013091F0012617370748F06115C4 -:1020A000710539F42091E8002E772093E80001C0F3 -:1020B000B901FC0120E061157105C1F18091E801D1 -:1020C000882309F441C0853009F440C08091E800BC -:1020D00083FD3EC08091E80082FF06C08091E80049 -:1020E00082FF27C080E008958091E80080FFE3CF61 -:1020F0002091F3008091F20090E0922B6115710520 -:1021000059F08830910540F424912093F1003196E4 -:10211000615071090196F2CF21E0089709F020E0A3 -:102120008091E8008E778093E800C5CF2111C6CF5B -:10213000D5CF8091E801882339F0853039F080913E -:10214000E80083FFCBCF04C082E0089583E00895C8 -:1021500081E00895982F973058F59093E9009817EB -:1021600039F07091EC002091ED005091F00003C027 -:10217000242F762F50E021FF19C03091EB003E7FD5 -:102180003093EB003091ED003D7F3093ED003091C6 -:10219000EB0031603093EB007093EC002093ED0086 -:1021A0005093F0002091EE0027FF07C09F5FD3CF30 -:1021B0008F708093E90081E0089580E00895809118 -:1021C000E90187FD05C08091E80080FF0EC012C0C4 -:1021D0008091E80082FD05C08091E8018111F8CF6F -:1021E00008958091E8008B7708C08091E801811103 -:1021F000EACF08958091E8008E778093E8000895F3 -:102200008091E4009091E50045E62091EC0020FFEC -:1022100021C02091E80020FD21C02091E801222367 -:1022200089F0253089F02091EB0025FD0FC0209129 -:10223000E4003091E5002817390739F3415041F0A7 -:10224000C901E3CF82E0089583E0089581E0089515 -:1022500084E008952091E80022FFDFCF80E0089518 -:102260000E949E110E94A611E0EEF0E08081816044 -:102270008083E8EDF0E080818F77808319BCA7ED43 -:10228000B0E08C918E7F8C9380818F7E80831092C2 -:10229000E70108950F931F93CF93DF930E949E1140 -:1022A0000E94A611C8EDD0E088818F77888388814D -:1022B0008068888388818F7D888319BC1092E801AB -:1022C0001092E4011092E6011092E50100EE10E098 -:1022D000F80180818B7F808388818160888342E0E0 -:1022E00060E080E00E94AA10E1EEF0E080818E7F45 -:1022F0008083E2EEF0E0808181608083808188606D -:102300008083F80180818E7F8083888180618883CB -:10231000DF91CF911F910F910895E8EDF0E080815A -:102320008F7E8083E7EDF0E080818160808384E0B0 -:1023300082BF81E08093E7010C944A11E8EDF0E060 -:1023400080818E7F80831092E20008951092DA00DF -:102350001092E10008951F920F920FB60F92112470 -:102360002F933F934F935F936F937F938F939F939D -:10237000AF93BF93EF93FF938091E10082FF0BC077 -:102380008091E20082FF07C08091E1008B7F809303 -:10239000E1000E94E70D8091DA0080FF1FC080916C -:1023A000D80080FF1BC08091DA008E7F8093DA0016 -:1023B0008091D90080FF0DC080E189BD82E189BD97 -:1023C00009B400FEFDCF81E08093E8010E94C00DBA -:1023D00005C019BC1092E8010E94D20D8091E10065 -:1023E00080FF19C08091E20080FF15C08091E2005B -:1023F0008E7F8093E2008091E20080618093E20012 -:102400008091D80080628093D80019BC85E08093C9 -:10241000E8010E94DD0D8091E10084FF30C08091D1 -:10242000E20084FF2CC080E189BD82E189BD09B44E -:1024300000FEFDCF8091D8008F7D8093D8008091E1 -:10244000E1008F7E8093E1008091E2008F7E809397 -:10245000E2008091E20081608093E2008091E401DB -:10246000882311F084E007C08091E30087FF02C059 -:1024700083E001C081E08093E8010E94E10D80913A -:10248000E10083FF29C08091E20083FF25C0809195 -:10249000E100877F8093E10082E08093E801109261 -:1024A000E4018091E1008E7F8093E1008091E20061 -:1024B0008E7F8093E2008091E20080618093E20051 -:1024C00042E060E080E00E94AA108091F000886005 -:1024D0008093F0000E94D90DFF91EF91BF91AF91D1 -:1024E0009F918F917F916F915F914F913F912F912C -:1024F0000F900FBE0F901F9018951F920F920FB65E -:102500000F9211242F933F934F935F936F937F9379 -:102510008F939F93AF93BF93CF93EF93FF93C0910C -:10252000E900CF708091EC001092E9008091F000FA -:10253000877F8093F00078940E94B9121092E9008E -:102540008091F00088608093F000C093E900FF91D3 -:10255000EF91CF91BF91AF919F918F917F916F91AB -:102560005F914F913F912F910F900FBE0F901F9051 -:1025700018951F93CF93DF93CDB7DEB7AA970FB609 -:10258000F894DEBF0FBECDBFE9EEF1E08091F1001F -:10259000819321E0E13FF207C9F70E943B0E809151 -:1025A000E80083FF1CC12091E9013091EA01832FEB -:1025B00090E08A30910508F012C1FC01EA5AFF4F01 -:1025C0000C94D52C203881F0223809F008C1809174 -:1025D000ED018F708093E9008091EB0085FB8827E7 -:1025E00080F91092E90006C08091E5019091E60122 -:1025F000911182609091E800977F9093E80080931A -:10260000F1001092F100C5C0822F8D7F09F0E7C064 -:10261000222319F0223061F0E2C08091EB01813079 -:1026200009F0DDC0333009F080E08093E60128C076 -:102630008091EB01811124C02091ED012F7009F4EC -:10264000CEC02093E9008091EB0080FF19C08091FB -:10265000EB00333011F4806211C080618093EB0095 -:1026600081E090E0022E01C0880F0A94EAF780937F -:10267000EA001092EA008091EB0088608093EB0002 -:102680001092E9008091E800877F86C02111A7C0E1 -:102690001091EB011F778091E3008078812B80936C -:1026A000E3008091E800877F8093E8000E94DF10BC -:1026B0008091E80080FFFCCF8091E30080688093E8 -:1026C000E300112311F083E001C082E08093E80170 -:1026D00086C02058223008F082C08091EB01909192 -:1026E000EC018C3D23E0920779F583E08A838AE24E -:1026F00089834FB7F894DE01139620E03EE051E263 -:10270000E32FF0E050935700E49120FF03C0E295DF -:10271000EF703F5FEF708E2F90E0EA3010F0C796B9 -:1027200001C0C0968D939D932F5F243149F74FBF11 -:102730008091E800877F8093E8006AE270E0CE0134 -:1027400001960E94E70F14C0AE014F5F5F4F60918A -:10275000ED010E942F0F009709F441C02091E8007D -:10276000277F2093E800BC0189819A810E9448104C -:102770008091E8008B778093E80031C0203879F5AC -:102780008091E800877F8093E8008091E401809346 -:10279000F1008091E8008E778093E8000E94DF10BE -:1027A0001EC021111CC09091EB019230C0F48091A9 -:1027B000E800877F8093E8009093E4010E94DF1097 -:1027C0008091E401811104C08091E30087FF02C081 -:1027D00084E001C081E08093E8010E94270E80918F -:1027E000E80083FF0AC08091E800877F8093E800BB -:1027F0008091EB0080628093EB00AA960FB6F8946C -:10280000DEBF0FBECDBFDF91CF911F910895CF9353 -:102810008091E8018823B1F08091E9008F70909158 -:10282000EC0090FF02C090E801C090E0C92FC82BD7 -:102830001092E9008091E80083FD0E94B912CF70E8 -:10284000C093E900CF91089590937A018093790124 -:102850000895E0917901F0917A01309721F001908B -:10286000F081E02D099480E00895FF920F931F936B -:10287000CF93DF938C01E0917901F0917A01309749 -:1028800099F10280F381E02D09958091D30182FFB7 -:102890002BC080FF04C087EB93E00E94C406E801D0 -:1028A00088E0F82E01EB13E08091D30180FF0BC08C -:1028B00088811F928F931F930F930E945D070F9043 -:1028C0000F900F900F90FA942196F110EDCF809118 -:1028D000D30180FF09C08FEA93E0DF91CF911F9170 -:1028E0000F91FF900C94C406DF91CF911F910F912F -:1028F000FF900895E0917901F0917A01309721F0ED -:102900000480F581E02D099408952091770130919C -:1029100078018217930771F0909378018093770183 -:10292000E0917901F0917A01309721F00680F781EA -:10293000E02D099408952091750130917601821758 -:10294000930771F09093760180937501E09179017E -:10295000F0917A01309721F00084F185E02D0994FF -:10296000089508950C94B1140E947D200E94850B57 -:102970000E9448210C94AF2ACF93DF931F92CDB7CA -:10298000DEB79091D30192FF10C090FF0EC01F924E -:102990008F9329EC33E03F932F9389830E945D0747 -:1029A0000F900F900F900F9089810F90DF91CF9132 -:1029B0000C946F0B5F926F927F928F929F92AF9267 -:1029C000BF92CF92DF92EF92FF920F931F93CF931C -:1029D000DF9300D000D01F92CDB7DEB70E94C80BA6 -:1029E00096E8C92E91E0D92E04E010E0AA24A39421 -:1029F000B12C502E802F0E94470C3C01F601F29022 -:102A0000E2906F01E826F926E114F104A1F40150E7 -:102A1000110978F78FEF89838A831B820E948620B1 -:102A20008160782F9D838C8349815A816B818D8150 -:102A30000E948A1538C08091D30181FD0E94500CFC -:102A40002DE030E04501022E02C0880C991C0A944A -:102A5000E2F7C4018E219F21892B09F129835A8233 -:102A60006820792081E0672809F480E08B830E9448 -:102A700086208160782F9D838C8349815A816B8168 -:102A80008D810E948A15F801EE0FFF1FE458FE4F5A -:102A900080819181882599259183808304C021506C -:102AA000310980F6B4CF0E94BD2410917B010E94B1 -:102AB00029141817D1F00E94291480937B010F90DC -:102AC0000F900F900F900F90DF91CF911F910F916A -:102AD000FF90EF90DF90CF90BF90AF909F908F903E -:102AE0007F906F905F900C94BC140F900F900F909C -:102AF0000F900F90DF91CF911F910F91FF90EF906A -:102B0000DF90CF90BF90AF909F908F907F906F900D -:102B10005F900895CF93DF93CDB7DEB72B970FB6B5 -:102B2000F894DEBF0FBECDBF4F83588769877A8781 -:102B30008B87DE01119686E0FD0111928A95E9F7F7 -:102B400085E0FE01379601900D928A95E1F7498163 -:102B50005A816B817C818D819E810E94381C2B96CD -:102B60000FB6F894DEBF0FBECDBFDF91CF910895B1 -:102B7000CF93C82F882309F4C1C0823859F40E942A -:102B8000291481FDBBC089E30E94131F0E949E1F70 -:102B900089E30CC0833879F40E94291480FDAEC00B -:102BA00083E50E94131F0E949E1F83E50E94341F2D -:102BB000CF910C949E1F843859F40E94291482FDF1 -:102BC0009DC087E40E94131F0E949E1F87E4EECFE2 -:102BD0008CEF8C0F813A48F48C2F0E945D29811173 -:102BE0008DC08C2F0E94131FE3CF80E28C0F8830A2 -:102BF00048F4C77081E001C0880FCA95EAF70E94C7 -:102C0000551FD6CF8BE58C0F833078F4C53A29F069 -:102C1000C63A31F482E890E005C081E890E002C055 -:102C200083E890E0CF910C94851488E58C0F833174 -:102C300008F064C0C83A39F1C93A41F1CA3A49F1D9 -:102C4000CB3A51F1CC3A59F1CD3A61F1C03B69F13F -:102C5000CE3A71F1CF3A79F1C13B81F1C23B89F1B2 -:102C6000C33B91F1C43B99F1C53BA1F1C63BA9F12E -:102C7000C73BB1F1C83BB9F1C93BC1F1CA3BC9F58A -:102C80008AE292E038C082EE90E035C089EE90E0B2 -:102C900032C08AEE90E02FC085EB90E02CC086EB2E -:102CA00090E029C087EB90E026C08CEC90E023C038 -:102CB0008DEC90E020C083E891E01DC08AE891E0AF -:102CC0001AC082E991E017C084E991E014C081E262 -:102CD00092E011C083E292E00EC084E292E00BC069 -:102CE00085E292E008C086E292E005C087E292E0C9 -:102CF00002C080E090E0CF910C949B14CF91089596 -:102D0000882309F44BC0823859F40E94291481FFAA -:102D100045C089E30E94131F0E949E1F89E30CC0D7 -:102D2000833871F40E94291480FF38C083E50E9423 -:102D3000131F0E949E1F83E50E94341F0C949E1F48 -:102D4000843859F40E94291482FF28C087E40E9425 -:102D5000131F0E949E1F87E4EFCF9CEF980F913ABC -:102D600058F390E2980F983050F4877091E001C0CA -:102D7000990F8A95EAF7892F0E945B1FDFCF9BE5A9 -:102D8000980F933020F480E090E00C948514885ADA -:102D9000833120F480E090E00C949B140895882304 -:102DA00021F00E94551F0C949E1F0895882321F046 -:102DB0000E945B1F0C949E1F08958F929F92AF926A -:102DC000BF92CF92DF92EF92FF920F931F93CF9318 -:102DD000DF931F92CDB7DEB74C01A62E472FFC0123 -:102DE000E580E2948FE0E822F280FF2021F07983F1 -:102DF0000E94721F498149830E940C1F49818823C8 -:102E000081F0FF2071F080E28A0D883050F082E07E -:102E10000E94F51E0E940C1FBB24B394B826498162 -:102E200001C0B12CE42FE295EF70F0E0E05AFF4FC3 -:102E30000C94D52C842F807F142F1F70882311F0C1 -:102E40001295107FFF2089F0112309F496C180E2CA -:102E50008A0D883020F4812F0E94551F03C0812FD6 -:102E60000E94651F0E949E1F88C18A2D0E948016A5 -:102E7000112309F4BFC180E28A0D883020F4812F2C -:102E80000E945B1F03C0812F0E946B1F0E949E1F28 -:102E9000B1C1242F207F842F8F70203211F08295B2 -:102EA000807FAA2021F0F1E0AF16B1F021C0FF2011 -:102EB00041F0EE2039F191E0E91224C00E94851F13 -:102EC00099C1EE2021F0E1E0EE1609F493C1898367 -:102ED0000E94881F89810BC1FF2029F0F5E0FE15B3 -:102EE00008F488C10FC094E09E1508F483C1FFC0A8 -:102EF000FF2059F0EE2031F0F401958190FF3DC1A3 -:102F00009F7095830E94CF1675C1EE2009F4EFC023 -:102F10003AC1242F26952695237030E021153105DE -:102F200021F02130310561F065C1FF2021F08A2DAB -:102F3000942F937002C080E090E00E9485145AC1E3 -:102F4000FF2021F08A2D942F937002C080E090E042 -:102F50000E949B144FC18A2DFF2019F00E94432329 -:102F600002C00E94AB230E94302444C1842F83708E -:102F700009F04EC0F1103EC12A2D229526952770EA -:102F8000220F220F8A2D8F70C82ED12CE12CF12C0C -:102F9000022E04C0CC0CDD1CEE1CFF1C0A94D2F7E0 -:102FA000A4FE10C06FE070E080E090E004C0660F07 -:102FB000771F881F991F2A95D2F760957095809585 -:102FC000909503C060E070E0CB01242F26952695F4 -:102FD000237030E02230310569F02330310589F06B -:102FE0006C297D298E299F292130310571F00E949D -:102FF0008A1D00C16C297D298E299F290E94A41D4C -:10300000F9C00E948A1DC701B6010E94701DF2C05E -:10301000FF2019F0842F817001C08695882309F460 -:10302000E9C02A2D229526952770220F220F8A2D7E -:103030008F70C82ED12CE12CF12C022E04C0CC0CA8 -:10304000DD1CEE1CFF1C0A94D2F7A4FE10C06FE03A -:1030500070E080E090E004C0660F771F881F991F22 -:103060002A95D2F7609570958095909503C060E0A1 -:1030700070E0CB01242F26952695237030E0223076 -:10308000310569F02330310589F06C297D298E29BD -:103090009F292130310571F00E945E1EABC06C2962 -:1030A0007D298E299F290E94781EA4C00E945E1E41 -:1030B000C701B6010E94441E9DC00A2D10E0F80110 -:1030C000E05EF109E531F10508F053C0E059FF4F2A -:1030D0000C94D52C1A2D1F70842F8F71FF2021F096 -:1030E0000E94DD1D812F0ECF0E94FE1D812F0E94A8 -:1030F000D61680C0FF2049F0F4E0FE1508F47AC02F -:10310000842F8F710E94231E75C085E08E1508F4F0 -:1031100071C0F6CFFF2039F0842F8F710E94DD1D22 -:1031200069C0FF20C9F3842F8F710E94FE1D62C009 -:10313000FF2029F0842F8F710E94C81D5BC00E9460 -:10314000BE1D58C0FF2051F0142F1F71812F0E9407 -:10315000DD1D63E0812F0E94EC1E4CC081E00E94C7 -:10316000F51E91E09E1508F045C082E00E94F51E14 -:1031700041C0FF2031F0EE2079F28A2D0E94B8156F -:1031800039C0EE2081F28A2D0E94801633C04F7024 -:103190006A2DC4010E94B3070E94E51C2BC0F110E8 -:1031A00029C0942F9F70492F50E042305105B9F04B -:1031B0004CF44115510581F041305105D9F40E947C -:1031C000EA2A18C04330510569F04430510591F4A2 -:1031D0008A2D0E94772B0EC00E94C02A0BC00E942D -:1031E000192B08C00E943F2B05C04F706A2DC401E7 -:1031F0000E945308BB20F1F00E94E81E80FD1AC017 -:10320000F40112820E94E21E0E94DD1DC4010E9490 -:1032100028190E94E21E0F90DF91CF911F910F910C -:10322000FF90EF90DF90CF90BF90AF909F908F90E6 -:103230000C94FE1D0F90DF91CF911F910F91FF9085 -:10324000EF90DF90CF90BF90AF909F908F900895B8 -:103250000F931F93CF93DF93EC01288139818B81EA -:103260009C81892B31F03F3F11F080E003C02F3F5C -:10327000E1F781E0811113C0CE010E94BB078823D2 -:1032800071F0688179818A810E94DE1E8C010E9422 -:10329000921E0E94651DB801CE010E94DD16DF91CD -:1032A000CF911F910F9108950E94721F0E94821F5B -:1032B0000E94471F0E949E1F0E945E250E9430248C -:1032C00080E090E00E94851480E090E00C949B14D4 -:1032D0000E94621F0C9454190E94D31E292F22951C -:1032E0002F7030E02C3031054CF42A3031056CF46D -:1032F0002250310922303105B0F407C02C3031059D -:1033000071F02F30310559F00EC0803F31F018F4C4 -:10331000803E48F402C0843F31F481E0089593FB7D -:10332000882780F9089580E00895CF93DF9300D037 -:1033300000D01F92CDB7DEB70F900F900F900F9077 -:103340000F90DF91CF910895CF93DF9300D000D0FD -:1033500000D0CDB7DEB726960FB6F894DEBF0FBE0D -:10336000CDBFDF91CF9108951F93CF93DF93C0918D -:10337000860116E080918701C81799F0D0E01C9F64 -:10338000F0011D9FF00D1124E857FE4F408151813F -:1033900062817381848195810E94A4192196C770EE -:1033A000E9CFDF91CF911F9108954091B8015091DD -:1033B000B9016091BA017091BB018091BC019091FB -:1033C000BD010C94A419CF938091BD0182958F709B -:1033D00009F05FC08091BA01882309F45AC0209196 -:1033E0008601A09187016091B8017091B901809127 -:1033F000BB019091BC0131E06F3F09F030E0B32F89 -:10340000C6E02A1709F445C0009721F07F3F21F458 -:103410004B2F03C041E001C040E030E040FD35C02B -:10342000C29FF001C39FF00D1124E857FE4F418168 -:1034300074132BC04081641328C04281411125C000 -:10344000438154814817590710F441505109481BD2 -:10345000590B483C5105C8F48091BD018F708061C3 -:103460008093BD0186E0829FF001839FF00D1124BF -:10347000E357FE4F80818F708061808388EB91E0FD -:103480000E942819CF910C94B4192F5F3F4F2770D9 -:10349000B8CFCF910895CF92DF92EF92FF920F9322 -:1034A0001F93CF93DF93CDB7DEB762970FB6F89433 -:1034B000DEBF0FBECDBF8C0185E0F801DE011D9699 -:1034C00001900D928A95E1F7D8014C9111965C918B -:1034D000119712966C9112971396ED90FC90149799 -:1034E0007091B801E091B9012091BB013091BC010C -:1034F0002115310531F0EF3F31F481E07F3F19F4C0 -:1035000003C081E001C080E0B82FB170CB2E80FDF8 -:103510006CC1D090BA01DD2009F4F5C0F091BD0175 -:10352000E216F30638F0C701821B930B883C910525 -:1035300048F09BC0209530952E0D3F1D283C31054D -:1035400008F093C08F2F807F09F052C0E51314C09C -:10355000741312C0D62E61110FC0FF70F061F0938A -:10356000BD010E94D51988EB91E00E942819809135 -:10357000BD01F80185836CC1EF2831F05F3F31F464 -:1035800081E04F3F19F403C081E001C080E080FD7D -:1035900003C081E0862701C080E0F82FF170FF2E84 -:1035A00080FF1CC0809186012091870136E0821740 -:1035B00009F428C190E0389FF001399FF00D1124E3 -:1035C000E857FE4F7181571306C07081471303C03F -:1035D0007281671303C001968770E9CFD62E6623E8 -:1035E00009F436C18091BD0181608093BD0153C053 -:1035F000E51308C0741306C0611104C0D801159604 -:10360000FC93AEC04D875E878D859E856A8B0E9438 -:103610006C196A89882329F1D62E662311F120912D -:10362000BD01822F82958F7090E002970CF460C0EC -:103630008091B8019091B90198878F831986FB8694 -:10364000EA862C87CE01079651C0E51731F14D87E8 -:103650005E878D859E856A8B0E946C196A898111AF -:103660002EC0C8010E942819A4C08F2F807F69F73F -:103670007E2DF98AE88A89890E94951988EB91E064 -:103680000E942819E8EBF1E086E0DF011D928A959F -:10369000E9F70E94D519D12CDBC07413D8CF611182 -:1036A000D6CFD8011596FC93C8010E942819E8EBE3 -:1036B000F1E086E0DF011D928A95E9F7C9C0D62EB8 -:1036C000662379F22091BD01822F82958F7090E060 -:1036D000029774F08091B8019091B9019A8389831F -:1036E0001B82FD82EC822E83CE0101960E94281956 -:1036F00086E0F801A8EBB1E001900D928A95E1F720 -:103700000E94E3196FC0E216F30628F0C701821B7E -:10371000930B9C0104C0209530952E0D3F1D283C35 -:10372000310508F052C0D62E662309F49ACFE5136E -:103730002CC074132AC08091BD0180FD1DC0982F3C -:1037400092959F70C9F0D80115968C9315979F306C -:1037500039F09F5F9295907F8F70892B15968C938F -:10376000C8010E94281986E0F801A8EBB1E0019099 -:103770000D928A95E1F736C086E0F801A8EBB1E03A -:1037800001900D928A95E1F763C04D875E878D8524 -:103790009E850E946C19882379F086E0F801A8EBD9 -:1037A000B1E001900D928A95E1F70E94E3190E9421 -:1037B000D519DD24D3944CC08091BD0181608093E4 -:1037C000BD01C8010E94281943C07E2DF98AE88AEC -:1037D00089890E949519E8EBF1E086E0DF011D92EE -:1037E0008A95E9F70E94D51933C0662309F439CFC9 -:1037F0004D875E878D859E850E946C19882309F40C -:1038000030CFCBCF4D875E878D859E850E94D31E9E -:10381000292F22952F7030E0223031052CF49F7033 -:1038200041F0811106C00CC0243031052CF49F708A -:1038300049F4805E883020F0C8010E942819CF2CFE -:10384000DC2C06C0D80115969C91907F91F7F8CF9B -:103850008D2D62960FB6F894DEBF0FBECDBFDF91FF -:10386000CF911F910F91FF90EF90DF90CF9008952F -:103870001F93CF93DF93CDB7DEB72C970FB6F89495 -:10388000DEBF0FBECDBF4F83588769877A878B878E -:103890009C87CE0107960E944B1A8823C1F02F8186 -:1038A00038858A859B85892B31F03F3F11F080E078 -:1038B00003C02F3FE1F781E0811147C04F81588558 -:1038C00069857A858B859C850E94A4193EC086E017 -:1038D000FE013796DE01119601900D928A95E1F76F -:1038E000FF81E8854A855B854115510531F0EF3F41 -:1038F00031F481E0FF3F19F403C081E001C080E0B2 -:1039000080FD23C02091870130E0C90101968770B6 -:1039100099276091860170E086179707F1F1F98386 -:10392000EA835D834C8396E0929FD001939FB00D14 -:103930001124A857BE4FFE01319601900D929A9521 -:10394000E1F7809387010E94B41916E08091860107 -:1039500090918701891779F1189FC0011124885728 -:103960009E4F0E944B1A882331F1E09186011E9FE1 -:10397000F0011124E857FE4F40815181628173812B -:10398000848195810E94A4198091860190E001961E -:103990008770992780938601D9CF0E946819109269 -:1039A000870110928601E8EBF1E086E0DF011D92CD -:1039B0008A95E9F7CACF2C960FB6F894DEBF0FBEF2 -:1039C000CDBFDF91CF911F910895EF92FF920F939A -:1039D0001F93CF93DF93FC01009709F46FC0F12C84 -:1039E000EE24E394EF0121968491843740F48430EF -:1039F00008F055C0813081F0823021F15FC08537F9 -:103A000009F447C0C0F19CE7980F903708F056C002 -:103A10008F770E94801645C08F010E5F1F4FFE01F9 -:103A2000849190E2980F983050F48770FE2D01C079 -:103A3000FF0F8A95EAF78F2F0E94751F15C00E940D -:103A4000B81514C08F010E5F1F4FFE01849190E2E4 -:103A5000980F983068F48770FE2D01C0FF0F8A958B -:103A6000EAF78F2F0E947B1F0E949E1FE80119C05A -:103A70000E948016FBCFCF010296FE01C491CC2399 -:103A800061F0EFE9FFE03197F1F700C00000C150AD -:103A9000F6CFCF010296FE01F490EC0102C00E9425 -:103AA000B8158F2D882341F0EFE9FFE03197F1F74A -:103AB00000C000008150F6CFFE0194CFDF91CF917E -:103AC0001F910F91FF90EF90089508956093C201A8 -:103AD0007093C3018093C4019093C5010C94541951 -:103AE0000F931F930091C2011091C3012091C40153 -:103AF0003091C501062B172B282B392B0093C201BF -:103B00001093C3012093C4013093C5011F910F91FD -:103B10000C9454190F931F930091C2011091C3018B -:103B20002091C4013091C50106231723282339238E -:103B30000093C2011093C3012093C4013093C501C7 -:103B40001F910F910C9454190F931F930091C20170 -:103B50001091C3012091C4013091C5010627172798 -:103B6000282739270093C2011093C3012093C40171 -:103B70003093C5011F910F910C9454191092BE01FE -:103B80001092BF011092C0011092C1010C945419FF -:103B900041E050E060E070E004C0440F551F661F34 -:103BA000771F8A95D2F74093BE015093BF0160936F -:103BB000C0017093C1010C94541941E050E060E0E1 -:103BC00070E004C0440F551F661F771F8A95D2F717 -:103BD0008091BE019091BF01A091C001B091C1013F -:103BE000842B952BA62BB72B8093BE019093BF01FE -:103BF000A093C001B093C1010C94541941E050E06E -:103C000060E070E004C0440F551F661F771F8A955F -:103C1000D2F740955095609570958091BE01909136 -:103C2000BF01A091C001B091C10184239523A623B7 -:103C3000B7238093BE019093BF01A093C001B093BE -:103C4000C1010C94541941E050E060E070E004C000 -:103C5000440F551F661F771F8A95D2F78091BE01CA -:103C60009091BF01A091C001B091C1018427952717 -:103C7000A627B7278093BE019093BF01A093C001F0 -:103C8000B093C1010C9454190F931F930091BE017E -:103C90001091BF012091C0013091C101062B172B5B -:103CA000282B392B0093BE011093BF012093C00134 -:103CB0003093C1011F910F910C9454190F931F93CE -:103CC0000091BE011091BF012091C0013091C1014E -:103CD00006231723282339230093BE011093BF0125 -:103CE0002093C0013093C1011F910F910C9454197E -:103CF0000F931F930091BE011091BF012091C0014D -:103D00003091C10106271727282739270093BE01C4 -:103D10001093BF012093C0013093C1011F910F91F7 -:103D20000C9454190895CF92DF92EF92FF920F9363 -:103D30001F93CF93DF93EC01C090C201D090C301D9 -:103D4000E090C401F090C5018091BE019091BF0147 -:103D5000A091C001B091C101C82AD92AEA2AFB2A40 -:103D60000FE110E0B701A601002E04C0769567951B -:103D7000579547950A94D2F740FD05C001501109A7 -:103D800088F780E007C0BE01802F0E94D50A019706 -:103D9000A9F3802FDF91CF911F910F91FF90EF90AA -:103DA000DF90CF900895CF93DF93EC010E94931E94 -:103DB000BE010E94D50ADF91CF910895CB010E94E8 -:103DC000D31E08958091C6018595859585950895A2 -:103DD0008091C6018770089598E0899F9001112411 -:103DE000622B6093C6010C94DD1D4091C601809545 -:103DF00084238093C601982F977069F450E0282F90 -:103E0000332727FD30954217530729F0859585956F -:103E100085950C94FE1D08959091C601977081E0E0 -:103E200009F480E0089540910C0150910D0120E0CB -:103E300030E09FEFFA01E20FF31F6281681799F0FB -:103E40009F3F19F4611101C0922F2F5F3F4F263021 -:103E5000310581F79F3F39F0FA01E90FF11D97FD18 -:103E6000FA9582830895089540910C0150910D01B7 -:103E700020E030E0FA01E20FF31F9281981301C0B5 -:103E800012822F5F3F4F26303105A1F7089581E060 -:103E900090E0E0910C01F0910D01E80FF91F108204 -:103EA000019688309105A9F708959091D201982B39 -:103EB0009093D201089580959091D2019823909388 -:103EC000D20108951092D20108959091D101982BBA -:103ED0009093D101089580959091D101982390936A -:103EE000D10108951092D10108959091D001982B9D -:103EF0009093D001089580959091D001982390934C -:103F0000D00108951092D00108958093C7010895BB -:103F10001092C701089540910C0150910D0120E0CD -:103F200030E080E0FA01E20FF31F918191118F5F81 -:103F30002F5F3F4F27303105A9F70895E0910C011D -:103F4000F0910D018091D2018083E0910C01F091FC -:103F50000D0180819091D101892B8083E0910C012A -:103F6000F0910D0180819091D001892B80839091F7 -:103F7000C701992361F0E0910C01F0910D0180815E -:103F8000892B80830E948B1F81111092C701809121 -:103F90000C0190910D010C9435149093470180937E -:103FA0004601089540E0009739F09C012150310905 -:103FB000822393234F5FF7CF842F08958295982F04 -:103FC0009C7C96959695837344E0849F9001112480 -:103FD000922B892F8A7A86959575990F892B08954A -:103FE0001F93CF93DF931F92CDB7DEB799830E94C3 -:103FF000DE1F182F9981892F0E94DE1F212F30E0AC -:10400000322F2227A901482BCA010F90DF91CF91AF -:104010001F9108958091E801843039F11092D40104 -:1040200020E488E190E00FB6F894A89580936000B2 -:104030000FBE2093600080E00E94850780E00E9410 -:104040006F0B83B7817F846083BF83B7816083BF39 -:104050007894889583B78E7F83BF88E10FB6F894F4 -:1040600080936000109260000FBE08950895089537 -:1040700080E00E9485070E9436200E94C80B0E94A3 -:1040800037200E948A0C91E0811101C090E0892FB5 -:1040900008950E94681980E00E9485070E94AF2A57 -:1040A0000E9429140C946F0B1F920F920FB60F925F -:1040B00011248F939F93AF93BF938091D40181116B -:1040C00013C08091D5019091D601A091D701B091F4 -:1040D000D8014196A11DB11D8093D5019093D601C1 -:1040E000A093D701B093D801BF91AF919F918F91C9 -:1040F0000F900FBE0F901F90189582E084BD93E043 -:1041000095BD9AEF97BD80936E0008952FB7F894F0 -:104110008091D5019091D601A091D701B091D8019D -:104120002FBF0895CF92DF92EF92FF920F931F93CC -:104130002FB7F8944091D5015091D6016091D701E5 -:104140007091D8012FBF6A017B01EE24FF248C01FE -:1041500020E030E0C016D106E206F30610F441502C -:104160005109481B590BCA011F910F91FF90EF9005 -:10417000DF90CF9008951F920F920FB60F921124E7 -:104180008F939F93AF93BF938091D5019091D60168 -:10419000A091D701B091D8010196A11DB11D8093C6 -:1041A000D5019093D601A093D701B093D801BF91C8 -:1041B000AF919F918F910F900FBE0F901F90189508 -:1041C0000E943011F8942FEF87EA91E62150804049 -:1041D0009040E1F700C0000087E090EBDC018093A5 -:1041E000F3019093F401A093F501B093F6012CE054 -:1041F00088E190E00FB6F894A895809360000FBE18 -:1042000020936000FFCFCF92DF92EF92FF920F9347 -:104210001F93CF93DF93C82E84E0D82E01E010E0E7 -:104220008D2D0E94470C7C01CDE0D0E098010C2E32 -:1042300002C0220F331F0A94E2F72E213F21232BC5 -:1042400049F06C2F7D2D80E00E945408C81202C0F6 -:1042500081E007C0219750F7DA948FEFD812E0CFB2 -:1042600080E0DF91CF911F910F91FF90EF90DF9051 -:10427000CF900895CF93C82F8CE20E94032188230A -:1042800021F08C2FCF910C94032180E0CF910895E1 -:10429000CF930E949322811102C00E94742289EE62 -:1042A00093E00E94C406C5E6C15049F00E94C80BC5 -:1042B0008FE39CE90197F1F700C00000F5CF82EE93 -:1042C00093E00E94C40689E20E943A2181110AC14A -:1042D0008AE20E943A2181110E94742285E00E94A4 -:1042E0003A2181110E94E0200E949E228093D301F6 -:1042F00087E00E943A21882399F18BE10E943A21BC -:10430000882351F09091D30191FB882780F921E017 -:10431000822780FB91F922C08EE00E943A218823F7 -:1043200051F09091D30192FB882780F921E08227F8 -:1043300080FB92F913C080E10E943A219091D30151 -:10434000882341F093FB882780F921E0822780FBB6 -:1043500093F904C0892F809580FB90F99093D30145 -:104360008091D3010E94A2220E94B0228093F10189 -:1043700080EE0E943A21882341F08091F101982F2C -:10438000909590FB80F98093F10189E30E943A2196 -:10439000882359F09091F10191FB882780F921E061 -:1043A000822780FB91F99093F10182EE0E943A21DD -:1043B000882359F09091F10192FB882780F921E040 -:1043C000822780FB92F99093F10186EE0E943A21B8 -:1043D000882359F09091F10193FB882780F921E01F -:1043E000822780FB93F99093F10183EE0E943A219A -:1043F000882359F09091F10194FB882780F921E0FE -:10440000822780FB94F99093F10185E30E943A2181 -:10441000882359F09091F10195FB882780F921E0DC -:10442000822780FB95F99093F10181E30E943A2164 -:10443000882359F09091F10196FB882780F921E0BB -:10444000822780FB96F99093F10181E10E943A2145 -:10445000882359F09091F10197FB882780F921E09A -:10446000822780FB97F99093F1018091F1010E94DE -:10447000B42287E20E943A21C82F8EE10E943A219D -:104480008111C2608FE10E943A218111C46080E2F3 -:104490000E943A218111C86081E20E943A21811173 -:1044A000C06182E20E943A218111C06283E20E94CF -:1044B0003A218111C06484E20E943A21882311F0DC -:1044C000C06802C0CC2329F08C2F0E94AB226C2F35 -:1044D00003C00E94A722682F70E080E090E0CF9197 -:1044E0000C94661DCF9108956DEE7EEF80E090E014 -:1044F0000E940F2D60E082E090E00E94FD2C60E0C1 -:1045000083E090E00E94FD2C60E084E090E00E9457 -:10451000FD2C60E085E090E00E94FD2C60E086E0EC -:1045200090E00C94FD2C80E090E00E94F72C21E0BC -:104530008D3E9E4F09F020E0822F089582E090E0AA -:104540000C94EF2C682F82E090E00C94FD2C83E01B -:1045500090E00C94EF2C682F83E090E00C94FD2CFD -:1045600084E090E00C94EF2C682F84E090E00C94B1 -:10457000FD2C86E090E00C94EF2C682F86E090E014 -:104580000C94FD2C8091DB0180FF0BC06091110128 -:1045900085E0689FB00111247595679575956795BD -:1045A0002AC081FF09C06091110185E0689FB001B8 -:1045B0001124759567951FC082FF07C06091110196 -:1045C00085E0689FB001112416C04091DC014423AE -:1045D000C9F060911001461788F72091110185E01C -:1045E000289F90011124429FC001439F900D1124E8 -:1045F00070E00E94C12C6038710540F461157105AE -:1046000039F002C065E070E0862F08958FE70895C5 -:1046100081E008958091DB0180FF08C060910F0167 -:1046200070E0759567957595679521C081FF06C007 -:1046300060910F0170E07595679519C082FF04C005 -:1046400060910F0170E010C08091DC018823C1F0FF -:1046500060910E018617A0F790910F01989FC001FD -:10466000112470E00E94C12C6038710528F4611596 -:10467000710521F0862F08958FE7089581E0089550 -:1046800061E070E0F4CF803F21F40E94C222819566 -:1046900004C0813F29F40E94C2228093DF01089563 -:1046A000823F21F40E94C222819504C0833F29F4F5 -:1046B0000E94C2228093DE010895893F19F40E946E -:1046C0000A2305C08A3F31F40E940A238195809312 -:1046D000E00108958B3F21F40E940A23819504C0D4 -:1046E0008C3F29F40E940A238093E1010895843FBE -:1046F00021F48091DD01816017C0853F21F4809114 -:10470000DD01826011C0863F21F48091DD0184606B -:104710000BC0873F21F48091DD01886005C0883F90 -:1047200031F48091DD0180618093DD0108958D3F3A -:1047300021F48091DB0181600BC08E3F21F48091D8 -:10474000DB01826005C08F3F29F48091DB0184602A -:104750008093DB010895803F39F48091DF0187FF6A -:104760006CC01092DF0169C0813F29F48091DF01A4 -:104770001816BCF362C09091DE01823F29F497FFC6 -:104780005CC01092DE0159C0833F19F41916CCF3B6 -:1047900054C0893F41F48091E00118160CF04DC0DF -:1047A0001092E0014AC08A3F29F48091E00187FF1E -:1047B00044C0F6CF8B3F39F48091E10187FF3DC0C3 -:1047C0001092E1013AC08C3F29F48091E101181662 -:1047D000BCF333C0843F21F48091DD018E7F17C08C -:1047E000853F21F48091DD018D7F11C0863F21F44A -:1047F0008091DD018B7F0BC0873F21F48091DD012B -:10480000877F05C0883F31F48091DD018F7E8093E2 -:10481000DD0113C08D3F21F48091DB018E7F0BC041 -:104820008E3F21F48091DB018D7F05C08F3F29F4FD -:104830008091DB018B7F8093DB018091DE01811110 -:104840000EC08091DF0181110AC08091E0018111C9 -:1048500006C08091E101811102C01092DC0108952F -:104860008091D30183FF7EC085E294E00E94C4065C -:104870008091DD011F928F9380E294E09F938F934C -:104880000E945D078EE194E00E94C4062091DE0143 -:10489000822F992787FD90959F932F938BE194E02A -:1048A0009F938F930E945D0789E194E00E94C40664 -:1048B0002091DF01822F992787FD90959F932F9359 -:1048C00086E194E09F938F930E945D0784E194E0DA -:1048D0000E94C4062091E001822F992787FD9095C0 -:1048E0009F932F9381E194E09F938F930E945D07A4 -:1048F0008FE094E00E94C4062091E101822F992765 -:1049000087FD90959F932F938CE094E09F938F93D6 -:104910000E945D0789E094E00E94C4068091DC015A -:104920001F928F9386E094E09F938F930E945D0780 -:1049300084E094E00E94C4068091DB011F928F9373 -:1049400081E094E09F938F930E945D078EEF93E048 -:104950000E94C4068DB79EB74C960FB6F8949EBFC2 -:104960000FBE8DBF8DED91E00E947A140E948620CB -:104970009093DA018093D90108951F93CF93DF9329 -:104980008091D9019091DA010E9492204091DC013E -:10499000442321F02091120130E006C02091130140 -:1049A0005AE0259F900111248217930708F482C0D2 -:1049B0008091DE011091DF01D091E001C091E10111 -:1049C000811107C0111105C0D11103C0CC2309F416 -:1049D00071C04F3F19F04F5F4093DC01181624F46B -:1049E0000E94C2228093DE018091DE0187FF05C014 -:1049F0000E94C22281958093DE01111624F40E9448 -:104A0000C2228093DF018091DF0187FF05C00E94F1 -:104A1000C22281958093DF016091DE01662339F126 -:104A20001091DF01112319F1772767FD7095872F0A -:104A3000972F0E94C62B23E333E343E35FE30E94F7 -:104A40002A2C0E94932B6093DE01612F772767FD4C -:104A50007095872F972F0E94C62B23E333E343E300 -:104A60005FE30E942A2C0E94932B6093DF011D16A6 -:104A700024F40E940A238093E0018091E00187FFE3 -:104A800005C00E940A2381958093E0011C1624F43E -:104A90000E940A238093E1018091E10187FF05C014 -:104AA0000E940A2381958093E101DF91CF911F91AC -:104AB0000C943024DF91CF911F910895EDEDF1E03A -:104AC00085E0DF011D928A95E9F71092DC011092D2 -:104AD000DB01089588E496E00E94C4061F9281E0FD -:104AE0008F931F9285E08F938AEF95E09F938F932A -:104AF0000E945D070F900F900F900F900F900F90F6 -:104B000008958330E9F128F4813061F0823009F1B1 -:104B10000895853009F462C008F449C0863009F46C -:104B200074C0089520911301862F90E0820F911D8B -:104B30008F3F910520F4620F6093130103C08FEF44 -:104B400080931301809113011F928F9383E395E06B -:104B500072C020911201862F90E0820F911D8F3F2D -:104B6000910520F4620F6093120103C08FEF8093D0 -:104B70001201809112011F928F9381E295E05BC038 -:104B800020911101862F90E0820F911D8F3F91059A -:104B900020F4620F6093110103C08FEF8093110125 -:104BA000809111011F928F938EE095E044C0209177 -:104BB0001001862F90E0820F911D8F3F910520F408 -:104BC000620F6093100103C08FEF809310018091FA -:104BD00010011F928F9389EF94E02DC020910F0157 -:104BE000862F90E0820F911D8F3F910520F4620F78 -:104BF00060930F0103C08FEF80930F0180910F012D -:104C00001F928F9380EE94E016C020910E01862FA4 -:104C100090E0820F911D8F3F910520F4620F609309 -:104C20000E0103C08FEF80930E0180910E011F9241 -:104C30008F9385EC94E09F938F930E945D070F9074 -:104C40000F900F900F900895833081F128F48130F8 -:104C500059F08230D1F00895853009F449C0B8F197 -:104C6000863009F456C0089580911301681720F426 -:104C7000861B8093130102C01092130180911301CF -:104C80001F928F9386EB94E054C0809112016817B5 -:104C900020F4861B8093120102C0109212018091B1 -:104CA00012011F928F9384EA94E043C08091110116 -:104CB000681720F4861B8093110102C01092110125 -:104CC000809111011F928F9381E994E032C080910D -:104CD0001001681720F4861B8093100102C0109207 -:104CE0001001809110011F928F938CE794E021C0F6 -:104CF00080910F01681720F4861B80930F0102C07A -:104D000010920F0180910F011F928F9383E694E020 -:104D100010C080910E01681720F4861B80930E014D -:104D200002C010920E0180910E011F928F9388E4B1 -:104D300094E09F938F930E945D070F900F900F90C8 -:104D40000F900895CF93C82F1F928F932DE437E0D3 -:104D50003F932F930E945D0761E070E080E090E058 -:104D600004C0660F771F881F991FCA95D2F70E944B -:104D7000661D0F900F900F900F90CF910C946819B3 -:104D8000CF938732B0F58E3108F085C28E3009F4AA -:104D900001C200F5873009F4CBC1A8F4863009F0D0 -:104DA00080C28091D301817F8E7F8093D30187EA77 -:104DB00098E00E94C4068BE79CE00E94C40681E054 -:104DC0008093E301B3C1883009F43FC08B3009F40C -:104DD000A9C167C2863109F421C220F4803109F4E7 -:104DE000ECC15FC2893109F402C28B3109F4BFC141 -:104DF00058C2883309F496C150F4893209F44DC27F -:104E0000853309F44AC2873209F447C24AC283345F -:104E100009F443C228F48A3308F443C289533EC2DA -:104E2000883409F03EC20E9468198FE59CE00E9418 -:104E3000C4069FEF23ED80E3915020408040E1F7CE -:104E400000C000000E94E02071C18FE79CE00E943A -:104E5000C40681EE9BE00E94C4060E94A7221F9216 -:104E60008F938EED9BE09F938F930E945D078CED57 -:104E70009BE00E94C4060E949E22C82F89EC9BE002 -:104E80000E94C4061F92CF9324EC3BE03F932F93E4 -:104E90000E945D0782EC9BE00E94C40688EB9BE0C9 -:104EA0000E94C4068C2F81701F928F9325EB3BE0EC -:104EB0003F932F930E945D0783EB9BE00E94C40603 -:104EC00089EA9BE00E94C406C1FB882780F91F92F3 -:104ED0008F9326EA3BE03F932F930E945D0784EA7D -:104EE0009BE00E94C40688E99BE00E94C406C2FBC6 -:104EF000882780F91F928F9325E93BE03F932F93FA -:104F00000E945D0783E99BE00E94C4068AE89BE05B -:104F10000E94C406C3FBCC27C0F91F92CF9387E839 -:104F20009BE09F938F930E945D0785E89BE00E9422 -:104F3000C4060E94B022C82F81E79BE00E94C406ED -:104F40001F92CF932CE63BE03F932F930E945D0787 -:104F50008AE69BE00E94C40681E59BE00E94C406AD -:104F60008C2F81701F928F932EE43BE03F932F9301 -:104F70000E945D078DB79EB780960FB6F8949EBFCE -:104F80000FBE8DBF8CE49BE00E94C40685E39BE0CE -:104F90000E94C406C1FB882780F91F928F9322E3E9 -:104FA0003BE03F932F930E945D0780E39BE00E94CC -:104FB000C4068EE19BE00E94C406C2FB882780F9EC -:104FC0001F928F932BE13BE03F932F930E945D074D -:104FD00089E19BE00E94C40687E09BE00E94C40632 -:104FE000C3FB882780F91F928F9324E03BE03F9317 -:104FF0002F930E945D0782E09BE00E94C40688EF29 -:105000009AE00E94C406C4FB882780F91F928F9300 -:1050100025EF3AE03F932F930E945D0783EF9AE0DC -:105020000E94C40681EE9AE00E94C406C5FB882750 -:1050300080F91F928F932EED3AE03F932F930E94B9 -:105040005D078CED9AE00E94C40680EC9AE00E9415 -:10505000C406C6FB882780F91F928F932DEB3AE098 -:105060003F932F930E945D078BEB9AE00E94C4064A -:1050700083EB9AE00E94C406C7FBCC27C0F91F92BD -:10508000CF9380EB9AE09F938F930E945D078EEA07 -:105090009AE00E94C4060E94B922C82F87E99AE0CC -:1050A0000E94C4061F92CF9322E93AE03F932F93C8 -:1050B0000E945D078DB79EB780960FB6F8949EBF8D -:1050C0000FBE8DBF80E99AE00E94C40686E89AE090 -:1050D0000E94C4068C2F81701F928F9323E83AE0C0 -:1050E0003F932F930E945D0781E89AE00E94C406D7 -:1050F00088E79AE00E94C406C6951F92CF9385E781 -:105100009AE09F938F930E945D0783E79AE00E9445 -:10511000C4068DB79EB708960FB6F8949EBF0FBE13 -:105120008DBF04C08EEC98E00E94C406C1E0BEC0F2 -:105130008091D301C82FC095C170C0FB80F98093C6 -:10514000D301CC2349F083E59CE00E94C406809102 -:10515000D3018660886045C086E49CE00E94C40656 -:105160008091D301897F877F8093D301DFCF8091A6 -:10517000D30181FBCC27C0F991E0C927C0FB81F99D -:105180008093D301CC2319F089E39CE025C08BE206 -:105190009CE0CACF8091D30182FBCC27C0F991E07B -:1051A000C927C0FB82F98093D301CC2319F08CE18D -:1051B0009CE012C08CE09CE0B7CF8091D30183FBD0 -:1051C000CC27C0F991E0C927C0FB83F98093D301B4 -:1051D000CC2351F080E09CE00E94C4068091D30172 -:1051E00081608093D30162C083EF9BE09DCF88E90B -:1051F00098E00E94C4068FE798E00E94C4068DE400 -:1052000098E00E94C40686E298E00E94C40686EEFA -:1052100097E00E94C40688EB97E086CF8AEA97E081 -:105220000E94C4060E9429141F928F9380E997E080 -:105230009F938F930E945D0780910B011F928F9324 -:1052400089E797E09F938F930E945D078091740197 -:105250001F928F9386E697E09F938F930E945D073E -:105260008091D5019091D601A091D701B091D8013C -:10527000BF93AF939F938F9382E597E09F938F9314 -:105280000E945D078DB79EB742960FB6F8949EBFF9 -:105290000FBE8DBF4BCF8D5101C080E00E94A22672 -:1052A00045CF81EF9BE00E94C406C0E08C2FCF91D8 -:1052B000089580E0089580E00895CF93C82F8091ED -:1052C000E301813071F020F0823009F448C03FC121 -:1052D000A0910C01B0910D018C91823209F039C17D -:1052E00007C0A0910C01B0910D018C91823249F45C -:1052F0008C2F0E94592981112FC08C2F0E94C0260B -:105300002CC08C2F0E945B29811126C0C431E1F092 -:1053100070F4CB3081F0C031D1F40E946A2585E46D -:1053200097E00E94C40682E08093E30115C0C93271 -:1053300059F0C83361F487EA98E00E94C40689E412 -:1053400097E00E94C40608C01092E30104C183E400 -:1053500097E00E94C406FFC081E08170FEC0C432A5 -:1053600028F5CE3108F0C1C0CB30A1F1D0F4C73060 -:1053700009F0D3C08EE18093130182E38093120180 -:105380008AE08093110184E18093100188E080938A -:105390000F0188E280930E0189EE95E00E94C40619 -:1053A000BFC0C33149F1C431C1F0B7C0CB3409F437 -:1053B000A9C028F4C93289F0C83361F0AEC0C13544 -:1053C00009F49EC0C23509F499C0CE3409F0A5C0D5 -:1053D0006AE09EC00E946A25A3C08091E2018823F2 -:1053E00019F01092E2019CC086EF95E00E94C4067D -:1053F00081E08093E301B1C080ED95E00E94C40696 -:105400008EEB95E00E94C406809113011F928F934A -:105410008BEB95E09F938F930E945D0789EB95E05E -:105420000E94C40687EA95E00E94C406809112019A -:105430001F928F9384EA95E09F938F930E945D075C -:1054400082EA95E00E94C40683E995E00E94C406C2 -:10545000809111011F928F9380E995E09F938F9324 -:105460000E945D078EE895E00E94C4068DE795E0F6 -:105470000E94C406809110011F928F938AE795E0E5 -:105480009F938F930E945D0788E795E00E94C40672 -:1054900083E695E00E94C40680910F011F928F93CE -:1054A00080E695E09F938F930E945D078EE595E0DF -:1054B0000E94C40687E495E00E94C40680910E0114 -:1054C0001F928F9384E495E09F938F930E945D07D2 -:1054D00082E495E00E94C4068DB79EB748960FB649 -:1054E000F8949EBF0FBE8DBF1BC0CE51EC2FF0E0D5 -:1054F000E55CFE4F80818093E20112C061E003C051 -:1055000061E006C06AE08091E2010E94812508C046 -:105510008091E2010E94242603C087EE95E013C02B -:105520008091E201882369F01F928F9381EE95E0CC -:105530009F938F930E945D070F900F900F900F9095 -:1055400004C08EED95E00E94C40681E006C0109272 -:10555000E30180E002C080E000CFCF9108950E9477 -:105560009322811102C00E9474220E94B92280936A -:10557000F20180FF02C0869501C080E00C9485078F -:105580008091F201982F9695292F30E02330310534 -:105590004CF49F5F990F8170892B81608093F20199 -:1055A0000E94BD228091D30180FF0FC08091F20143 -:1055B00086951F928F938CEC9CE09F938F930E9413 -:1055C0005D070F900F900F900F908091F2018695DC -:1055D0000C9485078091F201982F969591F091583F -:1055E000990F8170892B8093F2018E7F91E009F4ED -:1055F00090E08091F20190FB80F98093F2010E948B -:10560000BD228091D30180FF0FC08091F201869569 -:105610001F928F9384EB9CE09F938F930E945D0772 -:105620000F900F900F900F908091F20186950C943F -:1056300085078091F201982F909590FB80F98093D7 -:10564000F2010E94BD228091D30180FF0FC08091A2 -:10565000F20181701F928F938EE99CE09F938F934C -:105660000E945D070F900F900F900F908091F201B4 -:1056700080FF02C0869501C080E00C9485073091C0 -:10568000F201232F26952F5F2F77822F90E0317024 -:1056900004972CF4220F232B2093F20102C03093A5 -:1056A000F2018091F2018E7F91E009F490E0809107 -:1056B000F20190FB80F98093F2010E94BD2280915B -:1056C000D30180FF0FC08091F20186951F928F93C6 -:1056D0008AE89CE09F938F930E945D070F900F9044 -:1056E0000F900F908091F20186950C948507209180 -:1056F000F201922F96959827990F822F8170892B0E -:105700008093F2018E7F91E009F490E08091F201A4 -:1057100090FB80F98093F2010E94BD228091F201FA -:1057200086950C94850704D06894B1118DC00895B6 -:1057300070D088F09F5790F0B92F9927B751A0F0FB -:10574000D1F0660F771F881F991F1AF0BA95C9F715 -:1057500012C0B13081F077D0B1E0089574C0672FE6 -:10576000782F8827B85F39F0B93FCCF386957795C5 -:105770006795B395D9F73EF49095809570956195AE -:105780007F4F8F4F9F4F0895E89409C097FB3EF4D9 -:1057900090958095709561957F4F8F4F9F4F99237E -:1057A000A9F0F92F96E9BB279395F69587957795FC -:1057B0006795B795F111F8CFFAF4BB0F11F460FFBC -:1057C0001BC06F5F7F4F8F4F9F4F16C0882311F014 -:1057D00096E911C0772321F09EE8872F762F05C028 -:1057E000662371F096E8862F70E060E02AF09A95C3 -:1057F000660F771F881FDAF7880F9695879597F9B8 -:10580000089557FD9058440F551F59F05F3F71F0B0 -:105810004795880F97FB991F61F09F3F79F0879517 -:105820000895121613061406551FF2CF4695F1DFA0 -:1058300008C0161617061806991FF1CF8695710530 -:10584000610508940895E894BB2766277727CB0164 -:1058500097F908950BD078C069D028F06ED018F071 -:10586000952309F05AC05FC01124EECFCADFA0F320 -:10587000959FD1F3950F50E0551F629FF001729FE5 -:10588000BB27F00DB11D639FAA27F00DB11DAA1F04 -:10589000649F6627B00DA11D661F829F2227B00D51 -:1058A000A11D621F739FB00DA11D621F839FA00DDC -:1058B000611D221F749F3327A00D611D231F849F2C -:1058C000600D211D822F762F6A2F11249F57504083 -:1058D0008AF0E1F088234AF0EE0FFF1FBB1F661F1E -:1058E000771F881F91505040A9F79E3F510570F0D7 -:1058F00014C0AACF5F3FECF3983EDCF38695779512 -:105900006795B795F795E7959F5FC1F7FE2B880FD1 -:10591000911D9695879597F9089597F99F6780E867 -:1059200070E060E008959FEF80EC089500240A94F1 -:105930001616170618060906089500240A9412166A -:105940001306140605060895092E0394000C11F49D -:10595000882352F0BB0F40F4BF2B11F460FF04C04A -:105960006F5F7F4F8F4F9F4F0895991B79E004C061 -:10597000991F961708F0961B881F7A95C9F780958E -:10598000089597FB072E16F4009407D077FD09D0F1 -:105990000E94DB2C07FC05D03EF4909581959F4F2B -:1059A0000895709561957F4F0895EE0FFF1F059044 -:1059B000F491E02D0994AA1BBB1B51E107C0AA1F5B -:1059C000BB1FA617B70710F0A61BB70B881F991FA0 -:1059D0005A95A9F780959095BC01CD010895F99944 -:1059E000FECF92BD81BDF89A992780B50895A8E1B0 -:1059F000B0E042E050E00C94172D262FF999FECF2D -:105A000092BD81BDF89A019700B4021639F01FBA11 -:105A100020BD0FB6F894FA9AF99A0FBE0895019630 -:105A2000272F0E94FE2C0C94FD2CDC01CB01FC01E5 -:105A3000F999FECF06C0F2BDE1BDF89A319600B4E7 -:0E5A40000D9241505040B8F70895F894FFCFF2 -:105A4E00FF9E0C8F0D6C0D380D050D01C801280839 -:105A5E00140A321E0F1F6C76667349130353437973 -:105A6E00693309196F7F59404D36206F032203ECBD -:105A7E0002CC02580271028A02A30201020304053B -:065A8E00060708090000F4 -:00000001FF diff --git a/keyboards/kc60/keymaps/sgoodwin/compiled.hex b/keyboards/kc60/keymaps/sgoodwin/compiled.hex deleted file mode 100644 index 0d9a356f7..000000000 --- a/keyboards/kc60/keymaps/sgoodwin/compiled.hex +++ /dev/null @@ -1,1469 +0,0 @@ -:100000000C9401070C9445070C9445070C94450784 -:100010000C9445070C9445070C9445070C94450730 -:100020000C9445070C9445070C943A120C940C134D -:100030000C94E3200C9445070C9445070C94450759 -:100040000C9445070C9445070C9445070C94450700 -:100050000C9445070C944A210C9445070C944507D1 -:100060000C9445070C9445070C9445070C944507E0 -:100070000C9445070C9445070C9445070C944507D0 -:100080000C9445070C9445070C9445070C944507C0 -:100090000C9445070C9445070C9445070C944507B0 -:1000A0000C9445070C9445070C9445077113931362 -:1000B0007E1493137E14D513F8137E144D1460141C -:1000C000A917A917D817D81718183A18891989190C -:1000D00045188919EC18EC1856195E1989198419F4 -:1000E000F918F918F918F918F918F918F918F91888 -:1000F000F918F918F918F918F918F918F918F91878 -:100100000919191920192719311929001E001F0072 -:1001100020002100220023002400250026002700C3 -:100120002D002E002A002B0014001A0009001300D5 -:100130000A000D000F0018001C0033002F003000D3 -:1001400031000252040015001600170007000B00D2 -:10015000110008000C001200340000002800E1002B -:1001600000001D001B000600190005000E00100015 -:100170003600370038000000E500E000E200E30050 -:10018000000000002C000000000000000000E7005C -:10019000E600E400015329001E001F00200021009A -:1001A0002200230024002500260027002D002E0019 -:1001B0002A002B0014001A000800150017001C006C -:1001C00018000C00120013002F0030003100025202 -:1001D00004001600070009000A000B000D000E00C5 -:1001E0000F003300340000002800E10000001D0073 -:1001F0001B00060019000500110010003600370032 -:1002000038000000E500E000E200E300000000002C -:100210002C000000000000000000E700E600E40001 -:10022000005335003A003B003C003D003E003F00DB -:100230004000410042004300440045004C000100E2 -:100240000100520001000100010001000100010055 -:100250000100520081508050835001005000510035 -:100260004F00010001000100010001005000510099 -:100270004F000000010001000000AC00AE00AB0028 -:10028000AA00A900A800010001000100010000006F -:100290000100010001000100000000002C0000002E -:1002A00000000000000001500050010000000A445E -:1002B000454255473A20656E61626C65642E0A00BE -:1002C0005374617465206F6620726F772025583AE9 -:1002D0002025303136620A0048756D616E2D7265D9 -:1002E000616461626C65206D6174726978207374F9 -:1002F0006174653A0D0A004465626F756E63696EDC -:10030000672064656C61792072656D61696E696EE4 -:10031000673A2025580A005B735D004B6579626F70 -:100320006172642073746172742E0A005B575D0001 -:100330005B535D005B525D005B445D005B435D00B1 -:100340000E036B00630036003000760032000000C0 -:10035000080359006F007500000004030904090236 -:100360007400040100A0FA09040000010301010067 -:100370000921110100012240000705810308000A3C -:1003800009040100010301020009211101000122F9 -:100390004D000705820308000A090402000103005A -:1003A000000009211101000122360007058303081E -:1003B000000A0904030002030000000921110100E2 -:1003C0000122200007058403200001070504032003 -:1003D00000011201100100000008EDFE6060010044 -:1003E000010200010631FF0974A1010975150025FC -:1003F000FF9520750881020976150025FF95207567 -:10040000089102C005010980A1018502160100269C -:10041000B7001A01002AB700751095018100C005C8 -:100420000C0901A1018503160100269C021A010096 -:100430002A9C02751095018100C005010902A101E5 -:100440000901A100050919012905150025019505D6 -:10045000750181029501750381010501093009319A -:100460001581257F95027508810609381581257F3C -:10047000950175088106050C0A38021581257F95BE -:100480000175088106C0C005010906A1010507190B -:10049000E029E71500250195087501810295017590 -:1004A0000881010508190129059505750191029535 -:1004B00001750391010507190029FF150026FF00AA -:1004C000950675088100C00A002530325820006B5F -:1004D0006579626F6172645F7265706F72743A20E1 -:1004E000004B6579626F617264204C4544732073E0 -:1004F000746174653A2025780A00646F6E652E0A6F -:1005000000626F6F676D61676963207363616E3A44 -:10051000202E2E2E2000290A002575002F0025757B -:10052000005D28002564002000256400200025646B -:100530000020002564007C0025303258006D6F7566 -:1005400073656B6579205B62746E7C7820792076A8 -:1005500020685D287265702F61636C293A205B000A -:100560006D6B5F776865656C5F74696D655F746FEF -:100570005F6D6178203D2025640A006D6B5F7768B0 -:1005800065656C5F6D61785F7370656564203D20A3 -:1005900025640A006D6B5F74696D655F746F5F6DD4 -:1005A0006178203D2025640A006D6B5F6D61785F86 -:1005B0007370656564203D2025640A006D6B5F697A -:1005C0006E74657276616C203D2025640A006D6B47 -:1005D0005F64656C6179203D2025640A006D6B5F66 -:1005E000776865656C5F74696D655F746F5F6D6179 -:1005F00078203D2025640A006D6B5F776865656C27 -:100600005F6D61785F7370656564203D2025640AC5 -:10061000006D6B5F74696D655F746F5F6D617820ED -:100620003D2025640A006D6B5F6D61785F737065B6 -:100630006564203D2025640A006D6B5F696E7465FA -:100640007276616C203D2025640A006D6B5F6465E5 -:100650006C6179203D2025640A000A00257500366A -:100660003A20776865656C5F74696D655F746F5F6C -:100670006D61783A20000A00257500353A207768C8 -:1006800065656C5F6D61785F73706565643A2000C5 -:100690000A00257500343A2074696D655F746F5FD8 -:1006A0006D61783A20000A00257500333A206D61AB -:1006B000785F73706565643A20000A002575003222 -:1006C0003A20696E74657276616C286D73293A20E0 -:1006D000000A00257500313A2064656C6179282A8A -:1006E00031306D73293A20000A092D2056616C754E -:1006F0006573202D0A004D3E004D25643E20003FCD -:10070000007365742064656661756C740A00433E0D -:10071000200077686572652064656C74613A2063B7 -:100720007572736F723D25642C20776865656C3D2A -:1007300025640A53656520687474703A2F2F656EBE -:100740002E77696B6970656469612E6F72672F77A8 -:10075000696B692F4D6F7573655F6B6579730A00FF -:100760000A092D204D6F7573656B6579202D0A453B -:1007700053432F713A09717569740A313A096465F6 -:100780006C6179282A31306D73290A323A09696E11 -:1007900074657276616C286D73290A333A096D614C -:1007A000785F73706565640A343A0974696D655FD2 -:1007B000746F5F6D61780A353A09776865656C5FBB -:1007C0006D61785F73706565640A363A09776865AC -:1007D000656C5F74696D655F746F5F6D61780A0A3F -:1007E000703A097072696E742076616C7565730A6F -:1007F000643A097365742064656661756C74730A84 -:1008000075703A092B310A646F776E3A092D310AF7 -:10081000706775703A092B31300A7067646F776EB4 -:100820003A092D31300A0A7370656564203D2064F1 -:10083000656C7461202A206D61785F7370656564F2 -:10084000202A2028726570656174202F2074696DDC -:10085000655F746F5F6D6178290A003F004D3E202F -:1008600000433E20004C25640A0074696D65725F88 -:10087000636F756E743A202530346C580A006B65CE -:1008800079626F6172645F69646C653A2025580A09 -:10089000006B6579626F6172645F70726F746F6311 -:1008A0006F6C3A2025580A00686F73745F6B657926 -:1008B000626F6172645F6C65647328293A20255801 -:1008C0000A000A092D20537461747573202D0A00E3 -:1008D0004743433A20342E382E31204156522D4C76 -:1008E0004942433A20312E382E3073766E204156DD -:1008F000525F415243483A20617672350A004F50A8 -:1009000054494F4E533A204C55464120424F4F5484 -:100910004D41474943204D4F5553454B455920457F -:10092000585452414B455920434F4E534F4C45204C -:10093000434F4D4D414E4420343039360A00425524 -:10094000494C443A20386538393137302D64697262 -:100950007479202831333A32393A3233204A756E6D -:100960002031342032303136290A005649443A20A9 -:1009700030784645454428596F7529205049443AF6 -:1009800020307836303630286B6336307632292086 -:100990005645523A203078303030310A00444553C1 -:1009A000433A204120637573746F6D206B657962E3 -:1009B0006F6172640A000A092D2056657273696FAF -:1009C0006E202D0A000A092D20436F6E736F6C652F -:1009D000202D0A4553432F713A09717569740A6DC8 -:1009E0003A096D6F7573656B65790A000A092D20E8 -:1009F0004D61676963202D0A443A09446562756751 -:100A0000204D65737361676520546F67676C650A75 -:100A1000583A094D6174726978204465627567209F -:100A20004D6F646520546F67676C65202D20536897 -:100A30006F77206B65797072657373657320696E6B -:100A4000206D617472697820677269640A4B3A0993 -:100A50004B6579626F6172642044656275672054EA -:100A60006F67676C65202D2053686F77206B657901 -:100A70007072657373207265706F72740A4D3A09F3 -:100A80004465627567204D6F75736520546F6767A5 -:100A90006C650A563A0956657273696F6E0A533A65 -:100AA000095374617475730A433A09416374697632 -:100AB00061746520436F6E736F6C65204D6F646564 -:100AC0000A46312D4631303A0953776974636820FC -:100AD000746F204C6179657220302D3920284631A1 -:100AE00030203D204C30290A302D393A095377699E -:100AF00074636820746F204C6179657220302D39E1 -:100B00000A4553433A0953776974636820746F2028 -:100B10004C6179657220302028616C7465726E6159 -:100B20007465206B65792031290A47524156453A50 -:100B30000953776974636820746F204C617965721A -:100B400020302028616C7465726E617465206B655D -:100B5000792032290A50415553453A094A756D703A -:100B600020746F20426F6F746C6F6164657220280F -:100B70005265736574290A453A095072696E74208A -:100B8000454550524F4D2053657474696E67730A22 -:100B9000000A002575002E6C6576656C3A20000A07 -:100BA000002575002E656E61626C653A20000A00B2 -:100BB00025303258006261636B6C696768745F63EB -:100BC0006F6E6669672E7261773A20000A0025759C -:100BD000002E6E6B726F3A20000A002575002E738E -:100BE0007761705F6261636B736C6173685F626190 -:100BF000636B73706163653A20000A002575002EEF -:100C0000737761705F67726176655F6573633A20C1 -:100C1000000A002575002E6E6F5F6775693A200027 -:100C20000A002575002E737761705F72616C745FC6 -:100C3000726775693A20000A002575002E73776186 -:100C4000705F6C616C745F6C6775693A20000A00B4 -:100C50002575002E636170736C6F636B5F746F5FDB -:100C6000636F6E74726F6C3A20000A002575002E57 -:100C7000737761705F636F6E74726F6C5F636170C6 -:100C8000736C6F636B3A20000A0025303258006B9A -:100C900065796D61705F636F6E6669672E726177EB -:100CA0003A20000A002575002E6D6F7573653A2095 -:100CB000000A002575002E6B6579626F6172643AD7 -:100CC00020000A002575002E6D61747269783A2043 -:100CD000000A002575002E656E61626C653A200081 -:100CE0000A00253032580064656275675F636F6E75 -:100CF0006669672E7261773A20000A0025750064E4 -:100D0000656661756C745F6C617965723A20003F4D -:100D1000000A6D6F7573653A206F66660A000A6D8A -:100D20006F7573653A206F6E0A000A6B6579626FA2 -:100D30006172643A206F66660A000A6B6579626FB9 -:100D40006172643A206F6E0A000A6D61747269788C -:100D50003A206F66660A000A6D61747269783A20FB -:100D60006F6E0A000A64656275673A206F66660AEC -:100D7000000A64656275673A206F6E0A000A0A4AC3 -:100D8000756D70696E6720746F20626F6F746C6F21 -:100D9000616465722E2E2E2000433E20006565633F -:100DA0006F6E6669673A0A006261636B6C696768B7 -:100DB0007420737465703A2025750A006261636B54 -:100DC0006C6967687420746F67676C653A20257575 -:100DD0000A006261636B6C696768742064656372A2 -:100DE000656173653A2025750A006261636B6C6901 -:100DF00067687420696E6372656173653A20257552 -:100E00000A0011241FBECFEFDAE0DEBFCDBF04B66B -:100E100003FE24C08091F3019091F401A091F501AB -:100E2000B091F6018730904BA740B04BB9F41092C7 -:100E3000F3011092F4011092F5011092F60114BE24 -:100E400084B7877F84BF88E10FB6F89480936000F1 -:100E5000109260000FBEE0E0F8E3099511E0A0E019 -:100E6000B1E0ECE6FBE502C005900D92A634B107B7 -:100E7000D9F721E0A6E4B1E001C01D92A33FB2077B -:100E8000E1F70E947A0F0C94B42D0C940000FF93AC -:100E9000EF93E0914601F0914701309709F00995F1 -:100EA000EF91FF910895FC018591803011F0EFDF03 -:100EB000FBCF0895FF27E0E230E247FF0CC04195E9 -:100EC00097FF09C0EDE26095709580959095611D42 -:100ED000711D811D911D27FF02C0219530E350E255 -:100EE000AA27660F771F881F991FAA1FA41710F043 -:100EF000A41B63955A95A9F7AA3008F0A95FA05DD5 -:100F0000AF93F395611571058105910541F7ED32B8 -:100F100011F4EF93F395F21718F43F93F395FBCF89 -:100F20008F91B5DFFA95E1F70895E991F9918591EF -:100F3000803021F0853219F0AADFF9CF089520E042 -:100F4000E89455915532C1F3503311F4689455919A -:100F50005A3348F4505390F3220F022E220F220FDF -:100F6000200D250FF4CF0EF42195899199915336D8 -:100F700019F3533729F1533559F1BC0188279927C3 -:100F8000E8945C3621F4899199916894559154368E -:100F900039F446EF7EF077FF0DC08FEF9FEF0AC068 -:100FA00055374AE039F0583540E121F0523642E0F9 -:100FB00009F00895FF93EF937DDFEF91FF91B7CF95 -:100FC000FF93EF93FC0181918030B9F360DFFBCF99 -:100FD000FF93EF9368DFF1CFDF93CF93CDB7DEB709 -:100FE0002596A3DFCF91DF9108950895089581E0BC -:100FF000089508950C94F6070C94F7070C94F907DC -:10100000269A2E988FEF9FEF90938700809386000B -:1010100082E28093800089E1809381000C943E2BD2 -:101020000E9400080C94F5072E9881110AC0809147 -:1010300080008F7D8093800010928B0010928A0038 -:101040000895833041F48091800080628093800015 -:101050008FEF9FEF12C0909180009062909380007C -:1010600023E030E0281B3109220F331F8FEF9FEF61 -:1010700002C0969587952A95E2F790938B0080930E -:101080008A00089580E090E0089581E008950C942E -:10109000450808950F931F93CF93DF93EC010881C8 -:1010A0001981C8010E94221FB8010E94E3088C0127 -:1010B000BE010E944708882309F47AC08A818823E8 -:1010C000C9F18091530181111EC0043180E51807D8 -:1010D00089F50E94490881E0809353010E941521FF -:1010E000909352018093510110924A0110924C0149 -:1010F00010924B0110924E0110924D01109250012E -:1011000010924F0155C080915101909152010E945F -:101110002121883C910570F480914A01E82FF0E08C -:10112000EE0FFF1FE55BFE4F118300838F5F8093FF -:101130004A013EC0043880E5180721F00538104503 -:10114000A1F02AC08A81882321F01092480182E010 -:1011500012C080914801811106C086E20E944716A4 -:1011600086E20E940F1782E014C08A81882331F042 -:101170001092490180E20E945E171AC080914901D5 -:10118000811106C087E20E94471687E20E940F176E -:1011900080E20E9465170CC081E080934801809333 -:1011A0004901CE01DF91CF911F910F910C94FC0763 -:1011B00080E0DF91CF911F910F9108950C9410085A -:1011C0000C94FA0708959EE0799FF001112496E4AB -:1011D000899FE00DF11D1124E60FF11DEE0FFF1F99 -:1011E000E65FFE4F859194910895880F991F865769 -:1011F0009040FC01859194910895880F991F865F16 -:101200009E4FFC018591949108950F931F93CF9366 -:10121000DF93EC01811521E39207A0F5811530E3FE -:10122000930708F0D7C0883E9105D8F4803E910519 -:1012300008F06FC0883A910578F4853A910508F076 -:101240006AC08130910509F4F8C108F4F3C1843013 -:10125000910508F05EC0EEC18B3B910508F466C0B5 -:10126000E9C1C11580E2D80708F0AFC0C11591E00F -:10127000D90708F04EC0C03FD10508F4DBC18E018C -:1012800010651CC2803820E5920700F5803730E5F4 -:10129000930708F0A3C0C11580E5D80709F4ACC0D6 -:1012A00050F4CE01905480319F4008F0C3C18E01AC -:1012B0001F70106A03C2C13030E5D30709F4AAC019 -:1012C000C43180E5D80708F4AFC0B4C1C33890E595 -:1012D000D90709F48EC050F4C13830E5D30709F4BA -:1012E00082C008F083C000E011EDE8C1C03191E593 -:1012F000D90708F49FC1C11527E5D20708F436C104 -:10130000CE0190578115904108F094C18E011F7055 -:101310008FC18E01D3C1853A910509F491C1863AF6 -:10132000910509F490C103E810E4C8C1883A910519 -:1013300009F48CC1893A910509F48BC18A3A910567 -:1013400009F48AC18B3A910509F489C18C3A910557 -:1013500009F488C18D3A910509F487C1803B910554 -:1013600009F486C18E3A910509F485C18F3A910539 -:1013700009F484C1813B910509F483C1823B910545 -:1013800009F482C1833B910509F481C1843B910535 -:1013900009F480C1853B910509F47FC1863B910525 -:1013A00009F47EC1873B910509F47DC1883B910515 -:1013B00009F47CC1893B910509F47BC18A3B910505 -:1013C00009F07AC10AE216E479C1CE019F700E9449 -:1013D000FD0875C18C011127106C70C18C010F7054 -:1013E0001127146D6BC100E010ED68C100E012ED33 -:1013F00065C100E013ED62C10E94F7198FEF94E31D -:101400002CE0815090402040E1F700C000000E9495 -:101410006F2154C18EEA92E00E9453078091D3015C -:1014200081608093D3014AC10E942223811102C0AE -:101430000E9403230E943F2390E09093F201809347 -:10144000F101C23030E5D30721F48091F1018160D0 -:1014500086C0C43080E5D80721F48091F101826014 -:101460007EC0C63090E5D90721F48091F1018460F7 -:1014700076C0C83020E5D20719F48091F10127C069 -:10148000CA3030E5D30721F48091F101806167C053 -:10149000CC3080E5D80721F48091F10180625FC0F3 -:1014A000CE3090E5D90721F48091F101806457C0D6 -:1014B000C03120E5D20721F48091F10180684FC04E -:1014C000C23130E5D30729F48091F101846088604E -:1014D00046C0C33080E5D80721F48091F1018E7FAA -:1014E0003EC0C53090E5D90721F48091F1018D7F90 -:1014F00036C0C73020E5D20721F48091F1018B7FFF -:101500002EC0C93030E5D30719F48091F10126C00F -:10151000CB3080E5D80721F48091F1018F7E1FC088 -:10152000CD3090E5D90721F48091F1018F7D17C06E -:10153000CF3020E5D20721F48091F1018F7B0FC0DD -:10154000C13130E5D30721F48091F1018F7707C0D5 -:10155000C331D04531F48091F1018B7F877F809337 -:10156000F1018091F1010E944323A8C08D2F99279A -:101570008F70992781309105E9F48E01037011274E -:101580009C0102C0220F331F0A95E2F789011C68F3 -:10159000CE01E4E0880F991FEA95E1F78827937060 -:1015A000082B192BF3E0CC0FDD1FFA95E1F7C0767D -:1015B000DD272CC08230910529F41C2F0027016FF4 -:1015C000106A7CC08330910561F4CE018370992745 -:1015D00001E010E002C0000F111F8A95E2F71C68BD -:1015E0000EC084309105A9F4CE018370992701E0E3 -:1015F00010E002C0000F111F8A95E2F71A6863E03D -:10160000CC0FDD1F6A95E1F7C07ED7700C2B1D2B28 -:1016100055C08530910529F41C2F0027046F106AEE -:101620004DC0069709F04AC0CF71DD271C2F002757 -:10163000106244C000E010E041C001E010E03EC094 -:1016400001E810E43BC002E810E438C002EE14E404 -:1016500035C009EE14E432C00AEE14E42FC005EBE5 -:1016600014E42CC006EB14E429C007EB14E426C0F4 -:101670000CEC14E423C00DEC14E420C003E815E4E2 -:101680001DC00AE815E41AC002E915E417C004E910 -:1016900015E414C001E216E411C003E216E40EC022 -:1016A00004E216E40BC005E216E408C006E216E404 -:1016B00005C007E216E402C000E014E4C801DF91AF -:1016C000CF911F910F9108959EE0799FF001112411 -:1016D00096E4899FE00DF11D1124E60FF11DEE0F38 -:1016E000FF1FE65FFE4F85919491803E9105E0F4E7 -:1016F000803C910558F58133910509F46FC048F499 -:101700008932910509F463C08A32910509F46DC0EC -:1017100072C089339105E9F082389105D1F08533A3 -:10172000910509F44DC067C0833E910581F138F4FD -:10173000803E9105B9F0823E9105D9F05CC0863EAD -:10174000910561F1873E9105A1F155C00E94F50810 -:1017500008952091F10120FD02C021FF4CC080EED0 -:1017600090E049C08091F10180FFF9CF89E390E0DA -:1017700042C08091F10182FF0EC08091F10184FF8F -:1017800003C080E090E037C083EE90E034C08091E9 -:10179000F10182FFF2CF82EE90E02DC08091F10145 -:1017A00083FF0BC08091F10184FDEBCF87EE90E0C9 -:1017B00022C08091F10183FFF5CF86EE90E01BC03F -:1017C0008091F10185FF07C089E290E014C080910B -:1017D000F10185FFF9CF85E390E00DC08091F10123 -:1017E00086FF07C08AE290E006C08091F10186FF83 -:1017F000F9CF81E390E00E94050908950C94FE075B -:10180000E82FF0E0EE5DFE4F8081E82FEF70F0E012 -:10181000282F22952F7081E090E0022E01C0880FC2 -:101820000A94EAF780A308950F931F93CF93DF9351 -:1018300085B7806885BF85B7806885BFC4E0D0E084 -:1018400001E010E0FE01EE5DFE4F8081E82FEF70B9 -:10185000F0E021A182958F70A80102C0440F551FAE -:101860008A95E2F7242B21A38C2F0E94000C21974C -:1018700048F78DE090E041E050E0FC01EC5EFE4F67 -:101880002081E22FEF70F0E062A122952F70DA0143 -:1018900002C0AA0FBB1F2A95E2F76A2B62A3019729 -:1018A00060F7DF91CF911F910F910C94DE08EF92BA -:1018B000FF920F931F93CF93DF93CEE5D1E084E0A7 -:1018C000E82E01E010E095E0F92E8E2D0E94000C2C -:1018D0002DE030E040E050E0F901EC5EFE4F808109 -:1018E000E82FEF70F0E060A170E082958F7002C089 -:1018F000759567958A95E2F760FD09C0B801022EDB -:1019000002C0660F771F0A94E2F7462B572B21502F -:10191000310910F73A912A912417350721F059839C -:101920004883F09200018E2D0E94000CEA949FEFF4 -:10193000E912CBCF2091000127FD2EC08091D30169 -:1019400080FF10C0822F992787FD90959F932F933A -:1019500087EF92E09F938F930E94EC070F900F9078 -:101960000F900F908091000181508093000187FDBE -:1019700007C08FE99FE00197F1F700C000000CC09D -:10198000A8E6B1E0EEE5F1E0929182919E938E930C -:1019900091E0E435F907C1F70E94E00881E0DF91AA -:1019A000CF911F910F91FF90EF900895E82FF0E0F5 -:1019B000EE0FFF1FE25AFE4F808191810895EF9252 -:1019C000FF920F931F93CF93DF938091D30180FFFA -:1019D00004C088ED92E00E9453070EE511E0C0E0DC -:1019E000D0E040ECE42E42E0F42E8091D30180FF61 -:1019F00013C0F801808191810E947F209F938F9373 -:101A0000DF93CF93FF92EF920E94EC070F900F901D -:101A10000F900F900F900F9021960E5F1F4FC530C3 -:101A2000D10519F7DF91CF911F910F91FF90EF90A2 -:101A300008951F93CF93DF93C8E6D1E010E09A9109 -:101A40008A910E946120180F81E0CE35D807B9F73E -:101A5000812FDF91CF911F91089580917301089597 -:101A60009FB7F89410926A019FBF9091E80194305B -:101A700009F058C09091E9009F702091EC0020FF80 -:101A800002C020E801C020E0292B94E09093E900F7 -:101A90009091EB0090FF43C09091EE0097FF3FC004 -:101AA00090916801992321F09091E80095FF37C04B -:101AB0001092680196E03091E80035FD15C0309134 -:101AC000E801343061F53091EB0035FD28C09150CC -:101AD00021F481E08093680122C0EFE9FFE03197B3 -:101AE000F1F700C00000E7CF8093F1008091E8009B -:101AF00085FD0AC08091E80080FFFCCF8091E8005E -:101B00008E778093E80006C08FB7F89491E09093A9 -:101B10006A018FBF2F702093E90080E008952F7035 -:101B20002093E9008FEF0895CF93DF9300D01F92A9 -:101B3000CDB7DEB72091E801243019F523E02983E1 -:101B40009B838A832093E9008FEF9091E800815076 -:101B500095FD06C095ED9A95F1F700008111F5CF3E -:101B60008091E80085FF0DC040E050E063E070E048 -:101B7000CE0101960E942D108091E8008E7780930F -:101B8000E8000F900F900F90DF91CF910895CF93C1 -:101B9000DF9300D01F92CDB7DEB72091E80124304B -:101BA00021F522E029839B838A8383E08093E900E7 -:101BB0008FEF9091E800815095FD06C095ED9A95C4 -:101BC000F1F700008111F5CF8091E80085FF0DC08D -:101BD00040E050E063E070E0CE0101960E942D10DD -:101BE0008091E8008E778093E8000F900F900F901F -:101BF000DF91CF9108952091E8012430F1F422E0A3 -:101C00002093E9002FEF3091E800215035FD06C008 -:101C100035ED3A95F1F700002111F5CF2091E8005C -:101C200025FF0BC040E050E065E070E00E942D1001 -:101C30008091E8008E778093E8000895CF93DF933A -:101C4000EC018091E801843039F581E08093E9006E -:101C50008FEF9091E800815095FD06C095ED9A9523 -:101C6000F1F700008111F5CF8091E80085FF14C0E5 -:101C700040E050E068E070E0CE010E942D108091BD -:101C8000E8008E778093E80088E0FE01ABE6B1E0E3 -:101C900001900D928A95E1F7DF91CF9108958CE341 -:101CA00093E00E9453078091E701811109C00E94CF -:101CB000BF110E941C128091E20084608093E200B8 -:101CC000089588E393E00E9453071092E701089576 -:101CD00084E393E00C94530780E393E00C94530760 -:101CE0008CE293E00E9453070C94D8208091690104 -:101CF0008F5F8093690162E30E94442D911135C08A -:101D00001092690180916A01882379F18091E8013C -:101D1000843049F58091E9008F709091EC0090FF3C -:101D200002C090E801C090E0982B84E08093E90025 -:101D30008091EB0080FF14C08091EE0087FF10C0FF -:101D40008091E80085FF03C01092F100F9CF8091E7 -:101D5000E80080FF05C08091E8008E778093E8005E -:101D60009F709093E90010926A01089542E061EC3F -:101D700081E00E94391142E061EC82E00E94391159 -:101D800042E061EC83E00E94391142E261EC84E0C0 -:101D90000C9439118091EA01833009F453C030F476 -:101DA000813071F0823009F48CC008958A3009F4D2 -:101DB00078C08B3009F45EC0893009F09AC020C029 -:101DC0008091E901813A09F094C08091E800877F11 -:101DD0008093E8008091ED019091EE01892B21F034 -:101DE00060E080E090E003C068E08BE691E070E0A6 -:101DF0000E9476108091E8008B778093E800089528 -:101E00008091E901813209F074C08091ED019091D7 -:101E1000EE01892B09F06DC08091E800877F8093E7 -:101E2000E8008091E80082FD05C08091E801811101 -:101E3000F8CF5FC08091F100809373018091E8003A -:101E40008B7753C08091E901813A09F052C08091AB -:101E5000ED019091EE01892B09F04BC08091E800D3 -:101E6000877F8093E8008091E80080FFFCCF80911D -:101E70000B0136C08091E9018132D9F58091ED01E5 -:101E80009091EE01892BA9F58091E800877F8093DE -:101E9000E8000E946E118091EB0180930B010C947D -:101EA000F7198091E901813221F58091E800877F5F -:101EB0008093E8000E946E118091EC018093740180 -:101EC00008958091E901813AA1F48091E800877F2B -:101ED0008093E8008091E80080FFFCCF809174013E -:101EE0008093F1008091E8008E778093E8000C9455 -:101EF0006E11089584B7877F84BF88E10FB6F89488 -:101F000080936000109260000FBE80E880936100B3 -:101F1000109261000E9441150E94BF110E941C1284 -:101F20008091E20084608093E20080E39DE00E9463 -:101F30005C2078940E9496140E94431581E091E001 -:101F40000E94B3148BE193E00E9453078091E80153 -:101F5000853089F487E193E00E9453070E9499201D -:101F60008091E601882391F30E94C720882371F3B2 -:101F70000E941710EBCF0E946915E8CF292F332755 -:101F800023303105A9F06CF42130310509F442C049 -:101F90002230310509F043C084E790E02EE533E0BC -:101FA00042C021323105C9F02232310519F137C062 -:101FB00099278130910541F08230910541F0892BBC -:101FC00071F5EAE5F3E005C0E0E5F3E002C0E0E426 -:101FD000F3E0849190E09F0126C0643000F5E62F85 -:101FE000F0E0EE0FFF1FED5CFE4F2081318189E0B4 -:101FF00090E019C0643098F4E62FF0E0DF01AA0FFA -:10200000BB1FA55DBE4F2D913C91E95DFE4F8081C8 -:1020100090E009C082E190E022ED33E004C080E06E -:1020200090E020E030E0FA0131832083089580E1E0 -:1020300089BD82E189BD09B400FEFDCF8091D80041 -:102040008F7D8093D8008091E00082608093E000D3 -:102050008091E00081FDFCCF0895CF92DF92EF9256 -:10206000FF920F931F93CF93DF937C018B01EA01C3 -:102070000E948F11811131C0209731F088819981A0 -:10208000081B190BE80EF91EC12CD12C01151105E6 -:1020900019F18091E80085FD14C08091E8008E77E9 -:1020A0008093E800209741F0888199818C0D9D1DD7 -:1020B0009983888385E011C00E948F11882331F3B2 -:1020C0000CC0F70181917F018093F100015011094B -:1020D000FFEFCF1ADF0ADACF80E0DF91CF911F91B7 -:1020E0000F91FF90EF90DF90CF9008952091EF0136 -:1020F0003091F0012617370748F06115710539F462 -:102100002091E8002E772093E80001C0B901FC017E -:1021100020E061157105B9F18091E801882309F487 -:1021200040C0853009F43FC08091E80083FD3DC088 -:102130008091E80082FF06C08091E80082FF26C0FF -:1021400080E008958091E80080FFE3CF2091F300C4 -:102150008091F20090E0922B6115710551F088306A -:10216000910538F421912093F10061507109019695 -:10217000F3CF21E0089709F020E08091E8008E7706 -:102180008093E800C6CF2111C7CFD6CF8091E80158 -:10219000882339F0853039F08091E80083FFCCCF77 -:1021A00004C082E0089583E0089581E008952091BD -:1021B000EF013091F0012617370748F061157105DE -:1021C00039F42091E8002E772093E80001C0B9018E -:1021D000FC0120E061157105C1F18091E8018823BF -:1021E00009F441C0853009F440C08091E80083FDC6 -:1021F0003EC08091E80082FF06C08091E80082FF27 -:1022000027C080E008958091E80080FFE3CF20910F -:10221000F3008091F20090E0922B6115710559F066 -:102220008830910540F424912093F100319661505B -:1022300071090196F2CF21E0089709F020E0809122 -:10224000E8008E778093E800C5CF2111C6CFD5CFA7 -:102250008091E801882339F0853039F08091E800D9 -:1022600083FFCBCF04C082E0089583E0089581E02E -:102270000895982F973058F59093E900981739F002 -:102280007091EC002091ED005091F00003C0242FDC -:10229000762F50E021FF19C03091EB003E7F309344 -:1022A000EB003091ED003D7F3093ED003091EB007D -:1022B00031603093EB007093EC002093ED0050936D -:1022C000F0002091EE0027FF07C09F5FD3CF8F70F3 -:1022D0008093E90081E0089580E008958091E9010C -:1022E00087FD05C08091E80080FF0EC012C080917C -:1022F000E80082FD05C08091E8018111F8CF0895C2 -:102300008091E8008B7708C08091E8018111EACFC5 -:1023100008958091E8008E778093E8000895809179 -:10232000E4009091E50045E62091EC0020FF21C0FB -:102330002091E80020FD21C02091E801222389F0AE -:10234000253089F02091EB0025FD0FC02091E4009D -:102350003091E5002817390739F3415041F0C901A0 -:10236000E3CF82E0089583E0089581E0089584E05A -:1023700008952091E80022FFDFCF80E008950E94B9 -:102380002D120E943512E0EEF0E0808181608083A2 -:10239000E8EDF0E080818F77808319BCA7EDB0E095 -:1023A0008C918E7F8C9380818F7E80831092E70149 -:1023B00008950F931F93CF93DF930E942D120E94D5 -:1023C0003512C8EDD0E088818F7788838881806856 -:1023D000888388818F7D888319BC1092E8011092D0 -:1023E000E4011092E6011092E50100EE10E0F80120 -:1023F00080818B7F808388818160888342E060E078 -:1024000080E00E943911E1EEF0E080818E7F8083D0 -:10241000E2EEF0E08081816080838081886080834B -:10242000F80180818E7F8083888180618883DF913D -:10243000CF911F910F910895E8EDF0E080818F7E9C -:102440008083E7EDF0E080818160808384E082BF5B -:1024500081E08093E7010C94D911E8EDF0E08081F0 -:102460008E7F80831092E20008951092DA0010921D -:10247000E10008951F920F920FB60F9211242F932F -:102480003F934F935F936F937F938F939F93AF93FC -:10249000BF93EF93FF938091E10082FF0BC0809187 -:1024A000E20082FF07C08091E1008B7F8093E10012 -:1024B0000E94760E8091DA0080FF1FC08091D800C4 -:1024C00080FF1BC08091DA008E7F8093DA008091BC -:1024D000D90080FF0DC080E189BD82E189BD09B4CA -:1024E00000FEFDCF81E08093E8010E944F0E05C001 -:1024F00019BC1092E8010E94610E8091E10080FFFA -:1025000019C08091E20080FF15C08091E2008E7FAB -:102510008093E2008091E20080618093E2008091EC -:10252000D80080628093D80019BC85E08093E801D0 -:102530000E946C0E8091E10084FF30C08091E20027 -:1025400084FF2CC080E189BD82E189BD09B400FE11 -:10255000FDCF8091D8008F7D8093D8008091E100DD -:102560008F7E8093E1008091E2008F7E8093E20075 -:102570008091E20081608093E2008091E4018823F1 -:1025800011F084E007C08091E30087FF02C083E080 -:1025900001C081E08093E8010E94700E8091E1000B -:1025A00083FF29C08091E20083FF25C08091E10074 -:1025B000877F8093E10082E08093E8011092E4013C -:1025C0008091E1008E7F8093E1008091E2008E7F18 -:1025D0008093E2008091E20080618093E20042E01B -:1025E00060E080E00E9439118091F0008860809363 -:1025F000F0000E94680EFF91EF91BF91AF919F9103 -:102600008F917F916F915F914F913F912F910F909B -:102610000FBE0F901F9018951F920F920FB60F923A -:1026200011242F933F934F935F936F937F938F93D7 -:102630009F93AF93BF93CF93EF93FF93C091E90024 -:10264000CF708091EC001092E9008091F000877FBC -:102650008093F00078940E9448131092E9008091D2 -:10266000F00088608093F000C093E900FF91EF9143 -:10267000CF91BF91AF919F918F917F916F915F911A -:102680004F913F912F910F900FBE0F901F90189573 -:102690001F93CF93DF93CDB7DEB7AA970FB6F89409 -:1026A000DEBF0FBECDBFE9EEF1E08091F100819376 -:1026B00021E0E13FF207C9F70E94CA0E8091E800CD -:1026C00083FF1CC12091E9013091EA01832F90E042 -:1026D0008A30910508F012C1FC01EA5AFF4F0C94B0 -:1026E000642D203881F0223809F008C18091ED0175 -:1026F0008F708093E9008091EB0085FB882780F93B -:102700001092E90006C08091E5019091E6019111D7 -:1027100082609091E800977F9093E8008093F100A9 -:102720001092F100C5C0822F8D7F09F0E7C02223EF -:1027300019F0223061F0E2C08091EB01813009F0A4 -:10274000DDC0333009F080E08093E60128C080913D -:10275000EB01811124C02091ED012F7009F4CEC04E -:102760002093E9008091EB0080FF19C08091EB007D -:10277000333011F4806211C080618093EB0081E0FE -:1027800090E0022E01C0880F0A94EAF78093EA00D5 -:102790001092EA008091EB0088608093EB00109229 -:1027A000E9008091E800877F86C02111A7C01091C1 -:1027B000EB011F778091E3008078812B8093E30009 -:1027C0008091E800877F8093E8000E946E118091DD -:1027D000E80080FFFCCF8091E30080688093E300F5 -:1027E000112311F083E001C082E08093E80186C0EC -:1027F0002058223008F082C08091EB019091EC01CA -:102800008C3D23E0920779F583E08A838AE289830D -:102810004FB7F894DE01139620E03EE051E2E32F3B -:10282000F0E050935700E49120FF03C0E295EF7071 -:102830003F5FEF708E2F90E0EA3010F0C79601C036 -:10284000C0968D939D932F5F243149F74FBF8091A0 -:10285000E800877F8093E8006AE270E0CE0101968D -:102860000E94761014C0AE014F5F5F4F6091ED0182 -:102870000E94BE0F009709F441C02091E800277F15 -:102880002093E800BC0189819A810E94D710809131 -:10289000E8008B778093E80031C0203879F580918B -:1028A000E800877F8093E8008091E4018093F10045 -:1028B0008091E8008E778093E8000E946E111EC020 -:1028C00021111CC09091EB019230C0F48091E8007E -:1028D000877F8093E8009093E4010E946E118091BD -:1028E000E401811104C08091E30087FF02C084E00D -:1028F00001C081E08093E8010E94B60E8091E8005B -:1029000083FF0AC08091E800877F8093E800809170 -:10291000EB0080628093EB00AA960FB6F894DEBFBE -:102920000FBECDBFDF91CF911F910895CF938091BE -:10293000E8018823B1F08091E9008F709091EC005C -:1029400090FF02C090E801C090E0C92FC82B109200 -:10295000E9008091E80083FD0E944813CF70C09386 -:10296000E900CF91089590937A01809379010895B9 -:10297000E0917901F0917A01309721F00190F08196 -:10298000E02D099480E00895FF920F931F93CF9359 -:10299000DF938C01E0917901F0917A01309799F100 -:1029A0000280F381E02D09958091D30182FF2BC035 -:1029B00080FF04C08FEC94E00E945307E80188E098 -:1029C000F82E09EC14E08091D30180FF0BC08881C0 -:1029D0001F928F931F930F930E94EC070F900F90FD -:1029E0000F900F90FA942196F110EDCF8091D301C2 -:1029F00080FF09C087EC94E0DF91CF911F910F9188 -:102A0000FF900C945307DF91CF911F910F91FF908E -:102A10000895E0917901F0917A01309721F00480D6 -:102A2000F581E02D09940895209177013091780186 -:102A30008217930771F09093780180937701E0916A -:102A40007901F0917A01309721F00680F781E02D2D -:102A500009940895209175013091760182179307AA -:102A600071F09093760180937501E0917901F09176 -:102A70007A01309721F00084F185E02D09940895C2 -:102A800008950C9440150E940C210E94140C0E9481 -:102A9000D7210C943E2BCF93DF931F92CDB7DEB797 -:102AA0009091D30192FF10C090FF0EC01F928F93A0 -:102AB00021EE34E03F932F9389830E94EC070F901F -:102AC0000F900F900F9089810F90DF91CF910C9410 -:102AD000FE0B5F926F927F928F929F92AF92BF9206 -:102AE000CF92DF92EF92FF920F931F93CF93DF93DA -:102AF00000D000D01F92CDB7DEB70E94570C96E8E9 -:102B0000C92E91E0D92E04E010E0AA24A394B12CA0 -:102B1000502E802F0E94D60C3C01F601F290E290DC -:102B20006F01E826F926E114F104A1F4015011091E -:102B300078F78FEF89838A831B820E941521816039 -:102B4000782F9D838C8349815A816B818D810E946E -:102B5000191638C08091D30181FD0E94DF0C2DE051 -:102B600030E04501022E02C0880C991C0A94E2F75D -:102B7000C4018E219F21892B09F129835A82682063 -:102B8000792081E0672809F480E08B830E94152179 -:102B90008160782F9D838C8349815A816B818D81DF -:102BA0000E941916F801EE0FFF1FE458FE4F8081B6 -:102BB0009181882599259183808304C02150310912 -:102BC00080F6B4CF0E944C2510917B010E94B8146E -:102BD0001817D1F00E94B81480937B010F900F90CA -:102BE0000F900F900F90DF91CF911F910F91FF9059 -:102BF000EF90DF90CF90BF90AF909F908F907F909D -:102C00006F905F900C944B150F900F900F900F905A -:102C10000F90DF91CF911F910F91FF90EF90DF9078 -:102C2000CF90BF90AF909F908F907F906F905F906C -:102C30000895CF93DF93CDB7DEB72B970FB6F894F7 -:102C4000DEBF0FBECDBF4F83588769877A878B87DA -:102C5000DE01119686E0FD0111928A95E9F785E083 -:102C6000FE01379601900D928A95E1F749815A81CC -:102C70006B817C818D819E810E94C71C2B960FB633 -:102C8000F894DEBF0FBECDBFDF91CF910895CF93F3 -:102C9000C82F882309F4C1C0823859F40E94B8149F -:102CA00081FDBBC089E30E94A21F0E942D2089E301 -:102CB0000CC0833879F40E94B81480FDAEC083E55F -:102CC0000E94A21F0E942D2083E50E94C31FCF9166 -:102CD0000C942D20843859F40E94B81482FD9DC0B4 -:102CE00087E40E94A21F0E942D2087E4EECF8CEF84 -:102CF0008C0F813A48F48C2F0E94EC2981118DC0F1 -:102D00008C2F0E94A21FE3CF80E28C0F883048F402 -:102D1000C77081E001C0880FCA95EAF70E94E41FDE -:102D2000D6CF8BE58C0F833078F4C53A29F0C63ABC -:102D300031F482E890E005C081E890E002C083E8C9 -:102D400090E0CF910C94141588E58C0F833108F036 -:102D500064C0C83A39F1C93A41F1CA3A49F1CB3AAB -:102D600051F1CC3A59F1CD3A61F1C03B69F1CE3A1B -:102D700071F1CF3A79F1C13B81F1C23B89F1C33B9B -:102D800091F1C43B99F1C53BA1F1C63BA9F1C73B09 -:102D9000B1F1C83BB9F1C93BC1F1CA3BC9F58AE2FF -:102DA00092E038C082EE90E035C089EE90E032C00B -:102DB0008AEE90E02FC085EB90E02CC086EB90E08F -:102DC00029C087EB90E026C08CEC90E023C08DEC0E -:102DD00090E020C083E891E01DC08AE891E01AC02D -:102DE00082E991E017C084E991E014C081E292E0A9 -:102DF00011C083E292E00EC084E292E00BC085E253 -:102E000092E008C086E292E005C087E292E002C04C -:102E100080E090E0CF910C942A15CF9108958823FB -:102E200009F44BC0823859F40E94B81481FF45C0A0 -:102E300089E30E94A21F0E942D2089E30CC08338E1 -:102E400071F40E94B81480FF38C083E50E94A21F6D -:102E50000E942D2083E50E94C31F0C942D208438EE -:102E600059F40E94B81482FF28C087E40E94A21F70 -:102E70000E942D2087E4EFCF9CEF980F913A58F3F2 -:102E800090E2980F983050F4877091E001C0990F4C -:102E90008A95EAF7892F0E94EA1FDFCF9BE5980FFA -:102EA000933020F480E090E00C941415885A83311C -:102EB00020F480E090E00C942A150895882321F0F6 -:102EC0000E94E41F0C942D200895882321F00E9475 -:102ED000EA1F0C942D2008958F929F92AF92BF927B -:102EE000CF92DF92EF92FF920F931F93CF93DF93D6 -:102EF0001F92CDB7DEB74C01A62E472FFC01E5800F -:102F0000E2948FE0E822F280FF2021F079830E9492 -:102F10000120498149830E949B1F4981882381F0B8 -:102F2000FF2071F080E28A0D883050F082E00E942C -:102F3000841F0E949B1FBB24B394B826498101C003 -:102F4000B12CE42FE295EF70F0E0E05AFF4F0C94C3 -:102F5000642D842F807F142F1F70882311F0129509 -:102F6000107FFF2089F0112309F496C180E28A0DB9 -:102F7000883020F4812F0E94E41F03C0812F0E941B -:102F8000F41F0E942D2088C18A2D0E940F17112343 -:102F900009F4BFC180E28A0D883020F4812F0E949D -:102FA000EA1F03C0812F0E94FA1F0E942D20B1C189 -:102FB000242F207F842F8F70203211F08295807F04 -:102FC000AA2021F0F1E0AF16B1F021C0FF2041F0BE -:102FD000EE2039F191E0E91224C00E94142099C139 -:102FE000EE2021F0E1E0EE1609F493C189830E94FE -:102FF000172089810BC1FF2029F0F5E0FE1508F4A8 -:1030000088C10FC094E09E1508F483C1FFC0FF2063 -:1030100059F0EE2031F0F401958190FF3DC19F7091 -:1030200095830E945E1775C1EE2009F4EFC03AC186 -:10303000242F26952695237030E02115310521F0A7 -:103040002130310561F065C1FF2021F08A2D942FD8 -:10305000937002C080E090E00E9414155AC1FF20D6 -:1030600021F08A2D942F937002C080E090E00E949E -:103070002A154FC18A2DFF2019F00E94D22302C0C9 -:103080000E943A240E94BF2444C1842F837009F017 -:103090004EC0F1103EC12A2D229526952770220F91 -:1030A000220F8A2D8F70C82ED12CE12CF12C022EEC -:1030B00004C0CC0CDD1CEE1CFF1C0A94D2F7A4FE4D -:1030C00010C06FE070E080E090E004C0660F771FF2 -:1030D000881F991F2A95D2F76095709580959095D5 -:1030E00003C060E070E0CB01242F26952695237065 -:1030F00030E02230310569F02330310589F06C2948 -:103100007D298E299F292130310571F00E94191ED9 -:1031100000C16C297D298E299F290E94331EF9C088 -:103120000E94191EC701B6010E94FF1DF2C0FF20B8 -:1031300019F0842F817001C08695882309F4E9C0B5 -:103140002A2D229526952770220F220F8A2D8F7007 -:10315000C82ED12CE12CF12C022E04C0CC0CDD1C8D -:10316000EE1CFF1C0A94D2F7A4FE10C06FE070E0C2 -:1031700080E090E004C0660F771F881F991F2A9592 -:10318000D2F7609570958095909503C060E070E0EF -:10319000CB01242F26952695237030E0223031056F -:1031A00069F02330310589F06C297D298E299F290A -:1031B0002130310571F00E94ED1EABC06C297D29D4 -:1031C0008E299F290E94071FA4C00E94ED1EC701DF -:1031D000B6010E94D31E9DC00A2D10E0F801E05EEA -:1031E000F109E531F10508F053C0E059FF4F0C94A7 -:1031F000642D1A2D1F70842F8F71FF2021F00E94E3 -:103200006C1E812F0ECF0E948D1E812F0E9465178C -:1032100080C0FF2049F0F4E0FE1508F47AC0842F46 -:103220008F710E94B21E75C085E08E1508F471C0C2 -:10323000F6CFFF2039F0842F8F710E946C1E69C079 -:10324000FF20C9F3842F8F710E948D1E62C0FF2062 -:1032500029F0842F8F710E94571E5BC00E944D1E63 -:1032600058C0FF2051F0142F1F71812F0E946C1E37 -:1032700063E0812F0E947B1F4CC081E00E94841F6D -:1032800091E09E1508F045C082E00E94841F41C075 -:10329000FF2031F0EE2079F28A2D0E94471639C0C6 -:1032A000EE2081F28A2D0E940F1733C04F706A2DD5 -:1032B000C4010E9442080E94741D2BC0F11029C055 -:1032C000942F9F70492F50E042305105B9F04CF4D3 -:1032D0004115510581F041305105D9F40E94792BF7 -:1032E00018C04330510569F04430510591F48A2DDE -:1032F0000E94062C0EC00E944F2B0BC00E94A82BD0 -:1033000008C00E94CE2B05C04F706A2DC4010E94D8 -:10331000E208BB20F1F00E94771F80FD1AC0F40183 -:1033200012820E94711F0E946C1EC4010E94B71974 -:103330000E94711F0F90DF91CF911F910F91FF900D -:10334000EF90DF90CF90BF90AF909F908F900C94B4 -:103350008D1E0F90DF91CF911F910F91FF90EF90F5 -:10336000DF90CF90BF90AF909F908F9008950F9374 -:103370001F93CF93DF93EC01288139818B819C814E -:10338000892B31F03F3F11F080E003C02F3FE1F780 -:1033900081E0811113C0CE010E944A08882371F098 -:1033A000688179818A810E946D1F8C010E94211F92 -:1033B0000E94F41DB801CE010E946C17DF91CF91DD -:1033C0001F910F9108950E9401200E9411200E94D8 -:1033D000D61F0E942D200E94ED250E94BF2480E070 -:1033E00090E00E94141580E090E00C942A150E9451 -:1033F000F11F0C94E3190E94621F292F22952F7050 -:1034000030E02C3031054CF42A3031056CF4225078 -:10341000310922303105B0F407C02C30310571F08C -:103420002F30310559F00EC0803F31F018F4803E46 -:1034300048F402C0843F31F481E0089593FB88276B -:1034400080F9089580E00895CF93DF9300D000D0F5 -:103450001F92CDB7DEB70F900F900F900F900F9087 -:10346000DF91CF910895CF93DF9300D000D000D0AB -:10347000CDB7DEB726960FB6F894DEBF0FBECDBF30 -:10348000DF91CF9108951F93CF93DF93C091860171 -:1034900016E080918701C81799F0D0E01C9FF001D9 -:1034A0001D9FF00D1124E857FE4F4081518162812C -:1034B0007381848195810E94331A2196C770E9CF68 -:1034C000DF91CF911F9108954091B8015091B901BA -:1034D0006091BA017091BB018091BC019091BD01D6 -:1034E0000C94331ACF938091BD0182958F7009F0AF -:1034F0005FC08091BA01882309F45AC020918601E7 -:10350000A09187016091B8017091B9018091BB01D0 -:103510009091BC0131E06F3F09F030E0B32FC6E07D -:103520002A1709F445C0009721F07F3F21F44B2F63 -:1035300003C041E001C040E030E040FD35C0C29F23 -:10354000F001C39FF00D1124E857FE4F4181741321 -:103550002BC04081641328C04281411125C04381A2 -:1035600054814817590710F441505109481B590B11 -:10357000483C5105C8F48091BD018F7080618093F3 -:10358000BD0186E0829FF001839FF00D1124E35777 -:10359000FE4F80818F708061808388EB91E00E9474 -:1035A000B719CF910C94431A2F5F3F4F2770B8CFB4 -:1035B000CF910895CF92DF92EF92FF920F931F93D6 -:1035C000CF93DF93CDB7DEB762970FB6F894DEBF27 -:1035D0000FBECDBF8C0185E0F801DE011D96019084 -:1035E0000D928A95E1F7D8014C9111965C91119753 -:1035F00012966C9112971396ED90FC90149770911F -:10360000B801E091B9012091BB013091BC012115B5 -:10361000310531F0EF3F31F481E07F3F19F403C011 -:1036200081E001C080E0B82FB170CB2E80FD6CC16D -:10363000D090BA01DD2009F4F5C0F091BD01E21689 -:10364000F30638F0C701821B930B883C910548F0C4 -:103650009BC0209530952E0D3F1D283C310508F06C -:1036600093C08F2F807F09F052C0E51314C07413EC -:1036700012C0D62E61110FC0FF70F061F093BD0132 -:103680000E94641A88EB91E00E94B7198091BD01F5 -:10369000F80185836CC1EF2831F05F3F31F481E0A0 -:1036A0004F3F19F403C081E001C080E080FD03C0FA -:1036B00081E0862701C080E0F82FF170FF2E80FFA7 -:1036C0001CC0809186012091870136E0821709F4A1 -:1036D00028C190E0389FF001399FF00D1124E85780 -:1036E000FE4F7181571306C07081471303C072816A -:1036F000671303C001968770E9CFD62E662309F4BD -:1037000036C18091BD0181608093BD0153C0E51336 -:1037100008C0741306C0611104C0D8011596FC934B -:10372000AEC04D875E878D859E856A8B0E94FB1992 -:103730006A89882329F1D62E662311F12091BD01D3 -:10374000822F82958F7090E002970CF460C0809178 -:10375000B8019091B90198878F831986FB86EA8614 -:103760002C87CE01079651C0E51731F14D875E8752 -:103770008D859E856A8B0E94FB196A8981112EC0F6 -:10378000C8010E94B719A4C08F2F807F69F77E2DD2 -:10379000F98AE88A89890E94241A88EB91E00E94BC -:1037A000B719E8EBF1E086E0DF011D928A95E9F7B1 -:1037B0000E94641AD12CDBC07413D8CF6111D6CF0C -:1037C000D8011596FC93C8010E94B719E8EBF1E007 -:1037D00086E0DF011D928A95E9F7C9C0D62E6623DF -:1037E00079F22091BD01822F82958F7090E002972F -:1037F00074F08091B8019091B9019A8389831B82FA -:10380000FD82EC822E83CE0101960E94B71986E0DC -:10381000F801A8EBB1E001900D928A95E1F70E94C2 -:10382000721A6FC0E216F30628F0C701821B930BD1 -:103830009C0104C0209530952E0D3F1D283C31057C -:1038400008F052C0D62E662309F49ACFE5132CC097 -:1038500074132AC08091BD0180FD1DC0982F9295E0 -:103860009F70C9F0D80115968C9315979F3039F049 -:103870009F5F9295907F8F70892B15968C93C801CE -:103880000E94B71986E0F801A8EBB1E001900D9213 -:103890008A95E1F736C086E0F801A8EBB1E0019027 -:1038A0000D928A95E1F763C04D875E878D859E8571 -:1038B0000E94FB19882379F086E0F801A8EBB1E0BB -:1038C00001900D928A95E1F70E94721A0E94641A83 -:1038D000DD24D3944CC08091BD0181608093BD01F3 -:1038E000C8010E94B71943C07E2DF98AE88A8989E8 -:1038F0000E94241AE8EBF1E086E0DF011D928A9530 -:10390000E9F70E94641A33C0662309F439CF4D8762 -:103910005E878D859E850E94FB19882309F430CF30 -:10392000CBCF4D875E878D859E850E94621F292F94 -:1039300022952F7030E0223031052CF49F7041F039 -:10394000811106C00CC0243031052CF49F7049F45D -:10395000805E883020F0C8010E94B719CF2CDC2C83 -:1039600006C0D80115969C91907F91F7F8CF8D2DC8 -:1039700062960FB6F894DEBF0FBECDBFDF91CF9138 -:103980001F910F91FF90EF90DF90CF9008951F93BC -:10399000CF93DF93CDB7DEB72C970FB6F894DEBF89 -:1039A0000FBECDBF4F83588769877A878B879C87E7 -:1039B000CE0107960E94DA1A8823C1F02F8138853C -:1039C0008A859B85892B31F03F3F11F080E003C051 -:1039D0002F3FE1F781E0811147C04F81588569850C -:1039E0007A858B859C850E94331A3EC086E0FE0155 -:1039F0003796DE01119601900D928A95E1F7FF81CD -:103A0000E8854A855B854115510531F0EF3F31F47A -:103A100081E0FF3F19F403C081E001C080E080FD38 -:103A200023C02091870130E0C90101968770992752 -:103A30006091860170E086179707F1F1F983EA83B8 -:103A40005D834C8396E0929FD001939FB00D11242B -:103A5000A857BE4FFE01319601900D929A95E1F75D -:103A6000809387010E94431A16E08091860190910D -:103A70008701891779F1189FC001112488579E4F3B -:103A80000E94DA1A882331F1E09186011E9FF0012D -:103A90001124E857FE4F40815181628173818481F6 -:103AA00095810E94331A8091860190E0019687707B -:103AB000992780938601D9CF0E94F7191092870128 -:103AC00010928601E8EBF1E086E0DF011D928A9515 -:103AD000E9F7CACF2C960FB6F894DEBF0FBECDBF64 -:103AE000DF91CF911F910895EF92FF920F931F9353 -:103AF000CF93DF93FC01009709F46FC0F12CEE2403 -:103B0000E394EF0121968491843740F4843008F0E7 -:103B100055C0813081F0823021F15FC0853709F4D2 -:103B200047C0C0F19CE7980F903708F056C08F77D8 -:103B30000E940F1745C08F010E5F1F4FFE01849139 -:103B400090E2980F983050F48770FE2D01C0FF0F5F -:103B50008A95EAF78F2F0E94042015C00E9447160D -:103B600014C08F010E5F1F4FFE01849190E2980FE9 -:103B7000983068F48770FE2D01C0FF0F8A95EAF730 -:103B80008F2F0E940A200E942D20E80119C00E9458 -:103B90000F17FBCFCF010296FE01C491CC2361F039 -:103BA000EFE9FFE03197F1F700C00000C150F6CF18 -:103BB000CF010296FE01F490EC0102C00E9447166C -:103BC0008F2D882341F0EFE9FFE03197F1F700C036 -:103BD00000008150F6CFFE0194CFDF91CF911F916D -:103BE0000F91FF90EF90089508956093C201709334 -:103BF000C3018093C4019093C5010C94E3190F9302 -:103C00001F930091C2011091C3012091C401309112 -:103C1000C501062B172B282B392B0093C2011093BB -:103C2000C3012093C4013093C5011F910F910C94DF -:103C3000E3190F931F930091C2011091C3012091CA -:103C4000C4013091C501062317232823392300938B -:103C5000C2011093C3012093C4013093C5011F9189 -:103C60000F910C94E3190F931F930091C2011091CF -:103C7000C3012091C4013091C501062717272827C9 -:103C800039270093C2011093C3012093C4013093DC -:103C9000C5011F910F910C94E3191092BE0110926F -:103CA000BF011092C0011092C1010C94E31941E0D0 -:103CB00050E060E070E004C0440F551F661F771F9E -:103CC0008A95D2F74093BE015093BF016093C00123 -:103CD0007093C1010C94E31941E050E060E070E0A2 -:103CE00004C0440F551F661F771F8A95D2F7809135 -:103CF000BE019091BF01A091C001B091C101842B80 -:103D0000952BA62BB72B8093BE019093BF01A09358 -:103D1000C001B093C1010C94E31941E050E060E0B0 -:103D200070E004C0440F551F661F771F8A95D2F7B5 -:103D300040955095609570958091BE019091BF011E -:103D4000A091C001B091C10184239523A623B7237C -:103D50008093BE019093BF01A093C001B093C101B5 -:103D60000C94E31941E050E060E070E004C0440FBF -:103D7000551F661F771F8A95D2F78091BE019091DB -:103D8000BF01A091C001B091C10184279527A6274A -:103D9000B7278093BE019093BF01A093C001B09359 -:103DA000C1010C94E3190F931F930091BE01109170 -:103DB000BF012091C0013091C101062B172B282B88 -:103DC000392B0093BE011093BF012093C0013093A3 -:103DD000C1011F910F910C94E3190F931F93009150 -:103DE000BE011091BF012091C0013091C101062395 -:103DF0001723282339230093BE011093BF0120937A -:103E0000C0013093C1011F910F910C94E3190F93DE -:103E10001F930091BE011091BF012091C00130910C -:103E2000C10106271727282739270093BE011093C1 -:103E3000BF012093C0013093C1011F910F910C94D9 -:103E4000E3190895CF92DF92EF92FF920F931F93A1 -:103E5000CF93DF93EC01C090C201D090C301E090FA -:103E6000C401F090C5018091BE019091BF01A09165 -:103E7000C001B091C101C82AD92AEA2AFB2A0FE160 -:103E800010E0B701A601002E04C0769567955795FE -:103E900047950A94D2F740FD05C00150110988F7F3 -:103EA00080E007C0BE01802F0E94640B0197A9F338 -:103EB000802FDF91CF911F910F91FF90EF90DF90B6 -:103EC000CF900895CF93DF93EC010E94221FBE0193 -:103ED0000E94640BDF91CF910895CB010E94621F75 -:103EE00008958091C6018595859585950895809161 -:103EF000C6018770089598E0899F90011124622B74 -:103F00006093C6010C946C1E4091C6018095842379 -:103F10008093C601982F977069F450E0282F3327BB -:103F200027FD30954217530729F08595859585958E -:103F30000C948D1E08959091C601977081E009F44C -:103F400080E0089540910C0150910D0120E030E097 -:103F50009FEFFA01E20FF31F6281681799F09F3F0C -:103F600019F4611101C0922F2F5F3F4F26303105A8 -:103F700081F79F3F39F0FA01E90FF11D97FDFA959E -:103F800082830895089540910C0150910D0120E025 -:103F900030E0FA01E20FF31F9281981301C0128200 -:103FA0002F5F3F4F26303105A1F7089581E090E063 -:103FB000E0910C01F0910D01E80FF91F10820196BC -:103FC00088309105A9F708959091D201982B90938C -:103FD000D201089580959091D20198239093D201B7 -:103FE00008951092D20108959091D101982B909349 -:103FF000D101089580959091D10198239093D1019A -:1040000008951092D10108959091D001982B90932A -:10401000D001089580959091D00198239093D0017C -:1040200008951092D00108958093C70108951092C9 -:10403000C701089540910C0150910D0120E030E03E -:1040400080E0FA01E20FF31F918191118F5F2F5FE2 -:104050003F4F27303105A9F70895E0910C01F09109 -:104060000D018091D2018083E0910C01F0910D014E -:1040700080819091D101892B8083E0910C01F09196 -:104080000D0180819091D001892B80839091C7018F -:10409000992361F0E0910C01F0910D018081892B51 -:1040A00080830E941A2081111092C70180910C0117 -:1040B00090910D010C94C414909347018093460194 -:1040C000089540E0009739F09C0121503109822386 -:1040D00093234F5FF7CF842F08958295982F9C7C70 -:1040E00096959695837344E0849F90011124922BBA -:1040F000892F8A7A86959575990F892B08951F9334 -:10410000CF93DF931F92CDB7DEB799830E946D20C6 -:10411000182F9981892F0E946D20212F30E0322F96 -:104120002227A901482BCA010F90DF91CF911F913F -:1041300008958091E801843039F11092D40120E48F -:1041400088E190E00FB6F894A895809360000FBEC8 -:104150002093600080E00E94140880E00E94FE0B23 -:1041600083B7817F846083BF83B7816083BF789486 -:10417000889583B78E7F83BF88E10FB6F8948093CC -:104180006000109260000FBE08950895089580E0C9 -:104190000E9414080E94C5200E94570C0E94C6204D -:1041A0000E94190D91E0811101C090E0892F0895BE -:1041B0000E94F71980E00E9414080E943E2B0E9482 -:1041C000B8140C94FE0B1F920F920FB60F9211248D -:1041D0008F939F93AF93BF938091D401811113C0AC -:1041E0008091D5019091D601A091D701B091D801CD -:1041F0004196A11DB11D8093D5019093D601A09346 -:10420000D701B093D801BF91AF919F918F910F903B -:104210000FBE0F901F90189582E084BD93E095BD6E -:104220009AEF97BD80936E0008952FB7F894809110 -:10423000D5019091D601A091D701B091D8012FBF9F -:104240000895CF92DF92EF92FF920F931F932FB7B3 -:10425000F8944091D5015091D6016091D7017091A9 -:10426000D8012FBF6A017B01EE24FF248C0120E0DE -:1042700030E0C016D106E206F30610F441505109B1 -:10428000481B590BCA011F910F91FF90EF90DF90CF -:10429000CF9008951F920F920FB60F9211248F9313 -:1042A0009F93AF93BF938091D5019091D601A09138 -:1042B000D701B091D8010196A11DB11D8093D50100 -:1042C0009093D601A093D701B093D801BF91AF913D -:1042D0009F918F910F900FBE0F901F9018950E9485 -:1042E000BF11F8942FEF87EA91E62150804090406B -:1042F000E1F700C0000087E090EBDC018093F30160 -:104300009093F401A093F501B093F6012CE088E1BD -:1043100090E00FB6F894A895809360000FBE2093AC -:104320006000FFCFCF92DF92EF92FF920F931F9327 -:10433000CF93DF93C82E84E0D82E01E010E08D2DBE -:104340000E94D60C7C01CDE0D0E098010C2E02C07A -:10435000220F331F0A94E2F72E213F21232B49F02D -:104360006C2F7D2D80E00E94E308C81202C081E01E -:1043700007C0219750F7DA948FEFD812E0CF80E092 -:10438000DF91CF911F910F91FF90EF90DF90CF9031 -:104390000895CF93C82F8CE20E949221882321F0A8 -:1043A0008C2FCF910C94922180E0CF910895CF93E0 -:1043B0000E942223811102C00E94032381E095E024 -:1043C0000E945307C5E6C15049F00E94570C8FE385 -:1043D0009CE90197F1F700C00000F5CF8AEF94E067 -:1043E0000E94530789E20E94C92181110AC18AE211 -:1043F0000E94C92181110E94032385E00E94C921E6 -:1044000081110E946F210E942D238093D30187E0A8 -:104410000E94C921882399F18BE10E94C921882338 -:1044200051F09091D30191FB882780F921E08227F8 -:1044300080FB91F922C08EE00E94C921882351F0AF -:104440009091D30192FB882780F921E0822780FB9D -:1044500092F913C080E10E94C9219091D301882371 -:1044600041F093FB882780F921E0822780FB93F9B4 -:1044700004C0892F809580FB90F99093D30180919F -:10448000D3010E9431230E943F238093F10180EEEB -:104490000E94C921882341F08091F101982F9095C5 -:1044A00090FB80F98093F10189E30E94C921882360 -:1044B00059F09091F10191FB882780F921E0822742 -:1044C00080FB91F99093F10182EE0E94C92188232B -:1044D00059F09091F10192FB882780F921E0822721 -:1044E00080FB92F99093F10186EE0E94C921882306 -:1044F00059F09091F10193FB882780F921E0822700 -:1045000080FB93F99093F10183EE0E94C9218823E7 -:1045100059F09091F10194FB882780F921E08227DE -:1045200080FB94F99093F10185E30E94C9218823CF -:1045300059F09091F10195FB882780F921E08227BD -:1045400080FB95F99093F10181E30E94C9218823B2 -:1045500059F09091F10196FB882780F921E082279C -:1045600080FB96F99093F10181E10E94C921882393 -:1045700059F09091F10197FB882780F921E082277B -:1045800080FB97F99093F1018091F1010E94432300 -:1045900087E20E94C921C82F8EE10E94C9218111A2 -:1045A000C2608FE10E94C9218111C46080E20E9433 -:1045B000C9218111C86081E20E94C9218111C061B5 -:1045C00082E20E94C9218111C06283E20E94C92156 -:1045D0008111C06484E20E94C921882311F0C0685F -:1045E00002C0CC2329F08C2F0E943A236C2F03C0E9 -:1045F0000E943623682F70E080E090E0CF910C9409 -:10460000F51DCF9108956DEE7EEF80E090E00E9461 -:104610009E2D60E082E090E00E948C2D60E083E0BF -:1046200090E00E948C2D60E084E090E00E948C2D50 -:1046300060E085E090E00E948C2D60E086E090E0F4 -:104640000C948C2D80E090E00E94862D21E08D3E20 -:104650009E4F09F020E0822F089582E090E00C94B4 -:104660007E2D682F82E090E00C948C2D83E090E00A -:104670000C947E2D682F83E090E00C948C2D84E0C8 -:1046800090E00C947E2D682F84E090E00C948C2DAB -:1046900086E090E00C947E2D682F86E090E00C94EC -:1046A0008C2D8091DB0180FF0BC06091110185E0B2 -:1046B000689FB001112475956795759567952AC017 -:1046C00081FF09C06091110185E0689FB00111244C -:1046D000759567951FC082FF07C06091110185E045 -:1046E000689FB001112416C04091DC014423C9F039 -:1046F00060911001461788F72091110185E0289FED -:1047000090011124429FC001439F900D112470E03D -:104710000E94502D6038710540F46115710539F023 -:1047200002C065E070E0862F08958FE7089581E06C -:1047300008958091DB0180FF08C060910F0170E057 -:10474000759567957595679521C081FF06C0609145 -:104750000F0170E07595679519C082FF04C06091E4 -:104760000F0170E010C08091DC018823C1F06091DE -:104770000E018617A0F790910F01989FC001112498 -:1047800070E00E94502D6038710528F461157105A4 -:1047900021F0862F08958FE7089581E0089561E064 -:1047A00070E0F4CF803F21F40E945123819504C032 -:1047B000813F29F40E9451238093DF010895823FB5 -:1047C00021F40E945123819504C0833F29F40E9463 -:1047D00051238093DE010895893F19F40E949923A3 -:1047E00005C08A3F31F40E94992381958093E001AE -:1047F00008958B3F21F40E949923819504C08C3F3A -:1048000029F40E9499238093E1010895843F21F4C3 -:104810008091DD01816017C0853F21F48091DD0129 -:10482000826011C0863F21F48091DD0184600BC05D -:10483000873F21F48091DD01886005C0883F31F415 -:104840008091DD0180618093DD0108958D3F21F429 -:104850008091DB0181600BC08E3F21F48091DB01F0 -:10486000826005C08F3F29F48091DB0184608093D2 -:10487000DB010895803F39F48091DF0187FF6CC030 -:104880001092DF0169C0813F29F48091DF01181681 -:10489000BCF362C09091DE01823F29F497FF5CC0B7 -:1048A0001092DE0159C0833F19F41916CCF354C09D -:1048B000893F41F48091E00118160CF04DC0109230 -:1048C000E0014AC08A3F29F48091E00187FF44C09B -:1048D000F6CF8B3F39F48091E10187FF3DC0109204 -:1048E000E1013AC08C3F29F48091E1011816BCF334 -:1048F00033C0843F21F48091DD018E7F17C0853F56 -:1049000021F48091DD018D7F11C0863F21F48091DB -:10491000DD018B7F0BC0873F21F48091DD01877F14 -:1049200005C0883F31F48091DD018F7E8093DD01E9 -:1049300013C08D3F21F48091DB018E7F0BC08E3F31 -:1049400021F48091DB018D7F05C08F3F29F4809198 -:10495000DB018B7F8093DB018091DE0181110EC032 -:104960008091DF0181110AC08091E001811106C0B0 -:104970008091E101811102C01092DC0108958091C3 -:10498000D30183FF7EC08DE395E00E9453078091A1 -:10499000DD011F928F9388E395E09F938F930E9490 -:1049A000EC0786E395E00E9453072091DE01822FF9 -:1049B000992787FD90959F932F9383E395E09F938D -:1049C0008F930E94EC0781E395E00E9453072091AA -:1049D000DF01822F992787FD90959F932F938EE279 -:1049E00095E09F938F930E94EC078CE295E00E94E4 -:1049F00053072091E001822F992787FD90959F937F -:104A00002F9389E295E09F938F930E94EC0787E2B2 -:104A100095E00E9453072091E101822F992787FD9D -:104A200090959F932F9384E295E09F938F930E949C -:104A3000EC0781E295E00E9453078091DC011F9210 -:104A40008F938EE195E09F938F930E94EC078CE10A -:104A500095E00E9453078091DB011F928F9389E1BB -:104A600095E09F938F930E94EC0786E195E00E946A -:104A700053078DB79EB74C960FB6F8949EBF0FBEE6 -:104A80008DBF8DED91E00E9409150E941521909334 -:104A9000DA018093D90108951F93CF93DF9380911A -:104AA000D9019091DA010E9421214091DC01442337 -:104AB00021F02091120130E006C0209113015AE04C -:104AC000259F900111248217930708F482C08091DA -:104AD000DE011091DF01D091E001C091E10181116F -:104AE00007C0111105C0D11103C0CC2309F471C056 -:104AF0004F3F19F04F5F4093DC01181624F40E94D9 -:104B000051238093DE018091DE0187FF05C00E9462 -:104B1000512381958093DE01111624F40E945123C4 -:104B20008093DF018091DF0187FF05C00E94512340 -:104B300081958093DF016091DE01662339F1109148 -:104B4000DF01112319F1772767FD7095872F972FC4 -:104B50000E94552C23E333E343E35FE30E94B92C27 -:104B60000E94222C6093DE01612F772767FD7095EC -:104B7000872F972F0E94552C23E333E343E35FE312 -:104B80000E94B92C0E94222C6093DF011D1624F490 -:104B90000E9499238093E0018091E00187FF05C086 -:104BA0000E94992381958093E0011C1624F40E94B1 -:104BB00099238093E1018091E10187FF05C00E9464 -:104BC000992381958093E101DF91CF911F910C94FE -:104BD000BF24DF91CF911F910895EDEDF1E085E0C5 -:104BE000DF011D928A95E9F71092DC011092DB013A -:104BF000089580E697E00E9453071F9281E08F930B -:104C00001F9285E08F9382E197E09F938F930E949C -:104C1000EC070F900F900F900F900F900F9008954A -:104C20008330E9F128F4813061F0823009F1089590 -:104C3000853009F462C008F449C0863009F474C0B4 -:104C4000089520911301862F90E0820F911D8F3FD0 -:104C5000910520F4620F6093130103C08FEF8093DE -:104C60001301809113011F928F938BE496E072C021 -:104C700020911201862F90E0820F911D8F3F9105A8 -:104C800020F4620F6093120103C08FEF8093120132 -:104C9000809112011F928F9389E396E05BC020916F -:104CA0001101862F90E0820F911D8F3F910520F416 -:104CB000620F6093110103C08FEF80931101809107 -:104CC00011011F928F9386E296E044C0209110015B -:104CD000862F90E0820F911D8F3F910520F4620F87 -:104CE0006093100103C08FEF809310018091100139 -:104CF0001F928F9381E196E02DC020910F01862FA6 -:104D000090E0820F911D8F3F910520F4620F609318 -:104D10000F0103C08FEF80930F0180910F011F924D -:104D20008F9388EF95E016C020910E01862F90E0BA -:104D3000820F911D8F3F910520F4620F60930E0149 -:104D400003C08FEF80930E0180910E011F928F930D -:104D50008DED95E09F938F930E94EC070F900F903D -:104D60000F900F900895833081F128F4813059F02D -:104D70008230D1F00895853009F449C0B8F1863009 -:104D800009F456C0089580911301681720F4861B1A -:104D90008093130102C010921301809113011F929E -:104DA0008F938EEC95E054C080911201681720F427 -:104DB000861B8093120102C0109212018091120191 -:104DC0001F928F938CEB95E043C08091110168177F -:104DD00020F4861B8093110102C010921101809172 -:104DE00011011F928F9389EA95E032C080911001E2 -:104DF000681720F4861B8093100102C010921001E6 -:104E0000809110011F928F9384E995E021C08091D9 -:104E10000F01681720F4861B80930F0102C01092C7 -:104E20000F0180910F011F928F938BE795E010C0C7 -:104E300080910E01681720F4861B80930E0102C03A -:104E400010920E0180910E011F928F9380E695E0E3 -:104E50009F938F930E94EC070F900F900F900F90ED -:104E60000895CF93C82F1F928F9325E638E03F9384 -:104E70002F930E94EC0761E070E080E090E004C0B6 -:104E8000660F771F881F991FCA95D2F70E94F51DDC -:104E90000F900F900F900F90CF910C94F719CF9324 -:104EA0008732B0F58E3108F085C28E3009F401C228 -:104EB00000F5873009F4CBC1A8F4863009F080C230 -:104EC0008091D301817F8E7F8093D30185EC99E01F -:104ED0000E94530789E99DE00E94530781E0809377 -:104EE000E301B3C1883009F43FC08B3009F4A9C194 -:104EF00067C2863109F421C220F4803109F4ECC183 -:104F00005FC2893109F402C28B3109F4BFC158C2B2 -:104F1000883309F496C150F4893209F44DC28533BF -:104F200009F44AC2873209F447C24AC2833409F4F9 -:104F300043C228F48A3308F443C289533EC28834FA -:104F400009F03EC20E94F7198DE79DE00E945307C9 -:104F50009FEF23ED80E3915020408040E1F700C0B7 -:104F600000000E946F2171C18DE99DE00E945307EE -:104F70008FEF9CE00E9453070E9436231F928F936D -:104F80008CEF9CE09F938F930E94EC078AEF9CE04C -:104F90000E9453070E942D23C82F87EE9CE00E9499 -:104FA00053071F92CF9322EE3CE03F932F930E9432 -:104FB000EC0780EE9CE00E94530786ED9CE00E9487 -:104FC00053078C2F81701F928F9323ED3CE03F930A -:104FD0002F930E94EC0781ED9CE00E94530787EC21 -:104FE0009CE00E945307C1FB882780F91F928F9392 -:104FF00024EC3CE03F932F930E94EC0782EC9CE072 -:105000000E94530786EB9CE00E945307C2FB88274F -:1050100080F91F928F9323EB3CE03F932F930E94E4 -:10502000EC0781EB9CE00E94530788EA9CE00E9419 -:105030005307C3FBCC27C0F91F92CF9385EA9CE0AE -:105040009F938F930E94EC0783EA9CE00E94530792 -:105050000E943F23C82F8FE89CE00E9453071F92B5 -:10506000CF932AE83CE03F932F930E94EC0788E817 -:105070009CE00E9453078FE69CE00E9453078C2F10 -:1050800081701F928F932CE63CE03F932F930E94F8 -:10509000EC078DB79EB780960FB6F8949EBF0FBEF3 -:1050A0008DBF8AE69CE00E94530783E59CE00E9446 -:1050B0005307C1FB882780F91F928F9320E53CE0BE -:1050C0003F932F930E94EC078EE49CE00E945307CD -:1050D0008CE39CE00E945307C2FB882780F91F9253 -:1050E0008F9329E33CE03F932F930E94EC0787E3E3 -:1050F0009CE00E94530785E29CE00E945307C3FB9B -:10510000882780F91F928F9322E23CE03F932F93F0 -:105110000E94EC0780E29CE00E94530786E19CE03D -:105120000E945307C4FB882780F91F928F9323E1C5 -:105130003CE03F932F930E94EC0781E19CE00E94AA -:1051400053078FEF9BE00E945307C5FB882780F928 -:105150001F928F932CEF3BE03F932F930E94EC071D -:105160008AEF9BE00E9453078EED9BE00E9453075D -:10517000C6FB882780F91F928F932BED3BE03F936E -:105180002F930E94EC0789ED9BE00E94530781ED6D -:105190009BE00E945307C7FBCC27C0F91F92CF9317 -:1051A0008EEC9BE09F938F930E94EC078CEC9BE02E -:1051B0000E9453070E944823C82F85EB9BE00E9462 -:1051C00053071F92CF9320EB3BE03F932F930E9416 -:1051D000EC078DB79EB780960FB6F8949EBF0FBEB2 -:1051E0008DBF8EEA9BE00E94530784EA9BE00E94F9 -:1051F00053078C2F81701F928F9321EA3BE03F93DE -:105200002F930E94EC078FE99BE00E94530786E9E9 -:105210009BE00E945307C6951F92CF9383E99BE0C2 -:105220009F938F930E94EC0781E99BE00E945307B4 -:105230008DB79EB708960FB6F8949EBF0FBE8DBF70 -:1052400004C08CEE99E00E945307C1E0BEC080917B -:10525000D301C82FC095C170C0FB80F98093D301E2 -:10526000CC2349F081E79DE00E9453078091D30150 -:105270008660886045C084E69DE00E945307809167 -:10528000D301897F877F8093D301DFCF8091D301C2 -:1052900081FBCC27C0F991E0C927C0FB81F980933D -:1052A000D301CC2319F087E59DE025C089E49DE07A -:1052B000CACF8091D30182FBCC27C0F991E0C927E6 -:1052C000C0FB82F98093D301CC2319F08AE39DE0DF -:1052D00012C08AE29DE0B7CF8091D30183FBCC2737 -:1052E000C0F991E0C927C0FB83F98093D301CC2397 -:1052F00051F08EE19DE00E9453078091D3018160BF -:105300008093D30162C081E19DE09DCF86EB99E05F -:105310000E9453078DE999E00E9453078BE699E0BC -:105320000E9453078EE399E00E9453078EEF98E0A6 -:105330000E94530780ED98E086CF82EC98E00E94AF -:1053400053070E94B8141F928F9388EA98E09F93A6 -:105350008F930E94EC0780910B011F928F9381E93C -:1053600098E09F938F930E94EC07809174011F92A5 -:105370008F938EE798E09F938F930E94EC07809124 -:10538000D5019091D601A091D701B091D801BF93DA -:10539000AF939F938F938AE698E09F938F930E9499 -:1053A000EC078DB79EB742960FB6F8949EBF0FBE1E -:1053B0008DBF4BCF8D5101C080E00E94312745CF7A -:1053C0008FE09DE00E945307C0E08C2FCF9108959D -:1053D00080E0089580E00895CF93C82F8091E30185 -:1053E000813071F020F0823009F448C03FC1A091B3 -:1053F0000C01B0910D018C91823209F039C107C0C6 -:10540000A0910C01B0910D018C91823249F48C2F46 -:105410000E94E82981112FC08C2F0E944F272CC099 -:105420008C2F0E94EA29811126C0C431E1F070F46A -:10543000CB3081F0C031D1F40E94F9258DE598E0A0 -:105440000E94530782E08093E30115C0C93259F0EE -:10545000C83361F485EC99E00E94530781E698E037 -:105460000E94530708C01092E30104C18BE598E045 -:105470000E945307FFC081E08170FEC0C43228F54E -:10548000CE3108F0C1C0CB30A1F1D0F4C73009F063 -:10549000D3C08EE18093130182E3809312018AE0EE -:1054A0008093110184E18093100188E080930F01C3 -:1054B00088E280930E0181E097E00E945307BFC00D -:1054C000C33149F1C431C1F0B7C0CB3409F4A9C02C -:1054D00028F4C93289F0C83361F0AEC0C13509F48F -:1054E0009EC0C23509F499C0CE3409F0A5C06AE067 -:1054F0009EC00E94F925A3C08091E201882319F083 -:105500001092E2019CC08EE097E00E94530781E078 -:105510008093E301B1C088EE96E00E94530786EDC8 -:1055200096E00E945307809113011F928F9383EDA1 -:1055300096E09F938F930E94EC0781ED96E00E9486 -:1055400053078FEB96E00E945307809112011F9240 -:105550008F938CEB96E09F938F930E94EC078AEBDE -:1055600096E00E9453078BEA96E00E9453078091D1 -:1055700011011F928F9388EA96E09F938F930E9468 -:10558000EC0786EA96E00E94530785E996E00E94C0 -:105590005307809110011F928F9382E996E09F93A9 -:1055A0008F930E94EC0780E996E00E9453078BE7F7 -:1055B00096E00E94530780910F011F928F9388E716 -:1055C00096E09F938F930E94EC0786E796E00E94F7 -:1055D00053078FE596E00E94530780910E011F92BA -:1055E0008F938CE596E09F938F930E94EC078AE55A -:1055F00096E00E9453078DB79EB748960FB6F89471 -:105600009EBF0FBE8DBF1BC0CE51EC2FF0E0E55CFE -:10561000FE4F80818093E20112C061E003C061E02F -:1056200006C06AE08091E2010E94102608C08091C5 -:10563000E2010E94B32603C08FEF96E013C0809171 -:10564000E201882369F01F928F9389EF96E09F9380 -:105650008F930E94EC070F900F900F900F9004C053 -:1056600086EF96E00E94530781E006C01092E301A6 -:1056700080E002C080E000CFCF9108950E942223F5 -:10568000811102C00E9403230E9448238093F201EB -:1056900080FF02C0869501C080E00C9414088091C0 -:1056A000F201982F9695292F30E0233031054CF4E4 -:1056B0009F5F990F8170892B81608093F2010E9416 -:1056C0004C238091D30180FF0FC08091F201869519 -:1056D0001F928F938AEE9DE09F938F930E94EC0719 -:1056E0000F900F900F900F908091F20186950C947F -:1056F00014088091F201982F969591F09158990F86 -:105700008170892B8093F2018E7F91E009F490E003 -:105710008091F20190FB80F98093F2010E944C236A -:105720008091D30180FF0FC08091F20186951F9276 -:105730008F9382ED9DE09F938F930E94EC070F90D3 -:105740000F900F900F908091F20186950C941408A1 -:105750008091F201982F909590FB80F98093F2014F -:105760000E944C238091D30180FF0FC08091F201F1 -:1057700081701F928F938CEB9DE09F938F930E947B -:10578000EC070F900F900F900F908091F20180FF27 -:1057900002C0869501C080E00C9414083091F2019B -:1057A000232F26952F5F2F77822F90E0317004975B -:1057B0002CF4220F232B2093F20102C03093F2012C -:1057C0008091F2018E7F91E009F490E08091F201E6 -:1057D00090FB80F98093F2010E944C238091D301C9 -:1057E00080FF0FC08091F20186951F928F9388EA07 -:1057F0009DE09F938F930E94EC070F900F900F9066 -:105800000F908091F20186950C9414082091F2017A -:10581000922F96959827990F822F8170892B8093CC -:10582000F2018E7F91E009F490E08091F20190FB0B -:1058300080F98093F2010E944C238091F2018695B9 -:105840000C94140804D06894B1118DC0089570D0E0 -:1058500088F09F5790F0B92F9927B751A0F0D1F059 -:10586000660F771F881F991F1AF0BA95C9F712C0E3 -:10587000B13081F077D0B1E0089574C0672F782FF0 -:105880008827B85F39F0B93FCCF38695779567954F -:10589000B395D9F73EF490958095709561957F4FBB -:1058A0008F4F9F4F0895E89409C097FB3EF4909561 -:1058B0008095709561957F4F8F4F9F4F9923A9F0E9 -:1058C000F92F96E9BB279395F69587957795679578 -:1058D000B795F111F8CFFAF4BB0F11F460FF1BC0BC -:1058E0006F5F7F4F8F4F9F4F16C0882311F096E94F -:1058F00011C0772321F09EE8872F762F05C06623FD -:1059000071F096E8862F70E060E02AF09A95660FB5 -:10591000771F881FDAF7880F9695879597F908956E -:1059200057FD9058440F551F59F05F3F71F0479550 -:10593000880F97FB991F61F09F3F79F08795089535 -:10594000121613061406551FF2CF4695F1DF08C054 -:10595000161617061806991FF1CF86957105610571 -:1059600008940895E894BB2766277727CB0197F919 -:1059700008950BD078C069D028F06ED018F0952328 -:1059800009F05AC05FC01124EECFCADFA0F3959F83 -:10599000D1F3950F50E0551F629FF001729FBB2716 -:1059A000F00DB11D639FAA27F00DB11DAA1F649FC2 -:1059B0006627B00DA11D661F829F2227B00DA11D75 -:1059C000621F739FB00DA11D621F839FA00D611DFB -:1059D000221F749F3327A00D611D231F849F600D1C -:1059E000211D822F762F6A2F11249F5750408AF055 -:1059F000E1F088234AF0EE0FFF1FBB1F661F771FE1 -:105A0000881F91505040A9F79E3F510570F014C077 -:105A1000AACF5F3FECF3983EDCF3869577956795C8 -:105A2000B795F795E7959F5FC1F7FE2B880F911DFE -:105A30009695879597F9089597F99F6780E870E0A4 -:105A400060E008959FEF80EC089500240A941616F4 -:105A5000170618060906089500240A94121613065C -:105A6000140605060895092E0394000C11F48823EA -:105A700052F0BB0F40F4BF2B11F460FF04C06F5F06 -:105A80007F4F8F4F9F4F0895991B79E004C0991F56 -:105A9000961708F0961B881F7A95C9F78095089588 -:105AA00097FB072E16F4009407D077FD09D00E94CB -:105AB0006A2D07FC05D03EF4909581959F4F08957F -:105AC000709561957F4F0895EE0FFF1F0590F4913B -:105AD000E02D0994AA1BBB1B51E107C0AA1FBB1FE5 -:105AE000A617B70710F0A61BB70B881F991F5A956A -:105AF000A9F780959095BC01CD010895F999FECF45 -:105B000092BD81BDF89A992780B50895A8E1B0E0CB -:105B100042E050E00C94A62D262FF999FECF92BDBD -:105B200081BDF89A019700B4021639F01FBA20BD62 -:105B30000FB6F894FA9AF99A0FBE08950196272F96 -:105B40000E948D2D0C948C2DDC01CB01FC01F99968 -:105B5000FECF06C0F2BDE1BDF89A319600B40D92B9 -:0C5B600041505040B8F70895F894FFCF72 -:105B6C00FF2D0D1E0EFB0DC70D940D01C80128084D -:105B7C00140A321E0F1F6C76667349130353437954 -:105B8C00693309196F7F59404D362087043A040454 -:105B9C0004E40370038903A203BB0301020304059D -:065BAC00060708090000D5 -:00000001FF diff --git a/keyboards/kc60/keymaps/stanleylai/README.md b/keyboards/kc60/keymaps/stanleylai/README.md deleted file mode 100644 index a7daa6e77..000000000 --- a/keyboards/kc60/keymaps/stanleylai/README.md +++ /dev/null @@ -1,26 +0,0 @@ -Stanley Lai's Split Right Shift with Dedicated Arrow Keys -====================== - -![Image of KC60 with RGB Underglow](../ws2812/ws2812_example.jpg) - -## Quantum MK Firmware -For the full Quantum feature list, see [the parent README.md](/README.md). - -## Keymap Notes -- Keymap setup with split Right Shift in mind. -- Right-side modifiers are setup as dedicated arrow keys - -### Base Layer Reference -- Fn Layer indicated on keycap front legends. -- Tapping Caps Lock key toggles Caps. Holding it down momentarily switches us to the Fn Layer. -- Holding down "Fn" and "Page Down" momentarily switches us to the RGB Layer. Tapping "Page Down" behaves as expected. -![Base Layer](base_layer.jpg) - -### RGB Layer Reference -![RGB Layer](rgb_layer.jpg) - -## WS2812 Support -By default, it is now setup for 16 LEDs on the PF5 breakout pin. See [included image](../ws2812/ws2812_wiring.jpg) for wiring reference. - -### Build -To build this keymap, simply run `make KEYMAP=stanleylai`. diff --git a/keyboards/kc60/keymaps/stanleylai/compiled.hex b/keyboards/kc60/keymaps/stanleylai/compiled.hex deleted file mode 100644 index b65c14cd4..000000000 --- a/keyboards/kc60/keymaps/stanleylai/compiled.hex +++ /dev/null @@ -1,1773 +0,0 @@ -:100000000C9408090C944F090C944F090C944F0957 -:100010000C944F090C944F090C944F090C944F0900 -:100020000C944F090C944F090C94C31B0C94951C11 -:100030000C942B2A0C944F090C944F090C944F09E3 -:100040000C944F090C944F090C944F090C944F09D0 -:100050000C944F090C94932A0C944F090C944F095B -:100060000C944F090C944F090C944F090C944F09B0 -:100070000C944F090C944F090C944F090C944F09A0 -:100080000C9462160C944F090C944F090C944F0970 -:100090000C944F090C944F090C944F090C944F0980 -:1000A0000C944F090C944F090C944F09570A740A89 -:1000B000A50A7B0A820A890A900A970A9E0A021DEB -:1000C000241D171E241D171E691D8C1D171EE11DE2 -:1000D000F41D4621462175217521B121CF2111231F -:1000E0001123DA2111237F227F22E522ED22112321 -:1000F0000C238C228C228C228C228C228C228C220F -:100100008C228C228C228C228C228C228C228C227F -:100110008C229C22AA22B122B822C22200F001F035 -:1001200002F003F004F005F006F007F008F00020FC -:100130001E001F00200021002200230024002500B3 -:10014000260027002D002E002A002B0014001A0084 -:100150000800150017001C0018000C001200130006 -:100160002F0030003100394104001600070009005B -:100170000A000B000D000E000F00330034000000D9 -:100180002800E10000001D001B000600190005000A -:100190001100100036003700380001515200E00015 -:1001A000E200E300000000002C000000000000005E -:1001B0000000E700500051004F0035003A003B00BE -:1001C0003C003D003E003F00400041004200430033 -:1001D000440045004C000000AC005200AB000000A1 -:1001E000000000000000000000004600470048003A -:1001F00049000100500051004F00000000000000C5 -:1002000000000000000000000000000000000100ED -:100210000000A800AA00A9000000000000000000E3 -:1002200000000000000001004B420100010001003D -:1002300000000000AE00000000000000000001000F -:100240004A004E004D000070000000000000000059 -:10025000000000000000000000000000000000009E -:10026000000000000000000000000000000000008E -:10027000000000000000000000000000000000007E -:10028000000000000000000000000000000000006E -:10029000000000000000000000000100000001203C -:1002A00002200320042005200620072008203270A9 -:1002B0003170010001000100010001000000000098 -:1002C000010000000000000000000100010001002A -:1002D00001000A44454255473A20656E61626C65EB -:1002E000642E0A005374617465206F6620726F7704 -:1002F0002025583A2025303136620A0048756D6154 -:100300006E2D7265616461626C65206D61747269E5 -:10031000782073746174653A0D0A004465626F75E4 -:100320006E63696E672064656C61792072656D61CA -:10033000696E696E673A2025580A0054494D455246 -:10034000332064697361626C65642E0A0054494D00 -:1003500045523320656E61626C65642E0A007267D7 -:10036000626C696768742073657420687376205BBB -:10037000454550524F4D5D3A2025752C25752C254D -:10038000750A007267626C6967687420746F6767CA -:100390006C653A207267626C696768745F636F6E40 -:1003A0006669672E656E61626C65203D2025750A61 -:1003B000007267626C69676874206D6F64653A20CB -:1003C00025750A007267626C696768745F696E6997 -:1003D00074207267626C696768745F636F6E6669C8 -:1003E000672E6D6F6465203D20302E205772697432 -:1003F000652064656661756C742076616C756573E3 -:1004000020746F20454550524F4D2E0A007267628E -:100410006C696768745F696E6974206565636F6E87 -:10042000666967206973206E6F7420656E61626C07 -:1004300065642E0A007267626C696768745F696E32 -:100440006974207374617274210A007267626C6946 -:100450006768745F696E69742063616C6C65642E93 -:100460000A007267626C696768745F636F6E6669C1 -:10047000672E76616C203D2025640A007267626CED -:10048000696768745F636F6E6669672E7361742055 -:100490003D2025640A007267626C696768745F6357 -:1004A0006F6E6669672E687565203D2025640A00B9 -:1004B0007267686C696768745F636F6E6669672EE0 -:1004C0006D6F6465203D2025640A007267626C6967 -:1004D0006768745F636F6E6669672E656E61626CD4 -:1004E00065203D2025640A007267626C6967687444 -:1004F0005F636F6E666967206570726F6D0A006575 -:1005000065636F6E6669675F7570646174655F725D -:1005100067626C696768745F64656661756C740AAC -:1005200000643214643214783C1E1E140A05000064 -:1005300000000101010202030405050607090A0B78 -:100540000C0E0F1112141517191B1D1F212325281E -:100550002A2C2F313436393B3E414346494C4F52C9 -:1005600055585A5D6164676A6D707376797C7F83D4 -:1005700086898C8F9295989B9EA2A5A7AAADB0B3B1 -:10058000B6B9BCBEC1C4C6C9CBCED0D3D5D7DADCD0 -:10059000DEE0E2E4E6E8EAEBEDEEF0F1F3F4F5F6A6 -:1005A000F8F9FAFAFBFCFDFDFEFEFEFFFFFFFFFF80 -:1005B000FFFFFEFEFEFDFDFCFBFAFAF9F8F6F5F48E -:1005C000F3F1F0EEEDEBEAE8E6E4E2E0DEDCDAD7C8 -:1005D000D5D3D0CECBC9C6C4C1BEBCB9B6B3B0ADFD -:1005E000AAA7A5A29E9B9895928F8C898683807CD2 -:1005F000797673706D6A6764615D5A5855524F4CD5 -:10060000494643413E3B393634312F2C2A28252395 -:10061000211F1D1B1917151412110F0E0C0B0A099F -:1006200007060505040302020101010000000001A4 -:100630000102020202020203030303030303030392 -:10064000030303030304040404040404040404046F -:100650000405050505050505050505060606060646 -:100660000606060707070707070708080808080817 -:100670000909090909090A0A0A0A0A0B0B0B0B0BDB -:100680000C0C0C0C0C0D0D0D0D0E0E0E0E0F0F0F95 -:10069000101010101111111212121313131414143C -:1006A0001515161616171718181919191A1A1B1BCB -:1006B0001C1C1D1D1E1E1F2020212122232324243B -:1006C000252626272828292A2B2B2C2D2E2F303083 -:1006D0003132333435363738393A3B3C3D3E3F4092 -:1006E000414244454647494A4B4C4E4F515253555F -:1006F00056585A5B5D5E6062636567696B6D6E70CC -:10070000727476797B7D7F818486888B8D909295BB -:10071000979A9D9FA2A5A8ABAEB1B4B7BABEC1C40B -:10072000C8CBCFD3D6DADEE2E6EAEEF2F8FF5B73AF -:100730005D004B6579626F617264207374617274DD -:100740002E0A005B575D005B535D005B525D005BF2 -:10075000445D005B435D000E036B006300360030B8 -:1007600000760032000000080359006F0075000099 -:10077000000403090409027400040100A0FA09043A -:1007800000000103010100092111010001224000C4 -:100790000705810308000A090401000103010200A2 -:1007A000092111010001224D000705820308000AFA -:1007B00009040200010300000009211101000122C7 -:1007C00036000705830308000A090403000203003A -:1007D00000000921110100012220000705840320E7 -:1007E00000010705040320000112011001000000B0 -:1007F00008EDFE60600100010200010631FF09748E -:10080000A1010975150025FF95207508810209765B -:10081000150025FF952075089102C005010980A1EA -:1008200001850216010026B7001A01002AB70075DB -:100830001095018100C0050C0901A1018503160175 -:1008400000269C021A01002A9C0275109501810065 -:10085000C005010902A1010901A100050919012929 -:100860000515002501950575018102950175038126 -:10087000010501093009311581257F95027508812F -:100880000609381581257F950175088106050C0A32 -:1008900038021581257F950175088106C0C00501C4 -:1008A0000906A101050719E029E7150025019508AA -:1008B0007501810295017508810105081901290555 -:1008C00095057501910295017503910105071900C0 -:1008D00029FF150026FF00950675088100C00A0053 -:1008E0002530325820006B6579626F6172645F72E7 -:1008F00065706F72743A20004B6579626F61726443 -:10090000204C4544732073746174653A2025780A3D -:1009100000646F6E652E0A00626F6F676D616769B4 -:1009200063207363616E3A202E2E2E2000290A0068 -:100930002575002F002575005D2800256400200026 -:10094000256400200025640020002564007C00252B -:10095000303258006D6F7573656B6579205B62741A -:100960006E7C782079207620685D287265702F6112 -:10097000636C293A205B006D6B5F776865656C5F1F -:1009800074696D655F746F5F6D6178203D202564CB -:100990000A006D6B5F776865656C5F6D61785F738A -:1009A00070656564203D2025640A006D6B5F746985 -:1009B0006D655F746F5F6D6178203D2025640A006E -:1009C0006D6B5F6D61785F7370656564203D202598 -:1009D000640A006D6B5F696E74657276616C203DB0 -:1009E0002025640A006D6B5F64656C6179203D2091 -:1009F00025640A006D6B5F776865656C5F74696D6F -:100A0000655F746F5F6D6178203D2025640A006D1D -:100A10006B5F776865656C5F6D61785F7370656546 -:100A200064203D2025640A006D6B5F74696D655F0D -:100A3000746F5F6D6178203D2025640A006D6B5FE7 -:100A40006D61785F7370656564203D2025640A00E0 -:100A50006D6B5F696E74657276616C203D202564F4 -:100A60000A006D6B5F64656C6179203D2025640A26 -:100A7000000A00257500363A20776865656C5F745A -:100A8000696D655F746F5F6D61783A20000A0025BB -:100A90007500353A20776865656C5F6D61785F73C6 -:100AA000706565643A20000A00257500343A2074A8 -:100AB000696D655F746F5F6D61783A20000A00258B -:100AC0007500333A206D61785F73706565643A2014 -:100AD000000A00257500323A20696E7465727661ED -:100AE0006C286D73293A20000A00257500313A20E0 -:100AF00064656C6179282A31306D73293A20000AC7 -:100B0000092D2056616C756573202D0A004D3E003D -:100B10004D25643E20003F00736574206465666166 -:100B2000756C740A00433E20007768657265206426 -:100B3000656C74613A20637572736F723D25642C25 -:100B400020776865656C3D25640A53656520687487 -:100B500074703A2F2F656E2E77696B6970656469C2 -:100B6000612E6F72672F77696B692F4D6F75736593 -:100B70005F6B6579730A000A092D204D6F757365E7 -:100B80006B6579202D0A4553432F713A09717569B8 -:100B9000740A313A0964656C6179282A31306D73C1 -:100BA000290A323A09696E74657276616C286D7330 -:100BB000290A333A096D61785F73706565640A3498 -:100BC0003A0974696D655F746F5F6D61780A353AD3 -:100BD00009776865656C5F6D61785F7370656564E2 -:100BE0000A363A09776865656C5F74696D655F748C -:100BF0006F5F6D61780A0A703A097072696E7420CD -:100C000076616C7565730A643A097365742064656E -:100C10006661756C74730A75703A092B310A646FDA -:100C2000776E3A092D310A706775703A092B3130A9 -:100C30000A7067646F776E3A092D31300A0A737053 -:100C4000656564203D2064656C7461202A206D61B7 -:100C5000785F7370656564202A202872657065610D -:100C600074202F2074696D655F746F5F6D617829E2 -:100C70000A003F004D3E2000433E20004C25640A00 -:100C80000074696D65725F636F756E743A2025300C -:100C9000346C580A006B6579626F6172645F6964D5 -:100CA0006C653A2025580A006B6579626F61726441 -:100CB0005F70726F746F636F6C3A2025580A00681A -:100CC0006F73745F6B6579626F6172645F6C65648A -:100CD0007328293A2025580A000A092D20537461E7 -:100CE000747573202D0A004743433A20352E332E66 -:100CF00030204156522D4C4942433A20322E302E5C -:100D000030204156525F415243483A206176723555 -:100D10000A004F5054494F4E533A204C55464120FB -:100D2000424F4F544D41474943204D4F5553454B3A -:100D300045592045585452414B455920434F4E5335 -:100D40004F4C4520434F4D4D414E442034303936B1 -:100D50000A004255494C443A20756E6B6E6F776EAF -:100D6000202830323A35383A3231204A756E2032F6 -:100D7000312032303136290A005649443A20307841 -:100D80004645454428596F7529205049443A20303A -:100D90007836303630286B63363076322920564527 -:100DA000523A203078303030310A00444553433ACB -:100DB000204120637573746F6D206B6579626F617C -:100DC00072640A000A092D2056657273696F6E20DD -:100DD0002D0A000A092D20436F6E736F6C65202D5C -:100DE0000A4553432F713A09717569740A6D3A09BE -:100DF0006D6F7573656B65790A000A092D204D6169 -:100E0000676963202D0A443A094465627567204D7D -:100E100065737361676520546F67676C650A583A3C -:100E2000094D6174726978204465627567204D6F61 -:100E3000646520546F67676C65202D2053686F7759 -:100E4000206B65797072657373657320696E206DB0 -:100E5000617472697820677269640A4B3A094B655C -:100E600079626F61726420446562756720546F67B0 -:100E7000676C65202D2053686F77206B65797072E1 -:100E8000657373207265706F72740A4D3A09446518 -:100E9000627567204D6F75736520546F67676C6569 -:100EA0000A563A0956657273696F6E0A533A0953C6 -:100EB00074617475730A433A0941637469766174A5 -:100EC0006520436F6E736F6C65204D6F64650A46D5 -:100ED000312D4631303A0953776974636820746F55 -:100EE000204C6179657220302D3920284631302020 -:100EF0003D204C30290A302D393A09537769746303 -:100F00006820746F204C6179657220302D390A4554 -:100F100053433A0953776974636820746F204C61B6 -:100F200079657220302028616C7465726E61746519 -:100F3000206B65792031290A47524156453A0953B9 -:100F4000776974636820746F204C61796572203012 -:100F50002028616C7465726E617465206B65792000 -:100F600032290A50415553453A094A756D7020742B -:100F70006F20426F6F746C6F6164657220285265D8 -:100F8000736574290A453A095072696E74204545A3 -:100F900050524F4D2053657474696E67730A000A8E -:100FA000002575002E6C6576656C3A20000A0025D8 -:100FB00075002E656E61626C653A20000A0025306E -:100FC0003258006261636B6C696768745F636F6E4F -:100FD0006669672E7261773A20000A002575002E37 -:100FE0006E6B726F3A20000A002575002E737761D0 -:100FF000705F6261636B736C6173685F6261636B86 -:1010000073706163653A20000A002575002E7377BE -:1010100061705F67726176655F6573633A20000A8D -:10102000002575002E6E6F5F6775693A20000A0013 -:101030002575002E737761705F72616C745F7267E3 -:1010400075693A20000A002575002E737761705F7C -:101050006C616C745F6C6775693A20000A002575D5 -:10106000002E636170736C6F636B5F746F5F636F8F -:101070006E74726F6C3A20000A002575002E73772B -:1010800061705F636F6E74726F6C5F636170736CBD -:101090006F636B3A20000A0025303258006B657987 -:1010A0006D61705F636F6E6669672E7261773A205B -:1010B000000A002575002E6D6F7573653A20000AD1 -:1010C000002575002E6B6579626F6172643A2000AD -:1010D0000A002575002E6D61747269783A20000A45 -:1010E000002575002E656E61626C653A20000A006D -:1010F000253032580064656275675F636F6E66699C -:10110000672E7261773A20000A00257500646566D3 -:1011100061756C745F6C617965723A20003F000AFA -:101120006D6F7573653A206F66660A000A6D6F759C -:1011300073653A206F6E0A000A6B6579626F61729F -:10114000643A206F66660A000A6B6579626F6172A5 -:10115000643A206F6E0A000A6D61747269783A20F1 -:101160006F66660A000A6D61747269783A206F6E64 -:101170000A000A64656275673A206F66660A000AAB -:1011800064656275673A206F6E0A000A0A4A756DD7 -:1011900070696E6720746F20626F6F746C6F61642A -:1011A00065722E2E2E2000433E20006565636F6E13 -:1011B0006669673A0A006261636B6C6967687420EC -:1011C000737465703A2025750A006261636B6C69FF -:1011D00067687420746F67676C653A2025750A002C -:1011E0006261636B6C6967687420646563726561D2 -:1011F00073653A2025750A006261636B6C696768E4 -:101200007420696E6372656173653A2025750A0002 -:1012100011241FBECFEFDAE0DEBFCDBF04B603FE60 -:1012200027C080913F0290914002A0914102B0916D -:1012300042028730904BA740B04BD1F410923F024E -:1012400010924002109241021092420214BE84B7E2 -:10125000877F84BF0FB6F894A8958091600088615D -:1012600080936000109260000FBEE0E0F8E3099503 -:1012700011E0A0E0B1E0E6E6FEE602C005900D92C6 -:10128000A634B107D9F722E0A6E4B1E001C01D926F -:10129000AF33B207E1F70E9404190C9431370C9474 -:1012A0000000FF93EF93E0914601F09147013097E2 -:1012B00009F00995EF91FF910895FC018591803027 -:1012C00011F0EFDFFBCF0895FF27E0E230E247FFA8 -:1012D0000CC0419597FF09C0EDE26095709580952F -:1012E0009095611D711D811D911D27FF02C02195E3 -:1012F00030E350E2AA27660F771F881F991FAA1FA5 -:10130000A41710F0A41B63955A95A9F7AA3008F00A -:10131000A95FA05DAF93F3956115710581059105F6 -:1013200041F7ED3211F4EF93F395F21718F43F9370 -:10133000F395FBCF8F91B5DFFA95E1F70895E99129 -:10134000F9918591803021F0853219F0AADFF9CF2B -:10135000089520E0E89455915532C1F3503311F4CB -:10136000689455915A3348F4505390F3220F022E4B -:10137000220F220F200D250FF4CF0EF42195899115 -:101380009991533619F3533729F1533559F1BC016B -:1013900088279927E8945C3621F48991999168947B -:1013A0005591543639F446EF7EF077FF0DC08FEF3C -:1013B0009FEF0AC055374AE039F0583540E121F037 -:1013C000523642E009F00895FF93EF937DDFEF91ED -:1013D000FF91B7CFFF93EF93FC0181918030B9F378 -:1013E00060DFFBCFFF93EF9368DFF1CFDF93CF9305 -:1013F000CDB7DEB72596A3DFCF91DF91089508958D -:101400000C94FF0981E0089508950C94FF090C9451 -:10141000020A0C94040A269A2E988FEF9FEF90935D -:1014200087008093860082E28093800089E1809328 -:1014300081000C949B340E940B0A0C94000A282F04 -:101440002E9880918000211108C08F7D80938000AC -:1014500010928B0010928A00089580628093800021 -:10146000233019F48FEF9FEF0FC083E090E0821BD1 -:101470009109880F991F2FEF3FEFA90102C05695E0 -:1014800047958A95E2F7CA0190938B0080938A0072 -:101490000895CF93DF93EC01862F90E0893091057A -:1014A00008F05AC0FC01EA5AFF4F0C94E3360E9440 -:1014B000292982729A81992369F0882319F085E39A -:1014C00090E002C089E290E00E94ED28DF91CF9188 -:1014D0000C947329882319F085E390E002C089E217 -:1014E00090E00E940A29F2CF8A818823A9F1DF9136 -:1014F000CF910C940D148A81882371F1DF91CF91E3 -:101500000C9479128A81882339F1DF91CF910C9460 -:1015100091128A81882301F1DF91CF910C94B0124E -:101520008A818823C9F0DF91CF910C94CB128A81F4 -:10153000882391F0DF91CF910C94E5128A81882362 -:1015400059F0DF91CF910C9400138A81882321F008 -:10155000DF91CF910C940314DF91CF91089581E036 -:1015600008950C94AF0A08950F931F93CF93DF93C0 -:101570008C01FC01C081D181CE010E946E28BE0188 -:101580000E94ED0DEC01B8010E94B10A882309F414 -:1015900074C1F8018281882309F45BC080915301F2 -:1015A00081111FC0C431F0E7DF0709F00AC10E94B2 -:1015B000B30A81E0809353010E945D2A9093520107 -:1015C0008093510110924A0110924C0110924B01EC -:1015D00010924E0110924D011092500110924F0145 -:1015E0004CC180915101909152010E94692A883C1E -:1015F000910570F480914A01E82FF0E0EE0FFF1F93 -:10160000E55BFE4FD183C0838F5F80934A0135C174 -:10161000C43120E7D20708F028C1C23080E7D807DC -:1016200010F5C11590E7D90709F0DAC0F8018281F9 -:10163000882309F4BFC00E947A23FFEF24E38CE0E3 -:10164000F15020408040E1F700C000000E94B82A1D -:1016500014C1C431F0E7DF0708F0D3C0C23020E77F -:10166000D20708F49BC0F8018281882309F4A2C044 -:101670000E94722C811102C00E94532C0E948F2C58 -:1016800090E09093F8018093F701C230F0E7DF0714 -:1016900021F48091F70181607AC0C33020E7D2073E -:1016A00021F48091F701826072C0C43080E7D807CE -:1016B00021F48091F70184606AC0C53090E7D907B2 -:1016C00019F48091F70127C0C630E0E7DE0721F466 -:1016D0008091F70180615BC0C730F0E7DF0721F43C -:1016E0008091F701806253C0C83020E7D20721F40F -:1016F0008091F70180644BC0C93080E7D80721F49E -:101700008091F701806843C0CA3090E7D90729F477 -:101710008091F701846088603AC0CB30E0E7DE0753 -:1017200021F48091F7018E7F32C0CC30F0E7DF07E3 -:1017300021F48091F7018D7F2AC0CD3020E7D207B8 -:1017400021F48091F7018B7F22C0CE3080E7D8074B -:1017500019F48091F7011AC08091F701CF3090E71A -:10176000D90711F48F7E13C0C031E0E7DE0711F412 -:101770008F7D0DC0C131F0E7DF0711F48F7B07C00B -:10178000C231D04711F48F7702C08B7F877F80935F -:10179000F7018091F7010E94932C6FC0C11580E77B -:1017A000D80741F0C130D047F1F081E08093480183 -:1017B00080934901C801DF91CF911F910F910C9443 -:1017C000070AC43120E7D20708F04FC0C23080E7D3 -:1017D000D80708F048CFC11590E7D90709F42BCFF7 -:1017E000C130D04711F7F8018281882319F382EDC7 -:1017F00092E00E945D098091E60181608093E6019C -:101800003CC0C333E0E7DE07A1F4F80182818823FE -:1018100021F01092480182E017C0809148018111A7 -:1018200006C086E20E94E31F86E20E94AB2082E0AF -:1018300019C0C433D04709F0B8CFF801828188239A -:1018400031F01092490182E10E94FA2016C0809185 -:101850004901811106C087E20E94E31F87E20E94CE -:10186000AB2082E10E94012108C0C333F0E7DF070B -:1018700061F2C433D04709F398CF80E0DF91CF9174 -:101880001F910F9108950C941B0A0C94050A26E4ED -:10189000829FC0011124FC013EE0739FE00DF11D09 -:1018A0001124E60FF11DEE0FFF1FE25DFE4F859143 -:1018B00094910E94000E811540E5940708F047C0FE -:1018C000811520E4920708F014C1883E910520F5A7 -:1018D000803E910508F07DC1883A910578F4853AFB -:1018E000910508F0A6C08130910509F472C108F491 -:1018F0002FC18430910508F06CC12AC18B3B910542 -:1019000008F4A2C0803C910508F422C1FC01EE0F4E -:10191000FF1FE456F040E7C0811530E2930758F40A -:10192000811541E0940708F054C1803F910508F407 -:101930000FC190650895811520E3920708F0D6C085 -:10194000FC01FF70EE0FFF1FE45EFE4FCCC081155F -:1019500035E5930708F044C0811544E5940708F085 -:10196000DFC0811522E5920710F5811531E5930757 -:1019700008F0C2C09C0154E0369527955A95E1F7CE -:10198000922F9370482F437021E030E002C0220F65 -:10199000331F4A95E2F73C68392B8F708695869500 -:1019A00040E2849FC0011124822B932B0895AC0147 -:1019B00043705527282F269526958115934508F0C5 -:1019C000A0C081E090E002C0880F991F4A95E2F71D -:1019D00040E2249F90011124822B932B9C68089550 -:1019E0008F3240E7940790F48F3120E7920708F098 -:1019F000A2C0811536E5930708F497C09C013056C4 -:101A00002115304108F0A4C09F7093C0803320E7B7 -:101A1000920709F497C008F492C0813340E7940715 -:101A200009F493C08233904709F092C080E093EDAF -:101A30000895853A910509F48EC0863A910509F01A -:101A40008DC082E890E40895883A910509F489C030 -:101A5000893A910509F488C08A3A910509F487C04A -:101A60008B3A910509F486C08C3A910509F485C03A -:101A70008D3A910509F484C0803B910509F483C037 -:101A80008E3A910509F482C08F3A910509F481C01C -:101A9000813B910509F480C0823B910509F47FC028 -:101AA000833B910509F47EC0843B910509F47DC018 -:101AB000853B910509F47CC0863B910509F47BC008 -:101AC000873B910509F47AC0883B910509F479C0F8 -:101AD000893B910509F478C08A3B910509F477C0E8 -:101AE00080E094E408958591949108959927906CED -:101AF00008959F70906A0895982F8827816F906A43 -:101B0000089581E090E002C0880F991F4A95E2F79E -:101B100040E2249F90011124822B932B9A68089510 -:101B2000982F8827846F906A08958F719927982F2E -:101B30008827906208958F519047946D089580E0B2 -:101B400091ED089580E090ED089580E092ED089584 -:101B500080E090E0089581E890E4089583E890E4BF -:101B6000089582EE94E4089589EE94E408958AEE4F -:101B700094E4089585EB94E4089586EB94E4089545 -:101B800087EB94E408958CEC94E408958DEC94E450 -:101B9000089583E895E408958AE895E4089582E934 -:101BA00095E4089584E995E4089581E296E4089522 -:101BB00083E296E4089584E296E4089585E296E44B -:101BC000089586E296E4089587E296E408958AE20D -:101BD00096E4089580E090E0089526E4829FC00195 -:101BE0001124FC012EE0729FE00DF11D1124E60F7F -:101BF000F11DEE0FFF1FE25DFE4F85919491089558 -:101C00008238910549F1B0F48133910509F459C046 -:101C100048F48932910509F44FC08A32910509F4DC -:101C200055C008958533910509F441C08933910564 -:101C300099F00895833E910531F138F4803E910585 -:101C400091F0823E9105A9F00895863E910501F13B -:101C5000873E910539F108952091F70120FD3BC0A1 -:101C600021FD39C008958091F70180FF34C089E3D8 -:101C700041C08091F70182FF30C08091F70184FD5F -:101C80002EC083EE37C08091F70182FD26C0F5CFCC -:101C90008091F70183FF25C08091F70184FD1FC06B -:101CA00087EE28C08091F70183FD1BC0F5CF80919E -:101CB000F70185FD18C019C08091F70185FD15C099 -:101CC00012C08091F70186FD12C013C08091F70108 -:101CD00086FD0FC00CC080EE0DC082EE0BC080E010 -:101CE00009C086EE07C089E205C085E303C08AE229 -:101CF00001C081E390E008950C94090AE82FF0E018 -:101D0000ED5DFE4F8081E82FEF70F0E082958F70DF -:101D100021E030E0A90102C0440F551F8A95E2F787 -:101D200040A308950F931F93CF93DF93C4E0D0E0B7 -:101D300001E010E0FE01ED5DFE4F8081E82FEF70C5 -:101D4000F0E021A182958F70A80102C0440F551FB9 -:101D50008A95E2F7CA01822B81A38C2F0E947E0E06 -:101D6000219740F78DE090E061E070E0FC01EB5ED0 -:101D7000FE4F2081E22FEF70F0E042A122952F70FC -:101D8000DB0102C0AA0FBB1F2A95E2F79D01242B9D -:101D900022A3019758F7DF91CF911F910F910895DA -:101DA0000F931F93CF93DF9385B7806885BF85B767 -:101DB000806885BFC4E0D0E001E010E0FE01ED5D89 -:101DC000FE4F8081E82FEF70F0E021A182958F70A7 -:101DD000A80102C0440F551F8A95E2F7CA01822B61 -:101DE00081A38C2F0E947E0E219740F78DE090E01A -:101DF00061E070E0FC01EB5EFE4F2081E22FEF70AE -:101E0000F0E042A122952F70DB0102C0AA0FBB1F98 -:101E10002A95E2F79D01242B22A3019758F7DF9121 -:101E2000CF911F910F910C94430CCF92DF92EF92C0 -:101E3000FF920F931F93CF93DF930EE511E078018C -:101E4000C4E0CC24C394D12CD5E08C2F0E947E0E0C -:101E50008DE090E040E050E0FC01EB5EFE4F6081E1 -:101E6000E62FEF70F0E020A130E062956F7002C0C5 -:101E7000359527956A95E2F720FD09C09601082E51 -:101E800002C0220F331F0A94E2F7422B532B019713 -:101E900018F7D7019E918E917D018417950721F047 -:101EA0004D935C93D09300018C2F0E947E0EC15005 -:101EB00060F68091000187FD2FC09091E60190FFB0 -:101EC00010C0282F082E000C330B3F938F938BE10B -:101ED00093E09F938F930E94F6090F900F900F90BD -:101EE0000F908091000181508093000187FD07C011 -:101EF000EFE9FFE03197F1F700C000000DC0E8E620 -:101F0000F1E084E591E0D8013E912E918D0132936C -:101F100022938A179B07B9F70E94450C81E0DF9155 -:101F2000CF911F910F91FF90EF90DF90CF90089588 -:101F3000E82FF0E0EE0FFF1FE25AFE4F8081918103 -:101F40000895EF92FF920F931F93CF93DF938091A9 -:101F5000E60180FF04C08CEF92E00E945D090EE56F -:101F600011E0C0E0D0E084EEE82E82E0F82E80910F -:101F7000E60180FF13C0F801808191810E94C5298C -:101F80009F938F93DF93CF93FF92EF920E94F60976 -:101F90000F900F900F900F900F900F9021960E5F63 -:101FA0001F4FC530D10519F7DF91CF911F910F91C8 -:101FB000FF90EF9008950F931F93CF9308E611E0E1 -:101FC000C0E0F801929182918F010E94A729C80F69 -:101FD000F1E00E351F07A9F78C2FCF911F910F91BC -:101FE000089521B3342F3095232331B3432B3FB7CA -:101FF000F894FC01680F791FE617F70789F08191C3 -:1020000098E041BB000000C087FF21BB880F0000A3 -:1020100000C000C000C021BB00C09A9591F7ECCF72 -:102020003FBF089520B3242B20BB9B01220F331FF9 -:10203000620F731F0E94F10F87EC90E00197F1F798 -:1020400000C00000089540E20C941210AF92BF92BD -:10205000CF92DF92EF92FF920F931F93CF93DF9374 -:102060006C01790150E0FA01E25DF94F44918FEF84 -:1020700090E0FC01E61BF109E25DF94FE491E09587 -:1020800009F495C0C42FD0E08E1B91098C9F90015C -:102090008D9F300D9C9F300D1124E32F8CE3A82ED3 -:1020A000B12CC601B5010E94BB36DC01623071055E -:1020B00009F446C0D0F46115710599F161307105DC -:1020C00009F079C0C31BD109B501681B790BC69F04 -:1020D000C001C79F900DD69F900D1124B5010E949D -:1020E000BB36032F060F142F67C06430710509F447 -:1020F0004BC0B8F16530710509F05DC0C31BD10953 -:10210000B501681B790BC69FC001C79F900DD69F74 -:10211000900D1124B5010E94BB36132FE32FE60F5B -:1021200044C0C31BD109CC9DC001CD9D900DDC9D49 -:10213000900D1124B5010E94BB36132F160F35C028 -:10214000C31BD109CA9FC001CB9F900DDA9F900D90 -:102150001124B5010E94BB36142F032FE32FE60F85 -:102160002BC0C31BD109B501681B790BC69FC001E9 -:10217000C79F900DD69F900D1124B5010E94BB36CC -:10218000132F160F032F0FC0C31BD109CA9FC00105 -:10219000CB9F900DDA9F900D1124B5010E94BB36A4 -:1021A000032F060F132FE42F07C0042F05C0E42FC1 -:1021B000142F042F01C0E0E0D70111960C93119762 -:1021C0001C931296EC93DF91CF911F910F91FF908A -:1021D000EF90DF90CF90BF90AF90089587E090E0B0 -:1021E0000C94F136AB01BC0187E090E00C940F3702 -:1021F0008091E60180FF08C08FEF94E09F938F935A -:102200000E94F6090F900F9083E08093F90180916E -:10221000FA01807884668F778093FA018CEC809342 -:10222000FB018093FC016091F9017091FA018091AA -:10223000FB019091FC010C94F2108091E60180FF6B -:1022400008C088EE94E09F938F930E94F6090F9048 -:102250000F908091E60180FF0FC08091F90181709D -:102260001F928F938BEC94E09F938F930E94F609BB -:102270000F900F900F900F908091E60180FF10C09B -:102280008091F90186958F731F928F9380EB94E074 -:102290009F938F930E94F6090F900F900F900F90CD -:1022A0008091E60180FF19C08091F901881F88277D -:1022B000881F9091FA01292F220F822B97FB9927D3 -:1022C00090F99F938F9386E994E09F938F930E9458 -:1022D000F6090F900F900F900F908091E60180FF0C -:1022E0000EC08091FB011F928F938CE794E09F9327 -:1022F0008F930E94F6090F900F900F900F9080918E -:10230000E60180FF0EC08091FC011F928F9382E650 -:1023100094E09F938F930E94F6090F900F900F9077 -:102320000F9008958091F90180FF06C060E170E090 -:1023300081E092E00C942310E3E0F2E0DF011197DA -:102340001C9211971C921082339682E0E333F807B7 -:10235000A9F7ECCFE3E0F2E0DF0111978C9311973E -:102360006C934083339692E0E333F907A9F70C941A -:102370009211EF92FF920F931F93CF93DF9300D0B0 -:102380001F92CDB7DEB7182FE92EF62E042F8091BD -:10239000F9019091FA01A091FB01B091FC018093A9 -:1023A000FD019093FE01A093FF01B0930002809184 -:1023B000F90180FF1FC09E012F5F3F4F812F9E2D8F -:1023C0000E9426108091FD0110FB87F98093FD018A -:1023D00016958091FE018078182BE0FA17F910937A -:1023E000FE01F092FF01009300024B8169818A8116 -:1023F0000E94AA110F900F900F90DF91CF911F9123 -:102400000F91FF90EF9008950F931F93CF93DF9359 -:10241000EC01062F142F9091F90190FF65C0892FD0 -:102420008E77823021F4CE010E94B9111BC0892F12 -:1024300086958F732EE3280F2F73243018F4109194 -:10244000FC0110C0865C8F73893060F4C92FCC1FEB -:10245000CC27CC1FD091FA018D2F880FC82BD7FB2A -:10246000DD27D0F98091F901C0FB87F98093F9014C -:10247000C6958091FA018078C82BD0FBC7F9C0932C -:10248000FA010093FB011093FC016091F901709136 -:10249000FA018091FB019091FC010E94F210809161 -:1024A000FC011F928F938091FB011F928F9380916B -:1024B000F901881F8827881F9091FA01292F220F80 -:1024C000822B97FB992790F99F938F938EE593E04A -:1024D0009F938F930E94F6098DB79EB708960FB60B -:1024E000F8949EBF0FBE8DBFDF91CF911F910F91CA -:1024F0000895E9EFF1E02081221F2227221F309169 -:10250000FA01432F440F842F822B37FB992790F930 -:10251000089668E671E00E94CF36438162810C9490 -:1025200004122091F901221F2227221F3091FA0163 -:10253000432F440F842F822B37FB992790F9883043 -:1025400091051CF4805A9E4F05C0089768E671E01B -:102550000E94CF364091FC016091FB010C94041263 -:102560006091FB01862F90E0883F910514F4685F2D -:1025700001C06FEF8091F901881F8827881F909113 -:10258000FA01292F220F97FB992790F94091FC011E -:10259000822B0C9404126091FB01862F90E0089727 -:1025A00014F0685001C060E08091F901881F88270D -:1025B000881F9091FA01292F220F97FB992790F9F4 -:1025C0004091FC01822B0C9404124091FC01842F59 -:1025D00090E0883F910514F4485F01C04FEF80916F -:1025E000F901881F8827881F9091FA01292F220F4F -:1025F00097FB992790F96091FB01822B0C940412B0 -:102600004091FC01842F90E0089714F0485001C0DD -:1026100040E08091F901881F8827881F9091FA0176 -:10262000292F220F97FB992790F96091FB01822BAC -:102630000C9404128091790181110FC081E0809384 -:10264000790189E0809391008FB7F89493E090939B -:10265000990090ED909398008FBF0895809171003C -:102660008260809371008091E60180FF08C08DE454 -:1026700093E09F938F930E94F6090F900F90089517 -:10268000809171008D7F809371008091E60180FFC1 -:1026900008C08BE393E09F938F930E94F6090F90FD -:1026A0000F9008959091F90190FF4BC0917881119E -:1026B00002C0926007C0883110F09E6203C08F7321 -:1026C000880F982B9093F9016091F9017091FA01AC -:1026D0008091FB019091FC010E94F2108091F90120 -:1026E00086958F731F928F9381EB93E09F938F93C7 -:1026F0000E94F6098091F901982F9E770F900F9014 -:102700000F900F90923019F40E94401307C08695E5 -:10271000825C8F73863110F40E942E138091F90130 -:10272000881F8827881F9091FA01292F220F97FB75 -:10273000992790F94091FC016091FB01822B0C9448 -:10274000041208958091E60181608093E6018BE494 -:1027500094E09F938F930E94F60981E080937A0121 -:102760008091E6010F900F9080FF08C085E394E010 -:102770009F938F930E94F6090F900F900E94722CE6 -:10278000811110C08091E60180FF08C08DE094E0C7 -:102790009F938F930E94F6090F900F900E94532CE5 -:1027A0000E94F8100E94EE106093F9017093FA01F4 -:1027B0008093FB019093FC016E77C1F48091E60158 -:1027C00080FF08C084EC93E09F938F930E94F609EA -:1027D0000F900F900E94F8100E94EE106093F90184 -:1027E0007093FA018093FB019093FC010E941D11EC -:1027F0000E941A138091F90180FF04C086958F739F -:102800000C94521308958091F90186958F738F5F10 -:10281000883108F081E00C9452138091F901982FCF -:10282000909590FB80F98093F9016091F901709186 -:10283000FA018091FB019091FC010E94F2108091BD -:10284000F90181701F928F9383E893E09F938F9398 -:102850000E94F6098091F9010F900F900F900F9050 -:1028600080FF04C086958F730C9452130E9440130E -:102870002FEF80E792E0215080409040E1F700C0C8 -:1028800000000C949211CF93C82F80917701909102 -:1028900078010E94692AEC2FF0E0E65DFA4FE4919E -:1028A000F0E08E179F0718F10E945D2A909378013F -:1028B00080937701E0917601F0E0E25DFA4F449178 -:1028C0008091F901881F8827881F9091FA01292F8C -:1028D000220F97FB992790F96091FB01822B0E94B0 -:1028E000B9118091760190E0019680937601CF91A5 -:1028F0000895CF93C82F80917401909175010E9423 -:10290000692AEC2FF0E0E95DFA4FE491F0E08E17D0 -:102910009F07E8F00E945D2A9093750180937401EF -:102920004091FC016091FB018091720190917301D3 -:102930000E94B9118091720190917301019668E62D -:1029400071E00E94BB369093730180937201CF9126 -:102950000895CF92DF92FF920F931F93CF93DF934F -:10296000F82E80917001909171010E94692AEF2DDB -:10297000E695F0E0E95DFA4FE491F0E08E179F07ED -:10298000C0F10E945D2A909371018093700101E073 -:1029900012E0C0E0D0E088E6C82EDD24D394809118 -:1029A0006E0190916F018C0F9D1FB6010E94BB3686 -:1029B00098014091FC016091FB010E9426106696EF -:1029C0000D5F1F4FC03681E0D80749F70E94921172 -:1029D00080916E0190916F01F0FE06C0019668E64D -:1029E00071E00E94BB3601C0019790936F01809304 -:1029F0006E01DF91CF911F910F91FF90DF90CF90EB -:102A000008958F929F92AF92BF92CF92DF92EF92F2 -:102A1000FF920F931F93CF93DF93C82F80FF03C0C4 -:102A2000DD24DA9402C0DD24D39480916C0190916E -:102A30006D010E94692AC695EC2FF0E0EC5DFA4F1B -:102A4000E491F0E08E179F0708F466C00E945D2AAB -:102A500090936D0180936C0191E0E92E92E0F92E44 -:102A600003E012E0C0E0D0E027E0822E912CF801D4 -:102A700031971082F7011082F801108287E0A82EAA -:102A8000B12CC12C80916B018C0D87FD805F082ECD -:102A9000000C990BC817D907E9F42091FC012A9D75 -:102AA000C0012B9D900D1124B4010E94CF36462FFA -:102AB0008091F901881F8827881F9091FA01592F6A -:102AC000550F97FB992790F997016091FB01852B92 -:102AD0000E942610CD0CF1E0AF1AB10899F62196AC -:102AE00083E0E80EF11C0D5F1F4FC031D10509F0E6 -:102AF000BECF0E94921180916B0191E0D91206C065 -:102B0000811102C08FE006C0815004C090E00196A0 -:102B10008F70992780936B01DF91CF911F910F9157 -:102B2000FF90EF90DF90CF90BF90AF909F908F90ED -:102B300008959F92AF92BF92CF92DF92EF92FF9251 -:102B40000F931F93CF93DF93CDB7DEB7E0970FB608 -:102B5000F894DEBF0FBECDBF182F80916901909110 -:102B60006A010E94692AE12FF0E0EF5DFA4FE491DB -:102B7000F0E08E179F0708F493C00E945D2A90939F -:102B80006A0180936901CE0101967C015E0193E0A8 -:102B9000A90EB11CC12CD12C8701F50131971082EF -:102BA000F7011082F5011082912C90910101809122 -:102BB0006801999E800D112487FD04C080311CF0AE -:102BC0008FE001C080E0082E000C990BC816D906D2 -:102BD000A1F48091F901881F8827881F9091FA013C -:102BE000592F550F97FB992790F997014091FC01B8 -:102BF0006091FB01852B0E9426109394F7E09F12B1 -:102C0000D4CF8FEFC81AD80A93E0E90EF11CE3E0A5 -:102C1000AE0EB11CF0E1CF16D10409F0BECFA3E097 -:102C2000B2E089E090E0FC01EF70FF279D012150A8 -:102C30003109AF01440F551FE40FF51FBF01600FAD -:102C4000711FFB014181F901408321503109FB01D2 -:102C50004081F9014083FB0122812C930196139658 -:102C60008931910501F70E949211909101018091A3 -:102C70006801913049F48A3F2CF489EF8093680110 -:102C80008FEF08C081500AC087313CF086E1809305 -:102C9000680181E08093010103C08F5F8093680128 -:102CA000E0960FB6F894DEBF0FBECDBFDF91CF9197 -:102CB0001F910F91FF90EF90DF90CF90BF90AF905A -:102CC0009F9008951F920F920FB60F9211242F9389 -:102CD0003F934F935F936F937F938F939F93AF93A4 -:102CE000BF93EF93FF938091F90186958F739EE3D5 -:102CF000980F9F73943020F482500E94431423C095 -:102D00009AE3980F9F73933020F486500E947914B1 -:102D10001AC097E3980F9F73963020F489500E9451 -:102D2000A91411C091E3980F9F73963020F48F502F -:102D30000E94011508C09BE2980F9F73933018F40E -:102D400085510E949915FF91EF91BF91AF919F918D -:102D50008F917F916F915F914F913F912F910F9044 -:102D60000FBE0F901F9018958091860108959FB710 -:102D7000F89410927D019FBF90913502943009F034 -:102D800057C09091E9009F703091EC00232F217083 -:102D900030FD20E8922B24E02093E9002091EB0005 -:102DA00020FF43C02091EE0027FF3FC020917B0110 -:102DB000222321F02091E80025FF37C010927B01EB -:102DC00026E03091E80035FD15C0309135023430F1 -:102DD00061F53091EB0035FD28C0215021F481E0F0 -:102DE00080937B0122C0EFE9FFE03197F1F700C04B -:102DF0000000E7CF8093F1008091E80085FD0AC0D4 -:102E00008091E80080FFFCCF8091E8008E7780936E -:102E1000E80006C08FB7F89421E020937D018FBFB2 -:102E20009F709093E90080E008959F709093E9006F -:102E30008FEF0895CF93DF9300D01F92CDB7DEB709 -:102E40009C0180913502843019F593E099833B838E -:102E50002A839093E9008FEF9091E800815095FDCF -:102E600006C095ED9A95F1F700008111F5CF80919C -:102E7000E80085FF0DC040E050E063E070E0CE0167 -:102E800001960E94B7198091E8008E778093E80040 -:102E90000F900F900F90DF91CF910895CF93DF9314 -:102EA00000D01F92CDB7DEB720913502243021F536 -:102EB00022E029839B838A8383E08093E9008FEF5C -:102EC0009091E800815095FD06C095ED9A95F1F737 -:102ED00000008111F5CF8091E80085FF0DC040E032 -:102EE00050E063E070E0CE0101960E94B719809136 -:102EF000E8008E778093E8000F900F900F90DF919D -:102F0000CF9108959C01809135028430F9F482E0DC -:102F10008093E9009FEF8091E800915085FD06C005 -:102F200085ED8A95F1F700009111F5CF8091E800C9 -:102F300085FF0CC040E050E065E070E0C9010E94F0 -:102F4000B7198091E8008E778093E8000895CF93B9 -:102F5000DF93EC0180913502843039F581E0809374 -:102F6000E9008FEF9091E800815095FD06C095ED46 -:102F70009A95F1F700008111F5CF8091E80085FF67 -:102F800014C040E050E068E070E0CE010E94B71944 -:102F90008091E8008E778093E80088E0FE01AEE73C -:102FA000B1E001900D928A95E1F7DF91CF910895FC -:102FB00083E597E00E945D0980913402811109C088 -:102FC0000E94481B0E94A51B8091E20084608093B0 -:102FD000E20008958FE497E00E945D0910923402A8 -:102FE00008958BE497E00C945D0987E497E00C94D6 -:102FF0005D0983E497E00E945D090C94202A2091EA -:103000007C012F5F822F62E30E94AF36992319F073 -:1030100020937C01089510927C0180917D0188238A -:1030200071F180913502843041F58091E9008F7013 -:103030002091EC00922F917020FD90E8892B94E074 -:103040009093E9009091EB0090FF14C09091EE00F6 -:1030500097FF10C09091E80095FF03C01092F10017 -:10306000F9CF9091E80090FF05C09091E8009E771D -:103070009093E8008F708093E90010927D0108958D -:1030800042E061EC81E00E94C11A42E061EC82E022 -:103090000E94C11A42E061EC83E00E94C11A42E240 -:1030A00061EC84E00C94C11A80913702833009F4FA -:1030B00053C030F4813071F0823009F48CC008952F -:1030C0008A3009F478C08B3009F45EC0893009F089 -:1030D0009AC020C080913602813A09F094C0809154 -:1030E000E800877F8093E80080913A0290913B024C -:1030F000892B21F468E08EE791E003C060E080E076 -:1031000090E070E00E94021A8091E8008B77809333 -:10311000E800089580913602813209F074C08091F0 -:103120003A0290913B02892B09F06DC08091E80032 -:10313000877F8093E8008091E80082FD05C0809140 -:1031400035028111F8CF5FC08091F1008093860134 -:103150008091E8008B7753C080913602813A09F064 -:1031600052C080913A0290913B02892B09F04BC0EA -:103170008091E800877F8093E8008091E80080FFDD -:10318000FCCF80910C0136C0809136028132D9F596 -:1031900080913A0290913B02892BA9F58091E80039 -:1031A000877F8093E8000E94F61A8091380280930E -:1031B0000C010C947A2380913602813221F58091A2 -:1031C000E800877F8093E8000E94F61A8091390218 -:1031D00080938701089580913602813AA1F480910D -:1031E000E800877F8093E8008091E80080FFFCCFB3 -:1031F000809187018093F1008091E8008E77809321 -:10320000E8000C94F61A089584B7877F84BF0FB640 -:10321000F894A89580916000886180936000109276 -:1032200060000FBE80E880936100109261000E94F0 -:10323000DB1E0E94481B0E94A51B8091E200846057 -:103240008093E20087EB96E10E94A22978940E9485 -:103250002F1E0E94DD1E82E091E00E944A1E82E342 -:1032600097E00E945D0980913502853089F48EE2F5 -:1032700097E00E945D090E94DF2980913302882334 -:1032800091F30E940F2A882371F30E94A119EBCFBA -:103290000E94051FE8CF292F332723303105C9F0BD -:1032A00060F42130310581F02230310509F041C050 -:1032B00084E790E025E737E040C021323105E1F0B6 -:1032C0002232310531F135C082E190E029EE37E05C -:1032D00034C099278130910549F028F0029749F5CB -:1032E000E7E5F7E005C0E1E7F7E002C0E7E6F7E071 -:1032F000849190E09F0121C06430D8F4E62FF0E083 -:10330000EE0FFF1FEC5CFE4F2081318189E090E0E1 -:1033100014C0643070F470E0FB01EE0FFF1FE45D39 -:10332000FE4F20813181FB01E85DFE4F808190E0FE -:1033300004C080E090E020E030E0FA013183208397 -:10334000089580E189BD82E189BD09B400FEFDCF09 -:103350008091D8008F7D8093D8008091E0008260BA -:103360008093E0008091E00081FDFCCF0895CF9232 -:10337000DF92EF92FF920F931F93CF93DF93EC01B5 -:103380008B016A010E94151B811133C0C114D10445 -:1033900039F0F60180819181081B190BC80FD91FE4 -:1033A000E12CF12C0115110519F18091E80085FD42 -:1033B00016C08091E8008E778093E800C114D10494 -:1033C00049F0F60180819181E80EF91EF182E082D8 -:1033D00085E00FC00E94151B882321F30AC0899144 -:1033E0008093F10001501109FFEFEF1AFF0ADACFC5 -:1033F00080E0DF91CF911F910F91FF90EF90DF90D0 -:10340000CF90089520913C0230913D022617370756 -:1034100048F06115710539F42091E8002E7720936A -:10342000E80001C0B901FC0120E06115710579F1E6 -:10343000809135028823F1F18530F1F18091E80027 -:1034400083FD3CC08091E80082FD2EC08091E800A1 -:1034500080FFEBCF2091F3008091F20090E0922B5F -:103460006115710551F08830910538F42191209350 -:10347000F100615071090196F3CF21E0089709F03E -:1034800020E08091E8008E778093E800CECF211174 -:10349000CFCF0AC080913502882361F0853061F07A -:1034A0008091E80083FD0AC08091E80082FFF2CF9E -:1034B00080E0089582E0089583E0089581E0089512 -:1034C00020913C0230913D022617370748F06115E4 -:1034D000710539F42091E8002E772093E80001C0AF -:1034E000B901FC0120E06115710591F1809135026F -:1034F000882309F440C0853009F43FC08091E8007A -:1035000083FD3DC08091E80082FD2FC08091E800DE -:1035100080FFE9CF2091F3008091F20090E0922BA0 -:103520006115710559F08830910540F4249120937C -:10353000F1003196615071090196F2CF21E00897B0 -:1035400009F020E08091E8008E778093E800CBCFEF -:103550002111CCCF0AC080913502882361F08530DB -:1035600061F08091E80083FD0AC08091E80082FF4D -:10357000F2CF80E0089582E0089583E0089581E02D -:103580000895982F973068F59093E900981739F0CF -:103590007091EC002091ED005091F00003C0242FB9 -:1035A000762F50E021FD02C09F5FECCF3091EB0001 -:1035B0003E7F3093EB003091ED003D7F3093ED0086 -:1035C0003091EB0031603093EB007093EC0020936E -:1035D000ED005093F0002091EE0027FDE5CF80E054 -:1035E00008958F708093E90081E0089580913602FC -:1035F00087FF11C08091E80082FD05C080913502EF -:103600008111F8CF11C08091E8008B770BC08091B9 -:103610003502882349F08091E80080FFF8CF80913F -:10362000E8008E778093E80008952091E4003091BF -:10363000E50095E64091EC00842F817040FF23C0A7 -:103640008091E80080FD1DC080913502882399F0AB -:10365000853099F08091EB0085FD11C04091E40028 -:103660005091E5002417350729F3915011F09A0184 -:10367000E1CF84E0089582E0089583E0089581E039 -:10368000089580E008954091E80042FFDDCF08955D -:103690000E94B61B0E94BE1BE0EEF0E080818160BC -:1036A0008083E8EDF0E080818F77808319BCA7EDFF -:1036B000B0E08C918E7F8C9380818F7E808310927E -:1036C000340208950F931F93CF93DF930E94B61B8C -:1036D0000E94BE1BC8EDD0E088818F7788838881E7 -:1036E0008068888388818F7D888319BC1092350219 -:1036F00010923102109233021092320200EE10E06A -:10370000F80180818B7F808388818160888342E09B -:1037100060E080E00E94C11AE1EEF0E080818E7FDF -:103720008083E2EEF0E08081816080838081886028 -:103730008083F80180818E7F808388818061888387 -:10374000DF91CF911F910F910895E8EDF0E0808116 -:103750008F7E8083E7EDF0E080818160808384E06C -:1037600082BF81E0809334020C94621BE8EDF0E0AC -:1037700080818E7F80831092E20008951092DA009B -:103780001092E10008951F920F920FB60F9211242C -:103790002F933F934F935F936F937F938F939F9359 -:1037A000AF93BF93EF93FF938091E10082FF0BC033 -:1037B0008091E20082FF07C08091E1008B7F8093BF -:1037C000E1000E94FF178091DA0080FF1FC0809106 -:1037D000D80080FF1BC08091DA008E7F8093DA00D2 -:1037E0008091D90080FF0DC080E189BD82E189BD53 -:1037F00009B400FEFDCF81E0809335020E94D81706 -:1038000005C019BC109235020E94EA178091E100B0 -:1038100080FF19C08091E20080FF15C08091E20016 -:103820008E7F8093E2008091E20080618093E200CD -:103830008091D80080628093D80019BC85E0809385 -:1038400035020E94F5178091E10084FF30C080911D -:10385000E20084FF2CC080E189BD82E189BD09B40A -:1038600000FEFDCF8091D8008F7D8093D80080919D -:10387000E1008F7E8093E1008091E2008F7E809353 -:10388000E2008091E20081608093E2008091310249 -:10389000882311F084E007C08091E30087FD02C017 -:1038A00081E001C083E0809335020E94F917809186 -:1038B000E10083FF29C08091E20083FF25C0809151 -:1038C000E100877F8093E10082E0809335021092CF -:1038D00031028091E1008E7F8093E1008091E200CF -:1038E0008E7F8093E2008091E20080618093E2000D -:1038F00042E060E080E00E94C11A8091F0008860A0 -:103900008093F0000E94F117FF91EF91BF91AF916A -:103910009F918F917F916F915F914F913F912F91E7 -:103920000F900FBE0F901F9018951F920F920FB619 -:103930000F9211242F933F934F935F936F937F9335 -:103940008F939F93AF93BF93CF93DF93EF93FF93A7 -:10395000C091E900CF708091EC00D82FD17080FD2C -:10396000D0E81092E9008091F000877F8093F0000A -:1039700078940E94D91C1092E9008091F000886030 -:103980008093F000CD2BCF70C093E900FF91EF91B1 -:10399000DF91CF91BF91AF919F918F917F916F9167 -:1039A0005F914F913F912F910F900FBE0F901F90FD -:1039B00018951F93CF93DF93CDB7DEB7AA970FB6B5 -:1039C000F894DEBF0FBECDBFE6E3F2E08091F100D8 -:1039D000819322E0EE33F207C9F70E9454188091D8 -:1039E000E80083FF24C18091360290913702492F6D -:1039F00050E04A30510508F01AC1FA01E15AFF4F70 -:103A00000C94E336803881F0823809F010C180913F -:103A10003A028F708093E9008091EB0085FB882744 -:103A200080F91092E90006C0809132029091330231 -:103A3000911182609091E800977F9093E8008093C5 -:103A4000F1001092F100C8C0282F2D7F09F0EFC0BF -:103A5000882319F0823061F0EAC080913802813009 -:103A600009F0E5C0933009F080E0809333022BC069 -:103A700080913802811127C080913A028F7009F439 -:103A8000D6C08093E9002091EB0020FF1CC093304A -:103A900021F48091EB00806214C09091EB00906162 -:103AA0009093EB0021E030E0A90102C0440F551FC4 -:103AB0008A95E2F74093EA001092EA008091EB00C9 -:103AC00088608093EB001092E9008091E800877F86 -:103AD00086C08111ACC0109138021F778091E3003D -:103AE0008078812B8093E3008091E800877F80932A -:103AF000E8000E94F61A8091E80080FFFCCF8091D8 -:103B0000E30080688093E300111102C082E001C0ED -:103B100083E0809335028BC08058823008F087C0E4 -:103B200080913802909139028C3D53E0950779F5E8 -:103B300083E08A838AE289834FB7F894DE01139683 -:103B400020E03EE051E2E32FF0E050935700E49193 -:103B500020FF03C0E295EF703F5FEF708E2F90E083 -:103B6000EA3010F0C79601C0C0968D939D932F5FE9 -:103B7000243149F74FBF8091E800877F8093E800A8 -:103B80006AE270E0CE0101960E94021A14C0AE01F2 -:103B90004F5F5F4F60913A020E944B19BC01892B25 -:103BA00009F445C09091E800977F9093E8008981DF -:103BB0009A810E94601A8091E8008B778093E800D8 -:103BC00036C08038A1F58091E800877F8093E800B7 -:103BD000809131028093F1008091E8008E7780938C -:103BE000E8000E94F61A23C0811121C0809138029A -:103BF0009091390299270297D4F48091E800877F49 -:103C00008093E80080913802809331020E94F61A76 -:103C100080913102811106C08091E30087FD02C0CE -:103C200081E001C084E0809335020E9440188091B9 -:103C3000E80083FF0AC08091E800877F8093E80056 -:103C40008091EB0080628093EB00AA960FB6F89407 -:103C5000DEBF0FBECDBFDF91CF911F910895CF93EF -:103C6000809135028823A1F0C091E900CF70909136 -:103C7000EC00892F817090FD80E8C82B1092E9003C -:103C80008091E80083FD0E94D91CCF70C093E900A9 -:103C9000CF91089590938D0180938C010895E091C8 -:103CA0008C01F0918D01309721F00190F081E02D91 -:103CB000099480E00895EF92FF921F93CF93DF93D2 -:103CC000F82E192FE0918C01F0918D013097A9F118 -:103CD0000280F381E02D09958091E60182FF2DC0DD -:103CE00080FF04C086EE98E00E945D09CF2DD12FA1 -:103CF00018E080EEE82E88E0F82E8091E60180FF43 -:103D00000BC088811F928F93FF92EF920E94F60959 -:103D10000F900F900F900F90115021961111EDCF31 -:103D20008091E60180FF09C08EED98E0DF91CF9190 -:103D30001F91FF90EF900C945D09DF91CF911F913F -:103D4000FF90EF900895E0918C01F0918D013097F4 -:103D500021F00480F581E02D0994089520918A01D5 -:103D600030918B012817390771F090938B01809364 -:103D70008A01E0918C01F0918D01309721F006804D -:103D8000F781E02D099408952091880130918901EF -:103D90002817390771F09093890180938801E09189 -:103DA0008C01F0918D01309721F00084F185E02D98 -:103DB0000994089508950C94DA1E0E94542A0E94D2 -:103DC000D00E0E94222B0E949B340C94A213CF93FE -:103DD000DF931F92CDB7DEB79091E60192FF10C03E -:103DE00090FF0EC01F928F9328EF38E03F932F93E0 -:103DF00089830E94F6090F900F900F900F90898190 -:103E00000F90DF91CF910C947C0E4F925F927F9236 -:103E10008F929F92AF92BF92CF92DF92EF92FF92DA -:103E20000F931F93CF93DF9300D000D01F92CDB795 -:103E3000DEB70E94150F99E9C92E91E0D92E04E052 -:103E400010E0AA24A394B12C702E802F0E94980F0A -:103E50004C01F601529042906F01482659264114B8 -:103E60005104A1F40150110978F78FEF89838A83F7 -:103E70001B820E945D2A8160782F9D838C834981FB -:103E80005A816B818D810E94B51F38C08091E601F7 -:103E900081FD0E94A10F2DE030E07501022E02C0CD -:103EA000EE0CFF1C0A94E2F7C2018E219F21892BA0 -:103EB00009F129837A828E209F2091E0892809F4D4 -:103EC00090E09B830E945D2A8160782F9D838C8384 -:103ED00049815A816B818D810E94B51F000F111F8E -:103EE000F801E157FE4F80819181E826F926F182A1 -:103EF000E08204C02150310980F6B4CF0E949D2E8B -:103F00000E944F1E90918E018917D1F00E944F1E82 -:103F100080938E010F900F900F900F900F90DF9174 -:103F2000CF911F910F91FF90EF90DF90CF90BF90B6 -:103F3000AF909F908F907F905F904F900C94E71E72 -:103F40000F900F900F900F900F90DF91CF911F91D6 -:103F50000F91FF90EF90DF90CF90BF90AF909F9028 -:103F60008F907F905F904F900895CF93DF93CDB760 -:103F7000DEB72B970FB6F894DEBF0FBECDBF4F83D1 -:103F8000588769877A878B87DE01119686E0FD0165 -:103F900011928A95E9F785E0FE01379601900D921E -:103FA0008A95E1F749815A816B817C818D819E815F -:103FB0000E9412262B960FB6F894DEBF0FBECDBF1F -:103FC000DF91CF910895CF93C82F882309F4C1C002 -:103FD000823859F40E944F1E81FDBBC089E30E94C4 -:103FE000ED280E94732989E30CC0833879F40E947C -:103FF0004F1E80FDAEC083E50E94ED280E9473290C -:1040000083E50E940A29CF910C947329843859F4CE -:104010000E944F1E82FD9DC087E40E94ED280E94F1 -:10402000732987E4EECF8CEF8C0F813A48F48C2F04 -:104030000E94463381118DC08C2F0E94ED28E3CF62 -:1040400080E28C0F883048F4C77081E001C0880F8F -:10405000CA95EAF70E942C29D6CF8BE58C0F8330C6 -:1040600078F4C53A29F0C63A31F083E890E005C00B -:1040700081E890E002C082E890E0CF910C94AE1EFF -:1040800088E58C0F833108F064C0C83A39F1C93A29 -:1040900041F1CA3A49F1CB3A51F1CC3A59F1CD3A12 -:1040A00061F1C03B69F1CE3A71F1CF3A79F1C13B90 -:1040B00081F1C23B89F1C33B91F1C43B99F1C53B0E -:1040C000A1F1C63BA9F1C73BB1F1C83BB9F1C93B6E -:1040D000C1F1CA3BC9F180E090E038C082EE90E0C7 -:1040E00035C089EE90E032C08AEE90E02FC085EBBB -:1040F00090E02CC086EB90E029C087EB90E026C0D2 -:104100008CEC90E023C08DEC90E020C083E891E03F -:104110001DC08AE891E01AC082E991E017C084E9E5 -:1041200091E014C081E292E011C083E292E00EC0FF -:1041300084E292E00BC085E292E008C086E292E061 -:1041400005C087E292E002C08AE292E0CF910C942F -:10415000C41ECF910895882309F44BC0823859F4C6 -:104160000E944F1E81FF45C089E30E94ED280E94F6 -:10417000732989E30CC0833871F40E944F1E80FFBD -:1041800038C083E50E94ED280E94732983E50E94D0 -:104190000A290C947329843859F40E944F1E82FF17 -:1041A00028C087E40E94ED280E94732987E4EFCF9E -:1041B0009CEF980F913A58F390E2980F983050F492 -:1041C000877091E001C0990F8A95EAF7892F0E94C4 -:1041D0003229DFCF9BE5980F933020F480E090E008 -:1041E0000C94AE1E885A833120F480E090E00C9449 -:1041F000C41E0895882321F00E942C290C94732951 -:104200000895882321F00E9432290C94732908957F -:104210008F929F92AF92BF92CF92DF92EF92FF92D6 -:104220000F931F93CF93DF931F92CDB7DEB77C011F -:10423000C62E472FFC01058102950F7012811123B4 -:1042400021F079830E944929498149830E94E62807 -:104250004981882381F0112371F080E28C0D883030 -:1042600050F082E00E94CF280E94E62891E0D82EEC -:10427000D926498101C0D12CE42FE295EF708E2F11 -:1042800090E0FC01E759FF4F0C94E336842F807FC8 -:10429000042F0F70882311F00295007F112389F0FD -:1042A000002309F488C180E28C0D883020F4802F2F -:1042B0000E942C2903C0802F0E943C290E94732950 -:1042C0007AC18C2D0E94AB20002309F4AAC180E2A0 -:1042D0008C0D883020F4802F0E94322903C0802F5B -:1042E0000E9442290E9473299CC1942F907F842FA1 -:1042F0008F70903211F08295807FCC2021F0F1E018 -:10430000CF16A1F01DC0112339F0002319F101309F -:1043100009F50E945C2985C1002319F0013009F4D8 -:1043200080C189830E945F29898103C1112321F003 -:10433000063008F076C10EC0053008F072C1F9C031 -:10434000112359F0002331F0F701958190FF33C11B -:104350009F7095830E94FA2064C1002309F4E9C08C -:1043600030C1842F86958695837019F0813061F075 -:1043700058C1112321F08C2D942F937002C080E03E -:1043800090E00E94AE1E4DC1112321F08C2D942F80 -:10439000937002C080E090E00E94C41E42C18C2D48 -:1043A000112319F00E94232D02C00E948B2D0E9420 -:1043B000102E37C1842F837009F04DC0111131C107 -:1043C0002C2D229526952770220F220F6C2D6F70B1 -:1043D000862F90E0A0E0B0E04C015D01022E04C009 -:1043E000880C991CAA1CBB1C0A94D2F7C4FE12C0EC -:1043F0008FE090E0A0E0B0E004C0880F991FAA1FF2 -:10440000BB1F2A95D2F7BC01CD01609570958095B0 -:10441000909503C060E070E0CB01242F269526958F -:104420002370223051F080F4682979298A299B2948 -:10443000213071F00E945B27F4C0682979298A290C -:104440009B290E947727EDC00E945B27C501B4011C -:104450000E943F27E6C0112319F0842F817001C00C -:104460008695882309F4DDC02C2D2295269527708A -:10447000220F220F6C2D6F70862F90E0A0E0B0E02D -:104480004C015D01022E04C0880C991CAA1CBB1CA7 -:104490000A94D2F7C4FE12C08FE090E0A0E0B0E032 -:1044A00004C0880F991FAA1FBB1F2A95D2F7BC0111 -:1044B000CD01609570958095909503C060E070E0A7 -:1044C000CB01242F269526952370223051F080F4BD -:1044D000682979298A299B29213071F00E94352881 -:1044E000A0C0682979298A299B290E94512899C04E -:1044F0000E943528C501B4010E94192892C08C2D54 -:1045000090E0FC01E05EF109E531F10508F04FC0F3 -:10451000E758FF4F0C94E3360C2D0F70842F8F71EA -:10452000112321F00E94B227802F14CF0E94D3279D -:10453000802F0E94012175C0112341F0053008F041 -:1045400070C0842F8F710E94F8276BC0063008F06E -:1045500068C0F7CF112339F0842F8F710E94B227E2 -:1045600060C01123C9F3842F8F710E94D32759C0D3 -:10457000112329F0842F8F710E949D2752C00E9421 -:1045800093274FC0112351F0142F1F71812F0E94C8 -:10459000B22763E0812F0E94C62843C081E00E94B9 -:1045A000CF280230F0F182E00E94CF283AC01123D8 -:1045B00031F0002389F28C2D0E94E31F32C00023CA -:1045C00091F28C2D0E94AB202CC04F706C2DC70136 -:1045D0000E94EA0D0E94B72624C0111122C0842F28 -:1045E0008F70823099F038F4882369F08130C9F4F3 -:1045F0000E94D63416C0833061F0843091F48C2D43 -:104600000E9461350EC00E94AC340BC00E9405357B -:1046100008C00E942B3505C04F706C2DC7010E9449 -:10462000490ADD20F1F00E94C22880FD1AC0F7017E -:1046300012820E94BC280E94B227C7010E943F2319 -:104640000E94BC280F90DF91CF911F910F91FF9096 -:10465000EF90DF90CF90BF90AF909F908F900C9491 -:10466000D3270F90DF91CF911F910F91FF90EF9083 -:10467000DF90CF90BF90AF909F908F9008950F9351 -:104680001F93CF93DF93EC018B819C81892BC9F021 -:1046900089818F3F19F488818F3F99F0CE010E9464 -:1046A000B40A882371F0688179818A810E94B828D0 -:1046B0008C010E946D280E943427B801CE010E940F -:1046C0000821DF91CF911F910F9108950E944929F0 -:1046D0000E9459290E941B290E9473290E94422F7F -:1046E0000E94102E80E090E00E94AE1E80E090E0DC -:1046F0000C94C41E0E9439290C9466230E94AD2894 -:10470000292F22952F702C3030F42A3048F4225073 -:10471000223098F405C02C3061F02F3051F00DC0DC -:10472000803F69F018F4803E40F409C0843F29F4CA -:1047300006C093FB882780F9089580E0089581E002 -:104740000895CF93DF9300D000D01F92CDB7DEB78E -:104750000F900F900F900F900F90DF91CF910895D1 -:10476000CF93DF9300D000D000D0CDB7DEB7269630 -:104770000FB6F894DEBF0FBECDBFDF91CF91089585 -:104780001F93CF93DF93C091990116E080919A0116 -:10479000C81799F0D0E01C9FF0011D9FF00D112467 -:1047A000E556FE4F408151816281738184819581FC -:1047B0000E94B0232196C770E9CFDF91CF911F915E -:1047C00008954091CB015091CC016091CD01709141 -:1047D000CE018091CF019091D0010C94B0238091B3 -:1047E000D00182958F7009F054C08091CD0188234B -:1047F00009F44FC080919901A0919A014091CE0196 -:104800005091CF016091CB017091CC01B6E08A1735 -:1048100009F43FC090E041155105C1F17F3F11F40B -:104820006F3FA1F1B89FF001B99FF00D1124E5563B -:10483000FE4F218127132AC02081261327C0228101 -:10484000211124C0238134812417350710F421500D -:104850003109241B350B283C3105C0F42091D001CF -:104860002F7020612093D00126E0289FF001299F1E -:10487000F00D1124E056FE4F80818F70806180839F -:104880008BEC91E00E943F230C94C023019687702B -:10489000BECF0895CF92DF92EF92FF920F931F93B6 -:1048A000CF93DF93CDB7DEB762970FB6F894DEBF34 -:1048B0000FBECDBF8C0185E0F801DE011D96019091 -:1048C0000D928A95E1F7D8014C9111965C91119760 -:1048D00012966C918091CE019091CF01009709F4CE -:1048E00075C13091CB017091CC017F3F19F43F3FEE -:1048F00009F46CC1F801C380D480E090CD01EE20B2 -:1049000009F4BEC02091D001C816D90628F0D601FE -:10491000A81BB90BCD0104C0809590958C0D9D1DF1 -:10492000FF24F394883C910578F0F12C207F09F066 -:10493000C4C07C2DD98AC88A89890E94A1238BECA6 -:1049400091E00E943F23AFC0822F807F09F045C0D5 -:10495000571313C0431311C061110FC02F70206192 -:104960002093D0010E94E1238BEC91E00E943F2331 -:104970008091D001F80185832EC0CD2819F15F3FC9 -:1049800011F44F3FF9F0F62E61111CC0809199018E -:1049900020919A0136E0821709F45BC090E0389FBD -:1049A000F001399FF00D1124E556FE4F7181571328 -:1049B00006C07081471303C07281711103C0019654 -:1049C0008770E9CFF62E662309F41CC18091D001CF -:1049D00081608093D001F12C15C1571309C0431396 -:1049E00007C0611105C08091D001F8018583C8C05E -:1049F0004D875E878D859E856A8B0E947E236A899E -:104A00008823D1F16623C1F12091D001822F8295B4 -:104A10008F7090E0029774F08091CB019091CC015F -:104A200098878F831986DB86CA862C87CE010796E6 -:104A30000E943F2386E0F801ABECB1E001900D92BB -:104A40008A95E1F70E94EF230E94E123FF24F3946B -:104A5000D9C04D875E878D859E850E94AD28292F00 -:104A600022952F70223008F0C1C09F7009F0BBC0A2 -:104A7000805E883008F4C6C0C8010E943F23E6CF9C -:104A8000C816D90608F453C0F601E81BF90BCF018C -:104A9000883C910508F450C0F12C7C2DD98AC88A35 -:104AA00089890E94A123EBECF1E086E0DF011D92F1 -:104AB0008A95E9F70E94E123A5C0571314C0431358 -:104AC00012C0611110C08091D001F8018583C80126 -:104AD0000E943F2386E0EBECF1E0DF011D928A9516 -:104AE000E9F7FE2C8FC04D875E878D859E856A8B8A -:104AF0000E947E236A89882309F4BECF662309F4C5 -:104B0000BBCF2091D001822F82958F7090E00297C9 -:104B10000CF490CF8091CB019091CC019A83898342 -:104B20001B82DD82CC822E83CE01019681CF8095BF -:104B300090958C0D9D1DACCFF62E662309F49CCF6D -:104B4000571333C0431331C02091D00120FD24C03E -:104B5000822F82958F70482F50E041155105E1F06A -:104B6000D80115962C9315974F30510549F08F5F5A -:104B7000982F9295907F822F8F70892B15968C930A -:104B8000C8010E943F2386E0F801ABECB1E0019040 -:104B90000D928A95E1F78ECF86E0F801ABECB1E09B -:104BA00001900D928A95E1F72DC04D875E878D8526 -:104BB0009E850E947E2381113DCF8091D00181602E -:104BC0008093D001C8010E943F231CC0662309F4D2 -:104BD00053CF4D875E878D859E850E947E238823D7 -:104BE00009F44ACF27CF811143CF0CC0243008F0FD -:104BF00043CF9F7009F43CCFD80115969C91907FCC -:104C000009F036CF8F2D62960FB6F894DEBF0FBE37 -:104C1000CDBFDF91CF911F910F91FF90EF90DF906B -:104C2000CF9008951F93CF93DF93CDB7DEB72C9726 -:104C30000FB6F894DEBF0FBECDBF4F83588769878C -:104C40007A878B879C87CE0107960E944A24882307 -:104C500071F08A859B85892B09F441C088858F3F37 -:104C600009F065C08F818F3F09F061C038C086E0D0 -:104C7000FE013796DE01119601900D928A95E1F7BB -:104C80006A857B856115710551F1FF81E885EF3FEC -:104C900011F4FF3F21F120919A0130E0C901019602 -:104CA000877099274091990150E08417950709F47E -:104CB00047C0F983EA837D836C8396E0929FD0019D -:104CC000939FB00D1124A556BE4FFE013196019061 -:104CD0000D929A95E1F780939A010E94C02316E005 -:104CE0008091990190919A018917B9F1189FC0019B -:104CF000112485569E4F0E944A24882371F1E09129 -:104D000099011E9FF0011124E556FE4F408151810B -:104D100062817381848195810E94B0238091990181 -:104D200090E001968770992780939901D9CF4F81A0 -:104D3000588569857A858B859C850E94B023CFCF65 -:104D40000E947A2310929A0110929901EBECF1E003 -:104D500086E0DF011D928A95E9F72C960FB6F8944C -:104D6000DEBF0FBECDBFDF91CF911F910895EF92AF -:104D7000FF920F931F93CF93DF938C01892B09F43C -:104D80006CC0F12CEE24E394E8012196F8018491A3 -:104D9000843740F4843008F051C0813081F0823093 -:104DA00019F15BC0853709F444C0A8F19CE7980F5E -:104DB000903708F052C08F770E94AB2041C00E5F41 -:104DC0001F4FFE01849190E2980F983050F4877045 -:104DD000FE2D01C0FF0F8A95EAF78F2F0E944C2904 -:104DE00014C00E94E31F2DC00E5F1F4FFE0184916F -:104DF00090E2980F983060F48770FE2D01C0FF0F8D -:104E00008A95EAF78F2F0E9452290E94732919C0B0 -:104E10000E94AB2016C00E5F1F4FFE01C491CC2331 -:104E200081F08FE99FE00197F1F700C00000C150C9 -:104E3000F6CF0E5F1F4FFE01F49003C00E94E31FE8 -:104E40008E018F2D882309F49FCFEFE9FFE0319782 -:104E5000F1F700C000008150F5CFDF91CF911F9195 -:104E60000F91FF90EF90089508956093D50170938E -:104E7000D6018093D7019093D8010C9466230F93A9 -:104E80001F930091D5011091D6012091D701309147 -:104E9000D801DC01CB01802B912BA22BB32B80936B -:104EA000D5019093D601A093D701B093D8011F915B -:104EB0000F910C9466230F931F930091D5011091CD -:104EC000D6012091D7013091D801DC01CB0180239C -:104ED0009123A223B3238093D5019093D601A0936D -:104EE000D701B093D8011F910F910C9466230F93B3 -:104EF0001F930091D5011091D6012091D7013091D7 -:104F0000D801DC01CB0180279127A227B32780930A -:104F1000D5019093D601A093D701B093D8011F91EA -:104F20000F910C9466231092D1011092D20110922D -:104F3000D3011092D4010C94662341E050E060E06C -:104F400070E004C0440F551F661F771F8A95D2F783 -:104F50004093D1015093D2016093D3017093D40157 -:104F60000C94662341E050E060E070E004C0440F20 -:104F7000551F661F771F8A95D2F78091D1019091B6 -:104F8000D201A091D301B091D401482B592B6A2BA7 -:104F90007B2B4093D1015093D2016093D301709346 -:104FA000D4010C94662341E050E060E070E004C05E -:104FB000440F551F661F771F8A95D2F7409550956D -:104FC000609570958091D1019091D201A091D3010B -:104FD000B091D401482359236A237B234093D10104 -:104FE0005093D2016093D3017093D4010C94662343 -:104FF00041E050E060E070E004C0440F551F661FC0 -:10500000771F8A95D2F78091D1019091D201A0911A -:10501000D301B091D401482759276A277B274093B1 -:10502000D1015093D2016093D3017093D4010C94B9 -:1050300066230F931F930091D1011091D20120910B -:10504000D3013091D401DC01CB01802B912BA22B19 -:10505000B32B8093D1019093D201A093D301B0934D -:10506000D4011F910F910C9466230F931F9300910D -:10507000D1011091D2012091D3013091D401DC01F2 -:10508000CB0180239123A223B3238093D10190935A -:10509000D201A093D301B093D4011F910F910C942E -:1050A00066230F931F930091D1011091D20120919B -:1050B000D3013091D401DC01CB0180279127A227B5 -:1050C000B3278093D1019093D201A093D301B093E1 -:1050D000D4011F910F910C9466230895CF92DF9213 -:1050E000EF92FF920F931F93CF93DF938C01C090A9 -:1050F000D101D090D201E090D301F090D401809101 -:10510000D5019091D601A091D701B091D801C82ABC -:10511000D92AEA2AFB2ACFE1D0E0D701C6010C2E1A -:1051200004C0B695A795979587950A94D2F780FD08 -:1051300004C0219790F780E007C0B8018C2F0E942F -:10514000470C0197B1F38C2FDF91CF911F910F91F5 -:10515000FF90EF90DF90CF900895CF93DF93EC0115 -:105160000E946E28BE010E94470CDF91CF910895E6 -:10517000CB010E94AD2808958091D9018595859530 -:10518000859508958091D9018770089598E0899F49 -:1051900090011124262B2093D9010C94B227209141 -:1051A000D901809582238093D901982F977069F453 -:1051B00030E0482F082E000C550B2417350729F036 -:1051C0008595859585950C94D32708959091D9015F -:1051D000977081E009F480E0089520910D013091ED -:1051E0000E01F90132969FEF40E05191851789F049 -:1051F0009F3F19F4511101C0942F4F5F4630A9F71A -:105200009F3F39F0F901E90FF11D97FDFA9582836F -:105210000895089520910D0130910E01F901329603 -:10522000285F3F4F9081891301C010823196E217A9 -:10523000F307C1F7089581E090E0E0910D01F0914E -:105240000E01E80FF91F1082019688309105A9F729 -:1052500008958091E50108959091E501892B80934F -:10526000E501089580959091E50189238093E501FA -:1052700008951092E50108959091E401892B80939F -:10528000E401089580959091E40189238093E401DD -:1052900008951092E40108959091E301892B809381 -:1052A000E301089580959091E30189238093E301C0 -:1052B00008951092E30108958093DA010895109201 -:1052C000DA01089580910D0190910E01FC01319653 -:1052D0009C01285F3F4F80E0919191118F5FE21711 -:1052E000F307D1F70895E0910D01F0910E0180913F -:1052F000E5018083E0910D01F0910E019081809194 -:10530000E401892B8083E0910D01F0910E019081E1 -:105310008091E301892B80838091DA01882361F0F9 -:10532000E0910D01F0910E019081892B80830E9404 -:10533000622981111092DA0180910D0190910E0184 -:105340000C945B1E9093470180934601089520E0E2 -:10535000009739F0AC0141505109842395232F5F08 -:10536000F7CF822F08958295982F937344E0949FEE -:10537000900111248C7C86958695282B822F85752B -:10538000880F2A7A2695822B08951F93CF93DF9357 -:105390001F92CDB7DEB799830E94B329182F998148 -:1053A000892F0E94B329212F30E0322F2227A90113 -:1053B000482BCA010F90DF91CF911F9108958091E2 -:1053C0003502843051F11092E70120E488E190E049 -:1053D0000FB6F894A895809360000FBE20936000EC -:1053E00080E00E941F0A80E00E947C0E83B7817FCC -:1053F000846083BF83B7816083BF7894889583B7C7 -:105400008E7F83BF0FB6F894A89580916000886165 -:1054100080936000109260000FBE0895089580E0B0 -:105420000E941F0A0E94920E0E94150F0E940E2ACF -:105430000E94DB0F91E0811101C090E0892F089557 -:105440000E947A2380E00E941F0A0E949B340E94DF -:105450004F1E0C947C0E1F920F920FB60F921124C8 -:105460008F939F93AF93BF938091E701811113C0F6 -:105470008091E8019091E901A091EA01B091EB01DE -:105480004196A11DB11D8093E8019093E901A0937D -:10549000EA01B093EB01BF91AF919F918F910F9073 -:1054A0000FBE0F901F90189582E084BD93E095BDCC -:1054B0009AEF97BD80936E0008952FB7F89480916E -:1054C000E8019091E901A091EA01B091EB012FBFB1 -:1054D0000895CF92DF92EF92FF920F931F932FB711 -:1054E000F8944091E8015091E9016091EA017091CE -:1054F000EB012FBF6A017B01EE24FF248C0120E029 -:1055000030E0C016D106E206F30610F4415051090E -:105510009A01281B390BC9011F910F91FF90EF9041 -:10552000DF90CF9008951F920F920FB60F92112423 -:105530008F939F93AF93BF938091E8019091E9017E -:10554000A091EA01B091EB010196A11DB11D8093DC -:10555000E8019093E901A093EA01B093EB01BF91B8 -:10556000AF919F918F910F900FBE0F901F90189544 -:105570000E94481BF8942FEF87EA91E62150804063 -:105580009040E1F700C0000087E090EBDC018093E1 -:105590003F0290934002A0934102B09342029CE0EC -:1055A00088E10FB6F894A895809360000FBE9093A1 -:1055B0006000FFCFAF92BF92CF92DF92EF92FF9247 -:1055C0000F931F93CF93C4E0CC24C394D12CE82E27 -:1055D000F12C8C2F0E94980F5C010DE010E0C601A9 -:1055E000002E02C0880F991F0A94E2F78A219B219E -:1055F000892B51F0602F7C2F80E00E94ED0DE81682 -:10560000F90611F481E006C00150110940F7C150BC -:1056100000F780E0CF911F910F91FF90EF90DF9006 -:10562000CF90BF90AF900895CF93C82F8CE20E9487 -:10563000DA2A882321F08C2FCF910C94DA2A80E08B -:10564000CF910895CF930E94722C811102C00E94C5 -:10565000532C88E199E00E945D09C5E6C15049F0EC -:105660000E94150F8FE39CE90197F1F700C000003D -:10567000F5CF81E199E00E945D0989E20E94142B37 -:1056800081110FC18AE20E94142B81110E94532CB8 -:1056900085E00E94142B81110E94B82A0E947D2C63 -:1056A0008093E60187E00E94142B8823A9F18BE107 -:1056B0000E94142B882351F08091E60181FB222760 -:1056C00020F991E0922790FB81F90EC08EE00E94B4 -:1056D000142B882361F08091E60182FB222720F9B8 -:1056E00091E0922790FB82F98093E60115C080E15A -:1056F0000E94142B9091E601882341F093FB22270E -:1057000020F981E0822780FB93F904C0892F8095DE -:1057100080FB90F99093E6018091E6010E94812C34 -:105720000E948F2C90E09093F8018093F70180EE17 -:105730000E94142B882341F08091F701982F9095B7 -:1057400090FB80F98093F70189E30E94142B882352 -:1057500059F08091F70181FB222720F991E09227EF -:1057600090FB81F98093F70182EE0E94142B88232D -:1057700059F08091F70182FB222720F991E09227CE -:1057800090FB82F98093F70186EE0E94142B882308 -:1057900059F08091F70183FB222720F991E09227AD -:1057A00090FB83F98093F70183EE0E94142B8823EA -:1057B00059F08091F70184FB222720F991E092278C -:1057C00090FB84F98093F70185E30E94142B8823D2 -:1057D00059F08091F70185FB222720F991E092276B -:1057E00090FB85F98093F70181E30E94142B8823B5 -:1057F00059F08091F70186FB222720F991E092274A -:1058000090FB86F98093F70181E10E94142B882395 -:1058100059F08091F70187FB222720F991E0922728 -:1058200090FB87F98093F7018091F7010E94932CF8 -:1058300087E20E94142BC82F8EE10E94142B811145 -:10584000C2608FE10E94142B8111C46080E20E942B -:10585000142B8111C86081E20E94142B8111C06158 -:1058600082E20E94142B8111C06283E20E94142BF9 -:105870008111C06484E20E94142B882311F0C06857 -:1058800002C0CC2329F08C2F0E948A2C6C2F03C0DD -:105890000E94862C682F70E080E090E0CF910C94FD -:1058A0003527CF9108956DEE7EEF80E090E00E9465 -:1058B0001B3760E082E090E00E94FD3660E083E00C -:1058C00090E00E94FD3660E084E090E00E94FD36AA -:1058D00060E085E090E00E94FD3660E086E090E0C8 -:1058E0000C94FD3680E090E00E94F73621E08D3E7A -:1058F0009E4F09F020E0822F089582E090E00C9402 -:10590000E936682F82E090E00C94FD3683E090E069 -:105910000C94E936682F83E090E00C94FD3684E027 -:1059200090E00C94E936682F84E090E00C94FD360A -:1059300086E090E00C94E936682F86E090E00C94C5 -:10594000FD368091EE0180FF0BC06091120185E071 -:10595000689FB001112475956795759567952BC063 -:1059600081FF09C06091120185E0689FB001112498 -:105970007595679520C082FF07C06091120185E090 -:10598000689FB001112417C09091EF019923D1F0C5 -:1059900060911101961788F72091120185E0289FE8 -:1059A00090011124929FA001939F500D112470E04B -:1059B000CA010E94CF366038710540F46115710547 -:1059C00019F406C065E070E0862F08958FE708950A -:1059D00081E008958091EE0180FF08C06091100180 -:1059E00070E0759567957595679521C081FF06C034 -:1059F0006091100170E07595679519C082FF04C031 -:105A00006091100170E010C09091EF01992399F01E -:105A100060910F019617A0F780911001899FC00136 -:105A2000112470E00E94CF366038710540F4611592 -:105A3000710519F406C061E070E0862F08958FE7C4 -:105A4000089581E00895803F21F40E94A12C819562 -:105A500004C0813F29F40E94A12C8093F201089593 -:105A6000823F21F40E94A12C819504C0833F29F438 -:105A70000E94A12C8093F1010895893F19F40E949E -:105A8000EA2C05C08A3F31F40E94EA2C819580936C -:105A9000F30108958B3F21F40E94EA2C819504C004 -:105AA0008C3F29F40E94EA2C8093F4010895843FEE -:105AB00021F48091F001816017C0853F21F480912D -:105AC000F001826011C0863F21F48091F001846072 -:105AD0000BC0873F21F48091F001886005C0883FAA -:105AE00031F48091F00180618093F00108958D3F41 -:105AF00021F48091EE0181600BC08E3F21F48091F2 -:105B0000EE01826005C08F3F29F48091EE01846030 -:105B10008093EE010895803F39F48091F20187FF70 -:105B20006CC01092F20169C0813F29F48091F201AA -:105B30001816BCF362C09091F101823F29F497FFDF -:105B40005CC01092F10159C0833F19F41916CCF3CF -:105B500054C0893F41F48091F30118160CF04DC0F8 -:105B60001092F3014AC08A3F29F48091F30187FF24 -:105B700044C0F6CF8B3F39F48091F40187FF3DC0DC -:105B80001092F4013AC08C3F29F48091F401181668 -:105B9000BCF333C0843F21F48091F0018E7F17C0A5 -:105BA000853F21F48091F0018D7F11C0863F21F463 -:105BB0008091F0018B7F0BC0873F21F48091F00131 -:105BC000877F05C0883F31F48091F0018F7E8093FC -:105BD000F00113C08D3F21F48091EE018E7F0BC048 -:105BE0008E3F21F48091EE018D7F05C08F3F29F417 -:105BF0008091EE018B7F8093EE018091F101811104 -:105C00000EC08091F20181110AC08091F3018111CF -:105C100006C08091F401811102C01092EF01089535 -:105C20008091E60183FF7EC084E599E00E945D09D2 -:105C30008091F0011F928F938FE499E09F938F934F -:105C40000E94F6098DE499E00E945D098091F101BE -:105C5000282F082E000C330B3F938F938AE499E092 -:105C60009F938F930E94F60988E499E00E945D0952 -:105C70008091F201282F082E000C330B3F938F9355 -:105C800085E499E09F938F930E94F60983E499E05D -:105C90000E945D098091F301282F082E000C330B20 -:105CA0003F938F9380E499E09F938F930E94F6092E -:105CB0008EE399E00E945D098091F401282F082E5F -:105CC000000C330B3F938F938BE399E09F938F935B -:105CD0000E94F60988E399E00E945D098091EF0136 -:105CE0001F928F9385E399E09F938F930E94F6090B -:105CF00083E399E00E945D098091EE011F928F93EA -:105D000080E399E09F938F930E94F6098DE299E0DA -:105D10000E945D098DB79EB74C960FB6F8949EBF52 -:105D20000FBE8DBF80EF91E00E94A31E0E945D2AEE -:105D30009093ED018093EC0108951F93CF93DF932F -:105D40008091EC019091ED010E94692AAC01909143 -:105D5000EF01992321F02091130130E006C020913A -:105D600014018AE0289F900111244217530708F478 -:105D700085C08091F101C091F201D091F3011091A1 -:105D8000F401811107C0C11175C0D11173C0111187 -:105D900071C074C09F3F19F09F5F9093EF01181678 -:105DA00024F40E94A12C8093F1018091F10187FFDE -:105DB00005C00E94A12C81958093F1011C1624F44A -:105DC0000E94A12C8093F2018091F20187FF05C00F -:105DD0000E94A12C81958093F2016091F1016623CC -:105DE00031F1C091F201CC2311F1062E000C770B9A -:105DF000880B990B0E94B63523E333E343E35FE35B -:105E00000E941A360E947E356093F1016C2FCC0FF0 -:105E1000770B880B990B0E94B63523E333E343E3FA -:105E20005FE30E941A360E947E356093F2011D16D0 -:105E300024F40E94EA2C8093F3018091F30187FF00 -:105E400005C00E94EA2C81958093F301111624F479 -:105E50000E94EA2C8093F4018091F40187FF05C031 -:105E60000E94EA2C81958093F401DF91CF911F91DC -:105E70000C94102E9F3F09F08FCFA0CFDF91CF91D0 -:105E80001F910895E0EFF1E085E0DF011D928A9512 -:105E9000E9F71092EF011092EE01089587E79BE079 -:105EA0000E945D091F9281E08F931F9285E08F937E -:105EB00089E29BE09F938F930E94F6090F900F90C9 -:105EC0000F900F900F900F9008958330E9F128F410 -:105ED000813061F0823009F10895853009F462C0A3 -:105EE00008F449C0863009F474C008958091140103 -:105EF000262F30E0280F311D2F3F310524F4680F85 -:105F00006093140103C08FEF8093140180911401FA -:105F10001F928F9382E69AE072C080911301262F20 -:105F200030E0280F311D2F3F310524F4680F6093B6 -:105F3000130103C08FEF80931301809113011F920F -:105F40008F9380E59AE05BC080911201262F30E0AC -:105F5000280F311D2F3F310524F4680F6093120183 -:105F600003C08FEF80931201809112011F928F93D3 -:105F70008DE39AE044C080911101262F30E0280F74 -:105F8000311D2F3F310524F4680F6093110103C0C8 -:105F90008FEF80931101809111011F928F9388E2FE -:105FA0009AE02DC080911001262F30E0280F311D7E -:105FB0002F3F310524F4680F6093100103C08FEF69 -:105FC00080931001809110011F928F938FE09AE0CF -:105FD00016C080910F01262F30E0280F311D2F3F72 -:105FE000310524F4680F60930F0103C08FEF809395 -:105FF0000F0180910F011F928F9384EF99E09F937F -:106000008F930E94F6090F900F900F900F900895B4 -:10601000833081F128F4813059F08230D1F0089535 -:10602000853009F449C0B8F1863009F456C00895A6 -:1060300080911401681720F4861B8093140102C01C -:1060400010921401809114011F928F9385EE99E0B4 -:1060500054C080911301681720F4861B80931301AC -:1060600002C010921301809113011F928F9383ED50 -:1060700099E043C080911201681720F4861B809339 -:10608000120102C010921201809112011F928F938F -:1060900080EC99E032C080911101681720F4861BD2 -:1060A0008093110102C010921101809111011F9281 -:1060B0008F938BEA99E021C080911001681720F43A -:1060C000861B8093100102C0109210018091100174 -:1060D0001F928F9382E999E010C080910F01681799 -:1060E00020F4861B80930F0102C010920F01809153 -:1060F0000F011F928F9387E799E09F938F930E94E0 -:10610000F6090F900F900F900F900895CF93C82F1E -:106110001F928F938CE79CE09F938F930E94F609C8 -:1061200081E090E0A0E0B0E0BC01CD0104C0660FCA -:10613000771F881F991FCA95D2F70E9435270F90A5 -:106140000F900F900F90CF910C947A23CF938732BA -:10615000B0F58E3108F088C28E3009F402C200F525 -:10616000873009F4CBC1A8F4863009F083C280914E -:10617000E601817F8E7F8093E60183ED9DE00E94A2 -:106180005D0987EA91E10E945D0981E08093F60153 -:10619000B3C1883009F43FC08B3009F4A9C16AC289 -:1061A000863109F424C220F4803109F4EEC162C2C0 -:1061B000893109F405C28B3109F4BFC15BC2883350 -:1061C00009F496C150F4893209F450C2853309F4B8 -:1061D0004DC2873209F44AC24DC2833409F446C223 -:1061E00028F48A3308F446C2895341C2883409F03E -:1061F00041C20E947A238BE891E10E945D099FEFE2 -:1062000023ED80E3915020408040E1F700C0000082 -:106210000E94B82A71C18BEA91E10E945D098DE06C -:1062200091E10E945D090E94862C1F928F938AE063 -:1062300091E19F938F930E94F60988E091E10E947B -:106240005D090E947D2CC82F85EF90E10E945D09B9 -:106250001F92CF9380EF90E19F938F930E94F60956 -:106260008EEE90E10E945D0984EE90E10E945D094E -:106270008C2F81701F928F9381EE90E19F938F936B -:106280000E94F6098FED90E10E945D0985ED90E195 -:106290000E945D09C1FB882780F91F928F9382EDD0 -:1062A00090E19F938F930E94F60980ED90E10E9408 -:1062B0005D0984EC90E10E945D09C2FB882780F9AA -:1062C0001F928F9381EC90E19F938F930E94F60928 -:1062D0008FEB90E10E945D0986EB90E10E945D09E1 -:1062E000C3FBCC27C0F91F92CF9383EB90E19F9320 -:1062F0008F930E94F60981EB90E10E945D090E9454 -:106300008F2CC82F8DE990E10E945D091F92CF93D9 -:1063100088E990E19F938F930E94F60986E990E1C6 -:106320000E945D098DE790E10E945D098C2F8170CC -:106330001F928F938AE790E19F938F930E94F609B3 -:106340008DB79EB780960FB6F8949EBF0FBE8DBFD7 -:1063500088E790E10E945D0981E690E10E945D0975 -:10636000C1FB882780F91F928F938EE590E19F9360 -:106370008F930E94F6098CE590E10E945D098AE402 -:1063800090E10E945D09C2FB882780F91F928F93DC -:1063900087E490E19F938F930E94F60985E490E152 -:1063A0000E945D0983E390E10E945D09C3FB882799 -:1063B00080F91F928F9380E390E19F938F930E94C7 -:1063C000F6098EE290E10E945D0984E290E10E946C -:1063D0005D09C4FB882780F91F928F9381E290E1C9 -:1063E0009F938F930E94F6098FE190E10E945D09CF -:1063F0008DE090E10E945D09C5FB882780F91F921E -:106400008F938AE090E19F938F930E94F60988E032 -:1064100090E10E945D098CEE9FE00E945D09C6FB41 -:10642000882780F91F928F9389EE9FE09F938F9327 -:106430000E94F60987EE9FE00E945D098FED9FE0C4 -:106440000E945D09C7FBCC27C0F91F92CF938CED4A -:106450009FE09F938F930E94F6098AED9FE00E9430 -:106460005D090E94982CC82F83EC9FE00E945D0973 -:106470001F92CF938EEB9FE09F938F930E94F6091C -:106480008DB79EB780960FB6F8949EBF0FBE8DBF96 -:106490008CEB9FE00E945D0982EB9FE00E945D090A -:1064A0008C2F81701F928F938FEA9FE09F938F9321 -:1064B0000E94F6098DEA9FE00E945D0984EA9FE050 -:1064C0000E945D09C6951F92CF9381EA9FE09F933A -:1064D0008F930E94F6098FE99FE00E945D098DB7B6 -:1064E0009EB708960FB6F8949EBF0FBE8DBF04C02E -:1064F0008AEF9DE00E945D09C1E0C1C08091E60184 -:10650000C82FC095C170C0FB80F98093E601CC23F1 -:1065100049F08FE791E10E945D098091E601866074 -:10652000886048C082E791E10E945D098091E601A0 -:10653000897F877F8093E601DFCF9091E60191FB11 -:10654000CC27C0F981E0C827892FC0FB81F980934F -:10655000E601CC2319F085E691E127C087E591E1BA -:10656000C9CF9091E60192FBCC27C0F981E0C82702 -:10657000892FC0FB82F98093E601CC2319F088E4CF -:1065800091E113C088E391E1B5CF9091E60193FBCF -:10659000CC27C0F981E0C827892FC0FB83F98093FD -:1065A000E601CC2351F08CE291E10E945D098091DB -:1065B000E60181608093E60162C08FE191E19ACFAC -:1065C00084EC9DE00E945D098BEA9DE00E945D09DC -:1065D00089E79DE00E945D0982E59DE00E945D09DA -:1065E00082E19DE00E945D0987EE9CE083CF89ED0A -:1065F0009CE00E945D090E944F1E1F928F938FEBBB -:106600009CE09F938F930E94F60980910C011F924A -:106610008F9388EA9CE09F938F930E94F609809164 -:1066200087011F928F9385E99CE09F938F930E942F -:10663000F6098091E8019091E901A091EA01B091F9 -:10664000EB01BF93AF939F938F9381E89CE09F935F -:106650008F930E94F6098DB79EB742960FB6F894B5 -:106660009EBF0FBE8DBF48CF8D5101C080E00E94FC -:10667000863042CF8DE191E10E945D09C0E08C2F10 -:10668000CF91089580E008950C944233CF93C82FA2 -:106690008091F601813071F020F0823009F44BC016 -:1066A00042C1E0910D01F0910E018081823209F02A -:1066B0003CC107C0E0910D01F0910E018081823252 -:1066C00061F48C2F0E944433811104C08C2F0E94EE -:1066D000A6302FC081E090E02CC08C2F0E94423366 -:1066E000811126C0C431E1F070F4CB3081F0C031AB -:1066F000D1F40E944E2F84E79CE00E945D0982E065 -:106700008093F60115C0C93259F0C83361F483EDA6 -:106710009DE00E945D0988E79CE00E945D0908C039 -:106720001092F60104C182E79CE00E945D09FFC05F -:1067300081E08170FEC0C43228F5CE3108F0C1C0BE -:10674000CB30A1F1D0F4C73009F0D3C08EE18093F3 -:10675000140182E3809313018AE08093120184E1A3 -:106760008093110188E08093100188E280930F01EB -:1067700088E19BE00E945D09BFC0C33149F1C4318B -:10678000C1F0B7C0CB3409F4A9C028F4C93289F0EC -:10679000C83361F0AEC0C13509F49EC0C23509F4FA -:1067A00099C0CE3409F0A5C06AE09EC00E944E2F69 -:1067B000A3C08091F501882319F01092F5019CC0C7 -:1067C00085E29BE00E945D0981E08093F601B1C003 -:1067D0008FEF9AE00E945D098DEE9AE00E945D09BC -:1067E000809114011F928F938AEE9AE09F938F936A -:1067F0000E94F60988EE9AE00E945D0986ED9AE013 -:106800000E945D09809113011F928F9383ED9AE09E -:106810009F938F930E94F60981ED9AE00E945D0993 -:1068200082EC9AE00E945D09809112011F928F9381 -:106830008FEB9AE09F938F930E94F6098DEB9AE07D -:106840000E945D098CEA9AE00E945D098091110125 -:106850001F928F9389EA9AE09F938F930E94F60983 -:1068600087EA9AE00E945D0982E99AE00E945D0948 -:10687000809110011F928F938FE89AE09F938F93DE -:106880000E94F6098DE89AE00E945D0986E79AE089 -:106890000E945D0980910F011F928F9383E79AE018 -:1068A0009F938F930E94F60981E79AE00E945D0909 -:1068B0008DB79EB748960FB6F8949EBF0FBE8DBF9A -:1068C0001BC0CE51EC2FF0E0E45CFE4F8081809342 -:1068D000F50112C061E003C061E006C06AE080918A -:1068E000F5010E94652F08C08091F5010E940830D3 -:1068F00003C086E19BE013C08091F501882369F015 -:106900001F928F9380E19BE09F938F930E94F609E3 -:106910000F900F900F900F9004C08DE09BE00E94AD -:106920005D0981E006C01092F60180E002C080E0BF -:1069300000CFCF9108950E94722C811102C00E9455 -:10694000532C0E94982C80933E0280FF02C08695B3 -:1069500001C080E00C941F0A80913E02982F96950A -:10696000292F30E0233031054CF49F5F990F81705F -:10697000892B816080933E020E949C2C8091E601CD -:1069800080FF0FC080913E0286951F928F9388EF03 -:1069900091E19F938F930E94F6090F900F900F90B3 -:1069A0000F9080913E0286950C941F0A80913E02C2 -:1069B000982F969591F09158990F8170892B80931B -:1069C0003E028E7F91E009F490E080913E0290FBC0 -:1069D00080F980933E020E949C2C8091E60180FF0A -:1069E0000FC080913E0286951F928F9380EE91E1B9 -:1069F0009F938F930E94F6090F900F900F900F9026 -:106A000080913E0286950C941F0A80913E02982F39 -:106A1000909590FB80F980933E020E949C2C80917F -:106A2000E60180FF0FC080913E0281701F928F931C -:106A30008AEC91E19F938F930E94F6090F900F903B -:106A40000F900F9080913E0280FF02C0869501C09A -:106A500080E00C941F0A90913E02892F86958F5FEB -:106A60008F779170843028F4880F892B80933E02B1 -:106A700002C090933E0280913E028E7F91E009F425 -:106A800090E080913E0290FB80F980933E020E944C -:106A90009C2C8091E60180FF0FC080913E0286957C -:106AA0001F928F9386EB91E19F938F930E94F6093B -:106AB0000F900F900F900F9080913E0286950C944E -:106AC0001F0A20913E02922F96958927982F990FA1 -:106AD000822F8170892B80933E028E7F91E009F492 -:106AE00090E080913E0290FB80F980933E020E94EC -:106AF0009C2C80913E0286950C941F0A0E9485353D -:106B00006894B1110C94143608950E94F93588F0F8 -:106B10009F5798F0B92F9927B751B0F0E1F0660F61 -:106B2000771F881F991F1AF0BA95C9F714C0B130A2 -:106B300091F00E941336B1E008950C941336672F3C -:106B4000782F8827B85F39F0B93FCCF386957795D1 -:106B50006795B395D9F73EF49095809570956195BA -:106B60007F4F8F4F9F4F0895E89409C097FB3EF4E5 -:106B700090958095709561957F4F8F4F9F4F99238A -:106B8000A9F0F92F96E9BB279395F6958795779508 -:106B90006795B795F111F8CFFAF4BB0F11F460FFC8 -:106BA0001BC06F5F7F4F8F4F9F4F16C0882311F020 -:106BB00096E911C0772321F09EE8872F762F05C034 -:106BC000662371F096E8862F70E060E02AF09A95CF -:106BD000660F771F881FDAF7880F9695879597F9C4 -:106BE000089557FD9058440F551F59F05F3F71F0BD -:106BF0004795880F97FB991F61F09F3F79F0879524 -:106C00000895121613061406551FF2CF4695F1DFAC -:106C100008C0161617061806991FF1CF869571053C -:106C2000610508940895E894BB2766277727CB0170 -:106C300097F908950E942D360C949E360E94903646 -:106C400038F00E94973620F0952311F00C94873687 -:106C50000C948D3611240C9414360E94F13570F387 -:106C6000959FC1F3950F50E0551F629FF001729FF1 -:106C7000BB27F00DB11D639FAA27F00DB11DAA1F00 -:106C8000649F6627B00DA11D661F829F2227B00D4D -:106C9000A11D621F739FB00DA11D621F839FA00DD8 -:106CA000611D221F749F3327A00D611D231F849F28 -:106CB000600D211D822F762F6A2F11249F5750407F -:106CC0009AF0F1F088234AF0EE0FFF1FBB1F661FFA -:106CD000771F881F91505040A9F79E3F510580F0C3 -:106CE0000C9487360C9414365F3FE4F3983ED4F34B -:106CF000869577956795B795F795E7959F5FC1F767 -:106D0000FE2B880F911D9695879597F9089597F911 -:106D10009F6780E870E060E008959FEF80EC089541 -:106D200000240A941616170618060906089500246A -:106D30000A9412161306140605060895092E0394E4 -:106D4000000C11F4882352F0BB0F40F4BF2B11F458 -:106D500060FF04C06F5F7F4F8F4F9F4F0895991B57 -:106D600079E004C0991F961708F0961B881F7A9542 -:106D7000C9F780950895AA1BBB1B51E107C0AA1F44 -:106D8000BB1FA617B70710F0A61BB70B881F991FCC -:106D90005A95A9F780959095BC01CD01089597FB70 -:106DA000072E16F4009407D077FD09D00E94BB3659 -:106DB00007FC05D03EF4909581959F4F08957095FE -:106DC00061957F4F0895EE0FFF1F0590F491E02D20 -:106DD0000994F999FECF92BD81BDF89A992780B5A3 -:106DE0000895A6E1B0E044E050E00C942337A8E118 -:106DF000B0E042E050E00C942337262FF999FECF03 -:106E000092BD81BDF89A019700B4021639F01FBAFD -:106E100020BD0FB6F894FA9AF99A0FBE089503961A -:106E2000272F0E94FE360E94FD36252F0E94FE3637 -:106E3000242F0C94FE360196272F0E94FE360C94C8 -:106E4000FD36DC01CB01FC01F999FECF06C0F2BD95 -:106E5000E1BDF89A319600B40D9241505040B8F718 -:066E60000895F894FFCF35 -:106E6600FFFFB416A71782174E171A1701DB012862 -:106E760008140A321E0F1F6C7666734913035343B8 -:106E860079693309196F7F59404D36209E0851089C -:106E96001B08FB078707A007B907D20701020304EF -:066EA600050607080900C3 -:00000001FF diff --git a/keyboards/kc60/keymaps/stanleylai/readme.md b/keyboards/kc60/keymaps/stanleylai/readme.md new file mode 100644 index 000000000..1db72610d --- /dev/null +++ b/keyboards/kc60/keymaps/stanleylai/readme.md @@ -0,0 +1,26 @@ +Stanley Lai's Split Right Shift with Dedicated Arrow Keys +====================== + +![Image of KC60 with RGB Underglow](../ws2812/ws2812_example.jpg) + +## Quantum MK Firmware +For the full Quantum feature list, see [the parent readme.md](/readme.md). + +## Keymap Notes +- Keymap setup with split Right Shift in mind. +- Right-side modifiers are setup as dedicated arrow keys + +### Base Layer Reference +- Fn Layer indicated on keycap front legends. +- Tapping Caps Lock key toggles Caps. Holding it down momentarily switches us to the Fn Layer. +- Holding down "Fn" and "Page Down" momentarily switches us to the RGB Layer. Tapping "Page Down" behaves as expected. +![Base Layer](base_layer.jpg) + +### RGB Layer Reference +![RGB Layer](rgb_layer.jpg) + +## WS2812 Support +By default, it is now setup for 16 LEDs on the PF5 breakout pin. See [included image](../ws2812/ws2812_wiring.jpg) for wiring reference. + +### Build +To build this keymap, simply run `make KEYMAP=stanleylai`. diff --git a/keyboards/kc60/keymaps/ws2812/README.md b/keyboards/kc60/keymaps/ws2812/README.md deleted file mode 100644 index af76f7ab1..000000000 --- a/keyboards/kc60/keymaps/ws2812/README.md +++ /dev/null @@ -1,21 +0,0 @@ -KC60 with WS2812 RGB Underglow -====================== - -![Image of KC60 with RGB Underglow](ws2812_example.jpg) - -## Quantum MK Firmware -For the full Quantum feature list, see [the parent README.md](/README.md). - -## WS2812 Support -By default, it is now setup for 16 LEDs on the PF5 breakout pin. See [included image](ws2812_wiring.jpg) for wiring reference. - -### Build -To build this keymap with WS2812 enabled, simply run `make KEYMAP=ws2812`. - -### Reference Images -![Wiring Reference](ws2812_wiring.jpg) -![RGB Strip turned on](ws2812_underside-lit.jpg) -![RGB Strip turned off](ws2812_underside.jpg) - -### Additional Credits -Keymap based on work by [TerryMatthews](https://github.com/TerryMathews) for GH60 Satan. diff --git a/keyboards/kc60/keymaps/ws2812/compiled.hex b/keyboards/kc60/keymaps/ws2812/compiled.hex deleted file mode 100644 index c9580d3c6..000000000 --- a/keyboards/kc60/keymaps/ws2812/compiled.hex +++ /dev/null @@ -1,1764 +0,0 @@ -:100000000C94C2080C9409090C9409090C94090970 -:100010000C9409090C9409090C9409090C94090918 -:100020000C9409090C9409090C947D1B0C944F1C29 -:100030000C94E5290C9409090C9409090C940909FC -:100040000C9409090C9409090C9409090C940909E8 -:100050000C9409090C944D2A0C9409090C94090973 -:100060000C9409090C9409090C9409090C940909C8 -:100070000C9409090C9409090C9409090C940909B8 -:100080000C941C160C9409090C9409090C94090988 -:100090000C9409090C9409090C9409090C94090998 -:1000A0000C9409090C9409090C940909110A2E0AE7 -:1000B0005F0A350A3C0A430A4A0A510A580ABC1C1C -:1000C000DE1CD11DDE1CD11D231D461DD11D9B1D17 -:1000D000AE1D002100212F212F216B218921CB2250 -:1000E000CB229421CB22392239229F22A722CB2254 -:1000F000C622462246224622462246224622462240 -:1001000046224622462246224622462246224622AF -:100110004622562264226B2272227C2200F001F0D9 -:1001200002F003F004F005F006F007F008F00020FC -:100130001E001F00200021002200230024002500B3 -:10014000260027002D002E002A002B0014001A0084 -:100150000800150017001C0018000C001200130006 -:100160002F0030003100390004001600070009009C -:100170000A000B000D000E000F00330034000000D9 -:100180002800E10000001D001B000600190005000A -:10019000110010003600370038000000E500E000D4 -:1001A000E300E200000000002C000000000000005E -:1001B0000000E600E7000151E40035003A003B0092 -:1001C0003C003D003E003F00400041004200430033 -:1001D000440045004C0001000100520001000100F4 -:1001E0000100010001000100010001002F703070CA -:1001F00031700100500051004F000100010001006A -:1002000001000100010001000100010001000100E6 -:1002100001000120022003200420052006200720E1 -:10022000082001000100010001000100010001009F -:1002300000000000010000000000000000000100BC -:100240000100010000700A44454255473A20656E9E -:1002500061626C65642E0A005374617465206F6678 -:1002600020726F772025583A2025303136620A00F7 -:1002700048756D616E2D7265616461626C65206D9B -:1002800061747269782073746174653A0D0A004470 -:1002900065626F756E63696E672064656C61792055 -:1002A00072656D61696E696E673A2025580A00545F -:1002B000494D4552332064697361626C65642E0A4E -:1002C0000054494D45523320656E61626C65642E61 -:1002D0000A007267626C69676874207365742068CD -:1002E0007376205B454550524F4D5D3A2025752C65 -:1002F00025752C25750A007267626C696768742021 -:10030000746F67676C653A207267626C69676874BE -:100310005F636F6E6669672E656E61626C65203D16 -:100320002025750A007267626C69676874206D6FBA -:1003300064653A2025750A007267626C69676874A3 -:100340005F696E6974207267626C696768745F6365 -:100350006F6E6669672E6D6F6465203D20302E20BC -:1003600057726974652064656661756C7420766186 -:100370006C75657320746F20454550524F4D2E0AA1 -:10038000007267626C696768745F696E6974206582 -:1003900065636F6E666967206973206E6F74206590 -:1003A0006E61626C65642E0A007267626C696768D0 -:1003B000745F696E6974207374617274210A0072CB -:1003C00067626C696768745F696E69742063616CE9 -:1003D0006C65642E0A007267626C696768745F639B -:1003E0006F6E6669672E76616C203D2025640A0079 -:1003F0007267626C696768745F636F6E6669672EA7 -:10040000736174203D2025640A007267626C69671D -:1004100068745F636F6E6669672E687565203D203E -:1004200025640A007267686C696768745F636F6E41 -:100430006669672E6D6F6465203D2025640A007231 -:1004400067626C696768745F636F6E6669672E6563 -:100450006E61626C65203D2025640A007267626CE3 -:10046000696768745F636F6E666967206570726F35 -:100470006D0A006565636F6E6669675F75706461BC -:1004800074655F7267626C696768745F64656661F2 -:10049000756C740A00643214643214783C1E1E14A5 -:1004A0000A0500000000010101020203040505061F -:1004B00007090A0B0C0E0F1112141517191B1D1F1B -:1004C000212325282A2C2F313436393B3E414346FF -:1004D000494C4F5255585A5D6164676A6D70737626 -:1004E000797C7F8386898C8F9295989B9EA2A5A705 -:1004F000AAADB0B3B6B9BCBEC1C4C6C9CBCED0D309 -:10050000D5D7DADCDEE0E2E4E6E8EAEBEDEEF0F1A6 -:10051000F3F4F5F6F8F9FAFAFBFCFDFDFEFEFEFF3A -:10052000FFFFFFFFFFFFFEFEFEFDFDFCFBFAFAF9F9 -:10053000F8F6F5F4F3F1F0EEEDEBEAE8E6E4E2E0EC -:10054000DEDCDAD7D5D3D0CECBC9C6C4C1BEBCB9E8 -:10055000B6B3B0ADAAA7A5A29E9B9895928F8C89A1 -:100560008683807C797673706D6A6764615D5A58A2 -:1005700055524F4C494643413E3B393634312F2C7E -:100580002A282523211F1D1B1917151412110F0EC0 -:100590000C0B0A090706050504030202010101000C -:1005A000000000010102020202020203030303032E -:1005B0000303030303030303030404040404040404 -:1005C00004040404040505050505050505050506DF -:1005D00006060606060606070707070707070808B0 -:1005E000080808080909090909090A0A0A0A0A0B78 -:1005F0000B0B0B0B0C0C0C0C0C0D0D0D0D0E0E0E35 -:100600000E0F0F0F101010101111111212121313E0 -:100610001314141415151616161717181819191976 -:100620001A1A1B1B1C1C1D1D1E1E1F2020212122EF -:1006300023232424252626272828292A2B2B2C2D42 -:100640002E2F30303132333435363738393A3B3C5F -:100650003D3E3F40414244454647494A4B4C4E4F40 -:100660005152535556585A5B5D5E606263656769C7 -:100670006B6D6E70727476797B7D7F818486888BDA -:100680008D909295979A9D9FA2A5A8ABAEB1B4B755 -:10069000BABEC1C4C8CBCFD3D6DADEE2E6EAEEF208 -:1006A000F8FF5B735D004B6579626F617264207364 -:1006B000746172742E0A005B575D005B535D005BD2 -:1006C000525D005B445D005B435D000E036B0063A5 -:1006D0000036003000760032000000080359006F39 -:1006E00000750000000403090409027400040100FD -:1006F000A0FA090400000103010100092111010011 -:10070000012240000705810308000A0904010001D5 -:1007100003010200092111010001224D0007058299 -:100720000308000A09040200010300000009211166 -:100730000100012236000705830308000A090403AB -:10074000000203000000092111010001222000071E -:100750000584032000010705040320000112011095 -:100760000100000008EDFE606001000102000106CA -:1007700031FF0974A1010975150025FF9520750841 -:1007800081020976150025FF952075089102C005A4 -:10079000010980A101850216010026B7001A010097 -:1007A0002AB700751095018100C0050C0901A1014F -:1007B0008503160100269C021A01002A9C0275106E -:1007C00095018100C005010902A1010901A10005EF -:1007D0000919012905150025019505750181029565 -:1007E00001750381010501093009311581257F95C6 -:1007F000027508810609381581257F9501750881E4 -:1008000006050C0A38021581257F950175088106B9 -:10081000C0C005010906A101050719E029E7150077 -:10082000250195087501810295017508810105086A -:10083000190129059505750191029501750391012D -:100840000507190029FF150026FF00950675088188 -:1008500000C00A002530325820006B6579626F6154 -:1008600072645F7265706F72743A20004B657962D2 -:100870006F617264204C4544732073746174653AEF -:100880002025780A00646F6E652E0A00626F6F671C -:100890006D61676963207363616E3A202E2E2E208E -:1008A00000290A002575002F002575005D28002508 -:1008B00064002000256400200025640020002564D9 -:1008C000007C0025303258006D6F7573656B65795B -:1008D000205B62746E7C782079207620685D2872B7 -:1008E00065702F61636C293A205B006D6B5F7768E0 -:1008F00065656C5F74696D655F746F5F6D617820AD -:100900003D2025640A006D6B5F776865656C5F6DDF -:1009100061785F7370656564203D2025640A006D11 -:100920006B5F74696D655F746F5F6D6178203D20EA -:1009300025640A006D6B5F6D61785F737065656437 -:10094000203D2025640A006D6B5F696E74657276C8 -:10095000616C203D2025640A006D6B5F64656C61ED -:1009600079203D2025640A006D6B5F776865656CB2 -:100970005F74696D655F746F5F6D6178203D2025E0 -:10098000640A006D6B5F776865656C5F6D61785FA9 -:100990007370656564203D2025640A006D6B5F748B -:1009A000696D655F746F5F6D6178203D2025640A15 -:1009B000006D6B5F6D61785F7370656564203D20CD -:1009C00025640A006D6B5F696E74657276616C20D8 -:1009D0003D2025640A006D6B5F64656C6179203D84 -:1009E0002025640A000A00257500363A20776865DC -:1009F000656C5F74696D655F746F5F6D61783A20D7 -:100A0000000A00257500353A20776865656C5F6DD2 -:100A100061785F73706565643A20000A002575008F -:100A2000343A2074696D655F746F5F6D61783A2048 -:100A3000000A00257500333A206D61785F73706598 -:100A400065643A20000A00257500323A20696E7408 -:100A5000657276616C286D73293A20000A0025754D -:100A600000313A2064656C6179282A31306D732930 -:100A70003A20000A092D2056616C756573202D0AF5 -:100A8000004D3E004D25643E20003F0073657420FC -:100A900064656661756C740A00433E200077686582 -:100AA00072652064656C74613A20637572736F724D -:100AB0003D25642C20776865656C3D25640A536587 -:100AC0006520687474703A2F2F656E2E77696B6994 -:100AD00070656469612E6F72672F77696B692F4D3E -:100AE0006F7573655F6B6579730A000A092D204D78 -:100AF0006F7573656B6579202D0A4553432F713AE5 -:100B000009717569740A313A0964656C6179282A3A -:100B100031306D73290A323A09696E7465727661F3 -:100B20006C286D73290A333A096D61785F737065BB -:100B300065640A343A0974696D655F746F5F6D614D -:100B4000780A353A09776865656C5F6D61785F731F -:100B5000706565640A363A09776865656C5F746923 -:100B60006D655F746F5F6D61780A0A703A09707223 -:100B7000696E742076616C7565730A643A097365F1 -:100B8000742064656661756C74730A75703A092B1C -:100B9000310A646F776E3A092D310A706775703AC1 -:100BA000092B31300A7067646F776E3A092D313046 -:100BB0000A0A7370656564203D2064656C74612069 -:100BC0002A206D61785F7370656564202A20287221 -:100BD0006570656174202F2074696D655F746F5F47 -:100BE0006D6178290A003F004D3E2000433E200001 -:100BF0004C25640A0074696D65725F636F756E746D -:100C00003A202530346C580A006B6579626F617246 -:100C1000645F69646C653A2025580A006B657962E7 -:100C20006F6172645F70726F746F636F6C3A2025CE -:100C3000580A00686F73745F6B6579626F617264E4 -:100C40005F6C65647328293A2025580A000A092D2B -:100C500020537461747573202D0A004743433A2072 -:100C6000352E332E30204156522D4C4942433A20E6 -:100C7000322E302E30204156525F415243483A20A6 -:100C8000617672350A004F5054494F4E533A204C0A -:100C900055464120424F4F544D41474943204D4F07 -:100CA0005553454B45592045585452414B455920C1 -:100CB000434F4E534F4C4520434F4D4D414E4420E2 -:100CC000343039360A004255494C443A20756E6B2F -:100CD0006E6F776E202830323A35383A3435204AF4 -:100CE000756E2032312032303136290A005649449F -:100CF0003A2030784645454428596F752920504997 -:100D0000443A20307836303630286B6336307632CD -:100D100029205645523A203078303030310A00448C -:100D20004553433A204120637573746F6D206B65A2 -:100D300079626F6172640A000A092D205665727328 -:100D4000696F6E202D0A000A092D20436F6E736FA4 -:100D50006C65202D0A4553432F713A0971756974EA -:100D60000A6D3A096D6F7573656B65790A000A093A -:100D70002D204D61676963202D0A443A094465625C -:100D80007567204D65737361676520546F67676C85 -:100D9000650A583A094D6174726978204465627534 -:100DA00067204D6F646520546F67676C65202D2048 -:100DB00053686F77206B6579707265737365732004 -:100DC000696E206D617472697820677269640A4B7C -:100DD0003A094B6579626F61726420446562756798 -:100DE00020546F67676C65202D2053686F77206BE8 -:100DF00065797072657373207265706F72740A4DD5 -:100E00003A094465627567204D6F75736520546FAC -:100E100067676C650A563A0956657273696F6E0AA0 -:100E2000533A095374617475730A433A0941637400 -:100E3000697661746520436F6E736F6C65204D6FCA -:100E400064650A46312D4631303A09537769746337 -:100E50006820746F204C6179657220302D3920280C -:100E6000463130203D204C30290A302D393A095383 -:100E7000776974636820746F204C617965722030E3 -:100E80002D390A4553433A095377697463682074CE -:100E90006F204C6179657220302028616C74657216 -:100EA0006E617465206B65792031290A475241567D -:100EB000453A0953776974636820746F204C6179EF -:100EC000657220302028616C7465726E61746520D3 -:100ED0006B65792032290A50415553453A094A75C4 -:100EE0006D7020746F20426F6F746C6F61646572F7 -:100EF00020285265736574290A453A095072696E53 -:100F00007420454550524F4D2053657474696E6787 -:100F1000730A000A002575002E6C6576656C3A2010 -:100F2000000A002575002E656E61626C653A20002E -:100F30000A0025303258006261636B6C696768741F -:100F40005F636F6E6669672E7261773A20000A00F0 -:100F50002575002E6E6B726F3A20000A0025750011 -:100F60002E737761705F6261636B736C6173685F2E -:100F70006261636B73706163653A20000A002575D6 -:100F8000002E737761705F67726176655F6573636A -:100F90003A20000A002575002E6E6F5F6775693A6A -:100FA00020000A002575002E737761705F72616CF6 -:100FB000745F726775693A20000A002575002E7308 -:100FC0007761705F6C616C745F6C6775693A200063 -:100FD0000A002575002E636170736C6F636B5F741C -:100FE0006F5F636F6E74726F6C3A20000A00257534 -:100FF000002E737761705F636F6E74726F6C5F63E6 -:101000006170736C6F636B3A20000A0025303258B0 -:10101000006B65796D61705F636F6E6669672E72D4 -:1010200061773A20000A002575002E6D6F75736593 -:101030003A20000A002575002E6B6579626F617297 -:10104000643A20000A002575002E6D61747269787B -:101050003A20000A002575002E656E61626C653AC3 -:1010600020000A00253032580064656275675F63AE -:101070006F6E6669672E7261773A20000A002575E7 -:101080000064656661756C745F6C617965723A20A5 -:10109000003F000A6D6F7573653A206F66660A003F -:1010A0000A6D6F7573653A206F6E0A000A6B657979 -:1010B000626F6172643A206F66660A000A6B657936 -:1010C000626F6172643A206F6E0A000A6D61747219 -:1010D00069783A206F66660A000A6D6174726978F1 -:1010E0003A206F6E0A000A64656275673A206F667F -:1010F000660A000A64656275673A206F6E0A000A24 -:101100000A4A756D70696E6720746F20626F6F7424 -:101110006C6F616465722E2E2E2000433E200065A8 -:1011200065636F6E6669673A0A006261636B6C693A -:1011300067687420737465703A2025750A006261CF -:10114000636B6C6967687420746F67676C653A20BD -:1011500025750A006261636B6C6967687420646559 -:101160006372656173653A2025750A006261636B7D -:101170006C6967687420696E6372656173653A2093 -:1011800025750A0011241FBECFEFDAE0DEBFCDBF08 -:1011900004B603FE27C080913F0290914002A091C7 -:1011A0004102B09142028730904BA740B04BD1F43E -:1011B00010923F021092400210924102109242029D -:1011C00014BE84B7877F84BF0FB6F894A89580912A -:1011D0006000886180936000109260000FBEE0E0C4 -:1011E000F8E3099511E0A0E0B1E0EAEDFDE602C008 -:1011F00005900D92A634B107D9F722E0A6E4B1E03C -:1012000001C01D92AF33B207E1F70E94BE180C94E3 -:10121000EB360C940000FF93EF93E0914601F091C0 -:101220004701309709F00995EF91FF910895FC016E -:101230008591803011F0EFDFFBCF0895FF27E0E2CA -:1012400030E247FF0CC0419597FF09C0EDE2609581 -:10125000709580959095611D711D811D911D27FFD1 -:1012600002C0219530E350E2AA27660F771F881F3E -:10127000991FAA1FA41710F0A41B63955A95A9F7EC -:10128000AA3008F0A95FA05DAF93F39561157105D1 -:101290008105910541F7ED3211F4EF93F395F217C3 -:1012A00018F43F93F395FBCF8F91B5DFFA95E1F7F3 -:1012B0000895E991F9918591803021F0853219F0F6 -:1012C000AADFF9CF089520E0E89455915532C1F393 -:1012D000503311F4689455915A3348F4505390F3B5 -:1012E000220F022E220F220F200D250FF4CF0EF415 -:1012F000219589919991533619F3533729F1533533 -:1013000059F1BC0188279927E8945C3621F489912A -:10131000999168945591543639F446EF7EF077FFF1 -:101320000DC08FEF9FEF0AC055374AE039F05835AE -:1013300040E121F0523642E009F00895FF93EF9327 -:101340007DDFEF91FF91B7CFFF93EF93FC01819188 -:101350008030B9F360DFFBCFFF93EF9368DFF1CF0D -:10136000DF93CF93CDB7DEB72596A3DFCF91DF9183 -:10137000089508950C94B90981E0089508950C9496 -:10138000B9090C94BC090C94BE09269A2E988FEFCB -:101390009FEF909387008093860082E28093800085 -:1013A00089E1809381000C9455340E94C5090C9406 -:1013B000BA09282F2E9880918000211108C08F7DB6 -:1013C0008093800010928B0010928A0008958062B2 -:1013D00080938000233019F48FEF9FEF0FC083E0DC -:1013E00090E0821B9109880F991F2FEF3FEFA90111 -:1013F00002C0569547958A95E2F7CA0190938B00F3 -:1014000080938A000895CF93DF93EC01862F90E0BC -:101410008930910508F05AC0FC01EA5AFF4F0C943C -:101420009D360E94E32882729A81992369F088236D -:1014300019F085E390E002C089E290E00E94A728BD -:10144000DF91CF910C942D29882319F085E390E04A -:1014500002C089E290E00E94C428F2CF8A818823EA -:10146000A9F1DF91CF910C94C7138A81882371F180 -:10147000DF91CF910C9433128A81882339F1DF9167 -:10148000CF910C944B128A81882301F1DF91CF9187 -:101490000C946A128A818823C9F0DF91CF910C9451 -:1014A00085128A81882391F0DF91CF910C949F124D -:1014B0008A81882359F0DF91CF910C94BA128A81E6 -:1014C000882321F0DF91CF910C94BD13DF91CF9150 -:1014D000089581E008950C94690A08950F931F936D -:1014E000CF93DF938C01FC01C081D181CE010E949A -:1014F0002828BE010E94A70DEC01B8010E946B0ACA -:10150000882309F474C1F8018281882309F45BC03F -:101510008091530181111FC0C431F0E7DF0709F04A -:101520000AC10E946D0A81E0809353010E94172A2C -:10153000909352018093510110924A0110924C01F4 -:1015400010924B0110924E0110924D0110925001D9 -:1015500010924F014CC180915101909152010E9413 -:10156000232A883C910570F480914A01E82FF0E02D -:10157000EE0FFF1FE55BFE4FD183C0838F5F80932B -:101580004A0135C1C43120E7D20708F028C1C23072 -:1015900080E7D80710F5C11590E7D90709F0DAC040 -:1015A000F8018281882309F4BFC00E943423FFEF31 -:1015B00024E38CE0F15020408040E1F700C00000BF -:1015C0000E94722A14C1C431F0E7DF0708F0D3C0CB -:1015D000C23020E7D20708F49BC0F801828188233B -:1015E00009F4A2C00E942C2C811102C00E940D2C73 -:1015F0000E94492C90E09093F8018093F701C2304B -:10160000F0E7DF0721F48091F70181607AC0C330F1 -:1016100020E7D20721F48091F701826072C0C430C4 -:1016200080E7D80721F48091F70184606AC0C53053 -:1016300090E7D90719F48091F70127C0C630E0E799 -:10164000DE0721F48091F70180615BC0C730F0E7CD -:10165000DF0721F48091F701806253C0C83020E792 -:10166000D20721F48091F70180644BC0C93080E734 -:10167000D80721F48091F701806843C0CA3090E711 -:10168000D90729F48091F701846088603AC0CB3093 -:10169000E0E7DE0721F48091F7018E7F32C0CC3085 -:1016A000F0E7DF0721F48091F7018D7F2AC0CD306C -:1016B00020E7D20721F48091F7018B7F22C0CE3042 -:1016C00080E7D80719F48091F7011AC08091F701DB -:1016D000CF3090E7D90711F48F7E13C0C031E0E717 -:1016E000DE0711F48F7D0DC0C131F0E7DF0711F483 -:1016F0008F7B07C0C231D04711F48F7702C08B7F38 -:10170000877F8093F7018091F7010E944D2C6FC075 -:10171000C11580E7D80741F0C130D047F1F081E032 -:101720008093480180934901C801DF91CF911F91B7 -:101730000F910C94C109C43120E7D20708F04FC0C3 -:10174000C23080E7D80708F048CFC11590E7D90725 -:1017500009F42BCFC130D04711F7F80182818823DB -:1017600019F386E492E00E9417098091E6018160F6 -:101770008093E6013CC0C333E0E7DE07A1F4F80143 -:101780008281882321F01092480182E017C0809165 -:101790004801811106C086E20E949D1F86E20E94D8 -:1017A000652082E019C0C433D04709F0B8CFF801F2 -:1017B0008281882331F01092490182E10E94B42095 -:1017C00016C080914901811106C087E20E949D1FC9 -:1017D00087E20E94652082E10E94BB2008C0C333DB -:1017E000F0E7DF0761F2C433D04709F398CF80E018 -:1017F000DF91CF911F910F9108950C94D5090C940E -:10180000BF0926E4829FC0011124FC013EE0739FC2 -:10181000E00DF11D1124E60FF11DEE0FFF1FE25D3B -:10182000FE4F859194910E94BA0D811540E5940771 -:1018300008F047C0811520E4920708F014C1883EE3 -:10184000910520F5803E910508F07DC1883A91050B -:1018500078F4853A910508F0A6C08130910509F425 -:1018600072C108F42FC18430910508F06CC12AC1FF -:101870008B3B910508F4A2C0803C910508F422C17D -:10188000FC01EE0FFF1FE456F040E7C0811530E287 -:10189000930758F4811541E0940708F054C1803F44 -:1018A000910508F40FC190650895811520E3920712 -:1018B00008F0D6C0FC01FF70EE0FFF1FE45EFE4F84 -:1018C000CCC0811535E5930708F044C0811544E587 -:1018D000940708F0DFC0811522E5920710F5811505 -:1018E00031E5930708F0C2C09C0154E03695279576 -:1018F0005A95E1F7922F9370482F437021E030E022 -:1019000002C0220F331F4A95E2F73C68392B8F70D3 -:101910008695869540E2849FC0011124822B932BEB -:101920000895AC0143705527282F269526958115DB -:10193000934508F0A0C081E090E002C0880F991F95 -:101940004A95E2F740E2249F90011124822B932BC9 -:101950009C6808958F3240E7940790F48F3120E718 -:10196000920708F0A2C0811536E5930708F497C0E6 -:101970009C0130562115304108F0A4C09F7093C0DF -:10198000803320E7920709F497C008F492C08133AE -:1019900040E7940709F493C08233904709F092C05E -:1019A00080E093ED0895853A910509F48EC0863A5A -:1019B000910509F08DC082E890E40895883A910578 -:1019C00009F489C0893A910509F488C08A3A9105D9 -:1019D00009F487C08B3A910509F486C08C3A9105C9 -:1019E00009F485C08D3A910509F484C0803B9105C6 -:1019F00009F483C08E3A910509F482C08F3A9105AB -:101A000009F481C0813B910509F480C0823B9105B6 -:101A100009F47FC0833B910509F47EC0843B9105A6 -:101A200009F47DC0853B910509F47CC0863B910596 -:101A300009F47BC0873B910509F47AC0883B910586 -:101A400009F479C0893B910509F478C08A3B910576 -:101A500009F477C080E094E4089585919491089505 -:101A60009927906C08959F70906A0895982F882701 -:101A7000816F906A089581E090E002C0880F991FFD -:101A80004A95E2F740E2249F90011124822B932B88 -:101A90009A680895982F8827846F906A08958F71A7 -:101AA0009927982F8827906208958F519047946DB9 -:101AB000089580E091ED089580E090ED089580E034 -:101AC00092ED089580E090E0089581E890E4089513 -:101AD00083E890E4089582EE94E4089589EE94E416 -:101AE00008958AEE94E4089585EB94E4089586EBD6 -:101AF00094E4089587EB94E408958CEC94E40895BD -:101B00008DEC94E4089583E895E408958AE895E4DB -:101B1000089582E995E4089584E995E4089581E2C1 -:101B200096E4089583E296E4089584E296E40895A5 -:101B300085E296E4089586E296E4089587E296E4C5 -:101B400008958AE296E4089580E090E0089526E4FE -:101B5000829FC0011124FC012EE0729FE00DF11D57 -:101B60001124E60FF11DEE0FFF1FE25DFE4F859180 -:101B7000949108958238910549F1B0F4813391052B -:101B800009F459C048F48932910509F44FC08A32EA -:101B9000910509F455C008958533910509F441C0B4 -:101BA0008933910599F00895833E910531F138F418 -:101BB000803E910591F0823E9105A9F00895863E00 -:101BC000910501F1873E910539F108952091F701C2 -:101BD00020FD3BC021FD39C008958091F70180FFB1 -:101BE00034C089E341C08091F70182FF30C0809109 -:101BF000F70184FD2EC083EE37C08091F70182FD8E -:101C000026C0F5CF8091F70183FF25C08091F701B1 -:101C100084FD1FC087EE28C08091F70183FD1BC0A3 -:101C2000F5CF8091F70185FD18C019C08091F701AB -:101C300085FD15C012C08091F70186FD12C013C04A -:101C40008091F70186FD0FC00CC080EE0DC082EEC2 -:101C50000BC080E009C086EE07C089E205C085E3BD -:101C600003C08AE201C081E390E008950C94C309A7 -:101C7000E82FF0E0ED5DFE4F8081E82FEF70F0E09F -:101C800082958F7021E030E0A90102C0440F551FFA -:101C90008A95E2F740A308950F931F93CF93DF93A4 -:101CA000C4E0D0E001E010E0FE01ED5DFE4F808178 -:101CB000E82FEF70F0E021A182958F70A80102C09B -:101CC000440F551F8A95E2F7CA01822B81A38C2FFE -:101CD0000E94380E219740F78DE090E061E070E0BF -:101CE000FC01EB5EFE4F2081E22FEF70F0E042A19D -:101CF00022952F70DB0102C0AA0FBB1F2A95E2F7C5 -:101D00009D01242B22A3019758F7DF91CF911F91BA -:101D10000F9108950F931F93CF93DF9385B780683A -:101D200085BF85B7806885BFC4E0D0E001E010E0E2 -:101D3000FE01ED5DFE4F8081E82FEF70F0E021A104 -:101D400082958F70A80102C0440F551F8A95E2F753 -:101D5000CA01822B81A38C2F0E94380E219740F755 -:101D60008DE090E061E070E0FC01EB5EFE4F2081D1 -:101D7000E22FEF70F0E042A122952F70DB0102C04C -:101D8000AA0FBB1F2A95E2F79D01242B22A30197DE -:101D900058F7DF91CF911F910F910C94FD0BCF92CB -:101DA000DF92EF92FF920F931F93CF93DF930EE595 -:101DB00011E07801C4E0CC24C394D12CD5E08C2F61 -:101DC0000E94380E8DE090E040E050E0FC01EB5EB8 -:101DD000FE4F6081E62FEF70F0E020A130E06295C9 -:101DE0006F7002C0359527956A95E2F720FD09C00E -:101DF0009601082E02C0220F331F0A94E2F7422BED -:101E0000532B019718F7D7019E918E917D0184176E -:101E1000950721F04D935C93D09300018C2F0E9485 -:101E2000380EC15060F68091000187FD2FC090915F -:101E3000E60190FF10C0282F082E000C330B3F93B3 -:101E40008F938FE892E09F938F930E94B0090F9039 -:101E50000F900F900F9080910001815080930001AE -:101E600087FD07C0EFE9FFE03197F1F700C0000000 -:101E70000DC0E8E6F1E084E591E0D8013E912E91B5 -:101E80008D01329322938A179B07B9F70E94FF0BAB -:101E900081E0DF91CF911F910F91FF90EF90DF9044 -:101EA000CF900895E82FF0E0EE0FFF1FE25AFE4FAB -:101EB000808191810895EF92FF920F931F93CF93AA -:101EC000DF938091E60180FF04C080E792E00E94EA -:101ED00017090EE511E0C0E0D0E088E5E82E82E0C9 -:101EE000F82E8091E60180FF13C0F8018081918176 -:101EF0000E947F299F938F93DF93CF93FF92EF925E -:101F00000E94B0090F900F900F900F900F900F90BC -:101F100021960E5F1F4FC530D10519F7DF91CF9184 -:101F20001F910F91FF90EF9008950F931F93CF9300 -:101F300008E611E0C0E0F801929182918F010E94C1 -:101F40006129C80FF1E00E351F07A9F78C2FCF913B -:101F50001F910F91089521B3342F3095232331B36E -:101F6000432B3FB7F894FC01680F791FE617F7077A -:101F700089F0819198E041BB000000C087FF21BB40 -:101F8000880F000000C000C000C021BB00C09A95AF -:101F900091F7ECCF3FBF089520B3242B20BB9B01CA -:101FA000220F331F620F731F0E94AB0F87EC90E06C -:101FB0000197F1F700C00000089540E20C94CC0FA7 -:101FC000AF92BF92CF92DF92EF92FF920F931F9347 -:101FD000CF93DF936C01790150E0FA01EE55FA4F8F -:101FE00044918FEF90E0FC01E61BF109EE55FA4FAA -:101FF000E491E09509F495C0C42FD0E08E1B9109BF -:102000008C9F90018D9F300D9C9F300D1124E32FEC -:102010008CE3A82EB12CC601B5010E947536DC01F7 -:102020006230710509F446C0D0F46115710599F16B -:102030006130710509F079C0C31BD109B501681B76 -:10204000790BC69FC001C79F900DD69F900D11249C -:10205000B5010E947536032F060F142F67C0643038 -:10206000710509F44BC0B8F16530710509F05DC028 -:10207000C31BD109B501681B790BC69FC001C79F5F -:10208000900DD69F900D1124B5010E947536132F27 -:10209000E32FE60F44C0C31BD109CC9DC001CD9DE9 -:1020A000900DDC9D900D1124B5010E947536132F03 -:1020B000160F35C0C31BD109CA9FC001CB9F900D1D -:1020C000DA9F900D1124B5010E947536142F032F4D -:1020D000E32FE60F2BC0C31BD109B501681B790B99 -:1020E000C69FC001C79F900DD69F900D1124B501CA -:1020F0000E947536132F160F032F0FC0C31BD10973 -:10210000CA9FC001CB9F900DDA9F900D1124B5019D -:102110000E947536032F060F132FE42F07C0042FDC -:1021200005C0E42F142F042F01C0E0E0D701119661 -:102130000C9311971C931296EC93DF91CF911F9102 -:102140000F91FF90EF90DF90CF90BF90AF900895E8 -:1021500087E090E00C94AB36AB01BC0187E090E0E7 -:102160000C94C9368091E60180FF08C083E794E0B3 -:102170009F938F930E94B0090F900F9083E08093FC -:10218000F9018091FA01807884668F778093FA0153 -:102190008CEC8093FB018093FC016091F9017091BC -:1021A000FA018091FB019091FC010C94AC1080919C -:1021B000E60180FF08C08CE594E09F938F930E9416 -:1021C000B0090F900F908091E60180FF0FC08091C1 -:1021D000F90181701F928F938FE394E09F938F9307 -:1021E0000E94B0090F900F900F900F908091E60120 -:1021F00080FF10C08091F90186958F731F928F9395 -:1022000084E294E09F938F930E94B0090F900F9007 -:102210000F900F908091E60180FF19C08091F90125 -:10222000881F8827881F9091FA01292F220F822B5F -:1022300097FB992790F99F938F938AE094E09F935F -:102240008F930E94B0090F900F900F900F90809184 -:10225000E60180FF0EC08091FB011F928F9380EFFB -:1022600093E09F938F930E94B0090F900F900F906F -:102270000F908091E60180FF0EC08091FC011F92BB -:102280008F9386ED93E09F938F930E94B0090F90F8 -:102290000F900F900F9008958091F90180FF06C074 -:1022A00060E170E081E092E00C94DD0FE3E0F2E0A9 -:1022B000DF0111971C9211971C921082339682E0D5 -:1022C000E333F807A9F7ECCFE3E0F2E0DF01119781 -:1022D0008C9311976C934083339692E0E333F90724 -:1022E000A9F70C944C11EF92FF920F931F93CF9389 -:1022F000DF9300D01F92CDB7DEB7182FE92EF62E50 -:10230000042F8091F9019091FA01A091FB01B09105 -:10231000FC018093FD019093FE01A093FF01B09317 -:1023200000028091F90180FF1FC09E012F5F3F4F87 -:10233000812F9E2D0E94E00F8091FD0110FB87F9F7 -:102340008093FD0116958091FE018078182BE0FAAC -:1023500017F91093FE01F092FF01009300024B81E8 -:1023600069818A810E9464110F900F900F90DF9114 -:10237000CF911F910F91FF90EF9008950F931F93AE -:10238000CF93DF93EC01062F142F9091F90190FF6A -:1023900065C0892F8E77823021F4CE010E9473119F -:1023A0001BC0892F86958F732EE3280F2F7324303F -:1023B00018F41091FC0110C0865C8F73893060F4B2 -:1023C000C92FCC1FCC27CC1FD091FA018D2F880F9D -:1023D000C82BD7FBDD27D0F98091F901C0FB87F925 -:1023E0008093F901C6958091FA018078C82BD0FBC3 -:1023F000C7F9C093FA010093FB011093FC016091AF -:10240000F9017091FA018091FB019091FC010E9409 -:10241000AC108091FC011F928F938091FB011F9261 -:102420008F938091F901881F8827881F9091FA0166 -:10243000292F220F822B97FB992790F99F938F9337 -:1024400082ED92E09F938F930E94B0098DB79EB763 -:1024500008960FB6F8949EBF0FBE8DBFDF91CF9147 -:102460001F910F910895E9EFF1E02081221F2227AB -:10247000221F3091FA01432F440F842F822B37FB08 -:10248000992790F9089668E671E00E9489364381A1 -:1024900062810C94BE112091F901221F2227221F74 -:1024A0003091FA01432F440F842F822B37FB992759 -:1024B00090F9883091051CF4805A9E4F05C008970A -:1024C00068E671E00E9489364091FC016091FB0151 -:1024D0000C94BE116091FB01862F90E0883F91051E -:1024E00014F4685F01C06FEF8091F901881F88279D -:1024F000881F9091FA01292F220F97FB992790F9B5 -:102500004091FC01822B0C94BE116091FB01862F3F -:1025100090E0089714F0685001C060E08091F901E4 -:10252000881F8827881F9091FA01292F220F97FB77 -:10253000992790F94091FC01822B0C94BE11409197 -:10254000FC01842F90E0883F910514F4485F01C09E -:102550004FEF8091F901881F8827881F9091FA0119 -:10256000292F220F97FB992790F96091FB01822B6D -:102570000C94BE114091FC01842F90E0089714F058 -:10258000485001C040E08091F901881F8827881FCA -:102590009091FA01292F220F97FB992790F96091CA -:1025A000FB01822B0C94BE118091790181110FC027 -:1025B00081E08093790189E0809391008FB7F8944E -:1025C00093E09093990090ED909398008FBF0895B9 -:1025D000809171008260809371008091E60180FF9C -:1025E00008C081EC92E09F938F930E94B0090F90F6 -:1025F0000F900895809171008D7F8093710080917C -:10260000E60180FF08C08FEA92E09F938F930E94BB -:10261000B0090F900F9008959091F90190FF4BC071 -:102620009178811102C0926007C0883110F09E62DB -:1026300003C08F73880F982B9093F9016091F90173 -:102640007091FA018091FB019091FC010E94AC1005 -:102650008091F90186958F731F928F9385E293E0A5 -:102660009F938F930E94B0098091F901982F9E77D4 -:102670000F900F900F900F90923019F40E94FA1261 -:1026800007C08695825C8F73863110F40E94E81231 -:102690008091F901881F8827881F9091FA01292FBE -:1026A000220F97FB992790F94091FC016091FB0163 -:1026B000822B0C94BE1108958091E6018160809375 -:1026C000E6018FEB93E09F938F930E94B00981E026 -:1026D00080937A018091E6010F900F9080FF08C0EF -:1026E00089EA93E09F938F930E94B0090F900F9017 -:1026F0000E942C2C811110C08091E60180FF08C03F -:1027000081E893E09F938F930E94B0090F900F9000 -:102710000E940D2C0E94B2100E94A8106093F90133 -:102720007093FA018093FB019093FC016E77C1F4E2 -:102730008091E60180FF08C088E393E09F938F9328 -:102740000E94B0090F900F900E94B2100E94A81032 -:102750006093F9017093FA018093FB019093FC015F -:102760000E94D7100E94D4128091F90180FF04C00A -:1027700086958F730C940C1308958091F9018695BA -:102780008F738F5F883108F081E00C940C13809177 -:10279000F901982F909590FB80F98093F901609151 -:1027A000F9017091FA018091FB019091FC010E9466 -:1027B000AC108091F90181701F928F9387EF92E0A6 -:1027C0009F938F930E94B0098091F9010F900F9011 -:1027D0000F900F9080FF04C086958F730C940C139C -:1027E0000E94FA122FEF80E792E021508040904043 -:1027F000E1F700C000000C944C11CF93C82F8091DA -:102800007701909178010E94232AEC2FF0E0E256A4 -:10281000FB4FE491F0E08E179F0718F10E94172AF2 -:102820009093780180937701E0917601F0E0EE5586 -:10283000FB4F44918091F901881F8827881F909150 -:10284000FA01292F220F97FB992790F96091FB013C -:10285000822B0E9473118091760190E00196809303 -:102860007601CF910895CF93C82F809174019091F4 -:1028700075010E94232AEC2FF0E0E556FB4FE4910E -:10288000F0E08E179F07E8F00E94172A90937501D9 -:10289000809374014091FC016091FB018091720171 -:1028A000909173010E947311809172019091730154 -:1028B000019668E671E00E947536909373018093EB -:1028C0007201CF910895CF92DF92FF920F931F93E1 -:1028D000CF93DF93F82E80917001909171010E9447 -:1028E000232AEF2DE695F0E0E556FB4FE491F0E06A -:1028F0008E179F07C0F10E94172A90937101809351 -:10290000700101E012E0C0E0D0E088E6C82EDD24CE -:10291000D39480916E0190916F018C0F9D1FB60131 -:102920000E94753698014091FC016091FB010E9464 -:10293000E00F66960D5F1F4FC03681E0D80749F75C -:102940000E944C1180916E0190916F01F0FE06C0C3 -:10295000019668E671E00E94753601C00197909378 -:102960006F0180936E01DF91CF911F910F91FF90C6 -:10297000DF90CF9008958F929F92AF92BF92CF92A7 -:10298000DF92EF92FF920F931F93CF93DF93C82FA5 -:1029900080FF03C0DD24DA9402C0DD24D39480914B -:1029A0006C0190916D010E94232AC695EC2FF0E0F6 -:1029B000E856FB4FE491F0E08E179F0708F466C0DD -:1029C0000E94172A90936D0180936C0191E0E92E8B -:1029D00092E0F92E03E012E0C0E0D0E027E0822E82 -:1029E000912CF80131971082F7011082F8011082C2 -:1029F00087E0A82EB12CC12C80916B018C0D87FD36 -:102A0000805F082E000C990BC817D907E9F42091B4 -:102A1000FC012A9DC0012B9D900D1124B4010E9440 -:102A20008936462F8091F901881F8827881F909149 -:102A3000FA01592F550F97FB992790F9970160914B -:102A4000FB01852B0E94E00FCD0CF1E0AF1AB1081D -:102A500099F6219683E0E80EF11C0D5F1F4FC031FF -:102A6000D10509F0BECF0E944C1180916B0191E01D -:102A7000D91206C0811102C08FE006C0815004C087 -:102A800090E001968F70992780936B01DF91CF9131 -:102A90001F910F91FF90EF90DF90CF90BF90AF907C -:102AA0009F908F9008959F92AF92BF92CF92DF92A6 -:102AB000EF92FF920F931F93CF93DF93CDB7DEB7C3 -:102AC000E0970FB6F894DEBF0FBECDBF182F8091F0 -:102AD000690190916A010E94232AE12FF0E0EB56F0 -:102AE000FB4FE491F0E08E179F0708F493C00E941B -:102AF000172A90936A0180936901CE0101967C01A7 -:102B00005E0193E0A90EB11CC12CD12C8701F50107 -:102B100031971082F7011082F5011082912C90916B -:102B2000010180916801999E800D112487FD04C0E8 -:102B300080311CF08FE001C080E0082E000C990B62 -:102B4000C816D906A1F48091F901881F8827881F2B -:102B50009091FA01592F550F97FB992790F99701FA -:102B60004091FC016091FB01852B0E94E00F939442 -:102B7000F7E09F12D4CF8FEFC81AD80A93E0E90E7E -:102B8000F11CE3E0AE0EB11CF0E1CF16D10409F068 -:102B9000BECFA3E0B2E089E090E0FC01EF70FF2738 -:102BA0009D0121503109AF01440F551FE40FF51F5E -:102BB000BF01600F711FFB014181F901408321506A -:102BC0003109FB014081F9014083FB0122812C93F3 -:102BD000019613968931910501F70E944C1190914D -:102BE000010180916801913049F48A3F2CF489EF0A -:102BF000809368018FEF08C081500AC087313CF094 -:102C000086E18093680181E08093010103C08F5FBA -:102C100080936801E0960FB6F894DEBF0FBECDBF7B -:102C2000DF91CF911F910F91FF90EF90DF90CF90A8 -:102C3000BF90AF909F9008951F920F920FB60F9282 -:102C400011242F933F934F935F936F937F938F93B1 -:102C50009F93AF93BF93EF93FF938091F901869574 -:102C60008F739EE3980F9F73943020F482500E94DC -:102C7000FD1323C09AE3980F9F73933020F486507E -:102C80000E9433141AC097E3980F9F73963020F474 -:102C900089500E94631411C091E3980F9F7396307E -:102CA00020F48F500E94BB1408C09BE2980F9F73C2 -:102CB000933018F485510E945315FF91EF91BF9105 -:102CC000AF919F918F917F916F915F914F913F91C4 -:102CD0002F910F900FBE0F901F9018958091860135 -:102CE00008959FB7F89410927D019FBF909135028F -:102CF000943009F057C09091E9009F703091EC003A -:102D0000232F217030FD20E8922B24E02093E9004E -:102D10002091EB0020FF43C02091EE0027FF3FC031 -:102D200020917B01222321F02091E80025FF37C06C -:102D300010927B0126E03091E80035FD15C03091FE -:102D40003502343061F53091EB0035FD28C021505B -:102D500021F481E080937B0122C0EFE9FFE031970D -:102D6000F1F700C00000E7CF8093F1008091E80008 -:102D700085FD0AC08091E80080FFFCCF8091E800CB -:102D80008E778093E80006C08FB7F89421E02093F7 -:102D90007D018FBF9F709093E90080E008959F7040 -:102DA0009093E9008FEF0895CF93DF9300D01F92A7 -:102DB000CDB7DEB79C0180913502843019F593E0E0 -:102DC00099833B832A839093E9008FEF9091E800E9 -:102DD000815095FD06C095ED9A95F1F7000081119F -:102DE000F5CF8091E80085FF0DC040E050E063E042 -:102DF00070E0CE0101960E9471198091E8008E77F3 -:102E00008093E8000F900F900F90DF91CF9108957D -:102E1000CF93DF9300D01F92CDB7DEB7209135025C -:102E2000243021F522E029839B838A8383E08093E9 -:102E3000E9008FEF9091E800815095FD06C095ED77 -:102E40009A95F1F700008111F5CF8091E80085FF98 -:102E50000DC040E050E063E070E0CE0101960E94BA -:102E600071198091E8008E778093E8000F900F90A1 -:102E70000F90DF91CF9108959C01809135028430AD -:102E8000F9F482E08093E9009FEF8091E80091508F -:102E900085FD06C085ED8A95F1F700009111F5CF0B -:102EA0008091E80085FF0CC040E050E065E070E0F4 -:102EB000C9010E9471198091E8008E778093E80023 -:102EC0000895CF93DF93EC0180913502843039F57A -:102ED00081E08093E9008FEF9091E800815095FDAB -:102EE00006C095ED9A95F1F700008111F5CF80911C -:102EF000E80085FF14C040E050E068E070E0CE01DB -:102F00000E9471198091E8008E778093E80088E034 -:102F1000FE01AEE7B1E001900D928A95E1F7DF91F5 -:102F2000CF91089587EC96E00E94170980913402B2 -:102F3000811109C00E94021B0E945F1B8091E20068 -:102F400084608093E200089583EC96E00E94170964 -:102F50001092340208958FEB96E00C9417098BEBD6 -:102F600096E00C94170987EB96E00E9417090C94E1 -:102F7000DA2920917C012F5F822F62E30E9469365B -:102F8000992319F020937C01089510927C0180917F -:102F90007D01882371F180913502843041F5809163 -:102FA000E9008F702091EC00922F917020FD90E845 -:102FB000892B94E09093E9009091EB0090FF14C06E -:102FC0009091EE0097FF10C09091E80095FF03C02C -:102FD0001092F100F9CF9091E80090FF05C0909118 -:102FE000E8009E779093E8008F708093E90010923C -:102FF0007D01089542E061EC81E00E947B1A42E08D -:1030000061EC82E00E947B1A42E061EC83E00E9466 -:103010007B1A42E261EC84E00C947B1A80913702C7 -:10302000833009F453C030F4813071F0823009F4F8 -:103030008CC008958A3009F478C08B3009F45EC0E2 -:10304000893009F09AC020C080913602813A09F097 -:1030500094C08091E800877F8093E80080913A02D5 -:1030600090913B02892B21F468E08EE791E003C048 -:1030700060E080E090E070E00E94BC198091E80080 -:103080008B778093E800089580913602813209F0B1 -:1030900074C080913A0290913B02892B09F06DC077 -:1030A0008091E800877F8093E8008091E80082FDAE -:1030B00005C0809135028111F8CF5FC08091F10089 -:1030C000809386018091E8008B7753C0809136020F -:1030D000813A09F052C080913A0290913B02892BCB -:1030E00009F04BC08091E800877F8093E8008091D1 -:1030F000E80080FFFCCF80910C0136C08091360241 -:103100008132D9F580913A0290913B02892BA9F541 -:103110008091E800877F8093E8000E94B01A809138 -:10312000380280930C010C94342380913602813252 -:1031300021F58091E800877F8093E8000E94B01A13 -:103140008091390280938701089580913602813AF7 -:10315000A1F48091E800877F8093E8008091E800E7 -:1031600080FFFCCF809187018093F1008091E8007F -:103170008E778093E8000C94B01A089584B7877F07 -:1031800084BF0FB6F894A895809160008861809301 -:103190006000109260000FBE80E880936100109282 -:1031A00061000E94951E0E94021B0E945F1B80917D -:1031B000E20084608093E20081E796E10E945C294E -:1031C00078940E94E91D0E94971E82E091E00E947F -:1031D000041E86EA96E00E94170980913502853028 -:1031E00089F482EA96E00E9417090E949929809149 -:1031F0003302882391F30E94C929882371F30E9426 -:103200005B19EBCF0E94BF1EE8CF292F3327233055 -:103210003105C9F060F42130310581F022303105EB -:1032200009F041C084E790E029EE36E040C0213249 -:103230003105E1F02232310531F135C082E190E013 -:103240002DE537E034C099278130910549F028F009 -:10325000029749F5EBECF6E005C0E5EEF6E002C0BA -:10326000EBEDF6E0849190E09F0121C06430D8F44A -:10327000E62FF0E0EE0FFF1FEC5CFE4F2081318166 -:1032800089E090E014C0643070F470E0FB01EE0F50 -:10329000FF1FE45DFE4F20813181FB01E85DFE4FA1 -:1032A000808190E004C080E090E020E030E0FA010E -:1032B00031832083089580E189BD82E189BD09B40D -:1032C00000FEFDCF8091D8008F7D8093D800809143 -:1032D000E00082608093E0008091E00081FDFCCFFF -:1032E0000895CF92DF92EF92FF920F931F93CF93A7 -:1032F000DF93EC018B016A010E94CF1A811133C068 -:10330000C114D10439F0F60180819181081B190B99 -:10331000C80FD91FE12CF12C0115110519F180916D -:10332000E80085FD16C08091E8008E778093E80064 -:10333000C114D10449F0F60180819181E80EF91E93 -:10334000F182E08285E00FC00E94CF1A882321F32A -:103350000AC089918093F10001501109FFEFEF1A23 -:10336000FF0ADACF80E0DF91CF911F910F91FF909C -:10337000EF90DF90CF90089520913C0230913D0274 -:103380002617370748F06115710539F42091E800D8 -:103390002E772093E80001C0B901FC0120E06115FF -:1033A000710579F1809135028823F1F18530F1F1D1 -:1033B0008091E80083FD3CC08091E80082FD2EC032 -:1033C0008091E80080FFEBCF2091F3008091F20024 -:1033D00090E0922B6115710551F08830910538F419 -:1033E00021912093F100615071090196F3CF21E002 -:1033F000089709F020E08091E8008E778093E8003C -:10340000CECF2111CFCF0AC080913502882361F041 -:10341000853061F08091E80083FD0AC08091E8006A -:1034200082FFF2CF80E0089582E0089583E008955E -:1034300081E0089520913C0230913D022617370724 -:1034400048F06115710539F42091E8002E7720933A -:10345000E80001C0B901FC0120E06115710591F19E -:1034600080913502882309F440C0853009F43FC0BB -:103470008091E80083FD3DC08091E80082FD2FC06F -:103480008091E80080FFE9CF2091F3008091F20065 -:1034900090E0922B6115710559F08830910540F448 -:1034A00024912093F1003196615071090196F2CF79 -:1034B00021E0089709F020E08091E8008E77809362 -:1034C000E800CBCF2111CCCF0AC0809135028823F0 -:1034D00061F0853061F08091E80083FD0AC0809141 -:1034E000E80082FFF2CF80E0089582E0089583E053 -:1034F000089581E00895982F973068F59093E9003A -:10350000981739F07091EC002091ED005091F00087 -:1035100003C0242F762F50E021FD02C09F5FECCF27 -:103520003091EB003E7F3093EB003091ED003D7F1A -:103530003093ED003091EB0031603093EB007093ED -:10354000EC002093ED005093F0002091EE0027FD59 -:10355000E5CF80E008958F708093E90081E00895C1 -:103560008091360287FF11C08091E80082FD05C07E -:10357000809135028111F8CF11C08091E8008B77DE -:103580000BC080913502882349F08091E80080FFCC -:10359000F8CF8091E8008E778093E800089520911D -:1035A000E4003091E50095E64091EC00842F8170B5 -:1035B00040FF23C08091E80080FD1DC0809135024E -:1035C000882399F0853099F08091EB0085FD11C03A -:1035D0004091E4005091E5002417350729F39150FC -:1035E00011F09A01E1CF84E0089582E0089583E02C -:1035F000089581E0089580E008954091E80042FF39 -:10360000DDCF08950E94701B0E94781BE0EEF0E071 -:10361000808181608083E8EDF0E080818F77808316 -:1036200019BCA7EDB0E08C918E7F8C9380818F7E4A -:1036300080831092340208950F931F93CF93DF93EA -:103640000E94701B0E94781BC8EDD0E088818F77A4 -:10365000888388818068888388818F7D888319BC6E -:1036600010923502109231021092330210923202FF -:1036700000EE10E0F80180818B7F8083888181607B -:10368000888342E060E080E00E947B1AE1EEF0E097 -:1036900080818E7F8083E2EEF0E080818160808394 -:1036A000808188608083F80180818E7F808388811B -:1036B00080618883DF91CF911F910F910895E8ED8C -:1036C000F0E080818F7E8083E7EDF0E08081816093 -:1036D000808384E082BF81E0809334020C941C1BC1 -:1036E000E8EDF0E080818E7F80831092E200089503 -:1036F0001092DA001092E10008951F920F920FB617 -:103700000F9211242F933F934F935F936F937F9367 -:103710008F939F93AF93BF93EF93FF938091E100BB -:1037200082FF0BC08091E20082FF07C08091E10020 -:103730008B7F8093E1000E94B9178091DA0080FFAF -:103740001FC08091D80080FF1BC08091DA008E7F5F -:103750008093DA008091D90080FF0DC080E189BD9F -:1037600082E189BD09B400FEFDCF81E0809335027E -:103770000E94921705C019BC109235020E94A4172E -:103780008091E10080FF19C08091E20080FF15C0A8 -:103790008091E2008E7F8093E2008091E200806160 -:1037A0008093E2008091D80080628093D80019BC99 -:1037B00085E0809335020E94AF178091E10084FF7D -:1037C00030C08091E20084FF2CC080E189BD82E19D -:1037D00089BD09B400FEFDCF8091D8008F7D809314 -:1037E000D8008091E1008F7E8093E1008091E2001B -:1037F0008F7E8093E2008091E20081608093E200FE -:1038000080913102882311F084E007C08091E300A9 -:1038100087FD02C081E001C083E0809335020E94F1 -:10382000B3178091E10083FF29C08091E20083FFFC -:1038300025C08091E100877F8093E10082E0809342 -:103840003502109231028091E1008E7F8093E10079 -:103850008091E2008E7F8093E2008091E20080619F -:103860008093E20042E060E080E00E947B1A809159 -:10387000F00088608093F0000E94AB17FF91EF91F9 -:10388000BF91AF919F918F917F916F915F914F9178 -:103890003F912F910F900FBE0F901F9018951F9280 -:1038A0000F920FB60F9211242F933F934F935F9374 -:1038B0006F937F938F939F93AF93BF93CF93DF9338 -:1038C000EF93FF93C091E900CF708091EC00D82F67 -:1038D000D17080FDD0E81092E9008091F000877FE0 -:1038E0008093F00078940E94931C1092E9008091DC -:1038F000F00088608093F000CD2BCF70C093E9007A -:10390000FF91EF91DF91CF91BF91AF919F918F91F7 -:103910007F916F915F914F913F912F910F900FBECB -:103920000F901F9018951F93CF93DF93CDB7DEB7FD -:10393000AA970FB6F894DEBF0FBECDBFE6E3F2E064 -:103940008091F100819322E0EE33F207C9F70E94E3 -:103950000E188091E80083FF24C180913602909177 -:103960003702492F50E04A30510508F01AC1FA01D8 -:10397000E15AFF4F0C949D36803881F0823809F06F -:1039800010C180913A028F708093E9008091EB0022 -:1039900085FB882780F91092E90006C080913202E9 -:1039A00090913302911182609091E800977F9093FB -:1039B000E8008093F1001092F100C8C0282F2D7FFD -:1039C00009F0EFC0882319F0823061F0EAC08091DD -:1039D0003802813009F0E5C0933009F080E080932F -:1039E00033022BC080913802811127C080913A02A6 -:1039F0008F7009F4D6C08093E9002091EB0020FF7E -:103A00001CC0933021F48091EB00806214C090912F -:103A1000EB0090619093EB0021E030E0A90102C03F -:103A2000440F551F8A95E2F74093EA001092EA008E -:103A30008091EB0088608093EB001092E900809108 -:103A4000E800877F86C08111ACC0109138021F77D3 -:103A50008091E3008078812B8093E3008091E800DF -:103A6000877F8093E8000E94B01A8091E80080FF71 -:103A7000FCCF8091E30080688093E300111102C0C5 -:103A800082E001C083E0809335028BC08058823091 -:103A900008F087C080913802909139028C3D53E044 -:103AA000950779F583E08A838AE289834FB7F89492 -:103AB000DE01139620E03EE051E2E32FF0E0509368 -:103AC0005700E49120FF03C0E295EF703F5FEF7075 -:103AD0008E2F90E0EA3010F0C79601C0C0968D930B -:103AE0009D932F5F243149F74FBF8091E800877F76 -:103AF0008093E8006AE270E0CE0101960E94BC1952 -:103B000014C0AE014F5F5F4F60913A020E940519E9 -:103B1000BC01892B09F445C09091E800977F9093F0 -:103B2000E80089819A810E941A1A8091E8008B77B7 -:103B30008093E80036C08038A1F58091E800877F47 -:103B40008093E800809131028093F1008091E80039 -:103B50008E778093E8000E94B01A23C0811121C0A3 -:103B6000809138029091390299270297D4F480917C -:103B7000E800877F8093E8008091380280933102CB -:103B80000E94B01A80913102811106C08091E30039 -:103B900087FD02C081E001C084E0809335020E946D -:103BA000FA178091E80083FF0AC08091E800877FC0 -:103BB0008093E8008091EB0080628093EB00AA96EE -:103BC0000FB6F894DEBF0FBECDBFDF91CF911F912E -:103BD0000895CF93809135028823A1F0C091E90028 -:103BE000CF709091EC00892F817090FD80E8C82BF8 -:103BF0001092E9008091E80083FD0E94931CCF7031 -:103C0000C093E900CF91089590938D0180938C012A -:103C10000895E0918C01F0918D01309721F0019091 -:103C2000F081E02D099480E00895EF92FF921F93B8 -:103C3000CF93DF93F82E192FE0918C01F0918D0135 -:103C40003097A9F10280F381E02D09958091E6017A -:103C500082FF2DC080FF04C08AE598E00E9417090A -:103C6000CF2DD12F18E084E5E82E88E0F82E809142 -:103C7000E60180FF0BC088811F928F93FF92EF9225 -:103C80000E94B0090F900F900F900F901150219645 -:103C90001111EDCF8091E60180FF09C082E598E027 -:103CA000DF91CF911F91FF90EF900C941709DF9156 -:103CB000CF911F91FF90EF900895E0918C01F091CA -:103CC0008D01309721F00480F581E02D099408954D -:103CD00020918A0130918B012817390771F0909358 -:103CE0008B0180938A01E0918C01F0918D013097D6 -:103CF00021F00680F781E02D099408952091880134 -:103D0000309189012817390771F0909389018093C8 -:103D10008801E0918C01F0918D01309721F00084B1 -:103D2000F185E02D0994089508950C94941E0E9445 -:103D30000E2A0E948A0E0E94DC2A0E9455340C949E -:103D40005C13CF93DF931F92CDB7DEB79091E6015E -:103D500092FF10C090FF0EC01F928F932CE638E0A8 -:103D60003F932F9389830E94B0090F900F900F907B -:103D70000F9089810F90DF91CF910C94360E4F9266 -:103D80005F927F928F929F92AF92BF92CF92DF927B -:103D9000EF92FF920F931F93CF93DF9300D000D049 -:103DA0001F92CDB7DEB70E94CF0E99E9C92E91E0E0 -:103DB000D92E04E010E0AA24A394B12C702E802FF9 -:103DC0000E94520F4C01F601529042906F0148261A -:103DD000592641145104A1F40150110978F78FEFCD -:103DE00089838A831B820E94172A8160782F9D8392 -:103DF0008C8349815A816B818D810E946F1F38C0ED -:103E00008091E60181FD0E945B0F2DE030E075019D -:103E1000022E02C0EE0CFF1C0A94E2F7C2018E21B2 -:103E20009F21892B09F129837A828E209F2091E09E -:103E3000892809F490E09B830E94172A8160782FDB -:103E40009D838C8349815A816B818D810E946F1F74 -:103E5000000F111FF801E157FE4F80819181E82684 -:103E6000F926F182E08204C02150310980F6B4CFF6 -:103E70000E94572E0E94091E90918E018917D1F041 -:103E80000E94091E80938E010F900F900F900F904B -:103E90000F90DF91CF911F910F91FF90EF90DF90E6 -:103EA000CF90BF90AF909F908F907F905F904F90FA -:103EB0000C94A11E0F900F900F900F900F90DF9118 -:103EC000CF911F910F91FF90EF90DF90CF90BF9017 -:103ED000AF909F908F907F905F904F900895CF9379 -:103EE000DF93CDB7DEB72B970FB6F894DEBF0FBECA -:103EF000CDBF4F83588769877A878B87DE011196FC -:103F000086E0FD0111928A95E9F785E0FE0137967A -:103F100001900D928A95E1F749815A816B817C81EC -:103F20008D819E810E94CC252B960FB6F894DEBF22 -:103F30000FBECDBFDF91CF910895CF93C82F8823B7 -:103F400009F4C1C0823859F40E94091E81FDBBC02A -:103F500089E30E94A7280E942D2989E30CC0833899 -:103F600079F40E94091E80FDAEC083E50E94A72857 -:103F70000E942D2983E50E94C428CF910C942D29FD -:103F8000843859F40E94091E82FD9DC087E40E9476 -:103F9000A7280E942D2987E4EECF8CEF8C0F813A61 -:103FA00048F48C2F0E94003381118DC08C2F0E9409 -:103FB000A728E3CF80E28C0F883048F4C77081E0F7 -:103FC00001C0880FCA95EAF70E94E628D6CF8BE594 -:103FD0008C0F833078F4C53A29F0C63A31F083E883 -:103FE00090E005C081E890E002C082E890E0CF91C7 -:103FF0000C94681E88E58C0F833108F064C0C83AC1 -:1040000039F1C93A41F1CA3A49F1CB3A51F1CC3AC6 -:1040100059F1CD3A61F1C03B69F1CE3A71F1CF3A35 -:1040200079F1C13B81F1C23B89F1C33B91F1C43BC2 -:1040300099F1C53BA1F1C63BA9F1C73BB1F1C83B22 -:10404000B9F1C93BC1F1CA3BC9F180E090E038C089 -:1040500082EE90E035C089EE90E032C08AEE90E0CA -:104060002FC085EB90E02CC086EB90E029C087EB59 -:1040700090E026C08CEC90E023C08DEC90E020C056 -:1040800083E891E01DC08AE891E01AC082E991E0DE -:1040900017C084E991E014C081E292E011C083E28C -:1040A00092E00EC084E292E00BC085E292E008C08C -:1040B00086E292E005C087E292E002C08AE292E0E6 -:1040C000CF910C947E1ECF910895882309F44BC0A4 -:1040D000823859F40E94091E81FF45C089E30E947D -:1040E000A7280E942D2989E30CC0833871F40E940F -:1040F000091E80FF38C083E50E94A7280E942D2951 -:1041000083E50E94C4280C942D29843859F40E9418 -:10411000091E82FF28C087E40E94A7280E942D293B -:1041200087E4EFCF9CEF980F913A58F390E2980F05 -:10413000983050F4877091E001C0990F8A95EAF7A2 -:10414000892F0E94EC28DFCF9BE5980F933020F455 -:1041500080E090E00C94681E885A833120F480E05F -:1041600090E00C947E1E0895882321F00E94E6289A -:104170000C942D290895882321F00E94EC280C949A -:104180002D2908958F929F92AF92BF92CF92DF9286 -:10419000EF92FF920F931F93CF93DF931F92CDB7B0 -:1041A000DEB77C01C62E472FFC01058102950F70FA -:1041B0001281112321F079830E94032949814983C7 -:1041C0000E94A0284981882381F0112371F080E2A8 -:1041D0008C0D883050F082E00E9489280E94A0282F -:1041E00091E0D82ED926498101C0D12CE42FE29547 -:1041F000EF708E2F90E0FC01E759FF4F0C949D3635 -:10420000842F807F042F0F70882311F00295007F88 -:10421000112389F0002309F488C180E28C0D8830D5 -:1042200020F4802F0E94E62803C0802F0E94F628E9 -:104230000E942D297AC18C2D0E946520002309F44B -:10424000AAC180E28C0D883020F4802F0E94EC28D7 -:1042500003C0802F0E94FC280E942D299CC1942F0E -:10426000907F842F8F70903211F08295807FCC20C8 -:1042700021F0F1E0CF16A1F01DC0112339F0002389 -:1042800019F1013009F50E94162985C1002319F0A2 -:10429000013009F480C189830E941929898103C1F1 -:1042A000112321F0063008F076C10EC0053008F069 -:1042B00072C1F9C0112359F0002331F0F701958143 -:1042C00090FF33C19F7095830E94B42064C1002386 -:1042D00009F4E9C030C1842F86958695837019F062 -:1042E000813061F058C1112321F08C2D942F9370EF -:1042F00002C080E090E00E94681E4DC1112321F0B1 -:104300008C2D942F937002C080E090E00E947E1E5E -:1043100042C18C2D112319F00E94DD2C02C00E9495 -:10432000452D0E94CA2D37C1842F837009F04DC0DE -:10433000111131C12C2D229526952770220F220FA5 -:104340006C2D6F70862F90E0A0E0B0E04C015D0115 -:10435000022E04C0880C991CAA1CBB1C0A94D2F71C -:10436000C4FE12C08FE090E0A0E0B0E004C0880F6F -:10437000991FAA1FBB1F2A95D2F7BC01CD016095DA -:1043800070958095909503C060E070E0CB01242F7C -:10439000269526952370223051F080F468297929DA -:1043A0008A299B29213071F00E941527F4C06829C1 -:1043B00079298A299B290E943127EDC00E9415275F -:1043C000C501B4010E94F926E6C0112319F0842F1B -:1043D000817001C08695882309F4DDC02C2D2295BB -:1043E00026952770220F220F6C2D6F70862F90E07C -:1043F000A0E0B0E04C015D01022E04C0880C991CC5 -:10440000AA1CBB1C0A94D2F7C4FE12C08FE090E035 -:10441000A0E0B0E004C0880F991FAA1FBB1F2A9517 -:10442000D2F7BC01CD01609570958095909503C041 -:1044300060E070E0CB01242F269526952370223072 -:1044400051F080F4682979298A299B29213071F05B -:104450000E94EF27A0C0682979298A299B290E94F8 -:104460000B2899C00E94EF27C501B4010E94D327F1 -:1044700092C08C2D90E0FC01E05EF109E531F10580 -:1044800008F04FC0E758FF4F0C949D360C2D0F706D -:10449000842F8F71112321F00E946C27802F14CF5D -:1044A0000E948D27802F0E94BB2075C0112341F0F0 -:1044B000053008F070C0842F8F710E94B2276BC046 -:1044C000063008F068C0F7CF112339F0842F8F71C0 -:1044D0000E946C2760C01123C9F3842F8F710E9442 -:1044E0008D2759C0112329F0842F8F710E945727DF -:1044F00052C00E944D274FC0112351F0142F1F713D -:10450000812F0E946C2763E0812F0E94802843C086 -:1045100081E00E9489280230F0F182E00E9489281F -:104520003AC0112331F0002389F28C2D0E949D1F87 -:1045300032C0002391F28C2D0E9465202CC04F7058 -:104540006C2DC7010E94A40D0E94712624C0111178 -:1045500022C0842F8F70823099F038F4882369F05C -:104560008130C9F40E94903416C0833061F08430E9 -:1045700091F48C2D0E941B350EC00E9466340BC036 -:104580000E94BF3408C00E94E53405C04F706C2DF6 -:10459000C7010E94030ADD20F1F00E947C2880FD03 -:1045A0001AC0F70112820E9476280E946C27C70168 -:1045B0000E94F9220E9476280F90DF91CF911F91DF -:1045C0000F91FF90EF90DF90CF90BF90AF909F90B2 -:1045D0008F900C948D270F90DF91CF911F910F91A9 -:1045E000FF90EF90DF90CF90BF90AF909F908F9013 -:1045F00008950F931F93CF93DF93EC018B819C81E0 -:10460000892BC9F089818F3F19F488818F3F99F0F8 -:10461000CE010E946E0A882371F0688179818A81B7 -:104620000E9472288C010E9427280E94EE26B80161 -:10463000CE010E94C220DF91CF911F910F9108956A -:104640000E9403290E9413290E94D5280E942D2927 -:104650000E94FC2E0E94CA2D80E090E00E94681EFD -:1046600080E090E00C947E1E0E94F3280C9420239E -:104670000E946728292F22952F702C3030F42A3081 -:1046800048F42250223098F405C02C3061F02F30CD -:1046900051F00DC0803F69F018F4803E40F409C02D -:1046A000843F29F406C093FB882780F9089580E0B1 -:1046B000089581E00895CF93DF9300D000D01F923A -:1046C000CDB7DEB70F900F900F900F900F90DF9146 -:1046D000CF910895CF93DF9300D000D000D0CDB715 -:1046E000DEB726960FB6F894DEBF0FBECDBFDF91C2 -:1046F000CF9108951F93CF93DF93C091990116E056 -:1047000080919A01C81799F0D0E01C9FF0011D9F7D -:10471000F00D1124E556FE4F408151816281738175 -:10472000848195810E946A232196C770E9CFDF9129 -:10473000CF911F9108954091CB015091CC01609190 -:10474000CD017091CE018091CF019091D0010C9458 -:104750006A238091D00182958F7009F054C08091B6 -:10476000CD01882309F44FC080919901A0919A014D -:104770004091CE015091CF016091CB017091CC015D -:10478000B6E08A1709F43FC090E041155105C1F128 -:104790007F3F11F46F3FA1F1B89FF001B99FF00D79 -:1047A0001124E556FE4F218127132AC020812613AC -:1047B00027C02281211124C0238134812417350789 -:1047C00010F421503109241B350B283C3105C0F46D -:1047D0002091D0012F7020612093D00126E0289FE6 -:1047E000F001299FF00D1124E056FE4F80818F705B -:1047F000806180838BEC91E00E94F9220C947A23F3 -:1048000001968770BECF0895CF92DF92EF92FF920C -:104810000F931F93CF93DF93CDB7DEB762970FB699 -:10482000F894DEBF0FBECDBF8C0185E0F801DE013C -:104830001D9601900D928A95E1F7D8014C91119641 -:104840005C91119712966C918091CE019091CF015D -:10485000009709F475C13091CB017091CC017F3F75 -:1048600019F43F3F09F46CC1F801C380D480E09093 -:10487000CD01EE2009F4BEC02091D001C816D906A2 -:1048800028F0D601A81BB90BCD0104C080959095E6 -:104890008C0D9D1DFF24F394883C910578F0F12C3C -:1048A000207F09F0C4C07C2DD98AC88A89890E94DA -:1048B0005B238BEC91E00E94F922AFC0822F807FB6 -:1048C00009F045C0571313C0431311C061110FC045 -:1048D0002F7020612093D0010E949B238BEC91E0EC -:1048E0000E94F9228091D001F80185832EC0CD2845 -:1048F00019F15F3F11F44F3FF9F0F62E61111CC022 -:104900008091990120919A0136E0821709F45BC0E9 -:1049100090E0389FF001399FF00D1124E556FE4FCD -:104920007181571306C07081471303C072817111E2 -:1049300003C001968770E9CFF62E662309F41CC1E7 -:104940008091D00181608093D001F12C15C1571363 -:1049500009C0431307C0611105C08091D001F8015F -:104960008583C8C04D875E878D859E856A8B0E9432 -:1049700038236A898823D1F16623C1F12091D001BF -:10498000822F82958F7090E0029774F08091CB0116 -:104990009091CC0198878F831986DB86CA862C87F5 -:1049A000CE0107960E94F92286E0F801ABECB1E057 -:1049B00001900D928A95E1F70E94A9230E949B2302 -:1049C000FF24F394D9C04D875E878D859E850E9414 -:1049D0006728292F22952F70223008F0C1C09F70C0 -:1049E00009F0BBC0805E883008F4C6C0C8010E94D0 -:1049F000F922E6CFC816D90608F453C0F601E81B21 -:104A0000F90BCF01883C910508F450C0F12C7C2DA6 -:104A1000D98AC88A89890E945B23EBECF1E086E0A1 -:104A2000DF011D928A95E9F70E949B23A5C05713C9 -:104A300014C0431312C0611110C08091D001F8015D -:104A40008583C8010E94F92286E0EBECF1E0DF01EA -:104A50001D928A95E9F7FE2C8FC04D875E878D8564 -:104A60009E856A8B0E9438236A89882309F4BECF09 -:104A7000662309F4BBCF2091D001822F82958F70DD -:104A800090E002970CF490CF8091CB019091CC01F3 -:104A90009A8389831B82DD82CC822E83CE0101968C -:104AA00081CF809590958C0D9D1DACCFF62E662301 -:104AB00009F49CCF571333C0431331C02091D00168 -:104AC00020FD24C0822F82958F70482F50E0411521 -:104AD0005105E1F0D80115962C9315974F305105EB -:104AE00049F08F5F982F9295907F822F8F70892B3E -:104AF00015968C93C8010E94F92286E0F801ABEC70 -:104B0000B1E001900D928A95E1F78ECF86E0F80131 -:104B1000ABECB1E001900D928A95E1F72DC04D8785 -:104B20005E878D859E850E94382381113DCF8091BF -:104B3000D00181608093D001C8010E94F9221CC07D -:104B4000662309F453CF4D875E878D859E850E942D -:104B50003823882309F44ACF27CF811143CF0CC0D3 -:104B6000243008F043CF9F7009F43CCFD80115964C -:104B70009C91907F09F036CF8F2D62960FB6F894F6 -:104B8000DEBF0FBECDBFDF91CF911F910F91FF9080 -:104B9000EF90DF90CF9008951F93CF93DF93CDB721 -:104BA000DEB72C970FB6F894DEBF0FBECDBF4F8394 -:104BB000588769877A878B879C87CE0107960E94E2 -:104BC0000424882371F08A859B85892B09F441C0D0 -:104BD00088858F3F09F065C08F818F3F09F061C0E4 -:104BE00038C086E0FE013796DE01119601900D92E5 -:104BF0008A95E1F76A857B856115710551F1FF8121 -:104C0000E885EF3F11F4FF3F21F120919A0130E058 -:104C1000C9010196877099274091990150E0841746 -:104C2000950709F447C0F983EA837D836C8396E096 -:104C3000929FD001939FB00D1124A556BE4FFE0147 -:104C4000319601900D929A95E1F780939A010E9416 -:104C50007A2316E08091990190919A018917B9F110 -:104C6000189FC001112485569E4F0E94042488235A -:104C700071F1E09199011E9FF0011124E556FE4F5C -:104C80004081518162817381848195810E946A2370 -:104C90008091990190E001968770992780939901FE -:104CA000D9CF4F81588569857A858B859C850E94EF -:104CB0006A23CFCF0E94342310929A011092990157 -:104CC000EBECF1E086E0DF011D928A95E9F72C9686 -:104CD0000FB6F894DEBF0FBECDBFDF91CF911F910D -:104CE0000895EF92FF920F931F93CF93DF938C0160 -:104CF000892B09F46CC0F12CEE24E394E801219691 -:104D0000F8018491843740F4843008F051C0813038 -:104D100081F0823019F15BC0853709F444C0A8F1F5 -:104D20009CE7980F903708F052C08F770E9465205B -:104D300041C00E5F1F4FFE01849190E2980F9830A2 -:104D400050F48770FE2D01C0FF0F8A95EAF78F2F70 -:104D50000E94062914C00E949D1F2DC00E5F1F4F88 -:104D6000FE01849190E2980F983060F48770FE2DD8 -:104D700001C0FF0F8A95EAF78F2F0E940C290E942D -:104D80002D2919C00E94652016C00E5F1F4FFE011D -:104D9000C491CC2381F08FE99FE00197F1F700C027 -:104DA0000000C150F6CF0E5F1F4FFE01F49003C00C -:104DB0000E949D1F8E018F2D882309F49FCFEFE95C -:104DC000FFE03197F1F700C000008150F5CFDF918F -:104DD000CF911F910F91FF90EF90089508956093E8 -:104DE000D5017093D6018093D7019093D8010C948C -:104DF00020230F931F930091D5011091D60120918C -:104E0000D7013091D801DC01CB01802B912BA22B53 -:104E1000B32B8093D5019093D601A093D701B09383 -:104E2000D8011F910F910C9420230F931F93009191 -:104E3000D5011091D6012091D7013091D801DC0124 -:104E4000CB0180239123A223B3238093D501909398 -:104E5000D601A093D701B093D8011F910F910C9464 -:104E600020230F931F930091D5011091D60120911B -:104E7000D7013091D801DC01CB0180279127A227EF -:104E8000B3278093D5019093D601A093D701B09317 -:104E9000D8011F910F910C9420231092D1011092F0 -:104EA000D2011092D3011092D4010C94202341E03E -:104EB00050E060E070E004C0440F551F661F771F8C -:104EC0008A95D2F74093D1015093D2016093D301D8 -:104ED0007093D4010C94202341E050E060E070E036 -:104EE00004C0440F551F661F771F8A95D2F7809123 -:104EF000D1019091D201A091D301B091D401482B5E -:104F0000592B6A2B7B2B4093D1015093D201609394 -:104F1000D3017093D4010C94202341E050E060E071 -:104F200070E004C0440F551F661F771F8A95D2F7A3 -:104F300040955095609570958091D1019091D201E6 -:104F4000A091D301B091D401482359236A237B2334 -:104F50004093D1015093D2016093D3017093D40157 -:104F60000C94202341E050E060E070E004C0440F66 -:104F7000551F661F771F8A95D2F78091D1019091B6 -:104F8000D201A091D301B091D401482759276A27B3 -:104F90007B274093D1015093D2016093D30170934A -:104FA000D4010C9420230F931F930091D1011091F1 -:104FB000D2012091D3013091D401DC01CB01802BAF -:104FC000912BA22BB32B8093D1019093D201A0936C -:104FD000D301B093D4011F910F910C9420230F9310 -:104FE0001F930091D1011091D2012091D3013091F2 -:104FF000D401DC01CB0180239123A223B32380932E -:10500000D1019093D201A093D301B093D4011F9109 -:105010000F910C9420230F931F930091D1011091B5 -:10502000D2012091D3013091D401DC01CB01802742 -:105030009127A227B3278093D1019093D201A09307 -:10504000D301B093D4011F910F910C9420230895A4 -:10505000CF92DF92EF92FF920F931F93CF93DF9344 -:105060008C01C090D101D090D201E090D301F0909A -:10507000D4018091D5019091D601A091D701B09132 -:10508000D801C82AD92AEA2AFB2ACFE1D0E0D701E1 -:10509000C6010C2E04C0B695A795979587950A94DE -:1050A000D2F780FD04C0219790F780E007C0B801D7 -:1050B0008C2F0E94010C0197B1F38C2FDF91CF91BF -:1050C0001F910F91FF90EF90DF90CF900895CF93B5 -:1050D000DF93EC010E942828BE010E94010CDF91A1 -:1050E000CF910895CB010E94672808958091D9013E -:1050F00085958595859508958091D9018770089546 -:1051000098E0899F90011124262B2093D9010C94BB -:105110006C272091D901809582238093D901982F03 -:10512000977069F430E0482F082E000C550B2417B7 -:10513000350729F08595859585950C948D270895DB -:105140009091D901977081E009F480E00895209151 -:105150000D0130910E01F90132969FEF40E051911F -:10516000851789F09F3F19F4511101C0942F4F5FAB -:105170004630A9F79F3F39F0F901E90FF11D97FD7E -:10518000FA9582830895089520910D0130910E01C2 -:10519000F9013296285F3F4F9081891301C0108238 -:1051A0003196E217F307C1F7089581E090E0E091AE -:1051B0000D01F0910E01E80FF91F10820196883061 -:1051C0009105A9F708958091E50108959091E50171 -:1051D000892B8093E501089580959091E5018923BD -:1051E0008093E50108951092E50108959091E401FE -:1051F000892B8093E401089580959091E40189239F -:105200008093E40108951092E40108959091E301E0 -:10521000892B8093E301089580959091E301892380 -:105220008093E30108951092E30108958093DA01D9 -:1052300008951092DA01089580910D0190910E0168 -:10524000FC0131969C01285F3F4F80E091919111C4 -:105250008F5FE217F307D1F70895E0910D01F09108 -:105260000E018091E5018083E0910D01F0910E0126 -:1052700090818091E401892B8083E0910D01F09170 -:105280000E0190818091E301892B80838091DA0166 -:10529000882361F0E0910D01F0910E019081892B3E -:1052A00080830E941C2981111092DA0180910D01E6 -:1052B00090910E010C94151E909347018093460126 -:1052C000089520E0009739F0AC0141505109842342 -:1052D00095232F5FF7CF822F08958295982F937390 -:1052E00044E0949F900111248C7C86958695282B10 -:1052F000822F8575880F2A7A2695822B08951F9311 -:10530000CF93DF931F92CDB7DEB799830E946D29AB -:10531000182F9981892F0E946D29212F30E0322F7B -:105320002227A901482BCA010F90DF91CF911F912D -:10533000089580913502843051F11092E70120E404 -:1053400088E190E00FB6F894A895809360000FBEB6 -:105350002093600080E00E94D90980E00E94360E10 -:1053600083B7817F846083BF83B7816083BF789474 -:10537000889583B78E7F83BF0FB6F894A8958091E8 -:105380006000886180936000109260000FBE0895F5 -:10539000089580E00E94D9090E944C0E0E94CF0E11 -:1053A0000E94C8290E94950F91E0811101C090E0F0 -:1053B000892F08950E94342380E00E94D9090E9419 -:1053C00055340E94091E0C94360E1F920F920FB690 -:1053D0000F9211248F939F93AF93BF938091E70116 -:1053E000811113C08091E8019091E901A091EA0137 -:1053F000B091EB014196A11DB11D8093E8019093FE -:10540000E901A093EA01B093EB01BF91AF919F91A5 -:105410008F910F900FBE0F901F90189582E084BD62 -:1054200093E095BD9AEF97BD80936E0008952FB7D6 -:10543000F8948091E8019091E901A091EA01B0917E -:10544000EB012FBF0895CF92DF92EF92FF920F935F -:105450001F932FB7F8944091E8015091E9016091B2 -:10546000EA017091EB012FBF6A017B01EE24FF245A -:105470008C0120E030E0C016D106E206F30610F4FD -:10548000415051099A01281B390BC9011F910F91F5 -:10549000FF90EF90DF90CF9008951F920F920FB67C -:1054A0000F9211248F939F93AF93BF938091E80144 -:1054B0009091E901A091EA01B091EB010196A11D43 -:1054C000B11D8093E8019093E901A093EA01B093A4 -:1054D000EB01BF91AF919F918F910F900FBE0F90F5 -:1054E0001F9018950E94021BF8942FEF87EA91E60F -:1054F000215080409040E1F700C0000087E090EB31 -:10550000DC0180933F0290934002A0934102B0934C -:1055100042029CE088E10FB6F894A8958093600061 -:105520000FBE90936000FFCFAF92BF92CF92DF92F9 -:10553000EF92FF920F931F93CF93C4E0CC24C394B8 -:10554000D12CE82EF12C8C2F0E94520F5C010DE023 -:1055500010E0C601002E02C0880F991F0A94E2F7DE -:105560008A219B21892B51F0602F7C2F80E00E94A3 -:10557000A70DE816F90611F481E006C001501109E3 -:1055800040F7C15000F780E0CF911F910F91FF903D -:10559000EF90DF90CF90BF90AF900895CF93C82F3A -:1055A0008CE20E94942A882321F08C2FCF910C94B6 -:1055B000942A80E0CF910895CF930E942C2C8111E2 -:1055C00002C00E940D2C8CE898E00E941709C5E6E5 -:1055D000C15049F00E94CF0E8FE39CE90197F1F78B -:1055E00000C00000F5CF85E898E00E94170989E225 -:1055F0000E94CE2A81110FC18AE20E94CE2A811117 -:105600000E940D2C85E00E94CE2A81110E94722AF0 -:105610000E94372C8093E60187E00E94CE2A8823DF -:10562000A9F18BE10E94CE2A882351F08091E601F6 -:1056300081FB222720F991E0922790FB81F90EC08F -:105640008EE00E94CE2A882361F08091E60182FBE1 -:10565000222720F991E0922790FB82F98093E601BE -:1056600015C080E10E94CE2A9091E601882341F086 -:1056700093FB222720F981E0822780FB93F904C065 -:10568000892F809580FB90F99093E6018091E60147 -:105690000E943B2C0E94492C90E09093F80180934B -:1056A000F70180EE0E94CE2A882341F08091F70115 -:1056B000982F909590FB80F98093F70189E30E94E1 -:1056C000CE2A882359F08091F70181FB222720F907 -:1056D00091E0922790FB81F98093F70182EE0E947E -:1056E000CE2A882359F08091F70182FB222720F9E6 -:1056F00091E0922790FB82F98093F70186EE0E9459 -:10570000CE2A882359F08091F70183FB222720F9C4 -:1057100091E0922790FB83F98093F70183EE0E943A -:10572000CE2A882359F08091F70184FB222720F9A3 -:1057300091E0922790FB84F98093F70185E30E9422 -:10574000CE2A882359F08091F70185FB222720F982 -:1057500091E0922790FB85F98093F70181E30E9405 -:10576000CE2A882359F08091F70186FB222720F961 -:1057700091E0922790FB86F98093F70181E10E94E6 -:10578000CE2A882359F08091F70187FB222720F940 -:1057900091E0922790FB87F98093F7018091F701C0 -:1057A0000E944D2C87E20E94CE2AC82F8EE10E94D3 -:1057B000CE2A8111C2608FE10E94CE2A8111C4607D -:1057C00080E20E94CE2A8111C86081E20E94CE2A26 -:1057D0008111C06182E20E94CE2A8111C06283E2FF -:1057E0000E94CE2A8111C06484E20E94CE2A8823BE -:1057F00011F0C06802C0CC2329F08C2F0E94442CE9 -:105800006C2F03C00E94402C682F70E080E090E075 -:10581000CF910C94EF26CF9108956DEE7EEF80E04E -:1058200090E00E94D53660E082E090E00E94B736BA -:1058300060E083E090E00E94B73660E084E090E0B2 -:105840000E94B73660E085E090E00E94B73660E0E5 -:1058500086E090E00C94B73680E090E00E94B1368C -:1058600021E08D3E9E4F09F020E0822F089582E0D6 -:1058700090E00C94A336682F82E090E00C94B73649 -:1058800083E090E00C94A336682F83E090E00C94C2 -:10589000B73684E090E00C94A336682F84E090E063 -:1058A0000C94B73686E090E00C94A336682F86E01F -:1058B00090E00C94B7368091EE0180FF0BC06091B0 -:1058C000120185E0689FB001112475956795759563 -:1058D00067952BC081FF09C06091120185E0689F28 -:1058E000B00111247595679520C082FF07C06091B3 -:1058F000120185E0689FB001112417C09091EF015B -:105900009923D1F060911101961788F72091120127 -:1059100085E0289F90011124929FA001939F500D34 -:10592000112470E0CA010E9489366038710540F484 -:105930006115710519F406C065E070E0862F0895C1 -:105940008FE7089581E008958091EE0180FF08C0FF -:105950006091100170E0759567957595679521C008 -:1059600081FF06C06091100170E07595679519C0C0 -:1059700082FF04C06091100170E010C09091EF01AF -:10598000992399F060910F019617A0F7809110016B -:10599000899FC001112470E00E948936603871052A -:1059A00040F46115710519F406C061E070E0862FBE -:1059B00008958FE7089581E00895803F21F40E94C3 -:1059C0005B2C819504C0813F29F40E945B2C80935D -:1059D000F2010895823F21F40E945B2C819504C05E -:1059E000833F29F40E945B2C8093F1010895893F45 -:1059F00019F40E94A42C05C08A3F31F40E94A42C03 -:105A000081958093F30108958B3F21F40E94A42C8B -:105A1000819504C08C3F29F40E94A42C8093F4014A -:105A20000895843F21F48091F001816017C0853F83 -:105A300021F48091F001826011C0863F21F48091B1 -:105A4000F00184600BC0873F21F48091F0018860F1 -:105A500005C0883F31F48091F00180618093F001AE -:105A600008958D3F21F48091EE0181600BC08E3F3F -:105A700021F48091EE01826005C08F3F29F480916E -:105A8000EE0184608093EE010895803F39F48091A7 -:105A9000F20187FF6CC01092F20169C0813F29F4C6 -:105AA0008091F2011816BCF362C09091F101823F1F -:105AB00029F497FF5CC01092F10159C0833F19F49B -:105AC0001916CCF354C0893F41F48091F3011816A4 -:105AD0000CF04DC01092F3014AC08A3F29F4809126 -:105AE000F30187FF44C0F6CF8B3F39F48091F40176 -:105AF00087FF3DC01092F4013AC08C3F29F4809199 -:105B0000F4011816BCF333C0843F21F48091F001F6 -:105B10008E7F17C0853F21F48091F0018D7F11C0E9 -:105B2000863F21F48091F0018B7F0BC0873F21F4E9 -:105B30008091F001877F05C0883F31F48091F001AA -:105B40008F7E8093F00113C08D3F21F48091EE0190 -:105B50008E7F0BC08E3F21F48091EE018D7F05C0BA -:105B60008F3F29F48091EE018B7F8093EE0180912D -:105B7000F10181110EC08091F20181110AC0809162 -:105B8000F301811106C08091F401811102C01092CD -:105B9000EF0108958091E60183FF7EC088EC98E0D4 -:105BA0000E9417098091F0011F928F9383EC98E077 -:105BB0009F938F930E94B00981EC98E00E9417098F -:105BC0008091F101282F082E000C330B3F938F9307 -:105BD0008EEB98E09F938F930E94B0098CEB98E036 -:105BE0000E9417098091F201282F082E000C330B18 -:105BF0003F938F9389EB98E09F938F930E94B00916 -:105C000087EB98E00E9417098091F301282F082E56 -:105C1000000C330B3F938F9384EB98E09F938F930B -:105C20000E94B00982EB98E00E9417098091F4016C -:105C3000282F082E000C330B3F938F938FEA98E0A8 -:105C40009F938F930E94B0098CEA98E00E941709F5 -:105C50008091EF011F928F9389EA98E09F938F9331 -:105C60000E94B00987EA98E00E9417098091EE012E -:105C70001F928F9384EA98E09F938F930E94B009BC -:105C800081EA98E00E9417098DB79EB74C960FB62F -:105C9000F8949EBF0FBE8DBF80EF91E00E945D1E05 -:105CA0000E94172A9093ED018093EC0108951F93B1 -:105CB000CF93DF938091EC019091ED010E94232A14 -:105CC000AC019091EF01992321F02091130130E074 -:105CD00006C0209114018AE0289F900111244217E8 -:105CE000530708F485C08091F101C091F201D09171 -:105CF000F3011091F401811107C0C11175C0D111D8 -:105D000073C0111171C074C09F3F19F09F5F9093D1 -:105D1000EF01181624F40E945B2C8093F10180910E -:105D2000F10187FF05C00E945B2C81958093F101F2 -:105D30001C1624F40E945B2C8093F2018091F201E6 -:105D400087FF05C00E945B2C81958093F2016091D2 -:105D5000F101662331F1C091F201CC2311F1062E3D -:105D6000000C770B880B990B0E94703523E333E30B -:105D700043E35FE30E94D4350E9438356093F1011C -:105D80006C2FCC0F770B880B990B0E94703523E397 -:105D900033E343E35FE30E94D4350E9438356093D8 -:105DA000F2011D1624F40E94A42C8093F30180912B -:105DB000F30187FF05C00E94A42C81958093F30115 -:105DC000111624F40E94A42C8093F4018091F40114 -:105DD00087FF05C00E94A42C81958093F401DF9178 -:105DE000CF911F910C94CA2D9F3F09F08FCFA0CF68 -:105DF000DF91CF911F910895E0EFF1E085E0DF01A1 -:105E00001D928A95E9F71092EF011092EE01089524 -:105E10008BEE9AE00E9417091F9281E08F931F92E8 -:105E200085E08F938DE99AE09F938F930E94B0094C -:105E30000F900F900F900F900F900F900895833058 -:105E4000E9F128F4813061F0823009F1089585305C -:105E500009F462C008F449C0863009F474C008959A -:105E600080911401262F30E0280F311D2F3F31057E -:105E700024F4680F6093140103C08FEF8093140122 -:105E8000809114011F928F9386ED99E072C08091EA -:105E90001301262F30E0280F311D2F3F310524F448 -:105EA000680F6093130103C08FEF809313018091FB -:105EB00013011F928F9384EC99E05BC080911201D3 -:105EC000262F30E0280F311D2F3F310524F4680FB5 -:105ED0006093120103C08FEF809312018091120131 -:105EE0001F928F9381EB99E044C080911101262F7E -:105EF00030E0280F311D2F3F310524F4680F6093E7 -:105F0000110103C08FEF80931101809111011F9245 -:105F10008F938CE999E02DC080911001262F30E0FD -:105F2000280F311D2F3F310524F4680F60931001B5 -:105F300003C08FEF80931001809110011F928F9307 -:105F400083E899E016C080910F01262F30E0280FDA -:105F5000311D2F3F310524F4680F60930F0103C0FA -:105F60008FEF80930F0180910F011F928F9388E62E -:105F700099E09F938F930E94B0090F900F900F901C -:105F80000F900895833081F128F4813059F08230E8 -:105F9000D1F00895853009F449C0B8F1863009F48C -:105FA00056C0089580911401681720F4861B8093D1 -:105FB000140102C010921401809114011F928F935A -:105FC00089E599E054C080911301681720F4861B7D -:105FD0008093130102C010921301809113011F924C -:105FE0008F9387E499E043C080911201681720F4F1 -:105FF000861B8093120102C010921201809112013F -:106000001F928F9384E399E032C080911101681749 -:1060100020F4861B8093110102C01092110180911F -:1060200011011F928F938FE199E021C0809110019F -:10603000681720F4861B8093100102C01092100193 -:10604000809110011F928F9386E099E010C080919B -:106050000F01681720F4861B80930F0102C0109275 -:106060000F0180910F011F928F938BEE98E09F9309 -:106070008F930E94B0090F900F900F900F9008958A -:10608000CF93C82F1F928F9380EF9BE09F938F93A6 -:106090000E94B00981E090E0A0E0B0E0BC01CD0139 -:1060A00004C0660F771F881F991FCA95D2F70E94F8 -:1060B000EF260F900F900F900F90CF910C943423F8 -:1060C000CF938732B0F58E3108F088C28E3009F454 -:1060D00002C200F5873009F4CBC1A8F4863009F07C -:1060E00083C28091E601817F8E7F8093E60187E401 -:1060F0009DE00E9417098BE191E10E94170981E060 -:106100008093F601B3C1883009F43FC08B3009F4A5 -:10611000A9C16AC2863109F424C220F4803109F48D -:10612000EEC162C2893109F405C28B3109F4BFC1E5 -:106130005BC2883309F496C150F4893209F450C225 -:10614000853309F44DC2873209F44AC24DC2833403 -:1061500009F446C228F48A3308F446C2895341C27E -:10616000883409F041C20E9434238FEF90E10E94ED -:1061700017099FEF23ED80E3915020408040E1F725 -:1061800000C000000E94722A71C18FE191E10E945B -:10619000170981E890E10E9417090E94402C1F9284 -:1061A0008F938EE790E19F938F930E94B0098CE7C5 -:1061B00090E10E9417090E94372CC82F89E690E1D0 -:1061C0000E9417091F92CF9384E690E19F938F93CB -:1061D0000E94B00982E690E10E94170988E590E1EB -:1061E0000E9417098C2F81701F928F9385E590E193 -:1061F0009F938F930E94B00983E590E10E94170955 -:1062000089E490E10E941709C1FB882780F91F9259 -:106210008F9386E490E19F938F930E94B00984E46A -:1062200090E10E94170988E390E10E941709C2FBE0 -:10623000882780F91F928F9385E390E19F938F9336 -:106240000E94B00983E390E10E9417098AE290E17D -:106250000E941709C3FBCC27C0F91F92CF9387E296 -:1062600090E19F938F930E94B00985E290E10E9494 -:1062700017090E94492CC82F81E190E10E9417095B -:106280001F92CF938CE090E19F938F930E94B0096F -:106290008AE090E10E94170981EF9FE00E941709B0 -:1062A0008C2F81701F928F938EEE9FE09F938F9320 -:1062B0000E94B0098DB79EB780960FB6F8949EBF26 -:1062C0000FBE8DBF8CEE9FE00E94170985ED9FE009 -:1062D0000E941709C1FB882780F91F928F9382EDD6 -:1062E0009FE09F938F930E94B00980ED9FE00E94F2 -:1062F00017098EEB9FE00E941709C2FB882780F9DF -:106300001F928F938BEB9FE09F938F930E94B00916 -:1063100089EB9FE00E94170987EA9FE00E94170916 -:10632000C3FB882780F91F928F9384EA9FE09F9395 -:106330008F930E94B00982EA9FE00E94170988E9C2 -:106340009FE00E941709C4FB882780F91F928F9352 -:1063500085E99FE09F938F930E94B00983E99FE0B6 -:106360000E94170981E89FE00E941709C5FB882752 -:1063700080F91F928F938EE79FE09F938F930E94E7 -:10638000B0098CE79FE00E94170980E69FE00E9419 -:106390001709C6FB882780F91F928F938DE59FE030 -:1063A0009F938F930E94B0098BE59FE00E9417098D -:1063B00083E59FE00E941709C7FBCC27C0F91F9215 -:1063C000CF9380E59FE09F938F930E94B0098EE466 -:1063D0009FE00E9417090E94522CC82F87E39FE07C -:1063E0000E9417091F92CF9382E39FE09F938F93A0 -:1063F0000E94B0098DB79EB780960FB6F8949EBFE5 -:106400000FBE8DBF80E39FE00E94170986E29FE0E8 -:106410000E9417098C2F81701F928F9383E29FE057 -:106420009F938F930E94B00981E29FE00E94170919 -:1064300088E19FE00E941709C6951F92CF9385E1DE -:106440009FE09F938F930E94B00983E19FE00E9499 -:1064500017098DB79EB708960FB6F8949EBF0FBE6A -:106460008DBF04C08EE69DE00E941709C1E0C1C047 -:106470008091E601C82FC095C170C0FB80F9809360 -:10648000E601CC2349F083EF90E10E941709809147 -:10649000E6018660886048C086EE90E10E94170998 -:1064A0008091E601897F877F8093E601DFCF90911D -:1064B000E60191FBCC27C0F981E0C827892FC0FBFA -:1064C00081F98093E601CC2319F089ED90E127C092 -:1064D0008BEC90E1C9CF9091E60192FBCC27C0F9FB -:1064E00081E0C827892FC0FB82F98093E601CC2385 -:1064F00019F08CEB90E113C08CEA90E1B5CF90914C -:10650000E60193FBCC27C0F981E0C827892FC0FBA7 -:1065100083F98093E601CC2351F080EA90E10E9458 -:1065200017098091E60181608093E60162C083E9EA -:1065300090E19ACF88E39DE00E9417098FE19DE0EA -:106540000E9417098DEE9CE00E94170986EC9CE0E2 -:106550000E94170986E89CE00E9417098BE59CE0E1 -:1065600083CF8DE49CE00E9417090E94091E1F92B0 -:106570008F9383E39CE09F938F930E94B009809157 -:106580000C011F928F938CE19CE09F938F930E944C -:10659000B009809187011F928F9389E09CE09F93BF -:1065A0008F930E94B0098091E8019091E901A09138 -:1065B000EA01B091EB01BF93AF939F938F9385EF67 -:1065C0009BE09F938F930E94B0098DB79EB7429630 -:1065D0000FB6F8949EBF0FBE8DBF48CF8D5101C03E -:1065E00080E00E94403042CF81E990E10E9417098B -:1065F000C0E08C2FCF91089580E008950C94FC3278 -:10660000CF93C82F8091F601813071F020F0823055 -:1066100009F44BC042C1E0910D01F0910E0180815F -:10662000823209F03CC107C0E0910D01F0910E01EA -:106630008081823261F48C2F0E94FE32811104C06D -:106640008C2F0E9460302FC081E090E02CC08C2FF6 -:106650000E94FC32811126C0C431E1F070F4CB30CD -:1066600081F0C031D1F40E94082F88EE9BE00E9497 -:10667000170982E08093F60115C0C93259F0C8337A -:1066800061F487E49DE00E9417098CEE9BE00E9474 -:10669000170908C01092F60104C186EE9BE00E9423 -:1066A0001709FFC081E08170FEC0C43228F5CE31E9 -:1066B00008F0C1C0CB30A1F1D0F4C73009F0D3C08D -:1066C0008EE18093140182E3809313018AE080932A -:1066D000120184E18093110188E08093100188E227 -:1066E00080930F018CE89AE00E941709BFC0C33164 -:1066F00049F1C431C1F0B7C0CB3409F4A9C028F4C2 -:10670000C93289F0C83361F0AEC0C13509F49EC00A -:10671000C23509F499C0CE3409F0A5C06AE09EC024 -:106720000E94082FA3C08091F501882319F01092D0 -:10673000F5019CC089E99AE00E94170981E08093E5 -:10674000F601B1C083E79AE00E94170981E69AE05A -:106750000E941709809114011F928F938EE59AE091 -:106760009F938F930E94B0098CE59AE00E941709CD -:106770008AE49AE00E941709809113011F928F9377 -:1067800087E49AE09F938F930E94B00985E49AE092 -:106790000E94170986E39AE00E941709809112016E -:1067A0001F928F9383E39AE09F938F930E94B00987 -:1067B00081E39AE00E94170980E29AE00E9417099B -:1067C000809111011F928F938DE19AE09F938F9397 -:1067D0000E94B0098BE19AE00E94170986E09AE0D6 -:1067E0000E941709809110011F928F9383E09AE015 -:1067F0009F938F930E94B00981E09AE00E9417094D -:106800008AEE99E00E94170980910F011F928F93E1 -:1068100087EE99E09F938F930E94B00985EE99E0EF -:106820000E9417098DB79EB748960FB6F8949EBF81 -:106830000FBE8DBF1BC0CE51EC2FF0E0E45CFE4FCD -:1068400080818093F50112C061E003C061E006C061 -:106850006AE08091F5010E941F2F08C08091F50128 -:106860000E94C22F03C08AE89AE013C08091F5010C -:10687000882369F01F928F9384E89AE09F938F9307 -:106880000E94B0090F900F900F900F9004C081E804 -:106890009AE00E94170981E006C01092F60180E09C -:1068A00002C080E000CFCF9108950E942C2C81116E -:1068B00002C00E940D2C0E94522C80933E0280FF49 -:1068C00002C0869501C080E00C94D90980913E02F7 -:1068D000982F9695292F30E0233031054CF49F5F97 -:1068E000990F8170892B816080933E020E94562C03 -:1068F0008091E60180FF0FC080913E0286951F9235 -:106900008F938CE691E19F938F930E94B0090F9033 -:106910000F900F900F9080913E0286950C94D909AC -:1069200080913E02982F969591F09158990F817021 -:10693000892B80933E028E7F91E009F490E0809154 -:106940003E0290FB80F980933E020E94562C80917B -:10695000E60180FF0FC080913E0286951F928F93C3 -:1069600084E591E19F938F930E94B0090F900F905F -:106970000F900F9080913E0286950C94D9098091DA -:106980003E02982F909590FB80F980933E020E94E2 -:10699000562C8091E60180FF0FC080913E028170ED -:1069A0001F928F938EE391E19F938F930E94B00982 -:1069B0000F900F900F900F9080913E0280FF02C0C9 -:1069C000869501C080E00C94D90990913E02892FF0 -:1069D00086958F5F8F779170843028F4880F892B8C -:1069E00080933E0202C090933E0280913E028E7FD1 -:1069F00091E009F490E080913E0290FB80F9809351 -:106A00003E020E94562C8091E60180FF0FC08091CB -:106A10003E0286951F928F938AE291E19F938F9316 -:106A20000E94B0090F900F900F900F9080913E023E -:106A300086950C94D90920913E02922F969589272C -:106A4000982F990F822F8170892B80933E028E7F21 -:106A500091E009F490E080913E0290FB80F98093F0 -:106A60003E020E94562C80913E0286950C94D909D4 -:106A70000E943F356894B1110C94CE3508950E9460 -:106A8000B33588F09F5798F0B92F9927B751B0F0D8 -:106A9000E1F0660F771F881F991F1AF0BA95C9F7A2 -:106AA00014C0B13091F00E94CD35B1E008950C943E -:106AB000CD35672F782F8827B85F39F0B93FCCF3F1 -:106AC000869577956795B395D9F73EF4909580951F -:106AD000709561957F4F8F4F9F4F0895E89409C03F -:106AE00097FB3EF490958095709561957F4F8F4F01 -:106AF0009F4F9923A9F0F92F96E9BB279395F69517 -:106B0000879577956795B795F111F8CFFAF4BB0F94 -:106B100011F460FF1BC06F5F7F4F8F4F9F4F16C0F8 -:106B2000882311F096E911C0772321F09EE8872F82 -:106B3000762F05C0662371F096E8862F70E060E03E -:106B40002AF09A95660F771F881FDAF7880F9695B7 -:106B5000879597F9089557FD9058440F551F59F0A0 -:106B60005F3F71F04795880F97FB991F61F09F3F3A -:106B700079F087950895121613061406551FF2CF63 -:106B80004695F1DF08C0161617061806991FF1CFB3 -:106B900086957105610508940895E894BB276627DA -:106BA0007727CB0197F908950E94E7350C94583662 -:106BB0000E944A3638F00E94513620F0952311F099 -:106BC0000C9441360C94473611240C94CE350E9417 -:106BD000AB3570F3959FC1F3950F50E0551F629F41 -:106BE000F001729FBB27F00DB11D639FAA27F00D26 -:106BF000B11DAA1F649F6627B00DA11D661F829F4D -:106C00002227B00DA11D621F739FB00DA11D621F31 -:106C1000839FA00D611D221F749F3327A00D611D4E -:106C2000231F849F600D211D822F762F6A2F112430 -:106C30009F5750409AF0F1F088234AF0EE0FFF1F63 -:106C4000BB1F661F771F881F91505040A9F79E3FBA -:106C5000510580F00C9441360C94CE355F3FE4F33F -:106C6000983ED4F3869577956795B795F795E79510 -:106C70009F5FC1F7FE2B880F911D9695879597F919 -:106C8000089597F99F6780E870E060E008959FEFAE -:106C900080EC089500240A941616170618060906B3 -:106CA000089500240A941216130614060506089582 -:106CB000092E0394000C11F4882352F0BB0F40F40A -:106CC000BF2B11F460FF04C06F5F7F4F8F4F9F4F4A -:106CD0000895991B79E004C0991F961708F0961B38 -:106CE000881F7A95C9F780950895AA1BBB1B51E1AF -:106CF00007C0AA1FBB1FA617B70710F0A61BB70B2C -:106D0000881F991F5A95A9F780959095BC01CD01D0 -:106D1000089597FB072E16F4009407D077FD09D04D -:106D20000E94753607FC05D03EF4909581959F4FE3 -:106D30000895709561957F4F0895EE0FFF1F0590A0 -:106D4000F491E02D0994F999FECF92BD81BDF89A96 -:106D5000992780B50895A6E1B0E044E050E00C9496 -:106D6000DD36A8E1B0E042E050E00C94DD36262F9D -:106D7000F999FECF92BD81BDF89A019700B4021631 -:106D800039F01FBA20BD0FB6F894FA9AF99A0FBEDF -:106D900008950396272F0E94B8360E94B736252FF4 -:106DA0000E94B836242F0C94B8360196272F0E94E3 -:106DB000B8360C94B736DC01CB01FC01F999FECF53 -:106DC00006C0F2BDE1BDF89A319600B40D92415073 -:0A6DD0005040B8F70895F894FFCF83 -:106DDA00FFFF6E1661173C170817D41601DB01284E -:106DEA0008140A321E0F1F6C766673491303534345 -:106DFA0079693309196F7F59404D36201208C50742 -:106E0A008F076F07FB0614072D07460701020304C5 -:066E1A000506070809004F -:00000001FF diff --git a/keyboards/kc60/keymaps/ws2812/readme.md b/keyboards/kc60/keymaps/ws2812/readme.md new file mode 100644 index 000000000..5588fd2d9 --- /dev/null +++ b/keyboards/kc60/keymaps/ws2812/readme.md @@ -0,0 +1,21 @@ +KC60 with WS2812 RGB Underglow +====================== + +![Image of KC60 with RGB Underglow](ws2812_example.jpg) + +## Quantum MK Firmware +For the full Quantum feature list, see [the parent readme.md](/readme.md). + +## WS2812 Support +By default, it is now setup for 16 LEDs on the PF5 breakout pin. See [included image](ws2812_wiring.jpg) for wiring reference. + +### Build +To build this keymap with WS2812 enabled, simply run `make KEYMAP=ws2812`. + +### Reference Images +![Wiring Reference](ws2812_wiring.jpg) +![RGB Strip turned on](ws2812_underside-lit.jpg) +![RGB Strip turned off](ws2812_underside.jpg) + +### Additional Credits +Keymap based on work by [TerryMatthews](https://github.com/TerryMathews) for GH60 Satan. diff --git a/keyboards/kc60/readme.md b/keyboards/kc60/readme.md new file mode 100644 index 000000000..acc0df68d --- /dev/null +++ b/keyboards/kc60/readme.md @@ -0,0 +1,27 @@ +KC60 (version 2.0) keyboard firmware +====================== + +## Quantum MK Firmware +For the full Quantum feature list, see [the parent readme.md](/readme.md). + +## Building +Download or clone the whole firmware and navigate to the keyboards/kc60 folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default +To build with the default keymap, simply run `make`. + +### Other Keymaps +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` in the keymaps folder, and see keymap document (you can find in top readme.md) and existent keymap files. + +To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: +``` +$ make KEYMAP=[default|jack|] +``` +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. + +## WS2812 Support +![Image of KC60 with RGB Underglow](keymaps/ws2812/ws2812_example.jpg) + +Build with WS2812 Support by running `make KEYMAP=ws2812`. diff --git a/keyboards/phantom/keymaps/default/compiled.hex b/keyboards/phantom/keymaps/default/compiled.hex deleted file mode 100644 index 5ee1e08d9..000000000 --- a/keyboards/phantom/keymaps/default/compiled.hex +++ /dev/null @@ -1,1496 +0,0 @@ -:100000000C945B070C949F070C949F070C949F071C -:100010000C949F070C949F070C949F070C949F07C8 -:100020000C949F070C949F070C94DB190C94AD1A49 -:100030000C94AA280C949F070C949F070C949F077C -:100040000C949F070C949F070C949F070C949F0798 -:100050000C949F070C9412290C949F070C949F07F3 -:100060000C949F070C949F070C949F070C949F0778 -:100070000C949F070C949F070C949F070C949F0768 -:100080000C9479140C949F070C949F070C949F0771 -:100090000C949F070C949F070C949F070C949F0748 -:1000A0000C949F070C949F070C949F0770088C0872 -:1000B000C40894089C08A408AC08B408BC081A1B1F -:1000C0003C1B2A1C3C1B2A1C811BA41B2A1CF91B41 -:1000D0000C1C781F781FA71FA71FE61F2B212B21A1 -:1000E0002B2106202B21B620B6201C212B212B21D1 -:1000F0002521C320C320C320C320C320C320C32085 -:10010000C320C320C320C320C320C320C320C320D7 -:10011000C320D320E120E820EF20F92000F001F0F7 -:1001200002F003F004F005F006F007F008F02900F3 -:1001300035003A003B003C003D003E003F004000DF -:10014000410042004300440045004600470048008B -:100150001E001F0020002100220023002400250093 -:10016000260027002D002E002A002A0049004A0000 -:100170004B002B0014001A000800150017001C008B -:1001800018000C00120013002F00300031004C004A -:100190004D004E00390004001600070009000A0057 -:1001A0000B000D000E000F00330034002800280063 -:1001B000280028002800E100E1001D001B000600C7 -:1001C0001900050011001000360037003800E50066 -:1001D000E500520052005200E000E300E2002C0073 -:1001E0002C002C002C002C002C002C00E600E7003A -:1001F0000151E400500051004F00010001000100D6 -:1002000001000100010001000100010001000100E6 -:1002100001000100010001000100010001000100D6 -:1002200001000100010001000100010001000100C6 -:1002300001000100007000700100010001000100D8 -:1002400001000100010001000100010001000100A6 -:100250000100010001000100010001000100010096 -:100260000100010001000100010001000100010086 -:100270000100010001005200010001000100010025 -:1002800001000100010001200220032004200520BC -:1002900006200720082001000100010001000100E4 -:1002A0000100010001000100010001000100010046 -:1002B0000100010001000100010001000100010036 -:1002C0000100010001000A44454255473A20656E8D -:1002D00061626C65642E0A005374617465206F66F8 -:1002E00020726F772025583A2025303136620A0077 -:1002F00048756D616E2D7265616461626C65206D1B -:1003000061747269782073746174653A0D0A0044EF -:1003100065626F756E63696E672064656C617920D4 -:1003200072656D61696E696E673A2025580A0054DE -:10033000494D4552332064697361626C65642E0ACD -:100340000054494D45523320656E61626C65642EE0 -:100350000A007267626C696768742073657420684C -:100360007376205B454550524F4D5D3A2025752CE4 -:1003700025752C25750A007267626C6967687420A0 -:10038000746F67676C653A207267626C696768743E -:100390005F636F6E6669672E656E61626C65203D96 -:1003A0002025750A007267626C69676874206D6F3A -:1003B00064653A2025750A007267626C6967687423 -:1003C0005F696E6974207267626C696768745F63E5 -:1003D0006F6E6669672E6D6F6465203D20302E203C -:1003E00057726974652064656661756C7420766106 -:1003F0006C75657320746F20454550524F4D2E0A21 -:10040000007267626C696768745F696E6974206501 -:1004100065636F6E666967206973206E6F7420650F -:100420006E61626C65642E0A007267626C6967684F -:10043000745F696E6974207374617274210A00724A -:1004400067626C696768745F696E69742063616C68 -:100450006C65642E0A007267626C696768745F631A -:100460006F6E6669672E76616C203D2025640A00F8 -:100470007267626C696768745F636F6E6669672E26 -:10048000736174203D2025640A007267626C69679D -:1004900068745F636F6E6669672E687565203D20BE -:1004A00025640A007267686C696768745F636F6EC1 -:1004B0006669672E6D6F6465203D2025640A0072B1 -:1004C00067626C696768745F636F6E6669672E65E3 -:1004D0006E61626C65203D2025640A007267626C63 -:1004E000696768745F636F6E666967206570726FB5 -:1004F0006D0A006565636F6E6669675F757064613C -:1005000074655F7267626C696768745F6465666171 -:10051000756C740A00643214643214783C1E1E1424 -:100520000A0500000000010101020203040505069E -:1005300007090A0B0C0E0F1112141517191B1D1F9A -:10054000212325282A2C2F313436393B3E4143467E -:10055000494C4F5255585A5D6164676A6D707376A5 -:10056000797C7F8386898C8F9295989B9EA2A5A784 -:10057000AAADB0B3B6B9BCBEC1C4C6C9CBCED0D388 -:10058000D5D7DADCDEE0E2E4E6E8EAEBEDEEF0F126 -:10059000F3F4F5F6F8F9FAFAFBFCFDFDFEFEFEFFBA -:1005A000FFFFFFFFFFFFFEFEFEFDFDFCFBFAFAF979 -:1005B000F8F6F5F4F3F1F0EEEDEBEAE8E6E4E2E06C -:1005C000DEDCDAD7D5D3D0CECBC9C6C4C1BEBCB968 -:1005D000B6B3B0ADAAA7A5A29E9B9895928F8C8921 -:1005E0008683807C797673706D6A6764615D5A5822 -:1005F00055524F4C494643413E3B393634312F2CFE -:100600002A282523211F1D1B1917151412110F0E3F -:100610000C0B0A090706050504030202010101008B -:1006200000000001010202020202020303030303AD -:100630000303030303030303030404040404040483 -:10064000040404040405050505050505050505065E -:10065000060606060606060707070707070708082F -:10066000080808080909090909090A0A0A0A0A0BF7 -:100670000B0B0B0B0C0C0C0C0C0D0D0D0D0E0E0EB4 -:100680000E0F0F0F10101010111111121212131360 -:1006900013141414151516161617171818191919F6 -:1006A0001A1A1B1B1C1C1D1D1E1E1F20202121226F -:1006B00023232424252626272828292A2B2B2C2DC2 -:1006C0002E2F30303132333435363738393A3B3CDF -:1006D0003D3E3F40414244454647494A4B4C4E4FC0 -:1006E0005152535556585A5B5D5E60626365676947 -:1006F0006B6D6E70727476797B7D7F818486888B5A -:100700008D909295979A9D9FA2A5A8ABAEB1B4B7D4 -:10071000BABEC1C4C8CBCFD3D6DADEE2E6EAEEF287 -:10072000F8FF5B735D004B6579626F6172642073E3 -:10073000746172742E0A005B575D005B535D005B51 -:10074000525D005B445D005B435D00200350004848 -:100750000041004E0054004F004D00200052004761 -:1007600000420020004D004F0044000000100350E4 -:1007700000480041004E0054004F004D00000004AE -:1007800003090409027400040100A0FA090400002E -:1007900001030101000921110100012240000705A8 -:1007A000810308000A090401000103000000092177 -:1007B000110100012236000705820308000A09041E -:1007C00002000203000000092111010001222000A3 -:1007D0000705830320000107050303200001090426 -:1007E000030001030000000921110100012239006A -:1007F000070584031000011201100100000008ED3C -:10080000FE606003000102000105010906A1010567 -:100810000719E029E71500250195087501810205F2 -:100820000819012905950575019102950175039136 -:1008300001050719002977150025019578750181B3 -:1008400002C00631FF0974A1010975150025FF9545 -:1008500020750881020976150025FF9520750891FD -:1008600002C005010980A101850216010026B7001A -:100870001A01002AB700751095018100C0050C0906 -:1008800001A1018503160100269C021A01002A9C81 -:1008900002751095018100C005010906A101050737 -:1008A00019E029E7150025019508750181029501D8 -:1008B0007508810105081901290595057501910241 -:1008C0009501750391010507190029FF150026FF01 -:1008D00000950675088100C00A00253032582000B6 -:1008E0006B6579626F6172645F7265706F72743A82 -:1008F00020004B6579626F617264204C454473201F -:1009000073746174653A2025780A0064656C5F6BC6 -:1009100065795F6269743A2063616E27742064654B -:100920006C3A20253032580A006164645F6B657947 -:100930005F6269743A2063616E2774206164643A6F -:1009400020253032580A00646F6E652E0A00626FEF -:100950006F676D61676963207363616E3A202E2E45 -:100960002E20003F00433E20004C25640A0074699D -:100970006D65725F636F756E743A202530346C5804 -:100980000A006B6579626F6172645F6E6B726F3AB9 -:100990002025580A006B6579626F6172645F696433 -:1009A0006C653A2025580A006B6579626F61726444 -:1009B0005F70726F746F636F6C3A2025580A00681D -:1009C0006F73745F6B6579626F6172645F6C65648D -:1009D0007328293A2025580A000A092D20537461EA -:1009E000747573202D0A004743433A20342E392E64 -:1009F00032204156522D4C4942433A20312E382E56 -:100A000031204156525F415243483A206176723557 -:100A10000A004F5054494F4E533A204C55464120FE -:100A2000424F4F544D414749432045585452414B42 -:100A3000455920434F4E534F4C4520434F4D4D4158 -:100A40004E44204E4B524F20343039360A00425526 -:100A5000494C443A20383963643532662D646972F2 -:100A60007479202831353A35353A3233204A756E5B -:100A70002032312032303136290A005649443A209A -:100A8000307846454544285048414E544F4D292022 -:100A90005049443A20307836303630285048414E5C -:100AA000544F4D20524742204D4F44292056455225 -:100AB0003A203078303030330A00444553433A20EE -:100AC000514D4B206B6579626F617264206669726B -:100AD0006D7761726520666F72205048414E544FA9 -:100AE0004D20544B4C0A000A092D2056657273693B -:100AF0006F6E202D0A000A092D20436F6E736F6CF4 -:100B000065202D0A4553432F713A09717569740A9E -:100B1000000A092D204D61676963202D0A443A09B6 -:100B20004465627567204D65737361676520546F16 -:100B300067676C650A583A094D6174726978204498 -:100B400065627567204D6F646520546F67676C65DB -:100B5000202D2053686F77206B65797072657373F1 -:100B6000657320696E206D6174726978206772699F -:100B7000640A4B3A094B6579626F6172642044657F -:100B800062756720546F67676C65202D2053686F0E -:100B900077206B65797072657373207265706F7200 -:100BA000740A4D3A094465627567204D6F75736527 -:100BB00020546F67676C650A563A09566572736907 -:100BC0006F6E0A533A095374617475730A433A0994 -:100BD000416374697661746520436F6E736F6C65F1 -:100BE000204D6F64650A46312D4631303A095377FE -:100BF0006974636820746F204C6179657220302DB0 -:100C0000392028463130203D204C30290A302D39FA -:100C10003A0953776974636820746F204C61796571 -:100C20007220302D390A4553433A0953776974636A -:100C30006820746F204C6179657220302028616CC7 -:100C40007465726E617465206B65792031290A477D -:100C5000524156453A0953776974636820746F208E -:100C60004C6179657220302028616C7465726E6108 -:100C70007465206B65792032290A50415553453AF5 -:100C8000094A756D7020746F20426F6F746C6F61CC -:100C900064657220285265736574290A453A0950C3 -:100CA00072696E7420454550524F4D2053657474DF -:100CB000696E67730A4E3A094E4B524F20546F6764 -:100CC000676C650A000A002575002E6E6B726F3A1C -:100CD00020000A002575002E737761705F626163E2 -:100CE0006B736C6173685F6261636B737061636582 -:100CF0003A20000A002575002E737761705F6772D5 -:100D00006176655F6573633A20000A002575002EE1 -:100D10006E6F5F6775693A20000A002575002E73B3 -:100D20007761705F72616C745F726775693A2000F9 -:100D30000A002575002E737761705F6C616C745FBB -:100D40006C6775693A20000A002575002E63617092 -:100D5000736C6F636B5F746F5F636F6E74726F6CD5 -:100D60003A20000A002575002E737761705F636F6B -:100D70006E74726F6C5F636170736C6F636B3A203B -:100D8000000A0025303258006B65796D61705F6331 -:100D90006F6E6669672E7261773A20000A002575CA -:100DA000002E6D6F7573653A20000A002575002EC0 -:100DB0006B6579626F6172643A20000A00257500E4 -:100DC0002E6D61747269783A20000A002575002E34 -:100DD000656E61626C653A20000A00253032580069 -:100DE00064656275675F636F6E6669672E726177AF -:100DF0003A20000A0025750064656661756C745FB1 -:100E00006C617965723A20003F004E4B524F3A2098 -:100E10006F66660A004E4B524F3A206F6E0A000A08 -:100E20006D6F7573653A206F66660A000A6D6F759F -:100E300073653A206F6E0A000A6B6579626F6172A2 -:100E4000643A206F66660A000A6B6579626F6172A8 -:100E5000643A206F6E0A000A6D61747269783A20F4 -:100E60006F66660A000A6D61747269783A206F6E67 -:100E70000A000A64656275673A206F66660A000AAE -:100E800064656275673A206F6E0A000A0A4A756DDA -:100E900070696E6720746F20626F6F746C6F61642D -:100EA00065722E2E2E2000433E20006565636F6E16 -:100EB0006669673A0A0011241FBECFEFDAE0DEBF91 -:100EC000CDBF04B603FE24C08091630290916402FA -:100ED000A0916502B09166028730904BA740B04B5D -:100EE000B9F410926302109264021092650210929B -:100EF000660214BE84B7877F84BF88E10FB6F8947A -:100F000080936000109260000FBEE0E0F8E3099566 -:100F100011E0A0E0B1E0EAE2FDE502C005900D922B -:100F2000AC33B107D9F712E0ACE3B1E001C01D92D8 -:100F3000A336B107E1F70E9419170C94932E0C9475 -:100F40000000FF93EF93E0913C01F0913D01309759 -:100F500009F00995EF91FF910895FC01859180308A -:100F600011F0EFDFFBCF0895FF27E0E230E247FF0B -:100F70000CC0419597FF09C0EDE260957095809592 -:100F80009095611D711D811D911D27FF02C0219546 -:100F900030E350E2AA27660F771F881F991FAA1F08 -:100FA000A41710F0A41B63955A95A9F7AA3008F06E -:100FB000A95FA05DAF93F39561157105810591055A -:100FC00041F7ED3211F4EF93F395F21718F43F93D4 -:100FD000F395FBCF8F91B5DFFA95E1F70895E9918D -:100FE000F9918591803021F0853219F0AADFF9CF8F -:100FF000089520E0E89455915532C1F3503311F42F -:10100000689455915A3348F4505390F3220F022EAE -:10101000220F220F200D250FF4CF0EF42195899178 -:101020009991533619F3533729F1533559F1BC01CE -:1010300088279927E8945C3621F4899199916894DE -:101040005591543639F446EF7EF077FF0DC08FEF9F -:101050009FEF0AC055374AE039F0583540E121F09A -:10106000523642E009F00895FF93EF937DDFEF9150 -:10107000FF91B7CFFF93EF93FC0181918030B9F3DB -:1010800060DFFBCFFF93EF9368DFF1CFDF93CF9368 -:10109000CDB7DEB72596A3DFCF91DF91089581FF0D -:1010A00002C02E9A01C02E9882FF02C02F9A089586 -:1010B0002F980895089508950E945A080C947C0C66 -:1010C0000C945B08CF93DF93DC01462F50E049304E -:1010D000510508F061C0FA01EA5AFF4F0C94452E01 -:1010E000EC010E94B227827280933E019A8199237B -:1010F00059F0882311F085E301C089E20E940A2794 -:10110000DF91CF910C94FC27882311F085E301C077 -:1011100089E20E945D27F4CF12968C918823E1F139 -:10112000DF91CF910C941C1212968C918823A1F11F -:10113000DF91CF910C94881012968C91882361F1E5 -:10114000DF91CF910C94A01012968C91882321F1FD -:10115000DF91CF910C94BF1012968C918823E1F00F -:10116000DF91CF910C94DA1012968C918823A1F024 -:10117000DF91CF910C94F41012968C91882361F03A -:10118000DF91CF910C940F1112968C91882321F04E -:10119000DF91CF910C941212DF91CF91089581E0ED -:1011A000089581E008950C94D10808950F931F933A -:1011B000CF93DF938C01FC01C081D181CE010E94CD -:1011C0008B26BE010E94ED0BEC01B8010E94D308F2 -:1011D000882309F474C1F8018281882309F45BC073 -:1011E00080914A0181111FC0C431F0E7DF0709F087 -:1011F0000AC10E94D50881E080934A010E94DC2840 -:10120000909349018093480110924101109243014B -:101210001092420110924501109244011092470130 -:10122000109246014CC180914801909149010E9461 -:10123000E828883C910570F480914101E82FF0E0A6 -:10124000EE0FFF1FEE5BFE4FD183C0838F5F809355 -:10125000410135C1C43120E7D20708F028C1C230AE -:1012600080E7D80710F5C11590E7D90709F0DAC073 -:10127000F8018281882309F4BFC00E949221FFEF08 -:1012800024E38CE0F15020408040E1F700C00000F2 -:101290000E94372914C1C431F0E7DF0708F0D3C03A -:1012A000C23020E7D20708F49BC0F801828188236E -:1012B00009F4A2C00E94F92A811102C00E94D82A12 -:1012C0000E94162B90E09093110280931002C2307E -:1012D000F0E7DF0721F48091100281607AC0C3300B -:1012E00020E7D20721F480911002826072C0C430DE -:1012F00080E7D80721F48091100284606AC0C5306D -:1013000090E7D90719F48091100227C0C630E0E7B2 -:10131000DE0721F48091100280615BC0C730F0E7E6 -:10132000DF0721F480911002806253C0C83020E7AB -:10133000D20721F48091100280644BC0C93080E74D -:10134000D80721F480911002806843C0CA3090E72A -:10135000D90729F480911002846088603AC0CB30AC -:10136000E0E7DE0721F4809110028E7F32C0CC309E -:10137000F0E7DF0721F4809110028D7F2AC0CD3085 -:1013800020E7D20721F4809110028B7F22C0CE305B -:1013900080E7D80719F4809110021AC080911002DA -:1013A000CF3090E7D90711F48F7E13C0C031E0E74A -:1013B000DE0711F48F7D0DC0C131F0E7DF0711F4B6 -:1013C0008F7B07C0C231D04711F48F7702C08B7F6B -:1013D000877F80931002809110020E941A2B6FC0A9 -:1013E000C11580E7D80741F0C130D047F1F081E066 -:1013F00080933F0180934001C801DF91CF911F91FD -:101400000F910C94CF08C43120E7D20708F04FC0E9 -:10141000C23080E7D80708F048CFC11590E7D90758 -:1014200009F42BCFC130D04711F7F801828188230E -:1014300019F386EC92E00E94AD0780910902816069 -:10144000809309023CC0C333E0E7DE07A1F4F80152 -:101450008281882321F010923F0182E017C08091A1 -:101460003F01811106C086E20E941C1E86E20E9496 -:10147000E41E82E019C0C433D04709F0B8CFF801A8 -:101480008281882331F01092400180E20E94331F54 -:1014900016C080914001811106C087E20E941C1E87 -:1014A00087E20E94E41E80E20E943A1F08C0C33314 -:1014B000F0E7DF0761F2C433D04709F398CF80E04B -:1014C000DF91CF911F910F9108950C945C080C94BB -:1014D000600821E1729FF001112446E6849FE00D2F -:1014E000F11D1124E60FF11DEE0FFF1FE25DFE4F0F -:1014F000859194910E94FF0B811560E49607B0F5E9 -:10150000811570E3970708F0DEC0803E9105D8F49E -:10151000803C910508F06CC0883A910578F4853AD2 -:10152000910508F06BC08130910509F452C108F4AF -:101530000FC18430910508F04CC10AC18B3B910565 -:1015400008F467C005C18F3F910509F048F4803F5A -:10155000910508F0ADC0883E910508F43AC1F8C085 -:10156000811520E2920708F0A5C00895811543E592 -:10157000940790F4811562E5960708F0C8C08115BC -:1015800071E5970708F0BEC0811520E5920708F0C5 -:101590009DC09F70906A0895811545E59407D8F421 -:1015A000811564E5960708F0C8C0482F4695469512 -:1015B00070E2479FA00111248370992721E030E059 -:1015C000B90102C0660F771F8A95E2F7CB01842B21 -:1015D000952B9A680895811576E5970708F4B2C0AF -:1015E0009C0130562115304108F0B2C09F70AEC04A -:1015F000FC01EE0FFF1FE456F04062C0853A9105F2 -:1016000009F4A9C0863A910509F0A8C082E890E4DF -:101610000895883A910509F4A4C0893A910509F41E -:10162000A3C08A3A910509F4A2C08B3A910509F446 -:10163000A1C08C3A910509F4A0C08D3A910509F436 -:101640009FC0803B910509F49EC08E3A910509F434 -:101650009DC08F3A910509F49CC0813B910509F426 -:101660009BC0823B910509F49AC0833B910509F424 -:1016700099C0843B910509F498C0853B910509F414 -:1016800097C0863B910509F496C0873B910509F404 -:1016900095C0883B910509F494C0893B910509F4F4 -:1016A00093C08A3B910509F492C080E094E40895C8 -:1016B00090650895FC01FF70EE0FFF1FE45EFE4F82 -:1016C0008591949108959927906C0895482F4370BF -:1016D00021E030E002C0220F331F4A95E2F73C6858 -:1016E000AC0164E0569547956A95E1F74370342B59 -:1016F0008F708695869560E2869FC0011124822BAB -:10170000932B0895982F8827816F906A0895482F0A -:101710004695469570E2479FA00111248370992752 -:1017200021E030E0B90102C0660F771F8A95E2F729 -:10173000CB01842B952B9C680895982F8827846F64 -:10174000906A08958F719927982F8827906208953D -:1017500080E090E0089581E890E4089583E890E4C3 -:10176000089582EE94E4089589EE94E408958AEE53 -:1017700094E4089585EB94E4089586EB94E4089549 -:1017800087EB94E408958CEC94E408958DEC94E454 -:10179000089583E895E408958AE895E4089582E938 -:1017A00095E4089584E995E4089581E296E4089526 -:1017B00083E296E4089584E296E4089585E296E44F -:1017C000089586E296E4089587E296E408958AE211 -:1017D00096E4089580E090E0089591E1799FF0010A -:1017E000112496E6899FE00DF11D1124E60FF11DED -:1017F000EE0FFF1FE25DFE4F8591949108958238B0 -:10180000910549F1B0F48133910509F458C048F4C9 -:101810008932910509F44EC08A32910509F454C009 -:1018200008958533910509F440C08933910599F0F5 -:101830000895833E910529F138F4803E910591F099 -:10184000823E9105A1F00895863E9105F9F0873E0C -:10185000910531F108952091100220FD3AC021FD3B -:1018600038C008958091100280FD35C032C080914B -:10187000100282FF32C08091100284FD30C083EEDE -:1018800039C08091100282FD28C0F5CF80911002EE -:1018900083FF27C08091100284FD21C087EE2AC0FB -:1018A0008091100283FD1DC0F5CF8091100285FD4F -:1018B0001AC01BC08091100285FD17C014C0809112 -:1018C000100286FD14C015C08091100286FD11C063 -:1018D0000EC080EE0FC089E30DC082EE0BC080E029 -:1018E00009C086EE07C089E205C085E303C08AE22D -:1018F00001C081E390E0089508950C944F08E82F0B -:10190000F0E0E05FFE4F8081E82FEF70F0E082951D -:101910008F7021E030E0A90102C0440F551F8A9565 -:10192000E2F740A308950F931F93CF93DF93C0E195 -:10193000D0E001E010E0FE01E05FFE4F8081E82F83 -:10194000EF70F0E021A182958F70A80102C0440FD2 -:10195000551F8A95E2F7CA01822B81A38C2F0E9422 -:101960007F0C219740F785E090E061E070E0FC019A -:10197000EF5DFE4F2081E22FEF70F0E042A1229553 -:101980002F70DB0102C0AA0FBB1F2A95E2F79D0151 -:10199000242B22A3019758F7DF91CF911F910F912C -:1019A00008950F931F93CF93DF9385B7806885BF0A -:1019B00085B7806885BFC0E1D0E001E010E0FE019E -:1019C000E05FFE4F8081E82FEF70F0E021A182956B -:1019D0008F70A80102C0440F551F8A95E2F7CA0113 -:1019E000822B81A38C2F0E947F0C219740F785E0EA -:1019F00090E061E070E0FC01EF5DFE4F2081E22F9E -:101A0000EF70F0E042A122952F70DB0102C0AA0F17 -:101A1000BB1F2A95E2F79D01242B22A3019758F7BB -:101A2000DF91CF911F910F910C94650AEF92FF9275 -:101A30000F931F93CF93DF930CE511E0C0E1EE24E9 -:101A4000E394F12CD5E08C2F0E947F0C85E090E090 -:101A500040E0FC01EF5DFE4F5081E52FEF70F0E0BC -:101A600020A130E052955F7002C0359527955A95B8 -:101A7000E2F720FD07C09701082E01C0220F0A944B -:101A8000EAF7422B019728F7F80182918F0184171A -:101A900019F04083D09300018C2F0E947F0CC1501D -:101AA00090F68091000187FD32C09091090290FF6D -:101AB00010C0282F332727FD30953F938F938FE059 -:101AC00093E09F938F930E9446080F900F900F9082 -:101AD0000F908091000181508093000187FD07C025 -:101AE0008FE99FE00197F1F700C0000010C080E08F -:101AF00090E0FC01E45AFE4FDC01A55BBE4F50961E -:101B00002C91208B01978F3EEFEF9E0791F70E945B -:101B1000670A81E0DF91CF911F910F91FF90EF90C5 -:101B200008958F929F92AF92BF92CF92DF92EF92E1 -:101B3000FF9291E001C0990F8A95EAF7292F40E1C1 -:101B400050E060E070E0CB01C12CD12C7601C39451 -:101B5000DA01A45ABE4F3C91322371F0460157017D -:101B6000042E04C0880C991CAA1CBB1C0A94D2F732 -:101B7000682979298A299B294150510948F7FF9002 -:101B8000EF90DF90CF90BF90AF909F908F9008958F -:101B90000F931F93CF93DF938091090280FF04C0BE -:101BA00080EF92E00E94AD07C0E0D0E008ED12E0C7 -:101BB0008091090280FF14C08C2F0E94910DCB01EF -:101BC0000E9452289F938F93DF93CF931F930F937D -:101BD0000E9446080F900F900F900F900F900F905B -:101BE0002196C630D10521F7DF91CF911F910F913A -:101BF0000895CF93DF93C5E0D0E08C2F0E94910D24 -:101C0000CB010E943028D80FC150B8F78D2FDF913B -:101C1000CF9108952EB1342F309523233EB1432B1D -:101C20003FB7F894FC01680F791FE617F70789F0B2 -:101C3000819198E04EB9000000C087FF2EB9880F4F -:101C4000000000C000C000C02EB900C09A9591F7F6 -:101C5000ECCF3FBF08952DB1242B2DB99B01220F4E -:101C6000331F620F731F0E940A0E87EC90E00197EA -:101C7000F1F700C00000089544E00C942B0ECF92C1 -:101C8000DF92EF92FF920F931F93CF93DF936C013C -:101C9000790150E0FA01EE5DF94F4491242F8FEF66 -:101CA00090E0FC01E61BF109EE5DF94FE491E0954F -:101CB00009F490C0C42FD0E08E1B91098C9FB00115 -:101CC0008D9F700D9C9F700D1124372FE72F0CE313 -:101CD00010E0C601B8010E941D2EDC0162307105C2 -:101CE00009F443C0C8F46115710589F161307105CB -:101CF00009F073C0C31BD109B801681B790BC69FDB -:101D0000C001C79F900DD69F900D1124B8010E946D -:101D10001D2E832FE42F5BC06430710509F44AC087 -:101D2000A8F16530710509F058C0C31BD109B8018D -:101D3000681B790BC69FC001C79F900DD69F900D61 -:101D40001124B8010E941D2E832F860F49C0C31B8A -:101D5000D109CC9DC001CD9D900DDC9D900D11242D -:101D6000B8010E941D2E832F22C0C31BD109CA9F18 -:101D7000C001CB9F900DDA9F900D1124B8010E94F5 -:101D80001D2E832F860F432FE22F2AC0C31BD1099C -:101D9000B801681B790BC69FC001C79F900DD69FE5 -:101DA000900D1124B8010E941D2E842F432FE32F84 -:101DB000E60F16C0C31BD109CA9FC001CB9F900D6F -:101DC000DA9F900D1124B8010E941D2E842F432FFD -:101DD000460F06C0842FE42F03C080E0E0E040E01F -:101DE000D70111964C931197EC9312968C93DF9137 -:101DF000CF911F910F91FF90EF90DF90CF900895BA -:101E000088E090E00C94532EAB01BC0188E090E098 -:101E10000C94712E8091090280FF08C083EF94E03A -:101E20009F938F930E9446080F900F9083E08093BA -:101E3000120280911302807884668F778093130258 -:101E40008CEC8093140280931502609112027091C1 -:101E5000130280911402909115020C94040F80914A -:101E6000090280FF08C08CED94E09F938F930E943D -:101E700046080F900F908091090280FF0FC080915B -:101E8000120281701F928F938FEB94E09F938F9338 -:101E90000E9446080F900F900F900F9080910902BA -:101EA00080FF10C08091120286958F731F928F93CE -:101EB00084EA94E09F938F930E9446080F900F90BE -:101EC0000F900F908091090280FF19C0809112023B -:101ED000881F8827881F90911302292F220F822B99 -:101EE00097FB992790F99F938F938AE894E09F93AB -:101EF0008F930E9446080F900F900F900F90809143 -:101F0000090280FF0EC0809114021F928F9380E718 -:101F100094E09F938F930E9446080F900F900F902C -:101F20000F908091090280FF0EC0809115021F92D0 -:101F30008F9386E594E09F938F930E9446080F90BD -:101F40000F900F900F9008958091120280FF06C0AD -:101F500064E170E08AE192E00C943C0E80E090E055 -:101F6000FC01E65EFD4F11821082128203968C33D3 -:101F70009105B1F7EDCF20E030E0F901E65EFD4FCD -:101F80008183608342832D5F3F4F2C333105A9F756 -:101F90000C94A40FEF92FF920F931F93CF93DF93B4 -:101FA00000D01F92CDB7DEB700911202109113023C -:101FB000209114023091150200931602109317021B -:101FC00020931802309319022091120220FF21C0A1 -:101FD000042FF62EE92E182F9E012F5F3F4F0E94EF -:101FE0003F0E8091160210FB87F98093160216951A -:101FF000809117028078182BE0FA17F910931702D6 -:10200000F0921802009319024B8169818A810E9423 -:10201000BB0F0F900F900F90DF91CF911F910F91F9 -:10202000FF90EF9008950F931F93CF93DF93EC01F0 -:10203000062F142F9091120290FF65C0892F8E7782 -:10204000823021F4CE010E94CA0F1BC0892F8695D1 -:102050008F732EE3280F2F73243018F4109115027C -:1020600010C0865C8F73893060F4C92FCC1FCC27D9 -:10207000CC1FD09113028D2F880FC82BD7FBDD27E3 -:10208000D0F980911202C0FB87F980931202C695A5 -:10209000809113028078C82BD0FBC7F9C09313023C -:1020A00000931402109315026091120270911302B2 -:1020B00080911402909115020E94040F80911502E4 -:1020C0001F928F93809114021F928F93809112021E -:1020D000881F8827881F90911302292F220F822B97 -:1020E00097FB992790F99F938F9382E593E09F93B5 -:1020F0008F930E9446088DB79EB708960FB6F89446 -:102100009EBF0FBE8DBFDF91CF911F910F9108959C -:10211000E2E1F2E02081221F2227221F30911302E8 -:10212000432F440F842F822B37FB992790F90A966F -:1021300068E671E00E94312E438162810C94131095 -:1021400020911202221F2227221F30911302432FB7 -:10215000440F842F822B37FB992790F98A30910501 -:102160001CF4825A9E4F01C00A9768E671E00E94F3 -:10217000312E40911502609114020C94131060915D -:102180001402862F90E08F3E910514F46F5E01C01B -:102190006FEF80911202881F8827881F9091130289 -:1021A000292F220F97FB992790F940911502822B36 -:1021B0000C94131060911402862F90E0419714F054 -:1021C000615101C060E080911202881F8827881F3A -:1021D00090911302292F220F97FB992790F9409194 -:1021E0001502822B0C94131040911502842F90E05D -:1021F0008F3E910514F44F5E01C04FEF80911202A3 -:10220000881F8827881F90911302292F220F97FB80 -:10221000992790F960911402822B0C94131040912D -:102220001502842F90E0419714F0415101C040E025 -:1022300080911202881F8827881F90911302292FEE -:10224000220F97FB992790F960911402822B0C942E -:10225000131080917E0181110FC081E080937E0177 -:1022600089E0809391008FB7F89493E09093990060 -:1022700090ED909398008FBF0895809171008260D7 -:10228000809371008091090280FF08C081E493E08F -:102290009F938F930E9446080F900F90089580910E -:1022A00071008D7F809371008091090280FF08C0CA -:1022B0008FE293E09F938F930E9446080F900F90B8 -:1022C00008959091120290FF4BC09178811102C045 -:1022D000926007C0883110F09E6203C08F73880F30 -:1022E000982B9093120260911202709113028091C8 -:1022F0001402909115020E94040F8091120286959B -:102300008F731F928F9385EA93E09F938F930E9420 -:10231000460880911202982F9E770F900F900F9091 -:102320000F90923019F40E944F1107C08695825C7D -:102330008F73863110F40E943D1180911202881F24 -:102340008827881F90911302292F220F97FB992726 -:1023500090F94091150260911402822B0C94131095 -:102360000895809109028160809309028FE394E0CF -:102370009F938F930E94460881E080937F01809114 -:1023800009020F900F9080FF08C089E294E09F93AC -:102390008F930E9446080F900F900E94F92A811196 -:1023A00010C08091090280FF08C081E094E09F93F3 -:1023B0008F930E9446080F900F900E94D82A0E9487 -:1023C0000A0F0E94000F6093120270931302809311 -:1023D0001402909315026E77C1F48091090280FF78 -:1023E00008C088EB93E09F938F930E9446080F905C -:1023F0000F900E940A0F0E94000F609312027093C8 -:10240000130280931402909315020E942F0F0E94D2 -:1024100029118091120280FF04C086958F730C945D -:10242000611108958091120286958F738F5F8831B4 -:1024300008F081E00C94611180911202982F909520 -:1024400090FB80F980931202609112027091130246 -:1024500080911402909115020E94040F8091120243 -:1024600081701F928F9387E793E09F938F930E94D1 -:102470004608809112020F900F900F900F9080FFEE -:1024800004C086958F730C9461110E944F112FEF39 -:1024900080E792E0215080409040E1F700C00000CA -:1024A0000C94A40FCF93C82F80917C0190917D0153 -:1024B0000E94E828EC2FF0E0E25EFA4FE491F0E0B1 -:1024C0008E179F0718F10E94DC2890937D0180935E -:1024D0007C01E0917B01F0E0EE5DFA4F4491809148 -:1024E0001202881F8827881F90911302292F220F1C -:1024F00097FB992790F960911402822B0E94CA0FD2 -:1025000080917B0190E0019680937B01CF910895AB -:10251000CF93C82F8091790190917A010E94E82889 -:10252000EC2FF0E0E55EFA4FE491F0E08E179F07A4 -:10253000E8F00E94DC2890937A0180937901409121 -:1025400015026091140280917701909178010E94A8 -:10255000CA0F8091770190917801019668E671E049 -:102560000E941D2E9093780180937701CF9108955A -:10257000CF92DF92FF920F931F93CF93DF93F82EAA -:1025800080917501909176010E94E828EF2DE695E3 -:10259000F0E0E55EFA4FE491F0E08E179F07E8F176 -:1025A0000E94DC2890937601809375010AE112E085 -:1025B000C0E0D0E088E6C82EDD24D394809173017A -:1025C000909174018C0F9D1FB6010E941D2E9801E1 -:1025D00040911502609114020E943F0E62960D5FB9 -:1025E0001F4FC83681E0D80749F70E94A40F2091F9 -:1025F000730130917401F0FE0AC0C9010196BE0159 -:102600000E941D2E909374018093730106C0215087 -:1026100031093093740120937301DF91CF911F91A1 -:102620000F91FF90DF90CF9008958F929F92AF927D -:10263000BF92CF92DF92EF92FF920F931F93CF93AF -:10264000DF93C82F80FF03C0DD24DA9402C0DD24AD -:10265000D39480917101909172010E94E828C695EF -:10266000EC2FF0E0E85EFA4FE491F0E08E179F0760 -:1026700008F467C00E94DC28909372018093710176 -:102680009AE1E92E92E0F92E0CE112E0C0E0D0E0F0 -:1026900027E0822E912CF80131971082F7011082E9 -:1026A000F801108287E0A82EB12CC12C8091700116 -:1026B0008C0D87FD8C5E992787FD9095C817D907EB -:1026C000E9F4209115022A9DC0012B9D900D112443 -:1026D000B4010E94312E462F80911202881F882754 -:1026E000881F90911302592F550F97FB992790F946 -:1026F000970160911402852B0E943F0ECD0CF1E0F2 -:10270000AF1AB10899F6219683E0E80EF11C0D5F2F -:102710001F4FC431D10509F0BECF0E94A40F809194 -:10272000700191E0D91206C0811102C083E107C097 -:10273000815005C090E00196BE010E94312E809329 -:102740007001DF91CF911F910F91FF90EF90DF907B -:10275000CF90BF90AF909F908F9008959F92AF922F -:10276000BF92CF92DF92EF92FF920F931F93CF937E -:10277000DF93CDB7DEB7EC970FB6F894DEBF0FBE90 -:10278000CDBF182F80916E0190916F010E94E828B3 -:10279000E12FF0E0EB5EFA4FE491F0E08E179F0737 -:1027A00008F495C00E94DC2890936F0180936E011D -:1027B000CE0101967C015E0193E0A90EB11CC12CF3 -:1027C000D12C8701F50131971082F7011082F501B4 -:1027D0001082912C9091010180916D01999E800D44 -:1027E000112487FD04C084311CF083E101C080E026 -:1027F000992787FD9095C816D906A1F480911202F9 -:10280000881F8827881F90911302592F550F97FB17 -:10281000992790F997014091150260911402852B38 -:102820000E943F0E9394F7E09F12D4CF8FEFC81A07 -:10283000D80A93E0E90EF11CE3E0AE0EB11CF4E11E -:10284000CF16D10409F0BECF2CE132E059E0E52EDD -:10285000F12C64E1C62ED12CC701B6010E94312EA5 -:10286000D9011197FC01EE0FFF1FE80FF91FE00FD0 -:10287000F11F81818C93119780818C938281F90162 -:102880008083FFEFEF1AFF0A2D5F3F4F8DE1E816BF -:10289000F10411F70E94A40F9091010180916D0144 -:1028A000913049F48A3F2CF489EF80936D018FEFCA -:1028B00008C081500AC08B313CF08AE180936D01E1 -:1028C00081E08093010103C08F5F80936D01EC96DE -:1028D0000FB6F894DEBF0FBECDBFDF91CF911F9131 -:1028E0000F91FF90EF90DF90CF90BF90AF909F90AF -:1028F00008951F920F920FB60F9211242F933F93BA -:102900004F935F936F937F938F939F93AF93BF93F7 -:10291000EF93FF938091120286958F739EE3980F39 -:102920009F73943020F482500E94521223C09AE385 -:10293000980F9F73933020F486500E9488121AC01B -:1029400097E3980F9F73963020F489500E94B81235 -:1029500011C091E3980F9F73963020F48F500E941E -:10296000151308C09BE2980F9F73933018F485519C -:102970000E94AE13FF91EF91BF91AF919F918F9104 -:102980007F916F915F914F913F912F910F900FBE6B -:102990000F901F90189580919301089508959FB707 -:1029A000F894109282019FBF90915A02943009F0DE -:1029B00057C09091E9009F703091EC00232F217057 -:1029C00030FD20E8922B23E02093E9002091EB00DA -:1029D00020FF43C02091EE0027FF3FC020918001DF -:1029E000222321F02091E80025FF37C010928001BA -:1029F00026E03091E80035FD15C030915A023430A0 -:102A000061F53091EB0035FD28C0215021F481E0C3 -:102A10008093800122C0EFE9FFE03197F1F700C019 -:102A20000000E7CF8093F1008091E80085FD0AC0A7 -:102A30008091E80080FFFCCF8091E8008E77809342 -:102A4000E80006C08FB7F89421E0209382018FBF81 -:102A50009F709093E90080E008959F709093E90043 -:102A60008FEF0895CF93DF9300D01F92CDB7DEB7DD -:102A700020915A02243021F523E029839B838A8305 -:102A800082E08093E9008FEF9091E800815095FDFE -:102A900006C095ED9A95F1F700008111F5CF809170 -:102AA000E80085FF0DC040E050E063E070E0CE013B -:102AB00001960E94CB178091E8008E778093E80002 -:102AC0000F900F900F90DF91CF910895CF93DF93E8 -:102AD00000D01F92CDB7DEB79C0180915A0284309E -:102AE00019F592E099833B832A839093E9008FEF55 -:102AF0009091E800815095FD06C095ED9A95F1F70B -:102B000000008111F5CF8091E80085FF0DC040E005 -:102B100050E063E070E0CE0101960E94CB178091F7 -:102B2000E8008E778093E8000F900F900F90DF9170 -:102B3000CF910895CF93DF93EC0190915A02943096 -:102B400009F046C080910C018823D9F080910D01D5 -:102B50008823B9F09093E9008FEF9091E8008150BD -:102B600095FD06C095E19A95F1F700008111F5CF2A -:102B70008091E80085FF2CC040E050E060E170E00B -:102B800017C081E08093E9008FEF9091E8008150B9 -:102B900095FD06C095ED9A95F1F700008111F5CFEE -:102BA0008091E80085FF14C040E050E068E070E0EC -:102BB000CE010E94CB178091E8008E778093E800C9 -:102BC00080E1FE01A3E8B1E001900D928A95E1F762 -:102BD000DF91CF91089587E497E00E94AD0780913F -:102BE0005902811109C00E9460190E94BD1980918B -:102BF000E20084608093E200089583E497E00E94FD -:102C0000AD071092590208958FE397E00C94AD0739 -:102C10008BE397E00C94AD0787E397E00E94AD0744 -:102C20000C94A428209181012F5F822F62E30E94DF -:102C3000112E992319F0209381010895109281019A -:102C400080918201882371F180915A02843041F58C -:102C50008091E9008F702091EC00922F917020FDFF -:102C600090E8892B93E09093E9009091EB0090FF1E -:102C700014C09091EE0097FF10C09091E80095FF6E -:102C800003C01092F100F9CF9091E80090FF05C0C9 -:102C90009091E8009E779093E8008F708093E90010 -:102CA00010928201089542E061EC81E00E94DA18FE -:102CB00042E061EC82E00E94DA1842E261EC83E0DB -:102CC0000E94DA1842E161EC84E00C94DA188091F9 -:102CD0005C02833009F455C030F4813071F08230E9 -:102CE00009F48EC008958A3009F47AC08B3009F453 -:102CF00060C0893009F09CC020C080915B02813A9D -:102D000009F096C08091E800877F8093E800809169 -:102D10005F0290916002892B21F460E183E891E0E9 -:102D200003C060E080E090E070E00E94161880919F -:102D3000E8008B778093E800089580915B028132F0 -:102D400009F076C080915F0290916002009719F0BF -:102D5000039709F06DC08091E800877F8093E800B9 -:102D60008091E80082FD05C080915A028111F8CF60 -:102D70005FC08091F100809393018091E8008B7790 -:102D800053C080915B02813A09F052C080915F028A -:102D900090916002892B09F04BC08091E800877FF9 -:102DA0008093E8008091E80080FFFCCF80910C01C7 -:102DB00036C080915B028132D9F580915F0290919B -:102DC0006002892BA9F58091E800877F8093E80055 -:102DD0000E940F1980915D0280930C010C94922146 -:102DE00080915B02813221F58091E800877F80939A -:102DF000E8000E940F1980915E028093940108956B -:102E000080915B02813AA1F48091E800877F8093F2 -:102E1000E8008091E80080FFFCCF809194018093CE -:102E2000F1008091E8008E778093E8000C940F19F0 -:102E3000089584B7877F84BF88E10FB6F8948093A4 -:102E40006000109260000FBE80E8809361001092D5 -:102E500061000E94E41C0E9460190E94BD198091CB -:102E6000E20084608093E2008FEC94E10E942B28C2 -:102E700078940E94421C0E94E61C82E091E00E942D -:102E80005D1C86E297E00E94AD0780915A02853072 -:102E900089F482E297E00E94AD070E946C2880913D -:102EA0005802882391F30E949628882371F30E9488 -:102EB000B517EBCF0E940C1DE8CF292F3327233005 -:102EC0003105C9F064F42130310581F0223031053B -:102ED00009F043C084E790E023E837E042C02132A4 -:102EE0003105F1F02232310541F137C082E190E045 -:102EF00027EF37E036C099278130910541F08230C5 -:102F0000910541F0892B49F5EFE7F7E005C0EDE6C3 -:102F1000F7E002C0EBE4F7E0849190E09F0121C06C -:102F20006430D8F4E62FF0E0EE0FFF1FED5CFE4FAB -:102F30002081318189E090E014C0643070F470E049 -:102F4000FB01EE0FFF1FE55DFE4F20813181FB018C -:102F5000E95DFE4F808190E004C080E090E020E0D9 -:102F600030E0FA0131832083089580E189BD82E158 -:102F700089BD09B400FEFDCF8091D8008F7D80937C -:102F8000D8008091E00082608093E0008091E000B2 -:102F900081FDFCCF0895CF92DF92EF92FF920F93C5 -:102FA0001F93CF93DF93EC018B016A010E942E19CE -:102FB000811133C0C114D10439F0F60180819181AF -:102FC000081B190BC80FD91FE12CF12C0115110595 -:102FD00019F18091E80085FD16C08091E8008E7798 -:102FE0008093E800C114D10449F0F60180819181F9 -:102FF000E80EF91EF182E08285E00FC00E942E19D2 -:10300000882321F30AC089918093F10001501109AE -:10301000FFEFEF1AFF0ADACF80E0DF91CF911F9127 -:103020000F91FF90EF90DF90CF9008952091610273 -:10303000309162022617370748F06115710539F49F -:103040002091E8002E772093E80001C0B90140E00C -:1030500061157105A9F120915A02222309F443C098 -:10306000253009F442C02091E80023FD40C02091A2 -:10307000E80022FD32C02091E80020FFE9CF409116 -:10308000F3002091F20030E0342BFC01CF016115F8 -:10309000710559F02830310540F481918093F10099 -:1030A000615071092F5F3F4FF1CF41E0283031056A -:1030B00009F040E02091E8002E772093E800C8CF87 -:1030C0004111C9CF0AC080915A02882361F085302E -:1030D00061F08091E80083FD0AC08091E80082FFE2 -:1030E000F2CF80E0089582E0089583E0089581E0C2 -:1030F000089520916102309162022617370748F047 -:103100006115710539F42091E8002E772093E800CD -:1031100001C0B901FC0120E06115710591F18091B8 -:103120005A02882309F440C0853009F43FC08091D9 -:10313000E80083FD3DC08091E80082FD2FC08091B2 -:10314000E80080FFE9CF2091F3008091F20090E049 -:10315000922B6115710559F08830910540F4249146 -:103160002093F1003196615071090196F2CF21E070 -:10317000089709F020E08091E8008E778093E800BE -:10318000CBCF2111CCCF0AC080915A02882361F0A5 -:10319000853061F08091E80083FD0AC08091E800ED -:1031A00082FFF2CF80E0089582E0089583E00895E1 -:1031B00081E00895982F973058F59093E90098177B -:1031C00039F07091EC002091ED005091F00003C0B7 -:1031D000242F762F50E021FF19C03091EB003E7F65 -:1031E0003093EB003091ED003D7F3093ED00309156 -:1031F000EB0031603093EB007093EC002093ED0016 -:103200005093F0002091EE0027FF07C09F5FD3CFBF -:103210008F708093E90081E0089580E008958091A7 -:103220005B0287FF11C08091E80082FD05C080919C -:103230005A028111F8CF11C08091E8008B770BC042 -:1032400080915A02882349F08091E80080FFF8CFEE -:103250008091E8008E778093E80008952091E40043 -:103260003091E50095E64091EC00842F817040FF9D -:1032700022C08091E80080FD1CC080915A02882302 -:1032800091F0853091F08091EB0085FD10C0409168 -:10329000E4005091E5004217530729F39A01915039 -:1032A00011F784E0089582E0089583E0089581E0B5 -:1032B000089580E008954091E80042FFDECF089530 -:1032C0000E94CE190E94D619E0EEF0E08081816064 -:1032D0008083E8EDF0E080818F77808319BCA7EDD3 -:1032E000B0E08C918E7F8C9380818F7E8083109252 -:1032F000590208950F931F93CF93DF930E94CE1925 -:103300000E94D619C8EDD0E088818F7788838881A4 -:103310008068888388818F7D888319BC10925A02C7 -:1033200010925602109258021092570200EE10E0CE -:10333000F80180818B7F808388818160888342E06F -:1033400060E080E00E94DA18E1EEF0E080818E7F9C -:103350008083E2EEF0E080818160808380818860FC -:103360008083F80180818E7F80838881806188835B -:10337000DF91CF911F910F910895E8EDF0E08081EA -:103380008F7E8083E7EDF0E080818160808384E040 -:1033900082BF81E0809359020C947A19E8EDF0E045 -:1033A00080818E7F80831092E20008951092DA006F -:1033B0001092E10008951F920F920FB60F92112400 -:1033C0002F933F934F935F936F937F938F939F932D -:1033D000AF93BF93EF93FF938091E10082FF0BC007 -:1033E0008091E20082FF07C08091E1008B7F809393 -:1033F000E1000E9412168091DA0080FF1FC08091C8 -:10340000D80080FF1BC08091DA008E7F8093DA00A5 -:103410008091D90080FF0DC080E189BD82E189BD26 -:1034200009B400FEFDCF81E080935A020E94EB15A3 -:1034300005C019BC10925A020E94FD158091E1004E -:1034400080FF19C08091E20080FF15C08091E200EA -:103450008E7F8093E2008091E20080618093E200A1 -:103460008091D80080628093D80019BC85E0809359 -:103470005A020E9408168091E10084FF30C08091BA -:10348000E20084FF2CC080E189BD82E189BD09B4DE -:1034900000FEFDCF8091D8008F7D8093D800809171 -:1034A000E1008F7E8093E1008091E2008F7E809327 -:1034B000E2008091E20081608093E20080915602F8 -:1034C000882311F084E007C08091E30087FD02C0EB -:1034D00081E001C083E080935A020E940C16809123 -:1034E000E10083FF29C08091E20083FF25C0809125 -:1034F000E100877F8093E10082E080935A0210927E -:1035000056028091E1008E7F8093E1008091E2007D -:103510008E7F8093E2008091E20080618093E200E0 -:1035200042E060E080E00E94DA188091F00088605C -:103530008093F0000E940416FF91EF91BF91AF912C -:103540009F918F917F916F915F914F913F912F91BB -:103550000F900FBE0F901F9018951F920F920FB6ED -:103560000F9211242F933F934F935F936F937F9309 -:103570008F939F93AF93BF93CF93DF93EF93FF937B -:10358000C091E900CF708091EC00D82FD17080FD00 -:10359000D0E81092E9008091F000877F8093F000DE -:1035A00078940E94F11A1092E9008091F0008860EE -:1035B0008093F000CD2BCF70C093E900FF91EF9185 -:1035C000DF91CF91BF91AF919F918F917F916F913B -:1035D0005F914F913F912F910F900FBE0F901F90D1 -:1035E00018951F93CF93DF93CDB7DEB7AA970FB689 -:1035F000F894DEBF0FBECDBFEBE5F2E088E08E0FA2 -:103600009091F10091938E13FBCF0E9467168091E9 -:10361000E80083FF1FC180915B0290915C02492FFB -:1036200050E04A30510508F015C1FA01E15AFF4F48 -:103630000C94452E803881F0823809F00BC18091BE -:103640005F028F708093E9008091EB0085FB8827F3 -:1036500080F91092E90006C08091570290915802BB -:10366000911182609091E800977F9093E800809399 -:10367000F1001092F100C8C0282F2D7F09F0EAC098 -:10368000882319F0823061F0E5C080915D028130BD -:1036900009F0E0C0933009F080E0809358022BC01D -:1036A00080915D02811127C080915F028F7009F4C3 -:1036B000D1C08093E9002091EB0020FF1CC0933023 -:1036C00021F48091EB00806214C09091EB00906136 -:1036D0009093EB0021E030E0A90102C0440F551F98 -:1036E0008A95E2F74093EA001092EA008091EB009D -:1036F00088608093EB001092E9008091E800877F5A -:1037000086C08111A7C010915D021F778091E300F0 -:103710008078812B8093E3008091E800877F8093FD -:10372000E8000E940F198091E80080FFFCCF809193 -:10373000E30080688093E300111102C082E001C0C1 -:1037400083E080935A0286C08058823008F082C09D -:1037500080915D0290915E028C3D53E0950779F572 -:1037600083E08A838AE289834FB7F894DE01139657 -:1037700020E03EE051E2E32FF0E050935700E49167 -:1037800020FF03C0E295EF703F5FEF708E2F90E057 -:10379000EA3010F0C79601C0C0968D939D932F5FBD -:1037A000243149F74FBF8091E800877F8093E8007C -:1037B0006AE270E0CE0101960E94161814C0AE01B4 -:1037C0004F5F5F4F60915F020E945D17BC010097E1 -:1037D00009F440C09091E800977F9093E8008981B8 -:1037E0009A810E9479188091E8008B778093E80095 -:1037F00031C0803879F58091E800877F8093E800B8 -:10380000809156028093F1008091E8008E7780933A -:10381000E8000E940F191EC081111CC090915D022A -:103820009230C0F48091E800877F8093E800909305 -:1038300056020E940F1980915602811106C0809194 -:10384000E30087FD02C081E001C084E080935A025A -:103850000E9453168091E80083FF0AC08091E8001F -:10386000877F8093E8008091EB0080628093EB007B -:10387000AA960FB6F894DEBF0FBECDBFDF91CF91F1 -:103880001F910895CF9380915A028823A1F0C0918F -:10389000E900CF709091EC00892F817090FD80E855 -:1038A000C82B1092E9008091E80083FD0E94F11A74 -:1038B000CF70C093E900CF91089590939A018093BF -:1038C00099010895E0919901F0919A01309721F0C2 -:1038D0000190F081E02D099480E00895EF92FF922D -:1038E0000F931F93CF93DF93E0919901F0919A0189 -:1038F0003097B1F18C010280F381E02D0995809120 -:10390000090282FF2DC080FF04C080EE98E00E9473 -:10391000AD07E80110E18AEDE82E88E0F82E8091ED -:10392000090280FF0BC088811F928F93FF92EF9254 -:103930000E9446080F900F900F900F901150219603 -:103940001111EDCF8091090280FF0AC088ED98E047 -:10395000DF91CF911F910F91FF90EF900C94AD07E5 -:10396000DF91CF911F910F91FF90EF9008952091DB -:103970009701309198018217930771F09093980105 -:1039800080939701E0919901F0919A01309721F08D -:103990000680F781E02D09940895209195013091DA -:1039A00096018217930771F0909396018093950189 -:1039B000E0919901F0919A01309721F00084F1850E -:1039C000E02D0994089508950C94E31C0E94D328D7 -:1039D0000E94D10C0E94A0290C94B111CF93DF93C7 -:1039E0001F92CDB7DEB79091090292FF10C090FFF1 -:1039F0000EC01F928F9322EF38E03F932F9389835D -:103A00000E9446080F900F900F900F9089810F90A1 -:103A1000DF91CF910C947D0C3F924F925F926F9209 -:103A20007F928F929F92AF92BF92CF92DF92EF924E -:103A3000FF920F931F93CF93DF93CDB7DEB72B97F2 -:103A40000FB6F894DEBF0FBECDBF0E94160D84EBFB -:103A500091E09F838E8305E010E0412C512C3201D0 -:103A60004394302E802F0E94910DEE81FF81F290C1 -:103A7000E290D290C290FF83EE834B015C018C24D4 -:103A80009D24AE24BF2481149104A104B104A1F4A7 -:103A90000150110930F78FEF89838A831B820E94BE -:103AA000DC288160782F9D838C8349815A816B81CA -:103AB0008D810E94EE1D57C0E0910902E1FF0AC00E -:103AC000688779878A879B870E94C80D9B858A852E -:103AD00079856885E0E1F0E0730162010E2E04C093 -:103AE000CC0CDD1CEE1CFF1C0A94D2F7A70196013A -:103AF000282139214A215B21232B242B252B79F1E5 -:103B0000E9833A82AB01BC014C215D216E217F210A -:103B100081E0452B462B472B09F480E08B830E94E4 -:103B2000DC288160782F9D838C8349815A816B8149 -:103B30008D810E94EE1D000F111F000F111FF80153 -:103B4000E456FE4F80819181A281B381C826D92697 -:103B5000EA26FB26C082D182E282F38204C031973A -:103B600008F0BACF95CF10919B010E94621C1817E4 -:103B7000E9F00E94621C80939B012B960FB6F8948B -:103B8000DEBF0FBECDBFDF91CF911F910F91FF9090 -:103B9000EF90DF90CF90BF90AF909F908F907F90ED -:103BA0006F905F904F903F900C94EE1C2B960FB649 -:103BB000F894DEBF0FBECDBFDF91CF911F910F9163 -:103BC000FF90EF90DF90CF90BF90AF909F908F903D -:103BD0007F906F905F904F903F900895CF93DF93C9 -:103BE000CDB7DEB72B970FB6F894DEBF0FBECDBFB3 -:103BF0004F83588769877A878B87DE01119686E025 -:103C0000FD0111928A95E9F785E0FE013796019052 -:103C10000D928A95E1F749815A816B817C818D8172 -:103C20009E810E9430242B960FB6F894DEBF0FBE03 -:103C3000CDBFDF91CF910895CF93882309F4C2C0FF -:103C4000C82F823859F40E94621C81FDBBC089E3F1 -:103C50000E940A270E94FC2789E30CC0833879F46C -:103C60000E94621C80FDAEC083E50E940A270E946C -:103C7000FC2783E50E945D27CF910C94FC278438B4 -:103C800059F40E94621C82FD9DC087E40E940A27AD -:103C90000E94FC2787E4EECF8CEF8C0F813A48F42A -:103CA0008C2F0E94C22D81118DC08C2F0E940A275B -:103CB000E3CF80E28C0F883048F4C77081E001C008 -:103CC000880FCA95EAF70E94B527D6CF8BE58C0FEF -:103CD000833078F4C53A29F0C63A31F083E890E0B1 -:103CE00005C081E890E002C082E890E0CF910C949A -:103CF000B71C88E58C0F833108F064C0C83A39F1ED -:103D0000C93A41F1CA3A49F1CB3A51F1CC3A59F1A9 -:103D1000CD3A61F1C03B69F1CE3A71F1CF3A79F118 -:103D2000C13B81F1C23B89F1C33B91F1C43B99F1A5 -:103D3000C53BA1F1C63BA9F1C73BB1F1C83BB9F105 -:103D4000C93BC1F1CA3BC9F180E090E038C082EEC6 -:103D500090E035C089EE90E032C08AEE90E02FC04E -:103D600085EB90E02CC086EB90E029C087EB90E0DB -:103D700026C08CEC90E023C08DEC90E020C083E85E -:103D800091E01DC08AE891E01AC082E991E017C075 -:103D900084E991E014C081E292E011C083E292E0F4 -:103DA0000EC084E292E00BC085E292E008C086E299 -:103DB00092E005C087E292E002C08AE292E0CF91F1 -:103DC0000C94CD1CCF910895882309F44BC0823800 -:103DD00059F40E94621C81FF45C089E30E940A27B2 -:103DE0000E94FC2789E30CC0833871F40E94621C96 -:103DF00080FF38C083E50E940A270E94FC2783E5E4 -:103E00000E945D270C94FC27843859F40E94621CA0 -:103E100082FF28C087E40E940A270E94FC2787E4CB -:103E2000EFCF9CEF980F913A58F390E2980F9830AB -:103E300050F4877091E001C0990F8A95EAF7892FB5 -:103E40000E94BB27DFCF9BE5980F933020F480E0E2 -:103E500090E00C94B71C885A833120F480E090E005 -:103E60000C94CD1C0895882321F00E94B5270C9452 -:103E7000FC270895882321F00E94BB270C94FC277F -:103E800008957F928F929F92AF92BF92CF92DF92CE -:103E9000EF92FF920F931F93CF93DF931F92CDB7B3 -:103EA000DEB77C01C62E772EFC01058102950F70CE -:103EB000128111110E94D2270E940327882379F0D2 -:103EC000112369F080E28C0D883048F082E00E9476 -:103ED000EC260E94032791E0D82ED92601C0D12CD0 -:103EE000E72DE295EF70F0E0E759FF4F0C94452E77 -:103EF000872D807F072D0F70882311F00295007F9A -:103F0000112389F0002309F48DC180E28C0D8830E3 -:103F100020F4802F0E94B52703C0802F0E94C52760 -:103F20000E94FC277FC18C2D0E94E41E002309F40F -:103F300092C180E28C0D883020F4802F0E94BB2734 -:103F400003C0802F0E94CB270E94FC2784C1872DAD -:103F5000807F972D9F70803211F4892F03C0892FA5 -:103F60008295807FCC2021F0F1E0CF16A1F01DC01A -:103F7000112339F0002319F1013009F50E94E527DA -:103F80006AC1002319F0013009F465C189830E94D8 -:103F9000E827898105C1112321F0063008F05BC1B3 -:103FA0000EC0053008F057C1FBC0112359F00023A3 -:103FB00031F0F701958190FF35C19F7095830E9484 -:103FC000331F49C1002309F4EBC032C1872D869508 -:103FD0008695837090E0009719F0019761F03BC1DE -:103FE000112321F08C2D972D937002C080E090E07A -:103FF0000E94B71C30C1112321F08C2D972D937096 -:1040000002C080E090E00E94CD1C25C1872D837006 -:1040100009F052C011111FC18C2D829586958770B1 -:10402000880F880F9C2D9F70892E912CA12CB12C6C -:10403000082E04C0880C991CAA1CBB1C0A94D2F739 -:10404000C4FE14C00FE010E020E030E0B901A80188 -:1040500004C0440F551F661F771F8A95D2F7CB0106 -:10406000BA01609570958095909503C060E070E00E -:10407000CB01272D26952695237030E0223031057F -:1040800069F02330310589F0682979298A299B292B -:104090002130310571F00E947825DDC06829792929 -:1040A0008A299B290E949425D6C00E947825C501A3 -:1040B000B4010E945C25CFC0112319F0872D8170B7 -:1040C00001C08695882309F4C6C08C2D82958695FB -:1040D0008770880F880F9C2D9F70892E912CA12CA2 -:1040E000B12C082E04C0880C991CAA1CBB1C0A9475 -:1040F000D2F7C4FE14C00FE010E020E030E0B901B8 -:10410000A80104C0440F551F661F771F8A95D2F778 -:10411000CB01BA01609570958095909503C060E0E1 -:1041200070E0CB01272D269526952370422F50E075 -:104130004230510569F04330510589F068297929E9 -:104140008A299B294130510571F00E94522683C073 -:10415000682979298A299B290E946E267CC00E94A1 -:104160005226C501B4010E94362675C08C2D90E000 -:10417000FC01E05EF109E531F10508F04FC0E758B8 -:10418000FF4F0C94452E0C2D0F70872D8F7111232E -:1041900021F00E94CF25802F12CF0E94F025802F82 -:1041A0000E943A1F58C0112341F0053008F053C057 -:1041B000872D8F710E9415264EC0063008F04BC027 -:1041C000F7CF112339F0872D8F710E94CF2543C07F -:1041D0001123C9F3872D8F710E94F0253CC0112354 -:1041E00029F0872D8F710E94BA2535C00E94B02515 -:1041F00032C0112351F0172D1F71812F0E94CF253E -:1042000063E0812F0E94E32626C081E00E94EC2615 -:10421000023008F182E00E94EC261DC0112331F02B -:10422000002389F28C2D0E941C1E15C0002391F2E0 -:104230008C2D0E94E41E0FC0472D4F706C2DC701BE -:104240000E94EA0B0E94D42406C0472D4F706C2DAB -:10425000C7010E946208DD20F9F00E94DF2680FD80 -:104260001BC0F70112820E94D9260E94CF25C701E8 -:104270000E945B210E94D9260F90DF91CF911F9160 -:104280000F91FF90EF90DF90CF90BF90AF909F90F5 -:104290008F907F900C94F0250F90DF91CF911F911C -:1042A0000F91FF90EF90DF90CF90BF90AF909F90D5 -:1042B0008F907F9008950F931F93CF93DF93EC011E -:1042C000888199812B813C81232BB9F09F3F11F488 -:1042D0008F3F99F0CE010E94D608882371F0688143 -:1042E00079818A810E94D5268C010E948A260E94AB -:1042F0005125B801CE010E94411FDF91CF911F913E -:104300000F9108950E94D2270E94E2270E94A427BD -:104310000E94FC2780E090E00E94B71C80E090E0C3 -:104320000C94CD1C0E94C2270C9482210E94CA26A4 -:10433000292F22952F7030E02C3031054CF42A3093 -:1043400031056CF42250310922303105A8F407C040 -:104350002C30310569F02F30310551F00DC0803F10 -:1043600069F018F4803E40F409C0843F29F406C087 -:1043700093FB882780F9089580E0089581E00895EF -:10438000CF93DF9300D000D01F92CDB7DEB70F9050 -:104390000F900F900F900F90DF91CF910895CF93D2 -:1043A000DF9300D000D000D0CDB7DEB726960FB691 -:1043B000F894DEBF0FBECDBFDF91CF9108951F935C -:1043C000CF93DF93C091B40116E08091B501C81777 -:1043D00099F0D0E01C9FF0011D9FF00D1124EA54CC -:1043E000FE4F4081518162817381848195810E9459 -:1043F000CF212196C770E9CFDF91CF911F9108950A -:104400004091E6015091E7016091E8017091E90166 -:104410008091EA019091EB010C94CF218091EB0106 -:1044200082958F7009F054C08091E801882309F4C7 -:104430004FC08091B401A091B5016091E6017091E7 -:10444000E7014091E9015091EA01B6E08A1709F4C9 -:104450003FC090E041155105C1F17F3F11F46F3F1E -:10446000A1F1B89FF001B99FF00D1124EA54FE4F5D -:10447000218172132AC02081621327C02281211159 -:1044800024C0238134812417350710F421503109C9 -:10449000241B350B283C3105C0F42091EB012F7013 -:1044A00020612093EB0126E0289FF001299FF00D69 -:1044B0001124E554FE4F80818F708061808386EEE9 -:1044C00091E00E945B210C94DF2101968770BECFA2 -:1044D0000895CF92DF92EF92FF920F931F93CF93A5 -:1044E000DF93CDB7DEB762970FB6F894DEBF0FBE8D -:1044F000CDBF8C0185E0F801DE011D9601900D9283 -:104500008A95E1F7D8014C9111965C91119712961A -:104510006C9112971396CD90DC9014973091E60130 -:104520007091E7018091E9019091EA01009709F407 -:104530006BC17F3F19F43F3F09F466C1E090E80189 -:10454000EE2009F4C0C02091EB01C816D90628F06E -:10455000F601E81BF90BCF0104C0809590958C0DF6 -:104560009D1DFF24F394883C910578F0F12C207F69 -:1045700009F0C6C07C2DD98AC88A89890E94C021C9 -:1045800086EE91E00E945B21B1C0822F807F09F00E -:1045900046C0751314C0341312C0611110C02F70BF -:1045A00020612093EB010E94002286EE91E00E94A0 -:1045B0005B218091EB01D80115968C932EC0CD28FC -:1045C00019F15F3F11F44F3FF9F0F62E61111CC055 -:1045D0008091B4012091B50136E0821709F45AC0E8 -:1045E00090E0389FF001399FF00D1124EA54FE4FFE -:1045F0007181571306C07081471303C07281711116 -:1046000003C001968770E9CFF62E662309F418C11E -:104610008091EB0181608093EB01F12C11C1751346 -:1046200008C0341306C0611104C08091EB01D801A9 -:10463000C3C04D875E878D859E856A8B0E949621BB -:104640006A898823E1F16623D1F12091EB01822F61 -:1046500082958F7090E0029774F08091E6019091BE -:10466000E70198878F831986DB86CA862C87CE015F -:1046700007960E945B2186E0F801A6EEB1E001906A -:104680000D928A95E1F70E940E220E940022FF24DB -:10469000F394D6C04D875E878D859E850E94CA267D -:1046A000292F22952F7030E0223031050CF0BCC04C -:1046B0009F7009F0B6C0805E883008F4C1C0C801A0 -:1046C0000E945B21E4CFC816D90608F453C0F60156 -:1046D000E81BF90BCF01883C910508F450C0F12C80 -:1046E0007C2DD98AC88A89890E94C021E6EEF1E032 -:1046F00086E0DF011D928A95E9F70E940022A0C0A2 -:10470000751314C0341312C0611110C08091EB01F5 -:10471000F8018583C8010E945B2186E0E6EEF1E0A6 -:10472000DF011D928A95E9F7FE2C8AC04D875E87CE -:104730008D859E856A8B0E9496216A89882309F45B -:10474000BECF662309F4BBCF2091EB01822F829567 -:104750008F7090E002970CF48ECF8091E6019091DB -:10476000E7019A8389831B82DD82CC822E83CE016E -:1047700001967FCF809590958C0D9D1DACCFF62E28 -:10478000662309F49CCF75132EC034132CC02091DE -:10479000EB0120FD1FC0822F82958F70D9F0D801C8 -:1047A00015962C9315978F3049F08F5F982F92951F -:1047B000907F822F8F70892B15968C93C8010E9451 -:1047C0005B2186E0F801A6EEB1E001900D928A959A -:1047D000E1F793CF86E0F801A6EEB1E001900D92EB -:1047E0008A95E1F72DC04D875E878D859E850E9455 -:1047F0009621811140CF8091EB0181608093EB0184 -:10480000C8010E945B211CC0662309F458CF4D8764 -:104810005E878D859E850E949621882309F44FCF5F -:104820002ACF811148CF0CC0243031050CF047CF7E -:104830009F7009F440CFF8019581907F09F03BCF3C -:104840008F2D62960FB6F894DEBF0FBECDBFDF91FD -:10485000CF911F910F91FF90EF90DF90CF9008952F -:104860001F93CF93DF93CDB7DEB72C970FB6F89495 -:10487000DEBF0FBECDBF4F83588769877A878B878E -:104880009C87CE0107960E946922882369F08F8158 -:1048900098852A853B85232BF1F19F3F09F063C062 -:1048A0008F3F09F060C037C086E0FE013796DE0119 -:1048B000119601900D928A95E1F76F817885EA85CE -:1048C000FB85309741F17F3F11F46F3F21F120913B -:1048D000B50130E0C9010196877099274091B40174 -:1048E00050E08417950709F447C069837A83FD83F4 -:1048F000EC8396E0929FD001939FB00D1124AA54AF -:10490000BE4FFE01319601900D929A95E1F780938A -:10491000B5010E94DF2116E08091B4019091B501AC -:104920008917C1F1189FC00111248A549E4F0E941B -:104930006922882379F1E091B4011E9FF0011124CE -:10494000EA54FE4F40815181628173818481958157 -:104950000E94CF218091B40190E001968770992741 -:104960008093B401D9CF4F81588569857A858B852D -:104970009C850E94CF21CFCF0E9492211092B50139 -:104980001092B401E6EEF1E086E0DF011D928A9517 -:10499000E9F7C1CF2C960FB6F894DEBF0FBECDBF9E -:1049A000DF91CF911F910895EF92FF920F931F9384 -:1049B000CF93DF938C01009709F46CC0F12CEE24A7 -:1049C000E394E8012196F8018491843740F484301F -:1049D00008F051C0813081F0823019F15BC0853719 -:1049E00009F444C0A8F19CE7980F903708F052C032 -:1049F0008F770E94E41E41C00E5F1F4FFE01C491DD -:104A000080E28C0F883048F4C7708E2D01C0880F6B -:104A1000CA95EAF70E94D52714C08C2F0E941C1E4D -:104A20002DC00E5F1F4FFE01C49180E28C0F8830B5 -:104A300058F4C7708E2D01C0880FCA95EAF70E94FE -:104A4000DB270E94FC271AC08C2F0E94E41E16C090 -:104A50000E5F1F4FFE01C491CC2381F08FE99FE0D0 -:104A60000197F1F700C00000C150F6CF0E5F1F4F55 -:104A7000FE01F49003C00E941C1E8E018F2D88231E -:104A800009F49FCFEFE9FFE03197F1F700C0000094 -:104A90008150F5CFDF91CF911F910F91FF90EF9053 -:104AA000089508956093F0017093F1018093F201ED -:104AB0009093F3010C9482210F931F930091F001C6 -:104AC0001091F1012091F2013091F301DC01CB0151 -:104AD000802B912BA22BB32B8093F0019093F101AB -:104AE000A093F201B093F3011F910F910C948221D6 -:104AF0000F931F930091F0011091F1012091F201A9 -:104B00003091F301DC01CB0180239123A223B32355 -:104B10008093F0019093F101A093F201B093F3011F -:104B20001F910F910C9482210F931F930091F0011C -:104B30001091F1012091F2013091F301DC01CB01E0 -:104B400080279127A227B3278093F0019093F1014A -:104B5000A093F201B093F3011F910F910C94822165 -:104B60001092EC011092ED011092EE011092EF0103 -:104B70000C94822141E050E060E070E004C0440FFA -:104B8000551F661F771F8A95D2F74093EC0150930B -:104B9000ED016093EE017093EF010C94822141E0EE -:104BA00050E060E070E004C0440F551F661F771F9F -:104BB0008A95D2F78091EC019091ED01A091EE01E0 -:104BC000B091EF01482B592B6A2B7B2B4093EC01C2 -:104BD0005093ED016093EE017093EF010C948221EC -:104BE00041E050E060E070E004C0440F551F661FD4 -:104BF000771F8A95D2F74095509560957095809172 -:104C0000EC019091ED01A091EE01B091EF014823EC -:104C100059236A237B234093EC015093ED01609369 -:104C2000EE017093EF010C94822141E050E060E0CE -:104C300070E004C0440F551F661F771F8A95D2F796 -:104C40008091EC019091ED01A091EE01B091EF0106 -:104C5000482759276A277B274093EC015093ED01A1 -:104C60006093EE017093EF010C9482210F931F93D8 -:104C70000091EC011091ED012091EE013091EF01D6 -:104C8000DC01CB01802B912BA22BB32B8093EC0169 -:104C90009093ED01A093EE01B093EF011F910F915E -:104CA0000C9482210F931F930091EC011091ED0160 -:104CB0002091EE013091EF01DC01CB0180239123A3 -:104CC000A223B3238093EC019093ED01A093EE0116 -:104CD000B093EF011F910F910C9482210F931F93BA -:104CE0000091EC011091ED012091EE013091EF0166 -:104CF000DC01CB0180279127A227B3278093EC0109 -:104D00009093ED01A093EE01B093EF011F910F91ED -:104D10000C9482210895CF92DF92EF92FF920F932D -:104D20001F93CF93DF938C01C090F001D090F101DD -:104D3000E090F201F090F3018091EC019091ED018F -:104D4000A091EE01B091EF01C82AD92AEA2AFB2AE4 -:104D5000CFE1D0E0D701C6010C2E04C0B695A795CF -:104D6000979587950A94D2F780FF06C0B8018C2FDB -:104D70000E94690A019721F4219760F780E001C041 -:104D80008C2FDF91CF911F910F91FF90EF90DF90CB -:104D9000CF900895CF93DF93EC010E948B26BE0144 -:104DA0000E94690ADF91CF910895CB010E94CA2623 -:104DB00008958091F4018595859585950895809154 -:104DC000F4018770089598E0899F90011124262BA3 -:104DD0002093F4010C94CF252091F4018095822337 -:104DE0008093F401982F977069F430E0482F55278D -:104DF00047FD50952417350729F0859585958595AC -:104E00000C94F02508959091F401977081E009F4D5 -:104E100080E0089590910C01992321F090910D016B -:104E2000911109C020910E0130910F01F9013296C4 -:104E30009FEF40E030C0982F9695969596959F30BD -:104E4000A0F4E0910E01F0910F01E90FF11D8770C0 -:104E500021E030E0A90102C0440F551F8A95E2F716 -:104E6000CA019181892B818308959091090290FF55 -:104E700023C01F928F9389E299E09F938F930E94A2 -:104E800046080F900F900F900F9008959F3F39F0B4 -:104E90004F5F4E3041F051915813F8CF0DC0511172 -:104EA000F7CF942FF5CF9F3F39F0F901E90FF11DAE -:104EB00097FDFA9582830895089590910C019923A6 -:104EC00021F090910D01911109C020910E013091B6 -:104ED0000F01F9013296205F3F4F30C0982F969511 -:104EE000969596959F30A8F4E0910E01F0910F01F0 -:104EF000E90FF11D877021E030E0A90102C0440FE5 -:104F0000551F8A95E2F7CA01809591818923818393 -:104F100008959091090290FF16C01F928F938BE025 -:104F200099E09F938F930E9446080F900F900F90E7 -:104F30000F9008953196E217F30729F090819813A6 -:104F4000F9CF1082F7CF089581E090E0E0910E0153 -:104F5000F0910F01E80FF91F108201968031910541 -:104F6000A9F7089580910802089590910802892B6D -:104F70008093080208958095909108028923809378 -:104F80000802089510920802089590910702892B53 -:104F9000809307020895809590910702892380935A -:104FA0000702089510920702089590910602892B36 -:104FB000809306020895809590910602892380933C -:104FC000060208951092060208958093F50108954F -:104FD0001092F501089580910E0190910F01FC014E -:104FE00031969C01205F3F4F80E0919191118F5F3E -:104FF000E217F307D1F70895E0910E01F0910F0148 -:10500000809108028083E0910E01F0910F01908160 -:1050100080910702892B8083E0910E01F0910F01AE -:10502000908180910602892B80838091F5018823ED -:1050300061F0E0910E01F0910F019081892B808346 -:105040000E94EB2781111092F50180910E01909141 -:105050000F010C946E1C90933D0180933C010895C8 -:1050600020E0009739F0AC01415051098423952389 -:105070002F5FF7CF822F08958295982F9C7C392F30 -:1050800036953695282F237344E0249FC0011124C0 -:10509000932F982B292F2A7A2695892F8575880F8B -:1050A000822B08951F93CF93DF931F92CDB7DEB766 -:1050B00099830E943C28182F9981892F0E943C28AF -:1050C000212F30E0322F2227A901482BCA010F904F -:1050D000DF91CF911F91089580915A02843021F180 -:1050E00010920A0220E488E190E00FB6F894A895A7 -:1050F000809360000FBE2093600080E00E947D0CD2 -:1051000083B7817F846083BF83B7816083BF7894D6 -:10511000889583B78E7F83BF88E10FB6F89480931C -:105120006000109260000FBE089508950E94930CD5 -:105130000E94160D0E9495280E94F90D91E08111A0 -:1051400001C090E0892F08950E9492210E94621C64 -:105150000C947D0C1F920F920FB60F9211248F9317 -:105160009F93AF93BF9380910A02811113C08091E6 -:105170000B0290910C02A0910D02B0910E0241968B -:10518000A11DB11D80930B0290930C02A0930D0200 -:10519000B0930E02BF91AF919F918F910F900FBE70 -:1051A0000F901F90189582E084BD93E095BD9AEF13 -:1051B00097BD80936E0008952FB7F89480910B02ED -:1051C00090910C02A0910D02B0910E022FBF089594 -:1051D000CF92DF92EF92FF920F931F932FB7F89425 -:1051E00040910B0250910C0260910D0270910E02E1 -:1051F0002FBF6A017B01EE24FF248C0120E030E008 -:10520000C016D106E206F30610F4415051099A0186 -:10521000281B390BC9011F910F91FF90EF90DF9070 -:10522000CF9008951F920F920FB60F9211248F9373 -:105230009F93AF93BF9380910B0290910C02A0912A -:105240000D02B0910E020196A11DB11D80930B02BB -:1052500090930C02A0930D02B0930E02BF91AF91F8 -:105260009F918F910F900FBE0F901F9018950E94E5 -:105270006019F8942FEF87EA91E621508040904022 -:10528000E1F700C0000087E090EBDC01809363024F -:1052900090936402A0936502B09366029CE088E15B -:1052A0000FB6F894A895809360000FBE90936000AD -:1052B000FFCF8F929F92AF92BF92EF92FF920F9388 -:1052C0001F93CF93C5E0E82EF12C8C2F0E94910DF7 -:1052D0004B015C0100E110E0D501C401002E04C0C7 -:1052E000B695A795979587950A94D2F780FF0AC03F -:1052F000602F7C2F80E00E94ED0BE816F90611F478 -:1053000081E006C00150110938F7C150F0F680E085 -:10531000CF911F910F91FF90EF90BF90AF909F9012 -:105320008F900895CF93C82F8CE20E94592988232B -:1053300021F08C2FCF910C94592980E0CF910895C2 -:10534000CF930E94F92A811102C00E94D82A8EE4CC -:1053500099E00E94AD07C5E6C15049F00E94160DC4 -:105360008FE39CE90197F1F700C00000F5CF87E4D7 -:1053700099E00E94AD0789E20E949229811116C12D -:105380008AE20E94922981110E94D82A85E00E9417 -:10539000922981110E9437290E94042B80930902CF -:1053A00087E00E9492298823A9F18BE10E9492292B -:1053B000882351F08091090281FB222720F991E096 -:1053C000922790FB81F90EC08EE00E9492298823DB -:1053D00061F08091090282FB222720F991E0922757 -:1053E00090FB82F98093090215C080E10E94922906 -:1053F00090910902882341F093FB222720F981E054 -:10540000822780FB93F904C0892F809580FB90F957 -:1054100090930902809109020E94082B0E94162B8A -:1054200090E0909311028093100280EE0E949229E6 -:10543000882341F080911002982F909590FB80F97D -:105440008093100289E30E949229882359F0809169 -:10545000100281FB222720F991E0922790FB81F92D -:105460008093100282EE0E949229882359F0809145 -:10547000100282FB222720F991E0922790FB82F90B -:105480008093100286EE0E949229882359F0809121 -:10549000100283FB222720F991E0922790FB83F9E9 -:1054A0008093100283EE0E949229882359F0809104 -:1054B000100284FB222720F991E0922790FB84F9C7 -:1054C0008093100285E30E949229882359F08091ED -:1054D000100285FB222720F991E0922790FB85F9A5 -:1054E0008093100281E30E949229882359F08091D1 -:1054F000100286FB222720F991E0922790FB86F983 -:105500008093100281E10E949229882359F08091B2 -:10551000100287FB222720F991E0922790FB87F960 -:1055200080931002809110020E941A2B8091100229 -:1055300087FB882780F980930D0187E20E949229DA -:10554000C82F8EE10E9492298111C2608FE10E94D2 -:1055500092298111C46080E20E9492298111C86061 -:1055600081E20E9492298111C06182E20E94922907 -:105570008111C06283E20E9492298111C06484E299 -:105580000E949229882311F0C06802C0CC2329F020 -:105590008C2F0E94112B6C2F03C00E940D2B682FA3 -:1055A00070E080E090E0CF910C945225CF91089567 -:1055B0006DEE7EEF80E090E00E947D2E60E082E064 -:1055C00090E00E945F2E60E083E090E00E945F2EFA -:1055D00060E084E090E00E945F2E60E085E090E073 -:1055E0000E945F2E40E050E0BA0188E090E00C9409 -:1055F000712E80E090E00E94592E21E08D3E9E4F5A -:1056000009F020E0822F089582E090E00C944B2E68 -:10561000682F82E090E00C945F2E83E090E00C9481 -:105620004B2E682F83E090E00C945F2E84E090E096 -:105630000C944B2E682F84E090E00C945F2ECF9357 -:10564000C82F1F928F9389E699E09F938F930E94B2 -:10565000460881E090E0A0E0B0E0BC01CD0104C0CC -:10566000660F771F881F991FCA95D2F70E9452258F -:105670000F900F900F900F90CF910C949221CF9399 -:105680008B3109F4D1C108F049C08E3009F4E0C172 -:1056900000F5873009F4A9C1A8F4863009F066C284 -:1056A00080910902817F8E7F8093090286EF9AE0C4 -:1056B0000E94AD0787EA9EE00E94AD0781E08093DB -:1056C0000F0291C1883009F45BC08B3009F487C1A7 -:1056D0004DC2813109F432C220F4803109F4CCC1C9 -:1056E00045C2863109F4E3C1893109F03FC287EE32 -:1056F0009AE00E94AD078AEB9AE00E94AD078BE723 -:105700009AE00E94AD078EE49AE00E94AD0782E124 -:105710009AE00E94AD0787EE99E063C1853309F4F2 -:1057200021C268F4873209F41DC228F48E3108F4CE -:105730001DC28D5118C2893209F414C217C28334B4 -:1057400038F48A3308F00CC2883309F448C10EC219 -:10575000833409F407C2883409F008C20E949221F8 -:105760008BE89EE00E94AD079FEF23ED80E3915010 -:1057700020408040E1F700C000000E94372933C17B -:105780008BEA9EE00E94AD0788EF9DE00E94AD0786 -:105790000E940D2B1F928F9385EF9DE09F938F9317 -:1057A0000E94460883EF9DE00E94AD070E94042BF3 -:1057B000C82F80EE9DE00E94AD071F92CF938BED26 -:1057C0009DE09F938F930E94460889ED9DE00E9483 -:1057D000AD078FEC9DE00E94AD078C2F81701F926A -:1057E0008F938CEC9DE09F938F930E9446088AECE8 -:1057F0009DE00E94AD0780EC9DE00E94AD07C1FBDB -:10580000882780F91F928F938DEB9DE09F938F9354 -:105810000E9446088BEB9DE00E94AD078FEA9DE059 -:105820000E94AD07C2FB882780F91F928F938CEAF4 -:105830009DE09F938F930E9446088AEA9DE00E9414 -:10584000AD0781EA9DE00E94AD07C3FBCC27C0F9FC -:105850001F92CF938EE99DE09F938F930E944608FD -:105860008CE99DE00E94AD070E94162BC82F88E8A6 -:105870009DE00E94AD071F92CF9383E89DE09F9328 -:105880008F930E94460881E89DE00E94AD0788E65C -:105890009DE00E94AD078C2F81701F928F9385E64B -:1058A0009DE09F938F930E9446088DB79EB7809688 -:1058B0000FB6F8949EBF0FBE8DBF83E69DE00E9499 -:1058C000AD078CE49DE00E94AD07C1FB882780F9FD -:1058D0001F928F9389E49DE09F938F930E944608C7 -:1058E00087E49DE00E94AD0785E39DE00E94AD073F -:1058F000C2FB882780F91F928F9382E39DE09F93DC -:105900008F930E94460880E39DE00E94AD078EE1E0 -:105910009DE00E94AD07C3FB882780F91F928F93FB -:105920008BE19DE09F938F930E94460889E19DE063 -:105930000E94AD078FE09DE00E94AD07C4FB882761 -:1059400080F91F928F938CE09DE09F938F930E942C -:1059500046088AE09DE00E94AD0788EF9CE00E9427 -:10596000AD07C5FB882780F91F928F9385EF9CE0D8 -:105970009F938F930E94460883EF9CE00E94AD079F -:1059800087ED9CE00E94AD07C6FB882780F91F9237 -:105990008F9384ED9CE09F938F930E94460882ED45 -:1059A0009CE00E94AD078AEC9CE00E94AD07C7FB1B -:1059B000CC27C0F91F92CF9387EC9CE09F938F93E5 -:1059C0000E94460885EC9CE00E94AD078DB79EB70B -:1059D0004C960FB6F8949EBF0FBE8DBF04C081E1F8 -:1059E0009BE00E94AD07C1E0C6C080910902C82FAC -:1059F000C095C170C0FB80F980930902CC2349F0A7 -:105A00008FE79EE00E94AD07809109028660886062 -:105A100048C082E79EE00E94AD0780910902897F1D -:105A2000877F80930902DFCF9091090291FBCC27F9 -:105A3000C0F981E0C827892FC0FB81F98093090252 -:105A4000CC2319F085E69EE027C087E59EE0C9CF0C -:105A50009091090292FBCC27C0F981E0C827892FD9 -:105A6000C0FB82F980930902CC2319F088E49EE000 -:105A700013C088E39EE0B5CF9091090293FBCC2739 -:105A8000C0F981E0C827892FC0FB83F98093090200 -:105A9000CC2351F08CE29EE00E94AD078091090278 -:105AA00081608093090267C08FE19EE09ACF89ED03 -:105AB00099E00E94AD070E94621C1F928F938FEBAA -:105AC00099E09F938F930E94460880910C011F924A -:105AD0008F9388EA99E09F938F930E944608809164 -:105AE00094011F928F9385E999E09F938F930E9471 -:105AF000460880910D011F928F9382E899E09F9351 -:105B00008F930E94460880910B0290910C02A09105 -:105B10000D02B0910E02BF93AF939F938F938EE6C9 -:105B200099E09F938F930E9446088DB79EB7469643 -:105B30000FB6F8949EBF0FBE8DBF55CF0E94922125 -:105B4000C0910D0181E0C827C0930D01CC2329F03D -:105B500085E19EE00E94AD070EC08AE09EE041CF45 -:105B6000895301C080E00E941F2B3DCF88E09EE05A -:105B70000E94AD07C0E08C2FCF91089580E008957A -:105B800080E00895CF93C82F80910F02882319F0E9 -:105B9000813049F03EC0E0910E01F0910F0180810B -:105BA0008232C9F507C0E0910E01F0910F018081AA -:105BB000823261F48C2F0E94BE2D811104C08C2F83 -:105BC0000E943F2B24C081E090E021C08C2F0E94D6 -:105BD000C02D81111BC0C43189F018F4CB3029F0DD -:105BE00010C0C93259F0C83361F486EF9AE00E94C0 -:105BF000AD0785E699E00E94AD0708C010920F023C -:105C00000CC083E699E00E94AD0707C081E0817077 -:105C100006C010920F0280E002C080E0F8CFCF9162 -:105C20000895991B79E004C0991F961708F0961BF8 -:105C3000881F7A95C9F780950895AA1BBB1B51E16F -:105C400007C0AA1FBB1FA617B70710F0A61BB70BEC -:105C5000881F991F5A95A9F780959095BC01CD0191 -:105C6000089597FB072E16F4009407D077FD09D00E -:105C70000E941D2E07FC05D03EF4909581959F4F04 -:105C80000895709561957F4F0895EE0FFF1F059061 -:105C9000F491E02D0994F999FECF92BD81BDF89A57 -:105CA000992780B50895A6E1B0E044E050E00C9457 -:105CB000852EA8E1B0E042E050E00C94852E262F1E -:105CC000F999FECF92BD81BDF89A019700B40216F2 -:105CD00039F01FBA20BD0FB6F894FA9AF99A0FBEA0 -:105CE00008950396272F0E94602E0E945F2E252F75 -:105CF0000E94602E242F0C94602E0196272F0E9464 -:105D0000602E0C945F2EDC01CB01FC01F999FECFD3 -:105D100006C0F2BDE1BDF89A319600B40D92415033 -:0A5D20005040B8F70895F894FFCF43 -:105D2A00FFFFCB149A15CE14661532150101F60140 -:105D3A0059766649096C0F1F4F5F6F7F7969192978 -:105D4A0039534333231303403620399808620842F3 -:0C5D5A000809089507AE07C707E7070017 -:00000001FF diff --git a/keyboards/phantom/phantom.c b/keyboards/phantom/phantom.c index 30fef63c6..d53af491f 100644 --- a/keyboards/phantom/phantom.c +++ b/keyboards/phantom/phantom.c @@ -1,25 +1,9 @@ #include "phantom.h" #include "led.h" -__attribute__ ((weak)) -void matrix_init_user(void) { - // leave these blank -}; - -__attribute__ ((weak)) -void matrix_scan_user(void) { - // leave these blank -}; - void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up matrix_init_user(); led_init_ports(); }; - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - matrix_scan_user(); -}; diff --git a/keyboards/phantom/phantom.h b/keyboards/phantom/phantom.h index d7eb8c5a3..420826bec 100644 --- a/keyboards/phantom/phantom.h +++ b/keyboards/phantom/phantom.h @@ -1,10 +1,7 @@ #ifndef PHANTOM_H #define PHANTOM_H -#include "matrix.h" -#include "keymap.h" -#include -#include "action_util.h" +#include "quantum.h" /* Phantom matrix layout * ,-----------------------------------------------------------------------------. @@ -40,7 +37,4 @@ {k50, k51, k52, k57, k57, k57, k57, k57, k57, k57, k5a, k5b, k5c, k5d, k5e, k5f, k5g} \ } -void matrix_init_user(void); -void matrix_scan_user(void); - #endif diff --git a/keyboards/planck/.gitignore b/keyboards/planck/.gitignore deleted file mode 100644 index 6e92f57d4..000000000 --- a/keyboards/planck/.gitignore +++ /dev/null @@ -1 +0,0 @@ -tags diff --git a/keyboards/planck/README.md b/keyboards/planck/README.md deleted file mode 100644 index 47cfec032..000000000 --- a/keyboards/planck/README.md +++ /dev/null @@ -1,31 +0,0 @@ -Planck keyboard firmware -====================== -DIY/Assembled compact ortholinear 40% keyboard by [Ortholinear Keyboards](http://ortholinearkeyboards.com). - -## Quantum MK Firmware - -For the full Quantum feature list, see [the parent README.md](/README.md). - -## Building - -Download or clone the whole firmware and navigate to the keyboards/planck folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use `make dfu` to program your PCB once you hit the reset button. - -Depending on which keymap you would like to use, you will have to compile slightly differently. - -### Default -To build with the default keymap, simply run `make`. - -### Other Keymaps -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` in the keymaps folder, and see keymap document (you can find in top README.md) and existent keymap files. - -To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: -``` -$ make KEYMAP=[default|jack|] -``` -Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. - -### Notable forks (which some of the keymap files are from) -- [Shane's Fork](https://github.com/shanecelis/tmk_keyboard/tree/master/keyboard/planck) -- [Pierre's Fork](https://github.com/pcarrier/tmk_keyboard/blob/pcarrier/planck/keyboard/gh60/keymap_planck.c) -- [Nathan's Fork](https://github.com/nathanrosspowell/tmk_keyboard/tree/planck-jack/keyboard/planck) -- [Matthew's Fork](https://github.com/pepers/tmk_keyboard/tree/master/keyboard/planck_grid) diff --git a/keyboards/planck/config.h b/keyboards/planck/config.h index b64893108..da2b000f6 100644 --- a/keyboards/planck/config.h +++ b/keyboards/planck/config.h @@ -37,6 +37,8 @@ along with this program. If not, see . #define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } #define UNUSED_PINS +#define BACKLIGHT_PIN B7 + /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW @@ -59,15 +61,6 @@ along with this program. If not, see . keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ ) -/* ws2812 RGB LED */ -#define ws2812_PORTREG PORTD -#define ws2812_DDRREG DDRD -#define ws2812_pin PD1 -#define RGBLED_NUM 28 // Number of LEDs -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 - /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/planck/keymaps/.gitignore b/keyboards/planck/keymaps/.gitignore deleted file mode 100644 index 24e5b0a1a..000000000 --- a/keyboards/planck/keymaps/.gitignore +++ /dev/null @@ -1 +0,0 @@ -.build diff --git a/keyboards/planck/keymaps/README.md b/keyboards/planck/keymaps/README.md deleted file mode 100644 index 54fb5f6d9..000000000 --- a/keyboards/planck/keymaps/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# How to add your own keymap - -Folders can be named however you'd like (will be approved upon merging), or should follow the format with a preceding `_`: - - _[ISO 3166-1 alpha-2 code*]_[layout variant]_[layout name/author] - -\* See full list: https://en.wikipedia.org/wiki/ISO_3166-1#Officially_assigned_code_elements - -and contain the following files: - -* `keymap.c` -* `readme.md` *recommended* -* `config.h` *optional*, found automatically when compiling -* `Makefile` *optional*, found automatically when compling - -When adding your keymap to this list, keep it organised alphabetically (select list, edit->sort lines), and use this format: - - * **folder_name** description - -# List of Planck keymaps - -* **default** default Planck layout -* **cbbrowne** cbbrowne's Planck layout \ No newline at end of file diff --git a/keyboards/planck/keymaps/ab/README.md b/keyboards/planck/keymaps/ab/README.md deleted file mode 100644 index d6280f074..000000000 --- a/keyboards/planck/keymaps/ab/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# Practical keymap for Planck Ortholinear 40% Mechanical Keyboard -A practical keymap that emulates standard QWERTY keyboard for Planck. Once you get comfortable with this keymap, you may fork and customize it for your own needs. - -![Layout](keyboard-layout.png "Practical Keymap") -![Photo](keyboard-photo.jpg "Planck Keyboard") - -* Online keyboard layout editor: http://goo.gl/mlLAFZ - -# Programming Instructions: -Enter into programming mode and run the following command. -``` -$ sudo KEYMAP=ab make dfu -``` -# Notes -* Simultaneous RAISE+LOWER enters CUSTOM layer. You may add your own macros and custom keys here. -* RAISE and LOWER also acts as PgUp and PgDn when tapped. -* [CapsLock] also acts as [Ctrl] key when you press and hold. It is convenient for GNU Emacs users. -* Bracket keys are placed in the center of the keyboard for programmer's convenience. diff --git a/keyboards/planck/keymaps/ab/compiled.hex b/keyboards/planck/keymaps/ab/compiled.hex deleted file mode 100644 index 1723c4612..000000000 --- a/keyboards/planck/keymaps/ab/compiled.hex +++ /dev/null @@ -1,1139 +0,0 @@ -:100000000C948E020C94D5020C94D5020C94D5025B -:100010000C94D5020C94D5020C94D5020C94D50204 -:100020000C94D5020C94D5020C949A0D0C946C0E81 -:100030000C94D01B0C94D5020C94D5020C94D502D0 -:100040000C94D5020C9437030C94D5020C94D50271 -:100050000C94D5020C94381C0C94D5020C94D50247 -:100060000C94D5020C94D5020C94D5020C94D502B4 -:100070000C94D5020C94D5020C94D5020C94D502A4 -:100080000C94D5020C94D5020C94D5020C94D50294 -:100090000C94D5020C94D5020C94D5020C94D50284 -:1000A0000C94D5020C94D5020C94D5029D03A703A1 -:1000B000AF03E303C003CE03D503DC03D90EFB0E6D -:1000C000E90FFB0EE90F400F630FE90FB80FCB0FDD -:1000D000B512B512E412E4122313431399149914C0 -:1000E0004E139914FE13FE1365146E149914931491 -:1000F0000B140B140B140B140B140B140B140B1408 -:100100000B140B140B140B140B140B140B140B14F7 -:100110001B1429143014371441140000000000008F -:100120000000000000010204060A0F17202C3A4AC2 -:100130005D71879DB3C7DAE9F5FCFFFCF5E9DAC725 -:10014000B39D87715D4A3A2C20170F0A06040201FD -:1001500000000000000000000000010F020F011667 -:100160000216012C022C012D022D010F020F012875 -:100170000228000108020801100210010402040113 -:1001800006020601160216012C022C00011E021E98 -:10019000011F021F01200220012D022D011E021E3F -:1001A000011F021F01200220012D022D011E021E2F -:1001B000011F021F0120022001210221004BA14E3C -:1001C000A2392128322B0014001A0008001500174C -:1001D000001C0018000C00120013002A00E00004AC -:1001E000001600070009000A000B000D000E000FAA -:1001F0000033002800E1001D001B00060019000567 -:1002000000110010003600370038000320E00029FC -:1002100000E300E20001302C002C000230500052BC -:100220000051004F001E001F00200021002200236B -:100230000024002500260027002D002E00010001CB -:100240000001000100260227022F023002010001F6 -:10025000000100010001000100010001002F003039 -:1002600000340034020100010001000100043001EB -:10027000000100010001004B004B000100010001E2 -:1002800000010001003A003B003C003D003E003F01 -:1002900000400041004200430044004500010001CD -:1002A000000100010001000100010001002F022FE8 -:1002B000023100010001000100010001003500359C -:1002C00002310031022F002F0001000100007001F7 -:1002D000000100010001004E004E0001000100AAD3 -:1002E00000A900A8000100010001000100010001B7 -:1002F00000010001000100010001000100010001F6 -:1003000000010001000100010001000100010001E5 -:1003100000010001000100010001000100053001A1 -:10032000000630073001000100010001000100015A -:1003300000010001000100010001000100010001B5 -:1003400000010001002803540068006500200050EF -:10035000006C0061006E0063006B0020004B0065C4 -:1003600000790062006F0061007200640000002CE0 -:10037000034F007200740068006F006C0069006E2B -:100380000065006100720020004B0065007900628A -:10039000006F006100720064007300000004030934 -:1003A0000409026D00040100A0FA09040000010321 -:1003B000010100092111010001224000070581030C -:1003C00008000A09040100010301020009211101CA -:1003D0000001224D000705820308000A09040200FB -:1003E0000103000000092111010001223600070568 -:1003F000830308000A090403000103000000092127 -:1004000011010001223900070584031000011201C7 -:10041000100100000008EDFE606001000102000113 -:1004200005010906A101050719E029E715002501C5 -:1004300095087501810205081901290595057501C1 -:10044000910295017503910105071900297715009F -:100450002501957875018102C005010980A10185FA -:100460000216010026B7001A01002AB70075109580 -:10047000018100C0050C0901A101850316010026B8 -:100480009C021A01002A9C02751095018100C0058A -:10049000010902A1010901A1000509190129051598 -:1004A00000250195057501810295017503810105FE -:1004B00001093009311581257F95027508810609EA -:1004C000381581257F950175088106050C0A3802CB -:1004D0001581257F950175088106C0C005010906B3 -:1004E000A101050719E029E7150025019508750107 -:1004F00081029501750881010508190129059505F5 -:10050000750191029501750391010507190029FFF5 -:10051000150026FF00950675088100C011241FBE36 -:10052000CFEFDAE0DEBFCDBF04B603FE27C0809177 -:10053000000290910102A0910202B0910302873063 -:10054000904BA740B04BD1F41092000210920102E0 -:10055000109202021092030214BE84B7877F84BFF8 -:100560000FB6F894A8958091600088618093600030 -:10057000109260000FBEE0E0F8E3099511E0A0E002 -:10058000B1E0E0EDF6E402C005900D92A434B107AD -:10059000D9F722E0A4E4B1E001C01D92A030B20777 -:1005A000E1F70E94E10A0C9466230C940000089580 -:1005B000089581E0089508950C94D8020C94D9020E -:1005C0000C94DB020E94CD2123E030E0281B31098E -:1005D000220F209348010895282F2F9880918000A2 -:1005E000211108C0877F8093800010928D001092A7 -:1005F0008C001BC0886080938000233019F48FEF3B -:100600009FEF0FC083E090E0821B9109880F991F34 -:100610002FEF3FEFA90102C0569547958A95E2F763 -:10062000CA0190938D0080938C000C94E2020E948A -:10063000E20284E080934701109244010895279AD2 -:100640002F988FEF9FEF90938700809386008AE02A -:100650008093800089E1809381000E9436210C9470 -:1006600017030E941F036E9A769A0C94D7021F926A -:100670000F920FB60F9211242F933F938F939F9356 -:10068000EF93FF93E0914501F0914601CF01019670 -:1006900090934601809345010090470102C0F69572 -:1006A000E7950A94E2F7EF7380914401823019F4E0 -:1006B000E03251F404C0813039F4EF3329F48091F1 -:1006C0006F008D7F80936F00F0E0E65EFE4FE49157 -:1006D00021E031E0E29FC001E39F900D11240090E2 -:1006E000480102C0969587950A94E2F790938D0091 -:1006F00080938C00FF91EF919F918F913F912F916B -:100700000F900FBE0F901F901895CF93DF93EC01C1 -:100710000E94CF1CBE0180E090E0DF91CF910C944D -:10072000C418462F50E04830510508F04CC0DC0199 -:10073000FA01EA5AFF4F0C94162312968C918823E3 -:1007400009F441C081E090E00E9485033CC012960C -:100750008C91882311F081E007C081E00EC01296D1 -:100760008C91882349F082E00E94411943E061E0C6 -:1007700082E00E947E0527C082E00E946219F6CFC7 -:1007800012968C91882331F085EE0E9459110E94B7 -:100790008D2119C085EE0E94211215C012968C91F0 -:1007A000882389F08CE891E0089512968C91882333 -:1007B00051F083E791E0089512968C91882319F007 -:1007C0008AE591E0089580E090E0089581E0089541 -:1007D0000C94E60308950F931F93CF93DF938C013E -:1007E000FC01C081D181CE010E94FD19BE010E9491 -:1007F0006407EC01B8010E94E803882309F478C17A -:10080000F8018281882309F463C080915801811125 -:1008100027C0C431F0E7DF0709F012C10E94EA03E4 -:1008200081E0809358010E94021C909357018093AD -:10083000560110924B0110924D0110924C011092F2 -:100840004F0110924E0110925101109250011092DE -:10085000530110925201109255011092540148C157 -:1008600080915601909157010E940E1C883C910581 -:1008700070F480914B01E82FF0E0EE0FFF1FE45B76 -:10088000FE4FD183C0838F5F80934B0131C1C43150 -:1008900020E7D20708F024C1C23080E7D80710F55E -:1008A000C11590E7D90709F0DAC0F80182818823E1 -:1008B00009F4BFC00E940415FFEF24E38CE0F1505F -:1008C00020408040E1F700C000000E945D1C10C184 -:1008D000C431F0E7DF0708F0CFC0C23020E7D2070D -:1008E00008F49BC0F8018281882309F4A2C00E9409 -:1008F000BC1C811102C00E949D1C0E94D41C90E06F -:100900009093F1018093F001C230F0E7DF0721F40A -:100910008091F00181607AC0C33020E7D20721F4D2 -:100920008091F001826072C0C43080E7D80721F462 -:100930008091F00184606AC0C53090E7D90719F44E -:100940008091F00127C0C630E0E7DE0721F48091F6 -:10095000F00180615BC0C730F0E7DF0721F48091D0 -:10096000F001806253C0C83020E7D20721F48091A3 -:10097000F00180644BC0C93080E7D80721F4809132 -:10098000F001806843C0CA3090E7D90729F480910C -:10099000F001846088603AC0CB30E0E7DE0721F4E4 -:1009A0008091F0018E7F32C0CC30F0E7DF0721F478 -:1009B0008091F0018D7F2AC0CD3020E7D20721F44D -:1009C0008091F0018B7F22C0CE3080E7D80719F4E8 -:1009D0008091F0011AC08091F001CF3090E7D907E3 -:1009E00011F48F7E13C0C031E0E7DE0711F48F7D74 -:1009F0000DC0C131F0E7DF0711F48F7B07C0C231B2 -:100A0000D04711F48F7702C08B7F877F8093F001EE -:100A10008091F0010E94D81C6BC0C11580E7D807F7 -:100A200041F0C130D047F1F081E0809349018093DB -:100A30004A01C801DF91CF911F910F910C94DE0202 -:100A4000C43120E7D20708F04BC0C23080E7D80796 -:100A500008F048CFC11590E7D90709F42BCFC13072 -:100A6000D04711F7F8018281882319F38091DF01C3 -:100A700081608093DF013CC0C333E0E7DE07A1F46F -:100A8000F8018281882321F01092490182E017C089 -:100A900080914901811106C086E20E94591186E2C7 -:100AA0000E94211282E019C0C433D04709F0BCCFA4 -:100AB000F8018281882331F010924A0180E20E947D -:100AC000701216C080914A01811106C087E20E940F -:100AD000591187E20E94211280E20E94771208C019 -:100AE000C333F0E7DF0761F2C433D04709F39CCF8B -:100AF00080E0DF91CF911F910F910895CF92DF9207 -:100B0000EF92FF920F931F9301E010E020E030E09E -:100B10006801790104C0CC0CDD1CEE1CFF1C8A9519 -:100B2000D2F704C0000F111F221F331F6A95D2F79E -:100B30000C291D292E293F29C090C201D090C30144 -:100B4000E090C401F090C501C022D122E222F3223C -:100B5000842FC016D106E206F30641F41F910F91CF -:100B6000FF90EF90DF90CF900C9441191F910F915F -:100B7000FF90EF90DF90CF900C9462190C943103AA -:100B80000C94DC022CE0729FF001112430E3839F6F -:100B9000E00DF11D1124E60FF11DEE0FFF1FEB53C9 -:100BA000FE4F859194910E947607811540E5940748 -:100BB00008F047C0811520E4920708F013C1883E71 -:100BC000910520F5803E910508F07CC1883A910599 -:100BD00078F4853A910508F0A5C08130910509F4B3 -:100BE00071C108F42EC18430910508F06BC129C190 -:100BF0008B3B910508F4A1C0803C910508F421C10C -:100C0000FC01EE0FFF1FE35CFF4FE6C0811530E2F1 -:100C1000930758F4811541E0940708F053C1803FD1 -:100C2000910508F40EC190650895811520E392079F -:100C300008F0D5C0FC01FF70EE0FFF1FE354FE4F1C -:100C4000CBC0811535E5930708F043C0811544E515 -:100C5000940708F0DEC0811522E5920708F581159A -:100C600031E5930708F0C1C0482F437021E030E020 -:100C700002C0220F331F4A95E2F73C68AC0164E0E2 -:100C8000569547956A95E1F74370342B8F7086959A -:100C9000869540E2849FC0011124822B932B0895F6 -:100CA000282F26952695AC0143705527811593452D -:100CB00008F0A0C080E2289F9001112481E090E01C -:100CC00002C0880F991F4A95E2F7822B932B9C68EC -:100CD00008958F3240E7940790F48F3120E7920710 -:100CE00008F0A2C0811536E5930708F497C09C016F -:100CF00030562115304108F0A4C09F7093C0803356 -:100D000020E7920709F497C008F492C0813340E7C6 -:100D1000940709F493C08233904709F092C080E0B1 -:100D200093ED0895853A910509F48EC0863A9105B0 -:100D300009F08DC082E890E40895883A910509F49D -:100D400089C0893A910509F488C08A3A910509F465 -:100D500087C08B3A910509F486C08C3A910509F455 -:100D600085C08D3A910509F484C0803B910509F452 -:100D700083C08E3A910509F482C08F3A910509F437 -:100D800081C0813B910509F480C0823B910509F443 -:100D90007FC0833B910509F47EC0843B910509F433 -:100DA0007DC0853B910509F47CC0863B910509F423 -:100DB0007BC0873B910509F47AC0883B910509F413 -:100DC00079C0893B910509F478C08A3B910509F403 -:100DD00077C080E094E408958591949108959927CF -:100DE000906C08959F70906A0895982F8827816F5E -:100DF000906A089590E2299F9001112481E090E08B -:100E000002C0880F991F4A95E2F7822B932B9A68AC -:100E10000895982F8827846F906A08958F71992775 -:100E2000982F8827906208958F519047946D089568 -:100E300080E091ED089580E090ED089580E092EDDE -:100E4000089580E090E0089581E890E4089583E8B3 -:100E500090E4089582EE94E4089589EE94E4089570 -:100E60008AEE94E4089585EB94E4089586EB94E487 -:100E7000089587EB94E408958CEC94E408958DEC48 -:100E800094E4089583E895E408958AE895E4089544 -:100E900082E995E4089584E995E4089581E296E471 -:100EA000089583E296E4089584E296E4089585E245 -:100EB00096E4089586E296E4089587E296E408951C -:100EC0008AE296E4089508959CE0799FF001112448 -:100ED00090E3899FE00DF11D1124E60FF11DEE0F47 -:100EE000FF1FEB53FE4F8591949108958238910531 -:100EF00049F1B0F48133910509F458C048F48932BE -:100F0000910509F44EC08A32910509F454C0089540 -:100F10008533910509F440C08933910599F008950E -:100F2000833E910529F138F4803E910591F0823E8F -:100F30009105A1F00895863E9105F9F0873E91054F -:100F400031F108952091F00120FD3AC021FD38C013 -:100F500008958091F00180FD35C032C08091F0018C -:100F600082FF32C08091F00184FD30C083EE39C031 -:100F70008091F00182FD28C0F5CF8091F00183FFC0 -:100F800027C08091F00184FD21C087EE2AC08091A6 -:100F9000F00183FD1DC0F5CF8091F00185FD1AC0E1 -:100FA0001BC08091F00185FD17C014C08091F00135 -:100FB00086FD14C015C08091F00186FD11C00EC0E1 -:100FC00080EE0FC089E30DC082EE0BC080E009C047 -:100FD00086EE07C089E205C085E303C08AE201C04E -:100FE00081E390E008950C94E002E82FF0E0EF5DDB -:100FF000FE4F8081E82FEF70F0E082958F7021E046 -:1010000030E0A90102C0440F551F8A95E2F740A3C2 -:1010100008950F931F93CF93DF93C3E0D0E001E0D7 -:1010200010E0FE01EF5DFE4F8081E82FEF70F0E0F1 -:1010300021A182958F70A80102C0440F551F8A9587 -:10104000E2F7CA01822B81A38C2F0E94F50721971A -:1010500040F78BE090E061E070E0FC01EB5EFE4F5A -:101060002081E22FEF70F0E042A122952F70DB018A -:1010700002C0AA0FBB1F2A95E2F79D01242B22A3D1 -:10108000019758F7DF91CF911F910F9108950F931A -:101090001F93CF93DF9385B7806885BF85B780683E -:1010A00085BFC3E0D0E001E010E0FE01EF5DFE4F40 -:1010B0008081E82FEF70F0E021A182958F70A80168 -:1010C00002C0440F551F8A95E2F7CA01822B81A303 -:1010D0008C2F0E94F507219740F78BE090E061E0AC -:1010E00070E0FC01EB5EFE4F2081E22FEF70F0E03C -:1010F00042A122952F70DB0102C0AA0FBB1F2A95C7 -:10110000E2F79D01242B22A3019758F7DF91CF919D -:101110001F910F910C94BE05EF92FF920F931F93B6 -:10112000CF93DF9301E611E0C3E0EE24E394F12CCA -:10113000D5E08C2F0E94F5078BE090E040E050E076 -:10114000FC01EB5EFE4F6081E62FEF70F0E020A126 -:1011500030E062956F7002C0359527956A95E2F789 -:1011600020FD09C09701082E02C0220F331F0A94E8 -:10117000E2F7422B532B019718F7F80192918291D5 -:101180008F018417950721F051834083D09300018C -:101190008C2F0E94F507C15060F68091000187FDF9 -:1011A0002CC08150809300018F3F39F08FE99FE080 -:1011B0000197F1F700C0000020C080915F0190917D -:1011C0006001909368018093670180915D01909127 -:1011D0005E01909366018093650180915B0190911F -:1011E0005C01909364018093630180915901909117 -:1011F0005A0190936201809361010E94C00581E0D1 -:10120000DF91CF911F910F91FF90EF900895E82FFC -:10121000F0E0EE0FFF1FEF59FE4F8081918108959E -:1012200008950F931F93CF9309E611E0C0E0F801F2 -:10123000929182918F010E94781BC80FF1E00136D4 -:101240001F07A9F78C2FCF911F910F9108958091BF -:1012500079010895CF93DF9300D01F92CDB7DEB709 -:101260009C018091F601843019F593E099833B83CA -:101270002A839093E9008FEF9091E800815095FDCB -:1012800006C095ED9A95F1F700008111F5CF809198 -:10129000E80085FF0DC040E050E063E070E0CE0163 -:1012A00001960E948A0B8091E8008E778093E80077 -:1012B0000F900F900F90DF91CF910895CF93DF9310 -:1012C00000D01F92CDB7DEB72091F601243021F572 -:1012D00022E029839B838A8383E08093E9008FEF58 -:1012E0009091E800815095FD06C095ED9A95F1F733 -:1012F00000008111F5CF8091E80085FF0DC040E02E -:1013000050E063E070E0CE0101960E948A0B80916C -:10131000E8008E778093E8000F900F900F90DF9198 -:10132000CF9108952091F6012430F1F422E020932A -:10133000E9002FEF3091E800215035FD06C035ED72 -:101340003A95F1F700002111F5CF2091E80025FF33 -:101350000BC040E050E065E070E00E948A0B809195 -:10136000E8008E778093E8000895CF93DF93EC0137 -:101370009091F601943009F046C080910B018823CA -:10138000D9F080910C018823B9F09093E9008FEF98 -:101390009091E800815095FD06C095E19A95F1F78E -:1013A00000008111F5CF8091E80085FF2CC040E05E -:1013B00050E060E170E017C081E08093E9008FEFBA -:1013C0009091E800815095FD06C095ED9A95F1F752 -:1013D00000008111F5CF8091E80085FF14C040E046 -:1013E00050E068E070E0CE010E948A0B8091E80036 -:1013F0008E778093E80080E1FE01A9E6B1E00190DC -:101400000D928A95E1F7DF91CF9108958091F501D2 -:10141000811109C00E941F0D0E947C0D8091E20085 -:1014200084608093E20008951092F5010895089574 -:1014300008950C94C51B42E061EC81E00E94990C78 -:1014400042E061EC82E00E94990C42E061EC83E0B2 -:101450000E94990C42E161EC84E00C94990C80911B -:10146000F801833009F455C030F4813071F08230D6 -:1014700009F48EC008958A3009F47AC08B3009F4DB -:1014800060C0893009F09CC020C08091F701813A8A -:1014900009F096C08091E800877F8093E8008091F2 -:1014A000FB019091FC01892B21F460E189E691E038 -:1014B00003C060E080E090E070E00E94D50B809176 -:1014C000E8008B778093E80008958091F7018132DE -:1014D00009F076C08091FB019091FC01009719F012 -:1014E000039709F06DC08091E800877F8093E80042 -:1014F0008091E80082FD05C08091F6018111F8CF4E -:101500005FC08091F100809379018091E8008B7732 -:1015100053C08091F701813A09F052C08091FB01DC -:101520009091FC01892B09F04BC08091E800877FE6 -:101530008093E8008091E80080FFFCCF80910B0150 -:1015400036C08091F7018132D9F58091FB019091ED -:10155000FC01892BA9F58091E800877F8093E80042 -:101560000E94CE0C8091F90180930B010C9404151C -:101570008091F701813221F58091E800877F809387 -:10158000E8000E94CE0C8091FA0180937A010895C0 -:101590008091F701813AA1F48091E800877F8093E0 -:1015A000E8008091E80080FFFCCF80917A01809371 -:1015B000F1008091E8008E778093E8000C94CE0CC7 -:1015C000089584B7877F84BF0FB6F894A89580915B -:1015D0006000886180936000109260000FBE80E818 -:1015E00080936100109261000E9471100E941F0D93 -:1015F0000E947C0D8091E20084608093E2007894E8 -:101600000E9402100E94731081E091E00E941D1060 -:101610008091F601853069F40E94841B8091F40169 -:101620008823B1F30E94B41B882391F30E94740BAA -:10163000EFCF0E947B10ECCF292F332723303105C9 -:10164000C9F064F42130310581F02230310509F010 -:1016500043C08DE690E021EA33E042C021323105FB -:10166000F1F02232310541F137C082E190E02EE005 -:1016700034E036C099278130910541F082309105E0 -:1016800041F0892B49F5EDE9F3E005C0EFE6F3E021 -:1016900002C0E5E4F3E0849190E09F0121C0643052 -:1016A000D8F4E62FF0E0EE0FFF1FEF5CFE4F208135 -:1016B000318189E090E014C0643070F470E0FB0187 -:1016C000EE0FFF1FE75DFE4F20813181FB01EB5DD7 -:1016D000FE4F808190E004C080E090E020E030E0A8 -:1016E000FA0131832083089580E189BD82E189BDBB -:1016F00009B400FEFDCF8091D8008F7D8093D80083 -:101700008091E00082608093E0008091E00081FDA4 -:10171000FCCF0895CF92DF92EF92FF920F931F9329 -:10172000CF93DF93EC018B016A010E94ED0C8111D4 -:1017300033C0C114D10439F0F60180819181081BB6 -:10174000190BC80FD91FE12CF12C0115110519F146 -:101750008091E80085FD16C08091E8008E77809327 -:10176000E800C114D10449F0F60180819181E80EAE -:10177000F91EF182E08285E00FC00E94ED0C882303 -:1017800021F30AC089918093F10001501109FFEF04 -:10179000EF1AFF0ADACF80E0DF91CF911F910F910E -:1017A000FF90EF90DF90CF9008952091FD01309150 -:1017B000FE012617370748F06115710539F42091AD -:1017C000E8002E772093E80001C0B90140E06115E0 -:1017D0007105A9F12091F601222309F443C02530B7 -:1017E00009F442C02091E80023FD40C02091E800A8 -:1017F00022FD32C02091E80020FFE9CF4091F300A4 -:101800002091F20030E0342BFC01CF01611571050D -:1018100059F02830310540F481918093F1006150F6 -:1018200071092F5F3F4FF1CF41E02830310509F0BA -:1018300040E02091E8002E772093E800C8CF4111C6 -:10184000C9CF0AC08091F601882361F0853061F02C -:101850008091E80083FD0AC08091E80082FFF2CF0A -:1018600080E0089582E0089583E0089581E008957E -:101870002091FD013091FE012617370748F06115D0 -:10188000710539F42091E8002E772093E80001C01B -:10189000B901FC0120E06115710591F18091F6011B -:1018A000882309F440C0853009F43FC08091E800E6 -:1018B00083FD3DC08091E80082FD2FC08091E8004B -:1018C00080FFE9CF2091F3008091F20090E0922B0D -:1018D0006115710559F08830910540F424912093E9 -:1018E000F1003196615071090196F2CF21E008971D -:1018F00009F020E08091E8008E778093E800CBCF5C -:101900002111CCCF0AC08091F601882361F0853087 -:1019100061F08091E80083FD0AC08091E80082FFB9 -:10192000F2CF80E0089582E0089583E0089581E099 -:101930000895982F973058F59093E900981739F04B -:101940007091EC002091ED005091F00003C0242F25 -:10195000762F50E021FF19C03091EB003E7F30938D -:10196000EB003091ED003D7F3093ED003091EB00C6 -:1019700031603093EB007093EC002093ED005093B6 -:10198000F0002091EE0027FF07C09F5FD3CF8F703C -:101990008093E90081E0089580E008958091F70147 -:1019A00087FF11C08091E80082FD05C08091F6019B -:1019B0008111F8CF11C08091E8008B770BC0809126 -:1019C000F601882349F08091E80080FFF8CF8091EC -:1019D000E8008E778093E80008952091E40030912C -:1019E000E50095E64091EC00842F817040FF22C015 -:1019F0008091E80080FD1CC08091F601882391F061 -:101A0000853091F08091EB0085FD10C04091E4009D -:101A10005091E5004217530729F39A01915011F7AD -:101A200084E0089582E0089583E0089581E00895B8 -:101A300080E008954091E80042FFDECF08950E94C3 -:101A40008D0D0E94950DE0EEF0E080818160808335 -:101A5000E8EDF0E080818F77808319BCA7EDB0E0DE -:101A60008C918E7F8C9380818F7E80831092F50184 -:101A700008950F931F93CF93DF930E948D0D0E94C3 -:101A8000950DC8EDD0E088818F7788838881806844 -:101A9000888388818F7D888319BC1092F60110920B -:101AA000F2011092F4011092F30100EE10E0F8013F -:101AB00080818B7F808388818160888342E060E0C1 -:101AC00080E00E94990CE1EEF0E080818E7F8083BF -:101AD000E2EEF0E080818160808380818860808395 -:101AE000F80180818E7F8083888180618883DF9187 -:101AF000CF911F910F910895E8EDF0E080818F7EE6 -:101B00008083E7EDF0E080818160808384E082BFA4 -:101B100081E08093F5010C94390DE8EDF0E08081CF -:101B20008E7F80831092E20008951092DA00109266 -:101B3000E10008951F920F920FB60F9211242F9378 -:101B40003F934F935F936F937F938F939F93AF9345 -:101B5000BF93EF93FF938091E10082FF0BC08091D0 -:101B6000E20082FF07C08091E1008B7F8093E1005B -:101B70000E9401108091DA0080FF1FC08091D80080 -:101B800080FF1BC08091DA008E7F8093DA00809105 -:101B9000D90080FF0DC080E189BD82E189BD09B413 -:101BA00000FEFDCF81E08093F6010E94060A05C089 -:101BB00019BC1092F6010E94140A8091E10080FF86 -:101BC00019C08091E20080FF15C08091E2008E7FF5 -:101BD0008093E2008091E20080618093E200809136 -:101BE000D80080628093D80019BC85E08093F6010C -:101BF0000E94180A8091E10084FF30C08091E200C9 -:101C000084FF2CC080E189BD82E189BD09B400FE5A -:101C1000FDCF8091D8008F7D8093D8008091E10026 -:101C20008F7E8093E1008091E2008F7E8093E200BE -:101C30008091E20081608093E2008091F20188232C -:101C400011F084E007C08091E30087FD02C081E0CD -:101C500001C083E08093F6010E94190A8091E1009F -:101C600083FF29C08091E20083FF25C08091E100BD -:101C7000877F8093E10082E08093F6011092F20169 -:101C80008091E1008E7F8093E1008091E2008E7F61 -:101C90008093E2008091E20080618093E20042E064 -:101CA00060E080E00E94990C8091F0008860809351 -:101CB000F0000E94170AFF91EF91BF91AF919F91A1 -:101CC0008F917F916F915F914F913F912F910F90E5 -:101CD0000FBE0F901F9018951F920F920FB60F9284 -:101CE00011242F933F934F935F936F937F938F9321 -:101CF0009F93AF93BF93CF93DF93EF93FF93C091E5 -:101D0000E900CF708091EC00D82FD17080FDD0E831 -:101D10001092E9008091F000877F8093F000789422 -:101D20000E94B00E1092E9008091F00088608093CC -:101D3000F000CD2BCF70C093E900FF91EF91DF91C0 -:101D4000CF91BF91AF919F918F917F916F915F9153 -:101D50004F913F912F910F900FBE0F901F901895AC -:101D60001F93CF93DF93CDB7DEB7AA970FB6F89442 -:101D7000DEBF0FBECDBFE7EFF1E088E08E0F9091A0 -:101D8000F10091938E13FBCF0E942F0A8091E800FF -:101D900083FF1FC18091F7019091F801492F50E016 -:101DA0004A30510508F015C1FA01E25AFF4F0C9470 -:101DB0001623803881F0823809F00BC18091FB0135 -:101DC0008F708093E9008091EB0085FB882780F974 -:101DD0001092E90006C08091F3019091F4019111F5 -:101DE00082609091E800977F9093E8008093F100E3 -:101DF0001092F100C8C0282F2D7F09F0EAC0882377 -:101E000019F0823061F0E5C08091F901813009F06C -:101E1000E0C0933009F080E08093F4012BC0809102 -:101E2000F901811127C08091FB018F7009F4D1C0A5 -:101E30008093E9002091EB0020FF1CC0933021F437 -:101E40008091EB00806214C09091EB0090619093C0 -:101E5000EB0021E030E0A90102C0440F551F8A9534 -:101E6000E2F74093EA001092EA008091EB0088606C -:101E70008093EB001092E9008091E800877F86C094 -:101E80008111A7C01091F9011F778091E30080783C -:101E9000812B8093E3008091E800877F8093E800A6 -:101EA0000E94CE0C8091E80080FFFCCF8091E3007F -:101EB00080688093E300111102C082E001C083E0DA -:101EC0008093F60186C08058823008F082C08091ED -:101ED000F9019091FA018C3D53E0950779F583E083 -:101EE0008A838AE289834FB7F894DE01139620E053 -:101EF0003EE051E2E32FF0E050935700E49120FFE1 -:101F000003C0E295EF703F5FEF708E2F90E0EA30F4 -:101F100010F0C79601C0C0968D939D932F5F24311A -:101F200049F74FBF8091E800877F8093E8006AE21D -:101F300070E0CE0101960E94D50B14C0AE014F5F38 -:101F40005F4F6091FB010E941C0BBC01892B09F4BF -:101F500040C09091E800977F9093E80089819A8132 -:101F60000E94380C8091E8008B778093E80031C0A4 -:101F7000803879F58091E800877F8093E800809130 -:101F8000F2018093F1008091E8008E778093E80061 -:101F90000E94CE0C1EC081111CC09091F90192309C -:101FA000C0F48091E800877F8093E8009093F2016D -:101FB0000E94CE0C8091F201811106C08091E30055 -:101FC00087FD02C081E001C084E08093F6010E9499 -:101FD0001B0A8091E80083FF0AC08091E800877F98 -:101FE0008093E8008091EB0080628093EB00AA96DA -:101FF0000FB6F894DEBF0FBECDBFDF91CF911F911A -:1020000008950895CF938091F6018823A1F0C0919F -:10201000E900CF709091EC00892F817090FD80E8ED -:10202000C82B1092E9008091E80083FD0E94B00E59 -:10203000CF70C093E900CF91089590938001809371 -:102040007F010895E0917F01F0918001309721F0A8 -:102050000190F081E02D099480E00895E0917F01E6 -:10206000F0918001309721F00280F381E02D0994F6 -:102070000895E0917F01F0918001309721F0048074 -:10208000F581E02D0994089520917D0130917E0124 -:102090008217930771F090937E0180937D01E09108 -:1020A0007F01F0918001309721F00680F781E02DCB -:1020B0000994089520917B0130917C018217930748 -:1020C00071F090937C0180937B01E0917F01F0910E -:1020D0008001309721F00084F185E02D0994089566 -:1020E00008950C9470100E94F91B0E9447080E94EA -:1020F0007F1C0C9436215F926F927F928F929F92F9 -:10210000AF92BF92CF92DF92EF92FF920F931F9305 -:10211000CF93DF9300D000D01F92CDB7DEB70E94DF -:102120008C089AE8C92E91E0D92E03E010E0AA2489 -:10213000A394B12C502E802F0E9407094C01F60168 -:10214000729062906F016826792661147104A1F47F -:102150000150110978F78FEF89838A831B820E94CF -:10216000021C8160782F9D838C8349815A816B8109 -:102170008D810E942B1138C08091DF0181FD0E946A -:1021800010092BE030E07501022E02C0EE0CFF1C9E -:102190000A94E2F7C70186219721892B09F1298347 -:1021A0005A828E209F2091E0892809F490E09B8339 -:1021B0000E94021C8160782F9D838C8349815A8103 -:1021C0006B818D810E942B11000F111FF801EE57BA -:1021D000FE4F80819181E826F926F182E08204C0D9 -:1021E0002150310980F6B4CF0E94601E1091810108 -:1021F0000E9422101817D1F00E94221080938101B2 -:102200000F900F900F900F900F90DF91CF911F9133 -:102210000F91FF90EF90DF90CF90BF90AF909F9085 -:102220008F907F906F905F900C94F3070F900F90BA -:102230000F900F900F90DF91CF911F910F91FF9012 -:10224000EF90DF90CF90BF90AF909F908F907F9056 -:102250006F905F900895CF93DF93CDB7DEB72B9744 -:102260000FB6F894DEBF0FBECDBF4F835887698786 -:102270007A878B87DE01119686E0FD0111928A959F -:10228000E9F785E0FE01379601900D928A95E1F716 -:1022900049815A816B817C818D819E810E94A21728 -:1022A0002B960FB6F894DEBF0FBECDBFDF91CF9156 -:1022B0000895CF93882309F4C2C0C82F823859F4F7 -:1022C0000E94221081FDBBC089E30E947C1A0E94FB -:1022D000491B89E30CC0833879F40E94221080FDE9 -:1022E000AEC083E50E947C1A0E94491B83E50E94D0 -:1022F000BE1ACF910C94491B843859F40E942210C5 -:1023000082FD9DC087E40E947C1A0E94491B87E4DD -:10231000EECF8CEF8C0F813A48F48C2F0E949F20D7 -:1023200081118DC08C2F0E947C1AE3CF80E28C0F2C -:10233000883048F4C77081E001C0880FCA95EAF779 -:102340000E94021BD6CF8BE58C0F833078F4C53A00 -:1023500029F0C63A31F083E890E005C081E890E0CA -:1023600002C082E890E0CF910C94441088E58C0F75 -:10237000833108F064C0C83A39F1C93A41F1CA3A28 -:1023800049F1CB3A51F1CC3A59F1CD3A61F1C03B28 -:1023900069F1CE3A71F1CF3A79F1C13B81F1C23B9B -:1023A00089F1C33B91F1C43B99F1C53BA1F1C63B17 -:1023B000A9F1C73BB1F1C83BB9F1C93BC1F1CA3B77 -:1023C000C9F180E090E038C082EE90E035C089EE3F -:1023D00090E032C08AEE90E02FC085EB90E02CC0F8 -:1023E00086EB90E029C087EB90E026C08CEC90E073 -:1023F00023C08DEC90E020C083E891E01DC08AE806 -:1024000091E01AC082E991E017C084E991E014C01C -:1024100081E292E011C083E292E00EC084E292E099 -:102420000BC085E292E008C086E292E005C087E238 -:1024300092E002C08AE292E0CF910C945A10CF91C0 -:102440000895882309F44BC0823859F40E94221061 -:1024500081FF45C089E30E947C1A0E94491B89E3E1 -:102460000CC0833871F40E94221080FF38C083E5CD -:102470000E947C1A0E94491B83E50E94BE1A0C949C -:10248000491B843859F40E94221082FF28C087E437 -:102490000E947C1A0E94491B87E4EFCF9CEF980FA3 -:1024A000913A58F390E2980F983050F4877091E089 -:1024B00001C0990F8A95EAF7892F0E94081BDFCF88 -:1024C0009BE5980F933020F480E090E00C9444104A -:1024D000885A833120F480E090E00C945A100895DB -:1024E000882321F00E94021B0C94491B0895882325 -:1024F00021F00E94081B0C94491B08957F928F9233 -:102500009F92AF92BF92CF92DF92EF92FF920F9382 -:102510001F93CF93DF931F92CDB7DEB77C01C62EFA -:10252000772EFC01058102950F70128111110E9416 -:102530001F1B0E94751A882379F0112369F080E22D -:102540008C0D883048F082E00E945E1A0E94751A55 -:1025500091E0D82ED92601C0D12CE72DE295EF705D -:10256000F0E0E859FF4F0C941623872D807F072D4C -:102570000F70882311F00295007F112389F000234A -:1025800009F499C180E28C0D883020F4802F0E94DC -:10259000021B03C0802F0E94121B0E94491B8BC18B -:1025A0008C2D0E942112002309F4C3C180E28C0DFE -:1025B000883020F4802F0E94081B03C0802F0E94C7 -:1025C000181B0E94491BB5C1872D807F972D9F70D6 -:1025D000803211F4892F03C0892F8295807FCC200F -:1025E00021F0F1E0CF16A1F01DC0112339F0002336 -:1025F00019F1013009F50E94321B9BC1002319F02B -:10260000013009F496C189830E94351B898110C16C -:10261000112321F0063008F08CC10EC0053008F0FF -:1026200088C106C1112359F0002331F0F7019581CB -:1026300090FF41C19F7095830E9470127AC1002360 -:1026400009F4F6C03EC1872D86958695837090E08B -:10265000009719F0019761F06CC1112321F08C2DC6 -:10266000972D937002C080E090E00E94441061C1F9 -:10267000112321F08C2D972D937002C080E090E003 -:102680000E945A1056C18C2D112319F00E94681D0A -:1026900002C00E94D01D0E94551E4BC1872D837021 -:1026A00009F052C0111145C18C2D82958695877015 -:1026B000880F880F9C2D9F70892E912CA12CB12CF6 -:1026C000082E04C0880C991CAA1CBB1C0A94D2F7C3 -:1026D000C4FE14C00FE010E020E030E0B901A80112 -:1026E00004C0440F551F661F771F8A95D2F7CB0190 -:1026F000BA01609570958095909503C060E070E098 -:10270000CB01272D26952695237030E02230310508 -:1027100069F02330310589F0682979298A299B29B4 -:102720002130310571F00E94EA1803C16829792926 -:102730008A299B290E940619FCC00E94EA18C5013B -:10274000B4010E94CE18F5C0112319F0872D8170B5 -:1027500001C08695882309F4ECC08C2D829586955E -:102760008770880F880F9C2D9F70892E912CA12C2B -:10277000B12C082E04C0880C991CAA1CBB1C0A94FE -:10278000D2F7C4FE14C00FE010E020E030E0B90141 -:10279000A80104C0440F551F661F771F8A95D2F702 -:1027A000CB01BA01609570958095909503C060E06B -:1027B00070E0CB01272D269526952370422F50E0FF -:1027C0004230510569F04330510589F06829792973 -:1027D0008A299B294130510571F00E94C419A9C072 -:1027E000682979298A299B290E94E019A2C00E94A0 -:1027F000C419C501B4010E94A8199BC08C2D90E09A -:10280000FC01E05EF109E531F10508F050C0E8583F -:10281000FF4F0C9416230C2D0F70872D8F711123F1 -:1028200021F00E944119802F07CF0E946219802F4A -:102830000E9477127EC0112341F0053008F079C064 -:10284000872D8F710E94871974C0063008F071C0FF -:10285000F7CF112339F0872D8F710E94411969C07C -:102860001123C9F3872D8F710E94621962C0112351 -:1028700029F0872D8F710E942C195BC00E942219AC -:1028800058C0112351F0172D1F71812F0E9441193B -:1028900063E0812F0E94551A4CC081E00E945E1AAD -:1028A000023008F446C082E00E945E1A42C0112342 -:1028B00031F0002381F28C2D0E9459113AC000237F -:1028C00089F28C2D0E94211234C0472D4F706C2D3F -:1028D000C7010E9491030E9446182BC0111129C004 -:1028E000472D4F7050E042305105B9F04CF441157E -:1028F000510581F041305105E1F40E945E2119C07B -:102900004330510569F04430510599F48C2D0E94F3 -:10291000B0210FC00E9447210CC00E947A2109C03B -:102920000E948D2106C0472D4F706C2DC7010E945B -:102930006307DD20F9F00E94511A80FD1BC0F701EA -:1029400012820E944B1A0E944119C7010E94C914A9 -:102950000E944B1A0F90DF91CF911F910F91FF9022 -:10296000EF90DF90CF90BF90AF909F908F907F902F -:102970000C9462190F90DF91CF911F910F91FF90EE -:10298000EF90DF90CF90BF90AF909F908F907F900F -:1029900008950F931F93CF93DF93EC018881998162 -:1029A0002B813C81232BB9F09F3F11F48F3F99F08D -:1029B000CE010E94EB03882371F0688179818A81BE -:1029C0000E94471A8C010E94FC190E94C318B8018A -:1029D000CE010E947E12DF91CF911F910F91089539 -:1029E0000E941F1B0E942F1B0E94F41A0E94491B69 -:1029F0000E94051F0E94551E80E090E00E94441036 -:102A000080E090E00C945A100E940F1B0C94F0147C -:102A10000E943C1A292F22952F7030E02C3031056E -:102A20004CF42A3031056CF4225031092230310542 -:102A3000A8F407C02C30310569F02F30310551F072 -:102A40000DC0803F69F018F4803E40F409C0843F17 -:102A500029F406C093FB882780F9089580E0089543 -:102A600081E00895CF93DF9300D000D01F92CDB7BF -:102A7000DEB70F900F900F900F900F90DF91CF91D6 -:102A80000895CF93DF9300D000D000D0CDB7DEB74C -:102A900026960FB6F894DEBF0FBECDBFDF91CF9163 -:102AA00008951F93CF93DF93C0918A0116E0809120 -:102AB0008B01C81799F0D0E01C9FF0011D9FF00D0D -:102AC0001124E457FE4F40815181628173818481DA -:102AD00095810E9441152196C770E9CFDF91CF9172 -:102AE0001F9108954091BC015091BD016091BE01BC -:102AF0007091BF018091C0019091C1010C9441156A -:102B00008091C10182958F7009F054C08091BE01FF -:102B1000882309F44FC080918A01A0918B016091B4 -:102B2000BC017091BD014091BF015091C001B6E060 -:102B30008A1709F43FC090E041155105C1F17F3F6C -:102B400011F46F3FA1F1B89FF001B99FF00D11246E -:102B5000E457FE4F218172132AC02081621327C0DF -:102B60002281211124C0238134812417350710F4D8 -:102B700021503109241B350B283C3105C0F420912C -:102B8000C1012F7020612093C10126E0289FF00130 -:102B9000299FF00D1124EF56FE4F80818F708061C8 -:102BA00080838CEB91E00E94C9140C94511501961E -:102BB0008770BECF0895CF92DF92EF92FF920F936E -:102BC0001F93CF93DF93CDB7DEB762970FB6F8941C -:102BD000DEBF0FBECDBF8C0185E0F801DE011D9682 -:102BE00001900D928A95E1F7D8014C9111965C9174 -:102BF000119712966C9112971396CD90DC901497C2 -:102C00003091BC017091BD018091BF019091C001D4 -:102C1000009709F46BC17F3F19F43F3F09F466C187 -:102C2000E090BE01EE2009F4C0C02091C101C81699 -:102C3000D90628F0F601E81BF90BCF0104C08095F6 -:102C400090958C0D9D1DFF24F394883C910578F0A0 -:102C5000F12C207F09F0C6C07C2DD98AC88A8989C9 -:102C60000E9432158CEB91E00E94C914B1C0822FF2 -:102C7000807F09F046C0751314C0341312C061116F -:102C800010C02F7020612093C1010E9472158CEB3F -:102C900091E00E94C9148091C101D80115968C93CE -:102CA0002EC0CD2819F15F3F11F44F3FF9F0F62EF9 -:102CB00061111CC080918A0120918B0136E082173E -:102CC00009F45AC090E0389FF001399FF00D1124AB -:102CD000E457FE4F7181571306C07081471303C03C -:102CE0007281711103C001968770E9CFF62E6623B9 -:102CF00009F418C18091C10181608093C101F12C58 -:102D000011C1751308C0341306C0611104C080914D -:102D1000C101D801C3C04D875E878D859E856A8BB2 -:102D20000E9408156A898823E1F16623D1F1209178 -:102D3000C101822F82958F7090E0029774F080918C -:102D4000BC019091BD0198878F831986DB86CA8666 -:102D50002C87CE0107960E94C91486E0F801ACEBDF -:102D6000B1E001900D928A95E1F70E9480150E94D2 -:102D70007215FF24F394D6C04D875E878D859E859E -:102D80000E943C1A292F22952F7030E02230310505 -:102D90000CF0BCC09F7009F0B6C0805E883008F4AB -:102DA000C1C0C8010E94C914E4CFC816D90608F4EE -:102DB00053C0F601E81BF90BCF01883C910508F4DC -:102DC00050C0F12C7C2DD98AC88A89890E9432157D -:102DD000ECEBF1E086E0DF011D928A95E9F70E94B5 -:102DE0007215A0C0751314C0341312C0611110C045 -:102DF0008091C101F8018583C8010E94C91486E051 -:102E0000ECEBF1E0DF011D928A95E9F7FE2C8AC018 -:102E10004D875E878D859E856A8B0E9408156A891D -:102E2000882309F4BECF662309F4BBCF2091C101EA -:102E3000822F82958F7090E002970CF48ECF809154 -:102E4000BC019091BD019A8389831B82DD82CC8273 -:102E50002E83CE0101967FCF809590958C0D9D1D80 -:102E6000ACCFF62E662309F49CCF75132EC0341315 -:102E70002CC02091C10120FD1FC0822F82958F7030 -:102E8000D9F0D80115962C9315978F3049F08F5FA4 -:102E9000982F9295907F822F8F70892B15968C9307 -:102EA000C8010E94C91486E0F801ACEBB1E00190C2 -:102EB0000D928A95E1F793CF86E0F801ACEBB1E093 -:102EC00001900D928A95E1F72DC04D875E878D8523 -:102ED0009E850E940815811140CF8091C1018160BB -:102EE0008093C101C8010E94C9141CC0662309F463 -:102EF00058CF4D875E878D859E850E940815882353 -:102F000009F44FCF2ACF811148CF0CC024303105AE -:102F10000CF047CF9F7009F440CFF8019581907F66 -:102F200009F03BCF8F2D62960FB6F894DEBF0FBE2F -:102F3000CDBFDF91CF911F910F91FF90EF90DF9068 -:102F4000CF9008951F93CF93DF93CDB7DEB72C9723 -:102F50000FB6F894DEBF0FBECDBF4F835887698789 -:102F60007A878B879C87CE0107960E94DB15882382 -:102F700069F08F8198852A853B85232BF1F19F3F4E -:102F800009F063C08F3F09F060C037C086E0FE01E2 -:102F90003796DE01119601900D928A95E1F76F81C7 -:102FA0007885EA85FB85309741F17F3F11F46F3FCB -:102FB00021F120918B0130E0C9010196877099279A -:102FC00040918A0150E08417950709F447C069834E -:102FD0007A83FD83EC8396E0929FD001939FB00D9E -:102FE0001124A457BE4FFE01319601900D929A957F -:102FF000E1F780938B010E94511516E080918A01C0 -:1030000090918B018917C1F1189FC0011124845739 -:103010009E4F0E94DB15882379F1E0918A011E9F63 -:10302000F0011124E457FE4F408151816281738188 -:10303000848195810E94411580918A0190E00196DA -:103040008770992780938A01D9CF4F8158856985E8 -:103050007A858B859C850E944115CFCF0E940415EF -:1030600010928B0110928A01ECEBF1E086E0DF0117 -:103070001D928A95E9F7C1CF2C960FB6F894DEBF62 -:103080000FBECDBFDF91CF911F910895EF92FF92B8 -:103090000F931F93CF93DF938C01892B09F46CC09E -:1030A000F12CEE24E394E8012196F8018491843711 -:1030B00040F4843008F051C0813081F0823019F141 -:1030C0005BC0853709F444C0A8F19CE7980F90379E -:1030D00008F052C08F770E94211241C00E5F1F4F2F -:1030E000FE01C49180E28C0F883048F4C7708E2DA9 -:1030F00001C0880FCA95EAF70E94221B14C08C2FCA -:103100000E9459112DC00E5F1F4FFE01C49180E235 -:103110008C0F883058F4C7708E2D01C0880FCA9567 -:10312000EAF70E94281B0E94491B1AC08C2F0E949C -:10313000211216C00E5F1F4FFE01C491CC2381F0F7 -:103140008FE99FE00197F1F700C00000C150F6CF72 -:103150000E5F1F4FFE01F49003C00E9459118E01B3 -:103160008F2D882309F49FCFEFE9FFE03197F1F726 -:1031700000C000008150F5CFDF91CF911F910F91DA -:10318000FF90EF90089508956093C6017093C70172 -:103190008093C8019093C9010C94F0140F931F936E -:1031A0000091C6011091C7012091C8013091C90159 -:1031B000DC01CB01802B912BA22BB32B8093C6017A -:1031C0009093C701A093C801B093C9011F910F91BB -:1031D0000C94F0140F931F930091C6011091C70136 -:1031E0002091C8013091C901DC01CB0180239123DA -:1031F000A223B3238093C6019093C701A093C80173 -:10320000B093C9011F910F910C94F0140F931F9369 -:103210000091C6011091C7012091C8013091C901E8 -:10322000DC01CB0180279127A227B3278093C60119 -:103230009093C701A093C801B093C9011F910F914A -:103240000C94F0141092C2011092C3011092C401A8 -:103250001092C5010C94F01441E050E060E070E081 -:1032600004C0440F551F661F771F8A95D2F74093FD -:10327000C2015093C3016093C4017093C5010C94C3 -:10328000F01441E050E060E070E004C0440F551FCE -:10329000661F771F8A95D2F78091C2019091C30172 -:1032A000A091C401B091C501482B592B6A2B7B2BEF -:1032B0004093C2015093C3016093C4017093C50150 -:1032C0000C94F01441E050E060E070E004C0440F62 -:1032D000551F661F771F8A95D2F7409550956095C8 -:1032E00070958091C2019091C301A091C401B091E9 -:1032F000C501482359236A237B234093C20150937D -:10330000C3016093C4017093C5010C94F01441E0B3 -:1033100050E060E070E004C0440F551F661F771F47 -:103320008A95D2F78091C2019091C301A091C40106 -:10333000B091C501482759276A277B274093C201CE -:103340005093C3016093C4017093C5010C94F014B1 -:103350000F931F930091C2011091C3012091C401EA -:103360003091C501DC01CB01802B912BA22BB32B1B -:103370008093C2019093C301A093C401B093C5018F -:103380001F910F910C94F0140F931F930091C201A1 -:103390001091C3012091C4013091C501DC01CB0122 -:1033A00080239123A223B3238093C2019093C3016E -:1033B000A093C401B093C5011F910F910C94F01418 -:1033C0000F931F930091C2011091C3012091C4017A -:1033D0003091C501DC01CB0180279127A227B327BB -:1033E0008093C2019093C301A093C401B093C5011F -:1033F0001F910F910C94F0140895CF92DF92EF92E9 -:10340000FF920F931F93CF93DF938C01C090C6015F -:10341000D090C701E090C801F090C9018091C2012D -:103420009091C301A091C401B091C501C82AD92AC5 -:10343000EA2AFB2ACFE1D0E0D701C6010C2E04C056 -:10344000B695A795979587950A94D2F780FF06C001 -:10345000B8018C2F0E94C205019721F4219760F7D3 -:1034600080E001C08C2FDF91CF911F910F91FF90D1 -:10347000EF90DF90CF900895CF93DF93EC010E94FF -:10348000FD19BE010E94C205DF91CF910895CB01C5 -:103490000E943C1A08958091CA018595859585956D -:1034A00008958091CA018770089598E0899F9001DE -:1034B0001124262B2093CA010C9441192091CA0192 -:1034C000809582238093CA01982F977069F430E029 -:1034D000482F082E000C550B2417350729F0859529 -:1034E000859585950C94621908959091CA019770FD -:1034F00081E009F480E0089590910B01992321F077 -:1035000090910C01911109C020910D0130910E0193 -:10351000F90132969FEF40E01FC0982F969596953F -:1035200096959F3050F5E0910D01F0910E01E90F55 -:10353000F11D877021E030E0A90102C0440F551F42 -:103540008A95E2F7CA019181892B818308959F3F73 -:1035500039F04F5F4E3041F051915813F8CF0DC004 -:103560005111F7CF942FF5CF9F3F39F0F901E90FB3 -:10357000F11D97FDFA9582830895089590910B01AE -:10358000992321F090910C01911109C020910D0116 -:1035900030910E01F9013296205F3F4F1FC0982FE6 -:1035A0009695969596959F30F0F4E0910D01F091E7 -:1035B0000E01E90FF11D877021E030E0A90102C082 -:1035C000440F551F8A95E2F7CA018095918189239E -:1035D000818308953196E217F30729F090819813BB -:1035E000F9CF1082F7CF089581E090E0E0910D01CE -:1035F000F0910E01E80FF91F1082019680319105BC -:10360000A9F708959091DE01892B8093DE0108953A -:1036100080959091DE0189238093DE0108951092B8 -:10362000DE0108959091DD01892B8093DD010895DD -:1036300080959091DD0189238093DD01089510929A -:10364000DD0108959091DC01892B8093DC010895C0 -:1036500080959091DC0189238093DC01089510927C -:10366000DC0108958093CB0108951092CB01089559 -:1036700080910D0190910E01FC0131969C01205F1B -:103680003F4F80E0919191118F5FE217F307D1F7DF -:103690000895E0910D01F0910E018091DE0180838B -:1036A000E0910D01F0910E0190818091DD01892B57 -:1036B0008083E0910D01F0910E0190818091DC01F9 -:1036C000892B80838091CB01882361F0E0910D01EB -:1036D000F0910E019081892B80830E94381B81110B -:1036E0001092CB0180910D0190910E010C942E103F -:1036F00020E0009739F0AC01415051098423952313 -:103700002F5FF7CF822F08958091F601843051F119 -:103710001092E00120E488E190E00FB6F894A895BB -:10372000809360000FBE2093600080E00E94EC0256 -:1037300080E00E94F30783B7817F846083BF83B7F3 -:10374000816083BF7894889583B78E7F83BF0FB6DF -:10375000F894A89580916000886180936000109231 -:1037600060000FBE0895089580E00E94EC020E9460 -:1037700009080E948C080E94B31B0E94110991E065 -:10378000811101C090E0892F08950E94041580E006 -:103790000E94EC020E9436210E9422100C94F30732 -:1037A0001F920F920FB60F9211248F939F93AF9396 -:1037B000BF938091E001811113C08091E10190914C -:1037C000E201A091E301B091E4014196A11DB11D78 -:1037D0008093E1019093E201A093E301B093E401AF -:1037E000BF91AF919F918F910F900FBE0F901F903F -:1037F000189582E084BD93E095BD9AEF97BD8093C4 -:103800006E0008952FB7F8948091E1019091E20144 -:10381000A091E301B091E4012FBF0895CF92DF9210 -:10382000EF92FF920F931F932FB7F8944091E1010D -:103830005091E2016091E3017091E4012FBF6A01B0 -:103840007B01EE24FF248C0120E030E0C016D1067D -:10385000E206F30610F4415051099A01281B390B76 -:10386000C9011F910F91FF90EF90DF90CF900895C5 -:103870001F920F920FB60F9211248F939F93AF93C5 -:10388000BF938091E1019091E201A091E301B09199 -:10389000E4010196A11DB11D8093E1019093E20125 -:1038A000A093E301B093E401BF91AF919F918F91F9 -:1038B0000F900FBE0F901F9018950E941F0DF89447 -:1038C0002FEF87EA91E6215080409040E1F700C059 -:1038D000000087E090EBDC018093000290930102EE -:1038E000A0930202B09303029CE088E10FB6F89423 -:1038F000A895809360000FBE90936000FFCF0E9458 -:10390000BC1C811102C00E949D1C0E94C71C809398 -:10391000DF010E94D41C90E09093F1018093F001AC -:1039200087FB882780F980930C010E94CB1C682FAD -:1039300070E080E090E00C94C4186DEE7EEF80E0C3 -:1039400090E00E94502360E082E090E00E943E23DD -:1039500060E083E090E00E943E2360E084E090E03D -:103960000E943E2360E085E090E00E943E2360E0FC -:1039700086E090E00C943E2380E090E00E943823A3 -:1039800021E08D3E9E4F09F020E0822F089582E0D5 -:1039900090E00C94302383E090E00C943023682F67 -:1039A00083E090E00C943E2384E090E00C9430237C -:1039B000682F84E090E00C943E2386E090E00C9425 -:1039C0003023682F86E090E00C943E238091E7013D -:1039D00080FF0BC06091120185E0689FB001112447 -:1039E00075956795759567952BC081FF09C06091A6 -:1039F000120185E0689FB00111247595679520C07C -:103A000082FF07C06091120185E0689FB001112418 -:103A100017C09091E8019923D1F060911101961798 -:103A200088F72091120185E0289F90011124929F30 -:103A3000A001939F500D112470E0CA010E9402233F -:103A40006038710540F46115710539F002C065E018 -:103A500070E0862F08958FE7089581E008958091A2 -:103A6000E70180FF08C06091100170E075956795CF -:103A70007595679521C081FF06C06091100170E0C7 -:103A80007595679519C082FF04C06091100170E0C0 -:103A900010C09091E8019923C1F060910F01961731 -:103AA000A0F780911001899FC001112470E00E944D -:103AB00002236038710528F46115710521F0862F05 -:103AC00008958FE7089581E0089561E070E0F4CFF4 -:103AD000803F21F40E94E61C819504C0813F29F4B7 -:103AE0000E94E61C8093EB010895823F21F40E941E -:103AF000E61C819504C0833F29F40E94E61C809354 -:103B0000EA010895893F19F40E942F1D05C08A3FDC -:103B100031F40E942F1D81958093EC0108958B3F15 -:103B200021F40E942F1D819504C08C3F29F40E942E -:103B30002F1D8093ED010895843F21F48091E901C8 -:103B4000816017C0853F21F48091E901826011C036 -:103B5000863F21F48091E90184600BC0873F21F406 -:103B60008091E901886005C0883F31F48091E901C6 -:103B700080618093E90108958D3F21F48091E701F0 -:103B800081600BC08E3F21F48091E701826005C007 -:103B90008F3F29F48091E70184608093E7010895C5 -:103BA000803F39F48091EB0187FF6CC01092EB01EC -:103BB00069C0813F29F48091EB011816BCF362C003 -:103BC0009091EA01823F29F497FF5CC01092EA01CC -:103BD00059C0833F19F41916CCF354C0893F41F4FE -:103BE0008091EC0118160CF04DC01092EC014AC007 -:103BF0008A3F29F48091EC0187FF44C0F6CF8B3FC8 -:103C000039F48091ED0187FF3DC01092ED013AC07B -:103C10008C3F29F48091ED011816BCF333C0843F2A -:103C200021F48091E9018E7F17C0853F21F48091B6 -:103C3000E9018D7F11C0863F21F48091E9018B7FDE -:103C40000BC0873F21F48091E901877F05C0883F41 -:103C500031F48091E9018F7E8093E90113C08D3F9B -:103C600021F48091E7018E7F0BC08E3F21F480917B -:103C7000E7018D7F05C08F3F29F48091E7018B7F9D -:103C80008093E7018091EA0181110EC08091EB01E0 -:103C900081110AC08091EC01811106C08091ED0173 -:103CA000811102C01092E801089589EE91E00E940E -:103CB00039100E94021C9093E6018093E50108955B -:103CC0001F93CF93DF938091E5019091E6010E94CD -:103CD0000E1CAC019091E801992321F02091130171 -:103CE00030E006C0209114018AE0289F9001112441 -:103CF0004217530708F485C08091EA01C091EB0197 -:103D0000D091EC011091ED01811107C0C11175C076 -:103D1000D11173C0111171C074C09F3F19F09F5F22 -:103D20009093E801181624F40E94E61C8093EA019F -:103D30008091EA0187FF05C00E94E61C819580936F -:103D4000EA011C1624F40E94E61C8093EB0180918A -:103D5000EB0187FF05C00E94E61C81958093EB0173 -:103D60006091EA01662331F1C091EB01CC2311F19E -:103D7000062E000C770B880B990B0E94092223E377 -:103D800033E343E35FE30E946D220E94D1216093FD -:103D9000EA016C2FCC0F770B880B990B0E9409223C -:103DA00023E333E343E35FE30E946D220E94D121CA -:103DB0006093EB011D1624F40E942F1D8093EC01EB -:103DC0008091EC0187FF05C00E942F1D8195809393 -:103DD000EC01111624F40E942F1D8093ED018091B7 -:103DE000ED0187FF05C00E942F1D81958093ED0195 -:103DF000DF91CF911F910C94551E9F3F09F08FCFFB -:103E000097CFDF91CF911F910895E9EEF1E085E022 -:103E1000DF011D928A95E9F71092E8011092E701FF -:103E20000895833081F128F4813059F08230D1F047 -:103E30000895853009F449C0B8F1863009F456C0B8 -:103E4000089580911401262F30E0280F311D2F3F57 -:103E5000310524F4680F6093140108958FEF809367 -:103E60001401089580911301262F30E0280F311D91 -:103E70002F3F310524F4680F6093130108958FEFED -:103E800080931301089580911201262F30E0280FAE -:103E9000311D2F3F310524F4680F609312010895FE -:103EA0008FEF80931201089580911101262F30E049 -:103EB000280F311D2F3F310524F4680F6093110145 -:103EC00008958FEF80931101089580911001262F9E -:103ED00030E0280F311D2F3F310524F4680F609327 -:103EE000100108958FEF80931001089580910F01C4 -:103EF000262F30E0280F311D2F3F310524F4680FA5 -:103F000060930F0108958FEF80930F010895833020 -:103F100011F128F4813049F0823091F00895853014 -:103F200081F120F18630C1F1089580911401681764 -:103F300020F4861B809314010895109214010895B3 -:103F400080911301681720F4861B80931301089554 -:103F500010921301089580911201681720F4861BB6 -:103F60008093120108951092120108958091110119 -:103F7000681720F4861B8093110108951092110197 -:103F8000089580911001681720F4861B809310011A -:103F9000089510921001089580910F01681720F480 -:103FA000861B80930F01089510920F0108950F93BF -:103FB0001F93873208F048C08E3108F092C08031DC -:103FC00009F47CC008F5873009F466C068F48630CF -:103FD00009F0A2C08091DF01817F8E7F8093DF0195 -:103FE00081E08093EF0199C08B3009F48EC08E3050 -:103FF00009F092C08091DF0182FB222720F991E035 -:10400000922790FB82F963C0863109F47EC060F488 -:10401000813109F081C00E94041590910C0181E06A -:10402000892780930C0171C0893109F46EC08B31EE -:1040300009F072C08091DF0181FB222720F991E015 -:10404000922790FB81F943C0883309F45EC050F495 -:10405000893209F45CC0853309F459C0873209F408 -:1040600056C05AC0833409F452C028F48A3308F485 -:1040700053C0895337C0883409F04EC00E940415DC -:104080000FEF13ED20E3015010402040E1F700C096 -:1040900000000E945D1C39C09091DF01892F80953E -:1040A000817080FB90F929F0966098609093DF0111 -:1040B00034C0997F977F9093DF0127C08091DF0103 -:1040C00083FB222720F991E0922790FB83F98093CC -:1040D000DF019923D1F08091DF0181608093DF01BE -:1040E00014C08D5141E050E060E070E08A019B0116 -:1040F00004C0000F111F221F331F8A95D2F7C90178 -:10410000B8010E94C4180E94041581E006C061E055 -:1041100070E080E090E0F5CF80E01F910F9108956E -:1041200080E0089580E008958E518A3030F4E82FC1 -:10413000F0E0E75CFE4F8081089580E00895CF9322 -:10414000C82F8091EF01813069F018F08230C9F1F9 -:1041500083C0E0910D01F0910E018081823209F05F -:104160007DC007C0E0910D01F0910E018081823287 -:1041700061F48C2F0E949020811104C08C2F0E942A -:10418000D71F1DC081E090E01AC08C2F0E949220A2 -:10419000811114C0C43179F048F4CB3079F0C031CA -:1041A00009F060C082E08093EF0108C0C93219F0C5 -:1041B000C83321F057C01092EF0154C081E08170E4 -:1041C00053C0C93289F118F5C43171F1B0F4C73068 -:1041D00009F046C08EE18093140182E380931301BD -:1041E0008AE08093120184E18093110188E080933A -:1041F000100188E280930F0133C082EE8C0F86306D -:1042000078F58C2F0E9494208093EE0129C0CE3443 -:10421000E9F020F4CB3421F56AE013C0C13579F020 -:10422000C235F1F461E00DC08091EE01882319F0F0 -:104230001092EE0115C081E08093EF0115C061E09E -:1042400006C08091EE010E94111F0AC06AE08091B1 -:10425000EE010E94871F04C01092EF0180E004C0AD -:1042600081E002C080E0ABCFCF9108950E94BC1CDA -:10427000811102C00E949D1C0E94DD1C8093FF01E1 -:1042800080FF02C0869501C080E00C94EC02809112 -:10429000FF01982F9695292F30E0233031054CF4FB -:1042A0009F5F990F8170892B81608093FF010E942D -:1042B000E11C8091FF0186950C94EC028091FF0136 -:1042C000982F969591F09158990F8170892B809332 -:1042D000FF018E7F91E009F490E08091FF0190FB57 -:1042E00080F98093FF010E94E11C8091FF01869577 -:1042F0000C94EC028091FF01982F909590FB80F92F -:104300008093FF010E94E11C8091FF0180FF02C0A9 -:10431000869501C080E00C94EC029091FF01892FFA -:1043200086958F5F8F779170843028F4880F892B62 -:104330008093FF0102C09093FF018091FF018E7F67 -:1043400091E009F490E08091FF0190FB80F9809367 -:10435000FF010E94E11C8091FF0186950C94EC0204 -:104360002091FF01922F96958927982F990F822FE0 -:104370008170892B8093FF018E7F91E009F490E09A -:104380008091FF0190FB80F98093FF010E94E11C66 -:104390008091FF0186950C94EC028091FF01869537 -:1043A00008950E94D8216894B1110C946722089551 -:1043B0000E944C2288F09F5798F0B92F9927B75147 -:1043C000B0F0E1F0660F771F881F991F1AF0BA95B9 -:1043D000C9F714C0B13091F00E946622B1E008958F -:1043E0000C946622672F782F8827B85F39F0B93F81 -:1043F000CCF3869577956795B395D9F73EF490956C -:104400008095709561957F4F8F4F9F4F0895E894E9 -:1044100009C097FB3EF490958095709561957F4F0C -:104420008F4F9F4F9923A9F0F92F96E9BB279395BA -:10443000F695879577956795B795F111F8CFFAF4CA -:10444000BB0F11F460FF1BC06F5F7F4F8F4F9F4FFB -:1044500016C0882311F096E911C0772321F09EE859 -:10446000872F762F05C0662371F096E8862F70E0BF -:1044700060E02AF09A95660F771F881FDAF7880F99 -:104480009695879597F9089557FD9058440F551FB5 -:1044900059F05F3F71F04795880F97FB991F61F0C6 -:1044A0009F3F79F087950895121613061406551F3D -:1044B000F2CF4695F1DF08C0161617061806991FA9 -:1044C000F1CF86957105610508940895E894BB279E -:1044D00066277727CB0197F908950E9480220C94D4 -:1044E000F1220E94E32238F00E94EA2220F0952374 -:1044F00011F00C94DA220C94E02211240C9467221F -:104500000E94442270F3959FC1F3950F50E0551F10 -:10451000629FF001729FBB27F00DB11D639FAA2718 -:10452000F00DB11DAA1F649F6627B00DA11D661F67 -:10453000829F2227B00DA11D621F739FB00DA11D88 -:10454000621F839FA00D611D221F749F3327A00D42 -:10455000611D231F849F600D211D822F762F6A2FDE -:1045600011249F5750409AF0F1F088234AF0EE0F43 -:10457000FF1FBB1F661F771F881F91505040A9F770 -:104580009E3F510580F00C94DA220C9467225F3F25 -:10459000E4F3983ED4F3869577956795B795F795AC -:1045A000E7959F5FC1F7FE2B880F911D9695879524 -:1045B00097F9089597F99F6780E870E060E00895A3 -:1045C0009FEF80EC089500240A941616170618062B -:1045D0000906089500240A94121613061406050607 -:1045E0000895092E0394000C11F4882352F0BB0F98 -:1045F00040F4BF2B11F460FF04C06F5F7F4F8F4FFB -:104600009F4F089597FB072E16F4009407D077FD6F -:1046100009D00E941C2307FC05D03EF4909581959B -:104620009F4F0895709561957F4F0895EE0FFF1F7E -:104630000590F491E02D0994AA1BBB1B51E107C022 -:10464000AA1FBB1FA617B70710F0A61BB70B881F22 -:10465000991F5A95A9F780959095BC01CD010895B1 -:10466000F999FECF92BD81BDF89A992780B508953A -:10467000A8E1B0E042E050E00C945823262FF999CD -:10468000FECF92BD81BDF89A019700B4021639F0B1 -:104690001FBA20BD0FB6F894FA9AF99A0FBE089582 -:1046A0000196272F0E943F230C943E23DC01CB016F -:1046B000FC01F999FECF06C0F2BDE1BDF89A319632 -:1046C00000B40D9241505040B8F70895F894FFCFD0 -:1046D000FF2709B50992095E092A090101CC0128C1 -:1046E00008140A321E1F0F03764F5F6F7F4969431C -:1046F0007909595363404D3639DC048F045904203D -:1047000004B303CC03E503FE03010203040506071B -:044710000809000094 -:00000001FF diff --git a/keyboards/planck/keymaps/ab/readme.md b/keyboards/planck/keymaps/ab/readme.md new file mode 100644 index 000000000..d6280f074 --- /dev/null +++ b/keyboards/planck/keymaps/ab/readme.md @@ -0,0 +1,18 @@ +# Practical keymap for Planck Ortholinear 40% Mechanical Keyboard +A practical keymap that emulates standard QWERTY keyboard for Planck. Once you get comfortable with this keymap, you may fork and customize it for your own needs. + +![Layout](keyboard-layout.png "Practical Keymap") +![Photo](keyboard-photo.jpg "Planck Keyboard") + +* Online keyboard layout editor: http://goo.gl/mlLAFZ + +# Programming Instructions: +Enter into programming mode and run the following command. +``` +$ sudo KEYMAP=ab make dfu +``` +# Notes +* Simultaneous RAISE+LOWER enters CUSTOM layer. You may add your own macros and custom keys here. +* RAISE and LOWER also acts as PgUp and PgDn when tapped. +* [CapsLock] also acts as [Ctrl] key when you press and hold. It is convenient for GNU Emacs users. +* Bracket keys are placed in the center of the keyboard for programmer's convenience. diff --git a/keyboards/planck/keymaps/alexey/compiled.hex b/keyboards/planck/keymaps/alexey/compiled.hex deleted file mode 100644 index deddcea06..000000000 --- a/keyboards/planck/keymaps/alexey/compiled.hex +++ /dev/null @@ -1,1444 +0,0 @@ -:100000000C9461020C94A5020C94A5020C94A50218 -:100010000C94A5020C94A5020C94A5020C94A502C4 -:100020000C94A5020C94A5020C9452140C94241563 -:100030000C9486220C94A5020C94A5020C94A502A3 -:100040000C94A5020C9407030C94A5020C94A50231 -:100050000C94A5020C94EE220C94A5020C94A5021B -:100060000C94A5020C94A5020C94A5020C94A50274 -:100070000C94A5020C94A5020C94A5020C94A50264 -:100080000C94C70A0C94A5020C94A5020C94A5022A -:100090000C94A5020C94A5020C94A5020C94A50244 -:1000A0000C94A5020C94A5020C94A5029115B3150D -:1000B000A116B315A116F8151B16A11670168316F6 -:1000C0006D196D199C199C19DB19FB19511B511BDA -:1000D000061A511BB61AB61A1D1B261B511B4B1BA9 -:1000E000C31AC31AC31AC31AC31AC31AC31AC31A28 -:1000F000C31AC31AC31AC31AC31AC31AC31AC31A18 -:10010000D31AE11AE81AEF1AF91A07634236B79BB5 -:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 -:100120005763BD6DEDFD753EF6177231BF000000DF -:10013000803F08000000BE922449123EABAAAA2AC2 -:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD -:1001500000000000BF000000803F00000000000819 -:100160004178D3BB4387D1133D190E3CC3BD4282B6 -:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 -:10018000FFBE01C4FF7F3F00000000000000000030 -:1001900000000000000000010204060A0F17202CD6 -:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 -:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF -:1001C0000201000000000000000000002B001400ED -:1001D0001A000800150017001C0018000C0012007F -:1001E00013002A00290004001600070009000A0075 -:1001F0000B000D000E000F003300015201001D0026 -:100200001B00060019000500110010003600370021 -:10021000380001000030E300E200E000E1002C00C3 -:100220002C0002522D00340028000100010049007A -:100230004A0052004D004B000100400041004200C6 -:100240004300010001004C00500051004F004E00DF -:1002500001003D003E003F0044000100010001009C -:10026000010001000100010001003A003B003C00D8 -:100270004500010001000100010001000100010032 -:100280000100AA00A900AB00AE00010001001E029F -:100290001F022F02300231024B00240025002600ED -:1002A000250201000100200221022602270235005A -:1002B0004E002100220023002E0201000100220234 -:1002C00023022F003000350224021E001F002000F0 -:1002D000310001000100010049000100010001009E -:1002E00001000100010027002E0001002803540036 -:1002F00068006500200050006C0061006E00630023 -:100300006B0020004B006500790062006F00610007 -:100310007200640000002C034F007200740068003B -:100320006F006C0069006E006500610072002000C3 -:100330004B006500790062006F006100720064008C -:10034000730000000403090409026D00040100A009 -:10035000FA09040000010301010009211101000153 -:10036000223F000705810308000A09040100010378 -:10037000010200092111010001224D00070582033D -:1003800008000A090402000103000000092111010C -:1003900000012236000705830308000A0904030050 -:1003A00001030000000921110100012239000705A5 -:1003B00084031000011201100100000008EDFE602E -:1003C0006001000102000105010906A101050719EC -:1003D000E029E71500250195087501810205081936 -:1003E0000129059505750191029501750391010596 -:1003F000071900297715002501957875018102C03C -:1004000005010980A101850216010026B7001A0125 -:10041000002AB700751095018100C0050C0901A1E3 -:10042000018503160100269C021A01002A9C027510 -:100430001095018100C005010902A1010901A10077 -:100440000509190129051500250195057501810288 -:100450009501750381010501093009311581257F59 -:1004600095027508810609381581257F9501750863 -:100470008106050C0A38021581257F9501750881D2 -:1004800006C0C005010906A101050719E029E71505 -:100490000025019508750181029501750881010506 -:1004A00008190129059505750191029501750391BA -:1004B000010507190029FF150025FF95067508811C -:1004C00000C011241FBECFEFDAE0DEBFCDBF04B6FF -:1004D00003FE24C080911E0390911F03A09120036E -:1004E000B09121038730904BA740B04BB9F41092E4 -:1004F0001E0310921F03109220031092210314BEBA -:1005000084B7877F84BF88E10FB6F894809360003A -:10051000109260000FBEE0E0F8E3099511E0A0E062 -:10052000B1E0E6E6F9E502C005900D92A03CB10706 -:10053000D9F713E0A0ECB1E001C01D92AE31B107D4 -:10054000E1F70E9498110C94B12C0C9400000895CE -:10055000089581E0089508950C94A8020C94A902CE -:100560000C94AB020E947B2823E030E0281B310969 -:10057000220F2093C4010895282F2F988091800086 -:10058000211108C0877F8093800010928D00109207 -:100590008C001BC0886080938000233019F48FEF9B -:1005A0009FEF0FC083E090E0821B9109880F991F95 -:1005B0002FEF3FEFA90102C0569547958A95E2F7C4 -:1005C000CA0190938D0080938C000C94B2020E941B -:1005D000B20284E08093C3011092C0010895279A6B -:1005E0002F988FEF9FEF90938700809386008AE08B -:1005F0008093800089E1809381000E94E4270C941D -:10060000E7020E94EF026E9A769A0C94A7021F925C -:100610000F920FB60F9211242F933F938F939F93B6 -:10062000EF93FF93E091C101F091C201CF010196D8 -:100630009093C2018093C1010090C30102C0F6955E -:10064000E7950A94E2F7EF738091C001823019F4C4 -:10065000E03251F404C0813039F4EF3329F4809151 -:100660006F008D7F80936F00F0E0E457FE4FE491C0 -:1006700021E031E0E29FC001E39F900D1124009042 -:10068000C40102C0969587950A94E2F790938D0075 -:1006900080938C00FF91EF919F918F913F912F91CB -:1006A0000F900FBE0F901F90189561110DC0FC01A7 -:1006B0008281882331F085EE0E9411180E943B2828 -:1006C00003C085EE0E94D91880E090E0089581E093 -:1006D00008950C94670308950C940103809115020A -:1006E000882309F448C08091D1019091D2010097EC -:1006F00079F40E94B8229093D2018093D101809125 -:10070000D30190E0009771F48091D40190E00AC089 -:100710000E94C4222091000130910101281739075D -:1007200040F329C00197880F991F880F991FFC017A -:10073000EB52FE4F60817181828193810E942D0A6C -:10074000E091D30184E0E89FF0011124EB52FE4FC9 -:1007500060817181828193814FE050E00E94E50DBC -:100760008091D30190E001966091D40170E00E94E5 -:10077000612C8093D3010C94AC02109217020C945C -:10078000FA090895089581E0809317020C94C2033A -:10079000089508958F929F92AF92BF92EF92FF9229 -:1007A0000F931F93CF93DF93CDB7DEB7A3970FB609 -:1007B000F894DEBF0FBECDBF7C01FC01008111812A -:1007C000C8010E94B520B8010E94CC058C01B70178 -:1007D0000E946903882309F4CCC10032F0E51F07A9 -:1007E00041F4F7018281882309F458C00E94490E20 -:1007F000C0C10132F0E51F0741F4F701828188236F -:1008000009F44CC00E94520EB4C10232F0E51F0739 -:1008100051F4F7018281882309F440C00E94450EFB -:100820008111F0CFE3CF0332F0E51F0739F4F70170 -:100830008281882399F10E94C3039BC10432F0E5B1 -:100840001F0739F4F7018281882341F10E94BD031B -:1008500090C10532F0E51F0749F4F7018281882332 -:10086000E9F0809117028111F1CFE5CF0632F0E572 -:100870001F0739F4F7018281882381F00E94590E05 -:100880000AC00732F0E51F0749F4F7018281882387 -:1008900029F00E94640E0E94C9036BC18091170267 -:1008A000811105C0F70182818111CFC018C1003EBE -:1008B000110579F4F7018281882309F44DC00E9463 -:1008C000FA0981E080931602109215021092D40169 -:1008D00050C1023E110559F4F70182818823E1F1EC -:1008E0000E94FA09109216021092150242C1033EAC -:1008F000110591F4F7018281882371F10E94FA09B0 -:100900001092160281E0809315021092D30110928A -:10091000D2011092D1012DC10235110559F4F70110 -:100920008281882309F425C1809100019091010101 -:100930000A970DC00135110579F4F70182818823EA -:1009400009F417C180910001909101010A969093DA -:100950000101809300010DC14091040183E2EFE1A8 -:10096000F1E0DE01119601900D928A95E1F7F70111 -:10097000808121E030E02C0F3D1F280F311DC9017F -:100980002091020130910301FC01E20FF31F60810D -:10099000772767FD7095640F711D882777FD809517 -:1009A000982F0E94832920E030E040E451E40E9427 -:1009B000E8284B015C01F701218184E090E0821B73 -:1009C0009109BC01882777FD8095982F0E94832983 -:1009D0009B01AC01C501B4010E9480289B01AC01C0 -:1009E00060E070E080E090E40E94F62A20E030E0D1 -:1009F0004CED50E40E94932A4B015C01F701828187 -:100A00008823D1F04FE050E0C501B4010E94E50D0C -:100A1000809116028823A1F08091D40124E0829F66 -:100A2000F0011124EB52FE4F80829182A282B382A8 -:100A30008F5F8093D40104C0C501B4010E942D0AC8 -:100A40000F3F110508F02ECF94C08091D001811185 -:100A50001FC0043130E5130709F051C00E946B0339 -:100A600081E08093D0010E94B8229093CF018093BF -:100A7000CE011092C7011092C9011092C8011092C4 -:100A8000CB011092CA011092CD011092CC0171C01D -:100A90008091CE019091CF010E94C422883C9105A3 -:100AA00070F48091C701E82FF0E0EE0FFF1FE853CC -:100AB000FE4F118300838F5F8093C7015AC00438B3 -:100AC00080E5180721F00538104501F13AC0F7011B -:100AD0008281882341F01092C50182E01EC0043853 -:100AE00030E5130759F58091C501811106C086E2F2 -:100AF0000E94111886E20E94D91882E01CC00438B6 -:100B0000F0E51F0741F305381045D9F4F70182815C -:100B1000882331F01092C60180E20E94281929C072 -:100B20008091C601811106C087E20E94111887E2F8 -:100B30000E94D91880E20E942F191BC00538104569 -:100B400029F381E08093C5018093C601C701A39674 -:100B50000FB6F894DEBF0FBECDBFDF91CF911F91CE -:100B60000F91FF90EF90BF90AF909F908F900C945B -:100B7000AE0280E0A3960FB6F894DEBF0FBECDBFE5 -:100B8000DF91CF911F910F91FF90EF90BF90AF90A9 -:100B90009F908F90089508959CE0799FF001112413 -:100BA00090E3899FE00DF11D1124E60FF11DEE0F7A -:100BB000FF1FE453FE4F859194910895880F991F6C -:100BC000FC01E45BFF4F859194910895880F991F74 -:100BD000FC01E453FE4F8591949108950F931F9368 -:100BE000CF93DF93EC01811521E39207A0F5C115A6 -:100BF00080E3D80708F0D7C0C83ED105D8F4C03E7E -:100C0000D10508F007C2C83AD10578F4C53AD10534 -:100C100008F06AC0C130D10509F463C008F4F7C117 -:100C2000C430D10508F0F6C1F2C1CB3BD10508F4C0 -:100C300066C0EDC1C11590E2D90708F0AFC0C1157B -:100C400021E0D20708F0E6C1C03FD10508F4DFC1BA -:100C50008E0110651FC2C03880E5D80700F5C03787 -:100C600090E5D90708F0A3C0C11520E5D20709F423 -:100C7000ACC050F4CE01905480319F4008F0C7C101 -:100C8000DF708E01106A06C2C13080E5D80709F412 -:100C9000AEC0C43190E5D90708F4AFC0B8C1C338BD -:100CA00020E5D20709F48EC050F4C13890E5D90789 -:100CB00009F482C008F083C000E011EDEBC1C0313F -:100CC00081E5D80708F4A3C1C11597E5D90708F451 -:100CD00036C1CE0190578115904108F098C1DF7060 -:100CE00093C101E010E0D6C1C53AD10509F494C121 -:100CF000C63AD10509F093C102E810E4CBC1C83A65 -:100D0000D10509F48FC1C93AD10509F48EC1CA3A97 -:100D1000D10509F48DC1CB3AD10509F48CC1CC3A87 -:100D2000D10509F48BC1CD3AD10509F48AC1C03B84 -:100D3000D10509F489C1CE3AD10509F488C1CF3A69 -:100D4000D10509F487C1C13BD10509F486C1C23B75 -:100D5000D10509F485C1C33BD10509F484C1C43B65 -:100D6000D10509F483C1C53BD10509F482C1C63B55 -:100D7000D10509F481C1C73BD10509F480C1C83B45 -:100D8000D10509F47FC1C93BD10509F47EC1CA3B35 -:100D9000D10509F47DC100E014E47CC1CE019F704F -:100DA0000E94E60578C1DD278E01106C73C1CF70FB -:100DB000DD278E01146D6EC100E010ED6BC100E007 -:100DC00012ED68C100E013ED65C10E94BC1B0E94DA -:100DD000FA090E94C1038FEF94E32CE08150904008 -:100DE0002040E1F700C000000E94132353C180910E -:100DF000F20281608093F2024DC10E94742381113E -:100E000002C00E9450230E94872390E090931D030C -:100E100080931C03C23080E5D80721F480911C0325 -:100E2000816086C0C43090E5D90721F480911C030D -:100E300082607EC0C63020E5D20721F480911C0379 -:100E4000846076C0C83080E5D80719F480911C030F -:100E500027C0CA3090E5D90721F480911C03806136 -:100E600067C0CC3020E5D20721F480911C0380625A -:100E70005FC0CE3080E5D80721F480911C038064E8 -:100E800057C0C03190E5D90721F480911C038068D8 -:100E90004FC0C23120E5D20729F480911C03846041 -:100EA000886046C0C33080E5D80721F480911C03D8 -:100EB0008E7F3EC0C53090E5D90721F480911C0398 -:100EC0008D7F36C0C73020E5D20721F480911C0306 -:100ED0008B7F2EC0C93080E5D80719F480911C03A0 -:100EE00026C0CB3090E5D90721F480911C038F7E7A -:100EF0001FC0CD3020E5D20721F480911C038F7DE7 -:100F000017C0CF3080E5D80721F480911C038F7B78 -:100F10000FC0C13190E5D90721F480911C038F7770 -:100F200007C0C331D04531F480911C038B7F877F8C -:100F300080931C0380911C030E948B23ABC08D2FD8 -:100F400099278F70992781309105D9F49E012370DC -:100F5000332702C0880F991F2A95E2F79C688E01FB -:100F600044E0000F111F4A95E1F700271370802B12 -:100F7000912B53E0CC0FDD1F5A95E1F7C076DD27AA -:100F80002FC08230910531F4DC2FCC278E01016F08 -:100F9000106A80C08330910569F4CE01837099276F -:100FA00001E010E002C0000F111F8A95E2F7C801AE -:100FB0009C680FC084309105B9F4CE0183709927E5 -:100FC00001E010E002C0000F111F8A95E2F7C8018E -:100FD0009A6823E0CC0FDD1F2A95E1F7C07ED77019 -:100FE0008C010C2B1D2B56C08530910531F4DC2F64 -:100FF000CC278E01046F106A4DC0069709F04AC0D5 -:10100000CF71DD27DC2FCC278E01106243C000E0BA -:1010100010E040C08E013EC001E810E43BC003E890 -:1010200010E438C002EE14E435C009EE14E432C016 -:101030000AEE14E42FC005EB14E42CC006EB14E414 -:1010400029C007EB14E426C00CEC14E423C00DEC1B -:1010500014E420C003E815E41DC00AE815E41AC032 -:1010600002E915E417C004E915E414C001E216E42E -:1010700011C003E216E40EC004E216E40BC005E260 -:1010800016E408C006E216E405C007E216E402C052 -:101090000AE216E4C801DF91CF911F910F910895E4 -:1010A0009CE0799FF001112490E3899FE00DF11DF0 -:1010B0001124E60FF11DEE0FFF1FE453FE4F859143 -:1010C0009491803E9105E0F4803C910558F5813380 -:1010D000910509F46FC048F48932910509F463C0A1 -:1010E0008A32910509F46DC072C089339105E9F027 -:1010F00082389105D1F08533910509F44DC067C060 -:10110000833E910581F138F4803E9105B9F0823E2D -:101110009105D9F05CC0863E910561F1873E91054D -:10112000A1F155C00E94DE05089520911C0320FD09 -:1011300002C021FF4CC080EE90E049C080911C03AA -:1011400080FFF9CF89E390E042C080911C0382FFC9 -:101150000EC080911C0384FF03C080E090E037C084 -:1011600083EE90E034C080911C0382FFF2CF82EEC8 -:1011700090E02DC080911C0383FF0BC080911C0365 -:1011800084FDEBCF87EE90E022C080911C0383FFAB -:10119000F5CF86EE90E01BC080911C0385FF07C051 -:1011A00089E290E014C080911C0385FFF9CF85E3AC -:1011B00090E00DC080911C0386FF07C08AE290E09A -:1011C00006C080911C0386FFF9CF81E390E00E9466 -:1011D000EE0508950C94B002E82FF0E0E25BFE4FBC -:1011E0008081E82FEF70F0E082958F7021E030E091 -:1011F000A90102C0440F551F8A95E2F740A3089544 -:101200000F931F93CF93DF9385B7806885BF85B712 -:10121000806885BFC3E0D0E001E010E0FE01E25B42 -:10122000FE4F8081E82FEF70F0E021A182958F7052 -:10123000A80102C0440F551F8A95E2F7CA01822B0C -:1012400081A38C2F0E94EC08219740F78BE090E05F -:1012500061E070E0FC01EE5BFE4F2081E22FEF7059 -:10126000F0E042A122952F70DB0102C0AA0FBB1F44 -:101270002A95E2F79D01242B22A3019758F7DF91CD -:10128000CF911F910F910C946C03EF92FF920F93EB -:101290001F93CF93DF9300E212E0C3E0EE24E394C8 -:1012A000F12CD5E08C2F0E94EC088BE090E040E020 -:1012B00050E0FC01EE5BFE4F6081E62FEF70F0E046 -:1012C00020A130E062956F7002C0359527956A9530 -:1012D000E2F720FD09C09701082E02C0220F331F3C -:1012E0000A94E2F7422B532B019718F7F8019291D9 -:1012F00082918F018417950721F051834083D09309 -:1013000005018C2F0E94EC08C15060F68091050108 -:1013100087FD2CC08150809305018F3F39F08FE904 -:101320009FE00197F1F700C0000020C080911E02ED -:1013300090911F02909327028093260280911C02B5 -:1013400090911D02909325028093240280911A02AD -:1013500090911B02909323028093220280911802A5 -:101360009091190290932102809320020E946E03B3 -:1013700081E0DF91CF911F910F91FF90EF90089541 -:10138000E82FF0E0EE0FFF1FE05EFD4F80819181BE -:10139000089508950F931F93CF9308E212E0C0E0E1 -:1013A000F801929182918F010E943022C80FF2E0E1 -:1013B00000321F07A9F78C2FCF911F910F9108952D -:1013C0000E947423811102C00E9450230E9499231D -:1013D000809307033E9A809171008D7F8093710006 -:1013E00082E0809390008AE18093910081E0809375 -:1013F0002A02089580912A02811102C00E94E00908 -:1014000010927A0210927902809171008D7F809300 -:101410007100809190008F738093900010923C0235 -:1014200010923B0210927302109274021092750295 -:10143000109276021092720210927102E1E5F2E0CF -:10144000A1E4B2E011921192119211921D921D929B -:1014500082E0E137F807B1F70895CF92DF92EF927B -:10146000FF920F931F93CF93DF9320913B02222390 -:1014700009F484C06B017C0180912A02811102C0B1 -:101480000E94E00901E712E0C7E0D0E0A701960161 -:10149000F80192918291729162918F010E94E428E9 -:1014A000811131C0FE01EE0FFF1FEE0FFF1FEF5A3B -:1014B000FD4F1082118212821382DE01AA0FBB1F20 -:1014C000AF5BBD4F11961C921E92C730D105E9F05B -:1014D000219644815581668177814083518362835F -:1014E0007383148215821682178212968D919C91B5 -:1014F000139711969C938E9313961C921E9212979B -:1015000034961296E2CF219708F680917902909155 -:101510007A02019797FD05C090937A028093790231 -:1015200004C010927A02109279028091790290910F -:101530007A0220917702309178022817390724F037 -:101540001092780210927702892BC1F48091710079 -:101550008D7F80937100809190008F7380939000B5 -:101560001092730210927402109275021092760219 -:10157000109272021092710210923B02DF91CF9191 -:101580001F910F91FF90EF90DF90CF9008951F92E1 -:101590000F920FB60F9211244F925F926F927F922B -:1015A0008F929F92AF92BF92CF92DF92EF92FF9273 -:1015B0002F933F934F935F936F937F938F939F935B -:1015C000AF93BF93CF93DF93EF93FF9380913B0251 -:1015D000882309F49BC1C0917902D0917A021C162C -:1015E0001D060CF093C140902B0250902C0260908D -:1015F0002D0270902E0220E030E0A901C301B2015B -:101600000E948F2A18160CF065C0C130D10509F46C -:1016100052C08091770290917802BE010E94612CA5 -:101620007C01909378028093770280903D029090A5 -:101630003E02A0903F02B090400220E030E040E83F -:101640005FE3C501B4010E94802860933D0270935E -:101650003E0280933F0290934002F701EE0FFF1F7E -:10166000EE0FFF1FEF5AFD4FA301920160817181C0 -:10167000828193810E94E82820E030E040E05EE330 -:101680000E94932A9B01AC01C501B4010E948F2ADC -:1016900018168CF4C7010196BE010E94612C90932C -:1016A00078028093770210923D0210923E021092CF -:1016B0003F0210924002E0917702F0917802EE0F23 -:1016C000FF1FEE0FFF1FEF5AFD4F60817181828176 -:1016D0009381D0C0C0907302D0907402E0907502E4 -:1016E000F090760220E030E0A901C701B6010E9427 -:1016F000E4282197882309F4A2C0FE01EE0FFF1F02 -:10170000EE0FFF1FEF5AFD4F80809180A280B380C3 -:10171000A5019401C701B6010E94E42887FF31C0EA -:10172000A501940160E070E08CED93EC0E94E82844 -:1017300020E030E040E451E40E94E82820E030E07E -:1017400040E05FE30E94932A9B01AC0160E070E0FF -:1017500080E090E40E94F62A9B01AC01C501B4012F -:101760000E94932A9B01AC01C701B6010E94E428A4 -:1017700087FF07C0A701960160E070E08CED93E45D -:1017800039C0A5019401C701B6010E948F2A18161D -:101790000CF055C0A501940160E070E08CED93E47D -:1017A0000E94E82820E030E040E451E40E94E8286C -:1017B00020E030E040E05FE30E94932A9B01AC010F -:1017C00060E070E080E090E40E94F62A9B01AC01AA -:1017D000C501B4010E94932A9B01AC01C701B60167 -:1017E0000E948F2A18165CF5A701960160E070E050 -:1017F0008CED93EC0E94E82820E030E040E451E4D6 -:101800000E94E82820E030E040E05FE30E94932A55 -:101810009B01AC0160E070E080E090E40E94F62A59 -:101820009B01AC01C701B6010E94932A6093730229 -:1018300070937402809375029093760213C0FE0138 -:10184000EE0FFF1FEE0FFF1FEF5AFD4F80819181BA -:10185000A281B3818093730290937402A093750266 -:10186000B093760260917302709174028091750258 -:101870009091760220912802309129022F3F4FEF5C -:10188000340731F02F5F3F4F309329022093280215 -:101890000E946F0E6B017C0120E034E244EF51E4C2 -:1018A0000E94E42887FF08C086EFC82E88E2D82E61 -:1018B00084EFE82E81E4F82E20E030E040E051E4AF -:1018C000C701B6010E94932A9B01AC0160E074E25B -:1018D00084E79BE40E94E8286B017C010E94552963 -:1018E0007093970060939600209106013091070154 -:1018F0004091080150910901C701B6010E94932A45 -:101900000E945529709399006093980080913C0241 -:10191000882309F433C1C0903702D0903802E09098 -:101920003902F0903A0220E030E0A901C701B60187 -:101930000E948F2A1816D4F58091280290912902CE -:101940008F3F2FEF920729F0019690932902809301 -:101950002802C701B6010E946F0E20E030E040E08F -:1019600051E40E94932A9B01AC0160E074E284E799 -:101970009BE40E94E8286B017C010E94552970932A -:1019800097006093960020910601309107014091E5 -:10199000080150910901C701B6010E94932A0E94D3 -:1019A0005529709399006093980008C01092970091 -:1019B0001092960010929900109298006091310256 -:1019C000709132026F5F7F4F7093320260933102E9 -:1019D000209196003091970080E090E0232BF1F069 -:1019E000C0919600D09197000E9481296B017C01E3 -:1019F000BE0180E090E00E9481299B01AC016091D2 -:101A000033027091340280913502909136020E9427 -:101A1000E82820E03FEF4FE757E410C00E948129FB -:101A20006B017C0120E030EE4FEF54E46091330213 -:101A30007091340280913502909136020E94932A6F -:101A40009B01AC01C701B6010E948F2A87FD96C099 -:101A500080912F028F5F80932F0290E020910303EB -:101A60003091040382179307A0F080910E0388231E -:101A700019F010922F020DC0809171008D7F80931C -:101A80007100809190008F738093900010923C02BF -:101A90007DC080913002C0912F02811128C0C0907A -:101AA0000803D0900903E0900A03F0900B0320E0B4 -:101AB00030E0A901C701B6010E948F2A1816BCF4B4 -:101AC00081E0809330021092370210923802109217 -:101AD000390210923A02C0923302D0923402E0925C -:101AE0003502F0923602C150C0932F0243C01092CB -:101AF00030021092290210922802E0910503F09121 -:101B0000060348E0C49FE00DF11D112480819181FE -:101B1000A281B3818093370290933802A093390257 -:101B2000B0933A0220E030E040E85EE364817581E2 -:101B3000868197810E94932A6B017C0180910A0122 -:101B4000682F70E080E090E00E94812920E030E082 -:101B500048EC52E40E94E8289B01AC01C701B601A1 -:101B60000E94932A6093330270933402809335026B -:101B70009093360210923202109231028091070344 -:101B800080FD04C010923C0210923B02FF91EF9145 -:101B9000DF91CF91BF91AF919F918F917F916F9185 -:101BA0005F914F913F912F91FF90EF90DF90CF90F9 -:101BB000BF90AF909F908F907F906F905F904F906D -:101BC0000F900FBE0F901F901895CF92DF92EF925B -:101BD000FF92CF93DF936B017C01EA0180912A028F -:101BE000811102C00E94E0098091070380FF46C076 -:101BF0008091790290917A0208970CF03FC0809111 -:101C000071008D7F8093710080913C0281110E9450 -:101C1000FA0981E080933B02109229021092280277 -:101C200020E030E0A901C701B6010E948F2A1816F2 -:101C3000DCF48091790290917A02FC01EE0FFF1F93 -:101C4000EE0FFF1FEF5AFD4FC082D182E282F38276 -:101C5000FC01EE0FFF1FEF5BFD4FD183C0830196A8 -:101C600090937A02809379028091710082608093D0 -:101C7000710080919000806880939000DF91CF91F7 -:101C8000FF90EF90DF90CF900895809107038170CF -:101C90000895809107038160809307030E949D232C -:101CA0000C94C803809107038E7F809307030C94E4 -:101CB0009D2380917B0290E0019666E070E00E9497 -:101CC000612C80937B02089580917B0290E00197C4 -:101CD00066E070E00E94612C80937B0208958F92F1 -:101CE0009F92AF92BF92CF92DF92EF92FF920F93AB -:101CF0001F93CF93DF936B017C01C0912802D09199 -:101D00002902BE0180E090E00E9481294B015C0124 -:101D1000A701960160E070E08CE594E40E94E82859 -:101D20009B01AC01C501B4010E94932A0E94552970 -:101D300020917B02233009F473C028F4222351F050 -:101D40002130E9F02CC1243009F4A0C0253009F479 -:101D5000E0C025C180E090E0A0E0BFE380930601F1 -:101D600090930701A0930801B093090110922B02F0 -:101D700010922C0210922D0210922E0210C110927D -:101D80002B0210922C0210922D0210922E0264311E -:101D9000710540F46A30710560F520E030E040E8FC -:101DA0005EE32BC0693C710508F0AAC080E090E0BA -:101DB0000E94812920E030E040EA51E40E947F281F -:101DC00020E030E044E353E40E94E8289B01AC01AA -:101DD0000E94932A20E030E040E05EE30E94932AD4 -:101DE0009B01AC0160E070E080E09EE30E947F28F0 -:101DF00044C020E030E040E05FE3C701B6010E944C -:101E0000932A6B017C0180E090E0A0E0BEE3809328 -:101E1000060190930701A0930801B0930901BFC088 -:101E200010922B0210922C0210922D0210922E0270 -:101E30004AE0469F9001479F300D1124C90168EB8D -:101E40007BE00E944D2CBC016C5D754077FF03C0A8 -:101E5000719561957109882777FD8095982F0E946B -:101E600083292EE333EC4EE259E30E94932A20E0CB -:101E700030E040EC5EE30E9480286093060170939E -:101E80000701809308019093090189C010922B02E9 -:101E900010922C0210922D0210922E02CE0183700D -:101EA0009927892BE1F0BE016170772780E090E0EF -:101EB0000E94812920E030E040E05EE30E94932A06 -:101EC00020E030E040E45FE30E9480286093060158 -:101ED0007093070180930801909309010CC080E082 -:101EE00090E0A0E0BFE38093060190930701A093E8 -:101EF0000801B0930901C770DD27CD2B09F04FC051 -:101F00001092060110920701109208011092090127 -:101F100046C010922B0210922C0210922D021092A9 -:101F20002E0200E010E020E03FE300930601109352 -:101F3000070120930801309309016739710578F191 -:101F400080E090E00E94812920E030E047E153E406 -:101F50000E947F2820E030E04AE754E40E94E8280D -:101F600020E030E048E452E40E94932A20E030E090 -:101F700040EA51E40E94C5290E945029660F771F4C -:101F8000660F771FFB01EE5AFE4F2081318142819F -:101F90005381C701B6010E94932A6B017C01C701DE -:101FA000B601DF91CF911F910F91FF90EF90DF90DD -:101FB000CF90BF90AF909F908F90089580918C02AA -:101FC0000895CF93DF9300D01F92CDB7DEB79C0169 -:101FD00080911303843019F593E099833B832A831E -:101FE0009093E9008FEF9091E800815095FD06C035 -:101FF00095ED9A95F1F700008111F5CF8091E800F9 -:1020000085FF0DC040E050E063E070E0CE01019636 -:102010000E9442128091E8008E778093E8000F9032 -:102020000F900F90DF91CF910895CF93DF9300D061 -:102030001F92CDB7DEB720911303243021F522E0A3 -:1020400029839B838A8383E08093E9008FEF9091BB -:10205000E800815095FD06C095ED9A95F1F70000D6 -:102060008111F5CF8091E80085FF0DC040E050E080 -:1020700063E070E0CE0101960E9442128091E80078 -:102080008E778093E8000F900F900F90DF91CF91A3 -:102090000895209113032430F1F422E02093E90005 -:1020A0002FEF3091E800215035FD06C035ED3A950F -:1020B000F1F700002111F5CF2091E80025FF0BC0BA -:1020C00040E050E065E070E00E9442128091E8003C -:1020D0008E778093E8000895CF93DF93EC01909181 -:1020E0001303943009F046C0809115018823D9F07C -:1020F000809116018823B9F09093E9008FEF9091B9 -:10210000E800815095FD06C095E19A95F1F7000031 -:102110008111F5CF8091E80085FF2CC040E050E0B0 -:1021200060E170E017C081E08093E9008FEF90914B -:10213000E800815095FD06C095ED9A95F1F70000F5 -:102140008111F5CF8091E80085FF14C040E050E098 -:1021500068E070E0CE010E9442128091E8008E7724 -:102160008093E80080E1FE01ACE7B2E001900D92BF -:102170008A95E1F7DF91CF91089580911203811143 -:1021800009C00E94D7130E9434148091E200846039 -:102190008093E2000895109212030895089508951F -:1021A0000C947B2242E061EC81E00E94511342E0FA -:1021B00061EC82E00E94511342E061EC83E00E94F6 -:1021C000511342E161EC84E00C94511380911503AA -:1021D000833009F455C030F4813071F0823009F455 -:1021E0008EC008958A3009F47AC08B3009F460C03B -:1021F000893009F09CC020C080911403813A09F015 -:1022000096C08091E800877F8093E8008091180352 -:1022100090911903892B21F460E18CE792E003C0CF -:1022200060E080E090E070E00E948D128091E80014 -:102230008B778093E800089580911403813209F030 -:1022400076C08091180390911903009719F00397B5 -:1022500009F06DC08091E800877F8093E80080914D -:10226000E80082FD05C0809113038111F8CF5FC0A3 -:102270008091F10080938C028091E8008B7753C0AD -:1022800080911403813A09F052C080911803909113 -:102290001903892B09F04BC08091E800877F809358 -:1022A000E8008091E80080FFFCCF8091150136C0E6 -:1022B000809114038132D9F580911803909119030C -:1022C000892BA9F58091E800877F8093E8000E9420 -:1022D000861380911603809315010C94BC1B80918A -:1022E0001403813221F58091E800877F8093E80014 -:1022F0000E9486138091170380938D020895809128 -:102300001403813AA1F48091E800877F8093E8006C -:102310008091E80080FFFCCF80918D028093F100D6 -:102320008091E8008E778093E8000C9486130895DE -:1023300084B7877F84BF88E10FB6F89480936000EC -:10234000109260000FBE90E080E80FB6F894809382 -:102350006100909361000FBE0E9429170E94D7135D -:102360000E9434148091E20084608093E2007894AB -:102370000E94BA160E942B178BE091E00E94D5169E -:1023800080911303853069F40E943C2280911103EF -:102390008823B1F30E946A22882391F30E942C12B1 -:1023A000EFCF0E943317ECCF292F3327233031058D -:1023B000C9F064F42130310581F02230310509F093 -:1023C00043C08DE690E028E433E042C0213231057D -:1023D000F1F02232310541F137C082E190E025EB86 -:1023E00033E036C099278130910541F08230910564 -:1023F00041F0892B49F5E4E4F3E005C0E6E1F3E0C0 -:1024000002C0ECEEF2E0849190E09F0121C06430C4 -:10241000D8F4E62FF0E0EE0FFF1FE255FE4F2081CB -:10242000318189E090E014C0643070F470E0FB0109 -:10243000EE0FFF1FEA55FE4F20813181FB01EE5563 -:10244000FE4F808190E004C080E090E020E030E02A -:10245000FA0131832083089580E189BD82E189BD3D -:1024600009B400FEFDCF8091D8008F7D8093D80005 -:102470008091E00082608093E0008091E00081FD27 -:10248000FCCF0895CF92DF92EF92FF920F931F93AC -:10249000CF93DF93EC018B016A010E94A513811198 -:1024A00033C0C114D10439F0F60180819181081B39 -:1024B000190BC80FD91FE12CF12C0115110519F1C9 -:1024C0008091E80085FD16C08091E8008E778093AA -:1024D000E800C114D10449F0F60180819181E80E31 -:1024E000F91EF182E08285E00FC00E94A5138823C7 -:1024F00021F30AC089918093F10001501109FFEF87 -:10250000EF1AFF0ADACF80E0DF91CF911F910F9190 -:10251000FF90EF90DF90CF90089520911A033091B3 -:102520001B032617370748F06115710539F4209110 -:10253000E8002E772093E80001C0B90140E0611562 -:102540007105A9F120911303222309F443C025301A -:1025500009F442C02091E80023FD40C02091E8002A -:1025600022FD32C02091E80020FFE9CF4091F30026 -:102570002091F20030E0342BFC01CF016115710590 -:1025800059F02830310540F481918093F100615079 -:1025900071092F5F3F4FF1CF41E02830310509F03D -:1025A00040E02091E8002E772093E800C8CF411149 -:1025B000C9CF0AC080911303882361F0853061F090 -:1025C0008091E80083FD0AC08091E80082FFF2CF8D -:1025D00080E0089582E0089583E0089581E0089501 -:1025E00020911A0330911B032617370748F0611515 -:1025F000710539F42091E8002E772093E80001C09E -:10260000B901FC0120E06115710591F1809113037E -:10261000882309F440C0853009F43FC08091E80068 -:1026200083FD3DC08091E80082FD2FC08091E800CD -:1026300080FFE9CF2091F3008091F20090E0922B8F -:102640006115710559F08830910540F4249120936B -:10265000F1003196615071090196F2CF21E008979F -:1026600009F020E08091E8008E778093E800CBCFDE -:102670002111CCCF0AC080911303882361F08530EB -:1026800061F08091E80083FD0AC08091E80082FF3C -:10269000F2CF80E0089582E0089583E0089581E01C -:1026A0000895982F973058F59093E900981739F0CE -:1026B0007091EC002091ED005091F00003C0242FA8 -:1026C000762F50E021FF19C03091EB003E7F309310 -:1026D000EB003091ED003D7F3093ED003091EB0049 -:1026E00031603093EB007093EC002093ED00509339 -:1026F000F0002091EE0027FF07C09F5FD3CF8F70BF -:102700008093E90081E0089580E0089580911403AA -:1027100087FF11C08091E80082FD05C080911303FE -:102720008111F8CF11C08091E8008B770BC08091A8 -:102730001303882349F08091E80080FFF8CF80914F -:10274000E8008E778093E80008952091E4003091AE -:10275000E50095E64091EC00842F817040FF22C097 -:102760008091E80080FD1CC080911303882391F0C4 -:10277000853091F08091EB0085FD10C04091E40020 -:102780005091E5004217530729F39A01915011F730 -:1027900084E0089582E0089583E0089581E008953B -:1027A00080E008954091E80042FFDECF08950E9446 -:1027B00045140E944D14E0EEF0E08081816080833A -:1027C000E8EDF0E080818F77808319BCA7EDB0E061 -:1027D0008C918E7F8C9380818F7E808310921203E8 -:1027E00008950F931F93CF93DF930E9445140E9487 -:1027F0004D14C8EDD0E088818F7788838881806808 -:10280000888388818F7D888319BC1092130310926E -:102810000F03109211031092100300EE10E0F80164 -:1028200080818B7F808388818160888342E060E043 -:1028300080E00E945113E1EEF0E080818E7F808382 -:10284000E2EEF0E080818160808380818860808317 -:10285000F80180818E7F8083888180618883DF9109 -:10286000CF911F910F910895E8EDF0E080818F7E68 -:102870008083E7EDF0E080818160808384E082BF27 -:1028800081E0809312030C94F113E8EDF0E0808175 -:102890008E7F80831092E20008951092DA001092E9 -:1028A000E10008951F920F920FB60F9211242F93FB -:1028B0003F934F935F936F937F938F939F93AF93C8 -:1028C000BF93EF93FF938091E10082FF0BC0809153 -:1028D000E20082FF07C08091E1008B7F8093E100DE -:1028E0000E94B9168091DA0080FF1FC08091D80045 -:1028F00080FF1BC08091DA008E7F8093DA00809188 -:10290000D90080FF0DC080E189BD82E189BD09B495 -:1029100000FEFDCF81E0809313030E94BD1005C02F -:1029200019BC109213030E94CB108091E10080FF2C -:1029300019C08091E20080FF15C08091E2008E7F77 -:102940008093E2008091E20080618093E2008091B8 -:10295000D80080628093D80019BC85E0809313036F -:102960000E94CF108091E10084FF30C08091E2008E -:1029700084FF2CC080E189BD82E189BD09B400FEDD -:10298000FDCF8091D8008F7D8093D8008091E100A9 -:102990008F7E8093E1008091E2008F7E8093E20041 -:1029A0008091E20081608093E20080910F03882390 -:1029B00011F084E007C08091E30087FD02C081E050 -:1029C00001C083E0809313030E94D0108091E10046 -:1029D00083FF29C08091E20083FF25C08091E10040 -:1029E000877F8093E10082E08093130310920F03AE -:1029F0008091E1008E7F8093E1008091E2008E7FE4 -:102A00008093E2008091E20080618093E20042E0E6 -:102A100060E080E00E9451138091F0008860809314 -:102A2000F0000E94CE10FF91EF91BF91AF919F9166 -:102A30008F917F916F915F914F913F912F910F9067 -:102A40000FBE0F901F9018951F920F920FB60F9206 -:102A500011242F933F934F935F936F937F938F93A3 -:102A60009F93AF93BF93CF93DF93EF93FF93C09167 -:102A7000E900CF708091EC00D82FD17080FDD0E8B4 -:102A80001092E9008091F000877F8093F0007894A5 -:102A90000E9468151092E9008091F0008860809390 -:102AA000F000CD2BCF70C093E900FF91EF91DF9143 -:102AB000CF91BF91AF919F918F917F916F915F91D6 -:102AC0004F913F912F910F900FBE0F901F9018952F -:102AD0001F93CF93DF93CDB7DEB7AA970FB6F894C5 -:102AE000DEBF0FBECDBFE4E1F3E088E08E0F909132 -:102AF000F10091938E13FBCF0E94E6108091E800C5 -:102B000083FF1FC18091140390911503492F50E05A -:102B10004A30510508F015C1FA01EA5AFF4F0C94EA -:102B2000752C803881F0823809F00BC18091180330 -:102B30008F708093E9008091EB0085FB882780F9F6 -:102B40001092E90006C08091100390911103911139 -:102B500082609091E800977F9093E8008093F10065 -:102B60001092F100C8C0282F2D7F09F0EAC08823F9 -:102B700019F0823061F0E5C080911603813009F0D0 -:102B8000E0C0933009F080E0809311032BC0809166 -:102B90001603811127C0809118038F7009F4D1C0EA -:102BA0008093E9002091EB0020FF1CC0933021F4BA -:102BB0008091EB00806214C09091EB009061909343 -:102BC000EB0021E030E0A90102C0440F551F8A95B7 -:102BD000E2F74093EA001092EA008091EB008860EF -:102BE0008093EB001092E9008091E800877F86C017 -:102BF0008111A7C0109116031F778091E3008078A0 -:102C0000812B8093E3008091E800877F8093E80028 -:102C10000E9486138091E80080FFFCCF8091E30042 -:102C200080688093E300111102C082E001C083E05C -:102C30008093130386C08058823008F082C0809150 -:102C40001603909117038C3D53E0950779F583E0C7 -:102C50008A838AE289834FB7F894DE01139620E0D5 -:102C60003EE051E2E32FF0E050935700E49120FF63 -:102C700003C0E295EF703F5FEF708E2F90E0EA3077 -:102C800010F0C79601C0C0968D939D932F5F24319D -:102C900049F74FBF8091E800877F8093E8006AE2A0 -:102CA00070E0CE0101960E948D1214C0AE014F5FFC -:102CB0005F4F609118030E94D411BC01009709F482 -:102CC00040C09091E800977F9093E80089819A81B5 -:102CD0000E94F0128091E8008B778093E80031C069 -:102CE000803879F58091E800877F8093E8008091B3 -:102CF0000F038093F1008091E8008E778093E800C5 -:102D00000E9486131EC081111CC090911603923040 -:102D1000C0F48091E800877F8093E80090930F03D0 -:102D20000E94861380910F03811106C08091E300F9 -:102D300087FD02C081E001C084E0809313030E94FC -:102D4000D2108091E80083FF0AC08091E800877F5D -:102D50008093E8008091EB0080628093EB00AA965C -:102D60000FB6F894DEBF0FBECDBFDF91CF911F919C -:102D700008950895CF93809113038823A1F0C09103 -:102D8000E900CF709091EC00892F817090FD80E870 -:102D9000C82B1092E9008091E80083FD0E9468151D -:102DA000CF70C093E900CF910895909393028093E0 -:102DB00092020895E0919202F0919302309721F0EF -:102DC0000190F081E02D099480E00895E091920255 -:102DD000F0919302309721F00280F381E02D099465 -:102DE0000895E0919202F0919302309721F00480CF -:102DF000F581E02D0994089520919002309191027F -:102E00008217930771F09093910280939002E09162 -:102E10009202F0919302309721F00680F781E02D25 -:102E20000994089520918E0230918F0282179307A2 -:102E300071F090938F0280938E02E0919202F09154 -:102E40009302309721F00084F185E02D09940895D4 -:102E500008950C9428170E94AF220E9400090E9436 -:102E600035230C94E4275F926F927F928F929F920A -:102E7000AF92BF92CF92DF92EF92FF920F931F9388 -:102E8000CF93DF9300D000D01F92CDB7DEB70E9462 -:102E900045099DE9C92E92E0D92E03E010E0AA244D -:102EA000A394B12C502E802F0E94C0094C01F60132 -:102EB000729062906F016826792661147104A1F402 -:102EC0000150110978F78FEF89838A831B820E9452 -:102ED000B8228160782F9D838C8349815A816B81D0 -:102EE0008D810E94E31738C08091F20281FD0E941B -:102EF000C9092BE030E07501022E02C0EE0CFF1C68 -:102F00000A94E2F7C70186219721892B09F12983C9 -:102F10005A828E209F2091E0892809F490E09B83BB -:102F20000E94B8228160782F9D838C8349815A81C9 -:102F30006B818D810E94E317000F111FF801EB5682 -:102F4000FD4F80819181E826F926F182E08204C05C -:102F50002150310980F6B4CF0E941C2510919402B3 -:102F60000E94DA161817D1F00E94DA1680939402A4 -:102F70000F900F900F900F900F90DF91CF911F91B6 -:102F80000F91FF90EF90DF90CF90BF90AF909F9008 -:102F90008F907F906F905F900C94EA080F900F9045 -:102FA0000F900F900F90DF91CF911F910F91FF9095 -:102FB000EF90DF90CF90BF90AF909F908F907F90D9 -:102FC0006F905F900895CF93DF93CDB7DEB72B97C7 -:102FD0000FB6F894DEBF0FBECDBF4F835887698709 -:102FE0007A878B87DE01119686E0FD0111928A9522 -:102FF000E9F785E0FE01379601900D928A95E1F799 -:1030000049815A816B817C818D819E810E945A1EEB -:103010002B960FB6F894DEBF0FBECDBFDF91CF91D8 -:103020000895CF93882309F4C2C0C82F823859F479 -:103030000E94DA1681FDBBC089E30E9434210E9400 -:10304000012289E30CC0833879F40E94DA1680FDEE -:10305000AEC083E50E9434210E94012283E50E94D4 -:103060007621CF910C940122843859F40E94DA160B -:1030700082FD9DC087E40E9434210E94012287E4E2 -:10308000EECF8CEF8C0F813A48F48C2F0E944C27A6 -:1030900081118DC08C2F0E943421E3CF80E28C0FF0 -:1030A000883048F4C77081E001C0880FCA95EAF7FC -:1030B0000E94BA21D6CF8BE58C0F833078F4C53AC5 -:1030C00029F0C63A31F083E890E005C081E890E04D -:1030D00002C082E890E0CF910C94FC1688E58C0F3A -:1030E000833108F064C0C83A39F1C93A41F1CA3AAB -:1030F00049F1CB3A51F1CC3A59F1CD3A61F1C03BAB -:1031000069F1CE3A71F1CF3A79F1C13B81F1C23B1D -:1031100089F1C33B91F1C43B99F1C53BA1F1C63B99 -:10312000A9F1C73BB1F1C83BB9F1C93BC1F1CA3BF9 -:10313000C9F180E090E038C082EE90E035C089EEC1 -:1031400090E032C08AEE90E02FC085EB90E02CC07A -:1031500086EB90E029C087EB90E026C08CEC90E0F5 -:1031600023C08DEC90E020C083E891E01DC08AE888 -:1031700091E01AC082E991E017C084E991E014C09F -:1031800081E292E011C083E292E00EC084E292E01C -:103190000BC085E292E008C086E292E005C087E2BB -:1031A00092E002C08AE292E0CF910C941217CF9184 -:1031B0000895882309F44BC0823859F40E94DA1626 -:1031C00081FF45C089E30E9434210E94012289E3E6 -:1031D0000CC0833871F40E94DA1680FF38C083E592 -:1031E0000E9434210E94012283E50E9476210C94E2 -:1031F0000122843859F40E94DA1682FF28C087E43D -:103200000E9434210E94012287E4EFCF9CEF980FA7 -:10321000913A58F390E2980F983050F4877091E00B -:1032200001C0990F8A95EAF7892F0E94C021DFCF4C -:103230009BE5980F933020F480E090E00C94FC160E -:10324000885A833120F480E090E00C94121708959E -:10325000882321F00E94BA210C940122089588232A -:1032600021F00E94C0210C94012208957F928F9238 -:103270009F92AF92BF92CF92DF92EF92FF920F9305 -:103280001F93CF93DF931F92CDB7DEB77C01C62E7D -:10329000772EFC01058102950F70128111110E9499 -:1032A000D7210E942D21882379F0112369F080E233 -:1032B0008C0D883048F082E00E9416210E942D215A -:1032C00091E0D82ED92601C0D12CE72DE295EF70E0 -:1032D000F0E0E05AFF4F0C94752C872D807F072D6E -:1032E0000F70882311F00295007F112389F00023CD -:1032F00009F499C180E28C0D883020F4802F0E945F -:10330000BA2103C0802F0E94CA210E9401228BC1D2 -:103310008C2D0E94D918002309F4C3C180E28C0DC2 -:10332000883020F4802F0E94C02103C0802F0E948B -:10333000D0210E940122B5C1872D807F972D9F70DB -:10334000803211F4892F03C0892F8295807FCC2091 -:1033500021F0F1E0CF16A1F01DC0112339F00023B8 -:1033600019F1013009F50E94EA219BC1002319F0EF -:10337000013009F496C189830E94ED21898110C131 -:10338000112321F0063008F08CC10EC0053008F082 -:1033900088C106C1112359F0002331F0F70195814E -:1033A00090FF41C19F7095830E9428197AC1002324 -:1033B00009F4F6C03EC1872D86958695837090E00E -:1033C000009719F0019761F06CC1112321F08C2D49 -:1033D000972D937002C080E090E00E94FC1661C1BE -:1033E000112321F08C2D972D937002C080E090E086 -:1033F0000E94121756C18C2D112319F00E9424240B -:1034000002C00E948C240E9411254BC1872D83701D -:1034100009F052C0111145C18C2D82958695877097 -:10342000880F880F9C2D9F70892E912CA12CB12C78 -:10343000082E04C0880C991CAA1CBB1C0A94D2F745 -:10344000C4FE14C00FE010E020E030E0B901A80194 -:1034500004C0440F551F661F771F8A95D2F7CB0112 -:10346000BA01609570958095909503C060E070E01A -:10347000CB01272D26952695237030E0223031058B -:1034800069F02330310589F0682979298A299B2937 -:103490002130310571F00E94A21F03C168297929EA -:1034A0008A299B290E94BE1FFCC00E94A21FC50141 -:1034B000B4010E94861FF5C0112319F0872D817079 -:1034C00001C08695882309F4ECC08C2D82958695E1 -:1034D0008770880F880F9C2D9F70892E912CA12CAE -:1034E000B12C082E04C0880C991CAA1CBB1C0A9481 -:1034F000D2F7C4FE14C00FE010E020E030E0B901C4 -:10350000A80104C0440F551F661F771F8A95D2F784 -:10351000CB01BA01609570958095909503C060E0ED -:1035200070E0CB01272D269526952370422F50E081 -:103530004230510569F04330510589F068297929F5 -:103540008A299B294130510571F00E947C20A9C035 -:10355000682979298A299B290E949820A2C00E9463 -:103560007C20C501B4010E9460209BC08C2D90E09E -:10357000FC01E05EF109E531F10508F050C0E059C9 -:10358000FF4F0C94752C0C2D0F70872D8F7111230C -:1035900021F00E94F91F802F07CF0E941A20802F50 -:1035A0000E942F197EC0112341F0053008F079C028 -:1035B000872D8F710E943F2074C0063008F071C0C3 -:1035C000F7CF112339F0872D8F710E94F91F69C041 -:1035D0001123C9F3872D8F710E941A2062C0112315 -:1035E00029F0872D8F710E94E41F5BC00E94DA1FB3 -:1035F00058C0112351F0172D1F71812F0E94F91F00 -:1036000063E0812F0E940D214CC081E00E941621B1 -:10361000023008F446C082E00E94162142C0112305 -:1036200031F0002381F28C2D0E9411183AC0002342 -:1036300089F28C2D0E94D91834C0472D4F706C2D03 -:10364000C7010E9455030E94FE1E2BC0111129C004 -:10365000472D4F7050E042305105B9F04CF4411500 -:10366000510581F041305105E1F40E940C2819C048 -:103670004330510569F04430510599F48C2D0E9476 -:103680005E280FC00E94F5270CC00E94282809C0A0 -:103690000E943B2806C0472D4F706C2DC7010E9429 -:1036A000CB05DD20F9F00E94092180FD1BC0F70148 -:1036B00012820E9403210E94F91FC7010E94811BF0 -:1036C0000E9403210F90DF91CF911F910F91FF90E6 -:1036D000EF90DF90CF90BF90AF909F908F907F90B2 -:1036E0000C941A200F90DF91CF911F910F91FF90B2 -:1036F000EF90DF90CF90BF90AF909F908F907F9092 -:1037000008950F931F93CF93DF93EC0188819981E4 -:103710002B813C81232BB9F09F3F11F48F3F99F00F -:10372000CE010E94CA03882371F0688179818A8161 -:103730000E94FF208C010E94B4200E947B1FB801D0 -:10374000CE010E943619DF91CF911F910F910895FC -:103750000E94D7210E94E7210E94AC210E940122F1 -:103760000E94C2250E94112580E090E00E94FC1674 -:1037700080E090E00C9412170E94C7210C94A81BC3 -:103780000E94F420292F22952F7030E02C30310533 -:103790004CF42A3031056CF42250310922303105C5 -:1037A000A8F407C02C30310569F02F30310551F0F5 -:1037B0000DC0803F69F018F4803E40F409C0843F9A -:1037C00029F406C093FB882780F9089580E00895C6 -:1037D00081E00895CF93DF9300D000D01F92CDB742 -:1037E000DEB70F900F900F900F900F90DF91CF9159 -:1037F0000895CF93DF9300D000D000D0CDB7DEB7CF -:1038000026960FB6F894DEBF0FBECDBFDF91CF91E5 -:1038100008951F93CF93DF93C0919D0216E080918E -:103820009E02C81799F0D0E01C9FF0011D9FF00D7B -:103830001124E156FD4F4081518162817381848161 -:1038400095810E94F91B2196C770E9CFDF91CF9136 -:103850001F9108954091CF025091D0026091D10202 -:103860007091D2028091D3029091D4020C94F91BF2 -:103870008091D40282958F7009F054C08091D1025A -:10388000882309F44FC080919D02A0919E0260910F -:10389000CF027091D0024091D2025091D302B6E093 -:1038A0008A1709F43FC090E041155105C1F17F3FEF -:1038B00011F46F3FA1F1B89FF001B99FF00D1124F1 -:1038C000E156FD4F218172132AC02081621327C067 -:1038D0002281211124C0238134812417350710F45B -:1038E00021503109241B350B283C3105C0F42091AF -:1038F000D4022F7020612093D40226E0289FF0018B -:10390000299FF00D1124EC55FD4F80818F7080614F -:1039100080838FEC92E00E94811B0C94091C01961D -:103920008770BECF0895CF92DF92EF92FF920F93F0 -:103930001F93CF93DF93CDB7DEB762970FB6F8949E -:10394000DEBF0FBECDBF8C0185E0F801DE011D9604 -:1039500001900D928A95E1F7D8014C9111965C91F6 -:10396000119712966C9112971396CD90DC90149744 -:103970003091CF027091D0028091D2029091D30207 -:10398000009709F46BC17F3F19F43F3F09F466C10A -:10399000E090D102EE2009F4C0C02091D402C816F4 -:1039A000D90628F0F601E81BF90BCF0104C0809579 -:1039B00090958C0D9D1DFF24F394883C910578F023 -:1039C000F12C207F09F0C6C07C2DD98AC88A89894C -:1039D0000E94EA1B8FEC92E00E94811BB1C0822FF3 -:1039E000807F09F046C0751314C0341312C06111F2 -:1039F00010C02F7020612093D4020E942A1C8FECEB -:103A000092E00E94811B8091D402D80115968C937C -:103A10002EC0CD2819F15F3F11F44F3FF9F0F62E7B -:103A200061111CC080919D0220919E0236E0821798 -:103A300009F45AC090E0389FF001399FF00D11242D -:103A4000E156FD4F7181571306C07081471303C0C3 -:103A50007281711103C001968770E9CFF62E66233B -:103A600009F418C18091D40281608093D402F12CB2 -:103A700011C1751308C0341306C0611104C08091D0 -:103A8000D402D801C3C04D875E878D859E856A8B21 -:103A90000E94C01B6A898823E1F16623D1F120913D -:103AA000D402822F82958F7090E0029774F08091FB -:103AB000CF029091D00298878F831986DB86CA86C1 -:103AC0002C87CE0107960E94811B86E0F801AFEC9F -:103AD000B2E001900D928A95E1F70E94381C0E9495 -:103AE0002A1CFF24F394D6C04D875E878D859E8562 -:103AF0000E94F420292F22952F7030E022303105CA -:103B00000CF0BCC09F7009F0B6C0805E883008F42D -:103B1000C1C0C8010E94811BE4CFC816D90608F4B1 -:103B200053C0F601E81BF90BCF01883C910508F45E -:103B300050C0F12C7C2DD98AC88A89890E94EA1B41 -:103B4000EFECF2E086E0DF011D928A95E9F70E9432 -:103B50002A1CA0C0751314C0341312C0611110C008 -:103B60008091D402F8018583C8010E94811B86E000 -:103B7000EFECF2E0DF011D928A95E9F7FE2C8AC096 -:103B80004D875E878D859E856A8B0E94C01B6A89E2 -:103B9000882309F4BECF662309F4BBCF2091D40259 -:103BA000822F82958F7090E002970CF48ECF8091D7 -:103BB000CF029091D0029A8389831B82DD82CC82CE -:103BC0002E83CE0101967FCF809590958C0D9D1D03 -:103BD000ACCFF62E662309F49CCF75132EC0341398 -:103BE0002CC02091D40220FD1FC0822F82958F709F -:103BF000D9F0D80115962C9315978F3049F08F5F27 -:103C0000982F9295907F822F8F70892B15968C9389 -:103C1000C8010E94811B86E0F801AFECB2E0019080 -:103C20000D928A95E1F793CF86E0F801AFECB2E010 -:103C300001900D928A95E1F72DC04D875E878D85A5 -:103C40009E850E94C01B811140CF8091D40281606B -:103C50008093D402C8010E94811B1CC0662309F412 -:103C600058CF4D875E878D859E850E94C01B882317 -:103C700009F44FCF2ACF811148CF0CC02430310531 -:103C80000CF047CF9F7009F440CFF8019581907FE9 -:103C900009F03BCF8F2D62960FB6F894DEBF0FBEB2 -:103CA000CDBFDF91CF911F910F91FF90EF90DF90EB -:103CB000CF9008951F93CF93DF93CDB7DEB72C97A6 -:103CC0000FB6F894DEBF0FBECDBF4F83588769870C -:103CD0007A878B879C87CE0107960E94931C882346 -:103CE00069F08F8198852A853B85232BF1F19F3FD1 -:103CF00009F063C08F3F09F060C037C086E0FE0165 -:103D00003796DE01119601900D928A95E1F76F8149 -:103D10007885EA85FB85309741F17F3F11F46F3F4D -:103D200021F120919E0230E0C90101968770992708 -:103D300040919D0250E08417950709F447C06983BC -:103D40007A83FD83EC8396E0929FD001939FB00D20 -:103D50001124A156BD4FFE01319601900D929A9506 -:103D6000E1F780939E020E94091C16E080919D025B -:103D700090919E028917C1F1189FC00111248156AC -:103D80009D4F0E94931C882379F1E0919D021E9F14 -:103D9000F0011124E156FD4F408151816281738110 -:103DA000848195810E94F91B80919D0290E001968B -:103DB0008770992780939D02D9CF4F815885698557 -:103DC0007A858B859C850E94F91BCFCF0E94BC1BF6 -:103DD00010929E0210929D02EFECF2E086E0DF016D -:103DE0001D928A95E9F7C1CF2C960FB6F894DEBFE5 -:103DF0000FBECDBFDF91CF911F910895EF92FF923B -:103E00000F931F93CF93DF938C01009709F46CC03D -:103E1000F12CEE24E394E8012196F8018491843793 -:103E200040F4843008F051C0813081F0823019F1C3 -:103E30005BC0853709F444C0A8F19CE7980F903720 -:103E400008F052C08F770E94D91841C00E5F1F4FF3 -:103E5000FE01C49180E28C0F883048F4C7708E2D2B -:103E600001C0880FCA95EAF70E94DA2114C08C2F8E -:103E70000E9411182DC00E5F1F4FFE01C49180E2F9 -:103E80008C0F883058F4C7708E2D01C0880FCA95EA -:103E9000EAF70E94E0210E9401221AC08C2F0E94A2 -:103EA000D91816C00E5F1F4FFE01C491CC2381F0BC -:103EB0008FE99FE00197F1F700C00000C150F6CFF5 -:103EC0000E5F1F4FFE01F49003C00E9411188E0177 -:103ED0008F2D882309F49FCFEFE9FFE03197F1F7A9 -:103EE00000C000008150F5CFDF91CF911F910F915D -:103EF000FF90EF90089508956093D9027093DA02CD -:103F00008093DB029093DC020C94A81B0F931F9309 -:103F10000091D9021091DA022091DB023091DC028B -:103F2000DC01CB01802B912BA22BB32B8093D902E8 -:103F30009093DA02A093DB02B093DC021F910F9101 -:103F40000C94A81B0F931F930091D9021091DA02D1 -:103F50002091DB023091DC02DC01CB018023912334 -:103F6000A223B3238093D9029093DA02A093DB02B9 -:103F7000B093DC021F910F910C94A81B0F931F9319 -:103F80000091D9021091DA022091DB023091DC021B -:103F9000DC01CB0180279127A227B3278093D90288 -:103FA0009093DA02A093DB02B093DC021F910F9191 -:103FB0000C94A81B1092D5021092D6021092D70230 -:103FC0001092D8020C94A81B41E050E060E070E031 -:103FD00004C0440F551F661F771F8A95D2F7409380 -:103FE000D5025093D6026093D7027093D8020C94F6 -:103FF000A81B41E050E060E070E004C0440F551F92 -:10400000661F771F8A95D2F78091D5029091D602CC -:10401000A091D702B091D802482B592B6A2B7B2B49 -:104020004093D5025093D6026093D7027093D80282 -:104030000C94A81B41E050E060E070E004C0440F25 -:10404000551F661F771F8A95D2F74095509560954A -:1040500070958091D5029091D602A091D702B0912F -:10406000D802482359236A237B234093D5025093D7 -:10407000D6026093D7027093D8020C94A81B41E03B -:1040800050E060E070E004C0440F551F661F771FCA -:104090008A95D2F78091D5029091D602A091D7024D -:1040A000B091D802482759276A277B274093D50229 -:1040B0005093D6026093D7027093D8020C94A81B39 -:1040C0000F931F930091D5021091D6022091D70231 -:1040D0003091D802DC01CB01802B912BA22BB32B8A -:1040E0008093D5029093D602A093D702B093D802C2 -:1040F0001F910F910C94A81B0F931F930091D50251 -:104100001091D6022091D7023091D802DC01CB0168 -:1041100080239123A223B3238093D5029093D602C8 -:10412000A093D702B093D8021F910F910C94A81BB3 -:104130000F931F930091D5021091D6022091D702C0 -:104140003091D802DC01CB0180279127A227B32729 -:104150008093D5029093D602A093D702B093D80251 -:104160001F910F910C94A81B0895CF92DF92EF92AC -:10417000FF920F931F93CF93DF938C01C090D902CE -:10418000D090DA02E090DB02F090DC028091D50260 -:104190009091D602A091D702B091D802C82AD92A0C -:1041A000EA2AFB2ACFE1D0E0D701C6010C2E04C0D9 -:1041B000B695A795979587950A94D2F780FF06C084 -:1041C000B8018C2F0E945008019721F4219760F7C5 -:1041D00080E001C08C2FDF91CF911F910F91FF9054 -:1041E000EF90DF90CF900895CF93DF93EC010E9482 -:1041F000B520BE010E945008DF91CF910895CB01F8 -:104200000E94F42008958091DD028595859585951D -:1042100008958091DD028770089598E0899F90014C -:104220001124262B2093DD020C94F91F2091DD022E -:10423000809582238093DD02982F977069F430E097 -:10424000482F552747FD50952417350729F08595A8 -:10425000859585950C941A2008959091DD029770AC -:1042600081E009F480E0089590911501992321F0EF -:1042700090911601911109C02091170130911801F8 -:10428000F90132969FEF40E01FC0982F96959695C2 -:1042900096959F3050F5E0911701F0911801E90FC4 -:1042A000F11D877021E030E0A90102C0440F551FC5 -:1042B0008A95E2F7CA019181892B818308959F3FF6 -:1042C00039F04F5F4E3041F051915813F8CF0DC087 -:1042D0005111F7CF942FF5CF9F3F39F0F901E90F36 -:1042E000F11D97FDFA958283089508959091150127 -:1042F000992321F090911601911109C02091170185 -:1043000030911801F9013296205F3F4F1FC0982F5E -:104310009695969596959F30F0F4E0911701F0915F -:104320001801E90FF11D877021E030E0A90102C0FA -:10433000440F551F8A95E2F7CA0180959181892320 -:10434000818308953196E217F30729F0908198133D -:10435000F9CF1082F7CF089581E090E0E091170146 -:10436000F0911801E80FF91F108201968031910534 -:10437000A9F708959091F102892B8093F102089595 -:1043800080959091F10289238093F1020895109213 -:10439000F10208959091F002892B8093F002089524 -:1043A00080959091F00289238093F00208951092F5 -:1043B000F00208959091EF02892B8093EF02089507 -:1043C00080959091EF0289238093EF0208951092D7 -:1043D000EF0208958093DE0208951092DE020895A0 -:1043E0008091170190911801FC0131969C01205F8A -:1043F0003F4F80E0919191118F5FE217F307D1F762 -:104400000895E0911701F09118018091F1028083E5 -:10441000E0911701F091180190818091F002892BB1 -:104420008083E0911701F091180190818091EF0253 -:10443000892B80838091DE02882361F0E09117014F -:10444000F09118019081892B80830E94F0218111C5 -:104450001092DE0280911701909118010C94E616DB -:1044600020E0009739F0AC01415051098423952395 -:104470002F5FF7CF822F089580911303843039F195 -:104480001092F30220E488E190E00FB6F894A8952A -:10449000809360000FBE2093600080E00E94BC0209 -:1044A00080E00E94EA0883B7817F846083BF83B77E -:1044B000816083BF7894889583B78E7F83BF88E1BE -:1044C0000FB6F89480936000109260000FBE0895BC -:1044D0000895089580E00E94BC020E9468220E9414 -:1044E00045090E9469220E94CA0991E0811101C018 -:1044F00090E0892F08950E94BC1B80E00E94BC02BE -:104500000E94E4270E94DA160C94EA081F920F9288 -:104510000FB60F9211248F939F93AF93BF93809107 -:10452000F302811113C08091F4029091F502A091E1 -:10453000F602B091F7024196A11DB11D8093F402DD -:104540009093F502A093F602B093F702BF91AF915A -:104550009F918F910F900FBE0F901F90189582E042 -:1045600084BD93E095BD9AEF97BD80936E0008954A -:104570002FB7F8948091F4029091F502A091F60281 -:10458000B091F7022FBF0895CF92DF92EF92FF9282 -:104590000F931F932FB7F8944091F4025091F502B6 -:1045A0006091F6027091F7022FBF6A017B01EE2441 -:1045B000FF248C0120E030E0C016D106E206F306AD -:1045C00010F4415051099A01281B390BC9011F9160 -:1045D0000F91FF90EF90DF90CF9008951F920F9270 -:1045E0000FB60F9211248F939F93AF93BF93809137 -:1045F000F4029091F502A091F602B091F7020196B3 -:10460000A11DB11D8093F4029093F502A093F602D0 -:10461000B093F702BF91AF919F918F910F900FBE12 -:104620000F901F9018950E94D713F8942FEF87EAE8 -:1046300091E6215080409040E1F700C0000087E003 -:1046400090EBDC0180931E0390931F03A093200343 -:10465000B09321039CE088E10FB6F894A89580936D -:1046600060000FBE90936000FFCF0E947423811101 -:1046700002C00E9450230E947F238093F2020E9476 -:10468000872380931C0387FB882780F9809316017A -:104690000E948323682F70E080E090E00C947C1FE0 -:1046A0006DEE7EEF80E090E00E949B2C60E082E067 -:1046B00090E00E94892C60E083E090E00E94892CC9 -:1046C00060E084E090E00E94892C60E085E090E06A -:1046D0000E94892C60E086E090E00E94892C6FEFB8 -:1046E00087E090E00C94892C80E090E00E94832C7D -:1046F00021E08D3E9E4F09F020E0822F089582E058 -:1047000090E00C947B2C83E090E00C947B2C84E074 -:1047100090E00C947B2C682F84E090E00C94892C22 -:1047200086E090E00C947B2C682F86E090E00C945F -:10473000892C87E090E00C947B2C682F87E090E038 -:104740000C94892C8091FA0280FF0BC060911C01AF -:1047500085E0689FB00111247595679575956795FB -:104760002BC081FF09C060911C0185E0689FB001EA -:1047700011247595679520C082FF07C060911C01C8 -:1047800085E0689FB001112417C09091FB02992326 -:10479000D1F060911B01961788F720911C0185E0EC -:1047A000289F90011124929FA001939F500D1124E6 -:1047B00070E0CA010E94612C6038710540F46115F7 -:1047C000710539F002C065E070E0862F08958FE72B -:1047D000089581E008958091FA0280FF08C06091F9 -:1047E0001A0170E0759567957595679521C081FFF1 -:1047F00006C060911A0170E07595679519C082FF37 -:1048000004C060911A0170E010C09091FB029923DE -:10481000C1F0609119019617A0F780911A01899F44 -:10482000C001112470E00E94612C6038710528F4E9 -:104830006115710521F0862F08958FE7089581E0B5 -:10484000089561E070E0F4CF803F21F40E94A2233C -:10485000819504C0813F29F40E94A2238093FE0227 -:104860000895823F21F40E94A223819504C0833FD2 -:1048700029F40E94A2238093FD020895893F19F430 -:104880000E94EB2305C08A3F31F40E94EB238195FF -:104890008093FF0208958B3F21F40E94EB238195C2 -:1048A00004C08C3F29F40E94EB23809300030895F9 -:1048B000843F21F48091FC02816017C0853F21F480 -:1048C0008091FC02826011C0863F21F48091FC023D -:1048D00084600BC0873F21F48091FC02886005C092 -:1048E000883F31F48091FC0280618093FC0208953E -:1048F0008D3F21F48091FA0281600BC08E3F21F43C -:104900008091FA02826005C08F3F29F48091FA02FB -:1049100084608093FA020895803F39F48091FE020A -:1049200087FF6CC01092FE0269C0813F29F480911C -:10493000FE021816BCF362C09091FD02823F29F47A -:1049400097FF5CC01092FD0259C0833F19F41916FD -:10495000CCF354C0893F41F48091FF0218160CF04B -:104960004DC01092FF024AC08A3F29F48091FF0295 -:1049700087FF44C0F6CF8B3F39F48091000387FF57 -:104980003DC0109200033AC08C3F29F4809100038F -:104990001816BCF333C0843F21F48091FC028E7F53 -:1049A00017C0853F21F48091FC028D7F11C0863FA6 -:1049B00021F48091FC028B7F0BC0873F21F4809112 -:1049C000FC02877F05C0883F31F48091FC028F7E16 -:1049D0008093FC0213C08D3F21F48091FA028E7FF8 -:1049E0000BC08E3F21F48091FA028D7F05C08F3F6E -:1049F00029F48091FA028B7F8093FA028091FD0264 -:104A000081110EC08091FE0281110AC08091FF02C7 -:104A1000811106C080910003811102C01092FB0237 -:104A200008958CEF92E00E94F1160E94B8229093B4 -:104A3000F9028093F80208951F93CF93DF9380913A -:104A4000F8029091F9020E94C422AC019091FB02FD -:104A5000992321F020911D0130E006C020911E0114 -:104A60008AE0289F900111244217530708F486C05A -:104A70008091FD02C091FE02D091FF0210910003CF -:104A8000811107C0C11176C0D11174C0111172C05B -:104A900075C09F3F19F09F5F9093FB02181624F496 -:104AA0000E94A2238093FD028091FD0287FF05C032 -:104AB0000E94A22381958093FD021C1624F40E947B -:104AC000A2238093FE028091FE0287FF05C00E9410 -:104AD000A22381958093FE026091FD02662339F145 -:104AE000C091FE02CC2319F1772767FD7095872FBF -:104AF000972F0E94832923E333E343E35FE30E947C -:104B0000932A0E9450296093FD026C2F772767FD3E -:104B10007095872F972F0E94832923E333E343E384 -:104B20005FE30E94932A0E9450296093FE021D16A3 -:104B300024F40E94EB238093FF028091FF0287FF01 -:104B400005C00E94EB2381958093FF02111624F487 -:104B50000E94EB23809300038091000387FF05C030 -:104B60000E94EB23819580930003DF91CF911F91E9 -:104B70000C9411259F3F09F08ECF96CFDF91CF91F6 -:104B80001F910895ECEFF2E085E0DF011D928A9518 -:104B9000E9F71092FB021092FA020895833081F136 -:104BA00028F4813059F08230D1F00895853009F42D -:104BB00049C0B8F1863009F456C0089580911E01AD -:104BC000262F30E0280F311D2F3F310524F4680FC8 -:104BD00060931E0108958FEF80931E0108958091C8 -:104BE0001D01262F30E0280F311D2F3F310524F401 -:104BF000680F60931D0108958FEF80931D01089544 -:104C000080911C01262F30E0280F311D2F3F3105E8 -:104C100024F4680F60931C0108958FEF80931C01AA -:104C2000089580911B01262F30E0280F311D2F3F62 -:104C3000310524F4680F60931B0108958FEF809372 -:104C40001B01089580911A01262F30E0280F311D95 -:104C50002F3F310524F4680F60931A0108958FEFF8 -:104C600080931A01089580911901262F30E0280FB2 -:104C7000311D2F3F310524F4680F60931901089509 -:104C80008FEF809319010895833011F128F481305A -:104C900049F0823091F00895853081F120F186301D -:104CA000C1F1089580911E01681720F4861B80933E -:104CB0001E01089510921E01089580911D0168172C -:104CC00020F4861B80931D01089510921D01089504 -:104CD00080911C01681720F4861B80931C010895A5 -:104CE00010921C01089580911B01681720F4861B07 -:104CF00080931B01089510921B01089580911A0161 -:104D0000681720F4861B80931A01089510921A01E7 -:104D1000089580911901681720F4861B809319016A -:104D200008951092190108950F931F93873208F088 -:104D300048C08E3108F08DC0803109F477C008F585 -:104D4000873009F461C068F4863009F09DC0809115 -:104D5000F202817F8E7F8093F20281E080930203D2 -:104D600094C08B3009F489C08E3009F08DC08091D9 -:104D7000F20282FB222720F991E0922790FB82F930 -:104D80005EC0863109F479C060F4813109F07CC0DD -:104D90000E94BC1B9091160181E089278093160127 -:104DA0006CC0893109F469C08B3109F06DC0809104 -:104DB000F20281FB222720F991E0922790FB81F9F2 -:104DC0003EC0883309F459C050F4893209F457C001 -:104DD000853309F454C0873209F451C055C0833477 -:104DE00009F44DC028F48A3308F44EC0895332C008 -:104DF000883409F049C00E94BC1B0E94FA090E9435 -:104E0000C1030E94132339C09091F202892F80952B -:104E1000817080FB90F929F0966098609093F2027F -:104E200034C0997F977F9093F20227C08091F2025D -:104E300083FB222720F991E0922790FB83F980934E -:104E4000F2029923D1F08091F20281608093F20204 -:104E500014C08D5141E050E060E070E08A019B0198 -:104E600004C0000F111F221F331F8A95D2F7C901FA -:104E7000B8010E947C1F0E94BC1B81E006C061E05B -:104E800070E080E090E0F5CF80E01F910F910895F1 -:104E900080E0089580E00895CF93C82F80910203A9 -:104EA000813069F018F08230C9F184C0E0911701B7 -:104EB000F09118018081823209F07EC007C0E09134 -:104EC0001701F09118018081823261F48C2F0E94C9 -:104ED0004827811104C08C2F0E9494261DC081E0B8 -:104EE00090E01AC08C2F0E944A27811114C0C4314F -:104EF00079F048F4CB3079F0C03109F061C082E03C -:104F00008093020308C0C93219F0C83321F058C099 -:104F10001092020355C081E0817054C0C93291F1F2 -:104F200020F5C43179F1B0F4C73009F047C08EE103 -:104F300080931E0182E380931D018AE080931C010F -:104F400084E180931B0188E080931A0188E28093BA -:104F5000190134C0CE51C63088F5EC2FF0E0EA5488 -:104F6000FE4F80818093010329C0CE34E9F020F404 -:104F7000CB3421F56AE013C0C13579F0C235F1F4C4 -:104F800061E00DC080910103882319F010920103A4 -:104F900015C081E08093020315C061E006C08091D6 -:104FA00001030E94CE250AC06AE0809101030E949D -:104FB000442604C01092020380E004C081E002C0D5 -:104FC00080E0AACFCF9108950E947423811102C07E -:104FD0000E9450230E94902380931D0380FF02C0F3 -:104FE000869501C080E00C94BC0280911D03982F2F -:104FF0009695292F30E0233031054CF49F5F990FAF -:105000008170892B816080931D030E94942380917D -:105010001D0386950C94BC0280911D03982F9695D4 -:1050200091F09158990F8170892B80931D038E7F89 -:1050300091E009F490E080911D0390FB80F980934A -:105040001D030E94942380911D0386950C94BC023D -:1050500080911D03982F909590FB80F980931D03FC -:105060000E94942380911D0380FF02C0869501C099 -:1050700080E00C94BC0290911D03892F86958F5F70 -:105080008F779170843028F4880F892B80931D03CB -:1050900002C090931D0380911D038E7F91E009F45F -:1050A00090E080911D0390FB80F980931D030E9486 -:1050B000942380911D0386950C94BC0220911D03BE -:1050C000922F96958927982F990F822F8170892B7F -:1050D00080931D038E7F91E009F490E080911D0381 -:1050E00090FB80F980931D030E94942380911D03FF -:1050F00086950C94BC0280911D03869508955058A6 -:10510000BB27AA270ED0D1C1C2D130F0C7D120F021 -:1051100031F49F3F11F41EF4B7C10EF4E095E7FBA4 -:105120009FC1E92FD3D180F3BA17620773078407B1 -:10513000950718F071F49EF5EBC10EF4E0950B2E77 -:10514000BA2FA02D0B01B90190010C01CA01A001D9 -:105150001124FF27591B99F0593F50F4503E68F134 -:105160001A16F040A22F232F342F4427585FF3CF75 -:10517000469537952795A795F0405395C9F77EF446 -:105180001F16BA0B620B730B840BBAF09150A1F08F -:10519000FF0FBB1F661F771F881FC2F70EC0BA0F15 -:1051A000621F731F841F48F4879577956795B7959D -:1051B000F7959E3F08F0B3CF9395880F08F0992795 -:1051C000EE0F97958795089527D108F481E008950B -:1051D0000CD06BC163D140F05AD130F021F45F3F65 -:1051E00019F03EC1511195C14FC170D198F3992367 -:1051F000C9F35523B1F3951B550BBB27AA2762179B -:105200007307840738F09F5F5F4F220F331F441FDF -:10521000AA1FA9F333D00E2E3AF0E0E830D0915017 -:105220005040E695001CCAF729D0FE2F27D0660F04 -:10523000771F881FBB1F261737074807AB07B0E843 -:1052400009F0BB0B802DBF01FF2793585F4F2AF059 -:105250009E3F510568F004C15CC15F3FECF3983E8E -:10526000DCF3869577956795B795F7959F5FC9F7B6 -:10527000880F911D9695879597F90895E1E0660F3F -:10528000771F881FBB1F621773078407BA0720F0B8 -:10529000621B730B840BBA0BEE1F88F7E095089521 -:1052A00004D06894B11135C1089518D188F09F5782 -:1052B00090F0B92F9927B751A0F0D1F0660F771F62 -:1052C000881F991F1AF0BA95C9F712C0B13081F042 -:1052D0001FD1B1E008951CC1672F782F8827B85FD0 -:1052E00039F0B93FCCF3869577956795B395D9F7A3 -:1052F0003EF490958095709561957F4F8F4F9F4FAD -:105300000895E89409C097FB3EF4909580957095B8 -:1053100061957F4F8F4F9F4F9923A9F0F92F96E901 -:10532000BB279395F695879577956795B795F11176 -:10533000F8CFFAF4BB0F11F460FF1BC06F5F7F4F13 -:105340008F4F9F4F16C0882311F096E911C0772325 -:1053500021F09EE8872F762F05C0662371F096E82E -:10536000862F70E060E02AF09A95660F771F881FFD -:10537000DAF7880F9695879597F9089588D018F0F1 -:1053800011F08CD038F480C0C4C0E92F9FD0B0F3A6 -:105390005523C9F3E7FB6217730784079507A8F144 -:1053A00099F3E92FFF2788232AF03197660F771F9B -:1053B000881FDAF7952F5527442332F0915050403B -:1053C000220F331F441FD2F7BB27E91BF50B621BCB -:1053D000730B840BB109C1F222F4620F731F841F97 -:1053E000B11D31972AF0660F771F881FBB1FEFCFC3 -:1053F000915050405AF041F0882332F0660F771FE9 -:10540000881F91505040C1F7939530C0869577958D -:1054100067959F5FD9F7F8CF990F0008550FAA0B32 -:10542000E0E8FEEF16161706E807F907C0F01216B7 -:105430001306E407F50798F0621B730B840B950BBA -:1054400039F40A2661F0232B242B252B21F408950F -:105450000A2609F4A140A6958FEF811D811D0895AC -:1054600097F99F6780E870E060E008959F3F31F012 -:10547000915020F4879577956795B795880F911D82 -:105480009695879597F908959FEF80EC08950024ED -:105490000A941616170618060906089500240A9499 -:1054A00012161306140605060895092E0394000C1F -:1054B00011F4882352F0BB0F40F4BF2B11F460FFAE -:1054C00004C06F5F7F4F8F4F9F4F089557FD9058D7 -:1054D000440F551F59F05F3F71F04795880F97FBB8 -:1054E000991F61F09F3F79F0879508951216130672 -:1054F0001406551FF2CF4695F1DF08C016161706A1 -:105500001806991FF1CF86957105610508940895D5 -:10551000E894BB2766277727CB0197F908957CDFAE -:1055200008F48FEF08950BD0C0CFB1DF28F0B6DFBD -:1055300018F0952309F094CFA7CF1124EACFC6DF46 -:10554000A0F3959FD1F3950F50E0551F629FF00196 -:10555000729FBB27F00DB11D639FAA27F00DB11DEF -:10556000AA1F649F6627B00DA11D661F829F222778 -:10557000B00DA11D621F739FB00DA11D621F839FFF -:10558000A00D611D221F749F3327A00D611D231FD5 -:10559000849F600D211D822F762F6A2F11249F5723 -:1055A00050408AF0E1F088234AF0EE0FFF1FBB1F46 -:1055B000661F771F881F91505040A9F79E3F5105E5 -:1055C00070F04ECFA6CF5F3FECF3983EDCF38695AC -:1055D00077956795B795F795E7959F5FC1F7FE2B90 -:1055E000880F911D9695879597F90895FA01EE0F0A -:1055F000FF1F30962105310599F16115710561F4A0 -:105600008038BFE39B0749F168949038810561F0C9 -:105610008038BFEF9B0741F0992342F5FF3FE1053A -:105620003105210511F1E8940894E795D901AA23E1 -:1056300029F4AB2FBE2FF85FD0F310C0FF5F70F4DA -:10564000A695E0F7F73950F019F0FF3A38F49F7754 -:105650009F930CD00F9007FC905808953EF014CF04 -:1056600060E070E080E89FE308954FE79F775F93E5 -:105670004F933F932F939ED02F913F914F915F91E6 -:1056800052DF05C019F40EF0EBCE42CFFDCE26DF7F -:10569000C8F39638C0F707F80F92E8942BE33AEA7C -:1056A00048EB5FE74EDF0F920F920F924DB75EB758 -:1056B0000F92C0D0EAE0F1E016D04F915F91EF91E8 -:1056C000FF91E595EE1FFF1F49F0FE57E068442764 -:1056D000EE0F441FFA95E1F74195550B32D00F902C -:1056E00007FE26C00895DF93CF931F930F93FF9279 -:1056F000EF92DF927B018C01689405C0DA2EEF01F6 -:105700001EDFFE01E894A5912591359145915591B3 -:10571000AEF3EF0106DDFE019701A801DA9479F7F7 -:10572000DF90EF90FF900F911F91CF91DF9108953F -:105730009B01AC0160E070E080E89FE349CD90CE32 -:1057400095CECCDEE8F39923D9F3940F511DBBF32A -:105750009150504094F059F0882332F0660F771F33 -:10576000881F91505040C1F79E3F510544F7880F64 -:10577000911D9695879597F908955F3FACF0983EF7 -:105780009CF0BB27869577956795B79508F4B1602F -:105790009395C1F7BB0F58F711F460FFE8CF6F5F27 -:1057A0007F4F8F4F9F4FE3CFB4CE0EF05FCE6CCEC6 -:1057B000689456CE93DEC8F39923D1F3C6F3DF93F2 -:1057C000CF931F930F93FF92C92FDD2788232AF0D1 -:1057D0002197660F771F881FDAF720E030E040E856 -:1057E0005FEB9FE3883920F0803E30F021968F7781 -:1057F00087DCE2E3F1E003C083DCEFE5F1E073DF97 -:105800008B01BE01EC01FB2E6F5771097595771F57 -:10581000880B990B78DD28E132E741E35FE38FDE07 -:10582000AF2D9801AE01FF900F911F91CF91DF91A5 -:1058300078DC3BCEFA01DC01AA0FBB1F9B01AC0157 -:10584000BF5728F422273327442750781FC0B75169 -:1058500088F4AB2F0024469537952795011CA39516 -:10586000D2F3002069F0220F331F441FB395DAF3FF -:105870000DD045CC61307105A0E88A07B94630F4F7 -:105880009B01AC016627772788279078309621F016 -:1058900020833183428353830895AA1BBB1B51E1AC -:1058A00007C0AA1FBB1FA617B70710F0A61BB70B90 -:1058B000881F991F5A95A9F780959095BC01CD0135 -:1058C000089597FB072E16F4009407D077FD09D0B2 -:1058D0000E944D2C07FC05D03EF4909581959F4F7A -:1058E0000895709561957F4F0895EE0FFF1F059005 -:1058F000F491E02D0994F999FECF92BD81BDF89AFB -:10590000992780B50895A8E1B0E042E050E00C94FA -:10591000A32C262FF999FECF92BD81BDF89A01974D -:1059200000B4021639F01FBA20BD0FB6F894FA9AE7 -:10593000F99A0FBE08950196272F0E948A2C0C9485 -:10594000892CDC01CB01FC01F999FECF06C0F2BD28 -:10595000E1BDF89A319600B40D9241505040B8F72D -:065960000895F894FFCF4A -:10596600640007000CFF0000003F64DE0F6C104966 -:10597600101510E10F0101DF022808140A321E007B -:1059860002040507090B0C0E1011131517181A1C23 -:105996001D1F2123242628292B2D2F30323435375D -:1059A600393B1F0F03764F5F6F7F4969437909596A -:1059B60053633149803F5D8B803FF8BF803FCAE12A -:1059C600803F73ED803FCAE1803FF8BF803F5D8B2B -:1059D600803F3149803F0000803FF16D7F3F75EA8F -:1059E6007E3F4C827E3F833F7E3F84287E3F833FBF -:1059F6007E3F4C827E3F75EA7E3FF16D7F3F000021 -:105A0600803F3F4D3639830436040004C7035A03EA -:105A160073038C03A50301020304050607080900A6 -:00000001FF diff --git a/keyboards/planck/keymaps/angerthosenear/compiled.hex b/keyboards/planck/keymaps/angerthosenear/compiled.hex deleted file mode 100644 index b584d6a93..000000000 --- a/keyboards/planck/keymaps/angerthosenear/compiled.hex +++ /dev/null @@ -1,1449 +0,0 @@ -:100000000C9496020C94DA020C94DA020C94DA0244 -:100010000C94DA020C94DA020C94DA020C94DA02F0 -:100020000C94DA020C94DA020C9478140C944A15AD -:100030000C94AC220C94DA020C94DA020C94DA02DE -:100040000C94DA020C943C030C94DA020C94DA025D -:100050000C94DA020C9414230C94DA020C94DA0255 -:100060000C94DA020C94DA020C94DA020C94DA02A0 -:100070000C94DA020C94DA020C94DA020C94DA0290 -:100080000C94ED0A0C94DA020C94DA020C94DA0265 -:100090000C94DA020C94DA020C94DA020C94DA0270 -:1000A0000C94DA020C94DA020C94DA02B715D91522 -:1000B000C716D915C7161E164116C7169616A916C5 -:1000C00093199319C219C219011A211A771B771BA8 -:1000D0002C1A771BDC1ADC1A431B4C1B771B711B79 -:1000E000E91AE91AE91AE91AE91AE91AE91AE91AF8 -:1000F000E91AE91AE91AE91AE91AE91AE91AE91AE8 -:10010000F91A071B0E1B151B1F1B07634236B79BF3 -:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 -:100120005763BD6DEDFD753EF6177231BF000000DF -:10013000803F08000000BE922449123EABAAAA2AC2 -:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD -:1001500000000000BF000000803F00000000000819 -:100160004178D3BB4387D1133D190E3CC3BD4282B6 -:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 -:10018000FFBE01C4FF7F3F00000000000000000030 -:1001900000000000000000010204060A0F17202CD6 -:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 -:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF -:1001C0000201000000000000000000000000F1A299 -:1001D000F1A3018C028C290014001A0008001500FC -:1001E00017001C0018000C00120013002A002B003E -:1001F00004001600070009000A000B000D000E00A5 -:100200000F0033002800E1001D001B00060019004C -:100210000500110010003600370038003400E000FF -:10022000E300E200835002202C002C00012050004B -:10023000510052004F0001000100010001000100C7 -:1002400001005F00600061005400560001000100E1 -:10025000010001000100010001005C005D005E0082 -:1002600055005700010001000100010001000100DC -:10027000010059005A005B006300580001000100B2 -:1002800001000100010002202C0062000120010099 -:1002900001000100010035001E001F0020002100A8 -:1002A0002200230024002500260027000100010071 -:1002B0000320042048120100010001002D002E003F -:1002C0002F00300031000100440045006800690043 -:1002D0006A006B006C006D006E006F000100010091 -:1002E00001000100010001000100AC000120AB0091 -:1002F000AA00A900AE0035021E021F022002210240 -:100300002202230224022502260227024C000100B9 -:100310000320042048120100010001002D022E02DA -:100320002F023002310201003A003B003C003D0048 -:100330003E003F0040004100420043000100010038 -:1003400001000100010002200100010001004A003B -:100350004E004B004D00280354006800650020004B -:1003600050006C0061006E0063006B0020004B00C9 -:100370006500790062006F00610072006400000097 -:100380002C034F007200740068006F006C0069005D -:100390006E0065006100720020004B00650079006E -:1003A00062006F00610072006400730000000403CB -:1003B000090409026D00040100A0FA09040000010B -:1003C00003010100092111010001223F00070581FD -:1003D0000308000A090401000103010200092111B8 -:1003E000010001224D000705820308000A090402EA -:1003F000000103000000092111010001223600075D -:1004000005830308000A0904030001030000000932 -:100410002111010001223900070584031000011297 -:1004200001100100000008EDFE6060010001020003 -:100430000105010906A101050719E029E7150025B5 -:1004400001950875018102050819012905950575B1 -:10045000019102950175039101050719002977158E -:10046000002501957875018102C005010980A1016F -:10047000850216010026B7001A01002AB700751080 -:1004800095018100C0050C0901A101850316010039 -:10049000269C021A01002A9C02751095018100C059 -:1004A00005010902A1010901A10005091901290598 -:1004B00015002501950575018102950175038101DE -:1004C0000501093009311581257F950275088106DE -:1004D00009381581257F950175088106050C0A38B4 -:1004E000021581257F950175088106C0C0050109A7 -:1004F00006A101050719E029E715002501950875F2 -:1005000001810295017508810105081901290595E8 -:1005100005750191029501750391010507190029DF -:10052000FF150025FF950675088100C011241FBE28 -:10053000CFEFDAE0DEBFCDBF04B603FE24C080916A -:100540001E0390911F03A0912003B09121038730D7 -:10055000904BA740B04BB9F410921E0310921F03AA -:10056000109220031092210314BE84B7877F84BFAA -:1005700088E10FB6F89480936000109260000FBE7F -:10058000E0E0F8E3099511E0A0E0B1E0E2EBF9E585 -:1005900002C005900D92A03CB107D9F713E0A0EC82 -:1005A000B1E001C01D92AE31B107E1F70E94BE116A -:1005B0000C94D72C0C9400000895089581E00895C0 -:1005C00008950C94DD020C94DE020C94E0020E946B -:1005D000A12823E030E0281B3109220F2093C40119 -:1005E0000895282F2F9880918000211108C0877FBF -:1005F0008093800010928D0010928C001BC0886048 -:1006000080938000233019F48FEF9FEF0FC083E0B9 -:1006100090E0821B9109880F991F2FEF3FEFA901EE -:1006200002C0569547958A95E2F7CA0190938D00CE -:1006300080938C000C94E7020E94E70284E0809390 -:10064000C3011092C0010895279A2F988FEF9FEF52 -:1006500090938700809386008AE08093800089E1F0 -:10066000809381000E940A280C941C030E9424039A -:100670006E9A769A0C94DC021F920F920FB60F922C -:1006800011242F933F938F939F93EF93FF93E091C8 -:10069000C101F091C201CF0101969093C2018093F4 -:1006A000C1010090C30102C0F695E7950A94E2F7F4 -:1006B000EF738091C001823019F4E03251F404C02C -:1006C000813039F4EF3329F480916F008D7F80936E -:1006D0006F00F0E0E457FE4FE49121E031E0E29F4B -:1006E000C001E39F900D11240090C40102C09695B3 -:1006F00087950A94E2F790938D0080938C00FF9188 -:10070000EF919F918F913F912F910F900FBE0F907E -:100710001F90189581E008950C948A0308950C9415 -:10072000360380911502882309F448C08091D101D5 -:100730009091D201009779F40E94DE229093D20129 -:100740008093D1018091D30190E0009771F4809162 -:10075000D40190E00AC00E94EA2220910001309169 -:1007600001012817390740F329C00197880F991F05 -:10077000880F991FFC01EB52FE4F608171818281CD -:1007800093810E94530AE091D30184E0E89FF00135 -:100790001124EB52FE4F60817181828193814FE081 -:1007A00050E00E940B0E8091D30190E00196609181 -:1007B000D40170E00E94872C8093D3010C94E10255 -:1007C000109217020C94200A0895089581E08093F6 -:1007D00017020C94E503089508958F929F92AF92AB -:1007E000BF92EF92FF920F931F93CF93DF93CDB7FA -:1007F000DEB7A3970FB6F894DEBF0FBECDBF7C0166 -:10080000FC0100811181C8010E94DB20B8010E9417 -:10081000F2058C01B7010E948C03882309F4CCC136 -:100820000032F0E51F0741F4F7018281882309F4C3 -:1008300058C00E946F0EC0C10132F0E51F0741F49D -:10084000F7018281882309F44CC00E94780EB4C15C -:100850000232F0E51F0751F4F7018281882309F481 -:1008600040C00E946B0E8111F0CFE3CF0332F0E560 -:100870001F0739F4F7018281882399F10E94E6036A -:100880009BC10432F0E51F0739F4F7018281882308 -:1008900041F10E94E00390C10532F0E51F0749F4E1 -:1008A000F70182818823E9F0809117028111F1CF4D -:1008B000E5CF0632F0E51F0739F4F701828188237E -:1008C00081F00E947F0E0AC00732F0E51F0749F44D -:1008D000F7018281882329F00E948A0E0E94EC038E -:1008E0006BC180911702811105C0F70182818111CE -:1008F000CFC018C1003E110579F4F7018281882329 -:1009000009F44DC00E94200A81E0809316021092E3 -:1009100015021092D40150C1023E110559F4F7019D -:1009200082818823E1F10E94200A1092160210921F -:10093000150242C1033E110591F4F701828188231B -:1009400071F10E94200A1092160281E08093150234 -:100950001092D3011092D2011092D1012DC1023513 -:10096000110559F4F7018281882309F425C180918A -:100970000001909101010A970DC00135110579F42C -:10098000F7018281882309F417C1809100019091B9 -:1009900001010A9690930101809300010DC14091DD -:1009A000040183E2EFE1F1E0DE01119601900D9286 -:1009B0008A95E1F7F701808121E030E02C0F3D1F9F -:1009C000280F311DC9012091020130910301FC0162 -:1009D000E20FF31F6081772767FD7095640F711D2B -:1009E000882777FD8095982F0E94A92920E030E084 -:1009F00040E451E40E940E294B015C01F701218182 -:100A000084E090E0821B9109BC01882777FD8095E6 -:100A1000982F0E94A9299B01AC01C501B4010E9435 -:100A2000A6289B01AC0160E070E080E090E40E94A9 -:100A30001C2B20E030E04CED50E40E94B92A4B0121 -:100A40005C01F70182818823D1F04FE050E0C501BD -:100A5000B4010E940B0E809116028823A1F08091B0 -:100A6000D40124E0829FF0011124EB52FE4F8082DA -:100A70009182A282B3828F5F8093D40104C0C501AA -:100A8000B4010E94530A0F3F110508F02ECF94C005 -:100A90008091D00181111FC0043130E5130709F0A6 -:100AA00051C00E948E0381E08093D0010E94DE221B -:100AB0009093CF018093CE011092C7011092C9018B -:100AC0001092C8011092CB011092CA011092CD0170 -:100AD0001092CC0171C08091CE019091CF010E9403 -:100AE000EA22883C910570F48091C701E82FF0E07C -:100AF000EE0FFF1FE853FE4F118300838F5F80933B -:100B0000C7015AC0043880E5180721F005381045A0 -:100B100001F13AC0F7018281882341F01092C501AA -:100B200082E01EC0043830E5130759F58091C501F5 -:100B3000811106C086E20E94371886E20E94FF18E3 -:100B400082E01CC00438F0E51F0741F3053810456A -:100B5000D9F4F7018281882331F01092C60180E236 -:100B60000E944E1929C08091C601811106C087E2FA -:100B70000E94371887E20E94FF1880E20E945519F0 -:100B80001BC00538104529F381E08093C50180938F -:100B9000C601C701A3960FB6F894DEBF0FBECDBF46 -:100BA000DF91CF911F910F91FF90EF90BF90AF9089 -:100BB0009F908F900C94E30280E0A3960FB6F89478 -:100BC000DEBF0FBECDBFDF91CF911F910F91FF9080 -:100BD000EF90BF90AF909F908F90089580E090E04D -:100BE000089508959CE0799FF001112490E3899F76 -:100BF000E00DF11D1124E60FF11DEE0FFF1FEA526B -:100C0000FE4F859194910895880F991FFC01E45B34 -:100C1000FF4F859194910895880F991FFC01E4532B -:100C2000FE4F8591949108950F931F93CF93DF9377 -:100C3000EC01811521E39207A0F5C11580E3D807E7 -:100C400008F0D7C0C83ED105D8F4C03ED10508F0A1 -:100C500007C2C83AD10578F4C53AD10508F06AC090 -:100C6000C130D10509F463C008F4F7C1C430D1051F -:100C700008F0F6C1F2C1CB3BD10508F466C0EDC166 -:100C8000C11590E2D90708F0AFC0C11521E0D20725 -:100C900008F0E6C1C03FD10508F4DFC18E01106540 -:100CA0001FC2C03880E5D80700F5C03790E5D907E6 -:100CB00008F0A3C0C11520E5D20709F4ACC050F478 -:100CC000CE01905480319F4008F0C7C1DF708E0183 -:100CD000106A06C2C13080E5D80709F4AEC0C4313D -:100CE00090E5D90708F4AFC0B8C1C33820E5D207F2 -:100CF00009F48EC050F4C13890E5D90709F482C0D8 -:100D000008F083C000E011EDEBC1C03181E5D807E8 -:100D100008F4A3C1C11597E5D90708F436C1CE017F -:100D200090578115904108F098C1DF7093C101E0A0 -:100D300010E0D6C1C53AD10509F494C1C63AD1052F -:100D400009F093C102E810E4CBC1C83AD10509F417 -:100D50008FC1C93AD10509F48EC1CA3AD10509F447 -:100D60008DC1CB3AD10509F48CC1CC3AD10509F437 -:100D70008BC1CD3AD10509F48AC1C03BD10509F434 -:100D800089C1CE3AD10509F488C1CF3AD10509F419 -:100D900087C1C13BD10509F486C1C23BD10509F425 -:100DA00085C1C33BD10509F484C1C43BD10509F415 -:100DB00083C1C53BD10509F482C1C63BD10509F405 -:100DC00081C1C73BD10509F480C1C83BD10509F4F5 -:100DD0007FC1C93BD10509F47EC1CA3BD10509F4E5 -:100DE0007DC100E014E47CC1CE019F700E940C061E -:100DF00078C1DD278E01106C73C1CF70DD278E01A5 -:100E0000146D6EC100E010ED6BC100E012ED68C121 -:100E100000E013ED65C10E94E21B0E94200A0E94BF -:100E2000E4038FEF94E32CE0815090402040E1F701 -:100E300000C000000E94392353C18091F2028160FA -:100E40008093F2024DC10E949A23811102C00E9438 -:100E500076230E94AD2390E090931D0380931C03A2 -:100E6000C23080E5D80721F480911C03816086C0E0 -:100E7000C43090E5D90721F480911C0382607EC0C4 -:100E8000C63020E5D20721F480911C03846076C02F -:100E9000C83080E5D80719F480911C0327C0CA30F8 -:100EA00090E5D90721F480911C03806167C0CC30A4 -:100EB00020E5D20721F480911C0380625FC0CE3010 -:100EC00080E5D80721F480911C03806457C0C031AD -:100ED00090E5D90721F480911C0380684FC0C2318E -:100EE00020E5D20729F480911C038460886046C005 -:100EF000C33080E5D80721F480911C038E7F3EC06B -:100F0000C53090E5D90721F480911C038D7F36C050 -:100F1000C73020E5D20721F480911C038B7F2EC0BF -:100F2000C93080E5D80719F480911C0326C0CB3066 -:100F300090E5D90721F480911C038F7E1FC0CD302E -:100F400020E5D20721F480911C038F7D17C0CF309C -:100F500080E5D80721F480911C038F7B0FC0C1313D -:100F600090E5D90721F480911C038F7707C0C33126 -:100F7000D04531F480911C038B7F877F80931C03C5 -:100F800080911C030E94B123ABC08D2F99278F70D5 -:100F9000992781309105D9F49E012370332702C02F -:100FA000880F991F2A95E2F79C688E0144E0000F94 -:100FB000111F4A95E1F700271370802B912B53E006 -:100FC000CC0FDD1F5A95E1F7C076DD272FC08230A8 -:100FD000910531F4DC2FCC278E01016F106A80C09F -:100FE0008330910569F4CE018370992701E010E008 -:100FF00002C0000F111F8A95E2F7C8019C680FC05C -:1010000084309105B9F4CE018370992701E010E096 -:1010100002C0000F111F8A95E2F7C8019A6823E009 -:10102000CC0FDD1F2A95E1F7C07ED7708C010C2B09 -:101030001D2B56C08530910531F4DC2FCC278E0155 -:10104000046F106A4DC0069709F04AC0CF71DD27C2 -:10105000DC2FCC278E01106243C000E010E040C0BE -:101060008E013EC001E810E43BC003E810E438C044 -:1010700002EE14E435C009EE14E432C00AEE14E4C2 -:101080002FC005EB14E42CC006EB14E429C007EBD9 -:1010900014E426C00CEC14E423C00DEC14E420C0CE -:1010A00003E815E41DC00AE815E41AC002E915E4D6 -:1010B00017C004E915E414C001E216E411C003E20C -:1010C00016E40EC004E216E40BC005E216E408C004 -:1010D00006E216E405C007E216E402C00AE216E4DE -:1010E000C801DF91CF911F910F9108959CE0799FE6 -:1010F000F001112490E3899FE00DF11D1124E60F0A -:10110000F11DEE0FFF1FEA52FE4F85919491803E34 -:101110009105E0F4803C910558F58133910509F47F -:101120006FC048F48932910509F463C08A32910591 -:1011300009F46DC072C089339105E9F082389105D8 -:10114000D1F08533910509F44DC067C0833E910508 -:1011500081F138F4803E9105B9F0823E9105D9F0D5 -:101160005CC0863E910561F1873E9105A1F155C0B5 -:101170000E940406089520911C0320FD02C021FF57 -:101180004CC080EE90E049C080911C0380FFF9CFF5 -:1011900089E390E042C080911C0382FF0EC08091E1 -:1011A0001C0384FF03C080E090E037C083EE90E032 -:1011B00034C080911C0382FFF2CF82EE90E02DC0FC -:1011C00080911C0383FF0BC080911C0384FDEBCF37 -:1011D00087EE90E022C080911C0383FFF5CF86EE5E -:1011E00090E01BC080911C0385FF07C089E290E05E -:1011F00014C080911C0385FFF9CF85E390E00DC0FA -:1012000080911C0386FF07C08AE290E006C08091AF -:101210001C0386FFF9CF81E390E00E941406089535 -:101220000C94E502E82FF0E0E25BFE4F8081E82FAE -:10123000EF70F0E082958F7021E030E0A90102C0EC -:10124000440F551F8A95E2F740A308950F931F930B -:10125000CF93DF9385B7806885BF85B7806885BFEA -:10126000C3E0D0E001E010E0FE01E25BFE4F8081D0 -:10127000E82FEF70F0E021A182958F70A80102C0E5 -:10128000440F551F8A95E2F7CA01822B81A38C2F48 -:101290000E941209219740F78BE090E061E070E036 -:1012A000FC01EE5BFE4F2081E22FEF70F0E042A1E7 -:1012B00022952F70DB0102C0AA0FBB1F2A95E2F70F -:1012C0009D01242B22A3019758F7DF91CF911F9105 -:1012D0000F910C948F03EF92FF920F931F93CF9374 -:1012E000DF9300E212E0C3E0EE24E394F12CD5E0BA -:1012F0008C2F0E9412098BE090E040E050E0FC014E -:10130000EE5BFE4F6081E62FEF70F0E020A130E051 -:1013100062956F7002C0359527956A95E2F720FDBA -:1013200009C09701082E02C0220F331F0A94E2F76A -:10133000422B532B019718F7F801929182918F015C -:101340008417950721F051834083D09305018C2F9A -:101350000E941209C15060F68091050187FD2CC0E2 -:101360008150809305018F3F39F08FE99FE001970D -:10137000F1F700C0000020C080911E0290911F0272 -:10138000909327028093260280911C0290911D0267 -:10139000909325028093240280911A0290911B025F -:1013A0009093230280932202809118029091190257 -:1013B00090932102809320020E94910381E0DF91AB -:1013C000CF911F910F91FF90EF900895E82FF0E0DB -:1013D000EE0FFF1FE05EFD4F80819181089508951B -:1013E0000F931F93CF9308E212E0C0E0F8019291AF -:1013F00082918F010E945622C80FF2E000321F072F -:10140000A9F78C2FCF911F910F9108950E949A23D5 -:10141000811102C00E9476230E94BF23809307039C -:101420003E9A809171008D7F8093710082E080935D -:1014300090008AE18093910081E080932A020895D0 -:1014400080912A02811102C00E94060A10927A023B -:1014500010927902809171008D7F8093710080914C -:1014600090008F738093900010923C0210923B0288 -:10147000109273021092740210927502109276020A -:101480001092720210927102E1E5F2E0A1E4B2E082 -:1014900011921192119211921D921D9282E0E137E8 -:1014A000F807B1F70895CF92DF92EF92FF920F9372 -:1014B0001F93CF93DF9320913B02222309F484C032 -:1014C0006B017C0180912A02811102C00E94060AF0 -:1014D00001E712E0C7E0D0E0A7019601F801929180 -:1014E0008291729162918F010E940A29811131C00B -:1014F000FE01EE0FFF1FEE0FFF1FEF5AFD4F108290 -:10150000118212821382DE01AA0FBB1FAF5BBD4F97 -:1015100011961C921E92C730D105E9F021964481A4 -:1015200055816681778140835183628373831482FE -:1015300015821682178212968D919C91139711969F -:101540009C938E9313961C921E9212973496129629 -:10155000E2CF219708F68091790290917A02019763 -:1015600097FD05C090937A028093790204C010928F -:101570007A02109279028091790290917A022091F8 -:101580007702309178022817390724F010927802F8 -:1015900010927702892BC1F4809171008D7F809326 -:1015A0007100809190008F7380939000109273026D -:1015B00010927402109275021092760210927202CA -:1015C0001092710210923B02DF91CF911F910F9107 -:1015D000FF90EF90DF90CF9008951F920F920FB67B -:1015E0000F9211244F925F926F927F928F929F92EF -:1015F000AF92BF92CF92DF92EF92FF922F933F93E1 -:101600004F935F936F937F938F939F93AF93BF930A -:10161000CF93DF93EF93FF9380913B02882309F4EC -:101620009BC1C0917902D0917A021C161D060CF064 -:1016300093C140902B0250902C0260902D0270902C -:101640002E0220E030E0A901C301B2010E94B52AB8 -:1016500018160CF065C0C130D10509F452C0809154 -:10166000770290917802BE010E94872C7C019093B2 -:1016700078028093770280903D0290903E02A09085 -:101680003F02B090400220E030E040E85FE3C50157 -:10169000B4010E94A62860933D0270933E0280939D -:1016A0003F0290934002F701EE0FFF1FEE0FFF1F66 -:1016B000EF5AFD4FA3019201608171818281938174 -:1016C0000E940E2920E030E040E05EE30E94B92A4B -:1016D0009B01AC01C501B4010E94B52A18168CF417 -:1016E000C7010196BE010E94872C909378028093D7 -:1016F000770210923D0210923E0210923F02109229 -:101700004002E0917702F0917802EE0FFF1FEE0F9A -:10171000FF1FEF5AFD4F6081718182819381D0C09C -:10172000C0907302D0907402E0907502F09076023F -:1017300020E030E0A901C701B6010E940A292197E3 -:10174000882309F4A2C0FE01EE0FFF1FEE0FFF1F5A -:10175000EF5AFD4F80809180A280B380A501940153 -:10176000C701B6010E940A2987FF31C0A501940173 -:1017700060E070E08CED93EC0E940E2920E030E0F8 -:1017800040E451E40E940E2920E030E040E05FE3B5 -:101790000E94B92A9B01AC0160E070E080E090E417 -:1017A0000E941C2B9B01AC01C501B4010E94B92A07 -:1017B0009B01AC01C701B6010E940A2987FF07C03F -:1017C000A701960160E070E08CED93E439C0A501BB -:1017D0009401C701B6010E94B52A18160CF055C035 -:1017E000A501940160E070E08CED93E40E940E2965 -:1017F00020E030E040E451E40E940E2920E030E097 -:1018000040E05FE30E94B92A9B01AC0160E070E018 -:1018100080E090E40E941C2B9B01AC01C501B40147 -:101820000E94B92A9B01AC01C701B6010E94B52AEA -:1018300018165CF5A701960160E070E08CED93EC62 -:101840000E940E2920E030E040E451E40E940E297D -:1018500020E030E040E05FE30E94B92A9B01AC0148 -:1018600060E070E080E090E40E941C2B9B01AC01E2 -:10187000C701B6010E94B92A609373027093740283 -:10188000809375029093760213C0FE01EE0FFF1F46 -:10189000EE0FFF1FEF5AFD4F80819181A281B3812E -:1018A0008093730290937402A0937502B0937602B2 -:1018B000609173027091740280917502909176022A -:1018C00020912802309129022F3F4FEF340731F049 -:1018D0002F5F3F4F30932902209328020E94950EDC -:1018E0006B017C0120E034E244EF51E40E940A29BC -:1018F00087FF08C086EFC82E88E2D82E84EFE82E36 -:1019000081E4F82E20E030E040E051E4C701B60168 -:101910000E94B92A9B01AC0160E074E284E79BE479 -:101920000E940E296B017C010E947B297093970015 -:1019300060939600209106013091070140910801C3 -:1019400050910901C701B6010E94B92A0E947B2962 -:10195000709399006093980080913C02882309F469 -:1019600033C1C0903702D0903802E0903902F09035 -:101970003A0220E030E0A901C701B6010E94B52A71 -:101980001816D4F580912802909129028F3F2FEFED -:10199000920729F001969093290280932802C701AB -:1019A000B6010E94950E20E030E040E051E40E9434 -:1019B000B92A9B01AC0160E074E284E79BE40E94D9 -:1019C0000E296B017C010E947B2970939700609324 -:1019D0009600209106013091070140910801509135 -:1019E0000901C701B6010E94B92A0E947B297093A0 -:1019F00099006093980008C010929700109296008A -:101A00001092990010929800609131027091320208 -:101A10006F5F7F4F70933202609331022091960086 -:101A20003091970080E090E0232BF1F0C091960078 -:101A3000D09197000E94A7296B017C01BE0180E034 -:101A400090E00E94A7299B01AC0160913302709144 -:101A5000340280913502909136020E940E2920E0D6 -:101A60003FEF4FE757E410C00E94A7296B017C01AC -:101A700020E030EE4FEF54E4609133027091340275 -:101A800080913502909136020E94B92A9B01AC01E7 -:101A9000C701B6010E94B52A87FD96C080912F022A -:101AA0008F5F80932F0290E0209103033091040315 -:101AB00082179307A0F080910E03882319F01092EB -:101AC0002F020DC0809171008D7F809371008091F5 -:101AD00090008F738093900010923C027DC08091A3 -:101AE0003002C0912F02811128C0C0900803D0900D -:101AF0000903E0900A03F0900B0320E030E0A90115 -:101B0000C701B6010E94B52A1816BCF481E0809383 -:101B1000300210923702109238021092390210925D -:101B20003A02C0923302D0923402E0923502F0922F -:101B30003602C150C0932F0243C01092300210925F -:101B4000290210922802E0910503F091060348E073 -:101B5000C49FE00DF11D112480819181A281B38188 -:101B60008093370290933802A0933902B0933A02DF -:101B700020E030E040E85EE36481758186819781F2 -:101B80000E94B92A6B017C0180910A01682F70E0E4 -:101B900080E090E00E94A72920E030E048EC52E489 -:101BA0000E940E299B01AC01C701B6010E94B92A0F -:101BB000609333027093340280933502909336021F -:101BC00010923202109231028091070380FD04C00E -:101BD00010923C0210923B02FF91EF91DF91CF9166 -:101BE000BF91AF919F918F917F916F915F914F9135 -:101BF0003F912F91FF90EF90DF90CF90BF90AF90EB -:101C00009F908F907F906F905F904F900F900FBE3E -:101C10000F901F901895CF92DF92EF92FF92CF9383 -:101C2000DF936B017C01EA0180912A02811102C0DD -:101C30000E94060A8091070380FF46C080917902C6 -:101C400090917A0208970CF03FC0809171008D7FCF -:101C50008093710080913C0281110E94200A81E0F2 -:101C600080933B02109229021092280220E030E07B -:101C7000A901C701B6010E94B52A1816DCF48091AB -:101C8000790290917A02FC01EE0FFF1FEE0FFF1F09 -:101C9000EF5AFD4FC082D182E282F382FC01EE0F47 -:101CA000FF1FEF5BFD4FD183C083019690937A02B3 -:101CB000809379028091710082608093710080919D -:101CC0009000806880939000DF91CF91FF90EF901B -:101CD000DF90CF90089580910703817008958091DF -:101CE00007038160809307030E94C3230C94EB03D6 -:101CF000809107038E7F809307030C94C323809108 -:101D00007B0290E0019666E070E00E94872C809351 -:101D10007B02089580917B0290E0019766E070E07D -:101D20000E94872C80937B0208958F929F92AF929E -:101D3000BF92CF92DF92EF92FF920F931F93CF93B8 -:101D4000DF936B017C01C0912802D0912902BE0172 -:101D500080E090E00E94A7294B015C01A701960159 -:101D600060E070E08CE594E40E940E299B01AC01D8 -:101D7000C501B4010E94B92A0E947B2920917B02EF -:101D8000233009F473C028F4222351F02130E9F004 -:101D90002CC1243009F4A0C0253009F4E0C025C1CD -:101DA00080E090E0A0E0BFE38093060190930701FC -:101DB000A0930801B093090110922B0210922C02FB -:101DC00010922D0210922E0210C110922B0210922E -:101DD0002C0210922D0210922E026431710540F4F3 -:101DE0006A30710560F520E030E040E85EE32BC02A -:101DF000693C710508F0AAC080E090E00E94A72924 -:101E000020E030E040EA51E40E94A52820E030E0E4 -:101E100044E353E40E940E299B01AC010E94B92ABD -:101E200020E030E040E05EE30E94B92A9B01AC0173 -:101E300060E070E080E09EE30E94A52844C020E0BE -:101E400030E040E05FE3C701B6010E94B92A6B01B0 -:101E50007C0180E090E0A0E0BEE3809306019093D7 -:101E60000701A0930801B0930901BFC010922B0293 -:101E700010922C0210922D0210922E024AE0469FE0 -:101E80009001479F300D1124C90168EB7BE00E944F -:101E9000732CBC016C5D754077FF03C07195619533 -:101EA0007109882777FD8095982F0E94A9292EE334 -:101EB00033EC4EE259E30E94B92A20E030E040ECD6 -:101EC0005EE30E94A6286093060170930701809349 -:101ED00008019093090189C010922B0210922C02E4 -:101EE00010922D0210922E02CE0183709927892B19 -:101EF000E1F0BE016170772780E090E00E94A729A1 -:101F000020E030E040E05EE30E94B92A20E030E0CB -:101F100040E45FE30E94A6286093060170930701E6 -:101F200080930801909309010CC080E090E0A0E04C -:101F3000BFE38093060190930701A0930801B0933B -:101F40000901C770DD27CD2B09F04FC010920601A3 -:101F500010920701109208011092090146C01092D8 -:101F60002B0210922C0210922D0210922E0200E0F1 -:101F700010E020E03FE30093060110930701209357 -:101F80000801309309016739710578F180E090E02C -:101F90000E94A72920E030E047E153E40E94A528F1 -:101FA00020E030E04AE754E40E940E2920E030E0CF -:101FB00048E452E40E94B92A20E030E040EA51E4CB -:101FC0000E94EB290E947629660F771F660F771F04 -:101FD000FB01EE5AFE4F2081318142815381C701BE -:101FE000B6010E94B92A6B017C01C701B601DF91DD -:101FF000CF911F910F91FF90EF90DF90CF90BF9006 -:10200000AF909F908F90089580918C020895CF9308 -:10201000DF9300D01F92CDB7DEB79C0180911303F0 -:10202000843019F593E099833B832A839093E900E8 -:102030008FEF9091E800815095FD06C095ED9A953F -:10204000F1F700008111F5CF8091E80085FF0DC008 -:1020500040E050E063E070E0CE0101960E9468121B -:102060008091E8008E778093E8000F900F900F909A -:10207000DF91CF910895CF93DF9300D01F92CDB71A -:10208000DEB720911303243021F522E029839B83BE -:102090008A8383E08093E9008FEF9091E80081507C -:1020A00095FD06C095ED9A95F1F700008111F5CFE9 -:1020B0008091E80085FF0DC040E050E063E070E0F3 -:1020C000CE0101960E9468128091E8008E7780937D -:1020D000E8000F900F900F90DF91CF91089520911D -:1020E00013032430F1F422E02093E9002FEF309124 -:1020F000E800215035FD06C035ED3A95F1F70000B6 -:102100002111F5CF2091E80025FF0BC040E050E001 -:1021100065E070E00E9468128091E8008E778093FD -:10212000E8000895CF93DF93EC019091130394306E -:1021300009F046C0809115018823D9F080911601DD -:102140008823B9F09093E9008FEF9091E8008150D7 -:1021500095FD06C095E19A95F1F700008111F5CF44 -:102160008091E80085FF2CC040E050E060E170E025 -:1021700017C081E08093E9008FEF9091E8008150D3 -:1021800095FD06C095ED9A95F1F700008111F5CF08 -:102190008091E80085FF14C040E050E068E070E006 -:1021A000CE010E9468128091E8008E778093E8004B -:1021B00080E1FE01ACE7B2E001900D928A95E1F773 -:1021C000DF91CF91089580911203811109C00E947F -:1021D000FD130E945A148091E20084608093E20013 -:1021E0000895109212030895089508950C94A12261 -:1021F00042E061EC81E00E94771342E061EC82E012 -:102200000E94771342E061EC83E00E94771342E181 -:1022100061EC84E00C94771380911503833009F40A -:1022200055C030F4813071F0823009F48EC00895C9 -:102230008A3009F47AC08B3009F460C0893009F023 -:102240009CC020C080911403813A09F096C080910F -:10225000E800877F8093E80080911803909119032C -:10226000892B21F460E18CE792E003C060E080E01C -:1022700090E070E00E94B3128091E8008B77809329 -:10228000E800089580911403813209F076C08091AE -:10229000180390911903009719F0039709F06DC086 -:1022A0008091E800877F8093E8008091E80082FDBC -:1022B00005C0809113038111F8CF5FC08091F100B8 -:1022C00080938C028091E8008B7753C08091140337 -:1022D000813A09F052C08091180390911903892B1B -:1022E00009F04BC08091E800877F8093E8008091DF -:1022F000E80080FFFCCF8091150136C08091140367 -:102300008132D9F58091180390911903892BA9F591 -:102310008091E800877F8093E8000E94AC13809151 -:102320001603809315010C94E21B809114038132F3 -:1023300021F58091E800877F8093E8000E94AC132C -:102340008091170380938D02089580911403813A40 -:10235000A1F48091E800877F8093E8008091E800F5 -:1023600080FFFCCF80918D028093F1008091E80086 -:102370008E778093E8000C94AC13089584B7877F20 -:1023800084BF88E10FB6F8948093600010926000DB -:102390000FBE90E080E80FB6F894809361009093B0 -:1023A00061000FBE0E944F170E94FD130E945A1435 -:1023B0008091E20084608093E20078940E94E016AD -:1023C0000E9451178BE091E00E94FB16809113034D -:1023D000853069F40E946222809111038823B1F351 -:1023E0000E949022882391F30E945212EFCF0E9404 -:1023F0005917ECCF292F332723303105C9F064F466 -:102400002130310581F02230310509F043C08DE6DD -:1024100090E022EB33E042C021323105F1F022326C -:10242000310541F137C082E190E02FE134E036C060 -:1024300099278130910541F08230910541F0892B37 -:1024400049F5EEEAF3E005C0E0E8F3E002C0E6E5B6 -:10245000F3E0849190E09F0121C06430D8F4E62F2E -:10246000F0E0EE0FFF1FE255FE4F2081318189E041 -:1024700090E014C0643070F470E0FB01EE0FFF1FB9 -:10248000EA55FE4F20813181FB01EE55FE4F8081E0 -:1024900090E004C080E090E020E030E0FA01318379 -:1024A0002083089580E189BD82E189BD09B400FEE1 -:1024B000FDCF8091D8008F7D8093D8008091E0007F -:1024C00082608093E0008091E00081FDFCCF089560 -:1024D000CF92DF92EF92FF920F931F93CF93DF93F0 -:1024E000EC018B016A010E94CB13811133C0C1142E -:1024F000D10439F0F60180819181081B190BC80FB6 -:10250000D91FE12CF12C0115110519F18091E8007A -:1025100085FD16C08091E8008E778093E800C11495 -:10252000D10449F0F60180819181E80EF91EF18213 -:10253000E08285E00FC00E94CB13882321F30AC0FC -:1025400089918093F10001501109FFEFEF1AFF0A02 -:10255000DACF80E0DF91CF911F910F91FF90EF9044 -:10256000DF90CF90089520911A0330911B03261716 -:10257000370748F06115710539F42091E8002E778E -:102580002093E80001C0B90140E061157105A9F18F -:1025900020911303222309F443C0253009F442C0DB -:1025A0002091E80023FD40C02091E80022FD32C0C8 -:1025B0002091E80020FFE9CF4091F3002091F20044 -:1025C00030E0342BFC01CF016115710559F0283042 -:1025D000310540F481918093F100615071092F5FC2 -:1025E0003F4FF1CF41E02830310509F040E0209124 -:1025F000E8002E772093E800C8CF4111C9CF0AC068 -:1026000080911303882361F0853061F08091E800A8 -:1026100083FD0AC08091E80082FFF2CF80E0089538 -:1026200082E0089583E0089581E0089520911A03DF -:1026300030911B032617370748F06115710539F4EF -:102640002091E8002E772093E80001C0B901FC0139 -:1026500020E06115710591F180911303882309F43D -:1026600040C0853009F43FC08091E80083FD3DC043 -:102670008091E80082FD2FC08091E80080FFE9CFC3 -:102680002091F3008091F20090E0922B611571058A -:1026900059F08830910540F424912093F10031964F -:1026A000615071090196F2CF21E0089709F020E00E -:1026B0008091E8008E778093E800CBCF2111CCCFBA -:1026C0000AC080911303882361F0853061F0809106 -:1026D000E80083FD0AC08091E80082FFF2CF80E02D -:1026E000089582E0089583E0089581E00895982F89 -:1026F000973058F59093E900981739F07091EC00F5 -:102700002091ED005091F00003C0242F762F50E06F -:1027100021FF19C03091EB003E7F3093EB003091E8 -:10272000ED003D7F3093ED003091EB003160309350 -:10273000EB007093EC002093ED005093F00020919B -:10274000EE0027FF07C09F5FD3CF8F708093E90013 -:1027500081E0089580E008958091140387FF11C0FF -:102760008091E80082FD05C0809113038111F8CFAC -:1027700011C08091E8008B770BC0809113038823F0 -:1027800049F08091E80080FFF8CF8091E8008E77D3 -:102790008093E80008952091E4003091E50095E6EB -:1027A0004091EC00842F817040FF22C08091E800AE -:1027B00080FD1CC080911303882391F0853091F037 -:1027C0008091EB0085FD10C04091E4005091E50040 -:1027D0004217530729F39A01915011F784E00895A5 -:1027E00082E0089583E0089581E0089580E00895EF -:1027F0004091E80042FFDECF08950E946B140E94D2 -:102800007314E0EEF0E0808181608083E8EDF0E019 -:1028100080818F77808319BCA7EDB0E08C918E7F8B -:102820008C9380818F7E80831092120308950F9382 -:102830001F93CF93DF930E946B140E947314C8ED13 -:10284000D0E088818F7788838881806888838881B9 -:102850008F7D888319BC1092130310920F0310927E -:1028600011031092100300EE10E0F80180818B7FBD -:10287000808388818160888342E060E080E00E94FC -:102880007713E1EEF0E080818E7F8083E2EEF0E06E -:10289000808181608083808188608083F80180816D -:1028A0008E7F8083888180618883DF91CF911F91A3 -:1028B0000F910895E8EDF0E080818F7E8083E7ED51 -:1028C000F0E080818160808384E082BF81E080933A -:1028D00012030C941714E8EDF0E080818E7F808362 -:1028E0001092E20008951092DA001092E10008952B -:1028F0001F920F920FB60F9211242F933F934F9375 -:102900005F936F937F938F939F93AF93BF93EF9357 -:10291000FF938091E10082FF0BC08091E20082FF73 -:1029200007C08091E1008B7F8093E1000E94DF1659 -:102930008091DA0080FF1FC08091D80080FF1BC00B -:102940008091DA008E7F8093DA008091D90080FF39 -:102950000DC080E189BD82E189BD09B400FEFDCFD3 -:1029600081E0809313030E94E31005C019BC10920C -:1029700013030E94F1108091E10080FF19C0809143 -:10298000E20080FF15C08091E2008E7F8093E2001C -:102990008091E20080618093E2008091D8008062A3 -:1029A0008093D80019BC85E0809313030E94F51032 -:1029B0008091E10084FF30C08091E20084FF2CC050 -:1029C00080E189BD82E189BD09B400FEFDCF80911F -:1029D000D8008F7D8093D8008091E1008F7E809316 -:1029E000E1008091E2008F7E8093E2008091E2001E -:1029F00081608093E20080910F03882311F084E0CE -:102A000007C08091E30087FD02C081E001C083E040 -:102A1000809313030E94F6108091E10083FF29C088 -:102A20008091E20083FF25C08091E100877F809341 -:102A3000E10082E08093130310920F038091E10084 -:102A40008E7F8093E1008091E2008E7F8093E20090 -:102A50008091E20080618093E20042E060E080E0EB -:102A60000E9477138091F00088608093F0000E94AC -:102A7000F410FF91EF91BF91AF919F918F917F9152 -:102A80006F915F914F913F912F910F900FBE0F90DB -:102A90001F9018951F920F920FB60F9211242F932B -:102AA0003F934F935F936F937F938F939F93AF93D6 -:102AB000BF93CF93DF93EF93FF93C091E900CF7063 -:102AC0008091EC00D82FD17080FDD0E81092E90001 -:102AD0008091F000877F8093F00078940E948E159B -:102AE0001092E9008091F00088608093F000CD2B77 -:102AF000CF70C093E900FF91EF91DF91CF91BF912B -:102B0000AF919F918F917F916F915F914F913F9185 -:102B10002F910F900FBE0F901F9018951F93CF937A -:102B2000DF93CDB7DEB7AA970FB6F894DEBF0FBE1E -:102B3000CDBFE4E1F3E088E08E0F9091F100919336 -:102B40008E13FBCF0E940C118091E80083FF1FC100 -:102B50008091140390911503492F50E04A3051059C -:102B600008F015C1FA01EA5AFF4F0C949B2C8038EB -:102B700081F0823809F00BC1809118038F70809327 -:102B8000E9008091EB0085FB882780F91092E9002D -:102B900006C0809110039091110391118260909171 -:102BA000E800977F9093E8008093F1001092F10085 -:102BB000C8C0282F2D7F09F0EAC0882319F0823081 -:102BC00061F0E5C080911603813009F0E0C09330D8 -:102BD00009F080E0809311032BC0809116038111CE -:102BE00027C0809118038F7009F4D1C08093E90049 -:102BF0002091EB0020FF1CC0933021F48091EB006A -:102C0000806214C09091EB0090619093EB0021E002 -:102C100030E0A90102C0440F551F8A95E2F74093A6 -:102C2000EA001092EA008091EB0088608093EB004C -:102C30001092E9008091E800877F86C08111A7C0CB -:102C4000109116031F778091E3008078812B809389 -:102C5000E3008091E800877F8093E8000E94AC1336 -:102C60008091E80080FFFCCF8091E3008068809332 -:102C7000E300111102C082E001C083E080931303DE -:102C800086C08058823008F082C0809116039091EF -:102C900017038C3D53E0950779F583E08A838AE238 -:102CA00089834FB7F894DE01139620E03EE051E2AD -:102CB000E32FF0E050935700E49120FF03C0E2952A -:102CC000EF703F5FEF708E2F90E0EA3010F0C79604 -:102CD00001C0C0968D939D932F5F243149F74FBF5C -:102CE0008091E800877F8093E8006AE270E0CE017F -:102CF00001960E94B31214C0AE014F5F5F4F609106 -:102D000018030E94FA11BC01009709F440C0909189 -:102D1000E800977F9093E80089819A810E941613BA -:102D20008091E8008B778093E80031C0803879F596 -:102D30008091E800877F8093E80080910F03809363 -:102D4000F1008091E8008E778093E8000E94AC1338 -:102D50001EC081111CC0909116039230C0F4809166 -:102D6000E800877F8093E80090930F030E94AC13E4 -:102D700080910F03811106C08091E30087FD02C09E -:102D800081E001C084E0809313030E94F8108091D9 -:102D9000E80083FF0AC08091E800877F8093E80005 -:102DA0008091EB0080628093EB00AA960FB6F894B6 -:102DB000DEBF0FBECDBFDF91CF911F910895089563 -:102DC000CF93809113038823A1F0C091E900CF70C5 -:102DD0009091EC00892F817090FD80E8C82B1092B3 -:102DE000E9008091E80083FD0E948E15CF70C093AA -:102DF000E900CF91089590939302809392020895F1 -:102E0000E0919202F0919302309721F00190F081CD -:102E1000E02D099480E00895E0919202F0919302F0 -:102E2000309721F00280F381E02D09940895E0911C -:102E30009202F0919302309721F00480F581E02D09 -:102E4000099408952091900230919102821793077E -:102E500071F09093910280939002E0919202F09130 -:102E60009302309721F00680F781E02D09940895B0 -:102E700020918E0230918F028217930771F0909308 -:102E80008F0280938E02E0919202F091930230972C -:102E900021F00084F185E02D0994089508950C94A3 -:102EA0004E170E94D5220E9426090E945B230C9493 -:102EB0000A285F926F927F928F929F92AF92BF92F9 -:102EC000CF92DF92EF92FF920F931F93CF93DF93F6 -:102ED00000D000D01F92CDB7DEB70E946B099DE9EC -:102EE000C92E92E0D92E03E010E0AA24A394B12CBD -:102EF000502E802F0E94E6094C01F60172906290DC -:102F00006F016826792661147104A1F4015011093A -:102F100078F78FEF89838A831B820E94DE2281608B -:102F2000782F9D838C8349815A816B818D810E948A -:102F3000091838C08091F20281FD0E94EF092BE050 -:102F400030E07501022E02C0EE0CFF1C0A94E2F77D -:102F5000C70186219721892B09F129835A828E2066 -:102F60009F2091E0892809F490E09B830E94DE2253 -:102F70008160782F9D838C8349815A816B818D81FB -:102F80000E940918000F111FF801EB56FD4F8081B8 -:102F90009181E826F926F182E08204C021503109AE -:102FA00080F6B4CF0E944225109194020E9400172F -:102FB0001817D1F00E940017809394020F900F9081 -:102FC0000F900F900F90DF91CF911F910F91FF9075 -:102FD000EF90DF90CF90BF90AF909F908F907F90B9 -:102FE0006F905F900C9410090F900F900F900F90BE -:102FF0000F90DF91CF911F910F91FF90EF90DF9095 -:10300000CF90BF90AF909F908F907F906F905F9088 -:103010000895CF93DF93CDB7DEB72B970FB6F89413 -:10302000DEBF0FBECDBF4F83588769877A878B87F6 -:10303000DE01119686E0FD0111928A95E9F785E09F -:10304000FE01379601900D928A95E1F749815A81E8 -:103050006B817C818D819E810E94801E2B960FB694 -:10306000F894DEBF0FBECDBFDF91CF910895CF930F -:10307000882309F4C2C0C82F823859F40E9400176F -:1030800081FDBBC089E30E945A210E94272289E367 -:103090000CC0833879F40E94001780FDAEC083E530 -:1030A0000E945A210E94272283E50E949C21CF91F1 -:1030B0000C942722843859F40E94001782FD9DC089 -:1030C00087E40E945A210E94272287E4EECF8CEFEA -:1030D0008C0F813A48F48C2F0E94722781118DC089 -:1030E0008C2F0E945A21E3CF80E28C0F883048F465 -:1030F000C77081E001C0880FCA95EAF70E94E021FD -:10310000D6CF8BE58C0F833078F4C53A29F0C63AD8 -:1031100031F083E890E005C081E890E002C082E8E9 -:1031200090E0CF910C94221788E58C0F833108F042 -:1031300064C0C83A39F1C93A41F1CA3A49F1CB3AC7 -:1031400051F1CC3A59F1CD3A61F1C03B69F1CE3A37 -:1031500071F1CF3A79F1C13B81F1C23B89F1C33BB7 -:1031600091F1C43B99F1C53BA1F1C63BA9F1C73B25 -:10317000B1F1C83BB9F1C93BC1F1CA3BC9F180E02B -:1031800090E038C082EE90E035C089EE90E032C029 -:103190008AEE90E02FC085EB90E02CC086EB90E0AB -:1031A00029C087EB90E026C08CEC90E023C08DEC2A -:1031B00090E020C083E891E01DC08AE891E01AC049 -:1031C00082E991E017C084E991E014C081E292E0C5 -:1031D00011C083E292E00EC084E292E00BC085E26F -:1031E00092E008C086E292E005C087E292E002C069 -:1031F0008AE292E0CF910C943817CF9108958823FA -:1032000009F44BC0823859F40E94001781FF45C071 -:1032100089E30E945A210E94272289E30CC0833847 -:1032200071F40E94001780FF38C083E50E945A2184 -:103230000E94272283E50E949C210C942722843837 -:1032400059F40E94001782FF28C087E40E945A2187 -:103250000E94272287E4EFCF9CEF980F913A58F312 -:1032600090E2980F983050F4877091E001C0990F68 -:103270008A95EAF7892F0E94E621DFCF9BE5980F18 -:10328000933020F480E090E00C942217885A833128 -:1032900020F480E090E00C9438170895882321F002 -:1032A0000E94E0210C9427220895882321F00E9497 -:1032B000E6210C94272208957F928F929F92AF92DD -:1032C000BF92CF92DF92EF92FF920F931F93CF9313 -:1032D000DF931F92CDB7DEB77C01C62E772EFC019F -:1032E000058102950F70128111110E94FD210E942B -:1032F0005321882379F0112369F080E28C0D883006 -:1033000048F082E00E943C210E94532191E0D82E97 -:10331000D92601C0D12CE72DE295EF70F0E0E05AFC -:10332000FF4F0C949B2C872D807F072D0F708823D7 -:1033300011F00295007F112389F0002309F499C14F -:1033400080E28C0D883020F4802F0E94E02103C0A1 -:10335000802F0E94F0210E9427228BC18C2D0E9479 -:10336000FF18002309F4C3C180E28C0D883020F4DB -:10337000802F0E94E62103C0802F0E94F6210E9428 -:103380002722B5C1872D807F972D9F70803211F441 -:10339000892F03C0892F8295807FCC2021F0F1E016 -:1033A000CF16A1F01DC0112339F0002319F101300F -:1033B00009F50E9410229BC1002319F0013009F485 -:1033C00096C189830E941322898110C1112321F0A3 -:1033D000063008F08CC10EC0053008F088C106C167 -:1033E000112359F0002331F0F701958190FF41C17D -:1033F0009F7095830E944E197AC1002309F4F6C08C -:103400003EC1872D86958695837090E0009719F0D0 -:10341000019761F06CC1112321F08C2D972D9370D1 -:1034200002C080E090E00E94221761C1112321F0C8 -:103430008C2D972D937002C080E090E00E94381789 -:1034400056C18C2D112319F00E944A2402C00E94FB -:10345000B2240E9437254BC1872D837009F052C0DA -:10346000111145C18C2D829586958770880F880F24 -:103470009C2D9F70892E912CA12CB12C082E04C05C -:10348000880C991CAA1CBB1C0A94D2F7C4FE14C059 -:103490000FE010E020E030E0B901A80104C0440FC3 -:1034A000551F661F771F8A95D2F7CB01BA01609529 -:1034B00070958095909503C060E070E0CB01272D5A -:1034C00026952695237030E02230310569F02330AF -:1034D000310589F0682979298A299B29213031050C -:1034E00071F00E94C81F03C1682979298A299B2984 -:1034F0000E94E41FFCC00E94C81FC501B4010E94C5 -:10350000AC1FF5C0112319F0872D817001C086957D -:10351000882309F4ECC08C2D829586958770880FDE -:10352000880F9C2D9F70892E912CA12CB12C082ED8 -:1035300004C0880C991CAA1CBB1C0A94D2F7C4FEB8 -:1035400014C00FE010E020E030E0B901A80104C091 -:10355000440F551F661F771F8A95D2F7CB01BA011A -:10356000609570958095909503C060E070E0CB0108 -:10357000272D269526952370422F50E04230510585 -:1035800069F04330510589F0682979298A299B29F6 -:103590004130510571F00E94A220A9C06829792903 -:1035A0008A299B290E94BE20A2C00E94A220C50198 -:1035B000B4010E9486209BC08C2D90E0FC01E05E4F -:1035C000F109E531F10508F050C0E059FF4F0C94C6 -:1035D0009B2C0C2D0F70872D8F71112321F00E94D1 -:1035E0001F20802F07CF0E944020802F0E94551956 -:1035F0007EC0112341F0053008F079C0872D8F710E -:103600000E94652074C0063008F071C0F7CF112306 -:1036100039F0872D8F710E941F2069C01123C9F3D3 -:10362000872D8F710E94402062C0112329F0872DC1 -:103630008F710E940A205BC00E94002058C0112395 -:1036400051F0172D1F71812F0E941F2063E0812FE1 -:103650000E9433214CC081E00E943C21023008F4DA -:1036600046C082E00E943C2142C0112331F0002379 -:1036700081F28C2D0E9437183AC0002389F28C2DDC -:103680000E94FF1834C0472D4F706C2DC7010E9457 -:10369000EE050E94241F2BC0111129C0472D4F7029 -:1036A00050E042305105B9F04CF44115510581F01C -:1036B00041305105E1F40E94322819C043305105D0 -:1036C00069F04430510599F48C2D0E9484280FC074 -:1036D0000E941B280CC00E944E2809C00E9461282D -:1036E00006C0472D4F706C2DC7010E94F105DD20EB -:1036F000F9F00E942F2180FD1BC0F70112820E9469 -:1037000029210E941F20C7010E94A71B0E94292176 -:103710000F90DF91CF911F910F91FF90EF90DF906D -:10372000CF90BF90AF909F908F907F900C9440204F -:103730000F90DF91CF911F910F91FF90EF90DF904D -:10374000CF90BF90AF909F908F907F9008950F93F0 -:103750001F93CF93DF93EC01888199812B813C816A -:10376000232BB9F09F3F11F48F3F99F0CE010E94B7 -:10377000ED03882371F0688179818A810E94252177 -:103780008C010E94DA200E94A11FB801CE010E9484 -:103790005C19DF91CF911F910F9108950E94FD2137 -:1037A0000E940D220E94D2210E9427220E94E82519 -:1037B0000E94372580E090E00E94221780E090E090 -:1037C0000C9438170E94ED210C94CE1B0E941A21F4 -:1037D000292F22952F7030E02C3031054CF42A30FF -:1037E00031056CF42250310922303105A8F407C0AC -:1037F0002C30310569F02F30310551F00DC0803F7C -:1038000069F018F4803E40F409C0843F29F406C0F2 -:1038100093FB882780F9089580E0089581E008955A -:10382000CF93DF9300D000D01F92CDB7DEB70F90BB -:103830000F900F900F900F90DF91CF910895CF933D -:10384000DF9300D000D000D0CDB7DEB726960FB6FC -:10385000F894DEBF0FBECDBFDF91CF9108951F93C7 -:10386000CF93DF93C0919D0216E080919E02C8170E -:1038700099F0D0E01C9FF0011D9FF00D1124E1563E -:10388000FD4F4081518162817381848195810E94C5 -:103890001F1C2196C770E9CFDF91CF911F9108952A -:1038A0004091CF025091D0026091D1027091D2022A -:1038B0008091D3029091D4020C941F1C8091D40269 -:1038C00082958F7009F054C08091D102882309F449 -:1038D0004FC080919D02A0919E026091CF02709195 -:1038E000D0024091D2025091D302B6E08A1709F477 -:1038F0003FC090E041155105C1F17F3F11F46F3F8A -:10390000A1F1B89FF001B99FF00D1124E156FD4FD0 -:10391000218172132AC02081621327C022812111C4 -:1039200024C0238134812417350710F42150310934 -:10393000241B350B283C3105C0F42091D4022F7094 -:1039400020612093D40226E0289FF001299FF00DEA -:103950001124EC55FD4F80818F70806180838FEC46 -:1039600092E00E94A71B0C942F1C01968770BECF7B -:103970000895CF92DF92EF92FF920F931F93CF9310 -:10398000DF93CDB7DEB762970FB6F894DEBF0FBEF8 -:10399000CDBF8C0185E0F801DE011D9601900D92EE -:1039A0008A95E1F7D8014C9111965C911197129686 -:1039B0006C9112971396CD90DC9014973091CF02B2 -:1039C0007091D0028091D2029091D302009709F4B5 -:1039D0006BC17F3F19F43F3F09F466C1E090D1020B -:1039E000EE2009F4C0C02091D402C816D90628F0F0 -:1039F000F601E81BF90BCF0104C0809590958C0D62 -:103A00009D1DFF24F394883C910578F0F12C207FD4 -:103A100009F0C6C07C2DD98AC88A89890E94101CE9 -:103A20008FEC92E00E94A71BB1C0822F807F09F02B -:103A300046C0751314C0341312C0611110C02F702A -:103A400020612093D4020E94501C8FEC92E00E94CF -:103A5000A71B8091D402D80115968C932EC0CD2837 -:103A600019F15F3F11F44F3FF9F0F62E61111CC0C0 -:103A700080919D0220919E0236E0821709F45AC07F -:103A800090E0389FF001399FF00D1124E156FD4F71 -:103A90007181571306C07081471303C07281711181 -:103AA00003C001968770E9CFF62E662309F418C18A -:103AB0008091D40281608093D402F12C11C17513DE -:103AC00008C0341306C0611104C08091D402D8012B -:103AD000C3C04D875E878D859E856A8B0E94E61BDD -:103AE0006A898823E1F16623D1F12091D402822FE3 -:103AF00082958F7090E0029774F08091CF02909140 -:103B0000D00298878F831986DB86CA862C87CE01E0 -:103B100007960E94A71B86E0F801AFECB2E0019087 -:103B20000D928A95E1F70E945E1C0E94501CFF24B2 -:103B3000F394D6C04D875E878D859E850E941A219D -:103B4000292F22952F7030E0223031050CF0BCC0B7 -:103B50009F7009F0B6C0805E883008F4C1C0C8010B -:103B60000E94A71BE4CFC816D90608F453C0F6017B -:103B7000E81BF90BCF01883C910508F450C0F12CEB -:103B80007C2DD98AC88A89890E94101CEFECF2E04A -:103B900086E0DF011D928A95E9F70E94501CA0C0C3 -:103BA000751314C0341312C0611110C08091D40277 -:103BB000F8018583C8010E94A71B86E0EFECF2E0C4 -:103BC000DF011D928A95E9F7FE2C8AC04D875E873A -:103BD0008D859E856A8B0E94E61B6A89882309F47D -:103BE000BECF662309F4BBCF2091D402822F8295E9 -:103BF0008F7090E002970CF48ECF8091CF0290915D -:103C0000D0029A8389831B82DD82CC822E83CE01EF -:103C100001967FCF809590958C0D9D1DACCFF62E93 -:103C2000662309F49CCF75132EC034132CC0209149 -:103C3000D40220FD1FC0822F82958F70D9F0D80149 -:103C400015962C9315978F3049F08F5F982F92958A -:103C5000907F822F8F70892B15968C93C8010E94BC -:103C6000A71B86E0F801AFECB2E001900D928A95B7 -:103C7000E1F793CF86E0F801AFECB2E001900D924E -:103C80008A95E1F72DC04D875E878D859E850E94C0 -:103C9000E61B811140CF8091D40281608093D402D1 -:103CA000C8010E94A71B1CC0662309F458CF4D878A -:103CB0005E878D859E850E94E61B882309F44FCF81 -:103CC0002ACF811148CF0CC0243031050CF047CFEA -:103CD0009F7009F440CFF8019581907F09F03BCFA8 -:103CE0008F2D62960FB6F894DEBF0FBECDBFDF9169 -:103CF000CF911F910F91FF90EF90DF90CF9008959B -:103D00001F93CF93DF93CDB7DEB72C970FB6F89400 -:103D1000DEBF0FBECDBF4F83588769877A878B87F9 -:103D20009C87CE0107960E94B91C882369F08F8179 -:103D300098852A853B85232BF1F19F3F09F063C0CD -:103D40008F3F09F060C037C086E0FE013796DE0184 -:103D5000119601900D928A95E1F76F817885EA8539 -:103D6000FB85309741F17F3F11F46F3F21F12091A6 -:103D70009E0230E0C90101968770992740919D020B -:103D800050E08417950709F447C069837A83FD835F -:103D9000EC8396E0929FD001939FB00D1124A15621 -:103DA000BD4FFE01319601900D929A95E1F78093F7 -:103DB0009E020E942F1C16E080919D0290919E020F -:103DC0008917C1F1189FC001112481569D4F0E948F -:103DD000B91C882379F1E0919D021E9FF001112406 -:103DE000E156FD4F408151816281738184819581CB -:103DF0000E941F1C80919D0290E001968770992778 -:103E000080939D02D9CF4F81588569857A858B85AE -:103E10009C850E941F1CCFCF0E94E21B10929E0225 -:103E200010929D02EFECF2E086E0DF011D928A9590 -:103E3000E9F7C1CF2C960FB6F894DEBF0FBECDBF09 -:103E4000DF91CF911F910895EF92FF920F931F93EF -:103E5000CF93DF938C01009709F46CC0F12CEE2412 -:103E6000E394E8012196F8018491843740F484308A -:103E700008F051C0813081F0823019F15BC0853784 -:103E800009F444C0A8F19CE7980F903708F052C09D -:103E90008F770E94FF1841C00E5F1F4FFE01C49133 -:103EA00080E28C0F883048F4C7708E2D01C0880FD7 -:103EB000CA95EAF70E94002214C08C2F0E9437187E -:103EC0002DC00E5F1F4FFE01C49180E28C0F883021 -:103ED00058F4C7708E2D01C0880FCA95EAF70E946A -:103EE00006220E9427221AC08C2F0E94FF1816C09B -:103EF0000E5F1F4FFE01C491CC2381F08FE99FE03C -:103F00000197F1F700C00000C150F6CF0E5F1F4FC0 -:103F1000FE01F49003C00E9437188E018F2D882374 -:103F200009F49FCFEFE9FFE03197F1F700C00000FF -:103F30008150F5CFDF91CF911F910F91FF90EF90BE -:103F4000089508956093D9027093DA028093DB029A -:103F50009093DC020C94CE1B0F931F930091D90217 -:103F60001091DA022091DB023091DC02DC01CB01FE -:103F7000802B912BA22BB32B8093D9029093DA0242 -:103F8000A093DB02B093DC021F910F910C94CE1B27 -:103F90000F931F930091D9021091DA022091DB0256 -:103FA0003091DC02DC01CB0180239123A223B323D7 -:103FB0008093D9029093DA02A093DB02B093DC02E3 -:103FC0001F910F910C94CE1B0F931F930091D90258 -:103FD0001091DA022091DB023091DC02DC01CB018E -:103FE00080279127A227B3278093D9029093DA02E2 -:103FF000A093DB02B093DC021F910F910C94CE1BB7 -:104000001092D5021092D6021092D7021092D802C6 -:104010000C94CE1B41E050E060E070E004C0440F1F -:10402000551F661F771F8A95D2F74093D50250938C -:10403000D6026093D7027093D8020C94CE1B41E055 -:1040400050E060E070E004C0440F551F661F771F0A -:104050008A95D2F78091D5029091D602A091D7028D -:10406000B091D802482B592B6A2B7B2B4093D50259 -:104070005093D6026093D7027093D8020C94CE1B53 -:1040800041E050E060E070E004C0440F551F661F3F -:10409000771F8A95D2F740955095609570958091DD -:1040A000D5029091D602A091D702B091D8024823B0 -:1040B00059236A237B234093D5025093D602609301 -:1040C000D7027093D8020C94CE1B41E050E060E020 -:1040D00070E004C0440F551F661F771F8A95D2F702 -:1040E0008091D5029091D602A091D702B091D802CA -:1040F000482759276A277B274093D5025093D60239 -:104100006093D7027093D8020C94CE1B0F931F9329 -:104110000091D5021091D6022091D7023091D80299 -:10412000DC01CB01802B912BA22BB32B8093D502EA -:104130009093D602A093D702B093D8021F910F910B -:104140000C94CE1B0F931F930091D5021091D602B1 -:104150002091D7023091D802DC01CB01802391233A -:10416000A223B3238093D5029093D602A093D702C3 -:10417000B093D8021F910F910C94CE1B0F931F93F5 -:104180000091D5021091D6022091D7023091D80229 -:10419000DC01CB0180279127A227B3278093D5028A -:1041A0009093D602A093D702B093D8021F910F919B -:1041B0000C94CE1B0895CF92DF92EF92FF920F9353 -:1041C0001F93CF93DF938C01C090D902D090DA0275 -:1041D000E090DB02F090DC028091D5029091D60253 -:1041E000A091D702B091D802C82AD92AEA2AFB2A7C -:1041F000CFE1D0E0D701C6010C2E04C0B695A7953B -:10420000979587950A94D2F780FF06C0B8018C2F46 -:104210000E947608019721F4219760F780E001C0A1 -:104220008C2FDF91CF911F910F91FF90EF90DF9036 -:10423000CF900895CF93DF93EC010E94DB20BE0165 -:104240000E947608DF91CF910895CB010E941A2138 -:1042500008958091DD0285958595859508958091D5 -:10426000DD028770089598E0899F90011124262B24 -:104270002093DD020C941F202091DD028095822383 -:104280008093DD02982F977069F430E0482F55270E -:1042900047FD50952417350729F085958595859517 -:1042A0000C94402008959091DD02977081E009F40C -:1042B00080E0089590911501992321F090911601C5 -:1042C000911109C02091170130911801F90132961E -:1042D0009FEF40E01FC0982F9695969596959F303A -:1042E00050F5E0911701F0911801E90FF11D877069 -:1042F00021E030E0A90102C0440F551F8A95E2F782 -:10430000CA019181892B818308959F3F39F04F5FC6 -:104310004E3041F051915813F8CF0DC05111F7CFE5 -:10432000942FF5CF9F3F39F0F901E90FF11D97FD6B -:10433000FA9582830895089590911501992321F0AB -:1043400090911601911109C0209117013091180127 -:10435000F9013296205F3F4F1FC0982F9695969592 -:1043600096959F30F0F4E0911701F0911801E90F54 -:10437000F11D877021E030E0A90102C0440F551FF4 -:104380008A95E2F7CA0180959181892381830895F6 -:104390003196E217F30729F090819813F9CF108234 -:1043A000F7CF089581E090E0E0911701F0911801B6 -:1043B000E80FF91F1082019680319105A9F7089541 -:1043C0009091F102892B8093F1020895809590914C -:1043D000F10289238093F10208951092F102089569 -:1043E0009091F002892B8093F0020895809590912E -:1043F000F00289238093F00208951092F00208954C -:104400009091EF02892B8093EF020895809590910F -:10441000EF0289238093EF0208951092EF0208952E -:104420008093DE0208951092DE02089580911701B4 -:1044300090911801FC0131969C01205F3F4F80E074 -:10444000919191118F5FE217F307D1F70895E091F1 -:104450001701F09118018091F1028083E09117011A -:10446000F091180190818091F002892B8083E09176 -:104470001701F091180190818091EF02892B8083C0 -:104480008091DE02882361F0E0911701F09118011C -:104490009081892B80830E94162281111092DE0266 -:1044A00080911701909118010C940C1720E000974F -:1044B00039F0AC0141505109842395232F5FF7CF88 -:1044C000822F089580911303843039F11092F30202 -:1044D00020E488E190E00FB6F894A89580936000FE -:1044E0000FBE2093600080E00E94F10280E00E94F5 -:1044F000100983B7817F846083BF83B7816083BFE6 -:104500007894889583B78E7F83BF88E10FB6F8943F -:1045100080936000109260000FBE08950895089582 -:1045200080E00E94F1020E948E220E946B090E948C -:104530008F220E94F00991E0811101C090E0892F43 -:1045400008950E94E21B80E00E94F1020E940A2866 -:104550000E9400170C9410091F920F920FB60F9231 -:1045600011248F939F93AF93BF938091F302811196 -:1045700013C08091F4029091F502A091F602B091DF -:10458000F7024196A11DB11D8093F4029093F502AC -:10459000A093F602B093F702BF91AF919F918F91D4 -:1045A0000F900FBE0F901F90189582E084BD93E08E -:1045B00095BD9AEF97BD80936E0008952FB7F8943C -:1045C0008091F4029091F502A091F602B091F70269 -:1045D0002FBF0895CF92DF92EF92FF920F931F9318 -:1045E0002FB7F8944091F4025091F5026091F602D1 -:1045F0007091F7022FBF6A017B01EE24FF248C012A -:1046000020E030E0C016D106E206F30610F4415077 -:1046100051099A01281B390BC9011F910F91FF9075 -:10462000EF90DF90CF9008951F920F920FB60F92E8 -:1046300011248F939F93AF93BF938091F402909135 -:10464000F502A091F602B091F7020196A11DB11DED -:104650008093F4029093F502A093F602B093F702D0 -:10466000BF91AF919F918F910F900FBE0F901F90B0 -:1046700018950E94FD13F8942FEF87EA91E62150D8 -:1046800080409040E1F700C0000087E090EBDC0143 -:1046900080931E0390931F03A0932003B0932103E4 -:1046A0009CE088E10FB6F894A895809360000FBE57 -:1046B00090936000FFCF0E949A23811102C00E9454 -:1046C00076230E94A5238093F2020E94AD2380935B -:1046D0001C0387FB882780F9809316010E94A92379 -:1046E000682F70E080E090E00C94A21F6DEE7EEFEA -:1046F00080E090E00E94C12C60E082E090E00E94A7 -:10470000AF2C60E083E090E00E94AF2C60E084E09A -:1047100090E00E94AF2C60E085E090E00E94AF2C1A -:1047200060E086E090E00E94AF2C6FEF87E090E0C1 -:104730000C94AF2C80E090E00E94A92C21E08D3EEB -:104740009E4F09F020E0822F089582E090E00C94C3 -:10475000A12C83E090E00C94A12C84E090E00C94D8 -:10476000A12C682F84E090E00C94AF2C86E090E0C0 -:104770000C94A12C682F86E090E00C94AF2C87E07D -:1047800090E00C94A12C682F87E090E00C94AF2C63 -:104790008091FA0280FF0BC060911C0185E0689F48 -:1047A000B001112475956795759567952BC081FFAC -:1047B00009C060911C0185E0689FB00111247595C6 -:1047C000679520C082FF07C060911C0185E0689F4B -:1047D000B001112417C09091FB029923D1F0609190 -:1047E0001B01961788F720911C0185E0289F9001F6 -:1047F0001124929FA001939F500D112470E0CA01D3 -:104800000E94872C6038710540F46115710539F0FC -:1048100002C065E070E0862F08958FE7089581E07B -:1048200008958091FA0280FF08C060911A0170E03B -:10483000759567957595679521C081FF06C0609154 -:104840001A0170E07595679519C082FF04C06091E8 -:104850001A0170E010C09091FB029923C1F06091A1 -:1048600019019617A0F780911A01899FC0011124A0 -:1048700070E00E94872C6038710528F4611571057D -:1048800021F0862F08958FE7089581E0089561E073 -:1048900070E0F4CF803F21F40E94C823819504C0CA -:1048A000813F29F40E94C8238093FE020895823F2D -:1048B00021F40E94C823819504C0833F29F40E94FB -:1048C000C8238093FD020895893F19F40E941124A2 -:1048D00005C08A3F31F40E94112481958093FF0224 -:1048E00008958B3F21F40E941124819504C08C3FD0 -:1048F00029F40E941124809300030895843F21F439 -:104900008091FC02816017C0853F21F48091FC02F8 -:10491000826011C0863F21F48091FC0284600BC04C -:10492000873F21F48091FC02886005C0883F31F404 -:104930008091FC0280618093FC0208958D3F21F4F8 -:104940008091FA0281600BC08E3F21F48091FA02BF -:10495000826005C08F3F29F48091FA0284608093C1 -:10496000FA020895803F39F48091FE0287FF6CC0FF -:104970001092FE0269C0813F29F48091FE02181650 -:10498000BCF362C09091FD02823F29F497FF5CC0A6 -:104990001092FD0259C0833F19F41916CCF354C08C -:1049A000893F41F48091FF0218160CF04DC010921F -:1049B000FF024AC08A3F29F48091FF0287FF44C06A -:1049C000F6CF8B3F39F48091000387FF3DC01092F2 -:1049D00000033AC08C3F29F4809100031816BCF301 -:1049E00033C0843F21F48091FC028E7F17C0853F45 -:1049F00021F48091FC028D7F11C0863F21F48091CB -:104A0000FC028B7F0BC0873F21F48091FC02877FE3 -:104A100005C0883F31F48091FC028F7E8093FC02B8 -:104A200013C08D3F21F48091FA028E7F0BC08E3F20 -:104A300021F48091FA028D7F05C08F3F29F4809187 -:104A4000FA028B7F8093FA028091FD0281110EC0E1 -:104A50008091FE0281110AC08091FF02811106C07F -:104A600080910003811102C01092FB0208958CEF27 -:104A700092E00E9417170E94DE229093F902809321 -:104A8000F80208951F93CF93DF938091F8029091DD -:104A9000F9020E94EA22AC019091FB02992321F0D5 -:104AA00020911D0130E006C020911E018AE0289F60 -:104AB000900111244217530708F486C08091FD022B -:104AC000C091FE02D091FF0210910003811107C036 -:104AD000C11176C0D11174C0111172C075C09F3F51 -:104AE00019F09F5F9093FB02181624F40E94C823CC -:104AF0008093FD028091FD0287FF05C00E94C823BC -:104B000081958093FD021C1624F40E94C823809393 -:104B1000FE028091FE0287FF05C00E94C823819596 -:104B20008093FE026091FD02662339F1C091FE027E -:104B3000CC2319F1772767FD7095872F972F0E9457 -:104B4000A92923E333E343E35FE30E94B92A0E94E8 -:104B500076296093FD026C2F772767FD7095872F6C -:104B6000972F0E94A92923E333E343E35FE30E94E5 -:104B7000B92A0E9476296093FE021D1624F40E9431 -:104B800011248093FF028091FF0287FF05C00E94DD -:104B9000112481958093FF02111624F40E941124A0 -:104BA000809300038091000387FF05C00E941124B9 -:104BB000819580930003DF91CF911F910C9437254D -:104BC0009F3F09F08ECF96CFDF91CF911F9108952F -:104BD000ECEFF2E085E0DF011D928A95E9F7109293 -:104BE000FB021092FA020895833081F128F481309B -:104BF00059F08230D1F00895853009F449C0B8F1F8 -:104C0000863009F456C0089580911E01262F30E0A9 -:104C1000280F311D2F3F310524F4680F60931E01CA -:104C200008958FEF80931E01089580911D01262F16 -:104C300030E0280F311D2F3F310524F4680F6093B9 -:104C40001D0108958FEF80931D01089580911C012F -:104C5000262F30E0280F311D2F3F310524F4680F37 -:104C600060931C0108958FEF80931C01089580913B -:104C70001B01262F30E0280F311D2F3F310524F472 -:104C8000680F60931B0108958FEF80931B010895B7 -:104C900080911A01262F30E0280F311D2F3F31055A -:104CA00024F4680F60931A0108958FEF80931A011E -:104CB000089580911901262F30E0280F311D2F3FD4 -:104CC000310524F4680F6093190108958FEF8093E4 -:104CD00019010895833011F128F4813049F08230B0 -:104CE00091F00895853081F120F18630C1F1089569 -:104CF00080911E01681720F4861B80931E01089581 -:104D000010921E01089580911D01681720F4861BE2 -:104D100080931D01089510921D01089580911C013A -:104D2000681720F4861B80931C01089510921C01C3 -:104D3000089580911B01681720F4861B80931B0146 -:104D4000089510921B01089580911A01681720F4AC -:104D5000861B80931A01089510921A01089580917C -:104D60001901681720F4861B809319010895109289 -:104D7000190108950F931F93873208F048C08E31B0 -:104D800008F08DC0803109F477C008F5873009F448 -:104D900061C068F4863009F09DC08091F202817F85 -:104DA0008E7F8093F20281E08093020394C08B3067 -:104DB00009F489C08E3009F08DC08091F20282FB27 -:104DC000222720F991E0922790FB82F95EC086317C -:104DD00009F479C060F4813109F07CC00E94E21BC3 -:104DE0009091160181E08927809316016CC089316A -:104DF00009F469C08B3109F06DC08091F20281FB2A -:104E0000222720F991E0922790FB81F93EC0883358 -:104E100009F459C050F4893209F457C0853309F4B4 -:104E200054C0873209F451C055C0833409F44DC0D1 -:104E300028F48A3308F44EC0895332C0883409F00C -:104E400049C00E94E21B0E94200A0E94E4030E94C3 -:104E5000392339C09091F202892F8095817080FBAF -:104E600090F929F0966098609093F20234C0997F8F -:104E7000977F9093F20227C08091F20283FB222752 -:104E800020F991E0922790FB83F98093F202992315 -:104E9000D1F08091F20281608093F20214C08D51B2 -:104EA00041E050E060E070E08A019B0104C0000F27 -:104EB000111F221F331F8A95D2F7C901B8010E9422 -:104EC000A21F0E94E21B81E006C061E070E080E06A -:104ED00090E0F5CF80E01F910F91089580E0089554 -:104EE00080E00895CF93C82F80910203813069F04C -:104EF00018F08230C9F184C0E0911701F0911801D7 -:104F00008081823209F07EC007C0E0911701F091E4 -:104F100018018081823261F48C2F0E946E278111EA -:104F200004C08C2F0E94BA261DC081E090E01AC0F8 -:104F30008C2F0E947027811114C0C43179F048F47D -:104F4000CB3079F0C03109F061C082E08093020378 -:104F500008C0C93219F0C83321F058C010920203BA -:104F600055C081E0817054C0C93291F120F5C4313F -:104F700079F1B0F4C73009F047C08EE180931E018B -:104F800082E380931D018AE080931C0184E1809379 -:104F90001B0188E080931A0188E28093190134C0D4 -:104FA000CE51C63088F5EC2FF0E0EA54FE4F8081F8 -:104FB0008093010329C0CE34E9F020F4CB3421F5ED -:104FC0006AE013C0C13579F0C235F1F461E00DC07B -:104FD00080910103882319F01092010315C081E02C -:104FE0008093020315C061E006C0809101030E9416 -:104FF000F4250AC06AE0809101030E946A2604C079 -:105000001092020380E004C081E002C080E0AACFD9 -:10501000CF9108950E949A23811102C00E947623A5 -:105020000E94B62380931D0380FF02C0869501C0B5 -:1050300080E00C94F10280911D03982F9695292F02 -:1050400030E0233031054CF49F5F990F8170892B3C -:10505000816080931D030E94BA2380911D03869571 -:105060000C94F10280911D03982F969591F0915820 -:10507000990F8170892B80931D038E7F91E009F435 -:1050800090E080911D0390FB80F980931D030E94A6 -:10509000BA2380911D0386950C94F10280911D0323 -:1050A000982F909590FB80F980931D030E94BA235E -:1050B00080911D0380FF02C0869501C080E00C94A2 -:1050C000F10290911D03892F86958F5F8F779170E4 -:1050D000843028F4880F892B80931D0302C090939D -:1050E0001D0380911D038E7F91E009F490E0809173 -:1050F0001D0390FB80F980931D030E94BA238091C9 -:105100001D0386950C94F10220911D03922F969514 -:105110008927982F990F822F8170892B80931D03E7 -:105120008E7F91E009F490E080911D0390FB80F95F -:1051300080931D030E94BA2380911D0386950C94D1 -:10514000F10280911D03869508955058BB27AA2728 -:105150000ED0D1C1C2D130F0C7D120F031F49F3F81 -:1051600011F41EF4B7C10EF4E095E7FB9FC1E92FDF -:10517000D3D180F3BA17620773078407950718F035 -:1051800071F49EF5EBC10EF4E0950B2EBA2FA02D15 -:105190000B01B90190010C01CA01A0011124FF27E4 -:1051A000591B99F0593F50F4503E68F11A16F040DF -:1051B000A22F232F342F4427585FF3CF46953795DE -:1051C0002795A795F0405395C9F77EF41F16BA0BA3 -:1051D000620B730B840BBAF09150A1F0FF0FBB1F51 -:1051E000661F771F881FC2F70EC0BA0F621F731F9A -:1051F000841F48F4879577956795B795F7959E3FF7 -:1052000008F0B3CF9395880F08F09927EE0F979584 -:105210008795089527D108F481E008950CD06BC1DB -:1052200063D140F05AD130F021F45F3F19F03EC114 -:10523000511195C14FC170D198F39923C9F35523EA -:10524000B1F3951B550BBB27AA2762177307840779 -:1052500038F09F5F5F4F220F331F441FAA1FA9F32F -:1052600033D00E2E3AF0E0E830D091505040E69521 -:10527000001CCAF729D0FE2F27D0660F771F881F82 -:10528000BB1F261737074807AB07B0E809F0BB0B71 -:10529000802DBF01FF2793585F4F2AF09E3F510595 -:1052A00068F004C15CC15F3FECF3983EDCF3869587 -:1052B00077956795B795F7959F5FC9F7880F911D0B -:1052C0009695879597F90895E1E0660F771F881FF7 -:1052D000BB1F621773078407BA0720F0621B730BAA -:1052E000840BBA0BEE1F88F7E095089504D06894FC -:1052F000B11135C1089518D188F09F5790F0B92F9A -:105300009927B751A0F0D1F0660F771F881F991F1A -:105310001AF0BA95C9F712C0B13081F01FD1B1E0CF -:1053200008951CC1672F782F8827B85F39F0B93FDF -:10533000CCF3869577956795B395D9F73EF490951C -:105340008095709561957F4F8F4F9F4F0895E8949A -:1053500009C097FB3EF490958095709561957F4FBD -:105360008F4F9F4F9923A9F0F92F96E9BB2793956B -:10537000F695879577956795B795F111F8CFFAF47B -:10538000BB0F11F460FF1BC06F5F7F4F8F4F9F4FAC -:1053900016C0882311F096E911C0772321F09EE80A -:1053A000872F762F05C0662371F096E8862F70E070 -:1053B00060E02AF09A95660F771F881FDAF7880F4A -:1053C0009695879597F9089588D018F011F08CD0AC -:1053D00038F480C0C4C0E92F9FD0B0F35523C9F37F -:1053E000E7FB6217730784079507A8F199F3E92F84 -:1053F000FF2788232AF03197660F771F881FDAF777 -:10540000952F5527442332F091505040220F331FDF -:10541000441FD2F7BB27E91BF50B621B730B840BF0 -:10542000B109C1F222F4620F731F841FB11D3197BD -:105430002AF0660F771F881FBB1FEFCF9150504097 -:105440005AF041F0882332F0660F771F881F915081 -:105450005040C1F7939530C08695779567959F5FCB -:10546000D9F7F8CF990F0008550FAA0BE0E8FEEF27 -:1054700016161706E807F907C0F012161306E40718 -:10548000F50798F0621B730B840B950B39F40A2611 -:1054900061F0232B242B252B21F408950A2609F4EF -:1054A000A140A6958FEF811D811D089597F99F67F3 -:1054B00080E870E060E008959F3F31F0915020F463 -:1054C000879577956795B795880F911D96958795E0 -:1054D00097F908959FEF80EC089500240A9416161A -:1054E000170618060906089500240A9412161306D2 -:1054F000140605060895092E0394000C11F4882360 -:1055000052F0BB0F40F4BF2B11F460FF04C06F5F7B -:105510007F4F8F4F9F4F089557FD9058440F551F51 -:1055200059F05F3F71F04795880F97FB991F61F025 -:105530009F3F79F087950895121613061406551F9C -:10554000F2CF4695F1DF08C0161617061806991F08 -:10555000F1CF86957105610508940895E894BB27FD -:1055600066277727CB0197F908957CDF08F48FEF42 -:1055700008950BD0C0CFB1DF28F0B6DF18F0952327 -:1055800009F094CFA7CF1124EACFC6DFA0F3959FEF -:10559000D1F3950F50E0551F629FF001729FBB271A -:1055A000F00DB11D639FAA27F00DB11DAA1F649FC6 -:1055B0006627B00DA11D661F829F2227B00DA11D79 -:1055C000621F739FB00DA11D621F839FA00D611DFF -:1055D000221F749F3327A00D611D231F849F600D20 -:1055E000211D822F762F6A2F11249F5750408AF059 -:1055F000E1F088234AF0EE0FFF1FBB1F661F771FE5 -:10560000881F91505040A9F79E3F510570F04ECF32 -:10561000A6CF5F3FECF3983EDCF3869577956795D0 -:10562000B795F795E7959F5FC1F7FE2B880F911D02 -:105630009695879597F90895FA01EE0FFF1F30961A -:105640002105310599F16115710561F48038BFE3D9 -:105650009B0749F168949038810561F08038BFEF6D -:105660009B0741F0992342F5FF3FE10531052105F4 -:1056700011F1E8940894E795D901AA2329F4AB2FF6 -:10568000BE2FF85FD0F310C0FF5F70F4A695E0F76F -:10569000F73950F019F0FF3A38F49F779F930CD008 -:1056A0000F9007FC905808953EF014CF60E070E032 -:1056B00080E89FE308954FE79F775F934F933F9371 -:1056C0002F939ED02F913F914F915F9152DF05C054 -:1056D00019F40EF0EBCE42CFFDCE26DFC8F396389C -:1056E000C0F707F80F92E8942BE33AEA48EB5FE73C -:1056F0004EDF0F920F920F924DB75EB70F92C0D050 -:10570000EAE0F1E016D04F915F91EF91FF91E595BE -:10571000EE1FFF1F49F0FE57E0684427EE0F441FBD -:10572000FA95E1F74195550B32D00F9007FE26C050 -:105730000895DF93CF931F930F93FF92EF92DF9221 -:105740007B018C01689405C0DA2EEF011EDFFE019B -:10575000E894A5912591359145915591AEF3EF01CE -:1057600006DDFE019701A801DA9479F7DF90EF904A -:10577000FF900F911F91CF91DF9108959B01AC0194 -:1057800060E070E080E89FE349CD90CE95CECCDE1E -:10579000E8F39923D9F3940F511DBBF39150504076 -:1057A00094F059F0882332F0660F771F881F9150CC -:1057B0005040C1F79E3F510544F7880F911D9695C3 -:1057C000879597F908955F3FACF0983E9CF0BB2712 -:1057D000869577956795B79508F4B1609395C1F76D -:1057E000BB0F58F711F460FFE8CF6F5F7F4F8F4F0B -:1057F0009F4FE3CFB4CE0EF05FCE6CCE689456CE02 -:1058000093DEC8F39923D1F3C6F3DF93CF931F93AD -:105810000F93FF92C92FDD2788232AF02197660F67 -:10582000771F881FDAF720E030E040E85FEB9FE366 -:10583000883920F0803E30F021968F7787DCE2E3D4 -:10584000F1E003C083DCEFE5F1E073DF8B01BE0123 -:10585000EC01FB2E6F5771097595771F880B990B1B -:1058600078DD28E132E741E35FE38FDEAF2D980179 -:10587000AE01FF900F911F91CF91DF9178DC3BCE6D -:10588000FA01DC01AA0FBB1F9B01AC01BF5728F432 -:1058900022273327442750781FC0B75188F4AB2FF5 -:1058A0000024469537952795011CA395D2F3002037 -:1058B00069F0220F331F441FB395DAF30DD045CCA6 -:1058C00061307105A0E88A07B94630F49B01AC014C -:1058D0006627772788279078309621F020833183B8 -:1058E000428353830895AA1BBB1B51E107C0AA1F23 -:1058F000BB1FA617B70710F0A61BB70B881F991F71 -:105900005A95A9F780959095BC01CD01089597FB14 -:10591000072E16F4009407D077FD09D00E94732C4F -:1059200007FC05D03EF4909581959F4F08957095A2 -:1059300061957F4F0895EE0FFF1F0590F491E02DC4 -:105940000994F999FECF92BD81BDF89A992780B547 -:105950000895A8E1B0E042E050E00C94C92C262F55 -:10596000F999FECF92BD81BDF89A019700B4021655 -:1059700039F01FBA20BD0FB6F894FA9AF99A0FBE03 -:1059800008950196272F0E94B02C0C94AF2CDC01B7 -:10599000CB01FC01F999FECF06C0F2BDE1BDF89A3A -:1059A000319600B40D9241505040B8F70895F894E4 -:0259B000FFCF27 -:1059B200640007000CFF0000003F64041092106FA7 -:1059C200103B1007100101DF022808140A321E00E2 -:1059D20002040507090B0C0E1011131517181A1CD7 -:1059E2001D1F2123242628292B2D2F303234353711 -:1059F200393B1F0F03764F5F6F7F4969437909591E -:105A020053633149803F5D8B803FF8BF803FCAE1DD -:105A1200803F73ED803FCAE1803FF8BF803F5D8BDE -:105A2200803F3149803F0000803FF16D7F3F75EA42 -:105A32007E3F4C827E3F833F7E3F84287E3F833F72 -:105A42007E3F4C827E3F75EA7E3FF16D7F3F0000D4 -:105A5200803F3F4D3639ED04A0046A043104C4038B -:105A6200DD03F6030F04010203040506070809001B -:00000001FF diff --git a/keyboards/planck/keymaps/austin/compiled.hex b/keyboards/planck/keymaps/austin/compiled.hex deleted file mode 100644 index fcd925dae..000000000 --- a/keyboards/planck/keymaps/austin/compiled.hex +++ /dev/null @@ -1,1449 +0,0 @@ -:100000000C9496020C94DA020C94DA020C94DA0244 -:100010000C94DA020C94DA020C94DA020C94DA02F0 -:100020000C94DA020C94DA020C9478140C944A15AD -:100030000C94AC220C94DA020C94DA020C94DA02DE -:100040000C94DA020C943C030C94DA020C94DA025D -:100050000C94DA020C9414230C94DA020C94DA0255 -:100060000C94DA020C94DA020C94DA020C94DA02A0 -:100070000C94DA020C94DA020C94DA020C94DA0290 -:100080000C94ED0A0C94DA020C94DA020C94DA0265 -:100090000C94DA020C94DA020C94DA020C94DA0270 -:1000A0000C94DA020C94DA020C94DA02B715D91522 -:1000B000C716D915C7161E164116C7169616A916C5 -:1000C00093199319C219C219011A211A771B771BA8 -:1000D0002C1A771BDC1ADC1A431B4C1B771B711B79 -:1000E000E91AE91AE91AE91AE91AE91AE91AE91AF8 -:1000F000E91AE91AE91AE91AE91AE91AE91AE91AE8 -:10010000F91A071B0E1B151B1F1B07634236B79BF3 -:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 -:100120005763BD6DEDFD753EF6177231BF000000DF -:10013000803F08000000BE922449123EABAAAA2AC2 -:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD -:1001500000000000BF000000803F00000000000819 -:100160004178D3BB4387D1133D190E3CC3BD4282B6 -:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 -:10018000FFBE01C4FF7F3F00000000000000000030 -:1001900000000000000000010204060A0F17202CD6 -:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 -:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF -:1001C0000201000000000000000000000000F1A299 -:1001D000F1A3018C028C2B0014001A0008001500FA -:1001E00017001C0018000C00120013002A00290040 -:1001F00004001600070009000A000B000D000E00A5 -:100200000F0033003400E1001D001B000600190040 -:100210000500110010003600370038002800835018 -:10022000E300E200E00002202C002C00012050003E -:10023000510052004F002B0014001A000900130057 -:100240000A000D000F0018001C0033002A002900CE -:10025000040015001600170007000B00110008002D -:100260000C0012003400E1001D001B000600190004 -:1002700005000E0010003600370038002800C300CB -:10028000E300E200E00002202C002C0001205000DE -:10029000510052004F0035001E001F0020002100B9 -:1002A0002200230024002500260027002A00010048 -:1002B0000320042048120100010001002D002E003F -:1002C0002F00300031000100440045006800690043 -:1002D0006A006B006C006D006E006F000100010091 -:1002E0000100010001000100010001000120AB003C -:1002F000AA00A900AE0035021E021F022002210240 -:100300002202230224022502260227022A000100DB -:100310000320042048120100010001002D022E02DA -:100320002F023002310201003A003B003C003D0048 -:100330003E003F0040004100420043000100010038 -:100340000100010001000220010001000100AB00DA -:10035000AA00A900AE002803540068006500200030 -:1003600050006C0061006E0063006B0020004B00C9 -:100370006500790062006F00610072006400000097 -:100380002C034F007200740068006F006C0069005D -:100390006E0065006100720020004B00650079006E -:1003A00062006F00610072006400730000000403CB -:1003B000090409026D00040100A0FA09040000010B -:1003C00003010100092111010001223F00070581FD -:1003D0000308000A090401000103010200092111B8 -:1003E000010001224D000705820308000A090402EA -:1003F000000103000000092111010001223600075D -:1004000005830308000A0904030001030000000932 -:100410002111010001223900070584031000011297 -:1004200001100100000008EDFE6060010001020003 -:100430000105010906A101050719E029E7150025B5 -:1004400001950875018102050819012905950575B1 -:10045000019102950175039101050719002977158E -:10046000002501957875018102C005010980A1016F -:10047000850216010026B7001A01002AB700751080 -:1004800095018100C0050C0901A101850316010039 -:10049000269C021A01002A9C02751095018100C059 -:1004A00005010902A1010901A10005091901290598 -:1004B00015002501950575018102950175038101DE -:1004C0000501093009311581257F950275088106DE -:1004D00009381581257F950175088106050C0A38B4 -:1004E000021581257F950175088106C0C0050109A7 -:1004F00006A101050719E029E715002501950875F2 -:1005000001810295017508810105081901290595E8 -:1005100005750191029501750391010507190029DF -:10052000FF150025FF950675088100C011241FBE28 -:10053000CFEFDAE0DEBFCDBF04B603FE24C080916A -:100540001E0390911F03A0912003B09121038730D7 -:10055000904BA740B04BB9F410921E0310921F03AA -:10056000109220031092210314BE84B7877F84BFAA -:1005700088E10FB6F89480936000109260000FBE7F -:10058000E0E0F8E3099511E0A0E0B1E0E2EBF9E585 -:1005900002C005900D92A03CB107D9F713E0A0EC82 -:1005A000B1E001C01D92AE31B107E1F70E94BE116A -:1005B0000C94D72C0C9400000895089581E00895C0 -:1005C00008950C94DD020C94DE020C94E0020E946B -:1005D000A12823E030E0281B3109220F2093C40119 -:1005E0000895282F2F9880918000211108C0877FBF -:1005F0008093800010928D0010928C001BC0886048 -:1006000080938000233019F48FEF9FEF0FC083E0B9 -:1006100090E0821B9109880F991F2FEF3FEFA901EE -:1006200002C0569547958A95E2F7CA0190938D00CE -:1006300080938C000C94E7020E94E70284E0809390 -:10064000C3011092C0010895279A2F988FEF9FEF52 -:1006500090938700809386008AE08093800089E1F0 -:10066000809381000E940A280C941C030E9424039A -:100670006E9A769A0C94DC021F920F920FB60F922C -:1006800011242F933F938F939F93EF93FF93E091C8 -:10069000C101F091C201CF0101969093C2018093F4 -:1006A000C1010090C30102C0F695E7950A94E2F7F4 -:1006B000EF738091C001823019F4E03251F404C02C -:1006C000813039F4EF3329F480916F008D7F80936E -:1006D0006F00F0E0E457FE4FE49121E031E0E29F4B -:1006E000C001E39F900D11240090C40102C09695B3 -:1006F00087950A94E2F790938D0080938C00FF9188 -:10070000EF919F918F913F912F910F900FBE0F907E -:100710001F90189581E008950C948A0308950C9415 -:10072000360380911502882309F448C08091D101D5 -:100730009091D201009779F40E94DE229093D20129 -:100740008093D1018091D30190E0009771F4809162 -:10075000D40190E00AC00E94EA2220910001309169 -:1007600001012817390740F329C00197880F991F05 -:10077000880F991FFC01EB52FE4F608171818281CD -:1007800093810E94530AE091D30184E0E89FF00135 -:100790001124EB52FE4F60817181828193814FE081 -:1007A00050E00E940B0E8091D30190E00196609181 -:1007B000D40170E00E94872C8093D3010C94E10255 -:1007C000109217020C94200A0895089581E08093F6 -:1007D00017020C94E503089508958F929F92AF92AB -:1007E000BF92EF92FF920F931F93CF93DF93CDB7FA -:1007F000DEB7A3970FB6F894DEBF0FBECDBF7C0166 -:10080000FC0100811181C8010E94DB20B8010E9417 -:10081000F2058C01B7010E948C03882309F4CCC136 -:100820000032F0E51F0741F4F7018281882309F4C3 -:1008300058C00E946F0EC0C10132F0E51F0741F49D -:10084000F7018281882309F44CC00E94780EB4C15C -:100850000232F0E51F0751F4F7018281882309F481 -:1008600040C00E946B0E8111F0CFE3CF0332F0E560 -:100870001F0739F4F7018281882399F10E94E6036A -:100880009BC10432F0E51F0739F4F7018281882308 -:1008900041F10E94E00390C10532F0E51F0749F4E1 -:1008A000F70182818823E9F0809117028111F1CF4D -:1008B000E5CF0632F0E51F0739F4F701828188237E -:1008C00081F00E947F0E0AC00732F0E51F0749F44D -:1008D000F7018281882329F00E948A0E0E94EC038E -:1008E0006BC180911702811105C0F70182818111CE -:1008F000CFC018C1003E110579F4F7018281882329 -:1009000009F44DC00E94200A81E0809316021092E3 -:1009100015021092D40150C1023E110559F4F7019D -:1009200082818823E1F10E94200A1092160210921F -:10093000150242C1033E110591F4F701828188231B -:1009400071F10E94200A1092160281E08093150234 -:100950001092D3011092D2011092D1012DC1023513 -:10096000110559F4F7018281882309F425C180918A -:100970000001909101010A970DC00135110579F42C -:10098000F7018281882309F417C1809100019091B9 -:1009900001010A9690930101809300010DC14091DD -:1009A000040183E2EFE1F1E0DE01119601900D9286 -:1009B0008A95E1F7F701808121E030E02C0F3D1F9F -:1009C000280F311DC9012091020130910301FC0162 -:1009D000E20FF31F6081772767FD7095640F711D2B -:1009E000882777FD8095982F0E94A92920E030E084 -:1009F00040E451E40E940E294B015C01F701218182 -:100A000084E090E0821B9109BC01882777FD8095E6 -:100A1000982F0E94A9299B01AC01C501B4010E9435 -:100A2000A6289B01AC0160E070E080E090E40E94A9 -:100A30001C2B20E030E04CED50E40E94B92A4B0121 -:100A40005C01F70182818823D1F04FE050E0C501BD -:100A5000B4010E940B0E809116028823A1F08091B0 -:100A6000D40124E0829FF0011124EB52FE4F8082DA -:100A70009182A282B3828F5F8093D40104C0C501AA -:100A8000B4010E94530A0F3F110508F02ECF94C005 -:100A90008091D00181111FC0043130E5130709F0A6 -:100AA00051C00E948E0381E08093D0010E94DE221B -:100AB0009093CF018093CE011092C7011092C9018B -:100AC0001092C8011092CB011092CA011092CD0170 -:100AD0001092CC0171C08091CE019091CF010E9403 -:100AE000EA22883C910570F48091C701E82FF0E07C -:100AF000EE0FFF1FE853FE4F118300838F5F80933B -:100B0000C7015AC0043880E5180721F005381045A0 -:100B100001F13AC0F7018281882341F01092C501AA -:100B200082E01EC0043830E5130759F58091C501F5 -:100B3000811106C086E20E94371886E20E94FF18E3 -:100B400082E01CC00438F0E51F0741F3053810456A -:100B5000D9F4F7018281882331F01092C60180E236 -:100B60000E944E1929C08091C601811106C087E2FA -:100B70000E94371887E20E94FF1880E20E945519F0 -:100B80001BC00538104529F381E08093C50180938F -:100B9000C601C701A3960FB6F894DEBF0FBECDBF46 -:100BA000DF91CF911F910F91FF90EF90BF90AF9089 -:100BB0009F908F900C94E30280E0A3960FB6F89478 -:100BC000DEBF0FBECDBFDF91CF911F910F91FF9080 -:100BD000EF90BF90AF909F908F90089580E090E04D -:100BE000089508959CE0799FF001112490E3899F76 -:100BF000E00DF11D1124E60FF11DEE0FFF1FEA526B -:100C0000FE4F859194910895880F991FFC01E45B34 -:100C1000FF4F859194910895880F991FFC01E4532B -:100C2000FE4F8591949108950F931F93CF93DF9377 -:100C3000EC01811521E39207A0F5C11580E3D807E7 -:100C400008F0D7C0C83ED105D8F4C03ED10508F0A1 -:100C500007C2C83AD10578F4C53AD10508F06AC090 -:100C6000C130D10509F463C008F4F7C1C430D1051F -:100C700008F0F6C1F2C1CB3BD10508F466C0EDC166 -:100C8000C11590E2D90708F0AFC0C11521E0D20725 -:100C900008F0E6C1C03FD10508F4DFC18E01106540 -:100CA0001FC2C03880E5D80700F5C03790E5D907E6 -:100CB00008F0A3C0C11520E5D20709F4ACC050F478 -:100CC000CE01905480319F4008F0C7C1DF708E0183 -:100CD000106A06C2C13080E5D80709F4AEC0C4313D -:100CE00090E5D90708F4AFC0B8C1C33820E5D207F2 -:100CF00009F48EC050F4C13890E5D90709F482C0D8 -:100D000008F083C000E011EDEBC1C03181E5D807E8 -:100D100008F4A3C1C11597E5D90708F436C1CE017F -:100D200090578115904108F098C1DF7093C101E0A0 -:100D300010E0D6C1C53AD10509F494C1C63AD1052F -:100D400009F093C102E810E4CBC1C83AD10509F417 -:100D50008FC1C93AD10509F48EC1CA3AD10509F447 -:100D60008DC1CB3AD10509F48CC1CC3AD10509F437 -:100D70008BC1CD3AD10509F48AC1C03BD10509F434 -:100D800089C1CE3AD10509F488C1CF3AD10509F419 -:100D900087C1C13BD10509F486C1C23BD10509F425 -:100DA00085C1C33BD10509F484C1C43BD10509F415 -:100DB00083C1C53BD10509F482C1C63BD10509F405 -:100DC00081C1C73BD10509F480C1C83BD10509F4F5 -:100DD0007FC1C93BD10509F47EC1CA3BD10509F4E5 -:100DE0007DC100E014E47CC1CE019F700E940C061E -:100DF00078C1DD278E01106C73C1CF70DD278E01A5 -:100E0000146D6EC100E010ED6BC100E012ED68C121 -:100E100000E013ED65C10E94E21B0E94200A0E94BF -:100E2000E4038FEF94E32CE0815090402040E1F701 -:100E300000C000000E94392353C18091F2028160FA -:100E40008093F2024DC10E949A23811102C00E9438 -:100E500076230E94AD2390E090931D0380931C03A2 -:100E6000C23080E5D80721F480911C03816086C0E0 -:100E7000C43090E5D90721F480911C0382607EC0C4 -:100E8000C63020E5D20721F480911C03846076C02F -:100E9000C83080E5D80719F480911C0327C0CA30F8 -:100EA00090E5D90721F480911C03806167C0CC30A4 -:100EB00020E5D20721F480911C0380625FC0CE3010 -:100EC00080E5D80721F480911C03806457C0C031AD -:100ED00090E5D90721F480911C0380684FC0C2318E -:100EE00020E5D20729F480911C038460886046C005 -:100EF000C33080E5D80721F480911C038E7F3EC06B -:100F0000C53090E5D90721F480911C038D7F36C050 -:100F1000C73020E5D20721F480911C038B7F2EC0BF -:100F2000C93080E5D80719F480911C0326C0CB3066 -:100F300090E5D90721F480911C038F7E1FC0CD302E -:100F400020E5D20721F480911C038F7D17C0CF309C -:100F500080E5D80721F480911C038F7B0FC0C1313D -:100F600090E5D90721F480911C038F7707C0C33126 -:100F7000D04531F480911C038B7F877F80931C03C5 -:100F800080911C030E94B123ABC08D2F99278F70D5 -:100F9000992781309105D9F49E012370332702C02F -:100FA000880F991F2A95E2F79C688E0144E0000F94 -:100FB000111F4A95E1F700271370802B912B53E006 -:100FC000CC0FDD1F5A95E1F7C076DD272FC08230A8 -:100FD000910531F4DC2FCC278E01016F106A80C09F -:100FE0008330910569F4CE018370992701E010E008 -:100FF00002C0000F111F8A95E2F7C8019C680FC05C -:1010000084309105B9F4CE018370992701E010E096 -:1010100002C0000F111F8A95E2F7C8019A6823E009 -:10102000CC0FDD1F2A95E1F7C07ED7708C010C2B09 -:101030001D2B56C08530910531F4DC2FCC278E0155 -:10104000046F106A4DC0069709F04AC0CF71DD27C2 -:10105000DC2FCC278E01106243C000E010E040C0BE -:101060008E013EC001E810E43BC003E810E438C044 -:1010700002EE14E435C009EE14E432C00AEE14E4C2 -:101080002FC005EB14E42CC006EB14E429C007EBD9 -:1010900014E426C00CEC14E423C00DEC14E420C0CE -:1010A00003E815E41DC00AE815E41AC002E915E4D6 -:1010B00017C004E915E414C001E216E411C003E20C -:1010C00016E40EC004E216E40BC005E216E408C004 -:1010D00006E216E405C007E216E402C00AE216E4DE -:1010E000C801DF91CF911F910F9108959CE0799FE6 -:1010F000F001112490E3899FE00DF11D1124E60F0A -:10110000F11DEE0FFF1FEA52FE4F85919491803E34 -:101110009105E0F4803C910558F58133910509F47F -:101120006FC048F48932910509F463C08A32910591 -:1011300009F46DC072C089339105E9F082389105D8 -:10114000D1F08533910509F44DC067C0833E910508 -:1011500081F138F4803E9105B9F0823E9105D9F0D5 -:101160005CC0863E910561F1873E9105A1F155C0B5 -:101170000E940406089520911C0320FD02C021FF57 -:101180004CC080EE90E049C080911C0380FFF9CFF5 -:1011900089E390E042C080911C0382FF0EC08091E1 -:1011A0001C0384FF03C080E090E037C083EE90E032 -:1011B00034C080911C0382FFF2CF82EE90E02DC0FC -:1011C00080911C0383FF0BC080911C0384FDEBCF37 -:1011D00087EE90E022C080911C0383FFF5CF86EE5E -:1011E00090E01BC080911C0385FF07C089E290E05E -:1011F00014C080911C0385FFF9CF85E390E00DC0FA -:1012000080911C0386FF07C08AE290E006C08091AF -:101210001C0386FFF9CF81E390E00E941406089535 -:101220000C94E502E82FF0E0E25BFE4F8081E82FAE -:10123000EF70F0E082958F7021E030E0A90102C0EC -:10124000440F551F8A95E2F740A308950F931F930B -:10125000CF93DF9385B7806885BF85B7806885BFEA -:10126000C3E0D0E001E010E0FE01E25BFE4F8081D0 -:10127000E82FEF70F0E021A182958F70A80102C0E5 -:10128000440F551F8A95E2F7CA01822B81A38C2F48 -:101290000E941209219740F78BE090E061E070E036 -:1012A000FC01EE5BFE4F2081E22FEF70F0E042A1E7 -:1012B00022952F70DB0102C0AA0FBB1F2A95E2F70F -:1012C0009D01242B22A3019758F7DF91CF911F9105 -:1012D0000F910C948F03EF92FF920F931F93CF9374 -:1012E000DF9300E212E0C3E0EE24E394F12CD5E0BA -:1012F0008C2F0E9412098BE090E040E050E0FC014E -:10130000EE5BFE4F6081E62FEF70F0E020A130E051 -:1013100062956F7002C0359527956A95E2F720FDBA -:1013200009C09701082E02C0220F331F0A94E2F76A -:10133000422B532B019718F7F801929182918F015C -:101340008417950721F051834083D09305018C2F9A -:101350000E941209C15060F68091050187FD2CC0E2 -:101360008150809305018F3F39F08FE99FE001970D -:10137000F1F700C0000020C080911E0290911F0272 -:10138000909327028093260280911C0290911D0267 -:10139000909325028093240280911A0290911B025F -:1013A0009093230280932202809118029091190257 -:1013B00090932102809320020E94910381E0DF91AB -:1013C000CF911F910F91FF90EF900895E82FF0E0DB -:1013D000EE0FFF1FE05EFD4F80819181089508951B -:1013E0000F931F93CF9308E212E0C0E0F8019291AF -:1013F00082918F010E945622C80FF2E000321F072F -:10140000A9F78C2FCF911F910F9108950E949A23D5 -:10141000811102C00E9476230E94BF23809307039C -:101420003E9A809171008D7F8093710082E080935D -:1014300090008AE18093910081E080932A020895D0 -:1014400080912A02811102C00E94060A10927A023B -:1014500010927902809171008D7F8093710080914C -:1014600090008F738093900010923C0210923B0288 -:10147000109273021092740210927502109276020A -:101480001092720210927102E1E5F2E0A1E4B2E082 -:1014900011921192119211921D921D9282E0E137E8 -:1014A000F807B1F70895CF92DF92EF92FF920F9372 -:1014B0001F93CF93DF9320913B02222309F484C032 -:1014C0006B017C0180912A02811102C00E94060AF0 -:1014D00001E712E0C7E0D0E0A7019601F801929180 -:1014E0008291729162918F010E940A29811131C00B -:1014F000FE01EE0FFF1FEE0FFF1FEF5AFD4F108290 -:10150000118212821382DE01AA0FBB1FAF5BBD4F97 -:1015100011961C921E92C730D105E9F021964481A4 -:1015200055816681778140835183628373831482FE -:1015300015821682178212968D919C91139711969F -:101540009C938E9313961C921E9212973496129629 -:10155000E2CF219708F68091790290917A02019763 -:1015600097FD05C090937A028093790204C010928F -:101570007A02109279028091790290917A022091F8 -:101580007702309178022817390724F010927802F8 -:1015900010927702892BC1F4809171008D7F809326 -:1015A0007100809190008F7380939000109273026D -:1015B00010927402109275021092760210927202CA -:1015C0001092710210923B02DF91CF911F910F9107 -:1015D000FF90EF90DF90CF9008951F920F920FB67B -:1015E0000F9211244F925F926F927F928F929F92EF -:1015F000AF92BF92CF92DF92EF92FF922F933F93E1 -:101600004F935F936F937F938F939F93AF93BF930A -:10161000CF93DF93EF93FF9380913B02882309F4EC -:101620009BC1C0917902D0917A021C161D060CF064 -:1016300093C140902B0250902C0260902D0270902C -:101640002E0220E030E0A901C301B2010E94B52AB8 -:1016500018160CF065C0C130D10509F452C0809154 -:10166000770290917802BE010E94872C7C019093B2 -:1016700078028093770280903D0290903E02A09085 -:101680003F02B090400220E030E040E85FE3C50157 -:10169000B4010E94A62860933D0270933E0280939D -:1016A0003F0290934002F701EE0FFF1FEE0FFF1F66 -:1016B000EF5AFD4FA3019201608171818281938174 -:1016C0000E940E2920E030E040E05EE30E94B92A4B -:1016D0009B01AC01C501B4010E94B52A18168CF417 -:1016E000C7010196BE010E94872C909378028093D7 -:1016F000770210923D0210923E0210923F02109229 -:101700004002E0917702F0917802EE0FFF1FEE0F9A -:10171000FF1FEF5AFD4F6081718182819381D0C09C -:10172000C0907302D0907402E0907502F09076023F -:1017300020E030E0A901C701B6010E940A292197E3 -:10174000882309F4A2C0FE01EE0FFF1FEE0FFF1F5A -:10175000EF5AFD4F80809180A280B380A501940153 -:10176000C701B6010E940A2987FF31C0A501940173 -:1017700060E070E08CED93EC0E940E2920E030E0F8 -:1017800040E451E40E940E2920E030E040E05FE3B5 -:101790000E94B92A9B01AC0160E070E080E090E417 -:1017A0000E941C2B9B01AC01C501B4010E94B92A07 -:1017B0009B01AC01C701B6010E940A2987FF07C03F -:1017C000A701960160E070E08CED93E439C0A501BB -:1017D0009401C701B6010E94B52A18160CF055C035 -:1017E000A501940160E070E08CED93E40E940E2965 -:1017F00020E030E040E451E40E940E2920E030E097 -:1018000040E05FE30E94B92A9B01AC0160E070E018 -:1018100080E090E40E941C2B9B01AC01C501B40147 -:101820000E94B92A9B01AC01C701B6010E94B52AEA -:1018300018165CF5A701960160E070E08CED93EC62 -:101840000E940E2920E030E040E451E40E940E297D -:1018500020E030E040E05FE30E94B92A9B01AC0148 -:1018600060E070E080E090E40E941C2B9B01AC01E2 -:10187000C701B6010E94B92A609373027093740283 -:10188000809375029093760213C0FE01EE0FFF1F46 -:10189000EE0FFF1FEF5AFD4F80819181A281B3812E -:1018A0008093730290937402A0937502B0937602B2 -:1018B000609173027091740280917502909176022A -:1018C00020912802309129022F3F4FEF340731F049 -:1018D0002F5F3F4F30932902209328020E94950EDC -:1018E0006B017C0120E034E244EF51E40E940A29BC -:1018F00087FF08C086EFC82E88E2D82E84EFE82E36 -:1019000081E4F82E20E030E040E051E4C701B60168 -:101910000E94B92A9B01AC0160E074E284E79BE479 -:101920000E940E296B017C010E947B297093970015 -:1019300060939600209106013091070140910801C3 -:1019400050910901C701B6010E94B92A0E947B2962 -:10195000709399006093980080913C02882309F469 -:1019600033C1C0903702D0903802E0903902F09035 -:101970003A0220E030E0A901C701B6010E94B52A71 -:101980001816D4F580912802909129028F3F2FEFED -:10199000920729F001969093290280932802C701AB -:1019A000B6010E94950E20E030E040E051E40E9434 -:1019B000B92A9B01AC0160E074E284E79BE40E94D9 -:1019C0000E296B017C010E947B2970939700609324 -:1019D0009600209106013091070140910801509135 -:1019E0000901C701B6010E94B92A0E947B297093A0 -:1019F00099006093980008C010929700109296008A -:101A00001092990010929800609131027091320208 -:101A10006F5F7F4F70933202609331022091960086 -:101A20003091970080E090E0232BF1F0C091960078 -:101A3000D09197000E94A7296B017C01BE0180E034 -:101A400090E00E94A7299B01AC0160913302709144 -:101A5000340280913502909136020E940E2920E0D6 -:101A60003FEF4FE757E410C00E94A7296B017C01AC -:101A700020E030EE4FEF54E4609133027091340275 -:101A800080913502909136020E94B92A9B01AC01E7 -:101A9000C701B6010E94B52A87FD96C080912F022A -:101AA0008F5F80932F0290E0209103033091040315 -:101AB00082179307A0F080910E03882319F01092EB -:101AC0002F020DC0809171008D7F809371008091F5 -:101AD00090008F738093900010923C027DC08091A3 -:101AE0003002C0912F02811128C0C0900803D0900D -:101AF0000903E0900A03F0900B0320E030E0A90115 -:101B0000C701B6010E94B52A1816BCF481E0809383 -:101B1000300210923702109238021092390210925D -:101B20003A02C0923302D0923402E0923502F0922F -:101B30003602C150C0932F0243C01092300210925F -:101B4000290210922802E0910503F091060348E073 -:101B5000C49FE00DF11D112480819181A281B38188 -:101B60008093370290933802A0933902B0933A02DF -:101B700020E030E040E85EE36481758186819781F2 -:101B80000E94B92A6B017C0180910A01682F70E0E4 -:101B900080E090E00E94A72920E030E048EC52E489 -:101BA0000E940E299B01AC01C701B6010E94B92A0F -:101BB000609333027093340280933502909336021F -:101BC00010923202109231028091070380FD04C00E -:101BD00010923C0210923B02FF91EF91DF91CF9166 -:101BE000BF91AF919F918F917F916F915F914F9135 -:101BF0003F912F91FF90EF90DF90CF90BF90AF90EB -:101C00009F908F907F906F905F904F900F900FBE3E -:101C10000F901F901895CF92DF92EF92FF92CF9383 -:101C2000DF936B017C01EA0180912A02811102C0DD -:101C30000E94060A8091070380FF46C080917902C6 -:101C400090917A0208970CF03FC0809171008D7FCF -:101C50008093710080913C0281110E94200A81E0F2 -:101C600080933B02109229021092280220E030E07B -:101C7000A901C701B6010E94B52A1816DCF48091AB -:101C8000790290917A02FC01EE0FFF1FEE0FFF1F09 -:101C9000EF5AFD4FC082D182E282F382FC01EE0F47 -:101CA000FF1FEF5BFD4FD183C083019690937A02B3 -:101CB000809379028091710082608093710080919D -:101CC0009000806880939000DF91CF91FF90EF901B -:101CD000DF90CF90089580910703817008958091DF -:101CE00007038160809307030E94C3230C94EB03D6 -:101CF000809107038E7F809307030C94C323809108 -:101D00007B0290E0019666E070E00E94872C809351 -:101D10007B02089580917B0290E0019766E070E07D -:101D20000E94872C80937B0208958F929F92AF929E -:101D3000BF92CF92DF92EF92FF920F931F93CF93B8 -:101D4000DF936B017C01C0912802D0912902BE0172 -:101D500080E090E00E94A7294B015C01A701960159 -:101D600060E070E08CE594E40E940E299B01AC01D8 -:101D7000C501B4010E94B92A0E947B2920917B02EF -:101D8000233009F473C028F4222351F02130E9F004 -:101D90002CC1243009F4A0C0253009F4E0C025C1CD -:101DA00080E090E0A0E0BFE38093060190930701FC -:101DB000A0930801B093090110922B0210922C02FB -:101DC00010922D0210922E0210C110922B0210922E -:101DD0002C0210922D0210922E026431710540F4F3 -:101DE0006A30710560F520E030E040E85EE32BC02A -:101DF000693C710508F0AAC080E090E00E94A72924 -:101E000020E030E040EA51E40E94A52820E030E0E4 -:101E100044E353E40E940E299B01AC010E94B92ABD -:101E200020E030E040E05EE30E94B92A9B01AC0173 -:101E300060E070E080E09EE30E94A52844C020E0BE -:101E400030E040E05FE3C701B6010E94B92A6B01B0 -:101E50007C0180E090E0A0E0BEE3809306019093D7 -:101E60000701A0930801B0930901BFC010922B0293 -:101E700010922C0210922D0210922E024AE0469FE0 -:101E80009001479F300D1124C90168EB7BE00E944F -:101E9000732CBC016C5D754077FF03C07195619533 -:101EA0007109882777FD8095982F0E94A9292EE334 -:101EB00033EC4EE259E30E94B92A20E030E040ECD6 -:101EC0005EE30E94A6286093060170930701809349 -:101ED00008019093090189C010922B0210922C02E4 -:101EE00010922D0210922E02CE0183709927892B19 -:101EF000E1F0BE016170772780E090E00E94A729A1 -:101F000020E030E040E05EE30E94B92A20E030E0CB -:101F100040E45FE30E94A6286093060170930701E6 -:101F200080930801909309010CC080E090E0A0E04C -:101F3000BFE38093060190930701A0930801B0933B -:101F40000901C770DD27CD2B09F04FC010920601A3 -:101F500010920701109208011092090146C01092D8 -:101F60002B0210922C0210922D0210922E0200E0F1 -:101F700010E020E03FE30093060110930701209357 -:101F80000801309309016739710578F180E090E02C -:101F90000E94A72920E030E047E153E40E94A528F1 -:101FA00020E030E04AE754E40E940E2920E030E0CF -:101FB00048E452E40E94B92A20E030E040EA51E4CB -:101FC0000E94EB290E947629660F771F660F771F04 -:101FD000FB01EE5AFE4F2081318142815381C701BE -:101FE000B6010E94B92A6B017C01C701B601DF91DD -:101FF000CF911F910F91FF90EF90DF90CF90BF9006 -:10200000AF909F908F90089580918C020895CF9308 -:10201000DF9300D01F92CDB7DEB79C0180911303F0 -:10202000843019F593E099833B832A839093E900E8 -:102030008FEF9091E800815095FD06C095ED9A953F -:10204000F1F700008111F5CF8091E80085FF0DC008 -:1020500040E050E063E070E0CE0101960E9468121B -:102060008091E8008E778093E8000F900F900F909A -:10207000DF91CF910895CF93DF9300D01F92CDB71A -:10208000DEB720911303243021F522E029839B83BE -:102090008A8383E08093E9008FEF9091E80081507C -:1020A00095FD06C095ED9A95F1F700008111F5CFE9 -:1020B0008091E80085FF0DC040E050E063E070E0F3 -:1020C000CE0101960E9468128091E8008E7780937D -:1020D000E8000F900F900F90DF91CF91089520911D -:1020E00013032430F1F422E02093E9002FEF309124 -:1020F000E800215035FD06C035ED3A95F1F70000B6 -:102100002111F5CF2091E80025FF0BC040E050E001 -:1021100065E070E00E9468128091E8008E778093FD -:10212000E8000895CF93DF93EC019091130394306E -:1021300009F046C0809115018823D9F080911601DD -:102140008823B9F09093E9008FEF9091E8008150D7 -:1021500095FD06C095E19A95F1F700008111F5CF44 -:102160008091E80085FF2CC040E050E060E170E025 -:1021700017C081E08093E9008FEF9091E8008150D3 -:1021800095FD06C095ED9A95F1F700008111F5CF08 -:102190008091E80085FF14C040E050E068E070E006 -:1021A000CE010E9468128091E8008E778093E8004B -:1021B00080E1FE01ACE7B2E001900D928A95E1F773 -:1021C000DF91CF91089580911203811109C00E947F -:1021D000FD130E945A148091E20084608093E20013 -:1021E0000895109212030895089508950C94A12261 -:1021F00042E061EC81E00E94771342E061EC82E012 -:102200000E94771342E061EC83E00E94771342E181 -:1022100061EC84E00C94771380911503833009F40A -:1022200055C030F4813071F0823009F48EC00895C9 -:102230008A3009F47AC08B3009F460C0893009F023 -:102240009CC020C080911403813A09F096C080910F -:10225000E800877F8093E80080911803909119032C -:10226000892B21F460E18CE792E003C060E080E01C -:1022700090E070E00E94B3128091E8008B77809329 -:10228000E800089580911403813209F076C08091AE -:10229000180390911903009719F0039709F06DC086 -:1022A0008091E800877F8093E8008091E80082FDBC -:1022B00005C0809113038111F8CF5FC08091F100B8 -:1022C00080938C028091E8008B7753C08091140337 -:1022D000813A09F052C08091180390911903892B1B -:1022E00009F04BC08091E800877F8093E8008091DF -:1022F000E80080FFFCCF8091150136C08091140367 -:102300008132D9F58091180390911903892BA9F591 -:102310008091E800877F8093E8000E94AC13809151 -:102320001603809315010C94E21B809114038132F3 -:1023300021F58091E800877F8093E8000E94AC132C -:102340008091170380938D02089580911403813A40 -:10235000A1F48091E800877F8093E8008091E800F5 -:1023600080FFFCCF80918D028093F1008091E80086 -:102370008E778093E8000C94AC13089584B7877F20 -:1023800084BF88E10FB6F8948093600010926000DB -:102390000FBE90E080E80FB6F894809361009093B0 -:1023A00061000FBE0E944F170E94FD130E945A1435 -:1023B0008091E20084608093E20078940E94E016AD -:1023C0000E9451178BE091E00E94FB16809113034D -:1023D000853069F40E946222809111038823B1F351 -:1023E0000E949022882391F30E945212EFCF0E9404 -:1023F0005917ECCF292F332723303105C9F064F466 -:102400002130310581F02230310509F043C08DE6DD -:1024100090E022EB33E042C021323105F1F022326C -:10242000310541F137C082E190E02FE134E036C060 -:1024300099278130910541F08230910541F0892B37 -:1024400049F5EEEAF3E005C0E0E8F3E002C0E6E5B6 -:10245000F3E0849190E09F0121C06430D8F4E62F2E -:10246000F0E0EE0FFF1FE255FE4F2081318189E041 -:1024700090E014C0643070F470E0FB01EE0FFF1FB9 -:10248000EA55FE4F20813181FB01EE55FE4F8081E0 -:1024900090E004C080E090E020E030E0FA01318379 -:1024A0002083089580E189BD82E189BD09B400FEE1 -:1024B000FDCF8091D8008F7D8093D8008091E0007F -:1024C00082608093E0008091E00081FDFCCF089560 -:1024D000CF92DF92EF92FF920F931F93CF93DF93F0 -:1024E000EC018B016A010E94CB13811133C0C1142E -:1024F000D10439F0F60180819181081B190BC80FB6 -:10250000D91FE12CF12C0115110519F18091E8007A -:1025100085FD16C08091E8008E778093E800C11495 -:10252000D10449F0F60180819181E80EF91EF18213 -:10253000E08285E00FC00E94CB13882321F30AC0FC -:1025400089918093F10001501109FFEFEF1AFF0A02 -:10255000DACF80E0DF91CF911F910F91FF90EF9044 -:10256000DF90CF90089520911A0330911B03261716 -:10257000370748F06115710539F42091E8002E778E -:102580002093E80001C0B90140E061157105A9F18F -:1025900020911303222309F443C0253009F442C0DB -:1025A0002091E80023FD40C02091E80022FD32C0C8 -:1025B0002091E80020FFE9CF4091F3002091F20044 -:1025C00030E0342BFC01CF016115710559F0283042 -:1025D000310540F481918093F100615071092F5FC2 -:1025E0003F4FF1CF41E02830310509F040E0209124 -:1025F000E8002E772093E800C8CF4111C9CF0AC068 -:1026000080911303882361F0853061F08091E800A8 -:1026100083FD0AC08091E80082FFF2CF80E0089538 -:1026200082E0089583E0089581E0089520911A03DF -:1026300030911B032617370748F06115710539F4EF -:102640002091E8002E772093E80001C0B901FC0139 -:1026500020E06115710591F180911303882309F43D -:1026600040C0853009F43FC08091E80083FD3DC043 -:102670008091E80082FD2FC08091E80080FFE9CFC3 -:102680002091F3008091F20090E0922B611571058A -:1026900059F08830910540F424912093F10031964F -:1026A000615071090196F2CF21E0089709F020E00E -:1026B0008091E8008E778093E800CBCF2111CCCFBA -:1026C0000AC080911303882361F0853061F0809106 -:1026D000E80083FD0AC08091E80082FFF2CF80E02D -:1026E000089582E0089583E0089581E00895982F89 -:1026F000973058F59093E900981739F07091EC00F5 -:102700002091ED005091F00003C0242F762F50E06F -:1027100021FF19C03091EB003E7F3093EB003091E8 -:10272000ED003D7F3093ED003091EB003160309350 -:10273000EB007093EC002093ED005093F00020919B -:10274000EE0027FF07C09F5FD3CF8F708093E90013 -:1027500081E0089580E008958091140387FF11C0FF -:102760008091E80082FD05C0809113038111F8CFAC -:1027700011C08091E8008B770BC0809113038823F0 -:1027800049F08091E80080FFF8CF8091E8008E77D3 -:102790008093E80008952091E4003091E50095E6EB -:1027A0004091EC00842F817040FF22C08091E800AE -:1027B00080FD1CC080911303882391F0853091F037 -:1027C0008091EB0085FD10C04091E4005091E50040 -:1027D0004217530729F39A01915011F784E00895A5 -:1027E00082E0089583E0089581E0089580E00895EF -:1027F0004091E80042FFDECF08950E946B140E94D2 -:102800007314E0EEF0E0808181608083E8EDF0E019 -:1028100080818F77808319BCA7EDB0E08C918E7F8B -:102820008C9380818F7E80831092120308950F9382 -:102830001F93CF93DF930E946B140E947314C8ED13 -:10284000D0E088818F7788838881806888838881B9 -:102850008F7D888319BC1092130310920F0310927E -:1028600011031092100300EE10E0F80180818B7FBD -:10287000808388818160888342E060E080E00E94FC -:102880007713E1EEF0E080818E7F8083E2EEF0E06E -:10289000808181608083808188608083F80180816D -:1028A0008E7F8083888180618883DF91CF911F91A3 -:1028B0000F910895E8EDF0E080818F7E8083E7ED51 -:1028C000F0E080818160808384E082BF81E080933A -:1028D00012030C941714E8EDF0E080818E7F808362 -:1028E0001092E20008951092DA001092E10008952B -:1028F0001F920F920FB60F9211242F933F934F9375 -:102900005F936F937F938F939F93AF93BF93EF9357 -:10291000FF938091E10082FF0BC08091E20082FF73 -:1029200007C08091E1008B7F8093E1000E94DF1659 -:102930008091DA0080FF1FC08091D80080FF1BC00B -:102940008091DA008E7F8093DA008091D90080FF39 -:102950000DC080E189BD82E189BD09B400FEFDCFD3 -:1029600081E0809313030E94E31005C019BC10920C -:1029700013030E94F1108091E10080FF19C0809143 -:10298000E20080FF15C08091E2008E7F8093E2001C -:102990008091E20080618093E2008091D8008062A3 -:1029A0008093D80019BC85E0809313030E94F51032 -:1029B0008091E10084FF30C08091E20084FF2CC050 -:1029C00080E189BD82E189BD09B400FEFDCF80911F -:1029D000D8008F7D8093D8008091E1008F7E809316 -:1029E000E1008091E2008F7E8093E2008091E2001E -:1029F00081608093E20080910F03882311F084E0CE -:102A000007C08091E30087FD02C081E001C083E040 -:102A1000809313030E94F6108091E10083FF29C088 -:102A20008091E20083FF25C08091E100877F809341 -:102A3000E10082E08093130310920F038091E10084 -:102A40008E7F8093E1008091E2008E7F8093E20090 -:102A50008091E20080618093E20042E060E080E0EB -:102A60000E9477138091F00088608093F0000E94AC -:102A7000F410FF91EF91BF91AF919F918F917F9152 -:102A80006F915F914F913F912F910F900FBE0F90DB -:102A90001F9018951F920F920FB60F9211242F932B -:102AA0003F934F935F936F937F938F939F93AF93D6 -:102AB000BF93CF93DF93EF93FF93C091E900CF7063 -:102AC0008091EC00D82FD17080FDD0E81092E90001 -:102AD0008091F000877F8093F00078940E948E159B -:102AE0001092E9008091F00088608093F000CD2B77 -:102AF000CF70C093E900FF91EF91DF91CF91BF912B -:102B0000AF919F918F917F916F915F914F913F9185 -:102B10002F910F900FBE0F901F9018951F93CF937A -:102B2000DF93CDB7DEB7AA970FB6F894DEBF0FBE1E -:102B3000CDBFE4E1F3E088E08E0F9091F100919336 -:102B40008E13FBCF0E940C118091E80083FF1FC100 -:102B50008091140390911503492F50E04A3051059C -:102B600008F015C1FA01EA5AFF4F0C949B2C8038EB -:102B700081F0823809F00BC1809118038F70809327 -:102B8000E9008091EB0085FB882780F91092E9002D -:102B900006C0809110039091110391118260909171 -:102BA000E800977F9093E8008093F1001092F10085 -:102BB000C8C0282F2D7F09F0EAC0882319F0823081 -:102BC00061F0E5C080911603813009F0E0C09330D8 -:102BD00009F080E0809311032BC0809116038111CE -:102BE00027C0809118038F7009F4D1C08093E90049 -:102BF0002091EB0020FF1CC0933021F48091EB006A -:102C0000806214C09091EB0090619093EB0021E002 -:102C100030E0A90102C0440F551F8A95E2F74093A6 -:102C2000EA001092EA008091EB0088608093EB004C -:102C30001092E9008091E800877F86C08111A7C0CB -:102C4000109116031F778091E3008078812B809389 -:102C5000E3008091E800877F8093E8000E94AC1336 -:102C60008091E80080FFFCCF8091E3008068809332 -:102C7000E300111102C082E001C083E080931303DE -:102C800086C08058823008F082C0809116039091EF -:102C900017038C3D53E0950779F583E08A838AE238 -:102CA00089834FB7F894DE01139620E03EE051E2AD -:102CB000E32FF0E050935700E49120FF03C0E2952A -:102CC000EF703F5FEF708E2F90E0EA3010F0C79604 -:102CD00001C0C0968D939D932F5F243149F74FBF5C -:102CE0008091E800877F8093E8006AE270E0CE017F -:102CF00001960E94B31214C0AE014F5F5F4F609106 -:102D000018030E94FA11BC01009709F440C0909189 -:102D1000E800977F9093E80089819A810E941613BA -:102D20008091E8008B778093E80031C0803879F596 -:102D30008091E800877F8093E80080910F03809363 -:102D4000F1008091E8008E778093E8000E94AC1338 -:102D50001EC081111CC0909116039230C0F4809166 -:102D6000E800877F8093E80090930F030E94AC13E4 -:102D700080910F03811106C08091E30087FD02C09E -:102D800081E001C084E0809313030E94F8108091D9 -:102D9000E80083FF0AC08091E800877F8093E80005 -:102DA0008091EB0080628093EB00AA960FB6F894B6 -:102DB000DEBF0FBECDBFDF91CF911F910895089563 -:102DC000CF93809113038823A1F0C091E900CF70C5 -:102DD0009091EC00892F817090FD80E8C82B1092B3 -:102DE000E9008091E80083FD0E948E15CF70C093AA -:102DF000E900CF91089590939302809392020895F1 -:102E0000E0919202F0919302309721F00190F081CD -:102E1000E02D099480E00895E0919202F0919302F0 -:102E2000309721F00280F381E02D09940895E0911C -:102E30009202F0919302309721F00480F581E02D09 -:102E4000099408952091900230919102821793077E -:102E500071F09093910280939002E0919202F09130 -:102E60009302309721F00680F781E02D09940895B0 -:102E700020918E0230918F028217930771F0909308 -:102E80008F0280938E02E0919202F091930230972C -:102E900021F00084F185E02D0994089508950C94A3 -:102EA0004E170E94D5220E9426090E945B230C9493 -:102EB0000A285F926F927F928F929F92AF92BF92F9 -:102EC000CF92DF92EF92FF920F931F93CF93DF93F6 -:102ED00000D000D01F92CDB7DEB70E946B099DE9EC -:102EE000C92E92E0D92E03E010E0AA24A394B12CBD -:102EF000502E802F0E94E6094C01F60172906290DC -:102F00006F016826792661147104A1F4015011093A -:102F100078F78FEF89838A831B820E94DE2281608B -:102F2000782F9D838C8349815A816B818D810E948A -:102F3000091838C08091F20281FD0E94EF092BE050 -:102F400030E07501022E02C0EE0CFF1C0A94E2F77D -:102F5000C70186219721892B09F129835A828E2066 -:102F60009F2091E0892809F490E09B830E94DE2253 -:102F70008160782F9D838C8349815A816B818D81FB -:102F80000E940918000F111FF801EB56FD4F8081B8 -:102F90009181E826F926F182E08204C021503109AE -:102FA00080F6B4CF0E944225109194020E9400172F -:102FB0001817D1F00E940017809394020F900F9081 -:102FC0000F900F900F90DF91CF911F910F91FF9075 -:102FD000EF90DF90CF90BF90AF909F908F907F90B9 -:102FE0006F905F900C9410090F900F900F900F90BE -:102FF0000F90DF91CF911F910F91FF90EF90DF9095 -:10300000CF90BF90AF909F908F907F906F905F9088 -:103010000895CF93DF93CDB7DEB72B970FB6F89413 -:10302000DEBF0FBECDBF4F83588769877A878B87F6 -:10303000DE01119686E0FD0111928A95E9F785E09F -:10304000FE01379601900D928A95E1F749815A81E8 -:103050006B817C818D819E810E94801E2B960FB694 -:10306000F894DEBF0FBECDBFDF91CF910895CF930F -:10307000882309F4C2C0C82F823859F40E9400176F -:1030800081FDBBC089E30E945A210E94272289E367 -:103090000CC0833879F40E94001780FDAEC083E530 -:1030A0000E945A210E94272283E50E949C21CF91F1 -:1030B0000C942722843859F40E94001782FD9DC089 -:1030C00087E40E945A210E94272287E4EECF8CEFEA -:1030D0008C0F813A48F48C2F0E94722781118DC089 -:1030E0008C2F0E945A21E3CF80E28C0F883048F465 -:1030F000C77081E001C0880FCA95EAF70E94E021FD -:10310000D6CF8BE58C0F833078F4C53A29F0C63AD8 -:1031100031F083E890E005C081E890E002C082E8E9 -:1031200090E0CF910C94221788E58C0F833108F042 -:1031300064C0C83A39F1C93A41F1CA3A49F1CB3AC7 -:1031400051F1CC3A59F1CD3A61F1C03B69F1CE3A37 -:1031500071F1CF3A79F1C13B81F1C23B89F1C33BB7 -:1031600091F1C43B99F1C53BA1F1C63BA9F1C73B25 -:10317000B1F1C83BB9F1C93BC1F1CA3BC9F180E02B -:1031800090E038C082EE90E035C089EE90E032C029 -:103190008AEE90E02FC085EB90E02CC086EB90E0AB -:1031A00029C087EB90E026C08CEC90E023C08DEC2A -:1031B00090E020C083E891E01DC08AE891E01AC049 -:1031C00082E991E017C084E991E014C081E292E0C5 -:1031D00011C083E292E00EC084E292E00BC085E26F -:1031E00092E008C086E292E005C087E292E002C069 -:1031F0008AE292E0CF910C943817CF9108958823FA -:1032000009F44BC0823859F40E94001781FF45C071 -:1032100089E30E945A210E94272289E30CC0833847 -:1032200071F40E94001780FF38C083E50E945A2184 -:103230000E94272283E50E949C210C942722843837 -:1032400059F40E94001782FF28C087E40E945A2187 -:103250000E94272287E4EFCF9CEF980F913A58F312 -:1032600090E2980F983050F4877091E001C0990F68 -:103270008A95EAF7892F0E94E621DFCF9BE5980F18 -:10328000933020F480E090E00C942217885A833128 -:1032900020F480E090E00C9438170895882321F002 -:1032A0000E94E0210C9427220895882321F00E9497 -:1032B000E6210C94272208957F928F929F92AF92DD -:1032C000BF92CF92DF92EF92FF920F931F93CF9313 -:1032D000DF931F92CDB7DEB77C01C62E772EFC019F -:1032E000058102950F70128111110E94FD210E942B -:1032F0005321882379F0112369F080E28C0D883006 -:1033000048F082E00E943C210E94532191E0D82E97 -:10331000D92601C0D12CE72DE295EF70F0E0E05AFC -:10332000FF4F0C949B2C872D807F072D0F708823D7 -:1033300011F00295007F112389F0002309F499C14F -:1033400080E28C0D883020F4802F0E94E02103C0A1 -:10335000802F0E94F0210E9427228BC18C2D0E9479 -:10336000FF18002309F4C3C180E28C0D883020F4DB -:10337000802F0E94E62103C0802F0E94F6210E9428 -:103380002722B5C1872D807F972D9F70803211F441 -:10339000892F03C0892F8295807FCC2021F0F1E016 -:1033A000CF16A1F01DC0112339F0002319F101300F -:1033B00009F50E9410229BC1002319F0013009F485 -:1033C00096C189830E941322898110C1112321F0A3 -:1033D000063008F08CC10EC0053008F088C106C167 -:1033E000112359F0002331F0F701958190FF41C17D -:1033F0009F7095830E944E197AC1002309F4F6C08C -:103400003EC1872D86958695837090E0009719F0D0 -:10341000019761F06CC1112321F08C2D972D9370D1 -:1034200002C080E090E00E94221761C1112321F0C8 -:103430008C2D972D937002C080E090E00E94381789 -:1034400056C18C2D112319F00E944A2402C00E94FB -:10345000B2240E9437254BC1872D837009F052C0DA -:10346000111145C18C2D829586958770880F880F24 -:103470009C2D9F70892E912CA12CB12C082E04C05C -:10348000880C991CAA1CBB1C0A94D2F7C4FE14C059 -:103490000FE010E020E030E0B901A80104C0440FC3 -:1034A000551F661F771F8A95D2F7CB01BA01609529 -:1034B00070958095909503C060E070E0CB01272D5A -:1034C00026952695237030E02230310569F02330AF -:1034D000310589F0682979298A299B29213031050C -:1034E00071F00E94C81F03C1682979298A299B2984 -:1034F0000E94E41FFCC00E94C81FC501B4010E94C5 -:10350000AC1FF5C0112319F0872D817001C086957D -:10351000882309F4ECC08C2D829586958770880FDE -:10352000880F9C2D9F70892E912CA12CB12C082ED8 -:1035300004C0880C991CAA1CBB1C0A94D2F7C4FEB8 -:1035400014C00FE010E020E030E0B901A80104C091 -:10355000440F551F661F771F8A95D2F7CB01BA011A -:10356000609570958095909503C060E070E0CB0108 -:10357000272D269526952370422F50E04230510585 -:1035800069F04330510589F0682979298A299B29F6 -:103590004130510571F00E94A220A9C06829792903 -:1035A0008A299B290E94BE20A2C00E94A220C50198 -:1035B000B4010E9486209BC08C2D90E0FC01E05E4F -:1035C000F109E531F10508F050C0E059FF4F0C94C6 -:1035D0009B2C0C2D0F70872D8F71112321F00E94D1 -:1035E0001F20802F07CF0E944020802F0E94551956 -:1035F0007EC0112341F0053008F079C0872D8F710E -:103600000E94652074C0063008F071C0F7CF112306 -:1036100039F0872D8F710E941F2069C01123C9F3D3 -:10362000872D8F710E94402062C0112329F0872DC1 -:103630008F710E940A205BC00E94002058C0112395 -:1036400051F0172D1F71812F0E941F2063E0812FE1 -:103650000E9433214CC081E00E943C21023008F4DA -:1036600046C082E00E943C2142C0112331F0002379 -:1036700081F28C2D0E9437183AC0002389F28C2DDC -:103680000E94FF1834C0472D4F706C2DC7010E9457 -:10369000EE050E94241F2BC0111129C0472D4F7029 -:1036A00050E042305105B9F04CF44115510581F01C -:1036B00041305105E1F40E94322819C043305105D0 -:1036C00069F04430510599F48C2D0E9484280FC074 -:1036D0000E941B280CC00E944E2809C00E9461282D -:1036E00006C0472D4F706C2DC7010E94F105DD20EB -:1036F000F9F00E942F2180FD1BC0F70112820E9469 -:1037000029210E941F20C7010E94A71B0E94292176 -:103710000F90DF91CF911F910F91FF90EF90DF906D -:10372000CF90BF90AF909F908F907F900C9440204F -:103730000F90DF91CF911F910F91FF90EF90DF904D -:10374000CF90BF90AF909F908F907F9008950F93F0 -:103750001F93CF93DF93EC01888199812B813C816A -:10376000232BB9F09F3F11F48F3F99F0CE010E94B7 -:10377000ED03882371F0688179818A810E94252177 -:103780008C010E94DA200E94A11FB801CE010E9484 -:103790005C19DF91CF911F910F9108950E94FD2137 -:1037A0000E940D220E94D2210E9427220E94E82519 -:1037B0000E94372580E090E00E94221780E090E090 -:1037C0000C9438170E94ED210C94CE1B0E941A21F4 -:1037D000292F22952F7030E02C3031054CF42A30FF -:1037E00031056CF42250310922303105A8F407C0AC -:1037F0002C30310569F02F30310551F00DC0803F7C -:1038000069F018F4803E40F409C0843F29F406C0F2 -:1038100093FB882780F9089580E0089581E008955A -:10382000CF93DF9300D000D01F92CDB7DEB70F90BB -:103830000F900F900F900F90DF91CF910895CF933D -:10384000DF9300D000D000D0CDB7DEB726960FB6FC -:10385000F894DEBF0FBECDBFDF91CF9108951F93C7 -:10386000CF93DF93C0919D0216E080919E02C8170E -:1038700099F0D0E01C9FF0011D9FF00D1124E1563E -:10388000FD4F4081518162817381848195810E94C5 -:103890001F1C2196C770E9CFDF91CF911F9108952A -:1038A0004091CF025091D0026091D1027091D2022A -:1038B0008091D3029091D4020C941F1C8091D40269 -:1038C00082958F7009F054C08091D102882309F449 -:1038D0004FC080919D02A0919E026091CF02709195 -:1038E000D0024091D2025091D302B6E08A1709F477 -:1038F0003FC090E041155105C1F17F3F11F46F3F8A -:10390000A1F1B89FF001B99FF00D1124E156FD4FD0 -:10391000218172132AC02081621327C022812111C4 -:1039200024C0238134812417350710F42150310934 -:10393000241B350B283C3105C0F42091D4022F7094 -:1039400020612093D40226E0289FF001299FF00DEA -:103950001124EC55FD4F80818F70806180838FEC46 -:1039600092E00E94A71B0C942F1C01968770BECF7B -:103970000895CF92DF92EF92FF920F931F93CF9310 -:10398000DF93CDB7DEB762970FB6F894DEBF0FBEF8 -:10399000CDBF8C0185E0F801DE011D9601900D92EE -:1039A0008A95E1F7D8014C9111965C911197129686 -:1039B0006C9112971396CD90DC9014973091CF02B2 -:1039C0007091D0028091D2029091D302009709F4B5 -:1039D0006BC17F3F19F43F3F09F466C1E090D1020B -:1039E000EE2009F4C0C02091D402C816D90628F0F0 -:1039F000F601E81BF90BCF0104C0809590958C0D62 -:103A00009D1DFF24F394883C910578F0F12C207FD4 -:103A100009F0C6C07C2DD98AC88A89890E94101CE9 -:103A20008FEC92E00E94A71BB1C0822F807F09F02B -:103A300046C0751314C0341312C0611110C02F702A -:103A400020612093D4020E94501C8FEC92E00E94CF -:103A5000A71B8091D402D80115968C932EC0CD2837 -:103A600019F15F3F11F44F3FF9F0F62E61111CC0C0 -:103A700080919D0220919E0236E0821709F45AC07F -:103A800090E0389FF001399FF00D1124E156FD4F71 -:103A90007181571306C07081471303C07281711181 -:103AA00003C001968770E9CFF62E662309F418C18A -:103AB0008091D40281608093D402F12C11C17513DE -:103AC00008C0341306C0611104C08091D402D8012B -:103AD000C3C04D875E878D859E856A8B0E94E61BDD -:103AE0006A898823E1F16623D1F12091D402822FE3 -:103AF00082958F7090E0029774F08091CF02909140 -:103B0000D00298878F831986DB86CA862C87CE01E0 -:103B100007960E94A71B86E0F801AFECB2E0019087 -:103B20000D928A95E1F70E945E1C0E94501CFF24B2 -:103B3000F394D6C04D875E878D859E850E941A219D -:103B4000292F22952F7030E0223031050CF0BCC0B7 -:103B50009F7009F0B6C0805E883008F4C1C0C8010B -:103B60000E94A71BE4CFC816D90608F453C0F6017B -:103B7000E81BF90BCF01883C910508F450C0F12CEB -:103B80007C2DD98AC88A89890E94101CEFECF2E04A -:103B900086E0DF011D928A95E9F70E94501CA0C0C3 -:103BA000751314C0341312C0611110C08091D40277 -:103BB000F8018583C8010E94A71B86E0EFECF2E0C4 -:103BC000DF011D928A95E9F7FE2C8AC04D875E873A -:103BD0008D859E856A8B0E94E61B6A89882309F47D -:103BE000BECF662309F4BBCF2091D402822F8295E9 -:103BF0008F7090E002970CF48ECF8091CF0290915D -:103C0000D0029A8389831B82DD82CC822E83CE01EF -:103C100001967FCF809590958C0D9D1DACCFF62E93 -:103C2000662309F49CCF75132EC034132CC0209149 -:103C3000D40220FD1FC0822F82958F70D9F0D80149 -:103C400015962C9315978F3049F08F5F982F92958A -:103C5000907F822F8F70892B15968C93C8010E94BC -:103C6000A71B86E0F801AFECB2E001900D928A95B7 -:103C7000E1F793CF86E0F801AFECB2E001900D924E -:103C80008A95E1F72DC04D875E878D859E850E94C0 -:103C9000E61B811140CF8091D40281608093D402D1 -:103CA000C8010E94A71B1CC0662309F458CF4D878A -:103CB0005E878D859E850E94E61B882309F44FCF81 -:103CC0002ACF811148CF0CC0243031050CF047CFEA -:103CD0009F7009F440CFF8019581907F09F03BCFA8 -:103CE0008F2D62960FB6F894DEBF0FBECDBFDF9169 -:103CF000CF911F910F91FF90EF90DF90CF9008959B -:103D00001F93CF93DF93CDB7DEB72C970FB6F89400 -:103D1000DEBF0FBECDBF4F83588769877A878B87F9 -:103D20009C87CE0107960E94B91C882369F08F8179 -:103D300098852A853B85232BF1F19F3F09F063C0CD -:103D40008F3F09F060C037C086E0FE013796DE0184 -:103D5000119601900D928A95E1F76F817885EA8539 -:103D6000FB85309741F17F3F11F46F3F21F12091A6 -:103D70009E0230E0C90101968770992740919D020B -:103D800050E08417950709F447C069837A83FD835F -:103D9000EC8396E0929FD001939FB00D1124A15621 -:103DA000BD4FFE01319601900D929A95E1F78093F7 -:103DB0009E020E942F1C16E080919D0290919E020F -:103DC0008917C1F1189FC001112481569D4F0E948F -:103DD000B91C882379F1E0919D021E9FF001112406 -:103DE000E156FD4F408151816281738184819581CB -:103DF0000E941F1C80919D0290E001968770992778 -:103E000080939D02D9CF4F81588569857A858B85AE -:103E10009C850E941F1CCFCF0E94E21B10929E0225 -:103E200010929D02EFECF2E086E0DF011D928A9590 -:103E3000E9F7C1CF2C960FB6F894DEBF0FBECDBF09 -:103E4000DF91CF911F910895EF92FF920F931F93EF -:103E5000CF93DF938C01009709F46CC0F12CEE2412 -:103E6000E394E8012196F8018491843740F484308A -:103E700008F051C0813081F0823019F15BC0853784 -:103E800009F444C0A8F19CE7980F903708F052C09D -:103E90008F770E94FF1841C00E5F1F4FFE01C49133 -:103EA00080E28C0F883048F4C7708E2D01C0880FD7 -:103EB000CA95EAF70E94002214C08C2F0E9437187E -:103EC0002DC00E5F1F4FFE01C49180E28C0F883021 -:103ED00058F4C7708E2D01C0880FCA95EAF70E946A -:103EE00006220E9427221AC08C2F0E94FF1816C09B -:103EF0000E5F1F4FFE01C491CC2381F08FE99FE03C -:103F00000197F1F700C00000C150F6CF0E5F1F4FC0 -:103F1000FE01F49003C00E9437188E018F2D882374 -:103F200009F49FCFEFE9FFE03197F1F700C00000FF -:103F30008150F5CFDF91CF911F910F91FF90EF90BE -:103F4000089508956093D9027093DA028093DB029A -:103F50009093DC020C94CE1B0F931F930091D90217 -:103F60001091DA022091DB023091DC02DC01CB01FE -:103F7000802B912BA22BB32B8093D9029093DA0242 -:103F8000A093DB02B093DC021F910F910C94CE1B27 -:103F90000F931F930091D9021091DA022091DB0256 -:103FA0003091DC02DC01CB0180239123A223B323D7 -:103FB0008093D9029093DA02A093DB02B093DC02E3 -:103FC0001F910F910C94CE1B0F931F930091D90258 -:103FD0001091DA022091DB023091DC02DC01CB018E -:103FE00080279127A227B3278093D9029093DA02E2 -:103FF000A093DB02B093DC021F910F910C94CE1BB7 -:104000001092D5021092D6021092D7021092D802C6 -:104010000C94CE1B41E050E060E070E004C0440F1F -:10402000551F661F771F8A95D2F74093D50250938C -:10403000D6026093D7027093D8020C94CE1B41E055 -:1040400050E060E070E004C0440F551F661F771F0A -:104050008A95D2F78091D5029091D602A091D7028D -:10406000B091D802482B592B6A2B7B2B4093D50259 -:104070005093D6026093D7027093D8020C94CE1B53 -:1040800041E050E060E070E004C0440F551F661F3F -:10409000771F8A95D2F740955095609570958091DD -:1040A000D5029091D602A091D702B091D8024823B0 -:1040B00059236A237B234093D5025093D602609301 -:1040C000D7027093D8020C94CE1B41E050E060E020 -:1040D00070E004C0440F551F661F771F8A95D2F702 -:1040E0008091D5029091D602A091D702B091D802CA -:1040F000482759276A277B274093D5025093D60239 -:104100006093D7027093D8020C94CE1B0F931F9329 -:104110000091D5021091D6022091D7023091D80299 -:10412000DC01CB01802B912BA22BB32B8093D502EA -:104130009093D602A093D702B093D8021F910F910B -:104140000C94CE1B0F931F930091D5021091D602B1 -:104150002091D7023091D802DC01CB01802391233A -:10416000A223B3238093D5029093D602A093D702C3 -:10417000B093D8021F910F910C94CE1B0F931F93F5 -:104180000091D5021091D6022091D7023091D80229 -:10419000DC01CB0180279127A227B3278093D5028A -:1041A0009093D602A093D702B093D8021F910F919B -:1041B0000C94CE1B0895CF92DF92EF92FF920F9353 -:1041C0001F93CF93DF938C01C090D902D090DA0275 -:1041D000E090DB02F090DC028091D5029091D60253 -:1041E000A091D702B091D802C82AD92AEA2AFB2A7C -:1041F000CFE1D0E0D701C6010C2E04C0B695A7953B -:10420000979587950A94D2F780FF06C0B8018C2F46 -:104210000E947608019721F4219760F780E001C0A1 -:104220008C2FDF91CF911F910F91FF90EF90DF9036 -:10423000CF900895CF93DF93EC010E94DB20BE0165 -:104240000E947608DF91CF910895CB010E941A2138 -:1042500008958091DD0285958595859508958091D5 -:10426000DD028770089598E0899F90011124262B24 -:104270002093DD020C941F202091DD028095822383 -:104280008093DD02982F977069F430E0482F55270E -:1042900047FD50952417350729F085958595859517 -:1042A0000C94402008959091DD02977081E009F40C -:1042B00080E0089590911501992321F090911601C5 -:1042C000911109C02091170130911801F90132961E -:1042D0009FEF40E01FC0982F9695969596959F303A -:1042E00050F5E0911701F0911801E90FF11D877069 -:1042F00021E030E0A90102C0440F551F8A95E2F782 -:10430000CA019181892B818308959F3F39F04F5FC6 -:104310004E3041F051915813F8CF0DC05111F7CFE5 -:10432000942FF5CF9F3F39F0F901E90FF11D97FD6B -:10433000FA9582830895089590911501992321F0AB -:1043400090911601911109C0209117013091180127 -:10435000F9013296205F3F4F1FC0982F9695969592 -:1043600096959F30F0F4E0911701F0911801E90F54 -:10437000F11D877021E030E0A90102C0440F551FF4 -:104380008A95E2F7CA0180959181892381830895F6 -:104390003196E217F30729F090819813F9CF108234 -:1043A000F7CF089581E090E0E0911701F0911801B6 -:1043B000E80FF91F1082019680319105A9F7089541 -:1043C0009091F102892B8093F1020895809590914C -:1043D000F10289238093F10208951092F102089569 -:1043E0009091F002892B8093F0020895809590912E -:1043F000F00289238093F00208951092F00208954C -:104400009091EF02892B8093EF020895809590910F -:10441000EF0289238093EF0208951092EF0208952E -:104420008093DE0208951092DE02089580911701B4 -:1044300090911801FC0131969C01205F3F4F80E074 -:10444000919191118F5FE217F307D1F70895E091F1 -:104450001701F09118018091F1028083E09117011A -:10446000F091180190818091F002892B8083E09176 -:104470001701F091180190818091EF02892B8083C0 -:104480008091DE02882361F0E0911701F09118011C -:104490009081892B80830E94162281111092DE0266 -:1044A00080911701909118010C940C1720E000974F -:1044B00039F0AC0141505109842395232F5FF7CF88 -:1044C000822F089580911303843039F11092F30202 -:1044D00020E488E190E00FB6F894A89580936000FE -:1044E0000FBE2093600080E00E94F10280E00E94F5 -:1044F000100983B7817F846083BF83B7816083BFE6 -:104500007894889583B78E7F83BF88E10FB6F8943F -:1045100080936000109260000FBE08950895089582 -:1045200080E00E94F1020E948E220E946B090E948C -:104530008F220E94F00991E0811101C090E0892F43 -:1045400008950E94E21B80E00E94F1020E940A2866 -:104550000E9400170C9410091F920F920FB60F9231 -:1045600011248F939F93AF93BF938091F302811196 -:1045700013C08091F4029091F502A091F602B091DF -:10458000F7024196A11DB11D8093F4029093F502AC -:10459000A093F602B093F702BF91AF919F918F91D4 -:1045A0000F900FBE0F901F90189582E084BD93E08E -:1045B00095BD9AEF97BD80936E0008952FB7F8943C -:1045C0008091F4029091F502A091F602B091F70269 -:1045D0002FBF0895CF92DF92EF92FF920F931F9318 -:1045E0002FB7F8944091F4025091F5026091F602D1 -:1045F0007091F7022FBF6A017B01EE24FF248C012A -:1046000020E030E0C016D106E206F30610F4415077 -:1046100051099A01281B390BC9011F910F91FF9075 -:10462000EF90DF90CF9008951F920F920FB60F92E8 -:1046300011248F939F93AF93BF938091F402909135 -:10464000F502A091F602B091F7020196A11DB11DED -:104650008093F4029093F502A093F602B093F702D0 -:10466000BF91AF919F918F910F900FBE0F901F90B0 -:1046700018950E94FD13F8942FEF87EA91E62150D8 -:1046800080409040E1F700C0000087E090EBDC0143 -:1046900080931E0390931F03A0932003B0932103E4 -:1046A0009CE088E10FB6F894A895809360000FBE57 -:1046B00090936000FFCF0E949A23811102C00E9454 -:1046C00076230E94A5238093F2020E94AD2380935B -:1046D0001C0387FB882780F9809316010E94A92379 -:1046E000682F70E080E090E00C94A21F6DEE7EEFEA -:1046F00080E090E00E94C12C60E082E090E00E94A7 -:10470000AF2C60E083E090E00E94AF2C60E084E09A -:1047100090E00E94AF2C60E085E090E00E94AF2C1A -:1047200060E086E090E00E94AF2C6FEF87E090E0C1 -:104730000C94AF2C80E090E00E94A92C21E08D3EEB -:104740009E4F09F020E0822F089582E090E00C94C3 -:10475000A12C83E090E00C94A12C84E090E00C94D8 -:10476000A12C682F84E090E00C94AF2C86E090E0C0 -:104770000C94A12C682F86E090E00C94AF2C87E07D -:1047800090E00C94A12C682F87E090E00C94AF2C63 -:104790008091FA0280FF0BC060911C0185E0689F48 -:1047A000B001112475956795759567952BC081FFAC -:1047B00009C060911C0185E0689FB00111247595C6 -:1047C000679520C082FF07C060911C0185E0689F4B -:1047D000B001112417C09091FB029923D1F0609190 -:1047E0001B01961788F720911C0185E0289F9001F6 -:1047F0001124929FA001939F500D112470E0CA01D3 -:104800000E94872C6038710540F46115710539F0FC -:1048100002C065E070E0862F08958FE7089581E07B -:1048200008958091FA0280FF08C060911A0170E03B -:10483000759567957595679521C081FF06C0609154 -:104840001A0170E07595679519C082FF04C06091E8 -:104850001A0170E010C09091FB029923C1F06091A1 -:1048600019019617A0F780911A01899FC0011124A0 -:1048700070E00E94872C6038710528F4611571057D -:1048800021F0862F08958FE7089581E0089561E073 -:1048900070E0F4CF803F21F40E94C823819504C0CA -:1048A000813F29F40E94C8238093FE020895823F2D -:1048B00021F40E94C823819504C0833F29F40E94FB -:1048C000C8238093FD020895893F19F40E941124A2 -:1048D00005C08A3F31F40E94112481958093FF0224 -:1048E00008958B3F21F40E941124819504C08C3FD0 -:1048F00029F40E941124809300030895843F21F439 -:104900008091FC02816017C0853F21F48091FC02F8 -:10491000826011C0863F21F48091FC0284600BC04C -:10492000873F21F48091FC02886005C0883F31F404 -:104930008091FC0280618093FC0208958D3F21F4F8 -:104940008091FA0281600BC08E3F21F48091FA02BF -:10495000826005C08F3F29F48091FA0284608093C1 -:10496000FA020895803F39F48091FE0287FF6CC0FF -:104970001092FE0269C0813F29F48091FE02181650 -:10498000BCF362C09091FD02823F29F497FF5CC0A6 -:104990001092FD0259C0833F19F41916CCF354C08C -:1049A000893F41F48091FF0218160CF04DC010921F -:1049B000FF024AC08A3F29F48091FF0287FF44C06A -:1049C000F6CF8B3F39F48091000387FF3DC01092F2 -:1049D00000033AC08C3F29F4809100031816BCF301 -:1049E00033C0843F21F48091FC028E7F17C0853F45 -:1049F00021F48091FC028D7F11C0863F21F48091CB -:104A0000FC028B7F0BC0873F21F48091FC02877FE3 -:104A100005C0883F31F48091FC028F7E8093FC02B8 -:104A200013C08D3F21F48091FA028E7F0BC08E3F20 -:104A300021F48091FA028D7F05C08F3F29F4809187 -:104A4000FA028B7F8093FA028091FD0281110EC0E1 -:104A50008091FE0281110AC08091FF02811106C07F -:104A600080910003811102C01092FB0208958CEF27 -:104A700092E00E9417170E94DE229093F902809321 -:104A8000F80208951F93CF93DF938091F8029091DD -:104A9000F9020E94EA22AC019091FB02992321F0D5 -:104AA00020911D0130E006C020911E018AE0289F60 -:104AB000900111244217530708F486C08091FD022B -:104AC000C091FE02D091FF0210910003811107C036 -:104AD000C11176C0D11174C0111172C075C09F3F51 -:104AE00019F09F5F9093FB02181624F40E94C823CC -:104AF0008093FD028091FD0287FF05C00E94C823BC -:104B000081958093FD021C1624F40E94C823809393 -:104B1000FE028091FE0287FF05C00E94C823819596 -:104B20008093FE026091FD02662339F1C091FE027E -:104B3000CC2319F1772767FD7095872F972F0E9457 -:104B4000A92923E333E343E35FE30E94B92A0E94E8 -:104B500076296093FD026C2F772767FD7095872F6C -:104B6000972F0E94A92923E333E343E35FE30E94E5 -:104B7000B92A0E9476296093FE021D1624F40E9431 -:104B800011248093FF028091FF0287FF05C00E94DD -:104B9000112481958093FF02111624F40E941124A0 -:104BA000809300038091000387FF05C00E941124B9 -:104BB000819580930003DF91CF911F910C9437254D -:104BC0009F3F09F08ECF96CFDF91CF911F9108952F -:104BD000ECEFF2E085E0DF011D928A95E9F7109293 -:104BE000FB021092FA020895833081F128F481309B -:104BF00059F08230D1F00895853009F449C0B8F1F8 -:104C0000863009F456C0089580911E01262F30E0A9 -:104C1000280F311D2F3F310524F4680F60931E01CA -:104C200008958FEF80931E01089580911D01262F16 -:104C300030E0280F311D2F3F310524F4680F6093B9 -:104C40001D0108958FEF80931D01089580911C012F -:104C5000262F30E0280F311D2F3F310524F4680F37 -:104C600060931C0108958FEF80931C01089580913B -:104C70001B01262F30E0280F311D2F3F310524F472 -:104C8000680F60931B0108958FEF80931B010895B7 -:104C900080911A01262F30E0280F311D2F3F31055A -:104CA00024F4680F60931A0108958FEF80931A011E -:104CB000089580911901262F30E0280F311D2F3FD4 -:104CC000310524F4680F6093190108958FEF8093E4 -:104CD00019010895833011F128F4813049F08230B0 -:104CE00091F00895853081F120F18630C1F1089569 -:104CF00080911E01681720F4861B80931E01089581 -:104D000010921E01089580911D01681720F4861BE2 -:104D100080931D01089510921D01089580911C013A -:104D2000681720F4861B80931C01089510921C01C3 -:104D3000089580911B01681720F4861B80931B0146 -:104D4000089510921B01089580911A01681720F4AC -:104D5000861B80931A01089510921A01089580917C -:104D60001901681720F4861B809319010895109289 -:104D7000190108950F931F93873208F048C08E31B0 -:104D800008F08DC0803109F477C008F5873009F448 -:104D900061C068F4863009F09DC08091F202817F85 -:104DA0008E7F8093F20281E08093020394C08B3067 -:104DB00009F489C08E3009F08DC08091F20282FB27 -:104DC000222720F991E0922790FB82F95EC086317C -:104DD00009F479C060F4813109F07CC00E94E21BC3 -:104DE0009091160181E08927809316016CC089316A -:104DF00009F469C08B3109F06DC08091F20281FB2A -:104E0000222720F991E0922790FB81F93EC0883358 -:104E100009F459C050F4893209F457C0853309F4B4 -:104E200054C0873209F451C055C0833409F44DC0D1 -:104E300028F48A3308F44EC0895332C0883409F00C -:104E400049C00E94E21B0E94200A0E94E4030E94C3 -:104E5000392339C09091F202892F8095817080FBAF -:104E600090F929F0966098609093F20234C0997F8F -:104E7000977F9093F20227C08091F20283FB222752 -:104E800020F991E0922790FB83F98093F202992315 -:104E9000D1F08091F20281608093F20214C08D51B2 -:104EA00041E050E060E070E08A019B0104C0000F27 -:104EB000111F221F331F8A95D2F7C901B8010E9422 -:104EC000A21F0E94E21B81E006C061E070E080E06A -:104ED00090E0F5CF80E01F910F91089580E0089554 -:104EE00080E00895CF93C82F80910203813069F04C -:104EF00018F08230C9F184C0E0911701F0911801D7 -:104F00008081823209F07EC007C0E0911701F091E4 -:104F100018018081823261F48C2F0E946E278111EA -:104F200004C08C2F0E94BA261DC081E090E01AC0F8 -:104F30008C2F0E947027811114C0C43179F048F47D -:104F4000CB3079F0C03109F061C082E08093020378 -:104F500008C0C93219F0C83321F058C010920203BA -:104F600055C081E0817054C0C93291F120F5C4313F -:104F700079F1B0F4C73009F047C08EE180931E018B -:104F800082E380931D018AE080931C0184E1809379 -:104F90001B0188E080931A0188E28093190134C0D4 -:104FA000CE51C63088F5EC2FF0E0EA54FE4F8081F8 -:104FB0008093010329C0CE34E9F020F4CB3421F5ED -:104FC0006AE013C0C13579F0C235F1F461E00DC07B -:104FD00080910103882319F01092010315C081E02C -:104FE0008093020315C061E006C0809101030E9416 -:104FF000F4250AC06AE0809101030E946A2604C079 -:105000001092020380E004C081E002C080E0AACFD9 -:10501000CF9108950E949A23811102C00E947623A5 -:105020000E94B62380931D0380FF02C0869501C0B5 -:1050300080E00C94F10280911D03982F9695292F02 -:1050400030E0233031054CF49F5F990F8170892B3C -:10505000816080931D030E94BA2380911D03869571 -:105060000C94F10280911D03982F969591F0915820 -:10507000990F8170892B80931D038E7F91E009F435 -:1050800090E080911D0390FB80F980931D030E94A6 -:10509000BA2380911D0386950C94F10280911D0323 -:1050A000982F909590FB80F980931D030E94BA235E -:1050B00080911D0380FF02C0869501C080E00C94A2 -:1050C000F10290911D03892F86958F5F8F779170E4 -:1050D000843028F4880F892B80931D0302C090939D -:1050E0001D0380911D038E7F91E009F490E0809173 -:1050F0001D0390FB80F980931D030E94BA238091C9 -:105100001D0386950C94F10220911D03922F969514 -:105110008927982F990F822F8170892B80931D03E7 -:105120008E7F91E009F490E080911D0390FB80F95F -:1051300080931D030E94BA2380911D0386950C94D1 -:10514000F10280911D03869508955058BB27AA2728 -:105150000ED0D1C1C2D130F0C7D120F031F49F3F81 -:1051600011F41EF4B7C10EF4E095E7FB9FC1E92FDF -:10517000D3D180F3BA17620773078407950718F035 -:1051800071F49EF5EBC10EF4E0950B2EBA2FA02D15 -:105190000B01B90190010C01CA01A0011124FF27E4 -:1051A000591B99F0593F50F4503E68F11A16F040DF -:1051B000A22F232F342F4427585FF3CF46953795DE -:1051C0002795A795F0405395C9F77EF41F16BA0BA3 -:1051D000620B730B840BBAF09150A1F0FF0FBB1F51 -:1051E000661F771F881FC2F70EC0BA0F621F731F9A -:1051F000841F48F4879577956795B795F7959E3FF7 -:1052000008F0B3CF9395880F08F09927EE0F979584 -:105210008795089527D108F481E008950CD06BC1DB -:1052200063D140F05AD130F021F45F3F19F03EC114 -:10523000511195C14FC170D198F39923C9F35523EA -:10524000B1F3951B550BBB27AA2762177307840779 -:1052500038F09F5F5F4F220F331F441FAA1FA9F32F -:1052600033D00E2E3AF0E0E830D091505040E69521 -:10527000001CCAF729D0FE2F27D0660F771F881F82 -:10528000BB1F261737074807AB07B0E809F0BB0B71 -:10529000802DBF01FF2793585F4F2AF09E3F510595 -:1052A00068F004C15CC15F3FECF3983EDCF3869587 -:1052B00077956795B795F7959F5FC9F7880F911D0B -:1052C0009695879597F90895E1E0660F771F881FF7 -:1052D000BB1F621773078407BA0720F0621B730BAA -:1052E000840BBA0BEE1F88F7E095089504D06894FC -:1052F000B11135C1089518D188F09F5790F0B92F9A -:105300009927B751A0F0D1F0660F771F881F991F1A -:105310001AF0BA95C9F712C0B13081F01FD1B1E0CF -:1053200008951CC1672F782F8827B85F39F0B93FDF -:10533000CCF3869577956795B395D9F73EF490951C -:105340008095709561957F4F8F4F9F4F0895E8949A -:1053500009C097FB3EF490958095709561957F4FBD -:105360008F4F9F4F9923A9F0F92F96E9BB2793956B -:10537000F695879577956795B795F111F8CFFAF47B -:10538000BB0F11F460FF1BC06F5F7F4F8F4F9F4FAC -:1053900016C0882311F096E911C0772321F09EE80A -:1053A000872F762F05C0662371F096E8862F70E070 -:1053B00060E02AF09A95660F771F881FDAF7880F4A -:1053C0009695879597F9089588D018F011F08CD0AC -:1053D00038F480C0C4C0E92F9FD0B0F35523C9F37F -:1053E000E7FB6217730784079507A8F199F3E92F84 -:1053F000FF2788232AF03197660F771F881FDAF777 -:10540000952F5527442332F091505040220F331FDF -:10541000441FD2F7BB27E91BF50B621B730B840BF0 -:10542000B109C1F222F4620F731F841FB11D3197BD -:105430002AF0660F771F881FBB1FEFCF9150504097 -:105440005AF041F0882332F0660F771F881F915081 -:105450005040C1F7939530C08695779567959F5FCB -:10546000D9F7F8CF990F0008550FAA0BE0E8FEEF27 -:1054700016161706E807F907C0F012161306E40718 -:10548000F50798F0621B730B840B950B39F40A2611 -:1054900061F0232B242B252B21F408950A2609F4EF -:1054A000A140A6958FEF811D811D089597F99F67F3 -:1054B00080E870E060E008959F3F31F0915020F463 -:1054C000879577956795B795880F911D96958795E0 -:1054D00097F908959FEF80EC089500240A9416161A -:1054E000170618060906089500240A9412161306D2 -:1054F000140605060895092E0394000C11F4882360 -:1055000052F0BB0F40F4BF2B11F460FF04C06F5F7B -:105510007F4F8F4F9F4F089557FD9058440F551F51 -:1055200059F05F3F71F04795880F97FB991F61F025 -:105530009F3F79F087950895121613061406551F9C -:10554000F2CF4695F1DF08C0161617061806991F08 -:10555000F1CF86957105610508940895E894BB27FD -:1055600066277727CB0197F908957CDF08F48FEF42 -:1055700008950BD0C0CFB1DF28F0B6DF18F0952327 -:1055800009F094CFA7CF1124EACFC6DFA0F3959FEF -:10559000D1F3950F50E0551F629FF001729FBB271A -:1055A000F00DB11D639FAA27F00DB11DAA1F649FC6 -:1055B0006627B00DA11D661F829F2227B00DA11D79 -:1055C000621F739FB00DA11D621F839FA00D611DFF -:1055D000221F749F3327A00D611D231F849F600D20 -:1055E000211D822F762F6A2F11249F5750408AF059 -:1055F000E1F088234AF0EE0FFF1FBB1F661F771FE5 -:10560000881F91505040A9F79E3F510570F04ECF32 -:10561000A6CF5F3FECF3983EDCF3869577956795D0 -:10562000B795F795E7959F5FC1F7FE2B880F911D02 -:105630009695879597F90895FA01EE0FFF1F30961A -:105640002105310599F16115710561F48038BFE3D9 -:105650009B0749F168949038810561F08038BFEF6D -:105660009B0741F0992342F5FF3FE10531052105F4 -:1056700011F1E8940894E795D901AA2329F4AB2FF6 -:10568000BE2FF85FD0F310C0FF5F70F4A695E0F76F -:10569000F73950F019F0FF3A38F49F779F930CD008 -:1056A0000F9007FC905808953EF014CF60E070E032 -:1056B00080E89FE308954FE79F775F934F933F9371 -:1056C0002F939ED02F913F914F915F9152DF05C054 -:1056D00019F40EF0EBCE42CFFDCE26DFC8F396389C -:1056E000C0F707F80F92E8942BE33AEA48EB5FE73C -:1056F0004EDF0F920F920F924DB75EB70F92C0D050 -:10570000EAE0F1E016D04F915F91EF91FF91E595BE -:10571000EE1FFF1F49F0FE57E0684427EE0F441FBD -:10572000FA95E1F74195550B32D00F9007FE26C050 -:105730000895DF93CF931F930F93FF92EF92DF9221 -:105740007B018C01689405C0DA2EEF011EDFFE019B -:10575000E894A5912591359145915591AEF3EF01CE -:1057600006DDFE019701A801DA9479F7DF90EF904A -:10577000FF900F911F91CF91DF9108959B01AC0194 -:1057800060E070E080E89FE349CD90CE95CECCDE1E -:10579000E8F39923D9F3940F511DBBF39150504076 -:1057A00094F059F0882332F0660F771F881F9150CC -:1057B0005040C1F79E3F510544F7880F911D9695C3 -:1057C000879597F908955F3FACF0983E9CF0BB2712 -:1057D000869577956795B79508F4B1609395C1F76D -:1057E000BB0F58F711F460FFE8CF6F5F7F4F8F4F0B -:1057F0009F4FE3CFB4CE0EF05FCE6CCE689456CE02 -:1058000093DEC8F39923D1F3C6F3DF93CF931F93AD -:105810000F93FF92C92FDD2788232AF02197660F67 -:10582000771F881FDAF720E030E040E85FEB9FE366 -:10583000883920F0803E30F021968F7787DCE2E3D4 -:10584000F1E003C083DCEFE5F1E073DF8B01BE0123 -:10585000EC01FB2E6F5771097595771F880B990B1B -:1058600078DD28E132E741E35FE38FDEAF2D980179 -:10587000AE01FF900F911F91CF91DF9178DC3BCE6D -:10588000FA01DC01AA0FBB1F9B01AC01BF5728F432 -:1058900022273327442750781FC0B75188F4AB2FF5 -:1058A0000024469537952795011CA395D2F3002037 -:1058B00069F0220F331F441FB395DAF30DD045CCA6 -:1058C00061307105A0E88A07B94630F49B01AC014C -:1058D0006627772788279078309621F020833183B8 -:1058E000428353830895AA1BBB1B51E107C0AA1F23 -:1058F000BB1FA617B70710F0A61BB70B881F991F71 -:105900005A95A9F780959095BC01CD01089597FB14 -:10591000072E16F4009407D077FD09D00E94732C4F -:1059200007FC05D03EF4909581959F4F08957095A2 -:1059300061957F4F0895EE0FFF1F0590F491E02DC4 -:105940000994F999FECF92BD81BDF89A992780B547 -:105950000895A8E1B0E042E050E00C94C92C262F55 -:10596000F999FECF92BD81BDF89A019700B4021655 -:1059700039F01FBA20BD0FB6F894FA9AF99A0FBE03 -:1059800008950196272F0E94B02C0C94AF2CDC01B7 -:10599000CB01FC01F999FECF06C0F2BDE1BDF89A3A -:1059A000319600B40D9241505040B8F70895F894E4 -:0259B000FFCF27 -:1059B200640007000CFF0000003F64041092106FA7 -:1059C200103B1007100101DF022808140A321E00E2 -:1059D20002040507090B0C0E1011131517181A1CD7 -:1059E2001D1F2123242628292B2D2F303234353711 -:1059F200393B1F0F03764F5F6F7F4969437909591E -:105A020053633149803F5D8B803FF8BF803FCAE1DD -:105A1200803F73ED803FCAE1803FF8BF803F5D8BDE -:105A2200803F3149803F0000803FF16D7F3F75EA42 -:105A32007E3F4C827E3F833F7E3F84287E3F833F72 -:105A42007E3F4C827E3F75EA7E3FF16D7F3F0000D4 -:105A5200803F3F4D3639ED04A0046A043104C4038B -:105A6200DD03F6030F04010203040506070809001B -:00000001FF diff --git a/keyboards/planck/keymaps/basic/README.md b/keyboards/planck/keymaps/basic/README.md deleted file mode 100644 index 3a4824b5b..000000000 --- a/keyboards/planck/keymaps/basic/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# A more basic Planck Layout for copying - diff --git a/keyboards/planck/keymaps/basic/compiled.hex b/keyboards/planck/keymaps/basic/compiled.hex deleted file mode 100644 index a4d94b6c4..000000000 --- a/keyboards/planck/keymaps/basic/compiled.hex +++ /dev/null @@ -1,970 +0,0 @@ -:100000000C9401020C9445020C9445020C94450298 -:100010000C9445020C9445020C9445020C94450244 -:100020000C9445020C9445020C94780B0C944A0CE9 -:100030000C946E190C9445020C9445020C944502E4 -:100040000C9445020C9445020C9445020C94450214 -:100050000C9445020C94D6190C9445020C9445025C -:100060000C9445020C9445020C9445020C944502F4 -:100070000C9445020C9445020C9445020C944502E4 -:100080000C9445020C9445020C9445020C944502D4 -:100090000C9445020C9445020C9445020C944502C4 -:1000A0000C9445020C9445020C944502B70CD90CF3 -:1000B000C70DD90CC70D1E0D410DC70D960DA90D0D -:1000C00086108610B510B510F410141144124412A5 -:1000D0001F114412CF11CF113512441244123E1297 -:1000E000DC11DC11DC11DC11DC11DC11DC11DC11A8 -:1000F000DC11DC11DC11DC11DC11DC11DC11DC1198 -:10010000EC11FA110112081212122B0014001A003D -:100110000800150017001C0018000C001200130046 -:100120002A00290004001600070009000A000B003D -:100130000D000E000F0033003400E1001D001B0015 -:1001400006001900050011001000360037003800C5 -:100150002800E500E000E200E30001302C002C0064 -:1001600002305000510052004F0035021E021F02A3 -:100170002002210222022302240225022602270253 -:100180002A004C003A003B003C003D003E003F008E -:100190002D022E022F0230023102010040004100E8 -:1001A00042004300440045003202640201000100A5 -:1001B00001000050010001000100010001000100E8 -:1001C0000100AB00AA00A900AE0035001E001F0010 -:1001D0002000210022002300240025002600270003 -:1001E0002A004C003A003B003C003D003E003F002E -:1001F0002D002E002F003000310001004000410092 -:100200004200430044004500320064000100010048 -:100210000100005001000100010001000100010087 -:100220000100AB00AA00A900AE002803540068003A -:100230006500200050006C0061006E0063006B00E0 -:1002400020004B006500790062006F0061007200C1 -:10025000640000002C034F007200740068006F00FF -:100260006C0069006E0065006100720020004B00A8 -:100270006500790062006F00610072006400730025 -:1002800000000403090409026D00040100A0FA093A -:1002900004000001030101000921110100012240B5 -:1002A000000705810308000A090401000103010297 -:1002B00000092111010001224D00070582030800F9 -:1002C0000A090402000103000000092111010001D4 -:1002D0002236000705830308000A0904030001030E -:1002E00000000009211101000122390007058403E3 -:1002F0001000011201100100000008EDFE60600115 -:10030000000102000105010906A101050719E02904 -:10031000E7150025019508750181020508190129D5 -:100320000595057501910295017503910105071960 -:1003300000297715002501957875018102C0050116 -:100340000980A101850216010026B7001A01002AC2 -:10035000B700751095018100C0050C0901A1018548 -:1003600003160100269C021A01002A9C02751095B2 -:10037000018100C005010902A1010901A1000509CF -:1003800019012905150025019505750181029501C1 -:10039000750381010501093009311581257F950219 -:1003A0007508810609381581257F95017508810634 -:1003B000050C0A38021581257F950175088106C054 -:1003C000C005010906A101050719E029E715002567 -:1003D00001950875018102950175088101050819CB -:1003E0000129059505750191029501750391010596 -:1003F00007190029FF150026FF00950675088100E2 -:10040000C00011241FBECFEFDAE0DEBFCDBF04B6BF -:1004100003FE24C08091E9019091EA01A091EB01D3 -:10042000B091EC018730904BA740B04BB9F41092DB -:10043000E9011092EA011092EB011092EC0114BE56 -:1004400084B7877F84BF88E10FB6F89480936000FB -:10045000109260000FBEE0E0F8E3099511E0A0E023 -:10046000B1E0E4E4FCE302C005900D92AA33B107C9 -:10047000D9F711E0AAE3B1E001C01D92A93EB1078E -:10048000E1F70E94C2080C94201E0C94000008950D -:10049000089581E0089508956E9A769A0C94470223 -:1004A0000C9448020C9449020C944B02613019F0F0 -:1004B000623049F013C0FC018281882311F081E091 -:1004C00007C081E009C0FC018281882321F082E01D -:1004D0000E94EC1603C082E00E940D1780E090E0BD -:1004E000089581E008950C94710208950F931F936D -:1004F000CF93DF938C01FC01C081D181CE010E949A -:10050000A817BE010E942303EC01B8010E947302E8 -:10051000882309F48DC0F8018281882309F44AC038 -:100520008091450181111FC0C431F0E5DF0709F05A -:1005300051C00E94750281E0809345010E94A0197C -:10054000909344018093430110923C0110923E012C -:1005500010923D011092400110923F011092420111 -:100560001092410165C080914301909144010E9425 -:10057000AC19883C910570F480913C01E82FF0E0C3 -:10058000EE0FFF1FE35CFE4FD183C0838F5F80932C -:100590003C014EC0C43880E5D80721F0C538D045AD -:1005A00001F13AC0F8018281882341F010923A01AA -:1005B00082E01EC0C438E0E5DE0759F580913A01BB -:1005C000811106C086E20E94350F86E20E94F20F7A -:1005D00082E01CC0C438F0E5DF0741F3C538D045E0 -:1005E000D9F4F8018281882331F010923B0180E236 -:1005F0000E9441101DC080913B01811106C087E21D -:100600000E94350F87E20E94F20F80E20E9448109C -:100610000FC0C538D04529F381E080933A0180931B -:100620003B01C801DF91CF911F910F910C945202B1 -:1006300080E0DF91CF911F910F9108950C944C02AF -:100640000C94500208959CE0799FF001112490E3EE -:10065000899FE00DF11D1124E60FF11DEE0FFF1F24 -:10066000E65FFE4F859194910895880F991FFC01D4 -:10067000E657F040859194910895880F991FFC01E9 -:10068000E65FFE4F8591949108950F931F93CF934A -:10069000DF93EC01811520E3920750F5C11580E24C -:1006A000D80708F0C3C0CB3BD10590F4C83AD105B8 -:1006B00008F06AC0C53AD10508F05BC0C430D10566 -:1006C00008F0D0C1219709F0CAC101E010E00AC2C8 -:1006D000CF3FD10511F008F0C5C1C03FD10508F0EA -:1006E000A2C0CE01805E9109089708F4BBC1B7C1D2 -:1006F000C13090E5D90709F4A2C020F5C0318FE4DC -:10070000D80770F4C11590E4D90708F094C0C1155A -:1007100021E3D20708F0A3C1DD278E01106CE2C1EE -:10072000C115D04509F09BC10E94AF128FEF94E331 -:100730002CE0815090402040E1F700C000000E9472 -:10074000FB19D0C1C11597E5D90758F4C03121E58F -:10075000D20708F01CC1C43180E5D80708F475C081 -:100760007EC1CE0190578115904108F078C1DF70AD -:1007700073C1C53AD10509F477C1C63AD10509F06C -:1007800076C102E810E4AEC1C83AD10509F472C1DD -:10079000C93AD10509F471C1CA3AD10509F470C149 -:1007A000CB3AD10509F46FC1CC3AD10509F46EC139 -:1007B000CD3AD10509F46DC1C03BD10509F46CC136 -:1007C000CE3AD10509F46BC1CF3AD10509F46AC11B -:1007D000C13BD10509F469C1C23BD10509F468C127 -:1007E000C33BD10509F467C1C43BD10509F466C117 -:1007F000C53BD10509F465C1C63BD10509F464C107 -:10080000C73BD10509F463C1C83BD10509F462C1F6 -:10081000C93BD10509F461C1CA3BD10509F460C1E6 -:1008200000E014E45FC18E0110655CC1CE019F70D1 -:100830000E943D0358C1DF708E01106A53C1809140 -:10084000CC0181608093CC014DC10E94521A81116C -:1008500002C00E94381A0E94651A90E09093E90144 -:100860008093E801C23080E5D80721F48091E80147 -:10087000816086C0C43090E5D90721F48091E801F9 -:1008800082607EC0C63020E5D20721F48091E80165 -:10089000846076C0C83080E5D80719F48091E801FB -:1008A00027C0CA3090E5D90721F48091E801806122 -:1008B00067C0CC3020E5D20721F48091E801806246 -:1008C0005FC0CE3080E5D80721F48091E8018064D4 -:1008D00057C0C03190E5D90721F48091E8018068C4 -:1008E0004FC0C23120E5D20729F48091E80184602D -:1008F000886046C0C33080E5D80721F48091E801C4 -:100900008E7F3EC0C53090E5D90721F48091E80183 -:100910008D7F36C0C73020E5D20721F48091E801F1 -:100920008B7F2EC0C93080E5D80719F48091E8018B -:1009300026C0CB3090E5D90721F48091E8018F7E65 -:100940001FC0CD3020E5D20721F48091E8018F7DD2 -:1009500017C0CF3080E5D80721F48091E8018F7B64 -:100960000FC0C13190E5D90721F48091E8018F775C -:1009700007C0C331D04531F48091E8018B7F877F78 -:100980008093E8018091E8010E94691AABC08D2F25 -:1009900099278F70992781309105D9F49E01237092 -:1009A000332702C0880F991F2A95E2F79C688E01B1 -:1009B00044E0000F111F4A95E1F700271370802BC8 -:1009C000912B53E0CC0FDD1F5A95E1F7C076DD2760 -:1009D0002FC08230910531F4DC2FCC278E01016FBE -:1009E000106A80C08330910569F4CE018370992725 -:1009F00001E010E002C0000F111F8A95E2F7C80164 -:100A00009C680FC084309105B9F4CE01837099279A -:100A100001E010E002C0000F111F8A95E2F7C80143 -:100A20009A6823E0CC0FDD1F2A95E1F7C07ED770CE -:100A30008C010C2B1D2B56C08530910531F4DC2F19 -:100A4000CC278E01046F106A4DC0069709F04AC08A -:100A5000CF71DD27DC2FCC278E01106243C000E070 -:100A600010E040C08E013EC001E810E43BC003E846 -:100A700010E438C002EE14E435C009EE14E432C0CC -:100A80000AEE14E42FC005EB14E42CC006EB14E4CA -:100A900029C007EB14E426C00CEC14E423C00DECD1 -:100AA00014E420C003E815E41DC00AE815E41AC0E8 -:100AB00002E915E417C004E915E414C001E216E4E4 -:100AC00011C003E216E40EC004E216E40BC005E216 -:100AD00016E408C006E216E405C007E216E402C008 -:100AE0000AE216E4C801DF91CF911F910F9108959A -:100AF0009CE0799FF001112490E3899FE00DF11DA6 -:100B00001124E60FF11DEE0FFF1FE65FFE4F8591EA -:100B10009491803E9105E0F4803C910558F5813335 -:100B2000910509F46FC048F48932910509F463C056 -:100B30008A32910509F46DC072C089339105E9F0DC -:100B400082389105D1F08533910509F44DC067C015 -:100B5000833E910581F138F4803E9105B9F0823EE3 -:100B60009105D9F05CC0863E910561F1873E910503 -:100B7000A1F155C00E94350308952091E80120FDA0 -:100B800002C021FF4CC080EE90E049C08091E80196 -:100B900080FFF9CF89E390E042C08091E80182FFB5 -:100BA0000EC08091E80184FF03C080E090E037C070 -:100BB00083EE90E034C08091E80182FFF2CF82EEB4 -:100BC00090E02DC08091E80183FF0BC08091E80187 -:100BD00084FDEBCF87EE90E022C08091E80183FF97 -:100BE000F5CF86EE90E01BC08091E80185FF07C03D -:100BF00089E290E014C08091E80185FFF9CF85E398 -:100C000090E00DC08091E80186FF07C08AE290E085 -:100C100006C08091E80186FFF9CF81E390E00E9451 -:100C2000450308950C945402E82FF0E0EF5DFE4F69 -:100C30008081E82FEF70F0E082958F7021E030E046 -:100C4000A90102C0440F551F8A95E2F740A30895F9 -:100C50000F931F93CF93DF9385B7806885BF85B7C8 -:100C6000806885BFC3E0D0E001E010E0FE01EF5DE9 -:100C7000FE4F8081E82FEF70F0E021A182958F7008 -:100C8000A80102C0440F551F8A95E2F7CA01822BC2 -:100C900081A38C2F0E941406219740F78BE090E0EF -:100CA00061E070E0FC01EB5EFE4F2081E22FEF700F -:100CB000F0E042A122952F70DB0102C0AA0FBB1FFA -:100CC0002A95E2F79D01242B22A3019758F7DF9183 -:100CD000CF911F910F910C941E03EF92FF920F93EF -:100CE0001F93CF93DF930EE411E0C3E0EE24E3946F -:100CF000F12CD5E08C2F0E9414068BE090E040E0B0 -:100D000050E0FC01EB5EFE4F6081E62FEF70F0E0FB -:100D100020A130E062956F7002C0359527956A95E5 -:100D2000E2F720FD09C09701082E02C0220F331FF1 -:100D30000A94E2F7422B532B019718F7F80192918E -:100D400082918F018417950721F051834083D093BE -:100D500000018C2F0E941406C15060F680910001A2 -:100D600087FD2CC08150809300018F3F39F08FE9BF -:100D70009FE00197F1F700C0000020C080914C0176 -:100D800090914D01909355018093540180914A01B7 -:100D900090914B01909353018093520180914801AF -:100DA00090914901909351018093500180914601A7 -:100DB0009091470190934F0180934E010E94200330 -:100DC00081E0DF91CF911F910F91FF90EF900895F7 -:100DD000E82FF0E0EE0FFF1FE25BFE4F8081918174 -:100DE000089508950F931F93CF9306E511E0C0E097 -:100DF000F801929182918F010E942319C80FF1E0AE -:100E00000E341F07A9F78C2FCF911F910F910895D2 -:100E1000809166010895CF93DF9300D01F92CDB7E4 -:100E2000DEB79C018091DF01843019F593E099834E -:100E30003B832A839093E9008FEF9091E8008150E3 -:100E400095FD06C095ED9A95F1F700008111F5CF5B -:100E50008091E80085FF0DC040E050E063E070E065 -:100E6000CE0101960E9468098091E8008E778093F8 -:100E7000E8000F900F900F90DF91CF910895CF93DE -:100E8000DF9300D01F92CDB7DEB72091DF01243071 -:100E900021F522E029839B838A8383E08093E90004 -:100EA0008FEF9091E800815095FD06C095ED9A95E1 -:100EB000F1F700008111F5CF8091E80085FF0DC0AA -:100EC00040E050E063E070E0CE0101960E946809C6 -:100ED0008091E8008E778093E8000F900F900F903C -:100EE000DF91CF9108952091DF012430F1F422E0C9 -:100EF0002093E9002FEF3091E800215035FD06C026 -:100F000035ED3A95F1F700002111F5CF2091E80079 -:100F100025FF0BC040E050E065E070E00E946809EA -:100F20008091E8008E778093E8000895CF93DF9357 -:100F3000EC019091DF01943009F046C080910B01E3 -:100F40008823D9F080910C018823B9F09093E900AF -:100F50008FEF9091E800815095FD06C095E19A953C -:100F6000F1F700008111F5CF8091E80085FF2CC0DA -:100F700040E050E060E170E017C081E08093E9005C -:100F80008FEF9091E800815095FD06C095ED9A9500 -:100F9000F1F700008111F5CF8091E80085FF14C0C2 -:100FA00040E050E068E070E0CE010E946809809166 -:100FB000E8008E778093E80080E1FE01A6E5B1E0CD -:100FC00001900D928A95E1F7DF91CF91089580917C -:100FD000DE01811109C00E94FD0A0E945A0B809116 -:100FE000E20084608093E20008951092DE0108958B -:100FF000089508950C94681942E061EC81E00E9424 -:10100000770A42E061EC82E00E94770A42E061ECFC -:1010100083E00E94770A42E161EC84E00C94770A55 -:101020008091E101833009F455C030F4813071F0D2 -:10103000823009F48EC008958A3009F47AC08B306A -:1010400009F460C0893009F09CC020C08091E001A3 -:10105000813A09F096C08091E800877F8093E8008C -:101060008091E4019091E501892B21F460E186E50E -:1010700091E003C060E080E090E070E00E94B3097E -:101080008091E8008B778093E80008958091E001DB -:10109000813209F076C08091E4019091E5010097DA -:1010A00019F0039709F06DC08091E800877F809365 -:1010B000E8008091E80082FD05C08091DF01811188 -:1010C000F8CF5FC08091F100809366018091E800C5 -:1010D0008B7753C08091E001813A09F052C0809132 -:1010E000E4019091E501892B09F04BC08091E80063 -:1010F000877F8093E8008091E80080FFFCCF80919B -:101100000B0136C08091E0018132D9F58091E40174 -:101110009091E501892BA9F58091E800877F809364 -:10112000E8000E94AC0A8091E20180930B010C94CC -:10113000AF128091E001813221F58091E800877F34 -:101140008093E8000E94AC0A8091E30180936701DC -:1011500008958091E001813AA1F48091E800877FB1 -:101160008093E8008091E80080FFFCCF80916701C8 -:101170008093F1008091E8008E778093E8000C94D2 -:10118000AC0A089584B7877F84BF88E10FB6F894CE -:1011900080936000109260000FBE80E88093610031 -:1011A000109261000E944F0E0E94FD0A0E945A0B8D -:1011B0008091E20084608093E20078940E94E00DC8 -:1011C0000E94510E81E091E00E94FB0D8091DF01B1 -:1011D000853069F40E942F198091DD018823B1F3D5 -:1011E0000E945A19882391F30E945209EFCF0E945E -:1011F000570EECCF292F332723303105C9F064F483 -:101200002130310581F02230310509F043C08DE6EF -:1012100090E026E832E042C021323105F1F022327E -:10122000310541F137C082E190E023EF32E036C072 -:1012300099278130910541F08230910541F0892B49 -:1012400049F5E2E8F2E005C0E4E5F2E002C0EAE2D6 -:10125000F2E0849190E09F0121C06430D8F4E62F41 -:10126000F0E0EE0FFF1FEF5CFE4F2081318189E03F -:1012700090E014C0643070F470E0FB01EE0FFF1FCB -:10128000E75DFE4F20813181FB01EB5DFE4F8081E8 -:1012900090E004C080E090E020E030E0FA0131838B -:1012A0002083089580E189BD82E189BD09B400FEF3 -:1012B000FDCF8091D8008F7D8093D8008091E00091 -:1012C00082608093E0008091E00081FDFCCF089572 -:1012D000CF92DF92EF92FF920F931F93CF93DF9302 -:1012E000EC018B016A010E94CB0A811133C0C11449 -:1012F000D10439F0F60180819181081B190BC80FC8 -:10130000D91FE12CF12C0115110519F18091E8008C -:1013100085FD16C08091E8008E778093E800C114A7 -:10132000D10449F0F60180819181E80EF91EF18225 -:10133000E08285E00FC00E94CB0A882321F30AC017 -:1013400089918093F10001501109FFEFEF1AFF0A14 -:10135000DACF80E0DF91CF911F910F91FF90EF9056 -:10136000DF90CF9008952091E6013091E701261794 -:10137000370748F06115710539F42091E8002E77A0 -:101380002093E80001C0B90140E061157105A9F1A1 -:101390002091DF01222309F443C0253009F442C023 -:1013A0002091E80023FD40C02091E80022FD32C0DA -:1013B0002091E80020FFE9CF4091F3002091F20056 -:1013C00030E0342BFC01CF016115710559F0283054 -:1013D000310540F481918093F100615071092F5FD4 -:1013E0003F4FF1CF41E02830310509F040E0209136 -:1013F000E8002E772093E800C8CF4111C9CF0AC07A -:101400008091DF01882361F0853061F08091E800F0 -:1014100083FD0AC08091E80082FFF2CF80E008954A -:1014200082E0089583E0089581E008952091E60127 -:101430003091E7012617370748F06115710539F437 -:101440002091E8002E772093E80001C0B901FC014B -:1014500020E06115710591F18091DF01882309F485 -:1014600040C0853009F43FC08091E80083FD3DC055 -:101470008091E80082FD2FC08091E80080FFE9CFD5 -:101480002091F3008091F20090E0922B611571059C -:1014900059F08830910540F424912093F100319661 -:1014A000615071090196F2CF21E0089709F020E020 -:1014B0008091E8008E778093E800CBCF2111CCCFCC -:1014C0000AC08091DF01882361F0853061F080914E -:1014D000E80083FD0AC08091E80082FFF2CF80E03F -:1014E000089582E0089583E0089581E00895982F9B -:1014F000973058F59093E900981739F07091EC0007 -:101500002091ED005091F00003C0242F762F50E081 -:1015100021FF19C03091EB003E7F3093EB003091FA -:10152000ED003D7F3093ED003091EB003160309362 -:10153000EB007093EC002093ED005093F0002091AD -:10154000EE0027FF07C09F5FD3CF8F708093E90025 -:1015500081E0089580E008958091E00187FF11C047 -:101560008091E80082FD05C08091DF018111F8CFF4 -:1015700011C08091E8008B770BC08091DF01882338 -:1015800049F08091E80080FFF8CF8091E8008E77E5 -:101590008093E80008952091E4003091E50095E6FD -:1015A0004091EC00842F817040FF22C08091E800C0 -:1015B00080FD1CC08091DF01882391F0853091F07F -:1015C0008091EB0085FD10C04091E4005091E50052 -:1015D0004217530729F39A01915011F784E00895B7 -:1015E00082E0089583E0089581E0089580E0089501 -:1015F0004091E80042FFDECF08950E946B0B0E94ED -:10160000730BE0EEF0E0808181608083E8EDF0E034 -:1016100080818F77808319BCA7EDB0E08C918E7F9D -:101620008C9380818F7E80831092DE0108950F93CA -:101630001F93CF93DF930E946B0B0E94730BC8ED37 -:10164000D0E088818F7788838881806888838881CB -:101650008F7D888319BC1092DF011092DB011092FC -:10166000DD011092DC0100EE10E0F80180818B7F3B -:10167000808388818160888342E060E080E00E940E -:10168000770AE1EEF0E080818E7F8083E2EEF0E089 -:10169000808181608083808188608083F80180817F -:1016A0008E7F8083888180618883DF91CF911F91B5 -:1016B0000F910895E8EDF0E080818F7E8083E7ED63 -:1016C000F0E080818160808384E082BF81E080934C -:1016D000DE010C94170BE8EDF0E080818E7F8083B3 -:1016E0001092E20008951092DA001092E10008953D -:1016F0001F920F920FB60F9211242F933F934F9387 -:101700005F936F937F938F939F93AF93BF93EF9369 -:10171000FF938091E10082FF0BC08091E20082FF85 -:1017200007C08091E1008B7F8093E1000E94DF0D74 -:101730008091DA0080FF1FC08091D80080FF1BC01D -:101740008091DA008E7F8093DA008091D90080FF4B -:101750000DC080E189BD82E189BD09B400FEFDCFE5 -:1017600081E08093DF010E94E70705C019BC109259 -:10177000DF010E94F5078091E10080FF19C0809190 -:10178000E20080FF15C08091E2008E7F8093E2002E -:101790008091E20080618093E2008091D8008062B5 -:1017A0008093D80019BC85E08093DF010E94F9077F -:1017B0008091E10084FF30C08091E20084FF2CC062 -:1017C00080E189BD82E189BD09B400FEFDCF809131 -:1017D000D8008F7D8093D8008091E1008F7E809328 -:1017E000E1008091E2008F7E8093E2008091E20030 -:1017F00081608093E2008091DB01882311F084E016 -:1018000007C08091E30087FD02C081E001C083E052 -:101810008093DF010E94FA078091E10083FF29C0D5 -:101820008091E20083FF25C08091E100877F809353 -:10183000E10082E08093DF011092DB018091E10002 -:101840008E7F8093E1008091E2008E7F8093E200A2 -:101850008091E20080618093E20042E060E080E0FD -:101860000E94770A8091F00088608093F0000E94C7 -:10187000F807FF91EF91BF91AF919F918F917F9169 -:101880006F915F914F913F912F910F900FBE0F90ED -:101890001F9018951F920F920FB60F9211242F933D -:1018A0003F934F935F936F937F938F939F93AF93E8 -:1018B000BF93CF93DF93EF93FF93C091E900CF7075 -:1018C0008091EC00D82FD17080FDD0E81092E90013 -:1018D0008091F000877F8093F00078940E948E0CB6 -:1018E0001092E9008091F00088608093F000CD2B89 -:1018F000CF70C093E900FF91EF91DF91CF91BF913D -:10190000AF919F918F917F916F915F914F913F9197 -:101910002F910F900FBE0F901F9018951F93CF938C -:10192000DF93CDB7DEB7AA970FB6F894DEBF0FBE30 -:10193000CDBFE0EEF1E088E08E0F9091F100919341 -:101940008E13FBCF0E9410088091E80083FF1FC117 -:101950008091E0019091E101492F50E04A3051051A -:1019600008F015C1FA01EA5AFF4F0C94D01D8038D7 -:1019700081F0823809F00BC18091E4018F7080936F -:10198000E9008091EB0085FB882780F91092E9003F -:1019900006C08091DC019091DD01911182609091EF -:1019A000E800977F9093E8008093F1001092F10097 -:1019B000C8C0282F2D7F09F0EAC0882319F0823093 -:1019C00061F0E5C08091E201813009F0E0C0933020 -:1019D00009F080E08093DD012BC08091E20181114C -:1019E00027C08091E4018F7009F4D1C08093E90091 -:1019F0002091EB0020FF1CC0933021F48091EB007C -:101A0000806214C09091EB0090619093EB0021E014 -:101A100030E0A90102C0440F551F8A95E2F74093B8 -:101A2000EA001092EA008091EB0088608093EB005E -:101A30001092E9008091E800877F86C08111A7C0DD -:101A40001091E2011F778091E3008078812B8093D1 -:101A5000E3008091E800877F8093E8000E94AC0A51 -:101A60008091E80080FFFCCF8091E3008068809344 -:101A7000E300111102C082E001C083E08093DF0126 -:101A800086C08058823008F082C08091E201909137 -:101A9000E3018C3D53E0950779F583E08A838AE280 -:101AA00089834FB7F894DE01139620E03EE051E2BF -:101AB000E32FF0E050935700E49120FF03C0E2953C -:101AC000EF703F5FEF708E2F90E0EA3010F0C79616 -:101AD00001C0C0968D939D932F5F243149F74FBF6E -:101AE0008091E800877F8093E8006AE270E0CE0191 -:101AF00001960E94B30914C0AE014F5F5F4F609121 -:101B0000E4010E94FA08BC01009709F440C09091DA -:101B1000E800977F9093E80089819A810E94160AD5 -:101B20008091E8008B778093E80031C0803879F5A8 -:101B30008091E800877F8093E8008091DB018093AB -:101B4000F1008091E8008E778093E8000E94AC0A53 -:101B50001EC081111CC09091E2019230C0F48091AE -:101B6000E800877F8093E8009093DB010E94AC0A35 -:101B70008091DB01811106C08091E30087FD02C0E6 -:101B800081E001C084E08093DF010E94FC07809126 -:101B9000E80083FF0AC08091E800877F8093E80017 -:101BA0008091EB0080628093EB00AA960FB6F894C8 -:101BB000DEBF0FBECDBFDF91CF911F910895089575 -:101BC000CF938091DF018823A1F0C091E900CF700D -:101BD0009091EC00892F817090FD80E8C82B1092C5 -:101BE000E9008091E80083FD0E948E0CCF70C093C5 -:101BF000E900CF91089590936D0180936C01089551 -:101C0000E0916C01F0916D01309721F00190F0812D -:101C1000E02D099480E00895E0916C01F0916D0150 -:101C2000309721F00280F381E02D09940895E0912E -:101C30006C01F0916D01309721F00480F581E02D69 -:101C40000994089520916A0130916B0182179307DE -:101C500071F090936B0180936A01E0916C01F091B7 -:101C60006D01309721F00680F781E02D09940895E9 -:101C700020916801309169018217930771F0909368 -:101C8000690180936801E0916C01F0916D013097DA -:101C900021F00084F185E02D0994089508950C94B5 -:101CA0004E0E0E9497190E9428060C941D1A5F92EE -:101CB0006F927F928F929F92AF92BF92CF92DF925C -:101CC000EF92FF920F931F93CF93DF9300D000D03A -:101CD0001F92CDB7DEB70E946D0697E7C92E91E03F -:101CE000D92E03E010E0AA24A394B12C502E802F0B -:101CF0000E94E8064C01F601729062906F0168261E -:101D0000792661147104A1F40150110978F78FEF5D -:101D100089838A831B820E94A0198160782F9D830A -:101D20008C8349815A816B818D810E94070F38C055 -:101D30008091CC0181FD0E94F1062BE030E075011D -:101D4000022E02C0EE0CFF1C0A94E2F7C7018621A6 -:101D50009721892B09F129835A828E209F2091E0B7 -:101D6000892809F490E09B830E94A0198160782F54 -:101D70009D838C8349815A816B818D810E94070FDD -:101D8000000F111FF801E159FE4F80819181E82673 -:101D9000F926F182E08204C02150310980F6B4CFE7 -:101DA0000E94E81B10916E010E94000E1817D1F0DE -:101DB0000E94000E80936E010F900F900F900F9075 -:101DC0000F90DF91CF911F910F91FF90EF90DF90D7 -:101DD000CF90BF90AF909F908F907F906F905F90CB -:101DE0000C9412060F900F900F900F900F90DF91B0 -:101DF000CF911F910F91FF90EF90DF90CF90BF9008 -:101E0000AF909F908F907F906F905F900895CF9349 -:101E1000DF93CDB7DEB72B970FB6F894DEBF0FBEBA -:101E2000CDBF4F83588769877A878B87DE011196EC -:101E300086E0FD0111928A95E9F785E0FE0137966B -:101E400001900D928A95E1F749815A816B817C81DD -:101E50008D819E810E944D152B960FB6F894DEBFA2 -:101E60000FBECDBFDF91CF910895882309F4B9C08B -:101E7000823859F40E94000E81FDB3C089E30E94AC -:101E800027180E94F41889E30CC0833871F40E946B -:101E9000000E80FDA6C083E50E9427180E94F4185A -:101EA00083E50E9469180C94F418843859F40E9450 -:101EB000000E82FD96C087E40E9427180E94F41845 -:101EC00087E4EFCF9CEF980F913A18F40E942718FF -:101ED000EACF90E2980F983050F4877091E001C0FB -:101EE000990F8A95EAF7892F0E94AD18DCCF9BE500 -:101EF000980F933070F4853A29F0863A31F083E8F0 -:101F000090E005C081E890E002C082E890E00C9487 -:101F1000220E98E5980F933108F063C0883A39F1A2 -:101F2000893A41F18A3A49F18B3A51F18C3A59F1A7 -:101F30008D3A61F1803B69F18E3A71F18F3A79F116 -:101F4000813B81F1823B89F1833B91F1843B99F1A3 -:101F5000853BA1F1863BA9F1873BB1F1883BB9F103 -:101F6000893BC1F18A3BC9F180E090E038C082EE44 -:101F700090E035C089EE90E032C08AEE90E02FC04C -:101F800085EB90E02CC086EB90E029C087EB90E0D9 -:101F900026C08CEC90E023C08DEC90E020C083E85C -:101FA00091E01DC08AE891E01AC082E991E017C073 -:101FB00084E991E014C081E292E011C083E292E0F2 -:101FC0000EC084E292E00BC085E292E008C086E297 -:101FD00092E005C087E292E002C08AE292E00C94AF -:101FE000380E0895882309F44BC0823859F40E94B2 -:101FF000000E81FF45C089E30E9427180E94F41853 -:1020000089E30CC0833871F40E94000E80FF38C051 -:1020100083E50E9427180E94F41883E50E9469183E -:102020000C94F418843859F40E94000E82FF28C0E2 -:1020300087E40E9427180E94F41887E4EFCF9CEFF2 -:10204000980F913A58F390E2980F983050F48770B7 -:1020500091E001C0990F8A95EAF7892F0E94B31881 -:10206000DFCF9BE5980F933020F480E090E00C9454 -:10207000220E885A833120F480E090E00C94380ED0 -:102080000895882321F00E94AD180C94F418089547 -:10209000882321F00E94B3180C94F41808957F92BD -:1020A0008F929F92AF92BF92CF92DF92EF92FF9268 -:1020B0000F931F93CF93DF931F92CDB7DEB77C01B1 -:1020C000C62E772EFC01058102950F701281111129 -:1020D0000E94CA180E942018882379F0112369F001 -:1020E00080E28C0D883048F082E00E9409180E943E -:1020F000201891E0D82ED92601C0D12CE72DE295E9 -:10210000EF70F0E0E05AFF4F0C94D01D872D807FD8 -:10211000072D0F70882311F00295007F112389F09D -:10212000002309F498C180E28C0D883020F4802FC0 -:102130000E94AD1803C0802F0E94BD180E94F418A1 -:102140008AC18C2D0E94F20F002309F49DC180E208 -:102150008C0D883020F4802F0E94B31803C0802F8C -:102160000E94C3180E94F4188FC1872D807F972D7D -:102170009F70803211F4892F03C0892F8295807F50 -:10218000CC2021F0F1E0CF16A1F01DC0112339F0D1 -:10219000002319F1013009F50E94DD1875C10023F3 -:1021A00019F0013009F470C189830E94E018898117 -:1021B00010C1112321F0063008F066C10EC00530B1 -:1021C00008F062C106C1112359F0002331F0F70174 -:1021D000958190FF40C19F7095830E94411054C12A -:1021E000002309F4F6C03DC1872D8695869583703E -:1021F00090E0009719F0019761F046C1112321F09A -:102200008C2D972D937002C080E090E00E94220EEA -:102210003BC1112321F08C2D972D937002C080E0DB -:1022200090E00E94380E30C18C2D112319F00E94CD -:10223000F01A02C00E94581B0E94DD1B25C1872D89 -:10224000837009F052C011111FC18C2D82958695A3 -:102250008770880F880F9C2D9F70892E912CA12C40 -:10226000B12C082E04C0880C991CAA1CBB1C0A9413 -:10227000D2F7C4FE14C00FE010E020E030E0B90156 -:10228000A80104C0440F551F661F771F8A95D2F717 -:10229000CB01BA01609570958095909503C060E080 -:1022A00070E0CB01272D26952695237030E0223053 -:1022B000310569F02330310589F0682979298A29A7 -:1022C0009B292130310571F00E949516DDC06829E7 -:1022D00079298A299B290E94B116D6C00E94951699 -:1022E000C501B4010E947916CFC0112319F0872DC2 -:1022F000817001C08695882309F4C6C08C2D829513 -:1023000086958770880F880F9C2D9F70892E912C41 -:10231000A12CB12C082E04C0880C991CAA1CBB1C33 -:102320000A94D2F7C4FE14C00FE010E020E030E0C1 -:10233000B901A80104C0440F551F661F771F8A9575 -:10234000D2F7CB01BA01609570958095909503C046 -:1023500060E070E0CB01272D269526952370422F53 -:1023600050E04230510569F04330510589F0682949 -:1023700079298A299B294130510571F00E946F17F4 -:1023800083C0682979298A299B290E948B177CC0E0 -:102390000E946F17C501B4010E94531775C08C2DA0 -:1023A00090E0FC01E05EF109E531F10508F04FC075 -:1023B000E059FF4F0C94D01D0C2D0F70872D8F719D -:1023C000112321F00E94EC16802F07CF0E940D17D9 -:1023D000802F0E94481058C0112341F0053008F0AA -:1023E00053C0872D8F710E9432174EC0063008F0FF -:1023F0004BC0F7CF112339F0872D8F710E94EC1657 -:1024000043C01123C9F3872D8F710E940D173CC063 -:10241000112329F0872D8F710E94D71635C00E9495 -:10242000CD1632C0112351F0172D1F71812F0E943C -:10243000EC1663E0812F0E94001826C081E00E9404 -:102440000918023008F182E00E9409181DC011230A -:1024500031F0002389F28C2D0E94350F15C0002326 -:1024600091F28C2D0E94F20F0FC0472D4F706C2DF2 -:10247000C7010E9456020E94F11506C0472D4F70F9 -:102480006C2DC7010E942203DD20F9F00E94FC1789 -:1024900080FD1BC0F70112820E94F6170E94EC1605 -:1024A000C7010E9474120E94F6170F90DF91CF911E -:1024B0001F910F91FF90EF90DF90CF90BF90AF9062 -:1024C0009F908F907F900C940D170F90DF91CF917C -:1024D0001F910F91FF90EF90DF90CF90BF90AF9042 -:1024E0009F908F907F9008950F931F93CF93DF93CA -:1024F000EC01888199812B813C81232BB9F09F3F8E -:1025000011F48F3F99F0CE010E947602882371F07A -:10251000688179818A810E94F2178C010E94A71735 -:102520000E946E16B801CE010E944F10DF91CF912C -:102530001F910F9108950E94CA180E94DA180E94F4 -:102540009F180E94F4180E948E1C0E94DD1B80E0E0 -:1025500090E00E94220E80E090E00C94380E0E94E1 -:10256000BA180C949B120E94E717292F22952F70FE -:1025700030E02C3031054CF42A3031056CF4225017 -:10258000310922303105A8F407C02C30310569F03B -:102590002F30310551F00DC0803F69F018F4803EB6 -:1025A00040F409C0843F29F406C093FB882780F9D2 -:1025B000089580E0089581E00895CF93DF9300D0DF -:1025C00000D01F92CDB7DEB70F900F900F900F90F5 -:1025D0000F90DF91CF910895CF93DF9300D000D07B -:1025E00000D0CDB7DEB726960FB6F894DEBF0FBE8B -:1025F000CDBFDF91CF9108951F93CF93DF93C0910B -:10260000770116E080917801C81799F0D0E01C9FFF -:10261000F0011D9FF00D1124E758FE4F40815181BC -:1026200062817381848195810E94EC122196C7702A -:10263000E9CFDF91CF911F9108954091A901509169 -:10264000AA016091AB017091AC018091AD019091B4 -:10265000AE010C94EC128091AE0182958F7009F05E -:1026600054C08091AB01882309F44FC08091770159 -:10267000A09178016091A9017091AA014091AC01EB -:102680005091AD01B6E08A1709F43FC090E04115C2 -:102690005105C1F17F3F11F46F3FA1F1B89FF001E7 -:1026A000B99FF00D1124E758FE4F218172132AC003 -:1026B0002081621327C02281211124C0238134810B -:1026C0002417350710F421503109241B350B283C01 -:1026D0003105C0F42091AE012F7020612093AE012E -:1026E00026E0289FF001299FF00D1124E258FE4FAB -:1026F00080818F708061808389EA91E00E947412EA -:102700000C94FC1201968770BECF0895CF92DF9291 -:10271000EF92FF920F931F93CF93DF93CDB7DEB766 -:1027200062970FB6F894DEBF0FBECDBF8C0185E077 -:10273000F801DE011D9601900D928A95E1F7D8010E -:102740004C9111965C91119712966C911297139679 -:10275000CD90DC9014973091A9017091AA018091DD -:10276000AC019091AD01009709F46BC17F3F19F462 -:102770003F3F09F466C1E090AB01EE2009F4C0C010 -:102780002091AE01C816D90628F0F601E81BF90B16 -:10279000CF0104C0809590958C0D9D1DFF24F3946E -:1027A000883C910578F0F12C207F09F0C6C07C2D83 -:1027B000D98AC88A89890E94DD1289EA91E00E943B -:1027C0007412B1C0822F807F09F046C0751314C007 -:1027D000341312C0611110C02F7020612093AE011C -:1027E0000E941D1389EA91E00E9474128091AE014B -:1027F000D80115968C932EC0CD2819F15F3F11F4A6 -:102800004F3FF9F0F62E61111CC0809177012091A5 -:10281000780136E0821709F45AC090E0389FF00141 -:10282000399FF00D1124E758FE4F7181571306C0F0 -:102830007081471303C07281711103C001968770C4 -:10284000E9CFF62E662309F418C18091AE018160AC -:102850008093AE01F12C11C1751308C0341306C06A -:10286000611104C08091AE01D801C3C04D875E875D -:102870008D859E856A8B0E94B3126A898823E1F157 -:102880006623D1F12091AE01822F82958F7090E066 -:10289000029774F08091A9019091AA0198878F8383 -:1028A0001986DB86CA862C87CE0107960E94741291 -:1028B00086E0F801A9EAB1E001900D928A95E1F76E -:1028C0000E942B130E941D13FF24F394D6C04D8742 -:1028D0005E878D859E850E94E717292F22952F7090 -:1028E00030E0223031050CF0BCC09F7009F0B6C05A -:1028F000805E883008F4C1C0C8010E947412E4CF21 -:10290000C816D90608F453C0F601E81BF90BCF012D -:10291000883C910508F450C0F12C7C2DD98AC88AD6 -:1029200089890E94DD12E9EAF1E086E0DF011D926B -:102930008A95E9F70E941D13A0C0751314C03413C3 -:1029400012C0611110C08091AE01F8018583C801E9 -:102950000E94741286E0E9EAF1E0DF011D928A9597 -:10296000E9F7FE2C8AC04D875E878D859E856A8B30 -:102970000E94B3126A89882309F4BECF662309F442 -:10298000BBCF2091AE01822F82958F7090E002978D -:102990000CF48ECF8091A9019091AA019A8389832A -:1029A0001B82DD82CC822E83CE0101967FCF809563 -:1029B00090958C0D9D1DACCFF62E662309F49CCF0F -:1029C00075132EC034132CC02091AE0120FD1FC002 -:1029D000822F82958F70D9F0D80115962C93159778 -:1029E0008F3049F08F5F982F9295907F822F8F7054 -:1029F000892B15968C93C8010E94741286E0F80109 -:102A0000A9EAB1E001900D928A95E1F793CF86E0B3 -:102A1000F801A9EAB1E001900D928A95E1F72DC085 -:102A20004D875E878D859E850E94B312811140CFB0 -:102A30008091AE0181608093AE01C8010E94741242 -:102A40001CC0662309F458CF4D875E878D859E850F -:102A50000E94B312882309F44FCF2ACF811148CFA7 -:102A60000CC0243031050CF047CF9F7009F440CFE3 -:102A7000F8019581907F09F03BCF8F2D62960FB6BC -:102A8000F894DEBF0FBECDBFDF91CF911F910F91A4 -:102A9000FF90EF90DF90CF9008951F93CF93DF9337 -:102AA000CDB7DEB72C970FB6F894DEBF0FBECDBF03 -:102AB0004F83588769877A878B879C87CE010796D3 -:102AC0000E948613882369F08F8198852A853B852B -:102AD000232BF1F19F3F09F063C08F3F09F060C0E5 -:102AE00037C086E0FE013796DE01119601900D9207 -:102AF0008A95E1F76F817885EA85FB85309741F10A -:102B00007F3F11F46F3F21F12091780130E0C9013E -:102B10000196877099274091770150E084179507B7 -:102B200009F447C069837A83FD83EC8396E0929F22 -:102B3000D001939FB00D1124A758BE4FFE013196CE -:102B400001900D929A95E1F7809378010E94FC1212 -:102B500016E080917701909178018917C1F1189F53 -:102B6000C001112487589E4F0E948613882379F153 -:102B7000E09177011E9FF0011124E758FE4F40813C -:102B8000518162817381848195810E94EC128091D0 -:102B9000770190E001968770992780937701D9CFCC -:102BA0004F81588569857A858B859C850E94EC12BA -:102BB000CFCF0E94AF121092780110927701E9EA0C -:102BC000F1E086E0DF011D928A95E9F7C1CF2C96EE -:102BD0000FB6F894DEBF0FBECDBFDF91CF911F912E -:102BE0000895EF92FF920F931F93CF93DF938C0181 -:102BF000009709F46CC0F12CEE24E394E8012196CF -:102C0000F8018491843740F4843008F051C0813059 -:102C100081F0823019F15BC0853709F444C0A8F116 -:102C20009CE7980F903708F052C08F770E94F20F00 -:102C300041C00E5F1F4FFE01C49180E28C0F8830AF -:102C400048F4C7708E2D01C0880FCA95EAF70E941C -:102C5000CD1814C08C2F0E94350F2DC00E5F1F4F52 -:102C6000FE01C49180E28C0F883058F4C7708E2D1D -:102C700001C0880FCA95EAF70E94D3180E94F41881 -:102C80001AC08C2F0E94F20F16C00E5F1F4FFE015C -:102C9000C491CC2381F08FE99FE00197F1F700C048 -:102CA0000000C150F6CF0E5F1F4FFE01F49003C02D -:102CB0000E94350F8E018F2D882309F49FCFEFE9F5 -:102CC000FFE03197F1F700C000008150F5CFDF91B0 -:102CD000CF911F910F91FF90EF9008950895609309 -:102CE000B3017093B4018093B5019093B6010C9435 -:102CF0009B120F931F930091B3011091B401209187 -:102D0000B5013091B601DC01CB01802B912BA22BB8 -:102D1000B32B8093B3019093B401A093B501B0930A -:102D2000B6011F910F910C949B120F931F9300916A -:102D3000B3011091B4012091B5013091B601DC01CD -:102D4000CB0180239123A223B3238093B3019093DB -:102D5000B401A093B501B093B6011F910F910C94EB -:102D60009B120F931F930091B3011091B401209116 -:102D7000B5013091B601DC01CB0180279127A22754 -:102D8000B3278093B3019093B401A093B501B0939E -:102D9000B6011F910F910C949B121092AF011092EB -:102DA000B0011092B1011092B2010C949B1241E05B -:102DB00050E060E070E004C0440F551F661F771FAD -:102DC0008A95D2F74093AF015093B0016093B1015F -:102DD0007093B2010C949B1241E050E060E070E00F -:102DE00004C0440F551F661F771F8A95D2F7809144 -:102DF000AF019091B001A091B101B091B201482B07 -:102E0000592B6A2B7B2B4093AF015093B0016093F9 -:102E1000B1017093B2010C949B1241E050E060E06C -:102E200070E004C0440F551F661F771F8A95D2F7C4 -:102E300040955095609570958091AF019091B0014B -:102E4000A091B101B091B201482359236A237B2399 -:102E50004093AF015093B0016093B1017093B20100 -:102E60000C949B1241E050E060E070E004C0440F1D -:102E7000551F661F771F8A95D2F78091AF019091F9 -:102E8000B001A091B101B091B201482759276A273A -:102E90007B274093AF015093B0016093B1017093D1 -:102EA000B2010C949B120F931F930091AF011091EC -:102EB000B0012091B1013091B201DC01CB01802B36 -:102EC000912BA22BB32B8093AF019093B001A093D1 -:102ED000B101B093B2011F910F910C949B120F930B -:102EE0001F930091AF011091B0012091B101309179 -:102EF000B201DC01CB0180239123A223B323809371 -:102F0000AF019093B001A093B101B093B2011F91B2 -:102F10000F910C949B120F931F930091AF0110918E -:102F2000B0012091B1013091B201DC01CB018027C9 -:102F30009127A227B3278093AF019093B001A0936C -:102F4000B101B093B2011F910F910C949B1208959F -:102F5000CF92DF92EF92FF920F931F93CF93DF9365 -:102F60008C01C090B301D090B401E090B501F09015 -:102F7000B6018091AF019091B001A091B101B091E3 -:102F8000B201C82AD92AEA2AFB2ACFE1D0E0D70128 -:102F9000C6010C2E04C0B695A795979587950A94FF -:102FA000D2F780FF06C0B8018C2F0E9478050197E8 -:102FB00021F4219760F780E001C08C2FDF91CF9141 -:102FC0001F910F91FF90EF90DF90CF900895CF93D6 -:102FD000DF93EC010E94A817BE010E947805DF91E3 -:102FE000CF910895CB010E94E71708958091B70112 -:102FF00085958595859508958091B7018770089589 -:1030000098E0899F90011124262B2093B7010C94FE -:10301000EC162091B701809582238093B701982FF9 -:10302000977069F430E0482F552747FD50952417D5 -:10303000350729F08595859585950C940D1708958C -:103040009091B701977081E009F480E00895909124 -:103050000B01992321F090910C01911109C020914D -:103060000D0130910E01F90132969FEF40E01FC033 -:10307000982F9695969596959F3050F5E0910D0175 -:10308000F0910E01E90FF11D877021E030E0A901F8 -:1030900002C0440F551F8A95E2F7CA019181892B1E -:1030A000818308959F3F39F04F5F4E3041F0519139 -:1030B0005813F8CF0DC05111F7CF942FF5CF9F3F84 -:1030C00039F0F901E90FF11D97FDFA958283089512 -:1030D000089590910B01992321F090910C01911189 -:1030E00009C020910D0130910E01F9013296205F47 -:1030F0003F4F1FC0982F9695969596959F30F0F468 -:10310000E0910D01F0910E01E90FF11D877021E0B2 -:1031100030E0A90102C0440F551F8A95E2F7CA01A9 -:10312000809591818923818308953196E217F30771 -:1031300029F090819813F9CF1082F7CF089581E09C -:1031400090E0E0910D01F0910E01E80FF91F10825F -:10315000019680319105A9F708959091CB01892BB3 -:103160008093CB01089580959091CB018923809322 -:10317000CB0108951092CB0108959091CA01892B3B -:103180008093CA01089580959091CA018923809304 -:10319000CA0108951092CA0108959091C901892B1E -:1031A0008093C901089580959091C90189238093E6 -:1031B000C90108951092C90108958093B801089536 -:1031C0001092B801089580910D0190910E01FC01BB -:1031D00031969C01205F3F4F80E0919191118F5F6C -:1031E000E217F307D1F70895E0910D01F0910E0178 -:1031F0008091CB018083E0910D01F0910E019081CF -:103200008091CA01892B8083E0910D01F0910E011C -:1032100090818091C901892B80838091B801882396 -:1032200061F0E0910D01F0910E019081892B808376 -:103230000E94E31881111092B80180910D019091C4 -:103240000E010C940C0E20E0009739F0AC014150B7 -:103250005109842395232F5FF7CF822F0895809102 -:10326000DF01843021F11092CD0120E488E190E06B -:103270000FB6F894A895809360000FBE209360006D -:1032800080E00E94120683B7817F846083BF83B78A -:10329000816083BF7894889583B78E7F83BF88E1F0 -:1032A0000FB6F89480936000109260000FBE0895EE -:1032B000089508950E9458190E946D060E94591998 -:1032C0000E94F20691E0811101C090E0892F0895DB -:1032D0000E94AF120E94000E0C9412061F920F92D1 -:1032E0000FB60F9211248F939F93AF93BF9380914A -:1032F000CD01811113C08091CE019091CF01A09199 -:10330000D001B091D1014196A11DB11D8093CE0194 -:103310009093CF01A093D001B093D101BF91AF9111 -:103320009F918F910F900FBE0F901F90189582E084 -:1033300084BD93E095BD9AEF97BD80936E0008958C -:103340002FB7F8948091CE019091CF01A091D00138 -:10335000B091D1012FBF0895CF92DF92EF92FF92EB -:103360000F931F932FB7F8944091CE015091CF0146 -:103370006091D0017091D1012FBF6A017B01EE24D1 -:10338000FF248C0120E030E0C016D106E206F306EF -:1033900010F4415051099A01281B390BC9011F91A2 -:1033A0000F91FF90EF90DF90CF9008951F920F92B2 -:1033B0000FB60F9211248F939F93AF93BF93809179 -:1033C000CE019091CF01A091D001B091D101019691 -:1033D000A11DB11D8093CE019093CF01A093D00188 -:1033E000B093D101BF91AF919F918F910F900FBE7C -:1033F0000F901F9018950E94FD0AF8942FEF87EA0E -:1034000091E6215080409040E1F700C0000087E045 -:1034100090EBDC018093E9019093EA01A093EB012A -:10342000B093EC019CE088E10FB6F894A8958093E6 -:1034300060000FBE90936000FFCF0E94521A81116E -:1034400002C00E94381A0E945D1A8093CC010E942B -:10345000651A8093E80187FB882780F980930C0127 -:103460000E94611A682F70E080E090E00C946F1663 -:103470006DEE7EEF80E090E00E940A1E60E082E048 -:1034800090E00E94F81D60E083E090E00E94F81D4B -:1034900060E084E090E00E94F81D60E085E090E04C -:1034A0000C94F81D80E090E00E94F21D21E08D3E1A -:1034B0009E4F09F020E0822F089582E090E00C9466 -:1034C000EA1D83E090E00C94EA1D84E090E00C9407 -:1034D000EA1D682F84E090E00C94F81D8091D401DF -:1034E00080FF0BC06091120185E0689FB00111243C -:1034F00075956795759567952BC081FF09C060919B -:10350000120185E0689FB00111247595679520C070 -:1035100082FF07C06091120185E0689FB00111240D -:1035200017C09091D5019923D1F0609111019617A0 -:1035300088F72091120185E0289F90011124929F25 -:10354000A001939F500D112470E0CA010E94BC1D80 -:103550006038710540F46115710539F002C065E00D -:1035600070E0862F08958FE7089581E00895809197 -:10357000D40180FF08C06091100170E075956795D7 -:103580007595679521C081FF06C06091100170E0BC -:103590007595679519C082FF04C06091100170E0B5 -:1035A00010C09091D5019923C1F060910F01961739 -:1035B000A0F780911001899FC001112470E00E9442 -:1035C000BC1D6038710528F46115710521F0862F46 -:1035D00008958FE7089581E0089561E070E0F4CFE9 -:1035E000803F21F40E946E1A819504C0813F29F426 -:1035F0000E946E1A8093D8010895823F21F40E94A0 -:103600006E1A819504C0833F29F40E946E1A80933C -:10361000D7010895893F19F40E94B71A05C08A3F5F -:1036200031F40E94B71A81958093D90108958B3F98 -:1036300021F40E94B71A819504C08C3F29F40E949E -:10364000B71A8093DA010895843F21F48091D6015E -:10365000816017C0853F21F48091D601826011C03E -:10366000863F21F48091D60184600BC0873F21F40E -:103670008091D601886005C0883F31F48091D601E1 -:1036800080618093D60108958D3F21F48091D4010B -:1036900081600BC08E3F21F48091D401826005C00F -:1036A0008F3F29F48091D40184608093D4010895E0 -:1036B000803F39F48091D80187FF6CC01092D80107 -:1036C00069C0813F29F48091D8011816BCF362C00B -:1036D0009091D701823F29F497FF5CC01092D701E7 -:1036E00059C0833F19F41916CCF354C0893F41F4F3 -:1036F0008091D90118160CF04DC01092D9014AC022 -:103700008A3F29F48091D90187FF44C0F6CF8B3FCF -:1037100039F48091DA0187FF3DC01092DA013AC096 -:103720008C3F29F48091DA011816BCF333C0843F32 -:1037300021F48091D6018E7F17C0853F21F48091BE -:10374000D6018D7F11C0863F21F48091D6018B7FF9 -:103750000BC0873F21F48091D601877F05C0883F49 -:1037600031F48091D6018F7E8093D60113C08D3FB6 -:1037700021F48091D4018E7F0BC08E3F21F4809183 -:10378000D4018D7F05C08F3F29F48091D4018B7FB8 -:103790008093D4018091D70181110EC08091D8010E -:1037A00081110AC08091D901811106C08091DA018E -:1037B000811102C01092D501089586ED91E00E941A -:1037C000170E0E94A0199093D3018093D2010895FF -:1037D0001F93CF93DF938091D2019091D3010E94E8 -:1037E000AC19AC019091D501992321F020911301DE -:1037F00030E006C0209114018AE0289F9001112436 -:103800004217530708F486C08091D701C091D801B0 -:10381000D091D9011091DA01811107C0C11176C090 -:10382000D11174C0111172C075C09F3F19F09F5F14 -:103830009093D501181624F40E946E1A8093D70134 -:103840008091D70187FF05C00E946E1A81958093F1 -:10385000D7011C1624F40E946E1A8093D80180911F -:10386000D80187FF05C00E946E1A81958093D80108 -:103870006091D701662339F1C091D801CC2319F1A9 -:10388000772767FD7095872F972F0E94CD1C23E324 -:1038900033E343E35FE30E94311D0E949A1C60936F -:1038A000D7016C2F772767FD7095872F972F0E9480 -:1038B000CD1C23E333E343E35FE30E94311D0E9409 -:1038C0009A1C6093D8011D1624F40E94B71A8093A5 -:1038D000D9018091D90187FF05C00E94B71A81954F -:1038E0008093D901111624F40E94B71A8093DA014B -:1038F0008091DA0187FF05C00E94B71A81958093F5 -:10390000DA01DF91CF911F910C94DD1B9F3F09F0ED -:103910008ECF96CFDF91CF911F910895E6EDF1E024 -:1039200085E0DF011D928A95E9F71092D50110928A -:10393000D401089504D06894B1118DC0089570D059 -:1039400088F09F5790F0B92F9927B751A0F0D1F088 -:10395000660F771F881F991F1AF0BA95C9F712C012 -:10396000B13081F077D0B1E0089574C0672F782F1F -:103970008827B85F39F0B93FCCF38695779567957E -:10398000B395D9F73EF490958095709561957F4FEA -:103990008F4F9F4F0895E89409C097FB3EF4909590 -:1039A0008095709561957F4F8F4F9F4F9923A9F018 -:1039B000F92F96E9BB279395F695879577956795A7 -:1039C000B795F111F8CFFAF4BB0F11F460FF1BC0EB -:1039D0006F5F7F4F8F4F9F4F16C0882311F096E97E -:1039E00011C0772321F09EE8872F762F05C066232C -:1039F00071F096E8862F70E060E02AF09A95660FE5 -:103A0000771F881FDAF7880F9695879597F908959D -:103A100057FD9058440F551F59F05F3F71F047957F -:103A2000880F97FB991F61F09F3F79F08795089564 -:103A3000121613061406551FF2CF4695F1DF08C083 -:103A4000161617061806991FF1CF869571056105A0 -:103A500008940895E894BB2766277727CB0197F948 -:103A600008950BD078C069D028F06ED018F0952357 -:103A700009F05AC05FC01124EECFCADFA0F3959FB2 -:103A8000D1F3950F50E0551F629FF001729FBB2745 -:103A9000F00DB11D639FAA27F00DB11DAA1F649FF1 -:103AA0006627B00DA11D661F829F2227B00DA11DA4 -:103AB000621F739FB00DA11D621F839FA00D611D2A -:103AC000221F749F3327A00D611D231F849F600D4B -:103AD000211D822F762F6A2F11249F5750408AF084 -:103AE000E1F088234AF0EE0FFF1FBB1F661F771F10 -:103AF000881F91505040A9F79E3F510570F014C0A7 -:103B0000AACF5F3FECF3983EDCF3869577956795F7 -:103B1000B795F795E7959F5FC1F7FE2B880F911D2D -:103B20009695879597F9089597F99F6780E870E0D3 -:103B300060E008959FEF80EC089500240A94161623 -:103B4000170618060906089500240A94121613068B -:103B5000140605060895092E0394000C11F4882319 -:103B600052F0BB0F40F4BF2B11F460FF04C06F5F35 -:103B70007F4F8F4F9F4F089597FB072E16F40094A9 -:103B800007D077FD09D00E94D61D07FC05D03EF472 -:103B9000909581959F4F0895709561957F4F0895F9 -:103BA000EE0FFF1F0590F491E02D0994AA1BBB1B9B -:103BB00051E107C0AA1FBB1FA617B70710F0A61B2D -:103BC000B70B881F991F5A95A9F780959095BC014E -:103BD000CD010895F999FECF92BD81BDF89A99273C -:103BE00080B50895A8E1B0E042E050E00C94121EC8 -:103BF000262FF999FECF92BD81BDF89A019700B4A6 -:103C0000021639F01FBA20BD0FB6F894FA9AF99A45 -:103C10000FBE08950196272F0E94F91D0C94F81DE0 -:103C2000DC01CB01FC01F999FECF06C0F2BDE1BD7C -:103C3000F89A319600B40D9241505040B8F708956B -:043C4000F894FFCF26 -:103C4400FF0807960773073F070B070101B901280F -:103C540008140A321E1F0F03764F5F6F7F496943B2 -:103C64007909595363404D3639C10374033E030542 -:0A3C7400039802B102CA02E3020045 -:00000001FF diff --git a/keyboards/planck/keymaps/basic/readme.md b/keyboards/planck/keymaps/basic/readme.md new file mode 100644 index 000000000..3a4824b5b --- /dev/null +++ b/keyboards/planck/keymaps/basic/readme.md @@ -0,0 +1,2 @@ +# A more basic Planck Layout for copying + diff --git a/keyboards/planck/keymaps/bone2planck/compiled.hex b/keyboards/planck/keymaps/bone2planck/compiled.hex deleted file mode 100644 index 0d5287b3e..000000000 --- a/keyboards/planck/keymaps/bone2planck/compiled.hex +++ /dev/null @@ -1,1450 +0,0 @@ -:100000000C9491020C94D5020C94D5020C94D50258 -:100010000C94D5020C94D5020C94D5020C94D50204 -:100020000C94D5020C94D5020C9482140C945415A3 -:100030000C94B6220C94D5020C94D5020C94D502E3 -:100040000C94D5020C9437030C94D5020C94D50271 -:100050000C94D5020C941E230C94D5020C94D5025A -:100060000C94D5020C94D5020C94D5020C94D502B4 -:100070000C94D5020C94D5020C94D5020C94D502A4 -:100080000C94F70A0C94D5020C94D5020C94D5026A -:100090000C94D5020C94D5020C94D5020C94D50284 -:1000A0000C94D5020C94D5020C94D502C115E3151D -:1000B000D116E315D11628164B16D116A016B31675 -:1000C0009D199D19CC19CC190B1A2B1A811B811B58 -:1000D000361A811BE61AE61A4D1B561B811B7B1B29 -:1000E000F31AF31AF31AF31AF31AF31AF31AF31AA8 -:1000F000F31AF31AF31AF31AF31AF31AF31AF31A98 -:10010000031B111B181B1F1B291B07634236B79BC0 -:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 -:100120005763BD6DEDFD753EF6177231BF000000DF -:10013000803F08000000BE922449123EABAAAA2AC2 -:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD -:1001500000000000BF000000803F00000000000819 -:100160004178D3BB4387D1133D190E3CC3BD4282B6 -:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 -:10018000FFBE01C4FF7F3F00000000000000000030 -:1001900000000000000000010204060A0F17202CD6 -:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 -:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF -:1001C00002010000000000000000000014000D000B -:1001D0000700180004001B0013000B000F001000A4 -:1001E0001A002D000152060017000C000800120032 -:1001F00005001100150016000A0001521600090042 -:1002000019002F00340033001D001C003600370099 -:100210000E001600E000E300E200035202522C0040 -:100220002C000252035229002B002800350214141E -:1002300038022514261435001E02640064022702C9 -:100240002302000001002D1424022414271430027C -:100250002D0225022602380037020100000031007D -:100260002102641430140814300022021F023102EB -:100270003602000001000100010001000100010040 -:1002800001000100010001000100010000004B001D -:100290002A0052004C004E000000240025002600D9 -:1002A0000000000000004A00500051004F004D00C7 -:1002B0003700210022002300360000001600000055 -:1002C0002B0049002800000027001E001F0020000E -:1002D00036021600010001000100010001000100CA -:1002E0000100010001000100010001000000000008 -:1002F0004600470048000000000040004100420066 -:100300004500000000000000A800AA00A9000000AD -:1003100020143D003E003F004400000001000000AA -:10032000AC00AE00AB0000001F143A003B003C00E4 -:100330004300010001000100010001000000010074 -:100340000100000001000100010001002803540029 -:1003500068006500200050006C0061006E006300C2 -:100360006B0020004B006500790062006F006100A7 -:100370007200640000002C034F00720074006800DB -:100380006F006C0069006E00650061007200200063 -:100390004B006500790062006F006100720064002C -:1003A000730000000403090409026D00040100A0A9 -:1003B000FA090400000103010100092111010001F3 -:1003C000223F000705810308000A09040100010318 -:1003D000010200092111010001224D0007058203DD -:1003E00008000A09040200010300000009211101AC -:1003F00000012236000705830308000A09040300F0 -:100400000103000000092111010001223900070544 -:1004100084031000011201100100000008EDFE60CD -:100420006001000102000105010906A1010507198B -:10043000E029E715002501950875018102050819D5 -:100440000129059505750191029501750391010535 -:10045000071900297715002501957875018102C0DB -:1004600005010980A101850216010026B7001A01C5 -:10047000002AB700751095018100C0050C0901A183 -:10048000018503160100269C021A01002A9C0275B0 -:100490001095018100C005010902A1010901A10017 -:1004A0000509190129051500250195057501810228 -:1004B0009501750381010501093009311581257FF9 -:1004C00095027508810609381581257F9501750803 -:1004D0008106050C0A38021581257F950175088172 -:1004E00006C0C005010906A101050719E029E715A5 -:1004F00000250195087501810295017508810105A6 -:100500000819012905950575019102950175039159 -:10051000010507190029FF150025FF9506750881BB -:1005200000C011241FBECFEFDAE0DEBFCDBF04B69E -:1005300003FE24C080911E0390911F03A09120030D -:10054000B09121038730904BA740B04BB9F4109283 -:100550001E0310921F03109220031092210314BE59 -:1005600084B7877F84BF88E10FB6F89480936000DA -:10057000109260000FBEE0E0F8E3099511E0A0E002 -:10058000B1E0E6ECF9E502C005900D92A03CB107A0 -:10059000D9F713E0A0ECB1E001C01D92AE31B10774 -:1005A000E1F70E94C8110C94E12C0C94000008950E -:1005B000089581E0089508950C94D8020C94D9020E -:1005C0000C94DB020E94AB2823E030E0281B3109A9 -:1005D000220F2093C4010895282F2F988091800026 -:1005E000211108C0877F8093800010928D001092A7 -:1005F0008C001BC0886080938000233019F48FEF3B -:100600009FEF0FC083E090E0821B9109880F991F34 -:100610002FEF3FEFA90102C0569547958A95E2F763 -:10062000CA0190938D0080938C000C94E2020E948A -:10063000E20284E08093C3011092C0010895279ADA -:100640002F988FEF9FEF90938700809386008AE02A -:100650008093800089E1809381000E9414280C948B -:1006600017030E941F036E9A769A0C94D7021F926A -:100670000F920FB60F9211242F933F938F939F9356 -:10068000EF93FF93E091C101F091C201CF01019678 -:100690009093C2018093C1010090C30102C0F695FE -:1006A000E7950A94E2F7EF738091C001823019F464 -:1006B000E03251F404C0813039F4EF3329F48091F1 -:1006C0006F008D7F80936F00F0E0E457FE4FE49160 -:1006D00021E031E0E29FC001E39F900D11240090E2 -:1006E000C40102C0969587950A94E2F790938D0015 -:1006F00080938C00FF91EF919F918F913F912F916B -:100700000F900FBE0F901F90189561110DC0FC0146 -:100710008281882331F085EE0E9441180E946B2867 -:1007200003C085EE0E94091980E090E0089581E001 -:1007300008950C94970308950C9431038091150249 -:10074000882309F448C08091D1019091D20100978B -:1007500079F40E94E8229093D2018093D101809194 -:10076000D30190E0009771F48091D40190E00AC029 -:100770000E94F422209100013091010128173907CD -:1007800040F329C00197880F991F880F991FFC011A -:10079000EB52FE4F60817181828193810E945D0ADC -:1007A000E091D30184E0E89FF0011124EB52FE4F69 -:1007B00060817181828193814FE050E00E94150E2B -:1007C0008091D30190E001966091D40170E00E9485 -:1007D000912C8093D3010C94DC02109217020C949C -:1007E0002A0A0895089581E0809317020C94F20379 -:1007F000089508958F929F92AF92BF92EF92FF92C9 -:100800000F931F93CF93DF93CDB7DEB7A3970FB6A8 -:10081000F894DEBF0FBECDBF7C01FC0100811181C9 -:10082000C8010E94E520B8010E94FC058C01B701B7 -:100830000E949903882309F4CCC10032F0E51F0718 -:1008400041F4F7018281882309F458C00E94790E8F -:10085000C0C10132F0E51F0741F4F701828188230E -:1008600009F44CC00E94820EB4C10232F0E51F07A9 -:1008700051F4F7018281882309F440C00E94750E6B -:100880008111F0CFE3CF0332F0E51F0739F4F70110 -:100890008281882399F10E94F3039BC10432F0E521 -:1008A0001F0739F4F7018281882341F10E94ED038B -:1008B00090C10532F0E51F0749F4F70182818823D2 -:1008C000E9F0809117028111F1CFE5CF0632F0E512 -:1008D0001F0739F4F7018281882381F00E94890E75 -:1008E0000AC00732F0E51F0749F4F7018281882327 -:1008F00029F00E94940E0E94F9036BC180911702A7 -:10090000811105C0F70182818111CFC018C1003E5D -:10091000110579F4F7018281882309F44DC00E9402 -:100920002A0A81E080931602109215021092D401D7 -:1009300050C1023E110559F4F70182818823E1F18B -:100940000E942A0A109216021092150242C1033E1A -:10095000110591F4F7018281882371F10E942A0A1E -:100960001092160281E0809315021092D30110922A -:10097000D2011092D1012DC10235110559F4F701B0 -:100980008281882309F425C18091000190910101A1 -:100990000A970DC00135110579F4F701828188238A -:1009A00009F417C180910001909101010A9690937A -:1009B0000101809300010DC14091040183E2EFE148 -:1009C000F1E0DE01119601900D928A95E1F7F701B1 -:1009D000808121E030E02C0F3D1F280F311DC9011F -:1009E0002091020130910301FC01E20FF31F6081AD -:1009F000772767FD7095640F711D882777FD8095B7 -:100A0000982F0E94B32920E030E040E451E40E9496 -:100A100018294B015C01F701218184E090E0821BE1 -:100A20009109BC01882777FD8095982F0E94B329F2 -:100A30009B01AC01C501B4010E94B0289B01AC012F -:100A400060E070E080E090E40E94262B20E030E03F -:100A50004CED50E40E94C32A4B015C01F7018281F6 -:100A60008823D1F04FE050E0C501B4010E94150E7B -:100A7000809116028823A1F08091D40124E0829F06 -:100A8000F0011124EB52FE4F80829182A282B38248 -:100A90008F5F8093D40104C0C501B4010E945D0A38 -:100AA0000F3F110508F02ECF94C08091D001811125 -:100AB0001FC0043130E5130709F051C00E949B03A9 -:100AC00081E08093D0010E94E8229093CF0180932F -:100AD000CE011092C7011092C9011092C801109264 -:100AE000CB011092CA011092CD011092CC0171C0BD -:100AF0008091CE019091CF010E94F422883C910513 -:100B000070F48091C701E82FF0E0EE0FFF1FE8536B -:100B1000FE4F118300838F5F8093C7015AC0043852 -:100B200080E5180721F00538104501F13AC0F701BA -:100B30008281882341F01092C50182E01EC00438F2 -:100B400030E5130759F58091C501811106C086E291 -:100B50000E94411886E20E94091982E01CC00438F4 -:100B6000F0E51F0741F305381045D9F4F7018281FC -:100B7000882331F01092C60180E20E94581929C0E2 -:100B80008091C601811106C087E20E94411887E268 -:100B90000E94091980E20E945F191BC005381045A8 -:100BA00029F381E08093C5018093C601C701A39614 -:100BB0000FB6F894DEBF0FBECDBFDF91CF911F916E -:100BC0000F91FF90EF90BF90AF909F908F900C94FB -:100BD000DE0280E0A3960FB6F894DEBF0FBECDBF55 -:100BE000DF91CF911F910F91FF90EF90BF90AF9049 -:100BF0009F908F90089508959CE0799FF0011124B3 -:100C000090E3899FE00DF11D1124E60FF11DEE0F19 -:100C1000FF1FE453FE4F859194910895880F991F0B -:100C2000FC01E45BFF4F859194910895880F991F13 -:100C3000FC01E453FE4F8591949108950F931F9307 -:100C4000CF93DF93EC01811521E39207A0F5C11545 -:100C500080E3D80708F0D7C0C83ED105D8F4C03E1D -:100C6000D10508F007C2C83AD10578F4C53AD105D4 -:100C700008F06AC0C130D10509F463C008F4F7C1B7 -:100C8000C430D10508F0F6C1F2C1CB3BD10508F460 -:100C900066C0EDC1C11590E2D90708F0AFC0C1151B -:100CA00021E0D20708F0E6C1C03FD10508F4DFC15A -:100CB0008E0110651FC2C03880E5D80700F5C03727 -:100CC00090E5D90708F0A3C0C11520E5D20709F4C3 -:100CD000ACC050F4CE01905480319F4008F0C7C1A1 -:100CE000DF708E01106A06C2C13080E5D80709F4B2 -:100CF000AEC0C43190E5D90708F4AFC0B8C1C3385D -:100D000020E5D20709F48EC050F4C13890E5D90728 -:100D100009F482C008F083C000E011EDEBC1C031DE -:100D200081E5D80708F4A3C1C11597E5D90708F4F0 -:100D300036C1CE0190578115904108F098C1DF70FF -:100D400093C101E010E0D6C1C53AD10509F494C1C0 -:100D5000C63AD10509F093C102E810E4CBC1C83A04 -:100D6000D10509F48FC1C93AD10509F48EC1CA3A37 -:100D7000D10509F48DC1CB3AD10509F48CC1CC3A27 -:100D8000D10509F48BC1CD3AD10509F48AC1C03B24 -:100D9000D10509F489C1CE3AD10509F488C1CF3A09 -:100DA000D10509F487C1C13BD10509F486C1C23B15 -:100DB000D10509F485C1C33BD10509F484C1C43B05 -:100DC000D10509F483C1C53BD10509F482C1C63BF5 -:100DD000D10509F481C1C73BD10509F480C1C83BE5 -:100DE000D10509F47FC1C93BD10509F47EC1CA3BD5 -:100DF000D10509F47DC100E014E47CC1CE019F70EF -:100E00000E94160678C1DD278E01106C73C1CF7069 -:100E1000DD278E01146D6EC100E010ED6BC100E0A6 -:100E200012ED68C100E013ED65C10E94EC1B0E9449 -:100E30002A0A0E94F1038FEF94E32CE08150904046 -:100E40002040E1F700C000000E94432353C180917D -:100E5000F20281608093F2024DC10E94A4238111AD -:100E600002C00E9480230E94B72390E090931D034C -:100E700080931C03C23080E5D80721F480911C03C5 -:100E8000816086C0C43090E5D90721F480911C03AD -:100E900082607EC0C63020E5D20721F480911C0319 -:100EA000846076C0C83080E5D80719F480911C03AF -:100EB00027C0CA3090E5D90721F480911C038061D6 -:100EC00067C0CC3020E5D20721F480911C038062FA -:100ED0005FC0CE3080E5D80721F480911C03806488 -:100EE00057C0C03190E5D90721F480911C03806878 -:100EF0004FC0C23120E5D20729F480911C038460E1 -:100F0000886046C0C33080E5D80721F480911C0377 -:100F10008E7F3EC0C53090E5D90721F480911C0337 -:100F20008D7F36C0C73020E5D20721F480911C03A5 -:100F30008B7F2EC0C93080E5D80719F480911C033F -:100F400026C0CB3090E5D90721F480911C038F7E19 -:100F50001FC0CD3020E5D20721F480911C038F7D86 -:100F600017C0CF3080E5D80721F480911C038F7B18 -:100F70000FC0C13190E5D90721F480911C038F7710 -:100F800007C0C331D04531F480911C038B7F877F2C -:100F900080931C0380911C030E94BB23ABC08D2F48 -:100FA00099278F70992781309105D9F49E0123707C -:100FB000332702C0880F991F2A95E2F79C688E019B -:100FC00044E0000F111F4A95E1F700271370802BB2 -:100FD000912B53E0CC0FDD1F5A95E1F7C076DD274A -:100FE0002FC08230910531F4DC2FCC278E01016FA8 -:100FF000106A80C08330910569F4CE01837099270F -:1010000001E010E002C0000F111F8A95E2F7C8014D -:101010009C680FC084309105B9F4CE018370992784 -:1010200001E010E002C0000F111F8A95E2F7C8012D -:101030009A6823E0CC0FDD1F2A95E1F7C07ED770B8 -:101040008C010C2B1D2B56C08530910531F4DC2F03 -:10105000CC278E01046F106A4DC0069709F04AC074 -:10106000CF71DD27DC2FCC278E01106243C000E05A -:1010700010E040C08E013EC001E810E43BC003E830 -:1010800010E438C002EE14E435C009EE14E432C0B6 -:101090000AEE14E42FC005EB14E42CC006EB14E4B4 -:1010A00029C007EB14E426C00CEC14E423C00DECBB -:1010B00014E420C003E815E41DC00AE815E41AC0D2 -:1010C00002E915E417C004E915E414C001E216E4CE -:1010D00011C003E216E40EC004E216E40BC005E200 -:1010E00016E408C006E216E405C007E216E402C0F2 -:1010F0000AE216E4C801DF91CF911F910F91089584 -:101100009CE0799FF001112490E3899FE00DF11D8F -:101110001124E60FF11DEE0FFF1FE453FE4F8591E2 -:101120009491803E9105E0F4803C910558F581331F -:10113000910509F46FC048F48932910509F463C040 -:101140008A32910509F46DC072C089339105E9F0C6 -:1011500082389105D1F08533910509F44DC067C0FF -:10116000833E910581F138F4803E9105B9F0823ECD -:101170009105D9F05CC0863E910561F1873E9105ED -:10118000A1F155C00E940E06089520911C0320FD78 -:1011900002C021FF4CC080EE90E049C080911C034A -:1011A00080FFF9CF89E390E042C080911C0382FF69 -:1011B0000EC080911C0384FF03C080E090E037C024 -:1011C00083EE90E034C080911C0382FFF2CF82EE68 -:1011D00090E02DC080911C0383FF0BC080911C0305 -:1011E00084FDEBCF87EE90E022C080911C0383FF4B -:1011F000F5CF86EE90E01BC080911C0385FF07C0F1 -:1012000089E290E014C080911C0385FFF9CF85E34B -:1012100090E00DC080911C0386FF07C08AE290E039 -:1012200006C080911C0386FFF9CF81E390E00E9405 -:101230001E0608950C94E002E82FF0E0E25BFE4FFA -:101240008081E82FEF70F0E082958F7021E030E030 -:10125000A90102C0440F551F8A95E2F740A30895E3 -:101260000F931F93CF93DF9385B7806885BF85B7B2 -:10127000806885BFC3E0D0E001E010E0FE01E25BE2 -:10128000FE4F8081E82FEF70F0E021A182958F70F2 -:10129000A80102C0440F551F8A95E2F7CA01822BAC -:1012A00081A38C2F0E941C09219740F78BE090E0CE -:1012B00061E070E0FC01EE5BFE4F2081E22FEF70F9 -:1012C000F0E042A122952F70DB0102C0AA0FBB1FE4 -:1012D0002A95E2F79D01242B22A3019758F7DF916D -:1012E000CF911F910F910C949C03EF92FF920F935B -:1012F0001F93CF93DF9300E212E0C3E0EE24E39468 -:10130000F12CD5E08C2F0E941C098BE090E040E08E -:1013100050E0FC01EE5BFE4F6081E62FEF70F0E0E5 -:1013200020A130E062956F7002C0359527956A95CF -:10133000E2F720FD09C09701082E02C0220F331FDB -:101340000A94E2F7422B532B019718F7F801929178 -:1013500082918F018417950721F051834083D093A8 -:1013600005018C2F0E941C09C15060F68091050177 -:1013700087FD2CC08150809305018F3F39F08FE9A4 -:101380009FE00197F1F700C0000020C080911E028D -:1013900090911F02909327028093260280911C0255 -:1013A00090911D02909325028093240280911A024D -:1013B00090911B0290932302809322028091180245 -:1013C0009091190290932102809320020E949E0323 -:1013D00081E0DF91CF911F910F91FF90EF900895E1 -:1013E000E82FF0E0EE0FFF1FE05EFD4F808191815E -:1013F000089508950F931F93CF9308E212E0C0E081 -:10140000F801929182918F010E946022C80FF2E050 -:1014100000321F07A9F78C2FCF911F910F910895CC -:101420000E94A423811102C00E9480230E94C9232C -:10143000809307033E9A809171008D7F80937100A5 -:1014400082E0809390008AE18093910081E0809314 -:101450002A02089580912A02811102C00E94100A76 -:1014600010927A0210927902809171008D7F8093A0 -:101470007100809190008F738093900010923C02D5 -:1014800010923B0210927302109274021092750235 -:10149000109276021092720210927102E1E5F2E06F -:1014A000A1E4B2E011921192119211921D921D923B -:1014B00082E0E137F807B1F70895CF92DF92EF921B -:1014C000FF920F931F93CF93DF9320913B02222330 -:1014D00009F484C06B017C0180912A02811102C051 -:1014E0000E94100A01E712E0C7E0D0E0A7019601D0 -:1014F000F80192918291729162918F010E94142958 -:10150000811131C0FE01EE0FFF1FEE0FFF1FEF5ADA -:10151000FD4F1082118212821382DE01AA0FBB1FBF -:10152000AF5BBD4F11961C921E92C730D105E9F0FA -:1015300021964481558166817781408351836283FE -:101540007383148215821682178212968D919C9154 -:10155000139711969C938E9313961C921E9212973A -:1015600034961296E2CF219708F6809179029091F5 -:101570007A02019797FD05C090937A0280937902D1 -:1015800004C010927A0210927902809179029091AF -:101590007A0220917702309178022817390724F0D7 -:1015A0001092780210927702892BC1F48091710019 -:1015B0008D7F80937100809190008F738093900055 -:1015C00010927302109274021092750210927602B9 -:1015D000109272021092710210923B02DF91CF9131 -:1015E0001F910F91FF90EF90DF90CF9008951F9281 -:1015F0000F920FB60F9211244F925F926F927F92CB -:101600008F929F92AF92BF92CF92DF92EF92FF9212 -:101610002F933F934F935F936F937F938F939F93FA -:10162000AF93BF93CF93DF93EF93FF9380913B02F0 -:10163000882309F49BC1C0917902D0917A021C16CB -:101640001D060CF093C140902B0250902C0260902C -:101650002D0270902E0220E030E0A901C301B201FA -:101660000E94BF2A18160CF065C0C130D10509F4DC -:1016700052C08091770290917802BE010E94912C15 -:101680007C01909378028093770280903D02909045 -:101690003E02A0903F02B090400220E030E040E8DF -:1016A0005FE3C501B4010E94B02860933D027093CE -:1016B0003E0280933F0290934002F701EE0FFF1F1E -:1016C000EE0FFF1FEF5AFD4FA30192016081718160 -:1016D000828193810E94182920E030E040E05EE39F -:1016E0000E94C32A9B01AC01C501B4010E94BF2A1C -:1016F00018168CF4C7010196BE010E94912C90939C -:1017000078028093770210923D0210923E0210926E -:101710003F0210924002E0917702F0917802EE0FC2 -:10172000FF1FEE0FFF1FEF5AFD4F60817181828115 -:101730009381D0C0C0907302D0907402E090750283 -:10174000F090760220E030E0A901C701B6010E94C6 -:1017500014292197882309F4A2C0FE01EE0FFF1F70 -:10176000EE0FFF1FEF5AFD4F80809180A280B38063 -:10177000A5019401C701B6010E94142987FF31C059 -:10178000A501940160E070E08CED93EC0E941829B3 -:1017900020E030E040E451E40E94182920E030E0ED -:1017A00040E05FE30E94C32A9B01AC0160E070E06F -:1017B00080E090E40E94262B9B01AC01C501B4019E -:1017C0000E94C32A9B01AC01C701B6010E941429E3 -:1017D00087FF07C0A701960160E070E08CED93E4FD -:1017E00039C0A5019401C701B6010E94BF2A18168D -:1017F0000CF055C0A501940160E070E08CED93E41D -:101800000E94182920E030E040E451E40E941829A9 -:1018100020E030E040E05FE30E94C32A9B01AC017E -:1018200060E070E080E090E40E94262B9B01AC0118 -:10183000C501B4010E94C32A9B01AC01C701B601D6 -:101840000E94BF2A18165CF5A701960160E070E0BF -:101850008CED93EC0E94182920E030E040E451E444 -:101860000E94182920E030E040E05FE30E94C32A94 -:101870009B01AC0160E070E080E090E40E94262BC8 -:101880009B01AC01C701B6010E94C32A6093730299 -:1018900070937402809375029093760213C0FE01D8 -:1018A000EE0FFF1FEE0FFF1FEF5AFD4F808191815A -:1018B000A281B3818093730290937402A093750206 -:1018C000B0937602609173027091740280917502F8 -:1018D0009091760220912802309129022F3F4FEFFC -:1018E000340731F02F5F3F4F3093290220932802B5 -:1018F0000E949F0E6B017C0120E034E244EF51E432 -:101900000E94142987FF08C086EFC82E88E2D82ECF -:1019100084EFE82E81E4F82E20E030E040E051E44E -:10192000C701B6010E94C32A9B01AC0160E074E2CA -:1019300084E79BE40E9418296B017C010E948529A1 -:1019400070939700609396002091060130910701F3 -:101950004091080150910901C701B6010E94C32AB4 -:101960000E948529709399006093980080913C02B1 -:10197000882309F433C1C0903702D0903802E09038 -:101980003902F0903A0220E030E0A901C701B60127 -:101990000E94BF2A1816D4F580912802909129023E -:1019A0008F3F2FEF920729F00196909329028093A1 -:1019B0002802C701B6010E949F0E20E030E040E0FF -:1019C00051E40E94C32A9B01AC0160E074E284E709 -:1019D0009BE40E9418296B017C010E948529709369 -:1019E0009700609396002091060130910701409185 -:1019F000080150910901C701B6010E94C32A0E9443 -:101A00008529709399006093980008C01092970000 -:101A100010929600109299001092980060913102F5 -:101A2000709132026F5F7F4F709332026093310288 -:101A3000209196003091970080E090E0232BF1F008 -:101A4000C0919600D09197000E94B1296B017C0152 -:101A5000BE0180E090E00E94B1299B01AC01609141 -:101A600033027091340280913502909136020E94C7 -:101A7000182920E03FEF4FE757E410C00E94B1293A -:101A80006B017C0120E030EE4FEF54E460913302B3 -:101A90007091340280913502909136020E94C32ADF -:101AA0009B01AC01C701B6010E94BF2A87FD96C009 -:101AB00080912F028F5F80932F0290E0209103038B -:101AC0003091040382179307A0F080910E038823BE -:101AD00019F010922F020DC0809171008D7F8093BC -:101AE0007100809190008F738093900010923C025F -:101AF0007DC080913002C0912F02811128C0C0901A -:101B00000803D0900903E0900A03F0900B0320E053 -:101B100030E0A901C701B6010E94BF2A1816BCF423 -:101B200081E08093300210923702109238021092B6 -:101B3000390210923A02C0923302D0923402E092FB -:101B40003502F0923602C150C0932F0243C010926A -:101B500030021092290210922802E0910503F091C0 -:101B6000060348E0C49FE00DF11D1124808191819E -:101B7000A281B3818093370290933802A0933902F7 -:101B8000B0933A0220E030E040E85EE36481758182 -:101B9000868197810E94C32A6B017C0180910A0192 -:101BA000682F70E080E090E00E94B12920E030E0F2 -:101BB00048EC52E40E9418299B01AC01C701B60110 -:101BC0000E94C32A609333027093340280933502DB -:101BD00090933602109232021092310280910703E4 -:101BE00080FD04C010923C0210923B02FF91EF91E5 -:101BF000DF91CF91BF91AF919F918F917F916F9125 -:101C00005F914F913F912F91FF90EF90DF90CF9098 -:101C1000BF90AF909F908F907F906F905F904F900C -:101C20000F900FBE0F901F901895CF92DF92EF92FA -:101C3000FF92CF93DF936B017C01EA0180912A022E -:101C4000811102C00E94100A8091070380FF46C0E4 -:101C50008091790290917A0208970CF03FC08091B0 -:101C600071008D7F8093710080913C0281110E94F0 -:101C70002A0A81E080933B021092290210922802E6 -:101C800020E030E0A901C701B6010E94BF2A181662 -:101C9000DCF48091790290917A02FC01EE0FFF1F33 -:101CA000EE0FFF1FEF5AFD4FC082D182E282F38216 -:101CB000FC01EE0FFF1FEF5BFD4FD183C083019648 -:101CC00090937A0280937902809171008260809370 -:101CD000710080919000806880939000DF91CF9197 -:101CE000FF90EF90DF90CF9008958091070381706F -:101CF0000895809107038160809307030E94CD239C -:101D00000C94F803809107038E7F809307030C9453 -:101D1000CD2380917B0290E0019666E070E00E9406 -:101D2000912C80937B02089580917B0290E0019733 -:101D300066E070E00E94912C80937B0208958F9260 -:101D40009F92AF92BF92CF92DF92EF92FF920F934A -:101D50001F93CF93DF936B017C01C0912802D09138 -:101D60002902BE0180E090E00E94B1294B015C0194 -:101D7000A701960160E070E08CE594E40E941829C8 -:101D80009B01AC01C501B4010E94C32A0E948529B0 -:101D900020917B02233009F473C028F4222351F0F0 -:101DA0002130E9F02CC1243009F4A0C0253009F419 -:101DB000E0C025C180E090E0A0E0BFE38093060191 -:101DC00090930701A0930801B093090110922B0290 -:101DD00010922C0210922D0210922E0210C110921D -:101DE0002B0210922C0210922D0210922E026431BE -:101DF000710540F46A30710560F520E030E040E89C -:101E00005EE32BC0693C710508F0AAC080E090E059 -:101E10000E94B12920E030E040EA51E40E94AF285E -:101E200020E030E044E353E40E9418299B01AC0118 -:101E30000E94C32A20E030E040E05EE30E94C32A13 -:101E40009B01AC0160E070E080E09EE30E94AF285F -:101E500044C020E030E040E05FE3C701B6010E94EB -:101E6000C32A6B017C0180E090E0A0E0BEE3809398 -:101E7000060190930701A0930801B0930901BFC028 -:101E800010922B0210922C0210922D0210922E0210 -:101E90004AE0469F9001479F300D1124C90168EB2D -:101EA0007BE00E947D2CBC016C5D754077FF03C018 -:101EB000719561957109882777FD8095982F0E940B -:101EC000B3292EE333EC4EE259E30E94C32A20E00B -:101ED00030E040EC5EE30E94B0286093060170930E -:101EE0000701809308019093090189C010922B0289 -:101EF00010922C0210922D0210922E02CE018370AD -:101F00009927892BE1F0BE016170772780E090E08E -:101F10000E94B12920E030E040E05EE30E94C32A45 -:101F200020E030E040E45FE30E94B02860930601C7 -:101F30007093070180930801909309010CC080E021 -:101F400090E0A0E0BFE38093060190930701A09387 -:101F50000801B0930901C770DD27CD2B09F04FC0F0 -:101F600010920601109207011092080110920901C7 -:101F700046C010922B0210922C0210922D02109249 -:101F80002E0200E010E020E03FE3009306011093F2 -:101F9000070120930801309309016739710578F131 -:101FA00080E090E00E94B12920E030E047E153E476 -:101FB0000E94AF2820E030E04AE754E40E9418294C -:101FC00020E030E048E452E40E94C32A20E030E000 -:101FD00040EA51E40E94F5290E948029660F771F8C -:101FE000660F771FFB01EE5AFE4F2081318142813F -:101FF0005381C701B6010E94C32A6B017C01C7014E -:10200000B601DF91CF911F910F91FF90EF90DF907C -:10201000CF90BF90AF909F908F90089580918C0249 -:102020000895CF93DF9300D01F92CDB7DEB79C0108 -:1020300080911303843019F593E099833B832A83BD -:102040009093E9008FEF9091E800815095FD06C0D4 -:1020500095ED9A95F1F700008111F5CF8091E80098 -:1020600085FF0DC040E050E063E070E0CE010196D6 -:102070000E9472128091E8008E778093E8000F90A2 -:102080000F900F90DF91CF910895CF93DF9300D001 -:102090001F92CDB7DEB720911303243021F522E043 -:1020A00029839B838A8383E08093E9008FEF90915B -:1020B000E800815095FD06C095ED9A95F1F7000076 -:1020C0008111F5CF8091E80085FF0DC040E050E020 -:1020D00063E070E0CE0101960E9472128091E800E8 -:1020E0008E778093E8000F900F900F90DF91CF9143 -:1020F0000895209113032430F1F422E02093E900A5 -:102100002FEF3091E800215035FD06C035ED3A95AE -:10211000F1F700002111F5CF2091E80025FF0BC059 -:1021200040E050E065E070E00E9472128091E800AB -:102130008E778093E8000895CF93DF93EC01909120 -:102140001303943009F046C0809115018823D9F01B -:10215000809116018823B9F09093E9008FEF909158 -:10216000E800815095FD06C095E19A95F1F70000D1 -:102170008111F5CF8091E80085FF2CC040E050E050 -:1021800060E170E017C081E08093E9008FEF9091EB -:10219000E800815095FD06C095ED9A95F1F7000095 -:1021A0008111F5CF8091E80085FF14C040E050E038 -:1021B00068E070E0CE010E9472128091E8008E7794 -:1021C0008093E80080E1FE01ACE7B2E001900D925F -:1021D0008A95E1F7DF91CF910895809112038111E3 -:1021E00009C00E9407140E9464148091E200846078 -:1021F0008093E200089510921203089508950895BF -:102200000C94AB2242E061EC81E00E94811342E039 -:1022100061EC82E00E94811342E061EC83E00E9465 -:10222000811342E161EC84E00C94811380911503E9 -:10223000833009F455C030F4813071F0823009F4F4 -:102240008EC008958A3009F47AC08B3009F460C0DA -:10225000893009F09CC020C080911403813A09F0B4 -:1022600096C08091E800877F8093E80080911803F2 -:1022700090911903892B21F460E18CE792E003C06F -:1022800060E080E090E070E00E94BD128091E80084 -:102290008B778093E800089580911403813209F0D0 -:1022A00076C08091180390911903009719F0039755 -:1022B00009F06DC08091E800877F8093E8008091ED -:1022C000E80082FD05C0809113038111F8CF5FC043 -:1022D0008091F10080938C028091E8008B7753C04D -:1022E00080911403813A09F052C0809118039091B3 -:1022F0001903892B09F04BC08091E800877F8093F8 -:10230000E8008091E80080FFFCCF8091150136C085 -:10231000809114038132D9F58091180390911903AB -:10232000892BA9F58091E800877F8093E8000E94BF -:10233000B61380911603809315010C94EC1B8091C9 -:102340001403813221F58091E800877F8093E800B3 -:102350000E94B6138091170380938D020895809197 -:102360001403813AA1F48091E800877F8093E8000C -:102370008091E80080FFFCCF80918D028093F10076 -:102380008091E8008E778093E8000C94B61308954E -:1023900084B7877F84BF88E10FB6F894809360008C -:1023A000109260000FBE90E080E80FB6F894809322 -:1023B0006100909361000FBE0E9459170E9407149C -:1023C0000E9464148091E20084608093E20078941B -:1023D0000E94EA160E945B178BE091E00E940517AD -:1023E00080911303853069F40E946C22809111035F -:1023F0008823B1F30E949A22882391F30E945C12F1 -:10240000EFCF0E946317ECCF292F332723303105FC -:10241000C9F064F42130310581F02230310509F032 -:1024200043C08DE690E028EA33E042C02132310516 -:10243000F1F02232310541F137C082E190E025E12F -:1024400034E036C099278130910541F08230910502 -:1024500041F0892B49F5E4EAF3E005C0E6E7F3E053 -:1024600002C0ECE4F3E0849190E09F0121C064306D -:10247000D8F4E62FF0E0EE0FFF1FE255FE4F20816B -:10248000318189E090E014C0643070F470E0FB01A9 -:10249000EE0FFF1FEA55FE4F20813181FB01EE5503 -:1024A000FE4F808190E004C080E090E020E030E0CA -:1024B000FA0131832083089580E189BD82E189BDDD -:1024C00009B400FEFDCF8091D8008F7D8093D800A5 -:1024D0008091E00082608093E0008091E00081FDC7 -:1024E000FCCF0895CF92DF92EF92FF920F931F934C -:1024F000CF93DF93EC018B016A010E94D513811108 -:1025000033C0C114D10439F0F60180819181081BD8 -:10251000190BC80FD91FE12CF12C0115110519F168 -:102520008091E80085FD16C08091E8008E77809349 -:10253000E800C114D10449F0F60180819181E80ED0 -:10254000F91EF182E08285E00FC00E94D513882336 -:1025500021F30AC089918093F10001501109FFEF26 -:10256000EF1AFF0ADACF80E0DF91CF911F910F9130 -:10257000FF90EF90DF90CF90089520911A03309153 -:102580001B032617370748F06115710539F42091B0 -:10259000E8002E772093E80001C0B90140E0611502 -:1025A0007105A9F120911303222309F443C02530BA -:1025B00009F442C02091E80023FD40C02091E800CA -:1025C00022FD32C02091E80020FFE9CF4091F300C6 -:1025D0002091F20030E0342BFC01CF016115710530 -:1025E00059F02830310540F481918093F100615019 -:1025F00071092F5F3F4FF1CF41E02830310509F0DD -:1026000040E02091E8002E772093E800C8CF4111E8 -:10261000C9CF0AC080911303882361F0853061F02F -:102620008091E80083FD0AC08091E80082FFF2CF2C -:1026300080E0089582E0089583E0089581E00895A0 -:1026400020911A0330911B032617370748F06115B4 -:10265000710539F42091E8002E772093E80001C03D -:10266000B901FC0120E06115710591F1809113031E -:10267000882309F440C0853009F43FC08091E80008 -:1026800083FD3DC08091E80082FD2FC08091E8006D -:1026900080FFE9CF2091F3008091F20090E0922B2F -:1026A0006115710559F08830910540F4249120930B -:1026B000F1003196615071090196F2CF21E008973F -:1026C00009F020E08091E8008E778093E800CBCF7E -:1026D0002111CCCF0AC080911303882361F085308B -:1026E00061F08091E80083FD0AC08091E80082FFDC -:1026F000F2CF80E0089582E0089583E0089581E0BC -:102700000895982F973058F59093E900981739F06D -:102710007091EC002091ED005091F00003C0242F47 -:10272000762F50E021FF19C03091EB003E7F3093AF -:10273000EB003091ED003D7F3093ED003091EB00E8 -:1027400031603093EB007093EC002093ED005093D8 -:10275000F0002091EE0027FF07C09F5FD3CF8F705E -:102760008093E90081E0089580E00895809114034A -:1027700087FF11C08091E80082FD05C0809113039E -:102780008111F8CF11C08091E8008B770BC0809148 -:102790001303882349F08091E80080FFF8CF8091EF -:1027A000E8008E778093E80008952091E40030914E -:1027B000E50095E64091EC00842F817040FF22C037 -:1027C0008091E80080FD1CC080911303882391F064 -:1027D000853091F08091EB0085FD10C04091E400C0 -:1027E0005091E5004217530729F39A01915011F7D0 -:1027F00084E0089582E0089583E0089581E00895DB -:1028000080E008954091E80042FFDECF08950E94E5 -:1028100075140E947D14E0EEF0E080818160808379 -:10282000E8EDF0E080818F77808319BCA7EDB0E000 -:102830008C918E7F8C9380818F7E80831092120387 -:1028400008950F931F93CF93DF930E9475140E94F6 -:102850007D14C8EDD0E088818F7788838881806877 -:10286000888388818F7D888319BC1092130310920E -:102870000F03109211031092100300EE10E0F80104 -:1028800080818B7F808388818160888342E060E0E3 -:1028900080E00E948113E1EEF0E080818E7F8083F2 -:1028A000E2EEF0E0808181608083808188608083B7 -:1028B000F80180818E7F8083888180618883DF91A9 -:1028C000CF911F910F910895E8EDF0E080818F7E08 -:1028D0008083E7EDF0E080818160808384E082BFC7 -:1028E00081E0809312030C942114E8EDF0E08081E4 -:1028F0008E7F80831092E20008951092DA00109289 -:10290000E10008951F920F920FB60F9211242F939A -:102910003F934F935F936F937F938F939F93AF9367 -:10292000BF93EF93FF938091E10082FF0BC08091F2 -:10293000E20082FF07C08091E1008B7F8093E1007D -:102940000E94E9168091DA0080FF1FC08091D800B4 -:1029500080FF1BC08091DA008E7F8093DA00809127 -:10296000D90080FF0DC080E189BD82E189BD09B435 -:1029700000FEFDCF81E0809313030E94ED1005C09F -:1029800019BC109213030E94FB108091E10080FF9C -:1029900019C08091E20080FF15C08091E2008E7F17 -:1029A0008093E2008091E20080618093E200809158 -:1029B000D80080628093D80019BC85E0809313030F -:1029C0000E94FF108091E10084FF30C08091E200FE -:1029D00084FF2CC080E189BD82E189BD09B400FE7D -:1029E000FDCF8091D8008F7D8093D8008091E10049 -:1029F0008F7E8093E1008091E2008F7E8093E200E1 -:102A00008091E20081608093E20080910F0388232F -:102A100011F084E007C08091E30087FD02C081E0EF -:102A200001C083E0809313030E9400118091E100B4 -:102A300083FF29C08091E20083FF25C08091E100DF -:102A4000877F8093E10082E08093130310920F034D -:102A50008091E1008E7F8093E1008091E2008E7F83 -:102A60008093E2008091E20080618093E20042E086 -:102A700060E080E00E9481138091F0008860809384 -:102A8000F0000E94FE10FF91EF91BF91AF919F91D6 -:102A90008F917F916F915F914F913F912F910F9007 -:102AA0000FBE0F901F9018951F920F920FB60F92A6 -:102AB00011242F933F934F935F936F937F938F9343 -:102AC0009F93AF93BF93CF93DF93EF93FF93C09107 -:102AD000E900CF708091EC00D82FD17080FDD0E854 -:102AE0001092E9008091F000877F8093F000789445 -:102AF0000E9498151092E9008091F0008860809300 -:102B0000F000CD2BCF70C093E900FF91EF91DF91E2 -:102B1000CF91BF91AF919F918F917F916F915F9175 -:102B20004F913F912F910F900FBE0F901F901895CE -:102B30001F93CF93DF93CDB7DEB7AA970FB6F89464 -:102B4000DEBF0FBECDBFE4E1F3E088E08E0F9091D1 -:102B5000F10091938E13FBCF0E9416118091E80033 -:102B600083FF1FC18091140390911503492F50E0FA -:102B70004A30510508F015C1FA01EA5AFF4F0C948A -:102B8000A52C803881F0823809F00BC180911803A0 -:102B90008F708093E9008091EB0085FB882780F996 -:102BA0001092E90006C080911003909111039111D9 -:102BB00082609091E800977F9093E8008093F10005 -:102BC0001092F100C8C0282F2D7F09F0EAC0882399 -:102BD00019F0823061F0E5C080911603813009F070 -:102BE000E0C0933009F080E0809311032BC0809106 -:102BF0001603811127C0809118038F7009F4D1C08A -:102C00008093E9002091EB0020FF1CC0933021F459 -:102C10008091EB00806214C09091EB0090619093E2 -:102C2000EB0021E030E0A90102C0440F551F8A9556 -:102C3000E2F74093EA001092EA008091EB0088608E -:102C40008093EB001092E9008091E800877F86C0B6 -:102C50008111A7C0109116031F778091E30080783F -:102C6000812B8093E3008091E800877F8093E800C8 -:102C70000E94B6138091E80080FFFCCF8091E300B2 -:102C800080688093E300111102C082E001C083E0FC -:102C90008093130386C08058823008F082C08091F0 -:102CA0001603909117038C3D53E0950779F583E067 -:102CB0008A838AE289834FB7F894DE01139620E075 -:102CC0003EE051E2E32FF0E050935700E49120FF03 -:102CD00003C0E295EF703F5FEF708E2F90E0EA3017 -:102CE00010F0C79601C0C0968D939D932F5F24313D -:102CF00049F74FBF8091E800877F8093E8006AE240 -:102D000070E0CE0101960E94BD1214C0AE014F5F6B -:102D10005F4F609118030E940412BC01009709F4F0 -:102D200040C09091E800977F9093E80089819A8154 -:102D30000E9420138091E8008B778093E80031C0D7 -:102D4000803879F58091E800877F8093E800809152 -:102D50000F038093F1008091E8008E778093E80064 -:102D60000E94B6131EC081111CC0909116039230B0 -:102D7000C0F48091E800877F8093E80090930F0370 -:102D80000E94B61380910F03811106C08091E30069 -:102D900087FD02C081E001C084E0809313030E949C -:102DA00002118091E80083FF0AC08091E800877FCC -:102DB0008093E8008091EB0080628093EB00AA96FC -:102DC0000FB6F894DEBF0FBECDBFDF91CF911F913C -:102DD00008950895CF93809113038823A1F0C091A3 -:102DE000E900CF709091EC00892F817090FD80E810 -:102DF000C82B1092E9008091E80083FD0E9498158D -:102E0000CF70C093E900CF9108959093930280937F -:102E100092020895E0919202F0919302309721F08E -:102E20000190F081E02D099480E00895E0919202F4 -:102E3000F0919302309721F00280F381E02D099404 -:102E40000895E0919202F0919302309721F004806E -:102E5000F581E02D0994089520919002309191021E -:102E60008217930771F09093910280939002E09102 -:102E70009202F0919302309721F00680F781E02DC5 -:102E80000994089520918E0230918F028217930742 -:102E900071F090938F0280938E02E0919202F091F4 -:102EA0009302309721F00084F185E02D0994089574 -:102EB00008950C9458170E94DF220E9430090E9446 -:102EC00065230C9414285F926F927F928F929F9249 -:102ED000AF92BF92CF92DF92EF92FF920F931F9328 -:102EE000CF93DF9300D000D01F92CDB7DEB70E9402 -:102EF00075099DE9C92E92E0D92E03E010E0AA24BD -:102F0000A394B12C502E802F0E94F0094C01F601A1 -:102F1000729062906F016826792661147104A1F4A1 -:102F20000150110978F78FEF89838A831B820E94F1 -:102F3000E8228160782F9D838C8349815A816B813F -:102F40008D810E94131838C08091F20281FD0E9489 -:102F5000F9092BE030E07501022E02C0EE0CFF1CD7 -:102F60000A94E2F7C70186219721892B09F1298369 -:102F70005A828E209F2091E0892809F490E09B835B -:102F80000E94E8228160782F9D838C8349815A8139 -:102F90006B818D810E941318000F111FF801EB56F1 -:102FA000FD4F80819181E826F926F182E08204C0FC -:102FB0002150310980F6B4CF0E944C251091940223 -:102FC0000E940A171817D1F00E940A1780939402E2 -:102FD0000F900F900F900F900F90DF91CF911F9156 -:102FE0000F91FF90EF90DF90CF90BF90AF909F90A8 -:102FF0008F907F906F905F900C941A090F900F90B4 -:103000000F900F900F90DF91CF911F910F91FF9034 -:10301000EF90DF90CF90BF90AF909F908F907F9078 -:103020006F905F900895CF93DF93CDB7DEB72B9766 -:103030000FB6F894DEBF0FBECDBF4F8358876987A8 -:103040007A878B87DE01119686E0FD0111928A95C1 -:10305000E9F785E0FE01379601900D928A95E1F738 -:1030600049815A816B817C818D819E810E948A1E5B -:103070002B960FB6F894DEBF0FBECDBFDF91CF9178 -:103080000895CF93882309F4C2C0C82F823859F419 -:103090000E940A1781FDBBC089E30E9464210E943F -:1030A000312289E30CC0833879F40E940A1780FD2D -:1030B000AEC083E50E9464210E94312283E50E9414 -:1030C000A621CF910C943122843859F40E940A171A -:1030D00082FD9DC087E40E9464210E94312287E422 -:1030E000EECF8CEF8C0F813A48F48C2F0E947C2716 -:1030F00081118DC08C2F0E946421E3CF80E28C0F60 -:10310000883048F4C77081E001C0880FCA95EAF79B -:103110000E94EA21D6CF8BE58C0F833078F4C53A34 -:1031200029F0C63A31F083E890E005C081E890E0EC -:1031300002C082E890E0CF910C942C1788E58C0FA8 -:10314000833108F064C0C83A39F1C93A41F1CA3A4A -:1031500049F1CB3A51F1CC3A59F1CD3A61F1C03B4A -:1031600069F1CE3A71F1CF3A79F1C13B81F1C23BBD -:1031700089F1C33B91F1C43B99F1C53BA1F1C63B39 -:10318000A9F1C73BB1F1C83BB9F1C93BC1F1CA3B99 -:10319000C9F180E090E038C082EE90E035C089EE61 -:1031A00090E032C08AEE90E02FC085EB90E02CC01A -:1031B00086EB90E029C087EB90E026C08CEC90E095 -:1031C00023C08DEC90E020C083E891E01DC08AE828 -:1031D00091E01AC082E991E017C084E991E014C03F -:1031E00081E292E011C083E292E00EC084E292E0BC -:1031F0000BC085E292E008C086E292E005C087E25B -:1032000092E002C08AE292E0CF910C944217CF91F3 -:103210000895882309F44BC0823859F40E940A1794 -:1032200081FF45C089E30E9464210E94312289E325 -:103230000CC0833871F40E940A1780FF38C083E500 -:103240000E9464210E94312283E50E94A6210C94F1 -:103250003122843859F40E940A1782FF28C087E47B -:103260000E9464210E94312287E4EFCF9CEF980FE7 -:10327000913A58F390E2980F983050F4877091E0AB -:1032800001C0990F8A95EAF7892F0E94F021DFCFBC -:103290009BE5980F933020F480E090E00C942C177D -:1032A000885A833120F480E090E00C94421708950E -:1032B000882321F00E94EA210C943122089588236A -:1032C00021F00E94F0210C94312208957F928F9278 -:1032D0009F92AF92BF92CF92DF92EF92FF920F93A5 -:1032E0001F93CF93DF931F92CDB7DEB77C01C62E1D -:1032F000772EFC01058102950F70128111110E9439 -:1033000007220E945D21882379F0112369F080E271 -:103310008C0D883048F082E00E9446210E945D2199 -:1033200091E0D82ED92601C0D12CE72DE295EF707F -:10333000F0E0E05AFF4F0C94A52C872D807F072DDD -:103340000F70882311F00295007F112389F000236C -:1033500009F499C180E28C0D883020F4802F0E94FE -:10336000EA2103C0802F0E94FA210E9431228BC1E2 -:103370008C2D0E940919002309F4C3C180E28C0D31 -:10338000883020F4802F0E94F02103C0802F0E94FB -:1033900000220E943122B5C1872D807F972D9F701A -:1033A000803211F4892F03C0892F8295807FCC2031 -:1033B00021F0F1E0CF16A1F01DC0112339F0002358 -:1033C00019F1013009F50E941A229BC1002319F05E -:1033D000013009F496C189830E941D22898110C1A0 -:1033E000112321F0063008F08CC10EC0053008F022 -:1033F00088C106C1112359F0002331F0F7019581EE -:1034000090FF41C19F7095830E9458197AC1002393 -:1034100009F4F6C03EC1872D86958695837090E0AD -:10342000009719F0019761F06CC1112321F08C2DE8 -:10343000972D937002C080E090E00E942C1761C12C -:10344000112321F08C2D972D937002C080E090E025 -:103450000E94421756C18C2D112319F00E9454244A -:1034600002C00E94BC240E9441254BC1872D83705D -:1034700009F052C0111145C18C2D82958695877037 -:10348000880F880F9C2D9F70892E912CA12CB12C18 -:10349000082E04C0880C991CAA1CBB1C0A94D2F7E5 -:1034A000C4FE14C00FE010E020E030E0B901A80134 -:1034B00004C0440F551F661F771F8A95D2F7CB01B2 -:1034C000BA01609570958095909503C060E070E0BA -:1034D000CB01272D26952695237030E0223031052B -:1034E00069F02330310589F0682979298A299B29D7 -:1034F0002130310571F00E94D21F03C1682979295A -:103500008A299B290E94EE1FFCC00E94D21FC50180 -:10351000B4010E94B61FF5C0112319F0872D8170E8 -:1035200001C08695882309F4ECC08C2D8295869580 -:103530008770880F880F9C2D9F70892E912CA12C4D -:10354000B12C082E04C0880C991CAA1CBB1C0A9420 -:10355000D2F7C4FE14C00FE010E020E030E0B90163 -:10356000A80104C0440F551F661F771F8A95D2F724 -:10357000CB01BA01609570958095909503C060E08D -:1035800070E0CB01272D269526952370422F50E021 -:103590004230510569F04330510589F06829792995 -:1035A0008A299B294130510571F00E94AC20A9C0A5 -:1035B000682979298A299B290E94C820A2C00E94D3 -:1035C000AC20C501B4010E9490209BC08C2D90E0DE -:1035D000FC01E05EF109E531F10508F050C0E05969 -:1035E000FF4F0C94A52C0C2D0F70872D8F7111237C -:1035F00021F00E942920802F07CF0E944A20802F8F -:103600000E945F197EC0112341F0053008F079C097 -:10361000872D8F710E946F2074C0063008F071C032 -:10362000F7CF112339F0872D8F710E94292069C0AF -:103630001123C9F3872D8F710E944A2062C0112384 -:1036400029F0872D8F710E9414205BC00E940A20F0 -:1036500058C0112351F0172D1F71812F0E9429206E -:1036600063E0812F0E943D214CC081E00E944621F1 -:10367000023008F446C082E00E94462142C0112375 -:1036800031F0002381F28C2D0E9441183AC00023B2 -:1036900089F28C2D0E94091934C0472D4F706C2D72 -:1036A000C7010E9485030E942E1F2BC0111129C043 -:1036B000472D4F7050E042305105B9F04CF44115A0 -:1036C000510581F041305105E1F40E943C2819C0B8 -:1036D0004330510569F04430510599F48C2D0E9416 -:1036E0008E280FC00E9425280CC00E94582809C0AF -:1036F0000E946B2806C0472D4F706C2DC7010E9499 -:10370000FB05DD20F9F00E94392180FD1BC0F70187 -:1037100012820E9433210E942920C7010E94B11BFE -:103720000E9433210F90DF91CF911F910F91FF9055 -:10373000EF90DF90CF90BF90AF909F908F907F9051 -:103740000C944A200F90DF91CF911F910F91FF9021 -:10375000EF90DF90CF90BF90AF909F908F907F9031 -:1037600008950F931F93CF93DF93EC018881998184 -:103770002B813C81232BB9F09F3F11F48F3F99F0AF -:10378000CE010E94FA03882371F0688179818A81D1 -:103790000E942F218C010E94E4200E94AB1FB801DF -:1037A000CE010E946619DF91CF911F910F9108956C -:1037B0000E9407220E9417220E94DC210E943122CF -:1037C0000E94F2250E94412580E090E00E942C1783 -:1037D00080E090E00C9442170E94F7210C94D81BD3 -:1037E0000E942421292F22952F7030E02C303105A2 -:1037F0004CF42A3031056CF4225031092230310565 -:10380000A8F407C02C30310569F02F30310551F094 -:103810000DC0803F69F018F4803E40F409C0843F39 -:1038200029F406C093FB882780F9089580E0089565 -:1038300081E00895CF93DF9300D000D01F92CDB7E1 -:10384000DEB70F900F900F900F900F90DF91CF91F8 -:103850000895CF93DF9300D000D000D0CDB7DEB76E -:1038600026960FB6F894DEBF0FBECDBFDF91CF9185 -:1038700008951F93CF93DF93C0919D0216E080912E -:103880009E02C81799F0D0E01C9FF0011D9FF00D1B -:103890001124E156FD4F4081518162817381848101 -:1038A00095810E94291C2196C770E9CFDF91CF91A5 -:1038B0001F9108954091CF025091D0026091D102A2 -:1038C0007091D2028091D3029091D4020C94291C61 -:1038D0008091D40282958F7009F054C08091D102FA -:1038E000882309F44FC080919D02A0919E026091AF -:1038F000CF027091D0024091D2025091D302B6E033 -:103900008A1709F43FC090E041155105C1F17F3F8E -:1039100011F46F3FA1F1B89FF001B99FF00D112490 -:10392000E156FD4F218172132AC02081621327C006 -:103930002281211124C0238134812417350710F4FA -:1039400021503109241B350B283C3105C0F420914E -:10395000D4022F7020612093D40226E0289FF0012A -:10396000299FF00D1124EC55FD4F80818F708061EF -:1039700080838FEC92E00E94B11B0C94391C01965D -:103980008770BECF0895CF92DF92EF92FF920F9390 -:103990001F93CF93DF93CDB7DEB762970FB6F8943E -:1039A000DEBF0FBECDBF8C0185E0F801DE011D96A4 -:1039B00001900D928A95E1F7D8014C9111965C9196 -:1039C000119712966C9112971396CD90DC901497E4 -:1039D0003091CF027091D0028091D2029091D302A7 -:1039E000009709F46BC17F3F19F43F3F09F466C1AA -:1039F000E090D102EE2009F4C0C02091D402C81694 -:103A0000D90628F0F601E81BF90BCF0104C0809518 -:103A100090958C0D9D1DFF24F394883C910578F0C2 -:103A2000F12C207F09F0C6C07C2DD98AC88A8989EB -:103A30000E941A1C8FEC92E00E94B11BB1C0822F31 -:103A4000807F09F046C0751314C0341312C0611191 -:103A500010C02F7020612093D4020E945A1C8FEC5A -:103A600092E00E94B11B8091D402D80115968C93EC -:103A70002EC0CD2819F15F3F11F44F3FF9F0F62E1B -:103A800061111CC080919D0220919E0236E0821738 -:103A900009F45AC090E0389FF001399FF00D1124CD -:103AA000E156FD4F7181571306C07081471303C063 -:103AB0007281711103C001968770E9CFF62E6623DB -:103AC00009F418C18091D40281608093D402F12C52 -:103AD00011C1751308C0341306C0611104C0809170 -:103AE000D402D801C3C04D875E878D859E856A8BC1 -:103AF0000E94F01B6A898823E1F16623D1F12091AD -:103B0000D402822F82958F7090E0029774F080919A -:103B1000CF029091D00298878F831986DB86CA8660 -:103B20002C87CE0107960E94B11B86E0F801AFEC0E -:103B3000B2E001900D928A95E1F70E94681C0E9404 -:103B40005A1CFF24F394D6C04D875E878D859E85D1 -:103B50000E942421292F22952F7030E02230310538 -:103B60000CF0BCC09F7009F0B6C0805E883008F4CD -:103B7000C1C0C8010E94B11BE4CFC816D90608F421 -:103B800053C0F601E81BF90BCF01883C910508F4FE -:103B900050C0F12C7C2DD98AC88A89890E941A1CB0 -:103BA000EFECF2E086E0DF011D928A95E9F70E94D2 -:103BB0005A1CA0C0751314C0341312C0611110C078 -:103BC0008091D402F8018583C8010E94B11B86E070 -:103BD000EFECF2E0DF011D928A95E9F7FE2C8AC036 -:103BE0004D875E878D859E856A8B0E94F01B6A8952 -:103BF000882309F4BECF662309F4BBCF2091D402F9 -:103C0000822F82958F7090E002970CF48ECF809176 -:103C1000CF029091D0029A8389831B82DD82CC826D -:103C20002E83CE0101967FCF809590958C0D9D1DA2 -:103C3000ACCFF62E662309F49CCF75132EC0341337 -:103C40002CC02091D40220FD1FC0822F82958F703E -:103C5000D9F0D80115962C9315978F3049F08F5FC6 -:103C6000982F9295907F822F8F70892B15968C9329 -:103C7000C8010E94B11B86E0F801AFECB2E00190F0 -:103C80000D928A95E1F793CF86E0F801AFECB2E0B0 -:103C900001900D928A95E1F72DC04D875E878D8545 -:103CA0009E850E94F01B811140CF8091D4028160DB -:103CB0008093D402C8010E94B11B1CC0662309F482 -:103CC00058CF4D875E878D859E850E94F01B882387 -:103CD00009F44FCF2ACF811148CF0CC024303105D1 -:103CE0000CF047CF9F7009F440CFF8019581907F89 -:103CF00009F03BCF8F2D62960FB6F894DEBF0FBE52 -:103D0000CDBFDF91CF911F910F91FF90EF90DF908A -:103D1000CF9008951F93CF93DF93CDB7DEB72C9745 -:103D20000FB6F894DEBF0FBECDBF4F8358876987AB -:103D30007A878B879C87CE0107960E94C31C8823B5 -:103D400069F08F8198852A853B85232BF1F19F3F70 -:103D500009F063C08F3F09F060C037C086E0FE0104 -:103D60003796DE01119601900D928A95E1F76F81E9 -:103D70007885EA85FB85309741F17F3F11F46F3FED -:103D800021F120919E0230E0C901019687709927A8 -:103D900040919D0250E08417950709F447C069835C -:103DA0007A83FD83EC8396E0929FD001939FB00DC0 -:103DB0001124A156BD4FFE01319601900D929A95A6 -:103DC000E1F780939E020E94391C16E080919D02CB -:103DD00090919E028917C1F1189FC001112481564C -:103DE0009D4F0E94C31C882379F1E0919D021E9F84 -:103DF000F0011124E156FD4F4081518162817381B0 -:103E0000848195810E94291C80919D0290E00196F9 -:103E10008770992780939D02D9CF4F8158856985F6 -:103E20007A858B859C850E94291CCFCF0E94EC1B34 -:103E300010929E0210929D02EFECF2E086E0DF010C -:103E40001D928A95E9F7C1CF2C960FB6F894DEBF84 -:103E50000FBECDBFDF91CF911F910895EF92FF92DA -:103E60000F931F93CF93DF938C01009709F46CC0DD -:103E7000F12CEE24E394E8012196F8018491843733 -:103E800040F4843008F051C0813081F0823019F163 -:103E90005BC0853709F444C0A8F19CE7980F9037C0 -:103EA00008F052C08F770E94091941C00E5F1F4F62 -:103EB000FE01C49180E28C0F883048F4C7708E2DCB -:103EC00001C0880FCA95EAF70E940A2214C08C2FFD -:103ED0000E9441182DC00E5F1F4FFE01C49180E269 -:103EE0008C0F883058F4C7708E2D01C0880FCA958A -:103EF000EAF70E9410220E9431221AC08C2F0E94E1 -:103F0000091916C00E5F1F4FFE01C491CC2381F02A -:103F10008FE99FE00197F1F700C00000C150F6CF94 -:103F20000E5F1F4FFE01F49003C00E9441188E01E6 -:103F30008F2D882309F49FCFEFE9FFE03197F1F748 -:103F400000C000008150F5CFDF91CF911F910F91FC -:103F5000FF90EF90089508956093D9027093DA026C -:103F60008093DB029093DC020C94D81B0F931F9379 -:103F70000091D9021091DA022091DB023091DC022B -:103F8000DC01CB01802B912BA22BB32B8093D90288 -:103F90009093DA02A093DB02B093DC021F910F91A1 -:103FA0000C94D81B0F931F930091D9021091DA0241 -:103FB0002091DB023091DC02DC01CB0180239123D4 -:103FC000A223B3238093D9029093DA02A093DB0259 -:103FD000B093DC021F910F910C94D81B0F931F9389 -:103FE0000091D9021091DA022091DB023091DC02BB -:103FF000DC01CB0180279127A227B3278093D90228 -:104000009093DA02A093DB02B093DC021F910F9130 -:104010000C94D81B1092D5021092D6021092D7029F -:104020001092D8020C94D81B41E050E060E070E0A0 -:1040300004C0440F551F661F771F8A95D2F740931F -:10404000D5025093D6026093D7027093D8020C9495 -:10405000D81B41E050E060E070E004C0440F551F01 -:10406000661F771F8A95D2F78091D5029091D6026C -:10407000A091D702B091D802482B592B6A2B7B2BE9 -:104080004093D5025093D6026093D7027093D80222 -:104090000C94D81B41E050E060E070E004C0440F95 -:1040A000551F661F771F8A95D2F7409550956095EA -:1040B00070958091D5029091D602A091D702B091CF -:1040C000D802482359236A237B234093D502509377 -:1040D000D6026093D7027093D8020C94D81B41E0AB -:1040E00050E060E070E004C0440F551F661F771F6A -:1040F0008A95D2F78091D5029091D602A091D702ED -:10410000B091D802482759276A277B274093D502C8 -:104110005093D6026093D7027093D8020C94D81BA8 -:104120000F931F930091D5021091D6022091D702D0 -:104130003091D802DC01CB01802B912BA22BB32B29 -:104140008093D5029093D602A093D702B093D80261 -:104150001F910F910C94D81B0F931F930091D502C0 -:104160001091D6022091D7023091D802DC01CB0108 -:1041700080239123A223B3238093D5029093D60268 -:10418000A093D702B093D8021F910F910C94D81B23 -:104190000F931F930091D5021091D6022091D70260 -:1041A0003091D802DC01CB0180279127A227B327C9 -:1041B0008093D5029093D602A093D702B093D802F1 -:1041C0001F910F910C94D81B0895CF92DF92EF921C -:1041D000FF920F931F93CF93DF938C01C090D9026E -:1041E000D090DA02E090DB02F090DC028091D50200 -:1041F0009091D602A091D702B091D802C82AD92AAC -:10420000EA2AFB2ACFE1D0E0D701C6010C2E04C078 -:10421000B695A795979587950A94D2F780FF06C023 -:10422000B8018C2F0E948008019721F4219760F734 -:1042300080E001C08C2FDF91CF911F910F91FF90F3 -:10424000EF90DF90CF900895CF93DF93EC010E9421 -:10425000E520BE010E948008DF91CF910895CB0137 -:104260000E94242108958091DD028595859585958C -:1042700008958091DD028770089598E0899F9001EC -:104280001124262B2093DD020C9429202091DD029D -:10429000809582238093DD02982F977069F430E037 -:1042A000482F552747FD50952417350729F0859548 -:1042B000859585950C944A2008959091DD0297701C -:1042C00081E009F480E0089590911501992321F08F -:1042D00090911601911109C0209117013091180198 -:1042E000F90132969FEF40E01FC0982F9695969562 -:1042F00096959F3050F5E0911701F0911801E90F64 -:10430000F11D877021E030E0A90102C0440F551F64 -:104310008A95E2F7CA019181892B818308959F3F95 -:1043200039F04F5F4E3041F051915813F8CF0DC026 -:104330005111F7CF942FF5CF9F3F39F0F901E90FD5 -:10434000F11D97FDFA9582830895089590911501C6 -:10435000992321F090911601911109C02091170124 -:1043600030911801F9013296205F3F4F1FC0982FFE -:104370009695969596959F30F0F4E0911701F091FF -:104380001801E90FF11D877021E030E0A90102C09A -:10439000440F551F8A95E2F7CA01809591818923C0 -:1043A000818308953196E217F30729F090819813DD -:1043B000F9CF1082F7CF089581E090E0E0911701E6 -:1043C000F0911801E80FF91F1082019680319105D4 -:1043D000A9F708959091F102892B8093F102089535 -:1043E00080959091F10289238093F10208951092B3 -:1043F000F10208959091F002892B8093F0020895C4 -:1044000080959091F00289238093F0020895109294 -:10441000F00208959091EF02892B8093EF020895A6 -:1044200080959091EF0289238093EF020895109276 -:10443000EF0208958093DE0208951092DE0208953F -:104440008091170190911801FC0131969C01205F29 -:104450003F4F80E0919191118F5FE217F307D1F701 -:104460000895E0911701F09118018091F102808385 -:10447000E0911701F091180190818091F002892B51 -:104480008083E0911701F091180190818091EF02F3 -:10449000892B80838091DE02882361F0E0911701EF -:1044A000F09118019081892B80830E942022811134 -:1044B0001092DE0280911701909118010C9416174A -:1044C00020E0009739F0AC01415051098423952335 -:1044D0002F5FF7CF822F089580911303843039F135 -:1044E0001092F30220E488E190E00FB6F894A895CA -:1044F000809360000FBE2093600080E00E94EC0279 -:1045000080E00E941A0983B7817F846083BF83B7EC -:10451000816083BF7894889583B78E7F83BF88E15D -:104520000FB6F89480936000109260000FBE08955B -:104530000895089580E00E94EC020E9498220E9453 -:1045400075090E9499220E94FA0991E0811101C027 -:1045500090E0892F08950E94EC1B80E00E94EC02FD -:104560000E9414280E940A170C941A091F920F9295 -:104570000FB60F9211248F939F93AF93BF938091A7 -:10458000F302811113C08091F4029091F502A09181 -:10459000F602B091F7024196A11DB11D8093F4027D -:1045A0009093F502A093F602B093F702BF91AF91FA -:1045B0009F918F910F900FBE0F901F90189582E0E2 -:1045C00084BD93E095BD9AEF97BD80936E000895EA -:1045D0002FB7F8948091F4029091F502A091F60221 -:1045E000B091F7022FBF0895CF92DF92EF92FF9222 -:1045F0000F931F932FB7F8944091F4025091F50256 -:104600006091F6027091F7022FBF6A017B01EE24E0 -:10461000FF248C0120E030E0C016D106E206F3064C -:1046200010F4415051099A01281B390BC9011F91FF -:104630000F91FF90EF90DF90CF9008951F920F920F -:104640000FB60F9211248F939F93AF93BF938091D6 -:10465000F4029091F502A091F602B091F702019652 -:10466000A11DB11D8093F4029093F502A093F60270 -:10467000B093F702BF91AF919F918F910F900FBEB2 -:104680000F901F9018950E940714F8942FEF87EA57 -:1046900091E6215080409040E1F700C0000087E0A3 -:1046A00090EBDC0180931E0390931F03A0932003E3 -:1046B000B09321039CE088E10FB6F894A89580930D -:1046C00060000FBE90936000FFCF0E94A423811171 -:1046D00002C00E9480230E94AF238093F2020E94B6 -:1046E000B72380931C0387FB882780F980931601EA -:1046F0000E94B323682F70E080E090E00C94AC1F20 -:104700006DEE7EEF80E090E00E94CB2C60E082E0D6 -:1047100090E00E94B92C60E083E090E00E94B92C08 -:1047200060E084E090E00E94B92C60E085E090E0D9 -:104730000E94B92C60E086E090E00E94B92C6FEFF7 -:1047400087E090E00C94B92C80E090E00E94B32CBC -:1047500021E08D3E9E4F09F020E0822F089582E0F7 -:1047600090E00C94AB2C83E090E00C94AB2C84E0B4 -:1047700090E00C94AB2C682F84E090E00C94B92C62 -:1047800086E090E00C94AB2C682F86E090E00C94CF -:10479000B92C87E090E00C94AB2C682F87E090E078 -:1047A0000C94B92C8091FA0280FF0BC060911C011F -:1047B00085E0689FB001112475956795759567959B -:1047C0002BC081FF09C060911C0185E0689FB0018A -:1047D00011247595679520C082FF07C060911C0168 -:1047E00085E0689FB001112417C09091FB029923C6 -:1047F000D1F060911B01961788F720911C0185E08C -:10480000289F90011124929FA001939F500D112485 -:1048100070E0CA010E94912C6038710540F4611566 -:10482000710539F002C065E070E0862F08958FE7CA -:10483000089581E008958091FA0280FF08C0609198 -:104840001A0170E0759567957595679521C081FF90 -:1048500006C060911A0170E07595679519C082FFD6 -:1048600004C060911A0170E010C09091FB0299237E -:10487000C1F0609119019617A0F780911A01899FE4 -:10488000C001112470E00E94912C6038710528F459 -:104890006115710521F0862F08958FE7089581E055 -:1048A000089561E070E0F4CF803F21F40E94D223AC -:1048B000819504C0813F29F40E94D2238093FE0297 -:1048C0000895823F21F40E94D223819504C0833F42 -:1048D00029F40E94D2238093FD020895893F19F4A0 -:1048E0000E941B2405C08A3F31F40E941B2481953D -:1048F0008093FF0208958B3F21F40E941B24819531 -:1049000004C08C3F29F40E941B2480930003089567 -:10491000843F21F48091FC02816017C0853F21F41F -:104920008091FC02826011C0863F21F48091FC02DC -:1049300084600BC0873F21F48091FC02886005C031 -:10494000883F31F48091FC0280618093FC020895DD -:104950008D3F21F48091FA0281600BC08E3F21F4DB -:104960008091FA02826005C08F3F29F48091FA029B -:1049700084608093FA020895803F39F48091FE02AA -:1049800087FF6CC01092FE0269C0813F29F48091BC -:10499000FE021816BCF362C09091FD02823F29F41A -:1049A00097FF5CC01092FD0259C0833F19F419169D -:1049B000CCF354C0893F41F48091FF0218160CF0EB -:1049C0004DC01092FF024AC08A3F29F48091FF0235 -:1049D00087FF44C0F6CF8B3F39F48091000387FFF7 -:1049E0003DC0109200033AC08C3F29F4809100032F -:1049F0001816BCF333C0843F21F48091FC028E7FF3 -:104A000017C0853F21F48091FC028D7F11C0863F45 -:104A100021F48091FC028B7F0BC0873F21F48091B1 -:104A2000FC02877F05C0883F31F48091FC028F7EB5 -:104A30008093FC0213C08D3F21F48091FA028E7F97 -:104A40000BC08E3F21F48091FA028D7F05C08F3F0D -:104A500029F48091FA028B7F8093FA028091FD0203 -:104A600081110EC08091FE0281110AC08091FF0267 -:104A7000811106C080910003811102C01092FB02D7 -:104A800008958CEF92E00E9421170E94E8229093F3 -:104A9000F9028093F80208951F93CF93DF938091DA -:104AA000F8029091F9020E94F422AC019091FB026D -:104AB000992321F020911D0130E006C020911E01B4 -:104AC0008AE0289F900111244217530708F486C0FA -:104AD0008091FD02C091FE02D091FF02109100036F -:104AE000811107C0C11176C0D11174C0111172C0FB -:104AF00075C09F3F19F09F5F9093FB02181624F436 -:104B00000E94D2238093FD028091FD0287FF05C0A1 -:104B10000E94D22381958093FD021C1624F40E94EA -:104B2000D2238093FE028091FE0287FF05C00E947F -:104B3000D22381958093FE026091FD02662339F1B4 -:104B4000C091FE02CC2319F1772767FD7095872F5E -:104B5000972F0E94B32923E333E343E35FE30E94EB -:104B6000C32A0E9480296093FD026C2F772767FD7E -:104B70007095872F972F0E94B32923E333E343E3F4 -:104B80005FE30E94C32A0E9480296093FE021D16E3 -:104B900024F40E941B248093FF028091FF0287FF70 -:104BA00005C00E941B2481958093FF02111624F4F6 -:104BB0000E941B24809300038091000387FF05C09F -:104BC0000E941B24819580930003DF91CF911F9158 -:104BD0000C9441259F3F09F08ECF96CFDF91CF9166 -:104BE0001F910895ECEFF2E085E0DF011D928A95B8 -:104BF000E9F71092FB021092FA020895833081F1D6 -:104C000028F4813059F08230D1F00895853009F4CC -:104C100049C0B8F1863009F456C0089580911E014C -:104C2000262F30E0280F311D2F3F310524F4680F67 -:104C300060931E0108958FEF80931E010895809167 -:104C40001D01262F30E0280F311D2F3F310524F4A0 -:104C5000680F60931D0108958FEF80931D010895E3 -:104C600080911C01262F30E0280F311D2F3F310588 -:104C700024F4680F60931C0108958FEF80931C014A -:104C8000089580911B01262F30E0280F311D2F3F02 -:104C9000310524F4680F60931B0108958FEF809312 -:104CA0001B01089580911A01262F30E0280F311D35 -:104CB0002F3F310524F4680F60931A0108958FEF98 -:104CC00080931A01089580911901262F30E0280F52 -:104CD000311D2F3F310524F4680F609319010895A9 -:104CE0008FEF809319010895833011F128F48130FA -:104CF00049F0823091F00895853081F120F18630BD -:104D0000C1F1089580911E01681720F4861B8093DD -:104D10001E01089510921E01089580911D016817CB -:104D200020F4861B80931D01089510921D010895A3 -:104D300080911C01681720F4861B80931C01089544 -:104D400010921C01089580911B01681720F4861BA6 -:104D500080931B01089510921B01089580911A0100 -:104D6000681720F4861B80931A01089510921A0187 -:104D7000089580911901681720F4861B809319010A -:104D800008951092190108950F931F93873208F028 -:104D900048C08E3108F08DC0803109F477C008F525 -:104DA000873009F461C068F4863009F09DC08091B5 -:104DB000F202817F8E7F8093F20281E08093020372 -:104DC00094C08B3009F489C08E3009F08DC0809179 -:104DD000F20282FB222720F991E0922790FB82F9D0 -:104DE0005EC0863109F479C060F4813109F07CC07D -:104DF0000E94EC1B9091160181E089278093160197 -:104E00006CC0893109F469C08B3109F06DC08091A3 -:104E1000F20281FB222720F991E0922790FB81F991 -:104E20003EC0883309F459C050F4893209F457C0A0 -:104E3000853309F454C0873209F451C055C0833416 -:104E400009F44DC028F48A3308F44EC0895332C0A7 -:104E5000883409F049C00E94EC1B0E942A0A0E9473 -:104E6000F1030E94432339C09091F202892F80956B -:104E7000817080FB90F929F0966098609093F2021F -:104E800034C0997F977F9093F20227C08091F202FD -:104E900083FB222720F991E0922790FB83F98093EE -:104EA000F2029923D1F08091F20281608093F202A4 -:104EB00014C08D5141E050E060E070E08A019B0138 -:104EC00004C0000F111F221F331F8A95D2F7C9019A -:104ED000B8010E94AC1F0E94EC1B81E006C061E09B -:104EE00070E080E090E0F5CF80E01F910F91089591 -:104EF00080E0089580E00895CF93C82F8091020349 -:104F0000813069F018F08230C9F184C0E091170156 -:104F1000F09118018081823209F07EC007C0E091D3 -:104F20001701F09118018081823261F48C2F0E9468 -:104F30007827811104C08C2F0E94C4261DC081E0F7 -:104F400090E01AC08C2F0E947A27811114C0C431BE -:104F500079F048F4CB3079F0C03109F061C082E0DB -:104F60008093020308C0C93219F0C83321F058C039 -:104F70001092020355C081E0817054C0C93291F192 -:104F800020F5C43179F1B0F4C73009F047C08EE1A3 -:104F900080931E0182E380931D018AE080931C01AF -:104FA00084E180931B0188E080931A0188E280935A -:104FB000190134C0CE51C63088F5EC2FF0E0EA5428 -:104FC000FE4F80818093010329C0CE34E9F020F4A4 -:104FD000CB3421F56AE013C0C13579F0C235F1F464 -:104FE00061E00DC080910103882319F01092010344 -:104FF00015C081E08093020315C061E006C0809176 -:1050000001030E94FE250AC06AE0809101030E940C -:10501000742604C01092020380E004C081E002C044 -:1050200080E0AACFCF9108950E94A423811102C0ED -:105030000E9480230E94C02380931D0380FF02C032 -:10504000869501C080E00C94EC0280911D03982F9E -:105050009695292F30E0233031054CF49F5F990F4E -:105060008170892B816080931D030E94C4238091ED -:105070001D0386950C94EC0280911D03982F969544 -:1050800091F09158990F8170892B80931D038E7F29 -:1050900091E009F490E080911D0390FB80F98093EA -:1050A0001D030E94C42380911D0386950C94EC027D -:1050B00080911D03982F909590FB80F980931D039C -:1050C0000E94C42380911D0380FF02C0869501C009 -:1050D00080E00C94EC0290911D03892F86958F5FE0 -:1050E0008F779170843028F4880F892B80931D036B -:1050F00002C090931D0380911D038E7F91E009F4FF -:1051000090E080911D0390FB80F980931D030E9425 -:10511000C42380911D0386950C94EC0220911D03FD -:10512000922F96958927982F990F822F8170892B1E -:1051300080931D038E7F91E009F490E080911D0320 -:1051400090FB80F980931D030E94C42380911D036E -:1051500086950C94EC0280911D0386950895505815 -:10516000BB27AA270ED0D1C1C2D130F0C7D120F0C1 -:1051700031F49F3F11F41EF4B7C10EF4E095E7FB44 -:105180009FC1E92FD3D180F3BA1762077307840751 -:10519000950718F071F49EF5EBC10EF4E0950B2E17 -:1051A000BA2FA02D0B01B90190010C01CA01A00179 -:1051B0001124FF27591B99F0593F50F4503E68F1D4 -:1051C0001A16F040A22F232F342F4427585FF3CF15 -:1051D000469537952795A795F0405395C9F77EF4E6 -:1051E0001F16BA0B620B730B840BBAF09150A1F02F -:1051F000FF0FBB1F661F771F881FC2F70EC0BA0FB5 -:10520000621F731F841F48F4879577956795B7953C -:10521000F7959E3F08F0B3CF9395880F08F0992734 -:10522000EE0F97958795089527D108F481E00895AA -:105230000CD06BC163D140F05AD130F021F45F3F04 -:1052400019F03EC1511195C14FC170D198F3992306 -:10525000C9F35523B1F3951B550BBB27AA2762173A -:105260007307840738F09F5F5F4F220F331F441F7F -:10527000AA1FA9F333D00E2E3AF0E0E830D09150B7 -:105280005040E695001CCAF729D0FE2F27D0660FA4 -:10529000771F881FBB1F261737074807AB07B0E8E3 -:1052A00009F0BB0B802DBF01FF2793585F4F2AF0F9 -:1052B0009E3F510568F004C15CC15F3FECF3983E2E -:1052C000DCF3869577956795B795F7959F5FC9F756 -:1052D000880F911D9695879597F90895E1E0660FDF -:1052E000771F881FBB1F621773078407BA0720F058 -:1052F000621B730B840BBA0BEE1F88F7E0950895C1 -:1053000004D06894B11135C1089518D188F09F5721 -:1053100090F0B92F9927B751A0F0D1F0660F771F01 -:10532000881F991F1AF0BA95C9F712C0B13081F0E1 -:105330001FD1B1E008951CC1672F782F8827B85F6F -:1053400039F0B93FCCF3869577956795B395D9F742 -:105350003EF490958095709561957F4F8F4F9F4F4C -:105360000895E89409C097FB3EF490958095709558 -:1053700061957F4F8F4F9F4F9923A9F0F92F96E9A1 -:10538000BB279395F695879577956795B795F11116 -:10539000F8CFFAF4BB0F11F460FF1BC06F5F7F4FB3 -:1053A0008F4F9F4F16C0882311F096E911C07723C5 -:1053B00021F09EE8872F762F05C0662371F096E8CE -:1053C000862F70E060E02AF09A95660F771F881F9D -:1053D000DAF7880F9695879597F9089588D018F091 -:1053E00011F08CD038F480C0C4C0E92F9FD0B0F346 -:1053F0005523C9F3E7FB6217730784079507A8F1E4 -:1054000099F3E92FFF2788232AF03197660F771F3A -:10541000881FDAF7952F5527442332F091505040DA -:10542000220F331F441FD2F7BB27E91BF50B621B6A -:10543000730B840BB109C1F222F4620F731F841F36 -:10544000B11D31972AF0660F771F881FBB1FEFCF62 -:10545000915050405AF041F0882332F0660F771F88 -:10546000881F91505040C1F7939530C0869577952D -:1054700067959F5FD9F7F8CF990F0008550FAA0BD2 -:10548000E0E8FEEF16161706E807F907C0F0121657 -:105490001306E407F50798F0621B730B840B950B5A -:1054A00039F40A2661F0232B242B252B21F40895AF -:1054B0000A2609F4A140A6958FEF811D811D08954C -:1054C00097F99F6780E870E060E008959F3F31F0B2 -:1054D000915020F4879577956795B795880F911D22 -:1054E0009695879597F908959FEF80EC089500248D -:1054F0000A941616170618060906089500240A9439 -:1055000012161306140605060895092E0394000CBE -:1055100011F4882352F0BB0F40F4BF2B11F460FF4D -:1055200004C06F5F7F4F8F4F9F4F089557FD905876 -:10553000440F551F59F05F3F71F04795880F97FB57 -:10554000991F61F09F3F79F0879508951216130611 -:105550001406551FF2CF4695F1DF08C01616170640 -:105560001806991FF1CF8695710561050894089575 -:10557000E894BB2766277727CB0197F908957CDF4E -:1055800008F48FEF08950BD0C0CFB1DF28F0B6DF5D -:1055900018F0952309F094CFA7CF1124EACFC6DFE6 -:1055A000A0F3959FD1F3950F50E0551F629FF00136 -:1055B000729FBB27F00DB11D639FAA27F00DB11D8F -:1055C000AA1F649F6627B00DA11D661F829F222718 -:1055D000B00DA11D621F739FB00DA11D621F839F9F -:1055E000A00D611D221F749F3327A00D611D231F75 -:1055F000849F600D211D822F762F6A2F11249F57C3 -:1056000050408AF0E1F088234AF0EE0FFF1FBB1FE5 -:10561000661F771F881F91505040A9F79E3F510584 -:1056200070F04ECFA6CF5F3FECF3983EDCF386954B -:1056300077956795B795F795E7959F5FC1F7FE2B2F -:10564000880F911D9695879597F90895FA01EE0FA9 -:10565000FF1F30962105310599F16115710561F43F -:105660008038BFE39B0749F168949038810561F069 -:105670008038BFEF9B0741F0992342F5FF3FE105DA -:105680003105210511F1E8940894E795D901AA2381 -:1056900029F4AB2FBE2FF85FD0F310C0FF5F70F47A -:1056A000A695E0F7F73950F019F0FF3A38F49F77F4 -:1056B0009F930CD00F9007FC905808953EF014CFA4 -:1056C00060E070E080E89FE308954FE79F775F9385 -:1056D0004F933F932F939ED02F913F914F915F9186 -:1056E00052DF05C019F40EF0EBCE42CFFDCE26DF1F -:1056F000C8F39638C0F707F80F92E8942BE33AEA1C -:1057000048EB5FE74EDF0F920F920F924DB75EB7F7 -:105710000F92C0D0EAE0F1E016D04F915F91EF9187 -:10572000FF91E595EE1FFF1F49F0FE57E068442703 -:10573000EE0F441FFA95E1F74195550B32D00F90CB -:1057400007FE26C00895DF93CF931F930F93FF9218 -:10575000EF92DF927B018C01689405C0DA2EEF0195 -:105760001EDFFE01E894A591259135914591559153 -:10577000AEF3EF0106DDFE019701A801DA9479F797 -:10578000DF90EF90FF900F911F91CF91DF910895DF -:105790009B01AC0160E070E080E89FE349CD90CED2 -:1057A00095CECCDEE8F39923D9F3940F511DBBF3CA -:1057B0009150504094F059F0882332F0660F771FD3 -:1057C000881F91505040C1F79E3F510544F7880F04 -:1057D000911D9695879597F908955F3FACF0983E97 -:1057E0009CF0BB27869577956795B79508F4B160CF -:1057F0009395C1F7BB0F58F711F460FFE8CF6F5FC7 -:105800007F4F8F4F9F4FE3CFB4CE0EF05FCE6CCE65 -:10581000689456CE93DEC8F39923D1F3C6F3DF9391 -:10582000CF931F930F93FF92C92FDD2788232AF070 -:105830002197660F771F881FDAF720E030E040E8F5 -:105840005FEB9FE3883920F0803E30F021968F7720 -:1058500087DCE2E3F1E003C083DCEFE5F1E073DF36 -:105860008B01BE01EC01FB2E6F5771097595771FF7 -:10587000880B990B78DD28E132E741E35FE38FDEA7 -:10588000AF2D9801AE01FF900F911F91CF91DF9145 -:1058900078DC3BCEFA01DC01AA0FBB1F9B01AC01F7 -:1058A000BF5728F422273327442750781FC0B75109 -:1058B00088F4AB2F0024469537952795011CA395B6 -:1058C000D2F3002069F0220F331F441FB395DAF39F -:1058D0000DD045CC61307105A0E88A07B94630F497 -:1058E0009B01AC016627772788279078309621F0B6 -:1058F00020833183428353830895AA1BBB1B51E14C -:1059000007C0AA1FBB1FA617B70710F0A61BB70B2F -:10591000881F991F5A95A9F780959095BC01CD01D4 -:10592000089597FB072E16F4009407D077FD09D051 -:105930000E947D2C07FC05D03EF4909581959F4FE9 -:105940000895709561957F4F0895EE0FFF1F0590A4 -:10595000F491E02D0994F999FECF92BD81BDF89A9A -:10596000992780B50895A8E1B0E042E050E00C949A -:10597000D32C262FF999FECF92BD81BDF89A0197BD -:1059800000B4021639F01FBA20BD0FB6F894FA9A87 -:10599000F99A0FBE08950196272F0E94BA2C0C94F5 -:1059A000B92CDC01CB01FC01F999FECF06C0F2BD98 -:1059B000E1BDF89A319600B40D9241505040B8F7CD -:0659C0000895F894FFCFEA -:1059C600640007000CFF0000003F640E109C107975 -:1059D60010451011100101DF022808140A321E00BA -:1059E60002040507090B0C0E1011131517181A1CC3 -:1059F6001D1F2123242628292B2D2F3032343537FD -:105A0600393B1F0F03764F5F6F7F49694379095909 -:105A160053633149803F5D8B803FF8BF803FCAE1C9 -:105A2600803F73ED803FCAE1803FF8BF803F5D8BCA -:105A3600803F3149803F0000803FF16D7F3F75EA2E -:105A46007E3F4C827E3F833F7E3F84287E3F833F5E -:105A56007E3F4C827E3F75EA7E3FF16D7F3F0000C0 -:105A6600803F3F4D3639E304960460042704BA03A9 -:105A7600D303EC0305040102030405060708090025 -:00000001FF diff --git a/keyboards/planck/keymaps/brandon/compiled.hex b/keyboards/planck/keymaps/brandon/compiled.hex deleted file mode 100644 index 2b6bb328d..000000000 --- a/keyboards/planck/keymaps/brandon/compiled.hex +++ /dev/null @@ -1,1456 +0,0 @@ -:100000000C94C1020C9405030C9405030C94050395 -:100010000C9405030C9405030C9405030C94050340 -:100020000C9405030C9405030C94B2140C948415E1 -:100030000C94E6220C9405030C9405030C94050320 -:100040000C9405030C9467030C9405030C940503AE -:100050000C9405030C944E230C9405030C94050397 -:100060000C9405030C9405030C9405030C940503F0 -:100070000C9405030C9405030C9405030C940503E0 -:100080000C94270B0C9405030C9405030C940503A6 -:100090000C9405030C9405030C9405030C940503C0 -:1000A0000C9405030C9405030C940503F115131629 -:1000B00001171316011758167B160117D016E316F1 -:1000C000CD19CD19FC19FC193B1A5B1AB11BB11BD8 -:1000D000661AB11B161B161B7D1B861BB11BAB1BA7 -:1000E000231B231B231B231B231B231B231B231B20 -:1000F000231B231B231B231B231B231B231B231B10 -:10010000331B411B481B4F1B591B07634236B79BD0 -:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 -:100120005763BD6DEDFD753EF6177231BF000000DF -:10013000803F08000000BE922449123EABAAAA2AC2 -:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD -:1001500000000000BF000000803F00000000000819 -:100160004178D3BB4387D1133D190E3CC3BD4282B6 -:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 -:10018000FFBE01C4FF7F3F00000000000000000030 -:1001900000000000000000010204060A0F17202CD6 -:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 -:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF -:1001C00002010000000000000000000029001400EF -:1001D0001A000800150017001C0018000C0012007F -:1001E00013002A002B0004001600070009000A0073 -:1001F0000B000D000E000F0033003400E1001D0065 -:100200001B00060019000500110010003600370021 -:1002100038002872E000E200E300025403522C0090 -:100220002C0004525000510052004F0029001400CD -:100230001A00090013000A000D000F0018001C002E -:1002400033002A002B0004001500160017000700D9 -:100250000B00110008000C0012003400E1001D002A -:100260001B000600190005000E00100036003700C4 -:1002700038002872E000E200E300025403522C0030 -:100280002C0004525000510052004F000100420067 -:100290004300440045004B002202380024002500A2 -:1002A00026002A0001003E003F00400041004E00B1 -:1002B0004A002502210022002300310201003A00F9 -:1002C0003B003C003D004C004D0027001E001F007D -:1002D00020000100010001000100010001000100F7 -:1002E000010001005000510052004F0035021E0273 -:1002F0001F022002210222022302240225022602DA -:1003000027022A0001003A003B003C003D003E006D -:100310003F002D022E022F02300231020100400068 -:1003200041004200430044004500005301530030A7 -:100330000050010001000100010001000100010066 -:1003400001000100AB00AA00A900AE0035001E00AC -:100350001F00200021002200230024002500260089 -:1003600027002A0001003A003B003C003D003E000F -:100370003F002D002E002F00300031000100400012 -:100380004100420043004400450000530153003047 -:100390000050010001000100010001000100010006 -:1003A00001000100AB00AA00A900AE002803540020 -:1003B00068006500200050006C0061006E00630062 -:1003C0006B0020004B006500790062006F00610047 -:1003D0007200640000002C034F007200740068007B -:1003E0006F006C0069006E00650061007200200003 -:1003F0004B006500790062006F00610072006400CC -:10040000730000000403090409026D00040100A048 -:10041000FA09040000010301010009211101000192 -:10042000223F000705810308000A090401000103B7 -:10043000010200092111010001224D00070582037C -:1004400008000A090402000103000000092111014B -:1004500000012236000705830308000A090403008F -:1004600001030000000921110100012239000705E4 -:1004700084031000011201100100000008EDFE606D -:100480006001000102000105010906A1010507192B -:10049000E029E71500250195087501810205081975 -:1004A00001290595057501910295017503910105D5 -:1004B000071900297715002501957875018102C07B -:1004C00005010980A101850216010026B7001A0165 -:1004D000002AB700751095018100C0050C0901A123 -:1004E000018503160100269C021A01002A9C027550 -:1004F0001095018100C005010902A1010901A100B7 -:1005000005091901290515002501950575018102C7 -:100510009501750381010501093009311581257F98 -:1005200095027508810609381581257F95017508A2 -:100530008106050C0A38021581257F950175088111 -:1005400006C0C005010906A101050719E029E71544 -:100550000025019508750181029501750881010545 -:1005600008190129059505750191029501750391F9 -:10057000010507190029FF150025FF95067508815B -:1005800000C011241FBECFEFDAE0DEBFCDBF04B63E -:1005900003FE24C080911E0390911F03A0912003AD -:1005A000B09121038730904BA740B04BB9F4109223 -:1005B0001E0310921F03109220031092210314BEF9 -:1005C00084B7877F84BF88E10FB6F894809360007A -:1005D000109260000FBEE0E0F8E3099511E0A0E0A2 -:1005E000B1E0E6E2FAE502C005900D92A03CB10749 -:1005F000D9F713E0A0ECB1E001C01D92AE31B10714 -:10060000E1F70E94F8110C94112D0C94000008954C -:10061000089581E0089508950C9408030C9409034B -:100620000C940B030E94DB2823E030E0281B3109E7 -:10063000220F2093C4010895282F2F9880918000C5 -:10064000211108C0877F8093800010928D00109246 -:100650008C001BC0886080938000233019F48FEFDA -:100660009FEF0FC083E090E0821B9109880F991FD4 -:100670002FEF3FEFA90102C0569547958A95E2F703 -:10068000CA0190938D0080938C000C9412030E94F9 -:10069000120384E08093C3011092C0010895279A49 -:1006A0002F988FEF9FEF90938700809386008AE0CA -:1006B0008093800089E1809381000E9444280C94FB -:1006C00047030E944F036E9A769A0C9407031F9279 -:1006D0000F920FB60F9211242F933F938F939F93F6 -:1006E000EF93FF93E091C101F091C201CF01019618 -:1006F0009093C2018093C1010090C30102C0F6959E -:10070000E7950A94E2F7EF738091C001823019F403 -:10071000E03251F404C0813039F4EF3329F4809190 -:100720006F008D7F80936F00F0E0E457FE4FE491FF -:1007300021E031E0E29FC001E39F900D1124009081 -:10074000C40102C0969587950A94E2F790938D00B4 -:1007500080938C00FF91EF919F918F913F912F910A -:100760000F900FBE0F901F90189561110DC0FC01E6 -:100770008281882331F085EE0E9471180E949B28A7 -:1007800003C085EE0E94391980E090E0089581E071 -:1007900008950C94C70308950C9461038091150289 -:1007A000882309F448C08091D1019091D20100972B -:1007B00079F40E9418239093D2018093D101809103 -:1007C000D30190E0009771F48091D40190E00AC0C9 -:1007D0000E9424232091000130910101281739073C -:1007E00040F329C00197880F991F880F991FFC01BA -:1007F000EB52FE4F60817181828193810E948D0A4C -:10080000E091D30184E0E89FF0011124EB52FE4F08 -:1008100060817181828193814FE050E00E94450E9A -:100820008091D30190E001966091D40170E00E9424 -:10083000C12C8093D3010C940C03109217020C94DA -:100840005A0A0895089581E0809317020C942204B7 -:10085000089508958F929F92AF92BF92EF92FF9268 -:100860000F931F93CF93DF93CDB7DEB7A3970FB648 -:10087000F894DEBF0FBECDBF7C01FC010081118169 -:10088000C8010E941521B8010E942C068C01B701F5 -:100890000E94C903882309F4CCC10032F0E51F0788 -:1008A00041F4F7018281882309F458C00E94A90EFF -:1008B000C0C10132F0E51F0741F4F70182818823AE -:1008C00009F44CC00E94B20EB4C10232F0E51F0719 -:1008D00051F4F7018281882309F440C00E94A50EDB -:1008E0008111F0CFE3CF0332F0E51F0739F4F701B0 -:1008F0008281882399F10E9423049BC10432F0E590 -:100900001F0739F4F7018281882341F10E941D04F9 -:1009100090C10532F0E51F0749F4F7018281882371 -:10092000E9F0809117028111F1CFE5CF0632F0E5B1 -:100930001F0739F4F7018281882381F00E94B90EE4 -:100940000AC00732F0E51F0749F4F70182818823C6 -:1009500029F00E94C40E0E9429046BC180911702E5 -:10096000811105C0F70182818111CFC018C1003EFD -:10097000110579F4F7018281882309F44DC00E94A2 -:100980005A0A81E080931602109215021092D40147 -:1009900050C1023E110559F4F70182818823E1F12B -:1009A0000E945A0A109216021092150242C1033E8A -:1009B000110591F4F7018281882371F10E945A0A8E -:1009C0001092160281E0809315021092D3011092CA -:1009D000D2011092D1012DC10235110559F4F70150 -:1009E0008281882309F425C1809100019091010141 -:1009F0000A970DC00135110579F4F701828188232A -:100A000009F417C180910001909101010A96909319 -:100A10000101809300010DC14091040183E2EFE1E7 -:100A2000F1E0DE01119601900D928A95E1F7F70150 -:100A3000808121E030E02C0F3D1F280F311DC901BE -:100A40002091020130910301FC01E20FF31F60814C -:100A5000772767FD7095640F711D882777FD809556 -:100A6000982F0E94E32920E030E040E451E40E9406 -:100A700048294B015C01F701218184E090E0821B51 -:100A80009109BC01882777FD8095982F0E94E32962 -:100A90009B01AC01C501B4010E94E0289B01AC019F -:100AA00060E070E080E090E40E94562B20E030E0AF -:100AB0004CED50E40E94F32A4B015C01F701828166 -:100AC0008823D1F04FE050E0C501B4010E94450EEB -:100AD000809116028823A1F08091D40124E0829FA6 -:100AE000F0011124EB52FE4F80829182A282B382E8 -:100AF0008F5F8093D40104C0C501B4010E948D0AA8 -:100B00000F3F110508F02ECF94C08091D0018111C4 -:100B10001FC0043130E5130709F051C00E94CB0318 -:100B200081E08093D0010E9418239093CF0180939D -:100B3000CE011092C7011092C9011092C801109203 -:100B4000CB011092CA011092CD011092CC0171C05C -:100B50008091CE019091CF010E942423883C910581 -:100B600070F48091C701E82FF0E0EE0FFF1FE8530B -:100B7000FE4F118300838F5F8093C7015AC00438F2 -:100B800080E5180721F00538104501F13AC0F7015A -:100B90008281882341F01092C50182E01EC0043892 -:100BA00030E5130759F58091C501811106C086E231 -:100BB0000E94711886E20E94391982E01CC0043834 -:100BC000F0E51F0741F305381045D9F4F70182819C -:100BD000882331F01092C60180E20E94881929C052 -:100BE0008091C601811106C087E20E94711887E2D8 -:100BF0000E94391980E20E948F191BC005381045E8 -:100C000029F381E08093C5018093C601C701A396B3 -:100C10000FB6F894DEBF0FBECDBFDF91CF911F910D -:100C20000F91FF90EF90BF90AF909F908F900C949A -:100C30000E0380E0A3960FB6F894DEBF0FBECDBFC3 -:100C4000DF91CF911F910F91FF90EF90BF90AF90E8 -:100C50009F908F90089508959CE0799FF001112452 -:100C600090E3899FE00DF11D1124E60FF11DEE0FB9 -:100C7000FF1FE453FE4F859194910895880F991FAB -:100C8000FC01E45BFF4F859194910895880F991FB3 -:100C9000FC01E453FE4F8591949108950F931F93A7 -:100CA000CF93DF93EC01811521E39207A0F5C115E5 -:100CB00080E3D80708F0D7C0C83ED105D8F4C03EBD -:100CC000D10508F007C2C83AD10578F4C53AD10574 -:100CD00008F06AC0C130D10509F463C008F4F7C157 -:100CE000C430D10508F0F6C1F2C1CB3BD10508F400 -:100CF00066C0EDC1C11590E2D90708F0AFC0C115BB -:100D000021E0D20708F0E6C1C03FD10508F4DFC1F9 -:100D10008E0110651FC2C03880E5D80700F5C037C6 -:100D200090E5D90708F0A3C0C11520E5D20709F462 -:100D3000ACC050F4CE01905480319F4008F0C7C140 -:100D4000DF708E01106A06C2C13080E5D80709F451 -:100D5000AEC0C43190E5D90708F4AFC0B8C1C338FC -:100D600020E5D20709F48EC050F4C13890E5D907C8 -:100D700009F482C008F083C000E011EDEBC1C0317E -:100D800081E5D80708F4A3C1C11597E5D90708F490 -:100D900036C1CE0190578115904108F098C1DF709F -:100DA00093C101E010E0D6C1C53AD10509F494C160 -:100DB000C63AD10509F093C102E810E4CBC1C83AA4 -:100DC000D10509F48FC1C93AD10509F48EC1CA3AD7 -:100DD000D10509F48DC1CB3AD10509F48CC1CC3AC7 -:100DE000D10509F48BC1CD3AD10509F48AC1C03BC4 -:100DF000D10509F489C1CE3AD10509F488C1CF3AA9 -:100E0000D10509F487C1C13BD10509F486C1C23BB4 -:100E1000D10509F485C1C33BD10509F484C1C43BA4 -:100E2000D10509F483C1C53BD10509F482C1C63B94 -:100E3000D10509F481C1C73BD10509F480C1C83B84 -:100E4000D10509F47FC1C93BD10509F47EC1CA3B74 -:100E5000D10509F47DC100E014E47CC1CE019F708E -:100E60000E94460678C1DD278E01106C73C1CF70D9 -:100E7000DD278E01146D6EC100E010ED6BC100E046 -:100E800012ED68C100E013ED65C10E941C1C0E94B8 -:100E90005A0A0E9421048FEF94E32CE08150904085 -:100EA0002040E1F700C000000E94732353C18091ED -:100EB000F20281608093F2024DC10E94D42381111D -:100EC00002C00E94B0230E94E72390E090931D038C -:100ED00080931C03C23080E5D80721F480911C0365 -:100EE000816086C0C43090E5D90721F480911C034D -:100EF00082607EC0C63020E5D20721F480911C03B9 -:100F0000846076C0C83080E5D80719F480911C034E -:100F100027C0CA3090E5D90721F480911C03806175 -:100F200067C0CC3020E5D20721F480911C03806299 -:100F30005FC0CE3080E5D80721F480911C03806427 -:100F400057C0C03190E5D90721F480911C03806817 -:100F50004FC0C23120E5D20729F480911C03846080 -:100F6000886046C0C33080E5D80721F480911C0317 -:100F70008E7F3EC0C53090E5D90721F480911C03D7 -:100F80008D7F36C0C73020E5D20721F480911C0345 -:100F90008B7F2EC0C93080E5D80719F480911C03DF -:100FA00026C0CB3090E5D90721F480911C038F7EB9 -:100FB0001FC0CD3020E5D20721F480911C038F7D26 -:100FC00017C0CF3080E5D80721F480911C038F7BB8 -:100FD0000FC0C13190E5D90721F480911C038F77B0 -:100FE00007C0C331D04531F480911C038B7F877FCC -:100FF00080931C0380911C030E94EB23ABC08D2FB8 -:1010000099278F70992781309105D9F49E0123701B -:10101000332702C0880F991F2A95E2F79C688E013A -:1010200044E0000F111F4A95E1F700271370802B51 -:10103000912B53E0CC0FDD1F5A95E1F7C076DD27E9 -:101040002FC08230910531F4DC2FCC278E01016F47 -:10105000106A80C08330910569F4CE0183709927AE -:1010600001E010E002C0000F111F8A95E2F7C801ED -:101070009C680FC084309105B9F4CE018370992724 -:1010800001E010E002C0000F111F8A95E2F7C801CD -:101090009A6823E0CC0FDD1F2A95E1F7C07ED77058 -:1010A0008C010C2B1D2B56C08530910531F4DC2FA3 -:1010B000CC278E01046F106A4DC0069709F04AC014 -:1010C000CF71DD27DC2FCC278E01106243C000E0FA -:1010D00010E040C08E013EC001E810E43BC003E8D0 -:1010E00010E438C002EE14E435C009EE14E432C056 -:1010F0000AEE14E42FC005EB14E42CC006EB14E454 -:1011000029C007EB14E426C00CEC14E423C00DEC5A -:1011100014E420C003E815E41DC00AE815E41AC071 -:1011200002E915E417C004E915E414C001E216E46D -:1011300011C003E216E40EC004E216E40BC005E29F -:1011400016E408C006E216E405C007E216E402C091 -:101150000AE216E4C801DF91CF911F910F91089523 -:101160009CE0799FF001112490E3899FE00DF11D2F -:101170001124E60FF11DEE0FFF1FE453FE4F859182 -:101180009491803E9105E0F4803C910558F58133BF -:10119000910509F46FC048F48932910509F463C0E0 -:1011A0008A32910509F46DC072C089339105E9F066 -:1011B00082389105D1F08533910509F44DC067C09F -:1011C000833E910581F138F4803E9105B9F0823E6D -:1011D0009105D9F05CC0863E910561F1873E91058D -:1011E000A1F155C00E943E06089520911C0320FDE8 -:1011F00002C021FF4CC080EE90E049C080911C03EA -:1012000080FFF9CF89E390E042C080911C0382FF08 -:101210000EC080911C0384FF03C080E090E037C0C3 -:1012200083EE90E034C080911C0382FFF2CF82EE07 -:1012300090E02DC080911C0383FF0BC080911C03A4 -:1012400084FDEBCF87EE90E022C080911C0383FFEA -:10125000F5CF86EE90E01BC080911C0385FF07C090 -:1012600089E290E014C080911C0385FFF9CF85E3EB -:1012700090E00DC080911C0386FF07C08AE290E0D9 -:1012800006C080911C0386FFF9CF81E390E00E94A5 -:101290004E0608950C941003E82FF0E0E25BFE4F39 -:1012A0008081E82FEF70F0E082958F7021E030E0D0 -:1012B000A90102C0440F551F8A95E2F740A3089583 -:1012C0000F931F93CF93DF9385B7806885BF85B752 -:1012D000806885BFC3E0D0E001E010E0FE01E25B82 -:1012E000FE4F8081E82FEF70F0E021A182958F7092 -:1012F000A80102C0440F551F8A95E2F7CA01822B4C -:1013000081A38C2F0E944C09219740F78BE090E03D -:1013100061E070E0FC01EE5BFE4F2081E22FEF7098 -:10132000F0E042A122952F70DB0102C0AA0FBB1F83 -:101330002A95E2F79D01242B22A3019758F7DF910C -:10134000CF911F910F910C94CC03EF92FF920F93CA -:101350001F93CF93DF9300E212E0C3E0EE24E39407 -:10136000F12CD5E08C2F0E944C098BE090E040E0FE -:1013700050E0FC01EE5BFE4F6081E62FEF70F0E085 -:1013800020A130E062956F7002C0359527956A956F -:10139000E2F720FD09C09701082E02C0220F331F7B -:1013A0000A94E2F7422B532B019718F7F801929118 -:1013B00082918F018417950721F051834083D09348 -:1013C00005018C2F0E944C09C15060F680910501E7 -:1013D00087FD2CC08150809305018F3F39F08FE944 -:1013E0009FE00197F1F700C0000020C080911E022D -:1013F00090911F02909327028093260280911C02F5 -:1014000090911D02909325028093240280911A02EC -:1014100090911B02909323028093220280911802E4 -:101420009091190290932102809320020E94CE0392 -:1014300081E0DF91CF911F910F91FF90EF90089580 -:10144000E82FF0E0EE0FFF1FE05EFD4F80819181FD -:10145000089508950F931F93CF9308E212E0C0E020 -:10146000F801929182918F010E949022C80FF2E0C0 -:1014700000321F07A9F78C2FCF911F910F9108956C -:101480000E94D423811102C00E94B0230E94F9233C -:10149000809307033E9A809171008D7F8093710045 -:1014A00082E0809390008AE18093910081E08093B4 -:1014B0002A02089580912A02811102C00E94400AE6 -:1014C00010927A0210927902809171008D7F809340 -:1014D0007100809190008F738093900010923C0275 -:1014E00010923B02109273021092740210927502D5 -:1014F000109276021092720210927102E1E5F2E00F -:10150000A1E4B2E011921192119211921D921D92DA -:1015100082E0E137F807B1F70895CF92DF92EF92BA -:10152000FF920F931F93CF93DF9320913B022223CF -:1015300009F484C06B017C0180912A02811102C0F0 -:101540000E94400A01E712E0C7E0D0E0A70196013F -:10155000F80192918291729162918F010E944429C7 -:10156000811131C0FE01EE0FFF1FEE0FFF1FEF5A7A -:10157000FD4F1082118212821382DE01AA0FBB1F5F -:10158000AF5BBD4F11961C921E92C730D105E9F09A -:10159000219644815581668177814083518362839E -:1015A0007383148215821682178212968D919C91F4 -:1015B000139711969C938E9313961C921E921297DA -:1015C00034961296E2CF219708F680917902909195 -:1015D0007A02019797FD05C090937A028093790271 -:1015E00004C010927A02109279028091790290914F -:1015F0007A0220917702309178022817390724F077 -:101600001092780210927702892BC1F480917100B8 -:101610008D7F80937100809190008F7380939000F4 -:101620001092730210927402109275021092760258 -:10163000109272021092710210923B02DF91CF91D0 -:101640001F910F91FF90EF90DF90CF9008951F9220 -:101650000F920FB60F9211244F925F926F927F926A -:101660008F929F92AF92BF92CF92DF92EF92FF92B2 -:101670002F933F934F935F936F937F938F939F939A -:10168000AF93BF93CF93DF93EF93FF9380913B0290 -:10169000882309F49BC1C0917902D0917A021C166B -:1016A0001D060CF093C140902B0250902C026090CC -:1016B0002D0270902E0220E030E0A901C301B2019A -:1016C0000E94EF2A18160CF065C0C130D10509F44C -:1016D00052C08091770290917802BE010E94C12C85 -:1016E0007C01909378028093770280903D029090E5 -:1016F0003E02A0903F02B090400220E030E040E87F -:101700005FE3C501B4010E94E02860933D0270933D -:101710003E0280933F0290934002F701EE0FFF1FBD -:10172000EE0FFF1FEF5AFD4FA301920160817181FF -:10173000828193810E94482920E030E040E05EE30E -:101740000E94F32A9B01AC01C501B4010E94EF2A5B -:1017500018168CF4C7010196BE010E94C12C90930B -:1017600078028093770210923D0210923E0210920E -:101770003F0210924002E0917702F0917802EE0F62 -:10178000FF1FEE0FFF1FEF5AFD4F608171818281B5 -:101790009381D0C0C0907302D0907402E090750223 -:1017A000F090760220E030E0A901C701B6010E9466 -:1017B00044292197882309F4A2C0FE01EE0FFF1FE0 -:1017C000EE0FFF1FEF5AFD4F80809180A280B38003 -:1017D000A5019401C701B6010E94442987FF31C0C9 -:1017E000A501940160E070E08CED93EC0E94482923 -:1017F00020E030E040E451E40E94482920E030E05D -:1018000040E05FE30E94F32A9B01AC0160E070E0DE -:1018100080E090E40E94562B9B01AC01C501B4010D -:101820000E94F32A9B01AC01C701B6010E94442922 -:1018300087FF07C0A701960160E070E08CED93E49C -:1018400039C0A5019401C701B6010E94EF2A1816FC -:101850000CF055C0A501940160E070E08CED93E4BC -:101860000E94482920E030E040E451E40E944829E9 -:1018700020E030E040E05FE30E94F32A9B01AC01EE -:1018800060E070E080E090E40E94562B9B01AC0188 -:10189000C501B4010E94F32A9B01AC01C701B60146 -:1018A0000E94EF2A18165CF5A701960160E070E02F -:1018B0008CED93EC0E94482920E030E040E451E4B4 -:1018C0000E94482920E030E040E05FE30E94F32AD4 -:1018D0009B01AC0160E070E080E090E40E94562B38 -:1018E0009B01AC01C701B6010E94F32A6093730209 -:1018F00070937402809375029093760213C0FE0178 -:10190000EE0FFF1FEE0FFF1FEF5AFD4F80819181F9 -:10191000A281B3818093730290937402A0937502A5 -:10192000B093760260917302709174028091750297 -:101930009091760220912802309129022F3F4FEF9B -:10194000340731F02F5F3F4F309329022093280254 -:101950000E94CF0E6B017C0120E034E244EF51E4A1 -:101960000E94442987FF08C086EFC82E88E2D82E3F -:1019700084EFE82E81E4F82E20E030E040E051E4EE -:10198000C701B6010E94F32A9B01AC0160E074E23A -:1019900084E79BE40E9448296B017C010E94B529E1 -:1019A0007093970060939600209106013091070193 -:1019B0004091080150910901C701B6010E94F32A24 -:1019C0000E94B529709399006093980080913C0221 -:1019D000882309F433C1C0903702D0903802E090D8 -:1019E0003902F0903A0220E030E0A901C701B601C7 -:1019F0000E94EF2A1816D4F58091280290912902AE -:101A00008F3F2FEF920729F0019690932902809340 -:101A10002802C701B6010E94CF0E20E030E040E06E -:101A200051E40E94F32A9B01AC0160E074E284E778 -:101A30009BE40E9448296B017C010E94B5297093A8 -:101A40009700609396002091060130910701409124 -:101A5000080150910901C701B6010E94F32A0E94B2 -:101A6000B529709399006093980008C01092970070 -:101A70001092960010929900109298006091310295 -:101A8000709132026F5F7F4F709332026093310228 -:101A9000209196003091970080E090E0232BF1F0A8 -:101AA000C0919600D09197000E94E1296B017C01C2 -:101AB000BE0180E090E00E94E1299B01AC016091B1 -:101AC00033027091340280913502909136020E9467 -:101AD000482920E03FEF4FE757E410C00E94E1297A -:101AE0006B017C0120E030EE4FEF54E46091330253 -:101AF0007091340280913502909136020E94F32A4F -:101B00009B01AC01C701B6010E94EF2A87FD96C078 -:101B100080912F028F5F80932F0290E0209103032A -:101B20003091040382179307A0F080910E0388235D -:101B300019F010922F020DC0809171008D7F80935B -:101B40007100809190008F738093900010923C02FE -:101B50007DC080913002C0912F02811128C0C090B9 -:101B60000803D0900903E0900A03F0900B0320E0F3 -:101B700030E0A901C701B6010E94EF2A1816BCF493 -:101B800081E0809330021092370210923802109256 -:101B9000390210923A02C0923302D0923402E0929B -:101BA0003502F0923602C150C0932F0243C010920A -:101BB00030021092290210922802E0910503F09160 -:101BC000060348E0C49FE00DF11D1124808191813E -:101BD000A281B3818093370290933802A093390297 -:101BE000B0933A0220E030E040E85EE36481758122 -:101BF000868197810E94F32A6B017C0180910A0102 -:101C0000682F70E080E090E00E94E12920E030E061 -:101C100048EC52E40E9448299B01AC01C701B6017F -:101C20000E94F32A6093330270933402809335024A -:101C30009093360210923202109231028091070383 -:101C400080FD04C010923C0210923B02FF91EF9184 -:101C5000DF91CF91BF91AF919F918F917F916F91C4 -:101C60005F914F913F912F91FF90EF90DF90CF9038 -:101C7000BF90AF909F908F907F906F905F904F90AC -:101C80000F900FBE0F901F901895CF92DF92EF929A -:101C9000FF92CF93DF936B017C01EA0180912A02CE -:101CA000811102C00E94400A8091070380FF46C054 -:101CB0008091790290917A0208970CF03FC0809150 -:101CC00071008D7F8093710080913C0281110E9490 -:101CD0005A0A81E080933B02109229021092280256 -:101CE00020E030E0A901C701B6010E94EF2A1816D2 -:101CF000DCF48091790290917A02FC01EE0FFF1FD3 -:101D0000EE0FFF1FEF5AFD4FC082D182E282F382B5 -:101D1000FC01EE0FFF1FEF5BFD4FD183C0830196E7 -:101D200090937A028093790280917100826080930F -:101D3000710080919000806880939000DF91CF9136 -:101D4000FF90EF90DF90CF9008958091070381700E -:101D50000895809107038160809307030E94FD230B -:101D60000C942804809107038E7F809307030C94C2 -:101D7000FD2380917B0290E0019666E070E00E9476 -:101D8000C12C80937B02089580917B0290E00197A3 -:101D900066E070E00E94C12C80937B0208958F92D0 -:101DA0009F92AF92BF92CF92DF92EF92FF920F93EA -:101DB0001F93CF93DF936B017C01C0912802D091D8 -:101DC0002902BE0180E090E00E94E1294B015C0104 -:101DD000A701960160E070E08CE594E40E94482938 -:101DE0009B01AC01C501B4010E94F32A0E94B529F0 -:101DF00020917B02233009F473C028F4222351F090 -:101E00002130E9F02CC1243009F4A0C0253009F4B8 -:101E1000E0C025C180E090E0A0E0BFE38093060130 -:101E200090930701A0930801B093090110922B022F -:101E300010922C0210922D0210922E0210C11092BC -:101E40002B0210922C0210922D0210922E0264315D -:101E5000710540F46A30710560F520E030E040E83B -:101E60005EE32BC0693C710508F0AAC080E090E0F9 -:101E70000E94E12920E030E040EA51E40E94DF289E -:101E800020E030E044E353E40E9448299B01AC0188 -:101E90000E94F32A20E030E040E05EE30E94F32A53 -:101EA0009B01AC0160E070E080E09EE30E94DF28CF -:101EB00044C020E030E040E05FE3C701B6010E948B -:101EC000F32A6B017C0180E090E0A0E0BEE3809308 -:101ED000060190930701A0930801B0930901BFC0C8 -:101EE00010922B0210922C0210922D0210922E02B0 -:101EF0004AE0469F9001479F300D1124C90168EBCD -:101F00007BE00E94AD2CBC016C5D754077FF03C087 -:101F1000719561957109882777FD8095982F0E94AA -:101F2000E3292EE333EC4EE259E30E94F32A20E04A -:101F300030E040EC5EE30E94E0286093060170937D -:101F40000701809308019093090189C010922B0228 -:101F500010922C0210922D0210922E02CE0183704C -:101F60009927892BE1F0BE016170772780E090E02E -:101F70000E94E12920E030E040E05EE30E94F32A85 -:101F800020E030E040E45FE30E94E0286093060137 -:101F90007093070180930801909309010CC080E0C1 -:101FA00090E0A0E0BFE38093060190930701A09327 -:101FB0000801B0930901C770DD27CD2B09F04FC090 -:101FC0001092060110920701109208011092090167 -:101FD00046C010922B0210922C0210922D021092E9 -:101FE0002E0200E010E020E03FE300930601109392 -:101FF000070120930801309309016739710578F1D1 -:1020000080E090E00E94E12920E030E047E153E4E5 -:102010000E94DF2820E030E04AE754E40E9448298B -:1020200020E030E048E452E40E94F32A20E030E06F -:1020300040EA51E40E94252A0E94B029660F771FCA -:10204000660F771FFB01EE5AFE4F208131814281DE -:102050005381C701B6010E94F32A6B017C01C701BD -:10206000B601DF91CF911F910F91FF90EF90DF901C -:10207000CF90BF90AF909F908F90089580918C02E9 -:102080000895CF93DF9300D01F92CDB7DEB79C01A8 -:1020900080911303843019F593E099833B832A835D -:1020A0009093E9008FEF9091E800815095FD06C074 -:1020B00095ED9A95F1F700008111F5CF8091E80038 -:1020C00085FF0DC040E050E063E070E0CE01019676 -:1020D0000E94A2128091E8008E778093E8000F9012 -:1020E0000F900F90DF91CF910895CF93DF9300D0A1 -:1020F0001F92CDB7DEB720911303243021F522E0E3 -:1021000029839B838A8383E08093E9008FEF9091FA -:10211000E800815095FD06C095ED9A95F1F7000015 -:102120008111F5CF8091E80085FF0DC040E050E0BF -:1021300063E070E0CE0101960E94A2128091E80057 -:102140008E778093E8000F900F900F90DF91CF91E2 -:102150000895209113032430F1F422E02093E90044 -:102160002FEF3091E800215035FD06C035ED3A954E -:10217000F1F700002111F5CF2091E80025FF0BC0F9 -:1021800040E050E065E070E00E94A2128091E8001B -:102190008E778093E8000895CF93DF93EC019091C0 -:1021A0001303943009F046C0809115018823D9F0BB -:1021B000809116018823B9F09093E9008FEF9091F8 -:1021C000E800815095FD06C095E19A95F1F7000071 -:1021D0008111F5CF8091E80085FF2CC040E050E0F0 -:1021E00060E170E017C081E08093E9008FEF90918B -:1021F000E800815095FD06C095ED9A95F1F7000035 -:102200008111F5CF8091E80085FF14C040E050E0D7 -:1022100068E070E0CE010E94A2128091E8008E7703 -:102220008093E80080E1FE01ACE7B2E001900D92FE -:102230008A95E1F7DF91CF91089580911203811182 -:1022400009C00E9437140E9494148091E2008460B7 -:102250008093E2000895109212030895089508955E -:102260000C94DB2242E061EC81E00E94B11342E079 -:1022700061EC82E00E94B11342E061EC83E00E94D5 -:10228000B11342E161EC84E00C94B1138091150329 -:10229000833009F455C030F4813071F0823009F494 -:1022A0008EC008958A3009F47AC08B3009F460C07A -:1022B000893009F09CC020C080911403813A09F054 -:1022C00096C08091E800877F8093E8008091180392 -:1022D00090911903892B21F460E18CE792E003C00F -:1022E00060E080E090E070E00E94ED128091E800F4 -:1022F0008B778093E800089580911403813209F070 -:1023000076C08091180390911903009719F00397F4 -:1023100009F06DC08091E800877F8093E80080918C -:10232000E80082FD05C0809113038111F8CF5FC0E2 -:102330008091F10080938C028091E8008B7753C0EC -:1023400080911403813A09F052C080911803909152 -:102350001903892B09F04BC08091E800877F809397 -:10236000E8008091E80080FFFCCF8091150136C025 -:10237000809114038132D9F580911803909119034B -:10238000892BA9F58091E800877F8093E8000E945F -:10239000E61380911603809315010C941C1C809108 -:1023A0001403813221F58091E800877F8093E80053 -:1023B0000E94E6138091170380938D020895809107 -:1023C0001403813AA1F48091E800877F8093E800AC -:1023D0008091E80080FFFCCF80918D028093F10016 -:1023E0008091E8008E778093E8000C94E6130895BE -:1023F00084B7877F84BF88E10FB6F894809360002C -:10240000109260000FBE90E080E80FB6F8948093C1 -:102410006100909361000FBE0E9489170E943714DB -:102420000E9494148091E20084608093E20078948A -:102430000E941A170E948B178BE091E00E943517BB -:1024400080911303853069F40E949C2280911103CE -:102450008823B1F30E94CA22882391F30E948C1230 -:10246000EFCF0E949317ECCF292F3327233031056C -:10247000C9F064F42130310581F02230310509F0D2 -:1024800043C08DE690E028E034E042C021323105BF -:10249000F1F02232310541F137C082E190E025E7C9 -:1024A00034E036C099278130910541F082309105A2 -:1024B00041F0892B49F5E4E0F4E005C0E6EDF3E0F6 -:1024C00002C0ECEAF3E0849190E09F0121C0643007 -:1024D000D8F4E62FF0E0EE0FFF1FE255FE4F20810B -:1024E000318189E090E014C0643070F470E0FB0149 -:1024F000EE0FFF1FEA55FE4F20813181FB01EE55A3 -:10250000FE4F808190E004C080E090E020E030E069 -:10251000FA0131832083089580E189BD82E189BD7C -:1025200009B400FEFDCF8091D8008F7D8093D80044 -:102530008091E00082608093E0008091E00081FD66 -:10254000FCCF0895CF92DF92EF92FF920F931F93EB -:10255000CF93DF93EC018B016A010E940514811176 -:1025600033C0C114D10439F0F60180819181081B78 -:10257000190BC80FD91FE12CF12C0115110519F108 -:102580008091E80085FD16C08091E8008E778093E9 -:10259000E800C114D10449F0F60180819181E80E70 -:1025A000F91EF182E08285E00FC00E9405148823A5 -:1025B00021F30AC089918093F10001501109FFEFC6 -:1025C000EF1AFF0ADACF80E0DF91CF911F910F91D0 -:1025D000FF90EF90DF90CF90089520911A033091F3 -:1025E0001B032617370748F06115710539F4209150 -:1025F000E8002E772093E80001C0B90140E06115A2 -:102600007105A9F120911303222309F443C0253059 -:1026100009F442C02091E80023FD40C02091E80069 -:1026200022FD32C02091E80020FFE9CF4091F30065 -:102630002091F20030E0342BFC01CF0161157105CF -:1026400059F02830310540F481918093F1006150B8 -:1026500071092F5F3F4FF1CF41E02830310509F07C -:1026600040E02091E8002E772093E800C8CF411188 -:10267000C9CF0AC080911303882361F0853061F0CF -:102680008091E80083FD0AC08091E80082FFF2CFCC -:1026900080E0089582E0089583E0089581E0089540 -:1026A00020911A0330911B032617370748F0611554 -:1026B000710539F42091E8002E772093E80001C0DD -:1026C000B901FC0120E06115710591F180911303BE -:1026D000882309F440C0853009F43FC08091E800A8 -:1026E00083FD3DC08091E80082FD2FC08091E8000D -:1026F00080FFE9CF2091F3008091F20090E0922BCF -:102700006115710559F08830910540F424912093AA -:10271000F1003196615071090196F2CF21E00897DE -:1027200009F020E08091E8008E778093E800CBCF1D -:102730002111CCCF0AC080911303882361F085302A -:1027400061F08091E80083FD0AC08091E80082FF7B -:10275000F2CF80E0089582E0089583E0089581E05B -:102760000895982F973058F59093E900981739F00D -:102770007091EC002091ED005091F00003C0242FE7 -:10278000762F50E021FF19C03091EB003E7F30934F -:10279000EB003091ED003D7F3093ED003091EB0088 -:1027A00031603093EB007093EC002093ED00509378 -:1027B000F0002091EE0027FF07C09F5FD3CF8F70FE -:1027C0008093E90081E0089580E0089580911403EA -:1027D00087FF11C08091E80082FD05C0809113033E -:1027E0008111F8CF11C08091E8008B770BC08091E8 -:1027F0001303882349F08091E80080FFF8CF80918F -:10280000E8008E778093E80008952091E4003091ED -:10281000E50095E64091EC00842F817040FF22C0D6 -:102820008091E80080FD1CC080911303882391F003 -:10283000853091F08091EB0085FD10C04091E4005F -:102840005091E5004217530729F39A01915011F76F -:1028500084E0089582E0089583E0089581E008957A -:1028600080E008954091E80042FFDECF08950E9485 -:10287000A5140E94AD14E0EEF0E0808181608083B9 -:10288000E8EDF0E080818F77808319BCA7EDB0E0A0 -:102890008C918E7F8C9380818F7E80831092120327 -:1028A00008950F931F93CF93DF930E94A5140E9466 -:1028B000AD14C8EDD0E088818F77888388818068E7 -:1028C000888388818F7D888319BC109213031092AE -:1028D0000F03109211031092100300EE10E0F801A4 -:1028E00080818B7F808388818160888342E060E083 -:1028F00080E00E94B113E1EEF0E080818E7F808362 -:10290000E2EEF0E080818160808380818860808356 -:10291000F80180818E7F8083888180618883DF9148 -:10292000CF911F910F910895E8EDF0E080818F7EA7 -:102930008083E7EDF0E080818160808384E082BF66 -:1029400081E0809312030C945114E8EDF0E0808153 -:102950008E7F80831092E20008951092DA00109228 -:10296000E10008951F920F920FB60F9211242F933A -:102970003F934F935F936F937F938F939F93AF9307 -:10298000BF93EF93FF938091E10082FF0BC0809192 -:10299000E20082FF07C08091E1008B7F8093E1001D -:1029A0000E9419178091DA0080FF1FC08091D80023 -:1029B00080FF1BC08091DA008E7F8093DA008091C7 -:1029C000D90080FF0DC080E189BD82E189BD09B4D5 -:1029D00000FEFDCF81E0809313030E941D1105C00E -:1029E00019BC109213030E942B118091E10080FF0B -:1029F00019C08091E20080FF15C08091E2008E7FB7 -:102A00008093E2008091E20080618093E2008091F7 -:102A1000D80080628093D80019BC85E080931303AE -:102A20000E942F118091E10084FF30C08091E2006C -:102A300084FF2CC080E189BD82E189BD09B400FE1C -:102A4000FDCF8091D8008F7D8093D8008091E100E8 -:102A50008F7E8093E1008091E2008F7E8093E20080 -:102A60008091E20081608093E20080910F038823CF -:102A700011F084E007C08091E30087FD02C081E08F -:102A800001C083E0809313030E9430118091E10024 -:102A900083FF29C08091E20083FF25C08091E1007F -:102AA000877F8093E10082E08093130310920F03ED -:102AB0008091E1008E7F8093E1008091E2008E7F23 -:102AC0008093E2008091E20080618093E20042E026 -:102AD00060E080E00E94B1138091F00088608093F4 -:102AE000F0000E942E11FF91EF91BF91AF919F9145 -:102AF0008F917F916F915F914F913F912F910F90A7 -:102B00000FBE0F901F9018951F920F920FB60F9245 -:102B100011242F933F934F935F936F937F938F93E2 -:102B20009F93AF93BF93CF93DF93EF93FF93C091A6 -:102B3000E900CF708091EC00D82FD17080FDD0E8F3 -:102B40001092E9008091F000877F8093F0007894E4 -:102B50000E94C8151092E9008091F000886080936F -:102B6000F000CD2BCF70C093E900FF91EF91DF9182 -:102B7000CF91BF91AF919F918F917F916F915F9115 -:102B80004F913F912F910F900FBE0F901F9018956E -:102B90001F93CF93DF93CDB7DEB7AA970FB6F89404 -:102BA000DEBF0FBECDBFE4E1F3E088E08E0F909171 -:102BB000F10091938E13FBCF0E9446118091E800A3 -:102BC00083FF1FC18091140390911503492F50E09A -:102BD0004A30510508F015C1FA01EA5AFF4F0C942A -:102BE000D52C803881F0823809F00BC18091180310 -:102BF0008F708093E9008091EB0085FB882780F936 -:102C00001092E90006C08091100390911103911178 -:102C100082609091E800977F9093E8008093F100A4 -:102C20001092F100C8C0282F2D7F09F0EAC0882338 -:102C300019F0823061F0E5C080911603813009F00F -:102C4000E0C0933009F080E0809311032BC08091A5 -:102C50001603811127C0809118038F7009F4D1C029 -:102C60008093E9002091EB0020FF1CC0933021F4F9 -:102C70008091EB00806214C09091EB009061909382 -:102C8000EB0021E030E0A90102C0440F551F8A95F6 -:102C9000E2F74093EA001092EA008091EB0088602E -:102CA0008093EB001092E9008091E800877F86C056 -:102CB0008111A7C0109116031F778091E3008078DF -:102CC000812B8093E3008091E800877F8093E80068 -:102CD0000E94E6138091E80080FFFCCF8091E30022 -:102CE00080688093E300111102C082E001C083E09C -:102CF0008093130386C08058823008F082C0809190 -:102D00001603909117038C3D53E0950779F583E006 -:102D10008A838AE289834FB7F894DE01139620E014 -:102D20003EE051E2E32FF0E050935700E49120FFA2 -:102D300003C0E295EF703F5FEF708E2F90E0EA30B6 -:102D400010F0C79601C0C0968D939D932F5F2431DC -:102D500049F74FBF8091E800877F8093E8006AE2DF -:102D600070E0CE0101960E94ED1214C0AE014F5FDB -:102D70005F4F609118030E943412BC01009709F460 -:102D800040C09091E800977F9093E80089819A81F4 -:102D90000E9450138091E8008B778093E80031C047 -:102DA000803879F58091E800877F8093E8008091F2 -:102DB0000F038093F1008091E8008E778093E80004 -:102DC0000E94E6131EC081111CC090911603923020 -:102DD000C0F48091E800877F8093E80090930F0310 -:102DE0000E94E61380910F03811106C08091E300D9 -:102DF00087FD02C081E001C084E0809313030E943C -:102E000032118091E80083FF0AC08091E800877F3B -:102E10008093E8008091EB0080628093EB00AA969B -:102E20000FB6F894DEBF0FBECDBFDF91CF911F91DB -:102E300008950895CF93809113038823A1F0C09142 -:102E4000E900CF709091EC00892F817090FD80E8AF -:102E5000C82B1092E9008091E80083FD0E94C815FC -:102E6000CF70C093E900CF9108959093930280931F -:102E700092020895E0919202F0919302309721F02E -:102E80000190F081E02D099480E00895E091920294 -:102E9000F0919302309721F00280F381E02D0994A4 -:102EA0000895E0919202F0919302309721F004800E -:102EB000F581E02D099408952091900230919102BE -:102EC0008217930771F09093910280939002E091A2 -:102ED0009202F0919302309721F00680F781E02D65 -:102EE0000994089520918E0230918F0282179307E2 -:102EF00071F090938F0280938E02E0919202F09194 -:102F00009302309721F00084F185E02D0994089513 -:102F100008950C9488170E940F230E9460090E9454 -:102F200095230C9444285F926F927F928F929F9288 -:102F3000AF92BF92CF92DF92EF92FF920F931F93C7 -:102F4000CF93DF9300D000D01F92CDB7DEB70E94A1 -:102F5000A5099DE9C92E92E0D92E03E010E0AA242C -:102F6000A394B12C502E802F0E94200A4C01F60110 -:102F7000729062906F016826792661147104A1F441 -:102F80000150110978F78FEF89838A831B820E9491 -:102F900018238160782F9D838C8349815A816B81AE -:102FA0008D810E94431838C08091F20281FD0E94F9 -:102FB000290A2BE030E07501022E02C0EE0CFF1C46 -:102FC0000A94E2F7C70186219721892B09F1298309 -:102FD0005A828E209F2091E0892809F490E09B83FB -:102FE0000E9418238160782F9D838C8349815A81A8 -:102FF0006B818D810E944318000F111FF801EB5661 -:10300000FD4F80819181E826F926F182E08204C09B -:103010002150310980F6B4CF0E947C251091940292 -:103020000E943A171817D1F00E943A178093940221 -:103030000F900F900F900F900F90DF91CF911F91F5 -:103040000F91FF90EF90DF90CF90BF90AF909F9047 -:103050008F907F906F905F900C944A090F900F9023 -:103060000F900F900F90DF91CF911F910F91FF90D4 -:10307000EF90DF90CF90BF90AF909F908F907F9018 -:103080006F905F900895CF93DF93CDB7DEB72B9706 -:103090000FB6F894DEBF0FBECDBF4F835887698748 -:1030A0007A878B87DE01119686E0FD0111928A9561 -:1030B000E9F785E0FE01379601900D928A95E1F7D8 -:1030C00049815A816B817C818D819E810E94BA1ECB -:1030D0002B960FB6F894DEBF0FBECDBFDF91CF9118 -:1030E0000895CF93882309F4C2C0C82F823859F4B9 -:1030F0000E943A1781FDBBC089E30E9494210E947F -:10310000612289E30CC0833879F40E943A1780FD6C -:10311000AEC083E50E9494210E94612283E50E9453 -:10312000D621CF910C946122843859F40E943A1729 -:1031300082FD9DC087E40E9494210E94612287E461 -:10314000EECF8CEF8C0F813A48F48C2F0E94AC2785 -:1031500081118DC08C2F0E949421E3CF80E28C0FCF -:10316000883048F4C77081E001C0880FCA95EAF73B -:103170000E941A22D6CF8BE58C0F833078F4C53AA3 -:1031800029F0C63A31F083E890E005C081E890E08C -:1031900002C082E890E0CF910C945C1788E58C0F18 -:1031A000833108F064C0C83A39F1C93A41F1CA3AEA -:1031B00049F1CB3A51F1CC3A59F1CD3A61F1C03BEA -:1031C00069F1CE3A71F1CF3A79F1C13B81F1C23B5D -:1031D00089F1C33B91F1C43B99F1C53BA1F1C63BD9 -:1031E000A9F1C73BB1F1C83BB9F1C93BC1F1CA3B39 -:1031F000C9F180E090E038C082EE90E035C089EE01 -:1032000090E032C08AEE90E02FC085EB90E02CC0B9 -:1032100086EB90E029C087EB90E026C08CEC90E034 -:1032200023C08DEC90E020C083E891E01DC08AE8C7 -:1032300091E01AC082E991E017C084E991E014C0DE -:1032400081E292E011C083E292E00EC084E292E05B -:103250000BC085E292E008C086E292E005C087E2FA -:1032600092E002C08AE292E0CF910C947217CF9163 -:103270000895882309F44BC0823859F40E943A1704 -:1032800081FF45C089E30E9494210E94612289E365 -:103290000CC0833871F40E943A1780FF38C083E570 -:1032A0000E9494210E94612283E50E94D6210C9401 -:1032B0006122843859F40E943A1782FF28C087E4BB -:1032C0000E9494210E94612287E4EFCF9CEF980F27 -:1032D000913A58F390E2980F983050F4877091E04B -:1032E00001C0990F8A95EAF7892F0E942022DFCF2B -:1032F0009BE5980F933020F480E090E00C945C17ED -:10330000885A833120F480E090E00C94721708957D -:10331000882321F00E941A220C94612208958823A8 -:1033200021F00E9420220C94612208957F928F92B6 -:103330009F92AF92BF92CF92DF92EF92FF920F9344 -:103340001F93CF93DF931F92CDB7DEB77C01C62EBC -:10335000772EFC01058102950F70128111110E94D8 -:1033600037220E948D21882379F0112369F080E2B1 -:103370008C0D883048F082E00E9476210E948D21D9 -:1033800091E0D82ED92601C0D12CE72DE295EF701F -:10339000F0E0E05AFF4F0C94D52C872D807F072D4D -:1033A0000F70882311F00295007F112389F000230C -:1033B00009F499C180E28C0D883020F4802F0E949E -:1033C0001A2203C0802F0E942A220E9461228BC1F0 -:1033D0008C2D0E943919002309F4C3C180E28C0DA1 -:1033E000883020F4802F0E94202203C0802F0E946A -:1033F00030220E946122B5C1872D807F972D9F705A -:10340000803211F4892F03C0892F8295807FCC20D0 -:1034100021F0F1E0CF16A1F01DC0112339F00023F7 -:1034200019F1013009F50E944A229BC1002319F0CD -:10343000013009F496C189830E944D22898110C10F -:10344000112321F0063008F08CC10EC0053008F0C1 -:1034500088C106C1112359F0002331F0F70195818D -:1034600090FF41C19F7095830E9488197AC1002303 -:1034700009F4F6C03EC1872D86958695837090E04D -:10348000009719F0019761F06CC1112321F08C2D88 -:10349000972D937002C080E090E00E945C1761C19C -:1034A000112321F08C2D972D937002C080E090E0C5 -:1034B0000E94721756C18C2D112319F00E9484248A -:1034C00002C00E94EC240E9471254BC1872D83709D -:1034D00009F052C0111145C18C2D829586958770D7 -:1034E000880F880F9C2D9F70892E912CA12CB12CB8 -:1034F000082E04C0880C991CAA1CBB1C0A94D2F785 -:10350000C4FE14C00FE010E020E030E0B901A801D3 -:1035100004C0440F551F661F771F8A95D2F7CB0151 -:10352000BA01609570958095909503C060E070E059 -:10353000CB01272D26952695237030E022303105CA -:1035400069F02330310589F0682979298A299B2976 -:103550002130310571F00E94022003C168297929C8 -:103560008A299B290E941E20FCC00E940220C501BE -:10357000B4010E94E61FF5C0112319F0872D817058 -:1035800001C08695882309F4ECC08C2D8295869520 -:103590008770880F880F9C2D9F70892E912CA12CED -:1035A000B12C082E04C0880C991CAA1CBB1C0A94C0 -:1035B000D2F7C4FE14C00FE010E020E030E0B90103 -:1035C000A80104C0440F551F661F771F8A95D2F7C4 -:1035D000CB01BA01609570958095909503C060E02D -:1035E00070E0CB01272D269526952370422F50E0C1 -:1035F0004230510569F04330510589F06829792935 -:103600008A299B294130510571F00E94DC20A9C014 -:10361000682979298A299B290E94F820A2C00E9442 -:10362000DC20C501B4010E94C0209BC08C2D90E01D -:10363000FC01E05EF109E531F10508F050C0E05908 -:10364000FF4F0C94D52C0C2D0F70872D8F711123EB -:1036500021F00E945920802F07CF0E947A20802FCE -:103660000E948F197EC0112341F0053008F079C007 -:10367000872D8F710E949F2074C0063008F071C0A2 -:10368000F7CF112339F0872D8F710E94592069C01F -:103690001123C9F3872D8F710E947A2062C01123F4 -:1036A00029F0872D8F710E9444205BC00E943A2030 -:1036B00058C0112351F0172D1F71812F0E945920DE -:1036C00063E0812F0E946D214CC081E00E94762131 -:1036D000023008F446C082E00E94762142C01123E5 -:1036E00031F0002381F28C2D0E9471183AC0002322 -:1036F00089F28C2D0E94391934C0472D4F706C2DE2 -:10370000C7010E94B5030E945E1F2BC0111129C082 -:10371000472D4F7050E042305105B9F04CF441153F -:10372000510581F041305105E1F40E946C2819C027 -:103730004330510569F04430510599F48C2D0E94B5 -:10374000BE280FC00E9455280CC00E94882809C0BE -:103750000E949B2806C0472D4F706C2DC7010E9408 -:103760002B06DD20F9F00E94692180FD1BC0F701C6 -:1037700012820E9463210E945920C7010E94E11B0E -:103780000E9463210F90DF91CF911F910F91FF90C5 -:10379000EF90DF90CF90BF90AF909F908F907F90F1 -:1037A0000C947A200F90DF91CF911F910F91FF9091 -:1037B000EF90DF90CF90BF90AF909F908F907F90D1 -:1037C00008950F931F93CF93DF93EC018881998124 -:1037D0002B813C81232BB9F09F3F11F48F3F99F04F -:1037E000CE010E942A04882371F0688179818A8140 -:1037F0000E945F218C010E9414210E94DB1FB801EE -:10380000CE010E949619DF91CF911F910F910895DB -:103810000E9437220E9447220E940C220E946122AD -:103820000E9422260E94712580E090E00E945C1791 -:1038300080E090E00C9472170E9427220C94081CE0 -:103840000E945421292F22952F7030E02C30310511 -:103850004CF42A3031056CF4225031092230310504 -:10386000A8F407C02C30310569F02F30310551F034 -:103870000DC0803F69F018F4803E40F409C0843FD9 -:1038800029F406C093FB882780F9089580E0089505 -:1038900081E00895CF93DF9300D000D01F92CDB781 -:1038A000DEB70F900F900F900F900F90DF91CF9198 -:1038B0000895CF93DF9300D000D000D0CDB7DEB70E -:1038C00026960FB6F894DEBF0FBECDBFDF91CF9125 -:1038D00008951F93CF93DF93C0919D0216E08091CE -:1038E0009E02C81799F0D0E01C9FF0011D9FF00DBB -:1038F0001124E156FD4F40815181628173818481A1 -:1039000095810E94591C2196C770E9CFDF91CF9114 -:103910001F9108954091CF025091D0026091D10241 -:103920007091D2028091D3029091D4020C94591CD0 -:103930008091D40282958F7009F054C08091D10299 -:10394000882309F44FC080919D02A0919E0260914E -:10395000CF027091D0024091D2025091D302B6E0D2 -:103960008A1709F43FC090E041155105C1F17F3F2E -:1039700011F46F3FA1F1B89FF001B99FF00D112430 -:10398000E156FD4F218172132AC02081621327C0A6 -:103990002281211124C0238134812417350710F49A -:1039A00021503109241B350B283C3105C0F42091EE -:1039B000D4022F7020612093D40226E0289FF001CA -:1039C000299FF00D1124EC55FD4F80818F7080618F -:1039D00080838FEC92E00E94E11B0C94691C01969D -:1039E0008770BECF0895CF92DF92EF92FF920F9330 -:1039F0001F93CF93DF93CDB7DEB762970FB6F894DE -:103A0000DEBF0FBECDBF8C0185E0F801DE011D9643 -:103A100001900D928A95E1F7D8014C9111965C9135 -:103A2000119712966C9112971396CD90DC90149783 -:103A30003091CF027091D0028091D2029091D30246 -:103A4000009709F46BC17F3F19F43F3F09F466C149 -:103A5000E090D102EE2009F4C0C02091D402C81633 -:103A6000D90628F0F601E81BF90BCF0104C08095B8 -:103A700090958C0D9D1DFF24F394883C910578F062 -:103A8000F12C207F09F0C6C07C2DD98AC88A89898B -:103A90000E944A1C8FEC92E00E94E11BB1C0822F71 -:103AA000807F09F046C0751314C0341312C0611131 -:103AB00010C02F7020612093D4020E948A1C8FECCA -:103AC00092E00E94E11B8091D402D80115968C935C -:103AD0002EC0CD2819F15F3F11F44F3FF9F0F62EBB -:103AE00061111CC080919D0220919E0236E08217D8 -:103AF00009F45AC090E0389FF001399FF00D11246D -:103B0000E156FD4F7181571306C07081471303C002 -:103B10007281711103C001968770E9CFF62E66237A -:103B200009F418C18091D40281608093D402F12CF1 -:103B300011C1751308C0341306C0611104C080910F -:103B4000D402D801C3C04D875E878D859E856A8B60 -:103B50000E94201C6A898823E1F16623D1F120911B -:103B6000D402822F82958F7090E0029774F080913A -:103B7000CF029091D00298878F831986DB86CA8600 -:103B80002C87CE0107960E94E11B86E0F801AFEC7E -:103B9000B2E001900D928A95E1F70E94981C0E9474 -:103BA0008A1CFF24F394D6C04D875E878D859E8541 -:103BB0000E945421292F22952F7030E022303105A8 -:103BC0000CF0BCC09F7009F0B6C0805E883008F46D -:103BD000C1C0C8010E94E11BE4CFC816D90608F491 -:103BE00053C0F601E81BF90BCF01883C910508F49E -:103BF00050C0F12C7C2DD98AC88A89890E944A1C20 -:103C0000EFECF2E086E0DF011D928A95E9F70E9471 -:103C10008A1CA0C0751314C0341312C0611110C0E7 -:103C20008091D402F8018583C8010E94E11B86E0DF -:103C3000EFECF2E0DF011D928A95E9F7FE2C8AC0D5 -:103C40004D875E878D859E856A8B0E94201C6A89C0 -:103C5000882309F4BECF662309F4BBCF2091D40298 -:103C6000822F82958F7090E002970CF48ECF809116 -:103C7000CF029091D0029A8389831B82DD82CC820D -:103C80002E83CE0101967FCF809590958C0D9D1D42 -:103C9000ACCFF62E662309F49CCF75132EC03413D7 -:103CA0002CC02091D40220FD1FC0822F82958F70DE -:103CB000D9F0D80115962C9315978F3049F08F5F66 -:103CC000982F9295907F822F8F70892B15968C93C9 -:103CD000C8010E94E11B86E0F801AFECB2E0019060 -:103CE0000D928A95E1F793CF86E0F801AFECB2E050 -:103CF00001900D928A95E1F72DC04D875E878D85E5 -:103D00009E850E94201C811140CF8091D402816049 -:103D10008093D402C8010E94E11B1CC0662309F4F1 -:103D200058CF4D875E878D859E850E94201C8823F5 -:103D300009F44FCF2ACF811148CF0CC02430310570 -:103D40000CF047CF9F7009F440CFF8019581907F28 -:103D500009F03BCF8F2D62960FB6F894DEBF0FBEF1 -:103D6000CDBFDF91CF911F910F91FF90EF90DF902A -:103D7000CF9008951F93CF93DF93CDB7DEB72C97E5 -:103D80000FB6F894DEBF0FBECDBF4F83588769874B -:103D90007A878B879C87CE0107960E94F31C882325 -:103DA00069F08F8198852A853B85232BF1F19F3F10 -:103DB00009F063C08F3F09F060C037C086E0FE01A4 -:103DC0003796DE01119601900D928A95E1F76F8189 -:103DD0007885EA85FB85309741F17F3F11F46F3F8D -:103DE00021F120919E0230E0C90101968770992748 -:103DF00040919D0250E08417950709F447C06983FC -:103E00007A83FD83EC8396E0929FD001939FB00D5F -:103E10001124A156BD4FFE01319601900D929A9545 -:103E2000E1F780939E020E94691C16E080919D023A -:103E300090919E028917C1F1189FC00111248156EB -:103E40009D4F0E94F31C882379F1E0919D021E9FF3 -:103E5000F0011124E156FD4F40815181628173814F -:103E6000848195810E94591C80919D0290E0019669 -:103E70008770992780939D02D9CF4F815885698596 -:103E80007A858B859C850E94591CCFCF0E941C1C73 -:103E900010929E0210929D02EFECF2E086E0DF01AC -:103EA0001D928A95E9F7C1CF2C960FB6F894DEBF24 -:103EB0000FBECDBFDF91CF911F910895EF92FF927A -:103EC0000F931F93CF93DF938C01009709F46CC07D -:103ED000F12CEE24E394E8012196F80184918437D3 -:103EE00040F4843008F051C0813081F0823019F103 -:103EF0005BC0853709F444C0A8F19CE7980F903760 -:103F000008F052C08F770E94391941C00E5F1F4FD1 -:103F1000FE01C49180E28C0F883048F4C7708E2D6A -:103F200001C0880FCA95EAF70E943A2214C08C2F6C -:103F30000E9471182DC00E5F1F4FFE01C49180E2D8 -:103F40008C0F883058F4C7708E2D01C0880FCA9529 -:103F5000EAF70E9440220E9461221AC08C2F0E9420 -:103F6000391916C00E5F1F4FFE01C491CC2381F09A -:103F70008FE99FE00197F1F700C00000C150F6CF34 -:103F80000E5F1F4FFE01F49003C00E9471188E0156 -:103F90008F2D882309F49FCFEFE9FFE03197F1F7E8 -:103FA00000C000008150F5CFDF91CF911F910F919C -:103FB000FF90EF90089508956093D9027093DA020C -:103FC0008093DB029093DC020C94081C0F931F93E8 -:103FD0000091D9021091DA022091DB023091DC02CB -:103FE000DC01CB01802B912BA22BB32B8093D90228 -:103FF0009093DA02A093DB02B093DC021F910F9141 -:104000000C94081C0F931F930091D9021091DA02AF -:104010002091DB023091DC02DC01CB018023912373 -:10402000A223B3238093D9029093DA02A093DB02F8 -:10403000B093DC021F910F910C94081C0F931F93F7 -:104040000091D9021091DA022091DB023091DC025A -:10405000DC01CB0180279127A227B3278093D902C7 -:104060009093DA02A093DB02B093DC021F910F91D0 -:104070000C94081C1092D5021092D6021092D7020E -:104080001092D8020C94081C41E050E060E070E00F -:1040900004C0440F551F661F771F8A95D2F74093BF -:1040A000D5025093D6026093D7027093D8020C9435 -:1040B000081C41E050E060E070E004C0440F551F70 -:1040C000661F771F8A95D2F78091D5029091D6020C -:1040D000A091D702B091D802482B592B6A2B7B2B89 -:1040E0004093D5025093D6026093D7027093D802C2 -:1040F0000C94081C41E050E060E070E004C0440F04 -:10410000551F661F771F8A95D2F740955095609589 -:1041100070958091D5029091D602A091D702B0916E -:10412000D802482359236A237B234093D502509316 -:10413000D6026093D7027093D8020C94081C41E019 -:1041400050E060E070E004C0440F551F661F771F09 -:104150008A95D2F78091D5029091D602A091D7028C -:10416000B091D802482759276A277B274093D50268 -:104170005093D6026093D7027093D8020C94081C17 -:104180000F931F930091D5021091D6022091D70270 -:104190003091D802DC01CB01802B912BA22BB32BC9 -:1041A0008093D5029093D602A093D702B093D80201 -:1041B0001F910F910C94081C0F931F930091D5022F -:1041C0001091D6022091D7023091D802DC01CB01A8 -:1041D00080239123A223B3238093D5029093D60208 -:1041E000A093D702B093D8021F910F910C94081C92 -:1041F0000F931F930091D5021091D6022091D70200 -:104200003091D802DC01CB0180279127A227B32768 -:104210008093D5029093D602A093D702B093D80290 -:104220001F910F910C94081C0895CF92DF92EF928A -:10423000FF920F931F93CF93DF938C01C090D9020D -:10424000D090DA02E090DB02F090DC028091D5029F -:104250009091D602A091D702B091D802C82AD92A4B -:10426000EA2AFB2ACFE1D0E0D701C6010C2E04C018 -:10427000B695A795979587950A94D2F780FF06C0C3 -:10428000B8018C2F0E94B008019721F4219760F7A4 -:1042900080E001C08C2FDF91CF911F910F91FF9093 -:1042A000EF90DF90CF900895CF93DF93EC010E94C1 -:1042B0001521BE010E94B008DF91CF910895CB0176 -:1042C0000E94542108958091DD02859585958595FC -:1042D00008958091DD028770089598E0899F90018C -:1042E0001124262B2093DD020C9459202091DD020D -:1042F000809582238093DD02982F977069F430E0D7 -:10430000482F552747FD50952417350729F08595E7 -:10431000859585950C947A2008959091DD0297708B -:1043200081E009F480E0089590911501992321F02E -:1043300090911601911109C0209117013091180137 -:10434000F90132969FEF40E01FC0982F9695969501 -:1043500096959F3050F5E0911701F0911801E90F03 -:10436000F11D877021E030E0A90102C0440F551F04 -:104370008A95E2F7CA019181892B818308959F3F35 -:1043800039F04F5F4E3041F051915813F8CF0DC0C6 -:104390005111F7CF942FF5CF9F3F39F0F901E90F75 -:1043A000F11D97FDFA958283089508959091150166 -:1043B000992321F090911601911109C020911701C4 -:1043C00030911801F9013296205F3F4F1FC0982F9E -:1043D0009695969596959F30F0F4E0911701F0919F -:1043E0001801E90FF11D877021E030E0A90102C03A -:1043F000440F551F8A95E2F7CA0180959181892360 -:10440000818308953196E217F30729F0908198137C -:10441000F9CF1082F7CF089581E090E0E091170185 -:10442000F0911801E80FF91F108201968031910573 -:10443000A9F708959091F102892B8093F1020895D4 -:1044400080959091F10289238093F1020895109252 -:10445000F10208959091F002892B8093F002089563 -:1044600080959091F00289238093F0020895109234 -:10447000F00208959091EF02892B8093EF02089546 -:1044800080959091EF0289238093EF020895109216 -:10449000EF0208958093DE0208951092DE020895DF -:1044A0008091170190911801FC0131969C01205FC9 -:1044B0003F4F80E0919191118F5FE217F307D1F7A1 -:1044C0000895E0911701F09118018091F102808325 -:1044D000E0911701F091180190818091F002892BF1 -:1044E0008083E0911701F091180190818091EF0293 -:1044F000892B80838091DE02882361F0E09117018F -:10450000F09118019081892B80830E9450228111A3 -:104510001092DE0280911701909118010C944617B9 -:1045200020E0009739F0AC014150510984239523D4 -:104530002F5FF7CF822F089580911303843039F1D4 -:104540001092F30220E488E190E00FB6F894A89569 -:10455000809360000FBE2093600080E00E941C03E7 -:1045600080E00E944A0983B7817F846083BF83B75C -:10457000816083BF7894889583B78E7F83BF88E1FD -:104580000FB6F89480936000109260000FBE0895FB -:104590000895089580E00E941C030E94C8220E9492 -:1045A000A5090E94C9220E942A0A91E0811101C036 -:1045B00090E0892F08950E941C1C80E00E941C033B -:1045C0000E9444280E943A170C944A091F920F92A5 -:1045D0000FB60F9211248F939F93AF93BF93809147 -:1045E000F302811113C08091F4029091F502A09121 -:1045F000F602B091F7024196A11DB11D8093F4021D -:104600009093F502A093F602B093F702BF91AF9199 -:104610009F918F910F900FBE0F901F90189582E081 -:1046200084BD93E095BD9AEF97BD80936E00089589 -:104630002FB7F8948091F4029091F502A091F602C0 -:10464000B091F7022FBF0895CF92DF92EF92FF92C1 -:104650000F931F932FB7F8944091F4025091F502F5 -:104660006091F6027091F7022FBF6A017B01EE2480 -:10467000FF248C0120E030E0C016D106E206F306EC -:1046800010F4415051099A01281B390BC9011F919F -:104690000F91FF90EF90DF90CF9008951F920F92AF -:1046A0000FB60F9211248F939F93AF93BF93809176 -:1046B000F4029091F502A091F602B091F7020196F2 -:1046C000A11DB11D8093F4029093F502A093F60210 -:1046D000B093F702BF91AF919F918F910F900FBE52 -:1046E0000F901F9018950E943714F8942FEF87EAC7 -:1046F00091E6215080409040E1F700C0000087E043 -:1047000090EBDC0180931E0390931F03A093200382 -:10471000B09321039CE088E10FB6F894A8958093AC -:1047200060000FBE90936000FFCF0E94D4238111E0 -:1047300002C00E94B0230E94DF238093F2020E94F5 -:10474000E72380931C0387FB882780F98093160159 -:104750000E94E323682F70E080E090E00C94DC1F5F -:104760006DEE7EEF80E090E00E94FB2C60E082E046 -:1047700090E00E94E92C60E083E090E00E94E92C48 -:1047800060E084E090E00E94E92C60E085E090E049 -:104790000E94E92C60E086E090E00E94E92C6FEF37 -:1047A00087E090E00C94E92C80E090E00E94E32CFC -:1047B00021E08D3E9E4F09F020E0822F089582E097 -:1047C00090E00C94DB2C83E090E00C94DB2C84E0F4 -:1047D00090E00C94DB2C682F84E090E00C94E92CA2 -:1047E00086E090E00C94DB2C682F86E090E00C943F -:1047F000E92C87E090E00C94DB2C682F87E090E0B8 -:104800000C94E92C8091FA0280FF0BC060911C018E -:1048100085E0689FB001112475956795759567953A -:104820002BC081FF09C060911C0185E0689FB00129 -:1048300011247595679520C082FF07C060911C0107 -:1048400085E0689FB001112417C09091FB02992365 -:10485000D1F060911B01961788F720911C0185E02B -:10486000289F90011124929FA001939F500D112425 -:1048700070E0CA010E94C12C6038710540F46115D6 -:10488000710539F002C065E070E0862F08958FE76A -:10489000089581E008958091FA0280FF08C0609138 -:1048A0001A0170E0759567957595679521C081FF30 -:1048B00006C060911A0170E07595679519C082FF76 -:1048C00004C060911A0170E010C09091FB0299231E -:1048D000C1F0609119019617A0F780911A01899F84 -:1048E000C001112470E00E94C12C6038710528F4C9 -:1048F0006115710521F0862F08958FE7089581E0F5 -:10490000089561E070E0F4CF803F21F40E9402241A -:10491000819504C0813F29F40E9402248093FE0205 -:104920000895823F21F40E940224819504C0833FB0 -:1049300029F40E9402248093FD020895893F19F40E -:104940000E944B2405C08A3F31F40E944B2481957C -:104950008093FF0208958B3F21F40E944B248195A0 -:1049600004C08C3F29F40E944B24809300030895D7 -:10497000843F21F48091FC02816017C0853F21F4BF -:104980008091FC02826011C0863F21F48091FC027C -:1049900084600BC0873F21F48091FC02886005C0D1 -:1049A000883F31F48091FC0280618093FC0208957D -:1049B0008D3F21F48091FA0281600BC08E3F21F47B -:1049C0008091FA02826005C08F3F29F48091FA023B -:1049D00084608093FA020895803F39F48091FE024A -:1049E00087FF6CC01092FE0269C0813F29F480915C -:1049F000FE021816BCF362C09091FD02823F29F4BA -:104A000097FF5CC01092FD0259C0833F19F419163C -:104A1000CCF354C0893F41F48091FF0218160CF08A -:104A20004DC01092FF024AC08A3F29F48091FF02D4 -:104A300087FF44C0F6CF8B3F39F48091000387FF96 -:104A40003DC0109200033AC08C3F29F480910003CE -:104A50001816BCF333C0843F21F48091FC028E7F92 -:104A600017C0853F21F48091FC028D7F11C0863FE5 -:104A700021F48091FC028B7F0BC0873F21F4809151 -:104A8000FC02877F05C0883F31F48091FC028F7E55 -:104A90008093FC0213C08D3F21F48091FA028E7F37 -:104AA0000BC08E3F21F48091FA028D7F05C08F3FAD -:104AB00029F48091FA028B7F8093FA028091FD02A3 -:104AC00081110EC08091FE0281110AC08091FF0207 -:104AD000811106C080910003811102C01092FB0277 -:104AE00008958CEF92E00E9451170E941823909332 -:104AF000F9028093F80208951F93CF93DF9380917A -:104B0000F8029091F9020E942423AC019091FB02DB -:104B1000992321F020911D0130E006C020911E0153 -:104B20008AE0289F900111244217530708F486C099 -:104B30008091FD02C091FE02D091FF02109100030E -:104B4000811107C0C11176C0D11174C0111172C09A -:104B500075C09F3F19F09F5F9093FB02181624F4D5 -:104B60000E9402248093FD028091FD0287FF05C010 -:104B70000E94022481958093FD021C1624F40E9459 -:104B800002248093FE028091FE0287FF05C00E94EE -:104B9000022481958093FE026091FD02662339F123 -:104BA000C091FE02CC2319F1772767FD7095872FFE -:104BB000972F0E94E32923E333E343E35FE30E945B -:104BC000F32A0E94B0296093FD026C2F772767FDBE -:104BD0007095872F972F0E94E32923E333E343E364 -:104BE0005FE30E94F32A0E94B0296093FE021D1623 -:104BF00024F40E944B248093FF028091FF0287FFE0 -:104C000005C00E944B2481958093FF02111624F465 -:104C10000E944B24809300038091000387FF05C00E -:104C20000E944B24819580930003DF91CF911F91C7 -:104C30000C9471259F3F09F08ECF96CFDF91CF91D5 -:104C40001F910895ECEFF2E085E0DF011D928A9557 -:104C5000E9F71092FB021092FA020895833081F175 -:104C600028F4813059F08230D1F00895853009F46C -:104C700049C0B8F1863009F456C0089580911E01EC -:104C8000262F30E0280F311D2F3F310524F4680F07 -:104C900060931E0108958FEF80931E010895809107 -:104CA0001D01262F30E0280F311D2F3F310524F440 -:104CB000680F60931D0108958FEF80931D01089583 -:104CC00080911C01262F30E0280F311D2F3F310528 -:104CD00024F4680F60931C0108958FEF80931C01EA -:104CE000089580911B01262F30E0280F311D2F3FA2 -:104CF000310524F4680F60931B0108958FEF8093B2 -:104D00001B01089580911A01262F30E0280F311DD4 -:104D10002F3F310524F4680F60931A0108958FEF37 -:104D200080931A01089580911901262F30E0280FF1 -:104D3000311D2F3F310524F4680F60931901089548 -:104D40008FEF809319010895833011F128F4813099 -:104D500049F0823091F00895853081F120F186305C -:104D6000C1F1089580911E01681720F4861B80937D -:104D70001E01089510921E01089580911D0168176B -:104D800020F4861B80931D01089510921D01089543 -:104D900080911C01681720F4861B80931C010895E4 -:104DA00010921C01089580911B01681720F4861B46 -:104DB00080931B01089510921B01089580911A01A0 -:104DC000681720F4861B80931A01089510921A0127 -:104DD000089580911901681720F4861B80931901AA -:104DE00008951092190108950F931F93873208F0C8 -:104DF00048C08E3108F08DC0803109F477C008F5C5 -:104E0000873009F461C068F4863009F09DC0809154 -:104E1000F202817F8E7F8093F20281E08093020311 -:104E200094C08B3009F489C08E3009F08DC0809118 -:104E3000F20282FB222720F991E0922790FB82F96F -:104E40005EC0863109F479C060F4813109F07CC01C -:104E50000E941C1C9091160181E089278093160105 -:104E60006CC0893109F469C08B3109F06DC0809143 -:104E7000F20281FB222720F991E0922790FB81F931 -:104E80003EC0883309F459C050F4893209F457C040 -:104E9000853309F454C0873209F451C055C08334B6 -:104EA00009F44DC028F48A3308F44EC0895332C047 -:104EB000883409F049C00E941C1C0E945A0A0E94B2 -:104EC00021040E94732339C09091F202892F8095AA -:104ED000817080FB90F929F0966098609093F202BF -:104EE00034C0997F977F9093F20227C08091F2029D -:104EF00083FB222720F991E0922790FB83F980938E -:104F0000F2029923D1F08091F20281608093F20243 -:104F100014C08D5141E050E060E070E08A019B01D7 -:104F200004C0000F111F221F331F8A95D2F7C90139 -:104F3000B8010E94DC1F0E941C1C81E006C061E0D9 -:104F400070E080E090E0F5CF80E01F910F91089530 -:104F500080E0089580E00895CF93C82F80910203E8 -:104F6000813069F018F08230C9F184C0E0911701F6 -:104F7000F09118018081823209F07EC007C0E09173 -:104F80001701F09118018081823261F48C2F0E9408 -:104F9000A827811104C08C2F0E94F4261DC081E037 -:104FA00090E01AC08C2F0E94AA27811114C0C4312E -:104FB00079F048F4CB3079F0C03109F061C082E07B -:104FC0008093020308C0C93219F0C83321F058C0D9 -:104FD0001092020355C081E0817054C0C93291F132 -:104FE00020F5C43179F1B0F4C73009F047C08EE143 -:104FF00080931E0182E380931D018AE080931C014F -:1050000084E180931B0188E080931A0188E28093F9 -:10501000190134C0CE51C63088F5EC2FF0E0EA54C7 -:10502000FE4F80818093010329C0CE34E9F020F443 -:10503000CB3421F56AE013C0C13579F0C235F1F403 -:1050400061E00DC080910103882319F010920103E3 -:1050500015C081E08093020315C061E006C0809115 -:1050600001030E942E260AC06AE0809101030E947B -:10507000A42604C01092020380E004C081E002C0B4 -:1050800080E0AACFCF9108950E94D423811102C05D -:105090000E94B0230E94F02380931D0380FF02C072 -:1050A000869501C080E00C941C0380911D03982F0D -:1050B0009695292F30E0233031054CF49F5F990FEE -:1050C0008170892B816080931D030E94F42380915D -:1050D0001D0386950C941C0380911D03982F9695B3 -:1050E00091F09158990F8170892B80931D038E7FC9 -:1050F00091E009F490E080911D0390FB80F980938A -:105100001D030E94F42380911D0386950C941C03BB -:1051100080911D03982F909590FB80F980931D033B -:105120000E94F42380911D0380FF02C0869501C078 -:1051300080E00C941C0390911D03892F86958F5F4E -:105140008F779170843028F4880F892B80931D030A -:1051500002C090931D0380911D038E7F91E009F49E -:1051600090E080911D0390FB80F980931D030E94C5 -:10517000F42380911D0386950C941C0320911D033C -:10518000922F96958927982F990F822F8170892BBE -:1051900080931D038E7F91E009F490E080911D03C0 -:1051A00090FB80F980931D030E94F42380911D03DE -:1051B00086950C941C0380911D0386950895505884 -:1051C000BB27AA270ED0D1C1C2D130F0C7D120F061 -:1051D00031F49F3F11F41EF4B7C10EF4E095E7FBE4 -:1051E0009FC1E92FD3D180F3BA17620773078407F1 -:1051F000950718F071F49EF5EBC10EF4E0950B2EB7 -:10520000BA2FA02D0B01B90190010C01CA01A00118 -:105210001124FF27591B99F0593F50F4503E68F173 -:105220001A16F040A22F232F342F4427585FF3CFB4 -:10523000469537952795A795F0405395C9F77EF485 -:105240001F16BA0B620B730B840BBAF09150A1F0CE -:10525000FF0FBB1F661F771F881FC2F70EC0BA0F54 -:10526000621F731F841F48F4879577956795B795DC -:10527000F7959E3F08F0B3CF9395880F08F09927D4 -:10528000EE0F97958795089527D108F481E008954A -:105290000CD06BC163D140F05AD130F021F45F3FA4 -:1052A00019F03EC1511195C14FC170D198F39923A6 -:1052B000C9F35523B1F3951B550BBB27AA276217DA -:1052C0007307840738F09F5F5F4F220F331F441F1F -:1052D000AA1FA9F333D00E2E3AF0E0E830D0915057 -:1052E0005040E695001CCAF729D0FE2F27D0660F44 -:1052F000771F881FBB1F261737074807AB07B0E883 -:1053000009F0BB0B802DBF01FF2793585F4F2AF098 -:105310009E3F510568F004C15CC15F3FECF3983ECD -:10532000DCF3869577956795B795F7959F5FC9F7F5 -:10533000880F911D9695879597F90895E1E0660F7E -:10534000771F881FBB1F621773078407BA0720F0F7 -:10535000621B730B840BBA0BEE1F88F7E095089560 -:1053600004D06894B11135C1089518D188F09F57C1 -:1053700090F0B92F9927B751A0F0D1F0660F771FA1 -:10538000881F991F1AF0BA95C9F712C0B13081F081 -:105390001FD1B1E008951CC1672F782F8827B85F0F -:1053A00039F0B93FCCF3869577956795B395D9F7E2 -:1053B0003EF490958095709561957F4F8F4F9F4FEC -:1053C0000895E89409C097FB3EF4909580957095F8 -:1053D00061957F4F8F4F9F4F9923A9F0F92F96E941 -:1053E000BB279395F695879577956795B795F111B6 -:1053F000F8CFFAF4BB0F11F460FF1BC06F5F7F4F53 -:105400008F4F9F4F16C0882311F096E911C0772364 -:1054100021F09EE8872F762F05C0662371F096E86D -:10542000862F70E060E02AF09A95660F771F881F3C -:10543000DAF7880F9695879597F9089588D018F030 -:1054400011F08CD038F480C0C4C0E92F9FD0B0F3E5 -:105450005523C9F3E7FB6217730784079507A8F183 -:1054600099F3E92FFF2788232AF03197660F771FDA -:10547000881FDAF7952F5527442332F0915050407A -:10548000220F331F441FD2F7BB27E91BF50B621B0A -:10549000730B840BB109C1F222F4620F731F841FD6 -:1054A000B11D31972AF0660F771F881FBB1FEFCF02 -:1054B000915050405AF041F0882332F0660F771F28 -:1054C000881F91505040C1F7939530C086957795CD -:1054D00067959F5FD9F7F8CF990F0008550FAA0B72 -:1054E000E0E8FEEF16161706E807F907C0F01216F7 -:1054F0001306E407F50798F0621B730B840B950BFA -:1055000039F40A2661F0232B242B252B21F408954E -:105510000A2609F4A140A6958FEF811D811D0895EB -:1055200097F99F6780E870E060E008959F3F31F051 -:10553000915020F4879577956795B795880F911DC1 -:105540009695879597F908959FEF80EC089500242C -:105550000A941616170618060906089500240A94D8 -:1055600012161306140605060895092E0394000C5E -:1055700011F4882352F0BB0F40F4BF2B11F460FFED -:1055800004C06F5F7F4F8F4F9F4F089557FD905816 -:10559000440F551F59F05F3F71F04795880F97FBF7 -:1055A000991F61F09F3F79F08795089512161306B1 -:1055B0001406551FF2CF4695F1DF08C016161706E0 -:1055C0001806991FF1CF8695710561050894089515 -:1055D000E894BB2766277727CB0197F908957CDFEE -:1055E00008F48FEF08950BD0C0CFB1DF28F0B6DFFD -:1055F00018F0952309F094CFA7CF1124EACFC6DF86 -:10560000A0F3959FD1F3950F50E0551F629FF001D5 -:10561000729FBB27F00DB11D639FAA27F00DB11D2E -:10562000AA1F649F6627B00DA11D661F829F2227B7 -:10563000B00DA11D621F739FB00DA11D621F839F3E -:10564000A00D611D221F749F3327A00D611D231F14 -:10565000849F600D211D822F762F6A2F11249F5762 -:1056600050408AF0E1F088234AF0EE0FFF1FBB1F85 -:10567000661F771F881F91505040A9F79E3F510524 -:1056800070F04ECFA6CF5F3FECF3983EDCF38695EB -:1056900077956795B795F795E7959F5FC1F7FE2BCF -:1056A000880F911D9695879597F90895FA01EE0F49 -:1056B000FF1F30962105310599F16115710561F4DF -:1056C0008038BFE39B0749F168949038810561F009 -:1056D0008038BFEF9B0741F0992342F5FF3FE1057A -:1056E0003105210511F1E8940894E795D901AA2321 -:1056F00029F4AB2FBE2FF85FD0F310C0FF5F70F41A -:10570000A695E0F7F73950F019F0FF3A38F49F7793 -:105710009F930CD00F9007FC905808953EF014CF43 -:1057200060E070E080E89FE308954FE79F775F9324 -:105730004F933F932F939ED02F913F914F915F9125 -:1057400052DF05C019F40EF0EBCE42CFFDCE26DFBE -:10575000C8F39638C0F707F80F92E8942BE33AEABB -:1057600048EB5FE74EDF0F920F920F924DB75EB797 -:105770000F92C0D0EAE0F1E016D04F915F91EF9127 -:10578000FF91E595EE1FFF1F49F0FE57E0684427A3 -:10579000EE0F441FFA95E1F74195550B32D00F906B -:1057A00007FE26C00895DF93CF931F930F93FF92B8 -:1057B000EF92DF927B018C01689405C0DA2EEF0135 -:1057C0001EDFFE01E894A5912591359145915591F3 -:1057D000AEF3EF0106DDFE019701A801DA9479F737 -:1057E000DF90EF90FF900F911F91CF91DF9108957F -:1057F0009B01AC0160E070E080E89FE349CD90CE72 -:1058000095CECCDEE8F39923D9F3940F511DBBF369 -:105810009150504094F059F0882332F0660F771F72 -:10582000881F91505040C1F79E3F510544F7880FA3 -:10583000911D9695879597F908955F3FACF0983E36 -:105840009CF0BB27869577956795B79508F4B1606E -:105850009395C1F7BB0F58F711F460FFE8CF6F5F66 -:105860007F4F8F4F9F4FE3CFB4CE0EF05FCE6CCE05 -:10587000689456CE93DEC8F39923D1F3C6F3DF9331 -:10588000CF931F930F93FF92C92FDD2788232AF010 -:105890002197660F771F881FDAF720E030E040E895 -:1058A0005FEB9FE3883920F0803E30F021968F77C0 -:1058B00087DCE2E3F1E003C083DCEFE5F1E073DFD6 -:1058C0008B01BE01EC01FB2E6F5771097595771F97 -:1058D000880B990B78DD28E132E741E35FE38FDE47 -:1058E000AF2D9801AE01FF900F911F91CF91DF91E5 -:1058F00078DC3BCEFA01DC01AA0FBB1F9B01AC0197 -:10590000BF5728F422273327442750781FC0B751A8 -:1059100088F4AB2F0024469537952795011CA39555 -:10592000D2F3002069F0220F331F441FB395DAF33E -:105930000DD045CC61307105A0E88A07B94630F436 -:105940009B01AC016627772788279078309621F055 -:1059500020833183428353830895AA1BBB1B51E1EB -:1059600007C0AA1FBB1FA617B70710F0A61BB70BCF -:10597000881F991F5A95A9F780959095BC01CD0174 -:10598000089597FB072E16F4009407D077FD09D0F1 -:105990000E94AD2C07FC05D03EF4909581959F4F59 -:1059A0000895709561957F4F0895EE0FFF1F059044 -:1059B000F491E02D0994F999FECF92BD81BDF89A3A -:1059C000992780B50895A8E1B0E042E050E00C943A -:1059D000032D262FF999FECF92BD81BDF89A01972C -:1059E00000B4021639F01FBA20BD0FB6F894FA9A27 -:1059F000F99A0FBE08950196272F0E94EA2C0C9465 -:105A0000E92CDC01CB01FC01F999FECF06C0F2BD07 -:105A1000E1BDF89A319600B40D9241505040B8F76C -:065A20000895F894FFCF89 -:105A2600640007000CFF0000003F643E10CC10A984 -:105A360010751041100101DF022808140A321E00F9 -:105A460002040507090B0C0E1011131517181A1C62 -:105A56001D1F2123242628292B2D2F30323435379C -:105A6600393B1F0F03764F5F6F7F496943790959A9 -:105A760053633149803F5D8B803FF8BF803FCAE169 -:105A8600803F73ED803FCAE1803FF8BF803F5D8B6A -:105A9600803F3149803F0000803FF16D7F3F75EACE -:105AA6007E3F4C827E3F833F7E3F84287E3F833FFE -:105AB6007E3F4C827E3F75EA7E3FF16D7F3F000060 -:105AC600803F3F4D36394305F604C00487041A0467 -:105AD60033044C04650401020304050607080900A3 -:00000001FF diff --git a/keyboards/planck/keymaps/cbbrowne/.gitignore b/keyboards/planck/keymaps/cbbrowne/.gitignore deleted file mode 100644 index 0cf0c6cc5..000000000 --- a/keyboards/planck/keymaps/cbbrowne/.gitignore +++ /dev/null @@ -1 +0,0 @@ -compiled.hex diff --git a/keyboards/planck/keymaps/charlie/compiled.hex b/keyboards/planck/keymaps/charlie/compiled.hex deleted file mode 100644 index 335b49d89..000000000 --- a/keyboards/planck/keymaps/charlie/compiled.hex +++ /dev/null @@ -1,1445 +0,0 @@ -:100000000C947D020C94C1020C94C1020C94C102A8 -:100010000C94C1020C94C1020C94C1020C94C10254 -:100020000C94C1020C94C1020C945F140C94311511 -:100030000C9493220C94C1020C94C1020C94C10242 -:100040000C94C1020C9423030C94C1020C94C102C1 -:100050000C94C1020C94FB220C94C1020C94C102BA -:100060000C94C1020C94C1020C94C1020C94C10204 -:100070000C94C1020C94C1020C94C1020C94C102F4 -:100080000C94D40A0C94C1020C94C1020C94C102C9 -:100090000C94C1020C94C1020C94C1020C94C102D4 -:1000A0000C94C1020C94C1020C94C1029E15C0159F -:1000B000AE16C015AE1605162816AE167D1690168D -:1000C0007A197A19A919A919E819081A5E1B5E1B71 -:1000D000131A5E1BC31AC31A2A1B331B5E1B581B41 -:1000E000D01AD01AD01AD01AD01AD01AD01AD01AC0 -:1000F000D01AD01AD01AD01AD01AD01AD01AD01AB0 -:10010000E01AEE1AF51AFC1A061B07634236B79B73 -:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 -:100120005763BD6DEDFD753EF6177231BF000000DF -:10013000803F08000000BE922449123EABAAAA2AC2 -:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD -:1001500000000000BF000000803F00000000000819 -:100160004178D3BB4387D1133D190E3CC3BD4282B6 -:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 -:10018000FFBE01C4FF7F3F00000000000000000030 -:1001900000000000000000010204060A0F17202CD6 -:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 -:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF -:1001C0000201000000000000000000000000018C9F -:1001D000028CF1A242070C0310022A041B074507F8 -:1001E0002D010B0116013E033B013B0327010B03CD -:1001F0001603400741071B032D022A032E021D018F -:100200001C011501290014001A0008001500170030 -:100210001C0018000C001200130002202A00040029 -:100220001600070009000A000B000D000E000F0069 -:10023000330034002B001D001B00060019000500D0 -:100240001100100036003700380028004C00E00094 -:100250000000E100E2002C000000500051005200BC -:100260004F0000004C0027001E001F00200021004E -:1002700022002300240025002600012012000A008D -:100280001600180017001B207000430044004000B7 -:10029000410042002B000420052006203A000720E0 -:1002A0006D006E0072006F0071000920360037008B -:1002B00015000B2003202C000C203B0008203C00E4 -:1002C00069000000290019201A2000000000000029 -:1002D000000000000000000000000000000000001E -:1002E00000000000000000000000000000001320DB -:1002F00014201520060000001620052000001720FD -:1003000000000000000000000D2000000E200F2063 -:100310001020112003202C00122000000000730088 -:100320000000000028035400680065002000500011 -:100330006C0061006E0063006B0020004B006500E4 -:10034000790062006F0061007200640000002C03FD -:100350004F007200740068006F006C0069006E004E -:1003600065006100720020004B00650079006200AA -:100370006F00610072006400730000000403090450 -:1003800009026D00040100A0FA0904000001030144 -:100390000100092111010001223F00070581030826 -:1003A000000A0904010001030102000921110100F2 -:1003B00001224D000705820308000A09040200011A -:1003C0000300000009211101000122360007058306 -:1003D0000308000A090403000103000000092111B9 -:1003E00001000122390007058403100001120110E9 -:1003F0000100000008EDFE6060010001020001053F -:10040000010906A101050719E029E7150025019555 -:1004100008750181020508190129059505750191E5 -:10042000029501750391010507190029771500252B -:1004300001957875018102C005010980A10185023D -:1004400016010026B7001A01002AB70075109501A1 -:100450008100C0050C0901A1018503160100269C3D -:10046000021A01002A9C02751095018100C0050145 -:100470000902A1010901A1000509190129051500B9 -:10048000250195057501810295017503810105011D -:10049000093009311581257F9502750881060938D3 -:1004A0001581257F950175088106050C0A3802150E -:1004B00081257F950175088106C0C005010906A147 -:1004C00001050719E029E715002501950875018147 -:1004D0000295017508810105081901290595057521 -:1004E0000191029501750391010507190029FF1576 -:1004F0000025FF950675088100C011241FBECFEFAF -:10050000DAE0DEBFCDBF04B603FE24C080911E0337 -:1005100090911F03A0912003B09121038730904B4D -:10052000A740B04BB9F410921E0310921F03109213 -:1005300020031092210314BE84B7877F84BF88E113 -:100540000FB6F89480936000109260000FBEE0E058 -:10055000F8E3099511E0A0E0B1E0E0E8F9E502C0B8 -:1005600005900D92A03CB107D9F713E0A0ECB1E0E3 -:1005700001C01D92AE31B107E1F70E94A5110C94A4 -:10058000BE2C0C9400000895089581E0089508950C -:100590000C94C4020C94C5020C94C7020E948828D3 -:1005A00023E030E0281B3109220F2093C401089575 -:1005B000282F2F9880918000211108C0877F809379 -:1005C000800010928D0010928C001BC08860809378 -:1005D0008000233019F48FEF9FEF0FC083E090E08D -:1005E000821B9109880F991F2FEF3FEFA90102C0CD -:1005F000569547958A95E2F7CA0190938D008093AE -:100600008C000C94CE020E94CE0284E08093C30141 -:100610001092C0010895279A2F988FEF9FEF909323 -:100620008700809386008AE08093800089E1809330 -:1006300081000E94F1270C9403030E940B036E9A21 -:10064000769A0C94C3021F920F920FB60F92112448 -:100650002F933F938F939F93EF93FF93E091C1016B -:10066000F091C201CF0101969093C2018093C10124 -:100670000090C30102C0F695E7950A94E2F7EF7384 -:100680008091C001823019F4E03251F404C081300D -:1006900039F4EF3329F480916F008D7F80936F00E0 -:1006A000F0E0E457FE4FE49121E031E0E29FC00129 -:1006B000E39F900D11240090C40102C09695879588 -:1006C0000A94E2F790938D0080938C00FF91EF9154 -:1006D0009F918F913F912F910F900FBE0F901F9080 -:1006E000189581E008950C94710308950C941D03EE -:1006F00080911502882309F448C08091D10190911E -:10070000D201009779F40E94C5229093D201809380 -:10071000D1018091D30190E0009771F48091D401D0 -:1007200090E00AC00E94D122209100013091010185 -:100730002817390740F329C00197880F991F880FA0 -:10074000991FFC01EB52FE4F608171818281938180 -:100750000E943A0AE091D30184E0E89FF00111245D -:10076000EB52FE4F60817181828193814FE050E0B6 -:100770000E94F20D8091D30190E001966091D40126 -:1007800070E00E946E2C8093D3010C94C8021092EA -:1007900017020C94070A0895089581E080931702C8 -:1007A0000C94CC03089508958F929F92AF92BF92BC -:1007B000EF92FF920F931F93CF93DF93CDB7DEB7E6 -:1007C000A3970FB6F894DEBF0FBECDBF7C01FC012E -:1007D00000811181C8010E94C220B8010E94D90580 -:1007E0008C01B7010E947303882309F4CCC1003245 -:1007F000F0E51F0741F4F7018281882309F458C00E -:100800000E94560EC0C10132F0E51F0741F4F70106 -:100810008281882309F44CC00E945F0EB4C1023269 -:10082000F0E51F0751F4F7018281882309F440C0E5 -:100830000E94520E8111F0CFE3CF0332F0E51F0783 -:1008400039F4F7018281882399F10E94CD039BC17D -:100850000432F0E51F0739F4F7018281882341F162 -:100860000E94C70390C10532F0E51F0749F4F70164 -:1008700082818823E9F0809117028111F1CFE5CFC1 -:100880000632F0E51F0739F4F7018281882381F0F1 -:100890000E94660E0AC00732F0E51F0749F4F7010F -:1008A0008281882329F00E94710E0E94D3036BC1BC -:1008B00080911702811105C0F70182818111CFC09B -:1008C00018C1003E110579F4F7018281882309F4EB -:1008D0004DC00E94070A81E0809316021092150213 -:1008E0001092D40150C1023E110559F4F7018281E2 -:1008F0008823E1F10E94070A109216021092150255 -:1009000042C1033E110591F4F7018281882371F100 -:100910000E94070A1092160281E08093150210923D -:10092000D3011092D2011092D1012DC102351105CF -:1009300059F4F7018281882309F425C180910001CF -:10094000909101010A970DC00135110579F4F70165 -:100950008281882309F417C18091000190910101DF -:100960000A9690930101809300010DC1409104010A -:1009700083E2EFE1F1E0DE01119601900D928A959C -:10098000E1F7F701808121E030E02C0F3D1F280FB7 -:10099000311DC9012091020130910301FC01E20FD8 -:1009A000F31F6081772767FD7095640F711D88279D -:1009B00077FD8095982F0E94902920E030E040E458 -:1009C00051E40E94F5284B015C01F701218184E08C -:1009D00090E0821B9109BC01882777FD8095982FB4 -:1009E0000E9490299B01AC01C501B4010E948D2891 -:1009F0009B01AC0160E070E080E090E40E94032B7A -:100A000020E030E04CED50E40E94A02A4B015C0154 -:100A1000F70182818823D1F04FE050E0C501B40195 -:100A20000E94F20D809116028823A1F08091D401DA -:100A300024E0829FF0011124EB52FE4F80829182CC -:100A4000A282B3828F5F8093D40104C0C501B40138 -:100A50000E943A0A0F3F110508F02ECF94C08091F2 -:100A6000D00181111FC0043130E5130709F051C0D6 -:100A70000E94750381E08093D0010E94C52290936B -:100A8000CF018093CE011092C7011092C90110923C -:100A9000C8011092CB011092CA011092CD011092A0 -:100AA000CC0171C08091CE019091CF010E94D122E2 -:100AB000883C910570F48091C701E82FF0E0EE0FBB -:100AC000FF1FE853FE4F118300838F5F8093C701A0 -:100AD0005AC0043880E5180721F00538104501F1A7 -:100AE0003AC0F7018281882341F01092C50182E06B -:100AF0001EC0043830E5130759F58091C5018111F6 -:100B000006C086E20E941E1886E20E94E61882E075 -:100B10001CC00438F0E51F0741F305381045D9F42F -:100B2000F7018281882331F01092C60180E20E9491 -:100B3000351929C08091C601811106C087E20E9443 -:100B40001E1887E20E94E61880E20E943C191BC032 -:100B50000538104529F381E08093C5018093C601D3 -:100B6000C701A3960FB6F894DEBF0FBECDBFDF91CD -:100B7000CF911F910F91FF90EF90BF90AF909F90FA -:100B80008F900C94CA0280E0A3960FB6F894DEBF53 -:100B90000FBECDBFDF91CF911F910F91FF90EF90CE -:100BA000BF90AF909F908F90089580E090E008955F -:100BB00008959CE0799FF001112490E3899FE00D56 -:100BC000F11D1124E60FF11DEE0FFF1FEC5FFD4F2D -:100BD000859194910895880F991FFC01E45BFF4F64 -:100BE000859194910895880F991FFC01E453FE4F5D -:100BF0008591949108950F931F93CF93DF93EC0108 -:100C0000811521E39207A0F5C11580E3D80708F00C -:100C1000D7C0C83ED105D8F4C03ED10508F007C200 -:100C2000C83AD10578F4C53AD10508F06AC0C13098 -:100C3000D10509F463C008F4F7C1C430D10508F048 -:100C4000F6C1F2C1CB3BD10508F466C0EDC1C115B8 -:100C500090E2D90708F0AFC0C11521E0D20708F033 -:100C6000E6C1C03FD10508F4DFC18E0110651FC287 -:100C7000C03880E5D80700F5C03790E5D90708F0FF -:100C8000A3C0C11520E5D20709F4ACC050F4CE01D1 -:100C9000905480319F4008F0C7C1DF708E01106A08 -:100CA00006C2C13080E5D80709F4AEC0C43190E572 -:100CB000D90708F4AFC0B8C1C33820E5D20709F49A -:100CC0008EC050F4C13890E5D90709F482C008F00D -:100CD00083C000E011EDEBC1C03181E5D80708F415 -:100CE000A3C1C11597E5D90708F436C1CE019057C5 -:100CF0008115904108F098C1DF7093C101E010E0C8 -:100D0000D6C1C53AD10509F494C1C63AD10509F056 -:100D100093C102E810E4CBC1C83AD10509F48FC1F0 -:100D2000C93AD10509F48EC1CA3AD10509F48DC179 -:100D3000CB3AD10509F48CC1CC3AD10509F48BC169 -:100D4000CD3AD10509F48AC1C03BD10509F489C166 -:100D5000CE3AD10509F488C1CF3AD10509F487C14B -:100D6000C13BD10509F486C1C23BD10509F485C157 -:100D7000C33BD10509F484C1C43BD10509F483C147 -:100D8000C53BD10509F482C1C63BD10509F481C137 -:100D9000C73BD10509F480C1C83BD10509F47FC127 -:100DA000C93BD10509F47EC1CA3BD10509F47DC117 -:100DB00000E014E47CC1CE019F700E94F30578C16D -:100DC000DD278E01106C73C1CF70DD278E01146D8D -:100DD0006EC100E010ED6BC100E012ED68C100E0F3 -:100DE00013ED65C10E94C91B0E94070A0E94CB0334 -:100DF0008FEF94E32CE0815090402040E1F700C059 -:100E000000000E94202353C18091F20281608093F0 -:100E1000F2024DC10E948123811102C00E945D2314 -:100E20000E94942390E090931D0380931C03C23092 -:100E300080E5D80721F480911C03816086C0C4300E -:100E400090E5D90721F480911C0382607EC0C630F2 -:100E500020E5D20721F480911C03846076C0C8305D -:100E600080E5D80719F480911C0327C0CA3090E5AB -:100E7000D90721F480911C03806167C0CC3020E544 -:100E8000D20721F480911C0380625FC0CE3080E5E0 -:100E9000D80721F480911C03806457C0C03190E5CD -:100EA000D90721F480911C0380684FC0C23120E52E -:100EB000D20729F480911C038460886046C0C33047 -:100EC00080E5D80721F480911C038E7F3EC0C53099 -:100ED00090E5D90721F480911C038D7F36C0C7307F -:100EE00020E5D20721F480911C038B7F2EC0C930EE -:100EF00080E5D80719F480911C0326C0CB3090E51B -:100F0000D90721F480911C038F7E1FC0CD3020E5CE -:100F1000D20721F480911C038F7D17C0CF3080E56C -:100F2000D80721F480911C038F7B0FC0C13190E55D -:100F3000D90721F480911C038F7707C0C331D045B6 -:100F400031F480911C038B7F877F80931C038091F9 -:100F50001C030E949823ABC08D2F99278F7099276F -:100F600081309105D9F49E012370332702C0880F88 -:100F7000991F2A95E2F79C688E0144E0000F111F2B -:100F80004A95E1F700271370802B912B53E0CC0F8B -:100F9000DD1F5A95E1F7C076DD272FC0823091051D -:100FA00031F4DC2FCC278E01016F106A80C08330B2 -:100FB000910569F4CE018370992701E010E002C029 -:100FC000000F111F8A95E2F7C8019C680FC084309A -:100FD0009105B9F4CE018370992701E010E002C0B9 -:100FE000000F111F8A95E2F7C8019A6823E0CC0F21 -:100FF000DD1F2A95E1F7C07ED7708C010C2B1D2BCD -:1010000056C08530910531F4DC2FCC278E01046F5A -:10101000106A4DC0069709F04AC0CF71DD27DC2F5A -:10102000CC278E01106243C000E010E040C08E016A -:101030003EC001E810E43BC003E810E438C002EE13 -:1010400014E435C009EE14E432C00AEE14E42FC0F3 -:1010500005EB14E42CC006EB14E429C007EB14E400 -:1010600026C00CEC14E423C00DEC14E420C003E80B -:1010700015E41DC00AE815E41AC002E915E417C01A -:1010800004E915E414C001E216E411C003E216E419 -:101090000EC004E216E40BC005E216E408C006E246 -:1010A00016E405C007E216E402C00AE216E4C8012D -:1010B000DF91CF911F910F9108959CE0799FF001EE -:1010C000112490E3899FE00DF11D1124E60FF11D1D -:1010D000EE0FFF1FEC5FFD4F85919491803E9105CF -:1010E000E0F4803C910558F58133910509F46FC017 -:1010F00048F48932910509F463C08A32910509F4F4 -:101100006DC072C089339105E9F082389105D1F044 -:101110008533910509F44DC067C0833E910581F187 -:1011200038F4803E9105B9F0823E9105D9F05CC05B -:10113000863E910561F1873E9105A1F155C00E945F -:10114000EB05089520911C0320FD02C021FF4CC037 -:1011500080EE90E049C080911C0380FFF9CF89E3C5 -:1011600090E042C080911C0382FF0EC080911C035E -:1011700084FF03C080E090E037C083EE90E034C08D -:1011800080911C0382FFF2CF82EE90E02DC080910F -:101190001C0383FF0BC080911C0384FDEBCF87EE03 -:1011A00090E022C080911C0383FFF5CF86EE90E093 -:1011B0001BC080911C0385FF07C089E290E014C02A -:1011C00080911C0385FFF9CF85E390E00DC08091ED -:1011D0001C0386FF07C08AE290E006C080911C03D2 -:1011E00086FFF9CF81E390E00E94FB0508950C94FF -:1011F000CC02E82FF0E0E25BFE4F8081E82FEF7039 -:10120000F0E082958F7021E030E0A90102C0440F28 -:10121000551F8A95E2F740A308950F931F93CF932C -:10122000DF9385B7806885BF85B7806885BFC3E0D9 -:10123000D0E001E010E0FE01E25BFE4F8081E82F8C -:10124000EF70F0E021A182958F70A80102C0440FD9 -:10125000551F8A95E2F7CA01822B81A38C2F0E9429 -:10126000F908219740F78BE090E061E070E0FC0125 -:10127000EE5BFE4F2081E22FEF70F0E042A122955D -:101280002F70DB0102C0AA0FBB1F2A95E2F79D0158 -:10129000242B22A3019758F7DF91CF911F910F9133 -:1012A0000C947603EF92FF920F931F93CF93DF93EB -:1012B00000E212E0C3E0EE24E394F12CD5E08C2FA1 -:1012C0000E94F9088BE090E040E050E0FC01EE5B0A -:1012D000FE4F6081E62FEF70F0E020A130E06295D4 -:1012E0006F7002C0359527956A95E2F720FD09C019 -:1012F0009701082E02C0220F331F0A94E2F7422BF7 -:10130000532B019718F7F801929182918F0184175E -:10131000950721F051834083D09305018C2F0E94C3 -:10132000F908C15060F68091050187FD2CC08150FD -:10133000809305018F3F39F08FE99FE00197F1F726 -:1013400000C0000020C080911E0290911F02909367 -:1013500027028093260280911C0290911D02909397 -:1013600025028093240280911A0290911B0290938F -:101370002302809322028091180290911902909387 -:101380002102809320020E94780381E0DF91CF91B7 -:101390001F910F91FF90EF900895E82FF0E0EE0F6E -:1013A000FF1FE05EFD4F80819181089508950F93A6 -:1013B0001F93CF9308E212E0C0E0F801929182916E -:1013C0008F010E943D22C80FF2E000321F07A9F7EB -:1013D0008C2FCF911F910F9108950E94812381112D -:1013E00002C00E945D230E94A623809307033E9AB9 -:1013F000809171008D7F8093710082E080939000D6 -:101400008AE18093910081E080932A02089580917F -:101410002A02811102C00E94ED0910927A021092F4 -:101420007902809171008D7F80937100809190008E -:101430008F738093900010923C0210923B021092A6 -:10144000730210927402109275021092760210923A -:10145000720210927102E1E5F2E0A1E4B2E01192B1 -:101460001192119211921D921D9282E0E137F807BC -:10147000B1F70895CF92DF92EF92FF920F931F93EF -:10148000CF93DF9320913B02222309F484C06B01A8 -:101490007C0180912A02811102C00E94ED0901E7BE -:1014A00012E0C7E0D0E0A7019601F8019291829185 -:1014B000729162918F010E94F128811131C0FE0169 -:1014C000EE0FFF1FEE0FFF1FEF5AFD4F108211822C -:1014D00012821382DE01AA0FBB1FAF5BBD4F1196B4 -:1014E0001C921E92C730D105E9F0219644815581A6 -:1014F000668177814083518362837383148215826E -:101500001682178212968D919C91139711969C9337 -:101510008E9313961C921E92129734961296E2CFD7 -:10152000219708F68091790290917A02019797FDB0 -:1015300005C090937A028093790204C010927A02D7 -:10154000109279028091790290917A02209177022B -:10155000309178022817390724F0109278021092FF -:101560007702892BC1F4809171008D7F8093710087 -:10157000809190008F73809390001092730210926C -:1015800074021092750210927602109272021092FA -:10159000710210923B02DF91CF911F910F91FF904A -:1015A000EF90DF90CF9008951F920F920FB60F9299 -:1015B00011244F925F926F927F928F929F92AF927F -:1015C000BF92CF92DF92EF92FF922F933F934F9370 -:1015D0005F936F937F938F939F93AF93BF93CF93BB -:1015E000DF93EF93FF9380913B02882309F49BC123 -:1015F000C0917902D0917A021C161D060CF093C19D -:1016000040902B0250902C0260902D0270902E0280 -:1016100020E030E0A901C301B2010E949C2A181603 -:101620000CF065C0C130D10509F452C08091770239 -:1016300090917802BE010E946E2C7C0190937802FA -:101640008093770280903D0290903E02A0903F02EE -:10165000B090400220E030E040E85FE3C501B40113 -:101660000E948D2860933D0270933E0280933F025A -:1016700090934002F701EE0FFF1FEE0FFF1FEF5A8E -:10168000FD4FA301920160817181828193810E944B -:10169000F52820E030E040E05EE30E94A02A9B01B4 -:1016A000AC01C501B4010E949C2A18168CF4C70134 -:1016B0000196BE010E946E2C90937802809377026F -:1016C00010923D0210923E0210923F021092400290 -:1016D000E0917702F0917802EE0FFF1FEE0FFF1FEF -:1016E000EF5AFD4F6081718182819381D0C0C0909B -:1016F0007302D0907402E0907502F090760220E0C0 -:1017000030E0A901C701B6010E94F1282197882382 -:1017100009F4A2C0FE01EE0FFF1FEE0FFF1FEF5AEC -:10172000FD4F80809180A280B380A5019401C70104 -:10173000B6010E94F12887FF31C0A501940160E045 -:1017400070E08CED93EC0E94F52820E030E040E45E -:1017500051E40E94F52820E030E040E05FE30E9481 -:10176000A02A9B01AC0160E070E080E090E40E9460 -:10177000032B9B01AC01C501B4010E94A02A9B016F -:10178000AC01C701B6010E94F12887FF07C0A7017D -:10179000960160E070E08CED93E439C0A5019401FE -:1017A000C701B6010E949C2A18160CF055C0A5016D -:1017B000940160E070E08CED93E40E94F52820E055 -:1017C00030E040E451E40E94F52820E030E040E0C1 -:1017D0005FE30E94A02A9B01AC0160E070E080E022 -:1017E00090E40E94032B9B01AC01C501B4010E944F -:1017F000A02A9B01AC01C701B6010E949C2A1816C1 -:101800005CF5A701960160E070E08CED93EC0E941E -:10181000F52820E030E040E451E40E94F52820E083 -:1018200030E040E05FE30E94A02A9B01AC0160E051 -:1018300070E080E090E40E94032B9B01AC01C701A3 -:10184000B6010E94A02A6093730270937402809381 -:1018500075029093760213C0FE01EE0FFF1FEE0F8C -:10186000FF1FEF5AFD4F80819181A281B381809348 -:10187000730290937402A0937502B0937602609104 -:10188000730270917402809175029091760220919A -:101890002802309129022F3F4FEF340731F02F5F9C -:1018A0003F4F30932902209328020E947C0E6B0147 -:1018B0007C0120E034E244EF51E40E94F12887FFEC -:1018C00008C086EFC82E88E2D82E84EFE82E81E487 -:1018D000F82E20E030E040E051E4C701B6010E945C -:1018E000A02A9B01AC0160E074E284E79BE40E94C3 -:1018F000F5286B017C010E94622970939700609328 -:101900009600209106013091070140910801509105 -:101910000901C701B6010E94A02A0E9462297093A2 -:1019200099006093980080913C02882309F433C1A8 -:10193000C0903702D0903802E0903902F0903A021D -:1019400020E030E0A901C701B6010E949C2A1816C8 -:10195000D4F580912802909129028F3F2FEF9207B2 -:1019600029F001969093290280932802C701B601BD -:101970000E947C0E20E030E040E051E40E94A02A6A -:101980009B01AC0160E074E284E79BE40E94F528CF -:101990006B017C010E94622970939700609396000E -:1019A00020910601309107014091080150910901F1 -:1019B000C701B6010E94A02A0E9462297093990073 -:1019C0006093980008C010929700109296001092B1 -:1019D00099001092980060913102709132026F5F0D -:1019E0007F4F7093320260933102209196003091C4 -:1019F000970080E090E0232BF1F0C0919600D09109 -:101A000097000E948E296B017C01BE0180E090E06E -:101A10000E948E299B01AC016091330270913402C7 -:101A200080913502909136020E94F52820E03FEF28 -:101A30004FE757E410C00E948E296B017C0120E023 -:101A400030EE4FEF54E46091330270913402809194 -:101A50003502909136020E94A02A9B01AC01C70179 -:101A6000B6010E949C2A87FD96C080912F028F5F4D -:101A700080932F0290E0209103033091040382179A -:101A80009307A0F080910E03882319F010922F0283 -:101A90000DC0809171008D7F8093710080919000C6 -:101AA0008F738093900010923C027DC08091300231 -:101AB000C0912F02811128C0C0900803D090090363 -:101AC000E0900A03F0900B0320E030E0A901C70189 -:101AD000B6010E949C2A1816BCF481E08093300263 -:101AE00010923702109238021092390210923A0284 -:101AF000C0923302D0923402E0923502F092360264 -:101B0000C150C0932F0243C010923002109229029C -:101B100010922802E0910503F091060348E0C49F6B -:101B2000E00DF11D112480819181A281B381809308 -:101B3000370290933802A0933902B0933A0220E022 -:101B400030E040E85EE364817581868197810E9480 -:101B5000A02A6B017C0180910A01682F70E080E06F -:101B600090E00E948E2920E030E048EC52E40E9490 -:101B7000F5289B01AC01C701B6010E94A02A609321 -:101B800033027093340280933502909336021092A0 -:101B90003202109231028091070380FD04C010923E -:101BA0003C0210923B02FF91EF91DF91CF91BF91E8 -:101BB000AF919F918F917F916F915F914F913F91E5 -:101BC0002F91FF90EF90DF90CF90BF90AF909F90BC -:101BD0008F907F906F905F904F900F900FBE0F90FF -:101BE0001F901895CF92DF92EF92FF92CF93DF93E1 -:101BF0006B017C01EA0180912A02811102C00E94DE -:101C0000ED098091070380FF46C080917902909191 -:101C10007A0208970CF03FC0809171008D7F80930D -:101C2000710080913C0281110E94070A81E080933B -:101C30003B02109229021092280220E030E0A90114 -:101C4000C701B6010E949C2A1816DCF48091790223 -:101C500090917A02FC01EE0FFF1FEE0FFF1FEF5A6B -:101C6000FD4FC082D182E282F382FC01EE0FFF1FA2 -:101C7000EF5BFD4FD183C083019690937A028093EE -:101C80007902809171008260809371008091900050 -:101C9000806880939000DF91CF91FF90EF90DF906C -:101CA000CF90089580910703817008958091070374 -:101CB0008160809307030E94AA230C94D203809131 -:101CC00007038E7F809307030C94AA2380917B02E5 -:101CD00090E0019666E070E00E946E2C80937B029B -:101CE000089580917B0290E0019766E070E00E9489 -:101CF0006E2C80937B0208958F929F92AF92BF9239 -:101D0000CF92DF92EF92FF920F931F93CF93DF93C7 -:101D10006B017C01C0912802D0912902BE0180E0B4 -:101D200090E00E948E294B015C01A701960160E0C2 -:101D300070E08CE594E40E94F5289B01AC01C5019C -:101D4000B4010E94A02A0E94622920917B022330C4 -:101D500009F473C028F4222351F02130E9F02CC19A -:101D6000243009F4A0C0253009F4E0C025C180E08A -:101D700090E0A0E0BFE38093060190930701A09359 -:101D80000801B093090110922B0210922C021092BC -:101D90002D0210922E0210C110922B0210922C02D2 -:101DA00010922D0210922E026431710540F46A30B7 -:101DB000710560F520E030E040E85EE32BC0693C4F -:101DC000710508F0AAC080E090E00E948E2920E012 -:101DD00030E040EA51E40E948C2820E030E044E307 -:101DE00053E40E94F5289B01AC010E94A02A20E048 -:101DF00030E040E05EE30E94A02A9B01AC0160E07D -:101E000070E080E09EE30E948C2844C020E030E037 -:101E100040E05FE3C701B6010E94A02A6B017C018C -:101E200080E090E0A0E0BEE380930601909307017C -:101E3000A0930801B0930901BFC010922B02109229 -:101E40002C0210922D0210922E024AE0469F900121 -:101E5000479F300D1124C90168EB7BE00E945A2C8A -:101E6000BC016C5D754077FF03C071956195710988 -:101E7000882777FD8095982F0E9490292EE333ECD8 -:101E80004EE259E30E94A02A20E030E040EC5EE3FD -:101E90000E948D28609306017093070180930801CA -:101EA0009093090189C010922B0210922C0210927B -:101EB0002D0210922E02CE0183709927892BE1F01A -:101EC000BE016170772780E090E00E948E2920E0BB -:101ED00030E040E05EE30E94A02A20E030E040E4F1 -:101EE0005FE30E948D286093060170930701809341 -:101EF0000801909309010CC080E090E0A0E0BFE3EE -:101F00008093060190930701A0930801B093090103 -:101F1000C770DD27CD2B09F04FC01092060110923B -:101F20000701109208011092090146C010922B027D -:101F300010922C0210922D0210922E0200E010E05E -:101F400020E03FE30093060110930701209308016E -:101F5000309309016739710578F180E090E00E94C3 -:101F60008E2920E030E047E153E40E948C2820E0F5 -:101F700030E04AE754E40E94F52820E030E048E4ED -:101F800052E40E94A02A20E030E040EA51E40E949E -:101F9000D2290E945D29660F771F660F771FFB010C -:101FA000EE5AFE4F2081318142815381C701B60133 -:101FB0000E94A02A6B017C01C701B601DF91CF917D -:101FC0001F910F91FF90EF90DF90CF90BF90AF9057 -:101FD0009F908F90089580918C020895CF93DF9306 -:101FE00000D01F92CDB7DEB79C01809113038430DF -:101FF00019F593E099833B832A839093E9008FEF4F -:102000009091E800815095FD06C095ED9A95F1F705 -:1020100000008111F5CF8091E80085FF0DC040E000 -:1020200050E063E070E0CE0101960E944F12809173 -:10203000E8008E778093E8000F900F900F90DF916B -:10204000CF910895CF93DF9300D01F92CDB7DEB725 -:1020500020911303243021F522E029839B838A8376 -:1020600083E08093E9008FEF9091E800815095FD27 -:1020700006C095ED9A95F1F700008111F5CF80919A -:10208000E80085FF0DC040E050E063E070E0CE0165 -:1020900001960E944F128091E8008E778093E800AD -:1020A0000F900F900F90DF91CF910895209113031F -:1020B0002430F1F422E02093E9002FEF3091E80082 -:1020C000215035FD06C035ED3A95F1F7000021119C -:1020D000F5CF2091E80025FF0BC040E050E065E01F -:1020E00070E00E944F128091E8008E778093E800A4 -:1020F0000895CF93DF93EC0190911303943009F08E -:1021000046C0809115018823D9F08091160188235B -:10211000B9F09093E9008FEF9091E800815095FD20 -:1021200006C095E19A95F1F700008111F5CF8091F5 -:10213000E80085FF2CC040E050E060E170E017C08F -:1021400081E08093E9008FEF9091E800815095FD48 -:1021500006C095ED9A95F1F700008111F5CF8091B9 -:10216000E80085FF14C040E050E068E070E0CE0178 -:102170000E944F128091E8008E778093E80080E102 -:10218000FE01ACE7B2E001900D928A95E1F7DF9194 -:10219000CF91089580911203811109C00E94E41328 -:1021A0000E9441148091E20084608093E2000895CF -:1021B000109212030895089508950C94882242E025 -:1021C00061EC81E00E945E1342E061EC82E00E94DB -:1021D0005E1342E061EC83E00E945E1342E161EC39 -:1021E00084E00C945E1380911503833009F455C08C -:1021F00030F4813071F0823009F48EC008958A3055 -:1022000009F47AC08B3009F460C0893009F09CC0B1 -:1022100020C080911403813A09F096C08091E800B3 -:10222000877F8093E8008091180390911903892B90 -:1022300021F460E18CE792E003C060E080E090E090 -:1022400070E00E949A128091E8008B778093E800FA -:10225000089580911403813209F076C080911803AB -:1022600090911903009719F0039709F06DC08091C0 -:10227000E800877F8093E8008091E80082FD05C038 -:10228000809113038111F8CF5FC08091F10080939A -:102290008C028091E8008B7753C080911403813ABF -:1022A00009F052C08091180390911903892B09F00D -:1022B0004BC08091E800877F8093E8008091E80020 -:1022C00080FFFCCF8091150136C0809114038132CC -:1022D000D9F58091180390911903892BA9F5809164 -:1022E000E800877F8093E8000E9493138091160393 -:1022F000809315010C94C91B80911403813221F540 -:102300008091E800877F8093E8000E94931380917A -:10231000170380938D02089580911403813AA1F4EC -:102320008091E800877F8093E8008091E80080FF3B -:10233000FCCF80918D028093F1008091E8008E7730 -:102340008093E8000C949313089584B7877F84BF2B -:1023500088E10FB6F89480936000109260000FBE81 -:1023600090E080E80FB6F89480936100909361004C -:102370000FBE0E9436170E94E4130E944114809100 -:10238000E20084608093E20078940E94C7160E9465 -:1023900038178BE091E00E94E2168091130385309C -:1023A00069F40E944922809111038823B1F30E94AD -:1023B0007722882391F30E943912EFCF0E944017B1 -:1023C000ECCF292F332723303105C9F064F42130B5 -:1023D000310581F02230310509F043C08DE690E0EF -:1023E00020E833E042C021323105F1F022323105DC -:1023F00041F137C082E190E02DEE33E036C09927FD -:102400008130910541F08230910541F0892B49F5E9 -:10241000ECE7F3E005C0EEE4F3E002C0E4E2F3E051 -:10242000849190E09F0121C06430D8F4E62FF0E061 -:10243000EE0FFF1FE255FE4F2081318189E090E0D1 -:1024400014C0643070F470E0FB01EE0FFF1FEA551A -:10245000FE4F20813181FB01EE55FE4F808190E0DF -:1024600004C080E090E020E030E0FA013183208376 -:10247000089580E189BD82E189BD09B400FEFDCFE8 -:102480008091D8008F7D8093D8008091E000826099 -:102490008093E0008091E00081FDFCCF0895CF9211 -:1024A000DF92EF92FF920F931F93CF93DF93EC0194 -:1024B0008B016A010E94B213811133C0C114D1048F -:1024C00039F0F60180819181081B190BC80FD91FC3 -:1024D000E12CF12C0115110519F18091E80085FD21 -:1024E00016C08091E8008E778093E800C114D10473 -:1024F00049F0F60180819181E80EF91EF182E082B7 -:1025000085E00FC00E94B213882321F30AC089918D -:102510008093F10001501109FFEFEF1AFF0ADACFA3 -:1025200080E0DF91CF911F910F91FF90EF90DF90AE -:10253000CF90089520911A0330911B032617370777 -:1025400048F06115710539F42091E8002E77209349 -:10255000E80001C0B90140E061157105A9F12091C1 -:102560001303222309F443C0253009F442C020910B -:10257000E80023FD40C02091E80022FD32C02091F8 -:10258000E80020FFE9CF4091F3002091F20030E015 -:10259000342BFC01CF016115710559F0283031054C -:1025A00040F481918093F100615071092F5F3F4F9A -:1025B000F1CF41E02830310509F040E02091E800FA -:1025C0002E772093E800C8CF4111C9CF0AC080916F -:1025D0001303882361F0853061F08091E80083FD6A -:1025E0000AC08091E80082FFF2CF80E0089582E087 -:1025F000089583E0089581E0089520911A033091B1 -:102600001B032617370748F06115710539F420912F -:10261000E8002E772093E80001C0B901FC0120E01A -:102620006115710591F180911303882309F440C06D -:10263000853009F43FC08091E80083FD3DC0809162 -:10264000E80082FD2FC08091E80080FFE9CF209153 -:10265000F3008091F20090E0922B6115710559F022 -:102660008830910540F424912093F1003196615017 -:1026700071090196F2CF21E0089709F020E08091DE -:10268000E8008E778093E800CBCF2111CCCF0AC031 -:1026900080911303882361F0853061F08091E80018 -:1026A00083FD0AC08091E80082FFF2CF80E00895A8 -:1026B00082E0089583E0089581E00895982F97308F -:1026C00058F59093E900981739F07091EC0020913B -:1026D000ED005091F00003C0242F762F50E021FF31 -:1026E00019C03091EB003E7F3093EB003091ED004C -:1026F0003D7F3093ED003091EB0031603093EB0083 -:102700007093EC002093ED005093F0002091EE00C8 -:1027100027FF07C09F5FD3CF8F708093E90081E0D0 -:10272000089580E008958091140387FF11C080917F -:10273000E80082FD05C0809113038111F8CF11C01C -:102740008091E8008B770BC080911303882349F0B8 -:102750008091E80080FFF8CF8091E8008E77809329 -:10276000E80008952091E4003091E50095E640915D -:10277000EC00842F817040FF22C08091E80080FD32 -:102780001CC080911303882391F0853091F08091D3 -:10279000EB0085FD10C04091E4005091E500421728 -:1027A000530729F39A01915011F784E0089582E0CC -:1027B000089583E0089581E0089580E008954091B0 -:1027C000E80042FFDECF08950E9452140E945A147E -:1027D000E0EEF0E0808181608083E8EDF0E08081D0 -:1027E0008F77808319BCA7EDB0E08C918E7F8C939E -:1027F00080818F7E80831092120308950F931F9320 -:10280000CF93DF930E9452140E945A14C8EDD0E077 -:1028100088818F77888388818068888388818F7D8D -:10282000888319BC1092130310920F0310921103A6 -:102830001092100300EE10E0F80180818B7F8083FE -:1028400088818160888342E060E080E00E945E13BE -:10285000E1EEF0E080818E7F8083E2EEF0E0808127 -:1028600081608083808188608083F80180818E7F91 -:102870008083888180618883DF91CF911F910F9140 -:102880000895E8EDF0E080818F7E8083E7EDF0E051 -:1028900080818160808384E082BF81E08093120325 -:1028A0000C94FE13E8EDF0E080818E7F808310921F -:1028B000E20008951092DA001092E10008951F924C -:1028C0000F920FB60F9211242F933F934F935F9364 -:1028D0006F937F938F939F93AF93BF93EF93FF93E8 -:1028E0008091E10082FF0BC08091E20082FF07C06F -:1028F0008091E1008B7F8093E1000E94C616809159 -:10290000DA0080FF1FC08091D80080FF1BC080913B -:10291000DA008E7F8093DA008091D90080FF0DC0AD -:1029200080E189BD82E189BD09B400FEFDCF81E06F -:10293000809313030E94CA1005C019BC10921303A0 -:102940000E94D8108091E10080FF19C08091E200C0 -:1029500080FF15C08091E2008E7F8093E20080911D -:10296000E20080618093E2008091D80080628093D1 -:10297000D80019BC85E0809313030E94DC1080917D -:10298000E10084FF30C08091E20084FF2CC080E130 -:1029900089BD82E189BD09B400FEFDCF8091D800D8 -:1029A0008F7D8093D8008091E1008F7E8093E1003D -:1029B0008091E2008F7E8093E2008091E20081604E -:1029C0008093E20080910F03882311F084E007C018 -:1029D0008091E30087FD02C081E001C083E0809325 -:1029E00013030E94DD108091E10083FF29C08091D4 -:1029F000E20083FF25C08091E100877F8093E100A2 -:102A000082E08093130310920F038091E1008E7F88 -:102A10008093E1008091E2008E7F8093E2008091BC -:102A2000E20080618093E20042E060E080E00E948A -:102A30005E138091F00088608093F0000E94DB10AC -:102A4000FF91EF91BF91AF919F918F917F916F9186 -:102A50005F914F913F912F910F900FBE0F901F905C -:102A600018951F920F920FB60F9211242F933F9338 -:102A70004F935F936F937F938F939F93AF93BF9386 -:102A8000CF93DF93EF93FF93C091E900CF708091D4 -:102A9000EC00D82FD17080FDD0E81092E900809131 -:102AA000F000877F8093F00078940E947515109253 -:102AB000E9008091F00088608093F000CD2BCF700A -:102AC000C093E900FF91EF91DF91CF91BF91AF915A -:102AD0009F918F917F916F915F914F913F912F9136 -:102AE0000F900FBE0F901F9018951F93CF93DF93F9 -:102AF000CDB7DEB7AA970FB6F894DEBF0FBECDBF35 -:102B0000E4E1F3E088E08E0F9091F10091938E1351 -:102B1000FBCF0E94F3108091E80083FF1FC18091DA -:102B2000140390911503492F50E04A30510508F0E5 -:102B300015C1FA01EA5AFF4F0C94822C803881F0BB -:102B4000823809F00BC1809118038F708093E900DF -:102B50008091EB0085FB882780F91092E90006C080 -:102B60008091100390911103911182609091E8007F -:102B7000977F9093E8008093F1001092F100C8C015 -:102B8000282F2D7F09F0EAC0882319F0823061F0E8 -:102B9000E5C080911603813009F0E0C0933009F060 -:102BA00080E0809311032BC080911603811127C010 -:102BB000809118038F7009F4D1C08093E9002091AF -:102BC000EB0020FF1CC0933021F48091EB00806269 -:102BD00014C09091EB0090619093EB0021E030E005 -:102BE000A90102C0440F551F8A95E2F74093EA00FD -:102BF0001092EA008091EB0088608093EB001092C5 -:102C0000E9008091E800877F86C08111A7C01091FC -:102C100016031F778091E3008078812B8093E30077 -:102C20008091E800877F8093E8000E949313809151 -:102C3000E80080FFFCCF8091E30080688093E30090 -:102C4000111102C082E001C083E08093130386C0AB -:102C50008058823008F082C080911603909117034B -:102C60008C3D53E0950779F583E08A838AE2898376 -:102C70004FB7F894DE01139620E03EE051E2E32FD7 -:102C8000F0E050935700E49120FF03C0E295EF700D -:102C90003F5FEF708E2F90E0EA3010F0C79601C0D2 -:102CA000C0968D939D932F5F243149F74FBF80913C -:102CB000E800877F8093E8006AE270E0CE01019629 -:102CC0000E949A1214C0AE014F5F5F4F60911803CB -:102CD0000E94E111BC01009709F440C09091E80006 -:102CE000977F9093E80089819A810E94FD128091DC -:102CF000E8008B778093E80031C0803879F58091C7 -:102D0000E800877F8093E80080910F038093F100B3 -:102D10008091E8008E778093E8000E9493131EC094 -:102D200081111CC0909116039230C0F48091E8008C -:102D3000877F8093E80090930F030E949313809104 -:102D40000F03811106C08091E30087FD02C081E07E -:102D500001C084E0809313030E94DF108091E8009B -:102D600083FF0AC08091E800877F8093E80080910C -:102D7000EB0080628093EB00AA960FB6F894DEBF5A -:102D80000FBECDBFDF91CF911F9108950895CF93CE -:102D9000809113038823A1F0C091E900CF70909136 -:102DA000EC00892F817090FD80E8C82B1092E9001B -:102DB0008091E80083FD0E947515CF70C093E900F3 -:102DC000CF91089590939302809392020895E09199 -:102DD0009202F0919302309721F00190F081E02D62 -:102DE000099480E00895E0919202F0919302309767 -:102DF00021F00280F381E02D09940895E091920280 -:102E0000F0919302309721F00480F581E02D099430 -:102E1000089520919002309191028217930771F0EA -:102E20009093910280939002E0919202F09193022C -:102E3000309721F00680F781E02D099408952091C4 -:102E40008E0230918F028217930771F090938F0258 -:102E500080938E02E0919202F0919302309721F0DC -:102E60000084F185E02D0994089508950C94351798 -:102E70000E94BC220E940D090E9442230C94F1275B -:102E80005F926F927F928F929F92AF92BF92CF92FA -:102E9000DF92EF92FF920F931F93CF93DF9300D0B7 -:102EA00000D01F92CDB7DEB70E9452099DE9C92E0E -:102EB00092E0D92E03E010E0AA24A394B12C502E66 -:102EC000802F0E94CD094C01F601729062906F0133 -:102ED0006826792661147104A1F40150110978F76C -:102EE0008FEF89838A831B820E94C5228160782F9D -:102EF0009D838C8349815A816B818D810E94F0175B -:102F000038C08091F20281FD0E94D6092BE030E0AA -:102F10007501022E02C0EE0CFF1C0A94E2F7C701F5 -:102F200086219721892B09F129835A828E209F209F -:102F300091E0892809F490E09B830E94C52281607A -:102F4000782F9D838C8349815A816B818D810E946A -:102F5000F017000F111FF801EB56FD4F8081918192 -:102F6000E826F926F182E08204C02150310980F67A -:102F7000B4CF0E942925109194020E94E7161817D9 -:102F8000D1F00E94E716809394020F900F900F905B -:102F90000F900F90DF91CF911F910F91FF90EF90C5 -:102FA000DF90CF90BF90AF909F908F907F906F9069 -:102FB0005F900C94F7080F900F900F900F900F9068 -:102FC000DF91CF911F910F91FF90EF90DF90CF9005 -:102FD000BF90AF909F908F907F906F905F9008957B -:102FE000CF93DF93CDB7DEB72B970FB6F894DEBF44 -:102FF0000FBECDBF4F83588769877A878B87DE01E5 -:10300000119686E0FD0111928A95E9F785E0FE01AF -:10301000379601900D928A95E1F749815A816B812B -:103020007C818D819E810E94671E2B960FB6F8943D -:10303000DEBF0FBECDBFDF91CF910895CF93882320 -:1030400009F4C2C0C82F823859F40E94E71681FDE6 -:10305000BBC089E30E9441210E940E2289E30CC07B -:10306000833879F40E94E71680FDAEC083E50E94A4 -:1030700041210E940E2283E50E948321CF910C946E -:103080000E22843859F40E94E71682FD9DC087E421 -:103090000E9441210E940E2287E4EECF8CEF8C0F1C -:1030A000813A48F48C2F0E94592781118DC08C2FB2 -:1030B0000E944121E3CF80E28C0F883048F4C77032 -:1030C00081E001C0880FCA95EAF70E94C721D6CFD8 -:1030D0008BE58C0F833078F4C53A29F0C63A31F08D -:1030E00083E890E005C081E890E002C082E890E0CB -:1030F000CF910C94091788E58C0F833108F064C0D8 -:10310000C83A39F1C93A41F1CA3A49F1CB3A51F1D9 -:10311000CC3A59F1CD3A61F1C03B69F1CE3A71F147 -:10312000CF3A79F1C13B81F1C23B89F1C33B91F1C7 -:10313000C43B99F1C53BA1F1C63BA9F1C73BB1F135 -:10314000C83BB9F1C93BC1F1CA3BC9F180E090E08D -:1031500038C082EE90E035C089EE90E032C08AEE51 -:1031600090E02FC085EB90E02CC086EB90E029C06A -:1031700087EB90E026C08CEC90E023C08DEC90E0D3 -:1031800020C083E891E01DC08AE891E01AC082E97E -:1031900091E017C084E991E014C081E292E011C08F -:1031A00083E292E00EC084E292E00BC085E292E0FE -:1031B00008C086E292E005C087E292E002C08AE29F -:1031C00092E0CF910C941F17CF910895882309F4B2 -:1031D0004BC0823859F40E94E71681FF45C089E34D -:1031E0000E9441210E940E2289E30CC0833871F4B1 -:1031F0000E94E71680FF38C083E50E9441210E94AB -:103200000E2283E50E9483210C940E22843859F407 -:103210000E94E71682FF28C087E40E9441210E9495 -:103220000E2287E4EFCF9CEF980F913A58F390E28B -:10323000980F983050F4877091E001C0990F8A95EB -:10324000EAF7892F0E94CD21DFCF9BE5980F9330BD -:1032500020F480E090E00C940917885A833120F420 -:1032600080E090E00C941F170895882321F00E94BD -:10327000C7210C940E220895882321F00E94CD21AD -:103280000C940E2208957F928F929F92AF92BF92DC -:10329000CF92DF92EF92FF920F931F93CF93DF9322 -:1032A0001F92CDB7DEB77C01C62E772EFC010581BB -:1032B00002950F70128111110E94E4210E943A219F -:1032C000882379F0112369F080E28C0D883048F072 -:1032D00082E00E9423210E943A2191E0D82ED92633 -:1032E00001C0D12CE72DE295EF70F0E0E05AFF4FDE -:1032F0000C94822C872D807F072D0F70882311F06E -:103300000295007F112389F0002309F499C180E21E -:103310008C0D883020F4802F0E94C72103C0802F9D -:103320000E94D7210E940E228BC18C2D0E94E6188C -:10333000002309F4C3C180E28C0D883020F4802F73 -:103340000E94CD2103C0802F0E94DD210E940E2209 -:10335000B5C1872D807F972D9F70803211F4892F02 -:1033600003C0892F8295807FCC2021F0F1E0CF1619 -:10337000A1F01DC0112339F0002319F1013009F526 -:103380000E94F7219BC1002319F0013009F496C176 -:1033900089830E94FA21898110C1112321F006300E -:1033A00008F08CC10EC0053008F088C106C1112399 -:1033B00059F0002331F0F701958190FF41C19F70D2 -:1033C00095830E9435197AC1002309F4F6C03EC1E5 -:1033D000872D86958695837090E0009719F0019768 -:1033E00061F06CC1112321F08C2D972D937002C0D8 -:1033F00080E090E00E94091761C1112321F08C2D1B -:10340000972D937002C080E090E00E941F1756C174 -:103410008C2D112319F00E94312402C00E9499249E -:103420000E941E254BC1872D837009F052C01111D7 -:1034300045C18C2D829586958770880F880F9C2DAD -:103440009F70892E912CA12CB12C082E04C0880CC1 -:10345000991CAA1CBB1C0A94D2F7C4FE14C00FE02E -:1034600010E020E030E0B901A80104C0440F551F6E -:10347000661F771F8A95D2F7CB01BA0160957095C8 -:103480008095909503C060E070E0CB01272D2695D4 -:103490002695237030E02230310569F02330310564 -:1034A00089F0682979298A299B292130310571F011 -:1034B0000E94AF1F03C1682979298A299B290E948C -:1034C000CB1FFCC00E94AF1FC501B4010E94931F17 -:1034D000F5C0112319F0872D817001C086958823CE -:1034E00009F4ECC08C2D829586958770880F880F23 -:1034F0009C2D9F70892E912CA12CB12C082E04C0DC -:10350000880C991CAA1CBB1C0A94D2F7C4FE14C0D8 -:103510000FE010E020E030E0B901A80104C0440F42 -:10352000551F661F771F8A95D2F7CB01BA016095A8 -:1035300070958095909503C060E070E0CB01272DD9 -:10354000269526952370422F50E04230510569F0B0 -:103550004330510589F0682979298A299B2941300E -:10356000510571F00E948920A9C0682979298A290A -:103570009B290E94A520A2C00E948920C501B401F8 -:103580000E946D209BC08C2D90E0FC01E05EF10953 -:10359000E531F10508F050C0E059FF4F0C94822C42 -:1035A0000C2D0F70872D8F71112321F00E940620A2 -:1035B000802F07CF0E942720802F0E943C197EC0B9 -:1035C000112341F0053008F079C0872D8F710E94DA -:1035D0004C2074C0063008F071C0F7CF112339F0C9 -:1035E000872D8F710E94062069C01123C9F3872D92 -:1035F0008F710E94272062C0112329F0872D8F71BF -:103600000E94F11F5BC00E94E71F58C0112351F0B8 -:10361000172D1F71812F0E94062063E0812F0E94C9 -:103620001A214CC081E00E942321023008F446C0D8 -:1036300082E00E94232142C0112331F0002381F255 -:103640008C2D0E941E183AC0002389F28C2D0E94F6 -:10365000E61834C0472D4F706C2DC7010E94D50568 -:103660000E940B1F2BC0111129C0472D4F7050E035 -:1036700042305105B9F04CF44115510581F041300B -:103680005105E1F40E94192819C04330510569F031 -:103690004430510599F48C2D0E946B280FC00E9474 -:1036A00002280CC00E94352809C00E94482806C084 -:1036B000472D4F706C2DC7010E94D805DD20F9F011 -:1036C0000E94162180FD1BC0F70112820E9410216A -:1036D0000E940620C7010E948E1B0E9410210F909D -:1036E000DF91CF911F910F91FF90EF90DF90CF90DE -:1036F000BF90AF909F908F907F900C9427200F9059 -:10370000DF91CF911F910F91FF90EF90DF90CF90BD -:10371000BF90AF909F908F907F9008950F931F93CD -:10372000CF93DF93EC01888199812B813C81232BFE -:10373000B9F09F3F11F48F3F99F0CE010E94D4035E -:10374000882371F0688179818A810E940C218C0123 -:103750000E94C1200E94881FB801CE010E94431917 -:10376000DF91CF911F910F9108950E94E4210E9453 -:10377000F4210E94B9210E940E220E94CF250E94AE -:103780001E2580E090E00E94091780E090E00C94F4 -:103790001F170E94D4210C94B51B0E940121292FD0 -:1037A00022952F7030E02C3031054CF42A30310551 -:1037B0006CF42250310922303105A8F407C02C30B6 -:1037C000310569F02F30310551F00DC0803F69F0AF -:1037D00018F4803E40F409C0843F29F406C093FBEE -:1037E000882780F9089580E0089581E00895CF93B7 -:1037F000DF9300D000D01F92CDB7DEB70F900F90AF -:103800000F900F900F90DF91CF910895CF93DF939A -:1038100000D000D000D0CDB7DEB726960FB6F89412 -:10382000DEBF0FBECDBFDF91CF9108951F93CF9321 -:10383000DF93C0919D0216E080919E02C81799F017 -:10384000D0E01C9FF0011D9FF00D1124E156FD4FAB -:103850004081518162817381848195810E94061C1F -:103860002196C770E9CFDF91CF911F9108954091C4 -:10387000CF025091D0026091D1027091D20280911A -:10388000D3029091D4020C94061C8091D4028295AC -:103890008F7009F054C08091D102882309F44FC081 -:1038A00080919D02A0919E026091CF027091D00202 -:1038B0004091D2025091D302B6E08A1709F43FC07A -:1038C00090E041155105C1F17F3F11F46F3FA1F127 -:1038D000B89FF001B99FF00D1124E156FD4F2181F1 -:1038E00072132AC02081621327C02281211124C0B3 -:1038F000238134812417350710F421503109241B0A -:10390000350B283C3105C0F42091D4022F70206182 -:103910002093D40226E0289FF001299FF00D112466 -:10392000EC55FD4F80818F70806180838FEC92E039 -:103930000E948E1B0C94161C01968770BECF0895B2 -:10394000CF92DF92EF92FF920F931F93CF93DF936B -:10395000CDB7DEB762970FB6F894DEBF0FBECDBF0E -:103960008C0185E0F801DE011D9601900D928A958B -:10397000E1F7D8014C9111965C91119712966C91D8 -:1039800012971396CD90DC9014973091CF027091DE -:10399000D0028091D2029091D302009709F46BC1BA -:1039A0007F3F19F43F3F09F466C1E090D102EE2059 -:1039B00009F4C0C02091D402C816D90628F0F60137 -:1039C000E81BF90BCF0104C0809590958C0D9D1DCF -:1039D000FF24F394883C910578F0F12C207F09F0C6 -:1039E000C6C07C2DD98AC88A89890E94F71B8FECB2 -:1039F00092E00E948E1BB1C0822F807F09F046C0EA -:103A0000751314C0341312C0611110C02F702061DF -:103A10002093D4020E94371C8FEC92E00E948E1BF0 -:103A20008091D402D80115968C932EC0CD2819F11F -:103A30005F3F11F44F3FF9F0F62E61111CC08091E9 -:103A40009D0220919E0236E0821709F45AC090E050 -:103A5000389FF001399FF00D1124E156FD4F71811F -:103A6000571306C07081471303C07281711103C0E0 -:103A700001968770E9CFF62E662309F418C180916C -:103A8000D40281608093D402F12C11C1751308C057 -:103A9000341306C0611104C08091D402D801C3C0A0 -:103AA0004D875E878D859E856A8B0E94CD1B6A89B6 -:103AB0008823E1F16623D1F12091D402822F8295EF -:103AC0008F7090E0029774F08091CF029091D002B5 -:103AD00098878F831986DB86CA862C87CE01079646 -:103AE0000E948E1B86E0F801AFECB2E001900D92CF -:103AF0008A95E1F70E94451C0E94371CFF24F3942D -:103B0000D6C04D875E878D859E850E940121292F15 -:103B100022952F7030E0223031050CF0BCC09F7030 -:103B200009F0B6C0805E883008F4C1C0C8010E94A8 -:103B30008E1BE4CFC816D90608F453C0F601E81B63 -:103B4000F90BCF01883C910508F450C0F12C7C2D75 -:103B5000D98AC88A89890E94F71BEFECF2E086E0D7 -:103B6000DF011D928A95E9F70E94371CA0C07513EA -:103B700014C0341312C0611110C08091D402F80136 -:103B80008583C8010E948E1B86E0EFECF2E0DF0126 -:103B90001D928A95E9F7FE2C8AC04D875E878D8538 -:103BA0009E856A8B0E94CD1B6A89882309F4BECF4B -:103BB000662309F4BBCF2091D402822F82958F70A7 -:103BC00090E002970CF48ECF8091CF029091D002BA -:103BD0009A8389831B82DD82CC822E83CE0101965B -:103BE0007FCF809590958C0D9D1DACCFF62E6623D2 -:103BF00009F49CCF75132EC034132CC02091D4022D -:103C000020FD1FC0822F82958F70D9F0D8011596A4 -:103C10002C9315978F3049F08F5F982F9295907F56 -:103C2000822F8F70892B15968C93C8010E948E1B52 -:103C300086E0F801AFECB2E001900D928A95E1F7D1 -:103C400093CF86E0F801AFECB2E001900D928A9537 -:103C5000E1F72DC04D875E878D859E850E94CD1B27 -:103C6000811140CF8091D40281608093D402C80139 -:103C70000E948E1B1CC0662309F458CF4D875E87B7 -:103C80008D859E850E94CD1B882309F44FCF2ACFB6 -:103C9000811148CF0CC0243031050CF047CF9F7004 -:103CA00009F440CFF8019581907F09F03BCF8F2D2B -:103CB00062960FB6F894DEBF0FBECDBFDF91CF91F5 -:103CC0001F910F91FF90EF90DF90CF9008951F9379 -:103CD000CF93DF93CDB7DEB72C970FB6F894DEBF46 -:103CE0000FBECDBF4F83588769877A878B879C87A4 -:103CF000CE0107960E94A01C882369F08F819885C9 -:103D00002A853B85232BF1F19F3F09F063C08F3F4C -:103D100009F060C037C086E0FE013796DE011196DB -:103D200001900D928A95E1F76F817885EA85FB8590 -:103D3000309741F17F3F11F46F3F21F120919E02B6 -:103D400030E0C90101968770992740919D0250E0AB -:103D50008417950709F447C069837A83FD83EC8350 -:103D600096E0929FD001939FB00D1124A156BD4FB4 -:103D7000FE01319601900D929A95E1F780939E0293 -:103D80000E94161C16E080919D0290919E02891758 -:103D9000C1F1189FC001112481569D4F0E94A01CA3 -:103DA000882379F1E0919D021E9FF0011124E156D4 -:103DB000FD4F4081518162817381848195810E9490 -:103DC000061C80919D0290E0019687709927809350 -:103DD0009D02D9CF4F81588569857A858B859C85D1 -:103DE0000E94061CCFCF0E94C91B10929E02109207 -:103DF0009D02EFECF2E086E0DF011D928A95E9F783 -:103E0000C1CF2C960FB6F894DEBF0FBECDBFDF91A9 -:103E1000CF911F910895EF92FF920F931F93CF932D -:103E2000DF938C01009709F46CC0F12CEE24E3942D -:103E3000E8012196F8018491843740F4843008F039 -:103E400051C0813081F0823019F15BC0853709F4AF -:103E500044C0A8F19CE7980F903708F052C08F77C4 -:103E60000E94E61841C00E5F1F4FFE01C49180E220 -:103E70008C0F883048F4C7708E2D01C0880FCA950A -:103E8000EAF70E94E72114C08C2F0E941E182DC053 -:103E90000E5F1F4FFE01C49180E28C0F883058F4F2 -:103EA000C7708E2D01C0880FCA95EAF70E94ED21D8 -:103EB0000E940E221AC08C2F0E94E61816C00E5FB8 -:103EC0001F4FFE01C491CC2381F08FE99FE0019741 -:103ED000F1F700C00000C150F6CF0E5F1F4FFE018A -:103EE000F49003C00E941E188E018F2D882309F4C0 -:103EF0009FCFEFE9FFE03197F1F700C0000081505C -:103F0000F5CFDF91CF911F910F91FF90EF90089522 -:103F100008956093D9027093DA028093DB02909344 -:103F2000DC020C94B51B0F931F930091D9021091E2 -:103F3000DA022091DB023091DC02DC01CB01802B24 -:103F4000912BA22BB32B8093D9029093DA02A093EA -:103F5000DB02B093DC021F910F910C94B51B0F9301 -:103F60001F930091D9021091DA022091DB02309167 -:103F7000DC02DC01CB0180239123A223B3238093B5 -:103F8000D9029093DA02A093DB02B093DC021F9176 -:103F90000F910C94B51B0F931F930091D9021091B0 -:103FA000DA022091DB023091DC02DC01CB018027B8 -:103FB0009127A227B3278093D9029093DA02A09386 -:103FC000DB02B093DC021F910F910C94B51B109291 -:103FD000D5021092D6021092D7021092D8020C94F9 -:103FE000B51B41E050E060E070E004C0440F551F95 -:103FF000661F771F8A95D2F74093D5025093D60259 -:104000006093D7027093D8020C94B51B41E050E046 -:1040100060E070E004C0440F551F661F771F8A954B -:10402000D2F78091D5029091D602A091D702B0919B -:10403000D802482B592B6A2B7B2B4093D5025093E7 -:10404000D6026093D7027093D8020C94B51B41E05E -:1040500050E060E070E004C0440F551F661F771FFA -:104060008A95D2F740955095609570958091D502CC -:104070009091D602A091D702B091D802482359233B -:104080006A237B234093D5025093D6026093D702D4 -:104090007093D8020C94B51B41E050E060E070E0F2 -:1040A00004C0440F551F661F771F8A95D2F7809171 -:1040B000D5029091D602A091D702B091D80248279C -:1040C00059276A277B274093D5025093D6026093E5 -:1040D000D7027093D8020C94B51B0F931F930091D5 -:1040E000D5021091D6022091D7023091D802DC017E -:1040F000CB01802B912BA22BB32B8093D5029093D5 -:10410000D602A093D702B093D8021F910F910C94BE -:10411000B51B0F931F930091D5021091D6022091E9 -:10412000D7023091D802DC01CB0180239123A22356 -:10413000B3238093D5029093D602A093D702B09375 -:10414000D8021F910F910C94B51B0F931F930091F0 -:10415000D5021091D6022091D7023091D802DC010D -:10416000CB0180279127A227B3278093D502909374 -:10417000D602A093D702B093D8021F910F910C944E -:10418000B51B0895CF92DF92EF92FF920F931F938A -:10419000CF93DF938C01C090D902D090DA02E090E7 -:1041A000DB02F090DC028091D5029091D602A091C2 -:1041B000D702B091D802C82AD92AEA2AFB2ACFE12D -:1041C000D0E0D701C6010C2E04C0B695A7959795EF -:1041D00087950A94D2F780FF06C0B8018C2F0E9401 -:1041E0005D08019721F4219760F780E001C08C2FD2 -:1041F000DF91CF911F910F91FF90EF90DF90CF90C3 -:104200000895CF93DF93EC010E94C220BE010E946B -:104210005D08DF91CF910895CB010E94012108959F -:104220008091DD0285958595859508958091DD02C3 -:104230008770089598E0899F90011124262B209380 -:10424000DD020C9406202091DD028095822380936C -:10425000DD02982F977069F430E0482F552747FD0D -:1042600050952417350729F08595859585950C94EB -:10427000272008959091DD02977081E009F480E095 -:10428000089590911501992321F0909116019111B3 -:1042900009C02091170130911801F90132969FEF62 -:1042A00040E01FC0982F9695969596959F3050F5B3 -:1042B000E0911701F0911801E90FF11D877021E0DD -:1042C00030E0A90102C0440F551F8A95E2F7CA01E8 -:1042D0009181892B818308959F3F39F04F5F4E3044 -:1042E00041F051915813F8CF0DC05111F7CF942FD1 -:1042F000F5CF9F3F39F0F901E90FF11D97FDFA95D0 -:1043000082830895089590911501992321F0909149 -:104310001601911109C02091170130911801F9017E -:104320003296205F3F4F1FC0982F96959695969591 -:104330009F30F0F4E0911701F0911801E90FF11DA1 -:10434000877021E030E0A90102C0440F551F8A9513 -:10435000E2F7CA018095918189238183089531967E -:10436000E217F30729F090819813F9CF1082F7CF65 -:10437000089581E090E0E0911701F0911801E80FB5 -:10438000F91F1082019680319105A9F70895909147 -:10439000F102892B8093F102089580959091F102AA -:1043A00089238093F10208951092F102089590916B -:1043B000F002892B8093F002089580959091F0028D -:1043C00089238093F00208951092F002089590914D -:1043D000EF02892B8093EF02089580959091EF0270 -:1043E00089238093EF0208951092EF02089580933D -:1043F000DE0208951092DE020895809117019091D7 -:104400001801FC0131969C01205F3F4F80E09191A3 -:1044100091118F5FE217F307D1F70895E09117012B -:10442000F09118018091F1028083E0911701F091E1 -:10443000180190818091F002892B8083E09117010F -:10444000F091180190818091EF02892B80838091F7 -:10445000DE02882361F0E0911701F091180190814C -:10446000892B80830E94FD2181111092DE028091B0 -:104470001701909118010C94F31620E0009739F081 -:10448000AC0141505109842395232F5FF7CF822F30 -:10449000089580911303843039F11092F30220E4DF -:1044A00088E190E00FB6F894A895809360000FBE65 -:1044B0002093600080E00E94D80280E00E94F7080C -:1044C00083B7817F846083BF83B7816083BF789423 -:1044D000889583B78E7F83BF88E10FB6F894809369 -:1044E0006000109260000FBE08950895089580E066 -:1044F0000E94D8020E9475220E9452090E947622D0 -:104500000E94D70991E0811101C090E0892F0895A0 -:104510000E94C91B80E00E94D8020E94F1270E94DD -:10452000E7160C94F7081F920F920FB60F92112402 -:104530008F939F93AF93BF938091F302811113C028 -:104540008091F4029091F502A091F602B091F702E9 -:104550004196A11DB11D8093F4029093F502A093A2 -:10456000F602B093F702BF91AF919F918F910F9098 -:104570000FBE0F901F90189582E084BD93E095BD0B -:104580009AEF97BD80936E0008952FB7F8948091AD -:10459000F4029091F502A091F602B091F7022FBFBC -:1045A0000895CF92DF92EF92FF920F931F932FB750 -:1045B000F8944091F4025091F5026091F6027091E6 -:1045C000F7022FBF6A017B01EE24FF248C0120E05B -:1045D00030E0C016D106E206F30610F4415051094E -:1045E0009A01281B390BC9011F910F91FF90EF9081 -:1045F000DF90CF9008951F920F920FB60F92112463 -:104600008F939F93AF93BF938091F4029091F502A3 -:10461000A091F602B091F7020196A11DB11D809301 -:10462000F4029093F502A093F602B093F702BF91C3 -:10463000AF919F918F910F900FBE0F901F90189583 -:104640000E94E413F8942FEF87EA91E6215080400E -:104650009040E1F700C0000087E090EBDC01809320 -:104660001E0390931F03A0932003B09321039CE0AB -:1046700088E10FB6F894A895809360000FBE9093E0 -:104680006000FFCF0E948123811102C00E945D2340 -:104690000E948C238093F2020E94942380931C0337 -:1046A00087FB882780F9809316010E949023682F4A -:1046B00070E080E090E00C94891F6DEE7EEF80E06A -:1046C00090E00E94A82C60E082E090E00E94962C8E -:1046D00060E083E090E00E94962C60E084E090E04F -:1046E0000E94962C60E085E090E00E94962C60E0AD -:1046F00086E090E00E94962C6FEF87E090E00C94AB -:10470000962C80E090E00E94902C21E08D3E9E4F00 -:1047100009F020E0822F089582E090E00C94882C2C -:1047200083E090E00C94882C84E090E00C94882C3A -:10473000682F84E090E00C94962C86E090E00C9436 -:10474000882C682F86E090E00C94962C87E090E00F -:104750000C94882C682F87E090E00C94962C809124 -:10476000FA0280FF0BC060911C0185E0689FB001D8 -:10477000112475956795759567952BC081FF09C0C4 -:1047800060911C0185E0689FB001112475956795C3 -:1047900020C082FF07C060911C0185E0689FB001C6 -:1047A000112417C09091FB029923D1F060911B0155 -:1047B000961788F720911C0185E0289F900111240D -:1047C000929FA001939F500D112470E0CA010E9496 -:1047D0006E2C6038710540F46115710539F002C026 -:1047E00065E070E0862F08958FE7089581E00895D1 -:1047F0008091FA0280FF08C060911A0170E07595FF -:1048000067957595679521C081FF06C060911A0173 -:1048100070E07595679519C082FF04C060911A0118 -:1048200070E010C09091FB029923C1F060911901D2 -:104830009617A0F780911A01899FC001112470E09A -:104840000E946E2C6038710528F46115710521F005 -:10485000862F08958FE7089581E0089561E070E064 -:10486000F4CF803F21F40E94AF23819504C0813FA3 -:1048700029F40E94AF238093FE020895823F21F421 -:104880000E94AF23819504C0833F29F40E94AF2387 -:104890008093FD020895893F19F40E94F82305C012 -:1048A0008A3F31F40E94F82381958093FF02089596 -:1048B0008B3F21F40E94F823819504C08C3F29F49A -:1048C0000E94F823809300030895843F21F480918F -:1048D000FC02816017C0853F21F48091FC02826058 -:1048E00011C0863F21F48091FC0284600BC0873F99 -:1048F00021F48091FC02886005C0883F31F48091EA -:10490000FC0280618093FC0208958D3F21F4809128 -:10491000FA0281600BC08E3F21F48091FA0282601E -:1049200005C08F3F29F48091FA0284608093FA02D7 -:104930000895803F39F48091FE0287FF6CC0109289 -:10494000FE0269C0813F29F48091FE021816BCF373 -:1049500062C09091FD02823F29F497FF5CC01092E3 -:10496000FD0259C0833F19F41916CCF354C0893F96 -:1049700041F48091FF0218160CF04DC01092FF0216 -:104980004AC08A3F29F48091FF0287FF44C0F6CFD6 -:104990008B3F39F48091000387FF3DC010920003E4 -:1049A0003AC08C3F29F4809100031816BCF333C041 -:1049B000843F21F48091FC028E7F17C0853F21F453 -:1049C0008091FC028D7F11C0863F21F48091FC0212 -:1049D0008B7F0BC0873F21F48091FC02877F05C04D -:1049E000883F31F48091FC028F7E8093FC0213C0DB -:1049F0008D3F21F48091FA028E7F0BC08E3F21F40F -:104A00008091FA028D7F05C08F3F29F48091FA02D0 -:104A10008B7F8093FA028091FD0281110EC08091FC -:104A2000FE0281110AC08091FF02811106C08091AF -:104A30000003811102C01092FB0208958CEF92E0F6 -:104A40000E94FE160E94C5229093F9028093F802FC -:104A500008951F93CF93DF938091F8029091F9020C -:104A60000E94D122AC019091FB02992321F0209168 -:104A70001D0130E006C020911E018AE0289F9001B0 -:104A800011244217530708F486C08091FD02C0919B -:104A9000FE02D091FF0210910003811107C0C111E5 -:104AA00076C0D11174C0111172C075C09F3F19F04A -:104AB0009F5F9093FB02181624F40E94AF2380930B -:104AC000FD028091FD0287FF05C00E94AF23819502 -:104AD0008093FD021C1624F40E94AF238093FE02F3 -:104AE0008091FE0287FF05C00E94AF2381958093CD -:104AF000FE026091FD02662339F1C091FE02CC23D3 -:104B000019F1772767FD7095872F972F0E949029BD -:104B100023E333E343E35FE30E94A02A0E945D297D -:104B20006093FD026C2F772767FD7095872F972F75 -:104B30000E94902923E333E343E35FE30E94A02A2A -:104B40000E945D296093FE021D1624F40E94F82342 -:104B50008093FF028091FF0287FF05C00E94F82327 -:104B600081958093FF02111624F40E94F82380930C -:104B700000038091000387FF05C00E94F823819500 -:104B800080930003DF91CF911F910C941E259F3FCE -:104B900009F08ECF96CFDF91CF911F910895ECEF62 -:104BA000F2E085E0DF011D928A95E9F71092FB02A1 -:104BB0001092FA020895833081F128F4813059F07F -:104BC0008230D1F00895853009F449C0B8F18630BB -:104BD00009F456C0089580911E01262F30E0280F59 -:104BE000311D2F3F310524F4680F60931E01089595 -:104BF0008FEF80931E01089580911D01262F30E0D4 -:104C0000280F311D2F3F310524F4680F60931D01DB -:104C100008958FEF80931D01089580911C01262F28 -:104C200030E0280F311D2F3F310524F4680F6093C9 -:104C30001C0108958FEF80931C01089580911B0142 -:104C4000262F30E0280F311D2F3F310524F4680F47 -:104C500060931B0108958FEF80931B01089580914D -:104C60001A01262F30E0280F311D2F3F310524F483 -:104C7000680F60931A0108958FEF80931A010895C9 -:104C800080911901262F30E0280F311D2F3F31056B -:104C900024F4680F6093190108958FEF8093190130 -:104CA0000895833011F128F4813049F0823091F079 -:104CB0000895853081F120F18630C1F10895809109 -:104CC0001E01681720F4861B80931E010895109220 -:104CD0001E01089580911D01681720F4861B8093A2 -:104CE0001D01089510921D01089580911C016817FF -:104CF00020F4861B80931C01089510921C010895D6 -:104D000080911B01681720F4861B80931B01089576 -:104D100010921B01089580911A01681720F4861BD8 -:104D200080931A01089510921A0108958091190133 -:104D3000681720F4861B80931901089510921901B9 -:104D400008950F931F93873208F048C08E3108F002 -:104D50008DC0803109F477C008F5873009F461C04F -:104D600068F4863009F09DC08091F202817F8E7FC9 -:104D70008093F20281E08093020394C08B3009F4A7 -:104D800089C08E3009F08DC08091F20282FB22270B -:104D900020F991E0922790FB82F95EC0863109F4F8 -:104DA00079C060F4813109F07CC00E94C91B9091E8 -:104DB000160181E08927809316016CC0893109F4BE -:104DC00069C08B3109F06DC08091F20281FB22270E -:104DD00020F991E0922790FB81F93EC0883309F4D5 -:104DE00059C050F4893209F457C0853309F454C0CE -:104DF000873209F451C055C0833409F44DC028F4FA -:104E00008A3308F44EC0895332C0883409F049C04F -:104E10000E94C91B0E94070A0E94CB030E94202304 -:104E200039C09091F202892F8095817080FB90F9B2 -:104E300029F0966098609093F20234C0997F977F32 -:104E40009093F20227C08091F20283FB222720F97F -:104E500091E0922790FB83F98093F2029923D1F09D -:104E60008091F20281608093F20214C08D5141E082 -:104E700050E060E070E08A019B0104C0000F111F48 -:104E8000221F331F8A95D2F7C901B8010E94891FDA -:104E90000E94C91B81E006C061E070E080E090E004 -:104EA000F5CF80E01F910F91089580E0089580E094 -:104EB0000895CF93C82F80910203813069F018F0D4 -:104EC0008230C9F184C0E0911701F091180180810E -:104ED000823209F07EC007C0E0911701F0911801FD -:104EE0008081823261F48C2F0E945527811104C089 -:104EF0008C2F0E94A1261DC081E090E01AC08C2F4B -:104F00000E945727811114C0C43179F048F4CB3086 -:104F100079F0C03109F061C082E08093020308C0DB -:104F2000C93219F0C83321F058C01092020355C09D -:104F300081E0817054C0C93291F120F5C43179F11A -:104F4000B0F4C73009F047C08EE180931E0182E3C0 -:104F500080931D018AE080931C0184E180931B01F2 -:104F600088E080931A0188E28093190134C0CE5101 -:104F7000C63088F5EC2FF0E0EA54FE4F8081809334 -:104F8000010329C0CE34E9F020F4CB3421F56AE0E6 -:104F900013C0C13579F0C235F1F461E00DC08091E4 -:104FA0000103882319F01092010315C081E080935A -:104FB000020315C061E006C0809101030E94DB2559 -:104FC0000AC06AE0809101030E94512604C0109239 -:104FD000020380E004C081E002C080E0AACFCF914C -:104FE00008950E948123811102C00E945D230E94C6 -:104FF0009D2380931D0380FF02C0869501C080E041 -:105000000C94D80280911D03982F9695292F30E09B -:10501000233031054CF49F5F990F8170892B81609B -:1050200080931D030E94A12380911D0386950C94FB -:10503000D80280911D03982F969591F09158990F61 -:105040008170892B80931D038E7F91E009F490E09D -:1050500080911D0390FB80F980931D030E94A12382 -:1050600080911D0386950C94D80280911D03982F82 -:10507000909590FB80F980931D030E94A12380915D -:105080001D0380FF02C0869501C080E00C94D80209 -:1050900090911D03892F86958F5F8F779170843053 -:1050A00028F4880F892B80931D0302C090931D0361 -:1050B00080911D038E7F91E009F490E080911D03A3 -:1050C00090FB80F980931D030E94A12380911D0312 -:1050D00086950C94D80220911D03922F96958927CE -:1050E000982F990F822F8170892B80931D038E7FBB -:1050F00091E009F490E080911D0390FB80F980938A -:105100001D030E94A12380911D0386950C94D80253 -:1051100080911D03869508955058BB27AA270ED06D -:10512000D1C1C2D130F0C7D120F031F49F3F11F48A -:105130001EF4B7C10EF4E095E7FB9FC1E92FD3D170 -:1051400080F3BA17620773078407950718F071F4A4 -:105150009EF5EBC10EF4E0950B2EBA2FA02D0B019E -:10516000B90190010C01CA01A0011124FF27591BAC -:1051700099F0593F50F4503E68F11A16F040A22FB2 -:10518000232F342F4427585FF3CF46953795279523 -:10519000A795F0405395C9F77EF41F16BA0B620B22 -:1051A000730B840BBAF09150A1F0FF0FBB1F661F69 -:1051B000771F881FC2F70EC0BA0F621F731F841FAC -:1051C00048F4879577956795B795F7959E3F08F0D2 -:1051D000B3CF9395880F08F09927EE0F9795879591 -:1051E000089527D108F481E008950CD06BC163D1F4 -:1051F00040F05AD130F021F45F3F19F03EC1511117 -:1052000095C14FC170D198F39923C9F35523B1F3D8 -:10521000951B550BBB27AA2762177307840738F025 -:105220009F5F5F4F220F331F441FAA1FA9F333D084 -:105230000E2E3AF0E0E830D091505040E695001C38 -:10524000CAF729D0FE2F27D0660F771F881FBB1FF4 -:10525000261737074807AB07B0E809F0BB0B802DCE -:10526000BF01FF2793585F4F2AF09E3F510568F01A -:1052700004C15CC15F3FECF3983EDCF38695779503 -:105280006795B795F7959F5FC9F7880F911D96951C -:10529000879597F90895E1E0660F771F881FBB1F78 -:1052A000621773078407BA0720F0621B730B840B25 -:1052B000BA0BEE1F88F7E095089504D06894B111F9 -:1052C00035C1089518D188F09F5790F0B92F9927CC -:1052D000B751A0F0D1F0660F771F881F991F1AF001 -:1052E000BA95C9F712C0B13081F01FD1B1E008956D -:1052F0001CC1672F782F8827B85F39F0B93FCCF3EE -:10530000869577956795B395D9F73EF490958095F6 -:10531000709561957F4F8F4F9F4F0895E89409C016 -:1053200097FB3EF490958095709561957F4F8F4FD8 -:105330009F4F9923A9F0F92F96E9BB279395F695EE -:10534000879577956795B795F111F8CFFAF4BB0F6C -:1053500011F460FF1BC06F5F7F4F8F4F9F4F16C0D0 -:10536000882311F096E911C0772321F09EE8872F5A -:10537000762F05C0662371F096E8862F70E060E016 -:105380002AF09A95660F771F881FDAF7880F96958F -:10539000879597F9089588D018F011F08CD038F4DB -:1053A00080C0C4C0E92F9FD0B0F35523C9F3E7FBF9 -:1053B0006217730784079507A8F199F3E92FFF2770 -:1053C00088232AF03197660F771F881FDAF7952F09 -:1053D0005527442332F091505040220F331F441F71 -:1053E000D2F7BB27E91BF50B621B730B840BB109CA -:1053F000C1F222F4620F731F841FB11D31972AF08E -:10540000660F771F881FBB1FEFCF915050405AF097 -:1054100041F0882332F0660F771F881F915050406B -:10542000C1F7939530C08695779567959F5FD9F7BB -:10543000F8CF990F0008550FAA0BE0E8FEEF1616FB -:105440001706E807F907C0F012161306E407F50778 -:1054500098F0621B730B840B950B39F40A2661F0EC -:10546000232B242B252B21F408950A2609F4A1408F -:10547000A6958FEF811D811D089597F99F6780E89C -:1054800070E060E008959F3F31F0915020F48795DF -:1054900077956795B795880F911D9695879597F99C -:1054A00008959FEF80EC089500240A9416161706BD -:1054B00018060906089500240A9412161306140605 -:1054C00005060895092E0394000C11F4882352F068 -:1054D000BB0F40F4BF2B11F460FF04C06F5F7F4F20 -:1054E0008F4F9F4F089557FD9058440F551F59F007 -:1054F0005F3F71F04795880F97FB991F61F09F3FC1 -:1055000079F087950895121613061406551FF2CFE9 -:105510004695F1DF08C0161617061806991FF1CF39 -:1055200086957105610508940895E894BB27662760 -:105530007727CB0197F908957CDF08F48FEF089562 -:105540000BD0C0CFB1DF28F0B6DF18F0952309F0FB -:1055500094CFA7CF1124EACFC6DFA0F3959FD1F354 -:10556000950F50E0551F629FF001729FBB27F00D11 -:10557000B11D639FAA27F00DB11DAA1F649F662766 -:10558000B00DA11D661F829F2227B00DA11D621FB5 -:10559000739FB00DA11D621F839FA00D611D221F6F -:1055A000749F3327A00D611D231F849F600D211D53 -:1055B000822F762F6A2F11249F5750408AF0E1F0F6 -:1055C00088234AF0EE0FFF1FBB1F661F771F881F3F -:1055D00091505040A9F79E3F510570F04ECFA6CF95 -:1055E0005F3FECF3983EDCF3869577956795B7952A -:1055F000F795E7959F5FC1F7FE2B880F911D969554 -:10560000879597F90895FA01EE0FFF1F309621054F -:10561000310599F16115710561F48038BFE39B078D -:1056200049F168949038810561F08038BFEF9B079D -:1056300041F0992342F5FF3FE1053105210511F1C4 -:10564000E8940894E795D901AA2329F4AB2FBE2F3B -:10565000F85FD0F310C0FF5F70F4A695E0F7F7395C -:1056600050F019F0FF3A38F49F779F930CD00F90C9 -:1056700007FC905808953EF014CF60E070E080E899 -:105680009FE308954FE79F775F934F933F932F9347 -:105690009ED02F913F914F915F9152DF05C019F439 -:1056A0000EF0EBCE42CFFDCE26DFC8F39638C0F722 -:1056B00007F80F92E8942BE33AEA48EB5FE74EDFF6 -:1056C0000F920F920F924DB75EB70F92C0D0EAE0E3 -:1056D000F1E016D04F915F91EF91FF91E595EE1FAC -:1056E000FF1F49F0FE57E0684427EE0F441FFA956C -:1056F000E1F74195550B32D00F9007FE26C0089573 -:10570000DF93CF931F930F93FF92EF92DF927B0172 -:105710008C01689405C0DA2EEF011EDFFE01E894CB -:10572000A5912591359145915591AEF3EF0106DD97 -:10573000FE019701A801DA9479F7DF90EF90FF90CE -:105740000F911F91CF91DF9108959B01AC0160E013 -:1057500070E080E89FE349CD90CE95CECCDEE8F3B3 -:105760009923D9F3940F511DBBF39150504094F0FD -:1057700059F0882332F0660F771F881F91505040F0 -:10578000C1F79E3F510544F7880F911D9695879567 -:1057900097F908955F3FACF0983E9CF0BB27869543 -:1057A00077956795B79508F4B1609395C1F7BB0FEE -:1057B00058F711F460FFE8CF6F5F7F4F8F4F9F4F17 -:1057C000E3CFB4CE0EF05FCE6CCE689456CE93DEAF -:1057D000C8F39923D1F3C6F3DF93CF931F930F93AD -:1057E000FF92C92FDD2788232AF02197660F771FA4 -:1057F000881FDAF720E030E040E85FEB9FE388396C -:1058000020F0803E30F021968F7787DCE2E3F1E0F4 -:1058100003C083DCEFE5F1E073DF8B01BE01EC0137 -:10582000FB2E6F5771097595771F880B990B78DDE3 -:1058300028E132E741E35FE38FDEAF2D9801AE014F -:10584000FF900F911F91CF91DF9178DC3BCEFA0151 -:10585000DC01AA0FBB1F9B01AC01BF5728F4222714 -:105860003327442750781FC0B75188F4AB2F00244A -:10587000469537952795011CA395D2F3002069F032 -:10588000220F331F441FB395DAF30DD045CC61309E -:105890007105A0E88A07B94630F49B01AC01662780 -:1058A000772788279078309621F0208331834283B0 -:1058B00053830895AA1BBB1B51E107C0AA1FBB1F3E -:1058C000A617B70710F0A61BB70B881F991F5A958C -:1058D000A9F780959095BC01CD01089597FB072EFF -:1058E00016F4009407D077FD09D00E945A2C07FCCB -:1058F00005D03EF4909581959F4F089570956195E0 -:105900007F4F0895EE0FFF1F0590F491E02D09944D -:10591000F999FECF92BD81BDF89A992780B5089577 -:10592000A8E1B0E042E050E00C94B02C262FF999A9 -:10593000FECF92BD81BDF89A019700B4021639F0EE -:105940001FBA20BD0FB6F894FA9AF99A0FBE0895BF -:105950000196272F0E94972C0C94962CDC01CB01EA -:10596000FC01F999FECF06C0F2BDE1BDF89A31966F -:1059700000B40D9241505040B8F70895F894FFCF0D -:10598000640007000CFF0000003F64EB0F79105625 -:10599000102210EE0F0101DF022808140A321E0047 -:1059A00002040507090B0C0E1011131517181A1C09 -:1059B0001D1F2123242628292B2D2F303234353743 -:1059C000393B1F0F03764F5F6F7F49694379095950 -:1059D00053633149803F5D8B803FF8BF803FCAE110 -:1059E000803F73ED803FCAE1803FF8BF803F5D8B11 -:1059F000803F3149803F0000803FF16D7F3F75EA75 -:105A00007E3F4C827E3F833F7E3F84287E3F833FA4 -:105A10007E3F4C827E3F75EA7E3FF16D7F3F000006 -:105A2000803F3F4D3639BB046E043804FF039203B8 -:105A3000AB03C403DD0301020304050607080900E4 -:00000001FF diff --git a/keyboards/planck/keymaps/daniel/compiled.hex b/keyboards/planck/keymaps/daniel/compiled.hex deleted file mode 100644 index d7e56a3e2..000000000 --- a/keyboards/planck/keymaps/daniel/compiled.hex +++ /dev/null @@ -1,1448 +0,0 @@ -:100000000C9495020C94D9020C94D9020C94D90248 -:100010000C94D9020C94D9020C94D9020C94D902F4 -:100020000C94D9020C94D9020C9477140C944915B1 -:100030000C94AB220C94D9020C94D9020C94D902E2 -:100040000C94D9020C943B030C94D9020C94D90261 -:100050000C94D9020C9413230C94D9020C94D90259 -:100060000C94D9020C94D9020C94D9020C94D902A4 -:100070000C94D9020C94D9020C94D9020C94D90294 -:100080000C94EC0A0C94D9020C94D9020C94D90269 -:100090000C94D9020C94D9020C94D9020C94D90274 -:1000A0000C94D9020C94D9020C94D902B615D81527 -:1000B000C616D815C6161D164016C6169516A816CD -:1000C00092199219C119C119001A201A761B761BB0 -:1000D0002B1A761BDB1ADB1A421B4B1B761B701B81 -:1000E000E81AE81AE81AE81AE81AE81AE81AE81A00 -:1000F000E81AE81AE81AE81AE81AE81AE81AE81AF0 -:10010000F81A061B0D1B141B1E1B07634236B79BF8 -:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 -:100120005763BD6DEDFD753EF6177231BF000000DF -:10013000803F08000000BE922449123EABAAAA2AC2 -:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD -:1001500000000000BF000000803F00000000000819 -:100160004178D3BB4387D1133D190E3CC3BD4282B6 -:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 -:10018000FFBE01C4FF7F3F00000000000000000030 -:1001900000000000000000010204060A0F17202CD6 -:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 -:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF -:1001C0000201000000000000000000000000F1A19A -:1001D000F1A2F1A3290014001A000800150017006D -:1001E0001C0018000C00120013002A002B00040051 -:1001F0001600070009000A000B000D000E000F009A -:1002000033003400E1001D001B000600190005004A -:1002100011001000360037003800E5000320E00030 -:10022000E200E30002202C002C00012050005100CD -:1002300052004F0035001E021F022002210222023E -:10024000230224022502260227022E0001000100BB -:100250000100010001000100010001000100010096 -:100260002F00300001000100010001000100010029 -:10027000010001002D002D023100010001000100EC -:10028000010001000100010001000120AB00AA00F3 -:10029000A900AE0035021E001F0020002100220030 -:1002A000230024002500260027002E023A003B00F0 -:1002B0003C003D003E003F00400041004200430042 -:1002C0004400450039003A003B003C003D003E0040 -:1002D0003F004000410042004300280001000100AF -:1002E000010001000220010001000100AB00AA0092 -:1002F000A900AE00290014001A000800150017001C -:100300001C0018000C00120013004C002B0004000D -:100310001600070009000A000B000D000E000F0078 -:1003200033003400E1001D001B0006001900050029 -:1003300011001000360037003800E5000100E00031 -:10034000E200E30002202C002C00012050005100AC -:1003500052004F0028035400680065002000500040 -:100360006C0061006E0063006B0020004B006500B4 -:10037000790062006F0061007200640000002C03CD -:100380004F007200740068006F006C0069006E001E -:1003900065006100720020004B006500790062007A -:1003A0006F00610072006400730000000403090420 -:1003B00009026D00040100A0FA0904000001030114 -:1003C0000100092111010001223F000705810308F6 -:1003D000000A0904010001030102000921110100C2 -:1003E00001224D000705820308000A0904020001EA -:1003F00003000000092111010001223600070583D6 -:100400000308000A09040300010300000009211188 -:1004100001000122390007058403100001120110B8 -:100420000100000008EDFE6060010001020001050E -:10043000010906A101050719E029E7150025019525 -:1004400008750181020508190129059505750191B5 -:1004500002950175039101050719002977150025FB -:1004600001957875018102C005010980A10185020D -:1004700016010026B7001A01002AB7007510950171 -:100480008100C0050C0901A1018503160100269C0D -:10049000021A01002A9C02751095018100C0050115 -:1004A0000902A1010901A100050919012905150089 -:1004B00025019505750181029501750381010501ED -:1004C000093009311581257F9502750881060938A3 -:1004D0001581257F950175088106050C0A380215DE -:1004E00081257F950175088106C0C005010906A117 -:1004F00001050719E029E715002501950875018117 -:1005000002950175088101050819012905950575F0 -:100510000191029501750391010507190029FF1545 -:100520000025FF950675088100C011241FBECFEF7E -:10053000DAE0DEBFCDBF04B603FE24C080911E0307 -:1005400090911F03A0912003B09121038730904B1D -:10055000A740B04BB9F410921E0310921F031092E3 -:1005600020031092210314BE84B7877F84BF88E1E3 -:100570000FB6F89480936000109260000FBEE0E028 -:10058000F8E3099511E0A0E0B1E0E0EBF9E502C085 -:1005900005900D92A03CB107D9F713E0A0ECB1E0B3 -:1005A00001C01D92AE31B107E1F70E94BD110C945C -:1005B000D62C0C9400000895089581E008950895C4 -:1005C0000C94DC020C94DD020C94DF020E94A02843 -:1005D00023E030E0281B3109220F2093C401089545 -:1005E000282F2F9880918000211108C0877F809349 -:1005F000800010928D0010928C001BC08860809348 -:100600008000233019F48FEF9FEF0FC083E090E05C -:10061000821B9109880F991F2FEF3FEFA90102C09C -:10062000569547958A95E2F7CA0190938D0080937D -:100630008C000C94E6020E94E60284E08093C301E1 -:100640001092C0010895279A2F988FEF9FEF9093F3 -:100650008700809386008AE08093800089E1809300 -:1006600081000E9409280C941B030E9423036E9AA8 -:10067000769A0C94DB021F920F920FB60F92112400 -:100680002F933F938F939F93EF93FF93E091C1013B -:10069000F091C201CF0101969093C2018093C101F4 -:1006A0000090C30102C0F695E7950A94E2F7EF7354 -:1006B0008091C001823019F4E03251F404C08130DD -:1006C00039F4EF3329F480916F008D7F80936F00B0 -:1006D000F0E0E457FE4FE49121E031E0E29FC001F9 -:1006E000E39F900D11240090C40102C09695879558 -:1006F0000A94E2F790938D0080938C00FF91EF9124 -:100700009F918F913F912F910F900FBE0F901F904F -:10071000189581E008950C94890308950C9435038D -:1007200080911502882309F448C08091D1019091ED -:10073000D201009779F40E94DD229093D201809338 -:10074000D1018091D30190E0009771F48091D401A0 -:1007500090E00AC00E94E92220910001309101013D -:100760002817390740F329C00197880F991F880F70 -:10077000991FFC01EB52FE4F608171818281938150 -:100780000E94520AE091D30184E0E89FF001112415 -:10079000EB52FE4F60817181828193814FE050E086 -:1007A0000E940A0E8091D30190E001966091D401DD -:1007B00070E00E94862C8093D3010C94E00210928A -:1007C00017020C941F0A0895089581E08093170280 -:1007D0000C94E403089508958F929F92AF92BF9274 -:1007E000EF92FF920F931F93CF93DF93CDB7DEB7B6 -:1007F000A3970FB6F894DEBF0FBECDBF7C01FC01FE -:1008000000811181C8010E94DA20B8010E94F1051F -:100810008C01B7010E948B03882309F4CCC10032FC -:10082000F0E51F0741F4F7018281882309F458C0DD -:100830000E946E0EC0C10132F0E51F0741F4F701BE -:100840008281882309F44CC00E94770EB4C1023221 -:10085000F0E51F0751F4F7018281882309F440C0B5 -:100860000E946A0E8111F0CFE3CF0332F0E51F073B -:1008700039F4F7018281882399F10E94E5039BC135 -:100880000432F0E51F0739F4F7018281882341F132 -:100890000E94DF0390C10532F0E51F0749F4F7011C -:1008A00082818823E9F0809117028111F1CFE5CF91 -:1008B0000632F0E51F0739F4F7018281882381F0C1 -:1008C0000E947E0E0AC00732F0E51F0749F4F701C7 -:1008D0008281882329F00E94890E0E94EB036BC15C -:1008E00080911702811105C0F70182818111CFC06B -:1008F00018C1003E110579F4F7018281882309F4BB -:100900004DC00E941F0A81E08093160210921502CA -:100910001092D40150C1023E110559F4F7018281B1 -:100920008823E1F10E941F0A10921602109215020C -:1009300042C1033E110591F4F7018281882371F1D0 -:100940000E941F0A1092160281E0809315021092F5 -:10095000D3011092D2011092D1012DC1023511059F -:1009600059F4F7018281882309F425C1809100019F -:10097000909101010A970DC00135110579F4F70135 -:100980008281882309F417C18091000190910101AF -:100990000A9690930101809300010DC140910401DA -:1009A00083E2EFE1F1E0DE01119601900D928A956C -:1009B000E1F7F701808121E030E02C0F3D1F280F87 -:1009C000311DC9012091020130910301FC01E20FA8 -:1009D000F31F6081772767FD7095640F711D88276D -:1009E00077FD8095982F0E94A82920E030E040E410 -:1009F00051E40E940D294B015C01F701218184E043 -:100A000090E0821B9109BC01882777FD8095982F83 -:100A10000E94A8299B01AC01C501B4010E94A52830 -:100A20009B01AC0160E070E080E090E40E941B2B31 -:100A300020E030E04CED50E40E94B82A4B015C010C -:100A4000F70182818823D1F04FE050E0C501B40165 -:100A50000E940A0E809116028823A1F08091D40191 -:100A600024E0829FF0011124EB52FE4F808291829C -:100A7000A282B3828F5F8093D40104C0C501B40108 -:100A80000E94520A0F3F110508F02ECF94C08091AA -:100A9000D00181111FC0043130E5130709F051C0A6 -:100AA0000E948D0381E08093D0010E94DD2290930B -:100AB000CF018093CE011092C7011092C90110920C -:100AC000C8011092CB011092CA011092CD01109270 -:100AD000CC0171C08091CE019091CF010E94E9229A -:100AE000883C910570F48091C701E82FF0E0EE0F8B -:100AF000FF1FE853FE4F118300838F5F8093C70170 -:100B00005AC0043880E5180721F00538104501F176 -:100B10003AC0F7018281882341F01092C50182E03A -:100B20001EC0043830E5130759F58091C5018111C5 -:100B300006C086E20E94361886E20E94FE1882E015 -:100B40001CC00438F0E51F0741F305381045D9F4FF -:100B5000F7018281882331F01092C60180E20E9461 -:100B60004D1929C08091C601811106C087E20E94FB -:100B7000361887E20E94FE1880E20E9454191BC0BA -:100B80000538104529F381E08093C5018093C601A3 -:100B9000C701A3960FB6F894DEBF0FBECDBFDF919D -:100BA000CF911F910F91FF90EF90BF90AF909F90CA -:100BB0008F900C94E20280E0A3960FB6F894DEBF0B -:100BC0000FBECDBFDF91CF911F910F91FF90EF909E -:100BD000BF90AF909F908F90089580E090E008952F -:100BE00008959CE0799FF001112490E3899FE00D26 -:100BF000F11D1124E60FF11DEE0FFF1FEC52FE4F09 -:100C0000859194910895880F991FFC01E45BFF4F33 -:100C1000859194910895880F991FFC01E453FE4F2C -:100C20008591949108950F931F93CF93DF93EC01D7 -:100C3000811521E39207A0F5C11580E3D80708F0DC -:100C4000D7C0C83ED105D8F4C03ED10508F007C2D0 -:100C5000C83AD10578F4C53AD10508F06AC0C13068 -:100C6000D10509F463C008F4F7C1C430D10508F018 -:100C7000F6C1F2C1CB3BD10508F466C0EDC1C11588 -:100C800090E2D90708F0AFC0C11521E0D20708F003 -:100C9000E6C1C03FD10508F4DFC18E0110651FC257 -:100CA000C03880E5D80700F5C03790E5D90708F0CF -:100CB000A3C0C11520E5D20709F4ACC050F4CE01A1 -:100CC000905480319F4008F0C7C1DF708E01106AD8 -:100CD00006C2C13080E5D80709F4AEC0C43190E542 -:100CE000D90708F4AFC0B8C1C33820E5D20709F46A -:100CF0008EC050F4C13890E5D90709F482C008F0DD -:100D000083C000E011EDEBC1C03181E5D80708F4E4 -:100D1000A3C1C11597E5D90708F436C1CE01905794 -:100D20008115904108F098C1DF7093C101E010E097 -:100D3000D6C1C53AD10509F494C1C63AD10509F026 -:100D400093C102E810E4CBC1C83AD10509F48FC1C0 -:100D5000C93AD10509F48EC1CA3AD10509F48DC149 -:100D6000CB3AD10509F48CC1CC3AD10509F48BC139 -:100D7000CD3AD10509F48AC1C03BD10509F489C136 -:100D8000CE3AD10509F488C1CF3AD10509F487C11B -:100D9000C13BD10509F486C1C23BD10509F485C127 -:100DA000C33BD10509F484C1C43BD10509F483C117 -:100DB000C53BD10509F482C1C63BD10509F481C107 -:100DC000C73BD10509F480C1C83BD10509F47FC1F7 -:100DD000C93BD10509F47EC1CA3BD10509F47DC1E7 -:100DE00000E014E47CC1CE019F700E940B0678C124 -:100DF000DD278E01106C73C1CF70DD278E01146D5D -:100E00006EC100E010ED6BC100E012ED68C100E0C2 -:100E100013ED65C10E94E11B0E941F0A0E94E303BB -:100E20008FEF94E32CE0815090402040E1F700C028 -:100E300000000E94382353C18091F20281608093A8 -:100E4000F2024DC10E949923811102C00E947523B4 -:100E50000E94AC2390E090931D0380931C03C2304A -:100E600080E5D80721F480911C03816086C0C430DE -:100E700090E5D90721F480911C0382607EC0C630C2 -:100E800020E5D20721F480911C03846076C0C8302D -:100E900080E5D80719F480911C0327C0CA3090E57B -:100EA000D90721F480911C03806167C0CC3020E514 -:100EB000D20721F480911C0380625FC0CE3080E5B0 -:100EC000D80721F480911C03806457C0C03190E59D -:100ED000D90721F480911C0380684FC0C23120E5FE -:100EE000D20729F480911C038460886046C0C33017 -:100EF00080E5D80721F480911C038E7F3EC0C53069 -:100F000090E5D90721F480911C038D7F36C0C7304E -:100F100020E5D20721F480911C038B7F2EC0C930BD -:100F200080E5D80719F480911C0326C0CB3090E5EA -:100F3000D90721F480911C038F7E1FC0CD3020E59E -:100F4000D20721F480911C038F7D17C0CF3080E53C -:100F5000D80721F480911C038F7B0FC0C13190E52D -:100F6000D90721F480911C038F7707C0C331D04586 -:100F700031F480911C038B7F877F80931C038091C9 -:100F80001C030E94B023ABC08D2F99278F70992727 -:100F900081309105D9F49E012370332702C0880F58 -:100FA000991F2A95E2F79C688E0144E0000F111FFB -:100FB0004A95E1F700271370802B912B53E0CC0F5B -:100FC000DD1F5A95E1F7C076DD272FC082309105ED -:100FD00031F4DC2FCC278E01016F106A80C0833082 -:100FE000910569F4CE018370992701E010E002C0F9 -:100FF000000F111F8A95E2F7C8019C680FC084306A -:101000009105B9F4CE018370992701E010E002C088 -:10101000000F111F8A95E2F7C8019A6823E0CC0FF0 -:10102000DD1F2A95E1F7C07ED7708C010C2B1D2B9C -:1010300056C08530910531F4DC2FCC278E01046F2A -:10104000106A4DC0069709F04AC0CF71DD27DC2F2A -:10105000CC278E01106243C000E010E040C08E013A -:101060003EC001E810E43BC003E810E438C002EEE3 -:1010700014E435C009EE14E432C00AEE14E42FC0C3 -:1010800005EB14E42CC006EB14E429C007EB14E4D0 -:1010900026C00CEC14E423C00DEC14E420C003E8DB -:1010A00015E41DC00AE815E41AC002E915E417C0EA -:1010B00004E915E414C001E216E411C003E216E4E9 -:1010C0000EC004E216E40BC005E216E408C006E216 -:1010D00016E405C007E216E402C00AE216E4C801FD -:1010E000DF91CF911F910F9108959CE0799FF001BE -:1010F000112490E3899FE00DF11D1124E60FF11DED -:10110000EE0FFF1FEC52FE4F85919491803E9105AA -:10111000E0F4803C910558F58133910509F46FC0E6 -:1011200048F48932910509F463C08A32910509F4C3 -:101130006DC072C089339105E9F082389105D1F014 -:101140008533910509F44DC067C0833E910581F157 -:1011500038F4803E9105B9F0823E9105D9F05CC02B -:10116000863E910561F1873E9105A1F155C00E942F -:101170000306089520911C0320FD02C021FF4CC0EE -:1011800080EE90E049C080911C0380FFF9CF89E395 -:1011900090E042C080911C0382FF0EC080911C032E -:1011A00084FF03C080E090E037C083EE90E034C05D -:1011B00080911C0382FFF2CF82EE90E02DC08091DF -:1011C0001C0383FF0BC080911C0384FDEBCF87EED3 -:1011D00090E022C080911C0383FFF5CF86EE90E063 -:1011E0001BC080911C0385FF07C089E290E014C0FA -:1011F00080911C0385FFF9CF85E390E00DC08091BD -:101200001C0386FF07C08AE290E006C080911C03A1 -:1012100086FFF9CF81E390E00E94130608950C94B5 -:10122000E402E82FF0E0E25BFE4F8081E82FEF70F0 -:10123000F0E082958F7021E030E0A90102C0440FF8 -:10124000551F8A95E2F740A308950F931F93CF93FC -:10125000DF9385B7806885BF85B7806885BFC3E0A9 -:10126000D0E001E010E0FE01E25BFE4F8081E82F5C -:10127000EF70F0E021A182958F70A80102C0440FA9 -:10128000551F8A95E2F7CA01822B81A38C2F0E94F9 -:101290001109219740F78BE090E061E070E0FC01DC -:1012A000EE5BFE4F2081E22FEF70F0E042A122952D -:1012B0002F70DB0102C0AA0FBB1F2A95E2F79D0128 -:1012C000242B22A3019758F7DF91CF911F910F9103 -:1012D0000C948E03EF92FF920F931F93CF93DF93A3 -:1012E00000E212E0C3E0EE24E394F12CD5E08C2F71 -:1012F0000E9411098BE090E040E050E0FC01EE5BC1 -:10130000FE4F6081E62FEF70F0E020A130E06295A3 -:101310006F7002C0359527956A95E2F720FD09C0E8 -:101320009701082E02C0220F331F0A94E2F7422BC6 -:10133000532B019718F7F801929182918F0184172E -:10134000950721F051834083D09305018C2F0E9493 -:101350001109C15060F68091050187FD2CC08150B4 -:10136000809305018F3F39F08FE99FE00197F1F7F6 -:1013700000C0000020C080911E0290911F02909337 -:1013800027028093260280911C0290911D02909367 -:1013900025028093240280911A0290911B0290935F -:1013A0002302809322028091180290911902909357 -:1013B0002102809320020E94900381E0DF91CF916F -:1013C0001F910F91FF90EF900895E82FF0E0EE0F3E -:1013D000FF1FE05EFD4F80819181089508950F9376 -:1013E0001F93CF9308E212E0C0E0F801929182913E -:1013F0008F010E945522C80FF2E000321F07A9F7A3 -:101400008C2FCF911F910F9108950E9499238111E4 -:1014100002C00E9475230E94BE23809307033E9A58 -:10142000809171008D7F8093710082E080939000A5 -:101430008AE18093910081E080932A02089580914F -:101440002A02811102C00E94050A10927A021092AB -:101450007902809171008D7F80937100809190005E -:101460008F738093900010923C0210923B02109276 -:10147000730210927402109275021092760210920A -:10148000720210927102E1E5F2E0A1E4B2E0119281 -:101490001192119211921D921D9282E0E137F8078C -:1014A000B1F70895CF92DF92EF92FF920F931F93BF -:1014B000CF93DF9320913B02222309F484C06B0178 -:1014C0007C0180912A02811102C00E94050A01E775 -:1014D00012E0C7E0D0E0A7019601F8019291829155 -:1014E000729162918F010E940929811131C0FE0120 -:1014F000EE0FFF1FEE0FFF1FEF5AFD4F10821182FC -:1015000012821382DE01AA0FBB1FAF5BBD4F119683 -:101510001C921E92C730D105E9F021964481558175 -:10152000668177814083518362837383148215823D -:101530001682178212968D919C91139711969C9307 -:101540008E9313961C921E92129734961296E2CFA7 -:10155000219708F68091790290917A02019797FD80 -:1015600005C090937A028093790204C010927A02A7 -:10157000109279028091790290917A0220917702FB -:10158000309178022817390724F0109278021092CF -:101590007702892BC1F4809171008D7F8093710057 -:1015A000809190008F73809390001092730210923C -:1015B00074021092750210927602109272021092CA -:1015C000710210923B02DF91CF911F910F91FF901A -:1015D000EF90DF90CF9008951F920F920FB60F9269 -:1015E00011244F925F926F927F928F929F92AF924F -:1015F000BF92CF92DF92EF92FF922F933F934F9340 -:101600005F936F937F938F939F93AF93BF93CF938A -:10161000DF93EF93FF9380913B02882309F49BC1F2 -:10162000C0917902D0917A021C161D060CF093C16C -:1016300040902B0250902C0260902D0270902E0250 -:1016400020E030E0A901C301B2010E94B42A1816BB -:101650000CF065C0C130D10509F452C08091770209 -:1016600090917802BE010E94862C7C0190937802B2 -:101670008093770280903D0290903E02A0903F02BE -:10168000B090400220E030E040E85FE3C501B401E3 -:101690000E94A52860933D0270933E0280933F0212 -:1016A00090934002F701EE0FFF1FEE0FFF1FEF5A5E -:1016B000FD4FA301920160817181828193810E941B -:1016C0000D2920E030E040E05EE30E94B82A9B0153 -:1016D000AC01C501B4010E94B42A18168CF4C701EC -:1016E0000196BE010E94862C909378028093770227 -:1016F00010923D0210923E0210923F021092400260 -:10170000E0917702F0917802EE0FFF1FEE0FFF1FBE -:10171000EF5AFD4F6081718182819381D0C0C0906A -:101720007302D0907402E0907502F090760220E08F -:1017300030E0A901C701B6010E9409292197882339 -:1017400009F4A2C0FE01EE0FFF1FEE0FFF1FEF5ABC -:10175000FD4F80809180A280B380A5019401C701D4 -:10176000B6010E94092987FF31C0A501940160E0FC -:1017700070E08CED93EC0E940D2920E030E040E415 -:1017800051E40E940D2920E030E040E05FE30E9438 -:10179000B82A9B01AC0160E070E080E090E40E9418 -:1017A0001B2B9B01AC01C501B4010E94B82A9B010F -:1017B000AC01C701B6010E94092987FF07C0A70134 -:1017C000960160E070E08CED93E439C0A5019401CE -:1017D000C701B6010E94B42A18160CF055C0A50125 -:1017E000940160E070E08CED93E40E940D2920E00C -:1017F00030E040E451E40E940D2920E030E040E078 -:101800005FE30E94B82A9B01AC0160E070E080E0D9 -:1018100090E40E941B2B9B01AC01C501B4010E9406 -:10182000B82A9B01AC01C701B6010E94B42A181660 -:101830005CF5A701960160E070E08CED93EC0E94EE -:101840000D2920E030E040E451E40E940D2920E021 -:1018500030E040E05FE30E94B82A9B01AC0160E009 -:1018600070E080E090E40E941B2B9B01AC01C7015B -:10187000B6010E94B82A6093730270937402809339 -:1018800075029093760213C0FE01EE0FFF1FEE0F5C -:10189000FF1FEF5AFD4F80819181A281B381809318 -:1018A000730290937402A0937502B09376026091D4 -:1018B000730270917402809175029091760220916A -:1018C0002802309129022F3F4FEF340731F02F5F6C -:1018D0003F4F30932902209328020E94940E6B01FF -:1018E0007C0120E034E244EF51E40E94092987FFA3 -:1018F00008C086EFC82E88E2D82E84EFE82E81E457 -:10190000F82E20E030E040E051E4C701B6010E942B -:10191000B82A9B01AC0160E074E284E79BE40E947A -:101920000D296B017C010E947A29709397006093C6 -:1019300096002091060130910701409108015091D5 -:101940000901C701B6010E94B82A0E947A29709342 -:1019500099006093980080913C02882309F433C178 -:10196000C0903702D0903802E0903902F0903A02ED -:1019700020E030E0A901C701B6010E94B42A181680 -:10198000D4F580912802909129028F3F2FEF920782 -:1019900029F001969093290280932802C701B6018D -:1019A0000E94940E20E030E040E051E40E94B82A0A -:1019B0009B01AC0160E074E284E79BE40E940D2986 -:1019C0006B017C010E947A297093970060939600C6 -:1019D00020910601309107014091080150910901C1 -:1019E000C701B6010E94B82A0E947A297093990013 -:1019F0006093980008C01092970010929600109281 -:101A000099001092980060913102709132026F5FDC -:101A10007F4F709332026093310220919600309193 -:101A2000970080E090E0232BF1F0C0919600D091D8 -:101A300097000E94A6296B017C01BE0180E090E026 -:101A40000E94A6299B01AC0160913302709134027F -:101A500080913502909136020E940D2920E03FEFDF -:101A60004FE757E410C00E94A6296B017C0120E0DB -:101A700030EE4FEF54E46091330270913402809164 -:101A80003502909136020E94B82A9B01AC01C70131 -:101A9000B6010E94B42A87FD96C080912F028F5F05 -:101AA00080932F0290E0209103033091040382176A -:101AB0009307A0F080910E03882319F010922F0253 -:101AC0000DC0809171008D7F809371008091900096 -:101AD0008F738093900010923C027DC08091300201 -:101AE000C0912F02811128C0C0900803D090090333 -:101AF000E0900A03F0900B0320E030E0A901C70159 -:101B0000B6010E94B42A1816BCF481E0809330021A -:101B100010923702109238021092390210923A0253 -:101B2000C0923302D0923402E0923502F092360233 -:101B3000C150C0932F0243C010923002109229026C -:101B400010922802E0910503F091060348E0C49F3B -:101B5000E00DF11D112480819181A281B3818093D8 -:101B6000370290933802A0933902B0933A0220E0F2 -:101B700030E040E85EE364817581868197810E9450 -:101B8000B82A6B017C0180910A01682F70E080E027 -:101B900090E00E94A62920E030E048EC52E40E9448 -:101BA0000D299B01AC01C701B6010E94B82A6093C0 -:101BB0003302709334028093350290933602109270 -:101BC0003202109231028091070380FD04C010920E -:101BD0003C0210923B02FF91EF91DF91CF91BF91B8 -:101BE000AF919F918F917F916F915F914F913F91B5 -:101BF0002F91FF90EF90DF90CF90BF90AF909F908C -:101C00008F907F906F905F904F900F900FBE0F90CE -:101C10001F901895CF92DF92EF92FF92CF93DF93B0 -:101C20006B017C01EA0180912A02811102C00E94AD -:101C3000050A8091070380FF46C080917902909148 -:101C40007A0208970CF03FC0809171008D7F8093DD -:101C5000710080913C0281110E941F0A81E08093F3 -:101C60003B02109229021092280220E030E0A901E4 -:101C7000C701B6010E94B42A1816DCF480917902DB -:101C800090917A02FC01EE0FFF1FEE0FFF1FEF5A3B -:101C9000FD4FC082D182E282F382FC01EE0FFF1F72 -:101CA000EF5BFD4FD183C083019690937A028093BE -:101CB0007902809171008260809371008091900020 -:101CC000806880939000DF91CF91FF90EF90DF903C -:101CD000CF90089580910703817008958091070344 -:101CE0008160809307030E94C2230C94EA038091D1 -:101CF00007038E7F809307030C94C22380917B029D -:101D000090E0019666E070E00E94862C80937B0252 -:101D1000089580917B0290E0019766E070E00E9458 -:101D2000862C80937B0208958F929F92AF92BF92F0 -:101D3000CF92DF92EF92FF920F931F93CF93DF9397 -:101D40006B017C01C0912802D0912902BE0180E084 -:101D500090E00E94A6294B015C01A701960160E07A -:101D600070E08CE594E40E940D299B01AC01C50153 -:101D7000B4010E94B82A0E947A2920917B02233064 -:101D800009F473C028F4222351F02130E9F02CC16A -:101D9000243009F4A0C0253009F4E0C025C180E05A -:101DA00090E0A0E0BFE38093060190930701A09329 -:101DB0000801B093090110922B0210922C0210928C -:101DC0002D0210922E0210C110922B0210922C02A2 -:101DD00010922D0210922E026431710540F46A3087 -:101DE000710560F520E030E040E85EE32BC0693C1F -:101DF000710508F0AAC080E090E00E94A62920E0CA -:101E000030E040EA51E40E94A42820E030E044E3BE -:101E100053E40E940D299B01AC010E94B82A20E0E6 -:101E200030E040E05EE30E94B82A9B01AC0160E034 -:101E300070E080E09EE30E94A42844C020E030E0EF -:101E400040E05FE3C701B6010E94B82A6B017C0144 -:101E500080E090E0A0E0BEE380930601909307014C -:101E6000A0930801B0930901BFC010922B021092F9 -:101E70002C0210922D0210922E024AE0469F9001F1 -:101E8000479F300D1124C90168EB7BE00E94722C42 -:101E9000BC016C5D754077FF03C071956195710958 -:101EA000882777FD8095982F0E94A8292EE333EC90 -:101EB0004EE259E30E94B82A20E030E040EC5EE3B5 -:101EC0000E94A52860930601709307018093080182 -:101ED0009093090189C010922B0210922C0210924B -:101EE0002D0210922E02CE0183709927892BE1F0EA -:101EF000BE016170772780E090E00E94A62920E073 -:101F000030E040E05EE30E94B82A20E030E040E4A8 -:101F10005FE30E94A52860930601709307018093F8 -:101F20000801909309010CC080E090E0A0E0BFE3BD -:101F30008093060190930701A0930801B0930901D3 -:101F4000C770DD27CD2B09F04FC01092060110920B -:101F50000701109208011092090146C010922B024D -:101F600010922C0210922D0210922E0200E010E02E -:101F700020E03FE30093060110930701209308013E -:101F8000309309016739710578F180E090E00E9493 -:101F9000A62920E030E047E153E40E94A42820E095 -:101FA00030E04AE754E40E940D2920E030E048E4A4 -:101FB00052E40E94B82A20E030E040EA51E40E9456 -:101FC000EA290E947529660F771F660F771FFB01AC -:101FD000EE5AFE4F2081318142815381C701B60103 -:101FE0000E94B82A6B017C01C701B601DF91CF9135 -:101FF0001F910F91FF90EF90DF90CF90BF90AF9027 -:102000009F908F90089580918C020895CF93DF93D5 -:1020100000D01F92CDB7DEB79C01809113038430AE -:1020200019F593E099833B832A839093E9008FEF1E -:102030009091E800815095FD06C095ED9A95F1F7D5 -:1020400000008111F5CF8091E80085FF0DC040E0D0 -:1020500050E063E070E0CE0101960E94671280912B -:10206000E8008E778093E8000F900F900F90DF913B -:10207000CF910895CF93DF9300D01F92CDB7DEB7F5 -:1020800020911303243021F522E029839B838A8346 -:1020900083E08093E9008FEF9091E800815095FDF7 -:1020A00006C095ED9A95F1F700008111F5CF80916A -:1020B000E80085FF0DC040E050E063E070E0CE0135 -:1020C00001960E9467128091E8008E778093E80065 -:1020D0000F900F900F90DF91CF91089520911303EF -:1020E0002430F1F422E02093E9002FEF3091E80052 -:1020F000215035FD06C035ED3A95F1F7000021116C -:10210000F5CF2091E80025FF0BC040E050E065E0EE -:1021100070E00E9467128091E8008E778093E8005B -:102120000895CF93DF93EC0190911303943009F05D -:1021300046C0809115018823D9F08091160188232B -:10214000B9F09093E9008FEF9091E800815095FDF0 -:1021500006C095E19A95F1F700008111F5CF8091C5 -:10216000E80085FF2CC040E050E060E170E017C05F -:1021700081E08093E9008FEF9091E800815095FD18 -:1021800006C095ED9A95F1F700008111F5CF809189 -:10219000E80085FF14C040E050E068E070E0CE0148 -:1021A0000E9467128091E8008E778093E80080E1BA -:1021B000FE01ACE7B2E001900D928A95E1F7DF9164 -:1021C000CF91089580911203811109C00E94FC13E0 -:1021D0000E9459148091E20084608093E200089587 -:1021E000109212030895089508950C94A02242E0DD -:1021F00061EC81E00E94761342E061EC82E00E9493 -:10220000761342E061EC83E00E94761342E161ECD8 -:1022100084E00C94761380911503833009F455C043 -:1022200030F4813071F0823009F48EC008958A3024 -:1022300009F47AC08B3009F460C0893009F09CC081 -:1022400020C080911403813A09F096C08091E80083 -:10225000877F8093E8008091180390911903892B60 -:1022600021F460E18CE792E003C060E080E090E060 -:1022700070E00E94B2128091E8008B778093E800B2 -:10228000089580911403813209F076C0809118037B -:1022900090911903009719F0039709F06DC0809190 -:1022A000E800877F8093E8008091E80082FD05C008 -:1022B000809113038111F8CF5FC08091F10080936A -:1022C0008C028091E8008B7753C080911403813A8F -:1022D00009F052C08091180390911903892B09F0DD -:1022E0004BC08091E800877F8093E8008091E800F0 -:1022F00080FFFCCF8091150136C08091140381329C -:10230000D9F58091180390911903892BA9F5809133 -:10231000E800877F8093E8000E94AB13809116034A -:10232000809315010C94E11B80911403813221F5F7 -:102330008091E800877F8093E8000E94AB13809132 -:10234000170380938D02089580911403813AA1F4BC -:102350008091E800877F8093E8008091E80080FF0B -:10236000FCCF80918D028093F1008091E8008E7700 -:102370008093E8000C94AB13089584B7877F84BFE3 -:1023800088E10FB6F89480936000109260000FBE51 -:1023900090E080E80FB6F89480936100909361001C -:1023A0000FBE0E944E170E94FC130E945914809188 -:1023B000E20084608093E20078940E94DF160E941D -:1023C00050178BE091E00E94FA168091130385303C -:1023D00069F40E946122809111038823B1F30E9465 -:1023E0008F22882391F30E945112EFCF0E94581739 -:1023F000ECCF292F332723303105C9F064F4213085 -:10240000310581F02230310509F043C08DE690E0BE -:1024100020EB33E042C021323105F1F022323105A8 -:1024200041F137C082E190E02DE134E036C09927D8 -:102430008130910541F08230910541F0892B49F5B9 -:10244000ECEAF3E005C0EEE7F3E002C0E4E5F3E018 -:10245000849190E09F0121C06430D8F4E62FF0E031 -:10246000EE0FFF1FE255FE4F2081318189E090E0A1 -:1024700014C0643070F470E0FB01EE0FFF1FEA55EA -:10248000FE4F20813181FB01EE55FE4F808190E0AF -:1024900004C080E090E020E030E0FA013183208346 -:1024A000089580E189BD82E189BD09B400FEFDCFB8 -:1024B0008091D8008F7D8093D8008091E000826069 -:1024C0008093E0008091E00081FDFCCF0895CF92E1 -:1024D000DF92EF92FF920F931F93CF93DF93EC0164 -:1024E0008B016A010E94CA13811133C0C114D10447 -:1024F00039F0F60180819181081B190BC80FD91F93 -:10250000E12CF12C0115110519F18091E80085FDF0 -:1025100016C08091E8008E778093E800C114D10442 -:1025200049F0F60180819181E80EF91EF182E08286 -:1025300085E00FC00E94CA13882321F30AC0899145 -:102540008093F10001501109FFEFEF1AFF0ADACF73 -:1025500080E0DF91CF911F910F91FF90EF90DF907E -:10256000CF90089520911A0330911B032617370747 -:1025700048F06115710539F42091E8002E77209319 -:10258000E80001C0B90140E061157105A9F1209191 -:102590001303222309F443C0253009F442C02091DB -:1025A000E80023FD40C02091E80022FD32C02091C8 -:1025B000E80020FFE9CF4091F3002091F20030E0E5 -:1025C000342BFC01CF016115710559F0283031051C -:1025D00040F481918093F100615071092F5F3F4F6A -:1025E000F1CF41E02830310509F040E02091E800CA -:1025F0002E772093E800C8CF4111C9CF0AC080913F -:102600001303882361F0853061F08091E80083FD39 -:102610000AC08091E80082FFF2CF80E0089582E056 -:10262000089583E0089581E0089520911A03309180 -:102630001B032617370748F06115710539F42091FF -:10264000E8002E772093E80001C0B901FC0120E0EA -:102650006115710591F180911303882309F440C03D -:10266000853009F43FC08091E80083FD3DC0809132 -:10267000E80082FD2FC08091E80080FFE9CF209123 -:10268000F3008091F20090E0922B6115710559F0F2 -:102690008830910540F424912093F10031966150E7 -:1026A00071090196F2CF21E0089709F020E08091AE -:1026B000E8008E778093E800CBCF2111CCCF0AC001 -:1026C00080911303882361F0853061F08091E800E8 -:1026D00083FD0AC08091E80082FFF2CF80E0089578 -:1026E00082E0089583E0089581E00895982F97305F -:1026F00058F59093E900981739F07091EC0020910B -:10270000ED005091F00003C0242F762F50E021FF00 -:1027100019C03091EB003E7F3093EB003091ED001B -:102720003D7F3093ED003091EB0031603093EB0052 -:102730007093EC002093ED005093F0002091EE0098 -:1027400027FF07C09F5FD3CF8F708093E90081E0A0 -:10275000089580E008958091140387FF11C080914F -:10276000E80082FD05C0809113038111F8CF11C0EC -:102770008091E8008B770BC080911303882349F088 -:102780008091E80080FFF8CF8091E8008E778093F9 -:10279000E80008952091E4003091E50095E640912D -:1027A000EC00842F817040FF22C08091E80080FD02 -:1027B0001CC080911303882391F0853091F08091A3 -:1027C000EB0085FD10C04091E4005091E5004217F8 -:1027D000530729F39A01915011F784E0089582E09C -:1027E000089583E0089581E0089580E00895409180 -:1027F000E80042FFDECF08950E946A140E9472141E -:10280000E0EEF0E0808181608083E8EDF0E080819F -:102810008F77808319BCA7EDB0E08C918E7F8C936D -:1028200080818F7E80831092120308950F931F93EF -:10283000CF93DF930E946A140E947214C8EDD0E017 -:1028400088818F77888388818068888388818F7D5D -:10285000888319BC1092130310920F031092110376 -:102860001092100300EE10E0F80180818B7F8083CE -:1028700088818160888342E060E080E00E94761376 -:10288000E1EEF0E080818E7F8083E2EEF0E08081F7 -:1028900081608083808188608083F80180818E7F61 -:1028A0008083888180618883DF91CF911F910F9110 -:1028B0000895E8EDF0E080818F7E8083E7EDF0E021 -:1028C00080818160808384E082BF81E080931203F5 -:1028D0000C941614E8EDF0E080818E7F80831092D6 -:1028E000E20008951092DA001092E10008951F921C -:1028F0000F920FB60F9211242F933F934F935F9334 -:102900006F937F938F939F93AF93BF93EF93FF93B7 -:102910008091E10082FF0BC08091E20082FF07C03E -:102920008091E1008B7F8093E1000E94DE16809110 -:10293000DA0080FF1FC08091D80080FF1BC080910B -:10294000DA008E7F8093DA008091D90080FF0DC07D -:1029500080E189BD82E189BD09B400FEFDCF81E03F -:10296000809313030E94E21005C019BC1092130358 -:102970000E94F0108091E10080FF19C08091E20078 -:1029800080FF15C08091E2008E7F8093E2008091ED -:10299000E20080618093E2008091D80080628093A1 -:1029A000D80019BC85E0809313030E94F410809135 -:1029B000E10084FF30C08091E20084FF2CC080E100 -:1029C00089BD82E189BD09B400FEFDCF8091D800A8 -:1029D0008F7D8093D8008091E1008F7E8093E1000D -:1029E0008091E2008F7E8093E2008091E20081601E -:1029F0008093E20080910F03882311F084E007C0E8 -:102A00008091E30087FD02C081E001C083E08093F4 -:102A100013030E94F5108091E10083FF29C080918B -:102A2000E20083FF25C08091E100877F8093E10071 -:102A300082E08093130310920F038091E1008E7F58 -:102A40008093E1008091E2008E7F8093E20080918C -:102A5000E20080618093E20042E060E080E00E945A -:102A600076138091F00088608093F0000E94F3104C -:102A7000FF91EF91BF91AF919F918F917F916F9156 -:102A80005F914F913F912F910F900FBE0F901F902C -:102A900018951F920F920FB60F9211242F933F9308 -:102AA0004F935F936F937F938F939F93AF93BF9356 -:102AB000CF93DF93EF93FF93C091E900CF708091A4 -:102AC000EC00D82FD17080FDD0E81092E900809101 -:102AD000F000877F8093F00078940E948D1510920B -:102AE000E9008091F00088608093F000CD2BCF70DA -:102AF000C093E900FF91EF91DF91CF91BF91AF912A -:102B00009F918F917F916F915F914F913F912F9105 -:102B10000F900FBE0F901F9018951F93CF93DF93C8 -:102B2000CDB7DEB7AA970FB6F894DEBF0FBECDBF04 -:102B3000E4E1F3E088E08E0F9091F10091938E1321 -:102B4000FBCF0E940B118091E80083FF1FC1809191 -:102B5000140390911503492F50E04A30510508F0B5 -:102B600015C1FA01EA5AFF4F0C949A2C803881F073 -:102B7000823809F00BC1809118038F708093E900AF -:102B80008091EB0085FB882780F91092E90006C050 -:102B90008091100390911103911182609091E8004F -:102BA000977F9093E8008093F1001092F100C8C0E5 -:102BB000282F2D7F09F0EAC0882319F0823061F0B8 -:102BC000E5C080911603813009F0E0C0933009F030 -:102BD00080E0809311032BC080911603811127C0E0 -:102BE000809118038F7009F4D1C08093E90020917F -:102BF000EB0020FF1CC0933021F48091EB00806239 -:102C000014C09091EB0090619093EB0021E030E0D4 -:102C1000A90102C0440F551F8A95E2F74093EA00CC -:102C20001092EA008091EB0088608093EB00109294 -:102C3000E9008091E800877F86C08111A7C01091CC -:102C400016031F778091E3008078812B8093E30047 -:102C50008091E800877F8093E8000E94AB13809109 -:102C6000E80080FFFCCF8091E30080688093E30060 -:102C7000111102C082E001C083E08093130386C07B -:102C80008058823008F082C080911603909117031B -:102C90008C3D53E0950779F583E08A838AE2898346 -:102CA0004FB7F894DE01139620E03EE051E2E32FA7 -:102CB000F0E050935700E49120FF03C0E295EF70DD -:102CC0003F5FEF708E2F90E0EA3010F0C79601C0A2 -:102CD000C0968D939D932F5F243149F74FBF80910C -:102CE000E800877F8093E8006AE270E0CE010196F9 -:102CF0000E94B21214C0AE014F5F5F4F6091180383 -:102D00000E94F911BC01009709F440C09091E800BD -:102D1000977F9093E80089819A810E941513809192 -:102D2000E8008B778093E80031C0803879F5809196 -:102D3000E800877F8093E80080910F038093F10083 -:102D40008091E8008E778093E8000E94AB131EC04C -:102D500081111CC0909116039230C0F48091E8005C -:102D6000877F8093E80090930F030E94AB138091BC -:102D70000F03811106C08091E30087FD02C081E04E -:102D800001C084E0809313030E94F7108091E80053 -:102D900083FF0AC08091E800877F8093E8008091DC -:102DA000EB0080628093EB00AA960FB6F894DEBF2A -:102DB0000FBECDBFDF91CF911F9108950895CF939E -:102DC000809113038823A1F0C091E900CF70909106 -:102DD000EC00892F817090FD80E8C82B1092E900EB -:102DE0008091E80083FD0E948D15CF70C093E900AB -:102DF000CF91089590939302809392020895E09169 -:102E00009202F0919302309721F00190F081E02D31 -:102E1000099480E00895E0919202F0919302309736 -:102E200021F00280F381E02D09940895E09192024F -:102E3000F0919302309721F00480F581E02D099400 -:102E4000089520919002309191028217930771F0BA -:102E50009093910280939002E0919202F0919302FC -:102E6000309721F00680F781E02D09940895209194 -:102E70008E0230918F028217930771F090938F0228 -:102E800080938E02E0919202F0919302309721F0AC -:102E90000084F185E02D0994089508950C944D1750 -:102EA0000E94D4220E9425090E945A230C940928CA -:102EB0005F926F927F928F929F92AF92BF92CF92CA -:102EC000DF92EF92FF920F931F93CF93DF9300D087 -:102ED00000D01F92CDB7DEB70E946A099DE9C92EC6 -:102EE00092E0D92E03E010E0AA24A394B12C502E36 -:102EF000802F0E94E5094C01F601729062906F01EB -:102F00006826792661147104A1F40150110978F73B -:102F10008FEF89838A831B820E94DD228160782F54 -:102F20009D838C8349815A816B818D810E94081811 -:102F300038C08091F20281FD0E94EE092BE030E062 -:102F40007501022E02C0EE0CFF1C0A94E2F7C701C5 -:102F500086219721892B09F129835A828E209F206F -:102F600091E0892809F490E09B830E94DD22816032 -:102F7000782F9D838C8349815A816B818D810E943A -:102F80000818000F111FF801EB56FD4F8081918149 -:102F9000E826F926F182E08204C02150310980F64A -:102FA000B4CF0E944125109194020E94FF16181779 -:102FB000D1F00E94FF16809394020F900F900F9013 -:102FC0000F900F90DF91CF911F910F91FF90EF9095 -:102FD000DF90CF90BF90AF909F908F907F906F9039 -:102FE0005F900C940F090F900F900F900F900F901F -:102FF000DF91CF911F910F91FF90EF90DF90CF90D5 -:10300000BF90AF909F908F907F906F905F9008954A -:10301000CF93DF93CDB7DEB72B970FB6F894DEBF13 -:103020000FBECDBF4F83588769877A878B87DE01B4 -:10303000119686E0FD0111928A95E9F785E0FE017F -:10304000379601900D928A95E1F749815A816B81FB -:103050007C818D819E810E947F1E2B960FB6F894F5 -:10306000DEBF0FBECDBFDF91CF910895CF938823F0 -:1030700009F4C2C0C82F823859F40E94FF1681FD9E -:10308000BBC089E30E9459210E94262289E30CC01B -:10309000833879F40E94FF1680FDAEC083E50E945C -:1030A00059210E94262283E50E949B21CF910C94F6 -:1030B0002622843859F40E94FF1682FD9DC087E4C1 -:1030C0000E9459210E94262287E4EECF8CEF8C0FBC -:1030D000813A48F48C2F0E94712781118DC08C2F6A -:1030E0000E945921E3CF80E28C0F883048F4C770EA -:1030F00081E001C0880FCA95EAF70E94DF21D6CF90 -:103100008BE58C0F833078F4C53A29F0C63A31F05C -:1031100083E890E005C081E890E002C082E890E09A -:10312000CF910C94211788E58C0F833108F064C08F -:10313000C83A39F1C93A41F1CA3A49F1CB3A51F1A9 -:10314000CC3A59F1CD3A61F1C03B69F1CE3A71F117 -:10315000CF3A79F1C13B81F1C23B89F1C33B91F197 -:10316000C43B99F1C53BA1F1C63BA9F1C73BB1F105 -:10317000C83BB9F1C93BC1F1CA3BC9F180E090E05D -:1031800038C082EE90E035C089EE90E032C08AEE21 -:1031900090E02FC085EB90E02CC086EB90E029C03A -:1031A00087EB90E026C08CEC90E023C08DEC90E0A3 -:1031B00020C083E891E01DC08AE891E01AC082E94E -:1031C00091E017C084E991E014C081E292E011C05F -:1031D00083E292E00EC084E292E00BC085E292E0CE -:1031E00008C086E292E005C087E292E002C08AE26F -:1031F00092E0CF910C943717CF910895882309F46A -:103200004BC0823859F40E94FF1681FF45C089E304 -:103210000E9459210E94262289E30CC0833871F450 -:103220000E94FF1680FF38C083E50E9459210E944A -:10323000262283E50E949B210C942622843859F48F -:103240000E94FF1682FF28C087E40E9459210E9435 -:10325000262287E4EFCF9CEF980F913A58F390E243 -:10326000980F983050F4877091E001C0990F8A95BB -:10327000EAF7892F0E94E521DFCF9BE5980F933075 -:1032800020F480E090E00C942117885A833120F4D8 -:1032900080E090E00C9437170895882321F00E9475 -:1032A000DF210C9426220895882321F00E94E52135 -:1032B0000C94262208957F928F929F92AF92BF9294 -:1032C000CF92DF92EF92FF920F931F93CF93DF93F2 -:1032D0001F92CDB7DEB77C01C62E772EFC0105818B -:1032E00002950F70128111110E94FC210E9452213F -:1032F000882379F0112369F080E28C0D883048F042 -:1033000082E00E943B210E94522191E0D82ED926D2 -:1033100001C0D12CE72DE295EF70F0E0E05AFF4FAD -:103320000C949A2C872D807F072D0F70882311F025 -:103330000295007F112389F0002309F499C180E2EE -:103340008C0D883020F4802F0E94DF2103C0802F55 -:103350000E94EF210E9426228BC18C2D0E94FE1814 -:10336000002309F4C3C180E28C0D883020F4802F43 -:103370000E94E52103C0802F0E94F5210E94262291 -:10338000B5C1872D807F972D9F70803211F4892FD2 -:1033900003C0892F8295807FCC2021F0F1E0CF16E9 -:1033A000A1F01DC0112339F0002319F1013009F5F6 -:1033B0000E940F229BC1002319F0013009F496C12D -:1033C00089830E941222898110C1112321F00630C5 -:1033D00008F08CC10EC0053008F088C106C1112369 -:1033E00059F0002331F0F701958190FF41C19F70A2 -:1033F00095830E944D197AC1002309F4F6C03EC19D -:10340000872D86958695837090E0009719F0019737 -:1034100061F06CC1112321F08C2D972D937002C0A7 -:1034200080E090E00E94211761C1112321F08C2DD2 -:10343000972D937002C080E090E00E94371756C12C -:103440008C2D112319F00E94492402C00E94B1243E -:103450000E9436254BC1872D837009F052C011118F -:1034600045C18C2D829586958770880F880F9C2D7D -:103470009F70892E912CA12CB12C082E04C0880C91 -:10348000991CAA1CBB1C0A94D2F7C4FE14C00FE0FE -:1034900010E020E030E0B901A80104C0440F551F3E -:1034A000661F771F8A95D2F7CB01BA016095709598 -:1034B0008095909503C060E070E0CB01272D2695A4 -:1034C0002695237030E02230310569F02330310534 -:1034D00089F0682979298A299B292130310571F0E1 -:1034E0000E94C71F03C1682979298A299B290E9444 -:1034F000E31FFCC00E94C71FC501B4010E94AB1F9F -:10350000F5C0112319F0872D817001C0869588239D -:1035100009F4ECC08C2D829586958770880F880FF2 -:103520009C2D9F70892E912CA12CB12C082E04C0AB -:10353000880C991CAA1CBB1C0A94D2F7C4FE14C0A8 -:103540000FE010E020E030E0B901A80104C0440F12 -:10355000551F661F771F8A95D2F7CB01BA01609578 -:1035600070958095909503C060E070E0CB01272DA9 -:10357000269526952370422F50E04230510569F080 -:103580004330510589F0682979298A299B294130DE -:10359000510571F00E94A120A9C0682979298A29C2 -:1035A0009B290E94BD20A2C00E94A120C501B40198 -:1035B0000E9485209BC08C2D90E0FC01E05EF1090B -:1035C000E531F10508F050C0E059FF4F0C949A2CFA -:1035D0000C2D0F70872D8F71112321F00E941E205A -:1035E000802F07CF0E943F20802F0E9454197EC059 -:1035F000112341F0053008F079C0872D8F710E94AA -:10360000642074C0063008F071C0F7CF112339F080 -:10361000872D8F710E941E2069C01123C9F3872D49 -:103620008F710E943F2062C0112329F0872D8F7176 -:103630000E9409205BC00E94FF1F58C0112351F057 -:10364000172D1F71812F0E941E2063E0812F0E9481 -:1036500032214CC081E00E943B21023008F446C078 -:1036600082E00E943B2142C0112331F0002381F20D -:103670008C2D0E9436183AC0002389F28C2D0E94AE -:10368000FE1834C0472D4F706C2DC7010E94ED0508 -:103690000E94231F2BC0111129C0472D4F7050E0ED -:1036A00042305105B9F04CF44115510581F04130DB -:1036B0005105E1F40E94312819C04330510569F0E9 -:1036C0004430510599F48C2D0E9483280FC00E942C -:1036D0001A280CC00E944D2809C00E94602806C00C -:1036E000472D4F706C2DC7010E94F005DD20F9F0C9 -:1036F0000E942E2180FD1BC0F70112820E9428210A -:103700000E941E20C7010E94A61B0E9428210F9024 -:10371000DF91CF911F910F91FF90EF90DF90CF90AD -:10372000BF90AF909F908F907F900C943F200F9010 -:10373000DF91CF911F910F91FF90EF90DF90CF908D -:10374000BF90AF909F908F907F9008950F931F939D -:10375000CF93DF93EC01888199812B813C81232BCE -:10376000B9F09F3F11F48F3F99F0CE010E94EC0316 -:10377000882371F0688179818A810E9424218C01DB -:103780000E94D9200E94A01FB801CE010E945B199F -:10379000DF91CF911F910F9108950E94FC210E940B -:1037A0000C220E94D1210E9426220E94E7250E941D -:1037B000362580E090E00E94211780E090E00C9494 -:1037C00037170E94EC210C94CD1B0E941921292F40 -:1037D00022952F7030E02C3031054CF42A30310521 -:1037E0006CF42250310922303105A8F407C02C3086 -:1037F000310569F02F30310551F00DC0803F69F07F -:1038000018F4803E40F409C0843F29F406C093FBBD -:10381000882780F9089580E0089581E00895CF9386 -:10382000DF9300D000D01F92CDB7DEB70F900F907E -:103830000F900F900F90DF91CF910895CF93DF936A -:1038400000D000D000D0CDB7DEB726960FB6F894E2 -:10385000DEBF0FBECDBFDF91CF9108951F93CF93F1 -:10386000DF93C0919D0216E080919E02C81799F0E7 -:10387000D0E01C9FF0011D9FF00D1124E156FD4F7B -:103880004081518162817381848195810E941E1CD7 -:103890002196C770E9CFDF91CF911F910895409194 -:1038A000CF025091D0026091D1027091D2028091EA -:1038B000D3029091D4020C941E1C8091D402829564 -:1038C0008F7009F054C08091D102882309F44FC051 -:1038D00080919D02A0919E026091CF027091D002D2 -:1038E0004091D2025091D302B6E08A1709F43FC04A -:1038F00090E041155105C1F17F3F11F46F3FA1F1F7 -:10390000B89FF001B99FF00D1124E156FD4F2181C0 -:1039100072132AC02081621327C02281211124C082 -:10392000238134812417350710F421503109241BD9 -:10393000350B283C3105C0F42091D4022F70206152 -:103940002093D40226E0289FF001299FF00D112436 -:10395000EC55FD4F80818F70806180838FEC92E009 -:103960000E94A61B0C942E1C01968770BECF089552 -:10397000CF92DF92EF92FF920F931F93CF93DF933B -:10398000CDB7DEB762970FB6F894DEBF0FBECDBFDE -:103990008C0185E0F801DE011D9601900D928A955B -:1039A000E1F7D8014C9111965C91119712966C91A8 -:1039B00012971396CD90DC9014973091CF027091AE -:1039C000D0028091D2029091D302009709F46BC18A -:1039D0007F3F19F43F3F09F466C1E090D102EE2029 -:1039E00009F4C0C02091D402C816D90628F0F60107 -:1039F000E81BF90BCF0104C0809590958C0D9D1D9F -:103A0000FF24F394883C910578F0F12C207F09F095 -:103A1000C6C07C2DD98AC88A89890E940F1C8FEC68 -:103A200092E00E94A61BB1C0822F807F09F046C0A1 -:103A3000751314C0341312C0611110C02F702061AF -:103A40002093D4020E944F1C8FEC92E00E94A61B90 -:103A50008091D402D80115968C932EC0CD2819F1EF -:103A60005F3F11F44F3FF9F0F62E61111CC08091B9 -:103A70009D0220919E0236E0821709F45AC090E020 -:103A8000389FF001399FF00D1124E156FD4F7181EF -:103A9000571306C07081471303C07281711103C0B0 -:103AA00001968770E9CFF62E662309F418C180913C -:103AB000D40281608093D402F12C11C1751308C027 -:103AC000341306C0611104C08091D402D801C3C070 -:103AD0004D875E878D859E856A8B0E94E51B6A896E -:103AE0008823E1F16623D1F12091D402822F8295BF -:103AF0008F7090E0029774F08091CF029091D00285 -:103B000098878F831986DB86CA862C87CE01079615 -:103B10000E94A61B86E0F801AFECB2E001900D9286 -:103B20008A95E1F70E945D1C0E944F1CFF24F394CC -:103B3000D6C04D875E878D859E850E941921292FCD -:103B400022952F7030E0223031050CF0BCC09F7000 -:103B500009F0B6C0805E883008F4C1C0C8010E9478 -:103B6000A61BE4CFC816D90608F453C0F601E81B1B -:103B7000F90BCF01883C910508F450C0F12C7C2D45 -:103B8000D98AC88A89890E940F1CEFECF2E086E08E -:103B9000DF011D928A95E9F70E944F1CA0C07513A2 -:103BA00014C0341312C0611110C08091D402F80106 -:103BB0008583C8010E94A61B86E0EFECF2E0DF01DE -:103BC0001D928A95E9F7FE2C8AC04D875E878D8508 -:103BD0009E856A8B0E94E51B6A89882309F4BECF03 -:103BE000662309F4BBCF2091D402822F82958F7077 -:103BF00090E002970CF48ECF8091CF029091D0028A -:103C00009A8389831B82DD82CC822E83CE0101962A -:103C10007FCF809590958C0D9D1DACCFF62E6623A1 -:103C200009F49CCF75132EC034132CC02091D402FC -:103C300020FD1FC0822F82958F70D9F0D801159674 -:103C40002C9315978F3049F08F5F982F9295907F26 -:103C5000822F8F70892B15968C93C8010E94A61B0A -:103C600086E0F801AFECB2E001900D928A95E1F7A1 -:103C700093CF86E0F801AFECB2E001900D928A9507 -:103C8000E1F72DC04D875E878D859E850E94E51BDF -:103C9000811140CF8091D40281608093D402C80109 -:103CA0000E94A61B1CC0662309F458CF4D875E876F -:103CB0008D859E850E94E51B882309F44FCF2ACF6E -:103CC000811148CF0CC0243031050CF047CF9F70D4 -:103CD00009F440CFF8019581907F09F03BCF8F2DFB -:103CE00062960FB6F894DEBF0FBECDBFDF91CF91C5 -:103CF0001F910F91FF90EF90DF90CF9008951F9349 -:103D0000CF93DF93CDB7DEB72C970FB6F894DEBF15 -:103D10000FBECDBF4F83588769877A878B879C8773 -:103D2000CE0107960E94B81C882369F08F81988580 -:103D30002A853B85232BF1F19F3F09F063C08F3F1C -:103D400009F060C037C086E0FE013796DE011196AB -:103D500001900D928A95E1F76F817885EA85FB8560 -:103D6000309741F17F3F11F46F3F21F120919E0286 -:103D700030E0C90101968770992740919D0250E07B -:103D80008417950709F447C069837A83FD83EC8320 -:103D900096E0929FD001939FB00D1124A156BD4F84 -:103DA000FE01319601900D929A95E1F780939E0263 -:103DB0000E942E1C16E080919D0290919E02891710 -:103DC000C1F1189FC001112481569D4F0E94B81C5B -:103DD000882379F1E0919D021E9FF0011124E156A4 -:103DE000FD4F4081518162817381848195810E9460 -:103DF0001E1C80919D0290E0019687709927809308 -:103E00009D02D9CF4F81588569857A858B859C85A0 -:103E10000E941E1CCFCF0E94E11B10929E021092A6 -:103E20009D02EFECF2E086E0DF011D928A95E9F752 -:103E3000C1CF2C960FB6F894DEBF0FBECDBFDF9179 -:103E4000CF911F910895EF92FF920F931F93CF93FD -:103E5000DF938C01009709F46CC0F12CEE24E394FD -:103E6000E8012196F8018491843740F4843008F009 -:103E700051C0813081F0823019F15BC0853709F47F -:103E800044C0A8F19CE7980F903708F052C08F7794 -:103E90000E94FE1841C00E5F1F4FFE01C49180E2D8 -:103EA0008C0F883048F4C7708E2D01C0880FCA95DA -:103EB000EAF70E94FF2114C08C2F0E9436182DC0F3 -:103EC0000E5F1F4FFE01C49180E28C0F883058F4C2 -:103ED000C7708E2D01C0880FCA95EAF70E9405228F -:103EE0000E9426221AC08C2F0E94FE1816C00E5F58 -:103EF0001F4FFE01C491CC2381F08FE99FE0019711 -:103F0000F1F700C00000C150F6CF0E5F1F4FFE0159 -:103F1000F49003C00E9436188E018F2D882309F477 -:103F20009FCFEFE9FFE03197F1F700C0000081502B -:103F3000F5CFDF91CF911F910F91FF90EF900895F2 -:103F400008956093D9027093DA028093DB02909314 -:103F5000DC020C94CD1B0F931F930091D90210919A -:103F6000DA022091DB023091DC02DC01CB01802BF4 -:103F7000912BA22BB32B8093D9029093DA02A093BA -:103F8000DB02B093DC021F910F910C94CD1B0F93B9 -:103F90001F930091D9021091DA022091DB02309137 -:103FA000DC02DC01CB0180239123A223B323809385 -:103FB000D9029093DA02A093DB02B093DC021F9146 -:103FC0000F910C94CD1B0F931F930091D902109168 -:103FD000DA022091DB023091DC02DC01CB01802788 -:103FE0009127A227B3278093D9029093DA02A09356 -:103FF000DB02B093DC021F910F910C94CD1B109249 -:10400000D5021092D6021092D7021092D8020C94C8 -:10401000CD1B41E050E060E070E004C0440F551F4C -:10402000661F771F8A95D2F74093D5025093D60228 -:104030006093D7027093D8020C94CD1B41E050E0FE -:1040400060E070E004C0440F551F661F771F8A951B -:10405000D2F78091D5029091D602A091D702B0916B -:10406000D802482B592B6A2B7B2B4093D5025093B7 -:10407000D6026093D7027093D8020C94CD1B41E016 -:1040800050E060E070E004C0440F551F661F771FCA -:104090008A95D2F740955095609570958091D5029C -:1040A0009091D602A091D702B091D802482359230B -:1040B0006A237B234093D5025093D6026093D702A4 -:1040C0007093D8020C94CD1B41E050E060E070E0AA -:1040D00004C0440F551F661F771F8A95D2F7809141 -:1040E000D5029091D602A091D702B091D80248276C -:1040F00059276A277B274093D5025093D6026093B5 -:10410000D7027093D8020C94CD1B0F931F9300918C -:10411000D5021091D6022091D7023091D802DC014D -:10412000CB01802B912BA22BB32B8093D5029093A4 -:10413000D602A093D702B093D8021F910F910C948E -:10414000CD1B0F931F930091D5021091D6022091A1 -:10415000D7023091D802DC01CB0180239123A22326 -:10416000B3238093D5029093D602A093D702B09345 -:10417000D8021F910F910C94CD1B0F931F930091A8 -:10418000D5021091D6022091D7023091D802DC01DD -:10419000CB0180279127A227B3278093D502909344 -:1041A000D602A093D702B093D8021F910F910C941E -:1041B000CD1B0895CF92DF92EF92FF920F931F9342 -:1041C000CF93DF938C01C090D902D090DA02E090B7 -:1041D000DB02F090DC028091D5029091D602A09192 -:1041E000D702B091D802C82AD92AEA2AFB2ACFE1FD -:1041F000D0E0D701C6010C2E04C0B695A7959795BF -:1042000087950A94D2F780FF06C0B8018C2F0E94D0 -:104210007508019721F4219760F780E001C08C2F89 -:10422000DF91CF911F910F91FF90EF90DF90CF9092 -:104230000895CF93DF93EC010E94DA20BE010E9423 -:104240007508DF91CF910895CB010E94192108953F -:104250008091DD0285958595859508958091DD0293 -:104260008770089598E0899F90011124262B209350 -:10427000DD020C941E202091DD0280958223809324 -:10428000DD02982F977069F430E0482F552747FDDD -:1042900050952417350729F08595859585950C94BB -:1042A0003F2008959091DD02977081E009F480E04D -:1042B000089590911501992321F090911601911183 -:1042C00009C02091170130911801F90132969FEF32 -:1042D00040E01FC0982F9695969596959F3050F583 -:1042E000E0911701F0911801E90FF11D877021E0AD -:1042F00030E0A90102C0440F551F8A95E2F7CA01B8 -:104300009181892B818308959F3F39F04F5F4E3013 -:1043100041F051915813F8CF0DC05111F7CF942FA0 -:10432000F5CF9F3F39F0F901E90FF11D97FDFA959F -:1043300082830895089590911501992321F0909119 -:104340001601911109C02091170130911801F9014E -:104350003296205F3F4F1FC0982F96959695969561 -:104360009F30F0F4E0911701F0911801E90FF11D71 -:10437000877021E030E0A90102C0440F551F8A95E3 -:10438000E2F7CA018095918189238183089531964E -:10439000E217F30729F090819813F9CF1082F7CF35 -:1043A000089581E090E0E0911701F0911801E80F85 -:1043B000F91F1082019680319105A9F70895909117 -:1043C000F102892B8093F102089580959091F1027A -:1043D00089238093F10208951092F102089590913B -:1043E000F002892B8093F002089580959091F0025D -:1043F00089238093F00208951092F002089590911D -:10440000EF02892B8093EF02089580959091EF023F -:1044100089238093EF0208951092EF02089580930C -:10442000DE0208951092DE020895809117019091A6 -:104430001801FC0131969C01205F3F4F80E0919173 -:1044400091118F5FE217F307D1F70895E0911701FB -:10445000F09118018091F1028083E0911701F091B1 -:10446000180190818091F002892B8083E0911701DF -:10447000F091180190818091EF02892B80838091C7 -:10448000DE02882361F0E0911701F091180190811C -:10449000892B80830E94152281111092DE02809167 -:1044A0001701909118010C940B1720E0009739F038 -:1044B000AC0141505109842395232F5FF7CF822F00 -:1044C000089580911303843039F11092F30220E4AF -:1044D00088E190E00FB6F894A895809360000FBE35 -:1044E0002093600080E00E94F00280E00E940F09AB -:1044F00083B7817F846083BF83B7816083BF7894F3 -:10450000889583B78E7F83BF88E10FB6F894809338 -:104510006000109260000FBE08950895089580E035 -:104520000E94F0020E948D220E946A090E948E223F -:104530000E94EF0991E0811101C090E0892F089558 -:104540000E94E11B80E00E94F0020E9409280E9464 -:10455000FF160C940F091F920F920FB60F921124A1 -:104560008F939F93AF93BF938091F302811113C0F8 -:104570008091F4029091F502A091F602B091F702B9 -:104580004196A11DB11D8093F4029093F502A09372 -:10459000F602B093F702BF91AF919F918F910F9068 -:1045A0000FBE0F901F90189582E084BD93E095BDDB -:1045B0009AEF97BD80936E0008952FB7F89480917D -:1045C000F4029091F502A091F602B091F7022FBF8C -:1045D0000895CF92DF92EF92FF920F931F932FB720 -:1045E000F8944091F4025091F5026091F6027091B6 -:1045F000F7022FBF6A017B01EE24FF248C0120E02B -:1046000030E0C016D106E206F30610F4415051091D -:104610009A01281B390BC9011F910F91FF90EF9050 -:10462000DF90CF9008951F920F920FB60F92112432 -:104630008F939F93AF93BF938091F4029091F50273 -:10464000A091F602B091F7020196A11DB11D8093D1 -:10465000F4029093F502A093F602B093F702BF9193 -:10466000AF919F918F910F900FBE0F901F90189553 -:104670000E94FC13F8942FEF87EA91E621508040C6 -:104680009040E1F700C0000087E090EBDC018093F0 -:104690001E0390931F03A0932003B09321039CE07B -:1046A00088E10FB6F894A895809360000FBE9093B0 -:1046B0006000FFCF0E949923811102C00E947523E0 -:1046C0000E94A4238093F2020E94AC2380931C03D7 -:1046D00087FB882780F9809316010E94A823682F02 -:1046E00070E080E090E00C94A11F6DEE7EEF80E022 -:1046F00090E00E94C02C60E082E090E00E94AE2C2E -:1047000060E083E090E00E94AE2C60E084E090E006 -:104710000E94AE2C60E085E090E00E94AE2C60E04C -:1047200086E090E00E94AE2C6FEF87E090E00C9462 -:10473000AE2C80E090E00E94A82C21E08D3E9E4FA0 -:1047400009F020E0822F089582E090E00C94A02CE4 -:1047500083E090E00C94A02C84E090E00C94A02CDA -:10476000682F84E090E00C94AE2C86E090E00C94EE -:10477000A02C682F86E090E00C94AE2C87E090E0AF -:104780000C94A02C682F87E090E00C94AE2C8091C4 -:10479000FA0280FF0BC060911C0185E0689FB001A8 -:1047A000112475956795759567952BC081FF09C094 -:1047B00060911C0185E0689FB00111247595679593 -:1047C00020C082FF07C060911C0185E0689FB00196 -:1047D000112417C09091FB029923D1F060911B0125 -:1047E000961788F720911C0185E0289F90011124DD -:1047F000929FA001939F500D112470E0CA010E9466 -:10480000862C6038710540F46115710539F002C0DD -:1048100065E070E0862F08958FE7089581E00895A0 -:104820008091FA0280FF08C060911A0170E07595CE -:1048300067957595679521C081FF06C060911A0143 -:1048400070E07595679519C082FF04C060911A01E8 -:1048500070E010C09091FB029923C1F060911901A2 -:104860009617A0F780911A01899FC001112470E06A -:104870000E94862C6038710528F46115710521F0BD -:10488000862F08958FE7089581E0089561E070E034 -:10489000F4CF803F21F40E94C723819504C0813F5B -:1048A00029F40E94C7238093FE020895823F21F4D9 -:1048B0000E94C723819504C0833F29F40E94C72327 -:1048C0008093FD020895893F19F40E94102405C0C9 -:1048D0008A3F31F40E94102481958093FF0208954D -:1048E0008B3F21F40E941024819504C08C3F29F451 -:1048F0000E941024809300030895843F21F4809146 -:10490000FC02816017C0853F21F48091FC02826027 -:1049100011C0863F21F48091FC0284600BC0873F68 -:1049200021F48091FC02886005C0883F31F48091B9 -:10493000FC0280618093FC0208958D3F21F48091F8 -:10494000FA0281600BC08E3F21F48091FA028260EE -:1049500005C08F3F29F48091FA0284608093FA02A7 -:104960000895803F39F48091FE0287FF6CC0109259 -:10497000FE0269C0813F29F48091FE021816BCF343 -:1049800062C09091FD02823F29F497FF5CC01092B3 -:10499000FD0259C0833F19F41916CCF354C0893F66 -:1049A00041F48091FF0218160CF04DC01092FF02E6 -:1049B0004AC08A3F29F48091FF0287FF44C0F6CFA6 -:1049C0008B3F39F48091000387FF3DC010920003B4 -:1049D0003AC08C3F29F4809100031816BCF333C011 -:1049E000843F21F48091FC028E7F17C0853F21F423 -:1049F0008091FC028D7F11C0863F21F48091FC02E2 -:104A00008B7F0BC0873F21F48091FC02877F05C01C -:104A1000883F31F48091FC028F7E8093FC0213C0AA -:104A20008D3F21F48091FA028E7F0BC08E3F21F4DE -:104A30008091FA028D7F05C08F3F29F48091FA02A0 -:104A40008B7F8093FA028091FD0281110EC08091CC -:104A5000FE0281110AC08091FF02811106C080917F -:104A60000003811102C01092FB0208958CEF92E0C6 -:104A70000E9416170E94DD229093F9028093F8029B -:104A800008951F93CF93DF938091F8029091F902DC -:104A90000E94E922AC019091FB02992321F0209120 -:104AA0001D0130E006C020911E018AE0289F900180 -:104AB00011244217530708F486C08091FD02C0916B -:104AC000FE02D091FF0210910003811107C0C111B5 -:104AD00076C0D11174C0111172C075C09F3F19F01A -:104AE0009F5F9093FB02181624F40E94C7238093C3 -:104AF000FD028091FD0287FF05C00E94C7238195BA -:104B00008093FD021C1624F40E94C7238093FE02AA -:104B10008091FE0287FF05C00E94C7238195809384 -:104B2000FE026091FD02662339F1C091FE02CC23A2 -:104B300019F1772767FD7095872F972F0E94A82975 -:104B400023E333E343E35FE30E94B82A0E9475291D -:104B50006093FD026C2F772767FD7095872F972F45 -:104B60000E94A82923E333E343E35FE30E94B82ACA -:104B70000E9475296093FE021D1624F40E941024E1 -:104B80008093FF028091FF0287FF05C00E941024DE -:104B900081958093FF02111624F40E9410248093C3 -:104BA00000038091000387FF05C00E9410248195B7 -:104BB00080930003DF91CF911F910C9436259F3F86 -:104BC00009F08ECF96CFDF91CF911F910895ECEF32 -:104BD000F2E085E0DF011D928A95E9F71092FB0271 -:104BE0001092FA020895833081F128F4813059F04F -:104BF0008230D1F00895853009F449C0B8F186308B -:104C000009F456C0089580911E01262F30E0280F28 -:104C1000311D2F3F310524F4680F60931E01089564 -:104C20008FEF80931E01089580911D01262F30E0A3 -:104C3000280F311D2F3F310524F4680F60931D01AB -:104C400008958FEF80931D01089580911C01262FF8 -:104C500030E0280F311D2F3F310524F4680F609399 -:104C60001C0108958FEF80931C01089580911B0112 -:104C7000262F30E0280F311D2F3F310524F4680F17 -:104C800060931B0108958FEF80931B01089580911D -:104C90001A01262F30E0280F311D2F3F310524F453 -:104CA000680F60931A0108958FEF80931A01089599 -:104CB00080911901262F30E0280F311D2F3F31053B -:104CC00024F4680F6093190108958FEF8093190100 -:104CD0000895833011F128F4813049F0823091F049 -:104CE0000895853081F120F18630C1F108958091D9 -:104CF0001E01681720F4861B80931E0108951092F0 -:104D00001E01089580911D01681720F4861B809371 -:104D10001D01089510921D01089580911C016817CE -:104D200020F4861B80931C01089510921C010895A5 -:104D300080911B01681720F4861B80931B01089546 -:104D400010921B01089580911A01681720F4861BA8 -:104D500080931A01089510921A0108958091190103 -:104D6000681720F4861B8093190108951092190189 -:104D700008950F931F93873208F048C08E3108F0D2 -:104D80008DC0803109F477C008F5873009F461C01F -:104D900068F4863009F09DC08091F202817F8E7F99 -:104DA0008093F20281E08093020394C08B3009F477 -:104DB00089C08E3009F08DC08091F20282FB2227DB -:104DC00020F991E0922790FB82F95EC0863109F4C8 -:104DD00079C060F4813109F07CC00E94E11B9091A0 -:104DE000160181E08927809316016CC0893109F48E -:104DF00069C08B3109F06DC08091F20281FB2227DE -:104E000020F991E0922790FB81F93EC0883309F4A4 -:104E100059C050F4893209F457C0853309F454C09D -:104E2000873209F451C055C0833409F44DC028F4C9 -:104E30008A3308F44EC0895332C0883409F049C01F -:104E40000E94E11B0E941F0A0E94E3030E94382374 -:104E500039C09091F202892F8095817080FB90F982 -:104E600029F0966098609093F20234C0997F977F02 -:104E70009093F20227C08091F20283FB222720F94F -:104E800091E0922790FB83F98093F2029923D1F06D -:104E90008091F20281608093F20214C08D5141E052 -:104EA00050E060E070E08A019B0104C0000F111F18 -:104EB000221F331F8A95D2F7C901B8010E94A11F92 -:104EC0000E94E11B81E006C061E070E080E090E0BC -:104ED000F5CF80E01F910F91089580E0089580E064 -:104EE0000895CF93C82F80910203813069F018F0A4 -:104EF0008230C9F184C0E0911701F09118018081DE -:104F0000823209F07EC007C0E0911701F0911801CC -:104F10008081823261F48C2F0E946D27811104C040 -:104F20008C2F0E94B9261DC081E090E01AC08C2F02 -:104F30000E946F27811114C0C43179F048F4CB303E -:104F400079F0C03109F061C082E08093020308C0AB -:104F5000C93219F0C83321F058C01092020355C06D -:104F600081E0817054C0C93291F120F5C43179F1EA -:104F7000B0F4C73009F047C08EE180931E0182E390 -:104F800080931D018AE080931C0184E180931B01C2 -:104F900088E080931A0188E28093190134C0CE51D1 -:104FA000C63088F5EC2FF0E0EA54FE4F8081809304 -:104FB000010329C0CE34E9F020F4CB3421F56AE0B6 -:104FC00013C0C13579F0C235F1F461E00DC08091B4 -:104FD0000103882319F01092010315C081E080932A -:104FE000020315C061E006C0809101030E94F32511 -:104FF0000AC06AE0809101030E94692604C01092F1 -:10500000020380E004C081E002C080E0AACFCF911B -:1050100008950E949923811102C00E9475230E9465 -:10502000B52380931D0380FF02C0869501C080E0F8 -:105030000C94F00280911D03982F9695292F30E053 -:10504000233031054CF49F5F990F8170892B81606B -:1050500080931D030E94B92380911D0386950C94B3 -:10506000F00280911D03982F969591F09158990F19 -:105070008170892B80931D038E7F91E009F490E06D -:1050800080911D0390FB80F980931D030E94B9233A -:1050900080911D0386950C94F00280911D03982F3A -:1050A000909590FB80F980931D030E94B923809115 -:1050B0001D0380FF02C0869501C080E00C94F002C1 -:1050C00090911D03892F86958F5F8F779170843023 -:1050D00028F4880F892B80931D0302C090931D0331 -:1050E00080911D038E7F91E009F490E080911D0373 -:1050F00090FB80F980931D030E94B92380911D03CA -:1051000086950C94F00220911D03922F9695892785 -:10511000982F990F822F8170892B80931D038E7F8A -:1051200091E009F490E080911D0390FB80F9809359 -:105130001D030E94B92380911D0386950C94F002F3 -:1051400080911D03869508955058BB27AA270ED03D -:10515000D1C1C2D130F0C7D120F031F49F3F11F45A -:105160001EF4B7C10EF4E095E7FB9FC1E92FD3D140 -:1051700080F3BA17620773078407950718F071F474 -:105180009EF5EBC10EF4E0950B2EBA2FA02D0B016E -:10519000B90190010C01CA01A0011124FF27591B7C -:1051A00099F0593F50F4503E68F11A16F040A22F82 -:1051B000232F342F4427585FF3CF469537952795F3 -:1051C000A795F0405395C9F77EF41F16BA0B620BF2 -:1051D000730B840BBAF09150A1F0FF0FBB1F661F39 -:1051E000771F881FC2F70EC0BA0F621F731F841F7C -:1051F00048F4879577956795B795F7959E3F08F0A2 -:10520000B3CF9395880F08F09927EE0F9795879560 -:10521000089527D108F481E008950CD06BC163D1C3 -:1052200040F05AD130F021F45F3F19F03EC15111E6 -:1052300095C14FC170D198F39923C9F35523B1F3A8 -:10524000951B550BBB27AA2762177307840738F0F5 -:105250009F5F5F4F220F331F441FAA1FA9F333D054 -:105260000E2E3AF0E0E830D091505040E695001C08 -:10527000CAF729D0FE2F27D0660F771F881FBB1FC4 -:10528000261737074807AB07B0E809F0BB0B802D9E -:10529000BF01FF2793585F4F2AF09E3F510568F0EA -:1052A00004C15CC15F3FECF3983EDCF386957795D3 -:1052B0006795B795F7959F5FC9F7880F911D9695EC -:1052C000879597F90895E1E0660F771F881FBB1F48 -:1052D000621773078407BA0720F0621B730B840BF5 -:1052E000BA0BEE1F88F7E095089504D06894B111C9 -:1052F00035C1089518D188F09F5790F0B92F99279C -:10530000B751A0F0D1F0660F771F881F991F1AF0D0 -:10531000BA95C9F712C0B13081F01FD1B1E008953C -:105320001CC1672F782F8827B85F39F0B93FCCF3BD -:10533000869577956795B395D9F73EF490958095C6 -:10534000709561957F4F8F4F9F4F0895E89409C0E6 -:1053500097FB3EF490958095709561957F4F8F4FA8 -:105360009F4F9923A9F0F92F96E9BB279395F695BE -:10537000879577956795B795F111F8CFFAF4BB0F3C -:1053800011F460FF1BC06F5F7F4F8F4F9F4F16C0A0 -:10539000882311F096E911C0772321F09EE8872F2A -:1053A000762F05C0662371F096E8862F70E060E0E6 -:1053B0002AF09A95660F771F881FDAF7880F96955F -:1053C000879597F9089588D018F011F08CD038F4AB -:1053D00080C0C4C0E92F9FD0B0F35523C9F3E7FBC9 -:1053E0006217730784079507A8F199F3E92FFF2740 -:1053F00088232AF03197660F771F881FDAF7952FD9 -:105400005527442332F091505040220F331F441F40 -:10541000D2F7BB27E91BF50B621B730B840BB10999 -:10542000C1F222F4620F731F841FB11D31972AF05D -:10543000660F771F881FBB1FEFCF915050405AF067 -:1054400041F0882332F0660F771F881F915050403B -:10545000C1F7939530C08695779567959F5FD9F78B -:10546000F8CF990F0008550FAA0BE0E8FEEF1616CB -:105470001706E807F907C0F012161306E407F50748 -:1054800098F0621B730B840B950B39F40A2661F0BC -:10549000232B242B252B21F408950A2609F4A1405F -:1054A000A6958FEF811D811D089597F99F6780E86C -:1054B00070E060E008959F3F31F0915020F48795AF -:1054C00077956795B795880F911D9695879597F96C -:1054D00008959FEF80EC089500240A94161617068D -:1054E00018060906089500240A94121613061406D5 -:1054F00005060895092E0394000C11F4882352F038 -:10550000BB0F40F4BF2B11F460FF04C06F5F7F4FEF -:105510008F4F9F4F089557FD9058440F551F59F0D6 -:105520005F3F71F04795880F97FB991F61F09F3F90 -:1055300079F087950895121613061406551FF2CFB9 -:105540004695F1DF08C0161617061806991FF1CF09 -:1055500086957105610508940895E894BB27662730 -:105560007727CB0197F908957CDF08F48FEF089532 -:105570000BD0C0CFB1DF28F0B6DF18F0952309F0CB -:1055800094CFA7CF1124EACFC6DFA0F3959FD1F324 -:10559000950F50E0551F629FF001729FBB27F00DE1 -:1055A000B11D639FAA27F00DB11DAA1F649F662736 -:1055B000B00DA11D661F829F2227B00DA11D621F85 -:1055C000739FB00DA11D621F839FA00D611D221F3F -:1055D000749F3327A00D611D231F849F600D211D23 -:1055E000822F762F6A2F11249F5750408AF0E1F0C6 -:1055F00088234AF0EE0FFF1FBB1F661F771F881F0F -:1056000091505040A9F79E3F510570F04ECFA6CF64 -:105610005F3FECF3983EDCF3869577956795B795F9 -:10562000F795E7959F5FC1F7FE2B880F911D969523 -:10563000879597F90895FA01EE0FFF1F309621051F -:10564000310599F16115710561F48038BFE39B075D -:1056500049F168949038810561F08038BFEF9B076D -:1056600041F0992342F5FF3FE1053105210511F194 -:10567000E8940894E795D901AA2329F4AB2FBE2F0B -:10568000F85FD0F310C0FF5F70F4A695E0F7F7392C -:1056900050F019F0FF3A38F49F779F930CD00F9099 -:1056A00007FC905808953EF014CF60E070E080E869 -:1056B0009FE308954FE79F775F934F933F932F9317 -:1056C0009ED02F913F914F915F9152DF05C019F409 -:1056D0000EF0EBCE42CFFDCE26DFC8F39638C0F7F2 -:1056E00007F80F92E8942BE33AEA48EB5FE74EDFC6 -:1056F0000F920F920F924DB75EB70F92C0D0EAE0B3 -:10570000F1E016D04F915F91EF91FF91E595EE1F7B -:10571000FF1F49F0FE57E0684427EE0F441FFA953B -:10572000E1F74195550B32D00F9007FE26C0089542 -:10573000DF93CF931F930F93FF92EF92DF927B0142 -:105740008C01689405C0DA2EEF011EDFFE01E8949B -:10575000A5912591359145915591AEF3EF0106DD67 -:10576000FE019701A801DA9479F7DF90EF90FF909E -:105770000F911F91CF91DF9108959B01AC0160E0E3 -:1057800070E080E89FE349CD90CE95CECCDEE8F383 -:105790009923D9F3940F511DBBF39150504094F0CD -:1057A00059F0882332F0660F771F881F91505040C0 -:1057B000C1F79E3F510544F7880F911D9695879537 -:1057C00097F908955F3FACF0983E9CF0BB27869513 -:1057D00077956795B79508F4B1609395C1F7BB0FBE -:1057E00058F711F460FFE8CF6F5F7F4F8F4F9F4FE7 -:1057F000E3CFB4CE0EF05FCE6CCE689456CE93DE7F -:10580000C8F39923D1F3C6F3DF93CF931F930F937C -:10581000FF92C92FDD2788232AF02197660F771F73 -:10582000881FDAF720E030E040E85FEB9FE388393B -:1058300020F0803E30F021968F7787DCE2E3F1E0C4 -:1058400003C083DCEFE5F1E073DF8B01BE01EC0107 -:10585000FB2E6F5771097595771F880B990B78DDB3 -:1058600028E132E741E35FE38FDEAF2D9801AE011F -:10587000FF900F911F91CF91DF9178DC3BCEFA0121 -:10588000DC01AA0FBB1F9B01AC01BF5728F42227E4 -:105890003327442750781FC0B75188F4AB2F00241A -:1058A000469537952795011CA395D2F3002069F002 -:1058B000220F331F441FB395DAF30DD045CC61306E -:1058C0007105A0E88A07B94630F49B01AC01662750 -:1058D000772788279078309621F020833183428380 -:1058E00053830895AA1BBB1B51E107C0AA1FBB1F0E -:1058F000A617B70710F0A61BB70B881F991F5A955C -:10590000A9F780959095BC01CD01089597FB072ECE -:1059100016F4009407D077FD09D00E94722C07FC82 -:1059200005D03EF4909581959F4F089570956195AF -:105930007F4F0895EE0FFF1F0590F491E02D09941D -:10594000F999FECF92BD81BDF89A992780B5089547 -:10595000A8E1B0E042E050E00C94C82C262FF99961 -:10596000FECF92BD81BDF89A019700B4021639F0BE -:105970001FBA20BD0FB6F894FA9AF99A0FBE08958F -:105980000196272F0E94AF2C0C94AE2CDC01CB018A -:10599000FC01F999FECF06C0F2BDE1BDF89A31963F -:1059A00000B40D9241505040B8F70895F894FFCFDD -:1059B000640007000CFF0000003F64031091106EAC -:1059C000103A1006100101DF022808140A321E00E6 -:1059D00002040507090B0C0E1011131517181A1CD9 -:1059E0001D1F2123242628292B2D2F303234353713 -:1059F000393B1F0F03764F5F6F7F49694379095920 -:105A000053633149803F5D8B803FF8BF803FCAE1DF -:105A1000803F73ED803FCAE1803FF8BF803F5D8BE0 -:105A2000803F3149803F0000803FF16D7F3F75EA44 -:105A30007E3F4C827E3F833F7E3F84287E3F833F74 -:105A40007E3F4C827E3F75EA7E3FF16D7F3F0000D6 -:105A5000803F3F4D3639EB049E0468042F04C20397 -:105A6000DB03F4030D040102030405060708090023 -:00000001FF diff --git a/keyboards/planck/keymaps/david/compiled.hex b/keyboards/planck/keymaps/david/compiled.hex deleted file mode 100644 index c78779128..000000000 --- a/keyboards/planck/keymaps/david/compiled.hex +++ /dev/null @@ -1,1449 +0,0 @@ -:100000000C9496020C94DA020C94DA020C94DA0244 -:100010000C94DA020C94DA020C94DA020C94DA02F0 -:100020000C94DA020C94DA020C9478140C944A15AD -:100030000C94AC220C94DA020C94DA020C94DA02DE -:100040000C94DA020C943C030C94DA020C94DA025D -:100050000C94DA020C9414230C94DA020C94DA0255 -:100060000C94DA020C94DA020C94DA020C94DA02A0 -:100070000C94DA020C94DA020C94DA020C94DA0290 -:100080000C94ED0A0C94DA020C94DA020C94DA0265 -:100090000C94DA020C94DA020C94DA020C94DA0270 -:1000A0000C94DA020C94DA020C94DA02B715D91522 -:1000B000C716D915C7161E164116C7169616A916C5 -:1000C00093199319C219C219011A211A771B771BA8 -:1000D0002C1A771BDC1ADC1A431B4C1B771B711B79 -:1000E000E91AE91AE91AE91AE91AE91AE91AE91AF8 -:1000F000E91AE91AE91AE91AE91AE91AE91AE91AE8 -:10010000F91A071B0E1B151B1F1B07634236B79BF3 -:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 -:100120005763BD6DEDFD753EF6177231BF000000DF -:10013000803F08000000BE922449123EABAAAA2AC2 -:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD -:1001500000000000BF000000803F00000000000819 -:100160004178D3BB4387D1133D190E3CC3BD4282B6 -:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 -:10018000FFBE01C4FF7F3F00000000000000000030 -:1001900000000000000000010204060A0F17202CD6 -:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 -:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF -:1001C0000201000000000000000000000000F1A299 -:1001D000F1A3018C028C14001A000800150017000E -:1001E0002A001C0018000C00120013002A00040052 -:1001F0001600070009000A0028000B000D000E0081 -:100200000F00330034001D001B000600190005001C -:1002100029001100100036003700380028000A308D -:10022000E000E200E30002202C002C00012050003E -:10023000510052004F002B0014001A000900130057 -:100240000A000D000F0018001C0033002A002900CE -:10025000040015001600170007000B00110008002D -:100260000C0012003400E1001D001B000600190004 -:1002700005000E0010003600370038002800C300CB -:10028000E000E200E30002202C002C0001205000DE -:10029000510052004F0035001E001F0020002100B9 -:1002A0002200230024002500260027002A00010048 -:1002B0000320042000500030013002302D002E00B9 -:1002C0002F003000310001004400450000300130B3 -:1002D00002300330043005300630073001000100E1 -:1002E0000100010001000100010001000120AB003C -:1002F000AA00A900AE0035021E021F022002210240 -:100300002202230224022502260227022A000100DB -:100310000320042000500030013002302D022E0254 -:100320002F023002310201003A003B003C003D0048 -:100330003E003F0040004100420043000100010038 -:100340000100010001000220010001000100AB00DA -:10035000AA00A900AE002803540068006500200030 -:1003600050006C0061006E0063006B0020004B00C9 -:100370006500790062006F00610072006400000097 -:100380002C034F007200740068006F006C0069005D -:100390006E0065006100720020004B00650079006E -:1003A00062006F00610072006400730000000403CB -:1003B000090409026D00040100A0FA09040000010B -:1003C00003010100092111010001223F00070581FD -:1003D0000308000A090401000103010200092111B8 -:1003E000010001224D000705820308000A090402EA -:1003F000000103000000092111010001223600075D -:1004000005830308000A0904030001030000000932 -:100410002111010001223900070584031000011297 -:1004200001100100000008EDFE6060010001020003 -:100430000105010906A101050719E029E7150025B5 -:1004400001950875018102050819012905950575B1 -:10045000019102950175039101050719002977158E -:10046000002501957875018102C005010980A1016F -:10047000850216010026B7001A01002AB700751080 -:1004800095018100C0050C0901A101850316010039 -:10049000269C021A01002A9C02751095018100C059 -:1004A00005010902A1010901A10005091901290598 -:1004B00015002501950575018102950175038101DE -:1004C0000501093009311581257F950275088106DE -:1004D00009381581257F950175088106050C0A38B4 -:1004E000021581257F950175088106C0C0050109A7 -:1004F00006A101050719E029E715002501950875F2 -:1005000001810295017508810105081901290595E8 -:1005100005750191029501750391010507190029DF -:10052000FF150025FF950675088100C011241FBE28 -:10053000CFEFDAE0DEBFCDBF04B603FE24C080916A -:100540001E0390911F03A0912003B09121038730D7 -:10055000904BA740B04BB9F410921E0310921F03AA -:10056000109220031092210314BE84B7877F84BFAA -:1005700088E10FB6F89480936000109260000FBE7F -:10058000E0E0F8E3099511E0A0E0B1E0E2EBF9E585 -:1005900002C005900D92A03CB107D9F713E0A0EC82 -:1005A000B1E001C01D92AE31B107E1F70E94BE116A -:1005B0000C94D72C0C9400000895089581E00895C0 -:1005C00008950C94DD020C94DE020C94E0020E946B -:1005D000A12823E030E0281B3109220F2093C40119 -:1005E0000895282F2F9880918000211108C0877FBF -:1005F0008093800010928D0010928C001BC0886048 -:1006000080938000233019F48FEF9FEF0FC083E0B9 -:1006100090E0821B9109880F991F2FEF3FEFA901EE -:1006200002C0569547958A95E2F7CA0190938D00CE -:1006300080938C000C94E7020E94E70284E0809390 -:10064000C3011092C0010895279A2F988FEF9FEF52 -:1006500090938700809386008AE08093800089E1F0 -:10066000809381000E940A280C941C030E9424039A -:100670006E9A769A0C94DC021F920F920FB60F922C -:1006800011242F933F938F939F93EF93FF93E091C8 -:10069000C101F091C201CF0101969093C2018093F4 -:1006A000C1010090C30102C0F695E7950A94E2F7F4 -:1006B000EF738091C001823019F4E03251F404C02C -:1006C000813039F4EF3329F480916F008D7F80936E -:1006D0006F00F0E0E457FE4FE49121E031E0E29F4B -:1006E000C001E39F900D11240090C40102C09695B3 -:1006F00087950A94E2F790938D0080938C00FF9188 -:10070000EF919F918F913F912F910F900FBE0F907E -:100710001F90189581E008950C948A0308950C9415 -:10072000360380911502882309F448C08091D101D5 -:100730009091D201009779F40E94DE229093D20129 -:100740008093D1018091D30190E0009771F4809162 -:10075000D40190E00AC00E94EA2220910001309169 -:1007600001012817390740F329C00197880F991F05 -:10077000880F991FFC01EB52FE4F608171818281CD -:1007800093810E94530AE091D30184E0E89FF00135 -:100790001124EB52FE4F60817181828193814FE081 -:1007A00050E00E940B0E8091D30190E00196609181 -:1007B000D40170E00E94872C8093D3010C94E10255 -:1007C000109217020C94200A0895089581E08093F6 -:1007D00017020C94E503089508958F929F92AF92AB -:1007E000BF92EF92FF920F931F93CF93DF93CDB7FA -:1007F000DEB7A3970FB6F894DEBF0FBECDBF7C0166 -:10080000FC0100811181C8010E94DB20B8010E9417 -:10081000F2058C01B7010E948C03882309F4CCC136 -:100820000032F0E51F0741F4F7018281882309F4C3 -:1008300058C00E946F0EC0C10132F0E51F0741F49D -:10084000F7018281882309F44CC00E94780EB4C15C -:100850000232F0E51F0751F4F7018281882309F481 -:1008600040C00E946B0E8111F0CFE3CF0332F0E560 -:100870001F0739F4F7018281882399F10E94E6036A -:100880009BC10432F0E51F0739F4F7018281882308 -:1008900041F10E94E00390C10532F0E51F0749F4E1 -:1008A000F70182818823E9F0809117028111F1CF4D -:1008B000E5CF0632F0E51F0739F4F701828188237E -:1008C00081F00E947F0E0AC00732F0E51F0749F44D -:1008D000F7018281882329F00E948A0E0E94EC038E -:1008E0006BC180911702811105C0F70182818111CE -:1008F000CFC018C1003E110579F4F7018281882329 -:1009000009F44DC00E94200A81E0809316021092E3 -:1009100015021092D40150C1023E110559F4F7019D -:1009200082818823E1F10E94200A1092160210921F -:10093000150242C1033E110591F4F701828188231B -:1009400071F10E94200A1092160281E08093150234 -:100950001092D3011092D2011092D1012DC1023513 -:10096000110559F4F7018281882309F425C180918A -:100970000001909101010A970DC00135110579F42C -:10098000F7018281882309F417C1809100019091B9 -:1009900001010A9690930101809300010DC14091DD -:1009A000040183E2EFE1F1E0DE01119601900D9286 -:1009B0008A95E1F7F701808121E030E02C0F3D1F9F -:1009C000280F311DC9012091020130910301FC0162 -:1009D000E20FF31F6081772767FD7095640F711D2B -:1009E000882777FD8095982F0E94A92920E030E084 -:1009F00040E451E40E940E294B015C01F701218182 -:100A000084E090E0821B9109BC01882777FD8095E6 -:100A1000982F0E94A9299B01AC01C501B4010E9435 -:100A2000A6289B01AC0160E070E080E090E40E94A9 -:100A30001C2B20E030E04CED50E40E94B92A4B0121 -:100A40005C01F70182818823D1F04FE050E0C501BD -:100A5000B4010E940B0E809116028823A1F08091B0 -:100A6000D40124E0829FF0011124EB52FE4F8082DA -:100A70009182A282B3828F5F8093D40104C0C501AA -:100A8000B4010E94530A0F3F110508F02ECF94C005 -:100A90008091D00181111FC0043130E5130709F0A6 -:100AA00051C00E948E0381E08093D0010E94DE221B -:100AB0009093CF018093CE011092C7011092C9018B -:100AC0001092C8011092CB011092CA011092CD0170 -:100AD0001092CC0171C08091CE019091CF010E9403 -:100AE000EA22883C910570F48091C701E82FF0E07C -:100AF000EE0FFF1FE853FE4F118300838F5F80933B -:100B0000C7015AC0043880E5180721F005381045A0 -:100B100001F13AC0F7018281882341F01092C501AA -:100B200082E01EC0043830E5130759F58091C501F5 -:100B3000811106C086E20E94371886E20E94FF18E3 -:100B400082E01CC00438F0E51F0741F3053810456A -:100B5000D9F4F7018281882331F01092C60180E236 -:100B60000E944E1929C08091C601811106C087E2FA -:100B70000E94371887E20E94FF1880E20E945519F0 -:100B80001BC00538104529F381E08093C50180938F -:100B9000C601C701A3960FB6F894DEBF0FBECDBF46 -:100BA000DF91CF911F910F91FF90EF90BF90AF9089 -:100BB0009F908F900C94E30280E0A3960FB6F89478 -:100BC000DEBF0FBECDBFDF91CF911F910F91FF9080 -:100BD000EF90BF90AF909F908F90089580E090E04D -:100BE000089508959CE0799FF001112490E3899F76 -:100BF000E00DF11D1124E60FF11DEE0FFF1FEA526B -:100C0000FE4F859194910895880F991FFC01E45B34 -:100C1000FF4F859194910895880F991FFC01E4532B -:100C2000FE4F8591949108950F931F93CF93DF9377 -:100C3000EC01811521E39207A0F5C11580E3D807E7 -:100C400008F0D7C0C83ED105D8F4C03ED10508F0A1 -:100C500007C2C83AD10578F4C53AD10508F06AC090 -:100C6000C130D10509F463C008F4F7C1C430D1051F -:100C700008F0F6C1F2C1CB3BD10508F466C0EDC166 -:100C8000C11590E2D90708F0AFC0C11521E0D20725 -:100C900008F0E6C1C03FD10508F4DFC18E01106540 -:100CA0001FC2C03880E5D80700F5C03790E5D907E6 -:100CB00008F0A3C0C11520E5D20709F4ACC050F478 -:100CC000CE01905480319F4008F0C7C1DF708E0183 -:100CD000106A06C2C13080E5D80709F4AEC0C4313D -:100CE00090E5D90708F4AFC0B8C1C33820E5D207F2 -:100CF00009F48EC050F4C13890E5D90709F482C0D8 -:100D000008F083C000E011EDEBC1C03181E5D807E8 -:100D100008F4A3C1C11597E5D90708F436C1CE017F -:100D200090578115904108F098C1DF7093C101E0A0 -:100D300010E0D6C1C53AD10509F494C1C63AD1052F -:100D400009F093C102E810E4CBC1C83AD10509F417 -:100D50008FC1C93AD10509F48EC1CA3AD10509F447 -:100D60008DC1CB3AD10509F48CC1CC3AD10509F437 -:100D70008BC1CD3AD10509F48AC1C03BD10509F434 -:100D800089C1CE3AD10509F488C1CF3AD10509F419 -:100D900087C1C13BD10509F486C1C23BD10509F425 -:100DA00085C1C33BD10509F484C1C43BD10509F415 -:100DB00083C1C53BD10509F482C1C63BD10509F405 -:100DC00081C1C73BD10509F480C1C83BD10509F4F5 -:100DD0007FC1C93BD10509F47EC1CA3BD10509F4E5 -:100DE0007DC100E014E47CC1CE019F700E940C061E -:100DF00078C1DD278E01106C73C1CF70DD278E01A5 -:100E0000146D6EC100E010ED6BC100E012ED68C121 -:100E100000E013ED65C10E94E21B0E94200A0E94BF -:100E2000E4038FEF94E32CE0815090402040E1F701 -:100E300000C000000E94392353C18091F2028160FA -:100E40008093F2024DC10E949A23811102C00E9438 -:100E500076230E94AD2390E090931D0380931C03A2 -:100E6000C23080E5D80721F480911C03816086C0E0 -:100E7000C43090E5D90721F480911C0382607EC0C4 -:100E8000C63020E5D20721F480911C03846076C02F -:100E9000C83080E5D80719F480911C0327C0CA30F8 -:100EA00090E5D90721F480911C03806167C0CC30A4 -:100EB00020E5D20721F480911C0380625FC0CE3010 -:100EC00080E5D80721F480911C03806457C0C031AD -:100ED00090E5D90721F480911C0380684FC0C2318E -:100EE00020E5D20729F480911C038460886046C005 -:100EF000C33080E5D80721F480911C038E7F3EC06B -:100F0000C53090E5D90721F480911C038D7F36C050 -:100F1000C73020E5D20721F480911C038B7F2EC0BF -:100F2000C93080E5D80719F480911C0326C0CB3066 -:100F300090E5D90721F480911C038F7E1FC0CD302E -:100F400020E5D20721F480911C038F7D17C0CF309C -:100F500080E5D80721F480911C038F7B0FC0C1313D -:100F600090E5D90721F480911C038F7707C0C33126 -:100F7000D04531F480911C038B7F877F80931C03C5 -:100F800080911C030E94B123ABC08D2F99278F70D5 -:100F9000992781309105D9F49E012370332702C02F -:100FA000880F991F2A95E2F79C688E0144E0000F94 -:100FB000111F4A95E1F700271370802B912B53E006 -:100FC000CC0FDD1F5A95E1F7C076DD272FC08230A8 -:100FD000910531F4DC2FCC278E01016F106A80C09F -:100FE0008330910569F4CE018370992701E010E008 -:100FF00002C0000F111F8A95E2F7C8019C680FC05C -:1010000084309105B9F4CE018370992701E010E096 -:1010100002C0000F111F8A95E2F7C8019A6823E009 -:10102000CC0FDD1F2A95E1F7C07ED7708C010C2B09 -:101030001D2B56C08530910531F4DC2FCC278E0155 -:10104000046F106A4DC0069709F04AC0CF71DD27C2 -:10105000DC2FCC278E01106243C000E010E040C0BE -:101060008E013EC001E810E43BC003E810E438C044 -:1010700002EE14E435C009EE14E432C00AEE14E4C2 -:101080002FC005EB14E42CC006EB14E429C007EBD9 -:1010900014E426C00CEC14E423C00DEC14E420C0CE -:1010A00003E815E41DC00AE815E41AC002E915E4D6 -:1010B00017C004E915E414C001E216E411C003E20C -:1010C00016E40EC004E216E40BC005E216E408C004 -:1010D00006E216E405C007E216E402C00AE216E4DE -:1010E000C801DF91CF911F910F9108959CE0799FE6 -:1010F000F001112490E3899FE00DF11D1124E60F0A -:10110000F11DEE0FFF1FEA52FE4F85919491803E34 -:101110009105E0F4803C910558F58133910509F47F -:101120006FC048F48932910509F463C08A32910591 -:1011300009F46DC072C089339105E9F082389105D8 -:10114000D1F08533910509F44DC067C0833E910508 -:1011500081F138F4803E9105B9F0823E9105D9F0D5 -:101160005CC0863E910561F1873E9105A1F155C0B5 -:101170000E940406089520911C0320FD02C021FF57 -:101180004CC080EE90E049C080911C0380FFF9CFF5 -:1011900089E390E042C080911C0382FF0EC08091E1 -:1011A0001C0384FF03C080E090E037C083EE90E032 -:1011B00034C080911C0382FFF2CF82EE90E02DC0FC -:1011C00080911C0383FF0BC080911C0384FDEBCF37 -:1011D00087EE90E022C080911C0383FFF5CF86EE5E -:1011E00090E01BC080911C0385FF07C089E290E05E -:1011F00014C080911C0385FFF9CF85E390E00DC0FA -:1012000080911C0386FF07C08AE290E006C08091AF -:101210001C0386FFF9CF81E390E00E941406089535 -:101220000C94E502E82FF0E0E25BFE4F8081E82FAE -:10123000EF70F0E082958F7021E030E0A90102C0EC -:10124000440F551F8A95E2F740A308950F931F930B -:10125000CF93DF9385B7806885BF85B7806885BFEA -:10126000C3E0D0E001E010E0FE01E25BFE4F8081D0 -:10127000E82FEF70F0E021A182958F70A80102C0E5 -:10128000440F551F8A95E2F7CA01822B81A38C2F48 -:101290000E941209219740F78BE090E061E070E036 -:1012A000FC01EE5BFE4F2081E22FEF70F0E042A1E7 -:1012B00022952F70DB0102C0AA0FBB1F2A95E2F70F -:1012C0009D01242B22A3019758F7DF91CF911F9105 -:1012D0000F910C948F03EF92FF920F931F93CF9374 -:1012E000DF9300E212E0C3E0EE24E394F12CD5E0BA -:1012F0008C2F0E9412098BE090E040E050E0FC014E -:10130000EE5BFE4F6081E62FEF70F0E020A130E051 -:1013100062956F7002C0359527956A95E2F720FDBA -:1013200009C09701082E02C0220F331F0A94E2F76A -:10133000422B532B019718F7F801929182918F015C -:101340008417950721F051834083D09305018C2F9A -:101350000E941209C15060F68091050187FD2CC0E2 -:101360008150809305018F3F39F08FE99FE001970D -:10137000F1F700C0000020C080911E0290911F0272 -:10138000909327028093260280911C0290911D0267 -:10139000909325028093240280911A0290911B025F -:1013A0009093230280932202809118029091190257 -:1013B00090932102809320020E94910381E0DF91AB -:1013C000CF911F910F91FF90EF900895E82FF0E0DB -:1013D000EE0FFF1FE05EFD4F80819181089508951B -:1013E0000F931F93CF9308E212E0C0E0F8019291AF -:1013F00082918F010E945622C80FF2E000321F072F -:10140000A9F78C2FCF911F910F9108950E949A23D5 -:10141000811102C00E9476230E94BF23809307039C -:101420003E9A809171008D7F8093710082E080935D -:1014300090008AE18093910081E080932A020895D0 -:1014400080912A02811102C00E94060A10927A023B -:1014500010927902809171008D7F8093710080914C -:1014600090008F738093900010923C0210923B0288 -:10147000109273021092740210927502109276020A -:101480001092720210927102E1E5F2E0A1E4B2E082 -:1014900011921192119211921D921D9282E0E137E8 -:1014A000F807B1F70895CF92DF92EF92FF920F9372 -:1014B0001F93CF93DF9320913B02222309F484C032 -:1014C0006B017C0180912A02811102C00E94060AF0 -:1014D00001E712E0C7E0D0E0A7019601F801929180 -:1014E0008291729162918F010E940A29811131C00B -:1014F000FE01EE0FFF1FEE0FFF1FEF5AFD4F108290 -:10150000118212821382DE01AA0FBB1FAF5BBD4F97 -:1015100011961C921E92C730D105E9F021964481A4 -:1015200055816681778140835183628373831482FE -:1015300015821682178212968D919C91139711969F -:101540009C938E9313961C921E9212973496129629 -:10155000E2CF219708F68091790290917A02019763 -:1015600097FD05C090937A028093790204C010928F -:101570007A02109279028091790290917A022091F8 -:101580007702309178022817390724F010927802F8 -:1015900010927702892BC1F4809171008D7F809326 -:1015A0007100809190008F7380939000109273026D -:1015B00010927402109275021092760210927202CA -:1015C0001092710210923B02DF91CF911F910F9107 -:1015D000FF90EF90DF90CF9008951F920F920FB67B -:1015E0000F9211244F925F926F927F928F929F92EF -:1015F000AF92BF92CF92DF92EF92FF922F933F93E1 -:101600004F935F936F937F938F939F93AF93BF930A -:10161000CF93DF93EF93FF9380913B02882309F4EC -:101620009BC1C0917902D0917A021C161D060CF064 -:1016300093C140902B0250902C0260902D0270902C -:101640002E0220E030E0A901C301B2010E94B52AB8 -:1016500018160CF065C0C130D10509F452C0809154 -:10166000770290917802BE010E94872C7C019093B2 -:1016700078028093770280903D0290903E02A09085 -:101680003F02B090400220E030E040E85FE3C50157 -:10169000B4010E94A62860933D0270933E0280939D -:1016A0003F0290934002F701EE0FFF1FEE0FFF1F66 -:1016B000EF5AFD4FA3019201608171818281938174 -:1016C0000E940E2920E030E040E05EE30E94B92A4B -:1016D0009B01AC01C501B4010E94B52A18168CF417 -:1016E000C7010196BE010E94872C909378028093D7 -:1016F000770210923D0210923E0210923F02109229 -:101700004002E0917702F0917802EE0FFF1FEE0F9A -:10171000FF1FEF5AFD4F6081718182819381D0C09C -:10172000C0907302D0907402E0907502F09076023F -:1017300020E030E0A901C701B6010E940A292197E3 -:10174000882309F4A2C0FE01EE0FFF1FEE0FFF1F5A -:10175000EF5AFD4F80809180A280B380A501940153 -:10176000C701B6010E940A2987FF31C0A501940173 -:1017700060E070E08CED93EC0E940E2920E030E0F8 -:1017800040E451E40E940E2920E030E040E05FE3B5 -:101790000E94B92A9B01AC0160E070E080E090E417 -:1017A0000E941C2B9B01AC01C501B4010E94B92A07 -:1017B0009B01AC01C701B6010E940A2987FF07C03F -:1017C000A701960160E070E08CED93E439C0A501BB -:1017D0009401C701B6010E94B52A18160CF055C035 -:1017E000A501940160E070E08CED93E40E940E2965 -:1017F00020E030E040E451E40E940E2920E030E097 -:1018000040E05FE30E94B92A9B01AC0160E070E018 -:1018100080E090E40E941C2B9B01AC01C501B40147 -:101820000E94B92A9B01AC01C701B6010E94B52AEA -:1018300018165CF5A701960160E070E08CED93EC62 -:101840000E940E2920E030E040E451E40E940E297D -:1018500020E030E040E05FE30E94B92A9B01AC0148 -:1018600060E070E080E090E40E941C2B9B01AC01E2 -:10187000C701B6010E94B92A609373027093740283 -:10188000809375029093760213C0FE01EE0FFF1F46 -:10189000EE0FFF1FEF5AFD4F80819181A281B3812E -:1018A0008093730290937402A0937502B0937602B2 -:1018B000609173027091740280917502909176022A -:1018C00020912802309129022F3F4FEF340731F049 -:1018D0002F5F3F4F30932902209328020E94950EDC -:1018E0006B017C0120E034E244EF51E40E940A29BC -:1018F00087FF08C086EFC82E88E2D82E84EFE82E36 -:1019000081E4F82E20E030E040E051E4C701B60168 -:101910000E94B92A9B01AC0160E074E284E79BE479 -:101920000E940E296B017C010E947B297093970015 -:1019300060939600209106013091070140910801C3 -:1019400050910901C701B6010E94B92A0E947B2962 -:10195000709399006093980080913C02882309F469 -:1019600033C1C0903702D0903802E0903902F09035 -:101970003A0220E030E0A901C701B6010E94B52A71 -:101980001816D4F580912802909129028F3F2FEFED -:10199000920729F001969093290280932802C701AB -:1019A000B6010E94950E20E030E040E051E40E9434 -:1019B000B92A9B01AC0160E074E284E79BE40E94D9 -:1019C0000E296B017C010E947B2970939700609324 -:1019D0009600209106013091070140910801509135 -:1019E0000901C701B6010E94B92A0E947B297093A0 -:1019F00099006093980008C010929700109296008A -:101A00001092990010929800609131027091320208 -:101A10006F5F7F4F70933202609331022091960086 -:101A20003091970080E090E0232BF1F0C091960078 -:101A3000D09197000E94A7296B017C01BE0180E034 -:101A400090E00E94A7299B01AC0160913302709144 -:101A5000340280913502909136020E940E2920E0D6 -:101A60003FEF4FE757E410C00E94A7296B017C01AC -:101A700020E030EE4FEF54E4609133027091340275 -:101A800080913502909136020E94B92A9B01AC01E7 -:101A9000C701B6010E94B52A87FD96C080912F022A -:101AA0008F5F80932F0290E0209103033091040315 -:101AB00082179307A0F080910E03882319F01092EB -:101AC0002F020DC0809171008D7F809371008091F5 -:101AD00090008F738093900010923C027DC08091A3 -:101AE0003002C0912F02811128C0C0900803D0900D -:101AF0000903E0900A03F0900B0320E030E0A90115 -:101B0000C701B6010E94B52A1816BCF481E0809383 -:101B1000300210923702109238021092390210925D -:101B20003A02C0923302D0923402E0923502F0922F -:101B30003602C150C0932F0243C01092300210925F -:101B4000290210922802E0910503F091060348E073 -:101B5000C49FE00DF11D112480819181A281B38188 -:101B60008093370290933802A0933902B0933A02DF -:101B700020E030E040E85EE36481758186819781F2 -:101B80000E94B92A6B017C0180910A01682F70E0E4 -:101B900080E090E00E94A72920E030E048EC52E489 -:101BA0000E940E299B01AC01C701B6010E94B92A0F -:101BB000609333027093340280933502909336021F -:101BC00010923202109231028091070380FD04C00E -:101BD00010923C0210923B02FF91EF91DF91CF9166 -:101BE000BF91AF919F918F917F916F915F914F9135 -:101BF0003F912F91FF90EF90DF90CF90BF90AF90EB -:101C00009F908F907F906F905F904F900F900FBE3E -:101C10000F901F901895CF92DF92EF92FF92CF9383 -:101C2000DF936B017C01EA0180912A02811102C0DD -:101C30000E94060A8091070380FF46C080917902C6 -:101C400090917A0208970CF03FC0809171008D7FCF -:101C50008093710080913C0281110E94200A81E0F2 -:101C600080933B02109229021092280220E030E07B -:101C7000A901C701B6010E94B52A1816DCF48091AB -:101C8000790290917A02FC01EE0FFF1FEE0FFF1F09 -:101C9000EF5AFD4FC082D182E282F382FC01EE0F47 -:101CA000FF1FEF5BFD4FD183C083019690937A02B3 -:101CB000809379028091710082608093710080919D -:101CC0009000806880939000DF91CF91FF90EF901B -:101CD000DF90CF90089580910703817008958091DF -:101CE00007038160809307030E94C3230C94EB03D6 -:101CF000809107038E7F809307030C94C323809108 -:101D00007B0290E0019666E070E00E94872C809351 -:101D10007B02089580917B0290E0019766E070E07D -:101D20000E94872C80937B0208958F929F92AF929E -:101D3000BF92CF92DF92EF92FF920F931F93CF93B8 -:101D4000DF936B017C01C0912802D0912902BE0172 -:101D500080E090E00E94A7294B015C01A701960159 -:101D600060E070E08CE594E40E940E299B01AC01D8 -:101D7000C501B4010E94B92A0E947B2920917B02EF -:101D8000233009F473C028F4222351F02130E9F004 -:101D90002CC1243009F4A0C0253009F4E0C025C1CD -:101DA00080E090E0A0E0BFE38093060190930701FC -:101DB000A0930801B093090110922B0210922C02FB -:101DC00010922D0210922E0210C110922B0210922E -:101DD0002C0210922D0210922E026431710540F4F3 -:101DE0006A30710560F520E030E040E85EE32BC02A -:101DF000693C710508F0AAC080E090E00E94A72924 -:101E000020E030E040EA51E40E94A52820E030E0E4 -:101E100044E353E40E940E299B01AC010E94B92ABD -:101E200020E030E040E05EE30E94B92A9B01AC0173 -:101E300060E070E080E09EE30E94A52844C020E0BE -:101E400030E040E05FE3C701B6010E94B92A6B01B0 -:101E50007C0180E090E0A0E0BEE3809306019093D7 -:101E60000701A0930801B0930901BFC010922B0293 -:101E700010922C0210922D0210922E024AE0469FE0 -:101E80009001479F300D1124C90168EB7BE00E944F -:101E9000732CBC016C5D754077FF03C07195619533 -:101EA0007109882777FD8095982F0E94A9292EE334 -:101EB00033EC4EE259E30E94B92A20E030E040ECD6 -:101EC0005EE30E94A6286093060170930701809349 -:101ED00008019093090189C010922B0210922C02E4 -:101EE00010922D0210922E02CE0183709927892B19 -:101EF000E1F0BE016170772780E090E00E94A729A1 -:101F000020E030E040E05EE30E94B92A20E030E0CB -:101F100040E45FE30E94A6286093060170930701E6 -:101F200080930801909309010CC080E090E0A0E04C -:101F3000BFE38093060190930701A0930801B0933B -:101F40000901C770DD27CD2B09F04FC010920601A3 -:101F500010920701109208011092090146C01092D8 -:101F60002B0210922C0210922D0210922E0200E0F1 -:101F700010E020E03FE30093060110930701209357 -:101F80000801309309016739710578F180E090E02C -:101F90000E94A72920E030E047E153E40E94A528F1 -:101FA00020E030E04AE754E40E940E2920E030E0CF -:101FB00048E452E40E94B92A20E030E040EA51E4CB -:101FC0000E94EB290E947629660F771F660F771F04 -:101FD000FB01EE5AFE4F2081318142815381C701BE -:101FE000B6010E94B92A6B017C01C701B601DF91DD -:101FF000CF911F910F91FF90EF90DF90CF90BF9006 -:10200000AF909F908F90089580918C020895CF9308 -:10201000DF9300D01F92CDB7DEB79C0180911303F0 -:10202000843019F593E099833B832A839093E900E8 -:102030008FEF9091E800815095FD06C095ED9A953F -:10204000F1F700008111F5CF8091E80085FF0DC008 -:1020500040E050E063E070E0CE0101960E9468121B -:102060008091E8008E778093E8000F900F900F909A -:10207000DF91CF910895CF93DF9300D01F92CDB71A -:10208000DEB720911303243021F522E029839B83BE -:102090008A8383E08093E9008FEF9091E80081507C -:1020A00095FD06C095ED9A95F1F700008111F5CFE9 -:1020B0008091E80085FF0DC040E050E063E070E0F3 -:1020C000CE0101960E9468128091E8008E7780937D -:1020D000E8000F900F900F90DF91CF91089520911D -:1020E00013032430F1F422E02093E9002FEF309124 -:1020F000E800215035FD06C035ED3A95F1F70000B6 -:102100002111F5CF2091E80025FF0BC040E050E001 -:1021100065E070E00E9468128091E8008E778093FD -:10212000E8000895CF93DF93EC019091130394306E -:1021300009F046C0809115018823D9F080911601DD -:102140008823B9F09093E9008FEF9091E8008150D7 -:1021500095FD06C095E19A95F1F700008111F5CF44 -:102160008091E80085FF2CC040E050E060E170E025 -:1021700017C081E08093E9008FEF9091E8008150D3 -:1021800095FD06C095ED9A95F1F700008111F5CF08 -:102190008091E80085FF14C040E050E068E070E006 -:1021A000CE010E9468128091E8008E778093E8004B -:1021B00080E1FE01ACE7B2E001900D928A95E1F773 -:1021C000DF91CF91089580911203811109C00E947F -:1021D000FD130E945A148091E20084608093E20013 -:1021E0000895109212030895089508950C94A12261 -:1021F00042E061EC81E00E94771342E061EC82E012 -:102200000E94771342E061EC83E00E94771342E181 -:1022100061EC84E00C94771380911503833009F40A -:1022200055C030F4813071F0823009F48EC00895C9 -:102230008A3009F47AC08B3009F460C0893009F023 -:102240009CC020C080911403813A09F096C080910F -:10225000E800877F8093E80080911803909119032C -:10226000892B21F460E18CE792E003C060E080E01C -:1022700090E070E00E94B3128091E8008B77809329 -:10228000E800089580911403813209F076C08091AE -:10229000180390911903009719F0039709F06DC086 -:1022A0008091E800877F8093E8008091E80082FDBC -:1022B00005C0809113038111F8CF5FC08091F100B8 -:1022C00080938C028091E8008B7753C08091140337 -:1022D000813A09F052C08091180390911903892B1B -:1022E00009F04BC08091E800877F8093E8008091DF -:1022F000E80080FFFCCF8091150136C08091140367 -:102300008132D9F58091180390911903892BA9F591 -:102310008091E800877F8093E8000E94AC13809151 -:102320001603809315010C94E21B809114038132F3 -:1023300021F58091E800877F8093E8000E94AC132C -:102340008091170380938D02089580911403813A40 -:10235000A1F48091E800877F8093E8008091E800F5 -:1023600080FFFCCF80918D028093F1008091E80086 -:102370008E778093E8000C94AC13089584B7877F20 -:1023800084BF88E10FB6F8948093600010926000DB -:102390000FBE90E080E80FB6F894809361009093B0 -:1023A00061000FBE0E944F170E94FD130E945A1435 -:1023B0008091E20084608093E20078940E94E016AD -:1023C0000E9451178BE091E00E94FB16809113034D -:1023D000853069F40E946222809111038823B1F351 -:1023E0000E949022882391F30E945212EFCF0E9404 -:1023F0005917ECCF292F332723303105C9F064F466 -:102400002130310581F02230310509F043C08DE6DD -:1024100090E022EB33E042C021323105F1F022326C -:10242000310541F137C082E190E02FE134E036C060 -:1024300099278130910541F08230910541F0892B37 -:1024400049F5EEEAF3E005C0E0E8F3E002C0E6E5B6 -:10245000F3E0849190E09F0121C06430D8F4E62F2E -:10246000F0E0EE0FFF1FE255FE4F2081318189E041 -:1024700090E014C0643070F470E0FB01EE0FFF1FB9 -:10248000EA55FE4F20813181FB01EE55FE4F8081E0 -:1024900090E004C080E090E020E030E0FA01318379 -:1024A0002083089580E189BD82E189BD09B400FEE1 -:1024B000FDCF8091D8008F7D8093D8008091E0007F -:1024C00082608093E0008091E00081FDFCCF089560 -:1024D000CF92DF92EF92FF920F931F93CF93DF93F0 -:1024E000EC018B016A010E94CB13811133C0C1142E -:1024F000D10439F0F60180819181081B190BC80FB6 -:10250000D91FE12CF12C0115110519F18091E8007A -:1025100085FD16C08091E8008E778093E800C11495 -:10252000D10449F0F60180819181E80EF91EF18213 -:10253000E08285E00FC00E94CB13882321F30AC0FC -:1025400089918093F10001501109FFEFEF1AFF0A02 -:10255000DACF80E0DF91CF911F910F91FF90EF9044 -:10256000DF90CF90089520911A0330911B03261716 -:10257000370748F06115710539F42091E8002E778E -:102580002093E80001C0B90140E061157105A9F18F -:1025900020911303222309F443C0253009F442C0DB -:1025A0002091E80023FD40C02091E80022FD32C0C8 -:1025B0002091E80020FFE9CF4091F3002091F20044 -:1025C00030E0342BFC01CF016115710559F0283042 -:1025D000310540F481918093F100615071092F5FC2 -:1025E0003F4FF1CF41E02830310509F040E0209124 -:1025F000E8002E772093E800C8CF4111C9CF0AC068 -:1026000080911303882361F0853061F08091E800A8 -:1026100083FD0AC08091E80082FFF2CF80E0089538 -:1026200082E0089583E0089581E0089520911A03DF -:1026300030911B032617370748F06115710539F4EF -:102640002091E8002E772093E80001C0B901FC0139 -:1026500020E06115710591F180911303882309F43D -:1026600040C0853009F43FC08091E80083FD3DC043 -:102670008091E80082FD2FC08091E80080FFE9CFC3 -:102680002091F3008091F20090E0922B611571058A -:1026900059F08830910540F424912093F10031964F -:1026A000615071090196F2CF21E0089709F020E00E -:1026B0008091E8008E778093E800CBCF2111CCCFBA -:1026C0000AC080911303882361F0853061F0809106 -:1026D000E80083FD0AC08091E80082FFF2CF80E02D -:1026E000089582E0089583E0089581E00895982F89 -:1026F000973058F59093E900981739F07091EC00F5 -:102700002091ED005091F00003C0242F762F50E06F -:1027100021FF19C03091EB003E7F3093EB003091E8 -:10272000ED003D7F3093ED003091EB003160309350 -:10273000EB007093EC002093ED005093F00020919B -:10274000EE0027FF07C09F5FD3CF8F708093E90013 -:1027500081E0089580E008958091140387FF11C0FF -:102760008091E80082FD05C0809113038111F8CFAC -:1027700011C08091E8008B770BC0809113038823F0 -:1027800049F08091E80080FFF8CF8091E8008E77D3 -:102790008093E80008952091E4003091E50095E6EB -:1027A0004091EC00842F817040FF22C08091E800AE -:1027B00080FD1CC080911303882391F0853091F037 -:1027C0008091EB0085FD10C04091E4005091E50040 -:1027D0004217530729F39A01915011F784E00895A5 -:1027E00082E0089583E0089581E0089580E00895EF -:1027F0004091E80042FFDECF08950E946B140E94D2 -:102800007314E0EEF0E0808181608083E8EDF0E019 -:1028100080818F77808319BCA7EDB0E08C918E7F8B -:102820008C9380818F7E80831092120308950F9382 -:102830001F93CF93DF930E946B140E947314C8ED13 -:10284000D0E088818F7788838881806888838881B9 -:102850008F7D888319BC1092130310920F0310927E -:1028600011031092100300EE10E0F80180818B7FBD -:10287000808388818160888342E060E080E00E94FC -:102880007713E1EEF0E080818E7F8083E2EEF0E06E -:10289000808181608083808188608083F80180816D -:1028A0008E7F8083888180618883DF91CF911F91A3 -:1028B0000F910895E8EDF0E080818F7E8083E7ED51 -:1028C000F0E080818160808384E082BF81E080933A -:1028D00012030C941714E8EDF0E080818E7F808362 -:1028E0001092E20008951092DA001092E10008952B -:1028F0001F920F920FB60F9211242F933F934F9375 -:102900005F936F937F938F939F93AF93BF93EF9357 -:10291000FF938091E10082FF0BC08091E20082FF73 -:1029200007C08091E1008B7F8093E1000E94DF1659 -:102930008091DA0080FF1FC08091D80080FF1BC00B -:102940008091DA008E7F8093DA008091D90080FF39 -:102950000DC080E189BD82E189BD09B400FEFDCFD3 -:1029600081E0809313030E94E31005C019BC10920C -:1029700013030E94F1108091E10080FF19C0809143 -:10298000E20080FF15C08091E2008E7F8093E2001C -:102990008091E20080618093E2008091D8008062A3 -:1029A0008093D80019BC85E0809313030E94F51032 -:1029B0008091E10084FF30C08091E20084FF2CC050 -:1029C00080E189BD82E189BD09B400FEFDCF80911F -:1029D000D8008F7D8093D8008091E1008F7E809316 -:1029E000E1008091E2008F7E8093E2008091E2001E -:1029F00081608093E20080910F03882311F084E0CE -:102A000007C08091E30087FD02C081E001C083E040 -:102A1000809313030E94F6108091E10083FF29C088 -:102A20008091E20083FF25C08091E100877F809341 -:102A3000E10082E08093130310920F038091E10084 -:102A40008E7F8093E1008091E2008E7F8093E20090 -:102A50008091E20080618093E20042E060E080E0EB -:102A60000E9477138091F00088608093F0000E94AC -:102A7000F410FF91EF91BF91AF919F918F917F9152 -:102A80006F915F914F913F912F910F900FBE0F90DB -:102A90001F9018951F920F920FB60F9211242F932B -:102AA0003F934F935F936F937F938F939F93AF93D6 -:102AB000BF93CF93DF93EF93FF93C091E900CF7063 -:102AC0008091EC00D82FD17080FDD0E81092E90001 -:102AD0008091F000877F8093F00078940E948E159B -:102AE0001092E9008091F00088608093F000CD2B77 -:102AF000CF70C093E900FF91EF91DF91CF91BF912B -:102B0000AF919F918F917F916F915F914F913F9185 -:102B10002F910F900FBE0F901F9018951F93CF937A -:102B2000DF93CDB7DEB7AA970FB6F894DEBF0FBE1E -:102B3000CDBFE4E1F3E088E08E0F9091F100919336 -:102B40008E13FBCF0E940C118091E80083FF1FC100 -:102B50008091140390911503492F50E04A3051059C -:102B600008F015C1FA01EA5AFF4F0C949B2C8038EB -:102B700081F0823809F00BC1809118038F70809327 -:102B8000E9008091EB0085FB882780F91092E9002D -:102B900006C0809110039091110391118260909171 -:102BA000E800977F9093E8008093F1001092F10085 -:102BB000C8C0282F2D7F09F0EAC0882319F0823081 -:102BC00061F0E5C080911603813009F0E0C09330D8 -:102BD00009F080E0809311032BC0809116038111CE -:102BE00027C0809118038F7009F4D1C08093E90049 -:102BF0002091EB0020FF1CC0933021F48091EB006A -:102C0000806214C09091EB0090619093EB0021E002 -:102C100030E0A90102C0440F551F8A95E2F74093A6 -:102C2000EA001092EA008091EB0088608093EB004C -:102C30001092E9008091E800877F86C08111A7C0CB -:102C4000109116031F778091E3008078812B809389 -:102C5000E3008091E800877F8093E8000E94AC1336 -:102C60008091E80080FFFCCF8091E3008068809332 -:102C7000E300111102C082E001C083E080931303DE -:102C800086C08058823008F082C0809116039091EF -:102C900017038C3D53E0950779F583E08A838AE238 -:102CA00089834FB7F894DE01139620E03EE051E2AD -:102CB000E32FF0E050935700E49120FF03C0E2952A -:102CC000EF703F5FEF708E2F90E0EA3010F0C79604 -:102CD00001C0C0968D939D932F5F243149F74FBF5C -:102CE0008091E800877F8093E8006AE270E0CE017F -:102CF00001960E94B31214C0AE014F5F5F4F609106 -:102D000018030E94FA11BC01009709F440C0909189 -:102D1000E800977F9093E80089819A810E941613BA -:102D20008091E8008B778093E80031C0803879F596 -:102D30008091E800877F8093E80080910F03809363 -:102D4000F1008091E8008E778093E8000E94AC1338 -:102D50001EC081111CC0909116039230C0F4809166 -:102D6000E800877F8093E80090930F030E94AC13E4 -:102D700080910F03811106C08091E30087FD02C09E -:102D800081E001C084E0809313030E94F8108091D9 -:102D9000E80083FF0AC08091E800877F8093E80005 -:102DA0008091EB0080628093EB00AA960FB6F894B6 -:102DB000DEBF0FBECDBFDF91CF911F910895089563 -:102DC000CF93809113038823A1F0C091E900CF70C5 -:102DD0009091EC00892F817090FD80E8C82B1092B3 -:102DE000E9008091E80083FD0E948E15CF70C093AA -:102DF000E900CF91089590939302809392020895F1 -:102E0000E0919202F0919302309721F00190F081CD -:102E1000E02D099480E00895E0919202F0919302F0 -:102E2000309721F00280F381E02D09940895E0911C -:102E30009202F0919302309721F00480F581E02D09 -:102E4000099408952091900230919102821793077E -:102E500071F09093910280939002E0919202F09130 -:102E60009302309721F00680F781E02D09940895B0 -:102E700020918E0230918F028217930771F0909308 -:102E80008F0280938E02E0919202F091930230972C -:102E900021F00084F185E02D0994089508950C94A3 -:102EA0004E170E94D5220E9426090E945B230C9493 -:102EB0000A285F926F927F928F929F92AF92BF92F9 -:102EC000CF92DF92EF92FF920F931F93CF93DF93F6 -:102ED00000D000D01F92CDB7DEB70E946B099DE9EC -:102EE000C92E92E0D92E03E010E0AA24A394B12CBD -:102EF000502E802F0E94E6094C01F60172906290DC -:102F00006F016826792661147104A1F4015011093A -:102F100078F78FEF89838A831B820E94DE2281608B -:102F2000782F9D838C8349815A816B818D810E948A -:102F3000091838C08091F20281FD0E94EF092BE050 -:102F400030E07501022E02C0EE0CFF1C0A94E2F77D -:102F5000C70186219721892B09F129835A828E2066 -:102F60009F2091E0892809F490E09B830E94DE2253 -:102F70008160782F9D838C8349815A816B818D81FB -:102F80000E940918000F111FF801EB56FD4F8081B8 -:102F90009181E826F926F182E08204C021503109AE -:102FA00080F6B4CF0E944225109194020E9400172F -:102FB0001817D1F00E940017809394020F900F9081 -:102FC0000F900F900F90DF91CF911F910F91FF9075 -:102FD000EF90DF90CF90BF90AF909F908F907F90B9 -:102FE0006F905F900C9410090F900F900F900F90BE -:102FF0000F90DF91CF911F910F91FF90EF90DF9095 -:10300000CF90BF90AF909F908F907F906F905F9088 -:103010000895CF93DF93CDB7DEB72B970FB6F89413 -:10302000DEBF0FBECDBF4F83588769877A878B87F6 -:10303000DE01119686E0FD0111928A95E9F785E09F -:10304000FE01379601900D928A95E1F749815A81E8 -:103050006B817C818D819E810E94801E2B960FB694 -:10306000F894DEBF0FBECDBFDF91CF910895CF930F -:10307000882309F4C2C0C82F823859F40E9400176F -:1030800081FDBBC089E30E945A210E94272289E367 -:103090000CC0833879F40E94001780FDAEC083E530 -:1030A0000E945A210E94272283E50E949C21CF91F1 -:1030B0000C942722843859F40E94001782FD9DC089 -:1030C00087E40E945A210E94272287E4EECF8CEFEA -:1030D0008C0F813A48F48C2F0E94722781118DC089 -:1030E0008C2F0E945A21E3CF80E28C0F883048F465 -:1030F000C77081E001C0880FCA95EAF70E94E021FD -:10310000D6CF8BE58C0F833078F4C53A29F0C63AD8 -:1031100031F083E890E005C081E890E002C082E8E9 -:1031200090E0CF910C94221788E58C0F833108F042 -:1031300064C0C83A39F1C93A41F1CA3A49F1CB3AC7 -:1031400051F1CC3A59F1CD3A61F1C03B69F1CE3A37 -:1031500071F1CF3A79F1C13B81F1C23B89F1C33BB7 -:1031600091F1C43B99F1C53BA1F1C63BA9F1C73B25 -:10317000B1F1C83BB9F1C93BC1F1CA3BC9F180E02B -:1031800090E038C082EE90E035C089EE90E032C029 -:103190008AEE90E02FC085EB90E02CC086EB90E0AB -:1031A00029C087EB90E026C08CEC90E023C08DEC2A -:1031B00090E020C083E891E01DC08AE891E01AC049 -:1031C00082E991E017C084E991E014C081E292E0C5 -:1031D00011C083E292E00EC084E292E00BC085E26F -:1031E00092E008C086E292E005C087E292E002C069 -:1031F0008AE292E0CF910C943817CF9108958823FA -:1032000009F44BC0823859F40E94001781FF45C071 -:1032100089E30E945A210E94272289E30CC0833847 -:1032200071F40E94001780FF38C083E50E945A2184 -:103230000E94272283E50E949C210C942722843837 -:1032400059F40E94001782FF28C087E40E945A2187 -:103250000E94272287E4EFCF9CEF980F913A58F312 -:1032600090E2980F983050F4877091E001C0990F68 -:103270008A95EAF7892F0E94E621DFCF9BE5980F18 -:10328000933020F480E090E00C942217885A833128 -:1032900020F480E090E00C9438170895882321F002 -:1032A0000E94E0210C9427220895882321F00E9497 -:1032B000E6210C94272208957F928F929F92AF92DD -:1032C000BF92CF92DF92EF92FF920F931F93CF9313 -:1032D000DF931F92CDB7DEB77C01C62E772EFC019F -:1032E000058102950F70128111110E94FD210E942B -:1032F0005321882379F0112369F080E28C0D883006 -:1033000048F082E00E943C210E94532191E0D82E97 -:10331000D92601C0D12CE72DE295EF70F0E0E05AFC -:10332000FF4F0C949B2C872D807F072D0F708823D7 -:1033300011F00295007F112389F0002309F499C14F -:1033400080E28C0D883020F4802F0E94E02103C0A1 -:10335000802F0E94F0210E9427228BC18C2D0E9479 -:10336000FF18002309F4C3C180E28C0D883020F4DB -:10337000802F0E94E62103C0802F0E94F6210E9428 -:103380002722B5C1872D807F972D9F70803211F441 -:10339000892F03C0892F8295807FCC2021F0F1E016 -:1033A000CF16A1F01DC0112339F0002319F101300F -:1033B00009F50E9410229BC1002319F0013009F485 -:1033C00096C189830E941322898110C1112321F0A3 -:1033D000063008F08CC10EC0053008F088C106C167 -:1033E000112359F0002331F0F701958190FF41C17D -:1033F0009F7095830E944E197AC1002309F4F6C08C -:103400003EC1872D86958695837090E0009719F0D0 -:10341000019761F06CC1112321F08C2D972D9370D1 -:1034200002C080E090E00E94221761C1112321F0C8 -:103430008C2D972D937002C080E090E00E94381789 -:1034400056C18C2D112319F00E944A2402C00E94FB -:10345000B2240E9437254BC1872D837009F052C0DA -:10346000111145C18C2D829586958770880F880F24 -:103470009C2D9F70892E912CA12CB12C082E04C05C -:10348000880C991CAA1CBB1C0A94D2F7C4FE14C059 -:103490000FE010E020E030E0B901A80104C0440FC3 -:1034A000551F661F771F8A95D2F7CB01BA01609529 -:1034B00070958095909503C060E070E0CB01272D5A -:1034C00026952695237030E02230310569F02330AF -:1034D000310589F0682979298A299B29213031050C -:1034E00071F00E94C81F03C1682979298A299B2984 -:1034F0000E94E41FFCC00E94C81FC501B4010E94C5 -:10350000AC1FF5C0112319F0872D817001C086957D -:10351000882309F4ECC08C2D829586958770880FDE -:10352000880F9C2D9F70892E912CA12CB12C082ED8 -:1035300004C0880C991CAA1CBB1C0A94D2F7C4FEB8 -:1035400014C00FE010E020E030E0B901A80104C091 -:10355000440F551F661F771F8A95D2F7CB01BA011A -:10356000609570958095909503C060E070E0CB0108 -:10357000272D269526952370422F50E04230510585 -:1035800069F04330510589F0682979298A299B29F6 -:103590004130510571F00E94A220A9C06829792903 -:1035A0008A299B290E94BE20A2C00E94A220C50198 -:1035B000B4010E9486209BC08C2D90E0FC01E05E4F -:1035C000F109E531F10508F050C0E059FF4F0C94C6 -:1035D0009B2C0C2D0F70872D8F71112321F00E94D1 -:1035E0001F20802F07CF0E944020802F0E94551956 -:1035F0007EC0112341F0053008F079C0872D8F710E -:103600000E94652074C0063008F071C0F7CF112306 -:1036100039F0872D8F710E941F2069C01123C9F3D3 -:10362000872D8F710E94402062C0112329F0872DC1 -:103630008F710E940A205BC00E94002058C0112395 -:1036400051F0172D1F71812F0E941F2063E0812FE1 -:103650000E9433214CC081E00E943C21023008F4DA -:1036600046C082E00E943C2142C0112331F0002379 -:1036700081F28C2D0E9437183AC0002389F28C2DDC -:103680000E94FF1834C0472D4F706C2DC7010E9457 -:10369000EE050E94241F2BC0111129C0472D4F7029 -:1036A00050E042305105B9F04CF44115510581F01C -:1036B00041305105E1F40E94322819C043305105D0 -:1036C00069F04430510599F48C2D0E9484280FC074 -:1036D0000E941B280CC00E944E2809C00E9461282D -:1036E00006C0472D4F706C2DC7010E94F105DD20EB -:1036F000F9F00E942F2180FD1BC0F70112820E9469 -:1037000029210E941F20C7010E94A71B0E94292176 -:103710000F90DF91CF911F910F91FF90EF90DF906D -:10372000CF90BF90AF909F908F907F900C9440204F -:103730000F90DF91CF911F910F91FF90EF90DF904D -:10374000CF90BF90AF909F908F907F9008950F93F0 -:103750001F93CF93DF93EC01888199812B813C816A -:10376000232BB9F09F3F11F48F3F99F0CE010E94B7 -:10377000ED03882371F0688179818A810E94252177 -:103780008C010E94DA200E94A11FB801CE010E9484 -:103790005C19DF91CF911F910F9108950E94FD2137 -:1037A0000E940D220E94D2210E9427220E94E82519 -:1037B0000E94372580E090E00E94221780E090E090 -:1037C0000C9438170E94ED210C94CE1B0E941A21F4 -:1037D000292F22952F7030E02C3031054CF42A30FF -:1037E00031056CF42250310922303105A8F407C0AC -:1037F0002C30310569F02F30310551F00DC0803F7C -:1038000069F018F4803E40F409C0843F29F406C0F2 -:1038100093FB882780F9089580E0089581E008955A -:10382000CF93DF9300D000D01F92CDB7DEB70F90BB -:103830000F900F900F900F90DF91CF910895CF933D -:10384000DF9300D000D000D0CDB7DEB726960FB6FC -:10385000F894DEBF0FBECDBFDF91CF9108951F93C7 -:10386000CF93DF93C0919D0216E080919E02C8170E -:1038700099F0D0E01C9FF0011D9FF00D1124E1563E -:10388000FD4F4081518162817381848195810E94C5 -:103890001F1C2196C770E9CFDF91CF911F9108952A -:1038A0004091CF025091D0026091D1027091D2022A -:1038B0008091D3029091D4020C941F1C8091D40269 -:1038C00082958F7009F054C08091D102882309F449 -:1038D0004FC080919D02A0919E026091CF02709195 -:1038E000D0024091D2025091D302B6E08A1709F477 -:1038F0003FC090E041155105C1F17F3F11F46F3F8A -:10390000A1F1B89FF001B99FF00D1124E156FD4FD0 -:10391000218172132AC02081621327C022812111C4 -:1039200024C0238134812417350710F42150310934 -:10393000241B350B283C3105C0F42091D4022F7094 -:1039400020612093D40226E0289FF001299FF00DEA -:103950001124EC55FD4F80818F70806180838FEC46 -:1039600092E00E94A71B0C942F1C01968770BECF7B -:103970000895CF92DF92EF92FF920F931F93CF9310 -:10398000DF93CDB7DEB762970FB6F894DEBF0FBEF8 -:10399000CDBF8C0185E0F801DE011D9601900D92EE -:1039A0008A95E1F7D8014C9111965C911197129686 -:1039B0006C9112971396CD90DC9014973091CF02B2 -:1039C0007091D0028091D2029091D302009709F4B5 -:1039D0006BC17F3F19F43F3F09F466C1E090D1020B -:1039E000EE2009F4C0C02091D402C816D90628F0F0 -:1039F000F601E81BF90BCF0104C0809590958C0D62 -:103A00009D1DFF24F394883C910578F0F12C207FD4 -:103A100009F0C6C07C2DD98AC88A89890E94101CE9 -:103A20008FEC92E00E94A71BB1C0822F807F09F02B -:103A300046C0751314C0341312C0611110C02F702A -:103A400020612093D4020E94501C8FEC92E00E94CF -:103A5000A71B8091D402D80115968C932EC0CD2837 -:103A600019F15F3F11F44F3FF9F0F62E61111CC0C0 -:103A700080919D0220919E0236E0821709F45AC07F -:103A800090E0389FF001399FF00D1124E156FD4F71 -:103A90007181571306C07081471303C07281711181 -:103AA00003C001968770E9CFF62E662309F418C18A -:103AB0008091D40281608093D402F12C11C17513DE -:103AC00008C0341306C0611104C08091D402D8012B -:103AD000C3C04D875E878D859E856A8B0E94E61BDD -:103AE0006A898823E1F16623D1F12091D402822FE3 -:103AF00082958F7090E0029774F08091CF02909140 -:103B0000D00298878F831986DB86CA862C87CE01E0 -:103B100007960E94A71B86E0F801AFECB2E0019087 -:103B20000D928A95E1F70E945E1C0E94501CFF24B2 -:103B3000F394D6C04D875E878D859E850E941A219D -:103B4000292F22952F7030E0223031050CF0BCC0B7 -:103B50009F7009F0B6C0805E883008F4C1C0C8010B -:103B60000E94A71BE4CFC816D90608F453C0F6017B -:103B7000E81BF90BCF01883C910508F450C0F12CEB -:103B80007C2DD98AC88A89890E94101CEFECF2E04A -:103B900086E0DF011D928A95E9F70E94501CA0C0C3 -:103BA000751314C0341312C0611110C08091D40277 -:103BB000F8018583C8010E94A71B86E0EFECF2E0C4 -:103BC000DF011D928A95E9F7FE2C8AC04D875E873A -:103BD0008D859E856A8B0E94E61B6A89882309F47D -:103BE000BECF662309F4BBCF2091D402822F8295E9 -:103BF0008F7090E002970CF48ECF8091CF0290915D -:103C0000D0029A8389831B82DD82CC822E83CE01EF -:103C100001967FCF809590958C0D9D1DACCFF62E93 -:103C2000662309F49CCF75132EC034132CC0209149 -:103C3000D40220FD1FC0822F82958F70D9F0D80149 -:103C400015962C9315978F3049F08F5F982F92958A -:103C5000907F822F8F70892B15968C93C8010E94BC -:103C6000A71B86E0F801AFECB2E001900D928A95B7 -:103C7000E1F793CF86E0F801AFECB2E001900D924E -:103C80008A95E1F72DC04D875E878D859E850E94C0 -:103C9000E61B811140CF8091D40281608093D402D1 -:103CA000C8010E94A71B1CC0662309F458CF4D878A -:103CB0005E878D859E850E94E61B882309F44FCF81 -:103CC0002ACF811148CF0CC0243031050CF047CFEA -:103CD0009F7009F440CFF8019581907F09F03BCFA8 -:103CE0008F2D62960FB6F894DEBF0FBECDBFDF9169 -:103CF000CF911F910F91FF90EF90DF90CF9008959B -:103D00001F93CF93DF93CDB7DEB72C970FB6F89400 -:103D1000DEBF0FBECDBF4F83588769877A878B87F9 -:103D20009C87CE0107960E94B91C882369F08F8179 -:103D300098852A853B85232BF1F19F3F09F063C0CD -:103D40008F3F09F060C037C086E0FE013796DE0184 -:103D5000119601900D928A95E1F76F817885EA8539 -:103D6000FB85309741F17F3F11F46F3F21F12091A6 -:103D70009E0230E0C90101968770992740919D020B -:103D800050E08417950709F447C069837A83FD835F -:103D9000EC8396E0929FD001939FB00D1124A15621 -:103DA000BD4FFE01319601900D929A95E1F78093F7 -:103DB0009E020E942F1C16E080919D0290919E020F -:103DC0008917C1F1189FC001112481569D4F0E948F -:103DD000B91C882379F1E0919D021E9FF001112406 -:103DE000E156FD4F408151816281738184819581CB -:103DF0000E941F1C80919D0290E001968770992778 -:103E000080939D02D9CF4F81588569857A858B85AE -:103E10009C850E941F1CCFCF0E94E21B10929E0225 -:103E200010929D02EFECF2E086E0DF011D928A9590 -:103E3000E9F7C1CF2C960FB6F894DEBF0FBECDBF09 -:103E4000DF91CF911F910895EF92FF920F931F93EF -:103E5000CF93DF938C01009709F46CC0F12CEE2412 -:103E6000E394E8012196F8018491843740F484308A -:103E700008F051C0813081F0823019F15BC0853784 -:103E800009F444C0A8F19CE7980F903708F052C09D -:103E90008F770E94FF1841C00E5F1F4FFE01C49133 -:103EA00080E28C0F883048F4C7708E2D01C0880FD7 -:103EB000CA95EAF70E94002214C08C2F0E9437187E -:103EC0002DC00E5F1F4FFE01C49180E28C0F883021 -:103ED00058F4C7708E2D01C0880FCA95EAF70E946A -:103EE00006220E9427221AC08C2F0E94FF1816C09B -:103EF0000E5F1F4FFE01C491CC2381F08FE99FE03C -:103F00000197F1F700C00000C150F6CF0E5F1F4FC0 -:103F1000FE01F49003C00E9437188E018F2D882374 -:103F200009F49FCFEFE9FFE03197F1F700C00000FF -:103F30008150F5CFDF91CF911F910F91FF90EF90BE -:103F4000089508956093D9027093DA028093DB029A -:103F50009093DC020C94CE1B0F931F930091D90217 -:103F60001091DA022091DB023091DC02DC01CB01FE -:103F7000802B912BA22BB32B8093D9029093DA0242 -:103F8000A093DB02B093DC021F910F910C94CE1B27 -:103F90000F931F930091D9021091DA022091DB0256 -:103FA0003091DC02DC01CB0180239123A223B323D7 -:103FB0008093D9029093DA02A093DB02B093DC02E3 -:103FC0001F910F910C94CE1B0F931F930091D90258 -:103FD0001091DA022091DB023091DC02DC01CB018E -:103FE00080279127A227B3278093D9029093DA02E2 -:103FF000A093DB02B093DC021F910F910C94CE1BB7 -:104000001092D5021092D6021092D7021092D802C6 -:104010000C94CE1B41E050E060E070E004C0440F1F -:10402000551F661F771F8A95D2F74093D50250938C -:10403000D6026093D7027093D8020C94CE1B41E055 -:1040400050E060E070E004C0440F551F661F771F0A -:104050008A95D2F78091D5029091D602A091D7028D -:10406000B091D802482B592B6A2B7B2B4093D50259 -:104070005093D6026093D7027093D8020C94CE1B53 -:1040800041E050E060E070E004C0440F551F661F3F -:10409000771F8A95D2F740955095609570958091DD -:1040A000D5029091D602A091D702B091D8024823B0 -:1040B00059236A237B234093D5025093D602609301 -:1040C000D7027093D8020C94CE1B41E050E060E020 -:1040D00070E004C0440F551F661F771F8A95D2F702 -:1040E0008091D5029091D602A091D702B091D802CA -:1040F000482759276A277B274093D5025093D60239 -:104100006093D7027093D8020C94CE1B0F931F9329 -:104110000091D5021091D6022091D7023091D80299 -:10412000DC01CB01802B912BA22BB32B8093D502EA -:104130009093D602A093D702B093D8021F910F910B -:104140000C94CE1B0F931F930091D5021091D602B1 -:104150002091D7023091D802DC01CB01802391233A -:10416000A223B3238093D5029093D602A093D702C3 -:10417000B093D8021F910F910C94CE1B0F931F93F5 -:104180000091D5021091D6022091D7023091D80229 -:10419000DC01CB0180279127A227B3278093D5028A -:1041A0009093D602A093D702B093D8021F910F919B -:1041B0000C94CE1B0895CF92DF92EF92FF920F9353 -:1041C0001F93CF93DF938C01C090D902D090DA0275 -:1041D000E090DB02F090DC028091D5029091D60253 -:1041E000A091D702B091D802C82AD92AEA2AFB2A7C -:1041F000CFE1D0E0D701C6010C2E04C0B695A7953B -:10420000979587950A94D2F780FF06C0B8018C2F46 -:104210000E947608019721F4219760F780E001C0A1 -:104220008C2FDF91CF911F910F91FF90EF90DF9036 -:10423000CF900895CF93DF93EC010E94DB20BE0165 -:104240000E947608DF91CF910895CB010E941A2138 -:1042500008958091DD0285958595859508958091D5 -:10426000DD028770089598E0899F90011124262B24 -:104270002093DD020C941F202091DD028095822383 -:104280008093DD02982F977069F430E0482F55270E -:1042900047FD50952417350729F085958595859517 -:1042A0000C94402008959091DD02977081E009F40C -:1042B00080E0089590911501992321F090911601C5 -:1042C000911109C02091170130911801F90132961E -:1042D0009FEF40E01FC0982F9695969596959F303A -:1042E00050F5E0911701F0911801E90FF11D877069 -:1042F00021E030E0A90102C0440F551F8A95E2F782 -:10430000CA019181892B818308959F3F39F04F5FC6 -:104310004E3041F051915813F8CF0DC05111F7CFE5 -:10432000942FF5CF9F3F39F0F901E90FF11D97FD6B -:10433000FA9582830895089590911501992321F0AB -:1043400090911601911109C0209117013091180127 -:10435000F9013296205F3F4F1FC0982F9695969592 -:1043600096959F30F0F4E0911701F0911801E90F54 -:10437000F11D877021E030E0A90102C0440F551FF4 -:104380008A95E2F7CA0180959181892381830895F6 -:104390003196E217F30729F090819813F9CF108234 -:1043A000F7CF089581E090E0E0911701F0911801B6 -:1043B000E80FF91F1082019680319105A9F7089541 -:1043C0009091F102892B8093F1020895809590914C -:1043D000F10289238093F10208951092F102089569 -:1043E0009091F002892B8093F0020895809590912E -:1043F000F00289238093F00208951092F00208954C -:104400009091EF02892B8093EF020895809590910F -:10441000EF0289238093EF0208951092EF0208952E -:104420008093DE0208951092DE02089580911701B4 -:1044300090911801FC0131969C01205F3F4F80E074 -:10444000919191118F5FE217F307D1F70895E091F1 -:104450001701F09118018091F1028083E09117011A -:10446000F091180190818091F002892B8083E09176 -:104470001701F091180190818091EF02892B8083C0 -:104480008091DE02882361F0E0911701F09118011C -:104490009081892B80830E94162281111092DE0266 -:1044A00080911701909118010C940C1720E000974F -:1044B00039F0AC0141505109842395232F5FF7CF88 -:1044C000822F089580911303843039F11092F30202 -:1044D00020E488E190E00FB6F894A89580936000FE -:1044E0000FBE2093600080E00E94F10280E00E94F5 -:1044F000100983B7817F846083BF83B7816083BFE6 -:104500007894889583B78E7F83BF88E10FB6F8943F -:1045100080936000109260000FBE08950895089582 -:1045200080E00E94F1020E948E220E946B090E948C -:104530008F220E94F00991E0811101C090E0892F43 -:1045400008950E94E21B80E00E94F1020E940A2866 -:104550000E9400170C9410091F920F920FB60F9231 -:1045600011248F939F93AF93BF938091F302811196 -:1045700013C08091F4029091F502A091F602B091DF -:10458000F7024196A11DB11D8093F4029093F502AC -:10459000A093F602B093F702BF91AF919F918F91D4 -:1045A0000F900FBE0F901F90189582E084BD93E08E -:1045B00095BD9AEF97BD80936E0008952FB7F8943C -:1045C0008091F4029091F502A091F602B091F70269 -:1045D0002FBF0895CF92DF92EF92FF920F931F9318 -:1045E0002FB7F8944091F4025091F5026091F602D1 -:1045F0007091F7022FBF6A017B01EE24FF248C012A -:1046000020E030E0C016D106E206F30610F4415077 -:1046100051099A01281B390BC9011F910F91FF9075 -:10462000EF90DF90CF9008951F920F920FB60F92E8 -:1046300011248F939F93AF93BF938091F402909135 -:10464000F502A091F602B091F7020196A11DB11DED -:104650008093F4029093F502A093F602B093F702D0 -:10466000BF91AF919F918F910F900FBE0F901F90B0 -:1046700018950E94FD13F8942FEF87EA91E62150D8 -:1046800080409040E1F700C0000087E090EBDC0143 -:1046900080931E0390931F03A0932003B0932103E4 -:1046A0009CE088E10FB6F894A895809360000FBE57 -:1046B00090936000FFCF0E949A23811102C00E9454 -:1046C00076230E94A5238093F2020E94AD2380935B -:1046D0001C0387FB882780F9809316010E94A92379 -:1046E000682F70E080E090E00C94A21F6DEE7EEFEA -:1046F00080E090E00E94C12C60E082E090E00E94A7 -:10470000AF2C60E083E090E00E94AF2C60E084E09A -:1047100090E00E94AF2C60E085E090E00E94AF2C1A -:1047200060E086E090E00E94AF2C6FEF87E090E0C1 -:104730000C94AF2C80E090E00E94A92C21E08D3EEB -:104740009E4F09F020E0822F089582E090E00C94C3 -:10475000A12C83E090E00C94A12C84E090E00C94D8 -:10476000A12C682F84E090E00C94AF2C86E090E0C0 -:104770000C94A12C682F86E090E00C94AF2C87E07D -:1047800090E00C94A12C682F87E090E00C94AF2C63 -:104790008091FA0280FF0BC060911C0185E0689F48 -:1047A000B001112475956795759567952BC081FFAC -:1047B00009C060911C0185E0689FB00111247595C6 -:1047C000679520C082FF07C060911C0185E0689F4B -:1047D000B001112417C09091FB029923D1F0609190 -:1047E0001B01961788F720911C0185E0289F9001F6 -:1047F0001124929FA001939F500D112470E0CA01D3 -:104800000E94872C6038710540F46115710539F0FC -:1048100002C065E070E0862F08958FE7089581E07B -:1048200008958091FA0280FF08C060911A0170E03B -:10483000759567957595679521C081FF06C0609154 -:104840001A0170E07595679519C082FF04C06091E8 -:104850001A0170E010C09091FB029923C1F06091A1 -:1048600019019617A0F780911A01899FC0011124A0 -:1048700070E00E94872C6038710528F4611571057D -:1048800021F0862F08958FE7089581E0089561E073 -:1048900070E0F4CF803F21F40E94C823819504C0CA -:1048A000813F29F40E94C8238093FE020895823F2D -:1048B00021F40E94C823819504C0833F29F40E94FB -:1048C000C8238093FD020895893F19F40E941124A2 -:1048D00005C08A3F31F40E94112481958093FF0224 -:1048E00008958B3F21F40E941124819504C08C3FD0 -:1048F00029F40E941124809300030895843F21F439 -:104900008091FC02816017C0853F21F48091FC02F8 -:10491000826011C0863F21F48091FC0284600BC04C -:10492000873F21F48091FC02886005C0883F31F404 -:104930008091FC0280618093FC0208958D3F21F4F8 -:104940008091FA0281600BC08E3F21F48091FA02BF -:10495000826005C08F3F29F48091FA0284608093C1 -:10496000FA020895803F39F48091FE0287FF6CC0FF -:104970001092FE0269C0813F29F48091FE02181650 -:10498000BCF362C09091FD02823F29F497FF5CC0A6 -:104990001092FD0259C0833F19F41916CCF354C08C -:1049A000893F41F48091FF0218160CF04DC010921F -:1049B000FF024AC08A3F29F48091FF0287FF44C06A -:1049C000F6CF8B3F39F48091000387FF3DC01092F2 -:1049D00000033AC08C3F29F4809100031816BCF301 -:1049E00033C0843F21F48091FC028E7F17C0853F45 -:1049F00021F48091FC028D7F11C0863F21F48091CB -:104A0000FC028B7F0BC0873F21F48091FC02877FE3 -:104A100005C0883F31F48091FC028F7E8093FC02B8 -:104A200013C08D3F21F48091FA028E7F0BC08E3F20 -:104A300021F48091FA028D7F05C08F3F29F4809187 -:104A4000FA028B7F8093FA028091FD0281110EC0E1 -:104A50008091FE0281110AC08091FF02811106C07F -:104A600080910003811102C01092FB0208958CEF27 -:104A700092E00E9417170E94DE229093F902809321 -:104A8000F80208951F93CF93DF938091F8029091DD -:104A9000F9020E94EA22AC019091FB02992321F0D5 -:104AA00020911D0130E006C020911E018AE0289F60 -:104AB000900111244217530708F486C08091FD022B -:104AC000C091FE02D091FF0210910003811107C036 -:104AD000C11176C0D11174C0111172C075C09F3F51 -:104AE00019F09F5F9093FB02181624F40E94C823CC -:104AF0008093FD028091FD0287FF05C00E94C823BC -:104B000081958093FD021C1624F40E94C823809393 -:104B1000FE028091FE0287FF05C00E94C823819596 -:104B20008093FE026091FD02662339F1C091FE027E -:104B3000CC2319F1772767FD7095872F972F0E9457 -:104B4000A92923E333E343E35FE30E94B92A0E94E8 -:104B500076296093FD026C2F772767FD7095872F6C -:104B6000972F0E94A92923E333E343E35FE30E94E5 -:104B7000B92A0E9476296093FE021D1624F40E9431 -:104B800011248093FF028091FF0287FF05C00E94DD -:104B9000112481958093FF02111624F40E941124A0 -:104BA000809300038091000387FF05C00E941124B9 -:104BB000819580930003DF91CF911F910C9437254D -:104BC0009F3F09F08ECF96CFDF91CF911F9108952F -:104BD000ECEFF2E085E0DF011D928A95E9F7109293 -:104BE000FB021092FA020895833081F128F481309B -:104BF00059F08230D1F00895853009F449C0B8F1F8 -:104C0000863009F456C0089580911E01262F30E0A9 -:104C1000280F311D2F3F310524F4680F60931E01CA -:104C200008958FEF80931E01089580911D01262F16 -:104C300030E0280F311D2F3F310524F4680F6093B9 -:104C40001D0108958FEF80931D01089580911C012F -:104C5000262F30E0280F311D2F3F310524F4680F37 -:104C600060931C0108958FEF80931C01089580913B -:104C70001B01262F30E0280F311D2F3F310524F472 -:104C8000680F60931B0108958FEF80931B010895B7 -:104C900080911A01262F30E0280F311D2F3F31055A -:104CA00024F4680F60931A0108958FEF80931A011E -:104CB000089580911901262F30E0280F311D2F3FD4 -:104CC000310524F4680F6093190108958FEF8093E4 -:104CD00019010895833011F128F4813049F08230B0 -:104CE00091F00895853081F120F18630C1F1089569 -:104CF00080911E01681720F4861B80931E01089581 -:104D000010921E01089580911D01681720F4861BE2 -:104D100080931D01089510921D01089580911C013A -:104D2000681720F4861B80931C01089510921C01C3 -:104D3000089580911B01681720F4861B80931B0146 -:104D4000089510921B01089580911A01681720F4AC -:104D5000861B80931A01089510921A01089580917C -:104D60001901681720F4861B809319010895109289 -:104D7000190108950F931F93873208F048C08E31B0 -:104D800008F08DC0803109F477C008F5873009F448 -:104D900061C068F4863009F09DC08091F202817F85 -:104DA0008E7F8093F20281E08093020394C08B3067 -:104DB00009F489C08E3009F08DC08091F20282FB27 -:104DC000222720F991E0922790FB82F95EC086317C -:104DD00009F479C060F4813109F07CC00E94E21BC3 -:104DE0009091160181E08927809316016CC089316A -:104DF00009F469C08B3109F06DC08091F20281FB2A -:104E0000222720F991E0922790FB81F93EC0883358 -:104E100009F459C050F4893209F457C0853309F4B4 -:104E200054C0873209F451C055C0833409F44DC0D1 -:104E300028F48A3308F44EC0895332C0883409F00C -:104E400049C00E94E21B0E94200A0E94E4030E94C3 -:104E5000392339C09091F202892F8095817080FBAF -:104E600090F929F0966098609093F20234C0997F8F -:104E7000977F9093F20227C08091F20283FB222752 -:104E800020F991E0922790FB83F98093F202992315 -:104E9000D1F08091F20281608093F20214C08D51B2 -:104EA00041E050E060E070E08A019B0104C0000F27 -:104EB000111F221F331F8A95D2F7C901B8010E9422 -:104EC000A21F0E94E21B81E006C061E070E080E06A -:104ED00090E0F5CF80E01F910F91089580E0089554 -:104EE00080E00895CF93C82F80910203813069F04C -:104EF00018F08230C9F184C0E0911701F0911801D7 -:104F00008081823209F07EC007C0E0911701F091E4 -:104F100018018081823261F48C2F0E946E278111EA -:104F200004C08C2F0E94BA261DC081E090E01AC0F8 -:104F30008C2F0E947027811114C0C43179F048F47D -:104F4000CB3079F0C03109F061C082E08093020378 -:104F500008C0C93219F0C83321F058C010920203BA -:104F600055C081E0817054C0C93291F120F5C4313F -:104F700079F1B0F4C73009F047C08EE180931E018B -:104F800082E380931D018AE080931C0184E1809379 -:104F90001B0188E080931A0188E28093190134C0D4 -:104FA000CE51C63088F5EC2FF0E0EA54FE4F8081F8 -:104FB0008093010329C0CE34E9F020F4CB3421F5ED -:104FC0006AE013C0C13579F0C235F1F461E00DC07B -:104FD00080910103882319F01092010315C081E02C -:104FE0008093020315C061E006C0809101030E9416 -:104FF000F4250AC06AE0809101030E946A2604C079 -:105000001092020380E004C081E002C080E0AACFD9 -:10501000CF9108950E949A23811102C00E947623A5 -:105020000E94B62380931D0380FF02C0869501C0B5 -:1050300080E00C94F10280911D03982F9695292F02 -:1050400030E0233031054CF49F5F990F8170892B3C -:10505000816080931D030E94BA2380911D03869571 -:105060000C94F10280911D03982F969591F0915820 -:10507000990F8170892B80931D038E7F91E009F435 -:1050800090E080911D0390FB80F980931D030E94A6 -:10509000BA2380911D0386950C94F10280911D0323 -:1050A000982F909590FB80F980931D030E94BA235E -:1050B00080911D0380FF02C0869501C080E00C94A2 -:1050C000F10290911D03892F86958F5F8F779170E4 -:1050D000843028F4880F892B80931D0302C090939D -:1050E0001D0380911D038E7F91E009F490E0809173 -:1050F0001D0390FB80F980931D030E94BA238091C9 -:105100001D0386950C94F10220911D03922F969514 -:105110008927982F990F822F8170892B80931D03E7 -:105120008E7F91E009F490E080911D0390FB80F95F -:1051300080931D030E94BA2380911D0386950C94D1 -:10514000F10280911D03869508955058BB27AA2728 -:105150000ED0D1C1C2D130F0C7D120F031F49F3F81 -:1051600011F41EF4B7C10EF4E095E7FB9FC1E92FDF -:10517000D3D180F3BA17620773078407950718F035 -:1051800071F49EF5EBC10EF4E0950B2EBA2FA02D15 -:105190000B01B90190010C01CA01A0011124FF27E4 -:1051A000591B99F0593F50F4503E68F11A16F040DF -:1051B000A22F232F342F4427585FF3CF46953795DE -:1051C0002795A795F0405395C9F77EF41F16BA0BA3 -:1051D000620B730B840BBAF09150A1F0FF0FBB1F51 -:1051E000661F771F881FC2F70EC0BA0F621F731F9A -:1051F000841F48F4879577956795B795F7959E3FF7 -:1052000008F0B3CF9395880F08F09927EE0F979584 -:105210008795089527D108F481E008950CD06BC1DB -:1052200063D140F05AD130F021F45F3F19F03EC114 -:10523000511195C14FC170D198F39923C9F35523EA -:10524000B1F3951B550BBB27AA2762177307840779 -:1052500038F09F5F5F4F220F331F441FAA1FA9F32F -:1052600033D00E2E3AF0E0E830D091505040E69521 -:10527000001CCAF729D0FE2F27D0660F771F881F82 -:10528000BB1F261737074807AB07B0E809F0BB0B71 -:10529000802DBF01FF2793585F4F2AF09E3F510595 -:1052A00068F004C15CC15F3FECF3983EDCF3869587 -:1052B00077956795B795F7959F5FC9F7880F911D0B -:1052C0009695879597F90895E1E0660F771F881FF7 -:1052D000BB1F621773078407BA0720F0621B730BAA -:1052E000840BBA0BEE1F88F7E095089504D06894FC -:1052F000B11135C1089518D188F09F5790F0B92F9A -:105300009927B751A0F0D1F0660F771F881F991F1A -:105310001AF0BA95C9F712C0B13081F01FD1B1E0CF -:1053200008951CC1672F782F8827B85F39F0B93FDF -:10533000CCF3869577956795B395D9F73EF490951C -:105340008095709561957F4F8F4F9F4F0895E8949A -:1053500009C097FB3EF490958095709561957F4FBD -:105360008F4F9F4F9923A9F0F92F96E9BB2793956B -:10537000F695879577956795B795F111F8CFFAF47B -:10538000BB0F11F460FF1BC06F5F7F4F8F4F9F4FAC -:1053900016C0882311F096E911C0772321F09EE80A -:1053A000872F762F05C0662371F096E8862F70E070 -:1053B00060E02AF09A95660F771F881FDAF7880F4A -:1053C0009695879597F9089588D018F011F08CD0AC -:1053D00038F480C0C4C0E92F9FD0B0F35523C9F37F -:1053E000E7FB6217730784079507A8F199F3E92F84 -:1053F000FF2788232AF03197660F771F881FDAF777 -:10540000952F5527442332F091505040220F331FDF -:10541000441FD2F7BB27E91BF50B621B730B840BF0 -:10542000B109C1F222F4620F731F841FB11D3197BD -:105430002AF0660F771F881FBB1FEFCF9150504097 -:105440005AF041F0882332F0660F771F881F915081 -:105450005040C1F7939530C08695779567959F5FCB -:10546000D9F7F8CF990F0008550FAA0BE0E8FEEF27 -:1054700016161706E807F907C0F012161306E40718 -:10548000F50798F0621B730B840B950B39F40A2611 -:1054900061F0232B242B252B21F408950A2609F4EF -:1054A000A140A6958FEF811D811D089597F99F67F3 -:1054B00080E870E060E008959F3F31F0915020F463 -:1054C000879577956795B795880F911D96958795E0 -:1054D00097F908959FEF80EC089500240A9416161A -:1054E000170618060906089500240A9412161306D2 -:1054F000140605060895092E0394000C11F4882360 -:1055000052F0BB0F40F4BF2B11F460FF04C06F5F7B -:105510007F4F8F4F9F4F089557FD9058440F551F51 -:1055200059F05F3F71F04795880F97FB991F61F025 -:105530009F3F79F087950895121613061406551F9C -:10554000F2CF4695F1DF08C0161617061806991F08 -:10555000F1CF86957105610508940895E894BB27FD -:1055600066277727CB0197F908957CDF08F48FEF42 -:1055700008950BD0C0CFB1DF28F0B6DF18F0952327 -:1055800009F094CFA7CF1124EACFC6DFA0F3959FEF -:10559000D1F3950F50E0551F629FF001729FBB271A -:1055A000F00DB11D639FAA27F00DB11DAA1F649FC6 -:1055B0006627B00DA11D661F829F2227B00DA11D79 -:1055C000621F739FB00DA11D621F839FA00D611DFF -:1055D000221F749F3327A00D611D231F849F600D20 -:1055E000211D822F762F6A2F11249F5750408AF059 -:1055F000E1F088234AF0EE0FFF1FBB1F661F771FE5 -:10560000881F91505040A9F79E3F510570F04ECF32 -:10561000A6CF5F3FECF3983EDCF3869577956795D0 -:10562000B795F795E7959F5FC1F7FE2B880F911D02 -:105630009695879597F90895FA01EE0FFF1F30961A -:105640002105310599F16115710561F48038BFE3D9 -:105650009B0749F168949038810561F08038BFEF6D -:105660009B0741F0992342F5FF3FE10531052105F4 -:1056700011F1E8940894E795D901AA2329F4AB2FF6 -:10568000BE2FF85FD0F310C0FF5F70F4A695E0F76F -:10569000F73950F019F0FF3A38F49F779F930CD008 -:1056A0000F9007FC905808953EF014CF60E070E032 -:1056B00080E89FE308954FE79F775F934F933F9371 -:1056C0002F939ED02F913F914F915F9152DF05C054 -:1056D00019F40EF0EBCE42CFFDCE26DFC8F396389C -:1056E000C0F707F80F92E8942BE33AEA48EB5FE73C -:1056F0004EDF0F920F920F924DB75EB70F92C0D050 -:10570000EAE0F1E016D04F915F91EF91FF91E595BE -:10571000EE1FFF1F49F0FE57E0684427EE0F441FBD -:10572000FA95E1F74195550B32D00F9007FE26C050 -:105730000895DF93CF931F930F93FF92EF92DF9221 -:105740007B018C01689405C0DA2EEF011EDFFE019B -:10575000E894A5912591359145915591AEF3EF01CE -:1057600006DDFE019701A801DA9479F7DF90EF904A -:10577000FF900F911F91CF91DF9108959B01AC0194 -:1057800060E070E080E89FE349CD90CE95CECCDE1E -:10579000E8F39923D9F3940F511DBBF39150504076 -:1057A00094F059F0882332F0660F771F881F9150CC -:1057B0005040C1F79E3F510544F7880F911D9695C3 -:1057C000879597F908955F3FACF0983E9CF0BB2712 -:1057D000869577956795B79508F4B1609395C1F76D -:1057E000BB0F58F711F460FFE8CF6F5F7F4F8F4F0B -:1057F0009F4FE3CFB4CE0EF05FCE6CCE689456CE02 -:1058000093DEC8F39923D1F3C6F3DF93CF931F93AD -:105810000F93FF92C92FDD2788232AF02197660F67 -:10582000771F881FDAF720E030E040E85FEB9FE366 -:10583000883920F0803E30F021968F7787DCE2E3D4 -:10584000F1E003C083DCEFE5F1E073DF8B01BE0123 -:10585000EC01FB2E6F5771097595771F880B990B1B -:1058600078DD28E132E741E35FE38FDEAF2D980179 -:10587000AE01FF900F911F91CF91DF9178DC3BCE6D -:10588000FA01DC01AA0FBB1F9B01AC01BF5728F432 -:1058900022273327442750781FC0B75188F4AB2FF5 -:1058A0000024469537952795011CA395D2F3002037 -:1058B00069F0220F331F441FB395DAF30DD045CCA6 -:1058C00061307105A0E88A07B94630F49B01AC014C -:1058D0006627772788279078309621F020833183B8 -:1058E000428353830895AA1BBB1B51E107C0AA1F23 -:1058F000BB1FA617B70710F0A61BB70B881F991F71 -:105900005A95A9F780959095BC01CD01089597FB14 -:10591000072E16F4009407D077FD09D00E94732C4F -:1059200007FC05D03EF4909581959F4F08957095A2 -:1059300061957F4F0895EE0FFF1F0590F491E02DC4 -:105940000994F999FECF92BD81BDF89A992780B547 -:105950000895A8E1B0E042E050E00C94C92C262F55 -:10596000F999FECF92BD81BDF89A019700B4021655 -:1059700039F01FBA20BD0FB6F894FA9AF99A0FBE03 -:1059800008950196272F0E94B02C0C94AF2CDC01B7 -:10599000CB01FC01F999FECF06C0F2BDE1BDF89A3A -:1059A000319600B40D9241505040B8F70895F894E4 -:0259B000FFCF27 -:1059B200640007000CFF0000003F64041092106FA7 -:1059C200103B1007100101DF022808140A321E00E2 -:1059D20002040507090B0C0E1011131517181A1CD7 -:1059E2001D1F2123242628292B2D2F303234353711 -:1059F200393B1F0F03764F5F6F7F4969437909591E -:105A020053633149803F5D8B803FF8BF803FCAE1DD -:105A1200803F73ED803FCAE1803FF8BF803F5D8BDE -:105A2200803F3149803F0000803FF16D7F3F75EA42 -:105A32007E3F4C827E3F833F7E3F84287E3F833F72 -:105A42007E3F4C827E3F75EA7E3FF16D7F3F0000D4 -:105A5200803F3F4D3639ED04A0046A043104C4038B -:105A6200DD03F6030F04010203040506070809001B -:00000001FF diff --git a/keyboards/planck/keymaps/default/README.md b/keyboards/planck/keymaps/default/README.md deleted file mode 100644 index de9680b49..000000000 --- a/keyboards/planck/keymaps/default/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# The Default Planck Layout - diff --git a/keyboards/planck/keymaps/default/compiled.hex b/keyboards/planck/keymaps/default/compiled.hex deleted file mode 100644 index b7465d099..000000000 --- a/keyboards/planck/keymaps/default/compiled.hex +++ /dev/null @@ -1,1621 +0,0 @@ -:100000000C941D050C9461050C9461050C9461051C -:100010000C9461050C9461050C9461050C946105C8 -:100020000C9461050C9461050C9413190C94E5195A -:100030000C9446270C9461050C9461050C946105A1 -:100040000C9461050C94C2050C9461050C94610537 -:100050000C9461050C94AE270C9461050C94610519 -:100060000C9461050C9461050C9461050C94610578 -:100070000C9461050C9461050C9461050C94610568 -:100080000C94F90E0C9461050C9461050C946105B7 -:100090000C9461050C9461050C9461050C94610548 -:1000A0000C9461050C9461050C9461052A063C06CC -:1000B0005006620671067B06CF06CF06CF06CF0636 -:1000C000CF06CF068906B906CB06521A741A621BF0 -:1000D000741A621BB91ADC1A621B311B441B2E1ED8 -:1000E0002E1E5D1E5D1E9C1EBC1E12201220C71EF1 -:1000F0001220771F771FDE1FE71F12200C20841F9E -:10010000841F841F841F841F841F841F841F841FD7 -:10011000841F841F841F841F841F841F841F941FB7 -:10012000A21FA91FB01FBA1F07634236B79BD8A7EB -:100130001A39685618AEBAAB558C1D3CB7CC57630C -:10014000BD6DEDFD753EF6177231BF000000803FBA -:1001500008000000BE922449123EABAAAA2ABECDD6 -:10016000CCCC4C3E00000080BEABAAAAAA3E000048 -:100170000000BF000000803F000000000008417840 -:10018000D3BB4387D1133D190E3CC3BD4282AD2B77 -:100190003E68EC8276BED98FE1A93E4C80EFFFBE6F -:1001A00001C4FF7F3F0000000000000000000000CD -:1001B0000000000000010204060A0F17202C3A4A32 -:1001C0005D71879DB3C7DAE9F5FCFFFCF5E9DAC795 -:1001D000B39D87715D4A3A2C20170F0A060402016D -:1001E00000000000000000000000010801150109E6 -:1001F00001190112010F0208021502090219021267 -:10020000020F002B0014001A000800150017001C34 -:100210000018000C00120013002A00290004001628 -:1002200000070009000A000B000D000E000F00334C -:10023000003400E1001D001B00060019000500113C -:1002400000100036003700380028000530E000E2DA -:1002500000E30003302C002C000430500051005209 -:10026000004F002B0014001A00090013000A000DB3 -:10027000000F0018001C0033002A0029000400159C -:10028000001600170007000B00110008000C0012F8 -:10029000003400E1001D001B000600190005000EDF -:1002A00000100036003700380028000530E000E27A -:1002B00000E30003302C002C0004305000510052A9 -:1002C000004F002B0034003600370013001C0009DB -:1002D000000A00060015000F002A00290004001281 -:1002E00000080018000C0007000B00170011001692 -:1002F000003800E100330014000D000E001B000563 -:100300000010001A0019001D0028000530E000E26E -:1003100000E30003302C002C000430500051005248 -:10032000004F0035021E021F02200221022202237A -:100330000224022502260227022A004C003A003B32 -:10034000003C003D003E003F002D022E022F0230F7 -:1003500002310201004000410042004300440045D8 -:1003600000320264020100010001000100010001ED -:100370000001000100010001000100AB00AA00A97A -:1003800000AE0035001E001F0020002100220023C7 -:100390000024002500260027002A004C003A003BDC -:1003A000003C003D003E003F002D002E002F00309D -:1003B000003100010040004100420043004400457C -:1003C0000032006400010001000100010001000191 -:1003D0000001000100010001000100AB00AA00A91A -:1003E00000AE001E001E001E001E001E001E001E8D -:1003F000001E001E001E001E001E00000014001A39 -:10040000000800150017001C0018000C0012001353 -:10041000002F000E3004001600070009000A000B30 -:10042000000D000E000F00330034000D30000000FE -:10043000000600190000000000110010000000007C -:1004400000000000000000000000000000000000AC -:10045000000000000000000000000000000000009C -:10046000000000000000000000000000000000008C -:10047000000000000000000000000000000000007C -:10048000000000000000000000000000000000006C -:10049000000000000000000000000000000000005C -:1004A000000000000000000000000000000000004C -:1004B000000000000000000000000000000000003C -:1004C000000000000000000000000000000000002C -:1004D000000000000000000000000000000000001C -:1004E000000000000000000000000000000000000C -:1004F00000000000000000000000000000000000FC -:1005000000000000000000000000000000000000EB -:1005100000000000000000000000000000000000DB -:1005200000000000000000000000000000000000CB -:1005300000000000000000000000000000000000BB -:1005400000000000000000000000000000000000AB -:10055000000000000000000000000000000000009B -:10056000000000000000000000000000000000008B -:10057000000000000000000000000000000000007B -:10058000000000000000000000000000000000006B -:10059000000000000000000000000000000000005B -:1005A000000000000000000000000000000000004B -:1005B000000000000000000000000000000000003B -:1005C000000000000000000000000000000000002B -:1005D000000000000000000000000000000000001B -:1005E000000000000000000000000000000000000B -:1005F00000000000000000000000000000000000FB -:1006000000000000000000000000000000000000EA -:1006100000000000000000000000000000000000DA -:1006200000000000000000000000000000000000CA -:1006300000000000000000000000000000000000BA -:1006400000000000000000000000000000000000AA -:10065000000000000000000000000000000000009A -:10066000000000000000000000000000000000008A -:10067000000000000000000000000000000000007A -:10068000000000000000000000000000000000006A -:10069000000000000000000000000000000000005A -:1006A000000000000000000000000000000000004A -:1006B000000000000000000000000000000000003A -:1006C000000000000000000000000000000000002A -:1006D000000000000000000000000000000000001A -:1006E000000000000000000000000000000000000A -:1006F00000000000000000000000000000000000FA -:1007000000000000000000000000000000000000E9 -:1007100000000000000000000000000000000000D9 -:1007200000000000000000000000000000000000C9 -:1007300000000000000000000000000000000000B9 -:1007400000000000000000000000000000000000A9 -:100750000000000000000000000000000000000099 -:100760000000000000000000000000000000000089 -:100770000000000000000000000000000000000079 -:100780000000000000000000000000000000000069 -:100790000000000000000000000000000000000059 -:1007A0000000000000000000000000000000000049 -:1007B0000000000000000000000000000000000039 -:1007C0000000000000000000000000000000000029 -:1007D0000000000000000000000000000000000019 -:1007E0000000000000000000000000000000000009 -:1007F00000000000000000000000000000000000F9 -:100800000000000100007001000100010001000172 -:100810000001000100010001004C00010001000185 -:10082000001570167013700A700030013002300C21 -:1008300030010001001C701B70187019701D701EB3 -:100840007001000100010001000100010001000130 -:100850000001000100010001000100010001000190 -:100860000001002803540068006500200050006C5F -:100870000061006E0063006B0020004B0065007992 -:100880000062006F0061007200640000002C034FE2 -:10089000007200740068006F006C0069006E0065F3 -:1008A000006100720020004B006500790062006F5B -:1008B0000061007200640073000000040309040971 -:1008C000026D00040100A0FA090400000103010107 -:1008D00000092111010001224000070581030800E1 -:1008E0000A090401000103010200092111010001AC -:1008F000224D000705820308000A090402000103D3 -:1009000000000009211101000122360007058303C0 -:1009100008000A0904030001030000000921110175 -:1009200000012239000705840310000112011001A3 -:1009300000000008EDFE60600100010200010501F9 -:100940000906A101050719E029E715002501950809 -:1009500075018102050819012905950575019102A6 -:1009600095017503910105071900297715002501E7 -:10097000957875018102C005010980A101850216E3 -:10098000010026B7001A01002AB7007510950181F1 -:1009900000C0050C0901A1018503160100269C0277 -:1009A0001A01002A9C02751095018100C0050109F9 -:1009B00002A1010901A10005091901290515002558 -:1009C00001950575018102950175038101050109F4 -:1009D0003009311581257F95027508810609381582 -:1009E00081257F950175088106050C0A380215815D -:1009F000257F950175088106C0C005010906A10182 -:100A0000050719E029E71500250195087501810200 -:100A100095017508810105081901290595057501DC -:100A200091029501750391010507190029FF150031 -:100A300026FF00950675088100C011241FBECFEF68 -:100A4000DAE0DEBFCDBF04B603FE24C080918F0480 -:100A500090919004A0919104B09192048730904BB2 -:100A6000A740B04BB9F410928F04109290041092EA -:100A700091041092920414BE84B7877F84BF88E1EA -:100A80000FB6F89480936000109260000FBEE0E013 -:100A9000F8E3099513E0A0E0B1E0EAE0F3E602C074 -:100AA00005900D92A033B107D9F714E0A0E3B3E0AD -:100AB00001C01D92AF38B107E1F70E945D160C949A -:100AC00083310C940000089581E0089508950C94FA -:100AD00063050C9464050C9466050E944D2D23E07B -:100AE00030E0281B3109220F209334030895282F6A -:100AF0002F9880918000211108C0877F809380000B -:100B000010928D0010928C001BC088608093800032 -:100B1000233019F48FEF9FEF0FC083E090E0821B2A -:100B20009109880F991F2FEF3FEFA90102C0569539 -:100B300047958A95E2F7CA0190938D0080938C00C7 -:100B40000C946D050E946D0584E080933303109230 -:100B500030030895279A2F988FEF9FEF9093870087 -:100B6000809386008AE08093800089E180938100F1 -:100B70000E94B62C0C94A2050E94AA056E9A769A41 -:100B80000C94EF061F920F920FB60F9211242F9321 -:100B90003F938F939F93EF93FF93E0913103F091F5 -:100BA0003203CF010196909332038093310300907A -:100BB000330302C0F695E7950A94E2F7EF7380914C -:100BC0003003823019F4E03251F404C0813039F43A -:100BD000EF3329F480916F008D7F80936F00F0E0F8 -:100BE000E655FE4FE49121E031E0E29FC001E39F32 -:100BF000900D11240090340302C0969587950A94B5 -:100C0000E2F790938D0080938C00FF91EF919F917C -:100C10008F913F912F910F900FBE0F901F901895BD -:100C2000CF93DF93EC010E944A28BE0180E090E060 -:100C3000DF91CF910C943D240F931F93462F50E0EA -:100C40004F30510508F0ABC0DC01FA01EA5AFF4F02 -:100C50000C94473112968C91882309F4A0C000E0CF -:100C600010E0980140E064E070E088E292E00E94C9 -:100C7000771281E090E011C012968C91882309F4DC -:100C80008EC000E010E0980140E066E070E088EB84 -:100C900091E00E94771282E090E00E9410067FC0EF -:100CA00012968C91882309F47AC000E010E0980134 -:100CB00040E068E070E088EE91E00E94771284E006 -:100CC00090E0EBCF12968C91882311F083E00EC058 -:100CD00083E00E94DB2440E164E083E00E9420077F -:100CE0005EC012968C91882321F084E00E94BA2481 -:100CF000F2CF84E0EECF12968C91882331F085EE0E -:100D00000E94D21C0E940D2D4AC085EE0E949A1DA1 -:100D100046C012968C91882309F441C00E942C0E83 -:100D200000E010E0980140E066E070E088E891E0C3 -:100D30000E94771284E00E94DB2483E00E94DB247F -:100D400080E10E94DB2485E00E94BA240E943728BB -:100D5000811102C00E9413280E944F2890E09093B6 -:100D60007404809373048068809373040E945328F2 -:100D700016C012968C91882391F000E010E0980143 -:100D800040E066E070E088E591E00E94771285E03F -:100D90000E94DB2404C012968C91811103C080E074 -:100DA00090E002C08AEE91E01F910F9108950F9399 -:100DB0001F932FEF89EF90E0215080409040E1F7A2 -:100DC00000C0000000E010E0980140E065E070E045 -:100DD00088E492E00E9477121F910F9108950C947D -:100DE000D7060F931F9300E010E0980140E063E006 -:100DF00070E080E091E00E9477122FEF82E597E0AB -:100E0000215080409040E1F700C000001F910F91F9 -:100E10000C942C0E0F931F9300E010E0980140E01B -:100E200068E070E088E191E00E9477121F910F91D5 -:100E300008950C940A0781E008950C941B07089507 -:100E4000CF92DF92EF92FF920F931F9301E010E099 -:100E500020E030E06801790104C0CC0CDD1CEE1C00 -:100E6000FF1C8A95D2F704C0000F111F221F331FE9 -:100E70006A95D2F70C291D292E293F29C0904504D7 -:100E8000D0904604E0904704F0904804C022D1225C -:100E9000E222F322842FC016D106E206F30641F4C3 -:100EA0001F910F91FF90EF90DF90CF900C94BA2498 -:100EB0001F910F91FF90EF90DF90CF900C94DB2467 -:100EC0000C94BC0580918503882309F448C0809167 -:100ED000410390914203009779F40E947827909300 -:100EE0004203809341038091430390E0009771F4A3 -:100EF0008091440390E00AC00E94842720917002F0 -:100F0000309171022817390740F329C00197880FE3 -:100F1000991F880F991FFC01EB5BFC4F6081718169 -:100F2000828193810E945F0EE091430384E0E89FF9 -:100F3000F0011124EB5BFC4F608171818281938110 -:100F40004FE050E00E9417128091430390E0019619 -:100F50006091440370E00E943331809343030C940A -:100F60006705109287030C942C0E81E08093870311 -:100F70000C94190708958F929F92AF92BF92EF92AF -:100F8000FF920F931F93CF93DF93CDB7DEB7A39755 -:100F90000FB6F894DEBF0FBECDBF7C01FC0100810F -:100FA0001181C8010E947625B8010E944F0C8C0166 -:100FB000B7010E941D07882309F4BDC20531F0E77F -:100FC0001F0741F4F7018281882309F458C00E9469 -:100FD0000E13B1C20631F0E71F0741F4F701828119 -:100FE000882309F44CC00E941713A5C20731F0E70B -:100FF0001F0751F4F7018281882309F440C00E9441 -:101000000A138111F0CFE3CF0831F0E71F0739F45D -:10101000F7018281882399F10E94B5078CC20931BA -:10102000F0E71F0739F4F7018281882341F10E941C -:10103000B10781C20A31F0E71F0749F4F701828145 -:101040008823E9F0809187038111F1CFE5CF0B313F -:10105000F0E71F0739F4F7018281882381F00E94AD -:101060001E130AC00C31F0E71F0749F4F701828113 -:10107000882329F00E9429130E940A075CC28091EC -:101080008703811105C0F70182818111CFC03AC168 -:10109000003E110579F4F7018281882309F44DC0DF -:1010A0000E942C0E81E0809386031092850310929B -:1010B000440341C2023E110559F4F701828188239D -:1010C000E1F10E942C0E109286031092850333C228 -:1010D000033E110591F4F7018281882371F10E948A -:1010E0002C0E1092860381E08093850310924303B7 -:1010F00010924203109241031EC20235110559F4A9 -:10110000F7018281882309F416C2809170029091C0 -:1011100071020A970DC00135110579F4F70182813A -:10112000882309F408C280917002909171020A9696 -:101130009093710280937002FEC14091740283E229 -:10114000EFE8F2E0DE01119601900D928A95E1F749 -:10115000F701808121E030E02C0F3D1F280F311D69 -:10116000C9012091720230917302FC01E20FF31F5A -:101170006081772767FD7095640F711D882777FD63 -:101180008095982F0E94552E20E030E040E451E4F5 -:101190000E94BA2D4B015C01F701218184E090E0AF -:1011A000821B9109BC01882777FD8095982F0E94AA -:1011B000552E9B01AC01C501B4010E94522D9B012B -:1011C000AC0160E070E080E090E40E94C82F20E075 -:1011D00030E04CED50E40E94652F4B015C01F701BB -:1011E00082818823D1F04FE050E0C501B4010E9414 -:1011F0001712809186038823A1F08091440324E094 -:10120000829FF0011124EB5BFC4F80829182A282CD -:10121000B3828F5F8093440304C0C501B4010E9470 -:101220005F0E0F3F110508F02ECF85C1809140035E -:1012300081111FC0043130E7130709F080C00E94FC -:101240001F0781E0809340030E94782790933F031B -:1012500080933E03109237031092390310923803A3 -:1012600010923B0310923A0310923D0310923C03FC -:1012700062C180913E0390913F030E948427883C85 -:10128000910570F480913703E82FF0E0EE0FFF1F17 -:10129000E85CFC4F118300838F5F809337034BC161 -:1012A000043180E7180768F4023090E7190708F066 -:1012B00050C00115E0E71E0771F001301047A1F1A1 -:1012C0001CC1033320E7120709F4E8C004331047B8 -:1012D00009F4FBC012C1F7018281882309F412C10D -:1012E0000E947D200E942C0E0E94F106FFEF24E355 -:1012F0003CE0F15020403040E1F700C000000E9487 -:10130000D32719C10431F0E71F0708F0C3C002302A -:1013100020E71207F0F4011530E7130709F4F2C0D3 -:101320000130104709F0E9C0F7018281882309F4F0 -:10133000E9C080916204816080936204FCC0043142 -:10134000F0E71F0708F0A6C0023020E7120708F4F4 -:10135000ECC0F7018281882309F4D4C00E943728A9 -:10136000811102C00E9413280E944F2890E09093A0 -:101370007404809373040230F0E71F0721F4809116 -:101380007304816080C0033020E7120721F480914C -:101390007304826078C0043030E7130721F4809131 -:1013A0007304846070C0053080E7180719F48091D9 -:1013B000730427C0063090E7190721F48091730465 -:1013C000806161C00730E0E71E0721F4809173045B -:1013D000806259C00830F0E71F0721F48091730440 -:1013E000806451C0093020E7120721F48091730412 -:1013F000806849C00A3030E7130729F480917304EC -:101400008460886040C00B3080E7180721F4809129 -:1014100073048E7F38C00C3090E7190721F4809157 -:1014200073048D7F30C00D30E0E71E0721F48091FA -:1014300073048B7F28C00E30F0E71F0719F48091EA -:10144000730420C00F3020E7120721F48091730449 -:101450008F7E19C0003130E7130721F480917304A7 -:101460008F7D11C0013180E7180721F4809173044A -:101470008F7B09C0809173040231104711F48F777C -:1014800002C08B7F877F80937304809173040E94D6 -:10149000532851C0033390E71907A1F4F701828163 -:1014A000882321F01092350382E016C08091350325 -:1014B000811106C086E20E94D21C86E20E949A1D1B -:1014C00082E018C004331047C1F4F70182818823F9 -:1014D00031F01092360380E20E94E91D2CC0809109 -:1014E0003603811106C087E20E94D21C87E20E9467 -:1014F0009A1D80E20E94F01D1EC081E0809335039A -:1015000080933603C701A3960FB6F894DEBF0FBED3 -:10151000CDBFDF91CF911F910F91FF90EF90BF90C2 -:10152000AF909F908F900C946905011530E71307D9 -:1015300009F0F6CED5CE80E0A3960FB6F894DEBFC4 -:101540000FBECDBFDF91CF911F910F91FF90EF9014 -:10155000BF90AF909F908F9008952CE0729FF00104 -:10156000112430E3839FE00DF11D1124E60FF11DDE -:10157000EE0FFF1FED5FFD4F859194910E94610C6E -:10158000811540E5940708F047C0811520E49207D3 -:1015900008F013C1883E910520F5803E910508F0C2 -:1015A0007CC1883A910578F4853A910508F0A5C088 -:1015B0008130910509F471C108F42EC18430910580 -:1015C00008F06BC129C18B3B910508F4A1C0803C98 -:1015D000910508F421C1FC01EE0FFF1FED57FF4FED -:1015E000E6C0811530E2930758F4811541E0940775 -:1015F00008F053C1803F910508F40EC1906508952D -:10160000811520E3920708F0D5C0FC01FF70EE0FB2 -:10161000FF1FED5FFD4FCBC0811535E5930708F047 -:1016200043C0811544E5940708F0DEC0811522E52A -:10163000920708F5811531E5930708F0C1C0482FDE -:10164000437021E030E002C0220F331F4A95E2F7D9 -:101650003C68AC0164E0569547956A95E1F74370A4 -:10166000342B8F708695869540E2849FC0011124AB -:10167000822B932B0895282F26952695AC01437035 -:1016800055278115934508F0A0C080E2289F90015E -:10169000112481E090E002C0880F991F4A95E2F77B -:1016A000822B932B9C6808958F3240E7940790F427 -:1016B0008F3120E7920708F0A2C0811536E5930725 -:1016C00008F497C09C0130562115304108F0A4C0A1 -:1016D0009F7093C0803320E7920709F497C008F405 -:1016E00092C0813340E7940709F493C08233904756 -:1016F00009F092C080E093ED0895853A910509F4D0 -:101700008EC0863A910509F08DC082E890E4089574 -:10171000883A910509F489C0893A910509F488C08D -:101720008A3A910509F487C08B3A910509F486C07D -:101730008C3A910509F485C08D3A910509F484C06D -:10174000803B910509F483C08E3A910509F482C06B -:101750008F3A910509F481C0813B910509F480C05D -:10176000823B910509F47FC0833B910509F47EC05B -:10177000843B910509F47DC0853B910509F47CC04B -:10178000863B910509F47BC0873B910509F47AC03B -:10179000883B910509F479C0893B910509F478C02B -:1017A0008A3B910509F477C080E094E4089585911F -:1017B000949108959927906C08959F70906A089568 -:1017C000982F8827816F906A089590E2299F900151 -:1017D000112481E090E002C0880F991F4A95E2F73A -:1017E000822B932B9A680895982F8827846F906A8C -:1017F00008958F719927982F8827906208958F51A7 -:101800009047946D089580E091ED089580E090ED0B -:10181000089580E092ED089580E090E0089581E8D9 -:1018200090E4089583E890E4089582EE94E40895A6 -:1018300089EE94E408958AEE94E4089585EB94E4A7 -:10184000089586EB94E4089587EB94E408958CEC76 -:1018500094E408958DEC94E4089583E895E4089564 -:101860008AE895E4089582E995E4089584E995E489 -:10187000089581E296E4089583E296E4089584E26F -:1018800096E4089585E296E4089586E296E4089544 -:1018900087E296E408958AE296E4089508959CE02C -:1018A000799FF001112490E3899FE00DF11D11242F -:1018B000E60FF11DEE0FFF1FED5FFD4F8591949137 -:1018C00008958238910549F1B0F48133910509F406 -:1018D00058C048F48932910509F44EC08A32910506 -:1018E00009F454C008958533910509F440C0893343 -:1018F000910599F00895833E910529F138F4803ED1 -:10190000910591F0823E9105A1F00895863E9105E2 -:10191000F9F0873E910531F108952091730420FD7F -:101920003AC021FD38C008958091730480FD35C010 -:1019300032C08091730482FF32C08091730484FDB1 -:1019400030C083EE39C08091730482FD28C0F5CF8A -:101950008091730483FF27C08091730484FD21C0AC -:1019600087EE2AC08091730483FD1DC0F5CF80915E -:10197000730485FD1AC01BC08091730485FD17C0D8 -:1019800014C08091730486FD14C015C08091730447 -:1019900086FD11C00EC080EE0FC089E30DC082EE3F -:1019A0000BC080E009C086EE07C089E205C085E370 -:1019B00003C08AE201C081E390E008950C946B05B6 -:1019C000E82FF0E0E254FD4F8081E82FEF70F0E067 -:1019D00082958F7021E030E0A90102C0440F551FAD -:1019E0008A95E2F740A308950F931F93CF93DF9357 -:1019F000C3E0D0E001E010E0FE01E254FD4F808141 -:101A0000E82FEF70F0E021A182958F70A80102C04D -:101A1000440F551F8A95E2F7CA01822B81A38C2FB0 -:101A20000E94E00C219740F78BE090E061E070E0CD -:101A3000FC01EE54FD4F2081E22FEF70F0E042A157 -:101A400022952F70DB0102C0AA0FBB1F2A95E2F777 -:101A50009D01242B22A3019758F7DF91CF911F916D -:101A60000F9108950F931F93CF93DF9385B78068ED -:101A700085BF85B7806885BFC3E0D0E001E010E096 -:101A8000FE01E254FD4F8081E82FEF70F0E021A1CC -:101A900082958F70A80102C0440F551F8A95E2F706 -:101AA000CA01822B81A38C2F0E94E00C219740F762 -:101AB0008BE090E061E070E0FC01EE54FD4F20818E -:101AC000E22FEF70F0E042A122952F70DB0102C0FF -:101AD000AA0FBB1F2A95E2F79D01242B22A3019791 -:101AE00058F7DF91CF911F910F910C946007EF92FF -:101AF000FF920F931F93CF93DF9300E913E0C3E0AE -:101B0000EE24E394F12CD5E08C2F0E94E00C8BE0C6 -:101B100090E040E050E0FC01EE54FD4F6081E62F84 -:101B2000EF70F0E020A130E062956F7002C0359553 -:101B300027956A95E2F720FD09C09701082E02C09B -:101B4000220F331F0A94E2F7422B532B019718F709 -:101B5000F801929182918F018417950721F05183AA -:101B60004083D09375028C2F0E94E00CC15060F628 -:101B70008091750287FD2CC08150809375028F3F44 -:101B800039F08FE99FE00197F1F700C0000020C015 -:101B900080918E0390918F03909397038093960387 -:101BA00080918C0390918D0390939503809394037F -:101BB00080918A0390918B03909393038093920377 -:101BC000809188039091890390939103809390036F -:101BD0000E94620781E0DF91CF911F910F91FF90EA -:101BE000EF900895E82FF0E0EE0FFF1FE057FC4F55 -:101BF00080819181089508950F931F93CF9308E9F1 -:101C000013E0C0E0F801929182918F010E94F126C9 -:101C1000C80FF3E000391F07A9F78C2FCF911F9150 -:101C20000F9108950E943728811102C00E94132845 -:101C30000E946128809379043E9A809171008D7F83 -:101C40008093710082E0809390008AE180939100FC -:101C500081E080939A03089580919A03811102C0D4 -:101C60000E94120E1092EA031092E9038091710013 -:101C70008D7F80937100809190008F73809390008E -:101C80001092AC031092AB031092E3031092E403A2 -:101C90001092E5031092E6031092E2031092E10322 -:101CA000E1ECF3E0A1EBB3E01192119211921192E9 -:101CB0001D921D9283E0E13EF807B1F70895CF929F -:101CC000DF92EF92FF920F931F93CF93DF932091B8 -:101CD000AB03222309F484C06B017C0180919A0339 -:101CE000811102C00E94120E01EE13E0C7E0D0E0A5 -:101CF000A7019601F80192918291729162918F01F0 -:101D00000E94B62D811131C0FE01EE0FFF1FEE0FB4 -:101D1000FF1FEF53FC4F1082118212821382DE01EB -:101D2000AA0FBB1FAF54BC4F11961C921E92C73016 -:101D3000D105E9F021964481558166817781408300 -:101D400051836283738314821582168217821296DE -:101D50008D919C91139711969C938E9313961C9240 -:101D60001E92129734961296E2CF219708F6809130 -:101D7000E9039091EA03019797FD05C09093EA0368 -:101D80008093E90304C01092EA031092E903809162 -:101D9000E9039091EA032091E7033091E8032817C3 -:101DA000390724F01092E8031092E703892BC1F45D -:101DB000809171008D7F80937100809190008F736E -:101DC000809390001092E3031092E4031092E503D5 -:101DD0001092E6031092E2031092E1031092AB031B -:101DE000DF91CF911F910F91FF90EF90DF90CF90F7 -:101DF00008951F920F920FB60F9211244F925F9287 -:101E00006F927F928F929F92AF92BF92CF92DF920A -:101E1000EF92FF922F933F934F935F936F937F9334 -:101E20008F939F93AF93BF93CF93DF93EF93FF93E2 -:101E30008091AB03882309F49BC1C091E903D09141 -:101E4000EA031C161D060CF093C140909B035090B2 -:101E50009C0360909D0370909E0320E030E0A901F8 -:101E6000C301B2010E94612F18160CF065C0C13089 -:101E7000D10509F452C08091E7039091E803BE01B7 -:101E80000E9433317C019093E8038093E7038090B4 -:101E9000AD039090AE03A090AF03B090B00320E0EC -:101EA00030E040E85FE3C501B4010E94522D609329 -:101EB000AD037093AE038093AF039093B003F7012B -:101EC000EE0FFF1FEE0FFF1FEF53FC4FA301920118 -:101ED00060817181828193810E94BA2D20E030E07F -:101EE00040E05EE30E94652F9B01AC01C501B40197 -:101EF0000E94612F18168CF4C7010196BE010E9442 -:101F000033319093E8038093E7031092AD0310926E -:101F1000AE031092AF031092B003E091E703F0918B -:101F2000E803EE0FFF1FEE0FFF1FEF53FC4F608122 -:101F3000718182819381D0C0C090E303D090E4038B -:101F4000E090E503F090E60320E030E0A901C7014E -:101F5000B6010E94B62D2197882309F4A2C0FE0184 -:101F6000EE0FFF1FEE0FFF1FEF53FC4F808091809D -:101F7000A280B380A5019401C701B6010E94B62DCD -:101F800087FF31C0A501940160E070E08CED93EC17 -:101F90000E94BA2D20E030E040E451E40E94BA2DC6 -:101FA00020E030E040E05FE30E94652F9B01AC0140 -:101FB00060E070E080E090E40E94C82F9B01AC01DB -:101FC000C501B4010E94652F9B01AC01C701B60198 -:101FD0000E94B62D87FF07C0A701960160E070E060 -:101FE0008CED93E439C0A5019401C701B6010E94AC -:101FF000612F18160CF055C0A501940160E070E047 -:102000008CED93E40E94BA2D20E030E040E451E4EE -:102010000E94BA2D20E030E040E05FE30E94652F8F -:102020009B01AC0160E070E080E090E40E94C82F6A -:102030009B01AC01C501B4010E94652F9B01AC015D -:10204000C701B6010E94612F18165CF5A701960121 -:1020500060E070E08CED93EC0E94BA2D20E030E05F -:1020600040E451E40E94BA2D20E030E040E05FE31C -:102070000E94652F9B01AC0160E070E080E090E47D -:102080000E94C82F9B01AC01C701B6010E94652FB9 -:102090006093E3037093E4038093E5039093E60376 -:1020A00013C0FE01EE0FFF1FEE0FFF1FEF53FC4F9B -:1020B00080819181A281B3818093E3039093E403B3 -:1020C000A093E503B093E6036091E3037091E4030A -:1020D0008091E5039091E603209198033091990354 -:1020E0002F3F4FEF340731F02F5F3F4F309399036D -:1020F000209398030E9434136B017C0120E034E2AA -:1021000044EF51E40E94B62D87FF08C086EFC82E29 -:1021100088E2D82E84EFE82E81E4F82E20E030E02B -:1021200040E051E4C701B6010E94652F9B01AC015C -:1021300060E074E284E79BE40E94BA2D6B017C01AD -:102140000E94272E7093970060939600209176024C -:10215000309177024091780250917902C701B6011F -:102160000E94652F0E94272E70939900609398001B -:102170008091AC03882309F433C1C090A703D090A9 -:10218000A803E090A903F090AA0320E030E0A901A1 -:10219000C701B6010E94612F1816D4F580919803EB -:1021A000909199038F3F2FEF920729F0019690931A -:1021B000990380939803C701B6010E94341320E06D -:1021C00030E040E051E40E94652F9B01AC0160E0EB -:1021D00074E284E79BE40E94BA2D6B017C010E94AB -:1021E000272E70939700609396002091760230918D -:1021F00077024091780250917902C701B6010E949E -:10220000652F0E94272E709399006093980008C054 -:1022100010929700109296001092990010929800D8 -:102220006091A1037091A2036F5F7F4F7093A2032F -:102230006093A103209196003091970080E090E098 -:10224000232BF1F0C0919600D09197000E94532E5D -:102250006B017C01BE0180E090E00E94532E9B0147 -:10226000AC016091A3037091A4038091A5039091A8 -:10227000A6030E94BA2D20E03FEF4FE757E410C0BD -:102280000E94532E6B017C0120E030EE4FEF54E4AE -:102290006091A3037091A4038091A5039091A6037C -:1022A0000E94652F9B01AC01C701B6010E94612FFE -:1022B00087FD96C080919F038F5F80939F0390E07E -:1022C000209175043091760482179307A0F08091D5 -:1022D0008004882319F010929F030DC08091710033 -:1022E0008D7F80937100809190008F738093900018 -:1022F0001092AC037DC08091A003C0919F03811117 -:1023000028C0C0907A04D0907B04E0907C04F090C8 -:102310007D0420E030E0A901C701B6010E94612FD1 -:102320001816BCF481E08093A0031092A7031092CA -:10233000A8031092A9031092AA03C092A303D092FB -:10234000A403E092A503F092A603C150C0939F039B -:1023500043C01092A0031092990310929803E09149 -:102360007704F091780448E0C49FE00DF11D11243A -:1023700080819181A281B3818093A7039093A80368 -:10238000A093A903B093AA0320E030E040E85EE305 -:1023900064817581868197810E94652F6B017C0124 -:1023A00080917A02682F70E080E090E00E94532EC6 -:1023B00020E030E048EC52E40E94BA2D9B01AC01D1 -:1023C000C701B6010E94652F6093A3037093A40315 -:1023D0008093A5039093A6031092A2031092A103E9 -:1023E0008091790480FD04C01092AC031092AB037D -:1023F000FF91EF91DF91CF91BF91AF919F918F911D -:102400007F916F915F914F913F912F91FF90EF904E -:10241000DF90CF90BF90AF909F908F907F906F9004 -:102420005F904F900F900FBE0F901F901895CF9216 -:10243000DF92EF92FF92CF93DF936B017C01EA0171 -:1024400080919A03811102C00E94120E809179043A -:1024500080FF46C08091E9039091EA0308970CF051 -:102460003FC0809171008D7F809371008091AC039B -:1024700081110E942C0E81E08093AB03109299038E -:102480001092980320E030E0A901C701B6010E9434 -:10249000612F1816DCF48091E9039091EA03FC01A6 -:1024A000EE0FFF1FEE0FFF1FEF53FC4FC082D182D4 -:1024B000E282F382FC01EE0FFF1FEF54FC4FD18349 -:1024C000C08301969093EA038093E90380917100A1 -:1024D000826080937100809190008068809390006A -:1024E000DF91CF91FF90EF90DF90CF9008958F9282 -:1024F0009F92AF92BF92CF92DF92EF92FF920F9393 -:102500001F93CF93DF93EC017B01D42E4801590137 -:1025100080919A03811102C00E94120E8091790469 -:1025200080FF6BC0809171008D7F809371008091DE -:10253000AB0381110E942C0E81E08093AC03D093F9 -:102540007804C0937704F0927604E0927504D092F8 -:10255000800480927A0490927B04A0927C04B092D2 -:102560007D041092AD031092AE031092AF0310924F -:10257000B00310929F0388819981AA81BB818093C7 -:10258000A7039093A803A093A903B093AA0320E004 -:1025900030E040E85EE36C817D818E819F810E9406 -:1025A000652F6B017C0180917A02682F70E080E0DA -:1025B00090E00E94532E20E030E048EC52E40E946C -:1025C000BA2D9B01AC01C701B6010E94652F609333 -:1025D000A3037093A4038093A5039093A603109282 -:1025E000A2031092A1038091710082608093710018 -:1025F00080919000806880939000DF91CF911F912F -:102600000F91FF90EF90DF90CF90BF90AF909F9091 -:102610008F90089580917904817008958091790454 -:102620008160809379040E9465280C94BA07809198 -:1026300079048E7F809379040C9465288091EB0354 -:1026400090E0019666E070E00E9433318093EB03E6 -:1026500008958091EB0390E0019766E070E00E949E -:1026600033318093EB0308958F929F92AF92BF9284 -:10267000CF92DF92EF92FF920F931F93CF93DF934E -:102680006B017C01C0919803D0919903BE0180E059 -:1026900090E00E94532E4B015C01A701960160E07F -:1026A00070E08CE594E40E94BA2D9B01AC01C50159 -:1026B000B4010E94652F0E94272E2091EB03233046 -:1026C00009F473C028F4222351F02130E9F02CC121 -:1026D000243009F4A0C0253009F4E0C025C180E011 -:1026E00090E0A0E0BFE38093760290937702A093FE -:1026F0007802B093790210929B0310929C0310927F -:102700009D0310929E0310C110929B0310929C0394 -:1027100010929D0310929E036431710540F46A305B -:10272000710560F520E030E040E85EE32BC0693CD5 -:10273000710508F0AAC080E090E00E94532E20E0CE -:1027400030E040EA51E40E94512D20E030E044E3C3 -:1027500053E40E94BA2D9B01AC010E94652F20E03A -:1027600030E040E05EE30E94652F9B01AC0160E039 -:1027700070E080E09EE30E94512D44C020E030E0F4 -:1027800040E05FE3C701B6010E94652F6B017C0149 -:1027900080E090E0A0E0BEE3809376029093770221 -:1027A000A0937802B0937902BFC010929B0310925D -:1027B0009C0310929D0310929E034AE0469F900155 -:1027C000479F300D1124C90168EB7BE00E941F3147 -:1027D000BC016C5D754077FF03C07195619571090F -:1027E000882777FD8095982F0E94552E2EE333EC95 -:1027F0004EE259E30E94652F20E030E040EC5EE3BA -:102800000E94522D60937602709377028093780233 -:102810009093790289C010929B0310929C031092AE -:102820009D0310929E03CE0183709927892BE1F0BE -:10283000BE016170772780E090E00E94532E20E077 -:1028400030E040E05EE30E94652F20E030E040E4AD -:102850005FE30E94522D609376027093770280931B -:102860007802909379020CC080E090E0A0E0BFE392 -:102870008093760290937702A0937802B0937902C6 -:10288000C770DD27CD2B09F04FC010927602109251 -:102890007702109278021092790246C010929B0340 -:1028A00010929C0310929D0310929E0300E010E092 -:1028B00020E03FE3009376021093770220937802A2 -:1028C000309379026739710578F180E090E00E94D9 -:1028D000532E20E030E047E153E40E94512D20E0E8 -:1028E00030E04AE754E40E94BA2D20E030E048E4AA -:1028F00052E40E94652F20E030E040EA51E40E945B -:10290000972E0E94222E660F771F660F771FFB01FE -:10291000EE53FD4F2081318142815381C701B601C1 -:102920000E94652F6B017C01C701B601DF91CF9139 -:102930001F910F91FF90EF90DF90CF90BF90AF90DD -:102940009F908F9008958091FC030895CF93DF931B -:1029500000D01F92CDB7DEB79C01809185048430F2 -:1029600019F593E099833B832A839093E9008FEFD5 -:102970009091E800815095FD06C095ED9A95F1F78C -:1029800000008111F5CF8091E80085FF0DC040E087 -:1029900050E063E070E0CE0101960E940317809141 -:1029A000E8008E778093E8000F900F900F90DF91F2 -:1029B000CF910895CF93DF9300D01F92CDB7DEB7AC -:1029C00020918504243021F522E029839B838A838A -:1029D00083E08093E9008FEF9091E800815095FDAE -:1029E00006C095ED9A95F1F700008111F5CF809121 -:1029F000E80085FF0DC040E050E063E070E0CE01EC -:102A000001960E9403178091E8008E778093E8007A -:102A10000F900F900F90DF91CF9108952091850432 -:102A20002430F1F422E02093E9002FEF3091E80008 -:102A3000215035FD06C035ED3A95F1F70000211122 -:102A4000F5CF2091E80025FF0BC040E050E065E0A5 -:102A500070E00E9403178091E8008E778093E80071 -:102A60000895CF93DF93EC0190918504943009F0A1 -:102A700046C0809185028823D9F080918602882300 -:102A8000B9F09093E9008FEF9091E800815095FDA7 -:102A900006C095E19A95F1F700008111F5CF80917C -:102AA000E80085FF2CC040E050E060E170E017C016 -:102AB00081E08093E9008FEF9091E800815095FDCF -:102AC00006C095ED9A95F1F700008111F5CF809140 -:102AD000E80085FF14C040E050E068E070E0CE01FF -:102AE0000E9403178091E8008E778093E80080E1D0 -:102AF000FE01ACEEB3E001900D928A95E1F7DF9113 -:102B0000CF91089580918404811109C00E94981882 -:102B10000E94F5188091E20084608093E20008959D -:102B2000109284040895089508950C943B2742E080 -:102B300061EC81E00E94121842E061EC82E00E94A8 -:102B4000121842E061EC83E00E94121842E161EC4D -:102B500084E00C94121880918704833009F455C0E6 -:102B600030F4813071F0823009F48EC008958A30DB -:102B700009F47AC08B3009F460C0893009F09CC038 -:102B800020C080918604813A09F096C08091E800C7 -:102B9000877F8093E80080918A0490918B04892B31 -:102BA00021F460E18CEE93E003C060E080E090E00F -:102BB00070E00E944E178091E8008B778093E800C8 -:102BC000089580918604813209F076C080918A044C -:102BD00090918B04009719F0039709F06DC08091D4 -:102BE000E800877F8093E8008091E80082FD05C0BF -:102BF000809185048111F8CF5FC08091F1008093AE -:102C0000FC038091E8008B7753C080918604813A61 -:102C100009F052C080918A0490918B04892B09F0AD -:102C20004BC08091E800877F8093E8008091E800A6 -:102C300080FFFCCF8091850236C08091860481326E -:102C4000D9F580918A0490918B04892BA9F5809104 -:102C5000E800877F8093E8000E94471880918804ED -:102C6000809385020C947D2080918604813221F529 -:102C70008091E800877F8093E8000E944718809148 -:102C800089048093FD03089580918604813AA1F41C -:102C90008091E800877F8093E8008091E80080FFC2 -:102CA000FCCF8091FD038093F1008091E8008E7746 -:102CB0008093E8000C944718089584B7877F84BFF9 -:102CC00088E10FB6F89480936000109260000FBE08 -:102CD00080E880936100109261000E94EA1B0E94CC -:102CE00098180E94F5188091E20084608093E200B9 -:102CF00078940E947B1B0E94EC1B8BE792E00E9461 -:102D0000961B80918504853069F40E94FD26809190 -:102D100083048823B1F30E942A27882391F30E9419 -:102D2000ED16EFCF0E94F41BECCF292F3327233071 -:102D30003105C9F064F42130310581F022303105CC -:102D400009F043C08DE690E02FEB38E042C021321D -:102D50003105F1F02232310541F137C082E190E0D6 -:102D60002CE239E036C099278130910541F082305C -:102D7000910541F0892B49F5EBEBF8E005C0EDE852 -:102D8000F8E002C0E3E6F8E0849190E09F0121C002 -:102D90006430D8F4E62FF0E0EE0FFF1FE25EFC4F48 -:102DA0002081318189E090E014C0643070F470E0DB -:102DB000FB01EE0FFF1FEA5EFC4F20813181FB011A -:102DC000EE5EFC4F808190E004C080E090E020E067 -:102DD00030E0FA0131832083089580E189BD82E1EA -:102DE00089BD09B400FEFDCF8091D8008F7D80930E -:102DF000D8008091E00082608093E0008091E00044 -:102E000081FDFCCF0895CF92DF92EF92FF920F9356 -:102E10001F93CF93DF93EC018B016A010E94661828 -:102E2000811133C0C114D10439F0F6018081918140 -:102E3000081B190BC80FD91FE12CF12C0115110526 -:102E400019F18091E80085FD16C08091E8008E7729 -:102E50008093E800C114D10449F0F601808191818A -:102E6000E80EF91EF182E08285E00FC00E9466182C -:102E7000882321F30AC089918093F1000150110940 -:102E8000FFEFEF1AFF0ADACF80E0DF91CF911F91B9 -:102E90000F91FF90EF90DF90CF90089520918C04D8 -:102EA00030918D042617370748F06115710539F404 -:102EB0002091E8002E772093E80001C0B90140E09E -:102EC00061157105A9F120918504222309F443C0FD -:102ED000253009F442C02091E80023FD40C0209134 -:102EE000E80022FD32C02091E80020FFE9CF4091A8 -:102EF000F3002091F20030E0342BFC01CF0161158A -:102F0000710559F02830310540F481918093F1002A -:102F1000615071092F5F3F4FF1CF41E028303105FB -:102F200009F040E02091E8002E772093E800C8CF18 -:102F30004111C9CF0AC080918504882361F0853092 -:102F400061F08091E80083FD0AC08091E80082FF73 -:102F5000F2CF80E0089582E0089583E0089581E053 -:102F6000089520918C0430918D042617370748F07E -:102F70006115710539F42091E8002E772093E8005F -:102F800001C0B901FC0120E06115710591F180914A -:102F90008504882309F440C0853009F43FC080913E -:102FA000E80083FD3DC08091E80082FD2FC0809144 -:102FB000E80080FFE9CF2091F3008091F20090E0DB -:102FC000922B6115710559F08830910540F42491D8 -:102FD0002093F1003196615071090196F2CF21E002 -:102FE000089709F020E08091E8008E778093E80050 -:102FF000CBCF2111CCCF0AC080918504882361F00A -:10300000853061F08091E80083FD0AC08091E8007E -:1030100082FFF2CF80E0089582E0089583E0089572 -:1030200081E00895982F973058F59093E90098170C -:1030300039F07091EC002091ED005091F00003C048 -:10304000242F762F50E021FF19C03091EB003E7FF6 -:103050003093EB003091ED003D7F3093ED003091E7 -:10306000EB0031603093EB007093EC002093ED00A7 -:103070005093F0002091EE0027FF07C09F5FD3CF51 -:103080008F708093E90081E0089580E00895809139 -:10309000860487FF11C08091E80082FD05C0809101 -:1030A00085048111F8CF11C08091E8008B770BC0A7 -:1030B00080918504882349F08091E80080FFF8CF53 -:1030C0008091E8008E778093E80008952091E400D5 -:1030D0003091E50095E64091EC00842F817040FF2F -:1030E00022C08091E80080FD1CC080918504882367 -:1030F00091F0853091F08091EB0085FD10C04091FA -:10310000E4005091E5004217530729F39A019150CA -:1031100011F784E0089582E0089583E0089581E046 -:10312000089580E008954091E80042FFDECF0895C1 -:103130000E9406190E940E19E0EEF0E08081816085 -:103140008083E8EDF0E080818F77808319BCA7ED64 -:10315000B0E08C918E7F8C9380818F7E80831092E3 -:10316000840408950F931F93CF93DF930E94061951 -:103170000E940E19C8EDD0E088818F7788838881FE -:103180008068888388818F7D888319BC109285042C -:1031900010928104109283041092820400EE10E0D9 -:1031A000F80180818B7F808388818160888342E001 -:1031B00060E080E00E941218E1EEF0E080818E7FF6 -:1031C0008083E2EEF0E0808181608083808188608E -:1031D0008083F80180818E7F8083888180618883ED -:1031E000DF91CF911F910F910895E8EDF0E080817C -:1031F0008F7E8083E7EDF0E080818160808384E0D2 -:1032000082BF81E0809384040C94B218E8EDF0E072 -:1032100080818E7F80831092E20008951092DA0000 -:103220001092E10008951F920F920FB60F92112491 -:103230002F933F934F935F936F937F938F939F93BE -:10324000AF93BF93EF93FF938091E10082FF0BC098 -:103250008091E20082FF07C08091E1008B7F809324 -:10326000E1000E947A1B8091DA0080FF1FC08091EC -:10327000D80080FF1BC08091DA008E7F8093DA0037 -:103280008091D90080FF0DC080E189BD82E189BDB8 -:1032900009B400FEFDCF81E0809385040E94821571 -:1032A00005C019BC109285040E9490158091E10020 -:1032B00080FF19C08091E20080FF15C08091E2007C -:1032C0008E7F8093E2008091E20080618093E20033 -:1032D0008091D80080628093D80019BC85E08093EB -:1032E00085040E9494158091E10084FF30C0809194 -:1032F000E20084FF2CC080E189BD82E189BD09B470 -:1033000000FEFDCF8091D8008F7D8093D800809102 -:10331000E1008F7E8093E1008091E2008F7E8093B8 -:10332000E2008091E20081608093E200809181045C -:10333000882311F084E007C08091E30087FD02C07C -:1033400081E001C083E0809385040E9495158091FF -:10335000E10083FF29C08091E20083FF25C08091B6 -:10336000E100877F8093E10082E0809385041092E2 -:1033700081048091E1008E7F8093E1008091E200E2 -:103380008E7F8093E2008091E20080618093E20072 -:1033900042E060E080E00E9412188091F0008860B6 -:1033A0008093F0000E949315FF91EF91BF91AF9130 -:1033B0009F918F917F916F915F914F913F912F914D -:1033C0000F900FBE0F901F9018951F920F920FB67F -:1033D0000F9211242F933F934F935F936F937F939B -:1033E0008F939F93AF93BF93CF93DF93EF93FF930D -:1033F000C091E900CF708091EC00D82FD17080FD92 -:10340000D0E81092E9008091F000877F8093F0006F -:1034100078940E94291A1092E9008091F000886047 -:103420008093F000CD2BCF70C093E900FF91EF9116 -:10343000DF91CF91BF91AF919F918F917F916F91CC -:103440005F914F913F912F910F900FBE0F901F9062 -:1034500018951F93CF93DF93CDB7DEB7AA970FB61A -:10346000F894DEBF0FBECDBFE6E8F4E088E08E0F33 -:103470009091F10091938E13FBCF0E94AB15809138 -:10348000E80083FF1FC18091860490918704492F33 -:1034900050E04A30510508F015C1FA01EB59FF4FD1 -:1034A0000C944731803881F0823809F00BC180914B -:1034B0008A048F708093E9008091EB0085FB882758 -:1034C00080F91092E90006C08091820490918304F3 -:1034D000911182609091E800977F9093E80080932B -:1034E000F1001092F100C8C0282F2D7F09F0EAC02A -:1034F000882319F0823061F0E5C080918804813022 -:1035000009F0E0C0933009F080E0809383042BC081 -:1035100080918804811127C080918A048F7009F4FA -:10352000D1C08093E9002091EB0020FF1CC09330B4 -:1035300021F48091EB00806214C09091EB009061C7 -:103540009093EB0021E030E0A90102C0440F551F29 -:103550008A95E2F74093EA001092EA008091EB002E -:1035600088608093EB001092E9008091E800877FEB -:1035700086C08111A7C0109188041F778091E30055 -:103580008078812B8093E3008091E800877F80938F -:10359000E8000E9447188091E80080FFFCCF8091EE -:1035A000E30080688093E300111102C082E001C053 -:1035B00083E08093850486C08058823008F082C002 -:1035C00080918804909189048C3D53E0950779F5AA -:1035D00083E08A838AE289834FB7F894DE011396E9 -:1035E00020E03EE051E2E32FF0E050935700E491F9 -:1035F00020FF03C0E295EF703F5FEF708E2F90E0E9 -:10360000EA3010F0C79601C0C0968D939D932F5F4E -:10361000243149F74FBF8091E800877F8093E8000D -:103620006AE270E0CE0101960E944E1714C0AE010E -:103630004F5F5F4F60918A040E949516BC0100970E -:1036400009F440C09091E800977F9093E800898149 -:103650009A810E94B1178091E8008B778093E800EF -:1036600031C0803879F58091E800877F8093E80049 -:10367000809181048093F1008091E8008E7780939F -:10368000E8000E9447181EC081111CC09091880458 -:103690009230C0F48091E800877F8093E800909397 -:1036A00081040E94471880918104811106C0809195 -:1036B000E30087FD02C081E001C084E080938504BF -:1036C0000E9497158091E80083FF0AC08091E8006E -:1036D000877F8093E8008091EB0080628093EB000D -:1036E000AA960FB6F894DEBF0FBECDBFDF91CF9183 -:1036F0001F9108950895CF93809185048823A1F0A8 -:10370000C091E900CF709091EC00892F817090FDFD -:1037100080E8C82B1092E9008091E80083FD0E94A8 -:10372000291ACF70C093E900CF91089590930304B4 -:10373000809302040895E0910204F091030430970D -:1037400021F00190F081E02D099480E00895E0914E -:103750000204F0910304309721F00280F381E02D00 -:1037600009940895E0910204F0910304309721F048 -:103770000480F581E02D0994089520910004309192 -:1037800001048217930771F0909301048093000461 -:10379000E0910204F0910304309721F00680F78154 -:1037A000E02D099408952091FE033091FF038217C4 -:1037B000930771F09093FF038093FE03E09102045E -:1037C000F0910304309721F00084F185E02D0994F5 -:1037D000089508950C94E91B0E946F270E94320DF2 -:1037E0000E94F5270C94B62C5F926F927F928F9275 -:1037F0009F92AF92BF92CF92DF92EF92FF920F9380 -:103800001F93CF93DF9300D000D01F92CDB7DEB7C8 -:103810000E94770D9DE0C92E94E0D92E03E010E0C0 -:10382000AA24A394B12C502E802F0E94F20D4C019B -:10383000F601729062906F01682679266114710416 -:10384000A1F40150110978F78FEF89838A831B82D5 -:103850000E9478278160782F9D838C8349815A81CB -:103860006B818D810E94A41C38C08091620481FD0F -:103870000E94FB0D2BE030E07501022E02C0EE0C21 -:10388000FF1C0A94E2F7C70186219721892B09F1D1 -:1038900029835A828E209F2091E0892809F490E0A4 -:1038A0009B830E9478278160782F9D838C83498138 -:1038B0005A816B818D810E94A41C000F111FF80199 -:1038C000EB5FFB4F80819181E826F926F182E0824F -:1038D00004C02150310980F6B4CF0E94E429109130 -:1038E00004040E949B1B1817D1F00E949B1B80931D -:1038F00004040F900F900F900F900F90DF91CF91D5 -:103900001F910F91FF90EF90DF90CF90BF90AF90FD -:103910009F908F907F906F905F900C94DE0C0F9033 -:103920000F900F900F900F90DF91CF911F910F91FB -:10393000FF90EF90DF90CF90BF90AF909F908F90CF -:103940007F906F905F900895CF93DF93CDB7DEB7F0 -:103950002B970FB6F894DEBF0FBECDBF4F835887AD -:1039600069877A878B87DE01119686E0FD011192C7 -:103970008A95E9F785E0FE01379601900D928A95C8 -:10398000E1F749815A816B817C818D819E810E9402 -:103990001B232B960FB6F894DEBF0FBECDBFDF9171 -:1039A000CF910895CF93882309F4C2C0C82F8238DD -:1039B00059F40E949B1B81FDBBC089E30E94F52541 -:1039C0000E94C22689E30CC0833879F40E949B1BB5 -:1039D00080FDAEC083E50E94F5250E94C22683E5E6 -:1039E0000E943726CF910C94C226843859F40E9445 -:1039F0009B1B82FD9DC087E40E94F5250E94C22684 -:103A000087E4EECF8CEF8C0F813A48F48C2F0E9424 -:103A10001F2C81118DC08C2F0E94F525E3CF80E2F1 -:103A20008C0F883048F4C77081E001C0880FCA95B8 -:103A3000EAF70E947B26D6CF8BE58C0F833078F493 -:103A4000C53A29F0C63A31F083E890E005C081E834 -:103A500090E002C082E890E0CF910C94BD1B88E515 -:103A60008C0F833108F064C0C83A39F1C93A41F18A -:103A7000CA3A49F1CB3A51F1CC3A59F1CD3A61F118 -:103A8000C03B69F1CE3A71F1CF3A79F1C13B81F196 -:103A9000C23B89F1C33B91F1C43B99F1C53BA1F114 -:103AA000C63BA9F1C73BB1F1C83BB9F1C93BC1F174 -:103AB000CA3BC9F180E090E038C082EE90E035C0AA -:103AC00089EE90E032C08AEE90E02FC085EB90E066 -:103AD0002CC086EB90E029C087EB90E026C08CECF0 -:103AE00090E023C08DEC90E020C083E891E01DC001 -:103AF0008AE891E01AC082E991E017C084E991E078 -:103B000014C081E292E011C083E292E00EC084E230 -:103B100092E00BC085E292E008C086E292E005C028 -:103B200087E292E002C08AE292E0CF910C94D31B2C -:103B3000CF910895882309F44BC0823859F40E942C -:103B40009B1B81FF45C089E30E94F5250E94C22688 -:103B500089E30CC0833871F40E949B1B80FF38C03E -:103B600083E50E94F5250E94C22683E50E94372640 -:103B70000C94C226843859F40E949B1B82FF28C0F3 -:103B800087E40E94F5250E94C22687E4EFCF9CEFD0 -:103B9000980F913A58F390E2980F983050F487704C -:103BA00091E001C0990F8A95EAF7892F0E9481263A -:103BB000DFCF9BE5980F933020F480E090E00C94E9 -:103BC000BD1B885A833120F480E090E00C94D31B15 -:103BD0000895882321F00E947B260C94C226089524 -:103BE000882321F00E9481260C94C22608957F929A -:103BF0008F929F92AF92BF92CF92DF92EF92FF92FD -:103C00000F931F93CF93DF931F92CDB7DEB77C0145 -:103C1000C62E772EFC01058102950F7012811111BD -:103C20000E9498260E94EE25882379F0112369F0DE -:103C300080E28C0D883048F082E00E94D7250E94F7 -:103C4000EE2591E0D82ED92601C0D12CE72DE295A2 -:103C5000EF70F0E0E159FF4F0C944731872D807FE2 -:103C6000072D0F70882311F00295007F112389F032 -:103C7000002309F499C180E28C0D883020F4802F54 -:103C80000E947B2603C0802F0E948B260E94C226A2 -:103C90008BC18C2D0E949A1D002309F4C3C180E2C0 -:103CA0008C0D883020F4802F0E94812603C0802F45 -:103CB0000E9491260E94C226B5C1872D807F972D34 -:103CC0009F70803211F4892F03C0892F8295807FE5 -:103CD000CC2021F0F1E0CF16A1F01DC0112339F066 -:103CE000002319F1013009F50E94AB269BC1002386 -:103CF00019F0013009F496C189830E94AE268981AA -:103D000010C1112321F0063008F08CC10EC005301F -:103D100008F088C106C1112359F0002331F0F701E2 -:103D2000958190FF41C19F7095830E94E91D7AC1E2 -:103D3000002309F4F6C03EC1872D869586958370D1 -:103D400090E0009719F0019761F06CC1112321F008 -:103D50008C2D972D937002C080E090E00E94BD1BD7 -:103D600061C1112321F08C2D972D937002C080E04A -:103D700090E00E94D31B56C18C2D112319F00E9494 -:103D8000EC2802C00E9454290E94D9294BC1872DDA -:103D9000837009F052C0111145C18C2D8295869512 -:103DA0008770880F880F9C2D9F70892E912CA12CD5 -:103DB000B12C082E04C0880C991CAA1CBB1C0A94A8 -:103DC000D2F7C4FE14C00FE010E020E030E0B901EB -:103DD000A80104C0440F551F661F771F8A95D2F7AC -:103DE000CB01BA01609570958095909503C060E015 -:103DF00070E0CB01272D26952695237030E02230E8 -:103E0000310569F02330310589F0682979298A293B -:103E10009B292130310571F00E94632403C1682978 -:103E200079298A299B290E947F24FCC00E9463244F -:103E3000C501B4010E944724F5C0112319F0872D54 -:103E4000817001C08695882309F4ECC08C2D829581 -:103E500086958770880F880F9C2D9F70892E912CD6 -:103E6000A12CB12C082E04C0880C991CAA1CBB1CC8 -:103E70000A94D2F7C4FE14C00FE010E020E030E056 -:103E8000B901A80104C0440F551F661F771F8A950A -:103E9000D2F7CB01BA01609570958095909503C0DB -:103EA00060E070E0CB01272D269526952370422FE8 -:103EB00050E04230510569F04330510589F06829DE -:103EC00079298A299B294130510571F00E943D25AD -:103ED000A9C0682979298A299B290E945925A2C04D -:103EE0000E943D25C501B4010E9421259BC08C2D57 -:103EF00090E0FC01E05EF109E531F10508F050C009 -:103F0000E158FF4F0C9447310C2D0F70872D8F71A6 -:103F1000112321F00E94BA24802F07CF0E94DB24B6 -:103F2000802F0E94F01D7EC0112341F0053008F063 -:103F300079C0872D8F710E94002574C0063008F06B -:103F400071C0F7CF112339F0872D8F710E94BA24E9 -:103F500069C01123C9F3872D8F710E94DB2462C0D1 -:103F6000112329F0872D8F710E94A5245BC00E9428 -:103F70009B2458C0112351F0172D1F71812F0E94CF -:103F8000BA2463E0812F0E94CE254CC081E00E94BC -:103F9000D725023008F446C082E00E94D72542C0EF -:103FA000112331F0002381F28C2D0E94D21C3AC0E3 -:103FB000002389F28C2D0E949A1D34C0472D4F702A -:103FC0006C2DC7010E941C060E94BF232BC011113B -:103FD00029C0472D4F7050E042305105B9F04CF4E4 -:103FE0004115510581F041305105E1F40E94DE2C6C -:103FF00019C04330510569F04430510599F48C2DB6 -:104000000E94302D0FC00E94C72C0CC00E94FA2CB9 -:1040100009C00E940D2D06C0472D4F706C2DC701A1 -:104020000E944E0CDD20F9F00E94CA2580FD1BC0C5 -:10403000F70112820E94C4250E94BA24C7010E947F -:1040400042200E94C4250F90DF91CF911F910F91C4 -:10405000FF90EF90DF90CF90BF90AF909F908F90A8 -:104060007F900C94DB240F90DF91CF911F910F91E3 -:10407000FF90EF90DF90CF90BF90AF909F908F9088 -:104080007F9008950F931F93CF93DF93EC01888166 -:1040900099812B813C81232BB9F09F3F11F48F3FF5 -:1040A00099F0CE010E94BB07882371F06881798165 -:1040B0008A810E94C0258C010E9475250E943C24A3 -:1040C000B801CE010E94F71DDF91CF911F910F9192 -:1040D00008950E9498260E94A8260E946D260E949C -:1040E000C2260E948A2A0E94D92980E090E00E947C -:1040F000BD1B80E090E00C94D31B0E9488260C949A -:1041000069200E94B525292F22952F7030E02C3090 -:1041100031054CF42A3031056CF42250310922303B -:104120003105A8F407C02C30310569F02F30310576 -:1041300051F00DC0803F69F018F4803E40F409C092 -:10414000843F29F406C093FB882780F9089580E016 -:10415000089581E00895CF93DF9300D000D01F929F -:10416000CDB7DEB70F900F900F900F900F90DF91AB -:10417000CF910895CF93DF9300D000D000D0CDB77A -:10418000DEB726960FB6F894DEBF0FBECDBFDF9127 -:10419000CF9108951F93CF93DF93C0910D0416E044 -:1041A00080910E04C81799F0D0E01C9FF0011D9F6C -:1041B000F00D1124E15FFB4F4081518162817381D9 -:1041C000848195810E94BA202196C770E9CFDF9142 -:1041D000CF911F91089540913F0450914004609108 -:1041E00041047091420480914304909144040C94E2 -:1041F000BA208091440482958F7009F054C0809158 -:104200004104882309F44FC080910D04A0910E044D -:1042100060913F04709140044091420450914304E6 -:10422000B6E08A1709F43FC090E041155105C1F18D -:104230007F3F11F46F3FA1F1B89FF001B99FF00DDE -:104240001124E15FFB4F218172132AC02081621388 -:1042500027C02281211124C02381348124173507EE -:1042600010F421503109241B350B283C3105C0F4D2 -:10427000209144042F7020612093440426E0289F5D -:10428000F001299FF00D1124EC5EFB4F80818F70AF -:10429000806180838FE394E00E9442200C94CA20C6 -:1042A00001968770BECF0895CF92DF92EF92FF9272 -:1042B0000F931F93CF93DF93CDB7DEB762970FB6FF -:1042C000F894DEBF0FBECDBF8C0185E0F801DE01A2 -:1042D0001D9601900D928A95E1F7D8014C911196A7 -:1042E0005C91119712966C9112971396CD90DC9079 -:1042F000149730913F047091400480914204909152 -:104300004304009709F46BC17F3F19F43F3F09F460 -:1043100066C1E0904104EE2009F4C0C0209144043D -:10432000C816D90628F0F601E81BF90BCF0104C026 -:10433000809590958C0D9D1DFF24F394883C9105EC -:1043400078F0F12C207F09F0C6C07C2DD98AC88A6C -:1043500089890E94AB208FE394E00E944220B1C083 -:10436000822F807F09F046C0751314C0341312C029 -:10437000611110C02F702061209344040E94EB2033 -:104380008FE394E00E94422080914404D801159666 -:104390008C932EC0CD2819F15F3F11F44F3FF9F0F7 -:1043A000F62E61111CC080910D0420910E0436E0A0 -:1043B000821709F45AC090E0389FF001399FF00D40 -:1043C0001124E15FFB4F7181571306C070814713C1 -:1043D00003C07281711103C001968770E9CFF62E78 -:1043E000662309F418C180914404816080934404D9 -:1043F000F12C11C1751308C0341306C0611104C03B -:1044000080914404D801C3C04D875E878D859E8509 -:104410006A8B0E9481206A898823E1F16623D1F1A9 -:1044200020914404822F82958F7090E0029774F05F -:1044300080913F049091400498878F831986DB8692 -:10444000CA862C87CE0107960E94422086E0F8019A -:10445000AFE3B4E001900D928A95E1F70E94F92054 -:104460000E94EB20FF24F394D6C04D875E878D8594 -:104470009E850E94B525292F22952F7030E022308D -:1044800031050CF0BCC09F7009F0B6C0805E88306A -:1044900008F4C1C0C8010E944220E4CFC816D90662 -:1044A00008F453C0F601E81BF90BCF01883C9105D5 -:1044B00008F450C0F12C7C2DD98AC88A89890E94C1 -:1044C000AB20EFE3F4E086E0DF011D928A95E9F787 -:1044D0000E94EB20A0C0751314C0341312C06111E8 -:1044E00010C080914404F8018583C8010E944220D5 -:1044F00086E0EFE3F4E0DF011D928A95E9F7FE2CF8 -:104500008AC04D875E878D859E856A8B0E9481203B -:104510006A89882309F4BECF662309F4BBCF2091B2 -:104520004404822F82958F7090E002970CF48ECF16 -:1045300080913F04909140049A8389831B82DD829D -:10454000CC822E83CE0101967FCF809590958C0DE5 -:104550009D1DACCFF62E662309F49CCF75132EC09B -:1045600034132CC02091440420FD1FC0822F82955B -:104570008F70D9F0D80115962C9315978F3049F08C -:104580008F5F982F9295907F822F8F70892B159631 -:104590008C93C8010E94422086E0F801AFE3B4E0AA -:1045A00001900D928A95E1F793CF86E0F801AFE391 -:1045B000B4E001900D928A95E1F72DC04D875E879A -:1045C0008D859E850E948120811140CF8091440479 -:1045D000816080934404C8010E9442201CC066236D -:1045E00009F458CF4D875E878D859E850E94812076 -:1045F000882309F44FCF2ACF811148CF0CC0243033 -:1046000031050CF047CF9F7009F440CFF801958138 -:10461000907F09F03BCF8F2D62960FB6F894DEBFE6 -:104620000FBECDBFDF91CF911F910F91FF90EF9003 -:10463000DF90CF9008951F93CF93DF93CDB7DEB770 -:104640002C970FB6F894DEBF0FBECDBF4F835887AF -:1046500069877A878B879C87CE0107960E945421B1 -:10466000882369F08F8198852A853B85232BF1F17A -:104670009F3F09F063C08F3F09F060C037C086E0FC -:10468000FE013796DE01119601900D928A95E1F7B1 -:104690006F817885EA85FB85309741F17F3F11F482 -:1046A0006F3F21F120910E0430E0C901019687701F -:1046B000992740910D0450E08417950709F447C0ED -:1046C00069837A83FD83EC8396E0929FD001939F68 -:1046D000B00D1124A15FBB4FFE01319601900D92E8 -:1046E0009A95E1F780930E040E94CA2016E080910B -:1046F0000D0490910E048917C1F1189FC001112477 -:10470000815F9B4F0E945421882379F1E0910D0431 -:104710001E9FF0011124E15FFB4F408151816281B6 -:104720007381848195810E94BA2080910D0490E06C -:1047300001968770992780930D04D9CF4F815885B2 -:1047400069857A858B859C850E94BA20CFCF0E948F -:104750007D2010920E0410920D04EFE3F4E086E049 -:10476000DF011D928A95E9F7C1CF2C960FB6F89418 -:10477000DEBF0FBECDBFDF91CF911F910895EF92A5 -:10478000FF920F931F93CF93DF938C01009709F44F -:104790006CC0F12CEE24E394E8012196F801849199 -:1047A000843740F4843008F051C0813081F0823089 -:1047B00019F15BC0853709F444C0A8F19CE7980F54 -:1047C000903708F052C08F770E949A1D41C00E5F4B -:1047D0001F4FFE01C49180E28C0F883048F4C770EF -:1047E0008E2D01C0880FCA95EAF70E949B2614C03F -:1047F0008C2F0E94D21C2DC00E5F1F4FFE01C49152 -:1048000080E28C0F883058F4C7708E2D01C0880F5D -:10481000CA95EAF70E94A1260E94C2261AC08C2FD0 -:104820000E949A1D16C00E5F1F4FFE01C491CC233B -:1048300081F08FE99FE00197F1F700C00000C150BF -:10484000F6CF0E5F1F4FFE01F49003C00E94D21CF2 -:104850008E018F2D882309F49FCFEFE9FFE0319778 -:10486000F1F700C000008150F5CFDF91CF911F918B -:104870000F91FF90EF90089508956093490470930D -:104880004A0480934B0490934C040C9469200F933A -:104890001F930091490410914A0420914B043091D8 -:1048A0004C04DC01CB01802B912BA22BB32B8093EA -:1048B000490490934A04A0934B04B0934C041F9175 -:1048C0000F910C9469200F931F930091490410914C -:1048D0004A0420914B0430914C04DC01CB0180232D -:1048E0009123A223B3238093490490934A04A09375 -:1048F0004B04B0934C041F910F910C9469200F93BB -:104900001F930091490410914A0420914B04309167 -:104910004C04DC01CB0180279127A227B327809389 -:10492000490490934A04A0934B04B0934C041F9104 -:104930000F910C9469201092450410924604109235 -:104940004704109248040C94692041E050E060E074 -:1049500070E004C0440F551F661F771F8A95D2F779 -:104960004093450450934604609347047093480471 -:104970000C94692041E050E060E070E004C0440F16 -:10498000551F661F771F8A95D2F780914504909135 -:104990004604A0914704B0914804482B592B6A2B38 -:1049A0007B2B4093450450934604609347047093D7 -:1049B00048040C94692041E050E060E070E004C0DD -:1049C000440F551F661F771F8A95D2F74095509563 -:1049D000609570958091450490914604A09147049C -:1049E000B0914804482359236A237B23409345040C -:1049F0005093460460934704709348040C946920D4 -:104A000041E050E060E070E004C0440F551F661FB5 -:104A1000771F8A95D2F78091450490914604A09122 -:104A20004704B0914804482759276A277B274093B9 -:104A300045045093460460934704709348040C94D3 -:104A400069200F931F930091450410914604209113 -:104A5000470430914804DC01CB01802B912BA22B21 -:104A6000B32B8093450490934604A0934704B093DE -:104A700048041F910F910C9469200F931F9300918C -:104A80004504109146042091470430914804DC010C -:104A9000CB0180239123A223B323809345049093D9 -:104AA0004604A0934704B09348041F910F910C94BF -:104AB00069200F931F9300914504109146042091A3 -:104AC000470430914804DC01CB0180279127A227BD -:104AD000B3278093450490934604A0934704B09372 -:104AE00048041F910F910C9469200895CF92DF9292 -:104AF000EF92FF920F931F93CF93DF938C01C0909F -:104B00004904D0904A04E0904B04F0904C0480910A -:104B1000450490914604A0914704B0914804C82AE6 -:104B2000D92AEA2AFB2ACFE1D0E0D701C6010C2E10 -:104B300004C0B695A795979587950A94D2F780FFFC -:104B400006C0B8018C2F0E94AD0A019721F421976D -:104B500060F780E001C08C2FDF91CF911F910F9102 -:104B6000FF90EF90DF90CF900895CF93DF93EC010B -:104B70000E947625BE010E94AD0ADF91CF91089573 -:104B8000CB010E94B525089580914D0485958595AA -:104B90008595089580914D048770089598E0899FC8 -:104BA00090011124262B20934D040C94BA242091BB -:104BB0004D048095822380934D04982F977069F45B -:104BC00030E0482F552747FD50952417350729F029 -:104BD0008595859585950C94DB24089590914D04D9 -:104BE000977081E009F480E00895909185029923FF -:104BF00021F090918602911109C020918702309195 -:104C00008802F90132969FEF40E01FC0982F9695D9 -:104C1000969596959F3050F5E0918702F091880225 -:104C2000E90FF11D877021E030E0A90102C0440FB7 -:104C3000551F8A95E2F7CA019181892B81830895D6 -:104C40009F3F39F04F5F4E3041F051915813F8CFEC -:104C50000DC05111F7CF942FF5CF9F3F39F0F901D7 -:104C6000E90FF11D97FDFA958283089508959091BB -:104C70008502992321F090918602911109C020911B -:104C8000870230918802F9013296205F3F4F1FC0A2 -:104C9000982F9695969596959F30F0F4E09187021F -:104CA000F0918802E90FF11D877021E030E0A90141 -:104CB00002C0440F551F8A95E2F7CA018095918181 -:104CC0008923818308953196E217F30729F09081B3 -:104CD0009813F9CF1082F7CF089581E090E0E0912A -:104CE0008702F0918802E80FF91F10820196803147 -:104CF0009105A9F7089590916104892B809361042F -:104D000008958095909161048923809361040895AA -:104D100010926104089590916004892B809360043F -:104D2000089580959091600489238093600408958C -:104D300010926004089590915F04892B80935F0422 -:104D40000895809590915F04892380935F0408956E -:104D500010925F04089580934E04089510924E04BB -:104D600008958091870290918802FC0131969C0100 -:104D7000205F3F4F80E0919191118F5FE217F30721 -:104D8000D1F70895E0918702F09188028091610443 -:104D90008083E0918702F091880290818091600485 -:104DA000892B8083E0918702F09188029081809125 -:104DB0005F04892B808380914E04882361F0E09109 -:104DC0008702F09188029081892B80830E94B1260E -:104DD000811110924E0480918702909188020C9468 -:104DE000A71B20E0009739F0AC0141505109842302 -:104DF00095232F5FF7CF822F08958091850484300B -:104E000039F11092630420E488E190E00FB6F89441 -:104E1000A895809360000FBE2093600080E00E9400 -:104E2000770580E00E94DE0C83B7817F846083BFBA -:104E300083B7816083BF7894889583B78E7F83BF63 -:104E400088E10FB6F89480936000109260000FBE66 -:104E50000895089580E00E9477050E94F40C0E9456 -:104E6000770D0E9429270E94FC0D91E0811101C05D -:104E700090E0892F08950E947D2080E00E947705B0 -:104E80000E94B62C0E949B1B0C94DE0C1F920F926A -:104E90000FB60F9211248F939F93AF93BF9380917E -:104EA0006304811113C08091640490916504A09102 -:104EB0006604B09167044196A11DB11D80936404FE -:104EC00090936504A0936604B0936704BF91AF917B -:104ED0009F918F910F900FBE0F901F90189582E0B9 -:104EE00084BD93E095BD9AEF97BD80936E000895C1 -:104EF0002FB7F8948091640490916504A0916604A2 -:104F0000B09167042FBF0895CF92DF92EF92FF9286 -:104F10000F931F932FB7F894409164045091650448 -:104F200060916604709167042FBF6A017B01EE24D3 -:104F3000FF248C0120E030E0C016D106E206F30623 -:104F400010F4415051099A01281B390BC9011F91D6 -:104F50000F91FF90EF90DF90CF9008951F920F92E6 -:104F60000FB60F9211248F939F93AF93BF938091AD -:104F7000640490916504A0916604B0916704019661 -:104F8000A11DB11D8093640490936504A0936604F1 -:104F9000B0936704BF91AF919F918F910F900FBE17 -:104FA0000F901F9018950E949818F8942FEF87EA99 -:104FB00091E6215080409040E1F700C0000087E07A -:104FC00090EBDC0180938F0490939004A093910464 -:104FD000B09392049CE088E10FB6F894A895809372 -:104FE00060000FBE90936000FFCF0E9437288111B0 -:104FF00002C00E9413280E944228809362040E94EB -:105000004F2890E0909374048093730487FB882763 -:1050100080F9809386020E944628682F70E080E025 -:1050200090E00C943D246DEE7EEF80E090E00E94D5 -:105030006D3160E082E090E00E945B3160E083E0EF -:1050400090E00E945B3160E084E090E00E945B3180 -:1050500060E085E090E00E945B3160E086E090E0F7 -:105060000E945B316FEF87E090E00C945B3180E051 -:1050700090E00E94553121E08D3E9E4F09F020E0E6 -:10508000822F089582E090E00C944D3183E090E00F -:105090000C944D31682F83E090E00C945B3184E0F8 -:1050A00090E00C944D31682F84E090E00C945B31DB -:1050B00086E090E00C944D31682F86E090E00C94EF -:1050C0005B3187E090E00C944D31682F87E090E0F1 -:1050D0000C945B3180916A0480FF0BC060918C025C -:1050E00085E0689FB0011124759567957595679562 -:1050F0002BC081FF09C060918C0285E0689FB001E0 -:1051000011247595679520C082FF07C060918C02BD -:1051100085E0689FB001112417C090916B0499231A -:10512000D1F060918B02961788F720918C0285E070 -:10513000289F90011124929FA001939F500D11244C -:1051400070E0CA010E9433316038710540F4611586 -:10515000710539F002C065E070E0862F08958FE791 -:10516000089581E0089580916A0480FF08C06091ED -:105170008A0270E0759567957595679521C081FFE6 -:1051800006C060918A0270E07595679519C082FF2C -:1051900004C060918A0270E010C090916B04992362 -:1051A000C1F0609189029617A0F780918A02899FC9 -:1051B000C001112470E00E9433316038710528F479 -:1051C0006115710521F0862F08958FE7089581E01C -:1051D000089561E070E0F4CF803F21F40E946A28D6 -:1051E000819504C0813F29F40E946A2880936E044F -:1051F0000895823F21F40E946A28819504C0833F6C -:1052000029F40E946A2880936D040895893F19F457 -:105210000E94B32805C08A3F31F40E94B3288195CB -:1052200080936F0408958B3F21F40E94B3288195E9 -:1052300004C08C3F29F40E94B32880937004089521 -:10524000843F21F480916C04816017C0853F21F474 -:1052500080916C04826011C0863F21F480916C04BF -:1052600084600BC0873F21F480916C04886005C086 -:10527000883F31F480916C04806180936C040895C0 -:105280008D3F21F480916A0481600BC08E3F21F430 -:1052900080916A04826005C08F3F29F480916A047E -:1052A000846080936A040895803F39F480916E048D -:1052B00087FF6CC010926E0469C0813F29F4809111 -:1052C0006E041816BCF362C090916D04823F29F4FD -:1052D00097FF5CC010926D0459C0833F19F41916F2 -:1052E000CCF354C0893F41F480916F0418160CF040 -:1052F0004DC010926F044AC08A3F29F480916F0418 -:1053000087FF44C0F6CF8B3F39F48091700487FF4C -:105310003DC0109270043AC08C3F29F48091700413 -:105320001816BCF333C0843F21F480916C048E7F47 -:1053300017C0853F21F480916C048D7F11C0863F9A -:1053400021F480916C048B7F0BC0873F21F4809106 -:105350006C04877F05C0883F31F480916C048F7E98 -:1053600080936C0413C08D3F21F480916A048E7F7A -:105370000BC08E3F21F480916A048D7F05C08F3F62 -:1053800029F480916A048B7F80936A0480916D0474 -:1053900081110EC080916E0481110AC080916F044A -:1053A000811106C080917004811102C010926B04BB -:1053B00008958CE694E00E94B21B0E947827909397 -:1053C00069048093680408951F93CF93DF938091BD -:1053D0006804909169040E948427AC0190916B0449 -:1053E000992321F020918D0230E006C020918E0299 -:1053F0008AE0289F900111244217530708F486C0C1 -:1054000080916D04C0916E04D0916F04109170046E -:10541000811107C0C11176C0D11174C0111172C0C1 -:1054200075C09F3F19F09F5F90936B04181624F48A -:105430000E946A2880936D0480916D0487FF05C0E7 -:105440000E946A28819580936D041C1624F40E94A2 -:105450006A2880936E0480916E0487FF05C00E94C5 -:105460006A28819580936E0460916D04662339F1FA -:10547000C0916E04CC2319F1772767FD7095872FB3 -:10548000972F0E94552E23E333E343E35FE30E940B -:10549000652F0E94222E60936D046C2F772767FD85 -:1054A0007095872F972F0E94552E23E333E343E314 -:1054B0005FE30E94652F0E94222E60936E041D16EA -:1054C00024F40E94B32880936F0480916F0487FFB7 -:1054D00005C00E94B328819580936F04111624F4AF -:1054E0000E94B328809370048091700487FF05C0E8 -:1054F0000E94B328819580937004DF91CF911F9112 -:105500000C94D9299F3F09F08ECF96CFDF91CF9190 -:105510001F910895ECE6F4E085E0DF011D928A9585 -:10552000E9F710926B0410926A040895833081F1B8 -:1055300028F4813059F08230D1F00895853009F493 -:1055400049C0B8F1863009F456C0089580918E02A2 -:10555000262F30E0280F311D2F3F310524F4680F2E -:1055600060938E0208958FEF80938E02089580914C -:105570008D02262F30E0280F311D2F3F310524F4F6 -:10558000680F60938D0208958FEF80938D020895C8 -:1055900080918C02262F30E0280F311D2F3F3105DE -:1055A00024F4680F60938C0208958FEF80938C022F -:1055B000089580918B02262F30E0280F311D2F3F58 -:1055C000310524F4680F60938B0208958FEF809368 -:1055D0008B02089580918A02262F30E0280F311D1A -:1055E0002F3F310524F4680F60938A0208958FEFEE -:1055F00080938A02089580918902262F30E0280F37 -:10560000311D2F3F310524F4680F609389020895FE -:105610008FEF809389020895833011F128F481304F -:1056200049F0823091F00895853081F120F1863083 -:10563000C1F1089580918E02681720F4861B809333 -:105640008E02089510928E02089580918D0268173F -:1056500020F4861B80938D02089510928D02089588 -:1056600080918C02681720F4861B80938C02089529 -:1056700010928C02089580918B02681720F4861B8B -:1056800080938B02089510928B02089580918A0274 -:10569000681720F4861B80938A02089510928A026C -:1056A000089580918902681720F4861B80938902EF -:1056B00008951092890208950F931F93873208F07E -:1056C00048C08E3108F08DC0803109F477C008F5EC -:1056D000873009F461C068F4863009F09DC080917C -:1056E0006204817F8E7F8093620481E080937204E4 -:1056F00094C08B3009F489C08E3009F08DC0809140 -:10570000620482FB222720F991E0922790FB82F924 -:105710005EC0863109F479C060F4813109F07CC043 -:105720000E947D209091860281E0892780938602E5 -:105730006CC0893109F469C08B3109F06DC080916A -:10574000620481FB222720F991E0922790FB81F9E6 -:105750003EC0883309F459C050F4893209F457C067 -:10576000853309F454C0873209F451C055C08334DD -:1057700009F44DC028F48A3308F44EC0895332C06E -:10578000883409F049C00E947D200E942C0E0E949E -:10579000F1060E94D32739C090916204892F809529 -:1057A000817080FB90F929F0966098609093620474 -:1057B00034C0997F977F9093620427C080916204E0 -:1057C00083FB222720F991E0922790FB83F98093B5 -:1057D00062049923D1F08091620481608093620415 -:1057E00014C08D5141E050E060E070E08A019B01FF -:1057F00004C0000F111F221F331F8A95D2F7C90161 -:10580000B8010E943D240E947D2081E006C061E035 -:1058100070E080E090E0F5CF80E01F910F91089557 -:1058200080E0089580E008958E518A3030F4E82FAA -:10583000F0E0EA5DFC4F8081089580E00895CF9309 -:10584000C82F80917204813069F018F08230C9F15C -:1058500083C0E0918702F09188028081823209F052 -:105860007DC007C0E0918702F0918802808182327A -:1058700061F48C2F0E94102C811104C08C2F0E9487 -:105880005C2B1DC081E090E01AC08C2F0E94122C6E -:10589000811114C0C43179F048F4CB3079F0C031B3 -:1058A00009F060C082E08093720408C0C93219F028 -:1058B000C83321F057C01092720454C081E0817047 -:1058C00053C0C93289F118F5C43171F1B0F4C73051 -:1058D00009F046C08EE180938E0282E380938D02B0 -:1058E0008AE080938C0284E180938B0288E080932D -:1058F0008A0288E28093890233C082EE8C0F863060 -:1059000078F58C2F0E94142C8093710429C0CE341A -:10591000E9F020F4CB3421F56AE013C0C13579F009 -:10592000C235F1F461E00DC080917104882319F053 -:105930001092710415C081E08093720415C061E07B -:1059400006C0809171040E94962A0AC06AE0809184 -:1059500071040E940C2B04C01092720480E004C0F9 -:1059600081E002C080E0ABCFCF9108950E9437283C -:10597000811102C00E9413280E94582880938E042F -:1059800080FF02C0869501C080E00C94770580916D -:105990008E04982F9695292F30E0233031054CF452 -:1059A0009F5F990F8170892B816080938E040E9484 -:1059B0005C2880918E0486950C94770580918E04E6 -:1059C000982F969591F09158990F8170892B80931B -:1059D0008E048E7F91E009F490E080918E0490FB1C -:1059E00080F980938E040E945C2880918E048695B5 -:1059F0000C94770580918E04982F909590FB80F9F8 -:105A000080938E040E945C2880918E0480FF02C0E7 -:105A1000869501C080E00C94770590918E04892FC3 -:105A200086958F5F8F779170843028F4880F892B4B -:105A300080938E0402C090938E0480918E048E7F9A -:105A400091E009F490E080918E0490FB80F98093BE -:105A50008E040E945C2880918E0486950C947705B4 -:105A600020918E04922F96958927982F990F822F37 -:105A70008170892B80938E048E7F91E009F490E0F1 -:105A800080918E0490FB80F980938E040E945C28A4 -:105A900080918E0486950C94770580918E0486956E -:105AA00008955058BB27AA270ED0D1C1C2D130F0DB -:105AB000C7D120F031F49F3F11F41EF4B7C10EF4AA -:105AC000E095E7FB9FC1E92FD3D180F3BA176207B6 -:105AD00073078407950718F071F49EF5EBC10EF477 -:105AE000E0950B2EBA2FA02D0B01B90190010C01EE -:105AF000CA01A0011124FF27591B99F0593F50F406 -:105B0000503E68F11A16F040A22F232F342F44275D -:105B1000585FF3CF469537952795A795F040539555 -:105B2000C9F77EF41F16BA0B620B730B840BBAF025 -:105B30009150A1F0FF0FBB1F661F771F881FC2F790 -:105B40000EC0BA0F621F731F841F48F487957795A4 -:105B50006795B795F7959E3F08F0B3CF9395880F5B -:105B600008F09927EE0F97958795089527D108F4A7 -:105B700081E008950CD06BC163D140F05AD130F070 -:105B800021F45F3F19F03EC1511195C14FC170D151 -:105B900098F39923C9F35523B1F3951B550BBB27F4 -:105BA000AA2762177307840738F09F5F5F4F220FA1 -:105BB000331F441FAA1FA9F333D00E2E3AF0E0E89A -:105BC00030D091505040E695001CCAF729D0FE2FE6 -:105BD00027D0660F771F881FBB1F26173707480778 -:105BE000AB07B0E809F0BB0B802DBF01FF2793582E -:105BF0005F4F2AF09E3F510568F004C15CC15F3FD2 -:105C0000ECF3983EDCF3869577956795B795F79515 -:105C10009F5FC9F7880F911D9695879597F908950D -:105C2000E1E0660F771F881FBB1F621773078407A9 -:105C3000BA0720F0621B730B840BBA0BEE1F88F7B8 -:105C4000E095089504D06894B11135C1089518D134 -:105C500088F09F5790F0B92F9927B751A0F0D1F055 -:105C6000660F771F881F991F1AF0BA95C9F712C0DF -:105C7000B13081F01FD1B1E008951CC1672F782F9A -:105C80008827B85F39F0B93FCCF38695779567954B -:105C9000B395D9F73EF490958095709561957F4FB7 -:105CA0008F4F9F4F0895E89409C097FB3EF490955D -:105CB0008095709561957F4F8F4F9F4F9923A9F0E5 -:105CC000F92F96E9BB279395F69587957795679574 -:105CD000B795F111F8CFFAF4BB0F11F460FF1BC0B8 -:105CE0006F5F7F4F8F4F9F4F16C0882311F096E94B -:105CF00011C0772321F09EE8872F762F05C06623F9 -:105D000071F096E8862F70E060E02AF09A95660FB1 -:105D1000771F881FDAF7880F9695879597F908956A -:105D200088D018F011F08CD038F480C0C4C0E92FAE -:105D30009FD0B0F35523C9F3E7FB621773078407BD -:105D40009507A8F199F3E92FFF2788232AF03197C7 -:105D5000660F771F881FDAF7952F5527442332F0F7 -:105D600091505040220F331F441FD2F7BB27E91B2D -:105D7000F50B621B730B840BB109C1F222F4620FA5 -:105D8000731F841FB11D31972AF0660F771F881F7C -:105D9000BB1FEFCF915050405AF041F0882332F0B2 -:105DA000660F771F881F91505040C1F7939530C000 -:105DB0008695779567959F5FD9F7F8CF990F00087B -:105DC000550FAA0BE0E8FEEF16161706E807F907CD -:105DD000C0F012161306E407F50798F0621B730B68 -:105DE000840B950B39F40A2661F0232B242B252BE9 -:105DF00021F408950A2609F4A140A6958FEF811D8C -:105E0000811D089597F99F6780E870E060E008952C -:105E10009F3F31F0915020F4879577956795B7951E -:105E2000880F911D9695879597F908959FEF80ECBF -:105E3000089500240A9416161706180609060895F0 -:105E400000240A9412161306140605060895092E56 -:105E50000394000C11F4882352F0BB0F40F4BF2BC5 -:105E600011F460FF04C06F5F7F4F8F4F9F4F089505 -:105E700057FD9058440F551F59F05F3F71F04795FB -:105E8000880F97FB991F61F09F3F79F087950895E0 -:105E9000121613061406551FF2CF4695F1DF08C0FF -:105EA000161617061806991FF1CF8695710561051C -:105EB00008940895E894BB2766277727CB0197F9C4 -:105EC00008957CDF08F48FEF08950BD0C0CFB1DFC9 -:105ED00028F0B6DF18F0952309F094CFA7CF11244E -:105EE000EACFC6DFA0F3959FD1F3950F50E0551F81 -:105EF000629FF001729FBB27F00DB11D639FAA271F -:105F0000F00DB11DAA1F649F6627B00DA11D661F6D -:105F1000829F2227B00DA11D621F739FB00DA11D8E -:105F2000621F839FA00D611D221F749F3327A00D48 -:105F3000611D231F849F600D211D822F762F6A2FE4 -:105F400011249F5750408AF0E1F088234AF0EE0F69 -:105F5000FF1FBB1F661F771F881F91505040A9F776 -:105F60009E3F510570F04ECFA6CF5F3FECF3983EB9 -:105F7000DCF3869577956795B795F795E7959F5FDD -:105F8000C1F7FE2B880F911D9695879597F9089577 -:105F9000FA01EE0FFF1F30962105310599F16115C9 -:105FA000710561F48038BFE39B0749F1689490382C -:105FB000810561F08038BFEF9B0741F0992342F5DE -:105FC000FF3FE1053105210511F1E8940894E795BB -:105FD000D901AA2329F4AB2FBE2FF85FD0F310C04C -:105FE000FF5F70F4A695E0F7F73950F019F0FF3A2B -:105FF00038F49F779F930CD00F9007FC905808952A -:106000003EF014CF60E070E080E89FE308954FE732 -:106010009F775F934F933F932F939ED02F913F9104 -:106020004F915F9152DF05C019F40EF0EBCE42CFD5 -:10603000FDCE26DFC8F39638C0F707F80F92E89434 -:106040002BE33AEA48EB5FE74EDF0F920F920F9295 -:106050004DB75EB70F92C0D0E8E2F1E016D04F9195 -:106060005F91EF91FF91E595EE1FFF1F49F0FE57FD -:10607000E0684427EE0F441FFA95E1F74195550B70 -:1060800032D00F9007FE26C00895DF93CF931F9361 -:106090000F93FF92EF92DF927B018C01689405C011 -:1060A000DA2EEF011EDFFE01E894A59125913591CE -:1060B00045915591AEF3EF0106DDFE019701A80170 -:1060C000DA9479F7DF90EF90FF900F911F91CF91C5 -:1060D000DF9108959B01AC0160E070E080E89FE3F0 -:1060E00049CD90CE95CECCDEE8F39923D9F3940F29 -:1060F000511DBBF39150504094F059F0882332F079 -:10610000660F771F881F91505040C1F79E3F510581 -:1061100044F7880F911D9695879597F908955F3FED -:10612000ACF0983E9CF0BB27869577956795B79520 -:1061300008F4B1609395C1F7BB0F58F711F460FFF5 -:10614000E8CF6F5F7F4F8F4F9F4FE3CFB4CE0EF0FE -:106150005FCE6CCE689456CE93DEC8F39923D1F30C -:10616000C6F3DF93CF931F930F93FF92C92FDD27C1 -:1061700088232AF02197660F771F881FDAF720E01F -:1061800030E040E85FEB9FE3883920F0803E30F05C -:1061900021968F7787DCE0E5F1E003C083DCEDE753 -:1061A000F1E073DF8B01BE01EC01FB2E6F5771092B -:1061B0007595771F880B990B78DD28E132E741E36D -:1061C0005FE38FDEAF2D9801AE01FF900F911F911D -:1061D000CF91DF9178DC3BCEFA01DC01AA0FBB1F27 -:1061E0009B01AC01BF5728F422273327442750785E -:1061F0001FC0B75188F4AB2F0024469537952795DB -:10620000011CA395D2F3002069F0220F331F441F15 -:10621000B395DAF30DD045CC61307105A0E88A075B -:10622000B94630F49B01AC01662777278827907820 -:10623000309621F020833183428353830895AA1B33 -:10624000BB1B51E107C0AA1FBB1FA617B70710F061 -:10625000A61BB70B881F991F5A95A9F78095909593 -:10626000BC01CD01089597FB072E16F4009407D0CA -:1062700077FD09D00E941F3107FC05D03EF49095B0 -:1062800081959F4F0895709561957F4F0895EE0F0A -:10629000FF1F0590F491E02D0994F999FECF92BD6E -:1062A00081BDF89A992780B50895A8E1B0E042E051 -:1062B00050E00C947531262FF999FECF92BD81BD27 -:1062C000F89A019700B4021639F01FBA20BD0FB634 -:1062D000F894FA9AF99A0FBE08950196272F0E9412 -:1062E0005C310C945B31DC01CB01FC01F999FECFF0 -:1062F00006C0F2BDE1BDF89A319600B40D9241504E -:0A6300005040B8F70895F894FFCF5D -:10630A0052D02445000000410000DC440000004156 -:10631A0052D0A4440000404100005C440000004107 -:10632A0048F17644000000415C978A44000000412D -:10633A001FD592440000004152D0A44400000041FD -:10634A005CFFB844000000410AA7CF4400000041A6 -:10635A000000DC44000000410AA7CF4400000041CD -:10636A000000DC4400000041000000000000804002 -:10637A0000005C4500004041000000000000804031 -:10638A0052D02445000040410AA7CF4400000041F2 -:10639A000000DC44000000410000000000008040D2 -:1063AA0052D0244500004041000000000000804017 -:1063BA0000005C45000040410AA7CF4400000041AC -:1063CA000000DC44000000410000000000008040A2 -:1063DA0052D02445000040410000000000008040E7 -:1063EA000AA74F45000040410AA7CF4400000041D8 -:1063FA000000DC4400000041000000000000804072 -:10640A0052D02445000000410000000000008040F6 -:10641A005CFF384500000041000000000000804099 -:10642A0052D02445000000410AA7CF440000004191 -:10643A000000DC4400000041000000000000804031 -:10644A0052D024450000804152D0244500004041EA -:10645A005C970A450000004152D0A4440000004164 -:10646A000000DC44000000415C970A450000A0419E -:10647A00640007000CFF0000003F64A31431150EEE -:10648A0015DA14A61401014F042808140A321E0052 -:10649A0002040507090B0C0E1011131517181A1C04 -:1064AA001D1F2123242628292B2D2F30323435373E -:1064BA00393B1F0F03764F5F6F7F4969437909594B -:1064CA0053633149803F5D8B803FF8BF803FCAE10B -:1064DA00803F73ED803FCAE1803FF8BF803F5D8B0C -:1064EA00803F3149803F0000803FF16D7F3F75EA70 -:1064FA007E3F4C827E3F833F7E3F84287E3F833FA0 -:10650A007E3F4C827E3F75EA7E3FF16D7F3F000001 -:10651A00803F404D3639FA09AD0977093E09D1085D -:10652A00EA0803091C090102030405060708090011 -:00000001FF diff --git a/keyboards/planck/keymaps/default/keymap.c b/keyboards/planck/keymaps/default/keymap.c index 3d6289817..4bca1b5ac 100644 --- a/keyboards/planck/keymaps/default/keymap.c +++ b/keyboards/planck/keymaps/default/keymap.c @@ -154,7 +154,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | |Voice-|Voice+|Mus on|Musoff| | | | | | | | + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' @@ -194,92 +194,92 @@ void persistant_default_layer_set(uint16_t default_layer) { const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - switch(id) { - case _QWERTY: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_qwerty, false, 0); - #endif - persistant_default_layer_set(1UL<<_QWERTY); - } - break; - case _COLEMAK: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_colemak, false, 0); - #endif - persistant_default_layer_set(1UL<<_COLEMAK); - } - break; - case _DVORAK: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_dvorak, false, 0); - #endif - persistant_default_layer_set(1UL<<_DVORAK); - } - break; - case _LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - break; - case _RAISE: - if (record->event.pressed) { - layer_on(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - break; - case M_BL: - if (record->event.pressed) { - register_code(KC_RSFT); - #ifdef BACKLIGHT_ENABLE - backlight_step(); - #endif - } else { - unregister_code(KC_RSFT); - } - break; - case 12: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - stop_all_notes(); - PLAY_NOTE_ARRAY(tone_plover, false, 0); - #endif - layer_off(_RAISE); - layer_off(_LOWER); - layer_off(_ADJUST); - layer_on(_PLOVER); - if (!eeconfig_is_enabled()) { - eeconfig_init(); - } - keymap_config.raw = eeconfig_read_keymap(); - keymap_config.nkro = 1; - eeconfig_update_keymap(keymap_config.raw); - } - break; - case 13: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_plover_gb, false, 0); - #endif - layer_off(_PLOVER); - } - break; - case 14: - if (record->event.pressed) { - return MACRO( D(E), D(R), D(F), D(V), D(O), D(L), U(E), U(R), U(F), U(V), U(O), U(L), END ); - } - break; + switch(id) { + case _QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_qwerty, false, 0); + #endif + persistant_default_layer_set(1UL<<_QWERTY); } - return MACRO_NONE; + break; + case _COLEMAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_colemak, false, 0); + #endif + persistant_default_layer_set(1UL<<_COLEMAK); + } + break; + case _DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_dvorak, false, 0); + #endif + persistant_default_layer_set(1UL<<_DVORAK); + } + break; + case _LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + break; + case _RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + break; + case M_BL: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + case 12: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + stop_all_notes(); + PLAY_NOTE_ARRAY(tone_plover, false, 0); + #endif + layer_off(_RAISE); + layer_off(_LOWER); + layer_off(_ADJUST); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + } + break; + case 13: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_plover_gb, false, 0); + #endif + layer_off(_PLOVER); + } + break; + case 14: + if (record->event.pressed) { + return MACRO( D(E), D(R), D(F), D(V), D(O), D(L), U(E), U(R), U(F), U(V), U(O), U(L), END ); + } + break; + } + return MACRO_NONE; }; void matrix_init_user(void) { diff --git a/keyboards/planck/keymaps/default/readme.md b/keyboards/planck/keymaps/default/readme.md new file mode 100644 index 000000000..de9680b49 --- /dev/null +++ b/keyboards/planck/keymaps/default/readme.md @@ -0,0 +1,2 @@ +# The Default Planck Layout + diff --git a/keyboards/planck/keymaps/dzobert/compiled.hex b/keyboards/planck/keymaps/dzobert/compiled.hex deleted file mode 100644 index cb3972bc0..000000000 --- a/keyboards/planck/keymaps/dzobert/compiled.hex +++ /dev/null @@ -1,1449 +0,0 @@ -:100000000C9496020C94DA020C94DA020C94DA0244 -:100010000C94DA020C94DA020C94DA020C94DA02F0 -:100020000C94DA020C94DA020C9478140C944A15AD -:100030000C94AC220C94DA020C94DA020C94DA02DE -:100040000C94DA020C943C030C94DA020C94DA025D -:100050000C94DA020C9414230C94DA020C94DA0255 -:100060000C94DA020C94DA020C94DA020C94DA02A0 -:100070000C94DA020C94DA020C94DA020C94DA0290 -:100080000C94ED0A0C94DA020C94DA020C94DA0265 -:100090000C94DA020C94DA020C94DA020C94DA0270 -:1000A0000C94DA020C94DA020C94DA02B715D91522 -:1000B000C716D915C7161E164116C7169616A916C5 -:1000C00093199319C219C219011A211A771B771BA8 -:1000D0002C1A771BDC1ADC1A431B4C1B771B711B79 -:1000E000E91AE91AE91AE91AE91AE91AE91AE91AF8 -:1000F000E91AE91AE91AE91AE91AE91AE91AE91AE8 -:10010000F91A071B0E1B151B1F1B07634236B79BF3 -:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 -:100120005763BD6DEDFD753EF6177231BF000000DF -:10013000803F08000000BE922449123EABAAAA2AC2 -:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD -:1001500000000000BF000000803F00000000000819 -:100160004178D3BB4387D1133D190E3CC3BD4282B6 -:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 -:10018000FFBE01C4FF7F3F00000000000000000030 -:1001900000000000000000010204060A0F17202CD6 -:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 -:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF -:1001C0000201000000000000000000000000F1A299 -:1001D000F1A3018C028C290014001A0008001500FC -:1001E00017001C0018000C00120013002B00E00088 -:1001F00004001600070009000A000B000D000E00A5 -:100200000F0033002A00E2001D001B000600190049 -:100210000500110010003600370038002800C40027 -:10022000E500E300E10002202C002C00012050003A -:10023000510052004F002B0014001A000900130057 -:100240000A000D000F0018001C0033002B002900CD -:10025000040015001600170007000B00110008002D -:100260000C0012002A00E2001D001B00060019000D -:1002700005000E0010003600370038002800C300CB -:10028000E500E300E10002202C002C0001205000DA -:10029000510052004F003A003B003C003D003E0040 -:1002A0003F0040004100420043004400450001007F -:1002B0001E001F0020002100220023002400250032 -:1002C00026004C000000010035002D002E003400F7 -:1002D00034022F0230022F003000310001000100F3 -:1002E00001000100010001000100010001204A009D -:1002F0004B004E004D00660046004700480053008A -:1003000074007600650024002500260054000100DA -:10031000AA00A900A80039009B007A0079002100FA -:10032000220023005500010049007B007C007D0075 -:100330003100260027001E001F002000560001008B -:10034000010001000100022001000100010027005E -:10035000630058005700280354006800650020001F -:1003600050006C0061006E0063006B0020004B00C9 -:100370006500790062006F00610072006400000097 -:100380002C034F007200740068006F006C0069005D -:100390006E0065006100720020004B00650079006E -:1003A00062006F00610072006400730000000403CB -:1003B000090409026D00040100A0FA09040000010B -:1003C00003010100092111010001223F00070581FD -:1003D0000308000A090401000103010200092111B8 -:1003E000010001224D000705820308000A090402EA -:1003F000000103000000092111010001223600075D -:1004000005830308000A0904030001030000000932 -:100410002111010001223900070584031000011297 -:1004200001100100000008EDFE6060010001020003 -:100430000105010906A101050719E029E7150025B5 -:1004400001950875018102050819012905950575B1 -:10045000019102950175039101050719002977158E -:10046000002501957875018102C005010980A1016F -:10047000850216010026B7001A01002AB700751080 -:1004800095018100C0050C0901A101850316010039 -:10049000269C021A01002A9C02751095018100C059 -:1004A00005010902A1010901A10005091901290598 -:1004B00015002501950575018102950175038101DE -:1004C0000501093009311581257F950275088106DE -:1004D00009381581257F950175088106050C0A38B4 -:1004E000021581257F950175088106C0C0050109A7 -:1004F00006A101050719E029E715002501950875F2 -:1005000001810295017508810105081901290595E8 -:1005100005750191029501750391010507190029DF -:10052000FF150025FF950675088100C011241FBE28 -:10053000CFEFDAE0DEBFCDBF04B603FE24C080916A -:100540001E0390911F03A0912003B09121038730D7 -:10055000904BA740B04BB9F410921E0310921F03AA -:10056000109220031092210314BE84B7877F84BFAA -:1005700088E10FB6F89480936000109260000FBE7F -:10058000E0E0F8E3099511E0A0E0B1E0E2EBF9E585 -:1005900002C005900D92A03CB107D9F713E0A0EC82 -:1005A000B1E001C01D92AE31B107E1F70E94BE116A -:1005B0000C94D72C0C9400000895089581E00895C0 -:1005C00008950C94DD020C94DE020C94E0020E946B -:1005D000A12823E030E0281B3109220F2093C40119 -:1005E0000895282F2F9880918000211108C0877FBF -:1005F0008093800010928D0010928C001BC0886048 -:1006000080938000233019F48FEF9FEF0FC083E0B9 -:1006100090E0821B9109880F991F2FEF3FEFA901EE -:1006200002C0569547958A95E2F7CA0190938D00CE -:1006300080938C000C94E7020E94E70284E0809390 -:10064000C3011092C0010895279A2F988FEF9FEF52 -:1006500090938700809386008AE08093800089E1F0 -:10066000809381000E940A280C941C030E9424039A -:100670006E9A769A0C94DC021F920F920FB60F922C -:1006800011242F933F938F939F93EF93FF93E091C8 -:10069000C101F091C201CF0101969093C2018093F4 -:1006A000C1010090C30102C0F695E7950A94E2F7F4 -:1006B000EF738091C001823019F4E03251F404C02C -:1006C000813039F4EF3329F480916F008D7F80936E -:1006D0006F00F0E0E457FE4FE49121E031E0E29F4B -:1006E000C001E39F900D11240090C40102C09695B3 -:1006F00087950A94E2F790938D0080938C00FF9188 -:10070000EF919F918F913F912F910F900FBE0F907E -:100710001F90189581E008950C948A0308950C9415 -:10072000360380911502882309F448C08091D101D5 -:100730009091D201009779F40E94DE229093D20129 -:100740008093D1018091D30190E0009771F4809162 -:10075000D40190E00AC00E94EA2220910001309169 -:1007600001012817390740F329C00197880F991F05 -:10077000880F991FFC01EB52FE4F608171818281CD -:1007800093810E94530AE091D30184E0E89FF00135 -:100790001124EB52FE4F60817181828193814FE081 -:1007A00050E00E940B0E8091D30190E00196609181 -:1007B000D40170E00E94872C8093D3010C94E10255 -:1007C000109217020C94200A0895089581E08093F6 -:1007D00017020C94E503089508958F929F92AF92AB -:1007E000BF92EF92FF920F931F93CF93DF93CDB7FA -:1007F000DEB7A3970FB6F894DEBF0FBECDBF7C0166 -:10080000FC0100811181C8010E94DB20B8010E9417 -:10081000F2058C01B7010E948C03882309F4CCC136 -:100820000032F0E51F0741F4F7018281882309F4C3 -:1008300058C00E946F0EC0C10132F0E51F0741F49D -:10084000F7018281882309F44CC00E94780EB4C15C -:100850000232F0E51F0751F4F7018281882309F481 -:1008600040C00E946B0E8111F0CFE3CF0332F0E560 -:100870001F0739F4F7018281882399F10E94E6036A -:100880009BC10432F0E51F0739F4F7018281882308 -:1008900041F10E94E00390C10532F0E51F0749F4E1 -:1008A000F70182818823E9F0809117028111F1CF4D -:1008B000E5CF0632F0E51F0739F4F701828188237E -:1008C00081F00E947F0E0AC00732F0E51F0749F44D -:1008D000F7018281882329F00E948A0E0E94EC038E -:1008E0006BC180911702811105C0F70182818111CE -:1008F000CFC018C1003E110579F4F7018281882329 -:1009000009F44DC00E94200A81E0809316021092E3 -:1009100015021092D40150C1023E110559F4F7019D -:1009200082818823E1F10E94200A1092160210921F -:10093000150242C1033E110591F4F701828188231B -:1009400071F10E94200A1092160281E08093150234 -:100950001092D3011092D2011092D1012DC1023513 -:10096000110559F4F7018281882309F425C180918A -:100970000001909101010A970DC00135110579F42C -:10098000F7018281882309F417C1809100019091B9 -:1009900001010A9690930101809300010DC14091DD -:1009A000040183E2EFE1F1E0DE01119601900D9286 -:1009B0008A95E1F7F701808121E030E02C0F3D1F9F -:1009C000280F311DC9012091020130910301FC0162 -:1009D000E20FF31F6081772767FD7095640F711D2B -:1009E000882777FD8095982F0E94A92920E030E084 -:1009F00040E451E40E940E294B015C01F701218182 -:100A000084E090E0821B9109BC01882777FD8095E6 -:100A1000982F0E94A9299B01AC01C501B4010E9435 -:100A2000A6289B01AC0160E070E080E090E40E94A9 -:100A30001C2B20E030E04CED50E40E94B92A4B0121 -:100A40005C01F70182818823D1F04FE050E0C501BD -:100A5000B4010E940B0E809116028823A1F08091B0 -:100A6000D40124E0829FF0011124EB52FE4F8082DA -:100A70009182A282B3828F5F8093D40104C0C501AA -:100A8000B4010E94530A0F3F110508F02ECF94C005 -:100A90008091D00181111FC0043130E5130709F0A6 -:100AA00051C00E948E0381E08093D0010E94DE221B -:100AB0009093CF018093CE011092C7011092C9018B -:100AC0001092C8011092CB011092CA011092CD0170 -:100AD0001092CC0171C08091CE019091CF010E9403 -:100AE000EA22883C910570F48091C701E82FF0E07C -:100AF000EE0FFF1FE853FE4F118300838F5F80933B -:100B0000C7015AC0043880E5180721F005381045A0 -:100B100001F13AC0F7018281882341F01092C501AA -:100B200082E01EC0043830E5130759F58091C501F5 -:100B3000811106C086E20E94371886E20E94FF18E3 -:100B400082E01CC00438F0E51F0741F3053810456A -:100B5000D9F4F7018281882331F01092C60180E236 -:100B60000E944E1929C08091C601811106C087E2FA -:100B70000E94371887E20E94FF1880E20E945519F0 -:100B80001BC00538104529F381E08093C50180938F -:100B9000C601C701A3960FB6F894DEBF0FBECDBF46 -:100BA000DF91CF911F910F91FF90EF90BF90AF9089 -:100BB0009F908F900C94E30280E0A3960FB6F89478 -:100BC000DEBF0FBECDBFDF91CF911F910F91FF9080 -:100BD000EF90BF90AF909F908F90089580E090E04D -:100BE000089508959CE0799FF001112490E3899F76 -:100BF000E00DF11D1124E60FF11DEE0FFF1FEA526B -:100C0000FE4F859194910895880F991FFC01E45B34 -:100C1000FF4F859194910895880F991FFC01E4532B -:100C2000FE4F8591949108950F931F93CF93DF9377 -:100C3000EC01811521E39207A0F5C11580E3D807E7 -:100C400008F0D7C0C83ED105D8F4C03ED10508F0A1 -:100C500007C2C83AD10578F4C53AD10508F06AC090 -:100C6000C130D10509F463C008F4F7C1C430D1051F -:100C700008F0F6C1F2C1CB3BD10508F466C0EDC166 -:100C8000C11590E2D90708F0AFC0C11521E0D20725 -:100C900008F0E6C1C03FD10508F4DFC18E01106540 -:100CA0001FC2C03880E5D80700F5C03790E5D907E6 -:100CB00008F0A3C0C11520E5D20709F4ACC050F478 -:100CC000CE01905480319F4008F0C7C1DF708E0183 -:100CD000106A06C2C13080E5D80709F4AEC0C4313D -:100CE00090E5D90708F4AFC0B8C1C33820E5D207F2 -:100CF00009F48EC050F4C13890E5D90709F482C0D8 -:100D000008F083C000E011EDEBC1C03181E5D807E8 -:100D100008F4A3C1C11597E5D90708F436C1CE017F -:100D200090578115904108F098C1DF7093C101E0A0 -:100D300010E0D6C1C53AD10509F494C1C63AD1052F -:100D400009F093C102E810E4CBC1C83AD10509F417 -:100D50008FC1C93AD10509F48EC1CA3AD10509F447 -:100D60008DC1CB3AD10509F48CC1CC3AD10509F437 -:100D70008BC1CD3AD10509F48AC1C03BD10509F434 -:100D800089C1CE3AD10509F488C1CF3AD10509F419 -:100D900087C1C13BD10509F486C1C23BD10509F425 -:100DA00085C1C33BD10509F484C1C43BD10509F415 -:100DB00083C1C53BD10509F482C1C63BD10509F405 -:100DC00081C1C73BD10509F480C1C83BD10509F4F5 -:100DD0007FC1C93BD10509F47EC1CA3BD10509F4E5 -:100DE0007DC100E014E47CC1CE019F700E940C061E -:100DF00078C1DD278E01106C73C1CF70DD278E01A5 -:100E0000146D6EC100E010ED6BC100E012ED68C121 -:100E100000E013ED65C10E94E21B0E94200A0E94BF -:100E2000E4038FEF94E32CE0815090402040E1F701 -:100E300000C000000E94392353C18091F2028160FA -:100E40008093F2024DC10E949A23811102C00E9438 -:100E500076230E94AD2390E090931D0380931C03A2 -:100E6000C23080E5D80721F480911C03816086C0E0 -:100E7000C43090E5D90721F480911C0382607EC0C4 -:100E8000C63020E5D20721F480911C03846076C02F -:100E9000C83080E5D80719F480911C0327C0CA30F8 -:100EA00090E5D90721F480911C03806167C0CC30A4 -:100EB00020E5D20721F480911C0380625FC0CE3010 -:100EC00080E5D80721F480911C03806457C0C031AD -:100ED00090E5D90721F480911C0380684FC0C2318E -:100EE00020E5D20729F480911C038460886046C005 -:100EF000C33080E5D80721F480911C038E7F3EC06B -:100F0000C53090E5D90721F480911C038D7F36C050 -:100F1000C73020E5D20721F480911C038B7F2EC0BF -:100F2000C93080E5D80719F480911C0326C0CB3066 -:100F300090E5D90721F480911C038F7E1FC0CD302E -:100F400020E5D20721F480911C038F7D17C0CF309C -:100F500080E5D80721F480911C038F7B0FC0C1313D -:100F600090E5D90721F480911C038F7707C0C33126 -:100F7000D04531F480911C038B7F877F80931C03C5 -:100F800080911C030E94B123ABC08D2F99278F70D5 -:100F9000992781309105D9F49E012370332702C02F -:100FA000880F991F2A95E2F79C688E0144E0000F94 -:100FB000111F4A95E1F700271370802B912B53E006 -:100FC000CC0FDD1F5A95E1F7C076DD272FC08230A8 -:100FD000910531F4DC2FCC278E01016F106A80C09F -:100FE0008330910569F4CE018370992701E010E008 -:100FF00002C0000F111F8A95E2F7C8019C680FC05C -:1010000084309105B9F4CE018370992701E010E096 -:1010100002C0000F111F8A95E2F7C8019A6823E009 -:10102000CC0FDD1F2A95E1F7C07ED7708C010C2B09 -:101030001D2B56C08530910531F4DC2FCC278E0155 -:10104000046F106A4DC0069709F04AC0CF71DD27C2 -:10105000DC2FCC278E01106243C000E010E040C0BE -:101060008E013EC001E810E43BC003E810E438C044 -:1010700002EE14E435C009EE14E432C00AEE14E4C2 -:101080002FC005EB14E42CC006EB14E429C007EBD9 -:1010900014E426C00CEC14E423C00DEC14E420C0CE -:1010A00003E815E41DC00AE815E41AC002E915E4D6 -:1010B00017C004E915E414C001E216E411C003E20C -:1010C00016E40EC004E216E40BC005E216E408C004 -:1010D00006E216E405C007E216E402C00AE216E4DE -:1010E000C801DF91CF911F910F9108959CE0799FE6 -:1010F000F001112490E3899FE00DF11D1124E60F0A -:10110000F11DEE0FFF1FEA52FE4F85919491803E34 -:101110009105E0F4803C910558F58133910509F47F -:101120006FC048F48932910509F463C08A32910591 -:1011300009F46DC072C089339105E9F082389105D8 -:10114000D1F08533910509F44DC067C0833E910508 -:1011500081F138F4803E9105B9F0823E9105D9F0D5 -:101160005CC0863E910561F1873E9105A1F155C0B5 -:101170000E940406089520911C0320FD02C021FF57 -:101180004CC080EE90E049C080911C0380FFF9CFF5 -:1011900089E390E042C080911C0382FF0EC08091E1 -:1011A0001C0384FF03C080E090E037C083EE90E032 -:1011B00034C080911C0382FFF2CF82EE90E02DC0FC -:1011C00080911C0383FF0BC080911C0384FDEBCF37 -:1011D00087EE90E022C080911C0383FFF5CF86EE5E -:1011E00090E01BC080911C0385FF07C089E290E05E -:1011F00014C080911C0385FFF9CF85E390E00DC0FA -:1012000080911C0386FF07C08AE290E006C08091AF -:101210001C0386FFF9CF81E390E00E941406089535 -:101220000C94E502E82FF0E0E25BFE4F8081E82FAE -:10123000EF70F0E082958F7021E030E0A90102C0EC -:10124000440F551F8A95E2F740A308950F931F930B -:10125000CF93DF9385B7806885BF85B7806885BFEA -:10126000C3E0D0E001E010E0FE01E25BFE4F8081D0 -:10127000E82FEF70F0E021A182958F70A80102C0E5 -:10128000440F551F8A95E2F7CA01822B81A38C2F48 -:101290000E941209219740F78BE090E061E070E036 -:1012A000FC01EE5BFE4F2081E22FEF70F0E042A1E7 -:1012B00022952F70DB0102C0AA0FBB1F2A95E2F70F -:1012C0009D01242B22A3019758F7DF91CF911F9105 -:1012D0000F910C948F03EF92FF920F931F93CF9374 -:1012E000DF9300E212E0C3E0EE24E394F12CD5E0BA -:1012F0008C2F0E9412098BE090E040E050E0FC014E -:10130000EE5BFE4F6081E62FEF70F0E020A130E051 -:1013100062956F7002C0359527956A95E2F720FDBA -:1013200009C09701082E02C0220F331F0A94E2F76A -:10133000422B532B019718F7F801929182918F015C -:101340008417950721F051834083D09305018C2F9A -:101350000E941209C15060F68091050187FD2CC0E2 -:101360008150809305018F3F39F08FE99FE001970D -:10137000F1F700C0000020C080911E0290911F0272 -:10138000909327028093260280911C0290911D0267 -:10139000909325028093240280911A0290911B025F -:1013A0009093230280932202809118029091190257 -:1013B00090932102809320020E94910381E0DF91AB -:1013C000CF911F910F91FF90EF900895E82FF0E0DB -:1013D000EE0FFF1FE05EFD4F80819181089508951B -:1013E0000F931F93CF9308E212E0C0E0F8019291AF -:1013F00082918F010E945622C80FF2E000321F072F -:10140000A9F78C2FCF911F910F9108950E949A23D5 -:10141000811102C00E9476230E94BF23809307039C -:101420003E9A809171008D7F8093710082E080935D -:1014300090008AE18093910081E080932A020895D0 -:1014400080912A02811102C00E94060A10927A023B -:1014500010927902809171008D7F8093710080914C -:1014600090008F738093900010923C0210923B0288 -:10147000109273021092740210927502109276020A -:101480001092720210927102E1E5F2E0A1E4B2E082 -:1014900011921192119211921D921D9282E0E137E8 -:1014A000F807B1F70895CF92DF92EF92FF920F9372 -:1014B0001F93CF93DF9320913B02222309F484C032 -:1014C0006B017C0180912A02811102C00E94060AF0 -:1014D00001E712E0C7E0D0E0A7019601F801929180 -:1014E0008291729162918F010E940A29811131C00B -:1014F000FE01EE0FFF1FEE0FFF1FEF5AFD4F108290 -:10150000118212821382DE01AA0FBB1FAF5BBD4F97 -:1015100011961C921E92C730D105E9F021964481A4 -:1015200055816681778140835183628373831482FE -:1015300015821682178212968D919C91139711969F -:101540009C938E9313961C921E9212973496129629 -:10155000E2CF219708F68091790290917A02019763 -:1015600097FD05C090937A028093790204C010928F -:101570007A02109279028091790290917A022091F8 -:101580007702309178022817390724F010927802F8 -:1015900010927702892BC1F4809171008D7F809326 -:1015A0007100809190008F7380939000109273026D -:1015B00010927402109275021092760210927202CA -:1015C0001092710210923B02DF91CF911F910F9107 -:1015D000FF90EF90DF90CF9008951F920F920FB67B -:1015E0000F9211244F925F926F927F928F929F92EF -:1015F000AF92BF92CF92DF92EF92FF922F933F93E1 -:101600004F935F936F937F938F939F93AF93BF930A -:10161000CF93DF93EF93FF9380913B02882309F4EC -:101620009BC1C0917902D0917A021C161D060CF064 -:1016300093C140902B0250902C0260902D0270902C -:101640002E0220E030E0A901C301B2010E94B52AB8 -:1016500018160CF065C0C130D10509F452C0809154 -:10166000770290917802BE010E94872C7C019093B2 -:1016700078028093770280903D0290903E02A09085 -:101680003F02B090400220E030E040E85FE3C50157 -:10169000B4010E94A62860933D0270933E0280939D -:1016A0003F0290934002F701EE0FFF1FEE0FFF1F66 -:1016B000EF5AFD4FA3019201608171818281938174 -:1016C0000E940E2920E030E040E05EE30E94B92A4B -:1016D0009B01AC01C501B4010E94B52A18168CF417 -:1016E000C7010196BE010E94872C909378028093D7 -:1016F000770210923D0210923E0210923F02109229 -:101700004002E0917702F0917802EE0FFF1FEE0F9A -:10171000FF1FEF5AFD4F6081718182819381D0C09C -:10172000C0907302D0907402E0907502F09076023F -:1017300020E030E0A901C701B6010E940A292197E3 -:10174000882309F4A2C0FE01EE0FFF1FEE0FFF1F5A -:10175000EF5AFD4F80809180A280B380A501940153 -:10176000C701B6010E940A2987FF31C0A501940173 -:1017700060E070E08CED93EC0E940E2920E030E0F8 -:1017800040E451E40E940E2920E030E040E05FE3B5 -:101790000E94B92A9B01AC0160E070E080E090E417 -:1017A0000E941C2B9B01AC01C501B4010E94B92A07 -:1017B0009B01AC01C701B6010E940A2987FF07C03F -:1017C000A701960160E070E08CED93E439C0A501BB -:1017D0009401C701B6010E94B52A18160CF055C035 -:1017E000A501940160E070E08CED93E40E940E2965 -:1017F00020E030E040E451E40E940E2920E030E097 -:1018000040E05FE30E94B92A9B01AC0160E070E018 -:1018100080E090E40E941C2B9B01AC01C501B40147 -:101820000E94B92A9B01AC01C701B6010E94B52AEA -:1018300018165CF5A701960160E070E08CED93EC62 -:101840000E940E2920E030E040E451E40E940E297D -:1018500020E030E040E05FE30E94B92A9B01AC0148 -:1018600060E070E080E090E40E941C2B9B01AC01E2 -:10187000C701B6010E94B92A609373027093740283 -:10188000809375029093760213C0FE01EE0FFF1F46 -:10189000EE0FFF1FEF5AFD4F80819181A281B3812E -:1018A0008093730290937402A0937502B0937602B2 -:1018B000609173027091740280917502909176022A -:1018C00020912802309129022F3F4FEF340731F049 -:1018D0002F5F3F4F30932902209328020E94950EDC -:1018E0006B017C0120E034E244EF51E40E940A29BC -:1018F00087FF08C086EFC82E88E2D82E84EFE82E36 -:1019000081E4F82E20E030E040E051E4C701B60168 -:101910000E94B92A9B01AC0160E074E284E79BE479 -:101920000E940E296B017C010E947B297093970015 -:1019300060939600209106013091070140910801C3 -:1019400050910901C701B6010E94B92A0E947B2962 -:10195000709399006093980080913C02882309F469 -:1019600033C1C0903702D0903802E0903902F09035 -:101970003A0220E030E0A901C701B6010E94B52A71 -:101980001816D4F580912802909129028F3F2FEFED -:10199000920729F001969093290280932802C701AB -:1019A000B6010E94950E20E030E040E051E40E9434 -:1019B000B92A9B01AC0160E074E284E79BE40E94D9 -:1019C0000E296B017C010E947B2970939700609324 -:1019D0009600209106013091070140910801509135 -:1019E0000901C701B6010E94B92A0E947B297093A0 -:1019F00099006093980008C010929700109296008A -:101A00001092990010929800609131027091320208 -:101A10006F5F7F4F70933202609331022091960086 -:101A20003091970080E090E0232BF1F0C091960078 -:101A3000D09197000E94A7296B017C01BE0180E034 -:101A400090E00E94A7299B01AC0160913302709144 -:101A5000340280913502909136020E940E2920E0D6 -:101A60003FEF4FE757E410C00E94A7296B017C01AC -:101A700020E030EE4FEF54E4609133027091340275 -:101A800080913502909136020E94B92A9B01AC01E7 -:101A9000C701B6010E94B52A87FD96C080912F022A -:101AA0008F5F80932F0290E0209103033091040315 -:101AB00082179307A0F080910E03882319F01092EB -:101AC0002F020DC0809171008D7F809371008091F5 -:101AD00090008F738093900010923C027DC08091A3 -:101AE0003002C0912F02811128C0C0900803D0900D -:101AF0000903E0900A03F0900B0320E030E0A90115 -:101B0000C701B6010E94B52A1816BCF481E0809383 -:101B1000300210923702109238021092390210925D -:101B20003A02C0923302D0923402E0923502F0922F -:101B30003602C150C0932F0243C01092300210925F -:101B4000290210922802E0910503F091060348E073 -:101B5000C49FE00DF11D112480819181A281B38188 -:101B60008093370290933802A0933902B0933A02DF -:101B700020E030E040E85EE36481758186819781F2 -:101B80000E94B92A6B017C0180910A01682F70E0E4 -:101B900080E090E00E94A72920E030E048EC52E489 -:101BA0000E940E299B01AC01C701B6010E94B92A0F -:101BB000609333027093340280933502909336021F -:101BC00010923202109231028091070380FD04C00E -:101BD00010923C0210923B02FF91EF91DF91CF9166 -:101BE000BF91AF919F918F917F916F915F914F9135 -:101BF0003F912F91FF90EF90DF90CF90BF90AF90EB -:101C00009F908F907F906F905F904F900F900FBE3E -:101C10000F901F901895CF92DF92EF92FF92CF9383 -:101C2000DF936B017C01EA0180912A02811102C0DD -:101C30000E94060A8091070380FF46C080917902C6 -:101C400090917A0208970CF03FC0809171008D7FCF -:101C50008093710080913C0281110E94200A81E0F2 -:101C600080933B02109229021092280220E030E07B -:101C7000A901C701B6010E94B52A1816DCF48091AB -:101C8000790290917A02FC01EE0FFF1FEE0FFF1F09 -:101C9000EF5AFD4FC082D182E282F382FC01EE0F47 -:101CA000FF1FEF5BFD4FD183C083019690937A02B3 -:101CB000809379028091710082608093710080919D -:101CC0009000806880939000DF91CF91FF90EF901B -:101CD000DF90CF90089580910703817008958091DF -:101CE00007038160809307030E94C3230C94EB03D6 -:101CF000809107038E7F809307030C94C323809108 -:101D00007B0290E0019666E070E00E94872C809351 -:101D10007B02089580917B0290E0019766E070E07D -:101D20000E94872C80937B0208958F929F92AF929E -:101D3000BF92CF92DF92EF92FF920F931F93CF93B8 -:101D4000DF936B017C01C0912802D0912902BE0172 -:101D500080E090E00E94A7294B015C01A701960159 -:101D600060E070E08CE594E40E940E299B01AC01D8 -:101D7000C501B4010E94B92A0E947B2920917B02EF -:101D8000233009F473C028F4222351F02130E9F004 -:101D90002CC1243009F4A0C0253009F4E0C025C1CD -:101DA00080E090E0A0E0BFE38093060190930701FC -:101DB000A0930801B093090110922B0210922C02FB -:101DC00010922D0210922E0210C110922B0210922E -:101DD0002C0210922D0210922E026431710540F4F3 -:101DE0006A30710560F520E030E040E85EE32BC02A -:101DF000693C710508F0AAC080E090E00E94A72924 -:101E000020E030E040EA51E40E94A52820E030E0E4 -:101E100044E353E40E940E299B01AC010E94B92ABD -:101E200020E030E040E05EE30E94B92A9B01AC0173 -:101E300060E070E080E09EE30E94A52844C020E0BE -:101E400030E040E05FE3C701B6010E94B92A6B01B0 -:101E50007C0180E090E0A0E0BEE3809306019093D7 -:101E60000701A0930801B0930901BFC010922B0293 -:101E700010922C0210922D0210922E024AE0469FE0 -:101E80009001479F300D1124C90168EB7BE00E944F -:101E9000732CBC016C5D754077FF03C07195619533 -:101EA0007109882777FD8095982F0E94A9292EE334 -:101EB00033EC4EE259E30E94B92A20E030E040ECD6 -:101EC0005EE30E94A6286093060170930701809349 -:101ED00008019093090189C010922B0210922C02E4 -:101EE00010922D0210922E02CE0183709927892B19 -:101EF000E1F0BE016170772780E090E00E94A729A1 -:101F000020E030E040E05EE30E94B92A20E030E0CB -:101F100040E45FE30E94A6286093060170930701E6 -:101F200080930801909309010CC080E090E0A0E04C -:101F3000BFE38093060190930701A0930801B0933B -:101F40000901C770DD27CD2B09F04FC010920601A3 -:101F500010920701109208011092090146C01092D8 -:101F60002B0210922C0210922D0210922E0200E0F1 -:101F700010E020E03FE30093060110930701209357 -:101F80000801309309016739710578F180E090E02C -:101F90000E94A72920E030E047E153E40E94A528F1 -:101FA00020E030E04AE754E40E940E2920E030E0CF -:101FB00048E452E40E94B92A20E030E040EA51E4CB -:101FC0000E94EB290E947629660F771F660F771F04 -:101FD000FB01EE5AFE4F2081318142815381C701BE -:101FE000B6010E94B92A6B017C01C701B601DF91DD -:101FF000CF911F910F91FF90EF90DF90CF90BF9006 -:10200000AF909F908F90089580918C020895CF9308 -:10201000DF9300D01F92CDB7DEB79C0180911303F0 -:10202000843019F593E099833B832A839093E900E8 -:102030008FEF9091E800815095FD06C095ED9A953F -:10204000F1F700008111F5CF8091E80085FF0DC008 -:1020500040E050E063E070E0CE0101960E9468121B -:102060008091E8008E778093E8000F900F900F909A -:10207000DF91CF910895CF93DF9300D01F92CDB71A -:10208000DEB720911303243021F522E029839B83BE -:102090008A8383E08093E9008FEF9091E80081507C -:1020A00095FD06C095ED9A95F1F700008111F5CFE9 -:1020B0008091E80085FF0DC040E050E063E070E0F3 -:1020C000CE0101960E9468128091E8008E7780937D -:1020D000E8000F900F900F90DF91CF91089520911D -:1020E00013032430F1F422E02093E9002FEF309124 -:1020F000E800215035FD06C035ED3A95F1F70000B6 -:102100002111F5CF2091E80025FF0BC040E050E001 -:1021100065E070E00E9468128091E8008E778093FD -:10212000E8000895CF93DF93EC019091130394306E -:1021300009F046C0809115018823D9F080911601DD -:102140008823B9F09093E9008FEF9091E8008150D7 -:1021500095FD06C095E19A95F1F700008111F5CF44 -:102160008091E80085FF2CC040E050E060E170E025 -:1021700017C081E08093E9008FEF9091E8008150D3 -:1021800095FD06C095ED9A95F1F700008111F5CF08 -:102190008091E80085FF14C040E050E068E070E006 -:1021A000CE010E9468128091E8008E778093E8004B -:1021B00080E1FE01ACE7B2E001900D928A95E1F773 -:1021C000DF91CF91089580911203811109C00E947F -:1021D000FD130E945A148091E20084608093E20013 -:1021E0000895109212030895089508950C94A12261 -:1021F00042E061EC81E00E94771342E061EC82E012 -:102200000E94771342E061EC83E00E94771342E181 -:1022100061EC84E00C94771380911503833009F40A -:1022200055C030F4813071F0823009F48EC00895C9 -:102230008A3009F47AC08B3009F460C0893009F023 -:102240009CC020C080911403813A09F096C080910F -:10225000E800877F8093E80080911803909119032C -:10226000892B21F460E18CE792E003C060E080E01C -:1022700090E070E00E94B3128091E8008B77809329 -:10228000E800089580911403813209F076C08091AE -:10229000180390911903009719F0039709F06DC086 -:1022A0008091E800877F8093E8008091E80082FDBC -:1022B00005C0809113038111F8CF5FC08091F100B8 -:1022C00080938C028091E8008B7753C08091140337 -:1022D000813A09F052C08091180390911903892B1B -:1022E00009F04BC08091E800877F8093E8008091DF -:1022F000E80080FFFCCF8091150136C08091140367 -:102300008132D9F58091180390911903892BA9F591 -:102310008091E800877F8093E8000E94AC13809151 -:102320001603809315010C94E21B809114038132F3 -:1023300021F58091E800877F8093E8000E94AC132C -:102340008091170380938D02089580911403813A40 -:10235000A1F48091E800877F8093E8008091E800F5 -:1023600080FFFCCF80918D028093F1008091E80086 -:102370008E778093E8000C94AC13089584B7877F20 -:1023800084BF88E10FB6F8948093600010926000DB -:102390000FBE90E080E80FB6F894809361009093B0 -:1023A00061000FBE0E944F170E94FD130E945A1435 -:1023B0008091E20084608093E20078940E94E016AD -:1023C0000E9451178BE091E00E94FB16809113034D -:1023D000853069F40E946222809111038823B1F351 -:1023E0000E949022882391F30E945212EFCF0E9404 -:1023F0005917ECCF292F332723303105C9F064F466 -:102400002130310581F02230310509F043C08DE6DD -:1024100090E022EB33E042C021323105F1F022326C -:10242000310541F137C082E190E02FE134E036C060 -:1024300099278130910541F08230910541F0892B37 -:1024400049F5EEEAF3E005C0E0E8F3E002C0E6E5B6 -:10245000F3E0849190E09F0121C06430D8F4E62F2E -:10246000F0E0EE0FFF1FE255FE4F2081318189E041 -:1024700090E014C0643070F470E0FB01EE0FFF1FB9 -:10248000EA55FE4F20813181FB01EE55FE4F8081E0 -:1024900090E004C080E090E020E030E0FA01318379 -:1024A0002083089580E189BD82E189BD09B400FEE1 -:1024B000FDCF8091D8008F7D8093D8008091E0007F -:1024C00082608093E0008091E00081FDFCCF089560 -:1024D000CF92DF92EF92FF920F931F93CF93DF93F0 -:1024E000EC018B016A010E94CB13811133C0C1142E -:1024F000D10439F0F60180819181081B190BC80FB6 -:10250000D91FE12CF12C0115110519F18091E8007A -:1025100085FD16C08091E8008E778093E800C11495 -:10252000D10449F0F60180819181E80EF91EF18213 -:10253000E08285E00FC00E94CB13882321F30AC0FC -:1025400089918093F10001501109FFEFEF1AFF0A02 -:10255000DACF80E0DF91CF911F910F91FF90EF9044 -:10256000DF90CF90089520911A0330911B03261716 -:10257000370748F06115710539F42091E8002E778E -:102580002093E80001C0B90140E061157105A9F18F -:1025900020911303222309F443C0253009F442C0DB -:1025A0002091E80023FD40C02091E80022FD32C0C8 -:1025B0002091E80020FFE9CF4091F3002091F20044 -:1025C00030E0342BFC01CF016115710559F0283042 -:1025D000310540F481918093F100615071092F5FC2 -:1025E0003F4FF1CF41E02830310509F040E0209124 -:1025F000E8002E772093E800C8CF4111C9CF0AC068 -:1026000080911303882361F0853061F08091E800A8 -:1026100083FD0AC08091E80082FFF2CF80E0089538 -:1026200082E0089583E0089581E0089520911A03DF -:1026300030911B032617370748F06115710539F4EF -:102640002091E8002E772093E80001C0B901FC0139 -:1026500020E06115710591F180911303882309F43D -:1026600040C0853009F43FC08091E80083FD3DC043 -:102670008091E80082FD2FC08091E80080FFE9CFC3 -:102680002091F3008091F20090E0922B611571058A -:1026900059F08830910540F424912093F10031964F -:1026A000615071090196F2CF21E0089709F020E00E -:1026B0008091E8008E778093E800CBCF2111CCCFBA -:1026C0000AC080911303882361F0853061F0809106 -:1026D000E80083FD0AC08091E80082FFF2CF80E02D -:1026E000089582E0089583E0089581E00895982F89 -:1026F000973058F59093E900981739F07091EC00F5 -:102700002091ED005091F00003C0242F762F50E06F -:1027100021FF19C03091EB003E7F3093EB003091E8 -:10272000ED003D7F3093ED003091EB003160309350 -:10273000EB007093EC002093ED005093F00020919B -:10274000EE0027FF07C09F5FD3CF8F708093E90013 -:1027500081E0089580E008958091140387FF11C0FF -:102760008091E80082FD05C0809113038111F8CFAC -:1027700011C08091E8008B770BC0809113038823F0 -:1027800049F08091E80080FFF8CF8091E8008E77D3 -:102790008093E80008952091E4003091E50095E6EB -:1027A0004091EC00842F817040FF22C08091E800AE -:1027B00080FD1CC080911303882391F0853091F037 -:1027C0008091EB0085FD10C04091E4005091E50040 -:1027D0004217530729F39A01915011F784E00895A5 -:1027E00082E0089583E0089581E0089580E00895EF -:1027F0004091E80042FFDECF08950E946B140E94D2 -:102800007314E0EEF0E0808181608083E8EDF0E019 -:1028100080818F77808319BCA7EDB0E08C918E7F8B -:102820008C9380818F7E80831092120308950F9382 -:102830001F93CF93DF930E946B140E947314C8ED13 -:10284000D0E088818F7788838881806888838881B9 -:102850008F7D888319BC1092130310920F0310927E -:1028600011031092100300EE10E0F80180818B7FBD -:10287000808388818160888342E060E080E00E94FC -:102880007713E1EEF0E080818E7F8083E2EEF0E06E -:10289000808181608083808188608083F80180816D -:1028A0008E7F8083888180618883DF91CF911F91A3 -:1028B0000F910895E8EDF0E080818F7E8083E7ED51 -:1028C000F0E080818160808384E082BF81E080933A -:1028D00012030C941714E8EDF0E080818E7F808362 -:1028E0001092E20008951092DA001092E10008952B -:1028F0001F920F920FB60F9211242F933F934F9375 -:102900005F936F937F938F939F93AF93BF93EF9357 -:10291000FF938091E10082FF0BC08091E20082FF73 -:1029200007C08091E1008B7F8093E1000E94DF1659 -:102930008091DA0080FF1FC08091D80080FF1BC00B -:102940008091DA008E7F8093DA008091D90080FF39 -:102950000DC080E189BD82E189BD09B400FEFDCFD3 -:1029600081E0809313030E94E31005C019BC10920C -:1029700013030E94F1108091E10080FF19C0809143 -:10298000E20080FF15C08091E2008E7F8093E2001C -:102990008091E20080618093E2008091D8008062A3 -:1029A0008093D80019BC85E0809313030E94F51032 -:1029B0008091E10084FF30C08091E20084FF2CC050 -:1029C00080E189BD82E189BD09B400FEFDCF80911F -:1029D000D8008F7D8093D8008091E1008F7E809316 -:1029E000E1008091E2008F7E8093E2008091E2001E -:1029F00081608093E20080910F03882311F084E0CE -:102A000007C08091E30087FD02C081E001C083E040 -:102A1000809313030E94F6108091E10083FF29C088 -:102A20008091E20083FF25C08091E100877F809341 -:102A3000E10082E08093130310920F038091E10084 -:102A40008E7F8093E1008091E2008E7F8093E20090 -:102A50008091E20080618093E20042E060E080E0EB -:102A60000E9477138091F00088608093F0000E94AC -:102A7000F410FF91EF91BF91AF919F918F917F9152 -:102A80006F915F914F913F912F910F900FBE0F90DB -:102A90001F9018951F920F920FB60F9211242F932B -:102AA0003F934F935F936F937F938F939F93AF93D6 -:102AB000BF93CF93DF93EF93FF93C091E900CF7063 -:102AC0008091EC00D82FD17080FDD0E81092E90001 -:102AD0008091F000877F8093F00078940E948E159B -:102AE0001092E9008091F00088608093F000CD2B77 -:102AF000CF70C093E900FF91EF91DF91CF91BF912B -:102B0000AF919F918F917F916F915F914F913F9185 -:102B10002F910F900FBE0F901F9018951F93CF937A -:102B2000DF93CDB7DEB7AA970FB6F894DEBF0FBE1E -:102B3000CDBFE4E1F3E088E08E0F9091F100919336 -:102B40008E13FBCF0E940C118091E80083FF1FC100 -:102B50008091140390911503492F50E04A3051059C -:102B600008F015C1FA01EA5AFF4F0C949B2C8038EB -:102B700081F0823809F00BC1809118038F70809327 -:102B8000E9008091EB0085FB882780F91092E9002D -:102B900006C0809110039091110391118260909171 -:102BA000E800977F9093E8008093F1001092F10085 -:102BB000C8C0282F2D7F09F0EAC0882319F0823081 -:102BC00061F0E5C080911603813009F0E0C09330D8 -:102BD00009F080E0809311032BC0809116038111CE -:102BE00027C0809118038F7009F4D1C08093E90049 -:102BF0002091EB0020FF1CC0933021F48091EB006A -:102C0000806214C09091EB0090619093EB0021E002 -:102C100030E0A90102C0440F551F8A95E2F74093A6 -:102C2000EA001092EA008091EB0088608093EB004C -:102C30001092E9008091E800877F86C08111A7C0CB -:102C4000109116031F778091E3008078812B809389 -:102C5000E3008091E800877F8093E8000E94AC1336 -:102C60008091E80080FFFCCF8091E3008068809332 -:102C7000E300111102C082E001C083E080931303DE -:102C800086C08058823008F082C0809116039091EF -:102C900017038C3D53E0950779F583E08A838AE238 -:102CA00089834FB7F894DE01139620E03EE051E2AD -:102CB000E32FF0E050935700E49120FF03C0E2952A -:102CC000EF703F5FEF708E2F90E0EA3010F0C79604 -:102CD00001C0C0968D939D932F5F243149F74FBF5C -:102CE0008091E800877F8093E8006AE270E0CE017F -:102CF00001960E94B31214C0AE014F5F5F4F609106 -:102D000018030E94FA11BC01009709F440C0909189 -:102D1000E800977F9093E80089819A810E941613BA -:102D20008091E8008B778093E80031C0803879F596 -:102D30008091E800877F8093E80080910F03809363 -:102D4000F1008091E8008E778093E8000E94AC1338 -:102D50001EC081111CC0909116039230C0F4809166 -:102D6000E800877F8093E80090930F030E94AC13E4 -:102D700080910F03811106C08091E30087FD02C09E -:102D800081E001C084E0809313030E94F8108091D9 -:102D9000E80083FF0AC08091E800877F8093E80005 -:102DA0008091EB0080628093EB00AA960FB6F894B6 -:102DB000DEBF0FBECDBFDF91CF911F910895089563 -:102DC000CF93809113038823A1F0C091E900CF70C5 -:102DD0009091EC00892F817090FD80E8C82B1092B3 -:102DE000E9008091E80083FD0E948E15CF70C093AA -:102DF000E900CF91089590939302809392020895F1 -:102E0000E0919202F0919302309721F00190F081CD -:102E1000E02D099480E00895E0919202F0919302F0 -:102E2000309721F00280F381E02D09940895E0911C -:102E30009202F0919302309721F00480F581E02D09 -:102E4000099408952091900230919102821793077E -:102E500071F09093910280939002E0919202F09130 -:102E60009302309721F00680F781E02D09940895B0 -:102E700020918E0230918F028217930771F0909308 -:102E80008F0280938E02E0919202F091930230972C -:102E900021F00084F185E02D0994089508950C94A3 -:102EA0004E170E94D5220E9426090E945B230C9493 -:102EB0000A285F926F927F928F929F92AF92BF92F9 -:102EC000CF92DF92EF92FF920F931F93CF93DF93F6 -:102ED00000D000D01F92CDB7DEB70E946B099DE9EC -:102EE000C92E92E0D92E03E010E0AA24A394B12CBD -:102EF000502E802F0E94E6094C01F60172906290DC -:102F00006F016826792661147104A1F4015011093A -:102F100078F78FEF89838A831B820E94DE2281608B -:102F2000782F9D838C8349815A816B818D810E948A -:102F3000091838C08091F20281FD0E94EF092BE050 -:102F400030E07501022E02C0EE0CFF1C0A94E2F77D -:102F5000C70186219721892B09F129835A828E2066 -:102F60009F2091E0892809F490E09B830E94DE2253 -:102F70008160782F9D838C8349815A816B818D81FB -:102F80000E940918000F111FF801EB56FD4F8081B8 -:102F90009181E826F926F182E08204C021503109AE -:102FA00080F6B4CF0E944225109194020E9400172F -:102FB0001817D1F00E940017809394020F900F9081 -:102FC0000F900F900F90DF91CF911F910F91FF9075 -:102FD000EF90DF90CF90BF90AF909F908F907F90B9 -:102FE0006F905F900C9410090F900F900F900F90BE -:102FF0000F90DF91CF911F910F91FF90EF90DF9095 -:10300000CF90BF90AF909F908F907F906F905F9088 -:103010000895CF93DF93CDB7DEB72B970FB6F89413 -:10302000DEBF0FBECDBF4F83588769877A878B87F6 -:10303000DE01119686E0FD0111928A95E9F785E09F -:10304000FE01379601900D928A95E1F749815A81E8 -:103050006B817C818D819E810E94801E2B960FB694 -:10306000F894DEBF0FBECDBFDF91CF910895CF930F -:10307000882309F4C2C0C82F823859F40E9400176F -:1030800081FDBBC089E30E945A210E94272289E367 -:103090000CC0833879F40E94001780FDAEC083E530 -:1030A0000E945A210E94272283E50E949C21CF91F1 -:1030B0000C942722843859F40E94001782FD9DC089 -:1030C00087E40E945A210E94272287E4EECF8CEFEA -:1030D0008C0F813A48F48C2F0E94722781118DC089 -:1030E0008C2F0E945A21E3CF80E28C0F883048F465 -:1030F000C77081E001C0880FCA95EAF70E94E021FD -:10310000D6CF8BE58C0F833078F4C53A29F0C63AD8 -:1031100031F083E890E005C081E890E002C082E8E9 -:1031200090E0CF910C94221788E58C0F833108F042 -:1031300064C0C83A39F1C93A41F1CA3A49F1CB3AC7 -:1031400051F1CC3A59F1CD3A61F1C03B69F1CE3A37 -:1031500071F1CF3A79F1C13B81F1C23B89F1C33BB7 -:1031600091F1C43B99F1C53BA1F1C63BA9F1C73B25 -:10317000B1F1C83BB9F1C93BC1F1CA3BC9F180E02B -:1031800090E038C082EE90E035C089EE90E032C029 -:103190008AEE90E02FC085EB90E02CC086EB90E0AB -:1031A00029C087EB90E026C08CEC90E023C08DEC2A -:1031B00090E020C083E891E01DC08AE891E01AC049 -:1031C00082E991E017C084E991E014C081E292E0C5 -:1031D00011C083E292E00EC084E292E00BC085E26F -:1031E00092E008C086E292E005C087E292E002C069 -:1031F0008AE292E0CF910C943817CF9108958823FA -:1032000009F44BC0823859F40E94001781FF45C071 -:1032100089E30E945A210E94272289E30CC0833847 -:1032200071F40E94001780FF38C083E50E945A2184 -:103230000E94272283E50E949C210C942722843837 -:1032400059F40E94001782FF28C087E40E945A2187 -:103250000E94272287E4EFCF9CEF980F913A58F312 -:1032600090E2980F983050F4877091E001C0990F68 -:103270008A95EAF7892F0E94E621DFCF9BE5980F18 -:10328000933020F480E090E00C942217885A833128 -:1032900020F480E090E00C9438170895882321F002 -:1032A0000E94E0210C9427220895882321F00E9497 -:1032B000E6210C94272208957F928F929F92AF92DD -:1032C000BF92CF92DF92EF92FF920F931F93CF9313 -:1032D000DF931F92CDB7DEB77C01C62E772EFC019F -:1032E000058102950F70128111110E94FD210E942B -:1032F0005321882379F0112369F080E28C0D883006 -:1033000048F082E00E943C210E94532191E0D82E97 -:10331000D92601C0D12CE72DE295EF70F0E0E05AFC -:10332000FF4F0C949B2C872D807F072D0F708823D7 -:1033300011F00295007F112389F0002309F499C14F -:1033400080E28C0D883020F4802F0E94E02103C0A1 -:10335000802F0E94F0210E9427228BC18C2D0E9479 -:10336000FF18002309F4C3C180E28C0D883020F4DB -:10337000802F0E94E62103C0802F0E94F6210E9428 -:103380002722B5C1872D807F972D9F70803211F441 -:10339000892F03C0892F8295807FCC2021F0F1E016 -:1033A000CF16A1F01DC0112339F0002319F101300F -:1033B00009F50E9410229BC1002319F0013009F485 -:1033C00096C189830E941322898110C1112321F0A3 -:1033D000063008F08CC10EC0053008F088C106C167 -:1033E000112359F0002331F0F701958190FF41C17D -:1033F0009F7095830E944E197AC1002309F4F6C08C -:103400003EC1872D86958695837090E0009719F0D0 -:10341000019761F06CC1112321F08C2D972D9370D1 -:1034200002C080E090E00E94221761C1112321F0C8 -:103430008C2D972D937002C080E090E00E94381789 -:1034400056C18C2D112319F00E944A2402C00E94FB -:10345000B2240E9437254BC1872D837009F052C0DA -:10346000111145C18C2D829586958770880F880F24 -:103470009C2D9F70892E912CA12CB12C082E04C05C -:10348000880C991CAA1CBB1C0A94D2F7C4FE14C059 -:103490000FE010E020E030E0B901A80104C0440FC3 -:1034A000551F661F771F8A95D2F7CB01BA01609529 -:1034B00070958095909503C060E070E0CB01272D5A -:1034C00026952695237030E02230310569F02330AF -:1034D000310589F0682979298A299B29213031050C -:1034E00071F00E94C81F03C1682979298A299B2984 -:1034F0000E94E41FFCC00E94C81FC501B4010E94C5 -:10350000AC1FF5C0112319F0872D817001C086957D -:10351000882309F4ECC08C2D829586958770880FDE -:10352000880F9C2D9F70892E912CA12CB12C082ED8 -:1035300004C0880C991CAA1CBB1C0A94D2F7C4FEB8 -:1035400014C00FE010E020E030E0B901A80104C091 -:10355000440F551F661F771F8A95D2F7CB01BA011A -:10356000609570958095909503C060E070E0CB0108 -:10357000272D269526952370422F50E04230510585 -:1035800069F04330510589F0682979298A299B29F6 -:103590004130510571F00E94A220A9C06829792903 -:1035A0008A299B290E94BE20A2C00E94A220C50198 -:1035B000B4010E9486209BC08C2D90E0FC01E05E4F -:1035C000F109E531F10508F050C0E059FF4F0C94C6 -:1035D0009B2C0C2D0F70872D8F71112321F00E94D1 -:1035E0001F20802F07CF0E944020802F0E94551956 -:1035F0007EC0112341F0053008F079C0872D8F710E -:103600000E94652074C0063008F071C0F7CF112306 -:1036100039F0872D8F710E941F2069C01123C9F3D3 -:10362000872D8F710E94402062C0112329F0872DC1 -:103630008F710E940A205BC00E94002058C0112395 -:1036400051F0172D1F71812F0E941F2063E0812FE1 -:103650000E9433214CC081E00E943C21023008F4DA -:1036600046C082E00E943C2142C0112331F0002379 -:1036700081F28C2D0E9437183AC0002389F28C2DDC -:103680000E94FF1834C0472D4F706C2DC7010E9457 -:10369000EE050E94241F2BC0111129C0472D4F7029 -:1036A00050E042305105B9F04CF44115510581F01C -:1036B00041305105E1F40E94322819C043305105D0 -:1036C00069F04430510599F48C2D0E9484280FC074 -:1036D0000E941B280CC00E944E2809C00E9461282D -:1036E00006C0472D4F706C2DC7010E94F105DD20EB -:1036F000F9F00E942F2180FD1BC0F70112820E9469 -:1037000029210E941F20C7010E94A71B0E94292176 -:103710000F90DF91CF911F910F91FF90EF90DF906D -:10372000CF90BF90AF909F908F907F900C9440204F -:103730000F90DF91CF911F910F91FF90EF90DF904D -:10374000CF90BF90AF909F908F907F9008950F93F0 -:103750001F93CF93DF93EC01888199812B813C816A -:10376000232BB9F09F3F11F48F3F99F0CE010E94B7 -:10377000ED03882371F0688179818A810E94252177 -:103780008C010E94DA200E94A11FB801CE010E9484 -:103790005C19DF91CF911F910F9108950E94FD2137 -:1037A0000E940D220E94D2210E9427220E94E82519 -:1037B0000E94372580E090E00E94221780E090E090 -:1037C0000C9438170E94ED210C94CE1B0E941A21F4 -:1037D000292F22952F7030E02C3031054CF42A30FF -:1037E00031056CF42250310922303105A8F407C0AC -:1037F0002C30310569F02F30310551F00DC0803F7C -:1038000069F018F4803E40F409C0843F29F406C0F2 -:1038100093FB882780F9089580E0089581E008955A -:10382000CF93DF9300D000D01F92CDB7DEB70F90BB -:103830000F900F900F900F90DF91CF910895CF933D -:10384000DF9300D000D000D0CDB7DEB726960FB6FC -:10385000F894DEBF0FBECDBFDF91CF9108951F93C7 -:10386000CF93DF93C0919D0216E080919E02C8170E -:1038700099F0D0E01C9FF0011D9FF00D1124E1563E -:10388000FD4F4081518162817381848195810E94C5 -:103890001F1C2196C770E9CFDF91CF911F9108952A -:1038A0004091CF025091D0026091D1027091D2022A -:1038B0008091D3029091D4020C941F1C8091D40269 -:1038C00082958F7009F054C08091D102882309F449 -:1038D0004FC080919D02A0919E026091CF02709195 -:1038E000D0024091D2025091D302B6E08A1709F477 -:1038F0003FC090E041155105C1F17F3F11F46F3F8A -:10390000A1F1B89FF001B99FF00D1124E156FD4FD0 -:10391000218172132AC02081621327C022812111C4 -:1039200024C0238134812417350710F42150310934 -:10393000241B350B283C3105C0F42091D4022F7094 -:1039400020612093D40226E0289FF001299FF00DEA -:103950001124EC55FD4F80818F70806180838FEC46 -:1039600092E00E94A71B0C942F1C01968770BECF7B -:103970000895CF92DF92EF92FF920F931F93CF9310 -:10398000DF93CDB7DEB762970FB6F894DEBF0FBEF8 -:10399000CDBF8C0185E0F801DE011D9601900D92EE -:1039A0008A95E1F7D8014C9111965C911197129686 -:1039B0006C9112971396CD90DC9014973091CF02B2 -:1039C0007091D0028091D2029091D302009709F4B5 -:1039D0006BC17F3F19F43F3F09F466C1E090D1020B -:1039E000EE2009F4C0C02091D402C816D90628F0F0 -:1039F000F601E81BF90BCF0104C0809590958C0D62 -:103A00009D1DFF24F394883C910578F0F12C207FD4 -:103A100009F0C6C07C2DD98AC88A89890E94101CE9 -:103A20008FEC92E00E94A71BB1C0822F807F09F02B -:103A300046C0751314C0341312C0611110C02F702A -:103A400020612093D4020E94501C8FEC92E00E94CF -:103A5000A71B8091D402D80115968C932EC0CD2837 -:103A600019F15F3F11F44F3FF9F0F62E61111CC0C0 -:103A700080919D0220919E0236E0821709F45AC07F -:103A800090E0389FF001399FF00D1124E156FD4F71 -:103A90007181571306C07081471303C07281711181 -:103AA00003C001968770E9CFF62E662309F418C18A -:103AB0008091D40281608093D402F12C11C17513DE -:103AC00008C0341306C0611104C08091D402D8012B -:103AD000C3C04D875E878D859E856A8B0E94E61BDD -:103AE0006A898823E1F16623D1F12091D402822FE3 -:103AF00082958F7090E0029774F08091CF02909140 -:103B0000D00298878F831986DB86CA862C87CE01E0 -:103B100007960E94A71B86E0F801AFECB2E0019087 -:103B20000D928A95E1F70E945E1C0E94501CFF24B2 -:103B3000F394D6C04D875E878D859E850E941A219D -:103B4000292F22952F7030E0223031050CF0BCC0B7 -:103B50009F7009F0B6C0805E883008F4C1C0C8010B -:103B60000E94A71BE4CFC816D90608F453C0F6017B -:103B7000E81BF90BCF01883C910508F450C0F12CEB -:103B80007C2DD98AC88A89890E94101CEFECF2E04A -:103B900086E0DF011D928A95E9F70E94501CA0C0C3 -:103BA000751314C0341312C0611110C08091D40277 -:103BB000F8018583C8010E94A71B86E0EFECF2E0C4 -:103BC000DF011D928A95E9F7FE2C8AC04D875E873A -:103BD0008D859E856A8B0E94E61B6A89882309F47D -:103BE000BECF662309F4BBCF2091D402822F8295E9 -:103BF0008F7090E002970CF48ECF8091CF0290915D -:103C0000D0029A8389831B82DD82CC822E83CE01EF -:103C100001967FCF809590958C0D9D1DACCFF62E93 -:103C2000662309F49CCF75132EC034132CC0209149 -:103C3000D40220FD1FC0822F82958F70D9F0D80149 -:103C400015962C9315978F3049F08F5F982F92958A -:103C5000907F822F8F70892B15968C93C8010E94BC -:103C6000A71B86E0F801AFECB2E001900D928A95B7 -:103C7000E1F793CF86E0F801AFECB2E001900D924E -:103C80008A95E1F72DC04D875E878D859E850E94C0 -:103C9000E61B811140CF8091D40281608093D402D1 -:103CA000C8010E94A71B1CC0662309F458CF4D878A -:103CB0005E878D859E850E94E61B882309F44FCF81 -:103CC0002ACF811148CF0CC0243031050CF047CFEA -:103CD0009F7009F440CFF8019581907F09F03BCFA8 -:103CE0008F2D62960FB6F894DEBF0FBECDBFDF9169 -:103CF000CF911F910F91FF90EF90DF90CF9008959B -:103D00001F93CF93DF93CDB7DEB72C970FB6F89400 -:103D1000DEBF0FBECDBF4F83588769877A878B87F9 -:103D20009C87CE0107960E94B91C882369F08F8179 -:103D300098852A853B85232BF1F19F3F09F063C0CD -:103D40008F3F09F060C037C086E0FE013796DE0184 -:103D5000119601900D928A95E1F76F817885EA8539 -:103D6000FB85309741F17F3F11F46F3F21F12091A6 -:103D70009E0230E0C90101968770992740919D020B -:103D800050E08417950709F447C069837A83FD835F -:103D9000EC8396E0929FD001939FB00D1124A15621 -:103DA000BD4FFE01319601900D929A95E1F78093F7 -:103DB0009E020E942F1C16E080919D0290919E020F -:103DC0008917C1F1189FC001112481569D4F0E948F -:103DD000B91C882379F1E0919D021E9FF001112406 -:103DE000E156FD4F408151816281738184819581CB -:103DF0000E941F1C80919D0290E001968770992778 -:103E000080939D02D9CF4F81588569857A858B85AE -:103E10009C850E941F1CCFCF0E94E21B10929E0225 -:103E200010929D02EFECF2E086E0DF011D928A9590 -:103E3000E9F7C1CF2C960FB6F894DEBF0FBECDBF09 -:103E4000DF91CF911F910895EF92FF920F931F93EF -:103E5000CF93DF938C01009709F46CC0F12CEE2412 -:103E6000E394E8012196F8018491843740F484308A -:103E700008F051C0813081F0823019F15BC0853784 -:103E800009F444C0A8F19CE7980F903708F052C09D -:103E90008F770E94FF1841C00E5F1F4FFE01C49133 -:103EA00080E28C0F883048F4C7708E2D01C0880FD7 -:103EB000CA95EAF70E94002214C08C2F0E9437187E -:103EC0002DC00E5F1F4FFE01C49180E28C0F883021 -:103ED00058F4C7708E2D01C0880FCA95EAF70E946A -:103EE00006220E9427221AC08C2F0E94FF1816C09B -:103EF0000E5F1F4FFE01C491CC2381F08FE99FE03C -:103F00000197F1F700C00000C150F6CF0E5F1F4FC0 -:103F1000FE01F49003C00E9437188E018F2D882374 -:103F200009F49FCFEFE9FFE03197F1F700C00000FF -:103F30008150F5CFDF91CF911F910F91FF90EF90BE -:103F4000089508956093D9027093DA028093DB029A -:103F50009093DC020C94CE1B0F931F930091D90217 -:103F60001091DA022091DB023091DC02DC01CB01FE -:103F7000802B912BA22BB32B8093D9029093DA0242 -:103F8000A093DB02B093DC021F910F910C94CE1B27 -:103F90000F931F930091D9021091DA022091DB0256 -:103FA0003091DC02DC01CB0180239123A223B323D7 -:103FB0008093D9029093DA02A093DB02B093DC02E3 -:103FC0001F910F910C94CE1B0F931F930091D90258 -:103FD0001091DA022091DB023091DC02DC01CB018E -:103FE00080279127A227B3278093D9029093DA02E2 -:103FF000A093DB02B093DC021F910F910C94CE1BB7 -:104000001092D5021092D6021092D7021092D802C6 -:104010000C94CE1B41E050E060E070E004C0440F1F -:10402000551F661F771F8A95D2F74093D50250938C -:10403000D6026093D7027093D8020C94CE1B41E055 -:1040400050E060E070E004C0440F551F661F771F0A -:104050008A95D2F78091D5029091D602A091D7028D -:10406000B091D802482B592B6A2B7B2B4093D50259 -:104070005093D6026093D7027093D8020C94CE1B53 -:1040800041E050E060E070E004C0440F551F661F3F -:10409000771F8A95D2F740955095609570958091DD -:1040A000D5029091D602A091D702B091D8024823B0 -:1040B00059236A237B234093D5025093D602609301 -:1040C000D7027093D8020C94CE1B41E050E060E020 -:1040D00070E004C0440F551F661F771F8A95D2F702 -:1040E0008091D5029091D602A091D702B091D802CA -:1040F000482759276A277B274093D5025093D60239 -:104100006093D7027093D8020C94CE1B0F931F9329 -:104110000091D5021091D6022091D7023091D80299 -:10412000DC01CB01802B912BA22BB32B8093D502EA -:104130009093D602A093D702B093D8021F910F910B -:104140000C94CE1B0F931F930091D5021091D602B1 -:104150002091D7023091D802DC01CB01802391233A -:10416000A223B3238093D5029093D602A093D702C3 -:10417000B093D8021F910F910C94CE1B0F931F93F5 -:104180000091D5021091D6022091D7023091D80229 -:10419000DC01CB0180279127A227B3278093D5028A -:1041A0009093D602A093D702B093D8021F910F919B -:1041B0000C94CE1B0895CF92DF92EF92FF920F9353 -:1041C0001F93CF93DF938C01C090D902D090DA0275 -:1041D000E090DB02F090DC028091D5029091D60253 -:1041E000A091D702B091D802C82AD92AEA2AFB2A7C -:1041F000CFE1D0E0D701C6010C2E04C0B695A7953B -:10420000979587950A94D2F780FF06C0B8018C2F46 -:104210000E947608019721F4219760F780E001C0A1 -:104220008C2FDF91CF911F910F91FF90EF90DF9036 -:10423000CF900895CF93DF93EC010E94DB20BE0165 -:104240000E947608DF91CF910895CB010E941A2138 -:1042500008958091DD0285958595859508958091D5 -:10426000DD028770089598E0899F90011124262B24 -:104270002093DD020C941F202091DD028095822383 -:104280008093DD02982F977069F430E0482F55270E -:1042900047FD50952417350729F085958595859517 -:1042A0000C94402008959091DD02977081E009F40C -:1042B00080E0089590911501992321F090911601C5 -:1042C000911109C02091170130911801F90132961E -:1042D0009FEF40E01FC0982F9695969596959F303A -:1042E00050F5E0911701F0911801E90FF11D877069 -:1042F00021E030E0A90102C0440F551F8A95E2F782 -:10430000CA019181892B818308959F3F39F04F5FC6 -:104310004E3041F051915813F8CF0DC05111F7CFE5 -:10432000942FF5CF9F3F39F0F901E90FF11D97FD6B -:10433000FA9582830895089590911501992321F0AB -:1043400090911601911109C0209117013091180127 -:10435000F9013296205F3F4F1FC0982F9695969592 -:1043600096959F30F0F4E0911701F0911801E90F54 -:10437000F11D877021E030E0A90102C0440F551FF4 -:104380008A95E2F7CA0180959181892381830895F6 -:104390003196E217F30729F090819813F9CF108234 -:1043A000F7CF089581E090E0E0911701F0911801B6 -:1043B000E80FF91F1082019680319105A9F7089541 -:1043C0009091F102892B8093F1020895809590914C -:1043D000F10289238093F10208951092F102089569 -:1043E0009091F002892B8093F0020895809590912E -:1043F000F00289238093F00208951092F00208954C -:104400009091EF02892B8093EF020895809590910F -:10441000EF0289238093EF0208951092EF0208952E -:104420008093DE0208951092DE02089580911701B4 -:1044300090911801FC0131969C01205F3F4F80E074 -:10444000919191118F5FE217F307D1F70895E091F1 -:104450001701F09118018091F1028083E09117011A -:10446000F091180190818091F002892B8083E09176 -:104470001701F091180190818091EF02892B8083C0 -:104480008091DE02882361F0E0911701F09118011C -:104490009081892B80830E94162281111092DE0266 -:1044A00080911701909118010C940C1720E000974F -:1044B00039F0AC0141505109842395232F5FF7CF88 -:1044C000822F089580911303843039F11092F30202 -:1044D00020E488E190E00FB6F894A89580936000FE -:1044E0000FBE2093600080E00E94F10280E00E94F5 -:1044F000100983B7817F846083BF83B7816083BFE6 -:104500007894889583B78E7F83BF88E10FB6F8943F -:1045100080936000109260000FBE08950895089582 -:1045200080E00E94F1020E948E220E946B090E948C -:104530008F220E94F00991E0811101C090E0892F43 -:1045400008950E94E21B80E00E94F1020E940A2866 -:104550000E9400170C9410091F920F920FB60F9231 -:1045600011248F939F93AF93BF938091F302811196 -:1045700013C08091F4029091F502A091F602B091DF -:10458000F7024196A11DB11D8093F4029093F502AC -:10459000A093F602B093F702BF91AF919F918F91D4 -:1045A0000F900FBE0F901F90189582E084BD93E08E -:1045B00095BD9AEF97BD80936E0008952FB7F8943C -:1045C0008091F4029091F502A091F602B091F70269 -:1045D0002FBF0895CF92DF92EF92FF920F931F9318 -:1045E0002FB7F8944091F4025091F5026091F602D1 -:1045F0007091F7022FBF6A017B01EE24FF248C012A -:1046000020E030E0C016D106E206F30610F4415077 -:1046100051099A01281B390BC9011F910F91FF9075 -:10462000EF90DF90CF9008951F920F920FB60F92E8 -:1046300011248F939F93AF93BF938091F402909135 -:10464000F502A091F602B091F7020196A11DB11DED -:104650008093F4029093F502A093F602B093F702D0 -:10466000BF91AF919F918F910F900FBE0F901F90B0 -:1046700018950E94FD13F8942FEF87EA91E62150D8 -:1046800080409040E1F700C0000087E090EBDC0143 -:1046900080931E0390931F03A0932003B0932103E4 -:1046A0009CE088E10FB6F894A895809360000FBE57 -:1046B00090936000FFCF0E949A23811102C00E9454 -:1046C00076230E94A5238093F2020E94AD2380935B -:1046D0001C0387FB882780F9809316010E94A92379 -:1046E000682F70E080E090E00C94A21F6DEE7EEFEA -:1046F00080E090E00E94C12C60E082E090E00E94A7 -:10470000AF2C60E083E090E00E94AF2C60E084E09A -:1047100090E00E94AF2C60E085E090E00E94AF2C1A -:1047200060E086E090E00E94AF2C6FEF87E090E0C1 -:104730000C94AF2C80E090E00E94A92C21E08D3EEB -:104740009E4F09F020E0822F089582E090E00C94C3 -:10475000A12C83E090E00C94A12C84E090E00C94D8 -:10476000A12C682F84E090E00C94AF2C86E090E0C0 -:104770000C94A12C682F86E090E00C94AF2C87E07D -:1047800090E00C94A12C682F87E090E00C94AF2C63 -:104790008091FA0280FF0BC060911C0185E0689F48 -:1047A000B001112475956795759567952BC081FFAC -:1047B00009C060911C0185E0689FB00111247595C6 -:1047C000679520C082FF07C060911C0185E0689F4B -:1047D000B001112417C09091FB029923D1F0609190 -:1047E0001B01961788F720911C0185E0289F9001F6 -:1047F0001124929FA001939F500D112470E0CA01D3 -:104800000E94872C6038710540F46115710539F0FC -:1048100002C065E070E0862F08958FE7089581E07B -:1048200008958091FA0280FF08C060911A0170E03B -:10483000759567957595679521C081FF06C0609154 -:104840001A0170E07595679519C082FF04C06091E8 -:104850001A0170E010C09091FB029923C1F06091A1 -:1048600019019617A0F780911A01899FC0011124A0 -:1048700070E00E94872C6038710528F4611571057D -:1048800021F0862F08958FE7089581E0089561E073 -:1048900070E0F4CF803F21F40E94C823819504C0CA -:1048A000813F29F40E94C8238093FE020895823F2D -:1048B00021F40E94C823819504C0833F29F40E94FB -:1048C000C8238093FD020895893F19F40E941124A2 -:1048D00005C08A3F31F40E94112481958093FF0224 -:1048E00008958B3F21F40E941124819504C08C3FD0 -:1048F00029F40E941124809300030895843F21F439 -:104900008091FC02816017C0853F21F48091FC02F8 -:10491000826011C0863F21F48091FC0284600BC04C -:10492000873F21F48091FC02886005C0883F31F404 -:104930008091FC0280618093FC0208958D3F21F4F8 -:104940008091FA0281600BC08E3F21F48091FA02BF -:10495000826005C08F3F29F48091FA0284608093C1 -:10496000FA020895803F39F48091FE0287FF6CC0FF -:104970001092FE0269C0813F29F48091FE02181650 -:10498000BCF362C09091FD02823F29F497FF5CC0A6 -:104990001092FD0259C0833F19F41916CCF354C08C -:1049A000893F41F48091FF0218160CF04DC010921F -:1049B000FF024AC08A3F29F48091FF0287FF44C06A -:1049C000F6CF8B3F39F48091000387FF3DC01092F2 -:1049D00000033AC08C3F29F4809100031816BCF301 -:1049E00033C0843F21F48091FC028E7F17C0853F45 -:1049F00021F48091FC028D7F11C0863F21F48091CB -:104A0000FC028B7F0BC0873F21F48091FC02877FE3 -:104A100005C0883F31F48091FC028F7E8093FC02B8 -:104A200013C08D3F21F48091FA028E7F0BC08E3F20 -:104A300021F48091FA028D7F05C08F3F29F4809187 -:104A4000FA028B7F8093FA028091FD0281110EC0E1 -:104A50008091FE0281110AC08091FF02811106C07F -:104A600080910003811102C01092FB0208958CEF27 -:104A700092E00E9417170E94DE229093F902809321 -:104A8000F80208951F93CF93DF938091F8029091DD -:104A9000F9020E94EA22AC019091FB02992321F0D5 -:104AA00020911D0130E006C020911E018AE0289F60 -:104AB000900111244217530708F486C08091FD022B -:104AC000C091FE02D091FF0210910003811107C036 -:104AD000C11176C0D11174C0111172C075C09F3F51 -:104AE00019F09F5F9093FB02181624F40E94C823CC -:104AF0008093FD028091FD0287FF05C00E94C823BC -:104B000081958093FD021C1624F40E94C823809393 -:104B1000FE028091FE0287FF05C00E94C823819596 -:104B20008093FE026091FD02662339F1C091FE027E -:104B3000CC2319F1772767FD7095872F972F0E9457 -:104B4000A92923E333E343E35FE30E94B92A0E94E8 -:104B500076296093FD026C2F772767FD7095872F6C -:104B6000972F0E94A92923E333E343E35FE30E94E5 -:104B7000B92A0E9476296093FE021D1624F40E9431 -:104B800011248093FF028091FF0287FF05C00E94DD -:104B9000112481958093FF02111624F40E941124A0 -:104BA000809300038091000387FF05C00E941124B9 -:104BB000819580930003DF91CF911F910C9437254D -:104BC0009F3F09F08ECF96CFDF91CF911F9108952F -:104BD000ECEFF2E085E0DF011D928A95E9F7109293 -:104BE000FB021092FA020895833081F128F481309B -:104BF00059F08230D1F00895853009F449C0B8F1F8 -:104C0000863009F456C0089580911E01262F30E0A9 -:104C1000280F311D2F3F310524F4680F60931E01CA -:104C200008958FEF80931E01089580911D01262F16 -:104C300030E0280F311D2F3F310524F4680F6093B9 -:104C40001D0108958FEF80931D01089580911C012F -:104C5000262F30E0280F311D2F3F310524F4680F37 -:104C600060931C0108958FEF80931C01089580913B -:104C70001B01262F30E0280F311D2F3F310524F472 -:104C8000680F60931B0108958FEF80931B010895B7 -:104C900080911A01262F30E0280F311D2F3F31055A -:104CA00024F4680F60931A0108958FEF80931A011E -:104CB000089580911901262F30E0280F311D2F3FD4 -:104CC000310524F4680F6093190108958FEF8093E4 -:104CD00019010895833011F128F4813049F08230B0 -:104CE00091F00895853081F120F18630C1F1089569 -:104CF00080911E01681720F4861B80931E01089581 -:104D000010921E01089580911D01681720F4861BE2 -:104D100080931D01089510921D01089580911C013A -:104D2000681720F4861B80931C01089510921C01C3 -:104D3000089580911B01681720F4861B80931B0146 -:104D4000089510921B01089580911A01681720F4AC -:104D5000861B80931A01089510921A01089580917C -:104D60001901681720F4861B809319010895109289 -:104D7000190108950F931F93873208F048C08E31B0 -:104D800008F08DC0803109F477C008F5873009F448 -:104D900061C068F4863009F09DC08091F202817F85 -:104DA0008E7F8093F20281E08093020394C08B3067 -:104DB00009F489C08E3009F08DC08091F20282FB27 -:104DC000222720F991E0922790FB82F95EC086317C -:104DD00009F479C060F4813109F07CC00E94E21BC3 -:104DE0009091160181E08927809316016CC089316A -:104DF00009F469C08B3109F06DC08091F20281FB2A -:104E0000222720F991E0922790FB81F93EC0883358 -:104E100009F459C050F4893209F457C0853309F4B4 -:104E200054C0873209F451C055C0833409F44DC0D1 -:104E300028F48A3308F44EC0895332C0883409F00C -:104E400049C00E94E21B0E94200A0E94E4030E94C3 -:104E5000392339C09091F202892F8095817080FBAF -:104E600090F929F0966098609093F20234C0997F8F -:104E7000977F9093F20227C08091F20283FB222752 -:104E800020F991E0922790FB83F98093F202992315 -:104E9000D1F08091F20281608093F20214C08D51B2 -:104EA00041E050E060E070E08A019B0104C0000F27 -:104EB000111F221F331F8A95D2F7C901B8010E9422 -:104EC000A21F0E94E21B81E006C061E070E080E06A -:104ED00090E0F5CF80E01F910F91089580E0089554 -:104EE00080E00895CF93C82F80910203813069F04C -:104EF00018F08230C9F184C0E0911701F0911801D7 -:104F00008081823209F07EC007C0E0911701F091E4 -:104F100018018081823261F48C2F0E946E278111EA -:104F200004C08C2F0E94BA261DC081E090E01AC0F8 -:104F30008C2F0E947027811114C0C43179F048F47D -:104F4000CB3079F0C03109F061C082E08093020378 -:104F500008C0C93219F0C83321F058C010920203BA -:104F600055C081E0817054C0C93291F120F5C4313F -:104F700079F1B0F4C73009F047C08EE180931E018B -:104F800082E380931D018AE080931C0184E1809379 -:104F90001B0188E080931A0188E28093190134C0D4 -:104FA000CE51C63088F5EC2FF0E0EA54FE4F8081F8 -:104FB0008093010329C0CE34E9F020F4CB3421F5ED -:104FC0006AE013C0C13579F0C235F1F461E00DC07B -:104FD00080910103882319F01092010315C081E02C -:104FE0008093020315C061E006C0809101030E9416 -:104FF000F4250AC06AE0809101030E946A2604C079 -:105000001092020380E004C081E002C080E0AACFD9 -:10501000CF9108950E949A23811102C00E947623A5 -:105020000E94B62380931D0380FF02C0869501C0B5 -:1050300080E00C94F10280911D03982F9695292F02 -:1050400030E0233031054CF49F5F990F8170892B3C -:10505000816080931D030E94BA2380911D03869571 -:105060000C94F10280911D03982F969591F0915820 -:10507000990F8170892B80931D038E7F91E009F435 -:1050800090E080911D0390FB80F980931D030E94A6 -:10509000BA2380911D0386950C94F10280911D0323 -:1050A000982F909590FB80F980931D030E94BA235E -:1050B00080911D0380FF02C0869501C080E00C94A2 -:1050C000F10290911D03892F86958F5F8F779170E4 -:1050D000843028F4880F892B80931D0302C090939D -:1050E0001D0380911D038E7F91E009F490E0809173 -:1050F0001D0390FB80F980931D030E94BA238091C9 -:105100001D0386950C94F10220911D03922F969514 -:105110008927982F990F822F8170892B80931D03E7 -:105120008E7F91E009F490E080911D0390FB80F95F -:1051300080931D030E94BA2380911D0386950C94D1 -:10514000F10280911D03869508955058BB27AA2728 -:105150000ED0D1C1C2D130F0C7D120F031F49F3F81 -:1051600011F41EF4B7C10EF4E095E7FB9FC1E92FDF -:10517000D3D180F3BA17620773078407950718F035 -:1051800071F49EF5EBC10EF4E0950B2EBA2FA02D15 -:105190000B01B90190010C01CA01A0011124FF27E4 -:1051A000591B99F0593F50F4503E68F11A16F040DF -:1051B000A22F232F342F4427585FF3CF46953795DE -:1051C0002795A795F0405395C9F77EF41F16BA0BA3 -:1051D000620B730B840BBAF09150A1F0FF0FBB1F51 -:1051E000661F771F881FC2F70EC0BA0F621F731F9A -:1051F000841F48F4879577956795B795F7959E3FF7 -:1052000008F0B3CF9395880F08F09927EE0F979584 -:105210008795089527D108F481E008950CD06BC1DB -:1052200063D140F05AD130F021F45F3F19F03EC114 -:10523000511195C14FC170D198F39923C9F35523EA -:10524000B1F3951B550BBB27AA2762177307840779 -:1052500038F09F5F5F4F220F331F441FAA1FA9F32F -:1052600033D00E2E3AF0E0E830D091505040E69521 -:10527000001CCAF729D0FE2F27D0660F771F881F82 -:10528000BB1F261737074807AB07B0E809F0BB0B71 -:10529000802DBF01FF2793585F4F2AF09E3F510595 -:1052A00068F004C15CC15F3FECF3983EDCF3869587 -:1052B00077956795B795F7959F5FC9F7880F911D0B -:1052C0009695879597F90895E1E0660F771F881FF7 -:1052D000BB1F621773078407BA0720F0621B730BAA -:1052E000840BBA0BEE1F88F7E095089504D06894FC -:1052F000B11135C1089518D188F09F5790F0B92F9A -:105300009927B751A0F0D1F0660F771F881F991F1A -:105310001AF0BA95C9F712C0B13081F01FD1B1E0CF -:1053200008951CC1672F782F8827B85F39F0B93FDF -:10533000CCF3869577956795B395D9F73EF490951C -:105340008095709561957F4F8F4F9F4F0895E8949A -:1053500009C097FB3EF490958095709561957F4FBD -:105360008F4F9F4F9923A9F0F92F96E9BB2793956B -:10537000F695879577956795B795F111F8CFFAF47B -:10538000BB0F11F460FF1BC06F5F7F4F8F4F9F4FAC -:1053900016C0882311F096E911C0772321F09EE80A -:1053A000872F762F05C0662371F096E8862F70E070 -:1053B00060E02AF09A95660F771F881FDAF7880F4A -:1053C0009695879597F9089588D018F011F08CD0AC -:1053D00038F480C0C4C0E92F9FD0B0F35523C9F37F -:1053E000E7FB6217730784079507A8F199F3E92F84 -:1053F000FF2788232AF03197660F771F881FDAF777 -:10540000952F5527442332F091505040220F331FDF -:10541000441FD2F7BB27E91BF50B621B730B840BF0 -:10542000B109C1F222F4620F731F841FB11D3197BD -:105430002AF0660F771F881FBB1FEFCF9150504097 -:105440005AF041F0882332F0660F771F881F915081 -:105450005040C1F7939530C08695779567959F5FCB -:10546000D9F7F8CF990F0008550FAA0BE0E8FEEF27 -:1054700016161706E807F907C0F012161306E40718 -:10548000F50798F0621B730B840B950B39F40A2611 -:1054900061F0232B242B252B21F408950A2609F4EF -:1054A000A140A6958FEF811D811D089597F99F67F3 -:1054B00080E870E060E008959F3F31F0915020F463 -:1054C000879577956795B795880F911D96958795E0 -:1054D00097F908959FEF80EC089500240A9416161A -:1054E000170618060906089500240A9412161306D2 -:1054F000140605060895092E0394000C11F4882360 -:1055000052F0BB0F40F4BF2B11F460FF04C06F5F7B -:105510007F4F8F4F9F4F089557FD9058440F551F51 -:1055200059F05F3F71F04795880F97FB991F61F025 -:105530009F3F79F087950895121613061406551F9C -:10554000F2CF4695F1DF08C0161617061806991F08 -:10555000F1CF86957105610508940895E894BB27FD -:1055600066277727CB0197F908957CDF08F48FEF42 -:1055700008950BD0C0CFB1DF28F0B6DF18F0952327 -:1055800009F094CFA7CF1124EACFC6DFA0F3959FEF -:10559000D1F3950F50E0551F629FF001729FBB271A -:1055A000F00DB11D639FAA27F00DB11DAA1F649FC6 -:1055B0006627B00DA11D661F829F2227B00DA11D79 -:1055C000621F739FB00DA11D621F839FA00D611DFF -:1055D000221F749F3327A00D611D231F849F600D20 -:1055E000211D822F762F6A2F11249F5750408AF059 -:1055F000E1F088234AF0EE0FFF1FBB1F661F771FE5 -:10560000881F91505040A9F79E3F510570F04ECF32 -:10561000A6CF5F3FECF3983EDCF3869577956795D0 -:10562000B795F795E7959F5FC1F7FE2B880F911D02 -:105630009695879597F90895FA01EE0FFF1F30961A -:105640002105310599F16115710561F48038BFE3D9 -:105650009B0749F168949038810561F08038BFEF6D -:105660009B0741F0992342F5FF3FE10531052105F4 -:1056700011F1E8940894E795D901AA2329F4AB2FF6 -:10568000BE2FF85FD0F310C0FF5F70F4A695E0F76F -:10569000F73950F019F0FF3A38F49F779F930CD008 -:1056A0000F9007FC905808953EF014CF60E070E032 -:1056B00080E89FE308954FE79F775F934F933F9371 -:1056C0002F939ED02F913F914F915F9152DF05C054 -:1056D00019F40EF0EBCE42CFFDCE26DFC8F396389C -:1056E000C0F707F80F92E8942BE33AEA48EB5FE73C -:1056F0004EDF0F920F920F924DB75EB70F92C0D050 -:10570000EAE0F1E016D04F915F91EF91FF91E595BE -:10571000EE1FFF1F49F0FE57E0684427EE0F441FBD -:10572000FA95E1F74195550B32D00F9007FE26C050 -:105730000895DF93CF931F930F93FF92EF92DF9221 -:105740007B018C01689405C0DA2EEF011EDFFE019B -:10575000E894A5912591359145915591AEF3EF01CE -:1057600006DDFE019701A801DA9479F7DF90EF904A -:10577000FF900F911F91CF91DF9108959B01AC0194 -:1057800060E070E080E89FE349CD90CE95CECCDE1E -:10579000E8F39923D9F3940F511DBBF39150504076 -:1057A00094F059F0882332F0660F771F881F9150CC -:1057B0005040C1F79E3F510544F7880F911D9695C3 -:1057C000879597F908955F3FACF0983E9CF0BB2712 -:1057D000869577956795B79508F4B1609395C1F76D -:1057E000BB0F58F711F460FFE8CF6F5F7F4F8F4F0B -:1057F0009F4FE3CFB4CE0EF05FCE6CCE689456CE02 -:1058000093DEC8F39923D1F3C6F3DF93CF931F93AD -:105810000F93FF92C92FDD2788232AF02197660F67 -:10582000771F881FDAF720E030E040E85FEB9FE366 -:10583000883920F0803E30F021968F7787DCE2E3D4 -:10584000F1E003C083DCEFE5F1E073DF8B01BE0123 -:10585000EC01FB2E6F5771097595771F880B990B1B -:1058600078DD28E132E741E35FE38FDEAF2D980179 -:10587000AE01FF900F911F91CF91DF9178DC3BCE6D -:10588000FA01DC01AA0FBB1F9B01AC01BF5728F432 -:1058900022273327442750781FC0B75188F4AB2FF5 -:1058A0000024469537952795011CA395D2F3002037 -:1058B00069F0220F331F441FB395DAF30DD045CCA6 -:1058C00061307105A0E88A07B94630F49B01AC014C -:1058D0006627772788279078309621F020833183B8 -:1058E000428353830895AA1BBB1B51E107C0AA1F23 -:1058F000BB1FA617B70710F0A61BB70B881F991F71 -:105900005A95A9F780959095BC01CD01089597FB14 -:10591000072E16F4009407D077FD09D00E94732C4F -:1059200007FC05D03EF4909581959F4F08957095A2 -:1059300061957F4F0895EE0FFF1F0590F491E02DC4 -:105940000994F999FECF92BD81BDF89A992780B547 -:105950000895A8E1B0E042E050E00C94C92C262F55 -:10596000F999FECF92BD81BDF89A019700B4021655 -:1059700039F01FBA20BD0FB6F894FA9AF99A0FBE03 -:1059800008950196272F0E94B02C0C94AF2CDC01B7 -:10599000CB01FC01F999FECF06C0F2BDE1BDF89A3A -:1059A000319600B40D9241505040B8F70895F894E4 -:0259B000FFCF27 -:1059B200640007000CFF0000003F64041092106FA7 -:1059C200103B1007100101DF022808140A321E00E2 -:1059D20002040507090B0C0E1011131517181A1CD7 -:1059E2001D1F2123242628292B2D2F303234353711 -:1059F200393B1F0F03764F5F6F7F4969437909591E -:105A020053633149803F5D8B803FF8BF803FCAE1DD -:105A1200803F73ED803FCAE1803FF8BF803F5D8BDE -:105A2200803F3149803F0000803FF16D7F3F75EA42 -:105A32007E3F4C827E3F833F7E3F84287E3F833F72 -:105A42007E3F4C827E3F75EA7E3FF16D7F3F0000D4 -:105A5200803F3F4D3639ED04A0046A043104C4038B -:105A6200DD03F6030F04010203040506070809001B -:00000001FF diff --git a/keyboards/planck/keymaps/experimental/README.md b/keyboards/planck/keymaps/experimental/README.md deleted file mode 100644 index de9680b49..000000000 --- a/keyboards/planck/keymaps/experimental/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# The Default Planck Layout - diff --git a/keyboards/planck/keymaps/experimental/compiled.hex b/keyboards/planck/keymaps/experimental/compiled.hex deleted file mode 100644 index 840050699..000000000 --- a/keyboards/planck/keymaps/experimental/compiled.hex +++ /dev/null @@ -1,1669 +0,0 @@ -:100000000C94BA050C94FE050C94FE050C94FE05A8 -:100010000C94FE050C94FE050C94FE050C94FE0554 -:100020000C94FE050C94FE050C948F1A0C94611B25 -:100030000C94C2280C94FE050C94FE050C94FE054D -:100040000C94FE050C94B1060C94FE050C94FE0570 -:100050000C94FE050C942A290C94FE050C94FE05C4 -:100060000C94FE050C94FE050C94FE050C94FE0504 -:100070000C94FE050C94FE050C94FE050C94FE05F4 -:100080000C9475100C94FE050C94FE050C94FE0562 -:100090000C94FE050C94FE050C94FE050C94FE05D4 -:1000A0000C94FE050C94FE050C94FE0519072B0715 -:1000B0003F07510759076F07BD07BD07BD07BD07BC -:1000C000BD07BD077D07AC07CE1BF01BDE1CF01B78 -:1000D000DE1C351C581CDE1CAD1CC01CAA1FAA1F30 -:1000E000D91FD91F182038208E218E2143208E2120 -:1000F000F320F3205A2163218E2188210021002141 -:1001000000210021002100210021002100210021E7 -:1001100000210021002100210021002110211E21A9 -:1001200025212C21362107634236B79BD8A71A39DF -:10013000685618AEBAAB558C1D3CB7CC5763BD6D35 -:10014000EDFD753EF6177231BF000000803F0800DC -:100150000000BE922449123EABAAAA2ABECDCCCC46 -:100160004C3E00000080BEABAAAAAA3E00000000E0 -:10017000BF000000803F0000000000084178D3BBB2 -:100180004387D1133D190E3CC3BD4282AD2B3E685F -:10019000EC8276BED98FE1A93E4C80EFFFBE01C450 -:1001A000FF7F3F0000000000000000000000000092 -:1001B000000000010204060A0F17202C3A4A5D7164 -:1001C000879DB3C7DAE9F5FCFFFCF5E9DAC7B39D13 -:1001D00087715D4A3A2C20170F0A060402010000BD -:1001E00000000000000000006966207965730A09BC -:1001F0007065616E7574206275747465720A656CE1 -:1002000073650A097269636520736E61636B7300BD -:10021000706C616E636B2F6578706572696D656E69 -:1002200074616C20402076342E302D3233302D67AF -:100230003839636435322D6469727479002B001487 -:10024000001A000800150017001C0018000C00120E -:100250000013002A00290004001600070009000A04 -:10026000000B000D000E000F0033003400E1001DF4 -:10027000001B0006001900050011001000360037B1 -:1002800000380028000530E000E200E30003302CD5 -:10029000002C0004305000510052004F002B00147D -:1002A000001A00090013000A000D000F0018001CBE -:1002B0000033002A0029000400150016001700076B -:1002C000000B00110008000C0012003400E1001DBA -:1002D000001B000600190005000E00100036003754 -:1002E00000380028001470E000E200E30003302C26 -:1002F000002C0004305000510052004F002B0034FD -:10030000003600370013001C0009000A0006001523 -:10031000000F002A00290004001200080018000C39 -:100320000007000B001700110016003800E1003331 -:100330000014000D000E001B00050010001A00192B -:10034000001D0028000530E000E200E30003302C2F -:10035000002C0004305000510052004F0035021EA6 -:10036000021F022002210222022302240225022669 -:100370000227022A004C003A003B003C003D003EB0 -:10038000003F002D022E022F0230023102010040F8 -:100390000041004200430044004500320264020173 -:1003A0000001000100010001000100010001000145 -:1003B0000001000100AB00AA00A900AE0035001E3C -:1003C000001F002000210022002300240025002619 -:1003D0000027002A004C003A003B003C003D003E54 -:1003E000003F002D002E002F0030003100010040A2 -:1003F0000041004200430044004500320032000149 -:1004000000010001000100010001000100010001E4 -:100410000001000100AB00AA00A900AE001E001EF2 -:10042000001E001E001E001E001E001E001E001EDC -:10043000001E001E00000014001A0008001500171E -:10044000001C0018000C00120013002F0000000414 -:10045000001600070009000A000B000D000E000F37 -:1004600000330034000D30000000000600190000C9 -:10047000000000110010000000000000000000005B -:10048000000000000000000000000000000000006C -:10049000000000000000000000000000000000005C -:1004A000000000000000000000000000000000004C -:1004B000000000000000000000000000000000003C -:1004C000000000000000000000000000000000002C -:1004D000000000000000000000000000000000001C -:1004E000000000000000000000000000000000000C -:1004F00000000000000000000000000000000000FC -:1005000000000000000000000000000000000000EB -:1005100000000000000000000000000000000000DB -:1005200000000000000000000000000000000000CB -:1005300000000000000000000000000000000000BB -:1005400000000000000000000000000000000000AB -:10055000000000000000000000000000000000009B -:10056000000000000000000000000000000000008B -:10057000000000000000000000000000000000007B -:10058000000000000000000000000000000000006B -:10059000000000000000000000000000000000005B -:1005A000000000000000000000000000000000004B -:1005B000000000000000000000000000000000003B -:1005C000000000000000000000000000000000002B -:1005D000000000000000000000000000000000001B -:1005E000000000000000000000000000000000000B -:1005F00000000000000000000000000000000000FB -:1006000000000000000000000000000000000000EA -:1006100000000000000000000000000000000000DA -:1006200000000000000000000000000000000000CA -:1006300000000000000000000000000000000000BA -:1006400000000000000000000000000000000000AA -:10065000000000000000000000000000000000009A -:10066000000000000000000000000000000000008A -:10067000000000000000000000000000000000007A -:10068000000000000000000000000000000000006A -:10069000000000000000000000000000000000005A -:1006A000000000000000000000000000000000004A -:1006B000000000000000000000000000000000003A -:1006C000000000000000000000000000000000002A -:1006D000000000000000000000000000000000001A -:1006E000000000000000000000000000000000000A -:1006F00000000000000000000000000000000000FA -:1007000000000000000000000000000000000000E9 -:1007100000000000000000000000000000000000D9 -:1007200000000000000000000000000000000000C9 -:1007300000000000000000000000000000000000B9 -:1007400000000000000000000000000000000000A9 -:100750000000000000000000000000000000000099 -:100760000000000000000000000000000000000089 -:100770000000000000000000000000000000000079 -:100780000000000000000000000000000000000069 -:100790000000000000000000000000000000000059 -:1007A0000000000000000000000000000000000049 -:1007B0000000000000000000000000000000000039 -:1007C0000000000000000000000000000000000029 -:1007D0000000000000000000000000000000000019 -:1007E0000000000000000000000000000000000009 -:1007F00000000000000000000000000000000000F9 -:1008000000000000000000000000000000000000E8 -:1008100000000000000000000000000000000000D8 -:1008200000000000000000000000000000000000C8 -:1008300000000000000000000000000000010000B7 -:100840007001000100010001000100010001000130 -:100850000001004C0001000100010015701670132A -:10086000700A700030013002300C30010001001CB1 -:10087000701B70187019701D701E7001000100014E -:100880000001000100010001000100010001000160 -:100890000001000100010001000100010000000052 -:1008A00000000000002A2B280000000000000000CB -:1008B000000000000000000029000000002C1E3491 -:1008C00020212224342627252E362D3738271E1F97 -:1008D000202122232425263333362E37381F0405C2 -:1008E000060708090A0B0C0D0E0F10111213141530 -:1008F000161718191A1B1C1D2F3130232D3504050E -:10090000060708090A0B0C0D0E0F1011121314150F -:10091000161718191A1B1C1D2F3130354C000000FA -:1009200000000000000000000000000000000000C7 -:1009300000000000000000000000000000000101B5 -:10094000010101010001010101000000000000009F -:100950000000000000000001000100010101010190 -:100960000101010101010101010101010101010177 -:10097000010101010101010100000001010000006D -:100980000000000000000000000000000000000067 -:1009900000000000000000000101010100280354D4 -:1009A0000068006500200050006C0061006E00636C -:1009B000006B0020004B006500790062006F006151 -:1009C000007200640000002C034F00720074006885 -:1009D000006F006C0069006E00650061007200200D -:1009E000004B006500790062006F006100720064D6 -:1009F00000730000000403090409026D00040100F3 -:100A0000A0FA0904000001030101000921110100FD -:100A1000012240000705810308000A0904010001C2 -:100A200003010200092111010001224D0007058286 -:100A30000308000A09040200010300000009211153 -:100A40000100012236000705830308000A09040398 -:100A500000010300000009211101000122390007F3 -:100A60000584031000011201100100000008EDFED2 -:100A7000606001000102000105010906A1010507EE -:100A800019E029E71500250195087501810205087F -:100A900019012905950575019102950175039101CB -:100AA0000507190029771500250195787501810240 -:100AB000C005010980A101850216010026B7001AB0 -:100AC00001002AB700751095018100C0050C0901CD -:100AD000A1018503160100269C021A01002A9C022E -:100AE000751095018100C005010902A1010901A14C -:100AF00000050919012905150025019505750181D4 -:100B0000029501750381010501093009311581251F -:100B10007F95027508810609381581257F95017535 -:100B2000088106050C0A38021581257F9501750894 -:100B30008106C0C005010906A101050719E029E7E2 -:100B4000150025019508750181029501750881013F -:100B5000050819012905950575019102950175038F -:100B600091010507190029FF150026FF009506755C -:100B7000088100C011241FBECFEFDAE0DEBFCDBF79 -:100B800004B603FE24C080918F0490919004A0913C -:100B90009104B09192048730904BA740B04BB9F4C8 -:100BA00010928F041092900410929104109292046B -:100BB00014BE84B7877F84BF88E10FB6F894809312 -:100BC0006000109260000FBEE0E0F8E3099513E0CA -:100BD000A0E0B1E0E2E0F6E602C005900D92A0339D -:100BE000B107D9F714E0A0E3B3E001C01D92AF381C -:100BF000B107E1F70E94D9170C94FF320C94000062 -:100C000081E0089508950C9406080C9400060C9455 -:100C100002060E94C92E811105C010923203109263 -:100C200031030DC081E290E00090330302C0880FD1 -:100C3000991F0A94E2F7909332038093310382E084 -:100C40008093300380916F00826080936F000895DD -:100C500090916F0081E0911101C080E008950E94A1 -:100C6000C92E23E030E0281B3109220F20933403E2 -:100C70000895282F2F9880918000211108C0877F28 -:100C80008093800010928D0010928C001BC08860B1 -:100C900080938000233019F48FEF9FEF0FC083E023 -:100CA00090E0821B9109880F991F2FEF3FEFA90158 -:100CB00002C0569547958A95E2F7CA0190938D0038 -:100CC00080938C000C942F06CF93C82F0E94280687 -:100CD00040913303882329F090916F009D7F90937A -:100CE0006F00C09333038823D1F0209131033091FA -:100CF000320302C0369527954A95E2F72F733327C2 -:100D0000C90102C0880F991FCA95E2F79093320378 -:100D10008093310380916F00826080936F00CF9148 -:100D200008950E942F0684E08093330310923003CD -:100D30000895279A2F988FEF9FEF909387008093C5 -:100D400086008AE08093800089E1809381000E9480 -:100D5000322E0C9491060E9499066E9A769A0C9403 -:100D6000DA071F920F920FB60F9211242F933F9321 -:100D70008F939F93EF93FF93E0913103F0913203B0 -:100D8000CF01019690933203809331030090330397 -:100D900002C0F695E7950A94E2F7EF73809130036D -:100DA000823019F4E03251F404C0813039F4EF3369 -:100DB00029F480916F008D7F80936F00F0E0E855FB -:100DC000FE4FE49121E031E0E29FC001E39F900DEE -:100DD00011240090340302C0969587950A94E2F797 -:100DE00090938D0080938C00FF91EF919F918F9154 -:100DF0003F912F910F900FBE0F901F901895CF939A -:100E0000DF93EC010E94C629BE0180E090E0DF91F3 -:100E1000CF910C94B9250F931F93462F50E04E307D -:100E2000510508F0AAC0DC01FA01EA5AFF4F0C9400 -:100E3000C33212968C91882309F49FC000E010E021 -:100E4000980140E064E070E088E292E00E94F313D1 -:100E500081E090E011C012968C91882309F48DC036 -:100E600000E010E0980140E066E070E088EB91E07F -:100E70000E94F31382E090E00E94FF067EC012966B -:100E80008C91882309F479C000E010E0980140E0DB -:100E900068E070E088EE91E00E94F31384E090E057 -:100EA000EBCF12968C91882311F083E007C083E08A -:100EB00013C012968C91882371F084E00E9436262C -:100EC00082E00E9464060E94090640E164E083E03B -:100ED0000E94AD0852C084E00E945726F6CF1296B9 -:100EE0008C91882331F085EE0E944E1E0E94892E3F -:100EF00044C085EE0E94161F40C012968C91882334 -:100F0000E1F10E94A80F00E010E0980140E066E0E7 -:100F100070E088E891E00E94F31384E00E94572675 -:100F200083E00E94572680E10E94572685E00E94B8 -:100F300036260E94B329811102C00E948F290E9487 -:100F4000CB2990E09093740480937304806880931D -:100F500073040E94CF2911C012968C91882369F0E6 -:100F600000E010E0980140E066E070E088E591E084 -:100F70000E94F31385E00E94572680E090E01F91C5 -:100F80000F9108950F931F932FEF89EF90E0215059 -:100F900080409040E1F700C0000000E010E09801C0 -:100FA00040E065E070E088E492E00E94F3131F9156 -:100FB0000F9108950C94C2070F931F9300E010E067 -:100FC000980140E063E070E080E091E00E94F3135C -:100FD0002FEF82E597E0215080409040E1F700C07C -:100FE00000001F910F910C94A80F0F931F9300E026 -:100FF00010E0980140E068E070E088E191E00E9434 -:10100000F3131F910F9108950C94F50780914003FD -:10101000882309F470C080913E0390913F030E94A1 -:1010200000298D32914008F466C0109240030E945E -:1010300081088091380390913903499781F4809118 -:101040003A0390913B03892B51F480913C0390919A -:101050003D03892B21F480E192E00E948208809177 -:10106000380390913903099781F480913A03909164 -:101070003B03892B51F480913C0390913D03892BD4 -:1010800021F488EE91E00E948208809138039091CB -:101090003903049791F480913A0390913B0346976A -:1010A00061F480913C0390913D03892B31F48BE0F6 -:1010B0000E944E1E8BE00E94161F80913803909173 -:1010C00039030497C1F480913A0390913B0346970A -:1010D00091F480913C0390913D03079761F483EE76 -:1010E0000E944E1E86E10E944E1E86E10E94161F3F -:1010F00083EE0C94161F089581E008950C947C08EB -:10110000089508950F931F93CF938C01F8012491B4 -:101110002223F9F030E0F901E356F74FC491F901C9 -:10112000E35EF64F2491222359F081EE0E944E1E79 -:101130008C2F0E944E1E8C2F0E94161F81EE04C021 -:101140008C2F0E944E1E8C2F0E94161F0F5F1F4F68 -:10115000DDCFCF911F910F910895CF92DF92EF9243 -:10116000FF920F931F9301E010E020E030E0680150 -:10117000790104C0CC0CDD1CEE1CFF1C8A95D2F753 -:1011800004C0000F111F221F331F6A95D2F70C29CC -:101190001D292E293F29C0904504D0904604E09097 -:1011A0004704F0904804C022D122E222F322842F87 -:1011B000C016D106E206F30641F41F910F91FF908D -:1011C000EF90DF90CF900C9436261F910F91FF90F7 -:1011D000EF90DF90CF900C9457260C94AB06809143 -:1011E0008503882309F448C080914103909142030C -:1011F000009779F40E94F42890934203809341036E -:101200008091430390E0009771F48091440390E053 -:101210000AC00E94002920917002309171022817A3 -:10122000390740F329C00197880F991F880F991F2C -:10123000FC01EB5BFC4F60817181828193810E9494 -:10124000DB0FE091430384E0E89FF0011124EB5BA6 -:10125000FC4F60817181828193814FE050E00E9458 -:1012600093138091430390E001966091440370E0F2 -:101270000E94AF32809343030C94030610928703BD -:101280000C94A80F81E0809387030C9404080895C0 -:101290008F929F92AF92BF92EF92FF920F931F9304 -:1012A000CF93DF93CDB7DEB7A3970FB6F894DEBF29 -:1012B0000FBECDBF7C01FC0100811181C8010E94DD -:1012C000F226B8010E94CB0D8C01B7010E947E0866 -:1012D000882309F4ACC20531F0E71F0741F4F70198 -:1012E0008281882309F458C00E948A14A0C2063162 -:1012F000F0E71F0741F4F7018281882309F44CC00D -:101300000E94931494C20731F0E71F0751F4F701CC -:101310008281882309F440C00E9486148111F0CF95 -:10132000E3CF0831F0E71F0739F4F7018281882302 -:1013300099F10E9442097BC20931F0E71F0739F495 -:10134000F7018281882341F10E943E0970C20A316F -:10135000F0E71F0749F4F70182818823E9F08091C3 -:1013600087038111F1CFE5CF0B31F0E71F0739F487 -:10137000F7018281882381F00E949A140AC00C31FF -:10138000F0E71F0749F4F7018281882329F00E94C2 -:10139000A5140E94F5074BC280918703811105C0F7 -:1013A000F70182818111CFC02DC1003E110579F472 -:1013B000F7018281882309F44DC00E94A80F81E0C3 -:1013C00080938603109285031092440330C2023E3C -:1013D000110559F4F70182818823E1F10E94A80FD9 -:1013E000109286031092850322C2033E110591F4E8 -:1013F000F7018281882371F10E94A80F1092860361 -:1014000081E080938503109243031092420310926F -:1014100041030DC20235110559F4F7018281882379 -:1014200009F405C280917002909171020A970DC073 -:101430000135110579F4F7018281882309F4F7C198 -:1014400080917002909171020A969093710280933C -:101450007002EDC14091740283E2EFE8F2E0DE0138 -:10146000119601900D928A95E1F7F701808121E0B4 -:1014700030E02C0F3D1F280F311DC9012091720251 -:1014800030917302FC01E20FF31F6081772767FD43 -:101490007095640F711D882777FD8095982F0E94A5 -:1014A000D12F20E030E040E451E40E94362F4B0180 -:1014B0005C01F701218184E090E0821B9109BC016D -:1014C000882777FD8095982F0E94D12F9B01AC0132 -:1014D000C501B4010E94CE2E9B01AC0160E070E01A -:1014E00080E090E40E94443120E030E04CED50E494 -:1014F0000E94E1304B015C01F70182818823D1F029 -:101500004FE050E0C501B4010E949313809186031F -:101510008823A1F08091440324E0829FF0011124EC -:10152000EB5BFC4F80829182A282B3828F5F8093BB -:10153000440304C0C501B4010E94DB0F0F3F110535 -:1015400008F02ECF74C18091400381111FC0043177 -:1015500030E7130709F020C10E94800881E08093E2 -:1015600040030E94F42890933F0380933E0310921F -:101570003703109239031092380310923B031092F4 -:101580003A0310923D0310923C0351C180913E03F7 -:1015900090913F030E9400298C32914070F4809119 -:1015A0003703E82FF0E0EE0FFF1FE85CFC4F1183DC -:1015B00000838F5F809337033AC10431F0E71F0740 -:1015C00008F002C1023020E7120730F5011530E7BC -:1015D000130709F0C6C0F7018281882309F4C9C046 -:1015E0000E94F9210E94A80F0E94DC07FFEF24E36C -:1015F0003CE0F15020403040E1F700C000000E9484 -:101600004F2915C10431F0E71F0708F0DDC0023093 -:1016100020E7120708F4A1C0F7018281882309F4AA -:10162000A8C00E94B329811102C00E948F290E9484 -:10163000CB2990E090937404809373040230F0E718 -:101640001F0721F480917304816080C0033020E77C -:10165000120721F480917304826078C0043030E76F -:10166000130721F480917304846070C0053080E713 -:10167000180719F48091730427C0063090E7190702 -:1016800021F480917304806161C00730E0E71E0798 -:1016900021F480917304806259C00830F0E71F077D -:1016A00021F480917304806451C0093020E712074F -:1016B00021F480917304806849C00A3030E7130731 -:1016C00029F4809173048460886040C00B3080E707 -:1016D000180721F4809173048E7F38C00C3090E796 -:1016E000190721F4809173048D7F30C00D30E0E73D -:1016F0001E0721F4809173048B7F28C00E30F0E721 -:101700001F0719F48091730420C00F3020E71207DF -:1017100021F4809173048F7E19C0003130E71307E4 -:1017200021F4809173048F7D11C0013180E7180787 -:1017300021F4809173048F7B09C08091730402317E -:10174000104711F48F7702C08B7F877F80937304DB -:10175000809173040E94CF296AC0011530E71307F6 -:1017600041F00130104731F181E0809335038093DF -:101770003603C701A3960FB6F894DEBF0FBECDBFE8 -:10178000DF91CF911F910F91FF90EF90BF90AF909D -:101790009F908F900C9405060431F0E71F07A0F48A -:1017A000023020E7120708F037CF011530E71307A2 -:1017B000C1F616CFF70182818823D9F280916204A5 -:1017C00081608093620433C0033390E71907A1F46A -:1017D000F7018281882321F01092350382E017C03F -:1017E00080913503811106C086E20E944E1E86E27A -:1017F0000E94161F82E019C00433104709F0B4CFCD -:10180000F7018281882331F01092360380E20E9432 -:10181000651F0DC080913603811106C087E20E94CA -:101820004E1E87E20E94161F80E20E946C1F80E01D -:10183000A3960FB6F894DEBF0FBECDBFDF91CF9158 -:101840001F910F91FF90EF90BF90AF909F908F905E -:1018500008952CE0729FF001112430E3839FE00D86 -:10186000F11D1124E60FF11DEE0FFF1FE35CFD4F8C -:10187000859194910E94DD0D811540E5940708F053 -:1018800047C0811520E4920708F013C1883E9105F6 -:1018900020F5803E910508F07CC1883A910578F4E6 -:1018A000853A910508F0A5C08130910509F471C110 -:1018B00008F42EC18430910508F06BC129C18B3B1F -:1018C000910508F4A1C0803C910508F421C1FC01F8 -:1018D000EE0FFF1FE354FF4FE6C0811530E2930780 -:1018E00058F4811541E0940708F053C1803F9105F9 -:1018F00008F40EC190650895811520E3920708F061 -:10190000D5C0FC01FF70EE0FFF1FE35CFD4FCBC0A5 -:10191000811535E5930708F043C0811544E5940728 -:1019200008F0DEC0811522E5920708F5811531E542 -:10193000930708F0C1C0482F437021E030E002C097 -:10194000220F331F4A95E2F73C68AC0164E05695DC -:1019500047956A95E1F74370342B8F70869586958D -:1019600040E2849FC0011124822B932B0895282FDD -:1019700026952695AC01437055278115934508F0AF -:10198000A0C080E2289F9001112481E090E002C075 -:10199000880F991F4A95E2F7822B932B9C68089534 -:1019A0008F3240E7940790F48F3120E7920708F0D8 -:1019B000A2C0811536E5930708F497C09C01305604 -:1019C0002115304108F0A4C09F7093C0803320E7F8 -:1019D000920709F497C008F492C0813340E7940756 -:1019E00009F493C08233904709F092C080E093EDF0 -:1019F0000895853A910509F48EC0863A910509F05B -:101A00008DC082E890E40895883A910509F489C070 -:101A1000893A910509F488C08A3A910509F487C08A -:101A20008B3A910509F486C08C3A910509F485C07A -:101A30008D3A910509F484C0803B910509F483C077 -:101A40008E3A910509F482C08F3A910509F481C05C -:101A5000813B910509F480C0823B910509F47FC068 -:101A6000833B910509F47EC0843B910509F47DC058 -:101A7000853B910509F47CC0863B910509F47BC048 -:101A8000873B910509F47AC0883B910509F479C038 -:101A9000893B910509F478C08A3B910509F477C028 -:101AA00080E094E408958591949108959927906C2D -:101AB00008959F70906A0895982F8827816F906A83 -:101AC000089590E2299F9001112481E090E002C0E6 -:101AD000880F991F4A95E2F7822B932B9A680895F5 -:101AE000982F8827846F906A08958F719927982F6F -:101AF0008827906208958F519047946D089580E0F3 -:101B000091ED089580E090ED089580E092ED0895C4 -:101B100080E090E0089581E890E4089583E890E4FF -:101B2000089582EE94E4089589EE94E408958AEE8F -:101B300094E4089585EB94E4089586EB94E4089585 -:101B400087EB94E408958CEC94E408958DEC94E490 -:101B5000089583E895E408958AE895E4089582E974 -:101B600095E4089584E995E4089581E296E4089562 -:101B700083E296E4089584E296E4089585E296E48B -:101B8000089586E296E4089587E296E408958AE24D -:101B900096E4089508959CE0799FF001112490E364 -:101BA000899FE00DF11D1124E60FF11DEE0FFF1FBF -:101BB000E35CFD4F8591949108958238910549F138 -:101BC000B0F48133910509F458C048F48932910585 -:101BD00009F44EC08A32910509F454C00895853342 -:101BE000910509F440C08933910599F00895833E29 -:101BF000910529F138F4803E910591F0823E9105DE -:101C0000A1F00895863E9105F9F0873E910531F1E6 -:101C100008952091730420FD3AC021FD38C0089535 -:101C20008091730480FD35C032C08091730482FFBF -:101C300032C08091730484FD30C083EE39C080913E -:101C4000730482FD28C0F5CF8091730483FF27C001 -:101C50008091730484FD21C087EE2AC080917304B3 -:101C600083FD1DC0F5CF8091730485FD1AC01BC094 -:101C70008091730485FD17C014C08091730486FDA4 -:101C800014C015C08091730486FD11C00EC080EE93 -:101C90000FC089E30DC082EE0BC080E009C086EE64 -:101CA00007C089E205C085E303C08AE201C081E381 -:101CB00090E008950C940706E82FF0E0E254FD4F01 -:101CC0008081E82FEF70F0E082958F7021E030E0A6 -:101CD000A90102C0440F551F8A95E2F740A3089559 -:101CE0000F931F93CF93DF93C3E0D0E001E010E0A8 -:101CF000FE01E254FD4F8081E82FEF70F0E021A15A -:101D000082958F70A80102C0440F551F8A95E2F793 -:101D1000CA01822B81A38C2F0E945C0E219740F771 -:101D20008BE090E061E070E0FC01EE54FD4F20811B -:101D3000E22FEF70F0E042A122952F70DB0102C08C -:101D4000AA0FBB1F2A95E2F79D01242B22A301971E -:101D500058F7DF91CF911F910F9108950F931F9323 -:101D6000CF93DF9385B7806885BF85B7806885BFCF -:101D7000C3E0D0E001E010E0FE01E254FD4F8081BD -:101D8000E82FEF70F0E021A182958F70A80102C0CA -:101D9000440F551F8A95E2F7CA01822B81A38C2F2D -:101DA0000E945C0E219740F78BE090E061E070E0CC -:101DB000FC01EE54FD4F2081E22FEF70F0E042A1D4 -:101DC00022952F70DB0102C0AA0FBB1F2A95E2F7F4 -:101DD0009D01242B22A3019758F7DF91CF911F91EA -:101DE0000F910C94ED08EF92FF920F931F93CF93F6 -:101DF000DF9300E913E0C3E0EE24E394F12CD5E097 -:101E00008C2F0E945C0E8BE090E040E050E0FC01E3 -:101E1000EE54FD4F6081E62FEF70F0E020A130E03E -:101E200062956F7002C0359527956A95E2F720FD9F -:101E300009C09701082E02C0220F331F0A94E2F74F -:101E4000422B532B019718F7F801929182918F0141 -:101E50008417950721F051834083D09375028C2F0E -:101E60000E945C0EC15060F68091750287FD2CC007 -:101E70008150809375028F3F39F08FE99FE0019781 -:101E8000F1F700C0000020C080918E0390918F0375 -:101E9000909397038093960380918C0390918D0388 -:101EA000909395038093940380918A0390918B0380 -:101EB0009093930380939203809188039091890378 -:101EC00090939103809390030E94EF0881E0DF914B -:101ED000CF911F910F91FF90EF900895E82FF0E0C0 -:101EE000EE0FFF1FE057FC4F808191810895089508 -:101EF0000F931F93CF9308E913E0C0E0F80192918C -:101F000082918F010E946D28C80FF3E000391F07EE -:101F1000A9F78C2FCF911F910F9108950E94B3299B -:101F2000811102C00E948F290E94DD2980937904CB -:101F30003E9A809171008D7F8093710082E0809342 -:101F400090008AE18093910081E080939A03089544 -:101F500080919A03811102C00E948E0F1092EA03B1 -:101F60001092E903809171008D7F809371008091C0 -:101F700090008F73809390001092AC031092AB038B -:101F80001092E3031092E4031092E5031092E6032B -:101F90001092E2031092E103E1ECF3E0A1EBB3E075 -:101FA00011921192119211921D921D9283E0E13EC5 -:101FB000F807B1F70895CF92DF92EF92FF920F9357 -:101FC0001F93CF93DF932091AB03222309F484C0A6 -:101FD0006B017C0180919A03811102C00E948E0FD7 -:101FE00001EE13E0C7E0D0E0A7019601F80192915D -:101FF0008291729162918F010E94322F811131C0C2 -:10200000FE01EE0FFF1FEE0FFF1FEF53FC4F10827C -:10201000118212821382DE01AA0FBB1FAF54BC4F84 -:1020200011961C921E92C730D105E9F02196448189 -:1020300055816681778140835183628373831482E3 -:1020400015821682178212968D919C911397119684 -:102050009C938E9313961C921E921297349612960E -:10206000E2CF219708F68091E9039091EA03019766 -:1020700097FD05C09093EA038093E90304C0109292 -:10208000EA031092E9038091E9039091EA03209119 -:10209000E7033091E8032817390724F01092E8038A -:1020A0001092E703892BC1F4809171008D7F80939A -:1020B0007100809190008F73809390001092E303E1 -:1020C0001092E4031092E5031092E6031092E203EB -:1020D0001092E1031092AB03DF91CF911F910F910A -:1020E000FF90EF90DF90CF9008951F920F920FB660 -:1020F0000F9211244F925F926F927F928F929F92D4 -:10210000AF92BF92CF92DF92EF92FF922F933F93C5 -:102110004F935F936F937F938F939F93AF93BF93EF -:10212000CF93DF93EF93FF938091AB03882309F460 -:102130009BC1C091E903D091EA031C161D060CF067 -:1021400093C140909B0350909C0360909D037090BE -:102150009E0320E030E0A901C301B2010E94DD30FE -:1021600018160CF065C0C130D10509F452C0809139 -:10217000E7039091E803BE010E94AF327C01909387 -:10218000E8038093E7038090AD039090AE03A090A6 -:10219000AF03B090B00320E030E040E85FE3C5015A -:1021A000B4010E94CE2E6093AD037093AE03809372 -:1021B000AF039093B003F701EE0FFF1FEE0FFF1F69 -:1021C000EF53FC4FA3019201608171818281938161 -:1021D0000E94362F20E030E040E05EE30E94E130D4 -:1021E0009B01AC01C501B4010E94DD3018168CF4CE -:1021F000C7010196BE010E94AF329093E80380931D -:10220000E7031092AD031092AE031092AF03109249 -:10221000B003E091E703F091E803EE0FFF1FEE0F2C -:10222000FF1FEF53FC4F6081718182819381D0C089 -:10223000C090E303D090E403E090E503F090E60360 -:1022400020E030E0A901C701B6010E94322F21979A -:10225000882309F4A2C0FE01EE0FFF1FEE0FFF1F3F -:10226000EF53FC4F80809180A280B380A501940140 -:10227000C701B6010E94322F87FF31C0A50194012A -:1022800060E070E08CED93EC0E94362F20E030E0AF -:1022900040E451E40E94362F20E030E040E05FE36C -:1022A0000E94E1309B01AC0160E070E080E090E4CE -:1022B0000E9444319B01AC01C501B4010E94E13090 -:1022C0009B01AC01C701B6010E94322F87FF07C0F6 -:1022D000A701960160E070E08CED93E439C0A501A0 -:1022E0009401C701B6010E94DD3018160CF055C0EC -:1022F000A501940160E070E08CED93E40E94362F1C -:1023000020E030E040E451E40E94362F20E030E04D -:1023100040E05FE30E94E1309B01AC0160E070E0CF -:1023200080E090E40E9444319B01AC01C501B401FE -:102330000E94E1309B01AC01C701B6010E94DD3073 -:1023400018165CF5A701960160E070E08CED93EC47 -:102350000E94362F20E030E040E451E40E94362F06 -:1023600020E030E040E05FE30E94E1309B01AC01FF -:1023700060E070E080E090E40E9444319B01AC0199 -:10238000C701B6010E94E1306093E3037093E40358 -:102390008093E5039093E60313C0FE01EE0FFF1F49 -:1023A000EE0FFF1FEF53FC4F80819181A281B3811B -:1023B0008093E3039093E403A093E503B093E603D3 -:1023C0006091E3037091E4038091E5039091E6034B -:1023D00020919803309199032F3F4FEF340731F04C -:1023E0002F5F3F4F30939903209398030E94B014BE -:1023F0006B017C0120E034E244EF51E40E94322F73 -:1024000087FF08C086EFC82E88E2D82E84EFE82E1A -:1024100081E4F82E20E030E040E051E4C701B6014D -:102420000E94E1309B01AC0160E074E284E79BE430 -:102430000E94362F6B017C010E94A32F709397009E -:102440006093960020917602309177024091780255 -:1024500050917902C701B6010E94E1300E94A32F7A -:1024600070939900609398008091AC03882309F4DD -:1024700033C1C090A703D090A803E090A903F090C7 -:10248000AA0320E030E0A901C701B6010E94DD30B7 -:102490001816D4F580919803909199038F3F2FEFF0 -:1024A000920729F001969093990380939803C701AE -:1024B000B6010E94B01420E030E040E051E40E94F8 -:1024C000E1309B01AC0160E074E284E79BE40E9490 -:1024D000362F6B017C010E94A32F709397006093AD -:1024E00096002091760230917702409178025091C7 -:1024F0007902C701B6010E94E1300E94A32F7093B8 -:1025000099006093980008C010929700109296006E -:1025100010929900109298006091A1037091A2030B -:102520006F5F7F4F7093A2036093A1032091960089 -:102530003091970080E090E0232BF1F0C09196005D -:10254000D09197000E94CF2F6B017C01BE0180E0EB -:1025500090E00E94CF2F9B01AC016091A30370918A -:10256000A4038091A5039091A6030E94362F20E03A -:102570003FEF4FE757E410C00E94CF2F6B017C0163 -:1025800020E030EE4FEF54E46091A3037091A40378 -:102590008091A5039091A6030E94E1309B01AC01BC -:1025A000C701B6010E94DD3087FD96C080919F0370 -:1025B0008F5F80939F0390E02091750430917604A3 -:1025C00082179307A0F080918004882319F010925D -:1025D0009F030DC0809171008D7F80937100809169 -:1025E00090008F73809390001092AC037DC0809117 -:1025F000A003C0919F03811128C0C0907A04D0909D -:102600007B04E0907C04F0907D0420E030E0A901A0 -:10261000C701B6010E94DD301816BCF481E080933A -:10262000A0031092A7031092A8031092A90310927E -:10263000AA03C092A303D092A403E092A503F09250 -:10264000A603C150C0939F0343C01092A0031092F1 -:10265000990310929803E0917704F091780448E090 -:10266000C49FE00DF11D112480819181A281B3816D -:102670008093A7039093A803A093A903B093AA0300 -:1026800020E030E040E85EE36481758186819781D7 -:102690000E94E1306B017C0180917A02682F70E02A -:1026A00080E090E00E94CF2F20E030E048EC52E440 -:1026B0000E94362F9B01AC01C701B6010E94E13098 -:1026C0006093A3037093A4038093A5039093A60340 -:1026D0001092A2031092A1038091790480FD04C09E -:1026E0001092AC031092AB03FF91EF91DF91CF9169 -:1026F000BF91AF919F918F917F916F915F914F911A -:102700003F912F91FF90EF90DF90CF90BF90AF90CF -:102710009F908F907F906F905F904F900F900FBE23 -:102720000F901F901895CF92DF92EF92FF92CF9368 -:10273000DF936B017C01EA0180919A03811102C051 -:102740000E948E0F8091790480FF46C08091E9033A -:102750009091EA0308970CF03FC0809171008D7F43 -:10276000809371008091AC0381110E94A80F81E0D9 -:102770008093AB03109299031092980320E030E00D -:10278000A901C701B6010E94DD301816DCF4809162 -:10279000E9039091EA03FC01EE0FFF1FEE0FFF1F0C -:1027A000EF53FC4FC082D182E282F382FC01EE0F34 -:1027B000FF1FEF54FC4FD183C08301969093EA032F -:1027C0008093E90380917100826080937100809111 -:1027D0009000806880939000DF91CF91FF90EF9000 -:1027E000DF90CF9008958F929F92AF92BF92CF9239 -:1027F000DF92EF92FF920F931F93CF93DF93EC0141 -:102800007B01D42E4801590180919A03811102C0A5 -:102810000E948E0F8091790480FF6BC080917100BF -:102820008D7F809371008091AB0381110E94A80F6E -:1028300081E08093AC03D0937804C0937704F09246 -:102840007604E0927504D092800480927A0490928B -:102850007B04A0927C04B0927D041092AD03109290 -:10286000AE031092AF031092B00310929F038881C1 -:102870009981AA81BB818093A7039093A803A09319 -:10288000A903B093AA0320E030E040E85EE36C8146 -:102890007D818E819F810E94E1306B017C0180915E -:1028A0007A02682F70E080E090E00E94CF2F20E055 -:1028B00030E048EC52E40E94362F9B01AC01C70186 -:1028C000B6010E94E1306093A3037093A403809348 -:1028D000A5039093A6031092A2031092A1038091E6 -:1028E0007100826080937100809190008068809375 -:1028F0009000DF91CF911F910F91FF90EF90DF90AB -:10290000CF90BF90AF909F908F9008958091790461 -:1029100081700895809179048160809379040E9488 -:10292000E1290C944709809179048E7F8093790482 -:102930000C94E1298091EB0390E0019666E070E051 -:102940000E94AF328093EB0308958091EB0390E0F7 -:10295000019766E070E00E94AF328093EB03089528 -:102960008F929F92AF92BF92CF92DF92EF92FF929F -:102970000F931F93CF93DF936B017C01C09198035A -:10298000D0919903BE0180E090E00E94CF2F4B01CF -:102990005C01A701960160E070E08CE594E40E9480 -:1029A000362F9B01AC01C501B4010E94E1300E94A9 -:1029B000A32F2091EB03233009F473C028F42223C2 -:1029C00051F02130E9F02CC1243009F4A0C02530A9 -:1029D00009F4E0C025C180E090E0A0E0BFE380936F -:1029E000760290937702A0937802B09379021092C6 -:1029F0009B0310929C0310929D0310929E0310C1A2 -:102A000010929B0310929C0310929D0310929E03C0 -:102A10006431710540F46A30710560F520E030E002 -:102A200040E85EE32BC0693C710508F0AAC080E075 -:102A300090E00E94CF2F20E030E040EA51E40E9475 -:102A4000CD2E20E030E044E353E40E94362F9B017A -:102A5000AC010E94E13020E030E040E05EE30E9403 -:102A6000E1309B01AC0160E070E080E09EE30E94F9 -:102A7000CD2E44C020E030E040E05FE3C701B60166 -:102A80000E94E1306B017C0180E090E0A0E0BEE3B9 -:102A90008093760290937702A0937802B0937902A4 -:102AA000BFC010929B0310929C0310929D03109242 -:102AB0009E034AE0469F9001479F300D1124C901B3 -:102AC00068EB7BE00E949B32BC016C5D754077FF38 -:102AD00003C0719561957109882777FD8095982FBE -:102AE0000E94D12F2EE333EC4EE259E30E94E130F5 -:102AF00020E030E040EC5EE30E94CE2E6093760250 -:102B000070937702809378029093790289C0109233 -:102B10009B0310929C0310929D0310929E03CE0182 -:102B200083709927892BE1F0BE016170772780E0DF -:102B300090E00E94CF2F20E030E040E05EE30E9472 -:102B4000E13020E030E040E45FE30E94CE2E60936D -:102B500076027093770280937802909379020CC08A -:102B600080E090E0A0E0BFE380937602909377024C -:102B7000A0937802B0937902C770DD27CD2B09F0BE -:102B80004FC0109276021092770210927802109243 -:102B9000790246C010929B0310929C0310929D03F1 -:102BA00010929E0300E010E020E03FE300937602E5 -:102BB0001093770220937802309379026739710578 -:102BC00078F180E090E00E94CF2F20E030E047E1F4 -:102BD00053E40E94CD2E20E030E04AE754E40E9406 -:102BE000362F20E030E048E452E40E94E13020E05B -:102BF00030E040EA51E40E9413300E949E2F660F9D -:102C0000771F660F771FFB01EE53FD4F2081318147 -:102C100042815381C701B6010E94E1306B017C0102 -:102C2000C701B601DF91CF911F910F91FF90EF90F7 -:102C3000DF90CF90BF90AF909F908F90089580913C -:102C4000FC030895CF93DF9300D01F92CDB7DEB77A -:102C50009C0180918504843019F593E099833B832E -:102C60002A839093E9008FEF9091E800815095FDC1 -:102C700006C095ED9A95F1F700008111F5CF80918E -:102C8000E80085FF0DC040E050E063E070E0CE0159 -:102C900001960E947F188091E8008E778093E8006B -:102CA0000F900F900F90DF91CF910895CF93DF9306 -:102CB00000D01F92CDB7DEB720918504243021F5D6 -:102CC00022E029839B838A8383E08093E9008FEF4E -:102CD0009091E800815095FD06C095ED9A95F1F729 -:102CE00000008111F5CF8091E80085FF0DC040E024 -:102CF00050E063E070E0CE0101960E947F18809161 -:102D0000E8008E778093E8000F900F900F90DF918E -:102D1000CF910895209185042430F1F422E020938E -:102D2000E9002FEF3091E800215035FD06C035ED68 -:102D30003A95F1F700002111F5CF2091E80025FF29 -:102D40000BC040E050E065E070E00E947F18809189 -:102D5000E8008E778093E8000895CF93DF93EC012D -:102D600090918504943009F046C0809185028823B3 -:102D7000D9F0809186028823B9F09093E9008FEF13 -:102D80009091E800815095FD06C095E19A95F1F784 -:102D900000008111F5CF8091E80085FF2CC040E054 -:102DA00050E060E170E017C081E08093E9008FEFB0 -:102DB0009091E800815095FD06C095ED9A95F1F748 -:102DC00000008111F5CF8091E80085FF14C040E03C -:102DD00050E068E070E0CE010E947F188091E8002A -:102DE0008E778093E80080E1FE01ACEEB3E00190C5 -:102DF0000D928A95E1F7DF91CF9108958091840437 -:102E0000811109C00E94141A0E94711A8091E20077 -:102E100084608093E20008951092840408950895D8 -:102E200008950C94B72842E061EC81E00E948E196D -:102E300042E061EC82E00E948E1942E061EC83E0A6 -:102E40000E948E1942E161EC84E00C948E1980910D -:102E50008704833009F455C030F4813071F082303A -:102E600009F48EC008958A3009F47AC08B3009F4D1 -:102E700060C0893009F09CC020C080918604813AEE -:102E800009F096C08091E800877F8093E8008091E8 -:102E90008A0490918B04892B21F460E18CEE93E0FD -:102EA00003C060E080E090E070E00E94CA1880916A -:102EB000E8008B778093E800089580918604813242 -:102EC00009F076C080918A0490918B04009719F0E4 -:102ED000039709F06DC08091E800877F8093E80038 -:102EE0008091E80082FD05C0809185048111F8CFB2 -:102EF0005FC08091F1008093FC038091E8008B77A4 -:102F000053C080918604813A09F052C080918A04AE -:102F100090918B04892B09F04BC08091E800877F4A -:102F20008093E8008091E80080FFFCCF80918502CB -:102F300036C0809186048132D9F580918A049091BF -:102F40008B04892BA9F58091E800877F8093E800A6 -:102F50000E94C31980918804809385020C94F92102 -:102F600080918604813221F58091E800877F8093EB -:102F7000E8000E94C319809189048093FD0308959D -:102F800080918604813AA1F48091E800877F809344 -:102F9000E8008091E80080FFFCCF8091FD038093E2 -:102FA000F1008091E8008E778093E8000C94C319BB -:102FB000089584B7877F84BF88E10FB6F894809323 -:102FC0006000109260000FBE80E880936100109254 -:102FD00061000E94661D0E94141A0E94711A80915D -:102FE000E20084608093E20078940E94F71C0E94C3 -:102FF000681D8BE792E00E94121D80918504853048 -:1030000069F40E947928809183048823B1F30E9497 -:10301000A628882391F30E946918EFCF0E94701DA3 -:10302000ECCF292F332723303105C9F064F4213048 -:10303000310581F02230310509F043C08DE690E082 -:1030400029EF39E042C021323105F1F02232310559 -:1030500041F137C082E190E026E63AE036C0992798 -:103060008130910541F08230910541F0892B49F57D -:10307000E5EFF9E005C0E7ECF9E002C0EDE9F9E0C1 -:10308000849190E09F0121C06430D8F4E62FF0E0F5 -:10309000EE0FFF1FE25EFC4F2081318189E090E05E -:1030A00014C0643070F470E0FB01EE0FFF1FEA5EA5 -:1030B000FC4F20813181FB01EE5EFC4F808190E06E -:1030C00004C080E090E020E030E0FA01318320830A -:1030D000089580E189BD82E189BD09B400FEFDCF7C -:1030E0008091D8008F7D8093D8008091E00082602D -:1030F0008093E0008091E00081FDFCCF0895CF92A5 -:10310000DF92EF92FF920F931F93CF93DF93EC0127 -:103110008B016A010E94E219811133C0C114D104EC -:1031200039F0F60180819181081B190BC80FD91F56 -:10313000E12CF12C0115110519F18091E80085FDB4 -:1031400016C08091E8008E778093E800C114D10406 -:1031500049F0F60180819181E80EF91EF182E0824A -:1031600085E00FC00E94E219882321F30AC08991EB -:103170008093F10001501109FFEFEF1AFF0ADACF37 -:1031800080E0DF91CF911F910F91FF90EF90DF9042 -:10319000CF90089520918C0430918D042617370725 -:1031A00048F06115710539F42091E8002E772093DD -:1031B000E80001C0B90140E061157105A9F1209155 -:1031C0008504222309F443C0253009F442C020912C -:1031D000E80023FD40C02091E80022FD32C020918C -:1031E000E80020FFE9CF4091F3002091F20030E0A9 -:1031F000342BFC01CF016115710559F028303105E0 -:1032000040F481918093F100615071092F5F3F4F2D -:10321000F1CF41E02830310509F040E02091E8008D -:103220002E772093E800C8CF4111C9CF0AC0809102 -:103230008504882361F0853061F08091E80083FD8A -:103240000AC08091E80082FFF2CF80E0089582E01A -:10325000089583E0089581E0089520918C043091D1 -:103260008D042617370748F06115710539F4209150 -:10327000E8002E772093E80001C0B901FC0120E0AE -:103280006115710591F180918504882309F440C08E -:10329000853009F43FC08091E80083FD3DC08091F6 -:1032A000E80082FD2FC08091E80080FFE9CF2091E7 -:1032B000F3008091F20090E0922B6115710559F0B6 -:1032C0008830910540F424912093F10031966150AB -:1032D00071090196F2CF21E0089709F020E0809172 -:1032E000E8008E778093E800CBCF2111CCCF0AC0C5 -:1032F00080918504882361F0853061F08091E80039 -:1033000083FD0AC08091E80082FFF2CF80E008953B -:1033100082E0089583E0089581E00895982F973022 -:1033200058F59093E900981739F07091EC002091CE -:10333000ED005091F00003C0242F762F50E021FFC4 -:1033400019C03091EB003E7F3093EB003091ED00DF -:103350003D7F3093ED003091EB0031603093EB0016 -:103360007093EC002093ED005093F0002091EE005C -:1033700027FF07C09F5FD3CF8F708093E90081E064 -:10338000089580E008958091860487FF11C08091A0 -:10339000E80082FD05C0809185048111F8CF11C03D -:1033A0008091E8008B770BC080918504882349F0D9 -:1033B0008091E80080FFF8CF8091E8008E778093BD -:1033C000E80008952091E4003091E50095E64091F1 -:1033D000EC00842F817040FF22C08091E80080FDC6 -:1033E0001CC080918504882391F0853091F08091F4 -:1033F000EB0085FD10C04091E4005091E5004217BC -:10340000530729F39A01915011F784E0089582E05F -:10341000089583E0089581E0089580E00895409143 -:10342000E80042FFDECF08950E94821A0E948A1AA5 -:10343000E0EEF0E0808181608083E8EDF0E0808163 -:103440008F77808319BCA7EDB0E08C918E7F8C9331 -:1034500080818F7E80831092840408950F931F9340 -:10346000CF93DF930E94821A0E948A1AC8EDD0E09F -:1034700088818F77888388818068888388818F7D21 -:10348000888319BC109285041092810410928304E1 -:103490001092820400EE10E0F80180818B7F80831F -:1034A00088818160888342E060E080E00E948E191C -:1034B000E1EEF0E080818E7F8083E2EEF0E08081BB -:1034C00081608083808188608083F80180818E7F25 -:1034D0008083888180618883DF91CF911F910F91D4 -:1034E0000895E8EDF0E080818F7E8083E7EDF0E0E5 -:1034F00080818160808384E082BF81E08093840446 -:103500000C942E1AE8EDF0E080818E7F808310927B -:10351000E20008951092DA001092E10008951F92DF -:103520000F920FB60F9211242F933F934F935F93F7 -:103530006F937F938F939F93AF93BF93EF93FF937B -:103540008091E10082FF0BC08091E20082FF07C002 -:103550008091E1008B7F8093E1000E94F61C8091B6 -:10356000DA0080FF1FC08091D80080FF1BC08091CF -:10357000DA008E7F8093DA008091D90080FF0DC041 -:1035800080E189BD82E189BD09B400FEFDCF81E003 -:10359000809385040E94FE1605C019BC1092850414 -:1035A0000E940C178091E10080FF19C08091E20019 -:1035B00080FF15C08091E2008E7F8093E2008091B1 -:1035C000E20080618093E2008091D8008062809365 -:1035D000D80019BC85E0809385040E941017809163 -:1035E000E10084FF30C08091E20084FF2CC080E1C4 -:1035F00089BD82E189BD09B400FEFDCF8091D8006C -:103600008F7D8093D8008091E1008F7E8093E100D0 -:103610008091E2008F7E8093E2008091E2008160E1 -:103620008093E20080918104882311F084E007C038 -:103630008091E30087FD02C081E001C083E08093B8 -:1036400085040E9411178091E10083FF29C08091B9 -:10365000E20083FF25C08091E100877F8093E10035 -:1036600082E080938504109281048091E1008E7F36 -:103670008093E1008091E2008E7F8093E200809150 -:10368000E20080618093E20042E060E080E00E941E -:103690008E198091F00088608093F0000E940F17CF -:1036A000FF91EF91BF91AF919F918F917F916F911A -:1036B0005F914F913F912F910F900FBE0F901F90F0 -:1036C00018951F920F920FB60F9211242F933F93CC -:1036D0004F935F936F937F938F939F93AF93BF931A -:1036E000CF93DF93EF93FF93C091E900CF70809168 -:1036F000EC00D82FD17080FDD0E81092E9008091C5 -:10370000F000877F8093F00078940E94A51B1092B0 -:10371000E9008091F00088608093F000CD2BCF709D -:10372000C093E900FF91EF91DF91CF91BF91AF91ED -:103730009F918F917F916F915F914F913F912F91C9 -:103740000F900FBE0F901F9018951F93CF93DF938C -:10375000CDB7DEB7AA970FB6F894DEBF0FBECDBFC8 -:10376000E6E8F4E088E08E0F9091F10091938E13DB -:10377000FBCF0E9427178091E80083FF1FC1809133 -:10378000860490918704492F50E04A30510508F093 -:1037900015C1FA01EC59FF4F0C94C332803881F007 -:1037A000823809F00BC180918A048F708093E90000 -:1037B0008091EB0085FB882780F91092E90006C014 -:1037C0008091820490918304911182609091E8002D -:1037D000977F9093E8008093F1001092F100C8C0A9 -:1037E000282F2D7F09F0EAC0882319F0823061F07C -:1037F000E5C080918804813009F0E0C0933009F081 -:1038000080E0809383042BC080918804811127C0BD -:1038100080918A048F7009F4D1C08093E9002091CF -:10382000EB0020FF1CC0933021F48091EB008062FC -:1038300014C09091EB0090619093EB0021E030E098 -:10384000A90102C0440F551F8A95E2F74093EA0090 -:103850001092EA008091EB0088608093EB00109258 -:10386000E9008091E800877F86C08111A7C0109190 -:1038700088041F778091E3008078812B8093E30098 -:103880008091E800877F8093E8000E94C3198091AF -:10389000E80080FFFCCF8091E30080688093E30024 -:1038A000111102C082E001C083E08093850486C0CC -:1038B0008058823008F082C08091880490918904F9 -:1038C0008C3D53E0950779F583E08A838AE289830A -:1038D0004FB7F894DE01139620E03EE051E2E32F6B -:1038E000F0E050935700E49120FF03C0E295EF70A1 -:1038F0003F5FEF708E2F90E0EA3010F0C79601C066 -:10390000C0968D939D932F5F243149F74FBF8091CF -:10391000E800877F8093E8006AE270E0CE010196BC -:103920000E94CA1814C0AE014F5F5F4F60918A04B5 -:103930000E941118BC01009709F440C09091E80062 -:10394000977F9093E80089819A810E942D19809138 -:10395000E8008B778093E80031C0803879F580915A -:10396000E800877F8093E800809181048093F100D4 -:103970008091E8008E778093E8000E94C3191EC0F2 -:1039800081111CC0909188049230C0F48091E800AD -:10399000877F8093E800909381040E94C3198091EF -:1039A0008104811106C08091E30087FD02C081E09F -:1039B00001C084E0809385040E9413178091E80081 -:1039C00083FF0AC08091E800877F8093E8008091A0 -:1039D000EB0080628093EB00AA960FB6F894DEBFEE -:1039E0000FBECDBFDF91CF911F9108950895CF9362 -:1039F000809185048823A1F0C091E900CF70909157 -:103A0000EC00892F817090FD80E8C82B1092E900AE -:103A10008091E80083FD0E94A51BCF70C093E90050 -:103A2000CF91089590930304809302040895E09148 -:103A30000204F0910304309721F00190F081E02D11 -:103A4000099480E00895E0910204F0910304309716 -:103A500021F00280F381E02D09940895E0910204A1 -:103A6000F0910304309721F00480F581E02D099452 -:103A7000089520910004309101048217930771F09A -:103A80009093010480930004E0910204F0910304F8 -:103A9000309721F00680F781E02D09940895209158 -:103AA000FE033091FF038217930771F09093FF0399 -:103AB0008093FE03E0910204F0910304309721F01B -:103AC0000084F185E02D0994089508950C94651DF6 -:103AD0000E94EB280E94AE0E0E9471290C94322E97 -:103AE0005F926F927F928F929F92AF92BF92CF928E -:103AF000DF92EF92FF920F931F93CF93DF9300D04B -:103B000000D01F92CDB7DEB70E94F30E9DE0C92E04 -:103B100094E0D92E03E010E0AA24A394B12C502EF7 -:103B2000802F0E946E0F4C01F601729062906F011F -:103B30006826792661147104A1F40150110978F7FF -:103B40008FEF89838A831B820E94F4288160782FFB -:103B50009D838C8349815A816B818D810E94201EB7 -:103B600038C08091620481FD0E94770F2BE030E025 -:103B70007501022E02C0EE0CFF1C0A94E2F7C70189 -:103B800086219721892B09F129835A828E209F2033 -:103B900091E0892809F490E09B830E94F4288160D9 -:103BA000782F9D838C8349815A816B818D810E94FE -:103BB000201E000F111FF801EB5FFB4F80819181E8 -:103BC000E826F926F182E08204C02150310980F60E -:103BD000B4CF0E94602B109104040E94171D181787 -:103BE000D1F00E94171D809304040F900F900F9046 -:103BF0000F900F90DF91CF911F910F91FF90EF9059 -:103C0000DF90CF90BF90AF909F908F907F906F90FC -:103C10005F900C945A0E0F900F900F900F900F9092 -:103C2000DF91CF911F910F91FF90EF90DF90CF9098 -:103C3000BF90AF909F908F907F906F905F9008950E -:103C4000CF93DF93CDB7DEB72B970FB6F894DEBFD7 -:103C50000FBECDBF4F83588769877A878B87DE0178 -:103C6000119686E0FD0111928A95E9F785E0FE0143 -:103C7000379601900D928A95E1F749815A816B81BF -:103C80007C818D819E810E9497242B960FB6F8949B -:103C9000DEBF0FBECDBFDF91CF910895CF938823B4 -:103CA00009F4C2C0C82F823859F40E94171D81FD43 -:103CB000BBC089E30E9471270E943E2889E30CC0A3 -:103CC000833879F40E94171D80FDAEC083E50E9401 -:103CD00071270E943E2883E50E94B327CF910C9460 -:103CE0003E28843859F40E94171D82FD9DC087E448 -:103CF0000E9471270E943E2887E4EECF8CEF8C0F44 -:103D0000813A48F48C2F0E949B2D81118DC08C2FFD -:103D10000E947127E3CF80E28C0F883048F4C7708F -:103D200081E001C0880FCA95EAF70E94F727D6CF35 -:103D30008BE58C0F833078F4C53A29F0C63A31F020 -:103D400083E890E005C081E890E002C082E890E05E -:103D5000CF910C94391D88E58C0F833108F064C035 -:103D6000C83A39F1C93A41F1CA3A49F1CB3A51F16D -:103D7000CC3A59F1CD3A61F1C03B69F1CE3A71F1DB -:103D8000CF3A79F1C13B81F1C23B89F1C33B91F15B -:103D9000C43B99F1C53BA1F1C63BA9F1C73BB1F1C9 -:103DA000C83BB9F1C93BC1F1CA3BC9F180E090E021 -:103DB00038C082EE90E035C089EE90E032C08AEEE5 -:103DC00090E02FC085EB90E02CC086EB90E029C0FE -:103DD00087EB90E026C08CEC90E023C08DEC90E067 -:103DE00020C083E891E01DC08AE891E01AC082E912 -:103DF00091E017C084E991E014C081E292E011C023 -:103E000083E292E00EC084E292E00BC085E292E091 -:103E100008C086E292E005C087E292E002C08AE232 -:103E200092E0CF910C944F1DCF910895882309F40F -:103E30004BC0823859F40E94171D81FF45C089E3A9 -:103E40000E9471270E943E2889E30CC0833871F4D8 -:103E50000E94171D80FF38C083E50E9471270E94D1 -:103E60003E2883E50E94B3270C943E28843859F4F9 -:103E70000E94171D82FF28C087E40E9471270E94BC -:103E80003E2887E4EFCF9CEF980F913A58F390E2E9 -:103E9000980F983050F4877091E001C0990F8A957F -:103EA000EAF7892F0E94FD27DFCF9BE5980F93301B -:103EB00020F480E090E00C94391D885A833120F47E -:103EC00080E090E00C944F1D0895882321F00E941B -:103ED000F7270C943E280895882321F00E94FD279F -:103EE0000C943E2808957F928F929F92AF92BF923A -:103EF000CF92DF92EF92FF920F931F93CF93DF93B6 -:103F00001F92CDB7DEB77C01C62E772EFC0105814E -:103F100002950F70128111110E9414280E946A27C5 -:103F2000882379F0112369F080E28C0D883048F005 -:103F300082E00E9453270E946A2791E0D82ED9265A -:103F400001C0D12CE72DE295EF70F0E0E259FF4F70 -:103F50000C94C332872D807F072D0F70882311F0BA -:103F60000295007F112389F0002309F499C180E2B2 -:103F70008C0D883020F4802F0E94F72703C0802FFB -:103F80000E9407280E943E288BC18C2D0E94161F7C -:103F9000002309F4C3C180E28C0D883020F4802F07 -:103FA0000E94FD2703C0802F0E940D280E943E28FA -:103FB000B5C1872D807F972D9F70803211F4892F96 -:103FC00003C0892F8295807FCC2021F0F1E0CF16AD -:103FD000A1F01DC0112339F0002319F1013009F5BA -:103FE0000E9427289BC1002319F0013009F496C1D3 -:103FF00089830E942A28898110C1112321F006306B -:1040000008F08CC10EC0053008F088C106C111232C -:1040100059F0002331F0F701958190FF41C19F7065 -:1040200095830E94651F7AC1002309F4F6C03EC142 -:10403000872D86958695837090E0009719F00197FB -:1040400061F06CC1112321F08C2D972D937002C06B -:1040500080E090E00E94391D61C1112321F08C2D78 -:10406000972D937002C080E090E00E944F1D56C1D2 -:104070008C2D112319F00E94682A02C00E94D02AB8 -:104080000E94552B4BC1872D837009F052C011112E -:1040900045C18C2D829586958770880F880F9C2D41 -:1040A0009F70892E912CA12CB12C082E04C0880C55 -:1040B000991CAA1CBB1C0A94D2F7C4FE14C00FE0C2 -:1040C00010E020E030E0B901A80104C0440F551F02 -:1040D000661F771F8A95D2F7CB01BA01609570955C -:1040E0008095909503C060E070E0CB01272D269568 -:1040F0002695237030E02230310569F023303105F8 -:1041000089F0682979298A299B292130310571F0A4 -:104110000E94DF2503C1682979298A299B290E94E9 -:10412000FB25FCC00E94DF25C501B4010E94C32508 -:10413000F5C0112319F0872D817001C08695882361 -:1041400009F4ECC08C2D829586958770880F880FB6 -:104150009C2D9F70892E912CA12CB12C082E04C06F -:10416000880C991CAA1CBB1C0A94D2F7C4FE14C06C -:104170000FE010E020E030E0B901A80104C0440FD6 -:10418000551F661F771F8A95D2F7CB01BA0160953C -:1041900070958095909503C060E070E0CB01272D6D -:1041A000269526952370422F50E04230510569F044 -:1041B0004330510589F0682979298A299B294130A2 -:1041C000510571F00E94B926A9C0682979298A2968 -:1041D0009B290E94D526A2C00E94B926C501B40120 -:1041E0000E949D269BC08C2D90E0FC01E05EF109B1 -:1041F000E531F10508F050C0E258FF4F0C94C3328E -:104200000C2D0F70872D8F71112321F00E943626FF -:10421000802F07CF0E945726802F0E946C1F7EC0E0 -:10422000112341F0053008F079C0872D8F710E946D -:104230007C2674C0063008F071C0F7CF112339F026 -:10424000872D8F710E94362669C01123C9F3872DEF -:104250008F710E94572662C0112329F0872D8F711C -:104260000E9421265BC00E94172658C0112351F0DE -:10427000172D1F71812F0E94362663E0812F0E9427 -:104280004A274CC081E00E945327023008F446C000 -:1042900082E00E94532742C0112331F0002381F2B3 -:1042A0008C2D0E944E1E3AC0002389F28C2D0E9454 -:1042B000161F34C0472D4F706C2DC7010E940B078D -:1042C0000E943B252BC0111129C0472D4F7050E093 -:1042D00042305105B9F04CF44115510581F041309F -:1042E0005105E1F40E945A2E19C04330510569F07E -:1042F0004430510599F48C2D0E94AC2E0FC00E94C1 -:10430000432E0CC00E94762E09C00E94892E06C042 -:10431000472D4F706C2DC7010E94CA0DDD20F9F0AA -:104320000E94462780FD1BC0F70112820E94402791 -:104330000E943626C7010E94BE210E9440270F908E -:10434000DF91CF911F910F91FF90EF90DF90CF9071 -:10435000BF90AF909F908F907F900C9457260F90B6 -:10436000DF91CF911F910F91FF90EF90DF90CF9051 -:10437000BF90AF909F908F907F9008950F931F9361 -:10438000CF93DF93EC01888199812B813C81232B92 -:10439000B9F09F3F11F48F3F99F0CE010E94480978 -:1043A000882371F0688179818A810E943C278C0181 -:1043B0000E94F1260E94B825B801CE010E94731F09 -:1043C000DF91CF911F910F9108950E9414280E94B0 -:1043D00024280E94E9270E943E280E94062C0E9461 -:1043E000552B80E090E00E94391D80E090E00C9415 -:1043F0004F1D0E9404280C94E5210E943127292F8B -:1044000022952F7030E02C3031054CF42A303105E4 -:104410006CF42250310922303105A8F407C02C3049 -:10442000310569F02F30310551F00DC0803F69F042 -:1044300018F4803E40F409C0843F29F406C093FB81 -:10444000882780F9089580E0089581E00895CF934A -:10445000DF9300D000D01F92CDB7DEB70F900F9042 -:104460000F900F900F90DF91CF910895CF93DF932E -:1044700000D000D000D0CDB7DEB726960FB6F894A6 -:10448000DEBF0FBECDBFDF91CF9108951F93CF93B5 -:10449000DF93C0910D0416E080910E04C81799F0C7 -:1044A000D0E01C9FF0011D9FF00D1124E15FFB4F38 -:1044B0004081518162817381848195810E9436227D -:1044C0002196C770E9CFDF91CF911F910895409158 -:1044D0003F045091400460914104709142048091E6 -:1044E0004304909144040C943622809144048295B4 -:1044F0008F7009F054C080914104882309F44FC0A3 -:1045000080910D04A0910E0460913F0470914004CD -:104510004091420450914304B6E08A1709F43FC029 -:1045200090E041155105C1F17F3F11F46F3FA1F1BA -:10453000B89FF001B99FF00D1124E15FFB4F21817D -:1045400072132AC02081621327C02281211124C046 -:10455000238134812417350710F421503109241B9D -:10456000350B283C3105C0F4209144042F702061A4 -:104570002093440426E0289FF001299FF00D112488 -:10458000EC5EFB4F80818F70806180838FE394E0CD -:104590000E94BE210C94462201968770BECF0895DA -:1045A000CF92DF92EF92FF920F931F93CF93DF93FF -:1045B000CDB7DEB762970FB6F894DEBF0FBECDBFA2 -:1045C0008C0185E0F801DE011D9601900D928A951F -:1045D000E1F7D8014C9111965C91119712966C916C -:1045E00012971396CD90DC90149730913F04709100 -:1045F00040048091420490914304009709F46BC1F8 -:104600007F3F19F43F3F09F466C1E0904104EE207A -:1046100009F4C0C020914404C816D90628F0F60158 -:10462000E81BF90BCF0104C0809590958C0D9D1D62 -:10463000FF24F394883C910578F0F12C207F09F059 -:10464000C6C07C2DD98AC88A89890E9427228FE317 -:1046500094E00E94BE21B1C0822F807F09F046C045 -:10466000751314C0341312C0611110C02F70206173 -:10467000209344040E9467228FE394E00E94BE21AD -:1046800080914404D80115968C932EC0CD2819F141 -:104690005F3F11F44F3FF9F0F62E61111CC080917D -:1046A0000D0420910E0436E0821709F45AC090E000 -:1046B000389FF001399FF00D1124E15FFB4F7181AC -:1046C000571306C07081471303C07281711103C074 -:1046D00001968770E9CFF62E662309F418C1809100 -:1046E0004404816080934404F12C11C1751308C007 -:1046F000341306C0611104C080914404D801C3C0C2 -:104700004D875E878D859E856A8B0E94FD216A8913 -:104710008823E1F16623D1F120914404822F829510 -:104720008F7090E0029774F080913F049091400464 -:1047300098878F831986DB86CA862C87CE010796D9 -:104740000E94BE2186E0F801AFE3B4E001900D9233 -:104750008A95E1F70E9475220E946722FF24F39454 -:10476000D6C04D875E878D859E850E943127292F73 -:1047700022952F7030E0223031050CF0BCC09F70C4 -:1047800009F0B6C0805E883008F4C1C0C8010E943C -:10479000BE21E4CFC816D90608F453C0F601E81BC1 -:1047A000F90BCF01883C910508F450C0F12C7C2D09 -:1047B000D98AC88A89890E942722EFE3F4E086E03B -:1047C000DF011D928A95E9F70E946722A0C0751348 -:1047D00014C0341312C0611110C080914404F80158 -:1047E0008583C8010E94BE2186E0EFE3F4E0DF018B -:1047F0001D928A95E9F7FE2C8AC04D875E878D85CC -:104800009E856A8B0E94FD216A89882309F4BECFA8 -:10481000662309F4BBCF20914404822F82958F70C8 -:1048200090E002970CF48ECF80913F049091400469 -:104830009A8389831B82DD82CC822E83CE010196EE -:104840007FCF809590958C0D9D1DACCFF62E662365 -:1048500009F49CCF75132EC034132CC0209144044E -:1048600020FD1FC0822F82958F70D9F0D801159638 -:104870002C9315978F3049F08F5F982F9295907FEA -:10488000822F8F70892B15968C93C8010E94BE21B0 -:1048900086E0F801AFE3B4E001900D928A95E1F76C -:1048A00093CF86E0F801AFE3B4E001900D928A95D2 -:1048B000E1F72DC04D875E878D859E850E94FD2185 -:1048C000811140CF80914404816080934404C801E9 -:1048D0000E94BE211CC0662309F458CF4D875E8715 -:1048E0008D859E850E94FD21882309F44FCF2ACF14 -:1048F000811148CF0CC0243031050CF047CF9F7098 -:1049000009F440CFF8019581907F09F03BCF8F2DBE -:1049100062960FB6F894DEBF0FBECDBFDF91CF9188 -:104920001F910F91FF90EF90DF90CF9008951F930C -:10493000CF93DF93CDB7DEB72C970FB6F894DEBFD9 -:104940000FBECDBF4F83588769877A878B879C8737 -:10495000CE0107960E94D022882369F08F81988526 -:104960002A853B85232BF1F19F3F09F063C08F3FE0 -:1049700009F060C037C086E0FE013796DE0111966F -:1049800001900D928A95E1F76F817885EA85FB8524 -:10499000309741F17F3F11F46F3F21F120910E04D8 -:1049A00030E0C90101968770992740910D0450E0CD -:1049B0008417950709F447C069837A83FD83EC83E4 -:1049C00096E0929FD001939FB00D1124A15FBB4F41 -:1049D000FE01319601900D929A95E1F780930E04B5 -:1049E0000E94462216E080910D0490910E048917D2 -:1049F000C1F1189FC0011124815F9B4F0E94D022FA -:104A0000882379F1E0910D041E9FF0011124E15FEC -:104A1000FB4F4081518162817381848195810E9425 -:104A2000362280910D0490E001968770992780933B -:104A30000D04D9CF4F81588569857A858B859C85F2 -:104A40000E943622CFCF0E94F92110920E041092BC -:104A50000D04EFE3F4E086E0DF011D928A95E9F7AB -:104A6000C1CF2C960FB6F894DEBF0FBECDBFDF913D -:104A7000CF911F910895EF92FF920F931F93CF93C1 -:104A8000DF938C01009709F46CC0F12CEE24E394C1 -:104A9000E8012196F8018491843740F4843008F0CD -:104AA00051C0813081F0823019F15BC0853709F443 -:104AB00044C0A8F19CE7980F903708F052C08F7758 -:104AC0000E94161F41C00E5F1F4FFE01C49180E27D -:104AD0008C0F883048F4C7708E2D01C0880FCA959E -:104AE000EAF70E94172814C08C2F0E944E1E2DC07A -:104AF0000E5F1F4FFE01C49180E28C0F883058F486 -:104B0000C7708E2D01C0880FCA95EAF70E941D2834 -:104B10000E943E281AC08C2F0E94161F16C00E5FDE -:104B20001F4FFE01C491CC2381F08FE99FE00197D4 -:104B3000F1F700C00000C150F6CF0E5F1F4FFE011D -:104B4000F49003C00E944E1E8E018F2D882309F41D -:104B50009FCFEFE9FFE03197F1F700C000008150EF -:104B6000F5CFDF91CF911F910F91FF90EF900895B6 -:104B700008956093490470934A0480934B04909382 -:104B80004C040C94E5210F931F930091490410915C -:104B90004A0420914B0430914C04DC01CB01802B62 -:104BA000912BA22BB32B8093490490934A04A0939A -:104BB0004B04B0934C041F910F910C94E5210F937B -:104BC0001F930091490410914A0420914B043091A5 -:104BD0004C04DC01CB0180239123A223B3238093D7 -:104BE000490490934A04A0934B04B0934C041F9142 -:104BF0000F910C94E5210F931F930091490410919C -:104C00004A0420914B0430914C04DC01CB018027F5 -:104C10009127A227B3278093490490934A04A09335 -:104C20004B04B0934C041F910F910C94E52110920A -:104C300045041092460410924704109248040C94C4 -:104C4000E52141E050E060E070E004C0440F551FF2 -:104C5000661F771F8A95D2F7409345045093460408 -:104C600060934704709348040C94E52141E050E0C0 -:104C700060E070E004C0440F551F661F771F8A95DF -:104C8000D2F78091450490914604A0914704B091D9 -:104C90004804482B592B6A2B7B2B40934504509397 -:104CA000460460934704709348040C94E52141E066 -:104CB00050E060E070E004C0440F551F661F771F8E -:104CC0008A95D2F7409550956095709580914504EE -:104CD00090914604A0914704B09148044823592379 -:104CE0006A237B2340934504509346046093470412 -:104CF000709348040C94E52141E050E060E070E0DE -:104D000004C0440F551F661F771F8A95D2F7809104 -:104D1000450490914604A0914704B0914804482767 -:104D200059276A277B274093450450934604609394 -:104D30004704709348040C94E5210F931F9300914E -:104D40004504109146042091470430914804DC0149 -:104D5000CB01802B912BA22BB32B809345049093F6 -:104D60004604A0934704B09348041F910F910C94FC -:104D7000E5210F931F930091450410914604209163 -:104D8000470430914804DC01CB0180239123A22306 -:104D9000B3238093450490934604A0934704B093B3 -:104DA00048041F910F910C94E5210F931F930091DC -:104DB0004504109146042091470430914804DC01D9 -:104DC000CB0180279127A227B32780934504909396 -:104DD0004604A0934704B09348041F910F910C948C -:104DE000E5210895CF92DF92EF92FF920F931F93E8 -:104DF000CF93DF938C01C0904904D0904A04E09097 -:104E00004B04F0904C048091450490914604A0918D -:104E10004704B0914804C82AD92AEA2AFB2ACFE1DC -:104E2000D0E0D701C6010C2E04C0B695A795979582 -:104E300087950A94D2F780FF06C0B8018C2F0E9494 -:104E4000290C019721F4219760F780E001C08C2F95 -:104E5000DF91CF911F910F91FF90EF90DF90CF9056 -:104E60000895CF93DF93EC010E94F226BE010E94C9 -:104E7000290CDF91CF910895CB010E94312708952D -:104E800080914D04859585958595089580914D0473 -:104E90008770089598E0899F90011124262B209314 -:104EA0004D040C94362620914D04809582238093E6 -:104EB0004D04982F977069F430E0482F552747FD2F -:104EC00050952417350729F08595859585950C947F -:104ED0005726089590914D04977081E009F480E081 -:104EE000089590918502992321F090918602911165 -:104EF00009C02091870230918802F90132969FEF14 -:104F000040E01FC0982F9695969596959F3050F546 -:104F1000E0918702F0918802E90FF11D877021E08E -:104F200030E0A90102C0440F551F8A95E2F7CA017B -:104F30009181892B818308959F3F39F04F5F4E30D7 -:104F400041F051915813F8CF0DC05111F7CF942F64 -:104F5000F5CF9F3F39F0F901E90FF11D97FDFA9563 -:104F600082830895089590918502992321F090916C -:104F70008602911109C02091870230918802F901BF -:104F80003296205F3F4F1FC0982F96959695969525 -:104F90009F30F0F4E0918702F0918802E90FF11D53 -:104FA000877021E030E0A90102C0440F551F8A95A7 -:104FB000E2F7CA0180959181892381830895319612 -:104FC000E217F30729F090819813F9CF1082F7CFF9 -:104FD000089581E090E0E0918702F0918802E80F67 -:104FE000F91F1082019680319105A9F708959091DB -:104FF0006104892B809361040895809590916104E8 -:10500000892380936104089510926104089590911A -:105010006004892B809360040895809590916004CA -:1050200089238093600408951092600408959091FC -:105030005F04892B80935F040895809590915F04AD -:10504000892380935F04089510925F0408958093EC -:105050004E04089510924E04089580918702909115 -:105060008802FC0131969C01205F3F4F80E09191C6 -:1050700091118F5FE217F307D1F70895E09187024E -:10508000F0918802809161048083E0918702F09121 -:105090008802908180916004892B8083E09187024F -:1050A000F0918802908180915F04892B80838091A8 -:1050B0004E04882361F0E0918702F091880290818C -:1050C000892B80830E942D28811110924E0480919B -:1050D0008702909188020C94231D20E0009739F0FC -:1050E000AC0141505109842395232F5FF7CF822FC4 -:1050F000089580918504843039F11092630420E48E -:1051000088E190E00FB6F894A895809360000FBEF8 -:105110002093600080E00E94390680E00E945A0ED1 -:1051200083B7817F846083BF83B7816083BF7894B6 -:10513000889583B78E7F83BF88E10FB6F8948093FC -:105140006000109260000FBE0895089580E00E94F4 -:1051500039060E94700E0E94F30E0E94A5280E943C -:10516000780F91E0811101C090E0892F08950E948D -:10517000F92180E00E9439060E94322E0E94171DFC -:105180000C945A0E1F920F920FB60F9211248F9308 -:105190009F93AF93BF9380916304811113C080915B -:1051A000640490916504A0916604B09167044196EF -:1051B000A11DB11D8093640490936504A0936604BF -:1051C000B0936704BF91AF919F918F910F900FBEE5 -:1051D0000F901F90189582E084BD93E095BD9AEFE3 -:1051E00097BD80936E0008952FB7F8948091640462 -:1051F00090916504A0916604B09167042FBF089553 -:10520000CF92DF92EF92FF920F931F932FB7F894F4 -:105210004091640450916504609166047091670444 -:105220002FBF6A017B01EE24FF248C0120E030E0D7 -:10523000C016D106E206F30610F4415051099A0156 -:10524000281B390BC9011F910F91FF90EF90DF9040 -:10525000CF9008951F920F920FB60F9211248F9343 -:105260009F93AF93BF938091640490916504A09144 -:105270006604B09167040196A11DB11D809364047A -:1052800090936504A0936604B0936704BF91AF91B7 -:105290009F918F910F900FBE0F901F9018950E94B5 -:1052A000141AF8942FEF87EA91E62150804090403D -:1052B000E1F700C0000087E090EBDC0180938F04F1 -:1052C00090939004A0939104B09392049CE088E1A1 -:1052D0000FB6F894A895809360000FBE909360007D -:1052E000FFCF0E94B329811102C00E948F290E9422 -:1052F000BE29809362040E94CB2990E090937404AD -:105300008093730487FB882780F9809386020E942C -:10531000C229682F70E080E090E00C94B9256DEE12 -:105320007EEF80E090E00E94E93260E082E090E071 -:105330000E94D73260E083E090E00E94D73260E0C4 -:1053400084E090E00E94D73260E085E090E00E9427 -:10535000D73260E086E090E00E94D7326FEF87E0BE -:1053600090E00C94D73280E090E00E94D13221E0AE -:105370008D3E9E4F09F020E0822F089582E090E05C -:105380000C94C93283E090E00C94C932682F83E01A -:1053900090E00C94D73284E090E00C94C932682FEE -:1053A00084E090E00C94D73286E090E00C94C9320F -:1053B000682F86E090E00C94D73287E090E00C9460 -:1053C000C932682F87E090E00C94D73280916A044C -:1053D00080FF0BC060918C0285E0689FB0011124B2 -:1053E00075956795759567952BC081FF09C060918C -:1053F0008C0285E0689FB00111247595679520C0E7 -:1054000082FF07C060918C0285E0689FB001112483 -:1054100017C090916B049923D1F060918B0296177D -:1054200088F720918C0285E0289F90011124929F9B -:10543000A001939F500D112470E0CA010E94AF3269 -:105440006038710540F46115710539F002C065E0FE -:1054500070E0862F08958FE7089581E00895809188 -:105460006A0480FF08C060918A0270E075956795B4 -:105470007595679521C081FF06C060918A0270E032 -:105480007595679519C082FF04C060918A0270E02B -:1054900010C090916B049923C1F060918902961716 -:1054A000A0F780918A02899FC001112470E00E94B8 -:1054B000AF326038710528F46115710521F0862F2F -:1054C00008958FE7089581E0089561E070E0F4CFDA -:1054D000803F21F40E94E629819504C0813F29F490 -:1054E0000E94E62980936E040895823F21F40E9471 -:1054F000E629819504C0833F29F40E94E629809320 -:105500006D040895893F19F40E942F2A05C08A3F2F -:1055100031F40E942F2A819580936F0408958B3F68 -:1055200021F40E942F2A819504C08C3F29F40E9407 -:105530002F2A809370040895843F21F480916C0495 -:10554000816017C0853F21F480916C04826011C096 -:10555000863F21F480916C0484600BC0873F21F466 -:1055600080916C04886005C0883F31F480916C04A0 -:10557000806180936C0408958D3F21F480916A04CA -:1055800081600BC08E3F21F480916A04826005C067 -:105590008F3F29F480916A04846080936A0408959F -:1055A000803F39F480916E0487FF6CC010926E04C6 -:1055B00069C0813F29F480916E041816BCF362C063 -:1055C00090916D04823F29F497FF5CC010926D04A6 -:1055D00059C0833F19F41916CCF354C0893F41F4E4 -:1055E00080916F0418160CF04DC010926F044AC0E1 -:1055F0008A3F29F480916F0487FF44C0F6CF8B3F28 -:1056000039F48091700487FF3DC0109270043AC055 -:105610008C3F29F4809170041816BCF333C0843F8A -:1056200021F480916C048E7F17C0853F21F4809116 -:105630006C048D7F11C0863F21F480916C048B7FB8 -:105640000BC0873F21F480916C04877F05C0883FA1 -:1056500031F480916C048F7E80936C0413C08D3F75 -:1056600021F480916A048E7F0BC08E3F21F48091DB -:105670006A048D7F05C08F3F29F480916A048B7F77 -:1056800080936A0480916D0481110EC080916E0434 -:1056900081110AC080916F04811106C0809170044D -:1056A000811102C010926B0408958CE694E00E9470 -:1056B0002E1D0E94F4289093690480936804089535 -:1056C0001F93CF93DF9380916804909169040E94A7 -:1056D0000029AC0190916B04992321F020918D0257 -:1056E00030E006C020918E028AE0289F90011124AC -:1056F0004217530708F486C080916D04C0916E0470 -:10570000D0916F0410917004811107C0C11176C04F -:10571000D11174C0111172C075C09F3F19F09F5F05 -:1057200090936B04181624F40E94E62980936D046C -:1057300080916D0487FF05C00E94E62981958093C2 -:105740006D041C1624F40E94E62980936E04809157 -:105750006E0487FF05C00E94E629819580936E0440 -:1057600060916D04662339F1C0916E04CC2319F168 -:10577000772767FD7095872F972F0E94D12F23E3FE -:1057800033E343E35FE30E94E1300E949E2F609386 -:105790006D046C2F772767FD7095872F972F0E94D8 -:1057A000D12F23E333E343E35FE30E94E1300E9420 -:1057B0009E2F60936E041D1624F40E942F2A80935E -:1057C0006F0480916F0487FF05C00E942F2A819586 -:1057D00080936F04111624F40E942F2A8093700482 -:1057E0008091700487FF05C00E942F2A81958093C5 -:1057F0007004DF91CF911F910C94552B9F3F09F0BE -:105800008ECF96CFDF91CF911F910895ECE6F4E013 -:1058100085E0DF011D928A95E9F710926B041092E2 -:105820006A040895833081F128F4813059F0823080 -:10583000D1F00895853009F449C0B8F1863009F4F3 -:1058400056C0089580918E02262F30E0280F311D1A -:105850002F3F310524F4680F60938E0208958FEF77 -:1058600080938E02089580918D02262F30E0280FBC -:10587000311D2F3F310524F4680F60938D02089588 -:105880008FEF80938D02089580918C02262F30E057 -:10589000280F311D2F3F310524F4680F60938C02CF -:1058A00008958FEF80938C02089580918B02262FAC -:1058B00030E0280F311D2F3F310524F4680F60932D -:1058C0008B0208958FEF80938B02089580918A0256 -:1058D000262F30E0280F311D2F3F310524F4680FAB -:1058E00060938A0208958FEF80938A0208958091D1 -:1058F0008902262F30E0280F311D2F3F310524F477 -:10590000680F6093890208958FEF8093890208954C -:10591000833011F128F4813049F0823091F00895FC -:10592000853081F120F18630C1F1089580918E0299 -:10593000681720F4861B80938E02089510928E02C1 -:10594000089580918D02681720F4861B80938D0244 -:10595000089510928D02089580918C02681720F4AA -:10596000861B80938C02089510928C02089580917A -:105970008B02681720F4861B80938B020895109287 -:105980008B02089580918A02681720F4861B809309 -:105990008A02089510928A020895809189026817F8 -:1059A00020F4861B8093890208951092890208953D -:1059B0000F931F93873208F048C08E3108F08DC0D6 -:1059C000803109F477C008F5873009F461C068F4C4 -:1059D000863009F09DC080916204817F8E7F809324 -:1059E000620481E08093720494C08B3009F489C012 -:1059F0008E3009F08DC08091620482FB222720F94D -:105A000091E0922790FB82F95EC0863109F479C05B -:105A100060F4813109F07CC00E94F92190918602E6 -:105A200081E08927809386026CC0893109F469C0BE -:105A30008B3109F06DC08091620481FB222720F92F -:105A400091E0922790FB81F93EC0883309F459C058 -:105A500050F4893209F457C0853309F454C08732B1 -:105A600009F451C055C0833409F44DC028F48A3379 -:105A700008F44EC0895332C0883409F049C00E94EE -:105A8000F9210E94A80F0E94DC070E944F2939C00B -:105A900090916204892F8095817080FB90F929F0A4 -:105AA000966098609093620434C0997F977F90933A -:105AB000620427C08091620483FB222720F991E0D1 -:105AC000922790FB83F9809362049923D1F080910F -:105AD000620481608093620414C08D5141E050E003 -:105AE00060E070E08A019B0104C0000F111F221FBB -:105AF000331F8A95D2F7C901B8010E94B9250E94C7 -:105B0000F92181E006C061E070E080E090E0F5CF2F -:105B100080E01F910F91089580E0089580E008953E -:105B20008E518A3030F4E82FF0E0EA5DFC4F80813E -:105B3000089580E00895CF93C82F8091720481303A -:105B400069F018F08230C9F183C0E0918702F091CA -:105B500088028081823209F07DC007C0E09187020F -:105B6000F09188028081823261F48C2F0E948C2D0A -:105B7000811104C08C2F0E94D82C1DC081E090E0C0 -:105B80001AC08C2F0E948E2D811114C0C43179F05F -:105B900048F4CB3079F0C03109F060C082E08093E6 -:105BA000720408C0C93219F0C83321F057C01092EE -:105BB000720454C081E0817053C0C93289F118F574 -:105BC000C43171F1B0F4C73009F046C08EE1809362 -:105BD0008E0282E380938D028AE080938C0284E1BE -:105BE00080938B0288E080938A0288E28093890206 -:105BF00033C082EE8C0F863078F58C2F0E94902D6A -:105C00008093710429C0CE34E9F020F4CB3421F51F -:105C10006AE013C0C13579F0C235F1F461E00DC01E -:105C200080917104882319F01092710415C081E0ED -:105C30008093720415C061E006C0809171040E94D7 -:105C4000122C0AC06AE0809171040E94882C04C062 -:105C50001092720480E004C081E002C080E0ABCF0B -:105C6000CF9108950E94B329811102C00E948F290B -:105C70000E94D42980938E0480FF02C0869501C0C3 -:105C800080E00C94390680918E04982F9695292FE8 -:105C900030E0233031054CF49F5F990F8170892BE0 -:105CA000816080938E040E94D82980918E0486950D -:105CB0000C94390680918E04982F969591F0915806 -:105CC000990F8170892B80938E048E7F91E009F467 -:105CD00090E080918E0490FB80F980938E040E9466 -:105CE000D82980918E0486950C94390680918E0473 -:105CF000982F909590FB80F980938E040E94D8296C -:105D000080918E0480FF02C0869501C080E00C94D3 -:105D1000390690918E04892F86958F5F8F779170C9 -:105D2000843028F4880F892B80938E0402C09093CE -:105D30008E0480918E048E7F91E009F490E0809132 -:105D40008E0490FB80F980938E040E94D829809164 -:105D50008E0486950C94390620918E04922F969588 -:105D60008927982F990F822F8170892B80938E0419 -:105D70008E7F91E009F490E080918E0490FB80F991 -:105D800080938E040E94D82980918E0486950C946D -:105D9000390680918E04869508955058BB27AA270E -:105DA0000ED0D1C1C2D130F0C7D120F031F49F3F25 -:105DB00011F41EF4B7C10EF4E095E7FB9FC1E92F83 -:105DC000D3D180F3BA17620773078407950718F0D9 -:105DD00071F49EF5EBC10EF4E0950B2EBA2FA02DB9 -:105DE0000B01B90190010C01CA01A0011124FF2788 -:105DF000591B99F0593F50F4503E68F11A16F04083 -:105E0000A22F232F342F4427585FF3CF4695379581 -:105E10002795A795F0405395C9F77EF41F16BA0B46 -:105E2000620B730B840BBAF09150A1F0FF0FBB1FF4 -:105E3000661F771F881FC2F70EC0BA0F621F731F3D -:105E4000841F48F4879577956795B795F7959E3F9A -:105E500008F0B3CF9395880F08F09927EE0F979528 -:105E60008795089527D108F481E008950CD06BC17F -:105E700063D140F05AD130F021F45F3F19F03EC1B8 -:105E8000511195C14FC170D198F39923C9F355238E -:105E9000B1F3951B550BBB27AA276217730784071D -:105EA00038F09F5F5F4F220F331F441FAA1FA9F3D3 -:105EB00033D00E2E3AF0E0E830D091505040E695C5 -:105EC000001CCAF729D0FE2F27D0660F771F881F26 -:105ED000BB1F261737074807AB07B0E809F0BB0B15 -:105EE000802DBF01FF2793585F4F2AF09E3F510539 -:105EF00068F004C15CC15F3FECF3983EDCF386952B -:105F000077956795B795F7959F5FC9F7880F911DAE -:105F10009695879597F90895E1E0660F771F881F9A -:105F2000BB1F621773078407BA0720F0621B730B4D -:105F3000840BBA0BEE1F88F7E095089504D068949F -:105F4000B11135C1089518D188F09F5790F0B92F3D -:105F50009927B751A0F0D1F0660F771F881F991FBE -:105F60001AF0BA95C9F712C0B13081F01FD1B1E073 -:105F700008951CC1672F782F8827B85F39F0B93F83 -:105F8000CCF3869577956795B395D9F73EF49095C0 -:105F90008095709561957F4F8F4F9F4F0895E8943E -:105FA00009C097FB3EF490958095709561957F4F61 -:105FB0008F4F9F4F9923A9F0F92F96E9BB2793950F -:105FC000F695879577956795B795F111F8CFFAF41F -:105FD000BB0F11F460FF1BC06F5F7F4F8F4F9F4F50 -:105FE00016C0882311F096E911C0772321F09EE8AE -:105FF000872F762F05C0662371F096E8862F70E014 -:1060000060E02AF09A95660F771F881FDAF7880FED -:106010009695879597F9089588D018F011F08CD04F -:1060200038F480C0C4C0E92F9FD0B0F35523C9F322 -:10603000E7FB6217730784079507A8F199F3E92F27 -:10604000FF2788232AF03197660F771F881FDAF71A -:10605000952F5527442332F091505040220F331F83 -:10606000441FD2F7BB27E91BF50B621B730B840B94 -:10607000B109C1F222F4620F731F841FB11D319761 -:106080002AF0660F771F881FBB1FEFCF915050403B -:106090005AF041F0882332F0660F771F881F915025 -:1060A0005040C1F7939530C08695779567959F5F6F -:1060B000D9F7F8CF990F0008550FAA0BE0E8FEEFCB -:1060C00016161706E807F907C0F012161306E407BC -:1060D000F50798F0621B730B840B950B39F40A26B5 -:1060E00061F0232B242B252B21F408950A2609F493 -:1060F000A140A6958FEF811D811D089597F99F6797 -:1061000080E870E060E008959F3F31F0915020F406 -:10611000879577956795B795880F911D9695879583 -:1061200097F908959FEF80EC089500240A941616BD -:10613000170618060906089500240A941216130675 -:10614000140605060895092E0394000C11F4882303 -:1061500052F0BB0F40F4BF2B11F460FF04C06F5F1F -:106160007F4F8F4F9F4F089557FD9058440F551FF5 -:1061700059F05F3F71F04795880F97FB991F61F0C9 -:106180009F3F79F087950895121613061406551F40 -:10619000F2CF4695F1DF08C0161617061806991FAC -:1061A000F1CF86957105610508940895E894BB27A1 -:1061B00066277727CB0197F908957CDF08F48FEFE6 -:1061C00008950BD0C0CFB1DF28F0B6DF18F09523CB -:1061D00009F094CFA7CF1124EACFC6DFA0F3959F93 -:1061E000D1F3950F50E0551F629FF001729FBB27BE -:1061F000F00DB11D639FAA27F00DB11DAA1F649F6A -:106200006627B00DA11D661F829F2227B00DA11D1C -:10621000621F739FB00DA11D621F839FA00D611DA2 -:10622000221F749F3327A00D611D231F849F600DC3 -:10623000211D822F762F6A2F11249F5750408AF0FC -:10624000E1F088234AF0EE0FFF1FBB1F661F771F88 -:10625000881F91505040A9F79E3F510570F04ECFD6 -:10626000A6CF5F3FECF3983EDCF386957795679574 -:10627000B795F795E7959F5FC1F7FE2B880F911DA6 -:106280009695879597F90895FA01EE0FFF1F3096BE -:106290002105310599F16115710561F48038BFE37D -:1062A0009B0749F168949038810561F08038BFEF11 -:1062B0009B0741F0992342F5FF3FE1053105210598 -:1062C00011F1E8940894E795D901AA2329F4AB2F9A -:1062D000BE2FF85FD0F310C0FF5F70F4A695E0F713 -:1062E000F73950F019F0FF3A38F49F779F930CD0AC -:1062F0000F9007FC905808953EF014CF60E070E0D6 -:1063000080E89FE308954FE79F775F934F933F9314 -:106310002F939ED02F913F914F915F9152DF05C0F7 -:1063200019F40EF0EBCE42CFFDCE26DFC8F396383F -:10633000C0F707F80F92E8942BE33AEA48EB5FE7DF -:106340004EDF0F920F920F924DB75EB70F92C0D0F3 -:10635000E6E2F1E016D04F915F91EF91FF91E59564 -:10636000EE1FFF1F49F0FE57E0684427EE0F441F61 -:10637000FA95E1F74195550B32D00F9007FE26C0F4 -:106380000895DF93CF931F930F93FF92EF92DF92C5 -:106390007B018C01689405C0DA2EEF011EDFFE013F -:1063A000E894A5912591359145915591AEF3EF0172 -:1063B00006DDFE019701A801DA9479F7DF90EF90EE -:1063C000FF900F911F91CF91DF9108959B01AC0138 -:1063D00060E070E080E89FE349CD90CE95CECCDEC2 -:1063E000E8F39923D9F3940F511DBBF3915050401A -:1063F00094F059F0882332F0660F771F881F915070 -:106400005040C1F79E3F510544F7880F911D969566 -:10641000879597F908955F3FACF0983E9CF0BB27B5 -:10642000869577956795B79508F4B1609395C1F710 -:10643000BB0F58F711F460FFE8CF6F5F7F4F8F4FAE -:106440009F4FE3CFB4CE0EF05FCE6CCE689456CEA5 -:1064500093DEC8F39923D1F3C6F3DF93CF931F9351 -:106460000F93FF92C92FDD2788232AF02197660F0B -:10647000771F881FDAF720E030E040E85FEB9FE30A -:10648000883920F0803E30F021968F7787DCEEE46B -:10649000F1E003C083DCEBE7F1E073DF8B01BE01C9 -:1064A000EC01FB2E6F5771097595771F880B990BBF -:1064B00078DD28E132E741E35FE38FDEAF2D98011D -:1064C000AE01FF900F911F91CF91DF9178DC3BCE11 -:1064D000FA01DC01AA0FBB1F9B01AC01BF5728F4D6 -:1064E00022273327442750781FC0B75188F4AB2F99 -:1064F0000024469537952795011CA395D2F30020DB -:1065000069F0220F331F441FB395DAF30DD045CC49 -:1065100061307105A0E88A07B94630F49B01AC01EF -:106520006627772788279078309621F0208331835B -:10653000428353830895AA1BBB1B51E107C0AA1FC6 -:10654000BB1FA617B70710F0A61BB70B881F991F14 -:106550005A95A9F780959095BC01CD01089597FBB8 -:10656000072E16F4009407D077FD09D00E949B32C5 -:1065700007FC05D03EF4909581959F4F0895709546 -:1065800061957F4F0895EE0FFF1F0590F491E02D68 -:106590000994F999FECF92BD81BDF89A992780B5EB -:1065A0000895A8E1B0E042E050E00C94F132262FCB -:1065B000F999FECF92BD81BDF89A019700B40216F9 -:1065C00039F01FBA20BD0FB6F894FA9AF99A0FBEA7 -:1065D00008950196272F0E94D8320C94D732DC01FF -:1065E000CB01FC01F999FECF06C0F2BDE1BDF89ADE -:1065F000319600B40D9241505040B8F70895F89488 -:02660000FFCFCA -:1066020052D02445000000410000DC44000000415B -:1066120052D0A4440000404100005C44000000410C -:1066220048F17644000000415C978A440000004132 -:106632001FD592440000004152D0A4440000004102 -:106642005CFFB844000000410AA7CF4400000041AB -:106652000000DC44000000410AA7CF4400000041D2 -:106662000000DC4400000041000000000000804007 -:1066720000005C4500004041000000000000804036 -:1066820052D02445000040410AA7CF4400000041F7 -:106692000000DC44000000410000000000008040D7 -:1066A20052D024450000404100000000000080401C -:1066B20000005C45000040410AA7CF4400000041B1 -:1066C2000000DC44000000410000000000008040A7 -:1066D20052D02445000040410000000000008040EC -:1066E2000AA74F45000040410AA7CF4400000041DD -:1066F2000000DC4400000041000000000000804077 -:1067020052D02445000000410000000000008040FB -:106712005CFF38450000004100000000000080409E -:1067220052D02445000000410AA7CF440000004196 -:106732000000DC4400000041000000000000804036 -:1067420052D024450000804152D0244500004041EF -:106752005C970A450000004152D0A4440000004169 -:106762000000DC44000000415C970A450000A041A3 -:10677200640007000CFF0000003F641F16AD168A7C -:10678200165616221601014F042808140A321E005A -:1067920002040507090B0C0E1011131517181A1C09 -:1067A2001D1F2123242628292B2D2F303234353743 -:1067B200393B1F0F03764F5F6F7F49694379095950 -:1067C20053633149803F5D8B803FF8BF803FCAE110 -:1067D200803F73ED803FCAE1803FF8BF803F5D8B11 -:1067E200803F3149803F0000803FF16D7F3F75EA75 -:1067F2007E3F4C827E3F833F7E3F84287E3F833FA5 -:106802007E3F4C827E3F75EA7E3FF16D7F3F000006 -:10681200803F404D3639340BE70AB10A780A0B0A39 -:10682200240A3D0A560A0102030405060708090064 -:00000001FF diff --git a/keyboards/planck/keymaps/experimental/readme.md b/keyboards/planck/keymaps/experimental/readme.md new file mode 100644 index 000000000..de9680b49 --- /dev/null +++ b/keyboards/planck/keymaps/experimental/readme.md @@ -0,0 +1,2 @@ +# The Default Planck Layout + diff --git a/keyboards/planck/keymaps/gabriel/compiled.hex b/keyboards/planck/keymaps/gabriel/compiled.hex deleted file mode 100644 index 93d850284..000000000 --- a/keyboards/planck/keymaps/gabriel/compiled.hex +++ /dev/null @@ -1,1450 +0,0 @@ -:100000000C9491020C94D5020C94D5020C94D50258 -:100010000C94D5020C94D5020C94D5020C94D50204 -:100020000C94D5020C94D5020C9482140C945415A3 -:100030000C94B6220C94D5020C94D5020C94D502E3 -:100040000C94D5020C9437030C94D5020C94D50271 -:100050000C94D5020C941E230C94D5020C94D5025A -:100060000C94D5020C94D5020C94D5020C94D502B4 -:100070000C94D5020C94D5020C94D5020C94D502A4 -:100080000C94F70A0C94D5020C94D5020C94D5026A -:100090000C94D5020C94D5020C94D5020C94D50284 -:1000A0000C94D5020C94D5020C94D502C115E3151D -:1000B000D116E315D11628164B16D116A016B31675 -:1000C0009D199D19CC19CC190B1A2B1A811B811B58 -:1000D000361A811BE61AE61A4D1B561B811B7B1B29 -:1000E000F31AF31AF31AF31AF31AF31AF31AF31AA8 -:1000F000F31AF31AF31AF31AF31AF31AF31AF31A98 -:10010000031B111B181B1F1B291B07634236B79BC0 -:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 -:100120005763BD6DEDFD753EF6177231BF000000DF -:10013000803F08000000BE922449123EABAAAA2AC2 -:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD -:1001500000000000BF000000803F00000000000819 -:100160004178D3BB4387D1133D190E3CC3BD4282B6 -:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 -:10018000FFBE01C4FF7F3F00000000000000000030 -:1001900000000000000000010204060A0F17202CD6 -:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 -:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF -:1001C00002010000000000000000000029001400EF -:1001D0001A000800150017001C0018000C0012007F -:1001E00013002A002B0004001600070009000A0073 -:1001F0000B000D000E000F0033003400E1001D0065 -:100200001B00060019000500110010003600370021 -:10021000380028000352E000E200E30001522C0005 -:100220002C0002525000510052004F0035021E02B5 -:100230001F0220022102220223022402250226029A -:1002400027022A0001003A003B003C003D003E002E -:100250003F002D022E002F0230023100010040002D -:10026000410042004300440045000100010001003C -:100270000100010001000100010001000100010076 -:1002800001000100010001000100010035001E0015 -:100290001F0020002100220023002400250026004A -:1002A00027002A0001003A003B003C003D003E00D0 -:1002B0003F002D002E022F003000310201004000CF -:1002C00041004200430044004500010001000100DC -:1002D0000100010001000100010001000100010016 -:1002E0000100010001000100010001000100010006 -:1002F00001000100010001000100010001000100F6 -:1003000001004C000100010001000100010001009A -:1003100001000100010001000100010001000100D5 -:1003200001000100010001000100010001000100C5 -:1003300001000100010001000100010001000100B5 -:10034000010001004A004E004B004D0028035400FC -:1003500068006500200050006C0061006E006300C2 -:100360006B0020004B006500790062006F006100A7 -:100370007200640000002C034F00720074006800DB -:100380006F006C0069006E00650061007200200063 -:100390004B006500790062006F006100720064002C -:1003A000730000000403090409026D00040100A0A9 -:1003B000FA090400000103010100092111010001F3 -:1003C000223F000705810308000A09040100010318 -:1003D000010200092111010001224D0007058203DD -:1003E00008000A09040200010300000009211101AC -:1003F00000012236000705830308000A09040300F0 -:100400000103000000092111010001223900070544 -:1004100084031000011201100100000008EDFE60CD -:100420006001000102000105010906A1010507198B -:10043000E029E715002501950875018102050819D5 -:100440000129059505750191029501750391010535 -:10045000071900297715002501957875018102C0DB -:1004600005010980A101850216010026B7001A01C5 -:10047000002AB700751095018100C0050C0901A183 -:10048000018503160100269C021A01002A9C0275B0 -:100490001095018100C005010902A1010901A10017 -:1004A0000509190129051500250195057501810228 -:1004B0009501750381010501093009311581257FF9 -:1004C00095027508810609381581257F9501750803 -:1004D0008106050C0A38021581257F950175088172 -:1004E00006C0C005010906A101050719E029E715A5 -:1004F00000250195087501810295017508810105A6 -:100500000819012905950575019102950175039159 -:10051000010507190029FF150025FF9506750881BB -:1005200000C011241FBECFEFDAE0DEBFCDBF04B69E -:1005300003FE24C080911E0390911F03A09120030D -:10054000B09121038730904BA740B04BB9F4109283 -:100550001E0310921F03109220031092210314BE59 -:1005600084B7877F84BF88E10FB6F89480936000DA -:10057000109260000FBEE0E0F8E3099511E0A0E002 -:10058000B1E0E6ECF9E502C005900D92A03CB107A0 -:10059000D9F713E0A0ECB1E001C01D92AE31B10774 -:1005A000E1F70E94C8110C94E12C0C94000008950E -:1005B000089581E0089508950C94D8020C94D9020E -:1005C0000C94DB020E94AB2823E030E0281B3109A9 -:1005D000220F2093C4010895282F2F988091800026 -:1005E000211108C0877F8093800010928D001092A7 -:1005F0008C001BC0886080938000233019F48FEF3B -:100600009FEF0FC083E090E0821B9109880F991F34 -:100610002FEF3FEFA90102C0569547958A95E2F763 -:10062000CA0190938D0080938C000C94E2020E948A -:10063000E20284E08093C3011092C0010895279ADA -:100640002F988FEF9FEF90938700809386008AE02A -:100650008093800089E1809381000E9414280C948B -:1006600017030E941F036E9A769A0C94D7021F926A -:100670000F920FB60F9211242F933F938F939F9356 -:10068000EF93FF93E091C101F091C201CF01019678 -:100690009093C2018093C1010090C30102C0F695FE -:1006A000E7950A94E2F7EF738091C001823019F464 -:1006B000E03251F404C0813039F4EF3329F48091F1 -:1006C0006F008D7F80936F00F0E0E457FE4FE49160 -:1006D00021E031E0E29FC001E39F900D11240090E2 -:1006E000C40102C0969587950A94E2F790938D0015 -:1006F00080938C00FF91EF919F918F913F912F916B -:100700000F900FBE0F901F90189561110DC0FC0146 -:100710008281882331F085EE0E9441180E946B2867 -:1007200003C085EE0E94091980E090E0089581E001 -:1007300008950C94970308950C9431038091150249 -:10074000882309F448C08091D1019091D20100978B -:1007500079F40E94E8229093D2018093D101809194 -:10076000D30190E0009771F48091D40190E00AC029 -:100770000E94F422209100013091010128173907CD -:1007800040F329C00197880F991F880F991FFC011A -:10079000EB52FE4F60817181828193810E945D0ADC -:1007A000E091D30184E0E89FF0011124EB52FE4F69 -:1007B00060817181828193814FE050E00E94150E2B -:1007C0008091D30190E001966091D40170E00E9485 -:1007D000912C8093D3010C94DC02109217020C949C -:1007E0002A0A0895089581E0809317020C94F20379 -:1007F000089508958F929F92AF92BF92EF92FF92C9 -:100800000F931F93CF93DF93CDB7DEB7A3970FB6A8 -:10081000F894DEBF0FBECDBF7C01FC0100811181C9 -:10082000C8010E94E520B8010E94FC058C01B701B7 -:100830000E949903882309F4CCC10032F0E51F0718 -:1008400041F4F7018281882309F458C00E94790E8F -:10085000C0C10132F0E51F0741F4F701828188230E -:1008600009F44CC00E94820EB4C10232F0E51F07A9 -:1008700051F4F7018281882309F440C00E94750E6B -:100880008111F0CFE3CF0332F0E51F0739F4F70110 -:100890008281882399F10E94F3039BC10432F0E521 -:1008A0001F0739F4F7018281882341F10E94ED038B -:1008B00090C10532F0E51F0749F4F70182818823D2 -:1008C000E9F0809117028111F1CFE5CF0632F0E512 -:1008D0001F0739F4F7018281882381F00E94890E75 -:1008E0000AC00732F0E51F0749F4F7018281882327 -:1008F00029F00E94940E0E94F9036BC180911702A7 -:10090000811105C0F70182818111CFC018C1003E5D -:10091000110579F4F7018281882309F44DC00E9402 -:100920002A0A81E080931602109215021092D401D7 -:1009300050C1023E110559F4F70182818823E1F18B -:100940000E942A0A109216021092150242C1033E1A -:10095000110591F4F7018281882371F10E942A0A1E -:100960001092160281E0809315021092D30110922A -:10097000D2011092D1012DC10235110559F4F701B0 -:100980008281882309F425C18091000190910101A1 -:100990000A970DC00135110579F4F701828188238A -:1009A00009F417C180910001909101010A9690937A -:1009B0000101809300010DC14091040183E2EFE148 -:1009C000F1E0DE01119601900D928A95E1F7F701B1 -:1009D000808121E030E02C0F3D1F280F311DC9011F -:1009E0002091020130910301FC01E20FF31F6081AD -:1009F000772767FD7095640F711D882777FD8095B7 -:100A0000982F0E94B32920E030E040E451E40E9496 -:100A100018294B015C01F701218184E090E0821BE1 -:100A20009109BC01882777FD8095982F0E94B329F2 -:100A30009B01AC01C501B4010E94B0289B01AC012F -:100A400060E070E080E090E40E94262B20E030E03F -:100A50004CED50E40E94C32A4B015C01F7018281F6 -:100A60008823D1F04FE050E0C501B4010E94150E7B -:100A7000809116028823A1F08091D40124E0829F06 -:100A8000F0011124EB52FE4F80829182A282B38248 -:100A90008F5F8093D40104C0C501B4010E945D0A38 -:100AA0000F3F110508F02ECF94C08091D001811125 -:100AB0001FC0043130E5130709F051C00E949B03A9 -:100AC00081E08093D0010E94E8229093CF0180932F -:100AD000CE011092C7011092C9011092C801109264 -:100AE000CB011092CA011092CD011092CC0171C0BD -:100AF0008091CE019091CF010E94F422883C910513 -:100B000070F48091C701E82FF0E0EE0FFF1FE8536B -:100B1000FE4F118300838F5F8093C7015AC0043852 -:100B200080E5180721F00538104501F13AC0F701BA -:100B30008281882341F01092C50182E01EC00438F2 -:100B400030E5130759F58091C501811106C086E291 -:100B50000E94411886E20E94091982E01CC00438F4 -:100B6000F0E51F0741F305381045D9F4F7018281FC -:100B7000882331F01092C60180E20E94581929C0E2 -:100B80008091C601811106C087E20E94411887E268 -:100B90000E94091980E20E945F191BC005381045A8 -:100BA00029F381E08093C5018093C601C701A39614 -:100BB0000FB6F894DEBF0FBECDBFDF91CF911F916E -:100BC0000F91FF90EF90BF90AF909F908F900C94FB -:100BD000DE0280E0A3960FB6F894DEBF0FBECDBF55 -:100BE000DF91CF911F910F91FF90EF90BF90AF9049 -:100BF0009F908F90089508959CE0799FF0011124B3 -:100C000090E3899FE00DF11D1124E60FF11DEE0F19 -:100C1000FF1FE453FE4F859194910895880F991F0B -:100C2000FC01E45BFF4F859194910895880F991F13 -:100C3000FC01E453FE4F8591949108950F931F9307 -:100C4000CF93DF93EC01811521E39207A0F5C11545 -:100C500080E3D80708F0D7C0C83ED105D8F4C03E1D -:100C6000D10508F007C2C83AD10578F4C53AD105D4 -:100C700008F06AC0C130D10509F463C008F4F7C1B7 -:100C8000C430D10508F0F6C1F2C1CB3BD10508F460 -:100C900066C0EDC1C11590E2D90708F0AFC0C1151B -:100CA00021E0D20708F0E6C1C03FD10508F4DFC15A -:100CB0008E0110651FC2C03880E5D80700F5C03727 -:100CC00090E5D90708F0A3C0C11520E5D20709F4C3 -:100CD000ACC050F4CE01905480319F4008F0C7C1A1 -:100CE000DF708E01106A06C2C13080E5D80709F4B2 -:100CF000AEC0C43190E5D90708F4AFC0B8C1C3385D -:100D000020E5D20709F48EC050F4C13890E5D90728 -:100D100009F482C008F083C000E011EDEBC1C031DE -:100D200081E5D80708F4A3C1C11597E5D90708F4F0 -:100D300036C1CE0190578115904108F098C1DF70FF -:100D400093C101E010E0D6C1C53AD10509F494C1C0 -:100D5000C63AD10509F093C102E810E4CBC1C83A04 -:100D6000D10509F48FC1C93AD10509F48EC1CA3A37 -:100D7000D10509F48DC1CB3AD10509F48CC1CC3A27 -:100D8000D10509F48BC1CD3AD10509F48AC1C03B24 -:100D9000D10509F489C1CE3AD10509F488C1CF3A09 -:100DA000D10509F487C1C13BD10509F486C1C23B15 -:100DB000D10509F485C1C33BD10509F484C1C43B05 -:100DC000D10509F483C1C53BD10509F482C1C63BF5 -:100DD000D10509F481C1C73BD10509F480C1C83BE5 -:100DE000D10509F47FC1C93BD10509F47EC1CA3BD5 -:100DF000D10509F47DC100E014E47CC1CE019F70EF -:100E00000E94160678C1DD278E01106C73C1CF7069 -:100E1000DD278E01146D6EC100E010ED6BC100E0A6 -:100E200012ED68C100E013ED65C10E94EC1B0E9449 -:100E30002A0A0E94F1038FEF94E32CE08150904046 -:100E40002040E1F700C000000E94432353C180917D -:100E5000F20281608093F2024DC10E94A4238111AD -:100E600002C00E9480230E94B72390E090931D034C -:100E700080931C03C23080E5D80721F480911C03C5 -:100E8000816086C0C43090E5D90721F480911C03AD -:100E900082607EC0C63020E5D20721F480911C0319 -:100EA000846076C0C83080E5D80719F480911C03AF -:100EB00027C0CA3090E5D90721F480911C038061D6 -:100EC00067C0CC3020E5D20721F480911C038062FA -:100ED0005FC0CE3080E5D80721F480911C03806488 -:100EE00057C0C03190E5D90721F480911C03806878 -:100EF0004FC0C23120E5D20729F480911C038460E1 -:100F0000886046C0C33080E5D80721F480911C0377 -:100F10008E7F3EC0C53090E5D90721F480911C0337 -:100F20008D7F36C0C73020E5D20721F480911C03A5 -:100F30008B7F2EC0C93080E5D80719F480911C033F -:100F400026C0CB3090E5D90721F480911C038F7E19 -:100F50001FC0CD3020E5D20721F480911C038F7D86 -:100F600017C0CF3080E5D80721F480911C038F7B18 -:100F70000FC0C13190E5D90721F480911C038F7710 -:100F800007C0C331D04531F480911C038B7F877F2C -:100F900080931C0380911C030E94BB23ABC08D2F48 -:100FA00099278F70992781309105D9F49E0123707C -:100FB000332702C0880F991F2A95E2F79C688E019B -:100FC00044E0000F111F4A95E1F700271370802BB2 -:100FD000912B53E0CC0FDD1F5A95E1F7C076DD274A -:100FE0002FC08230910531F4DC2FCC278E01016FA8 -:100FF000106A80C08330910569F4CE01837099270F -:1010000001E010E002C0000F111F8A95E2F7C8014D -:101010009C680FC084309105B9F4CE018370992784 -:1010200001E010E002C0000F111F8A95E2F7C8012D -:101030009A6823E0CC0FDD1F2A95E1F7C07ED770B8 -:101040008C010C2B1D2B56C08530910531F4DC2F03 -:10105000CC278E01046F106A4DC0069709F04AC074 -:10106000CF71DD27DC2FCC278E01106243C000E05A -:1010700010E040C08E013EC001E810E43BC003E830 -:1010800010E438C002EE14E435C009EE14E432C0B6 -:101090000AEE14E42FC005EB14E42CC006EB14E4B4 -:1010A00029C007EB14E426C00CEC14E423C00DECBB -:1010B00014E420C003E815E41DC00AE815E41AC0D2 -:1010C00002E915E417C004E915E414C001E216E4CE -:1010D00011C003E216E40EC004E216E40BC005E200 -:1010E00016E408C006E216E405C007E216E402C0F2 -:1010F0000AE216E4C801DF91CF911F910F91089584 -:101100009CE0799FF001112490E3899FE00DF11D8F -:101110001124E60FF11DEE0FFF1FE453FE4F8591E2 -:101120009491803E9105E0F4803C910558F581331F -:10113000910509F46FC048F48932910509F463C040 -:101140008A32910509F46DC072C089339105E9F0C6 -:1011500082389105D1F08533910509F44DC067C0FF -:10116000833E910581F138F4803E9105B9F0823ECD -:101170009105D9F05CC0863E910561F1873E9105ED -:10118000A1F155C00E940E06089520911C0320FD78 -:1011900002C021FF4CC080EE90E049C080911C034A -:1011A00080FFF9CF89E390E042C080911C0382FF69 -:1011B0000EC080911C0384FF03C080E090E037C024 -:1011C00083EE90E034C080911C0382FFF2CF82EE68 -:1011D00090E02DC080911C0383FF0BC080911C0305 -:1011E00084FDEBCF87EE90E022C080911C0383FF4B -:1011F000F5CF86EE90E01BC080911C0385FF07C0F1 -:1012000089E290E014C080911C0385FFF9CF85E34B -:1012100090E00DC080911C0386FF07C08AE290E039 -:1012200006C080911C0386FFF9CF81E390E00E9405 -:101230001E0608950C94E002E82FF0E0E25BFE4FFA -:101240008081E82FEF70F0E082958F7021E030E030 -:10125000A90102C0440F551F8A95E2F740A30895E3 -:101260000F931F93CF93DF9385B7806885BF85B7B2 -:10127000806885BFC3E0D0E001E010E0FE01E25BE2 -:10128000FE4F8081E82FEF70F0E021A182958F70F2 -:10129000A80102C0440F551F8A95E2F7CA01822BAC -:1012A00081A38C2F0E941C09219740F78BE090E0CE -:1012B00061E070E0FC01EE5BFE4F2081E22FEF70F9 -:1012C000F0E042A122952F70DB0102C0AA0FBB1FE4 -:1012D0002A95E2F79D01242B22A3019758F7DF916D -:1012E000CF911F910F910C949C03EF92FF920F935B -:1012F0001F93CF93DF9300E212E0C3E0EE24E39468 -:10130000F12CD5E08C2F0E941C098BE090E040E08E -:1013100050E0FC01EE5BFE4F6081E62FEF70F0E0E5 -:1013200020A130E062956F7002C0359527956A95CF -:10133000E2F720FD09C09701082E02C0220F331FDB -:101340000A94E2F7422B532B019718F7F801929178 -:1013500082918F018417950721F051834083D093A8 -:1013600005018C2F0E941C09C15060F68091050177 -:1013700087FD2CC08150809305018F3F39F08FE9A4 -:101380009FE00197F1F700C0000020C080911E028D -:1013900090911F02909327028093260280911C0255 -:1013A00090911D02909325028093240280911A024D -:1013B00090911B0290932302809322028091180245 -:1013C0009091190290932102809320020E949E0323 -:1013D00081E0DF91CF911F910F91FF90EF900895E1 -:1013E000E82FF0E0EE0FFF1FE05EFD4F808191815E -:1013F000089508950F931F93CF9308E212E0C0E081 -:10140000F801929182918F010E946022C80FF2E050 -:1014100000321F07A9F78C2FCF911F910F910895CC -:101420000E94A423811102C00E9480230E94C9232C -:10143000809307033E9A809171008D7F80937100A5 -:1014400082E0809390008AE18093910081E0809314 -:101450002A02089580912A02811102C00E94100A76 -:1014600010927A0210927902809171008D7F8093A0 -:101470007100809190008F738093900010923C02D5 -:1014800010923B0210927302109274021092750235 -:10149000109276021092720210927102E1E5F2E06F -:1014A000A1E4B2E011921192119211921D921D923B -:1014B00082E0E137F807B1F70895CF92DF92EF921B -:1014C000FF920F931F93CF93DF9320913B02222330 -:1014D00009F484C06B017C0180912A02811102C051 -:1014E0000E94100A01E712E0C7E0D0E0A7019601D0 -:1014F000F80192918291729162918F010E94142958 -:10150000811131C0FE01EE0FFF1FEE0FFF1FEF5ADA -:10151000FD4F1082118212821382DE01AA0FBB1FBF -:10152000AF5BBD4F11961C921E92C730D105E9F0FA -:1015300021964481558166817781408351836283FE -:101540007383148215821682178212968D919C9154 -:10155000139711969C938E9313961C921E9212973A -:1015600034961296E2CF219708F6809179029091F5 -:101570007A02019797FD05C090937A0280937902D1 -:1015800004C010927A0210927902809179029091AF -:101590007A0220917702309178022817390724F0D7 -:1015A0001092780210927702892BC1F48091710019 -:1015B0008D7F80937100809190008F738093900055 -:1015C00010927302109274021092750210927602B9 -:1015D000109272021092710210923B02DF91CF9131 -:1015E0001F910F91FF90EF90DF90CF9008951F9281 -:1015F0000F920FB60F9211244F925F926F927F92CB -:101600008F929F92AF92BF92CF92DF92EF92FF9212 -:101610002F933F934F935F936F937F938F939F93FA -:10162000AF93BF93CF93DF93EF93FF9380913B02F0 -:10163000882309F49BC1C0917902D0917A021C16CB -:101640001D060CF093C140902B0250902C0260902C -:101650002D0270902E0220E030E0A901C301B201FA -:101660000E94BF2A18160CF065C0C130D10509F4DC -:1016700052C08091770290917802BE010E94912C15 -:101680007C01909378028093770280903D02909045 -:101690003E02A0903F02B090400220E030E040E8DF -:1016A0005FE3C501B4010E94B02860933D027093CE -:1016B0003E0280933F0290934002F701EE0FFF1F1E -:1016C000EE0FFF1FEF5AFD4FA30192016081718160 -:1016D000828193810E94182920E030E040E05EE39F -:1016E0000E94C32A9B01AC01C501B4010E94BF2A1C -:1016F00018168CF4C7010196BE010E94912C90939C -:1017000078028093770210923D0210923E0210926E -:101710003F0210924002E0917702F0917802EE0FC2 -:10172000FF1FEE0FFF1FEF5AFD4F60817181828115 -:101730009381D0C0C0907302D0907402E090750283 -:10174000F090760220E030E0A901C701B6010E94C6 -:1017500014292197882309F4A2C0FE01EE0FFF1F70 -:10176000EE0FFF1FEF5AFD4F80809180A280B38063 -:10177000A5019401C701B6010E94142987FF31C059 -:10178000A501940160E070E08CED93EC0E941829B3 -:1017900020E030E040E451E40E94182920E030E0ED -:1017A00040E05FE30E94C32A9B01AC0160E070E06F -:1017B00080E090E40E94262B9B01AC01C501B4019E -:1017C0000E94C32A9B01AC01C701B6010E941429E3 -:1017D00087FF07C0A701960160E070E08CED93E4FD -:1017E00039C0A5019401C701B6010E94BF2A18168D -:1017F0000CF055C0A501940160E070E08CED93E41D -:101800000E94182920E030E040E451E40E941829A9 -:1018100020E030E040E05FE30E94C32A9B01AC017E -:1018200060E070E080E090E40E94262B9B01AC0118 -:10183000C501B4010E94C32A9B01AC01C701B601D6 -:101840000E94BF2A18165CF5A701960160E070E0BF -:101850008CED93EC0E94182920E030E040E451E444 -:101860000E94182920E030E040E05FE30E94C32A94 -:101870009B01AC0160E070E080E090E40E94262BC8 -:101880009B01AC01C701B6010E94C32A6093730299 -:1018900070937402809375029093760213C0FE01D8 -:1018A000EE0FFF1FEE0FFF1FEF5AFD4F808191815A -:1018B000A281B3818093730290937402A093750206 -:1018C000B0937602609173027091740280917502F8 -:1018D0009091760220912802309129022F3F4FEFFC -:1018E000340731F02F5F3F4F3093290220932802B5 -:1018F0000E949F0E6B017C0120E034E244EF51E432 -:101900000E94142987FF08C086EFC82E88E2D82ECF -:1019100084EFE82E81E4F82E20E030E040E051E44E -:10192000C701B6010E94C32A9B01AC0160E074E2CA -:1019300084E79BE40E9418296B017C010E948529A1 -:1019400070939700609396002091060130910701F3 -:101950004091080150910901C701B6010E94C32AB4 -:101960000E948529709399006093980080913C02B1 -:10197000882309F433C1C0903702D0903802E09038 -:101980003902F0903A0220E030E0A901C701B60127 -:101990000E94BF2A1816D4F580912802909129023E -:1019A0008F3F2FEF920729F00196909329028093A1 -:1019B0002802C701B6010E949F0E20E030E040E0FF -:1019C00051E40E94C32A9B01AC0160E074E284E709 -:1019D0009BE40E9418296B017C010E948529709369 -:1019E0009700609396002091060130910701409185 -:1019F000080150910901C701B6010E94C32A0E9443 -:101A00008529709399006093980008C01092970000 -:101A100010929600109299001092980060913102F5 -:101A2000709132026F5F7F4F709332026093310288 -:101A3000209196003091970080E090E0232BF1F008 -:101A4000C0919600D09197000E94B1296B017C0152 -:101A5000BE0180E090E00E94B1299B01AC01609141 -:101A600033027091340280913502909136020E94C7 -:101A7000182920E03FEF4FE757E410C00E94B1293A -:101A80006B017C0120E030EE4FEF54E460913302B3 -:101A90007091340280913502909136020E94C32ADF -:101AA0009B01AC01C701B6010E94BF2A87FD96C009 -:101AB00080912F028F5F80932F0290E0209103038B -:101AC0003091040382179307A0F080910E038823BE -:101AD00019F010922F020DC0809171008D7F8093BC -:101AE0007100809190008F738093900010923C025F -:101AF0007DC080913002C0912F02811128C0C0901A -:101B00000803D0900903E0900A03F0900B0320E053 -:101B100030E0A901C701B6010E94BF2A1816BCF423 -:101B200081E08093300210923702109238021092B6 -:101B3000390210923A02C0923302D0923402E092FB -:101B40003502F0923602C150C0932F0243C010926A -:101B500030021092290210922802E0910503F091C0 -:101B6000060348E0C49FE00DF11D1124808191819E -:101B7000A281B3818093370290933802A0933902F7 -:101B8000B0933A0220E030E040E85EE36481758182 -:101B9000868197810E94C32A6B017C0180910A0192 -:101BA000682F70E080E090E00E94B12920E030E0F2 -:101BB00048EC52E40E9418299B01AC01C701B60110 -:101BC0000E94C32A609333027093340280933502DB -:101BD00090933602109232021092310280910703E4 -:101BE00080FD04C010923C0210923B02FF91EF91E5 -:101BF000DF91CF91BF91AF919F918F917F916F9125 -:101C00005F914F913F912F91FF90EF90DF90CF9098 -:101C1000BF90AF909F908F907F906F905F904F900C -:101C20000F900FBE0F901F901895CF92DF92EF92FA -:101C3000FF92CF93DF936B017C01EA0180912A022E -:101C4000811102C00E94100A8091070380FF46C0E4 -:101C50008091790290917A0208970CF03FC08091B0 -:101C600071008D7F8093710080913C0281110E94F0 -:101C70002A0A81E080933B021092290210922802E6 -:101C800020E030E0A901C701B6010E94BF2A181662 -:101C9000DCF48091790290917A02FC01EE0FFF1F33 -:101CA000EE0FFF1FEF5AFD4FC082D182E282F38216 -:101CB000FC01EE0FFF1FEF5BFD4FD183C083019648 -:101CC00090937A0280937902809171008260809370 -:101CD000710080919000806880939000DF91CF9197 -:101CE000FF90EF90DF90CF9008958091070381706F -:101CF0000895809107038160809307030E94CD239C -:101D00000C94F803809107038E7F809307030C9453 -:101D1000CD2380917B0290E0019666E070E00E9406 -:101D2000912C80937B02089580917B0290E0019733 -:101D300066E070E00E94912C80937B0208958F9260 -:101D40009F92AF92BF92CF92DF92EF92FF920F934A -:101D50001F93CF93DF936B017C01C0912802D09138 -:101D60002902BE0180E090E00E94B1294B015C0194 -:101D7000A701960160E070E08CE594E40E941829C8 -:101D80009B01AC01C501B4010E94C32A0E948529B0 -:101D900020917B02233009F473C028F4222351F0F0 -:101DA0002130E9F02CC1243009F4A0C0253009F419 -:101DB000E0C025C180E090E0A0E0BFE38093060191 -:101DC00090930701A0930801B093090110922B0290 -:101DD00010922C0210922D0210922E0210C110921D -:101DE0002B0210922C0210922D0210922E026431BE -:101DF000710540F46A30710560F520E030E040E89C -:101E00005EE32BC0693C710508F0AAC080E090E059 -:101E10000E94B12920E030E040EA51E40E94AF285E -:101E200020E030E044E353E40E9418299B01AC0118 -:101E30000E94C32A20E030E040E05EE30E94C32A13 -:101E40009B01AC0160E070E080E09EE30E94AF285F -:101E500044C020E030E040E05FE3C701B6010E94EB -:101E6000C32A6B017C0180E090E0A0E0BEE3809398 -:101E7000060190930701A0930801B0930901BFC028 -:101E800010922B0210922C0210922D0210922E0210 -:101E90004AE0469F9001479F300D1124C90168EB2D -:101EA0007BE00E947D2CBC016C5D754077FF03C018 -:101EB000719561957109882777FD8095982F0E940B -:101EC000B3292EE333EC4EE259E30E94C32A20E00B -:101ED00030E040EC5EE30E94B0286093060170930E -:101EE0000701809308019093090189C010922B0289 -:101EF00010922C0210922D0210922E02CE018370AD -:101F00009927892BE1F0BE016170772780E090E08E -:101F10000E94B12920E030E040E05EE30E94C32A45 -:101F200020E030E040E45FE30E94B02860930601C7 -:101F30007093070180930801909309010CC080E021 -:101F400090E0A0E0BFE38093060190930701A09387 -:101F50000801B0930901C770DD27CD2B09F04FC0F0 -:101F600010920601109207011092080110920901C7 -:101F700046C010922B0210922C0210922D02109249 -:101F80002E0200E010E020E03FE3009306011093F2 -:101F9000070120930801309309016739710578F131 -:101FA00080E090E00E94B12920E030E047E153E476 -:101FB0000E94AF2820E030E04AE754E40E9418294C -:101FC00020E030E048E452E40E94C32A20E030E000 -:101FD00040EA51E40E94F5290E948029660F771F8C -:101FE000660F771FFB01EE5AFE4F2081318142813F -:101FF0005381C701B6010E94C32A6B017C01C7014E -:10200000B601DF91CF911F910F91FF90EF90DF907C -:10201000CF90BF90AF909F908F90089580918C0249 -:102020000895CF93DF9300D01F92CDB7DEB79C0108 -:1020300080911303843019F593E099833B832A83BD -:102040009093E9008FEF9091E800815095FD06C0D4 -:1020500095ED9A95F1F700008111F5CF8091E80098 -:1020600085FF0DC040E050E063E070E0CE010196D6 -:102070000E9472128091E8008E778093E8000F90A2 -:102080000F900F90DF91CF910895CF93DF9300D001 -:102090001F92CDB7DEB720911303243021F522E043 -:1020A00029839B838A8383E08093E9008FEF90915B -:1020B000E800815095FD06C095ED9A95F1F7000076 -:1020C0008111F5CF8091E80085FF0DC040E050E020 -:1020D00063E070E0CE0101960E9472128091E800E8 -:1020E0008E778093E8000F900F900F90DF91CF9143 -:1020F0000895209113032430F1F422E02093E900A5 -:102100002FEF3091E800215035FD06C035ED3A95AE -:10211000F1F700002111F5CF2091E80025FF0BC059 -:1021200040E050E065E070E00E9472128091E800AB -:102130008E778093E8000895CF93DF93EC01909120 -:102140001303943009F046C0809115018823D9F01B -:10215000809116018823B9F09093E9008FEF909158 -:10216000E800815095FD06C095E19A95F1F70000D1 -:102170008111F5CF8091E80085FF2CC040E050E050 -:1021800060E170E017C081E08093E9008FEF9091EB -:10219000E800815095FD06C095ED9A95F1F7000095 -:1021A0008111F5CF8091E80085FF14C040E050E038 -:1021B00068E070E0CE010E9472128091E8008E7794 -:1021C0008093E80080E1FE01ACE7B2E001900D925F -:1021D0008A95E1F7DF91CF910895809112038111E3 -:1021E00009C00E9407140E9464148091E200846078 -:1021F0008093E200089510921203089508950895BF -:102200000C94AB2242E061EC81E00E94811342E039 -:1022100061EC82E00E94811342E061EC83E00E9465 -:10222000811342E161EC84E00C94811380911503E9 -:10223000833009F455C030F4813071F0823009F4F4 -:102240008EC008958A3009F47AC08B3009F460C0DA -:10225000893009F09CC020C080911403813A09F0B4 -:1022600096C08091E800877F8093E80080911803F2 -:1022700090911903892B21F460E18CE792E003C06F -:1022800060E080E090E070E00E94BD128091E80084 -:102290008B778093E800089580911403813209F0D0 -:1022A00076C08091180390911903009719F0039755 -:1022B00009F06DC08091E800877F8093E8008091ED -:1022C000E80082FD05C0809113038111F8CF5FC043 -:1022D0008091F10080938C028091E8008B7753C04D -:1022E00080911403813A09F052C0809118039091B3 -:1022F0001903892B09F04BC08091E800877F8093F8 -:10230000E8008091E80080FFFCCF8091150136C085 -:10231000809114038132D9F58091180390911903AB -:10232000892BA9F58091E800877F8093E8000E94BF -:10233000B61380911603809315010C94EC1B8091C9 -:102340001403813221F58091E800877F8093E800B3 -:102350000E94B6138091170380938D020895809197 -:102360001403813AA1F48091E800877F8093E8000C -:102370008091E80080FFFCCF80918D028093F10076 -:102380008091E8008E778093E8000C94B61308954E -:1023900084B7877F84BF88E10FB6F894809360008C -:1023A000109260000FBE90E080E80FB6F894809322 -:1023B0006100909361000FBE0E9459170E9407149C -:1023C0000E9464148091E20084608093E20078941B -:1023D0000E94EA160E945B178BE091E00E940517AD -:1023E00080911303853069F40E946C22809111035F -:1023F0008823B1F30E949A22882391F30E945C12F1 -:10240000EFCF0E946317ECCF292F332723303105FC -:10241000C9F064F42130310581F02230310509F032 -:1024200043C08DE690E028EA33E042C02132310516 -:10243000F1F02232310541F137C082E190E025E12F -:1024400034E036C099278130910541F08230910502 -:1024500041F0892B49F5E4EAF3E005C0E6E7F3E053 -:1024600002C0ECE4F3E0849190E09F0121C064306D -:10247000D8F4E62FF0E0EE0FFF1FE255FE4F20816B -:10248000318189E090E014C0643070F470E0FB01A9 -:10249000EE0FFF1FEA55FE4F20813181FB01EE5503 -:1024A000FE4F808190E004C080E090E020E030E0CA -:1024B000FA0131832083089580E189BD82E189BDDD -:1024C00009B400FEFDCF8091D8008F7D8093D800A5 -:1024D0008091E00082608093E0008091E00081FDC7 -:1024E000FCCF0895CF92DF92EF92FF920F931F934C -:1024F000CF93DF93EC018B016A010E94D513811108 -:1025000033C0C114D10439F0F60180819181081BD8 -:10251000190BC80FD91FE12CF12C0115110519F168 -:102520008091E80085FD16C08091E8008E77809349 -:10253000E800C114D10449F0F60180819181E80ED0 -:10254000F91EF182E08285E00FC00E94D513882336 -:1025500021F30AC089918093F10001501109FFEF26 -:10256000EF1AFF0ADACF80E0DF91CF911F910F9130 -:10257000FF90EF90DF90CF90089520911A03309153 -:102580001B032617370748F06115710539F42091B0 -:10259000E8002E772093E80001C0B90140E0611502 -:1025A0007105A9F120911303222309F443C02530BA -:1025B00009F442C02091E80023FD40C02091E800CA -:1025C00022FD32C02091E80020FFE9CF4091F300C6 -:1025D0002091F20030E0342BFC01CF016115710530 -:1025E00059F02830310540F481918093F100615019 -:1025F00071092F5F3F4FF1CF41E02830310509F0DD -:1026000040E02091E8002E772093E800C8CF4111E8 -:10261000C9CF0AC080911303882361F0853061F02F -:102620008091E80083FD0AC08091E80082FFF2CF2C -:1026300080E0089582E0089583E0089581E00895A0 -:1026400020911A0330911B032617370748F06115B4 -:10265000710539F42091E8002E772093E80001C03D -:10266000B901FC0120E06115710591F1809113031E -:10267000882309F440C0853009F43FC08091E80008 -:1026800083FD3DC08091E80082FD2FC08091E8006D -:1026900080FFE9CF2091F3008091F20090E0922B2F -:1026A0006115710559F08830910540F4249120930B -:1026B000F1003196615071090196F2CF21E008973F -:1026C00009F020E08091E8008E778093E800CBCF7E -:1026D0002111CCCF0AC080911303882361F085308B -:1026E00061F08091E80083FD0AC08091E80082FFDC -:1026F000F2CF80E0089582E0089583E0089581E0BC -:102700000895982F973058F59093E900981739F06D -:102710007091EC002091ED005091F00003C0242F47 -:10272000762F50E021FF19C03091EB003E7F3093AF -:10273000EB003091ED003D7F3093ED003091EB00E8 -:1027400031603093EB007093EC002093ED005093D8 -:10275000F0002091EE0027FF07C09F5FD3CF8F705E -:102760008093E90081E0089580E00895809114034A -:1027700087FF11C08091E80082FD05C0809113039E -:102780008111F8CF11C08091E8008B770BC0809148 -:102790001303882349F08091E80080FFF8CF8091EF -:1027A000E8008E778093E80008952091E40030914E -:1027B000E50095E64091EC00842F817040FF22C037 -:1027C0008091E80080FD1CC080911303882391F064 -:1027D000853091F08091EB0085FD10C04091E400C0 -:1027E0005091E5004217530729F39A01915011F7D0 -:1027F00084E0089582E0089583E0089581E00895DB -:1028000080E008954091E80042FFDECF08950E94E5 -:1028100075140E947D14E0EEF0E080818160808379 -:10282000E8EDF0E080818F77808319BCA7EDB0E000 -:102830008C918E7F8C9380818F7E80831092120387 -:1028400008950F931F93CF93DF930E9475140E94F6 -:102850007D14C8EDD0E088818F7788838881806877 -:10286000888388818F7D888319BC1092130310920E -:102870000F03109211031092100300EE10E0F80104 -:1028800080818B7F808388818160888342E060E0E3 -:1028900080E00E948113E1EEF0E080818E7F8083F2 -:1028A000E2EEF0E0808181608083808188608083B7 -:1028B000F80180818E7F8083888180618883DF91A9 -:1028C000CF911F910F910895E8EDF0E080818F7E08 -:1028D0008083E7EDF0E080818160808384E082BFC7 -:1028E00081E0809312030C942114E8EDF0E08081E4 -:1028F0008E7F80831092E20008951092DA00109289 -:10290000E10008951F920F920FB60F9211242F939A -:102910003F934F935F936F937F938F939F93AF9367 -:10292000BF93EF93FF938091E10082FF0BC08091F2 -:10293000E20082FF07C08091E1008B7F8093E1007D -:102940000E94E9168091DA0080FF1FC08091D800B4 -:1029500080FF1BC08091DA008E7F8093DA00809127 -:10296000D90080FF0DC080E189BD82E189BD09B435 -:1029700000FEFDCF81E0809313030E94ED1005C09F -:1029800019BC109213030E94FB108091E10080FF9C -:1029900019C08091E20080FF15C08091E2008E7F17 -:1029A0008093E2008091E20080618093E200809158 -:1029B000D80080628093D80019BC85E0809313030F -:1029C0000E94FF108091E10084FF30C08091E200FE -:1029D00084FF2CC080E189BD82E189BD09B400FE7D -:1029E000FDCF8091D8008F7D8093D8008091E10049 -:1029F0008F7E8093E1008091E2008F7E8093E200E1 -:102A00008091E20081608093E20080910F0388232F -:102A100011F084E007C08091E30087FD02C081E0EF -:102A200001C083E0809313030E9400118091E100B4 -:102A300083FF29C08091E20083FF25C08091E100DF -:102A4000877F8093E10082E08093130310920F034D -:102A50008091E1008E7F8093E1008091E2008E7F83 -:102A60008093E2008091E20080618093E20042E086 -:102A700060E080E00E9481138091F0008860809384 -:102A8000F0000E94FE10FF91EF91BF91AF919F91D6 -:102A90008F917F916F915F914F913F912F910F9007 -:102AA0000FBE0F901F9018951F920F920FB60F92A6 -:102AB00011242F933F934F935F936F937F938F9343 -:102AC0009F93AF93BF93CF93DF93EF93FF93C09107 -:102AD000E900CF708091EC00D82FD17080FDD0E854 -:102AE0001092E9008091F000877F8093F000789445 -:102AF0000E9498151092E9008091F0008860809300 -:102B0000F000CD2BCF70C093E900FF91EF91DF91E2 -:102B1000CF91BF91AF919F918F917F916F915F9175 -:102B20004F913F912F910F900FBE0F901F901895CE -:102B30001F93CF93DF93CDB7DEB7AA970FB6F89464 -:102B4000DEBF0FBECDBFE4E1F3E088E08E0F9091D1 -:102B5000F10091938E13FBCF0E9416118091E80033 -:102B600083FF1FC18091140390911503492F50E0FA -:102B70004A30510508F015C1FA01EA5AFF4F0C948A -:102B8000A52C803881F0823809F00BC180911803A0 -:102B90008F708093E9008091EB0085FB882780F996 -:102BA0001092E90006C080911003909111039111D9 -:102BB00082609091E800977F9093E8008093F10005 -:102BC0001092F100C8C0282F2D7F09F0EAC0882399 -:102BD00019F0823061F0E5C080911603813009F070 -:102BE000E0C0933009F080E0809311032BC0809106 -:102BF0001603811127C0809118038F7009F4D1C08A -:102C00008093E9002091EB0020FF1CC0933021F459 -:102C10008091EB00806214C09091EB0090619093E2 -:102C2000EB0021E030E0A90102C0440F551F8A9556 -:102C3000E2F74093EA001092EA008091EB0088608E -:102C40008093EB001092E9008091E800877F86C0B6 -:102C50008111A7C0109116031F778091E30080783F -:102C6000812B8093E3008091E800877F8093E800C8 -:102C70000E94B6138091E80080FFFCCF8091E300B2 -:102C800080688093E300111102C082E001C083E0FC -:102C90008093130386C08058823008F082C08091F0 -:102CA0001603909117038C3D53E0950779F583E067 -:102CB0008A838AE289834FB7F894DE01139620E075 -:102CC0003EE051E2E32FF0E050935700E49120FF03 -:102CD00003C0E295EF703F5FEF708E2F90E0EA3017 -:102CE00010F0C79601C0C0968D939D932F5F24313D -:102CF00049F74FBF8091E800877F8093E8006AE240 -:102D000070E0CE0101960E94BD1214C0AE014F5F6B -:102D10005F4F609118030E940412BC01009709F4F0 -:102D200040C09091E800977F9093E80089819A8154 -:102D30000E9420138091E8008B778093E80031C0D7 -:102D4000803879F58091E800877F8093E800809152 -:102D50000F038093F1008091E8008E778093E80064 -:102D60000E94B6131EC081111CC0909116039230B0 -:102D7000C0F48091E800877F8093E80090930F0370 -:102D80000E94B61380910F03811106C08091E30069 -:102D900087FD02C081E001C084E0809313030E949C -:102DA00002118091E80083FF0AC08091E800877FCC -:102DB0008093E8008091EB0080628093EB00AA96FC -:102DC0000FB6F894DEBF0FBECDBFDF91CF911F913C -:102DD00008950895CF93809113038823A1F0C091A3 -:102DE000E900CF709091EC00892F817090FD80E810 -:102DF000C82B1092E9008091E80083FD0E9498158D -:102E0000CF70C093E900CF9108959093930280937F -:102E100092020895E0919202F0919302309721F08E -:102E20000190F081E02D099480E00895E0919202F4 -:102E3000F0919302309721F00280F381E02D099404 -:102E40000895E0919202F0919302309721F004806E -:102E5000F581E02D0994089520919002309191021E -:102E60008217930771F09093910280939002E09102 -:102E70009202F0919302309721F00680F781E02DC5 -:102E80000994089520918E0230918F028217930742 -:102E900071F090938F0280938E02E0919202F091F4 -:102EA0009302309721F00084F185E02D0994089574 -:102EB00008950C9458170E94DF220E9430090E9446 -:102EC00065230C9414285F926F927F928F929F9249 -:102ED000AF92BF92CF92DF92EF92FF920F931F9328 -:102EE000CF93DF9300D000D01F92CDB7DEB70E9402 -:102EF00075099DE9C92E92E0D92E03E010E0AA24BD -:102F0000A394B12C502E802F0E94F0094C01F601A1 -:102F1000729062906F016826792661147104A1F4A1 -:102F20000150110978F78FEF89838A831B820E94F1 -:102F3000E8228160782F9D838C8349815A816B813F -:102F40008D810E94131838C08091F20281FD0E9489 -:102F5000F9092BE030E07501022E02C0EE0CFF1CD7 -:102F60000A94E2F7C70186219721892B09F1298369 -:102F70005A828E209F2091E0892809F490E09B835B -:102F80000E94E8228160782F9D838C8349815A8139 -:102F90006B818D810E941318000F111FF801EB56F1 -:102FA000FD4F80819181E826F926F182E08204C0FC -:102FB0002150310980F6B4CF0E944C251091940223 -:102FC0000E940A171817D1F00E940A1780939402E2 -:102FD0000F900F900F900F900F90DF91CF911F9156 -:102FE0000F91FF90EF90DF90CF90BF90AF909F90A8 -:102FF0008F907F906F905F900C941A090F900F90B4 -:103000000F900F900F90DF91CF911F910F91FF9034 -:10301000EF90DF90CF90BF90AF909F908F907F9078 -:103020006F905F900895CF93DF93CDB7DEB72B9766 -:103030000FB6F894DEBF0FBECDBF4F8358876987A8 -:103040007A878B87DE01119686E0FD0111928A95C1 -:10305000E9F785E0FE01379601900D928A95E1F738 -:1030600049815A816B817C818D819E810E948A1E5B -:103070002B960FB6F894DEBF0FBECDBFDF91CF9178 -:103080000895CF93882309F4C2C0C82F823859F419 -:103090000E940A1781FDBBC089E30E9464210E943F -:1030A000312289E30CC0833879F40E940A1780FD2D -:1030B000AEC083E50E9464210E94312283E50E9414 -:1030C000A621CF910C943122843859F40E940A171A -:1030D00082FD9DC087E40E9464210E94312287E422 -:1030E000EECF8CEF8C0F813A48F48C2F0E947C2716 -:1030F00081118DC08C2F0E946421E3CF80E28C0F60 -:10310000883048F4C77081E001C0880FCA95EAF79B -:103110000E94EA21D6CF8BE58C0F833078F4C53A34 -:1031200029F0C63A31F083E890E005C081E890E0EC -:1031300002C082E890E0CF910C942C1788E58C0FA8 -:10314000833108F064C0C83A39F1C93A41F1CA3A4A -:1031500049F1CB3A51F1CC3A59F1CD3A61F1C03B4A -:1031600069F1CE3A71F1CF3A79F1C13B81F1C23BBD -:1031700089F1C33B91F1C43B99F1C53BA1F1C63B39 -:10318000A9F1C73BB1F1C83BB9F1C93BC1F1CA3B99 -:10319000C9F180E090E038C082EE90E035C089EE61 -:1031A00090E032C08AEE90E02FC085EB90E02CC01A -:1031B00086EB90E029C087EB90E026C08CEC90E095 -:1031C00023C08DEC90E020C083E891E01DC08AE828 -:1031D00091E01AC082E991E017C084E991E014C03F -:1031E00081E292E011C083E292E00EC084E292E0BC -:1031F0000BC085E292E008C086E292E005C087E25B -:1032000092E002C08AE292E0CF910C944217CF91F3 -:103210000895882309F44BC0823859F40E940A1794 -:1032200081FF45C089E30E9464210E94312289E325 -:103230000CC0833871F40E940A1780FF38C083E500 -:103240000E9464210E94312283E50E94A6210C94F1 -:103250003122843859F40E940A1782FF28C087E47B -:103260000E9464210E94312287E4EFCF9CEF980FE7 -:10327000913A58F390E2980F983050F4877091E0AB -:1032800001C0990F8A95EAF7892F0E94F021DFCFBC -:103290009BE5980F933020F480E090E00C942C177D -:1032A000885A833120F480E090E00C94421708950E -:1032B000882321F00E94EA210C943122089588236A -:1032C00021F00E94F0210C94312208957F928F9278 -:1032D0009F92AF92BF92CF92DF92EF92FF920F93A5 -:1032E0001F93CF93DF931F92CDB7DEB77C01C62E1D -:1032F000772EFC01058102950F70128111110E9439 -:1033000007220E945D21882379F0112369F080E271 -:103310008C0D883048F082E00E9446210E945D2199 -:1033200091E0D82ED92601C0D12CE72DE295EF707F -:10333000F0E0E05AFF4F0C94A52C872D807F072DDD -:103340000F70882311F00295007F112389F000236C -:1033500009F499C180E28C0D883020F4802F0E94FE -:10336000EA2103C0802F0E94FA210E9431228BC1E2 -:103370008C2D0E940919002309F4C3C180E28C0D31 -:10338000883020F4802F0E94F02103C0802F0E94FB -:1033900000220E943122B5C1872D807F972D9F701A -:1033A000803211F4892F03C0892F8295807FCC2031 -:1033B00021F0F1E0CF16A1F01DC0112339F0002358 -:1033C00019F1013009F50E941A229BC1002319F05E -:1033D000013009F496C189830E941D22898110C1A0 -:1033E000112321F0063008F08CC10EC0053008F022 -:1033F00088C106C1112359F0002331F0F7019581EE -:1034000090FF41C19F7095830E9458197AC1002393 -:1034100009F4F6C03EC1872D86958695837090E0AD -:10342000009719F0019761F06CC1112321F08C2DE8 -:10343000972D937002C080E090E00E942C1761C12C -:10344000112321F08C2D972D937002C080E090E025 -:103450000E94421756C18C2D112319F00E9454244A -:1034600002C00E94BC240E9441254BC1872D83705D -:1034700009F052C0111145C18C2D82958695877037 -:10348000880F880F9C2D9F70892E912CA12CB12C18 -:10349000082E04C0880C991CAA1CBB1C0A94D2F7E5 -:1034A000C4FE14C00FE010E020E030E0B901A80134 -:1034B00004C0440F551F661F771F8A95D2F7CB01B2 -:1034C000BA01609570958095909503C060E070E0BA -:1034D000CB01272D26952695237030E0223031052B -:1034E00069F02330310589F0682979298A299B29D7 -:1034F0002130310571F00E94D21F03C1682979295A -:103500008A299B290E94EE1FFCC00E94D21FC50180 -:10351000B4010E94B61FF5C0112319F0872D8170E8 -:1035200001C08695882309F4ECC08C2D8295869580 -:103530008770880F880F9C2D9F70892E912CA12C4D -:10354000B12C082E04C0880C991CAA1CBB1C0A9420 -:10355000D2F7C4FE14C00FE010E020E030E0B90163 -:10356000A80104C0440F551F661F771F8A95D2F724 -:10357000CB01BA01609570958095909503C060E08D -:1035800070E0CB01272D269526952370422F50E021 -:103590004230510569F04330510589F06829792995 -:1035A0008A299B294130510571F00E94AC20A9C0A5 -:1035B000682979298A299B290E94C820A2C00E94D3 -:1035C000AC20C501B4010E9490209BC08C2D90E0DE -:1035D000FC01E05EF109E531F10508F050C0E05969 -:1035E000FF4F0C94A52C0C2D0F70872D8F7111237C -:1035F00021F00E942920802F07CF0E944A20802F8F -:103600000E945F197EC0112341F0053008F079C097 -:10361000872D8F710E946F2074C0063008F071C032 -:10362000F7CF112339F0872D8F710E94292069C0AF -:103630001123C9F3872D8F710E944A2062C0112384 -:1036400029F0872D8F710E9414205BC00E940A20F0 -:1036500058C0112351F0172D1F71812F0E9429206E -:1036600063E0812F0E943D214CC081E00E944621F1 -:10367000023008F446C082E00E94462142C0112375 -:1036800031F0002381F28C2D0E9441183AC00023B2 -:1036900089F28C2D0E94091934C0472D4F706C2D72 -:1036A000C7010E9485030E942E1F2BC0111129C043 -:1036B000472D4F7050E042305105B9F04CF44115A0 -:1036C000510581F041305105E1F40E943C2819C0B8 -:1036D0004330510569F04430510599F48C2D0E9416 -:1036E0008E280FC00E9425280CC00E94582809C0AF -:1036F0000E946B2806C0472D4F706C2DC7010E9499 -:10370000FB05DD20F9F00E94392180FD1BC0F70187 -:1037100012820E9433210E942920C7010E94B11BFE -:103720000E9433210F90DF91CF911F910F91FF9055 -:10373000EF90DF90CF90BF90AF909F908F907F9051 -:103740000C944A200F90DF91CF911F910F91FF9021 -:10375000EF90DF90CF90BF90AF909F908F907F9031 -:1037600008950F931F93CF93DF93EC018881998184 -:103770002B813C81232BB9F09F3F11F48F3F99F0AF -:10378000CE010E94FA03882371F0688179818A81D1 -:103790000E942F218C010E94E4200E94AB1FB801DF -:1037A000CE010E946619DF91CF911F910F9108956C -:1037B0000E9407220E9417220E94DC210E943122CF -:1037C0000E94F2250E94412580E090E00E942C1783 -:1037D00080E090E00C9442170E94F7210C94D81BD3 -:1037E0000E942421292F22952F7030E02C303105A2 -:1037F0004CF42A3031056CF4225031092230310565 -:10380000A8F407C02C30310569F02F30310551F094 -:103810000DC0803F69F018F4803E40F409C0843F39 -:1038200029F406C093FB882780F9089580E0089565 -:1038300081E00895CF93DF9300D000D01F92CDB7E1 -:10384000DEB70F900F900F900F900F90DF91CF91F8 -:103850000895CF93DF9300D000D000D0CDB7DEB76E -:1038600026960FB6F894DEBF0FBECDBFDF91CF9185 -:1038700008951F93CF93DF93C0919D0216E080912E -:103880009E02C81799F0D0E01C9FF0011D9FF00D1B -:103890001124E156FD4F4081518162817381848101 -:1038A00095810E94291C2196C770E9CFDF91CF91A5 -:1038B0001F9108954091CF025091D0026091D102A2 -:1038C0007091D2028091D3029091D4020C94291C61 -:1038D0008091D40282958F7009F054C08091D102FA -:1038E000882309F44FC080919D02A0919E026091AF -:1038F000CF027091D0024091D2025091D302B6E033 -:103900008A1709F43FC090E041155105C1F17F3F8E -:1039100011F46F3FA1F1B89FF001B99FF00D112490 -:10392000E156FD4F218172132AC02081621327C006 -:103930002281211124C0238134812417350710F4FA -:1039400021503109241B350B283C3105C0F420914E -:10395000D4022F7020612093D40226E0289FF0012A -:10396000299FF00D1124EC55FD4F80818F708061EF -:1039700080838FEC92E00E94B11B0C94391C01965D -:103980008770BECF0895CF92DF92EF92FF920F9390 -:103990001F93CF93DF93CDB7DEB762970FB6F8943E -:1039A000DEBF0FBECDBF8C0185E0F801DE011D96A4 -:1039B00001900D928A95E1F7D8014C9111965C9196 -:1039C000119712966C9112971396CD90DC901497E4 -:1039D0003091CF027091D0028091D2029091D302A7 -:1039E000009709F46BC17F3F19F43F3F09F466C1AA -:1039F000E090D102EE2009F4C0C02091D402C81694 -:103A0000D90628F0F601E81BF90BCF0104C0809518 -:103A100090958C0D9D1DFF24F394883C910578F0C2 -:103A2000F12C207F09F0C6C07C2DD98AC88A8989EB -:103A30000E941A1C8FEC92E00E94B11BB1C0822F31 -:103A4000807F09F046C0751314C0341312C0611191 -:103A500010C02F7020612093D4020E945A1C8FEC5A -:103A600092E00E94B11B8091D402D80115968C93EC -:103A70002EC0CD2819F15F3F11F44F3FF9F0F62E1B -:103A800061111CC080919D0220919E0236E0821738 -:103A900009F45AC090E0389FF001399FF00D1124CD -:103AA000E156FD4F7181571306C07081471303C063 -:103AB0007281711103C001968770E9CFF62E6623DB -:103AC00009F418C18091D40281608093D402F12C52 -:103AD00011C1751308C0341306C0611104C0809170 -:103AE000D402D801C3C04D875E878D859E856A8BC1 -:103AF0000E94F01B6A898823E1F16623D1F12091AD -:103B0000D402822F82958F7090E0029774F080919A -:103B1000CF029091D00298878F831986DB86CA8660 -:103B20002C87CE0107960E94B11B86E0F801AFEC0E -:103B3000B2E001900D928A95E1F70E94681C0E9404 -:103B40005A1CFF24F394D6C04D875E878D859E85D1 -:103B50000E942421292F22952F7030E02230310538 -:103B60000CF0BCC09F7009F0B6C0805E883008F4CD -:103B7000C1C0C8010E94B11BE4CFC816D90608F421 -:103B800053C0F601E81BF90BCF01883C910508F4FE -:103B900050C0F12C7C2DD98AC88A89890E941A1CB0 -:103BA000EFECF2E086E0DF011D928A95E9F70E94D2 -:103BB0005A1CA0C0751314C0341312C0611110C078 -:103BC0008091D402F8018583C8010E94B11B86E070 -:103BD000EFECF2E0DF011D928A95E9F7FE2C8AC036 -:103BE0004D875E878D859E856A8B0E94F01B6A8952 -:103BF000882309F4BECF662309F4BBCF2091D402F9 -:103C0000822F82958F7090E002970CF48ECF809176 -:103C1000CF029091D0029A8389831B82DD82CC826D -:103C20002E83CE0101967FCF809590958C0D9D1DA2 -:103C3000ACCFF62E662309F49CCF75132EC0341337 -:103C40002CC02091D40220FD1FC0822F82958F703E -:103C5000D9F0D80115962C9315978F3049F08F5FC6 -:103C6000982F9295907F822F8F70892B15968C9329 -:103C7000C8010E94B11B86E0F801AFECB2E00190F0 -:103C80000D928A95E1F793CF86E0F801AFECB2E0B0 -:103C900001900D928A95E1F72DC04D875E878D8545 -:103CA0009E850E94F01B811140CF8091D4028160DB -:103CB0008093D402C8010E94B11B1CC0662309F482 -:103CC00058CF4D875E878D859E850E94F01B882387 -:103CD00009F44FCF2ACF811148CF0CC024303105D1 -:103CE0000CF047CF9F7009F440CFF8019581907F89 -:103CF00009F03BCF8F2D62960FB6F894DEBF0FBE52 -:103D0000CDBFDF91CF911F910F91FF90EF90DF908A -:103D1000CF9008951F93CF93DF93CDB7DEB72C9745 -:103D20000FB6F894DEBF0FBECDBF4F8358876987AB -:103D30007A878B879C87CE0107960E94C31C8823B5 -:103D400069F08F8198852A853B85232BF1F19F3F70 -:103D500009F063C08F3F09F060C037C086E0FE0104 -:103D60003796DE01119601900D928A95E1F76F81E9 -:103D70007885EA85FB85309741F17F3F11F46F3FED -:103D800021F120919E0230E0C901019687709927A8 -:103D900040919D0250E08417950709F447C069835C -:103DA0007A83FD83EC8396E0929FD001939FB00DC0 -:103DB0001124A156BD4FFE01319601900D929A95A6 -:103DC000E1F780939E020E94391C16E080919D02CB -:103DD00090919E028917C1F1189FC001112481564C -:103DE0009D4F0E94C31C882379F1E0919D021E9F84 -:103DF000F0011124E156FD4F4081518162817381B0 -:103E0000848195810E94291C80919D0290E00196F9 -:103E10008770992780939D02D9CF4F8158856985F6 -:103E20007A858B859C850E94291CCFCF0E94EC1B34 -:103E300010929E0210929D02EFECF2E086E0DF010C -:103E40001D928A95E9F7C1CF2C960FB6F894DEBF84 -:103E50000FBECDBFDF91CF911F910895EF92FF92DA -:103E60000F931F93CF93DF938C01009709F46CC0DD -:103E7000F12CEE24E394E8012196F8018491843733 -:103E800040F4843008F051C0813081F0823019F163 -:103E90005BC0853709F444C0A8F19CE7980F9037C0 -:103EA00008F052C08F770E94091941C00E5F1F4F62 -:103EB000FE01C49180E28C0F883048F4C7708E2DCB -:103EC00001C0880FCA95EAF70E940A2214C08C2FFD -:103ED0000E9441182DC00E5F1F4FFE01C49180E269 -:103EE0008C0F883058F4C7708E2D01C0880FCA958A -:103EF000EAF70E9410220E9431221AC08C2F0E94E1 -:103F0000091916C00E5F1F4FFE01C491CC2381F02A -:103F10008FE99FE00197F1F700C00000C150F6CF94 -:103F20000E5F1F4FFE01F49003C00E9441188E01E6 -:103F30008F2D882309F49FCFEFE9FFE03197F1F748 -:103F400000C000008150F5CFDF91CF911F910F91FC -:103F5000FF90EF90089508956093D9027093DA026C -:103F60008093DB029093DC020C94D81B0F931F9379 -:103F70000091D9021091DA022091DB023091DC022B -:103F8000DC01CB01802B912BA22BB32B8093D90288 -:103F90009093DA02A093DB02B093DC021F910F91A1 -:103FA0000C94D81B0F931F930091D9021091DA0241 -:103FB0002091DB023091DC02DC01CB0180239123D4 -:103FC000A223B3238093D9029093DA02A093DB0259 -:103FD000B093DC021F910F910C94D81B0F931F9389 -:103FE0000091D9021091DA022091DB023091DC02BB -:103FF000DC01CB0180279127A227B3278093D90228 -:104000009093DA02A093DB02B093DC021F910F9130 -:104010000C94D81B1092D5021092D6021092D7029F -:104020001092D8020C94D81B41E050E060E070E0A0 -:1040300004C0440F551F661F771F8A95D2F740931F -:10404000D5025093D6026093D7027093D8020C9495 -:10405000D81B41E050E060E070E004C0440F551F01 -:10406000661F771F8A95D2F78091D5029091D6026C -:10407000A091D702B091D802482B592B6A2B7B2BE9 -:104080004093D5025093D6026093D7027093D80222 -:104090000C94D81B41E050E060E070E004C0440F95 -:1040A000551F661F771F8A95D2F7409550956095EA -:1040B00070958091D5029091D602A091D702B091CF -:1040C000D802482359236A237B234093D502509377 -:1040D000D6026093D7027093D8020C94D81B41E0AB -:1040E00050E060E070E004C0440F551F661F771F6A -:1040F0008A95D2F78091D5029091D602A091D702ED -:10410000B091D802482759276A277B274093D502C8 -:104110005093D6026093D7027093D8020C94D81BA8 -:104120000F931F930091D5021091D6022091D702D0 -:104130003091D802DC01CB01802B912BA22BB32B29 -:104140008093D5029093D602A093D702B093D80261 -:104150001F910F910C94D81B0F931F930091D502C0 -:104160001091D6022091D7023091D802DC01CB0108 -:1041700080239123A223B3238093D5029093D60268 -:10418000A093D702B093D8021F910F910C94D81B23 -:104190000F931F930091D5021091D6022091D70260 -:1041A0003091D802DC01CB0180279127A227B327C9 -:1041B0008093D5029093D602A093D702B093D802F1 -:1041C0001F910F910C94D81B0895CF92DF92EF921C -:1041D000FF920F931F93CF93DF938C01C090D9026E -:1041E000D090DA02E090DB02F090DC028091D50200 -:1041F0009091D602A091D702B091D802C82AD92AAC -:10420000EA2AFB2ACFE1D0E0D701C6010C2E04C078 -:10421000B695A795979587950A94D2F780FF06C023 -:10422000B8018C2F0E948008019721F4219760F734 -:1042300080E001C08C2FDF91CF911F910F91FF90F3 -:10424000EF90DF90CF900895CF93DF93EC010E9421 -:10425000E520BE010E948008DF91CF910895CB0137 -:104260000E94242108958091DD028595859585958C -:1042700008958091DD028770089598E0899F9001EC -:104280001124262B2093DD020C9429202091DD029D -:10429000809582238093DD02982F977069F430E037 -:1042A000482F552747FD50952417350729F0859548 -:1042B000859585950C944A2008959091DD0297701C -:1042C00081E009F480E0089590911501992321F08F -:1042D00090911601911109C0209117013091180198 -:1042E000F90132969FEF40E01FC0982F9695969562 -:1042F00096959F3050F5E0911701F0911801E90F64 -:10430000F11D877021E030E0A90102C0440F551F64 -:104310008A95E2F7CA019181892B818308959F3F95 -:1043200039F04F5F4E3041F051915813F8CF0DC026 -:104330005111F7CF942FF5CF9F3F39F0F901E90FD5 -:10434000F11D97FDFA9582830895089590911501C6 -:10435000992321F090911601911109C02091170124 -:1043600030911801F9013296205F3F4F1FC0982FFE -:104370009695969596959F30F0F4E0911701F091FF -:104380001801E90FF11D877021E030E0A90102C09A -:10439000440F551F8A95E2F7CA01809591818923C0 -:1043A000818308953196E217F30729F090819813DD -:1043B000F9CF1082F7CF089581E090E0E0911701E6 -:1043C000F0911801E80FF91F1082019680319105D4 -:1043D000A9F708959091F102892B8093F102089535 -:1043E00080959091F10289238093F10208951092B3 -:1043F000F10208959091F002892B8093F0020895C4 -:1044000080959091F00289238093F0020895109294 -:10441000F00208959091EF02892B8093EF020895A6 -:1044200080959091EF0289238093EF020895109276 -:10443000EF0208958093DE0208951092DE0208953F -:104440008091170190911801FC0131969C01205F29 -:104450003F4F80E0919191118F5FE217F307D1F701 -:104460000895E0911701F09118018091F102808385 -:10447000E0911701F091180190818091F002892B51 -:104480008083E0911701F091180190818091EF02F3 -:10449000892B80838091DE02882361F0E0911701EF -:1044A000F09118019081892B80830E942022811134 -:1044B0001092DE0280911701909118010C9416174A -:1044C00020E0009739F0AC01415051098423952335 -:1044D0002F5FF7CF822F089580911303843039F135 -:1044E0001092F30220E488E190E00FB6F894A895CA -:1044F000809360000FBE2093600080E00E94EC0279 -:1045000080E00E941A0983B7817F846083BF83B7EC -:10451000816083BF7894889583B78E7F83BF88E15D -:104520000FB6F89480936000109260000FBE08955B -:104530000895089580E00E94EC020E9498220E9453 -:1045400075090E9499220E94FA0991E0811101C027 -:1045500090E0892F08950E94EC1B80E00E94EC02FD -:104560000E9414280E940A170C941A091F920F9295 -:104570000FB60F9211248F939F93AF93BF938091A7 -:10458000F302811113C08091F4029091F502A09181 -:10459000F602B091F7024196A11DB11D8093F4027D -:1045A0009093F502A093F602B093F702BF91AF91FA -:1045B0009F918F910F900FBE0F901F90189582E0E2 -:1045C00084BD93E095BD9AEF97BD80936E000895EA -:1045D0002FB7F8948091F4029091F502A091F60221 -:1045E000B091F7022FBF0895CF92DF92EF92FF9222 -:1045F0000F931F932FB7F8944091F4025091F50256 -:104600006091F6027091F7022FBF6A017B01EE24E0 -:10461000FF248C0120E030E0C016D106E206F3064C -:1046200010F4415051099A01281B390BC9011F91FF -:104630000F91FF90EF90DF90CF9008951F920F920F -:104640000FB60F9211248F939F93AF93BF938091D6 -:10465000F4029091F502A091F602B091F702019652 -:10466000A11DB11D8093F4029093F502A093F60270 -:10467000B093F702BF91AF919F918F910F900FBEB2 -:104680000F901F9018950E940714F8942FEF87EA57 -:1046900091E6215080409040E1F700C0000087E0A3 -:1046A00090EBDC0180931E0390931F03A0932003E3 -:1046B000B09321039CE088E10FB6F894A89580930D -:1046C00060000FBE90936000FFCF0E94A423811171 -:1046D00002C00E9480230E94AF238093F2020E94B6 -:1046E000B72380931C0387FB882780F980931601EA -:1046F0000E94B323682F70E080E090E00C94AC1F20 -:104700006DEE7EEF80E090E00E94CB2C60E082E0D6 -:1047100090E00E94B92C60E083E090E00E94B92C08 -:1047200060E084E090E00E94B92C60E085E090E0D9 -:104730000E94B92C60E086E090E00E94B92C6FEFF7 -:1047400087E090E00C94B92C80E090E00E94B32CBC -:1047500021E08D3E9E4F09F020E0822F089582E0F7 -:1047600090E00C94AB2C83E090E00C94AB2C84E0B4 -:1047700090E00C94AB2C682F84E090E00C94B92C62 -:1047800086E090E00C94AB2C682F86E090E00C94CF -:10479000B92C87E090E00C94AB2C682F87E090E078 -:1047A0000C94B92C8091FA0280FF0BC060911C011F -:1047B00085E0689FB001112475956795759567959B -:1047C0002BC081FF09C060911C0185E0689FB0018A -:1047D00011247595679520C082FF07C060911C0168 -:1047E00085E0689FB001112417C09091FB029923C6 -:1047F000D1F060911B01961788F720911C0185E08C -:10480000289F90011124929FA001939F500D112485 -:1048100070E0CA010E94912C6038710540F4611566 -:10482000710539F002C065E070E0862F08958FE7CA -:10483000089581E008958091FA0280FF08C0609198 -:104840001A0170E0759567957595679521C081FF90 -:1048500006C060911A0170E07595679519C082FFD6 -:1048600004C060911A0170E010C09091FB0299237E -:10487000C1F0609119019617A0F780911A01899FE4 -:10488000C001112470E00E94912C6038710528F459 -:104890006115710521F0862F08958FE7089581E055 -:1048A000089561E070E0F4CF803F21F40E94D223AC -:1048B000819504C0813F29F40E94D2238093FE0297 -:1048C0000895823F21F40E94D223819504C0833F42 -:1048D00029F40E94D2238093FD020895893F19F4A0 -:1048E0000E941B2405C08A3F31F40E941B2481953D -:1048F0008093FF0208958B3F21F40E941B24819531 -:1049000004C08C3F29F40E941B2480930003089567 -:10491000843F21F48091FC02816017C0853F21F41F -:104920008091FC02826011C0863F21F48091FC02DC -:1049300084600BC0873F21F48091FC02886005C031 -:10494000883F31F48091FC0280618093FC020895DD -:104950008D3F21F48091FA0281600BC08E3F21F4DB -:104960008091FA02826005C08F3F29F48091FA029B -:1049700084608093FA020895803F39F48091FE02AA -:1049800087FF6CC01092FE0269C0813F29F48091BC -:10499000FE021816BCF362C09091FD02823F29F41A -:1049A00097FF5CC01092FD0259C0833F19F419169D -:1049B000CCF354C0893F41F48091FF0218160CF0EB -:1049C0004DC01092FF024AC08A3F29F48091FF0235 -:1049D00087FF44C0F6CF8B3F39F48091000387FFF7 -:1049E0003DC0109200033AC08C3F29F4809100032F -:1049F0001816BCF333C0843F21F48091FC028E7FF3 -:104A000017C0853F21F48091FC028D7F11C0863F45 -:104A100021F48091FC028B7F0BC0873F21F48091B1 -:104A2000FC02877F05C0883F31F48091FC028F7EB5 -:104A30008093FC0213C08D3F21F48091FA028E7F97 -:104A40000BC08E3F21F48091FA028D7F05C08F3F0D -:104A500029F48091FA028B7F8093FA028091FD0203 -:104A600081110EC08091FE0281110AC08091FF0267 -:104A7000811106C080910003811102C01092FB02D7 -:104A800008958CEF92E00E9421170E94E8229093F3 -:104A9000F9028093F80208951F93CF93DF938091DA -:104AA000F8029091F9020E94F422AC019091FB026D -:104AB000992321F020911D0130E006C020911E01B4 -:104AC0008AE0289F900111244217530708F486C0FA -:104AD0008091FD02C091FE02D091FF02109100036F -:104AE000811107C0C11176C0D11174C0111172C0FB -:104AF00075C09F3F19F09F5F9093FB02181624F436 -:104B00000E94D2238093FD028091FD0287FF05C0A1 -:104B10000E94D22381958093FD021C1624F40E94EA -:104B2000D2238093FE028091FE0287FF05C00E947F -:104B3000D22381958093FE026091FD02662339F1B4 -:104B4000C091FE02CC2319F1772767FD7095872F5E -:104B5000972F0E94B32923E333E343E35FE30E94EB -:104B6000C32A0E9480296093FD026C2F772767FD7E -:104B70007095872F972F0E94B32923E333E343E3F4 -:104B80005FE30E94C32A0E9480296093FE021D16E3 -:104B900024F40E941B248093FF028091FF0287FF70 -:104BA00005C00E941B2481958093FF02111624F4F6 -:104BB0000E941B24809300038091000387FF05C09F -:104BC0000E941B24819580930003DF91CF911F9158 -:104BD0000C9441259F3F09F08ECF96CFDF91CF9166 -:104BE0001F910895ECEFF2E085E0DF011D928A95B8 -:104BF000E9F71092FB021092FA020895833081F1D6 -:104C000028F4813059F08230D1F00895853009F4CC -:104C100049C0B8F1863009F456C0089580911E014C -:104C2000262F30E0280F311D2F3F310524F4680F67 -:104C300060931E0108958FEF80931E010895809167 -:104C40001D01262F30E0280F311D2F3F310524F4A0 -:104C5000680F60931D0108958FEF80931D010895E3 -:104C600080911C01262F30E0280F311D2F3F310588 -:104C700024F4680F60931C0108958FEF80931C014A -:104C8000089580911B01262F30E0280F311D2F3F02 -:104C9000310524F4680F60931B0108958FEF809312 -:104CA0001B01089580911A01262F30E0280F311D35 -:104CB0002F3F310524F4680F60931A0108958FEF98 -:104CC00080931A01089580911901262F30E0280F52 -:104CD000311D2F3F310524F4680F609319010895A9 -:104CE0008FEF809319010895833011F128F48130FA -:104CF00049F0823091F00895853081F120F18630BD -:104D0000C1F1089580911E01681720F4861B8093DD -:104D10001E01089510921E01089580911D016817CB -:104D200020F4861B80931D01089510921D010895A3 -:104D300080911C01681720F4861B80931C01089544 -:104D400010921C01089580911B01681720F4861BA6 -:104D500080931B01089510921B01089580911A0100 -:104D6000681720F4861B80931A01089510921A0187 -:104D7000089580911901681720F4861B809319010A -:104D800008951092190108950F931F93873208F028 -:104D900048C08E3108F08DC0803109F477C008F525 -:104DA000873009F461C068F4863009F09DC08091B5 -:104DB000F202817F8E7F8093F20281E08093020372 -:104DC00094C08B3009F489C08E3009F08DC0809179 -:104DD000F20282FB222720F991E0922790FB82F9D0 -:104DE0005EC0863109F479C060F4813109F07CC07D -:104DF0000E94EC1B9091160181E089278093160197 -:104E00006CC0893109F469C08B3109F06DC08091A3 -:104E1000F20281FB222720F991E0922790FB81F991 -:104E20003EC0883309F459C050F4893209F457C0A0 -:104E3000853309F454C0873209F451C055C0833416 -:104E400009F44DC028F48A3308F44EC0895332C0A7 -:104E5000883409F049C00E94EC1B0E942A0A0E9473 -:104E6000F1030E94432339C09091F202892F80956B -:104E7000817080FB90F929F0966098609093F2021F -:104E800034C0997F977F9093F20227C08091F202FD -:104E900083FB222720F991E0922790FB83F98093EE -:104EA000F2029923D1F08091F20281608093F202A4 -:104EB00014C08D5141E050E060E070E08A019B0138 -:104EC00004C0000F111F221F331F8A95D2F7C9019A -:104ED000B8010E94AC1F0E94EC1B81E006C061E09B -:104EE00070E080E090E0F5CF80E01F910F91089591 -:104EF00080E0089580E00895CF93C82F8091020349 -:104F0000813069F018F08230C9F184C0E091170156 -:104F1000F09118018081823209F07EC007C0E091D3 -:104F20001701F09118018081823261F48C2F0E9468 -:104F30007827811104C08C2F0E94C4261DC081E0F7 -:104F400090E01AC08C2F0E947A27811114C0C431BE -:104F500079F048F4CB3079F0C03109F061C082E0DB -:104F60008093020308C0C93219F0C83321F058C039 -:104F70001092020355C081E0817054C0C93291F192 -:104F800020F5C43179F1B0F4C73009F047C08EE1A3 -:104F900080931E0182E380931D018AE080931C01AF -:104FA00084E180931B0188E080931A0188E280935A -:104FB000190134C0CE51C63088F5EC2FF0E0EA5428 -:104FC000FE4F80818093010329C0CE34E9F020F4A4 -:104FD000CB3421F56AE013C0C13579F0C235F1F464 -:104FE00061E00DC080910103882319F01092010344 -:104FF00015C081E08093020315C061E006C0809176 -:1050000001030E94FE250AC06AE0809101030E940C -:10501000742604C01092020380E004C081E002C044 -:1050200080E0AACFCF9108950E94A423811102C0ED -:105030000E9480230E94C02380931D0380FF02C032 -:10504000869501C080E00C94EC0280911D03982F9E -:105050009695292F30E0233031054CF49F5F990F4E -:105060008170892B816080931D030E94C4238091ED -:105070001D0386950C94EC0280911D03982F969544 -:1050800091F09158990F8170892B80931D038E7F29 -:1050900091E009F490E080911D0390FB80F98093EA -:1050A0001D030E94C42380911D0386950C94EC027D -:1050B00080911D03982F909590FB80F980931D039C -:1050C0000E94C42380911D0380FF02C0869501C009 -:1050D00080E00C94EC0290911D03892F86958F5FE0 -:1050E0008F779170843028F4880F892B80931D036B -:1050F00002C090931D0380911D038E7F91E009F4FF -:1051000090E080911D0390FB80F980931D030E9425 -:10511000C42380911D0386950C94EC0220911D03FD -:10512000922F96958927982F990F822F8170892B1E -:1051300080931D038E7F91E009F490E080911D0320 -:1051400090FB80F980931D030E94C42380911D036E -:1051500086950C94EC0280911D0386950895505815 -:10516000BB27AA270ED0D1C1C2D130F0C7D120F0C1 -:1051700031F49F3F11F41EF4B7C10EF4E095E7FB44 -:105180009FC1E92FD3D180F3BA1762077307840751 -:10519000950718F071F49EF5EBC10EF4E0950B2E17 -:1051A000BA2FA02D0B01B90190010C01CA01A00179 -:1051B0001124FF27591B99F0593F50F4503E68F1D4 -:1051C0001A16F040A22F232F342F4427585FF3CF15 -:1051D000469537952795A795F0405395C9F77EF4E6 -:1051E0001F16BA0B620B730B840BBAF09150A1F02F -:1051F000FF0FBB1F661F771F881FC2F70EC0BA0FB5 -:10520000621F731F841F48F4879577956795B7953C -:10521000F7959E3F08F0B3CF9395880F08F0992734 -:10522000EE0F97958795089527D108F481E00895AA -:105230000CD06BC163D140F05AD130F021F45F3F04 -:1052400019F03EC1511195C14FC170D198F3992306 -:10525000C9F35523B1F3951B550BBB27AA2762173A -:105260007307840738F09F5F5F4F220F331F441F7F -:10527000AA1FA9F333D00E2E3AF0E0E830D09150B7 -:105280005040E695001CCAF729D0FE2F27D0660FA4 -:10529000771F881FBB1F261737074807AB07B0E8E3 -:1052A00009F0BB0B802DBF01FF2793585F4F2AF0F9 -:1052B0009E3F510568F004C15CC15F3FECF3983E2E -:1052C000DCF3869577956795B795F7959F5FC9F756 -:1052D000880F911D9695879597F90895E1E0660FDF -:1052E000771F881FBB1F621773078407BA0720F058 -:1052F000621B730B840BBA0BEE1F88F7E0950895C1 -:1053000004D06894B11135C1089518D188F09F5721 -:1053100090F0B92F9927B751A0F0D1F0660F771F01 -:10532000881F991F1AF0BA95C9F712C0B13081F0E1 -:105330001FD1B1E008951CC1672F782F8827B85F6F -:1053400039F0B93FCCF3869577956795B395D9F742 -:105350003EF490958095709561957F4F8F4F9F4F4C -:105360000895E89409C097FB3EF490958095709558 -:1053700061957F4F8F4F9F4F9923A9F0F92F96E9A1 -:10538000BB279395F695879577956795B795F11116 -:10539000F8CFFAF4BB0F11F460FF1BC06F5F7F4FB3 -:1053A0008F4F9F4F16C0882311F096E911C07723C5 -:1053B00021F09EE8872F762F05C0662371F096E8CE -:1053C000862F70E060E02AF09A95660F771F881F9D -:1053D000DAF7880F9695879597F9089588D018F091 -:1053E00011F08CD038F480C0C4C0E92F9FD0B0F346 -:1053F0005523C9F3E7FB6217730784079507A8F1E4 -:1054000099F3E92FFF2788232AF03197660F771F3A -:10541000881FDAF7952F5527442332F091505040DA -:10542000220F331F441FD2F7BB27E91BF50B621B6A -:10543000730B840BB109C1F222F4620F731F841F36 -:10544000B11D31972AF0660F771F881FBB1FEFCF62 -:10545000915050405AF041F0882332F0660F771F88 -:10546000881F91505040C1F7939530C0869577952D -:1054700067959F5FD9F7F8CF990F0008550FAA0BD2 -:10548000E0E8FEEF16161706E807F907C0F0121657 -:105490001306E407F50798F0621B730B840B950B5A -:1054A00039F40A2661F0232B242B252B21F40895AF -:1054B0000A2609F4A140A6958FEF811D811D08954C -:1054C00097F99F6780E870E060E008959F3F31F0B2 -:1054D000915020F4879577956795B795880F911D22 -:1054E0009695879597F908959FEF80EC089500248D -:1054F0000A941616170618060906089500240A9439 -:1055000012161306140605060895092E0394000CBE -:1055100011F4882352F0BB0F40F4BF2B11F460FF4D -:1055200004C06F5F7F4F8F4F9F4F089557FD905876 -:10553000440F551F59F05F3F71F04795880F97FB57 -:10554000991F61F09F3F79F0879508951216130611 -:105550001406551FF2CF4695F1DF08C01616170640 -:105560001806991FF1CF8695710561050894089575 -:10557000E894BB2766277727CB0197F908957CDF4E -:1055800008F48FEF08950BD0C0CFB1DF28F0B6DF5D -:1055900018F0952309F094CFA7CF1124EACFC6DFE6 -:1055A000A0F3959FD1F3950F50E0551F629FF00136 -:1055B000729FBB27F00DB11D639FAA27F00DB11D8F -:1055C000AA1F649F6627B00DA11D661F829F222718 -:1055D000B00DA11D621F739FB00DA11D621F839F9F -:1055E000A00D611D221F749F3327A00D611D231F75 -:1055F000849F600D211D822F762F6A2F11249F57C3 -:1056000050408AF0E1F088234AF0EE0FFF1FBB1FE5 -:10561000661F771F881F91505040A9F79E3F510584 -:1056200070F04ECFA6CF5F3FECF3983EDCF386954B -:1056300077956795B795F795E7959F5FC1F7FE2B2F -:10564000880F911D9695879597F90895FA01EE0FA9 -:10565000FF1F30962105310599F16115710561F43F -:105660008038BFE39B0749F168949038810561F069 -:105670008038BFEF9B0741F0992342F5FF3FE105DA -:105680003105210511F1E8940894E795D901AA2381 -:1056900029F4AB2FBE2FF85FD0F310C0FF5F70F47A -:1056A000A695E0F7F73950F019F0FF3A38F49F77F4 -:1056B0009F930CD00F9007FC905808953EF014CFA4 -:1056C00060E070E080E89FE308954FE79F775F9385 -:1056D0004F933F932F939ED02F913F914F915F9186 -:1056E00052DF05C019F40EF0EBCE42CFFDCE26DF1F -:1056F000C8F39638C0F707F80F92E8942BE33AEA1C -:1057000048EB5FE74EDF0F920F920F924DB75EB7F7 -:105710000F92C0D0EAE0F1E016D04F915F91EF9187 -:10572000FF91E595EE1FFF1F49F0FE57E068442703 -:10573000EE0F441FFA95E1F74195550B32D00F90CB -:1057400007FE26C00895DF93CF931F930F93FF9218 -:10575000EF92DF927B018C01689405C0DA2EEF0195 -:105760001EDFFE01E894A591259135914591559153 -:10577000AEF3EF0106DDFE019701A801DA9479F797 -:10578000DF90EF90FF900F911F91CF91DF910895DF -:105790009B01AC0160E070E080E89FE349CD90CED2 -:1057A00095CECCDEE8F39923D9F3940F511DBBF3CA -:1057B0009150504094F059F0882332F0660F771FD3 -:1057C000881F91505040C1F79E3F510544F7880F04 -:1057D000911D9695879597F908955F3FACF0983E97 -:1057E0009CF0BB27869577956795B79508F4B160CF -:1057F0009395C1F7BB0F58F711F460FFE8CF6F5FC7 -:105800007F4F8F4F9F4FE3CFB4CE0EF05FCE6CCE65 -:10581000689456CE93DEC8F39923D1F3C6F3DF9391 -:10582000CF931F930F93FF92C92FDD2788232AF070 -:105830002197660F771F881FDAF720E030E040E8F5 -:105840005FEB9FE3883920F0803E30F021968F7720 -:1058500087DCE2E3F1E003C083DCEFE5F1E073DF36 -:105860008B01BE01EC01FB2E6F5771097595771FF7 -:10587000880B990B78DD28E132E741E35FE38FDEA7 -:10588000AF2D9801AE01FF900F911F91CF91DF9145 -:1058900078DC3BCEFA01DC01AA0FBB1F9B01AC01F7 -:1058A000BF5728F422273327442750781FC0B75109 -:1058B00088F4AB2F0024469537952795011CA395B6 -:1058C000D2F3002069F0220F331F441FB395DAF39F -:1058D0000DD045CC61307105A0E88A07B94630F497 -:1058E0009B01AC016627772788279078309621F0B6 -:1058F00020833183428353830895AA1BBB1B51E14C -:1059000007C0AA1FBB1FA617B70710F0A61BB70B2F -:10591000881F991F5A95A9F780959095BC01CD01D4 -:10592000089597FB072E16F4009407D077FD09D051 -:105930000E947D2C07FC05D03EF4909581959F4FE9 -:105940000895709561957F4F0895EE0FFF1F0590A4 -:10595000F491E02D0994F999FECF92BD81BDF89A9A -:10596000992780B50895A8E1B0E042E050E00C949A -:10597000D32C262FF999FECF92BD81BDF89A0197BD -:1059800000B4021639F01FBA20BD0FB6F894FA9A87 -:10599000F99A0FBE08950196272F0E94BA2C0C94F5 -:1059A000B92CDC01CB01FC01F999FECF06C0F2BD98 -:1059B000E1BDF89A319600B40D9241505040B8F7CD -:0659C0000895F894FFCFEA -:1059C600640007000CFF0000003F640E109C107975 -:1059D60010451011100101DF022808140A321E00BA -:1059E60002040507090B0C0E1011131517181A1CC3 -:1059F6001D1F2123242628292B2D2F3032343537FD -:105A0600393B1F0F03764F5F6F7F49694379095909 -:105A160053633149803F5D8B803FF8BF803FCAE1C9 -:105A2600803F73ED803FCAE1803FF8BF803F5D8BCA -:105A3600803F3149803F0000803FF16D7F3F75EA2E -:105A46007E3F4C827E3F833F7E3F84287E3F833F5E -:105A56007E3F4C827E3F75EA7E3FF16D7F3F0000C0 -:105A6600803F3F4D3639E304960460042704BA03A9 -:105A7600D303EC0305040102030405060708090025 -:00000001FF diff --git a/keyboards/planck/keymaps/jacob/compiled.hex b/keyboards/planck/keymaps/jacob/compiled.hex deleted file mode 100644 index b823d6da9..000000000 --- a/keyboards/planck/keymaps/jacob/compiled.hex +++ /dev/null @@ -1,1444 +0,0 @@ -:100000000C9461020C94A5020C94A5020C94A50218 -:100010000C94A5020C94A5020C94A5020C94A502C4 -:100020000C94A5020C94A5020C9452140C94241563 -:100030000C9486220C94A5020C94A5020C94A502A3 -:100040000C94A5020C9407030C94A5020C94A50231 -:100050000C94A5020C94EE220C94A5020C94A5021B -:100060000C94A5020C94A5020C94A5020C94A50274 -:100070000C94A5020C94A5020C94A5020C94A50264 -:100080000C94C70A0C94A5020C94A5020C94A5022A -:100090000C94A5020C94A5020C94A5020C94A50244 -:1000A0000C94A5020C94A5020C94A5029115B3150D -:1000B000A116B315A116F8151B16A11670168316F6 -:1000C0006D196D199C199C19DB19FB19511B511BDA -:1000D000061A511BB61AB61A1D1B261B511B4B1BA9 -:1000E000C31AC31AC31AC31AC31AC31AC31AC31A28 -:1000F000C31AC31AC31AC31AC31AC31AC31AC31A18 -:10010000D31AE11AE81AEF1AF91A07634236B79BB5 -:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 -:100120005763BD6DEDFD753EF6177231BF000000DF -:10013000803F08000000BE922449123EABAAAA2AC2 -:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD -:1001500000000000BF000000803F00000000000819 -:100160004178D3BB4387D1133D190E3CC3BD4282B6 -:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 -:10018000FFBE01C4FF7F3F00000000000000000030 -:1001900000000000000000010204060A0F17202CD6 -:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 -:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF -:1001C0000201000000000000000000002B001400ED -:1001D0001A000800150017001C0018000C0012007F -:1001E00013002A00290004001600070009000A0075 -:1001F0000B000D000E000F0033003400E1001D0065 -:100200001B00060019000500110010003600370021 -:1002100038002872E000E300E200003001522C00B8 -:100220002C0002525000510052004F0035021E02B5 -:100230001F0220022102220223022402250226029A -:1002400027024C0001000100010001000100010033 -:1002500001002D022E022F023002310201000100A6 -:1002600001000100010001000100010001002F0058 -:100270003000010001000100010001000100010047 -:1002800001000100010001000100010035001E0015 -:100290001F0020002100220023002400250026004A -:1002A00027004C0001003A003B003C003D003E00AE -:1002B0003F002D002E002F003000310001004000D3 -:1002C00041004200430044004500010001000100DC -:1002D0000100010001000100010001000100010016 -:1002E0000100010001000100010001002803540089 -:1002F00068006500200050006C0061006E00630023 -:100300006B0020004B006500790062006F00610007 -:100310007200640000002C034F007200740068003B -:100320006F006C0069006E006500610072002000C3 -:100330004B006500790062006F006100720064008C -:10034000730000000403090409026D00040100A009 -:10035000FA09040000010301010009211101000153 -:10036000223F000705810308000A09040100010378 -:10037000010200092111010001224D00070582033D -:1003800008000A090402000103000000092111010C -:1003900000012236000705830308000A0904030050 -:1003A00001030000000921110100012239000705A5 -:1003B00084031000011201100100000008EDFE602E -:1003C0006001000102000105010906A101050719EC -:1003D000E029E71500250195087501810205081936 -:1003E0000129059505750191029501750391010596 -:1003F000071900297715002501957875018102C03C -:1004000005010980A101850216010026B7001A0125 -:10041000002AB700751095018100C0050C0901A1E3 -:10042000018503160100269C021A01002A9C027510 -:100430001095018100C005010902A1010901A10077 -:100440000509190129051500250195057501810288 -:100450009501750381010501093009311581257F59 -:1004600095027508810609381581257F9501750863 -:100470008106050C0A38021581257F9501750881D2 -:1004800006C0C005010906A101050719E029E71505 -:100490000025019508750181029501750881010506 -:1004A00008190129059505750191029501750391BA -:1004B000010507190029FF150025FF95067508811C -:1004C00000C011241FBECFEFDAE0DEBFCDBF04B6FF -:1004D00003FE24C080911E0390911F03A09120036E -:1004E000B09121038730904BA740B04BB9F41092E4 -:1004F0001E0310921F03109220031092210314BEBA -:1005000084B7877F84BF88E10FB6F894809360003A -:10051000109260000FBEE0E0F8E3099511E0A0E062 -:10052000B1E0E6E6F9E502C005900D92A03CB10706 -:10053000D9F713E0A0ECB1E001C01D92AE31B107D4 -:10054000E1F70E9498110C94B12C0C9400000895CE -:10055000089581E0089508950C94A8020C94A902CE -:100560000C94AB020E947B2823E030E0281B310969 -:10057000220F2093C4010895282F2F988091800086 -:10058000211108C0877F8093800010928D00109207 -:100590008C001BC0886080938000233019F48FEF9B -:1005A0009FEF0FC083E090E0821B9109880F991F95 -:1005B0002FEF3FEFA90102C0569547958A95E2F7C4 -:1005C000CA0190938D0080938C000C94B2020E941B -:1005D000B20284E08093C3011092C0010895279A6B -:1005E0002F988FEF9FEF90938700809386008AE08B -:1005F0008093800089E1809381000E94E4270C941D -:10060000E7020E94EF026E9A769A0C94A7021F925C -:100610000F920FB60F9211242F933F938F939F93B6 -:10062000EF93FF93E091C101F091C201CF010196D8 -:100630009093C2018093C1010090C30102C0F6955E -:10064000E7950A94E2F7EF738091C001823019F4C4 -:10065000E03251F404C0813039F4EF3329F4809151 -:100660006F008D7F80936F00F0E0E457FE4FE491C0 -:1006700021E031E0E29FC001E39F900D1124009042 -:10068000C40102C0969587950A94E2F790938D0075 -:1006900080938C00FF91EF919F918F913F912F91CB -:1006A0000F900FBE0F901F90189561110DC0FC01A7 -:1006B0008281882331F085EE0E9411180E943B2828 -:1006C00003C085EE0E94D91880E090E0089581E093 -:1006D00008950C94670308950C940103809115020A -:1006E000882309F448C08091D1019091D2010097EC -:1006F00079F40E94B8229093D2018093D101809125 -:10070000D30190E0009771F48091D40190E00AC089 -:100710000E94C4222091000130910101281739075D -:1007200040F329C00197880F991F880F991FFC017A -:10073000EB52FE4F60817181828193810E942D0A6C -:10074000E091D30184E0E89FF0011124EB52FE4FC9 -:1007500060817181828193814FE050E00E94E50DBC -:100760008091D30190E001966091D40170E00E94E5 -:10077000612C8093D3010C94AC02109217020C945C -:10078000FA090895089581E0809317020C94C2033A -:10079000089508958F929F92AF92BF92EF92FF9229 -:1007A0000F931F93CF93DF93CDB7DEB7A3970FB609 -:1007B000F894DEBF0FBECDBF7C01FC01008111812A -:1007C000C8010E94B520B8010E94CC058C01B70178 -:1007D0000E946903882309F4CCC10032F0E51F07A9 -:1007E00041F4F7018281882309F458C00E94490E20 -:1007F000C0C10132F0E51F0741F4F701828188236F -:1008000009F44CC00E94520EB4C10232F0E51F0739 -:1008100051F4F7018281882309F440C00E94450EFB -:100820008111F0CFE3CF0332F0E51F0739F4F70170 -:100830008281882399F10E94C3039BC10432F0E5B1 -:100840001F0739F4F7018281882341F10E94BD031B -:1008500090C10532F0E51F0749F4F7018281882332 -:10086000E9F0809117028111F1CFE5CF0632F0E572 -:100870001F0739F4F7018281882381F00E94590E05 -:100880000AC00732F0E51F0749F4F7018281882387 -:1008900029F00E94640E0E94C9036BC18091170267 -:1008A000811105C0F70182818111CFC018C1003EBE -:1008B000110579F4F7018281882309F44DC00E9463 -:1008C000FA0981E080931602109215021092D40169 -:1008D00050C1023E110559F4F70182818823E1F1EC -:1008E0000E94FA09109216021092150242C1033EAC -:1008F000110591F4F7018281882371F10E94FA09B0 -:100900001092160281E0809315021092D30110928A -:10091000D2011092D1012DC10235110559F4F70110 -:100920008281882309F425C1809100019091010101 -:100930000A970DC00135110579F4F70182818823EA -:1009400009F417C180910001909101010A969093DA -:100950000101809300010DC14091040183E2EFE1A8 -:10096000F1E0DE01119601900D928A95E1F7F70111 -:10097000808121E030E02C0F3D1F280F311DC9017F -:100980002091020130910301FC01E20FF31F60810D -:10099000772767FD7095640F711D882777FD809517 -:1009A000982F0E94832920E030E040E451E40E9427 -:1009B000E8284B015C01F701218184E090E0821B73 -:1009C0009109BC01882777FD8095982F0E94832983 -:1009D0009B01AC01C501B4010E9480289B01AC01C0 -:1009E00060E070E080E090E40E94F62A20E030E0D1 -:1009F0004CED50E40E94932A4B015C01F701828187 -:100A00008823D1F04FE050E0C501B4010E94E50D0C -:100A1000809116028823A1F08091D40124E0829F66 -:100A2000F0011124EB52FE4F80829182A282B382A8 -:100A30008F5F8093D40104C0C501B4010E942D0AC8 -:100A40000F3F110508F02ECF94C08091D001811185 -:100A50001FC0043130E5130709F051C00E946B0339 -:100A600081E08093D0010E94B8229093CF018093BF -:100A7000CE011092C7011092C9011092C8011092C4 -:100A8000CB011092CA011092CD011092CC0171C01D -:100A90008091CE019091CF010E94C422883C9105A3 -:100AA00070F48091C701E82FF0E0EE0FFF1FE853CC -:100AB000FE4F118300838F5F8093C7015AC00438B3 -:100AC00080E5180721F00538104501F13AC0F7011B -:100AD0008281882341F01092C50182E01EC0043853 -:100AE00030E5130759F58091C501811106C086E2F2 -:100AF0000E94111886E20E94D91882E01CC00438B6 -:100B0000F0E51F0741F305381045D9F4F70182815C -:100B1000882331F01092C60180E20E94281929C072 -:100B20008091C601811106C087E20E94111887E2F8 -:100B30000E94D91880E20E942F191BC00538104569 -:100B400029F381E08093C5018093C601C701A39674 -:100B50000FB6F894DEBF0FBECDBFDF91CF911F91CE -:100B60000F91FF90EF90BF90AF909F908F900C945B -:100B7000AE0280E0A3960FB6F894DEBF0FBECDBFE5 -:100B8000DF91CF911F910F91FF90EF90BF90AF90A9 -:100B90009F908F90089508959CE0799FF001112413 -:100BA00090E3899FE00DF11D1124E60FF11DEE0F7A -:100BB000FF1FE453FE4F859194910895880F991F6C -:100BC000FC01E45BFF4F859194910895880F991F74 -:100BD000FC01E453FE4F8591949108950F931F9368 -:100BE000CF93DF93EC01811521E39207A0F5C115A6 -:100BF00080E3D80708F0D7C0C83ED105D8F4C03E7E -:100C0000D10508F007C2C83AD10578F4C53AD10534 -:100C100008F06AC0C130D10509F463C008F4F7C117 -:100C2000C430D10508F0F6C1F2C1CB3BD10508F4C0 -:100C300066C0EDC1C11590E2D90708F0AFC0C1157B -:100C400021E0D20708F0E6C1C03FD10508F4DFC1BA -:100C50008E0110651FC2C03880E5D80700F5C03787 -:100C600090E5D90708F0A3C0C11520E5D20709F423 -:100C7000ACC050F4CE01905480319F4008F0C7C101 -:100C8000DF708E01106A06C2C13080E5D80709F412 -:100C9000AEC0C43190E5D90708F4AFC0B8C1C338BD -:100CA00020E5D20709F48EC050F4C13890E5D90789 -:100CB00009F482C008F083C000E011EDEBC1C0313F -:100CC00081E5D80708F4A3C1C11597E5D90708F451 -:100CD00036C1CE0190578115904108F098C1DF7060 -:100CE00093C101E010E0D6C1C53AD10509F494C121 -:100CF000C63AD10509F093C102E810E4CBC1C83A65 -:100D0000D10509F48FC1C93AD10509F48EC1CA3A97 -:100D1000D10509F48DC1CB3AD10509F48CC1CC3A87 -:100D2000D10509F48BC1CD3AD10509F48AC1C03B84 -:100D3000D10509F489C1CE3AD10509F488C1CF3A69 -:100D4000D10509F487C1C13BD10509F486C1C23B75 -:100D5000D10509F485C1C33BD10509F484C1C43B65 -:100D6000D10509F483C1C53BD10509F482C1C63B55 -:100D7000D10509F481C1C73BD10509F480C1C83B45 -:100D8000D10509F47FC1C93BD10509F47EC1CA3B35 -:100D9000D10509F47DC100E014E47CC1CE019F704F -:100DA0000E94E60578C1DD278E01106C73C1CF70FB -:100DB000DD278E01146D6EC100E010ED6BC100E007 -:100DC00012ED68C100E013ED65C10E94BC1B0E94DA -:100DD000FA090E94C1038FEF94E32CE08150904008 -:100DE0002040E1F700C000000E94132353C180910E -:100DF000F20281608093F2024DC10E94742381113E -:100E000002C00E9450230E94872390E090931D030C -:100E100080931C03C23080E5D80721F480911C0325 -:100E2000816086C0C43090E5D90721F480911C030D -:100E300082607EC0C63020E5D20721F480911C0379 -:100E4000846076C0C83080E5D80719F480911C030F -:100E500027C0CA3090E5D90721F480911C03806136 -:100E600067C0CC3020E5D20721F480911C0380625A -:100E70005FC0CE3080E5D80721F480911C038064E8 -:100E800057C0C03190E5D90721F480911C038068D8 -:100E90004FC0C23120E5D20729F480911C03846041 -:100EA000886046C0C33080E5D80721F480911C03D8 -:100EB0008E7F3EC0C53090E5D90721F480911C0398 -:100EC0008D7F36C0C73020E5D20721F480911C0306 -:100ED0008B7F2EC0C93080E5D80719F480911C03A0 -:100EE00026C0CB3090E5D90721F480911C038F7E7A -:100EF0001FC0CD3020E5D20721F480911C038F7DE7 -:100F000017C0CF3080E5D80721F480911C038F7B78 -:100F10000FC0C13190E5D90721F480911C038F7770 -:100F200007C0C331D04531F480911C038B7F877F8C -:100F300080931C0380911C030E948B23ABC08D2FD8 -:100F400099278F70992781309105D9F49E012370DC -:100F5000332702C0880F991F2A95E2F79C688E01FB -:100F600044E0000F111F4A95E1F700271370802B12 -:100F7000912B53E0CC0FDD1F5A95E1F7C076DD27AA -:100F80002FC08230910531F4DC2FCC278E01016F08 -:100F9000106A80C08330910569F4CE01837099276F -:100FA00001E010E002C0000F111F8A95E2F7C801AE -:100FB0009C680FC084309105B9F4CE0183709927E5 -:100FC00001E010E002C0000F111F8A95E2F7C8018E -:100FD0009A6823E0CC0FDD1F2A95E1F7C07ED77019 -:100FE0008C010C2B1D2B56C08530910531F4DC2F64 -:100FF000CC278E01046F106A4DC0069709F04AC0D5 -:10100000CF71DD27DC2FCC278E01106243C000E0BA -:1010100010E040C08E013EC001E810E43BC003E890 -:1010200010E438C002EE14E435C009EE14E432C016 -:101030000AEE14E42FC005EB14E42CC006EB14E414 -:1010400029C007EB14E426C00CEC14E423C00DEC1B -:1010500014E420C003E815E41DC00AE815E41AC032 -:1010600002E915E417C004E915E414C001E216E42E -:1010700011C003E216E40EC004E216E40BC005E260 -:1010800016E408C006E216E405C007E216E402C052 -:101090000AE216E4C801DF91CF911F910F910895E4 -:1010A0009CE0799FF001112490E3899FE00DF11DF0 -:1010B0001124E60FF11DEE0FFF1FE453FE4F859143 -:1010C0009491803E9105E0F4803C910558F5813380 -:1010D000910509F46FC048F48932910509F463C0A1 -:1010E0008A32910509F46DC072C089339105E9F027 -:1010F00082389105D1F08533910509F44DC067C060 -:10110000833E910581F138F4803E9105B9F0823E2D -:101110009105D9F05CC0863E910561F1873E91054D -:10112000A1F155C00E94DE05089520911C0320FD09 -:1011300002C021FF4CC080EE90E049C080911C03AA -:1011400080FFF9CF89E390E042C080911C0382FFC9 -:101150000EC080911C0384FF03C080E090E037C084 -:1011600083EE90E034C080911C0382FFF2CF82EEC8 -:1011700090E02DC080911C0383FF0BC080911C0365 -:1011800084FDEBCF87EE90E022C080911C0383FFAB -:10119000F5CF86EE90E01BC080911C0385FF07C051 -:1011A00089E290E014C080911C0385FFF9CF85E3AC -:1011B00090E00DC080911C0386FF07C08AE290E09A -:1011C00006C080911C0386FFF9CF81E390E00E9466 -:1011D000EE0508950C94B002E82FF0E0E25BFE4FBC -:1011E0008081E82FEF70F0E082958F7021E030E091 -:1011F000A90102C0440F551F8A95E2F740A3089544 -:101200000F931F93CF93DF9385B7806885BF85B712 -:10121000806885BFC3E0D0E001E010E0FE01E25B42 -:10122000FE4F8081E82FEF70F0E021A182958F7052 -:10123000A80102C0440F551F8A95E2F7CA01822B0C -:1012400081A38C2F0E94EC08219740F78BE090E05F -:1012500061E070E0FC01EE5BFE4F2081E22FEF7059 -:10126000F0E042A122952F70DB0102C0AA0FBB1F44 -:101270002A95E2F79D01242B22A3019758F7DF91CD -:10128000CF911F910F910C946C03EF92FF920F93EB -:101290001F93CF93DF9300E212E0C3E0EE24E394C8 -:1012A000F12CD5E08C2F0E94EC088BE090E040E020 -:1012B00050E0FC01EE5BFE4F6081E62FEF70F0E046 -:1012C00020A130E062956F7002C0359527956A9530 -:1012D000E2F720FD09C09701082E02C0220F331F3C -:1012E0000A94E2F7422B532B019718F7F8019291D9 -:1012F00082918F018417950721F051834083D09309 -:1013000005018C2F0E94EC08C15060F68091050108 -:1013100087FD2CC08150809305018F3F39F08FE904 -:101320009FE00197F1F700C0000020C080911E02ED -:1013300090911F02909327028093260280911C02B5 -:1013400090911D02909325028093240280911A02AD -:1013500090911B02909323028093220280911802A5 -:101360009091190290932102809320020E946E03B3 -:1013700081E0DF91CF911F910F91FF90EF90089541 -:10138000E82FF0E0EE0FFF1FE05EFD4F80819181BE -:10139000089508950F931F93CF9308E212E0C0E0E1 -:1013A000F801929182918F010E943022C80FF2E0E1 -:1013B00000321F07A9F78C2FCF911F910F9108952D -:1013C0000E947423811102C00E9450230E9499231D -:1013D000809307033E9A809171008D7F8093710006 -:1013E00082E0809390008AE18093910081E0809375 -:1013F0002A02089580912A02811102C00E94E00908 -:1014000010927A0210927902809171008D7F809300 -:101410007100809190008F738093900010923C0235 -:1014200010923B0210927302109274021092750295 -:10143000109276021092720210927102E1E5F2E0CF -:10144000A1E4B2E011921192119211921D921D929B -:1014500082E0E137F807B1F70895CF92DF92EF927B -:10146000FF920F931F93CF93DF9320913B02222390 -:1014700009F484C06B017C0180912A02811102C0B1 -:101480000E94E00901E712E0C7E0D0E0A701960161 -:10149000F80192918291729162918F010E94E428E9 -:1014A000811131C0FE01EE0FFF1FEE0FFF1FEF5A3B -:1014B000FD4F1082118212821382DE01AA0FBB1F20 -:1014C000AF5BBD4F11961C921E92C730D105E9F05B -:1014D000219644815581668177814083518362835F -:1014E0007383148215821682178212968D919C91B5 -:1014F000139711969C938E9313961C921E9212979B -:1015000034961296E2CF219708F680917902909155 -:101510007A02019797FD05C090937A028093790231 -:1015200004C010927A02109279028091790290910F -:101530007A0220917702309178022817390724F037 -:101540001092780210927702892BC1F48091710079 -:101550008D7F80937100809190008F7380939000B5 -:101560001092730210927402109275021092760219 -:10157000109272021092710210923B02DF91CF9191 -:101580001F910F91FF90EF90DF90CF9008951F92E1 -:101590000F920FB60F9211244F925F926F927F922B -:1015A0008F929F92AF92BF92CF92DF92EF92FF9273 -:1015B0002F933F934F935F936F937F938F939F935B -:1015C000AF93BF93CF93DF93EF93FF9380913B0251 -:1015D000882309F49BC1C0917902D0917A021C162C -:1015E0001D060CF093C140902B0250902C0260908D -:1015F0002D0270902E0220E030E0A901C301B2015B -:101600000E948F2A18160CF065C0C130D10509F46C -:1016100052C08091770290917802BE010E94612CA5 -:101620007C01909378028093770280903D029090A5 -:101630003E02A0903F02B090400220E030E040E83F -:101640005FE3C501B4010E94802860933D0270935E -:101650003E0280933F0290934002F701EE0FFF1F7E -:10166000EE0FFF1FEF5AFD4FA301920160817181C0 -:10167000828193810E94E82820E030E040E05EE330 -:101680000E94932A9B01AC01C501B4010E948F2ADC -:1016900018168CF4C7010196BE010E94612C90932C -:1016A00078028093770210923D0210923E021092CF -:1016B0003F0210924002E0917702F0917802EE0F23 -:1016C000FF1FEE0FFF1FEF5AFD4F60817181828176 -:1016D0009381D0C0C0907302D0907402E0907502E4 -:1016E000F090760220E030E0A901C701B6010E9427 -:1016F000E4282197882309F4A2C0FE01EE0FFF1F02 -:10170000EE0FFF1FEF5AFD4F80809180A280B380C3 -:10171000A5019401C701B6010E94E42887FF31C0EA -:10172000A501940160E070E08CED93EC0E94E82844 -:1017300020E030E040E451E40E94E82820E030E07E -:1017400040E05FE30E94932A9B01AC0160E070E0FF -:1017500080E090E40E94F62A9B01AC01C501B4012F -:101760000E94932A9B01AC01C701B6010E94E428A4 -:1017700087FF07C0A701960160E070E08CED93E45D -:1017800039C0A5019401C701B6010E948F2A18161D -:101790000CF055C0A501940160E070E08CED93E47D -:1017A0000E94E82820E030E040E451E40E94E8286C -:1017B00020E030E040E05FE30E94932A9B01AC010F -:1017C00060E070E080E090E40E94F62A9B01AC01AA -:1017D000C501B4010E94932A9B01AC01C701B60167 -:1017E0000E948F2A18165CF5A701960160E070E050 -:1017F0008CED93EC0E94E82820E030E040E451E4D6 -:101800000E94E82820E030E040E05FE30E94932A55 -:101810009B01AC0160E070E080E090E40E94F62A59 -:101820009B01AC01C701B6010E94932A6093730229 -:1018300070937402809375029093760213C0FE0138 -:10184000EE0FFF1FEE0FFF1FEF5AFD4F80819181BA -:10185000A281B3818093730290937402A093750266 -:10186000B093760260917302709174028091750258 -:101870009091760220912802309129022F3F4FEF5C -:10188000340731F02F5F3F4F309329022093280215 -:101890000E946F0E6B017C0120E034E244EF51E4C2 -:1018A0000E94E42887FF08C086EFC82E88E2D82E61 -:1018B00084EFE82E81E4F82E20E030E040E051E4AF -:1018C000C701B6010E94932A9B01AC0160E074E25B -:1018D00084E79BE40E94E8286B017C010E94552963 -:1018E0007093970060939600209106013091070154 -:1018F0004091080150910901C701B6010E94932A45 -:101900000E945529709399006093980080913C0241 -:10191000882309F433C1C0903702D0903802E09098 -:101920003902F0903A0220E030E0A901C701B60187 -:101930000E948F2A1816D4F58091280290912902CE -:101940008F3F2FEF920729F0019690932902809301 -:101950002802C701B6010E946F0E20E030E040E08F -:1019600051E40E94932A9B01AC0160E074E284E799 -:101970009BE40E94E8286B017C010E94552970932A -:1019800097006093960020910601309107014091E5 -:10199000080150910901C701B6010E94932A0E94D3 -:1019A0005529709399006093980008C01092970091 -:1019B0001092960010929900109298006091310256 -:1019C000709132026F5F7F4F7093320260933102E9 -:1019D000209196003091970080E090E0232BF1F069 -:1019E000C0919600D09197000E9481296B017C01E3 -:1019F000BE0180E090E00E9481299B01AC016091D2 -:101A000033027091340280913502909136020E9427 -:101A1000E82820E03FEF4FE757E410C00E948129FB -:101A20006B017C0120E030EE4FEF54E46091330213 -:101A30007091340280913502909136020E94932A6F -:101A40009B01AC01C701B6010E948F2A87FD96C099 -:101A500080912F028F5F80932F0290E020910303EB -:101A60003091040382179307A0F080910E0388231E -:101A700019F010922F020DC0809171008D7F80931C -:101A80007100809190008F738093900010923C02BF -:101A90007DC080913002C0912F02811128C0C0907A -:101AA0000803D0900903E0900A03F0900B0320E0B4 -:101AB00030E0A901C701B6010E948F2A1816BCF4B4 -:101AC00081E0809330021092370210923802109217 -:101AD000390210923A02C0923302D0923402E0925C -:101AE0003502F0923602C150C0932F0243C01092CB -:101AF00030021092290210922802E0910503F09121 -:101B0000060348E0C49FE00DF11D112480819181FE -:101B1000A281B3818093370290933802A093390257 -:101B2000B0933A0220E030E040E85EE364817581E2 -:101B3000868197810E94932A6B017C0180910A0122 -:101B4000682F70E080E090E00E94812920E030E082 -:101B500048EC52E40E94E8289B01AC01C701B601A1 -:101B60000E94932A6093330270933402809335026B -:101B70009093360210923202109231028091070344 -:101B800080FD04C010923C0210923B02FF91EF9145 -:101B9000DF91CF91BF91AF919F918F917F916F9185 -:101BA0005F914F913F912F91FF90EF90DF90CF90F9 -:101BB000BF90AF909F908F907F906F905F904F906D -:101BC0000F900FBE0F901F901895CF92DF92EF925B -:101BD000FF92CF93DF936B017C01EA0180912A028F -:101BE000811102C00E94E0098091070380FF46C076 -:101BF0008091790290917A0208970CF03FC0809111 -:101C000071008D7F8093710080913C0281110E9450 -:101C1000FA0981E080933B02109229021092280277 -:101C200020E030E0A901C701B6010E948F2A1816F2 -:101C3000DCF48091790290917A02FC01EE0FFF1F93 -:101C4000EE0FFF1FEF5AFD4FC082D182E282F38276 -:101C5000FC01EE0FFF1FEF5BFD4FD183C0830196A8 -:101C600090937A02809379028091710082608093D0 -:101C7000710080919000806880939000DF91CF91F7 -:101C8000FF90EF90DF90CF900895809107038170CF -:101C90000895809107038160809307030E949D232C -:101CA0000C94C803809107038E7F809307030C94E4 -:101CB0009D2380917B0290E0019666E070E00E9497 -:101CC000612C80937B02089580917B0290E00197C4 -:101CD00066E070E00E94612C80937B0208958F92F1 -:101CE0009F92AF92BF92CF92DF92EF92FF920F93AB -:101CF0001F93CF93DF936B017C01C0912802D09199 -:101D00002902BE0180E090E00E9481294B015C0124 -:101D1000A701960160E070E08CE594E40E94E82859 -:101D20009B01AC01C501B4010E94932A0E94552970 -:101D300020917B02233009F473C028F4222351F050 -:101D40002130E9F02CC1243009F4A0C0253009F479 -:101D5000E0C025C180E090E0A0E0BFE380930601F1 -:101D600090930701A0930801B093090110922B02F0 -:101D700010922C0210922D0210922E0210C110927D -:101D80002B0210922C0210922D0210922E0264311E -:101D9000710540F46A30710560F520E030E040E8FC -:101DA0005EE32BC0693C710508F0AAC080E090E0BA -:101DB0000E94812920E030E040EA51E40E947F281F -:101DC00020E030E044E353E40E94E8289B01AC01AA -:101DD0000E94932A20E030E040E05EE30E94932AD4 -:101DE0009B01AC0160E070E080E09EE30E947F28F0 -:101DF00044C020E030E040E05FE3C701B6010E944C -:101E0000932A6B017C0180E090E0A0E0BEE3809328 -:101E1000060190930701A0930801B0930901BFC088 -:101E200010922B0210922C0210922D0210922E0270 -:101E30004AE0469F9001479F300D1124C90168EB8D -:101E40007BE00E944D2CBC016C5D754077FF03C0A8 -:101E5000719561957109882777FD8095982F0E946B -:101E600083292EE333EC4EE259E30E94932A20E0CB -:101E700030E040EC5EE30E9480286093060170939E -:101E80000701809308019093090189C010922B02E9 -:101E900010922C0210922D0210922E02CE0183700D -:101EA0009927892BE1F0BE016170772780E090E0EF -:101EB0000E94812920E030E040E05EE30E94932A06 -:101EC00020E030E040E45FE30E9480286093060158 -:101ED0007093070180930801909309010CC080E082 -:101EE00090E0A0E0BFE38093060190930701A093E8 -:101EF0000801B0930901C770DD27CD2B09F04FC051 -:101F00001092060110920701109208011092090127 -:101F100046C010922B0210922C0210922D021092A9 -:101F20002E0200E010E020E03FE300930601109352 -:101F3000070120930801309309016739710578F191 -:101F400080E090E00E94812920E030E047E153E406 -:101F50000E947F2820E030E04AE754E40E94E8280D -:101F600020E030E048E452E40E94932A20E030E090 -:101F700040EA51E40E94C5290E945029660F771F4C -:101F8000660F771FFB01EE5AFE4F2081318142819F -:101F90005381C701B6010E94932A6B017C01C701DE -:101FA000B601DF91CF911F910F91FF90EF90DF90DD -:101FB000CF90BF90AF909F908F90089580918C02AA -:101FC0000895CF93DF9300D01F92CDB7DEB79C0169 -:101FD00080911303843019F593E099833B832A831E -:101FE0009093E9008FEF9091E800815095FD06C035 -:101FF00095ED9A95F1F700008111F5CF8091E800F9 -:1020000085FF0DC040E050E063E070E0CE01019636 -:102010000E9442128091E8008E778093E8000F9032 -:102020000F900F90DF91CF910895CF93DF9300D061 -:102030001F92CDB7DEB720911303243021F522E0A3 -:1020400029839B838A8383E08093E9008FEF9091BB -:10205000E800815095FD06C095ED9A95F1F70000D6 -:102060008111F5CF8091E80085FF0DC040E050E080 -:1020700063E070E0CE0101960E9442128091E80078 -:102080008E778093E8000F900F900F90DF91CF91A3 -:102090000895209113032430F1F422E02093E90005 -:1020A0002FEF3091E800215035FD06C035ED3A950F -:1020B000F1F700002111F5CF2091E80025FF0BC0BA -:1020C00040E050E065E070E00E9442128091E8003C -:1020D0008E778093E8000895CF93DF93EC01909181 -:1020E0001303943009F046C0809115018823D9F07C -:1020F000809116018823B9F09093E9008FEF9091B9 -:10210000E800815095FD06C095E19A95F1F7000031 -:102110008111F5CF8091E80085FF2CC040E050E0B0 -:1021200060E170E017C081E08093E9008FEF90914B -:10213000E800815095FD06C095ED9A95F1F70000F5 -:102140008111F5CF8091E80085FF14C040E050E098 -:1021500068E070E0CE010E9442128091E8008E7724 -:102160008093E80080E1FE01ACE7B2E001900D92BF -:102170008A95E1F7DF91CF91089580911203811143 -:1021800009C00E94D7130E9434148091E200846039 -:102190008093E2000895109212030895089508951F -:1021A0000C947B2242E061EC81E00E94511342E0FA -:1021B00061EC82E00E94511342E061EC83E00E94F6 -:1021C000511342E161EC84E00C94511380911503AA -:1021D000833009F455C030F4813071F0823009F455 -:1021E0008EC008958A3009F47AC08B3009F460C03B -:1021F000893009F09CC020C080911403813A09F015 -:1022000096C08091E800877F8093E8008091180352 -:1022100090911903892B21F460E18CE792E003C0CF -:1022200060E080E090E070E00E948D128091E80014 -:102230008B778093E800089580911403813209F030 -:1022400076C08091180390911903009719F00397B5 -:1022500009F06DC08091E800877F8093E80080914D -:10226000E80082FD05C0809113038111F8CF5FC0A3 -:102270008091F10080938C028091E8008B7753C0AD -:1022800080911403813A09F052C080911803909113 -:102290001903892B09F04BC08091E800877F809358 -:1022A000E8008091E80080FFFCCF8091150136C0E6 -:1022B000809114038132D9F580911803909119030C -:1022C000892BA9F58091E800877F8093E8000E9420 -:1022D000861380911603809315010C94BC1B80918A -:1022E0001403813221F58091E800877F8093E80014 -:1022F0000E9486138091170380938D020895809128 -:102300001403813AA1F48091E800877F8093E8006C -:102310008091E80080FFFCCF80918D028093F100D6 -:102320008091E8008E778093E8000C9486130895DE -:1023300084B7877F84BF88E10FB6F89480936000EC -:10234000109260000FBE90E080E80FB6F894809382 -:102350006100909361000FBE0E9429170E94D7135D -:102360000E9434148091E20084608093E2007894AB -:102370000E94BA160E942B178BE091E00E94D5169E -:1023800080911303853069F40E943C2280911103EF -:102390008823B1F30E946A22882391F30E942C12B1 -:1023A000EFCF0E943317ECCF292F3327233031058D -:1023B000C9F064F42130310581F02230310509F093 -:1023C00043C08DE690E028E433E042C0213231057D -:1023D000F1F02232310541F137C082E190E025EB86 -:1023E00033E036C099278130910541F08230910564 -:1023F00041F0892B49F5E4E4F3E005C0E6E1F3E0C0 -:1024000002C0ECEEF2E0849190E09F0121C06430C4 -:10241000D8F4E62FF0E0EE0FFF1FE255FE4F2081CB -:10242000318189E090E014C0643070F470E0FB0109 -:10243000EE0FFF1FEA55FE4F20813181FB01EE5563 -:10244000FE4F808190E004C080E090E020E030E02A -:10245000FA0131832083089580E189BD82E189BD3D -:1024600009B400FEFDCF8091D8008F7D8093D80005 -:102470008091E00082608093E0008091E00081FD27 -:10248000FCCF0895CF92DF92EF92FF920F931F93AC -:10249000CF93DF93EC018B016A010E94A513811198 -:1024A00033C0C114D10439F0F60180819181081B39 -:1024B000190BC80FD91FE12CF12C0115110519F1C9 -:1024C0008091E80085FD16C08091E8008E778093AA -:1024D000E800C114D10449F0F60180819181E80E31 -:1024E000F91EF182E08285E00FC00E94A5138823C7 -:1024F00021F30AC089918093F10001501109FFEF87 -:10250000EF1AFF0ADACF80E0DF91CF911F910F9190 -:10251000FF90EF90DF90CF90089520911A033091B3 -:102520001B032617370748F06115710539F4209110 -:10253000E8002E772093E80001C0B90140E0611562 -:102540007105A9F120911303222309F443C025301A -:1025500009F442C02091E80023FD40C02091E8002A -:1025600022FD32C02091E80020FFE9CF4091F30026 -:102570002091F20030E0342BFC01CF016115710590 -:1025800059F02830310540F481918093F100615079 -:1025900071092F5F3F4FF1CF41E02830310509F03D -:1025A00040E02091E8002E772093E800C8CF411149 -:1025B000C9CF0AC080911303882361F0853061F090 -:1025C0008091E80083FD0AC08091E80082FFF2CF8D -:1025D00080E0089582E0089583E0089581E0089501 -:1025E00020911A0330911B032617370748F0611515 -:1025F000710539F42091E8002E772093E80001C09E -:10260000B901FC0120E06115710591F1809113037E -:10261000882309F440C0853009F43FC08091E80068 -:1026200083FD3DC08091E80082FD2FC08091E800CD -:1026300080FFE9CF2091F3008091F20090E0922B8F -:102640006115710559F08830910540F4249120936B -:10265000F1003196615071090196F2CF21E008979F -:1026600009F020E08091E8008E778093E800CBCFDE -:102670002111CCCF0AC080911303882361F08530EB -:1026800061F08091E80083FD0AC08091E80082FF3C -:10269000F2CF80E0089582E0089583E0089581E01C -:1026A0000895982F973058F59093E900981739F0CE -:1026B0007091EC002091ED005091F00003C0242FA8 -:1026C000762F50E021FF19C03091EB003E7F309310 -:1026D000EB003091ED003D7F3093ED003091EB0049 -:1026E00031603093EB007093EC002093ED00509339 -:1026F000F0002091EE0027FF07C09F5FD3CF8F70BF -:102700008093E90081E0089580E0089580911403AA -:1027100087FF11C08091E80082FD05C080911303FE -:102720008111F8CF11C08091E8008B770BC08091A8 -:102730001303882349F08091E80080FFF8CF80914F -:10274000E8008E778093E80008952091E4003091AE -:10275000E50095E64091EC00842F817040FF22C097 -:102760008091E80080FD1CC080911303882391F0C4 -:10277000853091F08091EB0085FD10C04091E40020 -:102780005091E5004217530729F39A01915011F730 -:1027900084E0089582E0089583E0089581E008953B -:1027A00080E008954091E80042FFDECF08950E9446 -:1027B00045140E944D14E0EEF0E08081816080833A -:1027C000E8EDF0E080818F77808319BCA7EDB0E061 -:1027D0008C918E7F8C9380818F7E808310921203E8 -:1027E00008950F931F93CF93DF930E9445140E9487 -:1027F0004D14C8EDD0E088818F7788838881806808 -:10280000888388818F7D888319BC1092130310926E -:102810000F03109211031092100300EE10E0F80164 -:1028200080818B7F808388818160888342E060E043 -:1028300080E00E945113E1EEF0E080818E7F808382 -:10284000E2EEF0E080818160808380818860808317 -:10285000F80180818E7F8083888180618883DF9109 -:10286000CF911F910F910895E8EDF0E080818F7E68 -:102870008083E7EDF0E080818160808384E082BF27 -:1028800081E0809312030C94F113E8EDF0E0808175 -:102890008E7F80831092E20008951092DA001092E9 -:1028A000E10008951F920F920FB60F9211242F93FB -:1028B0003F934F935F936F937F938F939F93AF93C8 -:1028C000BF93EF93FF938091E10082FF0BC0809153 -:1028D000E20082FF07C08091E1008B7F8093E100DE -:1028E0000E94B9168091DA0080FF1FC08091D80045 -:1028F00080FF1BC08091DA008E7F8093DA00809188 -:10290000D90080FF0DC080E189BD82E189BD09B495 -:1029100000FEFDCF81E0809313030E94BD1005C02F -:1029200019BC109213030E94CB108091E10080FF2C -:1029300019C08091E20080FF15C08091E2008E7F77 -:102940008093E2008091E20080618093E2008091B8 -:10295000D80080628093D80019BC85E0809313036F -:102960000E94CF108091E10084FF30C08091E2008E -:1029700084FF2CC080E189BD82E189BD09B400FEDD -:10298000FDCF8091D8008F7D8093D8008091E100A9 -:102990008F7E8093E1008091E2008F7E8093E20041 -:1029A0008091E20081608093E20080910F03882390 -:1029B00011F084E007C08091E30087FD02C081E050 -:1029C00001C083E0809313030E94D0108091E10046 -:1029D00083FF29C08091E20083FF25C08091E10040 -:1029E000877F8093E10082E08093130310920F03AE -:1029F0008091E1008E7F8093E1008091E2008E7FE4 -:102A00008093E2008091E20080618093E20042E0E6 -:102A100060E080E00E9451138091F0008860809314 -:102A2000F0000E94CE10FF91EF91BF91AF919F9166 -:102A30008F917F916F915F914F913F912F910F9067 -:102A40000FBE0F901F9018951F920F920FB60F9206 -:102A500011242F933F934F935F936F937F938F93A3 -:102A60009F93AF93BF93CF93DF93EF93FF93C09167 -:102A7000E900CF708091EC00D82FD17080FDD0E8B4 -:102A80001092E9008091F000877F8093F0007894A5 -:102A90000E9468151092E9008091F0008860809390 -:102AA000F000CD2BCF70C093E900FF91EF91DF9143 -:102AB000CF91BF91AF919F918F917F916F915F91D6 -:102AC0004F913F912F910F900FBE0F901F9018952F -:102AD0001F93CF93DF93CDB7DEB7AA970FB6F894C5 -:102AE000DEBF0FBECDBFE4E1F3E088E08E0F909132 -:102AF000F10091938E13FBCF0E94E6108091E800C5 -:102B000083FF1FC18091140390911503492F50E05A -:102B10004A30510508F015C1FA01EA5AFF4F0C94EA -:102B2000752C803881F0823809F00BC18091180330 -:102B30008F708093E9008091EB0085FB882780F9F6 -:102B40001092E90006C08091100390911103911139 -:102B500082609091E800977F9093E8008093F10065 -:102B60001092F100C8C0282F2D7F09F0EAC08823F9 -:102B700019F0823061F0E5C080911603813009F0D0 -:102B8000E0C0933009F080E0809311032BC0809166 -:102B90001603811127C0809118038F7009F4D1C0EA -:102BA0008093E9002091EB0020FF1CC0933021F4BA -:102BB0008091EB00806214C09091EB009061909343 -:102BC000EB0021E030E0A90102C0440F551F8A95B7 -:102BD000E2F74093EA001092EA008091EB008860EF -:102BE0008093EB001092E9008091E800877F86C017 -:102BF0008111A7C0109116031F778091E3008078A0 -:102C0000812B8093E3008091E800877F8093E80028 -:102C10000E9486138091E80080FFFCCF8091E30042 -:102C200080688093E300111102C082E001C083E05C -:102C30008093130386C08058823008F082C0809150 -:102C40001603909117038C3D53E0950779F583E0C7 -:102C50008A838AE289834FB7F894DE01139620E0D5 -:102C60003EE051E2E32FF0E050935700E49120FF63 -:102C700003C0E295EF703F5FEF708E2F90E0EA3077 -:102C800010F0C79601C0C0968D939D932F5F24319D -:102C900049F74FBF8091E800877F8093E8006AE2A0 -:102CA00070E0CE0101960E948D1214C0AE014F5FFC -:102CB0005F4F609118030E94D411BC01009709F482 -:102CC00040C09091E800977F9093E80089819A81B5 -:102CD0000E94F0128091E8008B778093E80031C069 -:102CE000803879F58091E800877F8093E8008091B3 -:102CF0000F038093F1008091E8008E778093E800C5 -:102D00000E9486131EC081111CC090911603923040 -:102D1000C0F48091E800877F8093E80090930F03D0 -:102D20000E94861380910F03811106C08091E300F9 -:102D300087FD02C081E001C084E0809313030E94FC -:102D4000D2108091E80083FF0AC08091E800877F5D -:102D50008093E8008091EB0080628093EB00AA965C -:102D60000FB6F894DEBF0FBECDBFDF91CF911F919C -:102D700008950895CF93809113038823A1F0C09103 -:102D8000E900CF709091EC00892F817090FD80E870 -:102D9000C82B1092E9008091E80083FD0E9468151D -:102DA000CF70C093E900CF910895909393028093E0 -:102DB00092020895E0919202F0919302309721F0EF -:102DC0000190F081E02D099480E00895E091920255 -:102DD000F0919302309721F00280F381E02D099465 -:102DE0000895E0919202F0919302309721F00480CF -:102DF000F581E02D0994089520919002309191027F -:102E00008217930771F09093910280939002E09162 -:102E10009202F0919302309721F00680F781E02D25 -:102E20000994089520918E0230918F0282179307A2 -:102E300071F090938F0280938E02E0919202F09154 -:102E40009302309721F00084F185E02D09940895D4 -:102E500008950C9428170E94AF220E9400090E9436 -:102E600035230C94E4275F926F927F928F929F920A -:102E7000AF92BF92CF92DF92EF92FF920F931F9388 -:102E8000CF93DF9300D000D01F92CDB7DEB70E9462 -:102E900045099DE9C92E92E0D92E03E010E0AA244D -:102EA000A394B12C502E802F0E94C0094C01F60132 -:102EB000729062906F016826792661147104A1F402 -:102EC0000150110978F78FEF89838A831B820E9452 -:102ED000B8228160782F9D838C8349815A816B81D0 -:102EE0008D810E94E31738C08091F20281FD0E941B -:102EF000C9092BE030E07501022E02C0EE0CFF1C68 -:102F00000A94E2F7C70186219721892B09F12983C9 -:102F10005A828E209F2091E0892809F490E09B83BB -:102F20000E94B8228160782F9D838C8349815A81C9 -:102F30006B818D810E94E317000F111FF801EB5682 -:102F4000FD4F80819181E826F926F182E08204C05C -:102F50002150310980F6B4CF0E941C2510919402B3 -:102F60000E94DA161817D1F00E94DA1680939402A4 -:102F70000F900F900F900F900F90DF91CF911F91B6 -:102F80000F91FF90EF90DF90CF90BF90AF909F9008 -:102F90008F907F906F905F900C94EA080F900F9045 -:102FA0000F900F900F90DF91CF911F910F91FF9095 -:102FB000EF90DF90CF90BF90AF909F908F907F90D9 -:102FC0006F905F900895CF93DF93CDB7DEB72B97C7 -:102FD0000FB6F894DEBF0FBECDBF4F835887698709 -:102FE0007A878B87DE01119686E0FD0111928A9522 -:102FF000E9F785E0FE01379601900D928A95E1F799 -:1030000049815A816B817C818D819E810E945A1EEB -:103010002B960FB6F894DEBF0FBECDBFDF91CF91D8 -:103020000895CF93882309F4C2C0C82F823859F479 -:103030000E94DA1681FDBBC089E30E9434210E9400 -:10304000012289E30CC0833879F40E94DA1680FDEE -:10305000AEC083E50E9434210E94012283E50E94D4 -:103060007621CF910C940122843859F40E94DA160B -:1030700082FD9DC087E40E9434210E94012287E4E2 -:10308000EECF8CEF8C0F813A48F48C2F0E944C27A6 -:1030900081118DC08C2F0E943421E3CF80E28C0FF0 -:1030A000883048F4C77081E001C0880FCA95EAF7FC -:1030B0000E94BA21D6CF8BE58C0F833078F4C53AC5 -:1030C00029F0C63A31F083E890E005C081E890E04D -:1030D00002C082E890E0CF910C94FC1688E58C0F3A -:1030E000833108F064C0C83A39F1C93A41F1CA3AAB -:1030F00049F1CB3A51F1CC3A59F1CD3A61F1C03BAB -:1031000069F1CE3A71F1CF3A79F1C13B81F1C23B1D -:1031100089F1C33B91F1C43B99F1C53BA1F1C63B99 -:10312000A9F1C73BB1F1C83BB9F1C93BC1F1CA3BF9 -:10313000C9F180E090E038C082EE90E035C089EEC1 -:1031400090E032C08AEE90E02FC085EB90E02CC07A -:1031500086EB90E029C087EB90E026C08CEC90E0F5 -:1031600023C08DEC90E020C083E891E01DC08AE888 -:1031700091E01AC082E991E017C084E991E014C09F -:1031800081E292E011C083E292E00EC084E292E01C -:103190000BC085E292E008C086E292E005C087E2BB -:1031A00092E002C08AE292E0CF910C941217CF9184 -:1031B0000895882309F44BC0823859F40E94DA1626 -:1031C00081FF45C089E30E9434210E94012289E3E6 -:1031D0000CC0833871F40E94DA1680FF38C083E592 -:1031E0000E9434210E94012283E50E9476210C94E2 -:1031F0000122843859F40E94DA1682FF28C087E43D -:103200000E9434210E94012287E4EFCF9CEF980FA7 -:10321000913A58F390E2980F983050F4877091E00B -:1032200001C0990F8A95EAF7892F0E94C021DFCF4C -:103230009BE5980F933020F480E090E00C94FC160E -:10324000885A833120F480E090E00C94121708959E -:10325000882321F00E94BA210C940122089588232A -:1032600021F00E94C0210C94012208957F928F9238 -:103270009F92AF92BF92CF92DF92EF92FF920F9305 -:103280001F93CF93DF931F92CDB7DEB77C01C62E7D -:10329000772EFC01058102950F70128111110E9499 -:1032A000D7210E942D21882379F0112369F080E233 -:1032B0008C0D883048F082E00E9416210E942D215A -:1032C00091E0D82ED92601C0D12CE72DE295EF70E0 -:1032D000F0E0E05AFF4F0C94752C872D807F072D6E -:1032E0000F70882311F00295007F112389F00023CD -:1032F00009F499C180E28C0D883020F4802F0E945F -:10330000BA2103C0802F0E94CA210E9401228BC1D2 -:103310008C2D0E94D918002309F4C3C180E28C0DC2 -:10332000883020F4802F0E94C02103C0802F0E948B -:10333000D0210E940122B5C1872D807F972D9F70DB -:10334000803211F4892F03C0892F8295807FCC2091 -:1033500021F0F1E0CF16A1F01DC0112339F00023B8 -:1033600019F1013009F50E94EA219BC1002319F0EF -:10337000013009F496C189830E94ED21898110C131 -:10338000112321F0063008F08CC10EC0053008F082 -:1033900088C106C1112359F0002331F0F70195814E -:1033A00090FF41C19F7095830E9428197AC1002324 -:1033B00009F4F6C03EC1872D86958695837090E00E -:1033C000009719F0019761F06CC1112321F08C2D49 -:1033D000972D937002C080E090E00E94FC1661C1BE -:1033E000112321F08C2D972D937002C080E090E086 -:1033F0000E94121756C18C2D112319F00E9424240B -:1034000002C00E948C240E9411254BC1872D83701D -:1034100009F052C0111145C18C2D82958695877097 -:10342000880F880F9C2D9F70892E912CA12CB12C78 -:10343000082E04C0880C991CAA1CBB1C0A94D2F745 -:10344000C4FE14C00FE010E020E030E0B901A80194 -:1034500004C0440F551F661F771F8A95D2F7CB0112 -:10346000BA01609570958095909503C060E070E01A -:10347000CB01272D26952695237030E0223031058B -:1034800069F02330310589F0682979298A299B2937 -:103490002130310571F00E94A21F03C168297929EA -:1034A0008A299B290E94BE1FFCC00E94A21FC50141 -:1034B000B4010E94861FF5C0112319F0872D817079 -:1034C00001C08695882309F4ECC08C2D82958695E1 -:1034D0008770880F880F9C2D9F70892E912CA12CAE -:1034E000B12C082E04C0880C991CAA1CBB1C0A9481 -:1034F000D2F7C4FE14C00FE010E020E030E0B901C4 -:10350000A80104C0440F551F661F771F8A95D2F784 -:10351000CB01BA01609570958095909503C060E0ED -:1035200070E0CB01272D269526952370422F50E081 -:103530004230510569F04330510589F068297929F5 -:103540008A299B294130510571F00E947C20A9C035 -:10355000682979298A299B290E949820A2C00E9463 -:103560007C20C501B4010E9460209BC08C2D90E09E -:10357000FC01E05EF109E531F10508F050C0E059C9 -:10358000FF4F0C94752C0C2D0F70872D8F7111230C -:1035900021F00E94F91F802F07CF0E941A20802F50 -:1035A0000E942F197EC0112341F0053008F079C028 -:1035B000872D8F710E943F2074C0063008F071C0C3 -:1035C000F7CF112339F0872D8F710E94F91F69C041 -:1035D0001123C9F3872D8F710E941A2062C0112315 -:1035E00029F0872D8F710E94E41F5BC00E94DA1FB3 -:1035F00058C0112351F0172D1F71812F0E94F91F00 -:1036000063E0812F0E940D214CC081E00E941621B1 -:10361000023008F446C082E00E94162142C0112305 -:1036200031F0002381F28C2D0E9411183AC0002342 -:1036300089F28C2D0E94D91834C0472D4F706C2D03 -:10364000C7010E9455030E94FE1E2BC0111129C004 -:10365000472D4F7050E042305105B9F04CF4411500 -:10366000510581F041305105E1F40E940C2819C048 -:103670004330510569F04430510599F48C2D0E9476 -:103680005E280FC00E94F5270CC00E94282809C0A0 -:103690000E943B2806C0472D4F706C2DC7010E9429 -:1036A000CB05DD20F9F00E94092180FD1BC0F70148 -:1036B00012820E9403210E94F91FC7010E94811BF0 -:1036C0000E9403210F90DF91CF911F910F91FF90E6 -:1036D000EF90DF90CF90BF90AF909F908F907F90B2 -:1036E0000C941A200F90DF91CF911F910F91FF90B2 -:1036F000EF90DF90CF90BF90AF909F908F907F9092 -:1037000008950F931F93CF93DF93EC0188819981E4 -:103710002B813C81232BB9F09F3F11F48F3F99F00F -:10372000CE010E94CA03882371F0688179818A8161 -:103730000E94FF208C010E94B4200E947B1FB801D0 -:10374000CE010E943619DF91CF911F910F910895FC -:103750000E94D7210E94E7210E94AC210E940122F1 -:103760000E94C2250E94112580E090E00E94FC1674 -:1037700080E090E00C9412170E94C7210C94A81BC3 -:103780000E94F420292F22952F7030E02C30310533 -:103790004CF42A3031056CF42250310922303105C5 -:1037A000A8F407C02C30310569F02F30310551F0F5 -:1037B0000DC0803F69F018F4803E40F409C0843F9A -:1037C00029F406C093FB882780F9089580E00895C6 -:1037D00081E00895CF93DF9300D000D01F92CDB742 -:1037E000DEB70F900F900F900F900F90DF91CF9159 -:1037F0000895CF93DF9300D000D000D0CDB7DEB7CF -:1038000026960FB6F894DEBF0FBECDBFDF91CF91E5 -:1038100008951F93CF93DF93C0919D0216E080918E -:103820009E02C81799F0D0E01C9FF0011D9FF00D7B -:103830001124E156FD4F4081518162817381848161 -:1038400095810E94F91B2196C770E9CFDF91CF9136 -:103850001F9108954091CF025091D0026091D10202 -:103860007091D2028091D3029091D4020C94F91BF2 -:103870008091D40282958F7009F054C08091D1025A -:10388000882309F44FC080919D02A0919E0260910F -:10389000CF027091D0024091D2025091D302B6E093 -:1038A0008A1709F43FC090E041155105C1F17F3FEF -:1038B00011F46F3FA1F1B89FF001B99FF00D1124F1 -:1038C000E156FD4F218172132AC02081621327C067 -:1038D0002281211124C0238134812417350710F45B -:1038E00021503109241B350B283C3105C0F42091AF -:1038F000D4022F7020612093D40226E0289FF0018B -:10390000299FF00D1124EC55FD4F80818F7080614F -:1039100080838FEC92E00E94811B0C94091C01961D -:103920008770BECF0895CF92DF92EF92FF920F93F0 -:103930001F93CF93DF93CDB7DEB762970FB6F8949E -:10394000DEBF0FBECDBF8C0185E0F801DE011D9604 -:1039500001900D928A95E1F7D8014C9111965C91F6 -:10396000119712966C9112971396CD90DC90149744 -:103970003091CF027091D0028091D2029091D30207 -:10398000009709F46BC17F3F19F43F3F09F466C10A -:10399000E090D102EE2009F4C0C02091D402C816F4 -:1039A000D90628F0F601E81BF90BCF0104C0809579 -:1039B00090958C0D9D1DFF24F394883C910578F023 -:1039C000F12C207F09F0C6C07C2DD98AC88A89894C -:1039D0000E94EA1B8FEC92E00E94811BB1C0822FF3 -:1039E000807F09F046C0751314C0341312C06111F2 -:1039F00010C02F7020612093D4020E942A1C8FECEB -:103A000092E00E94811B8091D402D80115968C937C -:103A10002EC0CD2819F15F3F11F44F3FF9F0F62E7B -:103A200061111CC080919D0220919E0236E0821798 -:103A300009F45AC090E0389FF001399FF00D11242D -:103A4000E156FD4F7181571306C07081471303C0C3 -:103A50007281711103C001968770E9CFF62E66233B -:103A600009F418C18091D40281608093D402F12CB2 -:103A700011C1751308C0341306C0611104C08091D0 -:103A8000D402D801C3C04D875E878D859E856A8B21 -:103A90000E94C01B6A898823E1F16623D1F120913D -:103AA000D402822F82958F7090E0029774F08091FB -:103AB000CF029091D00298878F831986DB86CA86C1 -:103AC0002C87CE0107960E94811B86E0F801AFEC9F -:103AD000B2E001900D928A95E1F70E94381C0E9495 -:103AE0002A1CFF24F394D6C04D875E878D859E8562 -:103AF0000E94F420292F22952F7030E022303105CA -:103B00000CF0BCC09F7009F0B6C0805E883008F42D -:103B1000C1C0C8010E94811BE4CFC816D90608F4B1 -:103B200053C0F601E81BF90BCF01883C910508F45E -:103B300050C0F12C7C2DD98AC88A89890E94EA1B41 -:103B4000EFECF2E086E0DF011D928A95E9F70E9432 -:103B50002A1CA0C0751314C0341312C0611110C008 -:103B60008091D402F8018583C8010E94811B86E000 -:103B7000EFECF2E0DF011D928A95E9F7FE2C8AC096 -:103B80004D875E878D859E856A8B0E94C01B6A89E2 -:103B9000882309F4BECF662309F4BBCF2091D40259 -:103BA000822F82958F7090E002970CF48ECF8091D7 -:103BB000CF029091D0029A8389831B82DD82CC82CE -:103BC0002E83CE0101967FCF809590958C0D9D1D03 -:103BD000ACCFF62E662309F49CCF75132EC0341398 -:103BE0002CC02091D40220FD1FC0822F82958F709F -:103BF000D9F0D80115962C9315978F3049F08F5F27 -:103C0000982F9295907F822F8F70892B15968C9389 -:103C1000C8010E94811B86E0F801AFECB2E0019080 -:103C20000D928A95E1F793CF86E0F801AFECB2E010 -:103C300001900D928A95E1F72DC04D875E878D85A5 -:103C40009E850E94C01B811140CF8091D40281606B -:103C50008093D402C8010E94811B1CC0662309F412 -:103C600058CF4D875E878D859E850E94C01B882317 -:103C700009F44FCF2ACF811148CF0CC02430310531 -:103C80000CF047CF9F7009F440CFF8019581907FE9 -:103C900009F03BCF8F2D62960FB6F894DEBF0FBEB2 -:103CA000CDBFDF91CF911F910F91FF90EF90DF90EB -:103CB000CF9008951F93CF93DF93CDB7DEB72C97A6 -:103CC0000FB6F894DEBF0FBECDBF4F83588769870C -:103CD0007A878B879C87CE0107960E94931C882346 -:103CE00069F08F8198852A853B85232BF1F19F3FD1 -:103CF00009F063C08F3F09F060C037C086E0FE0165 -:103D00003796DE01119601900D928A95E1F76F8149 -:103D10007885EA85FB85309741F17F3F11F46F3F4D -:103D200021F120919E0230E0C90101968770992708 -:103D300040919D0250E08417950709F447C06983BC -:103D40007A83FD83EC8396E0929FD001939FB00D20 -:103D50001124A156BD4FFE01319601900D929A9506 -:103D6000E1F780939E020E94091C16E080919D025B -:103D700090919E028917C1F1189FC00111248156AC -:103D80009D4F0E94931C882379F1E0919D021E9F14 -:103D9000F0011124E156FD4F408151816281738110 -:103DA000848195810E94F91B80919D0290E001968B -:103DB0008770992780939D02D9CF4F815885698557 -:103DC0007A858B859C850E94F91BCFCF0E94BC1BF6 -:103DD00010929E0210929D02EFECF2E086E0DF016D -:103DE0001D928A95E9F7C1CF2C960FB6F894DEBFE5 -:103DF0000FBECDBFDF91CF911F910895EF92FF923B -:103E00000F931F93CF93DF938C01009709F46CC03D -:103E1000F12CEE24E394E8012196F8018491843793 -:103E200040F4843008F051C0813081F0823019F1C3 -:103E30005BC0853709F444C0A8F19CE7980F903720 -:103E400008F052C08F770E94D91841C00E5F1F4FF3 -:103E5000FE01C49180E28C0F883048F4C7708E2D2B -:103E600001C0880FCA95EAF70E94DA2114C08C2F8E -:103E70000E9411182DC00E5F1F4FFE01C49180E2F9 -:103E80008C0F883058F4C7708E2D01C0880FCA95EA -:103E9000EAF70E94E0210E9401221AC08C2F0E94A2 -:103EA000D91816C00E5F1F4FFE01C491CC2381F0BC -:103EB0008FE99FE00197F1F700C00000C150F6CFF5 -:103EC0000E5F1F4FFE01F49003C00E9411188E0177 -:103ED0008F2D882309F49FCFEFE9FFE03197F1F7A9 -:103EE00000C000008150F5CFDF91CF911F910F915D -:103EF000FF90EF90089508956093D9027093DA02CD -:103F00008093DB029093DC020C94A81B0F931F9309 -:103F10000091D9021091DA022091DB023091DC028B -:103F2000DC01CB01802B912BA22BB32B8093D902E8 -:103F30009093DA02A093DB02B093DC021F910F9101 -:103F40000C94A81B0F931F930091D9021091DA02D1 -:103F50002091DB023091DC02DC01CB018023912334 -:103F6000A223B3238093D9029093DA02A093DB02B9 -:103F7000B093DC021F910F910C94A81B0F931F9319 -:103F80000091D9021091DA022091DB023091DC021B -:103F9000DC01CB0180279127A227B3278093D90288 -:103FA0009093DA02A093DB02B093DC021F910F9191 -:103FB0000C94A81B1092D5021092D6021092D70230 -:103FC0001092D8020C94A81B41E050E060E070E031 -:103FD00004C0440F551F661F771F8A95D2F7409380 -:103FE000D5025093D6026093D7027093D8020C94F6 -:103FF000A81B41E050E060E070E004C0440F551F92 -:10400000661F771F8A95D2F78091D5029091D602CC -:10401000A091D702B091D802482B592B6A2B7B2B49 -:104020004093D5025093D6026093D7027093D80282 -:104030000C94A81B41E050E060E070E004C0440F25 -:10404000551F661F771F8A95D2F74095509560954A -:1040500070958091D5029091D602A091D702B0912F -:10406000D802482359236A237B234093D5025093D7 -:10407000D6026093D7027093D8020C94A81B41E03B -:1040800050E060E070E004C0440F551F661F771FCA -:104090008A95D2F78091D5029091D602A091D7024D -:1040A000B091D802482759276A277B274093D50229 -:1040B0005093D6026093D7027093D8020C94A81B39 -:1040C0000F931F930091D5021091D6022091D70231 -:1040D0003091D802DC01CB01802B912BA22BB32B8A -:1040E0008093D5029093D602A093D702B093D802C2 -:1040F0001F910F910C94A81B0F931F930091D50251 -:104100001091D6022091D7023091D802DC01CB0168 -:1041100080239123A223B3238093D5029093D602C8 -:10412000A093D702B093D8021F910F910C94A81BB3 -:104130000F931F930091D5021091D6022091D702C0 -:104140003091D802DC01CB0180279127A227B32729 -:104150008093D5029093D602A093D702B093D80251 -:104160001F910F910C94A81B0895CF92DF92EF92AC -:10417000FF920F931F93CF93DF938C01C090D902CE -:10418000D090DA02E090DB02F090DC028091D50260 -:104190009091D602A091D702B091D802C82AD92A0C -:1041A000EA2AFB2ACFE1D0E0D701C6010C2E04C0D9 -:1041B000B695A795979587950A94D2F780FF06C084 -:1041C000B8018C2F0E945008019721F4219760F7C5 -:1041D00080E001C08C2FDF91CF911F910F91FF9054 -:1041E000EF90DF90CF900895CF93DF93EC010E9482 -:1041F000B520BE010E945008DF91CF910895CB01F8 -:104200000E94F42008958091DD028595859585951D -:1042100008958091DD028770089598E0899F90014C -:104220001124262B2093DD020C94F91F2091DD022E -:10423000809582238093DD02982F977069F430E097 -:10424000482F552747FD50952417350729F08595A8 -:10425000859585950C941A2008959091DD029770AC -:1042600081E009F480E0089590911501992321F0EF -:1042700090911601911109C02091170130911801F8 -:10428000F90132969FEF40E01FC0982F96959695C2 -:1042900096959F3050F5E0911701F0911801E90FC4 -:1042A000F11D877021E030E0A90102C0440F551FC5 -:1042B0008A95E2F7CA019181892B818308959F3FF6 -:1042C00039F04F5F4E3041F051915813F8CF0DC087 -:1042D0005111F7CF942FF5CF9F3F39F0F901E90F36 -:1042E000F11D97FDFA958283089508959091150127 -:1042F000992321F090911601911109C02091170185 -:1043000030911801F9013296205F3F4F1FC0982F5E -:104310009695969596959F30F0F4E0911701F0915F -:104320001801E90FF11D877021E030E0A90102C0FA -:10433000440F551F8A95E2F7CA0180959181892320 -:10434000818308953196E217F30729F0908198133D -:10435000F9CF1082F7CF089581E090E0E091170146 -:10436000F0911801E80FF91F108201968031910534 -:10437000A9F708959091F102892B8093F102089595 -:1043800080959091F10289238093F1020895109213 -:10439000F10208959091F002892B8093F002089524 -:1043A00080959091F00289238093F00208951092F5 -:1043B000F00208959091EF02892B8093EF02089507 -:1043C00080959091EF0289238093EF0208951092D7 -:1043D000EF0208958093DE0208951092DE020895A0 -:1043E0008091170190911801FC0131969C01205F8A -:1043F0003F4F80E0919191118F5FE217F307D1F762 -:104400000895E0911701F09118018091F1028083E5 -:10441000E0911701F091180190818091F002892BB1 -:104420008083E0911701F091180190818091EF0253 -:10443000892B80838091DE02882361F0E09117014F -:10444000F09118019081892B80830E94F0218111C5 -:104450001092DE0280911701909118010C94E616DB -:1044600020E0009739F0AC01415051098423952395 -:104470002F5FF7CF822F089580911303843039F195 -:104480001092F30220E488E190E00FB6F894A8952A -:10449000809360000FBE2093600080E00E94BC0209 -:1044A00080E00E94EA0883B7817F846083BF83B77E -:1044B000816083BF7894889583B78E7F83BF88E1BE -:1044C0000FB6F89480936000109260000FBE0895BC -:1044D0000895089580E00E94BC020E9468220E9414 -:1044E00045090E9469220E94CA0991E0811101C018 -:1044F00090E0892F08950E94BC1B80E00E94BC02BE -:104500000E94E4270E94DA160C94EA081F920F9288 -:104510000FB60F9211248F939F93AF93BF93809107 -:10452000F302811113C08091F4029091F502A091E1 -:10453000F602B091F7024196A11DB11D8093F402DD -:104540009093F502A093F602B093F702BF91AF915A -:104550009F918F910F900FBE0F901F90189582E042 -:1045600084BD93E095BD9AEF97BD80936E0008954A -:104570002FB7F8948091F4029091F502A091F60281 -:10458000B091F7022FBF0895CF92DF92EF92FF9282 -:104590000F931F932FB7F8944091F4025091F502B6 -:1045A0006091F6027091F7022FBF6A017B01EE2441 -:1045B000FF248C0120E030E0C016D106E206F306AD -:1045C00010F4415051099A01281B390BC9011F9160 -:1045D0000F91FF90EF90DF90CF9008951F920F9270 -:1045E0000FB60F9211248F939F93AF93BF93809137 -:1045F000F4029091F502A091F602B091F7020196B3 -:10460000A11DB11D8093F4029093F502A093F602D0 -:10461000B093F702BF91AF919F918F910F900FBE12 -:104620000F901F9018950E94D713F8942FEF87EAE8 -:1046300091E6215080409040E1F700C0000087E003 -:1046400090EBDC0180931E0390931F03A093200343 -:10465000B09321039CE088E10FB6F894A89580936D -:1046600060000FBE90936000FFCF0E947423811101 -:1046700002C00E9450230E947F238093F2020E9476 -:10468000872380931C0387FB882780F9809316017A -:104690000E948323682F70E080E090E00C947C1FE0 -:1046A0006DEE7EEF80E090E00E949B2C60E082E067 -:1046B00090E00E94892C60E083E090E00E94892CC9 -:1046C00060E084E090E00E94892C60E085E090E06A -:1046D0000E94892C60E086E090E00E94892C6FEFB8 -:1046E00087E090E00C94892C80E090E00E94832C7D -:1046F00021E08D3E9E4F09F020E0822F089582E058 -:1047000090E00C947B2C83E090E00C947B2C84E074 -:1047100090E00C947B2C682F84E090E00C94892C22 -:1047200086E090E00C947B2C682F86E090E00C945F -:10473000892C87E090E00C947B2C682F87E090E038 -:104740000C94892C8091FA0280FF0BC060911C01AF -:1047500085E0689FB00111247595679575956795FB -:104760002BC081FF09C060911C0185E0689FB001EA -:1047700011247595679520C082FF07C060911C01C8 -:1047800085E0689FB001112417C09091FB02992326 -:10479000D1F060911B01961788F720911C0185E0EC -:1047A000289F90011124929FA001939F500D1124E6 -:1047B00070E0CA010E94612C6038710540F46115F7 -:1047C000710539F002C065E070E0862F08958FE72B -:1047D000089581E008958091FA0280FF08C06091F9 -:1047E0001A0170E0759567957595679521C081FFF1 -:1047F00006C060911A0170E07595679519C082FF37 -:1048000004C060911A0170E010C09091FB029923DE -:10481000C1F0609119019617A0F780911A01899F44 -:10482000C001112470E00E94612C6038710528F4E9 -:104830006115710521F0862F08958FE7089581E0B5 -:10484000089561E070E0F4CF803F21F40E94A2233C -:10485000819504C0813F29F40E94A2238093FE0227 -:104860000895823F21F40E94A223819504C0833FD2 -:1048700029F40E94A2238093FD020895893F19F430 -:104880000E94EB2305C08A3F31F40E94EB238195FF -:104890008093FF0208958B3F21F40E94EB238195C2 -:1048A00004C08C3F29F40E94EB23809300030895F9 -:1048B000843F21F48091FC02816017C0853F21F480 -:1048C0008091FC02826011C0863F21F48091FC023D -:1048D00084600BC0873F21F48091FC02886005C092 -:1048E000883F31F48091FC0280618093FC0208953E -:1048F0008D3F21F48091FA0281600BC08E3F21F43C -:104900008091FA02826005C08F3F29F48091FA02FB -:1049100084608093FA020895803F39F48091FE020A -:1049200087FF6CC01092FE0269C0813F29F480911C -:10493000FE021816BCF362C09091FD02823F29F47A -:1049400097FF5CC01092FD0259C0833F19F41916FD -:10495000CCF354C0893F41F48091FF0218160CF04B -:104960004DC01092FF024AC08A3F29F48091FF0295 -:1049700087FF44C0F6CF8B3F39F48091000387FF57 -:104980003DC0109200033AC08C3F29F4809100038F -:104990001816BCF333C0843F21F48091FC028E7F53 -:1049A00017C0853F21F48091FC028D7F11C0863FA6 -:1049B00021F48091FC028B7F0BC0873F21F4809112 -:1049C000FC02877F05C0883F31F48091FC028F7E16 -:1049D0008093FC0213C08D3F21F48091FA028E7FF8 -:1049E0000BC08E3F21F48091FA028D7F05C08F3F6E -:1049F00029F48091FA028B7F8093FA028091FD0264 -:104A000081110EC08091FE0281110AC08091FF02C7 -:104A1000811106C080910003811102C01092FB0237 -:104A200008958CEF92E00E94F1160E94B8229093B4 -:104A3000F9028093F80208951F93CF93DF9380913A -:104A4000F8029091F9020E94C422AC019091FB02FD -:104A5000992321F020911D0130E006C020911E0114 -:104A60008AE0289F900111244217530708F486C05A -:104A70008091FD02C091FE02D091FF0210910003CF -:104A8000811107C0C11176C0D11174C0111172C05B -:104A900075C09F3F19F09F5F9093FB02181624F496 -:104AA0000E94A2238093FD028091FD0287FF05C032 -:104AB0000E94A22381958093FD021C1624F40E947B -:104AC000A2238093FE028091FE0287FF05C00E9410 -:104AD000A22381958093FE026091FD02662339F145 -:104AE000C091FE02CC2319F1772767FD7095872FBF -:104AF000972F0E94832923E333E343E35FE30E947C -:104B0000932A0E9450296093FD026C2F772767FD3E -:104B10007095872F972F0E94832923E333E343E384 -:104B20005FE30E94932A0E9450296093FE021D16A3 -:104B300024F40E94EB238093FF028091FF0287FF01 -:104B400005C00E94EB2381958093FF02111624F487 -:104B50000E94EB23809300038091000387FF05C030 -:104B60000E94EB23819580930003DF91CF911F91E9 -:104B70000C9411259F3F09F08ECF96CFDF91CF91F6 -:104B80001F910895ECEFF2E085E0DF011D928A9518 -:104B9000E9F71092FB021092FA020895833081F136 -:104BA00028F4813059F08230D1F00895853009F42D -:104BB00049C0B8F1863009F456C0089580911E01AD -:104BC000262F30E0280F311D2F3F310524F4680FC8 -:104BD00060931E0108958FEF80931E0108958091C8 -:104BE0001D01262F30E0280F311D2F3F310524F401 -:104BF000680F60931D0108958FEF80931D01089544 -:104C000080911C01262F30E0280F311D2F3F3105E8 -:104C100024F4680F60931C0108958FEF80931C01AA -:104C2000089580911B01262F30E0280F311D2F3F62 -:104C3000310524F4680F60931B0108958FEF809372 -:104C40001B01089580911A01262F30E0280F311D95 -:104C50002F3F310524F4680F60931A0108958FEFF8 -:104C600080931A01089580911901262F30E0280FB2 -:104C7000311D2F3F310524F4680F60931901089509 -:104C80008FEF809319010895833011F128F481305A -:104C900049F0823091F00895853081F120F186301D -:104CA000C1F1089580911E01681720F4861B80933E -:104CB0001E01089510921E01089580911D0168172C -:104CC00020F4861B80931D01089510921D01089504 -:104CD00080911C01681720F4861B80931C010895A5 -:104CE00010921C01089580911B01681720F4861B07 -:104CF00080931B01089510921B01089580911A0161 -:104D0000681720F4861B80931A01089510921A01E7 -:104D1000089580911901681720F4861B809319016A -:104D200008951092190108950F931F93873208F088 -:104D300048C08E3108F08DC0803109F477C008F585 -:104D4000873009F461C068F4863009F09DC0809115 -:104D5000F202817F8E7F8093F20281E080930203D2 -:104D600094C08B3009F489C08E3009F08DC08091D9 -:104D7000F20282FB222720F991E0922790FB82F930 -:104D80005EC0863109F479C060F4813109F07CC0DD -:104D90000E94BC1B9091160181E089278093160127 -:104DA0006CC0893109F469C08B3109F06DC0809104 -:104DB000F20281FB222720F991E0922790FB81F9F2 -:104DC0003EC0883309F459C050F4893209F457C001 -:104DD000853309F454C0873209F451C055C0833477 -:104DE00009F44DC028F48A3308F44EC0895332C008 -:104DF000883409F049C00E94BC1B0E94FA090E9435 -:104E0000C1030E94132339C09091F202892F80952B -:104E1000817080FB90F929F0966098609093F2027F -:104E200034C0997F977F9093F20227C08091F2025D -:104E300083FB222720F991E0922790FB83F980934E -:104E4000F2029923D1F08091F20281608093F20204 -:104E500014C08D5141E050E060E070E08A019B0198 -:104E600004C0000F111F221F331F8A95D2F7C901FA -:104E7000B8010E947C1F0E94BC1B81E006C061E05B -:104E800070E080E090E0F5CF80E01F910F910895F1 -:104E900080E0089580E00895CF93C82F80910203A9 -:104EA000813069F018F08230C9F184C0E0911701B7 -:104EB000F09118018081823209F07EC007C0E09134 -:104EC0001701F09118018081823261F48C2F0E94C9 -:104ED0004827811104C08C2F0E9494261DC081E0B8 -:104EE00090E01AC08C2F0E944A27811114C0C4314F -:104EF00079F048F4CB3079F0C03109F061C082E03C -:104F00008093020308C0C93219F0C83321F058C099 -:104F10001092020355C081E0817054C0C93291F1F2 -:104F200020F5C43179F1B0F4C73009F047C08EE103 -:104F300080931E0182E380931D018AE080931C010F -:104F400084E180931B0188E080931A0188E28093BA -:104F5000190134C0CE51C63088F5EC2FF0E0EA5488 -:104F6000FE4F80818093010329C0CE34E9F020F404 -:104F7000CB3421F56AE013C0C13579F0C235F1F4C4 -:104F800061E00DC080910103882319F010920103A4 -:104F900015C081E08093020315C061E006C08091D6 -:104FA00001030E94CE250AC06AE0809101030E949D -:104FB000442604C01092020380E004C081E002C0D5 -:104FC00080E0AACFCF9108950E947423811102C07E -:104FD0000E9450230E94902380931D0380FF02C0F3 -:104FE000869501C080E00C94BC0280911D03982F2F -:104FF0009695292F30E0233031054CF49F5F990FAF -:105000008170892B816080931D030E94942380917D -:105010001D0386950C94BC0280911D03982F9695D4 -:1050200091F09158990F8170892B80931D038E7F89 -:1050300091E009F490E080911D0390FB80F980934A -:105040001D030E94942380911D0386950C94BC023D -:1050500080911D03982F909590FB80F980931D03FC -:105060000E94942380911D0380FF02C0869501C099 -:1050700080E00C94BC0290911D03892F86958F5F70 -:105080008F779170843028F4880F892B80931D03CB -:1050900002C090931D0380911D038E7F91E009F45F -:1050A00090E080911D0390FB80F980931D030E9486 -:1050B000942380911D0386950C94BC0220911D03BE -:1050C000922F96958927982F990F822F8170892B7F -:1050D00080931D038E7F91E009F490E080911D0381 -:1050E00090FB80F980931D030E94942380911D03FF -:1050F00086950C94BC0280911D03869508955058A6 -:10510000BB27AA270ED0D1C1C2D130F0C7D120F021 -:1051100031F49F3F11F41EF4B7C10EF4E095E7FBA4 -:105120009FC1E92FD3D180F3BA17620773078407B1 -:10513000950718F071F49EF5EBC10EF4E0950B2E77 -:10514000BA2FA02D0B01B90190010C01CA01A001D9 -:105150001124FF27591B99F0593F50F4503E68F134 -:105160001A16F040A22F232F342F4427585FF3CF75 -:10517000469537952795A795F0405395C9F77EF446 -:105180001F16BA0B620B730B840BBAF09150A1F08F -:10519000FF0FBB1F661F771F881FC2F70EC0BA0F15 -:1051A000621F731F841F48F4879577956795B7959D -:1051B000F7959E3F08F0B3CF9395880F08F0992795 -:1051C000EE0F97958795089527D108F481E008950B -:1051D0000CD06BC163D140F05AD130F021F45F3F65 -:1051E00019F03EC1511195C14FC170D198F3992367 -:1051F000C9F35523B1F3951B550BBB27AA2762179B -:105200007307840738F09F5F5F4F220F331F441FDF -:10521000AA1FA9F333D00E2E3AF0E0E830D0915017 -:105220005040E695001CCAF729D0FE2F27D0660F04 -:10523000771F881FBB1F261737074807AB07B0E843 -:1052400009F0BB0B802DBF01FF2793585F4F2AF059 -:105250009E3F510568F004C15CC15F3FECF3983E8E -:10526000DCF3869577956795B795F7959F5FC9F7B6 -:10527000880F911D9695879597F90895E1E0660F3F -:10528000771F881FBB1F621773078407BA0720F0B8 -:10529000621B730B840BBA0BEE1F88F7E095089521 -:1052A00004D06894B11135C1089518D188F09F5782 -:1052B00090F0B92F9927B751A0F0D1F0660F771F62 -:1052C000881F991F1AF0BA95C9F712C0B13081F042 -:1052D0001FD1B1E008951CC1672F782F8827B85FD0 -:1052E00039F0B93FCCF3869577956795B395D9F7A3 -:1052F0003EF490958095709561957F4F8F4F9F4FAD -:105300000895E89409C097FB3EF4909580957095B8 -:1053100061957F4F8F4F9F4F9923A9F0F92F96E901 -:10532000BB279395F695879577956795B795F11176 -:10533000F8CFFAF4BB0F11F460FF1BC06F5F7F4F13 -:105340008F4F9F4F16C0882311F096E911C0772325 -:1053500021F09EE8872F762F05C0662371F096E82E -:10536000862F70E060E02AF09A95660F771F881FFD -:10537000DAF7880F9695879597F9089588D018F0F1 -:1053800011F08CD038F480C0C4C0E92F9FD0B0F3A6 -:105390005523C9F3E7FB6217730784079507A8F144 -:1053A00099F3E92FFF2788232AF03197660F771F9B -:1053B000881FDAF7952F5527442332F0915050403B -:1053C000220F331F441FD2F7BB27E91BF50B621BCB -:1053D000730B840BB109C1F222F4620F731F841F97 -:1053E000B11D31972AF0660F771F881FBB1FEFCFC3 -:1053F000915050405AF041F0882332F0660F771FE9 -:10540000881F91505040C1F7939530C0869577958D -:1054100067959F5FD9F7F8CF990F0008550FAA0B32 -:10542000E0E8FEEF16161706E807F907C0F01216B7 -:105430001306E407F50798F0621B730B840B950BBA -:1054400039F40A2661F0232B242B252B21F408950F -:105450000A2609F4A140A6958FEF811D811D0895AC -:1054600097F99F6780E870E060E008959F3F31F012 -:10547000915020F4879577956795B795880F911D82 -:105480009695879597F908959FEF80EC08950024ED -:105490000A941616170618060906089500240A9499 -:1054A00012161306140605060895092E0394000C1F -:1054B00011F4882352F0BB0F40F4BF2B11F460FFAE -:1054C00004C06F5F7F4F8F4F9F4F089557FD9058D7 -:1054D000440F551F59F05F3F71F04795880F97FBB8 -:1054E000991F61F09F3F79F0879508951216130672 -:1054F0001406551FF2CF4695F1DF08C016161706A1 -:105500001806991FF1CF86957105610508940895D5 -:10551000E894BB2766277727CB0197F908957CDFAE -:1055200008F48FEF08950BD0C0CFB1DF28F0B6DFBD -:1055300018F0952309F094CFA7CF1124EACFC6DF46 -:10554000A0F3959FD1F3950F50E0551F629FF00196 -:10555000729FBB27F00DB11D639FAA27F00DB11DEF -:10556000AA1F649F6627B00DA11D661F829F222778 -:10557000B00DA11D621F739FB00DA11D621F839FFF -:10558000A00D611D221F749F3327A00D611D231FD5 -:10559000849F600D211D822F762F6A2F11249F5723 -:1055A00050408AF0E1F088234AF0EE0FFF1FBB1F46 -:1055B000661F771F881F91505040A9F79E3F5105E5 -:1055C00070F04ECFA6CF5F3FECF3983EDCF38695AC -:1055D00077956795B795F795E7959F5FC1F7FE2B90 -:1055E000880F911D9695879597F90895FA01EE0F0A -:1055F000FF1F30962105310599F16115710561F4A0 -:105600008038BFE39B0749F168949038810561F0C9 -:105610008038BFEF9B0741F0992342F5FF3FE1053A -:105620003105210511F1E8940894E795D901AA23E1 -:1056300029F4AB2FBE2FF85FD0F310C0FF5F70F4DA -:10564000A695E0F7F73950F019F0FF3A38F49F7754 -:105650009F930CD00F9007FC905808953EF014CF04 -:1056600060E070E080E89FE308954FE79F775F93E5 -:105670004F933F932F939ED02F913F914F915F91E6 -:1056800052DF05C019F40EF0EBCE42CFFDCE26DF7F -:10569000C8F39638C0F707F80F92E8942BE33AEA7C -:1056A00048EB5FE74EDF0F920F920F924DB75EB758 -:1056B0000F92C0D0EAE0F1E016D04F915F91EF91E8 -:1056C000FF91E595EE1FFF1F49F0FE57E068442764 -:1056D000EE0F441FFA95E1F74195550B32D00F902C -:1056E00007FE26C00895DF93CF931F930F93FF9279 -:1056F000EF92DF927B018C01689405C0DA2EEF01F6 -:105700001EDFFE01E894A5912591359145915591B3 -:10571000AEF3EF0106DDFE019701A801DA9479F7F7 -:10572000DF90EF90FF900F911F91CF91DF9108953F -:105730009B01AC0160E070E080E89FE349CD90CE32 -:1057400095CECCDEE8F39923D9F3940F511DBBF32A -:105750009150504094F059F0882332F0660F771F33 -:10576000881F91505040C1F79E3F510544F7880F64 -:10577000911D9695879597F908955F3FACF0983EF7 -:105780009CF0BB27869577956795B79508F4B1602F -:105790009395C1F7BB0F58F711F460FFE8CF6F5F27 -:1057A0007F4F8F4F9F4FE3CFB4CE0EF05FCE6CCEC6 -:1057B000689456CE93DEC8F39923D1F3C6F3DF93F2 -:1057C000CF931F930F93FF92C92FDD2788232AF0D1 -:1057D0002197660F771F881FDAF720E030E040E856 -:1057E0005FEB9FE3883920F0803E30F021968F7781 -:1057F00087DCE2E3F1E003C083DCEFE5F1E073DF97 -:105800008B01BE01EC01FB2E6F5771097595771F57 -:10581000880B990B78DD28E132E741E35FE38FDE07 -:10582000AF2D9801AE01FF900F911F91CF91DF91A5 -:1058300078DC3BCEFA01DC01AA0FBB1F9B01AC0157 -:10584000BF5728F422273327442750781FC0B75169 -:1058500088F4AB2F0024469537952795011CA39516 -:10586000D2F3002069F0220F331F441FB395DAF3FF -:105870000DD045CC61307105A0E88A07B94630F4F7 -:105880009B01AC016627772788279078309621F016 -:1058900020833183428353830895AA1BBB1B51E1AC -:1058A00007C0AA1FBB1FA617B70710F0A61BB70B90 -:1058B000881F991F5A95A9F780959095BC01CD0135 -:1058C000089597FB072E16F4009407D077FD09D0B2 -:1058D0000E944D2C07FC05D03EF4909581959F4F7A -:1058E0000895709561957F4F0895EE0FFF1F059005 -:1058F000F491E02D0994F999FECF92BD81BDF89AFB -:10590000992780B50895A8E1B0E042E050E00C94FA -:10591000A32C262FF999FECF92BD81BDF89A01974D -:1059200000B4021639F01FBA20BD0FB6F894FA9AE7 -:10593000F99A0FBE08950196272F0E948A2C0C9485 -:10594000892CDC01CB01FC01F999FECF06C0F2BD28 -:10595000E1BDF89A319600B40D9241505040B8F72D -:065960000895F894FFCF4A -:10596600640007000CFF0000003F64DE0F6C104966 -:10597600101510E10F0101DF022808140A321E007B -:1059860002040507090B0C0E1011131517181A1C23 -:105996001D1F2123242628292B2D2F30323435375D -:1059A600393B1F0F03764F5F6F7F4969437909596A -:1059B60053633149803F5D8B803FF8BF803FCAE12A -:1059C600803F73ED803FCAE1803FF8BF803F5D8B2B -:1059D600803F3149803F0000803FF16D7F3F75EA8F -:1059E6007E3F4C827E3F833F7E3F84287E3F833FBF -:1059F6007E3F4C827E3F75EA7E3FF16D7F3F000021 -:105A0600803F3F4D3639830436040004C7035A03EA -:105A160073038C03A50301020304050607080900A6 -:00000001FF diff --git a/keyboards/planck/keymaps/joe/compiled.hex b/keyboards/planck/keymaps/joe/compiled.hex deleted file mode 100644 index 865ed2ce9..000000000 --- a/keyboards/planck/keymaps/joe/compiled.hex +++ /dev/null @@ -1,1479 +0,0 @@ -:100000000C9467030C94AB030C94AB030C94AB03FC -:100010000C94AB030C94AB030C94AB030C94AB03A8 -:100020000C94AB030C94AB030C946A150C943C1623 -:100030000C949E230C94AB030C94AB030C94AB0375 -:100040000C94AB030C940D040C94AB030C94AB0315 -:100050000C94AB030C9406240C94AB030C94AB03EC -:100060000C94AB030C94AB030C94AB030C94AB0358 -:100070000C94AB030C94AB030C94AB030C94AB0348 -:100080000C94DF0B0C94AB030C94AB030C94AB03FC -:100090000C94AB030C94AB030C94AB030C94AB0328 -:1000A0000C94AB030C94AB030C94AB03A916CB16C6 -:1000B000B917CB16B91710173317B91788179B172D -:1000C000851A851AB41AB41AF31A131B691C691C11 -:1000D0001E1B691CCE1BCE1B351C3E1C691C631CE1 -:1000E000DB1BDB1BDB1BDB1BDB1BDB1BDB1BDB1B60 -:1000F000DB1BDB1BDB1BDB1BDB1BDB1BDB1BDB1B50 -:10010000EB1BF91B001C071C111C07634236B79B35 -:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 -:100120005763BD6DEDFD753EF6177231BF000000DF -:10013000803F08000000BE922449123EABAAAA2AC2 -:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD -:1001500000000000BF000000803F00000000000819 -:100160004178D3BB4387D1133D190E3CC3BD4282B6 -:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 -:10018000FFBE01C4FF7F3F00000000000000000030 -:1001900000000000000000010204060A0F17202CD6 -:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 -:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF -:1001C00002010000000000000000000001E1013316 -:1001D000023301260226012C022C012C022C0127BD -:1001E00002270133023302E1015002500150025054 -:1001F000015002500001E1012602260133023301C1 -:100200002C022C012C022C0133023301270227027D -:10021000E10150025001500250015002500001E132 -:10022000013302330126022602E10001E10133021B -:10023000330127022702E1000000F1A4F1A529A65D -:1002400000000000018C028C048C088C000000006F -:100250000000000000002B22032014001A000900F7 -:1002600013000A000D000F0018001C0033002D00C1 -:100270002A00040015001600170007000B001100EB -:1002800008000C00120028000F201D001B000600B3 -:10029000190005000E00100036003700520034002F -:1002A000E000E300E200E10001202C002C0002202D -:1002B0003800500051004F00032014001A000800BD -:1002C000150017001C0018000C00120013002D0070 -:1002D0002A0004001600070009000A000B000D00A8 -:1002E0000E000F00330028000F201D001B00060029 -:1002F00019000500110010003600370052003400CC -:10030000E000E300E200E10001202C002C000220CC -:100310003800500051004F00032000005200000040 -:10032000000000002602270254005F006000610008 -:100330002A00500051004F00000000002202670018 -:1003400055005C005D005E000F2000000000000012 -:100350000000000000008500560059005A005B00B4 -:10036000E000E300E200E1000120010001000220C2 -:100370005700620063005800032014001A000900AF -:10038000130023000D000F0018001C0033002D0087 -:100390002A00210015002200240007000B00110094 -:1003A00020001E00270028000F201D001B00060053 -:1003B000190005000E00100036003700520034000E -:1003C000E000E300E200E10001202C002C0002200C -:1003D0003800500051004F003500000000000000C0 -:1003E0000000000000000000033002300130003047 -:1003F0002A001E001F0020002100220023002400EC -:100400002500260027000100310000000000000048 -:1004100000000000000000002F0030004B002E0004 -:100420000100010001000100012001000100022083 -:1004300000004A004E004D003A003B003C003D00E9 -:100440003E003F00400041004200430044004500A0 -:100450004C00F400F000F500F600F900F700500041 -:10046000510052004F0000000100F200F100F300C3 -:10047000FB00FA00FC00000000004B0152054E0199 -:100480000100010001000100012000000000022025 -:100490000000500551054F050100A800AA00A90061 -:1004A000000000000000000000000000000000004C -:1004B0000000AE00AC00AB00000000000000000037 -:1004C00000000000000000500000000000000000DC -:1004D000000000000000000000000000000000001C -:1004E0000620072008200920012001000100022029 -:1004F0006600A700A6000F052803540068006500E9 -:10050000200050006C0061006E0063006B00200052 -:100510004B006500790062006F00610072006400AA -:1005200000002C034F007200740068006F006C0024 -:1005300069006E0065006100720020004B006500DC -:10054000790062006F0061007200640073000000B7 -:100550000403090409026D00040100A0FA09040063 -:10056000000103010100092111010001223F0007E0 -:1005700005810308000A09040100010301020009C2 -:100580002111010001224D000705820308000A091C -:1005900004020001030000000921110100012236BC -:1005A000000705830308000A090403000103000093 -:1005B0000009211101000122390007058403100000 -:1005C000011201100100000008EDFE606001000151 -:1005D00002000105010906A101050719E029E71537 -:1005E0000025019508750181020508190129059565 -:1005F00005750191029501750391010507190029FF -:100600007715002501957875018102C005010980E3 -:10061000A101850216010026B7001A01002AB700C1 -:10062000751095018100C0050C0901A10185031613 -:100630000100269C021A01002A9C02751095018176 -:1006400000C005010902A1010901A1000509190164 -:100650002905150025019505750181029501750390 -:1006600081010501093009311581257F9502750841 -:10067000810609381581257F950175088106050CCD -:100680000A38021581257F950175088106C0C005CD -:10069000010906A101050719E029E71500250195C3 -:1006A0000875018102950175088101050819012964 -:1006B00005950575019102950175039101050719CD -:1006C0000029FF150025FF950675088100C011243B -:1006D0001FBECFEFDAE0DEBFCDBF04B603FE24C0FD -:1006E00080911E0390911F03A0912003B0912103DC -:1006F0008730904BA740B04BB9F410921E03109274 -:100700001F03109220031092210314BE84B7877F29 -:1007100084BF88E10FB6F894809360001092600067 -:100720000FBEE0E0F8E3099511E0A0E0B1E0E6E9F2 -:10073000FBE502C005900D92A03CB107D9F713E08C -:10074000A0ECB1E001C01D92AE31B107E1F70E940B -:10075000B0120C94C92D0C9400000895089581E006 -:10076000089508950C94AE030C94AF030C94B10358 -:100770000E94932923E030E0281B3109220F2093A7 -:10078000C4010895282F2F9880918000211108C05E -:10079000877F8093800010928D0010928C001BC088 -:1007A000886080938000233019F48FEF9FEF0FC093 -:1007B00083E090E0821B9109880F991F2FEF3FEF94 -:1007C000A90102C0569547958A95E2F7CA01909310 -:1007D0008D0080938C000C94B8030E94B80384E0D1 -:1007E0008093C3011092C0010895279A2F988FEF2C -:1007F0009FEF90938700809386008AE0809380002B -:1008000089E1809381000E94FC280C94ED030E94F2 -:10081000F5036E9A769A0C94AD031F920F920FB661 -:100820000F9211242F933F938F939F93EF93FF93F6 -:10083000E091C101F091C201CF0101969093C201F4 -:100840008093C1010090C30102C0F695E7950A9418 -:10085000E2F7EF738091C001823019F4E03251F475 -:1008600004C0813039F4EF3329F480916F008D7F1B -:1008700080936F00F0E0E457FE4FE49121E031E017 -:10088000E29FC001E39F900D11240090C40102C0BB -:10089000969587950A94E2F790938D0080938C004B -:1008A000FF91EF919F918F913F912F910F900FBEEC -:1008B0000F901F901895FC01613061F028F06230B4 -:1008C00079F0633099F018C082818823A9F08BE217 -:1008D00092E008958281882379F08EE192E0089574 -:1008E0008281882349F085EF91E0089582818823F1 -:1008F00019F08CEC91E0089580E090E0089581E09B -:1009000008950C947F0408950C94070480911502B7 -:10091000882309F448C08091D1019091D2010097B9 -:1009200079F40E94D0239093D2018093D1018091D9 -:10093000D30190E0009771F48091D40190E00AC057 -:100940000E94DC2320910001309101012817390712 -:1009500040F329C00197880F991F880F991FFC0148 -:10096000EB52FE4F60817181828193810E94450B21 -:10097000E091D30184E0E89FF0011124EB52FE4F97 -:1009800060817181828193814FE050E00E94FD0E71 -:100990008091D30190E001966091D40170E00E94B3 -:1009A000792D8093D3010C94B203109217020C940A -:1009B000120B0895089581E0809317020C94DA04D5 -:1009C000089508958F929F92AF92BF92EF92FF92F7 -:1009D0000F931F93CF93DF93CDB7DEB7A3970FB6D7 -:1009E000F894DEBF0FBECDBF7C01FC0100811181F8 -:1009F000C8010E94CD21B8010E94E4068C01B70114 -:100A00000E948104882309F4CCC10032F0E51F075D -:100A100041F4F7018281882309F458C00E94610FD4 -:100A2000C0C10132F0E51F0741F4F701828188233C -:100A300009F44CC00E946A0FB4C10232F0E51F07EE -:100A400051F4F7018281882309F440C00E945D0FB0 -:100A50008111F0CFE3CF0332F0E51F0739F4F7013E -:100A60008281882399F10E94DB049BC10432F0E566 -:100A70001F0739F4F7018281882341F10E94D504D0 -:100A800090C10532F0E51F0749F4F7018281882300 -:100A9000E9F0809117028111F1CFE5CF0632F0E540 -:100AA0001F0739F4F7018281882381F00E94710FBA -:100AB0000AC00732F0E51F0749F4F7018281882355 -:100AC00029F00E947C0F0E94E1046BC18091170203 -:100AD000811105C0F70182818111CFC018C1003E8C -:100AE000110579F4F7018281882309F44DC00E9431 -:100AF000120B81E080931602109215021092D4011D -:100B000050C1023E110559F4F70182818823E1F1B9 -:100B10000E94120B109216021092150242C1033E5F -:100B2000110591F4F7018281882371F10E94120B63 -:100B30001092160281E0809315021092D301109258 -:100B4000D2011092D1012DC10235110559F4F701DE -:100B50008281882309F425C18091000190910101CF -:100B60000A970DC00135110579F4F70182818823B8 -:100B700009F417C180910001909101010A969093A8 -:100B80000101809300010DC14091040183E2EFE176 -:100B9000F1E0DE01119601900D928A95E1F7F701DF -:100BA000808121E030E02C0F3D1F280F311DC9014D -:100BB0002091020130910301FC01E20FF31F6081DB -:100BC000772767FD7095640F711D882777FD8095E5 -:100BD000982F0E949B2A20E030E040E451E40E94DC -:100BE000002A4B015C01F701218184E090E0821B27 -:100BF0009109BC01882777FD8095982F0E949B2A38 -:100C00009B01AC01C501B4010E9498299B01AC0174 -:100C100060E070E080E090E40E940E2C20E030E084 -:100C20004CED50E40E94AB2B4B015C01F70182813B -:100C30008823D1F04FE050E0C501B4010E94FD0EC1 -:100C4000809116028823A1F08091D40124E0829F34 -:100C5000F0011124EB52FE4F80829182A282B38276 -:100C60008F5F8093D40104C0C501B4010E94450B7D -:100C70000F3F110508F02ECF94C08091D001811153 -:100C80001FC0043130E5130709F051C00E948304EE -:100C900081E08093D0010E94D0239093CF01809374 -:100CA000CE011092C7011092C9011092C801109292 -:100CB000CB011092CA011092CD011092CC0171C0EB -:100CC0008091CE019091CF010E94DC23883C910558 -:100CD00070F48091C701E82FF0E0EE0FFF1FE8539A -:100CE000FE4F118300838F5F8093C7015AC0043881 -:100CF00080E5180721F00538104501F13AC0F701E9 -:100D00008281882341F01092C50182E01EC0043820 -:100D100030E5130759F58091C501811106C086E2BF -:100D20000E94291986E20E94F11982E01CC0043851 -:100D3000F0E51F0741F305381045D9F4F70182812A -:100D4000882331F01092C60180E20E94401A29C027 -:100D50008091C601811106C087E20E94291987E2AD -:100D60000E94F11980E20E94471A1BC00538104505 -:100D700029F381E08093C5018093C601C701A39642 -:100D80000FB6F894DEBF0FBECDBFDF91CF911F919C -:100D90000F91FF90EF90BF90AF909F908F900C9429 -:100DA000B40380E0A3960FB6F894DEBF0FBECDBFAC -:100DB000DF91CF911F910F91FF90EF90BF90AF9077 -:100DC0009F908F90089508959CE0799FF0011124E1 -:100DD00090E3899FE00DF11D1124E60FF11DEE0F48 -:100DE000FF1FE85AFD4F859194910895880F991F30 -:100DF000FC01E854FF4F859194910895880F991F45 -:100E0000FC01E85CFD4F8591949108950F931F9329 -:100E1000CF93DF93EC01811521E39207A0F5C11573 -:100E200080E3D80708F0D7C0C83ED105D8F4C03E4B -:100E3000D10508F007C2C83AD10578F4C53AD10502 -:100E400008F06AC0C130D10509F463C008F4F7C1E5 -:100E5000C430D10508F0F6C1F2C1CB3BD10508F48E -:100E600066C0EDC1C11590E2D90708F0AFC0C11549 -:100E700021E0D20708F0E6C1C03FD10508F4DFC188 -:100E80008E0110651FC2C03880E5D80700F5C03755 -:100E900090E5D90708F0A3C0C11520E5D20709F4F1 -:100EA000ACC050F4CE01905480319F4008F0C7C1CF -:100EB000DF708E01106A06C2C13080E5D80709F4E0 -:100EC000AEC0C43190E5D90708F4AFC0B8C1C3388B -:100ED00020E5D20709F48EC050F4C13890E5D90757 -:100EE00009F482C008F083C000E011EDEBC1C0310D -:100EF00081E5D80708F4A3C1C11597E5D90708F41F -:100F000036C1CE0190578115904108F098C1DF702D -:100F100093C101E010E0D6C1C53AD10509F494C1EE -:100F2000C63AD10509F093C102E810E4CBC1C83A32 -:100F3000D10509F48FC1C93AD10509F48EC1CA3A65 -:100F4000D10509F48DC1CB3AD10509F48CC1CC3A55 -:100F5000D10509F48BC1CD3AD10509F48AC1C03B52 -:100F6000D10509F489C1CE3AD10509F488C1CF3A37 -:100F7000D10509F487C1C13BD10509F486C1C23B43 -:100F8000D10509F485C1C33BD10509F484C1C43B33 -:100F9000D10509F483C1C53BD10509F482C1C63B23 -:100FA000D10509F481C1C73BD10509F480C1C83B13 -:100FB000D10509F47FC1C93BD10509F47EC1CA3B03 -:100FC000D10509F47DC100E014E47CC1CE019F701D -:100FD0000E94FE0678C1DD278E01106C73C1CF70B0 -:100FE000DD278E01146D6EC100E010ED6BC100E0D5 -:100FF00012ED68C100E013ED65C10E94D41C0E948F -:10100000120B0E94D9048FEF94E32CE081509040A2 -:101010002040E1F700C000000E942B2453C18091C2 -:10102000F20281608093F2024DC10E948C248111F2 -:1010300002C00E9468240E949F2490E090931D03A8 -:1010400080931C03C23080E5D80721F480911C03F3 -:10105000816086C0C43090E5D90721F480911C03DB -:1010600082607EC0C63020E5D20721F480911C0347 -:10107000846076C0C83080E5D80719F480911C03DD -:1010800027C0CA3090E5D90721F480911C03806104 -:1010900067C0CC3020E5D20721F480911C03806228 -:1010A0005FC0CE3080E5D80721F480911C038064B6 -:1010B00057C0C03190E5D90721F480911C038068A6 -:1010C0004FC0C23120E5D20729F480911C0384600F -:1010D000886046C0C33080E5D80721F480911C03A6 -:1010E0008E7F3EC0C53090E5D90721F480911C0366 -:1010F0008D7F36C0C73020E5D20721F480911C03D4 -:101100008B7F2EC0C93080E5D80719F480911C036D -:1011100026C0CB3090E5D90721F480911C038F7E47 -:101120001FC0CD3020E5D20721F480911C038F7DB4 -:1011300017C0CF3080E5D80721F480911C038F7B46 -:101140000FC0C13190E5D90721F480911C038F773E -:1011500007C0C331D04531F480911C038B7F877F5A -:1011600080931C0380911C030E94A324ABC08D2F8D -:1011700099278F70992781309105D9F49E012370AA -:10118000332702C0880F991F2A95E2F79C688E01C9 -:1011900044E0000F111F4A95E1F700271370802BE0 -:1011A000912B53E0CC0FDD1F5A95E1F7C076DD2778 -:1011B0002FC08230910531F4DC2FCC278E01016FD6 -:1011C000106A80C08330910569F4CE01837099273D -:1011D00001E010E002C0000F111F8A95E2F7C8017C -:1011E0009C680FC084309105B9F4CE0183709927B3 -:1011F00001E010E002C0000F111F8A95E2F7C8015C -:101200009A6823E0CC0FDD1F2A95E1F7C07ED770E6 -:101210008C010C2B1D2B56C08530910531F4DC2F31 -:10122000CC278E01046F106A4DC0069709F04AC0A2 -:10123000CF71DD27DC2FCC278E01106243C000E088 -:1012400010E040C08E013EC001E810E43BC003E85E -:1012500010E438C002EE14E435C009EE14E432C0E4 -:101260000AEE14E42FC005EB14E42CC006EB14E4E2 -:1012700029C007EB14E426C00CEC14E423C00DECE9 -:1012800014E420C003E815E41DC00AE815E41AC000 -:1012900002E915E417C004E915E414C001E216E4FC -:1012A00011C003E216E40EC004E216E40BC005E22E -:1012B00016E408C006E216E405C007E216E402C020 -:1012C0000AE216E4C801DF91CF911F910F910895B2 -:1012D0009CE0799FF001112490E3899FE00DF11DBE -:1012E0001124E60FF11DEE0FFF1FE85AFD4F859107 -:1012F0009491803E9105E0F4803C910558F581334E -:10130000910509F46FC048F48932910509F463C06E -:101310008A32910509F46DC072C089339105E9F0F4 -:1013200082389105D1F08533910509F44DC067C02D -:10133000833E910581F138F4803E9105B9F0823EFB -:101340009105D9F05CC0863E910561F1873E91051B -:10135000A1F155C00E94F606089520911C0320FDBE -:1013600002C021FF4CC080EE90E049C080911C0378 -:1013700080FFF9CF89E390E042C080911C0382FF97 -:101380000EC080911C0384FF03C080E090E037C052 -:1013900083EE90E034C080911C0382FFF2CF82EE96 -:1013A00090E02DC080911C0383FF0BC080911C0333 -:1013B00084FDEBCF87EE90E022C080911C0383FF79 -:1013C000F5CF86EE90E01BC080911C0385FF07C01F -:1013D00089E290E014C080911C0385FFF9CF85E37A -:1013E00090E00DC080911C0386FF07C08AE290E068 -:1013F00006C080911C0386FFF9CF81E390E00E9434 -:10140000060708950C94B603E82FF0E0E25BFE4F68 -:101410008081E82FEF70F0E082958F7021E030E05E -:10142000A90102C0440F551F8A95E2F740A3089511 -:101430000F931F93CF93DF9385B7806885BF85B7E0 -:10144000806885BFC3E0D0E001E010E0FE01E25B10 -:10145000FE4F8081E82FEF70F0E021A182958F7020 -:10146000A80102C0440F551F8A95E2F7CA01822BDA -:1014700081A38C2F0E94040A219740F78BE090E013 -:1014800061E070E0FC01EE5BFE4F2081E22FEF7027 -:10149000F0E042A122952F70DB0102C0AA0FBB1F12 -:1014A0002A95E2F79D01242B22A3019758F7DF919B -:1014B000CF911F910F910C948404EF92FF920F93A0 -:1014C0001F93CF93DF9300E212E0C3E0EE24E39496 -:1014D000F12CD5E08C2F0E94040A8BE090E040E0D4 -:1014E00050E0FC01EE5BFE4F6081E62FEF70F0E014 -:1014F00020A130E062956F7002C0359527956A95FE -:10150000E2F720FD09C09701082E02C0220F331F09 -:101510000A94E2F7422B532B019718F7F8019291A6 -:1015200082918F018417950721F051834083D093D6 -:1015300005018C2F0E94040AC15060F680910501BC -:1015400087FD2CC08150809305018F3F39F08FE9D2 -:101550009FE00197F1F700C0000020C080911E02BB -:1015600090911F02909327028093260280911C0283 -:1015700090911D02909325028093240280911A027B -:1015800090911B0290932302809322028091180273 -:101590009091190290932102809320020E94860468 -:1015A00081E0DF91CF911F910F91FF90EF9008950F -:1015B000E82FF0E0EE0FFF1FE05EFD4F808191818C -:1015C000089508950F931F93CF9308E212E0C0E0AF -:1015D000F801929182918F010E944823C80FF2E096 -:1015E00000321F07A9F78C2FCF911F910F910895FB -:1015F0000E948C24811102C00E9468240E94B124A0 -:10160000809307033E9A809171008D7F80937100D3 -:1016100082E0809390008AE18093910081E0809342 -:101620002A02089580912A02811102C00E94F80ABC -:1016300010927A0210927902809171008D7F8093CE -:101640007100809190008F738093900010923C0203 -:1016500010923B0210927302109274021092750263 -:10166000109276021092720210927102E1E5F2E09D -:10167000A1E4B2E011921192119211921D921D9269 -:1016800082E0E137F807B1F70895CF92DF92EF9249 -:10169000FF920F931F93CF93DF9320913B0222235E -:1016A00009F484C06B017C0180912A02811102C07F -:1016B0000E94F80A01E712E0C7E0D0E0A701960116 -:1016C000F80192918291729162918F010E94FC299E -:1016D000811131C0FE01EE0FFF1FEE0FFF1FEF5A09 -:1016E000FD4F1082118212821382DE01AA0FBB1FEE -:1016F000AF5BBD4F11961C921E92C730D105E9F029 -:10170000219644815581668177814083518362832C -:101710007383148215821682178212968D919C9182 -:10172000139711969C938E9313961C921E92129768 -:1017300034961296E2CF219708F680917902909123 -:101740007A02019797FD05C090937A0280937902FF -:1017500004C010927A0210927902809179029091DD -:101760007A0220917702309178022817390724F005 -:101770001092780210927702892BC1F48091710047 -:101780008D7F80937100809190008F738093900083 -:1017900010927302109274021092750210927602E7 -:1017A000109272021092710210923B02DF91CF915F -:1017B0001F910F91FF90EF90DF90CF9008951F92AF -:1017C0000F920FB60F9211244F925F926F927F92F9 -:1017D0008F929F92AF92BF92CF92DF92EF92FF9241 -:1017E0002F933F934F935F936F937F938F939F9329 -:1017F000AF93BF93CF93DF93EF93FF9380913B021F -:10180000882309F49BC1C0917902D0917A021C16F9 -:101810001D060CF093C140902B0250902C0260905A -:101820002D0270902E0220E030E0A901C301B20128 -:101830000E94A72B18160CF065C0C130D10509F421 -:1018400052C08091770290917802BE010E94792D5A -:101850007C01909378028093770280903D02909073 -:101860003E02A0903F02B090400220E030E040E80D -:101870005FE3C501B4010E94982960933D02709313 -:101880003E0280933F0290934002F701EE0FFF1F4C -:10189000EE0FFF1FEF5AFD4FA3019201608171818E -:1018A000828193810E94002A20E030E040E05EE3E4 -:1018B0000E94AB2B9B01AC01C501B4010E94A72B78 -:1018C00018168CF4C7010196BE010E94792D9093E1 -:1018D00078028093770210923D0210923E0210929D -:1018E0003F0210924002E0917702F0917802EE0FF1 -:1018F000FF1FEE0FFF1FEF5AFD4F60817181828144 -:101900009381D0C0C0907302D0907402E0907502B1 -:10191000F090760220E030E0A901C701B6010E94F4 -:10192000FC292197882309F4A2C0FE01EE0FFF1FB6 -:10193000EE0FFF1FEF5AFD4F80809180A280B38091 -:10194000A5019401C701B6010E94FC2987FF31C09F -:10195000A501940160E070E08CED93EC0E94002AF8 -:1019600020E030E040E451E40E94002A20E030E032 -:1019700040E05FE30E94AB2B9B01AC0160E070E0B4 -:1019800080E090E40E940E2C9B01AC01C501B401E3 -:101990000E94AB2B9B01AC01C701B6010E94FC2940 -:1019A00087FF07C0A701960160E070E08CED93E42B -:1019B00039C0A5019401C701B6010E94A72B1816D2 -:1019C0000CF055C0A501940160E070E08CED93E44B -:1019D0000E94002A20E030E040E451E40E94002A06 -:1019E00020E030E040E05FE30E94AB2B9B01AC01C4 -:1019F00060E070E080E090E40E940E2C9B01AC015E -:101A0000C501B4010E94AB2B9B01AC01C701B6011B -:101A10000E94A72B18165CF5A701960160E070E004 -:101A20008CED93EC0E94002A20E030E040E451E489 -:101A30000E94002A20E030E040E05FE30E94AB2BF0 -:101A40009B01AC0160E070E080E090E40E940E2C0D -:101A50009B01AC01C701B6010E94AB2B60937302DE -:101A600070937402809375029093760213C0FE0106 -:101A7000EE0FFF1FEE0FFF1FEF5AFD4F8081918188 -:101A8000A281B3818093730290937402A093750234 -:101A9000B093760260917302709174028091750226 -:101AA0009091760220912802309129022F3F4FEF2A -:101AB000340731F02F5F3F4F3093290220932802E3 -:101AC0000E94870F6B017C0120E034E244EF51E477 -:101AD0000E94FC2987FF08C086EFC82E88E2D82E16 -:101AE00084EFE82E81E4F82E20E030E040E051E47D -:101AF000C701B6010E94AB2B9B01AC0160E074E210 -:101B000084E79BE40E94002A6B017C010E946D2AFD -:101B10007093970060939600209106013091070121 -:101B20004091080150910901C701B6010E94AB2BF9 -:101B30000E946D2A709399006093980080913C02F6 -:101B4000882309F433C1C0903702D0903802E09066 -:101B50003902F0903A0220E030E0A901C701B60155 -:101B60000E94A72B1816D4F5809128029091290283 -:101B70008F3F2FEF920729F00196909329028093CF -:101B80002802C701B6010E94870F20E030E040E044 -:101B900051E40E94AB2B9B01AC0160E074E284E74E -:101BA0009BE40E94002A6B017C010E946D2A7093C5 -:101BB00097006093960020910601309107014091B3 -:101BC000080150910901C701B6010E94AB2B0E9488 -:101BD0006D2A709399006093980008C01092970046 -:101BE0001092960010929900109298006091310224 -:101BF000709132026F5F7F4F7093320260933102B7 -:101C0000209196003091970080E090E0232BF1F036 -:101C1000C0919600D09197000E94992A6B017C0197 -:101C2000BE0180E090E00E94992A9B01AC01609186 -:101C300033027091340280913502909136020E94F5 -:101C4000002A20E03FEF4FE757E410C00E94992A96 -:101C50006B017C0120E030EE4FEF54E460913302E1 -:101C60007091340280913502909136020E94AB2B24 -:101C70009B01AC01C701B6010E94A72B87FD96C04E -:101C800080912F028F5F80932F0290E020910303B9 -:101C90003091040382179307A0F080910E038823EC -:101CA00019F010922F020DC0809171008D7F8093EA -:101CB0007100809190008F738093900010923C028D -:101CC0007DC080913002C0912F02811128C0C09048 -:101CD0000803D0900903E0900A03F0900B0320E082 -:101CE00030E0A901C701B6010E94A72B1816BCF469 -:101CF00081E08093300210923702109238021092E5 -:101D0000390210923A02C0923302D0923402E09229 -:101D10003502F0923602C150C0932F0243C0109298 -:101D200030021092290210922802E0910503F091EE -:101D3000060348E0C49FE00DF11D112480819181CC -:101D4000A281B3818093370290933802A093390225 -:101D5000B0933A0220E030E040E85EE364817581B0 -:101D6000868197810E94AB2B6B017C0180910A01D7 -:101D7000682F70E080E090E00E94992A20E030E037 -:101D800048EC52E40E94002A9B01AC01C701B60155 -:101D90000E94AB2B60933302709334028093350220 -:101DA0009093360210923202109231028091070312 -:101DB00080FD04C010923C0210923B02FF91EF9113 -:101DC000DF91CF91BF91AF919F918F917F916F9153 -:101DD0005F914F913F912F91FF90EF90DF90CF90C7 -:101DE000BF90AF909F908F907F906F905F904F903B -:101DF0000F900FBE0F901F901895CF92DF92EF9229 -:101E0000FF92CF93DF936B017C01EA0180912A025C -:101E1000811102C00E94F80A8091070380FF46C02A -:101E20008091790290917A0208970CF03FC08091DE -:101E300071008D7F8093710080913C0281110E941E -:101E4000120B81E080933B0210922902109228022B -:101E500020E030E0A901C701B6010E94A72B1816A7 -:101E6000DCF48091790290917A02FC01EE0FFF1F61 -:101E7000EE0FFF1FEF5AFD4FC082D182E282F38244 -:101E8000FC01EE0FFF1FEF5BFD4FD183C083019676 -:101E900090937A028093790280917100826080939E -:101EA000710080919000806880939000DF91CF91C5 -:101EB000FF90EF90DF90CF9008958091070381709D -:101EC0000895809107038160809307030E94B524E1 -:101ED0000C94E004809107038E7F809307030C9499 -:101EE000B52480917B0290E0019666E070E00E944C -:101EF000792D80937B02089580917B0290E0019779 -:101F000066E070E00E94792D80937B0208958F92A5 -:101F10009F92AF92BF92CF92DF92EF92FF920F9378 -:101F20001F93CF93DF936B017C01C0912802D09166 -:101F30002902BE0180E090E00E94992A4B015C01D9 -:101F4000A701960160E070E08CE594E40E94002A0D -:101F50009B01AC01C501B4010E94AB2B0E946D2A0C -:101F600020917B02233009F473C028F4222351F01E -:101F70002130E9F02CC1243009F4A0C0253009F447 -:101F8000E0C025C180E090E0A0E0BFE380930601BF -:101F900090930701A0930801B093090110922B02BE -:101FA00010922C0210922D0210922E0210C110924B -:101FB0002B0210922C0210922D0210922E026431EC -:101FC000710540F46A30710560F520E030E040E8CA -:101FD0005EE32BC0693C710508F0AAC080E090E088 -:101FE0000E94992A20E030E040EA51E40E949729BB -:101FF00020E030E044E353E40E94002A9B01AC015E -:102000000E94AB2B20E030E040E05EE30E94AB2B6F -:102010009B01AC0160E070E080E09EE30E949729A4 -:1020200044C020E030E040E05FE3C701B6010E9419 -:10203000AB2B6B017C0180E090E0A0E0BEE38093DD -:10204000060190930701A0930801B0930901BFC056 -:1020500010922B0210922C0210922D0210922E023E -:102060004AE0469F9001479F300D1124C90168EB5B -:102070007BE00E94652DBC016C5D754077FF03C05D -:10208000719561957109882777FD8095982F0E9439 -:102090009B2A2EE333EC4EE259E30E94AB2B20E067 -:1020A00030E040EC5EE30E94982960930601709353 -:1020B0000701809308019093090189C010922B02B7 -:1020C00010922C0210922D0210922E02CE018370DB -:1020D0009927892BE1F0BE016170772780E090E0BD -:1020E0000E94992A20E030E040E05EE30E94AB2BA2 -:1020F00020E030E040E45FE30E949829609306010D -:102100007093070180930801909309010CC080E04F -:1021100090E0A0E0BFE38093060190930701A093B5 -:102120000801B0930901C770DD27CD2B09F04FC01E -:1021300010920601109207011092080110920901F5 -:1021400046C010922B0210922C0210922D02109277 -:102150002E0200E010E020E03FE300930601109320 -:10216000070120930801309309016739710578F15F -:1021700080E090E00E94992A20E030E047E153E4BB -:102180000E94972920E030E04AE754E40E94002AA8 -:1021900020E030E048E452E40E94AB2B20E030E045 -:1021A00040EA51E40E94DD2A0E94682A660F771FE8 -:1021B000660F771FFB01EE5AFE4F2081318142816D -:1021C0005381C701B6010E94AB2B6B017C01C70193 -:1021D000B601DF91CF911F910F91FF90EF90DF90AB -:1021E000CF90BF90AF909F908F90089580918C0278 -:1021F0000895CF93DF9300D01F92CDB7DEB79C0137 -:1022000080911303843019F593E099833B832A83EB -:102210009093E9008FEF9091E800815095FD06C002 -:1022200095ED9A95F1F700008111F5CF8091E800C6 -:1022300085FF0DC040E050E063E070E0CE01019604 -:102240000E945A138091E8008E778093E8000F90E7 -:102250000F900F90DF91CF910895CF93DF9300D02F -:102260001F92CDB7DEB720911303243021F522E071 -:1022700029839B838A8383E08093E9008FEF909189 -:10228000E800815095FD06C095ED9A95F1F70000A4 -:102290008111F5CF8091E80085FF0DC040E050E04E -:1022A00063E070E0CE0101960E945A138091E8002D -:1022B0008E778093E8000F900F900F90DF91CF9171 -:1022C0000895209113032430F1F422E02093E900D3 -:1022D0002FEF3091E800215035FD06C035ED3A95DD -:1022E000F1F700002111F5CF2091E80025FF0BC088 -:1022F00040E050E065E070E00E945A138091E800F1 -:102300008E778093E8000895CF93DF93EC0190914E -:102310001303943009F046C0809115018823D9F049 -:10232000809116018823B9F09093E9008FEF909186 -:10233000E800815095FD06C095E19A95F1F70000FF -:102340008111F5CF8091E80085FF2CC040E050E07E -:1023500060E170E017C081E08093E9008FEF909119 -:10236000E800815095FD06C095ED9A95F1F70000C3 -:102370008111F5CF8091E80085FF14C040E050E066 -:1023800068E070E0CE010E945A138091E8008E77D9 -:102390008093E80080E1FE01ACE7B2E001900D928D -:1023A0008A95E1F7DF91CF91089580911203811111 -:1023B00009C00E94EF140E944C158091E2008460D5 -:1023C0008093E200089510921203089508950895ED -:1023D0000C94932342E061EC81E00E94691442E096 -:1023E00061EC82E00E94691442E061EC83E00E94AB -:1023F000691442E161EC84E00C9469148091150346 -:10240000833009F455C030F4813071F0823009F422 -:102410008EC008958A3009F47AC08B3009F460C008 -:10242000893009F09CC020C080911403813A09F0E2 -:1024300096C08091E800877F8093E8008091180320 -:1024400090911903892B21F460E18CE792E003C09D -:1024500060E080E090E070E00E94A5138091E800C9 -:102460008B778093E800089580911403813209F0FE -:1024700076C08091180390911903009719F0039783 -:1024800009F06DC08091E800877F8093E80080911B -:10249000E80082FD05C0809113038111F8CF5FC071 -:1024A0008091F10080938C028091E8008B7753C07B -:1024B00080911403813A09F052C0809118039091E1 -:1024C0001903892B09F04BC08091E800877F809326 -:1024D000E8008091E80080FFFCCF8091150136C0B4 -:1024E000809114038132D9F58091180390911903DA -:1024F000892BA9F58091E800877F8093E8000E94EE -:102500009E1480911603809315010C94D41C809125 -:102510001403813221F58091E800877F8093E800E1 -:102520000E949E148091170380938D0208958091DC -:102530001403813AA1F48091E800877F8093E8003A -:102540008091E80080FFFCCF80918D028093F100A4 -:102550008091E8008E778093E8000C949E14089593 -:1025600084B7877F84BF88E10FB6F89480936000BA -:10257000109260000FBE90E080E80FB6F894809350 -:102580006100909361000FBE0E9441180E94EF14F9 -:102590000E944C158091E20084608093E200789460 -:1025A0000E94D2170E9443188BE091E00E94ED1721 -:1025B00080911303853069F40E94542380911103A4 -:1025C0008823B1F30E948223882391F30E9444134D -:1025D000EFCF0E944B18ECCF292F33272330310542 -:1025E000C9F064F42130310581F02230310509F061 -:1025F00043C08DE690E024E535E042C0213231054C -:10260000F1F02232310541F137C082E190E021EC56 -:1026100035E036C099278130910541F0823091052F -:1026200041F0892B49F5E0E5F5E005C0E2E2F5E08F -:1026300002C0E8EFF4E0849190E09F0121C0643093 -:10264000D8F4E62FF0E0EE0FFF1FE255FE4F208199 -:10265000318189E090E014C0643070F470E0FB01D7 -:10266000EE0FFF1FEA55FE4F20813181FB01EE5531 -:10267000FE4F808190E004C080E090E020E030E0F8 -:10268000FA0131832083089580E189BD82E189BD0B -:1026900009B400FEFDCF8091D8008F7D8093D800D3 -:1026A0008091E00082608093E0008091E00081FDF5 -:1026B000FCCF0895CF92DF92EF92FF920F931F937A -:1026C000CF93DF93EC018B016A010E94BD1481114D -:1026D00033C0C114D10439F0F60180819181081B07 -:1026E000190BC80FD91FE12CF12C0115110519F197 -:1026F0008091E80085FD16C08091E8008E77809378 -:10270000E800C114D10449F0F60180819181E80EFE -:10271000F91EF182E08285E00FC00E94BD1488237B -:1027200021F30AC089918093F10001501109FFEF54 -:10273000EF1AFF0ADACF80E0DF91CF911F910F915E -:10274000FF90EF90DF90CF90089520911A03309181 -:102750001B032617370748F06115710539F42091DE -:10276000E8002E772093E80001C0B90140E0611530 -:102770007105A9F120911303222309F443C02530E8 -:1027800009F442C02091E80023FD40C02091E800F8 -:1027900022FD32C02091E80020FFE9CF4091F300F4 -:1027A0002091F20030E0342BFC01CF01611571055E -:1027B00059F02830310540F481918093F100615047 -:1027C00071092F5F3F4FF1CF41E02830310509F00B -:1027D00040E02091E8002E772093E800C8CF411117 -:1027E000C9CF0AC080911303882361F0853061F05E -:1027F0008091E80083FD0AC08091E80082FFF2CF5B -:1028000080E0089582E0089583E0089581E00895CE -:1028100020911A0330911B032617370748F06115E2 -:10282000710539F42091E8002E772093E80001C06B -:10283000B901FC0120E06115710591F1809113034C -:10284000882309F440C0853009F43FC08091E80036 -:1028500083FD3DC08091E80082FD2FC08091E8009B -:1028600080FFE9CF2091F3008091F20090E0922B5D -:102870006115710559F08830910540F42491209339 -:10288000F1003196615071090196F2CF21E008976D -:1028900009F020E08091E8008E778093E800CBCFAC -:1028A0002111CCCF0AC080911303882361F08530B9 -:1028B00061F08091E80083FD0AC08091E80082FF0A -:1028C000F2CF80E0089582E0089583E0089581E0EA -:1028D0000895982F973058F59093E900981739F09C -:1028E0007091EC002091ED005091F00003C0242F76 -:1028F000762F50E021FF19C03091EB003E7F3093DE -:10290000EB003091ED003D7F3093ED003091EB0016 -:1029100031603093EB007093EC002093ED00509306 -:10292000F0002091EE0027FF07C09F5FD3CF8F708C -:102930008093E90081E0089580E008958091140378 -:1029400087FF11C08091E80082FD05C080911303CC -:102950008111F8CF11C08091E8008B770BC0809176 -:102960001303882349F08091E80080FFF8CF80911D -:10297000E8008E778093E80008952091E40030917C -:10298000E50095E64091EC00842F817040FF22C065 -:102990008091E80080FD1CC080911303882391F092 -:1029A000853091F08091EB0085FD10C04091E400EE -:1029B0005091E5004217530729F39A01915011F7FE -:1029C00084E0089582E0089583E0089581E0089509 -:1029D00080E008954091E80042FFDECF08950E9414 -:1029E0005D150E946515E0EEF0E0808181608083D6 -:1029F000E8EDF0E080818F77808319BCA7EDB0E02F -:102A00008C918E7F8C9380818F7E808310921203B5 -:102A100008950F931F93CF93DF930E945D150E943B -:102A20006515C8EDD0E088818F77888388818068BC -:102A3000888388818F7D888319BC1092130310923C -:102A40000F03109211031092100300EE10E0F80132 -:102A500080818B7F808388818160888342E060E011 -:102A600080E00E946914E1EEF0E080818E7F808337 -:102A7000E2EEF0E0808181608083808188608083E5 -:102A8000F80180818E7F8083888180618883DF91D7 -:102A9000CF911F910F910895E8EDF0E080818F7E36 -:102AA0008083E7EDF0E080818160808384E082BFF5 -:102AB00081E0809312030C940915E8EDF0E0808129 -:102AC0008E7F80831092E20008951092DA001092B7 -:102AD000E10008951F920F920FB60F9211242F93C9 -:102AE0003F934F935F936F937F938F939F93AF9396 -:102AF000BF93EF93FF938091E10082FF0BC0809121 -:102B0000E20082FF07C08091E1008B7F8093E100AB -:102B10000E94D1178091DA0080FF1FC08091D800F9 -:102B200080FF1BC08091DA008E7F8093DA00809155 -:102B3000D90080FF0DC080E189BD82E189BD09B463 -:102B400000FEFDCF81E0809313030E94D51105C0E4 -:102B500019BC109213030E94E3118091E10080FFE1 -:102B600019C08091E20080FF15C08091E2008E7F45 -:102B70008093E2008091E20080618093E200809186 -:102B8000D80080628093D80019BC85E0809313033D -:102B90000E94E7118091E10084FF30C08091E20043 -:102BA00084FF2CC080E189BD82E189BD09B400FEAB -:102BB000FDCF8091D8008F7D8093D8008091E10077 -:102BC0008F7E8093E1008091E2008F7E8093E2000F -:102BD0008091E20081608093E20080910F0388235E -:102BE00011F084E007C08091E30087FD02C081E01E -:102BF00001C083E0809313030E94E8118091E100FB -:102C000083FF29C08091E20083FF25C08091E1000D -:102C1000877F8093E10082E08093130310920F037B -:102C20008091E1008E7F8093E1008091E2008E7FB1 -:102C30008093E2008091E20080618093E20042E0B4 -:102C400060E080E00E9469148091F00088608093C9 -:102C5000F0000E94E611FF91EF91BF91AF919F911B -:102C60008F917F916F915F914F913F912F910F9035 -:102C70000FBE0F901F9018951F920F920FB60F92D4 -:102C800011242F933F934F935F936F937F938F9371 -:102C90009F93AF93BF93CF93DF93EF93FF93C09135 -:102CA000E900CF708091EC00D82FD17080FDD0E882 -:102CB0001092E9008091F000877F8093F000789473 -:102CC0000E9480161092E9008091F0008860809345 -:102CD000F000CD2BCF70C093E900FF91EF91DF9111 -:102CE000CF91BF91AF919F918F917F916F915F91A4 -:102CF0004F913F912F910F900FBE0F901F901895FD -:102D00001F93CF93DF93CDB7DEB7AA970FB6F89492 -:102D1000DEBF0FBECDBFE4E1F3E088E08E0F9091FF -:102D2000F10091938E13FBCF0E94FE118091E80079 -:102D300083FF1FC18091140390911503492F50E028 -:102D40004A30510508F015C1FA01EA5AFF4F0C94B8 -:102D50008D2D803881F0823809F00BC180911803E5 -:102D60008F708093E9008091EB0085FB882780F9C4 -:102D70001092E90006C08091100390911103911107 -:102D800082609091E800977F9093E8008093F10033 -:102D90001092F100C8C0282F2D7F09F0EAC08823C7 -:102DA00019F0823061F0E5C080911603813009F09E -:102DB000E0C0933009F080E0809311032BC0809134 -:102DC0001603811127C0809118038F7009F4D1C0B8 -:102DD0008093E9002091EB0020FF1CC0933021F488 -:102DE0008091EB00806214C09091EB009061909311 -:102DF000EB0021E030E0A90102C0440F551F8A9585 -:102E0000E2F74093EA001092EA008091EB008860BC -:102E10008093EB001092E9008091E800877F86C0E4 -:102E20008111A7C0109116031F778091E30080786D -:102E3000812B8093E3008091E800877F8093E800F6 -:102E40000E949E148091E80080FFFCCF8091E300F7 -:102E500080688093E300111102C082E001C083E02A -:102E60008093130386C08058823008F082C080911E -:102E70001603909117038C3D53E0950779F583E095 -:102E80008A838AE289834FB7F894DE01139620E0A3 -:102E90003EE051E2E32FF0E050935700E49120FF31 -:102EA00003C0E295EF703F5FEF708E2F90E0EA3045 -:102EB00010F0C79601C0C0968D939D932F5F24316B -:102EC00049F74FBF8091E800877F8093E8006AE26E -:102ED00070E0CE0101960E94A51314C0AE014F5FB1 -:102EE0005F4F609118030E94EC12BC01009709F437 -:102EF00040C09091E800977F9093E80089819A8183 -:102F00000E9408148091E8008B778093E80031C01C -:102F1000803879F58091E800877F8093E800809180 -:102F20000F038093F1008091E8008E778093E80092 -:102F30000E949E141EC081111CC0909116039230F5 -:102F4000C0F48091E800877F8093E80090930F039E -:102F50000E949E1480910F03811106C08091E300AE -:102F600087FD02C081E001C084E0809313030E94CA -:102F7000EA118091E80083FF0AC08091E800877F12 -:102F80008093E8008091EB0080628093EB00AA962A -:102F90000FB6F894DEBF0FBECDBFDF91CF911F916A -:102FA00008950895CF93809113038823A1F0C091D1 -:102FB000E900CF709091EC00892F817090FD80E83E -:102FC000C82B1092E9008091E80083FD0E948016D2 -:102FD000CF70C093E900CF910895909393028093AE -:102FE00092020895E0919202F0919302309721F0BD -:102FF0000190F081E02D099480E00895E091920223 -:10300000F0919302309721F00280F381E02D099432 -:103010000895E0919202F0919302309721F004809C -:10302000F581E02D0994089520919002309191024C -:103030008217930771F09093910280939002E09130 -:103040009202F0919302309721F00680F781E02DF3 -:103050000994089520918E0230918F028217930770 -:1030600071F090938F0280938E02E0919202F09122 -:103070009302309721F00084F185E02D09940895A2 -:1030800008950C9440180E94C7230E94180A0E94B9 -:103090004D240C94FC285F926F927F928F929F92A6 -:1030A000AF92BF92CF92DF92EF92FF920F931F9356 -:1030B000CF93DF9300D000D01F92CDB7DEB70E9430 -:1030C0005D0A9DE9C92E92E0D92E03E010E0AA2402 -:1030D000A394B12C502E802F0E94D80A4C01F601E7 -:1030E000729062906F016826792661147104A1F4D0 -:1030F0000150110978F78FEF89838A831B820E9420 -:10310000D0238160782F9D838C8349815A816B8184 -:103110008D810E94FB1838C08091F20281FD0E94CF -:10312000E10A2BE030E07501022E02C0EE0CFF1C1C -:103130000A94E2F7C70186219721892B09F1298397 -:103140005A828E209F2091E0892809F490E09B8389 -:103150000E94D0238160782F9D838C8349815A817E -:103160006B818D810E94FB18000F111FF801EB5637 -:10317000FD4F80819181E826F926F182E08204C02A -:103180002150310980F6B4CF0E9434261091940268 -:103190000E94F2171817D1F00E94F2178093940240 -:1031A0000F900F900F900F900F90DF91CF911F9184 -:1031B0000F91FF90EF90DF90CF90BF90AF909F90D6 -:1031C0008F907F906F905F900C94020A0F900F90F9 -:1031D0000F900F900F90DF91CF911F910F91FF9063 -:1031E000EF90DF90CF90BF90AF909F908F907F90A7 -:1031F0006F905F900895CF93DF93CDB7DEB72B9795 -:103200000FB6F894DEBF0FBECDBF4F8358876987D6 -:103210007A878B87DE01119686E0FD0111928A95EF -:10322000E9F785E0FE01379601900D928A95E1F766 -:1032300049815A816B817C818D819E810E94721FA0 -:103240002B960FB6F894DEBF0FBECDBFDF91CF91A6 -:103250000895CF93882309F4C2C0C82F823859F447 -:103260000E94F21781FDBBC089E30E944C220E949C -:10327000192389E30CC0833879F40E94F21780FD8A -:10328000AEC083E50E944C220E94192383E50E9470 -:103290008E22CF910C941923843859F40E94F2178E -:1032A00082FD9DC087E40E944C220E94192387E47E -:1032B000EECF8CEF8C0F813A48F48C2F0E9464285B -:1032C00081118DC08C2F0E944C22E3CF80E28C0FA5 -:1032D000883048F4C77081E001C0880FCA95EAF7CA -:1032E0000E94D222D6CF8BE58C0F833078F4C53A7A -:1032F00029F0C63A31F083E890E005C081E890E01B -:1033000002C082E890E0CF910C94141888E58C0FED -:10331000833108F064C0C83A39F1C93A41F1CA3A78 -:1033200049F1CB3A51F1CC3A59F1CD3A61F1C03B78 -:1033300069F1CE3A71F1CF3A79F1C13B81F1C23BEB -:1033400089F1C33B91F1C43B99F1C53BA1F1C63B67 -:10335000A9F1C73BB1F1C83BB9F1C93BC1F1CA3BC7 -:10336000C9F180E090E038C082EE90E035C089EE8F -:1033700090E032C08AEE90E02FC085EB90E02CC048 -:1033800086EB90E029C087EB90E026C08CEC90E0C3 -:1033900023C08DEC90E020C083E891E01DC08AE856 -:1033A00091E01AC082E991E017C084E991E014C06D -:1033B00081E292E011C083E292E00EC084E292E0EA -:1033C0000BC085E292E008C086E292E005C087E289 -:1033D00092E002C08AE292E0CF910C942A18CF9139 -:1033E0000895882309F44BC0823859F40E94F217DB -:1033F00081FF45C089E30E944C220E94192389E382 -:103400000CC0833871F40E94F21780FF38C083E546 -:103410000E944C220E94192383E50E948E220C9464 -:103420001923843859F40E94F21782FF28C087E4D8 -:103430000E944C220E94192387E4EFCF9CEF980F43 -:10344000913A58F390E2980F983050F4877091E0D9 -:1034500001C0990F8A95EAF7892F0E94D822DFCF01 -:103460009BE5980F933020F480E090E00C941418C2 -:10347000885A833120F480E090E00C942A18089553 -:10348000882321F00E94D2220C94192308958823C6 -:1034900021F00E94D8220C94192308957F928F92D4 -:1034A0009F92AF92BF92CF92DF92EF92FF920F93D3 -:1034B0001F93CF93DF931F92CDB7DEB77C01C62E4B -:1034C000772EFC01058102950F70128111110E9467 -:1034D000EF220E944522882379F0112369F080E2CF -:1034E0008C0D883048F082E00E942E220E944522F6 -:1034F00091E0D82ED92601C0D12CE72DE295EF70AE -:10350000F0E0E05AFF4F0C948D2D872D807F072D22 -:103510000F70882311F00295007F112389F000239A -:1035200009F499C180E28C0D883020F4802F0E942C -:10353000D22203C0802F0E94E2220E9419238BC155 -:103540008C2D0E94F119002309F4C3C180E28C0D77 -:10355000883020F4802F0E94D82203C0802F0E9440 -:10356000E8220E941923B5C1872D807F972D9F7077 -:10357000803211F4892F03C0892F8295807FCC205F -:1035800021F0F1E0CF16A1F01DC0112339F0002386 -:1035900019F1013009F50E9402239BC1002319F0A3 -:1035A000013009F496C189830E940523898110C1E5 -:1035B000112321F0063008F08CC10EC0053008F050 -:1035C00088C106C1112359F0002331F0F70195811C -:1035D00090FF41C19F7095830E94401A7AC10023D9 -:1035E00009F4F6C03EC1872D86958695837090E0DC -:1035F000009719F0019761F06CC1112321F08C2D17 -:10360000972D937002C080E090E00E94141861C171 -:10361000112321F08C2D972D937002C080E090E053 -:103620000E942A1856C18C2D112319F00E943C25A6 -:1036300002C00E94A4250E9429264BC1872D8370B9 -:1036400009F052C0111145C18C2D82958695877065 -:10365000880F880F9C2D9F70892E912CA12CB12C46 -:10366000082E04C0880C991CAA1CBB1C0A94D2F713 -:10367000C4FE14C00FE010E020E030E0B901A80162 -:1036800004C0440F551F661F771F8A95D2F7CB01E0 -:10369000BA01609570958095909503C060E070E0E8 -:1036A000CB01272D26952695237030E02230310559 -:1036B00069F02330310589F0682979298A299B2905 -:1036C0002130310571F00E94BA2003C1682979299F -:1036D0008A299B290E94D620FCC00E94BA20C501DD -:1036E000B4010E949E20F5C0112319F0872D81702E -:1036F00001C08695882309F4ECC08C2D82958695AF -:103700008770880F880F9C2D9F70892E912CA12C7B -:10371000B12C082E04C0880C991CAA1CBB1C0A944E -:10372000D2F7C4FE14C00FE010E020E030E0B90191 -:10373000A80104C0440F551F661F771F8A95D2F752 -:10374000CB01BA01609570958095909503C060E0BB -:1037500070E0CB01272D269526952370422F50E04F -:103760004230510569F04330510589F068297929C3 -:103770008A299B294130510571F00E949421A9C0EA -:10378000682979298A299B290E94B021A2C00E9418 -:103790009421C501B4010E9478219BC08C2D90E03A -:1037A000FC01E05EF109E531F10508F050C0E05997 -:1037B000FF4F0C948D2D0C2D0F70872D8F711123C1 -:1037C00021F00E941121802F07CF0E943221802FEB -:1037D0000E94471A7EC0112341F0053008F079C0DD -:1037E000872D8F710E94572174C0063008F071C078 -:1037F000F7CF112339F0872D8F710E94112169C0F5 -:103800001123C9F3872D8F710E94322162C01123C9 -:1038100029F0872D8F710E94FC205BC00E94F2204E -:1038200058C0112351F0172D1F71812F0E941121B3 -:1038300063E0812F0E9425224CC081E00E942E224D -:10384000023008F446C082E00E942E2242C01123BA -:1038500031F0002381F28C2D0E9429193AC00023F7 -:1038600089F28C2D0E94F11934C0472D4F706C2DB8 -:10387000C7010E945B040E9416202BC0111129C0B1 -:10388000472D4F7050E042305105B9F04CF44115CE -:10389000510581F041305105E1F40E94242919C0FD -:1038A0004330510569F04430510599F48C2D0E9444 -:1038B00076290FC00E940D290CC00E94402909C022 -:1038C0000E94532906C0472D4F706C2DC7010E94DE -:1038D000E306DD20F9F00E94212280FD1BC0F701E4 -:1038E00012820E941B220E941121C7010E94991C72 -:1038F0000E941B220F90DF91CF911F910F91FF909B -:10390000EF90DF90CF90BF90AF909F908F907F907F -:103910000C9432210F90DF91CF911F910F91FF9066 -:10392000EF90DF90CF90BF90AF909F908F907F905F -:1039300008950F931F93CF93DF93EC0188819981B2 -:103940002B813C81232BB9F09F3F11F48F3F99F0DD -:10395000CE010E94E204882371F0688179818A8116 -:103960000E9417228C010E94CC210E949320B80152 -:10397000CE010E944E1ADF91CF911F910F910895B1 -:103980000E94EF220E94FF220E94C4220E9419235B -:103990000E94DA260E94292680E090E00E941418F6 -:1039A00080E090E00C942A180E94DF220C94C01C46 -:1039B0000E940C22292F22952F7030E02C303105E7 -:1039C0004CF42A3031056CF4225031092230310593 -:1039D000A8F407C02C30310569F02F30310551F0C3 -:1039E0000DC0803F69F018F4803E40F409C0843F68 -:1039F00029F406C093FB882780F9089580E0089594 -:103A000081E00895CF93DF9300D000D01F92CDB70F -:103A1000DEB70F900F900F900F900F90DF91CF9126 -:103A20000895CF93DF9300D000D000D0CDB7DEB79C -:103A300026960FB6F894DEBF0FBECDBFDF91CF91B3 -:103A400008951F93CF93DF93C0919D0216E080915C -:103A50009E02C81799F0D0E01C9FF0011D9FF00D49 -:103A60001124E156FD4F408151816281738184812F -:103A700095810E94111D2196C770E9CFDF91CF91EA -:103A80001F9108954091CF025091D0026091D102D0 -:103A90007091D2028091D3029091D4020C94111DA6 -:103AA0008091D40282958F7009F054C08091D10228 -:103AB000882309F44FC080919D02A0919E026091DD -:103AC000CF027091D0024091D2025091D302B6E061 -:103AD0008A1709F43FC090E041155105C1F17F3FBD -:103AE00011F46F3FA1F1B89FF001B99FF00D1124BF -:103AF000E156FD4F218172132AC02081621327C035 -:103B00002281211124C0238134812417350710F428 -:103B100021503109241B350B283C3105C0F420917C -:103B2000D4022F7020612093D40226E0289FF00158 -:103B3000299FF00D1124EC55FD4F80818F7080611D -:103B400080838FEC92E00E94991C0C94211D0196B9 -:103B50008770BECF0895CF92DF92EF92FF920F93BE -:103B60001F93CF93DF93CDB7DEB762970FB6F8946C -:103B7000DEBF0FBECDBF8C0185E0F801DE011D96D2 -:103B800001900D928A95E1F7D8014C9111965C91C4 -:103B9000119712966C9112971396CD90DC90149712 -:103BA0003091CF027091D0028091D2029091D302D5 -:103BB000009709F46BC17F3F19F43F3F09F466C1D8 -:103BC000E090D102EE2009F4C0C02091D402C816C2 -:103BD000D90628F0F601E81BF90BCF0104C0809547 -:103BE00090958C0D9D1DFF24F394883C910578F0F1 -:103BF000F12C207F09F0C6C07C2DD98AC88A89891A -:103C00000E94021D8FEC92E00E94991CB1C0822F8D -:103C1000807F09F046C0751314C0341312C06111BF -:103C200010C02F7020612093D4020E94421D8FEC9F -:103C300092E00E94991C8091D402D80115968C9331 -:103C40002EC0CD2819F15F3F11F44F3FF9F0F62E49 -:103C500061111CC080919D0220919E0236E0821766 -:103C600009F45AC090E0389FF001399FF00D1124FB -:103C7000E156FD4F7181571306C07081471303C091 -:103C80007281711103C001968770E9CFF62E662309 -:103C900009F418C18091D40281608093D402F12C80 -:103CA00011C1751308C0341306C0611104C080919E -:103CB000D402D801C3C04D875E878D859E856A8BEF -:103CC0000E94D81C6A898823E1F16623D1F12091F2 -:103CD000D402822F82958F7090E0029774F08091C9 -:103CE000CF029091D00298878F831986DB86CA868F -:103CF0002C87CE0107960E94991C86E0F801AFEC54 -:103D0000B2E001900D928A95E1F70E94501D0E9449 -:103D1000421DFF24F394D6C04D875E878D859E8516 -:103D20000E940C22292F22952F7030E0223031057D -:103D30000CF0BCC09F7009F0B6C0805E883008F4FB -:103D4000C1C0C8010E94991CE4CFC816D90608F466 -:103D500053C0F601E81BF90BCF01883C910508F42C -:103D600050C0F12C7C2DD98AC88A89890E94021DF5 -:103D7000EFECF2E086E0DF011D928A95E9F70E9400 -:103D8000421DA0C0751314C0341312C0611110C0BD -:103D90008091D402F8018583C8010E94991C86E0B5 -:103DA000EFECF2E0DF011D928A95E9F7FE2C8AC064 -:103DB0004D875E878D859E856A8B0E94D81C6A8997 -:103DC000882309F4BECF662309F4BBCF2091D40227 -:103DD000822F82958F7090E002970CF48ECF8091A5 -:103DE000CF029091D0029A8389831B82DD82CC829C -:103DF0002E83CE0101967FCF809590958C0D9D1DD1 -:103E0000ACCFF62E662309F49CCF75132EC0341365 -:103E10002CC02091D40220FD1FC0822F82958F706C -:103E2000D9F0D80115962C9315978F3049F08F5FF4 -:103E3000982F9295907F822F8F70892B15968C9357 -:103E4000C8010E94991C86E0F801AFECB2E0019035 -:103E50000D928A95E1F793CF86E0F801AFECB2E0DE -:103E600001900D928A95E1F72DC04D875E878D8573 -:103E70009E850E94D81C811140CF8091D402816020 -:103E80008093D402C8010E94991C1CC0662309F4C7 -:103E900058CF4D875E878D859E850E94D81C8823CC -:103EA00009F44FCF2ACF811148CF0CC024303105FF -:103EB0000CF047CF9F7009F440CFF8019581907FB7 -:103EC00009F03BCF8F2D62960FB6F894DEBF0FBE80 -:103ED000CDBFDF91CF911F910F91FF90EF90DF90B9 -:103EE000CF9008951F93CF93DF93CDB7DEB72C9774 -:103EF0000FB6F894DEBF0FBECDBF4F8358876987DA -:103F00007A878B879C87CE0107960E94AB1D8823FA -:103F100069F08F8198852A853B85232BF1F19F3F9E -:103F200009F063C08F3F09F060C037C086E0FE0132 -:103F30003796DE01119601900D928A95E1F76F8117 -:103F40007885EA85FB85309741F17F3F11F46F3F1B -:103F500021F120919E0230E0C901019687709927D6 -:103F600040919D0250E08417950709F447C069838A -:103F70007A83FD83EC8396E0929FD001939FB00DEE -:103F80001124A156BD4FFE01319601900D929A95D4 -:103F9000E1F780939E020E94211D16E080919D0210 -:103FA00090919E028917C1F1189FC001112481567A -:103FB0009D4F0E94AB1D882379F1E0919D021E9FC9 -:103FC000F0011124E156FD4F4081518162817381DE -:103FD000848195810E94111D80919D0290E001963F -:103FE0008770992780939D02D9CF4F815885698525 -:103FF0007A858B859C850E94111DCFCF0E94D41C91 -:1040000010929E0210929D02EFECF2E086E0DF013A -:104010001D928A95E9F7C1CF2C960FB6F894DEBFB2 -:104020000FBECDBFDF91CF911F910895EF92FF9208 -:104030000F931F93CF93DF938C01009709F46CC00B -:10404000F12CEE24E394E8012196F8018491843761 -:1040500040F4843008F051C0813081F0823019F191 -:104060005BC0853709F444C0A8F19CE7980F9037EE -:1040700008F052C08F770E94F11941C00E5F1F4FA8 -:10408000FE01C49180E28C0F883048F4C7708E2DF9 -:1040900001C0880FCA95EAF70E94F22214C08C2F43 -:1040A0000E9429192DC00E5F1F4FFE01C49180E2AE -:1040B0008C0F883058F4C7708E2D01C0880FCA95B8 -:1040C000EAF70E94F8220E9419231AC08C2F0E943E -:1040D000F11916C00E5F1F4FFE01C491CC2381F071 -:1040E0008FE99FE00197F1F700C00000C150F6CFC3 -:1040F0000E5F1F4FFE01F49003C00E9429198E012C -:104100008F2D882309F49FCFEFE9FFE03197F1F776 -:1041100000C000008150F5CFDF91CF911F910F912A -:10412000FF90EF90089508956093D9027093DA029A -:104130008093DB029093DC020C94C01C0F931F93BE -:104140000091D9021091DA022091DB023091DC0259 -:10415000DC01CB01802B912BA22BB32B8093D902B6 -:104160009093DA02A093DB02B093DC021F910F91CF -:104170000C94C01C0F931F930091D9021091DA0286 -:104180002091DB023091DC02DC01CB018023912302 -:10419000A223B3238093D9029093DA02A093DB0287 -:1041A000B093DC021F910F910C94C01C0F931F93CE -:1041B0000091D9021091DA022091DB023091DC02E9 -:1041C000DC01CB0180279127A227B3278093D90256 -:1041D0009093DA02A093DB02B093DC021F910F915F -:1041E0000C94C01C1092D5021092D6021092D702E5 -:1041F0001092D8020C94C01C41E050E060E070E0E6 -:1042000004C0440F551F661F771F8A95D2F740934D -:10421000D5025093D6026093D7027093D8020C94C3 -:10422000C01C41E050E060E070E004C0440F551F46 -:10423000661F771F8A95D2F78091D5029091D6029A -:10424000A091D702B091D802482B592B6A2B7B2B17 -:104250004093D5025093D6026093D7027093D80250 -:104260000C94C01C41E050E060E070E004C0440FDA -:10427000551F661F771F8A95D2F740955095609518 -:1042800070958091D5029091D602A091D702B091FD -:10429000D802482359236A237B234093D5025093A5 -:1042A000D6026093D7027093D8020C94C01C41E0F0 -:1042B00050E060E070E004C0440F551F661F771F98 -:1042C0008A95D2F78091D5029091D602A091D7021B -:1042D000B091D802482759276A277B274093D502F7 -:1042E0005093D6026093D7027093D8020C94C01CEE -:1042F0000F931F930091D5021091D6022091D702FF -:104300003091D802DC01CB01802B912BA22BB32B57 -:104310008093D5029093D602A093D702B093D8028F -:104320001F910F910C94C01C0F931F930091D50205 -:104330001091D6022091D7023091D802DC01CB0136 -:1043400080239123A223B3238093D5029093D60296 -:10435000A093D702B093D8021F910F910C94C01C68 -:104360000F931F930091D5021091D6022091D7028E -:104370003091D802DC01CB0180279127A227B327F7 -:104380008093D5029093D602A093D702B093D8021F -:104390001F910F910C94C01C0895CF92DF92EF9261 -:1043A000FF920F931F93CF93DF938C01C090D9029C -:1043B000D090DA02E090DB02F090DC028091D5022E -:1043C0009091D602A091D702B091D802C82AD92ADA -:1043D000EA2AFB2ACFE1D0E0D701C6010C2E04C0A7 -:1043E000B695A795979587950A94D2F780FF06C052 -:1043F000B8018C2F0E946809019721F4219760F77A -:1044000080E001C08C2FDF91CF911F910F91FF9021 -:10441000EF90DF90CF900895CF93DF93EC010E944F -:10442000CD21BE010E946809DF91CF910895CB0193 -:104430000E940C2208958091DD02859585958595D1 -:1044400008958091DD028770089598E0899F90011A -:104450001124262B2093DD020C9411212091DD02E2 -:10446000809582238093DD02982F977069F430E065 -:10447000482F552747FD50952417350729F0859576 -:10448000859585950C94322108959091DD02977061 -:1044900081E009F480E0089590911501992321F0BD -:1044A00090911601911109C02091170130911801C6 -:1044B000F90132969FEF40E01FC0982F9695969590 -:1044C00096959F3050F5E0911701F0911801E90F92 -:1044D000F11D877021E030E0A90102C0440F551F93 -:1044E0008A95E2F7CA019181892B818308959F3FC4 -:1044F00039F04F5F4E3041F051915813F8CF0DC055 -:104500005111F7CF942FF5CF9F3F39F0F901E90F03 -:10451000F11D97FDFA9582830895089590911501F4 -:10452000992321F090911601911109C02091170152 -:1045300030911801F9013296205F3F4F1FC0982F2C -:104540009695969596959F30F0F4E0911701F0912D -:104550001801E90FF11D877021E030E0A90102C0C8 -:10456000440F551F8A95E2F7CA01809591818923EE -:10457000818308953196E217F30729F0908198130B -:10458000F9CF1082F7CF089581E090E0E091170114 -:10459000F0911801E80FF91F108201968031910502 -:1045A000A9F708959091F102892B8093F102089563 -:1045B00080959091F10289238093F10208951092E1 -:1045C000F10208959091F002892B8093F0020895F2 -:1045D00080959091F00289238093F00208951092C3 -:1045E000F00208959091EF02892B8093EF020895D5 -:1045F00080959091EF0289238093EF0208951092A5 -:10460000EF0208958093DE0208951092DE0208956D -:104610008091170190911801FC0131969C01205F57 -:104620003F4F80E0919191118F5FE217F307D1F72F -:104630000895E0911701F09118018091F1028083B3 -:10464000E0911701F091180190818091F002892B7F -:104650008083E0911701F091180190818091EF0221 -:10466000892B80838091DE02882361F0E09117011D -:10467000F09118019081892B80830E940823811179 -:104680001092DE0280911701909118010C94FE1790 -:1046900020E0009739F0AC01415051098423952363 -:1046A0002F5FF7CF822F089580911303843039F163 -:1046B0001092F30220E488E190E00FB6F894A895F8 -:1046C000809360000FBE2093600080E00E94C203D0 -:1046D00080E00E94020A83B7817F846083BF83B732 -:1046E000816083BF7894889583B78E7F83BF88E18C -:1046F0000FB6F89480936000109260000FBE08958A -:104700000895089580E00E94C2030E9480230E94C1 -:104710005D0A0E9481230E94E20A91E0811101C09A -:1047200090E0892F08950E94D41C80E00E94C2036B -:104730000E94FC280E94F2170C94020A1F920F920A -:104740000FB60F9211248F939F93AF93BF938091D5 -:10475000F302811113C08091F4029091F502A091AF -:10476000F602B091F7024196A11DB11D8093F402AB -:104770009093F502A093F602B093F702BF91AF9128 -:104780009F918F910F900FBE0F901F90189582E010 -:1047900084BD93E095BD9AEF97BD80936E00089518 -:1047A0002FB7F8948091F4029091F502A091F6024F -:1047B000B091F7022FBF0895CF92DF92EF92FF9250 -:1047C0000F931F932FB7F8944091F4025091F50284 -:1047D0006091F6027091F7022FBF6A017B01EE240F -:1047E000FF248C0120E030E0C016D106E206F3067B -:1047F00010F4415051099A01281B390BC9011F912E -:104800000F91FF90EF90DF90CF9008951F920F923D -:104810000FB60F9211248F939F93AF93BF93809104 -:10482000F4029091F502A091F602B091F702019680 -:10483000A11DB11D8093F4029093F502A093F6029E -:10484000B093F702BF91AF919F918F910F900FBEE0 -:104850000F901F9018950E94EF14F8942FEF87EA9D -:1048600091E6215080409040E1F700C0000087E0D1 -:1048700090EBDC0180931E0390931F03A093200311 -:10488000B09321039CE088E10FB6F894A89580933B -:1048900060000FBE90936000FFCF0E948C248111B6 -:1048A00002C00E9468240E9497248093F2020E9412 -:1048B0009F2480931C0387FB882780F9809316012F -:1048C0000E949B24682F70E080E090E00C9494207C -:1048D0006DEE7EEF80E090E00E94B32D60E082E01C -:1048E00090E00E94A12D60E083E090E00E94A12D65 -:1048F00060E084E090E00E94A12D60E085E090E01F -:104900000E94A12D60E086E090E00E94A12D6FEF53 -:1049100087E090E00C94A12D80E090E00E949B2D18 -:1049200021E08D3E9E4F09F020E0822F089582E025 -:1049300090E00C94932D83E090E00C94932D84E010 -:1049400090E00C94932D682F84E090E00C94A12DBE -:1049500086E090E00C94932D682F86E090E00C9414 -:10496000A12D87E090E00C94932D682F87E090E0D4 -:104970000C94A12D8091FA0280FF0BC060911C0164 -:1049800085E0689FB00111247595679575956795C9 -:104990002BC081FF09C060911C0185E0689FB001B8 -:1049A00011247595679520C082FF07C060911C0196 -:1049B00085E0689FB001112417C09091FB029923F4 -:1049C000D1F060911B01961788F720911C0185E0BA -:1049D000289F90011124929FA001939F500D1124B4 -:1049E00070E0CA010E94792D6038710540F46115AC -:1049F000710539F002C065E070E0862F08958FE7F9 -:104A0000089581E008958091FA0280FF08C06091C6 -:104A10001A0170E0759567957595679521C081FFBE -:104A200006C060911A0170E07595679519C082FF04 -:104A300004C060911A0170E010C09091FB029923AC -:104A4000C1F0609119019617A0F780911A01899F12 -:104A5000C001112470E00E94792D6038710528F49E -:104A60006115710521F0862F08958FE7089581E083 -:104A7000089561E070E0F4CF803F21F40E94BA24F1 -:104A8000819504C0813F29F40E94BA248093FE02DC -:104A90000895823F21F40E94BA24819504C0833F87 -:104AA00029F40E94BA248093FD020895893F19F4E5 -:104AB0000E94032505C08A3F31F40E940325819599 -:104AC0008093FF0208958B3F21F40E940325819576 -:104AD00004C08C3F29F40E940325809300030895AD -:104AE000843F21F48091FC02816017C0853F21F44E -:104AF0008091FC02826011C0863F21F48091FC020B -:104B000084600BC0873F21F48091FC02886005C05F -:104B1000883F31F48091FC0280618093FC0208950B -:104B20008D3F21F48091FA0281600BC08E3F21F409 -:104B30008091FA02826005C08F3F29F48091FA02C9 -:104B400084608093FA020895803F39F48091FE02D8 -:104B500087FF6CC01092FE0269C0813F29F48091EA -:104B6000FE021816BCF362C09091FD02823F29F448 -:104B700097FF5CC01092FD0259C0833F19F41916CB -:104B8000CCF354C0893F41F48091FF0218160CF019 -:104B90004DC01092FF024AC08A3F29F48091FF0263 -:104BA00087FF44C0F6CF8B3F39F48091000387FF25 -:104BB0003DC0109200033AC08C3F29F4809100035D -:104BC0001816BCF333C0843F21F48091FC028E7F21 -:104BD00017C0853F21F48091FC028D7F11C0863F74 -:104BE00021F48091FC028B7F0BC0873F21F48091E0 -:104BF000FC02877F05C0883F31F48091FC028F7EE4 -:104C00008093FC0213C08D3F21F48091FA028E7FC5 -:104C10000BC08E3F21F48091FA028D7F05C08F3F3B -:104C200029F48091FA028B7F8093FA028091FD0231 -:104C300081110EC08091FE0281110AC08091FF0295 -:104C4000811106C080910003811102C01092FB0205 -:104C500008958CEF92E00E9409180E94D02390934F -:104C6000F9028093F80208951F93CF93DF93809108 -:104C7000F8029091F9020E94DC23AC019091FB02B2 -:104C8000992321F020911D0130E006C020911E01E2 -:104C90008AE0289F900111244217530708F486C028 -:104CA0008091FD02C091FE02D091FF02109100039D -:104CB000811107C0C11176C0D11174C0111172C029 -:104CC00075C09F3F19F09F5F9093FB02181624F464 -:104CD0000E94BA248093FD028091FD0287FF05C0E7 -:104CE0000E94BA2481958093FD021C1624F40E9430 -:104CF000BA248093FE028091FE0287FF05C00E94C5 -:104D0000BA2481958093FE026091FD02662339F1F9 -:104D1000C091FE02CC2319F1772767FD7095872F8C -:104D2000972F0E949B2A23E333E343E35FE30E9430 -:104D3000AB2B0E94682A6093FD026C2F772767FDDA -:104D40007095872F972F0E949B2A23E333E343E339 -:104D50005FE30E94AB2B0E94682A6093FE021D163F -:104D600024F40E9403258093FF028091FF0287FFB5 -:104D700005C00E94032581958093FF02111624F43B -:104D80000E940325809300038091000387FF05C0E4 -:104D90000E940325819580930003DF91CF911F919D -:104DA0000C9429269F3F09F08ECF96CFDF91CF91AB -:104DB0001F910895ECEFF2E085E0DF011D928A95E6 -:104DC000E9F71092FB021092FA020895833081F104 -:104DD00028F4813059F08230D1F00895853009F4FB -:104DE00049C0B8F1863009F456C0089580911E017B -:104DF000262F30E0280F311D2F3F310524F4680F96 -:104E000060931E0108958FEF80931E010895809195 -:104E10001D01262F30E0280F311D2F3F310524F4CE -:104E2000680F60931D0108958FEF80931D01089511 -:104E300080911C01262F30E0280F311D2F3F3105B6 -:104E400024F4680F60931C0108958FEF80931C0178 -:104E5000089580911B01262F30E0280F311D2F3F30 -:104E6000310524F4680F60931B0108958FEF809340 -:104E70001B01089580911A01262F30E0280F311D63 -:104E80002F3F310524F4680F60931A0108958FEFC6 -:104E900080931A01089580911901262F30E0280F80 -:104EA000311D2F3F310524F4680F609319010895D7 -:104EB0008FEF809319010895833011F128F4813028 -:104EC00049F0823091F00895853081F120F18630EB -:104ED000C1F1089580911E01681720F4861B80930C -:104EE0001E01089510921E01089580911D016817FA -:104EF00020F4861B80931D01089510921D010895D2 -:104F000080911C01681720F4861B80931C01089572 -:104F100010921C01089580911B01681720F4861BD4 -:104F200080931B01089510921B01089580911A012E -:104F3000681720F4861B80931A01089510921A01B5 -:104F4000089580911901681720F4861B8093190138 -:104F500008951092190108950F931F93873208F056 -:104F600048C08E3108F08DC0803109F477C008F553 -:104F7000873009F461C068F4863009F09DC08091E3 -:104F8000F202817F8E7F8093F20281E080930203A0 -:104F900094C08B3009F489C08E3009F08DC08091A7 -:104FA000F20282FB222720F991E0922790FB82F9FE -:104FB0005EC0863109F479C060F4813109F07CC0AB -:104FC0000E94D41C9091160181E0892780931601DC -:104FD0006CC0893109F469C08B3109F06DC08091D2 -:104FE000F20281FB222720F991E0922790FB81F9C0 -:104FF0003EC0883309F459C050F4893209F457C0CF -:10500000853309F454C0873209F451C055C0833444 -:1050100009F44DC028F48A3308F44EC0895332C0D5 -:10502000883409F049C00E94D41C0E94120B0E94CF -:10503000D9040E942B2439C09091F202892F8095C7 -:10504000817080FB90F929F0966098609093F2024D -:1050500034C0997F977F9093F20227C08091F2022B -:1050600083FB222720F991E0922790FB83F980931C -:10507000F2029923D1F08091F20281608093F202D2 -:1050800014C08D5141E050E060E070E08A019B0166 -:1050900004C0000F111F221F331F8A95D2F7C901C8 -:1050A000B8010E9494200E94D41C81E006C061E0F7 -:1050B00070E080E090E0F5CF80E01F910F910895BF -:1050C00080E0089580E00895CF93C82F8091020377 -:1050D000813069F018F08230C9F184C0E091170185 -:1050E000F09118018081823209F07EC007C0E09102 -:1050F0001701F09118018081823261F48C2F0E9497 -:105100006028811104C08C2F0E94AC271DC081E053 -:1051100090E01AC08C2F0E946228811114C0C43103 -:1051200079F048F4CB3079F0C03109F061C082E009 -:105130008093020308C0C93219F0C83321F058C067 -:105140001092020355C081E0817054C0C93291F1C0 -:1051500020F5C43179F1B0F4C73009F047C08EE1D1 -:1051600080931E0182E380931D018AE080931C01DD -:1051700084E180931B0188E080931A0188E2809388 -:10518000190134C0CE51C63088F5EC2FF0E0EA5456 -:10519000FE4F80818093010329C0CE34E9F020F4D2 -:1051A000CB3421F56AE013C0C13579F0C235F1F492 -:1051B00061E00DC080910103882319F01092010372 -:1051C00015C081E08093020315C061E006C08091A4 -:1051D00001030E94E6260AC06AE0809101030E9452 -:1051E0005C2704C01092020380E004C081E002C08A -:1051F00080E0AACFCF9108950E948C24811102C033 -:105200000E9468240E94A82480931D0380FF02C08E -:10521000869501C080E00C94C20380911D03982FF5 -:105220009695292F30E0233031054CF49F5F990F7C -:105230008170892B816080931D030E94AC24809132 -:105240001D0386950C94C20380911D03982F96959B -:1052500091F09158990F8170892B80931D038E7F57 -:1052600091E009F490E080911D0390FB80F9809318 -:105270001D030E94AC2480911D0386950C94C203EB -:1052800080911D03982F909590FB80F980931D03CA -:105290000E94AC2480911D0380FF02C0869501C04E -:1052A00080E00C94C20390911D03892F86958F5F37 -:1052B0008F779170843028F4880F892B80931D0399 -:1052C00002C090931D0380911D038E7F91E009F42D -:1052D00090E080911D0390FB80F980931D030E9454 -:1052E000AC2480911D0386950C94C20320911D036C -:1052F000922F96958927982F990F822F8170892B4D -:1053000080931D038E7F91E009F490E080911D034E -:1053100090FB80F980931D030E94AC2480911D03B3 -:1053200086950C94C20380911D038695089550586C -:10533000BB27AA270ED0D1C1C2D130F0C7D120F0EF -:1053400031F49F3F11F41EF4B7C10EF4E095E7FB72 -:105350009FC1E92FD3D180F3BA176207730784077F -:10536000950718F071F49EF5EBC10EF4E0950B2E45 -:10537000BA2FA02D0B01B90190010C01CA01A001A7 -:105380001124FF27591B99F0593F50F4503E68F102 -:105390001A16F040A22F232F342F4427585FF3CF43 -:1053A000469537952795A795F0405395C9F77EF414 -:1053B0001F16BA0B620B730B840BBAF09150A1F05D -:1053C000FF0FBB1F661F771F881FC2F70EC0BA0FE3 -:1053D000621F731F841F48F4879577956795B7956B -:1053E000F7959E3F08F0B3CF9395880F08F0992763 -:1053F000EE0F97958795089527D108F481E00895D9 -:105400000CD06BC163D140F05AD130F021F45F3F32 -:1054100019F03EC1511195C14FC170D198F3992334 -:10542000C9F35523B1F3951B550BBB27AA27621768 -:105430007307840738F09F5F5F4F220F331F441FAD -:10544000AA1FA9F333D00E2E3AF0E0E830D09150E5 -:105450005040E695001CCAF729D0FE2F27D0660FD2 -:10546000771F881FBB1F261737074807AB07B0E811 -:1054700009F0BB0B802DBF01FF2793585F4F2AF027 -:105480009E3F510568F004C15CC15F3FECF3983E5C -:10549000DCF3869577956795B795F7959F5FC9F784 -:1054A000880F911D9695879597F90895E1E0660F0D -:1054B000771F881FBB1F621773078407BA0720F086 -:1054C000621B730B840BBA0BEE1F88F7E0950895EF -:1054D00004D06894B11135C1089518D188F09F5750 -:1054E00090F0B92F9927B751A0F0D1F0660F771F30 -:1054F000881F991F1AF0BA95C9F712C0B13081F010 -:105500001FD1B1E008951CC1672F782F8827B85F9D -:1055100039F0B93FCCF3869577956795B395D9F770 -:105520003EF490958095709561957F4F8F4F9F4F7A -:105530000895E89409C097FB3EF490958095709586 -:1055400061957F4F8F4F9F4F9923A9F0F92F96E9CF -:10555000BB279395F695879577956795B795F11144 -:10556000F8CFFAF4BB0F11F460FF1BC06F5F7F4FE1 -:105570008F4F9F4F16C0882311F096E911C07723F3 -:1055800021F09EE8872F762F05C0662371F096E8FC -:10559000862F70E060E02AF09A95660F771F881FCB -:1055A000DAF7880F9695879597F9089588D018F0BF -:1055B00011F08CD038F480C0C4C0E92F9FD0B0F374 -:1055C0005523C9F3E7FB6217730784079507A8F112 -:1055D00099F3E92FFF2788232AF03197660F771F69 -:1055E000881FDAF7952F5527442332F09150504009 -:1055F000220F331F441FD2F7BB27E91BF50B621B99 -:10560000730B840BB109C1F222F4620F731F841F64 -:10561000B11D31972AF0660F771F881FBB1FEFCF90 -:10562000915050405AF041F0882332F0660F771FB6 -:10563000881F91505040C1F7939530C0869577955B -:1056400067959F5FD9F7F8CF990F0008550FAA0B00 -:10565000E0E8FEEF16161706E807F907C0F0121685 -:105660001306E407F50798F0621B730B840B950B88 -:1056700039F40A2661F0232B242B252B21F40895DD -:105680000A2609F4A140A6958FEF811D811D08957A -:1056900097F99F6780E870E060E008959F3F31F0E0 -:1056A000915020F4879577956795B795880F911D50 -:1056B0009695879597F908959FEF80EC08950024BB -:1056C0000A941616170618060906089500240A9467 -:1056D00012161306140605060895092E0394000CED -:1056E00011F4882352F0BB0F40F4BF2B11F460FF7C -:1056F00004C06F5F7F4F8F4F9F4F089557FD9058A5 -:10570000440F551F59F05F3F71F04795880F97FB85 -:10571000991F61F09F3F79F087950895121613063F -:105720001406551FF2CF4695F1DF08C0161617066E -:105730001806991FF1CF86957105610508940895A3 -:10574000E894BB2766277727CB0197F908957CDF7C -:1057500008F48FEF08950BD0C0CFB1DF28F0B6DF8B -:1057600018F0952309F094CFA7CF1124EACFC6DF14 -:10577000A0F3959FD1F3950F50E0551F629FF00164 -:10578000729FBB27F00DB11D639FAA27F00DB11DBD -:10579000AA1F649F6627B00DA11D661F829F222746 -:1057A000B00DA11D621F739FB00DA11D621F839FCD -:1057B000A00D611D221F749F3327A00D611D231FA3 -:1057C000849F600D211D822F762F6A2F11249F57F1 -:1057D00050408AF0E1F088234AF0EE0FFF1FBB1F14 -:1057E000661F771F881F91505040A9F79E3F5105B3 -:1057F00070F04ECFA6CF5F3FECF3983EDCF386957A -:1058000077956795B795F795E7959F5FC1F7FE2B5D -:10581000880F911D9695879597F90895FA01EE0FD7 -:10582000FF1F30962105310599F16115710561F46D -:105830008038BFE39B0749F168949038810561F097 -:105840008038BFEF9B0741F0992342F5FF3FE10508 -:105850003105210511F1E8940894E795D901AA23AF -:1058600029F4AB2FBE2FF85FD0F310C0FF5F70F4A8 -:10587000A695E0F7F73950F019F0FF3A38F49F7722 -:105880009F930CD00F9007FC905808953EF014CFD2 -:1058900060E070E080E89FE308954FE79F775F93B3 -:1058A0004F933F932F939ED02F913F914F915F91B4 -:1058B00052DF05C019F40EF0EBCE42CFFDCE26DF4D -:1058C000C8F39638C0F707F80F92E8942BE33AEA4A -:1058D00048EB5FE74EDF0F920F920F924DB75EB726 -:1058E0000F92C0D0EAE0F1E016D04F915F91EF91B6 -:1058F000FF91E595EE1FFF1F49F0FE57E068442732 -:10590000EE0F441FFA95E1F74195550B32D00F90F9 -:1059100007FE26C00895DF93CF931F930F93FF9246 -:10592000EF92DF927B018C01689405C0DA2EEF01C3 -:105930001EDFFE01E894A591259135914591559181 -:10594000AEF3EF0106DDFE019701A801DA9479F7C5 -:10595000DF90EF90FF900F911F91CF91DF9108950D -:105960009B01AC0160E070E080E89FE349CD90CE00 -:1059700095CECCDEE8F39923D9F3940F511DBBF3F8 -:105980009150504094F059F0882332F0660F771F01 -:10599000881F91505040C1F79E3F510544F7880F32 -:1059A000911D9695879597F908955F3FACF0983EC5 -:1059B0009CF0BB27869577956795B79508F4B160FD -:1059C0009395C1F7BB0F58F711F460FFE8CF6F5FF5 -:1059D0007F4F8F4F9F4FE3CFB4CE0EF05FCE6CCE94 -:1059E000689456CE93DEC8F39923D1F3C6F3DF93C0 -:1059F000CF931F930F93FF92C92FDD2788232AF09F -:105A00002197660F771F881FDAF720E030E040E823 -:105A10005FEB9FE3883920F0803E30F021968F774E -:105A200087DCE2E3F1E003C083DCEFE5F1E073DF64 -:105A30008B01BE01EC01FB2E6F5771097595771F25 -:105A4000880B990B78DD28E132E741E35FE38FDED5 -:105A5000AF2D9801AE01FF900F911F91CF91DF9173 -:105A600078DC3BCEFA01DC01AA0FBB1F9B01AC0125 -:105A7000BF5728F422273327442750781FC0B75137 -:105A800088F4AB2F0024469537952795011CA395E4 -:105A9000D2F3002069F0220F331F441FB395DAF3CD -:105AA0000DD045CC61307105A0E88A07B94630F4C5 -:105AB0009B01AC016627772788279078309621F0E4 -:105AC00020833183428353830895AA1BBB1B51E17A -:105AD00007C0AA1FBB1FA617B70710F0A61BB70B5E -:105AE000881F991F5A95A9F780959095BC01CD0103 -:105AF000089597FB072E16F4009407D077FD09D080 -:105B00000E94652D07FC05D03EF4909581959F4F2E -:105B10000895709561957F4F0895EE0FFF1F0590D2 -:105B2000F491E02D0994F999FECF92BD81BDF89AC8 -:105B3000992780B50895A8E1B0E042E050E00C94C8 -:105B4000BB2D262FF999FECF92BD81BDF89A019702 -:105B500000B4021639F01FBA20BD0FB6F894FA9AB5 -:105B6000F99A0FBE08950196272F0E94A22D0C943A -:105B7000A12DDC01CB01FC01F999FECF06C0F2BDDD -:105B8000E1BDF89A319600B40D9241505040B8F7FB -:065B90000895F894FFCF18 -:105B9600640007000CFF0000003F64F610841161EA -:105BA600112D11F9100101DF022808140A321E0016 -:105BB60002040507090B0C0E1011131517181A1CF1 -:105BC6001D1F2123242628292B2D2F30323435372B -:105BD600393B1F0F03764F5F6F7F49694379095938 -:105BE60053633149803F5D8B803FF8BF803FCAE1F8 -:105BF600803F73ED803FCAE1803FF8BF803F5D8BF9 -:105C0600803F3149803F0000803FF16D7F3F75EA5C -:105C16007E3F4C827E3F833F7E3F84287E3F833F8C -:105C26007E3F4C827E3F75EA7E3FF16D7F3F0000EE -:105C3600803F3F4D36398F0642060C06D305660572 -:105C46007F059805B105010203040506070809004A -:00000001FF diff --git a/keyboards/planck/keymaps/kyle/compiled.hex b/keyboards/planck/keymaps/kyle/compiled.hex deleted file mode 100644 index 9226d4c19..000000000 --- a/keyboards/planck/keymaps/kyle/compiled.hex +++ /dev/null @@ -1,1449 +0,0 @@ -:100000000C9496020C94DA020C94DA020C94DA0244 -:100010000C94DA020C94DA020C94DA020C94DA02F0 -:100020000C94DA020C94DA020C9478140C944A15AD -:100030000C94AC220C94DA020C94DA020C94DA02DE -:100040000C94DA020C943C030C94DA020C94DA025D -:100050000C94DA020C9414230C94DA020C94DA0255 -:100060000C94DA020C94DA020C94DA020C94DA02A0 -:100070000C94DA020C94DA020C94DA020C94DA0290 -:100080000C94ED0A0C94DA020C94DA020C94DA0265 -:100090000C94DA020C94DA020C94DA020C94DA0270 -:1000A0000C94DA020C94DA020C94DA02B715D91522 -:1000B000C716D915C7161E164116C7169616A916C5 -:1000C00093199319C219C219011A211A771B771BA8 -:1000D0002C1A771BDC1ADC1A431B4C1B771B711B79 -:1000E000E91AE91AE91AE91AE91AE91AE91AE91AF8 -:1000F000E91AE91AE91AE91AE91AE91AE91AE91AE8 -:10010000F91A071B0E1B151B1F1B07634236B79BF3 -:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 -:100120005763BD6DEDFD753EF6177231BF000000DF -:10013000803F08000000BE922449123EABAAAA2AC2 -:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD -:1001500000000000BF000000803F00000000000819 -:100160004178D3BB4387D1133D190E3CC3BD4282B6 -:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 -:10018000FFBE01C4FF7F3F00000000000000000030 -:1001900000000000000000010204060A0F17202CD6 -:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 -:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF -:1001C0000201000000000000000000000000F1A299 -:1001D000F1A3018C028C290014001A0008001500FC -:1001E00017001C0018000C00120013002A002B003E -:1001F00004001600070009000A000B000D000E00A5 -:100200000F0033003400E1001D001B000600190040 -:100210000500110010003600370038002800E40007 -:10022000E000E200E30002202C002C00012050003E -:10023000510052004F00290014001A000900130059 -:100240000A000D000F0018001C0033002A002B00CC -:10025000040015001600170007000B00110008002D -:100260000C0012003400E1001D001B000600190004 -:1002700005000E0010003600370038002800C300CB -:10028000E000E200E30002202C002C0001205000DE -:10029000510052004F0035001E001F0020002100B9 -:1002A0002200230024002500260027002A00010048 -:1002B0000320042048120100010001002D002E003F -:1002C0002F00300031000100440045006800690043 -:1002D0006A006B006C006D006E006F000100010091 -:1002E0000100010001000100010001000120AB003C -:1002F000AA00A900AE0035021E021F022002210240 -:100300002202230224022502260227022A000100DB -:100310000320042048120712010001002D022E02C2 -:100320002F023002310201003A003B003C003D0048 -:100330003E003F0040004100420043000100835066 -:100340000100010001000220010001000100AB00DA -:10035000AA00A900AE002803540068006500200030 -:1003600050006C0061006E0063006B0020004B00C9 -:100370006500790062006F00610072006400000097 -:100380002C034F007200740068006F006C0069005D -:100390006E0065006100720020004B00650079006E -:1003A00062006F00610072006400730000000403CB -:1003B000090409026D00040100A0FA09040000010B -:1003C00003010100092111010001223F00070581FD -:1003D0000308000A090401000103010200092111B8 -:1003E000010001224D000705820308000A090402EA -:1003F000000103000000092111010001223600075D -:1004000005830308000A0904030001030000000932 -:100410002111010001223900070584031000011297 -:1004200001100100000008EDFE6060010001020003 -:100430000105010906A101050719E029E7150025B5 -:1004400001950875018102050819012905950575B1 -:10045000019102950175039101050719002977158E -:10046000002501957875018102C005010980A1016F -:10047000850216010026B7001A01002AB700751080 -:1004800095018100C0050C0901A101850316010039 -:10049000269C021A01002A9C02751095018100C059 -:1004A00005010902A1010901A10005091901290598 -:1004B00015002501950575018102950175038101DE -:1004C0000501093009311581257F950275088106DE -:1004D00009381581257F950175088106050C0A38B4 -:1004E000021581257F950175088106C0C0050109A7 -:1004F00006A101050719E029E715002501950875F2 -:1005000001810295017508810105081901290595E8 -:1005100005750191029501750391010507190029DF -:10052000FF150025FF950675088100C011241FBE28 -:10053000CFEFDAE0DEBFCDBF04B603FE24C080916A -:100540001E0390911F03A0912003B09121038730D7 -:10055000904BA740B04BB9F410921E0310921F03AA -:10056000109220031092210314BE84B7877F84BFAA -:1005700088E10FB6F89480936000109260000FBE7F -:10058000E0E0F8E3099511E0A0E0B1E0E2EBF9E585 -:1005900002C005900D92A03CB107D9F713E0A0EC82 -:1005A000B1E001C01D92AE31B107E1F70E94BE116A -:1005B0000C94D72C0C9400000895089581E00895C0 -:1005C00008950C94DD020C94DE020C94E0020E946B -:1005D000A12823E030E0281B3109220F2093C40119 -:1005E0000895282F2F9880918000211108C0877FBF -:1005F0008093800010928D0010928C001BC0886048 -:1006000080938000233019F48FEF9FEF0FC083E0B9 -:1006100090E0821B9109880F991F2FEF3FEFA901EE -:1006200002C0569547958A95E2F7CA0190938D00CE -:1006300080938C000C94E7020E94E70284E0809390 -:10064000C3011092C0010895279A2F988FEF9FEF52 -:1006500090938700809386008AE08093800089E1F0 -:10066000809381000E940A280C941C030E9424039A -:100670006E9A769A0C94DC021F920F920FB60F922C -:1006800011242F933F938F939F93EF93FF93E091C8 -:10069000C101F091C201CF0101969093C2018093F4 -:1006A000C1010090C30102C0F695E7950A94E2F7F4 -:1006B000EF738091C001823019F4E03251F404C02C -:1006C000813039F4EF3329F480916F008D7F80936E -:1006D0006F00F0E0E457FE4FE49121E031E0E29F4B -:1006E000C001E39F900D11240090C40102C09695B3 -:1006F00087950A94E2F790938D0080938C00FF9188 -:10070000EF919F918F913F912F910F900FBE0F907E -:100710001F90189581E008950C948A0308950C9415 -:10072000360380911502882309F448C08091D101D5 -:100730009091D201009779F40E94DE229093D20129 -:100740008093D1018091D30190E0009771F4809162 -:10075000D40190E00AC00E94EA2220910001309169 -:1007600001012817390740F329C00197880F991F05 -:10077000880F991FFC01EB52FE4F608171818281CD -:1007800093810E94530AE091D30184E0E89FF00135 -:100790001124EB52FE4F60817181828193814FE081 -:1007A00050E00E940B0E8091D30190E00196609181 -:1007B000D40170E00E94872C8093D3010C94E10255 -:1007C000109217020C94200A0895089581E08093F6 -:1007D00017020C94E503089508958F929F92AF92AB -:1007E000BF92EF92FF920F931F93CF93DF93CDB7FA -:1007F000DEB7A3970FB6F894DEBF0FBECDBF7C0166 -:10080000FC0100811181C8010E94DB20B8010E9417 -:10081000F2058C01B7010E948C03882309F4CCC136 -:100820000032F0E51F0741F4F7018281882309F4C3 -:1008300058C00E946F0EC0C10132F0E51F0741F49D -:10084000F7018281882309F44CC00E94780EB4C15C -:100850000232F0E51F0751F4F7018281882309F481 -:1008600040C00E946B0E8111F0CFE3CF0332F0E560 -:100870001F0739F4F7018281882399F10E94E6036A -:100880009BC10432F0E51F0739F4F7018281882308 -:1008900041F10E94E00390C10532F0E51F0749F4E1 -:1008A000F70182818823E9F0809117028111F1CF4D -:1008B000E5CF0632F0E51F0739F4F701828188237E -:1008C00081F00E947F0E0AC00732F0E51F0749F44D -:1008D000F7018281882329F00E948A0E0E94EC038E -:1008E0006BC180911702811105C0F70182818111CE -:1008F000CFC018C1003E110579F4F7018281882329 -:1009000009F44DC00E94200A81E0809316021092E3 -:1009100015021092D40150C1023E110559F4F7019D -:1009200082818823E1F10E94200A1092160210921F -:10093000150242C1033E110591F4F701828188231B -:1009400071F10E94200A1092160281E08093150234 -:100950001092D3011092D2011092D1012DC1023513 -:10096000110559F4F7018281882309F425C180918A -:100970000001909101010A970DC00135110579F42C -:10098000F7018281882309F417C1809100019091B9 -:1009900001010A9690930101809300010DC14091DD -:1009A000040183E2EFE1F1E0DE01119601900D9286 -:1009B0008A95E1F7F701808121E030E02C0F3D1F9F -:1009C000280F311DC9012091020130910301FC0162 -:1009D000E20FF31F6081772767FD7095640F711D2B -:1009E000882777FD8095982F0E94A92920E030E084 -:1009F00040E451E40E940E294B015C01F701218182 -:100A000084E090E0821B9109BC01882777FD8095E6 -:100A1000982F0E94A9299B01AC01C501B4010E9435 -:100A2000A6289B01AC0160E070E080E090E40E94A9 -:100A30001C2B20E030E04CED50E40E94B92A4B0121 -:100A40005C01F70182818823D1F04FE050E0C501BD -:100A5000B4010E940B0E809116028823A1F08091B0 -:100A6000D40124E0829FF0011124EB52FE4F8082DA -:100A70009182A282B3828F5F8093D40104C0C501AA -:100A8000B4010E94530A0F3F110508F02ECF94C005 -:100A90008091D00181111FC0043130E5130709F0A6 -:100AA00051C00E948E0381E08093D0010E94DE221B -:100AB0009093CF018093CE011092C7011092C9018B -:100AC0001092C8011092CB011092CA011092CD0170 -:100AD0001092CC0171C08091CE019091CF010E9403 -:100AE000EA22883C910570F48091C701E82FF0E07C -:100AF000EE0FFF1FE853FE4F118300838F5F80933B -:100B0000C7015AC0043880E5180721F005381045A0 -:100B100001F13AC0F7018281882341F01092C501AA -:100B200082E01EC0043830E5130759F58091C501F5 -:100B3000811106C086E20E94371886E20E94FF18E3 -:100B400082E01CC00438F0E51F0741F3053810456A -:100B5000D9F4F7018281882331F01092C60180E236 -:100B60000E944E1929C08091C601811106C087E2FA -:100B70000E94371887E20E94FF1880E20E945519F0 -:100B80001BC00538104529F381E08093C50180938F -:100B9000C601C701A3960FB6F894DEBF0FBECDBF46 -:100BA000DF91CF911F910F91FF90EF90BF90AF9089 -:100BB0009F908F900C94E30280E0A3960FB6F89478 -:100BC000DEBF0FBECDBFDF91CF911F910F91FF9080 -:100BD000EF90BF90AF909F908F90089580E090E04D -:100BE000089508959CE0799FF001112490E3899F76 -:100BF000E00DF11D1124E60FF11DEE0FFF1FEA526B -:100C0000FE4F859194910895880F991FFC01E45B34 -:100C1000FF4F859194910895880F991FFC01E4532B -:100C2000FE4F8591949108950F931F93CF93DF9377 -:100C3000EC01811521E39207A0F5C11580E3D807E7 -:100C400008F0D7C0C83ED105D8F4C03ED10508F0A1 -:100C500007C2C83AD10578F4C53AD10508F06AC090 -:100C6000C130D10509F463C008F4F7C1C430D1051F -:100C700008F0F6C1F2C1CB3BD10508F466C0EDC166 -:100C8000C11590E2D90708F0AFC0C11521E0D20725 -:100C900008F0E6C1C03FD10508F4DFC18E01106540 -:100CA0001FC2C03880E5D80700F5C03790E5D907E6 -:100CB00008F0A3C0C11520E5D20709F4ACC050F478 -:100CC000CE01905480319F4008F0C7C1DF708E0183 -:100CD000106A06C2C13080E5D80709F4AEC0C4313D -:100CE00090E5D90708F4AFC0B8C1C33820E5D207F2 -:100CF00009F48EC050F4C13890E5D90709F482C0D8 -:100D000008F083C000E011EDEBC1C03181E5D807E8 -:100D100008F4A3C1C11597E5D90708F436C1CE017F -:100D200090578115904108F098C1DF7093C101E0A0 -:100D300010E0D6C1C53AD10509F494C1C63AD1052F -:100D400009F093C102E810E4CBC1C83AD10509F417 -:100D50008FC1C93AD10509F48EC1CA3AD10509F447 -:100D60008DC1CB3AD10509F48CC1CC3AD10509F437 -:100D70008BC1CD3AD10509F48AC1C03BD10509F434 -:100D800089C1CE3AD10509F488C1CF3AD10509F419 -:100D900087C1C13BD10509F486C1C23BD10509F425 -:100DA00085C1C33BD10509F484C1C43BD10509F415 -:100DB00083C1C53BD10509F482C1C63BD10509F405 -:100DC00081C1C73BD10509F480C1C83BD10509F4F5 -:100DD0007FC1C93BD10509F47EC1CA3BD10509F4E5 -:100DE0007DC100E014E47CC1CE019F700E940C061E -:100DF00078C1DD278E01106C73C1CF70DD278E01A5 -:100E0000146D6EC100E010ED6BC100E012ED68C121 -:100E100000E013ED65C10E94E21B0E94200A0E94BF -:100E2000E4038FEF94E32CE0815090402040E1F701 -:100E300000C000000E94392353C18091F2028160FA -:100E40008093F2024DC10E949A23811102C00E9438 -:100E500076230E94AD2390E090931D0380931C03A2 -:100E6000C23080E5D80721F480911C03816086C0E0 -:100E7000C43090E5D90721F480911C0382607EC0C4 -:100E8000C63020E5D20721F480911C03846076C02F -:100E9000C83080E5D80719F480911C0327C0CA30F8 -:100EA00090E5D90721F480911C03806167C0CC30A4 -:100EB00020E5D20721F480911C0380625FC0CE3010 -:100EC00080E5D80721F480911C03806457C0C031AD -:100ED00090E5D90721F480911C0380684FC0C2318E -:100EE00020E5D20729F480911C038460886046C005 -:100EF000C33080E5D80721F480911C038E7F3EC06B -:100F0000C53090E5D90721F480911C038D7F36C050 -:100F1000C73020E5D20721F480911C038B7F2EC0BF -:100F2000C93080E5D80719F480911C0326C0CB3066 -:100F300090E5D90721F480911C038F7E1FC0CD302E -:100F400020E5D20721F480911C038F7D17C0CF309C -:100F500080E5D80721F480911C038F7B0FC0C1313D -:100F600090E5D90721F480911C038F7707C0C33126 -:100F7000D04531F480911C038B7F877F80931C03C5 -:100F800080911C030E94B123ABC08D2F99278F70D5 -:100F9000992781309105D9F49E012370332702C02F -:100FA000880F991F2A95E2F79C688E0144E0000F94 -:100FB000111F4A95E1F700271370802B912B53E006 -:100FC000CC0FDD1F5A95E1F7C076DD272FC08230A8 -:100FD000910531F4DC2FCC278E01016F106A80C09F -:100FE0008330910569F4CE018370992701E010E008 -:100FF00002C0000F111F8A95E2F7C8019C680FC05C -:1010000084309105B9F4CE018370992701E010E096 -:1010100002C0000F111F8A95E2F7C8019A6823E009 -:10102000CC0FDD1F2A95E1F7C07ED7708C010C2B09 -:101030001D2B56C08530910531F4DC2FCC278E0155 -:10104000046F106A4DC0069709F04AC0CF71DD27C2 -:10105000DC2FCC278E01106243C000E010E040C0BE -:101060008E013EC001E810E43BC003E810E438C044 -:1010700002EE14E435C009EE14E432C00AEE14E4C2 -:101080002FC005EB14E42CC006EB14E429C007EBD9 -:1010900014E426C00CEC14E423C00DEC14E420C0CE -:1010A00003E815E41DC00AE815E41AC002E915E4D6 -:1010B00017C004E915E414C001E216E411C003E20C -:1010C00016E40EC004E216E40BC005E216E408C004 -:1010D00006E216E405C007E216E402C00AE216E4DE -:1010E000C801DF91CF911F910F9108959CE0799FE6 -:1010F000F001112490E3899FE00DF11D1124E60F0A -:10110000F11DEE0FFF1FEA52FE4F85919491803E34 -:101110009105E0F4803C910558F58133910509F47F -:101120006FC048F48932910509F463C08A32910591 -:1011300009F46DC072C089339105E9F082389105D8 -:10114000D1F08533910509F44DC067C0833E910508 -:1011500081F138F4803E9105B9F0823E9105D9F0D5 -:101160005CC0863E910561F1873E9105A1F155C0B5 -:101170000E940406089520911C0320FD02C021FF57 -:101180004CC080EE90E049C080911C0380FFF9CFF5 -:1011900089E390E042C080911C0382FF0EC08091E1 -:1011A0001C0384FF03C080E090E037C083EE90E032 -:1011B00034C080911C0382FFF2CF82EE90E02DC0FC -:1011C00080911C0383FF0BC080911C0384FDEBCF37 -:1011D00087EE90E022C080911C0383FFF5CF86EE5E -:1011E00090E01BC080911C0385FF07C089E290E05E -:1011F00014C080911C0385FFF9CF85E390E00DC0FA -:1012000080911C0386FF07C08AE290E006C08091AF -:101210001C0386FFF9CF81E390E00E941406089535 -:101220000C94E502E82FF0E0E25BFE4F8081E82FAE -:10123000EF70F0E082958F7021E030E0A90102C0EC -:10124000440F551F8A95E2F740A308950F931F930B -:10125000CF93DF9385B7806885BF85B7806885BFEA -:10126000C3E0D0E001E010E0FE01E25BFE4F8081D0 -:10127000E82FEF70F0E021A182958F70A80102C0E5 -:10128000440F551F8A95E2F7CA01822B81A38C2F48 -:101290000E941209219740F78BE090E061E070E036 -:1012A000FC01EE5BFE4F2081E22FEF70F0E042A1E7 -:1012B00022952F70DB0102C0AA0FBB1F2A95E2F70F -:1012C0009D01242B22A3019758F7DF91CF911F9105 -:1012D0000F910C948F03EF92FF920F931F93CF9374 -:1012E000DF9300E212E0C3E0EE24E394F12CD5E0BA -:1012F0008C2F0E9412098BE090E040E050E0FC014E -:10130000EE5BFE4F6081E62FEF70F0E020A130E051 -:1013100062956F7002C0359527956A95E2F720FDBA -:1013200009C09701082E02C0220F331F0A94E2F76A -:10133000422B532B019718F7F801929182918F015C -:101340008417950721F051834083D09305018C2F9A -:101350000E941209C15060F68091050187FD2CC0E2 -:101360008150809305018F3F39F08FE99FE001970D -:10137000F1F700C0000020C080911E0290911F0272 -:10138000909327028093260280911C0290911D0267 -:10139000909325028093240280911A0290911B025F -:1013A0009093230280932202809118029091190257 -:1013B00090932102809320020E94910381E0DF91AB -:1013C000CF911F910F91FF90EF900895E82FF0E0DB -:1013D000EE0FFF1FE05EFD4F80819181089508951B -:1013E0000F931F93CF9308E212E0C0E0F8019291AF -:1013F00082918F010E945622C80FF2E000321F072F -:10140000A9F78C2FCF911F910F9108950E949A23D5 -:10141000811102C00E9476230E94BF23809307039C -:101420003E9A809171008D7F8093710082E080935D -:1014300090008AE18093910081E080932A020895D0 -:1014400080912A02811102C00E94060A10927A023B -:1014500010927902809171008D7F8093710080914C -:1014600090008F738093900010923C0210923B0288 -:10147000109273021092740210927502109276020A -:101480001092720210927102E1E5F2E0A1E4B2E082 -:1014900011921192119211921D921D9282E0E137E8 -:1014A000F807B1F70895CF92DF92EF92FF920F9372 -:1014B0001F93CF93DF9320913B02222309F484C032 -:1014C0006B017C0180912A02811102C00E94060AF0 -:1014D00001E712E0C7E0D0E0A7019601F801929180 -:1014E0008291729162918F010E940A29811131C00B -:1014F000FE01EE0FFF1FEE0FFF1FEF5AFD4F108290 -:10150000118212821382DE01AA0FBB1FAF5BBD4F97 -:1015100011961C921E92C730D105E9F021964481A4 -:1015200055816681778140835183628373831482FE -:1015300015821682178212968D919C91139711969F -:101540009C938E9313961C921E9212973496129629 -:10155000E2CF219708F68091790290917A02019763 -:1015600097FD05C090937A028093790204C010928F -:101570007A02109279028091790290917A022091F8 -:101580007702309178022817390724F010927802F8 -:1015900010927702892BC1F4809171008D7F809326 -:1015A0007100809190008F7380939000109273026D -:1015B00010927402109275021092760210927202CA -:1015C0001092710210923B02DF91CF911F910F9107 -:1015D000FF90EF90DF90CF9008951F920F920FB67B -:1015E0000F9211244F925F926F927F928F929F92EF -:1015F000AF92BF92CF92DF92EF92FF922F933F93E1 -:101600004F935F936F937F938F939F93AF93BF930A -:10161000CF93DF93EF93FF9380913B02882309F4EC -:101620009BC1C0917902D0917A021C161D060CF064 -:1016300093C140902B0250902C0260902D0270902C -:101640002E0220E030E0A901C301B2010E94B52AB8 -:1016500018160CF065C0C130D10509F452C0809154 -:10166000770290917802BE010E94872C7C019093B2 -:1016700078028093770280903D0290903E02A09085 -:101680003F02B090400220E030E040E85FE3C50157 -:10169000B4010E94A62860933D0270933E0280939D -:1016A0003F0290934002F701EE0FFF1FEE0FFF1F66 -:1016B000EF5AFD4FA3019201608171818281938174 -:1016C0000E940E2920E030E040E05EE30E94B92A4B -:1016D0009B01AC01C501B4010E94B52A18168CF417 -:1016E000C7010196BE010E94872C909378028093D7 -:1016F000770210923D0210923E0210923F02109229 -:101700004002E0917702F0917802EE0FFF1FEE0F9A -:10171000FF1FEF5AFD4F6081718182819381D0C09C -:10172000C0907302D0907402E0907502F09076023F -:1017300020E030E0A901C701B6010E940A292197E3 -:10174000882309F4A2C0FE01EE0FFF1FEE0FFF1F5A -:10175000EF5AFD4F80809180A280B380A501940153 -:10176000C701B6010E940A2987FF31C0A501940173 -:1017700060E070E08CED93EC0E940E2920E030E0F8 -:1017800040E451E40E940E2920E030E040E05FE3B5 -:101790000E94B92A9B01AC0160E070E080E090E417 -:1017A0000E941C2B9B01AC01C501B4010E94B92A07 -:1017B0009B01AC01C701B6010E940A2987FF07C03F -:1017C000A701960160E070E08CED93E439C0A501BB -:1017D0009401C701B6010E94B52A18160CF055C035 -:1017E000A501940160E070E08CED93E40E940E2965 -:1017F00020E030E040E451E40E940E2920E030E097 -:1018000040E05FE30E94B92A9B01AC0160E070E018 -:1018100080E090E40E941C2B9B01AC01C501B40147 -:101820000E94B92A9B01AC01C701B6010E94B52AEA -:1018300018165CF5A701960160E070E08CED93EC62 -:101840000E940E2920E030E040E451E40E940E297D -:1018500020E030E040E05FE30E94B92A9B01AC0148 -:1018600060E070E080E090E40E941C2B9B01AC01E2 -:10187000C701B6010E94B92A609373027093740283 -:10188000809375029093760213C0FE01EE0FFF1F46 -:10189000EE0FFF1FEF5AFD4F80819181A281B3812E -:1018A0008093730290937402A0937502B0937602B2 -:1018B000609173027091740280917502909176022A -:1018C00020912802309129022F3F4FEF340731F049 -:1018D0002F5F3F4F30932902209328020E94950EDC -:1018E0006B017C0120E034E244EF51E40E940A29BC -:1018F00087FF08C086EFC82E88E2D82E84EFE82E36 -:1019000081E4F82E20E030E040E051E4C701B60168 -:101910000E94B92A9B01AC0160E074E284E79BE479 -:101920000E940E296B017C010E947B297093970015 -:1019300060939600209106013091070140910801C3 -:1019400050910901C701B6010E94B92A0E947B2962 -:10195000709399006093980080913C02882309F469 -:1019600033C1C0903702D0903802E0903902F09035 -:101970003A0220E030E0A901C701B6010E94B52A71 -:101980001816D4F580912802909129028F3F2FEFED -:10199000920729F001969093290280932802C701AB -:1019A000B6010E94950E20E030E040E051E40E9434 -:1019B000B92A9B01AC0160E074E284E79BE40E94D9 -:1019C0000E296B017C010E947B2970939700609324 -:1019D0009600209106013091070140910801509135 -:1019E0000901C701B6010E94B92A0E947B297093A0 -:1019F00099006093980008C010929700109296008A -:101A00001092990010929800609131027091320208 -:101A10006F5F7F4F70933202609331022091960086 -:101A20003091970080E090E0232BF1F0C091960078 -:101A3000D09197000E94A7296B017C01BE0180E034 -:101A400090E00E94A7299B01AC0160913302709144 -:101A5000340280913502909136020E940E2920E0D6 -:101A60003FEF4FE757E410C00E94A7296B017C01AC -:101A700020E030EE4FEF54E4609133027091340275 -:101A800080913502909136020E94B92A9B01AC01E7 -:101A9000C701B6010E94B52A87FD96C080912F022A -:101AA0008F5F80932F0290E0209103033091040315 -:101AB00082179307A0F080910E03882319F01092EB -:101AC0002F020DC0809171008D7F809371008091F5 -:101AD00090008F738093900010923C027DC08091A3 -:101AE0003002C0912F02811128C0C0900803D0900D -:101AF0000903E0900A03F0900B0320E030E0A90115 -:101B0000C701B6010E94B52A1816BCF481E0809383 -:101B1000300210923702109238021092390210925D -:101B20003A02C0923302D0923402E0923502F0922F -:101B30003602C150C0932F0243C01092300210925F -:101B4000290210922802E0910503F091060348E073 -:101B5000C49FE00DF11D112480819181A281B38188 -:101B60008093370290933802A0933902B0933A02DF -:101B700020E030E040E85EE36481758186819781F2 -:101B80000E94B92A6B017C0180910A01682F70E0E4 -:101B900080E090E00E94A72920E030E048EC52E489 -:101BA0000E940E299B01AC01C701B6010E94B92A0F -:101BB000609333027093340280933502909336021F -:101BC00010923202109231028091070380FD04C00E -:101BD00010923C0210923B02FF91EF91DF91CF9166 -:101BE000BF91AF919F918F917F916F915F914F9135 -:101BF0003F912F91FF90EF90DF90CF90BF90AF90EB -:101C00009F908F907F906F905F904F900F900FBE3E -:101C10000F901F901895CF92DF92EF92FF92CF9383 -:101C2000DF936B017C01EA0180912A02811102C0DD -:101C30000E94060A8091070380FF46C080917902C6 -:101C400090917A0208970CF03FC0809171008D7FCF -:101C50008093710080913C0281110E94200A81E0F2 -:101C600080933B02109229021092280220E030E07B -:101C7000A901C701B6010E94B52A1816DCF48091AB -:101C8000790290917A02FC01EE0FFF1FEE0FFF1F09 -:101C9000EF5AFD4FC082D182E282F382FC01EE0F47 -:101CA000FF1FEF5BFD4FD183C083019690937A02B3 -:101CB000809379028091710082608093710080919D -:101CC0009000806880939000DF91CF91FF90EF901B -:101CD000DF90CF90089580910703817008958091DF -:101CE00007038160809307030E94C3230C94EB03D6 -:101CF000809107038E7F809307030C94C323809108 -:101D00007B0290E0019666E070E00E94872C809351 -:101D10007B02089580917B0290E0019766E070E07D -:101D20000E94872C80937B0208958F929F92AF929E -:101D3000BF92CF92DF92EF92FF920F931F93CF93B8 -:101D4000DF936B017C01C0912802D0912902BE0172 -:101D500080E090E00E94A7294B015C01A701960159 -:101D600060E070E08CE594E40E940E299B01AC01D8 -:101D7000C501B4010E94B92A0E947B2920917B02EF -:101D8000233009F473C028F4222351F02130E9F004 -:101D90002CC1243009F4A0C0253009F4E0C025C1CD -:101DA00080E090E0A0E0BFE38093060190930701FC -:101DB000A0930801B093090110922B0210922C02FB -:101DC00010922D0210922E0210C110922B0210922E -:101DD0002C0210922D0210922E026431710540F4F3 -:101DE0006A30710560F520E030E040E85EE32BC02A -:101DF000693C710508F0AAC080E090E00E94A72924 -:101E000020E030E040EA51E40E94A52820E030E0E4 -:101E100044E353E40E940E299B01AC010E94B92ABD -:101E200020E030E040E05EE30E94B92A9B01AC0173 -:101E300060E070E080E09EE30E94A52844C020E0BE -:101E400030E040E05FE3C701B6010E94B92A6B01B0 -:101E50007C0180E090E0A0E0BEE3809306019093D7 -:101E60000701A0930801B0930901BFC010922B0293 -:101E700010922C0210922D0210922E024AE0469FE0 -:101E80009001479F300D1124C90168EB7BE00E944F -:101E9000732CBC016C5D754077FF03C07195619533 -:101EA0007109882777FD8095982F0E94A9292EE334 -:101EB00033EC4EE259E30E94B92A20E030E040ECD6 -:101EC0005EE30E94A6286093060170930701809349 -:101ED00008019093090189C010922B0210922C02E4 -:101EE00010922D0210922E02CE0183709927892B19 -:101EF000E1F0BE016170772780E090E00E94A729A1 -:101F000020E030E040E05EE30E94B92A20E030E0CB -:101F100040E45FE30E94A6286093060170930701E6 -:101F200080930801909309010CC080E090E0A0E04C -:101F3000BFE38093060190930701A0930801B0933B -:101F40000901C770DD27CD2B09F04FC010920601A3 -:101F500010920701109208011092090146C01092D8 -:101F60002B0210922C0210922D0210922E0200E0F1 -:101F700010E020E03FE30093060110930701209357 -:101F80000801309309016739710578F180E090E02C -:101F90000E94A72920E030E047E153E40E94A528F1 -:101FA00020E030E04AE754E40E940E2920E030E0CF -:101FB00048E452E40E94B92A20E030E040EA51E4CB -:101FC0000E94EB290E947629660F771F660F771F04 -:101FD000FB01EE5AFE4F2081318142815381C701BE -:101FE000B6010E94B92A6B017C01C701B601DF91DD -:101FF000CF911F910F91FF90EF90DF90CF90BF9006 -:10200000AF909F908F90089580918C020895CF9308 -:10201000DF9300D01F92CDB7DEB79C0180911303F0 -:10202000843019F593E099833B832A839093E900E8 -:102030008FEF9091E800815095FD06C095ED9A953F -:10204000F1F700008111F5CF8091E80085FF0DC008 -:1020500040E050E063E070E0CE0101960E9468121B -:102060008091E8008E778093E8000F900F900F909A -:10207000DF91CF910895CF93DF9300D01F92CDB71A -:10208000DEB720911303243021F522E029839B83BE -:102090008A8383E08093E9008FEF9091E80081507C -:1020A00095FD06C095ED9A95F1F700008111F5CFE9 -:1020B0008091E80085FF0DC040E050E063E070E0F3 -:1020C000CE0101960E9468128091E8008E7780937D -:1020D000E8000F900F900F90DF91CF91089520911D -:1020E00013032430F1F422E02093E9002FEF309124 -:1020F000E800215035FD06C035ED3A95F1F70000B6 -:102100002111F5CF2091E80025FF0BC040E050E001 -:1021100065E070E00E9468128091E8008E778093FD -:10212000E8000895CF93DF93EC019091130394306E -:1021300009F046C0809115018823D9F080911601DD -:102140008823B9F09093E9008FEF9091E8008150D7 -:1021500095FD06C095E19A95F1F700008111F5CF44 -:102160008091E80085FF2CC040E050E060E170E025 -:1021700017C081E08093E9008FEF9091E8008150D3 -:1021800095FD06C095ED9A95F1F700008111F5CF08 -:102190008091E80085FF14C040E050E068E070E006 -:1021A000CE010E9468128091E8008E778093E8004B -:1021B00080E1FE01ACE7B2E001900D928A95E1F773 -:1021C000DF91CF91089580911203811109C00E947F -:1021D000FD130E945A148091E20084608093E20013 -:1021E0000895109212030895089508950C94A12261 -:1021F00042E061EC81E00E94771342E061EC82E012 -:102200000E94771342E061EC83E00E94771342E181 -:1022100061EC84E00C94771380911503833009F40A -:1022200055C030F4813071F0823009F48EC00895C9 -:102230008A3009F47AC08B3009F460C0893009F023 -:102240009CC020C080911403813A09F096C080910F -:10225000E800877F8093E80080911803909119032C -:10226000892B21F460E18CE792E003C060E080E01C -:1022700090E070E00E94B3128091E8008B77809329 -:10228000E800089580911403813209F076C08091AE -:10229000180390911903009719F0039709F06DC086 -:1022A0008091E800877F8093E8008091E80082FDBC -:1022B00005C0809113038111F8CF5FC08091F100B8 -:1022C00080938C028091E8008B7753C08091140337 -:1022D000813A09F052C08091180390911903892B1B -:1022E00009F04BC08091E800877F8093E8008091DF -:1022F000E80080FFFCCF8091150136C08091140367 -:102300008132D9F58091180390911903892BA9F591 -:102310008091E800877F8093E8000E94AC13809151 -:102320001603809315010C94E21B809114038132F3 -:1023300021F58091E800877F8093E8000E94AC132C -:102340008091170380938D02089580911403813A40 -:10235000A1F48091E800877F8093E8008091E800F5 -:1023600080FFFCCF80918D028093F1008091E80086 -:102370008E778093E8000C94AC13089584B7877F20 -:1023800084BF88E10FB6F8948093600010926000DB -:102390000FBE90E080E80FB6F894809361009093B0 -:1023A00061000FBE0E944F170E94FD130E945A1435 -:1023B0008091E20084608093E20078940E94E016AD -:1023C0000E9451178BE091E00E94FB16809113034D -:1023D000853069F40E946222809111038823B1F351 -:1023E0000E949022882391F30E945212EFCF0E9404 -:1023F0005917ECCF292F332723303105C9F064F466 -:102400002130310581F02230310509F043C08DE6DD -:1024100090E022EB33E042C021323105F1F022326C -:10242000310541F137C082E190E02FE134E036C060 -:1024300099278130910541F08230910541F0892B37 -:1024400049F5EEEAF3E005C0E0E8F3E002C0E6E5B6 -:10245000F3E0849190E09F0121C06430D8F4E62F2E -:10246000F0E0EE0FFF1FE255FE4F2081318189E041 -:1024700090E014C0643070F470E0FB01EE0FFF1FB9 -:10248000EA55FE4F20813181FB01EE55FE4F8081E0 -:1024900090E004C080E090E020E030E0FA01318379 -:1024A0002083089580E189BD82E189BD09B400FEE1 -:1024B000FDCF8091D8008F7D8093D8008091E0007F -:1024C00082608093E0008091E00081FDFCCF089560 -:1024D000CF92DF92EF92FF920F931F93CF93DF93F0 -:1024E000EC018B016A010E94CB13811133C0C1142E -:1024F000D10439F0F60180819181081B190BC80FB6 -:10250000D91FE12CF12C0115110519F18091E8007A -:1025100085FD16C08091E8008E778093E800C11495 -:10252000D10449F0F60180819181E80EF91EF18213 -:10253000E08285E00FC00E94CB13882321F30AC0FC -:1025400089918093F10001501109FFEFEF1AFF0A02 -:10255000DACF80E0DF91CF911F910F91FF90EF9044 -:10256000DF90CF90089520911A0330911B03261716 -:10257000370748F06115710539F42091E8002E778E -:102580002093E80001C0B90140E061157105A9F18F -:1025900020911303222309F443C0253009F442C0DB -:1025A0002091E80023FD40C02091E80022FD32C0C8 -:1025B0002091E80020FFE9CF4091F3002091F20044 -:1025C00030E0342BFC01CF016115710559F0283042 -:1025D000310540F481918093F100615071092F5FC2 -:1025E0003F4FF1CF41E02830310509F040E0209124 -:1025F000E8002E772093E800C8CF4111C9CF0AC068 -:1026000080911303882361F0853061F08091E800A8 -:1026100083FD0AC08091E80082FFF2CF80E0089538 -:1026200082E0089583E0089581E0089520911A03DF -:1026300030911B032617370748F06115710539F4EF -:102640002091E8002E772093E80001C0B901FC0139 -:1026500020E06115710591F180911303882309F43D -:1026600040C0853009F43FC08091E80083FD3DC043 -:102670008091E80082FD2FC08091E80080FFE9CFC3 -:102680002091F3008091F20090E0922B611571058A -:1026900059F08830910540F424912093F10031964F -:1026A000615071090196F2CF21E0089709F020E00E -:1026B0008091E8008E778093E800CBCF2111CCCFBA -:1026C0000AC080911303882361F0853061F0809106 -:1026D000E80083FD0AC08091E80082FFF2CF80E02D -:1026E000089582E0089583E0089581E00895982F89 -:1026F000973058F59093E900981739F07091EC00F5 -:102700002091ED005091F00003C0242F762F50E06F -:1027100021FF19C03091EB003E7F3093EB003091E8 -:10272000ED003D7F3093ED003091EB003160309350 -:10273000EB007093EC002093ED005093F00020919B -:10274000EE0027FF07C09F5FD3CF8F708093E90013 -:1027500081E0089580E008958091140387FF11C0FF -:102760008091E80082FD05C0809113038111F8CFAC -:1027700011C08091E8008B770BC0809113038823F0 -:1027800049F08091E80080FFF8CF8091E8008E77D3 -:102790008093E80008952091E4003091E50095E6EB -:1027A0004091EC00842F817040FF22C08091E800AE -:1027B00080FD1CC080911303882391F0853091F037 -:1027C0008091EB0085FD10C04091E4005091E50040 -:1027D0004217530729F39A01915011F784E00895A5 -:1027E00082E0089583E0089581E0089580E00895EF -:1027F0004091E80042FFDECF08950E946B140E94D2 -:102800007314E0EEF0E0808181608083E8EDF0E019 -:1028100080818F77808319BCA7EDB0E08C918E7F8B -:102820008C9380818F7E80831092120308950F9382 -:102830001F93CF93DF930E946B140E947314C8ED13 -:10284000D0E088818F7788838881806888838881B9 -:102850008F7D888319BC1092130310920F0310927E -:1028600011031092100300EE10E0F80180818B7FBD -:10287000808388818160888342E060E080E00E94FC -:102880007713E1EEF0E080818E7F8083E2EEF0E06E -:10289000808181608083808188608083F80180816D -:1028A0008E7F8083888180618883DF91CF911F91A3 -:1028B0000F910895E8EDF0E080818F7E8083E7ED51 -:1028C000F0E080818160808384E082BF81E080933A -:1028D00012030C941714E8EDF0E080818E7F808362 -:1028E0001092E20008951092DA001092E10008952B -:1028F0001F920F920FB60F9211242F933F934F9375 -:102900005F936F937F938F939F93AF93BF93EF9357 -:10291000FF938091E10082FF0BC08091E20082FF73 -:1029200007C08091E1008B7F8093E1000E94DF1659 -:102930008091DA0080FF1FC08091D80080FF1BC00B -:102940008091DA008E7F8093DA008091D90080FF39 -:102950000DC080E189BD82E189BD09B400FEFDCFD3 -:1029600081E0809313030E94E31005C019BC10920C -:1029700013030E94F1108091E10080FF19C0809143 -:10298000E20080FF15C08091E2008E7F8093E2001C -:102990008091E20080618093E2008091D8008062A3 -:1029A0008093D80019BC85E0809313030E94F51032 -:1029B0008091E10084FF30C08091E20084FF2CC050 -:1029C00080E189BD82E189BD09B400FEFDCF80911F -:1029D000D8008F7D8093D8008091E1008F7E809316 -:1029E000E1008091E2008F7E8093E2008091E2001E -:1029F00081608093E20080910F03882311F084E0CE -:102A000007C08091E30087FD02C081E001C083E040 -:102A1000809313030E94F6108091E10083FF29C088 -:102A20008091E20083FF25C08091E100877F809341 -:102A3000E10082E08093130310920F038091E10084 -:102A40008E7F8093E1008091E2008E7F8093E20090 -:102A50008091E20080618093E20042E060E080E0EB -:102A60000E9477138091F00088608093F0000E94AC -:102A7000F410FF91EF91BF91AF919F918F917F9152 -:102A80006F915F914F913F912F910F900FBE0F90DB -:102A90001F9018951F920F920FB60F9211242F932B -:102AA0003F934F935F936F937F938F939F93AF93D6 -:102AB000BF93CF93DF93EF93FF93C091E900CF7063 -:102AC0008091EC00D82FD17080FDD0E81092E90001 -:102AD0008091F000877F8093F00078940E948E159B -:102AE0001092E9008091F00088608093F000CD2B77 -:102AF000CF70C093E900FF91EF91DF91CF91BF912B -:102B0000AF919F918F917F916F915F914F913F9185 -:102B10002F910F900FBE0F901F9018951F93CF937A -:102B2000DF93CDB7DEB7AA970FB6F894DEBF0FBE1E -:102B3000CDBFE4E1F3E088E08E0F9091F100919336 -:102B40008E13FBCF0E940C118091E80083FF1FC100 -:102B50008091140390911503492F50E04A3051059C -:102B600008F015C1FA01EA5AFF4F0C949B2C8038EB -:102B700081F0823809F00BC1809118038F70809327 -:102B8000E9008091EB0085FB882780F91092E9002D -:102B900006C0809110039091110391118260909171 -:102BA000E800977F9093E8008093F1001092F10085 -:102BB000C8C0282F2D7F09F0EAC0882319F0823081 -:102BC00061F0E5C080911603813009F0E0C09330D8 -:102BD00009F080E0809311032BC0809116038111CE -:102BE00027C0809118038F7009F4D1C08093E90049 -:102BF0002091EB0020FF1CC0933021F48091EB006A -:102C0000806214C09091EB0090619093EB0021E002 -:102C100030E0A90102C0440F551F8A95E2F74093A6 -:102C2000EA001092EA008091EB0088608093EB004C -:102C30001092E9008091E800877F86C08111A7C0CB -:102C4000109116031F778091E3008078812B809389 -:102C5000E3008091E800877F8093E8000E94AC1336 -:102C60008091E80080FFFCCF8091E3008068809332 -:102C7000E300111102C082E001C083E080931303DE -:102C800086C08058823008F082C0809116039091EF -:102C900017038C3D53E0950779F583E08A838AE238 -:102CA00089834FB7F894DE01139620E03EE051E2AD -:102CB000E32FF0E050935700E49120FF03C0E2952A -:102CC000EF703F5FEF708E2F90E0EA3010F0C79604 -:102CD00001C0C0968D939D932F5F243149F74FBF5C -:102CE0008091E800877F8093E8006AE270E0CE017F -:102CF00001960E94B31214C0AE014F5F5F4F609106 -:102D000018030E94FA11BC01009709F440C0909189 -:102D1000E800977F9093E80089819A810E941613BA -:102D20008091E8008B778093E80031C0803879F596 -:102D30008091E800877F8093E80080910F03809363 -:102D4000F1008091E8008E778093E8000E94AC1338 -:102D50001EC081111CC0909116039230C0F4809166 -:102D6000E800877F8093E80090930F030E94AC13E4 -:102D700080910F03811106C08091E30087FD02C09E -:102D800081E001C084E0809313030E94F8108091D9 -:102D9000E80083FF0AC08091E800877F8093E80005 -:102DA0008091EB0080628093EB00AA960FB6F894B6 -:102DB000DEBF0FBECDBFDF91CF911F910895089563 -:102DC000CF93809113038823A1F0C091E900CF70C5 -:102DD0009091EC00892F817090FD80E8C82B1092B3 -:102DE000E9008091E80083FD0E948E15CF70C093AA -:102DF000E900CF91089590939302809392020895F1 -:102E0000E0919202F0919302309721F00190F081CD -:102E1000E02D099480E00895E0919202F0919302F0 -:102E2000309721F00280F381E02D09940895E0911C -:102E30009202F0919302309721F00480F581E02D09 -:102E4000099408952091900230919102821793077E -:102E500071F09093910280939002E0919202F09130 -:102E60009302309721F00680F781E02D09940895B0 -:102E700020918E0230918F028217930771F0909308 -:102E80008F0280938E02E0919202F091930230972C -:102E900021F00084F185E02D0994089508950C94A3 -:102EA0004E170E94D5220E9426090E945B230C9493 -:102EB0000A285F926F927F928F929F92AF92BF92F9 -:102EC000CF92DF92EF92FF920F931F93CF93DF93F6 -:102ED00000D000D01F92CDB7DEB70E946B099DE9EC -:102EE000C92E92E0D92E03E010E0AA24A394B12CBD -:102EF000502E802F0E94E6094C01F60172906290DC -:102F00006F016826792661147104A1F4015011093A -:102F100078F78FEF89838A831B820E94DE2281608B -:102F2000782F9D838C8349815A816B818D810E948A -:102F3000091838C08091F20281FD0E94EF092BE050 -:102F400030E07501022E02C0EE0CFF1C0A94E2F77D -:102F5000C70186219721892B09F129835A828E2066 -:102F60009F2091E0892809F490E09B830E94DE2253 -:102F70008160782F9D838C8349815A816B818D81FB -:102F80000E940918000F111FF801EB56FD4F8081B8 -:102F90009181E826F926F182E08204C021503109AE -:102FA00080F6B4CF0E944225109194020E9400172F -:102FB0001817D1F00E940017809394020F900F9081 -:102FC0000F900F900F90DF91CF911F910F91FF9075 -:102FD000EF90DF90CF90BF90AF909F908F907F90B9 -:102FE0006F905F900C9410090F900F900F900F90BE -:102FF0000F90DF91CF911F910F91FF90EF90DF9095 -:10300000CF90BF90AF909F908F907F906F905F9088 -:103010000895CF93DF93CDB7DEB72B970FB6F89413 -:10302000DEBF0FBECDBF4F83588769877A878B87F6 -:10303000DE01119686E0FD0111928A95E9F785E09F -:10304000FE01379601900D928A95E1F749815A81E8 -:103050006B817C818D819E810E94801E2B960FB694 -:10306000F894DEBF0FBECDBFDF91CF910895CF930F -:10307000882309F4C2C0C82F823859F40E9400176F -:1030800081FDBBC089E30E945A210E94272289E367 -:103090000CC0833879F40E94001780FDAEC083E530 -:1030A0000E945A210E94272283E50E949C21CF91F1 -:1030B0000C942722843859F40E94001782FD9DC089 -:1030C00087E40E945A210E94272287E4EECF8CEFEA -:1030D0008C0F813A48F48C2F0E94722781118DC089 -:1030E0008C2F0E945A21E3CF80E28C0F883048F465 -:1030F000C77081E001C0880FCA95EAF70E94E021FD -:10310000D6CF8BE58C0F833078F4C53A29F0C63AD8 -:1031100031F083E890E005C081E890E002C082E8E9 -:1031200090E0CF910C94221788E58C0F833108F042 -:1031300064C0C83A39F1C93A41F1CA3A49F1CB3AC7 -:1031400051F1CC3A59F1CD3A61F1C03B69F1CE3A37 -:1031500071F1CF3A79F1C13B81F1C23B89F1C33BB7 -:1031600091F1C43B99F1C53BA1F1C63BA9F1C73B25 -:10317000B1F1C83BB9F1C93BC1F1CA3BC9F180E02B -:1031800090E038C082EE90E035C089EE90E032C029 -:103190008AEE90E02FC085EB90E02CC086EB90E0AB -:1031A00029C087EB90E026C08CEC90E023C08DEC2A -:1031B00090E020C083E891E01DC08AE891E01AC049 -:1031C00082E991E017C084E991E014C081E292E0C5 -:1031D00011C083E292E00EC084E292E00BC085E26F -:1031E00092E008C086E292E005C087E292E002C069 -:1031F0008AE292E0CF910C943817CF9108958823FA -:1032000009F44BC0823859F40E94001781FF45C071 -:1032100089E30E945A210E94272289E30CC0833847 -:1032200071F40E94001780FF38C083E50E945A2184 -:103230000E94272283E50E949C210C942722843837 -:1032400059F40E94001782FF28C087E40E945A2187 -:103250000E94272287E4EFCF9CEF980F913A58F312 -:1032600090E2980F983050F4877091E001C0990F68 -:103270008A95EAF7892F0E94E621DFCF9BE5980F18 -:10328000933020F480E090E00C942217885A833128 -:1032900020F480E090E00C9438170895882321F002 -:1032A0000E94E0210C9427220895882321F00E9497 -:1032B000E6210C94272208957F928F929F92AF92DD -:1032C000BF92CF92DF92EF92FF920F931F93CF9313 -:1032D000DF931F92CDB7DEB77C01C62E772EFC019F -:1032E000058102950F70128111110E94FD210E942B -:1032F0005321882379F0112369F080E28C0D883006 -:1033000048F082E00E943C210E94532191E0D82E97 -:10331000D92601C0D12CE72DE295EF70F0E0E05AFC -:10332000FF4F0C949B2C872D807F072D0F708823D7 -:1033300011F00295007F112389F0002309F499C14F -:1033400080E28C0D883020F4802F0E94E02103C0A1 -:10335000802F0E94F0210E9427228BC18C2D0E9479 -:10336000FF18002309F4C3C180E28C0D883020F4DB -:10337000802F0E94E62103C0802F0E94F6210E9428 -:103380002722B5C1872D807F972D9F70803211F441 -:10339000892F03C0892F8295807FCC2021F0F1E016 -:1033A000CF16A1F01DC0112339F0002319F101300F -:1033B00009F50E9410229BC1002319F0013009F485 -:1033C00096C189830E941322898110C1112321F0A3 -:1033D000063008F08CC10EC0053008F088C106C167 -:1033E000112359F0002331F0F701958190FF41C17D -:1033F0009F7095830E944E197AC1002309F4F6C08C -:103400003EC1872D86958695837090E0009719F0D0 -:10341000019761F06CC1112321F08C2D972D9370D1 -:1034200002C080E090E00E94221761C1112321F0C8 -:103430008C2D972D937002C080E090E00E94381789 -:1034400056C18C2D112319F00E944A2402C00E94FB -:10345000B2240E9437254BC1872D837009F052C0DA -:10346000111145C18C2D829586958770880F880F24 -:103470009C2D9F70892E912CA12CB12C082E04C05C -:10348000880C991CAA1CBB1C0A94D2F7C4FE14C059 -:103490000FE010E020E030E0B901A80104C0440FC3 -:1034A000551F661F771F8A95D2F7CB01BA01609529 -:1034B00070958095909503C060E070E0CB01272D5A -:1034C00026952695237030E02230310569F02330AF -:1034D000310589F0682979298A299B29213031050C -:1034E00071F00E94C81F03C1682979298A299B2984 -:1034F0000E94E41FFCC00E94C81FC501B4010E94C5 -:10350000AC1FF5C0112319F0872D817001C086957D -:10351000882309F4ECC08C2D829586958770880FDE -:10352000880F9C2D9F70892E912CA12CB12C082ED8 -:1035300004C0880C991CAA1CBB1C0A94D2F7C4FEB8 -:1035400014C00FE010E020E030E0B901A80104C091 -:10355000440F551F661F771F8A95D2F7CB01BA011A -:10356000609570958095909503C060E070E0CB0108 -:10357000272D269526952370422F50E04230510585 -:1035800069F04330510589F0682979298A299B29F6 -:103590004130510571F00E94A220A9C06829792903 -:1035A0008A299B290E94BE20A2C00E94A220C50198 -:1035B000B4010E9486209BC08C2D90E0FC01E05E4F -:1035C000F109E531F10508F050C0E059FF4F0C94C6 -:1035D0009B2C0C2D0F70872D8F71112321F00E94D1 -:1035E0001F20802F07CF0E944020802F0E94551956 -:1035F0007EC0112341F0053008F079C0872D8F710E -:103600000E94652074C0063008F071C0F7CF112306 -:1036100039F0872D8F710E941F2069C01123C9F3D3 -:10362000872D8F710E94402062C0112329F0872DC1 -:103630008F710E940A205BC00E94002058C0112395 -:1036400051F0172D1F71812F0E941F2063E0812FE1 -:103650000E9433214CC081E00E943C21023008F4DA -:1036600046C082E00E943C2142C0112331F0002379 -:1036700081F28C2D0E9437183AC0002389F28C2DDC -:103680000E94FF1834C0472D4F706C2DC7010E9457 -:10369000EE050E94241F2BC0111129C0472D4F7029 -:1036A00050E042305105B9F04CF44115510581F01C -:1036B00041305105E1F40E94322819C043305105D0 -:1036C00069F04430510599F48C2D0E9484280FC074 -:1036D0000E941B280CC00E944E2809C00E9461282D -:1036E00006C0472D4F706C2DC7010E94F105DD20EB -:1036F000F9F00E942F2180FD1BC0F70112820E9469 -:1037000029210E941F20C7010E94A71B0E94292176 -:103710000F90DF91CF911F910F91FF90EF90DF906D -:10372000CF90BF90AF909F908F907F900C9440204F -:103730000F90DF91CF911F910F91FF90EF90DF904D -:10374000CF90BF90AF909F908F907F9008950F93F0 -:103750001F93CF93DF93EC01888199812B813C816A -:10376000232BB9F09F3F11F48F3F99F0CE010E94B7 -:10377000ED03882371F0688179818A810E94252177 -:103780008C010E94DA200E94A11FB801CE010E9484 -:103790005C19DF91CF911F910F9108950E94FD2137 -:1037A0000E940D220E94D2210E9427220E94E82519 -:1037B0000E94372580E090E00E94221780E090E090 -:1037C0000C9438170E94ED210C94CE1B0E941A21F4 -:1037D000292F22952F7030E02C3031054CF42A30FF -:1037E00031056CF42250310922303105A8F407C0AC -:1037F0002C30310569F02F30310551F00DC0803F7C -:1038000069F018F4803E40F409C0843F29F406C0F2 -:1038100093FB882780F9089580E0089581E008955A -:10382000CF93DF9300D000D01F92CDB7DEB70F90BB -:103830000F900F900F900F90DF91CF910895CF933D -:10384000DF9300D000D000D0CDB7DEB726960FB6FC -:10385000F894DEBF0FBECDBFDF91CF9108951F93C7 -:10386000CF93DF93C0919D0216E080919E02C8170E -:1038700099F0D0E01C9FF0011D9FF00D1124E1563E -:10388000FD4F4081518162817381848195810E94C5 -:103890001F1C2196C770E9CFDF91CF911F9108952A -:1038A0004091CF025091D0026091D1027091D2022A -:1038B0008091D3029091D4020C941F1C8091D40269 -:1038C00082958F7009F054C08091D102882309F449 -:1038D0004FC080919D02A0919E026091CF02709195 -:1038E000D0024091D2025091D302B6E08A1709F477 -:1038F0003FC090E041155105C1F17F3F11F46F3F8A -:10390000A1F1B89FF001B99FF00D1124E156FD4FD0 -:10391000218172132AC02081621327C022812111C4 -:1039200024C0238134812417350710F42150310934 -:10393000241B350B283C3105C0F42091D4022F7094 -:1039400020612093D40226E0289FF001299FF00DEA -:103950001124EC55FD4F80818F70806180838FEC46 -:1039600092E00E94A71B0C942F1C01968770BECF7B -:103970000895CF92DF92EF92FF920F931F93CF9310 -:10398000DF93CDB7DEB762970FB6F894DEBF0FBEF8 -:10399000CDBF8C0185E0F801DE011D9601900D92EE -:1039A0008A95E1F7D8014C9111965C911197129686 -:1039B0006C9112971396CD90DC9014973091CF02B2 -:1039C0007091D0028091D2029091D302009709F4B5 -:1039D0006BC17F3F19F43F3F09F466C1E090D1020B -:1039E000EE2009F4C0C02091D402C816D90628F0F0 -:1039F000F601E81BF90BCF0104C0809590958C0D62 -:103A00009D1DFF24F394883C910578F0F12C207FD4 -:103A100009F0C6C07C2DD98AC88A89890E94101CE9 -:103A20008FEC92E00E94A71BB1C0822F807F09F02B -:103A300046C0751314C0341312C0611110C02F702A -:103A400020612093D4020E94501C8FEC92E00E94CF -:103A5000A71B8091D402D80115968C932EC0CD2837 -:103A600019F15F3F11F44F3FF9F0F62E61111CC0C0 -:103A700080919D0220919E0236E0821709F45AC07F -:103A800090E0389FF001399FF00D1124E156FD4F71 -:103A90007181571306C07081471303C07281711181 -:103AA00003C001968770E9CFF62E662309F418C18A -:103AB0008091D40281608093D402F12C11C17513DE -:103AC00008C0341306C0611104C08091D402D8012B -:103AD000C3C04D875E878D859E856A8B0E94E61BDD -:103AE0006A898823E1F16623D1F12091D402822FE3 -:103AF00082958F7090E0029774F08091CF02909140 -:103B0000D00298878F831986DB86CA862C87CE01E0 -:103B100007960E94A71B86E0F801AFECB2E0019087 -:103B20000D928A95E1F70E945E1C0E94501CFF24B2 -:103B3000F394D6C04D875E878D859E850E941A219D -:103B4000292F22952F7030E0223031050CF0BCC0B7 -:103B50009F7009F0B6C0805E883008F4C1C0C8010B -:103B60000E94A71BE4CFC816D90608F453C0F6017B -:103B7000E81BF90BCF01883C910508F450C0F12CEB -:103B80007C2DD98AC88A89890E94101CEFECF2E04A -:103B900086E0DF011D928A95E9F70E94501CA0C0C3 -:103BA000751314C0341312C0611110C08091D40277 -:103BB000F8018583C8010E94A71B86E0EFECF2E0C4 -:103BC000DF011D928A95E9F7FE2C8AC04D875E873A -:103BD0008D859E856A8B0E94E61B6A89882309F47D -:103BE000BECF662309F4BBCF2091D402822F8295E9 -:103BF0008F7090E002970CF48ECF8091CF0290915D -:103C0000D0029A8389831B82DD82CC822E83CE01EF -:103C100001967FCF809590958C0D9D1DACCFF62E93 -:103C2000662309F49CCF75132EC034132CC0209149 -:103C3000D40220FD1FC0822F82958F70D9F0D80149 -:103C400015962C9315978F3049F08F5F982F92958A -:103C5000907F822F8F70892B15968C93C8010E94BC -:103C6000A71B86E0F801AFECB2E001900D928A95B7 -:103C7000E1F793CF86E0F801AFECB2E001900D924E -:103C80008A95E1F72DC04D875E878D859E850E94C0 -:103C9000E61B811140CF8091D40281608093D402D1 -:103CA000C8010E94A71B1CC0662309F458CF4D878A -:103CB0005E878D859E850E94E61B882309F44FCF81 -:103CC0002ACF811148CF0CC0243031050CF047CFEA -:103CD0009F7009F440CFF8019581907F09F03BCFA8 -:103CE0008F2D62960FB6F894DEBF0FBECDBFDF9169 -:103CF000CF911F910F91FF90EF90DF90CF9008959B -:103D00001F93CF93DF93CDB7DEB72C970FB6F89400 -:103D1000DEBF0FBECDBF4F83588769877A878B87F9 -:103D20009C87CE0107960E94B91C882369F08F8179 -:103D300098852A853B85232BF1F19F3F09F063C0CD -:103D40008F3F09F060C037C086E0FE013796DE0184 -:103D5000119601900D928A95E1F76F817885EA8539 -:103D6000FB85309741F17F3F11F46F3F21F12091A6 -:103D70009E0230E0C90101968770992740919D020B -:103D800050E08417950709F447C069837A83FD835F -:103D9000EC8396E0929FD001939FB00D1124A15621 -:103DA000BD4FFE01319601900D929A95E1F78093F7 -:103DB0009E020E942F1C16E080919D0290919E020F -:103DC0008917C1F1189FC001112481569D4F0E948F -:103DD000B91C882379F1E0919D021E9FF001112406 -:103DE000E156FD4F408151816281738184819581CB -:103DF0000E941F1C80919D0290E001968770992778 -:103E000080939D02D9CF4F81588569857A858B85AE -:103E10009C850E941F1CCFCF0E94E21B10929E0225 -:103E200010929D02EFECF2E086E0DF011D928A9590 -:103E3000E9F7C1CF2C960FB6F894DEBF0FBECDBF09 -:103E4000DF91CF911F910895EF92FF920F931F93EF -:103E5000CF93DF938C01009709F46CC0F12CEE2412 -:103E6000E394E8012196F8018491843740F484308A -:103E700008F051C0813081F0823019F15BC0853784 -:103E800009F444C0A8F19CE7980F903708F052C09D -:103E90008F770E94FF1841C00E5F1F4FFE01C49133 -:103EA00080E28C0F883048F4C7708E2D01C0880FD7 -:103EB000CA95EAF70E94002214C08C2F0E9437187E -:103EC0002DC00E5F1F4FFE01C49180E28C0F883021 -:103ED00058F4C7708E2D01C0880FCA95EAF70E946A -:103EE00006220E9427221AC08C2F0E94FF1816C09B -:103EF0000E5F1F4FFE01C491CC2381F08FE99FE03C -:103F00000197F1F700C00000C150F6CF0E5F1F4FC0 -:103F1000FE01F49003C00E9437188E018F2D882374 -:103F200009F49FCFEFE9FFE03197F1F700C00000FF -:103F30008150F5CFDF91CF911F910F91FF90EF90BE -:103F4000089508956093D9027093DA028093DB029A -:103F50009093DC020C94CE1B0F931F930091D90217 -:103F60001091DA022091DB023091DC02DC01CB01FE -:103F7000802B912BA22BB32B8093D9029093DA0242 -:103F8000A093DB02B093DC021F910F910C94CE1B27 -:103F90000F931F930091D9021091DA022091DB0256 -:103FA0003091DC02DC01CB0180239123A223B323D7 -:103FB0008093D9029093DA02A093DB02B093DC02E3 -:103FC0001F910F910C94CE1B0F931F930091D90258 -:103FD0001091DA022091DB023091DC02DC01CB018E -:103FE00080279127A227B3278093D9029093DA02E2 -:103FF000A093DB02B093DC021F910F910C94CE1BB7 -:104000001092D5021092D6021092D7021092D802C6 -:104010000C94CE1B41E050E060E070E004C0440F1F -:10402000551F661F771F8A95D2F74093D50250938C -:10403000D6026093D7027093D8020C94CE1B41E055 -:1040400050E060E070E004C0440F551F661F771F0A -:104050008A95D2F78091D5029091D602A091D7028D -:10406000B091D802482B592B6A2B7B2B4093D50259 -:104070005093D6026093D7027093D8020C94CE1B53 -:1040800041E050E060E070E004C0440F551F661F3F -:10409000771F8A95D2F740955095609570958091DD -:1040A000D5029091D602A091D702B091D8024823B0 -:1040B00059236A237B234093D5025093D602609301 -:1040C000D7027093D8020C94CE1B41E050E060E020 -:1040D00070E004C0440F551F661F771F8A95D2F702 -:1040E0008091D5029091D602A091D702B091D802CA -:1040F000482759276A277B274093D5025093D60239 -:104100006093D7027093D8020C94CE1B0F931F9329 -:104110000091D5021091D6022091D7023091D80299 -:10412000DC01CB01802B912BA22BB32B8093D502EA -:104130009093D602A093D702B093D8021F910F910B -:104140000C94CE1B0F931F930091D5021091D602B1 -:104150002091D7023091D802DC01CB01802391233A -:10416000A223B3238093D5029093D602A093D702C3 -:10417000B093D8021F910F910C94CE1B0F931F93F5 -:104180000091D5021091D6022091D7023091D80229 -:10419000DC01CB0180279127A227B3278093D5028A -:1041A0009093D602A093D702B093D8021F910F919B -:1041B0000C94CE1B0895CF92DF92EF92FF920F9353 -:1041C0001F93CF93DF938C01C090D902D090DA0275 -:1041D000E090DB02F090DC028091D5029091D60253 -:1041E000A091D702B091D802C82AD92AEA2AFB2A7C -:1041F000CFE1D0E0D701C6010C2E04C0B695A7953B -:10420000979587950A94D2F780FF06C0B8018C2F46 -:104210000E947608019721F4219760F780E001C0A1 -:104220008C2FDF91CF911F910F91FF90EF90DF9036 -:10423000CF900895CF93DF93EC010E94DB20BE0165 -:104240000E947608DF91CF910895CB010E941A2138 -:1042500008958091DD0285958595859508958091D5 -:10426000DD028770089598E0899F90011124262B24 -:104270002093DD020C941F202091DD028095822383 -:104280008093DD02982F977069F430E0482F55270E -:1042900047FD50952417350729F085958595859517 -:1042A0000C94402008959091DD02977081E009F40C -:1042B00080E0089590911501992321F090911601C5 -:1042C000911109C02091170130911801F90132961E -:1042D0009FEF40E01FC0982F9695969596959F303A -:1042E00050F5E0911701F0911801E90FF11D877069 -:1042F00021E030E0A90102C0440F551F8A95E2F782 -:10430000CA019181892B818308959F3F39F04F5FC6 -:104310004E3041F051915813F8CF0DC05111F7CFE5 -:10432000942FF5CF9F3F39F0F901E90FF11D97FD6B -:10433000FA9582830895089590911501992321F0AB -:1043400090911601911109C0209117013091180127 -:10435000F9013296205F3F4F1FC0982F9695969592 -:1043600096959F30F0F4E0911701F0911801E90F54 -:10437000F11D877021E030E0A90102C0440F551FF4 -:104380008A95E2F7CA0180959181892381830895F6 -:104390003196E217F30729F090819813F9CF108234 -:1043A000F7CF089581E090E0E0911701F0911801B6 -:1043B000E80FF91F1082019680319105A9F7089541 -:1043C0009091F102892B8093F1020895809590914C -:1043D000F10289238093F10208951092F102089569 -:1043E0009091F002892B8093F0020895809590912E -:1043F000F00289238093F00208951092F00208954C -:104400009091EF02892B8093EF020895809590910F -:10441000EF0289238093EF0208951092EF0208952E -:104420008093DE0208951092DE02089580911701B4 -:1044300090911801FC0131969C01205F3F4F80E074 -:10444000919191118F5FE217F307D1F70895E091F1 -:104450001701F09118018091F1028083E09117011A -:10446000F091180190818091F002892B8083E09176 -:104470001701F091180190818091EF02892B8083C0 -:104480008091DE02882361F0E0911701F09118011C -:104490009081892B80830E94162281111092DE0266 -:1044A00080911701909118010C940C1720E000974F -:1044B00039F0AC0141505109842395232F5FF7CF88 -:1044C000822F089580911303843039F11092F30202 -:1044D00020E488E190E00FB6F894A89580936000FE -:1044E0000FBE2093600080E00E94F10280E00E94F5 -:1044F000100983B7817F846083BF83B7816083BFE6 -:104500007894889583B78E7F83BF88E10FB6F8943F -:1045100080936000109260000FBE08950895089582 -:1045200080E00E94F1020E948E220E946B090E948C -:104530008F220E94F00991E0811101C090E0892F43 -:1045400008950E94E21B80E00E94F1020E940A2866 -:104550000E9400170C9410091F920F920FB60F9231 -:1045600011248F939F93AF93BF938091F302811196 -:1045700013C08091F4029091F502A091F602B091DF -:10458000F7024196A11DB11D8093F4029093F502AC -:10459000A093F602B093F702BF91AF919F918F91D4 -:1045A0000F900FBE0F901F90189582E084BD93E08E -:1045B00095BD9AEF97BD80936E0008952FB7F8943C -:1045C0008091F4029091F502A091F602B091F70269 -:1045D0002FBF0895CF92DF92EF92FF920F931F9318 -:1045E0002FB7F8944091F4025091F5026091F602D1 -:1045F0007091F7022FBF6A017B01EE24FF248C012A -:1046000020E030E0C016D106E206F30610F4415077 -:1046100051099A01281B390BC9011F910F91FF9075 -:10462000EF90DF90CF9008951F920F920FB60F92E8 -:1046300011248F939F93AF93BF938091F402909135 -:10464000F502A091F602B091F7020196A11DB11DED -:104650008093F4029093F502A093F602B093F702D0 -:10466000BF91AF919F918F910F900FBE0F901F90B0 -:1046700018950E94FD13F8942FEF87EA91E62150D8 -:1046800080409040E1F700C0000087E090EBDC0143 -:1046900080931E0390931F03A0932003B0932103E4 -:1046A0009CE088E10FB6F894A895809360000FBE57 -:1046B00090936000FFCF0E949A23811102C00E9454 -:1046C00076230E94A5238093F2020E94AD2380935B -:1046D0001C0387FB882780F9809316010E94A92379 -:1046E000682F70E080E090E00C94A21F6DEE7EEFEA -:1046F00080E090E00E94C12C60E082E090E00E94A7 -:10470000AF2C60E083E090E00E94AF2C60E084E09A -:1047100090E00E94AF2C60E085E090E00E94AF2C1A -:1047200060E086E090E00E94AF2C6FEF87E090E0C1 -:104730000C94AF2C80E090E00E94A92C21E08D3EEB -:104740009E4F09F020E0822F089582E090E00C94C3 -:10475000A12C83E090E00C94A12C84E090E00C94D8 -:10476000A12C682F84E090E00C94AF2C86E090E0C0 -:104770000C94A12C682F86E090E00C94AF2C87E07D -:1047800090E00C94A12C682F87E090E00C94AF2C63 -:104790008091FA0280FF0BC060911C0185E0689F48 -:1047A000B001112475956795759567952BC081FFAC -:1047B00009C060911C0185E0689FB00111247595C6 -:1047C000679520C082FF07C060911C0185E0689F4B -:1047D000B001112417C09091FB029923D1F0609190 -:1047E0001B01961788F720911C0185E0289F9001F6 -:1047F0001124929FA001939F500D112470E0CA01D3 -:104800000E94872C6038710540F46115710539F0FC -:1048100002C065E070E0862F08958FE7089581E07B -:1048200008958091FA0280FF08C060911A0170E03B -:10483000759567957595679521C081FF06C0609154 -:104840001A0170E07595679519C082FF04C06091E8 -:104850001A0170E010C09091FB029923C1F06091A1 -:1048600019019617A0F780911A01899FC0011124A0 -:1048700070E00E94872C6038710528F4611571057D -:1048800021F0862F08958FE7089581E0089561E073 -:1048900070E0F4CF803F21F40E94C823819504C0CA -:1048A000813F29F40E94C8238093FE020895823F2D -:1048B00021F40E94C823819504C0833F29F40E94FB -:1048C000C8238093FD020895893F19F40E941124A2 -:1048D00005C08A3F31F40E94112481958093FF0224 -:1048E00008958B3F21F40E941124819504C08C3FD0 -:1048F00029F40E941124809300030895843F21F439 -:104900008091FC02816017C0853F21F48091FC02F8 -:10491000826011C0863F21F48091FC0284600BC04C -:10492000873F21F48091FC02886005C0883F31F404 -:104930008091FC0280618093FC0208958D3F21F4F8 -:104940008091FA0281600BC08E3F21F48091FA02BF -:10495000826005C08F3F29F48091FA0284608093C1 -:10496000FA020895803F39F48091FE0287FF6CC0FF -:104970001092FE0269C0813F29F48091FE02181650 -:10498000BCF362C09091FD02823F29F497FF5CC0A6 -:104990001092FD0259C0833F19F41916CCF354C08C -:1049A000893F41F48091FF0218160CF04DC010921F -:1049B000FF024AC08A3F29F48091FF0287FF44C06A -:1049C000F6CF8B3F39F48091000387FF3DC01092F2 -:1049D00000033AC08C3F29F4809100031816BCF301 -:1049E00033C0843F21F48091FC028E7F17C0853F45 -:1049F00021F48091FC028D7F11C0863F21F48091CB -:104A0000FC028B7F0BC0873F21F48091FC02877FE3 -:104A100005C0883F31F48091FC028F7E8093FC02B8 -:104A200013C08D3F21F48091FA028E7F0BC08E3F20 -:104A300021F48091FA028D7F05C08F3F29F4809187 -:104A4000FA028B7F8093FA028091FD0281110EC0E1 -:104A50008091FE0281110AC08091FF02811106C07F -:104A600080910003811102C01092FB0208958CEF27 -:104A700092E00E9417170E94DE229093F902809321 -:104A8000F80208951F93CF93DF938091F8029091DD -:104A9000F9020E94EA22AC019091FB02992321F0D5 -:104AA00020911D0130E006C020911E018AE0289F60 -:104AB000900111244217530708F486C08091FD022B -:104AC000C091FE02D091FF0210910003811107C036 -:104AD000C11176C0D11174C0111172C075C09F3F51 -:104AE00019F09F5F9093FB02181624F40E94C823CC -:104AF0008093FD028091FD0287FF05C00E94C823BC -:104B000081958093FD021C1624F40E94C823809393 -:104B1000FE028091FE0287FF05C00E94C823819596 -:104B20008093FE026091FD02662339F1C091FE027E -:104B3000CC2319F1772767FD7095872F972F0E9457 -:104B4000A92923E333E343E35FE30E94B92A0E94E8 -:104B500076296093FD026C2F772767FD7095872F6C -:104B6000972F0E94A92923E333E343E35FE30E94E5 -:104B7000B92A0E9476296093FE021D1624F40E9431 -:104B800011248093FF028091FF0287FF05C00E94DD -:104B9000112481958093FF02111624F40E941124A0 -:104BA000809300038091000387FF05C00E941124B9 -:104BB000819580930003DF91CF911F910C9437254D -:104BC0009F3F09F08ECF96CFDF91CF911F9108952F -:104BD000ECEFF2E085E0DF011D928A95E9F7109293 -:104BE000FB021092FA020895833081F128F481309B -:104BF00059F08230D1F00895853009F449C0B8F1F8 -:104C0000863009F456C0089580911E01262F30E0A9 -:104C1000280F311D2F3F310524F4680F60931E01CA -:104C200008958FEF80931E01089580911D01262F16 -:104C300030E0280F311D2F3F310524F4680F6093B9 -:104C40001D0108958FEF80931D01089580911C012F -:104C5000262F30E0280F311D2F3F310524F4680F37 -:104C600060931C0108958FEF80931C01089580913B -:104C70001B01262F30E0280F311D2F3F310524F472 -:104C8000680F60931B0108958FEF80931B010895B7 -:104C900080911A01262F30E0280F311D2F3F31055A -:104CA00024F4680F60931A0108958FEF80931A011E -:104CB000089580911901262F30E0280F311D2F3FD4 -:104CC000310524F4680F6093190108958FEF8093E4 -:104CD00019010895833011F128F4813049F08230B0 -:104CE00091F00895853081F120F18630C1F1089569 -:104CF00080911E01681720F4861B80931E01089581 -:104D000010921E01089580911D01681720F4861BE2 -:104D100080931D01089510921D01089580911C013A -:104D2000681720F4861B80931C01089510921C01C3 -:104D3000089580911B01681720F4861B80931B0146 -:104D4000089510921B01089580911A01681720F4AC -:104D5000861B80931A01089510921A01089580917C -:104D60001901681720F4861B809319010895109289 -:104D7000190108950F931F93873208F048C08E31B0 -:104D800008F08DC0803109F477C008F5873009F448 -:104D900061C068F4863009F09DC08091F202817F85 -:104DA0008E7F8093F20281E08093020394C08B3067 -:104DB00009F489C08E3009F08DC08091F20282FB27 -:104DC000222720F991E0922790FB82F95EC086317C -:104DD00009F479C060F4813109F07CC00E94E21BC3 -:104DE0009091160181E08927809316016CC089316A -:104DF00009F469C08B3109F06DC08091F20281FB2A -:104E0000222720F991E0922790FB81F93EC0883358 -:104E100009F459C050F4893209F457C0853309F4B4 -:104E200054C0873209F451C055C0833409F44DC0D1 -:104E300028F48A3308F44EC0895332C0883409F00C -:104E400049C00E94E21B0E94200A0E94E4030E94C3 -:104E5000392339C09091F202892F8095817080FBAF -:104E600090F929F0966098609093F20234C0997F8F -:104E7000977F9093F20227C08091F20283FB222752 -:104E800020F991E0922790FB83F98093F202992315 -:104E9000D1F08091F20281608093F20214C08D51B2 -:104EA00041E050E060E070E08A019B0104C0000F27 -:104EB000111F221F331F8A95D2F7C901B8010E9422 -:104EC000A21F0E94E21B81E006C061E070E080E06A -:104ED00090E0F5CF80E01F910F91089580E0089554 -:104EE00080E00895CF93C82F80910203813069F04C -:104EF00018F08230C9F184C0E0911701F0911801D7 -:104F00008081823209F07EC007C0E0911701F091E4 -:104F100018018081823261F48C2F0E946E278111EA -:104F200004C08C2F0E94BA261DC081E090E01AC0F8 -:104F30008C2F0E947027811114C0C43179F048F47D -:104F4000CB3079F0C03109F061C082E08093020378 -:104F500008C0C93219F0C83321F058C010920203BA -:104F600055C081E0817054C0C93291F120F5C4313F -:104F700079F1B0F4C73009F047C08EE180931E018B -:104F800082E380931D018AE080931C0184E1809379 -:104F90001B0188E080931A0188E28093190134C0D4 -:104FA000CE51C63088F5EC2FF0E0EA54FE4F8081F8 -:104FB0008093010329C0CE34E9F020F4CB3421F5ED -:104FC0006AE013C0C13579F0C235F1F461E00DC07B -:104FD00080910103882319F01092010315C081E02C -:104FE0008093020315C061E006C0809101030E9416 -:104FF000F4250AC06AE0809101030E946A2604C079 -:105000001092020380E004C081E002C080E0AACFD9 -:10501000CF9108950E949A23811102C00E947623A5 -:105020000E94B62380931D0380FF02C0869501C0B5 -:1050300080E00C94F10280911D03982F9695292F02 -:1050400030E0233031054CF49F5F990F8170892B3C -:10505000816080931D030E94BA2380911D03869571 -:105060000C94F10280911D03982F969591F0915820 -:10507000990F8170892B80931D038E7F91E009F435 -:1050800090E080911D0390FB80F980931D030E94A6 -:10509000BA2380911D0386950C94F10280911D0323 -:1050A000982F909590FB80F980931D030E94BA235E -:1050B00080911D0380FF02C0869501C080E00C94A2 -:1050C000F10290911D03892F86958F5F8F779170E4 -:1050D000843028F4880F892B80931D0302C090939D -:1050E0001D0380911D038E7F91E009F490E0809173 -:1050F0001D0390FB80F980931D030E94BA238091C9 -:105100001D0386950C94F10220911D03922F969514 -:105110008927982F990F822F8170892B80931D03E7 -:105120008E7F91E009F490E080911D0390FB80F95F -:1051300080931D030E94BA2380911D0386950C94D1 -:10514000F10280911D03869508955058BB27AA2728 -:105150000ED0D1C1C2D130F0C7D120F031F49F3F81 -:1051600011F41EF4B7C10EF4E095E7FB9FC1E92FDF -:10517000D3D180F3BA17620773078407950718F035 -:1051800071F49EF5EBC10EF4E0950B2EBA2FA02D15 -:105190000B01B90190010C01CA01A0011124FF27E4 -:1051A000591B99F0593F50F4503E68F11A16F040DF -:1051B000A22F232F342F4427585FF3CF46953795DE -:1051C0002795A795F0405395C9F77EF41F16BA0BA3 -:1051D000620B730B840BBAF09150A1F0FF0FBB1F51 -:1051E000661F771F881FC2F70EC0BA0F621F731F9A -:1051F000841F48F4879577956795B795F7959E3FF7 -:1052000008F0B3CF9395880F08F09927EE0F979584 -:105210008795089527D108F481E008950CD06BC1DB -:1052200063D140F05AD130F021F45F3F19F03EC114 -:10523000511195C14FC170D198F39923C9F35523EA -:10524000B1F3951B550BBB27AA2762177307840779 -:1052500038F09F5F5F4F220F331F441FAA1FA9F32F -:1052600033D00E2E3AF0E0E830D091505040E69521 -:10527000001CCAF729D0FE2F27D0660F771F881F82 -:10528000BB1F261737074807AB07B0E809F0BB0B71 -:10529000802DBF01FF2793585F4F2AF09E3F510595 -:1052A00068F004C15CC15F3FECF3983EDCF3869587 -:1052B00077956795B795F7959F5FC9F7880F911D0B -:1052C0009695879597F90895E1E0660F771F881FF7 -:1052D000BB1F621773078407BA0720F0621B730BAA -:1052E000840BBA0BEE1F88F7E095089504D06894FC -:1052F000B11135C1089518D188F09F5790F0B92F9A -:105300009927B751A0F0D1F0660F771F881F991F1A -:105310001AF0BA95C9F712C0B13081F01FD1B1E0CF -:1053200008951CC1672F782F8827B85F39F0B93FDF -:10533000CCF3869577956795B395D9F73EF490951C -:105340008095709561957F4F8F4F9F4F0895E8949A -:1053500009C097FB3EF490958095709561957F4FBD -:105360008F4F9F4F9923A9F0F92F96E9BB2793956B -:10537000F695879577956795B795F111F8CFFAF47B -:10538000BB0F11F460FF1BC06F5F7F4F8F4F9F4FAC -:1053900016C0882311F096E911C0772321F09EE80A -:1053A000872F762F05C0662371F096E8862F70E070 -:1053B00060E02AF09A95660F771F881FDAF7880F4A -:1053C0009695879597F9089588D018F011F08CD0AC -:1053D00038F480C0C4C0E92F9FD0B0F35523C9F37F -:1053E000E7FB6217730784079507A8F199F3E92F84 -:1053F000FF2788232AF03197660F771F881FDAF777 -:10540000952F5527442332F091505040220F331FDF -:10541000441FD2F7BB27E91BF50B621B730B840BF0 -:10542000B109C1F222F4620F731F841FB11D3197BD -:105430002AF0660F771F881FBB1FEFCF9150504097 -:105440005AF041F0882332F0660F771F881F915081 -:105450005040C1F7939530C08695779567959F5FCB -:10546000D9F7F8CF990F0008550FAA0BE0E8FEEF27 -:1054700016161706E807F907C0F012161306E40718 -:10548000F50798F0621B730B840B950B39F40A2611 -:1054900061F0232B242B252B21F408950A2609F4EF -:1054A000A140A6958FEF811D811D089597F99F67F3 -:1054B00080E870E060E008959F3F31F0915020F463 -:1054C000879577956795B795880F911D96958795E0 -:1054D00097F908959FEF80EC089500240A9416161A -:1054E000170618060906089500240A9412161306D2 -:1054F000140605060895092E0394000C11F4882360 -:1055000052F0BB0F40F4BF2B11F460FF04C06F5F7B -:105510007F4F8F4F9F4F089557FD9058440F551F51 -:1055200059F05F3F71F04795880F97FB991F61F025 -:105530009F3F79F087950895121613061406551F9C -:10554000F2CF4695F1DF08C0161617061806991F08 -:10555000F1CF86957105610508940895E894BB27FD -:1055600066277727CB0197F908957CDF08F48FEF42 -:1055700008950BD0C0CFB1DF28F0B6DF18F0952327 -:1055800009F094CFA7CF1124EACFC6DFA0F3959FEF -:10559000D1F3950F50E0551F629FF001729FBB271A -:1055A000F00DB11D639FAA27F00DB11DAA1F649FC6 -:1055B0006627B00DA11D661F829F2227B00DA11D79 -:1055C000621F739FB00DA11D621F839FA00D611DFF -:1055D000221F749F3327A00D611D231F849F600D20 -:1055E000211D822F762F6A2F11249F5750408AF059 -:1055F000E1F088234AF0EE0FFF1FBB1F661F771FE5 -:10560000881F91505040A9F79E3F510570F04ECF32 -:10561000A6CF5F3FECF3983EDCF3869577956795D0 -:10562000B795F795E7959F5FC1F7FE2B880F911D02 -:105630009695879597F90895FA01EE0FFF1F30961A -:105640002105310599F16115710561F48038BFE3D9 -:105650009B0749F168949038810561F08038BFEF6D -:105660009B0741F0992342F5FF3FE10531052105F4 -:1056700011F1E8940894E795D901AA2329F4AB2FF6 -:10568000BE2FF85FD0F310C0FF5F70F4A695E0F76F -:10569000F73950F019F0FF3A38F49F779F930CD008 -:1056A0000F9007FC905808953EF014CF60E070E032 -:1056B00080E89FE308954FE79F775F934F933F9371 -:1056C0002F939ED02F913F914F915F9152DF05C054 -:1056D00019F40EF0EBCE42CFFDCE26DFC8F396389C -:1056E000C0F707F80F92E8942BE33AEA48EB5FE73C -:1056F0004EDF0F920F920F924DB75EB70F92C0D050 -:10570000EAE0F1E016D04F915F91EF91FF91E595BE -:10571000EE1FFF1F49F0FE57E0684427EE0F441FBD -:10572000FA95E1F74195550B32D00F9007FE26C050 -:105730000895DF93CF931F930F93FF92EF92DF9221 -:105740007B018C01689405C0DA2EEF011EDFFE019B -:10575000E894A5912591359145915591AEF3EF01CE -:1057600006DDFE019701A801DA9479F7DF90EF904A -:10577000FF900F911F91CF91DF9108959B01AC0194 -:1057800060E070E080E89FE349CD90CE95CECCDE1E -:10579000E8F39923D9F3940F511DBBF39150504076 -:1057A00094F059F0882332F0660F771F881F9150CC -:1057B0005040C1F79E3F510544F7880F911D9695C3 -:1057C000879597F908955F3FACF0983E9CF0BB2712 -:1057D000869577956795B79508F4B1609395C1F76D -:1057E000BB0F58F711F460FFE8CF6F5F7F4F8F4F0B -:1057F0009F4FE3CFB4CE0EF05FCE6CCE689456CE02 -:1058000093DEC8F39923D1F3C6F3DF93CF931F93AD -:105810000F93FF92C92FDD2788232AF02197660F67 -:10582000771F881FDAF720E030E040E85FEB9FE366 -:10583000883920F0803E30F021968F7787DCE2E3D4 -:10584000F1E003C083DCEFE5F1E073DF8B01BE0123 -:10585000EC01FB2E6F5771097595771F880B990B1B -:1058600078DD28E132E741E35FE38FDEAF2D980179 -:10587000AE01FF900F911F91CF91DF9178DC3BCE6D -:10588000FA01DC01AA0FBB1F9B01AC01BF5728F432 -:1058900022273327442750781FC0B75188F4AB2FF5 -:1058A0000024469537952795011CA395D2F3002037 -:1058B00069F0220F331F441FB395DAF30DD045CCA6 -:1058C00061307105A0E88A07B94630F49B01AC014C -:1058D0006627772788279078309621F020833183B8 -:1058E000428353830895AA1BBB1B51E107C0AA1F23 -:1058F000BB1FA617B70710F0A61BB70B881F991F71 -:105900005A95A9F780959095BC01CD01089597FB14 -:10591000072E16F4009407D077FD09D00E94732C4F -:1059200007FC05D03EF4909581959F4F08957095A2 -:1059300061957F4F0895EE0FFF1F0590F491E02DC4 -:105940000994F999FECF92BD81BDF89A992780B547 -:105950000895A8E1B0E042E050E00C94C92C262F55 -:10596000F999FECF92BD81BDF89A019700B4021655 -:1059700039F01FBA20BD0FB6F894FA9AF99A0FBE03 -:1059800008950196272F0E94B02C0C94AF2CDC01B7 -:10599000CB01FC01F999FECF06C0F2BDE1BDF89A3A -:1059A000319600B40D9241505040B8F70895F894E4 -:0259B000FFCF27 -:1059B200640007000CFF0000003F64041092106FA7 -:1059C200103B1007100101DF022808140A321E00E2 -:1059D20002040507090B0C0E1011131517181A1CD7 -:1059E2001D1F2123242628292B2D2F303234353711 -:1059F200393B1F0F03764F5F6F7F4969437909591E -:105A020053633149803F5D8B803FF8BF803FCAE1DD -:105A1200803F73ED803FCAE1803FF8BF803F5D8BDE -:105A2200803F3149803F0000803FF16D7F3F75EA42 -:105A32007E3F4C827E3F833F7E3F84287E3F833F72 -:105A42007E3F4C827E3F75EA7E3FF16D7F3F0000D4 -:105A5200803F3F4D3639ED04A0046A043104C4038B -:105A6200DD03F6030F04010203040506070809001B -:00000001FF diff --git a/keyboards/planck/keymaps/leo/compiled.hex b/keyboards/planck/keymaps/leo/compiled.hex deleted file mode 100644 index 4bfe15bd0..000000000 --- a/keyboards/planck/keymaps/leo/compiled.hex +++ /dev/null @@ -1,1454 +0,0 @@ -:100000000C94C5020C9409030C9409030C94090385 -:100010000C9409030C9409030C9409030C94090330 -:100020000C9409030C9409030C94A7140C947915EF -:100030000C94DB220C9409030C9409030C9409031F -:100040000C9409030C946B030C9409030C9409039E -:100050000C9409030C9443230C9409030C94090396 -:100060000C9409030C9409030C9409030C940903E0 -:100070000C9409030C9409030C9409030C940903D0 -:100080000C941C0B0C9409030C9409030C940903A5 -:100090000C9409030C9409030C9409030C940903B0 -:1000A0000C9409030C9409030C940903E615081633 -:1000B000F6160816F6164D167016F616C516D8164C -:1000C000C219C219F119F119301A501AA61BA61B30 -:1000D0005B1AA61B0B1B0B1B721B7B1BA61BA01BFF -:1000E000181B181B181B181B181B181B181B181B78 -:1000F000181B181B181B181B181B181B181B181B68 -:10010000281B361B3D1B441B4E1B07634236B79B07 -:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 -:100120005763BD6DEDFD753EF6177231BF000000DF -:10013000803F08000000BE922449123EABAAAA2AC2 -:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD -:1001500000000000BF000000803F00000000000819 -:100160004178D3BB4387D1133D190E3CC3BD4282B6 -:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 -:10018000FFBE01C4FF7F3F00000000000000000030 -:1001900000000000000000010204060A0F17202CD6 -:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 -:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF -:1001C0000201000000000000000000000000F1A299 -:1001D000F1A3F1A429002F003400330013001C0008 -:1001E00009000A00060015000F002A002B00040079 -:1001F0001200080018000C0007000B001700110087 -:1002000016002800E100370014000D000E001B004E -:10021000050010001A0019001D003600E000E20081 -:10022000E300032002202C002C0001200320E70023 -:10023000E600E400000000000000000000000000F4 -:1002400000000000000000000000000000000000AE -:10025000000000000000000000000000000000009E -:10026000000000000000000000000000000000008E -:10027000000000000000000000000000000000007E -:10028000000000000000000000000000000000006E -:100290000000000030141E001F002000210022007A -:1002A0002300240025002600270030023A003B00EE -:1002B0003C003D003E003F00400041004200430042 -:1002C000440045000100010001000100010001009F -:1002D0000100010001000100010001000100010016 -:1002E0000100010001000100010001000100010006 -:1002F000010001002E021E021F022002221422020F -:10030000230224022414271427022D0001001F14A5 -:100310003802640064022D1464143200250226029F -:100320002D02380001000100010001000100010060 -:100330000100010025142614010001000100010044 -:1003400001000100010001000100010001000100A5 -:100350000100010001004A0052004D0001000100AF -:1003600001004A0052004D0001004C0001004F0006 -:10037000510050004B0001004B00500051004F0055 -:100380000100010001000100010001004E00010018 -:100390004E000100AA00A9000100010001000100B7 -:1003A0000100010001000100010001000100010045 -:1003B000010001002803540068006500200050007F -:1003C0006C0061006E0063006B0020004B00650054 -:1003D000790062006F0061007200640000002C036D -:1003E0004F007200740068006F006C0069006E00BE -:1003F00065006100720020004B006500790062001A -:100400006F006100720064007300000004030904BF -:1004100009026D00040100A0FA09040000010301B3 -:100420000100092111010001223F00070581030895 -:10043000000A090401000103010200092111010061 -:1004400001224D000705820308000A090402000189 -:100450000300000009211101000122360007058375 -:100460000308000A09040300010300000009211128 -:100470000100012239000705840310000112011058 -:100480000100000008EDFE606001000102000105AE -:10049000010906A101050719E029E71500250195C5 -:1004A0000875018102050819012905950575019155 -:1004B000029501750391010507190029771500259B -:1004C00001957875018102C005010980A1018502AD -:1004D00016010026B7001A01002AB7007510950111 -:1004E0008100C0050C0901A1018503160100269CAD -:1004F000021A01002A9C02751095018100C00501B5 -:100500000902A1010901A100050919012905150028 -:10051000250195057501810295017503810105018C -:10052000093009311581257F950275088106093842 -:100530001581257F950175088106050C0A3802157D -:1005400081257F950175088106C0C005010906A1B6 -:1005500001050719E029E7150025019508750181B6 -:100560000295017508810105081901290595057590 -:100570000191029501750391010507190029FF15E5 -:100580000025FF950675088100C011241FBECFEF1E -:10059000DAE0DEBFCDBF04B603FE24C080911E03A7 -:1005A00090911F03A0912003B09121038730904BBD -:1005B000A740B04BB9F410921E0310921F03109283 -:1005C00020031092210314BE84B7877F84BF88E183 -:1005D0000FB6F89480936000109260000FBEE0E0C8 -:1005E000F8E3099511E0A0E0B1E0E0E1FAE502C02E -:1005F00005900D92A03CB107D9F713E0A0ECB1E053 -:1006000001C01D92AE31B107E1F70E94ED110C94CB -:10061000062D0C9400000895089581E00895089532 -:100620000C940C030C940D030C940F030E94D0281F -:1006300023E030E0281B3109220F2093C4010895E4 -:10064000282F2F9880918000211108C0877F8093E8 -:10065000800010928D0010928C001BC088608093E7 -:100660008000233019F48FEF9FEF0FC083E090E0FC -:10067000821B9109880F991F2FEF3FEFA90102C03C -:10068000569547958A95E2F7CA0190938D0080931D -:100690008C000C9416030E94160384E08093C3011F -:1006A0001092C0010895279A2F988FEF9FEF909393 -:1006B0008700809386008AE08093800089E18093A0 -:1006C00081000E9439280C944B030E9453036E9AB8 -:1006D000769A0C940B031F920F920FB60F9211246F -:1006E0002F933F938F939F93EF93FF93E091C101DB -:1006F000F091C201CF0101969093C2018093C10194 -:100700000090C30102C0F695E7950A94E2F7EF73F3 -:100710008091C001823019F4E03251F404C081307C -:1007200039F4EF3329F480916F008D7F80936F004F -:10073000F0E0E457FE4FE49121E031E0E29FC00198 -:10074000E39F900D11240090C40102C096958795F7 -:100750000A94E2F790938D0080938C00FF91EF91C3 -:100760009F918F913F912F910F900FBE0F901F90EF -:10077000189581E008950C94B90308950C946503CD -:1007800080911502882309F448C08091D10190918D -:10079000D201009779F40E940D239093D2018093A7 -:1007A000D1018091D30190E0009771F48091D40140 -:1007B00090E00AC00E9419232091000130910101AC -:1007C0002817390740F329C00197880F991F880F10 -:1007D000991FFC01EB52FE4F6081718182819381F0 -:1007E0000E94820AE091D30184E0E89FF001112485 -:1007F000EB52FE4F60817181828193814FE050E026 -:100800000E943A0E8091D30190E001966091D4014C -:1008100070E00E94B62C8093D3010C9410031092C8 -:1008200017020C944F0A0895089581E080931702EF -:100830000C941404089508958F929F92AF92BF92E2 -:10084000EF92FF920F931F93CF93DF93CDB7DEB755 -:10085000A3970FB6F894DEBF0FBECDBF7C01FC019D -:1008600000811181C8010E940A21B8010E9421065D -:100870008C01B7010E94BB03882309F4CCC100326C -:10088000F0E51F0741F4F7018281882309F458C07D -:100890000E949E0EC0C10132F0E51F0741F4F7012E -:1008A0008281882309F44CC00E94A70EB4C1023291 -:1008B000F0E51F0751F4F7018281882309F440C055 -:1008C0000E949A0E8111F0CFE3CF0332F0E51F07AB -:1008D00039F4F7018281882399F10E9415049BC1A4 -:1008E0000432F0E51F0739F4F7018281882341F1D2 -:1008F0000E940F0490C10532F0E51F0749F4F7018B -:1009000082818823E9F0809117028111F1CFE5CF30 -:100910000632F0E51F0739F4F7018281882381F060 -:100920000E94AE0E0AC00732F0E51F0749F4F70136 -:100930008281882329F00E94B90E0E941B046BC19A -:1009400080911702811105C0F70182818111CFC00A -:1009500018C1003E110579F4F7018281882309F45A -:100960004DC00E944F0A81E080931602109215023A -:100970001092D40150C1023E110559F4F701828151 -:100980008823E1F10E944F0A10921602109215027C -:1009900042C1033E110591F4F7018281882371F170 -:1009A0000E944F0A1092160281E080931502109265 -:1009B000D3011092D2011092D1012DC1023511053F -:1009C00059F4F7018281882309F425C1809100013F -:1009D000909101010A970DC00135110579F4F701D5 -:1009E0008281882309F417C180910001909101014F -:1009F0000A9690930101809300010DC1409104017A -:100A000083E2EFE1F1E0DE01119601900D928A950B -:100A1000E1F7F701808121E030E02C0F3D1F280F26 -:100A2000311DC9012091020130910301FC01E20F47 -:100A3000F31F6081772767FD7095640F711D88270C -:100A400077FD8095982F0E94D82920E030E040E47F -:100A500051E40E943D294B015C01F701218184E0B2 -:100A600090E0821B9109BC01882777FD8095982F23 -:100A70000E94D8299B01AC01C501B4010E94D52870 -:100A80009B01AC0160E070E080E090E40E944B2BA1 -:100A900020E030E04CED50E40E94E82A4B015C017C -:100AA000F70182818823D1F04FE050E0C501B40105 -:100AB0000E943A0E809116028823A1F08091D40101 -:100AC00024E0829FF0011124EB52FE4F808291823C -:100AD000A282B3828F5F8093D40104C0C501B401A8 -:100AE0000E94820A0F3F110508F02ECF94C080911A -:100AF000D00181111FC0043130E5130709F051C046 -:100B00000E94BD0381E08093D0010E940D23909349 -:100B1000CF018093CE011092C7011092C9011092AB -:100B2000C8011092CB011092CA011092CD0110920F -:100B3000CC0171C08091CE019091CF010E94192308 -:100B4000883C910570F48091C701E82FF0E0EE0F2A -:100B5000FF1FE853FE4F118300838F5F8093C7010F -:100B60005AC0043880E5180721F00538104501F116 -:100B70003AC0F7018281882341F01092C50182E0DA -:100B80001EC0043830E5130759F58091C501811165 -:100B900006C086E20E94661886E20E942E1982E054 -:100BA0001CC00438F0E51F0741F305381045D9F49F -:100BB000F7018281882331F01092C60180E20E9401 -:100BC0007D1929C08091C601811106C087E20E946B -:100BD000661887E20E942E1980E20E9484191BC0C9 -:100BE0000538104529F381E08093C5018093C60143 -:100BF000C701A3960FB6F894DEBF0FBECDBFDF913D -:100C0000CF911F910F91FF90EF90BF90AF909F9069 -:100C10008F900C94120380E0A3960FB6F894DEBF79 -:100C20000FBECDBFDF91CF911F910F91FF90EF903D -:100C3000BF90AF909F908F90089580E090E00895CE -:100C400008959CE0799FF001112490E3899FE00DC5 -:100C5000F11D1124E60FF11DEE0FFF1FEC52FE4FA8 -:100C6000859194910895880F991FFC01E45BFF4FD3 -:100C7000859194910895880F991FFC01E453FE4FCC -:100C80008591949108950F931F93CF93DF93EC0177 -:100C9000811521E39207A0F5C11580E3D80708F07C -:100CA000D7C0C83ED105D8F4C03ED10508F007C270 -:100CB000C83AD10578F4C53AD10508F06AC0C13008 -:100CC000D10509F463C008F4F7C1C430D10508F0B8 -:100CD000F6C1F2C1CB3BD10508F466C0EDC1C11528 -:100CE00090E2D90708F0AFC0C11521E0D20708F0A3 -:100CF000E6C1C03FD10508F4DFC18E0110651FC2F7 -:100D0000C03880E5D80700F5C03790E5D90708F06E -:100D1000A3C0C11520E5D20709F4ACC050F4CE0140 -:100D2000905480319F4008F0C7C1DF708E01106A77 -:100D300006C2C13080E5D80709F4AEC0C43190E5E1 -:100D4000D90708F4AFC0B8C1C33820E5D20709F409 -:100D50008EC050F4C13890E5D90709F482C008F07C -:100D600083C000E011EDEBC1C03181E5D80708F484 -:100D7000A3C1C11597E5D90708F436C1CE01905734 -:100D80008115904108F098C1DF7093C101E010E037 -:100D9000D6C1C53AD10509F494C1C63AD10509F0C6 -:100DA00093C102E810E4CBC1C83AD10509F48FC160 -:100DB000C93AD10509F48EC1CA3AD10509F48DC1E9 -:100DC000CB3AD10509F48CC1CC3AD10509F48BC1D9 -:100DD000CD3AD10509F48AC1C03BD10509F489C1D6 -:100DE000CE3AD10509F488C1CF3AD10509F487C1BB -:100DF000C13BD10509F486C1C23BD10509F485C1C7 -:100E0000C33BD10509F484C1C43BD10509F483C1B6 -:100E1000C53BD10509F482C1C63BD10509F481C1A6 -:100E2000C73BD10509F480C1C83BD10509F47FC196 -:100E3000C93BD10509F47EC1CA3BD10509F47DC186 -:100E400000E014E47CC1CE019F700E943B0678C193 -:100E5000DD278E01106C73C1CF70DD278E01146DFC -:100E60006EC100E010ED6BC100E012ED68C100E062 -:100E700013ED65C10E94111C0E944F0A0E941304C9 -:100E80008FEF94E32CE0815090402040E1F700C0C8 -:100E900000000E94682353C18091F2028160809318 -:100EA000F2024DC10E94C923811102C00E94A523F4 -:100EB0000E94DC2390E090931D0380931C03C230BA -:100EC00080E5D80721F480911C03816086C0C4307E -:100ED00090E5D90721F480911C0382607EC0C63062 -:100EE00020E5D20721F480911C03846076C0C830CD -:100EF00080E5D80719F480911C0327C0CA3090E51B -:100F0000D90721F480911C03806167C0CC3020E5B3 -:100F1000D20721F480911C0380625FC0CE3080E54F -:100F2000D80721F480911C03806457C0C03190E53C -:100F3000D90721F480911C0380684FC0C23120E59D -:100F4000D20729F480911C038460886046C0C330B6 -:100F500080E5D80721F480911C038E7F3EC0C53008 -:100F600090E5D90721F480911C038D7F36C0C730EE -:100F700020E5D20721F480911C038B7F2EC0C9305D -:100F800080E5D80719F480911C0326C0CB3090E58A -:100F9000D90721F480911C038F7E1FC0CD3020E53E -:100FA000D20721F480911C038F7D17C0CF3080E5DC -:100FB000D80721F480911C038F7B0FC0C13190E5CD -:100FC000D90721F480911C038F7707C0C331D04526 -:100FD00031F480911C038B7F877F80931C03809169 -:100FE0001C030E94E023ABC08D2F99278F70992797 -:100FF00081309105D9F49E012370332702C0880FF8 -:10100000991F2A95E2F79C688E0144E0000F111F9A -:101010004A95E1F700271370802B912B53E0CC0FFA -:10102000DD1F5A95E1F7C076DD272FC0823091058C -:1010300031F4DC2FCC278E01016F106A80C0833021 -:10104000910569F4CE018370992701E010E002C098 -:10105000000F111F8A95E2F7C8019C680FC0843009 -:101060009105B9F4CE018370992701E010E002C028 -:10107000000F111F8A95E2F7C8019A6823E0CC0F90 -:10108000DD1F2A95E1F7C07ED7708C010C2B1D2B3C -:1010900056C08530910531F4DC2FCC278E01046FCA -:1010A000106A4DC0069709F04AC0CF71DD27DC2FCA -:1010B000CC278E01106243C000E010E040C08E01DA -:1010C0003EC001E810E43BC003E810E438C002EE83 -:1010D00014E435C009EE14E432C00AEE14E42FC063 -:1010E00005EB14E42CC006EB14E429C007EB14E470 -:1010F00026C00CEC14E423C00DEC14E420C003E87B -:1011000015E41DC00AE815E41AC002E915E417C089 -:1011100004E915E414C001E216E411C003E216E488 -:101120000EC004E216E40BC005E216E408C006E2B5 -:1011300016E405C007E216E402C00AE216E4C8019C -:10114000DF91CF911F910F9108959CE0799FF0015D -:10115000112490E3899FE00DF11D1124E60FF11D8C -:10116000EE0FFF1FEC52FE4F85919491803E91054A -:10117000E0F4803C910558F58133910509F46FC086 -:1011800048F48932910509F463C08A32910509F463 -:101190006DC072C089339105E9F082389105D1F0B4 -:1011A0008533910509F44DC067C0833E910581F1F7 -:1011B00038F4803E9105B9F0823E9105D9F05CC0CB -:1011C000863E910561F1873E9105A1F155C00E94CF -:1011D0003306089520911C0320FD02C021FF4CC05E -:1011E00080EE90E049C080911C0380FFF9CF89E335 -:1011F00090E042C080911C0382FF0EC080911C03CE -:1012000084FF03C080E090E037C083EE90E034C0FC -:1012100080911C0382FFF2CF82EE90E02DC080917E -:101220001C0383FF0BC080911C0384FDEBCF87EE72 -:1012300090E022C080911C0383FFF5CF86EE90E002 -:101240001BC080911C0385FF07C089E290E014C099 -:1012500080911C0385FFF9CF85E390E00DC080915C -:101260001C0386FF07C08AE290E006C080911C0341 -:1012700086FFF9CF81E390E00E94430608950C9425 -:101280001403E82FF0E0E25BFE4F8081E82FEF705F -:10129000F0E082958F7021E030E0A90102C0440F98 -:1012A000551F8A95E2F740A308950F931F93CF939C -:1012B000DF9385B7806885BF85B7806885BFC3E049 -:1012C000D0E001E010E0FE01E25BFE4F8081E82FFC -:1012D000EF70F0E021A182958F70A80102C0440F49 -:1012E000551F8A95E2F7CA01822B81A38C2F0E9499 -:1012F0004109219740F78BE090E061E070E0FC014C -:10130000EE5BFE4F2081E22FEF70F0E042A12295CC -:101310002F70DB0102C0AA0FBB1F2A95E2F79D01C7 -:10132000242B22A3019758F7DF91CF911F910F91A2 -:101330000C94BE03EF92FF920F931F93CF93DF9312 -:1013400000E212E0C3E0EE24E394F12CD5E08C2F10 -:101350000E9441098BE090E040E050E0FC01EE5B30 -:10136000FE4F6081E62FEF70F0E020A130E0629543 -:101370006F7002C0359527956A95E2F720FD09C088 -:101380009701082E02C0220F331F0A94E2F7422B66 -:10139000532B019718F7F801929182918F018417CE -:1013A000950721F051834083D09305018C2F0E9433 -:1013B0004109C15060F68091050187FD2CC0815024 -:1013C000809305018F3F39F08FE99FE00197F1F796 -:1013D00000C0000020C080911E0290911F029093D7 -:1013E00027028093260280911C0290911D02909307 -:1013F00025028093240280911A0290911B029093FF -:1014000023028093220280911802909119029093F6 -:101410002102809320020E94C00381E0DF91CF91DE -:101420001F910F91FF90EF900895E82FF0E0EE0FDD -:10143000FF1FE05EFD4F80819181089508950F9315 -:101440001F93CF9308E212E0C0E0F80192918291DD -:101450008F010E948522C80FF2E000321F07A9F712 -:101460008C2FCF911F910F9108950E94C923811154 -:1014700002C00E94A5230E94EE23809307033E9A98 -:10148000809171008D7F8093710082E08093900045 -:101490008AE18093910081E080932A0208958091EF -:1014A0002A02811102C00E94350A10927A0210921B -:1014B0007902809171008D7F8093710080919000FE -:1014C0008F738093900010923C0210923B02109216 -:1014D00073021092740210927502109276021092AA -:1014E000720210927102E1E5F2E0A1E4B2E0119221 -:1014F0001192119211921D921D9282E0E137F8072C -:10150000B1F70895CF92DF92EF92FF920F931F935E -:10151000CF93DF9320913B02222309F484C06B0117 -:101520007C0180912A02811102C00E94350A01E7E4 -:1015300012E0C7E0D0E0A7019601F80192918291F4 -:10154000729162918F010E943929811131C0FE018F -:10155000EE0FFF1FEE0FFF1FEF5AFD4F108211829B -:1015600012821382DE01AA0FBB1FAF5BBD4F119623 -:101570001C921E92C730D105E9F021964481558115 -:1015800066817781408351836283738314821582DD -:101590001682178212968D919C91139711969C93A7 -:1015A0008E9313961C921E92129734961296E2CF47 -:1015B000219708F68091790290917A02019797FD20 -:1015C00005C090937A028093790204C010927A0247 -:1015D000109279028091790290917A02209177029B -:1015E000309178022817390724F01092780210926F -:1015F0007702892BC1F4809171008D7F80937100F7 -:10160000809190008F7380939000109273021092DB -:101610007402109275021092760210927202109269 -:10162000710210923B02DF91CF911F910F91FF90B9 -:10163000EF90DF90CF9008951F920F920FB60F9208 -:1016400011244F925F926F927F928F929F92AF92EE -:10165000BF92CF92DF92EF92FF922F933F934F93DF -:101660005F936F937F938F939F93AF93BF93CF932A -:10167000DF93EF93FF9380913B02882309F49BC192 -:10168000C0917902D0917A021C161D060CF093C10C -:1016900040902B0250902C0260902D0270902E02F0 -:1016A00020E030E0A901C301B2010E94E42A18162B -:1016B0000CF065C0C130D10509F452C080917702A9 -:1016C00090917802BE010E94B62C7C019093780222 -:1016D0008093770280903D0290903E02A0903F025E -:1016E000B090400220E030E040E85FE3C501B40183 -:1016F0000E94D52860933D0270933E0280933F0282 -:1017000090934002F701EE0FFF1FEE0FFF1FEF5AFD -:10171000FD4FA301920160817181828193810E94BA -:101720003D2920E030E040E05EE30E94E82A9B0192 -:10173000AC01C501B4010E94E42A18168CF4C7015B -:101740000196BE010E94B62C909378028093770296 -:1017500010923D0210923E0210923F0210924002FF -:10176000E0917702F0917802EE0FFF1FEE0FFF1F5E -:10177000EF5AFD4F6081718182819381D0C0C0900A -:101780007302D0907402E0907502F090760220E02F -:1017900030E0A901C701B6010E94392921978823A9 -:1017A00009F4A2C0FE01EE0FFF1FEE0FFF1FEF5A5C -:1017B000FD4F80809180A280B380A5019401C70174 -:1017C000B6010E94392987FF31C0A501940160E06C -:1017D00070E08CED93EC0E943D2920E030E040E485 -:1017E00051E40E943D2920E030E040E05FE30E94A8 -:1017F000E82A9B01AC0160E070E080E090E40E9488 -:101800004B2B9B01AC01C501B4010E94E82A9B014E -:10181000AC01C701B6010E94392987FF07C0A701A3 -:10182000960160E070E08CED93E439C0A50194016D -:10183000C701B6010E94E42A18160CF055C0A50194 -:10184000940160E070E08CED93E40E943D2920E07B -:1018500030E040E451E40E943D2920E030E040E0E7 -:101860005FE30E94E82A9B01AC0160E070E080E049 -:1018700090E40E944B2B9B01AC01C501B4010E9476 -:10188000E82A9B01AC01C701B6010E94E42A1816A0 -:101890005CF5A701960160E070E08CED93EC0E948E -:1018A0003D2920E030E040E451E40E943D2920E061 -:1018B00030E040E05FE30E94E82A9B01AC0160E079 -:1018C00070E080E090E40E944B2B9B01AC01C701CB -:1018D000B6010E94E82A60937302709374028093A9 -:1018E00075029093760213C0FE01EE0FFF1FEE0FFC -:1018F000FF1FEF5AFD4F80819181A281B3818093B8 -:10190000730290937402A0937502B0937602609173 -:101910007302709174028091750290917602209109 -:101920002802309129022F3F4FEF340731F02F5F0B -:101930003F4F30932902209328020E94C40E6B016E -:101940007C0120E034E244EF51E40E94392987FF12 -:1019500008C086EFC82E88E2D82E84EFE82E81E4F6 -:10196000F82E20E030E040E051E4C701B6010E94CB -:10197000E82A9B01AC0160E074E284E79BE40E94EA -:101980003D296B017C010E94AA2970939700609306 -:101990009600209106013091070140910801509175 -:1019A0000901C701B6010E94E82A0E94AA29709382 -:1019B00099006093980080913C02882309F433C118 -:1019C000C0903702D0903802E0903902F0903A028D -:1019D00020E030E0A901C701B6010E94E42A1816F0 -:1019E000D4F580912802909129028F3F2FEF920722 -:1019F00029F001969093290280932802C701B6012D -:101A00000E94C40E20E030E040E051E40E94E82A49 -:101A10009B01AC0160E074E284E79BE40E943D29F5 -:101A20006B017C010E94AA29709397006093960035 -:101A30002091060130910701409108015091090160 -:101A4000C701B6010E94E82A0E94AA297093990052 -:101A50006093980008C01092970010929600109220 -:101A600099001092980060913102709132026F5F7C -:101A70007F4F709332026093310220919600309133 -:101A8000970080E090E0232BF1F0C0919600D09178 -:101A900097000E94D6296B017C01BE0180E090E096 -:101AA0000E94D6299B01AC016091330270913402EF -:101AB00080913502909136020E943D2920E03FEF4F -:101AC0004FE757E410C00E94D6296B017C0120E04B -:101AD00030EE4FEF54E46091330270913402809104 -:101AE0003502909136020E94E82A9B01AC01C701A1 -:101AF000B6010E94E42A87FD96C080912F028F5F75 -:101B000080932F0290E02091030330910403821709 -:101B10009307A0F080910E03882319F010922F02F2 -:101B20000DC0809171008D7F809371008091900035 -:101B30008F738093900010923C027DC080913002A0 -:101B4000C0912F02811128C0C0900803D0900903D2 -:101B5000E0900A03F0900B0320E030E0A901C701F8 -:101B6000B6010E94E42A1816BCF481E0809330028A -:101B700010923702109238021092390210923A02F3 -:101B8000C0923302D0923402E0923502F0923602D3 -:101B9000C150C0932F0243C010923002109229020C -:101BA00010922802E0910503F091060348E0C49FDB -:101BB000E00DF11D112480819181A281B381809378 -:101BC000370290933802A0933902B0933A0220E092 -:101BD00030E040E85EE364817581868197810E94F0 -:101BE000E82A6B017C0180910A01682F70E080E097 -:101BF00090E00E94D62920E030E048EC52E40E94B8 -:101C00003D299B01AC01C701B6010E94E82A6093FF -:101C1000330270933402809335029093360210920F -:101C20003202109231028091070380FD04C01092AD -:101C30003C0210923B02FF91EF91DF91CF91BF9157 -:101C4000AF919F918F917F916F915F914F913F9154 -:101C50002F91FF90EF90DF90CF90BF90AF909F902B -:101C60008F907F906F905F904F900F900FBE0F906E -:101C70001F901895CF92DF92EF92FF92CF93DF9350 -:101C80006B017C01EA0180912A02811102C00E944D -:101C9000350A8091070380FF46C0809179029091B8 -:101CA0007A0208970CF03FC0809171008D7F80937D -:101CB000710080913C0281110E944F0A81E0809363 -:101CC0003B02109229021092280220E030E0A90184 -:101CD000C701B6010E94E42A1816DCF4809179024B -:101CE00090917A02FC01EE0FFF1FEE0FFF1FEF5ADB -:101CF000FD4FC082D182E282F382FC01EE0FFF1F12 -:101D0000EF5BFD4FD183C083019690937A0280935D -:101D100079028091710082608093710080919000BF -:101D2000806880939000DF91CF91FF90EF90DF90DB -:101D3000CF900895809107038170089580910703E3 -:101D40008160809307030E94F2230C941A0480910F -:101D500007038E7F809307030C94F22380917B020C -:101D600090E0019666E070E00E94B62C80937B02C2 -:101D7000089580917B0290E0019766E070E00E94F8 -:101D8000B62C80937B0208958F929F92AF92BF9260 -:101D9000CF92DF92EF92FF920F931F93CF93DF9337 -:101DA0006B017C01C0912802D0912902BE0180E024 -:101DB00090E00E94D6294B015C01A701960160E0EA -:101DC00070E08CE594E40E943D299B01AC01C501C3 -:101DD000B4010E94E82A0E94AA2920917B022330A4 -:101DE00009F473C028F4222351F02130E9F02CC10A -:101DF000243009F4A0C0253009F4E0C025C180E0FA -:101E000090E0A0E0BFE38093060190930701A093C8 -:101E10000801B093090110922B0210922C0210922B -:101E20002D0210922E0210C110922B0210922C0241 -:101E300010922D0210922E026431710540F46A3026 -:101E4000710560F520E030E040E85EE32BC0693CBE -:101E5000710508F0AAC080E090E00E94D62920E039 -:101E600030E040EA51E40E94D42820E030E044E32E -:101E700053E40E943D299B01AC010E94E82A20E026 -:101E800030E040E05EE30E94E82A9B01AC0160E0A4 -:101E900070E080E09EE30E94D42844C020E030E05F -:101EA00040E05FE3C701B6010E94E82A6B017C01B4 -:101EB00080E090E0A0E0BEE38093060190930701EC -:101EC000A0930801B0930901BFC010922B02109299 -:101ED0002C0210922D0210922E024AE0469F900191 -:101EE000479F300D1124C90168EB7BE00E94A22CB2 -:101EF000BC016C5D754077FF03C0719561957109F8 -:101F0000882777FD8095982F0E94D8292EE333ECFF -:101F10004EE259E30E94E82A20E030E040EC5EE324 -:101F20000E94D528609306017093070180930801F1 -:101F30009093090189C010922B0210922C021092EA -:101F40002D0210922E02CE0183709927892BE1F089 -:101F5000BE016170772780E090E00E94D62920E0E2 -:101F600030E040E05EE30E94E82A20E030E040E418 -:101F70005FE30E94D5286093060170930701809368 -:101F80000801909309010CC080E090E0A0E0BFE35D -:101F90008093060190930701A0930801B093090173 -:101FA000C770DD27CD2B09F04FC0109206011092AB -:101FB0000701109208011092090146C010922B02ED -:101FC00010922C0210922D0210922E0200E010E0CE -:101FD00020E03FE3009306011093070120930801DE -:101FE000309309016739710578F180E090E00E9433 -:101FF000D62920E030E047E153E40E94D42820E0D5 -:1020000030E04AE754E40E943D2920E030E048E413 -:1020100052E40E94E82A20E030E040EA51E40E94C5 -:102020001A2A0E94A529660F771F660F771FFB01EA -:10203000EE5AFE4F2081318142815381C701B601A2 -:102040000E94E82A6B017C01C701B601DF91CF91A4 -:102050001F910F91FF90EF90DF90CF90BF90AF90C6 -:102060009F908F90089580918C020895CF93DF9375 -:1020700000D01F92CDB7DEB79C018091130384304E -:1020800019F593E099833B832A839093E9008FEFBE -:102090009091E800815095FD06C095ED9A95F1F775 -:1020A00000008111F5CF8091E80085FF0DC040E070 -:1020B00050E063E070E0CE0101960E94971280919B -:1020C000E8008E778093E8000F900F900F90DF91DB -:1020D000CF910895CF93DF9300D01F92CDB7DEB795 -:1020E00020911303243021F522E029839B838A83E6 -:1020F00083E08093E9008FEF9091E800815095FD97 -:1021000006C095ED9A95F1F700008111F5CF809109 -:10211000E80085FF0DC040E050E063E070E0CE01D4 -:1021200001960E9497128091E8008E778093E800D4 -:102130000F900F900F90DF91CF910895209113038E -:102140002430F1F422E02093E9002FEF3091E800F1 -:10215000215035FD06C035ED3A95F1F7000021110B -:10216000F5CF2091E80025FF0BC040E050E065E08E -:1021700070E00E9497128091E8008E778093E800CB -:102180000895CF93DF93EC0190911303943009F0FD -:1021900046C0809115018823D9F0809116018823CB -:1021A000B9F09093E9008FEF9091E800815095FD90 -:1021B00006C095E19A95F1F700008111F5CF809165 -:1021C000E80085FF2CC040E050E060E170E017C0FF -:1021D00081E08093E9008FEF9091E800815095FDB8 -:1021E00006C095ED9A95F1F700008111F5CF809129 -:1021F000E80085FF14C040E050E068E070E0CE01E8 -:102200000E9497128091E8008E778093E80080E129 -:10221000FE01ACE7B2E001900D928A95E1F7DF9103 -:10222000CF91089580911203811109C00E942C144E -:102230000E9489148091E20084608093E2000895F6 -:10224000109212030895089508950C94D02242E04C -:1022500061EC81E00E94A61342E061EC82E00E9402 -:10226000A61342E061EC83E00E94A61342E161EC18 -:1022700084E00C94A61380911503833009F455C0B3 -:1022800030F4813071F0823009F48EC008958A30C4 -:1022900009F47AC08B3009F460C0893009F09CC021 -:1022A00020C080911403813A09F096C08091E80023 -:1022B000877F8093E8008091180390911903892B00 -:1022C00021F460E18CE792E003C060E080E090E000 -:1022D00070E00E94E2128091E8008B778093E80022 -:1022E000089580911403813209F076C0809118031B -:1022F00090911903009719F0039709F06DC0809130 -:10230000E800877F8093E8008091E80082FD05C0A7 -:10231000809113038111F8CF5FC08091F100809309 -:102320008C028091E8008B7753C080911403813A2E -:1023300009F052C08091180390911903892B09F07C -:102340004BC08091E800877F8093E8008091E8008F -:1023500080FFFCCF8091150136C08091140381323B -:10236000D9F58091180390911903892BA9F58091D3 -:10237000E800877F8093E8000E94DB1380911603BA -:10238000809315010C94111C80911403813221F566 -:102390008091E800877F8093E8000E94DB138091A2 -:1023A000170380938D02089580911403813AA1F45C -:1023B0008091E800877F8093E8008091E80080FFAB -:1023C000FCCF80918D028093F1008091E8008E77A0 -:1023D0008093E8000C94DB13089584B7877F84BF53 -:1023E00088E10FB6F89480936000109260000FBEF1 -:1023F00090E080E80FB6F8948093610090936100BC -:102400000FBE0E947E170E942C140E948914809196 -:10241000E20084608093E20078940E940F170E948B -:1024200080178BE091E00E942A178091130385307A -:1024300069F40E949122809111038823B1F30E94D4 -:10244000BF22882391F30E948112EFCF0E94881748 -:10245000ECCF292F332723303105C9F064F4213024 -:10246000310581F02230310509F043C08DE690E05E -:1024700020E134E042C021323105F1F02232310551 -:1024800041F137C082E190E02DE734E036C0992772 -:102490008130910541F08230910541F0892B49F559 -:1024A000ECE0F4E005C0EEEDF3E002C0E4EBF3E0B5 -:1024B000849190E09F0121C06430D8F4E62FF0E0D1 -:1024C000EE0FFF1FE255FE4F2081318189E090E041 -:1024D00014C0643070F470E0FB01EE0FFF1FEA558A -:1024E000FE4F20813181FB01EE55FE4F808190E04F -:1024F00004C080E090E020E030E0FA0131832083E6 -:10250000089580E189BD82E189BD09B400FEFDCF57 -:102510008091D8008F7D8093D8008091E000826008 -:102520008093E0008091E00081FDFCCF0895CF9280 -:10253000DF92EF92FF920F931F93CF93DF93EC0103 -:102540008B016A010E94FA13811133C0C114D104B6 -:1025500039F0F60180819181081B190BC80FD91F32 -:10256000E12CF12C0115110519F18091E80085FD90 -:1025700016C08091E8008E778093E800C114D104E2 -:1025800049F0F60180819181E80EF91EF182E08226 -:1025900085E00FC00E94FA13882321F30AC08991B5 -:1025A0008093F10001501109FFEFEF1AFF0ADACF13 -:1025B00080E0DF91CF911F910F91FF90EF90DF901E -:1025C000CF90089520911A0330911B0326173707E7 -:1025D00048F06115710539F42091E8002E772093B9 -:1025E000E80001C0B90140E061157105A9F1209131 -:1025F0001303222309F443C0253009F442C020917B -:10260000E80023FD40C02091E80022FD32C0209167 -:10261000E80020FFE9CF4091F3002091F20030E084 -:10262000342BFC01CF016115710559F028303105BB -:1026300040F481918093F100615071092F5F3F4F09 -:10264000F1CF41E02830310509F040E02091E80069 -:102650002E772093E800C8CF4111C9CF0AC08091DE -:102660001303882361F0853061F08091E80083FDD9 -:102670000AC08091E80082FFF2CF80E0089582E0F6 -:10268000089583E0089581E0089520911A03309120 -:102690001B032617370748F06115710539F420919F -:1026A000E8002E772093E80001C0B901FC0120E08A -:1026B0006115710591F180911303882309F440C0DD -:1026C000853009F43FC08091E80083FD3DC08091D2 -:1026D000E80082FD2FC08091E80080FFE9CF2091C3 -:1026E000F3008091F20090E0922B6115710559F092 -:1026F0008830910540F424912093F1003196615087 -:1027000071090196F2CF21E0089709F020E080914D -:10271000E8008E778093E800CBCF2111CCCF0AC0A0 -:1027200080911303882361F0853061F08091E80087 -:1027300083FD0AC08091E80082FFF2CF80E0089517 -:1027400082E0089583E0089581E00895982F9730FE -:1027500058F59093E900981739F07091EC002091AA -:10276000ED005091F00003C0242F762F50E021FFA0 -:1027700019C03091EB003E7F3093EB003091ED00BB -:102780003D7F3093ED003091EB0031603093EB00F2 -:102790007093EC002093ED005093F0002091EE0038 -:1027A00027FF07C09F5FD3CF8F708093E90081E040 -:1027B000089580E008958091140387FF11C08091EF -:1027C000E80082FD05C0809113038111F8CF11C08C -:1027D0008091E8008B770BC080911303882349F028 -:1027E0008091E80080FFF8CF8091E8008E77809399 -:1027F000E80008952091E4003091E50095E64091CD -:10280000EC00842F817040FF22C08091E80080FDA1 -:102810001CC080911303882391F0853091F0809142 -:10282000EB0085FD10C04091E4005091E500421797 -:10283000530729F39A01915011F784E0089582E03B -:10284000089583E0089581E0089580E0089540911F -:10285000E80042FFDECF08950E949A140E94A2145D -:10286000E0EEF0E0808181608083E8EDF0E080813F -:102870008F77808319BCA7EDB0E08C918E7F8C930D -:1028800080818F7E80831092120308950F931F938F -:10289000CF93DF930E949A140E94A214C8EDD0E057 -:1028A00088818F77888388818068888388818F7DFD -:1028B000888319BC1092130310920F031092110316 -:1028C0001092100300EE10E0F80180818B7F80836E -:1028D00088818160888342E060E080E00E94A613E6 -:1028E000E1EEF0E080818E7F8083E2EEF0E0808197 -:1028F00081608083808188608083F80180818E7F01 -:102900008083888180618883DF91CF911F910F91AF -:102910000895E8EDF0E080818F7E8083E7EDF0E0C0 -:1029200080818160808384E082BF81E08093120394 -:102930000C944614E8EDF0E080818E7F8083109245 -:10294000E20008951092DA001092E10008951F92BB -:102950000F920FB60F9211242F933F934F935F93D3 -:102960006F937F938F939F93AF93BF93EF93FF9357 -:102970008091E10082FF0BC08091E20082FF07C0DE -:102980008091E1008B7F8093E1000E940E1780917F -:10299000DA0080FF1FC08091D80080FF1BC08091AB -:1029A000DA008E7F8093DA008091D90080FF0DC01D -:1029B00080E189BD82E189BD09B400FEFDCF81E0DF -:1029C000809313030E94121105C019BC10921303C7 -:1029D0000E9420118091E10080FF19C08091E200E7 -:1029E00080FF15C08091E2008E7F8093E20080918D -:1029F000E20080618093E2008091D8008062809341 -:102A0000D80019BC85E0809313030E9424118091A3 -:102A1000E10084FF30C08091E20084FF2CC080E19F -:102A200089BD82E189BD09B400FEFDCF8091D80047 -:102A30008F7D8093D8008091E1008F7E8093E100AC -:102A40008091E2008F7E8093E2008091E2008160BD -:102A50008093E20080910F03882311F084E007C087 -:102A60008091E30087FD02C081E001C083E0809394 -:102A700013030E9425118091E10083FF29C08091FA -:102A8000E20083FF25C08091E100877F8093E10011 -:102A900082E08093130310920F038091E1008E7FF8 -:102AA0008093E1008091E2008E7F8093E20080912C -:102AB000E20080618093E20042E060E080E00E94FA -:102AC000A6138091F00088608093F0000E9423118B -:102AD000FF91EF91BF91AF919F918F917F916F91F6 -:102AE0005F914F913F912F910F900FBE0F901F90CC -:102AF00018951F920F920FB60F9211242F933F93A8 -:102B00004F935F936F937F938F939F93AF93BF93F5 -:102B1000CF93DF93EF93FF93C091E900CF70809143 -:102B2000EC00D82FD17080FDD0E81092E9008091A0 -:102B3000F000877F8093F00078940E94BD1510927A -:102B4000E9008091F00088608093F000CD2BCF7079 -:102B5000C093E900FF91EF91DF91CF91BF91AF91C9 -:102B60009F918F917F916F915F914F913F912F91A5 -:102B70000F900FBE0F901F9018951F93CF93DF9368 -:102B8000CDB7DEB7AA970FB6F894DEBF0FBECDBFA4 -:102B9000E4E1F3E088E08E0F9091F10091938E13C1 -:102BA000FBCF0E943B118091E80083FF1FC1809101 -:102BB000140390911503492F50E04A30510508F055 -:102BC00015C1FA01EA5AFF4F0C94CA2C803881F0E3 -:102BD000823809F00BC1809118038F708093E9004F -:102BE0008091EB0085FB882780F91092E90006C0F0 -:102BF0008091100390911103911182609091E800EF -:102C0000977F9093E8008093F1001092F100C8C084 -:102C1000282F2D7F09F0EAC0882319F0823061F057 -:102C2000E5C080911603813009F0E0C0933009F0CF -:102C300080E0809311032BC080911603811127C07F -:102C4000809118038F7009F4D1C08093E90020911E -:102C5000EB0020FF1CC0933021F48091EB008062D8 -:102C600014C09091EB0090619093EB0021E030E074 -:102C7000A90102C0440F551F8A95E2F74093EA006C -:102C80001092EA008091EB0088608093EB00109234 -:102C9000E9008091E800877F86C08111A7C010916C -:102CA00016031F778091E3008078812B8093E300E7 -:102CB0008091E800877F8093E8000E94DB13809179 -:102CC000E80080FFFCCF8091E30080688093E30000 -:102CD000111102C082E001C083E08093130386C01B -:102CE0008058823008F082C08091160390911703BB -:102CF0008C3D53E0950779F583E08A838AE28983E6 -:102D00004FB7F894DE01139620E03EE051E2E32F46 -:102D1000F0E050935700E49120FF03C0E295EF707C -:102D20003F5FEF708E2F90E0EA3010F0C79601C041 -:102D3000C0968D939D932F5F243149F74FBF8091AB -:102D4000E800877F8093E8006AE270E0CE01019698 -:102D50000E94E21214C0AE014F5F5F4F60911803F2 -:102D60000E942912BC01009709F440C09091E8002C -:102D7000977F9093E80089819A810E944513809102 -:102D8000E8008B778093E80031C0803879F5809136 -:102D9000E800877F8093E80080910F038093F10023 -:102DA0008091E8008E778093E8000E94DB131EC0BC -:102DB00081111CC0909116039230C0F48091E800FC -:102DC000877F8093E80090930F030E94DB1380912C -:102DD0000F03811106C08091E30087FD02C081E0EE -:102DE00001C084E0809313030E9427118091E800C2 -:102DF00083FF0AC08091E800877F8093E80080917C -:102E0000EB0080628093EB00AA960FB6F894DEBFC9 -:102E10000FBECDBFDF91CF911F9108950895CF933D -:102E2000809113038823A1F0C091E900CF709091A5 -:102E3000EC00892F817090FD80E8C82B1092E9008A -:102E40008091E80083FD0E94BD15CF70C093E9001A -:102E5000CF91089590939302809392020895E09108 -:102E60009202F0919302309721F00190F081E02DD1 -:102E7000099480E00895E0919202F09193023097D6 -:102E800021F00280F381E02D09940895E0919202EF -:102E9000F0919302309721F00480F581E02D0994A0 -:102EA000089520919002309191028217930771F05A -:102EB0009093910280939002E0919202F09193029C -:102EC000309721F00680F781E02D09940895209134 -:102ED0008E0230918F028217930771F090938F02C8 -:102EE00080938E02E0919202F0919302309721F04C -:102EF0000084F185E02D0994089508950C947D17C0 -:102F00000E9404230E9455090E948A230C943928A8 -:102F10005F926F927F928F929F92AF92BF92CF9269 -:102F2000DF92EF92FF920F931F93CF93DF9300D026 -:102F300000D01F92CDB7DEB70E949A099DE9C92E35 -:102F400092E0D92E03E010E0AA24A394B12C502ED5 -:102F5000802F0E94150A4C01F601729062906F0159 -:102F60006826792661147104A1F40150110978F7DB -:102F70008FEF89838A831B820E940D238160782FC3 -:102F80009D838C8349815A816B818D810E94381881 -:102F900038C08091F20281FD0E941E0A2BE030E0D1 -:102FA0007501022E02C0EE0CFF1C0A94E2F7C70165 -:102FB00086219721892B09F129835A828E209F200F -:102FC00091E0892809F490E09B830E940D238160A1 -:102FD000782F9D838C8349815A816B818D810E94DA -:102FE0003818000F111FF801EB56FD4F80819181B9 -:102FF000E826F926F182E08204C02150310980F6EA -:10300000B4CF0E947125109194020E942F171817B7 -:10301000D1F00E942F17809394020F900F900F9081 -:103020000F900F90DF91CF911F910F91FF90EF9034 -:10303000DF90CF90BF90AF909F908F907F906F90D8 -:103040005F900C943F090F900F900F900F900F908E -:10305000DF91CF911F910F91FF90EF90DF90CF9074 -:10306000BF90AF909F908F907F906F905F900895EA -:10307000CF93DF93CDB7DEB72B970FB6F894DEBFB3 -:103080000FBECDBF4F83588769877A878B87DE0154 -:10309000119686E0FD0111928A95E9F785E0FE011F -:1030A000379601900D928A95E1F749815A816B819B -:1030B0007C818D819E810E94AF1E2B960FB6F89465 -:1030C000DEBF0FBECDBFDF91CF910895CF93882390 -:1030D00009F4C2C0C82F823859F40E942F1781FD0D -:1030E000BBC089E30E9489210E94562289E30CC05B -:1030F000833879F40E942F1780FDAEC083E50E94CB -:1031000089210E94562283E50E94CB21CF910C9405 -:103110005622843859F40E942F1782FD9DC087E4FF -:103120000E9489210E94562287E4EECF8CEF8C0FFB -:10313000813A48F48C2F0E94A12781118DC08C2FD9 -:103140000E948921E3CF80E28C0F883048F4C77059 -:1031500081E001C0880FCA95EAF70E940F22D6CFFE -:103160008BE58C0F833078F4C53A29F0C63A31F0FC -:1031700083E890E005C081E890E002C082E890E03A -:10318000CF910C94511788E58C0F833108F064C0FF -:10319000C83A39F1C93A41F1CA3A49F1CB3A51F149 -:1031A000CC3A59F1CD3A61F1C03B69F1CE3A71F1B7 -:1031B000CF3A79F1C13B81F1C23B89F1C33B91F137 -:1031C000C43B99F1C53BA1F1C63BA9F1C73BB1F1A5 -:1031D000C83BB9F1C93BC1F1CA3BC9F180E090E0FD -:1031E00038C082EE90E035C089EE90E032C08AEEC1 -:1031F00090E02FC085EB90E02CC086EB90E029C0DA -:1032000087EB90E026C08CEC90E023C08DEC90E042 -:1032100020C083E891E01DC08AE891E01AC082E9ED -:1032200091E017C084E991E014C081E292E011C0FE -:1032300083E292E00EC084E292E00BC085E292E06D -:1032400008C086E292E005C087E292E002C08AE20E -:1032500092E0CF910C946717CF910895882309F4D9 -:103260004BC0823859F40E942F1781FF45C089E373 -:103270000E9489210E94562289E30CC0833871F490 -:103280000E942F1780FF38C083E50E9489210E9489 -:10329000562283E50E94CB210C945622843859F49F -:1032A0000E942F1782FF28C087E40E9489210E9474 -:1032B000562287E4EFCF9CEF980F913A58F390E2B3 -:1032C000980F983050F4877091E001C0990F8A955B -:1032D000EAF7892F0E941522DFCF9BE5980F9330E4 -:1032E00020F480E090E00C945117885A833120F448 -:1032F00080E090E00C9467170895882321F00E94E5 -:103300000F220C9456220895882321F00E94152242 -:103310000C94562208957F928F929F92AF92BF9203 -:10332000CF92DF92EF92FF920F931F93CF93DF9391 -:103330001F92CDB7DEB77C01C62E772EFC0105812A -:1033400002950F70128111110E942C220E9482217D -:10335000882379F0112369F080E28C0D883048F0E1 -:1033600082E00E946B210E94822191E0D82ED92612 -:1033700001C0D12CE72DE295EF70F0E0E05AFF4F4D -:103380000C94CA2C872D807F072D0F70882311F095 -:103390000295007F112389F0002309F499C180E28E -:1033A0008C0D883020F4802F0E940F2203C0802FC4 -:1033B0000E941F220E9456228BC18C2D0E942E1922 -:1033C000002309F4C3C180E28C0D883020F4802FE3 -:1033D0000E94152203C0802F0E9425220E9456229F -:1033E000B5C1872D807F972D9F70803211F4892F72 -:1033F00003C0892F8295807FCC2021F0F1E0CF1689 -:10340000A1F01DC0112339F0002319F1013009F595 -:103410000E943F229BC1002319F0013009F496C19C -:1034200089830E944222898110C1112321F0063034 -:1034300008F08CC10EC0053008F088C106C1112308 -:1034400059F0002331F0F701958190FF41C19F7041 -:1034500095830E947D197AC1002309F4F6C03EC10C -:10346000872D86958695837090E0009719F00197D7 -:1034700061F06CC1112321F08C2D972D937002C047 -:1034800080E090E00E94511761C1112321F08C2D42 -:10349000972D937002C080E090E00E94671756C19C -:1034A0008C2D112319F00E94792402C00E94E1247E -:1034B0000E9466254BC1872D837009F052C01111FF -:1034C00045C18C2D829586958770880F880F9C2D1D -:1034D0009F70892E912CA12CB12C082E04C0880C31 -:1034E000991CAA1CBB1C0A94D2F7C4FE14C00FE09E -:1034F00010E020E030E0B901A80104C0440F551FDE -:10350000661F771F8A95D2F7CB01BA016095709537 -:103510008095909503C060E070E0CB01272D269543 -:103520002695237030E02230310569F023303105D3 -:1035300089F0682979298A299B292130310571F080 -:103540000E94F71F03C1682979298A299B290E94B3 -:103550001320FCC00E94F71FC501B4010E94DB1FAD -:10356000F5C0112319F0872D817001C0869588233D -:1035700009F4ECC08C2D829586958770880F880F92 -:103580009C2D9F70892E912CA12CB12C082E04C04B -:10359000880C991CAA1CBB1C0A94D2F7C4FE14C048 -:1035A0000FE010E020E030E0B901A80104C0440FB2 -:1035B000551F661F771F8A95D2F7CB01BA01609518 -:1035C00070958095909503C060E070E0CB01272D49 -:1035D000269526952370422F50E04230510569F020 -:1035E0004330510589F0682979298A299B2941307E -:1035F000510571F00E94D120A9C0682979298A2932 -:103600009B290E94ED20A2C00E94D120C501B401D7 -:103610000E94B5209BC08C2D90E0FC01E05EF1097A -:10362000E531F10508F050C0E059FF4F0C94CA2C69 -:103630000C2D0F70872D8F71112321F00E944E20C9 -:10364000802F07CF0E946F20802F0E9484197EC098 -:10365000112341F0053008F079C0872D8F710E9449 -:10366000942074C0063008F071C0F7CF112339F0F0 -:10367000872D8F710E944E2069C01123C9F3872DB9 -:103680008F710E946F2062C0112329F0872D8F71E6 -:103690000E9439205BC00E942F2058C0112351F096 -:1036A000172D1F71812F0E944E2063E0812F0E94F1 -:1036B00062214CC081E00E946B21023008F446C0B8 -:1036C00082E00E946B2142C0112331F0002381F27D -:1036D0008C2D0E9466183AC0002389F28C2D0E941E -:1036E0002E1934C0472D4F706C2DC7010E941D0646 -:1036F0000E94531F2BC0111129C0472D4F7050E05D -:1037000042305105B9F04CF44115510581F041307A -:103710005105E1F40E94612819C04330510569F058 -:103720004430510599F48C2D0E94B3280FC00E949B -:103730004A280CC00E947D2809C00E94902806C01B -:10374000472D4F706C2DC7010E942006DD20F9F037 -:103750000E945E2180FD1BC0F70112820E94582149 -:103760000E944E20C7010E94D61B0E9458210F9034 -:10377000DF91CF911F910F91FF90EF90DF90CF904D -:10378000BF90AF909F908F907F900C946F200F9080 -:10379000DF91CF911F910F91FF90EF90DF90CF902D -:1037A000BF90AF909F908F907F9008950F931F933D -:1037B000CF93DF93EC01888199812B813C81232B6E -:1037C000B9F09F3F11F48F3F99F0CE010E941C0485 -:1037D000882371F0688179818A810E9454218C014B -:1037E0000E9409210E94D01FB801CE010E948B19AE -:1037F000DF91CF911F910F9108950E942C220E947A -:103800003C220E9401220E9456220E9417260E94FA -:10381000662580E090E00E94511780E090E00C94D3 -:1038200067170E941C220C94FD1B0E944921292F1E -:1038300022952F7030E02C3031054CF42A303105C0 -:103840006CF42250310922303105A8F407C02C3025 -:10385000310569F02F30310551F00DC0803F69F01E -:1038600018F4803E40F409C0843F29F406C093FB5D -:10387000882780F9089580E0089581E00895CF9326 -:10388000DF9300D000D01F92CDB7DEB70F900F901E -:103890000F900F900F90DF91CF910895CF93DF930A -:1038A00000D000D000D0CDB7DEB726960FB6F89482 -:1038B000DEBF0FBECDBFDF91CF9108951F93CF9391 -:1038C000DF93C0919D0216E080919E02C81799F087 -:1038D000D0E01C9FF0011D9FF00D1124E156FD4F1B -:1038E0004081518162817381848195810E944E1C47 -:1038F0002196C770E9CFDF91CF911F910895409134 -:10390000CF025091D0026091D1027091D202809189 -:10391000D3029091D4020C944E1C8091D4028295D3 -:103920008F7009F054C08091D102882309F44FC0F0 -:1039300080919D02A0919E026091CF027091D00271 -:103940004091D2025091D302B6E08A1709F43FC0E9 -:1039500090E041155105C1F17F3F11F46F3FA1F196 -:10396000B89FF001B99FF00D1124E156FD4F218160 -:1039700072132AC02081621327C02281211124C022 -:10398000238134812417350710F421503109241B79 -:10399000350B283C3105C0F42091D4022F702061F2 -:1039A0002093D40226E0289FF001299FF00D1124D6 -:1039B000EC55FD4F80818F70806180838FEC92E0A9 -:1039C0000E94D61B0C945E1C01968770BECF089592 -:1039D000CF92DF92EF92FF920F931F93CF93DF93DB -:1039E000CDB7DEB762970FB6F894DEBF0FBECDBF7E -:1039F0008C0185E0F801DE011D9601900D928A95FB -:103A0000E1F7D8014C9111965C91119712966C9147 -:103A100012971396CD90DC9014973091CF0270914D -:103A2000D0028091D2029091D302009709F46BC129 -:103A30007F3F19F43F3F09F466C1E090D102EE20C8 -:103A400009F4C0C02091D402C816D90628F0F601A6 -:103A5000E81BF90BCF0104C0809590958C0D9D1D3E -:103A6000FF24F394883C910578F0F12C207F09F035 -:103A7000C6C07C2DD98AC88A89890E943F1C8FECD8 -:103A800092E00E94D61BB1C0822F807F09F046C011 -:103A9000751314C0341312C0611110C02F7020614F -:103AA0002093D4020E947F1C8FEC92E00E94D61BD0 -:103AB0008091D402D80115968C932EC0CD2819F18F -:103AC0005F3F11F44F3FF9F0F62E61111CC0809159 -:103AD0009D0220919E0236E0821709F45AC090E0C0 -:103AE000389FF001399FF00D1124E156FD4F71818F -:103AF000571306C07081471303C07281711103C050 -:103B000001968770E9CFF62E662309F418C18091DB -:103B1000D40281608093D402F12C11C1751308C0C6 -:103B2000341306C0611104C08091D402D801C3C00F -:103B30004D875E878D859E856A8B0E94151C6A89DC -:103B40008823E1F16623D1F12091D402822F82955E -:103B50008F7090E0029774F08091CF029091D00224 -:103B600098878F831986DB86CA862C87CE010796B5 -:103B70000E94D61B86E0F801AFECB2E001900D92F6 -:103B80008A95E1F70E948D1C0E947F1CFF24F3940C -:103B9000D6C04D875E878D859E850E944921292F3D -:103BA00022952F7030E0223031050CF0BCC09F70A0 -:103BB00009F0B6C0805E883008F4C1C0C8010E9418 -:103BC000D61BE4CFC816D90608F453C0F601E81B8B -:103BD000F90BCF01883C910508F450C0F12C7C2DE5 -:103BE000D98AC88A89890E943F1CEFECF2E086E0FE -:103BF000DF011D928A95E9F70E947F1CA0C0751312 -:103C000014C0341312C0611110C08091D402F801A5 -:103C10008583C8010E94D61B86E0EFECF2E0DF014D -:103C20001D928A95E9F7FE2C8AC04D875E878D85A7 -:103C30009E856A8B0E94151C6A89882309F4BECF71 -:103C4000662309F4BBCF2091D402822F82958F7016 -:103C500090E002970CF48ECF8091CF029091D00229 -:103C60009A8389831B82DD82CC822E83CE010196CA -:103C70007FCF809590958C0D9D1DACCFF62E662341 -:103C800009F49CCF75132EC034132CC02091D4029C -:103C900020FD1FC0822F82958F70D9F0D801159614 -:103CA0002C9315978F3049F08F5F982F9295907FC6 -:103CB000822F8F70892B15968C93C8010E94D61B7A -:103CC00086E0F801AFECB2E001900D928A95E1F741 -:103CD00093CF86E0F801AFECB2E001900D928A95A7 -:103CE000E1F72DC04D875E878D859E850E94151C4E -:103CF000811140CF8091D40281608093D402C801A9 -:103D00000E94D61B1CC0662309F458CF4D875E87DE -:103D10008D859E850E94151C882309F44FCF2ACFDC -:103D2000811148CF0CC0243031050CF047CF9F7073 -:103D300009F440CFF8019581907F09F03BCF8F2D9A -:103D400062960FB6F894DEBF0FBECDBFDF91CF9164 -:103D50001F910F91FF90EF90DF90CF9008951F93E8 -:103D6000CF93DF93CDB7DEB72C970FB6F894DEBFB5 -:103D70000FBECDBF4F83588769877A878B879C8713 -:103D8000CE0107960E94E81C882369F08F819885F0 -:103D90002A853B85232BF1F19F3F09F063C08F3FBC -:103DA00009F060C037C086E0FE013796DE0111964B -:103DB00001900D928A95E1F76F817885EA85FB8500 -:103DC000309741F17F3F11F46F3F21F120919E0226 -:103DD00030E0C90101968770992740919D0250E01B -:103DE0008417950709F447C069837A83FD83EC83C0 -:103DF00096E0929FD001939FB00D1124A156BD4F24 -:103E0000FE01319601900D929A95E1F780939E0202 -:103E10000E945E1C16E080919D0290919E0289177F -:103E2000C1F1189FC001112481569D4F0E94E81CCA -:103E3000882379F1E0919D021E9FF0011124E15643 -:103E4000FD4F4081518162817381848195810E94FF -:103E50004E1C80919D0290E0019687709927809377 -:103E60009D02D9CF4F81588569857A858B859C8540 -:103E70000E944E1CCFCF0E94111C10929E021092E5 -:103E80009D02EFECF2E086E0DF011D928A95E9F7F2 -:103E9000C1CF2C960FB6F894DEBF0FBECDBFDF9119 -:103EA000CF911F910895EF92FF920F931F93CF939D -:103EB000DF938C01009709F46CC0F12CEE24E3949D -:103EC000E8012196F8018491843740F4843008F0A9 -:103ED00051C0813081F0823019F15BC0853709F41F -:103EE00044C0A8F19CE7980F903708F052C08F7734 -:103EF0000E942E1941C00E5F1F4FFE01C49180E247 -:103F00008C0F883048F4C7708E2D01C0880FCA9579 -:103F1000EAF70E942F2214C08C2F0E9466182DC031 -:103F20000E5F1F4FFE01C49180E28C0F883058F461 -:103F3000C7708E2D01C0880FCA95EAF70E943522FE -:103F40000E9456221AC08C2F0E942E1916C00E5F96 -:103F50001F4FFE01C491CC2381F08FE99FE00197B0 -:103F6000F1F700C00000C150F6CF0E5F1F4FFE01F9 -:103F7000F49003C00E9466188E018F2D882309F4E7 -:103F80009FCFEFE9FFE03197F1F700C000008150CB -:103F9000F5CFDF91CF911F910F91FF90EF90089592 -:103FA00008956093D9027093DA028093DB029093B4 -:103FB000DC020C94FD1B0F931F930091D90210910A -:103FC000DA022091DB023091DC02DC01CB01802B94 -:103FD000912BA22BB32B8093D9029093DA02A0935A -:103FE000DB02B093DC021F910F910C94FD1B0F9329 -:103FF0001F930091D9021091DA022091DB023091D7 -:10400000DC02DC01CB0180239123A223B323809324 -:10401000D9029093DA02A093DB02B093DC021F91E5 -:104020000F910C94FD1B0F931F930091D9021091D7 -:10403000DA022091DB023091DC02DC01CB01802727 -:104040009127A227B3278093D9029093DA02A093F5 -:10405000DB02B093DC021F910F910C94FD1B1092B8 -:10406000D5021092D6021092D7021092D8020C9468 -:10407000FD1B41E050E060E070E004C0440F551FBC -:10408000661F771F8A95D2F74093D5025093D602C8 -:104090006093D7027093D8020C94FD1B41E050E06E -:1040A00060E070E004C0440F551F661F771F8A95BB -:1040B000D2F78091D5029091D602A091D702B0910B -:1040C000D802482B592B6A2B7B2B4093D502509357 -:1040D000D6026093D7027093D8020C94FD1B41E086 -:1040E00050E060E070E004C0440F551F661F771F6A -:1040F0008A95D2F740955095609570958091D5023C -:104100009091D602A091D702B091D80248235923AA -:104110006A237B234093D5025093D6026093D70243 -:104120007093D8020C94FD1B41E050E060E070E019 -:1041300004C0440F551F661F771F8A95D2F78091E0 -:10414000D5029091D602A091D702B091D80248270B -:1041500059276A277B274093D5025093D602609354 -:10416000D7027093D8020C94FD1B0F931F930091FC -:10417000D5021091D6022091D7023091D802DC01ED -:10418000CB01802B912BA22BB32B8093D502909344 -:10419000D602A093D702B093D8021F910F910C942E -:1041A000FD1B0F931F930091D5021091D602209111 -:1041B000D7023091D802DC01CB0180239123A223C6 -:1041C000B3238093D5029093D602A093D702B093E5 -:1041D000D8021F910F910C94FD1B0F931F93009118 -:1041E000D5021091D6022091D7023091D802DC017D -:1041F000CB0180279127A227B3278093D5029093E4 -:10420000D602A093D702B093D8021F910F910C94BD -:10421000FD1B0895CF92DF92EF92FF920F931F93B1 -:10422000CF93DF938C01C090D902D090DA02E09056 -:10423000DB02F090DC028091D5029091D602A09131 -:10424000D702B091D802C82AD92AEA2AFB2ACFE19C -:10425000D0E0D701C6010C2E04C0B695A79597955E -:1042600087950A94D2F780FF06C0B8018C2F0E9470 -:10427000A508019721F4219760F780E001C08C2FF9 -:10428000DF91CF911F910F91FF90EF90DF90CF9032 -:104290000895CF93DF93EC010E940A21BE010E9492 -:1042A000A508DF91CF910895CB010E94492108957F -:1042B0008091DD0285958595859508958091DD0233 -:1042C0008770089598E0899F90011124262B2093F0 -:1042D000DD020C944E202091DD0280958223809394 -:1042E000DD02982F977069F430E0482F552747FD7D -:1042F00050952417350729F08595859585950C945B -:104300006F2008959091DD02977081E009F480E0BC -:10431000089590911501992321F090911601911122 -:1043200009C02091170130911801F90132969FEFD1 -:1043300040E01FC0982F9695969596959F3050F522 -:10434000E0911701F0911801E90FF11D877021E04C -:1043500030E0A90102C0440F551F8A95E2F7CA0157 -:104360009181892B818308959F3F39F04F5F4E30B3 -:1043700041F051915813F8CF0DC05111F7CF942F40 -:10438000F5CF9F3F39F0F901E90FF11D97FDFA953F -:1043900082830895089590911501992321F09091B9 -:1043A0001601911109C02091170130911801F901EE -:1043B0003296205F3F4F1FC0982F96959695969501 -:1043C0009F30F0F4E0911701F0911801E90FF11D11 -:1043D000877021E030E0A90102C0440F551F8A9583 -:1043E000E2F7CA01809591818923818308953196EE -:1043F000E217F30729F090819813F9CF1082F7CFD5 -:10440000089581E090E0E0911701F0911801E80F24 -:10441000F91F1082019680319105A9F708959091B6 -:10442000F102892B8093F102089580959091F10219 -:1044300089238093F10208951092F10208959091DA -:10444000F002892B8093F002089580959091F002FC -:1044500089238093F00208951092F00208959091BC -:10446000EF02892B8093EF02089580959091EF02DF -:1044700089238093EF0208951092EF0208958093AC -:10448000DE0208951092DE02089580911701909146 -:104490001801FC0131969C01205F3F4F80E0919113 -:1044A00091118F5FE217F307D1F70895E09117019B -:1044B000F09118018091F1028083E0911701F09151 -:1044C000180190818091F002892B8083E09117017F -:1044D000F091180190818091EF02892B8083809167 -:1044E000DE02882361F0E0911701F09118019081BC -:1044F000892B80830E94452281111092DE028091D7 -:104500001701909118010C943B1720E0009739F0A7 -:10451000AC0141505109842395232F5FF7CF822F9F -:10452000089580911303843039F11092F30220E44E -:1045300088E190E00FB6F894A895809360000FBED4 -:104540002093600080E00E94200380E00E943F09E9 -:1045500083B7817F846083BF83B7816083BF789492 -:10456000889583B78E7F83BF88E10FB6F8948093D8 -:104570006000109260000FBE08950895089580E0D5 -:104580000E9420030E94BD220E949A090E94BE221E -:104590000E941F0A91E0811101C090E0892F0895C7 -:1045A0000E94111C80E00E9420030E9439280E9472 -:1045B0002F170C943F091F920F920FB60F921124E0 -:1045C0008F939F93AF93BF938091F302811113C098 -:1045D0008091F4029091F502A091F602B091F70259 -:1045E0004196A11DB11D8093F4029093F502A09312 -:1045F000F602B093F702BF91AF919F918F910F9008 -:104600000FBE0F901F90189582E084BD93E095BD7A -:104610009AEF97BD80936E0008952FB7F89480911C -:10462000F4029091F502A091F602B091F7022FBF2B -:104630000895CF92DF92EF92FF920F931F932FB7BF -:10464000F8944091F4025091F5026091F602709155 -:10465000F7022FBF6A017B01EE24FF248C0120E0CA -:1046600030E0C016D106E206F30610F441505109BD -:104670009A01281B390BC9011F910F91FF90EF90F0 -:10468000DF90CF9008951F920F920FB60F921124D2 -:104690008F939F93AF93BF938091F4029091F50213 -:1046A000A091F602B091F7020196A11DB11D809371 -:1046B000F4029093F502A093F602B093F702BF9133 -:1046C000AF919F918F910F900FBE0F901F901895F3 -:1046D0000E942C14F8942FEF87EA91E62150804035 -:1046E0009040E1F700C0000087E090EBDC01809390 -:1046F0001E0390931F03A0932003B09321039CE01B -:1047000088E10FB6F894A895809360000FBE90934F -:104710006000FFCF0E94C923811102C00E94A5231F -:104720000E94D4238093F2020E94DC2380931C0316 -:1047300087FB882780F9809316010E94D823682F71 -:1047400070E080E090E00C94D11F6DEE7EEF80E091 -:1047500090E00E94F02C60E082E090E00E94DE2C6D -:1047600060E083E090E00E94DE2C60E084E090E076 -:104770000E94DE2C60E085E090E00E94DE2C60E08C -:1047800086E090E00E94DE2C6FEF87E090E00C94D2 -:10479000DE2C80E090E00E94D82C21E08D3E9E4FE0 -:1047A00009F020E0822F089582E090E00C94D02C54 -:1047B00083E090E00C94D02C84E090E00C94D02C1A -:1047C000682F84E090E00C94DE2C86E090E00C945E -:1047D000D02C682F86E090E00C94DE2C87E090E0EF -:1047E0000C94D02C682F87E090E00C94DE2C809104 -:1047F000FA0280FF0BC060911C0185E0689FB00148 -:10480000112475956795759567952BC081FF09C033 -:1048100060911C0185E0689FB00111247595679532 -:1048200020C082FF07C060911C0185E0689FB00135 -:10483000112417C09091FB029923D1F060911B01C4 -:10484000961788F720911C0185E0289F900111247C -:10485000929FA001939F500D112470E0CA010E9405 -:10486000B62C6038710540F46115710539F002C04D -:1048700065E070E0862F08958FE7089581E0089540 -:104880008091FA0280FF08C060911A0170E075956E -:1048900067957595679521C081FF06C060911A01E3 -:1048A00070E07595679519C082FF04C060911A0188 -:1048B00070E010C09091FB029923C1F06091190142 -:1048C0009617A0F780911A01899FC001112470E00A -:1048D0000E94B62C6038710528F46115710521F02D -:1048E000862F08958FE7089581E0089561E070E0D4 -:1048F000F4CF803F21F40E94F723819504C0813FCB -:1049000029F40E94F7238093FE020895823F21F448 -:104910000E94F723819504C0833F29F40E94F72366 -:104920008093FD020895893F19F40E94402405C038 -:104930008A3F31F40E94402481958093FF020895BC -:104940008B3F21F40E944024819504C08C3F29F4C0 -:104950000E944024809300030895843F21F48091B5 -:10496000FC02816017C0853F21F48091FC028260C7 -:1049700011C0863F21F48091FC0284600BC0873F08 -:1049800021F48091FC02886005C0883F31F4809159 -:10499000FC0280618093FC0208958D3F21F4809198 -:1049A000FA0281600BC08E3F21F48091FA0282608E -:1049B00005C08F3F29F48091FA0284608093FA0247 -:1049C0000895803F39F48091FE0287FF6CC01092F9 -:1049D000FE0269C0813F29F48091FE021816BCF3E3 -:1049E00062C09091FD02823F29F497FF5CC0109253 -:1049F000FD0259C0833F19F41916CCF354C0893F06 -:104A000041F48091FF0218160CF04DC01092FF0285 -:104A10004AC08A3F29F48091FF0287FF44C0F6CF45 -:104A20008B3F39F48091000387FF3DC01092000353 -:104A30003AC08C3F29F4809100031816BCF333C0B0 -:104A4000843F21F48091FC028E7F17C0853F21F4C2 -:104A50008091FC028D7F11C0863F21F48091FC0281 -:104A60008B7F0BC0873F21F48091FC02877F05C0BC -:104A7000883F31F48091FC028F7E8093FC0213C04A -:104A80008D3F21F48091FA028E7F0BC08E3F21F47E -:104A90008091FA028D7F05C08F3F29F48091FA0240 -:104AA0008B7F8093FA028091FD0281110EC080916C -:104AB000FE0281110AC08091FF02811106C080911F -:104AC0000003811102C01092FB0208958CEF92E066 -:104AD0000E9446170E940D239093F9028093F802DA -:104AE00008951F93CF93DF938091F8029091F9027C -:104AF0000E941923AC019091FB02992321F020918F -:104B00001D0130E006C020911E018AE0289F90011F -:104B100011244217530708F486C08091FD02C0910A -:104B2000FE02D091FF0210910003811107C0C11154 -:104B300076C0D11174C0111172C075C09F3F19F0B9 -:104B40009F5F9093FB02181624F40E94F723809332 -:104B5000FD028091FD0287FF05C00E94F723819529 -:104B60008093FD021C1624F40E94F7238093FE021A -:104B70008091FE0287FF05C00E94F72381958093F4 -:104B8000FE026091FD02662339F1C091FE02CC2342 -:104B900019F1772767FD7095872F972F0E94D829E5 -:104BA00023E333E343E35FE30E94E82A0E94A5295D -:104BB0006093FD026C2F772767FD7095872F972FE5 -:104BC0000E94D82923E333E343E35FE30E94E82A0A -:104BD0000E94A5296093FE021D1624F40E94402421 -:104BE0008093FF028091FF0287FF05C00E9440244E -:104BF00081958093FF02111624F40E944024809333 -:104C000000038091000387FF05C00E944024819526 -:104C100080930003DF91CF911F910C9466259F3FF5 -:104C200009F08ECF96CFDF91CF911F910895ECEFD1 -:104C3000F2E085E0DF011D928A95E9F71092FB0210 -:104C40001092FA020895833081F128F4813059F0EE -:104C50008230D1F00895853009F449C0B8F186302A -:104C600009F456C0089580911E01262F30E0280FC8 -:104C7000311D2F3F310524F4680F60931E01089504 -:104C80008FEF80931E01089580911D01262F30E043 -:104C9000280F311D2F3F310524F4680F60931D014B -:104CA00008958FEF80931D01089580911C01262F98 -:104CB00030E0280F311D2F3F310524F4680F609339 -:104CC0001C0108958FEF80931C01089580911B01B2 -:104CD000262F30E0280F311D2F3F310524F4680FB7 -:104CE00060931B0108958FEF80931B0108958091BD -:104CF0001A01262F30E0280F311D2F3F310524F4F3 -:104D0000680F60931A0108958FEF80931A01089538 -:104D100080911901262F30E0280F311D2F3F3105DA -:104D200024F4680F6093190108958FEF809319019F -:104D30000895833011F128F4813049F0823091F0E8 -:104D40000895853081F120F18630C1F10895809178 -:104D50001E01681720F4861B80931E01089510928F -:104D60001E01089580911D01681720F4861B809311 -:104D70001D01089510921D01089580911C0168176E -:104D800020F4861B80931C01089510921C01089545 -:104D900080911B01681720F4861B80931B010895E6 -:104DA00010921B01089580911A01681720F4861B48 -:104DB00080931A01089510921A01089580911901A3 -:104DC000681720F4861B8093190108951092190129 -:104DD00008950F931F93873208F048C08E3108F072 -:104DE0008DC0803109F477C008F5873009F461C0BF -:104DF00068F4863009F09DC08091F202817F8E7F39 -:104E00008093F20281E08093020394C08B3009F416 -:104E100089C08E3009F08DC08091F20282FB22277A -:104E200020F991E0922790FB82F95EC0863109F467 -:104E300079C060F4813109F07CC00E94111C90910E -:104E4000160181E08927809316016CC0893109F42D -:104E500069C08B3109F06DC08091F20281FB22277D -:104E600020F991E0922790FB81F93EC0883309F444 -:104E700059C050F4893209F457C0853309F454C03D -:104E8000873209F451C055C0833409F44DC028F469 -:104E90008A3308F44EC0895332C0883409F049C0BF -:104EA0000E94111C0E944F0A0E9413040E94682352 -:104EB00039C09091F202892F8095817080FB90F922 -:104EC00029F0966098609093F20234C0997F977FA2 -:104ED0009093F20227C08091F20283FB222720F9EF -:104EE00091E0922790FB83F98093F2029923D1F00D -:104EF0008091F20281608093F20214C08D5141E0F2 -:104F000050E060E070E08A019B0104C0000F111FB7 -:104F1000221F331F8A95D2F7C901B8010E94D11F01 -:104F20000E94111C81E006C061E070E080E090E02A -:104F3000F5CF80E01F910F91089580E0089580E003 -:104F40000895CF93C82F80910203813069F018F043 -:104F50008230C9F184C0E0911701F091180180817D -:104F6000823209F07EC007C0E0911701F09118016C -:104F70008081823261F48C2F0E949D27811104C0B0 -:104F80008C2F0E94E9261DC081E090E01AC08C2F72 -:104F90000E949F27811114C0C43179F048F4CB30AE -:104FA00079F0C03109F061C082E08093020308C04B -:104FB000C93219F0C83321F058C01092020355C00D -:104FC00081E0817054C0C93291F120F5C43179F18A -:104FD000B0F4C73009F047C08EE180931E0182E330 -:104FE00080931D018AE080931C0184E180931B0162 -:104FF00088E080931A0188E28093190134C0CE5171 -:10500000C63088F5EC2FF0E0EA54FE4F80818093A3 -:10501000010329C0CE34E9F020F4CB3421F56AE055 -:1050200013C0C13579F0C235F1F461E00DC0809153 -:105030000103882319F01092010315C081E08093C9 -:10504000020315C061E006C0809101030E9423267F -:105050000AC06AE0809101030E94992604C0109260 -:10506000020380E004C081E002C080E0AACFCF91BB -:1050700008950E94C923811102C00E94A5230E94A5 -:10508000E52380931D0380FF02C0869501C080E068 -:105090000C94200380911D03982F9695292F30E0C2 -:1050A000233031054CF49F5F990F8170892B81600B -:1050B00080931D030E94E92380911D0386950C9423 -:1050C000200380911D03982F969591F09158990F88 -:1050D0008170892B80931D038E7F91E009F490E00D -:1050E00080911D0390FB80F980931D030E94E923AA -:1050F00080911D0386950C94200380911D03982FA9 -:10510000909590FB80F980931D030E94E923809184 -:105110001D0380FF02C0869501C080E00C9420032F -:1051200090911D03892F86958F5F8F7791708430C2 -:1051300028F4880F892B80931D0302C090931D03D0 -:1051400080911D038E7F91E009F490E080911D0312 -:1051500090FB80F980931D030E94E92380911D0339 -:1051600086950C94200320911D03922F96958927F4 -:10517000982F990F822F8170892B80931D038E7F2A -:1051800091E009F490E080911D0390FB80F98093F9 -:105190001D030E94E92380911D0386950C94200332 -:1051A00080911D03869508955058BB27AA270ED0DD -:1051B000D1C1C2D130F0C7D120F031F49F3F11F4FA -:1051C0001EF4B7C10EF4E095E7FB9FC1E92FD3D1E0 -:1051D00080F3BA17620773078407950718F071F414 -:1051E0009EF5EBC10EF4E0950B2EBA2FA02D0B010E -:1051F000B90190010C01CA01A0011124FF27591B1C -:1052000099F0593F50F4503E68F11A16F040A22F21 -:10521000232F342F4427585FF3CF46953795279592 -:10522000A795F0405395C9F77EF41F16BA0B620B91 -:10523000730B840BBAF09150A1F0FF0FBB1F661FD8 -:10524000771F881FC2F70EC0BA0F621F731F841F1B -:1052500048F4879577956795B795F7959E3F08F041 -:10526000B3CF9395880F08F09927EE0F9795879500 -:10527000089527D108F481E008950CD06BC163D163 -:1052800040F05AD130F021F45F3F19F03EC1511186 -:1052900095C14FC170D198F39923C9F35523B1F348 -:1052A000951B550BBB27AA2762177307840738F095 -:1052B0009F5F5F4F220F331F441FAA1FA9F333D0F4 -:1052C0000E2E3AF0E0E830D091505040E695001CA8 -:1052D000CAF729D0FE2F27D0660F771F881FBB1F64 -:1052E000261737074807AB07B0E809F0BB0B802D3E -:1052F000BF01FF2793585F4F2AF09E3F510568F08A -:1053000004C15CC15F3FECF3983EDCF38695779572 -:105310006795B795F7959F5FC9F7880F911D96958B -:10532000879597F90895E1E0660F771F881FBB1FE7 -:10533000621773078407BA0720F0621B730B840B94 -:10534000BA0BEE1F88F7E095089504D06894B11168 -:1053500035C1089518D188F09F5790F0B92F99273B -:10536000B751A0F0D1F0660F771F881F991F1AF070 -:10537000BA95C9F712C0B13081F01FD1B1E00895DC -:105380001CC1672F782F8827B85F39F0B93FCCF35D -:10539000869577956795B395D9F73EF49095809566 -:1053A000709561957F4F8F4F9F4F0895E89409C086 -:1053B00097FB3EF490958095709561957F4F8F4F48 -:1053C0009F4F9923A9F0F92F96E9BB279395F6955E -:1053D000879577956795B795F111F8CFFAF4BB0FDC -:1053E00011F460FF1BC06F5F7F4F8F4F9F4F16C040 -:1053F000882311F096E911C0772321F09EE8872FCA -:10540000762F05C0662371F096E8862F70E060E085 -:105410002AF09A95660F771F881FDAF7880F9695FE -:10542000879597F9089588D018F011F08CD038F44A -:1054300080C0C4C0E92F9FD0B0F35523C9F3E7FB68 -:105440006217730784079507A8F199F3E92FFF27DF -:1054500088232AF03197660F771F881FDAF7952F78 -:105460005527442332F091505040220F331F441FE0 -:10547000D2F7BB27E91BF50B621B730B840BB10939 -:10548000C1F222F4620F731F841FB11D31972AF0FD -:10549000660F771F881FBB1FEFCF915050405AF007 -:1054A00041F0882332F0660F771F881F91505040DB -:1054B000C1F7939530C08695779567959F5FD9F72B -:1054C000F8CF990F0008550FAA0BE0E8FEEF16166B -:1054D0001706E807F907C0F012161306E407F507E8 -:1054E00098F0621B730B840B950B39F40A2661F05C -:1054F000232B242B252B21F408950A2609F4A140FF -:10550000A6958FEF811D811D089597F99F6780E80B -:1055100070E060E008959F3F31F0915020F487954E -:1055200077956795B795880F911D9695879597F90B -:1055300008959FEF80EC089500240A94161617062C -:1055400018060906089500240A9412161306140674 -:1055500005060895092E0394000C11F4882352F0D7 -:10556000BB0F40F4BF2B11F460FF04C06F5F7F4F8F -:105570008F4F9F4F089557FD9058440F551F59F076 -:105580005F3F71F04795880F97FB991F61F09F3F30 -:1055900079F087950895121613061406551FF2CF59 -:1055A0004695F1DF08C0161617061806991FF1CFA9 -:1055B00086957105610508940895E894BB276627D0 -:1055C0007727CB0197F908957CDF08F48FEF0895D2 -:1055D0000BD0C0CFB1DF28F0B6DF18F0952309F06B -:1055E00094CFA7CF1124EACFC6DFA0F3959FD1F3C4 -:1055F000950F50E0551F629FF001729FBB27F00D81 -:10560000B11D639FAA27F00DB11DAA1F649F6627D5 -:10561000B00DA11D661F829F2227B00DA11D621F24 -:10562000739FB00DA11D621F839FA00D611D221FDE -:10563000749F3327A00D611D231F849F600D211DC2 -:10564000822F762F6A2F11249F5750408AF0E1F065 -:1056500088234AF0EE0FFF1FBB1F661F771F881FAE -:1056600091505040A9F79E3F510570F04ECFA6CF04 -:105670005F3FECF3983EDCF3869577956795B79599 -:10568000F795E7959F5FC1F7FE2B880F911D9695C3 -:10569000879597F90895FA01EE0FFF1F30962105BF -:1056A000310599F16115710561F48038BFE39B07FD -:1056B00049F168949038810561F08038BFEF9B070D -:1056C00041F0992342F5FF3FE1053105210511F134 -:1056D000E8940894E795D901AA2329F4AB2FBE2FAB -:1056E000F85FD0F310C0FF5F70F4A695E0F7F739CC -:1056F00050F019F0FF3A38F49F779F930CD00F9039 -:1057000007FC905808953EF014CF60E070E080E808 -:105710009FE308954FE79F775F934F933F932F93B6 -:105720009ED02F913F914F915F9152DF05C019F4A8 -:105730000EF0EBCE42CFFDCE26DFC8F39638C0F791 -:1057400007F80F92E8942BE33AEA48EB5FE74EDF65 -:105750000F920F920F924DB75EB70F92C0D0EAE052 -:10576000F1E016D04F915F91EF91FF91E595EE1F1B -:10577000FF1F49F0FE57E0684427EE0F441FFA95DB -:10578000E1F74195550B32D00F9007FE26C00895E2 -:10579000DF93CF931F930F93FF92EF92DF927B01E2 -:1057A0008C01689405C0DA2EEF011EDFFE01E8943B -:1057B000A5912591359145915591AEF3EF0106DD07 -:1057C000FE019701A801DA9479F7DF90EF90FF903E -:1057D0000F911F91CF91DF9108959B01AC0160E083 -:1057E00070E080E89FE349CD90CE95CECCDEE8F323 -:1057F0009923D9F3940F511DBBF39150504094F06D -:1058000059F0882332F0660F771F881F915050405F -:10581000C1F79E3F510544F7880F911D96958795D6 -:1058200097F908955F3FACF0983E9CF0BB278695B2 -:1058300077956795B79508F4B1609395C1F7BB0F5D -:1058400058F711F460FFE8CF6F5F7F4F8F4F9F4F86 -:10585000E3CFB4CE0EF05FCE6CCE689456CE93DE1E -:10586000C8F39923D1F3C6F3DF93CF931F930F931C -:10587000FF92C92FDD2788232AF02197660F771F13 -:10588000881FDAF720E030E040E85FEB9FE38839DB -:1058900020F0803E30F021968F7787DCE2E3F1E064 -:1058A00003C083DCEFE5F1E073DF8B01BE01EC01A7 -:1058B000FB2E6F5771097595771F880B990B78DD53 -:1058C00028E132E741E35FE38FDEAF2D9801AE01BF -:1058D000FF900F911F91CF91DF9178DC3BCEFA01C1 -:1058E000DC01AA0FBB1F9B01AC01BF5728F4222784 -:1058F0003327442750781FC0B75188F4AB2F0024BA -:10590000469537952795011CA395D2F3002069F0A1 -:10591000220F331F441FB395DAF30DD045CC61300D -:105920007105A0E88A07B94630F49B01AC016627EF -:10593000772788279078309621F02083318342831F -:1059400053830895AA1BBB1B51E107C0AA1FBB1FAD -:10595000A617B70710F0A61BB70B881F991F5A95FB -:10596000A9F780959095BC01CD01089597FB072E6E -:1059700016F4009407D077FD09D00E94A22C07FCF2 -:1059800005D03EF4909581959F4F0895709561954F -:105990007F4F0895EE0FFF1F0590F491E02D0994BD -:1059A000F999FECF92BD81BDF89A992780B50895E7 -:1059B000A8E1B0E042E050E00C94F82C262FF999D1 -:1059C000FECF92BD81BDF89A019700B4021639F05E -:1059D0001FBA20BD0FB6F894FA9AF99A0FBE08952F -:1059E0000196272F0E94DF2C0C94DE2CDC01CB01CA -:1059F000FC01F999FECF06C0F2BDE1BDF89A3196DF -:105A000000B40D9241505040B8F70895F894FFCF7C -:105A1000640007000CFF0000003F643310C1109EBB -:105A2000106A1036100101DF022808140A321E0025 -:105A300002040507090B0C0E1011131517181A1C78 -:105A40001D1F2123242628292B2D2F3032343537B2 -:105A5000393B1F0F03764F5F6F7F496943790959BF -:105A600053633149803F5D8B803FF8BF803FCAE17F -:105A7000803F73ED803FCAE1803FF8BF803F5D8B80 -:105A8000803F3149803F0000803FF16D7F3F75EAE4 -:105A90007E3F4C827E3F833F7E3F84287E3F833F14 -:105AA0007E3F4C827E3F75EA7E3FF16D7F3F000076 -:105AB000803F3F4D36394B05FE04C8048F04220455 -:105AC0003B0454046D0401020304050607080900A1 -:00000001FF diff --git a/keyboards/planck/keymaps/lucas/compiled.hex b/keyboards/planck/keymaps/lucas/compiled.hex deleted file mode 100644 index 13e872aa6..000000000 --- a/keyboards/planck/keymaps/lucas/compiled.hex +++ /dev/null @@ -1,1480 +0,0 @@ -:100000000C9428030C946C030C946C030C946C03F8 -:100010000C946C030C946C030C946C030C946C03A4 -:100020000C946C030C946C030C946A150C943C16A1 -:100030000C949D230C946C030C946C030C946C0333 -:100040000C946C030C94CE030C946C030C946C0312 -:100050000C946C030C9405240C946C030C946C03AA -:100060000C946C030C946C030C946C030C946C0354 -:100070000C946C030C946C030C946C030C946C0344 -:100080000C94E30B0C946C030C946C030C946C03B5 -:100090000C946C030C946C030C946C030C946C0324 -:1000A0000C946C030C946C030C946C03A916CB1683 -:1000B000B917CB16B91710173317B91788179B172D -:1000C000851A851AB41AB41AF31A131B691C691C11 -:1000D0001E1B691CCE1BCE1B351C3E1C691C631CE1 -:1000E000DB1BDB1BDB1BDB1BDB1BDB1BDB1BDB1B60 -:1000F000DB1BDB1BDB1BDB1BDB1BDB1BDB1BDB1B50 -:10010000EB1BF91B001C071C111C07634236B79B35 -:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 -:100120005763BD6DEDFD753EF6177231BF000000DF -:10013000803F08000000BE922449123EABAAAA2AC2 -:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD -:1001500000000000BF000000803F00000000000819 -:100160004178D3BB4387D1133D190E3CC3BD4282B6 -:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 -:10018000FFBE01C4FF7F3F00000000000000000030 -:1001900000000000000000010204060A0F17202CD6 -:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 -:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF -:1001C0000201000000000000000000000000F1A299 -:1001D000F1A32CA4228A3921290014001A00090055 -:1001E00013000A000D000F0018001D003602380031 -:1001F0002A00040015001600170007000B0011006C -:1002000008000C001200310200301C001B00060028 -:10021000190005000E0010003600370024022800E7 -:10022000E000E3002B00E200022003200320012075 -:100230005000510052004F00010001000100010078 -:100240000100010001000100010001003700010070 -:100250000100010001000100010001000100010096 -:100260000100010001001F02010001000100010066 -:100270000100010001000100013064022D020100B3 -:100280000100010001000100010001000100010066 -:100290000100010001000100000034020000000024 -:1002A00000000000000000002F02330200000420C4 -:1002B0004C00340000002D00000000000000000091 -:1002C0002F00330000004514000000000000000073 -:1002D0000000000000000000AD00AC00AB004414C2 -:1002E0000100010001000100010001000100010006 -:1002F000A800AA00A900AE0030141E021414310098 -:10030000210222023500230230022502260230009B -:100310002E021E001F0020002100220023002400C6 -:1003200025002600270027020000000000006414BA -:100330002514261424142714081400002D14280052 -:1003400001000100010001000100010001000100A5 -:100350004A004E004B004D00680069006A006B00C7 -:100360006C006D006E006F00700071007200730011 -:100370003A003B003C003D003E003F004000410091 -:10038000420043004400450000000000000000005F -:100390000000560057000000000000000070000040 -:1003A000000031702F703070022001000100010048 -:1003B000A800AA00A900AE000651290014001A00E6 -:1003C0000800150017001D0018000C001200042082 -:1003D00028002A0004001600070009000A000B008C -:1003E0000D000E000F003602E000E1001C001B00B3 -:1003F0000600190005001100100037005200240209 -:10040000000000002B00E20000002C002C002C015A -:10041000E300500051004F000100000014001A00DA -:10042000090013000A000D005F0060006100000079 -:100430002A000000040015001600170007000B003A -:100440005C005D005E004D00E000E1001C001B0050 -:100450000600190005000E0059005A005B004E000E -:10046000000000002B00E20000002C002C002C01FA -:100470000000620063005800280354006800650013 -:10048000200050006C0061006E0063006B002000D3 -:100490004B006500790062006F006100720064002B -:1004A00000002C034F007200740068006F006C00A5 -:1004B00069006E0065006100720020004B0065005D -:1004C000790062006F006100720064007300000038 -:1004D0000403090409026D00040100A0FA090400E4 -:1004E0000001030101000921110100012240000760 -:1004F00005810308000A0904010001030102000943 -:100500002111010001224D000705820308000A099C -:10051000040200010300000009211101000122363C -:10052000000705830308000A090403000103000013 -:100530000009211101000122390007058403100080 -:10054000011201100100000008EDFE6060010001D1 -:1005500002000105010906A101050719E029E715B7 -:1005600000250195087501810205081901290595E5 -:10057000057501910295017503910105071900297F -:100580007715002501957875018102C00501098064 -:10059000A101850216010026B7001A01002AB70042 -:1005A000751095018100C0050C0901A10185031694 -:1005B0000100269C021A01002A9C027510950181F7 -:1005C00000C005010902A1010901A10005091901E5 -:1005D0002905150025019505750181029501750311 -:1005E00081010501093009311581257F95027508C2 -:1005F000810609381581257F950175088106050C4E -:100600000A38021581257F950175088106C0C0054D -:10061000010906A101050719E029E7150025019543 -:1006200008750181029501750881010508190129E4 -:10063000059505750191029501750391010507194D -:100640000029FF150026FF00950675088100C000EF -:1006500011241FBECFEFDAE0DEBFCDBF04B603FE2C -:1006600024C080911F0390912003A0912103B09199 -:1006700022038730904BA740B04BB9F410921F0370 -:1006800010922003109221031092220314BE84B70B -:10069000877F84BF88E10FB6F89480936000109242 -:1006A00060000FBEE0E0F8E3099511E0A0E0B1E0E2 -:1006B000EEEAFBE502C005900D92A03CB107D9F728 -:1006C00013E0A0ECB1E001C01D92AF31B107E1F73A -:1006D0000E94B4120C94D52D0C9400000895089536 -:1006E00081E0089508950C946F030C9470030C94AA -:1006F00072030E949F2923E030E0281B3109220F5A -:100700002093C4010895282F2F98809180002111F3 -:1007100008C0877F8093800010928D0010928C001B -:100720001BC0886080938000233019F48FEF9FEF07 -:100730000FC083E090E0821B9109880F991F2FEF73 -:100740003FEFA90102C0569547958A95E2F7CA0185 -:1007500090938D0080938C000C9479030E94790310 -:1007600084E08093C3011092C0010895279A2F98C6 -:100770008FEF9FEF90938700809386008AE08093AD -:10078000800089E1809381000E9408290C94AE03C7 -:100790000E94B6036E9A769A0C946E031F920F9283 -:1007A0000FB60F9211242F933F938F939F93EF9344 -:1007B000FF93E091C101F091C201CF0101969093A6 -:1007C000C2018093C1010090C30102C0F695E79574 -:1007D0000A94E2F7EF738091C001823019F4E0329D -:1007E00051F404C0813039F4EF3329F480916F0063 -:1007F0008D7F80936F00F0E0E457FE4FE49121E09D -:1008000031E0E29FC001E39F900D11240090C401EC -:1008100002C0969587950A94E2F790938D00809395 -:100820008C00FF91EF919F918F913F912F910F90AD -:100830000FBE0F901F901895662319F0613089F054 -:100840001EC0FC018281882339F081EE0E942919A3 -:1008500081E00E94112113C081E00E94322181EECB -:100860000CC0FC018281882339F081EE0E94F119CD -:1008700084E60E94291903C084E60E94F11980E0F1 -:1008800090E0089581E008950C94420408950C943A -:10089000C80380911502882309F448C08091D101D2 -:1008A0009091D201009779F40E94CF239093D201C6 -:1008B0008093D1018091D30190E0009771F48091F1 -:1008C000D40190E00AC00E94DB2320910001309106 -:1008D00001012817390740F329C00197880F991F94 -:1008E000880F991FFC01EB52FE4F6081718182815C -:1008F00093810E94490BE091D30184E0E89FF001CD -:100900001124EB52FE4F60817181828193814FE00F -:1009100050E00E94010F8091D30190E00196609118 -:10092000D40170E00E94852D8093D3010C94730351 -:10093000109217020C94160B0895089581E080938D -:1009400017020C949D04089508958F929F92AF9280 -:10095000BF92EF92FF920F931F93CF93DF93CDB788 -:10096000DEB7A3970FB6F894DEBF0FBECDBF7C01F4 -:10097000FC0100811181C8010E94CD21B8010E94B3 -:1009800039098C01B7010E944404882309F4BDC2CF -:100990000531F0E71F0741F4F7018281882309F44C -:1009A00058C00E94650FB1C20631F0E71F0741F43D -:1009B000F7018281882309F44CC00E946E0FA5C202 -:1009C0000731F0E71F0751F4F7018281882309F40A -:1009D00040C00E94610F8111F0CFE3CF0831F0E7F2 -:1009E0001F0739F4F7018281882399F10E949E0440 -:1009F0008CC20931F0E71F0739F4F701828188239F -:100A000041F10E94980481C20A31F0E71F0749F4BE -:100A1000F70182818823E9F0809117028111F1CFDB -:100A2000E5CF0B31F0E71F0739F4F7018281882306 -:100A300081F00E94750F0AC00C31F0E71F0749F4DE -:100A4000F7018281882329F00E94800F0E94A4046C -:100A50005CC280911702811105C0F701828181116A -:100A6000CFC03AC1003E110579F4F7018281882395 -:100A700009F44DC00E94160B81E08093160210927B -:100A800015021092D40141C2023E110559F4F7013A -:100A900082818823E1F10E94160B109216021092B7 -:100AA000150233C2033E110591F4F70182818823B8 -:100AB00071F10E94160B1092160281E080931502CC -:100AC0001092D3011092D2011092D1011EC20235B0 -:100AD000110559F4F7018281882309F416C2809127 -:100AE0000001909101010A970DC00135110579F4BB -:100AF000F7018281882309F408C280910001909156 -:100B000001010A969093010180930001FEC140917A -:100B1000040183E2EFE1F1E0DE01119601900D9214 -:100B20008A95E1F7F701808121E030E02C0F3D1F2D -:100B3000280F311DC9012091020130910301FC01F0 -:100B4000E20FF31F6081772767FD7095640F711DB9 -:100B5000882777FD8095982F0E94A72A20E030E013 -:100B600040E451E40E940C2A4B015C01F701218111 -:100B700084E090E0821B9109BC01882777FD809575 -:100B8000982F0E94A72A9B01AC01C501B4010E94C5 -:100B9000A4299B01AC0160E070E080E090E40E9439 -:100BA0001A2C20E030E04CED50E40E94B72B4B01B2 -:100BB0005C01F70182818823D1F04FE050E0C5014C -:100BC000B4010E94010F809116028823A1F0809148 -:100BD000D40124E0829FF0011124EB52FE4F808269 -:100BE0009182A282B3828F5F8093D40104C0C50139 -:100BF000B4010E94490B0F3F110508F02ECF85C1AB -:100C00008091D00181111FC0043130E7130709F032 -:100C100080C00E94460481E08093D0010E94CF23CF -:100C20009093CF018093CE011092C7011092C90119 -:100C30001092C8011092CB011092CA011092CD01FE -:100C40001092CC0162C18091CE019091CF010E949F -:100C5000DB23883C910570F48091C701E82FF0E018 -:100C6000EE0FFF1FE853FE4F118300838F5F8093C9 -:100C7000C7014BC1043180E7180768F4023090E7E0 -:100C8000190708F050C00115E0E71E0771F00130A8 -:100C90001047A1F11CC1033320E7120709F4E8C093 -:100CA0000433104709F4FBC012C1F7018281882385 -:100CB00009F412C10E94D41C0E94160B0E949C04CD -:100CC000FFEF24E33CE0F15020403040E1F700C06A -:100CD00000000E942A2419C10431F0E71F0708F020 -:100CE000C3C0023020E71207F0F4011530E7130704 -:100CF00009F4F2C00130104709F0E9C0F701828120 -:100D0000882309F4E9C08091F20281608093F202A5 -:100D1000FCC00431F0E71F0708F0A6C0023020E74E -:100D2000120708F4ECC0F7018281882309F4D4C0CB -:100D30000E948E24811102C00E946A240E94A12474 -:100D400090E090930403809303030230F0E71F07C1 -:100D500021F480910303816080C0033020E71207F3 -:100D600021F480910303826078C0043030E71307D8 -:100D700021F480910303846070C0053080E7180778 -:100D800019F48091030327C0063090E7190721F476 -:100D900080910303806161C00730E0E71E0721F402 -:100DA00080910303806259C00830F0E71F0721F4E7 -:100DB00080910303806451C0093020E7120721F4B9 -:100DC00080910303806849C00A3030E7130729F493 -:100DD000809103038460886040C00B3080E718076F -:100DE00021F4809103038E7F38C00C3090E71907FF -:100DF00021F4809103038D7F30C00D30E0E71E07A2 -:100E000021F4809103038B7F28C00E30F0E71F0789 -:100E100019F48091030320C00F3020E7120721F45A -:100E2000809103038F7E19C0003130E7130721F44E -:100E3000809103038F7D11C0013180E7180721F4F1 -:100E4000809103038F7B09C0809103030231104717 -:100E500011F48F7702C08B7F877F8093030380918B -:100E600003030E94A52451C0033390E71907A1F49E -:100E7000F7018281882321F01092C50182E016C01B -:100E80008091C501811106C086E20E94291986E27F -:100E90000E94F11982E018C004331047C1F4F70131 -:100EA0008281882331F01092C60180E20E94401AAC -:100EB0002CC08091C601811106C087E20E942919C9 -:100EC00087E20E94F11980E20E94471A1EC081E069 -:100ED0008093C5018093C601C701A3960FB6F8940D -:100EE000DEBF0FBECDBFDF91CF911F910F91FF905D -:100EF000EF90BF90AF909F908F900C947503011569 -:100F000030E7130709F0F6CED5CE80E0A3960FB6F2 -:100F1000F894DEBF0FBECDBFDF91CF911F910F912F -:100F2000FF90EF90BF90AF909F908F9008952CE02E -:100F3000729FF001112430E3839FE00DF11D112415 -:100F4000E60FF11DEE0FFF1FE852FE4F85919491C1 -:100F50000E944B09811540E5940708F047C08115B0 -:100F600020E4920708F013C1883E910520F5803EE9 -:100F7000910508F07CC1883A910578F4853A91058D -:100F800008F0A5C08130910509F471C108F42EC1A3 -:100F90008430910508F06BC129C18B3B910508F4A1 -:100FA000A1C0803C910508F421C1FC01EE0FFF1F98 -:100FB000E45BFF4FE6C0811530E2930758F48115DA -:100FC00041E0940708F053C1803F910508F40EC139 -:100FD00090650895811520E3920708F0D5C0FC01C3 -:100FE000FF70EE0FFF1FE453FE4FCBC0811535E5B8 -:100FF000930708F043C0811544E5940708F0DEC06C -:10100000811522E5920708F5811531E5930708F06F -:10101000C1C0482F437021E030E002C0220F331FCF -:101020004A95E2F73C68AC0164E0569547956A95AD -:10103000E1F74370342B8F708695869540E2849F4C -:10104000C0011124822B932B0895282F26952695D5 -:10105000AC01437055278115934508F0A0C080E28C -:10106000289F9001112481E090E002C0880F991F11 -:101070004A95E2F7822B932B9C6808958F3240E7C4 -:10108000940790F48F3120E7920708F0A2C08115F1 -:1010900036E5930708F497C09C013056211530417E -:1010A00008F0A4C09F7093C0803320E7920709F432 -:1010B00097C008F492C0813340E7940709F493C0C5 -:1010C0008233904709F092C080E093ED0895853A0D -:1010D000910509F48EC0863A910509F08DC082E829 -:1010E00090E40895883A910509F489C0893A9105F8 -:1010F00009F488C08A3A910509F487C08B3A9105B2 -:1011000009F486C08C3A910509F485C08D3A9105A1 -:1011100009F484C0803B910509F483C08E3A91059F -:1011200009F482C08F3A910509F481C0813B910591 -:1011300009F480C0823B910509F47FC0833B91058F -:1011400009F47EC0843B910509F47DC0853B91057F -:1011500009F47CC0863B910509F47BC0873B91056F -:1011600009F47AC0883B910509F479C0893B91055F -:1011700009F478C08A3B910509F477C080E094E4D3 -:1011800008958591949108959927906C08959F7082 -:10119000906A0895982F8827816F906A089590E249 -:1011A000299F9001112481E090E002C0880F991FCF -:1011B0004A95E2F7822B932B9A680895982F8827F7 -:1011C000846F906A08958F719927982F882790626D -:1011D00008958F519047946D089580E091ED0895A2 -:1011E00080E090ED089580E092ED089580E090E039 -:1011F000089581E890E4089583E890E4089582EEEC -:1012000094E4089589EE94E408958AEE94E40895B0 -:1012100085EB94E4089586EB94E4089587EB94E4D9 -:1012200008958CEC94E408958DEC94E4089583E89B -:1012300095E408958AE895E4089582E995E408958F -:1012400084E995E4089581E296E4089583E296E4C2 -:10125000089584E296E4089585E296E4089586E28E -:1012600096E4089587E296E408958AE296E4089564 -:1012700008959CE0799FF001112490E3899FE00D8F -:10128000F11D1124E60FF11DEE0FFF1FE852FE4F76 -:101290008591949108958238910549F1B0F4813394 -:1012A000910509F458C048F48932910509F44EC0FB -:1012B0008A32910509F454C008958533910509F4E3 -:1012C00040C08933910599F00895833E910529F135 -:1012D00038F4803E910591F0823E9105A1F0089589 -:1012E000863E9105F9F0873E910531F108952091F0 -:1012F000030320FD3AC021FD38C008958091030307 -:1013000080FD35C032C08091030382FF32C08091DE -:10131000030384FD30C083EE39C08091030382FD56 -:1013200028C0F5CF8091030383FF27C0809103037A -:1013300084FD21C087EE2AC08091030383FD1DC078 -:10134000F5CF8091030385FD1AC01BC08091030374 -:1013500085FD17C014C08091030386FD14C015C01D -:101360008091030386FD11C00EC080EE0FC089E39B -:101370000DC082EE0BC080E009C086EE07C089E296 -:1013800005C085E303C08AE201C081E390E00895CF -:101390000C947703E82FF0E0E25BFE4F8081E82FAA -:1013A000EF70F0E082958F7021E030E0A90102C07B -:1013B000440F551F8A95E2F740A308950F931F939A -:1013C000CF93DF93C3E0D0E001E010E0FE01E25BE9 -:1013D000FE4F8081E82FEF70F0E021A182958F70A1 -:1013E000A80102C0440F551F8A95E2F7CA01822B5B -:1013F00081A38C2F0E94CA09219740F78BE090E0CF -:1014000061E070E0FC01EE5BFE4F2081E22FEF70A7 -:10141000F0E042A122952F70DB0102C0AA0FBB1F92 -:101420002A95E2F79D01242B22A3019758F7DF911B -:10143000CF911F910F9108950F931F93CF93DF9337 -:1014400085B7806885BF85B7806885BFC3E0D0E079 -:1014500001E010E0FE01E25BFE4F8081E82FEF70BB -:10146000F0E021A182958F70A80102C0440F551FA2 -:101470008A95E2F7CA01822B81A38C2F0E94CA09A8 -:10148000219740F78BE090E061E070E0FC01EE5BBB -:10149000FE4F2081E22FEF70F0E042A122952F70E5 -:1014A000DB0102C0AA0FBB1F2A95E2F79D01242B86 -:1014B00022A3019758F7DF91CF911F910F910C94C0 -:1014C0004704EF92FF920F931F93CF93DF9300E2B5 -:1014D00012E0C3E0EE24E394F12CD5E08C2F0E94BF -:1014E000CA098BE090E040E050E0FC01EE5BFE4F6B -:1014F0006081E62FEF70F0E020A130E062956F7020 -:1015000002C0359527956A95E2F720FD09C097013D -:10151000082E02C0220F331F0A94E2F7422B532BEE -:10152000019718F7F801929182918F01841795071E -:1015300021F051834083D09305018C2F0E94CA096A -:10154000C15060F68091050187FD2CC081508093C9 -:1015500005018F3F39F08FE99FE00197F1F700C057 -:10156000000020C080911E0290911F0290932702DC -:101570008093260280911C0290911D029093250277 -:101580008093240280911A0290911B02909323026F -:101590008093220280911802909119029093210267 -:1015A000809320020E94490481E0DF91CF911F9136 -:1015B0000F91FF90EF900895E82FF0E0EE0FFF1FDE -:1015C000E05EFD4F80819181089508950F931F93F0 -:1015D000CF9308E212E0C0E0F801929182918F016E -:1015E0000E944823C80FF2E000321F07A9F78C2F92 -:1015F000CF911F910F9108950E948E24811102C0F6 -:101600000E946A240E94B324809309033E9A809129 -:1016100071008D7F8093710082E0809390008AE159 -:101620008093910081E080932A02089580912A029C -:10163000811102C00E94FC0A10927A021092790273 -:10164000809171008D7F80937100809190008F73E5 -:101650008093900010923C0210923B021092730211 -:101660001092740210927502109276021092720219 -:1016700010927102E1E5F2E0A1E4B2E01192119260 -:10168000119211921D921D9282E0E137F807B1F795 -:101690000895CF92DF92EF92FF920F931F93CF9313 -:1016A000DF9320913B02222309F484C06B017C016B -:1016B00080912A02811102C00E94FC0A01E712E017 -:1016C000C7E0D0E0A7019601F80192918291729152 -:1016D00062918F010E94082A811131C0FE01EE0F34 -:1016E000FF1FEE0FFF1FEF5AFD4F10821182128273 -:1016F0001382DE01AA0FBB1FAF5BBD4F11961C9278 -:101700001E92C730D105E9F021964481558166814A -:10171000778140835183628373831482158216829A -:10172000178212968D919C91139711969C938E938C -:1017300013961C921E92129734961296E2CF21971E -:1017400008F68091790290917A02019797FD05C081 -:1017500090937A028093790204C010927A021092D8 -:1017600079028091790290917A02209177023091EA -:1017700078022817390724F0109278021092770225 -:10178000892BC1F4809171008D7F809371008091CD -:1017900090008F73809390001092730210927402E5 -:1017A00010927502109276021092720210927102DB -:1017B00010923B02DF91CF911F910F91FF90EF901C -:1017C000DF90CF9008951F920F920FB60F921124C1 -:1017D0004F925F926F927F928F929F92AF92BF9241 -:1017E000CF92DF92EF92FF922F933F934F935F93AD -:1017F0006F937F938F939F93AF93BF93CF93DF9319 -:10180000EF93FF9380913B02882309F49BC1C09121 -:101810007902D0917A021C161D060CF093C14090FB -:101820002B0250902C0260902D0270902E0220E02E -:1018300030E0A901C301B2010E94B32B18160CF0CD -:1018400065C0C130D10509F452C0809177029091F2 -:101850007802BE010E94852D7C01909378028093CE -:10186000770280903D0290903E02A0903F02B0909F -:10187000400220E030E040E85FE3C501B4010E948F -:10188000A42960933D0270933E0280933F0290939F -:101890004002F701EE0FFF1FEE0FFF1FEF5AFD4F43 -:1018A000A301920160817181828193810E940C2A3F -:1018B00020E030E040E05EE30E94B72B9B01AC01EA -:1018C000C501B4010E94B32B18168CF4C701019610 -:1018D000BE010E94852D909378028093770210922A -:1018E0003D0210923E0210923F0210924002E0919F -:1018F0007702F0917802EE0FFF1FEE0FFF1FEF5AF5 -:10190000FD4F6081718182819381D0C0C09073024C -:10191000D0907402E0907502F090760220E030E002 -:10192000A901C701B6010E94082A2197882309F45A -:10193000A2C0FE01EE0FFF1FEE0FFF1FEF5AFD4F7B -:1019400080809180A280B380A5019401C701B60177 -:101950000E94082A87FF31C0A501940160E070E071 -:101960008CED93EC0E940C2A20E030E040E451E43E -:101970000E940C2A20E030E040E05FE30E94B72B99 -:101980009B01AC0160E070E080E090E40E941A2CC2 -:101990009B01AC01C501B4010E94B72B9B01AC01B6 -:1019A000C701B6010E94082A87FF07C0A701960158 -:1019B00060E070E08CED93E439C0A5019401C701AB -:1019C000B6010E94B32B18160CF055C0A501940166 -:1019D00060E070E08CED93E40E940C2A20E030E09F -:1019E00040E451E40E940C2A20E030E040E05FE354 -:1019F0000E94B72B9B01AC0160E070E080E090E4B6 -:101A00000E941A2C9B01AC01C501B4010E94B72BA6 -:101A10009B01AC01C701B6010E94B32B18165CF5FF -:101A2000A701960160E070E08CED93EC0E940C2A17 -:101A300020E030E040E451E40E940C2A20E030E055 -:101A400040E05FE30E94B72B9B01AC0160E070E0D7 -:101A500080E090E40E941A2C9B01AC01C701B60102 -:101A60000E94B72B60937302709374028093750287 -:101A70009093760213C0FE01EE0FFF1FEE0FFF1FC3 -:101A8000EF5AFD4F80819181A281B38180937302CF -:101A900090937402A0937502B093760260917302E2 -:101AA00070917402809175029091760220912802C3 -:101AB000309129022F3F4FEF340731F02F5F3F4F16 -:101AC00030932902209328020E948B0F6B017C0126 -:101AD00020E034E244EF51E40E94082A87FF08C066 -:101AE00086EFC82E88E2D82E84EFE82E81E4F82E07 -:101AF00020E030E040E051E4C701B6010E94B72B7E -:101B00009B01AC0160E074E284E79BE40E940C2A34 -:101B10006B017C010E94792A709397006093960074 -:101B2000209106013091070140910801509109016F -:101B3000C701B6010E94B72B0E94792A70939900C1 -:101B40006093980080913C02882309F433C1C090CF -:101B50003702D0903802E0903902F0903A0220E04B -:101B600030E0A901C701B6010E94B32B1816D4F5C5 -:101B700080912802909129028F3F2FEF920729F040 -:101B800001969093290280932802C701B6010E9412 -:101B90008B0F20E030E040E051E40E94B72B9B0126 -:101BA000AC0160E074E284E79BE40E940C2A6B01C4 -:101BB0007C010E94792A709397006093960020918F -:101BC0000601309107014091080150910901C701B8 -:101BD000B6010E94B72B0E94792A709399006093F6 -:101BE000980008C0109297001092960010929900E9 -:101BF0001092980060913102709132026F5F7F4FB6 -:101C000070933202609331022091960030919700D8 -:101C100080E090E0232BF1F0C0919600D0919700E6 -:101C20000E94A52A6B017C01BE0180E090E00E9429 -:101C3000A52A9B01AC01609133027091340280911E -:101C40003502909136020E940C2A20E03FEF4FE7C8 -:101C500057E410C00E94A52A6B017C0120E030EE01 -:101C60004FEF54E460913302709134028091350259 -:101C7000909136020E94B72B9B01AC01C701B601BF -:101C80000E94B32B87FD96C080912F028F5F8093B7 -:101C90002F0290E0209105033091060382179307ED -:101CA000A0F080911003882319F010922F020DC02C -:101CB000809171008D7F80937100809190008F736F -:101CC0008093900010923C027DC080913002C091C0 -:101CD0002F02811128C0C0900A03D0900B03E0901E -:101CE0000C03F0900D0320E030E0A901C701B6011C -:101CF0000E94B32B1816BCF481E08093300210923E -:101D00003702109238021092390210923A02C092B1 -:101D10003302D0923402E0923502F0923602C15082 -:101D2000C0932F0243C010923002109229021092E9 -:101D30002802E0910703F091080348E0C49FE00DFA -:101D4000F11D112480819181A281B381809337029A -:101D500090933802A0933902B0933A0220E030E029 -:101D600040E85EE364817581868197810E94B72B8C -:101D70006B017C0180910A01682F70E080E090E0A7 -:101D80000E94A52A20E030E048EC52E40E940C2A90 -:101D90009B01AC01C701B6010E94B72B60933302CF -:101DA000709334028093350290933602109232027F -:101DB000109231028091090380FD04C010923C0210 -:101DC00010923B02FF91EF91DF91CF91BF91AF91C4 -:101DD0009F918F917F916F915F914F913F912F9143 -:101DE000FF90EF90DF90CF90BF90AF909F908F903B -:101DF0007F906F905F904F900F900FBE0F901F904D -:101E00001895CF92DF92EF92FF92CF93DF936B0101 -:101E10007C01EA0180912A02811102C00E94FC0A21 -:101E20008091090380FF46C08091790290917A02E7 -:101E300008970CF03FC0809171008D7F80937100F6 -:101E400080913C0281110E94160B81E080933B023D -:101E5000109229021092280220E030E0A901C70167 -:101E6000B6010E94B32B1816DCF480917902909190 -:101E70007A02FC01EE0FFF1FEE0FFF1FEF5AFD4F1E -:101E8000C082D182E282F382FC01EE0FFF1FEF5B82 -:101E9000FD4FD183C083019690937A02809379029B -:101EA00080917100826080937100809190008068C1 -:101EB00080939000DF91CF91FF90EF90DF90CF90D3 -:101EC00008958091090381700895809109038160CC -:101ED000809309030E94B7240C94A3048091090302 -:101EE0008E7F809309030C94B72480917B0290E04D -:101EF000019666E070E00E94852D80937B02089534 -:101F000080917B0290E0019766E070E00E94852D51 -:101F100080937B0208958F929F92AF92BF92CF924F -:101F2000DF92EF92FF920F931F93CF93DF936B019A -:101F30007C01C0912802D0912902BE0180E090E08E -:101F40000E94A52A4B015C01A701960160E070E0A8 -:101F50008CE594E40E940C2A9B01AC01C501B401FC -:101F60000E94B72B0E94792A20917B02233009F42A -:101F700073C028F4222351F02130E9F02CC1243021 -:101F800009F4A0C0253009F4E0C025C180E090E04C -:101F9000A0E0BFE38093060190930701A09308019E -:101FA000B093090110922B0210922C0210922D0274 -:101FB00010922E0210C110922B0210922C0210923D -:101FC0002D0210922E026431710540F46A307105C1 -:101FD00060F520E030E040E85EE32BC0693C71052D -:101FE00008F0AAC080E090E00E94A52A20E030E03E -:101FF00040EA51E40E94A32920E030E044E353E4A6 -:102000000E940C2A9B01AC010E94B72B20E030E01B -:1020100040E05EE30E94B72B9B01AC0160E070E002 -:1020200080E09EE30E94A32944C020E030E040E02D -:102030005FE3C701B6010E94B72B6B017C0180E012 -:1020400090E0A0E0BEE38093060190930701A09387 -:102050000801B0930901BFC010922B0210922C020C -:1020600010922D0210922E024AE0469F9001479F47 -:10207000300D1124C90168EB7BE00E94712DBC0179 -:102080006C5D754077FF03C0719561957109882774 -:1020900077FD8095982F0E94A72A2EE333EC4EE21D -:1020A00059E30E94B72B20E030E040EC5EE30E9451 -:1020B000A42960930601709307018093080190930F -:1020C000090189C010922B0210922C0210922D024D -:1020D00010922E02CE0183709927892BE1F0BE0168 -:1020E0006170772780E090E00E94A52A20E030E030 -:1020F00040E05EE30E94B72B20E030E040E45FE385 -:102100000E94A4296093060170930701809308013F -:10211000909309010CC080E090E0A0E0BFE38093C1 -:10212000060190930701A0930801B0930901C770BD -:10213000DD27CD2B09F04FC0109206011092070148 -:10214000109208011092090146C010922B021092C1 -:102150002C0210922D0210922E0200E010E020E0DE -:102160003FE3009306011093070120930801309389 -:1021700009016739710578F180E090E00E94A52A95 -:1021800020E030E047E153E40E94A32920E030E062 -:102190004AE754E40E940C2A20E030E048E452E48C -:1021A0000E94B72B20E030E040EA51E40E94E92A87 -:1021B0000E94742A660F771F660F771FFB01EE5A85 -:1021C000FE4F2081318142815381C701B6010E94B7 -:1021D000B72B6B017C01C701B601DF91CF911F9135 -:1021E0000F91FF90EF90DF90CF90BF90AF909F90B6 -:1021F0008F90089580918C020895CF93DF9300D043 -:102200001F92CDB7DEB79C0180911503843019F57C -:1022100093E099833B832A839093E9008FEF909119 -:10222000E800815095FD06C095ED9A95F1F7000004 -:102230008111F5CF8091E80085FF0DC040E050E0AE -:1022400063E070E0CE0101960E945A138091E8008D -:102250008E778093E8000F900F900F90DF91CF91D1 -:102260000895CF93DF9300D01F92CDB7DEB72091B2 -:102270001503243021F522E029839B838A8383E0A0 -:102280008093E9008FEF9091E800815095FD06C0A2 -:1022900095ED9A95F1F700008111F5CF8091E80056 -:1022A00085FF0DC040E050E063E070E0CE01019694 -:1022B0000E945A138091E8008E778093E8000F9077 -:1022C0000F900F90DF91CF91089520911503243046 -:1022D000F1F422E02093E9002FEF3091E800215043 -:1022E00035FD06C035ED3A95F1F700002111F5CF27 -:1022F0002091E80025FF0BC040E050E065E070E071 -:102300000E945A138091E8008E778093E800089528 -:10231000CF93DF93EC0190911503943009F046C000 -:10232000809115018823D9F0809116018823B9F096 -:102330009093E9008FEF9091E800815095FD06C0E1 -:1023400095E19A95F1F700008111F5CF8091E800B1 -:1023500085FF2CC040E050E060E170E017C081E0F4 -:102360008093E9008FEF9091E800815095FD06C0C1 -:1023700095ED9A95F1F700008111F5CF8091E80075 -:1023800085FF14C040E050E068E070E0CE010E949C -:102390005A138091E8008E778093E80080E1FE0177 -:1023A000ACE7B2E001900D928A95E1F7DF91CF9111 -:1023B000089580911403811109C00E94EF140E94B6 -:1023C0004C158091E20084608093E20008951092A1 -:1023D00014030895089508950C94922342E061EC4B -:1023E00081E00E94691442E061EC82E00E9469147D -:1023F00042E061EC83E00E94691442E161EC84E018 -:102400000C94691480911703833009F455C030F49B -:10241000813071F0823009F48EC008958A3009F459 -:102420007AC08B3009F460C0893009F09CC020C0AC -:1024300080911603813A09F096C08091E800877F69 -:102440008093E80080911A0390911B03892B21F45B -:1024500060E18CE792E003C060E080E090E070E033 -:102460000E94A5138091E8008B778093E80008957F -:1024700080911603813209F076C080911A03909101 -:102480001B03009719F0039709F06DC08091E800D5 -:10249000877F8093E8008091E80082FD05C08091ED -:1024A00015038111F8CF5FC08091F10080938C02F9 -:1024B0008091E8008B7753C080911603813A09F030 -:1024C00052C080911A0390911B03892B09F04BC0D5 -:1024D0008091E800877F8093E8008091E80080FF8A -:1024E000FCCF8091150136C0809116038132D9F559 -:1024F00080911A0390911B03892BA9F58091E80024 -:10250000877F8093E8000E949E1480911803809337 -:1025100015010C94D41C80911603813221F5809111 -:10252000E800877F8093E8000E949E148091190341 -:1025300080938D02089580911603813AA1F48091D1 -:10254000E800877F8093E8008091E80080FFFCCF5F -:1025500080918D028093F1008091E8008E778093C6 -:10256000E8000C949E14089584B7877F84BF88E1A7 -:102570000FB6F89480936000109260000FBE80E860 -:1025800080936100109261000E9441180E94EF1434 -:102590000E944C158091E20084608093E200789460 -:1025A0000E94D2170E9443188BE091E00E94ED1721 -:1025B00080911503853069F40E94542380911303A0 -:1025C0008823B1F30E948123882391F30E9444134E -:1025D000EFCF0E944B18ECCF292F33272330310542 -:1025E000C9F064F42130310581F02230310509F061 -:1025F00043C08DE690E024ED34E042C02132310545 -:10260000F1F02232310541F137C082E190E021E45E -:1026100035E036C099278130910541F0823091052F -:1026200041F0892B49F5E0EDF4E005C0E2EAF4E081 -:1026300002C0E8E7F4E0849190E09F0121C064309B -:10264000D8F4E62FF0E0EE0FFF1FE255FE4F208199 -:10265000318189E090E014C0643070F470E0FB01D7 -:10266000EE0FFF1FEA55FE4F20813181FB01EE5531 -:10267000FE4F808190E004C080E090E020E030E0F8 -:10268000FA0131832083089580E189BD82E189BD0B -:1026900009B400FEFDCF8091D8008F7D8093D800D3 -:1026A0008091E00082608093E0008091E00081FDF5 -:1026B000FCCF0895CF92DF92EF92FF920F931F937A -:1026C000CF93DF93EC018B016A010E94BD1481114D -:1026D00033C0C114D10439F0F60180819181081B07 -:1026E000190BC80FD91FE12CF12C0115110519F197 -:1026F0008091E80085FD16C08091E8008E77809378 -:10270000E800C114D10449F0F60180819181E80EFE -:10271000F91EF182E08285E00FC00E94BD1488237B -:1027200021F30AC089918093F10001501109FFEF54 -:10273000EF1AFF0ADACF80E0DF91CF911F910F915E -:10274000FF90EF90DF90CF90089520911C0330917F -:102750001D032617370748F06115710539F42091DC -:10276000E8002E772093E80001C0B90140E0611530 -:102770007105A9F120911503222309F443C02530E6 -:1027800009F442C02091E80023FD40C02091E800F8 -:1027900022FD32C02091E80020FFE9CF4091F300F4 -:1027A0002091F20030E0342BFC01CF01611571055E -:1027B00059F02830310540F481918093F100615047 -:1027C00071092F5F3F4FF1CF41E02830310509F00B -:1027D00040E02091E8002E772093E800C8CF411117 -:1027E000C9CF0AC080911503882361F0853061F05C -:1027F0008091E80083FD0AC08091E80082FFF2CF5B -:1028000080E0089582E0089583E0089581E00895CE -:1028100020911C0330911D032617370748F06115DE -:10282000710539F42091E8002E772093E80001C06B -:10283000B901FC0120E06115710591F1809115034A -:10284000882309F440C0853009F43FC08091E80036 -:1028500083FD3DC08091E80082FD2FC08091E8009B -:1028600080FFE9CF2091F3008091F20090E0922B5D -:102870006115710559F08830910540F42491209339 -:10288000F1003196615071090196F2CF21E008976D -:1028900009F020E08091E8008E778093E800CBCFAC -:1028A0002111CCCF0AC080911503882361F08530B7 -:1028B00061F08091E80083FD0AC08091E80082FF0A -:1028C000F2CF80E0089582E0089583E0089581E0EA -:1028D0000895982F973058F59093E900981739F09C -:1028E0007091EC002091ED005091F00003C0242F76 -:1028F000762F50E021FF19C03091EB003E7F3093DE -:10290000EB003091ED003D7F3093ED003091EB0016 -:1029100031603093EB007093EC002093ED00509306 -:10292000F0002091EE0027FF07C09F5FD3CF8F708C -:102930008093E90081E0089580E008958091160376 -:1029400087FF11C08091E80082FD05C080911503CA -:102950008111F8CF11C08091E8008B770BC0809176 -:102960001503882349F08091E80080FFF8CF80911B -:10297000E8008E778093E80008952091E40030917C -:10298000E50095E64091EC00842F817040FF22C065 -:102990008091E80080FD1CC080911503882391F090 -:1029A000853091F08091EB0085FD10C04091E400EE -:1029B0005091E5004217530729F39A01915011F7FE -:1029C00084E0089582E0089583E0089581E0089509 -:1029D00080E008954091E80042FFDECF08950E9414 -:1029E0005D150E946515E0EEF0E0808181608083D6 -:1029F000E8EDF0E080818F77808319BCA7EDB0E02F -:102A00008C918E7F8C9380818F7E808310921403B3 -:102A100008950F931F93CF93DF930E945D150E943B -:102A20006515C8EDD0E088818F77888388818068BC -:102A3000888388818F7D888319BC1092150310923A -:102A40001103109213031092120300EE10E0F8012C -:102A500080818B7F808388818160888342E060E011 -:102A600080E00E946914E1EEF0E080818E7F808337 -:102A7000E2EEF0E0808181608083808188608083E5 -:102A8000F80180818E7F8083888180618883DF91D7 -:102A9000CF911F910F910895E8EDF0E080818F7E36 -:102AA0008083E7EDF0E080818160808384E082BFF5 -:102AB00081E0809314030C940915E8EDF0E0808127 -:102AC0008E7F80831092E20008951092DA001092B7 -:102AD000E10008951F920F920FB60F9211242F93C9 -:102AE0003F934F935F936F937F938F939F93AF9396 -:102AF000BF93EF93FF938091E10082FF0BC0809121 -:102B0000E20082FF07C08091E1008B7F8093E100AB -:102B10000E94D1178091DA0080FF1FC08091D800F9 -:102B200080FF1BC08091DA008E7F8093DA00809155 -:102B3000D90080FF0DC080E189BD82E189BD09B463 -:102B400000FEFDCF81E0809315030E94D91105C0DE -:102B500019BC109215030E94E7118091E10080FFDB -:102B600019C08091E20080FF15C08091E2008E7F45 -:102B70008093E2008091E20080618093E200809186 -:102B8000D80080628093D80019BC85E0809315033B -:102B90000E94EB118091E10084FF30C08091E2003F -:102BA00084FF2CC080E189BD82E189BD09B400FEAB -:102BB000FDCF8091D8008F7D8093D8008091E10077 -:102BC0008F7E8093E1008091E2008F7E8093E2000F -:102BD0008091E20081608093E2008091110388235C -:102BE00011F084E007C08091E30087FD02C081E01E -:102BF00001C083E0809315030E94EC118091E100F5 -:102C000083FF29C08091E20083FF25C08091E1000D -:102C1000877F8093E10082E0809315031092110377 -:102C20008091E1008E7F8093E1008091E2008E7FB1 -:102C30008093E2008091E20080618093E20042E0B4 -:102C400060E080E00E9469148091F00088608093C9 -:102C5000F0000E94EA11FF91EF91BF91AF919F9117 -:102C60008F917F916F915F914F913F912F910F9035 -:102C70000FBE0F901F9018951F920F920FB60F92D4 -:102C800011242F933F934F935F936F937F938F9371 -:102C90009F93AF93BF93CF93DF93EF93FF93C09135 -:102CA000E900CF708091EC00D82FD17080FDD0E882 -:102CB0001092E9008091F000877F8093F000789473 -:102CC0000E9480161092E9008091F0008860809345 -:102CD000F000CD2BCF70C093E900FF91EF91DF9111 -:102CE000CF91BF91AF919F918F917F916F915F91A4 -:102CF0004F913F912F910F900FBE0F901F901895FD -:102D00001F93CF93DF93CDB7DEB7AA970FB6F89492 -:102D1000DEBF0FBECDBFE6E1F3E088E08E0F9091FD -:102D2000F10091938E13FBCF0E9402128091E80074 -:102D300083FF1FC18091160390911703492F50E024 -:102D40004A30510508F015C1FA01EA5AFF4F0C94B8 -:102D5000992D803881F0823809F00BC180911A03D7 -:102D60008F708093E9008091EB0085FB882780F9C4 -:102D70001092E90006C08091120390911303911103 -:102D800082609091E800977F9093E8008093F10033 -:102D90001092F100C8C0282F2D7F09F0EAC08823C7 -:102DA00019F0823061F0E5C080911803813009F09C -:102DB000E0C0933009F080E0809313032BC0809132 -:102DC0001803811127C080911A038F7009F4D1C0B4 -:102DD0008093E9002091EB0020FF1CC0933021F488 -:102DE0008091EB00806214C09091EB009061909311 -:102DF000EB0021E030E0A90102C0440F551F8A9585 -:102E0000E2F74093EA001092EA008091EB008860BC -:102E10008093EB001092E9008091E800877F86C0E4 -:102E20008111A7C0109118031F778091E30080786B -:102E3000812B8093E3008091E800877F8093E800F6 -:102E40000E949E148091E80080FFFCCF8091E300F7 -:102E500080688093E300111102C082E001C083E02A -:102E60008093150386C08058823008F082C080911C -:102E70001803909119038C3D53E0950779F583E091 -:102E80008A838AE289834FB7F894DE01139620E0A3 -:102E90003EE051E2E32FF0E050935700E49120FF31 -:102EA00003C0E295EF703F5FEF708E2F90E0EA3045 -:102EB00010F0C79601C0C0968D939D932F5F24316B -:102EC00049F74FBF8091E800877F8093E8006AE26E -:102ED00070E0CE0101960E94A51314C0AE014F5FB1 -:102EE0005F4F60911A030E94EC12BC01009709F435 -:102EF00040C09091E800977F9093E80089819A8183 -:102F00000E9408148091E8008B778093E80031C01C -:102F1000803879F58091E800877F8093E800809180 -:102F200011038093F1008091E8008E778093E80090 -:102F30000E949E141EC081111CC0909118039230F3 -:102F4000C0F48091E800877F8093E800909311039C -:102F50000E949E1480911103811106C08091E300AC -:102F600087FD02C081E001C084E0809315030E94C8 -:102F7000EE118091E80083FF0AC08091E800877F0E -:102F80008093E8008091EB0080628093EB00AA962A -:102F90000FB6F894DEBF0FBECDBFDF91CF911F916A -:102FA00008950895CF93809115038823A1F0C091CF -:102FB000E900CF709091EC00892F817090FD80E83E -:102FC000C82B1092E9008091E80083FD0E948016D2 -:102FD000CF70C093E900CF910895909393028093AE -:102FE00092020895E0919202F0919302309721F0BD -:102FF0000190F081E02D099480E00895E091920223 -:10300000F0919302309721F00280F381E02D099432 -:103010000895E0919202F0919302309721F004809C -:10302000F581E02D0994089520919002309191024C -:103030008217930771F09093910280939002E09130 -:103040009202F0919302309721F00680F781E02DF3 -:103050000994089520918E0230918F028217930770 -:1030600071F090938F0280938E02E0919202F09122 -:103070009302309721F00084F185E02D09940895A2 -:1030800008950C9440180E94C6230E941C0A0E94B6 -:103090004C240C9408295F926F927F928F929F929A -:1030A000AF92BF92CF92DF92EF92FF920F931F9356 -:1030B000CF93DF9300D000D01F92CDB7DEB70E9430 -:1030C000610A9DE9C92E92E0D92E03E010E0AA24FE -:1030D000A394B12C502E802F0E94DC0A4C01F601E3 -:1030E000729062906F016826792661147104A1F4D0 -:1030F0000150110978F78FEF89838A831B820E9420 -:10310000CF238160782F9D838C8349815A816B8185 -:103110008D810E94FB1838C08091F20281FD0E94CF -:10312000E50A2BE030E07501022E02C0EE0CFF1C18 -:103130000A94E2F7C70186219721892B09F1298397 -:103140005A828E209F2091E0892809F490E09B8389 -:103150000E94CF238160782F9D838C8349815A817F -:103160006B818D810E94FB18000F111FF801EB5637 -:10317000FD4F80819181E826F926F182E08204C02A -:103180002150310980F6B4CF0E9436261091940266 -:103190000E94F2171817D1F00E94F2178093940240 -:1031A0000F900F900F900F900F90DF91CF911F9184 -:1031B0000F91FF90EF90DF90CF90BF90AF909F90D6 -:1031C0008F907F906F905F900C94C8090F900F9034 -:1031D0000F900F900F90DF91CF911F910F91FF9063 -:1031E000EF90DF90CF90BF90AF909F908F907F90A7 -:1031F0006F905F900895CF93DF93CDB7DEB72B9795 -:103200000FB6F894DEBF0FBECDBF4F8358876987D6 -:103210007A878B87DE01119686E0FD0111928A95EF -:10322000E9F785E0FE01379601900D928A95E1F766 -:1032300049815A816B817C818D819E810E94721FA0 -:103240002B960FB6F894DEBF0FBECDBFDF91CF91A6 -:103250000895CF93882309F4C2C0C82F823859F447 -:103260000E94F21781FDBBC089E30E944C220E949C -:10327000192389E30CC0833879F40E94F21780FD8A -:10328000AEC083E50E944C220E94192383E50E9470 -:103290008E22CF910C941923843859F40E94F2178E -:1032A00082FD9DC087E40E944C220E94192387E47E -:1032B000EECF8CEF8C0F813A48F48C2F0E9471284E -:1032C00081118DC08C2F0E944C22E3CF80E28C0FA5 -:1032D000883048F4C77081E001C0880FCA95EAF7CA -:1032E0000E94D222D6CF8BE58C0F833078F4C53A7A -:1032F00029F0C63A31F083E890E005C081E890E01B -:1033000002C082E890E0CF910C94141888E58C0FED -:10331000833108F064C0C83A39F1C93A41F1CA3A78 -:1033200049F1CB3A51F1CC3A59F1CD3A61F1C03B78 -:1033300069F1CE3A71F1CF3A79F1C13B81F1C23BEB -:1033400089F1C33B91F1C43B99F1C53BA1F1C63B67 -:10335000A9F1C73BB1F1C83BB9F1C93BC1F1CA3BC7 -:10336000C9F180E090E038C082EE90E035C089EE8F -:1033700090E032C08AEE90E02FC085EB90E02CC048 -:1033800086EB90E029C087EB90E026C08CEC90E0C3 -:1033900023C08DEC90E020C083E891E01DC08AE856 -:1033A00091E01AC082E991E017C084E991E014C06D -:1033B00081E292E011C083E292E00EC084E292E0EA -:1033C0000BC085E292E008C086E292E005C087E289 -:1033D00092E002C08AE292E0CF910C942A18CF9139 -:1033E0000895882309F44BC0823859F40E94F217DB -:1033F00081FF45C089E30E944C220E94192389E382 -:103400000CC0833871F40E94F21780FF38C083E546 -:103410000E944C220E94192383E50E948E220C9464 -:103420001923843859F40E94F21782FF28C087E4D8 -:103430000E944C220E94192387E4EFCF9CEF980F43 -:10344000913A58F390E2980F983050F4877091E0D9 -:1034500001C0990F8A95EAF7892F0E94D822DFCF01 -:103460009BE5980F933020F480E090E00C941418C2 -:10347000885A833120F480E090E00C942A18089553 -:10348000882321F00E94D2220C94192308958823C6 -:1034900021F00E94D8220C94192308957F928F92D4 -:1034A0009F92AF92BF92CF92DF92EF92FF920F93D3 -:1034B0001F93CF93DF931F92CDB7DEB77C01C62E4B -:1034C000772EFC01058102950F70128111110E9467 -:1034D000EF220E944522882379F0112369F080E2CF -:1034E0008C0D883048F082E00E942E220E944522F6 -:1034F00091E0D82ED92601C0D12CE72DE295EF70AE -:10350000F0E0E05AFF4F0C94992D872D807F072D16 -:103510000F70882311F00295007F112389F000239A -:1035200009F499C180E28C0D883020F4802F0E942C -:10353000D22203C0802F0E94E2220E9419238BC155 -:103540008C2D0E94F119002309F4C3C180E28C0D77 -:10355000883020F4802F0E94D82203C0802F0E9440 -:10356000E8220E941923B5C1872D807F972D9F7077 -:10357000803211F4892F03C0892F8295807FCC205F -:1035800021F0F1E0CF16A1F01DC0112339F0002386 -:1035900019F1013009F50E9402239BC1002319F0A3 -:1035A000013009F496C189830E940523898110C1E5 -:1035B000112321F0063008F08CC10EC0053008F050 -:1035C00088C106C1112359F0002331F0F70195811C -:1035D00090FF41C19F7095830E94401A7AC10023D9 -:1035E00009F4F6C03EC1872D86958695837090E0DC -:1035F000009719F0019761F06CC1112321F08C2D17 -:10360000972D937002C080E090E00E94141861C171 -:10361000112321F08C2D972D937002C080E090E053 -:103620000E942A1856C18C2D112319F00E943E25A4 -:1036300002C00E94A6250E942B264BC1872D8370B5 -:1036400009F052C0111145C18C2D82958695877065 -:10365000880F880F9C2D9F70892E912CA12CB12C46 -:10366000082E04C0880C991CAA1CBB1C0A94D2F713 -:10367000C4FE14C00FE010E020E030E0B901A80162 -:1036800004C0440F551F661F771F8A95D2F7CB01E0 -:10369000BA01609570958095909503C060E070E0E8 -:1036A000CB01272D26952695237030E02230310559 -:1036B00069F02330310589F0682979298A299B2905 -:1036C0002130310571F00E94BA2003C1682979299F -:1036D0008A299B290E94D620FCC00E94BA20C501DD -:1036E000B4010E949E20F5C0112319F0872D81702E -:1036F00001C08695882309F4ECC08C2D82958695AF -:103700008770880F880F9C2D9F70892E912CA12C7B -:10371000B12C082E04C0880C991CAA1CBB1C0A944E -:10372000D2F7C4FE14C00FE010E020E030E0B90191 -:10373000A80104C0440F551F661F771F8A95D2F752 -:10374000CB01BA01609570958095909503C060E0BB -:1037500070E0CB01272D269526952370422F50E04F -:103760004230510569F04330510589F068297929C3 -:103770008A299B294130510571F00E949421A9C0EA -:10378000682979298A299B290E94B021A2C00E9418 -:103790009421C501B4010E9478219BC08C2D90E03A -:1037A000FC01E05EF109E531F10508F050C0E05997 -:1037B000FF4F0C94992D0C2D0F70872D8F711123B5 -:1037C00021F00E941121802F07CF0E943221802FEB -:1037D0000E94471A7EC0112341F0053008F079C0DD -:1037E000872D8F710E94572174C0063008F071C078 -:1037F000F7CF112339F0872D8F710E94112169C0F5 -:103800001123C9F3872D8F710E94322162C01123C9 -:1038100029F0872D8F710E94FC205BC00E94F2204E -:1038200058C0112351F0172D1F71812F0E941121B3 -:1038300063E0812F0E9425224CC081E00E942E224D -:10384000023008F446C082E00E942E2242C01123BA -:1038500031F0002381F28C2D0E9429193AC00023F7 -:1038600089F28C2D0E94F11934C0472D4F706C2DB8 -:10387000C7010E941C040E9416202BC0111129C0F0 -:10388000472D4F7050E042305105B9F04CF44115CE -:10389000510581F041305105E1F40E94302919C0F1 -:1038A0004330510569F04430510599F48C2D0E9444 -:1038B00082290FC00E9419290CC00E944C2909C0FE -:1038C0000E945F2906C0472D4F706C2DC7010E94D2 -:1038D0003809DD20F9F00E94212280FD1BC0F7018C -:1038E00012820E941B220E941121C7010E94991C72 -:1038F0000E941B220F90DF91CF911F910F91FF909B -:10390000EF90DF90CF90BF90AF909F908F907F907F -:103910000C9432210F90DF91CF911F910F91FF9066 -:10392000EF90DF90CF90BF90AF909F908F907F905F -:1039300008950F931F93CF93DF93EC0188819981B2 -:103940002B813C81232BB9F09F3F11F48F3F99F0DD -:10395000CE010E94A504882371F0688179818A8153 -:103960000E9417228C010E94CC210E949320B80152 -:10397000CE010E944E1ADF91CF911F910F910895B1 -:103980000E94EF220E94FF220E94C4220E9419235B -:103990000E94DC260E942B2680E090E00E941418F2 -:1039A00080E090E00C942A180E94DF220C94C01C46 -:1039B0000E940C22292F22952F7030E02C303105E7 -:1039C0004CF42A3031056CF4225031092230310593 -:1039D000A8F407C02C30310569F02F30310551F0C3 -:1039E0000DC0803F69F018F4803E40F409C0843F68 -:1039F00029F406C093FB882780F9089580E0089594 -:103A000081E00895CF93DF9300D000D01F92CDB70F -:103A1000DEB70F900F900F900F900F90DF91CF9126 -:103A20000895CF93DF9300D000D000D0CDB7DEB79C -:103A300026960FB6F894DEBF0FBECDBFDF91CF91B3 -:103A400008951F93CF93DF93C0919D0216E080915C -:103A50009E02C81799F0D0E01C9FF0011D9FF00D49 -:103A60001124E156FD4F408151816281738184812F -:103A700095810E94111D2196C770E9CFDF91CF91EA -:103A80001F9108954091CF025091D0026091D102D0 -:103A90007091D2028091D3029091D4020C94111DA6 -:103AA0008091D40282958F7009F054C08091D10228 -:103AB000882309F44FC080919D02A0919E026091DD -:103AC000CF027091D0024091D2025091D302B6E061 -:103AD0008A1709F43FC090E041155105C1F17F3FBD -:103AE00011F46F3FA1F1B89FF001B99FF00D1124BF -:103AF000E156FD4F218172132AC02081621327C035 -:103B00002281211124C0238134812417350710F428 -:103B100021503109241B350B283C3105C0F420917C -:103B2000D4022F7020612093D40226E0289FF00158 -:103B3000299FF00D1124EC55FD4F80818F7080611D -:103B400080838FEC92E00E94991C0C94211D0196B9 -:103B50008770BECF0895CF92DF92EF92FF920F93BE -:103B60001F93CF93DF93CDB7DEB762970FB6F8946C -:103B7000DEBF0FBECDBF8C0185E0F801DE011D96D2 -:103B800001900D928A95E1F7D8014C9111965C91C4 -:103B9000119712966C9112971396CD90DC90149712 -:103BA0003091CF027091D0028091D2029091D302D5 -:103BB000009709F46BC17F3F19F43F3F09F466C1D8 -:103BC000E090D102EE2009F4C0C02091D402C816C2 -:103BD000D90628F0F601E81BF90BCF0104C0809547 -:103BE00090958C0D9D1DFF24F394883C910578F0F1 -:103BF000F12C207F09F0C6C07C2DD98AC88A89891A -:103C00000E94021D8FEC92E00E94991CB1C0822F8D -:103C1000807F09F046C0751314C0341312C06111BF -:103C200010C02F7020612093D4020E94421D8FEC9F -:103C300092E00E94991C8091D402D80115968C9331 -:103C40002EC0CD2819F15F3F11F44F3FF9F0F62E49 -:103C500061111CC080919D0220919E0236E0821766 -:103C600009F45AC090E0389FF001399FF00D1124FB -:103C7000E156FD4F7181571306C07081471303C091 -:103C80007281711103C001968770E9CFF62E662309 -:103C900009F418C18091D40281608093D402F12C80 -:103CA00011C1751308C0341306C0611104C080919E -:103CB000D402D801C3C04D875E878D859E856A8BEF -:103CC0000E94D81C6A898823E1F16623D1F12091F2 -:103CD000D402822F82958F7090E0029774F08091C9 -:103CE000CF029091D00298878F831986DB86CA868F -:103CF0002C87CE0107960E94991C86E0F801AFEC54 -:103D0000B2E001900D928A95E1F70E94501D0E9449 -:103D1000421DFF24F394D6C04D875E878D859E8516 -:103D20000E940C22292F22952F7030E0223031057D -:103D30000CF0BCC09F7009F0B6C0805E883008F4FB -:103D4000C1C0C8010E94991CE4CFC816D90608F466 -:103D500053C0F601E81BF90BCF01883C910508F42C -:103D600050C0F12C7C2DD98AC88A89890E94021DF5 -:103D7000EFECF2E086E0DF011D928A95E9F70E9400 -:103D8000421DA0C0751314C0341312C0611110C0BD -:103D90008091D402F8018583C8010E94991C86E0B5 -:103DA000EFECF2E0DF011D928A95E9F7FE2C8AC064 -:103DB0004D875E878D859E856A8B0E94D81C6A8997 -:103DC000882309F4BECF662309F4BBCF2091D40227 -:103DD000822F82958F7090E002970CF48ECF8091A5 -:103DE000CF029091D0029A8389831B82DD82CC829C -:103DF0002E83CE0101967FCF809590958C0D9D1DD1 -:103E0000ACCFF62E662309F49CCF75132EC0341365 -:103E10002CC02091D40220FD1FC0822F82958F706C -:103E2000D9F0D80115962C9315978F3049F08F5FF4 -:103E3000982F9295907F822F8F70892B15968C9357 -:103E4000C8010E94991C86E0F801AFECB2E0019035 -:103E50000D928A95E1F793CF86E0F801AFECB2E0DE -:103E600001900D928A95E1F72DC04D875E878D8573 -:103E70009E850E94D81C811140CF8091D402816020 -:103E80008093D402C8010E94991C1CC0662309F4C7 -:103E900058CF4D875E878D859E850E94D81C8823CC -:103EA00009F44FCF2ACF811148CF0CC024303105FF -:103EB0000CF047CF9F7009F440CFF8019581907FB7 -:103EC00009F03BCF8F2D62960FB6F894DEBF0FBE80 -:103ED000CDBFDF91CF911F910F91FF90EF90DF90B9 -:103EE000CF9008951F93CF93DF93CDB7DEB72C9774 -:103EF0000FB6F894DEBF0FBECDBF4F8358876987DA -:103F00007A878B879C87CE0107960E94AB1D8823FA -:103F100069F08F8198852A853B85232BF1F19F3F9E -:103F200009F063C08F3F09F060C037C086E0FE0132 -:103F30003796DE01119601900D928A95E1F76F8117 -:103F40007885EA85FB85309741F17F3F11F46F3F1B -:103F500021F120919E0230E0C901019687709927D6 -:103F600040919D0250E08417950709F447C069838A -:103F70007A83FD83EC8396E0929FD001939FB00DEE -:103F80001124A156BD4FFE01319601900D929A95D4 -:103F9000E1F780939E020E94211D16E080919D0210 -:103FA00090919E028917C1F1189FC001112481567A -:103FB0009D4F0E94AB1D882379F1E0919D021E9FC9 -:103FC000F0011124E156FD4F4081518162817381DE -:103FD000848195810E94111D80919D0290E001963F -:103FE0008770992780939D02D9CF4F815885698525 -:103FF0007A858B859C850E94111DCFCF0E94D41C91 -:1040000010929E0210929D02EFECF2E086E0DF013A -:104010001D928A95E9F7C1CF2C960FB6F894DEBFB2 -:104020000FBECDBFDF91CF911F910895EF92FF9208 -:104030000F931F93CF93DF938C01009709F46CC00B -:10404000F12CEE24E394E8012196F8018491843761 -:1040500040F4843008F051C0813081F0823019F191 -:104060005BC0853709F444C0A8F19CE7980F9037EE -:1040700008F052C08F770E94F11941C00E5F1F4FA8 -:10408000FE01C49180E28C0F883048F4C7708E2DF9 -:1040900001C0880FCA95EAF70E94F22214C08C2F43 -:1040A0000E9429192DC00E5F1F4FFE01C49180E2AE -:1040B0008C0F883058F4C7708E2D01C0880FCA95B8 -:1040C000EAF70E94F8220E9419231AC08C2F0E943E -:1040D000F11916C00E5F1F4FFE01C491CC2381F071 -:1040E0008FE99FE00197F1F700C00000C150F6CFC3 -:1040F0000E5F1F4FFE01F49003C00E9429198E012C -:104100008F2D882309F49FCFEFE9FFE03197F1F776 -:1041100000C000008150F5CFDF91CF911F910F912A -:10412000FF90EF90089508956093D9027093DA029A -:104130008093DB029093DC020C94C01C0F931F93BE -:104140000091D9021091DA022091DB023091DC0259 -:10415000DC01CB01802B912BA22BB32B8093D902B6 -:104160009093DA02A093DB02B093DC021F910F91CF -:104170000C94C01C0F931F930091D9021091DA0286 -:104180002091DB023091DC02DC01CB018023912302 -:10419000A223B3238093D9029093DA02A093DB0287 -:1041A000B093DC021F910F910C94C01C0F931F93CE -:1041B0000091D9021091DA022091DB023091DC02E9 -:1041C000DC01CB0180279127A227B3278093D90256 -:1041D0009093DA02A093DB02B093DC021F910F915F -:1041E0000C94C01C1092D5021092D6021092D702E5 -:1041F0001092D8020C94C01C41E050E060E070E0E6 -:1042000004C0440F551F661F771F8A95D2F740934D -:10421000D5025093D6026093D7027093D8020C94C3 -:10422000C01C41E050E060E070E004C0440F551F46 -:10423000661F771F8A95D2F78091D5029091D6029A -:10424000A091D702B091D802482B592B6A2B7B2B17 -:104250004093D5025093D6026093D7027093D80250 -:104260000C94C01C41E050E060E070E004C0440FDA -:10427000551F661F771F8A95D2F740955095609518 -:1042800070958091D5029091D602A091D702B091FD -:10429000D802482359236A237B234093D5025093A5 -:1042A000D6026093D7027093D8020C94C01C41E0F0 -:1042B00050E060E070E004C0440F551F661F771F98 -:1042C0008A95D2F78091D5029091D602A091D7021B -:1042D000B091D802482759276A277B274093D502F7 -:1042E0005093D6026093D7027093D8020C94C01CEE -:1042F0000F931F930091D5021091D6022091D702FF -:104300003091D802DC01CB01802B912BA22BB32B57 -:104310008093D5029093D602A093D702B093D8028F -:104320001F910F910C94C01C0F931F930091D50205 -:104330001091D6022091D7023091D802DC01CB0136 -:1043400080239123A223B3238093D5029093D60296 -:10435000A093D702B093D8021F910F910C94C01C68 -:104360000F931F930091D5021091D6022091D7028E -:104370003091D802DC01CB0180279127A227B327F7 -:104380008093D5029093D602A093D702B093D8021F -:104390001F910F910C94C01C0895CF92DF92EF9261 -:1043A000FF920F931F93CF93DF938C01C090D9029C -:1043B000D090DA02E090DB02F090DC028091D5022E -:1043C0009091D602A091D702B091D802C82AD92ADA -:1043D000EA2AFB2ACFE1D0E0D701C6010C2E04C0A7 -:1043E000B695A795979587950A94D2F780FF06C052 -:1043F000B8018C2F0E949707019721F4219760F74D -:1044000080E001C08C2FDF91CF911F910F91FF9021 -:10441000EF90DF90CF900895CF93DF93EC010E944F -:10442000CD21BE010E949707DF91CF910895CB0166 -:104430000E940C2208958091DD02859585958595D1 -:1044400008958091DD028770089598E0899F90011A -:104450001124262B2093DD020C9411212091DD02E2 -:10446000809582238093DD02982F977069F430E065 -:10447000482F552747FD50952417350729F0859576 -:10448000859585950C94322108959091DD02977061 -:1044900081E009F480E0089590911501992321F0BD -:1044A00090911601911109C02091170130911801C6 -:1044B000F90132969FEF40E01FC0982F9695969590 -:1044C00096959F3050F5E0911701F0911801E90F92 -:1044D000F11D877021E030E0A90102C0440F551F93 -:1044E0008A95E2F7CA019181892B818308959F3FC4 -:1044F00039F04F5F4E3041F051915813F8CF0DC055 -:104500005111F7CF942FF5CF9F3F39F0F901E90F03 -:10451000F11D97FDFA9582830895089590911501F4 -:10452000992321F090911601911109C02091170152 -:1045300030911801F9013296205F3F4F1FC0982F2C -:104540009695969596959F30F0F4E0911701F0912D -:104550001801E90FF11D877021E030E0A90102C0C8 -:10456000440F551F8A95E2F7CA01809591818923EE -:10457000818308953196E217F30729F0908198130B -:10458000F9CF1082F7CF089581E090E0E091170114 -:10459000F0911801E80FF91F108201968031910502 -:1045A000A9F708959091F102892B8093F102089563 -:1045B00080959091F10289238093F10208951092E1 -:1045C000F10208959091F002892B8093F0020895F2 -:1045D00080959091F00289238093F00208951092C3 -:1045E000F00208959091EF02892B8093EF020895D5 -:1045F00080959091EF0289238093EF0208951092A5 -:10460000EF0208958093DE0208951092DE0208956D -:104610008091170190911801FC0131969C01205F57 -:104620003F4F80E0919191118F5FE217F307D1F72F -:104630000895E0911701F09118018091F1028083B3 -:10464000E0911701F091180190818091F002892B7F -:104650008083E0911701F091180190818091EF0221 -:10466000892B80838091DE02882361F0E09117011D -:10467000F09118019081892B80830E940823811179 -:104680001092DE0280911701909118010C94FE1790 -:1046900020E0009739F0AC01415051098423952363 -:1046A0002F5FF7CF822F089580911503843039F161 -:1046B0001092F30220E488E190E00FB6F894A895F8 -:1046C000809360000FBE2093600080E00E9483030F -:1046D00080E00E94C80983B7817F846083BF83B76D -:1046E000816083BF7894889583B78E7F83BF88E18C -:1046F0000FB6F89480936000109260000FBE08958A -:10470000089580E00E9483030E94DE090E94610AEE -:104710000E9480230E94E60A91E0811101C090E08E -:10472000892F08950E94D41C80E00E9483030E9478 -:1047300008290E94F2170C94C8091F920F920FB615 -:104740000F9211248F939F93AF93BF938091F302A5 -:10475000811113C08091F4029091F502A091F602AC -:10476000B091F7024196A11DB11D8093F402909380 -:10477000F502A093F602B093F702BF91AF919F911B -:104780008F910F900FBE0F901F90189582E084BDFF -:1047900093E095BD9AEF97BD80936E0008952FB773 -:1047A000F8948091F4029091F502A091F602B091F4 -:1047B000F7022FBF0895CF92DF92EF92FF920F93EF -:1047C0001F932FB7F8944091F4025091F502609135 -:1047D000F6027091F7022FBF6A017B01EE24FF24DD -:1047E0008C0120E030E0C016D106E206F30610F49A -:1047F000415051099A01281B390BC9011F910F9192 -:10480000FF90EF90DF90CF9008951F920F920FB618 -:104810000F9211248F939F93AF93BF938091F402D3 -:104820009091F502A091F602B091F7020196A11DB8 -:10483000B11D8093F4029093F502A093F602B09319 -:10484000F702BF91AF919F918F910F900FBE0F9084 -:104850001F9018950E94EF14F8942FEF87EA91E6C5 -:10486000215080409040E1F700C0000087E090EBCD -:10487000DC0180931F0390932003A0932103B09346 -:1048800022039CE088E10FB6F894A895809360001D -:104890000FBE90936000FFCF0E948E24811102C052 -:1048A0000E946A240E9499248093F2020E94A1240B -:1048B00090E0909304038093030387FB882780F99B -:1048C000809316010E949D24682F70E080E090E0A4 -:1048D0000C9494206DEE7EEF80E090E00E94BF2D5E -:1048E00060E082E090E00E94AD2D60E083E090E027 -:1048F0000E94AD2D60E084E090E00E94AD2D60E06C -:1049000085E090E00E94AD2D60E086E090E00E949E -:10491000AD2D6FEF87E090E00C94AD2D80E090E03E -:104920000E94A72D21E08D3E9E4F09F020E0822FAE -:10493000089582E090E00C949F2D83E090E00C9429 -:104940009F2D84E090E00C949F2D682F84E090E0F0 -:104950000C94AD2D86E090E00C949F2D682F86E09E -:1049600090E00C94AD2D87E090E00C949F2D682F83 -:1049700087E090E00C94AD2D8091FA0280FF0BC08F -:1049800060911C0185E0689FB001112475956795C1 -:10499000759567952BC081FF09C060911C0185E06A -:1049A000689FB00111247595679520C082FF07C0EC -:1049B00060911C0185E0689FB001112417C090919F -:1049C000FB029923D1F060911B01961788F7209183 -:1049D0001C0185E0289F90011124929FA001939FC4 -:1049E000500D112470E0CA010E94852D60387105B8 -:1049F00040F46115710539F002C065E070E0862F62 -:104A000008958FE7089581E008958091FA0280FF6C -:104A100008C060911A0170E0759567957595679566 -:104A200021C081FF06C060911A0170E075956795FD -:104A300019C082FF04C060911A0170E010C090910B -:104A4000FB029923C1F0609119019617A0F780919C -:104A50001A01899FC001112470E00E94852D6038E1 -:104A6000710528F46115710521F0862F08958FE7EF -:104A7000089581E0089561E070E0F4CF803F21F473 -:104A80000E94BC24819504C0813F29F40E94BC246B -:104A90008093FE020895823F21F40E94BC248195F8 -:104AA00004C0833F29F40E94BC248093FD02089532 -:104AB000893F19F40E94052505C08A3F31F40E9400 -:104AC000052581958093FF0208958B3F21F40E9474 -:104AD0000525819504C08C3F29F40E94052580930B -:104AE00000030895843F21F48091FC02816017C087 -:104AF000853F21F48091FC02826011C0863F21F441 -:104B00008091FC0284600BC0873F21F48091FC02FD -:104B1000886005C0883F31F48091FC0280618093F9 -:104B2000FC0208958D3F21F48091FA0281600BC050 -:104B30008E3F21F48091FA02826005C08F3F29F4F4 -:104B40008091FA0284608093FA020895803F39F4DC -:104B50008091FE0287FF6CC01092FE0269C0813F07 -:104B600029F48091FE021816BCF362C09091FD02F8 -:104B7000823F29F497FF5CC01092FD0259C0833F29 -:104B800019F41916CCF354C0893F41F48091FF0207 -:104B900018160CF04DC01092FF024AC08A3F29F44B -:104BA0008091FF0287FF44C0F6CF8B3F39F480919C -:104BB000000387FF3DC0109200033AC08C3F29F4E8 -:104BC000809100031816BCF333C0843F21F4809118 -:104BD000FC028E7F17C0853F21F48091FC028D7FFF -:104BE00011C0863F21F48091FC028B7F0BC0873F70 -:104BF00021F48091FC02877F05C0883F31F48091C9 -:104C0000FC028F7E8093FC0213C08D3F21F48091C3 -:104C1000FA028E7F0BC08E3F21F48091FA028D7FC5 -:104C200005C08F3F29F48091FA028B7F8093FA02AE -:104C30008091FD0281110EC08091FE0281110AC097 -:104C40008091FF02811106C080910003811102C092 -:104C50001092FB0208958CEF92E00E9409180E94C6 -:104C6000CF239093F9028093F80208951F93CF9376 -:104C7000DF938091F8029091F9020E94DB23AC014E -:104C80009091FB02992321F020911D0130E006C094 -:104C900020911E018AE0289F90011124421753079A -:104CA00008F486C08091FD02C091FE02D091FF02FF -:104CB00010910003811107C0C11176C0D11174C0D9 -:104CC000111172C075C09F3F19F09F5F9093FB0256 -:104CD000181624F40E94BC248093FD028091FD02EA -:104CE00087FF05C00E94BC2481958093FD021C169D -:104CF00024F40E94BC248093FE028091FE0287FF70 -:104D000005C00E94BC2481958093FE026091FD0243 -:104D1000662339F1C091FE02CC2319F1772767FD94 -:104D20007095872F972F0E94A72A23E333E343E34D -:104D30005FE30E94B72B0E94742A6093FD026C2FE0 -:104D4000772767FD7095872F972F0E94A72A23E367 -:104D500033E343E35FE30E94B72B0E94742A60931E -:104D6000FE021D1624F40E9405258093FF02809107 -:104D7000FF0287FF05C00E94052581958093FF02F1 -:104D8000111624F40E9405258093000380910003EE -:104D900087FF05C00E940525819580930003DF9160 -:104DA000CF911F910C942B269F3F09F08ECF96CF69 -:104DB000DF91CF911F910895ECEFF2E085E0DF01E4 -:104DC0001D928A95E9F71092FB021092FA0208955B -:104DD000833081F128F4813059F08230D1F0089588 -:104DE000853009F449C0B8F1863009F456C00895F9 -:104DF00080911E01262F30E0280F311D2F3F3105F5 -:104E000024F4680F60931E0108958FEF80931E01B4 -:104E1000089580911D01262F30E0280F311D2F3F6E -:104E2000310524F4680F60931D0108958FEF80937E -:104E30001D01089580911C01262F30E0280F311D9F -:104E40002F3F310524F4680F60931C0108958FEF04 -:104E500080931C01089580911B01262F30E0280FBC -:104E6000311D2F3F310524F4680F60931B01089515 -:104E70008FEF80931B01089580911A01262F30E057 -:104E8000280F311D2F3F310524F4680F60931A015C -:104E900008958FEF80931A01089580911901262FAC -:104EA00030E0280F311D2F3F310524F4680F609347 -:104EB000190108958FEF809319010895833011F13E -:104EC00028F4813049F0823091F00895853081F1E5 -:104ED00020F18630C1F1089580911E01681720F4F9 -:104EE000861B80931E01089510921E0108958091E3 -:104EF0001D01681720F4861B80931D0108951092F0 -:104F00001D01089580911C01681720F4861B809371 -:104F10001C01089510921C01089580911B016817CF -:104F200020F4861B80931B01089510921B010895A5 -:104F300080911A01681720F4861B80931A01089546 -:104F400010921A01089580911901681720F4861BA8 -:104F50008093190108951092190108950F931F93DA -:104F6000873208F048C08E3108F08DC0803109F4D6 -:104F700077C008F5873009F461C068F4863009F01D -:104F80009DC08091F202817F8E7F8093F20281E04A -:104F90008093020394C08B3009F489C08E3009F0ED -:104FA0008DC08091F20282FB222720F991E09227A6 -:104FB00090FB82F95EC0863109F479C060F48131DA -:104FC00009F07CC00E94D41C9091160181E08927D1 -:104FD000809316016CC0893109F469C08B3109F0E6 -:104FE0006DC08091F20281FB222720F991E0922787 -:104FF00090FB81F93EC0883309F459C050F48932DE -:1050000009F457C0853309F454C0873209F451C0FC -:1050100055C0833409F44DC028F48A3308F44EC0D7 -:10502000895332C0883409F049C00E94D41C0E94C0 -:10503000160B0E949C040E942A2439C09091F2020F -:10504000892F8095817080FB90F929F09660986097 -:105050009093F20234C0997F977F9093F20227C019 -:105060008091F20283FB222720F991E0922790FBA6 -:1050700083F98093F2029923D1F08091F20281604A -:105080008093F20214C08D5141E050E060E070E086 -:105090008A019B0104C0000F111F221F331F8A9534 -:1050A000D2F7C901B8010E9494200E94D41C81E06B -:1050B00006C061E070E080E090E0F5CF80E01F91F5 -:1050C0000F91089580E0089580E008958E518A3010 -:1050D00030F4E82FF0E0EA54FE4F8081089580E03C -:1050E0000895CF93C82F80910203813069F018F0A2 -:1050F0008230C9F183C0E0911701F09118018081DD -:10510000823209F07DC007C0E0911701F0911801CB -:105110008081823261F48C2F0E946228811104C048 -:105120008C2F0E94AE271DC081E090E01AC08C2F0A -:105130000E946428811114C0C43179F048F4CB3046 -:1051400079F0C03109F060C082E08093020308C0AA -:10515000C93219F0C83321F057C01092020354C06D -:1051600081E0817053C0C93289F118F5C43171F101 -:10517000B0F4C73009F046C08EE180931E0182E38F -:1051800080931D018AE080931C0184E180931B01C0 -:1051900088E080931A0188E28093190133C082EE7F -:1051A0008C0F863078F58C2F0E946628809301033F -:1051B00029C0CE34E9F020F4CB3421F56AE013C0E5 -:1051C000C13579F0C235F1F461E00DC08091010381 -:1051D000882319F01092010315C081E08093020327 -:1051E00015C061E006C0809101030E94E8260AC054 -:1051F0006AE0809101030E945E2704C010920203BE -:1052000080E004C081E002C080E0ABCFCF91089580 -:105210000E948E24811102C00E946A240E94AA2446 -:1052200080931E0380FF02C0869501C080E00C942D -:10523000830380911E03982F9695292F30E0233009 -:1052400031054CF49F5F990F8170892B81608093A9 -:105250001E030E94AE2480911E0386950C94830346 -:1052600080911E03982F969591F09158990F817017 -:10527000892B80931E038E7F91E009F490E080914A -:105280001E0390FB80F980931E030E94AE24809140 -:105290001E0386950C94830380911E03982F90958E -:1052A00090FB80F980931E030E94AE2480911E0320 -:1052B00080FF02C0869501C080E00C94830390912A -:1052C0001E03892F86958F5F8F779170843028F425 -:1052D000880F892B80931E0302C090931E03809138 -:1052E0001E038E7F91E009F490E080911E0390FBF5 -:1052F00080F980931E030E94AE2480911E03869540 -:105300000C94830320911E03922F96958927982F42 -:10531000990F822F8170892B80931E038E7F91E0DD -:1053200009F490E080911E0390FB80F980931E03A6 -:105330000E94AE2480911E0386950C948303809175 -:105340001E03869508955058BB27AA270ED0D1C1B9 -:10535000C2D130F0C7D120F031F49F3F11F41EF4D8 -:10536000B7C10EF4E095E7FB9FC1E92FD3D180F3DD -:10537000BA17620773078407950718F071F49EF552 -:10538000EBC10EF4E0950B2EBA2FA02D0B01B90145 -:1053900090010C01CA01A0011124FF27591B99F0AB -:1053A000593F50F4503E68F11A16F040A22F232FB7 -:1053B000342F4427585FF3CF469537952795A79507 -:1053C000F0405395C9F77EF41F16BA0B620B730BAE -:1053D000840BBAF09150A1F0FF0FBB1F661F771F1F -:1053E000881FC2F70EC0BA0F621F731F841F48F4D4 -:1053F000879577956795B795F7959E3F08F0B3CF5A -:105400009395880F08F09927EE0F97958795089543 -:1054100027D108F481E008950CD06BC163D140F02E -:105420005AD130F021F45F3F19F03EC1511195C1BE -:105430004FC170D198F39923C9F35523B1F3951B4C -:10544000550BBB27AA2762177307840738F09F5FA5 -:105450005F4F220F331F441FAA1FA9F333D00E2E14 -:105460003AF0E0E830D091505040E695001CCAF781 -:1054700029D0FE2F27D0660F771F881FBB1F261746 -:1054800037074807AB07B0E809F0BB0B802DBF0119 -:10549000FF2793585F4F2AF09E3F510568F004C1E3 -:1054A0005CC15F3FECF3983EDCF38695779567959A -:1054B000B795F7959F5FC9F7880F911D96958795CA -:1054C00097F90895E1E0660F771F881FBB1F6217E9 -:1054D00073078407BA0720F0621B730B840BBA0BA7 -:1054E000EE1F88F7E095089504D06894B11135C196 -:1054F000089518D188F09F5790F0B92F9927B75188 -:10550000A0F0D1F0660F771F881F991F1AF0BA9587 -:10551000C9F712C0B13081F01FD1B1E008951CC1AC -:10552000672F782F8827B85F39F0B93FCCF386957D -:1055300077956795B395D9F73EF4909580957095DA -:1055400061957F4F8F4F9F4F0895E89409C097FB57 -:105550003EF490958095709561957F4F8F4F9F4F4A -:105560009923A9F0F92F96E9BB279395F69587958E -:1055700077956795B795F111F8CFFAF4BB0F11F451 -:1055800060FF1BC06F5F7F4F8F4F9F4F16C08823F8 -:1055900011F096E911C0772321F09EE8872F762F2E -:1055A00005C0662371F096E8862F70E060E02AF06F -:1055B0009A95660F771F881FDAF7880F969587955B -:1055C00097F9089588D018F011F08CD038F480C085 -:1055D000C4C0E92F9FD0B0F35523C9F3E7FB62178E -:1055E000730784079507A8F199F3E92FFF2788230C -:1055F0002AF03197660F771F881FDAF7952F552706 -:10560000442332F091505040220F331F441FD2F7F1 -:10561000BB27E91BF50B621B730B840BB109C1F2AD -:1056200022F4620F731F841FB11D31972AF0660F99 -:10563000771F881FBB1FEFCF915050405AF041F0A9 -:10564000882332F0660F771F881F91505040C1F7B2 -:10565000939530C08695779567959F5FD9F7F8CF7A -:10566000990F0008550FAA0BE0E8FEEF1616170673 -:10567000E807F907C0F012161306E407F50798F0DB -:10568000621B730B840B950B39F40A2661F0232BF4 -:10569000242B252B21F408950A2609F4A140A69570 -:1056A0008FEF811D811D089597F99F6780E870E055 -:1056B00060E008959F3F31F0915020F487957795F1 -:1056C0006795B795880F911D9695879597F90895D9 -:1056D0009FEF80EC089500240A941616170618060A -:1056E0000906089500240A941216130614060506E6 -:1056F0000895092E0394000C11F4882352F0BB0F77 -:1057000040F4BF2B11F460FF04C06F5F7F4F8F4FD9 -:105710009F4F089557FD9058440F551F59F05F3F14 -:1057200071F04795880F97FB991F61F09F3F79F0C3 -:1057300087950895121613061406551FF2CF469545 -:10574000F1DF08C0161617061806991FF1CF8695C7 -:105750007105610508940895E894BB2766277727AB -:10576000CB0197F908957CDF08F48FEF08950BD0F3 -:10577000C0CFB1DF28F0B6DF18F0952309F094CF41 -:10578000A7CF1124EACFC6DFA0F3959FD1F3950FE1 -:1057900050E0551F629FF001729FBB27F00DB11DB5 -:1057A000639FAA27F00DB11DAA1F649F6627B00D45 -:1057B000A11D661F829F2227B00DA11D621F739F2E -:1057C000B00DA11D621F839FA00D611D221F749F3C -:1057D0003327A00D611D231F849F600D211D822F83 -:1057E000762F6A2F11249F5750408AF0E1F08823CA -:1057F0004AF0EE0FFF1FBB1F661F771F881F9150D7 -:105800005040A9F79E3F510570F04ECFA6CF5F3FA5 -:10581000ECF3983EDCF3869577956795B795F79509 -:10582000E7959F5FC1F7FE2B880F911D9695879591 -:1058300097F90895FA01EE0FFF1F30962105310503 -:1058400099F16115710561F48038BFE39B0749F157 -:1058500068949038810561F08038BFEF9B0741F074 -:10586000992342F5FF3FE1053105210511F1E89447 -:105870000894E795D901AA2329F4AB2FBE2FF85F2E -:10588000D0F310C0FF5F70F4A695E0F7F73950F041 -:1058900019F0FF3A38F49F779F930CD00F9007FCD4 -:1058A000905808953EF014CF60E070E080E89FE3E8 -:1058B00008954FE79F775F934F933F932F939ED029 -:1058C0002F913F914F915F9152DF05C019F40EF077 -:1058D000EBCE42CFFDCE26DFC8F39638C0F707F8EF -:1058E0000F92E8942BE33AEA48EB5FE74EDF0F9222 -:1058F0000F920F924DB75EB70F92C0D0EAE0F1E081 -:1059000016D04F915F91EF91FF91E595EE1FFF1F2C -:1059100049F0FE57E0684427EE0F441FFA95E1F77F -:105920004195550B32D00F9007FE26C00895DF93A6 -:10593000CF931F930F93FF92EF92DF927B018C0125 -:10594000689405C0DA2EEF011EDFFE01E894A591F0 -:105950002591359145915591AEF3EF0106DDFE019C -:105960009701A801DA9479F7DF90EF90FF900F91FB -:105970001F91CF91DF9108959B01AC0160E070E031 -:1059800080E89FE349CD90CE95CECCDEE8F3992315 -:10599000D9F3940F511DBBF39150504094F059F03E -:1059A000882332F0660F771F881F91505040C1F74F -:1059B0009E3F510544F7880F911D9695879597F95D -:1059C00008955F3FACF0983E9CF0BB278695779595 -:1059D0006795B79508F4B1609395C1F7BB0F58F779 -:1059E00011F460FFE8CF6F5F7F4F8F4F9F4FE3CF82 -:1059F000B4CE0EF05FCE6CCE689456CE93DEC8F374 -:105A00009923D1F3C6F3DF93CF931F930F93FF92A4 -:105A1000C92FDD2788232AF02197660F771F881F5B -:105A2000DAF720E030E040E85FEB9FE3883920F0D0 -:105A3000803E30F021968F7787DCE2E3F1E003C00F -:105A400083DCEFE5F1E073DF8B01BE01EC01FB2E9F -:105A50006F5771097595771F880B990B78DD28E1D1 -:105A600032E741E35FE38FDEAF2D9801AE01FF9097 -:105A70000F911F91CF91DF9178DC3BCEFA01DC01D1 -:105A8000AA0FBB1F9B01AC01BF5728F42227332765 -:105A9000442750781FC0B75188F4AB2F0024469597 -:105AA00037952795011CA395D2F3002069F0220FAA -:105AB000331F441FB395DAF30DD045CC6130710527 -:105AC000A0E88A07B94630F49B01AC016627772726 -:105AD00088279078309621F0208331834283538346 -:105AE0000895AA1BBB1B51E107C0AA1FBB1FA61725 -:105AF000B70710F0A61BB70B881F991F5A95A9F777 -:105B000080959095BC01CD01089597FB072E16F462 -:105B1000009407D077FD09D00E94712D07FC05D0B5 -:105B20003EF4909581959F4F0895709561957F4FB4 -:105B30000895EE0FFF1F0590F491E02D0994F99957 -:105B4000FECF92BD81BDF89A992780B50895A8E14E -:105B5000B0E042E050E00C94C72D262FF999FECF1B -:105B600092BD81BDF89A019700B4021639F01FBAB0 -:105B700020BD0FB6F894FA9AF99A0FBE08950196CF -:105B8000272F0E94AE2D0C94AD2DDC01CB01FC0122 -:105B9000F999FECF06C0F2BDE1BDF89A319600B486 -:0E5BA0000D9241505040B8F70895F894FFCF91 -:105BAE00640007000CFF0000003F64FA10881165C6 -:105BBE00113111FD100101DF022808140A321E00F6 -:105BCE0002040507090B0C0E1011131517181A1CD9 -:105BDE001D1F2123242628292B2D2F303234353713 -:105BEE00393B1F0F03764F5F6F7F49694379095920 -:105BFE0053633149803F5D8B803FF8BF803FCAE1E0 -:105C0E00803F73ED803FCAE1803FF8BF803F5D8BE0 -:105C1E00803F3149803F0000803FF16D7F3F75EA44 -:105C2E007E3F4C827E3F833F7E3F84287E3F833F74 -:105C3E007E3F4C827E3F75EA7E3FF16D7F3F0000D6 -:105C4E00803F404D36390F06C2058C055305E604DC -:105C5E00FF041805310501020304050607080900B3 -:00000001FF diff --git a/keyboards/planck/keymaps/lukas/compiled.hex b/keyboards/planck/keymaps/lukas/compiled.hex deleted file mode 100644 index 2cd3bc522..000000000 --- a/keyboards/planck/keymaps/lukas/compiled.hex +++ /dev/null @@ -1,1446 +0,0 @@ -:100000000C9461020C94A5020C94A5020C94A50218 -:100010000C94A5020C94A5020C94A5020C94A502C4 -:100020000C94A5020C94A5020C9467140C94391539 -:100030000C949B220C94A5020C94A5020C94A5028E -:100040000C94A5020C9407030C94A5020C94A50231 -:100050000C94A5020C9403230C94A5020C94A50205 -:100060000C94A5020C94A5020C94A5020C94A50274 -:100070000C94A5020C94A5020C94A5020C94A50264 -:100080000C94DC0A0C94A5020C94A5020C94A50215 -:100090000C94A5020C94A5020C94A5020C94A50244 -:1000A0000C94A5020C94A5020C94A502A615C815E3 -:1000B000B616C815B6160D163016B616851698164D -:1000C00082198219B119B119F019101A661B661B31 -:1000D0001B1A661BCB1ACB1A321B3B1B661B601B01 -:1000E000D81AD81AD81AD81AD81AD81AD81AD81A80 -:1000F000D81AD81AD81AD81AD81AD81AD81AD81A70 -:10010000E81AF61AFD1A041B0E1B07634236B79B4A -:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 -:100120005763BD6DEDFD753EF6177231BF000000DF -:10013000803F08000000BE922449123EABAAAA2AC2 -:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD -:1001500000000000BF000000803F00000000000819 -:100160004178D3BB4387D1133D190E3CC3BD4282B6 -:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 -:10018000FFBE01C4FF7F3F00000000000000000030 -:1001900000000000000000010204060A0F17202CD6 -:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 -:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF -:1001C0000201000000000000000000002B001400ED -:1001D0001A000800150017001C0018000C0012007F -:1001E00013002A00290004001600070009000A0075 -:1001F0000B000D000E000F0033003400E1001D0065 -:100200001B00060019000500110010003600370021 -:1002100038002800E000E200E300013001522C0029 -:100220002C0002525000510052004F0035021E02B5 -:100230001F0220022102220223022402250226029A -:1002400027022A0001000100010001000100010055 -:1002500001002D022E022F023002310201000100A6 -:1002600001000100010001000100010001002F0058 -:100270003000010001000100010001000100010047 -:1002800001000100010001000100010035001E0015 -:100290001F0020002100220023002400250026004A -:1002A00027004C00010001000100010001000100D5 -:1002B00001002D002E002F00300031000100010050 -:1002C0000100010001000100010001000100010026 -:1002D0000100010001000100010001000100010016 -:1002E0000100010001000100010001002803540089 -:1002F00068006500200050006C0061006E00630023 -:100300006B0020004B006500790062006F00610007 -:100310007200640000002C034F007200740068003B -:100320006F006C0069006E006500610072002000C3 -:100330004B006500790062006F006100720064008C -:10034000730000000403090409026D00040100A009 -:10035000FA09040000010301010009211101000153 -:10036000223F000705810308000A09040100010378 -:10037000010200092111010001224D00070582033D -:1003800008000A090402000103000000092111010C -:1003900000012236000705830308000A0904030050 -:1003A00001030000000921110100012239000705A5 -:1003B00084031000011201100100000008EDFE602E -:1003C0006001000102000105010906A101050719EC -:1003D000E029E71500250195087501810205081936 -:1003E0000129059505750191029501750391010596 -:1003F000071900297715002501957875018102C03C -:1004000005010980A101850216010026B7001A0125 -:10041000002AB700751095018100C0050C0901A1E3 -:10042000018503160100269C021A01002A9C027510 -:100430001095018100C005010902A1010901A10077 -:100440000509190129051500250195057501810288 -:100450009501750381010501093009311581257F59 -:1004600095027508810609381581257F9501750863 -:100470008106050C0A38021581257F9501750881D2 -:1004800006C0C005010906A101050719E029E71505 -:100490000025019508750181029501750881010506 -:1004A00008190129059505750191029501750391BA -:1004B000010507190029FF150025FF95067508811C -:1004C00000C011241FBECFEFDAE0DEBFCDBF04B6FF -:1004D00003FE24C080911E0390911F03A09120036E -:1004E000B09121038730904BA740B04BB9F41092E4 -:1004F0001E0310921F03109220031092210314BEBA -:1005000084B7877F84BF88E10FB6F894809360003A -:10051000109260000FBEE0E0F8E3099511E0A0E062 -:10052000B1E0E0E9F9E502C005900D92A03CB10709 -:10053000D9F713E0A0ECB1E001C01D92AE31B107D4 -:10054000E1F70E94AD110C94C62C0C9400000895A4 -:10055000089581E0089508950C94A8020C94A902CE -:100560000C94AB020E94902823E030E0281B310954 -:10057000220F2093C4010895282F2F988091800086 -:10058000211108C0877F8093800010928D00109207 -:100590008C001BC0886080938000233019F48FEF9B -:1005A0009FEF0FC083E090E0821B9109880F991F95 -:1005B0002FEF3FEFA90102C0569547958A95E2F7C4 -:1005C000CA0190938D0080938C000C94B2020E941B -:1005D000B20284E08093C3011092C0010895279A6B -:1005E0002F988FEF9FEF90938700809386008AE08B -:1005F0008093800089E1809381000E94F9270C9408 -:10060000E7020E94EF026E9A769A0C94A7021F925C -:100610000F920FB60F9211242F933F938F939F93B6 -:10062000EF93FF93E091C101F091C201CF010196D8 -:100630009093C2018093C1010090C30102C0F6955E -:10064000E7950A94E2F7EF738091C001823019F4C4 -:10065000E03251F404C0813039F4EF3329F4809151 -:100660006F008D7F80936F00F0E0E457FE4FE491C0 -:1006700021E031E0E29FC001E39F900D1124009042 -:10068000C40102C0969587950A94E2F790938D0075 -:1006900080938C00FF91EF919F918F913F912F91CB -:1006A0000F900FBE0F901F901895662319F06130C0 -:1006B00079F01FC0FC018281882331F085EE0E9411 -:1006C00026180E94502815C085EE0E94EE1811C011 -:1006D000FC018281882339F083EE0E94261882E093 -:1006E0000E940E2006C083EE0E94EE1882E00E9457 -:1006F0002F2080E090E0089581E008950C947C0321 -:1007000008950C94010380911502882309F448C0D0 -:100710008091D1019091D201009779F40E94CD226D -:100720009093D2018093D1018091D30190E0009702 -:1007300071F48091D40190E00AC00E94D9222091E6 -:100740000001309101012817390740F329C00197B2 -:10075000880F991F880F991FFC01EB52FE4F608193 -:100760007181828193810E94420AE091D30184E0E9 -:10077000E89FF0011124EB52FE4F6081718182816C -:1007800093814FE050E00E94FA0D8091D30190E0F8 -:1007900001966091D40170E00E94762C8093D30181 -:1007A0000C94AC02109217020C940F0A089508954D -:1007B00081E0809317020C94D703089508958F92D7 -:1007C0009F92AF92BF92EF92FF920F931F93CF939E -:1007D000DF93CDB7DEB7A3970FB6F894DEBF0FBE99 -:1007E000CDBF7C01FC0100811181C8010E94CA209B -:1007F000B8010E94E1058C01B7010E947E038823A5 -:1008000009F4CCC10032F0E51F0741F4F701828101 -:10081000882309F458C00E945E0EC0C10132F0E581 -:100820001F0741F4F7018281882309F44CC00E941C -:10083000670EB4C10232F0E51F0751F4F70182815F -:10084000882309F440C00E945A0E8111F0CFE3CFF3 -:100850000332F0E51F0739F4F7018281882399F10B -:100860000E94D8039BC10432F0E51F0739F4F70159 -:100870008281882341F10E94D20390C10532F0E5C4 -:100880001F0749F4F70182818823E9F0809117025C -:100890008111F1CFE5CF0632F0E51F0739F4F701FA -:1008A0008281882381F00E946E0E0AC00732F0E533 -:1008B0001F0749F4F7018281882329F00E94790EED -:1008C0000E94DE036BC180911702811105C0F70100 -:1008D00082818111CFC018C1003E110579F4F70162 -:1008E0008281882309F44DC00E940F0A81E0809321 -:1008F0001602109215021092D40150C1023E110549 -:1009000059F4F70182818823E1F10E940F0A1092C5 -:1009100016021092150242C1033E110591F4F7012F -:100920008281882371F10E940F0A1092160281E0E1 -:10093000809315021092D3011092D2011092D1012E -:100940002DC10235110559F4F7018281882309F47C -:1009500025C180910001909101010A970DC00135D8 -:10096000110579F4F7018281882309F417C1809178 -:100970000001909101010A9690930101809300017A -:100980000DC14091040183E2EFE1F1E0DE01119637 -:1009900001900D928A95E1F7F701808121E030E026 -:1009A0002C0F3D1F280F311DC901209102013091EC -:1009B0000301FC01E20FF31F6081772767FD70954B -:1009C000640F711D882777FD8095982F0E949829C4 -:1009D00020E030E040E451E40E94FD284B015C013E -:1009E000F701218184E090E0821B9109BC018827F6 -:1009F00077FD8095982F0E9498299B01AC01C50135 -:100A0000B4010E9495289B01AC0160E070E080E099 -:100A100090E40E940B2B20E030E04CED50E40E946B -:100A2000A82A4B015C01F70182818823D1F04FE0B5 -:100A300050E0C501B4010E94FA0D8091160288238E -:100A4000A1F08091D40124E0829FF0011124EB52A7 -:100A5000FE4F80829182A282B3828F5F8093D40105 -:100A600004C0C501B4010E94420A0F3F110508F0FD -:100A70002ECF94C08091D00181111FC0043130E588 -:100A8000130709F051C00E94800381E08093D001D8 -:100A90000E94CD229093CF018093CE011092C70186 -:100AA0001092C9011092C8011092CB011092CA0194 -:100AB0001092CD011092CC0171C08091CE01909125 -:100AC000CF010E94D922883C910570F48091C70122 -:100AD000E82FF0E0EE0FFF1FE853FE4F1183008375 -:100AE0008F5F8093C7015AC0043880E5180721F052 -:100AF0000538104501F13AC0F7018281882341F0A1 -:100B00001092C50182E01EC0043830E5130759F584 -:100B10008091C501811106C086E20E94261886E2F6 -:100B20000E94EE1882E01CC00438F0E51F0741F374 -:100B300005381045D9F4F7018281882331F01092ED -:100B4000C60180E20E943D1929C08091C601811131 -:100B500006C087E20E94261887E20E94EE1880E213 -:100B60000E9444191BC00538104529F381E0809389 -:100B7000C5018093C601C701A3960FB6F894DEBFE6 -:100B80000FBECDBFDF91CF911F910F91FF90EF90DE -:100B9000BF90AF909F908F900C94AE0280E0A39690 -:100BA0000FB6F894DEBF0FBECDBFDF91CF911F917E -:100BB0000F91FF90EF90BF90AF909F908F9008950E -:100BC00008959CE0799FF001112490E3899FE00D46 -:100BD000F11D1124E60FF11DEE0FFF1FE453FE4F30 -:100BE000859194910895880F991FFC01E45BFF4F54 -:100BF000859194910895880F991FFC01E453FE4F4D -:100C00008591949108950F931F93CF93DF93EC01F7 -:100C1000811521E39207A0F5C11580E3D80708F0FC -:100C2000D7C0C83ED105D8F4C03ED10508F007C2F0 -:100C3000C83AD10578F4C53AD10508F06AC0C13088 -:100C4000D10509F463C008F4F7C1C430D10508F038 -:100C5000F6C1F2C1CB3BD10508F466C0EDC1C115A8 -:100C600090E2D90708F0AFC0C11521E0D20708F023 -:100C7000E6C1C03FD10508F4DFC18E0110651FC277 -:100C8000C03880E5D80700F5C03790E5D90708F0EF -:100C9000A3C0C11520E5D20709F4ACC050F4CE01C1 -:100CA000905480319F4008F0C7C1DF708E01106AF8 -:100CB00006C2C13080E5D80709F4AEC0C43190E562 -:100CC000D90708F4AFC0B8C1C33820E5D20709F48A -:100CD0008EC050F4C13890E5D90709F482C008F0FD -:100CE00083C000E011EDEBC1C03181E5D80708F405 -:100CF000A3C1C11597E5D90708F436C1CE019057B5 -:100D00008115904108F098C1DF7093C101E010E0B7 -:100D1000D6C1C53AD10509F494C1C63AD10509F046 -:100D200093C102E810E4CBC1C83AD10509F48FC1E0 -:100D3000C93AD10509F48EC1CA3AD10509F48DC169 -:100D4000CB3AD10509F48CC1CC3AD10509F48BC159 -:100D5000CD3AD10509F48AC1C03BD10509F489C156 -:100D6000CE3AD10509F488C1CF3AD10509F487C13B -:100D7000C13BD10509F486C1C23BD10509F485C147 -:100D8000C33BD10509F484C1C43BD10509F483C137 -:100D9000C53BD10509F482C1C63BD10509F481C127 -:100DA000C73BD10509F480C1C83BD10509F47FC117 -:100DB000C93BD10509F47EC1CA3BD10509F47DC107 -:100DC00000E014E47CC1CE019F700E94FB0578C155 -:100DD000DD278E01106C73C1CF70DD278E01146D7D -:100DE0006EC100E010ED6BC100E012ED68C100E0E3 -:100DF00013ED65C10E94D11B0E940F0A0E94D60309 -:100E00008FEF94E32CE0815090402040E1F700C048 -:100E100000000E94282353C18091F20281608093D8 -:100E2000F2024DC10E948923811102C00E946523F4 -:100E30000E949C2390E090931D0380931C03C2307A -:100E400080E5D80721F480911C03816086C0C430FE -:100E500090E5D90721F480911C0382607EC0C630E2 -:100E600020E5D20721F480911C03846076C0C8304D -:100E700080E5D80719F480911C0327C0CA3090E59B -:100E8000D90721F480911C03806167C0CC3020E534 -:100E9000D20721F480911C0380625FC0CE3080E5D0 -:100EA000D80721F480911C03806457C0C03190E5BD -:100EB000D90721F480911C0380684FC0C23120E51E -:100EC000D20729F480911C038460886046C0C33037 -:100ED00080E5D80721F480911C038E7F3EC0C53089 -:100EE00090E5D90721F480911C038D7F36C0C7306F -:100EF00020E5D20721F480911C038B7F2EC0C930DE -:100F000080E5D80719F480911C0326C0CB3090E50A -:100F1000D90721F480911C038F7E1FC0CD3020E5BE -:100F2000D20721F480911C038F7D17C0CF3080E55C -:100F3000D80721F480911C038F7B0FC0C13190E54D -:100F4000D90721F480911C038F7707C0C331D045A6 -:100F500031F480911C038B7F877F80931C038091E9 -:100F60001C030E94A023ABC08D2F99278F70992757 -:100F700081309105D9F49E012370332702C0880F78 -:100F8000991F2A95E2F79C688E0144E0000F111F1B -:100F90004A95E1F700271370802B912B53E0CC0F7B -:100FA000DD1F5A95E1F7C076DD272FC0823091050D -:100FB00031F4DC2FCC278E01016F106A80C08330A2 -:100FC000910569F4CE018370992701E010E002C019 -:100FD000000F111F8A95E2F7C8019C680FC084308A -:100FE0009105B9F4CE018370992701E010E002C0A9 -:100FF000000F111F8A95E2F7C8019A6823E0CC0F11 -:10100000DD1F2A95E1F7C07ED7708C010C2B1D2BBC -:1010100056C08530910531F4DC2FCC278E01046F4A -:10102000106A4DC0069709F04AC0CF71DD27DC2F4A -:10103000CC278E01106243C000E010E040C08E015A -:101040003EC001E810E43BC003E810E438C002EE03 -:1010500014E435C009EE14E432C00AEE14E42FC0E3 -:1010600005EB14E42CC006EB14E429C007EB14E4F0 -:1010700026C00CEC14E423C00DEC14E420C003E8FB -:1010800015E41DC00AE815E41AC002E915E417C00A -:1010900004E915E414C001E216E411C003E216E409 -:1010A0000EC004E216E40BC005E216E408C006E236 -:1010B00016E405C007E216E402C00AE216E4C8011D -:1010C000DF91CF911F910F9108959CE0799FF001DE -:1010D000112490E3899FE00DF11D1124E60FF11D0D -:1010E000EE0FFF1FE453FE4F85919491803E9105D2 -:1010F000E0F4803C910558F58133910509F46FC007 -:1011000048F48932910509F463C08A32910509F4E3 -:101110006DC072C089339105E9F082389105D1F034 -:101120008533910509F44DC067C0833E910581F177 -:1011300038F4803E9105B9F0823E9105D9F05CC04B -:10114000863E910561F1873E9105A1F155C00E944F -:10115000F305089520911C0320FD02C021FF4CC01F -:1011600080EE90E049C080911C0380FFF9CF89E3B5 -:1011700090E042C080911C0382FF0EC080911C034E -:1011800084FF03C080E090E037C083EE90E034C07D -:1011900080911C0382FFF2CF82EE90E02DC08091FF -:1011A0001C0383FF0BC080911C0384FDEBCF87EEF3 -:1011B00090E022C080911C0383FFF5CF86EE90E083 -:1011C0001BC080911C0385FF07C089E290E014C01A -:1011D00080911C0385FFF9CF85E390E00DC08091DD -:1011E0001C0386FF07C08AE290E006C080911C03C2 -:1011F00086FFF9CF81E390E00E94030608950C94E6 -:10120000B002E82FF0E0E25BFE4F8081E82FEF7044 -:10121000F0E082958F7021E030E0A90102C0440F18 -:10122000551F8A95E2F740A308950F931F93CF931C -:10123000DF9385B7806885BF85B7806885BFC3E0C9 -:10124000D0E001E010E0FE01E25BFE4F8081E82F7C -:10125000EF70F0E021A182958F70A80102C0440FC9 -:10126000551F8A95E2F7CA01822B81A38C2F0E9419 -:101270000109219740F78BE090E061E070E0FC010C -:10128000EE5BFE4F2081E22FEF70F0E042A122954D -:101290002F70DB0102C0AA0FBB1F2A95E2F79D0148 -:1012A000242B22A3019758F7DF91CF911F910F9123 -:1012B0000C948103EF92FF920F931F93CF93DF93D0 -:1012C00000E212E0C3E0EE24E394F12CD5E08C2F91 -:1012D0000E9401098BE090E040E050E0FC01EE5BF1 -:1012E000FE4F6081E62FEF70F0E020A130E06295C4 -:1012F0006F7002C0359527956A95E2F720FD09C009 -:101300009701082E02C0220F331F0A94E2F7422BE6 -:10131000532B019718F7F801929182918F0184174E -:10132000950721F051834083D09305018C2F0E94B3 -:101330000109C15060F68091050187FD2CC08150E4 -:10134000809305018F3F39F08FE99FE00197F1F716 -:1013500000C0000020C080911E0290911F02909357 -:1013600027028093260280911C0290911D02909387 -:1013700025028093240280911A0290911B0290937F -:101380002302809322028091180290911902909377 -:101390002102809320020E94830381E0DF91CF919C -:1013A0001F910F91FF90EF900895E82FF0E0EE0F5E -:1013B000FF1FE05EFD4F80819181089508950F9396 -:1013C0001F93CF9308E212E0C0E0F801929182915E -:1013D0008F010E944522C80FF2E000321F07A9F7D3 -:1013E0008C2FCF911F910F9108950E948923811115 -:1013F00002C00E9465230E94AE23809307033E9A99 -:10140000809171008D7F8093710082E080939000C5 -:101410008AE18093910081E080932A02089580916F -:101420002A02811102C00E94F50910927A021092DC -:101430007902809171008D7F80937100809190007E -:101440008F738093900010923C0210923B02109296 -:10145000730210927402109275021092760210922A -:10146000720210927102E1E5F2E0A1E4B2E01192A1 -:101470001192119211921D921D9282E0E137F807AC -:10148000B1F70895CF92DF92EF92FF920F931F93DF -:10149000CF93DF9320913B02222309F484C06B0198 -:1014A0007C0180912A02811102C00E94F50901E7A6 -:1014B00012E0C7E0D0E0A7019601F8019291829175 -:1014C000729162918F010E94F928811131C0FE0151 -:1014D000EE0FFF1FEE0FFF1FEF5AFD4F108211821C -:1014E00012821382DE01AA0FBB1FAF5BBD4F1196A4 -:1014F0001C921E92C730D105E9F021964481558196 -:10150000668177814083518362837383148215825D -:101510001682178212968D919C91139711969C9327 -:101520008E9313961C921E92129734961296E2CFC7 -:10153000219708F68091790290917A02019797FDA0 -:1015400005C090937A028093790204C010927A02C7 -:10155000109279028091790290917A02209177021B -:10156000309178022817390724F0109278021092EF -:101570007702892BC1F4809171008D7F8093710077 -:10158000809190008F73809390001092730210925C -:1015900074021092750210927602109272021092EA -:1015A000710210923B02DF91CF911F910F91FF903A -:1015B000EF90DF90CF9008951F920F920FB60F9289 -:1015C00011244F925F926F927F928F929F92AF926F -:1015D000BF92CF92DF92EF92FF922F933F934F9360 -:1015E0005F936F937F938F939F93AF93BF93CF93AB -:1015F000DF93EF93FF9380913B02882309F49BC113 -:10160000C0917902D0917A021C161D060CF093C18C -:1016100040902B0250902C0260902D0270902E0270 -:1016200020E030E0A901C301B2010E94A42A1816EB -:101630000CF065C0C130D10509F452C08091770229 -:1016400090917802BE010E94762C7C0190937802E2 -:101650008093770280903D0290903E02A0903F02DE -:10166000B090400220E030E040E85FE3C501B40103 -:101670000E94952860933D0270933E0280933F0242 -:1016800090934002F701EE0FFF1FEE0FFF1FEF5A7E -:10169000FD4FA301920160817181828193810E943B -:1016A000FD2820E030E040E05EE30E94A82A9B0194 -:1016B000AC01C501B4010E94A42A18168CF4C7011C -:1016C0000196BE010E94762C909378028093770257 -:1016D00010923D0210923E0210923F021092400280 -:1016E000E0917702F0917802EE0FFF1FEE0FFF1FDF -:1016F000EF5AFD4F6081718182819381D0C0C0908B -:101700007302D0907402E0907502F090760220E0AF -:1017100030E0A901C701B6010E94F928219788236A -:1017200009F4A2C0FE01EE0FFF1FEE0FFF1FEF5ADC -:10173000FD4F80809180A280B380A5019401C701F4 -:10174000B6010E94F92887FF31C0A501940160E02D -:1017500070E08CED93EC0E94FD2820E030E040E446 -:1017600051E40E94FD2820E030E040E05FE30E9469 -:10177000A82A9B01AC0160E070E080E090E40E9448 -:101780000B2B9B01AC01C501B4010E94A82A9B014F -:10179000AC01C701B6010E94F92887FF07C0A70165 -:1017A000960160E070E08CED93E439C0A5019401EE -:1017B000C701B6010E94A42A18160CF055C0A50155 -:1017C000940160E070E08CED93E40E94FD2820E03D -:1017D00030E040E451E40E94FD2820E030E040E0A9 -:1017E0005FE30E94A82A9B01AC0160E070E080E00A -:1017F00090E40E940B2B9B01AC01C501B4010E9437 -:10180000A82A9B01AC01C701B6010E94A42A1816A0 -:101810005CF5A701960160E070E08CED93EC0E940E -:10182000FD2820E030E040E451E40E94FD2820E063 -:1018300030E040E05FE30E94A82A9B01AC0160E039 -:1018400070E080E090E40E940B2B9B01AC01C7018B -:10185000B6010E94A82A6093730270937402809369 -:1018600075029093760213C0FE01EE0FFF1FEE0F7C -:10187000FF1FEF5AFD4F80819181A281B381809338 -:10188000730290937402A0937502B09376026091F4 -:10189000730270917402809175029091760220918A -:1018A0002802309129022F3F4FEF340731F02F5F8C -:1018B0003F4F30932902209328020E94840E6B012F -:1018C0007C0120E034E244EF51E40E94F92887FFD4 -:1018D00008C086EFC82E88E2D82E84EFE82E81E477 -:1018E000F82E20E030E040E051E4C701B6010E944C -:1018F000A82A9B01AC0160E074E284E79BE40E94AB -:10190000FD286B017C010E946A2970939700609307 -:1019100096002091060130910701409108015091F5 -:101920000901C701B6010E94A82A0E946A29709382 -:1019300099006093980080913C02882309F433C198 -:10194000C0903702D0903802E0903902F0903A020D -:1019500020E030E0A901C701B6010E94A42A1816B0 -:10196000D4F580912802909129028F3F2FEF9207A2 -:1019700029F001969093290280932802C701B601AD -:101980000E94840E20E030E040E051E40E94A82A4A -:101990009B01AC0160E074E284E79BE40E94FD28B7 -:1019A0006B017C010E946A297093970060939600F6 -:1019B00020910601309107014091080150910901E1 -:1019C000C701B6010E94A82A0E946A297093990053 -:1019D0006093980008C010929700109296001092A1 -:1019E00099001092980060913102709132026F5FFD -:1019F0007F4F7093320260933102209196003091B4 -:101A0000970080E090E0232BF1F0C0919600D091F8 -:101A100097000E9496296B017C01BE0180E090E056 -:101A20000E9496299B01AC016091330270913402AF -:101A300080913502909136020E94FD2820E03FEF10 -:101A40004FE757E410C00E9496296B017C0120E00B -:101A500030EE4FEF54E46091330270913402809184 -:101A60003502909136020E94A82A9B01AC01C70161 -:101A7000B6010E94A42A87FD96C080912F028F5F35 -:101A800080932F0290E0209103033091040382178A -:101A90009307A0F080910E03882319F010922F0273 -:101AA0000DC0809171008D7F8093710080919000B6 -:101AB0008F738093900010923C027DC08091300221 -:101AC000C0912F02811128C0C0900803D090090353 -:101AD000E0900A03F0900B0320E030E0A901C70179 -:101AE000B6010E94A42A1816BCF481E0809330024B -:101AF00010923702109238021092390210923A0274 -:101B0000C0923302D0923402E0923502F092360253 -:101B1000C150C0932F0243C010923002109229028C -:101B200010922802E0910503F091060348E0C49F5B -:101B3000E00DF11D112480819181A281B3818093F8 -:101B4000370290933802A0933902B0933A0220E012 -:101B500030E040E85EE364817581868197810E9470 -:101B6000A82A6B017C0180910A01682F70E080E057 -:101B700090E00E94962920E030E048EC52E40E9478 -:101B8000FD289B01AC01C701B6010E94A82A609301 -:101B90003302709334028093350290933602109290 -:101BA0003202109231028091070380FD04C010922E -:101BB0003C0210923B02FF91EF91DF91CF91BF91D8 -:101BC000AF919F918F917F916F915F914F913F91D5 -:101BD0002F91FF90EF90DF90CF90BF90AF909F90AC -:101BE0008F907F906F905F904F900F900FBE0F90EF -:101BF0001F901895CF92DF92EF92FF92CF93DF93D1 -:101C00006B017C01EA0180912A02811102C00E94CD -:101C1000F5098091070380FF46C080917902909179 -:101C20007A0208970CF03FC0809171008D7F8093FD -:101C3000710080913C0281110E940F0A81E0809323 -:101C40003B02109229021092280220E030E0A90104 -:101C5000C701B6010E94A42A1816DCF4809179020B -:101C600090917A02FC01EE0FFF1FEE0FFF1FEF5A5B -:101C7000FD4FC082D182E282F382FC01EE0FFF1F92 -:101C8000EF5BFD4FD183C083019690937A028093DE -:101C90007902809171008260809371008091900040 -:101CA000806880939000DF91CF91FF90EF90DF905C -:101CB000CF90089580910703817008958091070364 -:101CC0008160809307030E94B2230C94DD0380910E -:101CD00007038E7F809307030C94B22380917B02CD -:101CE00090E0019666E070E00E94762C80937B0283 -:101CF000089580917B0290E0019766E070E00E9479 -:101D0000762C80937B0208958F929F92AF92BF9220 -:101D1000CF92DF92EF92FF920F931F93CF93DF93B7 -:101D20006B017C01C0912802D0912902BE0180E0A4 -:101D300090E00E9496294B015C01A701960160E0AA -:101D400070E08CE594E40E94FD289B01AC01C50184 -:101D5000B4010E94A82A0E946A2920917B022330A4 -:101D600009F473C028F4222351F02130E9F02CC18A -:101D7000243009F4A0C0253009F4E0C025C180E07A -:101D800090E0A0E0BFE38093060190930701A09349 -:101D90000801B093090110922B0210922C021092AC -:101DA0002D0210922E0210C110922B0210922C02C2 -:101DB00010922D0210922E026431710540F46A30A7 -:101DC000710560F520E030E040E85EE32BC0693C3F -:101DD000710508F0AAC080E090E00E94962920E0FA -:101DE00030E040EA51E40E94942820E030E044E3EF -:101DF00053E40E94FD289B01AC010E94A82A20E028 -:101E000030E040E05EE30E94A82A9B01AC0160E064 -:101E100070E080E09EE30E94942844C020E030E01F -:101E200040E05FE3C701B6010E94A82A6B017C0174 -:101E300080E090E0A0E0BEE380930601909307016C -:101E4000A0930801B0930901BFC010922B02109219 -:101E50002C0210922D0210922E024AE0469F900111 -:101E6000479F300D1124C90168EB7BE00E94622C72 -:101E7000BC016C5D754077FF03C071956195710978 -:101E8000882777FD8095982F0E9498292EE333ECC0 -:101E90004EE259E30E94A82A20E030E040EC5EE3E5 -:101EA0000E949528609306017093070180930801B2 -:101EB0009093090189C010922B0210922C0210926B -:101EC0002D0210922E02CE0183709927892BE1F00A -:101ED000BE016170772780E090E00E94962920E0A3 -:101EE00030E040E05EE30E94A82A20E030E040E4D9 -:101EF0005FE30E9495286093060170930701809329 -:101F00000801909309010CC080E090E0A0E0BFE3DD -:101F10008093060190930701A0930801B0930901F3 -:101F2000C770DD27CD2B09F04FC01092060110922B -:101F30000701109208011092090146C010922B026D -:101F400010922C0210922D0210922E0200E010E04E -:101F500020E03FE30093060110930701209308015E -:101F6000309309016739710578F180E090E00E94B3 -:101F7000962920E030E047E153E40E94942820E0D5 -:101F800030E04AE754E40E94FD2820E030E048E4D5 -:101F900052E40E94A82A20E030E040EA51E40E9486 -:101FA000DA290E946529660F771F660F771FFB01EC -:101FB000EE5AFE4F2081318142815381C701B60123 -:101FC0000E94A82A6B017C01C701B601DF91CF9165 -:101FD0001F910F91FF90EF90DF90CF90BF90AF9047 -:101FE0009F908F90089580918C020895CF93DF93F6 -:101FF00000D01F92CDB7DEB79C01809113038430CF -:1020000019F593E099833B832A839093E9008FEF3E -:102010009091E800815095FD06C095ED9A95F1F7F5 -:1020200000008111F5CF8091E80085FF0DC040E0F0 -:1020300050E063E070E0CE0101960E94571280915B -:10204000E8008E778093E8000F900F900F90DF915B -:10205000CF910895CF93DF9300D01F92CDB7DEB715 -:1020600020911303243021F522E029839B838A8366 -:1020700083E08093E9008FEF9091E800815095FD17 -:1020800006C095ED9A95F1F700008111F5CF80918A -:10209000E80085FF0DC040E050E063E070E0CE0155 -:1020A00001960E9457128091E8008E778093E80095 -:1020B0000F900F900F90DF91CF910895209113030F -:1020C0002430F1F422E02093E9002FEF3091E80072 -:1020D000215035FD06C035ED3A95F1F7000021118C -:1020E000F5CF2091E80025FF0BC040E050E065E00F -:1020F00070E00E9457128091E8008E778093E8008C -:102100000895CF93DF93EC0190911303943009F07D -:1021100046C0809115018823D9F08091160188234B -:10212000B9F09093E9008FEF9091E800815095FD10 -:1021300006C095E19A95F1F700008111F5CF8091E5 -:10214000E80085FF2CC040E050E060E170E017C07F -:1021500081E08093E9008FEF9091E800815095FD38 -:1021600006C095ED9A95F1F700008111F5CF8091A9 -:10217000E80085FF14C040E050E068E070E0CE0168 -:102180000E9457128091E8008E778093E80080E1EA -:10219000FE01ACE7B2E001900D928A95E1F7DF9184 -:1021A000CF91089580911203811109C00E94EC1310 -:1021B0000E9449148091E20084608093E2000895B7 -:1021C000109212030895089508950C94902242E00D -:1021D00061EC81E00E94661342E061EC82E00E94C3 -:1021E000661342E061EC83E00E94661342E161EC19 -:1021F00084E00C94661380911503833009F455C074 -:1022000030F4813071F0823009F48EC008958A3044 -:1022100009F47AC08B3009F460C0893009F09CC0A1 -:1022200020C080911403813A09F096C08091E800A3 -:10223000877F8093E8008091180390911903892B80 -:1022400021F460E18CE792E003C060E080E090E080 -:1022500070E00E94A2128091E8008B778093E800E2 -:10226000089580911403813209F076C0809118039B -:1022700090911903009719F0039709F06DC08091B0 -:10228000E800877F8093E8008091E80082FD05C028 -:10229000809113038111F8CF5FC08091F10080938A -:1022A0008C028091E8008B7753C080911403813AAF -:1022B00009F052C08091180390911903892B09F0FD -:1022C0004BC08091E800877F8093E8008091E80010 -:1022D00080FFFCCF8091150136C0809114038132BC -:1022E000D9F58091180390911903892BA9F5809154 -:1022F000E800877F8093E8000E949B13809116037B -:10230000809315010C94D11B80911403813221F527 -:102310008091E800877F8093E8000E949B13809162 -:10232000170380938D02089580911403813AA1F4DC -:102330008091E800877F8093E8008091E80080FF2B -:10234000FCCF80918D028093F1008091E8008E7720 -:102350008093E8000C949B13089584B7877F84BF13 -:1023600088E10FB6F89480936000109260000FBE71 -:1023700090E080E80FB6F89480936100909361003C -:102380000FBE0E943E170E94EC130E9449148091D8 -:10239000E20084608093E20078940E94CF160E944D -:1023A00040178BE091E00E94EA168091130385307C -:1023B00069F40E945122809111038823B1F30E9495 -:1023C0007F22882391F30E944112EFCF0E94481789 -:1023D000ECCF292F332723303105C9F064F42130A5 -:1023E000310581F02230310509F043C08DE690E0DF -:1023F00028E433E042C021323105F1F022323105C8 -:1024000041F137C082E190E025EB33E036C09927F7 -:102410008130910541F08230910541F0892B49F5D9 -:10242000E4E4F3E005C0E6E1F3E002C0ECEEF2E044 -:10243000849190E09F0121C06430D8F4E62FF0E051 -:10244000EE0FFF1FE255FE4F2081318189E090E0C1 -:1024500014C0643070F470E0FB01EE0FFF1FEA550A -:10246000FE4F20813181FB01EE55FE4F808190E0CF -:1024700004C080E090E020E030E0FA013183208366 -:10248000089580E189BD82E189BD09B400FEFDCFD8 -:102490008091D8008F7D8093D8008091E000826089 -:1024A0008093E0008091E00081FDFCCF0895CF9201 -:1024B000DF92EF92FF920F931F93CF93DF93EC0184 -:1024C0008B016A010E94BA13811133C0C114D10477 -:1024D00039F0F60180819181081B190BC80FD91FB3 -:1024E000E12CF12C0115110519F18091E80085FD11 -:1024F00016C08091E8008E778093E800C114D10463 -:1025000049F0F60180819181E80EF91EF182E082A6 -:1025100085E00FC00E94BA13882321F30AC0899175 -:102520008093F10001501109FFEFEF1AFF0ADACF93 -:1025300080E0DF91CF911F910F91FF90EF90DF909E -:10254000CF90089520911A0330911B032617370767 -:1025500048F06115710539F42091E8002E77209339 -:10256000E80001C0B90140E061157105A9F12091B1 -:102570001303222309F443C0253009F442C02091FB -:10258000E80023FD40C02091E80022FD32C02091E8 -:10259000E80020FFE9CF4091F3002091F20030E005 -:1025A000342BFC01CF016115710559F0283031053C -:1025B00040F481918093F100615071092F5F3F4F8A -:1025C000F1CF41E02830310509F040E02091E800EA -:1025D0002E772093E800C8CF4111C9CF0AC080915F -:1025E0001303882361F0853061F08091E80083FD5A -:1025F0000AC08091E80082FFF2CF80E0089582E077 -:10260000089583E0089581E0089520911A033091A0 -:102610001B032617370748F06115710539F420911F -:10262000E8002E772093E80001C0B901FC0120E00A -:102630006115710591F180911303882309F440C05D -:10264000853009F43FC08091E80083FD3DC0809152 -:10265000E80082FD2FC08091E80080FFE9CF209143 -:10266000F3008091F20090E0922B6115710559F012 -:102670008830910540F424912093F1003196615007 -:1026800071090196F2CF21E0089709F020E08091CE -:10269000E8008E778093E800CBCF2111CCCF0AC021 -:1026A00080911303882361F0853061F08091E80008 -:1026B00083FD0AC08091E80082FFF2CF80E0089598 -:1026C00082E0089583E0089581E00895982F97307F -:1026D00058F59093E900981739F07091EC0020912B -:1026E000ED005091F00003C0242F762F50E021FF21 -:1026F00019C03091EB003E7F3093EB003091ED003C -:102700003D7F3093ED003091EB0031603093EB0072 -:102710007093EC002093ED005093F0002091EE00B8 -:1027200027FF07C09F5FD3CF8F708093E90081E0C0 -:10273000089580E008958091140387FF11C080916F -:10274000E80082FD05C0809113038111F8CF11C00C -:102750008091E8008B770BC080911303882349F0A8 -:102760008091E80080FFF8CF8091E8008E77809319 -:10277000E80008952091E4003091E50095E640914D -:10278000EC00842F817040FF22C08091E80080FD22 -:102790001CC080911303882391F0853091F08091C3 -:1027A000EB0085FD10C04091E4005091E500421718 -:1027B000530729F39A01915011F784E0089582E0BC -:1027C000089583E0089581E0089580E008954091A0 -:1027D000E80042FFDECF08950E945A140E9462145E -:1027E000E0EEF0E0808181608083E8EDF0E08081C0 -:1027F0008F77808319BCA7EDB0E08C918E7F8C938E -:1028000080818F7E80831092120308950F931F930F -:10281000CF93DF930E945A140E946214C8EDD0E057 -:1028200088818F77888388818068888388818F7D7D -:10283000888319BC1092130310920F031092110396 -:102840001092100300EE10E0F80180818B7F8083EE -:1028500088818160888342E060E080E00E946613A6 -:10286000E1EEF0E080818E7F8083E2EEF0E0808117 -:1028700081608083808188608083F80180818E7F81 -:102880008083888180618883DF91CF911F910F9130 -:102890000895E8EDF0E080818F7E8083E7EDF0E041 -:1028A00080818160808384E082BF81E08093120315 -:1028B0000C940614E8EDF0E080818E7F8083109206 -:1028C000E20008951092DA001092E10008951F923C -:1028D0000F920FB60F9211242F933F934F935F9354 -:1028E0006F937F938F939F93AF93BF93EF93FF93D8 -:1028F0008091E10082FF0BC08091E20082FF07C05F -:102900008091E1008B7F8093E1000E94CE16809140 -:10291000DA0080FF1FC08091D80080FF1BC080912B -:10292000DA008E7F8093DA008091D90080FF0DC09D -:1029300080E189BD82E189BD09B400FEFDCF81E05F -:10294000809313030E94D21005C019BC1092130388 -:102950000E94E0108091E10080FF19C08091E200A8 -:1029600080FF15C08091E2008E7F8093E20080910D -:10297000E20080618093E2008091D80080628093C1 -:10298000D80019BC85E0809313030E94E410809165 -:10299000E10084FF30C08091E20084FF2CC080E120 -:1029A00089BD82E189BD09B400FEFDCF8091D800C8 -:1029B0008F7D8093D8008091E1008F7E8093E1002D -:1029C0008091E2008F7E8093E2008091E20081603E -:1029D0008093E20080910F03882311F084E007C008 -:1029E0008091E30087FD02C081E001C083E0809315 -:1029F00013030E94E5108091E10083FF29C08091BC -:102A0000E20083FF25C08091E100877F8093E10091 -:102A100082E08093130310920F038091E1008E7F78 -:102A20008093E1008091E2008E7F8093E2008091AC -:102A3000E20080618093E20042E060E080E00E947A -:102A400066138091F00088608093F0000E94E3108C -:102A5000FF91EF91BF91AF919F918F917F916F9176 -:102A60005F914F913F912F910F900FBE0F901F904C -:102A700018951F920F920FB60F9211242F933F9328 -:102A80004F935F936F937F938F939F93AF93BF9376 -:102A9000CF93DF93EF93FF93C091E900CF708091C4 -:102AA000EC00D82FD17080FDD0E81092E900809121 -:102AB000F000877F8093F00078940E947D1510923B -:102AC000E9008091F00088608093F000CD2BCF70FA -:102AD000C093E900FF91EF91DF91CF91BF91AF914A -:102AE0009F918F917F916F915F914F913F912F9126 -:102AF0000F900FBE0F901F9018951F93CF93DF93E9 -:102B0000CDB7DEB7AA970FB6F894DEBF0FBECDBF24 -:102B1000E4E1F3E088E08E0F9091F10091938E1341 -:102B2000FBCF0E94FB108091E80083FF1FC18091C2 -:102B3000140390911503492F50E04A30510508F0D5 -:102B400015C1FA01EA5AFF4F0C948A2C803881F0A3 -:102B5000823809F00BC1809118038F708093E900CF -:102B60008091EB0085FB882780F91092E90006C070 -:102B70008091100390911103911182609091E8006F -:102B8000977F9093E8008093F1001092F100C8C005 -:102B9000282F2D7F09F0EAC0882319F0823061F0D8 -:102BA000E5C080911603813009F0E0C0933009F050 -:102BB00080E0809311032BC080911603811127C000 -:102BC000809118038F7009F4D1C08093E90020919F -:102BD000EB0020FF1CC0933021F48091EB00806259 -:102BE00014C09091EB0090619093EB0021E030E0F5 -:102BF000A90102C0440F551F8A95E2F74093EA00ED -:102C00001092EA008091EB0088608093EB001092B4 -:102C1000E9008091E800877F86C08111A7C01091EC -:102C200016031F778091E3008078812B8093E30067 -:102C30008091E800877F8093E8000E949B13809139 -:102C4000E80080FFFCCF8091E30080688093E30080 -:102C5000111102C082E001C083E08093130386C09B -:102C60008058823008F082C080911603909117033B -:102C70008C3D53E0950779F583E08A838AE2898366 -:102C80004FB7F894DE01139620E03EE051E2E32FC7 -:102C9000F0E050935700E49120FF03C0E295EF70FD -:102CA0003F5FEF708E2F90E0EA3010F0C79601C0C2 -:102CB000C0968D939D932F5F243149F74FBF80912C -:102CC000E800877F8093E8006AE270E0CE01019619 -:102CD0000E94A21214C0AE014F5F5F4F60911803B3 -:102CE0000E94E911BC01009709F440C09091E800EE -:102CF000977F9093E80089819A810E9405138091C3 -:102D0000E8008B778093E80031C0803879F58091B6 -:102D1000E800877F8093E80080910F038093F100A3 -:102D20008091E8008E778093E8000E949B131EC07C -:102D300081111CC0909116039230C0F48091E8007C -:102D4000877F8093E80090930F030E949B138091EC -:102D50000F03811106C08091E30087FD02C081E06E -:102D600001C084E0809313030E94E7108091E80083 -:102D700083FF0AC08091E800877F8093E8008091FC -:102D8000EB0080628093EB00AA960FB6F894DEBF4A -:102D90000FBECDBFDF91CF911F9108950895CF93BE -:102DA000809113038823A1F0C091E900CF70909126 -:102DB000EC00892F817090FD80E8C82B1092E9000B -:102DC0008091E80083FD0E947D15CF70C093E900DB -:102DD000CF91089590939302809392020895E09189 -:102DE0009202F0919302309721F00190F081E02D52 -:102DF000099480E00895E0919202F0919302309757 -:102E000021F00280F381E02D09940895E09192026F -:102E1000F0919302309721F00480F581E02D099420 -:102E2000089520919002309191028217930771F0DA -:102E30009093910280939002E0919202F09193021C -:102E4000309721F00680F781E02D099408952091B4 -:102E50008E0230918F028217930771F090938F0248 -:102E600080938E02E0919202F0919302309721F0CC -:102E70000084F185E02D0994089508950C943D1780 -:102E80000E94C4220E9415090E944A230C94F9272B -:102E90005F926F927F928F929F92AF92BF92CF92EA -:102EA000DF92EF92FF920F931F93CF93DF9300D0A7 -:102EB00000D01F92CDB7DEB70E945A099DE9C92EF6 -:102EC00092E0D92E03E010E0AA24A394B12C502E56 -:102ED000802F0E94D5094C01F601729062906F011B -:102EE0006826792661147104A1F40150110978F75C -:102EF0008FEF89838A831B820E94CD228160782F85 -:102F00009D838C8349815A816B818D810E94F81742 -:102F100038C08091F20281FD0E94DE092BE030E092 -:102F20007501022E02C0EE0CFF1C0A94E2F7C701E5 -:102F300086219721892B09F129835A828E209F208F -:102F400091E0892809F490E09B830E94CD22816062 -:102F5000782F9D838C8349815A816B818D810E945A -:102F6000F817000F111FF801EB56FD4F808191817A -:102F7000E826F926F182E08204C02150310980F66A -:102F8000B4CF0E943125109194020E94EF161817B9 -:102F9000D1F00E94EF16809394020F900F900F9043 -:102FA0000F900F90DF91CF911F910F91FF90EF90B5 -:102FB000DF90CF90BF90AF909F908F907F906F9059 -:102FC0005F900C94FF080F900F900F900F900F9050 -:102FD000DF91CF911F910F91FF90EF90DF90CF90F5 -:102FE000BF90AF909F908F907F906F905F9008956B -:102FF000CF93DF93CDB7DEB72B970FB6F894DEBF34 -:103000000FBECDBF4F83588769877A878B87DE01D4 -:10301000119686E0FD0111928A95E9F785E0FE019F -:10302000379601900D928A95E1F749815A816B811B -:103030007C818D819E810E946F1E2B960FB6F89425 -:10304000DEBF0FBECDBFDF91CF910895CF93882310 -:1030500009F4C2C0C82F823859F40E94EF1681FDCE -:10306000BBC089E30E9449210E94162289E30CC05B -:10307000833879F40E94EF1680FDAEC083E50E948C -:1030800049210E94162283E50E948B21CF910C9446 -:103090001622843859F40E94EF1682FD9DC087E401 -:1030A0000E9449210E94162287E4EECF8CEF8C0FFC -:1030B000813A48F48C2F0E94612781118DC08C2F9A -:1030C0000E944921E3CF80E28C0F883048F4C7701A -:1030D00081E001C0880FCA95EAF70E94CF21D6CFC0 -:1030E0008BE58C0F833078F4C53A29F0C63A31F07D -:1030F00083E890E005C081E890E002C082E890E0BB -:10310000CF910C94111788E58C0F833108F064C0BF -:10311000C83A39F1C93A41F1CA3A49F1CB3A51F1C9 -:10312000CC3A59F1CD3A61F1C03B69F1CE3A71F137 -:10313000CF3A79F1C13B81F1C23B89F1C33B91F1B7 -:10314000C43B99F1C53BA1F1C63BA9F1C73BB1F125 -:10315000C83BB9F1C93BC1F1CA3BC9F180E090E07D -:1031600038C082EE90E035C089EE90E032C08AEE41 -:1031700090E02FC085EB90E02CC086EB90E029C05A -:1031800087EB90E026C08CEC90E023C08DEC90E0C3 -:1031900020C083E891E01DC08AE891E01AC082E96E -:1031A00091E017C084E991E014C081E292E011C07F -:1031B00083E292E00EC084E292E00BC085E292E0EE -:1031C00008C086E292E005C087E292E002C08AE28F -:1031D00092E0CF910C942717CF910895882309F49A -:1031E0004BC0823859F40E94EF1681FF45C089E335 -:1031F0000E9449210E94162289E30CC0833871F491 -:103200000E94EF1680FF38C083E50E9449210E948A -:10321000162283E50E948B210C941622843859F4DF -:103220000E94EF1682FF28C087E40E9449210E9475 -:10323000162287E4EFCF9CEF980F913A58F390E273 -:10324000980F983050F4877091E001C0990F8A95DB -:10325000EAF7892F0E94D521DFCF9BE5980F9330A5 -:1032600020F480E090E00C941117885A833120F408 -:1032700080E090E00C9427170895882321F00E94A5 -:10328000CF210C9416220895882321F00E94D52185 -:103290000C94162208957F928F929F92AF92BF92C4 -:1032A000CF92DF92EF92FF920F931F93CF93DF9312 -:1032B0001F92CDB7DEB77C01C62E772EFC010581AB -:1032C00002950F70128111110E94EC210E9442217F -:1032D000882379F0112369F080E28C0D883048F062 -:1032E00082E00E942B210E94422191E0D82ED92613 -:1032F00001C0D12CE72DE295EF70F0E0E05AFF4FCE -:103300000C948A2C872D807F072D0F70882311F055 -:103310000295007F112389F0002309F499C180E20E -:103320008C0D883020F4802F0E94CF2103C0802F85 -:103330000E94DF210E9416228BC18C2D0E94EE1864 -:10334000002309F4C3C180E28C0D883020F4802F63 -:103350000E94D52103C0802F0E94E5210E941622E1 -:10336000B5C1872D807F972D9F70803211F4892FF2 -:1033700003C0892F8295807FCC2021F0F1E0CF1609 -:10338000A1F01DC0112339F0002319F1013009F516 -:103390000E94FF219BC1002319F0013009F496C15E -:1033A00089830E940222898110C1112321F00630F5 -:1033B00008F08CC10EC0053008F088C106C1112389 -:1033C00059F0002331F0F701958190FF41C19F70C2 -:1033D00095830E943D197AC1002309F4F6C03EC1CD -:1033E000872D86958695837090E0009719F0019758 -:1033F00061F06CC1112321F08C2D972D937002C0C8 -:1034000080E090E00E94111761C1112321F08C2D02 -:10341000972D937002C080E090E00E94271756C15C -:103420008C2D112319F00E94392402C00E94A1247E -:103430000E9426254BC1872D837009F052C01111BF -:1034400045C18C2D829586958770880F880F9C2D9D -:103450009F70892E912CA12CB12C082E04C0880CB1 -:10346000991CAA1CBB1C0A94D2F7C4FE14C00FE01E -:1034700010E020E030E0B901A80104C0440F551F5E -:10348000661F771F8A95D2F7CB01BA0160957095B8 -:103490008095909503C060E070E0CB01272D2695C4 -:1034A0002695237030E02230310569F02330310554 -:1034B00089F0682979298A299B292130310571F001 -:1034C0000E94B71F03C1682979298A299B290E9474 -:1034D000D31FFCC00E94B71FC501B4010E949B1FEF -:1034E000F5C0112319F0872D817001C086958823BE -:1034F00009F4ECC08C2D829586958770880F880F13 -:103500009C2D9F70892E912CA12CB12C082E04C0CB -:10351000880C991CAA1CBB1C0A94D2F7C4FE14C0C8 -:103520000FE010E020E030E0B901A80104C0440F32 -:10353000551F661F771F8A95D2F7CB01BA01609598 -:1035400070958095909503C060E070E0CB01272DC9 -:10355000269526952370422F50E04230510569F0A0 -:103560004330510589F0682979298A299B294130FE -:10357000510571F00E949120A9C0682979298A29F2 -:103580009B290E94AD20A2C00E949120C501B401D8 -:103590000E9475209BC08C2D90E0FC01E05EF1093B -:1035A000E531F10508F050C0E059FF4F0C948A2C2A -:1035B0000C2D0F70872D8F71112321F00E940E208A -:1035C000802F07CF0E942F20802F0E9444197EC099 -:1035D000112341F0053008F079C0872D8F710E94CA -:1035E000542074C0063008F071C0F7CF112339F0B1 -:1035F000872D8F710E940E2069C01123C9F3872D7A -:103600008F710E942F2062C0112329F0872D8F71A6 -:103610000E94F91F5BC00E94EF1F58C0112351F098 -:10362000172D1F71812F0E940E2063E0812F0E94B1 -:1036300022214CC081E00E942B21023008F446C0B8 -:1036400082E00E942B2142C0112331F0002381F23D -:103650008C2D0E9426183AC0002389F28C2D0E94DE -:10366000EE1834C0472D4F706C2DC7010E945503D2 -:103670000E94131F2BC0111129C0472D4F7050E01D -:1036800042305105B9F04CF44115510581F04130FB -:103690005105E1F40E94212819C04330510569F019 -:1036A0004430510599F48C2D0E9473280FC00E945C -:1036B0000A280CC00E943D2809C00E94502806C05C -:1036C000472D4F706C2DC7010E94E005DD20F9F0F9 -:1036D0000E941E2180FD1BC0F70112820E9418214A -:1036E0000E940E20C7010E94961B0E9418210F9075 -:1036F000DF91CF911F910F91FF90EF90DF90CF90CE -:10370000BF90AF909F908F907F900C942F200F9040 -:10371000DF91CF911F910F91FF90EF90DF90CF90AD -:10372000BF90AF909F908F907F9008950F931F93BD -:10373000CF93DF93EC01888199812B813C81232BEE -:10374000B9F09F3F11F48F3F99F0CE010E94DF0343 -:10375000882371F0688179818A810E9414218C010B -:103760000E94C9200E94901FB801CE010E944B19EF -:10377000DF91CF911F910F9108950E94EC210E943B -:10378000FC210E94C1210E9416220E94D7250E947E -:10379000262580E090E00E94111780E090E00C94D4 -:1037A00027170E94DC210C94BD1B0E940921292FA0 -:1037B00022952F7030E02C3031054CF42A30310541 -:1037C0006CF42250310922303105A8F407C02C30A6 -:1037D000310569F02F30310551F00DC0803F69F09F -:1037E00018F4803E40F409C0843F29F406C093FBDE -:1037F000882780F9089580E0089581E00895CF93A7 -:10380000DF9300D000D01F92CDB7DEB70F900F909E -:103810000F900F900F90DF91CF910895CF93DF938A -:1038200000D000D000D0CDB7DEB726960FB6F89402 -:10383000DEBF0FBECDBFDF91CF9108951F93CF9311 -:10384000DF93C0919D0216E080919E02C81799F007 -:10385000D0E01C9FF0011D9FF00D1124E156FD4F9B -:103860004081518162817381848195810E940E1C07 -:103870002196C770E9CFDF91CF911F9108954091B4 -:10388000CF025091D0026091D1027091D20280910A -:10389000D3029091D4020C940E1C8091D402829594 -:1038A0008F7009F054C08091D102882309F44FC071 -:1038B00080919D02A0919E026091CF027091D002F2 -:1038C0004091D2025091D302B6E08A1709F43FC06A -:1038D00090E041155105C1F17F3F11F46F3FA1F117 -:1038E000B89FF001B99FF00D1124E156FD4F2181E1 -:1038F00072132AC02081621327C02281211124C0A3 -:10390000238134812417350710F421503109241BF9 -:10391000350B283C3105C0F42091D4022F70206172 -:103920002093D40226E0289FF001299FF00D112456 -:10393000EC55FD4F80818F70806180838FEC92E029 -:103940000E94961B0C941E1C01968770BECF089592 -:10395000CF92DF92EF92FF920F931F93CF93DF935B -:10396000CDB7DEB762970FB6F894DEBF0FBECDBFFE -:103970008C0185E0F801DE011D9601900D928A957B -:10398000E1F7D8014C9111965C91119712966C91C8 -:1039900012971396CD90DC9014973091CF027091CE -:1039A000D0028091D2029091D302009709F46BC1AA -:1039B0007F3F19F43F3F09F466C1E090D102EE2049 -:1039C00009F4C0C02091D402C816D90628F0F60127 -:1039D000E81BF90BCF0104C0809590958C0D9D1DBF -:1039E000FF24F394883C910578F0F12C207F09F0B6 -:1039F000C6C07C2DD98AC88A89890E94FF1B8FEC9A -:103A000092E00E94961BB1C0822F807F09F046C0D1 -:103A1000751314C0341312C0611110C02F702061CF -:103A20002093D4020E943F1C8FEC92E00E94961BD0 -:103A30008091D402D80115968C932EC0CD2819F10F -:103A40005F3F11F44F3FF9F0F62E61111CC08091D9 -:103A50009D0220919E0236E0821709F45AC090E040 -:103A6000389FF001399FF00D1124E156FD4F71810F -:103A7000571306C07081471303C07281711103C0D0 -:103A800001968770E9CFF62E662309F418C180915C -:103A9000D40281608093D402F12C11C1751308C047 -:103AA000341306C0611104C08091D402D801C3C090 -:103AB0004D875E878D859E856A8B0E94D51B6A899E -:103AC0008823E1F16623D1F12091D402822F8295DF -:103AD0008F7090E0029774F08091CF029091D002A5 -:103AE00098878F831986DB86CA862C87CE01079636 -:103AF0000E94961B86E0F801AFECB2E001900D92B7 -:103B00008A95E1F70E944D1C0E943F1CFF24F3940C -:103B1000D6C04D875E878D859E850E940921292FFD -:103B200022952F7030E0223031050CF0BCC09F7020 -:103B300009F0B6C0805E883008F4C1C0C8010E9498 -:103B4000961BE4CFC816D90608F453C0F601E81B4B -:103B5000F90BCF01883C910508F450C0F12C7C2D65 -:103B6000D98AC88A89890E94FF1BEFECF2E086E0BF -:103B7000DF011D928A95E9F70E943F1CA0C07513D2 -:103B800014C0341312C0611110C08091D402F80126 -:103B90008583C8010E94961B86E0EFECF2E0DF010E -:103BA0001D928A95E9F7FE2C8AC04D875E878D8528 -:103BB0009E856A8B0E94D51B6A89882309F4BECF33 -:103BC000662309F4BBCF2091D402822F82958F7097 -:103BD00090E002970CF48ECF8091CF029091D002AA -:103BE0009A8389831B82DD82CC822E83CE0101964B -:103BF0007FCF809590958C0D9D1DACCFF62E6623C2 -:103C000009F49CCF75132EC034132CC02091D4021C -:103C100020FD1FC0822F82958F70D9F0D801159694 -:103C20002C9315978F3049F08F5F982F9295907F46 -:103C3000822F8F70892B15968C93C8010E94961B3A -:103C400086E0F801AFECB2E001900D928A95E1F7C1 -:103C500093CF86E0F801AFECB2E001900D928A9527 -:103C6000E1F72DC04D875E878D859E850E94D51B0F -:103C7000811140CF8091D40281608093D402C80129 -:103C80000E94961B1CC0662309F458CF4D875E879F -:103C90008D859E850E94D51B882309F44FCF2ACF9E -:103CA000811148CF0CC0243031050CF047CF9F70F4 -:103CB00009F440CFF8019581907F09F03BCF8F2D1B -:103CC00062960FB6F894DEBF0FBECDBFDF91CF91E5 -:103CD0001F910F91FF90EF90DF90CF9008951F9369 -:103CE000CF93DF93CDB7DEB72C970FB6F894DEBF36 -:103CF0000FBECDBF4F83588769877A878B879C8794 -:103D0000CE0107960E94A81C882369F08F819885B0 -:103D10002A853B85232BF1F19F3F09F063C08F3F3C -:103D200009F060C037C086E0FE013796DE011196CB -:103D300001900D928A95E1F76F817885EA85FB8580 -:103D4000309741F17F3F11F46F3F21F120919E02A6 -:103D500030E0C90101968770992740919D0250E09B -:103D60008417950709F447C069837A83FD83EC8340 -:103D700096E0929FD001939FB00D1124A156BD4FA4 -:103D8000FE01319601900D929A95E1F780939E0283 -:103D90000E941E1C16E080919D0290919E02891740 -:103DA000C1F1189FC001112481569D4F0E94A81C8B -:103DB000882379F1E0919D021E9FF0011124E156C4 -:103DC000FD4F4081518162817381848195810E9480 -:103DD0000E1C80919D0290E0019687709927809338 -:103DE0009D02D9CF4F81588569857A858B859C85C1 -:103DF0000E940E1CCFCF0E94D11B10929E021092E7 -:103E00009D02EFECF2E086E0DF011D928A95E9F772 -:103E1000C1CF2C960FB6F894DEBF0FBECDBFDF9199 -:103E2000CF911F910895EF92FF920F931F93CF931D -:103E3000DF938C01009709F46CC0F12CEE24E3941D -:103E4000E8012196F8018491843740F4843008F029 -:103E500051C0813081F0823019F15BC0853709F49F -:103E600044C0A8F19CE7980F903708F052C08F77B4 -:103E70000E94EE1841C00E5F1F4FFE01C49180E208 -:103E80008C0F883048F4C7708E2D01C0880FCA95FA -:103E9000EAF70E94EF2114C08C2F0E9426182DC033 -:103EA0000E5F1F4FFE01C49180E28C0F883058F4E2 -:103EB000C7708E2D01C0880FCA95EAF70E94F521C0 -:103EC0000E9416221AC08C2F0E94EE1816C00E5F98 -:103ED0001F4FFE01C491CC2381F08FE99FE0019731 -:103EE000F1F700C00000C150F6CF0E5F1F4FFE017A -:103EF000F49003C00E9426188E018F2D882309F4A8 -:103F00009FCFEFE9FFE03197F1F700C0000081504B -:103F1000F5CFDF91CF911F910F91FF90EF90089512 -:103F200008956093D9027093DA028093DB02909334 -:103F3000DC020C94BD1B0F931F930091D9021091CA -:103F4000DA022091DB023091DC02DC01CB01802B14 -:103F5000912BA22BB32B8093D9029093DA02A093DA -:103F6000DB02B093DC021F910F910C94BD1B0F93E9 -:103F70001F930091D9021091DA022091DB02309157 -:103F8000DC02DC01CB0180239123A223B3238093A5 -:103F9000D9029093DA02A093DB02B093DC021F9166 -:103FA0000F910C94BD1B0F931F930091D902109198 -:103FB000DA022091DB023091DC02DC01CB018027A8 -:103FC0009127A227B3278093D9029093DA02A09376 -:103FD000DB02B093DC021F910F910C94BD1B109279 -:103FE000D5021092D6021092D7021092D8020C94E9 -:103FF000BD1B41E050E060E070E004C0440F551F7D -:10400000661F771F8A95D2F74093D5025093D60248 -:104010006093D7027093D8020C94BD1B41E050E02E -:1040200060E070E004C0440F551F661F771F8A953B -:10403000D2F78091D5029091D602A091D702B0918B -:10404000D802482B592B6A2B7B2B4093D5025093D7 -:10405000D6026093D7027093D8020C94BD1B41E046 -:1040600050E060E070E004C0440F551F661F771FEA -:104070008A95D2F740955095609570958091D502BC -:104080009091D602A091D702B091D802482359232B -:104090006A237B234093D5025093D6026093D702C4 -:1040A0007093D8020C94BD1B41E050E060E070E0DA -:1040B00004C0440F551F661F771F8A95D2F7809161 -:1040C000D5029091D602A091D702B091D80248278C -:1040D00059276A277B274093D5025093D6026093D5 -:1040E000D7027093D8020C94BD1B0F931F930091BD -:1040F000D5021091D6022091D7023091D802DC016E -:10410000CB01802B912BA22BB32B8093D5029093C4 -:10411000D602A093D702B093D8021F910F910C94AE -:10412000BD1B0F931F930091D5021091D6022091D1 -:10413000D7023091D802DC01CB0180239123A22346 -:10414000B3238093D5029093D602A093D702B09365 -:10415000D8021F910F910C94BD1B0F931F930091D8 -:10416000D5021091D6022091D7023091D802DC01FD -:10417000CB0180279127A227B3278093D502909364 -:10418000D602A093D702B093D8021F910F910C943E -:10419000BD1B0895CF92DF92EF92FF920F931F9372 -:1041A000CF93DF938C01C090D902D090DA02E090D7 -:1041B000DB02F090DC028091D5029091D602A091B2 -:1041C000D702B091D802C82AD92AEA2AFB2ACFE11D -:1041D000D0E0D701C6010C2E04C0B695A7959795DF -:1041E00087950A94D2F780FF06C0B8018C2F0E94F1 -:1041F0006508019721F4219760F780E001C08C2FBA -:10420000DF91CF911F910F91FF90EF90DF90CF90B2 -:104210000895CF93DF93EC010E94CA20BE010E9453 -:104220006508DF91CF910895CB010E94092108957F -:104230008091DD0285958595859508958091DD02B3 -:104240008770089598E0899F90011124262B209370 -:10425000DD020C940E202091DD0280958223809354 -:10426000DD02982F977069F430E0482F552747FDFD -:1042700050952417350729F08595859585950C94DB -:104280002F2008959091DD02977081E009F480E07D -:10429000089590911501992321F0909116019111A3 -:1042A00009C02091170130911801F90132969FEF52 -:1042B00040E01FC0982F9695969596959F3050F5A3 -:1042C000E0911701F0911801E90FF11D877021E0CD -:1042D00030E0A90102C0440F551F8A95E2F7CA01D8 -:1042E0009181892B818308959F3F39F04F5F4E3034 -:1042F00041F051915813F8CF0DC05111F7CF942FC1 -:10430000F5CF9F3F39F0F901E90FF11D97FDFA95BF -:1043100082830895089590911501992321F0909139 -:104320001601911109C02091170130911801F9016E -:104330003296205F3F4F1FC0982F96959695969581 -:104340009F30F0F4E0911701F0911801E90FF11D91 -:10435000877021E030E0A90102C0440F551F8A9503 -:10436000E2F7CA018095918189238183089531966E -:10437000E217F30729F090819813F9CF1082F7CF55 -:10438000089581E090E0E0911701F0911801E80FA5 -:10439000F91F1082019680319105A9F70895909137 -:1043A000F102892B8093F102089580959091F1029A -:1043B00089238093F10208951092F102089590915B -:1043C000F002892B8093F002089580959091F0027D -:1043D00089238093F00208951092F002089590913D -:1043E000EF02892B8093EF02089580959091EF0260 -:1043F00089238093EF0208951092EF02089580932D -:10440000DE0208951092DE020895809117019091C6 -:104410001801FC0131969C01205F3F4F80E0919193 -:1044200091118F5FE217F307D1F70895E09117011B -:10443000F09118018091F1028083E0911701F091D1 -:10444000180190818091F002892B8083E0911701FF -:10445000F091180190818091EF02892B80838091E7 -:10446000DE02882361F0E0911701F091180190813C -:10447000892B80830E94052281111092DE02809197 -:104480001701909118010C94FB1620E0009739F069 -:10449000AC0141505109842395232F5FF7CF822F20 -:1044A000089580911303843039F11092F30220E4CF -:1044B00088E190E00FB6F894A895809360000FBE55 -:1044C0002093600080E00E94BC0280E00E94FF0810 -:1044D00083B7817F846083BF83B7816083BF789413 -:1044E000889583B78E7F83BF88E10FB6F894809359 -:1044F0006000109260000FBE08950895089580E056 -:104500000E94BC020E947D220E945A090E947E22C3 -:104510000E94DF0991E0811101C090E0892F089588 -:104520000E94D11B80E00E94BC020E94F9270E94D9 -:10453000EF160C94FF081F920F920FB60F921124E2 -:104540008F939F93AF93BF938091F302811113C018 -:104550008091F4029091F502A091F602B091F702D9 -:104560004196A11DB11D8093F4029093F502A09392 -:10457000F602B093F702BF91AF919F918F910F9088 -:104580000FBE0F901F90189582E084BD93E095BDFB -:104590009AEF97BD80936E0008952FB7F89480919D -:1045A000F4029091F502A091F602B091F7022FBFAC -:1045B0000895CF92DF92EF92FF920F931F932FB740 -:1045C000F8944091F4025091F5026091F6027091D6 -:1045D000F7022FBF6A017B01EE24FF248C0120E04B -:1045E00030E0C016D106E206F30610F4415051093E -:1045F0009A01281B390BC9011F910F91FF90EF9071 -:10460000DF90CF9008951F920F920FB60F92112452 -:104610008F939F93AF93BF938091F4029091F50293 -:10462000A091F602B091F7020196A11DB11D8093F1 -:10463000F4029093F502A093F602B093F702BF91B3 -:10464000AF919F918F910F900FBE0F901F90189573 -:104650000E94EC13F8942FEF87EA91E621508040F6 -:104660009040E1F700C0000087E090EBDC01809310 -:104670001E0390931F03A0932003B09321039CE09B -:1046800088E10FB6F894A895809360000FBE9093D0 -:104690006000FFCF0E948923811102C00E94652320 -:1046A0000E9494238093F2020E949C2380931C0317 -:1046B00087FB882780F9809316010E949823682F32 -:1046C00070E080E090E00C94911F6DEE7EEF80E052 -:1046D00090E00E94B02C60E082E090E00E949E2C6E -:1046E00060E083E090E00E949E2C60E084E090E037 -:1046F0000E949E2C60E085E090E00E949E2C60E08D -:1047000086E090E00E949E2C6FEF87E090E00C9492 -:104710009E2C80E090E00E94982C21E08D3E9E4FE0 -:1047200009F020E0822F089582E090E00C94902C14 -:1047300083E090E00C94902C84E090E00C94902C1A -:10474000682F84E090E00C949E2C86E090E00C941E -:10475000902C682F86E090E00C949E2C87E090E0EF -:104760000C94902C682F87E090E00C949E2C809104 -:10477000FA0280FF0BC060911C0185E0689FB001C8 -:10478000112475956795759567952BC081FF09C0B4 -:1047900060911C0185E0689FB001112475956795B3 -:1047A00020C082FF07C060911C0185E0689FB001B6 -:1047B000112417C09091FB029923D1F060911B0145 -:1047C000961788F720911C0185E0289F90011124FD -:1047D000929FA001939F500D112470E0CA010E9486 -:1047E000762C6038710540F46115710539F002C00E -:1047F00065E070E0862F08958FE7089581E00895C1 -:104800008091FA0280FF08C060911A0170E07595EE -:1048100067957595679521C081FF06C060911A0163 -:1048200070E07595679519C082FF04C060911A0108 -:1048300070E010C09091FB029923C1F060911901C2 -:104840009617A0F780911A01899FC001112470E08A -:104850000E94762C6038710528F46115710521F0ED -:10486000862F08958FE7089581E0089561E070E054 -:10487000F4CF803F21F40E94B723819504C0813F8B -:1048800029F40E94B7238093FE020895823F21F409 -:104890000E94B723819504C0833F29F40E94B72367 -:1048A0008093FD020895893F19F40E94002405C0F9 -:1048B0008A3F31F40E94002481958093FF0208957D -:1048C0008B3F21F40E940024819504C08C3F29F481 -:1048D0000E940024809300030895843F21F4809176 -:1048E000FC02816017C0853F21F48091FC02826048 -:1048F00011C0863F21F48091FC0284600BC0873F89 -:1049000021F48091FC02886005C0883F31F48091D9 -:10491000FC0280618093FC0208958D3F21F4809118 -:10492000FA0281600BC08E3F21F48091FA0282600E -:1049300005C08F3F29F48091FA0284608093FA02C7 -:104940000895803F39F48091FE0287FF6CC0109279 -:10495000FE0269C0813F29F48091FE021816BCF363 -:1049600062C09091FD02823F29F497FF5CC01092D3 -:10497000FD0259C0833F19F41916CCF354C0893F86 -:1049800041F48091FF0218160CF04DC01092FF0206 -:104990004AC08A3F29F48091FF0287FF44C0F6CFC6 -:1049A0008B3F39F48091000387FF3DC010920003D4 -:1049B0003AC08C3F29F4809100031816BCF333C031 -:1049C000843F21F48091FC028E7F17C0853F21F443 -:1049D0008091FC028D7F11C0863F21F48091FC0202 -:1049E0008B7F0BC0873F21F48091FC02877F05C03D -:1049F000883F31F48091FC028F7E8093FC0213C0CB -:104A00008D3F21F48091FA028E7F0BC08E3F21F4FE -:104A10008091FA028D7F05C08F3F29F48091FA02C0 -:104A20008B7F8093FA028091FD0281110EC08091EC -:104A3000FE0281110AC08091FF02811106C080919F -:104A40000003811102C01092FB0208958CEF92E0E6 -:104A50000E9406170E94CD229093F9028093F802DB -:104A600008951F93CF93DF938091F8029091F902FC -:104A70000E94D922AC019091FB02992321F0209150 -:104A80001D0130E006C020911E018AE0289F9001A0 -:104A900011244217530708F486C08091FD02C0918B -:104AA000FE02D091FF0210910003811107C0C111D5 -:104AB00076C0D11174C0111172C075C09F3F19F03A -:104AC0009F5F9093FB02181624F40E94B7238093F3 -:104AD000FD028091FD0287FF05C00E94B7238195EA -:104AE0008093FD021C1624F40E94B7238093FE02DB -:104AF0008091FE0287FF05C00E94B72381958093B5 -:104B0000FE026091FD02662339F1C091FE02CC23C2 -:104B100019F1772767FD7095872F972F0E949829A5 -:104B200023E333E343E35FE30E94A82A0E9465295D -:104B30006093FD026C2F772767FD7095872F972F65 -:104B40000E94982923E333E343E35FE30E94A82A0A -:104B50000E9465296093FE021D1624F40E94002421 -:104B60008093FF028091FF0287FF05C00E9400240E -:104B700081958093FF02111624F40E9400248093F3 -:104B800000038091000387FF05C00E9400248195E7 -:104B900080930003DF91CF911F910C9426259F3FB6 -:104BA00009F08ECF96CFDF91CF911F910895ECEF52 -:104BB000F2E085E0DF011D928A95E9F71092FB0291 -:104BC0001092FA020895833081F128F4813059F06F -:104BD0008230D1F00895853009F449C0B8F18630AB -:104BE00009F456C0089580911E01262F30E0280F49 -:104BF000311D2F3F310524F4680F60931E01089585 -:104C00008FEF80931E01089580911D01262F30E0C3 -:104C1000280F311D2F3F310524F4680F60931D01CB -:104C200008958FEF80931D01089580911C01262F18 -:104C300030E0280F311D2F3F310524F4680F6093B9 -:104C40001C0108958FEF80931C01089580911B0132 -:104C5000262F30E0280F311D2F3F310524F4680F37 -:104C600060931B0108958FEF80931B01089580913D -:104C70001A01262F30E0280F311D2F3F310524F473 -:104C8000680F60931A0108958FEF80931A010895B9 -:104C900080911901262F30E0280F311D2F3F31055B -:104CA00024F4680F6093190108958FEF8093190120 -:104CB0000895833011F128F4813049F0823091F069 -:104CC0000895853081F120F18630C1F108958091F9 -:104CD0001E01681720F4861B80931E010895109210 -:104CE0001E01089580911D01681720F4861B809392 -:104CF0001D01089510921D01089580911C016817EF -:104D000020F4861B80931C01089510921C010895C5 -:104D100080911B01681720F4861B80931B01089566 -:104D200010921B01089580911A01681720F4861BC8 -:104D300080931A01089510921A0108958091190123 -:104D4000681720F4861B80931901089510921901A9 -:104D500008950F931F93873208F048C08E3108F0F2 -:104D60008DC0803109F477C008F5873009F461C03F -:104D700068F4863009F09DC08091F202817F8E7FB9 -:104D80008093F20281E08093020394C08B3009F497 -:104D900089C08E3009F08DC08091F20282FB2227FB -:104DA00020F991E0922790FB82F95EC0863109F4E8 -:104DB00079C060F4813109F07CC00E94D11B9091D0 -:104DC000160181E08927809316016CC0893109F4AE -:104DD00069C08B3109F06DC08091F20281FB2227FE -:104DE00020F991E0922790FB81F93EC0883309F4C5 -:104DF00059C050F4893209F457C0853309F454C0BE -:104E0000873209F451C055C0833409F44DC028F4E9 -:104E10008A3308F44EC0895332C0883409F049C03F -:104E20000E94D11B0E940F0A0E94D6030E942823D1 -:104E300039C09091F202892F8095817080FB90F9A2 -:104E400029F0966098609093F20234C0997F977F22 -:104E50009093F20227C08091F20283FB222720F96F -:104E600091E0922790FB83F98093F2029923D1F08D -:104E70008091F20281608093F20214C08D5141E072 -:104E800050E060E070E08A019B0104C0000F111F38 -:104E9000221F331F8A95D2F7C901B8010E94911FC2 -:104EA0000E94D11B81E006C061E070E080E090E0EC -:104EB000F5CF80E01F910F91089580E0089580E084 -:104EC0000895CF93C82F80910203813069F018F0C4 -:104ED0008230C9F184C0E0911701F09118018081FE -:104EE000823209F07EC007C0E0911701F0911801ED -:104EF0008081823261F48C2F0E945D27811104C071 -:104F00008C2F0E94A9261DC081E090E01AC08C2F32 -:104F10000E945F27811114C0C43179F048F4CB306E -:104F200079F0C03109F061C082E08093020308C0CB -:104F3000C93219F0C83321F058C01092020355C08D -:104F400081E0817054C0C93291F120F5C43179F10A -:104F5000B0F4C73009F047C08EE180931E0182E3B0 -:104F600080931D018AE080931C0184E180931B01E2 -:104F700088E080931A0188E28093190134C0CE51F1 -:104F8000C63088F5EC2FF0E0EA54FE4F8081809324 -:104F9000010329C0CE34E9F020F4CB3421F56AE0D6 -:104FA00013C0C13579F0C235F1F461E00DC08091D4 -:104FB0000103882319F01092010315C081E080934A -:104FC000020315C061E006C0809101030E94E32541 -:104FD0000AC06AE0809101030E94592604C0109221 -:104FE000020380E004C081E002C080E0AACFCF913C -:104FF00008950E948923811102C00E9465230E94A6 -:10500000A52380931D0380FF02C0869501C080E028 -:105010000C94BC0280911D03982F9695292F30E0A7 -:10502000233031054CF49F5F990F8170892B81608B -:1050300080931D030E94A92380911D0386950C94E3 -:10504000BC0280911D03982F969591F09158990F6D -:105050008170892B80931D038E7F91E009F490E08D -:1050600080911D0390FB80F980931D030E94A9236A -:1050700080911D0386950C94BC0280911D03982F8E -:10508000909590FB80F980931D030E94A923809145 -:105090001D0380FF02C0869501C080E00C94BC0215 -:1050A00090911D03892F86958F5F8F779170843043 -:1050B00028F4880F892B80931D0302C090931D0351 -:1050C00080911D038E7F91E009F490E080911D0393 -:1050D00090FB80F980931D030E94A92380911D03FA -:1050E00086950C94BC0220911D03922F96958927DA -:1050F000982F990F822F8170892B80931D038E7FAB -:1051000091E009F490E080911D0390FB80F9809379 -:105110001D030E94A92380911D0386950C94BC0257 -:1051200080911D03869508955058BB27AA270ED05D -:10513000D1C1C2D130F0C7D120F031F49F3F11F47A -:105140001EF4B7C10EF4E095E7FB9FC1E92FD3D160 -:1051500080F3BA17620773078407950718F071F494 -:105160009EF5EBC10EF4E0950B2EBA2FA02D0B018E -:10517000B90190010C01CA01A0011124FF27591B9C -:1051800099F0593F50F4503E68F11A16F040A22FA2 -:10519000232F342F4427585FF3CF46953795279513 -:1051A000A795F0405395C9F77EF41F16BA0B620B12 -:1051B000730B840BBAF09150A1F0FF0FBB1F661F59 -:1051C000771F881FC2F70EC0BA0F621F731F841F9C -:1051D00048F4879577956795B795F7959E3F08F0C2 -:1051E000B3CF9395880F08F09927EE0F9795879581 -:1051F000089527D108F481E008950CD06BC163D1E4 -:1052000040F05AD130F021F45F3F19F03EC1511106 -:1052100095C14FC170D198F39923C9F35523B1F3C8 -:10522000951B550BBB27AA2762177307840738F015 -:105230009F5F5F4F220F331F441FAA1FA9F333D074 -:105240000E2E3AF0E0E830D091505040E695001C28 -:10525000CAF729D0FE2F27D0660F771F881FBB1FE4 -:10526000261737074807AB07B0E809F0BB0B802DBE -:10527000BF01FF2793585F4F2AF09E3F510568F00A -:1052800004C15CC15F3FECF3983EDCF386957795F3 -:105290006795B795F7959F5FC9F7880F911D96950C -:1052A000879597F90895E1E0660F771F881FBB1F68 -:1052B000621773078407BA0720F0621B730B840B15 -:1052C000BA0BEE1F88F7E095089504D06894B111E9 -:1052D00035C1089518D188F09F5790F0B92F9927BC -:1052E000B751A0F0D1F0660F771F881F991F1AF0F1 -:1052F000BA95C9F712C0B13081F01FD1B1E008955D -:105300001CC1672F782F8827B85F39F0B93FCCF3DD -:10531000869577956795B395D9F73EF490958095E6 -:10532000709561957F4F8F4F9F4F0895E89409C006 -:1053300097FB3EF490958095709561957F4F8F4FC8 -:105340009F4F9923A9F0F92F96E9BB279395F695DE -:10535000879577956795B795F111F8CFFAF4BB0F5C -:1053600011F460FF1BC06F5F7F4F8F4F9F4F16C0C0 -:10537000882311F096E911C0772321F09EE8872F4A -:10538000762F05C0662371F096E8862F70E060E006 -:105390002AF09A95660F771F881FDAF7880F96957F -:1053A000879597F9089588D018F011F08CD038F4CB -:1053B00080C0C4C0E92F9FD0B0F35523C9F3E7FBE9 -:1053C0006217730784079507A8F199F3E92FFF2760 -:1053D00088232AF03197660F771F881FDAF7952FF9 -:1053E0005527442332F091505040220F331F441F61 -:1053F000D2F7BB27E91BF50B621B730B840BB109BA -:10540000C1F222F4620F731F841FB11D31972AF07D -:10541000660F771F881FBB1FEFCF915050405AF087 -:1054200041F0882332F0660F771F881F915050405B -:10543000C1F7939530C08695779567959F5FD9F7AB -:10544000F8CF990F0008550FAA0BE0E8FEEF1616EB -:105450001706E807F907C0F012161306E407F50768 -:1054600098F0621B730B840B950B39F40A2661F0DC -:10547000232B242B252B21F408950A2609F4A1407F -:10548000A6958FEF811D811D089597F99F6780E88C -:1054900070E060E008959F3F31F0915020F48795CF -:1054A00077956795B795880F911D9695879597F98C -:1054B00008959FEF80EC089500240A9416161706AD -:1054C00018060906089500240A94121613061406F5 -:1054D00005060895092E0394000C11F4882352F058 -:1054E000BB0F40F4BF2B11F460FF04C06F5F7F4F10 -:1054F0008F4F9F4F089557FD9058440F551F59F0F7 -:105500005F3F71F04795880F97FB991F61F09F3FB0 -:1055100079F087950895121613061406551FF2CFD9 -:105520004695F1DF08C0161617061806991FF1CF29 -:1055300086957105610508940895E894BB27662750 -:105540007727CB0197F908957CDF08F48FEF089552 -:105550000BD0C0CFB1DF28F0B6DF18F0952309F0EB -:1055600094CFA7CF1124EACFC6DFA0F3959FD1F344 -:10557000950F50E0551F629FF001729FBB27F00D01 -:10558000B11D639FAA27F00DB11DAA1F649F662756 -:10559000B00DA11D661F829F2227B00DA11D621FA5 -:1055A000739FB00DA11D621F839FA00D611D221F5F -:1055B000749F3327A00D611D231F849F600D211D43 -:1055C000822F762F6A2F11249F5750408AF0E1F0E6 -:1055D00088234AF0EE0FFF1FBB1F661F771F881F2F -:1055E00091505040A9F79E3F510570F04ECFA6CF85 -:1055F0005F3FECF3983EDCF3869577956795B7951A -:10560000F795E7959F5FC1F7FE2B880F911D969543 -:10561000879597F90895FA01EE0FFF1F309621053F -:10562000310599F16115710561F48038BFE39B077D -:1056300049F168949038810561F08038BFEF9B078D -:1056400041F0992342F5FF3FE1053105210511F1B4 -:10565000E8940894E795D901AA2329F4AB2FBE2F2B -:10566000F85FD0F310C0FF5F70F4A695E0F7F7394C -:1056700050F019F0FF3A38F49F779F930CD00F90B9 -:1056800007FC905808953EF014CF60E070E080E889 -:105690009FE308954FE79F775F934F933F932F9337 -:1056A0009ED02F913F914F915F9152DF05C019F429 -:1056B0000EF0EBCE42CFFDCE26DFC8F39638C0F712 -:1056C00007F80F92E8942BE33AEA48EB5FE74EDFE6 -:1056D0000F920F920F924DB75EB70F92C0D0EAE0D3 -:1056E000F1E016D04F915F91EF91FF91E595EE1F9C -:1056F000FF1F49F0FE57E0684427EE0F441FFA955C -:10570000E1F74195550B32D00F9007FE26C0089562 -:10571000DF93CF931F930F93FF92EF92DF927B0162 -:105720008C01689405C0DA2EEF011EDFFE01E894BB -:10573000A5912591359145915591AEF3EF0106DD87 -:10574000FE019701A801DA9479F7DF90EF90FF90BE -:105750000F911F91CF91DF9108959B01AC0160E003 -:1057600070E080E89FE349CD90CE95CECCDEE8F3A3 -:105770009923D9F3940F511DBBF39150504094F0ED -:1057800059F0882332F0660F771F881F91505040E0 -:10579000C1F79E3F510544F7880F911D9695879557 -:1057A00097F908955F3FACF0983E9CF0BB27869533 -:1057B00077956795B79508F4B1609395C1F7BB0FDE -:1057C00058F711F460FFE8CF6F5F7F4F8F4F9F4F07 -:1057D000E3CFB4CE0EF05FCE6CCE689456CE93DE9F -:1057E000C8F39923D1F3C6F3DF93CF931F930F939D -:1057F000FF92C92FDD2788232AF02197660F771F94 -:10580000881FDAF720E030E040E85FEB9FE388395B -:1058100020F0803E30F021968F7787DCE2E3F1E0E4 -:1058200003C083DCEFE5F1E073DF8B01BE01EC0127 -:10583000FB2E6F5771097595771F880B990B78DDD3 -:1058400028E132E741E35FE38FDEAF2D9801AE013F -:10585000FF900F911F91CF91DF9178DC3BCEFA0141 -:10586000DC01AA0FBB1F9B01AC01BF5728F4222704 -:105870003327442750781FC0B75188F4AB2F00243A -:10588000469537952795011CA395D2F3002069F022 -:10589000220F331F441FB395DAF30DD045CC61308E -:1058A0007105A0E88A07B94630F49B01AC01662770 -:1058B000772788279078309621F0208331834283A0 -:1058C00053830895AA1BBB1B51E107C0AA1FBB1F2E -:1058D000A617B70710F0A61BB70B881F991F5A957C -:1058E000A9F780959095BC01CD01089597FB072EEF -:1058F00016F4009407D077FD09D00E94622C07FCB3 -:1059000005D03EF4909581959F4F089570956195CF -:105910007F4F0895EE0FFF1F0590F491E02D09943D -:10592000F999FECF92BD81BDF89A992780B5089567 -:10593000A8E1B0E042E050E00C94B82C262FF99991 -:10594000FECF92BD81BDF89A019700B4021639F0DE -:105950001FBA20BD0FB6F894FA9AF99A0FBE0895AF -:105960000196272F0E949F2C0C949E2CDC01CB01CA -:10597000FC01F999FECF06C0F2BDE1BDF89A31965F -:1059800000B40D9241505040B8F70895F894FFCFFD -:10599000640007000CFF0000003F64F30F81105EFD -:1059A000102A10F60F0101DF022808140A321E0027 -:1059B00002040507090B0C0E1011131517181A1CF9 -:1059C0001D1F2123242628292B2D2F303234353733 -:1059D000393B1F0F03764F5F6F7F49694379095940 -:1059E00053633149803F5D8B803FF8BF803FCAE100 -:1059F000803F73ED803FCAE1803FF8BF803F5D8B01 -:105A0000803F3149803F0000803FF16D7F3F75EA64 -:105A10007E3F4C827E3F833F7E3F84287E3F833F94 -:105A20007E3F4C827E3F75EA7E3FF16D7F3F0000F6 -:105A3000803F3F4D3639830436040004C7035A03C0 -:105A400073038C03A503010203040506070809007C -:00000001FF diff --git a/keyboards/planck/keymaps/max/compiled.hex b/keyboards/planck/keymaps/max/compiled.hex deleted file mode 100644 index d9594415f..000000000 --- a/keyboards/planck/keymaps/max/compiled.hex +++ /dev/null @@ -1,1449 +0,0 @@ -:100000000C9496020C94DA020C94DA020C94DA0244 -:100010000C94DA020C94DA020C94DA020C94DA02F0 -:100020000C94DA020C94DA020C9478140C944A15AD -:100030000C94AC220C94DA020C94DA020C94DA02DE -:100040000C94DA020C943C030C94DA020C94DA025D -:100050000C94DA020C9414230C94DA020C94DA0255 -:100060000C94DA020C94DA020C94DA020C94DA02A0 -:100070000C94DA020C94DA020C94DA020C94DA0290 -:100080000C94ED0A0C94DA020C94DA020C94DA0265 -:100090000C94DA020C94DA020C94DA020C94DA0270 -:1000A0000C94DA020C94DA020C94DA02B715D91522 -:1000B000C716D915C7161E164116C7169616A916C5 -:1000C00093199319C219C219011A211A771B771BA8 -:1000D0002C1A771BDC1ADC1A431B4C1B771B711B79 -:1000E000E91AE91AE91AE91AE91AE91AE91AE91AF8 -:1000F000E91AE91AE91AE91AE91AE91AE91AE91AE8 -:10010000F91A071B0E1B151B1F1B07634236B79BF3 -:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 -:100120005763BD6DEDFD753EF6177231BF000000DF -:10013000803F08000000BE922449123EABAAAA2AC2 -:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD -:1001500000000000BF000000803F00000000000819 -:100160004178D3BB4387D1133D190E3CC3BD4282B6 -:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 -:10018000FFBE01C4FF7F3F00000000000000000030 -:1001900000000000000000010204060A0F17202CD6 -:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 -:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF -:1001C0000201000000000000000000000000F1A299 -:1001D000F1A3018C028C290014001A0008001500FC -:1001E00017001C0018000C00120013002A002B003E -:1001F00004001600070009000A000B000D000E00A5 -:100200000F0033002800E1001D001B00060019004C -:100210000500110010003600370038003400E000FF -:100220008350E200E30002202C002C00012050004B -:10023000510052004F00290014001A000900130059 -:100240000A000D000F0018001C0033002A002B00CC -:10025000040015001600170007000B00110008002D -:100260000C0012002800E1001D001B000600190010 -:1002700005000E0010003600370038003400E000A2 -:100280008350E200E30002202C002C0001205000EB -:10029000510052004F0035001E001F0020002100B9 -:1002A0002200230024002500260027002A00010048 -:1002B0000320042000500100010001002D002E0049 -:1002C0002F00300001000100440045006800690073 -:1002D0006A006B006C006D006E006F003100010061 -:1002E0000100010001000100010001000120AB003C -:1002F000AA00A900AE0035021E021F022002210240 -:100300002202230224022502260227022A000100DB -:100310000320042000500100010001002D022E02E4 -:100320002F023002010001003A003B003C003D007A -:100330003E003F0040004100420043003102010006 -:100340000100010001000220010001000100AB00DA -:10035000AA00A900AE002803540068006500200030 -:1003600050006C0061006E0063006B0020004B00C9 -:100370006500790062006F00610072006400000097 -:100380002C034F007200740068006F006C0069005D -:100390006E0065006100720020004B00650079006E -:1003A00062006F00610072006400730000000403CB -:1003B000090409026D00040100A0FA09040000010B -:1003C00003010100092111010001223F00070581FD -:1003D0000308000A090401000103010200092111B8 -:1003E000010001224D000705820308000A090402EA -:1003F000000103000000092111010001223600075D -:1004000005830308000A0904030001030000000932 -:100410002111010001223900070584031000011297 -:1004200001100100000008EDFE6060010001020003 -:100430000105010906A101050719E029E7150025B5 -:1004400001950875018102050819012905950575B1 -:10045000019102950175039101050719002977158E -:10046000002501957875018102C005010980A1016F -:10047000850216010026B7001A01002AB700751080 -:1004800095018100C0050C0901A101850316010039 -:10049000269C021A01002A9C02751095018100C059 -:1004A00005010902A1010901A10005091901290598 -:1004B00015002501950575018102950175038101DE -:1004C0000501093009311581257F950275088106DE -:1004D00009381581257F950175088106050C0A38B4 -:1004E000021581257F950175088106C0C0050109A7 -:1004F00006A101050719E029E715002501950875F2 -:1005000001810295017508810105081901290595E8 -:1005100005750191029501750391010507190029DF -:10052000FF150025FF950675088100C011241FBE28 -:10053000CFEFDAE0DEBFCDBF04B603FE24C080916A -:100540001E0390911F03A0912003B09121038730D7 -:10055000904BA740B04BB9F410921E0310921F03AA -:10056000109220031092210314BE84B7877F84BFAA -:1005700088E10FB6F89480936000109260000FBE7F -:10058000E0E0F8E3099511E0A0E0B1E0E2EBF9E585 -:1005900002C005900D92A03CB107D9F713E0A0EC82 -:1005A000B1E001C01D92AE31B107E1F70E94BE116A -:1005B0000C94D72C0C9400000895089581E00895C0 -:1005C00008950C94DD020C94DE020C94E0020E946B -:1005D000A12823E030E0281B3109220F2093C40119 -:1005E0000895282F2F9880918000211108C0877FBF -:1005F0008093800010928D0010928C001BC0886048 -:1006000080938000233019F48FEF9FEF0FC083E0B9 -:1006100090E0821B9109880F991F2FEF3FEFA901EE -:1006200002C0569547958A95E2F7CA0190938D00CE -:1006300080938C000C94E7020E94E70284E0809390 -:10064000C3011092C0010895279A2F988FEF9FEF52 -:1006500090938700809386008AE08093800089E1F0 -:10066000809381000E940A280C941C030E9424039A -:100670006E9A769A0C94DC021F920F920FB60F922C -:1006800011242F933F938F939F93EF93FF93E091C8 -:10069000C101F091C201CF0101969093C2018093F4 -:1006A000C1010090C30102C0F695E7950A94E2F7F4 -:1006B000EF738091C001823019F4E03251F404C02C -:1006C000813039F4EF3329F480916F008D7F80936E -:1006D0006F00F0E0E457FE4FE49121E031E0E29F4B -:1006E000C001E39F900D11240090C40102C09695B3 -:1006F00087950A94E2F790938D0080938C00FF9188 -:10070000EF919F918F913F912F910F900FBE0F907E -:100710001F90189581E008950C948A0308950C9415 -:10072000360380911502882309F448C08091D101D5 -:100730009091D201009779F40E94DE229093D20129 -:100740008093D1018091D30190E0009771F4809162 -:10075000D40190E00AC00E94EA2220910001309169 -:1007600001012817390740F329C00197880F991F05 -:10077000880F991FFC01EB52FE4F608171818281CD -:1007800093810E94530AE091D30184E0E89FF00135 -:100790001124EB52FE4F60817181828193814FE081 -:1007A00050E00E940B0E8091D30190E00196609181 -:1007B000D40170E00E94872C8093D3010C94E10255 -:1007C000109217020C94200A0895089581E08093F6 -:1007D00017020C94E503089508958F929F92AF92AB -:1007E000BF92EF92FF920F931F93CF93DF93CDB7FA -:1007F000DEB7A3970FB6F894DEBF0FBECDBF7C0166 -:10080000FC0100811181C8010E94DB20B8010E9417 -:10081000F2058C01B7010E948C03882309F4CCC136 -:100820000032F0E51F0741F4F7018281882309F4C3 -:1008300058C00E946F0EC0C10132F0E51F0741F49D -:10084000F7018281882309F44CC00E94780EB4C15C -:100850000232F0E51F0751F4F7018281882309F481 -:1008600040C00E946B0E8111F0CFE3CF0332F0E560 -:100870001F0739F4F7018281882399F10E94E6036A -:100880009BC10432F0E51F0739F4F7018281882308 -:1008900041F10E94E00390C10532F0E51F0749F4E1 -:1008A000F70182818823E9F0809117028111F1CF4D -:1008B000E5CF0632F0E51F0739F4F701828188237E -:1008C00081F00E947F0E0AC00732F0E51F0749F44D -:1008D000F7018281882329F00E948A0E0E94EC038E -:1008E0006BC180911702811105C0F70182818111CE -:1008F000CFC018C1003E110579F4F7018281882329 -:1009000009F44DC00E94200A81E0809316021092E3 -:1009100015021092D40150C1023E110559F4F7019D -:1009200082818823E1F10E94200A1092160210921F -:10093000150242C1033E110591F4F701828188231B -:1009400071F10E94200A1092160281E08093150234 -:100950001092D3011092D2011092D1012DC1023513 -:10096000110559F4F7018281882309F425C180918A -:100970000001909101010A970DC00135110579F42C -:10098000F7018281882309F417C1809100019091B9 -:1009900001010A9690930101809300010DC14091DD -:1009A000040183E2EFE1F1E0DE01119601900D9286 -:1009B0008A95E1F7F701808121E030E02C0F3D1F9F -:1009C000280F311DC9012091020130910301FC0162 -:1009D000E20FF31F6081772767FD7095640F711D2B -:1009E000882777FD8095982F0E94A92920E030E084 -:1009F00040E451E40E940E294B015C01F701218182 -:100A000084E090E0821B9109BC01882777FD8095E6 -:100A1000982F0E94A9299B01AC01C501B4010E9435 -:100A2000A6289B01AC0160E070E080E090E40E94A9 -:100A30001C2B20E030E04CED50E40E94B92A4B0121 -:100A40005C01F70182818823D1F04FE050E0C501BD -:100A5000B4010E940B0E809116028823A1F08091B0 -:100A6000D40124E0829FF0011124EB52FE4F8082DA -:100A70009182A282B3828F5F8093D40104C0C501AA -:100A8000B4010E94530A0F3F110508F02ECF94C005 -:100A90008091D00181111FC0043130E5130709F0A6 -:100AA00051C00E948E0381E08093D0010E94DE221B -:100AB0009093CF018093CE011092C7011092C9018B -:100AC0001092C8011092CB011092CA011092CD0170 -:100AD0001092CC0171C08091CE019091CF010E9403 -:100AE000EA22883C910570F48091C701E82FF0E07C -:100AF000EE0FFF1FE853FE4F118300838F5F80933B -:100B0000C7015AC0043880E5180721F005381045A0 -:100B100001F13AC0F7018281882341F01092C501AA -:100B200082E01EC0043830E5130759F58091C501F5 -:100B3000811106C086E20E94371886E20E94FF18E3 -:100B400082E01CC00438F0E51F0741F3053810456A -:100B5000D9F4F7018281882331F01092C60180E236 -:100B60000E944E1929C08091C601811106C087E2FA -:100B70000E94371887E20E94FF1880E20E945519F0 -:100B80001BC00538104529F381E08093C50180938F -:100B9000C601C701A3960FB6F894DEBF0FBECDBF46 -:100BA000DF91CF911F910F91FF90EF90BF90AF9089 -:100BB0009F908F900C94E30280E0A3960FB6F89478 -:100BC000DEBF0FBECDBFDF91CF911F910F91FF9080 -:100BD000EF90BF90AF909F908F90089580E090E04D -:100BE000089508959CE0799FF001112490E3899F76 -:100BF000E00DF11D1124E60FF11DEE0FFF1FEA526B -:100C0000FE4F859194910895880F991FFC01E45B34 -:100C1000FF4F859194910895880F991FFC01E4532B -:100C2000FE4F8591949108950F931F93CF93DF9377 -:100C3000EC01811521E39207A0F5C11580E3D807E7 -:100C400008F0D7C0C83ED105D8F4C03ED10508F0A1 -:100C500007C2C83AD10578F4C53AD10508F06AC090 -:100C6000C130D10509F463C008F4F7C1C430D1051F -:100C700008F0F6C1F2C1CB3BD10508F466C0EDC166 -:100C8000C11590E2D90708F0AFC0C11521E0D20725 -:100C900008F0E6C1C03FD10508F4DFC18E01106540 -:100CA0001FC2C03880E5D80700F5C03790E5D907E6 -:100CB00008F0A3C0C11520E5D20709F4ACC050F478 -:100CC000CE01905480319F4008F0C7C1DF708E0183 -:100CD000106A06C2C13080E5D80709F4AEC0C4313D -:100CE00090E5D90708F4AFC0B8C1C33820E5D207F2 -:100CF00009F48EC050F4C13890E5D90709F482C0D8 -:100D000008F083C000E011EDEBC1C03181E5D807E8 -:100D100008F4A3C1C11597E5D90708F436C1CE017F -:100D200090578115904108F098C1DF7093C101E0A0 -:100D300010E0D6C1C53AD10509F494C1C63AD1052F -:100D400009F093C102E810E4CBC1C83AD10509F417 -:100D50008FC1C93AD10509F48EC1CA3AD10509F447 -:100D60008DC1CB3AD10509F48CC1CC3AD10509F437 -:100D70008BC1CD3AD10509F48AC1C03BD10509F434 -:100D800089C1CE3AD10509F488C1CF3AD10509F419 -:100D900087C1C13BD10509F486C1C23BD10509F425 -:100DA00085C1C33BD10509F484C1C43BD10509F415 -:100DB00083C1C53BD10509F482C1C63BD10509F405 -:100DC00081C1C73BD10509F480C1C83BD10509F4F5 -:100DD0007FC1C93BD10509F47EC1CA3BD10509F4E5 -:100DE0007DC100E014E47CC1CE019F700E940C061E -:100DF00078C1DD278E01106C73C1CF70DD278E01A5 -:100E0000146D6EC100E010ED6BC100E012ED68C121 -:100E100000E013ED65C10E94E21B0E94200A0E94BF -:100E2000E4038FEF94E32CE0815090402040E1F701 -:100E300000C000000E94392353C18091F2028160FA -:100E40008093F2024DC10E949A23811102C00E9438 -:100E500076230E94AD2390E090931D0380931C03A2 -:100E6000C23080E5D80721F480911C03816086C0E0 -:100E7000C43090E5D90721F480911C0382607EC0C4 -:100E8000C63020E5D20721F480911C03846076C02F -:100E9000C83080E5D80719F480911C0327C0CA30F8 -:100EA00090E5D90721F480911C03806167C0CC30A4 -:100EB00020E5D20721F480911C0380625FC0CE3010 -:100EC00080E5D80721F480911C03806457C0C031AD -:100ED00090E5D90721F480911C0380684FC0C2318E -:100EE00020E5D20729F480911C038460886046C005 -:100EF000C33080E5D80721F480911C038E7F3EC06B -:100F0000C53090E5D90721F480911C038D7F36C050 -:100F1000C73020E5D20721F480911C038B7F2EC0BF -:100F2000C93080E5D80719F480911C0326C0CB3066 -:100F300090E5D90721F480911C038F7E1FC0CD302E -:100F400020E5D20721F480911C038F7D17C0CF309C -:100F500080E5D80721F480911C038F7B0FC0C1313D -:100F600090E5D90721F480911C038F7707C0C33126 -:100F7000D04531F480911C038B7F877F80931C03C5 -:100F800080911C030E94B123ABC08D2F99278F70D5 -:100F9000992781309105D9F49E012370332702C02F -:100FA000880F991F2A95E2F79C688E0144E0000F94 -:100FB000111F4A95E1F700271370802B912B53E006 -:100FC000CC0FDD1F5A95E1F7C076DD272FC08230A8 -:100FD000910531F4DC2FCC278E01016F106A80C09F -:100FE0008330910569F4CE018370992701E010E008 -:100FF00002C0000F111F8A95E2F7C8019C680FC05C -:1010000084309105B9F4CE018370992701E010E096 -:1010100002C0000F111F8A95E2F7C8019A6823E009 -:10102000CC0FDD1F2A95E1F7C07ED7708C010C2B09 -:101030001D2B56C08530910531F4DC2FCC278E0155 -:10104000046F106A4DC0069709F04AC0CF71DD27C2 -:10105000DC2FCC278E01106243C000E010E040C0BE -:101060008E013EC001E810E43BC003E810E438C044 -:1010700002EE14E435C009EE14E432C00AEE14E4C2 -:101080002FC005EB14E42CC006EB14E429C007EBD9 -:1010900014E426C00CEC14E423C00DEC14E420C0CE -:1010A00003E815E41DC00AE815E41AC002E915E4D6 -:1010B00017C004E915E414C001E216E411C003E20C -:1010C00016E40EC004E216E40BC005E216E408C004 -:1010D00006E216E405C007E216E402C00AE216E4DE -:1010E000C801DF91CF911F910F9108959CE0799FE6 -:1010F000F001112490E3899FE00DF11D1124E60F0A -:10110000F11DEE0FFF1FEA52FE4F85919491803E34 -:101110009105E0F4803C910558F58133910509F47F -:101120006FC048F48932910509F463C08A32910591 -:1011300009F46DC072C089339105E9F082389105D8 -:10114000D1F08533910509F44DC067C0833E910508 -:1011500081F138F4803E9105B9F0823E9105D9F0D5 -:101160005CC0863E910561F1873E9105A1F155C0B5 -:101170000E940406089520911C0320FD02C021FF57 -:101180004CC080EE90E049C080911C0380FFF9CFF5 -:1011900089E390E042C080911C0382FF0EC08091E1 -:1011A0001C0384FF03C080E090E037C083EE90E032 -:1011B00034C080911C0382FFF2CF82EE90E02DC0FC -:1011C00080911C0383FF0BC080911C0384FDEBCF37 -:1011D00087EE90E022C080911C0383FFF5CF86EE5E -:1011E00090E01BC080911C0385FF07C089E290E05E -:1011F00014C080911C0385FFF9CF85E390E00DC0FA -:1012000080911C0386FF07C08AE290E006C08091AF -:101210001C0386FFF9CF81E390E00E941406089535 -:101220000C94E502E82FF0E0E25BFE4F8081E82FAE -:10123000EF70F0E082958F7021E030E0A90102C0EC -:10124000440F551F8A95E2F740A308950F931F930B -:10125000CF93DF9385B7806885BF85B7806885BFEA -:10126000C3E0D0E001E010E0FE01E25BFE4F8081D0 -:10127000E82FEF70F0E021A182958F70A80102C0E5 -:10128000440F551F8A95E2F7CA01822B81A38C2F48 -:101290000E941209219740F78BE090E061E070E036 -:1012A000FC01EE5BFE4F2081E22FEF70F0E042A1E7 -:1012B00022952F70DB0102C0AA0FBB1F2A95E2F70F -:1012C0009D01242B22A3019758F7DF91CF911F9105 -:1012D0000F910C948F03EF92FF920F931F93CF9374 -:1012E000DF9300E212E0C3E0EE24E394F12CD5E0BA -:1012F0008C2F0E9412098BE090E040E050E0FC014E -:10130000EE5BFE4F6081E62FEF70F0E020A130E051 -:1013100062956F7002C0359527956A95E2F720FDBA -:1013200009C09701082E02C0220F331F0A94E2F76A -:10133000422B532B019718F7F801929182918F015C -:101340008417950721F051834083D09305018C2F9A -:101350000E941209C15060F68091050187FD2CC0E2 -:101360008150809305018F3F39F08FE99FE001970D -:10137000F1F700C0000020C080911E0290911F0272 -:10138000909327028093260280911C0290911D0267 -:10139000909325028093240280911A0290911B025F -:1013A0009093230280932202809118029091190257 -:1013B00090932102809320020E94910381E0DF91AB -:1013C000CF911F910F91FF90EF900895E82FF0E0DB -:1013D000EE0FFF1FE05EFD4F80819181089508951B -:1013E0000F931F93CF9308E212E0C0E0F8019291AF -:1013F00082918F010E945622C80FF2E000321F072F -:10140000A9F78C2FCF911F910F9108950E949A23D5 -:10141000811102C00E9476230E94BF23809307039C -:101420003E9A809171008D7F8093710082E080935D -:1014300090008AE18093910081E080932A020895D0 -:1014400080912A02811102C00E94060A10927A023B -:1014500010927902809171008D7F8093710080914C -:1014600090008F738093900010923C0210923B0288 -:10147000109273021092740210927502109276020A -:101480001092720210927102E1E5F2E0A1E4B2E082 -:1014900011921192119211921D921D9282E0E137E8 -:1014A000F807B1F70895CF92DF92EF92FF920F9372 -:1014B0001F93CF93DF9320913B02222309F484C032 -:1014C0006B017C0180912A02811102C00E94060AF0 -:1014D00001E712E0C7E0D0E0A7019601F801929180 -:1014E0008291729162918F010E940A29811131C00B -:1014F000FE01EE0FFF1FEE0FFF1FEF5AFD4F108290 -:10150000118212821382DE01AA0FBB1FAF5BBD4F97 -:1015100011961C921E92C730D105E9F021964481A4 -:1015200055816681778140835183628373831482FE -:1015300015821682178212968D919C91139711969F -:101540009C938E9313961C921E9212973496129629 -:10155000E2CF219708F68091790290917A02019763 -:1015600097FD05C090937A028093790204C010928F -:101570007A02109279028091790290917A022091F8 -:101580007702309178022817390724F010927802F8 -:1015900010927702892BC1F4809171008D7F809326 -:1015A0007100809190008F7380939000109273026D -:1015B00010927402109275021092760210927202CA -:1015C0001092710210923B02DF91CF911F910F9107 -:1015D000FF90EF90DF90CF9008951F920F920FB67B -:1015E0000F9211244F925F926F927F928F929F92EF -:1015F000AF92BF92CF92DF92EF92FF922F933F93E1 -:101600004F935F936F937F938F939F93AF93BF930A -:10161000CF93DF93EF93FF9380913B02882309F4EC -:101620009BC1C0917902D0917A021C161D060CF064 -:1016300093C140902B0250902C0260902D0270902C -:101640002E0220E030E0A901C301B2010E94B52AB8 -:1016500018160CF065C0C130D10509F452C0809154 -:10166000770290917802BE010E94872C7C019093B2 -:1016700078028093770280903D0290903E02A09085 -:101680003F02B090400220E030E040E85FE3C50157 -:10169000B4010E94A62860933D0270933E0280939D -:1016A0003F0290934002F701EE0FFF1FEE0FFF1F66 -:1016B000EF5AFD4FA3019201608171818281938174 -:1016C0000E940E2920E030E040E05EE30E94B92A4B -:1016D0009B01AC01C501B4010E94B52A18168CF417 -:1016E000C7010196BE010E94872C909378028093D7 -:1016F000770210923D0210923E0210923F02109229 -:101700004002E0917702F0917802EE0FFF1FEE0F9A -:10171000FF1FEF5AFD4F6081718182819381D0C09C -:10172000C0907302D0907402E0907502F09076023F -:1017300020E030E0A901C701B6010E940A292197E3 -:10174000882309F4A2C0FE01EE0FFF1FEE0FFF1F5A -:10175000EF5AFD4F80809180A280B380A501940153 -:10176000C701B6010E940A2987FF31C0A501940173 -:1017700060E070E08CED93EC0E940E2920E030E0F8 -:1017800040E451E40E940E2920E030E040E05FE3B5 -:101790000E94B92A9B01AC0160E070E080E090E417 -:1017A0000E941C2B9B01AC01C501B4010E94B92A07 -:1017B0009B01AC01C701B6010E940A2987FF07C03F -:1017C000A701960160E070E08CED93E439C0A501BB -:1017D0009401C701B6010E94B52A18160CF055C035 -:1017E000A501940160E070E08CED93E40E940E2965 -:1017F00020E030E040E451E40E940E2920E030E097 -:1018000040E05FE30E94B92A9B01AC0160E070E018 -:1018100080E090E40E941C2B9B01AC01C501B40147 -:101820000E94B92A9B01AC01C701B6010E94B52AEA -:1018300018165CF5A701960160E070E08CED93EC62 -:101840000E940E2920E030E040E451E40E940E297D -:1018500020E030E040E05FE30E94B92A9B01AC0148 -:1018600060E070E080E090E40E941C2B9B01AC01E2 -:10187000C701B6010E94B92A609373027093740283 -:10188000809375029093760213C0FE01EE0FFF1F46 -:10189000EE0FFF1FEF5AFD4F80819181A281B3812E -:1018A0008093730290937402A0937502B0937602B2 -:1018B000609173027091740280917502909176022A -:1018C00020912802309129022F3F4FEF340731F049 -:1018D0002F5F3F4F30932902209328020E94950EDC -:1018E0006B017C0120E034E244EF51E40E940A29BC -:1018F00087FF08C086EFC82E88E2D82E84EFE82E36 -:1019000081E4F82E20E030E040E051E4C701B60168 -:101910000E94B92A9B01AC0160E074E284E79BE479 -:101920000E940E296B017C010E947B297093970015 -:1019300060939600209106013091070140910801C3 -:1019400050910901C701B6010E94B92A0E947B2962 -:10195000709399006093980080913C02882309F469 -:1019600033C1C0903702D0903802E0903902F09035 -:101970003A0220E030E0A901C701B6010E94B52A71 -:101980001816D4F580912802909129028F3F2FEFED -:10199000920729F001969093290280932802C701AB -:1019A000B6010E94950E20E030E040E051E40E9434 -:1019B000B92A9B01AC0160E074E284E79BE40E94D9 -:1019C0000E296B017C010E947B2970939700609324 -:1019D0009600209106013091070140910801509135 -:1019E0000901C701B6010E94B92A0E947B297093A0 -:1019F00099006093980008C010929700109296008A -:101A00001092990010929800609131027091320208 -:101A10006F5F7F4F70933202609331022091960086 -:101A20003091970080E090E0232BF1F0C091960078 -:101A3000D09197000E94A7296B017C01BE0180E034 -:101A400090E00E94A7299B01AC0160913302709144 -:101A5000340280913502909136020E940E2920E0D6 -:101A60003FEF4FE757E410C00E94A7296B017C01AC -:101A700020E030EE4FEF54E4609133027091340275 -:101A800080913502909136020E94B92A9B01AC01E7 -:101A9000C701B6010E94B52A87FD96C080912F022A -:101AA0008F5F80932F0290E0209103033091040315 -:101AB00082179307A0F080910E03882319F01092EB -:101AC0002F020DC0809171008D7F809371008091F5 -:101AD00090008F738093900010923C027DC08091A3 -:101AE0003002C0912F02811128C0C0900803D0900D -:101AF0000903E0900A03F0900B0320E030E0A90115 -:101B0000C701B6010E94B52A1816BCF481E0809383 -:101B1000300210923702109238021092390210925D -:101B20003A02C0923302D0923402E0923502F0922F -:101B30003602C150C0932F0243C01092300210925F -:101B4000290210922802E0910503F091060348E073 -:101B5000C49FE00DF11D112480819181A281B38188 -:101B60008093370290933802A0933902B0933A02DF -:101B700020E030E040E85EE36481758186819781F2 -:101B80000E94B92A6B017C0180910A01682F70E0E4 -:101B900080E090E00E94A72920E030E048EC52E489 -:101BA0000E940E299B01AC01C701B6010E94B92A0F -:101BB000609333027093340280933502909336021F -:101BC00010923202109231028091070380FD04C00E -:101BD00010923C0210923B02FF91EF91DF91CF9166 -:101BE000BF91AF919F918F917F916F915F914F9135 -:101BF0003F912F91FF90EF90DF90CF90BF90AF90EB -:101C00009F908F907F906F905F904F900F900FBE3E -:101C10000F901F901895CF92DF92EF92FF92CF9383 -:101C2000DF936B017C01EA0180912A02811102C0DD -:101C30000E94060A8091070380FF46C080917902C6 -:101C400090917A0208970CF03FC0809171008D7FCF -:101C50008093710080913C0281110E94200A81E0F2 -:101C600080933B02109229021092280220E030E07B -:101C7000A901C701B6010E94B52A1816DCF48091AB -:101C8000790290917A02FC01EE0FFF1FEE0FFF1F09 -:101C9000EF5AFD4FC082D182E282F382FC01EE0F47 -:101CA000FF1FEF5BFD4FD183C083019690937A02B3 -:101CB000809379028091710082608093710080919D -:101CC0009000806880939000DF91CF91FF90EF901B -:101CD000DF90CF90089580910703817008958091DF -:101CE00007038160809307030E94C3230C94EB03D6 -:101CF000809107038E7F809307030C94C323809108 -:101D00007B0290E0019666E070E00E94872C809351 -:101D10007B02089580917B0290E0019766E070E07D -:101D20000E94872C80937B0208958F929F92AF929E -:101D3000BF92CF92DF92EF92FF920F931F93CF93B8 -:101D4000DF936B017C01C0912802D0912902BE0172 -:101D500080E090E00E94A7294B015C01A701960159 -:101D600060E070E08CE594E40E940E299B01AC01D8 -:101D7000C501B4010E94B92A0E947B2920917B02EF -:101D8000233009F473C028F4222351F02130E9F004 -:101D90002CC1243009F4A0C0253009F4E0C025C1CD -:101DA00080E090E0A0E0BFE38093060190930701FC -:101DB000A0930801B093090110922B0210922C02FB -:101DC00010922D0210922E0210C110922B0210922E -:101DD0002C0210922D0210922E026431710540F4F3 -:101DE0006A30710560F520E030E040E85EE32BC02A -:101DF000693C710508F0AAC080E090E00E94A72924 -:101E000020E030E040EA51E40E94A52820E030E0E4 -:101E100044E353E40E940E299B01AC010E94B92ABD -:101E200020E030E040E05EE30E94B92A9B01AC0173 -:101E300060E070E080E09EE30E94A52844C020E0BE -:101E400030E040E05FE3C701B6010E94B92A6B01B0 -:101E50007C0180E090E0A0E0BEE3809306019093D7 -:101E60000701A0930801B0930901BFC010922B0293 -:101E700010922C0210922D0210922E024AE0469FE0 -:101E80009001479F300D1124C90168EB7BE00E944F -:101E9000732CBC016C5D754077FF03C07195619533 -:101EA0007109882777FD8095982F0E94A9292EE334 -:101EB00033EC4EE259E30E94B92A20E030E040ECD6 -:101EC0005EE30E94A6286093060170930701809349 -:101ED00008019093090189C010922B0210922C02E4 -:101EE00010922D0210922E02CE0183709927892B19 -:101EF000E1F0BE016170772780E090E00E94A729A1 -:101F000020E030E040E05EE30E94B92A20E030E0CB -:101F100040E45FE30E94A6286093060170930701E6 -:101F200080930801909309010CC080E090E0A0E04C -:101F3000BFE38093060190930701A0930801B0933B -:101F40000901C770DD27CD2B09F04FC010920601A3 -:101F500010920701109208011092090146C01092D8 -:101F60002B0210922C0210922D0210922E0200E0F1 -:101F700010E020E03FE30093060110930701209357 -:101F80000801309309016739710578F180E090E02C -:101F90000E94A72920E030E047E153E40E94A528F1 -:101FA00020E030E04AE754E40E940E2920E030E0CF -:101FB00048E452E40E94B92A20E030E040EA51E4CB -:101FC0000E94EB290E947629660F771F660F771F04 -:101FD000FB01EE5AFE4F2081318142815381C701BE -:101FE000B6010E94B92A6B017C01C701B601DF91DD -:101FF000CF911F910F91FF90EF90DF90CF90BF9006 -:10200000AF909F908F90089580918C020895CF9308 -:10201000DF9300D01F92CDB7DEB79C0180911303F0 -:10202000843019F593E099833B832A839093E900E8 -:102030008FEF9091E800815095FD06C095ED9A953F -:10204000F1F700008111F5CF8091E80085FF0DC008 -:1020500040E050E063E070E0CE0101960E9468121B -:102060008091E8008E778093E8000F900F900F909A -:10207000DF91CF910895CF93DF9300D01F92CDB71A -:10208000DEB720911303243021F522E029839B83BE -:102090008A8383E08093E9008FEF9091E80081507C -:1020A00095FD06C095ED9A95F1F700008111F5CFE9 -:1020B0008091E80085FF0DC040E050E063E070E0F3 -:1020C000CE0101960E9468128091E8008E7780937D -:1020D000E8000F900F900F90DF91CF91089520911D -:1020E00013032430F1F422E02093E9002FEF309124 -:1020F000E800215035FD06C035ED3A95F1F70000B6 -:102100002111F5CF2091E80025FF0BC040E050E001 -:1021100065E070E00E9468128091E8008E778093FD -:10212000E8000895CF93DF93EC019091130394306E -:1021300009F046C0809115018823D9F080911601DD -:102140008823B9F09093E9008FEF9091E8008150D7 -:1021500095FD06C095E19A95F1F700008111F5CF44 -:102160008091E80085FF2CC040E050E060E170E025 -:1021700017C081E08093E9008FEF9091E8008150D3 -:1021800095FD06C095ED9A95F1F700008111F5CF08 -:102190008091E80085FF14C040E050E068E070E006 -:1021A000CE010E9468128091E8008E778093E8004B -:1021B00080E1FE01ACE7B2E001900D928A95E1F773 -:1021C000DF91CF91089580911203811109C00E947F -:1021D000FD130E945A148091E20084608093E20013 -:1021E0000895109212030895089508950C94A12261 -:1021F00042E061EC81E00E94771342E061EC82E012 -:102200000E94771342E061EC83E00E94771342E181 -:1022100061EC84E00C94771380911503833009F40A -:1022200055C030F4813071F0823009F48EC00895C9 -:102230008A3009F47AC08B3009F460C0893009F023 -:102240009CC020C080911403813A09F096C080910F -:10225000E800877F8093E80080911803909119032C -:10226000892B21F460E18CE792E003C060E080E01C -:1022700090E070E00E94B3128091E8008B77809329 -:10228000E800089580911403813209F076C08091AE -:10229000180390911903009719F0039709F06DC086 -:1022A0008091E800877F8093E8008091E80082FDBC -:1022B00005C0809113038111F8CF5FC08091F100B8 -:1022C00080938C028091E8008B7753C08091140337 -:1022D000813A09F052C08091180390911903892B1B -:1022E00009F04BC08091E800877F8093E8008091DF -:1022F000E80080FFFCCF8091150136C08091140367 -:102300008132D9F58091180390911903892BA9F591 -:102310008091E800877F8093E8000E94AC13809151 -:102320001603809315010C94E21B809114038132F3 -:1023300021F58091E800877F8093E8000E94AC132C -:102340008091170380938D02089580911403813A40 -:10235000A1F48091E800877F8093E8008091E800F5 -:1023600080FFFCCF80918D028093F1008091E80086 -:102370008E778093E8000C94AC13089584B7877F20 -:1023800084BF88E10FB6F8948093600010926000DB -:102390000FBE90E080E80FB6F894809361009093B0 -:1023A00061000FBE0E944F170E94FD130E945A1435 -:1023B0008091E20084608093E20078940E94E016AD -:1023C0000E9451178BE091E00E94FB16809113034D -:1023D000853069F40E946222809111038823B1F351 -:1023E0000E949022882391F30E945212EFCF0E9404 -:1023F0005917ECCF292F332723303105C9F064F466 -:102400002130310581F02230310509F043C08DE6DD -:1024100090E022EB33E042C021323105F1F022326C -:10242000310541F137C082E190E02FE134E036C060 -:1024300099278130910541F08230910541F0892B37 -:1024400049F5EEEAF3E005C0E0E8F3E002C0E6E5B6 -:10245000F3E0849190E09F0121C06430D8F4E62F2E -:10246000F0E0EE0FFF1FE255FE4F2081318189E041 -:1024700090E014C0643070F470E0FB01EE0FFF1FB9 -:10248000EA55FE4F20813181FB01EE55FE4F8081E0 -:1024900090E004C080E090E020E030E0FA01318379 -:1024A0002083089580E189BD82E189BD09B400FEE1 -:1024B000FDCF8091D8008F7D8093D8008091E0007F -:1024C00082608093E0008091E00081FDFCCF089560 -:1024D000CF92DF92EF92FF920F931F93CF93DF93F0 -:1024E000EC018B016A010E94CB13811133C0C1142E -:1024F000D10439F0F60180819181081B190BC80FB6 -:10250000D91FE12CF12C0115110519F18091E8007A -:1025100085FD16C08091E8008E778093E800C11495 -:10252000D10449F0F60180819181E80EF91EF18213 -:10253000E08285E00FC00E94CB13882321F30AC0FC -:1025400089918093F10001501109FFEFEF1AFF0A02 -:10255000DACF80E0DF91CF911F910F91FF90EF9044 -:10256000DF90CF90089520911A0330911B03261716 -:10257000370748F06115710539F42091E8002E778E -:102580002093E80001C0B90140E061157105A9F18F -:1025900020911303222309F443C0253009F442C0DB -:1025A0002091E80023FD40C02091E80022FD32C0C8 -:1025B0002091E80020FFE9CF4091F3002091F20044 -:1025C00030E0342BFC01CF016115710559F0283042 -:1025D000310540F481918093F100615071092F5FC2 -:1025E0003F4FF1CF41E02830310509F040E0209124 -:1025F000E8002E772093E800C8CF4111C9CF0AC068 -:1026000080911303882361F0853061F08091E800A8 -:1026100083FD0AC08091E80082FFF2CF80E0089538 -:1026200082E0089583E0089581E0089520911A03DF -:1026300030911B032617370748F06115710539F4EF -:102640002091E8002E772093E80001C0B901FC0139 -:1026500020E06115710591F180911303882309F43D -:1026600040C0853009F43FC08091E80083FD3DC043 -:102670008091E80082FD2FC08091E80080FFE9CFC3 -:102680002091F3008091F20090E0922B611571058A -:1026900059F08830910540F424912093F10031964F -:1026A000615071090196F2CF21E0089709F020E00E -:1026B0008091E8008E778093E800CBCF2111CCCFBA -:1026C0000AC080911303882361F0853061F0809106 -:1026D000E80083FD0AC08091E80082FFF2CF80E02D -:1026E000089582E0089583E0089581E00895982F89 -:1026F000973058F59093E900981739F07091EC00F5 -:102700002091ED005091F00003C0242F762F50E06F -:1027100021FF19C03091EB003E7F3093EB003091E8 -:10272000ED003D7F3093ED003091EB003160309350 -:10273000EB007093EC002093ED005093F00020919B -:10274000EE0027FF07C09F5FD3CF8F708093E90013 -:1027500081E0089580E008958091140387FF11C0FF -:102760008091E80082FD05C0809113038111F8CFAC -:1027700011C08091E8008B770BC0809113038823F0 -:1027800049F08091E80080FFF8CF8091E8008E77D3 -:102790008093E80008952091E4003091E50095E6EB -:1027A0004091EC00842F817040FF22C08091E800AE -:1027B00080FD1CC080911303882391F0853091F037 -:1027C0008091EB0085FD10C04091E4005091E50040 -:1027D0004217530729F39A01915011F784E00895A5 -:1027E00082E0089583E0089581E0089580E00895EF -:1027F0004091E80042FFDECF08950E946B140E94D2 -:102800007314E0EEF0E0808181608083E8EDF0E019 -:1028100080818F77808319BCA7EDB0E08C918E7F8B -:102820008C9380818F7E80831092120308950F9382 -:102830001F93CF93DF930E946B140E947314C8ED13 -:10284000D0E088818F7788838881806888838881B9 -:102850008F7D888319BC1092130310920F0310927E -:1028600011031092100300EE10E0F80180818B7FBD -:10287000808388818160888342E060E080E00E94FC -:102880007713E1EEF0E080818E7F8083E2EEF0E06E -:10289000808181608083808188608083F80180816D -:1028A0008E7F8083888180618883DF91CF911F91A3 -:1028B0000F910895E8EDF0E080818F7E8083E7ED51 -:1028C000F0E080818160808384E082BF81E080933A -:1028D00012030C941714E8EDF0E080818E7F808362 -:1028E0001092E20008951092DA001092E10008952B -:1028F0001F920F920FB60F9211242F933F934F9375 -:102900005F936F937F938F939F93AF93BF93EF9357 -:10291000FF938091E10082FF0BC08091E20082FF73 -:1029200007C08091E1008B7F8093E1000E94DF1659 -:102930008091DA0080FF1FC08091D80080FF1BC00B -:102940008091DA008E7F8093DA008091D90080FF39 -:102950000DC080E189BD82E189BD09B400FEFDCFD3 -:1029600081E0809313030E94E31005C019BC10920C -:1029700013030E94F1108091E10080FF19C0809143 -:10298000E20080FF15C08091E2008E7F8093E2001C -:102990008091E20080618093E2008091D8008062A3 -:1029A0008093D80019BC85E0809313030E94F51032 -:1029B0008091E10084FF30C08091E20084FF2CC050 -:1029C00080E189BD82E189BD09B400FEFDCF80911F -:1029D000D8008F7D8093D8008091E1008F7E809316 -:1029E000E1008091E2008F7E8093E2008091E2001E -:1029F00081608093E20080910F03882311F084E0CE -:102A000007C08091E30087FD02C081E001C083E040 -:102A1000809313030E94F6108091E10083FF29C088 -:102A20008091E20083FF25C08091E100877F809341 -:102A3000E10082E08093130310920F038091E10084 -:102A40008E7F8093E1008091E2008E7F8093E20090 -:102A50008091E20080618093E20042E060E080E0EB -:102A60000E9477138091F00088608093F0000E94AC -:102A7000F410FF91EF91BF91AF919F918F917F9152 -:102A80006F915F914F913F912F910F900FBE0F90DB -:102A90001F9018951F920F920FB60F9211242F932B -:102AA0003F934F935F936F937F938F939F93AF93D6 -:102AB000BF93CF93DF93EF93FF93C091E900CF7063 -:102AC0008091EC00D82FD17080FDD0E81092E90001 -:102AD0008091F000877F8093F00078940E948E159B -:102AE0001092E9008091F00088608093F000CD2B77 -:102AF000CF70C093E900FF91EF91DF91CF91BF912B -:102B0000AF919F918F917F916F915F914F913F9185 -:102B10002F910F900FBE0F901F9018951F93CF937A -:102B2000DF93CDB7DEB7AA970FB6F894DEBF0FBE1E -:102B3000CDBFE4E1F3E088E08E0F9091F100919336 -:102B40008E13FBCF0E940C118091E80083FF1FC100 -:102B50008091140390911503492F50E04A3051059C -:102B600008F015C1FA01EA5AFF4F0C949B2C8038EB -:102B700081F0823809F00BC1809118038F70809327 -:102B8000E9008091EB0085FB882780F91092E9002D -:102B900006C0809110039091110391118260909171 -:102BA000E800977F9093E8008093F1001092F10085 -:102BB000C8C0282F2D7F09F0EAC0882319F0823081 -:102BC00061F0E5C080911603813009F0E0C09330D8 -:102BD00009F080E0809311032BC0809116038111CE -:102BE00027C0809118038F7009F4D1C08093E90049 -:102BF0002091EB0020FF1CC0933021F48091EB006A -:102C0000806214C09091EB0090619093EB0021E002 -:102C100030E0A90102C0440F551F8A95E2F74093A6 -:102C2000EA001092EA008091EB0088608093EB004C -:102C30001092E9008091E800877F86C08111A7C0CB -:102C4000109116031F778091E3008078812B809389 -:102C5000E3008091E800877F8093E8000E94AC1336 -:102C60008091E80080FFFCCF8091E3008068809332 -:102C7000E300111102C082E001C083E080931303DE -:102C800086C08058823008F082C0809116039091EF -:102C900017038C3D53E0950779F583E08A838AE238 -:102CA00089834FB7F894DE01139620E03EE051E2AD -:102CB000E32FF0E050935700E49120FF03C0E2952A -:102CC000EF703F5FEF708E2F90E0EA3010F0C79604 -:102CD00001C0C0968D939D932F5F243149F74FBF5C -:102CE0008091E800877F8093E8006AE270E0CE017F -:102CF00001960E94B31214C0AE014F5F5F4F609106 -:102D000018030E94FA11BC01009709F440C0909189 -:102D1000E800977F9093E80089819A810E941613BA -:102D20008091E8008B778093E80031C0803879F596 -:102D30008091E800877F8093E80080910F03809363 -:102D4000F1008091E8008E778093E8000E94AC1338 -:102D50001EC081111CC0909116039230C0F4809166 -:102D6000E800877F8093E80090930F030E94AC13E4 -:102D700080910F03811106C08091E30087FD02C09E -:102D800081E001C084E0809313030E94F8108091D9 -:102D9000E80083FF0AC08091E800877F8093E80005 -:102DA0008091EB0080628093EB00AA960FB6F894B6 -:102DB000DEBF0FBECDBFDF91CF911F910895089563 -:102DC000CF93809113038823A1F0C091E900CF70C5 -:102DD0009091EC00892F817090FD80E8C82B1092B3 -:102DE000E9008091E80083FD0E948E15CF70C093AA -:102DF000E900CF91089590939302809392020895F1 -:102E0000E0919202F0919302309721F00190F081CD -:102E1000E02D099480E00895E0919202F0919302F0 -:102E2000309721F00280F381E02D09940895E0911C -:102E30009202F0919302309721F00480F581E02D09 -:102E4000099408952091900230919102821793077E -:102E500071F09093910280939002E0919202F09130 -:102E60009302309721F00680F781E02D09940895B0 -:102E700020918E0230918F028217930771F0909308 -:102E80008F0280938E02E0919202F091930230972C -:102E900021F00084F185E02D0994089508950C94A3 -:102EA0004E170E94D5220E9426090E945B230C9493 -:102EB0000A285F926F927F928F929F92AF92BF92F9 -:102EC000CF92DF92EF92FF920F931F93CF93DF93F6 -:102ED00000D000D01F92CDB7DEB70E946B099DE9EC -:102EE000C92E92E0D92E03E010E0AA24A394B12CBD -:102EF000502E802F0E94E6094C01F60172906290DC -:102F00006F016826792661147104A1F4015011093A -:102F100078F78FEF89838A831B820E94DE2281608B -:102F2000782F9D838C8349815A816B818D810E948A -:102F3000091838C08091F20281FD0E94EF092BE050 -:102F400030E07501022E02C0EE0CFF1C0A94E2F77D -:102F5000C70186219721892B09F129835A828E2066 -:102F60009F2091E0892809F490E09B830E94DE2253 -:102F70008160782F9D838C8349815A816B818D81FB -:102F80000E940918000F111FF801EB56FD4F8081B8 -:102F90009181E826F926F182E08204C021503109AE -:102FA00080F6B4CF0E944225109194020E9400172F -:102FB0001817D1F00E940017809394020F900F9081 -:102FC0000F900F900F90DF91CF911F910F91FF9075 -:102FD000EF90DF90CF90BF90AF909F908F907F90B9 -:102FE0006F905F900C9410090F900F900F900F90BE -:102FF0000F90DF91CF911F910F91FF90EF90DF9095 -:10300000CF90BF90AF909F908F907F906F905F9088 -:103010000895CF93DF93CDB7DEB72B970FB6F89413 -:10302000DEBF0FBECDBF4F83588769877A878B87F6 -:10303000DE01119686E0FD0111928A95E9F785E09F -:10304000FE01379601900D928A95E1F749815A81E8 -:103050006B817C818D819E810E94801E2B960FB694 -:10306000F894DEBF0FBECDBFDF91CF910895CF930F -:10307000882309F4C2C0C82F823859F40E9400176F -:1030800081FDBBC089E30E945A210E94272289E367 -:103090000CC0833879F40E94001780FDAEC083E530 -:1030A0000E945A210E94272283E50E949C21CF91F1 -:1030B0000C942722843859F40E94001782FD9DC089 -:1030C00087E40E945A210E94272287E4EECF8CEFEA -:1030D0008C0F813A48F48C2F0E94722781118DC089 -:1030E0008C2F0E945A21E3CF80E28C0F883048F465 -:1030F000C77081E001C0880FCA95EAF70E94E021FD -:10310000D6CF8BE58C0F833078F4C53A29F0C63AD8 -:1031100031F083E890E005C081E890E002C082E8E9 -:1031200090E0CF910C94221788E58C0F833108F042 -:1031300064C0C83A39F1C93A41F1CA3A49F1CB3AC7 -:1031400051F1CC3A59F1CD3A61F1C03B69F1CE3A37 -:1031500071F1CF3A79F1C13B81F1C23B89F1C33BB7 -:1031600091F1C43B99F1C53BA1F1C63BA9F1C73B25 -:10317000B1F1C83BB9F1C93BC1F1CA3BC9F180E02B -:1031800090E038C082EE90E035C089EE90E032C029 -:103190008AEE90E02FC085EB90E02CC086EB90E0AB -:1031A00029C087EB90E026C08CEC90E023C08DEC2A -:1031B00090E020C083E891E01DC08AE891E01AC049 -:1031C00082E991E017C084E991E014C081E292E0C5 -:1031D00011C083E292E00EC084E292E00BC085E26F -:1031E00092E008C086E292E005C087E292E002C069 -:1031F0008AE292E0CF910C943817CF9108958823FA -:1032000009F44BC0823859F40E94001781FF45C071 -:1032100089E30E945A210E94272289E30CC0833847 -:1032200071F40E94001780FF38C083E50E945A2184 -:103230000E94272283E50E949C210C942722843837 -:1032400059F40E94001782FF28C087E40E945A2187 -:103250000E94272287E4EFCF9CEF980F913A58F312 -:1032600090E2980F983050F4877091E001C0990F68 -:103270008A95EAF7892F0E94E621DFCF9BE5980F18 -:10328000933020F480E090E00C942217885A833128 -:1032900020F480E090E00C9438170895882321F002 -:1032A0000E94E0210C9427220895882321F00E9497 -:1032B000E6210C94272208957F928F929F92AF92DD -:1032C000BF92CF92DF92EF92FF920F931F93CF9313 -:1032D000DF931F92CDB7DEB77C01C62E772EFC019F -:1032E000058102950F70128111110E94FD210E942B -:1032F0005321882379F0112369F080E28C0D883006 -:1033000048F082E00E943C210E94532191E0D82E97 -:10331000D92601C0D12CE72DE295EF70F0E0E05AFC -:10332000FF4F0C949B2C872D807F072D0F708823D7 -:1033300011F00295007F112389F0002309F499C14F -:1033400080E28C0D883020F4802F0E94E02103C0A1 -:10335000802F0E94F0210E9427228BC18C2D0E9479 -:10336000FF18002309F4C3C180E28C0D883020F4DB -:10337000802F0E94E62103C0802F0E94F6210E9428 -:103380002722B5C1872D807F972D9F70803211F441 -:10339000892F03C0892F8295807FCC2021F0F1E016 -:1033A000CF16A1F01DC0112339F0002319F101300F -:1033B00009F50E9410229BC1002319F0013009F485 -:1033C00096C189830E941322898110C1112321F0A3 -:1033D000063008F08CC10EC0053008F088C106C167 -:1033E000112359F0002331F0F701958190FF41C17D -:1033F0009F7095830E944E197AC1002309F4F6C08C -:103400003EC1872D86958695837090E0009719F0D0 -:10341000019761F06CC1112321F08C2D972D9370D1 -:1034200002C080E090E00E94221761C1112321F0C8 -:103430008C2D972D937002C080E090E00E94381789 -:1034400056C18C2D112319F00E944A2402C00E94FB -:10345000B2240E9437254BC1872D837009F052C0DA -:10346000111145C18C2D829586958770880F880F24 -:103470009C2D9F70892E912CA12CB12C082E04C05C -:10348000880C991CAA1CBB1C0A94D2F7C4FE14C059 -:103490000FE010E020E030E0B901A80104C0440FC3 -:1034A000551F661F771F8A95D2F7CB01BA01609529 -:1034B00070958095909503C060E070E0CB01272D5A -:1034C00026952695237030E02230310569F02330AF -:1034D000310589F0682979298A299B29213031050C -:1034E00071F00E94C81F03C1682979298A299B2984 -:1034F0000E94E41FFCC00E94C81FC501B4010E94C5 -:10350000AC1FF5C0112319F0872D817001C086957D -:10351000882309F4ECC08C2D829586958770880FDE -:10352000880F9C2D9F70892E912CA12CB12C082ED8 -:1035300004C0880C991CAA1CBB1C0A94D2F7C4FEB8 -:1035400014C00FE010E020E030E0B901A80104C091 -:10355000440F551F661F771F8A95D2F7CB01BA011A -:10356000609570958095909503C060E070E0CB0108 -:10357000272D269526952370422F50E04230510585 -:1035800069F04330510589F0682979298A299B29F6 -:103590004130510571F00E94A220A9C06829792903 -:1035A0008A299B290E94BE20A2C00E94A220C50198 -:1035B000B4010E9486209BC08C2D90E0FC01E05E4F -:1035C000F109E531F10508F050C0E059FF4F0C94C6 -:1035D0009B2C0C2D0F70872D8F71112321F00E94D1 -:1035E0001F20802F07CF0E944020802F0E94551956 -:1035F0007EC0112341F0053008F079C0872D8F710E -:103600000E94652074C0063008F071C0F7CF112306 -:1036100039F0872D8F710E941F2069C01123C9F3D3 -:10362000872D8F710E94402062C0112329F0872DC1 -:103630008F710E940A205BC00E94002058C0112395 -:1036400051F0172D1F71812F0E941F2063E0812FE1 -:103650000E9433214CC081E00E943C21023008F4DA -:1036600046C082E00E943C2142C0112331F0002379 -:1036700081F28C2D0E9437183AC0002389F28C2DDC -:103680000E94FF1834C0472D4F706C2DC7010E9457 -:10369000EE050E94241F2BC0111129C0472D4F7029 -:1036A00050E042305105B9F04CF44115510581F01C -:1036B00041305105E1F40E94322819C043305105D0 -:1036C00069F04430510599F48C2D0E9484280FC074 -:1036D0000E941B280CC00E944E2809C00E9461282D -:1036E00006C0472D4F706C2DC7010E94F105DD20EB -:1036F000F9F00E942F2180FD1BC0F70112820E9469 -:1037000029210E941F20C7010E94A71B0E94292176 -:103710000F90DF91CF911F910F91FF90EF90DF906D -:10372000CF90BF90AF909F908F907F900C9440204F -:103730000F90DF91CF911F910F91FF90EF90DF904D -:10374000CF90BF90AF909F908F907F9008950F93F0 -:103750001F93CF93DF93EC01888199812B813C816A -:10376000232BB9F09F3F11F48F3F99F0CE010E94B7 -:10377000ED03882371F0688179818A810E94252177 -:103780008C010E94DA200E94A11FB801CE010E9484 -:103790005C19DF91CF911F910F9108950E94FD2137 -:1037A0000E940D220E94D2210E9427220E94E82519 -:1037B0000E94372580E090E00E94221780E090E090 -:1037C0000C9438170E94ED210C94CE1B0E941A21F4 -:1037D000292F22952F7030E02C3031054CF42A30FF -:1037E00031056CF42250310922303105A8F407C0AC -:1037F0002C30310569F02F30310551F00DC0803F7C -:1038000069F018F4803E40F409C0843F29F406C0F2 -:1038100093FB882780F9089580E0089581E008955A -:10382000CF93DF9300D000D01F92CDB7DEB70F90BB -:103830000F900F900F900F90DF91CF910895CF933D -:10384000DF9300D000D000D0CDB7DEB726960FB6FC -:10385000F894DEBF0FBECDBFDF91CF9108951F93C7 -:10386000CF93DF93C0919D0216E080919E02C8170E -:1038700099F0D0E01C9FF0011D9FF00D1124E1563E -:10388000FD4F4081518162817381848195810E94C5 -:103890001F1C2196C770E9CFDF91CF911F9108952A -:1038A0004091CF025091D0026091D1027091D2022A -:1038B0008091D3029091D4020C941F1C8091D40269 -:1038C00082958F7009F054C08091D102882309F449 -:1038D0004FC080919D02A0919E026091CF02709195 -:1038E000D0024091D2025091D302B6E08A1709F477 -:1038F0003FC090E041155105C1F17F3F11F46F3F8A -:10390000A1F1B89FF001B99FF00D1124E156FD4FD0 -:10391000218172132AC02081621327C022812111C4 -:1039200024C0238134812417350710F42150310934 -:10393000241B350B283C3105C0F42091D4022F7094 -:1039400020612093D40226E0289FF001299FF00DEA -:103950001124EC55FD4F80818F70806180838FEC46 -:1039600092E00E94A71B0C942F1C01968770BECF7B -:103970000895CF92DF92EF92FF920F931F93CF9310 -:10398000DF93CDB7DEB762970FB6F894DEBF0FBEF8 -:10399000CDBF8C0185E0F801DE011D9601900D92EE -:1039A0008A95E1F7D8014C9111965C911197129686 -:1039B0006C9112971396CD90DC9014973091CF02B2 -:1039C0007091D0028091D2029091D302009709F4B5 -:1039D0006BC17F3F19F43F3F09F466C1E090D1020B -:1039E000EE2009F4C0C02091D402C816D90628F0F0 -:1039F000F601E81BF90BCF0104C0809590958C0D62 -:103A00009D1DFF24F394883C910578F0F12C207FD4 -:103A100009F0C6C07C2DD98AC88A89890E94101CE9 -:103A20008FEC92E00E94A71BB1C0822F807F09F02B -:103A300046C0751314C0341312C0611110C02F702A -:103A400020612093D4020E94501C8FEC92E00E94CF -:103A5000A71B8091D402D80115968C932EC0CD2837 -:103A600019F15F3F11F44F3FF9F0F62E61111CC0C0 -:103A700080919D0220919E0236E0821709F45AC07F -:103A800090E0389FF001399FF00D1124E156FD4F71 -:103A90007181571306C07081471303C07281711181 -:103AA00003C001968770E9CFF62E662309F418C18A -:103AB0008091D40281608093D402F12C11C17513DE -:103AC00008C0341306C0611104C08091D402D8012B -:103AD000C3C04D875E878D859E856A8B0E94E61BDD -:103AE0006A898823E1F16623D1F12091D402822FE3 -:103AF00082958F7090E0029774F08091CF02909140 -:103B0000D00298878F831986DB86CA862C87CE01E0 -:103B100007960E94A71B86E0F801AFECB2E0019087 -:103B20000D928A95E1F70E945E1C0E94501CFF24B2 -:103B3000F394D6C04D875E878D859E850E941A219D -:103B4000292F22952F7030E0223031050CF0BCC0B7 -:103B50009F7009F0B6C0805E883008F4C1C0C8010B -:103B60000E94A71BE4CFC816D90608F453C0F6017B -:103B7000E81BF90BCF01883C910508F450C0F12CEB -:103B80007C2DD98AC88A89890E94101CEFECF2E04A -:103B900086E0DF011D928A95E9F70E94501CA0C0C3 -:103BA000751314C0341312C0611110C08091D40277 -:103BB000F8018583C8010E94A71B86E0EFECF2E0C4 -:103BC000DF011D928A95E9F7FE2C8AC04D875E873A -:103BD0008D859E856A8B0E94E61B6A89882309F47D -:103BE000BECF662309F4BBCF2091D402822F8295E9 -:103BF0008F7090E002970CF48ECF8091CF0290915D -:103C0000D0029A8389831B82DD82CC822E83CE01EF -:103C100001967FCF809590958C0D9D1DACCFF62E93 -:103C2000662309F49CCF75132EC034132CC0209149 -:103C3000D40220FD1FC0822F82958F70D9F0D80149 -:103C400015962C9315978F3049F08F5F982F92958A -:103C5000907F822F8F70892B15968C93C8010E94BC -:103C6000A71B86E0F801AFECB2E001900D928A95B7 -:103C7000E1F793CF86E0F801AFECB2E001900D924E -:103C80008A95E1F72DC04D875E878D859E850E94C0 -:103C9000E61B811140CF8091D40281608093D402D1 -:103CA000C8010E94A71B1CC0662309F458CF4D878A -:103CB0005E878D859E850E94E61B882309F44FCF81 -:103CC0002ACF811148CF0CC0243031050CF047CFEA -:103CD0009F7009F440CFF8019581907F09F03BCFA8 -:103CE0008F2D62960FB6F894DEBF0FBECDBFDF9169 -:103CF000CF911F910F91FF90EF90DF90CF9008959B -:103D00001F93CF93DF93CDB7DEB72C970FB6F89400 -:103D1000DEBF0FBECDBF4F83588769877A878B87F9 -:103D20009C87CE0107960E94B91C882369F08F8179 -:103D300098852A853B85232BF1F19F3F09F063C0CD -:103D40008F3F09F060C037C086E0FE013796DE0184 -:103D5000119601900D928A95E1F76F817885EA8539 -:103D6000FB85309741F17F3F11F46F3F21F12091A6 -:103D70009E0230E0C90101968770992740919D020B -:103D800050E08417950709F447C069837A83FD835F -:103D9000EC8396E0929FD001939FB00D1124A15621 -:103DA000BD4FFE01319601900D929A95E1F78093F7 -:103DB0009E020E942F1C16E080919D0290919E020F -:103DC0008917C1F1189FC001112481569D4F0E948F -:103DD000B91C882379F1E0919D021E9FF001112406 -:103DE000E156FD4F408151816281738184819581CB -:103DF0000E941F1C80919D0290E001968770992778 -:103E000080939D02D9CF4F81588569857A858B85AE -:103E10009C850E941F1CCFCF0E94E21B10929E0225 -:103E200010929D02EFECF2E086E0DF011D928A9590 -:103E3000E9F7C1CF2C960FB6F894DEBF0FBECDBF09 -:103E4000DF91CF911F910895EF92FF920F931F93EF -:103E5000CF93DF938C01009709F46CC0F12CEE2412 -:103E6000E394E8012196F8018491843740F484308A -:103E700008F051C0813081F0823019F15BC0853784 -:103E800009F444C0A8F19CE7980F903708F052C09D -:103E90008F770E94FF1841C00E5F1F4FFE01C49133 -:103EA00080E28C0F883048F4C7708E2D01C0880FD7 -:103EB000CA95EAF70E94002214C08C2F0E9437187E -:103EC0002DC00E5F1F4FFE01C49180E28C0F883021 -:103ED00058F4C7708E2D01C0880FCA95EAF70E946A -:103EE00006220E9427221AC08C2F0E94FF1816C09B -:103EF0000E5F1F4FFE01C491CC2381F08FE99FE03C -:103F00000197F1F700C00000C150F6CF0E5F1F4FC0 -:103F1000FE01F49003C00E9437188E018F2D882374 -:103F200009F49FCFEFE9FFE03197F1F700C00000FF -:103F30008150F5CFDF91CF911F910F91FF90EF90BE -:103F4000089508956093D9027093DA028093DB029A -:103F50009093DC020C94CE1B0F931F930091D90217 -:103F60001091DA022091DB023091DC02DC01CB01FE -:103F7000802B912BA22BB32B8093D9029093DA0242 -:103F8000A093DB02B093DC021F910F910C94CE1B27 -:103F90000F931F930091D9021091DA022091DB0256 -:103FA0003091DC02DC01CB0180239123A223B323D7 -:103FB0008093D9029093DA02A093DB02B093DC02E3 -:103FC0001F910F910C94CE1B0F931F930091D90258 -:103FD0001091DA022091DB023091DC02DC01CB018E -:103FE00080279127A227B3278093D9029093DA02E2 -:103FF000A093DB02B093DC021F910F910C94CE1BB7 -:104000001092D5021092D6021092D7021092D802C6 -:104010000C94CE1B41E050E060E070E004C0440F1F -:10402000551F661F771F8A95D2F74093D50250938C -:10403000D6026093D7027093D8020C94CE1B41E055 -:1040400050E060E070E004C0440F551F661F771F0A -:104050008A95D2F78091D5029091D602A091D7028D -:10406000B091D802482B592B6A2B7B2B4093D50259 -:104070005093D6026093D7027093D8020C94CE1B53 -:1040800041E050E060E070E004C0440F551F661F3F -:10409000771F8A95D2F740955095609570958091DD -:1040A000D5029091D602A091D702B091D8024823B0 -:1040B00059236A237B234093D5025093D602609301 -:1040C000D7027093D8020C94CE1B41E050E060E020 -:1040D00070E004C0440F551F661F771F8A95D2F702 -:1040E0008091D5029091D602A091D702B091D802CA -:1040F000482759276A277B274093D5025093D60239 -:104100006093D7027093D8020C94CE1B0F931F9329 -:104110000091D5021091D6022091D7023091D80299 -:10412000DC01CB01802B912BA22BB32B8093D502EA -:104130009093D602A093D702B093D8021F910F910B -:104140000C94CE1B0F931F930091D5021091D602B1 -:104150002091D7023091D802DC01CB01802391233A -:10416000A223B3238093D5029093D602A093D702C3 -:10417000B093D8021F910F910C94CE1B0F931F93F5 -:104180000091D5021091D6022091D7023091D80229 -:10419000DC01CB0180279127A227B3278093D5028A -:1041A0009093D602A093D702B093D8021F910F919B -:1041B0000C94CE1B0895CF92DF92EF92FF920F9353 -:1041C0001F93CF93DF938C01C090D902D090DA0275 -:1041D000E090DB02F090DC028091D5029091D60253 -:1041E000A091D702B091D802C82AD92AEA2AFB2A7C -:1041F000CFE1D0E0D701C6010C2E04C0B695A7953B -:10420000979587950A94D2F780FF06C0B8018C2F46 -:104210000E947608019721F4219760F780E001C0A1 -:104220008C2FDF91CF911F910F91FF90EF90DF9036 -:10423000CF900895CF93DF93EC010E94DB20BE0165 -:104240000E947608DF91CF910895CB010E941A2138 -:1042500008958091DD0285958595859508958091D5 -:10426000DD028770089598E0899F90011124262B24 -:104270002093DD020C941F202091DD028095822383 -:104280008093DD02982F977069F430E0482F55270E -:1042900047FD50952417350729F085958595859517 -:1042A0000C94402008959091DD02977081E009F40C -:1042B00080E0089590911501992321F090911601C5 -:1042C000911109C02091170130911801F90132961E -:1042D0009FEF40E01FC0982F9695969596959F303A -:1042E00050F5E0911701F0911801E90FF11D877069 -:1042F00021E030E0A90102C0440F551F8A95E2F782 -:10430000CA019181892B818308959F3F39F04F5FC6 -:104310004E3041F051915813F8CF0DC05111F7CFE5 -:10432000942FF5CF9F3F39F0F901E90FF11D97FD6B -:10433000FA9582830895089590911501992321F0AB -:1043400090911601911109C0209117013091180127 -:10435000F9013296205F3F4F1FC0982F9695969592 -:1043600096959F30F0F4E0911701F0911801E90F54 -:10437000F11D877021E030E0A90102C0440F551FF4 -:104380008A95E2F7CA0180959181892381830895F6 -:104390003196E217F30729F090819813F9CF108234 -:1043A000F7CF089581E090E0E0911701F0911801B6 -:1043B000E80FF91F1082019680319105A9F7089541 -:1043C0009091F102892B8093F1020895809590914C -:1043D000F10289238093F10208951092F102089569 -:1043E0009091F002892B8093F0020895809590912E -:1043F000F00289238093F00208951092F00208954C -:104400009091EF02892B8093EF020895809590910F -:10441000EF0289238093EF0208951092EF0208952E -:104420008093DE0208951092DE02089580911701B4 -:1044300090911801FC0131969C01205F3F4F80E074 -:10444000919191118F5FE217F307D1F70895E091F1 -:104450001701F09118018091F1028083E09117011A -:10446000F091180190818091F002892B8083E09176 -:104470001701F091180190818091EF02892B8083C0 -:104480008091DE02882361F0E0911701F09118011C -:104490009081892B80830E94162281111092DE0266 -:1044A00080911701909118010C940C1720E000974F -:1044B00039F0AC0141505109842395232F5FF7CF88 -:1044C000822F089580911303843039F11092F30202 -:1044D00020E488E190E00FB6F894A89580936000FE -:1044E0000FBE2093600080E00E94F10280E00E94F5 -:1044F000100983B7817F846083BF83B7816083BFE6 -:104500007894889583B78E7F83BF88E10FB6F8943F -:1045100080936000109260000FBE08950895089582 -:1045200080E00E94F1020E948E220E946B090E948C -:104530008F220E94F00991E0811101C090E0892F43 -:1045400008950E94E21B80E00E94F1020E940A2866 -:104550000E9400170C9410091F920F920FB60F9231 -:1045600011248F939F93AF93BF938091F302811196 -:1045700013C08091F4029091F502A091F602B091DF -:10458000F7024196A11DB11D8093F4029093F502AC -:10459000A093F602B093F702BF91AF919F918F91D4 -:1045A0000F900FBE0F901F90189582E084BD93E08E -:1045B00095BD9AEF97BD80936E0008952FB7F8943C -:1045C0008091F4029091F502A091F602B091F70269 -:1045D0002FBF0895CF92DF92EF92FF920F931F9318 -:1045E0002FB7F8944091F4025091F5026091F602D1 -:1045F0007091F7022FBF6A017B01EE24FF248C012A -:1046000020E030E0C016D106E206F30610F4415077 -:1046100051099A01281B390BC9011F910F91FF9075 -:10462000EF90DF90CF9008951F920F920FB60F92E8 -:1046300011248F939F93AF93BF938091F402909135 -:10464000F502A091F602B091F7020196A11DB11DED -:104650008093F4029093F502A093F602B093F702D0 -:10466000BF91AF919F918F910F900FBE0F901F90B0 -:1046700018950E94FD13F8942FEF87EA91E62150D8 -:1046800080409040E1F700C0000087E090EBDC0143 -:1046900080931E0390931F03A0932003B0932103E4 -:1046A0009CE088E10FB6F894A895809360000FBE57 -:1046B00090936000FFCF0E949A23811102C00E9454 -:1046C00076230E94A5238093F2020E94AD2380935B -:1046D0001C0387FB882780F9809316010E94A92379 -:1046E000682F70E080E090E00C94A21F6DEE7EEFEA -:1046F00080E090E00E94C12C60E082E090E00E94A7 -:10470000AF2C60E083E090E00E94AF2C60E084E09A -:1047100090E00E94AF2C60E085E090E00E94AF2C1A -:1047200060E086E090E00E94AF2C6FEF87E090E0C1 -:104730000C94AF2C80E090E00E94A92C21E08D3EEB -:104740009E4F09F020E0822F089582E090E00C94C3 -:10475000A12C83E090E00C94A12C84E090E00C94D8 -:10476000A12C682F84E090E00C94AF2C86E090E0C0 -:104770000C94A12C682F86E090E00C94AF2C87E07D -:1047800090E00C94A12C682F87E090E00C94AF2C63 -:104790008091FA0280FF0BC060911C0185E0689F48 -:1047A000B001112475956795759567952BC081FFAC -:1047B00009C060911C0185E0689FB00111247595C6 -:1047C000679520C082FF07C060911C0185E0689F4B -:1047D000B001112417C09091FB029923D1F0609190 -:1047E0001B01961788F720911C0185E0289F9001F6 -:1047F0001124929FA001939F500D112470E0CA01D3 -:104800000E94872C6038710540F46115710539F0FC -:1048100002C065E070E0862F08958FE7089581E07B -:1048200008958091FA0280FF08C060911A0170E03B -:10483000759567957595679521C081FF06C0609154 -:104840001A0170E07595679519C082FF04C06091E8 -:104850001A0170E010C09091FB029923C1F06091A1 -:1048600019019617A0F780911A01899FC0011124A0 -:1048700070E00E94872C6038710528F4611571057D -:1048800021F0862F08958FE7089581E0089561E073 -:1048900070E0F4CF803F21F40E94C823819504C0CA -:1048A000813F29F40E94C8238093FE020895823F2D -:1048B00021F40E94C823819504C0833F29F40E94FB -:1048C000C8238093FD020895893F19F40E941124A2 -:1048D00005C08A3F31F40E94112481958093FF0224 -:1048E00008958B3F21F40E941124819504C08C3FD0 -:1048F00029F40E941124809300030895843F21F439 -:104900008091FC02816017C0853F21F48091FC02F8 -:10491000826011C0863F21F48091FC0284600BC04C -:10492000873F21F48091FC02886005C0883F31F404 -:104930008091FC0280618093FC0208958D3F21F4F8 -:104940008091FA0281600BC08E3F21F48091FA02BF -:10495000826005C08F3F29F48091FA0284608093C1 -:10496000FA020895803F39F48091FE0287FF6CC0FF -:104970001092FE0269C0813F29F48091FE02181650 -:10498000BCF362C09091FD02823F29F497FF5CC0A6 -:104990001092FD0259C0833F19F41916CCF354C08C -:1049A000893F41F48091FF0218160CF04DC010921F -:1049B000FF024AC08A3F29F48091FF0287FF44C06A -:1049C000F6CF8B3F39F48091000387FF3DC01092F2 -:1049D00000033AC08C3F29F4809100031816BCF301 -:1049E00033C0843F21F48091FC028E7F17C0853F45 -:1049F00021F48091FC028D7F11C0863F21F48091CB -:104A0000FC028B7F0BC0873F21F48091FC02877FE3 -:104A100005C0883F31F48091FC028F7E8093FC02B8 -:104A200013C08D3F21F48091FA028E7F0BC08E3F20 -:104A300021F48091FA028D7F05C08F3F29F4809187 -:104A4000FA028B7F8093FA028091FD0281110EC0E1 -:104A50008091FE0281110AC08091FF02811106C07F -:104A600080910003811102C01092FB0208958CEF27 -:104A700092E00E9417170E94DE229093F902809321 -:104A8000F80208951F93CF93DF938091F8029091DD -:104A9000F9020E94EA22AC019091FB02992321F0D5 -:104AA00020911D0130E006C020911E018AE0289F60 -:104AB000900111244217530708F486C08091FD022B -:104AC000C091FE02D091FF0210910003811107C036 -:104AD000C11176C0D11174C0111172C075C09F3F51 -:104AE00019F09F5F9093FB02181624F40E94C823CC -:104AF0008093FD028091FD0287FF05C00E94C823BC -:104B000081958093FD021C1624F40E94C823809393 -:104B1000FE028091FE0287FF05C00E94C823819596 -:104B20008093FE026091FD02662339F1C091FE027E -:104B3000CC2319F1772767FD7095872F972F0E9457 -:104B4000A92923E333E343E35FE30E94B92A0E94E8 -:104B500076296093FD026C2F772767FD7095872F6C -:104B6000972F0E94A92923E333E343E35FE30E94E5 -:104B7000B92A0E9476296093FE021D1624F40E9431 -:104B800011248093FF028091FF0287FF05C00E94DD -:104B9000112481958093FF02111624F40E941124A0 -:104BA000809300038091000387FF05C00E941124B9 -:104BB000819580930003DF91CF911F910C9437254D -:104BC0009F3F09F08ECF96CFDF91CF911F9108952F -:104BD000ECEFF2E085E0DF011D928A95E9F7109293 -:104BE000FB021092FA020895833081F128F481309B -:104BF00059F08230D1F00895853009F449C0B8F1F8 -:104C0000863009F456C0089580911E01262F30E0A9 -:104C1000280F311D2F3F310524F4680F60931E01CA -:104C200008958FEF80931E01089580911D01262F16 -:104C300030E0280F311D2F3F310524F4680F6093B9 -:104C40001D0108958FEF80931D01089580911C012F -:104C5000262F30E0280F311D2F3F310524F4680F37 -:104C600060931C0108958FEF80931C01089580913B -:104C70001B01262F30E0280F311D2F3F310524F472 -:104C8000680F60931B0108958FEF80931B010895B7 -:104C900080911A01262F30E0280F311D2F3F31055A -:104CA00024F4680F60931A0108958FEF80931A011E -:104CB000089580911901262F30E0280F311D2F3FD4 -:104CC000310524F4680F6093190108958FEF8093E4 -:104CD00019010895833011F128F4813049F08230B0 -:104CE00091F00895853081F120F18630C1F1089569 -:104CF00080911E01681720F4861B80931E01089581 -:104D000010921E01089580911D01681720F4861BE2 -:104D100080931D01089510921D01089580911C013A -:104D2000681720F4861B80931C01089510921C01C3 -:104D3000089580911B01681720F4861B80931B0146 -:104D4000089510921B01089580911A01681720F4AC -:104D5000861B80931A01089510921A01089580917C -:104D60001901681720F4861B809319010895109289 -:104D7000190108950F931F93873208F048C08E31B0 -:104D800008F08DC0803109F477C008F5873009F448 -:104D900061C068F4863009F09DC08091F202817F85 -:104DA0008E7F8093F20281E08093020394C08B3067 -:104DB00009F489C08E3009F08DC08091F20282FB27 -:104DC000222720F991E0922790FB82F95EC086317C -:104DD00009F479C060F4813109F07CC00E94E21BC3 -:104DE0009091160181E08927809316016CC089316A -:104DF00009F469C08B3109F06DC08091F20281FB2A -:104E0000222720F991E0922790FB81F93EC0883358 -:104E100009F459C050F4893209F457C0853309F4B4 -:104E200054C0873209F451C055C0833409F44DC0D1 -:104E300028F48A3308F44EC0895332C0883409F00C -:104E400049C00E94E21B0E94200A0E94E4030E94C3 -:104E5000392339C09091F202892F8095817080FBAF -:104E600090F929F0966098609093F20234C0997F8F -:104E7000977F9093F20227C08091F20283FB222752 -:104E800020F991E0922790FB83F98093F202992315 -:104E9000D1F08091F20281608093F20214C08D51B2 -:104EA00041E050E060E070E08A019B0104C0000F27 -:104EB000111F221F331F8A95D2F7C901B8010E9422 -:104EC000A21F0E94E21B81E006C061E070E080E06A -:104ED00090E0F5CF80E01F910F91089580E0089554 -:104EE00080E00895CF93C82F80910203813069F04C -:104EF00018F08230C9F184C0E0911701F0911801D7 -:104F00008081823209F07EC007C0E0911701F091E4 -:104F100018018081823261F48C2F0E946E278111EA -:104F200004C08C2F0E94BA261DC081E090E01AC0F8 -:104F30008C2F0E947027811114C0C43179F048F47D -:104F4000CB3079F0C03109F061C082E08093020378 -:104F500008C0C93219F0C83321F058C010920203BA -:104F600055C081E0817054C0C93291F120F5C4313F -:104F700079F1B0F4C73009F047C08EE180931E018B -:104F800082E380931D018AE080931C0184E1809379 -:104F90001B0188E080931A0188E28093190134C0D4 -:104FA000CE51C63088F5EC2FF0E0EA54FE4F8081F8 -:104FB0008093010329C0CE34E9F020F4CB3421F5ED -:104FC0006AE013C0C13579F0C235F1F461E00DC07B -:104FD00080910103882319F01092010315C081E02C -:104FE0008093020315C061E006C0809101030E9416 -:104FF000F4250AC06AE0809101030E946A2604C079 -:105000001092020380E004C081E002C080E0AACFD9 -:10501000CF9108950E949A23811102C00E947623A5 -:105020000E94B62380931D0380FF02C0869501C0B5 -:1050300080E00C94F10280911D03982F9695292F02 -:1050400030E0233031054CF49F5F990F8170892B3C -:10505000816080931D030E94BA2380911D03869571 -:105060000C94F10280911D03982F969591F0915820 -:10507000990F8170892B80931D038E7F91E009F435 -:1050800090E080911D0390FB80F980931D030E94A6 -:10509000BA2380911D0386950C94F10280911D0323 -:1050A000982F909590FB80F980931D030E94BA235E -:1050B00080911D0380FF02C0869501C080E00C94A2 -:1050C000F10290911D03892F86958F5F8F779170E4 -:1050D000843028F4880F892B80931D0302C090939D -:1050E0001D0380911D038E7F91E009F490E0809173 -:1050F0001D0390FB80F980931D030E94BA238091C9 -:105100001D0386950C94F10220911D03922F969514 -:105110008927982F990F822F8170892B80931D03E7 -:105120008E7F91E009F490E080911D0390FB80F95F -:1051300080931D030E94BA2380911D0386950C94D1 -:10514000F10280911D03869508955058BB27AA2728 -:105150000ED0D1C1C2D130F0C7D120F031F49F3F81 -:1051600011F41EF4B7C10EF4E095E7FB9FC1E92FDF -:10517000D3D180F3BA17620773078407950718F035 -:1051800071F49EF5EBC10EF4E0950B2EBA2FA02D15 -:105190000B01B90190010C01CA01A0011124FF27E4 -:1051A000591B99F0593F50F4503E68F11A16F040DF -:1051B000A22F232F342F4427585FF3CF46953795DE -:1051C0002795A795F0405395C9F77EF41F16BA0BA3 -:1051D000620B730B840BBAF09150A1F0FF0FBB1F51 -:1051E000661F771F881FC2F70EC0BA0F621F731F9A -:1051F000841F48F4879577956795B795F7959E3FF7 -:1052000008F0B3CF9395880F08F09927EE0F979584 -:105210008795089527D108F481E008950CD06BC1DB -:1052200063D140F05AD130F021F45F3F19F03EC114 -:10523000511195C14FC170D198F39923C9F35523EA -:10524000B1F3951B550BBB27AA2762177307840779 -:1052500038F09F5F5F4F220F331F441FAA1FA9F32F -:1052600033D00E2E3AF0E0E830D091505040E69521 -:10527000001CCAF729D0FE2F27D0660F771F881F82 -:10528000BB1F261737074807AB07B0E809F0BB0B71 -:10529000802DBF01FF2793585F4F2AF09E3F510595 -:1052A00068F004C15CC15F3FECF3983EDCF3869587 -:1052B00077956795B795F7959F5FC9F7880F911D0B -:1052C0009695879597F90895E1E0660F771F881FF7 -:1052D000BB1F621773078407BA0720F0621B730BAA -:1052E000840BBA0BEE1F88F7E095089504D06894FC -:1052F000B11135C1089518D188F09F5790F0B92F9A -:105300009927B751A0F0D1F0660F771F881F991F1A -:105310001AF0BA95C9F712C0B13081F01FD1B1E0CF -:1053200008951CC1672F782F8827B85F39F0B93FDF -:10533000CCF3869577956795B395D9F73EF490951C -:105340008095709561957F4F8F4F9F4F0895E8949A -:1053500009C097FB3EF490958095709561957F4FBD -:105360008F4F9F4F9923A9F0F92F96E9BB2793956B -:10537000F695879577956795B795F111F8CFFAF47B -:10538000BB0F11F460FF1BC06F5F7F4F8F4F9F4FAC -:1053900016C0882311F096E911C0772321F09EE80A -:1053A000872F762F05C0662371F096E8862F70E070 -:1053B00060E02AF09A95660F771F881FDAF7880F4A -:1053C0009695879597F9089588D018F011F08CD0AC -:1053D00038F480C0C4C0E92F9FD0B0F35523C9F37F -:1053E000E7FB6217730784079507A8F199F3E92F84 -:1053F000FF2788232AF03197660F771F881FDAF777 -:10540000952F5527442332F091505040220F331FDF -:10541000441FD2F7BB27E91BF50B621B730B840BF0 -:10542000B109C1F222F4620F731F841FB11D3197BD -:105430002AF0660F771F881FBB1FEFCF9150504097 -:105440005AF041F0882332F0660F771F881F915081 -:105450005040C1F7939530C08695779567959F5FCB -:10546000D9F7F8CF990F0008550FAA0BE0E8FEEF27 -:1054700016161706E807F907C0F012161306E40718 -:10548000F50798F0621B730B840B950B39F40A2611 -:1054900061F0232B242B252B21F408950A2609F4EF -:1054A000A140A6958FEF811D811D089597F99F67F3 -:1054B00080E870E060E008959F3F31F0915020F463 -:1054C000879577956795B795880F911D96958795E0 -:1054D00097F908959FEF80EC089500240A9416161A -:1054E000170618060906089500240A9412161306D2 -:1054F000140605060895092E0394000C11F4882360 -:1055000052F0BB0F40F4BF2B11F460FF04C06F5F7B -:105510007F4F8F4F9F4F089557FD9058440F551F51 -:1055200059F05F3F71F04795880F97FB991F61F025 -:105530009F3F79F087950895121613061406551F9C -:10554000F2CF4695F1DF08C0161617061806991F08 -:10555000F1CF86957105610508940895E894BB27FD -:1055600066277727CB0197F908957CDF08F48FEF42 -:1055700008950BD0C0CFB1DF28F0B6DF18F0952327 -:1055800009F094CFA7CF1124EACFC6DFA0F3959FEF -:10559000D1F3950F50E0551F629FF001729FBB271A -:1055A000F00DB11D639FAA27F00DB11DAA1F649FC6 -:1055B0006627B00DA11D661F829F2227B00DA11D79 -:1055C000621F739FB00DA11D621F839FA00D611DFF -:1055D000221F749F3327A00D611D231F849F600D20 -:1055E000211D822F762F6A2F11249F5750408AF059 -:1055F000E1F088234AF0EE0FFF1FBB1F661F771FE5 -:10560000881F91505040A9F79E3F510570F04ECF32 -:10561000A6CF5F3FECF3983EDCF3869577956795D0 -:10562000B795F795E7959F5FC1F7FE2B880F911D02 -:105630009695879597F90895FA01EE0FFF1F30961A -:105640002105310599F16115710561F48038BFE3D9 -:105650009B0749F168949038810561F08038BFEF6D -:105660009B0741F0992342F5FF3FE10531052105F4 -:1056700011F1E8940894E795D901AA2329F4AB2FF6 -:10568000BE2FF85FD0F310C0FF5F70F4A695E0F76F -:10569000F73950F019F0FF3A38F49F779F930CD008 -:1056A0000F9007FC905808953EF014CF60E070E032 -:1056B00080E89FE308954FE79F775F934F933F9371 -:1056C0002F939ED02F913F914F915F9152DF05C054 -:1056D00019F40EF0EBCE42CFFDCE26DFC8F396389C -:1056E000C0F707F80F92E8942BE33AEA48EB5FE73C -:1056F0004EDF0F920F920F924DB75EB70F92C0D050 -:10570000EAE0F1E016D04F915F91EF91FF91E595BE -:10571000EE1FFF1F49F0FE57E0684427EE0F441FBD -:10572000FA95E1F74195550B32D00F9007FE26C050 -:105730000895DF93CF931F930F93FF92EF92DF9221 -:105740007B018C01689405C0DA2EEF011EDFFE019B -:10575000E894A5912591359145915591AEF3EF01CE -:1057600006DDFE019701A801DA9479F7DF90EF904A -:10577000FF900F911F91CF91DF9108959B01AC0194 -:1057800060E070E080E89FE349CD90CE95CECCDE1E -:10579000E8F39923D9F3940F511DBBF39150504076 -:1057A00094F059F0882332F0660F771F881F9150CC -:1057B0005040C1F79E3F510544F7880F911D9695C3 -:1057C000879597F908955F3FACF0983E9CF0BB2712 -:1057D000869577956795B79508F4B1609395C1F76D -:1057E000BB0F58F711F460FFE8CF6F5F7F4F8F4F0B -:1057F0009F4FE3CFB4CE0EF05FCE6CCE689456CE02 -:1058000093DEC8F39923D1F3C6F3DF93CF931F93AD -:105810000F93FF92C92FDD2788232AF02197660F67 -:10582000771F881FDAF720E030E040E85FEB9FE366 -:10583000883920F0803E30F021968F7787DCE2E3D4 -:10584000F1E003C083DCEFE5F1E073DF8B01BE0123 -:10585000EC01FB2E6F5771097595771F880B990B1B -:1058600078DD28E132E741E35FE38FDEAF2D980179 -:10587000AE01FF900F911F91CF91DF9178DC3BCE6D -:10588000FA01DC01AA0FBB1F9B01AC01BF5728F432 -:1058900022273327442750781FC0B75188F4AB2FF5 -:1058A0000024469537952795011CA395D2F3002037 -:1058B00069F0220F331F441FB395DAF30DD045CCA6 -:1058C00061307105A0E88A07B94630F49B01AC014C -:1058D0006627772788279078309621F020833183B8 -:1058E000428353830895AA1BBB1B51E107C0AA1F23 -:1058F000BB1FA617B70710F0A61BB70B881F991F71 -:105900005A95A9F780959095BC01CD01089597FB14 -:10591000072E16F4009407D077FD09D00E94732C4F -:1059200007FC05D03EF4909581959F4F08957095A2 -:1059300061957F4F0895EE0FFF1F0590F491E02DC4 -:105940000994F999FECF92BD81BDF89A992780B547 -:105950000895A8E1B0E042E050E00C94C92C262F55 -:10596000F999FECF92BD81BDF89A019700B4021655 -:1059700039F01FBA20BD0FB6F894FA9AF99A0FBE03 -:1059800008950196272F0E94B02C0C94AF2CDC01B7 -:10599000CB01FC01F999FECF06C0F2BDE1BDF89A3A -:1059A000319600B40D9241505040B8F70895F894E4 -:0259B000FFCF27 -:1059B200640007000CFF0000003F64041092106FA7 -:1059C200103B1007100101DF022808140A321E00E2 -:1059D20002040507090B0C0E1011131517181A1CD7 -:1059E2001D1F2123242628292B2D2F303234353711 -:1059F200393B1F0F03764F5F6F7F4969437909591E -:105A020053633149803F5D8B803FF8BF803FCAE1DD -:105A1200803F73ED803FCAE1803FF8BF803F5D8BDE -:105A2200803F3149803F0000803FF16D7F3F75EA42 -:105A32007E3F4C827E3F833F7E3F84287E3F833F72 -:105A42007E3F4C827E3F75EA7E3FF16D7F3F0000D4 -:105A5200803F3F4D3639ED04A0046A043104C4038B -:105A6200DD03F6030F04010203040506070809001B -:00000001FF diff --git a/keyboards/planck/keymaps/mollat/compiled.hex b/keyboards/planck/keymaps/mollat/compiled.hex deleted file mode 100644 index 549b7a8df..000000000 --- a/keyboards/planck/keymaps/mollat/compiled.hex +++ /dev/null @@ -1,1495 +0,0 @@ -:100000000C94A5030C94E9030C94E9030C94E90304 -:100010000C94E9030C94E9030C94E9030C94E903B0 -:100020000C94E9030C94E9030C94E9150C94BB16A9 -:100030000C941D240C94E9030C94E9030C94E9033B -:100040000C94E9030C944B040C94E9030C94E9031D -:100050000C94E9030C9485240C94E9030C94E903B3 -:100060000C94E9030C94E9030C94E9030C94E90360 -:100070000C94E9030C94E9030C94E9030C94E90350 -:100080000C945E0C0C94E9030C94E9030C94E903C2 -:100090000C94E9030C94E9030C94E9030C94E90330 -:1000A0000C94E9030C94E9030C94E903A704AD0450 -:1000B000B304B904BF04C404C904CE04D304D804EF -:1000C000DD04E204E704EC04F104F60428174A17FF -:1000D00038184A1738188F17B217381807181A180F -:1000E000041B041B331B331B721B921BE81CE81CF4 -:1000F0009D1BE81C4D1C4D1CB41CBD1CE81CE21CC7 -:100100005A1C5A1C5A1C5A1C5A1C5A1C5A1C5A1C3F -:100110005A1C5A1C5A1C5A1C5A1C5A1C5A1C5A1C2F -:100120006A1C781C7F1C861C901C07634236B79B98 -:10013000D8A71A39685618AEBAAB558C1D3CB7CC47 -:100140005763BD6DEDFD753EF6177231BF000000BF -:10015000803F08000000BE922449123EABAAAA2AA2 -:10016000BECDCCCC4C3E00000080BEABAAAAAA3EBD -:1001700000000000BF000000803F000000000008F9 -:100180004178D3BB4387D1133D190E3CC3BD428296 -:10019000AD2B3E68EC8276BED98FE1A93E4C80EF54 -:1001A000FFBE01C4FF7F3F00000000000000000010 -:1001B00000000000000000010204060A0F17202CB6 -:1001C0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9B2 -:1001D000DAC7B39D87715D4A3A2C20170F0A0604CF -:1001E00002010000000000000000000001E0010525 -:1001F000020502E0000129022901E1013302330274 -:10020000E10114021401280228000129022901E158 -:100210000133023302E1011A021A01280228000107 -:10022000E00105020502E0010602060001E0010509 -:10023000020502E0011302130001E00105020502BC -:10024000E0011102110001E00105020502E0010FC9 -:10025000020F0001E00105020502E0012502250070 -:1002600001E00105020502E0012402240001E00191 -:1002700005020502E0012302230001E00105020559 -:1002800002E0012202220001E00105020502E00174 -:100290002102210001E00105020502E00120022007 -:1002A0000001E00105020502E0011F021F0001E05C -:1002B0000105020502E0011E021E0001E001050227 -:1002C0000502E001270227000000000000000000F6 -:1002D00000000C30294614001A0008001500170011 -:1002E0001C0018000C00120013002A002B4304000D -:1002F0001600070009000A000B000D000E000F0099 -:1003000033003400E1001D001B0006001900050049 -:10031000110010003600370038002872000000007D -:10032000E300E200E0002C442C410252E600E7002A -:100330000000000035001E021F02200221022202DE -:10034000230224022502260227022D0000001E009F -:100350001F00200021002200230024002500260089 -:1003600027002E0000000000000000000000000038 -:1003700000000000360037003100310200000000AC -:10038000000000000000000001000000000000006C -:100390000000000035020000000000000000000026 -:1003A0000000000000002F0230022D0200003A0081 -:1003B0003B003C003D003E003F00400041002F005C -:1003C00030002E020000000000000000000042008B -:1003D0004300440045000000000000000000000051 -:1003E000000000000000000000000100000000000C -:1003F000000000000000000000004D0000000000B0 -:1004000000000000490000004C001C140100000026 -:10041000161400004E0022145000510052004F00EC -:100420001314141400004A000000000000004B00E8 -:100430000000000000000000000028000050000044 -:100440000000000000002C002C0000000000000054 -:100450000000000000000E300D3000000000000021 -:1004600000000000000000000B30000000300130F0 -:1004700002300330043005300630073008300930D0 -:10048000000000000000000000000C300000000030 -:100490000A30000000000000000000000000000022 -:1004A000000000000000010000000000000000004B -:1004B000000000000000000000000000000000003C -:1004C000000000000000000000000000000000002C -:1004D000000000000000000000000000000000001C -:1004E000000000000000000000000000000000000C -:1004F00000000000000000000000000000000000FC -:1005000000000000000000000000000000000000EB -:1005100000000000010000000000000000000000DA -:1005200000000000000000000000000000000000CB -:1005300000000000FA000000F200F100F000F300FB -:100540000000000000000000000000000000F900B2 -:10055000000000000000000000000000000000009B -:100560000000FF00FE00FD00F400F600F5000000B2 -:1005700000000000280354006800650020005000BF -:100580006C0061006E0063006B0020004B00650092 -:10059000790062006F0061007200640000002C03AB -:1005A0004F007200740068006F006C0069006E00FC -:1005B00065006100720020004B0065007900620058 -:1005C0006F006100720064007300000004030904FE -:1005D00009026D00040100A0FA09040000010301F2 -:1005E0000100092111010001223F000705810308D4 -:1005F000000A0904010001030102000921110100A0 -:1006000001224D000705820308000A0904020001C7 -:1006100003000000092111010001223600070583B3 -:100620000308000A09040300010300000009211166 -:100630000100012239000705840310000112011096 -:100640000100000008EDFE606001000102000105EC -:10065000010906A101050719E029E7150025019503 -:100660000875018102050819012905950575019193 -:1006700002950175039101050719002977150025D9 -:1006800001957875018102C005010980A1018502EB -:1006900016010026B7001A01002AB700751095014F -:1006A0008100C0050C0901A1018503160100269CEB -:1006B000021A01002A9C02751095018100C00501F3 -:1006C0000902A1010901A100050919012905150067 -:1006D00025019505750181029501750381010501CB -:1006E000093009311581257F950275088106093881 -:1006F0001581257F950175088106050C0A380215BC -:1007000081257F950175088106C0C005010906A1F4 -:1007100001050719E029E7150025019508750181F4 -:1007200002950175088101050819012905950575CE -:100730000191029501750391010507190029FF1523 -:100740000025FF950675088100C011241FBECFEF5C -:10075000DAE0DEBFCDBF04B603FE24C080911E03E5 -:1007600090911F03A0912003B09121038730904BFB -:10077000A740B04BB9F410921E0310921F031092C1 -:1007800020031092210314BE84B7877F84BF88E1C1 -:100790000FB6F89480936000109260000FBEE0E006 -:1007A000F8E3099511E0A0E0B1E0E4E9FCE502C05E -:1007B00005900D92A03CB107D9F713E0A0ECB1E091 -:1007C00001C01D92AE31B107E1F70E942F130C94C6 -:1007D000482E0C9400000895089581E0089508952E -:1007E0000C94EC030C94ED030C94EF030E94122A7A -:1007F00023E030E0281B3109220F2093C401089523 -:10080000282F2F9880918000211108C0877F809326 -:10081000800010928D0010928C001BC08860809325 -:100820008000233019F48FEF9FEF0FC083E090E03A -:10083000821B9109880F991F2FEF3FEFA90102C07A -:10084000569547958A95E2F7CA0190938D0080935B -:100850008C000C94F6030E94F60384E08093C3019D -:100860001092C0010895279A2F988FEF9FEF9093D1 -:100870008700809386008AE08093800089E18093DE -:1008800081000E947B290C942B040E9433046E9AF1 -:10089000769A0C94EB031F920F920FB60F921124CD -:1008A0002F933F938F939F93EF93FF93E091C10119 -:1008B000F091C201CF0101969093C2018093C101D2 -:1008C0000090C30102C0F695E7950A94E2F7EF7332 -:1008D0008091C001823019F4E03251F404C08130BB -:1008E00039F4EF3329F480916F008D7F80936F008E -:1008F000F0E0E455FE4FE49121E031E0E29FC001D9 -:10090000E39F900D11240090C40102C09695879535 -:100910000A94E2F790938D0080938C00FF91EF9101 -:100920009F918F913F912F910F900FBE0F901F902D -:100930001895462F50E04031510508F05CC0FA018F -:10094000EA5AFF4FDC0112968C910C940C2E8823EE -:1009500009F451C08BEB92E00895882309F44BC051 -:100960008EEA92E00895882309F445C081EA92E076 -:100970000895882309F43FC084E992E0089588230C -:10098000D1F187E892E008958823A9F18AE792E0FF -:100990000895882381F18DE692E00895882359F126 -:1009A00080E692E00895882331F183E592E008958E -:1009B000882309F186E492E008958823E1F089E331 -:1009C00092E008958823B9F08CE292E0089588239C -:1009D00091F08FE192E00895882369F08AE092E037 -:1009E0000895882341F085EF91E00895882319F058 -:1009F0008CEE91E0089580E090E0089581E0089504 -:100A00000C94FE0408950C944504809115028823EB -:100A100009F448C08091D1019091D201009779F4F6 -:100A20000E944F249093D2018093D1018091D301F1 -:100A300090E0009771F48091D40190E00AC00E9488 -:100A40005B2420910001309101012817390740F300 -:100A500029C00197880F991F880F991FFC01EB523D -:100A6000FE4F60817181828193810E94C40BE0916D -:100A7000D30184E0E89FF0011124EB52FE4F608126 -:100A80007181828193814FE050E00E947C0F8091C0 -:100A9000D30190E001966091D40170E00E94F82D9E -:100AA0008093D3010C94F003109217020C94910BD5 -:100AB0000895089581E0809317020C9459050895D4 -:100AC00008958F929F92AF92BF92EF92FF920F93F1 -:100AD0001F93CF93DF93CDB7DEB7A3970FB6F894EC -:100AE000DEBF0FBECDBF7C01FC0100811181C801BA -:100AF0000E944C22B8010E9463078C01B7010E943A -:100B00000005882309F4CCC10032F0E51F0741F449 -:100B1000F7018281882309F458C00E94E00FC0C108 -:100B20000132F0E51F0741F4F7018281882309F4BF -:100B30004CC00E94E90FB4C10232F0E51F0751F426 -:100B4000F7018281882309F440C00E94DC0F8111E3 -:100B5000F0CFE3CF0332F0E51F0739F4F7018281CC -:100B6000882399F10E945A059BC10432F0E51F07C2 -:100B700039F4F7018281882341F10E94540590C124 -:100B80000532F0E51F0749F4F70182818823E9F077 -:100B9000809117028111F1CFE5CF0632F0E51F07F2 -:100BA00039F4F7018281882381F00E94F00F0AC096 -:100BB0000732F0E51F0749F4F7018281882329F005 -:100BC0000E94FB0F0E9460056BC18091170281118A -:100BD00005C0F70182818111CFC018C1003E110507 -:100BE00079F4F7018281882309F44DC00E94910BAA -:100BF00081E080931602109215021092D40150C128 -:100C0000023E110559F4F70182818823E1F10E9427 -:100C1000910B109216021092150242C1033E11056B -:100C200091F4F7018281882371F10E94910B109257 -:100C3000160281E0809315021092D3011092D20126 -:100C40001092D1012DC10235110559F4F7018281AD -:100C5000882309F425C180910001909101010A9730 -:100C60000DC00135110579F4F7018281882309F45B -:100C700017C180910001909101010A9690930101A2 -:100C8000809300010DC14091040183E2EFE1F1E0A6 -:100C9000DE01119601900D928A95E1F7F7018081AE -:100CA00021E030E02C0F3D1F280F311DC90120919C -:100CB000020130910301FC01E20FF31F60817727ED -:100CC00067FD7095640F711D882777FD8095982FBB -:100CD0000E941A2B20E030E040E451E40E947F2A79 -:100CE0004B015C01F701218184E090E0821B9109B6 -:100CF000BC01882777FD8095982F0E941A2B9B01B5 -:100D0000AC01C501B4010E94172A9B01AC0160E04F -:100D100070E080E090E40E948D2C20E030E04CED0B -:100D200050E40E942A2C4B015C01F7018281882348 -:100D3000D1F04FE050E0C501B4010E947C0F8091DA -:100D400016028823A1F08091D40124E0829FF00153 -:100D50001124EB52FE4F80829182A282B3828F5F78 -:100D60008093D40104C0C501B4010E94C40B0F3F9D -:100D7000110508F02ECF94C08091D00181111FC0C1 -:100D8000043130E5130709F051C00E94020581E0EB -:100D90008093D0010E944F249093CF018093CE0185 -:100DA0001092C7011092C9011092C8011092CB0194 -:100DB0001092CA011092CD011092CC0171C08091A5 -:100DC000CE019091CF010E945B24883C910570F484 -:100DD0008091C701E82FF0E0EE0FFF1FE853FE4FB0 -:100DE000118300838F5F8093C7015AC0043880E568 -:100DF000180721F00538104501F13AC0F70182814A -:100E0000882341F01092C50182E01EC0043830E50D -:100E1000130759F58091C501811106C086E20E9431 -:100E2000A81986E20E94701A82E01CC00438F0E51E -:100E30001F0741F305381045D9F4F7018281882353 -:100E400031F01092C60180E20E94BF1A29C0809141 -:100E5000C601811106C087E20E94A81987E20E949C -:100E6000701A80E20E94C61A1BC00538104529F38B -:100E700081E08093C5018093C601C701A3960FB698 -:100E8000F894DEBF0FBECDBFDF91CF911F910F91C0 -:100E9000FF90EF90BF90AF909F908F900C94F203D3 -:100EA00080E0A3960FB6F894DEBF0FBECDBFDF91F2 -:100EB000CF911F910F91FF90EF90BF90AF909F90B7 -:100EC0008F90089508959CE0799FF001112490E39C -:100ED000899FE00DF11D1124E60FF11DEE0FFF1F9C -:100EE000EC52FD4F859194910895880F991FFC0154 -:100EF000E85BFE4F859194910895880F991FFC013E -:100F0000E853FD4F8591949108950F931F93CF93CC -:100F1000DF93EC01811521E39207A0F5C11580E371 -:100F2000D80708F0D7C0C83ED105D8F4C03ED105D7 -:100F300008F007C2C83AD10578F4C53AD10508F0DF -:100F40006AC0C130D10509F463C008F4F7C1C430E8 -:100F5000D10508F0F6C1F2C1CB3BD10508F466C05B -:100F6000EDC1C11590E2D90708F0AFC0C11521E06D -:100F7000D20708F0E6C1C03FD10508F4DFC18E01F9 -:100F800010651FC2C03880E5D80700F5C03790E56E -:100F9000D90708F0A3C0C11520E5D20709F4ACC0F9 -:100FA00050F4CE01905480319F4008F0C7C1DF70EB -:100FB0008E01106A06C2C13080E5D80709F4AEC0C0 -:100FC000C43190E5D90708F4AFC0B8C1C33820E5F3 -:100FD000D20709F48EC050F4C13890E5D90709F45E -:100FE00082C008F083C000E011EDEBC1C03181E5A3 -:100FF000D80708F4A3C1C11597E5D90708F436C18D -:10100000CE0190578115904108F098C1DF7093C1CF -:1010100001E010E0D6C1C53AD10509F494C1C63A41 -:10102000D10509F093C102E810E4CBC1C83AD1055B -:1010300009F48FC1C93AD10509F48EC1CA3AD10564 -:1010400009F48DC1CB3AD10509F48CC1CC3AD10554 -:1010500009F48BC1CD3AD10509F48AC1C03BD10551 -:1010600009F489C1CE3AD10509F488C1CF3AD10536 -:1010700009F487C1C13BD10509F486C1C23BD10542 -:1010800009F485C1C33BD10509F484C1C43BD10532 -:1010900009F483C1C53BD10509F482C1C63BD10522 -:1010A00009F481C1C73BD10509F480C1C83BD10512 -:1010B00009F47FC1C93BD10509F47EC1CA3BD10502 -:1010C00009F47DC100E014E47CC1CE019F700E9450 -:1010D0007D0778C1DD278E01106C73C1CF70DD27CD -:1010E0008E01146D6EC100E010ED6BC100E012EDD9 -:1010F00068C100E013ED65C10E94531D0E94910B71 -:101100000E9458058FEF94E32CE0815090402040DE -:10111000E1F700C000000E94AA2453C18091F202AE -:1011200081608093F2024DC10E940B25811102C0A3 -:101130000E94E7240E941E2590E090931D03809357 -:101140001C03C23080E5D80721F480911C03816024 -:1011500086C0C43090E5D90721F480911C038260D9 -:101160007EC0C63020E5D20721F480911C03846044 -:1011700076C0C83080E5D80719F480911C0327C0D9 -:10118000CA3090E5D90721F480911C03806167C0C3 -:10119000CC3020E5D20721F480911C0380625FC02F -:1011A000CE3080E5D80721F480911C03806457C0BD -:1011B000C03190E5D90721F480911C0380684FC0AD -:1011C000C23120E5D20729F480911C038460886035 -:1011D00046C0C33080E5D80721F480911C038E7F80 -:1011E0003EC0C53090E5D90721F480911C038D7F66 -:1011F00036C0C73020E5D20721F480911C038B7FD5 -:101200002EC0C93080E5D80719F480911C0326C090 -:10121000CB3090E5D90721F480911C038F7E1FC04D -:10122000CD3020E5D20721F480911C038F7D17C0BB -:10123000CF3080E5D80721F480911C038F7B0FC04D -:10124000C13190E5D90721F480911C038F7707C045 -:10125000C331D04531F480911C038B7F877F80930D -:101260001C0380911C030E942225ABC08D2F99275F -:101270008F70992781309105D9F49E01237033270F -:1012800002C0880F991F2A95E2F79C688E0144E0FE -:10129000000F111F4A95E1F700271370802B912B47 -:1012A00053E0CC0FDD1F5A95E1F7C076DD272FC044 -:1012B0008230910531F4DC2FCC278E01016F106A4A -:1012C00080C08330910569F4CE018370992701E0D5 -:1012D00010E002C0000F111F8A95E2F7C8019C6858 -:1012E0000FC084309105B9F4CE018370992701E0D5 -:1012F00010E002C0000F111F8A95E2F7C8019A683A -:1013000023E0CC0FDD1F2A95E1F7C07ED7708C015A -:101310000C2B1D2B56C08530910531F4DC2FCC27CA -:101320008E01046F106A4DC0069709F04AC0CF7154 -:10133000DD27DC2FCC278E01106243C000E010E0D7 -:1013400040C08E013EC001E810E43BC003E810E459 -:1013500038C002EE14E435C009EE14E432C00AEEDF -:1013600014E42FC005EB14E42CC006EB14E429C0F0 -:1013700007EB14E426C00CEC14E423C00DEC14E4D9 -:1013800020C003E815E41DC00AE815E41AC002E90C -:1013900015E417C004E915E414C001E216E411C015 -:1013A00003E216E40EC004E216E40BC005E216E404 -:1013B00008C006E216E405C007E216E402C00AE22D -:1013C00016E4C801DF91CF911F910F9108959CE021 -:1013D000799FF001112490E3899FE00DF11D112404 -:1013E000E60FF11DEE0FFF1FEC52FD4F859194911A -:1013F000803E9105E0F4803C910558F581339105DC -:1014000009F46FC048F48932910509F463C08A3247 -:10141000910509F46DC072C089339105E9F08238F5 -:101420009105D1F08533910509F44DC067C0833E25 -:10143000910581F138F4803E9105B9F0823E910525 -:10144000D9F05CC0863E910561F1873E9105A1F11E -:1014500055C00E947507089520911C0320FD02C00D -:1014600021FF4CC080EE90E049C080911C0380FFBA -:10147000F9CF89E390E042C080911C0382FF0EC047 -:1014800080911C0384FF03C080E090E037C083EEAE -:1014900090E034C080911C0382FFF2CF82EE90E096 -:1014A0002DC080911C0383FF0BC080911C0384FD21 -:1014B000EBCF87EE90E022C080911C0383FFF5CF35 -:1014C00086EE90E01BC080911C0385FF07C089E277 -:1014D00090E014C080911C0385FFF9CF85E390E074 -:1014E0000DC080911C0386FF07C08AE290E006C011 -:1014F00080911C0386FFF9CF81E390E00E9485076D -:1015000008950C94F403E82FF0E0E25BFE4F808135 -:10151000E82FEF70F0E082958F7021E030E0A901B4 -:1015200002C0440F551F8A95E2F740A308950F9318 -:101530001F93CF93DF9385B7806885BF85B7806899 -:1015400085BFC3E0D0E001E010E0FE01E25BFE4FAA -:101550008081E82FEF70F0E021A182958F70A801C3 -:1015600002C0440F551F8A95E2F7CA01822B81A35E -:101570008C2F0E94830A219740F78BE090E061E076 -:1015800070E0FC01EE5BFE4F2081E22FEF70F0E097 -:1015900042A122952F70DB0102C0AA0FBB1F2A9522 -:1015A000E2F79D01242B22A3019758F7DF91CF91F9 -:1015B0001F910F910C940305EF92FF920F931F93CD -:1015C000CF93DF9300E212E0C3E0EE24E394F12C2A -:1015D000D5E08C2F0E94830A8BE090E040E050E041 -:1015E000FC01EE5BFE4F6081E62FEF70F0E020A182 -:1015F00030E062956F7002C0359527956A95E2F7E5 -:1016000020FD09C09701082E02C0220F331F0A9443 -:10161000E2F7422B532B019718F7F8019291829130 -:101620008F018417950721F051834083D0930501E2 -:101630008C2F0E94830AC15060F68091050187FDBE -:101640002CC08150809305018F3F39F08FE99FE0D6 -:101650000197F1F700C0000020C080911E02909118 -:101660001F02909327028093260280911C02909182 -:101670001D02909325028093240280911A0290917A -:101680001B02909323028093220280911802909172 -:10169000190290932102809320020E94050581E0A7 -:1016A000DF91CF911F910F91FF90EF900895E82F58 -:1016B000F0E0EE0FFF1FE05EFD4F80819181089505 -:1016C00008950F931F93CF9308E212E0C0E0F80152 -:1016D000929182918F010E94C723C80FF2E00032DD -:1016E0001F07A9F78C2FCF911F910F9108950E948A -:1016F0000B25811102C00E94E7240E9430258093AF -:1017000007033E9A809171008D7F8093710082E083 -:10171000809390008AE18093910081E080932A0277 -:10172000089580912A02811102C00E94770B1092C5 -:101730007A0210927902809171008D7F80937100FE -:10174000809190008F738093900010923C021092D1 -:101750003B02109273021092740210927502109262 -:1017600076021092720210927102E1E5F2E0A1E4B9 -:10177000B2E011921192119211921D921D9282E08B -:10178000E137F807B1F70895CF92DF92EF92FF9219 -:101790000F931F93CF93DF9320913B02222309F4F1 -:1017A00084C06B017C0180912A02811102C00E94D9 -:1017B000770B01E712E0C7E0D0E0A7019601F8013E -:1017C00092918291729162918F010E947B2A811184 -:1017D00031C0FE01EE0FFF1FEE0FFF1FEF5AFD4F4E -:1017E0001082118212821382DE01AA0FBB1FAF5B2F -:1017F000BD4F11961C921E92C730D105E9F021967B -:1018000044815581668177814083518362837383EC -:10181000148215821682178212968D919C911397CD -:1018200011969C938E9313961C921E921297349647 -:101830001296E2CF219708F68091790290917A0270 -:10184000019797FD05C090937A028093790204C0B6 -:1018500010927A02109279028091790290917A0224 -:1018600020917702309178022817390724F01092DE -:10187000780210927702892BC1F4809171008D7FDC -:1018800080937100809190008F73809390001092EC -:1018900073021092740210927502109276021092E6 -:1018A00072021092710210923B02DF91CF911F9150 -:1018B0000F91FF90EF90DF90CF9008951F920F92BD -:1018C0000FB60F9211244F925F926F927F928F9278 -:1018D0009F92AF92BF92CF92DF92EF92FF922F939F -:1018E0003F934F935F936F937F938F939F93AF93A8 -:1018F000BF93CF93DF93EF93FF9380913B028823B5 -:1019000009F49BC1C0917902D0917A021C161D0680 -:101910000CF093C140902B0250902C0260902D024D -:1019200070902E0220E030E0A901C301B2010E94B4 -:10193000262C18160CF065C0C130D10509F452C030 -:101940008091770290917802BE010E94F82D7C016F -:10195000909378028093770280903D0290903E02AF -:10196000A0903F02B090400220E030E040E85FE30A -:10197000C501B4010E94172A60933D0270933E0294 -:1019800080933F0290934002F701EE0FFF1FEE0F8E -:10199000FF1FEF5AFD4FA301920160817181828187 -:1019A00093810E947F2A20E030E040E05EE30E94C5 -:1019B0002A2C9B01AC01C501B4010E94262C1816EB -:1019C0008CF4C7010196BE010E94F82D9093780215 -:1019D0008093770210923D0210923E0210923F02D5 -:1019E00010924002E0917702F0917802EE0FFF1F13 -:1019F000EE0FFF1FEF5AFD4F60817181828193814D -:101A0000D0C0C0907302D0907402E0907502F09044 -:101A1000760220E030E0A901C701B6010E947B2ACE -:101A20002197882309F4A2C0FE01EE0FFF1FEE0FDD -:101A3000FF1FEF5AFD4F80809180A280B380A501E7 -:101A40009401C701B6010E947B2A87FF31C0A5011E -:101A5000940160E070E08CED93EC0E947F2A20E01E -:101A600030E040E451E40E947F2A20E030E040E092 -:101A70005FE30E942A2C9B01AC0160E070E080E0F3 -:101A800090E40E948D2C9B01AC01C501B4010E9421 -:101A90002A2C9B01AC01C701B6010E947B2A87FF5B -:101AA00007C0A701960160E070E08CED93E439C0B7 -:101AB000A5019401C701B6010E94262C18160CF04E -:101AC00055C0A501940160E070E08CED93E40E94A4 -:101AD0007F2A20E030E040E451E40E947F2A20E0A9 -:101AE00030E040E05FE30E942A2C9B01AC0160E003 -:101AF00070E080E090E40E948D2C9B01AC01C50158 -:101B0000B4010E942A2C9B01AC01C701B6010E94BE -:101B1000262C18165CF5A701960160E070E08CEDAC -:101B200093EC0E947F2A20E030E040E451E40E94E0 -:101B30007F2A20E030E040E05FE30E942A2C9B01F6 -:101B4000AC0160E070E080E090E40E948D2C9B018D -:101B5000AC01C701B6010E942A2C609373027093F6 -:101B60007402809375029093760213C0FE01EE0F0B -:101B7000FF1FEE0FFF1FEF5AFD4F80819181A28161 -:101B8000B3818093730290937402A0937502B09313 -:101B90007602609173027091740280917502909147 -:101BA000760220912802309129022F3F4FEF34070F -:101BB00031F02F5F3F4F30932902209328020E947B -:101BC00006106B017C0120E034E244EF51E40E94F6 -:101BD0007B2A87FF08C086EFC82E88E2D82E84EFC4 -:101BE000E82E81E4F82E20E030E040E051E4C70127 -:101BF000B6010E942A2C9B01AC0160E074E284E7EC -:101C00009BE40E947F2A6B017C010E94EC2A709366 -:101C10009700609396002091060130910701409152 -:101C2000080150910901C701B6010E942A2C0E94A7 -:101C3000EC2A709399006093980080913C0288236D -:101C400009F433C1C0903702D0903802E0903902D5 -:101C5000F0903A0220E030E0A901C701B6010E94ED -:101C6000262C1816D4F580912802909129028F3FD6 -:101C70002FEF920729F00196909329028093280272 -:101C8000C701B6010E94061020E030E040E051E4B8 -:101C90000E942A2C9B01AC0160E074E284E79BE483 -:101CA0000E947F2A6B017C010E94EC2A70939700AE -:101CB0006093960020910601309107014091080140 -:101CC00050910901C701B6010E942A2C0E94EC2AFA -:101CD000709399006093980008C01092970010923A -:101CE00096001092990010929800609131027091C4 -:101CF00032026F5F7F4F7093320260933102209106 -:101D000096003091970080E090E0232BF1F0C09195 -:101D10009600D09197000E94182B6B017C01BE01A8 -:101D200080E090E00E94182B9B01AC01609133028F -:101D30007091340280913502909136020E947F2A80 -:101D400020E03FEF4FE757E410C00E94182B6B01D3 -:101D50007C0120E030EE4FEF54E46091330270914B -:101D6000340280913502909136020E942A2C9B0108 -:101D7000AC01C701B6010E94262C87FD96C0809158 -:101D80002F028F5F80932F0290E020910303309108 -:101D9000040382179307A0F080910E03882319F0A3 -:101DA00010922F020DC0809171008D7F8093710081 -:101DB000809190008F738093900010923C027DC0C0 -:101DC00080913002C0912F02811128C0C090080379 -:101DD000D0900903E0900A03F0900B0320E030E07C -:101DE000A901C701B6010E94262C1816BCF481E097 -:101DF000809330021092370210923802109239020A -:101E000010923A02C0923302D0923402E09235022C -:101E1000F0923602C150C0932F0243C0109230029C -:101E20001092290210922802E0910503F091060316 -:101E300048E0C49FE00DF11D112480819181A281B1 -:101E4000B3818093370290933802A0933902B09304 -:101E50003A0220E030E040E85EE3648175818681EB -:101E600097810E942A2C6B017C0180910A01682FC6 -:101E700070E080E090E00E94182B20E030E048EC19 -:101E800052E40E947F2A9B01AC01C701B6010E9467 -:101E90002A2C60933302709334028093350290931E -:101EA000360210923202109231028091070380FDB7 -:101EB00004C010923C0210923B02FF91EF91DF911F -:101EC000CF91BF91AF919F918F917F916F915F91D2 -:101ED0004F913F912F91FF90EF90DF90CF90BF9067 -:101EE000AF909F908F907F906F905F904F900F90EA -:101EF0000FBE0F901F901895CF92DF92EF92FF9236 -:101F0000CF93DF936B017C01EA0180912A0281115A -:101F100002C00E94770B8091070380FF46C080912A -:101F2000790290917A0208970CF03FC0809171007D -:101F30008D7F8093710080913C0281110E94910BF2 -:101F400081E080933B02109229021092280220E047 -:101F500030E0A901C701B6010E94262C1816DCF456 -:101F60008091790290917A02FC01EE0FFF1FEE0F33 -:101F7000FF1FEF5AFD4FC082D182E282F382FC0143 -:101F8000EE0FFF1FEF5BFD4FD183C083019690934F -:101F90007A0280937902809171008260809371004F -:101FA00080919000806880939000DF91CF91FF90A6 -:101FB000EF90DF90CF90089580910703817008958E -:101FC000809107038160809307030E9434250C945D -:101FD0005F05809107038E7F809307030C9434255F -:101FE00080917B0290E0019666E070E00E94F82DFF -:101FF00080937B02089580917B0290E0019766E0D8 -:1020000070E00E94F82D80937B0208958F929F923A -:10201000AF92BF92CF92DF92EF92FF920F931F93F6 -:10202000CF93DF936B017C01C0912802D0912902EC -:10203000BE0180E090E00E94182B4B015C01A701DB -:10204000960160E070E08CE594E40E947F2A9B0199 -:10205000AC01C501B4010E942A2C0E94EC2A2091F7 -:102060007B02233009F473C028F4222351F021307D -:10207000E9F02CC1243009F4A0C0253009F4E0C0F7 -:1020800025C180E090E0A0E0BFE38093060190933B -:102090000701A0930801B093090110922B0210923E -:1020A0002C0210922D0210922E0210C110922B02BF -:1020B00010922C0210922D0210922E0264317105A2 -:1020C00040F46A30710560F520E030E040E85EE3FE -:1020D0002BC0693C710508F0AAC080E090E00E9426 -:1020E000182B20E030E040EA51E40E94162A20E05C -:1020F00030E044E353E40E947F2A9B01AC010E943C -:102100002A2C20E030E040E05EE30E942A2C9B0174 -:10211000AC0160E070E080E09EE30E94162A44C0BB -:1021200020E030E040E05FE3C701B6010E942A2CC6 -:102130006B017C0180E090E0A0E0BEE380930601AB -:1021400090930701A0930801B0930901BFC01092BA -:102150002B0210922C0210922D0210922E024AE0B5 -:10216000469F9001479F300D1124C90168EB7BE029 -:102170000E94E42DBC016C5D754077FF03C0719532 -:1021800061957109882777FD8095982F0E941A2BF9 -:102190002EE333EC4EE259E30E942A2C20E030E09B -:1021A00040EC5EE30E94172A6093060170930701DA -:1021B000809308019093090189C010922B0210921C -:1021C0002C0210922D0210922E02CE0183709927BC -:1021D000892BE1F0BE016170772780E090E00E94DA -:1021E000182B20E030E040E05EE30E942A2C20E043 -:1021F00030E040E45FE30E94172A60930601709389 -:10220000070180930801909309010CC080E090E0E1 -:10221000A0E0BFE38093060190930701A09308011B -:10222000B0930901C770DD27CD2B09F04FC0109284 -:10223000060110920701109208011092090146C090 -:1022400010922B0210922C0210922D0210922E024C -:1022500000E010E020E03FE3009306011093070147 -:1022600020930801309309016739710578F180E006 -:1022700090E00E94182B20E030E047E153E40E94F8 -:10228000162A20E030E04AE754E40E947F2A20E04A -:1022900030E048E452E40E942A2C20E030E040EA9A -:1022A00051E40E945C2B0E94E72A660F771F660F9D -:1022B000771FFB01EE5AFE4F20813181428153810D -:1022C000C701B6010E942A2C6B017C01C701B6012F -:1022D000DF91CF911F910F91FF90EF90DF90CF9002 -:1022E000BF90AF909F908F90089580918C02089539 -:1022F000CF93DF9300D01F92CDB7DEB79C018091C2 -:102300001303843019F593E099833B832A839093D8 -:10231000E9008FEF9091E800815095FD06C095EDA2 -:102320009A95F1F700008111F5CF8091E80085FFC3 -:102330000DC040E050E063E070E0CE0101960E94E5 -:10234000D9138091E8008E778093E8000F900F906A -:102350000F90DF91CF910895CF93DF9300D01F921C -:10236000CDB7DEB720911303243021F522E0298375 -:102370009B838A8383E08093E9008FEF9091E8004C -:10238000815095FD06C095ED9A95F1F700008111F9 -:10239000F5CF8091E80085FF0DC040E050E063E09C -:1023A00070E0CE0101960E94D9138091E8008E77EB -:1023B0008093E8000F900F900F90DF91CF910895D8 -:1023C000209113032430F1F422E02093E9002FEF51 -:1023D0003091E800215035FD06C035ED3A95F1F712 -:1023E00000002111F5CF2091E80025FF0BC040E04F -:1023F00050E065E070E00E94D9138091E8008E778C -:102400008093E8000895CF93DF93EC01909113033C -:10241000943009F046C0809115018823D9F080914D -:1024200016018823B9F09093E9008FEF9091E800AE -:10243000815095FD06C095E19A95F1F70000811154 -:10244000F5CF8091E80085FF2CC040E050E060E1CE -:1024500070E017C081E08093E9008FEF9091E80071 -:10246000815095FD06C095ED9A95F1F70000811118 -:10247000F5CF8091E80085FF14C040E050E068E0AF -:1024800070E0CE010E94D9138091E8008E7780938E -:10249000E80080E1FE01ACE7B2E001900D928A9580 -:1024A000E1F7DF91CF91089580911203811109C066 -:1024B0000E946E150E94CB158091E200846080938B -:1024C000E2000895109212030895089508950C945F -:1024D000122442E061EC81E00E94E81442E061ECE9 -:1024E00082E00E94E81442E061EC83E00E94E8147C -:1024F00042E161EC84E00C94E81480911503833090 -:1025000009F455C030F4813071F0823009F48EC086 -:1025100008958A3009F47AC08B3009F460C089309C -:1025200009F09CC020C080911403813A09F096C044 -:102530008091E800877F8093E80080911803909154 -:102540001903892B21F460E18CE792E003C060E07D -:1025500080E090E070E00E9424148091E8008B7786 -:102560008093E800089580911403813209F076C0C9 -:102570008091180390911903009719F0039709F0BF -:102580006DC08091E800877F8093E8008091E8002B -:1025900082FD05C0809113038111F8CF5FC0809147 -:1025A000F10080938C028091E8008B7753C080917A -:1025B0001403813A09F052C08091180390911903D5 -:1025C000892B09F04BC08091E800877F8093E80059 -:1025D0008091E80080FFFCCF8091150136C080918A -:1025E00014038132D9F58091180390911903892B36 -:1025F000A9F58091E800877F8093E8000E941D156F -:1026000080911603809315010C94531D809114033F -:10261000813221F58091E800877F8093E8000E9455 -:102620001D158091170380938D02089580911403E6 -:10263000813AA1F48091E800877F8093E80080913F -:10264000E80080FFFCCF80918D028093F1008091A3 -:10265000E8008E778093E8000C941D15089584B7E8 -:10266000877F84BF88E10FB6F89480936000109252 -:1026700060000FBE90E080E80FB6F8948093610090 -:10268000909361000FBE0E94C0180E946E150E94B8 -:10269000CB158091E20084608093E20078940E94E0 -:1026A00051180E94C2188BE091E00E946C18809132 -:1026B0001303853069F40E94D3238091110388238A -:1026C000B1F30E940124882391F30E94C313EFCF3A -:1026D0000E94CA18ECCF292F332723303105C9F0C7 -:1026E00064F42130310581F02230310509F043C016 -:1026F0008DE690E020ED35E042C021323105F1F069 -:102700002232310541F137C082E190E02DE336E01D -:1027100036C099278130910541F08230910541F012 -:10272000892B49F5ECECF5E005C0EEE9F5E002C0D7 -:10273000E4E7F5E0849190E09F0121C06430D8F493 -:10274000E62FF0E0EE0FFF1FE255FE4F20813181B2 -:1027500089E090E014C0643070F470E0FB01EE0F8B -:10276000FF1FEA55FE4F20813181FB01EE55FE4FE0 -:10277000808190E004C080E090E020E030E0FA0149 -:1027800031832083089580E189BD82E189BD09B448 -:1027900000FEFDCF8091D8008F7D8093D80080917E -:1027A000E00082608093E0008091E00081FDFCCF3A -:1027B0000895CF92DF92EF92FF920F931F93CF93E2 -:1027C000DF93EC018B016A010E943C15811133C03B -:1027D000C114D10439F0F60180819181081B190BD5 -:1027E000C80FD91FE12CF12C0115110519F18091A9 -:1027F000E80085FD16C08091E8008E778093E800A0 -:10280000C114D10449F0F60180819181E80EF91ECE -:10281000F182E08285E00FC00E943C15882321F3FD -:102820000AC089918093F10001501109FFEFEF1A5E -:10283000FF0ADACF80E0DF91CF911F910F91FF90D7 -:10284000EF90DF90CF90089520911A0330911B03F1 -:102850002617370748F06115710539F42091E80013 -:102860002E772093E80001C0B90140E061157105A1 -:10287000A9F120911303222309F443C0253009F460 -:1028800042C02091E80023FD40C02091E80022FDD5 -:1028900032C02091E80020FFE9CF4091F300209161 -:1028A000F20030E0342BFC01CF016115710559F0C5 -:1028B0002830310540F481918093F1006150710915 -:1028C0002F5F3F4FF1CF41E02830310509F040E064 -:1028D0002091E8002E772093E800C8CF4111C9CF9E -:1028E0000AC080911303882361F0853061F08091E4 -:1028F000E80083FD0AC08091E80082FFF2CF80E00B -:10290000089582E0089583E0089581E0089520917C -:102910001A0330911B032617370748F0611571051C -:1029200039F42091E8002E772093E80001C0B90126 -:10293000FC0120E06115710591F18091130388235A -:1029400009F440C0853009F43FC08091E80083FD60 -:102950003DC08091E80082FD2FC08091E80080FF9B -:10296000E9CF2091F3008091F20090E0922B611565 -:10297000710559F08830910540F424912093F100BD -:102980003196615071090196F2CF21E0089709F064 -:1029900020E08091E8008E778093E800CBCF211172 -:1029A000CCCF0AC080911303882361F0853061F099 -:1029B0008091E80083FD0AC08091E80082FFF2CF99 -:1029C00080E0089582E0089583E0089581E008950D -:1029D000982F973058F59093E900981739F0709137 -:1029E000EC002091ED005091F00003C0242F762FD1 -:1029F00050E021FF19C03091EB003E7F3093EB0097 -:102A00003091ED003D7F3093ED003091EB0031606F -:102A10003093EB007093EC002093ED005093F000A6 -:102A20002091EE0027FF07C09F5FD3CF8F70809368 -:102A3000E90081E0089580E008958091140387FF04 -:102A400011C08091E80082FD05C0809113038111BF -:102A5000F8CF11C08091E8008B770BC080911303F1 -:102A6000882349F08091E80080FFF8CF8091E8004A -:102A70008E778093E80008952091E4003091E5007E -:102A800095E64091EC00842F817040FF22C0809138 -:102A9000E80080FD1CC080911303882391F08530ED -:102AA00091F08091EB0085FD10C04091E4005091C1 -:102AB000E5004217530729F39A01915011F784E07A -:102AC000089582E0089583E0089581E0089580E00C -:102AD00008954091E80042FFDECF08950E94DC1582 -:102AE0000E94E415E0EEF0E0808181608083E8EDF3 -:102AF000F0E080818F77808319BCA7EDB0E08C91E6 -:102B00008E7F8C9380818F7E808310921203089534 -:102B10000F931F93CF93DF930E94DC150E94E4155F -:102B2000C8EDD0E088818F7788838881806888832A -:102B300088818F7D888319BC1092130310920F0334 -:102B4000109211031092100300EE10E0F801808142 -:102B50008B7F808388818160888342E060E080E0B1 -:102B60000E94E814E1EEF0E080818E7F8083E2EE47 -:102B7000F0E0808181608083808188608083F801BB -:102B800080818E7F8083888180618883DF91CF916F -:102B90001F910F910895E8EDF0E080818F7E808392 -:102BA000E7EDF0E080818160808384E082BF81E096 -:102BB000809312030C948815E8EDF0E080818E7FFD -:102BC00080831092E20008951092DA001092E100E2 -:102BD00008951F920F920FB60F9211242F933F93D7 -:102BE0004F935F936F937F938F939F93AF93BF9315 -:102BF000EF93FF938091E10082FF0BC08091E20090 -:102C000082FF07C08091E1008B7F8093E1000E94EA -:102C100050188091DA0080FF1FC08091D80080FF9B -:102C20001BC08091DA008E7F8093DA008091D900FA -:102C300080FF0DC080E189BD82E189BD09B400FE3D -:102C4000FDCF81E0809313030E94541205C019BC8C -:102C5000109213030E9462128091E10080FF19C05C -:102C60008091E20080FF15C08091E2008E7F80930A -:102C7000E2008091E20080618093E2008091D800C0 -:102C800080628093D80019BC85E0809313030E9472 -:102C900066128091E10084FF30C08091E20084FFE1 -:102CA0002CC080E189BD82E189BD09B400FEFDCF61 -:102CB0008091D8008F7D8093D8008091E1008F7E35 -:102CC0008093E1008091E2008F7E8093E20080910A -:102CD000E20081608093E20080910F03882311F06D -:102CE00084E007C08091E30087FD02C081E001C05D -:102CF00083E0809313030E9467128091E10083FFB9 -:102D000029C08091E20083FF25C08091E100877F88 -:102D10008093E10082E08093130310920F0380916F -:102D2000E1008E7F8093E1008091E2008E7F8093AE -:102D3000E2008091E20080618093E20042E060E086 -:102D400080E00E94E8148091F00088608093F00099 -:102D50000E946512FF91EF91BF91AF919F918F916A -:102D60007F916F915F914F913F912F910F900FBE87 -:102D70000F901F9018951F920F920FB60F9211246B -:102D80002F933F934F935F936F937F938F939F9373 -:102D9000AF93BF93CF93DF93EF93FF93C091E9007D -:102DA000CF708091EC00D82FD17080FDD0E81092C8 -:102DB000E9008091F000877F8093F00078940E9472 -:102DC000FF161092E9008091F00088608093F00077 -:102DD000CD2BCF70C093E900FF91EF91DF91CF91A0 -:102DE000BF91AF919F918F917F916F915F914F9123 -:102DF0003F912F910F900FBE0F901F9018951F932A -:102E0000CF93DF93CDB7DEB7AA970FB6F894DEBFA6 -:102E10000FBECDBFE4E1F3E088E08E0F9091F100AA -:102E200091938E13FBCF0E947D128091E80083FF67 -:102E30001FC18091140390911503492F50E04A302F -:102E4000510508F015C1FA01EA59FF4F0C940C2EF8 -:102E5000803881F0823809F00BC1809118038F709F -:102E60008093E9008091EB0085FB882780F9109220 -:102E7000E90006C0809110039091110391118260C6 -:102E80009091E800977F9093E8008093F100109272 -:102E9000F100C8C0282F2D7F09F0EAC0882319F05F -:102EA000823061F0E5C080911603813009F0E0C006 -:102EB000933009F080E0809311032BC080911603BA -:102EC000811127C0809118038F7009F4D1C08093BD -:102ED000E9002091EB0020FF1CC0933021F4809189 -:102EE000EB00806214C09091EB0090619093EB0036 -:102EF00021E030E0A90102C0440F551F8A95E2F796 -:102F00004093EA001092EA008091EB008860809381 -:102F1000EB001092E9008091E800877F86C0811164 -:102F2000A7C0109116031F778091E3008078812B52 -:102F30008093E3008091E800877F8093E8000E94FF -:102F40001D158091E80080FFFCCF8091E300806830 -:102F50008093E300111102C082E001C083E08093FE -:102F6000130386C08058823008F082C08091160317 -:102F7000909117038C3D53E0950779F583E08A83A0 -:102F80008AE289834FB7F894DE01139620E03EE091 -:102F900051E2E32FF0E050935700E49120FF03C08B -:102FA000E295EF703F5FEF708E2F90E0EA3010F007 -:102FB000C79601C0C0968D939D932F5F243149F72A -:102FC0004FBF8091E800877F8093E8006AE270E05D -:102FD000CE0101960E94241414C0AE014F5F5F4FD2 -:102FE000609118030E946B13BC01009709F440C064 -:102FF0009091E800977F9093E80089819A810E94E0 -:1030000087148091E8008B778093E80031C0803886 -:1030100079F58091E800877F8093E80080910F0325 -:103020008093F1008091E8008E778093E8000E9401 -:103030001D151EC081111CC0909116039230C0F462 -:103040008091E800877F8093E80090930F030E94AF -:103050001D1580910F03811106C08091E30087FD4B -:1030600002C081E001C084E0809313030E946912D2 -:103070008091E80083FF0AC08091E800877F8093F9 -:10308000E8008091EB0080628093EB00AA960FB677 -:10309000F894DEBF0FBECDBFDF91CF911F91089591 -:1030A0000895CF93809113038823A1F0C091E90084 -:1030B000CF709091EC00892F817090FD80E8C82B33 -:1030C0001092E9008091E80083FD0E94FF16CF7006 -:1030D000C093E900CF910895909393028093920258 -:1030E0000895E0919202F0919302309721F00190BF -:1030F000F081E02D099480E00895E0919202F09132 -:103100009302309721F00280F381E02D0994089515 -:10311000E0919202F0919302309721F00480F581C2 -:10312000E02D099408952091900230919102821728 -:10313000930771F09093910280939002E091920234 -:10314000F0919302309721F00680F781E02D0994E9 -:10315000089520918E0230918F028217930771F0AB -:1031600090938F0280938E02E0919202F0919302ED -:10317000309721F00084F185E02D09940895089599 -:103180000C94BF180E9446240E94970A0E94CC24E7 -:103190000C947B295F926F927F928F929F92AF9255 -:1031A000BF92CF92DF92EF92FF920F931F93CF9334 -:1031B000DF9300D000D01F92CDB7DEB70E94DC0AAB -:1031C0009DE9C92E92E0D92E03E010E0AA24A39431 -:1031D000B12C502E802F0E94570B4C01F60172909B -:1031E00062906F016826792661147104A1F4015080 -:1031F000110978F78FEF89838A831B820E944F24FD -:103200008160782F9D838C8349815A816B818D8168 -:103210000E947A1938C08091F20281FD0E94600BF1 -:103220002BE030E07501022E02C0EE0CFF1C0A9468 -:10323000E2F7C70186219721892B09F129835A8258 -:103240008E209F2091E0892809F490E09B830E94C2 -:103250004F248160782F9D838C8349815A816B81B3 -:103260008D810E947A19000F111FF801EB56FD4F56 -:1032700080819181E826F926F182E08204C0215004 -:10328000310980F6B4CF0E94B326109194020E94B7 -:1032900071181817D1F00E947118809394020F9042 -:1032A0000F900F900F900F90DF91CF911F910F9182 -:1032B000FF90EF90DF90CF90BF90AF909F908F9056 -:1032C0007F906F905F900C94810A0F900F900F90F9 -:1032D0000F900F90DF91CF911F910F91FF90EF9082 -:1032E000DF90CF90BF90AF909F908F907F906F9026 -:1032F0005F900895CF93DF93CDB7DEB72B970FB6CE -:10330000F894DEBF0FBECDBF4F83588769877A8799 -:103310008B87DE01119686E0FD0111928A95E9F70F -:1033200085E0FE01379601900D928A95E1F749817B -:103330005A816B817C818D819E810E94F11F2B9629 -:103340000FB6F894DEBF0FBECDBFDF91CF910895C9 -:10335000CF93882309F4C2C0C82F823859F40E9441 -:10336000711881FDBBC089E30E94CB220E94982383 -:1033700089E30CC0833879F40E94711880FDAEC0D7 -:1033800083E50E94CB220E94982383E50E940D23AF -:10339000CF910C949823843859F40E94711882FDBF -:1033A0009DC087E40E94CB220E94982387E4EECF41 -:1033B0008CEF8C0F813A48F48C2F0E94E328811106 -:1033C0008DC08C2F0E94CB22E3CF80E28C0F8830FF -:1033D00048F4C77081E001C0880FCA95EAF70E94DF -:1033E0005123D6CF8BE58C0F833078F4C53A29F082 -:1033F000C63A31F083E890E005C081E890E002C071 -:1034000082E890E0CF910C94931888E58C0F83317B -:1034100008F064C0C83A39F1C93A41F1CA3A49F1F1 -:10342000CB3A51F1CC3A59F1CD3A61F1C03B69F157 -:10343000CE3A71F1CF3A79F1C13B81F1C23B89F1CA -:10344000C33B91F1C43B99F1C53BA1F1C63BA9F146 -:10345000C73BB1F1C83BB9F1C93BC1F1CA3BC9F1A6 -:1034600080E090E038C082EE90E035C089EE90E0D8 -:1034700032C08AEE90E02FC085EB90E02CC086EB46 -:1034800090E029C087EB90E026C08CEC90E023C050 -:103490008DEC90E020C083E891E01DC08AE891E0C7 -:1034A0001AC082E991E017C084E991E014C081E27A -:1034B00092E011C083E292E00EC084E292E00BC081 -:1034C00085E292E008C086E292E005C087E292E0E1 -:1034D00002C08AE292E0CF910C94A918CF9108958E -:1034E000882309F44BC0823859F40E94711881FF77 -:1034F00045C089E30E94CB220E94982389E30CC037 -:10350000833871F40E94711880FF38C083E50E94EF -:10351000CB220E94982383E50E940D230C949823CC -:10352000843859F40E94711882FF28C087E40E94F1 -:10353000CB220E94982387E4EFCF9CEF980F913A1B -:1035400058F390E2980F983050F4877091E001C0E2 -:10355000990F8A95EAF7892F0E945723DFCF9BE5C1 -:10356000980F933020F480E090E00C949318885AE0 -:10357000833120F480E090E00C94A918089588230A -:1035800021F00E9451230C9498230895882321F060 -:103590000E9457230C94982308957F928F929F92B4 -:1035A000AF92BF92CF92DF92EF92FF920F931F9351 -:1035B000CF93DF931F92CDB7DEB77C01C62E772E57 -:1035C000FC01058102950F70128111110E946E237A -:1035D0000E94C422882379F0112369F080E28C0DC7 -:1035E000883048F082E00E94AD220E94C42291E01F -:1035F000D82ED92601C0D12CE72DE295EF70F0E04E -:10360000E059FF4F0C940C2E872D807F072D0F70F3 -:10361000882311F00295007F112389F0002309F41B -:1036200099C180E28C0D883020F4802F0E945123B4 -:1036300003C0802F0E9461230E9498238BC18C2D90 -:103640000E94701A002309F4C3C180E28C0D8830F7 -:1036500020F4802F0E94572303C0802F0E946723ED -:103660000E949823B5C1872D807F972D9F7080324F -:1036700011F4892F03C0892F8295807FCC2021F0FF -:10368000F1E0CF16A1F01DC0112339F0002319F18C -:10369000013009F50E9481239BC1002319F00130FC -:1036A00009F496C189830E948423898110C1112362 -:1036B00021F0063008F08CC10EC0053008F088C13A -:1036C00006C1112359F0002331F0F701958190FFD5 -:1036D00041C19F7095830E94BF1A7AC1002309F4EB -:1036E000F6C03EC1872D86958695837090E0009741 -:1036F00019F0019761F06CC1112321F08C2D972DE9 -:10370000937002C080E090E00E94931861C1112381 -:1037100021F08C2D972D937002C080E090E00E94E4 -:10372000A91856C18C2D112319F00E94BB2502C087 -:103730000E9423260E94A8264BC1872D837009F082 -:1037400052C0111145C18C2D829586958770880FC6 -:10375000880F9C2D9F70892E912CA12CB12C082EA6 -:1037600004C0880C991CAA1CBB1C0A94D2F7C4FE86 -:1037700014C00FE010E020E030E0B901A80104C05F -:10378000440F551F661F771F8A95D2F7CB01BA01E8 -:10379000609570958095909503C060E070E0CB01D6 -:1037A000272D26952695237030E02230310569F0CB -:1037B0002330310589F0682979298A299B2921300C -:1037C000310571F00E94392103C1682979298A29BC -:1037D0009B290E945521FCC00E943921C501B401DA -:1037E0000E941D21F5C0112319F0872D817001C0A1 -:1037F0008695882309F4ECC08C2D82958695877078 -:10380000880F880F9C2D9F70892E912CA12CB12C94 -:10381000082E04C0880C991CAA1CBB1C0A94D2F761 -:10382000C4FE14C00FE010E020E030E0B901A801B0 -:1038300004C0440F551F661F771F8A95D2F7CB012E -:10384000BA01609570958095909503C060E070E036 -:10385000CB01272D269526952370422F50E042302C -:10386000510569F04330510589F0682979298A2981 -:103870009B294130510571F00E941322A9C068298B -:1038800079298A299B290E942F22A2C00E941322F3 -:10389000C501B4010E94F7219BC08C2D90E0FC0172 -:1038A000E05EF109E531F10508F050C0E058FF4F46 -:1038B0000C940C2E0C2D0F70872D8F71112321F07D -:1038C0000E949021802F07CF0E94B121802F0E945B -:1038D000C61A7EC0112341F0053008F079C0872D4B -:1038E0008F710E94D62174C0063008F071C0F7CFE6 -:1038F000112339F0872D8F710E94902169C0112307 -:10390000C9F3872D8F710E94B12162C0112329F064 -:10391000872D8F710E947B215BC00E94712158C04E -:10392000112351F0172D1F71812F0E94902163E008 -:10393000812F0E94A4224CC081E00E94AD2202305F -:1039400008F446C082E00E94AD2242C0112331F04B -:10395000002381F28C2D0E94A8193AC0002389F21D -:103960008C2D0E94701A34C0472D4F706C2DC701EA -:103970000E9499040E9495202BC0111129C0472D47 -:103980004F7050E042305105B9F04CF441155105EB -:1039900081F041305105E1F40E94A32919C0433060 -:1039A000510569F04430510599F48C2D0E94F52998 -:1039B0000FC00E948C290CC00E94BF2909C00E9420 -:1039C000D22906C0472D4F706C2DC7010E94620797 -:1039D000DD20F9F00E94A02280FD1BC0F7011282B9 -:1039E0000E949A220E949021C7010E94181D0E94E5 -:1039F0009A220F90DF91CF911F910F91FF90EF903E -:103A0000DF90CF90BF90AF909F908F907F900C945D -:103A1000B1210F90DF91CF911F910F91FF90EF9007 -:103A2000DF90CF90BF90AF909F908F907F90089540 -:103A30000F931F93CF93DF93EC01888199812B81A2 -:103A40003C81232BB9F09F3F11F48F3F99F0CE01B9 -:103A50000E946105882371F0688179818A810E94C2 -:103A600096228C010E944B220E941221B801CE01A5 -:103A70000E94CD1ADF91CF911F910F9108950E945E -:103A80006E230E947E230E9443230E9498230E945B -:103A900059270E94A82680E090E00E94931880E0B9 -:103AA00090E00C94A9180E945E230C943F1D0E9484 -:103AB0008B22292F22952F7030E02C3031054CF4C9 -:103AC0002A3031056CF42250310922303105A8F436 -:103AD00007C02C30310569F02F30310551F00DC091 -:103AE000803F69F018F4803E40F409C0843F29F417 -:103AF00006C093FB882780F9089580E0089581E04F -:103B00000895CF93DF9300D000D01F92CDB7DEB7DA -:103B10000F900F900F900F900F90DF91CF9108951D -:103B2000CF93DF9300D000D000D0CDB7DEB726967C -:103B30000FB6F894DEBF0FBECDBFDF91CF910895D1 -:103B40001F93CF93DF93C0919D0216E080919E0258 -:103B5000C81799F0D0E01C9FF0011D9FF00D1124B3 -:103B6000E156FD4F4081518162817381848195814D -:103B70000E94901D2196C770E9CFDF91CF911F91D0 -:103B800008954091CF025091D0026091D10270917E -:103B9000D2028091D3029091D4020C94901D809116 -:103BA000D40282958F7009F054C08091D10288238D -:103BB00009F44FC080919D02A0919E026091CF02B6 -:103BC0007091D0024091D2025091D302B6E08A1790 -:103BD00009F43FC090E041155105C1F17F3F11F458 -:103BE0006F3FA1F1B89FF001B99FF00D1124E1568C -:103BF000FD4F218172132AC02081621327C02281C8 -:103C0000211124C0238134812417350710F4215059 -:103C10003109241B350B283C3105C0F42091D40216 -:103C20002F7020612093D40226E0289FF001299F65 -:103C3000F00D1124EC55FD4F80818F7080618083E1 -:103C40008FEC92E00E94181D0C94A01D01968770C5 -:103C5000BECF0895CF92DF92EF92FF920F931F9302 -:103C6000CF93DF93CDB7DEB762970FB6F894DEBF80 -:103C70000FBECDBF8C0185E0F801DE011D960190DD -:103C80000D928A95E1F7D8014C9111965C911197AC -:103C900012966C9112971396CD90DC9014973091F8 -:103CA000CF027091D0028091D2029091D3020097FE -:103CB00009F46BC17F3F19F43F3F09F466C1E090FE -:103CC000D102EE2009F4C0C02091D402C816D90652 -:103CD00028F0F601E81BF90BCF0104C08095909500 -:103CE0008C0D9D1DFF24F394883C910578F0F12CF8 -:103CF000207F09F0C6C07C2DD98AC88A89890E9494 -:103D0000811D8FEC92E00E94181DB1C0822F807F30 -:103D100009F046C0751314C0341312C0611110C0ED -:103D20002F7020612093D4020E94C11D8FEC92E07D -:103D30000E94181D8091D402D80115968C932EC034 -:103D4000CD2819F15F3F11F44F3FF9F0F62E6111C4 -:103D50001CC080919D0220919E0236E0821709F4DA -:103D60005AC090E0389FF001399FF00D1124E156C0 -:103D7000FD4F7181571306C07081471303C07281D4 -:103D8000711103C001968770E9CFF62E662309F4FE -:103D900018C18091D40281608093D402F12C11C1AA -:103DA000751308C0341306C0611104C08091D40299 -:103DB000D801C3C04D875E878D859E856A8B0E9422 -:103DC000571D6A898823E1F16623D1F12091D4023D -:103DD000822F82958F7090E0029774F08091CF02CD -:103DE0009091D00298878F831986DB86CA862C87AC -:103DF000CE0107960E94181D86E0F801AFECB2E0F4 -:103E000001900D928A95E1F70E94CF1D0E94C11D7D -:103E1000FF24F394D6C04D875E878D859E850E94D2 -:103E20008B22292F22952F7030E0223031050CF0A3 -:103E3000BCC09F7009F0B6C0805E883008F4C1C075 -:103E4000C8010E94181DE4CFC816D90608F453C053 -:103E5000F601E81BF90BCF01883C910508F450C02E -:103E6000F12C7C2DD98AC88A89890E94811DEFECAA -:103E7000F2E086E0DF011D928A95E9F70E94C11DFC -:103E8000A0C0751314C0341312C0611110C080910A -:103E9000D402F8018583C8010E94181D86E0EFEC6A -:103EA000F2E0DF011D928A95E9F7FE2C8AC04D876A -:103EB0005E878D859E856A8B0E94571D6A8988233F -:103EC00009F4BECF662309F4BBCF2091D402822F20 -:103ED00082958F7090E002970CF48ECF8091CF0284 -:103EE0009091D0029A8389831B82DD82CC822E83BB -:103EF000CE0101967FCF809590958C0D9D1DACCF06 -:103F0000F62E662309F49CCF75132EC034132CC0F3 -:103F10002091D40220FD1FC0822F82958F70D9F08E -:103F2000D80115962C9315978F3049F08F5F982FF5 -:103F30009295907F822F8F70892B15968C93C80154 -:103F40000E94181D86E0F801AFECB2E001900D92DE -:103F50008A95E1F793CF86E0F801AFECB2E00190EB -:103F60000D928A95E1F72DC04D875E878D859E85E0 -:103F70000E94571D811140CF8091D40281608093AF -:103F8000D402C8010E94181D1CC0662309F458CF32 -:103F90004D875E878D859E850E94571D882309F475 -:103FA0004FCF2ACF811148CF0CC0243031050CF0FF -:103FB00047CF9F7009F440CFF8019581907F09F0B9 -:103FC0003BCF8F2D62960FB6F894DEBF0FBECDBFEC -:103FD000DF91CF911F910F91FF90EF90DF90CF90E5 -:103FE00008951F93CF93DF93CDB7DEB72C970FB60D -:103FF000F894DEBF0FBECDBF4F83588769877A879D -:104000008B879C87CE0107960E942A1E882369F021 -:104010008F8198852A853B85232BF1F19F3F09F0FD -:1040200063C08F3F09F060C037C086E0FE0137965D -:10403000DE01119601900D928A95E1F76F817885E6 -:10404000EA85FB85309741F17F3F11F46F3F21F105 -:1040500020919E0230E0C901019687709927409116 -:104060009D0250E08417950709F447C069837A835D -:10407000FD83EC8396E0929FD001939FB00D1124B5 -:10408000A156BD4FFE01319601900D929A95E1F730 -:1040900080939E020E94A01D16E080919D02909147 -:1040A0009E028917C1F1189FC001112481569D4FAE -:1040B0000E942A1E882379F1E0919D021E9FF00143 -:1040C0001124E156FD4F40815181628173818481C9 -:1040D00095810E94901D80919D0290E001968770CD -:1040E000992780939D02D9CF4F81588569857A851C -:1040F0008B859C850E94901DCFCF0E94531D1092EE -:104100009E0210929D02EFECF2E086E0DF011D922C -:104110008A95E9F7C1CF2C960FB6F894DEBF0FBE93 -:10412000CDBFDF91CF911F910895EF92FF920F9332 -:104130001F93CF93DF938C01009709F46CC0F12C8F -:10414000EE24E394E8012196F8018491843740F449 -:10415000843008F051C0813081F0823019F15BC0A9 -:10416000853709F444C0A8F19CE7980F903708F010 -:1041700052C08F770E94701A41C00E5F1F4FFE0120 -:10418000C49180E28C0F883048F4C7708E2D01C036 -:10419000880FCA95EAF70E94712314C08C2F0E94E1 -:1041A000A8192DC00E5F1F4FFE01C49180E28C0F35 -:1041B000883058F4C7708E2D01C0880FCA95EAF771 -:1041C0000E9477230E9498231AC08C2F0E94701A95 -:1041D00016C00E5F1F4FFE01C491CC2381F08FE902 -:1041E0009FE00197F1F700C00000C150F6CF0E5FCD -:1041F0001F4FFE01F49003C00E94A8198E018F2D5D -:10420000882309F49FCFEFE9FFE03197F1F700C071 -:1042100000008150F5CFDF91CF911F910F91FF905A -:10422000EF90089508956093D9027093DA02809315 -:10423000DB029093DC020C943F1D0F931F930091BF -:10424000D9021091DA022091DB023091DC02DC010C -:10425000CB01802B912BA22BB32B8093D90290936F -:10426000DA02A093DB02B093DC021F910F910C9451 -:104270003F1D0F931F930091D9021091DA022091F4 -:10428000DB023091DC02DC01CB0180239123A223ED -:10429000B3238093D9029093DA02A093DB02B09308 -:1042A000DC021F910F910C943F1D0F931F930091FF -:1042B000D9021091DA022091DB023091DC02DC019C -:1042C000CB0180279127A227B3278093D90290930F -:1042D000DA02A093DB02B093DC021F910F910C94E1 -:1042E0003F1D1092D5021092D6021092D702109262 -:1042F000D8020C943F1D41E050E060E070E004C043 -:10430000440F551F661F771F8A95D2F74093D50239 -:104310005093D6026093D7027093D8020C943F1D3D -:1043200041E050E060E070E004C0440F551F661F9C -:10433000771F8A95D2F78091D5029091D602A091ED -:10434000D702B091D802482B592B6A2B7B2B409374 -:10435000D5025093D6026093D7027093D8020C9482 -:104360003F1D41E050E060E070E004C0440F551F85 -:10437000661F771F8A95D2F7409550956095709586 -:104380008091D5029091D602A091D702B091D80227 -:10439000482359236A237B234093D5025093D602A6 -:1043A0006093D7027093D8020C943F1D41E050E017 -:1043B00060E070E004C0440F551F661F771F8A95A8 -:1043C000D2F78091D5029091D602A091D702B091F8 -:1043D000D802482759276A277B274093D502509354 -:1043E000D6026093D7027093D8020C943F1D0F93AE -:1043F0001F930091D5021091D6022091D7023091DF -:10440000D802DC01CB01802B912BA22BB32B809304 -:10441000D5029093D602A093D702B093D8021F91F1 -:104420000F910C943F1D0F931F930091D502109193 -:10443000D6022091D7023091D802DC01CB01802333 -:104440009123A223B3238093D5029093D602A09305 -:10445000D702B093D8021F910F910C943F1D0F9378 -:104460001F930091D5021091D6022091D70230916E -:10447000D802DC01CB0180279127A227B3278093A4 -:10448000D5029093D602A093D702B093D8021F9181 -:104490000F910C943F1D0895CF92DF92EF92FF92FF -:1044A0000F931F93CF93DF938C01C090D902D090CC -:1044B000DA02E090DB02F090DC028091D50290916C -:1044C000D602A091D702B091D802C82AD92AEA2AE6 -:1044D000FB2ACFE1D0E0D701C6010C2E04C0B6956F -:1044E000A795979587950A94D2F780FF06C0B801E3 -:1044F0008C2F0E94E709019721F4219760F780E053 -:1045000001C08C2FDF91CF911F910F91FF90EF9001 -:10451000DF90CF900895CF93DF93EC010E944C225F -:10452000BE010E94E709DF91CF910895CB010E945F -:104530008B2208958091DD02859585958595089556 -:104540008091DD028770089598E0899F9001112481 -:10455000262B2093DD020C9490212091DD02809582 -:1045600082238093DD02982F977069F430E0482F02 -:10457000552747FD50952417350729F085958595D2 -:1045800085950C94B12108959091DD02977081E09A -:1045900009F480E0089590911501992321F09091FC -:1045A0001601911109C02091170130911801F901EC -:1045B00032969FEF40E01FC0982F9695969596955E -:1045C0009F3050F5E0911701F0911801E90FF11DAE -:1045D000877021E030E0A90102C0440F551F8A9581 -:1045E000E2F7CA019181892B818308959F3F39F0B9 -:1045F0004F5F4E3041F051915813F8CF0DC051111B -:10460000F7CF942FF5CF9F3F39F0F901E90FF11D56 -:1046100097FDFA9582830895089590911501992345 -:1046200021F090911601911109C02091170130914C -:104630001801F9013296205F3F4F1FC0982F9695C1 -:10464000969596959F30F0F4E0911701F09118013E -:10465000E90FF11D877021E030E0A90102C0440F8D -:10466000551F8A95E2F7CA0180959181892381833C -:1046700008953196E217F30729F090819813F9CF46 -:104680001082F7CF089581E090E0E0911701F0915A -:104690001801E80FF91F1082019680319105A9F7E2 -:1046A00008959091F102892B8093F10208958095ED -:1046B0009091F10289238093F10208951092F10202 -:1046C00008959091F002892B8093F00208958095CF -:1046D0009091F00289238093F00208951092F002E5 -:1046E00008959091EF02892B8093EF0208958095B1 -:1046F0009091EF0289238093EF0208951092EF02C8 -:1047000008958093DE0208951092DE02089580914C -:10471000170190911801FC0131969C01205F3F4FD9 -:1047200080E0919191118F5FE217F307D1F708951F -:10473000E0911701F09118018091F1028083E091DE -:104740001701F091180190818091F002892B8083EC -:10475000E0911701F091180190818091EF02892B6F -:1047600080838091DE02882361F0E0911701F0914F -:1047700018019081892B80830E94872381111092D8 -:10478000DE0280911701909118010C947D1820E0B1 -:10479000009739F0AC0141505109842395232F5FD4 -:1047A000F7CF822F089580911303843039F110924E -:1047B000F30220E488E190E00FB6F894A895809386 -:1047C00060000FBE2093600080E00E94000480E043 -:1047D0000E94810A83B7817F846083BF83B7816031 -:1047E00083BF7894889583B78E7F83BF88E10FB6A7 -:1047F000F89480936000109260000FBE08950895B1 -:10480000089580E00E9400040E94FF230E94DC0AB9 -:104810000E9400240E94610B91E0811101C090E090 -:10482000892F08950E94531D80E00E9400040E9479 -:104830007B290E9471180C94810A1F920F920FB667 -:104840000F9211248F939F93AF93BF938091F302A4 -:10485000811113C08091F4029091F502A091F602AB -:10486000B091F7024196A11DB11D8093F40290937F -:10487000F502A093F602B093F702BF91AF919F911A -:104880008F910F900FBE0F901F90189582E084BDFE -:1048900093E095BD9AEF97BD80936E0008952FB772 -:1048A000F8948091F4029091F502A091F602B091F3 -:1048B000F7022FBF0895CF92DF92EF92FF920F93EE -:1048C0001F932FB7F8944091F4025091F502609134 -:1048D000F6027091F7022FBF6A017B01EE24FF24DC -:1048E0008C0120E030E0C016D106E206F30610F499 -:1048F000415051099A01281B390BC9011F910F9191 -:10490000FF90EF90DF90CF9008951F920F920FB617 -:104910000F9211248F939F93AF93BF938091F402D2 -:104920009091F502A091F602B091F7020196A11DB7 -:10493000B11D8093F4029093F502A093F602B09318 -:10494000F702BF91AF919F918F910F900FBE0F9083 -:104950001F9018950E946E15F8942FEF87EA91E644 -:10496000215080409040E1F700C0000087E090EBCC -:10497000DC0180931E0390931F03A0932003B09348 -:1049800021039CE088E10FB6F894A895809360001D -:104990000FBE90936000FFCF0E940B25811102C0D3 -:1049A0000E94E7240E9416258093F2020E941E2591 -:1049B00080931C0387FB882780F9809316010E944F -:1049C0001A25682F70E080E090E00C9413216DEEC2 -:1049D0007EEF80E090E00E94322E60E082E090E086 -:1049E0000E94202E60E083E090E00E94202E60E094 -:1049F00084E090E00E94202E60E085E090E00E943C -:104A0000202E60E086E090E00E94202E6FEF87E08D -:104A100090E00C94202E80E090E00E941A2E21E07D -:104A20008D3E9E4F09F020E0822F089582E090E0B5 -:104A30000C94122E83E090E00C94122E84E090E00F -:104A40000C94122E682F84E090E00C94202E86E0C7 -:104A500090E00C94122E682F86E090E00C94202EAB -:104A600087E090E00C94122E682F87E090E00C9481 -:104A7000202E8091FA0280FF0BC060911C0185E01E -:104A8000689FB001112475956795759567952BC042 -:104A900081FF09C060911C0185E0689FB00111246D -:104AA0007595679520C082FF07C060911C0185E065 -:104AB000689FB001112417C09091FB029923D1F097 -:104AC00060911B01961788F720911C0185E0289FB3 -:104AD00090011124929FA001939F500D112470E02A -:104AE000CA010E94F82D6038710540F46115710506 -:104AF00039F002C065E070E0862F08958FE70895D1 -:104B000081E008958091FA0280FF08C060911A0147 -:104B100070E0759567957595679521C081FF06C012 -:104B200060911A0170E07595679519C082FF04C005 -:104B300060911A0170E010C09091FB029923C1F0BE -:104B4000609119019617A0F780911A01899FC00101 -:104B5000112470E00E94F82D6038710528F4611569 -:104B6000710521F0862F08958FE7089581E008955B -:104B700061E070E0F4CF803F21F40E9439258195F7 -:104B800004C0813F29F40E9439258093FE020895D4 -:104B9000823F21F40E943925819504C0833F29F486 -:104BA0000E9439258093FD020895893F19F40E94DF -:104BB000822505C08A3F31F40E9482258195809329 -:104BC000FF0208958B3F21F40E948225819504C045 -:104BD0008C3F29F40E948225809300030895843F2E -:104BE00021F48091FC02816017C0853F21F48091FF -:104BF000FC02826011C0863F21F48091FC02846037 -:104C00000BC0873F21F48091FC02886005C0883F7B -:104C100031F48091FC0280618093FC0208958D3F05 -:104C200021F48091FA0281600BC08E3F21F48091C3 -:104C3000FA02826005C08F3F29F48091FA028460F5 -:104C40008093FA020895803F39F48091FE0287FF35 -:104C50006CC01092FE0269C0813F29F48091FE026F -:104C60001816BCF362C09091FD02823F29F497FFB1 -:104C70005CC01092FD0259C0833F19F41916CCF3A1 -:104C800054C0893F41F48091FF0218160CF04DC0CA -:104C90001092FF024AC08A3F29F48091FF0287FFE9 -:104CA00044C0F6CF8B3F39F48091000387FF3DC0AD -:104CB000109200033AC08C3F29F48091000318162B -:104CC000BCF333C0843F21F48091FC028E7F17C077 -:104CD000853F21F48091FC028D7F11C0863F21F435 -:104CE0008091FC028B7F0BC0873F21F48091FC02F6 -:104CF000877F05C0883F31F48091FC028F7E8093CE -:104D0000FC0213C08D3F21F48091FA028E7F0BC00C -:104D10008E3F21F48091FA028D7F05C08F3F29F4E8 -:104D20008091FA028B7F8093FA028091FD028111BB -:104D30000EC08091FE0281110AC08091FF02811194 -:104D400006C080910003811102C01092FB020895F9 -:104D50008CEF92E00E9488180E944F249093F902F1 -:104D60008093F80208951F93CF93DF938091F80208 -:104D70009091F9020E945B24AC019091FB0299236F -:104D800021F020911D0130E006C020911E018AE033 -:104D9000289F900111244217530708F486C0809180 -:104DA000FD02C091FE02D091FF021091000381111B -:104DB00007C0C11176C0D11174C0111172C075C085 -:104DC0009F3F19F09F5F9093FB02181624F40E94F6 -:104DD00039258093FD028091FD0287FF05C00E9466 -:104DE000392581958093FD021C1624F40E943925F3 -:104DF0008093FE028091FE0287FF05C00E94392544 -:104E000081958093FE026091FD02662339F1C09185 -:104E1000FE02CC2319F1772767FD7095872F972F16 -:104E20000E941A2B23E333E343E35FE30E942A2C1F -:104E30000E94E72A6093FD026C2F772767FD70952B -:104E4000872F972F0E941A2B23E333E343E35FE37B -:104E50000E942A2C0E94E72A6093FE021D1624F469 -:104E60000E9482258093FF028091FF0287FF05C088 -:104E70000E94822581958093FF02111624F40E94DE -:104E80008225809300038091000387FF05C00E9464 -:104E90008225819580930003DF91CF911F910C941F -:104EA000A8269F3F09F08ECF96CFDF91CF911F911B -:104EB0000895ECEFF2E085E0DF011D928A95E9F7B5 -:104EC0001092FB021092FA020895833081F128F4C7 -:104ED000813059F08230D1F00895853009F449C00D -:104EE000B8F1863009F456C0089580911E01262F2E -:104EF00030E0280F311D2F3F310524F4680F6093F7 -:104F00001E0108958FEF80931E01089580911D0169 -:104F1000262F30E0280F311D2F3F310524F4680F74 -:104F200060931D0108958FEF80931D010895809176 -:104F30001C01262F30E0280F311D2F3F310524F4AE -:104F4000680F60931C0108958FEF80931C010895F2 -:104F500080911B01262F30E0280F311D2F3F310596 -:104F600024F4680F60931B0108958FEF80931B0159 -:104F7000089580911A01262F30E0280F311D2F3F10 -:104F8000310524F4680F60931A0108958FEF809320 -:104F90001A01089580911901262F30E0280F311D44 -:104FA0002F3F310524F4680F6093190108958FEFA6 -:104FB000809319010895833011F128F4813049F06C -:104FC000823091F00895853081F120F18630C1F171 -:104FD000089580911E01681720F4861B80931E019E -:104FE000089510921E01089580911D01681720F404 -:104FF000861B80931D01089510921D0108958091D4 -:105000001C01681720F4861B80931C0108951092E0 -:105010001C01089580911B01681720F4861B809362 -:105020001B01089510921B01089580911A016817C1 -:1050300020F4861B80931A01089510921A01089596 -:1050400080911901681720F4861B80931901089537 -:105050001092190108950F931F93873208F048C0EA -:105060008E3108F08DC0803109F477C008F58730A3 -:1050700009F461C068F4863009F09DC08091F202A5 -:10508000817F8E7F8093F20281E08093020394C03F -:105090008B3009F489C08E3009F08DC08091F20206 -:1050A00082FB222720F991E0922790FB82F95EC0D3 -:1050B000863109F479C060F4813109F07CC00E9426 -:1050C000531D9091160181E08927809316016CC0D1 -:1050D000893109F469C08B3109F06DC08091F20209 -:1050E00081FB222720F991E0922790FB81F93EC0B5 -:1050F000883309F459C050F4893209F457C0853314 -:1051000009F454C0873209F451C055C0833409F4FE -:105110004DC028F48A3308F44EC0895332C0883415 -:1051200009F049C00E94531D0E94910B0E9458052E -:105130000E94AA2439C09091F202892F8095817033 -:1051400080FB90F929F0966098609093F20234C049 -:10515000997F977F9093F20227C08091F20283FBA0 -:10516000222720F991E0922790FB83F98093F202A5 -:105170009923D1F08091F20281608093F20214C0F1 -:105180008D5141E050E060E070E08A019B0104C075 -:10519000000F111F221F331F8A95D2F7C901B801D2 -:1051A0000E9413210E94531D81E006C061E070E05F -:1051B00080E090E0F5CF80E01F910F91089580E0AE -:1051C000089580E00895CF93C82F80910203813025 -:1051D00069F018F08230C9F184C0E0911701F091B4 -:1051E00018018081823209F07EC007C0E09117016A -:1051F000F09118018081823261F48C2F0E94DF28A7 -:10520000811104C08C2F0E942B281DC081E090E0EA -:105210001AC08C2F0E94E128811114C0C43179F08A -:1052200048F4CB3079F0C03109F061C082E080935E -:10523000020308C0C93219F0C83321F058C01092D7 -:10524000020355C081E0817054C0C93291F120F54C -:10525000C43179F1B0F4C73009F047C08EE18093D2 -:105260001E0182E380931D018AE080931C0184E18A -:1052700080931B0188E080931A0188E280931901D2 -:1052800034C0CE51C63088F5EC2FF0E0EA54FE4F22 -:1052900080818093010329C0CE34E9F020F4CB341F -:1052A00021F56AE013C0C13579F0C235F1F461E04F -:1052B0000DC080910103882319F01092010315C0DD -:1052C00081E08093020315C061E006C08091010374 -:1052D0000E9465270AC06AE0809101030E94DB27D3 -:1052E00004C01092020380E004C081E002C080E0AC -:1052F000AACFCF9108950E940B25811102C00E9470 -:10530000E7240E94272580931D0380FF02C0869515 -:1053100001C080E00C94000480911D03982F9695A5 -:10532000292F30E0233031054CF49F5F990F8170B5 -:10533000892B816080931D030E942B2580911D0382 -:1053400086950C94000480911D03982F969591F0FA -:105350009158990F8170892B80931D038E7F91E066 -:1053600009F490E080911D0390FB80F980931D0368 -:105370000E942B2580911D0386950C94000480913A -:105380001D03982F909590FB80F980931D030E9438 -:105390002B2580911D0380FF02C0869501C080E00F -:1053A0000C94000490911D03892F86958F5F8F7751 -:1053B0009170843028F4880F892B80931D0302C0DC -:1053C00090931D0380911D038E7F91E009F490E07E -:1053D00080911D0390FB80F980931D030E942B2573 -:1053E00080911D0386950C94000420911D03922F3B -:1053F00096958927982F990F822F8170892B8093FA -:105400001D038E7F91E009F490E080911D0390FBD5 -:1054100080F980931D030E942B2580911D038695A2 -:105420000C94000480911D03869508955058BB2765 -:10543000AA270ED0D1C1C2D130F0C7D120F031F4AB -:105440009F3F11F41EF4B7C10EF4E095E7FB9FC136 -:10545000E92FD3D180F3BA17620773078407950742 -:1054600018F071F49EF5EBC10EF4E0950B2EBA2FF7 -:10547000A02D0B01B90190010C01CA01A00111245A -:10548000FF27591B99F0593F50F4503E68F11A1606 -:10549000F040A22F232F342F4427585FF3CF469597 -:1054A00037952795A795F0405395C9F77EF41F16B9 -:1054B000BA0B620B730B840BBAF09150A1F0FF0F83 -:1054C000BB1F661F771F881FC2F70EC0BA0F621F6F -:1054D000731F841F48F4879577956795B795F7955F -:1054E0009E3F08F0B3CF9395880F08F09927EE0FF1 -:1054F00097958795089527D108F481E008950CD0F9 -:105500006BC163D140F05AD130F021F45F3F19F004 -:105510003EC1511195C14FC170D198F39923C9F380 -:105520005523B1F3951B550BBB27AA2762177307A9 -:10553000840738F09F5F5F4F220F331F441FAA1F5D -:10554000A9F333D00E2E3AF0E0E830D0915050401D -:10555000E695001CCAF729D0FE2F27D0660F771FCB -:10556000881FBB1F261737074807AB07B0E809F0AD -:10557000BB0B802DBF01FF2793585F4F2AF09E3F42 -:10558000510568F004C15CC15F3FECF3983EDCF369 -:10559000869577956795B795F7959F5FC9F7880FBB -:1055A000911D9695879597F90895E1E0660F771F0D -:1055B000881FBB1F621773078407BA0720F0621B9E -:1055C000730B840BBA0BEE1F88F7E095089504D097 -:1055D0006894B11135C1089518D188F09F5790F0A3 -:1055E000B92F9927B751A0F0D1F0660F771F881F08 -:1055F000991F1AF0BA95C9F712C0B13081F01FD1C6 -:10560000B1E008951CC1672F782F8827B85F39F063 -:10561000B93FCCF3869577956795B395D9F73EF466 -:1056200090958095709561957F4F8F4F9F4F08950E -:10563000E89409C097FB3EF490958095709561952C -:105640007F4F8F4F9F4F9923A9F0F92F96E9BB27E2 -:105650009395F695879577956795B795F111F8CF5E -:10566000FAF4BB0F11F460FF1BC06F5F7F4F8F4FC9 -:105670009F4F16C0882311F096E911C0772321F0BF -:105680009EE8872F762F05C0662371F096E8862F57 -:1056900070E060E02AF09A95660F771F881FDAF7AE -:1056A000880F9695879597F9089588D018F011F08E -:1056B0008CD038F480C0C4C0E92F9FD0B0F35523FC -:1056C000C9F3E7FB6217730784079507A8F199F3FD -:1056D000E92FFF2788232AF03197660F771F881F4D -:1056E000DAF7952F5527442332F091505040220F7E -:1056F000331F441FD2F7BB27E91BF50B621B730B4B -:10570000840BB109C1F222F4620F731F841FB11D13 -:1057100031972AF0660F771F881FBB1FEFCF91507C -:1057200050405AF041F0882332F0660F771F881FEF -:1057300091505040C1F7939530C086957795679505 -:105740009F5FD9F7F8CF990F0008550FAA0BE0E833 -:10575000FEEF16161706E807F907C0F01216130633 -:10576000E407F50798F0621B730B840B950B39F473 -:105770000A2661F0232B242B252B21F408950A26D9 -:1057800009F4A140A6958FEF811D811D089597F919 -:105790009F6780E870E060E008959F3F31F091508E -:1057A00020F4879577956795B795880F911D969505 -:1057B000879597F908959FEF80EC089500240A9447 -:1057C0001616170618060906089500240A941216DC -:1057D0001306140605060895092E0394000C11F40F -:1057E000882352F0BB0F40F4BF2B11F460FF04C0BC -:1057F0006F5F7F4F8F4F9F4F089557FD9058440F15 -:10580000551F59F05F3F71F04795880F97FB991F1F -:1058100061F09F3F79F087950895121613061406DC -:10582000551FF2CF4695F1DF08C016161706180669 -:10583000991FF1CF86957105610508940895E89444 -:10584000BB2766277727CB0197F908957CDF08F4FB -:105850008FEF08950BD0C0CFB1DF28F0B6DF18F07E -:10586000952309F094CFA7CF1124EACFC6DFA0F388 -:10587000959FD1F3950F50E0551F629FF001729FE5 -:10588000BB27F00DB11D639FAA27F00DB11DAA1F04 -:10589000649F6627B00DA11D661F829F2227B00D51 -:1058A000A11D621F739FB00DA11D621F839FA00DDC -:1058B000611D221F749F3327A00D611D231F849F2C -:1058C000600D211D822F762F6A2F11249F57504083 -:1058D0008AF0E1F088234AF0EE0FFF1FBB1F661F1E -:1058E000771F881F91505040A9F79E3F510570F0D7 -:1058F0004ECFA6CF5F3FECF3983EDCF386957795CD -:105900006795B795F795E7959F5FC1F7FE2B880FD1 -:10591000911D9695879597F90895FA01EE0FFF1F4F -:1059200030962105310599F16115710561F48038D2 -:10593000BFE39B0749F168949038810561F0803896 -:10594000BFEF9B0741F0992342F5FF3FE105310589 -:10595000210511F1E8940894E795D901AA2329F4C7 -:10596000AB2FBE2FF85FD0F310C0FF5F70F4A69589 -:10597000E0F7F73950F019F0FF3A38F49F779F932A -:105980000CD00F9007FC905808953EF014CF60E0C3 -:1059900070E080E89FE308954FE79F775F934F9310 -:1059A0003F932F939ED02F913F914F915F9152DF64 -:1059B00005C019F40EF0EBCE42CFFDCE26DFC8F3C2 -:1059C0009638C0F707F80F92E8942BE33AEA48EBD1 -:1059D0005FE74EDF0F920F920F924DB75EB70F92B7 -:1059E000C0D0EAE2F1E016D04F915F91EF91FF91C4 -:1059F000E595EE1FFF1F49F0FE57E0684427EE0FC4 -:105A0000441FFA95E1F74195550B32D00F9007FEF0 -:105A100026C00895DF93CF931F930F93FF92EF92C9 -:105A2000DF927B018C01689405C0DA2EEF011EDF46 -:105A3000FE01E894A5912591359145915591AEF3DC -:105A4000EF0106DDFE019701A801DA9479F7DF90F6 -:105A5000EF90FF900F911F91CF91DF9108959B01DF -:105A6000AC0160E070E080E89FE349CD90CE95CE38 -:105A7000CCDEE8F39923D9F3940F511DBBF3915079 -:105A8000504094F059F0882332F0660F771F881F3A -:105A900091505040C1F79E3F510544F7880F911D2A -:105AA0009695879597F908955F3FACF0983E9CF0E6 -:105AB000BB27869577956795B79508F4B160939560 -:105AC000C1F7BB0F58F711F460FFE8CF6F5F7F4F4E -:105AD0008F4F9F4FE3CFB4CE0EF05FCE6CCE689465 -:105AE00056CE93DEC8F39923D1F3C6F3DF93CF9359 -:105AF0001F930F93FF92C92FDD2788232AF0219748 -:105B0000660F771F881FDAF720E030E040E85FEB90 -:105B10009FE3883920F0803E30F021968F7787DC34 -:105B2000E2E5F1E003C083DCEFE7F1E073DF8B0136 -:105B3000BE01EC01FB2E6F5771097595771F880B1D -:105B4000990B78DD28E132E741E35FE38FDEAF2D8B -:105B50009801AE01FF900F911F91CF91DF9178DCFA -:105B60003BCEFA01DC01AA0FBB1F9B01AC01BF5762 -:105B700028F422273327442750781FC0B75188F4D0 -:105B8000AB2F0024469537952795011CA395D2F39A -:105B9000002069F0220F331F441FB395DAF30DD0B4 -:105BA00045CC61307105A0E88A07B94630F49B0105 -:105BB000AC016627772788279078309621F02083DC -:105BC0003183428353830895AA1BBB1B51E107C055 -:105BD000AA1FBB1FA617B70710F0A61BB70B881F7D -:105BE000991F5A95A9F780959095BC01CD0108950C -:105BF00097FB072E16F4009407D077FD09D00E947A -:105C0000E42D07FC05D03EF4909581959F4F0895B3 -:105C1000709561957F4F0895EE0FFF1F0590F491E9 -:105C2000E02D0994F999FECF92BD81BDF89A99278C -:105C300080B50895A8E1B0E042E050E00C943A2E1F -:105C4000262FF999FECF92BD81BDF89A019700B435 -:105C5000021639F01FBA20BD0FB6F894FA9AF99AD5 -:105C60000FBE08950196272F0E94212E0C94202EFE -:105C7000DC01CB01FC01F999FECF06C0F2BDE1BD0C -:105C8000F89A319600B40D9241505040B8F70895FB -:045C9000F894FFCFB6 -:105C9400640007000CFF0000003F6475110312E06C -:105CA40011AC1178110101DF022808140A321E0018 -:105CB40002040507090B0C0E1011131517181A1CF2 -:105CC4001D1F2123242628292B2D2F30323435372C -:105CD400393B1F0F03764F5F6F7F49694379095939 -:105CE40053633149803F5D8B803FF8BF803FCAE1F9 -:105CF400803F73ED803FCAE1803FF8BF803F5D8BFA -:105D0400803F3149803F0000803FF16D7F3F75EA5D -:105D14007E3F4C827E3F833F7E3F84287E3F833F8D -:105D24007E3F4C827E3F75EA7E3FF16D7F3F0000EF -:105D3400803F3F4D36390B07BE0688064F06E20505 -:105D4400FB0514062D0601020304050607080900D5 -:00000001FF diff --git a/keyboards/planck/keymaps/nico/compiled.hex b/keyboards/planck/keymaps/nico/compiled.hex deleted file mode 100644 index 61527c530..000000000 --- a/keyboards/planck/keymaps/nico/compiled.hex +++ /dev/null @@ -1,1456 +0,0 @@ -:100000000C94C4020C9408030C9408030C94080389 -:100010000C9408030C9408030C9408030C94080334 -:100020000C9408030C9408030C94B5140C948715D5 -:100030000C94E9220C9408030C9408030C94080314 -:100040000C9408030C946A030C9408030C940803A2 -:100050000C9408030C9451230C9408030C9408038B -:100060000C9408030C9408030C9408030C940803E4 -:100070000C9408030C9408030C9408030C940803D4 -:100080000C942A0B0C9408030C9408030C9408039A -:100090000C9408030C9408030C9408030C940803B4 -:1000A0000C9408030C9408030C940803F41516161A -:1000B0000417161604175B167E160417D316E616D9 -:1000C000D019D019FF19FF193E1A5E1AB41BB41BC0 -:1000D000691AB41B191B191B801B891BB41BAE1B8F -:1000E000261B261B261B261B261B261B261B261B08 -:1000F000261B261B261B261B261B261B261B261BF8 -:10010000361B441B4B1B521B5C1B07634236B79BC1 -:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 -:100120005763BD6DEDFD753EF6177231BF000000DF -:10013000803F08000000BE922449123EABAAAA2AC2 -:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD -:1001500000000000BF000000803F00000000000819 -:100160004178D3BB4387D1133D190E3CC3BD4282B6 -:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 -:10018000FFBE01C4FF7F3F00000000000000000030 -:1001900000000000000000010204060A0F17202CD6 -:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 -:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF -:1001C00002010000000000000000000000002AA35F -:1001D00028A42B0014001A000800150017001C00AA -:1001E00018000C00120013002A00E00004001600A2 -:1001F000070009000A000B000D000E000F0033007D -:100200003400E1001D001B0006001900050011006C -:100210001000360037003800280000302900E200C6 -:10022000E30001202C002C0002205000510052005D -:100230004F002B0014001A00090013000A000D00E3 -:100240000F0018001C0033002A00E0000400150015 -:100250001600170007000B00110008000C00120028 -:100260003400E1001D001B000600190005000E000F -:100270001000360037003800280000302900E20066 -:10028000E30001202C002C000220500051005200FD -:100290004F002B0034003600370013001C0009000B -:1002A0000A00060015000F002A00E00004001200FA -:1002B000080018000C0007000B00170011001600C2 -:1002C0003800E100330014000D000E001B00050093 -:1002D00010001A0019001D00280000302900E2005B -:1002E000E30001202C002C0002205000510052009D -:1002F0004F0035021E021F022002210222022302A9 -:1003000024022502260227022A0001003A003B00AF -:100310003C003D003E003F002D022E022F02300225 -:10032000310201004000410042004300440045000A -:10033000005301530253005001000030010001003E -:100340000100010069006A000100BB00AA00A900C9 -:10035000AE0035001E001F002000210022002300F7 -:1003600024002500260027002A0001003A003B0057 -:100370003C003D003E003F002D002E002F003000CD -:1003800031000100400041004200430044004500AC -:1003900000530153025300500100003001000100DE -:1003A0000100010069006A000100BB00AA00A90069 -:1003B000AE002803540068006500200050006C0067 -:1003C00061006E0063006B0020004B006500790047 -:1003D00062006F0061007200640000002C034F0097 -:1003E0007200740068006F006C0069006E006500A8 -:1003F0006100720020004B006500790062006F0010 -:100400006100720064007300000004030904090223 -:100410006D00040100A0FA090400000103010100BD -:10042000092111010001223F000705810308000A8C -:100430000904010001030102000921110100012248 -:100440004D000705820308000A09040200010300A9 -:10045000000009211101000122360007058303086D -:10046000000A090403000103000000092111010032 -:100470000122390007058403100001120110010058 -:10048000000008EDFE6060010001020001050109A5 -:1004900006A101050719E029E71500250195087552 -:1004A000018102050819012905950575019102953B -:1004B000017503910105071900297715002501959C -:1004C0007875018102C005010980A101850216012C -:1004D0000026B7001A01002AB700751095018100A7 -:1004E000C0050C0901A1018503160100269C021A12 -:1004F00001002A9C02751095018100C005010902C6 -:10050000A1010901A100050919012905150025010D -:100510009505750181029501750381010501093079 -:1005200009311581257F95027508810609381581E5 -:10053000257F950175088106050C0A38021581256D -:100540007F950175088106C0C005010906A1010556 -:100550000719E029E7150025019508750181029525 -:100560000175088101050819012905950575019195 -:10057000029501750391010507190029FF15002552 -:10058000FF950675088100C011241FBECFEFDAE089 -:10059000DEBFCDBF04B603FE24C080911E03909140 -:1005A0001F03A0912003B09121038730904BA740F7 -:1005B000B04BB9F410921E0310921F031092200347 -:1005C0001092210314BE84B7877F84BF88E10FB6E1 -:1005D000F89480936000109260000FBEE0E0F8E3B2 -:1005E000099511E0A0E0B1E0ECE2FAE502C0059067 -:1005F0000D92A03CB107D9F713E0A0ECB1E001C027 -:100600001D92AE31B107E1F70E94FB110C94142D3D -:100610000C9400000895089581E0089508950C94C5 -:100620000B030C940C030C940E030E94DE2823E0B1 -:1006300030E0281B3109220F2093C4010895282F90 -:100640002F9880918000211108C0877F80938000BF -:1006500010928D0010928C001BC0886080938000E7 -:10066000233019F48FEF9FEF0FC083E090E0821BDF -:100670009109880F991F2FEF3FEFA90102C05695EE -:1006800047958A95E2F7CA0190938D0080938C007C -:100690000C9415030E94150384E08093C30110920B -:1006A000C0010895279A2F988FEF9FEF90938700AE -:1006B000809386008AE08093800089E180938100A6 -:1006C0000E9447280C944A030E9452036E9A769A1D -:1006D0000C940A031F920F920FB60F9211242F93BE -:1006E0003F938F939F93EF93FF93E091C101F0911C -:1006F000C201CF0101969093C2018093C101009085 -:10070000C30102C0F695E7950A94E2F7EF73809172 -:10071000C001823019F4E03251F404C0813039F460 -:10072000EF3329F480916F008D7F80936F00F0E0AC -:10073000E457FE4FE49121E031E0E29FC001E39FE6 -:10074000900D11240090C40102C0969587950A94DB -:10075000E2F790938D0080938C00FF91EF919F9131 -:100760008F913F912F910F900FBE0F901F90189572 -:1007700061110DC0FC018281882331F085EE0E9459 -:1007800074180E949E2803C085EE0E943C1980E0E8 -:1007900090E0089581E008950C94CA0308950C94A4 -:1007A000640380911502882309F448C08091D10127 -:1007B0009091D201009779F40E941B239093D2016B -:1007C0008093D1018091D30190E0009771F48091E2 -:1007D000D40190E00AC00E942723209100013091AB -:1007E00001012817390740F329C00197880F991F85 -:1007F000880F991FFC01EB52FE4F6081718182814D -:1008000093810E94900AE091D30184E0E89FF00177 -:100810001124EB52FE4F60817181828193814FE000 -:1008200050E00E94480E8091D30190E001966091C3 -:10083000D40170E00E94C42C8093D3010C940F0368 -:10084000109217020C945D0A0895089581E0809338 -:1008500017020C942504089508958F929F92AF92E9 -:10086000BF92EF92FF920F931F93CF93DF93CDB779 -:10087000DEB7A3970FB6F894DEBF0FBECDBF7C01E5 -:10088000FC0100811181C8010E941821B8010E9459 -:100890002F068C01B7010E94CC03882309F4CCC138 -:1008A0000032F0E51F0741F4F7018281882309F443 -:1008B00058C00E94AC0EC0C10132F0E51F0741F4E0 -:1008C000F7018281882309F44CC00E94B50EB4C19F -:1008D0000232F0E51F0751F4F7018281882309F401 -:1008E00040C00E94A80E8111F0CFE3CF0332F0E5A3 -:1008F0001F0739F4F7018281882399F10E942604A9 -:100900009BC10432F0E51F0739F4F7018281882387 -:1009100041F10E94200490C10532F0E51F0749F41F -:10092000F70182818823E9F0809117028111F1CFCC -:10093000E5CF0632F0E51F0739F4F70182818823FD -:1009400081F00E94BC0E0AC00732F0E51F0749F48F -:10095000F7018281882329F00E94C70E0E942C048F -:100960006BC180911702811105C0F701828181114D -:10097000CFC018C1003E110579F4F70182818823A8 -:1009800009F44DC00E945D0A81E080931602109226 -:1009900015021092D40150C1023E110559F4F7011D -:1009A00082818823E1F10E945D0A10921602109262 -:1009B000150242C1033E110591F4F701828188239B -:1009C00071F10E945D0A1092160281E08093150277 -:1009D0001092D3011092D2011092D1012DC1023593 -:1009E000110559F4F7018281882309F425C180910A -:1009F0000001909101010A970DC00135110579F4AC -:100A0000F7018281882309F417C180910001909138 -:100A100001010A9690930101809300010DC140915C -:100A2000040183E2EFE1F1E0DE01119601900D9205 -:100A30008A95E1F7F701808121E030E02C0F3D1F1E -:100A4000280F311DC9012091020130910301FC01E1 -:100A5000E20FF31F6081772767FD7095640F711DAA -:100A6000882777FD8095982F0E94E62920E030E0C6 -:100A700040E451E40E944B294B015C01F7012181C4 -:100A800084E090E0821B9109BC01882777FD809566 -:100A9000982F0E94E6299B01AC01C501B4010E9478 -:100AA000E3289B01AC0160E070E080E090E40E94EC -:100AB000592B20E030E04CED50E40E94F62A4B0127 -:100AC0005C01F70182818823D1F04FE050E0C5013D -:100AD000B4010E94480E809116028823A1F08091F3 -:100AE000D40124E0829FF0011124EB52FE4F80825A -:100AF0009182A282B3828F5F8093D40104C0C5012A -:100B0000B4010E94900A0F3F110508F02ECF94C047 -:100B10008091D00181111FC0043130E5130709F025 -:100B200051C00E94CE0381E08093D0010E941B231C -:100B30009093CF018093CE011092C7011092C9010A -:100B40001092C8011092CB011092CA011092CD01EF -:100B50001092CC0171C08091CE019091CF010E9482 -:100B60002723883C910570F48091C701E82FF0E0BD -:100B7000EE0FFF1FE853FE4F118300838F5F8093BA -:100B8000C7015AC0043880E5180721F00538104520 -:100B900001F13AC0F7018281882341F01092C5012A -:100BA00082E01EC0043830E5130759F58091C50175 -:100BB000811106C086E20E94741886E20E943C19E8 -:100BC00082E01CC00438F0E51F0741F305381045EA -:100BD000D9F4F7018281882331F01092C60180E2B6 -:100BE0000E948B1929C08091C601811106C087E23D -:100BF0000E94741887E20E943C1980E20E949219B8 -:100C00001BC00538104529F381E08093C50180930E -:100C1000C601C701A3960FB6F894DEBF0FBECDBFC5 -:100C2000DF91CF911F910F91FF90EF90BF90AF9008 -:100C30009F908F900C94110380E0A3960FB6F894C8 -:100C4000DEBF0FBECDBFDF91CF911F910F91FF90FF -:100C5000EF90BF90AF909F908F90089508959CE083 -:100C6000799FF001112490E3899FE00DF11D11247B -:100C7000E60FF11DEE0FFF1FEE52FE4F859194918E -:100C80000895880F991FFC01E45BFF4F85919491B3 -:100C90000895880F991FFC01E453FE4F85919491AC -:100CA00008950F931F93CF93DF93EC01811521E3F8 -:100CB0009207A0F5C11580E3D80708F0D7C0C83E59 -:100CC000D105D8F4C03ED10508F007C2C83AD10515 -:100CD00078F4C53AD10508F06AC0C130D10509F4ED -:100CE00063C008F4F7C1C430D10508F0F6C1F2C101 -:100CF000CB3BD10508F466C0EDC1C11590E2D90720 -:100D000008F0AFC0C11521E0D20708F0E6C1C03F2E -:100D1000D10508F4DFC18E0110651FC2C03880E51F -:100D2000D80700F5C03790E5D90708F0A3C0C11572 -:100D300020E5D20709F4ACC050F4CE0190548031C4 -:100D40009F4008F0C7C1DF708E01106A06C2C13033 -:100D500080E5D80709F4AEC0C43190E5D90708F49E -:100D6000AFC0B8C1C33820E5D20709F48EC050F433 -:100D7000C13890E5D90709F482C008F083C000E0CB -:100D800011EDEBC1C03181E5D80708F4A3C1C1154D -:100D900097E5D90708F436C1CE01905781159041E7 -:100DA00008F098C1DF7093C101E010E0D6C1C53AE8 -:100DB000D10509F494C1C63AD10509F093C102E8FE -:100DC00010E4CBC1C83AD10509F48FC1C93AD105A5 -:100DD00009F48EC1CA3AD10509F48DC1CB3AD105C7 -:100DE00009F48CC1CC3AD10509F48BC1CD3AD105B7 -:100DF00009F48AC1C03BD10509F489C1CE3AD105B5 -:100E000009F488C1CF3AD10509F487C1C13BD105A6 -:100E100009F486C1C23BD10509F485C1C33BD105A4 -:100E200009F484C1C43BD10509F483C1C53BD10594 -:100E300009F482C1C63BD10509F481C1C73BD10584 -:100E400009F480C1C83BD10509F47FC1C93BD10574 -:100E500009F47EC1CA3BD10509F47DC100E014E468 -:100E60007CC1CE019F700E94490678C1DD278E01AA -:100E7000106C73C1CF70DD278E01146D6EC100E060 -:100E800010ED6BC100E012ED68C100E013ED65C12B -:100E90000E941F1C0E945D0A0E9424048FEF94E3AD -:100EA0002CE0815090402040E1F700C000000E94FB -:100EB000762353C18091F20281608093F2024DC18A -:100EC0000E94D723811102C00E94B3230E94EA230B -:100ED00090E090931D0380931C03C23080E5D807F7 -:100EE00021F480911C03816086C0C43090E5D9074D -:100EF00021F480911C0382607EC0C63020E5D207B9 -:100F000021F480911C03846076C0C83080E5D80746 -:100F100019F480911C0327C0CA3090E5D90721F449 -:100F200080911C03806167C0CC3020E5D20721F49A -:100F300080911C0380625FC0CE3080E5D80721F429 -:100F400080911C03806457C0C03190E5D90721F41B -:100F500080911C0380684FC0C23120E5D20729F47C -:100F600080911C038460886046C0C33080E5D80748 -:100F700021F480911C038E7F3EC0C53090E5D907D7 -:100F800021F480911C038D7F36C0C73020E5D20745 -:100F900021F480911C038B7F2EC0C93080E5D807D7 -:100FA00019F480911C0326C0CB3090E5D90721F4B9 -:100FB00080911C038F7E1FC0CD3020E5D20721F425 -:100FC00080911C038F7D17C0CF3080E5D80721F4B6 -:100FD00080911C038F7B0FC0C13190E5D90721F4AC -:100FE00080911C038F7707C0C331D04531F48091C5 -:100FF0001C038B7F877F80931C0380911C030E94BE -:10100000EE23ABC08D2F99278F70992781309105E2 -:10101000D9F49E012370332702C0880F991F2A95A7 -:10102000E2F79C688E0144E0000F111F4A95E1F73A -:1010300000271370802B912B53E0CC0FDD1F5A95A6 -:10104000E1F7C076DD272FC08230910531F4DC2F27 -:10105000CC278E01016F106A80C08330910569F43E -:10106000CE018370992701E010E002C0000F111F2C -:101070008A95E2F7C8019C680FC084309105B9F4E5 -:10108000CE018370992701E010E002C0000F111F0C -:101090008A95E2F7C8019A6823E0CC0FDD1F2A95F4 -:1010A000E1F7C07ED7708C010C2B1D2B56C085300C -:1010B000910531F4DC2FCC278E01046F106A4DC0EE -:1010C000069709F04AC0CF71DD27DC2FCC278E01AF -:1010D000106243C000E010E040C08E013EC001E855 -:1010E00010E43BC003E810E438C002EE14E435C05D -:1010F00009EE14E432C00AEE14E42FC005EB14E448 -:101100002CC006EB14E429C007EB14E426C00CEC59 -:1011100014E423C00DEC14E420C003E815E41DC062 -:101120000AE815E41AC002E915E417C004E915E459 -:1011300014C001E216E411C003E216E40EC004E29A -:1011400016E40BC005E216E408C006E216E405C08A -:1011500007E216E402C00AE216E4C801DF91CF916B -:101160001F910F9108959CE0799FF001112490E365 -:10117000899FE00DF11D1124E60FF11DEE0FFF1FF9 -:10118000EE52FE4F85919491803E9105E0F4803CB3 -:10119000910558F58133910509F46FC048F48932FF -:1011A000910509F463C08A32910509F46DC072C0DB -:1011B00089339105E9F082389105D1F085339105A5 -:1011C00009F44DC067C0833E910581F138F4803E3B -:1011D0009105B9F0823E9105D9F05CC0863E91053B -:1011E00061F1873E9105A1F155C00E944106089525 -:1011F00020911C0320FD02C021FF4CC080EE90E036 -:1012000049C080911C0380FFF9CF89E390E042C080 -:1012100080911C0382FF0EC080911C0384FF03C0D9 -:1012200080E090E037C083EE90E034C080911C03F2 -:1012300082FFF2CF82EE90E02DC080911C0383FFED -:101240000BC080911C0384FDEBCF87EE90E022C0A1 -:1012500080911C0383FFF5CF86EE90E01BC0809148 -:101260001C0385FF07C089E290E014C080911C0335 -:1012700085FFF9CF85E390E00DC080911C0386FFC8 -:1012800007C08AE290E006C080911C0386FFF9CF78 -:1012900081E390E00E94510608950C941303E82F17 -:1012A000F0E0E25BFE4F8081E82FEF70F0E0829586 -:1012B0008F7021E030E0A90102C0440F551F8A95CC -:1012C000E2F740A308950F931F93CF93DF9385B761 -:1012D000806885BF85B7806885BFC3E0D0E001E046 -:1012E00010E0FE01E25BFE4F8081E82FEF70F0E03E -:1012F00021A182958F70A80102C0440F551F8A95C5 -:10130000E2F7CA01822B81A38C2F0E944F092197FB -:1013100040F78BE090E061E070E0FC01EE5BFE4F97 -:101320002081E22FEF70F0E042A122952F70DB01C7 -:1013300002C0AA0FBB1F2A95E2F79D01242B22A30E -:10134000019758F7DF91CF911F910F910C94CF0324 -:10135000EF92FF920F931F93CF93DF9300E212E07F -:10136000C3E0EE24E394F12CD5E08C2F0E944F09CA -:101370008BE090E040E050E0FC01EE5BFE4F6081CE -:10138000E62FEF70F0E020A130E062956F7002C0B0 -:10139000359527956A95E2F720FD09C09701082E3B -:1013A00002C0220F331F0A94E2F7422B532B0197FE -:1013B00018F7F801929182918F018417950721F017 -:1013C00051834083D09305018C2F0E944F09C15057 -:1013D00060F68091050187FD2CC081508093050146 -:1013E0008F3F39F08FE99FE00197F1F700C00000CF -:1013F00020C080911E0290911F029093270280933B -:10140000260280911C0290911D02909325028093E8 -:10141000240280911A0290911B02909323028093E0 -:1014200022028091180290911902909321028093D8 -:1014300020020E94D10381E0DF91CF911F910F9193 -:10144000FF90EF900895E82FF0E0EE0FFF1FE05EB1 -:10145000FD4F80819181089508950F931F93CF933D -:1014600008E212E0C0E0F801929182918F010E949F -:101470009322C80FF2E000321F07A9F78C2FCF91FB -:101480001F910F9108950E94D723811102C00E94DD -:10149000B3230E94FC23809307033E9A809171003E -:1014A0008D7F8093710082E0809390008AE1809329 -:1014B000910081E080932A02089580912A0281118F -:1014C00002C00E94430A10927A021092790280911F -:1014D00071008D7F80937100809190008F73809355 -:1014E000900010923C0210923B02109273021092F4 -:1014F000740210927502109276021092720210928B -:101500007102E1E5F2E0A1E4B2E0119211921192D0 -:1015100011921D921D9282E0E137F807B1F708950C -:10152000CF92DF92EF92FF920F931F93CF93DF93AF -:1015300020913B02222309F484C06B017C0180913D -:101540002A02811102C00E94430A01E712E0C7E0AB -:10155000D0E0A7019601F801929182917291629177 -:101560008F010E944729811131C0FE01EE0FFF1F3C -:10157000EE0FFF1FEF5AFD4F10821182128213826D -:10158000DE01AA0FBB1FAF5BBD4F11961C921E92CE -:10159000C730D105E9F02196448155816681778174 -:1015A000408351836283738314821582168217826B -:1015B00012968D919C91139711969C938E931396EE -:1015C0001C921E92129734961296E2CF219708F63B -:1015D0008091790290917A02019797FD05C09093CE -:1015E0007A028093790204C010927A0210927902F2 -:1015F0008091790290917A0220917702309178025D -:101600002817390724F01092780210927702892B5C -:10161000C1F4809171008D7F809371008091900062 -:101620008F73809390001092730210927402109244 -:10163000750210927602109272021092710210924C -:101640003B02DF91CF911F910F91FF90EF90DF90C0 -:10165000CF9008951F920F920FB60F9211244F92C0 -:101660005F926F927F928F929F92AF92BF92CF9232 -:10167000DF92EF92FF922F933F934F935F936F937D -:101680007F938F939F93AF93BF93CF93DF93EF930A -:10169000FF9380913B02882309F49BC1C09179029A -:1016A000D0917A021C161D060CF093C140902B02BB -:1016B00050902C0260902D0270902E0220E030E0BD -:1016C000A901C301B2010E94F22A18160CF065C0EC -:1016D000C130D10509F452C080917702909178020F -:1016E000BE010E94C42C7C01909378028093770203 -:1016F00080903D0290903E02A0903F02B090400248 -:1017000020E030E040E85FE3C501B4010E94E32837 -:1017100060933D0270933E0280933F02909340029B -:10172000F701EE0FFF1FEE0FFF1FEF5AFD4FA30152 -:10173000920160817181828193810E944B2920E016 -:1017400030E040E05EE30E94F62A9B01AC01C50157 -:10175000B4010E94F22A18168CF4C7010196BE014A -:101760000E94C42C909378028093770210923D02DD -:1017700010923E0210923F0210924002E0917702D6 -:10178000F0917802EE0FFF1FEE0FFF1FEF5AFD4F93 -:101790006081718182819381D0C0C0907302D090AA -:1017A0007402E0907502F090760220E030E0A9012A -:1017B000C701B6010E9447292197882309F4A2C0D6 -:1017C000FE01EE0FFF1FEE0FFF1FEF5AFD4F80804F -:1017D0009180A280B380A5019401C701B6010E9447 -:1017E000472987FF31C0A501940160E070E08CEDCE -:1017F00093EC0E944B2920E030E040E451E40E9449 -:101800004B2920E030E040E05FE30E94F62A9B0194 -:10181000AC0160E070E080E090E40E94592B9B01F5 -:10182000AC01C501B4010E94F62A9B01AC01C701BD -:10183000B6010E94472987FF07C0A701960160E013 -:1018400070E08CED93E439C0A5019401C701B601A5 -:101850000E94F22A18160CF055C0A501940160E010 -:1018600070E08CED93E40E944B2920E030E040E4EE -:1018700051E40E944B2920E030E040E05FE30E9409 -:10188000F62A9B01AC0160E070E080E090E40E94E9 -:10189000592B9B01AC01C501B4010E94F62A9B01A2 -:1018A000AC01C701B6010E94F22A18165CF5A70127 -:1018B000960160E070E08CED93EC0E944B2920E0F3 -:1018C00030E040E451E40E944B2920E030E040E069 -:1018D0005FE30E94F62A9B01AC0160E070E080E0CB -:1018E00090E40E94592B9B01AC01C701B6010E94F4 -:1018F000F62A60937302709374028093750290933A -:10190000760213C0FE01EE0FFF1FEE0FFF1FEF5A0E -:10191000FD4F80819181A281B38180937302909366 -:101920007402A0937502B093760260917302709175 -:101930007402809175029091760220912802309174 -:1019400029022F3F4FEF340731F02F5F3F4F309385 -:101950002902209328020E94D20E6B017C0120E014 -:1019600034E244EF51E40E94472987FF08C086EF24 -:10197000C82E88E2D82E84EFE82E81E4F82E20E0ED -:1019800030E040E051E4C701B6010E94F62A9B0115 -:10199000AC0160E074E284E79BE40E944B296B0198 -:1019A0007C010E94B8297093970060939600209163 -:1019B0000601309107014091080150910901C701CA -:1019C000B6010E94F62A0E94B8297093990060938C -:1019D000980080913C02882309F433C1C0903702FB -:1019E000D0903802E0903902F0903A0220E030E0E6 -:1019F000A901C701B6010E94F22A1816D4F58091F8 -:101A00002802909129028F3F2FEF920729F001962B -:101A10009093290280932802C701B6010E94D20E3A -:101A200020E030E040E051E40E94F62A9B01AC0146 -:101A300060E074E284E79BE40E944B296B017C0127 -:101A40000E94B82970939700609396002091060138 -:101A5000309107014091080150910901C701B60179 -:101A60000E94F62A0E94B82970939900609398000A -:101A700008C0109297001092960010929900109250 -:101A8000980060913102709132026F5F7F4F7093C6 -:101A9000320260933102209196003091970080E0ED -:101AA00090E0232BF1F0C0919600D09197000E9416 -:101AB000E4296B017C01BE0180E090E00E94E429F2 -:101AC0009B01AC0160913302709134028091350228 -:101AD000909136020E944B2920E03FEF4FE757E4F8 -:101AE00010C00E94E4296B017C0120E030EE4FEF32 -:101AF00054E46091330270913402809135029091E8 -:101B000036020E94F62A9B01AC01C701B6010E9471 -:101B1000F22A87FD96C080912F028F5F80932F025B -:101B200090E0209103033091040382179307A0F003 -:101B300080910E03882319F010922F020DC080911E -:101B400071008D7F80937100809190008F738093DE -:101B5000900010923C027DC080913002C0912F0213 -:101B6000811128C0C0900803D0900903E0900A03B7 -:101B7000F0900B0320E030E0A901C701B6010E94FC -:101B8000F22A1816BCF481E08093300210923702DA -:101B9000109238021092390210923A02C092330227 -:101BA000D0923402E0923502F0923602C150C093D6 -:101BB0002F0243C010923002109229021092280284 -:101BC000E0910503F091060348E0C49FE00DF11D8C -:101BD000112480819181A281B381809337029093F7 -:101BE0003802A0933902B0933A0220E030E040E896 -:101BF0005EE364817581868197810E94F62A6B017C -:101C00007C0180910A01682F70E080E090E00E94E2 -:101C1000E42920E030E048EC52E40E944B299B018B -:101C2000AC01C701B6010E94F62A6093330270939B -:101C30003402809335029093360210923202109251 -:101C400031028091070380FD04C010923C02109283 -:101C50003B02FF91EF91DF91CF91BF91AF919F91A7 -:101C60008F917F916F915F914F913F912F91FF9055 -:101C7000EF90DF90CF90BF90AF909F908F907F902C -:101C80006F905F904F900F900FBE0F901F90189520 -:101C9000CF92DF92EF92FF92CF93DF936B017C01A3 -:101CA000EA0180912A02811102C00E94430A8091B8 -:101CB000070380FF46C08091790290917A020897CD -:101CC0000CF03FC0809171008D7F809371008091F6 -:101CD0003C0281110E945D0A81E080933B021092D8 -:101CE00029021092280220E030E0A901C701B601C4 -:101CF0000E94F22A1816DCF48091790290917A02FF -:101D0000FC01EE0FFF1FEE0FFF1FEF5AFD4FC082C9 -:101D1000D182E282F382FC01EE0FFF1FEF5BFD4FE9 -:101D2000D183C083019690937A0280937902809147 -:101D30007100826080937100809190008068809330 -:101D40009000DF91CF91FF90EF90DF90CF900895BA -:101D500080910703817008958091070381608093CB -:101D600007030E9400240C942B04809107038E7FAC -:101D7000809307030C94002480917B0290E00196ED -:101D800066E070E00E94C42C80937B0208958091ED -:101D90007B0290E0019766E070E00E94C42C809383 -:101DA0007B0208958F929F92AF92BF92CF92DF9263 -:101DB000EF92FF920F931F93CF93DF936B017C0100 -:101DC000C0912802D0912902BE0180E090E00E94DB -:101DD000E4294B015C01A701960160E070E08CE50D -:101DE00094E40E944B299B01AC01C501B4010E94FF -:101DF000F62A0E94B82920917B02233009F473C08F -:101E000028F4222351F02130E9F02CC1243009F4C8 -:101E1000A0C0253009F4E0C025C180E090E0A0E03A -:101E2000BFE38093060190930701A0930801B0934C -:101E3000090110922B0210922C0210922D02109286 -:101E40002E0210C110922B0210922C0210922D0221 -:101E500010922E026431710540F46A30710560F50C -:101E600020E030E040E85EE32BC0693C710508F0FB -:101E7000AAC080E090E00E94E42920E030E040EA3F -:101E800051E40E94E22820E030E044E353E40E9461 -:101E90004B299B01AC010E94F62A20E030E040E093 -:101EA0005EE30E94F62A9B01AC0160E070E080E0F6 -:101EB0009EE30E94E22844C020E030E040E05FE37F -:101EC000C701B6010E94F62A6B017C0180E090E018 -:101ED000A0E0BEE38093060190930701A093080160 -:101EE000B0930901BFC010922B0210922C021092E5 -:101EF0002D0210922E024AE0469F9001479F300D1E -:101F00001124C90168EB7BE00E94B02CBC016C5D20 -:101F1000754077FF03C0719561957109882777FD3A -:101F20008095982F0E94E6292EE333EC4EE259E388 -:101F30000E94F62A20E030E040EC5EE30E94E328B5 -:101F40006093060170930701809308019093090143 -:101F500089C010922B0210922C0210922D02109226 -:101F60002E02CE0183709927892BE1F0BE016170AA -:101F7000772780E090E00E94E42920E030E040E014 -:101F80005EE30E94F62A20E030E040E45FE30E9436 -:101F9000E3286093060170930701809308019093F2 -:101FA00009010CC080E090E0A0E0BFE3809306014F -:101FB00090930701A0930801B0930901C770DD2732 -:101FC000CD2B09F04FC0109206011092070110921C -:101FD00008011092090146C010922B0210922C02A7 -:101FE00010922D0210922E0200E010E020E03FE35C -:101FF0000093060110930701209308013093090113 -:102000006739710578F180E090E00E94E42920E0D2 -:1020100030E047E153E40E94E22820E030E04AE764 -:1020200054E40E944B2920E030E048E452E40E944E -:10203000F62A20E030E040EA51E40E94282A0E947B -:10204000B329660F771F660F771FFB01EE5AFE4F0D -:102050002081318142815381C701B6010E94F62A55 -:102060006B017C01C701B601DF91CF911F910F91E8 -:10207000FF90EF90DF90CF90BF90AF909F908F90A8 -:10208000089580918C020895CF93DF9300D01F9222 -:10209000CDB7DEB79C0180911303843019F593E02E -:1020A00099833B832A839093E9008FEF9091E80016 -:1020B000815095FD06C095ED9A95F1F700008111CC -:1020C000F5CF8091E80085FF0DC040E050E063E06F -:1020D00070E0CE0101960E94A5128091E8008E77F3 -:1020E0008093E8000F900F900F90DF91CF910895AB -:1020F000CF93DF9300D01F92CDB7DEB720911303AB -:10210000243021F522E029839B838A8383E0809316 -:10211000E9008FEF9091E800815095FD06C095EDA4 -:102120009A95F1F700008111F5CF8091E80085FFC5 -:102130000DC040E050E063E070E0CE0101960E94E7 -:10214000A5128091E8008E778093E8000F900F90A1 -:102150000F90DF91CF910895209113032430F1F473 -:1021600022E02093E9002FEF3091E800215035FD67 -:1021700006C035ED3A95F1F700002111F5CF209119 -:10218000E80025FF0BC040E050E065E070E00E94F1 -:10219000A5128091E8008E778093E8000895CF9390 -:1021A000DF93EC0190911303943009F046C08091C5 -:1021B00015018823D9F0809116018823B9F09093F6 -:1021C000E9008FEF9091E800815095FD06C095E100 -:1021D0009A95F1F700008111F5CF8091E80085FF15 -:1021E0002CC040E050E060E170E017C081E08093D7 -:1021F000E9008FEF9091E800815095FD06C095EDC4 -:102200009A95F1F700008111F5CF8091E80085FFE4 -:1022100014C040E050E068E070E0CE010E94A512DA -:102220008091E8008E778093E80080E1FE01ACE7C2 -:10223000B2E001900D928A95E1F7DF91CF91089578 -:1022400080911203811109C00E943A140E949714D0 -:102250008091E20084608093E2000895109212035E -:102260000895089508950C94DE2242E061EC81E027 -:102270000E94B41342E061EC82E00E94B41342E099 -:1022800061EC83E00E94B41342E161EC84E00C94C1 -:10229000B41380911503833009F455C030F48130B4 -:1022A00071F0823009F48EC008958A3009F47AC042 -:1022B0008B3009F460C0893009F09CC020C0809147 -:1022C0001403813A09F096C08091E800877F8093DB -:1022D000E8008091180390911903892B21F460E1A3 -:1022E0008CE792E003C060E080E090E070E00E9444 -:1022F000F0128091E8008B778093E8000895809138 -:102300001403813209F076C080911803909119036B -:10231000009719F0039709F06DC08091E800877F5E -:102320008093E8008091E80082FD05C0809113034E -:102330008111F8CF5FC08091F10080938C02809171 -:10234000E8008B7753C080911403813A09F052C0A2 -:102350008091180390911903892B09F04BC080914B -:10236000E800877F8093E8008091E80080FFFCCF41 -:102370008091150136C0809114038132D9F5809186 -:10238000180390911903892BA9F58091E800877FA4 -:102390008093E8000E94E913809116038093150151 -:1023A0000C941F1C80911403813221F58091E80068 -:1023B000877F8093E8000E94E91380911703809340 -:1023C0008D02089580911403813AA1F48091E80070 -:1023D000877F8093E8008091E80080FFFCCF8091A8 -:1023E0008D028093F1008091E8008E778093E80061 -:1023F0000C94E913089584B7877F84BF88E10FB6F2 -:10240000F89480936000109260000FBE90E080E826 -:102410000FB6F89480936100909361000FBE0E9404 -:102420008C170E943A140E9497148091E2008460F5 -:102430008093E20078940E941D170E948E178BE013 -:1024400091E00E94381780911303853069F40E944F -:102450009F22809111038823B1F30E94CD2288230B -:1024600091F30E948F12EFCF0E949617ECCF292F85 -:10247000332723303105C9F064F42130310581F070 -:102480002230310509F043C08DE690E02EE034E0C3 -:1024900042C021323105F1F02232310541F137C01D -:1024A00082E190E02BE734E036C099278130910536 -:1024B00041F08230910541F0892B49F5EAE0F4E0E2 -:1024C00005C0ECEDF3E002C0E2EBF3E0849190E0B4 -:1024D0009F0121C06430D8F4E62FF0E0EE0FFF1F1B -:1024E000E255FE4F2081318189E090E014C06430D4 -:1024F00070F470E0FB01EE0FFF1FEA55FE4F2081E4 -:102500003181FB01EE55FE4F808190E004C080E0F8 -:1025100090E020E030E0FA0131832083089580E1EB -:1025200089BD82E189BD09B400FEFDCF8091D8004C -:102530008F7D8093D8008091E00082608093E000DE -:102540008091E00081FDFCCF0895CF92DF92EF9261 -:10255000FF920F931F93CF93DF93EC018B016A01DE -:102560000E940814811133C0C114D10439F0F6015E -:1025700080819181081B190BC80FD91FE12CF12C08 -:102580000115110519F18091E80085FD16C08091B3 -:10259000E8008E778093E800C114D10449F0F60179 -:1025A00080819181E80EF91EF182E08285E00FC002 -:1025B0000E940814882321F30AC089918093F100B6 -:1025C00001501109FFEFEF1AFF0ADACF80E0DF9127 -:1025D000CF911F910F91FF90EF90DF90CF900895D2 -:1025E00020911A0330911B032617370748F0611515 -:1025F000710539F42091E8002E772093E80001C09E -:10260000B90140E061157105A9F12091130322235E -:1026100009F443C0253009F442C02091E80023FDAD -:1026200040C02091E80022FD32C02091E80020FF48 -:10263000E9CF4091F3002091F20030E0342BFC010F -:10264000CF016115710559F02830310540F48191B1 -:102650008093F100615071092F5F3F4FF1CF41E04E -:102660002830310509F040E02091E8002E772093D2 -:10267000E800C8CF4111C9CF0AC080911303882355 -:1026800061F0853061F08091E80083FD0AC080919F -:10269000E80082FFF2CF80E0089582E0089583E0B1 -:1026A000089581E0089520911A0330911B032617A5 -:1026B000370748F06115710539F42091E8002E774D -:1026C0002093E80001C0B901FC0120E0611571050B -:1026D00091F180911303882309F440C0853009F4F7 -:1026E0003FC08091E80083FD3DC08091E80082FDFD -:1026F0002FC08091E80080FFE9CF2091F300809106 -:10270000F20090E0922B6115710559F08830910527 -:1027100040F424912093F1003196615071090196A3 -:10272000F2CF21E0089709F020E08091E8008E7751 -:102730008093E800CBCF2111CCCF0AC08091130346 -:10274000882361F0853061F08091E80083FD0AC044 -:102750008091E80082FFF2CF80E0089582E0089542 -:1027600083E0089581E00895982F973058F590936D -:10277000E900981739F07091EC002091ED0050912C -:10278000F00003C0242F762F50E021FF19C03091B4 -:10279000EB003E7F3093EB003091ED003D7F3093B6 -:1027A000ED003091EB0031603093EB007093EC0062 -:1027B0002093ED005093F0002091EE0027FF07C01A -:1027C0009F5FD3CF8F708093E90081E0089580E010 -:1027D00008958091140387FF11C08091E80082FD65 -:1027E00005C0809113038111F8CF11C08091E800DA -:1027F0008B770BC080911303882349F08091E80008 -:1028000080FFF8CF8091E8008E778093E8000895EC -:102810002091E4003091E50095E64091EC00842F92 -:10282000817040FF22C08091E80080FD1CC0809133 -:102830001303882391F0853091F08091EB0085FDA2 -:1028400010C04091E4005091E5004217530729F36E -:102850009A01915011F784E0089582E0089583E091 -:10286000089581E0089580E008954091E80042FFD6 -:10287000DECF08950E94A8140E94B014E0EEF0E0AC -:10288000808181608083E8EDF0E080818F778083B4 -:1028900019BCA7EDB0E08C918E7F8C9380818F7EE8 -:1028A00080831092120308950F931F93CF93DF93A9 -:1028B0000E94A8140E94B014C8EDD0E088818F77E0 -:1028C000888388818068888388818F7D888319BC0C -:1028D0001092130310920F03109211031092100321 -:1028E00000EE10E0F80180818B7F80838881816019 -:1028F000888342E060E080E00E94B413E1EEF0E003 -:1029000080818E7F8083E2EEF0E080818160808331 -:10291000808188608083F80180818E7F80838881B8 -:1029200080618883DF91CF911F910F910895E8ED29 -:10293000F0E080818F7E8083E7EDF0E08081816030 -:10294000808384E082BF81E0809312030C9454144E -:10295000E8EDF0E080818E7F80831092E2000895A0 -:102960001092DA001092E10008951F920F920FB6B4 -:102970000F9211242F933F934F935F936F937F9305 -:102980008F939F93AF93BF93EF93FF938091E10059 -:1029900082FF0BC08091E20082FF07C08091E100BE -:1029A0008B7F8093E1000E941C178091DA0080FFEA -:1029B0001FC08091D80080FF1BC08091DA008E7FFD -:1029C0008093DA008091D90080FF0DC080E189BD3D -:1029D00082E189BD09B400FEFDCF81E0809313033D -:1029E0000E94201105C019BC109213030E942E11E1 -:1029F0008091E10080FF19C08091E20080FF15C046 -:102A00008091E2008E7F8093E2008091E2008061FD -:102A10008093E2008091D80080628093D80019BC36 -:102A200085E0809313030E9432118091E10084FFBE -:102A300030C08091E20084FF2CC080E189BD82E13A -:102A400089BD09B400FEFDCF8091D8008F7D8093B1 -:102A5000D8008091E1008F7E8093E1008091E200B8 -:102A60008F7E8093E2008091E20081608093E2009B -:102A700080910F03882311F084E007C08091E30068 -:102A800087FD02C081E001C083E0809313030E94B0 -:102A900033118091E10083FF29C08091E20083FF20 -:102AA00025C08091E100877F8093E10082E08093E0 -:102AB000130310920F038091E1008E7F8093E10059 -:102AC0008091E2008E7F8093E2008091E20080613D -:102AD0008093E20042E060E080E00E94B4138091C5 -:102AE000F00088608093F0000E943111FF91EF9117 -:102AF000BF91AF919F918F917F916F915F914F9116 -:102B00003F912F910F900FBE0F901F9018951F921D -:102B10000F920FB60F9211242F933F934F935F9311 -:102B20006F937F938F939F93AF93BF93CF93DF93D5 -:102B3000EF93FF93C091E900CF708091EC00D82F04 -:102B4000D17080FDD0E81092E9008091F000877F7D -:102B50008093F00078940E94CB151092E900809148 -:102B6000F00088608093F000CD2BCF70C093E90017 -:102B7000FF91EF91DF91CF91BF91AF919F918F9195 -:102B80007F916F915F914F913F912F910F900FBE69 -:102B90000F901F9018951F93CF93DF93CDB7DEB79B -:102BA000AA970FB6F894DEBF0FBECDBFE4E1F3E005 -:102BB00088E08E0F9091F10091938E13FBCF0E94CD -:102BC00049118091E80083FF1FC180911403909107 -:102BD0001503492F50E04A30510508F015C1FA019C -:102BE000EA5AFF4F0C94D82C803881F0823809F0D3 -:102BF0000BC1809118038F708093E9008091EB00E6 -:102C000085FB882780F91092E90006C080911003A7 -:102C100090911103911182609091E800977F9093B9 -:102C2000E8008093F1001092F100C8C0282F2D7F9A -:102C300009F0EAC0882319F0823061F0E5C0809184 -:102C40001603813009F0E0C0933009F080E08093F2 -:102C500011032BC080911603811127C080911803A6 -:102C60008F7009F4D1C08093E9002091EB0020FF20 -:102C70001CC0933021F48091EB00806214C09091CD -:102C8000EB0090619093EB0021E030E0A90102C0DD -:102C9000440F551F8A95E2F74093EA001092EA002C -:102CA0008091EB0088608093EB001092E9008091A6 -:102CB000E800877F86C08111A7C0109116031F7797 -:102CC0008091E3008078812B8093E3008091E8007D -:102CD000877F8093E8000E94E9138091E80080FFDD -:102CE000FCCF8091E30080688093E300111102C063 -:102CF00082E001C083E08093130386C08058823055 -:102D000008F082C080911603909117038C3D53E028 -:102D1000950779F583E08A838AE289834FB7F8942F -:102D2000DE01139620E03EE051E2E32FF0E0509305 -:102D30005700E49120FF03C0E295EF703F5FEF7012 -:102D40008E2F90E0EA3010F0C79601C0C0968D93A8 -:102D50009D932F5F243149F74FBF8091E800877F13 -:102D60008093E8006AE270E0CE0101960E94F012C2 -:102D700014C0AE014F5F5F4F609118030E9437127D -:102D8000BC01009709F440C09091E800977F9093B0 -:102D9000E80089819A810E9453138091E8008B7723 -:102DA0008093E80031C0803879F58091E800877F12 -:102DB0008093E80080910F038093F1008091E800F8 -:102DC0008E778093E8000E94E9131EC081111CC019 -:102DD000909116039230C0F48091E800877F809331 -:102DE000E80090930F030E94E91380910F03811173 -:102DF00006C08091E30087FD02C081E001C084E04D -:102E0000809313030E9435118091E80083FF0AC06C -:102E10008091E800877F8093E8008091EB008062DA -:102E20008093EB00AA960FB6F894DEBF0FBECDBF1D -:102E3000DF91CF911F9108950895CF93809113034F -:102E40008823A1F0C091E900CF709091EC00892F08 -:102E5000817090FD80E8C82B1092E9008091E80015 -:102E600083FD0E94CB15CF70C093E900CF910895E8 -:102E700090939302809392020895E0919202F091D0 -:102E80009302309721F00190F081E02D099480E0C9 -:102E90000895E0919202F0919302309721F0028020 -:102EA000F381E02D09940895E0919202F09193024C -:102EB000309721F00480F581E02D09940895209148 -:102EC0009002309191028217930771F090939102D2 -:102ED00080939002E0919202F0919302309721F05A -:102EE0000680F781E02D0994089520918E0230919B -:102EF0008F028217930771F090938F0280938E0256 -:102F0000E0919202F0919302309721F00084F185D4 -:102F1000E02D0994089508950C948B170E941223B4 -:102F20000E9463090E9498230C9447285F926F9235 -:102F30007F928F929F92AF92BF92CF92DF92EF9249 -:102F4000FF920F931F93CF93DF9300D000D01F9277 -:102F5000CDB7DEB70E94A8099DE9C92E92E0D92E0F -:102F600003E010E0AA24A394B12C502E802F0E94DD -:102F7000230A4C01F601729062906F01682679264F -:102F800061147104A1F40150110978F78FEF89835E -:102F90008A831B820E941B238160782F9D838C83F0 -:102FA00049815A816B818D810E94461838C0809179 -:102FB000F20281FD0E942C0A2BE030E07501022E06 -:102FC00002C0EE0CFF1C0A94E2F7C701862197218C -:102FD000892B09F129835A828E209F2091E089282C -:102FE00009F490E09B830E941B238160782F9D83CE -:102FF0008C8349815A816B818D810E944618000F14 -:10300000111FF801EB56FD4F80819181E826F926CA -:10301000F182E08204C02150310980F6B4CF0E94D1 -:103020007F25109194020E943D171817D1F00E943D -:103030003D17809394020F900F900F900F900F9078 -:10304000DF91CF911F910F91FF90EF90DF90CF9084 -:10305000BF90AF909F908F907F906F905F900C94F7 -:103060004D090F900F900F900F900F90DF91CF911F -:103070001F910F91FF90EF90DF90CF90BF90AF9096 -:103080009F908F907F906F905F900895CF93DF9384 -:10309000CDB7DEB72B970FB6F894DEBF0FBECDBF0E -:1030A0004F83588769877A878B87DE01119686E080 -:1030B000FD0111928A95E9F785E0FE0137960190AE -:1030C0000D928A95E1F749815A816B817C818D81CE -:1030D0009E810E94BD1E2B960FB6F894DEBF0FBED8 -:1030E000CDBFDF91CF910895CF93882309F4C2C05B -:1030F000C82F823859F40E943D1781FDBBC089E377 -:103100000E9497210E94642289E30CC0833879F4DD -:103110000E943D1780FDAEC083E50E9497210E946A -:10312000642283E50E94D921CF910C9464228438D3 -:1031300059F40E943D1782FD9DC087E40E949721AB -:103140000E94642287E4EECF8CEF8C0F813A48F422 -:103150008C2F0E94AF2781118DC08C2F0E94972148 -:10316000E3CF80E28C0F883048F4C77081E001C063 -:10317000880FCA95EAF70E941D22D6CF8BE58C0FE7 -:10318000833078F4C53A29F0C63A31F083E890E00C -:1031900005C081E890E002C082E890E0CF910C94F5 -:1031A0005F1788E58C0F833108F064C0C83A39F1A5 -:1031B000C93A41F1CA3A49F1CB3A51F1CC3A59F105 -:1031C000CD3A61F1C03B69F1CE3A71F1CF3A79F174 -:1031D000C13B81F1C23B89F1C33B91F1C43B99F101 -:1031E000C53BA1F1C63BA9F1C73BB1F1C83BB9F161 -:1031F000C93BC1F1CA3BC9F180E090E038C082EE22 -:1032000090E035C089EE90E032C08AEE90E02FC0A9 -:1032100085EB90E02CC086EB90E029C087EB90E036 -:1032200026C08CEC90E023C08DEC90E020C083E8B9 -:1032300091E01DC08AE891E01AC082E991E017C0D0 -:1032400084E991E014C081E292E011C083E292E04F -:103250000EC084E292E00BC085E292E008C086E2F4 -:1032600092E005C087E292E002C08AE292E0CF914C -:103270000C947517CF910895882309F44BC08238B8 -:1032800059F40E943D1781FF45C089E30E949721B0 -:103290000E94642289E30CC0833871F40E943D17B8 -:1032A00080FF38C083E50E9497210E94642283E555 -:1032B0000E94D9210C946422843859F40E943D174D -:1032C00082FF28C087E40E9497210E94642287E43D -:1032D000EFCF9CEF980F913A58F390E2980F983007 -:1032E00050F4877091E001C0990F8A95EAF7892F11 -:1032F0000E942322DFCF9BE5980F933020F480E0DB -:1033000090E00C945F17885A833120F480E090E0BD -:103310000C9475170895882321F00E941D220C94A7 -:1033200064220895882321F00E9423220C946422B1 -:1033300008957F928F929F92AF92BF92CF92DF9229 -:10334000EF92FF920F931F93CF93DF931F92CDB70E -:10335000DEB77C01C62E772EFC01058102950F7029 -:10336000128111110E943A220E949021882379F043 -:10337000112369F080E28C0D883048F082E00E94D1 -:1033800079210E94902191E0D82ED92601C0D12C1C -:10339000E72DE295EF70F0E0E05AFF4F0C94D82C47 -:1033A000872D807F072D0F70882311F00295007FF5 -:1033B000112389F0002309F499C180E28C0D883033 -:1033C00020F4802F0E941D2203C0802F0E942D22F6 -:1033D0000E9464228BC18C2D0E943C19002309F4A9 -:1033E000C3C180E28C0D883020F4802F0E942322FC -:1033F00003C0802F0E9433220E946422B5C1872D12 -:10340000807F972D9F70803211F4892F03C0892F00 -:103410008295807FCC2021F0F1E0CF16A1F01DC075 -:10342000112339F0002319F1013009F50E944D22D2 -:103430009BC1002319F0013009F496C189830E94D1 -:103440005022898110C1112321F0063008F08CC16F -:103450000EC0053008F088C106C1112359F00023C1 -:1034600031F0F701958190FF41C19F7095830E94D3 -:103470008B197AC1002309F4F6C03EC1872D8695C9 -:103480008695837090E0009719F0019761F06CC108 -:10349000112321F08C2D972D937002C080E090E0D5 -:1034A0000E945F1761C1112321F08C2D972D93701D -:1034B00002C080E090E00E94751756C18C2D112348 -:1034C00019F00E94872402C00E94EF240E947425F4 -:1034D0004BC1872D837009F052C0111145C18C2D4D -:1034E000829586958770880F880F9C2D9F70892EF6 -:1034F000912CA12CB12C082E04C0880C991CAA1C5C -:10350000BB1C0A94D2F7C4FE14C00FE010E020E008 -:1035100030E0B901A80104C0440F551F661F771F92 -:103520008A95D2F7CB01BA016095709580959095F8 -:1035300003C060E070E0CB01272D2695269523700F -:1035400030E02230310569F02330310589F06829F7 -:1035500079298A299B292130310571F00E940520A3 -:1035600003C1682979298A299B290E942120FCC04E -:103570000E940520C501B4010E94E91FF5C0112376 -:1035800019F0872D817001C08695882309F4ECC05D -:103590008C2D829586958770880F880F9C2D9F7043 -:1035A000892E912CA12CB12C082E04C0880C991CBA -:1035B000AA1CBB1C0A94D2F7C4FE14C00FE010E092 -:1035C00020E030E0B901A80104C0440F551F661F78 -:1035D000771F8A95D2F7CB01BA01609570958095D7 -:1035E000909503C060E070E0CB01272D26952695CD -:1035F0002370422F50E04230510569F043305105AD -:1036000089F0682979298A299B294130510571F06F -:103610000E94DF20A9C0682979298A299B290E9454 -:10362000FB20A2C00E94DF20C501B4010E94C3207C -:103630009BC08C2D90E0FC01E05EF109E531F105C5 -:1036400008F050C0E059FF4F0C94D82C0C2D0F708F -:10365000872D8F71112321F00E945C20802F07CFCE -:103660000E947D20802F0E9492197EC0112341F07C -:10367000053008F079C0872D8F710E94A22074C098 -:10368000063008F071C0F7CF112339F0872D8F7104 -:103690000E945C2069C01123C9F3872D8F710E949D -:1036A0007D2062C0112329F0872D8F710E94472051 -:1036B0005BC00E943D2058C0112351F0172D1F718F -:1036C000812F0E945C2063E0812F0E9470214CC0FA -:1036D00081E00E947921023008F446C082E00E9415 -:1036E000792142C0112331F0002381F28C2D0E94F8 -:1036F00074183AC0002389F28C2D0E943C1934C002 -:10370000472D4F706C2DC7010E94B8030E94611FA6 -:103710002BC0111129C0472D4F7050E04230510588 -:10372000B9F04CF44115510581F041305105E1F4F7 -:103730000E946F2819C04330510569F0443051058B -:1037400099F48C2D0E94C1280FC00E9458280CC0EB -:103750000E948B2809C00E949E2806C0472D4F70EA -:103760006C2DC7010E942E06DD20F9F00E946C210D -:1037700080FD1BC0F70112820E9466210E945C201E -:10378000C7010E94E41B0E9466210F90DF91CF9138 -:103790001F910F91FF90EF90DF90CF90BF90AF906F -:1037A0009F908F907F900C947D200F90DF91CF9110 -:1037B0001F910F91FF90EF90DF90CF90BF90AF904F -:1037C0009F908F907F9008950F931F93CF93DF93D7 -:1037D000EC01888199812B813C81232BB9F09F3F9B -:1037E00011F48F3F99F0CE010E942D04882371F0CF -:1037F000688179818A810E9462218C010E9417214F -:103800000E94DE1FB801CE010E949919DF91CF916D -:103810001F910F9108950E943A220E944A220E940D -:103820000F220E9464220E9425260E94742580E0B7 -:1038300090E00E945F1780E090E00C9475170E9462 -:103840002A220C940B1C0E945721292F22952F709D -:1038500030E02C3031054CF42A3031056CF4225024 -:10386000310922303105A8F407C02C30310569F048 -:103870002F30310551F00DC0803F69F018F4803EC3 -:1038800040F409C0843F29F406C093FB882780F9DF -:10389000089580E0089581E00895CF93DF9300D0EC -:1038A00000D01F92CDB7DEB70F900F900F900F9002 -:1038B0000F90DF91CF910895CF93DF9300D000D088 -:1038C00000D0CDB7DEB726960FB6F894DEBF0FBE98 -:1038D000CDBFDF91CF9108951F93CF93DF93C09118 -:1038E0009D0216E080919E02C81799F0D0E01C9FBF -:1038F000F0011D9FF00D1124E156FD4F40815181D3 -:1039000062817381848195810E945C1C2196C770BD -:10391000E9CFDF91CF911F9108954091CF0250914F -:10392000D0026091D1027091D2028091D302909125 -:10393000D4020C945C1C8091D40282958F7009F0A3 -:1039400054C08091D102882309F44FC080919D0218 -:10395000A0919E026091CF027091D0024091D2025C -:103960005091D302B6E08A1709F43FC090E04115A8 -:103970005105C1F17F3F11F46F3FA1F1B89FF001F4 -:10398000B99FF00D1124E156FD4F218172132AC019 -:103990002081621327C02281211124C02381348118 -:1039A0002417350710F421503109241B350B283C0E -:1039B0003105C0F42091D4022F7020612093D402ED -:1039C00026E0289FF001299FF00D1124EC55FD4FB2 -:1039D00080818F70806180838FEC92E00E94E41B75 -:1039E0000C946C1C01968770BECF0895CF92DF9225 -:1039F000EF92FF920F931F93CF93DF93CDB7DEB774 -:103A000062970FB6F894DEBF0FBECDBF8C0185E084 -:103A1000F801DE011D9601900D928A95E1F7D8011B -:103A20004C9111965C91119712966C911297139686 -:103A3000CD90DC9014973091CF027091D00280919C -:103A4000D2029091D302009709F46BC17F3F19F421 -:103A50003F3F09F466C1E090D102EE2009F4C0C0F6 -:103A60002091D402C816D90628F0F601E81BF90BFC -:103A7000CF0104C0809590958C0D9D1DFF24F3947B -:103A8000883C910578F0F12C207F09F0C6C07C2D90 -:103A9000D98AC88A89890E944D1C8FEC92E00E94C5 -:103AA000E41BB1C0822F807F09F046C0751314C09B -:103AB000341312C0611110C02F7020612093D40202 -:103AC0000E948D1C8FEC92E00E94E41B8091D40236 -:103AD000D80115968C932EC0CD2819F15F3F11F4B3 -:103AE0004F3FF9F0F62E61111CC080919D0220918C -:103AF0009E0236E0821709F45AC090E0389FF00128 -:103B0000399FF00D1124E156FD4F7181571306C006 -:103B10007081471303C07281711103C001968770D1 -:103B2000E9CFF62E662309F418C18091D402816092 -:103B30008093D402F12C11C1751308C0341306C050 -:103B4000611104C08091D402D801C3C04D875E8743 -:103B50008D859E856A8B0E94231C6A898823E1F1EA -:103B60006623D1F12091D402822F82958F7090E04C -:103B7000029774F08091CF029091D00298878F8342 -:103B80001986DB86CA862C87CE0107960E94E41B25 -:103B900086E0F801AFECB2E001900D928A95E1F772 -:103BA0000E949B1C0E948D1CFF24F394D6C04D875D -:103BB0005E878D859E850E945721292F22952F7023 -:103BC00030E0223031050CF0BCC09F7009F0B6C067 -:103BD000805E883008F4C1C0C8010E94E41BE4CFB5 -:103BE000C816D90608F453C0F601E81BF90BCF013B -:103BF000883C910508F450C0F12C7C2DD98AC88AE4 -:103C000089890E944D1CEFECF2E086E0DF011D92F5 -:103C10008A95E9F70E948D1CA0C0751314C0341357 -:103C200012C0611110C08091D402F8018583C801CF -:103C30000E94E41B86E0EFECF2E0DF011D928A9522 -:103C4000E9F7FE2C8AC04D875E878D859E856A8B3D -:103C50000E94231C6A89882309F4BECF662309F4D5 -:103C6000BBCF2091D402822F82958F7090E0029773 -:103C70000CF48ECF8091CF029091D0029A838983E9 -:103C80001B82DD82CC822E83CE0101967FCF809570 -:103C900090958C0D9D1DACCFF62E662309F49CCF1C -:103CA00075132EC034132CC02091D40220FD1FC0E8 -:103CB000822F82958F70D9F0D80115962C93159785 -:103CC0008F3049F08F5F982F9295907F822F8F7061 -:103CD000892B15968C93C8010E94E41B86E0F8019D -:103CE000AFECB2E001900D928A95E1F793CF86E0B8 -:103CF000F801AFECB2E001900D928A95E1F72DC08A -:103D00004D875E878D859E850E94231C811140CF43 -:103D10008091D40281608093D402C8010E94E41B88 -:103D20001CC0662309F458CF4D875E878D859E851C -:103D30000E94231C882309F44FCF2ACF811148CF3A -:103D40000CC0243031050CF047CF9F7009F440CFF0 -:103D5000F8019581907F09F03BCF8F2D62960FB6C9 -:103D6000F894DEBF0FBECDBFDF91CF911F910F91B1 -:103D7000FF90EF90DF90CF9008951F93CF93DF9344 -:103D8000CDB7DEB72C970FB6F894DEBF0FBECDBF10 -:103D90004F83588769877A878B879C87CE010796E0 -:103DA0000E94F61C882369F08F8198852A853B85BF -:103DB000232BF1F19F3F09F063C08F3F09F060C0F2 -:103DC00037C086E0FE013796DE01119601900D9214 -:103DD0008A95E1F76F817885EA85FB85309741F117 -:103DE0007F3F11F46F3F21F120919E0230E0C90125 -:103DF00001968770992740919D0250E0841795079E -:103E000009F447C069837A83FD83EC8396E0929F2F -:103E1000D001939FB00D1124A156BD4FFE013196E4 -:103E200001900D929A95E1F780939E020E946C1C7E -:103E300016E080919D0290919E028917C1F1189F12 -:103E4000C001112481569D4F0E94F61C882379F1F0 -:103E5000E0919D021E9FF0011124E156FD4F40812B -:103E6000518162817381848195810E945C1C809163 -:103E70009D0290E001968770992780939D02D9CF8B -:103E80004F81588569857A858B859C850E945C1C4D -:103E9000CFCF0E941F1C10929E0210929D02EFEC49 -:103EA000F2E086E0DF011D928A95E9F7C1CF2C96FA -:103EB0000FB6F894DEBF0FBECDBFDF91CF911F913B -:103EC0000895EF92FF920F931F93CF93DF938C018E -:103ED000009709F46CC0F12CEE24E394E8012196DC -:103EE000F8018491843740F4843008F051C0813067 -:103EF00081F0823019F15BC0853709F444C0A8F124 -:103F00009CE7980F903708F052C08F770E943C19B9 -:103F100041C00E5F1F4FFE01C49180E28C0F8830BC -:103F200048F4C7708E2D01C0880FCA95EAF70E9429 -:103F30003D2214C08C2F0E9474182DC00E5F1F4F9D -:103F4000FE01C49180E28C0F883058F4C7708E2D2A -:103F500001C0880FCA95EAF70E9443220E9464229A -:103F60001AC08C2F0E943C1916C00E5F1F4FFE0115 -:103F7000C491CC2381F08FE99FE00197F1F700C055 -:103F80000000C150F6CF0E5F1F4FFE01F49003C03A -:103F90000E9474188E018F2D882309F49FCFEFE9BA -:103FA000FFE03197F1F700C000008150F5CFDF91BD -:103FB000CF911F910F91FF90EF9008950895609316 -:103FC000D9027093DA028093DB029093DC020C94A6 -:103FD0000B1C0F931F930091D9021091DA022091CC -:103FE000DB023091DC02DC01CB01802B912BA22B78 -:103FF000B32B8093D9029093DA02A093DB02B093A3 -:10400000DC021F910F910C940B1C0F931F930091D6 -:10401000D9021091DA022091DB023091DC02DC013E -:10402000CB0180239123A223B3238093D9029093C1 -:10403000DA02A093DB02B093DC021F910F910C9483 -:104040000B1C0F931F930091D9021091DA0220915B -:10405000DB023091DC02DC01CB0180279127A22713 -:10406000B3278093D9029093DA02A093DB02B09336 -:10407000DC021F910F910C940B1C1092D502109230 -:10408000D6021092D7021092D8020C940B1C41E079 -:1040900050E060E070E004C0440F551F661F771FBA -:1040A0008A95D2F74093D5025093D6026093D702F7 -:1040B0007093D8020C940B1C41E050E060E070E07B -:1040C00004C0440F551F661F771F8A95D2F7809151 -:1040D000D5029091D602A091D702B091D802482B78 -:1040E000592B6A2B7B2B4093D5025093D6026093B9 -:1040F000D7027093D8020C940B1C41E050E060E0B2 -:1041000070E004C0440F551F661F771F8A95D2F7D1 -:1041100040955095609570958091D5029091D6020A -:10412000A091D702B091D802482359236A237B2358 -:104130004093D5025093D6026093D7027093D80271 -:104140000C940B1C41E050E060E070E004C0440FB0 -:10415000551F661F771F8A95D2F78091D5029091DF -:10416000D602A091D702B091D802482759276A27D2 -:104170007B274093D5025093D6026093D702709369 -:10418000D8020C940B1C0F931F930091D502109131 -:10419000D6022091D7023091D802DC01CB01802BCE -:1041A000912BA22BB32B8093D5029093D602A09390 -:1041B000D702B093D8021F910F910C940B1C0F9350 -:1041C0001F930091D5021091D6022091D702309111 -:1041D000D802DC01CB0180239123A223B323809357 -:1041E000D5029093D602A093D702B093D8021F9124 -:1041F0000F910C940B1C0F931F930091D5021091FB -:10420000D6022091D7023091D802DC01CB01802761 -:104210009127A227B3278093D5029093D602A0932B -:10422000D702B093D8021F910F910C940B1C0895E4 -:10423000CF92DF92EF92FF920F931F93CF93DF9372 -:104240008C01C090D902D090DA02E090DB02F090AD -:10425000DC028091D5029091D602A091D702B09154 -:10426000D802C82AD92AEA2AFB2ACFE1D0E0D7010E -:10427000C6010C2E04C0B695A795979587950A940C -:10428000D2F780FF06C0B8018C2F0E94B3080197B7 -:1042900021F4219760F780E001C08C2FDF91CF914E -:1042A0001F910F91FF90EF90DF90CF900895CF93E3 -:1042B000DF93EC010E941821BE010E94B308DF9138 -:1042C000CF910895CB010E94572108958091DD027E -:1042D00085958595859508958091DD02877008956F -:1042E00098E0899F90011124262B2093DD020C94E5 -:1042F0005C202091DD02809582238093DD02982F3F -:10430000977069F430E0482F552747FD50952417E2 -:10431000350729F08595859585950C947D20089520 -:104320009091DD02977081E009F480E0089590910A -:104330001501992321F090911601911109C0209146 -:10434000170130911801F90132969FEF40E01FC02C -:10435000982F9695969596959F3050F5E091170178 -:10436000F0911801E90FF11D877021E030E0A901FB -:1043700002C0440F551F8A95E2F7CA019181892B2B -:10438000818308959F3F39F04F5F4E3041F0519146 -:104390005813F8CF0DC05111F7CF942FF5CF9F3F91 -:1043A00039F0F901E90FF11D97FDFA95828308951F -:1043B000089590911501992321F090911601911182 -:1043C00009C02091170130911801F9013296205F40 -:1043D0003F4F1FC0982F9695969596959F30F0F475 -:1043E000E0911701F0911801E90FF11D877021E0AC -:1043F00030E0A90102C0440F551F8A95E2F7CA01B7 -:10440000809591818923818308953196E217F3077E -:1044100029F090819813F9CF1082F7CF089581E0A9 -:1044200090E0E0911701F0911801E80FF91F108258 -:10443000019680319105A9F708959091F102892B99 -:104440008093F102089580959091F10289238093E1 -:10445000F10208951092F10208959091F002892BD3 -:104460008093F002089580959091F00289238093C3 -:10447000F00208951092F00208959091EF02892BB6 -:104480008093EF02089580959091EF0289238093A5 -:10449000EF0208951092EF0208958093DE020895CE -:1044A0001092DE0208958091170190911801FC018D -:1044B00031969C01205F3F4F80E0919191118F5F79 -:1044C000E217F307D1F70895E0911701F091180171 -:1044D0008091F1028083E0911701F09118019081A1 -:1044E0008091F002892B8083E0911701F0911801EF -:1044F00090818091EF02892B80838091DE02882356 -:1045000061F0E0911701F09118019081892B80836F -:104510000E94532281111092DE0280911701909126 -:1045200018010C94491720E0009739F0AC01415074 -:104530005109842395232F5FF7CF822F089580910F -:104540001303843039F11092F30220E488E190E003 -:104550000FB6F894A895809360000FBE209360007A -:1045600080E00E941F0380E00E944D0983B7817F95 -:10457000846083BF83B7816083BF7894889583B755 -:104580008E7F83BF88E10FB6F8948093600010920D -:1045900060000FBE08950895089580E00E941F03F3 -:1045A0000E94CB220E94A8090E94CC220E942D0AC0 -:1045B00091E0811101C090E0892F08950E941F1C95 -:1045C00080E00E941F030E9447280E943D170C9420 -:1045D0004D091F920F920FB60F9211248F939F9344 -:1045E000AF93BF938091F302811113C08091F402C5 -:1045F0009091F502A091F602B091F7024196A11DAB -:10460000B11D8093F4029093F502A093F602B0934B -:10461000F702BF91AF919F918F910F900FBE0F90B6 -:104620001F90189582E084BD93E095BD9AEF97BDE9 -:1046300080936E0008952FB7F8948091F4029091C2 -:10464000F502A091F602B091F7022FBF0895CF9224 -:10465000DF92EF92FF920F931F932FB7F894409140 -:10466000F4025091F5026091F6027091F7022FBFAB -:104670006A017B01EE24FF248C0120E030E0C016AB -:10468000D106E206F30610F4415051099A01281BA5 -:10469000390BC9011F910F91FF90EF90DF90CF90E0 -:1046A00008951F920F920FB60F9211248F939F932C -:1046B000AF93BF938091F4029091F502A091F6021E -:1046C000B091F7020196A11DB11D8093F402909361 -:1046D000F502A093F602B093F702BF91AF919F91BC -:1046E0008F910F900FBE0F901F9018950E943A1453 -:1046F000F8942FEF87EA91E6215080409040E1F74F -:1047000000C0000087E090EBDC0180931E039093D3 -:104710001F03A0932003B09321039CE088E10FB610 -:10472000F894A895809360000FBE90936000FFCF2F -:104730000E94D723811102C00E94B3230E94E2236A -:104740008093F2020E94EA2380931C0387FB882750 -:1047500080F9809316010E94E623682F70E080E0C4 -:1047600090E00C94DF1F6DEE7EEF80E090E00E9401 -:10477000FE2C60E082E090E00E94EC2C60E083E0A0 -:1047800090E00E94EC2C60E084E090E00E94EC2C31 -:1047900060E085E090E00E94EC2C60E086E090E034 -:1047A0000E94EC2C6FEF87E090E00C94EC2C80E002 -:1047B00090E00E94E62C21E08D3E9E4F09F020E023 -:1047C000822F089582E090E00C94DE2C83E090E04C -:1047D0000C94DE2C84E090E00C94DE2C682F84E0B6 -:1047E00090E00C94EC2C86E090E00C94DE2C682F8A -:1047F00086E090E00C94EC2C87E090E00C94DE2CAA -:10480000682F87E090E00C94EC2C8091FA0280FFF6 -:104810000BC060911C0185E0689FB0011124759563 -:104820006795759567952BC081FF09C060911C0144 -:1048300085E0689FB00111247595679520C082FFBF -:1048400007C060911C0185E0689FB001112417C06A -:104850009091FB029923D1F060911B01961788F784 -:1048600020911C0185E0289F90011124929FA001B6 -:10487000939F500D112470E0CA010E94C42C60382F -:10488000710540F46115710539F002C065E070E012 -:10489000862F08958FE7089581E008958091FA02A8 -:1048A00080FF08C060911A0170E075956795759555 -:1048B000679521C081FF06C060911A0170E075956F -:1048C000679519C082FF04C060911A0170E010C0A2 -:1048D0009091FB029923C1F0609119019617A0F7FE -:1048E00080911A01899FC001112470E00E94C42C9C -:1048F0006038710528F46115710521F0862F08953F -:104900008FE7089581E0089561E070E0F4CF803F83 -:1049100021F40E940524819504C0813F29F40E945E -:1049200005248093FE020895823F21F40E9405240D -:10493000819504C0833F29F40E9405248093FD02E1 -:104940000895893F19F40E944E2405C08A3F31F42E -:104950000E944E2481958093FF0208958B3F21F49D -:104960000E944E24819504C08C3F29F40E944E245D -:10497000809300030895843F21F48091FC028160BC -:1049800017C0853F21F48091FC02826011C0863FF0 -:1049900021F48091FC0284600BC0873F21F4809158 -:1049A000FC02886005C0883F31F48091FC02806180 -:1049B0008093FC0208958D3F21F48091FA0281607A -:1049C0000BC08E3F21F48091FA02826005C08F3FB8 -:1049D00029F48091FA0284608093FA020895803F5E -:1049E00039F48091FE0287FF6CC01092FE0269C00C -:1049F000813F29F48091FE021816BCF362C09091A9 -:104A0000FD02823F29F497FF5CC01092FD0259C05D -:104A1000833F19F41916CCF354C0893F41F48091B7 -:104A2000FF0218160CF04DC01092FF024AC08A3FD8 -:104A300029F48091FF0287FF44C0F6CF8B3F39F401 -:104A40008091000387FF3DC0109200033AC08C3F65 -:104A500029F4809100031816BCF333C0843F21F47D -:104A60008091FC028E7F17C0853F21F48091FC026B -:104A70008D7F11C0863F21F48091FC028B7F0BC09B -:104A8000873F21F48091FC02877F05C0883F31F485 -:104A90008091FC028F7E8093FC0213C08D3F21F435 -:104AA0008091FA028E7F0BC08E3F21F48091FA0232 -:104AB0008D7F05C08F3F29F48091FA028B7F809310 -:104AC000FA028091FD0281110EC08091FE028111D7 -:104AD0000AC08091FF02811106C0809100038111FC -:104AE00002C01092FB0208958CEF92E00E945417CE -:104AF0000E941B239093F9028093F80208951F935C -:104B0000CF93DF938091F8029091F9020E942723BE -:104B1000AC019091FB02992321F020911D0130E01E -:104B200006C020911E018AE0289F9001112442179F -:104B3000530708F486C08091FD02C091FE02D09117 -:104B4000FF0210910003811107C0C11176C0D1117D -:104B500074C0111172C075C09F3F19F09F5F909390 -:104B6000FB02181624F40E9405248093FD02809114 -:104B7000FD0287FF05C00E94052481958093FD02F8 -:104B80001C1624F40E9405248093FE028091FE02EC -:104B900087FF05C00E94052481958093FE026091E5 -:104BA000FD02662339F1C091FE02CC2319F177276B -:104BB00067FD7095872F972F0E94E62923E333E343 -:104BC00043E35FE30E94F62A0E94B3296093FD024B -:104BD0006C2F772767FD7095872F972F0E94E62906 -:104BE00023E333E343E35FE30E94F62A0E94B32901 -:104BF0006093FE021D1624F40E944E248093FF024F -:104C00008091FF0287FF05C00E944E24819580930A -:104C1000FF02111624F40E944E2480930003809119 -:104C2000000387FF05C00E944E24819580930003F6 -:104C3000DF91CF911F910C9474259F3F09F08ECF87 -:104C400096CFDF91CF911F910895ECEFF2E085E0D0 -:104C5000DF011D928A95E9F71092FB021092FA0289 -:104C60000895833081F128F4813059F08230D1F0F9 -:104C70000895853009F449C0B8F1863009F456C06A -:104C8000089580911E01262F30E0280F311D2F3FFF -:104C9000310524F4680F60931E0108958FEF80930F -:104CA0001E01089580911D01262F30E0280F311D2F -:104CB0002F3F310524F4680F60931D0108958FEF95 -:104CC00080931D01089580911C01262F30E0280F4C -:104CD000311D2F3F310524F4680F60931C010895A6 -:104CE0008FEF80931C01089580911B01262F30E0E7 -:104CF000280F311D2F3F310524F4680F60931B01ED -:104D000008958FEF80931B01089580911A01262F3B -:104D100030E0280F311D2F3F310524F4680F6093D8 -:104D20001A0108958FEF80931A0108958091190157 -:104D3000262F30E0280F311D2F3F310524F4680F56 -:104D40006093190108958FEF8093190108958330BE -:104D500011F128F4813049F0823091F008958530C6 -:104D600081F120F18630C1F1089580911E0168170C -:104D700020F4861B80931E01089510921E01089551 -:104D800080911D01681720F4861B80931D010895F2 -:104D900010921D01089580911C01681720F4861B54 -:104DA00080931C01089510921C01089580911B01AD -:104DB000681720F4861B80931B01089510921B0135 -:104DC000089580911A01681720F4861B80931A01B8 -:104DD000089510921A01089580911901681720F41E -:104DE000861B8093190108951092190108950F935D -:104DF0001F93873208F048C08E3108F08DC0803193 -:104E000009F477C008F5873009F461C068F486308A -:104E100009F09DC08091F202817F8E7F8093F20223 -:104E200081E08093020394C08B3009F489C08E30F6 -:104E300009F08DC08091F20282FB222720F991E0D7 -:104E4000922790FB82F95EC0863109F479C060F444 -:104E5000813109F07CC00E941F1C9091160181E0F5 -:104E60008927809316016CC0893109F469C08B31A0 -:104E700009F06DC08091F20281FB222720F991E0B8 -:104E8000922790FB81F93EC0883309F459C050F451 -:104E9000893209F457C0853309F454C0873209F4C4 -:104EA00051C055C0833409F44DC028F48A3308F446 -:104EB0004EC0895332C0883409F049C00E941F1C7B -:104EC0000E945D0A0E9424040E94762339C09091BA -:104ED000F202892F8095817080FB90F929F096600D -:104EE00098609093F20234C0997F977F9093F2027A -:104EF00027C08091F20283FB222720F991E09227BC -:104F000090FB83F98093F2029923D1F08091F20211 -:104F100081608093F20214C08D5141E050E060E066 -:104F200070E08A019B0104C0000F111F221F331F74 -:104F30008A95D2F7C901B8010E94DF1F0E941F1C89 -:104F400081E006C061E070E080E090E0F5CF80E0B5 -:104F50001F910F91089580E0089580E00895CF9308 -:104F6000C82F80910203813069F018F08230C9F1B6 -:104F700084C0E0911701F09118018081823209F01C -:104F80007EC007C0E0911701F09118018081823244 -:104F900061F48C2F0E94AB27811104C08C2F0E94DA -:104FA000F7261DC081E090E01AC08C2F0E94AD272B -:104FB000811114C0C43179F048F4CB3079F0C0319C -:104FC00009F061C082E08093020308C0C93219F081 -:104FD000C83321F058C01092020355C081E081709F -:104FE00054C0C93291F120F5C43179F1B0F4C73021 -:104FF00009F047C08EE180931E0182E380931D017A -:105000008AE080931C0184E180931B0188E08093F7 -:105010001A0188E28093190134C0CE51C63088F558 -:10502000EC2FF0E0EA54FE4F80818093010329C009 -:10503000CE34E9F020F4CB3421F56AE013C0C13559 -:1050400079F0C235F1F461E00DC08091010388234D -:1050500019F01092010315C081E08093020315C07E -:1050600061E006C0809101030E9431260AC06AE017 -:10507000809101030E94A72604C01092020380E0E1 -:1050800004C081E002C080E0AACFCF9108950E94C1 -:10509000D723811102C00E94B3230E94F32380937F -:1050A0001D0380FF02C0869501C080E00C941F03A1 -:1050B00080911D03982F9695292F30E023303105DC -:1050C0004CF49F5F990F8170892B816080931D0341 -:1050D0000E94F72380911D0386950C941F038091F5 -:1050E0001D03982F969591F09158990F8170892BF7 -:1050F00080931D038E7F91E009F490E080911D0361 -:1051000090FB80F980931D030E94F72380911D037B -:1051100086950C941F0380911D03982F909590FB0A -:1051200080F980931D030E94F72380911D0380FF67 -:1051300002C0869501C080E00C941F0390911D036E -:10514000892F86958F5F8F779170843028F4880F30 -:10515000892B80931D0302C090931D0380911D0332 -:105160008E7F91E009F490E080911D0390FB80F91F -:1051700080931D030E94F72380911D0386950C9454 -:105180001F0320911D03922F96958927982F990F21 -:10519000822F8170892B80931D038E7F91E009F40B -:1051A00090E080911D0390FB80F980931D030E9485 -:1051B000F72380911D0386950C941F0380911D0396 -:1051C000869508955058BB27AA270ED0D1C1C2D1C9 -:1051D00030F0C7D120F031F49F3F11F41EF4B7C175 -:1051E0000EF4E095E7FB9FC1E92FD3D180F3BA1706 -:1051F000620773078407950718F071F49EF5EBC1F9 -:105200000EF4E0950B2EBA2FA02D0B01B9019001E1 -:105210000C01CA01A0011124FF27591B99F0593F25 -:1052200050F4503E68F11A16F040A22F232F342F6D -:105230004427585FF3CF469537952795A795F040BB -:105240005395C9F77EF41F16BA0B620B730B840BD0 -:10525000BAF09150A1F0FF0FBB1F661F771F881F88 -:10526000C2F70EC0BA0F621F731F841F48F48795E0 -:1052700077956795B795F7959E3F08F0B3CF9395CF -:10528000880F08F09927EE0F97958795089527D1F5 -:1052900008F481E008950CD06BC163D140F05AD17D -:1052A00030F021F45F3F19F03EC1511195C14FC15B -:1052B00070D198F39923C9F35523B1F3951B550B7E -:1052C000BB27AA2762177307840738F09F5F5F4FD9 -:1052D000220F331F441FAA1FA9F333D00E2E3AF01A -:1052E000E0E830D091505040E695001CCAF729D034 -:1052F000FE2F27D0660F771F881FBB1F2617370783 -:105300004807AB07B0E809F0BB0B802DBF01FF27B2 -:1053100093585F4F2AF09E3F510568F004C15CC16D -:105320005F3FECF3983EDCF3869577956795B795EC -:10533000F7959F5FC9F7880F911D9695879597F907 -:105340000895E1E0660F771F881FBB1F6217730780 -:105350008407BA0720F0621B730B840BBA0BEE1F95 -:1053600088F7E095089504D06894B11135C1089587 -:1053700018D188F09F5790F0B92F9927B751A0F016 -:10538000D1F0660F771F881F991F1AF0BA95C9F7D9 -:1053900012C0B13081F01FD1B1E008951CC1672F58 -:1053A000782F8827B85F39F0B93FCCF38695779589 -:1053B0006795B395D9F73EF4909580957095619572 -:1053C0007F4F8F4F9F4F0895E89409C097FB3EF49D -:1053D00090958095709561957F4F8F4F9F4F992342 -:1053E000A9F0F92F96E9BB279395F69587957795C0 -:1053F0006795B795F111F8CFFAF4BB0F11F460FF80 -:105400001BC06F5F7F4F8F4F9F4F16C0882311F0D7 -:1054100096E911C0772321F09EE8872F762F05C0EB -:10542000662371F096E8862F70E060E02AF09A9586 -:10543000660F771F881FDAF7880F9695879597F97B -:10544000089588D018F011F08CD038F480C0C4C012 -:10545000E92F9FD0B0F35523C9F3E7FB6217730719 -:1054600084079507A8F199F3E92FFF2788232AF0ED -:105470003197660F771F881FDAF7952F552744233A -:1054800032F091505040220F331F441FD2F7BB27F8 -:10549000E91BF50B621B730B840BB109C1F222F4FB -:1054A000620F731F841FB11D31972AF0660F771F9B -:1054B000881FBB1FEFCF915050405AF041F0882316 -:1054C00032F0660F771F881F91505040C1F79395B7 -:1054D00030C08695779567959F5FD9F7F8CF990F7C -:1054E0000008550FAA0BE0E8FEEF16161706E807AE -:1054F000F907C0F012161306E407F50798F0621BCF -:10550000730B840B950B39F40A2661F0232B242BA3 -:10551000252B21F408950A2609F4A140A6958FEFC2 -:10552000811D811D089597F99F6780E870E060E014 -:1055300008959F3F31F0915020F4879577956795B6 -:10554000B795880F911D9695879597F908959FEFC8 -:1055500080EC089500240A9416161706180609060A -:10556000089500240A9412161306140605060895D9 -:10557000092E0394000C11F4882352F0BB0F40F461 -:10558000BF2B11F460FF04C06F5F7F4F8F4F9F4FA1 -:10559000089557FD9058440F551F59F05F3F71F023 -:1055A0004795880F97FB991F61F09F3F79F087958A -:1055B0000895121613061406551FF2CF4695F1DF13 -:1055C00008C0161617061806991FF1CF86957105A3 -:1055D000610508940895E894BB2766277727CB01D7 -:1055E00097F908957CDF08F48FEF08950BD0C0CFB2 -:1055F000B1DF28F0B6DF18F0952309F094CFA7CFDC -:105600001124EACFC6DFA0F3959FD1F3950F50E0A8 -:10561000551F629FF001729FBB27F00DB11D639F64 -:10562000AA27F00DB11DAA1F649F6627B00DA11D0A -:10563000661F829F2227B00DA11D621F739FB00DB0 -:10564000A11D621F839FA00D611D221F749F332720 -:10565000A00D611D231F849F600D211D822F762FB9 -:105660006A2F11249F5750408AF0E1F088234AF0B6 -:10567000EE0FFF1FBB1F661F771F881F9150504002 -:10568000A9F79E3F510570F04ECFA6CF5F3FECF3D8 -:10569000983EDCF3869577956795B795F795E795EE -:1056A0009F5FC1F7FE2B880F911D9695879597F9FF -:1056B0000895FA01EE0FFF1F30962105310599F18B -:1056C0006115710561F48038BFE39B0749F1689467 -:1056D0009038810561F08038BFEF9B0741F0992336 -:1056E00042F5FF3FE1053105210511F1E8940894E9 -:1056F000E795D901AA2329F4AB2FBE2FF85FD0F389 -:1057000010C0FF5F70F4A695E0F7F73950F019F07C -:10571000FF3A38F49F779F930CD00F9007FC905876 -:1057200008953EF014CF60E070E080E89FE30895B4 -:105730004FE79F775F934F933F932F939ED02F9187 -:105740003F914F915F9152DF05C019F40EF0EBCEFF -:1057500042CFFDCE26DFC8F39638C0F707F80F9288 -:10576000E8942BE33AEA48EB5FE74EDF0F920F92A3 -:105770000F924DB75EB70F92C0D0EAE0F1E016D0BD -:105780004F915F91EF91FF91E595EE1FFF1F49F05B -:10579000FE57E0684427EE0F441FFA95E1F7419564 -:1057A000550B32D00F9007FE26C00895DF93CF939C -:1057B0001F930F93FF92EF92DF927B018C0168940D -:1057C00005C0DA2EEF011EDFFE01E894A5912591B8 -:1057D000359145915591AEF3EF0106DDFE0197013C -:1057E000A801DA9479F7DF90EF90FF900F911F9165 -:1057F000CF91DF9108959B01AC0160E070E080E8FB -:105800009FE349CD90CE95CECCDEE8F39923D9F332 -:10581000940F511DBBF39150504094F059F08823E0 -:1058200032F0660F771F881F91505040C1F79E3F9E -:10583000510544F7880F911D9695879597F908951E -:105840005F3FACF0983E9CF0BB27869577956795B7 -:10585000B79508F4B1609395C1F7BB0F58F711F4F1 -:1058600060FFE8CF6F5F7F4F8F4F9F4FE3CFB4CE86 -:105870000EF05FCE6CCE689456CE93DEC8F39923BB -:10588000D1F3C6F3DF93CF931F930F93FF92C92FEA -:10589000DD2788232AF02197660F771F881FDAF704 -:1058A00020E030E040E85FEB9FE3883920F0803E65 -:1058B00030F021968F7787DCE2E3F1E003C083DCF0 -:1058C000EFE5F1E073DF8B01BE01EC01FB2E6F57BA -:1058D00071097595771F880B990B78DD28E132E700 -:1058E00041E35FE38FDEAF2D9801AE01FF900F9192 -:1058F0001F91CF91DF9178DC3BCEFA01DC01AA0F3A -:10590000BB1F9B01AC01BF5728F422273327442734 -:1059100050781FC0B75188F4AB2F002446953795B7 -:105920002795011CA395D2F3002069F0220F331FA5 -:10593000441FB395DAF30DD045CC61307105A0E872 -:105940008A07B94630F49B01AC0166277727882780 -:105950009078309621F020833183428353830895D9 -:10596000AA1BBB1B51E107C0AA1FBB1FA617B70785 -:1059700010F0A61BB70B881F991F5A95A9F78095A1 -:105980009095BC01CD01089597FB072E16F4009465 -:1059900007D077FD09D00E94B02C07FC05D03EF45B -:1059A000909581959F4F0895709561957F4F0895CB -:1059B000EE0FFF1F0590F491E02D0994F999FECFA9 -:1059C00092BD81BDF89A992780B50895A8E1B0E00D -:1059D00042E050E00C94062D262FF999FECF92BD9F -:1059E00081BDF89A019700B4021639F01FBA20BDA4 -:1059F0000FB6F894FA9AF99A0FBE08950196272FD8 -:105A00000E94ED2C0C94EC2CDC01CB01FC01F999EB -:105A1000FECF06C0F2BDE1BDF89A319600B40D92FA -:0C5A200041505040B8F70895F894FFCFB3 -:105A2C00640007000CFF0000003F644110CF10AC75 -:105A3C0010781044100101DF022808140A321E00ED -:105A4C0002040507090B0C0E1011131517181A1C5C -:105A5C001D1F2123242628292B2D2F303234353796 -:105A6C00393B1F0F03764F5F6F7F496943790959A3 -:105A7C0053633149803F5D8B803FF8BF803FCAE163 -:105A8C00803F73ED803FCAE1803FF8BF803F5D8B64 -:105A9C00803F3149803F0000803FF16D7F3F75EAC8 -:105AAC007E3F4C827E3F833F7E3F84287E3F833FF8 -:105ABC007E3F4C827E3F75EA7E3FF16D7F3F00005A -:105ACC00803F3F4D36394905FC04C6048D04200443 -:105ADC00390452046B04010203040506070809008B -:00000001FF diff --git a/keyboards/planck/keymaps/pete/README.md b/keyboards/planck/keymaps/pete/README.md deleted file mode 100644 index 3cf594f3a..000000000 --- a/keyboards/planck/keymaps/pete/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# Planck Layout by Pete - -This layout is based on the default layout but uses a FN key in the bottom left corner instead of the shift / backlight key. -On the FN layer you can do the following things - -- Step through back light -- Put a mac to sleep -- The Fxx keys in a block to click with the right hand -- The delete key in the upper right corner -- Quick access to screenshot functions -- Control volume and media playback -- Home/PgDown/PgUp/End buttons where the arrow keys are - -Pressing the lower and raise buttons allows to reset and change from QWERT to Colemak or Dvorak. diff --git a/keyboards/planck/keymaps/pete/compiled.hex b/keyboards/planck/keymaps/pete/compiled.hex deleted file mode 100644 index c1fa436ba..000000000 --- a/keyboards/planck/keymaps/pete/compiled.hex +++ /dev/null @@ -1,1174 +0,0 @@ -:100000000C9483030C94C7030C94C7030C94C7038C -:100010000C94C7030C94C7030C94C7030C94C70338 -:100020000C94C7030C94C7030C94C30E0C94950F47 -:100030000C94F61C0C94C7030C94C7030C94C703D0 -:100040000C94C7030C9428040C94C7030C94C703A6 -:100050000C94C7030C945E1D0C94C7030C94C70347 -:100060000C94C7030C94C7030C94C7030C94C703E8 -:100070000C94C7030C94C7030C94C7030C94C703D8 -:100080000C94C7030C94C7030C94C7030C94C703C8 -:100090000C94C7030C94C7030C94C7030C94C703B8 -:1000A0000C94C7030C94C7030C94C70391049904E0 -:1000B000A304AB04B304C4040B05FD04FD04FD0458 -:1000C0000B050B050B050B050B050B05CC04EA0412 -:1000D0000210241012112410121169108C10121128 -:1000E000E110F410DE13DE130D140D144C146C1417 -:1000F000C215C2157714C215271527158E15971529 -:10010000C215BC1534153415341534153415341591 -:100110003415341534153415341534153415341597 -:100120003415341544155215591560156A1500001B -:10013000000000000000000000010204060A0F1782 -:10014000202C3A4A5D71879DB3C7DAE9F5FCFFFCC4 -:10015000F5E9DAC7B39D87715D4A3A2C20170F0A7B -:1001600006040201000000000000000000002B0057 -:1001700014001A000800150017001C0018000C00DD -:10018000120013002A0029000400160007000900CD -:100190000A000B000D000E000F0033003400E100D8 -:1001A0001D001B000600190005001100100036009C -:1001B0003700380028001130E000E200E30003308F -:1001C0002C002C0004305000510052004F002B0036 -:1001D00014001A00090013000A000D000F00180097 -:1001E0001C0033002A002900040015001600170027 -:1001F00007000B00110008000C0012003400E100A1 -:100200001D001B000600190005000E00100036003E -:100210003700380028001130E000E200E30003302E -:100220002C002C0004305000510052004F002B00D5 -:1002300034003600370013001C0009000A000600D5 -:1002400015000F002A002900040012000800180001 -:100250000C0007000B001700110016003800E10029 -:10026000330014000D000E001B00050010001A00E2 -:1002700019001D0028001130E000E200E300033007 -:100280002C002C0004305000510052004F00350269 -:100290001E021F0220022102220223022402250242 -:1002A000260227022A0001000100010001000100CE -:1002B000010001002D022E022F0230023102010046 -:1002C0000100010001000100010001000100010026 -:1002D0000100010001000100010001000100010016 -:1002E000010001000100AB00AA00A900AE0035002A -:1002F0001E001F00200021002200230024002500F2 -:10030000260027002A000100010001000100010071 -:10031000010001002D002E002F00300031000100EF -:1003200001000100010001000100010001000100C5 -:1003300001000100010004000100010001000100B2 -:10034000010001000100AB00AA00A900AE000000FE -:10035000000000000000000000000000000000009D -:10036000000000000000000000000000000000008D -:10037000000000000000000000000000000000007D -:10038000000000000000000000000000000000006D -:10039000000000000000000000000000000000005D -:1003A000000000000000000000000000000001004C -:1003B0000100010001000100010001000100010035 -:1003C00001000100010001000100010008300730B8 -:1003D0000100010000300130023001000100010085 -:1003E0000100010001000100010001000100010005 -:1003F00001000100010001000100010001000100F5 -:1004000000700070010001000100010001003508CA -:100410006603000000000000000000003A003B00FE -:100420003C003D004C0001001030A800AA00A900CB -:10043000200A210A3E003F00400041000000010068 -:100440003270AC00AE00AB00000000004200430080 -:10045000440045000000010001000100010000000F -:100460000000000000004A004E004B004D0035081F -:10047000A600000000000000000000003A003B0061 -:100480003C003D004C0001001030A800AA00A9006B -:10049000460046083E003F004000410000000100C9 -:1004A0003270AC00AE00AB00000000004200430020 -:1004B00044004500000001000100010001000000AF -:1004C0000000000000004A004E004B004D000F00ED -:1004D0000100010001000100010001000100010014 -:1004E0000100010001000100010001000100010004 -:1004F00001000100010001000100010001000100F4 -:1005000001000100010001000100010001000100E3 -:1005100001000100010001000100010001000100D3 -:100520000100010001000100010001000100280399 -:10053000540068006500200050006C0061006E00EF -:1005400063006B0020004B006500790062006F00C3 -:1005500061007200640000002C034F007200740000 -:1005600068006F006C0069006E0065006100720039 -:1005700020004B006500790062006F00610072008E -:100580006400730000000403090409026D00040103 -:1005900000A0FA0904000001030101000921110172 -:1005A00000012240000705810308000A0904010038 -:1005B0000103010200092111010001224D0007057C -:1005C000820308000A090402000103000000092157 -:1005D000110100012236000705830308000A0904FF -:1005E000030001030000000921110100012239006C -:1005F000070584031000011201100100000008ED3E -:10060000FE606001000102000105010906A101056B -:100610000719E029E71500250195087501810205F4 -:100620000819012905950575019102950175039138 -:1006300001050719002977150025019578750181B5 -:1006400002C005010980A101850216010026B7003C -:100650001A01002AB700751095018100C0050C0928 -:1006600001A1018503160100269C021A01002A9CA3 -:1006700002751095018100C005010902A10109015F -:10068000A100050919012905150025019505750128 -:100690008102950175038101050109300931158138 -:1006A000257F95027508810609381581257F9501FA -:1006B00075088106050C0A38021581257F9501759C -:1006C000088106C0C005010906A101050719E02936 -:1006D000E7150025019508750181029501750881CE -:1006E0000105081901290595057501910295017506 -:1006F0000391010507190029FF150026FF00950643 -:1007000075088100C00011241FBECFEFDAE0DEBF04 -:10071000CDBF04B603FE24C0809102029091030273 -:10072000A0910402B09105028730904BA740B04BD6 -:10073000B9F4109202021092030210920402109275 -:10074000050214BE84B7877F84BF88E10FB6F89492 -:1007500080936000109260000FBEE0E0F8E309951E -:1007600011E0A0E0B1E0E0E0F9E402C005900D92F4 -:10077000A634B107D9F712E0A6E4B1E001C01D929A -:10078000A230B107E1F70E940D0C0C947E240C946A -:100790000000089581E0089508950C94C9030C9415 -:1007A000CA030C94CC030E94F42223E030E0281BFF -:1007B0003109220F20934A010895282F2F98809104 -:1007C0008000211108C0877F8093800010928D00E7 -:1007D00010928C001BC0886080938000233019F435 -:1007E0008FEF9FEF0FC083E090E0821B9109880F8D -:1007F000991F2FEF3FEFA90102C0569547958A95A3 -:10080000E2F7CA0190938D0080938C000C94D3037F -:100810000E94D30384E08093490110924601089519 -:10082000279A2F988FEF9FEF9093870080938600F1 -:100830008AE08093800089E1809381000E945D229C -:100840000C9408040E9410046E9A769A0C94110578 -:100850001F920F920FB60F9211242F933F938F93F5 -:100860009F93EF93FF93E0914701F0914801CF01EF -:10087000019690934801809347010090490102C07E -:10088000F695E7950A94E2F7EF738091460182307E -:1008900019F4E03251F404C0813039F4EF3329F413 -:1008A00080916F008D7F80936F00F0E0E25DFE4FDE -:1008B000E49121E031E0E29FC001E39F900D11241B -:1008C00000904A0102C0969587950A94E2F79093AA -:1008D0008D0080938C00FF91EF919F918F913F91BC -:1008E0002F910F900FBE0F901F901895CF93DF930D -:1008F000EC010E94F51DBE0180E090E0DF91CF91F8 -:100900000C94ED190F931F93CF93062F10E0023133 -:10091000110508F080C0DC01F801EA5AFF4F0C9481 -:100920002E2412968C91882309F475C081E090E002 -:1009300007C012968C91882309F46DC082E090E084 -:100940000E94760468C012968C91882309F463C0D3 -:1009500084E090E0F5CF12968C91882311F083E02B -:1009600007C083E00EC012968C91882349F084E082 -:100970000E946A1A46E064E083E00E94AA064BC027 -:1009800084E00E948B1AF6CF12968C91882311F086 -:1009900085E026C085E02EC012968C91882369F0F0 -:1009A00085EE0E94821284EE0E94821286EE0E94E0 -:1009B000821287EE0E9482122EC085EE0E944A1398 -:1009C00084EE0E944A1386EE0E944A1387EE0E942C -:1009D0004A1321C012968C91882329F0809100013E -:1009E0000E946A1A18C087E00E948B1A88E00E9451 -:1009F0008B1A89E00E948B1A0EC012968C91882364 -:100A000051F0809100010E948B1A602F70E070936A -:100A100001016093000180E090E0CF911F910F9160 -:100A20000895089581E008950C94120508950F9398 -:100A30001F93CF93DF938C01FC01C081D181CE0144 -:100A40000E94261BBE010E949008EC01B8010E9482 -:100A50001405882309F478C1F8018281882309F4F8 -:100A600063C080915A01811127C0C431F0E7DF07CC -:100A700009F012C10E94160581E080935A010E947C -:100A8000281D909359018093580110924D011092A6 -:100A90004F0110924E01109251011092500110928C -:100AA000530110925201109255011092540110926C -:100AB00057011092560148C18091580190915901F7 -:100AC0000E94341D883C910570F480914D01E82FFF -:100AD000F0E0EE0FFF1FE25BFE4FD183C0838F5F1C -:100AE00080934D0131C1C43120E7D20708F024C101 -:100AF000C23080E7D80710F5C11590E7D90709F093 -:100B0000DAC0F8018281882309F4BFC00E942D1643 -:100B1000FFEF24E38CE0F15020408040E1F700C07B -:100B200000000E94831D10C1C431F0E7DF0708F008 -:100B3000CFC0C23020E7D20708F49BC0F801828101 -:100B4000882309F4A2C00E94E21D811102C00E9404 -:100B5000C31D0E94FA1D90E09093F3018093F2016F -:100B6000C230F0E7DF0721F48091F20181607AC0A2 -:100B7000C33020E7D20721F48091F201826072C075 -:100B8000C43080E7D80721F48091F20184606AC004 -:100B9000C53090E7D90719F48091F20127C0C6301B -:100BA000E0E7DE0721F48091F20180615BC0C7308D -:100BB000F0E7DF0721F48091F201806253C0C83072 -:100BC00020E7D20721F48091F20180644BC0C93044 -:100BD00080E7D80721F48091F201806843C0CA30D1 -:100BE00090E7D90729F48091F201846088603AC0C7 -:100BF000CB30E0E7DE0721F48091F2018E7F32C036 -:100C0000CC30F0E7DF0721F48091F2018D7F2AC01C -:100C1000CD3020E7D20721F48091F2018B7F22C0F2 -:100C2000CE3080E7D80719F48091F2011AC0809184 -:100C3000F201CF3090E7D90711F48F7E13C0C03195 -:100C4000E0E7DE0711F48F7D0DC0C131F0E7DF076B -:100C500011F48F7B07C0C231D04711F48F7702C0E7 -:100C60008B7F877F8093F2018091F2010E94FE1DAD -:100C70006BC0C11580E7D80741F0C130D047F1F013 -:100C800081E080934B0180934C01C801DF91CF91AB -:100C90001F910F910C94CF03C43120E7D20708F0C5 -:100CA0004BC0C23080E7D80708F048CFC11590E7A5 -:100CB000D90709F42BCFC130D04711F7F801828151 -:100CC000882319F38091E10181608093E1013CC0A8 -:100CD000C333E0E7DE07A1F4F8018281882321F025 -:100CE00010924B0182E017C080914B01811106C028 -:100CF00086E20E94821286E20E944A1382E019C0B4 -:100D0000C433D04709F0BCCFF8018281882331F089 -:100D100010924C0180E20E94991316C080914C0100 -:100D2000811106C087E20E94821287E20E944A1364 -:100D300080E20E94A01308C0C333F0E7DF0761F22E -:100D4000C433D04709F39CCF80E0DF91CF911F914E -:100D50000F910895CF92DF92EF92FF920F931F931E -:100D600001E010E020E030E06801790104C0CC0C23 -:100D7000DD1CEE1CFF1C8A95D2F704C0000F111F6A -:100D8000221F331F6A95D2F70C291D292E293F29CE -:100D9000C090C401D090C501E090C601F090C70199 -:100DA000C022D122E222F322842FC016D106E2060D -:100DB000F30641F41F910F91FF90EF90DF90CF90D9 -:100DC0000C946A1A1F910F91FF90EF90DF90CF90D3 -:100DD0000C948B1A0C9422040C94CD032CE0729F7B -:100DE000F001112430E3839FE00DF11D1124E60F83 -:100DF000F11DEE0FFF1FE259FE4F859194910E9465 -:100E0000A208811540E5940708F047C0811520E449 -:100E1000920708F013C1883E910520F5803E9105A8 -:100E200008F07CC1883A910578F4853A910508F07C -:100E3000A5C08130910509F471C108F42EC1843038 -:100E4000910508F06BC129C18B3B910508F4A1C045 -:100E5000803C910508F421C1FC01EE0FFF1FE25117 -:100E6000F040E6C0811530E2930758F4811541E067 -:100E7000940708F053C1803F910508F40EC19065B6 -:100E80000895811520E3920708F0D5C0FC01FF709A -:100E9000EE0FFF1FE259FE4FCBC0811535E59307DA -:100EA00008F043C0811544E5940708F0DEC08115C1 -:100EB00022E5920708F5811531E5930708F0C1C0D6 -:100EC000482F437021E030E002C0220F331F4A95C3 -:100ED000E2F73C68AC0164E0569547956A95E1F706 -:100EE0004370342B8F708695869540E2849FC001B5 -:100EF0001124822B932B0895282F26952695AC013B -:100F0000437055278115934508F0A0C080E2289FC3 -:100F10009001112481E090E002C0880F991F4A954A -:100F2000E2F7822B932B9C6808958F3240E7940759 -:100F300090F48F3120E7920708F0A2C0811536E5C2 -:100F4000930708F497C09C0130562115304108F0F2 -:100F5000A4C09F7093C0803320E7920709F497C024 -:100F600008F492C0813340E7940709F493C08233B8 -:100F7000904709F092C080E093ED0895853A91057D -:100F800009F48EC0863A910509F08DC082E890E49C -:100F90000895883A910509F489C0893A910509F4C0 -:100FA00088C08A3A910509F487C08B3A910509F403 -:100FB00086C08C3A910509F485C08D3A910509F4F3 -:100FC00084C0803B910509F483C08E3A910509F4F1 -:100FD00082C08F3A910509F481C0813B910509F4E3 -:100FE00080C0823B910509F47FC0833B910509F4E1 -:100FF0007EC0843B910509F47DC0853B910509F4D1 -:101000007CC0863B910509F47BC0873B910509F4C0 -:101010007AC0883B910509F479C0893B910509F4B0 -:1010200078C08A3B910509F477C080E094E4089584 -:101030008591949108959927906C08959F70906A76 -:101040000895982F8827816F906A089590E2299FCC -:101050009001112481E090E002C0880F991F4A9509 -:10106000E2F7822B932B9A680895982F8827846F34 -:10107000906A08958F719927982F88279062089514 -:101080008F519047946D089580E091ED089580E030 -:1010900090ED089580E092ED089580E090E008954D -:1010A00081E890E4089583E890E4089582EE94E462 -:1010B000089589EE94E408958AEE94E4089585EB0A -:1010C00094E4089586EB94E4089587EB94E40895FE -:1010D0008CEC94E408958DEC94E4089583E895E411 -:1010E00008958AE895E4089582E995E4089584E9ED -:1010F00095E4089581E296E4089583E296E40895E4 -:1011000084E296E4089585E296E4089586E296E402 -:10111000089587E296E408958AE296E40895089592 -:101120009CE0799FF001112490E3899FE00DF11D6F -:101130001124E60FF11DEE0FFF1FE259FE4F8591BE -:10114000949108958238910549F1B0F48133910565 -:1011500009F458C048F48932910509F44EC08A3226 -:10116000910509F454C008958533910509F440C0F0 -:101170008933910599F00895833E910529F138F45A -:10118000803E910591F0823E9105A1F00895863E42 -:101190009105F9F0873E910531F108952091F20112 -:1011A00020FD3AC021FD38C008958091F20180FDF4 -:1011B00035C032C08091F20182FF32C08091F201CD -:1011C00084FD30C083EE39C08091F20182FD28C0D9 -:1011D000F5CF8091F20183FF27C08091F20184FD59 -:1011E00021C087EE2AC08091F20183FD1DC0F5CF9A -:1011F0008091F20185FD1AC01BC08091F20185FD2E -:1012000017C014C08091F20186FD14C015C08091F2 -:10121000F20186FD11C00EC080EE0FC089E30DC043 -:1012200082EE0BC080E009C086EE07C089E205C0EF -:1012300085E303C08AE201C081E390E008950C9445 -:10124000D103E82FF0E0ED5DFE4F8081E82FEF70D5 -:10125000F0E082958F7021E030E0A90102C0440FD8 -:10126000551F8A95E2F740A308950F931F93CF93DC -:10127000DF93C3E0D0E001E010E0FE01ED5DFE4F42 -:101280008081E82FEF70F0E021A182958F70A80196 -:1012900002C0440F551F8A95E2F7CA01822B81A331 -:1012A0008C2F0E942109219740F78BE090E061E0AC -:1012B00070E0FC01E95EFE4F2081E22FEF70F0E06C -:1012C00042A122952F70DB0102C0AA0FBB1F2A95F5 -:1012D000E2F79D01242B22A3019758F7DF91CF91CC -:1012E0001F910F9108950F931F93CF93DF9385B7AD -:1012F000806885BF85B7806885BFC3E0D0E001E026 -:1013000010E0FE01ED5DFE4F8081E82FEF70F0E010 -:1013100021A182958F70A80102C0440F551F8A95A4 -:10132000E2F7CA01822B81A38C2F0E942109219709 -:1013300040F78BE090E061E070E0FC01E95EFE4F79 -:101340002081E22FEF70F0E042A122952F70DB01A7 -:1013500002C0AA0FBB1F2A95E2F79D01242B22A3EE -:10136000019758F7DF91CF911F910F910C94EA06E6 -:10137000EF92FF920F931F93CF93DF9303E611E059 -:10138000C3E0EE24E394F12CD5E08C2F0E942109D8 -:101390008BE090E040E050E0FC01E95EFE4F6081B0 -:1013A000E62FEF70F0E020A130E062956F7002C090 -:1013B000359527956A95E2F720FD09C09701082E1B -:1013C00002C0220F331F0A94E2F7422B532B0197DE -:1013D00018F7F801929182918F018417950721F0F7 -:1013E00051834083D09302018C2F0E942109C15068 -:1013F00060F68091020187FD2CC08150809302012C -:101400008F3F39F08FE99FE00197F1F700C00000AE -:1014100020C0809161019091620190936A01809354 -:10142000690180915F0190916001909368018093C0 -:10143000670180915D0190915E01909366018093B8 -:10144000650180915B0190915C01909364018093B0 -:1014500063010E94EC0681E0DF91CF911F910F9113 -:10146000FF90EF900895E82FF0E0EE0FFF1FED5989 -:10147000FE4F80819181089508950F931F93CF931C -:101480000BE611E0C0E0F801929182918F010E9479 -:10149000A11CC80FF1E003361F07A9F78C2FCF91CD -:1014A0001F910F91089580917B010895CF93DF9351 -:1014B00000D01F92CDB7DEB79C018091F801843037 -:1014C00019F593E099833B832A839093E9008FEF8A -:1014D0009091E800815095FD06C095ED9A95F1F741 -:1014E00000008111F5CF8091E80085FF0DC040E03C -:1014F00050E063E070E0CE0101960E94B30C809151 -:10150000E8008E778093E8000F900F900F90DF91A6 -:10151000CF910895CF93DF9300D01F92CDB7DEB760 -:101520002091F801243021F522E029839B838A83CE -:1015300083E08093E9008FEF9091E800815095FD62 -:1015400006C095ED9A95F1F700008111F5CF8091D5 -:10155000E80085FF0DC040E050E063E070E0CE01A0 -:1015600001960E94B30C8091E8008E778093E8008A -:101570000F900F900F90DF91CF9108952091F80177 -:101580002430F1F422E02093E9002FEF3091E800BD -:10159000215035FD06C035ED3A95F1F700002111D7 -:1015A000F5CF2091E80025FF0BC040E050E065E05A -:1015B00070E00E94B30C8091E8008E778093E80081 -:1015C0000895CF93DF93EC019091F801943009F0E6 -:1015D00046C080910D018823D9F080910E018823A7 -:1015E000B9F09093E9008FEF9091E800815095FD5C -:1015F00006C095E19A95F1F700008111F5CF809131 -:10160000E80085FF2CC040E050E060E170E017C0CA -:1016100081E08093E9008FEF9091E800815095FD83 -:1016200006C095ED9A95F1F700008111F5CF8091F4 -:10163000E80085FF14C040E050E068E070E0CE01B3 -:101640000E94B30C8091E8008E778093E80080E1DF -:10165000FE01ABE6B1E001900D928A95E1F7DF91D2 -:10166000CF9108958091F701811109C00E94480E21 -:101670000E94A50E8091E20084608093E2000895AC -:101680001092F7010895089508950C94EB1C42E020 -:1016900061EC81E00E94C20D42E061EC82E00E94B8 -:1016A000C20D42E061EC83E00E94C20D42E161ECB8 -:1016B00084E00C94C20D8091FA01833009F455C086 -:1016C00030F4813071F0823009F48EC008958A3090 -:1016D00009F47AC08B3009F460C0893009F09CC0ED -:1016E00020C08091F901813A09F096C08091E8000C -:1016F000877F8093E8008091FD019091FE01892B06 -:1017000021F460E18BE691E003C060E080E090E0CE -:1017100070E00E94FE0C8091E8008B778093E800D7 -:1017200008958091F901813209F076C08091FD0120 -:101730009091FE01009719F0039709F06DC0809118 -:10174000E800877F8093E8008091E80082FD05C073 -:101750008091F8018111F8CF5FC08091F1008093F2 -:101760007B018091E8008B7753C08091F901813A29 -:1017700009F052C08091FD019091FE01892B09F082 -:101780004BC08091E800877F8093E8008091E8005B -:1017900080FFFCCF80910D0136C08091F90181322C -:1017A000D9F58091FD019091FE01892BA9F58091D9 -:1017B000E800877F8093E8000E94F70D8091FB018D -:1017C00080930D010C942D168091F901813221F541 -:1017D0008091E800877F8093E8000E94F70D809158 -:1017E000FC0180937C0108958091F901813AA1F474 -:1017F0008091E800877F8093E8008091E80080FF77 -:10180000FCCF80917C018093F1008091E8008E777D -:101810008093E8000C94F70D089584B7877F84BF08 -:1018200088E10FB6F89480936000109260000FBEBC -:1018300080E880936100109261000E949A110E94DA -:10184000480E0E94A50E8091E20084608093E20021 -:1018500078940E942B110E949C1183E091E00E94D9 -:1018600046118091F801853069F40E94AD1C809189 -:10187000F6018823B1F30E94DA1C882391F30E94B9 -:101880009D0CEFCF0E94A411ECCF292F33272330DA -:101890003105C9F064F42130310581F02230310581 -:1018A00009F043C08DE690E02AE835E042C02132DD -:1018B0003105F1F02232310541F137C082E190E08B -:1018C00027EF35E036C099278130910541F082300D -:1018D000910541F0892B49F5E6E8F5E005C0E8E51A -:1018E000F5E002C0EEE2F5E0849190E09F0121C0B6 -:1018F0006430D8F4E62FF0E0EE0FFF1FED5CFE4FF2 -:101900002081318189E090E014C0643070F470E08F -:10191000FB01EE0FFF1FE55DFE4F20813181FB01D2 -:10192000E95DFE4F808190E004C080E090E020E01F -:1019300030E0FA0131832083089580E189BD82E19E -:1019400089BD09B400FEFDCF8091D8008F7D8093C2 -:10195000D8008091E00082608093E0008091E000F8 -:1019600081FDFCCF0895CF92DF92EF92FF920F930B -:101970001F93CF93DF93EC018B016A010E94160E37 -:10198000811133C0C114D10439F0F60180819181F5 -:10199000081B190BC80FD91FE12CF12C01151105DB -:1019A00019F18091E80085FD16C08091E8008E77DE -:1019B0008093E800C114D10449F0F601808191813F -:1019C000E80EF91EF182E08285E00FC00E94160E3B -:1019D000882321F30AC089918093F10001501109F5 -:1019E000FFEFEF1AFF0ADACF80E0DF91CF911F916E -:1019F0000F91FF90EF90DF90CF9008952091FF011D -:101A0000309100022617370748F06115710539F447 -:101A10002091E8002E772093E80001C0B90140E052 -:101A200061157105A9F12091F801222309F443C041 -:101A3000253009F442C02091E80023FD40C02091E8 -:101A4000E80022FD32C02091E80020FFE9CF40915C -:101A5000F3002091F20030E0342BFC01CF0161153E -:101A6000710559F02830310540F481918093F100DF -:101A7000615071092F5F3F4FF1CF41E028303105B0 -:101A800009F040E02091E8002E772093E800C8CFCD -:101A90004111C9CF0AC08091F801882361F08530D7 -:101AA00061F08091E80083FD0AC08091E80082FF28 -:101AB000F2CF80E0089582E0089583E0089581E008 -:101AC00008952091FF01309100022617370748F052 -:101AD0006115710539F42091E8002E772093E80014 -:101AE00001C0B901FC0120E06115710591F18091FF -:101AF000F801882309F440C0853009F43FC0809183 -:101B0000E80083FD3DC08091E80082FD2FC08091F8 -:101B1000E80080FFE9CF2091F3008091F20090E08F -:101B2000922B6115710559F08830910540F424918C -:101B30002093F1003196615071090196F2CF21E0B6 -:101B4000089709F020E08091E8008E778093E80004 -:101B5000CBCF2111CCCF0AC08091F801882361F04E -:101B6000853061F08091E80083FD0AC08091E80033 -:101B700082FFF2CF80E0089582E0089583E0089527 -:101B800081E00895982F973058F59093E9009817C1 -:101B900039F07091EC002091ED005091F00003C0FD -:101BA000242F762F50E021FF19C03091EB003E7FAB -:101BB0003093EB003091ED003D7F3093ED0030919C -:101BC000EB0031603093EB007093EC002093ED005C -:101BD0005093F0002091EE0027FF07C09F5FD3CF06 -:101BE0008F708093E90081E0089580E008958091EE -:101BF000F90187FF11C08091E80082FD05C0809146 -:101C0000F8018111F8CF11C08091E8008B770BC0EB -:101C10008091F801882349F08091E80080FFF8CF97 -:101C20008091E8008E778093E80008952091E40089 -:101C30003091E50095E64091EC00842F817040FFE3 -:101C400022C08091E80080FD1CC08091F8018823AB -:101C500091F0853091F08091EB0085FD10C04091AE -:101C6000E4005091E5004217530729F39A0191507F -:101C700011F784E0089582E0089583E0089581E0FB -:101C8000089580E008954091E80042FFDECF089576 -:101C90000E94B60E0E94BE0EE0EEF0E080818160F0 -:101CA0008083E8EDF0E080818F77808319BCA7ED19 -:101CB000B0E08C918E7F8C9380818F7E8083109298 -:101CC000F70108950F931F93CF93DF930E94B60EF1 -:101CD0000E94BE0EC8EDD0E088818F77888388810E -:101CE0008068888388818F7D888319BC1092F80171 -:101CF0001092F4011092F6011092F50100EE10E03E -:101D0000F80180818B7F808388818160888342E0B5 -:101D100060E080E00E94C20DE1EEF0E080818E7F05 -:101D20008083E2EEF0E08081816080838081886042 -:101D30008083F80180818E7F8083888180618883A1 -:101D4000DF91CF911F910F910895E8EDF0E0808130 -:101D50008F7E8083E7EDF0E080818160808384E086 -:101D600082BF81E08093F7010C94620EE8EDF0E011 -:101D700080818E7F80831092E20008951092DA00B5 -:101D80001092E10008951F920F920FB60F92112446 -:101D90002F933F934F935F936F937F938F939F9373 -:101DA000AF93BF93EF93FF938091E10082FF0BC04D -:101DB0008091E20082FF07C08091E1008B7F8093D9 -:101DC000E1000E942A118091DA0080FF1FC08091FB -:101DD000D80080FF1BC08091DA008E7F8093DA00EC -:101DE0008091D90080FF0DC080E189BD82E189BD6D -:101DF00009B400FEFDCF81E08093F8010E94320B10 -:101E000005C019BC1092F8010E94400B8091E100BE -:101E100080FF19C08091E20080FF15C08091E20030 -:101E20008E7F8093E2008091E20080618093E200E7 -:101E30008091D80080628093D80019BC85E080939F -:101E4000F8010E94440B8091E10084FF30C0809132 -:101E5000E20084FF2CC080E189BD82E189BD09B424 -:101E600000FEFDCF8091D8008F7D8093D8008091B7 -:101E7000E1008F7E8093E1008091E2008F7E80936D -:101E8000E2008091E20081608093E2008091F401A1 -:101E9000882311F084E007C08091E30087FD02C031 -:101EA00081E001C083E08093F8010E94450B80919E -:101EB000E10083FF29C08091E20083FF25C080916B -:101EC000E100877F8093E10082E08093F801109227 -:101ED000F4018091E1008E7F8093E1008091E20027 -:101EE0008E7F8093E2008091E20080618093E20027 -:101EF00042E060E080E00E94C20D8091F0008860C6 -:101F00008093F0000E94430BFF91EF91BF91AF913E -:101F10009F918F917F916F915F914F913F912F9101 -:101F20000F900FBE0F901F9018951F920F920FB633 -:101F30000F9211242F933F934F935F936F937F934F -:101F40008F939F93AF93BF93CF93DF93EF93FF93C1 -:101F5000C091E900CF708091EC00D82FD17080FD46 -:101F6000D0E81092E9008091F000877F8093F00024 -:101F700078940E94D90F1092E9008091F000886057 -:101F80008093F000CD2BCF70C093E900FF91EF91CB -:101F9000DF91CF91BF91AF919F918F917F916F9181 -:101FA0005F914F913F912F910F900FBE0F901F9017 -:101FB00018951F93CF93DF93CDB7DEB7AA970FB6CF -:101FC000F894DEBF0FBECDBFE9EFF1E088E08E0FE1 -:101FD0009091F10091938E13FBCF0E945B0B809147 -:101FE000E80083FF1FC18091F9019091FA01492F08 -:101FF00050E04A30510508F015C1FA01E859FF4F89 -:102000000C942E24803881F0823809F00BC1809125 -:10201000FD018F708093E9008091EB0085FB88279C -:1020200080F91092E90006C08091F5019091F601C7 -:10203000911182609091E800977F9093E8008093DF -:10204000F1001092F100C8C0282F2D7F09F0EAC0DE -:10205000882319F0823061F0E5C08091FB01813066 -:1020600009F0E0C0933009F080E08093F6012BC0C6 -:102070008091FB01811127C08091FD018F7009F4CF -:10208000D1C08093E9002091EB0020FF1CC0933069 -:1020900021F48091EB00806214C09091EB0090617C -:1020A0009093EB0021E030E0A90102C0440F551FDE -:1020B0008A95E2F74093EA001092EA008091EB00E3 -:1020C00088608093EB001092E9008091E800877FA0 -:1020D00086C08111A7C01091FB011F778091E3009A -:1020E0008078812B8093E3008091E800877F809344 -:1020F000E8000E94F70D8091E80080FFFCCF8091FE -:10210000E30080688093E300111102C082E001C007 -:1021100083E08093F80186C08058823008F082C046 -:102120008091FB019091FC018C3D53E0950779F57E -:1021300083E08A838AE289834FB7F894DE0113969D -:1021400020E03EE051E2E32FF0E050935700E491AD -:1021500020FF03C0E295EF703F5FEF708E2F90E09D -:10216000EA3010F0C79601C0C0968D939D932F5F03 -:10217000243149F74FBF8091E800877F8093E800C2 -:102180006AE270E0CE0101960E94FE0C14C0AE011E -:102190004F5F5F4F6091FD010E94450CBC01892B90 -:1021A00009F440C09091E800977F9093E8008981FE -:1021B0009A810E94610D8091E8008B778093E800FE -:1021C00031C0803879F58091E800877F8093E800FE -:1021D0008091F4018093F1008091E8008E778093E4 -:1021E000E8000E94F70D1EC081111CC09091FB01F8 -:1021F0009230C0F48091E800877F8093E80090934C -:10220000F4010E94F70D8091F401811106C08091C4 -:10221000E30087FD02C081E001C084E08093F80103 -:102220000E94470B8091E80083FF0AC08091E8007C -:10223000877F8093E8008091EB0080628093EB00C1 -:10224000AA960FB6F894DEBF0FBECDBFDF91CF9137 -:102250001F9108950895CF938091F8018823A1F0EC -:10226000C091E900CF709091EC00892F817090FDB2 -:1022700080E8C82B1092E9008091E80083FD0E945D -:10228000D90FCF70C093E900CF9108959093820148 -:10229000809381010895E0918101F091820130974E -:1022A00021F00190F081E02D099480E00895E09103 -:1022B0008101F0918201309721F00280F381E02DBD -:1022C00009940895E0918101F0918201309721F005 -:1022D0000480F581E02D0994089520917F013091CB -:1022E00080018217930771F09093800180937F01A2 -:1022F000E0918101F0918201309721F00680F78111 -:10230000E02D0994089520917D0130917E0182177E -:10231000930771F090937E0180937D01E09181019C -:10232000F0918201309721F00084F185E02D09942D -:10233000089508950C9499110E941F1D0E9473091D -:102340000E94A51D0C945D225F926F927F928F92E6 -:102350009F92AF92BF92CF92DF92EF92FF920F9334 -:102360001F93CF93DF9300D000D01F92CDB7DEB77D -:102370000E94B8099CE8C92E91E0D92E03E010E034 -:10238000AA24A394B12C502E802F0E94330A4C0112 -:10239000F601729062906F016826792661147104CB -:1023A000A1F40150110978F78FEF89838A831B828A -:1023B0000E94281D8160782F9D838C8349815A81DA -:1023C0006B818D810E94541238C08091E10181FDA2 -:1023D0000E943C0A2BE030E07501022E02C0EE0C98 -:1023E000FF1C0A94E2F7C70186219721892B09F186 -:1023F00029835A828E209F2091E0892809F490E059 -:102400009B830E94281D8160782F9D838C83498146 -:102410005A816B818D810E945412000F111FF801A7 -:10242000EC57FE4F80819181E826F926F182E08207 -:1024300004C02150310980F6B4CF0E94861F10914C -:1024400083010E944B111817D1F00E944B11809309 -:1024500083010F900F900F900F900F90DF91CF910D -:102460001F910F91FF90EF90DF90CF90BF90AF90B2 -:102470009F908F907F906F905F900C941F090F90AA -:102480000F900F900F900F90DF91CF911F910F91B0 -:10249000FF90EF90DF90CF90BF90AF909F908F9084 -:1024A0007F906F905F900895CF93DF93CDB7DEB7A5 -:1024B0002B970FB6F894DEBF0FBECDBF4F83588762 -:1024C00069877A878B87DE01119686E0FD0111927C -:1024D0008A95E9F785E0FE01379601900D928A957D -:1024E000E1F749815A816B817C818D819E810E94B7 -:1024F000CB182B960FB6F894DEBF0FBECDBFDF9181 -:10250000CF910895CF93882309F4C2C0C82F823891 -:1025100059F40E944B1181FDBBC089E30E94A51BA9 -:102520000E94721C89E30CC0833879F40E944B111D -:1025300080FDAEC083E50E94A51B0E94721C83E54E -:102540000E94E71BCF910C94721C843859F40E94AE -:102550004B1182FD9DC087E40E94A51B0E94721C46 -:1025600087E4EECF8CEF8C0F813A48F48C2F0E94D9 -:10257000C62181118DC08C2F0E94A51BE3CF80E264 -:102580008C0F883048F4C77081E001C0880FCA956D -:10259000EAF70E942B1CD6CF8BE58C0F833078F4A2 -:1025A000C53A29F0C63A31F083E890E005C081E8E9 -:1025B00090E002C082E890E0CF910C946D1188E524 -:1025C0008C0F833108F064C0C83A39F1C93A41F13F -:1025D000CA3A49F1CB3A51F1CC3A59F1CD3A61F1CD -:1025E000C03B69F1CE3A71F1CF3A79F1C13B81F14B -:1025F000C23B89F1C33B91F1C43B99F1C53BA1F1C9 -:10260000C63BA9F1C73BB1F1C83BB9F1C93BC1F128 -:10261000CA3BC9F180E090E038C082EE90E035C05E -:1026200089EE90E032C08AEE90E02FC085EB90E01A -:102630002CC086EB90E029C087EB90E026C08CECA4 -:1026400090E023C08DEC90E020C083E891E01DC0B5 -:102650008AE891E01AC082E991E017C084E991E02C -:1026600014C081E292E011C083E292E00EC084E2E5 -:1026700092E00BC085E292E008C086E292E005C0DD -:1026800087E292E002C08AE292E0CF910C9483113B -:10269000CF910895882309F44BC0823859F40E94E1 -:1026A0004B1181FF45C089E30E94A51B0E94721C4B -:1026B00089E30CC0833871F40E944B1180FF38C04D -:1026C00083E50E94A51B0E94721C83E50E94E71B04 -:1026D0000C94721C843859F40E944B1182FF28C05C -:1026E00087E40E94A51B0E94721C87E4EFCF9CEF39 -:1026F000980F913A58F390E2980F983050F4877001 -:1027000091E001C0990F8A95EAF7892F0E94311C48 -:10271000DFCF9BE5980F933020F480E090E00C949D -:102720006D11885A833120F480E090E00C9483117D -:102730000895882321F00E942B1C0C94721C08958C -:10274000882321F00E94311C0C94721C08957F9202 -:102750008F929F92AF92BF92CF92DF92EF92FF92B1 -:102760000F931F93CF93DF931F92CDB7DEB77C01FA -:10277000C62E772EFC01058102950F701281111172 -:102780000E94481C0E949E1B882379F0112369F047 -:1027900080E28C0D883048F082E00E94871B0E9406 -:1027A0009E1B91E0D82ED92601C0D12CE72DE295B1 -:1027B000EF70F0E0EE58FF4F0C942E24872D807FB1 -:1027C000072D0F70882311F00295007F112389F0E7 -:1027D000002309F499C180E28C0D883020F4802F09 -:1027E0000E942B1C03C0802F0E943B1C0E94721C65 -:1027F0008BC18C2D0E944A13002309F4C3C180E2CF -:102800008C0D883020F4802F0E94311C03C0802F53 -:102810000E94411C0E94721CB5C1872D807F972D9C -:102820009F70803211F4892F03C0892F8295807F99 -:10283000CC2021F0F1E0CF16A1F01DC0112339F01A -:10284000002319F1013009F50E945B1C9BC1002394 -:1028500019F0013009F496C189830E945E1C8981B8 -:1028600010C1112321F0063008F08CC10EC00530D4 -:1028700008F088C106C1112359F0002331F0F70197 -:10288000958190FF41C19F7095830E9499137AC1F1 -:10289000002309F4F6C03EC1872D86958695837086 -:1028A00090E0009719F0019761F06CC1112321F0BD -:1028B0008C2D972D937002C080E090E00E946D11E6 -:1028C00061C1112321F08C2D972D937002C080E0FF -:1028D00090E00E94831156C18C2D112319F00E94A3 -:1028E0008E1E02C00E94F61E0E947B1F4BC1872DC8 -:1028F000837009F052C0111145C18C2D82958695C7 -:102900008770880F880F9C2D9F70892E912CA12C89 -:10291000B12C082E04C0880C991CAA1CBB1C0A945C -:10292000D2F7C4FE14C00FE010E020E030E0B9019F -:10293000A80104C0440F551F661F771F8A95D2F760 -:10294000CB01BA01609570958095909503C060E0C9 -:1029500070E0CB01272D26952695237030E022309C -:10296000310569F02330310589F0682979298A29F0 -:102970009B292130310571F00E94131A03C1682987 -:1029800079298A299B290E942F1AFCC00E94131AB8 -:10299000C501B4010E94F719F5C0112319F0872D64 -:1029A000817001C08695882309F4ECC08C2D829536 -:1029B00086958770880F880F9C2D9F70892E912C8B -:1029C000A12CB12C082E04C0880C991CAA1CBB1C7D -:1029D0000A94D2F7C4FE14C00FE010E020E030E00B -:1029E000B901A80104C0440F551F661F771F8A95BF -:1029F000D2F7CB01BA01609570958095909503C090 -:102A000060E070E0CB01272D269526952370422F9C -:102A100050E04230510569F04330510589F0682992 -:102A200079298A299B294130510571F00E94ED1ABC -:102A3000A9C0682979298A299B290E94091BA2C05B -:102A40000E94ED1AC501B4010E94D11A9BC08C2DC1 -:102A500090E0FC01E05EF109E531F10508F050C0BD -:102A6000EE57FF4F0C942E240C2D0F70872D8F7175 -:102A7000112321F00E946A1A802F07CF0E948B1A1F -:102A8000802F0E94A0137EC0112341F0053008F072 -:102A900079C0872D8F710E94B01A74C0063008F07B -:102AA00071C0F7CF112339F0872D8F710E946A1AF8 -:102AB00069C01123C9F3872D8F710E948B1A62C0E0 -:102AC000112329F0872D8F710E94551A5BC00E9437 -:102AD0004B1A58C0112351F0172D1F71812F0E94DE -:102AE0006A1A63E0812F0E947E1B4CC081E00E9425 -:102AF000871B023008F446C082E00E94871B42C058 -:102B0000112331F0002381F28C2D0E9482123AC0F1 -:102B1000002389F28C2D0E944A1334C0472D4F7038 -:102B20006C2DC7010E9482040E946F192BC01111E5 -:102B300029C0472D4F7050E042305105B9F04CF498 -:102B40004115510581F041305105E1F40E94852283 -:102B500019C04330510569F04430510599F48C2D6A -:102B60000E94D7220FC00E946E220CC00E94A12298 -:102B700009C00E94B42206C0472D4F706C2DC701BA -:102B80000E948F08DD20F9F00E947A1B80FD1BC097 -:102B9000F70112820E94741B0E946A1AC7010E94E8 -:102BA000F2150E94741B0F90DF91CF911F910F912E -:102BB000FF90EF90DF90CF90BF90AF909F908F905D -:102BC0007F900C948B1A0F90DF91CF911F910F91F2 -:102BD000FF90EF90DF90CF90BF90AF909F908F903D -:102BE0007F9008950F931F93CF93DF93EC0188811B -:102BF00099812B813C81232BB9F09F3F11F48F3FAA -:102C000099F0CE010E941705882371F068817981BF -:102C10008A810E94701B8C010E94251B0E94EC1966 -:102C2000B801CE010E94A713DF91CF911F910F91A0 -:102C300008950E94481C0E94581C0E941D1C0E945E -:102C4000721C0E942C200E947B1F80E090E00E945A -:102C50006D1180E090E00C9483110E94381C0C945C -:102C600019160E94651B292F22952F7030E02C30F9 -:102C700031054CF42A3031056CF4225031092230F0 -:102C80003105A8F407C02C30310569F02F3031052B -:102C900051F00DC0803F69F018F4803E40F409C047 -:102CA000843F29F406C093FB882780F9089580E0CB -:102CB000089581E00895CF93DF9300D000D01F9254 -:102CC000CDB7DEB70F900F900F900F900F90DF9160 -:102CD000CF910895CF93DF9300D000D000D0CDB72F -:102CE000DEB726960FB6F894DEBF0FBECDBFDF91DC -:102CF000CF9108951F93CF93DF93C0918C0116E07D -:102D000080918D01C81799F0D0E01C9FF0011D9FA4 -:102D1000F00D1124E257FE4F408151816281738191 -:102D2000848195810E946A162196C770E9CFDF9150 -:102D3000CF911F9108954091BE015091BF016091C4 -:102D4000C0017091C1018091C2019091C3010C94A6 -:102D50006A168091C30182958F7009F054C08091EA -:102D6000C001882309F44FC080918C01A0918D018E -:102D70006091BE017091BF014091C1015091C201AB -:102D8000B6E08A1709F43FC090E041155105C1F142 -:102D90007F3F11F46F3FA1F1B89FF001B99FF00D93 -:102DA0001124E257FE4F218172132AC02081621341 -:102DB00027C02281211124C02381348124173507A3 -:102DC00010F421503109241B350B283C3105C0F487 -:102DD0002091C3012F7020612093C30126E0289F1A -:102DE000F001299FF00D1124ED56FE4F80818F7068 -:102DF000806180838EEB91E00E94F2150C947A162C -:102E000001968770BECF0895CF92DF92EF92FF9226 -:102E10000F931F93CF93DF93CDB7DEB762970FB6B3 -:102E2000F894DEBF0FBECDBF8C0185E0F801DE0156 -:102E30001D9601900D928A95E1F7D8014C9111965B -:102E40005C91119712966C9112971396CD90DC902D -:102E500014973091BE017091BF018091C101909192 -:102E6000C201009709F46BC17F3F19F43F3F09F499 -:102E700066C1E090C001EE2009F4C0C02091C301FA -:102E8000C816D90628F0F601E81BF90BCF0104C0DB -:102E9000809590958C0D9D1DFF24F394883C9105A1 -:102EA00078F0F12C207F09F0C6C07C2DD98AC88A21 -:102EB00089890E945B168EEB91E00E94F215B1C0E9 -:102EC000822F807F09F046C0751314C0341312C0DE -:102ED000611110C02F7020612093C3010E949B16C6 -:102EE0008EEB91E00E94F2158091C301D8011596F6 -:102EF0008C932EC0CD2819F15F3F11F44F3FF9F0AC -:102F0000F62E61111CC080918C0120918D0136E05C -:102F1000821709F45AC090E0389FF001399FF00DF4 -:102F20001124E257FE4F7181571306C07081471379 -:102F300003C07281711103C001968770E9CFF62E2C -:102F4000662309F418C18091C30181608093C30195 -:102F5000F12C11C1751308C0341306C0611104C0EF -:102F60008091C301D801C3C04D875E878D859E8542 -:102F70006A8B0E9431166A898823E1F16623D1F1B8 -:102F80002091C301822F82958F7090E0029774F098 -:102F90008091BE019091BF0198878F831986DB864F -:102FA000CA862C87CE0107960E94F21586E0F801AA -:102FB000AEEBB1E001900D928A95E1F70E94A9165F -:102FC0000E949B16FF24F394D6C04D875E878D85A3 -:102FD0009E850E94651B292F22952F7030E022309C -:102FE00031050CF0BCC09F7009F0B6C0805E88301F -:102FF00008F4C1C0C8010E94F215E4CFC816D90672 -:1030000008F453C0F601E81BF90BCF01883C910589 -:1030100008F450C0F12C7C2DD98AC88A89890E9475 -:103020005B16EEEBF1E086E0DF011D928A95E9F791 -:103030000E949B16A0C0751314C0341312C06111F6 -:1030400010C08091C301F8018583C8010E94F21568 -:1030500086E0EEEBF1E0DF011D928A95E9F7FE2CA8 -:103060008AC04D875E878D859E856A8B0E9431164A -:103070006A89882309F4BECF662309F4BBCF209167 -:10308000C301822F82958F7090E002970CF48ECF4F -:103090008091BE019091BF019A8389831B82DD825A -:1030A000CC822E83CE0101967FCF809590958C0D9A -:1030B0009D1DACCFF62E662309F49CCF75132EC050 -:1030C00034132CC02091C30120FD1FC0822F829594 -:1030D0008F70D9F0D80115962C9315978F3049F041 -:1030E0008F5F982F9295907F822F8F70892B1596E6 -:1030F0008C93C8010E94F21586E0F801AEEBB1E0B6 -:1031000001900D928A95E1F793CF86E0F801AEEB3E -:10311000B1E001900D928A95E1F72DC04D875E8751 -:103120008D859E850E943116811140CF8091C3010B -:1031300081608093C301C8010E94F2151CC0662300 -:1031400009F458CF4D875E878D859E850E94311684 -:10315000882309F44FCF2ACF811148CF0CC02430E7 -:1031600031050CF047CF9F7009F440CFF8019581ED -:10317000907F09F03BCF8F2D62960FB6F894DEBF9B -:103180000FBECDBFDF91CF911F910F91FF90EF90B8 -:10319000DF90CF9008951F93CF93DF93CDB7DEB725 -:1031A0002C970FB6F894DEBF0FBECDBF4F83588764 -:1031B00069877A878B879C87CE0107960E940417C0 -:1031C000882369F08F8198852A853B85232BF1F12F -:1031D0009F3F09F063C08F3F09F060C037C086E0B1 -:1031E000FE013796DE01119601900D928A95E1F766 -:1031F0006F817885EA85FB85309741F17F3F11F437 -:103200006F3F21F120918D0130E0C9010196877057 -:10321000992740918C0150E08417950709F447C025 -:1032200069837A83FD83EC8396E0929FD001939F1C -:10323000B00D1124A257BE4FFE01319601900D92A0 -:103240009A95E1F780938D010E947A1616E080919D -:103250008C0190918D018917C1F1189FC001112433 -:1032600082579E4F0E940417882379F1E0918C01C8 -:103270001E9FF0011124E257FE4F4081518162816F -:103280007381848195810E946A1680918C0190E0FF -:1032900001968770992780938C01D9CF4F815885EB -:1032A00069857A858B859C850E946A16CFCF0E949E -:1032B0002D1610928D0110928C01EEEBF1E086E05C -:1032C000DF011D928A95E9F7C1CF2C960FB6F894CD -:1032D000DEBF0FBECDBFDF91CF911F910895EF925A -:1032E000FF920F931F93CF93DF938C01892B09F4E7 -:1032F0006CC0F12CEE24E394E8012196F80184914E -:10330000843740F4843008F051C0813081F082303D -:1033100019F15BC0853709F444C0A8F19CE7980F08 -:10332000903708F052C08F770E944A1341C00E5F59 -:103330001F4FFE01C49180E28C0F883048F4C770A3 -:103340008E2D01C0880FCA95EAF70E944B1C14C04D -:103350008C2F0E9482122DC00E5F1F4FFE01C49160 -:1033600080E28C0F883058F4C7708E2D01C0880F12 -:10337000CA95EAF70E94511C0E94721C1AC08C2F39 -:103380000E944A1316C00E5F1F4FFE01C491CC234A -:1033900081F08FE99FE00197F1F700C00000C15074 -:1033A000F6CF0E5F1F4FFE01F49003C00E94821201 -:1033B0008E018F2D882309F49FCFEFE9FFE031972D -:1033C000F1F700C000008150F5CFDF91CF911F9140 -:1033D0000F91FF90EF90089508956093C801709346 -:1033E000C9018093CA019093CB010C9419160F93D5 -:1033F0001F930091C8011091C9012091CA01309119 -:10340000CB01DC01CB01802B912BA22BB32B809322 -:10341000C8019093C901A093CA01B093CB011F9139 -:103420000F910C9419160F931F930091C8011091DE -:10343000C9012091CA013091CB01DC01CB0180236D -:103440009123A223B3238093C8019093C901A09331 -:10345000CA01B093CB011F910F910C9419160F93D1 -:103460001F930091C8011091C9012091CA013091A8 -:10347000CB01DC01CB0180279127A227B3278093C2 -:10348000C8019093C901A093CA01B093CB011F91C9 -:103490000F910C9419161092C4011092C50110924C -:1034A000C6011092C7010C94191641E050E060E08B -:1034B00070E004C0440F551F661F771F8A95D2F72E -:1034C0004093C4015093C5016093C6017093C70136 -:1034D0000C94191641E050E060E070E004C0440F25 -:1034E000551F661F771F8A95D2F78091C40190916E -:1034F000C501A091C601B091C701482B592B6A2B79 -:103500007B2B4093C4015093C5016093C601709317 -:10351000C7010C94191641E050E060E070E004C06F -:10352000440F551F661F771F8A95D2F74095509517 -:10353000609570958091C4019091C501A091C601DC -:10354000B091C701482359236A237B234093C401C8 -:103550005093C5016093C6017093C7010C9419166E -:1035600041E050E060E070E004C0440F551F661F6A -:10357000771F8A95D2F78091C4019091C501A091DF -:10358000C601B091C701482759276A277B27409376 -:10359000C4015093C5016093C6017093C7010C9498 -:1035A00019160F931F930091C4011091C50120912A -:1035B000C6013091C701DC01CB01802B912BA22BDE -:1035C000B32B8093C4019093C501A093C601B0931F -:1035D000C7011F910F910C9419160F931F9300911F -:1035E000C4011091C5012091C6013091C701DC01D1 -:1035F000CB0180239123A223B3238093C401909312 -:10360000C501A093C601B093C7011F910F910C94FF -:1036100019160F931F930091C4011091C5012091B9 -:10362000C6013091C701DC01CB0180279127A22779 -:10363000B3278093C4019093C501A093C601B093B2 -:10364000C7011F910F910C9419160895CF92DF9224 -:10365000EF92FF920F931F93CF93DF938C01C09053 -:10366000C801D090C901E090CA01F090CB018091CF -:10367000C4019091C501A091C601B091C701C82AAB -:10368000D92AEA2AFB2ACFE1D0E0D701C6010C2EC5 -:1036900004C0B695A795979587950A94D2F780FFB1 -:1036A00006C0B8018C2F0E94EE06019721F42197E5 -:1036B00060F780E001C08C2FDF91CF911F910F91B7 -:1036C000FF90EF90DF90CF900895CF93DF93EC01C0 -:1036D0000E94261BBE010E94EE06DF91CF91089545 -:1036E000CB010E94651B08958091CC01859585953D -:1036F000859508958091CC018770089598E0899F01 -:1037000090011124262B2093CC010C946A1A20914D -:10371000CC01809582238093CC01982F977069F417 -:1037200030E0482F552747FD50952417350729F0DD -:103730008595859585950C948B1A08959091CC016B -:10374000977081E009F480E0089590910D0199232C -:1037500021F090910E01911109C020910F0130913B -:103760001001F90132969FEF40E01FC0982F969507 -:10377000969596959F3050F5E0910F01F0911001CC -:10378000E90FF11D877021E030E0A90102C0440F6C -:10379000551F8A95E2F7CA019181892B818308958B -:1037A0009F3F39F04F5F4E3041F051915813F8CFA1 -:1037B0000DC05111F7CF942FF5CF9F3F39F0F9018C -:1037C000E90FF11D97FDFA95828308950895909170 -:1037D0000D01992321F090910E01911109C02091C2 -:1037E0000F0130911001F9013296205F3F4F1FC049 -:1037F000982F9695969596959F30F0F4E0910F014D -:10380000F0911001E90FF11D877021E030E0A9016E -:1038100002C0440F551F8A95E2F7CA018095918135 -:103820008923818308953196E217F30729F0908167 -:103830009813F9CF1082F7CF089581E090E0E091DE -:103840000F01F0911001E80FF91F108201968031ED -:103850009105A9F708959091E001892B8093E001EB -:10386000089580959091E00189238093E001089567 -:103870001092E00108959091DF01892B8093DF0180 -:10388000089580959091DF0189238093DF01089549 -:103890001092DF0108959091DE01892B8093DE0163 -:1038A000089580959091DE0189238093DE0108952B -:1038B0001092DE0108958093CD0108951092CD01FC -:1038C000089580910F0190911001FC0131969C01A7 -:1038D000205F3F4F80E0919191118F5FE217F307D6 -:1038E000D1F70895E0910F01F09110018091E0016E -:1038F0008083E0910F01F091100190818091DF01B0 -:10390000892B8083E0910F01F091100190818091CB -:10391000DE01892B80838091CD01882361F0E091C5 -:103920000F01F09110019081892B80830E94611C0E -:1039300081111092CD0180910F01909110010C9492 -:10394000571120E0009739F0AC0141505109842310 -:1039500095232F5FF7CF822F08958091F80184304F -:1039600039F11092E20120E488E190E00FB6F8947A -:10397000A895809360000FBE2093600080E00E94B5 -:10398000DD0380E00E941F0983B7817F846083BFCD -:1039900083B7816083BF7894889583B78E7F83BF18 -:1039A00088E10FB6F89480936000109260000FBE1B -:1039B0000895089580E00E94DD030E9435090E9469 -:1039C000B8090E94D91C0E943D0A91E0811101C0F2 -:1039D00090E0892F08950E942D1680E00E94DD035B -:1039E0000E945D220E944B110C941F091F920F929E -:1039F0000FB60F9211248F939F93AF93BF93809133 -:103A0000E201811113C08091E3019091E401A09142 -:103A1000E501B091E6014196A11DB11D8093E3013E -:103A20009093E401A093E501B093E601BF91AF91BB -:103A30009F918F910F900FBE0F901F90189582E06D -:103A400084BD93E095BD9AEF97BD80936E00089575 -:103A50002FB7F8948091E3019091E401A091E501E2 -:103A6000B091E6012FBF0895CF92DF92EF92FF92BF -:103A70000F931F932FB7F8944091E3015091E40105 -:103A80006091E5017091E6012FBF6A017B01EE2490 -:103A9000FF248C0120E030E0C016D106E206F306D8 -:103AA00010F4415051099A01281B390BC9011F918B -:103AB0000F91FF90EF90DF90CF9008951F920F929B -:103AC0000FB60F9211248F939F93AF93BF93809162 -:103AD000E3019091E401A091E501B091E601019626 -:103AE000A11DB11D8093E3019093E401A093E50132 -:103AF000B093E601BF91AF919F918F910F900FBE50 -:103B00000F901F9018950E94480EF8942FEF87EAA7 -:103B100091E6215080409040E1F700C0000087E02E -:103B200090EBDC018093020290930302A0930402C5 -:103B3000B09305029CE088E10FB6F894A8958093B5 -:103B400060000FBE90936000FFCF0E94E21D8111C4 -:103B500002C00E94C31D0E94ED1D8093E1010E94DE -:103B6000FA1D90E09093F3018093F20187FB882780 -:103B700080F980930E010E94F11D682F70E080E0B3 -:103B800090E00C94ED196DEE7EEF80E090E00E94E5 -:103B9000682460E082E090E00E94562460E083E0C8 -:103BA00090E00E94562460E084E090E00E94562459 -:103BB00060E085E090E00E94562460E086E090E0BE -:103BC0000C94562480E090E00E94502421E08D3E29 -:103BD0009E4F09F020E0822F089582E090E00C943F -:103BE000482483E090E00C944824682F83E090E020 -:103BF0000C94562484E090E00C944824682F84E0D0 -:103C000090E00C94562486E090E00C944824682FB1 -:103C100086E090E00C9456248091E90180FF0BC06F -:103C20006091140185E0689FB00111247595679536 -:103C3000759567952BC081FF09C06091140185E0DF -:103C4000689FB00111247595679520C082FF07C059 -:103C50006091140185E0689FB001112417C0909114 -:103C6000EA019923D1F060911301961788F720910A -:103C7000140185E0289F90011124929FA001939F39 -:103C8000500D112470E0CA010E941A246038710599 -:103C900040F46115710539F002C065E070E0862FCF -:103CA00008958FE7089581E008958091E90180FFEC -:103CB00008C06091120170E07595679575956795DC -:103CC00021C081FF06C06091120170E07595679573 -:103CD00019C082FF04C06091120170E010C0909181 -:103CE000EA019923C1F0609111019617A0F7809124 -:103CF0001201899FC001112470E00E941A246038CB -:103D0000710528F46115710521F0862F08958FE75C -:103D1000089581E0089561E070E0F4CF803F21F4E0 -:103D20000E940C1E819504C0813F29F40E940C1E44 -:103D30008093ED010895823F21F40E940C1E81952D -:103D400004C0833F29F40E940C1E8093EC01089567 -:103D5000893F19F40E94551E05C08A3F31F40E9424 -:103D6000551E81958093EE0108958B3F21F40E94AA -:103D7000551E819504C08C3F29F40E94551E8093E6 -:103D8000EF010895843F21F48091EB01816017C019 -:103D9000853F21F48091EB01826011C0863F21F4C0 -:103DA0008091EB0184600BC0873F21F48091EB018F -:103DB000886005C0883F31F48091EB018061809379 -:103DC000EB0108958D3F21F48091E90181600BC0E2 -:103DD0008E3F21F48091E901826005C08F3F29F474 -:103DE0008091E90184608093E9010895803F39F46E -:103DF0008091ED0187FF6CC01092ED0169C0813F99 -:103E000029F48091ED011816BCF362C09091EC0189 -:103E1000823F29F497FF5CC01092EC0159C0833FA8 -:103E200019F41916CCF354C0893F41F48091EE0186 -:103E300018160CF04DC01092EE014AC08A3F29F4CA -:103E40008091EE0187FF44C0F6CF8B3F39F480911B -:103E5000EF0187FF3DC01092EF013AC08C3F29F47B -:103E60008091EF011816BCF333C0843F21F4809198 -:103E7000EB018E7F17C0853F21F48091EB018D7F90 -:103E800011C0863F21F48091EB018B7F0BC0873FEF -:103E900021F48091EB01877F05C0883F31F4809148 -:103EA000EB018F7E8093EB0113C08D3F21F4809155 -:103EB000E9018E7F0BC08E3F21F48091E9018D7F57 -:103EC00005C08F3F29F48091E9018B7F8093E90140 -:103ED0008091EC0181110EC08091ED0181110AC029 -:103EE0008091EE01811106C08091EF01811102C025 -:103EF0001092EA0108958BEE91E00E9462110E94F7 -:103F0000281D9093E8018093E70108951F93CF93B4 -:103F1000DF938091E7019091E8010E94341DAC018C -:103F20009091EA01992321F02091150130E006C01B -:103F3000209116018AE0289F90011124421753070F -:103F400008F486C08091EC01C091ED01D091EE01A2 -:103F50001091EF01811107C0C11176C0D11174C059 -:103F6000111172C075C09F3F19F09F5F9093EA01D5 -:103F7000181624F40E940C1E8093EC018091EC0131 -:103F800087FF05C00E940C1E81958093EC011C16D2 -:103F900024F40E940C1E8093ED018091ED0187FFB7 -:103FA00005C00E940C1E81958093ED016091EC018B -:103FB000662339F1C091ED01CC2319F1772767FD14 -:103FC0007095872F972F0E942B2323E333E343E33E -:103FD0005FE30E948F230E94F8226093EC016C2F14 -:103FE000772767FD7095872F972F0E942B2323E358 -:103FF00033E343E35FE30E948F230E94F822609340 -:10400000ED011D1624F40E94551E8093EE0180914F -:10401000EE0187FF05C00E94551E81958093EE0139 -:10402000111624F40E94551E8093EF018091EF0138 -:1040300087FF05C00E94551E81958093EF01DF9197 -:10404000CF911F910C947B1F9F3F09F08ECF96CF8D -:10405000DF91CF911F910895EBEEF1E085E0DF0154 -:104060001D928A95E9F71092EA011092E9010895EC -:10407000833081F128F4813059F08230D1F00895F5 -:10408000853009F449C0B8F1863009F456C0089566 -:1040900080911601262F30E0280F311D2F3F31056A -:1040A00024F4680F6093160108958FEF8093160132 -:1040B000089580911501262F30E0280F311D2F3FE4 -:1040C000310524F4680F6093150108958FEF8093F4 -:1040D0001501089580911401262F30E0280F311D1D -:1040E0002F3F310524F4680F6093140108958FEF7A -:1040F00080931401089580911301262F30E0280F3A -:10410000311D2F3F310524F4680F6093130108958A -:104110008FEF80931301089580911201262F30E0D4 -:10412000280F311D2F3F310524F4680F60931201D1 -:1041300008958FEF80931201089580911101262F29 -:1041400030E0280F311D2F3F310524F4680F6093B4 -:10415000110108958FEF809311010895833011F1BB -:1041600028F4813049F0823091F00895853081F152 -:1041700020F18630C1F1089580911601681720F46E -:10418000861B809316010895109216010895809160 -:104190001501681720F4861B80931501089510926D -:1041A0001501089580911401681720F4861B8093EF -:1041B0001401089510921401089580911301681755 -:1041C00020F4861B80931301089510921301089523 -:1041D00080911201681720F4861B809312010895C4 -:1041E00010921201089580911101681720F4861B26 -:1041F0008093110108951092110108950F931F9358 -:10420000873208F048C08E3108F092C0803109F43E -:104210007CC008F5873009F466C068F4863009F080 -:10422000A2C08091E101817F8E7F8093E10181E0D6 -:104230008093F10199C08B3009F48EC08E3009F063 -:1042400092C08091E10182FB222720F991E0922720 -:1042500090FB82F963C0863109F47EC060F481313D -:1042600009F081C00E942D1690910E0181E08927EE -:1042700080930E0171C0893109F46EC08B3109F051 -:1042800072C08091E10181FB222720F991E0922701 -:1042900090FB81F943C0883309F45EC050F4893241 -:1042A00009F45CC0853309F459C0873209F456C05B -:1042B0005AC0833409F452C028F48A3308F453C036 -:1042C000895337C0883409F04EC00E942D160FEF75 -:1042D00013ED20E3015010402040E1F700C0000042 -:1042E0000E94831D39C09091E101892F80958170D2 -:1042F00080FB90F929F0966098609093E10134C0BA -:10430000997F977F9093E10127C08091E10183FB22 -:10431000222720F991E0922790FB83F98093E10115 -:104320009923D1F08091E10181608093E10114C073 -:104330008D5141E050E060E070E08A019B0104C0D3 -:10434000000F111F221F331F8A95D2F7C901B80130 -:104350000E94ED190E942D1681E006C061E070E018 -:1043600080E090E0F5CF80E01F910F91089580E00C -:10437000089580E008958E518A3030F4E82FF0E0FF -:10438000E55CFE4F8081089580E00895CF93C82FAB -:104390008091F101813069F018F08230C9F183C059 -:1043A000E0910F01F09110018081823209F07DC00F -:1043B00007C0E0910F01F09110018081823261F419 -:1043C0008C2F0E94B721811104C08C2F0E94FE20E7 -:1043D0001DC081E090E01AC08C2F0E94B92181118C -:1043E00014C0C43179F048F4CB3079F0C03109F011 -:1043F00060C082E08093F10108C0C93219F0C8336F -:1044000021F057C01092F10154C081E0817053C077 -:10441000C93289F118F5C43171F1B0F4C73009F02F -:1044200046C08EE18093160182E3809315018AE0F5 -:104430008093140184E18093130188E0809312013A -:1044400088E28093110133C082EE8C0F863078F5BC -:104450008C2F0E94BB218093F00129C0CE34E9F05B -:1044600020F4CB3421F56AE013C0C13579F0C235B0 -:10447000F1F461E00DC08091F001882319F01092F1 -:10448000F00115C081E08093F10115C061E006C024 -:104490008091F0010E9438200AC06AE08091F0010A -:1044A0000E94AE2004C01092F10180E004C081E0BF -:1044B00002C080E0ABCFCF9108950E94E21D811130 -:1044C00002C00E94C31D0E94031E8093010280FF50 -:1044D00002C0869501C080E00C94DD03809101024A -:1044E000982F9695292F30E0233031054CF49F5FAB -:1044F000990F8170892B8160809301020E94071EB1 -:104500008091010286950C94DD0380910102982F21 -:10451000969591F09158990F8170892B80930102A3 -:104520008E7F91E009F490E08091010290FB80F988 -:10453000809301020E94071E8091010286950C94CF -:10454000DD0380910102982F909590FB80F9809374 -:1045500001020E94071E8091010280FF02C0869521 -:1045600001C080E00C94DD0390910102892F8695B3 -:104570008F5F8F779170843028F4880F892B809318 -:10458000010202C090930102809101028E7F91E0AE -:1045900009F490E08091010290FB80F98093010280 -:1045A0000E94071E8091010286950C94DD032091E4 -:1045B0000102922F96958927982F990F822F81704B -:1045C000892B809301028E7F91E009F490E0809125 -:1045D000010290FB80F9809301020E94071E8091E6 -:1045E000010286950C94DD03809101028695089561 -:1045F00004D06894B1118DC0089570D088F09F5791 -:1046000090F0B92F9927B751A0F0D1F0660F771F1E -:10461000881F991F1AF0BA95C9F712C0B13081F0FE -:1046200077D0B1E0089574C0672F782F8827B85FDE -:1046300039F0B93FCCF3869577956795B395D9F75F -:104640003EF490958095709561957F4F8F4F9F4F69 -:104650000895E89409C097FB3EF490958095709575 -:1046600061957F4F8F4F9F4F9923A9F0F92F96E9BE -:10467000BB279395F695879577956795B795F11133 -:10468000F8CFFAF4BB0F11F460FF1BC06F5F7F4FD0 -:104690008F4F9F4F16C0882311F096E911C07723E2 -:1046A00021F09EE8872F762F05C0662371F096E8EB -:1046B000862F70E060E02AF09A95660F771F881FBA -:1046C000DAF7880F9695879597F9089557FD9058D2 -:1046D000440F551F59F05F3F71F04795880F97FBC6 -:1046E000991F61F09F3F79F0879508951216130680 -:1046F0001406551FF2CF4695F1DF08C016161706AF -:104700001806991FF1CF86957105610508940895E3 -:10471000E894BB2766277727CB0197F908950BD03C -:1047200078C069D028F06ED018F0952309F05AC0EF -:104730005FC01124EECFCADFA0F3959FD1F3950F90 -:1047400050E0551F629FF001729FBB27F00DB11D15 -:10475000639FAA27F00DB11DAA1F649F6627B00DA5 -:10476000A11D661F829F2227B00DA11D621F739F8E -:10477000B00DA11D621F839FA00D611D221F749F9C -:104780003327A00D611D231F849F600D211D822FE3 -:10479000762F6A2F11249F5750408AF0E1F088232A -:1047A0004AF0EE0FFF1FBB1F661F771F881F915037 -:1047B0005040A9F79E3F510570F014C0AACF5F3F4B -:1047C000ECF3983EDCF3869577956795B795F7956A -:1047D000E7959F5FC1F7FE2B880F911D96958795F2 -:1047E00097F9089597F99F6780E870E060E0089571 -:1047F0009FEF80EC089500240A94161617061806F9 -:104800000906089500240A941216130614060506D4 -:104810000895092E0394000C11F4882352F0BB0F65 -:1048200040F4BF2B11F460FF04C06F5F7F4F8F4FC8 -:104830009F4F089597FB072E16F4009407D077FD3D -:1048400009D00E94342407FC05D03EF49095819550 -:104850009F4F0895709561957F4F0895EE0FFF1F4C -:104860000590F491E02D0994AA1BBB1B51E107C0F0 -:10487000AA1FBB1FA617B70710F0A61BB70B881FF0 -:10488000991F5A95A9F780959095BC01CD0108957F -:10489000F999FECF92BD81BDF89A992780B5089508 -:1048A000A8E1B0E042E050E00C947024262FF99982 -:1048B000FECF92BD81BDF89A019700B4021639F07F -:1048C0001FBA20BD0FB6F894FA9AF99A0FBE089550 -:1048D0000196272F0E9457240C945624DC01CB010B -:1048E000FC01F999FECF06C0F2BDE1BDF89A319600 -:1048F00000B40D9241505040B8F70895F894FFCF9E -:104900000700FF530AE10ABE0A8A0A560A0101CECD -:10491000012808140A321E1F0F03764F5F6F7F496C -:1049200069437909595363404D3639C506780642C3 -:104930000609069C05B505CE05E705010203040539 -:0649400006070809000053 -:00000001FF diff --git a/keyboards/planck/keymaps/pete/readme.md b/keyboards/planck/keymaps/pete/readme.md new file mode 100644 index 000000000..3cf594f3a --- /dev/null +++ b/keyboards/planck/keymaps/pete/readme.md @@ -0,0 +1,14 @@ +# Planck Layout by Pete + +This layout is based on the default layout but uses a FN key in the bottom left corner instead of the shift / backlight key. +On the FN layer you can do the following things + +- Step through back light +- Put a mac to sleep +- The Fxx keys in a block to click with the right hand +- The delete key in the upper right corner +- Quick access to screenshot functions +- Control volume and media playback +- Home/PgDown/PgUp/End buttons where the arrow keys are + +Pressing the lower and raise buttons allows to reset and change from QWERT to Colemak or Dvorak. diff --git a/keyboards/planck/keymaps/pvc/compiled.hex b/keyboards/planck/keymaps/pvc/compiled.hex deleted file mode 100644 index 9e6f0ffe2..000000000 --- a/keyboards/planck/keymaps/pvc/compiled.hex +++ /dev/null @@ -1,1635 +0,0 @@ -:100000000C9467030C94AB030C94AB030C94AB03FC -:100010000C94AB030C94AB030C94AB030C94AB03A8 -:100020000C94AB030C94AB030C94BE170C94901877 -:100030000C94F2250C94AB030C94AB030C94AB031F -:100040000C94AB030C940B040C94AB030C94AB0317 -:100050000C94AB030C945A260C94AB030C94AB0396 -:100060000C94AB030C94AB030C94AB030C94AB0358 -:100070000C94AB030C94AB030C94AB030C94AB0348 -:100080000C947A0D0C94AB030C94AB030C94AB035F -:100090000C94AB030C94AB030C94AB030C94AB0328 -:1000A0000C94AB030C94AB030C94AB037504870462 -:1000B0009B04B404AD04C404D304DB04E304ED04E2 -:1000C000F504FD0404050B051705170517051705AD -:1000D00017051705CF04FD181F190D1A1F190D1A42 -:1000E000641987190D1ADC19EF19D91CD91C081DC0 -:1000F000081D471D671DBD1EBD1E721DBD1E221E93 -:10010000221E891E921EBD1EB71E2F1E2F1E2F1EC1 -:100110002F1E2F1E2F1E2F1E2F1E2F1E2F1E2F1E77 -:100120002F1E2F1E2F1E2F1E2F1E3F1E4D1E541E14 -:100130005B1E651E07634236B79BD8A71A396856FF -:1001400018AEBAAB558C1D3CB7CC5763BD6DEDFDF9 -:10015000753EF6177231BF000000803F08000000B6 -:10016000BE922449123EABAAAA2ABECDCCCC4C3EAC -:1001700000000080BEABAAAAAA3E00000000BF009B -:100180000000803F0000000000084178D3BB438797 -:10019000D1133D190E3CC3BD4282AD2B3E68EC82AB -:1001A00076BED98FE1A93E4C80EFFFBE01C4FF7F30 -:1001B0003F00000000000000000000000000000000 -:1001C00000010204060A0F17202C3A4A5D71879D30 -:1001D000B3C7DAE9F5FCFFFCF5E9DAC7B39D87712F -:1001E0005D4A3A2C20170F0A0604020100000000A5 -:1001F00000000000000000222B0014001A0008007C -:10020000150017001C0018000C00120013002A0033 -:10021000290004001600070009000A000B000D0069 -:100220000E000F0033003400E1001D001B0006002B -:100230001900050011001000360037005200280098 -:10024000E000E3000530E20003302C002C00043015 -:10025000C000500051004F002B0014001A0009008C -:1002600013000A000D000F0018001C0033002900C5 -:100270002A00040015001600170007000B001100EB -:1002800008000C0012003400E1001D001B000600F5 -:10029000190005000E00100036003700520028003B -:1002A000E000E3000530E20003302C002C000430B5 -:1002B000C000500051004F002B00340036003700C2 -:1002C00013001C0009000A00060015000F002A0098 -:1002D000290004001200080018000C0007000B00A1 -:1002E0001700110016003800E100330014000D0063 -:1002F0000E001B00050010001A0019001D00280048 -:10030000E000E3000530E20003302C002C00043054 -:100310005200510050004F0046003A003B003C00A4 -:100320003D00530054005F006000610056004C0027 -:1003300039003E003F0040004100470055005C008E -:100340005D005E0057004900010042004300440088 -:1003500045004800000059005A005B0058004A0060 -:1003600001000100010001000100620062000100C3 -:10037000E600630058004D00010021022F022F000B -:100380002602220220022702300030021F024B0008 -:1003900001002302250257005600330033022D02CC -:1003A0003400340235004E000100310224021E02E6 -:1003B0003502380031002E003602370238024A007A -:1003C0000100010001000100010001000100010025 -:1003D0000100010001004D0053003A003B003C00C9 -:1003E0003D003E003F004000410042004300480005 -:1003F000390044004500680069006A006B006C0029 -:100400006D006E006F004600470000000000000015 -:100410000000000000000000000000000000A80034 -:1004200001000100010001000100AE00AE0001006A -:10043000A900AA00AC00AB002900FD00FE00FF00EF -:100440000000000000000000000000000000290083 -:10045000000000000000000000000000000000009C -:1004600000000000000000000100F800F700F600A6 -:10047000F50000000000000000000000F900FA0094 -:1004800001000100010001000100F400F40001007E -:10049000F000F100F200F3000100073008300930ED -:1004A0000A300B300C300D30010001002550225075 -:1004B00001000030013002300100010001000100A4 -:1004C0000100010001000100010001000100010024 -:1004D00014300050010006300100010026500100D8 -:1004E0000100010001000100010001000100010004 -:1004F0000100010027500100280354006800650036 -:10050000200050006C0061006E0063006B00200052 -:100510004B006500790062006F00610072006400AA -:1005200000002C034F007200740068006F006C0024 -:1005300069006E0065006100720020004B006500DC -:10054000790062006F0061007200640073000000B7 -:100550000403090409026D00040100A0FA09040063 -:10056000000103010100092111010001223F0007E0 -:1005700005810308000A09040100010301020009C2 -:100580002111010001224D000705820308000A091C -:1005900004020001030000000921110100012236BC -:1005A000000705830308000A090403000103000093 -:1005B0000009211101000122390007058403100000 -:1005C000011201100100000008EDFE606001000151 -:1005D00002000105010906A101050719E029E71537 -:1005E0000025019508750181020508190129059565 -:1005F00005750191029501750391010507190029FF -:100600007715002501957875018102C005010980E3 -:10061000A101850216010026B7001A01002AB700C1 -:10062000751095018100C0050C0901A10185031613 -:100630000100269C021A01002A9C02751095018176 -:1006400000C005010902A1010901A1000509190164 -:100650002905150025019505750181029501750390 -:1006600081010501093009311581257F9502750841 -:10067000810609381581257F950175088106050CCD -:100680000A38021581257F950175088106C0C005CD -:10069000010906A101050719E029E71500250195C3 -:1006A0000875018102950175088101050819012964 -:1006B00005950575019102950175039101050719CD -:1006C0000029FF150025FF950675088100C011243B -:1006D0001FBECFEFDAE0DEBFCDBF04B603FE24C0FD -:1006E00080916F0590917005A0917105B091720590 -:1006F0008730904BA740B04BB9F410926F05109221 -:100700007005109271051092720514BE84B7877F30 -:1007100084BF88E10FB6F894809360001092600067 -:100720000FBEE0E0F8E3099514E0A0E0B1E0EAE0F4 -:10073000F3E602C005900D92A031B107D9F715E09C -:10074000A0E1B4E001C01D92AF36B107E1F70E940D -:1007500004150C9483310C940000089581E00895F1 -:100760000C94AD030C94AE030C941E050E944D2D09 -:1007700023E030E0281B3109220F20931404089550 -:10078000282F2F9880918000211108C0877F8093A7 -:10079000800010928D0010928C001BC088608093A6 -:1007A0008000233019F48FEF9FEF0FC083E090E0BB -:1007B000821B9109880F991F2FEF3FEFA90102C0FB -:1007C000569547958A95E2F7CA0190938D008093DC -:1007D0008C000C94B6030E94B60384E0809313044B -:1007E000109210040895279A2F988FEF9FEF9093FF -:1007F0008700809386008AE08093800089E180935F -:1008000081000E94B62C0C94EB030E94F3036E9AB5 -:10081000769A0C948F051F920F920FB60F921124A7 -:100820002F933F938F939F93EF93FF93E091110446 -:10083000F0911204CF010196909312048093110459 -:100840000090130402C0F695E7950A94E2F7EF735F -:1008500080911004823019F4E03251F404C08130E8 -:1008600039F4EF3329F480916F008D7F80936F000E -:10087000F0E0EA54FE4FE49121E031E0E29FC00154 -:10088000E39F900D11240090140402C09695879563 -:100890000A94E2F790938D0080938C00FF91EF9182 -:1008A0009F918F913F912F910F900FBE0F901F90AE -:1008B0001895CF93DF93EC010E944E28BE0180E093 -:1008C00090E0DF91CF910C94E8220F931F93CF9388 -:1008D000DF93462F50E04531510508F0A8C0EC01E8 -:1008E000FA01EA5AFF4F0C9447318A81882309F4B0 -:1008F0009EC081E090E00E9459040AE017ED23E2D7 -:100900003CE340E064E070E080E792E011C08A815F -:10091000882309F48CC082E090E00E9459040AE028 -:1009200017ED23E23CE340E066E070E080E092E017 -:100930000E94F8107CC08A81882309F478C084E082 -:1009400090E00E9459040AE017ED23E23CE340E006 -:1009500068E070E080E392E0EBCF8A81882311F0B9 -:1009600084E006C084E00DC08A81882349F083E0DA -:100970000E94652347E063E084E00E945D0B57C05E -:1009800083E00E948623F6CF8A81882321F085E0C8 -:100990000E9465234CC085E00E94862348C08A815E -:1009A00081110E940D2D8A81882309F440C086E0C0 -:1009B0000E94AB233CC08A818823C9F160E070E0CB -:1009C00080E09EE307C08A81882389F160E070E0BF -:1009D00080E89EE30E949F112AC08A81882339F112 -:1009E00060E070E080E09FE3F5CF8A818823F9F032 -:1009F00060E070E080E49FE3EDCF8A818823B9F066 -:100A00008AE00E94B11113C08A81882381F08AE0B4 -:100A10000E94AB110CC08A81882349F060E070E02D -:100A200080E09FE30E949F1184E60E94A81180E06D -:100A300090E0DF91CF911F910F9108950F931F9335 -:100A4000CF93C82F8FE39CE90197F1F700C0000016 -:100A500090911504C1FF0BC091FD14C000E010E09F -:100A6000980140E062E070E080E991E03AC091FFD7 -:100A700009C000E010E0980140E062E070E080E82A -:100A800091E02FC0C0FF0BC090FD14C000E010E04B -:100A9000980140E062E070E080E791E022C090FFC2 -:100AA00009C000E010E0980140E062E070E080E6FC -:100AB00091E017C0C2FF0BC092FD15C000E010E02E -:100AC000980140E062E070E080E591E00AC092FFAA -:100AD0000AC000E010E0980140E062E070E080E4CD -:100AE00091E00E94F810C0931504CF911F910F91CF -:100AF00008950F931F938FE39CE90197F1F700C0CE -:100B000000000AE017ED23E23CE340E06FE070E014 -:100B100088ED92E00E94F8101F910F91089580E0F7 -:100B20000E94C2110C9479050F931F930AE017EDF0 -:100B300023E23CE340E069E070E080E992E00E945B -:100B4000F8102FEF87EA91E6215080409040E1F7BE -:100B500000C000001F910F910C94AD0C0F931F93D8 -:100B60000AE017ED23E23CE340E065E070E088ED49 -:100B700091E00E94F8101F910F9108950F931F9319 -:100B80000AE017ED23E23CE340E067E070E080EA32 -:100B900091E00E94F8101F910F9108950F931F93F9 -:100BA0000AE017ED23E23CE340E068E070E080E01B -:100BB00091E00E94F8101F910F91089581E008952F -:100BC0000C94DE0508950C94050480916604882336 -:100BD00009F448C08091220490912304009779F48D -:100BE0000E9424269093230480932204809124045D -:100BF00090E0009771F48091250490E00AC00E9473 -:100C0000302620915003309151032817390740F3C3 -:100C100029C00197880F991F880F991FFC01EA5D71 -:100C2000FB4F60817181828193810E94E00CE09191 -:100C3000240484E0E89FF0011124EA5DFB4F608109 -:100C40007181828193814FE050E00E9498108091E1 -:100C5000240490E001966091250470E00E943331F5 -:100C6000809324040C94B003109268040C94AD0C8F -:100C700081E0809368040C94BE058F929F92AF929E -:100C8000BF92EF92FF920F931F93CF93DF93CDB755 -:100C9000DEB7A3970FB6F894DEBF0FBECDBF7C01C1 -:100CA000FC0100811181C8010E942124B8010E9429 -:100CB0003F088C01B7010E94E005882309F4CCC1EC -:100CC0000032F0E51F0741F4F7018281882309F41F -:100CD00058C00E948F11C0C10132F0E51F0741F4D6 -:100CE000F7018281882309F44CC00E949811B4C195 -:100CF0000232F0E51F0751F4F7018281882309F4DD -:100D000040C00E948B118111F0CFE3CF0332F0E598 -:100D10001F0739F4F7018281882399F10E94380670 -:100D20009BC10432F0E51F0739F4F7018281882363 -:100D300041F10E94340690C10532F0E51F0749F4E5 -:100D4000F70182818823E9F0809168048111F1CF55 -:100D5000E5CF0632F0E51F0739F4F70182818823D9 -:100D600081F00E94C5110AC00732F0E51F0749F45F -:100D7000F7018281882329F00E94D0110E94CE05BC -:100D80006BC180916804811105C0F70182818111D6 -:100D9000CFC018C1003E110579F4F7018281882384 -:100DA00009F44DC00E94AD0C81E08093670410925D -:100DB00066041092250450C1023E110559F4F70152 -:100DC00082818823E1F10E94AD0C10926704109299 -:100DD000660442C1033E110591F4F7018281882324 -:100DE00071F10E94AD0C1092670481E0809366045B -:100DF0001092240410922304109222042DC1023573 -:100E0000110559F4F7018281882309F425C18091E5 -:100E10005003909151030A970DC00135110579F4E3 -:100E2000F7018281882309F417C1809150039091C2 -:100E300051030A9690935103809350030DC1409142 -:100E4000540383E2EFE6F3E0DE01119601900D9288 -:100E50008A95E1F7F701808121E030E02C0F3D1FFA -:100E6000280F311DC9012091520330915303FC0119 -:100E7000E20FF31F6081772767FD7095640F711D86 -:100E8000882777FD8095982F0E94552E20E030E02E -:100E900040E451E40E94BA2D4B015C01F70121812D -:100EA00084E090E0821B9109BC01882777FD809542 -:100EB000982F0E94552E9B01AC01C501B4010E94E0 -:100EC000522D9B01AC0160E070E080E090E40E9454 -:100ED000C82F20E030E04CED50E40E94652F4B011C -:100EE0005C01F70182818823D1F04FE050E0C50119 -:100EF000B4010E949810809167048823A1F080912A -:100F0000250424E0829FF0011124EA5DFB4F8082DA -:100F10009182A282B3828F5F8093250404C0C501B1 -:100F2000B4010E94E00C0F3F110508F02ECF94C0D1 -:100F30008091210481111FC0043130E5130709F0AD -:100F400051C00E94E20581E0809321040E94242682 -:100F50009093200480931F041092180410921A0496 -:100F60001092190410921C0410921B0410921E047B -:100F700010921D0471C080911F04909120040E9462 -:100F80003026883C910570F480911804E82FF0E039 -:100F9000EE0FFF1FE75EFB4F118300838F5F80938F -:100FA00018045AC0043880E5180721F005381045A8 -:100FB00001F13AC0F7018281882341F010921604B2 -:100FC00082E01EC0043830E5130759F580911604FD -:100FD000811106C086E20E947D1B86E20E94451CAC -:100FE00082E01CC00438F0E51F0741F305381045C6 -:100FF000D9F4F7018281882331F01092170480E23E -:101000000E94941C29C080911704811106C087E2B8 -:101010000E947D1B87E20E94451C80E20E949B1C6F -:101020001BC00538104529F381E080931604809396 -:101030001704C701A3960FB6F894DEBF0FBECDBF4D -:10104000DF91CF911F910F91FF90EF90BF90AF90E4 -:101050009F908F900C94B20380E0A3960FB6F89403 -:10106000DEBF0FBECDBFDF91CF911F910F91FF90DB -:10107000EF90BF90AF909F908F90089508959CE05F -:10108000799FF001112490E3899FE00DF11D112457 -:10109000E60FF11DEE0FFF1FE850FE4F8591949172 -:1010A0000895880F991FFC01EA58FF4F859194918C -:1010B0000895880F991FFC01EA50FE4F8591949185 -:1010C00008950F931F93CF93DF93EC01811521E3D4 -:1010D0009207A0F5C11580E3D80708F0D7C0C83E35 -:1010E000D105D8F4C03ED10508F007C2C83AD105F1 -:1010F00078F4C53AD10508F06AC0C130D10509F4C9 -:1011000063C008F4F7C1C430D10508F0F6C1F2C1DC -:10111000CB3BD10508F466C0EDC1C11590E2D907FB -:1011200008F0AFC0C11521E0D20708F0E6C1C03F0A -:10113000D10508F4DFC18E0110651FC2C03880E5FB -:10114000D80700F5C03790E5D90708F0A3C0C1154E -:1011500020E5D20709F4ACC050F4CE0190548031A0 -:101160009F4008F0C7C1DF708E01106A06C2C1300F -:1011700080E5D80709F4AEC0C43190E5D90708F47A -:10118000AFC0B8C1C33820E5D20709F48EC050F40F -:10119000C13890E5D90709F482C008F083C000E0A7 -:1011A00011EDEBC1C03181E5D80708F4A3C1C11529 -:1011B00097E5D90708F436C1CE01905781159041C3 -:1011C00008F098C1DF7093C101E010E0D6C1C53AC4 -:1011D000D10509F494C1C63AD10509F093C102E8DA -:1011E00010E4CBC1C83AD10509F48FC1C93AD10581 -:1011F00009F48EC1CA3AD10509F48DC1CB3AD105A3 -:1012000009F48CC1CC3AD10509F48BC1CD3AD10592 -:1012100009F48AC1C03BD10509F489C1CE3AD10590 -:1012200009F488C1CF3AD10509F487C1C13BD10582 -:1012300009F486C1C23BD10509F485C1C33BD10580 -:1012400009F484C1C43BD10509F483C1C53BD10570 -:1012500009F482C1C63BD10509F481C1C73BD10560 -:1012600009F480C1C83BD10509F47FC1C93BD10550 -:1012700009F47EC1CA3BD10509F47DC100E014E444 -:101280007CC1CE019F700E94590878C1DD278E0174 -:10129000106C73C1CF70DD278E01146D6EC100E03C -:1012A00010ED6BC100E012ED68C100E013ED65C107 -:1012B0000E94281F0E94AD0C0E9494058FEF94E3BA -:1012C0002CE0815090402040E1F700C000000E94D7 -:1012D0007F2653C1809143058160809343054DC1B2 -:1012E0000E943628811102C00E9412280E945328B1 -:1012F00090E090936E0580936D05C23080E5D8072D -:1013000021F480916D05816086C0C43090E5D907D5 -:1013100021F480916D0582607EC0C63020E5D20741 -:1013200021F480916D05846076C0C83080E5D807CF -:1013300019F480916D0527C0CA3090E5D90721F4D2 -:1013400080916D05806167C0CC3020E5D20721F423 -:1013500080916D0580625FC0CE3080E5D80721F4B2 -:1013600080916D05806457C0C03190E5D90721F4A4 -:1013700080916D0580684FC0C23120E5D20729F405 -:1013800080916D058460886046C0C33080E5D807D1 -:1013900021F480916D058E7F3EC0C53090E5D90760 -:1013A00021F480916D058D7F36C0C73020E5D207CE -:1013B00021F480916D058B7F2EC0C93080E5D80760 -:1013C00019F480916D0526C0CB3090E5D90721F442 -:1013D00080916D058F7E1FC0CD3020E5D20721F4AE -:1013E00080916D058F7D17C0CF3080E5D80721F43F -:1013F00080916D058F7B0FC0C13190E5D90721F435 -:1014000080916D058F7707C0C331D04531F480914D -:101410006D058B7F877F80936D0580916D050E94A0 -:101420005728ABC08D2F99278F7099278130910550 -:10143000D9F49E012370332702C0880F991F2A9583 -:10144000E2F79C688E0144E0000F111F4A95E1F716 -:1014500000271370802B912B53E0CC0FDD1F5A9582 -:10146000E1F7C076DD272FC08230910531F4DC2F03 -:10147000CC278E01016F106A80C08330910569F41A -:10148000CE018370992701E010E002C0000F111F08 -:101490008A95E2F7C8019C680FC084309105B9F4C1 -:1014A000CE018370992701E010E002C0000F111FE8 -:1014B0008A95E2F7C8019A6823E0CC0FDD1F2A95D0 -:1014C000E1F7C07ED7708C010C2B1D2B56C08530E8 -:1014D000910531F4DC2FCC278E01046F106A4DC0CA -:1014E000069709F04AC0CF71DD27DC2FCC278E018B -:1014F000106243C000E010E040C08E013EC001E831 -:1015000010E43BC003E810E438C002EE14E435C038 -:1015100009EE14E432C00AEE14E42FC005EB14E423 -:101520002CC006EB14E429C007EB14E426C00CEC35 -:1015300014E423C00DEC14E420C003E815E41DC03E -:101540000AE815E41AC002E915E417C004E915E435 -:1015500014C001E216E411C003E216E40EC004E276 -:1015600016E40BC005E216E408C006E216E405C066 -:1015700007E216E402C00AE216E4C801DF91CF9147 -:101580001F910F9108959CE0799FF001112490E341 -:10159000899FE00DF11D1124E60FF11DEE0FFF1FD5 -:1015A000E850FE4F85919491803E9105E0F4803C97 -:1015B000910558F58133910509F46FC048F48932DB -:1015C000910509F463C08A32910509F46DC072C0B7 -:1015D00089339105E9F082389105D1F08533910581 -:1015E00009F44DC067C0833E910581F138F4803E17 -:1015F0009105B9F0823E9105D9F05CC0863E910517 -:1016000061F1873E9105A1F155C00E9451080895EE -:1016100020916D0520FD02C021FF4CC080EE90E0BE -:1016200049C080916D0580FFF9CF89E390E042C009 -:1016300080916D0582FF0EC080916D0584FF03C00F -:1016400080E090E037C083EE90E034C080916D057B -:1016500082FFF2CF82EE90E02DC080916D0583FF76 -:101660000BC080916D0584FDEBCF87EE90E022C02A -:1016700080916D0583FFF5CF86EE90E01BC08091D1 -:101680006D0585FF07C089E290E014C080916D056B -:1016900085FFF9CF85E390E00DC080916D0586FF51 -:1016A00007C08AE290E006C080916D0586FFF9CF01 -:1016B00081E390E00E9461080895CF92DF92EF925B -:1016C000FF920F931F9301E010E020E030E06801EB -:1016D000790104C0CC0CDD1CEE1CFF1C8A95D2F7EE -:1016E00004C0000F111F221F331F6A95D2F70C2967 -:1016F0001D292E293F29C0902605D0902705E0906E -:101700002805F0902905C022D122E222F322842F5D -:10171000C016D106E206F30641F41F910F91FF9027 -:10172000EF90DF90CF900C9465231F910F91FF9065 -:10173000EF90DF90CF900C9486230C94B403E82FA5 -:10174000F0E0E256FC4F8081E82FEF70F0E08295E8 -:101750008F7021E030E0A90102C0440F551F8A9527 -:10176000E2F740A308950F931F93CF93DF9385B7BC -:10177000806885BF85B7806885BFC3E0D0E001E0A1 -:1017800010E0FE01E256FC4F8081E82FEF70F0E0A0 -:1017900021A182958F70A80102C0440F551F8A9520 -:1017A000E2F7CA01822B81A38C2F0E949F0B219705 -:1017B00040F78BE090E061E070E0FC01EE56FC4FFA -:1017C0002081E22FEF70F0E042A122952F70DB0123 -:1017D00002C0AA0FBB1F2A95E2F79D01242B22A36A -:1017E000019758F7DF91CF911F910F910C94E3056A -:1017F000EF92FF920F931F93CF93DF9301E714E0D3 -:10180000C3E0EE24E394F12CD5E08C2F0E949F0BD3 -:101810008BE090E040E050E0FC01EE56FC4F608130 -:10182000E62FEF70F0E020A130E062956F7002C00B -:10183000359527956A95E2F720FD09C09701082E96 -:1018400002C0220F331F0A94E2F7422B532B019759 -:1018500018F7F801929182918F018417950721F072 -:1018600051834083D09355038C2F0E949F0BC1500E -:1018700060F68091550387FD2CC0815080935503FD -:101880008F3F39F08FE99FE00197F1F700C000002A -:1018900020C080916F04909170049093780480939D -:1018A000770480916D0490916E04909376048093F8 -:1018B000750480916B0490916C04909374048093F0 -:1018C00073048091690490916A04909372048093E8 -:1018D00071040E94E50581E0DF91CF911F910F9186 -:1018E000FF90EF900895E82FF0E0EE0FFF1FEF5804 -:1018F000FB4F80819181089508950F931F93CF939B -:1019000009E714E0C0E0F801929182918F010E94F2 -:101910009C25C80FF4E001371F07A9F78C2FCF9142 -:101920001F910F9108950E943628811102C00E94D4 -:1019300012280E946528809358053E9A8091710074 -:101940008D7F8093710082E0809390008AE1809384 -:10195000910081E080937B04089580917B04811144 -:1019600002C00E94930C1092CB041092CA04809182 -:1019700071008D7F80937100809190008F738093B0 -:10198000900010928D0410928C041092C404109256 -:10199000C5041092C6041092C7041092C30410929A -:1019A000C204E2EAF4E0A2E9B4E0119211921192C9 -:1019B00011921D921D9284E0E23CF807B1F7089560 -:1019C000CF92DF92EF92FF920F931F93CF93DF930B -:1019D00020918C04222309F484C06B017C01809146 -:1019E0007B04811102C00E94930C02EC14E0C7E05A -:1019F000D0E0A7019601F8019291829172916291D3 -:101A00008F010E94B62D811131C0FE01EE0FFF1F24 -:101A1000EE0FFF1FEE55FB4F1082118212821382D0 -:101A2000DE01AA0FBB1FAE56BB4F11961C921E9231 -:101A3000C730D105E9F021964481558166817781CF -:101A400040835183628373831482158216821782C6 -:101A500012968D919C91139711969C938E93139649 -:101A60001C921E92129734961296E2CF219708F696 -:101A70008091CA049091CB04019797FD05C0909383 -:101A8000CB048093CA0404C01092CB041092CA0401 -:101A90008091CA049091CB042091C8043091C9046C -:101AA0002817390724F01092C9041092C804892B12 -:101AB000C1F4809171008D7F8093710080919000BE -:101AC0008F73809390001092C4041092C5041092FA -:101AD000C6041092C7041092C3041092C20410925C -:101AE0008C04DF91CF911F910F91FF90EF90DF90C9 -:101AF000CF9008951F920F920FB60F9211244F921C -:101B00005F926F927F928F929F92AF92BF92CF928D -:101B1000DF92EF92FF922F933F934F935F936F93D8 -:101B20007F938F939F93AF93BF93CF93DF93EF9365 -:101B3000FF9380918C04882309F49BC1C091CA044F -:101B4000D091CB041C161D060CF093C140907C0470 -:101B500050907D0460907E0470907F0420E030E01F -:101B6000A901C301B2010E94612F18160CF065C0D3 -:101B7000C130D10509F452C08091C8049091C904C4 -:101B8000BE010E9433317C019093C9048093C80444 -:101B900080908E0490908F04A0909004B090910457 -:101BA00020E030E040E85FE3C501B4010E94522D1F -:101BB00060938E0470938F048093900490939104AB -:101BC000F701EE0FFF1FEE0FFF1FEE55FB4FA301B6 -:101BD000920160817181828193810E94BA2D20E0FF -:101BE00030E040E05EE30E94652F9B01AC01C5013F -:101BF000B4010E94612F18168CF4C7010196BE0132 -:101C00000E9433319093C9048093C80410928E04CB -:101C100010928F041092900410929104E091C804E5 -:101C2000F091C904EE0FFF1FEE0FFF1FEE55FB4FA3 -:101C30006081718182819381D0C0C090C404D090B2 -:101C4000C504E090C604F090C70420E030E0A9018C -:101C5000C701B6010E94B62D2197882309F4A2C0BE -:101C6000FE01EE0FFF1FEE0FFF1FEE55FB4F8080B2 -:101C70009180A280B380A5019401C701B6010E94A2 -:101C8000B62D87FF31C0A501940160E070E08CEDB6 -:101C900093EC0E94BA2D20E030E040E451E40E9431 -:101CA000BA2D20E030E040E05FE30E94652F9B0109 -:101CB000AC0160E070E080E090E40E94C82F9B01DE -:101CC000AC01C501B4010E94652F9B01AC01C701A5 -:101CD000B6010E94B62D87FF07C0A701960160E0FC -:101CE00070E08CED93E439C0A5019401C701B60101 -:101CF0000E94612F18160CF055C0A501940160E0F8 -:101D000070E08CED93E40E94BA2D20E030E040E4D6 -:101D100051E40E94BA2D20E030E040E05FE30E94F1 -:101D2000652F9B01AC0160E070E080E090E40E94D0 -:101D3000C82F9B01AC01C501B4010E94652F9B0116 -:101D4000AC01C701B6010E94612F18165CF5A7010E -:101D5000960160E070E08CED93EC0E94BA2D20E0DB -:101D600030E040E451E40E94BA2D20E030E040E051 -:101D70005FE30E94652F9B01AC0160E070E080E0B2 -:101D800090E40E94C82F9B01AC01C701B6010E94DC -:101D9000652F6093C4047093C5048093C604909328 -:101DA000C70413C0FE01EE0FFF1FEE0FFF1FEE551D -:101DB000FB4F80819181A281B3818093C404909371 -:101DC000C504A093C604B093C7046091C404709185 -:101DD000C5048091C6049091C70420917904309184 -:101DE0007A042F3F4FEF340731F02F5F3F4F30938E -:101DF0007A04209379040E94DB116B017C0120E0BE -:101E000034E244EF51E40E94B62D87FF08C086EF0C -:101E1000C82E88E2D82E84EFE82E81E4F82E20E048 -:101E200030E040E051E4C701B6010E94652F9B01FC -:101E3000AC0160E074E284E79BE40E94BA2D6B0180 -:101E40007C010E94272E709397006093960020914A -:101E50005603309157034091580350915903C701DD -:101E6000B6010E94652F0E94272E709399006093FF -:101E7000980080918D04882309F433C1C0908804B0 -:101E8000D0908904E0908A04F0908B0420E030E048 -:101E9000A901C701B6010E94612F1816D4F58091DF -:101EA000790490917A048F3F2FEF920729F00196E1 -:101EB00090937A0480937904C701B6010E94DB11E4 -:101EC00020E030E040E051E40E94652F9B01AC012E -:101ED00060E074E284E79BE40E94BA2D6B017C0110 -:101EE0000E94272E709397006093960020915603CE -:101EF000309157034091580350915903C701B601DF -:101F00000E94652F0E94272E70939900609398007D -:101F100008C01092970010929600109299001092AB -:101F2000980060918204709183046F5F7F4F70937B -:101F3000830460938204209196003091970080E0A2 -:101F400090E0232BF1F0C0919600D09197000E9471 -:101F5000532E6B017C01BE0180E090E00E94532E65 -:101F60009B01AC016091840470918504809186048A -:101F7000909187040E94BA2D20E03FEF4FE757E48D -:101F800010C00E94532E6B017C0120E030EE4FEF19 -:101F900054E460918404709185048091860490914A -:101FA00087040E94652F9B01AC01C701B6010E9406 -:101FB000612F87FD96C0809180048F5F809380049D -:101FC00090E0209154053091550582179307A0F0B9 -:101FD00080915F05882319F0109280040DC08091D4 -:101FE00071008D7F80937100809190008F7380933A -:101FF000900010928D047DC080918104C091800476 -:10200000811128C0C0905905D0905A05E0905B0519 -:10201000F0905C0520E030E0A901C701B6010E9404 -:10202000612F1816BCF481E080938104109288041B -:102030001092890410928A0410928B04C092840436 -:10204000D0928504E0928604F0928704C150C09338 -:10205000800443C01092810410927A041092790493 -:10206000E0915605F091570548E0C49FE00DF11D41 -:10207000112480819181A281B381809388049093FF -:102080008904A0938A04B0938B0420E030E040E8F8 -:102090005EE364817581868197810E94652F6B0163 -:1020A0007C0180915A03682F70E080E090E00E94EC -:1020B000532E20E030E048EC52E40E94BA2D9B0100 -:1020C000AC01C701B6010E94652F60938404709330 -:1020D0008504809386049093870410928304109261 -:1020E00082048091580580FD04C010928D041092E6 -:1020F0008C04FF91EF91DF91CF91BF91AF919F91B0 -:102100008F917F916F915F914F913F912F91FF90B0 -:10211000EF90DF90CF90BF90AF909F908F907F9087 -:102120006F905F904F900F900FBE0F901F9018957B -:10213000CF92DF92EF92FF92CF93DF936B017C01FE -:10214000EA0180917B04811102C00E94930C80916E -:10215000580580FF46C08091CA049091CB0408972F -:102160000CF03FC0809171008D7F80937100809151 -:102170008D0481110E94AD0C81E080938C0410923B -:102180007A041092790420E030E0A901C701B60179 -:102190000E94612F1816DCF48091CA049091CB0440 -:1021A000FC01EE0FFF1FEE0FFF1FEE55FB4FC0822D -:1021B000D182E282F382FC01EE0FFF1FEE56FB4F4D -:1021C000D183C08301969093CB048093CA048091FD -:1021D000710082608093710080919000806880938C -:1021E0009000DF91CF91FF90EF90DF90CF90089516 -:1021F0008F929F92AF92BF92CF92DF92EF92FF9217 -:102200000F931F93CF93DF93EC017B01D42E4801F2 -:10221000590180917B04811102C00E94930C80912E -:10222000580580FF6BC0809171008D7F8093710095 -:1022300080918C0481110E94AD0C81E080938D040B -:10224000D0935705C0935605F0925505E09254057A -:10225000D0925F058092590590925A05A0925B0535 -:10226000B0925C0510928E0410928F04109290042C -:10227000109291041092800488819981AA81BB8177 -:102280008093880490938904A0938A04B0938B046C -:1022900020E030E040E85EE36C817D818E819F81AB -:1022A0000E94652F6B017C0180915A03682F70E0BA -:1022B00080E090E00E94532E20E030E048EC52E4B1 -:1022C0000E94BA2D9B01AC01C701B6010E94652F87 -:1022D00060938404709385048093860490938704AC -:1022E0001092830410928204809171008260809326 -:1022F000710080919000806880939000DF91CF9171 -:102300001F910F91FF90EF90DF90CF90BF90AF9013 -:102310009F908F90089580915805817008958091C5 -:1023200058058160809358050E9469280C94AE0579 -:10233000809158058E7F809358050C94692860938E -:10234000560370935703809358039093590308954D -:1023500080935A03089590915A03890F80935A03EA -:10236000089590915A03292F30E0281B31092A3013 -:10237000310524F48AE080935A030895981B9093C2 -:102380005A0308958093CC0408958091CC0490E082 -:10239000019666E070E00E9433318093CC0408958A -:1023A0008091CC0490E0019766E070E00E943331A8 -:1023B0008093CC0408958F929F92AF92BF92CF9258 -:1023C000DF92EF92FF920F931F93CF93DF936B01F6 -:1023D0007C01C0917904D0917A04BE0180E090E044 -:1023E0000E94532E4B015C01A701960160E070E052 -:1023F0008CE594E40E94BA2D9B01AC01C501B401A7 -:102400000E94652F0E94272E2091CC04233009F4CE -:1024100073C028F4222351F02130E9F02CC124307C -:1024200009F4A0C0253009F4E0C025C180E090E0A7 -:10243000A0E0BFE38093560390935703A093580303 -:10244000B093590310927C0410927D0410927E0484 -:1024500010927F0410C110927C0410927D0410929F -:102460007E0410927F046431710540F46A30710576 -:1024700060F520E030E040E85EE32BC0693C710588 -:1024800008F0AAC080E090E00E94532E20E030E0E7 -:1024900040EA51E40E94512D20E030E044E353E44F -:1024A0000E94BA2D9B01AC010E94652F20E030E014 -:1024B00040E05EE30E94652F9B01AC0160E070E0AC -:1024C00080E09EE30E94512D44C020E030E040E0D7 -:1024D0005FE3C701B6010E94652F6B017C0180E0BC -:1024E00090E0A0E0BEE38093560390935703A0933F -:1024F0005803B0935903BFC010927C0410927D041E -:1025000010927E0410927F044AE0469F9001479FFC -:10251000300D1124C90168EB7BE00E941F31BC0122 -:102520006C5D754077FF03C07195619571098827CF -:1025300077FD8095982F0E94552E2EE333EC4EE2C6 -:1025400059E30E94652F20E030E040EC5EE30E94FA -:10255000522D6093560370935703809358039093C2 -:10256000590389C010927C0410927D0410927E045D -:1025700010927F04CE0183709927892BE1F0BE0170 -:102580006170772780E090E00E94532E20E030E0D9 -:1025900040E05EE30E94652F20E030E040E45FE32E -:1025A0000E94522D609356037093570380935803F3 -:1025B000909359030CC080E090E0A0E0BFE38093CB -:1025C000560390935703A0935803B0935903C770D1 -:1025D000DD27CD2B09F04FC0109256031092570300 -:1025E000109258031092590346C010927C04109226 -:1025F0007D0410927E0410927F0400E010E020E041 -:102600003FE30093560310935703209358033093EE -:1026100059036739710578F180E090E00E94532EEC -:1026200020E030E047E153E40E94512D20E030E00B -:102630004AE754E40E94BA2D20E030E048E452E436 -:102640000E94652F20E030E040EA51E40E94972E7E -:102650000E94222E660F771F660F771FFB01EE5533 -:10266000FC4F2081318142815381C701B6010E9414 -:10267000652F6B017C01C701B601DF91CF911F91DE -:102680000F91FF90EF90DF90CF90BF90AF909F9011 -:102690008F9008958091DD040895CF93DF9300D04B -:1026A0001F92CDB7DEB79C0180916405843019F587 -:1026B00093E099833B832A839093E9008FEF909175 -:1026C000E800815095FD06C095ED9A95F1F7000060 -:1026D0008111F5CF8091E80085FF0DC040E050E00A -:1026E00063E070E0CE0101960E94AE158091E80093 -:1026F0008E778093E8000F900F900F90DF91CF912D -:102700000895CF93DF9300D01F92CDB7DEB720910D -:102710006405243021F522E029839B838A8383E0AA -:102720008093E9008FEF9091E800815095FD06C0FD -:1027300095ED9A95F1F700008111F5CF8091E800B1 -:1027400085FF0DC040E050E063E070E0CE010196EF -:102750000E94AE158091E8008E778093E8000F907C -:102760000F900F90DF91CF91089520916405243050 -:10277000F1F422E02093E9002FEF3091E80021509E -:1027800035FD06C035ED3A95F1F700002111F5CF82 -:102790002091E80025FF0BC040E050E065E070E0CC -:1027A0000E94AE158091E8008E778093E80008952E -:1027B000CF93DF93EC0190916405943009F046C00B -:1027C000809165038823D9F0809166038823B9F04E -:1027D0009093E9008FEF9091E800815095FD06C03D -:1027E00095E19A95F1F700008111F5CF8091E8000D -:1027F00085FF2CC040E050E060E170E017C081E050 -:102800008093E9008FEF9091E800815095FD06C01C -:1028100095ED9A95F1F700008111F5CF8091E800D0 -:1028200085FF14C040E050E068E070E0CE010E94F7 -:10283000AE158091E8008E778093E80080E1FE017C -:10284000ADECB4E001900D928A95E1F7DF91CF9164 -:10285000089580916305811109C00E9443170E9469 -:10286000A0178091E20084608093E20008951092A6 -:1028700063050895089508950C94E72542E061ECFE -:1028800081E00E94BD1642E061EC82E00E94BD162C -:1028900042E061EC83E00E94BD1642E161EC84E01D -:1028A0000C94BD1680916605833009F455C030F450 -:1028B000813071F0823009F48EC008958A3009F4B5 -:1028C0007AC08B3009F460C0893009F09CC020C008 -:1028D00080916505813A09F096C08091E800877F74 -:1028E0008093E8008091690590916A05892B21F415 -:1028F00060E18DEC94E003C060E080E090E070E087 -:102900000E94F9158091E8008B778093E800089584 -:1029100080916505813209F076C0809169059091BA -:102920006A05009719F0039709F06DC08091E800DF -:10293000877F8093E8008091E80082FD05C0809148 -:1029400064058111F8CF5FC08091F1008093DD04B0 -:102950008091E8008B7753C080916505813A09F03A -:1029600052C08091690590916A05892B09F04BC08E -:102970008091E800877F8093E8008091E80080FFE5 -:10298000FCCF8091650336C0809165058132D9F511 -:102990008091690590916A05892BA9F58091E800DD -:1029A000877F8093E8000E94F216809167058093EC -:1029B00065030C94281F80916505813221F5809173 -:1029C000E800877F8093E8000E94F21680916805F6 -:1029D0008093DE04089580916505813AA1F4809189 -:1029E000E800877F8093E8008091E80080FFFCCFBB -:1029F0008091DE048093F1008091E8008E778093CF -:102A0000E8000C94F216089584B7877F84BF88E1AC -:102A10000FB6F89480936000109260000FBE90E0B3 -:102A200080E80FB6F89480936100909361000FBE28 -:102A30000E94951A0E9443170E94A0178091E200FD -:102A400084608093E20078940E94261A0E94971A6C -:102A50008BE593E00E94411A80916405853069F40A -:102A60000E94A825809162058823B1F30E94D62593 -:102A7000882391F30E949815EFCF0E949F1AECCF04 -:102A8000292F332723303105C9F064F42130310573 -:102A900081F02230310509F043C08DE690E024E555 -:102AA00035E042C021323105F1F02232310541F1E9 -:102AB00037C082E190E021EC35E036C099278130C3 -:102AC000910541F08230910541F0892B49F5E0E50F -:102AD000F5E005C0E2E2F5E002C0E8EFF4E0849141 -:102AE00090E09F0121C06430D8F4E62FF0E0EE0FB3 -:102AF000FF1FE250FC4F2081318189E090E014C03B -:102B0000643070F470E0FB01EE0FFF1FEA50FC4FE1 -:102B100020813181FB01EE50FC4F808190E004C0A8 -:102B200080E090E020E030E0FA01318320830895D6 -:102B300080E189BD82E189BD09B400FEFDCF8091AD -:102B4000D8008F7D8093D8008091E00082608093D0 -:102B5000E0008091E00081FDFCCF0895CF92DF92EC -:102B6000EF92FF920F931F93CF93DF93EC018B01B2 -:102B70006A010E941117811133C0C114D10439F0C8 -:102B8000F60180819181081B190BC80FD91FE12C18 -:102B9000F12C0115110519F18091E80085FD16C091 -:102BA0008091E8008E778093E800C114D10449F049 -:102BB000F60180819181E80EF91EF182E08285E0C4 -:102BC0000FC00E941117882321F30AC089918093B6 -:102BD000F10001501109FFEFEF1AFF0ADACF80E090 -:102BE000DF91CF911F910F91FF90EF90DF90CF90E9 -:102BF000089520916B0530916C052617370748F032 -:102C00006115710539F42091E8002E772093E800D2 -:102C100001C0B90140E061157105A9F12091640579 -:102C2000222309F443C0253009F442C02091E80072 -:102C300023FD40C02091E80022FD32C02091E80031 -:102C400020FFE9CF4091F3002091F20030E0342BD7 -:102C5000FC01CF016115710559F02830310540F4B0 -:102C600081918093F100615071092F5F3F4FF1CF47 -:102C700041E02830310509F040E02091E8002E774E -:102C80002093E800C8CF4111C9CF0AC080916405E4 -:102C9000882361F0853061F08091E80083FD0AC0EF -:102CA0008091E80082FFF2CF80E0089582E00895ED -:102CB00083E0089581E0089520916B0530916C05C3 -:102CC0002617370748F06115710539F42091E8009F -:102CD0002E772093E80001C0B901FC0120E06115C6 -:102CE000710591F180916405882309F440C0853015 -:102CF00009F43FC08091E80083FD3DC08091E80069 -:102D000082FD2FC08091E80080FFE9CF2091F30081 -:102D10008091F20090E0922B6115710559F0883096 -:102D2000910540F424912093F1003196615071098E -:102D30000196F2CF21E0089709F020E08091E800A9 -:102D40008E778093E800CBCF2111CCCF0AC0809141 -:102D50006405882361F0853061F08091E80083FD8F -:102D60000AC08091E80082FFF2CF80E0089582E0FF -:102D7000089583E0089581E00895982F973058F5DD -:102D80009093E900981739F07091EC002091ED00D4 -:102D90005091F00003C0242F762F50E021FF19C07E -:102DA0003091EB003E7F3093EB003091ED003D7FA2 -:102DB0003093ED003091EB0031603093EB00709375 -:102DC000EC002093ED005093F0002091EE0027FFDF -:102DD00007C09F5FD3CF8F708093E90081E0089593 -:102DE00080E008958091650587FF11C08091E8001B -:102DF00082FD05C0809164058111F8CF11C08091DA -:102E0000E8008B770BC080916405882349F080919E -:102E1000E80080FFF8CF8091E8008E778093E8008B -:102E200008952091E4003091E50095E64091EC0092 -:102E3000842F817040FF22C08091E80080FD1CC07B -:102E400080916405882391F0853091F08091EB00AA -:102E500085FD10C04091E4005091E50042175307F2 -:102E600029F39A01915011F784E0089582E00895C2 -:102E700083E0089581E0089580E008954091E8009E -:102E800042FFDECF08950E94B1170E94B917E0EE0D -:102E9000F0E0808181608083E8EDF0E080818F77D1 -:102EA000808319BCA7EDB0E08C918E7F8C938081DC -:102EB0008F7E80831092630508950F931F93CF93A5 -:102EC000DF930E94B1170E94B917C8EDD0E0888146 -:102ED0008F77888388818068888388818F7D8883C5 -:102EE00019BC109264051092600510926205109250 -:102EF000610500EE10E0F80180818B7F808388817E -:102F00008160888342E060E080E00E94BD16E1EECF -:102F1000F0E080818E7F8083E2EEF0E0808181604E -:102F20008083808188608083F80180818E7F8083A8 -:102F3000888180618883DF91CF911F910F910895DF -:102F4000E8EDF0E080818F7E8083E7EDF0E0808126 -:102F50008160808384E082BF81E0809363050C946C -:102F60005D17E8EDF0E080818E7F80831092E200B3 -:102F700008951092DA001092E10008951F920F92C6 -:102F80000FB60F9211242F933F934F935F936F933C -:102F90007F938F939F93AF93BF93EF93FF93809112 -:102FA000E10082FF0BC08091E20082FF07C08091A8 -:102FB000E1008B7F8093E1000E94251A8091DA0066 -:102FC00080FF1FC08091D80080FF1BC08091DA0075 -:102FD0008E7F8093DA008091D90080FF0DC080E160 -:102FE00089BD82E189BD09B400FEFDCF81E08093F7 -:102FF00064050E94291405C019BC109264050E9442 -:1030000037148091E10080FF19C08091E20080FFB9 -:1030100015C08091E2008E7F8093E2008091E200F3 -:1030200080618093E2008091D80080628093D80014 -:1030300019BC85E0809364050E943B148091E100F7 -:1030400084FF30C08091E20084FF2CC080E189BD04 -:1030500082E189BD09B400FEFDCF8091D8008F7D4B -:103060008093D8008091E1008F7E8093E100809171 -:10307000E2008F7E8093E2008091E2008160809385 -:10308000E20080916005882311F084E007C0809100 -:10309000E30087FD02C081E001C083E08093640506 -:1030A0000E943C148091E10083FF29C08091E200DE -:1030B00083FF25C08091E100877F8093E10082E05B -:1030C00080936405109260058091E1008E7F80936B -:1030D000E1008091E2008E7F8093E2008091E20027 -:1030E00080618093E20042E060E080E00E94BD16D3 -:1030F0008091F00088608093F0000E943A14FF9164 -:10310000EF91BF91AF919F918F917F916F915F915F -:103110004F913F912F910F900FBE0F901F901895D8 -:103120001F920F920FB60F9211242F933F934F933C -:103130005F936F937F938F939F93AF93BF93CF933F -:10314000DF93EF93FF93C091E900CF708091EC0083 -:10315000D82FD17080FDD0E81092E9008091F00066 -:10316000877F8093F00078940E94D4181092E90031 -:103170008091F00088608093F000CD2BCF70C093D9 -:10318000E900FF91EF91DF91CF91BF91AF919F91B6 -:103190008F917F916F915F914F913F912F910F9000 -:1031A0000FBE0F901F9018951F93CF93DF93CDB74D -:1031B000DEB7AA970FB6F894DEBF0FBECDBFE5E627 -:1031C000F5E088E08E0F9091F10091938E13FBCF84 -:1031D0000E9452148091E80083FF1FC18091650511 -:1031E00090916605492F50E04A30510508F015C10D -:1031F000FA01E559FF4F0C944731803881F082384D -:1032000009F00BC1809169058F708093E90080916E -:10321000EB0085FB882780F91092E90006C08091B9 -:10322000610590916205911182609091E800977F0D -:103230009093E8008093F1001092F100C8C0282F0D -:103240002D7F09F0EAC0882319F0823061F0E5C0D3 -:1032500080916705813009F0E0C0933009F080E08B -:10326000809362052BC080916705811127C08091F2 -:1032700069058F7009F4D1C08093E9002091EB00BB -:1032800020FF1CC0933021F48091EB00806214C0B9 -:103290009091EB0090619093EB0021E030E0A90168 -:1032A00002C0440F551F8A95E2F74093EA0010923E -:1032B000EA008091EB0088608093EB001092E900B7 -:1032C0008091E800877F86C08111A7C010916705B3 -:1032D0001F778091E3008078812B8093E3008091B9 -:1032E000E800877F8093E8000E94F2168091E80052 -:1032F00080FFFCCF8091E30080688093E300111190 -:1033000002C082E001C083E08093640586C08058DB -:10331000823008F082C080916705909168058C3DED -:1033200053E0950779F583E08A838AE289834FB772 -:10333000F894DE01139620E03EE051E2E32FF0E046 -:1033400050935700E49120FF03C0E295EF703F5F78 -:10335000EF708E2F90E0EA3010F0C79601C0C09653 -:103360008D939D932F5F243149F74FBF8091E800E3 -:10337000877F8093E8006AE270E0CE0101960E94A8 -:10338000F91514C0AE014F5F5F4F609169050E944F -:103390004015BC01009709F440C09091E800977F68 -:1033A0009093E80089819A810E945C168091E800E0 -:1033B0008B778093E80031C0803879F58091E80000 -:1033C000877F8093E800809160058093F100809171 -:1033D000E8008E778093E8000E94F2161EC08111EB -:1033E0001CC0909167059230C0F48091E800877FFF -:1033F0008093E800909360050E94F216809160052A -:10340000811106C08091E30087FD02C081E001C008 -:1034100084E0809364050E943E148091E80083FF5D -:103420000AC08091E800877F8093E8008091EB00DC -:1034300080628093EB00AA960FB6F894DEBF0FBEB1 -:10344000CDBFDF91CF911F9108950895CF938091C3 -:1034500064058823A1F0C091E900CF709091EC0041 -:10346000892F817090FD80E8C82B1092E90080912F -:10347000E80083FD0E94D418CF70C093E900CF917B -:1034800008959093E4048093E3040895E091E304A5 -:10349000F091E404309721F00190F081E02D09943F -:1034A00080E00895E091E304F091E404309721F086 -:1034B0000280F381E02D09940895E091E304F091F6 -:1034C000E404309721F00480F581E02D09940895FB -:1034D0002091E1043091E2048217930771F09093F8 -:1034E000E2048093E104E091E304F091E404309776 -:1034F00021F00680F781E02D099408952091DF04E2 -:103500003091E0048217930771F09093E004809368 -:10351000DF04E091E304F091E404309721F00084AB -:10352000F185E02D0994089508950C94941A0E9451 -:103530001B260E94B30B0E94E5260C94B62C5F92CA -:103540006F927F928F929F92AF92BF92CF92DF92B3 -:10355000EF92FF920F931F93CF93DF9300D000D091 -:103560001F92CDB7DEB70E94F80B9EEEC92E94E0F5 -:10357000D92E03E010E0AA24A394B12C502E802F62 -:103580000E94730C4C01F601729062906F016826E4 -:10359000792661147104A1F40150110978F78FEFB5 -:1035A00089838A831B820E9424268160782F9D83D1 -:1035B0008C8349815A816B818D810E944F1B38C059 -:1035C0008091430581FD0E947C0C2BE030E0750169 -:1035D000022E02C0EE0CFF1C0A94E2F7C7018621FE -:1035E0009721892B09F129835A828E209F2091E00F -:1035F000892809F490E09B830E9424268160782F1B -:103600009D838C8349815A816B818D810E944F1BE0 -:10361000000F111FF801EA51FB4F80819181E826CC -:10362000F926F182E08204C02150310980F6B4CF3E -:103630000E94E8291091E5040E94461A1817D1F05B -:103640000E94461A8093E5040F900F900F900F9000 -:103650000F90DF91CF911F910F91FF90EF90DF902E -:10366000CF90BF90AF909F908F907F906F905F9022 -:103670000C949D0B0F900F900F900F900F90DF9177 -:10368000CF911F910F91FF90EF90DF90CF90BF905F -:10369000AF909F908F907F906F905F900895CF93A1 -:1036A000DF93CDB7DEB72B970FB6F894DEBF0FBE12 -:1036B000CDBF4F83588769877A878B87DE01119644 -:1036C00086E0FD0111928A95E9F785E0FE013796C3 -:1036D00001900D928A95E1F749815A816B817C8135 -:1036E0008D819E810E94C6212B960FB6F894DEBF75 -:1036F0000FBECDBFDF91CF910895CF93882309F4FA -:10370000C2C0C82F823859F40E94461A81FDBBC03E -:1037100089E30E94A0240E946D2589E30CC08338B0 -:1037200079F40E94461A80FDAEC083E50E94A02471 -:103730000E946D2583E50E94E224CF910C946D25B3 -:10374000843859F40E94461A82FD9DC087E40E9485 -:10375000A0240E946D2587E4EECF8CEF8C0F813A78 -:1037600048F48C2F0E941E2C81118DC08C2F0E943A -:10377000A024E3CF80E28C0F883048F4C77081E04A -:1037800001C0880FCA95EAF70E942625D6CF8BE59F -:103790008C0F833078F4C53A29F0C63A31F083E8CB -:1037A00090E005C081E890E002C082E890E0CF910F -:1037B0000C94681A88E58C0F833108F064C0C83A0D -:1037C00039F1C93A41F1CA3A49F1CB3A51F1CC3A0F -:1037D00059F1CD3A61F1C03B69F1CE3A71F1CF3A7E -:1037E00079F1C13B81F1C23B89F1C33B91F1C43B0B -:1037F00099F1C53BA1F1C63BA9F1C73BB1F1C83B6B -:10380000B9F1C93BC1F1CA3BC9F180E090E038C0D1 -:1038100082EE90E035C089EE90E032C08AEE90E012 -:103820002FC085EB90E02CC086EB90E029C087EBA1 -:1038300090E026C08CEC90E023C08DEC90E020C09E -:1038400083E891E01DC08AE891E01AC082E991E026 -:1038500017C084E991E014C081E292E011C083E2D4 -:1038600092E00EC084E292E00BC085E292E008C0D4 -:1038700086E292E005C087E292E002C08AE292E02E -:10388000CF910C947E1ACF910895882309F44BC0F0 -:10389000823859F40E94461A81FF45C089E30E948C -:1038A000A0240E946D2589E30CC0833871F40E9426 -:1038B000461A80FF38C083E50E94A0240E946D252F -:1038C00083E50E94E2240C946D25843859F40E940B -:1038D000461A82FF28C087E40E94A0240E946D251A -:1038E00087E4EFCF9CEF980F913A58F390E2980F4E -:1038F000983050F4877091E001C0990F8A95EAF7EB -:10390000892F0E942C25DFCF9BE5980F933020F460 -:1039100080E090E00C94681A885A833120F480E0AB -:1039200090E00C947E1A0895882321F00E942625A9 -:103930000C946D250895882321F00E942C250C9469 -:103940006D2508957F928F929F92AF92BF92CF92F2 -:10395000DF92EF92FF920F931F93CF93DF931F920B -:10396000CDB7DEB77C01C62E772EFC01058102950E -:103970000F70128111110E9443250E9499248823FF -:1039800079F0112369F080E28C0D883048F082E0F4 -:103990000E9482240E94992491E0D82ED92601C049 -:1039A000D12CE72DE295EF70F0E0EB58FF4F0C942F -:1039B0004731872D807F072D0F70882311F00295E6 -:1039C000007F112389F0002309F499C180E28C0D56 -:1039D000883020F4802F0E94262503C0802F0E946B -:1039E00036250E946D258BC18C2D0E94451C00231D -:1039F00009F4C3C180E28C0D883020F4802F0E942E -:103A00002C2503C0802F0E943C250E946D25B5C146 -:103A1000872D807F972D9F70803211F4892F03C0EE -:103A2000892F8295807FCC2021F0F1E0CF16A1F084 -:103A30001DC0112339F0002319F1013009F50E944E -:103A400056259BC1002319F0013009F496C18983E2 -:103A50000E945925898110C1112321F0063008F0F8 -:103A60008CC10EC0053008F088C106C1112359F081 -:103A7000002331F0F701958190FF41C19F7095833C -:103A80000E94941C7AC1002309F4F6C03EC1872D20 -:103A900086958695837090E0009719F0019761F004 -:103AA0006CC1112321F08C2D972D937002C080E002 -:103AB00090E00E94681A61C1112321F08C2D972D8E -:103AC000937002C080E090E00E947E1A56C18C2D57 -:103AD000112319F00E94F02802C00E9458290E9468 -:103AE000DD294BC1872D837009F052C0111145C1EA -:103AF0008C2D829586958770880F880F9C2D9F70DE -:103B0000892E912CA12CB12C082E04C0880C991C54 -:103B1000AA1CBB1C0A94D2F7C4FE14C00FE010E02C -:103B200020E030E0B901A80104C0440F551F661F12 -:103B3000771F8A95D2F7CB01BA0160957095809571 -:103B4000909503C060E070E0CB01272D2695269567 -:103B5000237030E02230310569F02330310589F0DF -:103B6000682979298A299B292130310571F00E9421 -:103B70000E2303C1682979298A299B290E942A23B7 -:103B8000FCC00E940E23C501B4010E94F222F5C0C0 -:103B9000112319F0872D817001C08695882309F4BF -:103BA000ECC08C2D829586958770880F880F9C2D90 -:103BB0009F70892E912CA12CB12C082E04C0880C4A -:103BC000991CAA1CBB1C0A94D2F7C4FE14C00FE0B7 -:103BD00010E020E030E0B901A80104C0440F551FF7 -:103BE000661F771F8A95D2F7CB01BA016095709551 -:103BF0008095909503C060E070E0CB01272D26955D -:103C000026952370422F50E04230510569F0433031 -:103C1000510589F0682979298A299B294130510564 -:103C200071F00E94E823A9C0682979298A299B2973 -:103C30000E940424A2C00E94E823C501B4010E948E -:103C4000CC239BC08C2D90E0FC01E05EF109E531B6 -:103C5000F10508F050C0EB57FF4F0C9447310C2D85 -:103C60000F70872D8F71112321F00E946523802F03 -:103C700007CF0E948623802F0E949B1C7EC01123A9 -:103C800041F0053008F079C0872D8F710E94AB2379 -:103C900074C0063008F071C0F7CF112339F0872DBA -:103CA0008F710E94652369C01123C9F3872D8F711D -:103CB0000E94862362C0112329F0872D8F710E94F4 -:103CC00050235BC00E94462358C0112351F0172D8A -:103CD0001F71812F0E94652363E0812F0E94792448 -:103CE0004CC081E00E948224023008F446C082E089 -:103CF0000E94822442C0112331F0002381F28C2DD6 -:103D00000E947D1B3AC0002389F28C2D0E94451C25 -:103D100034C0472D4F706C2DC7010E9465040E946E -:103D20006A222BC0111129C0472D4F7050E042303C -:103D30005105B9F04CF44115510581F04130510560 -:103D4000E1F40E94DE2C19C04330510569F0443083 -:103D5000510599F48C2D0E94302D0FC00E94C72C64 -:103D60000CC00E94FA2C09C00E940D2D06C0472DE0 -:103D70004F706C2DC7010E943E08DD20F9F00E94B3 -:103D8000752480FD1BC0F70112820E946F240E94DF -:103D90006523C7010E94ED1E0E946F240F90DF91E2 -:103DA000CF911F910F91FF90EF90DF90CF90BF9038 -:103DB000AF909F908F907F900C9486230F90DF910F -:103DC000CF911F910F91FF90EF90DF90CF90BF9018 -:103DD000AF909F908F907F9008950F931F93CF93F4 -:103DE000DF93EC01888199812B813C81232BB9F0F1 -:103DF0009F3F11F48F3F99F0CE010E943D0688232A -:103E000071F0688179818A810E946B248C010E9403 -:103E100020240E94E722B801CE010E94A21CDF915B -:103E2000CF911F910F9108950E9443250E94532521 -:103E30000E9418250E946D250E948E2A0E94DD296D -:103E400080E090E00E94681A80E090E00C947E1A76 -:103E50000E9433250C94141F0E946024292F229560 -:103E60002F7030E02C3031054CF42A3031056CF4E1 -:103E70002250310922303105A8F407C02C30310519 -:103E800069F02F30310551F00DC0803F69F018F412 -:103E9000803E40F409C0843F29F406C093FB882784 -:103EA00080F9089580E0089581E00895CF93DF932D -:103EB00000D000D01F92CDB7DEB70F900F900F90BB -:103EC0000F900F90DF91CF910895CF93DF9300D0A3 -:103ED00000D000D0CDB7DEB726960FB6F894DEBF7F -:103EE0000FBECDBFDF91CF9108951F93CF93DF9386 -:103EF000C091EE0416E08091EF04C81799F0D0E06D -:103F00001C9FF0011D9FF00D1124E051FB4F4081DB -:103F1000518162817381848195810E94651F219600 -:103F2000C770E9CFDF91CF911F910895409120058F -:103F300050912105609122057091230580912405FF -:103F4000909125050C94651F8091250582958F70B1 -:103F500009F054C080912205882309F44FC0809154 -:103F6000EE04A091EF04609120057091210540912D -:103F7000230550912405B6E08A1709F43FC090E06C -:103F800041155105C1F17F3F11F46F3FA1F1B89F79 -:103F9000F001B99FF00D1124E051FB4F2181721304 -:103FA0002AC02081621327C02281211124C02381CD -:103FB00034812417350710F421503109241B350BA7 -:103FC000283C3105C0F4209125052F7020612093F5 -:103FD000250526E0289FF001299FF00D1124EB50C4 -:103FE000FB4F80818F708061808380E295E00E942A -:103FF000ED1E0C94751F01968770BECF0895CF9269 -:10400000DF92EF92FF920F931F93CF93DF93CDB781 -:10401000DEB762970FB6F894DEBF0FBECDBF8C013E -:1040200085E0F801DE011D9601900D928A95E1F779 -:10403000D8014C9111965C91119712966C91129740 -:104040001396CD90DC901497309120057091210546 -:104050008091230590912405009709F46BC17F3F5F -:1040600019F43F3F09F466C1E0902205EE2009F4FF -:10407000C0C020912505C816D90628F0F601E81B16 -:10408000F90BCF0104C0809590958C0D9D1DFF24E8 -:10409000F394883C910578F0F12C207F09F0C6C09C -:1040A0007C2DD98AC88A89890E94561F80E295E0B2 -:1040B0000E94ED1EB1C0822F807F09F046C07513AB -:1040C00014C0341312C0611110C02F7020612093EE -:1040D00025050E94961F80E295E00E94ED1E8091CA -:1040E0002505D80115968C932EC0CD2819F15F3F78 -:1040F00011F44F3FF9F0F62E61111CC08091EE04CF -:104100002091EF0436E0821709F45AC090E0389FFE -:10411000F001399FF00D1124E051FB4F71815713CD -:1041200006C07081471303C07281711103C00196EC -:104130008770E9CFF62E662309F418C18091250512 -:10414000816080932505F12C11C1751308C03413CB -:1041500006C0611104C080912505D801C3C04D87F8 -:104160005E878D859E856A8B0E942C1F6A898823B5 -:10417000E1F16623D1F120912505822F82958F7080 -:1041800090E0029774F08091200590912105988726 -:104190008F831986DB86CA862C87CE0107960E94FC -:1041A000ED1E86E0F801A0E2B5E001900D928A953F -:1041B000E1F70E94A41F0E94961FFF24F394D6C02B -:1041C0004D875E878D859E850E946024292F2295CC -:1041D0002F7030E0223031050CF0BCC09F7009F028 -:1041E000B6C0805E883008F4C1C0C8010E94ED1ED0 -:1041F000E4CFC816D90608F453C0F601E81BF90B42 -:10420000CF01883C910508F450C0F12C7C2DD98A4F -:10421000C88A89890E94561FE0E2F5E086E0DF0146 -:104220001D928A95E9F70E94961FA0C0751314C0CD -:10423000341312C0611110C080912505F8018583E7 -:10424000C8010E94ED1E86E0E0E2F5E0DF011D926C -:104250008A95E9F7FE2C8AC04D875E878D859E85FD -:104260006A8B0E942C1F6A89882309F4BECF6623BB -:1042700009F4BBCF20912505822F82958F7090E0A5 -:1042800002970CF48ECF80912005909121059A839E -:1042900089831B82DD82CC822E83CE0101967FCF63 -:1042A000809590958C0D9D1DACCFF62E662309F45C -:1042B0009CCF75132EC034132CC02091250520FDF2 -:1042C0001FC0822F82958F70D9F0D80115962C933C -:1042D00015978F3049F08F5F982F9295907F822F9E -:1042E0008F70892B15968C93C8010E94ED1E86E075 -:1042F000F801A0E2B5E001900D928A95E1F793CF25 -:1043000086E0F801A0E2B5E001900D928A95E1F710 -:104310002DC04D875E878D859E850E942C1F811143 -:1043200040CF80912505816080932505C8010E94BA -:10433000ED1E1CC0662309F458CF4D875E878D851E -:104340009E850E942C1F882309F44FCF2ACF81110C -:1043500048CF0CC0243031050CF047CF9F7009F4D2 -:1043600040CFF8019581907F09F03BCF8F2D629669 -:104370000FB6F894DEBF0FBECDBFDF91CF911F9176 -:104380000F91FF90EF90DF90CF9008951F93CF9300 -:10439000DF93CDB7DEB72C970FB6F894DEBF0FBE14 -:1043A000CDBF4F83588769877A878B879C87CE01DB -:1043B00007960E94FF1F882369F08F8198852A85C0 -:1043C0003B85232BF1F19F3F09F063C08F3F09F03C -:1043D00060C037C086E0FE013796DE01119601907D -:1043E0000D928A95E1F76F817885EA85FB85309794 -:1043F00041F17F3F11F46F3F21F12091EF0430E054 -:10440000C9010196877099274091EE0450E0841706 -:10441000950709F447C069837A83FD83EC8396E0AE -:10442000929FD001939FB00D1124A051BB4FFE016C -:10443000319601900D929A95E1F78093EF040E94D6 -:10444000751F16E08091EE049091EF048917C1F179 -:10445000189FC001112480519B4F0E94FF1F882389 -:1044600079F1E091EE041E9FF0011124E051FB4F21 -:104470004081518162817381848195810E94651F91 -:104480008091EE0490E00196877099278093EE0466 -:10449000D9CF4F81588569857A858B859C850E9407 -:1044A000651FCFCF0E94281F1092EF041092EE04D8 -:1044B000E0E2F5E086E0DF011D928A95E9F7C1CFE1 -:1044C0002C960FB6F894DEBF0FBECDBFDF91CF9113 -:1044D0001F910895EF92FF920F931F93CF93DF9355 -:1044E0008C01009709F46CC0F12CEE24E394E801F0 -:1044F0002196F8018491843740F4843008F051C04B -:10450000813081F0823019F15BC0853709F444C0F5 -:10451000A8F19CE7980F903708F052C08F770E945F -:10452000451C41C00E5F1F4FFE01C49180E28C0FFD -:10453000883048F4C7708E2D01C0880FCA95EAF7FD -:104540000E94462514C08C2F0E947D1B2DC00E5F3B -:104550001F4FFE01C49180E28C0F883058F4C77061 -:104560008E2D01C0880FCA95EAF70E944C250E9443 -:104570006D251AC08C2F0E94451C16C00E5F1F4F60 -:10458000FE01C491CC2381F08FE99FE00197F1F700 -:1045900000C00000C150F6CF0E5F1F4FFE01F49027 -:1045A00003C00E947D1B8E018F2D882309F49FCFAD -:1045B000EFE9FFE03197F1F700C000008150F5CF3F -:1045C000DF91CF911F910F91FF90EF900895089583 -:1045D00060932A0570932B0580932C0590932D05ED -:1045E0000C94141F0F931F9300912A0510912B0513 -:1045F00020912C0530912D05DC01CB01802B912BD6 -:10460000A22BB32B80932A0590932B05A0932C0506 -:10461000B0932D051F910F910C94141F0F931F93AE -:1046200000912A0510912B0520912C0530912D0524 -:10463000DC01CB0180239123A223B32380932A059D -:1046400090932B05A0932C05B0932D051F910F91EE -:104650000C94141F0F931F9300912A0510912B05A2 -:1046600020912C0530912D05DC01CB01802791276D -:10467000A227B32780932A0590932B05A0932C059E -:10468000B0932D051F910F910C94141F10922605C5 -:104690001092270510922805109229050C94141FDA -:1046A00041E050E060E070E004C0440F551F661F19 -:1046B000771F8A95D2F7409326055093270560937C -:1046C0002805709329050C94141F41E050E060E028 -:1046D00070E004C0440F551F661F771F8A95D2F7FC -:1046E0008091260590912705A0912805B091290574 -:1046F000482B592B6A2B7B2B40932605509327057B -:1047000060932805709329050C94141F41E050E034 -:1047100060E070E004C0440F551F661F771F8A9544 -:10472000D2F74095509560957095809126059091AF -:104730002705A0912805B0912905482359236A230C -:104740007B2340932605509327056093280570939B -:1047500029050C94141F41E050E060E070E004C0B3 -:10476000440F551F661F771F8A95D2F78091260543 -:1047700090912705A0912805B09129054827592730 -:104780006A277B27409326055093270560932805C9 -:10479000709329050C94141F0F931F930091260505 -:1047A000109127052091280530912905DC01CB01C6 -:1047B000802B912BA22BB32B80932605909327055A -:1047C000A0932805B09329051F910F910C94141FF5 -:1047D0000F931F930091260510912705209128051E -:1047E00030912905DC01CB0180239123A223B3233F -:1047F0008093260590932705A0932805B09329055B -:104800001F910F910C94141F0F931F930091260575 -:10481000109127052091280530912905DC01CB0155 -:1048200080279127A227B3278093260590932705F9 -:10483000A0932805B09329051F910F910C94141F84 -:104840000895CF92DF92EF92FF920F931F93CF9331 -:10485000DF938C01C0902A05D0902B05E0902C05A9 -:10486000F0902D058091260590912705A0912805AF -:10487000B0912905C82AD92AEA2AFB2ACFE1D0E03B -:10488000D701C6010C2E04C0B695A79597958795BC -:104890000A94D2F780FF06C0B8018C2F0E94C30A89 -:1048A000019721F4219760F780E001C08C2FDF9100 -:1048B000CF911F910F91FF90EF90DF90CF900895CF -:1048C000CF93DF93EC010E942124BE010E94C30A12 -:1048D000DF91CF910895CB010E94602408958091CB -:1048E0002E05859585958595089580912E0587706F -:1048F000089598E0899F90011124262B20932E057E -:104900000C94652320912E058095822380932E059B -:10491000982F977069F430E0482F552747FD509540 -:104920002417350729F08595859585950C94862360 -:10493000089590912E05977081E009F480E0089524 -:1049400090916503992321F090916603911109C01C -:104950002091670330916803F90132969FEF40E0A0 -:104960001FC0982F9695969596959F3050F5E0919B -:104970006703F0916803E90FF11D877021E030E0D3 -:10498000A90102C0440F551F8A95E2F7CA0191811F -:10499000892B818308959F3F39F04F5F4E3041F05E -:1049A00051915813F8CF0DC05111F7CF942FF5CF77 -:1049B0009F3F39F0F901E90FF11D97FDFA958283C8 -:1049C0000895089590916503992321F090916603CD -:1049D000911109C02091670330916803F901329663 -:1049E000205F3F4F1FC0982F9695969596959F30C4 -:1049F000F0F4E0916703F0916803E90FF11D87700F -:104A000021E030E0A90102C0440F551F8A95E2F76A -:104A1000CA01809591818923818308953196E21797 -:104A2000F30729F090819813F9CF1082F7CF0895FA -:104A300081E090E0E0916703F0916803E80FF91FCF -:104A40001082019680319105A9F708959091420551 -:104A5000892B809342050895809590914205892382 -:104A60008093420508951092420508959091410562 -:104A7000892B809341050895809590914105892364 -:104A80008093410508951092410508959091400545 -:104A9000892B809340050895809590914005892346 -:104AA00080934005089510924005089580932F0546 -:104AB000089510922F0508958091670390916803DF -:104AC000FC0131969C01205F3F4F80E09191911154 -:104AD0008F5FE217F307D1F70895E0916703F09134 -:104AE0006803809142058083E0916703F091680339 -:104AF000908180914105892B8083E0916703F0913B -:104B00006803908180914005892B808380912F05D7 -:104B1000882361F0E0916703F09168039081892B0D -:104B200080830E945C25811110922F05809167037C -:104B3000909168030C94521A20E0009739F0AC0170 -:104B400041505109842395232F5FF7CF822F089579 -:104B500080916405843039F11092440520E488E1A5 -:104B600090E00FB6F894A895809360000FBE209354 -:104B7000600080E00E94C00380E00E949D0B83B72C -:104B8000817F846083BF83B7816083BF7894889579 -:104B900083B78E7F83BF88E10FB6F894809360005F -:104BA000109260000FBE08950895089580E00E945D -:104BB000C0030E94D4250E94F80B0E94D5250E94B4 -:104BC0007D0C91E0811101C090E0892F08950E9431 -:104BD000281F80E00E94C0030E94B62C0E94461A43 -:104BE0000C949D0B1F920F920FB60F9211248F936E -:104BF0009F93AF93BF9380914405811113C080911F -:104C0000450590914605A0914705B091480541960C -:104C1000A11DB11D8093450590934605A0934705BE -:104C2000B0934805BF91AF919F918F910F900FBEA8 -:104C30000F901F90189582E084BD93E095BD9AEF88 -:104C400097BD80936E0008952FB7F8948091450525 -:104C500090914605A0914705B09148052FBF089552 -:104C6000CF92DF92EF92FF920F931F932FB7F8949A -:104C70004091450550914605609147057091480562 -:104C80002FBF6A017B01EE24FF248C0120E030E07D -:104C9000C016D106E206F30610F4415051099A01FC -:104CA000281B390BC9011F910F91FF90EF90DF90E6 -:104CB000CF9008951F920F920FB60F9211248F93E9 -:104CC0009F93AF93BF938091450590914605A09126 -:104CD0004705B09148050196A11DB11D809345057A -:104CE00090934605A0934705B0934805BF91AF91B7 -:104CF0009F918F910F900FBE0F901F9018950E945B -:104D00004317F8942FEF87EA91E6215080409040B6 -:104D1000E1F700C0000087E090EBDC0180936F05B5 -:104D200090937005A0937105B09372059CE088E1A3 -:104D30000FB6F894A895809360000FBE9093600022 -:104D4000FFCFCF92DF92EF92FF920F931F93CF93FB -:104D5000DF93D82FC3E0EE24E394F12C8C2F0E9434 -:104D6000730C6C010BE010E09701002E02C0220FC3 -:104D7000331F0A94E2F72C213D21232B49F0602FA9 -:104D80007C2F80E00E943F08D81302C081E006C05B -:104D90000150110948F7C15008F780E0DF91CF9129 -:104DA0001F910F91FF90EF90DF90CF900895CF93D8 -:104DB000C82F8CE20E94A126882321F08C2FCF914E -:104DC0000C94A12680E0CF910895CF930E943628BD -:104DD000811102C00E941228C5E6C15049F00E940C -:104DE000F80B8FE39CE90197F1F700C00000F5CFC5 -:104DF00089E20E94D726811113C18AE20E94D72638 -:104E000081110E94122885E00E94D72681110E94FC -:104E10007F260E9441288093430587E00E94D72681 -:104E20008823A9F18BE10E94D726882351F0809135 -:104E3000430581FB222720F991E0922790FB81F91D -:104E40000EC08EE00E94D726882361F08091430532 -:104E500082FB222720F991E0922790FB82F9809330 -:104E6000430515C080E10E94D72690914305882311 -:104E700041F093FB222720F981E0822780FB93F900 -:104E800004C0892F809580FB90F990934305809111 -:104E900043050E9445280E94532880936D0580EEAB -:104EA0000E94D726882341F080916D05982F909518 -:104EB00090FB80F980936D0589E30E94D7268823B3 -:104EC00059F080916D0581FB222720F991E092270E -:104ED00090FB81F980936D0582EE0E94D72688238E -:104EE00059F080916D0582FB222720F991E09227ED -:104EF00090FB82F980936D0586EE0E94D726882369 -:104F000059F080916D0583FB222720F991E09227CB -:104F100090FB83F980936D0583EE0E94D72688234A -:104F200059F080916D0584FB222720F991E09227AA -:104F300090FB84F980936D0585E30E94D726882332 -:104F400059F080916D0585FB222720F991E0922789 -:104F500090FB85F980936D0581E30E94D726882315 -:104F600059F080916D0586FB222720F991E0922768 -:104F700090FB86F980936D0581E10E94D7268823F6 -:104F800059F080916D0587FB222720F991E0922747 -:104F900090FB87F980936D0580916D050E945728DD -:104FA00080916D0587FB882780F98093660387E2EF -:104FB0000E94D726C82F8EE10E94D7268111C26099 -:104FC0008FE10E94D7268111C46080E20E94D7261B -:104FD0008111C86081E20E94D7268111C06182E2FE -:104FE0000E94D7268111C06283E20E94D7268111D8 -:104FF000C06484E20E94D726882311F0C06802C0F2 -:10500000CC2329F08C2F0E944E286C2F03C00E94C5 -:105010004A28682F70E080E090E0CF910C94E8225D -:10502000CF9108956DEE7EEF80E090E00E946D31AB -:1050300060E082E090E00E945B3160E083E090E01D -:105040000E945B3160E084E090E00E945B3160E0B0 -:1050500085E090E00E945B3160E086E090E00E9495 -:105060005B316FEF87E090E00C945B3180E090E083 -:105070000E94553121E08D3E9E4F09F020E0822FA5 -:10508000089582E090E00C944D31682F82E090E02A -:105090000C945B3183E090E00C944D31682F83E0F9 -:1050A00090E00C945B3184E090E00C944D31682FDB -:1050B00084E090E00C945B3186E090E00C944D31FC -:1050C000682F86E090E00C945B3187E090E00C94D0 -:1050D0004D31682F87E090E00C945B3180914B0557 -:1050E00080FF0BC060916C0385E0689FB0011124C4 -:1050F00075956795759567952BC081FF09C060917F -:105100006C0385E0689FB00111247595679520C0F8 -:1051100082FF07C060916C0385E0689FB001112495 -:1051200017C090914C059923D1F060916B039617AD -:1051300088F720916C0385E0289F90011124929FAD -:10514000A001939F500D112470E0CA010E943331D9 -:105150006038710540F46115710539F002C065E0F1 -:1051600070E0862F08958FE7089581E0089580917B -:105170004B0580FF08C060916A0370E075956795E4 -:105180007595679521C081FF06C060916A0370E044 -:105190007595679519C082FF04C060916A0370E03D -:1051A00010C090914C059923C1F060916903961746 -:1051B000A0F780916A03899FC001112470E00E94CA -:1051C00033316038710528F46115710521F0862F9F -:1051D00008958FE7089581E0089561E070E0F4CFCD -:1051E000803F21F40E946E28819504C0813F29F4FC -:1051F0000E946E2880934F050895823F21F40E94FB -:105200006E28819504C0833F29F40E946E28809304 -:105210004E050895893F19F40E94B72805C08A3FBA -:1052200031F40E94B72881958093500508958B3FF3 -:1052300021F40E94B728819504C08C3F29F40E9474 -:10524000B728809351050895843F21F480914D053E -:10525000816017C0853F21F480914D05826011C0A7 -:10526000863F21F480914D0584600BC0873F21F477 -:1052700080914D05886005C0883F31F480914D05CF -:10528000806180934D0508958D3F21F480914B05F9 -:1052900081600BC08E3F21F480914B05826005C078 -:1052A0008F3F29F480914B05846080934B050895CE -:1052B000803F39F480914F0587FF6CC010924F05F5 -:1052C00069C0813F29F480914F051816BCF362C074 -:1052D00090914E05823F29F497FF5CC010924E05D5 -:1052E00059C0833F19F41916CCF354C0893F41F4D7 -:1052F0008091500518160CF04DC0109250054AC010 -:105300008A3F29F48091500587FF44C0F6CF8B3F38 -:1053100039F48091510587FF3DC0109251053AC084 -:105320008C3F29F4809151051816BCF333C0843F9B -:1053300021F480914D058E7F17C0853F21F4809127 -:105340004D058D7F11C0863F21F480914D058B7FE7 -:105350000BC0873F21F480914D05877F05C0883FB2 -:1053600031F480914D058F7E80934D0513C08D3FA4 -:1053700021F480914B058E7F0BC08E3F21F48091EC -:105380004B058D7F05C08F3F29F480914B058B7FA6 -:1053900080934B0580914E0581110EC080914F0581 -:1053A00081110AC080915005811106C0809151057C -:1053B000811102C010924C0508958DE495E00E9481 -:1053C0005D1A0E94242690934A058093490508950A -:1053D0001F93CF93DF938091490590914A050E94D6 -:1053E0003026AC0190914C05992321F020916D035A -:1053F00030E006C020916E038AE0289F90011124BE -:105400004217530708F486C080914E05C0914F059E -:10541000D091500510915105811107C0C11176C07E -:10542000D11174C0111172C075C09F3F19F09F5FF8 -:1054300090934C05181624F40E946E2880934E0514 -:1054400080914E0587FF05C00E946E28819580934C -:105450004E051C1624F40E946E2880934F058091FF -:105460004F0587FF05C00E946E28819580934F05E8 -:1054700060914E05662339F1C0914F05CC2319F197 -:10548000772767FD7095872F972F0E94552E23E36E -:1054900033E343E35FE30E94652F0E94222E609373 -:1054A0004E056C2F772767FD7095872F972F0E94E9 -:1054B000552E23E333E343E35FE30E94652F0E940D -:1054C000222E60934F051D1624F40E94B728809366 -:1054D00050058091500587FF05C00E94B72881952F -:1054E00080935005111624F40E94B728809351052B -:1054F0008091510587FF05C00E94B7288195809350 -:105500005105DF91CF911F910C94DD299F3F09F048 -:105510008ECF96CFDF91CF911F910895EDE4F5E006 -:1055200085E0DF011D928A95E9F710924C051092F3 -:105530004B050895833081F128F4813059F0823091 -:10554000D1F00895853009F449C0B8F1863009F4E6 -:1055500056C0089580916E03262F30E0280F311D2C -:105560002F3F310524F4680F60936E0308958FEF89 -:1055700080936E03089580916D03262F30E0280FED -:10558000311D2F3F310524F4680F60936D0308959A -:105590008FEF80936D03089580916C03262F30E088 -:1055A000280F311D2F3F310524F4680F60936C03E1 -:1055B00008958FEF80936C03089580916B03262FDD -:1055C00030E0280F311D2F3F310524F4680F609320 -:1055D0006B0308958FEF80936B03089580916A03A6 -:1055E000262F30E0280F311D2F3F310524F4680F9E -:1055F00060936A0308958FEF80936A030895809102 -:105600006903262F30E0280F311D2F3F310524F488 -:10561000680F6093690308958FEF8093690308957D -:10562000833011F128F4813049F0823091F00895EF -:10563000853081F120F18630C1F1089580916E03AB -:10564000681720F4861B80936E03089510926E03F2 -:10565000089580916D03681720F4861B80936D0375 -:10566000089510926D03089580916C03681720F4DB -:10567000861B80936C03089510926C0308958091AB -:105680006B03681720F4861B80936B0308951092B8 -:105690006B03089580916A03681720F4861B80933A -:1056A0006A03089510926A03089580916903681748 -:1056B00020F4861B8093690308951092690308956E -:1056C0000F931F938B3109F470C0A0F58E3009F44D -:1056D0007FC0C0F4873009F456C068F4863009F002 -:1056E000A5C080914305817F8E7F8093430581E033 -:1056F000809353059CC0883009F491C08B3009F425 -:105700008EC094C0813109F46DC068F4803109F015 -:105710008DC08091430583FB222720F991E09227D9 -:1057200090FB83F94BC0863109F479C0893109F4C3 -:1057300076C07CC0853309F474C068F4873209F4FC -:1057400070C028F48E3108F471C08D5155C0893273 -:1057500009F467C06BC0833438F48A3308F04BC057 -:10576000883309F45CC062C0833409F45AC08834B9 -:1057700009F05CC00E94281F0E94AD0C0E94940595 -:105780000E947F264CC090914305892F809581709F -:1057900080FB90F929F0966098609093430547C08C -:1057A000997F977F909343053AC08091430581FB91 -:1057B000222720F991E0922790FB81F980934305FD -:1057C000992369F18091430581608093430527C047 -:1057D0008091430582FB222720F991E0922790FBDC -:1057E00082F9ECCF0E94281F9091660381E08927FF -:1057F0008093660314C0895341E050E060E070E09C -:105800008A019B0104C0000F111F221F331F8A95BC -:10581000D2F7C901B8010E94E8220E94281F81E046 -:1058200006C061E070E080E090E0F5CF80E01F917D -:105830000F91089580E0089580E00895CF93C82FD8 -:1058400080915305813069F018F08230C9F184C02D -:10585000E0916703F09168038081823209F07EC095 -:1058600007C0E0916703F09168038081823261F4A0 -:105870008C2F0E941A2C811104C08C2F0E94602B47 -:105880001DC081E090E01AC08C2F0E941C2C811159 -:1058900014C0C43179F048F4CB3079F0C03109F04C -:1058A00061C082E08093530508C0C93219F0C83343 -:1058B00021F058C01092530555C081E0817054C04A -:1058C000C93291F120F5C43179F1B0F4C73009F053 -:1058D00047C08EE180936E0382E380936D038AE07C -:1058E00080936C0384E180936B0388E080936A0368 -:1058F00088E28093690334C0CE51C63088F5EC2F1E -:10590000F0E0EA5FFB4F80818093520529C0CE34DE -:10591000E9F020F4CB3421F56AE013C0C13579F009 -:10592000C235F1F461E00DC080915205882319F071 -:105930001092520515C081E08093530515C061E0B7 -:1059400006C0809152050E949A2A0AC06AE080919E -:1059500052050E94102B04C01092530580E004C031 -:1059600081E002C080E0AACFCF9108950E9436283E -:10597000811102C00E9412280E945C2880936E054B -:1059800080FF02C0869501C080E00C94C003809126 -:105990006E05982F9695292F30E0233031054CF471 -:1059A0009F5F990F8170892B816080936E050E94A3 -:1059B000602880916E0586950C94C00380916E05D9 -:1059C000982F969591F09158990F8170892B80931B -:1059D0006E058E7F91E009F490E080916E0590FB5A -:1059E00080F980936E050E94602880916E058695EF -:1059F0000C94C00380916E05982F909590FB80F9D0 -:105A000080936E050E94602880916E0580FF02C021 -:105A1000869501C080E00C94C00390916E05892F9B -:105A200086958F5F8F779170843028F4880F892B4B -:105A300080936E0502C090936E0580916E058E7FF7 -:105A400091E009F490E080916E0590FB80F98093DD -:105A50006E050E94602880916E0586950C94C003A7 -:105A600020916E05922F96958927982F990F822F56 -:105A70008170892B80936E058E7F91E009F490E010 -:105A800080916E0590FB80F980936E050E946028DE -:105A900080916E0586950C94C00380916E05869565 -:105AA00008955058BB27AA270ED0D1C1C2D130F0DB -:105AB000C7D120F031F49F3F11F41EF4B7C10EF4AA -:105AC000E095E7FB9FC1E92FD3D180F3BA176207B6 -:105AD00073078407950718F071F49EF5EBC10EF477 -:105AE000E0950B2EBA2FA02D0B01B90190010C01EE -:105AF000CA01A0011124FF27591B99F0593F50F406 -:105B0000503E68F11A16F040A22F232F342F44275D -:105B1000585FF3CF469537952795A795F040539555 -:105B2000C9F77EF41F16BA0B620B730B840BBAF025 -:105B30009150A1F0FF0FBB1F661F771F881FC2F790 -:105B40000EC0BA0F621F731F841F48F487957795A4 -:105B50006795B795F7959E3F08F0B3CF9395880F5B -:105B600008F09927EE0F97958795089527D108F4A7 -:105B700081E008950CD06BC163D140F05AD130F070 -:105B800021F45F3F19F03EC1511195C14FC170D151 -:105B900098F39923C9F35523B1F3951B550BBB27F4 -:105BA000AA2762177307840738F09F5F5F4F220FA1 -:105BB000331F441FAA1FA9F333D00E2E3AF0E0E89A -:105BC00030D091505040E695001CCAF729D0FE2FE6 -:105BD00027D0660F771F881FBB1F26173707480778 -:105BE000AB07B0E809F0BB0B802DBF01FF2793582E -:105BF0005F4F2AF09E3F510568F004C15CC15F3FD2 -:105C0000ECF3983EDCF3869577956795B795F79515 -:105C10009F5FC9F7880F911D9695879597F908950D -:105C2000E1E0660F771F881FBB1F621773078407A9 -:105C3000BA0720F0621B730B840BBA0BEE1F88F7B8 -:105C4000E095089504D06894B11135C1089518D134 -:105C500088F09F5790F0B92F9927B751A0F0D1F055 -:105C6000660F771F881F991F1AF0BA95C9F712C0DF -:105C7000B13081F01FD1B1E008951CC1672F782F9A -:105C80008827B85F39F0B93FCCF38695779567954B -:105C9000B395D9F73EF490958095709561957F4FB7 -:105CA0008F4F9F4F0895E89409C097FB3EF490955D -:105CB0008095709561957F4F8F4F9F4F9923A9F0E5 -:105CC000F92F96E9BB279395F69587957795679574 -:105CD000B795F111F8CFFAF4BB0F11F460FF1BC0B8 -:105CE0006F5F7F4F8F4F9F4F16C0882311F096E94B -:105CF00011C0772321F09EE8872F762F05C06623F9 -:105D000071F096E8862F70E060E02AF09A95660FB1 -:105D1000771F881FDAF7880F9695879597F908956A -:105D200088D018F011F08CD038F480C0C4C0E92FAE -:105D30009FD0B0F35523C9F3E7FB621773078407BD -:105D40009507A8F199F3E92FFF2788232AF03197C7 -:105D5000660F771F881FDAF7952F5527442332F0F7 -:105D600091505040220F331F441FD2F7BB27E91B2D -:105D7000F50B621B730B840BB109C1F222F4620FA5 -:105D8000731F841FB11D31972AF0660F771F881F7C -:105D9000BB1FEFCF915050405AF041F0882332F0B2 -:105DA000660F771F881F91505040C1F7939530C000 -:105DB0008695779567959F5FD9F7F8CF990F00087B -:105DC000550FAA0BE0E8FEEF16161706E807F907CD -:105DD000C0F012161306E407F50798F0621B730B68 -:105DE000840B950B39F40A2661F0232B242B252BE9 -:105DF00021F408950A2609F4A140A6958FEF811D8C -:105E0000811D089597F99F6780E870E060E008952C -:105E10009F3F31F0915020F4879577956795B7951E -:105E2000880F911D9695879597F908959FEF80ECBF -:105E3000089500240A9416161706180609060895F0 -:105E400000240A9412161306140605060895092E56 -:105E50000394000C11F4882352F0BB0F40F4BF2BC5 -:105E600011F460FF04C06F5F7F4F8F4F9F4F089505 -:105E700057FD9058440F551F59F05F3F71F04795FB -:105E8000880F97FB991F61F09F3F79F087950895E0 -:105E9000121613061406551FF2CF4695F1DF08C0FF -:105EA000161617061806991FF1CF8695710561051C -:105EB00008940895E894BB2766277727CB0197F9C4 -:105EC00008957CDF08F48FEF08950BD0C0CFB1DFC9 -:105ED00028F0B6DF18F0952309F094CFA7CF11244E -:105EE000EACFC6DFA0F3959FD1F3950F50E0551F81 -:105EF000629FF001729FBB27F00DB11D639FAA271F -:105F0000F00DB11DAA1F649F6627B00DA11D661F6D -:105F1000829F2227B00DA11D621F739FB00DA11D8E -:105F2000621F839FA00D611D221F749F3327A00D48 -:105F3000611D231F849F600D211D822F762F6A2FE4 -:105F400011249F5750408AF0E1F088234AF0EE0F69 -:105F5000FF1FBB1F661F771F881F91505040A9F776 -:105F60009E3F510570F04ECFA6CF5F3FECF3983EB9 -:105F7000DCF3869577956795B795F795E7959F5FDD -:105F8000C1F7FE2B880F911D9695879597F9089577 -:105F9000FA01EE0FFF1F30962105310599F16115C9 -:105FA000710561F48038BFE39B0749F1689490382C -:105FB000810561F08038BFEF9B0741F0992342F5DE -:105FC000FF3FE1053105210511F1E8940894E795BB -:105FD000D901AA2329F4AB2FBE2FF85FD0F310C04C -:105FE000FF5F70F4A695E0F7F73950F019F0FF3A2B -:105FF00038F49F779F930CD00F9007FC905808952A -:106000003EF014CF60E070E080E89FE308954FE732 -:106010009F775F934F933F932F939ED02F913F9104 -:106020004F915F9152DF05C019F40EF0EBCE42CFD5 -:10603000FDCE26DFC8F39638C0F707F80F92E89434 -:106040002BE33AEA48EB5FE74EDF0F920F920F9295 -:106050004DB75EB70F92C0D0E4E3F1E016D04F9198 -:106060005F91EF91FF91E595EE1FFF1F49F0FE57FD -:10607000E0684427EE0F441FFA95E1F74195550B70 -:1060800032D00F9007FE26C00895DF93CF931F9361 -:106090000F93FF92EF92DF927B018C01689405C011 -:1060A000DA2EEF011EDFFE01E894A59125913591CE -:1060B00045915591AEF3EF0106DDFE019701A80170 -:1060C000DA9479F7DF90EF90FF900F911F91CF91C5 -:1060D000DF9108959B01AC0160E070E080E89FE3F0 -:1060E00049CD90CE95CECCDEE8F39923D9F3940F29 -:1060F000511DBBF39150504094F059F0882332F079 -:10610000660F771F881F91505040C1F79E3F510581 -:1061100044F7880F911D9695879597F908955F3FED -:10612000ACF0983E9CF0BB27869577956795B79520 -:1061300008F4B1609395C1F7BB0F58F711F460FFF5 -:10614000E8CF6F5F7F4F8F4F9F4FE3CFB4CE0EF0FE -:106150005FCE6CCE689456CE93DEC8F39923D1F30C -:10616000C6F3DF93CF931F930F93FF92C92FDD27C1 -:1061700088232AF02197660F771F881FDAF720E01F -:1061800030E040E85FEB9FE3883920F0803E30F05C -:1061900021968F7787DCECE5F1E003C083DCE9E84A -:1061A000F1E073DF8B01BE01EC01FB2E6F5771092B -:1061B0007595771F880B990B78DD28E132E741E36D -:1061C0005FE38FDEAF2D9801AE01FF900F911F911D -:1061D000CF91DF9178DC3BCEFA01DC01AA0FBB1F27 -:1061E0009B01AC01BF5728F422273327442750785E -:1061F0001FC0B75188F4AB2F0024469537952795DB -:10620000011CA395D2F3002069F0220F331F441F15 -:10621000B395DAF30DD045CC61307105A0E88A075B -:10622000B94630F49B01AC01662777278827907820 -:10623000309621F020833183428353830895AA1B33 -:10624000BB1B51E107C0AA1FBB1FA617B70710F061 -:10625000A61BB70B881F991F5A95A9F78095909593 -:10626000BC01CD01089597FB072E16F4009407D0CA -:1062700077FD09D00E941F3107FC05D03EF49095B0 -:1062800081959F4F0895709561957F4F0895EE0F0A -:10629000FF1F0590F491E02D0994F999FECF92BD6E -:1062A00081BDF89A992780B50895A8E1B0E042E051 -:1062B00050E00C947531262FF999FECF92BD81BD27 -:1062C000F89A019700B4021639F01FBA20BD0FB634 -:1062D000F894FA9AF99A0FBE08950196272F0E9412 -:1062E0005C310C945B31DC01CB01FC01F999FECFF0 -:1062F00006C0F2BDE1BDF89A319600B40D9241504E -:0A6300005040B8F70895F894FFCF5D -:10630A0000005C440000004148F17644000000416E -:10631A005C978A44000000411FD592440000004166 -:10632A0052D0A444000000415CFFB8440000004180 -:10633A000AA7CF44000000410000DC4400000041ED -:10634A00A4D0A443000000417BD492430000004142 -:10635A007BD4924300000041A4D0A4430000004132 -:10636A00A4D02444000000411FD51244000000417B -:10637A001FD5124400000041A4D02444000000416B -:10638A00A4F076430000004100005C430000004195 -:10639A0000005C4300000041A4F076430000004185 -:1063AA00A4D082430000C0417BD492430000004144 -:1063BA00A4D0A4430000C041A4D0824300000041FD -:1063CA00A4D0A44300008041A4D0824300008041AD -:1063DA00A4D0A443000080411FD51244000080418C -:1063EA00A4D024440000804100D00244000080412F -:1063FA00A4D08243000080410000C44300008041D1 -:10640A000AA7CF44000000410000DC44000000411C -:10641A00000000000000804052D0244500004041A6 -:10642A0000000000000080400AA74F4500004041DC -:10643A000AA7CF44000000410000DC4400000041EC -:10644A00000000000000804052D0244500000041B6 -:10645A0000000000000080405CFF38450000004159 -:10646A00000000000000804052D024450000004196 -:10647A000AA7CF44000000410000DC4400000041AC -:10648A00000000000000804052D0244500008041F6 -:10649A00A4F0F6430000C0417BD4924300000041BF -:1064AA0048F176440000804100005C44000000424C -:1064BA005CFF434400008041A4F0F6430000C04161 -:1064CA001FD51244000000415CFF43440000804194 -:1064DA005CFF384400000042A4D0A443000080417D -:1064EA00A4D0A44300008041719DAE4300008041C6 -:1064FA000000C443000080410000C4430000804102 -:10650A00719DAE4300008041A4D0A44300008041A5 -:10651A007BD4924300008041A4D082430000804192 -:10652A00A4D08243000080417BD492430000804182 -:10653A00A4D0A44300008041A4D0A4430000C041D9 -:10654A007BD49243000000417BD492430000004276 -:10655A00640007000CFF0000003F644A13D813B51B -:10656A001381134D13010130052808140A321E0045 -:10657A0002040507090B0C0E1011131517181A1C23 -:10658A001D1F2123242628292B2D2F30323435375D -:10659A00393B1F0F03764F5F6F7F4969437909596A -:1065AA0053633149803F5D8B803FF8BF803FCAE12A -:1065BA00803F73ED803FCAE1803FF8BF803F5D8B2B -:1065CA00803F3149803F0000803FF16D7F3F75EA8F -:1065DA007E3F4C827E3F833F7E3F84287E3F833FBF -:1065EA007E3F4C827E3F75EA7E3FF16D7F3F000021 -:1065FA00803F3F4D36398F0642060C06D3056605A5 -:10660A007F059805B105010203040506070809007C -:00000001FF diff --git a/keyboards/planck/keymaps/readme.md b/keyboards/planck/keymaps/readme.md new file mode 100644 index 000000000..54fb5f6d9 --- /dev/null +++ b/keyboards/planck/keymaps/readme.md @@ -0,0 +1,23 @@ +# How to add your own keymap + +Folders can be named however you'd like (will be approved upon merging), or should follow the format with a preceding `_`: + + _[ISO 3166-1 alpha-2 code*]_[layout variant]_[layout name/author] + +\* See full list: https://en.wikipedia.org/wiki/ISO_3166-1#Officially_assigned_code_elements + +and contain the following files: + +* `keymap.c` +* `readme.md` *recommended* +* `config.h` *optional*, found automatically when compiling +* `Makefile` *optional*, found automatically when compling + +When adding your keymap to this list, keep it organised alphabetically (select list, edit->sort lines), and use this format: + + * **folder_name** description + +# List of Planck keymaps + +* **default** default Planck layout +* **cbbrowne** cbbrowne's Planck layout \ No newline at end of file diff --git a/keyboards/planck/keymaps/tak3over/compiled.hex b/keyboards/planck/keymaps/tak3over/compiled.hex deleted file mode 100644 index 0eec0b65c..000000000 --- a/keyboards/planck/keymaps/tak3over/compiled.hex +++ /dev/null @@ -1,1456 +0,0 @@ -:100000000C94C1020C9405030C9405030C94050395 -:100010000C9405030C9405030C9405030C94050340 -:100020000C9405030C9405030C94B2140C948415E1 -:100030000C94E6220C9405030C9405030C94050320 -:100040000C9405030C9467030C9405030C940503AE -:100050000C9405030C944E230C9405030C94050397 -:100060000C9405030C9405030C9405030C940503F0 -:100070000C9405030C9405030C9405030C940503E0 -:100080000C94270B0C9405030C9405030C940503A6 -:100090000C9405030C9405030C9405030C940503C0 -:1000A0000C9405030C9405030C940503F115131629 -:1000B00001171316011758167B160117D016E316F1 -:1000C000CD19CD19FC19FC193B1A5B1AB11BB11BD8 -:1000D000661AB11B161B161B7D1B861BB11BAB1BA7 -:1000E000231B231B231B231B231B231B231B231B20 -:1000F000231B231B231B231B231B231B231B231B10 -:10010000331B411B481B4F1B591B07634236B79BD0 -:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 -:100120005763BD6DEDFD753EF6177231BF000000DF -:10013000803F08000000BE922449123EABAAAA2AC2 -:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD -:1001500000000000BF000000803F00000000000819 -:100160004178D3BB4387D1133D190E3CC3BD4282B6 -:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 -:10018000FFBE01C4FF7F3F00000000000000000030 -:1001900000000000000000010204060A0F17202CD6 -:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2 -:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF -:1001C0000201000000000000000000002B001400ED -:1001D0001A000800150017001C0018000C0012007F -:1001E00013002A00290004001600070009000A0075 -:1001F0000B000D000E000F0033003400E1001D0065 -:100200001B00060019000500110010003600370021 -:1002100038002800E000E200E300045202522C0003 -:100220002C0003525000510052004F002B001400CC -:100230001A00090013000A000D000F0018001C002E -:1002400033002A00290004001500160017000700DB -:100250000B00110008000C0012003400E1001D002A -:100260001B000600190005000E00100036003700C4 -:1002700038002800E000E200E300045202522C00A3 -:100280002C0003525000510052004F0035021E0254 -:100290001F0220022102220223022402250226023A -:1002A00027022A000100005049004A004B00015378 -:1002B00050002D002E002F003000310001000030D2 -:1002C0004C004D004E0000534C002D022E022F0218 -:1002D00030020100010001000100010001000100E5 -:1002E00001000100010001000100010035001E00B5 -:1002F0001F002000210022002300240025002600EA -:1003000027002A0001003A003B003C003D003E006F -:100310003F002D002E002F00300031020100400070 -:10032000410042004300440045002D022E022F02EE -:100330003002010001000100010001000100010084 -:1003400001000100010001000100010035001E0054 -:100350001F00200021002200230024002500260089 -:1003600027002A000100E7001B00060019001D00FD -:100370005000510052004F004C0031000100E400D9 -:100380001B00060019001D00AB00A800AA00A90070 -:10039000AE000100010001000100010001000100A8 -:1003A00001000100010001000100010028035400C8 -:1003B00068006500200050006C0061006E00630062 -:1003C0006B0020004B006500790062006F00610047 -:1003D0007200640000002C034F007200740068007B -:1003E0006F006C0069006E00650061007200200003 -:1003F0004B006500790062006F00610072006400CC -:10040000730000000403090409026D00040100A048 -:10041000FA09040000010301010009211101000192 -:10042000223F000705810308000A090401000103B7 -:10043000010200092111010001224D00070582037C -:1004400008000A090402000103000000092111014B -:1004500000012236000705830308000A090403008F -:1004600001030000000921110100012239000705E4 -:1004700084031000011201100100000008EDFE606D -:100480006001000102000105010906A1010507192B -:10049000E029E71500250195087501810205081975 -:1004A00001290595057501910295017503910105D5 -:1004B000071900297715002501957875018102C07B -:1004C00005010980A101850216010026B7001A0165 -:1004D000002AB700751095018100C0050C0901A123 -:1004E000018503160100269C021A01002A9C027550 -:1004F0001095018100C005010902A1010901A100B7 -:1005000005091901290515002501950575018102C7 -:100510009501750381010501093009311581257F98 -:1005200095027508810609381581257F95017508A2 -:100530008106050C0A38021581257F950175088111 -:1005400006C0C005010906A101050719E029E71544 -:100550000025019508750181029501750881010545 -:1005600008190129059505750191029501750391F9 -:10057000010507190029FF150025FF95067508815B -:1005800000C011241FBECFEFDAE0DEBFCDBF04B63E -:1005900003FE24C080911E0390911F03A0912003AD -:1005A000B09121038730904BA740B04BB9F4109223 -:1005B0001E0310921F03109220031092210314BEF9 -:1005C00084B7877F84BF88E10FB6F894809360007A -:1005D000109260000FBEE0E0F8E3099511E0A0E0A2 -:1005E000B1E0E6E2FAE502C005900D92A03CB10749 -:1005F000D9F713E0A0ECB1E001C01D92AE31B10714 -:10060000E1F70E94F8110C94112D0C94000008954C -:10061000089581E0089508950C9408030C9409034B -:100620000C940B030E94DB2823E030E0281B3109E7 -:10063000220F2093C4010895282F2F9880918000C5 -:10064000211108C0877F8093800010928D00109246 -:100650008C001BC0886080938000233019F48FEFDA -:100660009FEF0FC083E090E0821B9109880F991FD4 -:100670002FEF3FEFA90102C0569547958A95E2F703 -:10068000CA0190938D0080938C000C9412030E94F9 -:10069000120384E08093C3011092C0010895279A49 -:1006A0002F988FEF9FEF90938700809386008AE0CA -:1006B0008093800089E1809381000E9444280C94FB -:1006C00047030E944F036E9A769A0C9407031F9279 -:1006D0000F920FB60F9211242F933F938F939F93F6 -:1006E000EF93FF93E091C101F091C201CF01019618 -:1006F0009093C2018093C1010090C30102C0F6959E -:10070000E7950A94E2F7EF738091C001823019F403 -:10071000E03251F404C0813039F4EF3329F4809190 -:100720006F008D7F80936F00F0E0E457FE4FE491FF -:1007300021E031E0E29FC001E39F900D1124009081 -:10074000C40102C0969587950A94E2F790938D00B4 -:1007500080938C00FF91EF919F918F913F912F910A -:100760000F900FBE0F901F90189561110DC0FC01E6 -:100770008281882331F085EE0E9471180E949B28A7 -:1007800003C085EE0E94391980E090E0089581E071 -:1007900008950C94C70308950C9461038091150289 -:1007A000882309F448C08091D1019091D20100972B -:1007B00079F40E9418239093D2018093D101809103 -:1007C000D30190E0009771F48091D40190E00AC0C9 -:1007D0000E9424232091000130910101281739073C -:1007E00040F329C00197880F991F880F991FFC01BA -:1007F000EB52FE4F60817181828193810E948D0A4C -:10080000E091D30184E0E89FF0011124EB52FE4F08 -:1008100060817181828193814FE050E00E94450E9A -:100820008091D30190E001966091D40170E00E9424 -:10083000C12C8093D3010C940C03109217020C94DA -:100840005A0A0895089581E0809317020C942204B7 -:10085000089508958F929F92AF92BF92EF92FF9268 -:100860000F931F93CF93DF93CDB7DEB7A3970FB648 -:10087000F894DEBF0FBECDBF7C01FC010081118169 -:10088000C8010E941521B8010E942C068C01B701F5 -:100890000E94C903882309F4CCC10032F0E51F0788 -:1008A00041F4F7018281882309F458C00E94A90EFF -:1008B000C0C10132F0E51F0741F4F70182818823AE -:1008C00009F44CC00E94B20EB4C10232F0E51F0719 -:1008D00051F4F7018281882309F440C00E94A50EDB -:1008E0008111F0CFE3CF0332F0E51F0739F4F701B0 -:1008F0008281882399F10E9423049BC10432F0E590 -:100900001F0739F4F7018281882341F10E941D04F9 -:1009100090C10532F0E51F0749F4F7018281882371 -:10092000E9F0809117028111F1CFE5CF0632F0E5B1 -:100930001F0739F4F7018281882381F00E94B90EE4 -:100940000AC00732F0E51F0749F4F70182818823C6 -:1009500029F00E94C40E0E9429046BC180911702E5 -:10096000811105C0F70182818111CFC018C1003EFD -:10097000110579F4F7018281882309F44DC00E94A2 -:100980005A0A81E080931602109215021092D40147 -:1009900050C1023E110559F4F70182818823E1F12B -:1009A0000E945A0A109216021092150242C1033E8A -:1009B000110591F4F7018281882371F10E945A0A8E -:1009C0001092160281E0809315021092D3011092CA -:1009D000D2011092D1012DC10235110559F4F70150 -:1009E0008281882309F425C1809100019091010141 -:1009F0000A970DC00135110579F4F701828188232A -:100A000009F417C180910001909101010A96909319 -:100A10000101809300010DC14091040183E2EFE1E7 -:100A2000F1E0DE01119601900D928A95E1F7F70150 -:100A3000808121E030E02C0F3D1F280F311DC901BE -:100A40002091020130910301FC01E20FF31F60814C -:100A5000772767FD7095640F711D882777FD809556 -:100A6000982F0E94E32920E030E040E451E40E9406 -:100A700048294B015C01F701218184E090E0821B51 -:100A80009109BC01882777FD8095982F0E94E32962 -:100A90009B01AC01C501B4010E94E0289B01AC019F -:100AA00060E070E080E090E40E94562B20E030E0AF -:100AB0004CED50E40E94F32A4B015C01F701828166 -:100AC0008823D1F04FE050E0C501B4010E94450EEB -:100AD000809116028823A1F08091D40124E0829FA6 -:100AE000F0011124EB52FE4F80829182A282B382E8 -:100AF0008F5F8093D40104C0C501B4010E948D0AA8 -:100B00000F3F110508F02ECF94C08091D0018111C4 -:100B10001FC0043130E5130709F051C00E94CB0318 -:100B200081E08093D0010E9418239093CF0180939D -:100B3000CE011092C7011092C9011092C801109203 -:100B4000CB011092CA011092CD011092CC0171C05C -:100B50008091CE019091CF010E942423883C910581 -:100B600070F48091C701E82FF0E0EE0FFF1FE8530B -:100B7000FE4F118300838F5F8093C7015AC00438F2 -:100B800080E5180721F00538104501F13AC0F7015A -:100B90008281882341F01092C50182E01EC0043892 -:100BA00030E5130759F58091C501811106C086E231 -:100BB0000E94711886E20E94391982E01CC0043834 -:100BC000F0E51F0741F305381045D9F4F70182819C -:100BD000882331F01092C60180E20E94881929C052 -:100BE0008091C601811106C087E20E94711887E2D8 -:100BF0000E94391980E20E948F191BC005381045E8 -:100C000029F381E08093C5018093C601C701A396B3 -:100C10000FB6F894DEBF0FBECDBFDF91CF911F910D -:100C20000F91FF90EF90BF90AF909F908F900C949A -:100C30000E0380E0A3960FB6F894DEBF0FBECDBFC3 -:100C4000DF91CF911F910F91FF90EF90BF90AF90E8 -:100C50009F908F90089508959CE0799FF001112452 -:100C600090E3899FE00DF11D1124E60FF11DEE0FB9 -:100C7000FF1FE453FE4F859194910895880F991FAB -:100C8000FC01E45BFF4F859194910895880F991FB3 -:100C9000FC01E453FE4F8591949108950F931F93A7 -:100CA000CF93DF93EC01811521E39207A0F5C115E5 -:100CB00080E3D80708F0D7C0C83ED105D8F4C03EBD -:100CC000D10508F007C2C83AD10578F4C53AD10574 -:100CD00008F06AC0C130D10509F463C008F4F7C157 -:100CE000C430D10508F0F6C1F2C1CB3BD10508F400 -:100CF00066C0EDC1C11590E2D90708F0AFC0C115BB -:100D000021E0D20708F0E6C1C03FD10508F4DFC1F9 -:100D10008E0110651FC2C03880E5D80700F5C037C6 -:100D200090E5D90708F0A3C0C11520E5D20709F462 -:100D3000ACC050F4CE01905480319F4008F0C7C140 -:100D4000DF708E01106A06C2C13080E5D80709F451 -:100D5000AEC0C43190E5D90708F4AFC0B8C1C338FC -:100D600020E5D20709F48EC050F4C13890E5D907C8 -:100D700009F482C008F083C000E011EDEBC1C0317E -:100D800081E5D80708F4A3C1C11597E5D90708F490 -:100D900036C1CE0190578115904108F098C1DF709F -:100DA00093C101E010E0D6C1C53AD10509F494C160 -:100DB000C63AD10509F093C102E810E4CBC1C83AA4 -:100DC000D10509F48FC1C93AD10509F48EC1CA3AD7 -:100DD000D10509F48DC1CB3AD10509F48CC1CC3AC7 -:100DE000D10509F48BC1CD3AD10509F48AC1C03BC4 -:100DF000D10509F489C1CE3AD10509F488C1CF3AA9 -:100E0000D10509F487C1C13BD10509F486C1C23BB4 -:100E1000D10509F485C1C33BD10509F484C1C43BA4 -:100E2000D10509F483C1C53BD10509F482C1C63B94 -:100E3000D10509F481C1C73BD10509F480C1C83B84 -:100E4000D10509F47FC1C93BD10509F47EC1CA3B74 -:100E5000D10509F47DC100E014E47CC1CE019F708E -:100E60000E94460678C1DD278E01106C73C1CF70D9 -:100E7000DD278E01146D6EC100E010ED6BC100E046 -:100E800012ED68C100E013ED65C10E941C1C0E94B8 -:100E90005A0A0E9421048FEF94E32CE08150904085 -:100EA0002040E1F700C000000E94732353C18091ED -:100EB000F20281608093F2024DC10E94D42381111D -:100EC00002C00E94B0230E94E72390E090931D038C -:100ED00080931C03C23080E5D80721F480911C0365 -:100EE000816086C0C43090E5D90721F480911C034D -:100EF00082607EC0C63020E5D20721F480911C03B9 -:100F0000846076C0C83080E5D80719F480911C034E -:100F100027C0CA3090E5D90721F480911C03806175 -:100F200067C0CC3020E5D20721F480911C03806299 -:100F30005FC0CE3080E5D80721F480911C03806427 -:100F400057C0C03190E5D90721F480911C03806817 -:100F50004FC0C23120E5D20729F480911C03846080 -:100F6000886046C0C33080E5D80721F480911C0317 -:100F70008E7F3EC0C53090E5D90721F480911C03D7 -:100F80008D7F36C0C73020E5D20721F480911C0345 -:100F90008B7F2EC0C93080E5D80719F480911C03DF -:100FA00026C0CB3090E5D90721F480911C038F7EB9 -:100FB0001FC0CD3020E5D20721F480911C038F7D26 -:100FC00017C0CF3080E5D80721F480911C038F7BB8 -:100FD0000FC0C13190E5D90721F480911C038F77B0 -:100FE00007C0C331D04531F480911C038B7F877FCC -:100FF00080931C0380911C030E94EB23ABC08D2FB8 -:1010000099278F70992781309105D9F49E0123701B -:10101000332702C0880F991F2A95E2F79C688E013A -:1010200044E0000F111F4A95E1F700271370802B51 -:10103000912B53E0CC0FDD1F5A95E1F7C076DD27E9 -:101040002FC08230910531F4DC2FCC278E01016F47 -:10105000106A80C08330910569F4CE0183709927AE -:1010600001E010E002C0000F111F8A95E2F7C801ED -:101070009C680FC084309105B9F4CE018370992724 -:1010800001E010E002C0000F111F8A95E2F7C801CD -:101090009A6823E0CC0FDD1F2A95E1F7C07ED77058 -:1010A0008C010C2B1D2B56C08530910531F4DC2FA3 -:1010B000CC278E01046F106A4DC0069709F04AC014 -:1010C000CF71DD27DC2FCC278E01106243C000E0FA -:1010D00010E040C08E013EC001E810E43BC003E8D0 -:1010E00010E438C002EE14E435C009EE14E432C056 -:1010F0000AEE14E42FC005EB14E42CC006EB14E454 -:1011000029C007EB14E426C00CEC14E423C00DEC5A -:1011100014E420C003E815E41DC00AE815E41AC071 -:1011200002E915E417C004E915E414C001E216E46D -:1011300011C003E216E40EC004E216E40BC005E29F -:1011400016E408C006E216E405C007E216E402C091 -:101150000AE216E4C801DF91CF911F910F91089523 -:101160009CE0799FF001112490E3899FE00DF11D2F -:101170001124E60FF11DEE0FFF1FE453FE4F859182 -:101180009491803E9105E0F4803C910558F58133BF -:10119000910509F46FC048F48932910509F463C0E0 -:1011A0008A32910509F46DC072C089339105E9F066 -:1011B00082389105D1F08533910509F44DC067C09F -:1011C000833E910581F138F4803E9105B9F0823E6D -:1011D0009105D9F05CC0863E910561F1873E91058D -:1011E000A1F155C00E943E06089520911C0320FDE8 -:1011F00002C021FF4CC080EE90E049C080911C03EA -:1012000080FFF9CF89E390E042C080911C0382FF08 -:101210000EC080911C0384FF03C080E090E037C0C3 -:1012200083EE90E034C080911C0382FFF2CF82EE07 -:1012300090E02DC080911C0383FF0BC080911C03A4 -:1012400084FDEBCF87EE90E022C080911C0383FFEA -:10125000F5CF86EE90E01BC080911C0385FF07C090 -:1012600089E290E014C080911C0385FFF9CF85E3EB -:1012700090E00DC080911C0386FF07C08AE290E0D9 -:1012800006C080911C0386FFF9CF81E390E00E94A5 -:101290004E0608950C941003E82FF0E0E25BFE4F39 -:1012A0008081E82FEF70F0E082958F7021E030E0D0 -:1012B000A90102C0440F551F8A95E2F740A3089583 -:1012C0000F931F93CF93DF9385B7806885BF85B752 -:1012D000806885BFC3E0D0E001E010E0FE01E25B82 -:1012E000FE4F8081E82FEF70F0E021A182958F7092 -:1012F000A80102C0440F551F8A95E2F7CA01822B4C -:1013000081A38C2F0E944C09219740F78BE090E03D -:1013100061E070E0FC01EE5BFE4F2081E22FEF7098 -:10132000F0E042A122952F70DB0102C0AA0FBB1F83 -:101330002A95E2F79D01242B22A3019758F7DF910C -:10134000CF911F910F910C94CC03EF92FF920F93CA -:101350001F93CF93DF9300E212E0C3E0EE24E39407 -:10136000F12CD5E08C2F0E944C098BE090E040E0FE -:1013700050E0FC01EE5BFE4F6081E62FEF70F0E085 -:1013800020A130E062956F7002C0359527956A956F -:10139000E2F720FD09C09701082E02C0220F331F7B -:1013A0000A94E2F7422B532B019718F7F801929118 -:1013B00082918F018417950721F051834083D09348 -:1013C00005018C2F0E944C09C15060F680910501E7 -:1013D00087FD2CC08150809305018F3F39F08FE944 -:1013E0009FE00197F1F700C0000020C080911E022D -:1013F00090911F02909327028093260280911C02F5 -:1014000090911D02909325028093240280911A02EC -:1014100090911B02909323028093220280911802E4 -:101420009091190290932102809320020E94CE0392 -:1014300081E0DF91CF911F910F91FF90EF90089580 -:10144000E82FF0E0EE0FFF1FE05EFD4F80819181FD -:10145000089508950F931F93CF9308E212E0C0E020 -:10146000F801929182918F010E949022C80FF2E0C0 -:1014700000321F07A9F78C2FCF911F910F9108956C -:101480000E94D423811102C00E94B0230E94F9233C -:10149000809307033E9A809171008D7F8093710045 -:1014A00082E0809390008AE18093910081E08093B4 -:1014B0002A02089580912A02811102C00E94400AE6 -:1014C00010927A0210927902809171008D7F809340 -:1014D0007100809190008F738093900010923C0275 -:1014E00010923B02109273021092740210927502D5 -:1014F000109276021092720210927102E1E5F2E00F -:10150000A1E4B2E011921192119211921D921D92DA -:1015100082E0E137F807B1F70895CF92DF92EF92BA -:10152000FF920F931F93CF93DF9320913B022223CF -:1015300009F484C06B017C0180912A02811102C0F0 -:101540000E94400A01E712E0C7E0D0E0A70196013F -:10155000F80192918291729162918F010E944429C7 -:10156000811131C0FE01EE0FFF1FEE0FFF1FEF5A7A -:10157000FD4F1082118212821382DE01AA0FBB1F5F -:10158000AF5BBD4F11961C921E92C730D105E9F09A -:10159000219644815581668177814083518362839E -:1015A0007383148215821682178212968D919C91F4 -:1015B000139711969C938E9313961C921E921297DA -:1015C00034961296E2CF219708F680917902909195 -:1015D0007A02019797FD05C090937A028093790271 -:1015E00004C010927A02109279028091790290914F -:1015F0007A0220917702309178022817390724F077 -:101600001092780210927702892BC1F480917100B8 -:101610008D7F80937100809190008F7380939000F4 -:101620001092730210927402109275021092760258 -:10163000109272021092710210923B02DF91CF91D0 -:101640001F910F91FF90EF90DF90CF9008951F9220 -:101650000F920FB60F9211244F925F926F927F926A -:101660008F929F92AF92BF92CF92DF92EF92FF92B2 -:101670002F933F934F935F936F937F938F939F939A -:10168000AF93BF93CF93DF93EF93FF9380913B0290 -:10169000882309F49BC1C0917902D0917A021C166B -:1016A0001D060CF093C140902B0250902C026090CC -:1016B0002D0270902E0220E030E0A901C301B2019A -:1016C0000E94EF2A18160CF065C0C130D10509F44C -:1016D00052C08091770290917802BE010E94C12C85 -:1016E0007C01909378028093770280903D029090E5 -:1016F0003E02A0903F02B090400220E030E040E87F -:101700005FE3C501B4010E94E02860933D0270933D -:101710003E0280933F0290934002F701EE0FFF1FBD -:10172000EE0FFF1FEF5AFD4FA301920160817181FF -:10173000828193810E94482920E030E040E05EE30E -:101740000E94F32A9B01AC01C501B4010E94EF2A5B -:1017500018168CF4C7010196BE010E94C12C90930B -:1017600078028093770210923D0210923E0210920E -:101770003F0210924002E0917702F0917802EE0F62 -:10178000FF1FEE0FFF1FEF5AFD4F608171818281B5 -:101790009381D0C0C0907302D0907402E090750223 -:1017A000F090760220E030E0A901C701B6010E9466 -:1017B00044292197882309F4A2C0FE01EE0FFF1FE0 -:1017C000EE0FFF1FEF5AFD4F80809180A280B38003 -:1017D000A5019401C701B6010E94442987FF31C0C9 -:1017E000A501940160E070E08CED93EC0E94482923 -:1017F00020E030E040E451E40E94482920E030E05D -:1018000040E05FE30E94F32A9B01AC0160E070E0DE -:1018100080E090E40E94562B9B01AC01C501B4010D -:101820000E94F32A9B01AC01C701B6010E94442922 -:1018300087FF07C0A701960160E070E08CED93E49C -:1018400039C0A5019401C701B6010E94EF2A1816FC -:101850000CF055C0A501940160E070E08CED93E4BC -:101860000E94482920E030E040E451E40E944829E9 -:1018700020E030E040E05FE30E94F32A9B01AC01EE -:1018800060E070E080E090E40E94562B9B01AC0188 -:10189000C501B4010E94F32A9B01AC01C701B60146 -:1018A0000E94EF2A18165CF5A701960160E070E02F -:1018B0008CED93EC0E94482920E030E040E451E4B4 -:1018C0000E94482920E030E040E05FE30E94F32AD4 -:1018D0009B01AC0160E070E080E090E40E94562B38 -:1018E0009B01AC01C701B6010E94F32A6093730209 -:1018F00070937402809375029093760213C0FE0178 -:10190000EE0FFF1FEE0FFF1FEF5AFD4F80819181F9 -:10191000A281B3818093730290937402A0937502A5 -:10192000B093760260917302709174028091750297 -:101930009091760220912802309129022F3F4FEF9B -:10194000340731F02F5F3F4F309329022093280254 -:101950000E94CF0E6B017C0120E034E244EF51E4A1 -:101960000E94442987FF08C086EFC82E88E2D82E3F -:1019700084EFE82E81E4F82E20E030E040E051E4EE -:10198000C701B6010E94F32A9B01AC0160E074E23A -:1019900084E79BE40E9448296B017C010E94B529E1 -:1019A0007093970060939600209106013091070193 -:1019B0004091080150910901C701B6010E94F32A24 -:1019C0000E94B529709399006093980080913C0221 -:1019D000882309F433C1C0903702D0903802E090D8 -:1019E0003902F0903A0220E030E0A901C701B601C7 -:1019F0000E94EF2A1816D4F58091280290912902AE -:101A00008F3F2FEF920729F0019690932902809340 -:101A10002802C701B6010E94CF0E20E030E040E06E -:101A200051E40E94F32A9B01AC0160E074E284E778 -:101A30009BE40E9448296B017C010E94B5297093A8 -:101A40009700609396002091060130910701409124 -:101A5000080150910901C701B6010E94F32A0E94B2 -:101A6000B529709399006093980008C01092970070 -:101A70001092960010929900109298006091310295 -:101A8000709132026F5F7F4F709332026093310228 -:101A9000209196003091970080E090E0232BF1F0A8 -:101AA000C0919600D09197000E94E1296B017C01C2 -:101AB000BE0180E090E00E94E1299B01AC016091B1 -:101AC00033027091340280913502909136020E9467 -:101AD000482920E03FEF4FE757E410C00E94E1297A -:101AE0006B017C0120E030EE4FEF54E46091330253 -:101AF0007091340280913502909136020E94F32A4F -:101B00009B01AC01C701B6010E94EF2A87FD96C078 -:101B100080912F028F5F80932F0290E0209103032A -:101B20003091040382179307A0F080910E0388235D -:101B300019F010922F020DC0809171008D7F80935B -:101B40007100809190008F738093900010923C02FE -:101B50007DC080913002C0912F02811128C0C090B9 -:101B60000803D0900903E0900A03F0900B0320E0F3 -:101B700030E0A901C701B6010E94EF2A1816BCF493 -:101B800081E0809330021092370210923802109256 -:101B9000390210923A02C0923302D0923402E0929B -:101BA0003502F0923602C150C0932F0243C010920A -:101BB00030021092290210922802E0910503F09160 -:101BC000060348E0C49FE00DF11D1124808191813E -:101BD000A281B3818093370290933802A093390297 -:101BE000B0933A0220E030E040E85EE36481758122 -:101BF000868197810E94F32A6B017C0180910A0102 -:101C0000682F70E080E090E00E94E12920E030E061 -:101C100048EC52E40E9448299B01AC01C701B6017F -:101C20000E94F32A6093330270933402809335024A -:101C30009093360210923202109231028091070383 -:101C400080FD04C010923C0210923B02FF91EF9184 -:101C5000DF91CF91BF91AF919F918F917F916F91C4 -:101C60005F914F913F912F91FF90EF90DF90CF9038 -:101C7000BF90AF909F908F907F906F905F904F90AC -:101C80000F900FBE0F901F901895CF92DF92EF929A -:101C9000FF92CF93DF936B017C01EA0180912A02CE -:101CA000811102C00E94400A8091070380FF46C054 -:101CB0008091790290917A0208970CF03FC0809150 -:101CC00071008D7F8093710080913C0281110E9490 -:101CD0005A0A81E080933B02109229021092280256 -:101CE00020E030E0A901C701B6010E94EF2A1816D2 -:101CF000DCF48091790290917A02FC01EE0FFF1FD3 -:101D0000EE0FFF1FEF5AFD4FC082D182E282F382B5 -:101D1000FC01EE0FFF1FEF5BFD4FD183C0830196E7 -:101D200090937A028093790280917100826080930F -:101D3000710080919000806880939000DF91CF9136 -:101D4000FF90EF90DF90CF9008958091070381700E -:101D50000895809107038160809307030E94FD230B -:101D60000C942804809107038E7F809307030C94C2 -:101D7000FD2380917B0290E0019666E070E00E9476 -:101D8000C12C80937B02089580917B0290E00197A3 -:101D900066E070E00E94C12C80937B0208958F92D0 -:101DA0009F92AF92BF92CF92DF92EF92FF920F93EA -:101DB0001F93CF93DF936B017C01C0912802D091D8 -:101DC0002902BE0180E090E00E94E1294B015C0104 -:101DD000A701960160E070E08CE594E40E94482938 -:101DE0009B01AC01C501B4010E94F32A0E94B529F0 -:101DF00020917B02233009F473C028F4222351F090 -:101E00002130E9F02CC1243009F4A0C0253009F4B8 -:101E1000E0C025C180E090E0A0E0BFE38093060130 -:101E200090930701A0930801B093090110922B022F -:101E300010922C0210922D0210922E0210C11092BC -:101E40002B0210922C0210922D0210922E0264315D -:101E5000710540F46A30710560F520E030E040E83B -:101E60005EE32BC0693C710508F0AAC080E090E0F9 -:101E70000E94E12920E030E040EA51E40E94DF289E -:101E800020E030E044E353E40E9448299B01AC0188 -:101E90000E94F32A20E030E040E05EE30E94F32A53 -:101EA0009B01AC0160E070E080E09EE30E94DF28CF -:101EB00044C020E030E040E05FE3C701B6010E948B -:101EC000F32A6B017C0180E090E0A0E0BEE3809308 -:101ED000060190930701A0930801B0930901BFC0C8 -:101EE00010922B0210922C0210922D0210922E02B0 -:101EF0004AE0469F9001479F300D1124C90168EBCD -:101F00007BE00E94AD2CBC016C5D754077FF03C087 -:101F1000719561957109882777FD8095982F0E94AA -:101F2000E3292EE333EC4EE259E30E94F32A20E04A -:101F300030E040EC5EE30E94E0286093060170937D -:101F40000701809308019093090189C010922B0228 -:101F500010922C0210922D0210922E02CE0183704C -:101F60009927892BE1F0BE016170772780E090E02E -:101F70000E94E12920E030E040E05EE30E94F32A85 -:101F800020E030E040E45FE30E94E0286093060137 -:101F90007093070180930801909309010CC080E0C1 -:101FA00090E0A0E0BFE38093060190930701A09327 -:101FB0000801B0930901C770DD27CD2B09F04FC090 -:101FC0001092060110920701109208011092090167 -:101FD00046C010922B0210922C0210922D021092E9 -:101FE0002E0200E010E020E03FE300930601109392 -:101FF000070120930801309309016739710578F1D1 -:1020000080E090E00E94E12920E030E047E153E4E5 -:102010000E94DF2820E030E04AE754E40E9448298B -:1020200020E030E048E452E40E94F32A20E030E06F -:1020300040EA51E40E94252A0E94B029660F771FCA -:10204000660F771FFB01EE5AFE4F208131814281DE -:102050005381C701B6010E94F32A6B017C01C701BD -:10206000B601DF91CF911F910F91FF90EF90DF901C -:10207000CF90BF90AF909F908F90089580918C02E9 -:102080000895CF93DF9300D01F92CDB7DEB79C01A8 -:1020900080911303843019F593E099833B832A835D -:1020A0009093E9008FEF9091E800815095FD06C074 -:1020B00095ED9A95F1F700008111F5CF8091E80038 -:1020C00085FF0DC040E050E063E070E0CE01019676 -:1020D0000E94A2128091E8008E778093E8000F9012 -:1020E0000F900F90DF91CF910895CF93DF9300D0A1 -:1020F0001F92CDB7DEB720911303243021F522E0E3 -:1021000029839B838A8383E08093E9008FEF9091FA -:10211000E800815095FD06C095ED9A95F1F7000015 -:102120008111F5CF8091E80085FF0DC040E050E0BF -:1021300063E070E0CE0101960E94A2128091E80057 -:102140008E778093E8000F900F900F90DF91CF91E2 -:102150000895209113032430F1F422E02093E90044 -:102160002FEF3091E800215035FD06C035ED3A954E -:10217000F1F700002111F5CF2091E80025FF0BC0F9 -:1021800040E050E065E070E00E94A2128091E8001B -:102190008E778093E8000895CF93DF93EC019091C0 -:1021A0001303943009F046C0809115018823D9F0BB -:1021B000809116018823B9F09093E9008FEF9091F8 -:1021C000E800815095FD06C095E19A95F1F7000071 -:1021D0008111F5CF8091E80085FF2CC040E050E0F0 -:1021E00060E170E017C081E08093E9008FEF90918B -:1021F000E800815095FD06C095ED9A95F1F7000035 -:102200008111F5CF8091E80085FF14C040E050E0D7 -:1022100068E070E0CE010E94A2128091E8008E7703 -:102220008093E80080E1FE01ACE7B2E001900D92FE -:102230008A95E1F7DF91CF91089580911203811182 -:1022400009C00E9437140E9494148091E2008460B7 -:102250008093E2000895109212030895089508955E -:102260000C94DB2242E061EC81E00E94B11342E079 -:1022700061EC82E00E94B11342E061EC83E00E94D5 -:10228000B11342E161EC84E00C94B1138091150329 -:10229000833009F455C030F4813071F0823009F494 -:1022A0008EC008958A3009F47AC08B3009F460C07A -:1022B000893009F09CC020C080911403813A09F054 -:1022C00096C08091E800877F8093E8008091180392 -:1022D00090911903892B21F460E18CE792E003C00F -:1022E00060E080E090E070E00E94ED128091E800F4 -:1022F0008B778093E800089580911403813209F070 -:1023000076C08091180390911903009719F00397F4 -:1023100009F06DC08091E800877F8093E80080918C -:10232000E80082FD05C0809113038111F8CF5FC0E2 -:102330008091F10080938C028091E8008B7753C0EC -:1023400080911403813A09F052C080911803909152 -:102350001903892B09F04BC08091E800877F809397 -:10236000E8008091E80080FFFCCF8091150136C025 -:10237000809114038132D9F580911803909119034B -:10238000892BA9F58091E800877F8093E8000E945F -:10239000E61380911603809315010C941C1C809108 -:1023A0001403813221F58091E800877F8093E80053 -:1023B0000E94E6138091170380938D020895809107 -:1023C0001403813AA1F48091E800877F8093E800AC -:1023D0008091E80080FFFCCF80918D028093F10016 -:1023E0008091E8008E778093E8000C94E6130895BE -:1023F00084B7877F84BF88E10FB6F894809360002C -:10240000109260000FBE90E080E80FB6F8948093C1 -:102410006100909361000FBE0E9489170E943714DB -:102420000E9494148091E20084608093E20078948A -:102430000E941A170E948B178BE091E00E943517BB -:1024400080911303853069F40E949C2280911103CE -:102450008823B1F30E94CA22882391F30E948C1230 -:10246000EFCF0E949317ECCF292F3327233031056C -:10247000C9F064F42130310581F02230310509F0D2 -:1024800043C08DE690E028E034E042C021323105BF -:10249000F1F02232310541F137C082E190E025E7C9 -:1024A00034E036C099278130910541F082309105A2 -:1024B00041F0892B49F5E4E0F4E005C0E6EDF3E0F6 -:1024C00002C0ECEAF3E0849190E09F0121C0643007 -:1024D000D8F4E62FF0E0EE0FFF1FE255FE4F20810B -:1024E000318189E090E014C0643070F470E0FB0149 -:1024F000EE0FFF1FEA55FE4F20813181FB01EE55A3 -:10250000FE4F808190E004C080E090E020E030E069 -:10251000FA0131832083089580E189BD82E189BD7C -:1025200009B400FEFDCF8091D8008F7D8093D80044 -:102530008091E00082608093E0008091E00081FD66 -:10254000FCCF0895CF92DF92EF92FF920F931F93EB -:10255000CF93DF93EC018B016A010E940514811176 -:1025600033C0C114D10439F0F60180819181081B78 -:10257000190BC80FD91FE12CF12C0115110519F108 -:102580008091E80085FD16C08091E8008E778093E9 -:10259000E800C114D10449F0F60180819181E80E70 -:1025A000F91EF182E08285E00FC00E9405148823A5 -:1025B00021F30AC089918093F10001501109FFEFC6 -:1025C000EF1AFF0ADACF80E0DF91CF911F910F91D0 -:1025D000FF90EF90DF90CF90089520911A033091F3 -:1025E0001B032617370748F06115710539F4209150 -:1025F000E8002E772093E80001C0B90140E06115A2 -:102600007105A9F120911303222309F443C0253059 -:1026100009F442C02091E80023FD40C02091E80069 -:1026200022FD32C02091E80020FFE9CF4091F30065 -:102630002091F20030E0342BFC01CF0161157105CF -:1026400059F02830310540F481918093F1006150B8 -:1026500071092F5F3F4FF1CF41E02830310509F07C -:1026600040E02091E8002E772093E800C8CF411188 -:10267000C9CF0AC080911303882361F0853061F0CF -:102680008091E80083FD0AC08091E80082FFF2CFCC -:1026900080E0089582E0089583E0089581E0089540 -:1026A00020911A0330911B032617370748F0611554 -:1026B000710539F42091E8002E772093E80001C0DD -:1026C000B901FC0120E06115710591F180911303BE -:1026D000882309F440C0853009F43FC08091E800A8 -:1026E00083FD3DC08091E80082FD2FC08091E8000D -:1026F00080FFE9CF2091F3008091F20090E0922BCF -:102700006115710559F08830910540F424912093AA -:10271000F1003196615071090196F2CF21E00897DE -:1027200009F020E08091E8008E778093E800CBCF1D -:102730002111CCCF0AC080911303882361F085302A -:1027400061F08091E80083FD0AC08091E80082FF7B -:10275000F2CF80E0089582E0089583E0089581E05B -:102760000895982F973058F59093E900981739F00D -:102770007091EC002091ED005091F00003C0242FE7 -:10278000762F50E021FF19C03091EB003E7F30934F -:10279000EB003091ED003D7F3093ED003091EB0088 -:1027A00031603093EB007093EC002093ED00509378 -:1027B000F0002091EE0027FF07C09F5FD3CF8F70FE -:1027C0008093E90081E0089580E0089580911403EA -:1027D00087FF11C08091E80082FD05C0809113033E -:1027E0008111F8CF11C08091E8008B770BC08091E8 -:1027F0001303882349F08091E80080FFF8CF80918F -:10280000E8008E778093E80008952091E4003091ED -:10281000E50095E64091EC00842F817040FF22C0D6 -:102820008091E80080FD1CC080911303882391F003 -:10283000853091F08091EB0085FD10C04091E4005F -:102840005091E5004217530729F39A01915011F76F -:1028500084E0089582E0089583E0089581E008957A -:1028600080E008954091E80042FFDECF08950E9485 -:10287000A5140E94AD14E0EEF0E0808181608083B9 -:10288000E8EDF0E080818F77808319BCA7EDB0E0A0 -:102890008C918E7F8C9380818F7E80831092120327 -:1028A00008950F931F93CF93DF930E94A5140E9466 -:1028B000AD14C8EDD0E088818F77888388818068E7 -:1028C000888388818F7D888319BC109213031092AE -:1028D0000F03109211031092100300EE10E0F801A4 -:1028E00080818B7F808388818160888342E060E083 -:1028F00080E00E94B113E1EEF0E080818E7F808362 -:10290000E2EEF0E080818160808380818860808356 -:10291000F80180818E7F8083888180618883DF9148 -:10292000CF911F910F910895E8EDF0E080818F7EA7 -:102930008083E7EDF0E080818160808384E082BF66 -:1029400081E0809312030C945114E8EDF0E0808153 -:102950008E7F80831092E20008951092DA00109228 -:10296000E10008951F920F920FB60F9211242F933A -:102970003F934F935F936F937F938F939F93AF9307 -:10298000BF93EF93FF938091E10082FF0BC0809192 -:10299000E20082FF07C08091E1008B7F8093E1001D -:1029A0000E9419178091DA0080FF1FC08091D80023 -:1029B00080FF1BC08091DA008E7F8093DA008091C7 -:1029C000D90080FF0DC080E189BD82E189BD09B4D5 -:1029D00000FEFDCF81E0809313030E941D1105C00E -:1029E00019BC109213030E942B118091E10080FF0B -:1029F00019C08091E20080FF15C08091E2008E7FB7 -:102A00008093E2008091E20080618093E2008091F7 -:102A1000D80080628093D80019BC85E080931303AE -:102A20000E942F118091E10084FF30C08091E2006C -:102A300084FF2CC080E189BD82E189BD09B400FE1C -:102A4000FDCF8091D8008F7D8093D8008091E100E8 -:102A50008F7E8093E1008091E2008F7E8093E20080 -:102A60008091E20081608093E20080910F038823CF -:102A700011F084E007C08091E30087FD02C081E08F -:102A800001C083E0809313030E9430118091E10024 -:102A900083FF29C08091E20083FF25C08091E1007F -:102AA000877F8093E10082E08093130310920F03ED -:102AB0008091E1008E7F8093E1008091E2008E7F23 -:102AC0008093E2008091E20080618093E20042E026 -:102AD00060E080E00E94B1138091F00088608093F4 -:102AE000F0000E942E11FF91EF91BF91AF919F9145 -:102AF0008F917F916F915F914F913F912F910F90A7 -:102B00000FBE0F901F9018951F920F920FB60F9245 -:102B100011242F933F934F935F936F937F938F93E2 -:102B20009F93AF93BF93CF93DF93EF93FF93C091A6 -:102B3000E900CF708091EC00D82FD17080FDD0E8F3 -:102B40001092E9008091F000877F8093F0007894E4 -:102B50000E94C8151092E9008091F000886080936F -:102B6000F000CD2BCF70C093E900FF91EF91DF9182 -:102B7000CF91BF91AF919F918F917F916F915F9115 -:102B80004F913F912F910F900FBE0F901F9018956E -:102B90001F93CF93DF93CDB7DEB7AA970FB6F89404 -:102BA000DEBF0FBECDBFE4E1F3E088E08E0F909171 -:102BB000F10091938E13FBCF0E9446118091E800A3 -:102BC00083FF1FC18091140390911503492F50E09A -:102BD0004A30510508F015C1FA01EA5AFF4F0C942A -:102BE000D52C803881F0823809F00BC18091180310 -:102BF0008F708093E9008091EB0085FB882780F936 -:102C00001092E90006C08091100390911103911178 -:102C100082609091E800977F9093E8008093F100A4 -:102C20001092F100C8C0282F2D7F09F0EAC0882338 -:102C300019F0823061F0E5C080911603813009F00F -:102C4000E0C0933009F080E0809311032BC08091A5 -:102C50001603811127C0809118038F7009F4D1C029 -:102C60008093E9002091EB0020FF1CC0933021F4F9 -:102C70008091EB00806214C09091EB009061909382 -:102C8000EB0021E030E0A90102C0440F551F8A95F6 -:102C9000E2F74093EA001092EA008091EB0088602E -:102CA0008093EB001092E9008091E800877F86C056 -:102CB0008111A7C0109116031F778091E3008078DF -:102CC000812B8093E3008091E800877F8093E80068 -:102CD0000E94E6138091E80080FFFCCF8091E30022 -:102CE00080688093E300111102C082E001C083E09C -:102CF0008093130386C08058823008F082C0809190 -:102D00001603909117038C3D53E0950779F583E006 -:102D10008A838AE289834FB7F894DE01139620E014 -:102D20003EE051E2E32FF0E050935700E49120FFA2 -:102D300003C0E295EF703F5FEF708E2F90E0EA30B6 -:102D400010F0C79601C0C0968D939D932F5F2431DC -:102D500049F74FBF8091E800877F8093E8006AE2DF -:102D600070E0CE0101960E94ED1214C0AE014F5FDB -:102D70005F4F609118030E943412BC01009709F460 -:102D800040C09091E800977F9093E80089819A81F4 -:102D90000E9450138091E8008B778093E80031C047 -:102DA000803879F58091E800877F8093E8008091F2 -:102DB0000F038093F1008091E8008E778093E80004 -:102DC0000E94E6131EC081111CC090911603923020 -:102DD000C0F48091E800877F8093E80090930F0310 -:102DE0000E94E61380910F03811106C08091E300D9 -:102DF00087FD02C081E001C084E0809313030E943C -:102E000032118091E80083FF0AC08091E800877F3B -:102E10008093E8008091EB0080628093EB00AA969B -:102E20000FB6F894DEBF0FBECDBFDF91CF911F91DB -:102E300008950895CF93809113038823A1F0C09142 -:102E4000E900CF709091EC00892F817090FD80E8AF -:102E5000C82B1092E9008091E80083FD0E94C815FC -:102E6000CF70C093E900CF9108959093930280931F -:102E700092020895E0919202F0919302309721F02E -:102E80000190F081E02D099480E00895E091920294 -:102E9000F0919302309721F00280F381E02D0994A4 -:102EA0000895E0919202F0919302309721F004800E -:102EB000F581E02D099408952091900230919102BE -:102EC0008217930771F09093910280939002E091A2 -:102ED0009202F0919302309721F00680F781E02D65 -:102EE0000994089520918E0230918F0282179307E2 -:102EF00071F090938F0280938E02E0919202F09194 -:102F00009302309721F00084F185E02D0994089513 -:102F100008950C9488170E940F230E9460090E9454 -:102F200095230C9444285F926F927F928F929F9288 -:102F3000AF92BF92CF92DF92EF92FF920F931F93C7 -:102F4000CF93DF9300D000D01F92CDB7DEB70E94A1 -:102F5000A5099DE9C92E92E0D92E03E010E0AA242C -:102F6000A394B12C502E802F0E94200A4C01F60110 -:102F7000729062906F016826792661147104A1F441 -:102F80000150110978F78FEF89838A831B820E9491 -:102F900018238160782F9D838C8349815A816B81AE -:102FA0008D810E94431838C08091F20281FD0E94F9 -:102FB000290A2BE030E07501022E02C0EE0CFF1C46 -:102FC0000A94E2F7C70186219721892B09F1298309 -:102FD0005A828E209F2091E0892809F490E09B83FB -:102FE0000E9418238160782F9D838C8349815A81A8 -:102FF0006B818D810E944318000F111FF801EB5661 -:10300000FD4F80819181E826F926F182E08204C09B -:103010002150310980F6B4CF0E947C251091940292 -:103020000E943A171817D1F00E943A178093940221 -:103030000F900F900F900F900F90DF91CF911F91F5 -:103040000F91FF90EF90DF90CF90BF90AF909F9047 -:103050008F907F906F905F900C944A090F900F9023 -:103060000F900F900F90DF91CF911F910F91FF90D4 -:10307000EF90DF90CF90BF90AF909F908F907F9018 -:103080006F905F900895CF93DF93CDB7DEB72B9706 -:103090000FB6F894DEBF0FBECDBF4F835887698748 -:1030A0007A878B87DE01119686E0FD0111928A9561 -:1030B000E9F785E0FE01379601900D928A95E1F7D8 -:1030C00049815A816B817C818D819E810E94BA1ECB -:1030D0002B960FB6F894DEBF0FBECDBFDF91CF9118 -:1030E0000895CF93882309F4C2C0C82F823859F4B9 -:1030F0000E943A1781FDBBC089E30E9494210E947F -:10310000612289E30CC0833879F40E943A1780FD6C -:10311000AEC083E50E9494210E94612283E50E9453 -:10312000D621CF910C946122843859F40E943A1729 -:1031300082FD9DC087E40E9494210E94612287E461 -:10314000EECF8CEF8C0F813A48F48C2F0E94AC2785 -:1031500081118DC08C2F0E949421E3CF80E28C0FCF -:10316000883048F4C77081E001C0880FCA95EAF73B -:103170000E941A22D6CF8BE58C0F833078F4C53AA3 -:1031800029F0C63A31F083E890E005C081E890E08C -:1031900002C082E890E0CF910C945C1788E58C0F18 -:1031A000833108F064C0C83A39F1C93A41F1CA3AEA -:1031B00049F1CB3A51F1CC3A59F1CD3A61F1C03BEA -:1031C00069F1CE3A71F1CF3A79F1C13B81F1C23B5D -:1031D00089F1C33B91F1C43B99F1C53BA1F1C63BD9 -:1031E000A9F1C73BB1F1C83BB9F1C93BC1F1CA3B39 -:1031F000C9F180E090E038C082EE90E035C089EE01 -:1032000090E032C08AEE90E02FC085EB90E02CC0B9 -:1032100086EB90E029C087EB90E026C08CEC90E034 -:1032200023C08DEC90E020C083E891E01DC08AE8C7 -:1032300091E01AC082E991E017C084E991E014C0DE -:1032400081E292E011C083E292E00EC084E292E05B -:103250000BC085E292E008C086E292E005C087E2FA -:1032600092E002C08AE292E0CF910C947217CF9163 -:103270000895882309F44BC0823859F40E943A1704 -:1032800081FF45C089E30E9494210E94612289E365 -:103290000CC0833871F40E943A1780FF38C083E570 -:1032A0000E9494210E94612283E50E94D6210C9401 -:1032B0006122843859F40E943A1782FF28C087E4BB -:1032C0000E9494210E94612287E4EFCF9CEF980F27 -:1032D000913A58F390E2980F983050F4877091E04B -:1032E00001C0990F8A95EAF7892F0E942022DFCF2B -:1032F0009BE5980F933020F480E090E00C945C17ED -:10330000885A833120F480E090E00C94721708957D -:10331000882321F00E941A220C94612208958823A8 -:1033200021F00E9420220C94612208957F928F92B6 -:103330009F92AF92BF92CF92DF92EF92FF920F9344 -:103340001F93CF93DF931F92CDB7DEB77C01C62EBC -:10335000772EFC01058102950F70128111110E94D8 -:1033600037220E948D21882379F0112369F080E2B1 -:103370008C0D883048F082E00E9476210E948D21D9 -:1033800091E0D82ED92601C0D12CE72DE295EF701F -:10339000F0E0E05AFF4F0C94D52C872D807F072D4D -:1033A0000F70882311F00295007F112389F000230C -:1033B00009F499C180E28C0D883020F4802F0E949E -:1033C0001A2203C0802F0E942A220E9461228BC1F0 -:1033D0008C2D0E943919002309F4C3C180E28C0DA1 -:1033E000883020F4802F0E94202203C0802F0E946A -:1033F00030220E946122B5C1872D807F972D9F705A -:10340000803211F4892F03C0892F8295807FCC20D0 -:1034100021F0F1E0CF16A1F01DC0112339F00023F7 -:1034200019F1013009F50E944A229BC1002319F0CD -:10343000013009F496C189830E944D22898110C10F -:10344000112321F0063008F08CC10EC0053008F0C1 -:1034500088C106C1112359F0002331F0F70195818D -:1034600090FF41C19F7095830E9488197AC1002303 -:1034700009F4F6C03EC1872D86958695837090E04D -:10348000009719F0019761F06CC1112321F08C2D88 -:10349000972D937002C080E090E00E945C1761C19C -:1034A000112321F08C2D972D937002C080E090E0C5 -:1034B0000E94721756C18C2D112319F00E9484248A -:1034C00002C00E94EC240E9471254BC1872D83709D -:1034D00009F052C0111145C18C2D829586958770D7 -:1034E000880F880F9C2D9F70892E912CA12CB12CB8 -:1034F000082E04C0880C991CAA1CBB1C0A94D2F785 -:10350000C4FE14C00FE010E020E030E0B901A801D3 -:1035100004C0440F551F661F771F8A95D2F7CB0151 -:10352000BA01609570958095909503C060E070E059 -:10353000CB01272D26952695237030E022303105CA -:1035400069F02330310589F0682979298A299B2976 -:103550002130310571F00E94022003C168297929C8 -:103560008A299B290E941E20FCC00E940220C501BE -:10357000B4010E94E61FF5C0112319F0872D817058 -:1035800001C08695882309F4ECC08C2D8295869520 -:103590008770880F880F9C2D9F70892E912CA12CED -:1035A000B12C082E04C0880C991CAA1CBB1C0A94C0 -:1035B000D2F7C4FE14C00FE010E020E030E0B90103 -:1035C000A80104C0440F551F661F771F8A95D2F7C4 -:1035D000CB01BA01609570958095909503C060E02D -:1035E00070E0CB01272D269526952370422F50E0C1 -:1035F0004230510569F04330510589F06829792935 -:103600008A299B294130510571F00E94DC20A9C014 -:10361000682979298A299B290E94F820A2C00E9442 -:10362000DC20C501B4010E94C0209BC08C2D90E01D -:10363000FC01E05EF109E531F10508F050C0E05908 -:10364000FF4F0C94D52C0C2D0F70872D8F711123EB -:1036500021F00E945920802F07CF0E947A20802FCE -:103660000E948F197EC0112341F0053008F079C007 -:10367000872D8F710E949F2074C0063008F071C0A2 -:10368000F7CF112339F0872D8F710E94592069C01F -:103690001123C9F3872D8F710E947A2062C01123F4 -:1036A00029F0872D8F710E9444205BC00E943A2030 -:1036B00058C0112351F0172D1F71812F0E945920DE -:1036C00063E0812F0E946D214CC081E00E94762131 -:1036D000023008F446C082E00E94762142C01123E5 -:1036E00031F0002381F28C2D0E9471183AC0002322 -:1036F00089F28C2D0E94391934C0472D4F706C2DE2 -:10370000C7010E94B5030E945E1F2BC0111129C082 -:10371000472D4F7050E042305105B9F04CF441153F -:10372000510581F041305105E1F40E946C2819C027 -:103730004330510569F04430510599F48C2D0E94B5 -:10374000BE280FC00E9455280CC00E94882809C0BE -:103750000E949B2806C0472D4F706C2DC7010E9408 -:103760002B06DD20F9F00E94692180FD1BC0F701C6 -:1037700012820E9463210E945920C7010E94E11B0E -:103780000E9463210F90DF91CF911F910F91FF90C5 -:10379000EF90DF90CF90BF90AF909F908F907F90F1 -:1037A0000C947A200F90DF91CF911F910F91FF9091 -:1037B000EF90DF90CF90BF90AF909F908F907F90D1 -:1037C00008950F931F93CF93DF93EC018881998124 -:1037D0002B813C81232BB9F09F3F11F48F3F99F04F -:1037E000CE010E942A04882371F0688179818A8140 -:1037F0000E945F218C010E9414210E94DB1FB801EE -:10380000CE010E949619DF91CF911F910F910895DB -:103810000E9437220E9447220E940C220E946122AD -:103820000E9422260E94712580E090E00E945C1791 -:1038300080E090E00C9472170E9427220C94081CE0 -:103840000E945421292F22952F7030E02C30310511 -:103850004CF42A3031056CF4225031092230310504 -:10386000A8F407C02C30310569F02F30310551F034 -:103870000DC0803F69F018F4803E40F409C0843FD9 -:1038800029F406C093FB882780F9089580E0089505 -:1038900081E00895CF93DF9300D000D01F92CDB781 -:1038A000DEB70F900F900F900F900F90DF91CF9198 -:1038B0000895CF93DF9300D000D000D0CDB7DEB70E -:1038C00026960FB6F894DEBF0FBECDBFDF91CF9125 -:1038D00008951F93CF93DF93C0919D0216E08091CE -:1038E0009E02C81799F0D0E01C9FF0011D9FF00DBB -:1038F0001124E156FD4F40815181628173818481A1 -:1039000095810E94591C2196C770E9CFDF91CF9114 -:103910001F9108954091CF025091D0026091D10241 -:103920007091D2028091D3029091D4020C94591CD0 -:103930008091D40282958F7009F054C08091D10299 -:10394000882309F44FC080919D02A0919E0260914E -:10395000CF027091D0024091D2025091D302B6E0D2 -:103960008A1709F43FC090E041155105C1F17F3F2E -:1039700011F46F3FA1F1B89FF001B99FF00D112430 -:10398000E156FD4F218172132AC02081621327C0A6 -:103990002281211124C0238134812417350710F49A -:1039A00021503109241B350B283C3105C0F42091EE -:1039B000D4022F7020612093D40226E0289FF001CA -:1039C000299FF00D1124EC55FD4F80818F7080618F -:1039D00080838FEC92E00E94E11B0C94691C01969D -:1039E0008770BECF0895CF92DF92EF92FF920F9330 -:1039F0001F93CF93DF93CDB7DEB762970FB6F894DE -:103A0000DEBF0FBECDBF8C0185E0F801DE011D9643 -:103A100001900D928A95E1F7D8014C9111965C9135 -:103A2000119712966C9112971396CD90DC90149783 -:103A30003091CF027091D0028091D2029091D30246 -:103A4000009709F46BC17F3F19F43F3F09F466C149 -:103A5000E090D102EE2009F4C0C02091D402C81633 -:103A6000D90628F0F601E81BF90BCF0104C08095B8 -:103A700090958C0D9D1DFF24F394883C910578F062 -:103A8000F12C207F09F0C6C07C2DD98AC88A89898B -:103A90000E944A1C8FEC92E00E94E11BB1C0822F71 -:103AA000807F09F046C0751314C0341312C0611131 -:103AB00010C02F7020612093D4020E948A1C8FECCA -:103AC00092E00E94E11B8091D402D80115968C935C -:103AD0002EC0CD2819F15F3F11F44F3FF9F0F62EBB -:103AE00061111CC080919D0220919E0236E08217D8 -:103AF00009F45AC090E0389FF001399FF00D11246D -:103B0000E156FD4F7181571306C07081471303C002 -:103B10007281711103C001968770E9CFF62E66237A -:103B200009F418C18091D40281608093D402F12CF1 -:103B300011C1751308C0341306C0611104C080910F -:103B4000D402D801C3C04D875E878D859E856A8B60 -:103B50000E94201C6A898823E1F16623D1F120911B -:103B6000D402822F82958F7090E0029774F080913A -:103B7000CF029091D00298878F831986DB86CA8600 -:103B80002C87CE0107960E94E11B86E0F801AFEC7E -:103B9000B2E001900D928A95E1F70E94981C0E9474 -:103BA0008A1CFF24F394D6C04D875E878D859E8541 -:103BB0000E945421292F22952F7030E022303105A8 -:103BC0000CF0BCC09F7009F0B6C0805E883008F46D -:103BD000C1C0C8010E94E11BE4CFC816D90608F491 -:103BE00053C0F601E81BF90BCF01883C910508F49E -:103BF00050C0F12C7C2DD98AC88A89890E944A1C20 -:103C0000EFECF2E086E0DF011D928A95E9F70E9471 -:103C10008A1CA0C0751314C0341312C0611110C0E7 -:103C20008091D402F8018583C8010E94E11B86E0DF -:103C3000EFECF2E0DF011D928A95E9F7FE2C8AC0D5 -:103C40004D875E878D859E856A8B0E94201C6A89C0 -:103C5000882309F4BECF662309F4BBCF2091D40298 -:103C6000822F82958F7090E002970CF48ECF809116 -:103C7000CF029091D0029A8389831B82DD82CC820D -:103C80002E83CE0101967FCF809590958C0D9D1D42 -:103C9000ACCFF62E662309F49CCF75132EC03413D7 -:103CA0002CC02091D40220FD1FC0822F82958F70DE -:103CB000D9F0D80115962C9315978F3049F08F5F66 -:103CC000982F9295907F822F8F70892B15968C93C9 -:103CD000C8010E94E11B86E0F801AFECB2E0019060 -:103CE0000D928A95E1F793CF86E0F801AFECB2E050 -:103CF00001900D928A95E1F72DC04D875E878D85E5 -:103D00009E850E94201C811140CF8091D402816049 -:103D10008093D402C8010E94E11B1CC0662309F4F1 -:103D200058CF4D875E878D859E850E94201C8823F5 -:103D300009F44FCF2ACF811148CF0CC02430310570 -:103D40000CF047CF9F7009F440CFF8019581907F28 -:103D500009F03BCF8F2D62960FB6F894DEBF0FBEF1 -:103D6000CDBFDF91CF911F910F91FF90EF90DF902A -:103D7000CF9008951F93CF93DF93CDB7DEB72C97E5 -:103D80000FB6F894DEBF0FBECDBF4F83588769874B -:103D90007A878B879C87CE0107960E94F31C882325 -:103DA00069F08F8198852A853B85232BF1F19F3F10 -:103DB00009F063C08F3F09F060C037C086E0FE01A4 -:103DC0003796DE01119601900D928A95E1F76F8189 -:103DD0007885EA85FB85309741F17F3F11F46F3F8D -:103DE00021F120919E0230E0C90101968770992748 -:103DF00040919D0250E08417950709F447C06983FC -:103E00007A83FD83EC8396E0929FD001939FB00D5F -:103E10001124A156BD4FFE01319601900D929A9545 -:103E2000E1F780939E020E94691C16E080919D023A -:103E300090919E028917C1F1189FC00111248156EB -:103E40009D4F0E94F31C882379F1E0919D021E9FF3 -:103E5000F0011124E156FD4F40815181628173814F -:103E6000848195810E94591C80919D0290E0019669 -:103E70008770992780939D02D9CF4F815885698596 -:103E80007A858B859C850E94591CCFCF0E941C1C73 -:103E900010929E0210929D02EFECF2E086E0DF01AC -:103EA0001D928A95E9F7C1CF2C960FB6F894DEBF24 -:103EB0000FBECDBFDF91CF911F910895EF92FF927A -:103EC0000F931F93CF93DF938C01009709F46CC07D -:103ED000F12CEE24E394E8012196F80184918437D3 -:103EE00040F4843008F051C0813081F0823019F103 -:103EF0005BC0853709F444C0A8F19CE7980F903760 -:103F000008F052C08F770E94391941C00E5F1F4FD1 -:103F1000FE01C49180E28C0F883048F4C7708E2D6A -:103F200001C0880FCA95EAF70E943A2214C08C2F6C -:103F30000E9471182DC00E5F1F4FFE01C49180E2D8 -:103F40008C0F883058F4C7708E2D01C0880FCA9529 -:103F5000EAF70E9440220E9461221AC08C2F0E9420 -:103F6000391916C00E5F1F4FFE01C491CC2381F09A -:103F70008FE99FE00197F1F700C00000C150F6CF34 -:103F80000E5F1F4FFE01F49003C00E9471188E0156 -:103F90008F2D882309F49FCFEFE9FFE03197F1F7E8 -:103FA00000C000008150F5CFDF91CF911F910F919C -:103FB000FF90EF90089508956093D9027093DA020C -:103FC0008093DB029093DC020C94081C0F931F93E8 -:103FD0000091D9021091DA022091DB023091DC02CB -:103FE000DC01CB01802B912BA22BB32B8093D90228 -:103FF0009093DA02A093DB02B093DC021F910F9141 -:104000000C94081C0F931F930091D9021091DA02AF -:104010002091DB023091DC02DC01CB018023912373 -:10402000A223B3238093D9029093DA02A093DB02F8 -:10403000B093DC021F910F910C94081C0F931F93F7 -:104040000091D9021091DA022091DB023091DC025A -:10405000DC01CB0180279127A227B3278093D902C7 -:104060009093DA02A093DB02B093DC021F910F91D0 -:104070000C94081C1092D5021092D6021092D7020E -:104080001092D8020C94081C41E050E060E070E00F -:1040900004C0440F551F661F771F8A95D2F74093BF -:1040A000D5025093D6026093D7027093D8020C9435 -:1040B000081C41E050E060E070E004C0440F551F70 -:1040C000661F771F8A95D2F78091D5029091D6020C -:1040D000A091D702B091D802482B592B6A2B7B2B89 -:1040E0004093D5025093D6026093D7027093D802C2 -:1040F0000C94081C41E050E060E070E004C0440F04 -:10410000551F661F771F8A95D2F740955095609589 -:1041100070958091D5029091D602A091D702B0916E -:10412000D802482359236A237B234093D502509316 -:10413000D6026093D7027093D8020C94081C41E019 -:1041400050E060E070E004C0440F551F661F771F09 -:104150008A95D2F78091D5029091D602A091D7028C -:10416000B091D802482759276A277B274093D50268 -:104170005093D6026093D7027093D8020C94081C17 -:104180000F931F930091D5021091D6022091D70270 -:104190003091D802DC01CB01802B912BA22BB32BC9 -:1041A0008093D5029093D602A093D702B093D80201 -:1041B0001F910F910C94081C0F931F930091D5022F -:1041C0001091D6022091D7023091D802DC01CB01A8 -:1041D00080239123A223B3238093D5029093D60208 -:1041E000A093D702B093D8021F910F910C94081C92 -:1041F0000F931F930091D5021091D6022091D70200 -:104200003091D802DC01CB0180279127A227B32768 -:104210008093D5029093D602A093D702B093D80290 -:104220001F910F910C94081C0895CF92DF92EF928A -:10423000FF920F931F93CF93DF938C01C090D9020D -:10424000D090DA02E090DB02F090DC028091D5029F -:104250009091D602A091D702B091D802C82AD92A4B -:10426000EA2AFB2ACFE1D0E0D701C6010C2E04C018 -:10427000B695A795979587950A94D2F780FF06C0C3 -:10428000B8018C2F0E94B008019721F4219760F7A4 -:1042900080E001C08C2FDF91CF911F910F91FF9093 -:1042A000EF90DF90CF900895CF93DF93EC010E94C1 -:1042B0001521BE010E94B008DF91CF910895CB0176 -:1042C0000E94542108958091DD02859585958595FC -:1042D00008958091DD028770089598E0899F90018C -:1042E0001124262B2093DD020C9459202091DD020D -:1042F000809582238093DD02982F977069F430E0D7 -:10430000482F552747FD50952417350729F08595E7 -:10431000859585950C947A2008959091DD0297708B -:1043200081E009F480E0089590911501992321F02E -:1043300090911601911109C0209117013091180137 -:10434000F90132969FEF40E01FC0982F9695969501 -:1043500096959F3050F5E0911701F0911801E90F03 -:10436000F11D877021E030E0A90102C0440F551F04 -:104370008A95E2F7CA019181892B818308959F3F35 -:1043800039F04F5F4E3041F051915813F8CF0DC0C6 -:104390005111F7CF942FF5CF9F3F39F0F901E90F75 -:1043A000F11D97FDFA958283089508959091150166 -:1043B000992321F090911601911109C020911701C4 -:1043C00030911801F9013296205F3F4F1FC0982F9E -:1043D0009695969596959F30F0F4E0911701F0919F -:1043E0001801E90FF11D877021E030E0A90102C03A -:1043F000440F551F8A95E2F7CA0180959181892360 -:10440000818308953196E217F30729F0908198137C -:10441000F9CF1082F7CF089581E090E0E091170185 -:10442000F0911801E80FF91F108201968031910573 -:10443000A9F708959091F102892B8093F1020895D4 -:1044400080959091F10289238093F1020895109252 -:10445000F10208959091F002892B8093F002089563 -:1044600080959091F00289238093F0020895109234 -:10447000F00208959091EF02892B8093EF02089546 -:1044800080959091EF0289238093EF020895109216 -:10449000EF0208958093DE0208951092DE020895DF -:1044A0008091170190911801FC0131969C01205FC9 -:1044B0003F4F80E0919191118F5FE217F307D1F7A1 -:1044C0000895E0911701F09118018091F102808325 -:1044D000E0911701F091180190818091F002892BF1 -:1044E0008083E0911701F091180190818091EF0293 -:1044F000892B80838091DE02882361F0E09117018F -:10450000F09118019081892B80830E9450228111A3 -:104510001092DE0280911701909118010C944617B9 -:1045200020E0009739F0AC014150510984239523D4 -:104530002F5FF7CF822F089580911303843039F1D4 -:104540001092F30220E488E190E00FB6F894A89569 -:10455000809360000FBE2093600080E00E941C03E7 -:1045600080E00E944A0983B7817F846083BF83B75C -:10457000816083BF7894889583B78E7F83BF88E1FD -:104580000FB6F89480936000109260000FBE0895FB -:104590000895089580E00E941C030E94C8220E9492 -:1045A000A5090E94C9220E942A0A91E0811101C036 -:1045B00090E0892F08950E941C1C80E00E941C033B -:1045C0000E9444280E943A170C944A091F920F92A5 -:1045D0000FB60F9211248F939F93AF93BF93809147 -:1045E000F302811113C08091F4029091F502A09121 -:1045F000F602B091F7024196A11DB11D8093F4021D -:104600009093F502A093F602B093F702BF91AF9199 -:104610009F918F910F900FBE0F901F90189582E081 -:1046200084BD93E095BD9AEF97BD80936E00089589 -:104630002FB7F8948091F4029091F502A091F602C0 -:10464000B091F7022FBF0895CF92DF92EF92FF92C1 -:104650000F931F932FB7F8944091F4025091F502F5 -:104660006091F6027091F7022FBF6A017B01EE2480 -:10467000FF248C0120E030E0C016D106E206F306EC -:1046800010F4415051099A01281B390BC9011F919F -:104690000F91FF90EF90DF90CF9008951F920F92AF -:1046A0000FB60F9211248F939F93AF93BF93809176 -:1046B000F4029091F502A091F602B091F7020196F2 -:1046C000A11DB11D8093F4029093F502A093F60210 -:1046D000B093F702BF91AF919F918F910F900FBE52 -:1046E0000F901F9018950E943714F8942FEF87EAC7 -:1046F00091E6215080409040E1F700C0000087E043 -:1047000090EBDC0180931E0390931F03A093200382 -:10471000B09321039CE088E10FB6F894A8958093AC -:1047200060000FBE90936000FFCF0E94D4238111E0 -:1047300002C00E94B0230E94DF238093F2020E94F5 -:10474000E72380931C0387FB882780F98093160159 -:104750000E94E323682F70E080E090E00C94DC1F5F -:104760006DEE7EEF80E090E00E94FB2C60E082E046 -:1047700090E00E94E92C60E083E090E00E94E92C48 -:1047800060E084E090E00E94E92C60E085E090E049 -:104790000E94E92C60E086E090E00E94E92C6FEF37 -:1047A00087E090E00C94E92C80E090E00E94E32CFC -:1047B00021E08D3E9E4F09F020E0822F089582E097 -:1047C00090E00C94DB2C83E090E00C94DB2C84E0F4 -:1047D00090E00C94DB2C682F84E090E00C94E92CA2 -:1047E00086E090E00C94DB2C682F86E090E00C943F -:1047F000E92C87E090E00C94DB2C682F87E090E0B8 -:104800000C94E92C8091FA0280FF0BC060911C018E -:1048100085E0689FB001112475956795759567953A -:104820002BC081FF09C060911C0185E0689FB00129 -:1048300011247595679520C082FF07C060911C0107 -:1048400085E0689FB001112417C09091FB02992365 -:10485000D1F060911B01961788F720911C0185E02B -:10486000289F90011124929FA001939F500D112425 -:1048700070E0CA010E94C12C6038710540F46115D6 -:10488000710539F002C065E070E0862F08958FE76A -:10489000089581E008958091FA0280FF08C0609138 -:1048A0001A0170E0759567957595679521C081FF30 -:1048B00006C060911A0170E07595679519C082FF76 -:1048C00004C060911A0170E010C09091FB0299231E -:1048D000C1F0609119019617A0F780911A01899F84 -:1048E000C001112470E00E94C12C6038710528F4C9 -:1048F0006115710521F0862F08958FE7089581E0F5 -:10490000089561E070E0F4CF803F21F40E9402241A -:10491000819504C0813F29F40E9402248093FE0205 -:104920000895823F21F40E940224819504C0833FB0 -:1049300029F40E9402248093FD020895893F19F40E -:104940000E944B2405C08A3F31F40E944B2481957C -:104950008093FF0208958B3F21F40E944B248195A0 -:1049600004C08C3F29F40E944B24809300030895D7 -:10497000843F21F48091FC02816017C0853F21F4BF -:104980008091FC02826011C0863F21F48091FC027C -:1049900084600BC0873F21F48091FC02886005C0D1 -:1049A000883F31F48091FC0280618093FC0208957D -:1049B0008D3F21F48091FA0281600BC08E3F21F47B -:1049C0008091FA02826005C08F3F29F48091FA023B -:1049D00084608093FA020895803F39F48091FE024A -:1049E00087FF6CC01092FE0269C0813F29F480915C -:1049F000FE021816BCF362C09091FD02823F29F4BA -:104A000097FF5CC01092FD0259C0833F19F419163C -:104A1000CCF354C0893F41F48091FF0218160CF08A -:104A20004DC01092FF024AC08A3F29F48091FF02D4 -:104A300087FF44C0F6CF8B3F39F48091000387FF96 -:104A40003DC0109200033AC08C3F29F480910003CE -:104A50001816BCF333C0843F21F48091FC028E7F92 -:104A600017C0853F21F48091FC028D7F11C0863FE5 -:104A700021F48091FC028B7F0BC0873F21F4809151 -:104A8000FC02877F05C0883F31F48091FC028F7E55 -:104A90008093FC0213C08D3F21F48091FA028E7F37 -:104AA0000BC08E3F21F48091FA028D7F05C08F3FAD -:104AB00029F48091FA028B7F8093FA028091FD02A3 -:104AC00081110EC08091FE0281110AC08091FF0207 -:104AD000811106C080910003811102C01092FB0277 -:104AE00008958CEF92E00E9451170E941823909332 -:104AF000F9028093F80208951F93CF93DF9380917A -:104B0000F8029091F9020E942423AC019091FB02DB -:104B1000992321F020911D0130E006C020911E0153 -:104B20008AE0289F900111244217530708F486C099 -:104B30008091FD02C091FE02D091FF02109100030E -:104B4000811107C0C11176C0D11174C0111172C09A -:104B500075C09F3F19F09F5F9093FB02181624F4D5 -:104B60000E9402248093FD028091FD0287FF05C010 -:104B70000E94022481958093FD021C1624F40E9459 -:104B800002248093FE028091FE0287FF05C00E94EE -:104B9000022481958093FE026091FD02662339F123 -:104BA000C091FE02CC2319F1772767FD7095872FFE -:104BB000972F0E94E32923E333E343E35FE30E945B -:104BC000F32A0E94B0296093FD026C2F772767FDBE -:104BD0007095872F972F0E94E32923E333E343E364 -:104BE0005FE30E94F32A0E94B0296093FE021D1623 -:104BF00024F40E944B248093FF028091FF0287FFE0 -:104C000005C00E944B2481958093FF02111624F465 -:104C10000E944B24809300038091000387FF05C00E -:104C20000E944B24819580930003DF91CF911F91C7 -:104C30000C9471259F3F09F08ECF96CFDF91CF91D5 -:104C40001F910895ECEFF2E085E0DF011D928A9557 -:104C5000E9F71092FB021092FA020895833081F175 -:104C600028F4813059F08230D1F00895853009F46C -:104C700049C0B8F1863009F456C0089580911E01EC -:104C8000262F30E0280F311D2F3F310524F4680F07 -:104C900060931E0108958FEF80931E010895809107 -:104CA0001D01262F30E0280F311D2F3F310524F440 -:104CB000680F60931D0108958FEF80931D01089583 -:104CC00080911C01262F30E0280F311D2F3F310528 -:104CD00024F4680F60931C0108958FEF80931C01EA -:104CE000089580911B01262F30E0280F311D2F3FA2 -:104CF000310524F4680F60931B0108958FEF8093B2 -:104D00001B01089580911A01262F30E0280F311DD4 -:104D10002F3F310524F4680F60931A0108958FEF37 -:104D200080931A01089580911901262F30E0280FF1 -:104D3000311D2F3F310524F4680F60931901089548 -:104D40008FEF809319010895833011F128F4813099 -:104D500049F0823091F00895853081F120F186305C -:104D6000C1F1089580911E01681720F4861B80937D -:104D70001E01089510921E01089580911D0168176B -:104D800020F4861B80931D01089510921D01089543 -:104D900080911C01681720F4861B80931C010895E4 -:104DA00010921C01089580911B01681720F4861B46 -:104DB00080931B01089510921B01089580911A01A0 -:104DC000681720F4861B80931A01089510921A0127 -:104DD000089580911901681720F4861B80931901AA -:104DE00008951092190108950F931F93873208F0C8 -:104DF00048C08E3108F08DC0803109F477C008F5C5 -:104E0000873009F461C068F4863009F09DC0809154 -:104E1000F202817F8E7F8093F20281E08093020311 -:104E200094C08B3009F489C08E3009F08DC0809118 -:104E3000F20282FB222720F991E0922790FB82F96F -:104E40005EC0863109F479C060F4813109F07CC01C -:104E50000E941C1C9091160181E089278093160105 -:104E60006CC0893109F469C08B3109F06DC0809143 -:104E7000F20281FB222720F991E0922790FB81F931 -:104E80003EC0883309F459C050F4893209F457C040 -:104E9000853309F454C0873209F451C055C08334B6 -:104EA00009F44DC028F48A3308F44EC0895332C047 -:104EB000883409F049C00E941C1C0E945A0A0E94B2 -:104EC00021040E94732339C09091F202892F8095AA -:104ED000817080FB90F929F0966098609093F202BF -:104EE00034C0997F977F9093F20227C08091F2029D -:104EF00083FB222720F991E0922790FB83F980938E -:104F0000F2029923D1F08091F20281608093F20243 -:104F100014C08D5141E050E060E070E08A019B01D7 -:104F200004C0000F111F221F331F8A95D2F7C90139 -:104F3000B8010E94DC1F0E941C1C81E006C061E0D9 -:104F400070E080E090E0F5CF80E01F910F91089530 -:104F500080E0089580E00895CF93C82F80910203E8 -:104F6000813069F018F08230C9F184C0E0911701F6 -:104F7000F09118018081823209F07EC007C0E09173 -:104F80001701F09118018081823261F48C2F0E9408 -:104F9000A827811104C08C2F0E94F4261DC081E037 -:104FA00090E01AC08C2F0E94AA27811114C0C4312E -:104FB00079F048F4CB3079F0C03109F061C082E07B -:104FC0008093020308C0C93219F0C83321F058C0D9 -:104FD0001092020355C081E0817054C0C93291F132 -:104FE00020F5C43179F1B0F4C73009F047C08EE143 -:104FF00080931E0182E380931D018AE080931C014F -:1050000084E180931B0188E080931A0188E28093F9 -:10501000190134C0CE51C63088F5EC2FF0E0EA54C7 -:10502000FE4F80818093010329C0CE34E9F020F443 -:10503000CB3421F56AE013C0C13579F0C235F1F403 -:1050400061E00DC080910103882319F010920103E3 -:1050500015C081E08093020315C061E006C0809115 -:1050600001030E942E260AC06AE0809101030E947B -:10507000A42604C01092020380E004C081E002C0B4 -:1050800080E0AACFCF9108950E94D423811102C05D -:105090000E94B0230E94F02380931D0380FF02C072 -:1050A000869501C080E00C941C0380911D03982F0D -:1050B0009695292F30E0233031054CF49F5F990FEE -:1050C0008170892B816080931D030E94F42380915D -:1050D0001D0386950C941C0380911D03982F9695B3 -:1050E00091F09158990F8170892B80931D038E7FC9 -:1050F00091E009F490E080911D0390FB80F980938A -:105100001D030E94F42380911D0386950C941C03BB -:1051100080911D03982F909590FB80F980931D033B -:105120000E94F42380911D0380FF02C0869501C078 -:1051300080E00C941C0390911D03892F86958F5F4E -:105140008F779170843028F4880F892B80931D030A -:1051500002C090931D0380911D038E7F91E009F49E -:1051600090E080911D0390FB80F980931D030E94C5 -:10517000F42380911D0386950C941C0320911D033C -:10518000922F96958927982F990F822F8170892BBE -:1051900080931D038E7F91E009F490E080911D03C0 -:1051A00090FB80F980931D030E94F42380911D03DE -:1051B00086950C941C0380911D0386950895505884 -:1051C000BB27AA270ED0D1C1C2D130F0C7D120F061 -:1051D00031F49F3F11F41EF4B7C10EF4E095E7FBE4 -:1051E0009FC1E92FD3D180F3BA17620773078407F1 -:1051F000950718F071F49EF5EBC10EF4E0950B2EB7 -:10520000BA2FA02D0B01B90190010C01CA01A00118 -:105210001124FF27591B99F0593F50F4503E68F173 -:105220001A16F040A22F232F342F4427585FF3CFB4 -:10523000469537952795A795F0405395C9F77EF485 -:105240001F16BA0B620B730B840BBAF09150A1F0CE -:10525000FF0FBB1F661F771F881FC2F70EC0BA0F54 -:10526000621F731F841F48F4879577956795B795DC -:10527000F7959E3F08F0B3CF9395880F08F09927D4 -:10528000EE0F97958795089527D108F481E008954A -:105290000CD06BC163D140F05AD130F021F45F3FA4 -:1052A00019F03EC1511195C14FC170D198F39923A6 -:1052B000C9F35523B1F3951B550BBB27AA276217DA -:1052C0007307840738F09F5F5F4F220F331F441F1F -:1052D000AA1FA9F333D00E2E3AF0E0E830D0915057 -:1052E0005040E695001CCAF729D0FE2F27D0660F44 -:1052F000771F881FBB1F261737074807AB07B0E883 -:1053000009F0BB0B802DBF01FF2793585F4F2AF098 -:105310009E3F510568F004C15CC15F3FECF3983ECD -:10532000DCF3869577956795B795F7959F5FC9F7F5 -:10533000880F911D9695879597F90895E1E0660F7E -:10534000771F881FBB1F621773078407BA0720F0F7 -:10535000621B730B840BBA0BEE1F88F7E095089560 -:1053600004D06894B11135C1089518D188F09F57C1 -:1053700090F0B92F9927B751A0F0D1F0660F771FA1 -:10538000881F991F1AF0BA95C9F712C0B13081F081 -:105390001FD1B1E008951CC1672F782F8827B85F0F -:1053A00039F0B93FCCF3869577956795B395D9F7E2 -:1053B0003EF490958095709561957F4F8F4F9F4FEC -:1053C0000895E89409C097FB3EF4909580957095F8 -:1053D00061957F4F8F4F9F4F9923A9F0F92F96E941 -:1053E000BB279395F695879577956795B795F111B6 -:1053F000F8CFFAF4BB0F11F460FF1BC06F5F7F4F53 -:105400008F4F9F4F16C0882311F096E911C0772364 -:1054100021F09EE8872F762F05C0662371F096E86D -:10542000862F70E060E02AF09A95660F771F881F3C -:10543000DAF7880F9695879597F9089588D018F030 -:1054400011F08CD038F480C0C4C0E92F9FD0B0F3E5 -:105450005523C9F3E7FB6217730784079507A8F183 -:1054600099F3E92FFF2788232AF03197660F771FDA -:10547000881FDAF7952F5527442332F0915050407A -:10548000220F331F441FD2F7BB27E91BF50B621B0A -:10549000730B840BB109C1F222F4620F731F841FD6 -:1054A000B11D31972AF0660F771F881FBB1FEFCF02 -:1054B000915050405AF041F0882332F0660F771F28 -:1054C000881F91505040C1F7939530C086957795CD -:1054D00067959F5FD9F7F8CF990F0008550FAA0B72 -:1054E000E0E8FEEF16161706E807F907C0F01216F7 -:1054F0001306E407F50798F0621B730B840B950BFA -:1055000039F40A2661F0232B242B252B21F408954E -:105510000A2609F4A140A6958FEF811D811D0895EB -:1055200097F99F6780E870E060E008959F3F31F051 -:10553000915020F4879577956795B795880F911DC1 -:105540009695879597F908959FEF80EC089500242C -:105550000A941616170618060906089500240A94D8 -:1055600012161306140605060895092E0394000C5E -:1055700011F4882352F0BB0F40F4BF2B11F460FFED -:1055800004C06F5F7F4F8F4F9F4F089557FD905816 -:10559000440F551F59F05F3F71F04795880F97FBF7 -:1055A000991F61F09F3F79F08795089512161306B1 -:1055B0001406551FF2CF4695F1DF08C016161706E0 -:1055C0001806991FF1CF8695710561050894089515 -:1055D000E894BB2766277727CB0197F908957CDFEE -:1055E00008F48FEF08950BD0C0CFB1DF28F0B6DFFD -:1055F00018F0952309F094CFA7CF1124EACFC6DF86 -:10560000A0F3959FD1F3950F50E0551F629FF001D5 -:10561000729FBB27F00DB11D639FAA27F00DB11D2E -:10562000AA1F649F6627B00DA11D661F829F2227B7 -:10563000B00DA11D621F739FB00DA11D621F839F3E -:10564000A00D611D221F749F3327A00D611D231F14 -:10565000849F600D211D822F762F6A2F11249F5762 -:1056600050408AF0E1F088234AF0EE0FFF1FBB1F85 -:10567000661F771F881F91505040A9F79E3F510524 -:1056800070F04ECFA6CF5F3FECF3983EDCF38695EB -:1056900077956795B795F795E7959F5FC1F7FE2BCF -:1056A000880F911D9695879597F90895FA01EE0F49 -:1056B000FF1F30962105310599F16115710561F4DF -:1056C0008038BFE39B0749F168949038810561F009 -:1056D0008038BFEF9B0741F0992342F5FF3FE1057A -:1056E0003105210511F1E8940894E795D901AA2321 -:1056F00029F4AB2FBE2FF85FD0F310C0FF5F70F41A -:10570000A695E0F7F73950F019F0FF3A38F49F7793 -:105710009F930CD00F9007FC905808953EF014CF43 -:1057200060E070E080E89FE308954FE79F775F9324 -:105730004F933F932F939ED02F913F914F915F9125 -:1057400052DF05C019F40EF0EBCE42CFFDCE26DFBE -:10575000C8F39638C0F707F80F92E8942BE33AEABB -:1057600048EB5FE74EDF0F920F920F924DB75EB797 -:105770000F92C0D0EAE0F1E016D04F915F91EF9127 -:10578000FF91E595EE1FFF1F49F0FE57E0684427A3 -:10579000EE0F441FFA95E1F74195550B32D00F906B -:1057A00007FE26C00895DF93CF931F930F93FF92B8 -:1057B000EF92DF927B018C01689405C0DA2EEF0135 -:1057C0001EDFFE01E894A5912591359145915591F3 -:1057D000AEF3EF0106DDFE019701A801DA9479F737 -:1057E000DF90EF90FF900F911F91CF91DF9108957F -:1057F0009B01AC0160E070E080E89FE349CD90CE72 -:1058000095CECCDEE8F39923D9F3940F511DBBF369 -:105810009150504094F059F0882332F0660F771F72 -:10582000881F91505040C1F79E3F510544F7880FA3 -:10583000911D9695879597F908955F3FACF0983E36 -:105840009CF0BB27869577956795B79508F4B1606E -:105850009395C1F7BB0F58F711F460FFE8CF6F5F66 -:105860007F4F8F4F9F4FE3CFB4CE0EF05FCE6CCE05 -:10587000689456CE93DEC8F39923D1F3C6F3DF9331 -:10588000CF931F930F93FF92C92FDD2788232AF010 -:105890002197660F771F881FDAF720E030E040E895 -:1058A0005FEB9FE3883920F0803E30F021968F77C0 -:1058B00087DCE2E3F1E003C083DCEFE5F1E073DFD6 -:1058C0008B01BE01EC01FB2E6F5771097595771F97 -:1058D000880B990B78DD28E132E741E35FE38FDE47 -:1058E000AF2D9801AE01FF900F911F91CF91DF91E5 -:1058F00078DC3BCEFA01DC01AA0FBB1F9B01AC0197 -:10590000BF5728F422273327442750781FC0B751A8 -:1059100088F4AB2F0024469537952795011CA39555 -:10592000D2F3002069F0220F331F441FB395DAF33E -:105930000DD045CC61307105A0E88A07B94630F436 -:105940009B01AC016627772788279078309621F055 -:1059500020833183428353830895AA1BBB1B51E1EB -:1059600007C0AA1FBB1FA617B70710F0A61BB70BCF -:10597000881F991F5A95A9F780959095BC01CD0174 -:10598000089597FB072E16F4009407D077FD09D0F1 -:105990000E94AD2C07FC05D03EF4909581959F4F59 -:1059A0000895709561957F4F0895EE0FFF1F059044 -:1059B000F491E02D0994F999FECF92BD81BDF89A3A -:1059C000992780B50895A8E1B0E042E050E00C943A -:1059D000032D262FF999FECF92BD81BDF89A01972C -:1059E00000B4021639F01FBA20BD0FB6F894FA9A27 -:1059F000F99A0FBE08950196272F0E94EA2C0C9465 -:105A0000E92CDC01CB01FC01F999FECF06C0F2BD07 -:105A1000E1BDF89A319600B40D9241505040B8F76C -:065A20000895F894FFCF89 -:105A2600640007000CFF0000003F643E10CC10A984 -:105A360010751041100101DF022808140A321E00F9 -:105A460002040507090B0C0E1011131517181A1C62 -:105A56001D1F2123242628292B2D2F30323435379C -:105A6600393B1F0F03764F5F6F7F496943790959A9 -:105A760053633149803F5D8B803FF8BF803FCAE169 -:105A8600803F73ED803FCAE1803FF8BF803F5D8B6A -:105A9600803F3149803F0000803FF16D7F3F75EACE -:105AA6007E3F4C827E3F833F7E3F84287E3F833FFE -:105AB6007E3F4C827E3F75EA7E3FF16D7F3F000060 -:105AC600803F3F4D36394305F604C00487041A0467 -:105AD60033044C04650401020304050607080900A3 -:00000001FF diff --git a/keyboards/planck/keymaps/unicode/compiled.hex b/keyboards/planck/keymaps/unicode/compiled.hex deleted file mode 100644 index ad9501276..000000000 --- a/keyboards/planck/keymaps/unicode/compiled.hex +++ /dev/null @@ -1,1206 +0,0 @@ -:100000000C94B3040C94F7040C94F7040C94F704C8 -:100010000C94F7040C94F7040C94F7040C94F70474 -:100020000C94F7040C94F7040C9426100C94F8101C -:100030000C940F1E0C94F7040C94F7040C94F70422 -:100040000C94F7040C9458050C94F7040C94F704E2 -:100050000C94F7040C94771E0C94F7040C94F7049A -:100060000C94F7040C94F7040C94F7040C94F70424 -:100070000C94F7040C94F7040C94F7040C94F70414 -:100080000C94F7040C94F7040C94F7040C94F70404 -:100090000C94F7040C94F7040C94F7040C94F704F4 -:1000A0000C94F7040C94F7040C94F704BE05C605F1 -:1000B000D005D805E705F1052E062E062E062E06DC -:1000C0002E062E06FF0522062A06651187117512D7 -:1000D00087117512CC11EF11751244125712411588 -:1000E000411570157015AF15CF1525172517DA15A1 -:1000F00025178A168A16F116FA1625171F1797164E -:100100009716971697169716971697169716971687 -:100110009716971697169716971697169716A71667 -:10012000B516BC16C316CD16000000000000000076 -:10013000000000010204060A0F17202C3A4A5D71E4 -:10014000879DB3C7DAE9F5FCFFFCF5E9DAC7B39D93 -:1001500087715D4A3A2C20170F0A0604020100003D -:10016000000000000000000001080115010901194C -:100170000112010F02080215020902190212020FF0 -:10018000002B0014001A000800150017001C0018AE -:10019000000C00120013002A0029000400160007BA -:1001A0000009000A000B000D000E000F00330034A0 -:1001B00000E1001D001B00060019000500110010E1 -:1001C0000036003700380028000530E000E200E388 -:1001D0000003302C002C0004305000510052004F1E -:1001E000002B00718077806680708067806A806CE9 -:1001F00080758079803B80088029006180728073DF -:10020000807480648068806E80658069806F8027DC -:1002100080E1007A8078806380768062806B806D78 -:10022000802C802E802F8028000100E000E200E377 -:100230000003302C002C0004305000510052004FBD -:10024000002B0034003600370013001C0009000AA0 -:1002500000060015000F002A002900040012000803 -:100260000018000C0007000B0017001100160038E2 -:1002700000E100330014000D000E001B000500100B -:10028000001A0019001D0028000530E000E200E31C -:100290000003302C002C0004305000510052004F5D -:1002A0000035021E021F0220022102220223022424 -:1002B000022502260227022A004C003A003B003C9D -:1002C000003D003E003F002D022E022F0230023181 -:1002D000020100400041004200430044004500018B -:1002E0000001000100010001000100010001000106 -:1002F000000100010001000100AB00AA00A900AE4E -:100300000035001E001F00200021002200230024D1 -:10031000002500260027002A004C003A003B003C44 -:10032000003D003E003F002D002E002F0030003128 -:10033000000100400041004200430044004500012C -:1003400000010001000100010001000100010001A5 -:10035000000100010001000100AB00AA00A900AEED -:10036000001E001E001E001E001E001E001E001E9D -:10037000001E001E001E001E00000014001A0008CF -:1003800000150017001C0018000C00120013002FAD -:10039000000E3004001600070009000A000B000DD3 -:1003A000000E000F00330034000D30000000000686 -:1003B0000019000000000011001000000000000003 -:1003C000000000000000000000000000000000002D -:1003D000000000000000000000000000000000001D -:1003E000000000000000000000000000000000000D -:1003F00000000000000000000000000000000000FD -:1004000000000000000000000000000000000000EC -:1004100000000000000000000000000000000000DC -:1004200000000000000000000000000000000000CC -:1004300000000000000000000000000000000000BC -:1004400000000000000000000000000000000000AC -:10045000000000000000000000000000000000009C -:10046000000000000000000000000000000000008C -:10047000000000000000000000000000000000007C -:10048000000000000000000000000000000000006C -:10049000000000000000000000000000000000005C -:1004A000000000000000000000000000000000004C -:1004B000000000000000000000000000000000003C -:1004C000000000000000000000000000000000002C -:1004D000000000000000000000000000000000001C -:1004E000000000000000000000000000000000000C -:1004F00000000000000000000000000000000000FC -:1005000000000000000000000000000000000000EB -:1005100000000000000000000000000000000000DB -:1005200000000000000000000000000000000000CB -:1005300000000000000000000000000000000000BB -:1005400000000000000000000000000000000000AB -:10055000000000000000000000000000000000009B -:10056000000000000000000000000000000000008B -:10057000000000000000000000000000000000007B -:10058000000000000000000000000000000000006B -:10059000000000000000000000000000000000005B -:1005A000000000000000000000000000000000004B -:1005B000000000000000000000000000000000003B -:1005C000000000000000000000000000000000002B -:1005D000000000000000000000000000000000001B -:1005E000000000000000000000000000000000000B -:1005F00000000000000000000000000000000000FB -:1006000000000000000000000000000000000000EA -:1006100000000000000000000000000000000000DA -:1006200000000000000000000000000000000000CA -:1006300000000000000000000000000000000000BA -:1006400000000000000000000000000000000000AA -:10065000000000000000000000000000000000009A -:10066000000000000000000000000000000000008A -:10067000000000000000000000000000000000007A -:10068000000000000000000000000000000000006A -:10069000000000000000000000000000000000005A -:1006A000000000000000000000000000000000004A -:1006B000000000000000000000000000000000003A -:1006C000000000000000000000000000000000002A -:1006D000000000000000000000000000000000001A -:1006E000000000000000000000000000000000000A -:1006F00000000000000000000000000000000000FA -:1007000000000000000000000000000000000000E9 -:1007100000000000000000000000000000000000D9 -:1007200000000000000000000000000000000000C9 -:1007300000000000000000000000000000000000B9 -:1007400000000000000000000000000000000000A9 -:100750000000000000000000000000000000000099 -:100760000000000000000000000000000000000089 -:100770000000000000000000000000000000000079 -:1007800000010000700100010001000100010001F2 -:10079000000100010001004C0001000100010015F2 -:1007A00070167013700A700030013002300C300186 -:1007B0000001001C701B70187019701D701E7001F4 -:1007C0000001000100010001000100010001000121 -:1007D0000001000100010001000100010001000111 -:1007E000002803540068006500200050006C006180 -:1007F000006E0063006B0020004B00650079006212 -:10080000006F0061007200640000002C034F007252 -:1008100000740068006F006C0069006E0065006184 -:1008200000720020004B006500790062006F0061DB -:1008300000720064007300000004030904090254FC -:1008400000030100A0FA09040000010301010009EE -:1008500021110100012240000705810308000A0957 -:100860000401000103010200092111010001224DD0 -:10087000000705820308000A0904020001030000C2 -:100880000009211101000122360007058303080039 -:100890000A1201100100000008EDFE606001000175 -:1008A00002000105010980A101850216010026B799 -:1008B000001A01002AB700751095018100C0050CCF -:1008C0000901A1018503160100269C021A01002AD4 -:1008D0009C02751095018100C005010902A1010962 -:1008E00001A10005091901290515002501950575C6 -:1008F0000181029501750381010501093009311556 -:1009000081257F95027508810609381581257F9517 -:100910000175088106050C0A38021581257F9501AD -:1009200075088106C0C005010906A101050719E087 -:1009300029E71500250195087501810295017508C3 -:100940008101050819012905950575019102950197 -:10095000750391010507190029FF150026FF009571 -:100960000675088100C011241FBECFEFDAE0DEBF9C -:10097000CDBF04B603FE24C08091E7019091E80149 -:10098000A091E901B091EA018730904BA740B04BAC -:10099000B9F41092E7011092E8011092E901109267 -:1009A000EA0114BE84B7877F84BF88E10FB6F8944C -:1009B00080936000109260000FBEE0E0F8E30995BC -:1009C00011E0A0E0B1E0ECE0FBE402C005900D9284 -:1009D000AE33B107D9F711E0AEE3B1E001C01D922B -:1009E000A73EB107E1F70E94700D0C9484250C948A -:1009F0000000089581E0089508950C94F9040C9482 -:100A0000FA040C94FC040E94FA2323E030E0281B33 -:100A10003109220F209342010895282F2F988091A9 -:100A20008000211108C0877F8093800010928D0084 -:100A300010928C001BC0886080938000233019F4D2 -:100A40008FEF9FEF0FC083E090E0821B9109880F2A -:100A5000991F2FEF3FEFA90102C0569547958A9540 -:100A6000E2F7CA0190938D0080938C000C940305EB -:100A70000E94030584E08093410110923E01089595 -:100A8000279A2F988FEF9FEF90938700809386008F -:100A90008AE08093800089E1809381000E94632333 -:100AA0000C9438050E9440056E9A769A0C94340690 -:100AB0001F920F920FB60F9211242F933F938F9393 -:100AC0009F93EF93FF93E0913F01F0914001CF019D -:100AD00001969093400180933F010090410102C034 -:100AE000F695E7950A94E2F7EF7380913E01823024 -:100AF00019F4E03251F404C0813039F4EF3329F4B1 -:100B000080916F008D7F80936F00F0E0E85DFE4F75 -:100B1000E49121E031E0E29FC001E39F900D1124B8 -:100B20000090420102C0969587950A94E2F790934F -:100B30008D0080938C00FF91EF919F918F913F9159 -:100B40002F910F900FBE0F901F901895CF93DF93AA -:100B5000EC010E94091FBE0180E090E0DF91CF917F -:100B60000C94501B462F50E04F30510508F076C0D2 -:100B7000DC01FA01EA5AFF4F0C94342512968C914D -:100B8000882309F46BC081E090E007C012968C9135 -:100B9000882309F463C082E090E00E94A6055EC04D -:100BA00012968C91882309F459C084E090E0F5CF27 -:100BB00012968C91882311F083E00EC083E00E948E -:100BC000EE1B40E164E083E00E94350847C01296C6 -:100BD0008C91882321F084E00E94CD1BF2CF84E029 -:100BE000EECF12968C91882331F085EE0E94E513AA -:100BF0000E94BA2333C085EE0E94AD142FC0129616 -:100C00008C91882359F184E00E94EE1B83E00E94BE -:100C1000EE1B80E10E94EE1B85E00E94CD1B0E942E -:100C2000F61E811102C00E94D71E0E940E1F90E086 -:100C30009093D8018093D70180688093D7010E9458 -:100C4000121F0CC012968C91882341F085E00E94FF -:100C5000EE1B04C012968C91811103C080E090E0DD -:100C6000089588E691E00895089581E008950C9430 -:100C700035060895282F882339F090E02A3010F4A3 -:100C80004D9608950697089587E290E00895AF92F3 -:100C9000BF92DF92EF92FF920F931F93CF93DF9358 -:100CA0008C01FC01C081D181CE010E94891CBE0152 -:100CB0000E941B0AEC01B8010E943706882309F440 -:100CC000C9C1F8018281882309F4BEC080914F0117 -:100CD00081111FC0C431F0E7DF0709F0B5C10E94E0 -:100CE000390681E080934F010E94411E90934E018E -:100CF00080934D01109246011092480110924701D5 -:100D000010924A011092490110924C0110924B012D -:100D1000A1C180914D0190914E010E944D1E883CD1 -:100D2000910570F480914601E82FF0E0EE0FFF1F6F -:100D3000E95BFE4FD183C0838F5F809346018AC1F8 -:100D4000C13020E8D20708F451C0F801828188231D -:100D500009F47EC05E01E894B7F8809145018130C6 -:100D600079F050F08230C1F482EE0E94E51387E5FD -:100D70000E94E51387E50EC082EE0E94E5130CC0C9 -:100D800080EE0E94E51381EE0E94E51388E10E9447 -:100D9000E51388E10E94AD148CE0E82EF12CC5012A -:100DA0000E2C02C0969587950A94E2F78F700E94E8 -:100DB0003A06D82E0E94E5138D2D0E94AD14F4E062 -:100DC000EF1AF1082CEFE2162FEFF20641F78091AF -:100DD0004501813029F010F0823041F482EE04C0E8 -:100DE00080EE0E94AD1481EE0E94AD14C43180E704 -:100DF000D80768F4C23090E7D90708F046C0C1159B -:100E0000E0E7DE0771F0C130D047A1F10CC1C33378 -:100E100020E7D20709F4D8C0C433D04709F4EBC0A7 -:100E200002C1F8018281882309F402C10E9490174F -:100E3000FFEF24E38CE0F15020408040E1F700C058 -:100E400000000E949C1E06C1C13080E8D80770F2E5 -:100E5000C43120E7D20708F0B3C0C23080E7D8071A -:100E6000A0F4C11590E7D90709F4E2C0C130D0471A -:100E700009F0D9C0F8018281882309F4D9C0809192 -:100E8000C60181608093C601E5C0F8018281882394 -:100E900009F4CEC00E94F61E811102C00E94D71E26 -:100EA0000E940E1F90E09093D8018093D701C2302A -:100EB000F0E7DF0721F48091D70181607AC0C33069 -:100EC00020E7D20721F48091D701826072C0C4303C -:100ED00080E7D80721F48091D70184606AC0C530CB -:100EE00090E7D90719F48091D70127C0C630E0E711 -:100EF000DE0721F48091D70180615BC0C730F0E745 -:100F0000DF0721F48091D701806253C0C83020E709 -:100F1000D20721F48091D70180644BC0C93080E7AB -:100F2000D80721F48091D701806843C0CA3090E788 -:100F3000D90729F48091D701846088603AC0CB300A -:100F4000E0E7DE0721F48091D7018E7F32C0CC30FC -:100F5000F0E7DF0721F48091D7018D7F2AC0CD30E3 -:100F600020E7D20721F48091D7018B7F22C0CE30B9 -:100F700080E7D80719F48091D7011AC08091D70172 -:100F8000CF3090E7D90711F48F7E13C0C031E0E76E -:100F9000DE0711F48F7D0DC0C131F0E7DF0711F4DA -:100FA0008F7B07C0C231D04711F48F7702C08B7F8F -:100FB000877F8093D7018091D7010E94121F4AC07A -:100FC000C333F0E7DF07A1F4F8018281882321F021 -:100FD0001092430182E016C080914301811106C046 -:100FE00086E20E94E51386E20E94AD1482E018C0FA -:100FF000C433D047C1F4F8018281882331F01092C4 -:10100000440180E20E94FC1425C0809144018111BA -:1010100006C087E20E94E51387E20E94AD1480E2D9 -:101020000E94031517C081E080934301809344011F -:10103000C801DF91CF911F910F91FF90EF90DF904A -:10104000BF90AF900C94FF04C130F0E8DF0708F0C8 -:1010500081CECCCE80E0DF91CF911F910F91FF9098 -:10106000EF90DF90BF90AF900895CF92DF92EF9214 -:10107000FF920F931F9301E010E020E030E0680141 -:10108000790104C0CC0CDD1CEE1CFF1C8A95D2F744 -:1010900004C0000F111F221F331F6A95D2F70C29BD -:1010A0001D292E293F29C090B101D090B201E090B6 -:1010B000B301F090B401C022D122E222F322842FA6 -:1010C000C016D106E206F30641F41F910F91FF907E -:1010D000EF90DF90CF900C94CD1B1F910F91FF905C -:1010E000EF90DF90CF900C94EE1B0C9452050C9473 -:1010F000FD042CE0729FF001112430E3839FE00D8A -:10110000F11D1124E60FF11DEE0FFF1FEF57FE4FEB -:10111000859194910E942D0A811540E5940708F06D -:1011200047C0811520E4920708F013C1883E91055D -:1011300020F5803E910508F07CC1883A910578F44D -:10114000853A910508F0A5C08130910509F471C177 -:1011500008F42EC18430910508F06BC129C18B3B86 -:10116000910508F4A1C0803C910508F421C1FC015F -:10117000EE0FFF1FEF5FFF4FE6C0811530E29307D0 -:1011800058F4811541E0940708F053C1803F910560 -:1011900008F40EC190650895811520E3920708F0C8 -:1011A000D5C0FC01FF70EE0FFF1FEF57FE4FCBC005 -:1011B000811535E5930708F043C0811544E5940790 -:1011C00008F0DEC0811522E5920708F5811531E5AA -:1011D000930708F0C1C0482F437021E030E002C0FF -:1011E000220F331F4A95E2F73C68AC0164E0569544 -:1011F00047956A95E1F74370342B8F7086958695F5 -:1012000040E2849FC0011124822B932B0895282F44 -:1012100026952695AC01437055278115934508F016 -:10122000A0C080E2289F9001112481E090E002C0DC -:10123000880F991F4A95E2F7822B932B9C6808959B -:101240008F3240E7940790F48F3120E7920708F03F -:10125000A2C0811536E5930708F497C09C0130566B -:101260002115304108F0A4C09F7093C0803320E75F -:10127000920709F497C008F492C0813340E79407BD -:1012800009F493C08233904709F092C080E093ED57 -:101290000895853A910509F48EC0863A910509F0C2 -:1012A0008DC082E890E40895883A910509F489C0D8 -:1012B000893A910509F488C08A3A910509F487C0F2 -:1012C0008B3A910509F486C08C3A910509F485C0E2 -:1012D0008D3A910509F484C0803B910509F483C0DF -:1012E0008E3A910509F482C08F3A910509F481C0C4 -:1012F000813B910509F480C0823B910509F47FC0D0 -:10130000833B910509F47EC0843B910509F47DC0BF -:10131000853B910509F47CC0863B910509F47BC0AF -:10132000873B910509F47AC0883B910509F479C09F -:10133000893B910509F478C08A3B910509F477C08F -:1013400080E094E408958591949108959927906C94 -:1013500008959F70906A0895982F8827816F906AEA -:10136000089590E2299F9001112481E090E002C04D -:10137000880F991F4A95E2F7822B932B9A6808955C -:10138000982F8827846F906A08958F719927982FD6 -:101390008827906208958F519047946D089580E05A -:1013A00091ED089580E090ED089580E092ED08952C -:1013B00080E090E0089581E890E4089583E890E467 -:1013C000089582EE94E4089589EE94E408958AEEF7 -:1013D00094E4089585EB94E4089586EB94E40895ED -:1013E00087EB94E408958CEC94E408958DEC94E4F8 -:1013F000089583E895E408958AE895E4089582E9DC -:1014000095E4089584E995E4089581E296E40895C9 -:1014100083E296E4089584E296E4089585E296E4F2 -:10142000089586E296E4089587E296E408958AE2B4 -:1014300096E4089508959CE0799FF001112490E3CB -:10144000899FE00DF11D1124E60FF11DEE0FFF1F26 -:10145000EF57FE4F8591949108958238910549F197 -:10146000B0F48133910509F458C048F489329105EC -:1014700009F44EC08A32910509F454C008958533A9 -:10148000910509F440C08933910599F00895833E90 -:10149000910529F138F4803E910591F0823E910545 -:1014A000A1F00895863E9105F9F0873E910531F14E -:1014B00008952091D70120FD3AC021FD38C008953C -:1014C0008091D70180FD35C032C08091D70182FF65 -:1014D00032C08091D70184FD30C083EE39C0809145 -:1014E000D70182FD28C0F5CF8091D70183FF27C0A7 -:1014F0008091D70184FD21C087EE2AC08091D70159 -:1015000083FD1DC0F5CF8091D70185FD1AC01BC09A -:101510008091D70185FD17C014C08091D70186FD49 -:1015200014C015C08091D70186FD11C00EC080EE99 -:101530000FC089E30DC082EE0BC080E009C086EECB -:1015400007C089E205C085E303C08AE201C081E3E8 -:1015500090E008950C940105E82FF0E0E05EFE4F66 -:101560008081E82FEF70F0E082958F7021E030E00D -:10157000A90102C0440F551F8A95E2F740A30895C0 -:101580000F931F93CF93DF93C3E0D0E001E010E00F -:10159000FE01E05EFE4F8081E82FEF70F0E021A1B8 -:1015A00082958F70A80102C0440F551F8A95E2F7FB -:1015B000CA01822B81A38C2F0E94AC0A219740F78D -:1015C0008BE090E061E070E0FC01EC5EFE4F20817A -:1015D000E22FEF70F0E042A122952F70DB0102C0F4 -:1015E000AA0FBB1F2A95E2F79D01242B22A3019786 -:1015F00058F7DF91CF911F910F9108950F931F938B -:10160000CF93DF9385B7806885BF85B7806885BF36 -:10161000C3E0D0E001E010E0FE01E05EFE4F80811B -:10162000E82FEF70F0E021A182958F70A80102C031 -:10163000440F551F8A95E2F7CA01822B81A38C2F94 -:101640000E94AC0A219740F78BE090E061E070E0E7 -:10165000FC01EC5EFE4F2081E22FEF70F0E042A132 -:1016600022952F70DB0102C0AA0FBB1F2A95E2F75B -:101670009D01242B22A3019758F7DF91CF911F9151 -:101680000F910C947508EF92FF920F931F93CF93D5 -:10169000DF9308E511E0C3E0EE24E394F12CD5E0FC -:1016A0008C2F0E94AC0A8BE090E040E050E0FC01FF -:1016B000EC5EFE4F6081E62FEF70F0E020A130E09D -:1016C00062956F7002C0359527956A95E2F720FD07 -:1016D00009C09701082E02C0220F331F0A94E2F7B7 -:1016E000422B532B019718F7F801929182918F01A9 -:1016F0008417950721F051834083D09300018C2FEC -:101700000E94AC0AC15060F68091000187FD2CC098 -:101710008150809300018F3F39F08FE99FE001975E -:10172000F1F700C0000020C0809156019091570150 -:1017300090935F0180935E018091540190915501D7 -:1017400090935D0180935C018091520190915301CF -:1017500090935B0180935A018091500190915101C7 -:1017600090935901809358010E94770881E0DF919E -:10177000CF911F910F91FF90EF900895E82FF0E027 -:10178000EE0FFF1FE85AFE4F808191810895089562 -:101790000F931F93CF9300E611E0C0E0F801929100 -:1017A00082918F010E94BA1DC80FF1E008351F0712 -:1017B000A9F78C2FCF911F910F9108958091680107 -:1017C0000895CF93DF9300D01F92CDB7DEB79C0171 -:1017D0008091DD01843019F593E099833B832A835E -:1017E0009093E9008FEF9091E800815095FD06C03D -:1017F00095ED9A95F1F700008111F5CF8091E80001 -:1018000085FF0DC040E050E063E070E0CE0101963E -:101810000E94160E8091E8008E778093E8000F906A -:101820000F900F90DF91CF910895CF93DF9300D069 -:101830001F92CDB7DEB72091DD01243021F522E0E3 -:1018400029839B838A8383E08093E9008FEF9091C3 -:10185000E800815095FD06C095ED9A95F1F70000DE -:101860008111F5CF8091E80085FF0DC040E050E088 -:1018700063E070E0CE0101960E94160E8091E800B0 -:101880008E778093E8000F900F900F90DF91CF91AB -:1018900008952091DD012430F1F422E02093E90045 -:1018A0002FEF3091E800215035FD06C035ED3A9517 -:1018B000F1F700002111F5CF2091E80025FF0BC0C2 -:1018C00040E050E065E070E00E94160E8091E80074 -:1018D0008E778093E8000895CF93DF932091DD0108 -:1018E000243039F521E02093E9002FEF3091E80012 -:1018F000215035FD06C035ED3A95F1F70000211174 -:10190000F5CF2091E80025FF14C0EC0140E050E045 -:1019100068E070E00E94160E8091E8008E77809358 -:10192000E80088E0FE01A0E6B1E001900D928A9502 -:10193000E1F7DF91CF9108958091DC01811109C019 -:101940000E94AB0F0E9408108091E2008460809397 -:10195000E20008951092DC010895089508950C9412 -:10196000041E42E061EC81E00E94250F42E061EC40 -:1019700082E00E94250F42E061EC83E00C94250F89 -:101980008091DF01833009F453C030F4813071F06D -:10199000823009F48CC008958A3009F478C08B3005 -:1019A00009F45EC0893009F09AC020C08091DE0140 -:1019B000813A09F094C08091E800877F8093E80025 -:1019C0008091E2019091E301892B21F468E080E6A7 -:1019D00091E003C060E080E090E070E00E94610E62 -:1019E0008091E8008B778093E80008958091DE0174 -:1019F000813209F074C08091E2019091E301892B5A -:101A000009F06DC08091E800877F8093E8008091A5 -:101A1000E80082FD05C08091DD018111F8CF5FC033 -:101A20008091F100809368018091E8008B7753C02A -:101A30008091DE01813A09F052C08091E2019091DB -:101A4000E301892B09F04BC08091E800877F8093E8 -:101A5000E8008091E80080FFFCCF80910B0136C048 -:101A60008091DE018132D9F58091E2019091E3010C -:101A7000892BA9F58091E800877F8093E8000E9478 -:101A80005A0F8091E00180930B010C949017809184 -:101A9000DE01813221F58091E800877F8093E800A4 -:101AA0000E945A0F8091E10180936901089580910D -:101AB000DE01813AA1F48091E800877F8093E800FD -:101AC0008091E80080FFFCCF809169018093F10054 -:101AD0008091E8008E778093E8000C945A0F089567 -:101AE00084B7877F84BF88E10FB6F8948093600045 -:101AF000109260000FBE80E8809361001092610038 -:101B00000E94FD120E94AB0F0E9408108091E2001B -:101B100084608093E20078940E948E120E94FF12EB -:101B200081E091E00E94A9128091DD01853069F485 -:101B30000E94C61D8091DB018823B1F30E94F31D32 -:101B4000882391F30E94000EEFCF0E940713ECCF81 -:101B5000292F332723303105C9F064F421303105B2 -:101B600081F02230310509F043C084E590E02DE397 -:101B700038E042C021323105F1F02232310541F125 -:101B800037C082E190E021E938E036C09927813002 -:101B9000910541F08230910541F0892B49F5E9E347 -:101BA000F8E005C0EBE0F8E002C0E1EEF7E0849178 -:101BB00090E09F0121C06330D8F4E62FF0E0EE0FF3 -:101BC000FF1FE35DFE4F2081318189E090E014C06A -:101BD000633070F470E0FB01EE0FFF1FE95DFE4F14 -:101BE00020813181FB01EC5DFE4F808190E004C0DB -:101BF00080E090E020E030E0FA0131832083089516 -:101C000080E189BD82E189BD09B400FEFDCF8091EC -:101C1000D8008F7D8093D8008091E000826080930F -:101C2000E0008091E00081FDFCCF0895CF92DF922B -:101C3000EF92FF920F931F93CF93DF93EC018B01F1 -:101C40006A010E94790F811133C0C114D10439F0A7 -:101C5000F60180819181081B190BC80FD91FE12C57 -:101C6000F12C0115110519F18091E80085FD16C0D0 -:101C70008091E8008E778093E800C114D10449F088 -:101C8000F60180819181E80EF91EF182E08285E003 -:101C90000FC00E94790F882321F30AC08991809395 -:101CA000F10001501109FFEFEF1AFF0ADACF80E0CF -:101CB000DF91CF911F910F91FF90EF90DF90CF9028 -:101CC00008952091E4013091E5012617370748F087 -:101CD0006115710539F42091E8002E772093E80012 -:101CE00001C0B90140E061157105A9F12091DD0144 -:101CF000222309F443C0253009F442C02091E800B2 -:101D000023FD40C02091E80022FD32C02091E80070 -:101D100020FFE9CF4091F3002091F20030E0342B16 -:101D2000FC01CF016115710559F02830310540F4EF -:101D300081918093F100615071092F5F3F4FF1CF86 -:101D400041E02830310509F040E02091E8002E778D -:101D50002093E800C8CF4111C9CF0AC08091DD01AE -:101D6000882361F0853061F08091E80083FD0AC02E -:101D70008091E80082FFF2CF80E0089582E008952C -:101D800083E0089581E008952091E4013091E50118 -:101D90002617370748F06115710539F42091E800DE -:101DA0002E772093E80001C0B901FC0120E0611505 -:101DB000710591F18091DD01882309F440C08530DF -:101DC00009F43FC08091E80083FD3DC08091E800A8 -:101DD00082FD2FC08091E80080FFE9CF2091F300C1 -:101DE0008091F20090E0922B6115710559F08830D6 -:101DF000910540F424912093F100319661507109CE -:101E00000196F2CF21E0089709F020E08091E800E8 -:101E10008E778093E800CBCF2111CCCF0AC0809180 -:101E2000DD01882361F0853061F08091E80083FD59 -:101E30000AC08091E80082FFF2CF80E0089582E03E -:101E4000089583E0089581E00895982F973058F51C -:101E50009093E900981739F07091EC002091ED0013 -:101E60005091F00003C0242F762F50E021FF19C0BD -:101E70003091EB003E7F3093EB003091ED003D7FE1 -:101E80003093ED003091EB0031603093EB007093B4 -:101E9000EC002093ED005093F0002091EE0027FF1E -:101EA00007C09F5FD3CF8F708093E90081E00895D2 -:101EB00080E008958091DE0187FF11C08091E800E5 -:101EC00082FD05C08091DD018111F8CF11C08091A4 -:101ED000E8008B770BC08091DD01882349F0809169 -:101EE000E80080FFF8CF8091E8008E778093E800CB -:101EF00008952091E4003091E50095E64091EC00D2 -:101F0000842F817040FF22C08091E80080FD1CC0BA -:101F10008091DD01882391F0853091F08091EB0074 -:101F200085FD10C04091E4005091E5004217530731 -:101F300029F39A01915011F784E0089582E0089501 -:101F400083E0089581E0089580E008954091E800DD -:101F500042FFDECF08950E9419100E942110E0EE8A -:101F6000F0E0808181608083E8EDF0E080818F7710 -:101F7000808319BCA7EDB0E08C918E7F8C9380811B -:101F80008F7E80831092DC0108950F931F93CF936F -:101F9000DF930E9419100E942110C8EDD0E08881C3 -:101FA0008F77888388818068888388818F7D888304 -:101FB00019BC1092DD011092D9011092DB01109230 -:101FC000DA0100EE10E0F80180818B7F8083888148 -:101FD0008160888342E060E080E00E94250FE1EEAE -:101FE000F0E080818E7F8083E2EEF0E0808181608E -:101FF0008083808188608083F80180818E7F8083E8 -:10200000888180618883DF91CF911F910F9108951E -:10201000E8EDF0E080818F7E8083E7EDF0E0808165 -:102020008160808384E082BF81E08093DC010C9436 -:10203000C50FE8EDF0E080818E7F80831092E20092 -:1020400008951092DA001092E10008951F920F9205 -:102050000FB60F9211242F933F934F935F936F937B -:102060007F938F939F93AF93BF93EF93FF93809151 -:10207000E10082FF0BC08091E20082FF07C08091E7 -:10208000E1008B7F8093E1000E948D128091DA0045 -:1020900080FF1FC08091D80080FF1BC08091DA00B4 -:1020A0008E7F8093DA008091D90080FF0DC080E19F -:1020B00089BD82E189BD09B400FEFDCF81E0809336 -:1020C000DD010E949C0C05C019BC1092DD010E942C -:1020D000AA0C8091E10080FF19C08091E20080FF8E -:1020E00015C08091E2008E7F8093E2008091E20033 -:1020F00080618093E2008091D80080628093D80054 -:1021000019BC85E08093DD010E94AE0C8091E10056 -:1021100084FF30C08091E20084FF2CC080E189BD43 -:1021200082E189BD09B400FEFDCF8091D8008F7D8A -:102130008093D8008091E1008F7E8093E1008091B0 -:10214000E2008F7E8093E2008091E20081608093C4 -:10215000E2008091D901882311F084E007C08091CA -:10216000E30087FD02C081E001C083E08093DD01D0 -:102170000E94AF0C8091E10083FF29C08091E200B2 -:1021800083FF25C08091E100877F8093E10082E09A -:102190008093DD011092D9018091E1008E7F8093C0 -:1021A000E1008091E2008E7F8093E2008091E20066 -:1021B00080618093E20042E060E080E00E94250FB1 -:1021C0008091F00088608093F0000E94AD0CFF9138 -:1021D000EF91BF91AF919F918F917F916F915F919F -:1021E0004F913F912F910F900FBE0F901F90189518 -:1021F0001F920F920FB60F9211242F933F934F937C -:102200005F936F937F938F939F93AF93BF93CF937E -:10221000DF93EF93FF93C091E900CF708091EC00C2 -:10222000D82FD17080FDD0E81092E9008091F000A5 -:10223000877F8093F00078940E943C111092E9000F -:102240008091F00088608093F000CD2BCF70C09318 -:10225000E900FF91EF91DF91CF91BF91AF919F91F5 -:102260008F917F916F915F914F913F912F910F903F -:102270000FBE0F901F9018951F93CF93DF93CDB78C -:10228000DEB7AA970FB6F894DEBF0FBECDBFEEED56 -:10229000F1E088E08E0F9091F10091938E13FBCFC7 -:1022A0000E94C00C8091E80083FF1FC18091DE0175 -:1022B0009091DF01492F50E04A30510508F015C1D7 -:1022C000FA01EB59FF4F0C943425803881F08238A5 -:1022D00009F00BC18091E2018F708093E900809139 -:1022E000EB0085FB882780F91092E90006C08091F9 -:1022F000DA019091DB01911182609091E800977F63 -:102300009093E8008093F1001092F100C8C0282F4C -:102310002D7F09F0EAC0882319F0823061F0E5C012 -:102320008091E001813009F0E0C0933009F080E055 -:102330008093DB012BC08091E001811127C0809147 -:10234000E2018F7009F4D1C08093E9002091EB0085 -:1023500020FF1CC0933021F48091EB00806214C0F8 -:102360009091EB0090619093EB0021E030E0A901A7 -:1023700002C0440F551F8A95E2F74093EA0010927D -:10238000EA008091EB0088608093EB001092E900F6 -:102390008091E800877F86C08111A7C01091E0017D -:1023A0001F778091E3008078812B8093E3008091F8 -:1023B000E800877F8093E8000E945A0F8091E80030 -:1023C00080FFFCCF8091E30080688093E3001111CF -:1023D00002C082E001C083E08093DD0186C08058A6 -:1023E000823008F082C08091E0019091E1018C3D43 -:1023F00053E0950779F583E08A838AE289834FB7B2 -:10240000F894DE01139620E03EE051E2E32FF0E085 -:1024100050935700E49120FF03C0E295EF703F5FB7 -:10242000EF708E2F90E0EA3010F0C79601C0C09692 -:102430008D939D932F5F243149F74FBF8091E80022 -:10244000877F8093E8006AE270E0CE0101960E94E7 -:10245000610E14C0AE014F5F5F4F6091E2010E94B8 -:10246000A80DBC01009709F440C09091E800977F47 -:102470009093E80089819A810E94C40E8091E800BF -:102480008B778093E80031C0803879F58091E8003F -:10249000877F8093E8008091D9018093F10080913B -:1024A000E8008E778093E8000E945A0F1EC08111C9 -:1024B0001CC09091E0019230C0F48091E800877FC9 -:1024C0008093E8009093D9010E945A0F8091D9011E -:1024D000811106C08091E30087FD02C081E001C048 -:1024E00084E08093DD010E94B10C8091E80083FFBD -:1024F0000AC08091E800877F8093E8008091EB001C -:1025000080628093EB00AA960FB6F894DEBF0FBEF0 -:10251000CDBFDF91CF911F9108950895CF93809102 -:10252000DD018823A1F0C091E900CF709091EC000B -:10253000892F817090FD80E8C82B1092E90080916E -:10254000E80083FD0E943C11CF70C093E900CF9159 -:10255000089590936F0180936E010895E0916E014C -:10256000F0916F01309721F00190F081E02D0994F6 -:1025700080E00895E0916E01F0916F01309721F0B5 -:102580000280F381E02D09940895E0916E01F091AD -:102590006F01309721F00480F581E02D09940895B2 -:1025A00020916C0130916D018217930771F0909327 -:1025B0006D0180936C01E0916E01F0916F01309795 -:1025C00021F00680F781E02D0994089520916A0199 -:1025D00030916B018217930771F090936B01809398 -:1025E0006A01E0916E01F0916F01309721F0008453 -:1025F000F185E02D0994089508950C94FC120E9431 -:10260000381E0E94FE0A0E94BE1E0C9463235F9235 -:102610006F927F928F929F92AF92BF92CF92DF92F2 -:10262000EF92FF920F931F93CF93DF9300D000D0D0 -:102630001F92CDB7DEB70E94430B99E7C92E91E0F8 -:10264000D92E03E010E0AA24A394B12C502E802FA1 -:102650000E94BE0B4C01F601729062906F016826D9 -:10266000792661147104A1F40150110978F78FEFF4 -:1026700089838A831B820E94411E8160782F9D83FB -:102680008C8349815A816B818D810E94B71338C038 -:102690008091C60181FD0E94C70B2BE030E07501DF -:1026A000022E02C0EE0CFF1C0A94E2F7C70186213D -:1026B0009721892B09F129835A828E209F2091E04E -:1026C000892809F490E09B830E94411E8160782F45 -:1026D0009D838C8349815A816B818D810E94B713C0 -:1026E000000F111FF801EF58FE4F80819181E826FD -:1026F000F926F182E08204C02150310980F6B4CF7E -:102700000E949A20109170010E94AE121817D1F009 -:102710000E94AE12809370010F900F900F900F9057 -:102720000F90DF91CF911F910F91FF90EF90DF906D -:10273000CF90BF90AF909F908F907F906F905F9061 -:102740000C94AA0A0F900F900F900F900F90DF91AA -:10275000CF911F910F91FF90EF90DF90CF90BF909E -:10276000AF909F908F907F906F905F900895CF93E0 -:10277000DF93CDB7DEB72B970FB6F894DEBF0FBE51 -:10278000CDBF4F83588769877A878B87DE01119683 -:1027900086E0FD0111928A95E9F785E0FE01379602 -:1027A00001900D928A95E1F749815A816B817C8174 -:1027B0008D819E810E942E1A2B960FB6F894DEBF53 -:1027C0000FBECDBFDF91CF910895CF93882309F439 -:1027D000C2C0C82F823859F40E94AE1281FDBBC01E -:1027E00089E30E94081D0E948B1D89E30CC0833879 -:1027F00079F40E94AE1280FDAEC083E50E94081DF0 -:102800000E948B1D83E50E94251DCF910C948B1D8A -:10281000843859F40E94AE1282FD9DC087E40E9464 -:10282000081D0E948B1D87E4EECF8CEF8C0F813A40 -:1028300048F48C2F0E94CC2281118DC08C2F0E94D5 -:10284000081DE3CF80E28C0F883048F4C77081E028 -:1028500001C0880FCA95EAF70E94441DD6CF8BE5C8 -:102860008C0F833078F4C53A29F0C63A31F083E80A -:1028700090E005C081E890E002C082E890E0CF914E -:102880000C94D01288E58C0F833108F064C0C83AEC -:1028900039F1C93A41F1CA3A49F1CB3A51F1CC3A4E -:1028A00059F1CD3A61F1C03B69F1CE3A71F1CF3ABD -:1028B00079F1C13B81F1C23B89F1C33B91F1C43B4A -:1028C00099F1C53BA1F1C63BA9F1C73BB1F1C83BAA -:1028D000B9F1C93BC1F1CA3BC9F180E090E038C011 -:1028E00082EE90E035C089EE90E032C08AEE90E052 -:1028F0002FC085EB90E02CC086EB90E029C087EBE1 -:1029000090E026C08CEC90E023C08DEC90E020C0DD -:1029100083E891E01DC08AE891E01AC082E991E065 -:1029200017C084E991E014C081E292E011C083E213 -:1029300092E00EC084E292E00BC085E292E008C013 -:1029400086E292E005C087E292E002C08AE292E06D -:10295000CF910C94E612CF910895882309F44BC0CF -:10296000823859F40E94AE1281FF45C089E30E946B -:10297000081D0E948B1D89E30CC0833871F40E94EE -:10298000AE1280FF38C083E50E94081D0E948B1D97 -:1029900083E50E94251D0C948B1D843859F40E94F8 -:1029A000AE1282FF28C087E40E94081D0E948B1D82 -:1029B00087E4EFCF9CEF980F913A58F390E2980F8D -:1029C000983050F4877091E001C0990F8A95EAF72A -:1029D000892F0E944A1DDFCF9BE5980F933020F48A -:1029E00080E090E00C94D012885A833120F480E08B -:1029F00090E00C94E6120895882321F00E94441D73 -:102A00000C948B1D0895882321F00E944A1D0C947C -:102A10008B1D08957F928F929F92AF92BF92CF921B -:102A2000DF92EF92FF920F931F93CF93DF931F924A -:102A3000CDB7DEB77C01C62E772EFC01058102954D -:102A40000F70128111110E94611D0E94011D8823C7 -:102A500079F0112369F080E28C0D883048F082E033 -:102A60000E94EA1C0E94011D91E0D82ED92601C0C7 -:102A7000D12CE72DE295EF70F0E0E159FF4F0C9477 -:102A80003425872D807F072D0F70882311F0029544 -:102A9000007F112389F0002309F499C180E28C0D95 -:102AA000883020F4802F0E94441D03C0802F0E9494 -:102AB000541D0E948B1D8BC18C2D0E94AD140023D0 -:102AC00009F4C3C180E28C0D883020F4802F0E946D -:102AD0004A1D03C0802F0E945A1D0E948B1DB5C144 -:102AE000872D807F972D9F70803211F4892F03C02E -:102AF000892F8295807FCC2021F0F1E0CF16A1F0C4 -:102B00001DC0112339F0002319F1013009F50E948D -:102B1000741D9BC1002319F0013009F496C189830B -:102B20000E94771D898110C1112321F0063008F021 -:102B30008CC10EC0053008F088C106C1112359F0C0 -:102B4000002331F0F701958190FF41C19F7095837B -:102B50000E94FC147AC1002309F4F6C03EC1872DFF -:102B600086958695837090E0009719F0019761F043 -:102B70006CC1112321F08C2D972D937002C080E041 -:102B800090E00E94D01261C1112321F08C2D972D6D -:102B9000937002C080E090E00E94E61256C18C2D36 -:102BA000112319F00E94A21F02C00E940A200E9455 -:102BB0008F204BC1872D837009F052C0111145C180 -:102BC0008C2D829586958770880F880F9C2D9F701D -:102BD000892E912CA12CB12C082E04C0880C991C94 -:102BE000AA1CBB1C0A94D2F7C4FE14C00FE010E06C -:102BF00020E030E0B901A80104C0440F551F661F52 -:102C0000771F8A95D2F7CB01BA01609570958095B0 -:102C1000909503C060E070E0CB01272D26952695A6 -:102C2000237030E02230310569F02330310589F01E -:102C3000682979298A299B292130310571F00E9460 -:102C4000761B03C1682979298A299B290E94921B36 -:102C5000FCC00E94761BC501B4010E945A1BF5C03E -:102C6000112319F0872D817001C08695882309F4FE -:102C7000ECC08C2D829586958770880F880F9C2DCF -:102C80009F70892E912CA12CB12C082E04C0880C89 -:102C9000991CAA1CBB1C0A94D2F7C4FE14C00FE0F6 -:102CA00010E020E030E0B901A80104C0440F551F36 -:102CB000661F771F8A95D2F7CB01BA016095709590 -:102CC0008095909503C060E070E0CB01272D26959C -:102CD00026952370422F50E04230510569F0433071 -:102CE000510589F0682979298A299B2941305105A4 -:102CF00071F00E94501CA9C0682979298A299B2952 -:102D00000E946C1CA2C00E94501CC501B4010E940C -:102D1000341C9BC08C2D90E0FC01E05EF109E53194 -:102D2000F10508F050C0E158FF4F0C9434250C2DEC -:102D30000F70872D8F71112321F00E94CD1B802FE2 -:102D400007CF0E94EE1B802F0E9403157EC0112327 -:102D500041F0053008F079C0872D8F710E94131C57 -:102D600074C0063008F071C0F7CF112339F0872DF9 -:102D70008F710E94CD1B69C01123C9F3872D8F71FC -:102D80000E94EE1B62C0112329F0872D8F710E94D3 -:102D9000B81B5BC00E94AE1B58C0112351F0172D09 -:102DA0001F71812F0E94CD1B63E0812F0E94E11CC7 -:102DB0004CC081E00E94EA1C023008F446C082E068 -:102DC0000E94EA1C42C0112331F0002381F28C2DB5 -:102DD0000E94E5133AC0002389F28C2D0E94AD14A5 -:102DE00034C0472D4F706C2DC7010E94B2050E9460 -:102DF000D21A2BC0111129C0472D4F7050E042301C -:102E00005105B9F04CF44115510581F0413051059F -:102E1000E1F40E948B2319C04330510569F044301E -:102E2000510599F48C2D0E94DD230FC00E9474235C -:102E30000CC00E94A72309C00E94BA2306C0472DD8 -:102E40004F706C2DC7010E941A0ADD20F9F00E9414 -:102E5000DD1C80FD1BC0F70112820E94D71C0E945E -:102E6000CD1BC7010E9455170E94D71C0F90DF9100 -:102E7000CF911F910F91FF90EF90DF90CF90BF9077 -:102E8000AF909F908F907F900C94EE1B0F90DF91EE -:102E9000CF911F910F91FF90EF90DF90CF90BF9057 -:102EA000AF909F908F907F9008950F931F93CF9333 -:102EB000DF93EC01888199812B813C81232BB9F030 -:102EC0009F3F11F48F3F99F0CE010E94470688235F -:102ED00071F0688179818A810E94D31C8C010E94E3 -:102EE000881C0E944F1BB801CE010E940A15DF9179 -:102EF000CF911F910F9108950E94611D0E94711D35 -:102F00000E94361D0E948B1D0E9440210E948F202E -:102F100080E090E00E94D01280E090E00C94E612F5 -:102F20000E94511D0C947C170E94C81C292F2295C9 -:102F30002F7030E02C3031054CF42A3031056CF420 -:102F40002250310922303105A8F407C02C30310558 -:102F500069F02F30310551F00DC0803F69F018F451 -:102F6000803E40F409C0843F29F406C093FB8827C3 -:102F700080F9089580E0089581E00895CF93DF936C -:102F800000D000D01F92CDB7DEB70F900F900F90FA -:102F90000F900F90DF91CF910895CF93DF9300D0E2 -:102FA00000D000D0CDB7DEB726960FB6F894DEBFBE -:102FB0000FBECDBFDF91CF9108951F93CF93DF93C5 -:102FC000C091790116E080917A01C81799F0D0E09C -:102FD0001C9FF0011D9FF00D1124E558FE4F40810C -:102FE000518162817381848195810E94CD172196E0 -:102FF000C770E9CFDF91CF911F9108954091AB0148 -:103000005091AC016091AD017091AE018091AF0122 -:103010009091B0010C94CD178091B00182958F7082 -:1030200009F054C08091AD01882309F44FC080910C -:103030007901A0917A016091AB017091AC0140914E -:10304000AE015091AF01B6E08A1709F43FC090E09D -:1030500041155105C1F17F3F11F46F3FA1F1B89FB8 -:10306000F001B99FF00D1124E558FE4F2181721334 -:103070002AC02081621327C02281211124C023810C -:1030800034812417350710F421503109241B350BE6 -:10309000283C3105C0F42091B0012F7020612093AD -:1030A000B00126E0289FF001299FF00D1124E0587F -:1030B000FE4F80818F70806180838BEA91E00E9457 -:1030C00055170C94DD1701968770BECF0895CF92E7 -:1030D000DF92EF92FF920F931F93CF93DF93CDB7C1 -:1030E000DEB762970FB6F894DEBF0FBECDBF8C017E -:1030F00085E0F801DE011D9601900D928A95E1F7B9 -:10310000D8014C9111965C91119712966C9112977F -:103110001396CD90DC9014973091AB017091AC0177 -:103120008091AE019091AF01009709F46BC17F3F90 -:1031300019F43F3F09F466C1E090AD01EE2009F4B7 -:10314000C0C02091B001C816D90628F0F601E81BCE -:10315000F90BCF0104C0809590958C0D9D1DFF2427 -:10316000F394883C910578F0F12C207F09F0C6C0DB -:103170007C2DD98AC88A89890E94BE178BEA91E082 -:103180000E945517B1C0822F807F09F046C0751389 -:1031900014C0341312C0611110C02F70206120932D -:1031A000B0010E94FE178BEA91E00E9455178091B2 -:1031B000B001D80115968C932EC0CD2819F15F3F30 -:1031C00011F44F3FF9F0F62E61111CC08091790186 -:1031D00020917A0136E0821709F45AC090E0389FB6 -:1031E000F001399FF00D1124E558FE4F71815713FE -:1031F00006C07081471303C07281711103C001962C -:103200008770E9CFF62E662309F418C18091B001CA -:1032100081608093B001F12C11C1751308C0341383 -:1032200006C0611104C08091B001D801C3C04D87B0 -:103230005E878D859E856A8B0E9494176A89882394 -:10324000E1F16623D1F12091B001822F82958F7038 -:1032500090E0029774F08091AB019091AC01988757 -:103260008F831986DB86CA862C87CE0107960E943B -:10327000551786E0F801ABEAB1E001900D928A950E -:10328000E1F70E940C180E94FE17FF24F394D6C0A9 -:103290004D875E878D859E850E94C81C292F2295AB -:1032A0002F7030E0223031050CF0BCC09F7009F067 -:1032B000B6C0805E883008F4C1C0C8010E945517AE -:1032C000E4CFC816D90608F453C0F601E81BF90B81 -:1032D000CF01883C910508F450C0F12C7C2DD98A8F -:1032E000C88A89890E94BE17EBEAF1E086E0DF0117 -:1032F0001D928A95E9F70E94FE17A0C0751314C0AD -:10330000341312C0611110C08091B001F80185839F -:10331000C8010E94551786E0EBEAF1E0DF011D923B -:103320008A95E9F7FE2C8AC04D875E878D859E853C -:103330006A8B0E9494176A89882309F4BECF66239A -:1033400009F4BBCF2091B001822F82958F7090E05D -:1033500002970CF48ECF8091AB019091AC019A83CF -:1033600089831B82DD82CC822E83CE0101967FCFA2 -:10337000809590958C0D9D1DACCFF62E662309F49B -:103380009CCF75132EC034132CC02091B00120FDAA -:103390001FC0822F82958F70D9F0D80115962C937B -:1033A00015978F3049F08F5F982F9295907F822FDD -:1033B0008F70892B15968C93C8010E94551786E053 -:1033C000F801ABEAB1E001900D928A95E1F793CF55 -:1033D00086E0F801ABEAB1E001900D928A95E1F741 -:1033E0002DC04D875E878D859E850E949417811123 -:1033F00040CF8091B00181608093B001C8010E94EC -:1034000055171CC0662309F458CF4D875E878D85FC -:103410009E850E949417882309F44FCF2ACF8111EB -:1034200048CF0CC0243031050CF047CF9F7009F411 -:1034300040CFF8019581907F09F03BCF8F2D6296A8 -:103440000FB6F894DEBF0FBECDBFDF91CF911F91B5 -:103450000F91FF90EF90DF90CF9008951F93CF933F -:10346000DF93CDB7DEB72C970FB6F894DEBF0FBE53 -:10347000CDBF4F83588769877A878B879C87CE011A -:1034800007960E946718882369F08F8198852A859E -:103490003B85232BF1F19F3F09F063C08F3F09F07B -:1034A00060C037C086E0FE013796DE0111960190BC -:1034B0000D928A95E1F76F817885EA85FB853097D3 -:1034C00041F17F3F11F46F3F21F120917A0130E00B -:1034D000C9010196877099274091790150E08417BE -:1034E000950709F447C069837A83FD83EC8396E0EE -:1034F000929FD001939FB00D1124A558BE4FFE019D -:10350000319601900D929A95E1F780937A010E948D -:10351000DD1716E08091790190917A018917C1F148 -:10352000189FC001112485589E4F0E946718882358 -:1035300079F1E09179011E9FF0011124E558FE4FC9 -:103540004081518162817381848195810E94CD1770 -:103550008091790190E00196877099278093790195 -:10356000D9CF4F81588569857A858B859C850E9446 -:10357000CD17CFCF0E94901710927A011092790147 -:10358000EBEAF1E086E0DF011D928A95E9F7C1CF11 -:103590002C960FB6F894DEBF0FBECDBFDF91CF9152 -:1035A0001F910895EF92FF920F931F93CF93DF9394 -:1035B0008C01009709F46CC0F12CEE24E394E8012F -:1035C0002196F8018491843740F4843008F051C08A -:1035D000813081F0823019F15BC0853709F444C035 -:1035E000A8F19CE7980F903708F052C08F770E949F -:1035F000AD1441C00E5F1F4FFE01C49180E28C0FDD -:10360000883048F4C7708E2D01C0880FCA95EAF73C -:103610000E94641D14C08C2F0E94E5132DC00E5F04 -:103620001F4FFE01C49180E28C0F883058F4C770A0 -:103630008E2D01C0880FCA95EAF70E946A1D0E946C -:103640008B1D1AC08C2F0E94AD1416C00E5F1F4F29 -:10365000FE01C491CC2381F08FE99FE00197F1F73F -:1036600000C00000C150F6CF0E5F1F4FFE01F49066 -:1036700003C00E94E5138E018F2D882309F49FCF8C -:10368000EFE9FFE03197F1F700C000008150F5CF7E -:10369000DF91CF911F910F91FF90EF9008950895C2 -:1036A0006093B5017093B6018093B7019093B80110 -:1036B0000C947C170F931F930091B5011091B601E4 -:1036C0002091B7013091B801DC01CB01802B912B07 -:1036D000A22BB32B8093B5019093B601A093B701B1 -:1036E000B093B8011F910F910C947C170F931F9307 -:1036F0000091B5011091B6012091B7013091B80148 -:10370000DC01CB0180239123A223B3238093B50155 -:103710009093B601A093B701B093B8011F910F9198 -:103720000C947C170F931F930091B5011091B60173 -:103730002091B7013091B801DC01CB01802791279E -:10374000A227B3278093B5019093B601A093B70148 -:10375000B093B8011F910F910C947C171092B10196 -:103760001092B2011092B3011092B4010C947C1724 -:1037700041E050E060E070E004C0440F551F661F58 -:10378000771F8A95D2F74093B1015093B2016093AD -:10379000B3017093B4010C947C1741E050E060E0F9 -:1037A00070E004C0440F551F661F771F8A95D2F73B -:1037B0008091B1019091B201A091B301B091B40197 -:1037C000482B592B6A2B7B2B4093B1015093B201AC -:1037D0006093B3017093B4010C947C1741E050E006 -:1037E00060E070E004C0440F551F661F771F8A9584 -:1037F000D2F740955095609570958091B101909168 -:10380000B201A091B301B091B401482359236A23B6 -:103810007B234093B1015093B2016093B301709345 -:10382000B4010C947C1741E050E060E070E004C00B -:10383000440F551F661F771F8A95D2F78091B101FB -:103840009091B201A091B301B091B40148275927DA -:103850006A277B274093B1015093B2016093B30173 -:103860007093B4010C947C170F931F930091B101D6 -:103870001091B2012091B3013091B401DC01CB0170 -:10388000802B912BA22BB32B8093B1019093B2018B -:10389000A093B301B093B4011F910F910C947C17C6 -:1038A0000F931F930091B1011091B2012091B301C8 -:1038B0003091B401DC01CB0180239123A223B323F7 -:1038C0008093B1019093B201A093B301B093B4017E -:1038D0001F910F910C947C170F931F930091B101CE -:1038E0001091B2012091B3013091B401DC01CB0100 -:1038F00080279127A227B3278093B1019093B2012B -:10390000A093B301B093B4011F910F910C947C1755 -:103910000895CF92DF92EF92FF920F931F93CF9370 -:10392000DF938C01C090B501D090B601E090B70153 -:10393000F090B8018091B1019091B201A091B301D2 -:10394000B091B401C82AD92AEA2AFB2ACFE1D0E0F3 -:10395000D701C6010C2E04C0B695A79597958795FB -:103960000A94D2F780FF06C0B8018C2F0E94790814 -:10397000019721F4219760F780E001C08C2FDF913F -:10398000CF911F910F91FF90EF90DF90CF9008950E -:10399000CF93DF93EC010E94891CBE010E9479083D -:1039A000DF91CF910895CB010E94C81C08958091AA -:1039B000B90185958595859508958091B9018770A0 -:1039C000089598E0899F90011124262B2093B90136 -:1039D0000C94CD1B2091B901809582238093B9016D -:1039E000982F977069F430E0482F552747FD509580 -:1039F0002417350729F08595859585950C94EE1B40 -:103A000008959091B901977081E009F480E00895DC -:103A100020910C0130910D01F90132969FEF40E0A9 -:103A20005191581789F09F3F19F4511101C0942FFB -:103A30004F5F4630A9F79F3F39F0F901E90FF11DBB -:103A400097FDFA9582830895089520910C01309195 -:103A50000D01F9013296285F3F4F9081981301C004 -:103A600010823196E217F307C1F7089581E090E0E4 -:103A7000E0910C01F0910D01E80FF91F1082019601 -:103A800088309105A9F708959091C501892B8093FD -:103A9000C501089580959091C50189238093C50142 -:103AA00008951092C50108959091C401892B8093C7 -:103AB000C401089580959091C40189238093C40125 -:103AC00008951092C40108959091C301892B8093A9 -:103AD000C301089580959091C30189238093C30108 -:103AE00008951092C30108958093BA010895109229 -:103AF000BA01089580910C0190910D01FC0131965D -:103B00009C01285F3F4F80E0919191118F5FE217F8 -:103B1000F307D1F70895E0910C01F0910D01809128 -:103B2000C5018083E0910C01F0910D01908180919D -:103B3000C401892B8083E0910C01F0910D019081EB -:103B40008091C301892B80838091BA01882361F021 -:103B5000E0910C01F0910D019081892B80830E94EE -:103B60007A1D81111092BA0180910C0190910D0182 -:103B70000C94BA1220E0009739F0AC014150510981 -:103B8000842395232F5FF7CF822F08958091DD0145 -:103B9000843039F11092C70120E488E190E00FB63B -:103BA000F894A895809360000FBE2093600080E099 -:103BB0000E940D0580E00E94AA0A83B7817F84607D -:103BC00083BF83B7816083BF7894889583B78E7FE6 -:103BD00083BF88E10FB6F894809360001092600074 -:103BE0000FBE0895089580E00E940D050E94C00A4E -:103BF0000E94430B0E94F21D0E94C80B91E08111AC -:103C000001C090E0892F08950E94901780E00E94E3 -:103C10000D050E9463230E94AE120C94AA0A1F9203 -:103C20000F920FB60F9211248F939F93AF93BF9370 -:103C30008091C701811113C08091C8019091C90181 -:103C4000A091CA01B091CB014196A11DB11D8093F5 -:103C5000C8019093C901A093CA01B093CB01BF9151 -:103C6000AF919F918F910F900FBE0F901F9018955D -:103C700082E084BD93E095BD9AEF97BD80936E007E -:103C800008952FB7F8948091C8019091C901A0912F -:103C9000CA01B091CB012FBF0895CF92DF92EF926E -:103CA000FF920F931F932FB7F8944091C801509142 -:103CB000C9016091CA017091CB012FBF6A017B01DC -:103CC000EE24FF248C0120E030E0C016D106E2068D -:103CD000F30610F4415051099A01281B390BC90110 -:103CE0001F910F91FF90EF90DF90CF9008951F925A -:103CF0000F920FB60F9211248F939F93AF93BF93A0 -:103D00008091C8019091C901A091CA01B091CB01E5 -:103D10000196A11DB11D8093C8019093C901A09384 -:103D2000CA01B093CB01BF91AF919F918F910F903A -:103D30000FBE0F901F9018950E94AB0FF8942FEFB5 -:103D400087EA91E6215080409040E1F700C00000F2 -:103D500087E090EBDC018093E7019093E801A0936A -:103D6000E901B093EA019CE088E10FB6F894A895C8 -:103D7000809360000FBE90936000FFCF0E94F61EFC -:103D8000811102C00E94D71E0E94011F8093C601AC -:103D90000E940E1F90E09093D8018093D7010E945B -:103DA000051F682F70E080E090E00C94501B6DEED2 -:103DB0007EEF80E090E00E946E2560E082E090E07F -:103DC0000E945C2560E083E090E00E945C2560E05A -:103DD00084E090E00E945C2560E085E090E00E9435 -:103DE0005C2560E086E090E00C945C2580E090E04B -:103DF0000E94562521E08D3E9E4F09F020E0822F43 -:103E0000089582E090E00C944E2583E090E00C94BD -:103E10004E25682F83E090E00C945C2584E090E0D0 -:103E20000C944E25682F84E090E00C945C2586E08D -:103E300090E00C944E25682F86E090E00C945C2571 -:103E40008091CE0180FF0BC06091110185E0689FD9 -:103E5000B001112475956795759567952BC081FF05 -:103E600009C06091110185E0689FB001112475952A -:103E7000679520C082FF07C06091110185E0689FAF -:103E8000B001112417C09091CF019923D1F0609116 -:103E90001001961788F72091110185E0289F900165 -:103EA0001124929FA001939F500D112470E0CA012C -:103EB0000E9420256038710540F46115710539F0C4 -:103EC00002C065E070E0862F08958FE7089581E0D5 -:103ED00008958091CE0180FF08C060910F0170E0CD -:103EE000759567957595679521C081FF06C06091AE -:103EF0000F0170E07595679519C082FF04C060914D -:103F00000F0170E010C09091CF019923C1F0609132 -:103F10000E019617A0F780910F01899FC00111240F -:103F200070E00E9420256038710528F46115710544 -:103F300021F0862F08958FE7089581E0089561E0CC -:103F400070E0F4CF803F21F40E94201F819504C0CF -:103F5000813F29F40E94201F8093D2010895823F5F -:103F600021F40E94201F819504C0833F29F40E9400 -:103F7000201F8093D1010895893F19F40E94691F81 -:103F800005C08A3F31F40E94691F81958093D30157 -:103F900008958B3F21F40E94691F819504C08C3FD6 -:103FA00029F40E94691F8093D4010895843F21F46D -:103FB0008091D001816017C0853F21F48091D001AC -:103FC000826011C0863F21F48091D00184600BC0D3 -:103FD000873F21F48091D001886005C0883F31F48B -:103FE0008091D00180618093D00108958D3F21F4AC -:103FF0008091CE0181600BC08E3F21F48091CE0173 -:10400000826005C08F3F29F48091CE018460809347 -:10401000CE010895803F39F48091D20187FF6CC0B2 -:104020001092D20169C0813F29F48091D201181603 -:10403000BCF362C09091D101823F29F497FF5CC02C -:104040001092D10159C0833F19F41916CCF354C012 -:10405000893F41F48091D30118160CF04DC01092A5 -:10406000D3014AC08A3F29F48091D30187FF44C01D -:10407000F6CF8B3F39F48091D40187FF3DC0109279 -:10408000D4013AC08C3F29F48091D4011816BCF3B6 -:1040900033C0843F21F48091D0018E7F17C0853FCB -:1040A00021F48091D0018D7F11C0863F21F4809151 -:1040B000D0018B7F0BC0873F21F48091D001877F97 -:1040C00005C0883F31F48091D0018F7E8093D0016C -:1040D00013C08D3F21F48091CE018E7F0BC08E3FA7 -:1040E00021F48091CE018D7F05C08F3F29F480910E -:1040F000CE018B7F8093CE018091D10181110EC0C2 -:104100008091D20181110AC08091D301811106C032 -:104110008091D401811102C01092CF01089580EDE9 -:1041200091E00E94C5120E94411E9093CD018093A0 -:10413000CC0108951F93CF93DF938091CC01909190 -:10414000CD010E944D1EAC019091CF01992321F029 -:104150002091120130E006C0209113018AE0289FCF -:10416000900111244217530708F486C08091D101B1 -:10417000C091D201D091D3011091D401811107C017 -:10418000C11176C0D11174C0111172C075C09F3FAA -:1041900019F09F5F9093CF01181624F40E94201FFE -:1041A0008093D1018091D10187FF05C00E94201F1B -:1041B00081958093D1011C1624F40E94201F8093C6 -:1041C000D2018091D20187FF05C00E94201F8195F6 -:1041D0008093D2016091D101662339F1C091D2015F -:1041E000CC2319F1772767FD7095872F972F0E94B1 -:1041F000312423E333E343E35FE30E9495240E94E9 -:10420000FE236093D1016C2F772767FD7095872F70 -:10421000972F0E94312423E333E343E35FE30E94BB -:1042200095240E94FE236093D2011D1624F40E945F -:10423000691F8093D3018091D30187FF05C00E943D -:10424000691F81958093D301111624F40E94691F80 -:104250008093D4018091D40187FF05C00E94691F1B -:1042600081958093D401DF91CF911F910C948F2081 -:104270009F3F09F08ECF96CFDF91CF911F91089588 -:10428000E0EDF1E085E0DF011D928A95E9F71092FB -:10429000CF011092CE010895833081F128F481304E -:1042A00059F08230D1F00895853009F449C0B8F151 -:1042B000863009F456C0089580911301262F30E00E -:1042C000280F311D2F3F310524F4680F609313012F -:1042D00008958FEF80931301089580911201262F86 -:1042E00030E0280F311D2F3F310524F4680F609313 -:1042F000120108958FEF80931201089580911101AA -:10430000262F30E0280F311D2F3F310524F4680F90 -:104310006093110108958FEF8093110108958091AA -:104320001001262F30E0280F311D2F3F310524F4D6 -:10433000680F6093100108958FEF80931001089526 -:1043400080910F01262F30E0280F311D2F3F3105BE -:1043500024F4680F60930F0108958FEF80930F018D -:10436000089580910E01262F30E0280F311D2F3F38 -:10437000310524F4680F60930E0108958FEF809348 -:104380000E010895833011F128F4813049F0823014 -:1043900091F00895853081F120F18630C1F10895C2 -:1043A00080911301681720F4861B809313010895F0 -:1043B00010921301089580911201681720F4861B52 -:1043C00080931201089510921201089580911101B5 -:1043D000681720F4861B8093110108951092110133 -:1043E000089580911001681720F4861B80931001B6 -:1043F000089510921001089580910F01681720F41C -:10440000861B80930F01089510920F0108958091EB -:104410000E01681720F4861B80930E0108951092F8 -:104420000E0108950F931F938732D8F58E3108F04F -:1044300085C08E3009F46FC098F4873009F459C0F4 -:104440008B3009F48FC0863009F093C08091C6018B -:10445000817F8E7F8093C60181E08093D6018AC0E0 -:10446000863109F47FC068F4803109F082C0809100 -:10447000C60183FB222720F991E0922790FB83F964 -:1044800053C0893109F46EC08B3109F072C080913C -:10449000C60181FB222720F991E0922790FB81F948 -:1044A00043C0883309F45EC050F4893209F45CC01B -:1044B000853309F459C0873209F456C05AC0833491 -:1044C00009F452C028F48A3308F453C0895337C022 -:1044D000883409F04EC00E9490170FEF13ED20E3CF -:1044E000015010402040E1F700C000000E949C1ED7 -:1044F00039C09091C601892F8095817080FB90F919 -:1045000029F0966098609093C60134C0997F977F98 -:104510009093C60127C08091C60182FB222720F913 -:1045200091E0922790FB82F98093C6019923D1F004 -:104530008091C60181608093C60114C08D5141E015 -:1045400050E060E070E08A019B0104C0000F111F81 -:10455000221F331F8A95D2F7C901B8010E94501B50 -:104560000E94901781E006C061E070E080E090E07A -:10457000F5CF80E01F910F91089580E0089580E0CD -:1045800008958E518A3030F4E82FF0E0ED5CFE4F54 -:104590008081089580E00895CF93C82F8091D6013F -:1045A000813069F018F08230C9F183C0E0910C01CC -:1045B000F0910D018081823209F07DC007C0E09149 -:1045C0000C01F0910D018081823261F48C2F0E94E8 -:1045D000BD22811104C08C2F0E9412221DC081E0D7 -:1045E00090E01AC08C2F0E94BF22811114C0C431E8 -:1045F00079F048F4CB3079F0C03109F060C082E046 -:104600008093D60108C0C93219F0C83321F057C0D1 -:104610001092D60154C081E0817053C0C93289F133 -:1046200018F5C43171F1B0F4C73009F046C08EE11D -:104630008093130182E3809312018AE08093110139 -:1046400084E18093100188E080930F0188E28093D9 -:104650000E0133C082EE8C0F863078F58C2F0E94CD -:10466000C1228093D50129C0CE34E9F020F4CB34A7 -:1046700021F56AE013C0C13579F0C235F1F461E08B -:104680000DC08091D501882319F01092D50115C075 -:1046900081E08093D60115C061E006C08091D5010C -:1046A0000E944C210AC06AE08091D5010E94C2217B -:1046B00004C01092D60180E004C081E002C080E016 -:1046C000ABCFCF9108950E94F61E811102C00E94C7 -:1046D000D71E0E94171F8093E60180FF02C08695B7 -:1046E00001C080E00C940D058091E601982F96950D -:1046F000292F30E0233031054CF49F5F990F8170F2 -:10470000892B81608093E6010E941B1F8091E60146 -:1047100086950C940D058091E601982F969591F061 -:104720009158990F8170892B8093E6018E7F91E0DB -:1047300009F490E08091E60190FB80F98093E60116 -:104740000E941B1F8091E60186950C940D058091B7 -:10475000E601982F909590FB80F98093E6010E94E6 -:104760001B1F8091E60180FF02C0869501C080E09A -:104770000C940D059091E601892F86958F5F8F77B8 -:104780009170843028F4880F892B8093E60102C051 -:104790009093E6018091E6018E7F91E009F490E02C -:1047A0008091E60190FB80F98093E6010E941B1F37 -:1047B0008091E60186950C940D052091E601922FDB -:1047C00096958927982F990F822F8170892B809336 -:1047D000E6018E7F91E009F490E08091E60190FB84 -:1047E00080F98093E6010E941B1F8091E601869567 -:1047F0000C940D058091E6018695089504D0689487 -:10480000B1118DC0089570D088F09F5790F0B92FE6 -:104810009927B751A0F0D1F0660F771F881F991F15 -:104820001AF0BA95C9F712C0B13081F077D0B1E073 -:10483000089574C0672F782F8827B85F39F0B93F83 -:10484000CCF3869577956795B395D9F73EF4909517 -:104850008095709561957F4F8F4F9F4F0895E89495 -:1048600009C097FB3EF490958095709561957F4FB8 -:104870008F4F9F4F9923A9F0F92F96E9BB27939566 -:10488000F695879577956795B795F111F8CFFAF476 -:10489000BB0F11F460FF1BC06F5F7F4F8F4F9F4FA7 -:1048A00016C0882311F096E911C0772321F09EE805 -:1048B000872F762F05C0662371F096E8862F70E06B -:1048C00060E02AF09A95660F771F881FDAF7880F45 -:1048D0009695879597F9089557FD9058440F551F61 -:1048E00059F05F3F71F04795880F97FB991F61F072 -:1048F0009F3F79F087950895121613061406551FE9 -:10490000F2CF4695F1DF08C0161617061806991F54 -:10491000F1CF86957105610508940895E894BB2749 -:1049200066277727CB0197F908950BD078C069D017 -:1049300028F06ED018F0952309F05AC05FC01124FA -:10494000EECFCADFA0F3959FD1F3950F50E0551F2E -:10495000629FF001729FBB27F00DB11D639FAA27D4 -:10496000F00DB11DAA1F649F6627B00DA11D661F23 -:10497000829F2227B00DA11D621F739FB00DA11D44 -:10498000621F839FA00D611D221F749F3327A00DFE -:10499000611D231F849F600D211D822F762F6A2F9A -:1049A00011249F5750408AF0E1F088234AF0EE0F1F -:1049B000FF1FBB1F661F771F881F91505040A9F72C -:1049C0009E3F510570F014C0AACF5F3FECF3983EB4 -:1049D000DCF3869577956795B795F795E7959F5F93 -:1049E000C1F7FE2B880F911D9695879597F908952D -:1049F00097F99F6780E870E060E008959FEF80EC92 -:104A0000089500240A941616170618060906089534 -:104A100000240A9412161306140605060895092E9A -:104A20000394000C11F4882352F0BB0F40F4BF2B09 -:104A300011F460FF04C06F5F7F4F8F4F9F4F089549 -:104A400097FB072E16F4009407D077FD09D00E943B -:104A50003A2507FC05D03EF4909581959F4F089527 -:104A6000709561957F4F0895EE0FFF1F0590F491AB -:104A7000E02D0994AA1BBB1B51E107C0AA1FBB1F55 -:104A8000A617B70710F0A61BB70B881F991F5A95DA -:104A9000A9F780959095BC01CD010895F999FECFB5 -:104AA00092BD81BDF89A992780B50895A8E1B0E03C -:104AB00042E050E00C947625262FF999FECF92BD66 -:104AC00081BDF89A019700B4021639F01FBA20BDD3 -:104AD0000FB6F894FA9AF99A0FBE08950196272F07 -:104AE0000E945D250C945C25DC01CB01FC01F99949 -:104AF000FECF06C0F2BDE1BDF89A319600B40D922A -:0C4B000041505040B8F70895F894FFCFE2 -:104B0C00FFDE0B6C0C490C150CE10B01BB012808EA -:104B1C00140A321E1F0F03764F5F6F7F496943796A -:104B2C0009595363404D362609D908A3084F086824 -:0E4B3C000881080102030405060708090000AD -:00000001FF diff --git a/keyboards/planck/keymaps/yang/compiled.hex b/keyboards/planck/keymaps/yang/compiled.hex deleted file mode 100644 index da6b0017a..000000000 --- a/keyboards/planck/keymaps/yang/compiled.hex +++ /dev/null @@ -1,1318 +0,0 @@ -:100000000C949F030C94E3030C94E3030C94E3031C -:100010000C94E3030C94E3030C94E3030C94E303C8 -:100020000C94E3030C94E3030C94A4130C94761443 -:100030000C948E210C94E3030C94E3030C94E303DF -:100040000C94E3030C9447040C94E3030C94E30333 -:100050000C94E3030C94F6210C94E3030C94E30357 -:100060000C94E3030C94E3030C94E3030C94E30378 -:100070000C94E3030C94E3030C94E3030C94E30368 -:100080000C94060F0C94E3030C94E3030C94E30329 -:100090000C94E3030C94E3030C94E3030C94E30348 -:1000A0000C94E3030C94E3030C94E303B404D00432 -:1000B000B804BC04C004C404C804CC04E31405158B -:1000C000F3150515F3154A156D15F315C215D5155C -:1000D000BF18BF18EE18EE182D194D19A31AA31A40 -:1000E0005819A31A081A081A6F1A781AA31A9D1A0F -:1000F000151A151A151A151A151A151A151A151A88 -:10010000151A151A151A151A151A151A151A151A77 -:10011000251A331A3A1A411A4B1A0000000000003F -:100120000000000000010204060A0F17202C3A4AC2 -:100130005D71879DB3C7DAE9F5FCFFFCF5E9DAC725 -:10014000B39D87715D4A3A2C20170F0A06040201FD -:10015000000000000000000000002CA500F001F0ED -:1001600002F003F004F005F006F007F02B00140095 -:100170001A000800150017001C0018000C001200DF -:1001800013002A00290004001600070009000A00D5 -:100190000B000D000E000F0033003400E1001D00C5 -:1001A0001B00060019000500110010003600370082 -:1001B000380028000030E000E200E3000352002095 -:1001C000002004525000510052004F002B00140038 -:1001D0001A00090013000A000D000F0018001C008F -:1001E00033002A002900040015001600170007003C -:1001F0000B00110008000C0012003400E1001D008B -:100200001B000600190005000E0010003600370024 -:10021000380028000030E000E200E3000352002034 -:10022000002004525000510052004F002B003400B7 -:100230003600370013001C0009000A0006001500F4 -:100240000F002A00290004001200080018000C000A -:1002500007000B001700110016003800E100330002 -:1002600014000D000E001B00050010001A001900FC -:100270001D0028000030E000E200E30003520020EF -:10028000002004525000510052004F0035021E025F -:100290001F0220022102220223022402250226023A -:1002A00027022A0001003A003B003C003D003E00CE -:1002B0003F002D022E022F023002310201004000C9 -:1002C00041004200430044004500005301530253E3 -:1002D00000500100010001000100010001000100C7 -:1002E00001000100AB00AA00A900AE0035001E000D -:1002F0001F002000210022002300240025002600EA -:1003000027002A0001003A003B003C003D003E006F -:100310003F002D002E002F00300031000100400072 -:100320004100420043004400450000530153025382 -:100330000050010001000100010001000100010066 -:1003400001000100AB00AA00A900AE0001004B00B3 -:1003500052004E00010001000100010001000100F7 -:1003600001004C000100500051004F0001004A0004 -:100370005000510052004F004D00010001000120CB -:100380000220032004200520062007200820010069 -:100390000100010001000100010001000100010055 -:1003A0000100010001000100010001006432146439 -:1003B0003214783C1E1E140A0500000000010101E1 -:1003C0000202030405050607090A0B0C0E0F1112A1 -:1003D000141517191B1D1F212325282A2C2F3134F2 -:1003E00036393B3E414346494C4F5255585A5D6160 -:1003F00064676A6D707376797C7F8386898C8F924F -:1004000095989B9EA2A5A7AAADB0B3B6B9BCBEC134 -:10041000C4C6C9CBCED0D3D5D7DADCDEE0E2E4E681 -:10042000E8EAEBEDEEF0F1F3F4F5F6F8F9FAFAFBA1 -:10043000FCFDFDFEFEFEFFFFFFFFFFFFFFFEFEFED9 -:10044000FDFDFCFBFAFAF9F8F6F5F4F3F1F0EEED48 -:10045000EBEAE8E6E4E2E0DEDCDAD7D5D3D0CECBD7 -:10046000C9C6C4C1BEBCB9B6B3B0ADAAA7A5A29E49 -:100470009B9895928F8C898683807C797673706D3A -:100480006A6764615D5A5855524F4C494643413E34 -:100490003B393634312F2C2A282523211F1D1B19C7 -:1004A00017151412110F0E0C0B0A09070605050487 -:1004B0000302020101010000000001010202020228 -:1004C00002020303030303030303030303030303FE -:1004D00004040404040404040404040405050505D8 -:1004E00005050505050506060606060606060707B0 -:1004F000070707070708080808080809090909097C -:10050000090A0A0A0A0A0B0B0B0B0B0C0C0C0C0C3D -:100510000D0D0D0D0E0E0E0E0F0F0F1010101011F1 -:100520001111121212131313141414151516161692 -:10053000171718181919191A1A1B1B1C1C1D1D1E18 -:100540001E1F20202121222323242425262627287C -:1005500028292A2B2B2C2D2E2F30303132333435B5 -:10056000363738393A3B3C3D3E3F404142444546B0 -:1005700047494A4B4C4E4F5152535556585A5B5D62 -:100580005E6062636567696B6D6E70727476797BAD -:100590007D7F818486888B8D909295979A9D9FA26E -:1005A000A5A8ABAEB1B4B7BABEC1C4C8CBCFD3D681 -:1005B000DADEE2E6EAEEF2F8FF28035400680065AE -:1005C00000200050006C0061006E0063006B002092 -:1005D000004B006500790062006F006100720064EA -:1005E0000000002C034F007200740068006F006C64 -:1005F0000069006E0065006100720020004B00651C -:1006000000790062006F00610072006400730000F6 -:10061000000403090409025400030100A0FA0904BC -:1006200000000103010100092111010001223F0026 -:100630000705810308000A09040100010301020003 -:10064000092111010001224D000705820308000A5B -:100650000904020001030000000921110100012228 -:1006600036000705830308000A120110010000008C -:1006700008EDFE606001000102000105010980A192 -:1006800001850216010026B7001A01002AB700757D -:100690001095018100C0050C0901A1018503160117 -:1006A00000269C021A01002A9C0275109501810007 -:1006B000C005010902A1010901A1000509190129CB -:1006C00005150025019505750181029501750381C8 -:1006D000010501093009311581257F9502750881D1 -:1006E0000609381581257F950175088106050C0AD4 -:1006F00038021581257F950175088106C0C0050166 -:100700000906A101050719E029E71500250195084B -:1007100075018102950175088101050819012905F6 -:100720009505750191029501750391010507190061 -:1007300029FF150025FF950675088100C0001124CA -:100740001FBECFEFDAE0DEBFCDBF04B603FE24C08C -:100750008091540290915502A0915602B091570297 -:100760008730904BA740B04BB9F4109254021092CE -:100770005502109256021092570214BE84B7877F1A -:1007800084BF88E10FB6F8948093600010926000F7 -:100790000FBEE0E0F8E3099511E0A0E0B1E0EAE087 -:1007A000F2E502C005900D92AE33B107D9F712E021 -:1007B000AEE3B1E001C01D92A435B107E1F70E949C -:1007C000EA100C9403290C9400000895089581E028 -:1007D000089508950C94E6030C94E7030C94E90340 -:1007E0000E94672723E030E0281B3109220F209365 -:1007F00042010895282F2F9880918000211108C070 -:10080000877F8093800010928D0010928C001BC017 -:10081000886080938000233019F48FEF9FEF0FC022 -:1008200083E090E0821B9109880F991F2FEF3FEF23 -:10083000A90102C0569547958A95E2F7CA0190939F -:100840008D0080938C000C94F0030E94F00384E0F0 -:100850008093410110923E010895279A2F988FEFBF -:100860009FEF90938700809386008AE080938000BA -:1008700089E1809381000E94D0260C9425040E9477 -:100880002D040E94780C6E9A769A0C94E5031F92C0 -:100890000F920FB60F9211242F933F938F939F9334 -:1008A000EF93FF93E0913F01F0914001CF0101965A -:1008B0009093400180933F010090410102C0F69562 -:1008C000E7950A94E2F7EF7380913E01823019F4C4 -:1008D000E03251F404C0813039F4EF3329F48091CF -:1008E0006F008D7F80936F00F0E0E65EFE4FE49135 -:1008F00021E031E0E29FC001E39F900D11240090C0 -:10090000420102C0969587950A94E2F790938D0074 -:1009100080938C00FF91EF919F918F913F912F9148 -:100920000F900FBE0F901F90189561110DC0FC0124 -:100930008281882331F085EE0E9463170E94272769 -:1009400003C085EE0E942B1880E090E00895462FAA -:1009500050E04830510538F5FA01EA5AFF4FDC0102 -:1009600012968C910C94B5288823E9F00C94B50C60 -:100970008823C9F00C94770B8823A9F00C948F0B73 -:10098000882389F00C94AE0B882369F00C94C90B72 -:10099000882349F00C94E30B882329F00C94FE0B78 -:1009A00081110C94AB0C089581E008950C94D4044B -:1009B00008950F931F93CF93DF938C01FC01C081A7 -:1009C000D181CE010E940720BE010E948505EC0165 -:1009D000B8010E94D604882309F48DC0F8018281F1 -:1009E000882309F44AC080914E0181111FC0C4318F -:1009F000F0E5DF0709F051C00E94D80481E0809340 -:100A00004E010E94C02190934D0180934C011092A1 -:100A1000450110924701109246011092490110922F -:100A2000480110924B0110924A0165C080914C011F -:100A300090914D010E94CC21883C910570F48091E9 -:100A40004501E82FF0E0EE0FFF1FEA5BFE4FD18378 -:100A5000C0838F5F809345014EC0C43880E5D807BE -:100A600021F0C538D04501F13AC0F80182818823D0 -:100A700041F01092430182E01EC0C438E0E5DE0779 -:100A800059F580914301811106C086E20E946317E7 -:100A900086E20E942B1882E01CC0C438F0E5DF0714 -:100AA00041F3C538D045D9F4F8018281882331F06B -:100AB0001092440180E20E947A181DC08091440186 -:100AC000811106C087E20E94631787E20E942B18FB -:100AD00080E20E9481180FC0C538D04529F381E01B -:100AE0008093430180934401C801DF91CF911F910E -:100AF0000F910C94EC0380E0DF91CF911F910F9147 -:100B000008950C943F040C94EA039CE0799FF00153 -:100B1000112490E3899FE00DF11D1124E60FF11DD2 -:100B2000EE0FFF1FE459FE4F859194910895880FB1 -:100B3000991FFC01E652F040859194910895880F29 -:100B4000991FFC01E65AFE4F8591949108950F93E9 -:100B50001F93CF93DF93EC01811521E39207A0F55A -:100B6000C11580E3D80708F0D7C0C83ED105D8F436 -:100B7000C03ED10508F003C2C83AD10578F4C53AA1 -:100B8000D10508F06AC0C130D10509F463C008F48A -:100B9000F3C1C430D10508F0F2C1EEC1CB3BD105A1 -:100BA00008F466C0E9C1C11590E2D90708F0AFC0EA -:100BB000C11521E0D20708F0E2C1C03FD10508F419 -:100BC000DBC18E0110651BC2C03880E5D80700F577 -:100BD000C03790E5D90708F0A3C0C11520E5D207BA -:100BE00009F4ACC050F4CE01905480319F4008F01D -:100BF000C3C1DF708E01106A02C2C13080E5D80720 -:100C000009F4AAC0C43190E5D90708F4ABC0B4C157 -:100C1000C33820E5D20709F48EC050F4C13890E5FE -:100C2000D90709F482C008F083C000E011EDE7C1E4 -:100C3000C03181E5D80708F49FC1C11597E5D907F0 -:100C400008F432C1CE0190578115904108F094C14B -:100C5000DF708FC101E010E0D2C1C53AD10509F4BF -:100C600090C1C63AD10509F08FC102E810E4C7C1AE -:100C7000C83AD10509F48BC1C93AD10509F48AC132 -:100C8000CA3AD10509F489C1CB3AD10509F488C122 -:100C9000CC3AD10509F487C1CD3AD10509F486C112 -:100CA000C03BD10509F485C1CE3AD10509F484C110 -:100CB000CF3AD10509F483C1C13BD10509F482C102 -:100CC000C23BD10509F481C1C33BD10509F480C100 -:100CD000C43BD10509F47FC1C53BD10509F47EC1F0 -:100CE000C63BD10509F47DC1C73BD10509F47CC1E0 -:100CF000C83BD10509F47BC1C93BD10509F47AC1D0 -:100D0000CA3BD10509F479C100E014E478C1CE01F1 -:100D10009F700E949F0574C1DD278E01106C6FC10A -:100D2000CF70DD278E01146D6AC100E010ED67C140 -:100D300000E012ED64C100E013ED61C10E940E1BE2 -:100D40008FEF94E32CE0815090402040E1F700C009 -:100D500000000E941B2253C18091D80181608093C2 -:100D6000D8014DC10E947222811102C00E945322FB -:100D70000E94852290E09093530280935202C230E9 -:100D800080E5D80721F480915202816086C0C4308A -:100D900090E5D90721F48091520282607EC0C6306E -:100DA00020E5D20721F480915202846076C0C830D9 -:100DB00080E5D80719F48091520227C0CA3090E527 -:100DC000D90721F480915202806167C0CC3020E5C0 -:100DD000D20721F48091520280625FC0CE3080E55C -:100DE000D80721F480915202806457C0C03190E549 -:100DF000D90721F48091520280684FC0C23120E5AA -:100E0000D20729F4809152028460886046C0C330C2 -:100E100080E5D80721F4809152028E7F3EC0C53014 -:100E200090E5D90721F4809152028D7F36C0C730FA -:100E300020E5D20721F4809152028B7F2EC0C93069 -:100E400080E5D80719F48091520226C0CB3090E596 -:100E5000D90721F4809152028F7E1FC0CD3020E54A -:100E6000D20721F4809152028F7D17C0CF3080E5E8 -:100E7000D80721F4809152028F7B0FC0C13190E5D9 -:100E8000D90721F4809152028F7707C0C331D04532 -:100E900031F4809152028B7F877F80935202809140 -:100EA00052020E948922ABC08D2F99278F709927FB -:100EB00081309105D9F49E012370332702C0880F39 -:100EC000991F2A95E2F79C688E0144E0000F111FDC -:100ED0004A95E1F700271370802B912B53E0CC0F3C -:100EE000DD1F5A95E1F7C076DD272FC082309105CE -:100EF00031F4DC2FCC278E01016F106A80C0833063 -:100F0000910569F4CE018370992701E010E002C0D9 -:100F1000000F111F8A95E2F7C8019C680FC084304A -:100F20009105B9F4CE018370992701E010E002C069 -:100F3000000F111F8A95E2F7C8019A6823E0CC0FD1 -:100F4000DD1F2A95E1F7C07ED7708C010C2B1D2B7D -:100F500056C08530910531F4DC2FCC278E01046F0B -:100F6000106A4DC0069709F04AC0CF71DD27DC2F0B -:100F7000CC278E01106243C000E010E040C08E011B -:100F80003EC001E810E43BC003E810E438C002EEC4 -:100F900014E435C009EE14E432C00AEE14E42FC0A4 -:100FA00005EB14E42CC006EB14E429C007EB14E4B1 -:100FB00026C00CEC14E423C00DEC14E420C003E8BC -:100FC00015E41DC00AE815E41AC002E915E417C0CB -:100FD00004E915E414C001E216E411C003E216E4CA -:100FE0000EC004E216E40BC005E216E408C006E2F7 -:100FF00016E405C007E216E402C00AE216E4C801DE -:10100000DF91CF911F910F9108959CE0799FF0019E -:10101000112490E3899FE00DF11D1124E60FF11DCD -:10102000EE0FFF1FE459FE4F85919491803E91058C -:10103000E0F4803C910558F58133910509F46FC0C7 -:1010400048F48932910509F463C08A32910509F4A4 -:101050006DC072C089339105E9F082389105D1F0F5 -:101060008533910509F44DC067C0833E910581F138 -:1010700038F4803E9105B9F0823E9105D9F05CC00C -:10108000863E910561F1873E9105A1F155C00E9410 -:10109000970508952091520220FD02C021FF4CC007 -:1010A00080EE90E049C08091520280FFF9CF89E341 -:1010B00090E042C08091520282FF0EC080915202A5 -:1010C00084FF03C080E090E037C083EE90E034C03E -:1010D0008091520282FFF2CF82EE90E02DC080918B -:1010E000520283FF0BC08091520284FDEBCF87EE4A -:1010F00090E022C08091520283FFF5CF86EE90E00F -:101100001BC08091520285FF07C089E290E014C0A5 -:101110008091520285FFF9CF85E390E00DC0809168 -:10112000520286FF07C08AE290E006C08091520218 -:1011300086FFF9CF81E390E00E94A70508950C9403 -:10114000EE03E82FF0E0EF5DFE4F8081E82FEF70B7 -:10115000F0E082958F7021E030E0A90102C0440FD9 -:10116000551F8A95E2F740A308950F931F93CF93DD -:10117000DF9385B7806885BF85B7806885BFC3E08A -:10118000D0E001E010E0FE01EF5DFE4F8081E82F2E -:10119000EF70F0E021A182958F70A80102C0440F8A -:1011A000551F8A95E2F7CA01822B81A38C2F0E94DA -:1011B000A108219740F78BE090E061E070E0FC012E -:1011C000EB5EFE4F2081E22FEF70F0E042A122950E -:1011D0002F70DB0102C0AA0FBB1F2A95E2F79D0109 -:1011E000242B22A3019758F7DF91CF911F910F91E4 -:1011F0000C948105EF92FF920F931F93CF93DF938F -:1012000007E511E0C3E0EE24E394F12CD5E08C2F48 -:101210000E94A1088BE090E040E050E0FC01EB5E12 -:10122000FE4F6081E62FEF70F0E020A130E0629584 -:101230006F7002C0359527956A95E2F720FD09C0C9 -:101240009701082E02C0220F331F0A94E2F7422BA7 -:10125000532B019718F7F801929182918F0184170F -:10126000950721F051834083D09300018C2F0E9479 -:10127000A108C15060F68091000187FD2CC081500B -:10128000809300018F3F39F08FE99FE00197F1F7DC -:1012900000C0000020C080915501909156019093AC -:1012A0005E0180935D018091530190915401909370 -:1012B0005C0180935B018091510190915201909368 -:1012C0005A018093590180914F0190915001909360 -:1012D0005801809357010E94830581E0DF91CF91EF -:1012E0001F910F91FF90EF900895E82FF0E0EE0F1F -:1012F000FF1FE95AFE4F80819181089508950F9351 -:101300001F93CF930FE511E0C0E0F8019291829115 -:101310008F010E943821C80FF1E007351F07A9F798 -:101320008C2FCF911F910F9108952BB1342F3095B1 -:1013300023233BB1432B3FB7F894FC01680F791F7F -:10134000E617F70789F0819198E04BB9000000C0DB -:1013500087FF2BB9880F000000C000C000C02BB968 -:1013600000C09A9591F7ECCF3FBF08952AB1242B86 -:101370002AB99B01220F331F620F731F0E94950928 -:1013800087EC90E00197F1F700C00000089542E07B -:101390000C94B609AF92BF92CF92DF92EF92FF9278 -:1013A0000F931F93CF93DF936C01790150E0FA0103 -:1013B000E754FB4F44918FEF90E0FC01E61BF109ED -:1013C000E754FB4FE491E09509F495C0C42FD0E0B9 -:1013D0008E1B91098C9F90018D9F300D9C9F300D2D -:1013E0001124E32F8CE3A82EB12CC601B5010E9475 -:1013F0008D28DC016230710509F446C0D0F4611516 -:10140000710599F16130710509F079C0C31BD109EB -:10141000B501681B790BC69FC001C79F900DD69F71 -:10142000900D1124B5010E948D28032F060F142F53 -:1014300067C06430710509F44BC0B8F165307105BF -:1014400009F05DC0C31BD109B501681B790BC69FAC -:10145000C001C79F900DD69F900D1124B5010E9429 -:101460008D28132FE32FE60F44C0C31BD109CC9D59 -:10147000C001CD9D900DDC9D900D1124B5010E9401 -:101480008D28132F160F35C0C31BD109CA9FC00169 -:10149000CB9F900DDA9F900D1124B5010E948D28ED -:1014A000142F032FE32FE60F2BC0C31BD109B50167 -:1014B000681B790BC69FC001C79F900DD69F900DEA -:1014C0001124B5010E948D28132F160F032F0FC072 -:1014D000C31BD109CA9FC001CB9F900DDA9F900D0D -:1014E0001124B5010E948D28032F060F132FE42F1E -:1014F00007C0042F05C0E42F142F042F01C0E0E023 -:10150000D70111960C9311971C931296EC93DF91CF -:10151000CF911F910F91FF90EF90DF90CF90BF90F0 -:10152000AF90089587E090E00C94C328AB01BC0114 -:1015300087E090E00C94E128E9EEF1E083E080831D -:10154000AAEEB1E08C91807884668F778C938CECD6 -:10155000828383836091E9017091EA018091EB01BC -:101560009091EC010C94960A8091E90180FF06C0ED -:101570006CE170E081EF91E00C94C70980E090E0AD -:10158000FC01EF50FE4F11821082128203968435C7 -:101590009105B1F7EDCF20E030E0F901EF50FE4FBB -:1015A0008183608342832D5F3F4F24353105A9F746 -:1015B0000C94B40AEF92FF920F931F93CF93DF9393 -:1015C00000D01F92CDB7DEB70091E9011091EA017A -:1015D0002091EB013091EC010093ED011093EE01AD -:1015E0002093EF013093F0012091E90120FF21C009 -:1015F000042FF62EE92E182F9E012F5F3F4F0E94D9 -:10160000CA098091ED0110FB87F98093ED011695D1 -:101610008091EE018078182BE0FA17F91093EE0113 -:10162000F092EF010093F0014B8169818A810E9461 -:10163000CB0A0F900F900F90DF91CF911F910F91D8 -:10164000FF90EF9008950F931F93CF93DF93EC01DA -:10165000062F142F9091E90190FF44C0892F8E77B7 -:10166000823021F4CE010E94DA0A1BC0892F8695B0 -:101670008F732EE3280F2F73243018F41091EC0190 -:1016800010C0865C8F73893060F4C92FCC1FCC27C3 -:10169000CC1FD091EA018D2F880FC82BD7FBDD27F7 -:1016A000D0F98091E901C0FB87F98093E901C695E3 -:1016B0008091EA018078C82BD0FBC7F9C093EA017A -:1016C0000093EB011093EC016091E9017091EA0144 -:1016D0008091EB019091EC01DF91CF911F910F91DF -:1016E0000C94960ADF91CF911F910F910895E9EE26 -:1016F000F1E02081221F2227221F3091EA01432F8F -:10170000440F842F822B37FB992790F90A9668E6BD -:1017100071E00E94A128438162810C94230B2091E7 -:10172000E901221F2227221F3091EA01432F440F93 -:10173000842F822B37FB992790F98A3091051CF46E -:10174000825A9E4F01C00A9768E671E00E94A12864 -:101750004091EC016091EB010C94230B6091EB0143 -:10176000862F90E08F3E910514F46F5E01C06FEFFD -:101770008091E901881F8827881F9091EA01292F0D -:10178000220F97FB992790F94091EC01822B0C9442 -:10179000230B6091EB01862F90E0419714F061518B -:1017A00001C060E08091E901881F8827881F90911F -:1017B000EA01292F220F97FB992790F94091EC011C -:1017C000822B0C94230B4091EC01842F90E08F3EF0 -:1017D000910514F44F5E01C04FEF8091E901881F1D -:1017E0008827881F9091EA01292F220F97FB9927BC -:1017F00090F96091EB01822B0C94230B4091EC014A -:10180000842F90E0419714F0415101C040E0809155 -:10181000E901881F8827881F9091EA01292F220F4C -:1018200097FB992790F96091EB01822B0C94230B85 -:101830008091700181110FC081E08093700189E077 -:10184000809391008FB7F89493E09093990090ED76 -:10185000909398008FBF0895E1E7F0E08081826067 -:1018600080830895E1E7F0E080818D7F8083089593 -:101870009091E90190FF3BC09178811102C0926084 -:1018800007C0883110F09E6203C08F73880F982BB9 -:101890009093E9016091E9017091EA018091EB0177 -:1018A0009091EC010E94960A8091E901982F9E7711 -:1018B000923019F40E94320C07C08695825C8F73B7 -:1018C000863110F40E942C0C8091E901881F882732 -:1018D000881F9091EA01292F220F97FB992790F9F1 -:1018E0004091EC016091EB01822B0C94230B089545 -:1018F0008091D80181608093D80181E0809371014B -:101900000E947222811104C00E9453220E949C0AEC -:101910000E94920A6093E9017093EA018093EB01BF -:101920009093EC016E7761F40E949C0A0E94920AE7 -:101930006093E9017093EA018093EB019093EC01CD -:101940000E94180C8091E90180FF04C086958F7376 -:101950000C94380C08958091E90186958F738F5F00 -:10196000883108F081E00C94380C8091E901982FBF -:10197000909590FB80F98093E9016091E901709165 -:10198000EA018091EB019091EC010E94960A80910E -:10199000E90180FF04C086958F730C94380C0E9477 -:1019A000320C2FEF80E792E0215080409040E1F729 -:1019B00000C000000C94B40ACF93C82F80916E0130 -:1019C00090916F010E94CC21EC2FF0E0EB54FC4F82 -:1019D000E491F0E08E179F0718F10E94C0219093C8 -:1019E0006F0180936E01E0916D01F0E0E754FC4FD0 -:1019F00044918091E901881F8827881F9091EA010E -:101A0000292F220F97FB992790F96091EB01822BE8 -:101A10000E94DA0A80916D0190E0019680936D0139 -:101A2000CF910895CF93C82F80916B0190916C0155 -:101A30000E94CC21EC2FF0E0EE54FC4FE491F0E05A -:101A40008E179F07E8F00E94C02190936C0180934D -:101A50006B014091EC016091EB01809169019091E3 -:101A60006A010E94DA0A8091690190916A010196E7 -:101A700068E671E00E948D2890936A018093690165 -:101A8000CF910895CF92DF92FF920F931F93CF9340 -:101A9000DF93F82E80916701909168010E94CC211C -:101AA000EF2DE695F0E0EE54FC4FE491F0E08E1758 -:101AB0009F07F0F10E94C021909368018093670115 -:101AC00001EF11E0C0E0D0E088E6C82EDD24D39419 -:101AD00080916501909166018C0F9D1FB6010E9457 -:101AE0008D2898014091EC016091EB010E94CA0998 -:101AF0002C960D5F1F4FC03581E0D80749F70E9433 -:101B0000B40A2091650130916601F0FE0BC0C90155 -:101B1000019668E671E00E948D289093660180939B -:101B2000650106C02150310930936601209365019B -:101B3000DF91CF911F910F91FF90DF90CF9008958B -:101B40008F929F92AF92BF92CF92DF92EF92FF92CD -:101B50000F931F93CF93DF93C82F80FF03C0DD2423 -:101B6000DA9402C0DD24D3948091630190916401E2 -:101B70000E94CC21C695EC2FF0E0E155FC4FE4919A -:101B8000F0E08E179F0708F467C00E94C021909371 -:101B900064018093630191EFE92E91E0F92E03EF48 -:101BA00011E0C0E0D0E027E0822E912CF8013197BF -:101BB0001082F7011082F801108287E0A82EB12C64 -:101BC000C12C809162018C0D87FD845E992787FD71 -:101BD0009095C817D907E9F42091EC012A9DC0011E -:101BE0002B9D900D1124B4010E94A128462F8091B5 -:101BF000E901881F8827881F9091EA01592F550F06 -:101C000097FB992790F997016091EB01852B0E9432 -:101C1000CA09CD0CF1E0AF1AB10899F6219683E01C -:101C2000E80EF11C0D5F1F4FCC31D10509F0BECF7E -:101C30000E94B40A8091620191E0D91206C081111C -:101C400002C08BE107C0815005C090E00196BE0143 -:101C50000E94A12880936201DF91CF911F910F9183 -:101C6000FF90EF90DF90CF90BF90AF909F908F90BC -:101C700008959F92AF92BF92CF92DF92EF92FF9220 -:101C80000F931F93CF93DF93CDB7DEB7C455D10920 -:101C90000FB6F894DEBF0FBECDBF182F8091600144 -:101CA000909161010E94CC21E12FF0E0E455FC4FBE -:101CB000E491F0E08E179F0708F495C00E94C021C0 -:101CC0009093610180936001CE0101967C015E01D9 -:101CD00093E0A90EB11CC12CD12C8701F5013197DD -:101CE0001082F7011082F5011082912C9091010170 -:101CF00080915F01999E800D112487FD04C08C3175 -:101D00001CF08BE101C080E0992787FD9095C816F3 -:101D1000D906A1F48091E901881F8827881F909136 -:101D2000EA01592F550F97FB992790F99701409198 -:101D3000EC016091EB01852B0E94CA099394F7E0B6 -:101D40009F12D4CF8FEFC81AD80A93E0E90EF11C86 -:101D5000E3E0AE0EB11CFCE1CF16D10409F0BECF1A -:101D600023EF31E059E0E52EF12C6CE1C62ED12CA9 -:101D7000C701B6010E94A128D9011197FC01EE0FFD -:101D8000FF1FE80FF91FE00FF11F81818C9311975E -:101D900080818C938281F9018083FFEFEF1AFF0A23 -:101DA0002D5F3F4F85E2E816F10411F70E94B40A57 -:101DB0009091010180915F01913049F48A3F2CF4A8 -:101DC00089EF80935F018FEF08C081500AC0833292 -:101DD0003CF082E280935F0181E08093010103C0C7 -:101DE0008F5F80935F01CC5ADF4F0FB6F894DEBF50 -:101DF0000FBECDBFDF91CF911F910F91FF90EF905C -:101E0000DF90CF90BF90AF909F9008951F920F9258 -:101E10000FB60F9211242F933F934F935F936F93BD -:101E20007F938F939F93AF93BF93EF93FF93809193 -:101E3000E90186958F739EE3980F9F73943020F489 -:101E400082500E94DC0C23C09AE3980F9F7393305A -:101E500020F486500E94120D1AC097E3980F9F73CA -:101E6000963020F489500E94420D11C091E3980FE2 -:101E70009F73963020F48F500E94A00D08C09BE203 -:101E8000980F9F73933018F485510E94390EFF917B -:101E9000EF91BF91AF919F918F917F916F915F91E2 -:101EA0004F913F912F910F900FBE0F901F9018955B -:101EB00080917A010895CF93DF9300D01F92CDB720 -:101EC000DEB79C0180914902843019F593E0998333 -:101ED0003B832A839093E9008FEF9091E800815033 -:101EE00095FD06C095ED9A95F1F700008111F5CFAB -:101EF0008091E80085FF0DC040E050E063E070E0B5 -:101F0000CE0101960E9494118091E8008E77809313 -:101F1000E8000F900F900F90DF91CF910895CF932D -:101F2000DF9300D01F92CDB7DEB720914902243055 -:101F300021F522E029839B838A8383E08093E90053 -:101F40008FEF9091E800815095FD06C095ED9A9530 -:101F5000F1F700008111F5CF8091E80085FF0DC0F9 -:101F600040E050E063E070E0CE0101960E949411E1 -:101F70008091E8008E778093E8000F900F900F908B -:101F8000DF91CF910895209149022430F1F422E0AD -:101F90002093E9002FEF3091E800215035FD06C075 -:101FA00035ED3A95F1F700002111F5CF2091E800C9 -:101FB00025FF0BC040E050E065E070E00E94941106 -:101FC0008091E8008E778093E8000895CF93DF93A7 -:101FD00020914902243039F521E02093E9002FEFC8 -:101FE0003091E800215035FD06C035ED3A95F1F706 -:101FF00000002111F5CF2091E80025FF14C0EC016D -:1020000040E050E068E070E00E9494118091E800A8 -:102010008E778093E80088E0FE01A2E7B1E00190AE -:102020000D928A95E1F7DF91CF9108958091480252 -:10203000811109C00E9429130E9486138091E20039 -:1020400084608093E20008951092480208950895F4 -:1020500008950C94832142E061EC81E00E94A31278 -:1020600042E061EC82E00E94A31242E061EC83E076 -:102070000C94A31280914B02833009F453C030F4C6 -:10208000813071F0823009F48CC008958A3009F4EF -:1020900078C08B3009F45EC0893009F09AC020C046 -:1020A00080914A02813A09F094C08091E800877FCC -:1020B0008093E80080914E0290914F02892B21F489 -:1020C00068E082E791E003C060E080E090E070E0CB -:1020D0000E94DF118091E8008B778093E8000895DB -:1020E00080914A02813209F074C080914E02909131 -:1020F0004F02892B09F06DC08091E800877F8093A3 -:10210000E8008091E80082FD05C0809149028111BC -:10211000F8CF5FC08091F10080937A018091E80050 -:102120008B7753C080914A02813A09F052C0809166 -:102130004E0290914F02892B09F04BC08091E8002C -:10214000877F8093E8008091E80080FFFCCF80913A -:102150000C0136C080914A028132D9F580914E023D -:1021600090914F02892BA9F58091E800877F809399 -:10217000E8000E94D81280914C0280930C010C94CC -:102180000E1B80914A02813221F58091E800877F01 -:102190008093E8000E94D81280914D0280937B01C9 -:1021A000089580914A02813AA1F48091E800877FE6 -:1021B0008093E8008091E80080FFFCCF80917B0154 -:1021C0008093F1008091E8008E778093E8000C9472 -:1021D000D812089584B7877F84BF88E10FB6F8943A -:1021E00080936000109260000FBE90E080E80FB610 -:1021F000F89480936100909361000FBE0E947B165B -:102200000E9429130E9486138091E20084608093CB -:10221000E20078940E940C160E947D1682E091E004 -:102220000E94271680914902853069F40E9444215A -:10223000809147028823B1F30E947221882391F391 -:102240000E947E11EFCF0E948516ECCF292F3327F5 -:1022500023303105C9F064F42130310581F022309A -:10226000310509F043C084E590E025E136E042C045 -:1022700021323105F1F02232310541F137C082E1DE -:1022800090E029E636E036C099278130910541F08B -:102290008230910541F0892B49F5E1E1F6E005C076 -:1022A000E3EEF5E002C0E9EBF5E0849190E09F01F8 -:1022B00021C06330D8F4E62FF0E0EE0FFF1FE25D9F -:1022C000FE4F2081318189E090E014C0633070F4CA -:1022D00070E0FB01EE0FFF1FE85DFE4F20813181B2 -:1022E000FB01EB5DFE4F808190E004C080E090E058 -:1022F00020E030E0FA0131832083089580E189BD38 -:1023000082E189BD09B400FEFDCF8091D8008F7DA8 -:102310008093D8008091E00082608093E0008091FB -:10232000E00081FDFCCF0895CF92DF92EF92FF9203 -:102330000F931F93CF93DF93EC018B016A010E94EF -:10234000F712811133C0C114D10439F0F601808134 -:102350009181081B190BC80FD91FE12CF12C011515 -:10236000110519F18091E80085FD16C08091E80003 -:102370008E778093E800C114D10449F0F601808182 -:102380009181E80EF91EF182E08285E00FC00E9483 -:10239000F712882321F30AC089918093F10001503C -:1023A0001109FFEFEF1AFF0ADACF80E0DF91CF913A -:1023B0001F910F91FF90EF90DF90CF9008952091A3 -:1023C0005002309151022617370748F06115710508 -:1023D00039F42091E8002E772093E80001C0B9017C -:1023E00040E061157105A9F120914902222309F409 -:1023F00043C0253009F442C02091E80023FD40C0CD -:102400002091E80022FD32C02091E80020FFE9CFB2 -:102410004091F3002091F20030E0342BFC01CF0119 -:102420006115710559F02830310540F48191809390 -:10243000F100615071092F5F3F4FF1CF41E028302B -:10244000310509F040E02091E8002E772093E80064 -:10245000C8CF4111C9CF0AC080914902882361F0D9 -:10246000853061F08091E80083FD0AC08091E8002A -:1024700082FFF2CF80E0089582E0089583E008951E -:1024800081E00895209150023091510226173707BC -:1024900048F06115710539F42091E8002E772093FA -:1024A000E80001C0B901FC0120E06115710591F15E -:1024B00080914902882309F440C0853009F43FC067 -:1024C0008091E80083FD3DC08091E80082FD2FC02F -:1024D0008091E80080FFE9CF2091F3008091F20025 -:1024E00090E0922B6115710559F08830910540F408 -:1024F00024912093F1003196615071090196F2CF39 -:1025000021E0089709F020E08091E8008E77809321 -:10251000E800CBCF2111CCCF0AC08091490288239B -:1025200061F0853061F08091E80083FD0AC0809100 -:10253000E80082FFF2CF80E0089582E0089583E012 -:10254000089581E00895982F973058F59093E90009 -:10255000981739F07091EC002091ED005091F00047 -:1025600003C0242F762F50E021FF19C03091EB00DB -:102570003E7F3093EB003091ED003D7F3093ED00D6 -:102580003091EB0031603093EB007093EC002093BE -:10259000ED005093F0002091EE0027FF07C09F5FF1 -:1025A000D3CF8F708093E90081E0089580E0089593 -:1025B00080914A0287FF11C08091E80082FD05C02A -:1025C000809149028111F8CF11C08091E8008B778A -:1025D0000BC080914902882349F08091E80080FF78 -:1025E000F8CF8091E8008E778093E80008952091DD -:1025F000E4003091E50095E64091EC00842F817075 -:1026000040FF22C08091E80080FD1CC080914902FB -:10261000882391F0853091F08091EB0085FD10C00A -:102620004091E4005091E5004217530729F39A01C5 -:10263000915011F784E0089582E0089583E00895B1 -:1026400081E0089580E008954091E80042FFDECFE8 -:1026500008950E9497130E949F13E0EEF0E080819E -:1026600081608083E8EDF0E080818F77808319BC02 -:10267000A7EDB0E08C918E7F8C9380818F7E8083DC -:102680001092480208950F931F93CF93DF930E94F7 -:1026900097130E949F13C8EDD0E088818F778883BD -:1026A00088818068888388818F7D888319BC109297 -:1026B000490210924502109247021092460200EE23 -:1026C00010E0F80180818B7F80838881816088831E -:1026D00042E060E080E00E94A312E1EEF0E0808141 -:1026E0008E7F8083E2EEF0E0808181608083808154 -:1026F00088608083F80180818E7F808388818061FB -:102700008883DF91CF911F910F910895E8EDF0E05C -:1027100080818F7E8083E7EDF0E08081816080831F -:1027200084E082BF81E0809348020C944313E8ED7B -:10273000F0E080818E7F80831092E20008951092F5 -:10274000DA001092E10008951F920F920FB60F92D7 -:1027500011242F933F934F935F936F937F938F93A6 -:102760009F93AF93BF93EF93FF938091E10082FF1C -:102770000BC08091E20082FF07C08091E1008B7F57 -:102780008093E1000E940B168091DA0080FF1FC049 -:102790008091D80080FF1BC08091DA008E7F8093EB -:1027A000DA008091D90080FF0DC080E189BD82E10F -:1027B00089BD09B400FEFDCF81E0809349020E94EB -:1027C000161005C019BC109249020E942410809175 -:1027D000E10080FF19C08091E20080FF15C0809168 -:1027E000E2008E7F8093E2008091E200806180931E -:1027F000E2008091D80080628093D80019BC85E007 -:10280000809349020E9428108091E10084FF30C02B -:102810008091E20084FF2CC080E189BD82E189BD06 -:1028200009B400FEFDCF8091D8008F7D8093D80041 -:102830008091E1008F7E8093E1008091E2008F7EA5 -:102840008093E2008091E20081608093E2008091B9 -:102850004502882311F084E007C08091E30087FDE2 -:1028600002C081E001C083E0809349020E942910E8 -:102870008091E10083FF29C08091E20083FF25C0A1 -:102880008091E100877F8093E10082E0809349029C -:10289000109245028091E1008E7F8093E10080914B -:1028A000E2008E7F8093E2008091E200806180935D -:1028B000E20042E060E080E00E94A3128091F0001C -:1028C00088608093F0000E942710FF91EF91BF91E4 -:1028D000AF919F918F917F916F915F914F913F91B8 -:1028E0002F910F900FBE0F901F9018951F920F926F -:1028F0000FB60F9211242F933F934F935F936F93D3 -:102900007F938F939F93AF93BF93CF93DF93EF9377 -:10291000FF93C091E900CF708091EC00D82FD17067 -:1029200080FDD0E81092E9008091F000877F8093CD -:10293000F00078940E94BA141092E9008091F0009F -:1029400088608093F000CD2BCF70C093E900FF9199 -:10295000EF91DF91CF91BF91AF919F918F917F9137 -:102960006F915F914F913F912F910F900FBE0F90FC -:102970001F9018951F93CF93DF93CDB7DEB7AA971B -:102980000FB6F894DEBF0FBECDBFEAE4F2E088E0F8 -:102990008E0F9091F10091938E13FBCF0E943A100D -:1029A0008091E80083FF1FC180914A0290914B0201 -:1029B000492F50E04A30510508F015C1FA01E25A9A -:1029C000FF4F0C94B528803881F0823809F00BC194 -:1029D00080914E028F708093E9008091EB0085FB1F -:1029E000882780F91092E90006C0809146029091F4 -:1029F0004702911182609091E800977F9093E800E0 -:102A00008093F1001092F100C8C0282F2D7F09F0AB -:102A1000EAC0882319F0823061F0E5C080914C0251 -:102A2000813009F0E0C0933009F080E080934702E4 -:102A30002BC080914C02811127C080914E028F7073 -:102A400009F4D1C08093E9002091EB0020FF1CC065 -:102A5000933021F48091EB00806214C09091EB00E0 -:102A600090619093EB0021E030E0A90102C0440F97 -:102A7000551F8A95E2F74093EA001092EA00809190 -:102A8000EB0088608093EB001092E9008091E800F1 -:102A9000877F86C08111A7C010914C021F7780915B -:102AA000E3008078812B8093E3008091E800877FAA -:102AB0008093E8000E94D8128091E80080FFFCCF4C -:102AC0008091E30080688093E300111102C082E0EE -:102AD00001C083E08093490286C08058823008F0AC -:102AE00082C080914C0290914D028C3D53E095073D -:102AF00079F583E08A838AE289834FB7F894DE010F -:102B0000139620E03EE051E2E32FF0E050935700AF -:102B1000E49120FF03C0E295EF703F5FEF708E2FCE -:102B200090E0EA3010F0C79601C0C0968D939D9357 -:102B30002F5F243149F74FBF8091E800877F809352 -:102B4000E8006AE270E0CE0101960E94DF1114C035 -:102B5000AE014F5F5F4F60914E020E942611BC0193 -:102B6000009709F440C09091E800977F9093E800A7 -:102B700089819A810E9442128091E8008B7780932C -:102B8000E80031C0803879F58091E800877F809334 -:102B9000E800809145028093F1008091E8008E77F3 -:102BA0008093E8000E94D8121EC081111CC0909131 -:102BB0004C029230C0F48091E800877F8093E80057 -:102BC000909345020E94D81280914502811106C05F -:102BD0008091E30087FD02C081E001C084E0809322 -:102BE00049020E942B108091E80083FF0AC0809167 -:102BF000E800877F8093E8008091EB0080628093FB -:102C0000EB00AA960FB6F894DEBF0FBECDBFDF91E2 -:102C1000CF911F9108950895CF9380914902882301 -:102C2000A1F0C091E900CF709091EC00892F8170E4 -:102C300090FD80E8C82B1092E9008091E80083FDA8 -:102C40000E94BA14CF70C093E900CF910895909379 -:102C50008101809380010895E0918001F0918101CC -:102C6000309721F00190F081E02D099480E00895E3 -:102C7000E0918001F0918101309721F00280F38191 -:102C8000E02D09940895E0918001F0918101309741 -:102C900021F00480F581E02D0994089520917E01B2 -:102CA00030917F018217930771F090937F01809399 -:102CB0007E01E0918001F0918101309721F0068042 -:102CC000F781E02D0994089520917C0130917D01D8 -:102CD0008217930771F090937D0180937C01E091BE -:102CE0008001F0918101309721F00084F185E02D81 -:102CF0000994089508950C947A160E94B7210E94B1 -:102D0000B5080E943D220C94D0265F926F927F926C -:102D10008F929F92AF92BF92CF92DF92EF92FF92EB -:102D20000F931F93CF93DF9300D000D01F92CDB7A6 -:102D3000DEB70E94FA089BE8C92E91E0D92E03E085 -:102D400010E0AA24A394B12C502E802F0E94750964 -:102D50004C01F601729062906F0168267926611429 -:102D60007104A1F40150110978F78FEF89838A83E8 -:102D70001B820E94C0218160782F9D838C834981B2 -:102D80005A816B818D810E94351738C08091D8019E -:102D900081FD0E947E092BE030E07501022E02C009 -:102DA000EE0CFF1C0A94E2F7C70186219721892BBC -:102DB00009F129835A828E209F2091E0892809F405 -:102DC00090E09B830E94C0218160782F9D838C833B -:102DD00049815A816B818D810E943517000F111F27 -:102DE000F801ED57FE4F80819181E826F926F182A6 -:102DF000E08204C02150310980F6B4CF0E94112432 -:102E0000109182010E942C161817D1F00E942C16E6 -:102E1000809382010F900F900F900F900F90DF9191 -:102E2000CF911F910F91FF90EF90DF90CF90BF90C7 -:102E3000AF909F908F907F906F905F900C949F08C1 -:102E40000F900F900F900F900F90DF91CF911F91E7 -:102E50000F91FF90EF90DF90CF90BF90AF909F9039 -:102E60008F907F906F905F900895CF93DF93CDB751 -:102E7000DEB72B970FB6F894DEBF0FBECDBF4F83E2 -:102E8000588769877A878B87DE01119686E0FD0176 -:102E900011928A95E9F785E0FE01379601900D922F -:102EA0008A95E1F749815A816B817C818D819E8170 -:102EB0000E94AC1D2B960FB6F894DEBF0FBECDBF9F -:102EC000DF91CF910895CF93882309F4C2C0C82F12 -:102ED000823859F40E942C1681FDBBC089E30E9400 -:102EE00086200E94092189E30CC0833879F40E946E -:102EF0002C1680FDAEC083E50E9486200E94092129 -:102F000083E50E94A320CF910C940921843859F4C1 -:102F10000E942C1682FD9DC087E40E9486200E949C -:102F2000092187E4EECF8CEF8C0F813A48F48C2F87 -:102F30000E94382681118DC08C2F0E948620E3CFFD -:102F400080E28C0F883048F4C77081E001C0880FA0 -:102F5000CA95EAF70E94C220D6CF8BE58C0F83304A -:102F600078F4C53A29F0C63A31F083E890E005C01C -:102F700081E890E002C082E890E0CF910C944E1678 -:102F800088E58C0F833108F064C0C83A39F1C93A3A -:102F900041F1CA3A49F1CB3A51F1CC3A59F1CD3A23 -:102FA00061F1C03B69F1CE3A71F1CF3A79F1C13BA1 -:102FB00081F1C23B89F1C33B91F1C43B99F1C53B1F -:102FC000A1F1C63BA9F1C73BB1F1C83BB9F1C93B7F -:102FD000C1F1CA3BC9F180E090E038C082EE90E0D8 -:102FE00035C089EE90E032C08AEE90E02FC085EBCC -:102FF00090E02CC086EB90E029C087EB90E026C0E3 -:103000008CEC90E023C08DEC90E020C083E891E050 -:103010001DC08AE891E01AC082E991E017C084E9F6 -:1030200091E014C081E292E011C083E292E00EC010 -:1030300084E292E00BC085E292E008C086E292E072 -:1030400005C087E292E002C08AE292E0CF910C9440 -:103050006416CF910895882309F44BC0823859F43F -:103060000E942C1681FF45C089E30E9486200E94A1 -:10307000092189E30CC0833871F40E942C1680FF6B -:1030800038C083E50E9486200E94092183E50E94C2 -:10309000A3200C940921843859F40E942C1682FF35 -:1030A00028C087E40E9486200E94092187E4EFCF90 -:1030B0009CEF980F913A58F390E2980F983050F4A3 -:1030C000877091E001C0990F8A95EAF7892F0E94D5 -:1030D000C820DFCF9BE5980F933020F480E090E08C -:1030E0000C944E16885A833120F480E090E00C94C2 -:1030F00064160895882321F00E94C2200C940921AF -:103100000895882321F00E94C8200C940921089575 -:103110007F928F929F92AF92BF92CF92DF92EF9267 -:10312000FF920F931F93CF93DF931F92CDB7DEB71C -:103130007C01C62E772EFC01058102950F7012814D -:1031400011110E94DF200E947F20882379F0112333 -:1031500069F080E28C0D883048F082E00E9468209F -:103160000E947F2091E0D82ED92601C0D12CE72DD6 -:10317000E295EF70F0E0E859FF4F0C94B528872DE9 -:10318000807F072D0F70882311F00295007F112397 -:1031900089F0002309F499C180E28C0D883020F475 -:1031A000802F0E94C22003C0802F0E94D2200E9444 -:1031B00009218BC18C2D0E942B18002309F4C3C157 -:1031C00080E28C0D883020F4802F0E94C82003C03C -:1031D000802F0E94D8200E940921B5C1872D807FB1 -:1031E000972D9F70803211F4892F03C0892F82950B -:1031F000807FCC2021F0F1E0CF16A1F01DC011237B -:1032000039F0002319F1013009F50E94F2209BC129 -:10321000002319F0013009F496C189830E94F5203A -:10322000898110C1112321F0063008F08CC10EC035 -:10323000053008F088C106C1112359F0002331F090 -:10324000F701958190FF41C19F7095830E947A1884 -:103250007AC1002309F4F6C03EC1872D8695869574 -:10326000837090E0009719F0019761F06CC1112311 -:1032700021F08C2D972D937002C080E090E00E9489 -:103280004E1661C1112321F08C2D972D937002C031 -:1032900080E090E00E94641656C18C2D112319F035 -:1032A0000E94192302C00E9481230E9406244BC160 -:1032B000872D837009F052C0111145C18C2D829564 -:1032C00086958770880F880F9C2D9F70892E912C72 -:1032D000A12CB12C082E04C0880C991CAA1CBB1C64 -:1032E0000A94D2F7C4FE14C00FE010E020E030E0F2 -:1032F000B901A80104C0440F551F661F771F8A95A6 -:10330000D2F7CB01BA01609570958095909503C076 -:1033100060E070E0CB01272D26952695237030E0E4 -:103320002230310569F02330310589F06829792987 -:103330008A299B292130310571F00E94F41E03C1B6 -:10334000682979298A299B290E94101FFCC00E94A4 -:10335000F41EC501B4010E94D81EF5C0112319F056 -:10336000872D817001C08695882309F4ECC08C2DCF -:10337000829586958770880F880F9C2D9F70892E67 -:10338000912CA12CB12C082E04C0880C991CAA1CCD -:10339000BB1C0A94D2F7C4FE14C00FE010E020E07A -:1033A00030E0B901A80104C0440F551F661F771F04 -:1033B0008A95D2F7CB01BA0160957095809590956A -:1033C00003C060E070E0CB01272D26952695237081 -:1033D000422F50E04230510569F04330510589F0E9 -:1033E000682979298A299B294130510571F00E9469 -:1033F000CE1FA9C0682979298A299B290E94EA1F22 -:10340000A2C00E94CE1FC501B4010E94B21F9BC082 -:103410008C2D90E0FC01E05EF109E531F10508F04A -:1034200050C0E858FF4F0C94B5280C2D0F70872D15 -:103430008F71112321F00E944B1F802F07CF0E9414 -:103440006C1F802F0E9481187EC0112341F005302F -:1034500008F079C0872D8F710E94911F74C00630CB -:1034600008F071C0F7CF112339F0872D8F710E94BA -:103470004B1F69C01123C9F3872D8F710E946C1FE8 -:1034800062C0112329F0872D8F710E94361F5BC007 -:103490000E942C1F58C0112351F0172D1F71812F2E -:1034A0000E944B1F63E0812F0E945F204CC081E08F -:1034B0000E946820023008F446C082E00E94682022 -:1034C00042C0112331F0002381F28C2D0E9463173A -:1034D0003AC0002389F28C2D0E942B1834C0472D4E -:1034E0004F706C2DC7010E9495040E94501E2BC086 -:1034F000111129C0472D4F7050E042305105B9F0ED -:103500004CF44115510581F041305105E1F40E9420 -:10351000F82619C04330510569F04430510599F43B -:103520008C2D0E944A270FC00E94E1260CC00E94E9 -:10353000142709C00E94272706C0472D4F706C2D05 -:10354000C7010E94A704DD20F9F00E945B2080FDE6 -:103550001BC0F70112820E9455200E944B1FC70119 -:103560000E94D31A0E9455200F90DF91CF911F9196 -:103570000F91FF90EF90DF90CF90BF90AF909F9012 -:103580008F907F900C946C1F0F90DF91CF911F91C3 -:103590000F91FF90EF90DF90CF90BF90AF909F90F2 -:1035A0008F907F9008950F931F93CF93DF93EC013B -:1035B000888199812B813C81232BB9F09F3F11F4A5 -:1035C0008F3F99F0CE010E94D904882371F0688161 -:1035D00079818A810E9451208C010E9406200E94DC -:1035E000CD1EB801CE010E948818DF91CF911F91A6 -:1035F0000F9108950E94DF200E94EF200E94B420C6 -:103600000E9409210E94B7240E94062480E090E0D5 -:103610000E944E1680E090E00C9464160E94CF2029 -:103620000C94FA1A0E944620292F22952F7030E020 -:103630002C3031054CF42A3031056CF4225031091C -:1036400022303105A8F407C02C30310569F02F3045 -:10365000310551F00DC0803F69F018F4803E40F410 -:1036600009C0843F29F406C093FB882780F9089598 -:1036700080E0089581E00895CF93DF9300D000D0DB -:103680001F92CDB7DEB70F900F900F900F900F9055 -:10369000DF91CF910895CF93DF9300D000D000D079 -:1036A000CDB7DEB726960FB6F894DEBF0FBECDBFFE -:1036B000DF91CF9108951F93CF93DF93C0918B013A -:1036C00016E080918C01C81799F0D0E01C9FF001A2 -:1036D0001D9FF00D1124E357FE4F408151816281FF -:1036E0007381848195810E944B1B2196C770E9CF1D -:1036F000DF91CF911F9108954091BD015091BE017E -:103700006091BF017091C0018091C1019091C2018F -:103710000C944B1B8091C20182958F7009F054C0AC -:103720008091BF01882309F44FC080918B01A09143 -:103730008C016091BD017091BE014091C00150911A -:10374000C101B6E08A1709F43FC090E04115510568 -:10375000C1F17F3F11F46F3FA1F1B89FF001B99F14 -:10376000F00D1124E357FE4F218172132AC02081EE -:10377000621327C02281211124C0238134812417A0 -:10378000350710F421503109241B350B283C310535 -:10379000C0F42091C2012F7020612093C20126E065 -:1037A000289FF001299FF00D1124EE56FE4F8081D5 -:1037B0008F70806180838DEB91E00E94D31A0C940E -:1037C0005B1B01968770BECF0895CF92DF92EF9278 -:1037D000FF920F931F93CF93DF93CDB7DEB762971E -:1037E0000FB6F894DEBF0FBECDBF8C0185E0F801A7 -:1037F000DE011D9601900D928A95E1F7D8014C915A -:1038000011965C91119712966C9112971396CD9028 -:10381000DC9014973091BD017091BE018091C00180 -:103820009091C101009709F46BC17F3F19F43F3FAC -:1038300009F466C1E090BF01EE2009F4C0C02091F8 -:10384000C201C816D90628F0F601E81BF90BCF0112 -:1038500004C0809590958C0D9D1DFF24F394883CA9 -:10386000910578F0F12C207F09F0C6C07C2DD98A13 -:10387000C88A89890E943C1B8DEB91E00E94D31A73 -:10388000B1C0822F807F09F046C0751314C0341375 -:1038900012C0611110C02F7020612093C2010E94DC -:1038A0007C1B8DEB91E00E94D31A8091C201D8015C -:1038B00015968C932EC0CD2819F15F3F11F44F3F20 -:1038C000F9F0F62E61111CC080918B0120918C01C2 -:1038D00036E0821709F45AC090E0389FF001399F12 -:1038E000F00D1124E357FE4F7181571306C070810C -:1038F000471303C07281711103C001968770E9CF2D -:10390000F62E662309F418C18091C201816080936C -:10391000C201F12C11C1751308C0341306C0611126 -:1039200004C08091C201D801C3C04D875E878D85D8 -:103930009E856A8B0E94121B6A898823E1F16623A7 -:10394000D1F12091C201822F82958F7090E0029771 -:1039500074F08091BD019091BE0198878F83198684 -:10396000DB86CA862C87CE0107960E94D31A86E092 -:10397000F801ADEBB1E001900D928A95E1F70E945C -:103980008A1B0E947C1BFF24F394D6C04D875E8760 -:103990008D859E850E944620292F22952F7030E02C -:1039A000223031050CF0BCC09F7009F0B6C0805EBB -:1039B000883008F4C1C0C8010E94D31AE4CFC816E9 -:1039C000D90608F453C0F601E81BF90BCF01883C77 -:1039D000910508F450C0F12C7C2DD98AC88A8989B8 -:1039E0000E943C1BEDEBF1E086E0DF011D928A9521 -:1039F000E9F70E947C1BA0C0751314C0341312C0D9 -:103A0000611110C08091C201F8018583C8010E9434 -:103A1000D31A86E0EDEBF1E0DF011D928A95E9F71C -:103A2000FE2C8AC04D875E878D859E856A8B0E949D -:103A3000121B6A89882309F4BECF662309F4BBCF21 -:103A40002091C201822F82958F7090E002970CF432 -:103A50008ECF8091BD019091BE019A8389831B8294 -:103A6000DD82CC822E83CE0101967FCF809590950A -:103A70008C0D9D1DACCFF62E662309F49CCF7513DB -:103A80002EC034132CC02091C20120FD1FC0822FF4 -:103A900082958F70D9F0D80115962C9315978F3099 -:103AA00049F08F5F982F9295907F822F8F70892B8E -:103AB00015968C93C8010E94D31A86E0F801ADEBED -:103AC000B1E001900D928A95E1F793CF86E0F8017D -:103AD000ADEBB1E001900D928A95E1F72DC04D87D5 -:103AE0005E878D859E850E94121B811140CF80913B -:103AF000C20181608093C201C8010E94D31A1CC018 -:103B0000662309F458CF4D875E878D859E850E9478 -:103B1000121B882309F44FCF2ACF811148CF0CC044 -:103B2000243031050CF047CF9F7009F440CFF801E5 -:103B30009581907F09F03BCF8F2D62960FB6F89458 -:103B4000DEBF0FBECDBFDF91CF911F910F91FF90D0 -:103B5000EF90DF90CF9008951F93CF93DF93CDB771 -:103B6000DEB72C970FB6F894DEBF0FBECDBF4F83E4 -:103B7000588769877A878B879C87CE0107960E9432 -:103B8000E51B882369F08F8198852A853B85232B47 -:103B9000F1F19F3F09F063C08F3F09F060C037C06B -:103BA00086E0FE013796DE01119601900D928A950E -:103BB000E1F76F817885EA85FB85309741F17F3F9A -:103BC00011F46F3F21F120918C0130E0C901019681 -:103BD0008770992740918B0150E08417950709F46D -:103BE00047C069837A83FD83EC8396E0929FD0017E -:103BF000939FB00D1124A357BE4FFE013196019043 -:103C00000D929A95E1F780938C010E945B1B16E060 -:103C100080918B0190918C018917C1F1189FC0018F -:103C2000112483579E4F0E94E51B882379F1E09170 -:103C30008B011E9FF0011124E357FE4F40815181FB -:103C400062817381848195810E944B1B80918B01DD -:103C500090E001968770992780938B01D9CF4F818F -:103C6000588569857A858B859C850E944B1BCFCFB3 -:103C70000E940E1B10928C0110928B01EDEBF1E073 -:103C800086E0DF011D928A95E9F7C1CF2C960FB629 -:103C9000F894DEBF0FBECDBFDF91CF911F91089585 -:103CA000EF92FF920F931F93CF93DF938C010097B6 -:103CB00009F46CC0F12CEE24E394E8012196F8019C -:103CC0008491843740F4843008F051C0813081F011 -:103CD000823019F15BC0853709F444C0A8F19CE734 -:103CE000980F903708F052C08F770E942B1841C070 -:103CF0000E5F1F4FFE01C49180E28C0F883048F4A4 -:103D0000C7708E2D01C0880FCA95EAF70E94E22085 -:103D100014C08C2F0E9463172DC00E5F1F4FFE0131 -:103D2000C49180E28C0F883058F4C7708E2D01C08A -:103D3000880FCA95EAF70E94E8200E9409211AC05C -:103D40008C2F0E942B1816C00E5F1F4FFE01C491CE -:103D5000CC2381F08FE99FE00197F1F700C00000CC -:103D6000C150F6CF0E5F1F4FFE01F49003C00E94BA -:103D700063178E018F2D882309F49FCFEFE9FFE0B1 -:103D80003197F1F700C000008150F5CFDF91CF915E -:103D90001F910F91FF90EF90089508956093C701D0 -:103DA0007093C8018093C9019093CA010C94FA1AC8 -:103DB0000F931F930091C7011091C8012091C90171 -:103DC0003091CA01DC01CB01802B912BA22BB32BAC -:103DD0008093C7019093C801A093C901B093CA0111 -:103DE0001F910F910C94FA1A0F931F930091C70122 -:103DF0001091C8012091C9013091CA01DC01CB01A9 -:103E000080239123A223B3238093C7019093C801F9 -:103E1000A093C901B093CA011F910F910C94FA1A93 -:103E20000F931F930091C7011091C8012091C90100 -:103E30003091CA01DC01CB0180279127A227B3274B -:103E40008093C7019093C801A093C901B093CA01A0 -:103E50001F910F910C94FA1A1092C3011092C40191 -:103E60001092C5011092C6010C94FA1A41E050E07C -:103E700060E070E004C0440F551F661F771F8A95ED -:103E8000D2F74093C3015093C4016093C50170936E -:103E9000C6010C94FA1A41E050E060E070E004C002 -:103EA000440F551F661F771F8A95D2F78091C30173 -:103EB0009091C401A091C501B091C601482B592B26 -:103EC0006A2B7B2B4093C3015093C4016093C501BF -:103ED0007093C6010C94FA1A41E050E060E070E083 -:103EE00004C0440F551F661F771F8A95D2F740956F -:103EF0005095609570958091C3019091C401A091F7 -:103F0000C501B091C601482359236A237B234093FE -:103F1000C3015093C4016093C5017093C6010C9412 -:103F2000FA1A41E050E060E070E004C0440F551F11 -:103F3000661F771F8A95D2F78091C3019091C401C3 -:103F4000A091C501B091C601482759276A277B2750 -:103F50004093C3015093C4016093C5017093C6019F -:103F60000C94FA1A0F931F930091C3011091C4018E -:103F70002091C5013091C601DC01CB01802B912B32 -:103F8000A22BB32B8093C3019093C401A093C501CE -:103F9000B093C6011F910F910C94FA1A0F931F93BF -:103FA0000091C3011091C4012091C5013091C60157 -:103FB000DC01CB0180239123A223B3238093C3018F -:103FC0009093C401A093C501B093C6011F910F91B6 -:103FD0000C94FA1A0F931F930091C3011091C4011E -:103FE0002091C5013091C601DC01CB0180279127CA -:103FF000A227B3278093C3019093C401A093C50166 -:10400000B093C6011F910F910C94FA1A0895CF92A4 -:10401000DF92EF92FF920F931F93CF93DF938C0168 -:10402000C090C701D090C801E090C901F090CA01CA -:104030008091C3019091C401A091C501B091C601C6 -:10404000C82AD92AEA2AFB2ACFE1D0E0D701C60143 -:104050000C2E04C0B695A795979587950A94D2F72C -:1040600080FF06C0B8018C2F0E940508019721F43B -:10407000219760F780E001C08C2FDF91CF911F91D5 -:104080000F91FF90EF90DF90CF900895CF93DF9343 -:10409000EC010E940720BE010E940508DF91CF912C -:1040A0000895CB010E94462008958091CB0185950B -:1040B0008595859508958091CB018770089598E046 -:1040C000899F90011124262B2093CB010C944B1F28 -:1040D0002091CB01809582238093CB01982F9770FC -:1040E00069F430E0482F552747FD509524173507D0 -:1040F00029F08595859585950C946C1F0895909170 -:10410000CB01977081E009F480E0089520910D01C2 -:1041100030910E01F90132969FEF40E0519158170E -:1041200089F09F3F19F4511101C0942F4F5F463021 -:10413000A9F79F3F39F0F901E90FF11D97FDFA95B5 -:1041400082830895089520910D0130910E01F901A7 -:104150003296285F3F4F9081981301C010823196AC -:10416000E217F307C1F7089581E090E0E0910D01B7 -:10417000F0910E01E80FF91F108201968830910529 -:10418000A9F708959091D701892B8093D7010895BD -:1041900080959091D70189238093D701089510923B -:1041A000D70108959091D601892B8093D601089567 -:1041B00080959091D60189238093D601089510921D -:1041C000D60108959091D501892B8093D50108954A -:1041D00080959091D50189238093D50108951092FF -:1041E000D50108958093CC0108951092CC010895D3 -:1041F00080910D0190910E01FC0131969C01285F88 -:104200003F4F80E0919191118F5FE217F307D1F753 -:104210000895E0910D01F0910E018091D701808306 -:10422000E0910D01F0910E0190818091D601892BD2 -:104230008083E0910D01F0910E0190818091D50174 -:10424000892B80838091CC01882361F0E0910D015E -:10425000F0910E019081892B80830E94F8208111BA -:104260001092CC0180910D0190910E010C943816A2 -:1042700020E0009739F0AC01415051098423952387 -:104280002F5FF7CF822F089580914902843039F152 -:104290001092D90120E488E190E00FB6F894A89537 -:1042A000809360000FBE2093600080E00E94FA03BC -:1042B00080E00E949F0883B7817F846083BF83B7BB -:1042C000816083BF7894889583B78E7F83BF88E1B0 -:1042D0000FB6F89480936000109260000FBE0895AE -:1042E0000895089580E00E94FA030E9470210E94C0 -:1042F000FA080E9471210E947F0991E0811101C09A -:1043000090E0892F08950E940E1B80E00E94FA031E -:104310000E94D0260E942C160C949F081F920F9288 -:104320000FB60F9211248F939F93AF93BF938091F9 -:10433000D901811113C08091DA019091DB01A09124 -:10434000DC01B091DD014196A11DB11D8093DA0120 -:104350009093DB01A093DC01B093DD01BF91AF919D -:104360009F918F910F900FBE0F901F90189582E034 -:1043700084BD93E095BD9AEF97BD80936E0008953C -:104380002FB7F8948091DA019091DB01A091DC01C4 -:10439000B091DD012FBF0895CF92DF92EF92FF928F -:1043A0000F931F932FB7F8944091DA015091DB01DE -:1043B0006091DC017091DD012FBF6A017B01EE2469 -:1043C000FF248C0120E030E0C016D106E206F3069F -:1043D00010F4415051099A01281B390BC9011F9152 -:1043E0000F91FF90EF90DF90CF9008951F920F9262 -:1043F0000FB60F9211248F939F93AF93BF93809129 -:10440000DA019091DB01A091DC01B091DD01019610 -:10441000A11DB11D8093DA019093DB01A093DC0113 -:10442000B093DD01BF91AF919F918F910F900FBE1F -:104430000F901F9018950E942913F8942FEF87EA88 -:1044400091E6215080409040E1F700C0000087E0F5 -:1044500090EBDC018093540290935502A093560296 -:10446000B09357029CE088E10FB6F894A89580932A -:1044700060000FBE90936000FFCF0E9472228111F6 -:1044800002C00E9453220E947D228093D8010E9484 -:104490008522809352020E948122682F70E080E082 -:1044A00090E00C94CE1E6DEE7EEF80E090E00E94D6 -:1044B000ED2860E082E090E00E94CF2860E083E099 -:1044C00090E00E94CF2860E084E090E00E94CF2836 -:1044D00060E085E090E00E94CF2860E086E090E018 -:1044E0000C94CF2880E090E00E94C92821E08D3E06 -:1044F0009E4F09F020E0822F089582E090E00C9416 -:10450000BB2883E090E00C94BB2884E090E00C94FE -:10451000BB28682F84E090E00C94CF2886E090E0E0 -:104520000C94BB28682F86E090E00C94CF288091F3 -:10453000E00180FF0BC06091120185E0689FB0012F -:10454000112475956795759567952BC081FF09C0F6 -:104550006091120185E0689FB001112475956795FF -:1045600020C082FF07C06091120185E0689FB00102 -:10457000112417C09091E1019923D1F060911101AC -:10458000961788F72091120185E0289F9001112449 -:10459000929FA001939F500D112470E0CA010E94C8 -:1045A000A1286038710540F46115710539F002C029 -:1045B00065E070E0862F08958FE7089581E0089503 -:1045C0008091E00180FF08C06091100170E0759556 -:1045D00067957595679521C081FF06C060911001B0 -:1045E00070E07595679519C082FF04C06091100155 -:1045F00070E010C09091E1019923C1F060910F012A -:104600009617A0F780911001899FC001112470E0D6 -:104610000E94A1286038710528F46115710521F008 -:10462000862F08958FE7089581E0089561E070E096 -:10463000F4CF803F21F40E949722819504C0813FEE -:1046400029F40E9497228093E4010895823F21F487 -:104650000E949722819504C0833F29F40E949722EB -:104660008093E3010895893F19F40E94E02205C078 -:104670008A3F31F40E94E02281958093E5010895FC -:104680008B3F21F40E94E022819504C08C3F29F4E5 -:104690000E94E0228093E6010895843F21F48091F6 -:1046A000E201816017C0853F21F48091E2018260C0 -:1046B00011C0863F21F48091E20184600BC0873FE6 -:1046C00021F48091E201886005C0883F31F4809137 -:1046D000E20180618093E20108958D3F21F4809191 -:1046E000E00181600BC08E3F21F48091E001826087 -:1046F00005C08F3F29F48091E00184608093E00140 -:104700000895803F39F48091E40187FF6CC01092D6 -:10471000E40169C0813F29F48091E4011816BCF3DB -:1047200062C09091E301823F29F497FF5CC0109230 -:10473000E30159C0833F19F41916CCF354C0893FE3 -:1047400041F48091E50118160CF04DC01092E5017E -:104750004AC08A3F29F48091E50187FF44C0F6CF23 -:104760008B3F39F48091E60187FF3DC01092E6014E -:104770003AC08C3F29F48091E6011816BCF333C08F -:10478000843F21F48091E2018E7F17C0853F21F4A0 -:104790008091E2018D7F11C0863F21F48091E2017A -:1047A0008B7F0BC0873F21F48091E201877F05C09A -:1047B000883F31F48091E2018F7E8093E20113C043 -:1047C0008D3F21F48091E0018E7F0BC08E3F21F45C -:1047D0008091E0018D7F05C08F3F29F48091E00139 -:1047E0008B7F8093E0018091E30181110EC0809165 -:1047F000E40181110AC08091E501811106C0809118 -:10480000E601811102C01092E101089582EE91E06B -:104810000E9443160E94C0219093DF018093DE0125 -:1048200008951F93CF93DF938091DE019091DF0174 -:104830000E94CC21AC019091E101992321F02091BB -:10484000130130E006C0209114018AE0289F9001F6 -:1048500011244217530708F486C08091E301C091E8 -:10486000E401D091E5011091E601811107C0C11169 -:1048700076C0D11174C0111172C075C09F3F19F07C -:104880009F5F9093E101181624F40E949722809371 -:10489000E3018091E30187FF05C00E949722819583 -:1048A0008093E3011C1624F40E9497228093E40174 -:1048B0008091E40187FF05C00E9497228195809333 -:1048C000E4016091E301662339F1C091E401CC2356 -:1048D00019F1772767FD7095872F972F0E949E27E4 -:1048E00023E333E343E35FE30E9402280E946B2744 -:1048F0006093E3016C2F772767FD7095872F972FC3 -:104900000E949E2723E333E343E35FE30E940228F0 -:104910000E946B276093E4011D1624F40E94E0229C -:104920008093E5018091E50187FF05C00E94E022A8 -:1049300081958093E501111624F40E94E022809372 -:10494000E6018091E60187FF05C00E94E022819583 -:104950008093E601DF91CF911F910C9406249F3F35 -:1049600009F08ECF96CFDF91CF911F910895E2EE9F -:10497000F1E085E0DF011D928A95E9F71092E101EF -:104980001092E0010895833081F128F4813059F0CC -:104990008230D1F00895853009F449C0B8F18630ED -:1049A00009F456C0089580911401262F30E0280F95 -:1049B000311D2F3F310524F4680F609314010895D1 -:1049C0008FEF80931401089580911301262F30E01A -:1049D000280F311D2F3F310524F4680F6093130118 -:1049E00008958FEF80931301089580911201262F6F -:1049F00030E0280F311D2F3F310524F4680F6093FC -:104A0000120108958FEF8093120108958091110192 -:104A1000262F30E0280F311D2F3F310524F4680F79 -:104A20006093110108958FEF809311010895809193 -:104A30001001262F30E0280F311D2F3F310524F4BF -:104A4000680F6093100108958FEF8093100108950F -:104A500080910F01262F30E0280F311D2F3F3105A7 -:104A600024F4680F60930F0108958FEF80930F0176 -:104A70000895833011F128F4813049F0823091F0AB -:104A80000895853081F120F18630C1F1089580913B -:104A90001401681720F4861B809314010895109266 -:104AA0001401089580911301681720F4861B8093E8 -:104AB000130108951092130108958091120168174F -:104AC00020F4861B8093120108951092120108951C -:104AD00080911101681720F4861B809311010895BD -:104AE00010921101089580911001681720F4861B1F -:104AF00080931001089510921001089580910F0184 -:104B0000681720F4861B80930F01089510920F01FF -:104B100008950F931F938732D8F58E3108F085C022 -:104B20008E3009F46FC098F4873009F459C08B3087 -:104B300009F48FC0863009F093C08091D801817F3D -:104B40008E7F8093D80181E08093E8018AC086310E -:104B500009F47FC068F4803109F082C08091D801E7 -:104B600083FB222720F991E0922790FB83F953C021 -:104B7000893109F46EC08B3109F072C08091D8017F -:104B800081FB222720F991E0922790FB81F943C015 -:104B9000883309F45EC050F4893209F45CC085336F -:104BA00009F459C0873209F456C05AC0833409F455 -:104BB00052C028F48A3308F453C0895337C088346C -:104BC00009F04EC00E940E1B0FEF13ED20E30150C1 -:104BD00010402040E1F700C000000E941B2239C0B5 -:104BE0009091D801892F8095817080FB90F929F0F0 -:104BF000966098609093D80134C0997F977F909386 -:104C0000D80127C08091D80182FB222720F991E0AA -:104C1000922790FB82F98093D8019923D1F080915B -:104C2000D80181608093D80114C08D5141E050E0DB -:104C300060E070E08A019B0104C0000F111F221F79 -:104C4000331F8A95D2F7C901B8010E94CE1E0E9477 -:104C50000E1B81E006C061E070E080E090E0F5CFDF -:104C600080E01F910F91089580E0089580E00895FD -:104C7000CF93C82F8091E801813069F018F082301D -:104C8000C9F184C0E0910D01F0910E018081823262 -:104C900009F07EC007C0E0910D01F0910E01808106 -:104CA000823261F48C2F0E943426811104C08C2F33 -:104CB0000E9489251DC081E090E01AC08C2F0E94BF -:104CC0003626811114C0C43179F048F4CB3079F024 -:104CD000C03109F061C082E08093E80108C0C932A8 -:104CE00019F0C83321F058C01092E80155C081E096 -:104CF000817054C0C93291F120F5C43179F1B0F41A -:104D0000C73009F047C08EE18093140182E380939D -:104D100013018AE08093120184E18093110188E0FD -:104D20008093100188E280930F0134C0CE51C630C9 -:104D300088F5EC2FF0E0EC5CFE4F80818093E7017A -:104D400029C0CE34E9F020F4CB3421F56AE013C059 -:104D5000C13579F0C235F1F461E00DC08091E70111 -:104D6000882319F01092E70115C081E08093E801D3 -:104D700015C061E006C08091E7010E94C3240AC00B -:104D80006AE08091E7010E94392504C01092E80191 -:104D900080E004C081E002C080E0AACFCF910895F6 -:104DA0000E947222811102C00E9453220E948E2210 -:104DB0008093530280FF02C0869501C080E00C946E -:104DC000FA0380915302982F9695292F30E02330D3 -:104DD00031054CF49F5F990F8170892B816080931E -:104DE00053020E9492228091530286950C94FA03FA -:104DF00080915302982F969591F09158990F817058 -:104E0000892B809353028E7F91E009F490E080918A -:104E1000530290FB80F9809353020E94922280916A -:104E2000530286950C94FA0380915302982F909523 -:104E300090FB80F9809353020E949222809153024A -:104E400080FF02C0869501C080E00C94FA03909127 -:104E50005302892F86958F5F8F779170843028F465 -:104E6000880F892B8093530202C090935302809144 -:104E700053028E7F91E009F490E08091530290FB01 -:104E800080F9809353020E9492228091530286956A -:104E90000C94FA0320915302922F96958927982F0C -:104EA000990F822F8170892B809353028E7F91E01E -:104EB00009F490E08091530290FB80F980935302B3 -:104EC0000E9492228091530286950C94FA0380915D -:104ED00053028695089504D06894B1118DC0089549 -:104EE00070D088F09F5790F0B92F9927B751A0F054 -:104EF000D1F0660F771F881F991F1AF0BA95C9F76E -:104F000012C0B13081F077D0B1E0089574C0672F3E -:104F1000782F8827B85F39F0B93FCCF3869577951D -:104F20006795B395D9F73EF4909580957095619506 -:104F30007F4F8F4F9F4F0895E89409C097FB3EF431 -:104F400090958095709561957F4F8F4F9F4F9923D6 -:104F5000A9F0F92F96E9BB279395F6958795779554 -:104F60006795B795F111F8CFFAF4BB0F11F460FF14 -:104F70001BC06F5F7F4F8F4F9F4F16C0882311F06C -:104F800096E911C0772321F09EE8872F762F05C080 -:104F9000662371F096E8862F70E060E02AF09A951B -:104FA000660F771F881FDAF7880F9695879597F910 -:104FB000089557FD9058440F551F59F05F3F71F009 -:104FC0004795880F97FB991F61F09F3F79F0879570 -:104FD0000895121613061406551FF2CF4695F1DFF9 -:104FE00008C0161617061806991FF1CF8695710589 -:104FF000610508940895E894BB2766277727CB01BD -:1050000097F908950BD078C069D028F06ED018F0C9 -:10501000952309F05AC05FC01124EECFCADFA0F378 -:10502000959FD1F3950F50E0551F629FF001729F3D -:10503000BB27F00DB11D639FAA27F00DB11DAA1F5C -:10504000649F6627B00DA11D661F829F2227B00DA9 -:10505000A11D621F739FB00DA11D621F839FA00D34 -:10506000611D221F749F3327A00D611D231F849F84 -:10507000600D211D822F762F6A2F11249F575040DB -:105080008AF0E1F088234AF0EE0FFF1FBB1F661F76 -:10509000771F881F91505040A9F79E3F510570F02F -:1050A00014C0AACF5F3FECF3983EDCF3869577956A -:1050B0006795B795F795E7959F5FC1F7FE2B880F2A -:1050C000911D9695879597F9089597F99F6780E8C0 -:1050D00070E060E008959FEF80EC089500240A944A -:1050E0001616170618060906089500240A941216C3 -:1050F0001306140605060895092E0394000C11F4F6 -:10510000882352F0BB0F40F4BF2B11F460FF04C0A2 -:105110006F5F7F4F8F4F9F4F0895AA1BBB1B51E1BD -:1051200007C0AA1FBB1FA617B70710F0A61BB70B17 -:10513000881F991F5A95A9F780959095BC01CD01BC -:10514000089597FB072E16F4009407D077FD09D039 -:105150000E948D2807FC05D03EF4909581959F4FC5 -:105160000895709561957F4F0895EE0FFF1F05908C -:10517000F491E02D0994F999FECF92BD81BDF89A82 -:10518000992780B50895A6E1B0E044E050E00C9482 -:10519000F528A8E1B0E042E050E00C94F528262F75 -:1051A000F999FECF92BD81BDF89A019700B402161D -:1051B00039F01FBA20BD0FB6F894FA9AF99A0FBECB -:1051C00008950396272F0E94D0280E94CF28252FCC -:1051D0000E94D028242F0C94D0280196272F0E94BB -:1051E000D0280C94CF28DC01CB01FC01F999FECF2B -:1051F00006C0F2BDE1BDF89A319600B40D9241505F -:0A5200005040B8F70895F894FFCF6E -:10520A00FFFF580FE60FC30F8F0F5B0F01CD012869 -:10521A0008140A321E1F0F03764F5F6F7F496943D6 -:10522A0079095953633F4D36FE06B1067B062706B8 -:0E523A00400659060102030405060708090094 -:00000001FF diff --git a/keyboards/planck/keymaps/yang/config.h b/keyboards/planck/keymaps/yang/config.h new file mode 100644 index 000000000..5921e9377 --- /dev/null +++ b/keyboards/planck/keymaps/yang/config.h @@ -0,0 +1,15 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +/* ws2812 RGB LED */ +#define ws2812_PORTREG PORTD +#define ws2812_DDRREG DDRD +#define ws2812_pin PD1 +#define RGBLED_NUM 28 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + +#endif diff --git a/keyboards/planck/planck.c b/keyboards/planck/planck.c index f1a76266e..8d70bb4e5 100644 --- a/keyboards/planck/planck.c +++ b/keyboards/planck/planck.c @@ -1,302 +1,9 @@ #include "planck.h" -__attribute__ ((weak)) -void matrix_init_user(void) {} - -__attribute__ ((weak)) -void matrix_scan_user(void) {} - -__attribute__ ((weak)) -bool process_action_user(keyrecord_t *record) { - return true; -} - -__attribute__ ((weak)) -void led_set_user(uint8_t usb_led) {} - void matrix_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_init_ports(); -#endif - // Turn status LED on DDRE |= (1<<6); PORTE |= (1<<6); matrix_init_user(); -} - -void matrix_scan_kb(void) { - matrix_scan_user(); -} - -bool process_action_kb(keyrecord_t *record) { - return process_action_user(record); -} - -void led_set_kb(uint8_t usb_led) { - // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here - - led_set_user(usb_led); -} - -#ifdef BACKLIGHT_ENABLE -#define CHANNEL OCR1C -#define BREATHING_NO_HALT 0 -#define BREATHING_HALT_OFF 1 -#define BREATHING_HALT_ON 2 - -static uint8_t breath_intensity; -static uint8_t breath_speed; -static uint16_t breathing_index; -static uint8_t breathing_halt; - -void backlight_init_ports() -{ - - // Setup PB7 as output and output low. - DDRB |= (1<<7); - PORTB &= ~(1<<7); - - // Use full 16-bit resolution. - ICR1 = 0xFFFF; - - // I could write a wall of text here to explain... but TL;DW - // Go read the ATmega32u4 datasheet. - // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on - - // Pin PB7 = OCR1C (Timer 1, Channel C) - // Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0 - // (i.e. start high, go low when counter matches.) - // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0 - // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1 - - TCCR1A = _BV(COM1C1) | _BV(WGM11); // = 0b00001010; - TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; - - backlight_init(); - breathing_defaults(); -} - -void backlight_set(uint8_t level) -{ - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - - if ( level == 0 ) - { - // Turn off PWM control on PB7, revert to output low. - TCCR1A &= ~(_BV(COM1C1)); - CHANNEL = 0x0; - } - else if ( level == BACKLIGHT_LEVELS ) - { - // Turn on PWM control of PB7 - TCCR1A |= _BV(COM1C1); - // Set the brightness - CHANNEL = 0xFFFF; - } - else - { - // Turn on PWM control of PB7 - TCCR1A |= _BV(COM1C1); - // Set the brightness - CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); - } - breathing_intensity_default(); -} - - -void breathing_enable(void) -{ - if (get_backlight_level() == 0) - { - breathing_index = 0; - } - else - { - // Set breathing_index to be at the midpoint (brightest point) - breathing_index = 0x20 << breath_speed; - } - - breathing_halt = BREATHING_NO_HALT; - - // Enable breathing interrupt - TIMSK1 |= _BV(OCIE1A); -} - -void breathing_pulse(void) -{ - if (get_backlight_level() == 0) - { - breathing_index = 0; - } - else - { - // Set breathing_index to be at the midpoint + 1 (brightest point) - breathing_index = 0x21 << breath_speed; - } - - breathing_halt = BREATHING_HALT_ON; - - // Enable breathing interrupt - TIMSK1 |= _BV(OCIE1A); -} - -void breathing_disable(void) -{ - // Disable breathing interrupt - TIMSK1 &= ~_BV(OCIE1A); - backlight_set(get_backlight_level()); -} - -void breathing_self_disable(void) -{ - if (get_backlight_level() == 0) - { - breathing_halt = BREATHING_HALT_OFF; - } - else - { - breathing_halt = BREATHING_HALT_ON; - } - - //backlight_set(get_backlight_level()); -} - -void breathing_toggle(void) -{ - if (!is_breathing()) - { - if (get_backlight_level() == 0) - { - breathing_index = 0; - } - else - { - // Set breathing_index to be at the midpoint + 1 (brightest point) - breathing_index = 0x21 << breath_speed; - } - - breathing_halt = BREATHING_NO_HALT; - } - - // Toggle breathing interrupt - TIMSK1 ^= _BV(OCIE1A); - - // Restore backlight level - if (!is_breathing()) - { - backlight_set(get_backlight_level()); - } -} - -bool is_breathing(void) -{ - return (TIMSK1 && _BV(OCIE1A)); -} - -void breathing_intensity_default(void) -{ - //breath_intensity = (uint8_t)((uint16_t)100 * (uint16_t)get_backlight_level() / (uint16_t)BACKLIGHT_LEVELS); - breath_intensity = ((BACKLIGHT_LEVELS - get_backlight_level()) * ((BACKLIGHT_LEVELS + 1) / 2)); -} - -void breathing_intensity_set(uint8_t value) -{ - breath_intensity = value; -} - -void breathing_speed_default(void) -{ - breath_speed = 4; -} - -void breathing_speed_set(uint8_t value) -{ - bool is_breathing_now = is_breathing(); - uint8_t old_breath_speed = breath_speed; - - if (is_breathing_now) - { - // Disable breathing interrupt - TIMSK1 &= ~_BV(OCIE1A); - } - - breath_speed = value; - - if (is_breathing_now) - { - // Adjust index to account for new speed - breathing_index = (( (uint8_t)( (breathing_index) >> old_breath_speed ) ) & 0x3F) << breath_speed; - - // Enable breathing interrupt - TIMSK1 |= _BV(OCIE1A); - } - -} - -void breathing_speed_inc(uint8_t value) -{ - if ((uint16_t)(breath_speed - value) > 10 ) - { - breathing_speed_set(0); - } - else - { - breathing_speed_set(breath_speed - value); - } -} - -void breathing_speed_dec(uint8_t value) -{ - if ((uint16_t)(breath_speed + value) > 10 ) - { - breathing_speed_set(10); - } - else - { - breathing_speed_set(breath_speed + value); - } -} - -void breathing_defaults(void) -{ - breathing_intensity_default(); - breathing_speed_default(); - breathing_halt = BREATHING_NO_HALT; -} - -/* Breathing Sleep LED brighness(PWM On period) table - * (64[steps] * 4[duration]) / 64[PWM periods/s] = 4 second breath cycle - * - * http://www.wolframalpha.com/input/?i=%28sin%28+x%2F64*pi%29**8+*+255%2C+x%3D0+to+63 - * (0..63).each {|x| p ((sin(x/64.0*PI)**8)*255).to_i } - */ -static const uint8_t breathing_table[64] PROGMEM = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 4, 6, 10, - 15, 23, 32, 44, 58, 74, 93, 113, 135, 157, 179, 199, 218, 233, 245, 252, -255, 252, 245, 233, 218, 199, 179, 157, 135, 113, 93, 74, 58, 44, 32, 23, - 15, 10, 6, 4, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -}; - -ISR(TIMER1_COMPA_vect) -{ - // CHANNEL = (pgm_read_byte(&breathing_table[ ( (uint8_t)( (breathing_index++) >> breath_speed ) ) & 0x3F ] )) * breath_intensity; - - - uint8_t local_index = ( (uint8_t)( (breathing_index++) >> breath_speed ) ) & 0x3F; - - if (((breathing_halt == BREATHING_HALT_ON) && (local_index == 0x20)) || ((breathing_halt == BREATHING_HALT_OFF) && (local_index == 0x3F))) - { - // Disable breathing interrupt - TIMSK1 &= ~_BV(OCIE1A); - } - - CHANNEL = (uint16_t)(((uint16_t)pgm_read_byte(&breathing_table[local_index]) * 257)) >> breath_intensity; - -} - - - -#endif +} \ No newline at end of file diff --git a/keyboards/planck/planck.h b/keyboards/planck/planck.h index 0e641c27e..81c0e8cb4 100644 --- a/keyboards/planck/planck.h +++ b/keyboards/planck/planck.h @@ -2,7 +2,6 @@ #define PLANCK_H #include "quantum.h" -#include #define PLANCK_MIT( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ @@ -30,26 +29,4 @@ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \ } -void matrix_init_user(void); -void matrix_scan_user(void); -bool process_action_user(keyrecord_t *record); - -void led_set_user(uint8_t usb_led); -void backlight_init_ports(void); - -void breathing_enable(void); -void breathing_pulse(void); -void breathing_disable(void); -void breathing_self_disable(void); -void breathing_toggle(void); -bool is_breathing(void); - - -void breathing_defaults(void); -void breathing_intensity_default(void); -void breathing_speed_default(void); -void breathing_speed_set(uint8_t value); -void breathing_speed_inc(uint8_t value); -void breathing_speed_dec(uint8_t value); - #endif diff --git a/keyboards/planck/readme.md b/keyboards/planck/readme.md new file mode 100644 index 000000000..f89fdeb93 --- /dev/null +++ b/keyboards/planck/readme.md @@ -0,0 +1,31 @@ +Planck keyboard firmware +====================== +DIY/Assembled compact ortholinear 40% keyboard by [Ortholinear Keyboards](http://ortholinearkeyboards.com). + +## Quantum MK Firmware + +For the full Quantum feature list, see [the parent readme.md](/readme.md). + +## Building + +Download or clone the whole firmware and navigate to the keyboards/planck folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use `make dfu` to program your PCB once you hit the reset button. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default +To build with the default keymap, simply run `make`. + +### Other Keymaps +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` in the keymaps folder, and see keymap document (you can find in top readme.md) and existent keymap files. + +To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: +``` +$ make KEYMAP=[default|jack|] +``` +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. + +### Notable forks (which some of the keymap files are from) +- [Shane's Fork](https://github.com/shanecelis/tmk_keyboard/tree/master/keyboard/planck) +- [Pierre's Fork](https://github.com/pcarrier/tmk_keyboard/blob/pcarrier/planck/keyboard/gh60/keymap_planck.c) +- [Nathan's Fork](https://github.com/nathanrosspowell/tmk_keyboard/tree/planck-jack/keyboard/planck) +- [Matthew's Fork](https://github.com/pepers/tmk_keyboard/tree/master/keyboard/planck_grid) diff --git a/keyboards/preonic/README.md b/keyboards/preonic/README.md deleted file mode 100644 index f99856fdd..000000000 --- a/keyboards/preonic/README.md +++ /dev/null @@ -1,25 +0,0 @@ -Preonic keyboard firmware -====================== -DIY/Assembled compact ortholinear 50% keyboard by [Ortholinear Keyboards](http://ortholinearkeyboards.com). - -## Quantum MK Firmware - -For the full Quantum feature list, see [the parent README.md](/README.md). - -## Building - -Download or clone the whole firmware and navigate to the keyboards/preonic folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use `make dfu` to program your PCB once you hit the reset button. - -Depending on which keymap you would like to use, you will have to compile slightly differently. - -### Default -To build with the default keymap, simply run `make`. - -### Other Keymaps -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap, create a file in the keymaps folder named `.c` and see keymap document (you can find in top README.md) and existent keymap files. - -To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: -``` -$ make KEYMAP=[default|jack|] -``` -Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboards/preonic/config.h b/keyboards/preonic/config.h index e8d0e82fc..04946f7fb 100644 --- a/keyboards/preonic/config.h +++ b/keyboards/preonic/config.h @@ -37,6 +37,8 @@ along with this program. If not, see . #define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } #define UNUSED_PINS +#define BACKLIGHT_PIN B7 + /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW diff --git a/keyboards/preonic/keymaps/default/README.md b/keyboards/preonic/keymaps/default/README.md deleted file mode 100644 index e911968dd..000000000 --- a/keyboards/preonic/keymaps/default/README.md +++ /dev/null @@ -1 +0,0 @@ -# The default Preonic layout - largely based on the Planck's \ No newline at end of file diff --git a/keyboards/preonic/keymaps/default/compiled.hex b/keyboards/preonic/keymaps/default/compiled.hex deleted file mode 100644 index a988ab756..000000000 --- a/keyboards/preonic/keymaps/default/compiled.hex +++ /dev/null @@ -1,1609 +0,0 @@ -:100000000C94AF050C94F3050C94F3050C94F305D4 -:100010000C94F3050C94F3050C94F3050C94F30580 -:100020000C94F3050C94F3050C94EA180C94BC1989 -:100030000C941D270C94F3050C94F3050C94F30514 -:100040000C94F3050C94F3050C94F3050C94F30550 -:100050000C94F3050C9485270C94F3050C94F3058C -:100060000C94F3050C94F3050C94F3050C94F30530 -:100070000C94F3050C94F3050C94F3050C94F30520 -:100080000C94D00E0C94F3050C94F3050C94F3052A -:100090000C94F3050C94F3050C94F3050C94F30500 -:1000A0000C94F3050C94F3050C94F305291A4B1AE0 -:1000B000391B4B1A391B901AB31A391B081B1B1B0F -:1000C000051E051E341E341E731E931EE91FE91FF4 -:1000D0009E1EE91F4E1F4E1FB51FBE1FE91FE31FC7 -:1000E0005B1F5B1F5B1F5B1F5B1F5B1F5B1F5B1F40 -:1000F0005B1F5B1F5B1F5B1F5B1F5B1F5B1F5B1F30 -:100100006B1F791F801F871F911F07634236B79BA4 -:10011000D8A71A39685618AEBAAB558C1D3CB7CC67 -:100120005763BD6DEDFD753EF6177231BF000000DF -:10013000803F08000000BE922449123EABAAAA2AC2 -:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD -:1001500000000000BF000000803F00000000000819 -:100160004178D3BB4387D1133D190E3CC3BD4282B6 -:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74 -:10018000FFBE01C4FF7F3F000000000035001E00DD -:100190001F0020002100220023002400250026004B -:1001A00027002A002B0014001A0008001500170071 -:1001B0001C0018000C00120013004C002900040061 -:1001C0001600070009000A000B000D000E000F00CA -:1001D00033003400E1001D001B000600190005007B -:1001E0001100100036003700380028000530E0000C -:1001F000E200E30003302C002C00043050005100DA -:1002000052004F0035001E001F0020002100220078 -:10021000230024002500260027002A002B001400BC -:100220001A00090013000A000D000F0018001C003E -:1002300033004C00290004001500160017000700C9 -:100240000B00110008000C0012003400E1001D003A -:100250001B000600190005000E00100036003700D4 -:10026000380028000530E000E200E30003302C00F5 -:100270002C0004305000510052004F0035001E0089 -:100280001F0020002100220023002400250026005A -:1002900027002A002B0034003600370013001C0012 -:1002A00009000A00060015000F004C002900040098 -:1002B0001200080018000C0007000B0017001100C6 -:1002C00016003800E100330014000D000E001B0082 -:1002D000050010001A0019001D0028000530E0007C -:1002E000E200E30003302C002C00043050005100E9 -:1002F00052004F0035021E021F022002210222027C -:10030000230224022502260227022A0035021E02A9 -:100310001F022002210222022302240225022602B9 -:1003200027024C004C003A003B003C003D003E00E0 -:100330003F002D022E022F02300231020100400048 -:1003400041004200430044004500320264020100C3 -:100350000100010001000100010001000100010095 -:1003600001000100AB00AA00A900AE0035001E008C -:100370001F00200021002200230024002500260069 -:1003800027002A0035001E001F0020002100220047 -:10039000230024002500260027004C004C003A00D2 -:1003A0003B003C003D003E003F002D002E002F0092 -:1003B0003000310001004000410042004300440091 -:1003C000450032006400010001000100010001004D -:1003D000010001000100010001000100AB00AA00C2 -:1003E000A900AE00000000000000000000000000B6 -:1003F00000000000000000000000000000000000FD -:1004000000000000000000000000000000000000EC -:1004100000000000000000000000000000000000DC -:1004200000000000000000000000000000000000CC -:1004300000000000000000000000000000000000BC -:1004400000000000000000000000000000000000AC -:10045000000000000000000000000000000000009C -:10046000000000000000000000000000000000008C -:10047000000000000000000000000000000000007C -:10048000000000000000000000000000000000006C -:10049000000000000000000000000000000000005C -:1004A000000000000000000000000000000000004C -:1004B000000000000000000000000000000000003C -:1004C000000000000000000000000000000000002C -:1004D000000000000000000000000000000000001C -:1004E000000000000000000000000000000000000C -:1004F00000000000000000000000000000000000FC -:1005000000000000000000000000000000000000EB -:1005100000000000000000000000000000000000DB -:1005200000000000000000000000000000000000CB -:1005300000000000000000000000000000000000BB -:1005400000000000000000000000000000000000AB -:10055000000000000000000000000000000000009B -:10056000000000000000000000000000000000008B -:10057000000000000000000000000000000000007B -:10058000000000000000000000000000000000006B -:10059000000000000000000000000000000000005B -:1005A000000000000000000000000000000000004B -:1005B000000000000000000000000000000000003B -:1005C000000000000000000000000000000000002B -:1005D000000000000000000000000000000000001B -:1005E000000000000000000000000000000000000B -:1005F00000000000000000000000000000000000FB -:1006000000000000000000000000000000000000EA -:1006100000000000000000000000000000000000DA -:1006200000000000000000000000000000000000CA -:1006300000000000000000000000000000000000BA -:1006400000000000000000000000000000000000AA -:10065000000000000000000000000000000000009A -:10066000000000000000000000000000000000008A -:10067000000000000000000000000000000000007A -:10068000000000000000000000000000000000006A -:10069000000000000000000000000000000000005A -:1006A000000000000000000000000000000000004A -:1006B000000000000000000000000000000000003A -:1006C000000000000000000000000000000000002A -:1006D000000000000000000000000000000000001A -:1006E000000000000000000000000000000000000A -:1006F00000000000000000000000000000000000FA -:1007000000000000000000000000000000000000E9 -:1007100000000000000000000000000000000000D9 -:1007200000000000000000000000000000000000C9 -:1007300000000000000000000000000000000000B9 -:1007400000000000000000000000000000000000A9 -:100750000000000000000000000000000000000099 -:100760000000000000000000000000000000000089 -:100770000000000000000000000000000000000079 -:100780000000000000000000000000000000000069 -:100790000000000000000000000000000000000059 -:1007A0000000000000000000000000000000000049 -:1007B0000000000000000000000000000000000039 -:1007C0000000000000000000000000000000000029 -:1007D0000000000000000000000000000000000019 -:1007E0000000000000000000000000000000000009 -:1007F00000000000000000000000000000000000F9 -:1008000000000000000000000000000000000000E8 -:1008100000000000000000000000000000000000D8 -:1008200000000000000000000000000000000000C8 -:1008300000000000000000000000000000000000B8 -:1008400000000000000000000000000000000000A8 -:100850000000000000000000000000000000000098 -:100860000000000000000000000000000000000088 -:100870000000000000000000000000000000000078 -:100880000000000000000000000000000000000068 -:100890000000000000000000000000000000000058 -:1008A0000000000000000000000000000000000048 -:1008B0000000000000000000000000000000000038 -:1008C0000000000000000000000000000000000028 -:1008D0000000000000000000000000000000000018 -:1008E0000000000000000000000000000000000008 -:1008F00000000000000000000000000000000000F8 -:100900000000000000000000000000003A003B0072 -:100910003C003D003E003F004000410042004300DB -:1009200044004500010000700100010001000100C9 -:10093000010001000100010001004C000100010064 -:1009400001001570167013700A700030013002300B -:100950000100010001001C701B70187019701D70DF -:100960001E700100010001000100010001000100F2 -:10097000010001000100010001000100010001006F -:10098000010001002A0354006800650020005000A7 -:10099000720065006F006E006900630020004B006C -:1009A0006500790062006F00610072006400000061 -:1009B0002C034F007200740068006F006C00690027 -:1009C0006E0065006100720020004B006500790038 -:1009D00062006F0061007200640073000000040395 -:1009E000090409026D00040100A0FA0904000001D5 -:1009F00003010100092111010001224000070581C6 -:100A00000308000A09040100010301020009211181 -:100A1000010001224D000705820308000A090402B3 -:100A20000001030000000921110100012236000726 -:100A300005830308000A09040300010300000009FC -:100A40002111010001223900070584031000011261 -:100A500001100100000008EDFE61600100010200CC -:100A60000105010906A101050719E029E71500257F -:100A7000019508750181020508190129059505757B -:100A80000191029501750391010507190029771558 -:100A9000002501957875018102C005010980A10139 -:100AA000850216010026B7001A01002AB70075104A -:100AB00095018100C0050C0901A101850316010003 -:100AC000269C021A01002A9C02751095018100C023 -:100AD00005010902A1010901A10005091901290562 -:100AE00015002501950575018102950175038101A8 -:100AF0000501093009311581257F950275088106A8 -:100B000009381581257F950175088106050C0A387D -:100B1000021581257F950175088106C0C005010970 -:100B200006A101050719E029E715002501950875BB -:100B300001810295017508810105081901290595B2 -:100B400005750191029501750391010507190029A9 -:100B5000FF150026FF00950675088100C0001124CE -:100B60001FBECFEFDAE0DEBFCDBF04B603FE24C068 -:100B700080912A0490912B04A0912C04B0912D0413 -:100B80008730904BA740B04BB9F410922A041092D2 -:100B90002B0410922C0410922D0414BE84B7877F6E -:100BA00084BF88E10FB6F8948093600010926000D3 -:100BB0000FBEE0E0F8E3099512E0A0E0B1E0E0EB61 -:100BC000F2E602C005900D92AA3CB107D9F714E0F5 -:100BD000AAECB2E001C01D92AA32B107E1F70E946F -:100BE00034160C9456310C940000089581E0089559 -:100BF0000C94F5050C94F605279A2F988FEF9FEF2C -:100C000090938700809386008AE08093800089E13A -:100C1000809381000C948D2C0E94FC056E9A769A2C -:100C20000C94D206282F81110BC080918000877F01 -:100C30008093800010928D0010928C002F98089560 -:100C40002F9880918000886080938000233019F471 -:100C50008FEF9FEF0FC083E090E0821B9109880F18 -:100C6000991F2FEF3FEFA90102C0569547958A952E -:100C7000E2F7CA0190938D0080938C000895CF9382 -:100C8000DF93EC010E942128BE0180E090E0DF911B -:100C9000CF910C9414240F931F93FC01623091F1B7 -:100CA00028F4662359F06130D1F05FC0643009F454 -:100CB00040C0C0F1653009F44CC057C08281882320 -:100CC00009F453C000E010E0980140E064E070E0F7 -:100CD00088EC91E00E944E1281E090E010C0828189 -:100CE000882309F442C000E010E0980140E066E08B -:100CF00070E088E591E00E944E1282E090E00E9450 -:100D00003F0633C08281882381F100E010E0980122 -:100D100040E068E070E088E891E00E944E1284E0D4 -:100D200090E0EDCF8281882311F083E006C083E05C -:100D30000DC08281882349F084E00E94912440E123 -:100D400064E083E00E94030710C084E00E94B224A4 -:100D5000F6CF8281882331F085EE0E94A91C0E9483 -:100D6000E42C03C085EE0E94711D80E090E01F918D -:100D70000F9108950F931F932FEF89EF90E021506B -:100D800080409040E1F700C0000000E010E09801D2 -:100D900040E064E070E088EE91E00E944E121F9106 -:100DA0000F9108950C94BA060F931F9300E010E082 -:100DB000980140E063E070E080E491E00E944E1210 -:100DC0002FEF82E597E0215080409040E1F700C08E -:100DD00000001F910F910C94030E0F931F9300E0DE -:100DE00010E0980140E068E070E080E091E00E944F -:100DF0004E121F910F9108950C94ED0681E0089515 -:100E00000C94FE060895CF92DF92EF92FF920F931B -:100E10001F9301E010E020E030E06801790104C098 -:100E2000CC0CDD1CEE1CFF1C8A95D2F704C0000F11 -:100E3000111F221F331F6A95D2F70C291D292E2955 -:100E40003F29C090E003D090E103E090E203F090EE -:100E5000E303C022D122E222F322842FC016D1065E -:100E6000E206F30641F41F910F91FF90EF90DF909F -:100E7000CF900C9491241F910F91FF90EF90DF90F1 -:100E8000CF900C94B2240C940C0680911A03882302 -:100E900009F448C08091D6029091D702009779F466 -:100EA0000E944F279093D7028093D6028091D80258 -:100EB00090E0009771F48091D90290E00AC00E94FE -:100EC0005B2720910802309109022817390740F367 -:100ED00029C00197880F991F880F991FFC01E652BE -:100EE000FD4F60817181828193810E94360EE09175 -:100EF000D80284E0E89FF0011124E652FD4F6081A2 -:100F00007181828193814FE050E00E94EE118091C7 -:100F1000D80290E001966091D90270E00E940631FB -:100F20008093D8020C94F80510921C030C94030EC5 -:100F300081E080931C030C94FC0608958F929F928D -:100F4000AF92BF92EF92FF920F931F93CF93DF93D5 -:100F5000CDB7DEB7A3970FB6F894DEBF0FBECDBFF7 -:100F60007C01FC0100811181C8010E944D25B8015E -:100F70000E94320C8C01B7010E940007882309F4FB -:100F8000BDC20531F0E71F0741F4F70182818823D4 -:100F900009F458C00E94E512B1C20631F0E71F07FC -:100FA00041F4F7018281882309F44CC00E94EE12BB -:100FB000A5C20731F0E71F0751F4F70182818823AA -:100FC00009F440C00E94E1128111F0CFE3CF083153 -:100FD000F0E71F0739F4F7018281882399F10E9415 -:100FE00098078CC20931F0E71F0739F4F7018281B5 -:100FF000882341F10E94940781C20A31F0E71F075C -:1010000049F4F70182818823E9F080911C03811162 -:10101000F1CFE5CF0B31F0E71F0739F4F7018281FB -:10102000882381F00E94F5120AC00C31F0E71F07F7 -:1010300049F4F7018281882329F00E9400130E945D -:10104000ED065CC280911C03811105C0F70182810D -:101050008111CFC03AC1003E110579F4F7018281B8 -:10106000882309F44DC00E94030E81E080931B0386 -:1010700010921A031092D90241C2023E110559F48E -:10108000F70182818823E1F10E94030E10921B0375 -:1010900010921A0333C2033E110591F4F7018281C5 -:1010A000882371F10E94030E10921B0381E080934C -:1010B0001A031092D8021092D7021092D6021EC2C2 -:1010C0000235110559F4F7018281882309F416C20B -:1010D00080910802909109020A970DC0013511050F -:1010E00079F4F7018281882309F408C2809108020B -:1010F000909109020A969093090280930802FEC11A -:1011000040910C0283E2E7E2F2E0DE0111960190E9 -:101110000D928A95E1F7F701808121E030E02C0FF4 -:101120003D1F280F311DC90120910A0230910B0289 -:10113000FC01E20FF31F6081772767FD7095640F54 -:10114000711D882777FD8095982F0E94282E20E01A -:1011500030E040E451E40E948D2D4B015C01F70129 -:10116000218185E090E0821B9109BC01882777FDF1 -:101170008095982F0E94282E9B01AC01C501B401D7 -:101180000E94252D9B01AC0160E070E080E090E4BE -:101190000E949B2F20E030E04CED50E40E94382F5D -:1011A0004B015C01F70182818823D1F04FE050E0D0 -:1011B000C501B4010E94EE1180911B038823A1F0A8 -:1011C0008091D90224E0829FF0011124E652FD4F64 -:1011D00080829182A282B3828F5F8093D90204C001 -:1011E000C501B4010E94360E0F3F110508F02ECF45 -:1011F00085C18091D50281111FC0043130E71307EA -:1012000009F080C00E94020781E08093D5020E940D -:101210004F279093D4028093D3021092CC02109265 -:10122000CE021092CD021092D0021092CF021092F4 -:10123000D2021092D10262C18091D3029091D40265 -:101240000E945B27883C910570F48091CC02E82FC6 -:10125000F0E0EE0FFF1FE353FD4F118300838F5F1C -:101260008093CC024BC1043180E7180768F4023048 -:1012700090E7190708F050C00115E0E71E0771F06C -:1012800001301047A1F11CC1033320E7120709F414 -:10129000E8C00433104709F4FBC012C1F701828192 -:1012A000882309F412C10E9454200E94030E0E9458 -:1012B000D406FFEF24E33CE0F15020403040E1F75A -:1012C00000C000000E94AA2719C10431F0E71F07DF -:1012D00008F0C3C0023020E71207F0F4011530E730 -:1012E000130709F4F2C00130104709F0E9C0F70113 -:1012F0008281882309F4E9C08091FD038160809395 -:10130000FD03FCC00431F0E71F0708F0A6C002305F -:1013100020E7120708F4ECC0F7018281882309F462 -:10132000D4C00E940E28811102C00E94EA270E94A8 -:10133000262890E090930F0480930E040230F0E78B -:101340001F0721F480910E04816080C0033020E7E4 -:10135000120721F480910E04826078C0043030E7D7 -:10136000130721F480910E04846070C0053080E77B -:10137000180719F480910E0427C0063090E719076A -:1013800021F480910E04806161C00730E0E71E0700 -:1013900021F480910E04806259C00830F0E71F07E5 -:1013A00021F480910E04806451C0093020E71207B7 -:1013B00021F480910E04806849C00A3030E7130799 -:1013C00029F480910E048460886040C00B3080E76F -:1013D000180721F480910E048E7F38C00C3090E7FE -:1013E000190721F480910E048D7F30C00D30E0E7A5 -:1013F0001E0721F480910E048B7F28C00E30F0E789 -:101400001F0719F480910E0420C00F3020E7120747 -:1014100021F480910E048F7E19C0003130E713074C -:1014200021F480910E048F7D11C0013180E71807EF -:1014300021F480910E048F7B09C080910E0402314B -:10144000104711F48F7702C08B7F877F80930E0443 -:1014500080910E040E942A2851C0033390E7190797 -:10146000A1F4F7018281882321F01092CA0282E060 -:1014700016C08091CA02811106C086E20E94A91C92 -:1014800086E20E94711D82E018C004331047C1F447 -:10149000F7018281882331F01092CB0280E20E9412 -:1014A000C01D2CC08091CB02811106C087E20E9432 -:1014B000A91C87E20E94711D80E20E94C71D1EC008 -:1014C00081E08093CA028093CB02C701A3960FB636 -:1014D000F894DEBF0FBECDBFDF91CF911F910F916A -:1014E000FF90EF90BF90AF909F908F900C94FA0573 -:1014F000011530E7130709F0F6CED5CE80E0A396AC -:101500000FB6F894DEBF0FBECDBFDF91CF911F9114 -:101510000F91FF90EF90BF90AF909F908F900895A4 -:101520002CE0729FF00111243CE3839FE00DF11D3C -:101530001124E60FF11DEE0FFF1FE457FE4F8591BA -:1015400094910E94440C811540E5940708F047C02F -:10155000811520E4920708F013C1883E910520F51B -:10156000803E910508F07CC1883A910578F4853A6F -:10157000910508F0A5C08130910509F471C108F406 -:101580002EC18430910508F06BC129C18B3B9105B8 -:1015900008F4A1C0803C910508F421C1FC01EE0FC4 -:1015A000FF1FE45FFF4FE6C0811530E2930758F458 -:1015B000811541E0940708F053C1803F910508F47C -:1015C0000EC190650895811520E3920708F0D5C0FB -:1015D000FC01FF70EE0FFF1FE457FE4FCBC08115DB -:1015E00035E5930708F043C0811544E5940708F0FA -:1015F000DEC0811522E5920708F5811531E59307D4 -:1016000008F0C1C0482F437021E030E002C0220F33 -:10161000331F4A95E2F73C68AC0164E05695479564 -:101620006A95E1F74370342B8F708695869540E27A -:10163000849FC0011124822B932B0895282F269577 -:101640002695AC01437055278115934508F0A0C03D -:1016500080E2289F9001112481E090E002C0880F71 -:10166000991F4A95E2F7822B932B9C6808958F323D -:1016700040E7940790F48F3120E7920708F0A2C06A -:10168000811536E5930708F497C09C013056211563 -:10169000304108F0A4C09F7093C0803320E79207C8 -:1016A00009F497C008F492C0813340E7940709F425 -:1016B00093C08233904709F092C080E093ED089583 -:1016C000853A910509F48EC0863A910509F08DC0DE -:1016D00082E890E40895883A910509F489C0893A2E -:1016E000910509F488C08A3A910509F487C08B3ABC -:1016F000910509F486C08C3A910509F485C08D3AAC -:10170000910509F484C0803B910509F483C08E3AA9 -:10171000910509F482C08F3A910509F481C0813B9B -:10172000910509F480C0823B910509F47FC0833B99 -:10173000910509F47EC0843B910509F47DC0853B89 -:10174000910509F47CC0863B910509F47BC0873B79 -:10175000910509F47AC0883B910509F479C0893B69 -:10176000910509F478C08A3B910509F477C080E0BF -:1017700094E408958591949108959927906C089523 -:101780009F70906A0895982F8827816F906A0895B6 -:1017900090E2299F9001112481E090E002C0880F1F -:1017A000991F4A95E2F7822B932B9A680895982FF8 -:1017B0008827846F906A08958F719927982F8827BA -:1017C000906208958F519047946D089580E091ED57 -:1017D000089580E090ED089580E092ED089580E016 -:1017E00090E0089581E890E4089583E890E40895F6 -:1017F00082EE94E4089589EE94E408958AEE94E4E8 -:10180000089585EB94E4089586EB94E4089587EBBE -:1018100094E408958CEC94E408958DEC94E4089598 -:1018200083E895E408958AE895E4089582E995E4CB -:10183000089584E995E4089581E296E4089583E2A9 -:1018400096E4089584E296E4089585E296E4089586 -:1018500086E296E4089587E296E408958AE296E4A3 -:10186000089508959CE0799FF00111249CE3899FDD -:10187000E00DF11D1124E60FF11DEE0FFF1FE457DF -:10188000FE4F8591949108958238910549F1B0F405 -:101890008133910509F458C048F48932910509F45F -:1018A0004EC08A32910509F454C0089585339105DC -:1018B00009F440C08933910599F00895833E91055C -:1018C00029F138F4803E910591F0823E9105A1F016 -:1018D0000895863E9105F9F0873E910531F108950E -:1018E00020910E0420FD3AC021FD38C0089580915A -:1018F0000E0480FD35C032C080910E0482FF32C0DC -:1019000080910E0484FD30C083EE39C080910E04B6 -:1019100082FD28C0F5CF80910E0483FF27C08091FF -:101920000E0484FD21C087EE2AC080910E0483FD41 -:101930001DC0F5CF80910E0485FD1AC01BC080919B -:101940000E0485FD17C014C080910E0486FD14C0DE -:1019500015C080910E0486FD11C00EC080EE0FC030 -:1019600089E30DC082EE0BC080E009C086EE07C09F -:1019700089E205C085E303C08AE201C081E390E00B -:10198000089508950C94C10CE82FF0E0EA5AFD4F39 -:101990008081E82FEF70F0E082958F7021E030E0D9 -:1019A000A90102C0440F551F8A95E2F740A308958C -:1019B0000F931F93CF93DF93C4E0D0E001E010E0DA -:1019C000FE01EA5AFD4F8081E82FEF70F0E021A17F -:1019D00082958F70A80102C0440F551F8A95E2F7C7 -:1019E000CA01822B81A38C2F0E94C40C219740F73F -:1019F0008BE090E061E070E0FC01E65BFD4F208150 -:101A0000E22FEF70F0E042A122952F70DB0102C0BF -:101A1000AA0FBB1F2A95E2F79D01242B22A3019751 -:101A200058F7DF91CF911F910F9108950F931F9356 -:101A3000CF93DF9385B7806885BF85B7806885BF02 -:101A4000C4E0D0E001E010E0FE01EA5AFD4F8081E1 -:101A5000E82FEF70F0E021A182958F70A80102C0FD -:101A6000440F551F8A95E2F7CA01822B81A38C2F60 -:101A70000E94C40C219740F78BE090E061E070E099 -:101A8000FC01E65BFD4F2081E22FEF70F0E042A108 -:101A900022952F70DB0102C0AA0FBB1F2A95E2F727 -:101AA0009D01242B22A3019758F7DF91CF911F911D -:101AB0000F910C944307EF92FF920F931F93CF93D4 -:101AC000DF9307E213E0C4E0EE24E394F12CD5E0C9 -:101AD0008C2F0E94C40C8BE090E040E050E0FC01B1 -:101AE000E65BFD4F6081E62FEF70F0E020A130E073 -:101AF00062956F7002C0359527956A95E2F720FDD3 -:101B000009C09701082E02C0220F331F0A94E2F782 -:101B1000422B532B019718F7F801929182918F0174 -:101B20008417950721F051834083D0930D028C2FA9 -:101B30000E94C40CC15060F680910D0287FD1FC049 -:101B4000815080930D028F3F39F08FE99FE001971C -:101B5000F1F700C0000013C080E090E0FC01E95DF7 -:101B6000FC4FDC01A35EBC4F18962D913C91199758 -:101B7000318720870297863FEFEF9E0779F70E9413 -:101B8000450781E0DF91CF911F910F91FF90EF907A -:101B90000895E82FF0E0EE0FFF1FE95DFC4F808114 -:101BA0009181089508950F931F93CF9301E313E05C -:101BB000C0E0F801929182918F010E94C826C80F5F -:101BC000F3E007321F07A9F78C2FCF911F910F91D8 -:101BD00008950E940E28811102C00E94EA270E94E7 -:101BE0003828809314043E9A809171008D7F8093F1 -:101BF000710082E0809390008AE18093910081E0FF -:101C000080933303089580913303811102C00E94B1 -:101C1000E90D1092830310928203809171008D7FF1 -:101C200080937100809190008F7380939000109248 -:101C300045031092440310927C0310927D0310928E -:101C40007E0310927F0310927B0310927A03EAE5E1 -:101C5000F3E0AAE4B3E011921192119211921D9255 -:101C60001D9283E0EA37F807B1F70895CF92DF922B -:101C7000EF92FF920F931F93CF93DF932091440332 -:101C8000222309F484C06B017C018091330381110C -:101C900002C00E94E90D0AE713E0C7E0D0E0A70107 -:101CA0009601F80192918291729162918F010E9446 -:101CB000892D811131C0FE01EE0FFF1FEE0FFF1FB6 -:101CC000E65AFC4F1082118212821382DE01AA0FA3 -:101CD000BB1FA65BBC4F11961C921E92C730D1054C -:101CE000E9F0219644815581668177814083518353 -:101CF00062837383148215821682178212968D91E5 -:101D00009C91139711969C938E9313961C921E92FE -:101D1000129734961296E2CF219708F680918203AB -:101D200090918303019797FD05C09093830380935F -:101D3000820304C010928303109282038091820375 -:101D400090918303209180033091810328173907F4 -:101D500024F01092810310928003892BC1F48091AA -:101D600071008D7F80937100809190008F738093BC -:101D7000900010927C0310927D0310927E031092CB -:101D80007F0310927B0310927A0310924403DF9139 -:101D9000CF911F910F91FF90EF90DF90CF9008951A -:101DA0001F920F920FB60F9211244F925F926F9273 -:101DB0007F928F929F92AF92BF92CF92DF92EF92DB -:101DC000FF922F933F934F935F936F937F938F93E4 -:101DD0009F93AF93BF93CF93DF93EF93FF93809144 -:101DE0004403882309F49BC1C0918203D0918303EB -:101DF0001C161D060CF093C140903403509035031F -:101E0000609036037090370320E030E0A901C301F1 -:101E1000B2010E94342F18160CF065C0C130D105F4 -:101E200009F452C08091800390918103BE010E9409 -:101E300006317C0190938103809380038090460358 -:101E400090904703A0904803B090490320E030E011 -:101E500040E85FE3C501B4010E94252D609346036D -:101E6000709347038093480390934903F701EE0F63 -:101E7000FF1FEE0FFF1FE65AFC4FA3019201608186 -:101E80007181828193810E948D2D20E030E040E0BD -:101E90005EE30E94382F9B01AC01C501B4010E9492 -:101EA000342F18168CF4C7010196BE010E9406312A -:101EB000909381038093800310924603109247030E -:101EC0001092480310924903E0918003F09181033E -:101ED000EE0FFF1FEE0FFF1FE65AFC4F608171816E -:101EE00082819381D0C0C0907C03D0907D03E0902C -:101EF0007E03F0907F0320E030E0A901C701B60126 -:101F00000E94892D2197882309F4A2C0FE01EE0FBB -:101F1000FF1FEE0FFF1FE65AFC4F80809180A280CA -:101F2000B380A5019401C701B6010E94892D87FFE6 -:101F300031C0A501940160E070E08CED93EC0E944B -:101F40008D2D20E030E040E451E40E948D2D20E012 -:101F500030E040E05FE30E94382F9B01AC0160E07D -:101F600070E080E090E40E949B2F9B01AC01C501D2 -:101F7000B4010E94382F9B01AC01C701B6010E9439 -:101F8000892D87FF07C0A701960160E070E08CED06 -:101F900093E439C0A5019401C701B6010E94342F12 -:101FA00018160CF055C0A501940160E070E08CEDAE -:101FB00093E40E948D2D20E030E040E451E40E9443 -:101FC0008D2D20E030E040E05FE30E94382F9B0140 -:101FD000AC0160E070E080E090E40E949B2F9B01E8 -:101FE000AC01C501B4010E94382F9B01AC01C701AF -:101FF000B6010E94342F18165CF5A701960160E027 -:1020000070E08CED93EC0E948D2D20E030E040E4F8 -:1020100051E40E948D2D20E030E040E05FE30E941B -:10202000382F9B01AC0160E070E080E090E40E94FA -:102030009B2F9B01AC01C701B6010E94382F609312 -:102040007C0370937D0380937E0390937F0313C082 -:10205000FE01EE0FFF1FEE0FFF1FE65AFC4F8081BF -:102060009181A281B38180937C0390937D03A0939F -:102070007E03B0937F0360917C0370917D03809118 -:102080007E0390917F0320913103309132032F3FE3 -:102090004FEF340731F02F5F3F4F309332032093DF -:1020A00031030E940B136B017C0120E034E244EF0A -:1020B00051E40E94892D87FF08C086EFC82E88E270 -:1020C000D82E84EFE82E81E4F82E20E030E040E0C6 -:1020D00051E4C701B6010E94382F9B01AC0160E0BA -:1020E00074E284E79BE40E948D2D6B017C010E94C9 -:1020F000FA2D709397006093960020910E02309114 -:102100000F024091100250911102C701B6010E94C6 -:10211000382F0E94FA2D7093990060939800809157 -:102120004503882309F433C1C0904003D090410394 -:10213000E0904203F090430320E030E0A901C701A2 -:10214000B6010E94342F1816D4F580913103909176 -:1021500032038F3F2FEF920729F0019690933203BD -:1021600080933103C701B6010E940B1320E030E0D9 -:1021700040E051E40E94382F9B01AC0160E074E222 -:1021800084E79BE40E948D2D6B017C010E94FA2D57 -:10219000709397006093960020910E0230910F0289 -:1021A0004091100250911102C701B6010E94382FD0 -:1021B0000E94FA2D709399006093980008C01092C5 -:1021C00097001092960010929900109298006091DA -:1021D0003A0370913B036F5F7F4F70933B036093B3 -:1021E0003A03209196003091970080E090E0232BF5 -:1021F000F1F0C0919600D09197000E94262E6B01BD -:102200007C01BE0180E090E00E94262E9B01AC0183 -:1022100060913C0370913D0380913E0390913F0398 -:102220000E948D2D20E03FEF4FE757E410C00E9441 -:10223000262E6B017C0120E030EE4FEF54E46091DC -:102240003C0370913D0380913E0390913F030E94B7 -:10225000382F9B01AC01C701B6010E94342F87FDC6 -:1022600096C0809138038F5F8093380390E020916F -:1022700010043091110482179307A0F080911B0481 -:10228000882319F0109238030DC0809171008D7F62 -:1022900080937100809190008F73809390001092D2 -:1022A00045037DC080913903C0913803811128C056 -:1022B000C0901504D0901604E0901704F090180414 -:1022C00020E030E0A901C701B6010E94342F1816A2 -:1022D000BCF481E0809339031092400310924103D3 -:1022E0001092420310924303C0923C03D0923D03EC -:1022F000E0923E03F0923F03C150C093380343C0C5 -:10230000109239031092320310923103E0911204BB -:10231000F091130448E0C49FE00DF11D1124808169 -:102320009181A281B3818093400390934103A09354 -:102330004203B093430320E030E040E85EE3648171 -:102340007581868197810E94382F6B017C01809175 -:102350001202682F70E080E090E00E94262E20E0BC -:1023600030E048EC52E40E948D2D9B01AC01C70186 -:10237000B6010E94382F60933C0370933D03809315 -:102380003E0390933F0310923B0310923A038091D7 -:10239000140480FD04C01092450310924403FF9181 -:1023A000EF91DF91CF91BF91AF919F918F917F91ED -:1023B0006F915F914F913F912F91FF90EF90DF9040 -:1023C000CF90BF90AF909F908F907F906F905F90D5 -:1023D0004F900F900FBE0F901F901895CF92DF92E5 -:1023E000EF92FF92CF93DF936B017C01EA01809122 -:1023F0003303811102C00E94E90D8091140480FF13 -:1024000046C0809182039091830308970CF03FC0EF -:10241000809171008D7F80937100809145038111BF -:102420000E94030E81E080934403109232031092C5 -:10243000310320E030E0A901C701B6010E94342F2A -:102440001816DCF48091820390918303FC01EE0F57 -:10245000FF1FEE0FFF1FE65AFC4FC082D182E282BF -:10246000F382FC01EE0FFF1FE65BFC4FD183C083BC -:102470000196909383038093820380917100826020 -:102480008093710080919000806880939000DF912C -:10249000CF91FF90EF90DF90CF9008958F929F9211 -:1024A000AF92BF92CF92DF92EF92FF920F931F9362 -:1024B000CF93DF93EC017B01D42E48015901809129 -:1024C0003303811102C00E94E90D8091140480FF42 -:1024D0006BC0809171008D7F809371008091440367 -:1024E00081110E94030E81E080934503D093130471 -:1024F000C0931204F0921104E0921004D0921B04D5 -:102500008092150490921604A0921704B0921804B9 -:102510001092460310924703109248031092490309 -:102520001092380388819981AA81BB8180934003EE -:1025300090934103A0934203B093430320E030E023 -:1025400040E85EE36C817D818E819F810E94382FFF -:102550006B017C0180911202682F70E080E090E0B6 -:102560000E94262E20E030E048EC52E40E948D2D9F -:102570009B01AC01C701B6010E94382F60933C0358 -:1025800070933D0380933E0390933F0310923B036F -:1025900010923A0380917100826080937100809163 -:1025A0009000806880939000DF91CF911F910F91F0 -:1025B000FF90EF90DF90CF90BF90AF909F908F9063 -:1025C00008958091140481700895809114048160AD -:1025D000809314040E943C280C949D07809114045D -:1025E0008E7F809314040C943C288091840390E0A7 -:1025F000019666E070E00E9406318093840308959E -:102600008091840390E0019766E070E00E940631BB -:102610008093840308958F929F92AF92BF92CF923E -:10262000DF92EF92FF920F931F93CF93DF936B0193 -:102630007C01C0913103D0913203BE0180E090E073 -:102640000E94262E4B015C01A701960160E070E01C -:102650008CE594E40E948D2D9B01AC01C501B40171 -:102660000E94382F0E94FA2D20918403233009F410 -:1026700073C028F4222351F02130E9F02CC124301A -:1026800009F4A0C0253009F4E0C025C180E090E045 -:10269000A0E0BFE380930E0290930F02A09310027C -:1026A000B093110210923403109235031092360346 -:1026B0001092370310C11092340310923503109218 -:1026C0003603109237036431710540F46A307105A6 -:1026D00060F520E030E040E85EE32BC0693C710526 -:1026E00008F0AAC080E090E00E94262E20E030E0B2 -:1026F00040EA51E40E94242D20E030E044E353E41A -:102700000E948D2D9B01AC010E94382F20E030E00B -:1027100040E05EE30E94382F9B01AC0160E070E076 -:1027200080E09EE30E94242D44C020E030E040E0A1 -:102730005FE3C701B6010E94382F6B017C0180E086 -:1027400090E0A0E0BEE380930E0290930F02A0936E -:102750001002B0931102BFC01092340310923503DF -:1027600010923603109237034AE0469F9001479F2C -:10277000300D1124C90168EB7BE00E94F230BC01EE -:102780006C5D754077FF03C071956195710988276D -:1027900077FD8095982F0E94282E2EE333EC4EE291 -:1027A00059E30E94382F20E030E040EC5EE30E94C5 -:1027B000252D60930E0270930F0280931002909368 -:1027C000110289C01092340310923503109236031F -:1027D00010923703CE0183709927892BE1F0BE0157 -:1027E0006170772780E090E00E94262E20E030E0A4 -:1027F00040E05EE30E94382F20E030E040E45FE3F9 -:102800000E94252D60930E0270930F028093100298 -:10281000909311020CC080E090E0A0E0BFE38093B1 -:102820000E0290930F02A0931002B0931102C77092 -:10283000DD27CD2B09F04FC010920E0210920F022F -:10284000109210021092110246C01092340310929E -:102850003503109236031092370300E010E020E0B9 -:102860003FE300930E0210930F0220931002309367 -:1028700011026739710578F180E090E00E94262E00 -:1028800020E030E047E153E40E94242D20E030E0D6 -:102890004AE754E40E948D2D20E030E048E452E401 -:1028A0000E94382F20E030E040EA51E40E946A2E76 -:1028B0000E94F52D660F771F660F771FFB01E55A03 -:1028C000FD4F2081318142815381C701B6010E94B1 -:1028D000382F6B017C01C701B601DF91CF911F91A9 -:1028E0000F91FF90EF90DF90CF90BF90AF909F90AF -:1028F0008F900895809195030895CF93DF9300D032 -:102900001F92CDB7DEB79C0180912004843019F569 -:1029100093E099833B832A839093E9008FEF909112 -:10292000E800815095FD06C095ED9A95F1F70000FD -:102930008111F5CF8091E80085FF0DC040E050E0A7 -:1029400063E070E0CE0101960E94DA168091E80003 -:102950008E778093E8000F900F900F90DF91CF91CA -:102960000895CF93DF9300D01F92CDB7DEB72091AB -:102970002004243021F522E029839B838A8383E08D -:102980008093E9008FEF9091E800815095FD06C09B -:1029900095ED9A95F1F700008111F5CF8091E8004F -:1029A00085FF0DC040E050E063E070E0CE0101968D -:1029B0000E94DA168091E8008E778093E8000F90ED -:1029C0000F900F90DF91CF91089520912004243033 -:1029D000F1F422E02093E9002FEF3091E80021503C -:1029E00035FD06C035ED3A95F1F700002111F5CF20 -:1029F0002091E80025FF0BC040E050E065E070E06A -:102A00000E94DA168091E8008E778093E80008959E -:102A1000CF93DF93EC0190912004943009F046C0ED -:102A200080911D028823D9F080911E028823B9F07D -:102A30009093E9008FEF9091E800815095FD06C0DA -:102A400095E19A95F1F700008111F5CF8091E800AA -:102A500085FF2CC040E050E060E170E017C081E0ED -:102A60008093E9008FEF9091E800815095FD06C0BA -:102A700095ED9A95F1F700008111F5CF8091E8006E -:102A800085FF14C040E050E068E070E0CE010E9495 -:102A9000DA168091E8008E778093E80080E1FE01ED -:102AA000A5E8B3E001900D928A95E1F7DF91CF910F -:102AB000089580911F04811109C00E946F180E941F -:102AC000CC188091E20084608093E2000895109217 -:102AD0001F040895089508950C94122742E061ECB4 -:102AE00081E00E94E91742E061EC82E00E94E91770 -:102AF00042E061EC83E00E94E91742E161EC84E08E -:102B00000C94E91780912204833009F455C030F405 -:102B1000813071F0823009F48EC008958A3009F452 -:102B20007AC08B3009F460C0893009F09CC020C0A5 -:102B300080912104813A09F096C08091E800877F56 -:102B40008093E8008091250490912604892B21F43C -:102B500060E185E893E003C060E080E090E070E031 -:102B60000E9425178091E8008B778093E8000895F4 -:102B700080912104813209F076C0809125049091E2 -:102B80002604009719F0039709F06DC08091E800C2 -:102B9000877F8093E8008091E80082FD05C08091E6 -:102BA00020048111F8CF5FC08091F10080939503DC -:102BB0008091E8008B7753C080912104813A09F01D -:102BC00052C08091250490912604892B09F04BC0B6 -:102BD0008091E800877F8093E8008091E80080FF83 -:102BE000FCCF80911D0236C0809121048132D9F53D -:102BF0008091250490912604892BA9F58091E80005 -:102C0000877F8093E8000E941E18809123048093A0 -:102C10001D020C94542080912104813221F5809171 -:102C2000E800877F8093E8000E941E1880912404AA -:102C300080939603089580912104813AA1F48091B4 -:102C4000E800877F8093E8008091E80080FFFCCF58 -:102C5000809196038093F1008091E8008E778093B5 -:102C6000E8000C941E18089584B7877F84BF88E11C -:102C70000FB6F89480936000109260000FBE80E859 -:102C800080936100109261000E94C11B0E946F1826 -:102C90000E94CC188091E20084608093E2007894D6 -:102CA0000E94521B0E94C31B83E192E00E946D1B95 -:102CB00080912004853069F40E94D42680911E04FE -:102CC0008823B1F30E940127882391F30E94C41640 -:102CD000EFCF0E94CB1BECCF292F332723303105B8 -:102CE000C9F064F42130310581F02230310509F05A -:102CF00043C08DE690E022EE39E042C0213231053A -:102D0000F1F02232310541F137C082E190E02FE449 -:102D10003AE036C099278130910541F08230910523 -:102D200041F0892B49F5EEEDF9E005C0E0EBF9E063 -:102D300002C0E4E8F9E0849190E09F0121C0643092 -:102D4000D8F4E62FF0E0EE0FFF1FE954FD4F20818D -:102D5000318189E090E014C0643070F470E0FB01D0 -:102D6000EE0FFF1FE155FD4F20813181FB01E5553D -:102D7000FD4F808190E004C080E090E020E030E0F2 -:102D8000FA0131832083089580E189BD82E189BD04 -:102D900009B400FEFDCF8091D8008F7D8093D800CC -:102DA0008091E00082608093E0008091E00081FDEE -:102DB000FCCF0895CF92DF92EF92FF920F931F9373 -:102DC000CF93DF93EC018B016A010E943D188111C2 -:102DD00033C0C114D10439F0F60180819181081B00 -:102DE000190BC80FD91FE12CF12C0115110519F190 -:102DF0008091E80085FD16C08091E8008E77809371 -:102E0000E800C114D10449F0F60180819181E80EF7 -:102E1000F91EF182E08285E00FC00E943D188823F0 -:102E200021F30AC089918093F10001501109FFEF4D -:102E3000EF1AFF0ADACF80E0DF91CF911F910F9157 -:102E4000FF90EF90DF90CF9008952091270430916C -:102E500028042617370748F06115710539F42091C9 -:102E6000E8002E772093E80001C0B90140E0611529 -:102E70007105A9F120912004222309F443C02530D3 -:102E800009F442C02091E80023FD40C02091E800F1 -:102E900022FD32C02091E80020FFE9CF4091F300ED -:102EA0002091F20030E0342BFC01CF016115710557 -:102EB00059F02830310540F481918093F100615040 -:102EC00071092F5F3F4FF1CF41E02830310509F004 -:102ED00040E02091E8002E772093E800C8CF411110 -:102EE000C9CF0AC080912004882361F0853061F049 -:102EF0008091E80083FD0AC08091E80082FFF2CF54 -:102F000080E0089582E0089583E0089581E00895C7 -:102F100020912704309128042617370748F06115BF -:102F2000710539F42091E8002E772093E80001C064 -:102F3000B901FC0120E06115710591F18091200437 -:102F4000882309F440C0853009F43FC08091E8002F -:102F500083FD3DC08091E80082FD2FC08091E80094 -:102F600080FFE9CF2091F3008091F20090E0922B56 -:102F70006115710559F08830910540F42491209332 -:102F8000F1003196615071090196F2CF21E0089766 -:102F900009F020E08091E8008E778093E800CBCFA5 -:102FA0002111CCCF0AC080912004882361F08530A4 -:102FB00061F08091E80083FD0AC08091E80082FF03 -:102FC000F2CF80E0089582E0089583E0089581E0E3 -:102FD0000895982F973058F59093E900981739F095 -:102FE0007091EC002091ED005091F00003C0242F6F -:102FF000762F50E021FF19C03091EB003E7F3093D7 -:10300000EB003091ED003D7F3093ED003091EB000F -:1030100031603093EB007093EC002093ED005093FF -:10302000F0002091EE0027FF07C09F5FD3CF8F7085 -:103030008093E90081E0089580E008958091210463 -:1030400087FF11C08091E80082FD05C080912004B7 -:103050008111F8CF11C08091E8008B770BC080916F -:103060002004882349F08091E80080FFF8CF809108 -:10307000E8008E778093E80008952091E400309175 -:10308000E50095E64091EC00842F817040FF22C05E -:103090008091E80080FD1CC080912004882391F07D -:1030A000853091F08091EB0085FD10C04091E400E7 -:1030B0005091E5004217530729F39A01915011F7F7 -:1030C00084E0089582E0089583E0089581E0089502 -:1030D00080E008954091E80042FFDECF08950E940D -:1030E000DD180E94E518E0EEF0E0808181608083C9 -:1030F000E8EDF0E080818F77808319BCA7EDB0E028 -:103100008C918E7F8C9380818F7E808310921F04A0 -:1031100008950F931F93CF93DF930E94DD180E94B1 -:10312000E518C8EDD0E088818F7788838881806832 -:10313000888388818F7D888319BC10922004109227 -:103140001C0410921E0410921D0400EE10E0F80101 -:1031500080818B7F808388818160888342E060E00A -:1031600080E00E94E917E1EEF0E080818E7F8083AD -:10317000E2EEF0E0808181608083808188608083DE -:10318000F80180818E7F8083888180618883DF91D0 -:10319000CF911F910F910895E8EDF0E080818F7E2F -:1031A0008083E7EDF0E080818160808384E082BFEE -:1031B00081E080931F040C948918E8EDF0E0808191 -:1031C0008E7F80831092E20008951092DA001092B0 -:1031D000E10008951F920F920FB60F9211242F93C2 -:1031E0003F934F935F936F937F938F939F93AF938F -:1031F000BF93EF93FF938091E10082FF0BC080911A -:10320000E20082FF07C08091E1008B7F8093E100A4 -:103210000E94511B8091DA0080FF1FC08091D8006E -:1032200080FF1BC08091DA008E7F8093DA0080914E -:10323000D90080FF0DC080E189BD82E189BD09B45C -:1032400000FEFDCF81E0809320040E94591505C047 -:1032500019BC109220040E9467158091E10080FF44 -:1032600019C08091E20080FF15C08091E2008E7F3E -:103270008093E2008091E20080618093E20080917F -:10328000D80080628093D80019BC85E08093200428 -:103290000E946B158091E10084FF30C08091E200B4 -:1032A00084FF2CC080E189BD82E189BD09B400FEA4 -:1032B000FDCF8091D8008F7D8093D8008091E10070 -:1032C0008F7E8093E1008091E2008F7E8093E20008 -:1032D0008091E20081608093E20080911C04882349 -:1032E00011F084E007C08091E30087FD02C081E017 -:1032F00001C083E0809320040E946C158091E1005E -:1033000083FF29C08091E20083FF25C08091E10006 -:10331000877F8093E10082E08093200410921C0458 -:103320008091E1008E7F8093E1008091E2008E7FAA -:103330008093E2008091E20080618093E20042E0AD -:1033400060E080E00E94E9178091F000886080933F -:10335000F0000E946A15FF91EF91BF91AF919F918C -:103360008F917F916F915F914F913F912F910F902E -:103370000FBE0F901F9018951F920F920FB60F92CD -:1033800011242F933F934F935F936F937F938F936A -:103390009F93AF93BF93CF93DF93EF93FF93C0912E -:1033A000E900CF708091EC00D82FD17080FDD0E87B -:1033B0001092E9008091F000877F8093F00078946C -:1033C0000E94001A1092E9008091F00088608093BA -:1033D000F000CD2BCF70C093E900FF91EF91DF910A -:1033E000CF91BF91AF919F918F917F916F915F919D -:1033F0004F913F912F910F900FBE0F901F901895F6 -:103400001F93CF93DF93CDB7DEB7AA970FB6F8948B -:10341000DEBF0FBECDBFE1E2F4E088E08E0F9091F9 -:10342000F10091938E13FBCF0E9482158091E800EA -:1034300083FF1FC18091210490912204492F50E005 -:103440004A30510508F015C1FA01EA5AFF4F0C94B1 -:103450001A31803881F0823809F00BC1809125043F -:103460008F708093E9008091EB0085FB882780F9BD -:103470001092E90006C080911D0490911E049111E4 -:1034800082609091E800977F9093E8008093F1002C -:103490001092F100C8C0282F2D7F09F0EAC08823C0 -:1034A00019F0823061F0E5C080912304813009F089 -:1034B000E0C0933009F080E080931E042BC080911F -:1034C0002304811127C0809125048F7009F4D1C095 -:1034D0008093E9002091EB0020FF1CC0933021F481 -:1034E0008091EB00806214C09091EB00906190930A -:1034F000EB0021E030E0A90102C0440F551F8A957E -:10350000E2F74093EA001092EA008091EB008860B5 -:103510008093EB001092E9008091E800877F86C0DD -:103520008111A7C0109123041F778091E300807858 -:10353000812B8093E3008091E800877F8093E800EF -:103540000E941E188091E80080FFFCCF8091E3006C -:1035500080688093E300111102C082E001C083E023 -:103560008093200486C08058823008F082C0809109 -:103570002304909124048C3D53E0950779F583E072 -:103580008A838AE289834FB7F894DE01139620E09C -:103590003EE051E2E32FF0E050935700E49120FF2A -:1035A00003C0E295EF703F5FEF708E2F90E0EA303E -:1035B00010F0C79601C0C0968D939D932F5F243164 -:1035C00049F74FBF8091E800877F8093E8006AE267 -:1035D00070E0CE0101960E94251714C0AE014F5F26 -:1035E0005F4F609125040E946C16BC01009709F49E -:1035F00040C09091E800977F9093E80089819A817C -:103600000E9488178091E8008B778093E80031C092 -:10361000803879F58091E800877F8093E800809179 -:103620001C048093F1008091E8008E778093E8007D -:103630000E941E181EC081111CC09091230492305C -:10364000C0F48091E800877F8093E80090931C0489 -:103650000E941E1880911C04811106C08091E30015 -:1036600087FD02C081E001C084E0809320040E94B5 -:103670006E158091E80083FF0AC08091E800877F83 -:103680008093E8008091EB0080628093EB00AA9623 -:103690000FB6F894DEBF0FBECDBFDF91CF911F9163 -:1036A00008950895CF93809120048823A1F0C091BC -:1036B000E900CF709091EC00892F817090FD80E837 -:1036C000C82B1092E9008091E80083FD0E94001A47 -:1036D000CF70C093E900CF91089590939C0380939D -:1036E0009B030895E0919B03F0919C03309721F098 -:1036F0000190F081E02D099480E00895E0919B0312 -:10370000F0919C03309721F00280F381E02D099421 -:103710000895E0919B03F0919C03309721F0048081 -:10372000F581E02D099408952091990330919A0331 -:103730008217930771F090939A0380939903E09115 -:103740009B03F0919C03309721F00680F781E02DD8 -:103750000994089520919703309198038217930755 -:1037600071F09093980380939703E0919B03F091FD -:103770009C03309721F00084F185E02D0994089591 -:1037800008950C94C01B0E9446270E94160D0E94AB -:10379000CC270C948D2C5F926F927F928F929F9288 -:1037A000AF92BF92CF92DF92EF92FF920F931F934F -:1037B000CF93DF9300D000D01F92CDB7DEB70E9429 -:1037C0005B0D98EAC92E93E0D92E04E010E0AA24FC -:1037D000A394B12C502E802F0E94C90D4C01F601EC -:1037E000729062906F016826792661147104A1F4C9 -:1037F0000150110978F78FEF89838A831B820E9419 -:103800004F278160782F9D838C8349815A816B81FA -:103810008D810E947B1C38C08091FD0381FD0E9438 -:10382000D20D2BE030E07501022E02C0EE0CFF1C21 -:103830000A94E2F7C70186219721892B09F1298390 -:103840005A828E209F2091E0892809F490E09B8382 -:103850000E944F278160782F9D838C8349815A81F4 -:103860006B818D810E947B1C000F111FF801E256B5 -:10387000FC4F80819181E826F926F182E08204C024 -:103880002150310980F6B4CF0E94BB2910919D03CD -:103890000E94721B1817D1F00E94721B80939D0327 -:1038A0000F900F900F900F900F90DF91CF911F917D -:1038B0000F91FF90EF90DF90CF90BF90AF909F90CF -:1038C0008F907F906F905F900C94C20C0F900F9030 -:1038D0000F900F900F90DF91CF911F910F91FF905C -:1038E000EF90DF90CF90BF90AF909F908F907F90A0 -:1038F0006F905F900895CF93DF93CDB7DEB72B978E -:103900000FB6F894DEBF0FBECDBF4F8358876987CF -:103910007A878B87DE01119686E0FD0111928A95E8 -:10392000E9F785E0FE01379601900D928A95E1F75F -:1039300049815A816B817C818D819E810E94F22216 -:103940002B960FB6F894DEBF0FBECDBFDF91CF919F -:103950000895CF93882309F4C2C0C82F823859F440 -:103960000E94721B81FDBBC089E30E94CC250E948E -:10397000992689E30CC0833879F40E94721B80FD7C -:10398000AEC083E50E94CC250E94992683E50E9463 -:103990000E26CF910C949926843859F40E94721BFC -:1039A00082FD9DC087E40E94CC250E94992687E471 -:1039B000EECF8CEF8C0F813A48F48C2F0E94F62BBF -:1039C00081118DC08C2F0E94CC25E3CF80E28C0F1B -:1039D000883048F4C77081E001C0880FCA95EAF7C3 -:1039E0000E945226D6CF8BE58C0F833078F4C53AEF -:1039F00029F0C63A31F083E890E005C081E890E014 -:103A000002C082E890E0CF910C94941B88E58C0F63 -:103A1000833108F064C0C83A39F1C93A41F1CA3A71 -:103A200049F1CB3A51F1CC3A59F1CD3A61F1C03B71 -:103A300069F1CE3A71F1CF3A79F1C13B81F1C23BE4 -:103A400089F1C33B91F1C43B99F1C53BA1F1C63B60 -:103A5000A9F1C73BB1F1C83BB9F1C93BC1F1CA3BC0 -:103A6000C9F180E090E038C082EE90E035C089EE88 -:103A700090E032C08AEE90E02FC085EB90E02CC041 -:103A800086EB90E029C087EB90E026C08CEC90E0BC -:103A900023C08DEC90E020C083E891E01DC08AE84F -:103AA00091E01AC082E991E017C084E991E014C066 -:103AB00081E292E011C083E292E00EC084E292E0E3 -:103AC0000BC085E292E008C086E292E005C087E282 -:103AD00092E002C08AE292E0CF910C94AA1BCF91AF -:103AE0000895882309F44BC0823859F40E94721B50 -:103AF00081FF45C089E30E94CC250E94992689E375 -:103B00000CC0833871F40E94721B80FF38C083E5BB -:103B10000E94CC250E94992683E50E940E260C94D3 -:103B20009926843859F40E94721B82FF28C087E4CA -:103B30000E94CC250E94992687E4EFCF9CEF980F36 -:103B4000913A58F390E2980F983050F4877091E0D2 -:103B500001C0990F8A95EAF7892F0E945826DFCF76 -:103B60009BE5980F933020F480E090E00C94941B38 -:103B7000885A833120F480E090E00C94AA1B0895C9 -:103B8000882321F00E9452260C94992608958823B8 -:103B900021F00E9458260C94992608957F928F92C6 -:103BA0009F92AF92BF92CF92DF92EF92FF920F93CC -:103BB0001F93CF93DF931F92CDB7DEB77C01C62E44 -:103BC000772EFC01058102950F70128111110E9460 -:103BD0006F260E94C525882379F0112369F080E2C1 -:103BE0008C0D883048F082E00E94AE250E94C525E9 -:103BF00091E0D82ED92601C0D12CE72DE295EF70A7 -:103C0000F0E0E05AFF4F0C941A31872D807F072D8A -:103C10000F70882311F00295007F112389F0002393 -:103C200009F499C180E28C0D883020F4802F0E9425 -:103C3000522603C0802F0E9462260E9499268BC1C3 -:103C40008C2D0E94711D002309F4C3C180E28C0DEC -:103C5000883020F4802F0E94582603C0802F0E94B5 -:103C600068260E949926B5C1872D807F972D9F7069 -:103C7000803211F4892F03C0892F8295807FCC2058 -:103C800021F0F1E0CF16A1F01DC0112339F000237F -:103C900019F1013009F50E9482269BC1002319F019 -:103CA000013009F496C189830E948526898110C15B -:103CB000112321F0063008F08CC10EC0053008F049 -:103CC00088C106C1112359F0002331F0F701958115 -:103CD00090FF41C19F7095830E94C01D7AC100234F -:103CE00009F4F6C03EC1872D86958695837090E0D5 -:103CF000009719F0019761F06CC1112321F08C2D10 -:103D0000972D937002C080E090E00E94941B61C1E7 -:103D1000112321F08C2D972D937002C080E090E04C -:103D20000E94AA1B56C18C2D112319F00E94C32892 -:103D300002C00E942B290E94B0294BC1872D83709D -:103D400009F052C0111145C18C2D8295869587705E -:103D5000880F880F9C2D9F70892E912CA12CB12C3F -:103D6000082E04C0880C991CAA1CBB1C0A94D2F70C -:103D7000C4FE14C00FE010E020E030E0B901A8015B -:103D800004C0440F551F661F771F8A95D2F7CB01D9 -:103D9000BA01609570958095909503C060E070E0E1 -:103DA000CB01272D26952695237030E02230310552 -:103DB00069F02330310589F0682979298A299B29FE -:103DC0002130310571F00E943A2403C16829792914 -:103DD0008A299B290E945624FCC00E943A24C501CE -:103DE000B4010E941E24F5C0112319F0872D8170A3 -:103DF00001C08695882309F4ECC08C2D82958695A8 -:103E00008770880F880F9C2D9F70892E912CA12C74 -:103E1000B12C082E04C0880C991CAA1CBB1C0A9447 -:103E2000D2F7C4FE14C00FE010E020E030E0B9018A -:103E3000A80104C0440F551F661F771F8A95D2F74B -:103E4000CB01BA01609570958095909503C060E0B4 -:103E500070E0CB01272D269526952370422F50E048 -:103E60004230510569F04330510589F068297929BC -:103E70008A299B294130510571F00E941425A9C05F -:103E8000682979298A299B290E943025A2C00E948D -:103E90001425C501B4010E94F8249BC08C2D90E02C -:103EA000FC01E05EF109E531F10508F050C0E05990 -:103EB000FF4F0C941A310C2D0F70872D8F71112329 -:103EC00021F00E949124802F07CF0E94B224802FDE -:103ED0000E94C71D7EC0112341F0053008F079C053 -:103EE000872D8F710E94D72474C0063008F071C0EE -:103EF000F7CF112339F0872D8F710E94912469C06B -:103F00001123C9F3872D8F710E94B22462C011233F -:103F100029F0872D8F710E947C245BC00E9472243F -:103F200058C0112351F0172D1F71812F0E94912429 -:103F300063E0812F0E94A5254CC081E00E94AE2540 -:103F4000023008F446C082E00E94AE2542C0112330 -:103F500031F0002381F28C2D0E94A91C3AC000236D -:103F600089F28C2D0E94711D34C0472D4F706C2D2D -:103F7000C7010E944B060E9496232BC0111129C035 -:103F8000472D4F7050E042305105B9F04CF44115C7 -:103F9000510581F041305105E1F40E94B52C19C062 -:103FA0004330510569F04430510599F48C2D0E943D -:103FB000072D0FC00E949E2C0CC00E94D12C09C05E -:103FC0000E94E42C06C0472D4F706C2DC7010E9443 -:103FD000310CDD20F9F00E94A12580FD1BC0F70106 -:103FE00012820E949B250E949124C7010E941920E1 -:103FF0000E949B250F90DF91CF911F910F91FF9011 -:10400000EF90DF90CF90BF90AF909F908F907F9078 -:104010000C94B2240F90DF91CF911F910F91FF90DC -:10402000EF90DF90CF90BF90AF909F908F907F9058 -:1040300008950F931F93CF93DF93EC0188819981AB -:104040002B813C81232BB9F09F3F11F48F3F99F0D6 -:10405000CE010E949E07882371F0688179818A8150 -:104060000E9497258C010E944C250E941324B801C0 -:10407000CE010E94CE1DDF91CF911F910F91089527 -:104080000E946F260E947F260E9444260E94992645 -:104090000E94612A0E94B02980E090E00E94941B57 -:1040A00080E090E00C94AA1B0E945F260C944020B4 -:1040B0000E948C25292F22952F7030E02C3031055D -:1040C0004CF42A3031056CF422503109223031058C -:1040D000A8F407C02C30310569F02F30310551F0BC -:1040E0000DC0803F69F018F4803E40F409C0843F61 -:1040F00029F406C093FB882780F9089580E008958D -:1041000081E00895CF93DF9300D000D01F92CDB708 -:10411000DEB70F900F900F900F900F90DF91CF911F -:104120000895CF93DF9300D000D000D0CDB7DEB795 -:1041300026960FB6F894DEBF0FBECDBFDF91CF91AC -:1041400008951F93CF93DF93C091A80316E0809149 -:10415000A903C81799F0D0E01C9FF0011D9FF00D36 -:104160001124E655FC4F4081518162817381848125 -:1041700095810E9491202196C770E9CFDF91CF9160 -:104180001F9108954091DA035091DB036091DC03A5 -:104190007091DD038091DE039091DF030C949120F8 -:1041A0008091DF0382958F7009F054C08091DC0309 -:1041B000882309F44FC08091A803A091A9036091BE -:1041C000DA037091DB034091DD035091DE03B6E02A -:1041D0008A1709F43FC090E041155105C1F17F3FB6 -:1041E00011F46F3FA1F1B89FF001B99FF00D1124B8 -:1041F000E655FC4F218172132AC02081621327C02B -:104200002281211124C0238134812417350710F421 -:1042100021503109241B350B283C3105C0F4209175 -:10422000DF032F7020612093DF0326E0289FF00139 -:10423000299FF00D1124E155FC4F80818F70806122 -:1042400080838AED93E00E9419200C94A1200196AE -:104250008770BECF0895CF92DF92EF92FF920F93B7 -:104260001F93CF93DF93CDB7DEB762970FB6F89465 -:10427000DEBF0FBECDBF8C0185E0F801DE011D96CB -:1042800001900D928A95E1F7D8014C9111965C91BD -:10429000119712966C9112971396CD90DC9014970B -:1042A0003091DA037091DB038091DD039091DE039E -:1042B000009709F46BC17F3F19F43F3F09F466C1D1 -:1042C000E090DC03EE2009F4C0C02091DF03C816A3 -:1042D000D90628F0F601E81BF90BCF0104C0809540 -:1042E00090958C0D9D1DFF24F394883C910578F0EA -:1042F000F12C207F09F0C6C07C2DD98AC88A898913 -:104300000E9482208AED93E00E941920B1C0822F82 -:10431000807F09F046C0751314C0341312C06111B8 -:1043200010C02F7020612093DF030E94C2208AED0D -:1043300093E00E9419208091DF03D80115968C9399 -:104340002EC0CD2819F15F3F11F44F3FF9F0F62E42 -:1043500061111CC08091A8032091A90336E0821747 -:1043600009F45AC090E0389FF001399FF00D1124F4 -:10437000E655FC4F7181571306C07081471303C087 -:104380007281711103C001968770E9CFF62E662302 -:1043900009F418C18091DF0381608093DF03F12C61 -:1043A00011C1751308C0341306C0611104C0809197 -:1043B000DF03D801C3C04D875E878D859E856A8BDC -:1043C0000E9458206A898823E1F16623D1F1209167 -:1043D000DF03822F82958F7090E0029774F08091B6 -:1043E000DA039091DB0398878F831986DB86CA8670 -:1043F0002C87CE0107960E94192086E0F801AAEDCD -:10440000B3E001900D928A95E1F70E94D0200E94BE -:10441000C220FF24F394D6C04D875E878D859E858C -:104420000E948C25292F22952F7030E022303105F3 -:104430000CF0BCC09F7009F0B6C0805E883008F4F4 -:10444000C1C0C8010E941920E4CFC816D90608F4DB -:1044500053C0F601E81BF90BCF01883C910508F425 -:1044600050C0F12C7C2DD98AC88A89890E9482206B -:10447000EAEDF3E086E0DF011D928A95E9F70E94FC -:10448000C220A0C0751314C0341312C0611110C033 -:104490008091DF03F8018583C8010E94192086E01E -:1044A000EAEDF3E0DF011D928A95E9F7FE2C8AC060 -:1044B0004D875E878D859E856A8B0E9458206A890C -:1044C000882309F4BECF662309F4BBCF2091DF0314 -:1044D000822F82958F7090E002970CF48ECF80919E -:1044E000DA039091DB039A8389831B82DD82CC827D -:1044F0002E83CE0101967FCF809590958C0D9D1DCA -:10450000ACCFF62E662309F49CCF75132EC034135E -:104510002CC02091DF0320FD1FC0822F82958F7059 -:10452000D9F0D80115962C9315978F3049F08F5FED -:10453000982F9295907F822F8F70892B15968C9350 -:10454000C8010E94192086E0F801AAEDB3E00190AD -:104550000D928A95E1F793CF86E0F801AAEDB3E0DA -:1045600001900D928A95E1F72DC04D875E878D856C -:104570009E850E945820811140CF8091DF03816089 -:104580008093DF03C8010E9419201CC0662309F430 -:1045900058CF4D875E878D859E850E945820882341 -:1045A00009F44FCF2ACF811148CF0CC024303105F8 -:1045B0000CF047CF9F7009F440CFF8019581907FB0 -:1045C00009F03BCF8F2D62960FB6F894DEBF0FBE79 -:1045D000CDBFDF91CF911F910F91FF90EF90DF90B2 -:1045E000CF9008951F93CF93DF93CDB7DEB72C976D -:1045F0000FB6F894DEBF0FBECDBF4F8358876987D3 -:104600007A878B879C87CE0107960E942B2188236F -:1046100069F08F8198852A853B85232BF1F19F3F97 -:1046200009F063C08F3F09F060C037C086E0FE012B -:104630003796DE01119601900D928A95E1F76F8110 -:104640007885EA85FB85309741F17F3F11F46F3F14 -:1046500021F12091A90330E0C901019687709927C3 -:104660004091A80350E08417950709F447C0698377 -:104670007A83FD83EC8396E0929FD001939FB00DE7 -:104680001124A655BC4FFE01319601900D929A95CA -:10469000E1F78093A9030E94A12016E08091A8036E -:1046A0009091A9038917C1F1189FC0011124865563 -:1046B0009C4F0E942B21882379F1E091A8031E9F33 -:1046C000F0011124E655FC4F4081518162817381D4 -:1046D000848195810E9491208091A80390E00196A9 -:1046E000877099278093A803D9CF4F815885698512 -:1046F0007A858B859C850E949120CFCF0E94542083 -:104700001092A9031092A803EAEDF3E086E0DF011E -:104710001D928A95E9F7C1CF2C960FB6F894DEBFAB -:104720000FBECDBFDF91CF911F910895EF92FF9201 -:104730000F931F93CF93DF938C01009709F46CC004 -:10474000F12CEE24E394E8012196F801849184375A -:1047500040F4843008F051C0813081F0823019F18A -:104760005BC0853709F444C0A8F19CE7980F9037E7 -:1047700008F052C08F770E94711D41C00E5F1F4F1D -:10478000FE01C49180E28C0F883048F4C7708E2DF2 -:1047900001C0880FCA95EAF70E94722614C08C2FB8 -:1047A0000E94A91C2DC00E5F1F4FFE01C49180E224 -:1047B0008C0F883058F4C7708E2D01C0880FCA95B1 -:1047C000EAF70E9478260E9499261AC08C2F0E9430 -:1047D000711D16C00E5F1F4FFE01C491CC2381F0E6 -:1047E0008FE99FE00197F1F700C00000C150F6CFBC -:1047F0000E5F1F4FFE01F49003C00E94A91C8E01A2 -:104800008F2D882309F49FCFEFE9FFE03197F1F76F -:1048100000C000008150F5CFDF91CF911F910F9123 -:10482000FF90EF90089508956093E4037093E5037B -:104830008093E6039093E7030C9440200F931F931B -:104840000091E4031091E5032091E6033091E70322 -:10485000DC01CB01802B912BA22BB32B8093E403A3 -:104860009093E503A093E603B093E7031F910F91A4 -:104870000C9440200F931F930091E4031091E503E3 -:104880002091E6033091E703DC01CB0180239123E3 -:10489000A223B3238093E4039093E503A093E6035C -:1048A000B093E7031F910F910C9440200F931F9337 -:1048B0000091E4031091E5032091E6033091E703B2 -:1048C000DC01CB0180279127A227B3278093E40343 -:1048D0009093E503A093E603B093E7031F910F9134 -:1048E0000C9440201092E0031092E1031092E20336 -:1048F0001092E3030C94402041E050E060E070E04F -:1049000004C0440F551F661F771F8A95D2F7409346 -:10491000E0035093E1036093E2037093E3030C948C -:10492000402041E050E060E070E004C0440F551FBB -:10493000661F771F8A95D2F78091E0039091E1037B -:10494000A091E203B091E303482B592B6A2B7B2BF8 -:104950004093E0035093E1036093E2037093E30319 -:104960000C94402041E050E060E070E004C0440F4F -:10497000551F661F771F8A95D2F740955095609511 -:1049800070958091E0039091E103A091E203B091D2 -:10499000E303482359236A237B234093E003509386 -:1049A000E1036093E2037093E3030C94402041E041 -:1049B00050E060E070E004C0440F551F661F771F91 -:1049C0008A95D2F78091E0039091E103A091E203F0 -:1049D000B091E303482759276A277B274093E003D8 -:1049E0005093E1036093E2037093E3030C9440203F -:1049F0000F931F930091E0031091E1032091E203D4 -:104A00003091E303DC01CB01802B912BA22BB32B44 -:104A10008093E0039093E103A093E203B093E30358 -:104A20001F910F910C9440200F931F930091E0036E -:104A30001091E1032091E2033091E303DC01CB010B -:104A400080239123A223B3238093E0039093E10377 -:104A5000A093E203B093E3031F910F910C944020C5 -:104A60000F931F930091E0031091E1032091E20363 -:104A70003091E303DC01CB0180279127A227B327E4 -:104A80008093E0039093E103A093E203B093E303E8 -:104A90001F910F910C9440200895CF92DF92EF92D6 -:104AA000FF920F931F93CF93DF938C01C090E40389 -:104AB000D090E503E090E603F090E7038091E003F7 -:104AC0009091E103A091E203B091E303C82AD92AAF -:104AD000EA2AFB2ACFE1D0E0D701C6010C2E04C0A0 -:104AE000B695A795979587950A94D2F780FF06C04B -:104AF000B8018C2F0E94900A019721F4219760F74A -:104B000080E001C08C2FDF91CF911F910F91FF901A -:104B1000EF90DF90CF900895CF93DF93EC010E9448 -:104B20004D25BE010E94900ADF91CF910895CB01DF -:104B30000E948C2508958091E8038595859585953B -:104B400008958091E8038770089598E0899F900107 -:104B50001124262B2093E8030C9491242091E80340 -:104B6000809582238093E803982F977069F430E052 -:104B7000482F552747FD50952417350729F085956F -:104B8000859585950C94B22408959091E8039770CB -:104B900081E009F480E0089590911D02992321F0AD -:104BA00090911E02911109C020911F0230912002A4 -:104BB000F90132969FEF40E01FC0982F9695969589 -:104BC00096959F3050F5E0911F02F0912002E90F79 -:104BD000F11D877021E030E0A90102C0440F551F8C -:104BE0008A95E2F7CA019181892B818308959F3FBD -:104BF00039F04F5F4E3041F051915813F8CF0DC04E -:104C00005111F7CF942FF5CF9F3F39F0F901E90FFC -:104C1000F11D97FDFA9582830895089590911D02E4 -:104C2000992321F090911E02911109C020911F0239 -:104C300030912002F9013296205F3F4F1FC0982F1C -:104C40009695969596959F30F0F4E0911F02F0911D -:104C50002002E90FF11D877021E030E0A90102C0B8 -:104C6000440F551F8A95E2F7CA01809591818923E7 -:104C7000818308953196E217F30729F09081981304 -:104C8000F9CF1082F7CF089581E090E0E0911F0204 -:104C9000F0912002E80FF91F1082019680319105F2 -:104CA000A9F708959091FC03892B8093FC03089544 -:104CB00080959091FC0389238093FC0308951092C2 -:104CC000FC0308959091FB03892B8093FB030895C7 -:104CD00080959091FB0389238093FB0308951092A4 -:104CE000FB0308959091FA03892B8093FA030895AA -:104CF00080959091FA0389238093FA030895109286 -:104D0000FA0308958093E90308951092E903089542 -:104D100080911F0290912002FC0131969C01205F3E -:104D20003F4F80E0919191118F5FE217F307D1F728 -:104D30000895E0911F02F09120028091FC0380838E -:104D4000E0911F02F091200290818091FB03892B5A -:104D50008083E0911F02F091200290818091FA03FC -:104D6000892B80838091E903882361F0E0911F0201 -:104D7000F09120029081892B80830E9488268111E6 -:104D80001092E90380911F02909120020C947E1BE7 -:104D900020E0009739F0AC0141505109842395235C -:104DA0002F5FF7CF822F089580912004843039F14E -:104DB0001092FE0320E488E190E00FB6F894A895E5 -:104DC000809360000FBE2093600080E00E94120676 -:104DD00080E00E94C20C83B7817F846083BF83B769 -:104DE000816083BF7894889583B78E7F83BF88E185 -:104DF0000FB6F89480936000109260000FBE089583 -:104E0000089580E00E9412060E94D80C0E945B0D5B -:104E10000E9400270E94D30D91E0811101C090E013 -:104E2000892F08950E94542080E00E9412060E945B -:104E30008D2C0E94721B0C94C20C1F920F920FB605 -:104E40000F9211248F939F93AF93BF938091FE0392 -:104E5000811113C08091FF0390910004A09101047F -:104E6000B09102044196A11DB11D8093FF03909360 -:104E70000004A0930104B0930204BF91AF919F91ED -:104E80008F910F900FBE0F901F90189582E084BDF8 -:104E900093E095BD9AEF97BD80936E0008952FB76C -:104EA000F8948091FF0390910004A0910104B091C7 -:104EB00002042FBF0895CF92DF92EF92FF920F93DB -:104EC0001F932FB7F8944091FF0350910004609115 -:104ED0000104709102042FBF6A017B01EE24FF24BC -:104EE0008C0120E030E0C016D106E206F30610F493 -:104EF000415051099A01281B390BC9011F910F918B -:104F0000FF90EF90DF90CF9008951F920F920FB611 -:104F10000F9211248F939F93AF93BF938091FF03C0 -:104F200090910004A0910104B09102040196A11D8A -:104F3000B11D8093FF0390930004A0930104B093EC -:104F40000204BF91AF919F918F910F900FBE0F9070 -:104F50001F9018950E946F18F8942FEF87EA91E63A -:104F6000215080409040E1F700C0000087E090EBC6 -:104F7000DC0180932A0490932B04A0932C04B0931B -:104F80002D049CE088E10FB6F894A895809360000A -:104F90000FBE90936000FFCF0E940E28811102C0C7 -:104FA0000E94EA270E9419288093FD030E94262868 -:104FB00090E090930F0480930E0487FB882780F97C -:104FC00080931E020E941D28682F70E080E090E010 -:104FD0000C9414246DEE7EEF80E090E00E9440314E -:104FE00060E082E090E00E942E3160E083E090E09B -:104FF0000E942E3160E084E090E00E942E3160E05B -:1050000085E090E00E942E3160E086E090E00E9412 -:105010002E316FEF87E090E00C942E3180E090E02D -:105020000E94283121E08D3E9E4F09F020E0822F22 -:10503000089582E090E00C94203183E090E00C949D -:105040002031682F83E090E00C942E3184E090E0D2 -:105050000C942031682F84E090E00C942E3186E08F -:1050600090E00C942031682F86E090E00C942E3173 -:1050700087E090E00C942031682F87E090E00C945A -:105080002E318091050480FF0BC06091240285E0E1 -:10509000689FB001112475956795759567952BC02C -:1050A00081FF09C06091240285E0689FB00111244E -:1050B0007595679520C082FF07C06091240285E046 -:1050C000689FB001112417C0909106049923D1F074 -:1050D00060912302961788F72091240285E0289F8B -:1050E00090011124929FA001939F500D112470E014 -:1050F000CA010E9406316038710540F461157105DE -:1051000039F002C065E070E0862F08958FE70895BA -:1051100081E008958091050480FF08C0609122021B -:1051200070E0759567957595679521C081FF06C0FC -:105130006091220270E07595679519C082FF04C0E6 -:105140006091220270E010C0909106049923C1F092 -:10515000609121029617A0F780912202899FC001D9 -:10516000112470E00E9406316038710528F4611541 -:10517000710521F0862F08958FE7089581E0089545 -:1051800061E070E0F4CF803F21F40E9441288195D6 -:1051900004C0813F29F40E944128809309040895A6 -:1051A000823F21F40E944128819504C0833F29F465 -:1051B0000E944128809308040895893F19F40E94B1 -:1051C0008A2805C08A3F31F40E948A2881958093FD -:1051D0000A0408958B3F21F40E948A28819504C017 -:1051E0008C3F29F40E948A2880930B040895843F01 -:1051F00021F480910704816017C0853F21F48091DC -:105200000704826011C0863F21F480910704846006 -:105210000BC0873F21F480910704886005C0883F58 -:1052200031F48091070480618093070408958D3FD5 -:1052300021F48091050481600BC08E3F21F48091A0 -:105240000504826005C08F3F29F4809105048460C5 -:10525000809305040895803F39F48091090487FF05 -:105260006CC01092090469C0813F29F4809109043F -:105270001816BCF362C090910804823F29F497FF8E -:105280005CC01092080459C0833F19F41916CCF37E -:1052900054C0893F41F480910A0418160CF04DC0A7 -:1052A00010920A044AC08A3F29F480910A0487FFB9 -:1052B00044C0F6CF8B3F39F480910B0487FF3DC08B -:1052C00010920B043AC08C3F29F480910B041816FD -:1052D000BCF333C0843F21F4809107048E7F17C054 -:1052E000853F21F4809107048D7F11C0863F21F412 -:1052F000809107048B7F0BC0873F21F480910704C6 -:10530000877F05C0883F31F4809107048F7E8093AA -:10531000070413C08D3F21F4809105048E7F0BC0DC -:105320008E3F21F4809105048D7F05C08F3F29F4C5 -:10533000809105048B7F809305048091080481117E -:105340000EC08091090481110AC080910A04811164 -:1053500006C080910B04811102C0109206040895CA -:1053600087E094E00E94891B0E944F2790930404D9 -:105370008093030408951F93CF93DF9380910304D8 -:10538000909104040E945B27AC019091060499233C -:1053900021F02091250230E006C0209126028AE00B -:1053A000289F900111244217530708F486C080916A -:1053B0000804C0910904D0910A0410910B048111D2 -:1053C00007C0C11176C0D11174C0111172C075C06F -:1053D0009F3F19F09F5F90930604181624F40E94D3 -:1053E0004128809308048091080487FF05C00E942B -:1053F00041288195809308041C1624F40E944128BA -:10540000809309048091090487FF05C00E94412808 -:1054100081958093090460910804662339F1C09155 -:105420000904CC2319F1772767FD7095872F972FF3 -:105430000E94282E23E333E343E35FE30E94382FE7 -:105440000E94F52D609308046C2F772767FD7095F7 -:10545000872F972F0E94282E23E333E343E35FE354 -:105460000E94382F0E94F52D609309041D1624F424 -:105470000E948A2880930A0480910A0487FF05C04D -:105480000E948A28819580930A04111624F40E94B0 -:105490008A2880930B0480910B0487FF05C00E942B -:1054A0008A28819580930B04DF91CF911F910C94F2 -:1054B000B0299F3F09F08ECF96CFDF91CF911F91FA -:1054C0000895E7E0F4E085E0DF011D928A95E9F7B1 -:1054D00010920604109205040895833081F128F497 -:1054E000813059F08230D1F00895853009F449C0F7 -:1054F000B8F1863009F456C0089580912602262F0F -:1055000030E0280F311D2F3F310524F4680F6093E0 -:10551000260208958FEF8093260208958091250238 -:10552000262F30E0280F311D2F3F310524F4680F5E -:105530006093250208958FEF80932502089580914E -:105540002402262F30E0280F311D2F3F310524F48F -:10555000680F6093240208958FEF809324020895CA -:1055600080912302262F30E0280F311D2F3F310577 -:1055700024F4680F6093230208958FEF8093230231 -:10558000089580912202262F30E0280F311D2F3FF1 -:10559000310524F4680F6093220208958FEF809301 -:1055A0002202089580912102262F30E0280F311D1C -:1055B0002F3F310524F4680F6093210208958FEF87 -:1055C000809321020895833011F128F4813049F04D -:1055D000823091F00895853081F120F18630C1F15B -:1055E000089580912602681720F4861B8093260276 -:1055F000089510922602089580912502681720F4DC -:10560000861B8093250208951092250208958091AB -:105610002402681720F4861B8093240208951092B8 -:105620002402089580912302681720F4861B80933A -:105630002302089510922302089580912202681790 -:1056400020F4861B8093220208951092220208956E -:1056500080912102681720F4861B8093210208950F -:105660001092210208950F931F93873208F048C0CB -:105670008E3108F08DC0803109F477C008F587308D -:1056800009F461C068F4863009F09DC08091FD0383 -:10569000817F8E7F8093FD0381E080930D0494C011 -:1056A0008B3009F489C08E3009F08DC08091FD03E4 -:1056B00082FB222720F991E0922790FB82F95EC0BD -:1056C000863109F479C060F4813109F07CC00E9410 -:1056D000542090911E0281E0892780931E026CC0A5 -:1056E000893109F469C08B3109F06DC08091FD03E7 -:1056F00081FB222720F991E0922790FB81F93EC09F -:10570000883309F459C050F4893209F457C08533FD -:1057100009F454C0873209F451C055C0833409F4E8 -:105720004DC028F48A3308F44EC0895332C08834FF -:1057300009F049C00E9454200E94030E0E94D40622 -:105740000E94AA2739C09091FD03892F809581700E -:1057500080FB90F929F0966098609093FD0334C027 -:10576000997F977F9093FD0327C08091FD0383FB72 -:10577000222720F991E0922790FB83F98093FD0383 -:105780009923D1F08091FD0381608093FD0314C0C3 -:105790008D5141E050E060E070E08A019B0104C05F -:1057A000000F111F221F331F8A95D2F7C901B801BC -:1057B0000E9414240E94542081E006C061E070E041 -:1057C00080E090E0F5CF80E01F910F91089580E098 -:1057D000089580E008958E518A3030F4E82FF0E08B -:1057E000E154FD4F8081089580E00895CF93C82F44 -:1057F00080910D04813069F018F08230C9F183C0C6 -:10580000E0911F02F09120028081823209F07DC078 -:1058100007C0E0911F02F09120028081823261F482 -:105820008C2F0E94E72B811104C08C2F0E94332BF8 -:105830001DC081E090E01AC08C2F0E94E92B8111DD -:1058400014C0C43179F048F4CB3079F0C03109F09C -:1058500060C082E080930D0408C0C93219F0C833DB -:1058600021F057C010920D0454C081E0817053C0E4 -:10587000C93289F118F5C43171F1B0F4C73009F0BB -:1058800046C08EE18093260282E3809325028AE05F -:105890008093240284E18093230288E08093220293 -:1058A00088E28093210233C082EE8C0F863078F537 -:1058B0008C2F0E94EB2B80930C0429C0CE34E9F08E -:1058C00020F4CB3421F56AE013C0C13579F0C2353C -:1058D000F1F461E00DC080910C04882319F010925E -:1058E0000C0415C081E080930D0415C061E006C072 -:1058F00080910C040E946D2A0AC06AE080910C0419 -:105900000E94E32A04C010920D0480E004C081E0EC -:1059100002C080E0ABCFCF9108950E940E28811184 -:1059200002C00E94EA270E942F288093290480FF4A -:1059300002C0869501C080E00C9412068091290473 -:10594000982F9695292F30E0233031054CF49F5F36 -:10595000990F8170892B8160809329040E943328DC -:105960008091290486950C94120680912904982F21 -:10597000969591F09158990F8170892B8093290405 -:105980008E7F91E009F490E08091290490FB80F9EA -:10599000809329040E9433288091290486950C94D1 -:1059A000120680912904982F909590FB80F980939E -:1059B00029040E9433288091290480FF02C0869523 -:1059C00001C080E00C94120690912904892F8695DD -:1059D0008F5F8F779170843028F4880F892B8093A4 -:1059E000290402C090932904809129048E7F91E0BC -:1059F00009F490E08091290490FB80F980932904B8 -:105A00000E9433288091290486950C9412062091D7 -:105A10002904922F96958927982F990F822F8170AC -:105A2000892B809329048E7F91E009F490E0809186 -:105A3000290490FB80F9809329040E9433288091E7 -:105A4000290486950C9412065058BB27AA270ED01D -:105A5000D1C1C2D130F0C7D120F031F49F3F11F451 -:105A60001EF4B7C10EF4E095E7FB9FC1E92FD3D137 -:105A700080F3BA17620773078407950718F071F46B -:105A80009EF5EBC10EF4E0950B2EBA2FA02D0B0165 -:105A9000B90190010C01CA01A0011124FF27591B73 -:105AA00099F0593F50F4503E68F11A16F040A22F79 -:105AB000232F342F4427585FF3CF469537952795EA -:105AC000A795F0405395C9F77EF41F16BA0B620BE9 -:105AD000730B840BBAF09150A1F0FF0FBB1F661F30 -:105AE000771F881FC2F70EC0BA0F621F731F841F73 -:105AF00048F4879577956795B795F7959E3F08F099 -:105B0000B3CF9395880F08F09927EE0F9795879557 -:105B1000089527D108F481E008950CD06BC163D1BA -:105B200040F05AD130F021F45F3F19F03EC15111DD -:105B300095C14FC170D198F39923C9F35523B1F39F -:105B4000951B550BBB27AA2762177307840738F0EC -:105B50009F5F5F4F220F331F441FAA1FA9F333D04B -:105B60000E2E3AF0E0E830D091505040E695001CFF -:105B7000CAF729D0FE2F27D0660F771F881FBB1FBB -:105B8000261737074807AB07B0E809F0BB0B802D95 -:105B9000BF01FF2793585F4F2AF09E3F510568F0E1 -:105BA00004C15CC15F3FECF3983EDCF386957795CA -:105BB0006795B795F7959F5FC9F7880F911D9695E3 -:105BC000879597F90895E1E0660F771F881FBB1F3F -:105BD000621773078407BA0720F0621B730B840BEC -:105BE000BA0BEE1F88F7E095089504D06894B111C0 -:105BF00035C1089518D188F09F5790F0B92F992793 -:105C0000B751A0F0D1F0660F771F881F991F1AF0C7 -:105C1000BA95C9F712C0B13081F01FD1B1E0089533 -:105C20001CC1672F782F8827B85F39F0B93FCCF3B4 -:105C3000869577956795B395D9F73EF490958095BD -:105C4000709561957F4F8F4F9F4F0895E89409C0DD -:105C500097FB3EF490958095709561957F4F8F4F9F -:105C60009F4F9923A9F0F92F96E9BB279395F695B5 -:105C7000879577956795B795F111F8CFFAF4BB0F33 -:105C800011F460FF1BC06F5F7F4F8F4F9F4F16C097 -:105C9000882311F096E911C0772321F09EE8872F21 -:105CA000762F05C0662371F096E8862F70E060E0DD -:105CB0002AF09A95660F771F881FDAF7880F969556 -:105CC000879597F9089588D018F011F08CD038F4A2 -:105CD00080C0C4C0E92F9FD0B0F35523C9F3E7FBC0 -:105CE0006217730784079507A8F199F3E92FFF2737 -:105CF00088232AF03197660F771F881FDAF7952FD0 -:105D00005527442332F091505040220F331F441F37 -:105D1000D2F7BB27E91BF50B621B730B840BB10990 -:105D2000C1F222F4620F731F841FB11D31972AF054 -:105D3000660F771F881FBB1FEFCF915050405AF05E -:105D400041F0882332F0660F771F881F9150504032 -:105D5000C1F7939530C08695779567959F5FD9F782 -:105D6000F8CF990F0008550FAA0BE0E8FEEF1616C2 -:105D70001706E807F907C0F012161306E407F5073F -:105D800098F0621B730B840B950B39F40A2661F0B3 -:105D9000232B242B252B21F408950A2609F4A14056 -:105DA000A6958FEF811D811D089597F99F6780E863 -:105DB00070E060E008959F3F31F0915020F48795A6 -:105DC00077956795B795880F911D9695879597F963 -:105DD00008959FEF80EC089500240A941616170684 -:105DE00018060906089500240A94121613061406CC -:105DF00005060895092E0394000C11F4882352F02F -:105E0000BB0F40F4BF2B11F460FF04C06F5F7F4FE6 -:105E10008F4F9F4F089557FD9058440F551F59F0CD -:105E20005F3F71F04795880F97FB991F61F09F3F87 -:105E300079F087950895121613061406551FF2CFB0 -:105E40004695F1DF08C0161617061806991FF1CF00 -:105E500086957105610508940895E894BB27662727 -:105E60007727CB0197F908957CDF08F48FEF089529 -:105E70000BD0C0CFB1DF28F0B6DF18F0952309F0C2 -:105E800094CFA7CF1124EACFC6DFA0F3959FD1F31B -:105E9000950F50E0551F629FF001729FBB27F00DD8 -:105EA000B11D639FAA27F00DB11DAA1F649F66272D -:105EB000B00DA11D661F829F2227B00DA11D621F7C -:105EC000739FB00DA11D621F839FA00D611D221F36 -:105ED000749F3327A00D611D231F849F600D211D1A -:105EE000822F762F6A2F11249F5750408AF0E1F0BD -:105EF00088234AF0EE0FFF1FBB1F661F771F881F06 -:105F000091505040A9F79E3F510570F04ECFA6CF5B -:105F10005F3FECF3983EDCF3869577956795B795F0 -:105F2000F795E7959F5FC1F7FE2B880F911D96951A -:105F3000879597F90895FA01EE0FFF1F3096210516 -:105F4000310599F16115710561F48038BFE39B0754 -:105F500049F168949038810561F08038BFEF9B0764 -:105F600041F0992342F5FF3FE1053105210511F18B -:105F7000E8940894E795D901AA2329F4AB2FBE2F02 -:105F8000F85FD0F310C0FF5F70F4A695E0F7F73923 -:105F900050F019F0FF3A38F49F779F930CD00F9090 -:105FA00007FC905808953EF014CF60E070E080E860 -:105FB0009FE308954FE79F775F934F933F932F930E -:105FC0009ED02F913F914F915F9152DF05C019F400 -:105FD0000EF0EBCE42CFFDCE26DFC8F39638C0F7E9 -:105FE00007F80F92E8942BE33AEA48EB5FE74EDFBD -:105FF0000F920F920F924DB75EB70F92C0D0EAE0AA -:10600000F1E016D04F915F91EF91FF91E595EE1F72 -:10601000FF1F49F0FE57E0684427EE0F441FFA9532 -:10602000E1F74195550B32D00F9007FE26C0089539 -:10603000DF93CF931F930F93FF92EF92DF927B0139 -:106040008C01689405C0DA2EEF011EDFFE01E89492 -:10605000A5912591359145915591AEF3EF0106DD5E -:10606000FE019701A801DA9479F7DF90EF90FF9095 -:106070000F911F91CF91DF9108959B01AC0160E0DA -:1060800070E080E89FE349CD90CE95CECCDEE8F37A -:106090009923D9F3940F511DBBF39150504094F0C4 -:1060A00059F0882332F0660F771F881F91505040B7 -:1060B000C1F79E3F510544F7880F911D969587952E -:1060C00097F908955F3FACF0983E9CF0BB2786950A -:1060D00077956795B79508F4B1609395C1F7BB0FB5 -:1060E00058F711F460FFE8CF6F5F7F4F8F4F9F4FDE -:1060F000E3CFB4CE0EF05FCE6CCE689456CE93DE76 -:10610000C8F39923D1F3C6F3DF93CF931F930F9373 -:10611000FF92C92FDD2788232AF02197660F771F6A -:10612000881FDAF720E030E040E85FEB9FE3883932 -:1061300020F0803E30F021968F7787DCE2E3F1E0BB -:1061400003C083DCEFE5F1E073DF8B01BE01EC01FE -:10615000FB2E6F5771097595771F880B990B78DDAA -:1061600028E132E741E35FE38FDEAF2D9801AE0116 -:10617000FF900F911F91CF91DF9178DC3BCEFA0118 -:10618000DC01AA0FBB1F9B01AC01BF5728F42227DB -:106190003327442750781FC0B75188F4AB2F002411 -:1061A000469537952795011CA395D2F3002069F0F9 -:1061B000220F331F441FB395DAF30DD045CC613065 -:1061C0007105A0E88A07B94630F49B01AC01662747 -:1061D000772788279078309621F020833183428377 -:1061E00053830895AA1BBB1B51E107C0AA1FBB1F05 -:1061F000A617B70710F0A61BB70B881F991F5A9553 -:10620000A9F780959095BC01CD01089597FB072EC5 -:1062100016F4009407D077FD09D00E94F23007FCF5 -:1062200005D03EF4909581959F4F089570956195A6 -:106230007F4F0895EE0FFF1F0590F491E02D099414 -:10624000F999FECF92BD81BDF89A992780B508953E -:10625000A8E1B0E042E050E00C944831262FF999D3 -:10626000FECF92BD81BDF89A019700B4021639F0B5 -:106270001FBA20BD0FB6F894FA9AF99A0FBE089586 -:106280000196272F0E942F310C942E31DC01CB0177 -:10629000FC01F999FECF06C0F2BDE1BDF89A319636 -:1062A00000B40D9241505040B8F70895F894FFCFD4 -:1062B00000005C440000004148F1764400000041C9 -:1062C0005C978A44000000411FD5924400000041C1 -:1062D00052D0A444000000415CFFB84400000041DB -:1062E0000AA7CF44000000410000DC440000004148 -:1062F00052D02445000000410000DC440000004171 -:1063000052D0A444000040410AA7CF4400000041FD -:106310000000DC440000004100000000000080405C -:1063200052D02445000040410000000000008040A1 -:106330000AA74F45000040410AA7CF440000004192 -:106340000000DC440000004100000000000080402C -:1063500052D02445000000410000000000008040B1 -:106360005CFF384500000041000000000000804054 -:1063700052D02445000000410AA7CF44000000414C -:106380000000DC44000000410000000000008040EC -:1063900052D024450000804148F176440000A041DD -:1063A000F6F0F6440000004152909B440000A041EA -:1063B000F6F0F64400000041640007000CFF000006 -:1063C000003F647A140815E514B1147D140101EA44 -:1063D000032808140A321E0002040507090B0C0EDC -:1063E0001011131517181A1C1D1F212324262829E4 -:1063F0002B2D2F3032343537393B1F0F03764F5F4B -:106400006F7F4969437929595363393149803F5D29 -:106410008B803FF8BF803FCAE1803F73ED803FCA69 -:10642000E1803FF8BF803F5D8B803F3149803F0076 -:1064300000803FF16D7F3F75EA7E3F4C827E3F8357 -:106440003F7E3F84287E3F833F7E3F4C827E3F7568 -:10645000EA7E3FF16D7F3F0000803F404D36391DA1 -:106460000BD00A9A0A610AF4090D0A260A3F0A01AA -:0A64700002030405060708090000F6 -:00000001FF diff --git a/keyboards/preonic/keymaps/default/readme.md b/keyboards/preonic/keymaps/default/readme.md new file mode 100644 index 000000000..e911968dd --- /dev/null +++ b/keyboards/preonic/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default Preonic layout - largely based on the Planck's \ No newline at end of file diff --git a/keyboards/preonic/preonic.c b/keyboards/preonic/preonic.c index 773451bf0..889c3fc8f 100644 --- a/keyboards/preonic/preonic.c +++ b/keyboards/preonic/preonic.c @@ -1,97 +1,10 @@ #include "preonic.h" -__attribute__ ((weak)) -void matrix_init_user(void) { - -}; - -__attribute__ ((weak)) -void matrix_scan_user(void) { - -}; - -__attribute__ ((weak)) -bool process_action_user(keyrecord_t *record) { - return true; -}; - void matrix_init_kb(void) { - #ifdef BACKLIGHT_ENABLE - backlight_init_ports(); - #endif // Turn status LED on DDRE |= (1<<6); PORTE |= (1<<6); matrix_init_user(); -}; - -void matrix_scan_kb(void) { - matrix_scan_user(); -}; - -bool process_action_kb(keyrecord_t *record) { - return process_action_user(record); -} - -#ifdef BACKLIGHT_ENABLE -#define CHANNEL OCR1C - -void backlight_init_ports() -{ - - // Setup PB7 as output and output low. - DDRB |= (1<<7); - PORTB &= ~(1<<7); - - // Use full 16-bit resolution. - ICR1 = 0xFFFF; - - // I could write a wall of text here to explain... but TL;DW - // Go read the ATmega32u4 datasheet. - // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on - - // Pin PB7 = OCR1C (Timer 1, Channel C) - // Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0 - // (i.e. start high, go low when counter matches.) - // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0 - // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1 - - TCCR1A = _BV(COM1C1) | _BV(WGM11); // = 0b00001010; - TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; - - backlight_init(); -} - -void backlight_set(uint8_t level) -{ - if ( level == 0 ) - { - // Turn off PWM control on PB7, revert to output low. - TCCR1A &= ~(_BV(COM1C1)); - CHANNEL = 0x0; - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - } - else if ( level == BACKLIGHT_LEVELS ) - { - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - // Turn on PWM control of PB7 - TCCR1A |= _BV(COM1C1); - // Set the brightness - CHANNEL = 0xFFFF; - } - else - { - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - // Turn on PWM control of PB7 - TCCR1A |= _BV(COM1C1); - // Set the brightness - CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); - } -} - -#endif +}; \ No newline at end of file diff --git a/keyboards/preonic/preonic.h b/keyboards/preonic/preonic.h index 2b605f374..0e0b101e4 100644 --- a/keyboards/preonic/preonic.h +++ b/keyboards/preonic/preonic.h @@ -33,9 +33,4 @@ { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b } \ } -void matrix_init_user(void); -void matrix_scan_user(void); -bool process_action_kb(keyrecord_t *record); -void backlight_init_ports(void); - #endif diff --git a/keyboards/preonic/readme.md b/keyboards/preonic/readme.md new file mode 100644 index 000000000..f0be255a0 --- /dev/null +++ b/keyboards/preonic/readme.md @@ -0,0 +1,25 @@ +Preonic keyboard firmware +====================== +DIY/Assembled compact ortholinear 50% keyboard by [Ortholinear Keyboards](http://ortholinearkeyboards.com). + +## Quantum MK Firmware + +For the full Quantum feature list, see [the parent readme.md](/readme.md). + +## Building + +Download or clone the whole firmware and navigate to the keyboards/preonic folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use `make dfu` to program your PCB once you hit the reset button. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default +To build with the default keymap, simply run `make`. + +### Other Keymaps +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap, create a file in the keymaps folder named `.c` and see keymap document (you can find in top readme.md) and existent keymap files. + +To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: +``` +$ make KEYMAP=[default|jack|] +``` +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboards/readme.md b/keyboards/readme.md index b2173f6eb..5574619db 100644 --- a/keyboards/readme.md +++ b/keyboards/readme.md @@ -5,27 +5,27 @@ QMK runs on a diverse range of keyboards. Some of these keyboards are officially These keyboards are manufactured by the maintainers of QMK. -### [Ortholinear Keyboards](http://olkb.com) — Jack Humbert +### Ortholinear Keyboards - Jack Humbert What makes OLKB keyboards shine is a combo of lean aesthetics, compact size, and killer tactile feel. These are available through [olkb.com](http://olkb.com) as well as through [Massdrop](http://massdrop.com) from time to time, as easy to assemble kits. -* [Planck](/keyboards/planck/) — A 40% DIY powerhouse of customizability and modification capability. It's a lean, mean, typing machine. -* [Preonic](/keyboards/preonic/) — Like the Planck, but bigger. 50%. -* [Atomic](/keyboards/atomic/) — Imagine the size of the Planck. Now imagine the size of the Preonic. Now imagine _bigger_. That is the Atomic. A 60% keyboard. +* [Planck](/keyboards/planck/) - A 40% DIY powerhouse of customizability and modification capability. It's a lean, mean, typing machine. +* [Preonic](/keyboards/preonic/) - Like the Planck, but bigger. 50%. +* [Atomic](/keyboards/atomic/) - Imagine the size of the Planck. Now imagine the size of the Preonic. Now imagine _bigger_. That is the Atomic. A 60% keyboard. -### [ErgoDox EZ](https://ergodox-ez.com) — Erez Zukerman +### ErgoDox EZ - Erez Zukerman -Made in Taiwan using advanced robotic manufacturing, the ErgoDox EZ is a fully-assembled, premium ergonomic keyboard. Its split design allows you to place both halves shoulder width, and its custom-made wrist rests and tilt/tent kit make for incredibly comfortable typing. +Made in Taiwan using advanced robotic manufacturing, the ErgoDox EZ is a fully-assembled, premium ergonomic keyboard. Its split design allows you to place both halves shoulder width, and its custom-made wrist rests and tilt/tent kit make for incredibly comfortable typing. Available on [ergodox-ez.com](https://ergodox-ez.com). -* [ErgoDox EZ](/keyboards/ergodox_ez/) — Our one and only product. Yes, it's that awesome. Comes with either printed or blank keycaps, and 7 different keyswitch types. +* [ErgoDox EZ](/keyboards/ergodox_ez/) - Our one and only product. Yes, it's that awesome. Comes with either printed or blank keycaps, and 7 different keyswitch types. -### [Clueboard](http://clueboard.co) — Zach White +### Clueboard - Zach White -Designed and built in Felton, CA, Clueboards keyboard emphasize quality and locally sourced components. +Designed and built in Felton, CA, Clueboards keyboard emphasize quality and locally sourced components, available on [clueboard.co](http://clueboard.co) -* [Clueboard rev.1](/keyboards/clueboard1/) — The old Clueboard. -* [Clueboard rev.2](/keyboards/clueboard2/) — New and improved! The Clueboard, revision 2. -* [Cluepad](/keyboards/cluepad/) — A mechanical numpad with QMK superpowers. +* [Clueboard rev.1](/keyboards/clueboard1/) - The old Clueboard. +* [Clueboard rev.2](/keyboards/clueboard2/) - New and improved! The Clueboard, revision 2. +* [Cluepad](/keyboards/cluepad/) - A mechanical numpad with QMK superpowers. ## Community-supported QMK Keyboards diff --git a/keyboards/retro_refit/README.md b/keyboards/retro_refit/README.md deleted file mode 100644 index c64e1b806..000000000 --- a/keyboards/retro_refit/README.md +++ /dev/null @@ -1,24 +0,0 @@ -retro_refit keyboard firmware -====================== - -## Quantum MK Firmware - -For the full Quantum feature list, see [the parent README.md](/README.md). - -## Building - -Download or clone the whole firmware and navigate to the keyboards/retro_refit folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. - -Depending on which keymap you would like to use, you will have to compile slightly differently. - -### Default -To build with the default keymap, simply run `make`. - -### Other Keymaps -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` and see keymap document (you can find in top README.md) and existent keymap files. - -To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: -``` -$ make KEYMAP=[default|jack|] -``` -Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. \ No newline at end of file diff --git a/keyboards/retro_refit/keymaps/default/compiled.hex b/keyboards/retro_refit/keymaps/default/compiled.hex deleted file mode 100644 index 870787585..000000000 --- a/keyboards/retro_refit/keymaps/default/compiled.hex +++ /dev/null @@ -1,1423 +0,0 @@ -:100000000C94A8060C94EC060C94EC060C94EC06EC -:100010000C94EC060C94EC060C94EC060C94EC0698 -:100020000C94EC060C94EC060C94D4110C94A612CF -:100030000C9472200C94EC060C94EC060C94EC06D8 -:100040000C94EC060C94EC060C94EC060C94EC0668 -:100050000C94EC060C94DA200C94EC060C94EC0650 -:100060000C94EC060C94EC060C94EC060C94EC0648 -:100070000C94EC060C94EC060C94EC060C94EC0638 -:100080000C94EC060C94EC060C94EC060C94EC0628 -:100090000C94EC060C94EC060C94EC060C94EC0618 -:1000A0000C94EC060C94EC060C94EC06131335132C -:1000B0002314351323147A139D132314F2130514F8 -:1000C0003317331762176217A117C117F118F11808 -:1000D000CC17F1187C187C18E218F118F118EB18FD -:1000E0008918891889188918891889188918891808 -:1000F00089188918891889188918891889188918F8 -:100100009918A718AE18B518BF183F003E003D005B -:100110003C003B003A00E3002C00E0004600E50014 -:1001200038003700360010001100050019000600E5 -:100130001B001D00E200E1003500340033000F0019 -:100140000E000D000B000A00090007001600040055 -:100150003100280030002F00130012000C0018009E -:100160001C001700150008001A0014002B002A00BC -:100170002E002D0027002600250024002300220049 -:10018000210020001F001E002900000000000000C8 -:10019000000000004C0049004E0051004D000000DE -:1001A0004F004800500000004B0052004A0047003A -:1001B000530043004200410040000A444542554775 -:1001C0003A20656E61626C65642E0A005374617436 -:1001D00065206F6620726F772025583A20253031D0 -:1001E00036620A0048756D616E2D726561646162E8 -:1001F0006C65206D61747269782073746174653AFE -:100200000D0A004465626F756E63696E67206465F0 -:100210006C61792072656D61696E696E673A20253F -:10022000580A005B735D004B6579626F61726420F0 -:1002300073746172742E0A005B575D005B535D003E -:100240005B525D005B445D005B435D001803720020 -:100250006500740072006F005F0072006500660048 -:100260006900740000000E034E006F0062006F0012 -:100270006400790000000403090409028D000501EF -:1002800000A0FA0904000001030101000921110185 -:100290000001223F000705810308000A090401004C -:1002A0000103010200092111010001224D0007058F -:1002B000820308000A09040200010300000009216A -:1002C000110100012236000705830308000A090412 -:1002D0000300020300000009211101000122200097 -:1002E0000705840320000107050403200001090419 -:1002F000040001030000000921110100012239005E -:10030000070585031000011201100100000008ED2F -:10031000FE606001000102000105010906A101055E -:100320000719E029E71500250195087501810205E7 -:10033000081901290595057501910295017503912B -:1003400001050719002977150025019578750181A8 -:1003500002C00631FF0974A1010975150025FF953A -:1003600020750881020976150025FF9520750891F2 -:1003700002C005010980A101850216010026B7000F -:100380001A01002AB700751095018100C0050C09FB -:1003900001A1018503160100269C021A01002A9C76 -:1003A00002751095018100C005010902A101090132 -:1003B000A1000509190129051500250195057501FB -:1003C000810295017503810105010930093115810B -:1003D000257F95027508810609381581257F9501CD -:1003E00075088106050C0A38021581257F9501756F -:1003F000088106C0C005010906A101050719E02909 -:10040000E7150025019508750181029501750881A0 -:1004100001050819012905950575019102950175D8 -:100420000391010507190029FF150025FF950675A1 -:10043000088100C00A002530325820006B657962BF -:100440006F6172645F7265706F72743A20004B6501 -:1004500079626F617264204C4544732073746174D7 -:10046000653A2025780A0064656C5F6B65795F6288 -:1004700069743A2063616E27742064656C3A2025A4 -:100480003032580A006164645F6B65795F62697439 -:100490003A2063616E2774206164643A202530320B -:1004A000580A00646F6E652E0A00626F6F676D6197 -:1004B000676963207363616E3A202E2E2E20002917 -:1004C0000A002575002F002575005D2800256400B1 -:1004D0002000256400200025640020002564007CA5 -:1004E0000025303258006D6F7573656B6579205B40 -:1004F00062746E7C782079207620685D2872657041 -:100500002F61636C293A205B006D6B5F77686565CE -:100510006C5F74696D655F746F5F6D6178203D20FD -:1005200025640A006D6B5F776865656C5F6D617847 -:100530005F7370656564203D2025640A006D6B5F04 -:1005400074696D655F746F5F6D6178203D2025640F -:100550000A006D6B5F6D61785F7370656564203D47 -:100560002025640A006D6B5F696E74657276616C3C -:10057000203D2025640A006D6B5F64656C61792005 -:100580003D2025640A006D6B5F776865656C5F745C -:10059000696D655F746F5F6D6178203D2025640A29 -:1005A000006D6B5F776865656C5F6D61785F737018 -:1005B000656564203D2025640A006D6B5F74696D7C -:1005C000655F746F5F6D6178203D2025640A006D62 -:1005D0006B5F6D61785F7370656564203D20256495 -:1005E0000A006D6B5F696E74657276616C203D20E8 -:1005F00025640A006D6B5F64656C6179203D202580 -:10060000640A000A00257500363A20776865656C33 -:100610005F74696D655F746F5F6D61783A20000A81 -:1006200000257500353A20776865656C5F6D6178E7 -:100630005F73706565643A20000A00257500343ADE -:100640002074696D655F746F5F6D61783A20000A90 -:1006500000257500333A206D61785F7370656564BD -:100660003A20000A00257500323A20696E746572DE -:1006700076616C286D73293A20000A0025750031D7 -:100680003A2064656C6179282A31306D73293A20EB -:10069000000A092D2056616C756573202D0A004DE6 -:1006A0003E004D25643E20003F0073657420646564 -:1006B0006661756C740A00433E2000776865726558 -:1006C0002064656C74613A20637572736F723D25A6 -:1006D000642C20776865656C3D25640A5365652048 -:1006E000687474703A2F2F656E2E77696B69706528 -:1006F0006469612E6F72672F77696B692F4D6F7513 -:1007000073655F6B6579730A000A092D204D6F755B -:1007100073656B6579202D0A4553432F713A097132 -:100720007569740A313A0964656C6179282A313037 -:100730006D73290A323A09696E74657276616C28A4 -:100740006D73290A333A096D61785F73706565646A -:100750000A343A0974696D655F746F5F6D61780A78 -:10076000353A09776865656C5F6D61785F737065B0 -:1007700065640A363A09776865656C5F74696D650A -:100780005F746F5F6D61780A0A703A097072696E02 -:10079000742076616C7565730A643A097365742018 -:1007A00064656661756C74730A75703A092B310A59 -:1007B000646F776E3A092D310A706775703A092BAC -:1007C00031300A7067646F776E3A092D31300A0A4A -:1007D0007370656564203D2064656C7461202A2017 -:1007E0006D61785F7370656564202A20287265707A -:1007F000656174202F2074696D655F746F5F6D6132 -:1008000078290A003F004D3E2000433E20004C2541 -:10081000640A0074696D65725F636F756E743A2067 -:100820002530346C580A006B6579626F6172645FC1 -:100830006E6B726F3A2025580A006B6579626F61A2 -:1008400072645F69646C653A2025580A006B6579AB -:10085000626F6172645F70726F746F636F6C3A2065 -:1008600025580A00686F73745F6B6579626F6172F7 -:10087000645F6C65647328293A2025580A000A09C8 -:100880002D20537461747573202D0A004743433A39 -:1008900020342E392E32204156522D4C4942433AB3 -:1008A00020312E382E31204156525F415243483A72 -:1008B00020617672350A004F5054494F4E533A200A -:1008C0004C55464120424F4F544D41474943204DDE -:1008D0004F5553454B45592045585452414B455966 -:1008E00020434F4E534F4C4520434F4D4D414E44B6 -:1008F000204E4B524F203531320A004255494C446C -:100900003A20313637313865662D64697274792042 -:100910002832333A35333A3330204A756E20203945 -:100920002032303136290A005649443A2030784680 -:10093000454544284E6F626F647929205049443AF6 -:100940002030783630363028726574726F5F726589 -:1009500066697429205645523A203078303030315B -:100960000A00444553433A20526574726F20526521 -:100970006669740A000A092D2056657273696F6EE4 -:10098000202D0A000A092D20436F6E736F6C6520BD -:100990002D0A4553432F713A09717569740A6D3AEE -:1009A000096D6F7573656B65790A000A092D204D15 -:1009B00061676963202D0A443A09446562756720BE -:1009C0004D65737361676520546F67676C650A587E -:1009D0003A094D6174726978204465627567204DEB -:1009E0006F646520546F67676C65202D2053686FB6 -:1009F00077206B65797072657373657320696E20FB -:100A00006D617472697820677269640A4B3A094BA8 -:100A10006579626F61726420446562756720546F06 -:100A200067676C65202D2053686F77206B65797040 -:100A300072657373207265706F72740A4D3A09445F -:100A400065627567204D6F75736520546F67676CBD -:100A5000650A563A0956657273696F6E0A533A0908 -:100A60005374617475730A433A094163746976611A -:100A7000746520436F6E736F6C65204D6F64650AFB -:100A800046312D4631303A095377697463682074D2 -:100A90006F204C6179657220302D39202846313025 -:100AA000203D204C30290A302D393A09537769749A -:100AB000636820746F204C6179657220302D390A8B -:100AC0004553433A0953776974636820746F204C27 -:100AD0006179657220302028616C7465726E617472 -:100AE00065206B65792031290A47524156453A09FC -:100AF00053776974636820746F204C617965722044 -:100B0000302028616C7465726E617465206B657944 -:100B10002032290A50415553453A094A756D7020D3 -:100B2000746F20426F6F746C6F616465722028521D -:100B300065736574290A453A095072696E742045D7 -:100B40004550524F4D2053657474696E67730A4E59 -:100B50003A094E4B524F20546F67676C650A000A82 -:100B6000002575002E6E6B726F3A20000A00257505 -:100B7000002E737761705F6261636B736C61736881 -:100B80005F6261636B73706163653A20000A0025E0 -:100B900075002E737761705F67726176655F65734C -:100BA000633A20000A002575002E6E6F5F67756935 -:100BB0003A20000A002575002E737761705F72611C -:100BC0006C745F726775693A20000A002575002E03 -:100BD000737761705F6C616C745F6C6775693A20E4 -:100BE000000A002575002E636170736C6F636B5F84 -:100BF000746F5F636F6E74726F6C3A20000A002529 -:100C000075002E737761705F636F6E74726F6C5FC7 -:100C1000636170736C6F636B3A20000A0025303299 -:100C200058006B65796D61705F636F6E6669672EE2 -:100C30007261773A20000A002575002E6D6F75737A -:100C4000653A20000A002575002E6B6579626F6198 -:100C500072643A20000A002575002E6D6174726975 -:100C6000783A20000A002575002E656E61626C6579 -:100C70003A20000A00253032580064656275675FCB -:100C8000636F6E6669672E7261773A20000A0025ED -:100C9000750064656661756C745F6C617965723A44 -:100CA00020003F004E4B524F3A206F66660A004EBE -:100CB0004B524F3A206F6E0A000A6D6F7573653A9A -:100CC000206F66660A000A6D6F7573653A206F6E55 -:100CD0000A000A6B6579626F6172643A206F66661A -:100CE0000A000A6B6579626F6172643A206F6E0A5E -:100CF000000A6D61747269783A206F66660A000AAC -:100D00006D61747269783A206F6E0A000A646562D8 -:100D100075673A206F66660A000A64656275673A0D -:100D2000206F6E0A000A0A4A756D70696E6720743A -:100D30006F20626F6F746C6F616465722E2E2E204F -:100D400000433E20006565636F6E6669673A0A007E -:100D500011241FBECFEFDAE0DEBFCDBF04B603FE25 -:100D600024C080910B0290910C02A0910D02B091D1 -:100D70000E028730904BA740B04BB9F410920B0293 -:100D800010920C0210920D0210920E0214BE84B743 -:100D9000877F84BF88E10FB6F8948093600010923B -:100DA00060000FBEE0E0FFE3099511E0A0E0B1E0D4 -:100DB000E8E8F8E502C005900D92AC34B107D9F728 -:100DC00012E0ACE4B1E001C01D92AB30B107E1F735 -:100DD0000E940E0F0C94422C0C940000FF93EF9392 -:100DE000E0914C01F0914D01309709F00995EF9198 -:100DF000FF910895FC018591803011F0EFDFFBCF6A -:100E00000895FF27E0E230E247FF0CC0419597FFCD -:100E100009C0EDE26095709580959095611D711DFA -:100E2000811D911D27FF02C0219530E350E2AA27C2 -:100E3000660F771F881F991FAA1FA41710F0A41B05 -:100E400063955A95A9F7AA3008F0A95FA05DAF9302 -:100E5000F395611571058105910541F7ED3211F4A6 -:100E6000EF93F395F21718F43F93F395FBCF8F911F -:100E7000B5DFFA95E1F70895E991F9918591803010 -:100E800021F0853219F0AADFF9CF089520E0E89427 -:100E900055915532C1F3503311F4689455915A333A -:100EA00048F4505390F3220F022E220F220F200DF0 -:100EB000250FF4CF0EF4219589919991533619F3AA -:100EC000533729F1533559F1BC0188279927E89404 -:100ED0005C3621F48991999168945591543639F48E -:100EE00046EF7EF077FF0DC08FEF9FEF0AC05537BA -:100EF0004AE039F0583540E121F0523642E009F03D -:100F00000895FF93EF937DDFEF91FF91B7CFFF93AC -:100F1000EF93FC0181918030B9F360DFFBCFFF9349 -:100F2000EF9368DFF1CFDF93CF93CDB7DEB7259690 -:100F3000A3DFCF91DF91089508950895569A5E9AA0 -:100F40000C949C0781FF02C0509A01C05098589899 -:100F500080FF02C0519A01C05198599882FF02C087 -:100F60003E9A01C03E9846980C949D0761110BC0B3 -:100F7000FC018281882321F085EE0E94D71503C0F1 -:100F800085EE0E949F1680E090E00895089581E02C -:100F9000089581E008950C94C90708950F931F9355 -:100FA000CF93DF938C01FC01C081D181CE010E94DF -:100FB000551EBE010E947B08EC01B8010E94CB07C0 -:100FC000882309F48DC0F8018281882309F44AC07E -:100FD0008091590181111FC0C431F0E5DF0709F08C -:100FE00051C00E94CD0781E0809359010E94A42046 -:100FF0009093580180935701109250011092520122 -:101000001092510110925401109253011092560106 -:101010001092550165C080915701909158010E942E -:10102000B020883C910570F480915001E82FF0E0E9 -:10103000EE0FFF1FEF5AFE4FD183C0838F5F809367 -:1010400050014EC0C43880E5D80721F0C538D045DE -:1010500001F13AC0F8018281882341F010924E01DB -:1010600082E01EC0C438E0E5DE0759F580914E01EC -:10107000811106C086E20E94D71586E20E949F1663 -:1010800082E01CC0C438F0E5DF0741F3C538D04525 -:10109000D9F4F8018281882331F010924F0180E267 -:1010A0000E94EE161DC080914F01811106C087E29B -:1010B0000E94D71587E20E949F1680E20E94F516D3 -:1010C0000FC0C538D04529F381E080934E0180934D -:1010D0004F01C801DF91CF911F910F910C94C70769 -:1010E00080E0DF91CF911F910F9108950C949E079E -:1010F0000C94C6070895E72FF0E09BE0899FE00D70 -:10110000F11D112483E0EE0FFF1F8A95E1F7E60F32 -:10111000F11DEE0FFF1FE65FFE4F8591949108953C -:10112000880F991FFC01E657F0408591949108952E -:10113000880F991FFC01E65FFE4F859194910895F9 -:101140000F931F93CF93DF93EC01811520E3920758 -:1011500050F5C11580E2D80708F0C3C0CB3BD105DC -:1011600090F4C83AD10508F06AC0C53AD10508F034 -:101170005BC0C430D10508F0D4C1219709F0CEC1BD -:1011800001E010E00EC2CF3FD10511F008F0C9C157 -:10119000C03FD10508F0A2C0CE01805E910908973A -:1011A00008F4BFC1BBC1C13090E5D90709F4A2C0A2 -:1011B00020F5C0318FE4D80770F4C11590E4D90749 -:1011C00008F094C0C11521E3D20708F0A7C1DD27BC -:1011D0008E01106CE6C1C115D04509F09FC10E9477 -:1011E0005C198FEF94E32CE0815090402040E1F7B0 -:1011F00000C000000E94FF20D4C1C11597E5D907A7 -:1012000058F4C03121E5D20708F020C1C43180E58F -:10121000D80708F479C082C1CE019057811590415A -:1012200008F07CC1DF7077C1C53AD10509F47BC1F4 -:10123000C63AD10509F07AC102E810E4B2C1C83A51 -:10124000D10509F476C1C93AD10509F475C1CA3A84 -:10125000D10509F474C1CB3AD10509F473C1CC3A74 -:10126000D10509F472C1CD3AD10509F471C1C03B71 -:10127000D10509F470C1CE3AD10509F46FC1CF3A56 -:10128000D10509F46EC1C13BD10509F46DC1C23B62 -:10129000D10509F46CC1C33BD10509F46BC1C43B52 -:1012A000D10509F46AC1C53BD10509F469C1C63B42 -:1012B000D10509F468C1C73BD10509F467C1C83B32 -:1012C000D10509F466C1C93BD10509F465C1CA3B22 -:1012D000D10509F464C100E014E463C18E01106516 -:1012E00060C1CE019F700E9498085CC1DF708E01C2 -:1012F000106A57C18AEB91E00E94FA068091EC01D6 -:1013000081608093EC014DC10E94AC22811102C02A -:101310000E9492220E94C92290E090930B02809337 -:101320000A02C23080E5D80721F480910A02816068 -:1013300086C0C43090E5D90721F480910A0282600A -:101340007EC0C63020E5D20721F480910A02846075 -:1013500076C0C83080E5D80719F480910A0227C00A -:10136000CA3090E5D90721F480910A02806167C0F4 -:10137000CC3020E5D20721F480910A0280625FC060 -:10138000CE3080E5D80721F480910A02806457C0EE -:10139000C03190E5D90721F480910A0280684FC0DE -:1013A000C23120E5D20729F480910A028460886066 -:1013B00046C0C33080E5D80721F480910A028E7FB1 -:1013C0003EC0C53090E5D90721F480910A028D7F97 -:1013D00036C0C73020E5D20721F480910A028B7F06 -:1013E0002EC0C93080E5D80719F480910A0226C0C2 -:1013F000CB3090E5D90721F480910A028F7E1FC07F -:10140000CD3020E5D20721F480910A028F7D17C0EC -:10141000CF3080E5D80721F480910A028F7B0FC07E -:10142000C13190E5D90721F480910A028F7707C076 -:10143000C331D04531F480910A028B7F877F80933E -:101440000A0280910A020E94CD22ABC08D2F9927FB -:101450008F70992781309105D9F49E01237033272D -:1014600002C0880F991F2A95E2F79C688E0144E01C -:10147000000F111F4A95E1F700271370802B912B65 -:1014800053E0CC0FDD1F5A95E1F7C076DD272FC062 -:101490008230910531F4DC2FCC278E01016F106A68 -:1014A00080C08330910569F4CE018370992701E0F3 -:1014B00010E002C0000F111F8A95E2F7C8019C6876 -:1014C0000FC084309105B9F4CE018370992701E0F3 -:1014D00010E002C0000F111F8A95E2F7C8019A6858 -:1014E00023E0CC0FDD1F2A95E1F7C07ED7708C0179 -:1014F0000C2B1D2B56C08530910531F4DC2FCC27E9 -:101500008E01046F106A4DC0069709F04AC0CF7172 -:10151000DD27DC2FCC278E01106243C000E010E0F5 -:1015200040C08E013EC001E810E43BC003E810E477 -:1015300038C002EE14E435C009EE14E432C00AEEFD -:1015400014E42FC005EB14E42CC006EB14E429C00E -:1015500007EB14E426C00CEC14E423C00DEC14E4F7 -:1015600020C003E815E41DC00AE815E41AC002E92A -:1015700015E417C004E915E414C001E216E411C033 -:1015800003E216E40EC004E216E40BC005E216E422 -:1015900008C006E216E405C007E216E402C00AE24B -:1015A00016E4C801DF91CF911F910F910895E72FA5 -:1015B000F0E09BE0899FE00DF11D112483E0EE0F28 -:1015C000FF1F8A95E1F7E60FF11DEE0FFF1FE65FA3 -:1015D000FE4F85919491803E9105E0F4803C910509 -:1015E00058F58133910509F46FC048F489329105AB -:1015F00009F463C08A32910509F46DC072C0893361 -:101600009105E9F082389105D1F08533910509F40F -:101610004DC067C0833E910581F138F4803E91054D -:10162000B9F0823E9105D9F05CC0863E910561F12A -:10163000873E9105A1F155C00E9490080895209120 -:101640000A0220FD02C021FF4CC080EE90E049C09C -:1016500080910A0280FFF9CF89E390E042C0809137 -:101660000A0282FF0EC080910A0284FF03C080E05C -:1016700090E037C083EE90E034C080910A0282FF90 -:10168000F2CF82EE90E02DC080910A0283FF0BC062 -:1016900080910A0284FDEBCF87EE90E022C080911A -:1016A0000A0283FFF5CF86EE90E01BC080910A020C -:1016B00085FF07C089E290E014C080910A0285FF8F -:1016C000F9CF85E390E00DC080910A0286FF07C044 -:1016D0008AE290E006C080910A0286FFF9CF81E39A -:1016E00090E00E94A00808950C94A207E82FF0E073 -:1016F000E35EFE4F8081E82FEF70F0E082958F70FF -:1017000021E030E0A90102C0440F551F8A95E2F79D -:1017100040A308950F931F93CF93DF9385B78068FD -:1017200085BF85B7806885BFCAE0D0E001E010E0E2 -:10173000FE01E35EFE4F8081E82FEF70F0E021A113 -:1017400082958F70A80102C0440F551F8A95E2F759 -:10175000CA01822B81A38C2F0E94760B219740F720 -:1017600087E090E061E070E0FC01EB5EFE4F2081DD -:10177000E22FEF70F0E042A122952F70DB0102C052 -:10178000AA0FBB1F2A95E2F79D01242B22A30197E4 -:1017900058F7DF91CF911F910F910C947608EF923B -:1017A000FF920F931F93CF93DF9305E611E0CAE0FA -:1017B000EE24E394F12CD5E08C2F0E94760B87E089 -:1017C00090E040E0FC01EB5EFE4F5081E52FEF70B2 -:1017D000F0E020A130E052955F7002C0359527956A -:1017E0005A95E2F720FD07C09701082E01C0220F8D -:1017F0000A94EAF7422B019728F7F80182918F01AA -:10180000841719F04083D09300018C2F0E94760B2F -:10181000C15090F68091000187FD32C09091EC019B -:1018200090FF10C0282F332727FD30953F938F93CB -:1018300083E092E09F938F930E9493070F900F9005 -:101840000F900F908091000181508093000187FDDF -:1018500007C08FE99FE00197F1F700C0000010C0BA -:1018600080E090E0FC01EB59FE4FDC01A65ABE4F30 -:101870001A962C9122870197853FEFEF9E0791F7EB -:101880000E94780881E0DF91CF911F910F91FF9026 -:10189000EF900895E82FF0E0EB59FE4F8081089516 -:1018A0000F931F93CF93DF938091EC0180FF04C0CF -:1018B00084EE91E00E94FA06C0E0D0E00CEC11E06A -:1018C0008091EC0180FF15C0FE01EB59FE4F808135 -:1018D00090E00E9419209F938F93DF93CF931F93E3 -:1018E0000F930E9493070F900F900F900F900F90FF -:1018F0000F902196CB30D10519F7DF91CF911F9131 -:101900000F9108950F931F93CF9300E711E0C0E06C -:10191000F80182918F0190E00E94F71FC80FF1E05B -:1019200005361F07A9F78C2FCF911F910F910895AE -:101930008091830108959FB7F894109272019FBF20 -:1019400090910102943009F057C09091E9009F7086 -:101950003091EC00232F217030FD20E8922B24E001 -:101960002093E9002091EB0020FF43C02091EE007E -:1019700027FF3FC020917001222321F02091E80031 -:1019800025FF37C01092700126E03091E80035FD48 -:1019900015C030910102343061F53091EB0035FD16 -:1019A00028C0215021F481E08093700122C0EFE92A -:1019B000FFE03197F1F700C00000E7CF8093F1001E -:1019C0008091E80085FD0AC08091E80080FFFCCF8F -:1019D0008091E8008E778093E80006C08FB7F89476 -:1019E00021E0209372018FBF9F709093E90080E007 -:1019F00008959F709093E9008FEF0895CF93DF9340 -:101A000000D01F92CDB7DEB79C01809101028430D7 -:101A100019F593E099833B832A839093E9008FEF34 -:101A20009091E800815095FD06C095ED9A95F1F7EB -:101A300000008111F5CF8091E80085FF0DC040E0E6 -:101A400050E063E070E0CE0101960E94C40F8091E7 -:101A5000E8008E778093E8000F900F900F90DF9151 -:101A6000CF910895CF93DF9300D01F92CDB7DEB70B -:101A700020910102243021F522E029839B838A836F -:101A800083E08093E9008FEF9091E800815095FD0D -:101A900006C095ED9A95F1F700008111F5CF809180 -:101AA000E80085FF0DC040E050E063E070E0CE014B -:101AB00001960E94C40F8091E8008E778093E80021 -:101AC0000F900F900F90DF91CF9108952091010218 -:101AD0002430F1F422E02093E9002FEF3091E80068 -:101AE000215035FD06C035ED3A95F1F70000211182 -:101AF000F5CF2091E80025FF0BC040E050E065E005 -:101B000070E00E94C40F8091E8008E778093E80017 -:101B10000895CF93DF9320910102243009F048C04B -:101B2000EC0180910B018823E1F080910C01882366 -:101B3000C1F085E08093E9008FEF9091E80081503B -:101B400095FD06C095E19A95F1F700008111F5CF5A -:101B50008091E80085FF2CC040E050E060E170E03B -:101B600017C081E08093E9008FEF9091E8008150E9 -:101B700095FD06C095ED9A95F1F700008111F5CF1E -:101B80008091E80085FF14C040E050E068E070E01C -:101B9000CE010E94C40F8091E8008E778093E80008 -:101BA00080E1FE01A3E7B1E001900D928A95E1F793 -:101BB000DF91CF91089588E492E00E94FA06809127 -:101BC0000002811109C00E9459110E94B611809132 -:101BD000E20084608093E200089584E492E00E9431 -:101BE000FA0610920002089580E492E00C94FA063E -:101BF0008CE392E00C94FA0688E392E00E94FA06E5 -:101C00000C946C20209171012F5F822F62E30E945F -:101C1000D22B992319F0209371010895109271012C -:101C200080917201882371F180910102843041F525 -:101C30008091E9008F702091EC00922F917020FD2F -:101C400090E8892B94E09093E9009091EB0090FF4D -:101C500014C09091EE0097FF10C09091E80095FF9E -:101C600003C01092F100F9CF9091E80090FF05C0F9 -:101C70009091E8009E779093E8008F708093E90040 -:101C800010927201089542E061EC81E00E94D3104D -:101C900042E061EC82E00E94D31042E061EC83E01C -:101CA0000E94D31042E261EC84E00E94D31042E132 -:101CB00061EC85E00C94D31080910302833009F429 -:101CC00055C030F4813071F0823009F48EC008952F -:101CD0008A3009F47AC08B3009F460C0893009F089 -:101CE0009CC020C080910202813A09F096C0809188 -:101CF000E800877F8093E8008091060290910702B8 -:101D0000892B21F460E183E791E003C060E080E08B -:101D100090E070E00E940F108091E8008B77809334 -:101D2000E800089580910202813209F076C0809126 -:101D3000060290910702009719F0049709F06DC010 -:101D40008091E800877F8093E8008091E80082FD21 -:101D500005C0809101028111F8CF5FC08091F10030 -:101D6000809383018091E8008B7753C080910202B9 -:101D7000813A09F052C08091060290910702892BA6 -:101D800009F04BC08091E800877F8093E800809144 -:101D9000E80080FFFCCF80910B0136C080910202E9 -:101DA0008132D9F58091060290910702892BA9F51D -:101DB0008091E800877F8093E8000E94081180915D -:101DC000040280930B010C945C1980910202813211 -:101DD00021F58091E800877F8093E8000E94081138 -:101DE0008091050280938401089580910202813AD6 -:101DF000A1F48091E800877F8093E8008091E8005B -:101E000080FFFCCF809184018093F1008091E800F5 -:101E10008E778093E8000C940811089584B7877F2B -:101E200084BF88E10FB6F894809360001092600040 -:101E30000FBE90E080E80FB6F89480936100909315 -:101E400061000FBE0E94E8140E9459110E94B61151 -:101E50008091E20084608093E2008BE99CE00E9424 -:101E6000F21F78940E943B140E94EA1481E091E0F2 -:101E70000E94561487E292E00E94FA0680910102C5 -:101E8000853089F483E292E00E94FA060E943320B2 -:101E90008091FF01882391F30E945E20882371F3D3 -:101EA0000E94AE0FEBCF0E941215E8CF292F3327E7 -:101EB00023303105C9F064F42130310581F022303E -:101EC000310509F043C08DE890E02AE732E042C0D6 -:101ED00021323105F1F02232310541F137C082E182 -:101EE00090E027E033E036C099278130910541F03A -:101EF0008230910541F0892B49F5E6E7F2E005C013 -:101F0000E6E6F2E002C0ECE4F2E0849190E09F01AA -:101F100021C06530D8F4E62FF0E0EE0FFF1FE95C3A -:101F2000FE4F2081318189E090E014C0653070F46B -:101F300070E0FB01EE0FFF1FE35DFE4F208131815A -:101F4000FB01E85DFE4F808190E004C080E090E0FE -:101F500020E030E0FA0131832083089580E189BDDB -:101F600082E189BD09B400FEFDCF8091D8008F7D4C -:101F70008093D8008091E00082608093E00080919F -:101F8000E00081FDFCCF0895CF92DF92EF92FF92A7 -:101F90000F931F93CF93DF93EC018B016A010E9493 -:101FA0002711811133C0C114D10439F0F6018081A9 -:101FB0009181081B190BC80FD91FE12CF12C0115B9 -:101FC000110519F18091E80085FD16C08091E800A7 -:101FD0008E778093E800C114D10449F0F601808126 -:101FE0009181E80EF91EF182E08285E00FC00E9427 -:101FF0002711882321F30AC089918093F1000150B1 -:102000001109FFEFEF1AFF0ADACF80E0DF91CF91DD -:102010001F910F91FF90EF90DF90CF900895209146 -:102020000802309109022617370748F0611571053B -:1020300039F42091E8002E772093E80001C0B9011F -:1020400040E061157105A9F120910102222309F4F4 -:1020500043C0253009F442C02091E80023FD40C070 -:102060002091E80022FD32C02091E80020FFE9CF56 -:102070004091F3002091F20030E0342BFC01CF01BD -:102080006115710559F02830310540F48191809334 -:10209000F100615071092F5F3F4FF1CF41E02830CF -:1020A000310509F040E02091E8002E772093E80008 -:1020B000C8CF4111C9CF0AC080910102882361F0C5 -:1020C000853061F08091E80083FD0AC08091E800CE -:1020D00082FFF2CF80E0089582E0089583E00895C2 -:1020E00081E00895209108023091090226173707F0 -:1020F00048F06115710539F42091E8002E7720939E -:10210000E80001C0B901FC0120E06115710591F101 -:1021100080910102882309F440C0853009F43FC052 -:102120008091E80083FD3DC08091E80082FD2FC0D2 -:102130008091E80080FFE9CF2091F3008091F200C8 -:1021400090E0922B6115710559F08830910540F4AB -:1021500024912093F1003196615071090196F2CFDC -:1021600021E0089709F020E08091E8008E778093C5 -:10217000E800CBCF2111CCCF0AC080910102882387 -:1021800061F0853061F08091E80083FD0AC08091A4 -:10219000E80082FFF2CF80E0089582E0089583E0B6 -:1021A000089581E00895982F973058F59093E900AD -:1021B000981739F07091EC002091ED005091F000EB -:1021C00003C0242F762F50E021FF19C03091EB007F -:1021D0003E7F3093EB003091ED003D7F3093ED007A -:1021E0003091EB0031603093EB007093EC00209362 -:1021F000ED005093F0002091EE0027FF07C09F5F95 -:10220000D3CF8F708093E90081E0089580E0089536 -:102210008091020287FF11C08091E80082FD05C015 -:10222000809101028111F8CF11C08091E8008B7775 -:102230000BC080910102882349F08091E80080FF63 -:10224000F8CF8091E8008E778093E8000895209180 -:10225000E4003091E50095E64091EC00842F817018 -:1022600040FF22C08091E80080FD1CC080910102E7 -:10227000882391F0853091F08091EB0085FD10C0AE -:102280004091E4005091E5004217530729F39A0169 -:10229000915011F784E0089582E0089583E0089555 -:1022A00081E0089580E008954091E80042FFDECF8C -:1022B00008950E94C7110E94CF11E0EEF0E08081E6 -:1022C00081608083E8EDF0E080818F77808319BCA6 -:1022D000A7EDB0E08C918E7F8C9380818F7E808380 -:1022E0001092000208950F931F93CF93DF930E94E3 -:1022F000C7110E94CF11C8EDD0E088818F77888305 -:1023000088818068888388818F7D888319BC10923A -:1023100001021092FD011092FF011092FE0100EEE9 -:1023200010E0F80180818B7F8083888181608883C1 -:1023300042E060E080E00E94D310E1EEF0E08081B6 -:102340008E7F8083E2EEF0E08081816080838081F7 -:1023500088608083F80180818E7F8083888180619E -:102360008883DF91CF911F910F910895E8EDF0E000 -:1023700080818F7E8083E7EDF0E0808181608083C3 -:1023800084E082BF81E0809300020C947311E8ED39 -:10239000F0E080818E7F80831092E2000895109299 -:1023A000DA001092E10008951F920F920FB60F927B -:1023B00011242F933F934F935F936F937F938F934A -:1023C0009F93AF93BF93EF93FF938091E10082FFC0 -:1023D0000BC08091E20082FF07C08091E1008B7FFB -:1023E0008093E1000E94020E8091DA0080FF1FC0FE -:1023F0008091D80080FF1BC08091DA008E7F80938F -:10240000DA008091D90080FF0DC080E189BD82E1B2 -:1024100089BD09B400FEFDCF81E0809301020E94D6 -:10242000DB0D05C019BC109201020E94ED0D8091D8 -:10243000E10080FF19C08091E20080FF15C080910B -:10244000E2008E7F8093E2008091E20080618093C1 -:10245000E2008091D80080628093D80019BC85E0AA -:10246000809301020E94F80D8091E10084FF30C04A -:102470008091E20084FF2CC080E189BD82E189BDAA -:1024800009B400FEFDCF8091D8008F7D8093D800E5 -:102490008091E1008F7E8093E1008091E2008F7E49 -:1024A0008093E2008091E20081608093E20080915D -:1024B000FD01882311F084E007C08091E30087FDCF -:1024C00002C081E001C083E0809301020E94FC0D04 -:1024D0008091E10083FF29C08091E20083FF25C045 -:1024E0008091E100877F8093E10082E08093010288 -:1024F0001092FD018091E1008E7F8093E100809138 -:10250000E2008E7F8093E2008091E2008061809300 -:10251000E20042E060E080E00E94D3108091F00091 -:1025200088608093F0000E94F40DFF91EF91BF91BD -:10253000AF919F918F917F916F915F914F913F915B -:102540002F910F900FBE0F901F9018951F920F9212 -:102550000FB60F9211242F933F934F935F936F9376 -:102560007F938F939F93AF93BF93CF93DF93EF931B -:10257000FF93C091E900CF708091EC00D82FD1700B -:1025800080FDD0E81092E9008091F000877F809371 -:10259000F00078940E94EA121092E9008091F00015 -:1025A00088608093F000CD2BCF70C093E900FF913D -:1025B000EF91DF91CF91BF91AF919F918F917F91DB -:1025C0006F915F914F913F912F910F900FBE0F90A0 -:1025D0001F9018951F93CF93DF93CDB7DEB7AA97BF -:1025E0000FB6F894DEBF0FBECDBFE2E0F2E088E0A8 -:1025F0008E0F9091F10091938E13FBCF0E945C0E91 -:102600008091E80083FF1FC1809102029091030234 -:10261000492F50E04A30510508F015C1FA01EA5A35 -:10262000FF4F0C94F22B803881F0823809F00BC1F7 -:10263000809106028F708093E9008091EB0085FB0A -:10264000882780F91092E90006C08091FE019091E0 -:10265000FF01911182609091E800977F9093E800CC -:102660008093F1001092F100C8C0282F2D7F09F04F -:10267000EAC0882319F0823061F0E5C0809104023D -:10268000813009F0E0C0933009F080E08093FF01D1 -:102690002BC080910402811127C0809106028F70A7 -:1026A00009F4D1C08093E9002091EB0020FF1CC009 -:1026B000933021F48091EB00806214C09091EB0084 -:1026C00090619093EB0021E030E0A90102C0440F3B -:1026D000551F8A95E2F74093EA001092EA00809134 -:1026E000EB0088608093EB001092E9008091E80095 -:1026F000877F86C08111A7C0109104021F77809147 -:10270000E3008078812B8093E3008091E800877F4D -:102710008093E8000E9408118091E80080FFFCCFC0 -:102720008091E30080688093E300111102C082E091 -:1027300001C083E08093010286C08058823008F097 -:1027400082C080910402909105028C3D53E0950770 -:1027500079F583E08A838AE289834FB7F894DE01B2 -:10276000139620E03EE051E2E32FF0E05093570053 -:10277000E49120FF03C0E295EF703F5FEF708E2F72 -:1027800090E0EA3010F0C79601C0C0968D939D93FB -:102790002F5F243149F74FBF8091E800877F8093F6 -:1027A000E8006AE270E0CE0101960E940F1014C0AA -:1027B000AE014F5F5F4F609106020E94560FBC0151 -:1027C000009709F440C09091E800977F9093E8004B -:1027D00089819A810E9472108091E8008B778093A2 -:1027E000E80031C0803879F58091E800877F8093D8 -:1027F000E8008091FD018093F1008091E8008E77E0 -:102800008093E8000E9408111EC081111CC09091A5 -:1028100004029230C0F48091E800877F8093E80042 -:102820009093FD010E9408118091FD01811106C065 -:102830008091E30087FD02C081E001C084E08093C5 -:1028400001020E94430E8091E80083FF0AC080913C -:10285000E800877F8093E8008091EB00806280939E -:10286000EB00AA960FB6F894DEBF0FBECDBFDF9186 -:10287000CF911F910895CF93809101028823A1F0F9 -:10288000C091E900CF709091EC00892F817090FD8C -:1028900080E8C82B1092E9008091E80083FD0E9437 -:1028A000EA12CF70C093E900CF91089590938A0106 -:1028B000809389010895E0918901F0918A01309710 -:1028C00021F00190F081E02D099480E00895EF92CD -:1028D000FF920F931F93CF93DF93E0918901F091C3 -:1028E0008A013097B1F18C010280F381E02D0995C6 -:1028F0008091EC0182FF2DC080FF04C08CE394E046 -:102900000E94FA06E80110E186E3E82E84E0F82E42 -:102910008091EC0180FF0BC088811F928F93FF9202 -:10292000EF920E9493070F900F900F900F9011500D -:1029300021961111EDCF8091EC0180FF0AC084E354 -:1029400094E0DF91CF911F910F91FF90EF900C9445 -:10295000FA06DF91CF911F910F91FF90EF900895AC -:10296000E0918901F0918A01309721F00480F5818E -:10297000E02D0994089520918701309188018217F4 -:10298000930771F09093880180938701E09189010A -:10299000F0918A01309721F00680F781E02D0994AB -:1029A000089520918501309186018217930771F077 -:1029B0009093860180938501E0918901F0918A01CD -:1029C000309721F00084F185E02D09940895089551 -:1029D0000C94E7140E949B200E948A0B0E945D21A8 -:1029E00081E080930C010895CF93DF931F92CDB7C0 -:1029F000DEB79091EC0192FF10C090FF0EC01F92C5 -:102A00008F932EE434E03F932F9389830E949307A2 -:102A10000F900F900F900F9089810F90DF91CF91C1 -:102A20000C94740B9F92AF92BF92CF92DF92EF9271 -:102A3000FF920F931F93CF93DF9300D000D000D06D -:102A4000CDB7DEB70E94CF0B0AE010E0AA24A39412 -:102A5000B12C902E802F0E944A0C980124573E4F93 -:102A60006901F901F080F826A1F40150110988F7F5 -:102A70008FEF89838A831B820E94A4208160782F34 -:102A80009D838C8349815A816B818D810E94A91518 -:102A90002FC09091EC0191FF04C08E830E94500CD6 -:102AA0008E8127E030E0A501022E01C0440F0A9478 -:102AB000EAF7E42E4F21C1F029839A828E2191E01A -:102AC00009F490E09B830E94A4208160782F9D836D -:102AD0008C8349815A816B818D810E94A915F601F1 -:102AE0008081E826E08204C021503109E0F6BDCFA4 -:102AF0000E94CE2410918B010E945B141817B9F02C -:102B00000E945B1480938B0126960FB6F894DEBF6B -:102B10000FBECDBFDF91CF911F910F91FF90EF902E -:102B2000DF90CF90BF90AF909F900C94F4142696B6 -:102B30000FB6F894DEBF0FBECDBFDF91CF911F91CE -:102B40000F91FF90EF90DF90CF90BF90AF909F904C -:102B50000895CF93DF93CDB7DEB72B970FB6F894D8 -:102B6000DEBF0FBECDBF4F83588769877A878B87BB -:102B7000DE01119686E0FD0111928A95E9F785E064 -:102B8000FE01379601900D928A95E1F749815A81AD -:102B90006B817C818D819E810E94FA1B2B960FB6E2 -:102BA000F894DEBF0FBECDBFDF91CF910895CF93D4 -:102BB000882309F4C2C0C82F823859F40E945B14DC -:102BC00081FDBBC089E30E94D41E0E94C31F89E31C -:102BD0000CC0833879F40E945B1480FDAEC083E59D -:102BE0000E94D41E0E94C31F83E50E94271FCF911D -:102BF0000C94C31F843859F40E945B1482FD9DC05D -:102C000087E40E94D41E0E94C31F87E4EECF8CEF9E -:102C10008C0F813A48F48C2F0E945B2981118DC062 -:102C20008C2F0E94D41EE3CF80E28C0F883048F4B2 -:102C3000C77081E001C0880FCA95EAF70E947C1F27 -:102C4000D6CF8BE58C0F833078F4C53A29F0C63A9D -:102C500031F083E890E005C081E890E002C082E8AE -:102C600090E0CF910C94BB1488E58C0F833108F071 -:102C700064C0C83A39F1C93A41F1CA3A49F1CB3A8C -:102C800051F1CC3A59F1CD3A61F1C03B69F1CE3AFC -:102C900071F1CF3A79F1C13B81F1C23B89F1C33B7C -:102CA00091F1C43B99F1C53BA1F1C63BA9F1C73BEA -:102CB000B1F1C83BB9F1C93BC1F1CA3BC9F180E0F0 -:102CC00090E038C082EE90E035C089EE90E032C0EE -:102CD0008AEE90E02FC085EB90E02CC086EB90E070 -:102CE00029C087EB90E026C08CEC90E023C08DECEF -:102CF00090E020C083E891E01DC08AE891E01AC00E -:102D000082E991E017C084E991E014C081E292E089 -:102D100011C083E292E00EC084E292E00BC085E233 -:102D200092E008C086E292E005C087E292E002C02D -:102D30008AE292E0CF910C94D114CF910895882328 -:102D400009F44BC0823859F40E945B1481FF45C0DE -:102D500089E30E94D41E0E94C31F89E30CC08338FC -:102D600071F40E945B1480FF38C083E50E94D41E7A -:102D70000E94C31F83E50E94271F0C94C31F843841 -:102D800059F40E945B1482FF28C087E40E94D41E7D -:102D90000E94C31F87E4EFCF9CEF980F913A58F33E -:102DA00090E2980F983050F4877091E001C0990F2D -:102DB0008A95EAF7892F0E94821FDFCF9BE5980F43 -:102DC000933020F480E090E00C94BB14885A833157 -:102DD00020F480E090E00C94D1140895882321F031 -:102DE0000E947C1F0C94C31F0895882321F00E9429 -:102DF000821F0C94C31F08957F928F929F92AF926F -:102E0000BF92CF92DF92EF92FF920F931F93CF93D7 -:102E1000DF931F92CDB7DEB77C01C62E772EFC0163 -:102E2000058102950F70128111110E94991F0E9455 -:102E3000CD1E882379F0112369F080E28C0D883053 -:102E400048F082E00E94B61E0E94CD1E91E0D82E6E -:102E5000D92601C0D12CE72DE295EF70F0E0E05AC1 -:102E6000FF4F0C94F22B872D807F072D0F70882346 -:102E700011F00295007F112389F0002309F498C115 -:102E800080E28C0D883020F4802F0E947C1F03C0CC -:102E9000802F0E948C1F0E94C31F8AC18C2D0E940C -:102EA0009F16002309F49DC180E28C0D883020F428 -:102EB000802F0E94821F03C0802F0E94921F0E94B9 -:102EC000C31F8FC1872D807F972D9F70803211F493 -:102ED000892F03C0892F8295807FCC2021F0F1E0DB -:102EE000CF16A1F01DC0112339F0002319F10130D4 -:102EF00009F50E94AC1F75C1002319F0013009F4D7 -:102F000070C189830E94AF1F898110C1112321F0F4 -:102F1000063008F066C10EC0053008F062C106C177 -:102F2000112359F0002331F0F701958190FF40C142 -:102F30009F7095830E94EE1654C1002309F4F6C0D9 -:102F40003DC1872D86958695837090E0009719F096 -:102F5000019761F046C1112321F08C2D972D9370BC -:102F600002C080E090E00E94BB143BC1112321F01D -:102F70008C2D972D937002C080E090E00E94D114B8 -:102F800030C18C2D112319F00E94542302C00E94DD -:102F9000BC230E94412425C1872D837009F052C0B3 -:102FA00011111FC18C2D829586958770880F880F0F -:102FB0009C2D9F70892E912CA12CB12C082E04C021 -:102FC000880C991CAA1CBB1C0A94D2F7C4FE14C01E -:102FD0000FE010E020E030E0B901A80104C0440F88 -:102FE000551F661F771F8A95D2F7CB01BA016095EE -:102FF00070958095909503C060E070E0CB01272D1F -:1030000026952695237030E02230310569F0233073 -:10301000310589F0682979298A299B2921303105D0 -:1030200071F00E94421DDDC0682979298A299B29F7 -:103030000E945E1DD6C00E94421DC501B4010E94BF -:10304000261DCFC0112319F0872D817001C08695F0 -:10305000882309F4C6C08C2D829586958770880FC9 -:10306000880F9C2D9F70892E912CA12CB12C082E9D -:1030700004C0880C991CAA1CBB1C0A94D2F7C4FE7D -:1030800014C00FE010E020E030E0B901A80104C056 -:10309000440F551F661F771F8A95D2F7CB01BA01DF -:1030A000609570958095909503C060E070E0CB01CD -:1030B000272D269526952370422F50E0423051054A -:1030C00069F04330510589F0682979298A299B29BB -:1030D0004130510571F00E941C1E83C06829792976 -:1030E0008A299B290E94381E7CC00E941C1EC50193 -:1030F000B4010E94001E75C08C2D90E0FC01E05EC2 -:10310000F109E531F10508F04FC0E059FF4F0C948B -:10311000F22B0C2D0F70872D8F71112321F00E943F -:10312000991D802F07CF0E94BA1D802F0E94F5168F -:1031300058C0112341F0053008F053C0872D8F711E -:103140000E94DF1D4EC0063008F04BC0F7CF1123A0 -:1031500039F0872D8F710E94991D43C01123C9F347 -:10316000872D8F710E94BA1D3CC0112329F0872D35 -:103170008F710E94841D35C00E947A1D32C01123B8 -:1031800051F0172D1F71812F0E94991D63E0812F2F -:103190000E94AD1E26C081E00E94B61E023008F1DA -:1031A00082E00E94B61E1DC0112331F0002389F277 -:1031B0008C2D0E94D71515C0002391F28C2D0E94F2 -:1031C0009F160FC0472D4F706C2DC7010E94B60788 -:1031D0000E949E1C06C0472D4F706C2DC7010E9497 -:1031E0007A08DD20F9F00E94A91E80FD1BC0F701BE -:1031F00012820E94A31E0E94991DC7010E942119DC -:103200000E94A31E0F90DF91CF911F910F91FF900D -:10321000EF90DF90CF90BF90AF909F908F907F9076 -:103220000C94BA1D0F90DF91CF911F910F91FF90D9 -:10323000EF90DF90CF90BF90AF909F908F907F9056 -:1032400008950F931F93CF93DF93EC0188819981A9 -:103250002B813C81232BB9F09F3F11F48F3F99F0D4 -:10326000CE010E94CE07882371F0688179818A811E -:103270000E949F1E8C010E94541E0E941B1DB801BB -:10328000CE010E94FC16DF91CF911F910F910895FE -:103290000E94991F0E94A91F0E946E1F0E94C31FB7 -:1032A0000E9474250E94412480E090E00E94BB149B -:1032B00080E090E00C94D1140E94891F0C9448196E -:1032C0000E94941E292F22952F7030E02C3031055A -:1032D0004CF42A3031056CF422503109223031058A -:1032E000A8F407C02C30310569F02F30310551F0BA -:1032F0000DC0803F69F018F4803E40F409C0843F5F -:1033000029F406C093FB882780F9089580E008958A -:1033100081E00895CF93DF9300D000D01F92CDB706 -:10332000DEB70F900F900F900F900F90DF91CF911D -:103330000895CF93DF9300D000D000D0CDB7DEB793 -:1033400026960FB6F894DEBF0FBECDBFDF91CF91AA -:1033500008951F93CF93DF93C091970116E080915A -:103360009801C81799F0D0E01C9FF0011D9FF00D47 -:103370001124E756FE4F408151816281738184811F -:1033800095810E9499192196C770E9CFDF91CF915D -:103390001F9108954091C9015091CA016091CB01DC -:1033A0007091CC018091CD019091CE010C9499192E -:1033B0008091CE0182958F7009F054C08091CB012D -:1033C000882309F44FC080919701A09198016091E2 -:1033D000C9017091CA014091CC015091CD01B6E074 -:1033E0008A1709F43FC090E041155105C1F17F3FB4 -:1033F00011F46F3FA1F1B89FF001B99FF00D1124B6 -:10340000E756FE4F218172132AC02081621327C024 -:103410002281211124C0238134812417350710F41F -:1034200021503109241B350B283C3105C0F4209173 -:10343000CE012F7020612093CE0126E0289FF0015D -:10344000299FF00D1124E256FE4F80818F7080611C -:10345000808389EC91E00E9421190C94A9190196AE -:103460008770BECF0895CF92DF92EF92FF920F93B5 -:103470001F93CF93DF93CDB7DEB762970FB6F89463 -:10348000DEBF0FBECDBF8C0185E0F801DE011D96C9 -:1034900001900D928A95E1F7D8014C9111965C91BB -:1034A000119712966C9112971396CD90DC90149709 -:1034B0003091C9017091CA018091CC019091CD01E8 -:1034C000009709F46BC17F3F19F43F3F09F466C1CF -:1034D000E090CB01EE2009F4C0C02091CE01C816C7 -:1034E000D90628F0F601E81BF90BCF0104C080953E -:1034F00090958C0D9D1DFF24F394883C910578F0E8 -:10350000F12C207F09F0C6C07C2DD98AC88A898910 -:103510000E948A1989EC91E00E942119B1C0822F82 -:10352000807F09F046C0751314C0341312C06111B6 -:1035300010C02F7020612093CE010E94CA1989EC1F -:1035400091E00E9421198091CE01D80115968C93AB -:103550002EC0CD2819F15F3F11F44F3FF9F0F62E40 -:1035600061111CC0809197012091980136E082176B -:1035700009F45AC090E0389FF001399FF00D1124F2 -:10358000E756FE4F7181571306C07081471303C081 -:103590007281711103C001968770E9CFF62E662300 -:1035A00009F418C18091CE0181608093CE01F12C85 -:1035B00011C1751308C0341306C0611104C0809195 -:1035C000CE01D801C3C04D875E878D859E856A8BED -:1035D0000E9460196A898823E1F16623D1F1209164 -:1035E000CE01822F82958F7090E0029774F08091C7 -:1035F000C9019091CA0198878F831986DB86CA8694 -:103600002C87CE0107960E94211986E0F801A9ECCB -:10361000B1E001900D928A95E1F70E94D8190E94BD -:10362000CA19FF24F394D6C04D875E878D859E8589 -:103630000E94941E292F22952F7030E022303105F0 -:103640000CF0BCC09F7009F0B6C0805E883008F4F2 -:10365000C1C0C8010E942119E4CFC816D90608F4D8 -:1036600053C0F601E81BF90BCF01883C910508F423 -:1036700050C0F12C7C2DD98AC88A89890E948A1968 -:10368000E9ECF1E086E0DF011D928A95E9F70E94FE -:10369000CA19A0C0751314C0341312C0611110C030 -:1036A0008091CE01F8018583C8010E94211986E02E -:1036B000E9ECF1E0DF011D928A95E9F7FE2C8AC062 -:1036C0004D875E878D859E856A8B0E9460196A8909 -:1036D000882309F4BECF662309F4BBCF2091CE0125 -:1036E000822F82958F7090E002970CF48ECF80919C -:1036F000C9019091CA019A8389831B82DD82CC82A1 -:103700002E83CE0101967FCF809590958C0D9D1DC7 -:10371000ACCFF62E662309F49CCF75132EC034135C -:103720002CC02091CE0120FD1FC0822F82958F706A -:10373000D9F0D80115962C9315978F3049F08F5FEB -:10374000982F9295907F822F8F70892B15968C934E -:10375000C8010E94211986E0F801A9ECB1E00190AE -:103760000D928A95E1F793CF86E0F801A9ECB1E0DC -:1037700001900D928A95E1F72DC04D875E878D856A -:103780009E850E946019811140CF8091CE01816099 -:103790008093CE01C8010E9421191CC0662309F440 -:1037A00058CF4D875E878D859E850E94601988233E -:1037B00009F44FCF2ACF811148CF0CC024303105F6 -:1037C0000CF047CF9F7009F440CFF8019581907FAE -:1037D00009F03BCF8F2D62960FB6F894DEBF0FBE77 -:1037E000CDBFDF91CF911F910F91FF90EF90DF90B0 -:1037F000CF9008951F93CF93DF93CDB7DEB72C976B -:103800000FB6F894DEBF0FBECDBF4F8358876987D0 -:103810007A878B879C87CE0107960E94331A88236C -:1038200069F08F8198852A853B85232BF1F19F3F95 -:1038300009F063C08F3F09F060C037C086E0FE0129 -:103840003796DE01119601900D928A95E1F76F810E -:103850007885EA85FB85309741F17F3F11F46F3F12 -:1038600021F12091980130E0C901019687709927D4 -:103870004091970150E08417950709F447C0698388 -:103880007A83FD83EC8396E0929FD001939FB00DE5 -:103890001124A756BE4FFE01319601900D929A95C4 -:1038A000E1F7809398010E94A91916E08091970191 -:1038B000909198018917C1F1189FC0011124875672 -:1038C0009E4F0E94331A882379F1E09197011E9F41 -:1038D000F0011124E756FE4F4081518162817381CE -:1038E000848195810E9499198091970190E00196B9 -:1038F0008770992780939701D9CF4F815885698523 -:103900007A858B859C850E949919CFCF0E945C197E -:103910001092980110929701E9ECF1E086E0DF0146 -:103920001D928A95E9F7C1CF2C960FB6F894DEBFA9 -:103930000FBECDBFDF91CF911F910895EF92FF92FF -:103940000F931F93CF93DF938C01009709F46CC002 -:10395000F12CEE24E394E8012196F8018491843758 -:1039600040F4843008F051C0813081F0823019F188 -:103970005BC0853709F444C0A8F19CE7980F9037E5 -:1039800008F052C08F770E949F1641C00E5F1F4FF4 -:10399000FE01C49180E28C0F883048F4C7708E2DF0 -:1039A00001C0880FCA95EAF70E949C1F14C08C2F93 -:1039B0000E94D7152DC00E5F1F4FFE01C49180E2FB -:1039C0008C0F883058F4C7708E2D01C0880FCA95AF -:1039D000EAF70E94A21F0E94C31F1AC08C2F0E94E8 -:1039E0009F1616C00E5F1F4FFE01C491CC2381F0BD -:1039F0008FE99FE00197F1F700C00000C150F6CFBA -:103A00000E5F1F4FFE01F49003C00E94D7158E0178 -:103A10008F2D882309F49FCFEFE9FFE03197F1F76D -:103A200000C000008150F5CFDF91CF911F910F9121 -:103A3000FF90EF90089508956093D3017093D4019F -:103A40008093D5019093D6010C9448190F931F933E -:103A50000091D3011091D4012091D5013091D6016C -:103A6000DC01CB01802B912BA22BB32B8093D301B4 -:103A70009093D401A093D501B093D6011F910F91DB -:103A80000C9448190F931F930091D3011091D40106 -:103A90002091D5013091D601DC01CB018023912307 -:103AA000A223B3238093D3019093D401A093D50193 -:103AB000B093D6011F910F910C9448190F931F9347 -:103AC0000091D3011091D4012091D5013091D601FC -:103AD000DC01CB0180279127A227B3278093D30154 -:103AE0009093D401A093D501B093D6011F910F916B -:103AF0000C9448191092CF011092D0011092D1016C -:103B00001092D2010C94481941E050E060E070E05E -:103B100004C0440F551F661F771F8A95D2F7409344 -:103B2000CF015093D0016093D1017093D2010C94D6 -:103B3000481941E050E060E070E004C0440F551FB8 -:103B4000661F771F8A95D2F78091CF019091D0019F -:103B5000A091D101B091D201482B592B6A2B7B2B1C -:103B60004093CF015093D0016093D1017093D20163 -:103B70000C94481941E050E060E070E004C0440F4C -:103B8000551F661F771F8A95D2F74095509560950F -:103B900070958091CF019091D001A091D101B09109 -:103BA000D201482359236A237B234093CF015093AA -:103BB000D0016093D1017093D2010C94481941E077 -:103BC00050E060E070E004C0440F551F661F771F8F -:103BD0008A95D2F78091CF019091D001A091D10127 -:103BE000B091D201482759276A277B274093CF01FC -:103BF0005093D0016093D1017093D2010C94481975 -:103C00000F931F930091CF011091D0012091D1010A -:103C10003091D201DC01CB01802B912BA22BB32B55 -:103C20008093CF019093D001A093D101B093D201A2 -:103C30001F910F910C9448190F931F930091CF017E -:103C40001091D0012091D1013091D201DC01CB0142 -:103C500080239123A223B3238093CF019093D0019B -:103C6000A093D101B093D2011F910F910C944819E8 -:103C70000F931F930091CF011091D0012091D1019A -:103C80003091D201DC01CB0180279127A227B327F5 -:103C90008093CF019093D001A093D101B093D20132 -:103CA0001F910F910C9448190895CF92DF92EF92D3 -:103CB000FF920F931F93CF93DF938C01C090D3019A -:103CC000D090D401E090D501F090D6018091CF0141 -:103CD0009091D001A091D101B091D201C82AD92AE6 -:103CE000EA2AFB2ACFE1D0E0D701C6010C2E04C09E -:103CF000B695A795979587950A94D2F780FF06C049 -:103D0000B8018C2F0E94D70A019721F4219760F700 -:103D100080E001C08C2FDF91CF911F910F91FF9018 -:103D2000EF90DF90CF900895CF93DF93EC010E9446 -:103D3000551EBE010E94D70ADF91CF910895CB0195 -:103D40000E94941E08958091D7018595859585954B -:103D500008958091D7018770089598E0899F900118 -:103D60001124262B2093D7010C94991D2091D70163 -:103D7000809582238093D701982F977069F430E063 -:103D8000482F552747FD50952417350729F085956D -:103D9000859585950C94BA1D08959091D7019770DB -:103DA00081E009F480E0089590910B01992321F0BE -:103DB00090910C01911109C020910D0130910E01DB -:103DC000F90132969FEF40E030C0982F9695969576 -:103DD00096959F30A0F4E0910D01F0910E01E90F4E -:103DE000F11D877021E030E0A90102C0440F551F8A -:103DF0008A95E2F7CA019181892B81830895909178 -:103E0000EC0190FF23C01F928F9385E894E09F936D -:103E10008F930E9493070F900F900F900F9008952B -:103E20009F3F39F04F5F4E3041F051915813F8CF1A -:103E30000DC05111F7CF942FF5CF9F3F39F0F90105 -:103E4000E90FF11D97FDFA958283089508959091E9 -:103E50000B01992321F090910C01911109C020913F -:103E60000D0130910E01F9013296205F3F4F30C0B5 -:103E7000982F9695969596959F30A8F4E0910D0110 -:103E8000F0910E01E90FF11D877021E030E0A901EA -:103E900002C0440F551F8A95E2F7CA0180959181AF -:103EA0008923818308959091EC0190FF16C01F92A1 -:103EB0008F9387E694E09F938F930E9493070F90D0 -:103EC0000F900F900F9008953196E217F30729F0A5 -:103ED00090819813F9CF1082F7CF089581E090E098 -:103EE000E0910D01F0910E01E80FF91F108201968B -:103EF00080319105A9F708959091EB01892B80936A -:103F0000EB01089580959091EB0189238093EB015B -:103F100008951092EB0108959091EA01892B809306 -:103F2000EA01089580959091EA0189238093EA013E -:103F300008951092EA0108959091E901892B8093E8 -:103F4000E901089580959091E90189238093E90121 -:103F500008951092E90108958093D8010895109270 -:103F6000D801089580910D0190910E01FC013196C8 -:103F70009C01205F3F4F80E0919191118F5FE2178C -:103F8000F307D1F70895E0910D01F0910E018091B2 -:103F9000EB018083E0910D01F0910E019081809101 -:103FA000EA01892B8083E0910D01F0910E0190814F -:103FB0008091E901892B80838091D801882361F069 -:103FC000E0910D01F0910E019081892B80830E9478 -:103FD000B21F81111092D80180910D0190910E01B4 -:103FE0000C94671490934D0180934C01089520E048 -:103FF000009739F0AC0141505109842395232F5F7C -:10400000F7CF822F08958295982F9C7C392F369573 -:104010003695282F237344E0249FC0011124932F49 -:10402000982B292F2A7A2695892F8575880F822B20 -:1040300008951F93CF93DF931F92CDB7DEB7998377 -:104040000E940320182F9981892F0E940320212F7D -:1040500030E0322F2227A901482BCA010F90DF91AF -:10406000CF911F91089580910102843021F1109227 -:10407000ED0120E488E190E00FB6F894A8958093D4 -:1040800060000FBE2093600080E00E94740B83B735 -:10409000817F846083BF83B7816083BF7894889574 -:1040A00083B78E7F83BF88E10FB6F894809360005A -:1040B000109260000FBE0895089508950E945C203C -:1040C0000E94CF0B0E945D200E94820C91E0811122 -:1040D00001C090E0892F08950E945C190E945B1432 -:1040E0000C94740B1F920F920FB60F9211248F93A2 -:1040F0009F93AF93BF938091ED01811113C0809185 -:10410000EE019091EF01A091F001B091F101419683 -:10411000A11DB11D8093EE019093EF01A093F001DA -:10412000B093F101BF91AF919F918F910F900FBE0E -:104130000F901F90189582E084BD93E095BD9AEF93 -:1041400097BD80936E0008952FB7F8948091EE018B -:104150009091EF01A091F001B091F1012FBF08956E -:10416000CF92DF92EF92FF920F931F932FB7F894A5 -:104170004091EE015091EF016091F0017091F101D9 -:104180002FBF6A017B01EE24FF248C0120E030E088 -:10419000C016D106E206F30610F4415051099A0107 -:1041A000281B390BC9011F910F91FF90EF90DF90F1 -:1041B000CF9008951F920F920FB60F9211248F93F4 -:1041C0009F93AF93BF938091EE019091EF01A091E7 -:1041D000F001B091F1010196A11DB11D8093EE0196 -:1041E0009093EF01A093F001B093F101BF91AF91D3 -:1041F0009F918F910F900FBE0F901F9018950E9466 -:104200005911F8942FEF87EA91E6215080409040B1 -:10421000E1F700C0000087E090EBDC0180930B0227 -:1042200090930C02A0930D02B0930E029CE088E1E3 -:104230000FB6F894A895809360000FBE909360002D -:10424000FFCFEF92FF920F931F93CF93DF93D82F5F -:10425000CAE08C2F0E944A0C07E010E0E82EF12CF7 -:10426000C701002E02C0959587950A94E2F780FF5A -:1042700009C0602F7C2F80E00E947B08D81302C009 -:1042800081E006C00150110958F7C15010F780E0D5 -:10429000DF91CF911F910F91FF90EF900895CF93F1 -:1042A000C82F8CE20E942121882321F08C2FCF91EE -:1042B0000C94212180E0CF910895CF930E94AC22ED -:1042C000811102C00E9492228AEA94E00E94FA06BA -:1042D000C5E6C15049F00E94CF0B8FE39CE90197DE -:1042E000F1F700C00000F5CF83EA94E00E94FA06DF -:1042F00089E20E944F21811113C18AE20E944F215D -:1043000081110E94922285E00E944F2181110E941A -:10431000FF200E94B7228093EC0187E00E944F218A -:104320008823A9F18BE10E944F21882351F08091CD -:10433000EC0181FB222720F991E0922790FB81F983 -:104340000EC08EE00E944F21882361F08091EC0125 -:1043500082FB222720F991E0922790FB82F980933B -:10436000EC0115C080E10E944F219091EC0188235F -:1043700041F093FB222720F981E0822780FB93F90B -:1043800004C0892F809580FB90F99093EC01809177 -:10439000EC010E94BB220E94C92280930A0280EE97 -:1043A0000E944F21882341F080910A02982F909516 -:1043B00090FB80F980930A0289E30E944F218823B1 -:1043C00059F080910A0281FB222720F991E092277F -:1043D00090FB81F980930A0282EE0E944F2188238C -:1043E00059F080910A0282FB222720F991E092275E -:1043F00090FB82F980930A0286EE0E944F21882367 -:1044000059F080910A0283FB222720F991E092273C -:1044100090FB83F980930A0283EE0E944F21882348 -:1044200059F080910A0284FB222720F991E092271B -:1044300090FB84F980930A0285E30E944F21882330 -:1044400059F080910A0285FB222720F991E09227FA -:1044500090FB85F980930A0281E30E944F21882313 -:1044600059F080910A0286FB222720F991E09227D9 -:1044700090FB86F980930A0281E10E944F218823F4 -:1044800059F080910A0287FB222720F991E09227B8 -:1044900090FB87F980930A0280910A020E94CD2244 -:1044A00080910A0287FB882780F980930C0187E2BC -:1044B0000E944F21C82F8EE10E944F218111C260BE -:1044C0008FE10E944F218111C46080E20E944F2140 -:1044D0008111C86081E20E944F218111C06182E296 -:1044E0000E944F218111C06283E20E944F218111FD -:1044F000C06484E20E944F21882311F0C06802C08A -:10450000CC2329F08C2F0E94C4226C2F03C00E9460 -:10451000C022682F70E080E090E0CF910C941C1DC9 -:10452000CF9108956DEE7EEF80E090E00E942C2CFC -:1045300060E082E090E00E941A2C60E083E090E06E -:104540000E941A2C60E084E090E00E941A2C60E047 -:1045500085E090E00C941A2C80E090E00E94142CEE -:1045600021E08D3E9E4F09F020E0822F089582E0E9 -:1045700090E00C940C2C682F82E090E00C941A2CA4 -:1045800083E090E00C940C2C682F83E090E00C9476 -:104590001A2C84E090E00C940C2C682F84E090E0BE -:1045A0000C941A2C8091F40180FF0BC060911201D1 -:1045B00085E0689FB001112475956795759567959D -:1045C0002BC081FF09C06091120185E0689FB00196 -:1045D00011247595679520C082FF07C06091120174 -:1045E00085E0689FB001112417C09091F5019923CF -:1045F000D1F060911101961788F72091120185E0A2 -:10460000289F90011124929FA001939F500D112487 -:1046100070E0CA010E94DE2B6038710540F461151C -:10462000710539F002C065E070E0862F08958FE7CC -:10463000089581E008958091F40180FF08C06091A1 -:10464000100170E0759567957595679521C081FF9C -:1046500006C06091100170E07595679519C082FFE2 -:1046600004C06091100170E010C09091F501992391 -:10467000C1F060910F019617A0F780911001899FFA -:10468000C001112470E00E94DE2B6038710528F40F -:104690006115710521F0862F08958FE7089581E057 -:1046A000089561E070E0F4CF803F21F40E94D222AF -:1046B000819504C0813F29F40E94D2228093F801A1 -:1046C0000895823F21F40E94D222819504C0833F45 -:1046D00029F40E94D2228093F7010895893F19F4AA -:1046E0000E941B2305C08A3F31F40E941B23819541 -:1046F0008093F90108958B3F21F40E941B2381953B -:1047000004C08C3F29F40E941B238093FA01089572 -:10471000843F21F48091F601816017C0853F21F428 -:104720008091F601826011C0863F21F48091F601EC -:1047300084600BC0873F21F48091F601886005C03A -:10474000883F31F48091F60180618093F6010895ED -:104750008D3F21F48091F40181600BC08E3F21F4E4 -:104760008091F401826005C08F3F29F48091F401AB -:1047700084608093F4010895803F39F48091F801BA -:1047800087FF6CC01092F80169C0813F29F48091C5 -:10479000F8011816BCF362C09091F701823F29F42A -:1047A00097FF5CC01092F70159C0833F19F41916A6 -:1047B000CCF354C0893F41F48091F90118160CF0F4 -:1047C0004DC01092F9014AC08A3F29F48091F90145 -:1047D00087FF44C0F6CF8B3F39F48091FA0187FF01 -:1047E0003DC01092FA013AC08C3F29F48091FA0141 -:1047F0001816BCF333C0843F21F48091F6018E7FFC -:1048000017C0853F21F48091F6018D7F11C0863F4E -:1048100021F48091F6018B7F0BC0873F21F48091BA -:10482000F601877F05C0883F31F48091F6018F7EC5 -:104830008093F60113C08D3F21F48091F4018E7FA7 -:104840000BC08E3F21F48091F4018D7F05C08F3F16 -:1048500029F48091F4018B7F8093F4018091F7011A -:1048600081110EC08091F80181110AC08091F90177 -:10487000811106C08091FA01811102C01092F501E8 -:1048800008958091EC0183FF7EC086EE94E00E9443 -:10489000FA068091F6011F928F9381EE94E09F9328 -:1048A0008F930E9493078FED94E00E94FA06809107 -:1048B000F701282F332727FD30953F938F938CEDF9 -:1048C00094E09F938F930E9493078AED94E00E9457 -:1048D000FA068091F801282F332727FD30953F9362 -:1048E0008F9387ED94E09F938F930E94930785EDBC -:1048F00094E00E94FA068091F901282F332727FDC2 -:1049000030953F938F9382ED94E09F938F930E9415 -:10491000930780ED94E00E94FA068091FA01282F17 -:10492000332727FD30953F938F938DEC94E09F9331 -:104930008F930E9493078AEC94E00E94FA0680917C -:10494000F5011F928F9387EC94E09F938F930E94C1 -:10495000930785EC94E00E94FA068091F4011F927F -:104960008F9382EC94E09F938F930E9493078FEB39 -:1049700094E00E94FA068DB79EB74C960FB6F89455 -:104980009EBF0FBE8DBF86EF91E00E94B0140E94C3 -:10499000A4209093F3018093F20108951F93CF9385 -:1049A000DF938091F2019091F3010E94B020AC015D -:1049B0009091F501992321F02091130130E006C078 -:1049C000209114018AE0289F900111244217530777 -:1049D00008F486C08091F701C091F801D091F901E7 -:1049E0001091FA01811107C0C11176C0D11174C0B4 -:1049F000111172C075C09F3F19F09F5F9093F50130 -:104A0000181624F40E94D2228093F7018091F701B6 -:104A100087FF05C00E94D22281958093F7011C1662 -:104A200024F40E94D2228093F8018091F80187FF3C -:104A300005C00E94D22281958093F8016091F70110 -:104A4000662339F1C091F801CC2319F1772767FD6E -:104A50007095872F972F0E94E32A23E333E343E3E4 -:104A60005FE30E94472B0E94B02A6093F7016C2FEE -:104A7000772767FD7095872F972F0E94E32A23E3FE -:104A800033E343E35FE30E94472B0E94B02A609325 -:104A9000F8011D1624F40E941B238093F9018091D4 -:104AA000F90187FF05C00E941B2381958093F901BE -:104AB000111624F40E941B238093FA018091FA01BD -:104AC00087FF05C00E941B2381958093FA01DF9127 -:104AD000CF911F910C9441249F3F09F08ECF96CF28 -:104AE000DF91CF911F910895E6EFF1E085E0DF01BE -:104AF0001D928A95E9F71092F5011092F40108953C -:104B000089E097E00E94FA061F9281E08F931F923E -:104B100085E08F938BEB96E09F938F930E94930792 -:104B20000F900F900F900F900F900F90089583307B -:104B3000E9F128F4813061F0823009F1089585307F -:104B400009F462C008F449C0863009F474C00895BD -:104B500080911401262F30E0280F311D2F3F3105A1 -:104B600024F4680F6093140103C08FEF8093140145 -:104B7000809114011F928F9384EF95E072C0809111 -:104B80001301262F30E0280F311D2F3F310524F46B -:104B9000680F6093130103C08FEF8093130180911E -:104BA00013011F928F9382EE95E05BC080911201FA -:104BB000262F30E0280F311D2F3F310524F4680FD8 -:104BC0006093120103C08FEF809312018091120154 -:104BD0001F928F938FEC95E044C080911101262F96 -:104BE00030E0280F311D2F3F310524F4680F60930A -:104BF000110103C08FEF80931101809111011F9269 -:104C00008F938AEB95E02DC080911001262F30E024 -:104C1000280F311D2F3F310524F4680F60931001D8 -:104C200003C08FEF80931001809110011F928F932A -:104C300081EA95E016C080910F01262F30E0280F01 -:104C4000311D2F3F310524F4680F60930F0103C01D -:104C50008FEF80930F0180910F011F928F9386E851 -:104C600095E09F938F930E9493070F900F900F9062 -:104C70000F900895833081F128F4813059F082300B -:104C8000D1F00895853009F449C0B8F1863009F4AF -:104C900056C0089580911401681720F4861B8093F4 -:104CA000140102C010921401809114011F928F937D -:104CB00087E795E054C080911301681720F4861BA4 -:104CC0008093130102C010921301809113011F926F -:104CD0008F9385E695E043C080911201681720F418 -:104CE000861B8093120102C0109212018091120162 -:104CF0001F928F9382E595E032C080911101681771 -:104D000020F4861B8093110102C010921101809142 -:104D100011011F928F938DE395E021C080911001C6 -:104D2000681720F4861B8093100102C010921001B6 -:104D3000809110011F928F9384E295E010C08091C2 -:104D40000F01681720F4861B80930F0102C0109298 -:104D50000F0180910F011F928F9389E095E09F933F -:104D60008F930E9493070F900F900F900F900895CC -:104D7000CF93C82F1F928F938EE098E09F938F93CD -:104D80000E94930781E090E0A0E0B0E0BC01CD017B -:104D900004C0660F771F881F991FCA95D2F70E941B -:104DA0001C1D0F900F900F900F90CF910C945C19D9 -:104DB000CF938B3109F4D1C108F049C08E3009F48A -:104DC000E0C100F5873009F4A9C1A8F4863009F0E4 -:104DD00066C28091EC01817F8E7F8093EC0184E834 -:104DE00099E00E94FA0681E49DE00E94FA0681E0C3 -:104DF0008093FC0191C1883009F45BC08B3009F4C9 -:104E000087C14DC2813109F432C220F4803109F4E6 -:104E1000CCC145C2863109F4E3C1893109F03FC2F2 -:104E200085E799E00E94FA0682E699E00E94FA0678 -:104E300088E299E00E94FA068BEF98E00E94FA0659 -:104E400087EB98E00E94FA068CE898E063C185330E -:104E500009F421C268F4873209F41DC228F48E31A6 -:104E600008F41DC28D5118C2893209F414C217C248 -:104E7000833438F48A3308F00CC2883309F448C10B -:104E80000EC2833409F407C2883409F008C20E94B4 -:104E90005C1985E29DE00E94FA069FEF23ED80E316 -:104EA000915020408040E1F700C000000E94FF20A8 -:104EB00033C185E49DE00E94FA0682E99CE00E94ED -:104EC000FA060E94C0221F928F938FE89CE09F9366 -:104ED0008F930E9493078DE89CE00E94FA060E943F -:104EE000B722C82F8AE79CE00E94FA061F92CF9350 -:104EF00085E79CE09F938F930E94930783E79CE054 -:104F00000E94FA0689E69CE00E94FA068C2F8170C6 -:104F10001F928F9386E69CE09F938F930E94930746 -:104F200084E69CE00E94FA068AE59CE00E94FA066C -:104F3000C1FB882780F91F928F9387E59CE09F93A0 -:104F40008F930E94930785E59CE00E94FA0689E40E -:104F50009CE00E94FA06C2FB882780F91F928F937B -:104F600086E49CE09F938F930E94930784E49CE0E7 -:104F70000E94FA068BE39CE00E94FA06C3FBCC2752 -:104F8000C0F91F92CF9388E39CE09F938F930E9478 -:104F9000930786E39CE00E94FA060E94C922C82F6C -:104FA00082E29CE00E94FA061F92CF938DE19CE082 -:104FB0009F938F930E9493078BE19CE00E94FA06D7 -:104FC00082E09CE00E94FA068C2F81701F928F93E2 -:104FD0008FEF9BE09F938F930E9493078DB79EB7AF -:104FE00080960FB6F8949EBF0FBE8DBF8DEF9BE0ED -:104FF0000E94FA0686EE9BE00E94FA06C1FB882713 -:1050000080F91F928F9383EE9BE09F938F930E9472 -:10501000930781EE9BE00E94FA068FEC9BE00E94D2 -:10502000FA06C2FB882780F91F928F938CEC9BE0D5 -:105030009F938F930E9493078AEC9BE00E94FA064D -:1050400088EB9BE00E94FA06C3FB882780F91F9239 -:105050008F9385EB9BE09F938F930E94930783EB45 -:105060009BE00E94FA0689EA9BE00E94FA06C4FBD4 -:10507000882780F91F928F9386EA9BE09F938F93F6 -:105080000E94930784EA9BE00E94FA0682E99BE073 -:105090000E94FA06C5FB882780F91F928F938FE83C -:1050A0009BE09F938F930E9493078DE89BE00E9463 -:1050B000FA0681E79BE00E94FA06C6FB882780F982 -:1050C0001F928F938EE69BE09F938F930E9493078E -:1050D0008CE69BE00E94FA0684E69BE00E94FA06BA -:1050E000C7FBCC27C0F91F92CF9381E69BE09F932B -:1050F0008F930E9493078FE59BE00E94FA068DB77D -:105100009EB74C960FB6F8949EBF0FBE8DBF04C0DD -:105110008BEA99E00E94FA06C1E0C6C08091EC01DA -:10512000C82FC095C170C0FB80F98093EC01CC23DF -:1051300049F089E19DE00E94FA068091EC018660C9 -:10514000886048C08CE09DE00E94FA068091EC01E6 -:10515000897F877F8093EC01DFCF9091EC0191FBF9 -:10516000CC27C0F981E0C827892FC0FB81F9809343 -:10517000EC01CC2319F08FEF9CE027C081EF9CE07D -:10518000C9CF9091EC0192FBCC27C0F981E0C827F0 -:10519000892FC0FB82F98093EC01CC2319F082EEB9 -:1051A0009CE013C082ED9CE0B5CF9091EC0193FBA5 -:1051B000CC27C0F981E0C827892FC0FB83F98093F1 -:1051C000EC01CC2351F086EC9CE00E94FA06809121 -:1051D000EC0181608093EC0167C089EB9CE09ACF81 -:1051E0008EE798E00E94FA060E945B141F928F934C -:1051F00084E698E09F938F930E94930780910B0120 -:105200001F928F938DE498E09F938F930E94930752 -:10521000809184011F928F938AE398E09F938F93EC -:105220000E94930780910C011F928F9387E298E070 -:105230009F938F930E9493078091EE019091EF01CD -:10524000A091F001B091F101BF93AF939F938F9321 -:1052500083E198E09F938F930E9493078DB79EB749 -:1052600046960FB6F8949EBF0FBE8DBF55CF0E94D5 -:105270005C19C0910C0181E0C827C0930C01CC23BC -:1052800029F08FEA9CE00E94FA060EC084EA9CE0B6 -:1052900041CF895301C080E00E94B8263DCF82EA09 -:1052A0009CE00E94FA06C0E08C2FCF91089580E028 -:1052B000089580E00895CF93C82F8091FC0181303C -:1052C00071F020F0823009F44BC042C1E0910D0131 -:1052D000F0910E018081823209F03CC107C0E0915B -:1052E0000D01F0910E018081823261F48C2F0E94B9 -:1052F0005729811104C08C2F0E94D8262FC081E02D -:1053000090E02CC08C2F0E945929811126C0C431F5 -:10531000E1F070F4CB3081F0C031D1F40E948025EF -:1053200086E098E00E94FA0682E08093FC0115C0B6 -:10533000C93259F0C83361F484E899E00E94FA0652 -:105340008AE098E00E94FA0608C01092FC0104C1AD -:1053500084E098E00E94FA06FFC081E08170FEC000 -:10536000C43228F5CE3108F0C1C0CB30A1F1D0F461 -:10537000C73009F0D3C08EE18093140182E380939B -:1053800013018AE08093120184E18093110188E087 -:105390008093100188E280930F018AEA96E00E94D0 -:1053A000FA06BFC0C33149F1C431C1F0B7C0CB3434 -:1053B00009F4A9C028F4C93289F0C83361F0AEC03D -:1053C000C13509F49EC0C23509F499C0CE3409F044 -:1053D000A5C06AE09EC00E948025A3C08091FB0109 -:1053E000882319F01092FB019CC087EB96E00E9485 -:1053F000FA0681E08093FC01B1C081E996E00E9449 -:10540000FA068FE796E00E94FA06809114011F9237 -:105410008F938CE796E09F938F930E9493078AE780 -:1054200096E00E94FA0688E696E00E94FA068091CD -:1054300013011F928F9385E696E09F938F930E94AE -:10544000930783E696E00E94FA0684E596E00E94C0 -:10545000FA06809112011F928F9381E596E09F9347 -:105460008F930E9493078FE496E00E94FA068EE3E2 -:1054700096E00E94FA06809111011F928F938BE3B0 -:1054800096E09F938F930E94930789E396E00E9492 -:10549000FA0684E296E00E94FA06809110011F92BB -:1054A0008F9381E296E09F938F930E9493078FE101 -:1054B00096E00E94FA0688E096E00E94FA06809143 -:1054C0000F011F928F9385E096E09F938F930E9428 -:1054D000930783E096E00E94FA068DB79EB7489640 -:1054E0000FB6F8949EBF0FBE8DBF1BC0CE51EC2FE0 -:1054F000F0E0EF5BFE4F80818093FB0112C061E022 -:1055000003C061E006C06AE08091FB010E9497251C -:1055100008C08091FB010E943A2603C088EA96E009 -:1055200013C08091FB01882369F01F928F9382EA58 -:1055300096E09F938F930E9493070F900F900F9088 -:105540000F9004C08FE996E00E94FA0681E006C041 -:105550001092FC0180E002C080E000CFCF9108955E -:1055600004D06894B1118DC0089570D088F09F5711 -:1055700090F0B92F9927B751A0F0D1F0660F771F9F -:10558000881F991F1AF0BA95C9F712C0B13081F07F -:1055900077D0B1E0089574C0672F782F8827B85F5F -:1055A00039F0B93FCCF3869577956795B395D9F7E0 -:1055B0003EF490958095709561957F4F8F4F9F4FEA -:1055C0000895E89409C097FB3EF4909580957095F6 -:1055D00061957F4F8F4F9F4F9923A9F0F92F96E93F -:1055E000BB279395F695879577956795B795F111B4 -:1055F000F8CFFAF4BB0F11F460FF1BC06F5F7F4F51 -:105600008F4F9F4F16C0882311F096E911C0772362 -:1056100021F09EE8872F762F05C0662371F096E86B -:10562000862F70E060E02AF09A95660F771F881F3A -:10563000DAF7880F9695879597F9089557FD905852 -:10564000440F551F59F05F3F71F04795880F97FB46 -:10565000991F61F09F3F79F0879508951216130600 -:105660001406551FF2CF4695F1DF08C0161617062F -:105670001806991FF1CF8695710561050894089564 -:10568000E894BB2766277727CB0197F908950BD0BD -:1056900078C069D028F06ED018F0952309F05AC070 -:1056A0005FC01124EECFCADFA0F3959FD1F3950F11 -:1056B00050E0551F629FF001729FBB27F00DB11D96 -:1056C000639FAA27F00DB11DAA1F649F6627B00D26 -:1056D000A11D661F829F2227B00DA11D621F739F0F -:1056E000B00DA11D621F839FA00D611D221F749F1D -:1056F0003327A00D611D231F849F600D211D822F64 -:10570000762F6A2F11249F5750408AF0E1F08823AA -:105710004AF0EE0FFF1FBB1F661F771F881F9150B7 -:105720005040A9F79E3F510570F014C0AACF5F3FCB -:10573000ECF3983EDCF3869577956795B795F795EA -:10574000E7959F5FC1F7FE2B880F911D9695879572 -:1057500097F9089597F99F6780E870E060E00895F1 -:105760009FEF80EC089500240A9416161706180679 -:105770000906089500240A94121613061406050655 -:105780000895092E0394000C11F4882352F0BB0FE6 -:1057900040F4BF2B11F460FF04C06F5F7F4F8F4F49 -:1057A0009F4F0895991B79E004C0991F961708F040 -:1057B000961B881F7A95C9F78095089597FB072E49 -:1057C00016F4009407D077FD09D00E94F82B07FC4F -:1057D00005D03EF4909581959F4F08957095619501 -:1057E0007F4F0895EE0FFF1F0590F491E02D09946F -:1057F000AA1BBB1B51E107C0AA1FBB1FA617B707F7 -:1058000010F0A61BB70B881F991F5A95A9F7809512 -:105810009095BC01CD010895F999FECF92BD81BD4F -:10582000F89A992780B50895A8E1B0E042E050E0E9 -:105830000C94342C262FF999FECF92BD81BDF89A95 -:10584000019700B4021639F01FBA20BD0FB6F894C4 -:10585000FA9AF99A0FBE08950196272F0E941B2CE1 -:105860000C941A2CDC01CB01FC01F999FECF06C087 -:10587000F2BDE1BDF89A319600B40D92415050400E -:08588000B8F70895F894FFCF7A -:10588800FF980C890D660D320DFE0C0101D9012817 -:1058980008140A321E0313233329397659497943E8 -:1058A80053637F6F5F4F1F0F3F4D362039F503A8B5 -:1058B800037203520319038C02A502BE02D702F732 -:0C58C800020102030405060708090000A5 -:00000001FF diff --git a/keyboards/retro_refit/readme.md b/keyboards/retro_refit/readme.md new file mode 100644 index 000000000..b01a1a9ca --- /dev/null +++ b/keyboards/retro_refit/readme.md @@ -0,0 +1,24 @@ +retro_refit keyboard firmware +====================== + +## Quantum MK Firmware + +For the full Quantum feature list, see [the parent readme.md](/readme.md). + +## Building + +Download or clone the whole firmware and navigate to the keyboards/retro_refit folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default +To build with the default keymap, simply run `make`. + +### Other Keymaps +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` and see keymap document (you can find in top readme.md) and existent keymap files. + +To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: +``` +$ make KEYMAP=[default|jack|] +``` +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. \ No newline at end of file diff --git a/keyboards/retro_refit/retro_refit.c b/keyboards/retro_refit/retro_refit.c index 78b6edca7..3d610eba3 100644 --- a/keyboards/retro_refit/retro_refit.c +++ b/keyboards/retro_refit/retro_refit.c @@ -1,19 +1,5 @@ #include "retro_refit.h" - -__attribute__ ((weak)) -void matrix_init_user(void) { - // leave this function blank - it can be defined in a keymap file -}; - -__attribute__ ((weak)) -void matrix_scan_user(void) { - // leave this function blank - it can be defined in a keymap file -}; - -__attribute__ ((weak)) -void led_set_user(uint8_t usb_led) { - // leave this function blank - it can be defined in a keymap file -}; +#include "led.h" void matrix_init_kb(void) { // put your keyboard start-up code here @@ -26,13 +12,6 @@ void matrix_init_kb(void) { matrix_init_user(); }; -void amatrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - - matrix_scan_user(); -}; - void led_set_kb(uint8_t usb_led) { // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here diff --git a/keyboards/retro_refit/retro_refit.h b/keyboards/retro_refit/retro_refit.h index 77d354703..109acdc39 100644 --- a/keyboards/retro_refit/retro_refit.h +++ b/keyboards/retro_refit/retro_refit.h @@ -1,10 +1,7 @@ #ifndef RETRO_REFIT_H #define RETRO_REFIT_H -#include "matrix.h" -#include "keymap.h" -#include "led.h" -#include +#include "quantum.h" // This macro is an example of using a non-standard row-column matrix. The // keyboard in question had 11 rows and 8 columns, but the rows were not all @@ -38,8 +35,4 @@ { KC_##KA0, KC_##KA1, KC_##KA2, KC_##KA3, KC_##KA4, KC_##KA5, KC_##KA6, KC_##KA7, } \ } -void matrix_init_user(void); -void matrix_scan_user(void); -void led_set_user(uint8_t usb_led); - #endif \ No newline at end of file diff --git a/keyboards/satan/Makefile b/keyboards/satan/Makefile index 0ad71007e..184b5ac37 100644 --- a/keyboards/satan/Makefile +++ b/keyboards/satan/Makefile @@ -1,7 +1,4 @@ - -SRC = led.c - # MCU name #MCU = at90usb1287 MCU = atmega32u4 diff --git a/keyboards/satan/backlight.c b/keyboards/satan/backlight.c deleted file mode 100644 index 4240b0916..000000000 --- a/keyboards/satan/backlight.c +++ /dev/null @@ -1,24 +0,0 @@ - -#include -#include "backlight.h" -#include "print.h" - -void init_backlight_pin(void) { - print("init_backlight_pin()\n"); - // Set our LED pins as output - DDRB |= (1<<6); - - // Set our LED pins low - PORTB &= ~(1<<6); -} - -void backlight_set(uint8_t level) { - if ( level == 0 ) { - // Turn off light - PORTB |= (1<<6); - } else { - // Turn on light - PORTB &= ~(1<<6); - } -} - diff --git a/keyboards/satan/config.h b/keyboards/satan/config.h index aa2dca1a6..a7ea8f904 100644 --- a/keyboards/satan/config.h +++ b/keyboards/satan/config.h @@ -38,6 +38,8 @@ along with this program. If not, see . #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B7, D4, B1, B0, B5, B4, D7, D6, B3 } #define UNUSED_PINS +#define BACKLIGHT_PIN B6 + /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW diff --git a/keyboards/satan/keymaps/default/compiled.hex b/keyboards/satan/keymaps/default/compiled.hex deleted file mode 100644 index cd680d64d..000000000 --- a/keyboards/satan/keymaps/default/compiled.hex +++ /dev/null @@ -1,1543 +0,0 @@ -:100000000C945C070C94A0070C94A0070C94A00718 -:100010000C94A0070C94A0070C94A0070C94A007C4 -:100020000C94A0070C94A0070C942E1A0C94001B9F -:100030000C94FC280C94A0070C94A0070C94A00727 -:100040000C94A0070C94A0070C94A0070C94A00794 -:100050000C94A0070C9464290C94A0070C94A0079E -:100060000C94A0070C94A0070C94A0070C94A00774 -:100070000C94A0070C94A0070C94A0070C94A00764 -:100080000C94CC140C94A0070C94A0070C94A0071B -:100090000C94A0070C94A0070C94A0070C94A00744 -:1000A0000C94A0070C94A0070C94A007B308D308E5 -:1000B0000B09DB08E308EB08F308FB0803096D1BD9 -:1000C0008F1B7D1C8F1B7D1CD41BF71B7D1C4C1CA8 -:1000D0005F1C991F991FC81FC81F0720722172211A -:1000E000722127207221D720D7203E21472172215B -:1000F0006C21E420E420E420E420E420E420E42057 -:10010000E420E420E420E420E420E420E420E420CF -:10011000E420F4200221092110211A2100F001F02D -:1001200002F003F004F005F006F007F008F00020FC -:100130001E001F00200021002200230024002500B3 -:10014000260027002D002E002A002B0014001A0084 -:100150000800150017001C0018000C001200130006 -:100160002F0030003100390004001600070009009C -:100170000A000B000D000E000F00330034000000D9 -:100180002800E10000001D001B000600190005000A -:10019000110010003600370038000000E500E000D4 -:1001A000E300E200000000002C000000000000005E -:1001B0000000E600E7000151E40035000100010005 -:1001C0000100010001000100010001000100010027 -:1001D00001000100007001000100010001000100A8 -:1001E0000100010001000100010001002F703070CA -:1001F0003170010001000100010001000100010057 -:1002000001000100010001000100000001000100E7 -:1002100000000120022003200420052006200720E2 -:1002200008200100010000000100010001000100A0 -:1002300000000000010000000000000000000100BC -:100240000100010001000A44454255473A20656E0D -:1002500061626C65642E0A005374617465206F6678 -:1002600020726F772025583A2025303136620A00F7 -:1002700048756D616E2D7265616461626C65206D9B -:1002800061747269782073746174653A0D0A004470 -:1002900065626F756E63696E672064656C61792055 -:1002A00072656D61696E696E673A2025580A00545F -:1002B000494D4552332064697361626C65642E0A4E -:1002C0000054494D45523320656E61626C65642E61 -:1002D0000A007267626C69676874207365742068CD -:1002E0007376205B454550524F4D5D3A2025752C65 -:1002F00025752C25750A007267626C696768742021 -:10030000746F67676C653A207267626C69676874BE -:100310005F636F6E6669672E656E61626C65203D16 -:100320002025750A007267626C69676874206D6FBA -:1003300064653A2025750A007267626C69676874A3 -:100340005F696E6974207267626C696768745F6365 -:100350006F6E6669672E6D6F6465203D20302E20BC -:1003600057726974652064656661756C7420766186 -:100370006C75657320746F20454550524F4D2E0AA1 -:10038000007267626C696768745F696E6974206582 -:1003900065636F6E666967206973206E6F74206590 -:1003A0006E61626C65642E0A007267626C696768D0 -:1003B000745F696E6974207374617274210A0072CB -:1003C00067626C696768745F696E69742063616CE9 -:1003D0006C65642E0A007267626C696768745F639B -:1003E0006F6E6669672E76616C203D2025640A0079 -:1003F0007267626C696768745F636F6E6669672EA7 -:10040000736174203D2025640A007267626C69671D -:1004100068745F636F6E6669672E687565203D203E -:1004200025640A007267686C696768745F636F6E41 -:100430006669672E6D6F6465203D2025640A007231 -:1004400067626C696768745F636F6E6669672E6563 -:100450006E61626C65203D2025640A007267626CE3 -:10046000696768745F636F6E666967206570726F35 -:100470006D0A006565636F6E6669675F75706461BC -:1004800074655F7267626C696768745F64656661F2 -:10049000756C740A00643214643214783C1E1E14A5 -:1004A0000A0500000000010101020203040505061F -:1004B00007090A0B0C0E0F1112141517191B1D1F1B -:1004C000212325282A2C2F313436393B3E414346FF -:1004D000494C4F5255585A5D6164676A6D70737626 -:1004E000797C7F8386898C8F9295989B9EA2A5A705 -:1004F000AAADB0B3B6B9BCBEC1C4C6C9CBCED0D309 -:10050000D5D7DADCDEE0E2E4E6E8EAEBEDEEF0F1A6 -:10051000F3F4F5F6F8F9FAFAFBFCFDFDFEFEFEFF3A -:10052000FFFFFFFFFFFFFEFEFEFDFDFCFBFAFAF9F9 -:10053000F8F6F5F4F3F1F0EEEDEBEAE8E6E4E2E0EC -:10054000DEDCDAD7D5D3D0CECBC9C6C4C1BEBCB9E8 -:10055000B6B3B0ADAAA7A5A29E9B9895928F8C89A1 -:100560008683807C797673706D6A6764615D5A58A2 -:1005700055524F4C494643413E3B393634312F2C7E -:100580002A282523211F1D1B1917151412110F0EC0 -:100590000C0B0A090706050504030202010101000C -:1005A000000000010102020202020203030303032E -:1005B0000303030303030303030404040404040404 -:1005C00004040404040505050505050505050506DF -:1005D00006060606060606070707070707070808B0 -:1005E000080808080909090909090A0A0A0A0A0B78 -:1005F0000B0B0B0B0C0C0C0C0C0D0D0D0D0E0E0E35 -:100600000E0F0F0F101010101111111212121313E0 -:100610001314141415151616161717181819191976 -:100620001A1A1B1B1C1C1D1D1E1E1F2020212122EF -:1006300023232424252626272828292A2B2B2C2D42 -:100640002E2F30303132333435363738393A3B3C5F -:100650003D3E3F40414244454647494A4B4C4E4F40 -:100660005152535556585A5B5D5E606263656769C7 -:100670006B6D6E70727476797B7D7F818486888BDA -:100680008D909295979A9D9FA2A5A8ABAEB1B4B755 -:10069000BABEC1C4C8CBCFD3D6DADEE2E6EAEEF208 -:1006A000F8FF5B735D004B6579626F617264207364 -:1006B000746172742E0A005B575D005B535D005BD2 -:1006C000525D005B445D005B435D000A03470048E8 -:1006D000003600300000000C03530041005400417C -:1006E000004E000000040309040902740004010024 -:1006F000A0FA090400000103010100092111010011 -:10070000012240000705810308000A0904010001D5 -:1007100003000000092111010001223600070582B3 -:100720000308000A09040200020300000009211165 -:1007300001000122200007058303200001070503B3 -:100740000320000109040300010300000009211136 -:100750000100012239000705840310000112011075 -:100760000100000008EDFE606003000102000105C9 -:10077000010906A101050719E029E71500250195E2 -:100780000875018102050819012905950575019172 -:1007900002950175039101050719002977150025B8 -:1007A00001957875018102C00631FF0974A1010924 -:1007B00075150025FF95207508810209761500251D -:1007C000FF952075089102C005010980A1018502ED -:1007D00016010026B7001A01002AB700751095010E -:1007E0008100C0050C0901A1018503160100269CAA -:1007F000021A01002A9C02751095018100C00501B2 -:100800000906A101050719E029E71500250195084A -:1008100075018102950175088101050819012905F5 -:100820009505750191029501750391010507190060 -:1008300029FF150026FF00950675088100C00A00F3 -:100840002530325820006B6579626F6172645F7287 -:1008500065706F72743A20004B6579626F617264E3 -:10086000204C4544732073746174653A2025780ADE -:100870000064656C5F6B65795F6269743A206361DF -:100880006E27742064656C3A20253032580A006166 -:1008900064645F6B65795F6269743A2063616E2797 -:1008A00074206164643A20253032580A00646F6E07 -:1008B000652E0A00626F6F676D61676963207363FD -:1008C000616E3A202E2E2E20003F00433E20004C29 -:1008D00025640A0074696D65725F636F756E743AA2 -:1008E000202530346C580A006B6579626F61726440 -:1008F0005F6E6B726F3A2025580A006B6579626FE4 -:100900006172645F69646C653A2025580A006B6502 -:1009100079626F6172645F70726F746F636F6C3A4B -:100920002025580A00686F73745F6B6579626F6188 -:1009300072645F6C65647328293A2025580A000A9E -:10094000092D20537461747573202D0A00474343A9 -:100950003A20342E392E32204156522D4C494243F2 -:100960003A20312E382E31204156525F41524348B1 -:100970003A20617672350A004F5054494F4E533A2F -:10098000204C55464120424F4F544D41474943204A -:1009900045585452414B455920434F4E534F4C45B7 -:1009A00020434F4D4D414E44204E4B524F2034304A -:1009B00039360A004255494C443A2036386662635B -:1009C00032632D6469727479202831313A35383AAE -:1009D0003034204A756E2032312032303136290AC7 -:1009E000005649443A2030784645454428534154FE -:1009F000414E29205049443A20307836303630284C -:100A00004748363029205645523A20307830303029 -:100A1000330A00444553433A20514D4B206B6579CE -:100A2000626F617264206669726D776172652066BB -:100A30006F7220536174616E2047483630207769A9 -:100A400074682057533238313220737570706F726A -:100A5000740A000A092D2056657273696F6E202D85 -:100A60000A000A092D20436F6E736F6C65202D0AF2 -:100A70004553432F713A09717569740A000A092DAB -:100A8000204D61676963202D0A443A094465627507 -:100A900067204D65737361676520546F67676C6588 -:100AA0000A583A094D617472697820446562756725 -:100AB000204D6F646520546F67676C65202D20534F -:100AC000686F77206B6579707265737365732069E1 -:100AD0006E206D617472697820677269640A4B3A9E -:100AE000094B6579626F61726420446562756720A5 -:100AF000546F67676C65202D2053686F77206B6596 -:100B0000797072657373207265706F72740A4D3AF2 -:100B1000094465627567204D6F75736520546F6772 -:100B2000676C650A563A0956657273696F6E0A53A7 -:100B30003A095374617475730A433A0941637469DD -:100B40007661746520436F6E736F6C65204D6F64C2 -:100B5000650A46312D4631303A0953776974636826 -:100B600020746F204C6179657220302D3920284621 -:100B70003130203D204C30290A302D393A09537745 -:100B80006974636820746F204C6179657220302D20 -:100B9000390A4553433A0953776974636820746F7F -:100BA000204C6179657220302028616C7465726E0A -:100BB000617465206B65792031290A475241564599 -:100BC0003A0953776974636820746F204C617965C2 -:100BD0007220302028616C7465726E617465206BC0 -:100BE00065792032290A50415553453A094A756DB5 -:100BF0007020746F20426F6F746C6F616465722037 -:100C0000285265736574290A453A095072696E74F1 -:100C100020454550524F4D2053657474696E67737B -:100C20000A4E3A094E4B524F20546F67676C650A63 -:100C3000000A002575002E6C6576656C3A20000A66 -:100C4000002575002E656E61626C653A20000A0011 -:100C500025303258006261636B6C696768745F634A -:100C60006F6E6669672E7261773A20000A002575FB -:100C7000002E6E6B726F3A20000A002575002E73ED -:100C80007761705F6261636B736C6173685F6261EF -:100C9000636B73706163653A20000A002575002E4E -:100CA000737761705F67726176655F6573633A2021 -:100CB000000A002575002E6E6F5F6775693A200087 -:100CC0000A002575002E737761705F72616C745F26 -:100CD000726775693A20000A002575002E737761E6 -:100CE000705F6C616C745F6C6775693A20000A0014 -:100CF0002575002E636170736C6F636B5F746F5F3B -:100D0000636F6E74726F6C3A20000A002575002EB6 -:100D1000737761705F636F6E74726F6C5F63617025 -:100D2000736C6F636B3A20000A0025303258006BF9 -:100D300065796D61705F636F6E6669672E7261774A -:100D40003A20000A002575002E6D6F7573653A20F4 -:100D5000000A002575002E6B6579626F6172643A36 -:100D600020000A002575002E6D61747269783A20A2 -:100D7000000A002575002E656E61626C653A2000E0 -:100D80000A00253032580064656275675F636F6ED4 -:100D90006669672E7261773A20000A002575006443 -:100DA000656661756C745F6C617965723A20003FAD -:100DB000004E4B524F3A206F66660A004E4B524F20 -:100DC0003A206F6E0A000A6D6F7573653A206F6680 -:100DD000660A000A6D6F7573653A206F6E0A000A25 -:100DE0006B6579626F6172643A206F66660A000A09 -:100DF0006B6579626F6172643A206F6E0A000A6DEA -:100E000061747269783A206F66660A000A6D6174CF -:100E10007269783A206F6E0A000A64656275673AF3 -:100E2000206F66660A000A64656275673A206F6E15 -:100E30000A000A0A4A756D70696E6720746F206235 -:100E40006F6F746C6F616465722E2E2E2000433EAE -:100E500020006565636F6E6669673A0A00626163C8 -:100E60006B6C6967687420737465703A2025750A25 -:100E7000006261636B6C6967687420746F67676C8C -:100E8000653A2025750A006261636B6C6967687456 -:100E90002064656372656173653A2025750A006296 -:100EA00061636B6C6967687420696E6372656173F6 -:100EB000653A2025750A000011241FBECFEFDAE045 -:100EC000DEBFCDBF04B603FE24C080912002909106 -:100ED0002102A0912202B09123028730904BA740BB -:100EE000B04BB9F41092200210922102109222020B -:100EF0001092230214BE84B7877F84BF88E10FB6A7 -:100F0000F89480936000109260000FBEE0E0F8E378 -:100F1000099511E0A0E0B1E0E0E2F0E602C0059042 -:100F20000D92A833B107D9F712E0A8E3B1E001C0F0 -:100F30001D92A032B107E1F70E946C170C940E309D -:100F40000C940000FF93EF93E0913801F091390188 -:100F5000309709F00995EF91FF910895FC01859173 -:100F6000803011F0EFDFFBCF0895FF27E0E230E2A1 -:100F700047FF0CC0419597FF09C0EDE26095709561 -:100F800080959095611D711D811D911D27FF02C0E7 -:100F9000219530E350E2AA27660F771F881F991F1B -:100FA000AA1FA41710F0A41B63955A95A9F7AA309D -:100FB00008F0A95FA05DAF93F395611571058105F8 -:100FC000910541F7ED3211F4EF93F395F21718F410 -:100FD0003F93F395FBCF8F91B5DFFA95E1F7089535 -:100FE000E991F9918591803021F0853219F0AADFDD -:100FF000F9CF089520E0E89455915532C1F350336C -:1010000011F4689455915A3348F4505390F3220FD9 -:10101000022E220F220F200D250FF4CF0EF4219562 -:1010200089919991533619F3533729F1533559F171 -:10103000BC0188279927E8945C3621F4899199911D -:1010400068945591543639F446EF7EF077FF0DC021 -:101050008FEF9FEF0AC055374AE039F0583540E12D -:1010600021F0523642E009F00895FF93EF937DDFBF -:10107000EF91FF91B7CFFF93EF93FC018191803007 -:10108000B9F360DFFBCFFF93EF9368DFF1CFDF931E -:10109000CF93CDB7DEB72596A3DFCF91DF9108952B -:1010A000229A089581FF02C02A9A08952A980895E5 -:1010B00008950895269A2E988FEF9FEF90938700BA -:1010C0008093860082E28093800089E18093810092 -:1010D0000C94A92E282F2E9880918000211108C0F1 -:1010E0008F7D8093800010928B0010928A0008956B -:1010F000806280938000243019F48FEF9FEF0FC03F -:1011000084E090E0821B9109880F991F2FEF3FEF39 -:10111000A90102C0569547958A95E2F7CA019093B6 -:101120008B0080938A00089588E598E0892B11F060 -:101130000E9458080E9450080C945A0889E598E0CB -:10114000892B11F00C9459080895CF93DF93DC019B -:10115000462F50E04930510508F065C0FA01EA5ABF -:10116000FF4F0C94C02FEC010E94F92782728093EC -:101170003A019A81992369F0882319F085E390E078 -:1011800002C089E290E00E945127DF91CF910C9438 -:101190004328882319F085E390E002C089E290E0BB -:1011A0000E94A427F2CF12968C918823E1F1DF915F -:1011B000CF910C94721212968C918823A1F1DF9139 -:1011C000CF910C94DE1012968C91882361F1DF91FF -:1011D000CF910C94F61012968C91882321F1DF9117 -:1011E000CF910C94151112968C918823E1F0DF9128 -:1011F000CF910C94301112968C918823A1F0DF913D -:10120000CF910C944A1112968C91882361F0DF9152 -:10121000CF910C94651112968C91882321F0DF9167 -:10122000CF910C946812DF91CF91089581E00895D9 -:1012300081E008950C94180908950F931F93CF939C -:10124000DF938C01FC01C081D181CE010E94D226A6 -:10125000BE010E94540CEC01B8010E941A098823B7 -:1012600009F474C1F8018281882309F45BC080917C -:10127000460181111FC0C431F0E7DF0709F00AC140 -:101280000E941C0981E0809346010E942E299093C0 -:1012900045018093440110923D0110923F0110924C -:1012A0003E011092410110924001109243011092B0 -:1012B00042014CC180914401909145010E943A291C -:1012C000883C910570F480913D01E82FF0E0EE0F2D -:1012D000FF1FE25CFE4FD183C0838F5F80933D018F -:1012E00035C1C43120E7D20708F028C1C23080E7F9 -:1012F000D80710F5C11590E7D90709F0DAC0F80151 -:101300008281882309F4BFC00E94D921FFEF24E322 -:101310008CE0F15020408040E1F700C000000E94C6 -:10132000892914C1C431F0E7DF0708F0D3C0C23007 -:1013300020E7D20708F49BC0F8018281882309F4D2 -:10134000A2C00E944A2B811102C00E942B2B0E9436 -:10135000672B90E09093F1018093F001C230F0E7A9 -:10136000DF0721F48091F00181607AC0C33020E76B -:10137000D20721F48091F001826072C0C43080E70E -:10138000D80721F48091F00184606AC0C53090E7ED -:10139000D90719F48091F00127C0C630E0E7DE07D5 -:1013A00021F48091F00180615BC0C730F0E7DF0776 -:1013B00021F48091F001806253C0C83020E7D20749 -:1013C00021F48091F00180644BC0C93080E7D807D8 -:1013D00021F48091F001806843C0CA3090E7D907BA -:1013E00029F48091F001846088603AC0CB30E0E756 -:1013F000DE0721F48091F0018E7F32C0CC30F0E71F -:10140000DF0721F48091F0018D7F2AC0CD3020E7E5 -:10141000D20721F48091F0018B7F22C0CE3080E78B -:10142000D80719F48091F0011AC08091F001CF30F3 -:1014300090E7D90711F48F7E13C0C031E0E7DE07D3 -:1014400011F48F7D0DC0C131F0E7DF0711F48F7B00 -:1014500007C0C231D04711F48F7702C08B7F877FDE -:101460008093F0018091F0010E946B2B6FC0C11539 -:1014700080E7D80741F0C130D047F1F081E0809398 -:101480003B0180933C01C801DF91CF911F910F91E7 -:101490000C941609C43120E7D20708F04FC0C230BF -:1014A00080E7D80708F048CFC11590E7D90709F4BD -:1014B0002BCFC130D04711F7F8018281882319F36F -:1014C00086E492E00E94AE078091E90181608093FA -:1014D000E9013CC0C333E0E7DE07A1F4F8018281F3 -:1014E000882321F010923B0182E017C080913B01DC -:1014F000811106C086E20E943D1E86E20E94051F01 -:1015000082E019C0C433D04709F0B8CFF801828116 -:10151000882331F010923C0180E20E94541F16C0D3 -:1015200080913C01811106C087E20E943D1E87E246 -:101530000E94051F80E20E945B1F08C0C333F0E7D2 -:10154000DF0761F2C433D04709F398CF80E0DF9121 -:10155000CF911F910F9108950C9494080C949E08BC -:101560002EE0729FF001112436E4839FE00DF11DFF -:101570001124E60FF11DEE0FFF1FE25DFE4F859176 -:1015800094910E94660C811540E5940708F047C0CD -:10159000811520E4920708F013C1883E910520F5DB -:1015A000803E910508F07CC1883A910578F4853A2F -:1015B000910508F0A5C08130910509F471C108F4C6 -:1015C0002EC18430910508F06BC129C18B3B910578 -:1015D00008F4A1C0803C910508F421C1FC01EE0F84 -:1015E000FF1FE456F040E6C0811530E2930758F43F -:1015F000811541E0940708F053C1803F910508F43C -:101600000EC190650895811520E3920708F0D5C0BA -:10161000FC01FF70EE0FFF1FE45EFE4FCBC0811593 -:1016200035E5930708F043C0811544E5940708F0B9 -:10163000DEC0811522E5920708F5811531E5930793 -:1016400008F0C1C0482F437021E030E002C0220FF3 -:10165000331F4A95E2F73C68AC0164E05695479524 -:101660006A95E1F74370342B8F708695869540E23A -:10167000849FC0011124822B932B0895282F269537 -:101680002695AC01437055278115934508F0A0C0FD -:1016900080E2289F9001112481E090E002C0880F31 -:1016A000991F4A95E2F7822B932B9C6808958F32FD -:1016B00040E7940790F48F3120E7920708F0A2C02A -:1016C000811536E5930708F497C09C013056211523 -:1016D000304108F0A4C09F7093C0803320E7920788 -:1016E00009F497C008F492C0813340E7940709F4E5 -:1016F00093C08233904709F092C080E093ED089543 -:10170000853A910509F48EC0863A910509F08DC09D -:1017100082E890E40895883A910509F489C0893AED -:10172000910509F488C08A3A910509F487C08B3A7B -:10173000910509F486C08C3A910509F485C08D3A6B -:10174000910509F484C0803B910509F483C08E3A69 -:10175000910509F482C08F3A910509F481C0813B5B -:10176000910509F480C0823B910509F47FC0833B59 -:10177000910509F47EC0843B910509F47DC0853B49 -:10178000910509F47CC0863B910509F47BC0873B39 -:10179000910509F47AC0883B910509F479C0893B29 -:1017A000910509F478C08A3B910509F477C080E07F -:1017B00094E408958591949108959927906C0895E3 -:1017C0009F70906A0895982F8827816F906A089576 -:1017D00090E2299F9001112481E090E002C0880FDF -:1017E000991F4A95E2F7822B932B9A680895982FB8 -:1017F0008827846F906A08958F719927982F88277A -:10180000906208958F519047946D089580E091ED16 -:10181000089580E090ED089580E092ED089580E0D5 -:1018200090E0089581E890E4089583E890E40895B5 -:1018300082EE94E4089589EE94E408958AEE94E4A7 -:10184000089585EB94E4089586EB94E4089587EB7E -:1018500094E408958CEC94E408958DEC94E4089558 -:1018600083E895E408958AE895E4089582E995E48B -:10187000089584E995E4089581E296E4089583E269 -:1018800096E4089584E296E4089585E296E4089546 -:1018900086E296E4089587E296E408958AE296E463 -:1018A000089580E090E008959EE0799FF001112472 -:1018B00096E4899FE00DF11D1124E60FF11DEE0F56 -:1018C000FF1FE25DFE4F8591949108958238910546 -:1018D00049F1B0F48133910509F458C048F48932D4 -:1018E000910509F44EC08A32910509F454C0089557 -:1018F0008533910509F440C08933910599F0089525 -:10190000833E910529F138F4803E910591F0823EA5 -:101910009105A1F00895863E9105F9F0873E910565 -:1019200031F108952091F00120FD3AC021FD38C029 -:1019300008958091F00180FD35C032C08091F001A2 -:1019400082FF32C08091F00184FD30C083EE39C047 -:101950008091F00182FD28C0F5CF8091F00183FFD6 -:1019600027C08091F00184FD21C087EE2AC08091BC -:10197000F00183FD1DC0F5CF8091F00185FD1AC0F7 -:101980001BC08091F00185FD17C014C08091F0014B -:1019900086FD14C015C08091F00186FD11C00EC0F7 -:1019A00080EE0FC089E30DC082EE0BC080E009C05D -:1019B00086EE07C089E205C085E303C08AE201C064 -:1019C00081E390E008950C945208E82FF0E0E25E85 -:1019D000FE4F8081E82FEF70F0E082958F7021E05C -:1019E00030E0A90102C0440F551F8A95E2F740A3D9 -:1019F00008950F931F93CF93DF93C4E0D0E001E0ED -:101A000010E0FE01E25EFE4F8081E82FEF70F0E013 -:101A100021A182958F70A80102C0440F551F8A959D -:101A2000E2F7CA01822B81A38C2F0E94E50C21973B -:101A300040F78DE090E061E070E0FC01E05FFE4F78 -:101A40002081E22FEF70F0E042A122952F70DB01A0 -:101A500002C0AA0FBB1F2A95E2F79D01242B22A3E7 -:101A6000019758F7DF91CF911F910F9108950F9330 -:101A70001F93CF93DF9385B7806885BF85B7806854 -:101A800085BFC4E0D0E001E010E0FE01E25EFE4F61 -:101A90008081E82FEF70F0E021A182958F70A8017E -:101AA00002C0440F551F8A95E2F7CA01822B81A319 -:101AB0008C2F0E94E50C219740F78DE090E061E0CB -:101AC00070E0FC01E05FFE4F2081E22FEF70F0E05C -:101AD00042A122952F70DB0102C0AA0FBB1F2A95DD -:101AE000E2F79D01242B22A3019758F7DF91CF91B4 -:101AF0001F910F910C94AC0AEF92FF920F931F93DA -:101B0000CF93DF9301E511E0C4E0EE24E394F12CE0 -:101B1000D5E08C2F0E94E50C8DE090E040E050E095 -:101B2000FC01E05FFE4F6081E62FEF70F0E020A146 -:101B300030E062956F7002C0359527956A95E2F79F -:101B400020FD09C09701082E02C0220F331F0A94FE -:101B5000E2F7422B532B019718F7F80192918291EB -:101B60008F018417950721F051834083D0930001A2 -:101B70008C2F0E94E50CC15060F68091000187FD1A -:101B800035C09091E90190FF10C0282F332727FD21 -:101B900030953F938F938FE892E09F938F930E94AD -:101BA00047080F900F900F900F9080910001815087 -:101BB0008093000187FD07C08FE99FE00197F1F74F -:101BC00000C0000013C080E090E0FC01EF5AFE4F1F -:101BD000DC01A95BBE4F18962D913C911997318776 -:101BE00020870297863FEFEF9E0779F70E94AE0AA3 -:101BF00081E0DF91CF911F910F91FF90EF900895B9 -:101C0000E82FF0E0EE0FFF1FEF5AFE4F8081918129 -:101C10000895EF92FF920F931F93CF93DF938091DC -:101C2000E90180FF04C080E792E00E94AE0701E571 -:101C300011E0C0E0D0E088E5E82E82E0F82E809147 -:101C4000E90180FF13C0F801808191810E949928E9 -:101C50009F938F93DF93CF93FF92EF920E94470859 -:101C60000F900F900F900F900F900F9021960E5F96 -:101C70001F4FC530D10519F7DF91CF911F910F91FB -:101C8000FF90EF9008950F931F93CF930BE511E012 -:101C9000C0E0F801929182918F010E947728C80FCD -:101CA000F1E001351F07A9F78C2FCF911F910F91FC -:101CB00008952EB1342F309523233EB1432B3FB7E7 -:101CC000F894FC01680F791FE617F70789F08191F6 -:101CD00098E04EB9000000C087FF2EB9880F0000C1 -:101CE00000C000C000C02EB900C09A9591F7ECCF9B -:101CF0003FBF08952DB1242B2DB99B01220F331F17 -:101D0000620F731F0E94590E87EC90E00197F1F764 -:101D100000C00000089544E00C947A0EAF92BF9288 -:101D2000CF92DF92EF92FF920F931F93CF93DF93A7 -:101D30006C01790150E0FA01EE55FA4F44918FEFB2 -:101D400090E0FC01E61BF109EE55FA4FE491E095B5 -:101D500009F495C0C42FD0E08E1B91098C9F90018F -:101D60008D9F300D9C9F300D1124E32F8CE3A82E06 -:101D7000B12CC601B5010E94982FDC0162307105BB -:101D800009F446C0D0F46115710599F1613071050F -:101D900009F079C0C31BD109B501681B790BC69F37 -:101DA000C001C79F900DD69F900D1124B5010E94D0 -:101DB000982F032F060F142F67C06430710509F4A4 -:101DC0004BC0B8F16530710509F05DC0C31BD10986 -:101DD000B501681B790BC69FC001C79F900DD69FA8 -:101DE000900D1124B5010E94982F132FE32FE60FB9 -:101DF00044C0C31BD109CC9DC001CD9D900DDC9D7D -:101E0000900D1124B5010E94982F132F160F35C085 -:101E1000C31BD109CA9FC001CB9F900DDA9F900DC3 -:101E20001124B5010E94982F142F032FE32FE60FE2 -:101E30002BC0C31BD109B501681B790BC69FC0011C -:101E4000C79F900DD69F900D1124B5010E94982F29 -:101E5000132F160F032F0FC0C31BD109CA9FC00138 -:101E6000CB9F900DDA9F900D1124B5010E94982F01 -:101E7000032F060F132FE42F07C0042F05C0E42FF4 -:101E8000142F042F01C0E0E0D70111960C93119795 -:101E90001C931296EC93DF91CF911F910F91FF90BD -:101EA000EF90DF90CF90BF90AF90089587E090E0E3 -:101EB0000C94CE2FAB01BC0187E090E00C94EC2F8A -:101EC0008091E90180FF08C083E794E09F938F939E -:101ED0000E9447080F900F9083E08093F201809159 -:101EE000F301807884668F778093F3018CEC809384 -:101EF000F4018093F5016091F2017091F3018091FA -:101F0000F4019091F5010C945A0F8091E90180FF42 -:101F100008C08CE594E09F938F930E9447080F9030 -:101F20000F908091E90180FF0FC08091F2018170D4 -:101F30001F928F938FE394E09F938F930E944708A3 -:101F40000F900F900F900F908091E90180FF10C0CB -:101F50008091F20186958F731F928F9384E294E0B3 -:101F60009F938F930E9447080F900F900F900F90B0 -:101F70008091E90180FF19C08091F201881F8827B4 -:101F8000881F9091F301292F220F822B97FB99270D -:101F900090F99F938F938AE094E09F938F930E9490 -:101FA00047080F900F900F900F908091E90180FFEC -:101FB0000EC08091F4011F928F9380EF93E09F9366 -:101FC0008F930E9447080F900F900F900F90809171 -:101FD000E90180FF0EC08091F5011F928F9386ED7D -:101FE00093E09F938F930E9447080F900F900F905C -:101FF0000F9008958091F20180FF06C068E070E0C4 -:102000008AEF91E00C948B0E80E090E0FC01E650AA -:10201000FE4F118210821282039688319105B1F72A -:10202000EDCF20E030E0F901E650FE4F8183608380 -:1020300042832D5F3F4F28313105A9F70C94FA0FE9 -:10204000EF92FF920F931F93CF93DF9300D01F92D5 -:10205000CDB7DEB70091F2011091F3012091F401A8 -:102060003091F5010093F6011093F7012093F801E8 -:102070003093F9012091F20120FF21C0042FF62EA8 -:10208000E92E182F9E012F5F3F4F0E948E0E8091E8 -:10209000F60110FB87F98093F60116958091F70100 -:1020A0008078182BE0FA17F91093F701F092F801F5 -:1020B0000093F9014B8169818A810E9411100F9070 -:1020C0000F900F90DF91CF911F910F91FF90EF90A4 -:1020D00008950F931F93CF93DF93EC01062F142FD6 -:1020E0009091F20190FF65C0892F8E77823021F4A4 -:1020F000CE010E9420101BC0892F86958F732EE37E -:10210000280F2F73243018F41091F50110C0865C4D -:102110008F73893060F4C92FCC1FCC27CC1FD0918E -:10212000F3018D2F880FC82BD7FBDD27D0F98091C5 -:10213000F201C0FB87F98093F201C6958091F3010B -:102140008078C82BD0FBC7F9C093F3010093F4014A -:102150001093F5016091F2017091F3018091F40107 -:102160009091F5010E945A0F8091F5011F928F9373 -:102170008091F4011F928F938091F201881F88272C -:10218000881F9091F301292F220F822B97FB99270B -:1021900090F99F938F9382ED92E09F938F930E948B -:1021A00047088DB79EB708960FB6F8949EBF0FBE2E -:1021B0008DBFDF91CF911F910F910895E2EFF1E074 -:1021C0002081221F2227221F3091F301432F440F29 -:1021D000842F822B37FB992790F90A9668E671E0E5 -:1021E0000E94AC2F438162810C9469102091F2010E -:1021F000221F2227221F3091F301432F440F842FE7 -:10220000822B37FB992790F98A3091051CF4825A6A -:102210009E4F01C00A9768E671E00E94AC2F409182 -:10222000F5016091F4010C9469106091F401862F1E -:1022300090E08F3E910514F46F5E01C06FEF8091C6 -:10224000F201881F8827881F9091F301292F220F00 -:1022500097FB992790F94091F501822B0C94691016 -:102260006091F401862F90E0419714F0615101C014 -:1022700060E08091F201881F8827881F9091F30108 -:10228000292F220F97FB992790F94091F501822B76 -:102290000C9469104091F501842F90E08F3E9105D8 -:1022A00014F44F5E01C04FEF8091F201881F882720 -:1022B000881F9091F301292F220F97FB992790F9FE -:1022C0006091F401822B0C9469104091F501842FE8 -:1022D00090E0419714F0415101C040E08091F2013B -:1022E000881F8827881F9091F301292F220F97FBC1 -:1022F000992790F96091F401822B0C9469108091D8 -:102300006C0181110FC081E080936C0189E08093A2 -:1023100091008FB7F89493E09093990090ED90938B -:1023200098008FBF08958091710082608093710042 -:102330008091E90180FF08C081EC92E09F938F9328 -:102340000E9447080F900F900895809171008D7F33 -:10235000809371008091E90180FF08C08FEA92E0CC -:102360009F938F930E9447080F900F90089590912C -:10237000F20190FF4BC09178811102C0926007C0BA -:10238000883110F09E6203C08F73880F982B909352 -:10239000F2016091F2017091F3018091F40190914A -:1023A000F5010E945A0F8091F20186958F731F925A -:1023B0008F9385E293E09F938F930E9447088091CB -:1023C000F201982F9E770F900F900F900F90923000 -:1023D00019F40E94A51107C08695825C8F7386311F -:1023E00010F40E9493118091F201881F8827881FA2 -:1023F0009091F301292F220F97FB992790F9409193 -:10240000F5016091F401822B0C946910089580917C -:10241000E90181608093E9018FEB93E09F938F93B3 -:102420000E94470881E080936D018091E9010F903F -:102430000F9080FF08C089EA93E09F938F930E94DA -:1024400047080F900F900E944A2B811110C0809175 -:10245000E90180FF08C081E893E09F938F930E9479 -:1024600047080F900F900E942B2B0E94600F0E9434 -:10247000560F6093F2017093F3018093F4019093EF -:10248000F5016E77C1F48091E90180FF08C088E30F -:1024900093E09F938F930E9447080F900F900E94A4 -:1024A000600F0E94560F6093F2017093F3018093C6 -:1024B000F4019093F5010E94850F0E947F11809195 -:1024C000F20180FF04C086958F730C94B7110895B4 -:1024D0008091F20186958F738F5F883108F081E0DB -:1024E0000C94B7118091F201982F909590FB80F990 -:1024F0008093F2016091F2017091F3018091F401F7 -:102500009091F5010E945A0F8091F20181701F9203 -:102510008F9387EF92E09F938F930E94470880915B -:10252000F2010F900F900F900F9080FF04C08695DE -:102530008F730C94B7110E94A5112FEF80E792E0E2 -:10254000215080409040E1F700C000000C94FA0F49 -:10255000CF93C82F80916A0190916B010E943A2914 -:10256000EC2FF0E0E256FB4FE491F0E08E179F076E -:1025700018F10E942E2990936B0180936A01E091DB -:102580006901F0E0EE55FB4F44918091F201881F04 -:102590008827881F9091F301292F220F97FB9927F5 -:1025A00090F96091F401822B0E94201080916901C2 -:1025B00090E0019680936901CF910895CF93C82F41 -:1025C00080916701909168010E943A29EC2FF0E018 -:1025D000E556FB4FE491F0E08E179F07E8F00E946C -:1025E0002E2990936801809367014091F5016091D5 -:1025F000F40180916501909166010E942010809104 -:10260000650190916601019668E671E00E94982F3D -:102610009093660180936501CF910895CF92DF92E8 -:10262000FF920F931F93CF93DF93F82E8091630156 -:10263000909164010E943A29EF2DE695F0E0E5566D -:10264000FB4FE491F0E08E179F07E8F10E942E29DE -:1026500090936401809363010AEF11E0C0E0D0E041 -:1026600088E6C82EDD24D3948091610190916201A7 -:102670008C0F9D1FB6010E94982F98014091F50183 -:102680006091F4010E948E0EAD960D5F1F4FC8360B -:1026900081E0D80749F70E94FA0F2091610130913B -:1026A0006201F0FE0AC0C9010196BE010E94982F86 -:1026B000909362018093610106C0215031093093EB -:1026C000620120936101DF91CF911F910F91FF90E3 -:1026D000DF90CF9008958F929F92AF92BF92CF924A -:1026E000DF92EF92FF920F931F93CF93DF93C82F48 -:1026F00080FF03C0DD24DA9402C0DD24D3948091EE -:102700005F01909160010E943A29C695EC2FF0E09C -:10271000E856FB4FE491F0E08E179F0708F466C07F -:102720000E942E299093600180935F019AEFE92E19 -:1027300091E0F92E0CEF11E0C0E0D0E027E0822E0E -:10274000912CF80131971082F7011082F801108264 -:1027500087E0A82EB12CC12C80915E018C0D87FDE5 -:10276000885F992787FD9095C817D907E9F42091CC -:10277000F5012A9DC0012B9D900D1124B4010E94EA -:10278000AC2F462F8091F201881F8827881F9091D7 -:10279000F301592F550F97FB992790F997016091F5 -:1027A000F401852B0E948E0ECD0CF1E0AF1AB1081A -:1027B00099F6219683E0E80EF11C0D5F1F4FC8309B -:1027C000D10509F0BECF0E94FA0F80915E0191E021 -:1027D000D91206C0811102C087E006C0815004C032 -:1027E00090E001968770992780935E01DF91CF91E9 -:1027F0001F910F91FF90EF90DF90CF90BF90AF901F -:102800009F908F9008959F92AF92BF92CF92DF9248 -:10281000EF92FF920F931F93CF93DF93CDB7DEB765 -:1028200068970FB6F894DEBF0FBECDBF182F80910A -:102830005C0190915D010E943A29E12FF0E0EB5696 -:10284000FB4FE491F0E08E179F0708F493C00E94BD -:102850002E2990935D0180935C01CE0101967C014D -:102860005E0193E0A90EB11CC12CD12C8701F501AA -:1028700031971082F7011082F5011082912C90910E -:10288000010180915B01999E800D112487FD04C098 -:1028900088301CF087E001C080E0992787FD909583 -:1028A000C816D906A1F48091F201881F8827881FD5 -:1028B0009091F301592F550F97FB992790F99701A4 -:1028C0004091F5016091F401852B0E948E0E939446 -:1028D000F7E09F12D4CF8FEFC81AD80A93E0E90E21 -:1028E000F11CE3E0AE0EB11CF8E0CF16D10409F004 -:1028F000BECFACEFB1E089E090E0FC01E770FF27CC -:102900009D0121503109AF01440F551FE40FF51F00 -:10291000BF01600F711FFB014181F901408321500C -:102920003109FB014081F9014083FB0122812C9395 -:10293000019613968131910501F70E94FA0F90914B -:10294000010180915B01913049F48A3F2CF489EFB9 -:1029500080935B018FEF08C081500AC08F303CF03C -:102960008EE080935B0181E08093010103C08F5F63 -:1029700080935B0168960FB6F894DEBF0FBECDBFA3 -:10298000DF91CF911F910F91FF90EF90DF90CF904B -:10299000BF90AF909F9008951F920F920FB60F9225 -:1029A00011242F933F934F935F936F937F938F9354 -:1029B0009F93AF93BF93EF93FF938091F20186951E -:1029C0008F739EE3980F9F73943020F482500E947F -:1029D000A81223C09AE3980F9F73933020F4865077 -:1029E0000E94DE121AC097E3980F9F73963020F46E -:1029F00089500E940E1311C091E3980F9F73963077 -:102A000020F48F500E946B1308C09BE2980F9F73B5 -:102A1000933018F485510E940314FF91EF91BF91F8 -:102A2000AF919F918F917F916F915F914F913F9166 -:102A30002F910F900FBE0F901F90189580918101DC -:102A4000089508959FB7F894109270019FBF9091D8 -:102A50001602943009F057C09091E9009F703091B0 -:102A6000EC00232F217030FD20E8922B23E02093EF -:102A7000E9002091EB0020FF43C02091EE0027FFEA -:102A80003FC020916E01222321F02091E80025FF14 -:102A900037C010926E0126E03091E80035FD15C078 -:102AA00030911602343061F53091EB0035FD28C0CD -:102AB000215021F481E080936E0122C0EFE9FFE014 -:102AC0003197F1F700C00000E7CF8093F1008091CB -:102AD000E80085FD0AC08091E80080FFFCCF80916E -:102AE000E8008E778093E80006C08FB7F89421E065 -:102AF000209370018FBF9F709093E90080E008954C -:102B00009F709093E9008FEF0895CF93DF9300D0EB -:102B10001F92CDB7DEB720911602243021F523E0B5 -:102B200029839B838A8382E08093E9008FEF9091D1 -:102B3000E800815095FD06C095ED9A95F1F70000EB -:102B40008111F5CF8091E80085FF0DC040E050E095 -:102B500063E070E0CE0101960E941E188091E800AB -:102B60008E778093E8000F900F900F90DF91CF91B8 -:102B70000895CF93DF9300D01F92CDB7DEB79C01AD -:102B800080911602843019F592E099833B832A8361 -:102B90009093E9008FEF9091E800815095FD06C079 -:102BA00095ED9A95F1F700008111F5CF8091E8003D -:102BB00085FF0DC040E050E063E070E0CE0101967B -:102BC0000E941E188091E8008E778093E8000F9095 -:102BD0000F900F90DF91CF910895CF93DF93EC0189 -:102BE00090911602943009F046C080910C01882320 -:102BF000D9F080910D018823B9F09093E9008FEF0F -:102C00009091E800815095FD06C095E19A95F1F705 -:102C100000008111F5CF8091E80085FF2CC040E0D5 -:102C200050E060E170E017C081E08093E9008FEF31 -:102C30009091E800815095FD06C095ED9A95F1F7C9 -:102C400000008111F5CF8091E80085FF14C040E0BD -:102C500050E068E070E0CE010E941E188091E8000C -:102C60008E778093E80080E1FE01A1E7B1E001905A -:102C70000D928A95E1F7DF91CF91089587EC96E068 -:102C80000E94AE0780911502811109C00E94B319FC -:102C90000E94101A8091E20084608093E2000895FF -:102CA00083EC96E00E94AE071092150208958FEB18 -:102CB00096E00C94AE078BEB96E00C94AE0787EB96 -:102CC00096E00E94AE070C94F12820916F012F5FCF -:102CD000822F62E30E948C2F992319F020936F01B9 -:102CE000089510926F0180917001882371F1809195 -:102CF0001602843041F58091E9008F702091EC003C -:102D0000922F917020FD90E8892B93E09093E90039 -:102D10009091EB0090FF14C09091EE0097FF10C0CF -:102D20009091E80095FF03C01092F100F9CF9091C7 -:102D3000E80090FF05C09091E8009E779093E8002E -:102D40008F708093E90010927001089542E061EC69 -:102D500081E00E942D1942E061EC82E00E942D1971 -:102D600042E261EC83E00E942D1942E161EC84E0D3 -:102D70000C942D1980911802833009F455C030F459 -:102D8000813071F0823009F48EC008958A3009F4E0 -:102D90007AC08B3009F460C0893009F09CC020C033 -:102DA00080911702813A09F096C08091E800877FF0 -:102DB0008093E80080911B0290911C02892B21F4E2 -:102DC00060E181E791E003C060E080E090E070E0C6 -:102DD0000E9469188091E8008B778093E80008953D -:102DE00080911702813209F076C080911B02909188 -:102DF0001C02009719F0039709F06DC08091E8005C -:102E0000877F8093E8008091E80082FD05C0809173 -:102E100016028111F8CF5FC08091F100809381018B -:102E20008091E8008B7753C080911702813A09F0B6 -:102E300052C080911B0290911C02892B09F04BC05B -:102E40008091E800877F8093E8008091E80080FF10 -:102E5000FCCF80910C0136C0809117028132D9F5E8 -:102E600080911B0290911C02892BA9F58091E800AA -:102E7000877F8093E8000E946219809119028093F5 -:102E80000C010C94D92180911702813221F5809197 -:102E9000E800877F8093E8000E94621980911A02FF -:102EA00080938201089580911702813AA1F4809164 -:102EB000E800877F8093E8008091E80080FFFCCFE6 -:102EC000809182018093F1008091E8008E77809359 -:102ED000E8000C946219089584B7877F84BF88E165 -:102EE0000FB6F89480936000109260000FBE80E8E7 -:102EF00080936100109261000E94371D0E94B319F7 -:102F00000E94101A8091E20084608093E20082E2C5 -:102F100095E10E94722878940E94951C0E94391DA8 -:102F200082E091E00E94B01C86EA96E00E94AE0723 -:102F300080911602853089F482EA96E00E94AE07FD -:102F40000E94B32880911402882391F30E94E02804 -:102F5000882371F30E940818EBCF0E94611DE8CF0F -:102F6000292F332723303105C9F064F4213031058E -:102F700081F02230310509F043C084E790E029EE6A -:102F800036E042C021323105F1F02232310541F103 -:102F900037C082E190E02DE537E036C099278130D7 -:102FA000910541F08230910541F0892B49F5E5EE1C -:102FB000F6E005C0E7EDF6E002C0EBECF6E0849148 -:102FC00090E09F0121C06430D8F4E62FF0E0EE0FCE -:102FD000FF1FE15DFE4F2081318189E090E014C048 -:102FE000643070F470E0FB01EE0FFF1FE95DFE4FEF -:102FF00020813181FB01ED5DFE4F808190E004C0B6 -:1030000080E090E020E030E0FA01318320830895F1 -:1030100080E189BD82E189BD09B400FEFDCF8091C8 -:10302000D8008F7D8093D8008091E00082608093EB -:10303000E0008091E00081FDFCCF0895CF92DF9207 -:10304000EF92FF920F931F93CF93DF93EC018B01CD -:103050006A010E948119811133C0C114D10439F071 -:10306000F60180819181081B190BC80FD91FE12C33 -:10307000F12C0115110519F18091E80085FD16C0AC -:103080008091E8008E778093E800C114D10449F064 -:10309000F60180819181E80EF91EF182E08285E0DF -:1030A0000FC00E948119882321F30AC0899180935F -:1030B000F10001501109FFEFEF1AFF0ADACF80E0AB -:1030C000DF91CF911F910F91FF90EF90DF90CF9004 -:1030D000089520911D0230911E022617370748F0EF -:1030E0006115710539F42091E8002E772093E800EE -:1030F00001C0B90140E061157105A9F120911602E6 -:10310000222309F443C0253009F442C02091E8008D -:1031100023FD40C02091E80022FD32C02091E8004C -:1031200020FFE9CF4091F3002091F20030E0342BF2 -:10313000FC01CF016115710559F02830310540F4CB -:1031400081918093F100615071092F5F3F4FF1CF62 -:1031500041E02830310509F040E02091E8002E7769 -:103160002093E800C8CF4111C9CF0AC08091160250 -:10317000882361F0853061F08091E80083FD0AC00A -:103180008091E80082FFF2CF80E0089582E0089508 -:1031900083E0089581E0089520911D0230911E0280 -:1031A0002617370748F06115710539F42091E800BA -:1031B0002E772093E80001C0B901FC0120E06115E1 -:1031C000710591F180911602882309F440C0853081 -:1031D00009F43FC08091E80083FD3DC08091E80084 -:1031E00082FD2FC08091E80080FFE9CF2091F3009D -:1031F0008091F20090E0922B6115710559F08830B2 -:10320000910540F424912093F100319661507109A9 -:103210000196F2CF21E0089709F020E08091E800C4 -:103220008E778093E800CBCF2111CCCF0AC080915C -:103230001602882361F0853061F08091E80083FDFB -:103240000AC08091E80082FFF2CF80E0089582E01A -:10325000089583E0089581E00895982F973058F5F8 -:103260009093E900981739F07091EC002091ED00EF -:103270005091F00003C0242F762F50E021FF19C099 -:103280003091EB003E7F3093EB003091ED003D7FBD -:103290003093ED003091EB0031603093EB00709390 -:1032A000EC002093ED005093F0002091EE0027FFFA -:1032B00007C09F5FD3CF8F708093E90081E00895AE -:1032C00080E008958091170287FF11C08091E80087 -:1032D00082FD05C0809116028111F8CF11C0809146 -:1032E000E8008B770BC080911602882349F080910B -:1032F000E80080FFF8CF8091E8008E778093E800A7 -:1033000008952091E4003091E50095E64091EC00AD -:10331000842F817040FF22C08091E80080FD1CC096 -:1033200080911602882391F0853091F08091EB0016 -:1033300085FD10C04091E4005091E500421753070D -:1033400029F39A01915011F784E0089582E00895DD -:1033500083E0089581E0089580E008954091E800B9 -:1033600042FFDECF08950E94211A0E94291AE0EE42 -:10337000F0E0808181608083E8EDF0E080818F77EC -:10338000808319BCA7EDB0E08C918E7F8C938081F7 -:103390008F7E80831092150208950F931F93CF9311 -:1033A000DF930E94211A0E94291AC8EDD0E088817B -:1033B0008F77888388818068888388818F7D8883E0 -:1033C00019BC10921602109212021092140210925E -:1033D000130200EE10E0F80180818B7F80838881EA -:1033E0008160888342E060E080E00E942D19E1EE78 -:1033F000F0E080818E7F8083E2EEF0E0808181606A -:103400008083808188608083F80180818E7F8083C3 -:10341000888180618883DF91CF911F910F910895FA -:10342000E8EDF0E080818F7E8083E7EDF0E0808141 -:103430008160808384E082BF81E0809315020C94D8 -:10344000CD19E8EDF0E080818E7F80831092E2005C -:1034500008951092DA001092E10008951F920F92E1 -:103460000FB60F9211242F933F934F935F936F9357 -:103470007F938F939F93AF93BF93EF93FF9380912D -:10348000E10082FF0BC08091E20082FF07C08091C3 -:10349000E1008B7F8093E1000E9465168091DA0045 -:1034A00080FF1FC08091D80080FF1BC08091DA0090 -:1034B0008E7F8093DA008091D90080FF0DC080E17B -:1034C00089BD82E189BD09B400FEFDCF81E0809312 -:1034D00016020E943E1605C019BC109216020E94E8 -:1034E00050168091E10080FF19C08091E20080FFBA -:1034F00015C08091E2008E7F8093E2008091E2000F -:1035000080618093E2008091D80080628093D8002F -:1035100019BC85E0809316020E945B168091E10041 -:1035200084FF30C08091E20084FF2CC080E189BD1F -:1035300082E189BD09B400FEFDCF8091D8008F7D66 -:103540008093D8008091E1008F7E8093E10080918C -:10355000E2008F7E8093E2008091E20081608093A0 -:10356000E20080911202882311F084E007C080916C -:10357000E30087FD02C081E001C083E08093160272 -:103580000E945F168091E10083FF29C08091E200D4 -:1035900083FF25C08091E100877F8093E10082E076 -:1035A00080931602109212028091E1008E7F809328 -:1035B000E1008091E2008E7F8093E2008091E20042 -:1035C00080618093E20042E060E080E00E942D197B -:1035D0008091F00088608093F0000E945716FF9160 -:1035E000EF91BF91AF919F918F917F916F915F917B -:1035F0004F913F912F910F900FBE0F901F901895F4 -:103600001F920F920FB60F9211242F933F934F9357 -:103610005F936F937F938F939F93AF93BF93CF935A -:10362000DF93EF93FF93C091E900CF708091EC009E -:10363000D82FD17080FDD0E81092E9008091F00081 -:10364000877F8093F00078940E94441B1092E900D9 -:103650008091F00088608093F000CD2BCF70C093F4 -:10366000E900FF91EF91DF91CF91BF91AF919F91D1 -:103670008F917F916F915F914F913F912F910F901B -:103680000FBE0F901F9018951F93CF93DF93CDB768 -:10369000DEB7AA970FB6F894DEBF0FBECDBFE7E145 -:1036A000F2E088E08E0F9091F10091938E13FBCFA2 -:1036B0000E94BA168091E80083FF1FC18091170213 -:1036C00090911802492F50E04A30510508F015C179 -:1036D000FA01E15AFF4F0C94C02F803881F08238F4 -:1036E00009F00BC180911B028F708093E9008091DB -:1036F000EB0085FB882780F91092E90006C08091D5 -:10370000130290911402911182609091E800977FCA -:103710009093E8008093F1001092F100C8C0282F28 -:103720002D7F09F0EAC0882319F0823061F0E5C0EE -:1037300080911902813009F0E0C0933009F080E0F7 -:10374000809314022BC080911902811127C08091AF -:103750001B028F7009F4D1C08093E9002091EB0027 -:1037600020FF1CC0933021F48091EB00806214C0D4 -:103770009091EB0090619093EB0021E030E0A90183 -:1037800002C0440F551F8A95E2F74093EA00109259 -:10379000EA008091EB0088608093EB001092E900D2 -:1037A0008091E800877F86C08111A7C0109119021F -:1037B0001F778091E3008078812B8093E3008091D4 -:1037C000E800877F8093E8000E9462198091E800FA -:1037D00080FFFCCF8091E30080688093E3001111AB -:1037E00002C082E001C083E08093160286C0805848 -:1037F000823008F082C08091190290911A028C3DAB -:1038000053E0950779F583E08A838AE289834FB78D -:10381000F894DE01139620E03EE051E2E32FF0E061 -:1038200050935700E49120FF03C0E295EF703F5F93 -:10383000EF708E2F90E0EA3010F0C79601C0C0966E -:103840008D939D932F5F243149F74FBF8091E800FE -:10385000877F8093E8006AE270E0CE0101960E94C3 -:10386000691814C0AE014F5F5F4F60911B020E9448 -:10387000B017BC01009709F440C09091E800977F11 -:103880009093E80089819A810E94CC188091E80089 -:103890008B778093E80031C0803879F58091E8001B -:1038A000877F8093E800809112028093F1008091DD -:1038B000E8008E778093E8000E9462191EC0811193 -:1038C0001CC0909119029230C0F48091E800877F6B -:1038D0008093E800909312020E9462198091120274 -:1038E000811106C08091E30087FD02C081E001C024 -:1038F00084E0809316020E94A6168091E80083FF60 -:103900000AC08091E800877F8093E8008091EB00F7 -:1039100080628093EB00AA960FB6F894DEBF0FBECC -:10392000CDBFDF91CF911F910895CF938091160263 -:103930008823A1F0C091E900CF709091EC00892F0D -:10394000817090FD80E8C82B1092E9008091E8001A -:1039500083FD0E94441BCF70C093E900CF9108956E -:1039600090938801809387010895E0918701F091F9 -:103970008801309721F00190F081E02D099480E0DA -:103980000895EF92FF920F931F93CF93DF93E091EF -:103990008701F09188013097B1F18C010280F381A9 -:1039A000E02D09958091E90182FF2DC080FF04C0C0 -:1039B00086E498E00E94AE07E80110E180E4E82E7A -:1039C00088E0F82E8091E90180FF0BC088811F926A -:1039D0008F93FF92EF920E9447080F900F900F90E5 -:1039E0000F90115021961111EDCF8091E90180FFC8 -:1039F0000AC08EE398E0DF91CF911F910F91FF9065 -:103A0000EF900C94AE07DF91CF911F910F91FF9033 -:103A1000EF900895209185013091860182179307D8 -:103A200071F09093860180938501E0918701F09178 -:103A30008801309721F00680F781E02D09940895E0 -:103A400020918301309184018217930771F0909344 -:103A5000840180938301E0918701F0918801309780 -:103A600021F00084F185E02D0994089508950C94C7 -:103A7000361D0E9425290E94370D0E94F3290E94BD -:103A8000A92E0C940712CF93DF931F92CDB7DEB708 -:103A90009091E90192FF10C090FF0EC01F928F938A -:103AA00028E538E03F932F9389830E9447080F90C1 -:103AB0000F900F900F9089810F90DF91CF910C9410 -:103AC000E30C5F926F927F928F929F92AF92BF9220 -:103AD000CF92DF92EF92FF920F931F93CF93DF93DA -:103AE00000D000D01F92CDB7DEB70E947C0D94E9C4 -:103AF000C92E91E0D92E04E010E0AA24A394B12CA1 -:103B0000502E802F0E94000E4C01F60172906290A0 -:103B10006F016826792661147104A1F4015011091E -:103B200078F78FEF89838A831B820E942E29816018 -:103B3000782F9D838C8349815A816B818D810E946E -:103B40000F1E38C08091E90181FD0E94090E2DE011 -:103B500030E07501022E02C0EE0CFF1C0A94E2F761 -:103B6000C70186219721892B09F129835A828E204A -:103B70009F2091E0892809F490E09B830E942E29E0 -:103B80008160782F9D838C8349815A816B818D81DF -:103B90000E940F1E000F111FF801E657FE4F808193 -:103BA0009181E826F926F182E08204C02150310992 -:103BB00080F6B4CF109189010E94B51C1817D1F07E -:103BC0000E94B51C809389010F900F900F900F9069 -:103BD0000F90DF91CF911F910F91FF90EF90DF90A9 -:103BE000CF90BF90AF909F908F907F906F905F909D -:103BF0000C94431D0F900F900F900F900F90DF913A -:103C0000CF911F910F91FF90EF90DF90CF90BF90D9 -:103C1000AF909F908F907F906F905F900895CF931B -:103C2000DF93CDB7DEB72B970FB6F894DEBF0FBE8C -:103C3000CDBF4F83588769877A878B87DE011196BE -:103C400086E0FD0111928A95E9F785E0FE0137963D -:103C500001900D928A95E1F749815A816B817C81AF -:103C60008D819E810E9477242B960FB6F894DEBF3B -:103C70000FBECDBFDF91CF910895CF93882309F474 -:103C8000C2C0C82F823859F40E94B51C81FDBBC048 -:103C900089E30E9451270E94432889E30CC083389E -:103CA00079F40E94B51C80FDAEC083E50E945127C7 -:103CB0000E94432883E50E94A427CF910C944328B7 -:103CC000843859F40E94B51C82FD9DC087E40E948F -:103CD00051270E94432887E4EECF8CEF8C0F813A66 -:103CE00048F48C2F0E945A2E81118DC08C2F0E9477 -:103CF0005127E3CF80E28C0F883048F4C77081E011 -:103D000001C0880FCA95EAF70E94FC27D6CF8BE541 -:103D10008C0F833078F4C53A29F0C63A31F083E845 -:103D200090E005C081E890E002C082E890E0CF9189 -:103D30000C940A1D88E58C0F833108F064C0C83AE2 -:103D400039F1C93A41F1CA3A49F1CB3A51F1CC3A89 -:103D500059F1CD3A61F1C03B69F1CE3A71F1CF3AF8 -:103D600079F1C13B81F1C23B89F1C33B91F1C43B85 -:103D700099F1C53BA1F1C63BA9F1C73BB1F1C83BE5 -:103D8000B9F1C93BC1F1CA3BC9F180E090E038C04C -:103D900082EE90E035C089EE90E032C08AEE90E08D -:103DA0002FC085EB90E02CC086EB90E029C087EB1C -:103DB00090E026C08CEC90E023C08DEC90E020C019 -:103DC00083E891E01DC08AE891E01AC082E991E0A1 -:103DD00017C084E991E014C081E292E011C083E24F -:103DE00092E00EC084E292E00BC085E292E008C04F -:103DF00086E292E005C087E292E002C08AE292E0A9 -:103E0000CF910C94201DCF910895882309F44BC0C5 -:103E1000823859F40E94B51C81FF45C089E30E9495 -:103E200051270E94432889E30CC0833871F40E9413 -:103E3000B51C80FF38C083E50E9451270E944328AB -:103E400083E50E94A4270C944328843859F40E94E7 -:103E5000B51C82FF28C087E40E9451270E94432896 -:103E600087E4EFCF9CEF980F913A58F390E2980FC8 -:103E7000983050F4877091E001C0990F8A95EAF765 -:103E8000892F0E940228DFCF9BE5980F933020F402 -:103E900080E090E00C940A1D885A833120F480E081 -:103EA00090E00C94201D0895882321F00E94FC27A7 -:103EB0000C9443280895882321F00E9402280C9432 -:103EC000432808957F928F929F92AF92BF92CF9294 -:103ED000DF92EF92FF920F931F93CF93DF931F9286 -:103EE000CDB7DEB77C01C62E772EFC010581029589 -:103EF0000F70128111110E9419280E944A278823ED -:103F000079F0112369F080E28C0D883048F082E06E -:103F10000E9433270E944A2791E0D82ED92601C05B -:103F2000D12CE72DE295EF70F0E0E759FF4F0C94AC -:103F3000C02F872D807F072D0F70882311F00295E9 -:103F4000007F112389F0002309F48EC180E28C0DDB -:103F5000883020F4802F0E94FC2703C0802F0E940D -:103F60000C280E94432880C18C2D0E94051F00232D -:103F700009F4B8C180E28C0D883020F4802F0E94B3 -:103F8000022803C0802F0E9412280E944328AAC141 -:103F9000872D807F972D9F70803211F4892F03C069 -:103FA000892F8295807FCC2021F0F1E0CF16A1F0FF -:103FB0001DC0112339F0002319F1013009F50E94C9 -:103FC0002C2890C1002319F0013009F48BC189839A -:103FD0000E942F28898105C1112321F0063008F0A5 -:103FE00081C10EC0053008F07DC1FBC0112359F01E -:103FF000002331F0F701958190FF36C19F709583C2 -:104000000E94541F6FC1002309F4EBC033C1872DF8 -:1040100086958695837090E0009719F0019761F07E -:1040200061C1112321F08C2D972D937002C080E087 -:1040300090E00E940A1D56C1112321F08C2D972D6E -:10404000937002C080E090E00E94201D4BC1872D3C -:10405000837009F052C0111145C18C2D829586954F -:104060008770880F880F9C2D9F70892E912CA12C12 -:10407000B12C082E04C0880C991CAA1CBB1C0A94E5 -:10408000D2F7C4FE14C00FE010E020E030E0B90128 -:10409000A80104C0440F551F661F771F8A95D2F7E9 -:1040A000CB01BA01609570958095909503C060E052 -:1040B00070E0CB01272D26952695237030E0223025 -:1040C000310569F02330310589F0682979298A2979 -:1040D0009B292130310571F00E94BF2503C1682959 -:1040E00079298A299B290E94DB25FCC00E94BF25D3 -:1040F000C501B4010E94A325F5C0112319F0872D35 -:10410000817001C08695882309F4ECC08C2D8295BE -:1041100086958770880F880F9C2D9F70892E912C13 -:10412000A12CB12C082E04C0880C991CAA1CBB1C05 -:104130000A94D2F7C4FE14C00FE010E020E030E093 -:10414000B901A80104C0440F551F661F771F8A9547 -:10415000D2F7CB01BA01609570958095909503C018 -:1041600060E070E0CB01272D269526952370422F25 -:1041700050E04230510569F04330510589F068291B -:1041800079298A299B294130510571F00E9499268D -:10419000A9C0682979298A299B290E94B526A2C02D -:1041A0000E949926C501B4010E947D269BC08C2DDA -:1041B00090E0FC01E05EF109E531F10508F050C046 -:1041C000E758FF4F0C94C02F0C2D0F70872D8F7167 -:1041D000112321F00E941626802F12CF0E9437262D -:1041E000802F0E945B1F7EC0112341F0053008F034 -:1041F00079C0872D8F710E945C2674C0063008F04C -:1042000071C0F7CF112339F0872D8F710E941626C8 -:1042100069C01123C9F3872D8F710E94372662C0B0 -:10422000112329F0872D8F710E9401265BC00E9407 -:10423000F72558C0112351F0172D1F71812F0E94AF -:10424000162663E0812F0E942A274CC081E00E943D -:104250003327023008F446C082E00E94332742C070 -:10426000112331F0002381F28C2D0E943D1E3AC0B3 -:10427000002389F28C2D0E94051F34C0472D4F70FA -:104280006C2DC7010E94510C0E941B252BC01111DF -:1042900029C0472D4F7050E042305105B9F04CF421 -:1042A0004115510581F041305105E1F40E94E42EA1 -:1042B00019C04330510569F04430510599F48C2DF3 -:1042C0000E946F2F0FC00E94BA2E0CC00E94132FA5 -:1042D00009C00E94392F06C0472D4F706C2DC701B1 -:1042E0000E94A508DD20F9F00E94262780FD1BC052 -:1042F000F70112820E9420270E941626C7010E9401 -:10430000A2210E9420270F90DF91CF911F910F9142 -:10431000FF90EF90DF90CF90BF90AF909F908F90E5 -:104320007F900C9437260F90DF91CF911F910F91C2 -:10433000FF90EF90DF90CF90BF90AF909F908F90C5 -:104340007F9008950F931F93CF93DF93EC018881A3 -:1043500099812B813C81232BB9F09F3F11F48F3F32 -:1043600099F0CE010E941D09882371F0688179813E -:104370008A810E941C278C010E94D1260E949825C8 -:10438000B801CE010E94621FDF91CF911F910F9162 -:1043900008950E9419280E9429280E94EB270E9454 -:1043A000432880E090E00E940A1D80E090E00C9499 -:1043B000201D0E9409280C94C9210E941127292F31 -:1043C00022952F7030E02C3031054CF42A30310525 -:1043D0006CF42250310922303105A8F407C02C308A -:1043E000310569F02F30310551F00DC0803F69F083 -:1043F00018F4803E40F409C0843F29F406C093FBC2 -:10440000882780F9089580E0089581E00895CF938A -:10441000DF9300D000D01F92CDB7DEB70F900F9082 -:104420000F900F900F90DF91CF910895CF93DF936E -:1044300000D000D000D0CDB7DEB726960FB6F894E6 -:10444000DEBF0FBECDBFDF91CF9108951F93CF93F5 -:10445000DF93C091940116E080919501C81799F0FF -:10446000D0E01C9FF0011D9FF00D1124EA56FE4F75 -:104470004081518162817381848195810E941622DD -:104480002196C770E9CFDF91CF911F910895409198 -:10449000C6015091C7016091C8017091C901809116 -:1044A000CA019091CB010C9416228091CB01829588 -:1044B0008F7009F054C08091C801882309F44FC05F -:1044C00080919401A09195016091C6017091C701FE -:1044D0004091C9015091CA01B6E08A1709F43FC062 -:1044E00090E041155105C1F17F3F11F46F3FA1F1FB -:1044F000B89FF001B99FF00D1124EA56FE4F2181BB -:1045000072132AC02081621327C02281211124C086 -:10451000238134812417350710F421503109241BDD -:10452000350B283C3105C0F42091CB012F70206160 -:104530002093CB0126E0289FF001299FF00D112444 -:10454000E556FE4F80818F708061808386EC91E01C -:104550000E94A2210C94262201968770BECF089556 -:10456000CF92DF92EF92FF920F931F93CF93DF933F -:10457000CDB7DEB762970FB6F894DEBF0FBECDBFE2 -:104580008C0185E0F801DE011D9601900D928A955F -:10459000E1F7D8014C9111965C91119712966C91AC -:1045A00012971396CD90DC9014973091C6017091BC -:1045B000C7018091C9019091CA01009709F46BC1AC -:1045C0007F3F19F43F3F09F466C1E090C801EE2037 -:1045D00009F4C0C02091CB01C816D90628F0F60115 -:1045E000E81BF90BCF0104C0809590958C0D9D1DA3 -:1045F000FF24F394883C910578F0F12C207F09F09A -:10460000C6C07C2DD98AC88A89890E94072286EC77 -:1046100091E00E94A221B1C0822F807F09F046C0A4 -:10462000751314C0341312C0611110C02F702061B3 -:104630002093CB010E94472286EC91E00E94A221A8 -:104640008091CB01D80115968C932EC0CD2819F1FD -:104650005F3F11F44F3FF9F0F62E61111CC08091BD -:1046600094012091950136E0821709F45AC090E038 -:10467000389FF001399FF00D1124EA56FE4F7181E9 -:10468000571306C07081471303C07281711103C0B4 -:1046900001968770E9CFF62E662309F418C1809140 -:1046A000CB0181608093CB01F12C11C1751308C03F -:1046B000341306C0611104C08091CB01D801C3C07E -:1046C0004D875E878D859E856A8B0E94DD216A8974 -:1046D0008823E1F16623D1F12091CB01822F8295CD -:1046E0008F7090E0029774F08091C6019091C7019D -:1046F00098878F831986DB86CA862C87CE0107961A -:104700000E94A22186E0F801A6ECB1E001900D9292 -:104710008A95E1F70E9455220E944722FF24F394D4 -:10472000D6C04D875E878D859E850E941127292FD3 -:1047300022952F7030E0223031050CF0BCC09F7004 -:1047400009F0B6C0805E883008F4C1C0C8010E947C -:10475000A221E4CFC816D90608F453C0F601E81B1D -:10476000F90BCF01883C910508F450C0F12C7C2D49 -:10477000D98AC88A89890E940722E6ECF1E086E09E -:10478000DF011D928A95E9F70E944722A0C07513A8 -:1047900014C0341312C0611110C08091CB01F80114 -:1047A0008583C8010E94A22186E0E6ECF1E0DF01EA -:1047B0001D928A95E9F7FE2C8AC04D875E878D850C -:1047C0009E856A8B0E94DD216A89882309F4BECF09 -:1047D000662309F4BBCF2091CB01822F82958F7085 -:1047E00090E002970CF48ECF8091C6019091C701A2 -:1047F0009A8389831B82DD82CC822E83CE0101962F -:104800007FCF809590958C0D9D1DACCFF62E6623A5 -:1048100009F49CCF75132EC034132CC02091CB010A -:1048200020FD1FC0822F82958F70D9F0D801159678 -:104830002C9315978F3049F08F5F982F9295907F2A -:10484000822F8F70892B15968C93C8010E94A2210C -:1048500086E0F801A6ECB1E001900D928A95E1F7AF -:1048600093CF86E0F801A6ECB1E001900D928A9515 -:10487000E1F72DC04D875E878D859E850E94DD21E5 -:10488000811140CF8091CB0181608093CB01C80121 -:104890000E94A2211CC0662309F458CF4D875E8771 -:1048A0008D859E850E94DD21882309F44FCF2ACF74 -:1048B000811148CF0CC0243031050CF047CF9F70D8 -:1048C00009F440CFF8019581907F09F03BCF8F2DFF -:1048D00062960FB6F894DEBF0FBECDBFDF91CF91C9 -:1048E0001F910F91FF90EF90DF90CF9008951F934D -:1048F000CF93DF93CDB7DEB72C970FB6F894DEBF1A -:104900000FBECDBF4F83588769877A878B879C8777 -:10491000CE0107960E94B022882369F08F81988586 -:104920002A853B85232BF1F19F3F09F063C08F3F20 -:1049300009F060C037C086E0FE013796DE011196AF -:1049400001900D928A95E1F76F817885EA85FB8564 -:10495000309741F17F3F11F46F3F21F12091950194 -:1049600030E0C9010196877099274091940150E089 -:104970008417950709F447C069837A83FD83EC8324 -:1049800096E0929FD001939FB00D1124AA56BE4F7E -:10499000FE01319601900D929A95E1F78093950171 -:1049A0000E94262216E0809194019091950189172A -:1049B000C1F1189FC00111248A569E4F0E94B02257 -:1049C000882379F1E09194011E9FF0011124EA56A9 -:1049D000FE4F4081518162817381848195810E9463 -:1049E00016228091940190E0019687709927809318 -:1049F0009401D9CF4F81588569857A858B859C85AF -:104A00000E941622CFCF0E94D921109295011092B8 -:104A10009401E6ECF1E086E0DF011D928A95E9F76A -:104A2000C1CF2C960FB6F894DEBF0FBECDBFDF917D -:104A3000CF911F910895EF92FF920F931F93CF9301 -:104A4000DF938C01009709F46CC0F12CEE24E39401 -:104A5000E8012196F8018491843740F4843008F00D -:104A600051C0813081F0823019F15BC0853709F483 -:104A700044C0A8F19CE7980F903708F052C08F7798 -:104A80000E94051F41C00E5F1F4FFE01C49180E2CE -:104A90008C0F883048F4C7708E2D01C0880FCA95DE -:104AA000EAF70E941C2814C08C2F0E943D1E2DC0C6 -:104AB0000E5F1F4FFE01C49180E28C0F883058F4C6 -:104AC000C7708E2D01C0880FCA95EAF70E94222870 -:104AD0000E9443281AC08C2F0E94051F16C00E5F2B -:104AE0001F4FFE01C491CC2381F08FE99FE0019715 -:104AF000F1F700C00000C150F6CF0E5F1F4FFE015E -:104B0000F49003C00E943D1E8E018F2D882309F46E -:104B10009FCFEFE9FFE03197F1F700C0000081502F -:104B2000F5CFDF91CF911F910F91FF90EF900895F6 -:104B300008956093D0017093D1018093D201909336 -:104B4000D3010C94C9210F931F930091D0011091B0 -:104B5000D1012091D2013091D301DC01CB01802B16 -:104B6000912BA22BB32B8093D0019093D101A093D2 -:104B7000D201B093D3011F910F910C94C9210F93CF -:104B80001F930091D0011091D1012091D201309159 -:104B9000D301DC01CB0180239123A223B323809393 -:104BA000D0019093D101A093D201B093D3011F9172 -:104BB0000F910C94C9210F931F930091D001109174 -:104BC000D1012091D2013091D301DC01CB018027AA -:104BD0009127A227B3278093D0019093D101A0936E -:104BE000D201B093D3011F910F910C94C92110925F -:104BF000CC011092CD011092CE011092CF010C94F5 -:104C0000C92141E050E060E070E004C0440F551F4E -:104C1000661F771F8A95D2F74093CC015093CD0140 -:104C20006093CE017093CF010C94C92141E050E014 -:104C300060E070E004C0440F551F661F771F8A951F -:104C4000D2F78091CC019091CD01A091CE01B0918D -:104C5000CF01482B592B6A2B7B2B4093CC015093CF -:104C6000CD016093CE017093CF010C94C92141E036 -:104C700050E060E070E004C0440F551F661F771FCE -:104C80008A95D2F740955095609570958091CC01AA -:104C90009091CD01A091CE01B091CF01482359232D -:104CA0006A237B234093CC015093CD016093CE01C6 -:104CB0007093CF010C94C92141E050E060E070E0B6 -:104CC00004C0440F551F661F771F8A95D2F7809145 -:104CD000CC019091CD01A091CE01B091CF01482798 -:104CE00059276A277B274093CC015093CD016093CD -:104CF000CE017093CF010C94C9210F931F930091A3 -:104D0000CC011091CD012091CE013091CF01DC0179 -:104D1000CB01802B912BA22BB32B8093CC019093B2 -:104D2000CD01A093CE01B093CF011F910F910C94B0 -:104D3000C9210F931F930091CC011091CD012091B7 -:104D4000CE013091CF01DC01CB0180239123A2233E -:104D5000B3238093CC019093CD01A093CE01B09367 -:104D6000CF011F910F910C94C9210F931F930091B4 -:104D7000CC011091CD012091CE013091CF01DC0109 -:104D8000CB0180279127A227B3278093CC01909352 -:104D9000CD01A093CE01B093CF011F910F910C9440 -:104DA000C9210895CF92DF92EF92FF920F931F9344 -:104DB000CF93DF938C01C090D001D090D101E090CF -:104DC000D201F090D3018091CC019091CD01A091BE -:104DD000CE01B091CF01C82AD92AEA2AFB2ACFE115 -:104DE000D0E0D701C6010C2E04C0B695A7959795C3 -:104DF00087950A94D2F780FF06C0B8018C2F0E94D5 -:104E0000B00A019721F4219760F780E001C08C2F50 -:104E1000DF91CF911F910F91FF90EF90DF90CF9096 -:104E20000895CF93DF93EC010E94D226BE010E9429 -:104E3000B00ADF91CF910895CB010E941127089508 -:104E40008091D40185958595859508958091D401AB -:104E50008770089598E0899F90011124262B209354 -:104E6000D4010C9416262091D4018095822380933E -:104E7000D401982F977069F430E0482F552747FDEB -:104E800050952417350729F08595859585950C94BF -:104E9000372608959091D401977081E009F480E05D -:104EA000089590910C01992321F090910D01911199 -:104EB00009C020910E0130910F01F90132969FEF48 -:104EC00040E030C0982F9695969596959F30A0F427 -:104ED000E0910E01F0910F01E90FF11D877021E0C3 -:104EE00030E0A90102C0440F551F8A95E2F7CA01BC -:104EF0009181892B818308959091E90190FF23C0CE -:104F00001F928F938FE898E09F938F930E9447089A -:104F10000F900F900F900F9008959F3F39F04F5FC3 -:104F20004E3041F051915813F8CF0DC05111F7CFC9 -:104F3000942FF5CF9F3F39F0F901E90FF11D97FD4F -:104F4000FA9582830895089590910C01992321F098 -:104F500090910D01911109C020910E0130910F0126 -:104F6000F9013296205F3F4F30C0982F9695969565 -:104F700096959F30A8F4E0910E01F0910F01E90F92 -:104F8000F11D877021E030E0A90102C0440F551FD8 -:104F90008A95E2F7CA0180959181892381830895DA -:104FA0009091E90190FF16C01F928F9381E798E0DE -:104FB0009F938F930E9447080F900F900F900F9030 -:104FC00008953196E217F30729F090819813F9CFED -:104FD0001082F7CF089581E090E0E0910E01F0910A -:104FE0000F01E80FF91F1082019680319105A9F792 -:104FF00008958091E80108959091E801892B8093AC -:10500000E801089580959091E80189238093E80153 -:1050100008951092E80108959091E701892B8093FB -:10502000E701089580959091E70189238093E70136 -:1050300008951092E70108959091E601892B8093DD -:10504000E601089580959091E60189238093E60119 -:1050500008951092E60108958093D5010895109265 -:10506000D501089580910E0190910F01FC013196B8 -:105070009C01205F3F4F80E0919191118F5FE2177B -:10508000F307D1F70895E0910E01F0910F0180919F -:10509000E8018083E0910E01F0910F0190818091F1 -:1050A000E701892B8083E0910E01F0910F0190813F -:1050B0008091E601892B80838091D501882361F05E -:1050C000E0910E01F0910F019081892B80830E9465 -:1050D000322881111092D50180910E0190910F011B -:1050E0000C94C11C9093390180933801089520E0FD -:1050F000009739F0AC0141505109842395232F5F6B -:10510000F7CF822F08958295982F9C7C392F369562 -:105110003695282F237344E0249FC0011124932F38 -:10512000982B292F2A7A2695892F8575880F822B0F -:1051300008951F93CF93DF931F92CDB7DEB7998366 -:105140000E948328182F9981892F0E948328212F5C -:1051500030E0322F2227A901482BCA010F90DF919E -:10516000CF911F91089580911602843039F11092E9 -:10517000EA0120E488E190E00FB6F894A8958093C6 -:1051800060000FBE2093600080E00E946A0880E00B -:105190000E94E30C83B7817F846083BF83B7816003 -:1051A00083BF7894889583B78E7F83BF88E10FB6DD -:1051B000F89480936000109260000FBE08950895E7 -:1051C00080E00E946A080E94F90C0E947C0D0E94F7 -:1051D000DF280E94430E91E0811101C090E0892FE9 -:1051E00008950E94D92180E00E946A080E94A92E99 -:1051F0000E94B51C0C94E30C1F920F920FB60F92F5 -:1052000011248F939F93AF93BF938091EA018111F3 -:1052100013C08091EB019091EC01A091ED01B09150 -:10522000EE014196A11DB11D8093EB019093EC011D -:10523000A093ED01B093EE01BF91AF919F918F913B -:105240000F900FBE0F901F90189582E084BD93E0E1 -:1052500095BD9AEF97BD80936E0008952FB7F8948F -:105260008091EB019091EC01A091ED01B091EE01E4 -:105270002FBF0895CF92DF92EF92FF920F931F936B -:105280002FB7F8944091EB015091EC016091ED0142 -:105290007091EE012FBF6A017B01EE24FF248C0187 -:1052A00020E030E0C016D106E206F30610F44150CB -:1052B00051099A01281B390BC9011F910F91FF90C9 -:1052C000EF90DF90CF9008951F920F920FB60F923C -:1052D00011248F939F93AF93BF938091EB01909193 -:1052E000EC01A091ED01B091EE010196A11DB11D5F -:1052F0008093EB019093EC01A093ED01B093EE014C -:10530000BF91AF919F918F910F900FBE0F901F9003 -:1053100018950E94B319F8942FEF87EA91E621506F -:1053200080409040E1F700C0000087E090EBDC0196 -:105330008093200290932102A0932202B093230233 -:105340009CE088E10FB6F894A895809360000FBEAA -:1053500090936000FFCFAF92BF92CF92DF92EF9217 -:10536000FF920F931F93CF93C4E0CC24C394D12C0E -:10537000E82EF12C8C2F0E94000E5C010DE010E055 -:105380009601002E02C0220F331F0A94E2F72A2151 -:105390003B21232B51F0602F7C2F80E00E94540C86 -:1053A000E816F90611F481E006C00150110940F732 -:1053B000C15000F780E0CF911F910F91FF90EF90C7 -:1053C000DF90CF90BF90AF900895CF93C82F8CE21D -:1053D0000E94AB29882321F08C2FCF910C94AB290C -:1053E00080E0CF910895CF930E944A2B811102C093 -:1053F0000E942B2B84EB98E00E94AE07C5E6C150BB -:1054000049F00E947C0D8FE39CE90197F1F700C001 -:105410000000F5CF8DEA98E00E94AE0789E20E9475 -:10542000E529811116C18AE20E94E52981110E94B5 -:105430002B2B85E00E94E52981110E9489290E9479 -:10544000552B8093E90187E00E94E5298823A9F183 -:105450008BE10E94E529882351F08091E90181FBCD -:10546000222720F991E0922790FB81F90EC08EE06F -:105470000E94E529882361F08091E90182FB2227BF -:1054800020F991E0922790FB82F98093E90115C001 -:1054900080E10E94E5299091E901882341F093FB86 -:1054A000222720F981E0822780FB93F904C0892F0D -:1054B000809580FB90F99093E9018091E9010E9429 -:1054C000592B0E94672B90E09093F1018093F0019B -:1054D00080EE0E94E529882341F08091F001982F09 -:1054E000909590FB80F98093F00189E30E94E52973 -:1054F000882359F08091F00181FB222720F991E067 -:10550000922790FB81F98093F00182EE0E94E529B9 -:10551000882359F08091F00182FB222720F991E045 -:10552000922790FB82F98093F00186EE0E94E52994 -:10553000882359F08091F00183FB222720F991E024 -:10554000922790FB83F98093F00183EE0E94E52976 -:10555000882359F08091F00184FB222720F991E003 -:10556000922790FB84F98093F00185E30E94E5295E -:10557000882359F08091F00185FB222720F991E0E2 -:10558000922790FB85F98093F00181E30E94E52941 -:10559000882359F08091F00186FB222720F991E0C1 -:1055A000922790FB86F98093F00181E10E94E52922 -:1055B000882359F08091F00187FB222720F991E0A0 -:1055C000922790FB87F98093F0018091F0010E946F -:1055D0006B2B8091F00187FB882780F980930D0168 -:1055E00087E20E94E529C82F8EE10E94E5298111FA -:1055F000C2608FE10E94E5298111C46080E20E94AF -:10560000E5298111C86081E20E94E5298111C0610C -:1056100082E20E94E5298111C06283E20E94E529AD -:105620008111C06484E20E94E529882311F0C068DA -:1056300002C0CC2329F08C2F0E94622B6C2F03C058 -:105640000E945E2B682F70E080E090E0CF910C9478 -:105650009925CF9108956DEE7EEF80E090E00E9455 -:10566000F82F60E082E090E00E94DA2F60E083E0B3 -:1056700090E00E94DA2F60E084E090E00E94DA2F50 -:1056800060E085E090E00E94DA2F60E086E090E044 -:105690000C94DA2F80E090E00E94D42F21E08D3E20 -:1056A0009E4F09F020E0822F089582E090E00C9454 -:1056B000C62F682F82E090E00C94DA2F83E090E010 -:1056C0000C94C62F682F83E090E00C94DA2F84E0CE -:1056D00090E00C94C62F682F84E090E00C94DA2FB1 -:1056E00086E090E00C94C62F682F86E090E00C9442 -:1056F000DA2FCF93C82F1F928F938FEC98E09F9350 -:105700008F930E94470881E090E0A0E0B0E0BC01E8 -:10571000CD0104C0660F771F881F991FCA95D2F765 -:105720000E9499250F900F900F900F90CF910C949D -:10573000D921CF938B3109F40FC208F049C08E30C4 -:1057400009F41EC200F5873009F4E7C1A8F48630D9 -:1057500009F0A4C28091E901817F8E7F8093E901E5 -:1057600082E69AE00E94AE078EE49EE00E94AE07B9 -:1057700081E08093EF01CFC1883009F45BC08B30AA -:1057800009F4C5C18BC2813109F470C220F48031A3 -:1057900009F40AC283C2863109F421C2893109F0B1 -:1057A0007DC283E59AE00E94AE0783E19AE00E9401 -:1057B000AE0781EE99E00E94AE0784EB99E00E946B -:1057C000AE0788E799E00E94AE078DE499E0A1C199 -:1057D000853309F45FC268F4873209F45BC228F4A8 -:1057E0008E3108F45BC28D5156C2893209F452C21F -:1057F00055C2833438F48A3308F04AC2883309F436 -:1058000086C14CC2833409F445C2883409F046C2CB -:105810000E94D92182E39EE00E94AE079FEF23ED14 -:1058200080E3915020408040E1F700C000000E94DA -:10583000892971C182E59EE00E94AE078FE99DE053 -:105840000E94AE070E945E2B1F928F938CE99DE011 -:105850009F938F930E9447088AE99DE00E94AE07BC -:105860000E94552BC82F87E89DE00E94AE071F922B -:10587000CF9382E89DE09F938F930E94470880E832 -:105880009DE00E94AE0786E79DE00E94AE078C2F48 -:1058900081701F928F9383E79DE09F938F930E9467 -:1058A000470881E79DE00E94AE0787E69DE00E94E1 -:1058B000AE07C1FB882780F91F928F9384E69DE095 -:1058C0009F938F930E94470882E69DE00E94AE0757 -:1058D00086E59DE00E94AE07C2FB882780F91F92F3 -:1058E0008F9383E59DE09F938F930E94470881E506 -:1058F0009DE00E94AE0788E49DE00E94AE07C3FBD6 -:10590000CC27C0F91F92CF9385E49DE09F938F939E -:105910000E94470883E49DE00E94AE070E94672B27 -:10592000C82F8FE29DE00E94AE071F92CF938AE2BC -:105930009DE09F938F930E94470888E29DE00E941C -:10594000AE078FE09DE00E94AE078C2F81701F9202 -:105950008F938CE09DE09F938F930E9447088DB7B3 -:105960009EB780960FB6F8949EBF0FBE8DBF8AE09B -:105970009DE00E94AE0783EF9CE00E94AE07C1FB52 -:10598000882780F91F928F9380EF9CE09F938F93DD -:105990000E9447088EEE9CE00E94AE078CED9CE0D2 -:1059A0000E94AE07C2FB882780F91F928F9389ED72 -:1059B0009CE09F938F930E94470887ED9CE00E9494 -:1059C000AE0785EC9CE00E94AE07C3FB882780F9F8 -:1059D0001F928F9382EC9CE09F938F930E944708C5 -:1059E00080EC9CE00E94AE0786EB9CE00E94AE0734 -:1059F000C4FB882780F91F928F9383EB9CE09F93D1 -:105A00008F930E94470881EB9CE00E94AE078FE9CC -:105A10009CE00E94AE07C5FB882780F91F928F93F8 -:105A20008CE99CE09F938F930E9447088AE99CE051 -:105A30000E94AE078EE79CE00E94AE07C6FB882757 -:105A400080F91F928F938BE79CE09F938F930E9426 -:105A5000470889E79CE00E94AE0781E79CE00E942E -:105A6000AE07C7FBCC27C0F91F92CF938EE69CE010 -:105A70009F938F930E9447088CE69CE00E94AE079C -:105A80000E94702BC82F85E59CE00E94AE071F92F4 -:105A9000CF9380E59CE09F938F930E9447088DB73A -:105AA0009EB780960FB6F8949EBF0FBE8DBF8EE452 -:105AB0009CE00E94AE0784E49CE00E94AE078C2F1D -:105AC00081701F928F9381E49CE09F938F930E943B -:105AD00047088FE39CE00E94AE0786E39CE00E94AB -:105AE000AE07C6951F92CF9383E39CE09F938F935D -:105AF0000E94470881E39CE00E94AE078DB79EB7E5 -:105B000008960FB6F8949EBF0FBE8DBF04C08DE7F8 -:105B10009AE00E94AE07C1E0C6C08091E901C82F9B -:105B2000C095C170C0FB80F98093E901CC2349F096 -:105B300086E29EE00E94AE078091E901866088605F -:105B400048C089E19EE00E94AE078091E901897F0B -:105B5000877F8093E901DFCF9091E90191FBCC270A -:105B6000C0F981E0C827892FC0FB81F98093E90142 -:105B7000CC2319F08CE09EE027C08EEF9DE0C9CFCA -:105B80009091E90192FBCC27C0F981E0C827892FC9 -:105B9000C0FB82F98093E901CC2319F08FEE9DE0E0 -:105BA00013C08FED9DE0B5CF9091E90193FBCC2719 -:105BB000C0F981E0C827892FC0FB83F98093E901F0 -:105BC000CC2351F083ED9DE00E94AE078091E90166 -:105BD00081608093E90167C086EC9DE09ACF8FE3F6 -:105BE00099E00E94AE070E94B51C1F928F9385E238 -:105BF00099E09F938F930E94470880910C011F9218 -:105C00008F938EE099E09F938F930E944708809135 -:105C100082011F928F938BEF98E09F938F930E9446 -:105C2000470880910D011F928F9388EE98E09F9313 -:105C30008F930E9447088091EB019091EC01A09115 -:105C4000ED01B091EE01BF93AF939F938F9384EDDD -:105C500098E09F938F930E9447088DB79EB7469612 -:105C60000FB6F8949EBF0FBE8DBF55CF0E94D921AD -:105C7000C0910D0181E0C827C0930D01CC2329F00C -:105C80008CEB9DE00E94AE070EC081EB9DE041CF02 -:105C9000895301C080E00E94792B3DCF8FEA9DE0BF -:105CA0000E94AE07C0E08C2FCF91089580E0089548 -:105CB00080E00895CF93C82F8091EF01882319F0D9 -:105CC000813049F03EC0E0910E01F0910F018081DA -:105CD0008232C9F507C0E0910E01F0910F01808179 -:105CE000823261F48C2F0E94562E811104C08C2FB9 -:105CF0000E94992B24C081E090E021C08C2F0E944B -:105D0000582E81111BC0C43189F018F4CB3029F012 -:105D100010C0C93259F0C83361F482E69AE00E949B -:105D2000AE078BEC98E00E94AE0708C01092EF011E -:105D30000CC089EC98E00E94AE0707C081E081703A -:105D400006C01092EF0180E002C080E0F8CFCF9152 -:105D500008950E944A2B811102C00E942B2B0E94A1 -:105D6000702B80931F0280FF02C0869501C080E0E7 -:105D70000C946A0880911F02982F9695292F30E085 -:105D8000243031054CF49F5F990F8170892B81601D -:105D900080931F020E94742B8091E90180FF0FC045 -:105DA00080911F0286951F928F938FE99EE09F93AB -:105DB0008F930E9447080F900F900F900F90809143 -:105DC0001F0286950C946A0880911F02982F969561 -:105DD00091F09158990F8170892B80931F028E7FCB -:105DE00091E009F490E080911F0290FB80F980938C -:105DF0001F020E94742B8091E90180FF0FC08091E7 -:105E00001F0286951F928F9387E89EE09F938F9342 -:105E10000E9447080F900F900F900F9080911F02E3 -:105E200086950C946A0880911F02982F909590FB9C -:105E300080F980931F020E94742B8091E90180FFFA -:105E40000FC080911F0281701F928F9381E79EE0A7 -:105E50009F938F930E9447080F900F900F900F9081 -:105E600080911F0280FF02C0869501C080E00C94E3 -:105E70006A0890911F02892F86958F5F8F779170A6 -:105E8000853028F4880F892B80931F0202C09093DD -:105E90001F0280911F028E7F91E009F490E08091B3 -:105EA0001F0290FB80F980931F020E94742B809147 -:105EB000E90180FF0FC080911F0286951F928F938A -:105EC0008DE59EE09F938F930E9447080F900F905F -:105ED0000F900F9080911F0286950C946A08209174 -:105EE0001F02922F96958927982F990F822F8170E4 -:105EF000892B80931F028E7F91E009F490E08091BE -:105F00001F0290FB80F980931F020E94742B8091E6 -:105F10001F0286950C946A08991B79E004C0991FAA -:105F2000961708F0961B881F7A95C9F780950895F3 -:105F3000AA1BBB1B51E107C0AA1FBB1FA617B707AF -:105F400010F0A61BB70B881F991F5A95A9F78095CB -:105F50009095BC01CD01089597FB072E16F400948F -:105F600007D077FD09D00E94982F07FC05D03EF49A -:105F7000909581959F4F0895709561957F4F0895F5 -:105F8000EE0FFF1F0590F491E02D0994F999FECFD3 -:105F900092BD81BDF89A992780B50895A6E1B0E039 -:105FA00044E050E00C940030A8E1B0E042E050E062 -:105FB0000C940030262FF999FECF92BD81BDF89A3E -:105FC000019700B4021639F01FBA20BD0FB6F8943D -:105FD000FA9AF99A0FBE08950396272F0E94DB2F95 -:105FE0000E94DA2F252F0E94DB2F242F0C94DB2F09 -:105FF0000196272F0E94DB2F0C94DA2FDC01CB01B6 -:10600000FC01F999FECF06C0F2BDE1BDF89A3196C8 -:1060100000B40D9241505040B8F70895F894FFCF66 -:10602000FFFF1E15ED152115B91585150101D601C6 -:106030000F1F6C766673491303534379693309194B -:1060400029395940362039FE07C807A8076F07FBD2 -:086050000614072D074D07009F -:00000001FF diff --git a/keyboards/satan/led.c b/keyboards/satan/led.c deleted file mode 100644 index 94606e895..000000000 --- a/keyboards/satan/led.c +++ /dev/null @@ -1,36 +0,0 @@ -/* -Copyright 2012 Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include -#include "stdint.h" -#include "led.h" - - -void led_init_ports(void) { - // * Set our LED pins as output - DDRB |= (1<<2); -} - -void led_set_kb(uint8_t usb_led) { - if (usb_led & (1<> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); - } -} - -#endif +#include "led.h" void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up - if (matrix_init_user) { - (*matrix_init_user)(); - } + matrix_init_user(); led_init_ports(); - - #ifdef BACKLIGHT_ENABLE - backlight_init_ports(); - #endif }; void matrix_scan_kb(void) { // put your looping keyboard code here // runs every cycle (a lot) - if (matrix_scan_user) { - (*matrix_scan_user)(); - } -}; \ No newline at end of file + matrix_scan_user(); +}; + +void led_init_ports(void) { + // * Set our LED pins as output + DDRB |= (1<<2); +} + +void led_set_kb(uint8_t usb_led) { + if (usb_led & (1< -#include "action_util.h" +#include "quantum.h" /* Clueboard matrix layout * ,-----------------------------------------------------------. diff --git a/keyboards/sixkeyboard/README.md b/keyboards/sixkeyboard/README.md deleted file mode 100644 index 7d78a0cae..000000000 --- a/keyboards/sixkeyboard/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# Techkeys SixKeyBoard - -[Get one here!](http://techkeys.us/collections/accessories/products/sixkeyboard) - -The schematic is like this: - -``` - switches leds -,--+--+--. ,--+--+--. -|C7|B7|B5| |C6|B6|B4| -+--+--+--+ +--+--+--+ -|D6|D1|D4| |D5|D2|D3| -`--+--+--' `--+--+--' -``` - -The LED on the bottom is `C4`. All 7 of the leds are turned on when the keyboard boots-up in the `sixkeyboard.c` file - backlight_enable is not required. The MCU is an Atmega16u2, so the flash memory is limited to 0x3000 bytes - the current setup uses just about all of that! I'm sure things can be opitimised a bit. - -There is a jumper on the bottom of the board (next to the USB port) that serves as a reset button - I drilled a hole in my case to allow for quick access via a screwdriver/metal object. \ No newline at end of file diff --git a/keyboards/sixkeyboard/keymaps/default/compiled.hex b/keyboards/sixkeyboard/keymaps/default/compiled.hex deleted file mode 100644 index 588aca108..000000000 --- a/keyboards/sixkeyboard/keymaps/default/compiled.hex +++ /dev/null @@ -1,760 +0,0 @@ -:100000000C94C8000C940C010C940C010C940C0181 -:100010000C940C010C940C010C940C010C940C012C -:100020000C940C010C940C010C940C010C943209EE -:100030000C94E0090C945F160C940C010C940C01C8 -:100040000C940C010C940C010C940C010C94C7162C -:100050000C940C010C940C010C940C010C940C01EC -:100060000C940C010C940C010C940C010C940C01DC -:100070000C940C014D0A6F0A5D0B6F0A5D0BB40AFC -:10008000D70A5D0B2C0B3F0BEB0DEB0D1A0E1A0E66 -:100090007E0F7E0F7E0F7E0F590E7E0F090F090F08 -:1000A0006F0F7E0F7E0F780F160F160F160F160F9D -:1000B000160F160F160F160F160F160F160F160F18 -:1000C000160F160F160F160F260F340F3B0F420F89 -:1000D0004C0F0400050006000700080009001E037D -:1000E0007300690078006B00650079006B006500A3 -:1000F000790062006F006100720064000000180364 -:1001000074006500630068006B006500790073008F -:100110002E00750073000000040309040902220088 -:10012000010100A0FA0904000001030101000921F6 -:10013000110100012240000705810308000A120195 -:10014000100100000008EDFE6260010001020001E4 -:1001500005010906A101050719E029E71500250198 -:10016000950875018102950175088101050819013D -:100170002905950575019102950175039101050702 -:10018000190029FF150026FF00950675088100C09B -:1001900011241FBECFEFD2E0DEBFCDBF04B603FEF9 -:1001A00024C08091900190919101A0919201B09111 -:1001B00093018730904BA740B04BB9F41092900157 -:1001C00010929101109292011092930114BE84B783 -:1001D000877F84BF88E10FB6F89480936000109207 -:1001E00060000FBEE0E0F8E1099511E0A0E0B1E0A9 -:1001F000E2E5FFE202C005900D92AE30B107D9F7FB -:1002000011E0AEE0B1E001C01D92A039B107E1F705 -:100210000E94AA060C94A7170C9400003F98479AD6 -:1002200084B18F7584B985B1806A85B98AB18D7AB8 -:100230008AB98BB182658BB90C94660186B18095C1 -:10024000982F991F9927991F83B18095881F882718 -:10025000881F880F892B1D9902C094E001C090E08F -:10026000892B80930E0189B186FB882780F991E064 -:100270008927499902C092E001C090E0892B4C99EE -:1002800002C094E001C090E0892B80930F010E948E -:10029000760181E00895E82FF0E0E25FFE4F808173 -:1002A000089508951F93CF93DF93CEE0D1E0888126 -:1002B00090E00E941A16182F898190E00E941A1669 -:1002C000810FDF91CF911F91089508953C9A449832 -:1002D0003E9A4698269A2E98249A2C98559A5D987C -:1002E000529A5A98539A5B980C9465010C94880121 -:1002F00061110BC0FC018281882321F085EE0E94F0 -:100300009A0C03C085EE0E94570D80E090E008959E -:1003100080E00E944B01873049F481E00E944B014C -:10032000873021F40E94DD0F0C94EC16089581E0D3 -:10033000089581E008950C94990108950F931F93F7 -:10034000CF93DF938C01FC01C081D181CE010E944B -:10035000E914BE010E944702EC01B8010E949B0112 -:10036000882309F48DC0F8018281882309F44AC0EA -:1003700080911B0181111FC0C431F0E5DF0709F036 -:1003800051C00E949D0181E080931B010E94911643 -:1003900090931A0180931901109212011092140186 -:1003A000109213011092160110921501109218016B -:1003B0001092170165C08091190190911A010E9455 -:1003C0009D16883C910570F480911201E82FF0E0B1 -:1003D000EE0FFF1FED5EFE4FD183C0838F5F8093D2 -:1003E00012014EC0C43880E5D80721F0C538D04589 -:1003F00001F13AC0F8018281882341F01092100186 -:1004000082E01EC0C438E0E5DE0759F58091100196 -:10041000811106C086E20E949A0C86E20E94570D66 -:1004200082E01CC0C438F0E5DF0741F3C538D04591 -:10043000D9F4F8018281882331F01092110180E211 -:100440000E94A60D1DC080911101811106C087E296 -:100450000E949A0C87E20E94570D80E20E94AD0D27 -:100460000FC0C538D04529F381E0809310018093F7 -:100470001101C801DF91CF911F910F910C94970149 -:1004800080E0DF91CF911F910F91089508959B0116 -:1004900090E066E070E00E945A17FC01832F90E024 -:1004A00063E070E00E945A178E0F9F1FFC01E20F5D -:1004B000F11DEE0FFF1FEE52FF4F859194910895AD -:1004C000880F991FFC01EE5AF04085919491089590 -:1004D000880F991FFC01EE52FF4F8591949108956A -:1004E0000F931F93CF93DF93EC01811520E39207C5 -:1004F00050F5C11580E2D80708F0C3C0CB3BD10549 -:1005000090F4C83AD10508F06AC0C53AD10508F0A0 -:100510005BC0C430D10508F0D0C1219709F0CAC131 -:1005200001E010E00AC2CF3FD10511F008F0C5C1CB -:10053000C03FD10508F0A2C0CE01805E91090897A6 -:1005400008F4BBC1B7C1C13090E5D90709F4A2C016 -:1005500020F5C0318FE4D80770F4C11590E4D907B5 -:1005600008F094C0C11521E3D20708F0A3C1DD272C -:100570008E01106CE2C1C115D04509F09BC10E94EB -:10058000DD0F8FEF94E32CE0815090402040E1F7A5 -:1005900000C000000E94EC16D0C1C11597E5D90734 -:1005A00058F4C03121E5D20708F01CC1C43180E500 -:1005B000D80708F475C07EC1CE01905781159041CF -:1005C00008F078C1DF7073C1C53AD10509F477C16D -:1005D000C63AD10509F076C102E810E4AEC1C83AC6 -:1005E000D10509F472C1C93AD10509F471C1CA3AF9 -:1005F000D10509F470C1CB3AD10509F46FC1CC3AE9 -:10060000D10509F46EC1CD3AD10509F46DC1C03BE5 -:10061000D10509F46CC1CE3AD10509F46BC1CF3ACA -:10062000D10509F46AC1C13BD10509F469C1C23BD6 -:10063000D10509F468C1C33BD10509F467C1C43BC6 -:10064000D10509F466C1C53BD10509F465C1C63BB6 -:10065000D10509F464C1C73BD10509F463C1C83BA6 -:10066000D10509F462C1C93BD10509F461C1CA3B96 -:10067000D10509F460C100E014E45FC18E0110658A -:100680005CC1CE019F700E94680258C1DF708E016C -:10069000106A53C180917C01816080937C014DC1BF -:1006A0000E943E17811102C00E9424170E94511718 -:1006B00090E09093900180938F01C23080E5D8073D -:1006C00021F480918F01816086C0C43090E5D90704 -:1006D00021F480918F0182607EC0C63020E5D20770 -:1006E00021F480918F01846076C0C83080E5D807FE -:1006F00019F480918F0127C0CA3090E5D90721F401 -:1007000080918F01806167C0CC3020E5D20721F451 -:1007100080918F0180625FC0CE3080E5D80721F4E0 -:1007200080918F01806457C0C03190E5D90721F4D2 -:1007300080918F0180684FC0C23120E5D20729F433 -:1007400080918F018460886046C0C33080E5D807FF -:1007500021F480918F018E7F3EC0C53090E5D9078E -:1007600021F480918F018D7F36C0C73020E5D207FC -:1007700021F480918F018B7F2EC0C93080E5D8078E -:1007800019F480918F0126C0CB3090E5D90721F470 -:1007900080918F018F7E1FC0CD3020E5D20721F4DC -:1007A00080918F018F7D17C0CF3080E5D80721F46D -:1007B00080918F018F7B0FC0C13190E5D90721F463 -:1007C00080918F018F7707C0C331D04531F480917C -:1007D0008F018B7F877F80938F0180918F010E9493 -:1007E0005517ABC08D2F99278F70992781309105B0 -:1007F000D9F49E012370332702C0880F991F2A95D0 -:10080000E2F79C688E0144E0000F111F4A95E1F762 -:1008100000271370802B912B53E0CC0FDD1F5A95CE -:10082000E1F7C076DD272FC08230910531F4DC2F4F -:10083000CC278E01016F106A80C08330910569F466 -:10084000CE018370992701E010E002C0000F111F54 -:100850008A95E2F7C8019C680FC084309105B9F40D -:10086000CE018370992701E010E002C0000F111F34 -:100870008A95E2F7C8019A6823E0CC0FDD1F2A951C -:10088000E1F7C07ED7708C010C2B1D2B56C0853034 -:10089000910531F4DC2FCC278E01046F106A4DC016 -:1008A000069709F04AC0CF71DD27DC2FCC278E01D7 -:1008B000106243C000E010E040C08E013EC001E87D -:1008C00010E43BC003E810E438C002EE14E435C085 -:1008D00009EE14E432C00AEE14E42FC005EB14E470 -:1008E0002CC006EB14E429C007EB14E426C00CEC82 -:1008F00014E423C00DEC14E420C003E815E41DC08B -:100900000AE815E41AC002E915E417C004E915E481 -:1009100014C001E216E411C003E216E40EC004E2C2 -:1009200016E40BC005E216E408C006E216E405C0B2 -:1009300007E216E402C00AE216E4C801DF91CF9193 -:100940001F910F9108959B0190E066E070E00E9476 -:100950005A17FC01832F90E063E070E00E945A1761 -:100960008E0F9F1FFC01E20FF11DEE0FFF1FEE52D5 -:10097000FF4F85919491803E9105E0F4803C910574 -:1009800058F58133910509F46FC048F48932910517 -:1009900009F463C08A32910509F46DC072C08933CD -:1009A0009105E9F082389105D1F08533910509F47C -:1009B0004DC067C0833E910581F138F4803E9105BA -:1009C000B9F0823E9105D9F05CC0863E910561F197 -:1009D000873E9105A1F155C00E94600208952091C3 -:1009E0008F0120FD02C021FF4CC080EE90E049C085 -:1009F00080918F0180FFF9CF89E390E042C0809120 -:100A00008F0182FF0EC080918F0184FF03C080E0C0 -:100A100090E037C083EE90E034C080918F0182FF78 -:100A2000F2CF82EE90E02DC080918F0183FF0BC04A -:100A300080918F0184FDEBCF87EE90E022C0809102 -:100A40008F0183FFF5CF86EE90E01BC080918F0170 -:100A500085FF07C089E290E014C080918F0185FF77 -:100A6000F9CF85E390E00DC080918F0186FF07C02C -:100A70008AE290E006C080918F0186FFF9CF81E382 -:100A800090E00E947002089508950C9444058091AE -:100A9000240108950895CF93DF9300D01F92CDB71E -:100AA000DEB720918601243021F523E029839B8342 -:100AB0008A8381E08093E9008FEF9091E800815074 -:100AC00095FD06C095ED9A95F1F700008111F5CFDF -:100AD0008091E80085FF0DC040E050E063E070E0E9 -:100AE000CE0101960E9440078091E8008E778093A6 -:100AF000E8000F900F900F90DF91CF910895CF9362 -:100B0000DF9300D01F92CDB7DEB72091860124304D -:100B100021F522E029839B838A8381E08093E90089 -:100B20008FEF9091E800815095FD06C095ED9A9564 -:100B3000F1F700008111F5CF8091E80085FF0DC02D -:100B400040E050E063E070E0CE0101960E94400773 -:100B50008091E8008E778093E8000F900F900F90BF -:100B6000DF91CF910895CF93DF93209186012430B8 -:100B700039F521E02093E9002FEF3091E800215072 -:100B800035FD06C035ED3A95F1F700002111F5CF9E -:100B90002091E80025FF14C0EC0140E050E068E03F -:100BA00070E00E9440078091E8008E778093E80013 -:100BB00088E0FE01ACE1B1E001900D928A95E1F789 -:100BC000DF91CF91089580918501811109C00E9424 -:100BD000CF080E9422098091E20084608093E200A5 -:100BE0000895109285010895089542E061EC81E036 -:100BF0000C94490880918801833009F453C030F483 -:100C0000813071F0823009F48CC008958A3009F483 -:100C100078C08B3009F45EC0893009F09AC020C0DA -:100C200080918701813A09F094C08091E800877F24 -:100C30008093E80080918B0190918C01892B21F4A5 -:100C400068E08CE191E003C060E080E090E070E05B -:100C50000E948B078091E8008B778093E8000895CD -:100C600080918701813209F074C080918B0190914D -:100C70008C01892B09F06DC08091E800877F8093FB -:100C8000E8008091E80082FD05C080918601811115 -:100C9000F8CF5FC08091F100809324018091E8003B -:100CA0008B7753C080918701813A09F052C08091BF -:100CB0008B0190918C01892B09F04BC08091E80049 -:100CC000877F8093E8008091E80080FFFCCF8091CF -:100CD0000A0136C0809187018132D9F580918B015C -:100CE00090918C01892BA9F58091E800877F8093F2 -:100CF000E8000E947E088091890180930A010C948B -:100D0000DD0F80918701813221F58091E800877F96 -:100D10008093E8000E947E0880918A0180932501DB -:100D2000089580918701813AA1F48091E800877F3E -:100D30008093E8008091E80080FFFCCF809125013E -:100D40008093F1008091E8008E778093E8000C9406 -:100D50007E08089584B7877F84BF88E10FB6F89432 -:100D600080936000109260000FBE80E88093610065 -:100D7000109261000E94DA0B0E94CF080E942209A3 -:100D80008091E20084608093E20078940E94760B68 -:100D90000E94DC0B80E091E00E94910B8091860123 -:100DA000853069F40E942616809184018823B1F36E -:100DB0000E945116882391F30E942A07EFCF0E94C8 -:100DC000E20BECCF292F332723303105C1F05CF43F -:100DD0002130310579F022303105A1F582E290E031 -:100DE0002CE131E033C021323105F1F022323105FE -:100DF00011F128C082E190E02EE331E027C099276D -:100E00008130910541F08230910541F0892BD1F478 -:100E1000E8E1F1E005C0EEEFF0E002C0EEEDF0E059 -:100E2000849190E09F0112C061110CC089E090E0B4 -:100E30002EE231E00BC0611105C080E490E020E5B6 -:100E400031E004C080E090E020E030E0FA0131833E -:100E50002083089584E089BD86E089BD09B400FE41 -:100E6000FDCF8091D8008F7D8093D8008091E000E5 -:100E700082608093E0008091E00081FDFCCF0895C6 -:100E8000CF92DF92EF92FF920F931F93CF93DF9356 -:100E9000EC018B016A010E949D08811133C0C114CD -:100EA000D10439F0F60180819181081B190BC80F1C -:100EB000D91FE12CF12C0115110519F18091E800E1 -:100EC00085FD16C08091E8008E778093E800C114FC -:100ED000D10449F0F60180819181E80EF91EF1827A -:100EE000E08285E00FC00E949D08882321F30AC09C -:100EF00089918093F10001501109FFEFEF1AFF0A69 -:100F0000DACF80E0DF91CF911F910F91FF90EF90AA -:100F1000DF90CF90089520918D0130918E0126179A -:100F2000370748F06115710539F42091E8002E77F4 -:100F30002093E80001C0B90140E06115710591F10D -:100F400020918601222309F440C0253009F43FC0D6 -:100F50002091E80023FD3DC02091E80022FD2FC034 -:100F60002091E80020FFE9CF2091F20030E0FC0161 -:100F7000CF016115710559F02830310540F4819198 -:100F80008093F100615071092F5F3F4FF1CF41E035 -:100F90002830310509F040E02091E8002E772093B9 -:100FA000E800CBCF4111CCCF0AC0809186018823C5 -:100FB00061F0853061F08091E80083FD0AC0809186 -:100FC000E80082FFF2CF80E0089582E0089583E098 -:100FD000089581E0089520918D0130918E012617AA -:100FE000370748F06115710539F42091E8002E7734 -:100FF0002093E80001C0B901FC0120E061157105F2 -:1010000079F180918601882309F43DC0853009F487 -:101010003CC08091E80083FD3AC08091E80082FDE9 -:101020002CC08091E80080FFE9CF8091F20090E031 -:101030006115710559F08830910540F42491209391 -:10104000F1003196615071090196F2CF21E00897C5 -:1010500009F020E08091E8008E778093E800CECF01 -:101060002111CFCF0AC080918601882361F085309D -:1010700061F08091E80083FD0AC08091E80082FF62 -:10108000F2CF80E0089582E0089583E0089581E042 -:101090000895982F953058F59093E900981739F0F6 -:1010A0007091EC002091ED005091F00003C0242FCE -:1010B000762F50E021FF19C03091EB003E7F309336 -:1010C000EB003091ED003D7F3093ED003091EB006F -:1010D00031603093EB007093EC002093ED0050935F -:1010E000F0002091EE0027FF07C09F5FD3CF8F70E5 -:1010F0008093E90081E0089580E008958091870160 -:1011000087FF11C08091E80082FD05C080918601B3 -:101110008111F8CF11C08091E8008B770BC08091CE -:101120008601882349F08091E80080FFF8CF809104 -:10113000E8008E778093E80008952091E4003091D4 -:10114000E50095E64091EC00842F817040FF22C0BD -:101150008091E80080FD1CC080918601882391F079 -:10116000853091F08091EB0085FD10C04091E40046 -:101170005091E5004217530729F39A01915011F756 -:1011800084E0089582E0089583E0089581E0089561 -:1011900080E008954091E80042FFDECF08950E946C -:1011A0002C090E942F09E0EEF0E0808181608083AD -:1011B000E8EDF0E080818F77808319BCE3E6F0E012 -:1011C0008081816080831092850108950E942C099E -:1011D0000E942F098091D8008F778093D80080914A -:1011E000D80080688093D8008091D8008F7D80934C -:1011F000D80084E089BD86E089BD09B400FEFDCF3A -:101200001092860110928201109284011092830143 -:1012100042E060E080E00E9449088091E1008E7F1A -:101220008093E1008091E20081608093E2008091F0 -:10123000E20088608093E2008091E0008E7F8093DE -:10124000E0000895E3E6F0E080818E7F808381E016 -:10125000809385010C94E6081092E20008951092A4 -:10126000E10008951F920F920FB60F9211242F9351 -:101270003F934F935F936F937F938F939F93AF931E -:10128000BF93EF93FF938091E10082FF0BC08091A9 -:10129000E20082FF07C08091E1008B7F8093E10034 -:1012A0000E94750B8091E10080FF18C08091E200E0 -:1012B00080FF14C08091E2008E7F8093E2008091D5 -:1012C000E20080618093E2008091D8008062809388 -:1012D000D80019BC109286010E94F1058091E100AE -:1012E00084FF30C08091E20084FF2CC084E089BD7F -:1012F00086E089BD09B400FEFDCF8091D8008F7DC6 -:101300008093D8008091E1008F7E8093E1008091EE -:10131000E2008F7E8093E2008091E2008160809302 -:10132000E20080918201882311F084E007C080915F -:10133000E30087FD02C081E001C083E08093860165 -:101340000E94E3058091E10083FF29C08091E200C3 -:1013500083FF25C08091E100877F8093E10082E0D8 -:1013600080938601109282018091E1008E7F8093AC -:10137000E1008091E2008E7F8093E2008091E200A4 -:1013800080618093E20042E060E080E00E944908D2 -:101390008091F00088608093F0000E94F405FF9136 -:1013A000EF91BF91AF919F918F917F916F915F91DD -:1013B0004F913F912F910F900FBE0F901F90189556 -:1013C0001F920F920FB60F9211242F933F934F93BA -:1013D0005F936F937F938F939F93AF93BF93CF93BD -:1013E000DF93EF93FF93C091E900CF708091EC0001 -:1013F000D82FD17080FDD0E81092E9008091F000E4 -:10140000877F8093F00078940E94240A1092E9006C -:101410008091F00088608093F000CD2BCF70C09356 -:10142000E900FF91EF91DF91CF91BF91AF919F9133 -:101430008F917F916F915F914F913F912F910F907D -:101440000FBE0F901F9018951F93CF93DF93CDB7CA -:10145000DEB7AA970FB6F894DEBF0FBECDBFE7E8A0 -:10146000F1E088E08E0F9091F10091938E13FBCF05 -:101470000E94FA058091E80083FF1FC180918701D7 -:1014800090918801492F50E04A30510508F015C16C -:10149000FA01E65CFF4F0C946B17803881F08238BC -:1014A00009F00BC180918B018F708093E9008091CE -:1014B000EB0085FB882780F91092E90006C0809137 -:1014C000830190918401911182609091E800977F4F -:1014D0009093E8008093F1001092F100C8C0282F8B -:1014E0002D7F09F0EAC0882319F0823061F0E5C051 -:1014F00080918901813009F0E0C0933009F080E0EB -:10150000809384012BC080918901811127C0809133 -:101510008B018F7009F4D1C08093E9002091EB001A -:1015200020FF1CC0933021F48091EB00806214C036 -:101530009091EB0090619093EB0021E030E0A901E5 -:1015400002C0440F551F8A95E2F74093EA001092BB -:10155000EA008091EB0088608093EB001092E90034 -:101560008091E800877F86C08111A7C01091890112 -:101570001F778091E3008078812B8093E300809136 -:10158000E800877F8093E8000E947E088091E80051 -:1015900080FFFCCF8091E30080688093E30011110D -:1015A00002C082E001C083E08093860186C080583B -:1015B000823008F082C08091890190918A018C3D2F -:1015C00053E0950779F583E08A838AE289834FB7F0 -:1015D000F894DE01139620E03EE051E2E32FF0E0C4 -:1015E00050935700E49120FF03C0E295EF703F5FF6 -:1015F000EF708E2F90E0EA3010F0C79601C0C096D1 -:101600008D939D932F5F243149F74FBF8091E80060 -:10161000877F8093E8006AE270E0CE0101960E9425 -:101620008B0714C0AE014F5F5F4F60918B010E942A -:10163000E206BC01009709F440C09091E800977F52 -:101640009093E80089819A810E94EB078091E800DD -:101650008B778093E80031C0803879F58091E8007D -:10166000877F8093E800809182018093F1008091D0 -:10167000E8008E778093E8000E947E081EC08111EA -:101680001CC0909189019230C0F48091E800877F5E -:101690008093E800909382010E947E0880918201ED -:1016A000811106C08091E30087FD02C081E001C086 -:1016B00084E0809386010E94F5058091E80083FF15 -:1016C0000AC08091E800877F8093E8008091EB005A -:1016D00080628093EB00AA960FB6F894DEBF0FBE2F -:1016E000CDBFDF91CF911F9108950895CF93809141 -:1016F00086018823A1F0C091E900CF709091EC00A1 -:10170000892F817090FD80E8C82B1092E9008091AC -:10171000E80083FD0E94240ACF70C093E900CF91B6 -:10172000089590932B0180932A010895E0912A0156 -:10173000F0912B01309721F00190F081E02D099478 -:1017400080E00895E0912A01F0912B01309721F07B -:101750000280F381E02D09940895209128013091B1 -:1017600029018217930771F0909329018093280132 -:10177000E0912A01F0912B01309721F00680F7814A -:10178000E02D0994089520912601309127018217B8 -:10179000930771F09093270180932601E0912A012D -:1017A000F0912B01309721F00084F185E02D099410 -:1017B000089508950C94D90B0E9488160E940E017A -:1017C0000C940E17CF92DF92EF92FF920F931F931C -:1017D000CF93DF9300D000D000D0CDB7DEB70E940A -:1017E0001E01EE24E394F12C0E2D8E2D0E944B0150 -:1017F0009701235D3E4F6901F9011081182771F1AE -:1018000090917C0191FF04C08E830E9451018E81D2 -:1018100012FD07C011FD08C010FF20C011E090E0CC -:1018200005C014E092E002C012E091E099830A83BF -:10183000812391E009F490E09B830E9491168160DE -:10184000782F9D838C8349815A816B818D810E9481 -:101850006C0CF60180811827108315C0EF2819F051 -:10186000E12CF12CC1CF8FEF89838A831B820E94E8 -:1018700091168160782F9D838C8349815A816B8179 -:101880008D810E946C0C10912C010E94960B1817F0 -:10189000A1F00E94960B80932C0126960FB6F89427 -:1018A000DEBF0FBECDBFDF91CF911F910F91FF9093 -:1018B000EF90DF90CF900C94450526960FB6F894E4 -:1018C000DEBF0FBECDBFDF91CF911F910F91FF9073 -:1018D000EF90DF90CF900895CF93DF93CDB7DEB731 -:1018E0002B970FB6F894DEBF0FBECDBF4F8358873E -:1018F00069877A878B87DE01119686E0FD01119258 -:101900008A95E9F785E0FE01379601900D928A9558 -:10191000E1F749815A816B817C818D819E810E9492 -:101920008A122B960FB6F894DEBF0FBECDBFDF91A3 -:10193000CF910895882309F4B9C0823859F40E94E0 -:10194000960B81FDB3C089E30E9468150E94EB15D8 -:1019500089E30CC0833871F40E94960B80FDA6C009 -:1019600083E50E9468150E94EB1583E50E948515AA -:101970000C94EB15843859F40E94960B82FD96C0A6 -:1019800087E40E9468150E94EB1587E4EFCF9CEF77 -:10199000980F913A18F40E946815EACF90E2980FD8 -:1019A000983050F4877091E001C0990F8A95EAF75A -:1019B000892F0E94A415DCCF9BE5980F933070F41B -:1019C000853A29F0863A31F083E890E005C081E855 -:1019D00090E002C082E890E00C94AD0B98E5980F7F -:1019E000933108F063C0883A39F1893A41F18A3A73 -:1019F00049F18B3A51F18C3A59F18D3A61F1803BC2 -:101A000069F18E3A71F18F3A79F1813B81F1823B34 -:101A100089F1833B91F1843B99F1853BA1F1863BB0 -:101A2000A9F1873BB1F1883BB9F1893BC1F18A3B10 -:101A3000C9F180E090E038C082EE90E035C089EED8 -:101A400090E032C08AEE90E02FC085EB90E02CC091 -:101A500086EB90E029C087EB90E026C08CEC90E00C -:101A600023C08DEC90E020C083E891E01DC08AE89F -:101A700091E01AC082E991E017C084E991E014C0B6 -:101A800081E292E011C083E292E00EC084E292E033 -:101A90000BC085E292E008C086E292E005C087E2D2 -:101AA00092E002C08AE292E00C94C30B089588236E -:101AB00009F44BC0823859F40E94960B81FF45C04F -:101AC00089E30E9468150E94EB1589E30CC08338F6 -:101AD00071F40E94960B80FF38C083E50E94681560 -:101AE0000E94EB1583E50E9485150C94EB15843854 -:101AF00059F40E94960B82FF28C087E40E94681563 -:101B00000E94EB1587E4EFCF9CEF980F913A58F3C2 -:101B100090E2980F983050F4877091E001C0990FCF -:101B20008A95EAF7892F0E94AA15DFCF9BE5980FC7 -:101B3000933020F480E090E00C94AD0B885A833110 -:101B400020F480E090E00C94C30B0895882321F0EA -:101B50000E94A4150C94EB150895882321F00E948F -:101B6000AA150C94EB1508957F928F929F92AF92D5 -:101B7000BF92CF92DF92EF92FF920F931F93CF937A -:101B8000DF931F92CDB7DEB77C01C62E772EFC0106 -:101B9000158112951F70028101110E94C1150E94CA -:101BA0006115882379F0002369F080E28C0D88307C -:101BB00048F082E00E944A150E94611591E0D82EFB -:101BC000D92601C0D12CE72DE295EF70F0E0EC5B57 -:101BD000FF4F0C946B17872D807F172D1F70882364 -:101BE00011F01295107F002389F0112309F46DC1C3 -:101BF00080E28C0D883020F4812F0E94A41503C050 -:101C0000812F0E94B4150E94EB155FC18C2D0E949C -:101C1000570D112309F472C180E28C0D883020F435 -:101C2000812F0E94AA1503C0812F0E94BA150E941D -:101C3000EB1564C1872D807F972D9F70803211F442 -:101C4000892F03C0892F8295807FCC2021F0F1E07D -:101C5000CF16A1F01DC0002339F0112319F1113066 -:101C600009F50E94D4154AC1112319F0113009F465 -:101C700045C189830E94D7158981E5C0002321F0E1 -:101C8000163008F03BC10EC0153008F037C1DBC07C -:101C9000002359F0112331F0F701958190FF15C110 -:101CA0009F7095830E94A60D29C1112309F4CBC012 -:101CB00012C1872D837009F052C001111FC18C2DF4 -:101CC000829586958770880F880F9C2D9F70892E2E -:101CD000912CA12CB12C082E04C0880C991CAA1C94 -:101CE000BB1C0A94D2F7C4FE14C00FE010E020E041 -:101CF00030E0B901A80104C0440F551F661F771FCB -:101D00008A95D2F7CB01BA01609570958095909530 -:101D100003C060E070E0CB01272D26952695237047 -:101D200030E02230310569F02330310589F068292F -:101D300079298A299B292130310571F00E94D61317 -:101D4000DDC0682979298A299B290E94F213D6C00F -:101D50000E94D613C501B4010E94BA13CFC000235C -:101D600019F0872D817001C08695882309F4C6C0BB -:101D70008C2D829586958770880F880F9C2D9F707B -:101D8000892E912CA12CB12C082E04C0880C991CF2 -:101D9000AA1CBB1C0A94D2F7C4FE14C00FE010E0CA -:101DA00020E030E0B901A80104C0440F551F661FB0 -:101DB000771F8A95D2F7CB01BA016095709580950F -:101DC000909503C060E070E0CB01272D2695269505 -:101DD0002370422F50E04230510569F043305105E5 -:101DE00089F0682979298A299B294130510571F0A8 -:101DF0000E94B01483C0682979298A299B290E94EE -:101E0000CC147CC00E94B014C501B4010E9494148B -:101E100075C08C2D90E0FC01E05EF109E531F10523 -:101E200008F04FC0EC5AFF4F0C946B171C2D1F701D -:101E3000872D8F71002321F00E942D14812F32CF26 -:101E40000E944E14812F0E94AD0D58C0002341F016 -:101E5000153008F053C0872D8F710E9473144EC047 -:101E6000163008F04BC0F7CF002339F0872D8F7163 -:101E70000E942D1443C00023C9F3872D8F710E9447 -:101E80004E143CC0002329F0872D8F710E94181436 -:101E900035C00E940E1432C0002351F0172D1F715F -:101EA000812F0E942D1463E0812F0E94411526C0CE -:101EB00081E00E944A15123008F182E00E944A1522 -:101EC0001DC0002331F0112389F28C2D0E949A0C41 -:101ED00015C0112391F28C2D0E94570D0FC0472D74 -:101EE0004F706C2DC7010E9478010E94321306C00A -:101EF000472D4F706C2DC7010E944602DD20F9F07E -:101F00000E943D1580FD1BC0F70112820E9437150B -:101F10000E942D14C7010E94AE0F0E9437150F902A -:101F2000DF91CF911F910F91FF90EF90DF90CF90B5 -:101F3000BF90AF909F908F907F900C944E140F9015 -:101F4000DF91CF911F910F91FF90EF90DF90CF9095 -:101F5000BF90AF909F908F907F9008950F931F93A5 -:101F6000CF93DF93EC01888199812B813C81232BD6 -:101F7000B9F09F3F11F48F3F99F0CE010E949E016E -:101F8000882371F0688179818A810E9433158C01E0 -:101F90000E94E8140E94AF13B801CE010E94B40D54 -:101FA000DF91CF911F910F9108950E94C1150E945A -:101FB000D1150E9496150C94EB150E94B1150C9446 -:101FC000D50F0E942815292F22952F7030E02C3034 -:101FD00031054CF42A3031056CF42250310922309D -:101FE0003105A8F407C02C30310569F02F303105D8 -:101FF00051F00DC0803F69F018F4803E40F409C0F4 -:10200000843F29F406C093FB882780F9089580E077 -:10201000089581E00895CF93DF9300D000D01F9200 -:10202000CDB7DEB70F900F900F900F900F90DF910C -:10203000CF910895CF93DF9300D000D000D0CDB7DB -:10204000DEB726960FB6F894DEBF0FBECDBFDF9188 -:10205000CF910895CF93DF93C0912F0180913001EC -:10206000C817A1F0D0E0CE0166E070E00E945A17D8 -:10207000FC01EF5CFE4F408151816281738184815C -:1020800095810E941A102196C770E8CFDF91CF91F9 -:1020900008954091610150916201609163017091D6 -:1020A000640180916501909166010C941A10CF93A0 -:1020B000DF938091660182958F7009F05CC08091FA -:1020C0006301882309F457C020912F01D09130017A -:1020D00040916101C0916201E0916401F09165015C -:1020E0002D1709F448C030E0309709F440C0CF3FC5 -:1020F00011F44F3FE1F1C90166E070E00E945A1708 -:10210000DC01AF5CBE4F11968C911197C8132FC0A4 -:102110008C9148132CC012968C911297811127C074 -:1021200013968D919C9114978E179F0708F4019731 -:102130008E1B9F0B883C9105D0F4809166018F70B7 -:10214000806180936601C90166E070E00E945A17C1 -:10215000FC01EA5CFE4F90819F709061908381E664 -:1021600091E00E94AE0FDF91CF910C942A102F5F67 -:102170003F4F2770B5CFDF91CF910895BF92CF9297 -:10218000DF92EF92FF920F931F93CF93DF93CDB720 -:10219000DEB761970FB6F894DEBF0FBECDBF8C01DE -:1021A00085E0F801DE011D9601900D928A95E1F718 -:1021B000D8014C9111962C9111971296EC90129790 -:1021C0001396CD90DC90149750916101609162015B -:1021D0008091640190916501009709F46EC16F3F91 -:1021E00019F45F3F09F469C1B0906301BB2009F4A1 -:1021F000C3C030916601C816D90628F0F601E81B65 -:10220000F90BCF0104C0809590958C0D9D1DFF2486 -:10221000F394883C910588F0F12C307F09F0CBC015 -:102220007C2DD98AC88A522F6E2D89890E940B1065 -:1022300081E691E00E94AE0FB4C0832F807F09F049 -:1022400049C0621314C0541312C0E11010C03F7093 -:102250003061309366010E94491081E691E00E944E -:10226000AE0F80916601D80115968C9331C0CD28B0 -:1022700031F12F3F11F44F3F11F1FE2CE1101FC03F -:10228000E0912F0130913001E31709F45CC0F0E0D8 -:10229000CF0166E070E00E945A17DC01AF5CBE4FD0 -:1022A00011968C911197281307C08C91481304C084 -:1022B00012968C91811103C03196E770E5CFFE2C08 -:1022C000EE2009F416C18091660181608093660159 -:1022D000F12C0FC1621308C0541306C0E11004C0F2 -:1022E00080916601D801C1C04D872E878D859E855E -:1022F0000E94E10F8823E1F1EE20D1F120916601E7 -:10230000822F82958F7090E0029774F08091610126 -:102310009091620198878F831986DB86CA862C8705 -:10232000CE0107960E94AE0F86E0F801A1E6B1E06B -:1023300001900D928A95E1F70E9457100E94491072 -:10234000FF24F394D6C04D872E878D859E850E94ED -:102350002815292F22952F7030E0223031050CF0FE -:10236000BCC09F7009F0B6C0805E883008F4C1C060 -:10237000C8010E94AE0FE4CFC816D90608F453C0B6 -:10238000F601E81BF90BCF01883C910508F450C019 -:10239000F12C7C2DD98AC88A522F6E2D89890E94F2 -:1023A0000B10E1E6F1E086E0DF011D928A95E9F786 -:1023B0000E9449109EC0621314C0541312C0E11051 -:1023C00010C080916601F8018583C8010E94AE0F9C -:1023D00086E0E1E6F1E0DF011D928A95E9F7FB2C4A -:1023E00088C04D872E878D859E850E94E10F8823AA -:1023F00009F4BECFEE2009F4BBCF20916601822FF5 -:1024000082958F7090E002970CF48ECF80916101DD -:10241000909162019A8389831B82DD82CC822E8314 -:10242000CE0101967FCF809590958C0D9D1DACCFF0 -:10243000FE2CEE2009F49CCF62132EC054132CC046 -:102440002091660120FD1FC0822F82958F70D9F0E8 -:10245000D80115962C9315978F3049F08F5F982FE0 -:102460009295907F822F8F70892B15968C93C8013F -:102470000E94AE0F86E0F801A1E6B1E001900D9256 -:102480008A95E1F795CF86E0F801A1E6B1E00190E9 -:102490000D928A95E1F72DC04D872E878D859E85FB -:1024A0000E94E10F811140CF80916601816080938D -:1024B0006601C8010E94AE0F1CC0EE2009F458CF7F -:1024C0004D872E878D859E850E94E10F882309F414 -:1024D0004FCF2ACF811148CF0CC0243031050CF0EA -:1024E00047CF9F7009F440CFF8019581907F09F0A4 -:1024F0003BCF8F2D61960FB6F894DEBF0FBECDBFD8 -:10250000DF91CF911F910F91FF90EF90DF90CF90CF -:10251000BF900895CF93DF93CDB7DEB72C970FB65A -:10252000F894DEBF0FBECDBF4F83588769877A8787 -:102530008B879C87CE0107960E94BE10882371F07E -:102540008F8198852A853B85232B09F43FC09F3FC7 -:1025500009F068C08F3F09F065C038C086E0FE0111 -:102560003796DE01119601900D928A95E1F76F8101 -:102570007885EA85FB85309749F17F3F11F46F3FFD -:1025800029F18091300190E09C012F5F3F4F27702F -:10259000332740912F0150E02417350709F44BC031 -:1025A00069837A83FD83EC8366E070E00E945A17AA -:1025B000DC01AF5CBE4F96E0FE01319601900D92BA -:1025C0009A95E1F7209330010E942A1080912F0103 -:1025D000909130018917E9F190E066E070E00E9487 -:1025E0005A178F5C9E4F0E94BE10882391F18091F4 -:1025F0002F0190E066E070E00E945A17FC01EF5C4A -:10260000FE4F4081518162817381848195810E9456 -:102610001A1080912F0190E001968770992780937E -:102620002F01D4CF4F81588569857A858B859C850C -:102630000E941A10CBCF0E94DD0F10923001109231 -:102640002F01E1E6F1E086E0DF011D928A95E9F7CE -:10265000BDCF2C960FB6F894DEBF0FBECDBFDF9175 -:10266000CF910895EF92FF920F931F93CF93DF9333 -:102670008C01009709F46CC0F12CEE24E394E8017E -:102680002196F8018491843740F4843008F051C0D9 -:10269000813081F0823019F15BC0853709F444C084 -:1026A000A8F19CE7980F903708F052C08F770E94EE -:1026B000570D41C00E5F1F4FFE01C49180E28C0F89 -:1026C000883048F4C7708E2D01C0880FCA95EAF78C -:1026D0000E94C41514C08C2F0E949A0C2DC00E5F4E -:1026E0001F4FFE01C49180E28C0F883058F4C770F0 -:1026F0008E2D01C0880FCA95EAF70E94CA150E9464 -:10270000EB151AC08C2F0E94570D16C00E5F1F4F7D -:10271000FE01C491CC2381F08FE99FE00197F1F78E -:1027200000C00000C150F6CF0E5F1F4FFE01F490B5 -:1027300003C00E949A0C8E018F2D882309F49FCF2D -:10274000EFE9FFE03197F1F700C000008150F5CFCD -:10275000DF91CF911F910F91FF90EF900895089511 -:1027600060936B0170936C0180936D0190936E0187 -:102770000C94D50F0F931F9300916B0110916C0176 -:1027800020916D0130916E01DC01CB01802B912BEA -:10279000A22BB32B80936B0190936C01A0936D01DE -:1027A000B0936E011F910F910C94D50F0F931F934F -:1027B00000916B0110916C0120916D0130916E01BF -:1027C000DC01CB0180239123A223B32380936B01EF -:1027D00090936C01A0936D01B0936E011F910F91C6 -:1027E0000C94D50F0F931F9300916B0110916C0106 -:1027F00020916D0130916E01DC01CB018027912782 -:10280000A227B32780936B0190936C01A0936D0175 -:10281000B0936E011F910F910C94D50F1092670128 -:10282000109268011092690110926A010C94D50F00 -:1028300041E050E060E070E004C0440F551F661FA7 -:10284000771F8A95D2F74093670150936801609390 -:10285000690170936A010C94D50F41E050E060E08B -:1028600070E004C0440F551F661F771F8A95D2F78A -:102870008091670190916801A0916901B0916A010E -:10288000482B592B6A2B7B2B40936701509368018F -:102890006093690170936A010C94D50F41E050E098 -:1028A00060E070E004C0440F551F661F771F8A95D3 -:1028B000D2F7409550956095709580916701909101 -:1028C0006801A0916901B0916A01482359236A23E4 -:1028D0007B23409367015093680160936901709373 -:1028E0006A010C94D50F41E050E060E070E004C054 -:1028F000440F551F661F771F8A95D2F78091670195 -:1029000090916801A0916901B0916A014827592707 -:102910006A277B27409367015093680160936901A0 -:1029200070936A010C94D50F0F931F930091670168 -:10293000109168012091690130916A01DC01CB019D -:10294000802B912BA22BB32B80936701909368016E -:10295000A0936901B0936A011F910F910C94D50F58 -:102960000F931F93009167011091680120916901F5 -:1029700030916A01DC01CB0180239123A223B32390 -:102980008093670190936801A0936901B0936A01F5 -:102990001F910F910C94D50F0F931F930091670116 -:1029A000109168012091690130916A01DC01CB012D -:1029B00080279127A227B32780936701909368010E -:1029C000A0936901B0936A011F910F910C94D50FE8 -:1029D0000895CF92DF92EF92FF920F931F93CF93C0 -:1029E000DF938C01C0906B01D0906C01E0906D0181 -:1029F000F0906E018091670190916801A09169014A -:102A0000B0916A01C82AD92AEA2AFB2ACFE1D0E08C -:102A1000D701C6010C2E04C0B695A795979587954A -:102A20000A94D2F780FF06C0B8018C2F0E94A3043D -:102A3000019721F4219760F780E001C08C2FDF918E -:102A4000CF911F910F91FF90EF90DF90CF9008955D -:102A5000CF93DF93EC010E94E914BE010E94A3040E -:102A6000DF91CF910895CB010E94281508958091A0 -:102A70006F01859585958595089580916F01877083 -:102A80000895982F990F990F990F692B60936F01F3 -:102A90000C942D1420916F018095822380936F01F7 -:102AA000982F977069F430E0482F552747FD5095CF -:102AB0002417350729F08595859585950C944E1436 -:102AC000089590916F01977081E009F480E0089576 -:102AD00020910B0130910C01F90132969FEF40E0FB -:102AE0005191581789F09F3F19F4511101C0942F4B -:102AF0004F5F4630A9F79F3F39F0F901E90FF11D0B -:102B000097FDFA9582830895089520910B013091E5 -:102B10000C01F9013296285F3F4F9081981301C054 -:102B200010823196E217F307C1F7089581E090E033 -:102B3000E0910B01F0910C01E80FF91F1082019652 -:102B400088309105A9F7089590917B01892B809396 -:102B50007B010895809590917B01892380937B016F -:102B6000089510927B01089590917A01892B8093AA -:102B70007A010895809590917A01892380937A0152 -:102B8000089510927A01089590917901892B80938C -:102B90007901089580959091790189238093790135 -:102BA000089510927901089580937001089510920C -:102BB0007001089580910B0190910C01FC013196F8 -:102BC0009C01285F3F4F80E0919191118F5FE21748 -:102BD000F307D1F70895E0910B01F0910C0180917A -:102BE0007B018083E0910B01F0910C019081809139 -:102BF0007A01892B8083E0910B01F0910C01908187 -:102C000080917901892B808380917001882361F004 -:102C1000E0910B01F0910C019081892B80830E943F -:102C2000DA1581111092700180910B0190910C01C5 -:102C30000C94A20B20E0009739F0AC0141505109EF -:102C4000842395232F5FF7CF822F089580918601EB -:102C5000843021F110927D0120E488E190E00FB6EC -:102C6000F894A895809360000FBE2093600080E0E8 -:102C70000E94450583B7817F846083BF83B78160ED -:102C800083BF7894889583B78E7F83BF88E10FB622 -:102C9000F89480936000109260000FBE089508952C -:102CA00008950E944F160E941E010E9450160E9415 -:102CB000520191E0811101C090E0892F08951F9287 -:102CC0000F920FB60F9211248F939F93AF93BF93E0 -:102CD00080917D01811113C080917E0190917F01CF -:102CE000A0918001B09181014196A11DB11D8093F9 -:102CF0007E0190937F01A0938001B0938101BF91E9 -:102D0000AF919F918F910F900FBE0F901F901895CC -:102D100082E084BD93E095BD9AEF97BD80936E00ED -:102D200008952FB7F89480917E0190917F01A09132 -:102D30008001B09181012FBF0895CF92DF92EF9271 -:102D4000FF920F931F932FB7F89440917E015091FB -:102D50007F0160918001709181012FBF6A017B0129 -:102D6000EE24FF248C0120E030E0C016D106E206FC -:102D7000F30610F4415051099A01281B390BC9017F -:102D80001F910F91FF90EF90DF90CF9008951F92C9 -:102D90000F920FB60F9211248F939F93AF93BF930F -:102DA00080917E0190917F01A0918001B09181017D -:102DB0000196A11DB11D80937E0190937F01A09388 -:102DC0008001B0938101BF91AF919F918F910F903E -:102DD0000FBE0F901F9018950E94CF08F8942FEF08 -:102DE00087EA91E6215080409040E1F700C0000062 -:102DF00087E090EBDC018093900190939101A09388 -:102E00009201B09393019CE088E10FB6F894A895E5 -:102E1000809360000FBE90936000FFCF0E943E172A -:102E2000811102C00E9424170E94491780937C01DF -:102E30000E94511780938F010E944D17682F70E0F8 -:102E400080E090E00C94B0136DEE7EEF80E090E0B7 -:102E50000E94911760E082E090E00E947F1760E09E -:102E600083E090E00E947F1760E084E090E00E94A1 -:102E70007F1760E085E090E00C947F1780E090E0A1 -:102E80000E94791721E08D3E9E4F09F020E0822FAD -:102E9000089582E090E00C94711783E090E00C9428 -:102EA000711784E090E00C947117682F84E090E033 -:102EB0000C947F170024552704C0080E591F880F53 -:102EC000991F009729F076956795B8F37105B9F7C2 -:102ED000802D952F0895EE0FFF1F0590F491E02DA2 -:102EE0000994F999FECF92BD81BDF89A992780B5D2 -:102EF0000895A8E1B0E042E050E00C949917262F25 -:102F0000F999FECF92BD81BDF89A019700B40216DF -:102F100039F01FBA20BD0FB6F894FA9AF99A0FBE8D -:102F200008950196272F0E9480170C947F17DC01CB -:102F3000CB01FC01F999FECF06C0F2BDE1BDF89AC4 -:102F4000319600B40D9241505040B8F70895F8946E -:022F5000FFCFB1 -:0E2F52004705B3054A057F054B0501710100D7 -:00000001FF diff --git a/keyboards/sixkeyboard/matrix.c b/keyboards/sixkeyboard/matrix.c index 6dc93cda1..c27998648 100644 --- a/keyboards/sixkeyboard/matrix.c +++ b/keyboards/sixkeyboard/matrix.c @@ -40,10 +40,20 @@ static matrix_row_t matrix[MATRIX_ROWS]; __attribute__ ((weak)) void matrix_init_kb(void) { + matrix_init_user(); } __attribute__ ((weak)) void matrix_scan_kb(void) { + matrix_scan_user(); +} + +__attribute__ ((weak)) +void matrix_init_user(void) { +} + +__attribute__ ((weak)) +void matrix_scan_user(void) { } inline diff --git a/keyboards/sixkeyboard/readme.md b/keyboards/sixkeyboard/readme.md new file mode 100644 index 000000000..7d78a0cae --- /dev/null +++ b/keyboards/sixkeyboard/readme.md @@ -0,0 +1,18 @@ +# Techkeys SixKeyBoard + +[Get one here!](http://techkeys.us/collections/accessories/products/sixkeyboard) + +The schematic is like this: + +``` + switches leds +,--+--+--. ,--+--+--. +|C7|B7|B5| |C6|B6|B4| ++--+--+--+ +--+--+--+ +|D6|D1|D4| |D5|D2|D3| +`--+--+--' `--+--+--' +``` + +The LED on the bottom is `C4`. All 7 of the leds are turned on when the keyboard boots-up in the `sixkeyboard.c` file - backlight_enable is not required. The MCU is an Atmega16u2, so the flash memory is limited to 0x3000 bytes - the current setup uses just about all of that! I'm sure things can be opitimised a bit. + +There is a jumper on the bottom of the board (next to the USB port) that serves as a reset button - I drilled a hole in my case to allow for quick access via a screwdriver/metal object. \ No newline at end of file diff --git a/keyboards/sixkeyboard/sixkeyboard.c b/keyboards/sixkeyboard/sixkeyboard.c index 7c15e6499..85190f616 100644 --- a/keyboards/sixkeyboard/sixkeyboard.c +++ b/keyboards/sixkeyboard/sixkeyboard.c @@ -1,20 +1,5 @@ #include "sixkeyboard.h" -__attribute__ ((weak)) -void matrix_init_user(void) { - // leave this function blank - it can be defined in a keymap file -}; - -__attribute__ ((weak)) -void matrix_scan_user(void) { - // leave this function blank - it can be defined in a keymap file -}; - -__attribute__ ((weak)) -void led_set_user(uint8_t usb_led) { - // leave this function blank - it can be defined in a keymap file -}; - void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up @@ -42,11 +27,4 @@ void matrix_init_kb(void) { PORTD &= ~(1<<3); matrix_init_user(); -}; - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - - matrix_scan_user(); }; \ No newline at end of file diff --git a/keyboards/sixkeyboard/sixkeyboard.h b/keyboards/sixkeyboard/sixkeyboard.h index 5c0820d7d..66f53bf7e 100644 --- a/keyboards/sixkeyboard/sixkeyboard.h +++ b/keyboards/sixkeyboard/sixkeyboard.h @@ -15,8 +15,4 @@ // instead of the obtuse 11x8 matrix. -void matrix_init_user(void); -void matrix_scan_user(void); -void led_set_user(uint8_t usb_led); - #endif \ No newline at end of file diff --git a/quantum/config_common.h b/quantum/config_common.h index 02f11d979..09a4fe701 100644 --- a/quantum/config_common.h +++ b/quantum/config_common.h @@ -5,46 +5,46 @@ #define COL2ROW 0 #define ROW2COL 1 /* I/O pins */ -#define B0 { .input_addr = 3, .bit = 0 } -#define B1 { .input_addr = 3, .bit = 1 } -#define B2 { .input_addr = 3, .bit = 2 } -#define B3 { .input_addr = 3, .bit = 3 } -#define B4 { .input_addr = 3, .bit = 4 } -#define B5 { .input_addr = 3, .bit = 5 } -#define B6 { .input_addr = 3, .bit = 6 } -#define B7 { .input_addr = 3, .bit = 7 } -#define C0 { .input_addr = 6, .bit = 0 } -#define C1 { .input_addr = 6, .bit = 1 } -#define C2 { .input_addr = 6, .bit = 2 } -#define C3 { .input_addr = 6, .bit = 3 } -#define C4 { .input_addr = 6, .bit = 4 } -#define C5 { .input_addr = 6, .bit = 5 } -#define C6 { .input_addr = 6, .bit = 6 } -#define C7 { .input_addr = 6, .bit = 7 } -#define D0 { .input_addr = 9, .bit = 0 } -#define D1 { .input_addr = 9, .bit = 1 } -#define D2 { .input_addr = 9, .bit = 2 } -#define D3 { .input_addr = 9, .bit = 3 } -#define D4 { .input_addr = 9, .bit = 4 } -#define D5 { .input_addr = 9, .bit = 5 } -#define D6 { .input_addr = 9, .bit = 6 } -#define D7 { .input_addr = 9, .bit = 7 } -#define E0 { .input_addr = 0xC, .bit = 0 } -#define E1 { .input_addr = 0xC, .bit = 1 } -#define E2 { .input_addr = 0xC, .bit = 2 } -#define E3 { .input_addr = 0xC, .bit = 3 } -#define E4 { .input_addr = 0xC, .bit = 4 } -#define E5 { .input_addr = 0xC, .bit = 5 } -#define E6 { .input_addr = 0xC, .bit = 6 } -#define E7 { .input_addr = 0xC, .bit = 7 } -#define F0 { .input_addr = 0xF, .bit = 0 } -#define F1 { .input_addr = 0xF, .bit = 1 } -#define F2 { .input_addr = 0xF, .bit = 2 } -#define F3 { .input_addr = 0xF, .bit = 3 } -#define F4 { .input_addr = 0xF, .bit = 4 } -#define F5 { .input_addr = 0xF, .bit = 5 } -#define F6 { .input_addr = 0xF, .bit = 6 } -#define F7 { .input_addr = 0xF, .bit = 7 } +#define B0 0x30 +#define B1 0x31 +#define B2 0x32 +#define B3 0x33 +#define B4 0x34 +#define B5 0x35 +#define B6 0x36 +#define B7 0x37 +#define C0 0x60 +#define C1 0x61 +#define C2 0x62 +#define C3 0x63 +#define C4 0x64 +#define C5 0x65 +#define C6 0x66 +#define C7 0x67 +#define D0 0x90 +#define D1 0x91 +#define D2 0x92 +#define D3 0x93 +#define D4 0x94 +#define D5 0x95 +#define D6 0x96 +#define D7 0x97 +#define E0 0xC0 +#define E1 0xC1 +#define E2 0xC2 +#define E3 0xC3 +#define E4 0xC4 +#define E5 0xC5 +#define E6 0xC6 +#define E7 0xC7 +#define F0 0xF0 +#define F1 0xF1 +#define F2 0xF2 +#define F3 0xF3 +#define F4 0xF4 +#define F5 0xF5 +#define F6 0xF6 +#define F7 0xF7 /* USART configuration */ #ifdef BLUETOOTH_ENABLE diff --git a/quantum/keymap.h b/quantum/keymap.h index 6ac3d2ace..41fa394ab 100644 --- a/quantum/keymap.h +++ b/quantum/keymap.h @@ -125,8 +125,8 @@ enum quantum_keycodes { MUV_DE, // Midi mode on/off - MI_ON, - MI_OFF, + MIDI_ON, + MIDI_OFF, // Backlight functionality BL_0, @@ -154,7 +154,10 @@ enum quantum_keycodes { KC_LSPO, // Right shift, close paren - KC_RSPC + KC_RSPC, + + // always leave at the end + SAFE_RANGE }; // Ability to use mods in layouts @@ -266,6 +269,9 @@ enum quantum_keycodes { #define BL_ON BL_9 #define BL_OFF BL_0 +#define MI_ON MIDI_ON +#define MI_OFF MIDI_OFF + // GOTO layer - 16 layers max // when: // ON_PRESS = 1 diff --git a/quantum/led.c b/quantum/led.c deleted file mode 100644 index 2634ab2f6..000000000 --- a/quantum/led.c +++ /dev/null @@ -1,54 +0,0 @@ -/* -Copyright 2012 Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include -#include "stdint.h" -#include "led.h" - -__attribute__ ((weak)) -void led_set_kb(uint8_t usb_led) { - -} - -__attribute__ ((weak)) -void led_init_ports(void) -{ - -} - -__attribute__ ((weak)) -void led_set(uint8_t usb_led) -{ - - // Example LED Code - // - // // Using PE6 Caps Lock LED - // if (usb_led & (1<. # define DEBOUNCING_DELAY 5 #endif -static const io_pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; -static const io_pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; +static const uint8_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; +static const uint8_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; /* matrix state */ #if DIODE_DIRECTION == COL2ROW static matrix_row_t matrix[MATRIX_ROWS]; @@ -52,10 +52,30 @@ static matrix_col_t read_rows(void); __attribute__ ((weak)) void matrix_init_quantum(void) { + matrix_init_kb(); } __attribute__ ((weak)) void matrix_scan_quantum(void) { + matrix_scan_kb(); +} + +__attribute__ ((weak)) +void matrix_init_kb(void) { + matrix_init_user(); +} + +__attribute__ ((weak)) +void matrix_scan_kb(void) { + matrix_scan_user(); +} + +__attribute__ ((weak)) +void matrix_init_user(void) { +} + +__attribute__ ((weak)) +void matrix_scan_user(void) { } uint8_t matrix_rows(void) { @@ -70,22 +90,22 @@ void matrix_power_up(void) { #if DIODE_DIRECTION == COL2ROW for (int8_t r = MATRIX_ROWS - 1; r >= 0; --r) { /* DDRxn */ - _SFR_IO8(row_pins[r].input_addr + 1) |= _BV(row_pins[r].bit); + _SFR_IO8((row_pins[r] >> 4) + 1) |= _BV(row_pins[r] & 0xF); toggle_row(r); } for (int8_t c = MATRIX_COLS - 1; c >= 0; --c) { /* PORTxn */ - _SFR_IO8(col_pins[c].input_addr + 2) |= _BV(col_pins[c].bit); + _SFR_IO8((col_pins[c] >> 4) + 2) |= _BV(col_pins[c] & 0xF); } #else for (int8_t c = MATRIX_COLS - 1; c >= 0; --c) { /* DDRxn */ - _SFR_IO8(col_pins[c].input_addr + 1) |= _BV(col_pins[c].bit); + _SFR_IO8((col_pins[c] >> 4) + 1) |= _BV(col_pins[c] & 0xF); toggle_col(c); } for (int8_t r = MATRIX_ROWS - 1; r >= 0; --r) { /* PORTxn */ - _SFR_IO8(row_pins[r].input_addr + 2) |= _BV(row_pins[r].bit); + _SFR_IO8((row_pins[r] >> 4) + 2) |= _BV(row_pins[r] & 0xF); } #endif } @@ -100,22 +120,22 @@ void matrix_init(void) { #if DIODE_DIRECTION == COL2ROW for (int8_t r = MATRIX_ROWS - 1; r >= 0; --r) { /* DDRxn */ - _SFR_IO8(row_pins[r].input_addr + 1) |= _BV(row_pins[r].bit); + _SFR_IO8((row_pins[r] >> 4) + 1) |= _BV(row_pins[r] & 0xF); toggle_row(r); } for (int8_t c = MATRIX_COLS - 1; c >= 0; --c) { /* PORTxn */ - _SFR_IO8(col_pins[c].input_addr + 2) |= _BV(col_pins[c].bit); + _SFR_IO8((col_pins[c] >> 4) + 2) |= _BV(col_pins[c] & 0xF); } #else for (int8_t c = MATRIX_COLS - 1; c >= 0; --c) { /* DDRxn */ - _SFR_IO8(col_pins[c].input_addr + 1) |= _BV(col_pins[c].bit); + _SFR_IO8((col_pins[c] >> 4) + 1) |= _BV(col_pins[c] & 0xF); toggle_col(c); } for (int8_t r = MATRIX_ROWS - 1; r >= 0; --r) { /* PORTxn */ - _SFR_IO8(row_pins[r].input_addr + 2) |= _BV(row_pins[r].bit); + _SFR_IO8((row_pins[r] >> 4) + 2) |= _BV(row_pins[r] & 0xF); } #endif matrix_init_quantum(); @@ -151,14 +171,14 @@ uint8_t matrix_scan(void) { static void toggle_row(uint8_t row) { /* PINxn */ - _SFR_IO8(row_pins[row].input_addr) = _BV(row_pins[row].bit); + _SFR_IO8((row_pins[row] >> 4)) = _BV(row_pins[row] & 0xF); } static matrix_row_t read_cols(void) { matrix_row_t state = 0; for (int8_t c = MATRIX_COLS - 1; c >= 0; --c) { /* PINxn */ - if (!(_SFR_IO8(col_pins[c].input_addr) & _BV(col_pins[c].bit))) { + if (!(_SFR_IO8((col_pins[c] >> 4)) & _BV(col_pins[c] & 0xF))) { state |= (matrix_row_t)1 << c; } } @@ -199,14 +219,14 @@ uint8_t matrix_scan(void) { static void toggle_col(uint8_t col) { /* PINxn */ - _SFR_IO8(col_pins[col].input_addr) = _BV(col_pins[col].bit); + _SFR_IO8((col_pins[col] >> 4)) = _BV(col_pins[col] & 0xF); } static matrix_col_t read_rows(void) { matrix_col_t state = 0; for (int8_t r = MATRIX_ROWS - 1; r >= 0; --r) { /* PINxn */ - if (!(_SFR_IO8(row_pins[r].input_addr) & _BV(row_pins[r].bit))) { + if (!(_SFR_IO8((row_pins[r] >> 4)) & _BV(row_pins[r] & 0xF))) { state |= (matrix_col_t)1 << r; } } diff --git a/quantum/quantum.c b/quantum/quantum.c index 006464e5a..3f2edfc92 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -655,6 +655,9 @@ void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3) { } void matrix_init_quantum() { + #ifdef BACKLIGHT_ENABLE + backlight_init_ports(); + #endif matrix_init_kb(); } @@ -673,6 +676,7 @@ void matrix_scan_quantum() { matrix_scan_kb(); } + #ifdef AUDIO_ENABLE bool is_music_on(void) { return (music_activated != 0); @@ -698,6 +702,348 @@ void matrix_scan_quantum() { #endif + +#if defined(BACKLIGHT_ENABLE) && defined(BACKLIGHT_PIN) + +static const uint8_t backlight_pin = BACKLIGHT_PIN; + +#if BACKLIGHT_PIN == B7 +# define COM1x1 COM1C1 +# define OCR1x OCR1C +#elif BACKLIGHT_PIN == B6 +# define COM1x1 COM1B1 +# define OCR1x OCR1B +#elif BACKLIGHT_PIN == B5 +# define COM1x1 COM1A1 +# define OCR1x OCR1A +#else +# error "Backlight pin not supported - use B5, B6, or B7" +#endif + +__attribute__ ((weak)) +void backlight_init_ports(void) +{ + + // Setup backlight pin as output and output low. + // DDRx |= n + _SFR_IO8((backlight_pin >> 4) + 1) |= _BV(backlight_pin & 0xF); + // PORTx &= ~n + _SFR_IO8((backlight_pin >> 4) + 2) &= ~_BV(backlight_pin & 0xF); + + // Use full 16-bit resolution. + ICR1 = 0xFFFF; + + // I could write a wall of text here to explain... but TL;DW + // Go read the ATmega32u4 datasheet. + // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on + + // Pin PB7 = OCR1C (Timer 1, Channel C) + // Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0 + // (i.e. start high, go low when counter matches.) + // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0 + // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1 + + TCCR1A = _BV(COM1x1) | _BV(WGM11); // = 0b00001010; + TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; + + backlight_init(); + #ifdef BACKLIGHT_BREATHING + breathing_defaults(); + #endif +} + +__attribute__ ((weak)) +void backlight_set(uint8_t level) +{ + // Prevent backlight blink on lowest level + // PORTx &= ~n + _SFR_IO8((backlight_pin >> 4) + 2) &= ~_BV(backlight_pin & 0xF); + + if ( level == 0 ) { + // Turn off PWM control on backlight pin, revert to output low. + TCCR1A &= ~(_BV(COM1x1)); + OCR1x = 0x0; + } else if ( level == BACKLIGHT_LEVELS ) { + // Turn on PWM control of backlight pin + TCCR1A |= _BV(COM1x1); + // Set the brightness + OCR1x = 0xFFFF; + } else { + // Turn on PWM control of backlight pin + TCCR1A |= _BV(COM1x1); + // Set the brightness + OCR1x = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); + } + + #ifdef BACKLIGHT_BREATHING + breathing_intensity_default(); + #endif +} + + +#ifdef BACKLIGHT_BREATHING + +#define BREATHING_NO_HALT 0 +#define BREATHING_HALT_OFF 1 +#define BREATHING_HALT_ON 2 + +static uint8_t breath_intensity; +static uint8_t breath_speed; +static uint16_t breathing_index; +static uint8_t breathing_halt; + +void breathing_enable(void) +{ + if (get_backlight_level() == 0) + { + breathing_index = 0; + } + else + { + // Set breathing_index to be at the midpoint (brightest point) + breathing_index = 0x20 << breath_speed; + } + + breathing_halt = BREATHING_NO_HALT; + + // Enable breathing interrupt + TIMSK1 |= _BV(OCIE1A); +} + +void breathing_pulse(void) +{ + if (get_backlight_level() == 0) + { + breathing_index = 0; + } + else + { + // Set breathing_index to be at the midpoint + 1 (brightest point) + breathing_index = 0x21 << breath_speed; + } + + breathing_halt = BREATHING_HALT_ON; + + // Enable breathing interrupt + TIMSK1 |= _BV(OCIE1A); +} + +void breathing_disable(void) +{ + // Disable breathing interrupt + TIMSK1 &= ~_BV(OCIE1A); + backlight_set(get_backlight_level()); +} + +void breathing_self_disable(void) +{ + if (get_backlight_level() == 0) + { + breathing_halt = BREATHING_HALT_OFF; + } + else + { + breathing_halt = BREATHING_HALT_ON; + } + + //backlight_set(get_backlight_level()); +} + +void breathing_toggle(void) +{ + if (!is_breathing()) + { + if (get_backlight_level() == 0) + { + breathing_index = 0; + } + else + { + // Set breathing_index to be at the midpoint + 1 (brightest point) + breathing_index = 0x21 << breath_speed; + } + + breathing_halt = BREATHING_NO_HALT; + } + + // Toggle breathing interrupt + TIMSK1 ^= _BV(OCIE1A); + + // Restore backlight level + if (!is_breathing()) + { + backlight_set(get_backlight_level()); + } +} + +bool is_breathing(void) +{ + return (TIMSK1 && _BV(OCIE1A)); +} + +void breathing_intensity_default(void) +{ + //breath_intensity = (uint8_t)((uint16_t)100 * (uint16_t)get_backlight_level() / (uint16_t)BACKLIGHT_LEVELS); + breath_intensity = ((BACKLIGHT_LEVELS - get_backlight_level()) * ((BACKLIGHT_LEVELS + 1) / 2)); +} + +void breathing_intensity_set(uint8_t value) +{ + breath_intensity = value; +} + +void breathing_speed_default(void) +{ + breath_speed = 4; +} + +void breathing_speed_set(uint8_t value) +{ + bool is_breathing_now = is_breathing(); + uint8_t old_breath_speed = breath_speed; + + if (is_breathing_now) + { + // Disable breathing interrupt + TIMSK1 &= ~_BV(OCIE1A); + } + + breath_speed = value; + + if (is_breathing_now) + { + // Adjust index to account for new speed + breathing_index = (( (uint8_t)( (breathing_index) >> old_breath_speed ) ) & 0x3F) << breath_speed; + + // Enable breathing interrupt + TIMSK1 |= _BV(OCIE1A); + } + +} + +void breathing_speed_inc(uint8_t value) +{ + if ((uint16_t)(breath_speed - value) > 10 ) + { + breathing_speed_set(0); + } + else + { + breathing_speed_set(breath_speed - value); + } +} + +void breathing_speed_dec(uint8_t value) +{ + if ((uint16_t)(breath_speed + value) > 10 ) + { + breathing_speed_set(10); + } + else + { + breathing_speed_set(breath_speed + value); + } +} + +void breathing_defaults(void) +{ + breathing_intensity_default(); + breathing_speed_default(); + breathing_halt = BREATHING_NO_HALT; +} + +/* Breathing Sleep LED brighness(PWM On period) table + * (64[steps] * 4[duration]) / 64[PWM periods/s] = 4 second breath cycle + * + * http://www.wolframalpha.com/input/?i=%28sin%28+x%2F64*pi%29**8+*+255%2C+x%3D0+to+63 + * (0..63).each {|x| p ((sin(x/64.0*PI)**8)*255).to_i } + */ +static const uint8_t breathing_table[64] PROGMEM = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 4, 6, 10, + 15, 23, 32, 44, 58, 74, 93, 113, 135, 157, 179, 199, 218, 233, 245, 252, +255, 252, 245, 233, 218, 199, 179, 157, 135, 113, 93, 74, 58, 44, 32, 23, + 15, 10, 6, 4, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +}; + +ISR(TIMER1_COMPA_vect) +{ + // OCR1x = (pgm_read_byte(&breathing_table[ ( (uint8_t)( (breathing_index++) >> breath_speed ) ) & 0x3F ] )) * breath_intensity; + + + uint8_t local_index = ( (uint8_t)( (breathing_index++) >> breath_speed ) ) & 0x3F; + + if (((breathing_halt == BREATHING_HALT_ON) && (local_index == 0x20)) || ((breathing_halt == BREATHING_HALT_OFF) && (local_index == 0x3F))) + { + // Disable breathing interrupt + TIMSK1 &= ~_BV(OCIE1A); + } + + OCR1x = (uint16_t)(((uint16_t)pgm_read_byte(&breathing_table[local_index]) * 257)) >> breath_intensity; + +} + + + +#endif // breathing + +#else // backlight + +__attribute__ ((weak)) +void backlight_init_ports(void) +{ + +} + +__attribute__ ((weak)) +void backlight_set(uint8_t level) +{ + +} + +#endif // backlight + + + +__attribute__ ((weak)) +void led_set_user(uint8_t usb_led) { + +} + +__attribute__ ((weak)) +void led_set_kb(uint8_t usb_led) { + led_set_user(usb_led); +} + +__attribute__ ((weak)) +void led_init_ports(void) +{ + +} + +__attribute__ ((weak)) +void led_set(uint8_t usb_led) +{ + + // Example LED Code + // + // // Using PE6 Caps Lock LED + // if (usb_led & (1< #include "bootloader.h" #include "timer.h" +#include "config_common.h" +#include +#include "led.h" +#include "action_util.h" extern uint32_t default_layer_state; @@ -74,6 +78,8 @@ void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3); void matrix_init_kb(void); void matrix_scan_kb(void); +void matrix_init_user(void); +void matrix_scan_user(void); bool process_action_kb(keyrecord_t *record); bool process_record_kb(uint16_t keycode, keyrecord_t *record); bool process_record_user(uint16_t keycode, keyrecord_t *record); @@ -89,4 +95,28 @@ void audio_on_user(void); void music_on_user(void); void music_scale_user(void); +#ifdef BACKLIGHT_ENABLE +void backlight_init_ports(void); + +#ifdef BACKLIGHT_BREATHING +void breathing_enable(void); +void breathing_pulse(void); +void breathing_disable(void); +void breathing_self_disable(void); +void breathing_toggle(void); +bool is_breathing(void); + +void breathing_defaults(void); +void breathing_intensity_default(void); +void breathing_speed_default(void); +void breathing_speed_set(uint8_t value); +void breathing_speed_inc(uint8_t value); +void breathing_speed_dec(uint8_t value); +#endif + +#endif + +void led_set_user(uint8_t usb_led); +void led_set_kb(uint8_t usb_led); + #endif diff --git a/quantum/template/Makefile b/quantum/template/Makefile index 87e4c2d2b..3f6d133c9 100644 --- a/quantum/template/Makefile +++ b/quantum/template/Makefile @@ -53,20 +53,20 @@ OPT_DEFS += -DBOOTLOADER_SIZE=512 # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = yes # Console for debug(+400) -COMMAND_ENABLE = yes # Commands for debug and configuration +BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= yes # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -NKRO_ENABLE = no # USB Nkey Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default -MIDI_ENABLE = no # MIDI controls -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -AUDIO_ENABLE = no # Audio output on port C6 +NKRO_ENABLE ?= no # USB Nkey Rollover +BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default +MIDI_ENABLE ?= no # MIDI controls +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE ?= no # Audio output on port C6 ifndef QUANTUM_DIR include ../../Makefile diff --git a/quantum/template/README.md b/quantum/template/README.md deleted file mode 100644 index d6b0ac936..000000000 --- a/quantum/template/README.md +++ /dev/null @@ -1,24 +0,0 @@ -%KEYBOARD% keyboard firmware -====================== - -## Quantum MK Firmware - -For the full Quantum feature list, see [the parent README.md](/doc/README.md). - -## Building - -Download or clone the whole firmware and navigate to the keyboards/%KEYBOARD% folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. - -Depending on which keymap you would like to use, you will have to compile slightly differently. - -### Default -To build with the default keymap, simply run `make`. - -### Other Keymaps -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` in the keymaps folder, and see keymap document (you can find in top README.md) and existent keymap files. - -To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: -``` -$ make KEYMAP=[default|jack|] -``` -Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. \ No newline at end of file diff --git a/quantum/template/config.h b/quantum/template/config.h index cad3e3260..b02f0c7eb 100644 --- a/quantum/template/config.h +++ b/quantum/template/config.h @@ -48,6 +48,11 @@ along with this program. If not, see . /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCING_DELAY 5 @@ -56,7 +61,6 @@ along with this program. If not, see . //#define MATRIX_HAS_GHOST /* number of backlight levels */ -#define BACKLIGHT_LEVELS 3 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/quantum/template/keymaps/default/Makefile b/quantum/template/keymaps/default/Makefile new file mode 100644 index 000000000..f4671a9d1 --- /dev/null +++ b/quantum/template/keymaps/default/Makefile @@ -0,0 +1,21 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/quantum/template/keymaps/default/config.h b/quantum/template/keymaps/default/config.h new file mode 100644 index 000000000..df06a2620 --- /dev/null +++ b/quantum/template/keymaps/default/config.h @@ -0,0 +1,8 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// place overrides here + +#endif \ No newline at end of file diff --git a/quantum/template/keymaps/default/keymap.c b/quantum/template/keymaps/default/keymap.c index 4121fd860..e28a4723e 100644 --- a/quantum/template/keymaps/default/keymap.c +++ b/quantum/template/keymaps/default/keymap.c @@ -1,6 +1,3 @@ -// This is the canonical layout file for the Quantum project. If you want to add another keyboard, -// this is the style you want to emulate. - #include "%KEYBOARD%.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -28,3 +25,20 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } return MACRO_NONE; }; + + +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { + +} \ No newline at end of file diff --git a/quantum/template/keymaps/default/readme.md b/quantum/template/keymaps/default/readme.md new file mode 100644 index 000000000..21aa663d5 --- /dev/null +++ b/quantum/template/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for %KEYBOARD% \ No newline at end of file diff --git a/quantum/template/readme.md b/quantum/template/readme.md new file mode 100644 index 000000000..b2fb4dd98 --- /dev/null +++ b/quantum/template/readme.md @@ -0,0 +1,28 @@ +%KEYBOARD% keyboard firmware +====================== + +## Quantum MK Firmware + +For the full Quantum feature list, see [the parent readme.md](/doc/readme.md). + +## Building + +Download or clone the whole firmware and navigate to the keyboards/%KEYBOARD% folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default + +To build with the default keymap, simply run `make`. + +### Other Keymaps + +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files. + +To build the firmware binary hex file with a keymap just do `make` with `keymap` option like: + +``` +$ make keymap=[default|jack|] +``` + +Keymaps follow the format **__keymap.c__** and are stored in folders in the `keymaps` folder, eg `keymaps/my_keymap/` \ No newline at end of file diff --git a/quantum/template/template.c b/quantum/template/template.c index 649072eb2..dcc4b0a22 100644 --- a/quantum/template/template.c +++ b/quantum/template/template.c @@ -1,26 +1,5 @@ #include "%KEYBOARD%.h" -__attribute__ ((weak)) -void matrix_init_user(void) { - // leave this function blank - it can be defined in a keymap file -}; - -__attribute__ ((weak)) -void matrix_scan_user(void) { - // leave this function blank - it can be defined in a keymap file -} - -__attribute__ ((weak)) -bool process_action_user(keyrecord_t *record) { - // leave this function blank - it can be defined in a keymap file - return true; -} - -__attribute__ ((weak)) -void led_set_user(uint8_t usb_led) { - // leave this function blank - it can be defined in a keymap file -} - void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up @@ -35,7 +14,7 @@ void matrix_scan_kb(void) { matrix_scan_user(); } -bool process_action_kb(keyrecord_t *record) { +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { // put your per-action keyboard code here // runs for every action, just before processing by the firmware @@ -47,64 +26,3 @@ void led_set_kb(uint8_t usb_led) { led_set_user(usb_led); } - -#ifdef BACKLIGHT_ENABLE -#define CHANNEL OCR1C - -void backlight_init_ports() -{ - - // Setup PB7 as output and output low. - DDRB |= (1<<7); - PORTB &= ~(1<<7); - - // Use full 16-bit resolution. - ICR1 = 0xFFFF; - - // I could write a wall of text here to explain... but TL;DW - // Go read the ATmega32u4 datasheet. - // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on - - // Pin PB7 = OCR1C (Timer 1, Channel C) - // Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0 - // (i.e. start high, go low when counter matches.) - // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0 - // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1 - - TCCR1A = _BV(COM1C1) | _BV(WGM11); // = 0b00001010; - TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; - - backlight_init(); -} - -void backlight_set(uint8_t level) -{ - if ( level == 0 ) - { - // Turn off PWM control on PB7, revert to output low. - TCCR1A &= ~(_BV(COM1C1)); - CHANNEL = 0x0; - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - } - else if ( level == BACKLIGHT_LEVELS ) - { - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - // Turn on PWM control of PB7 - TCCR1A |= _BV(COM1C1); - // Set the brightness - CHANNEL = 0xFFFF; - } - else - { - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); - // Turn on PWM control of PB7 - TCCR1A |= _BV(COM1C1); - // Set the brightness - CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); - } -} - -#endif \ No newline at end of file diff --git a/quantum/template/template.h b/quantum/template/template.h index b8e7a0456..cd78a54e3 100644 --- a/quantum/template/template.h +++ b/quantum/template/template.h @@ -1,13 +1,7 @@ #ifndef %KEYBOARD_UPPERCASE%_H #define %KEYBOARD_UPPERCASE%_H -#include "matrix.h" -#include "keymap.h" -#ifdef BACKLIGHT_ENABLE - #include "backlight.h" -#endif -#include -#include +#include "quantum.h" // This a shortcut to help you visually see your layout. // The following is an example using the Planck MIT layout @@ -22,9 +16,4 @@ { k10, KC_NO, k11 }, \ } -void matrix_init_user(void); -void matrix_scan_user(void); -bool process_action_user(keyrecord_t *record); -void led_set_user(uint8_t usb_led); - #endif diff --git a/quantum/tools/README.md b/quantum/tools/README.md deleted file mode 100644 index 5f355256d..000000000 --- a/quantum/tools/README.md +++ /dev/null @@ -1,6 +0,0 @@ -`eeprom_reset.hex` is to reset the eeprom on the Atmega32u4, like this: - - dfu-programmer atmega32u4 erase - dfu-programmer atmega32u4 flash --eeprom eeprom_reset.hex - - You'll need to reflash afterwards, because DFU requires the flash to be erased before messing with the eeprom. diff --git a/quantum/tools/readme.md b/quantum/tools/readme.md new file mode 100644 index 000000000..5f355256d --- /dev/null +++ b/quantum/tools/readme.md @@ -0,0 +1,6 @@ +`eeprom_reset.hex` is to reset the eeprom on the Atmega32u4, like this: + + dfu-programmer atmega32u4 erase + dfu-programmer atmega32u4 flash --eeprom eeprom_reset.hex + + You'll need to reflash afterwards, because DFU requires the flash to be erased before messing with the eeprom. diff --git a/readme.md b/readme.md new file mode 100644 index 000000000..fbd9203a5 --- /dev/null +++ b/readme.md @@ -0,0 +1,810 @@ +# Quantum Mechanical Keyboard Firmware + +[![Build Status](https://travis-ci.org/jackhumbert/qmk_firmware.svg?branch=master)](https://travis-ci.org/jackhumbert/qmk_firmware) + +This is a keyboard firmware based on the [tmk_keyboard firmware](http://github.com/tmk/tmk_keyboard) with some useful features for Atmel AVR controllers, and more specifically, the [OLKB product line](http://olkb.com), the [ErgoDox EZ](http://www.ergodox-ez.com) keyboard, and the [Clueboard product line](http://clueboard.co/). + +## Official website + +For an easy-to-read version of this document and the repository, check out [http://qmk.fm](http://qmk.fm). Nicely formatted keyboard and keymap listings are also available there, along with the ability to download .hex files instead of having to setup a build environment and compile them. + +## Included Keyboards + +* [Planck](/keyboards/planck/) +* [Preonic](/keyboards/preonic/) +* [Atomic](/keyboards/atomic/) +* [ErgoDox EZ](/keyboards/ergodox_ez/) +* [Clueboard rev.1](/keyboards/clueboard1/) +* [Clueboard rev.2](/keyboards/clueboard2/) +* [Cluepad](/keyboards/cluepad/) + +The project also includes community support for [lots of other keyboards](/keyboards/). + +## Maintainers + +QMK is developed and maintained by Jack Humbert of OLKB with contributions from the community, and of course, [Hasu](https://github.com/tmk). This repo used to be a fork of [TMK](https://github.com/tmk/tmk_keyboard), and we are incredibly grateful for his founding contributions to the firmware. We've had to break the fork due to purely technical reasons - it simply became too different over time, and we've had to start refactoring some of the basic bits and pieces. We are huge fans of TMK and Hasu :) + +This documentation is edited and maintained by Erez Zukerman of ErgoDox EZ. If you spot any typos or inaccuracies, please [open an issue](https://github.com/jackhumbert/qmk_firmware/issues/new). + +The OLKB product firmwares are maintained by [Jack Humbert](https://github.com/jackhumbert), the Ergodox EZ by [Erez Zukerman](https://github.com/ezuk), and the Clueboard by [Zach White](https://github.com/skullydazed). + +## Documentation roadmap + +This is not a tiny project. While this is the main readme, there are many other files you might want to consult. Here are some points of interest: + +* The readme for your own keyboard: This is found under `keyboards//`. So for the ErgoDox EZ, it's [here](keyboards/ergodox_ez/); for the Planck, it's [here](keyboards/planck/) and so on. +* The list of possible keycodes you can use in your keymap is actually spread out in a few different places: + * [doc/keycode.txt](doc/keycode.txt) - an explanation of those same keycodes. + * [quantum/keymap.h](quantum/keymap.h) - this is where the QMK-specific aliases are all set up. Things like the Hyper and Meh key, the Leader key, and all of the other QMK innovations. These are also explained and documented below, but `keymap.h` is where they're actually defined. +* The [TMK documentation](doc/TMK_readme.md). QMK is based on TMK, and this explains how it works internally. + +# Getting started + +Before you are able to compile, you'll need to install an environment for AVR development. You'll find the instructions for any OS below. If you find another/better way to set things up from scratch, please consider [making a pull request](https://github.com/jackhumbert/qmk_firmware/pulls) with your changes! + +## Build Environment Setup + +### Windows (Vista and later) +1. If you have ever installed WinAVR, uninstall it. +2. Install [MHV AVR Tools](https://infernoembedded.com/sites/default/files/project/MHV_AVR_Tools_20131101.exe). Disable smatch, but **be sure to leave the option to add the tools to the PATH checked**. +3. Install [MinGW](https://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download). During installation, uncheck the option to install a graphical user interface. **DO NOT change the default installation folder.** The scripts depend on the default location. +4. Clone this repository. [This link will download it as a zip file, which you'll need to extract.](https://github.com/jackhumbert/qmk_firmware/archive/master.zip) Open the extracted folder in Windows Explorer. +5. Double-click on the 1-setup-path-win batch script to run it. You'll need to accept a User Account Control prompt. Press the spacebar to dismiss the success message in the command prompt that pops up. +6. Right-click on the 2-setup-environment-win batch script, select "Run as administrator", and accept the User Account Control prompt. This part may take a couple of minutes, and you'll need to approve a driver installation, but once it finishes, your environment is complete! +7. Future build commands should be run from the standard Windows command prompt, which you can find by searching for "command prompt" from the start menu or start screen. Ignore the "MHV AVR Shell". + +### Mac +If you're using [homebrew,](http://brew.sh/) you can use the following commands: + + brew tap osx-cross/avr + brew install avr-libc + brew install dfu-programmer + +This is the recommended method. If you don't have homebrew, [install it!](http://brew.sh/) It's very much worth it for anyone who works in the command line. + +You can also try these instructions: + +1. Install Xcode from the App Store. +2. Install the Command Line Tools from `Xcode->Preferences->Downloads`. +3. Install [DFU-Programmer][dfu-prog]. + +### Linux +Install AVR GCC, AVR libc, and dfu-progammer with your favorite package manager. + +Debian/Ubuntu example: + + sudo apt-get update + sudo apt-get install gcc-avr avr-libc dfu-programmer + +### Vagrant +If you have any problems building the firmware, you can try using a tool called Vagrant. It will set up a virtual computer with a known configuration that's ready-to-go for firmware building. OLKB does NOT host the files for this virtual computer. Details on how to set up Vagrant are in the [VAGRANT_GUIDE file](VAGRANT_GUIDE.md). + +## Verify Your Installation +1. If you haven't already, obtain this repository ([https://github.com/jackhumbert/qmk_firmware](https://github.com/jackhumbert/qmk_firmware)). You can either download it as a zip file and extract it, or clone it using the command line tool git or the Github Desktop application. +2. Open up a terminal or command prompt and navigate to the `qmk_firmware` folder using the `cd` command. The command prompt will typically open to your home directory. If, for example, you cloned the repository to your Documents folder, then you would type `cd Documents/qmk_firmware`. If you extracted the file from a zip, then it may be named `qmk_firmware-master` instead. +3. To confirm that you're in the correct location, you can display the contents of your current folder using the `dir` command on Windows, or the `ls` command on Linux or Mac. You should see several files, including `readme.md` and a `quantum` folder. From here, you need to navigate to the appropriate folder under `keyboards/`. For example, if you're building for a Planck, run `cd keyboards/planck`. +4. Once you're in the correct keyboard-specific folder, run the `make` command. This should output a lot of information about the build process. More information about the `make` command can be found below. + +# Customizing, building, and flashing your keymap + +In every keymap folder, the following files are recommended: + +* `config.h` - the options to configure your keymap +* `keymap.c` - all of your keymap code, required +* `Makefile` - the features of QMK that are enabled, required to run `make` in your keymap folder +* `readme.md` - a description of your keymap, how others might use it, and explanations of features + +## The `make` command + +The `make` command is how you compile the firmware into a .hex file, which can be loaded by a dfu programmer (like dfu-progammer via `make dfu`) or the [Teensy loader](https://www.pjrc.com/teensy/loader.html) (only used with Teensys). You can run `make` from the root (`/`), your keyboard folder (`/keyboards//`), or your keymap folder (`/keyboards//keymaps//`) if you have a `Makefile` there (see the example [here](/doc/keymap_makefile_example.mk)). + +By default, this will generate a `_.hex` file in whichever folder you run `make` from. These files are ignored by git, so don't worry about deleting them when committing/creating pull requests. Your .hex file will also be available on qmk.fm/keyboards//keymaps//. + +Below are some definitions that will be useful: + +* The "root" (`/`) folder is the qmk_firmware folder, in which are `doc`, `keyboard`, `quantum`, etc. +* The "keyboard" folder is any keyboard project's folder, like `/keyboards/planck`. +* The "keymap" folder is any keymap's folder, like `/keyboards/planck/keymaps/default`. + +Below is a list of the useful `make` commands in QMK: + +* `make` - cleans automatically and builds your keyboard and keymap depending on which folder you're in. This defaults to the "default" layout (unless in a keymap folder), and Planck keyboard in the root folder + * `make keyboard=` - specifies the keyboard (only to be used in root) + * `make keymap=` - specifies the keymap (only to be used in root and keyboard folder - not needed when in keymap folder) +* `make quick` - skips the clean step (cannot be used immediately after modifying config.h or Makefiles) +* `make dfu` - (requires dfu-programmer) builds and flashes the keymap to your keyboard once placed in reset/dfu mode (button or press `KC_RESET`). This does not work for Teensy-based keyboards like the ErgoDox EZ. + * `keyboard=` and `keymap=` are compatible with this +* `make all-keyboards` - builds all keymaps for all keyboards and outputs status of each (use in root) +* `make all-keyboards-default` - builds all default keymaps for all keyboards and outputs status of each (use in root) +* `make all-keymaps [keyboard=]` - builds all of the keymaps for whatever keyboard folder you're in, or specified by `` +* `make all-keyboards-quick`, `make all-keyboards-default-quick` and `make all-keymaps-quick [keyboard=]` - like the normal "make-all-*" commands, but they skip the clean steps + +Other, less useful functionality: + +* `make COLOR=false` - turns off color output +* `make SILENT=true` - turns off output besides errors/warnings +* `make VERBOSE=true` - outputs all of the avr-gcc stuff (not interesting) + +## The `Makefile` + +There are 3 different `make` and `Makefile` locations: + +* root (`/`) +* keyboard (`/keyboards//`) +* keymap (`/keyboards//keymaps//`) + +The root contains the code used to automatically figure out which keymap or keymaps to compile based on your current directory and commandline arguments. It's considered stable, and shouldn't be modified. The keyboard one will contain the MCU set-up and default settings for your keyboard, and shouldn't be modified unless you are the producer of that keyboard. The keymap Makefile can be modified by users, and is optional. It is included automatically if it exists. You can see an example [here](/doc/keymap_makefile_example.mk) - the last few lines are the most important. The settings you set here will override any defaults set in the keyboard Makefile. **It is required if you want to run `make` in the keymap folder.** + +### Makefile options + +Set the variables to `no` to disable them, and `yes` to enable them. + +`BOOTMAGIC_ENABLE` + +This allows you to hold a key and the salt key (space by default) and have access to a various EEPROM settings that persist over power loss. It's advised you keep this disabled, as the settings are often changed by accident, and produce confusing results that makes it difficult to debug. It's one of the more common problems encountered in help sessions. + +`MOUSEKEY_ENABLE` + +This gives you control over cursor movements and clicks via keycodes/custom functions. + +`EXTRAKEY_ENABLE` + +This allows you to use the system and audio control key codes. + +`CONSOLE_ENABLE` + +TODO + +`COMMAND_ENABLE` + +TODO + +`SLEEP_LED_ENABLE` + +Enables your LED to breath while your computer is sleeping. Timer1 is being used here. This feature is largely unused and untested, and needs updating/abstracting. + +`NKRO_ENABLE` + +This allows for n-key rollover (default is 6) to be enabled. It is off by default, but can be forced by adding `#define FORCE_NKRO` to your config.h. + +`BACKLIGHT_ENABLE` + +This enables your backlight on Timer1 and ports B5, B6, or B7 (for now). You can specify your port by putting this in your `config.h`: + + #define BACKLIGHT_PIN B7 + +`MIDI_ENABLE` + +This enables MIDI sending and receiving with your keyboard. To enter MIDI send mode, you can use the keycode `MI_ON`, and `MI_OFF` to turn it off. This is a largely untested feature, but more information can be found in the `quantum/quantum.c` file. + +`UNICODE_ENABLE` + +This allows you to send unicode symbols via `UC()` in your keymap. Only codes up to 0x7FFF are currently supported. + +`BLUETOOTH_ENABLE` + +This allows you to interface with a Bluefruit EZ-key to send keycodes wirelessly. It uses the D2 and D3 pins. + +`AUDIO_ENABLE` + +This allows you output audio on the C6 pin (needs abstracting). See the [audio section](#driving-a-speaker---audio-support) for more information. + +### Customizing Makefile options on a per-keymap basis + +If your keymap directory has a file called `Makefile` (note the filename), any Makefile options you set in that file will take precedence over other Makefile options for your particular keyboard. + +So let's say your keyboard's makefile has `BACKLIGHT_ENABLE = yes` (or maybe doesn't even list the `BACKLIGHT_ENABLE` option, which would cause it to be off). You want your particular keymap to not have the debug console, so you make a file called `Makefile` and specify `BACKLIGHT_ENABLE = no`. + +You can use the `doc/keymap_makefile_example.md` as a template/starting point. + +## The `config.h` file + +There are 2 `config.h` locations: + +* keyboard (`/keyboards//`) +* keymap (`/keyboards//keymaps//`) + +The keyboard `config.h` is included only if the keymap one doesn't exist. The format to use for your custom one [is here](/doc/keymap_config_h_example.h). If you want to override a setting from the parent `config.h` file, you need to do this: + +```c +#undef MY_SETTING +#define MY_SETTING 4 +``` + +For a value of `4` for this imaginary setting. So we `undef` it first, then `define` it. + +You can then override any settings, rather than having to copy and paste the whole thing. + +## Editing your keymap + +Aside from the [basic keycodes](doc/keycode.txt), your keymap can include shortcuts to common operations. + +### Switching and toggling layers + +`MO(layer)` - momentary switch to *layer*. As soon as you let go of the key, the layer is deactivated and you pop back out to the previous layer. When you apply this to a key, that same key must be set as `KC_TRNS` on the destination layer. Otherwise, you won't make it back to the original layer when you release the key (and you'll get a keycode sent). You can only switch to layers *above* your current layer. If you're on layer 0 and you use `MO(1)`, that will switch to layer 1 just fine. But if you include `MO(3)` on layer 5, that won't do anything for you -- because layer 3 is lower than layer 5 on the stack. + +`OSL(layer)` - momentary switch to *layer*, as a one-shot operation. So if you have a key that's defined as `OSL(1)`, and you tap that key, then only the very next keystroke would come from layer 1. You would drop back to layer zero immediately after that one keystroke. That's handy if you have a layer full of custom shortcuts -- for example, a dedicated key for closing a window. So you tap your one-shot layer mod, then tap that magic 'close window' key, and keep typing like a boss. Layer 1 would remain active as long as you hold that key down, too (so you can use it like a momentary toggle-layer key with extra powers). + +`LT(layer, kc)` - momentary switch to *layer* when held, and *kc* when tapped. Like `MO()`, this only works upwards in the layer stack (`layer` must be higher than the current layer). + +`TG(layer)` - toggles a layer on or off. As with `MO()`, you should set this key as `KC_TRNS` in the destination layer so that tapping it again actually toggles back to the original layer. Only works upwards in the layer stack. + + +### Fun with modifier keys + +* `LSFT(kc)` - applies left Shift to *kc* (keycode) - `S(kc)` is an alias +* `RSFT(kc)` - applies right Shift to *kc* +* `LCTL(kc)` - applies left Control to *kc* +* `RCTL(kc)` - applies right Control to *kc* +* `LALT(kc)` - applies left Alt to *kc* +* `RALT(kc)` - applies right Alt to *kc* +* `LGUI(kc)` - applies left GUI (command/win) to *kc* +* `RGUI(kc)` - applies right GUI (command/win) to *kc* +* `HYPR(kc)` - applies Hyper (all modifiers) to *kc* +* `MEH(kc)` - applies Meh (all modifiers except Win/Cmd) to *kc* +* `LCAG(kc)` - applies CtrlAltGui to *kc* + +You can also chain these, like this: + + LALT(LCTL(KC_DEL)) -- this makes a key that sends Alt, Control, and Delete in a single keypress. + +The following shortcuts automatically add `LSFT()` to keycodes to get commonly used symbols. Their long names are also available and documented in `/quantum/keymap_common.h`. + + KC_TILD ~ + KC_EXLM ! + KC_AT @ + KC_HASH # + KC_DLR $ + KC_PERC % + KC_CIRC ^ + KC_AMPR & + KC_ASTR * + KC_LPRN ( + KC_RPRN ) + KC_UNDS _ + KC_PLUS + + KC_DQUO " + KC_LCBR { + KC_RCBR } + KC_LABK < + KC_RABK > + KC_PIPE | + KC_COLN : + +`OSM(mod)` - this is a "one shot" modifier. So let's say you have your left Shift key defined as `OSM(MOD_LSFT)`. Tap it, let go, and Shift is "on" -- but only for the next character you'll type. So to write "The", you don't need to hold down Shift -- you tap it, tap t, and move on with life. And if you hold down the left Shift key, it just works as a left Shift key, as you would expect (so you could type THE). There's also a magical, secret way to "lock" a modifier by tapping it multiple times. If you want to learn more about that, open an issue. :) + +`MT(mod, kc)` - is *mod* (modifier key - MOD_LCTL, MOD_LSFT) when held, and *kc* when tapped. In other words, you can have a key that sends Esc (or the letter O or whatever) when you tap it, but works as a Control key or a Shift key when you hold it down. + +These are the values you can use for the `mod` in `MT()` and `OSM()` (right-hand modifiers are not available for `MT()`): + + * MOD_LCTL + * MOD_LSFT + * MOD_LALT + * MOD_LGUI + * MOD_HYPR + * MOD_MEH + +These can also be combined like `MOD_LCTL | MOD_LSFT` e.g. `MT(MOD_LCTL | MOD_LSFT, KC_ESC)` which would activate Control and Shift when held, and send Escape when tapped. + +We've added shortcuts to make common modifier/tap (mod-tap) mappings more compact: + + * `CTL_T(kc)` - is LCTL when held and *kc* when tapped + * `SFT_T(kc)` - is LSFT when held and *kc* when tapped + * `ALT_T(kc)` - is LALT when held and *kc* when tapped + * `GUI_T(kc)` - is LGUI when held and *kc* when tapped + * `ALL_T(kc)` - is Hyper (all mods) when held and *kc* when tapped. To read more about what you can do with a Hyper key, see [this blog post by Brett Terpstra](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) + * `LCAG_T(kc)` - is CtrlAltGui when held and *kc* when tapped + * `MEH_T(kc)` - is like Hyper, but not as cool -- does not include the Cmd/Win key, so just sends Alt+Ctrl+Shift. + +### Space Cadet Shift: The future, built in + +Steve Losh [described](http://stevelosh.com/blog/2012/10/a-modern-space-cadet/) the Space Cadet Shift quite well. Essentially, you hit the left Shift on its own, and you get an opening parenthesis; hit the right Shift on its own, and you get the closing one. When hit with other keys, the Shift key keeps working as it always does. Yes, it's as cool as it sounds. + +To use it, use `KC_LSPO` (Left Shift, Parens Open) for your left Shift on your keymap, and `KC_RSPC` (Right Shift, Parens Close) for your right Shift. + +It's defaulted to work on US keyboards, but if your layout uses different keys for parenthesis, you can define those in your `config.h` like this: + + #define LSPO_KEY KC_9 + #define RSPC_KEY KC_0 + +The only other thing you're going to want to do is create a `Makefile` in your keymap directory and set the following: + +``` +COMMAND_ENABLE = no # Commands for debug and configuration +``` + +This is just to keep the keyboard from going into command mode when you hold both Shift keys at the same time. + +### The Leader key: A new kind of modifier + +If you've ever used Vim, you know what a Leader key is. If not, you're about to discover a wonderful concept. :) Instead of hitting Alt+Shift+W for example (holding down three keys at the same time), what if you could hit a _sequence_ of keys instead? So you'd hit our special modifier (the Leader key), followed by W and then C (just a rapid succession of keys), and something would happen. + +That's what `KC_LEAD` does. Here's an example: + +1. Pick a key on your keyboard you want to use as the Leader key. Assign it the keycode `KC_LEAD`. This key would be dedicated just for this -- it's a single action key, can't be used for anything else. +2. Include the line `#define LEADER_TIMEOUT 300` somewhere in your keymap.c file, probably near the top. The 300 there is 300ms -- that's how long you have for the sequence of keys following the leader. You can tweak this value for comfort, of course. +3. Within your `matrix_scan_user` function, do something like this: + +``` +void matrix_scan_user(void) { + LEADER_DICTIONARY() { + leading = false; + leader_end(); + + SEQ_ONE_KEY(KC_F) { + register_code(KC_S); + unregister_code(KC_S); + } + SEQ_TWO_KEYS(KC_A, KC_S) { + register_code(KC_H); + unregister_code(KC_H); + } + SEQ_THREE_KEYS(KC_A, KC_S, KC_D) { + register_code(KC_LGUI); + register_code(KC_S); + unregister_code(KC_S); + unregister_code(KC_LGUI); + } + } +} +``` + +As you can see, you have three function. you can use - `SEQ_ONE_KEY` for single-key sequences (Leader followed by just one key), and `SEQ_TWO_KEYS` and `SEQ_THREE_KEYS` for longer sequences. Each of these accepts one or more keycodes as arguments. This is an important point: You can use keycodes from **any layer on your keyboard**. That layer would need to be active for the leader macro to fire, obviously. + +### Temporarily setting the default layer + +`DF(layer)` - sets default layer to *layer*. The default layer is the one at the "bottom" of the layer stack - the ultimate fallback layer. This currently does not persist over power loss. When you plug the keyboard back in, layer 0 will always be the default. It is theoretically possible to work around that, but that's not what `DF` does. + +### Prevent stuck modifiers + +Consider the following scenario: + +1. Layer 0 has a key defined as Shift. +2. The same key is defined on layer 1 as the letter A. +3. User presses Shift. +4. User switches to layer 1 for whatever reason. +5. User releases Shift, or rather the letter A. +6. User switches back to layer 0. + +Shift was actually never released and is still considered pressed. + +If such situation bothers you add this to your `config.h`: + + #define PREVENT_STUCK_MODIFIERS + +This option uses 5 bytes of memory per every 8 keys on the keyboard +rounded up (5 bits per key). For example on Planck (48 keys) it uses +(48/8)\*5 = 30 bytes. + +### Remember: These are just aliases + +These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk ACTION_* functions, please see the [TMK documentation](https://github.com/jackhumbert/qmk_firmware/blob/master/doc/keymap.md#2-action). + +Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - the benefit here is being able to use more than 32 function actions (up to 4096), if you happen to need them. + +## Macro shortcuts: Send a whole string when pressing just one key + +Instead of using the `ACTION_MACRO` function, you can simply use `M(n)` to access macro *n* - *n* will get passed into the `action_get_macro` as the `id`, and you can use a switch statement to trigger it. This gets called on the keydown and keyup, so you'll need to use an if statement testing `record->event.pressed` (see keymap_default.c). + +```c +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // this is the function signature -- just copy/paste it into your keymap file as it is. +{ + switch(id) { + case 0: // this would trigger when you hit a key mapped as M(0) + if (record->event.pressed) { + return MACRO( I(255), T(H), T(E), T(L), T(L), W(255), T(O), END ); // this sends the string 'hello' when the macro executes + } + break; + } + return MACRO_NONE; +}; +``` +A macro can include the following commands: + +* I() change interval of stroke in milliseconds. +* D() press key. +* U() release key. +* T() type key(press and release). +* W() wait (milliseconds). +* END end mark. + +So above you can see the stroke interval changed to 255ms between each keystroke, then a bunch of keys being typed, waits a while, then the macro ends. + +Note: Using macros to have your keyboard send passwords for you is possible, but a bad idea. + +### Advanced macro functions + +To get more control over the keys/actions your keyboard takes, the following functions are available to you in the `action_get_macro` function block: + +* `record->event.pressed` + +This is a boolean value that can be tested to see if the switch is being pressed or released. An example of this is + +```c +if (record->event.pressed) { + // on keydown +} else { + // on keyup +} +``` + +* `register_code();` + +This sends the `` keydown event to the computer. Some examples would be `KC_ESC`, `KC_C`, `KC_4`, and even modifiers such as `KC_LSFT` and `KC_LGUI`. + +* `unregister_code();` + +Parallel to `register_code` function, this sends the `` keyup event to the computer. If you don't use this, the key will be held down until it's sent. + +* `layer_on();` + +This will turn on the layer `` - the higher layer number will always take priority. Make sure you have `KC_TRNS` for the key you're pressing on the layer you're switching to, or you'll get stick there unless you have another plan. + +* `layer_off();` + +This will turn off the layer ``. + +* `clear_keyboard();` + +This will clear all mods and keys currently pressed. + +* `clear_mods();` + +This will clear all mods currently pressed. + +* `clear_keyboard_but_mods();` + +This will clear all keys besides the mods currently pressed. + +* `update_tri_layer(layer_1, layer_2, layer_3);` + +If the user attempts to activate layer 1 AND layer 2 at the same time (for example, by hitting their respective layer keys), layer 3 will be activated. Layers 1 and 2 will _also_ be activated, for the purposes of fallbacks (so a given key will fall back from 3 to 2, to 1 -- and only then to 0). + +#### Naming your macros + +If you have a bunch of macros you want to refer to from your keymap, while keeping the keymap easily readable, you can just name them like so: + +``` +#define AUD_OFF M(6) +#define AUD_ON M(7) +#define MUS_OFF M(8) +#define MUS_ON M(9) +#define VC_IN M(10) +#define VC_DE M(11) +#define PLOVER M(12) +#define EXT_PLV M(13) +``` + +As was done on the [Planck default keymap](/keyboards/planck/keymaps/default/keymap.c#L33-L40) + +#### Timer functionality + +It's possible to start timers and read values for time-specific events - here's an example: + +```c +static uint16_t key_timer; +key_timer = timer_read(); +if (timer_elapsed(key_timer) < 100) { + // do something if less than 100ms have passed +} else { + // do something if 100ms or more have passed +} +``` + +It's best to declare the `static uint16_t key_timer;` outside of the macro block (top of file, etc). + +#### Example: Single-key copy/paste (hold to copy, tap to paste) + +With QMK, it's easy to make one key do two things, as long as one of those things is being a modifier. :) So if you want a key to act as Ctrl when held and send the letter R when tapped, that's easy: `CTL_T(KC_R)`. But what do you do when you want that key to send Ctrl-V (paste) when tapped, and Ctrl-C (copy) when held? + +Here's what you do: + + +``` +static uint16_t key_timer; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case 0: { + if (record->event.pressed) { + key_timer = timer_read(); // if the key is being pressed, we start the timer. + } + else { // this means the key was just released, so we can figure out how long it was pressed for (tap or "held down"). + if (timer_elapsed(key_timer) > 150) { // 150 being 150ms, the threshhold we pick for counting something as a tap. + return MACRO( D(LCTL), T(C), U(LCTL), END ); + } + else { + return MACRO( D(LCTL), T(V), U(LCTL), END ); + } + } + break; + } + } + return MACRO_NONE; +}; +``` + +And then, to assign this macro to a key on your keyboard layout, you just use `M(0)` on the key you want to press for copy/paste. + +## Additional keycode aliases for software-implemented layouts (Colemak, Dvorak, etc) + +Everything is assuming you're in Qwerty (in software) by default, but there is built-in support for using a Colemak or Dvorak layout by including this at the top of your keymap: + + #include + +If you use Dvorak, use `keymap_dvorak.h` instead of `keymap_colemak.h` for this line. After including this line, you will get access to: + + * `CM_*` for all of the Colemak-equivalent characters + * `DV_*` for all of the Dvorak-equivalent characters + +These implementations assume you're using Colemak or Dvorak on your OS, not on your keyboard - this is referred to as a software-implemented layout. If your computer is in Qwerty and your keymap is in Colemak or Dvorak, this is referred to as a firmware-implemented layout, and you won't need these features. + +To give an example, if you're using software-implemented Colemak, and want to get an `F`, you would use `CM_F` - `KC_F` under these same circumstances would result in `T`. + +## Additional language support + +In `quantum/keymap_extras/`, you'll see various language files - these work the same way as the alternative layout ones do. Most are defined by their two letter country/language code followed by an underscore and a 4-letter abbreviation of its name. `FR_UGRV` which will result in a `ù` when using a software-implemented AZERTY layout. It's currently difficult to send such characters in just the firmware (but it's being worked on - see Unicode support). + +## Unicode support + +You can currently send 4 hex digits with your OS-specific modifier key (RALT for OSX with the "Unicode Hex Input" layout) - this is currently limited to supporting one OS at a time, and requires a recompile for switching. 8 digit hex codes are being worked on. The keycode function is `UC(n)`, where *n* is a 4 digit hexidecimal. Enable from the Makefile. + +## Other firmware shortcut keycodes + +* `RESET` - puts the MCU in DFU mode for flashing new firmware (with `make dfu`) +* `DEBUG` - the firmware into debug mode - you'll need hid_listen to see things +* `BL_ON` - turns the backlight on +* `BL_OFF` - turns the backlight off +* `BL_` - sets the backlight to level *n* +* `BL_INC` - increments the backlight level by one +* `BL_DEC` - decrements the backlight level by one +* `BL_TOGG` - toggles the backlight +* `BL_STEP` - steps through the backlight levels + +Enable the backlight from the Makefile. + +# Custom Quantum functions for keyboards and keymaps + +All of these functions are available in the `*_kb()` or `*_user()` variety. `kb` ones should only be used in the `/.c` file, and `user` ones should only be used in the `keymap.c`. The keyboard ones call the user ones - it's necessary to keep these calls to allow the keymap functions to work correctly. + +## `void martix_init_*(void)` + +This function gets called when the matrix is initiated, and can contain start-up code for your keyboard/keymap. + +## `void matrix_scan_*(void)` + +This function gets called at every matrix scan, which is basically as often as the MCU can handle. Be careful what you put here, as it will get run a lot. + +## `bool process_record_*(uint16_t keycode, keyrecord_t *record)` + +This function gets called on every keypress/release, and is where you can define custom functionality. The return value is whether or not QMK should continue processing the keycode - returning `false` stops the execution. + +The `keycode` variable is whatever is defined in your keymap, eg `MO(1)`, `KC_L`, etc. and can be switch-cased to execute code whenever a particular code is pressed. + +The `record` variable contains infomation about the actual press: + +``` +keyrecord_t record { + keyevent_t event { + keypos_t key { + uint8_t col + uint8_t row + } + bool pressed + uint16_t time + } +} +``` + +The conditional `if (record->event.pressed)` can tell if the key is being pressed or released, and you can execute code based on that. + +## `void led_set_*(uint8_t usb_led)` + +This gets called whenever there is a state change on your host LEDs (eg caps lock, scroll lock, etc). The LEDs are defined as: + +``` +#define USB_LED_NUM_LOCK 0 +#define USB_LED_CAPS_LOCK 1 +#define USB_LED_SCROLL_LOCK 2 +#define USB_LED_COMPOSE 3 +#define USB_LED_KANA 4 +``` + +and can be tested against the `usb_led` with a conditional like `if (usb_led & (1<` script to help get you started - you can simply pass your keyboard's name into the script, and all of the necessary files will be created. The components of each are described below. + +## `/keyboards//config.h` + +The `USB Device descriptor parameter` block contains parameters are used to uniquely identify your keyboard, but they don't really matter to the machine. + +Your `MATRIX_ROWS` and `MATRIX_COLS` are the numbers of rows and cols in your keyboard matrix - this may be different than the number of actual rows and columns on your keyboard. There are some tricks you can pull to increase the number of keys in a given matrix, but most keyboards are pretty straight-forward. + +The `MATRIX_ROW_PINS` and `MATRIX_COL_PINS` are the pins your MCU uses on each row/column. Your schematic (if you have one) will have this information on it, and the values will vary depending on your setup. This is one of the most important things to double-check in getting your keyboard setup correctly. + +For the `DIODE_DIRECTION`, most hand-wiring guides will instruct you to wire the diodes in the `COL2ROW` position, but it's possible that they are in the other - people coming from EasyAVR often use `ROW2COL`. Nothing will function if this is incorrect. + +`BACKLIGHT_PIN` is the pin that your PWM-controlled backlight (if one exists) is hooked-up to. Currently only B5, B6, and B7 are supported. + +`BACKLIGHT_BREATHING` is a fancier backlight feature, and uses one of the timers. + +`BACKLIGHT_LEVELS` is how many levels exist for your backlight - max is 15, and they are computed automatically from this number. + +## `/keyboards//Makefile` + +The values at the top likely won't need to be changed, since most boards use the `atmega32u4` chip. The `BOOTLOADER_SIZE` will need to be adjusted based on your MCU type. It's defaulted to the Teensy, since that's the most common controller. Below is quoted from the `Makefile`. + +``` +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=512 +``` + +At the bottom of the file, you'll find lots of features to turn on and off - all of these options should be set with `?=` to allow for the keymap overrides. `?=` only assigns if the variable was previously undefined. For the full documenation of these features, see the [Makefile options](#makefile-options). + +## `/keyboards//readme.md` + +This is where you'll describe your keyboard - please write as much as you can about it! Talking about default functionality/features is useful here. Feel free to link to external pages/sites if necessary. Images can be included here as well. This file will be rendered into a webpage at qmk.fm/keyboards//. + +## `/keyboards//.c` + +This is where all of the custom logic for your keyboard goes - you may not need to put anything in this file, since a lot of things are configured automatically. All of the `*_kb()` functions are defined here. If you modify them, remember to keep the calls to `*_user()`, or things in the keymaps might not work. You can read more about the functions [here](#custom-quantum-functions-for-keyboards-and-keymaps) + +## `/keyboards//.h` + +Here is where you can (optionally) define your `KEYMAP` function to remap your matrix into a more readable format. With ortholinear boards, this isn't always necessary, but it can help to accomodate the dead spots on your matrix, where there are keys that take up more than one space (2u, staggering, 6.25u, etc). The example shows the difference between the physical keys, and the matrix design: + +``` +#define KEYMAP( \ + k00, k01, k02, \ + k10, k11 \ +) \ +{ \ + { k00, k01, k02 }, \ + { k10, KC_NO, k11 }, \ +} +``` + +Each of the `kxx` variables needs to be unique, and usually follows the format `k`. You can place `KC_NO` where your dead keys are in your matrix. diff --git a/tmk_core/README.md b/tmk_core/README.md deleted file mode 100644 index 6b6714a6a..000000000 --- a/tmk_core/README.md +++ /dev/null @@ -1,146 +0,0 @@ -TMK Keyboard Firmware Core Library -================================== -This is a keyboard firmware library with some useful features for Atmel AVR and Cortex-M. - -Source code is available here: - - -Features --------- -These features can be used in your keyboard. - -* Multi-layer Keymap - Multiple keyboard layouts with layer switching -* Mouse key - Mouse control with keyboard -* System Control Key - Power Down, Sleep, Wake Up and USB Remote Wake up -* Media Control Key - Volume Down/Up, Mute, Next/Prev track, Play, Stop and etc -* USB NKRO - 120 keys(+ 8 modifiers) simultaneously -* PS/2 mouse support - PS/2 mouse(TrackPoint) as composite device -* Keyboard protocols - PS/2, ADB, M0110, Sun and other old keyboard protocols -* User Function - Customizable function of key with writing code -* Macro - Very primitive at this time -* Keyboard Tricks - Oneshot modifier and modifier with tapping feature -* Debug Console - Messages for debug and interaction with firmware -* Virtual DIP Switch - Configurations stored EEPROM(Boot Magic) -* Locking CapsLock - Mechanical switch support for CapsLock -* Breathing Sleep LED - Sleep indicator with charm during USB suspend -* Backlight - Control backlight levels - - - -Updates -------- -2015/04/22 separated with TMK Keyboard Firmware Collection - - - -TMK Keyboard Firmware Collection --------------------------------- -Complete firmwares for various keyboards and protocol converters. - - - - - -License -------- -**GPLv2** or later. Some protocol files are under **Modified BSD License**. -LUFA, PJRC and V-USB stack have their own license respectively. - - - -Build Firmware and Program Controller -------------------------------------- -See [doc/build.md](doc/build.md). - - - -Start Your Own Project ------------------------ -**TBD** -### Config.h Options -#### 1. USB vendor/product ID and device description - #define VENDOR_ID 0xFEED - #define PRODUCT_ID 0xBEEF - #define MANUFACTURER t.m.k. - #define PRODUCT Macway mod - #define DESCRIPTION t.m.k. keyboard firmware for Macway mod - -#### 2. Keyboard matrix configuration - #define MATRIX_ROWS 8 - #define MATRIX_COLS 8 - #define MATRIX_HAS_GHOST - - - -Architecture ------------- - Architecture Diagram - +---------------+---------------+-------------+ - | Host | Keyboard | Matrix, LED | - ___________ |-----------+-+ +-------------+ | +-----------| - / /| Keys/Mouse | Protocol |d| | Action | | | Protocol | - /__________/ |<-----------| LUFA |r| | Layer, Tap | | | Matrix | - |.--------.| | LED | V-USB |i| |-------------| | | PS/2,IBM | __________________ - || || |----------->| PJRC |v| | Keymap | | | ADB,M0110| Keys / /_/_/_/_/_/_/_/ /| - || Host || | Console | iWRAP(BT)|e| | Mousekey | | | SUN/NEWS |<----------/ /_/_/_/_/_/_/_/ / / - ||________||/.<-----------| UART |r| | Report | | | X68K/PC98| Control / /_/_/_/_/_/_/_/ / / - `_========_'/| |---------------------------------------------|-------->/___ /_______/ ___/ / - |_o______o_|/ | Sendchar, Print, Debug, Command, ... | |_________________|/ - +---------------------------------------------+ Keyboard - - - -Debugging --------- -Use PJRC's `hid_listen` to see debug messages. You can use the tool for debug even if firmware use LUFA stack. - -You can use xprintf() to display debug info on `hid_listen`, see `common/xprintf.h`. - - - -Files and Directories -------------------- -### Top -* common/ - common codes -* protocol/ - keyboard protocol support -* doc/ - documents -* common.mk - Makefile for common -* protocol.mk - Makefile for protocol -* rules.mk - Makefile for build rules - -### Common -* host.h -* host_driver.h -* keyboard.h -* command.h -* keymap.h -* action.h -* keycode.h -* matrix.h -* led.h -* mousekey.h -* report.h -* debug.h -* print.h -* bootloader.h -* sendchar.h -* timer.h -* util.h - -### Keyboard Protocols -* lufa/ - LUFA USB stack -* pjrc/ - PJRC USB stack -* vusb/ - Objective Development V-USB -* iwrap/ - Bluetooth HID for Bluegiga iWRAP -* ps2.c - PS/2 protocol -* adb.c - Apple Desktop Bus protocol -* m0110.c - Macintosh 128K/512K/Plus keyboard protocol -* news.c - Sony NEWS keyboard protocol -* x68k.c - Sharp X68000 keyboard protocol -* serial_soft.c - Asynchronous Serial protocol implemented by software - - - -Coding Style -------------- -- Doesn't use Tab to indent, use 4-spaces instead. diff --git a/tmk_core/common/led.h b/tmk_core/common/led.h index 9dc898780..61c971c10 100644 --- a/tmk_core/common/led.h +++ b/tmk_core/common/led.h @@ -34,10 +34,6 @@ extern "C" { void led_set(uint8_t usb_led); -/* keyboard-specific LED functionality */ -void led_set_kb(uint8_t usb_led); - - void led_init_ports(void); #ifdef __cplusplus diff --git a/tmk_core/common/matrix.h b/tmk_core/common/matrix.h index 5f380aaab..5f2f831b4 100644 --- a/tmk_core/common/matrix.h +++ b/tmk_core/common/matrix.h @@ -76,6 +76,13 @@ void matrix_power_down(void); /* executes code for Quantum */ void matrix_init_quantum(void); void matrix_scan_quantum(void); + +void matrix_init_kb(void); +void matrix_scan_kb(void); + +void matrix_init_user(void); +void matrix_scan_user(void); + #ifdef __cplusplus } #endif diff --git a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/makefile b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/makefile index 2649598d9..9d6329b5f 100644 --- a/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/makefile +++ b/tmk_core/protocol/lufa/LUFA-git/LUFA/StudioIntegration/makefile @@ -109,7 +109,7 @@ generate_vsix: $(EXTENSION_OUTPUT_XML) $(MODULE_OUTPUT_XML) $(MSHELP_OUTPUT_XML) @echo Archiving XDK content... @rm -f contents.zip - @cd $(LUFA_ROOT)/../ && zip contents.zip -q -0 -r --exclude=*Documentation* --exclude=*StudioIntegration* LUFA Bootloaders Demos Projects README.txt + @cd $(LUFA_ROOT)/../ && zip contents.zip -q -0 -r --exclude=*Documentation* --exclude=*StudioIntegration* LUFA Bootloaders Demos Projects readme.txt @echo Creating VSIX dependencies... @cp $(VSIX_ASSETS) $(LUFA_ROOT)/.. diff --git a/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/README.md b/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/README.md deleted file mode 100644 index 49cd83e0a..000000000 --- a/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/README.md +++ /dev/null @@ -1,351 +0,0 @@ -# USB Host Library Rev.2.0 - -The code is released under the GNU General Public License. -__________ - -# Summary -This is Revision 2.0 of MAX3421E-based USB Host Shield Library for AVR's. - -Project main web site is: . - -Some information can also be found at: . - -The shield can be purchased at the main site: or from [TKJ Electronics](http://tkjelectronics.com/): . - -![USB Host Shield](http://shop.tkjelectronics.dk/images/USB_Host_Shield1.jpg) - -For more information about the hardware see the [Hardware Manual](http://www.circuitsathome.com/usb-host-shield-hardware-manual). - -# Developed By - -* __Oleg Mazurov, Circuits@Home__ - -* __Alexei Glushchenko, Circuits@Home__ - - * Developers of the USB Core, HID, FTDI, ADK, ACM, and PL2303 libraries -* __Kristian Lauszus, TKJ Electronics__ - - * Developer of the [BTD](#bluetooth-libraries), [BTHID](#bthid-library), [SPP](#spp-library), [PS4](#ps4-library), [PS3](#ps3-library), [Wii](#wii-library), [Xbox](#xbox-library), and [PSBuzz](#ps-buzz-library) libraries -* __Andrew Kroll__ - - * Major contributor to mass storage code -* __guruthree__ - * [Xbox ONE](#xbox-one-library) controller support - -# Donate - -Help yourself by helping us support you! Many thousands of hours have been spent developing the USB Host Shield library. Since you find it useful, please consider donating via the button below. Donations will allow us to support you by ensuring hardware that you have can be acquired in order to add support for your microcontroller board. - -PayPal - The safer, easier way to pay online! - -# Table of Contents - -* [How to include the library](#how-to-include-the-library) - * [Arduino Library Manager](#arduino-library-manager) - * [Manual installation](#manual-installation) -* [How to use the library](#how-to-use-the-library) - * [Documentation](#documentation) - * [Enable debugging](#enable-debugging) - * [Boards](#boards) - * [Bluetooth libraries](#bluetooth-libraries) - * [BTHID library](#bthid-library) - * [SPP library](#spp-library) - * [PS4 Library](#ps4-library) - * [PS3 Library](#ps3-library) - * [Xbox Libraries](#xbox-libraries) - * [Xbox library](#xbox-library) - * [Xbox 360 Library](#xbox-360-library) - * [Xbox ONE Library](#xbox-one-library) - * [Wii library](#wii-library) - * [PS Buzz Library](#ps-buzz-library) -* [Interface modifications](#interface-modifications) -* [FAQ](#faq) - -# How to include the library - -### Arduino Library Manager - -First install Arduino IDE version 1.6.2 or newer, then simply use the Arduino Library Manager to install the library. - -Please see the following page for instructions: . - -### Manual installation - -First download the library by clicking on the following link: . - -Then uncompress the zip folder and rename the directory to "USB\_Host\_Shield\_20", as any special characters are not supported by the Arduino IDE. - -Now open up the Arduino IDE and open "File>Preferences". There you will see the location of your sketchbook. Open that directory and create a directory called "libraries" inside that directory. -Now move the "USB\_Host\_Shield\_20" directory to the "libraries" directory. - -The final structure should look like this: - -* Arduino/ - * libraries/ - * USB\_Host\_Shield\_20/ - -Now quit the Arduino IDE and reopen it. - -Now you should be able to go open all the examples codes by navigating to "File>Examples>USB\_Host\_Shield\_20" and then select the example you will like to open. - -For more information visit the following sites: and . - -# How to use the library - -### Documentation - -Documentation for the library can be found at the following link: . - -### Enable debugging - -By default serial debugging is disabled. To turn it on simply change ```ENABLE_UHS_DEBUGGING``` to 1 in [settings.h](settings.h) like so: - -```C++ -#define ENABLE_UHS_DEBUGGING 1 -``` - -### Boards - -Currently the following boards are supported by the library: - -* All official Arduino AVR boards (Uno, Duemilanove, Mega, Mega 2560, Mega ADK, Leonardo etc.) -* Arduino Due, Intel Galileo, Intel Galileo 2, and Intel Edison - * Note that the Intel Galileo uses pin 2 and 3 as INT and SS pin respectively by default, so some modifications to the shield are needed. See the "Interface modifications" section in the [hardware manual](https://www.circuitsathome.com/usb-host-shield-hardware-manual) for more information. -* Teensy (Teensy++ 1.0, Teensy 2.0, Teensy++ 2.0, and Teensy 3.x) - * Note if you are using the Teensy 3.x you should download this SPI library as well: . You should then add ```#include ``` to your .ino file. -* Balanduino -* Sanguino -* Black Widdow -* RedBearLab nRF51822 -* Digilent chipKIT - * Please see: . - -The following boards need to be activated manually in [settings.h](settings.h): - -* Arduino Mega ADK - * If you are using Arduino 1.5.5 or newer there is no need to activate the Arduino Mega ADK manually -* Black Widdow - -Simply set the corresponding value to 1 instead of 0. - -### [Bluetooth libraries](BTD.cpp) - -The [BTD library](BTD.cpp) is a general purpose library for an ordinary Bluetooth dongle. -This library make it easy to add support for different Bluetooth services like a PS3 or a Wii controller or SPP which is a virtual serial port via Bluetooth. -Some different examples can be found in the [example directory](examples/Bluetooth). - -The BTD library also makes it possible to use multiple services at once, the following example sketch is an example of this: -[PS3SPP.ino](examples/Bluetooth/PS3SPP/PS3SPP.ino). - -### [BTHID library](BTHID.cpp) - -The [Bluetooth HID library](BTHID.cpp) allows you to connect HID devices via Bluetooth to the USB Host Shield. - -Currently HID mice and keyboards are supported. - -It uses the standard Boot protocol by default, but it is also able to use the Report protocol as well. You would simply have to call ```setProtocolMode()``` and then parse ```HID_RPT_PROTOCOL``` as an argument. You will then have to modify the parser for your device. See the example: [BTHID.ino](examples/Bluetooth/BTHID/BTHID.ino) for more information. - -The [PS4 library](#ps4-library) also uses this class to handle all Bluetooth communication. - -For information see the following blog post: . - -### [SPP library](SPP.cpp) - -SPP stands for "Serial Port Profile" and is a Bluetooth protocol that implements a virtual comport which allows you to send data back and forth from your computer/phone to your Arduino via Bluetooth. -It has been tested successfully on Windows, Mac OS X, Linux, and Android. - -Take a look at the [SPP.ino](examples/Bluetooth/SPP/SPP.ino) example for more information. - -More information can be found at these blog posts: - -* -* - -To implement the SPP protocol I used a Bluetooth sniffing tool called [PacketLogger](http://www.tkjelectronics.com/uploads/PacketLogger.zip) developed by Apple. -It enables me to see the Bluetooth communication between my Mac and any device. - -### PS4 Library - -The PS4BT library is split up into the [PS4BT](PS4BT.h) and the [PS4USB](PS4USB.h) library. These allow you to use the Sony PS4 controller via Bluetooth and USB. - -The [PS4BT.ino](examples/Bluetooth/PS4BT/PS4BT.ino) and [PS4USB.ino](examples/PS4USB/PS4USB.ino) examples shows how to easily read the buttons, joysticks, touchpad and IMU on the controller via Bluetooth and USB respectively. It is also possible to control the rumble and light on the controller and get the battery level. - -Before you can use the PS4 controller via Bluetooth you will need to pair with it. - -Simply create the PS4BT instance like so: ```PS4BT PS4(&Btd, PAIR);``` and then hold down the Share button and then hold down the PS without releasing the Share button. The PS4 controller will then start to blink rapidly indicating that it is in paring mode. - -It should then automatically pair the dongle with your controller. This only have to be done once. - -For information see the following blog post: . - -Also check out this excellent Wiki by Frank Zhao about the PS4 controller: and this Linux driver: . - -### PS3 Library - -These libraries consist of the [PS3BT](PS3BT.cpp) and [PS3USB](PS3USB.cpp). These libraries allows you to use a Dualshock 3, Navigation or a Motion controller with the USB Host Shield both via Bluetooth and USB. - -In order to use your Playstation controller via Bluetooth you have to set the Bluetooth address of the dongle internally to your PS3 Controller. This can be achieved by first plugging in the Bluetooth dongle and wait a few seconds. Now plug in the controller via USB and wait until the LEDs start to flash. The library has now written the Bluetooth address of the dongle to the PS3 controller. - -Finally simply plug in the Bluetooth dongle again and press PS on the PS3 controller. After a few seconds it should be connected to the dongle and ready to use. - -__Note:__ You will have to plug in the Bluetooth dongle before connecting the controller, as the library needs to read the address of the dongle. Alternatively you could set it in code like so: [PS3BT.ino#L20](examples/Bluetooth/PS3BT/PS3BT.ino#L20). - -For more information about the PS3 protocol see the official wiki: . - -Also take a look at the blog posts: - -* -* -* - -A special thanks go to the following people: - -1. _Richard Ibbotson_ who made this excellent guide: -2. _Tomoyuki Tanaka_ for releasing his code for the Arduino USB Host shield connected to the wiimote: - -Also a big thanks all the people behind these sites about the Motion controller: - -* -* -* -* - -### Xbox Libraries - -The library supports both the original Xbox controller via USB and the Xbox 360 controller both via USB and wirelessly. - -#### Xbox library - -The [XBOXOLD](XBOXOLD.cpp) class implements support for the original Xbox controller via USB. - -All the information are from the following sites: - -* -* -* -* - -#### Xbox 360 Library - -The library support one Xbox 360 via USB or up to four Xbox 360 controllers wirelessly by using a [Xbox 360 wireless receiver](http://blog.tkjelectronics.dk/wp-content/uploads/xbox360-wireless-receiver.jpg). - -To use it via USB use the [XBOXUSB](XBOXUSB.cpp) library or to use it wirelessly use the [XBOXRECV](XBOXRECV.cpp) library. - -__Note that a Wireless controller can NOT be used via USB!__ - -Examples code can be found in the [examples directory](examples/Xbox). - -Also see the following blog posts: - -* -* -* - -All the information regarding the Xbox 360 controller protocol are form these sites: - -* -* -* - -#### Xbox ONE Library - -An Xbox ONE controller is supported via USB in the [XBOXONE](XBOXONE.cpp) class. It is heavily based on the 360 library above. In addition to cross referencing the above, information on the protocol was found at: - -* -* -* - -### [Wii library](Wii.cpp) - -The [Wii](Wii.cpp) library support the Wiimote, but also the Nunchuch and Motion Plus extensions via Bluetooth. The Wii U Pro Controller and Wii Balance Board are also supported via Bluetooth. - -First you have to pair with the controller, this is done automatically by the library if you create the instance like so: - -```C++ -WII Wii(&Btd, PAIR); -``` - -And then press 1 & 2 at once on the Wiimote or the SYNC buttons if you are using a Wii U Pro Controller or a Wii Balance Board. - -After that you can simply create the instance like so: - -```C++ -WII Wii(&Btd); -``` - -Then just press any button on the Wiimote and it will then connect to the dongle. - -Take a look at the example for more information: [Wii.ino](examples/Bluetooth/Wii/Wii.ino). - -Also take a look at the blog post: - -* - -The Wii IR camera can also be used, but you will have to activate the code for it manually as it is quite large. Simply set ```ENABLE_WII_IR_CAMERA``` to 1 in [settings.h](settings.h). - -The [WiiIRCamera.ino](examples/Bluetooth/WiiIRCamera/WiiIRCamera.ino) example shows how it can be used. - -All the information about the Wii controllers are from these sites: - -* -* -* -* -* -* The old library created by _Tomoyuki Tanaka_: also helped a lot. - -### [PS Buzz Library](PSBuzz.cpp) - -This library implements support for the Playstation Buzz controllers via USB. - -It is essentially just a wrapper around the [HIDUniversal](hiduniversal.cpp) which takes care of the initializing and reading of the controllers. The [PSBuzz](PSBuzz.cpp) class simply inherits this and parses the data, so it is easy for users to read the buttons and turn the big red button on the controllers on and off. - -The example [PSBuzz.ino](examples/PSBuzz/PSBuzz.ino) shows how one can do this with just a few lines of code. - -More information about the controller can be found at the following sites: - -* http://www.developerfusion.com/article/84338/making-usb-c-friendly/ -* https://github.com/torvalds/linux/blob/master/drivers/hid/hid-sony.c - -# Interface modifications - -The shield is using SPI for communicating with the MAX3421E USB host controller. It uses the SCK, MISO and MOSI pins via the ICSP on your board. - -Note this means that it uses pin 13, 12, 11 on an Arduino Uno, so these pins can not be used for anything else than SPI communication! - -Furthermore it uses one pin as SS and one INT pin. These are by default located on pin 10 and 9 respectively. They can easily be reconfigured in case you need to use them for something else by cutting the jumper on the shield and then solder a wire from the pad to the new pin. - -After that you need modify the following entry in [UsbCore.h](UsbCore.h): - -```C++ -typedef MAX3421e MAX3421E; -``` - -For instance if you have rerouted SS to pin 7 it should read: - -```C++ -typedef MAX3421e MAX3421E; -``` - -See the "Interface modifications" section in the [hardware manual](https://www.circuitsathome.com/usb-host-shield-hardware-manual) for more information. - -# FAQ - -> When I plug my device into the USB connector nothing happens? - -* Try to connect a external power supply to the Arduino - this solves the problem in most cases. -* You can also use a powered hub between the device and the USB Host Shield. You should then include the USB hub library: ```#include ``` and create the instance like so: ```USBHub Hub1(&Usb);```. - -> When I connecting my PS3 controller I get a output like this: - -``` -Dualshock 3 Controller Enabled - -LeftHatX: 0 LeftHatY: 0 RightHatX: 0 RightHatY: 0 -LeftHatX: 0 LeftHatY: 0 RightHatX: 0 RightHatY: 0 -LeftHatX: 0 LeftHatY: 0 RightHatX: 0 RightHatY: 0 -LeftHatX: 0 LeftHatY: 0 RightHatX: 0 RightHatY: 0 -LeftHatX: 0 LeftHatY: 0 RightHatX: 0 RightHatY: 0 -``` - -* This means that your dongle does not support 2.0+EDR, so you will need another dongle. Please see the following [list](https://github.com/felis/USB_Host_Shield_2.0/wiki/Bluetooth-dongles) for tested working dongles. - -> When compiling I am getting the following error: "fatal error: SPI.h: No such file or directory". - -* Please make sure to include the SPI library like so: ```#include ``` in your .ino file. diff --git a/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/testusbhostFAT/README.md b/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/testusbhostFAT/README.md deleted file mode 100644 index d8b4296b1..000000000 --- a/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/testusbhostFAT/README.md +++ /dev/null @@ -1,29 +0,0 @@ -This small sketch tests the USB host shield mass storage library. - -__Note:__ This will not run a Arduino Uno due to the limited ram available in the ATmega328p. - -The Arduino Mega (ATmega1280) and the Arduino Mega 2560 (ATmega2560) are confirmed to work with this test code. - -To compile this example you will need the following libraries as well: - -* [xmem2](https://github.com/xxxajk/xmem2) -* [generic_storage FATfs](https://github.com/xxxajk/generic_storage) -* [RTClib](https://github.com/xxxajk/RTClib) - -The following shield is recommended for larger projects: . - -You may use the bundled [Makefile](Makefile) to compile the code instead of the Arduino IDE if you have problems or want a smaller binary. The master makefile is bundled as a submodule, but can also be downloaded manually at the following link: . - -To download the USB Host library and all the needed libraries for this test. - -Run the following command in a terminal application: - -``` -git clone --recursive https://github.com/felis/USB_Host_Shield_2.0 -``` - -If you want to update all the submodules run: - -``` -git submodule foreach --recursive git pull origin master -``` diff --git a/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/testusbhostFAT/readme.md b/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/testusbhostFAT/readme.md new file mode 100644 index 000000000..d8b4296b1 --- /dev/null +++ b/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/testusbhostFAT/readme.md @@ -0,0 +1,29 @@ +This small sketch tests the USB host shield mass storage library. + +__Note:__ This will not run a Arduino Uno due to the limited ram available in the ATmega328p. + +The Arduino Mega (ATmega1280) and the Arduino Mega 2560 (ATmega2560) are confirmed to work with this test code. + +To compile this example you will need the following libraries as well: + +* [xmem2](https://github.com/xxxajk/xmem2) +* [generic_storage FATfs](https://github.com/xxxajk/generic_storage) +* [RTClib](https://github.com/xxxajk/RTClib) + +The following shield is recommended for larger projects: . + +You may use the bundled [Makefile](Makefile) to compile the code instead of the Arduino IDE if you have problems or want a smaller binary. The master makefile is bundled as a submodule, but can also be downloaded manually at the following link: . + +To download the USB Host library and all the needed libraries for this test. + +Run the following command in a terminal application: + +``` +git clone --recursive https://github.com/felis/USB_Host_Shield_2.0 +``` + +If you want to update all the submodules run: + +``` +git submodule foreach --recursive git pull origin master +``` diff --git a/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/readme.md b/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/readme.md new file mode 100644 index 000000000..49cd83e0a --- /dev/null +++ b/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/readme.md @@ -0,0 +1,351 @@ +# USB Host Library Rev.2.0 + +The code is released under the GNU General Public License. +__________ + +# Summary +This is Revision 2.0 of MAX3421E-based USB Host Shield Library for AVR's. + +Project main web site is: . + +Some information can also be found at: . + +The shield can be purchased at the main site: or from [TKJ Electronics](http://tkjelectronics.com/): . + +![USB Host Shield](http://shop.tkjelectronics.dk/images/USB_Host_Shield1.jpg) + +For more information about the hardware see the [Hardware Manual](http://www.circuitsathome.com/usb-host-shield-hardware-manual). + +# Developed By + +* __Oleg Mazurov, Circuits@Home__ - +* __Alexei Glushchenko, Circuits@Home__ - + * Developers of the USB Core, HID, FTDI, ADK, ACM, and PL2303 libraries +* __Kristian Lauszus, TKJ Electronics__ - + * Developer of the [BTD](#bluetooth-libraries), [BTHID](#bthid-library), [SPP](#spp-library), [PS4](#ps4-library), [PS3](#ps3-library), [Wii](#wii-library), [Xbox](#xbox-library), and [PSBuzz](#ps-buzz-library) libraries +* __Andrew Kroll__ - + * Major contributor to mass storage code +* __guruthree__ + * [Xbox ONE](#xbox-one-library) controller support + +# Donate + +Help yourself by helping us support you! Many thousands of hours have been spent developing the USB Host Shield library. Since you find it useful, please consider donating via the button below. Donations will allow us to support you by ensuring hardware that you have can be acquired in order to add support for your microcontroller board. + +PayPal - The safer, easier way to pay online! + +# Table of Contents + +* [How to include the library](#how-to-include-the-library) + * [Arduino Library Manager](#arduino-library-manager) + * [Manual installation](#manual-installation) +* [How to use the library](#how-to-use-the-library) + * [Documentation](#documentation) + * [Enable debugging](#enable-debugging) + * [Boards](#boards) + * [Bluetooth libraries](#bluetooth-libraries) + * [BTHID library](#bthid-library) + * [SPP library](#spp-library) + * [PS4 Library](#ps4-library) + * [PS3 Library](#ps3-library) + * [Xbox Libraries](#xbox-libraries) + * [Xbox library](#xbox-library) + * [Xbox 360 Library](#xbox-360-library) + * [Xbox ONE Library](#xbox-one-library) + * [Wii library](#wii-library) + * [PS Buzz Library](#ps-buzz-library) +* [Interface modifications](#interface-modifications) +* [FAQ](#faq) + +# How to include the library + +### Arduino Library Manager + +First install Arduino IDE version 1.6.2 or newer, then simply use the Arduino Library Manager to install the library. + +Please see the following page for instructions: . + +### Manual installation + +First download the library by clicking on the following link: . + +Then uncompress the zip folder and rename the directory to "USB\_Host\_Shield\_20", as any special characters are not supported by the Arduino IDE. + +Now open up the Arduino IDE and open "File>Preferences". There you will see the location of your sketchbook. Open that directory and create a directory called "libraries" inside that directory. +Now move the "USB\_Host\_Shield\_20" directory to the "libraries" directory. + +The final structure should look like this: + +* Arduino/ + * libraries/ + * USB\_Host\_Shield\_20/ + +Now quit the Arduino IDE and reopen it. + +Now you should be able to go open all the examples codes by navigating to "File>Examples>USB\_Host\_Shield\_20" and then select the example you will like to open. + +For more information visit the following sites: and . + +# How to use the library + +### Documentation + +Documentation for the library can be found at the following link: . + +### Enable debugging + +By default serial debugging is disabled. To turn it on simply change ```ENABLE_UHS_DEBUGGING``` to 1 in [settings.h](settings.h) like so: + +```C++ +#define ENABLE_UHS_DEBUGGING 1 +``` + +### Boards + +Currently the following boards are supported by the library: + +* All official Arduino AVR boards (Uno, Duemilanove, Mega, Mega 2560, Mega ADK, Leonardo etc.) +* Arduino Due, Intel Galileo, Intel Galileo 2, and Intel Edison + * Note that the Intel Galileo uses pin 2 and 3 as INT and SS pin respectively by default, so some modifications to the shield are needed. See the "Interface modifications" section in the [hardware manual](https://www.circuitsathome.com/usb-host-shield-hardware-manual) for more information. +* Teensy (Teensy++ 1.0, Teensy 2.0, Teensy++ 2.0, and Teensy 3.x) + * Note if you are using the Teensy 3.x you should download this SPI library as well: . You should then add ```#include ``` to your .ino file. +* Balanduino +* Sanguino +* Black Widdow +* RedBearLab nRF51822 +* Digilent chipKIT + * Please see: . + +The following boards need to be activated manually in [settings.h](settings.h): + +* Arduino Mega ADK + * If you are using Arduino 1.5.5 or newer there is no need to activate the Arduino Mega ADK manually +* Black Widdow + +Simply set the corresponding value to 1 instead of 0. + +### [Bluetooth libraries](BTD.cpp) + +The [BTD library](BTD.cpp) is a general purpose library for an ordinary Bluetooth dongle. +This library make it easy to add support for different Bluetooth services like a PS3 or a Wii controller or SPP which is a virtual serial port via Bluetooth. +Some different examples can be found in the [example directory](examples/Bluetooth). + +The BTD library also makes it possible to use multiple services at once, the following example sketch is an example of this: +[PS3SPP.ino](examples/Bluetooth/PS3SPP/PS3SPP.ino). + +### [BTHID library](BTHID.cpp) + +The [Bluetooth HID library](BTHID.cpp) allows you to connect HID devices via Bluetooth to the USB Host Shield. + +Currently HID mice and keyboards are supported. + +It uses the standard Boot protocol by default, but it is also able to use the Report protocol as well. You would simply have to call ```setProtocolMode()``` and then parse ```HID_RPT_PROTOCOL``` as an argument. You will then have to modify the parser for your device. See the example: [BTHID.ino](examples/Bluetooth/BTHID/BTHID.ino) for more information. + +The [PS4 library](#ps4-library) also uses this class to handle all Bluetooth communication. + +For information see the following blog post: . + +### [SPP library](SPP.cpp) + +SPP stands for "Serial Port Profile" and is a Bluetooth protocol that implements a virtual comport which allows you to send data back and forth from your computer/phone to your Arduino via Bluetooth. +It has been tested successfully on Windows, Mac OS X, Linux, and Android. + +Take a look at the [SPP.ino](examples/Bluetooth/SPP/SPP.ino) example for more information. + +More information can be found at these blog posts: + +* +* + +To implement the SPP protocol I used a Bluetooth sniffing tool called [PacketLogger](http://www.tkjelectronics.com/uploads/PacketLogger.zip) developed by Apple. +It enables me to see the Bluetooth communication between my Mac and any device. + +### PS4 Library + +The PS4BT library is split up into the [PS4BT](PS4BT.h) and the [PS4USB](PS4USB.h) library. These allow you to use the Sony PS4 controller via Bluetooth and USB. + +The [PS4BT.ino](examples/Bluetooth/PS4BT/PS4BT.ino) and [PS4USB.ino](examples/PS4USB/PS4USB.ino) examples shows how to easily read the buttons, joysticks, touchpad and IMU on the controller via Bluetooth and USB respectively. It is also possible to control the rumble and light on the controller and get the battery level. + +Before you can use the PS4 controller via Bluetooth you will need to pair with it. + +Simply create the PS4BT instance like so: ```PS4BT PS4(&Btd, PAIR);``` and then hold down the Share button and then hold down the PS without releasing the Share button. The PS4 controller will then start to blink rapidly indicating that it is in paring mode. + +It should then automatically pair the dongle with your controller. This only have to be done once. + +For information see the following blog post: . + +Also check out this excellent Wiki by Frank Zhao about the PS4 controller: and this Linux driver: . + +### PS3 Library + +These libraries consist of the [PS3BT](PS3BT.cpp) and [PS3USB](PS3USB.cpp). These libraries allows you to use a Dualshock 3, Navigation or a Motion controller with the USB Host Shield both via Bluetooth and USB. + +In order to use your Playstation controller via Bluetooth you have to set the Bluetooth address of the dongle internally to your PS3 Controller. This can be achieved by first plugging in the Bluetooth dongle and wait a few seconds. Now plug in the controller via USB and wait until the LEDs start to flash. The library has now written the Bluetooth address of the dongle to the PS3 controller. + +Finally simply plug in the Bluetooth dongle again and press PS on the PS3 controller. After a few seconds it should be connected to the dongle and ready to use. + +__Note:__ You will have to plug in the Bluetooth dongle before connecting the controller, as the library needs to read the address of the dongle. Alternatively you could set it in code like so: [PS3BT.ino#L20](examples/Bluetooth/PS3BT/PS3BT.ino#L20). + +For more information about the PS3 protocol see the official wiki: . + +Also take a look at the blog posts: + +* +* +* + +A special thanks go to the following people: + +1. _Richard Ibbotson_ who made this excellent guide: +2. _Tomoyuki Tanaka_ for releasing his code for the Arduino USB Host shield connected to the wiimote: + +Also a big thanks all the people behind these sites about the Motion controller: + +* +* +* +* + +### Xbox Libraries + +The library supports both the original Xbox controller via USB and the Xbox 360 controller both via USB and wirelessly. + +#### Xbox library + +The [XBOXOLD](XBOXOLD.cpp) class implements support for the original Xbox controller via USB. + +All the information are from the following sites: + +* +* +* +* + +#### Xbox 360 Library + +The library support one Xbox 360 via USB or up to four Xbox 360 controllers wirelessly by using a [Xbox 360 wireless receiver](http://blog.tkjelectronics.dk/wp-content/uploads/xbox360-wireless-receiver.jpg). + +To use it via USB use the [XBOXUSB](XBOXUSB.cpp) library or to use it wirelessly use the [XBOXRECV](XBOXRECV.cpp) library. + +__Note that a Wireless controller can NOT be used via USB!__ + +Examples code can be found in the [examples directory](examples/Xbox). + +Also see the following blog posts: + +* +* +* + +All the information regarding the Xbox 360 controller protocol are form these sites: + +* +* +* + +#### Xbox ONE Library + +An Xbox ONE controller is supported via USB in the [XBOXONE](XBOXONE.cpp) class. It is heavily based on the 360 library above. In addition to cross referencing the above, information on the protocol was found at: + +* +* +* + +### [Wii library](Wii.cpp) + +The [Wii](Wii.cpp) library support the Wiimote, but also the Nunchuch and Motion Plus extensions via Bluetooth. The Wii U Pro Controller and Wii Balance Board are also supported via Bluetooth. + +First you have to pair with the controller, this is done automatically by the library if you create the instance like so: + +```C++ +WII Wii(&Btd, PAIR); +``` + +And then press 1 & 2 at once on the Wiimote or the SYNC buttons if you are using a Wii U Pro Controller or a Wii Balance Board. + +After that you can simply create the instance like so: + +```C++ +WII Wii(&Btd); +``` + +Then just press any button on the Wiimote and it will then connect to the dongle. + +Take a look at the example for more information: [Wii.ino](examples/Bluetooth/Wii/Wii.ino). + +Also take a look at the blog post: + +* + +The Wii IR camera can also be used, but you will have to activate the code for it manually as it is quite large. Simply set ```ENABLE_WII_IR_CAMERA``` to 1 in [settings.h](settings.h). + +The [WiiIRCamera.ino](examples/Bluetooth/WiiIRCamera/WiiIRCamera.ino) example shows how it can be used. + +All the information about the Wii controllers are from these sites: + +* +* +* +* +* +* The old library created by _Tomoyuki Tanaka_: also helped a lot. + +### [PS Buzz Library](PSBuzz.cpp) + +This library implements support for the Playstation Buzz controllers via USB. + +It is essentially just a wrapper around the [HIDUniversal](hiduniversal.cpp) which takes care of the initializing and reading of the controllers. The [PSBuzz](PSBuzz.cpp) class simply inherits this and parses the data, so it is easy for users to read the buttons and turn the big red button on the controllers on and off. + +The example [PSBuzz.ino](examples/PSBuzz/PSBuzz.ino) shows how one can do this with just a few lines of code. + +More information about the controller can be found at the following sites: + +* http://www.developerfusion.com/article/84338/making-usb-c-friendly/ +* https://github.com/torvalds/linux/blob/master/drivers/hid/hid-sony.c + +# Interface modifications + +The shield is using SPI for communicating with the MAX3421E USB host controller. It uses the SCK, MISO and MOSI pins via the ICSP on your board. + +Note this means that it uses pin 13, 12, 11 on an Arduino Uno, so these pins can not be used for anything else than SPI communication! + +Furthermore it uses one pin as SS and one INT pin. These are by default located on pin 10 and 9 respectively. They can easily be reconfigured in case you need to use them for something else by cutting the jumper on the shield and then solder a wire from the pad to the new pin. + +After that you need modify the following entry in [UsbCore.h](UsbCore.h): + +```C++ +typedef MAX3421e MAX3421E; +``` + +For instance if you have rerouted SS to pin 7 it should read: + +```C++ +typedef MAX3421e MAX3421E; +``` + +See the "Interface modifications" section in the [hardware manual](https://www.circuitsathome.com/usb-host-shield-hardware-manual) for more information. + +# FAQ + +> When I plug my device into the USB connector nothing happens? + +* Try to connect a external power supply to the Arduino - this solves the problem in most cases. +* You can also use a powered hub between the device and the USB Host Shield. You should then include the USB hub library: ```#include ``` and create the instance like so: ```USBHub Hub1(&Usb);```. + +> When I connecting my PS3 controller I get a output like this: + +``` +Dualshock 3 Controller Enabled + +LeftHatX: 0 LeftHatY: 0 RightHatX: 0 RightHatY: 0 +LeftHatX: 0 LeftHatY: 0 RightHatX: 0 RightHatY: 0 +LeftHatX: 0 LeftHatY: 0 RightHatX: 0 RightHatY: 0 +LeftHatX: 0 LeftHatY: 0 RightHatX: 0 RightHatY: 0 +LeftHatX: 0 LeftHatY: 0 RightHatX: 0 RightHatY: 0 +``` + +* This means that your dongle does not support 2.0+EDR, so you will need another dongle. Please see the following [list](https://github.com/felis/USB_Host_Shield_2.0/wiki/Bluetooth-dongles) for tested working dongles. + +> When compiling I am getting the following error: "fatal error: SPI.h: No such file or directory". + +* Please make sure to include the SPI library like so: ```#include ``` in your .ino file. diff --git a/tmk_core/protocol/vusb/usbdrv/Changelog.txt b/tmk_core/protocol/vusb/usbdrv/Changelog.txt index 5c6354ab1..1e74180a9 100644 --- a/tmk_core/protocol/vusb/usbdrv/Changelog.txt +++ b/tmk_core/protocol/vusb/usbdrv/Changelog.txt @@ -28,7 +28,7 @@ Scroll down to the bottom to see the most recent changes. - Added (free) default Vendor- and Product-IDs bought from voti.nl. - Added USBID-License.txt file which defines the rules for using the free shared VID/PID pair. - - Added Readme.txt to the usbdrv directory which clarifies administrative + - Added readme.txt to the usbdrv directory which clarifies administrative issues. 2006-01-25: diff --git a/tmk_core/protocol/vusb/usbdrv/License.txt b/tmk_core/protocol/vusb/usbdrv/License.txt index 4460cfbae..ce4c3aed4 100644 --- a/tmk_core/protocol/vusb/usbdrv/License.txt +++ b/tmk_core/protocol/vusb/usbdrv/License.txt @@ -10,7 +10,7 @@ Use the form at http://www.obdev.at/vusb/feedback.html for your submission. (2) Adhere to minimum publication standards. Please include AT LEAST: - a circuit diagram in PDF, PNG or GIF format - full source code for the host software - - a Readme.txt file in ASCII format which describes the purpose of the + - a readme.txt file in ASCII format which describes the purpose of the project and what can be found in which directories and which files - a reference to http://www.obdev.at/vusb/ diff --git a/tmk_core/protocol/vusb/usbdrv/Readme.txt b/tmk_core/protocol/vusb/usbdrv/Readme.txt index 970dc66b2..3cff49f6f 100644 --- a/tmk_core/protocol/vusb/usbdrv/Readme.txt +++ b/tmk_core/protocol/vusb/usbdrv/Readme.txt @@ -1,4 +1,4 @@ -This is the Readme file to Objective Development's firmware-only USB driver +This is the readme file to Objective Development's firmware-only USB driver for Atmel AVR microcontrollers. For more information please visit http://www.obdev.at/vusb/ @@ -15,7 +15,7 @@ file "usbdrv.h". Please read all of it carefully! Configuration options are documented in "usbconfig-prototype.h". The driver consists of the following files: - Readme.txt ............. The file you are currently reading. + readme.txt ............. The file you are currently reading. Changelog.txt .......... Release notes for all versions of the driver. usbdrv.h ............... Driver interface definitions and technical docs. * usbdrv.c ............... High level language part of the driver. Link this @@ -155,7 +155,7 @@ http://www.obdev.at/goto.php?t=vusb-wiki&p=hosted-projects. (2) Adhere to minimum publication standards. Please include AT LEAST: - a circuit diagram in PDF, PNG or GIF format - full source code for the host software - - a Readme.txt file in ASCII format which describes the purpose of the + - a readme.txt file in ASCII format which describes the purpose of the project and what can be found in which directories and which files - a reference to http://www.obdev.at/vusb/ diff --git a/tmk_core/readme.md b/tmk_core/readme.md new file mode 100644 index 000000000..6b6714a6a --- /dev/null +++ b/tmk_core/readme.md @@ -0,0 +1,146 @@ +TMK Keyboard Firmware Core Library +================================== +This is a keyboard firmware library with some useful features for Atmel AVR and Cortex-M. + +Source code is available here: + + +Features +-------- +These features can be used in your keyboard. + +* Multi-layer Keymap - Multiple keyboard layouts with layer switching +* Mouse key - Mouse control with keyboard +* System Control Key - Power Down, Sleep, Wake Up and USB Remote Wake up +* Media Control Key - Volume Down/Up, Mute, Next/Prev track, Play, Stop and etc +* USB NKRO - 120 keys(+ 8 modifiers) simultaneously +* PS/2 mouse support - PS/2 mouse(TrackPoint) as composite device +* Keyboard protocols - PS/2, ADB, M0110, Sun and other old keyboard protocols +* User Function - Customizable function of key with writing code +* Macro - Very primitive at this time +* Keyboard Tricks - Oneshot modifier and modifier with tapping feature +* Debug Console - Messages for debug and interaction with firmware +* Virtual DIP Switch - Configurations stored EEPROM(Boot Magic) +* Locking CapsLock - Mechanical switch support for CapsLock +* Breathing Sleep LED - Sleep indicator with charm during USB suspend +* Backlight - Control backlight levels + + + +Updates +------- +2015/04/22 separated with TMK Keyboard Firmware Collection + + + +TMK Keyboard Firmware Collection +-------------------------------- +Complete firmwares for various keyboards and protocol converters. + + + + + +License +------- +**GPLv2** or later. Some protocol files are under **Modified BSD License**. +LUFA, PJRC and V-USB stack have their own license respectively. + + + +Build Firmware and Program Controller +------------------------------------- +See [doc/build.md](doc/build.md). + + + +Start Your Own Project +----------------------- +**TBD** +### Config.h Options +#### 1. USB vendor/product ID and device description + #define VENDOR_ID 0xFEED + #define PRODUCT_ID 0xBEEF + #define MANUFACTURER t.m.k. + #define PRODUCT Macway mod + #define DESCRIPTION t.m.k. keyboard firmware for Macway mod + +#### 2. Keyboard matrix configuration + #define MATRIX_ROWS 8 + #define MATRIX_COLS 8 + #define MATRIX_HAS_GHOST + + + +Architecture +------------ + Architecture Diagram + +---------------+---------------+-------------+ + | Host | Keyboard | Matrix, LED | + ___________ |-----------+-+ +-------------+ | +-----------| + / /| Keys/Mouse | Protocol |d| | Action | | | Protocol | + /__________/ |<-----------| LUFA |r| | Layer, Tap | | | Matrix | + |.--------.| | LED | V-USB |i| |-------------| | | PS/2,IBM | __________________ + || || |----------->| PJRC |v| | Keymap | | | ADB,M0110| Keys / /_/_/_/_/_/_/_/ /| + || Host || | Console | iWRAP(BT)|e| | Mousekey | | | SUN/NEWS |<----------/ /_/_/_/_/_/_/_/ / / + ||________||/.<-----------| UART |r| | Report | | | X68K/PC98| Control / /_/_/_/_/_/_/_/ / / + `_========_'/| |---------------------------------------------|-------->/___ /_______/ ___/ / + |_o______o_|/ | Sendchar, Print, Debug, Command, ... | |_________________|/ + +---------------------------------------------+ Keyboard + + + +Debugging +-------- +Use PJRC's `hid_listen` to see debug messages. You can use the tool for debug even if firmware use LUFA stack. + +You can use xprintf() to display debug info on `hid_listen`, see `common/xprintf.h`. + + + +Files and Directories +------------------- +### Top +* common/ - common codes +* protocol/ - keyboard protocol support +* doc/ - documents +* common.mk - Makefile for common +* protocol.mk - Makefile for protocol +* rules.mk - Makefile for build rules + +### Common +* host.h +* host_driver.h +* keyboard.h +* command.h +* keymap.h +* action.h +* keycode.h +* matrix.h +* led.h +* mousekey.h +* report.h +* debug.h +* print.h +* bootloader.h +* sendchar.h +* timer.h +* util.h + +### Keyboard Protocols +* lufa/ - LUFA USB stack +* pjrc/ - PJRC USB stack +* vusb/ - Objective Development V-USB +* iwrap/ - Bluetooth HID for Bluegiga iWRAP +* ps2.c - PS/2 protocol +* adb.c - Apple Desktop Bus protocol +* m0110.c - Macintosh 128K/512K/Plus keyboard protocol +* news.c - Sony NEWS keyboard protocol +* x68k.c - Sharp X68000 keyboard protocol +* serial_soft.c - Asynchronous Serial protocol implemented by software + + + +Coding Style +------------- +- Doesn't use Tab to indent, use 4-spaces instead. diff --git a/tmk_core/rules.mk b/tmk_core/rules.mk index 07700283e..aaaba1c2c 100644 --- a/tmk_core/rules.mk +++ b/tmk_core/rules.mk @@ -40,7 +40,7 @@ OPT = s # AVR [Extended] COFF format requires stabs, plus an avr-objcopy run. DEBUG = dwarf-2 -COLOR?=true +COLOR ?= true ifeq ($(COLOR),true) NO_COLOR=\033[0m @@ -129,10 +129,8 @@ CFLAGS += -fshort-enums CFLAGS += -fno-strict-aliasing # add color ifeq ($(COLOR),true) -ifeq ("$(echo "int main(){}" | $(CC) -fdiagnostics-color -x c - -o /dev/null 2>&1)", "") +ifeq ("$(shell echo "int main(){}" | $(CC) -fdiagnostics-color -x c - -o /dev/null 2>&1)", "") CFLAGS+= -fdiagnostics-color -else ifeq ("$(echo "int main(){}" | $(CC) -fcolor-diagnostics -x c - -o /dev/null 2>&1)", "") - CFLAGS+= -fcolor-diagnostics endif endif CFLAGS += -Wall @@ -450,15 +448,6 @@ endif dfu-programmer $(MCU) flash $(BUILD_DIR)/$(TARGET).hex dfu-programmer $(MCU) reset -dfu-no-build: -ifneq (, $(findstring 0.7, $(shell dfu-programmer --version 2>&1))) - dfu-programmer $(MCU) erase --force -else - dfu-programmer $(MCU) erase -endif - dfu-programmer $(MCU) flash $(KEYMAP_PATH)/compiled.hex - dfu-programmer $(MCU) reset - dfu-start: dfu-programmer $(MCU) reset dfu-programmer $(MCU) start @@ -536,9 +525,6 @@ extcoff: $(BUILD_DIR)/$(TARGET).elf $(eval CMD=$(OBJCOPY) -O $(FORMAT) -R .eeprom -R .fuse -R .lock -R .signature $< $@) @$(BUILD_CMD) @$(COPY) $@ $(TARGET).hex - $(SILENT) || printf "Copying $(TARGET).hex to keymaps/$(KEYMAP)/compiled.hex" | $(AWK_CMD) - $(eval CMD=$(COPY) $@ $(KEYMAP_PATH)/compiled.hex) - @$(BUILD_CMD) %.eep: %.elf @$(SILENT) || printf "$(MSG_EEPROM) $@" | $(AWK_CMD) diff --git a/util/new_project.sh b/util/new_project.sh index 9ab8d6fbb..b3535f449 100755 --- a/util/new_project.sh +++ b/util/new_project.sh @@ -7,6 +7,8 @@ if [ -z "$1" ]; then exit 1 fi +cd "$(dirname "$0")/.." + KEYBOARD=$1 KEYBOARD_UPPERCASE=$(echo $1 | awk '{print toupper($0)}') @@ -16,12 +18,14 @@ mkdir keyboards/$1/keymaps/default sed -e "s;%KEYBOARD%;$KEYBOARD;g" -e "s;%KEYBOARD_UPPERCASE%;$KEYBOARD_UPPERCASE;g" quantum/template/template.h > keyboards/$KEYBOARD/$KEYBOARD.h sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/template.c > keyboards/$KEYBOARD/$KEYBOARD.c sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/config.h > keyboards/$KEYBOARD/config.h -sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/README.md > keyboards/$KEYBOARD/README.md +sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/readme.md > keyboards/$KEYBOARD/readme.md sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/Makefile > keyboards/$KEYBOARD/Makefile +sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/keymaps/default/config.h > keyboards/$KEYBOARD/keymaps/default/config.h sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/keymaps/default/keymap.c > keyboards/$KEYBOARD/keymaps/default/keymap.c +sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/keymaps/default/Makefile > keyboards/$KEYBOARD/keymaps/default/Makefile +sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/keymaps/default/readme.md > keyboards/$KEYBOARD/keymaps/default/readme.md echo "######################################################" -echo "# keyboards/$KEYBOARD project created. To start" -echo "# working on things, use the following command:" -echo "# cd keyboards/$KEYBOARD" +echo "# /keyboards/$KEYBOARD project created. To start" +echo "# working on things, cd into keyboards/$KEYBOARD" echo "######################################################" -- cgit v1.2.3 From b68b722325e1f0f68387e161365fa8e31c79b7b2 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Thu, 23 Jun 2016 23:14:21 -0400 Subject: updates ez's matrix to spec --- keyboards/ergodox_ez/matrix.c | 8 ++++++++ quantum/quantum.c | 6 ------ readme.md | 19 ++++++++++--------- 3 files changed, 18 insertions(+), 15 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/matrix.c b/keyboards/ergodox_ez/matrix.c index 2a7dfba21..e0de06c34 100644 --- a/keyboards/ergodox_ez/matrix.c +++ b/keyboards/ergodox_ez/matrix.c @@ -61,12 +61,20 @@ uint32_t matrix_scan_count; #endif +__attribute__ ((weak)) +void matrix_init_user(void) {} + +__attribute__ ((weak)) +void matrix_scan_user(void) {} + __attribute__ ((weak)) void matrix_init_kb(void) { + matrix_init_user(); } __attribute__ ((weak)) void matrix_scan_kb(void) { + matrix_scan_user(); } inline diff --git a/quantum/quantum.c b/quantum/quantum.c index 3f2edfc92..9c0f9691f 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -1,11 +1,5 @@ #include "quantum.h" -__attribute__ ((weak)) -void matrix_init_kb(void) {} - -__attribute__ ((weak)) -void matrix_scan_kb(void) {} - __attribute__ ((weak)) bool process_action_kb(keyrecord_t *record) { return true; diff --git a/readme.md b/readme.md index fbd9203a5..ff75c0fe9 100644 --- a/readme.md +++ b/readme.md @@ -85,7 +85,7 @@ If you have any problems building the firmware, you can try using a tool called 3. To confirm that you're in the correct location, you can display the contents of your current folder using the `dir` command on Windows, or the `ls` command on Linux or Mac. You should see several files, including `readme.md` and a `quantum` folder. From here, you need to navigate to the appropriate folder under `keyboards/`. For example, if you're building for a Planck, run `cd keyboards/planck`. 4. Once you're in the correct keyboard-specific folder, run the `make` command. This should output a lot of information about the build process. More information about the `make` command can be found below. -# Customizing, building, and flashing your keymap +# Customizing your keymap In every keymap folder, the following files are recommended: @@ -215,7 +215,7 @@ For a value of `4` for this imaginary setting. So we `undef` it first, then `def You can then override any settings, rather than having to copy and paste the whole thing. -## Editing your keymap +## Going beyond the keycodes Aside from the [basic keycodes](doc/keycode.txt), your keymap can include shortcuts to common operations. @@ -564,7 +564,7 @@ You can currently send 4 hex digits with your OS-specific modifier key (RALT for Enable the backlight from the Makefile. -# Custom Quantum functions for keyboards and keymaps +# Custom Quantum functions All of these functions are available in the `*_kb()` or `*_user()` variety. `kb` ones should only be used in the `/.c` file, and `user` ones should only be used in the `keymap.c`. The keyboard ones call the user ones - it's necessary to keep these calls to allow the keymap functions to work correctly. @@ -613,8 +613,9 @@ This gets called whenever there is a state change on your host LEDs (eg caps loc and can be tested against the `usb_led` with a conditional like `if (usb_led & (1< 79461 bytes keyboards/ergodox_ez/keymaps/ab/keymap.c | 27 ++++++++++++--------- 4 files changed, 26 insertions(+), 14 deletions(-) create mode 100644 keyboards/ergodox_ez/keymaps/ab/Makefile (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/ab/Makefile b/keyboards/ergodox_ez/keymaps/ab/Makefile new file mode 100644 index 000000000..b673c5ce5 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/ab/Makefile @@ -0,0 +1,9 @@ +# Having a file like this allows you to override Makefile definitions +# for your own particular keymap + +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +COMMAND_ENABLE = no # Commands for debug and configuration + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.json b/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.json index 4ade74873..e9475fe9f 100644 --- a/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.json +++ b/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.json @@ -211,12 +211,12 @@ "x": 6.5, "h": 1.5 }, - "PgUp", + "PgDn", { "x": 4.5, "h": 1.5 }, - "PgDn" + "PgUp" ], [ { diff --git a/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.png b/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.png index 9a6546e35..d3ed928f6 100644 Binary files a/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.png and b/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.png differ diff --git a/keyboards/ergodox_ez/keymaps/ab/keymap.c b/keyboards/ergodox_ez/keymaps/ab/keymap.c index 9b5c93c1e..c3114d9ff 100644 --- a/keyboards/ergodox_ez/keymaps/ab/keymap.c +++ b/keyboards/ergodox_ez/keymaps/ab/keymap.c @@ -5,6 +5,10 @@ #define BASE 0 // default layer #define FN1 1 // media layer +#define CAPS_CTL CTL_T(KC_CAPS) // Caps on tap, Ctrl on hold. +#define COPY LCTL(KC_V) // C-c Copy +#define PASTE LCTL(KC_V) // C-v Paste + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer * @@ -14,10 +18,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Tab | Q | W | E | R | T | Fwd | | Back | Y | U | I | O | P | \ | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * |Caps/Ctl| A | S | D | F | G |------| |------| H | J | K | L | ; | Enter | - * |--------+------+------+------+------+------| PgUp | | PgDn |------+------+------+------+------+--------| + * |--------+------+------+------+------+------| PgDn | | PgUp |------+------+------+------+------+--------| * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | ' | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | Ctrl | Esc | LGui | Alt | Alt | | Left | Up | Dn | Right| Fn | + * | Ctrl | Esc | LGui | Alt | Alt | | Left | Dn | Up | Right| Fn | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | Copy | ( | | ) | Paste| @@ -33,22 +37,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // left hand KC_GRV, 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_WBAK, - CTL_T(KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_PGUP, - KC_LCTL, KC_ESC, KC_LGUI, KC_LALT, KC_LALT, - LCTL(KC_C), KC_LCBR, + CAPS_CTL, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_PGDN, + KC_LCTL, KC_ESC, KC_LGUI, KC_LALT, KC_LALT, + COPY, KC_LCBR, KC_LPRN, KC_SPC, KC_DEL, KC_LBRC, // right hand KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_WFWD, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, - KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT, - KC_UP, KC_LEFT, KC_RIGHT,KC_DOWN, TG(FN1), - KC_RCBR, LCTL(KC_V), + KC_PGUP, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT, + KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TG(FN1), + KC_RCBR, PASTE, KC_RPRN, - KC_RBRC, KC_ENT, KC_BSPC - ), + KC_RBRC, KC_ENT, KC_BSPC), /* Keymap 1: Fn Keys, media and mouse keys * * ,--------------------------------------------------. ,--------------------------------------------------. @@ -60,7 +63,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | | | | | | | | | | | | | | | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |Teensy| | | Lclk | Rclk | | |VolUp |VolDn | Mute | | + * |Teensy| | | Lclk | Rclk | | |VolDn |VolUp | Mute | | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | | | | | | -- cgit v1.2.3 From 0314620d26b7759ff08aac3a9709262814352b55 Mon Sep 17 00:00:00 2001 From: Anand Babu (AB) Periasamy Date: Fri, 24 Jun 2016 10:43:12 -0700 Subject: Swap up and down on ab's layout to match default (#441) --- keyboards/planck/keymaps/ab/keyboard-layout.json | 156 +++++++++++++++++------ keyboards/planck/keymaps/ab/keyboard-layout.png | Bin 26123 -> 25545 bytes keyboards/planck/keymaps/ab/keymap.c | 31 ++--- 3 files changed, 133 insertions(+), 54 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/ab/keyboard-layout.json b/keyboards/planck/keymaps/ab/keyboard-layout.json index 6e33ec6bf..72dab2a7f 100644 --- a/keyboards/planck/keymaps/ab/keyboard-layout.json +++ b/keyboards/planck/keymaps/ab/keyboard-layout.json @@ -4,60 +4,118 @@ "author": "Anand Babu Periasamy" }, [ - "1\nF1\n!\n\n\n\n\n\n\nTab", - "2\nF2\n@\n\n\n\n\n\n\nQ", - "3\nF3\n#\n\n\n\n\n\n\nW", - "4\nF4\n$\n\n\n\n\n\n\nE", - "5\nF5\n%\n\n\n\n\n\n\nR", - "6\nF6\n^\n\n\n\n\n\n\nT", - "7\nF7\n&\n\n\n\n\n\n\nY", - "8\nF8\n*\n\n\n\n\n\n\nU", - "9\nF9\n(\n\n\n\n\n\n\nI", - "0\nF10\n)\n\n\n\n\n\n\nO", - "-\nF11\n_\n\n\n\n\n\n\nP", - "=\nF12\n+\n\n\n\n\n\n\n" + { + "fa": [ + 2, + 2, + 0, + 2 + ] + }, + "F1\n1\n\n!\n\n\n\n\n\nTab", + "F2\n2\n\n@\n\n\n\n\n\nQ", + "F3\n3\n\n#\n\n\n\n\n\nW", + "F4\n4\n\n$\n\n\n\n\n\nE", + "F5\n5\n\n%\n\n\n\n\n\nR", + "F6\n6\n\n^\n\n\n\n\n\nT", + "F7\n7\n\n&\n\n\n\n\n\nY", + "F8\n8\n\n*\n\n\n\n\n\nU", + "F9\n9\n\n(\n\n\n\n\n\nI", + "F10\n0\n\n)\n\n\n\n\n\nO", + "F11\n-\n\n_\n\n\n\n\n\nP", + "F12\n=\n\n+\n\n\n\n\n\n" ], [ { - "a": 7 + "a": 7, + "f": 3 }, "Ctrl", + { + "f": 3 + }, "A", + { + "f": 3 + }, "S", + { + "f": 3 + }, "D", { - "a": 4 + "a": 4, + "f": 3 + }, + "\n(\n\n\n\n\n\n\n\nF", + { + "f": 3 }, - "(\n\n\n\n\n\n\n\n\nF", - ")\n\n\n\n\n\n\n\n\nG", - "{\n\n\n\n\n\n\n\n\nH", - "}\n\n\n\n\n\n\n\n\nJ", + "\n)\n\n\n\n\n\n\n\nG", { - "a": 7 + "f": 3 + }, + "\n{\n\n\n\n\n\n\n\nH", + { + "f": 3 + }, + "\n}\n\n\n\n\n\n\n\nJ", + { + "a": 7, + "f": 3 }, "K", + { + "f": 3 + }, "L", { - "a": 6 + "a": 6, + "f": 3 }, ";\n\n:", { - "a": 7 + "a": 7, + "f": 3 }, "Enter" ], [ + { + "f": 3 + }, "Shift", + { + "f": 3 + }, "Z", + { + "f": 3 + }, "X", + { + "f": 3 + }, "C", { - "a": 4 + "a": 4, + "fa": [ + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 2 + ] }, - "[\n`\n\n\n\n\n\n\n\nV", - "]\n~\n\n\n\n\n\n\n\nB", - "'\n\\\n\n\n\n\n\n\n\nN", - "\"\n|\n\n\n\n\n\n\n\nM", + "\\\n[\n\n\n\n\n\n\n\nV", + "|\n]\n\n\n\n\n\n\n\nB", + "`\n'\n\n\n\n\n\n\n\nN", + "~\n\"\n\n\n\n\n\n\n\nM", { "a": 6 }, @@ -71,31 +129,57 @@ ], [ { - "a": 4 + "a": 4, + "fa": [ + 2, + 2 + ] }, - "\n\n\n\n\n\n\n\n\nCtrl", + "\n\n\n\n\n\n\n\n\nCtrl", { - "a": 7 + "a": 7, + "f": 3 }, "Esc", + { + "f": 3 + }, "", + { + "f": 3 + }, "Alt", - "", + { + "f": 3 + }, + "", { "a": 4, + "f": 3, "w": 2 }, - "\nPgUP\n\nPgDn\n\n\n\n\n\nSpace", + "PgUp\nPgDn\n\n\n\n\n\n\n\nSpace", { - "a": 7 + "a": 7, + "f": 3 + }, + "", + { + "f": 3 }, - "", "", { - "a": 4 + "a": 4, + "f": 3 + }, + "\n\n\n\n\n\n\n\n\n", + { + "f": 3 + }, + "\n\n\n\n\n\n\n\n\n", + { + "f": 3 }, - "\n\n\n\n\n\n\n\n\n", - "\n\n\n\n\n\n\n\n\n", "\n\n\n\n\n\n\n\n\n" ] ] \ No newline at end of file diff --git a/keyboards/planck/keymaps/ab/keyboard-layout.png b/keyboards/planck/keymaps/ab/keyboard-layout.png index 64bf0aa1c..e4c0e91b4 100644 Binary files a/keyboards/planck/keymaps/ab/keyboard-layout.png and b/keyboards/planck/keymaps/ab/keyboard-layout.png differ diff --git a/keyboards/planck/keymaps/ab/keymap.c b/keyboards/planck/keymaps/ab/keymap.c index 57f90ab57..c70e253fb 100644 --- a/keyboards/planck/keymaps/ab/keymap.c +++ b/keyboards/planck/keymaps/ab/keymap.c @@ -12,8 +12,8 @@ extern keymap_config_t keymap_config; // Symbolic names for macro IDs. #define _QWERTY 0 // QUERTY layer -#define _RAISE 1 // Raise layer -#define _LOWER 2 // Lower layer +#define _LOWER 1 // Lower layer +#define _RAISE 2 // Raise layer #define _CUSTOM 3 // Custom layer #define _BL 4 // Backlight #define _MOBILE 5 // Mobile# @@ -21,8 +21,8 @@ extern keymap_config_t keymap_config; #define _CUSTOM2 7 // Custom macro 2 // Macro shortcuts. -#define RAISE M(_RAISE) #define LOWER M(_LOWER) +#define RAISE M(_RAISE) #define CUSTOM M(_CUSTOM) // RAISE + LOWER #define BL M(_BL) #define MOBILE M(_MOBILE) @@ -35,19 +35,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, {KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, FUNC(3)}, - {KC_LCTL, KC_ESC, KC_LGUI, KC_LALT, RAISE, KC_SPC, KC_SPC, LOWER, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT} + {KC_LCTL, KC_ESC, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, -[_RAISE] = { /* RAISE */ +[_LOWER] = { /* LOWER */ {KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL}, {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LPRN, KC_RPRN, KC_LCBR, KC_RCBR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_QUOT, KC_DQT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {BL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} + {BL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} }, -[_LOWER] = { /* LOWER */ +[_RAISE] = { /* RAISE */ {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_LCBR, KC_BSLS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_GRV, KC_TILD, KC_BSLS, KC_PIPE, KC_LBRC, KC_LBRC, KC_TRNS, KC_TRNS}, - {RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_PGDN, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE} + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSLS, KC_PIPE, KC_GRV, KC_TILD, KC_LBRC, KC_LBRC, KC_TRNS, KC_TRNS}, + {RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGUP, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE} }, [_CUSTOM] = { /* CUSTOM */ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, @@ -57,11 +57,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { } }; -// Enable these functions using FUNC(n) macro. They seem to be buggy mostly. +// Enable these functions using FUNC(n) macro. const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_LAYER_TAP_KEY(_RAISE, KC_PGUP), // Tap for PgUp, hold for RAISE - [1] = ACTION_LAYER_TAP_KEY(_LOWER, KC_PGDN), // Tap for PgDn, hold for LOWER - [2] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_CAPS), // Tap for Caps, hold for Ctrl + [0] = ACTION_LAYER_TAP_KEY(_LOWER, KC_PGDN), // Tap for PgDn, hold for LOWER + [1] = ACTION_LAYER_TAP_KEY(_RAISE, KC_PGUP), // Tap for PgUp, hold for RAISE + [2] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_CAPS), // Tap for Caps, hold for Ctrl (DOESN'T SEEM TO WORK) [3] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT), // Tap for Enter, hold for Shift }; @@ -75,11 +75,6 @@ void persistant_default_layer_set(uint16_t default_layer) { const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { switch(id) { - case _QWERTY: // Default QWERTY layer. // This case not used for now. - if (record->event.pressed) { - persistant_default_layer_set(1UL<<_QWERTY); - } - break; case _RAISE: // Raised layer. if (record->event.pressed) { layer_on(_RAISE); -- cgit v1.2.3 From 00dcac7270aabeb2f473315e94d298b4766df88c Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sun, 26 Jun 2016 14:08:11 -0400 Subject: updates planck macros to keycodes, prototype fn_actions --- keyboards/planck/keymaps/default/keymap.c | 58 ++++++++++++++----------------- quantum/keymap.c | 4 +++ 2 files changed, 31 insertions(+), 31 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/default/keymap.c b/keyboards/planck/keymaps/default/keymap.c index 4bca1b5ac..6bc6f78e5 100644 --- a/keyboards/planck/keymaps/default/keymap.c +++ b/keyboards/planck/keymaps/default/keymap.c @@ -22,16 +22,17 @@ extern keymap_config_t keymap_config; #define _PLOVER 5 #define _ADJUST 16 -// Macro name shortcuts -#define QWERTY M(_QWERTY) -#define COLEMAK M(_COLEMAK) -#define DVORAK M(_DVORAK) -#define LOWER M(_LOWER) -#define RAISE M(_RAISE) -#define M_BL 5 -#define PLOVER M(12) -#define EXT_PLV M(13) -#define TOG_OUT M(14) +enum planck_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + PLOVER, + LOWER, + RAISE, + BACKLIT, + EXT_PLV, + TOG_OUT +}; // Fillers to make layering more clear #define _______ KC_TRNS @@ -54,7 +55,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Colemak @@ -72,7 +73,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Dvorak @@ -90,7 +91,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, - {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Lower @@ -167,10 +168,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { } -}; - -const uint16_t PROGMEM fn_actions[] = { - }; #ifdef AUDIO_ENABLE @@ -192,10 +189,9 @@ void persistant_default_layer_set(uint16_t default_layer) { default_layer_set(default_layer); } -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - case _QWERTY: +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_qwerty, false, 0); @@ -203,7 +199,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) persistant_default_layer_set(1UL<<_QWERTY); } break; - case _COLEMAK: + case COLEMAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_colemak, false, 0); @@ -211,7 +207,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) persistant_default_layer_set(1UL<<_COLEMAK); } break; - case _DVORAK: + case DVORAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_dvorak, false, 0); @@ -219,7 +215,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) persistant_default_layer_set(1UL<<_DVORAK); } break; - case _LOWER: + case LOWER: if (record->event.pressed) { layer_on(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJUST); @@ -228,7 +224,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) update_tri_layer(_LOWER, _RAISE, _ADJUST); } break; - case _RAISE: + case RAISE: if (record->event.pressed) { layer_on(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJUST); @@ -237,7 +233,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) update_tri_layer(_LOWER, _RAISE, _ADJUST); } break; - case M_BL: + case BACKLIT: if (record->event.pressed) { register_code(KC_RSFT); #ifdef BACKLIGHT_ENABLE @@ -247,7 +243,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) unregister_code(KC_RSFT); } break; - case 12: + case PLOVER: if (record->event.pressed) { #ifdef AUDIO_ENABLE stop_all_notes(); @@ -265,7 +261,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) eeconfig_update_keymap(keymap_config.raw); } break; - case 13: + case EXT_PLV: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_plover_gb, false, 0); @@ -273,14 +269,14 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) layer_off(_PLOVER); } break; - case 14: + case TOG_OUT: if (record->event.pressed) { return MACRO( D(E), D(R), D(F), D(V), D(O), D(L), U(E), U(R), U(F), U(V), U(O), U(L), END ); } break; } - return MACRO_NONE; -}; + return true; +} void matrix_init_user(void) { #ifdef AUDIO_ENABLE diff --git a/quantum/keymap.c b/quantum/keymap.c index 203a82d95..74fd518c9 100644 --- a/quantum/keymap.c +++ b/quantum/keymap.c @@ -141,6 +141,10 @@ action_t action_for_key(uint8_t layer, keypos_t key) return action; } +__attribute__ ((weak)) +const uint16_t PROGMEM fn_actions[] = { + +}; /* Macro */ __attribute__ ((weak)) -- cgit v1.2.3 From 0058c33815c2153ac1efffd4ba2e2bac241b5474 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sun, 26 Jun 2016 14:20:57 -0400 Subject: updates preonic default layout --- keyboards/planck/keymaps/default/keymap.c | 24 ++++++++------- keyboards/preonic/keymaps/default/keymap.c | 48 +++++++++++++++++------------- 2 files changed, 40 insertions(+), 32 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/default/keymap.c b/keyboards/planck/keymaps/default/keymap.c index 6bc6f78e5..9b4b33f82 100644 --- a/keyboards/planck/keymaps/default/keymap.c +++ b/keyboards/planck/keymaps/default/keymap.c @@ -30,8 +30,7 @@ enum planck_keycodes { LOWER, RAISE, BACKLIT, - EXT_PLV, - TOG_OUT + EXT_PLV }; // Fillers to make layering more clear @@ -145,7 +144,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_PLOVER] = { {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, {XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, - {TOG_OUT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, {EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX} }, @@ -199,6 +198,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { persistant_default_layer_set(1UL<<_QWERTY); } break; + return false; case COLEMAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE @@ -207,6 +207,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { persistant_default_layer_set(1UL<<_COLEMAK); } break; + return false; case DVORAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE @@ -215,6 +216,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { persistant_default_layer_set(1UL<<_DVORAK); } break; + return false; case LOWER: if (record->event.pressed) { layer_on(_LOWER); @@ -224,6 +226,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { update_tri_layer(_LOWER, _RAISE, _ADJUST); } break; + return false; case RAISE: if (record->event.pressed) { layer_on(_RAISE); @@ -233,6 +236,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { update_tri_layer(_LOWER, _RAISE, _ADJUST); } break; + return false; case BACKLIT: if (record->event.pressed) { register_code(KC_RSFT); @@ -242,7 +246,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } else { unregister_code(KC_RSFT); } - break; + break; + return false; case PLOVER: if (record->event.pressed) { #ifdef AUDIO_ENABLE @@ -260,7 +265,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { keymap_config.nkro = 1; eeconfig_update_keymap(keymap_config.raw); } - break; + break; + return false; case EXT_PLV: if (record->event.pressed) { #ifdef AUDIO_ENABLE @@ -268,12 +274,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #endif layer_off(_PLOVER); } - break; - case TOG_OUT: - if (record->event.pressed) { - return MACRO( D(E), D(R), D(F), D(V), D(O), D(L), U(E), U(R), U(F), U(V), U(O), U(L), END ); - } - break; + break; + return false; } return true; } diff --git a/keyboards/preonic/keymaps/default/keymap.c b/keyboards/preonic/keymaps/default/keymap.c index 4c967d73e..ef217691b 100644 --- a/keyboards/preonic/keymaps/default/keymap.c +++ b/keyboards/preonic/keymaps/default/keymap.c @@ -16,13 +16,14 @@ #define _RAISE 4 #define _ADJUST 16 -// Macro name shortcuts -#define QWERTY M(_QWERTY) -#define COLEMAK M(_COLEMAK) -#define DVORAK M(_DVORAK) -#define LOWER M(_LOWER) -#define RAISE M(_RAISE) -#define M_BL 5 +enum planck_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, + RAISE, + BACKLIT +}; // Fillers to make layering more clear #define _______ KC_TRNS @@ -48,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL}, {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Colemak @@ -69,7 +70,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL}, {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Dvorak @@ -90,7 +91,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL}, {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, - {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Lower @@ -185,10 +186,9 @@ void persistant_default_layer_set(uint16_t default_layer) { default_layer_set(default_layer); } -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - case _QWERTY: +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_qwerty, false, 0); @@ -196,7 +196,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) persistant_default_layer_set(1UL<<_QWERTY); } break; - case _COLEMAK: + return false; + case COLEMAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_colemak, false, 0); @@ -204,7 +205,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) persistant_default_layer_set(1UL<<_COLEMAK); } break; - case _DVORAK: + return false; + case DVORAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_dvorak, false, 0); @@ -212,7 +214,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) persistant_default_layer_set(1UL<<_DVORAK); } break; - case _LOWER: + return false; + case LOWER: if (record->event.pressed) { layer_on(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJUST); @@ -221,7 +224,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) update_tri_layer(_LOWER, _RAISE, _ADJUST); } break; - case _RAISE: + return false; + case RAISE: if (record->event.pressed) { layer_on(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJUST); @@ -230,7 +234,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) update_tri_layer(_LOWER, _RAISE, _ADJUST); } break; - case M_BL: + return false; + case BACKLIT: if (record->event.pressed) { register_code(KC_RSFT); #ifdef BACKLIGHT_ENABLE @@ -239,9 +244,10 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } else { unregister_code(KC_RSFT); } - break; + break; + return false; } - return MACRO_NONE; + return true; }; void matrix_init_user(void) { -- cgit v1.2.3 From e5d1e4b8cefb8f78561f35e0295b548c00b5ad57 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sun, 26 Jun 2016 16:16:21 -0400 Subject: Preonic keymap update --- keyboards/preonic/keymaps/default/keymap.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'keyboards') diff --git a/keyboards/preonic/keymaps/default/keymap.c b/keyboards/preonic/keymaps/default/keymap.c index ef217691b..6d8ef634d 100644 --- a/keyboards/preonic/keymaps/default/keymap.c +++ b/keyboards/preonic/keymaps/default/keymap.c @@ -16,7 +16,7 @@ #define _RAISE 4 #define _ADJUST 16 -enum planck_keycodes { +enum preonic_keycodes { QWERTY = SAFE_RANGE, COLEMAK, DVORAK, @@ -158,10 +158,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { } -}; - -const uint16_t PROGMEM fn_actions[] = { - }; #ifdef AUDIO_ENABLE -- cgit v1.2.3 From 7712d5521574607c99284bc5f277cb301e5ce611 Mon Sep 17 00:00:00 2001 From: Anand Babu (AB) Periasamy Date: Sun, 26 Jun 2016 20:23:16 -0700 Subject: zoom and undo keys --- .../ergodox_ez/keymaps/ab/keyboard-layout.json | 20 +++++---- .../ergodox_ez/keymaps/ab/keyboard-layout.png | Bin 79461 -> 80776 bytes keyboards/ergodox_ez/keymaps/ab/keymap.c | 46 +++++++++++++-------- 3 files changed, 40 insertions(+), 26 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.json b/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.json index e9475fe9f..e2badad4d 100644 --- a/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.json +++ b/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.json @@ -154,7 +154,8 @@ }, "S\n\n\n\n", { - "x": 1 + "x": 1, + "c": "#c4bcbc" }, "F\n\n\n\n", { @@ -162,7 +163,8 @@ }, "J", { - "x": 1 + "x": 1, + "c": "#cccccc" }, "L" ], @@ -223,7 +225,7 @@ "y": -0.75, "x": 3.5 }, - "C", + "C\n\n\n\n", { "x": 10.5, "a": 4 @@ -236,11 +238,11 @@ "x": 2.5, "a": 7 }, - "X", + "X\n\n\n\n", { "x": 1 }, - "V", + "V\n\n\n\n", { "x": 8.5 }, @@ -286,7 +288,7 @@ "x": 3.5, "a": 7 }, - "Alt\n\n\n\n", + "Alt\n\n\n\n", { "x": 10.5 }, @@ -297,15 +299,15 @@ "y": -0.875, "x": 2.5 }, - "", + "\n\n\n\n", { "x": 1 }, - "Alt\n\n\n\n", + "Alt\n\n\n\n", { "x": 8.5 }, - "", + "\n\n\n\n", { "x": 1 }, diff --git a/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.png b/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.png index d3ed928f6..740684461 100644 Binary files a/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.png and b/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.png differ diff --git a/keyboards/ergodox_ez/keymaps/ab/keymap.c b/keyboards/ergodox_ez/keymaps/ab/keymap.c index c3114d9ff..df6f33460 100644 --- a/keyboards/ergodox_ez/keymaps/ab/keymap.c +++ b/keyboards/ergodox_ez/keymaps/ab/keymap.c @@ -8,6 +8,15 @@ #define CAPS_CTL CTL_T(KC_CAPS) // Caps on tap, Ctrl on hold. #define COPY LCTL(KC_V) // C-c Copy #define PASTE LCTL(KC_V) // C-v Paste +#define ZM_NRM LCTL(KC_0) // C-0 Zoom Normal +#define ZM_OUT LCTL(KC_MINS) // C-- Zoom Out +#define ZM_IN LCTL(KC_PLUS) // C-+ Zoom In +#define EM_UNDO LCTL(KC_UNDS) // C-_ Emacs Undo + +#define _MOB 1 // Mobile# +#define _CUS1 2 // Custom macro 1 +#define _CUS2 3 // Custom macro 2 + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer @@ -34,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // 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 + // Left hand KC_GRV, 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_WBAK, CAPS_CTL, KC_A, KC_S, KC_D, KC_F, KC_G, @@ -43,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { COPY, KC_LCBR, KC_LPRN, KC_SPC, KC_DEL, KC_LBRC, - // right hand + // Right hand KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_WFWD, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, @@ -61,9 +70,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | + * | | | LClk | MClk | RClk | | | | | | | | | | | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |Teensy| | | Lclk | Rclk | | |VolDn |VolUp | Mute | | + * |Teensy| | ZmNrm| ZmOut| ZmIn | | Undo |VolDn |VolUp | Mute | | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | | | | | | @@ -75,20 +84,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ // FN1 Layer [FN1] = KEYMAP( + // Left hand KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, 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_BTN1, KC_BTN3, KC_BTN2, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, ZM_NRM, ZM_OUT, ZM_IN, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, - // right hand + // Right hand KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, KC_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, + KC_TRNS, M(_MOB), KC_TRNS, M(_CUS1),M(_CUS2),KC_TRNS, KC_TRNS, + EM_UNDO, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS @@ -102,14 +112,16 @@ 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 _MOB: // Your mobile# here. + return MACRODOWN(T(1), T(2), T(3), T(MINS), + T(1), T(2), T(3), T(MINS), + T(1), T(2), T(3), T(4), + END); + case _CUS1: // Your custom macro 1 + return MACRODOWN(T(E), T(M), T(A), T(C), T(S), T(SPC), END); + case _CUS2: // Your custom macro 2 + return MACRODOWN(T(L), T(S), T(SPC), T(MINS), T(L), T(ENT), END); + }; return MACRO_NONE; }; -- cgit v1.2.3 From 57066b12464a7d1d7f12dec573f4691587d559a6 Mon Sep 17 00:00:00 2001 From: Anand Babu (AB) Periasamy Date: Mon, 27 Jun 2016 06:51:12 -0700 Subject: zoom and undo keys for ab's planck keymap (#446) --- keyboards/planck/keymaps/ab/keyboard-layout.json | 38 +++++++------- keyboards/planck/keymaps/ab/keyboard-layout.png | Bin 25545 -> 26518 bytes keyboards/planck/keymaps/ab/keymap.c | 63 ++++++++++++++--------- 3 files changed, 58 insertions(+), 43 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/ab/keyboard-layout.json b/keyboards/planck/keymaps/ab/keyboard-layout.json index 72dab2a7f..4e631a348 100644 --- a/keyboards/planck/keymaps/ab/keyboard-layout.json +++ b/keyboards/planck/keymaps/ab/keyboard-layout.json @@ -44,11 +44,13 @@ }, "D", { + "c": "#c4bcbc", "a": 4, "f": 3 }, "\n(\n\n\n\n\n\n\n\nF", { + "c": "#cccccc", "f": 3 }, "\n)\n\n\n\n\n\n\n\nG", @@ -57,10 +59,12 @@ }, "\n{\n\n\n\n\n\n\n\nH", { + "c": "#c4bcbc", "f": 3 }, "\n}\n\n\n\n\n\n\n\nJ", { + "c": "#cccccc", "a": 7, "f": 3 }, @@ -136,26 +140,20 @@ ] }, "\n\n\n\n\n\n\n\n\nCtrl", + "\n\n\n\n\n\n\n\n\nEsc", + "\n\n\n\n\n\n\n\n\n", + "\n\n\n\n\n\n\n\n\nAlt", { "a": 7, "f": 3 }, - "Esc", - { - "f": 3 - }, - "", - { - "f": 3 - }, - "Alt", - { - "f": 3 - }, "", { "a": 4, - "f": 3, + "fa": [ + 1, + 1 + ], "w": 2 }, "PgUp\nPgDn\n\n\n\n\n\n\n\nSpace", @@ -165,21 +163,23 @@ }, "", { - "f": 3 + "a": 4, + "fa": [ + 2 + ] }, - "", + "\n\n\n\n\n\n\n\n\n", { - "a": 4, "f": 3 }, - "\n\n\n\n\n\n\n\n\n", + "\n\n\n\n\n\n\n\n\n", { "f": 3 }, - "\n\n\n\n\n\n\n\n\n", + "\n\n\n\n\n\n\n\n\n", { "f": 3 }, - "\n\n\n\n\n\n\n\n\n" + "\n\n\n\n\n\n\n\n\n" ] ] \ No newline at end of file diff --git a/keyboards/planck/keymaps/ab/keyboard-layout.png b/keyboards/planck/keymaps/ab/keyboard-layout.png index e4c0e91b4..dcdbb726d 100644 Binary files a/keyboards/planck/keymaps/ab/keyboard-layout.png and b/keyboards/planck/keymaps/ab/keyboard-layout.png differ diff --git a/keyboards/planck/keymaps/ab/keymap.c b/keyboards/planck/keymaps/ab/keymap.c index c70e253fb..8e1d28a65 100644 --- a/keyboards/planck/keymaps/ab/keymap.c +++ b/keyboards/planck/keymaps/ab/keymap.c @@ -14,57 +14,72 @@ extern keymap_config_t keymap_config; #define _QWERTY 0 // QUERTY layer #define _LOWER 1 // Lower layer #define _RAISE 2 // Raise layer -#define _CUSTOM 3 // Custom layer +#define _CUSTOM 3 // Custom layer (LOWER + RAISE) #define _BL 4 // Backlight -#define _MOBILE 5 // Mobile# -#define _CUSTOM1 6 // Custom macro 1 -#define _CUSTOM2 7 // Custom macro 2 +#define _MOB 5 // Mobile# +#define _CUS1 6 // Custom macro 1 +#define _CUS2 7 // Custom macro 2 // Macro shortcuts. +#define QWERTY M(_LOWER) #define LOWER M(_LOWER) #define RAISE M(_RAISE) -#define CUSTOM M(_CUSTOM) // RAISE + LOWER +#define CUSTOM M(_CUSTOM) #define BL M(_BL) -#define MOBILE M(_MOBILE) -#define CUSTOM1 M(_CUSTOM1) -#define CUSTOM2 M(_CUSTOM2) +#define MOB M(_MOB) +#define CUS1 M(_CUS1) +#define CUS2 M(_CUS2) + +// Func macro definitions. +#define LWR_PGDN FUNC(0) // Tap for PgDn, hold for LOWER +#define RSE_PGUP FUNC(1) // Tap for PgUp, hold for RAISE +#define CTL_CAPS FUNC(2) // Tap for Caps, hold for Ctrl (DOESN'T SEEM TO WORK) +#define SFT_ENT FUNC(3) // Tap for Enter, hold for Shift +#define ZM_NRM FUNC(4) // Zoom normal +#define ZM_IN FUNC(5) // Zoom out +#define ZM_OUT FUNC(6) // Zoom in +#define EM_UNDO FUNC(7) // Emacs Undo + +// Enable these functions using FUNC(n) macro. +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_TAP_KEY(_LOWER, KC_PGDN), + [1] = ACTION_LAYER_TAP_KEY(_RAISE, KC_PGUP), + [2] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_CAPS), + [3] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT), + [4] = ACTION_MODS_KEY(MOD_LCTL, KC_0), + [5] = ACTION_MODS_KEY(MOD_LCTL, KC_MINS), + [6] = ACTION_MODS_KEY(MOD_LCTL, KC_PLUS), + [7] = ACTION_MODS_KEY(MOD_LCTL, KC_UNDS), + }; // This config can be found at Keyboard layout editor site: http://goo.gl/zjXL2l const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = { /* QWERTY */ {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, {KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, FUNC(3)}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT}, {KC_LCTL, KC_ESC, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, [_LOWER] = { /* LOWER */ {KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL}, {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LPRN, KC_RPRN, KC_LCBR, KC_RCBR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_QUOT, KC_DQT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {BL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} + {BL, ZM_NRM, ZM_IN, ZM_OUT, KC_TRNS, KC_PGDN, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} }, [_RAISE] = { /* RAISE */ {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_LCBR, KC_BSLS, KC_TRNS}, {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSLS, KC_PIPE, KC_GRV, KC_TILD, KC_LBRC, KC_LBRC, KC_TRNS, KC_TRNS}, - {RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGUP, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE} + {RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGUP, KC_TRNS, EM_UNDO, KC_VOLD, KC_VOLU, KC_MUTE} }, [_CUSTOM] = { /* CUSTOM */ {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MOBILE, KC_TRNS, CUSTOM1, CUSTOM2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MOB, KC_TRNS, CUS1, CUS2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} } }; -// Enable these functions using FUNC(n) macro. -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_LAYER_TAP_KEY(_LOWER, KC_PGDN), // Tap for PgDn, hold for LOWER - [1] = ACTION_LAYER_TAP_KEY(_RAISE, KC_PGUP), // Tap for PgUp, hold for RAISE - [2] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_CAPS), // Tap for Caps, hold for Ctrl (DOESN'T SEEM TO WORK) - [3] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT), // Tap for Enter, hold for Shift -}; - // Set a layer persistantly. void persistant_default_layer_set(uint16_t default_layer) { eeconfig_update_default_layer(default_layer); @@ -93,7 +108,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) update_tri_layer(_LOWER, _RAISE, _CUSTOM); } break; - case _BL:// Backlight + case _BL: // Backlight if (record->event.pressed) { register_code(KC_RSFT); #ifdef BACKLIGHT_ENABLE @@ -103,14 +118,14 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) unregister_code(KC_RSFT); } break; - case _MOBILE:// Your mobile# here. + case _MOB: // Your mobile# here. return MACRODOWN(T(1), T(2), T(3), T(MINS), T(1), T(2), T(3), T(MINS), T(1), T(2), T(3), T(4), END); - case _CUSTOM1:// Your custom macro 1 + case _CUS1: // Your custom macro 1 return MACRODOWN(T(E), T(M), T(A), T(C), T(S), T(SPC), END); - case _CUSTOM2:// Your custom macro 2 + case _CUS2: // Your custom macro 2 return MACRODOWN(T(L), T(S), T(SPC), T(MINS), T(L), T(ENT), END); }; return MACRO_NONE; -- cgit v1.2.3 From 215c2119af5281072d5a6efb0308408793cadd08 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 29 Jun 2016 16:21:41 -0400 Subject: Implements subprojects and updates projects for this (#459) * non-working commit * working * subprojects implemented for planck * pass a subproject variable through to c * consolidates clueboard revisions * thanks for letting me know about conflicts.. * turn off audio for yang's * corrects starting paths for subprojects * messing around with travis * semicolon * travis script * travis script * script for travis * correct directory (probably), amend files to commit * remove origin before adding * git pull, correct syntax * git checkout * git pull origin branch * where are we? * where are we? * merging * force things to happen * adds commit message, adds add * rebase, no commit message * rebase branch * idk! * try just pull * fetch - merge * specify repo branch * checkout * goddammit * merge? idk * pls * after all * don't split up keyboards * syntax * adds quick for all-keyboards * trying out new script * script update * lowercase * all keyboards * stop replacing compiled.hex automatically * adds if statement * skip automated build branches * forces push to automated build branch * throw an add in there * upstream? * adds AUTOGEN * ignore all .hex files again * testing out new repo * global ident * generate script, keyboard_keymap.hex * skip generation for now, print pandoc info, submodule update * try trusty * and sudo * try generate * updates subprojects to keyboards * no idea * updates to keyboards * cleans up clueboard stuff * setup to use local readme * updates cluepad, planck experimental * remove extra led.c [ci skip] * disable power up for now * config files updates * makefile updates * .h file updates, config tuning * disable audio for yang --- .travis.yml | 50 +++---- Makefile | 68 ++++++++- keyboards/clueboard/Makefile | 70 ++++++++++ keyboards/clueboard/clueboard.c | 17 +++ keyboards/clueboard/clueboard.h | 13 ++ keyboards/clueboard/config.h | 74 ++++++++++ keyboards/clueboard/keymaps/default/keymap.c | 180 ++++++++++++++++++++++++ keyboards/clueboard/keymaps/max/Makefile | 49 +++++++ keyboards/clueboard/keymaps/max/keymap.c | 143 +++++++++++++++++++ keyboards/clueboard/keymaps/skully/keymap.c | 108 +++++++++++++++ keyboards/clueboard/rev1/Makefile | 5 + keyboards/clueboard/rev1/config.h | 37 +++++ keyboards/clueboard/rev1/rev1.c | 1 + keyboards/clueboard/rev1/rev1.h | 47 +++++++ keyboards/clueboard/rev2/Makefile | 5 + keyboards/clueboard/rev2/config.h | 40 ++++++ keyboards/clueboard/rev2/rev2.c | 47 +++++++ keyboards/clueboard/rev2/rev2.h | 52 +++++++ keyboards/clueboard1/Makefile | 69 ---------- keyboards/clueboard1/clueboard1.c | 12 -- keyboards/clueboard1/clueboard1.h | 47 ------- keyboards/clueboard1/config.h | 95 ------------- keyboards/clueboard1/keymaps/default/keymap.c | 184 ------------------------- keyboards/clueboard2/clueboard2.h | 52 ------- keyboards/clueboard2/config.h | 99 ------------- keyboards/clueboard2/keymaps/default/keymap.c | 179 ------------------------ keyboards/clueboard2/keymaps/max/Makefile | 11 -- keyboards/clueboard2/keymaps/max/keymap.c | 143 ------------------- keyboards/clueboard2/keymaps/skully/keymap.c | 108 --------------- keyboards/cluepad/Makefile | 4 - keyboards/cluepad/backlight.c | 54 -------- keyboards/cluepad/cluepad.c | 53 ++++++- keyboards/cluepad/cluepad.h | 4 +- keyboards/planck/Makefile | 1 + keyboards/planck/config.h | 8 +- keyboards/planck/keymaps/experimental/config.h | 1 + keyboards/planck/keymaps/yang/Makefile | 1 + keyboards/planck/planck.h | 7 + keyboards/planck/rev3/Makefile | 5 + keyboards/planck/rev3/config.h | 8 ++ keyboards/planck/rev3/rev3.c | 1 + keyboards/planck/rev3/rev3.h | 6 + keyboards/planck/rev4/Makefile | 5 + keyboards/planck/rev4/config.h | 8 ++ keyboards/planck/rev4/rev4.c | 1 + keyboards/planck/rev4/rev4.h | 6 + keyboards/readme.md | 3 +- quantum/audio/audio.h | 6 +- quantum/matrix.c | 46 +++---- readme.md | 3 +- tmk_core/rules.mk | 24 +++- util/travis_compiled_push.sh | 23 ++++ 52 files changed, 1144 insertions(+), 1139 deletions(-) create mode 100644 keyboards/clueboard/Makefile create mode 100644 keyboards/clueboard/clueboard.c create mode 100644 keyboards/clueboard/clueboard.h create mode 100644 keyboards/clueboard/config.h create mode 100644 keyboards/clueboard/keymaps/default/keymap.c create mode 100644 keyboards/clueboard/keymaps/max/Makefile create mode 100644 keyboards/clueboard/keymaps/max/keymap.c create mode 100644 keyboards/clueboard/keymaps/skully/keymap.c create mode 100644 keyboards/clueboard/rev1/Makefile create mode 100644 keyboards/clueboard/rev1/config.h create mode 100644 keyboards/clueboard/rev1/rev1.c create mode 100644 keyboards/clueboard/rev1/rev1.h create mode 100644 keyboards/clueboard/rev2/Makefile create mode 100644 keyboards/clueboard/rev2/config.h create mode 100644 keyboards/clueboard/rev2/rev2.c create mode 100644 keyboards/clueboard/rev2/rev2.h delete mode 100644 keyboards/clueboard1/Makefile delete mode 100644 keyboards/clueboard1/clueboard1.c delete mode 100644 keyboards/clueboard1/clueboard1.h delete mode 100644 keyboards/clueboard1/config.h delete mode 100644 keyboards/clueboard1/keymaps/default/keymap.c delete mode 100644 keyboards/clueboard2/clueboard2.h delete mode 100644 keyboards/clueboard2/config.h delete mode 100644 keyboards/clueboard2/keymaps/default/keymap.c delete mode 100644 keyboards/clueboard2/keymaps/max/Makefile delete mode 100644 keyboards/clueboard2/keymaps/max/keymap.c delete mode 100644 keyboards/clueboard2/keymaps/skully/keymap.c delete mode 100644 keyboards/cluepad/backlight.c create mode 100644 keyboards/planck/rev3/Makefile create mode 100644 keyboards/planck/rev3/config.h create mode 100644 keyboards/planck/rev3/rev3.c create mode 100644 keyboards/planck/rev3/rev3.h create mode 100644 keyboards/planck/rev4/Makefile create mode 100644 keyboards/planck/rev4/config.h create mode 100644 keyboards/planck/rev4/rev4.c create mode 100644 keyboards/planck/rev4/rev4.h create mode 100644 util/travis_compiled_push.sh (limited to 'keyboards') diff --git a/.travis.yml b/.travis.yml index 151f8618d..f5ae78c89 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,39 +1,21 @@ -os: - - linux - -language: - - c - -compiler: - - avr-gcc - +os: linux +dist: trusty +sudo: required +language: c +compiler: avr-gcc +branches: + except: + - /^.*-automated-build$/ env: - - KEYBOARD=alps64 - - KEYBOARD=arrow_pad - - KEYBOARD=atomic - - KEYBOARD=atreus - - KEYBOARD=bantam44 - - KEYBOARD=clueboard1 - - KEYBOARD=clueboard2 - - KEYBOARD=cluepad - - KEYBOARD=ergodox_ez - - KEYBOARD=gh60 - - KEYBOARD=hhkb - - KEYBOARD=jd45 - - KEYBOARD=kc60 - - KEYBOARD=phantom - - KEYBOARD=planck - - KEYBOARD=preonic - - KEYBOARD=retro_refit - - KEYBOARD=satan - - KEYBOARD=sixkeyboard - + global: + - secure: vBTSL34BDPxDilKUuTXqU4CJ26Pv5hogD2nghatkxSQkI1/jbdnLj/DQdPUrMJFDIY6TK3AltsBx72MaMsLQ1JO/Ou24IeHINHXzUC1FlS9yQa48cpxnhX5kzXNyGs3oa0qaFbvnr7RgYRWtmD52n4bIZuSuW+xpBv05x2OCizdT2ZonH33nATaHGFasxROm4qYZ241VfzcUv766V6RVHgL4x9V08warugs+RENVkfzxxwhk3NmkrISabze0gSVJLHBPHxroZC6EUcf/ocobcuDrCwFqtEt90i7pNIAFUE7gZsN2uE75LmpzAWin21G7lLPcPL2k4FJVd8an1HiP2WmscJU6U89fOfMb2viObnKcCzebozBCmKGtHEuXZo9FcReOx49AnQSpmESJGs+q2dL/FApkTjQiyT4J6O5dJpoww0/r57Wx0cmmqjETKBb5rSgXM51Etk3wO09mvcPHsEwrT7qH8r9XWdyCDoEn7FCLX3/LYnf/D4SmZ633YPl5gv3v9XEwxR5+04akjgnvWDSNIaDbWBdxHNb7l4pMc+WR1bwCyMyA7KXj0RrftEGOrm9ZRLe6BkbT4cycA+j77nbPOMcyZChliV9pPQos+4TOJoTzcK2L8yWVoY409aDNVuAjdP6Yum0R2maBGl/etLmIMpJC35C5/lZ+dUNjJAM= script: - - cd keyboards/$KEYBOARD && make all-keymaps - +- make all-keyboards quick AUTOGEN=true addons: apt: packages: - - avr-libc - - gcc-avr - - dfu-programmer + - avr-libc + - gcc-avr + - dfu-programmer + - pandoc +after_success: bash util/travis_compiled_push.sh \ No newline at end of file diff --git a/Makefile b/Makefile index ffbdf742c..72710c2d9 100644 --- a/Makefile +++ b/Makefile @@ -10,19 +10,32 @@ abs_tmk_root := $(patsubst %/,%,$(dir $(mkfile_path))) ifneq (,$(findstring /keyboards/,$(starting_makefile))) possible_keyboard:=$(patsubst %/,%,$(dir $(patsubst $(abs_tmk_root)/keyboards/%,%,$(starting_makefile)))) ifneq (,$(findstring /keymaps/,$(possible_keyboard))) - KEYBOARD_DIR:=$(firstword $(subst /keymaps/, ,$(possible_keyboard))) KEYMAP_DIR:=$(lastword $(subst /keymaps/, ,$(possible_keyboard))) - tmk_root = ../../../.. + KEYBOARD_DIR:=$(firstword $(subst /keymaps/, ,$(possible_keyboard))) + ifneq (,$(findstring /,$(KEYBOARD_DIR))) + # SUBPROJECT_DIR:=$(lastword $(subst /, ,$(KEYBOARD_DIR))) + # KEYBOARD_DIR:=$(firstword $(subst /, ,$(KEYBOARD_DIR))) + tmk_root = ../../.. + else + tmk_root = ../../../.. + endif else - KEYBOARD_DIR:=$(possible_keyboard) KEYMAP_DIR:=default - tmk_root = ../.. + KEYBOARD_DIR:=$(possible_keyboard) + ifneq (,$(findstring /,$(KEYBOARD_DIR))) + # SUBPROJECT_DIR:=$(lastword $(subst /, ,$(KEYBOARD_DIR))) + # KEYBOARD_DIR:=$(firstword $(subst /, ,$(KEYBOARD_DIR))) + tmk_root = ../../.. + else + tmk_root = ../.. + endif endif else tmk_root = . endif # $(info $(KEYBOARD_DIR)) # $(info $(KEYMAP_DIR)) +# $(info $(SUBPROJECT_DIR)) # Directory common source filess exist TOP_DIR = $(tmk_root) @@ -32,6 +45,7 @@ TMK_PATH = $(TOP_DIR)/$(TMK_DIR) QUANTUM_DIR = quantum QUANTUM_PATH = $(TOP_DIR)/$(QUANTUM_DIR) + ifdef keyboard KEYBOARD ?= $(keyboard) endif @@ -41,7 +55,16 @@ endif ifndef KEYBOARD KEYBOARD=planck endif + +# converts things to keyboards/subproject +ifneq (,$(findstring /,$(KEYBOARD))) + TEMP:=$(KEYBOARD) + KEYBOARD:=$(firstword $(subst /, ,$(TEMP))) + SUBPROJECT:=$(lastword $(subst /, ,$(TEMP))) +endif + KEYBOARD_PATH = $(TOP_DIR)/keyboards/$(KEYBOARD) + ifneq ("$(wildcard $(KEYBOARD_PATH)/$(KEYBOARD).c)","") KEYBOARD_FILE = keyboards/$(KEYBOARD)/$(KEYBOARD).c ifndef ARCH @@ -51,6 +74,28 @@ else $(error "$(KEYBOARD_PATH)/$(KEYBOARD).c" does not exist) endif +ifdef sub + SUBPROJECT=$(sub) +endif +ifdef subproject + SUBPROJECT=$(subproject) +endif + +ifdef SUBPROJECT_DEFAULT + SUBPROJECT?=$(SUBPROJECT_DEFAULT) +endif + +ifdef SUBPROJECT + SUBPROJECT_PATH = $(TOP_DIR)/keyboards/$(KEYBOARD)/$(SUBPROJECT) + ifneq ("$(wildcard $(SUBPROJECT_PATH)/$(SUBPROJECT).c)","") + OPT_DEFS += -DSUBPROJECT_$(SUBPROJECT) + SUBPROJECT_FILE = keyboards/$(KEYBOARD)/$(SUBPROJECT)/$(SUBPROJECT).c + -include $(SUBPROJECT_PATH)/Makefile + else +$(error "$(SUBPROJECT_PATH)/$(SUBPROJECT).c" does not exist) + endif +endif + ifdef keymap KEYMAP ?= $(keymap) endif @@ -68,7 +113,13 @@ else $(error "$(KEYMAP_PATH)/keymap.c" does not exist) endif -TARGET ?= $(KEYBOARD)_$(KEYMAP) +ifdef SUBPROJECT + TARGET ?= $(KEYBOARD)_$(SUBPROJECT)_$(KEYMAP) +else + TARGET ?= $(KEYBOARD)_$(KEYMAP) +endif + + ifneq ("$(wildcard $(KEYMAP_PATH)/config.h)","") CONFIG_H = $(KEYMAP_PATH)/config.h @@ -83,6 +134,10 @@ SRC += $(KEYBOARD_FILE) \ $(QUANTUM_DIR)/keymap.c \ $(QUANTUM_DIR)/keycode_config.c +ifdef SUBPROJECT + SRC += $(SUBPROJECT_FILE) +endif + ifndef CUSTOM_MATRIX SRC += $(QUANTUM_DIR)/matrix.c endif @@ -104,6 +159,9 @@ endif # Search Path VPATH += $(KEYMAP_PATH) +ifdef SUBPROJECT + VPATH += $(SUBPROJECT_PATH) +endif VPATH += $(KEYBOARD_PATH) VPATH += $(TOP_DIR) VPATH += $(TMK_PATH) diff --git a/keyboards/clueboard/Makefile b/keyboards/clueboard/Makefile new file mode 100644 index 000000000..d6f4bfcae --- /dev/null +++ b/keyboards/clueboard/Makefile @@ -0,0 +1,70 @@ + +SUBPROJECT_DEFAULT = rev2 + +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= no # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= yes # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +AUDIO_ENABLE ?= no +RGBLIGHT_ENABLE ?= no # Enable keyboard underlight functionality +MIDI_ENABLE ?= no # MIDI controls +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID + +ifndef QUANTUM_DIR + include ../../Makefile +endif diff --git a/keyboards/clueboard/clueboard.c b/keyboards/clueboard/clueboard.c new file mode 100644 index 000000000..13195bda6 --- /dev/null +++ b/keyboards/clueboard/clueboard.c @@ -0,0 +1,17 @@ +#include "clueboard.h" + +void led_init_ports() { + // * Set our LED pins as output + DDRB |= (1<<4); +} + +void led_set_kb(uint8_t usb_led) { + DDRF |= (1<<0); + if (usb_led & (1< + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xC1ED +#define MANUFACTURER Clueboard +#define PRODUCT Clueboard +#define DESCRIPTION QMK keyboard firmware for Clueboard + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + + +#ifdef SUBPROJECT_rev1 + #include "rev1/config.h" +#endif +#ifdef SUBPROJECT_rev2 + #include "rev2/config.h" +#endif + +#endif diff --git a/keyboards/clueboard/keymaps/default/keymap.c b/keyboards/clueboard/keymaps/default/keymap.c new file mode 100644 index 000000000..89f71e83a --- /dev/null +++ b/keyboards/clueboard/keymaps/default/keymap.c @@ -0,0 +1,180 @@ +#include "clueboard.h" + +// Used for SHIFT_ESC +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _FL 1 +#define _RS 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: (Base Layer) Default Layer + * ,--------------------------------------------------------------------------. ,----. + * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| BS| |PGUP| + * |--------------------------------------------------------------------------| |----| + * | Tab| Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |PGDN| + * |--------------------------------------------------------------------------| `----' + * |Capslck| A| S| D| F| G| H| J| K| L| ;| '| # | Ent| + * |-----------------------------------------------------------------------------. + * |Shift| BS| Z| X| C| V| B| N| M| ,| .| /| BS|Shift| UP| + * |------------------------------------------------------------------------|----|----. + * | Ctrl| Gui| Alt| MHen| Space| Space| Hen| Alt| Ctrl| _FL|LEFT|DOWN|RGHT| + * `----------------------------------------------------------------------------------' + */ +[_BL] = KEYMAP( + F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PGUP, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, \ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, \ + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_MHEN, KC_SPC,KC_SPC, KC_HENK, KC_RALT, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT), + + /* Keymap _FL: Function Layer + * ,--------------------------------------------------------------------------. ,----. + * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9| F10| F11| F12| | Del| |BLIN| + * |--------------------------------------------------------------------------| |----| + * | | | | | | | | |PScr|SLck|Paus| | | | |BLDE| + * |--------------------------------------------------------------------------| `----' + * | | | _RS| | | | | | | | | | | | + * |-----------------------------------------------------------------------------. + * | | | | | | | | | | | | | | |PGUP| + * |------------------------------------------------------------------------|----|----. + * | | | | | | | | | | _FL|HOME|PGDN| END| + * `----------------------------------------------------------------------------------' + */ +[_FL] = KEYMAP( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL, BL_STEP, \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PSCR,KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), KC_HOME, KC_PGDN, KC_END), + + /* Keymap _RS: Reset layer + * ,--------------------------------------------------------------------------. ,----. + * | | | | | | | | | | | | | | | | | | + * |--------------------------------------------------------------------------| |----| + * | | | | |RESET| | | | | | | | | | | | + * |--------------------------------------------------------------------------| `----' + * | | | _RS| | | | | | | | | | | | + * |-----------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |------------------------------------------------------------------------|----|----. + * | | | | | | | | | | _FL| | | | + * `----------------------------------------------------------------------------------' + */ +[_RS] = KEYMAP( + #ifdef RGBLIGHT_ENABLE + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(1), F(7), \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(8), \ + KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + MO(_FL), KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), F(5), \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, F(2), F(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(4), F(6), F(3)), + #else + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), KC_TRNS, KC_TRNS, KC_TRNS), + #endif +}; + +enum function_id { + SHIFT_ESC, + #ifdef RGBLIGHT_ENABLE + RGBLED_TOGGLE, + RGBLED_STEP_MODE, + RGBLED_INCREASE_HUE, + RGBLED_DECREASE_HUE, + RGBLED_INCREASE_SAT, + RGBLED_DECREASE_SAT, + RGBLED_INCREASE_VAL, + RGBLED_DECREASE_VAL + #endif +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(SHIFT_ESC), + #ifdef RGBLIGHT_ENABLE + [1] = ACTION_FUNCTION(RGBLED_TOGGLE), + [2] = ACTION_FUNCTION(RGBLED_STEP_MODE), + [3] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), + [4] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), + [5] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), + [6] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), + [7] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), + [8] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), + #endif +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + static uint8_t shift_esc_shift_mask; + switch (id) { + case SHIFT_ESC: + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + //led operations + #ifdef RGBLIGHT_ENABLE + case RGBLED_TOGGLE: + if (record->event.pressed) { + rgblight_toggle(); + } + + break; + case RGBLED_INCREASE_HUE: + if (record->event.pressed) { + rgblight_increase_hue(); + } + break; + case RGBLED_DECREASE_HUE: + if (record->event.pressed) { + rgblight_decrease_hue(); + } + break; + case RGBLED_INCREASE_SAT: + if (record->event.pressed) { + rgblight_increase_sat(); + } + break; + case RGBLED_DECREASE_SAT: + if (record->event.pressed) { + rgblight_decrease_sat(); + } + break; + case RGBLED_INCREASE_VAL: + if (record->event.pressed) { + rgblight_increase_val(); + } + break; + case RGBLED_DECREASE_VAL: + if (record->event.pressed) { + rgblight_decrease_val(); + } + break; + case RGBLED_STEP_MODE: + if (record->event.pressed) { + rgblight_step(); + } + break; + #endif + } +} diff --git a/keyboards/clueboard/keymaps/max/Makefile b/keyboards/clueboard/keymaps/max/Makefile new file mode 100644 index 000000000..950dadf84 --- /dev/null +++ b/keyboards/clueboard/keymaps/max/Makefile @@ -0,0 +1,49 @@ +#---------------------------------------------------------------------------- +# On command line: +# +# make all = Make software. +# +# make clean = Clean out built project files. +# +# make coff = Convert ELF to AVR COFF. +# +# make extcoff = Convert ELF to AVR Extended COFF. +# +# make program = Download the hex file to the device. +# Please customize your programmer settings(PROGRAM_CMD) +# +# make teensy = Download the hex file to the device, using teensy_loader_cli. +# (must have teensy_loader_cli installed). +# +# make dfu = Download the hex file to the device, using dfu-programmer (must +# have dfu-programmer installed). +# +# make flip = Download the hex file to the device, using Atmel FLIP (must +# have Atmel FLIP installed). +# +# make dfu-ee = Download the eeprom file to the device, using dfu-programmer +# (must have dfu-programmer installed). +# +# make flip-ee = Download the eeprom file to the device, using Atmel FLIP +# (must have Atmel FLIP installed). +# +# make debug = Start either simulavr or avarice as specified for debugging, +# with avr-gdb or avr-insight as the front end for debugging. +# +# make filename.s = Just compile filename.c into the assembler code only. +# +# make filename.i = Create a preprocessed source file for use in submitting +# bug reports to the GCC project. +# +# To rebuild project do "make clean" then "make all". +#---------------------------------------------------------------------------- + +# Build Options +# change to "no" to disable the options, or define them in the makefile.mk in +# the appropriate keymap folder that will get included automatically +# +RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/clueboard/keymaps/max/keymap.c b/keyboards/clueboard/keymaps/max/keymap.c new file mode 100644 index 000000000..82c93401d --- /dev/null +++ b/keyboards/clueboard/keymaps/max/keymap.c @@ -0,0 +1,143 @@ +#include "clueboard.h" + +// Used for SHIFT_ESC +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _FL 1 +#define _RS 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: (Base Layer) Default Layer + * ,--------------------------------------------------------------------------. ,----. + * | Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| ~| BS| |PgUp| + * |--------------------------------------------------------------------------| |----| + * | Tab| Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |PgDn| + * |--------------------------------------------------------------------------| `----' + * |Capslck| A| S| D| F| G| H| J| K| L| ;| '| # | Ent| + * |-----------------------------------------------------------------------------. + * |Shift| BS| Z| X| C| V| B| N| M| ,| .| /| BS|Shift| Up| + * |------------------------------------------------------------------------|----|----. + * | Ctrl| Alt| Gui| MHen| Space| Space| Hen| Gui| Alt| Ctrl|Left|Down|Rght| + * `----------------------------------------------------------------------------------' + */ +[_BL] = KEYMAP( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PGUP, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, \ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, \ + MO(_FL), KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FL), KC_UP, \ + KC_LCTL, KC_LALT, KC_LGUI,KC_MHEN, KC_SPC, KC_SPC, KC_HENK, KC_RGUI, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + + /* Keymap _FL: Function Layer + * ,--------------------------------------------------------------------------. ,----. + * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9| F10| F11| F12| | Del| |BLIN| + * |--------------------------------------------------------------------------| |----| + * | | | | | | | | |PScr|SLck|Paus| | | | |BLDE| + * |--------------------------------------------------------------------------| `----' + * | | | _RS| | | | | | | | | | | | + * |-----------------------------------------------------------------------------. + * | | | | | | | | | | | | | | |PGUP| + * |------------------------------------------------------------------------|----|----. + * | | | | | | | | | | _FL|HOME|PGDN| END| + * `----------------------------------------------------------------------------------' + */ +[_FL] = KEYMAP( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL, BL_STEP, \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + MO(_FL), KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), KC_PGUP, \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END), + + /* Keymap _RS: Reset/Underlight layer + * ,--------------------------------------------------------------------------. ,----. + * | | | | | | | | | | | | | | | | | | + * |--------------------------------------------------------------------------| |----| + * | | | | |RESET| | | | | | | | | | | | + * |--------------------------------------------------------------------------| `----' + * | | | _RS| | | | | | | | | | | | + * |-----------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |------------------------------------------------------------------------|----|----. + * | | | | | | | | | | _FL| | | | + * `----------------------------------------------------------------------------------' + */ +[_RS] = 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, F(0), F(6), \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(7), \ + KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + MO(_FL), KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), F(4), \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, F(1), F(1), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(3), F(5), F(2)), +}; + +enum function_id { + RGBLED_TOGGLE, + RGBLED_STEP_MODE, + RGBLED_INCREASE_HUE, + RGBLED_DECREASE_HUE, + RGBLED_INCREASE_SAT, + RGBLED_DECREASE_SAT, + RGBLED_INCREASE_VAL, + RGBLED_DECREASE_VAL, +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(RGBLED_TOGGLE), + [1] = ACTION_FUNCTION(RGBLED_STEP_MODE), + [2] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), + [3] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), + [4] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), + [5] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), + [6] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), + [7] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + switch (id) { + case RGBLED_TOGGLE: + //led operations + if (record->event.pressed) { + rgblight_toggle(); + } + + break; + case RGBLED_INCREASE_HUE: + if (record->event.pressed) { + rgblight_increase_hue(); + } + break; + case RGBLED_DECREASE_HUE: + if (record->event.pressed) { + rgblight_decrease_hue(); + } + break; + case RGBLED_INCREASE_SAT: + if (record->event.pressed) { + rgblight_increase_sat(); + } + break; + case RGBLED_DECREASE_SAT: + if (record->event.pressed) { + rgblight_decrease_sat(); + } + break; + case RGBLED_INCREASE_VAL: + if (record->event.pressed) { + rgblight_increase_val(); + } + break; + case RGBLED_DECREASE_VAL: + if (record->event.pressed) { + rgblight_decrease_val(); + } + break; + case RGBLED_STEP_MODE: + if (record->event.pressed) { + rgblight_step(); + } + break; + } +} diff --git a/keyboards/clueboard/keymaps/skully/keymap.c b/keyboards/clueboard/keymaps/skully/keymap.c new file mode 100644 index 000000000..df6f054e0 --- /dev/null +++ b/keyboards/clueboard/keymaps/skully/keymap.c @@ -0,0 +1,108 @@ +#include "clueboard.h" + +// Used for SHIFT_ESC +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _FL 1 +#define _RS 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: (Base Layer) Default Layer + * ,--------------------------------------------------------------------------. ,----. + * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| BS| |PGUP| + * |--------------------------------------------------------------------------| |----| + * | Tab| Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |PGDN| + * |--------------------------------------------------------------------------| `----' + * |Capslck| A| S| D| F| G| H| J| K| L| ;| '| # | Ent| + * |-----------------------------------------------------------------------------. + * |Shift| BS| Z| X| C| V| B| N| M| ,| .| /| BS|Shift| UP| + * |------------------------------------------------------------------------|----|----. + * | Ctrl| Gui| Alt| MHen| Space| Space| Hen| Alt| Ctrl| _FL|LEFT|DOWN|RGHT| + * `----------------------------------------------------------------------------------' + */ +[_BL] = KEYMAP( + F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PGUP, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, \ + KC_LCTL,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, \ + KC_LSFT,KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, \ + KC_LCTL,KC_LALT,KC_LGUI,MO(_FL), KC_SPC, KC_SPC, MO(_FL), KC_RGUI, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT), + + /* Keymap _FL: Function Layer + * ,--------------------------------------------------------------------------. ,----. + * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9| F10| F11| F12| | Del| |BLIN| + * |--------------------------------------------------------------------------| |----| + * | | | | | | | | |PScr|SLck|Paus| | | | |BLDE| + * |--------------------------------------------------------------------------| `----' + * | | | _RS| | | | | | | | | | | | + * |-----------------------------------------------------------------------------. + * | | | | | | | | | | | | | | |PGUP| + * |------------------------------------------------------------------------|----|----. + * | | | | | | | | | | _FL|HOME|PGDN| END| + * `----------------------------------------------------------------------------------' + */ +[_FL] = KEYMAP( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,KC_DEL, BL_STEP, \ + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PSCR,KC_SLCK,KC_PAUS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, \ + KC_TRNS,KC_TRNS,MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \ + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_PGUP, \ + KC_TRNS,KC_TRNS,KC_TRNS,MO(_FL), KC_TRNS,KC_TRNS, MO(_FL),KC_TRNS,KC_TRNS,MO(_FL),KC_HOME,KC_PGDN,KC_END), + + /* Keymap _RS: Reset layer + * ,--------------------------------------------------------------------------. ,----. + * | | | | | | | | | | | | | | | | | | + * |--------------------------------------------------------------------------| |----| + * | | | | |RESET| | | | | | | | | | | | + * |--------------------------------------------------------------------------| `----' + * | | | _RS| | | | | | | | | | | | + * |-----------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |------------------------------------------------------------------------|----|----. + * | | | | | | | | | | _FL| | | | + * `----------------------------------------------------------------------------------' + */ +[_RS] = 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,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, \ + KC_TRNS,KC_TRNS,MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \ + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, \ + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,MO(_FL),KC_TRNS, KC_TRNS, KC_TRNS), +}; + +enum function_id { + SHIFT_ESC, +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(SHIFT_ESC), +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + static uint8_t shift_esc_shift_mask; + switch (id) { + case SHIFT_ESC: + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + } +} diff --git a/keyboards/clueboard/rev1/Makefile b/keyboards/clueboard/rev1/Makefile new file mode 100644 index 000000000..80a942d06 --- /dev/null +++ b/keyboards/clueboard/rev1/Makefile @@ -0,0 +1,5 @@ +BACKLIGHT_ENABLE = no + +ifndef QUANTUM_DIR + include ../../../Makefile +endif diff --git a/keyboards/clueboard/rev1/config.h b/keyboards/clueboard/rev1/config.h new file mode 100644 index 000000000..9bb58f56e --- /dev/null +++ b/keyboards/clueboard/rev1/config.h @@ -0,0 +1,37 @@ +#ifndef REV2_CONFIG_H +#define REV2_CONFIG_H + +#include "../config.h" + +#define PRODUCT_ID 0x2301 +#define DEVICE_VER 0x0003 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 16 + +// ROWS: Top to bottom, COLS: Left to right +/* Column pin configuration +* col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 +* pin: B3 F1 F4 F5 F6 C7 C6 B6 B5 B4 D7 D6 D4 F7 B0 B1 +*/ +#define MATRIX_COL_PINS { B3, F1, F4, F5, F6, C7, C6, B6, B5, B4, D7, D6, D4, F7, B0, B1 } +/* Row pin configuration +* row: 0 1 2 3 4 +* pin: D1 D0 D2 D5 D3 +*/ +#define MATRIX_ROW_PINS { D1, D0, D2, D5, D3 } +#define UNUSED_PINS + +/* Underlight configuration + */ +#define ws2812_PORTREG PORTB +#define ws2812_DDRREG DDRB +#define ws2812_pin 2 +#define RGBLED_NUM 14 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + + +#endif \ No newline at end of file diff --git a/keyboards/clueboard/rev1/rev1.c b/keyboards/clueboard/rev1/rev1.c new file mode 100644 index 000000000..520a869e5 --- /dev/null +++ b/keyboards/clueboard/rev1/rev1.c @@ -0,0 +1 @@ +#include "rev1.h" diff --git a/keyboards/clueboard/rev1/rev1.h b/keyboards/clueboard/rev1/rev1.h new file mode 100644 index 000000000..abdfd079b --- /dev/null +++ b/keyboards/clueboard/rev1/rev1.h @@ -0,0 +1,47 @@ +#ifndef REV1_H +#define REV1_H + +#include "../clueboard.h" + +/* Clueboard matrix layout + * ,-----------------------------------------------------------. ,---. + * | 00| 01| 02| 03| 04| 05| 06| 07| 08| 09| 0A| 0B| 0C| 0D| 0E| | 0F| + * |-----------------------------------------------------------| |---| + * | 10| 11| 12| 13| 14| 15| 16| 17| 18| 19| 1A| 1B| 1C| 1D| | 1F| + * |-----------------------------------------------------------| `---' + * | 20| 21| 22| 23| 24| 25| 26| 27| 28| 29| 2A| 2B| 2C| 2D| + * |------------------------------------------------------------. + * | 30| 31| 32| 33| 34| 35| 36| 37| 38| 39| 3A| 3B| 3C| 3D|3E| + * |------------------------------------------------------------------. + * | 40| 41| 42| 43| 45| 46| 49| 4A| 4B| 4C| 4D| 4E| 4F| + * `------------------------------------------------------------------' + * ,-----------------------------------------------------------. ,---. + * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Yen| BS| |Ins| + * |-----------------------------------------------------------| |---| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |Del| + * |-----------------------------------------------------------| `---' + * |Caps | A| S| D| F| G| H| J| k| L| ;| '| # | Ent| + * |--------------------------------------------------------------. + * |Shift| \| Z| X| C| V| B| N| M| ,| .| /| \|Shift| Up| + * |------------------------------------------------------------------. + * |Ctrl|Alt|Gui |MHen| Space| Space|Henk|Gui |Ctrl| Fn|Left|Down|Rgt| + * `------------------------------------------------------------------' + */ +// The first section contains all of the arguements +// The second converts the arguments into a two-dimensional array + +#define KEYMAP( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1F, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, \ + k40, k41, k42, k43, k45, k46, k49, k4A, k4B, k4C, k4D, k4E, k4F \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, KC_NO, k1F }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \ + { k40, k41, k42, k43, KC_NO, k45, k46, KC_NO, KC_NO, k49, k4A, k4B, k4C, k4D, k4E, k4F } \ +} + +#endif diff --git a/keyboards/clueboard/rev2/Makefile b/keyboards/clueboard/rev2/Makefile new file mode 100644 index 000000000..cea967b79 --- /dev/null +++ b/keyboards/clueboard/rev2/Makefile @@ -0,0 +1,5 @@ +BACKLIGHT_ENABLE = yes + +ifndef QUANTUM_DIR + include ../../../Makefile +endif diff --git a/keyboards/clueboard/rev2/config.h b/keyboards/clueboard/rev2/config.h new file mode 100644 index 000000000..e2f8336be --- /dev/null +++ b/keyboards/clueboard/rev2/config.h @@ -0,0 +1,40 @@ +#ifndef REV2_CONFIG_H +#define REV2_CONFIG_H + +#include "../config.h" + +#define PRODUCT_ID 0x2320 +#define DEVICE_VER 0x0001 + +/* key matrix size */ +#define MATRIX_ROWS 10 +#define MATRIX_COLS 8 + +// ROWS: Top to bottom, COLS: Left to right +/* Row pin configuration +* row: 0 1 2 3 4 5 6 7 8 9 +* pin: B2 C7 C6 B6 B5 B0 B3 D5 D3 D2 +*/ +#define MATRIX_ROW_PINS { B2, C7, C6, B6, B5, B0, B3, D5, D3, D2 } +/* Column pin configuration + * col: 0 1 2 3 4 5 6 7 + * pin: F0 F1 F4 F5 F6 F7 E6 B1 + */ +#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, E6, B1 } +#define UNUSED_PINS + + /* Backlight configuration + */ +#define BACKLIGHT_LEVELS 1 + +/* Underlight configuration + */ +#define ws2812_PORTREG PORTD +#define ws2812_DDRREG DDRD +#define ws2812_pin 7 +#define RGBLED_NUM 14 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + +#endif \ No newline at end of file diff --git a/keyboards/clueboard/rev2/rev2.c b/keyboards/clueboard/rev2/rev2.c new file mode 100644 index 000000000..7a8ec368e --- /dev/null +++ b/keyboards/clueboard/rev2/rev2.c @@ -0,0 +1,47 @@ +#include "rev2.h" +#include +#include "backlight.h" +#include "print.h" + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + matrix_init_user(); + led_init_ports(); + + // JTAG disable for PORT F. write JTD bit twice within four cycles. + MCUCR |= (1< - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#ifndef CONFIG_H -#define CONFIG_H - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xC1ED -#define PRODUCT_ID 0x2301 -#define DEVICE_VER 0x0003 -#define MANUFACTURER Clueboard -#define PRODUCT Clueboard -#define DESCRIPTION QMK keyboard firmware for Clueboard - -/* key matrix size */ -#define MATRIX_ROWS 5 -#define MATRIX_COLS 16 - -// ROWS: Top to bottom, COLS: Left to right -/* Column pin configuration -* col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 -* pin: B3 F1 F4 F5 F6 C7 C6 B6 B5 B4 D7 D6 D4 F7 B0 B1 -*/ -#define MATRIX_COL_PINS { B3, F1, F4, F5, F6, C7, C6, B6, B5, B4, D7, D6, D4, F7, B0, B1 } -/* Row pin configuration -* row: 0 1 2 3 4 -* pin: D1 D0 D2 D5 D3 -*/ -#define MATRIX_ROW_PINS { D1, D0, D2, D5, D3 } -#define UNUSED_PINS - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -/* define if matrix has ghost */ -//#define MATRIX_HAS_GHOST - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCING_DELAY 5 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -/* key combination for command */ -#define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ -) - -/* Underlight configuration - */ - #define ws2812_PORTREG PORTB - #define ws2812_DDRREG DDRB - #define ws2812_pin 2 - #define RGBLED_NUM 14 // Number of LEDs - #define RGBLIGHT_HUE_STEP 10 - #define RGBLIGHT_SAT_STEP 17 - #define RGBLIGHT_VAL_STEP 17 - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -#endif diff --git a/keyboards/clueboard1/keymaps/default/keymap.c b/keyboards/clueboard1/keymaps/default/keymap.c deleted file mode 100644 index 3f4f3c414..000000000 --- a/keyboards/clueboard1/keymaps/default/keymap.c +++ /dev/null @@ -1,184 +0,0 @@ -#include "clueboard1.h" - -#ifdef RGBLIGHT_ENABLE -#include "rgblight.h" -#endif - -// Used for SHIFT_ESC -#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _BL 0 -#define _FL 1 -#define _RS 2 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Keymap _BL: (Base Layer) Default Layer - * ,--------------------------------------------------------------------------. ,----. - * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| BS| |PGUP| - * |--------------------------------------------------------------------------| |----| - * | Tab| Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |PGDN| - * |--------------------------------------------------------------------------| `----' - * |Capslck| A| S| D| F| G| H| J| K| L| ;| '| # | Ent| - * |-----------------------------------------------------------------------------. - * |Shift| BS| Z| X| C| V| B| N| M| ,| .| /| BS|Shift| UP| - * |------------------------------------------------------------------------|----|----. - * | Ctrl| Gui| Alt| MHen| Space| Space| Hen| Alt| Ctrl| _FL|LEFT|DOWN|RGHT| - * `----------------------------------------------------------------------------------' - */ -[_BL] = KEYMAP( - F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PGUP, \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, \ - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, \ - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, \ - KC_LCTL, KC_LGUI, KC_LALT, KC_MHEN, KC_SPC,KC_SPC, KC_HENK, KC_RALT, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT), - - /* Keymap _FL: Function Layer - * ,--------------------------------------------------------------------------. ,----. - * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9| F10| F11| F12| | Del| |BLIN| - * |--------------------------------------------------------------------------| |----| - * | | | | | | | | |PScr|SLck|Paus| | | | |BLDE| - * |--------------------------------------------------------------------------| `----' - * | | | _RS| | | | | | | | | | | | - * |-----------------------------------------------------------------------------. - * | | | | | | | | | | | | | | |PGUP| - * |------------------------------------------------------------------------|----|----. - * | | | | | | | | | | _FL|HOME|PGDN| END| - * `----------------------------------------------------------------------------------' - */ -[_FL] = KEYMAP( - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL, BL_STEP, \ - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PSCR,KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), KC_HOME, KC_PGDN, KC_END), - - /* Keymap _RS: Reset layer - * ,--------------------------------------------------------------------------. ,----. - * | | | | | | | | | | | | | | | | | | - * |--------------------------------------------------------------------------| |----| - * | | | | |RESET| | | | | | | | | | | | - * |--------------------------------------------------------------------------| `----' - * | | | _RS| | | | | | | | | | | | - * |-----------------------------------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |------------------------------------------------------------------------|----|----. - * | | | | | | | | | | _FL| | | | - * `----------------------------------------------------------------------------------' - */ -[_RS] = KEYMAP( - #ifdef RGBLIGHT_ENABLE - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(1), F(7), \ - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(8), \ - KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - MO(_FL), KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), F(5), \ - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, F(2), F(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(4), F(6), F(3)), - #else - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), KC_TRNS, KC_TRNS, KC_TRNS), - #endif -}; - -enum function_id { - SHIFT_ESC, - #ifdef RGBLIGHT_ENABLE - RGBLED_TOGGLE, - RGBLED_STEP_MODE, - RGBLED_INCREASE_HUE, - RGBLED_DECREASE_HUE, - RGBLED_INCREASE_SAT, - RGBLED_DECREASE_SAT, - RGBLED_INCREASE_VAL, - RGBLED_DECREASE_VAL - #endif -}; - -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_FUNCTION(SHIFT_ESC), - #ifdef RGBLIGHT_ENABLE - [1] = ACTION_FUNCTION(RGBLED_TOGGLE), - [2] = ACTION_FUNCTION(RGBLED_STEP_MODE), - [3] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), - [4] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), - [5] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), - [6] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), - [7] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), - [8] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), - #endif -}; - -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { - static uint8_t shift_esc_shift_mask; - switch (id) { - case SHIFT_ESC: - shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; - if (record->event.pressed) { - if (shift_esc_shift_mask) { - add_key(KC_GRV); - send_keyboard_report(); - } else { - add_key(KC_ESC); - send_keyboard_report(); - } - } else { - if (shift_esc_shift_mask) { - del_key(KC_GRV); - send_keyboard_report(); - } else { - del_key(KC_ESC); - send_keyboard_report(); - } - } - break; - //led operations - #ifdef RGBLIGHT_ENABLE - case RGBLED_TOGGLE: - if (record->event.pressed) { - rgblight_toggle(); - } - - break; - case RGBLED_INCREASE_HUE: - if (record->event.pressed) { - rgblight_increase_hue(); - } - break; - case RGBLED_DECREASE_HUE: - if (record->event.pressed) { - rgblight_decrease_hue(); - } - break; - case RGBLED_INCREASE_SAT: - if (record->event.pressed) { - rgblight_increase_sat(); - } - break; - case RGBLED_DECREASE_SAT: - if (record->event.pressed) { - rgblight_decrease_sat(); - } - break; - case RGBLED_INCREASE_VAL: - if (record->event.pressed) { - rgblight_increase_val(); - } - break; - case RGBLED_DECREASE_VAL: - if (record->event.pressed) { - rgblight_decrease_val(); - } - break; - case RGBLED_STEP_MODE: - if (record->event.pressed) { - rgblight_step(); - } - break; - #endif - } -} diff --git a/keyboards/clueboard2/clueboard2.h b/keyboards/clueboard2/clueboard2.h deleted file mode 100644 index e474b3101..000000000 --- a/keyboards/clueboard2/clueboard2.h +++ /dev/null @@ -1,52 +0,0 @@ -#ifndef CLUEBOARD2_H -#define CLUEBOARD2_H - -#include "quantum.h" - - -/* Clueboard matrix layout - * ,-----------------------------------------------------------. ,---. - * | 00| 01| 02| 03| 04| 05| 06| 07| 50| 51| 52| 53| 54| 55| 56| | 57| - * |-----------------------------------------------------------| |---| - * | 10| 11| 12| 13| 14| 15| 16| 17| 60| 61| 62| 63| 64| 65| | 67| - * |-----------------------------------------------------------| `---' - * | 20| 21| 22| 23| 24| 25| 26| 27| 70| 71| 72| 73| 74| 75| - * |------------------------------------------------------------. - * | 30| 31| 32| 33| 34| 35| 36| 37| 80| 81| 82| 83| 84| 85|86| - * |------------------------------------------------------------------. - * | 40| 41| 42| 43| 45| 46| 90| 91| 92| 93| 94| 95| 96| - * `------------------------------------------------------------------' - * ,-----------------------------------------------------------. ,---. - * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Yen| BS| |Ins| - * |-----------------------------------------------------------| |---| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |Del| - * |-----------------------------------------------------------| `---' - * |Caps | A| S| D| F| G| H| J| k| L| ;| '| # | Ent| - * |--------------------------------------------------------------. - * |Shift| \| Z| X| C| V| B| N| M| ,| .| /| \|Shift| Up| - * |------------------------------------------------------------------. - * |Ctrl|Alt|Gui |MHen| Space| Space|Henk|Gui |Ctrl| Fn|Left|Down|Rgt| - * `------------------------------------------------------------------' - */ -// The first section contains all of the arguments -// The second converts the arguments into a two-dimensional array -#define KEYMAP( \ - k00, k01, k02, k03, k04, k05, k06, k07, k50, k51, k52, k53, k54, k55, k56, k57, \ - k10, k11, k12, k13, k14, k15, k16, k17, k60, k61, k62, k63, k64, k65, k67, \ - k20, k21, k22, k23, k24, k25, k26, k27, k70, k71, k72, k73, k74, k75, \ - k30, k31, k32, k33, k34, k35, k36, k37, k80, k81, k82, k83, k84, k85, k86, \ - k40, k41, k42, k43, k45, k46, k90, k92, k93, k94, k95, k96, k97 \ -) { \ - { k00, k01, k02, k03, k04, k05, k06, k07 }, \ - { k10, k11, k12, k13, k14, k15, k16, k17 }, \ - { k20, k21, k22, k23, k24, k25, k26, k27 }, \ - { k30, k31, k32, k33, k34, k35, k36, k37 }, \ - { k40, k41, k42, k43, KC_NO, k45, k46, KC_NO }, \ - { k50, k51, k52, k53, k54, k55, k56, k57 }, \ - { k60, k61, k62, k63, k64, k65, KC_NO, k67 }, \ - { k70, k71, k72, k73, k74, k75, KC_NO, KC_NO }, \ - { k80, k81, k82, k83, k84, k85, k86, KC_NO }, \ - { k90, KC_NO, k92, k93, k94, k95, k96, k97 } \ -} - -#endif diff --git a/keyboards/clueboard2/config.h b/keyboards/clueboard2/config.h deleted file mode 100644 index 2887519af..000000000 --- a/keyboards/clueboard2/config.h +++ /dev/null @@ -1,99 +0,0 @@ -/* -Copyright 2012 Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#ifndef CONFIG_H -#define CONFIG_H - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xC1ED -#define PRODUCT_ID 0x2320 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Clueboard -#define PRODUCT Clueboard with RGB Underlighting -#define DESCRIPTION QMK keyboard firmware for Clueboard - -/* key matrix size */ -#define MATRIX_ROWS 10 -#define MATRIX_COLS 8 - -// ROWS: Top to bottom, COLS: Left to right -/* Row pin configuration -* row: 0 1 2 3 4 5 6 7 8 9 -* pin: B2 C7 C6 B6 B5 B0 B3 D5 D3 D2 -*/ -#define MATRIX_ROW_PINS { B2, C7, C6, B6, B5, B0, B3, D5, D3, D2 } -/* Column pin configuration - * col: 0 1 2 3 4 5 6 7 - * pin: F0 F1 F4 F5 F6 F7 E6 B1 - */ -#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, E6, B1 } -#define UNUSED_PINS - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -/* define if matrix has ghost */ -//#define MATRIX_HAS_GHOST - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCING_DELAY 5 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -/* key combination for command */ -#define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ -) - -/* Backlight configuration - */ -#define BACKLIGHT_LEVELS 1 - -/* Underlight configuration - */ - #define ws2812_PORTREG PORTD - #define ws2812_DDRREG DDRD - #define ws2812_pin 7 - #define RGBLED_NUM 14 // Number of LEDs - #define RGBLIGHT_HUE_STEP 10 - #define RGBLIGHT_SAT_STEP 17 - #define RGBLIGHT_VAL_STEP 17 - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -#endif diff --git a/keyboards/clueboard2/keymaps/default/keymap.c b/keyboards/clueboard2/keymaps/default/keymap.c deleted file mode 100644 index 1795e68cd..000000000 --- a/keyboards/clueboard2/keymaps/default/keymap.c +++ /dev/null @@ -1,179 +0,0 @@ -#include "clueboard2.h" - -// Used for SHIFT_ESC -#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _BL 0 -#define _FL 1 -#define _RS 2 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Keymap _BL: (Base Layer) Default Layer - * ,--------------------------------------------------------------------------. ,----. - * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| BS| |PGUP| - * |--------------------------------------------------------------------------| |----| - * | Tab| Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |PGDN| - * |--------------------------------------------------------------------------| `----' - * |Capslck| A| S| D| F| G| H| J| K| L| ;| '| # | Ent| - * |-----------------------------------------------------------------------------. - * |Shift| BS| Z| X| C| V| B| N| M| ,| .| /| BS|Shift| UP| - * |------------------------------------------------------------------------|----|----. - * | Ctrl| Gui| Alt| MHen| Space| Space| Hen| Alt| Ctrl| _FL|LEFT|DOWN|RGHT| - * `----------------------------------------------------------------------------------' - */ -[_BL] = KEYMAP( - F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PGUP, \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, \ - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, \ - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, \ - KC_LCTL, KC_LGUI, KC_LALT, KC_MHEN, KC_SPC,KC_SPC, KC_HENK, KC_RALT, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT), - - /* Keymap _FL: Function Layer - * ,--------------------------------------------------------------------------. ,----. - * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9| F10| F11| F12| | Del| |BLIN| - * |--------------------------------------------------------------------------| |----| - * | | | | | | | | |PScr|SLck|Paus| | | | |BLDE| - * |--------------------------------------------------------------------------| `----' - * | | | _RS| | | | | | | | | | | | - * |-----------------------------------------------------------------------------. - * | | | | | | | | | | | | | | |PGUP| - * |------------------------------------------------------------------------|----|----. - * | | | | | | | | | | _FL|HOME|PGDN| END| - * `----------------------------------------------------------------------------------' - */ -[_FL] = KEYMAP( - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL, BL_STEP, \ - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PSCR,KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), KC_HOME, KC_PGDN, KC_END), - - /* Keymap _RS: Reset layer - * ,--------------------------------------------------------------------------. ,----. - * | | | | | | | | | | | | | | | | | | - * |--------------------------------------------------------------------------| |----| - * | | | | |RESET| | | | | | | | | | | | - * |--------------------------------------------------------------------------| `----' - * | | | _RS| | | | | | | | | | | | - * |-----------------------------------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |------------------------------------------------------------------------|----|----. - * | | | | | | | | | | _FL| | | | - * `----------------------------------------------------------------------------------' - */ -[_RS] = KEYMAP( - #ifdef RGBLIGHT_ENABLE - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(1), F(7), \ - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(8), \ - KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - MO(_FL), KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), F(5), \ - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, F(2), F(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(4), F(6), F(3)), - #else - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), KC_TRNS, KC_TRNS, KC_TRNS), - #endif -}; - -enum function_id { - SHIFT_ESC, - #ifdef RGBLIGHT_ENABLE - RGBLED_TOGGLE, - RGBLED_STEP_MODE, - RGBLED_INCREASE_HUE, - RGBLED_DECREASE_HUE, - RGBLED_INCREASE_SAT, - RGBLED_DECREASE_SAT, - RGBLED_INCREASE_VAL, - RGBLED_DECREASE_VAL - #endif -}; - -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_FUNCTION(SHIFT_ESC), - #ifdef RGBLIGHT_ENABLE - [1] = ACTION_FUNCTION(RGBLED_TOGGLE), - [2] = ACTION_FUNCTION(RGBLED_STEP_MODE), - [3] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), - [4] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), - [5] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), - [6] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), - [7] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), - [8] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), - #endif -}; - -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { - static uint8_t shift_esc_shift_mask; - switch (id) { - case SHIFT_ESC: - shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; - if (record->event.pressed) { - if (shift_esc_shift_mask) { - add_key(KC_GRV); - send_keyboard_report(); - } else { - add_key(KC_ESC); - send_keyboard_report(); - } - } else { - if (shift_esc_shift_mask) { - del_key(KC_GRV); - send_keyboard_report(); - } else { - del_key(KC_ESC); - send_keyboard_report(); - } - } - break; - //led operations - #ifdef RGBLIGHT_ENABLE - case RGBLED_TOGGLE: - if (record->event.pressed) { - rgblight_toggle(); - } - break; - case RGBLED_INCREASE_HUE: - if (record->event.pressed) { - rgblight_increase_hue(); - } - break; - case RGBLED_DECREASE_HUE: - if (record->event.pressed) { - rgblight_decrease_hue(); - } - break; - case RGBLED_INCREASE_SAT: - if (record->event.pressed) { - rgblight_increase_sat(); - } - break; - case RGBLED_DECREASE_SAT: - if (record->event.pressed) { - rgblight_decrease_sat(); - } - break; - case RGBLED_INCREASE_VAL: - if (record->event.pressed) { - rgblight_increase_val(); - } - break; - case RGBLED_DECREASE_VAL: - if (record->event.pressed) { - rgblight_decrease_val(); - } - break; - case RGBLED_STEP_MODE: - if (record->event.pressed) { - rgblight_step(); - } - break; - #endif - } -} diff --git a/keyboards/clueboard2/keymaps/max/Makefile b/keyboards/clueboard2/keymaps/max/Makefile deleted file mode 100644 index 22b5b94e3..000000000 --- a/keyboards/clueboard2/keymaps/max/Makefile +++ /dev/null @@ -1,11 +0,0 @@ - - -# Build Options -# change to "no" to disable the options, or define them in the Makefile in -# the appropriate keymap folder that will get included automatically -# -RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. - -ifndef QUANTUM_DIR - include ../../../../Makefile -endif \ No newline at end of file diff --git a/keyboards/clueboard2/keymaps/max/keymap.c b/keyboards/clueboard2/keymaps/max/keymap.c deleted file mode 100644 index 65a101c2b..000000000 --- a/keyboards/clueboard2/keymaps/max/keymap.c +++ /dev/null @@ -1,143 +0,0 @@ -#include "clueboard2.h" - -// Used for SHIFT_ESC -#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _BL 0 -#define _FL 1 -#define _RS 2 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Keymap _BL: (Base Layer) Default Layer - * ,--------------------------------------------------------------------------. ,----. - * | Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| ~| BS| |PgUp| - * |--------------------------------------------------------------------------| |----| - * | Tab| Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |PgDn| - * |--------------------------------------------------------------------------| `----' - * |Capslck| A| S| D| F| G| H| J| K| L| ;| '| # | Ent| - * |-----------------------------------------------------------------------------. - * |Shift| BS| Z| X| C| V| B| N| M| ,| .| /| BS|Shift| Up| - * |------------------------------------------------------------------------|----|----. - * | Ctrl| Alt| Gui| MHen| Space| Space| Hen| Gui| Alt| Ctrl|Left|Down|Rght| - * `----------------------------------------------------------------------------------' - */ -[_BL] = KEYMAP( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PGUP, \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, \ - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, \ - MO(_FL), KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FL), KC_UP, \ - KC_LCTL, KC_LALT, KC_LGUI,KC_MHEN, KC_SPC, KC_SPC, KC_HENK, KC_RGUI, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - - /* Keymap _FL: Function Layer - * ,--------------------------------------------------------------------------. ,----. - * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9| F10| F11| F12| | Del| |BLIN| - * |--------------------------------------------------------------------------| |----| - * | | | | | | | | |PScr|SLck|Paus| | | | |BLDE| - * |--------------------------------------------------------------------------| `----' - * | | | _RS| | | | | | | | | | | | - * |-----------------------------------------------------------------------------. - * | | | | | | | | | | | | | | |PGUP| - * |------------------------------------------------------------------------|----|----. - * | | | | | | | | | | _FL|HOME|PGDN| END| - * `----------------------------------------------------------------------------------' - */ -[_FL] = KEYMAP( - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL, BL_STEP, \ - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - MO(_FL), KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), KC_PGUP, \ - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END), - - /* Keymap _RS: Reset/Underlight layer - * ,--------------------------------------------------------------------------. ,----. - * | | | | | | | | | | | | | | | | | | - * |--------------------------------------------------------------------------| |----| - * | | | | |RESET| | | | | | | | | | | | - * |--------------------------------------------------------------------------| `----' - * | | | _RS| | | | | | | | | | | | - * |-----------------------------------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |------------------------------------------------------------------------|----|----. - * | | | | | | | | | | _FL| | | | - * `----------------------------------------------------------------------------------' - */ -[_RS] = 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, F(0), F(6), \ - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(7), \ - KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - MO(_FL), KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), F(4), \ - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, F(1), F(1), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(3), F(5), F(2)), -}; - -enum function_id { - RGBLED_TOGGLE, - RGBLED_STEP_MODE, - RGBLED_INCREASE_HUE, - RGBLED_DECREASE_HUE, - RGBLED_INCREASE_SAT, - RGBLED_DECREASE_SAT, - RGBLED_INCREASE_VAL, - RGBLED_DECREASE_VAL, -}; - -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_FUNCTION(RGBLED_TOGGLE), - [1] = ACTION_FUNCTION(RGBLED_STEP_MODE), - [2] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), - [3] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), - [4] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), - [5] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), - [6] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), - [7] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), -}; - -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { - switch (id) { - case RGBLED_TOGGLE: - //led operations - if (record->event.pressed) { - rgblight_toggle(); - } - - break; - case RGBLED_INCREASE_HUE: - if (record->event.pressed) { - rgblight_increase_hue(); - } - break; - case RGBLED_DECREASE_HUE: - if (record->event.pressed) { - rgblight_decrease_hue(); - } - break; - case RGBLED_INCREASE_SAT: - if (record->event.pressed) { - rgblight_increase_sat(); - } - break; - case RGBLED_DECREASE_SAT: - if (record->event.pressed) { - rgblight_decrease_sat(); - } - break; - case RGBLED_INCREASE_VAL: - if (record->event.pressed) { - rgblight_increase_val(); - } - break; - case RGBLED_DECREASE_VAL: - if (record->event.pressed) { - rgblight_decrease_val(); - } - break; - case RGBLED_STEP_MODE: - if (record->event.pressed) { - rgblight_step(); - } - break; - } -} diff --git a/keyboards/clueboard2/keymaps/skully/keymap.c b/keyboards/clueboard2/keymaps/skully/keymap.c deleted file mode 100644 index 74a03f2f3..000000000 --- a/keyboards/clueboard2/keymaps/skully/keymap.c +++ /dev/null @@ -1,108 +0,0 @@ -#include "clueboard2.h" - -// Used for SHIFT_ESC -#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _BL 0 -#define _FL 1 -#define _RS 2 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Keymap _BL: (Base Layer) Default Layer - * ,--------------------------------------------------------------------------. ,----. - * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| BS| |PGUP| - * |--------------------------------------------------------------------------| |----| - * | Tab| Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |PGDN| - * |--------------------------------------------------------------------------| `----' - * |Capslck| A| S| D| F| G| H| J| K| L| ;| '| # | Ent| - * |-----------------------------------------------------------------------------. - * |Shift| BS| Z| X| C| V| B| N| M| ,| .| /| BS|Shift| UP| - * |------------------------------------------------------------------------|----|----. - * | Ctrl| Gui| Alt| MHen| Space| Space| Hen| Alt| Ctrl| _FL|LEFT|DOWN|RGHT| - * `----------------------------------------------------------------------------------' - */ -[_BL] = KEYMAP( - F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PGUP, \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, \ - KC_LCTL,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, \ - KC_LSFT,KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, \ - KC_LCTL,KC_LALT,KC_LGUI,MO(_FL), KC_SPC, KC_SPC, MO(_FL), KC_RGUI, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT), - - /* Keymap _FL: Function Layer - * ,--------------------------------------------------------------------------. ,----. - * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9| F10| F11| F12| | Del| |BLIN| - * |--------------------------------------------------------------------------| |----| - * | | | | | | | | |PScr|SLck|Paus| | | | |BLDE| - * |--------------------------------------------------------------------------| `----' - * | | | _RS| | | | | | | | | | | | - * |-----------------------------------------------------------------------------. - * | | | | | | | | | | | | | | |PGUP| - * |------------------------------------------------------------------------|----|----. - * | | | | | | | | | | _FL|HOME|PGDN| END| - * `----------------------------------------------------------------------------------' - */ -[_FL] = KEYMAP( - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,KC_DEL, BL_STEP, \ - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PSCR,KC_SLCK,KC_PAUS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, \ - KC_TRNS,KC_TRNS,MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \ - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_PGUP, \ - KC_TRNS,KC_TRNS,KC_TRNS,MO(_FL), KC_TRNS,KC_TRNS, MO(_FL),KC_TRNS,KC_TRNS,MO(_FL),KC_HOME,KC_PGDN,KC_END), - - /* Keymap _RS: Reset layer - * ,--------------------------------------------------------------------------. ,----. - * | | | | | | | | | | | | | | | | | | - * |--------------------------------------------------------------------------| |----| - * | | | | |RESET| | | | | | | | | | | | - * |--------------------------------------------------------------------------| `----' - * | | | _RS| | | | | | | | | | | | - * |-----------------------------------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |------------------------------------------------------------------------|----|----. - * | | | | | | | | | | _FL| | | | - * `----------------------------------------------------------------------------------' - */ -[_RS] = 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,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, \ - KC_TRNS,KC_TRNS,MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \ - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, \ - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,MO(_FL),KC_TRNS, KC_TRNS, KC_TRNS), -}; - -enum function_id { - SHIFT_ESC, -}; - -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_FUNCTION(SHIFT_ESC), -}; - -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { - static uint8_t shift_esc_shift_mask; - switch (id) { - case SHIFT_ESC: - shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; - if (record->event.pressed) { - if (shift_esc_shift_mask) { - add_key(KC_GRV); - send_keyboard_report(); - } else { - add_key(KC_ESC); - send_keyboard_report(); - } - } else { - if (shift_esc_shift_mask) { - del_key(KC_GRV); - send_keyboard_report(); - } else { - del_key(KC_ESC); - send_keyboard_report(); - } - } - break; - } -} diff --git a/keyboards/cluepad/Makefile b/keyboards/cluepad/Makefile index eb7a58025..a331ff4dc 100644 --- a/keyboards/cluepad/Makefile +++ b/keyboards/cluepad/Makefile @@ -1,8 +1,4 @@ - -# # project specific files -SRC = backlight.c - # MCU name #MCU = at90usb1287 MCU = atmega32u4 diff --git a/keyboards/cluepad/backlight.c b/keyboards/cluepad/backlight.c deleted file mode 100644 index a9caed1df..000000000 --- a/keyboards/cluepad/backlight.c +++ /dev/null @@ -1,54 +0,0 @@ -#include -#include "backlight.h" -#include "led.h" - -#include "print.h" - -int pwm_level; - -void led_set_kb(uint8_t usb_led) -{ - print("led_set\n"); -} - -void init_backlight_pin(void) -{ - // Set C7 to output - DDRC |= (1<<7); - - // Initialize the timer - TC4H = 0x03; - OCR4C = 0xFF; - TCCR4A = 0b10000010; - TCCR4B = 0b00000001; -} - -void backlight_set(uint8_t level) -{ - // Determine the PWM level - switch (level) - { - case 0: - // 33% - pwm_level = 0x54; - break; - case 1: - // 66% - pwm_level = 0xA8; - break; - case 2: - // 100% - pwm_level = 0xFF; - break; - case 3: - // 0% - pwm_level = 0x00; - break; - default: - xprintf("Unknown level: %d\n", level); - } - - // Write the PWM level to the timer - TC4H = pwm_level >> 8; - OCR4A = 0xFF & pwm_level; -} diff --git a/keyboards/cluepad/cluepad.c b/keyboards/cluepad/cluepad.c index cbbdccb30..1867b617f 100644 --- a/keyboards/cluepad/cluepad.c +++ b/keyboards/cluepad/cluepad.c @@ -1,15 +1,60 @@ #include "cluepad.h" +int pwm_level; + void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up matrix_init_user(); - #ifdef BACKLIGHT_ENABLE - init_backlight_pin(); - #endif - // JTAG disable for PORT F. write JTD bit twice within four cycles. MCUCR |= (1<> 8; + OCR4A = 0xFF & pwm_level; +} diff --git a/keyboards/cluepad/cluepad.h b/keyboards/cluepad/cluepad.h index 615a9111e..5e4a5999e 100644 --- a/keyboards/cluepad/cluepad.h +++ b/keyboards/cluepad/cluepad.h @@ -1,9 +1,7 @@ #ifndef CLUEPAD_H #define CLUEPAD_H -#include "matrix.h" -#include "keymap.h" -#include +#include "quantum.h" /* Cluepad matrix layout diff --git a/keyboards/planck/Makefile b/keyboards/planck/Makefile index 08e9205cb..23944f92e 100644 --- a/keyboards/planck/Makefile +++ b/keyboards/planck/Makefile @@ -1,4 +1,5 @@ +SUBPROJECT_DEFAULT = rev4 # MCU name #MCU = at90usb1287 diff --git a/keyboards/planck/config.h b/keyboards/planck/config.h index da2b000f6..4dd1d22a9 100644 --- a/keyboards/planck/config.h +++ b/keyboards/planck/config.h @@ -23,7 +23,6 @@ along with this program. If not, see . /* USB Device descriptor parameter */ #define VENDOR_ID 0xFEED #define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 #define MANUFACTURER Ortholinear Keyboards #define PRODUCT The Planck Keyboard #define DESCRIPTION A compact ortholinear keyboard @@ -79,4 +78,11 @@ along with this program. If not, see . //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION +#ifdef SUBPROJECT_rev3 + #include "rev3/config.h" +#endif +#ifdef SUBPROJECT_rev4 + #include "rev4/config.h" +#endif + #endif diff --git a/keyboards/planck/keymaps/experimental/config.h b/keyboards/planck/keymaps/experimental/config.h index a9117e0ee..985e250ab 100644 --- a/keyboards/planck/keymaps/experimental/config.h +++ b/keyboards/planck/keymaps/experimental/config.h @@ -4,5 +4,6 @@ #include "../../config.h" #define LEADER_TIMEOUT 300 +#define BACKLIGHT_BREATHING #endif diff --git a/keyboards/planck/keymaps/yang/Makefile b/keyboards/planck/keymaps/yang/Makefile index f4908d703..6b18762fa 100644 --- a/keyboards/planck/keymaps/yang/Makefile +++ b/keyboards/planck/keymaps/yang/Makefile @@ -3,6 +3,7 @@ # the appropriate keymap folder that will get included automatically # RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +AUDIO_ENABLE = no ifndef QUANTUM_DIR include ../../../../Makefile diff --git a/keyboards/planck/planck.h b/keyboards/planck/planck.h index 81c0e8cb4..8cfee5d1c 100644 --- a/keyboards/planck/planck.h +++ b/keyboards/planck/planck.h @@ -1,6 +1,13 @@ #ifndef PLANCK_H #define PLANCK_H +#ifdef SUBPROJECT_rev3 + #include "rev3.h" +#endif +#ifdef SUBPROJECT_rev4 + #include "rev4.h" +#endif + #include "quantum.h" #define PLANCK_MIT( \ diff --git a/keyboards/planck/rev3/Makefile b/keyboards/planck/rev3/Makefile new file mode 100644 index 000000000..559409682 --- /dev/null +++ b/keyboards/planck/rev3/Makefile @@ -0,0 +1,5 @@ +AUDIO_ENABLE = no # Audio output on port C6 + +ifndef QUANTUM_DIR + include ../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/planck/rev3/config.h b/keyboards/planck/rev3/config.h new file mode 100644 index 000000000..fa50a5622 --- /dev/null +++ b/keyboards/planck/rev3/config.h @@ -0,0 +1,8 @@ +#ifndef REV3_CONFIG_H +#define REV3_CONFIG_H + +#include "../config.h" + +#define DEVICE_VER 0x0003 + +#endif \ No newline at end of file diff --git a/keyboards/planck/rev3/rev3.c b/keyboards/planck/rev3/rev3.c new file mode 100644 index 000000000..9ccd1d880 --- /dev/null +++ b/keyboards/planck/rev3/rev3.c @@ -0,0 +1 @@ +#include "rev3.h" \ No newline at end of file diff --git a/keyboards/planck/rev3/rev3.h b/keyboards/planck/rev3/rev3.h new file mode 100644 index 000000000..628951d97 --- /dev/null +++ b/keyboards/planck/rev3/rev3.h @@ -0,0 +1,6 @@ +#ifndef REV3_H +#define REV3_H + +#include "../planck.h" + +#endif \ No newline at end of file diff --git a/keyboards/planck/rev4/Makefile b/keyboards/planck/rev4/Makefile new file mode 100644 index 000000000..01d848e98 --- /dev/null +++ b/keyboards/planck/rev4/Makefile @@ -0,0 +1,5 @@ +AUDIO_ENABLE = yes # Audio output on port C6 + +ifndef QUANTUM_DIR + include ../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/planck/rev4/config.h b/keyboards/planck/rev4/config.h new file mode 100644 index 000000000..98189fba7 --- /dev/null +++ b/keyboards/planck/rev4/config.h @@ -0,0 +1,8 @@ +#ifndef REV4_CONFIG_H +#define REV4_CONFIG_H + +#include "../config.h" + +#define DEVICE_VER 0x0004 + +#endif \ No newline at end of file diff --git a/keyboards/planck/rev4/rev4.c b/keyboards/planck/rev4/rev4.c new file mode 100644 index 000000000..98a75d2ed --- /dev/null +++ b/keyboards/planck/rev4/rev4.c @@ -0,0 +1 @@ +#include "rev4.h" \ No newline at end of file diff --git a/keyboards/planck/rev4/rev4.h b/keyboards/planck/rev4/rev4.h new file mode 100644 index 000000000..e4cf1800b --- /dev/null +++ b/keyboards/planck/rev4/rev4.h @@ -0,0 +1,6 @@ +#ifndef REV4_H +#define REV4_H + +#include "../planck.h" + +#endif \ No newline at end of file diff --git a/keyboards/readme.md b/keyboards/readme.md index 5574619db..e97986546 100644 --- a/keyboards/readme.md +++ b/keyboards/readme.md @@ -23,8 +23,7 @@ Made in Taiwan using advanced robotic manufacturing, the ErgoDox EZ is a fully-a Designed and built in Felton, CA, Clueboards keyboard emphasize quality and locally sourced components, available on [clueboard.co](http://clueboard.co) -* [Clueboard rev.1](/keyboards/clueboard1/) - The old Clueboard. -* [Clueboard rev.2](/keyboards/clueboard2/) - New and improved! The Clueboard, revision 2. +* [Clueboard](/keyboards/clueboard/) - The 66% custom keyboard. * [Cluepad](/keyboards/cluepad/) - A mechanical numpad with QMK superpowers. diff --git a/quantum/audio/audio.h b/quantum/audio/audio.h index 00d45f7ac..47f326ea0 100644 --- a/quantum/audio/audio.h +++ b/quantum/audio/audio.h @@ -1,3 +1,6 @@ +#ifndef AUDIO_H +#define AUDIO_H + #include #include #include @@ -7,9 +10,6 @@ #include "voices.h" #include "quantum.h" -#ifndef AUDIO_H -#define AUDIO_H - // Largely untested PWM audio mode (doesn't sound as good) // #define PWM_AUDIO diff --git a/quantum/matrix.c b/quantum/matrix.c index 6e9f92727..f5744658c 100644 --- a/quantum/matrix.c +++ b/quantum/matrix.c @@ -86,29 +86,29 @@ uint8_t matrix_cols(void) { return MATRIX_COLS; } -void matrix_power_up(void) { -#if DIODE_DIRECTION == COL2ROW - for (int8_t r = MATRIX_ROWS - 1; r >= 0; --r) { - /* DDRxn */ - _SFR_IO8((row_pins[r] >> 4) + 1) |= _BV(row_pins[r] & 0xF); - toggle_row(r); - } - for (int8_t c = MATRIX_COLS - 1; c >= 0; --c) { - /* PORTxn */ - _SFR_IO8((col_pins[c] >> 4) + 2) |= _BV(col_pins[c] & 0xF); - } -#else - for (int8_t c = MATRIX_COLS - 1; c >= 0; --c) { - /* DDRxn */ - _SFR_IO8((col_pins[c] >> 4) + 1) |= _BV(col_pins[c] & 0xF); - toggle_col(c); - } - for (int8_t r = MATRIX_ROWS - 1; r >= 0; --r) { - /* PORTxn */ - _SFR_IO8((row_pins[r] >> 4) + 2) |= _BV(row_pins[r] & 0xF); - } -#endif -} +// void matrix_power_up(void) { +// #if DIODE_DIRECTION == COL2ROW +// for (int8_t r = MATRIX_ROWS - 1; r >= 0; --r) { +// /* DDRxn */ +// _SFR_IO8((row_pins[r] >> 4) + 1) |= _BV(row_pins[r] & 0xF); +// toggle_row(r); +// } +// for (int8_t c = MATRIX_COLS - 1; c >= 0; --c) { +// /* PORTxn */ +// _SFR_IO8((col_pins[c] >> 4) + 2) |= _BV(col_pins[c] & 0xF); +// } +// #else +// for (int8_t c = MATRIX_COLS - 1; c >= 0; --c) { +// /* DDRxn */ +// _SFR_IO8((col_pins[c] >> 4) + 1) |= _BV(col_pins[c] & 0xF); +// toggle_col(c); +// } +// for (int8_t r = MATRIX_ROWS - 1; r >= 0; --r) { +// /* PORTxn */ +// _SFR_IO8((row_pins[r] >> 4) + 2) |= _BV(row_pins[r] & 0xF); +// } +// #endif +// } void matrix_init(void) { /* frees PORTF by setting the JTD bit twice within four cycles */ diff --git a/readme.md b/readme.md index a71c3035a..6fa67c047 100644 --- a/readme.md +++ b/readme.md @@ -14,8 +14,7 @@ For an easy-to-read version of this document and the repository, check out [http * [Preonic](/keyboards/preonic/) * [Atomic](/keyboards/atomic/) * [ErgoDox EZ](/keyboards/ergodox_ez/) -* [Clueboard rev.1](/keyboards/clueboard1/) -* [Clueboard rev.2](/keyboards/clueboard2/) +* [Clueboard](/keyboards/clueboard/) * [Cluepad](/keyboards/cluepad/) The project also includes community support for [lots of other keyboards](/keyboards/). diff --git a/tmk_core/rules.mk b/tmk_core/rules.mk index aaaba1c2c..e37ba0f83 100644 --- a/tmk_core/rules.mk +++ b/tmk_core/rules.mk @@ -51,6 +51,13 @@ ifeq ($(COLOR),true) BOLD=\033[1m endif +ifdef quick + QUICK = $(quick) +endif + +QUICK ?= false +AUTOGEN ?= false + ifneq ($(shell awk --version 2>/dev/null),) AWK=awk else @@ -524,7 +531,12 @@ extcoff: $(BUILD_DIR)/$(TARGET).elf @$(SILENT) || printf "$(MSG_FLASH) $@" | $(AWK_CMD) $(eval CMD=$(OBJCOPY) -O $(FORMAT) -R .eeprom -R .fuse -R .lock -R .signature $< $@) @$(BUILD_CMD) - @$(COPY) $@ $(TARGET).hex + @if $(AUTOGEN); then \ + $(SILENT) || printf "Copying $(TARGET).hex to keymaps/$(KEYMAP)/$(KEYBOARD)_$(KEYMAP).hex\n"; \ + $(COPY) $@ $(KEYMAP_PATH)/$(KEYBOARD)_$(KEYMAP).hex; \ + else \ + $(COPY) $@ $(TARGET).hex; \ + fi %.eep: %.elf @$(SILENT) || printf "$(MSG_EEPROM) $@" | $(AWK_CMD) @@ -570,7 +582,7 @@ $(OBJDIR)/%.o : %.c $(OBJDIR)/%.o : %.cpp @mkdir -p $(@D) @$(SILENT) || printf "$(MSG_COMPILING_CPP) $<" | $(AWK_CMD) - $(CC) -c $(ALL_CPPFLAGS) $< -o $@ + $(eval CMD=$(CC) -c $(ALL_CPPFLAGS) $< -o $@) @$(BUILD_CMD) # Compile: create assembler files from C source files. @@ -600,9 +612,11 @@ $(OBJDIR)/%.o : %.S clean: begin clean_list end clean_list : - $(REMOVE) -r $(TOP_DIR)/$(BUILD_DIR) - $(REMOVE) -r $(KEYBOARD_PATH)/$(BUILD_DIR) - $(REMOVE) -r $(KEYMAP_PATH)/$(BUILD_DIR) + @$(REMOVE) -r $(BUILD_DIR) + @$(REMOVE) -r $(TOP_DIR)/$(BUILD_DIR) + @$(REMOVE) -r $(KEYBOARD_PATH)/$(BUILD_DIR) + @if $$SUBPROJECT; then $(REMOVE) -r $(SUBPROJECT_PATH)/$(BUILD_DIR); fi + @$(REMOVE) -r $(KEYMAP_PATH)/$(BUILD_DIR) show_path: @echo VPATH=$(VPATH) diff --git a/util/travis_compiled_push.sh b/util/travis_compiled_push.sh new file mode 100644 index 000000000..01317f4be --- /dev/null +++ b/util/travis_compiled_push.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +set -o errexit -o nounset + +rev=$(git rev-parse --short HEAD) + +git config --global user.name "Travis CI" +git config --global user.email "jack.humb+travis.ci@gmail.com" + +find . -name ".build" | xargs rm -rf +cd .. +git clone https://$GH_TOKEN@github.com/jackhumbert/qmk.fm.git +cd qmk.fm +git submodule update --init --recursive +rm -rf keyboard +rm -rf keyboards +cp -r ../qmk_firmware/keyboards . +cp ../qmk_firmware/readme.md qmk_readme.md +./generate.sh + +git add -A +git commit -m "generated from qmk_firmware/$TRAVIS_BRANCH@${rev}" +git push \ No newline at end of file -- cgit v1.2.3 From 65faab3b89245f81c50b029ca178aed175d5f330 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 29 Jun 2016 17:49:41 -0400 Subject: Moves features to their own files (process_*), adds tap dance feature (#460) * non-working commit * working * subprojects implemented for planck * pass a subproject variable through to c * consolidates clueboard revisions * thanks for letting me know about conflicts.. * turn off audio for yang's * corrects starting paths for subprojects * messing around with travis * semicolon * travis script * travis script * script for travis * correct directory (probably), amend files to commit * remove origin before adding * git pull, correct syntax * git checkout * git pull origin branch * where are we? * where are we? * merging * force things to happen * adds commit message, adds add * rebase, no commit message * rebase branch * idk! * try just pull * fetch - merge * specify repo branch * checkout * goddammit * merge? idk * pls * after all * don't split up keyboards * syntax * adds quick for all-keyboards * trying out new script * script update * lowercase * all keyboards * stop replacing compiled.hex automatically * adds if statement * skip automated build branches * forces push to automated build branch * throw an add in there * upstream? * adds AUTOGEN * ignore all .hex files again * testing out new repo * global ident * generate script, keyboard_keymap.hex * skip generation for now, print pandoc info, submodule update * try trusty * and sudo * try generate * updates subprojects to keyboards * no idea * updates to keyboards * cleans up clueboard stuff * setup to use local readme * updates cluepad, planck experimental * remove extra led.c [ci skip] * audio and midi moved over to separate files * chording, leader, unicode separated * consolidate each [skip ci] * correct include * quantum: Add a tap dance feature (#451) * quantum: Add a tap dance feature With this feature one can specify keys that behave differently, based on the amount of times they have been tapped, and when interrupted, they get handled before the interrupter. To make it clear how this is different from `ACTION_FUNCTION_TAP`, lets explore a certain setup! We want one key to send `Space` on single tap, but `Enter` on double-tap. With `ACTION_FUNCTION_TAP`, it is quite a rain-dance to set this up, and has the problem that when the sequence is interrupted, the interrupting key will be send first. Thus, `SPC a` will result in `a SPC` being sent, if they are typed within `TAPPING_TERM`. With the tap dance feature, that'll come out as `SPC a`, correctly. The implementation hooks into two parts of the system, to achieve this: into `process_record_quantum()`, and the matrix scan. We need the latter to be able to time out a tap sequence even when a key is not being pressed, so `SPC` alone will time out and register after `TAPPING_TERM` time. But lets start with how to use it, first! First, you will need `TAP_DANCE_ENABLE=yes` in your `Makefile`, because the feature is disabled by default. This adds a little less than 1k to the firmware size. Next, you will want to define some tap-dance keys, which is easiest to do with the `TD()` macro, that - similar to `F()`, takes a number, which will later be used as an index into the `tap_dance_actions` array. This array specifies what actions shall be taken when a tap-dance key is in action. Currently, there are two possible options: * `ACTION_TAP_DANCE_DOUBLE(kc1, kc2)`: Sends the `kc1` keycode when tapped once, `kc2` otherwise. * `ACTION_TAP_DANCE_FN(fn)`: Calls the specified function - defined in the user keymap - with the current state of the tap-dance action. The first option is enough for a lot of cases, that just want dual roles. For example, `ACTION_TAP_DANCE(KC_SPC, KC_ENT)` will result in `Space` being sent on single-tap, `Enter` otherwise. And that's the bulk of it! Do note, however, that this implementation does have some consequences: keys do not register until either they reach the tapping ceiling, or they time out. This means that if you hold the key, nothing happens, no repeat, no nothing. It is possible to detect held state, and register an action then too, but that's not implemented yet. Keys also unregister immediately after being registered, so you can't even hold the second tap. This is intentional, to be consistent. And now, on to the explanation of how it works! The main entry point is `process_tap_dance()`, called from `process_record_quantum()`, which is run for every keypress, and our handler gets to run early. This function checks whether the key pressed is a tap-dance key. If it is not, and a tap-dance was in action, we handle that first, and enqueue the newly pressed key. If it is a tap-dance key, then we check if it is the same as the already active one (if there's one active, that is). If it is not, we fire off the old one first, then register the new one. If it was the same, we increment the counter and the timer. This means that you have `TAPPING_TERM` time to tap the key again, you do not have to input all the taps within that timeframe. This allows for longer tap counts, with minimal impact on responsiveness. Our next stop is `matrix_scan_tap_dance()`. This handles the timeout of tap-dance keys. For the sake of flexibility, tap-dance actions can be either a pair of keycodes, or a user function. The latter allows one to handle higher tap counts, or do extra things, like blink the LEDs, fiddle with the backlighting, and so on. This is accomplished by using an union, and some clever macros. In the end, lets see a full example! ```c enum { CT_SE = 0, CT_CLN, CT_EGG }; /* Have the above three on the keymap, TD(CT_SE), etc... */ void dance_cln (qk_tap_dance_state_t *state) { if (state->count == 1) { register_code (KC_RSFT); register_code (KC_SCLN); unregister_code (KC_SCLN); unregister_code (KC_RSFT); } else { register_code (KC_SCLN); unregister_code (KC_SCLN); reset_tap_dance (state); } } void dance_egg (qk_tap_dance_state_t *state) { if (state->count >= 100) { SEND_STRING ("Safety dance!"); reset_tap_dance (state); } } const qk_tap_dance_action_t tap_dance_actions[] = { [CT_SE] = ACTION_TAP_DANCE_DOUBLE (KC_SPC, KC_ENT) ,[CT_CLN] = ACTION_TAP_DANCE_FN (dance_cln) ,[CT_EGG] = ACTION_TAP_DANCE_FN (dance_egg) }; ``` This addresses #426. Signed-off-by: Gergely Nagy * hhkb: Fix the build with the new tap-dance feature Signed-off-by: Gergely Nagy * tap_dance: Move process_tap_dance further down Process the tap dance stuff after midi and audio, because those don't process keycodes, but row/col positions. Signed-off-by: Gergely Nagy * tap_dance: Use conditionals instead of dummy functions To be consistent with how the rest of the quantum features are implemented, use ifdefs instead of dummy functions. Signed-off-by: Gergely Nagy * Merge branch 'master' into quantum-keypress-process # Conflicts: # Makefile # keyboards/planck/rev3/config.h # keyboards/planck/rev4/config.h * update build script --- .travis.yml | 2 +- Makefile | 37 ++- keyboards/alps64/matrix.c | 2 + keyboards/clueboard/Makefile | 39 +++ keyboards/ergodox_ez/matrix.c | 3 +- keyboards/hhkb/matrix.c | 11 + keyboards/planck/rev3/config.h | 2 +- keyboards/sixkeyboard/matrix.c | 2 +- quantum/keymap.h | 2 + quantum/keymap_midi.c | 109 ------- quantum/keymap_midi.h | 222 --------------- quantum/process_keycode/process_chording.c | 60 ++++ quantum/process_keycode/process_chording.h | 16 ++ quantum/process_keycode/process_leader.c | 38 +++ quantum/process_keycode/process_leader.h | 23 ++ quantum/process_keycode/process_midi.c | 66 +++++ quantum/process_keycode/process_midi.h | 207 ++++++++++++++ quantum/process_keycode/process_music.c | 171 +++++++++++ quantum/process_keycode/process_music.h | 27 ++ quantum/process_keycode/process_tap_dance.c | 90 ++++++ quantum/process_keycode/process_tap_dance.h | 62 ++++ quantum/process_keycode/process_unicode.c | 57 ++++ quantum/process_keycode/process_unicode.h | 122 ++++++++ quantum/quantum.c | 425 ++-------------------------- quantum/quantum.h | 57 ++-- quantum/unicode.h | 128 --------- tmk_core/common.mk | 15 +- 27 files changed, 1073 insertions(+), 922 deletions(-) delete mode 100644 quantum/keymap_midi.c delete mode 100644 quantum/keymap_midi.h create mode 100644 quantum/process_keycode/process_chording.c create mode 100644 quantum/process_keycode/process_chording.h create mode 100644 quantum/process_keycode/process_leader.c create mode 100644 quantum/process_keycode/process_leader.h create mode 100644 quantum/process_keycode/process_midi.c create mode 100644 quantum/process_keycode/process_midi.h create mode 100644 quantum/process_keycode/process_music.c create mode 100644 quantum/process_keycode/process_music.h create mode 100644 quantum/process_keycode/process_tap_dance.c create mode 100644 quantum/process_keycode/process_tap_dance.h create mode 100644 quantum/process_keycode/process_unicode.c create mode 100644 quantum/process_keycode/process_unicode.h delete mode 100644 quantum/unicode.h (limited to 'keyboards') diff --git a/.travis.yml b/.travis.yml index f5ae78c89..955f69679 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,7 +10,7 @@ env: global: - secure: vBTSL34BDPxDilKUuTXqU4CJ26Pv5hogD2nghatkxSQkI1/jbdnLj/DQdPUrMJFDIY6TK3AltsBx72MaMsLQ1JO/Ou24IeHINHXzUC1FlS9yQa48cpxnhX5kzXNyGs3oa0qaFbvnr7RgYRWtmD52n4bIZuSuW+xpBv05x2OCizdT2ZonH33nATaHGFasxROm4qYZ241VfzcUv766V6RVHgL4x9V08warugs+RENVkfzxxwhk3NmkrISabze0gSVJLHBPHxroZC6EUcf/ocobcuDrCwFqtEt90i7pNIAFUE7gZsN2uE75LmpzAWin21G7lLPcPL2k4FJVd8an1HiP2WmscJU6U89fOfMb2viObnKcCzebozBCmKGtHEuXZo9FcReOx49AnQSpmESJGs+q2dL/FApkTjQiyT4J6O5dJpoww0/r57Wx0cmmqjETKBb5rSgXM51Etk3wO09mvcPHsEwrT7qH8r9XWdyCDoEn7FCLX3/LYnf/D4SmZ633YPl5gv3v9XEwxR5+04akjgnvWDSNIaDbWBdxHNb7l4pMc+WR1bwCyMyA7KXj0RrftEGOrm9ZRLe6BkbT4cycA+j77nbPOMcyZChliV9pPQos+4TOJoTzcK2L8yWVoY409aDNVuAjdP6Yum0R2maBGl/etLmIMpJC35C5/lZ+dUNjJAM= script: -- make all-keyboards quick AUTOGEN=true +- make all-keyboards-quick AUTOGEN=true addons: apt: packages: diff --git a/Makefile b/Makefile index 72710c2d9..5642aa283 100644 --- a/Makefile +++ b/Makefile @@ -120,11 +120,15 @@ else endif - ifneq ("$(wildcard $(KEYMAP_PATH)/config.h)","") CONFIG_H = $(KEYMAP_PATH)/config.h else CONFIG_H = $(KEYBOARD_PATH)/config.h + ifdef SUBPROJECT + ifneq ("$(wildcard $(SUBPROJECT_PATH)/$(SUBPROJECT).c)","") + CONFIG_H = $(SUBPROJECT_PATH)/config.h + endif + endif endif # # project specific files @@ -132,7 +136,16 @@ SRC += $(KEYBOARD_FILE) \ $(KEYMAP_FILE) \ $(QUANTUM_DIR)/quantum.c \ $(QUANTUM_DIR)/keymap.c \ - $(QUANTUM_DIR)/keycode_config.c + $(QUANTUM_DIR)/keycode_config.c \ + $(QUANTUM_DIR)/process_keycode/process_leader.c + +ifdef SUBPROJECT + SRC += $(SUBPROJECT_FILE) +endif + +ifdef SUBPROJECT + SRC += $(SUBPROJECT_FILE) +endif ifdef SUBPROJECT SRC += $(SUBPROJECT_FILE) @@ -142,16 +155,33 @@ ifndef CUSTOM_MATRIX SRC += $(QUANTUM_DIR)/matrix.c endif +ifeq ($(strip $(MIDI_ENABLE)), yes) + OPT_DEFS += -DMIDI_ENABLE + SRC += $(QUANTUM_DIR)/process_keycode/process_audio.c +endif + ifeq ($(strip $(AUDIO_ENABLE)), yes) + OPT_DEFS += -DAUDIO_ENABLE + SRC += $(QUANTUM_DIR)/process_keycode/process_music.c SRC += $(QUANTUM_DIR)/audio/audio.c SRC += $(QUANTUM_DIR)/audio/voices.c SRC += $(QUANTUM_DIR)/audio/luts.c endif +ifeq ($(strip $(UNICODE_ENABLE)), yes) + OPT_DEFS += -DUNICODE_ENABLE + SRC += $(QUANTUM_DIR)/process_keycode/process_unicode.c +endif + ifeq ($(strip $(RGBLIGHT_ENABLE)), yes) + OPT_DEFS += -DRGBLIGHT_ENABLE SRC += $(QUANTUM_DIR)/light_ws2812.c SRC += $(QUANTUM_DIR)/rgblight.c - OPT_DEFS += -DRGBLIGHT_ENABLE +endif + +ifeq ($(strip $(TAP_DANCE_ENABLE)), yes) + OPT_DEFS += -DTAP_DANCE_ENABLE + SRC += $(QUANTUM_DIR)/process_keycode/process_tap_dance.c endif # Optimize size but this may cause error "relocation truncated to fit" @@ -168,6 +198,7 @@ VPATH += $(TMK_PATH) VPATH += $(QUANTUM_PATH) VPATH += $(QUANTUM_PATH)/keymap_extras VPATH += $(QUANTUM_PATH)/audio +VPATH += $(QUANTUM_PATH)/process_keycode include $(TMK_PATH)/protocol/lufa.mk include $(TMK_PATH)/common.mk diff --git a/keyboards/alps64/matrix.c b/keyboards/alps64/matrix.c index 805999d4a..b3508850d 100644 --- a/keyboards/alps64/matrix.c +++ b/keyboards/alps64/matrix.c @@ -100,6 +100,8 @@ uint8_t matrix_scan(void) } } + matrix_scan_quantum(); + return 1; } diff --git a/keyboards/clueboard/Makefile b/keyboards/clueboard/Makefile index d6f4bfcae..ccc01ea9a 100644 --- a/keyboards/clueboard/Makefile +++ b/keyboards/clueboard/Makefile @@ -1,3 +1,42 @@ +#---------------------------------------------------------------------------- +# On command line: +# +# make all = Make software. +# +# make clean = Clean out built project files. +# +# make coff = Convert ELF to AVR COFF. +# +# make extcoff = Convert ELF to AVR Extended COFF. +# +# make program = Download the hex file to the device. +# Please customize your programmer settings(PROGRAM_CMD) +# +# make teensy = Download the hex file to the device, using teensy_loader_cli. +# (must have teensy_loader_cli installed). +# +# make dfu = Download the hex file to the device, using dfu-programmer (must +# have dfu-programmer installed). +# +# make flip = Download the hex file to the device, using Atmel FLIP (must +# have Atmel FLIP installed). +# +# make dfu-ee = Download the eeprom file to the device, using dfu-programmer +# (must have dfu-programmer installed). +# +# make flip-ee = Download the eeprom file to the device, using Atmel FLIP +# (must have Atmel FLIP installed). +# +# make debug = Start either simulavr or avarice as specified for debugging, +# with avr-gdb or avr-insight as the front end for debugging. +# +# make filename.s = Just compile filename.c into the assembler code only. +# +# make filename.i = Create a preprocessed source file for use in submitting +# bug reports to the GCC project. +# +# To rebuild project do "make clean" then "make all". +#---------------------------------------------------------------------------- SUBPROJECT_DEFAULT = rev2 diff --git a/keyboards/ergodox_ez/matrix.c b/keyboards/ergodox_ez/matrix.c index e0de06c34..b87fddbad 100644 --- a/keyboards/ergodox_ez/matrix.c +++ b/keyboards/ergodox_ez/matrix.c @@ -187,8 +187,7 @@ uint8_t matrix_scan(void) } } - - matrix_scan_kb(); + matrix_scan_quantum(); return 1; } diff --git a/keyboards/hhkb/matrix.c b/keyboards/hhkb/matrix.c index 2dfb2f5e1..666b6f595 100644 --- a/keyboards/hhkb/matrix.c +++ b/keyboards/hhkb/matrix.c @@ -71,6 +71,14 @@ void matrix_init(void) matrix_prev = _matrix1; } +__attribute__ ((weak)) +void matrix_scan_user(void) { +} + +void matrix_scan_kb(void) { + matrix_scan_user(); +} + uint8_t matrix_scan(void) { uint8_t *tmp; @@ -150,6 +158,9 @@ uint8_t matrix_scan(void) KEY_POWER_OFF(); suspend_power_down(); } + + matrix_scan_quantum(); + return 1; } diff --git a/keyboards/planck/rev3/config.h b/keyboards/planck/rev3/config.h index fa50a5622..cc37874e8 100644 --- a/keyboards/planck/rev3/config.h +++ b/keyboards/planck/rev3/config.h @@ -5,4 +5,4 @@ #define DEVICE_VER 0x0003 -#endif \ No newline at end of file +#endif diff --git a/keyboards/sixkeyboard/matrix.c b/keyboards/sixkeyboard/matrix.c index c27998648..ed1b70e28 100644 --- a/keyboards/sixkeyboard/matrix.c +++ b/keyboards/sixkeyboard/matrix.c @@ -87,7 +87,7 @@ uint8_t matrix_scan(void) matrix[0] = (PINC&(1<<7) ? 0 : (1<<0)) | (PINB&(1<<7) ? 0 : (1<<1)) | (PINB&(1<<5) ? 0 : (1<<2)); matrix[1] = (PIND&(1<<6) ? 0 : (1<<0)) | (PIND&(1<<1) ? 0 : (1<<1)) | (PIND&(1<<4) ? 0 : (1<<2)); - matrix_scan_kb(); + matrix_scan_quantum(); return 1; } diff --git a/quantum/keymap.h b/quantum/keymap.h index 41fa394ab..a994f4f2e 100644 --- a/quantum/keymap.h +++ b/quantum/keymap.h @@ -77,6 +77,8 @@ enum quantum_keycodes { #endif QK_MOD_TAP = 0x6000, QK_MOD_TAP_MAX = 0x6FFF, + QK_TAP_DANCE = 0x7100, + QK_TAP_DANCE_MAX = 0x71FF, #ifdef UNICODE_ENABLE QK_UNICODE = 0x8000, QK_UNICODE_MAX = 0xFFFF, diff --git a/quantum/keymap_midi.c b/quantum/keymap_midi.c deleted file mode 100644 index 46049b987..000000000 --- a/quantum/keymap_midi.c +++ /dev/null @@ -1,109 +0,0 @@ -/* -Copyright 2015 Jack Humbert - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include "keymap.h" -#include "keymap_midi.h" - -uint8_t starting_note = 0x0C; -int offset = 7; - -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - if (id != 0) { - if (record->event.pressed) { - midi_send_noteon(&midi_device, opt, (id & 0xFF), 127); - } else { - midi_send_noteoff(&midi_device, opt, (id & 0xFF), 127); - } - } - - if (record->event.key.col == (MATRIX_COLS - 1) && record->event.key.row == (MATRIX_ROWS - 1)) { - if (record->event.pressed) { - starting_note++; - play_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1)), 0xC); - midi_send_cc(&midi_device, 0, 0x7B, 0); - midi_send_cc(&midi_device, 1, 0x7B, 0); - midi_send_cc(&midi_device, 2, 0x7B, 0); - midi_send_cc(&midi_device, 3, 0x7B, 0); - midi_send_cc(&midi_device, 4, 0x7B, 0); - return; - } else { - stop_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1))); - stop_all_notes(); - return; - } - } - if (record->event.key.col == (MATRIX_COLS - 2) && record->event.key.row == (MATRIX_ROWS - 1)) { - if (record->event.pressed) { - starting_note--; - play_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1)), 0xC); - midi_send_cc(&midi_device, 0, 0x7B, 0); - midi_send_cc(&midi_device, 1, 0x7B, 0); - midi_send_cc(&midi_device, 2, 0x7B, 0); - midi_send_cc(&midi_device, 3, 0x7B, 0); - midi_send_cc(&midi_device, 4, 0x7B, 0); - return; - } else { - stop_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1))); - stop_all_notes(); - return; - } - } - - if (record->event.key.col == (MATRIX_COLS - 3) && record->event.key.row == (MATRIX_ROWS - 1) && record->event.pressed) { - offset++; - midi_send_cc(&midi_device, 0, 0x7B, 0); - midi_send_cc(&midi_device, 1, 0x7B, 0); - midi_send_cc(&midi_device, 2, 0x7B, 0); - midi_send_cc(&midi_device, 3, 0x7B, 0); - midi_send_cc(&midi_device, 4, 0x7B, 0); - stop_all_notes(); - for (int i = 0; i <= 7; i++) { - play_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1)), 0xC); - _delay_us(80000); - stop_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1))); - _delay_us(8000); - } - return; - } - if (record->event.key.col == (MATRIX_COLS - 4) && record->event.key.row == (MATRIX_ROWS - 1) && record->event.pressed) { - offset--; - midi_send_cc(&midi_device, 0, 0x7B, 0); - midi_send_cc(&midi_device, 1, 0x7B, 0); - midi_send_cc(&midi_device, 2, 0x7B, 0); - midi_send_cc(&midi_device, 3, 0x7B, 0); - midi_send_cc(&midi_device, 4, 0x7B, 0); - stop_all_notes(); - for (int i = 0; i <= 7; i++) { - play_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1)), 0xC); - _delay_us(80000); - stop_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1))); - _delay_us(8000); - } - return; - } - - if (record->event.pressed) { - // midi_send_noteon(&midi_device, record->event.key.row, starting_note + SCALE[record->event.key.col], 127); - // midi_send_noteon(&midi_device, 0, (starting_note + SCALE[record->event.key.col + offset])+12*(MATRIX_ROWS - record->event.key.row), 127); - play_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); - } else { - // midi_send_noteoff(&midi_device, record->event.key.row, starting_note + SCALE[record->event.key.col], 127); - // midi_send_noteoff(&midi_device, 0, (starting_note + SCALE[record->event.key.col + offset])+12*(MATRIX_ROWS - record->event.key.row), 127); - stop_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); - } -} \ No newline at end of file diff --git a/quantum/keymap_midi.h b/quantum/keymap_midi.h deleted file mode 100644 index 3a2bf3aff..000000000 --- a/quantum/keymap_midi.h +++ /dev/null @@ -1,222 +0,0 @@ -/* -Copyright 2015 Jack Humbert - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#ifndef KEYMAP_MIDI_H -#define KEYMAP_MIDI_H - -#include - -#define MIDI(n) ((n) | 0x6000) -#define MIDI12 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000 - -#define CHNL(note, channel) (note + (channel << 8)) - -#define SCALE (int8_t []){ 0 + (12*0), 2 + (12*0), 4 + (12*0), 5 + (12*0), 7 + (12*0), 9 + (12*0), 11 + (12*0), \ - 0 + (12*1), 2 + (12*1), 4 + (12*1), 5 + (12*1), 7 + (12*1), 9 + (12*1), 11 + (12*1), \ - 0 + (12*2), 2 + (12*2), 4 + (12*2), 5 + (12*2), 7 + (12*2), 9 + (12*2), 11 + (12*2), \ - 0 + (12*3), 2 + (12*3), 4 + (12*3), 5 + (12*3), 7 + (12*3), 9 + (12*3), 11 + (12*3), \ - 0 + (12*4), 2 + (12*4), 4 + (12*4), 5 + (12*4), 7 + (12*4), 9 + (12*4), 11 + (12*4), } - -#define N_CN1 (0x600C + (12 * -1) + 0 ) -#define N_CN1S (0x600C + (12 * -1) + 1 ) -#define N_DN1F (0x600C + (12 * -1) + 1 ) -#define N_DN1 (0x600C + (12 * -1) + 2 ) -#define N_DN1S (0x600C + (12 * -1) + 3 ) -#define N_EN1F (0x600C + (12 * -1) + 3 ) -#define N_EN1 (0x600C + (12 * -1) + 4 ) -#define N_FN1 (0x600C + (12 * -1) + 5 ) -#define N_FN1S (0x600C + (12 * -1) + 6 ) -#define N_GN1F (0x600C + (12 * -1) + 6 ) -#define N_GN1 (0x600C + (12 * -1) + 7 ) -#define N_GN1S (0x600C + (12 * -1) + 8 ) -#define N_AN1F (0x600C + (12 * -1) + 8 ) -#define N_AN1 (0x600C + (12 * -1) + 9 ) -#define N_AN1S (0x600C + (12 * -1) + 10) -#define N_BN1F (0x600C + (12 * -1) + 10) -#define N_BN1 (0x600C + (12 * -1) + 11) -#define N_C0 (0x600C + (12 * 0) + 0 ) -#define N_C0S (0x600C + (12 * 0) + 1 ) -#define N_D0F (0x600C + (12 * 0) + 1 ) -#define N_D0 (0x600C + (12 * 0) + 2 ) -#define N_D0S (0x600C + (12 * 0) + 3 ) -#define N_E0F (0x600C + (12 * 0) + 3 ) -#define N_E0 (0x600C + (12 * 0) + 4 ) -#define N_F0 (0x600C + (12 * 0) + 5 ) -#define N_F0S (0x600C + (12 * 0) + 6 ) -#define N_G0F (0x600C + (12 * 0) + 6 ) -#define N_G0 (0x600C + (12 * 0) + 7 ) -#define N_G0S (0x600C + (12 * 0) + 8 ) -#define N_A0F (0x600C + (12 * 0) + 8 ) -#define N_A0 (0x600C + (12 * 0) + 9 ) -#define N_A0S (0x600C + (12 * 0) + 10) -#define N_B0F (0x600C + (12 * 0) + 10) -#define N_B0 (0x600C + (12 * 0) + 11) -#define N_C1 (0x600C + (12 * 1) + 0 ) -#define N_C1S (0x600C + (12 * 1) + 1 ) -#define N_D1F (0x600C + (12 * 1) + 1 ) -#define N_D1 (0x600C + (12 * 1) + 2 ) -#define N_D1S (0x600C + (12 * 1) + 3 ) -#define N_E1F (0x600C + (12 * 1) + 3 ) -#define N_E1 (0x600C + (12 * 1) + 4 ) -#define N_F1 (0x600C + (12 * 1) + 5 ) -#define N_F1S (0x600C + (12 * 1) + 6 ) -#define N_G1F (0x600C + (12 * 1) + 6 ) -#define N_G1 (0x600C + (12 * 1) + 7 ) -#define N_G1S (0x600C + (12 * 1) + 8 ) -#define N_A1F (0x600C + (12 * 1) + 8 ) -#define N_A1 (0x600C + (12 * 1) + 9 ) -#define N_A1S (0x600C + (12 * 1) + 10) -#define N_B1F (0x600C + (12 * 1) + 10) -#define N_B1 (0x600C + (12 * 1) + 11) -#define N_C2 (0x600C + (12 * 2) + 0 ) -#define N_C2S (0x600C + (12 * 2) + 1 ) -#define N_D2F (0x600C + (12 * 2) + 1 ) -#define N_D2 (0x600C + (12 * 2) + 2 ) -#define N_D2S (0x600C + (12 * 2) + 3 ) -#define N_E2F (0x600C + (12 * 2) + 3 ) -#define N_E2 (0x600C + (12 * 2) + 4 ) -#define N_F2 (0x600C + (12 * 2) + 5 ) -#define N_F2S (0x600C + (12 * 2) + 6 ) -#define N_G2F (0x600C + (12 * 2) + 6 ) -#define N_G2 (0x600C + (12 * 2) + 7 ) -#define N_G2S (0x600C + (12 * 2) + 8 ) -#define N_A2F (0x600C + (12 * 2) + 8 ) -#define N_A2 (0x600C + (12 * 2) + 9 ) -#define N_A2S (0x600C + (12 * 2) + 10) -#define N_B2F (0x600C + (12 * 2) + 10) -#define N_B2 (0x600C + (12 * 2) + 11) -#define N_C3 (0x600C + (12 * 3) + 0 ) -#define N_C3S (0x600C + (12 * 3) + 1 ) -#define N_D3F (0x600C + (12 * 3) + 1 ) -#define N_D3 (0x600C + (12 * 3) + 2 ) -#define N_D3S (0x600C + (12 * 3) + 3 ) -#define N_E3F (0x600C + (12 * 3) + 3 ) -#define N_E3 (0x600C + (12 * 3) + 4 ) -#define N_F3 (0x600C + (12 * 3) + 5 ) -#define N_F3S (0x600C + (12 * 3) + 6 ) -#define N_G3F (0x600C + (12 * 3) + 6 ) -#define N_G3 (0x600C + (12 * 3) + 7 ) -#define N_G3S (0x600C + (12 * 3) + 8 ) -#define N_A3F (0x600C + (12 * 3) + 8 ) -#define N_A3 (0x600C + (12 * 3) + 9 ) -#define N_A3S (0x600C + (12 * 3) + 10) -#define N_B3F (0x600C + (12 * 3) + 10) -#define N_B3 (0x600C + (12 * 3) + 11) -#define N_C4 (0x600C + (12 * 4) + 0 ) -#define N_C4S (0x600C + (12 * 4) + 1 ) -#define N_D4F (0x600C + (12 * 4) + 1 ) -#define N_D4 (0x600C + (12 * 4) + 2 ) -#define N_D4S (0x600C + (12 * 4) + 3 ) -#define N_E4F (0x600C + (12 * 4) + 3 ) -#define N_E4 (0x600C + (12 * 4) + 4 ) -#define N_F4 (0x600C + (12 * 4) + 5 ) -#define N_F4S (0x600C + (12 * 4) + 6 ) -#define N_G4F (0x600C + (12 * 4) + 6 ) -#define N_G4 (0x600C + (12 * 4) + 7 ) -#define N_G4S (0x600C + (12 * 4) + 8 ) -#define N_A4F (0x600C + (12 * 4) + 8 ) -#define N_A4 (0x600C + (12 * 4) + 9 ) -#define N_A4S (0x600C + (12 * 4) + 10) -#define N_B4F (0x600C + (12 * 4) + 10) -#define N_B4 (0x600C + (12 * 4) + 11) -#define N_C5 (0x600C + (12 * 5) + 0 ) -#define N_C5S (0x600C + (12 * 5) + 1 ) -#define N_D5F (0x600C + (12 * 5) + 1 ) -#define N_D5 (0x600C + (12 * 5) + 2 ) -#define N_D5S (0x600C + (12 * 5) + 3 ) -#define N_E5F (0x600C + (12 * 5) + 3 ) -#define N_E5 (0x600C + (12 * 5) + 4 ) -#define N_F5 (0x600C + (12 * 5) + 5 ) -#define N_F5S (0x600C + (12 * 5) + 6 ) -#define N_G5F (0x600C + (12 * 5) + 6 ) -#define N_G5 (0x600C + (12 * 5) + 7 ) -#define N_G5S (0x600C + (12 * 5) + 8 ) -#define N_A5F (0x600C + (12 * 5) + 8 ) -#define N_A5 (0x600C + (12 * 5) + 9 ) -#define N_A5S (0x600C + (12 * 5) + 10) -#define N_B5F (0x600C + (12 * 5) + 10) -#define N_B5 (0x600C + (12 * 5) + 11) -#define N_C6 (0x600C + (12 * 6) + 0 ) -#define N_C6S (0x600C + (12 * 6) + 1 ) -#define N_D6F (0x600C + (12 * 6) + 1 ) -#define N_D6 (0x600C + (12 * 6) + 2 ) -#define N_D6S (0x600C + (12 * 6) + 3 ) -#define N_E6F (0x600C + (12 * 6) + 3 ) -#define N_E6 (0x600C + (12 * 6) + 4 ) -#define N_F6 (0x600C + (12 * 6) + 5 ) -#define N_F6S (0x600C + (12 * 6) + 6 ) -#define N_G6F (0x600C + (12 * 6) + 6 ) -#define N_G6 (0x600C + (12 * 6) + 7 ) -#define N_G6S (0x600C + (12 * 6) + 8 ) -#define N_A6F (0x600C + (12 * 6) + 8 ) -#define N_A6 (0x600C + (12 * 6) + 9 ) -#define N_A6S (0x600C + (12 * 6) + 10) -#define N_B6F (0x600C + (12 * 6) + 10) -#define N_B6 (0x600C + (12 * 6) + 11) -#define N_C7 (0x600C + (12 * 7) + 0 ) -#define N_C7S (0x600C + (12 * 7) + 1 ) -#define N_D7F (0x600C + (12 * 7) + 1 ) -#define N_D7 (0x600C + (12 * 7) + 2 ) -#define N_D7S (0x600C + (12 * 7) + 3 ) -#define N_E7F (0x600C + (12 * 7) + 3 ) -#define N_E7 (0x600C + (12 * 7) + 4 ) -#define N_F7 (0x600C + (12 * 7) + 5 ) -#define N_F7S (0x600C + (12 * 7) + 6 ) -#define N_G7F (0x600C + (12 * 7) + 6 ) -#define N_G7 (0x600C + (12 * 7) + 7 ) -#define N_G7S (0x600C + (12 * 7) + 8 ) -#define N_A7F (0x600C + (12 * 7) + 8 ) -#define N_A7 (0x600C + (12 * 7) + 9 ) -#define N_A7S (0x600C + (12 * 7) + 10) -#define N_B7F (0x600C + (12 * 7) + 10) -#define N_B7 (0x600C + (12 * 7) + 11) -#define N_C8 (0x600C + (12 * 8) + 0 ) -#define N_C8S (0x600C + (12 * 8) + 1 ) -#define N_D8F (0x600C + (12 * 8) + 1 ) -#define N_D8 (0x600C + (12 * 8) + 2 ) -#define N_D8S (0x600C + (12 * 8) + 3 ) -#define N_E8F (0x600C + (12 * 8) + 3 ) -#define N_E8 (0x600C + (12 * 8) + 4 ) -#define N_F8 (0x600C + (12 * 8) + 5 ) -#define N_F8S (0x600C + (12 * 8) + 6 ) -#define N_G8F (0x600C + (12 * 8) + 6 ) -#define N_G8 (0x600C + (12 * 8) + 7 ) -#define N_G8S (0x600C + (12 * 8) + 8 ) -#define N_A8F (0x600C + (12 * 8) + 8 ) -#define N_A8 (0x600C + (12 * 8) + 9 ) -#define N_A8S (0x600C + (12 * 8) + 10) -#define N_B8F (0x600C + (12 * 8) + 10) -#define N_B8 (0x600C + (12 * 8) + 11) -#define N_C8 (0x600C + (12 * 8) + 0 ) -#define N_C8S (0x600C + (12 * 8) + 1 ) -#define N_D8F (0x600C + (12 * 8) + 1 ) -#define N_D8 (0x600C + (12 * 8) + 2 ) -#define N_D8S (0x600C + (12 * 8) + 3 ) -#define N_E8F (0x600C + (12 * 8) + 3 ) -#define N_E8 (0x600C + (12 * 8) + 4 ) -#define N_F8 (0x600C + (12 * 8) + 5 ) -#define N_F8S (0x600C + (12 * 8) + 6 ) -#define N_G8F (0x600C + (12 * 8) + 6 ) -#define N_G8 (0x600C + (12 * 8) + 7 ) -#define N_G8S (0x600C + (12 * 8) + 8 ) -#define N_A8F (0x600C + (12 * 8) + 8 ) -#define N_A8 (0x600C + (12 * 8) + 9 ) -#define N_A8S (0x600C + (12 * 8) + 10) -#define N_B8F (0x600C + (12 * 8) + 10) -#define N_B8 (0x600C + (12 * 8) + 11) - -#endif \ No newline at end of file diff --git a/quantum/process_keycode/process_chording.c b/quantum/process_keycode/process_chording.c new file mode 100644 index 000000000..d7814629f --- /dev/null +++ b/quantum/process_keycode/process_chording.c @@ -0,0 +1,60 @@ +#include "process_chording.h" + +bool keys_chord(uint8_t keys[]) { + uint8_t keys_size = sizeof(keys)/sizeof(keys[0]); + bool pass = true; + uint8_t in = 0; + for (uint8_t i = 0; i < chord_key_count; i++) { + bool found = false; + for (uint8_t j = 0; j < keys_size; j++) { + if (chord_keys[i] == (keys[j] & 0xFF)) { + in++; // detects key in chord + found = true; + break; + } + } + if (found) + continue; + if (chord_keys[i] != 0) { + pass = false; // makes sure rest are blank + } + } + return (pass && (in == keys_size)); +} + +bool process_chording(uint16_t keycode, keyrecord_t *record) { + if (keycode >= QK_CHORDING && keycode <= QK_CHORDING_MAX) { + if (record->event.pressed) { + if (!chording) { + chording = true; + for (uint8_t i = 0; i < CHORDING_MAX; i++) + chord_keys[i] = 0; + chord_key_count = 0; + chord_key_down = 0; + } + chord_keys[chord_key_count] = (keycode & 0xFF); + chord_key_count++; + chord_key_down++; + return false; + } else { + if (chording) { + chord_key_down--; + if (chord_key_down == 0) { + chording = false; + // Chord Dictionary + if (keys_chord((uint8_t[]){KC_ENTER, KC_SPACE})) { + register_code(KC_A); + unregister_code(KC_A); + return false; + } + for (uint8_t i = 0; i < chord_key_count; i++) { + register_code(chord_keys[i]); + unregister_code(chord_keys[i]); + return false; + } + } + } + } + } + return true; +} \ No newline at end of file diff --git a/quantum/process_keycode/process_chording.h b/quantum/process_keycode/process_chording.h new file mode 100644 index 000000000..49c97db3b --- /dev/null +++ b/quantum/process_keycode/process_chording.h @@ -0,0 +1,16 @@ +#ifndef PROCESS_CHORDING_H +#define PROCESS_CHORDING_H + +#include "quantum.h" + +// Chording stuff +#define CHORDING_MAX 4 +bool chording = false; + +uint8_t chord_keys[CHORDING_MAX] = {0}; +uint8_t chord_key_count = 0; +uint8_t chord_key_down = 0; + +bool process_chording(uint16_t keycode, keyrecord_t *record); + +#endif \ No newline at end of file diff --git a/quantum/process_keycode/process_leader.c b/quantum/process_keycode/process_leader.c new file mode 100644 index 000000000..e53d221e7 --- /dev/null +++ b/quantum/process_keycode/process_leader.c @@ -0,0 +1,38 @@ +#include "process_leader.h" + +__attribute__ ((weak)) +void leader_start(void) {} + +__attribute__ ((weak)) +void leader_end(void) {} + +// Leader key stuff +bool leading = false; +uint16_t leader_time = 0; + +uint16_t leader_sequence[5] = {0, 0, 0, 0, 0}; +uint8_t leader_sequence_size = 0; + +bool process_leader(uint16_t keycode, keyrecord_t *record) { + // Leader key set-up + if (record->event.pressed) { + if (!leading && keycode == KC_LEAD) { + leader_start(); + leading = true; + leader_time = timer_read(); + leader_sequence_size = 0; + leader_sequence[0] = 0; + leader_sequence[1] = 0; + leader_sequence[2] = 0; + leader_sequence[3] = 0; + leader_sequence[4] = 0; + return false; + } + if (leading && timer_elapsed(leader_time) < LEADER_TIMEOUT) { + leader_sequence[leader_sequence_size] = keycode; + leader_sequence_size++; + return false; + } + } + return true; +} \ No newline at end of file diff --git a/quantum/process_keycode/process_leader.h b/quantum/process_keycode/process_leader.h new file mode 100644 index 000000000..c83db8abb --- /dev/null +++ b/quantum/process_keycode/process_leader.h @@ -0,0 +1,23 @@ +#ifndef PROCESS_LEADER_H +#define PROCESS_LEADER_H + +#include "quantum.h" + +bool process_leader(uint16_t keycode, keyrecord_t *record); + +void leader_start(void); +void leader_end(void); + +#ifndef LEADER_TIMEOUT + #define LEADER_TIMEOUT 200 +#endif +#define SEQ_ONE_KEY(key) if (leader_sequence[0] == (key) && leader_sequence[1] == 0 && leader_sequence[2] == 0 && leader_sequence[3] == 0 && leader_sequence[4] == 0) +#define SEQ_TWO_KEYS(key1, key2) if (leader_sequence[0] == (key1) && leader_sequence[1] == (key2) && leader_sequence[2] == 0 && leader_sequence[3] == 0 && leader_sequence[4] == 0) +#define SEQ_THREE_KEYS(key1, key2, key3) if (leader_sequence[0] == (key1) && leader_sequence[1] == (key2) && leader_sequence[2] == (key3) && leader_sequence[3] == 0 && leader_sequence[4] == 0) +#define SEQ_FOUR_KEYS(key1, key2, key3, key4) if (leader_sequence[0] == (key1) && leader_sequence[1] == (key2) && leader_sequence[2] == (key3) && leader_sequence[3] == (key4) && leader_sequence[4] == 0) +#define SEQ_FIVE_KEYS(key1, key2, key3, key4, key5) if (leader_sequence[0] == (key1) && leader_sequence[1] == (key2) && leader_sequence[2] == (key3) && leader_sequence[3] == (key4) && leader_sequence[4] == (key5)) + +#define LEADER_EXTERNS() extern bool leading; extern uint16_t leader_time; extern uint16_t leader_sequence[5]; extern uint8_t leader_sequence_size +#define LEADER_DICTIONARY() if (leading && timer_elapsed(leader_time) > LEADER_TIMEOUT) + +#endif \ No newline at end of file diff --git a/quantum/process_keycode/process_midi.c b/quantum/process_keycode/process_midi.c new file mode 100644 index 000000000..d6ab9c626 --- /dev/null +++ b/quantum/process_keycode/process_midi.c @@ -0,0 +1,66 @@ +#include "process_midi.h" + +bool midi_activated = false; +uint8_t starting_note = 0x0C; +int offset = 7; + +bool process_midi(uint16_t keycode, keyrecord_t *record) { + if (keycode == MI_ON && record->event.pressed) { + midi_activated = true; + music_scale_user(); + return false; + } + + if (keycode == MI_OFF && record->event.pressed) { + midi_activated = false; + midi_send_cc(&midi_device, 0, 0x7B, 0); + return false; + } + + if (midi_activated) { + if (record->event.key.col == (MATRIX_COLS - 1) && record->event.key.row == (MATRIX_ROWS - 1)) { + if (record->event.pressed) { + starting_note++; // Change key + midi_send_cc(&midi_device, 0, 0x7B, 0); + } + return false; + } + if (record->event.key.col == (MATRIX_COLS - 2) && record->event.key.row == (MATRIX_ROWS - 1)) { + if (record->event.pressed) { + starting_note--; // Change key + midi_send_cc(&midi_device, 0, 0x7B, 0); + } + return false; + } + if (record->event.key.col == (MATRIX_COLS - 3) && record->event.key.row == (MATRIX_ROWS - 1) && record->event.pressed) { + offset++; // Change scale + midi_send_cc(&midi_device, 0, 0x7B, 0); + return false; + } + if (record->event.key.col == (MATRIX_COLS - 4) && record->event.key.row == (MATRIX_ROWS - 1) && record->event.pressed) { + offset--; // Change scale + midi_send_cc(&midi_device, 0, 0x7B, 0); + return false; + } + // basic + // uint8_t note = (starting_note + SCALE[record->event.key.col + offset])+12*(MATRIX_ROWS - record->event.key.row); + // advanced + // uint8_t note = (starting_note + record->event.key.col + offset)+12*(MATRIX_ROWS - record->event.key.row); + // guitar + uint8_t note = (starting_note + record->event.key.col + offset)+5*(MATRIX_ROWS - record->event.key.row); + // violin + // uint8_t note = (starting_note + record->event.key.col + offset)+7*(MATRIX_ROWS - record->event.key.row); + + if (record->event.pressed) { + // midi_send_noteon(&midi_device, record->event.key.row, starting_note + SCALE[record->event.key.col], 127); + midi_send_noteon(&midi_device, 0, note, 127); + } else { + // midi_send_noteoff(&midi_device, record->event.key.row, starting_note + SCALE[record->event.key.col], 127); + midi_send_noteoff(&midi_device, 0, note, 127); + } + + if (keycode < 0xFF) // ignores all normal keycodes, but lets RAISE, LOWER, etc through + return false; + } + return true; +} \ No newline at end of file diff --git a/quantum/process_keycode/process_midi.h b/quantum/process_keycode/process_midi.h new file mode 100644 index 000000000..acd4fc1b1 --- /dev/null +++ b/quantum/process_keycode/process_midi.h @@ -0,0 +1,207 @@ +#ifndef PROCESS_MIDI_H +#define PROCESS_MIDI_H + +#include "quantum.h" + +bool process_midi(uint16_t keycode, keyrecord_t *record); + +#define MIDI(n) ((n) | 0x6000) +#define MIDI12 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000 + +#define CHNL(note, channel) (note + (channel << 8)) + +#define SCALE (int8_t []){ 0 + (12*0), 2 + (12*0), 4 + (12*0), 5 + (12*0), 7 + (12*0), 9 + (12*0), 11 + (12*0), \ + 0 + (12*1), 2 + (12*1), 4 + (12*1), 5 + (12*1), 7 + (12*1), 9 + (12*1), 11 + (12*1), \ + 0 + (12*2), 2 + (12*2), 4 + (12*2), 5 + (12*2), 7 + (12*2), 9 + (12*2), 11 + (12*2), \ + 0 + (12*3), 2 + (12*3), 4 + (12*3), 5 + (12*3), 7 + (12*3), 9 + (12*3), 11 + (12*3), \ + 0 + (12*4), 2 + (12*4), 4 + (12*4), 5 + (12*4), 7 + (12*4), 9 + (12*4), 11 + (12*4), } + +#define N_CN1 (0x600C + (12 * -1) + 0 ) +#define N_CN1S (0x600C + (12 * -1) + 1 ) +#define N_DN1F (0x600C + (12 * -1) + 1 ) +#define N_DN1 (0x600C + (12 * -1) + 2 ) +#define N_DN1S (0x600C + (12 * -1) + 3 ) +#define N_EN1F (0x600C + (12 * -1) + 3 ) +#define N_EN1 (0x600C + (12 * -1) + 4 ) +#define N_FN1 (0x600C + (12 * -1) + 5 ) +#define N_FN1S (0x600C + (12 * -1) + 6 ) +#define N_GN1F (0x600C + (12 * -1) + 6 ) +#define N_GN1 (0x600C + (12 * -1) + 7 ) +#define N_GN1S (0x600C + (12 * -1) + 8 ) +#define N_AN1F (0x600C + (12 * -1) + 8 ) +#define N_AN1 (0x600C + (12 * -1) + 9 ) +#define N_AN1S (0x600C + (12 * -1) + 10) +#define N_BN1F (0x600C + (12 * -1) + 10) +#define N_BN1 (0x600C + (12 * -1) + 11) +#define N_C0 (0x600C + (12 * 0) + 0 ) +#define N_C0S (0x600C + (12 * 0) + 1 ) +#define N_D0F (0x600C + (12 * 0) + 1 ) +#define N_D0 (0x600C + (12 * 0) + 2 ) +#define N_D0S (0x600C + (12 * 0) + 3 ) +#define N_E0F (0x600C + (12 * 0) + 3 ) +#define N_E0 (0x600C + (12 * 0) + 4 ) +#define N_F0 (0x600C + (12 * 0) + 5 ) +#define N_F0S (0x600C + (12 * 0) + 6 ) +#define N_G0F (0x600C + (12 * 0) + 6 ) +#define N_G0 (0x600C + (12 * 0) + 7 ) +#define N_G0S (0x600C + (12 * 0) + 8 ) +#define N_A0F (0x600C + (12 * 0) + 8 ) +#define N_A0 (0x600C + (12 * 0) + 9 ) +#define N_A0S (0x600C + (12 * 0) + 10) +#define N_B0F (0x600C + (12 * 0) + 10) +#define N_B0 (0x600C + (12 * 0) + 11) +#define N_C1 (0x600C + (12 * 1) + 0 ) +#define N_C1S (0x600C + (12 * 1) + 1 ) +#define N_D1F (0x600C + (12 * 1) + 1 ) +#define N_D1 (0x600C + (12 * 1) + 2 ) +#define N_D1S (0x600C + (12 * 1) + 3 ) +#define N_E1F (0x600C + (12 * 1) + 3 ) +#define N_E1 (0x600C + (12 * 1) + 4 ) +#define N_F1 (0x600C + (12 * 1) + 5 ) +#define N_F1S (0x600C + (12 * 1) + 6 ) +#define N_G1F (0x600C + (12 * 1) + 6 ) +#define N_G1 (0x600C + (12 * 1) + 7 ) +#define N_G1S (0x600C + (12 * 1) + 8 ) +#define N_A1F (0x600C + (12 * 1) + 8 ) +#define N_A1 (0x600C + (12 * 1) + 9 ) +#define N_A1S (0x600C + (12 * 1) + 10) +#define N_B1F (0x600C + (12 * 1) + 10) +#define N_B1 (0x600C + (12 * 1) + 11) +#define N_C2 (0x600C + (12 * 2) + 0 ) +#define N_C2S (0x600C + (12 * 2) + 1 ) +#define N_D2F (0x600C + (12 * 2) + 1 ) +#define N_D2 (0x600C + (12 * 2) + 2 ) +#define N_D2S (0x600C + (12 * 2) + 3 ) +#define N_E2F (0x600C + (12 * 2) + 3 ) +#define N_E2 (0x600C + (12 * 2) + 4 ) +#define N_F2 (0x600C + (12 * 2) + 5 ) +#define N_F2S (0x600C + (12 * 2) + 6 ) +#define N_G2F (0x600C + (12 * 2) + 6 ) +#define N_G2 (0x600C + (12 * 2) + 7 ) +#define N_G2S (0x600C + (12 * 2) + 8 ) +#define N_A2F (0x600C + (12 * 2) + 8 ) +#define N_A2 (0x600C + (12 * 2) + 9 ) +#define N_A2S (0x600C + (12 * 2) + 10) +#define N_B2F (0x600C + (12 * 2) + 10) +#define N_B2 (0x600C + (12 * 2) + 11) +#define N_C3 (0x600C + (12 * 3) + 0 ) +#define N_C3S (0x600C + (12 * 3) + 1 ) +#define N_D3F (0x600C + (12 * 3) + 1 ) +#define N_D3 (0x600C + (12 * 3) + 2 ) +#define N_D3S (0x600C + (12 * 3) + 3 ) +#define N_E3F (0x600C + (12 * 3) + 3 ) +#define N_E3 (0x600C + (12 * 3) + 4 ) +#define N_F3 (0x600C + (12 * 3) + 5 ) +#define N_F3S (0x600C + (12 * 3) + 6 ) +#define N_G3F (0x600C + (12 * 3) + 6 ) +#define N_G3 (0x600C + (12 * 3) + 7 ) +#define N_G3S (0x600C + (12 * 3) + 8 ) +#define N_A3F (0x600C + (12 * 3) + 8 ) +#define N_A3 (0x600C + (12 * 3) + 9 ) +#define N_A3S (0x600C + (12 * 3) + 10) +#define N_B3F (0x600C + (12 * 3) + 10) +#define N_B3 (0x600C + (12 * 3) + 11) +#define N_C4 (0x600C + (12 * 4) + 0 ) +#define N_C4S (0x600C + (12 * 4) + 1 ) +#define N_D4F (0x600C + (12 * 4) + 1 ) +#define N_D4 (0x600C + (12 * 4) + 2 ) +#define N_D4S (0x600C + (12 * 4) + 3 ) +#define N_E4F (0x600C + (12 * 4) + 3 ) +#define N_E4 (0x600C + (12 * 4) + 4 ) +#define N_F4 (0x600C + (12 * 4) + 5 ) +#define N_F4S (0x600C + (12 * 4) + 6 ) +#define N_G4F (0x600C + (12 * 4) + 6 ) +#define N_G4 (0x600C + (12 * 4) + 7 ) +#define N_G4S (0x600C + (12 * 4) + 8 ) +#define N_A4F (0x600C + (12 * 4) + 8 ) +#define N_A4 (0x600C + (12 * 4) + 9 ) +#define N_A4S (0x600C + (12 * 4) + 10) +#define N_B4F (0x600C + (12 * 4) + 10) +#define N_B4 (0x600C + (12 * 4) + 11) +#define N_C5 (0x600C + (12 * 5) + 0 ) +#define N_C5S (0x600C + (12 * 5) + 1 ) +#define N_D5F (0x600C + (12 * 5) + 1 ) +#define N_D5 (0x600C + (12 * 5) + 2 ) +#define N_D5S (0x600C + (12 * 5) + 3 ) +#define N_E5F (0x600C + (12 * 5) + 3 ) +#define N_E5 (0x600C + (12 * 5) + 4 ) +#define N_F5 (0x600C + (12 * 5) + 5 ) +#define N_F5S (0x600C + (12 * 5) + 6 ) +#define N_G5F (0x600C + (12 * 5) + 6 ) +#define N_G5 (0x600C + (12 * 5) + 7 ) +#define N_G5S (0x600C + (12 * 5) + 8 ) +#define N_A5F (0x600C + (12 * 5) + 8 ) +#define N_A5 (0x600C + (12 * 5) + 9 ) +#define N_A5S (0x600C + (12 * 5) + 10) +#define N_B5F (0x600C + (12 * 5) + 10) +#define N_B5 (0x600C + (12 * 5) + 11) +#define N_C6 (0x600C + (12 * 6) + 0 ) +#define N_C6S (0x600C + (12 * 6) + 1 ) +#define N_D6F (0x600C + (12 * 6) + 1 ) +#define N_D6 (0x600C + (12 * 6) + 2 ) +#define N_D6S (0x600C + (12 * 6) + 3 ) +#define N_E6F (0x600C + (12 * 6) + 3 ) +#define N_E6 (0x600C + (12 * 6) + 4 ) +#define N_F6 (0x600C + (12 * 6) + 5 ) +#define N_F6S (0x600C + (12 * 6) + 6 ) +#define N_G6F (0x600C + (12 * 6) + 6 ) +#define N_G6 (0x600C + (12 * 6) + 7 ) +#define N_G6S (0x600C + (12 * 6) + 8 ) +#define N_A6F (0x600C + (12 * 6) + 8 ) +#define N_A6 (0x600C + (12 * 6) + 9 ) +#define N_A6S (0x600C + (12 * 6) + 10) +#define N_B6F (0x600C + (12 * 6) + 10) +#define N_B6 (0x600C + (12 * 6) + 11) +#define N_C7 (0x600C + (12 * 7) + 0 ) +#define N_C7S (0x600C + (12 * 7) + 1 ) +#define N_D7F (0x600C + (12 * 7) + 1 ) +#define N_D7 (0x600C + (12 * 7) + 2 ) +#define N_D7S (0x600C + (12 * 7) + 3 ) +#define N_E7F (0x600C + (12 * 7) + 3 ) +#define N_E7 (0x600C + (12 * 7) + 4 ) +#define N_F7 (0x600C + (12 * 7) + 5 ) +#define N_F7S (0x600C + (12 * 7) + 6 ) +#define N_G7F (0x600C + (12 * 7) + 6 ) +#define N_G7 (0x600C + (12 * 7) + 7 ) +#define N_G7S (0x600C + (12 * 7) + 8 ) +#define N_A7F (0x600C + (12 * 7) + 8 ) +#define N_A7 (0x600C + (12 * 7) + 9 ) +#define N_A7S (0x600C + (12 * 7) + 10) +#define N_B7F (0x600C + (12 * 7) + 10) +#define N_B7 (0x600C + (12 * 7) + 11) +#define N_C8 (0x600C + (12 * 8) + 0 ) +#define N_C8S (0x600C + (12 * 8) + 1 ) +#define N_D8F (0x600C + (12 * 8) + 1 ) +#define N_D8 (0x600C + (12 * 8) + 2 ) +#define N_D8S (0x600C + (12 * 8) + 3 ) +#define N_E8F (0x600C + (12 * 8) + 3 ) +#define N_E8 (0x600C + (12 * 8) + 4 ) +#define N_F8 (0x600C + (12 * 8) + 5 ) +#define N_F8S (0x600C + (12 * 8) + 6 ) +#define N_G8F (0x600C + (12 * 8) + 6 ) +#define N_G8 (0x600C + (12 * 8) + 7 ) +#define N_G8S (0x600C + (12 * 8) + 8 ) +#define N_A8F (0x600C + (12 * 8) + 8 ) +#define N_A8 (0x600C + (12 * 8) + 9 ) +#define N_A8S (0x600C + (12 * 8) + 10) +#define N_B8F (0x600C + (12 * 8) + 10) +#define N_B8 (0x600C + (12 * 8) + 11) +#define N_C8 (0x600C + (12 * 8) + 0 ) +#define N_C8S (0x600C + (12 * 8) + 1 ) +#define N_D8F (0x600C + (12 * 8) + 1 ) +#define N_D8 (0x600C + (12 * 8) + 2 ) +#define N_D8S (0x600C + (12 * 8) + 3 ) +#define N_E8F (0x600C + (12 * 8) + 3 ) +#define N_E8 (0x600C + (12 * 8) + 4 ) +#define N_F8 (0x600C + (12 * 8) + 5 ) +#define N_F8S (0x600C + (12 * 8) + 6 ) +#define N_G8F (0x600C + (12 * 8) + 6 ) +#define N_G8 (0x600C + (12 * 8) + 7 ) +#define N_G8S (0x600C + (12 * 8) + 8 ) +#define N_A8F (0x600C + (12 * 8) + 8 ) +#define N_A8 (0x600C + (12 * 8) + 9 ) +#define N_A8S (0x600C + (12 * 8) + 10) +#define N_B8F (0x600C + (12 * 8) + 10) +#define N_B8 (0x600C + (12 * 8) + 11) + +#endif \ No newline at end of file diff --git a/quantum/process_keycode/process_music.c b/quantum/process_keycode/process_music.c new file mode 100644 index 000000000..c8f3ddb90 --- /dev/null +++ b/quantum/process_keycode/process_music.c @@ -0,0 +1,171 @@ +#include "process_music.h" + +bool music_activated = false; +uint8_t starting_note = 0x0C; +int offset = 7; + +// music sequencer +static bool music_sequence_recording = false; +static bool music_sequence_playing = false; +static float music_sequence[16] = {0}; +static uint8_t music_sequence_count = 0; +static uint8_t music_sequence_position = 0; + +static uint16_t music_sequence_timer = 0; +static uint16_t music_sequence_interval = 100; + +bool process_music(uint16_t keycode, keyrecord_t *record) { + + if (keycode == AU_ON && record->event.pressed) { + audio_on(); + return false; + } + + if (keycode == AU_OFF && record->event.pressed) { + audio_off(); + return false; + } + + if (keycode == AU_TOG && record->event.pressed) { + if (is_audio_on()) + { + audio_off(); + } + else + { + audio_on(); + } + return false; + } + + if (keycode == MU_ON && record->event.pressed) { + music_on(); + return false; + } + + if (keycode == MU_OFF && record->event.pressed) { + music_off(); + return false; + } + + if (keycode == MU_TOG && record->event.pressed) { + if (music_activated) + { + music_off(); + } + else + { + music_on(); + } + return false; + } + + if (keycode == MUV_IN && record->event.pressed) { + voice_iterate(); + music_scale_user(); + return false; + } + + if (keycode == MUV_DE && record->event.pressed) { + voice_deiterate(); + music_scale_user(); + return false; + } + + if (music_activated) { + + if (keycode == KC_LCTL && record->event.pressed) { // Start recording + stop_all_notes(); + music_sequence_recording = true; + music_sequence_playing = false; + music_sequence_count = 0; + return false; + } + + if (keycode == KC_LALT && record->event.pressed) { // Stop recording/playing + stop_all_notes(); + music_sequence_recording = false; + music_sequence_playing = false; + return false; + } + + if (keycode == KC_LGUI && record->event.pressed) { // Start playing + stop_all_notes(); + music_sequence_recording = false; + music_sequence_playing = true; + music_sequence_position = 0; + music_sequence_timer = 0; + return false; + } + + if (keycode == KC_UP) { + if (record->event.pressed) + music_sequence_interval-=10; + return false; + } + + if (keycode == KC_DOWN) { + if (record->event.pressed) + music_sequence_interval+=10; + return false; + } + + float freq = ((float)220.0)*pow(2.0, -5.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)); + if (record->event.pressed) { + play_note(freq, 0xF); + if (music_sequence_recording) { + music_sequence[music_sequence_count] = freq; + music_sequence_count++; + } + } else { + stop_note(freq); + } + + if (keycode < 0xFF) // ignores all normal keycodes, but lets RAISE, LOWER, etc through + return false; + } + return true; +} + +bool is_music_on(void) { + return (music_activated != 0); +} + +void music_toggle(void) { + if (!music_activated) { + music_on(); + } else { + music_off(); + } +} + +void music_on(void) { + music_activated = 1; + music_on_user(); +} + +void music_off(void) { + music_activated = 0; + stop_all_notes(); +} + + +__attribute__ ((weak)) +void music_on_user() {} + +__attribute__ ((weak)) +void audio_on_user() {} + +__attribute__ ((weak)) +void music_scale_user() {} + +void matrix_scan_music(void) { + if (music_sequence_playing) { + if ((music_sequence_timer == 0) || (timer_elapsed(music_sequence_timer) > music_sequence_interval)) { + music_sequence_timer = timer_read(); + stop_note(music_sequence[(music_sequence_position - 1 < 0)?(music_sequence_position - 1 + music_sequence_count):(music_sequence_position - 1)]); + play_note(music_sequence[music_sequence_position], 0xF); + music_sequence_position = (music_sequence_position + 1) % music_sequence_count; + } + } +} diff --git a/quantum/process_keycode/process_music.h b/quantum/process_keycode/process_music.h new file mode 100644 index 000000000..318b3e387 --- /dev/null +++ b/quantum/process_keycode/process_music.h @@ -0,0 +1,27 @@ +#ifndef PROCESS_MUSIC_H +#define PROCESS_MUSIC_H + +#include "quantum.h" + +bool process_music(uint16_t keycode, keyrecord_t *record); + +bool is_music_on(void); +void music_toggle(void); +void music_on(void); +void music_off(void); + +void audio_on_user(void); +void music_on_user(void); +void music_scale_user(void); + +void matrix_scan_music(void); + +#ifndef SCALE +#define SCALE (int8_t []){ 0 + (12*0), 2 + (12*0), 4 + (12*0), 5 + (12*0), 7 + (12*0), 9 + (12*0), 11 + (12*0), \ + 0 + (12*1), 2 + (12*1), 4 + (12*1), 5 + (12*1), 7 + (12*1), 9 + (12*1), 11 + (12*1), \ + 0 + (12*2), 2 + (12*2), 4 + (12*2), 5 + (12*2), 7 + (12*2), 9 + (12*2), 11 + (12*2), \ + 0 + (12*3), 2 + (12*3), 4 + (12*3), 5 + (12*3), 7 + (12*3), 9 + (12*3), 11 + (12*3), \ + 0 + (12*4), 2 + (12*4), 4 + (12*4), 5 + (12*4), 7 + (12*4), 9 + (12*4), 11 + (12*4), } +#endif + +#endif \ No newline at end of file diff --git a/quantum/process_keycode/process_tap_dance.c b/quantum/process_keycode/process_tap_dance.c new file mode 100644 index 000000000..9b172e1b6 --- /dev/null +++ b/quantum/process_keycode/process_tap_dance.c @@ -0,0 +1,90 @@ +#include "quantum.h" + +static qk_tap_dance_state_t qk_tap_dance_state; + +static void _process_tap_dance_action_pair (qk_tap_dance_state_t *state, + uint16_t kc1, uint16_t kc2) { + uint16_t kc; + + if (state->count == 0) + return; + + kc = (state->count == 1) ? kc1 : kc2; + + register_code (kc); + unregister_code (kc); + + if (state->count >= 2) { + reset_tap_dance (state); + } +} + +static void _process_tap_dance_action_fn (qk_tap_dance_state_t *state, + qk_tap_dance_user_fn_t fn) +{ + fn(state); +} + +void process_tap_dance_action (uint16_t keycode) +{ + uint16_t idx = keycode - QK_TAP_DANCE; + qk_tap_dance_action_t action; + + action = tap_dance_actions[idx]; + + switch (action.type) { + case QK_TAP_DANCE_TYPE_PAIR: + _process_tap_dance_action_pair (&qk_tap_dance_state, + action.pair.kc1, action.pair.kc2); + break; + case QK_TAP_DANCE_TYPE_FN: + _process_tap_dance_action_fn (&qk_tap_dance_state, action.fn); + break; + + default: + break; + } +} + +bool process_tap_dance(uint16_t keycode, keyrecord_t *record) { + bool r = true; + + switch(keycode) { + case QK_TAP_DANCE ... QK_TAP_DANCE_MAX: + if (qk_tap_dance_state.keycode && qk_tap_dance_state.keycode != keycode) { + process_tap_dance_action (qk_tap_dance_state.keycode); + } else { + r = false; + } + + if (record->event.pressed) { + qk_tap_dance_state.keycode = keycode; + qk_tap_dance_state.timer = timer_read (); + qk_tap_dance_state.count++; + } + break; + + default: + if (qk_tap_dance_state.keycode) { + process_tap_dance_action (qk_tap_dance_state.keycode); + + reset_tap_dance (&qk_tap_dance_state); + } + break; + } + + return r; +} + +void matrix_scan_tap_dance () { + if (qk_tap_dance_state.keycode && timer_elapsed (qk_tap_dance_state.timer) > TAPPING_TERM) { + process_tap_dance_action (qk_tap_dance_state.keycode); + + reset_tap_dance (&qk_tap_dance_state); + } +} + +void reset_tap_dance (qk_tap_dance_state_t *state) { + state->keycode = 0; + state->count = 0; +} diff --git a/quantum/process_keycode/process_tap_dance.h b/quantum/process_keycode/process_tap_dance.h new file mode 100644 index 000000000..b9d7c7fcf --- /dev/null +++ b/quantum/process_keycode/process_tap_dance.h @@ -0,0 +1,62 @@ +#ifndef PROCESS_TAP_DANCE_H +#define PROCESS_TAP_DANCE_H + +#ifdef TAP_DANCE_ENABLE + +#include +#include + +typedef struct +{ + uint8_t count; + uint16_t keycode; + uint16_t timer; +} qk_tap_dance_state_t; + +#define TD(n) (QK_TAP_DANCE + n) + +typedef enum +{ + QK_TAP_DANCE_TYPE_PAIR, + QK_TAP_DANCE_TYPE_FN, +} qk_tap_dance_type_t; + +typedef void (*qk_tap_dance_user_fn_t) (qk_tap_dance_state_t *state); + +typedef struct +{ + qk_tap_dance_type_t type; + union { + struct { + uint16_t kc1; + uint16_t kc2; + } pair; + qk_tap_dance_user_fn_t fn; + }; +} qk_tap_dance_action_t; + +#define ACTION_TAP_DANCE_DOUBLE(kc1, kc2) { \ + .type = QK_TAP_DANCE_TYPE_PAIR, \ + .pair = { kc1, kc2 } \ + } + +#define ACTION_TAP_DANCE_FN(user_fn) { \ + .type = QK_TAP_DANCE_TYPE_FN, \ + .fn = user_fn \ + } + +extern const qk_tap_dance_action_t tap_dance_actions[]; + +/* To be used internally */ + +bool process_tap_dance(uint16_t keycode, keyrecord_t *record); +void matrix_scan_tap_dance (void); +void reset_tap_dance (qk_tap_dance_state_t *state); + +#else + +#define TD(n) KC_NO + +#endif + +#endif diff --git a/quantum/process_keycode/process_unicode.c b/quantum/process_keycode/process_unicode.c new file mode 100644 index 000000000..ad5d7f86b --- /dev/null +++ b/quantum/process_keycode/process_unicode.c @@ -0,0 +1,57 @@ +#include "process_unicode.h" + +static uint8_t input_mode; + +uint16_t hex_to_keycode(uint8_t hex) +{ + if (hex == 0x0) { + return KC_0; + } else if (hex < 0xA) { + return KC_1 + (hex - 0x1); + } else { + return KC_A + (hex - 0xA); + } +} + +void set_unicode_mode(uint8_t os_target) +{ + input_mode = os_target; +} + +bool process_unicode(uint16_t keycode, keyrecord_t *record) { + if (keycode > QK_UNICODE && record->event.pressed) { + uint16_t unicode = keycode & 0x7FFF; + switch(input_mode) { + case UC_OSX: + register_code(KC_LALT); + break; + case UC_LNX: + register_code(KC_LCTL); + register_code(KC_LSFT); + register_code(KC_U); + unregister_code(KC_U); + break; + case UC_WIN: + register_code(KC_LALT); + register_code(KC_PPLS); + unregister_code(KC_PPLS); + break; + } + for(int i = 3; i >= 0; i--) { + uint8_t digit = ((unicode >> (i*4)) & 0xF); + register_code(hex_to_keycode(digit)); + unregister_code(hex_to_keycode(digit)); + } + switch(input_mode) { + case UC_OSX: + case UC_WIN: + unregister_code(KC_LALT); + break; + case UC_LNX: + unregister_code(KC_LCTL); + unregister_code(KC_LSFT); + break; + } + } + return true; +} \ No newline at end of file diff --git a/quantum/process_keycode/process_unicode.h b/quantum/process_keycode/process_unicode.h new file mode 100644 index 000000000..ca17f8f66 --- /dev/null +++ b/quantum/process_keycode/process_unicode.h @@ -0,0 +1,122 @@ +#ifndef PROCESS_UNICODE_H +#define PROCESS_UNICODE_H + +#include "quantum.h" + +#define UC_OSX 0 +#define UC_LNX 1 +#define UC_WIN 2 +#define UC_BSD 3 + +void set_unicode_input_mode(uint8_t os_target); + +bool process_unicode(uint16_t keycode, keyrecord_t *record); + +#define UC_BSPC UC(0x0008) + +#define UC_SPC UC(0x0020) + +#define UC_EXLM UC(0x0021) +#define UC_DQUT UC(0x0022) +#define UC_HASH UC(0x0023) +#define UC_DLR UC(0x0024) +#define UC_PERC UC(0x0025) +#define UC_AMPR UC(0x0026) +#define UC_QUOT UC(0x0027) +#define UC_LPRN UC(0x0028) +#define UC_RPRN UC(0x0029) +#define UC_ASTR UC(0x002A) +#define UC_PLUS UC(0x002B) +#define UC_COMM UC(0x002C) +#define UC_DASH UC(0x002D) +#define UC_DOT UC(0x002E) +#define UC_SLSH UC(0x002F) + +#define UC_0 UC(0x0030) +#define UC_1 UC(0x0031) +#define UC_2 UC(0x0032) +#define UC_3 UC(0x0033) +#define UC_4 UC(0x0034) +#define UC_5 UC(0x0035) +#define UC_6 UC(0x0036) +#define UC_7 UC(0x0037) +#define UC_8 UC(0x0038) +#define UC_9 UC(0x0039) + +#define UC_COLN UC(0x003A) +#define UC_SCLN UC(0x003B) +#define UC_LT UC(0x003C) +#define UC_EQL UC(0x003D) +#define UC_GT UC(0x003E) +#define UC_QUES UC(0x003F) +#define UC_AT UC(0x0040) + +#define UC_A UC(0x0041) +#define UC_B UC(0x0042) +#define UC_C UC(0x0043) +#define UC_D UC(0x0044) +#define UC_E UC(0x0045) +#define UC_F UC(0x0046) +#define UC_G UC(0x0047) +#define UC_H UC(0x0048) +#define UC_I UC(0x0049) +#define UC_J UC(0x004A) +#define UC_K UC(0x004B) +#define UC_L UC(0x004C) +#define UC_M UC(0x004D) +#define UC_N UC(0x004E) +#define UC_O UC(0x004F) +#define UC_P UC(0x0050) +#define UC_Q UC(0x0051) +#define UC_R UC(0x0052) +#define UC_S UC(0x0053) +#define UC_T UC(0x0054) +#define UC_U UC(0x0055) +#define UC_V UC(0x0056) +#define UC_W UC(0x0057) +#define UC_X UC(0x0058) +#define UC_Y UC(0x0059) +#define UC_Z UC(0x005A) + +#define UC_LBRC UC(0x005B) +#define UC_BSLS UC(0x005C) +#define UC_RBRC UC(0x005D) +#define UC_CIRM UC(0x005E) +#define UC_UNDR UC(0x005F) + +#define UC_GRV UC(0x0060) + +#define UC_a UC(0x0061) +#define UC_b UC(0x0062) +#define UC_c UC(0x0063) +#define UC_d UC(0x0064) +#define UC_e UC(0x0065) +#define UC_f UC(0x0066) +#define UC_g UC(0x0067) +#define UC_h UC(0x0068) +#define UC_i UC(0x0069) +#define UC_j UC(0x006A) +#define UC_k UC(0x006B) +#define UC_l UC(0x006C) +#define UC_m UC(0x006D) +#define UC_n UC(0x006E) +#define UC_o UC(0x006F) +#define UC_p UC(0x0070) +#define UC_q UC(0x0071) +#define UC_r UC(0x0072) +#define UC_s UC(0x0073) +#define UC_t UC(0x0074) +#define UC_u UC(0x0075) +#define UC_v UC(0x0076) +#define UC_w UC(0x0077) +#define UC_x UC(0x0078) +#define UC_y UC(0x0079) +#define UC_z UC(0x007A) + +#define UC_LCBR UC(0x007B) +#define UC_PIPE UC(0x007C) +#define UC_RCBR UC(0x007D) +#define UC_TILD UC(0x007E) +#define UC_DEL UC(0x007F) + +#endif \ No newline at end of file diff --git a/quantum/quantum.c b/quantum/quantum.c index 9c0f9691f..c0580e0aa 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -15,54 +15,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } -__attribute__ ((weak)) -void leader_start(void) {} - -__attribute__ ((weak)) -void leader_end(void) {} - -uint8_t starting_note = 0x0C; -int offset = 7; - - -#ifdef AUDIO_ENABLE - bool music_activated = false; - - // music sequencer - static bool music_sequence_recording = false; - static bool music_sequence_playing = false; - static float music_sequence[16] = {0}; - static uint8_t music_sequence_count = 0; - static uint8_t music_sequence_position = 0; - - static uint16_t music_sequence_timer = 0; - static uint16_t music_sequence_interval = 100; - -#endif - -#ifdef MIDI_ENABLE - bool midi_activated = false; -#endif - -// Leader key stuff -bool leading = false; -uint16_t leader_time = 0; - -uint16_t leader_sequence[5] = {0, 0, 0, 0, 0}; -uint8_t leader_sequence_size = 0; - -// Chording stuff -#define CHORDING_MAX 4 -bool chording = false; - -uint8_t chord_keys[CHORDING_MAX] = {0}; -uint8_t chord_key_count = 0; -uint8_t chord_key_down = 0; - -#ifdef UNICODE_ENABLE - static uint8_t input_mode; -#endif - // Shift / paren setup #ifndef LSPO_KEY @@ -74,48 +26,6 @@ uint8_t chord_key_down = 0; static bool shift_interrupted[2] = {0, 0}; -bool keys_chord(uint8_t keys[]) { - uint8_t keys_size = sizeof(keys)/sizeof(keys[0]); - bool pass = true; - uint8_t in = 0; - for (uint8_t i = 0; i < chord_key_count; i++) { - bool found = false; - for (uint8_t j = 0; j < keys_size; j++) { - if (chord_keys[i] == (keys[j] & 0xFF)) { - in++; // detects key in chord - found = true; - break; - } - } - if (found) - continue; - if (chord_keys[i] != 0) { - pass = false; // makes sure rest are blank - } - } - return (pass && (in == keys_size)); -} - -#ifdef UNICODE_ENABLE - -uint16_t hex_to_keycode(uint8_t hex) -{ - if (hex == 0x0) { - return KC_0; - } else if (hex < 0xA) { - return KC_1 + (hex - 0x1); - } else { - return KC_A + (hex - 0xA); - } -} - -void set_unicode_mode(uint8_t os_target) -{ - input_mode = os_target; -} - -#endif - bool process_record_quantum(keyrecord_t *record) { /* This gets the keycode from the key pressed */ @@ -136,9 +46,6 @@ bool process_record_quantum(keyrecord_t *record) { keycode = keymap_key_to_keycode(layer_switch_get_layer(key), key); #endif - if (!process_record_kb(keycode, record)) - return false; - // This is how you use actions here // if (keycode == KC_LEAD) { // action_t action; @@ -147,278 +54,30 @@ bool process_record_quantum(keyrecord_t *record) { // return false; // } + if (!( + process_record_kb(keycode, record) && #ifdef MIDI_ENABLE - if (keycode == MI_ON && record->event.pressed) { - midi_activated = true; - music_scale_user(); - return false; - } - - if (keycode == MI_OFF && record->event.pressed) { - midi_activated = false; - midi_send_cc(&midi_device, 0, 0x7B, 0); - return false; - } - - if (midi_activated) { - if (record->event.key.col == (MATRIX_COLS - 1) && record->event.key.row == (MATRIX_ROWS - 1)) { - if (record->event.pressed) { - starting_note++; // Change key - midi_send_cc(&midi_device, 0, 0x7B, 0); - } - return false; - } - if (record->event.key.col == (MATRIX_COLS - 2) && record->event.key.row == (MATRIX_ROWS - 1)) { - if (record->event.pressed) { - starting_note--; // Change key - midi_send_cc(&midi_device, 0, 0x7B, 0); - } - return false; - } - if (record->event.key.col == (MATRIX_COLS - 3) && record->event.key.row == (MATRIX_ROWS - 1) && record->event.pressed) { - offset++; // Change scale - midi_send_cc(&midi_device, 0, 0x7B, 0); - return false; - } - if (record->event.key.col == (MATRIX_COLS - 4) && record->event.key.row == (MATRIX_ROWS - 1) && record->event.pressed) { - offset--; // Change scale - midi_send_cc(&midi_device, 0, 0x7B, 0); - return false; - } - // basic - // uint8_t note = (starting_note + SCALE[record->event.key.col + offset])+12*(MATRIX_ROWS - record->event.key.row); - // advanced - // uint8_t note = (starting_note + record->event.key.col + offset)+12*(MATRIX_ROWS - record->event.key.row); - // guitar - uint8_t note = (starting_note + record->event.key.col + offset)+5*(MATRIX_ROWS - record->event.key.row); - // violin - // uint8_t note = (starting_note + record->event.key.col + offset)+7*(MATRIX_ROWS - record->event.key.row); - - if (record->event.pressed) { - // midi_send_noteon(&midi_device, record->event.key.row, starting_note + SCALE[record->event.key.col], 127); - midi_send_noteon(&midi_device, 0, note, 127); - } else { - // midi_send_noteoff(&midi_device, record->event.key.row, starting_note + SCALE[record->event.key.col], 127); - midi_send_noteoff(&midi_device, 0, note, 127); - } - - if (keycode < 0xFF) // ignores all normal keycodes, but lets RAISE, LOWER, etc through - return false; - } + process_midi(keycode, record) && #endif - #ifdef AUDIO_ENABLE - if (keycode == AU_ON && record->event.pressed) { - audio_on(); - return false; - } - - if (keycode == AU_OFF && record->event.pressed) { - audio_off(); - return false; - } - - if (keycode == AU_TOG && record->event.pressed) { - if (is_audio_on()) - { - audio_off(); - } - else - { - audio_on(); - } - return false; - } - - if (keycode == MU_ON && record->event.pressed) { - music_on(); - return false; - } - - if (keycode == MU_OFF && record->event.pressed) { - music_off(); - return false; - } - - if (keycode == MU_TOG && record->event.pressed) { - if (music_activated) - { - music_off(); - } - else - { - music_on(); - } - return false; - } - - if (keycode == MUV_IN && record->event.pressed) { - voice_iterate(); - music_scale_user(); - return false; - } - - if (keycode == MUV_DE && record->event.pressed) { - voice_deiterate(); - music_scale_user(); - return false; - } - - if (music_activated) { - - if (keycode == KC_LCTL && record->event.pressed) { // Start recording - stop_all_notes(); - music_sequence_recording = true; - music_sequence_playing = false; - music_sequence_count = 0; - return false; - } - - if (keycode == KC_LALT && record->event.pressed) { // Stop recording/playing - stop_all_notes(); - music_sequence_recording = false; - music_sequence_playing = false; - return false; - } - - if (keycode == KC_LGUI && record->event.pressed) { // Start playing - stop_all_notes(); - music_sequence_recording = false; - music_sequence_playing = true; - music_sequence_position = 0; - music_sequence_timer = 0; - return false; - } - - if (keycode == KC_UP) { - if (record->event.pressed) - music_sequence_interval-=10; - return false; - } - - if (keycode == KC_DOWN) { - if (record->event.pressed) - music_sequence_interval+=10; - return false; - } - - float freq = ((float)220.0)*pow(2.0, -5.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)); - if (record->event.pressed) { - play_note(freq, 0xF); - if (music_sequence_recording) { - music_sequence[music_sequence_count] = freq; - music_sequence_count++; - } - } else { - stop_note(freq); - } - - if (keycode < 0xFF) // ignores all normal keycodes, but lets RAISE, LOWER, etc through - return false; - } + process_music(keycode, record) && #endif - -#ifndef DISABLE_LEADER - // Leader key set-up - if (record->event.pressed) { - if (!leading && keycode == KC_LEAD) { - leader_start(); - leading = true; - leader_time = timer_read(); - leader_sequence_size = 0; - leader_sequence[0] = 0; - leader_sequence[1] = 0; - leader_sequence[2] = 0; - leader_sequence[3] = 0; - leader_sequence[4] = 0; - return false; - } - if (leading && timer_elapsed(leader_time) < LEADER_TIMEOUT) { - leader_sequence[leader_sequence_size] = keycode; - leader_sequence_size++; - return false; - } - } -#endif - -#define DISABLE_CHORDING -#ifndef DISABLE_CHORDING - - if (keycode >= QK_CHORDING && keycode <= QK_CHORDING_MAX) { - if (record->event.pressed) { - if (!chording) { - chording = true; - for (uint8_t i = 0; i < CHORDING_MAX; i++) - chord_keys[i] = 0; - chord_key_count = 0; - chord_key_down = 0; - } - chord_keys[chord_key_count] = (keycode & 0xFF); - chord_key_count++; - chord_key_down++; - return false; - } else { - if (chording) { - chord_key_down--; - if (chord_key_down == 0) { - chording = false; - // Chord Dictionary - if (keys_chord((uint8_t[]){KC_ENTER, KC_SPACE})) { - register_code(KC_A); - unregister_code(KC_A); - return false; - } - for (uint8_t i = 0; i < chord_key_count; i++) { - register_code(chord_keys[i]); - unregister_code(chord_keys[i]); - return false; - } - } - } - } - } - -#endif - -#ifdef UNICODE_ENABLE - - if (keycode > QK_UNICODE && record->event.pressed) { - uint16_t unicode = keycode & 0x7FFF; - switch(input_mode) { - case UC_OSX: - register_code(KC_LALT); - break; - case UC_LNX: - register_code(KC_LCTL); - register_code(KC_LSFT); - register_code(KC_U); - unregister_code(KC_U); - break; - case UC_WIN: - register_code(KC_LALT); - register_code(KC_PPLS); - unregister_code(KC_PPLS); - break; - } - for(int i = 3; i >= 0; i--) { - uint8_t digit = ((unicode >> (i*4)) & 0xF); - register_code(hex_to_keycode(digit)); - unregister_code(hex_to_keycode(digit)); - } - switch(input_mode) { - case UC_OSX: - case UC_WIN: - unregister_code(KC_LALT); - break; - case UC_LNX: - unregister_code(KC_LCTL); - unregister_code(KC_LSFT); - break; - } + #ifdef TAP_DANCE_ENABLE + process_tap_dance(keycode, record) && + #endif + #ifndef DISABLE_LEADER + process_leader(keycode, record) && + #endif + #ifndef DISABLE_CHORDING + process_chording(keycode, record) && + #endif + #ifdef UNICODE_ENABLE + process_unicode(keycode, record) && + #endif + true)) { + return false; } -#endif - // Shift / paren setup switch(keycode) { @@ -657,46 +316,15 @@ void matrix_init_quantum() { void matrix_scan_quantum() { #ifdef AUDIO_ENABLE - if (music_sequence_playing) { - if ((music_sequence_timer == 0) || (timer_elapsed(music_sequence_timer) > music_sequence_interval)) { - music_sequence_timer = timer_read(); - stop_note(music_sequence[(music_sequence_position - 1 < 0)?(music_sequence_position - 1 + music_sequence_count):(music_sequence_position - 1)]); - play_note(music_sequence[music_sequence_position], 0xF); - music_sequence_position = (music_sequence_position + 1) % music_sequence_count; - } - } - + matrix_scan_music(); #endif + #ifdef TAP_DANCE_ENABLE + matrix_scan_tap_dance(); + #endif matrix_scan_kb(); } -#ifdef AUDIO_ENABLE - bool is_music_on(void) { - return (music_activated != 0); - } - - void music_toggle(void) { - if (!music_activated) { - music_on(); - } else { - music_off(); - } - } - - void music_on(void) { - music_activated = 1; - music_on_user(); - } - - void music_off(void) { - music_activated = 0; - stop_all_notes(); - } - -#endif - - #if defined(BACKLIGHT_ENABLE) && defined(BACKLIGHT_PIN) static const uint8_t backlight_pin = BACKLIGHT_PIN; @@ -1048,13 +676,4 @@ void startup_user() {} __attribute__ ((weak)) void shutdown_user() {} -__attribute__ ((weak)) -void music_on_user() {} - -__attribute__ ((weak)) -void audio_on_user() {} - -__attribute__ ((weak)) -void music_scale_user() {} - //------------------------------------------------------------------------------ diff --git a/quantum/quantum.h b/quantum/quantum.h index 7795294d5..ad180c71f 100644 --- a/quantum/quantum.h +++ b/quantum/quantum.h @@ -10,15 +10,6 @@ #ifdef RGBLIGHT_ENABLE #include "rgblight.h" #endif -#ifdef AUDIO_ENABLE - #include "audio.h" -#endif -#ifdef MIDI_ENABLE - #include -#endif -#ifdef UNICODE_ENABLE - #include "unicode.h" -#endif #include "action_layer.h" #include "eeconfig.h" @@ -32,42 +23,38 @@ #include "led.h" #include "action_util.h" + extern uint32_t default_layer_state; #ifndef NO_ACTION_LAYER extern uint32_t layer_state; #endif +#ifdef MIDI_ENABLE + #include + #include "process_midi.h" +#endif + #ifdef AUDIO_ENABLE - bool music_activated; + #include "audio.h" + #include "process_music.h" #endif -#ifdef UNICODE_ENABLE - #define UC_OSX 0 - #define UC_LNX 1 - #define UC_WIN 2 - #define UC_BSD 3 +#ifndef DISABLE_LEADER + #include "process_leader.h" +#endif - void set_unicode_input_mode(uint8_t os_target); +#define DISABLE_CHORDING +#ifndef DISABLE_CHORDING + #include "process_chording.h" #endif -#ifndef DISABLE_LEADER - void leader_start(void); - void leader_end(void); - - #ifndef LEADER_TIMEOUT - #define LEADER_TIMEOUT 200 - #endif - #define SEQ_ONE_KEY(key) if (leader_sequence[0] == (key) && leader_sequence[1] == 0 && leader_sequence[2] == 0 && leader_sequence[3] == 0 && leader_sequence[4] == 0) - #define SEQ_TWO_KEYS(key1, key2) if (leader_sequence[0] == (key1) && leader_sequence[1] == (key2) && leader_sequence[2] == 0 && leader_sequence[3] == 0 && leader_sequence[4] == 0) - #define SEQ_THREE_KEYS(key1, key2, key3) if (leader_sequence[0] == (key1) && leader_sequence[1] == (key2) && leader_sequence[2] == (key3) && leader_sequence[3] == 0 && leader_sequence[4] == 0) - #define SEQ_FOUR_KEYS(key1, key2, key3, key4) if (leader_sequence[0] == (key1) && leader_sequence[1] == (key2) && leader_sequence[2] == (key3) && leader_sequence[3] == (key4) && leader_sequence[4] == 0) - #define SEQ_FIVE_KEYS(key1, key2, key3, key4, key5) if (leader_sequence[0] == (key1) && leader_sequence[1] == (key2) && leader_sequence[2] == (key3) && leader_sequence[3] == (key4) && leader_sequence[4] == (key5)) - - #define LEADER_EXTERNS() extern bool leading; extern uint16_t leader_time; extern uint16_t leader_sequence[5]; extern uint8_t leader_sequence_size - #define LEADER_DICTIONARY() if (leading && timer_elapsed(leader_time) > LEADER_TIMEOUT) +#ifdef UNICODE_ENABLE + #include "process_unicode.h" #endif +#include "process_tap_dance.h" + #define SEND_STRING(str) send_string(PSTR(str)) void send_string(const char *str); @@ -84,16 +71,8 @@ bool process_action_kb(keyrecord_t *record); bool process_record_kb(uint16_t keycode, keyrecord_t *record); bool process_record_user(uint16_t keycode, keyrecord_t *record); -bool is_music_on(void); -void music_toggle(void); -void music_on(void); -void music_off(void); - void startup_user(void); void shutdown_user(void); -void audio_on_user(void); -void music_on_user(void); -void music_scale_user(void); #ifdef BACKLIGHT_ENABLE void backlight_init_ports(void); diff --git a/quantum/unicode.h b/quantum/unicode.h deleted file mode 100644 index 756ec8bc3..000000000 --- a/quantum/unicode.h +++ /dev/null @@ -1,128 +0,0 @@ -/* -Copyright 2016 Jack Humbert -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#ifndef UNICODE_H -#define UNICODE_H - -#include "quantum.h" -#include - -#define UC_BSPC UC(0x0008) - -#define UC_SPC UC(0x0020) - -#define UC_EXLM UC(0x0021) -#define UC_DQUT UC(0x0022) -#define UC_HASH UC(0x0023) -#define UC_DLR UC(0x0024) -#define UC_PERC UC(0x0025) -#define UC_AMPR UC(0x0026) -#define UC_QUOT UC(0x0027) -#define UC_LPRN UC(0x0028) -#define UC_RPRN UC(0x0029) -#define UC_ASTR UC(0x002A) -#define UC_PLUS UC(0x002B) -#define UC_COMM UC(0x002C) -#define UC_DASH UC(0x002D) -#define UC_DOT UC(0x002E) -#define UC_SLSH UC(0x002F) - -#define UC_0 UC(0x0030) -#define UC_1 UC(0x0031) -#define UC_2 UC(0x0032) -#define UC_3 UC(0x0033) -#define UC_4 UC(0x0034) -#define UC_5 UC(0x0035) -#define UC_6 UC(0x0036) -#define UC_7 UC(0x0037) -#define UC_8 UC(0x0038) -#define UC_9 UC(0x0039) - -#define UC_COLN UC(0x003A) -#define UC_SCLN UC(0x003B) -#define UC_LT UC(0x003C) -#define UC_EQL UC(0x003D) -#define UC_GT UC(0x003E) -#define UC_QUES UC(0x003F) -#define UC_AT UC(0x0040) - -#define UC_A UC(0x0041) -#define UC_B UC(0x0042) -#define UC_C UC(0x0043) -#define UC_D UC(0x0044) -#define UC_E UC(0x0045) -#define UC_F UC(0x0046) -#define UC_G UC(0x0047) -#define UC_H UC(0x0048) -#define UC_I UC(0x0049) -#define UC_J UC(0x004A) -#define UC_K UC(0x004B) -#define UC_L UC(0x004C) -#define UC_M UC(0x004D) -#define UC_N UC(0x004E) -#define UC_O UC(0x004F) -#define UC_P UC(0x0050) -#define UC_Q UC(0x0051) -#define UC_R UC(0x0052) -#define UC_S UC(0x0053) -#define UC_T UC(0x0054) -#define UC_U UC(0x0055) -#define UC_V UC(0x0056) -#define UC_W UC(0x0057) -#define UC_X UC(0x0058) -#define UC_Y UC(0x0059) -#define UC_Z UC(0x005A) - -#define UC_LBRC UC(0x005B) -#define UC_BSLS UC(0x005C) -#define UC_RBRC UC(0x005D) -#define UC_CIRM UC(0x005E) -#define UC_UNDR UC(0x005F) - -#define UC_GRV UC(0x0060) - -#define UC_a UC(0x0061) -#define UC_b UC(0x0062) -#define UC_c UC(0x0063) -#define UC_d UC(0x0064) -#define UC_e UC(0x0065) -#define UC_f UC(0x0066) -#define UC_g UC(0x0067) -#define UC_h UC(0x0068) -#define UC_i UC(0x0069) -#define UC_j UC(0x006A) -#define UC_k UC(0x006B) -#define UC_l UC(0x006C) -#define UC_m UC(0x006D) -#define UC_n UC(0x006E) -#define UC_o UC(0x006F) -#define UC_p UC(0x0070) -#define UC_q UC(0x0071) -#define UC_r UC(0x0072) -#define UC_s UC(0x0073) -#define UC_t UC(0x0074) -#define UC_u UC(0x0075) -#define UC_v UC(0x0076) -#define UC_w UC(0x0077) -#define UC_x UC(0x0078) -#define UC_y UC(0x0079) -#define UC_z UC(0x007A) - -#define UC_LCBR UC(0x007B) -#define UC_PIPE UC(0x007C) -#define UC_RCBR UC(0x007D) -#define UC_TILD UC(0x007E) -#define UC_DEL UC(0x007F) - -#endif \ No newline at end of file diff --git a/tmk_core/common.mk b/tmk_core/common.mk index a1eb38c9c..f2a22e4f8 100644 --- a/tmk_core/common.mk +++ b/tmk_core/common.mk @@ -17,10 +17,11 @@ SRC += $(COMMON_DIR)/host.c \ # Option modules ifeq ($(strip $(BOOTMAGIC_ENABLE)), yes) + OPT_DEFS += -DBOOTMAGIC_ENABLE SRC += $(COMMON_DIR)/bootmagic.c SRC += $(COMMON_DIR)/avr/eeconfig.c - OPT_DEFS += -DBOOTMAGIC_ENABLE else + OPT_DEFS += -DMAGIC_ENABLE SRC += $(COMMON_DIR)/magic.c SRC += $(COMMON_DIR)/avr/eeconfig.c endif @@ -51,18 +52,6 @@ ifeq ($(strip $(NKRO_ENABLE)), yes) OPT_DEFS += -DNKRO_ENABLE endif -ifeq ($(strip $(MIDI_ENABLE)), yes) - OPT_DEFS += -DMIDI_ENABLE -endif - -ifeq ($(strip $(AUDIO_ENABLE)), yes) - OPT_DEFS += -DAUDIO_ENABLE -endif - -ifeq ($(strip $(UNICODE_ENABLE)), yes) - OPT_DEFS += -DUNICODE_ENABLE -endif - ifeq ($(strip $(USB_6KRO_ENABLE)), yes) OPT_DEFS += -DUSB_6KRO_ENABLE endif -- cgit v1.2.3 From 197f152dee834a737cd820f2a95d1ade98be4898 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 29 Jun 2016 18:29:20 -0400 Subject: adds random base64 character generator --- keyboards/planck/keymaps/experimental/keymap.c | 15 +++++++++-- keyboards/planck/rev3/Makefile | 2 +- keyboards/planck/rev4/Makefile | 2 +- quantum/quantum.c | 35 ++++++++++++++++++++++++++ quantum/quantum.h | 3 +++ 5 files changed, 53 insertions(+), 4 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/experimental/keymap.c b/keyboards/planck/keymaps/experimental/keymap.c index 041285684..856059289 100644 --- a/keyboards/planck/keymaps/experimental/keymap.c +++ b/keyboards/planck/keymaps/experimental/keymap.c @@ -54,7 +54,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {KC_LEAD, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Colemak @@ -90,7 +90,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, - {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {KC_LEAD, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Lower @@ -326,6 +326,17 @@ void matrix_scan_user(void) { leading = false; leader_end(); + SEQ_ONE_KEY (KC_R) { + tap_random_base64(); + tap_random_base64(); + tap_random_base64(); + tap_random_base64(); + tap_random_base64(); + tap_random_base64(); + tap_random_base64(); + tap_random_base64(); + tap_random_base64(); + } SEQ_ONE_KEY (KC_V) { SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); } diff --git a/keyboards/planck/rev3/Makefile b/keyboards/planck/rev3/Makefile index 559409682..3ed1445e4 100644 --- a/keyboards/planck/rev3/Makefile +++ b/keyboards/planck/rev3/Makefile @@ -1,4 +1,4 @@ -AUDIO_ENABLE = no # Audio output on port C6 +AUDIO_ENABLE ?= no # Audio output on port C6 ifndef QUANTUM_DIR include ../../../Makefile diff --git a/keyboards/planck/rev4/Makefile b/keyboards/planck/rev4/Makefile index 01d848e98..ed09f85a4 100644 --- a/keyboards/planck/rev4/Makefile +++ b/keyboards/planck/rev4/Makefile @@ -1,4 +1,4 @@ -AUDIO_ENABLE = yes # Audio output on port C6 +AUDIO_ENABLE ?= yes # Audio output on port C6 ifndef QUANTUM_DIR include ../../../Makefile diff --git a/quantum/quantum.c b/quantum/quantum.c index c0580e0aa..224bfb795 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -307,6 +307,41 @@ void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3) { } } +void tap_random_base64(void) { + uint8_t key = (TCNT0 + TCNT1 + TCNT3 + TCNT4) % 64; + // uint8_t key = rand() % 64; + switch (key) { + case 0 ... 25: + register_code(KC_LSFT); + register_code(key + KC_A); + unregister_code(key + KC_A); + unregister_code(KC_LSFT); + break; + case 26 ... 51: + register_code(key - 26 + KC_A); + unregister_code(key - 26 + KC_A); + break; + case 52: + register_code(KC_0); + unregister_code(KC_0); + break; + case 53 ... 61: + register_code(key - 53 + KC_1); + unregister_code(key - 53 + KC_1); + break; + case 62: + register_code(KC_LSFT); + register_code(KC_EQL); + unregister_code(KC_EQL); + unregister_code(KC_LSFT); + break; + case 63: + register_code(KC_SLSH); + unregister_code(KC_SLSH); + break; + } +} + void matrix_init_quantum() { #ifdef BACKLIGHT_ENABLE backlight_init_ports(); diff --git a/quantum/quantum.h b/quantum/quantum.h index ad180c71f..dd290ac00 100644 --- a/quantum/quantum.h +++ b/quantum/quantum.h @@ -60,6 +60,9 @@ void send_string(const char *str); // For tri-layer void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3); + +void tap_random_base64(void); + #define IS_LAYER_ON(layer) (layer_state & (1UL << (layer))) #define IS_LAYER_OFF(layer) (~layer_state & (1UL << (layer))) -- cgit v1.2.3 From 7db2ec1509f6e90f8feea7c9fa73350544235a25 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 29 Jun 2016 18:47:53 -0400 Subject: updates planck experimental, width of color output --- keyboards/planck/keymaps/experimental/keymap.c | 51 +++++++++++++++----------- tmk_core/rules.mk | 2 +- 2 files changed, 31 insertions(+), 22 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/experimental/keymap.c b/keyboards/planck/keymaps/experimental/keymap.c index 856059289..8ec335d7d 100644 --- a/keyboards/planck/keymaps/experimental/keymap.c +++ b/keyboards/planck/keymaps/experimental/keymap.c @@ -23,15 +23,16 @@ extern keymap_config_t keymap_config; #define _PLOVER 5 #define _ADJUST 16 -// Macro name shortcuts -#define QWERTY M(_QWERTY) -#define COLEMAK M(_COLEMAK) -#define DVORAK M(_DVORAK) -#define LOWER M(_LOWER) -#define RAISE M(_RAISE) -#define M_BL 5 -#define PLOVER M(12) -#define EXT_PLV M(13) +enum planck_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + PLOVER, + LOWER, + RAISE, + BACKLIT, + EXT_PLV +}; // Fillers to make layering more clear #define _______ KC_TRNS @@ -193,10 +194,10 @@ void persistant_default_layer_set(uint16_t default_layer) { default_layer_set(default_layer); } -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - case _QWERTY: + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_qwerty, false, 0); @@ -204,7 +205,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) persistant_default_layer_set(1UL<<_QWERTY); } break; - case _COLEMAK: + return false; + case COLEMAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_colemak, false, 0); @@ -212,7 +214,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) persistant_default_layer_set(1UL<<_COLEMAK); } break; - case _DVORAK: + return false; + case DVORAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_dvorak, false, 0); @@ -220,7 +223,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) persistant_default_layer_set(1UL<<_DVORAK); } break; - case _LOWER: + return false; + case LOWER: if (record->event.pressed) { layer_on(_LOWER); #ifdef BACKLIGHT_ENABLE @@ -233,7 +237,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) update_tri_layer(_LOWER, _RAISE, _ADJUST); } break; - case _RAISE: + return false; + case RAISE: if (record->event.pressed) { layer_on(_RAISE); #ifdef BACKLIGHT_ENABLE @@ -246,7 +251,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) update_tri_layer(_LOWER, _RAISE, _ADJUST); } break; - case M_BL: + return false; + case BACKLIT: if (record->event.pressed) { register_code(KC_RSFT); #ifdef BACKLIGHT_ENABLE @@ -256,7 +262,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) unregister_code(KC_RSFT); } break; - case 12: + return false; + case PLOVER: if (record->event.pressed) { #ifdef AUDIO_ENABLE stop_all_notes(); @@ -274,7 +281,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) eeconfig_update_keymap(keymap_config.raw); } break; - case 13: + return false; + case EXT_PLV: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_plover_gb, false, 0); @@ -282,9 +290,10 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) layer_off(_PLOVER); } break; + return false; } - return MACRO_NONE; + return true; }; void matrix_init_user(void) { diff --git a/tmk_core/rules.mk b/tmk_core/rules.mk index e37ba0f83..a3ea4fc51 100644 --- a/tmk_core/rules.mk +++ b/tmk_core/rules.mk @@ -75,7 +75,7 @@ endif TAB_LOG = printf "\n$$LOG\n\n" | $(AWK) '{ sub(/^/," | "); print }' TAB_LOG_PLAIN = printf "$$LOG\n" AWK_STATUS = $(AWK) '{ printf " %-10s\n", $$1; }' -AWK_CMD = $(AWK) '{ printf "%-69s", $$0; }' +AWK_CMD = $(AWK) '{ printf "%-99s", $$0; }' PRINT_ERROR = ($(SILENT) ||printf " $(ERROR_STRING)" | $(AWK_STATUS)) && $(TAB_LOG) && false PRINT_WARNING = ($(SILENT) || printf " $(WARN_STRING)" | $(AWK_STATUS)) && $(TAB_LOG) PRINT_ERROR_PLAIN = ($(SILENT) ||printf " $(ERROR_STRING)" | $(AWK_STATUS)) && $(TAB_LOG_PLAIN) && false -- cgit v1.2.3 From ba6fb23f079a03f978c81deda58d1d18e08c54dc Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 29 Jun 2016 20:21:05 -0400 Subject: adds handwire and onekey example --- Makefile | 24 ++++--- keyboards/handwired/handwired.c | 1 + keyboards/handwired/handwired.h | 1 + keyboards/handwired/onekey/Makefile | 65 +++++++++++++++++++ keyboards/handwired/onekey/config.h | 75 ++++++++++++++++++++++ .../handwired/onekey/keymaps/default/keymap.c | 5 ++ keyboards/handwired/onekey/onekey.c | 1 + keyboards/handwired/onekey/onekey.h | 1 + 8 files changed, 165 insertions(+), 8 deletions(-) create mode 100644 keyboards/handwired/handwired.c create mode 100644 keyboards/handwired/handwired.h create mode 100644 keyboards/handwired/onekey/Makefile create mode 100644 keyboards/handwired/onekey/config.h create mode 100644 keyboards/handwired/onekey/keymaps/default/keymap.c create mode 100644 keyboards/handwired/onekey/onekey.c create mode 100644 keyboards/handwired/onekey/onekey.h (limited to 'keyboards') diff --git a/Makefile b/Makefile index 5642aa283..f9b865b9f 100644 --- a/Makefile +++ b/Makefile @@ -65,22 +65,24 @@ endif KEYBOARD_PATH = $(TOP_DIR)/keyboards/$(KEYBOARD) +ifdef sub + SUBPROJECT=$(sub) +endif +ifdef subproject + SUBPROJECT=$(subproject) +endif + ifneq ("$(wildcard $(KEYBOARD_PATH)/$(KEYBOARD).c)","") KEYBOARD_FILE = keyboards/$(KEYBOARD)/$(KEYBOARD).c ifndef ARCH - include $(KEYBOARD_PATH)/Makefile + ifneq ("$(wildcard $(KEYBOARD_PATH)/Makefile)","") + include $(KEYBOARD_PATH)/Makefile + endif endif else $(error "$(KEYBOARD_PATH)/$(KEYBOARD).c" does not exist) endif -ifdef sub - SUBPROJECT=$(sub) -endif -ifdef subproject - SUBPROJECT=$(subproject) -endif - ifdef SUBPROJECT_DEFAULT SUBPROJECT?=$(SUBPROJECT_DEFAULT) endif @@ -110,7 +112,13 @@ ifneq ("$(wildcard $(KEYMAP_PATH)/keymap.c)","") KEYMAP_FILE = keyboards/$(KEYBOARD)/keymaps/$(KEYMAP)/keymap.c -include $(KEYMAP_PATH)/Makefile else + ifeq ("$(wildcard $(SUBPROJECT_PATH)/keymaps/$(KEYMAP)/keymap.c)","") $(error "$(KEYMAP_PATH)/keymap.c" does not exist) + else + KEYMAP_PATH = $(SUBPROJECT_PATH)/keymaps/$(KEYMAP) + KEYMAP_FILE = keyboards/$(KEYBOARD)/$(SUBPROJECT)/keymaps/$(KEYMAP)/keymap.c + -include $(KEYMAP_PATH)/Makefile + endif endif ifdef SUBPROJECT diff --git a/keyboards/handwired/handwired.c b/keyboards/handwired/handwired.c new file mode 100644 index 000000000..feef8a919 --- /dev/null +++ b/keyboards/handwired/handwired.c @@ -0,0 +1 @@ +#include "handwired.h" \ No newline at end of file diff --git a/keyboards/handwired/handwired.h b/keyboards/handwired/handwired.h new file mode 100644 index 000000000..7a4a4835e --- /dev/null +++ b/keyboards/handwired/handwired.h @@ -0,0 +1 @@ +#include "quantum.h" \ No newline at end of file diff --git a/keyboards/handwired/onekey/Makefile b/keyboards/handwired/onekey/Makefile new file mode 100644 index 000000000..c6d10856a --- /dev/null +++ b/keyboards/handwired/onekey/Makefile @@ -0,0 +1,65 @@ + + +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= yes # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +#NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA + +ifndef QUANTUM_DIR + include ../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/handwired/onekey/config.h b/keyboards/handwired/onekey/config.h new file mode 100644 index 000000000..c0a6b5839 --- /dev/null +++ b/keyboards/handwired/onekey/config.h @@ -0,0 +1,75 @@ +/* +Copyright 2015 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6464 +#define DEVICE_VER 0x0001 +#define MANUFACTURER none +#define PRODUCT onekey +#define DESCRIPTION test board for qmk + +/* key matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 1 + +#define MATRIX_COL_PINS { B0 } +#define MATRIX_ROW_PINS { D0 } +#define UNUSED_PINS + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + + + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/handwired/onekey/keymaps/default/keymap.c b/keyboards/handwired/onekey/keymaps/default/keymap.c new file mode 100644 index 000000000..756c4f51e --- /dev/null +++ b/keyboards/handwired/onekey/keymaps/default/keymap.c @@ -0,0 +1,5 @@ +#include "onekey.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + { KC_A } +}; diff --git a/keyboards/handwired/onekey/onekey.c b/keyboards/handwired/onekey/onekey.c new file mode 100644 index 000000000..c79e0120e --- /dev/null +++ b/keyboards/handwired/onekey/onekey.c @@ -0,0 +1 @@ +#include "onekey.h" \ No newline at end of file diff --git a/keyboards/handwired/onekey/onekey.h b/keyboards/handwired/onekey/onekey.h new file mode 100644 index 000000000..7a4a4835e --- /dev/null +++ b/keyboards/handwired/onekey/onekey.h @@ -0,0 +1 @@ +#include "quantum.h" \ No newline at end of file -- cgit v1.2.3 From 2d80eee6b8b9d79a931b99e7aa3b528068940a94 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 29 Jun 2016 21:21:02 -0400 Subject: test handwired boards --- keyboards/handwired/Makefile | 3 +++ tmk_core/rules.mk | 7 ++++--- 2 files changed, 7 insertions(+), 3 deletions(-) create mode 100644 keyboards/handwired/Makefile (limited to 'keyboards') diff --git a/keyboards/handwired/Makefile b/keyboards/handwired/Makefile new file mode 100644 index 000000000..57493a47c --- /dev/null +++ b/keyboards/handwired/Makefile @@ -0,0 +1,3 @@ +ifndef QUANTUM_DIR + include ../../Makefile +endif \ No newline at end of file diff --git a/tmk_core/rules.mk b/tmk_core/rules.mk index a3ea4fc51..1bfe068f9 100644 --- a/tmk_core/rules.mk +++ b/tmk_core/rules.mk @@ -622,7 +622,8 @@ show_path: @echo VPATH=$(VPATH) @echo SRC=$(SRC) -SUBDIRS := $(sort $(dir $(wildcard $(TOP_DIR)/keyboards/*/.))) +SUBDIRS := $(sort $(dir $(wildcard $(TOP_DIR)/keyboards/**/*/.))) +SUBDIRS := $(SUBDIRS) $(sort $(dir $(wildcard $(TOP_DIR)/keyboards/*/.))) all-keyboards-defaults-%: @for x in $(SUBDIRS) ; do \ printf "Compiling with default: $$x" | $(AWK_CMD); \ @@ -641,7 +642,7 @@ define make_keyboard $(eval KEYBOARD=$(patsubst /keyboards/%,%,$1)) $(eval KEYMAPS=$(notdir $(patsubst %/.,%,$(wildcard $(TOP_DIR)$1/keymaps/*/.)))) @for x in $(KEYMAPS) ; do \ - printf "Compiling $(BOLD)$(KEYBOARD)$(NO_COLOR) with $(BOLD)$$x$(NO_COLOR)" | $(AWK) '{ printf "%-88s", $$0; }'; \ + printf "Compiling $(BOLD)$(KEYBOARD)$(NO_COLOR) with $(BOLD)$$x$(NO_COLOR)" | $(AWK) '{ printf "%-118s", $$0; }'; \ LOG=$$($(MAKE) -C $(TOP_DIR)$1 $2 keymap=$$x VERBOSE=$(VERBOSE) COLOR=$(COLOR) SILENT=true 2>&1) ; if [ $$? -gt 0 ]; then $(PRINT_ERROR_PLAIN); elif [ "$$LOG" != "" ] ; then $(PRINT_WARNING_PLAIN); else $(PRINT_OK); fi; \ done endef @@ -664,7 +665,7 @@ all-keymaps-%: $(eval MAKECONFIG=$(call get_target,all-keymaps,$@)) $(eval KEYMAPS=$(notdir $(patsubst %/.,%,$(wildcard $(TOP_DIR)/keyboards/$(KEYBOARD)/keymaps/*/.)))) @for x in $(KEYMAPS) ; do \ - printf "Compiling $(BOLD)$(KEYBOARD)$(NO_COLOR) with $(BOLD)$$x$(NO_COLOR)" | $(AWK) '{ printf "%-88s", $$0; }'; \ + printf "Compiling $(BOLD)$(KEYBOARD)$(NO_COLOR) with $(BOLD)$$x$(NO_COLOR)" | $(AWK) '{ printf "%-118s", $$0; }'; \ LOG=$$($(MAKE) $(subst all-keymaps-,,$@) keyboard=$(KEYBOARD) keymap=$$x VERBOSE=$(VERBOSE) COLOR=$(COLOR) SILENT=true 2>&1) ; if [ $$? -gt 0 ]; then $(PRINT_ERROR_PLAIN); elif [ "$$LOG" != "" ] ; then $(PRINT_WARNING_PLAIN); else $(PRINT_OK); fi; \ done -- cgit v1.2.3 From fbf697b9ff2a2347bd9ecedfb86333e5a395c872 Mon Sep 17 00:00:00 2001 From: TerryMathews Date: Wed, 29 Jun 2016 22:33:09 -0400 Subject: Fix CAPS_LED logic in Satan (#461) Needed to invert for proper operation. Previous code had LED on when off and vice versa.--- keyboards/satan/satan.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboards') diff --git a/keyboards/satan/satan.c b/keyboards/satan/satan.c index 1c515f55f..d2c5d5c20 100644 --- a/keyboards/satan/satan.c +++ b/keyboards/satan/satan.c @@ -22,9 +22,9 @@ void led_init_ports(void) { void led_set_kb(uint8_t usb_led) { if (usb_led & (1<] +``` + +Keymaps follow the format **__keymap.c__** and are stored in folders in the `keymaps` folder, eg `keymaps/my_keymap/` diff --git a/keyboards/handwired/fivethirteen/config.h b/keyboards/handwired/fivethirteen/config.h new file mode 100644 index 000000000..76596342b --- /dev/null +++ b/keyboards/handwired/fivethirteen/config.h @@ -0,0 +1,162 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER rdg +#define PRODUCT fivethirteen +#define DESCRIPTION handwired 5x13 matrix keyboard + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 13 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { F6, F7, B6, B5, B4 } +#define MATRIX_COL_PINS { B0, B1, B2, B3, F0, D0, D1, D2, D3, C6, C7, D6, D7 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/handwired/fivethirteen/fivethirteen.c b/keyboards/handwired/fivethirteen/fivethirteen.c new file mode 100644 index 000000000..4c16e72eb --- /dev/null +++ b/keyboards/handwired/fivethirteen/fivethirteen.c @@ -0,0 +1,8 @@ +#include "fivethirteen.h" + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + matrix_init_user(); +} diff --git a/keyboards/handwired/fivethirteen/fivethirteen.h b/keyboards/handwired/fivethirteen/fivethirteen.h new file mode 100644 index 000000000..faa6de737 --- /dev/null +++ b/keyboards/handwired/fivethirteen/fivethirteen.h @@ -0,0 +1,21 @@ +#ifndef FIVETHIRTEEN_H +#define FIVETHIRTEEN_H + +#include "quantum.h" + +#define KEYMAP( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k010, k011, k012, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k210, k211, k212, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k310, k311, k312, \ + k40, k41, k42, k43, k44, k46, k47, k48, k49, k410, k411, k412 \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k010, k011, k012 }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k110, k111, k112 }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k210, k211, k212 }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k310, k311, k312 }, \ + { k40, k41, k42, k43, k44, KC_NO, k46, k47, k48, k49, k410, k411, k412 } \ +} + +#endif diff --git a/keyboards/handwired/fivethirteen/keymaps/default/keymap.c b/keyboards/handwired/fivethirteen/keymaps/default/keymap.c new file mode 100644 index 000000000..d718510d5 --- /dev/null +++ b/keyboards/handwired/fivethirteen/keymaps/default/keymap.c @@ -0,0 +1,49 @@ +#include "fivethirteen.h" + +#define _______ KC_TRNS + +#define HDN 1 +#define OSY 2 +#define MOS 3 +#define CTL_ESC CTL_T(KC_ESC) +#define SFT_BSP SFT_T(KC_BSPC) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = KEYMAP( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, \ + CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_BSLS, \ + MO(MOS), KC_LCTL, KC_LALT, KC_LGUI, MO(HDN), KC_SPC , SFT_BSP, MO(OSY), MO(HDN), KC_LEFT, KC_DOWN, KC_RGHT \ +), +[HDN] = KEYMAP( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ + _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, \ + _______, KC_TILD, KC_GRV, KC_BSLS, KC_PIPE, KC_MINS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TILD, KC_GRV, _______, \ + _______, _______, _______, _______, _______, _______, _______, KC_ENT, _______, _______, _______, KC_PGUP, _______, \ + _______, _______, _______, _______, _______, KC_UNDS , KC_DEL, _______, _______, KC_HOME, KC_PGDN, KC_END \ +), +[OSY] = KEYMAP( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PWR, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ +), +[MOS] = KEYMAP( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_BTN2, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, KC_WH_D, KC_WH_U, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ +) +}; + + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + return MACRO_NONE; +}; -- cgit v1.2.3 From 4d4f7684e684bec319f166121463a88cd4a62703 Mon Sep 17 00:00:00 2001 From: fredizzimo Date: Fri, 1 Jul 2016 17:04:53 +0300 Subject: Add ChibiOS support for QMK (#465) * Modularity and gcc warnings fixes. * Add ChibiOS support (USB stack + support files). * Make usb_main more USB_DRIVER #define independent. * Move chibios to tool. * Implement jump-to-bootloader. * Small updates. * Fix bootloader-jump compiling. * Move AVR specific sleep_led.c into avr. * Add basic sleep_led for chibios. * Update chibios README. * NKRO fixes. * Rename some Makefile defines. * Move STM32 bootloader address config to separate .h file. * Add ARM Teensies bootloader code. * Fix chibios/usb_main GET_REPORT handing. * Add missing #include to keymap.c. * Make bootmagic.c code portable (_delay_ms -> wait_ms). * Move declaration of keymap_config. Should really not declare variables in .h files - since it's included in different .c files, a proper linker then complains that the same variable is declared more than once (once for each .c file that the offending .h is included in). * Add eeprom support for chibios/kinetis. * Rename chibios example keyboard. * Move chibios/cortex selection to local Makefiles. * Chibios: use WFI in idle. WIP suspend stuff. * ChibiOS/kinetis: sending remote wakeup. * ChibiOS/STM32: send remote wakeup. * Fix report size of boot protocol. * Fix drop key stroke Keyboard report should be checked if its transfer finishs successfully. Otherwise key stroke can be missing when other key event occurs before the last report transfer is done. Boot protocol 10ms interval probably causes this problem in case it receives key events in a row within the period. NKRO protocol suffers less or nothing due to its interval 1ms. * Chibios/usb_main: rename a variable for clarity. * Add correct chibios/bootloader_jump for infinity KB. * ChibiOS: make reset request more CMSISy. * Chibios: Add breathing sleep LED on Kinetis MCUs. * ChibiOS: Update infinity bootloader code to match updated ChibiOS. * ChibiOS: prettify/document sleep_led code. * Chibios: Remove the wait in the main loop. * Add maple mini code. * Do timeout when writing to CONSOLE EP queue. Fixes TMK bug #266. * Chibios: add 'core/protocol' to the makefiles' search path. * Chibios: Update to new USB API. * Chibios: add more guards for transmitting (fix a deadlock bug). * Add update for chibios in README * Chibios: Fix a HardFault bug (wait after start). * Chibios: cleanup usb_main code. * Chibios: Revert common.mk change (fix AVR linking problem). * core: Fix chibios user compile options Compile options can be defined in project Makefile such as UDEFS, UADEFS, UINCDIR, ULIBDIR and ULIBS. * Sysv format for ChibiOS arm-none-eabi-size Some new patches to ChibiOS puts heap as it's own section. So the berkeley format is now useless, as the heap will be included in the BSS report. The sysv format displays the bss size correctly. * Fix hard-coded path of CHIBIOS * Add support for new version of ChibiOS and Contrib The Kinetis support has moved to a separate Contrib repository in the newest version of Chibios. There has also been some structure changes. So this adds support for those, while maintaining back- wards compability. * Update ChibiOS instructions * Chibios: implement sleep LED for STM32. * Chibios: Update the main chibios README. * Chibios: fix STM32_BOOTLOADER_ADDRESS name. * Chibios: make the default bootloader_jump redefinable (weak). * Chibios: disable LTO (link-time optimisation). With LTO enabled, sometimes things fail for mysterious reasons (e.g. bootloader jump on WF with LEDs enabled), just because the linker optimisation is too aggressive. * Chibios: add default location for chibios-contrib. * ChibiOS: update mk to match chibios/master. * ChibiOS: update instructions.md. * Add chibi_onekey example. * Add comments to chibi_onekey Makefile. * Rename some Makefile defines. * Move STM32 bootloader address config to separate .h file. * Rename chibios example keyboard. * Move chibios/cortex selection to local Makefiles. * Add Teensy LC onekey example. * Chibios: use WFI in idle. WIP suspend stuff. * Update chibi/teensy instructions. * Update chibios/Teensy instructions. * Add infinity_chibios * Add keymap_hasu.c * Infinity_chibios: select correct bootloader_jump. * Infinity_chibios: improve comments. * Add generic STM32F103C8T6 example. * Add maple mini code. * STM32F103x fixes. * Add maple mini pinout pic. * Chibios: updates for 3.0.4 git. * Chibios: rename example stm32_onekey -> stm32_f072_onekey. * Chibios: add makefiles for Teensy 3.x examples. * Chibios: update Teensy 3.x instructions. * Chibios: Tsy LC is cortex-m0plus. * Chibios: add more guards for transmitting (fix a deadlock bug). * Change README for chibios * Chibios: update examples to current chibios git. Match the changes in mainline chibios: - update chconf.h - update supplied ld scripts structure - update Teensy instructions (switch to official chibios and introduce contrib) * Add ChibiOS and ChibiOS-Contrib submodules Also fix the makefile path for them. * Moves chibios keyboards to keyboards folder * First version of ChibiOS compilation Only the stm32_f072_onkey keyboard is ported at the moment. It compiles, but still doesn't link. * More chibios fixes It now compiles without warnings and links * Move the teensy_lc_onekey to the keyboards folder * Clean up the make file rule structure * Remove keymap_fn_to_action * Update more ChibiOS keyboards to QMK Most of them does not compile at the moment though. * Use older version of Chibios libraries The newest ones have problems with compilation * Remove USB_UNCONFIGURED event It isn't present in the older version of ChibiOS * Fix the infinity_chibios compilation * Fix potentially uninitialized variable * Add missing include * Fix the ChibiOS makefile * Fix some Chibios keyboard compilation * Revert the rules.mk file back to master version * Combine the chibios and AVR makefiles With just the required overrides in the respective platform specific one. * Slight makefile restrucuring Platform specific compiler options * Move avr specific targets out of the main rules * Fix ChibiOS objcopy The ChibiOS objcopy needs different parameters, so the parameters are moved to the corresponding platform rule file * Fix the objcopy for real this time The comands were moved around, so chibios used avr and the ohter way around. Also change the objsize output format * Fix the thumb flags * Fix the infinity hasu keymap * Per platform cpp flags * Add gcc-arm-none-eabi package to travis * Add arm-none-eabi-newlib to travis * Fix the name of the libnewlib-arm-none-eabi lib * Fix the ChibiOS paths So that they are properly relative, and builds don't generate extra folders * Fix the board path of stm32_f103_onekey * Only consider folders with Makefiles as subproject --- .gitmodules | 6 + .travis.yml | 5 +- Makefile | 31 +- keyboards/infinity_chibios/MEMO.txt | 385 ++++++ keyboards/infinity_chibios/Makefile | 70 + keyboards/infinity_chibios/bootloader_defs.h | 1 + keyboards/infinity_chibios/chconf.h | 524 ++++++++ keyboards/infinity_chibios/config.h | 75 ++ keyboards/infinity_chibios/halconf.h | 353 +++++ keyboards/infinity_chibios/infinity_chibios.c | 17 + keyboards/infinity_chibios/infinity_chibios.h | 66 + .../infinity_chibios/keymaps/default/keymap.c | 48 + keyboards/infinity_chibios/keymaps/hasu/keymap.c | 199 +++ keyboards/infinity_chibios/led.c | 24 + keyboards/infinity_chibios/matrix.c | 128 ++ keyboards/infinity_chibios/mcuconf.h | 55 + keyboards/planck/out.txt | 66 + keyboards/stm32_f072_onekey/Makefile | 50 + keyboards/stm32_f072_onekey/bootloader_defs.h | 7 + keyboards/stm32_f072_onekey/chconf.h | 524 ++++++++ keyboards/stm32_f072_onekey/config.h | 76 ++ keyboards/stm32_f072_onekey/halconf.h | 353 +++++ .../stm32_f072_onekey/keymaps/default/keymap.c | 25 + keyboards/stm32_f072_onekey/led.c | 34 + keyboards/stm32_f072_onekey/matrix.c | 163 +++ keyboards/stm32_f072_onekey/mcuconf.h | 171 +++ keyboards/stm32_f072_onekey/stm32_f072_onekey.c | 1 + keyboards/stm32_f072_onekey/stm32_f072_onekey.h | 5 + keyboards/stm32_f103_onekey/Makefile | 64 + .../boards/GENERIC_STM32_F103/board.c | 49 + .../boards/GENERIC_STM32_F103/board.h | 166 +++ .../boards/GENERIC_STM32_F103/board.mk | 5 + .../GENERIC_STM32_F103/mini_stm32_mapping.png | Bin 0 -> 162908 bytes .../boards/maple_mini_mapping.png | Bin 0 -> 237977 bytes keyboards/stm32_f103_onekey/bootloader_defs.h | 10 + keyboards/stm32_f103_onekey/chconf.h | 524 ++++++++ keyboards/stm32_f103_onekey/config.h | 75 ++ keyboards/stm32_f103_onekey/flash.sh | 2 + keyboards/stm32_f103_onekey/halconf.h | 353 +++++ .../stm32_f103_onekey/keymaps/default/keymap.c | 25 + .../ld/STM32F103x8_stm32duino_bootloader.ld | 88 ++ keyboards/stm32_f103_onekey/led.c | 43 + keyboards/stm32_f103_onekey/matrix.c | 177 +++ keyboards/stm32_f103_onekey/mcuconf.h | 209 +++ keyboards/stm32_f103_onekey/stm32_f103_onekey.c | 1 + keyboards/stm32_f103_onekey/stm32_f103_onekey.h | 4 + keyboards/teensy_lc_onekey/Makefile | 62 + keyboards/teensy_lc_onekey/Makefile.3.0 | 77 ++ keyboards/teensy_lc_onekey/Makefile.3.2 | 77 ++ keyboards/teensy_lc_onekey/chconf.h | 524 ++++++++ keyboards/teensy_lc_onekey/config.h | 75 ++ keyboards/teensy_lc_onekey/halconf.h | 187 +++ keyboards/teensy_lc_onekey/instructions.md | 82 ++ .../teensy_lc_onekey/keymaps/default/keymap.c | 32 + keyboards/teensy_lc_onekey/ld/MKL26Z64.ld | 105 ++ keyboards/teensy_lc_onekey/led.c | 32 + keyboards/teensy_lc_onekey/matrix.c | 163 +++ keyboards/teensy_lc_onekey/mcuconf.h | 55 + keyboards/teensy_lc_onekey/teensy_lc_onekey.c | 1 + keyboards/teensy_lc_onekey/teensy_lc_onekey.h | 4 + lib/chibios | 1 + lib/chibios-contrib | 1 + quantum/keycode_config.h | 2 +- quantum/keymap.c | 167 --- quantum/keymap.h | 11 +- quantum/keymap_common.c | 171 +++ quantum/matrix.c | 2 + quantum/quantum.c | 2 +- quantum/quantum.h | 8 +- readme.md | 3 + tmk_core/avr.mk | 185 +++ tmk_core/chibios.mk | 154 +++ tmk_core/common.mk | 36 +- tmk_core/common/action_tapping.c | 2 +- tmk_core/common/avr/eeconfig.c | 56 - tmk_core/common/avr/sleep_led.c | 95 ++ tmk_core/common/bootmagic.c | 7 +- tmk_core/common/chibios/bootloader.c | 47 + tmk_core/common/chibios/eeprom.c | 588 +++++++++ tmk_core/common/chibios/printf.c | 240 ++++ tmk_core/common/chibios/printf.h | 111 ++ tmk_core/common/chibios/sleep_led.c | 226 ++++ tmk_core/common/chibios/suspend.c | 65 + tmk_core/common/chibios/timer.c | 27 + tmk_core/common/command.c | 23 +- tmk_core/common/eeconfig.c | 56 + tmk_core/common/eeprom.h | 22 + tmk_core/common/magic.c | 4 +- tmk_core/common/print.c | 8 +- tmk_core/common/print.h | 10 +- tmk_core/common/progmem.h | 4 +- tmk_core/common/report.h | 5 + tmk_core/common/sleep_led.c | 95 -- tmk_core/common/wait.h | 8 +- tmk_core/protocol/chibios.mk | 10 + tmk_core/protocol/chibios/README.md | 55 + tmk_core/protocol/chibios/main.c | 147 +++ tmk_core/protocol/chibios/usb_main.c | 1372 ++++++++++++++++++++ tmk_core/protocol/chibios/usb_main.h | 139 ++ tmk_core/readme.md | 16 +- tmk_core/rules.mk | 220 +--- tmk_core/tool/chibios/.gitignore | 2 + tmk_core/tool/chibios/ch-bootloader-jump.patch | 116 ++ 103 files changed, 10680 insertions(+), 572 deletions(-) create mode 100644 keyboards/infinity_chibios/MEMO.txt create mode 100644 keyboards/infinity_chibios/Makefile create mode 100644 keyboards/infinity_chibios/bootloader_defs.h create mode 100644 keyboards/infinity_chibios/chconf.h create mode 100644 keyboards/infinity_chibios/config.h create mode 100644 keyboards/infinity_chibios/halconf.h create mode 100644 keyboards/infinity_chibios/infinity_chibios.c create mode 100644 keyboards/infinity_chibios/infinity_chibios.h create mode 100644 keyboards/infinity_chibios/keymaps/default/keymap.c create mode 100644 keyboards/infinity_chibios/keymaps/hasu/keymap.c create mode 100644 keyboards/infinity_chibios/led.c create mode 100644 keyboards/infinity_chibios/matrix.c create mode 100644 keyboards/infinity_chibios/mcuconf.h create mode 100644 keyboards/planck/out.txt create mode 100644 keyboards/stm32_f072_onekey/Makefile create mode 100644 keyboards/stm32_f072_onekey/bootloader_defs.h create mode 100644 keyboards/stm32_f072_onekey/chconf.h create mode 100644 keyboards/stm32_f072_onekey/config.h create mode 100644 keyboards/stm32_f072_onekey/halconf.h create mode 100644 keyboards/stm32_f072_onekey/keymaps/default/keymap.c create mode 100644 keyboards/stm32_f072_onekey/led.c create mode 100644 keyboards/stm32_f072_onekey/matrix.c create mode 100644 keyboards/stm32_f072_onekey/mcuconf.h create mode 100644 keyboards/stm32_f072_onekey/stm32_f072_onekey.c create mode 100644 keyboards/stm32_f072_onekey/stm32_f072_onekey.h create mode 100644 keyboards/stm32_f103_onekey/Makefile create mode 100644 keyboards/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.c create mode 100644 keyboards/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.h create mode 100644 keyboards/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.mk create mode 100644 keyboards/stm32_f103_onekey/boards/GENERIC_STM32_F103/mini_stm32_mapping.png create mode 100644 keyboards/stm32_f103_onekey/boards/maple_mini_mapping.png create mode 100644 keyboards/stm32_f103_onekey/bootloader_defs.h create mode 100644 keyboards/stm32_f103_onekey/chconf.h create mode 100644 keyboards/stm32_f103_onekey/config.h create mode 100755 keyboards/stm32_f103_onekey/flash.sh create mode 100644 keyboards/stm32_f103_onekey/halconf.h create mode 100644 keyboards/stm32_f103_onekey/keymaps/default/keymap.c create mode 100644 keyboards/stm32_f103_onekey/ld/STM32F103x8_stm32duino_bootloader.ld create mode 100644 keyboards/stm32_f103_onekey/led.c create mode 100644 keyboards/stm32_f103_onekey/matrix.c create mode 100644 keyboards/stm32_f103_onekey/mcuconf.h create mode 100644 keyboards/stm32_f103_onekey/stm32_f103_onekey.c create mode 100644 keyboards/stm32_f103_onekey/stm32_f103_onekey.h create mode 100644 keyboards/teensy_lc_onekey/Makefile create mode 100644 keyboards/teensy_lc_onekey/Makefile.3.0 create mode 100644 keyboards/teensy_lc_onekey/Makefile.3.2 create mode 100644 keyboards/teensy_lc_onekey/chconf.h create mode 100644 keyboards/teensy_lc_onekey/config.h create mode 100644 keyboards/teensy_lc_onekey/halconf.h create mode 100644 keyboards/teensy_lc_onekey/instructions.md create mode 100644 keyboards/teensy_lc_onekey/keymaps/default/keymap.c create mode 100644 keyboards/teensy_lc_onekey/ld/MKL26Z64.ld create mode 100644 keyboards/teensy_lc_onekey/led.c create mode 100644 keyboards/teensy_lc_onekey/matrix.c create mode 100644 keyboards/teensy_lc_onekey/mcuconf.h create mode 100644 keyboards/teensy_lc_onekey/teensy_lc_onekey.c create mode 100644 keyboards/teensy_lc_onekey/teensy_lc_onekey.h create mode 160000 lib/chibios create mode 160000 lib/chibios-contrib delete mode 100644 quantum/keymap.c create mode 100644 quantum/keymap_common.c create mode 100644 tmk_core/avr.mk create mode 100644 tmk_core/chibios.mk delete mode 100644 tmk_core/common/avr/eeconfig.c create mode 100644 tmk_core/common/avr/sleep_led.c create mode 100644 tmk_core/common/chibios/bootloader.c create mode 100644 tmk_core/common/chibios/eeprom.c create mode 100644 tmk_core/common/chibios/printf.c create mode 100644 tmk_core/common/chibios/printf.h create mode 100644 tmk_core/common/chibios/sleep_led.c create mode 100644 tmk_core/common/chibios/suspend.c create mode 100644 tmk_core/common/chibios/timer.c create mode 100644 tmk_core/common/eeconfig.c create mode 100644 tmk_core/common/eeprom.h delete mode 100644 tmk_core/common/sleep_led.c create mode 100644 tmk_core/protocol/chibios.mk create mode 100644 tmk_core/protocol/chibios/README.md create mode 100644 tmk_core/protocol/chibios/main.c create mode 100644 tmk_core/protocol/chibios/usb_main.c create mode 100644 tmk_core/protocol/chibios/usb_main.h create mode 100644 tmk_core/tool/chibios/.gitignore create mode 100644 tmk_core/tool/chibios/ch-bootloader-jump.patch (limited to 'keyboards') diff --git a/.gitmodules b/.gitmodules index e69de29bb..1576b8dc0 100644 --- a/.gitmodules +++ b/.gitmodules @@ -0,0 +1,6 @@ +[submodule "lib/chibios"] + path = lib/chibios + url = https://github.com/ChibiOS/ChibiOS.git +[submodule "lib/chibios-contrib"] + path = lib/chibios-contrib + url = https://github.com/ChibiOS/ChibiOS-Contrib.git diff --git a/.travis.yml b/.travis.yml index 955f69679..26deac0ce 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,4 +18,7 @@ addons: - gcc-avr - dfu-programmer - pandoc -after_success: bash util/travis_compiled_push.sh \ No newline at end of file + - gcc-arm-none-eabi + - binutils-arm-none-eabi + - libnewlib-arm-none-eabi +after_success: bash util/travis_compiled_push.sh diff --git a/Makefile b/Makefile index f9b865b9f..c285dabad 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,8 @@ ifndef VERBOSE .SILENT: endif +.DEFAULT_GOAL := all + space := $(subst ,, ) starting_makefile := $(subst $(space),_SPACE_,$(abspath $(firstword $(MAKEFILE_LIST)))) mkfile_path := $(subst $(space),_SPACE_,$(abspath $(lastword $(MAKEFILE_LIST)))) @@ -41,6 +43,7 @@ endif TOP_DIR = $(tmk_root) TMK_DIR = tmk_core TMK_PATH = $(TOP_DIR)/$(TMK_DIR) +LIB_PATH = $(TOP_DIR)/lib QUANTUM_DIR = quantum QUANTUM_PATH = $(TOP_DIR)/$(QUANTUM_DIR) @@ -126,6 +129,13 @@ ifdef SUBPROJECT else TARGET ?= $(KEYBOARD)_$(KEYMAP) endif +BUILD_DIR = .build + +# Object files directory +# To put object files in current directory, use a dot (.), do NOT make +# this an empty or blank macro! +OBJDIR = $(BUILD_DIR)/obj_$(TARGET) + ifneq ("$(wildcard $(KEYMAP_PATH)/config.h)","") @@ -143,7 +153,7 @@ endif SRC += $(KEYBOARD_FILE) \ $(KEYMAP_FILE) \ $(QUANTUM_DIR)/quantum.c \ - $(QUANTUM_DIR)/keymap.c \ + $(QUANTUM_DIR)/keymap_common.c \ $(QUANTUM_DIR)/keycode_config.c \ $(QUANTUM_DIR)/process_keycode/process_leader.c @@ -208,8 +218,25 @@ VPATH += $(QUANTUM_PATH)/keymap_extras VPATH += $(QUANTUM_PATH)/audio VPATH += $(QUANTUM_PATH)/process_keycode -include $(TMK_PATH)/protocol/lufa.mk + +# We can assume a ChibiOS target When MCU_FAMILY is defined, since it's not used for LUFA +ifdef MCU_FAMILY + PLATFORM=CHIBIOS +else + PLATFORM=AVR +endif + include $(TMK_PATH)/common.mk +ifeq ($(PLATFORM),AVR) + include $(TMK_PATH)/protocol/lufa.mk + include $(TMK_PATH)/avr.mk +else ifeq ($(PLATFORM),CHIBIOS) + include $(TMK_PATH)/protocol/chibios.mk + include $(TMK_PATH)/chibios.mk +else + $(error Unknown platform) +endif + include $(TMK_PATH)/rules.mk GIT_VERSION := $(shell git describe --abbrev=6 --dirty --always --tags 2>/dev/null || date +"%Y-%m-%d-%H:%M:%S") diff --git a/keyboards/infinity_chibios/MEMO.txt b/keyboards/infinity_chibios/MEMO.txt new file mode 100644 index 000000000..e2886aa00 --- /dev/null +++ b/keyboards/infinity_chibios/MEMO.txt @@ -0,0 +1,385 @@ +flabbergast's TMK/ChibiOS port +============================== +2015/10/16 + + +Build +----- +$ git clone -b chibios https://github.com/flabbergast/tmk_keyboard.git + +$ cd tmk_keyboard +$ git submodule add -f -b kinetis https://github.com/flabbergast/ChibiOS.git tmk_core/tool/chibios/chibios +or +$ cd tmk_keyboard/tmk_core/tool/chibios +$ git clone -b kinetis https://github.com/flabbergast/ChibiOS.git tmk_core/tool/chibios/chibios + +$ cd tmk_keyboard/keyboard/infinity_chibios +$ make + + + + +Chibios Configuration +--------------------- +halconf.h: for HAL configuration + placed in project directory + read in chibios/os/hal/hal.mk + included in chibios/os/hal/include/hal.h +mcuconf.h: for MCU configuration + placed in project directory + included in halconf.h + + +Chibios Term +------------ +PAL = Port Abstraction Layer + palWritePad + palReadPad + palSetPad + chibios/os/hal/include/pal.h + +LLD = Low Level Driver + + +Makefile +-------- + # /os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) + MCU_FAMILY = KINETIS + MCU_SERIES = KL2x + + # - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ + # or /ld/ + MCU_LDSCRIPT = MKL26Z64 + + # - it should exist in /os/common/ports/ARMCMx/compilers/GCC/mk/ + MCU_STARTUP = kl2x + + # Board: it should exist either in /os/hal/boards/ + # or /boards + BOARD = PJRC_TEENSY_LC + + MCU = cortex-m0 + + # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 + ARMV = 6 + + +halconf.h +--------- + + +mcuconf.h +--------- + + +chconf.h +-------- + + +ld script +--------- +--- ../../tmk_core/tool/chibios/chibios/os/common/ports/ARMCMx/compilers/GCC/ld/MKL26Z64.ld 2015-10-15 09:08:58.732904304 +0900 ++++ ld/MKL26Z64.ld 2015-10-15 08:48:06.430215496 +0900 +@@ -27,7 +27,8 @@ + { + flash0 : org = 0x00000000, len = 0xc0 + flashcfg : org = 0x00000400, len = 0x10 +- flash : org = 0x00000410, len = 64k - 0x410 ++ flash : org = 0x00000410, len = 62k - 0x410 ++ eeprom_emu : org = 0x0000F800, len = 2k + ram : org = 0x1FFFF800, len = 8k + } + +@@ -35,6 +36,10 @@ + __ram_size__ = LENGTH(ram); + __ram_end__ = __ram_start__ + __ram_size__; + ++__eeprom_workarea_start__ = ORIGIN(eeprom_emu); ++__eeprom_workarea_size__ = LENGTH(eeprom_emu); ++__eeprom_workarea_end__ = __eeprom_workarea_start__ + __eeprom_workarea_size__; ++ + SECTIONS + { + . = 0; + + + +Configuration/Startup for Infinity 60% +-------------------------------------- +Configuration: + + +Clock: +Inifinity + FEI(FLL Engaged Internal) mode with core clock:48MHz, bus clock:48MHz, flash clock:24MHz + Clock dividor: + SIM_CLKDIV1[OUTDIV1] = 0 divide-by-1 for core clock + SIM_CLKDIV1[OUTDIV2] = 0 divide-by-1 for bus clock + SIM_CLKDIV1[OUTDIV4] = 1 divide-by-2 for flash clock + Internal reference clock: + MCG_C1[IREFS] = 1 Internal Reference Select for clock source for FLL + MCG_C1[IRCLKEN] = 1 Internal Reference Clock Enable + FLL multipilication: + MCG_C4[DMX32] = 1 + MCG_C4[DRST_DRS] = 01 FLL factor 1464 * 32.768kHz = 48MHz + +chibios/os/hal/ports/KINETIS/K20x/hal_lld.c + k20x_clock_init(): called in __early_init() defined in board.c + disable watchdog and configure clock + + configurable macros: + KINETIS_NO_INIT: whether init or not + KINETIS_MCG_MODE: clock mode + KINETIS_MCG_MODE_FEI + KINETIS_MCG_MODE_PEE + hal/ports/KINETIS/K20x/hal_lld.h + + +chibios/os/hal/boards/FREESCALE_FREEDOM_K20D50M/board.h + PALConfig pal_default_config + boardInit() + __early_init() + macro definitions for board infos, freq and mcu type + +chibios/os/hal/boards/FREESCALE_FREEDOM_K20D50M/board.c + +USB + + +Startup +------- + common/ports/ARMCMx/GCC/crt0_v[67]m.s + Reset_Handler: startup code + common/ports/ARMCMx/GCC/crt1.c + __core_init(): weak + __early_init(): weak + __late_init(): weak + __default_exit(): weak + called from Reset_Handler of crt0 + common/ports/ARMCMx/GCC/vector.c + common/ports/ARMCMx/GCC/ld/*.ld + +chibios/os/common/ports/ARMCMx/compilers/GCC/ +├── crt0_v6m.s +├── crt0_v7m.s +├── crt1.c +├── ld +│   ├── MK20DX128BLDR3.ld +│   ├── MK20DX128BLDR4.ld +│   ├── MK20DX128.ld +│   ├── MK20DX256.ld +│   ├── MKL25Z128.ld +│   ├── MKL26Z128.ld +│   ├── MKL26Z64.ld +│   └── STM32L476xG.ld +├── mk +│   ├── startup_k20x5.mk +│   ├── startup_k20x7.mk +│   ├── startup_k20x.mk +│   ├── startup_kl2x.mk +│   └── startup_stm32l4xx.mk +├── rules.ld +├── rules.mk +└── vectors.c + +chibios/os/hal/ +├── boards +│   ├── FREESCALE_FREEDOM_K20D50M +│   │   ├── board.c +│   │   ├── board.h +│   │   └── board.mk +│   ├── MCHCK_K20 +│   │   ├── board.c +│   │   ├── board.h +│   │   └── board.mk +│   ├── PJRC_TEENSY_3 +│   │   ├── board.c +│   │   ├── board.h +│   │   └── board.mk +│   ├── PJRC_TEENSY_3_1 +│   │   ├── board.c +│   │   ├── board.h +│   │   └── board.mk +│   ├── PJRC_TEENSY_LC +│   │   ├── board.c +│   │   ├── board.h +│   │   └── board.mk +│   ├── readme.txt +│   ├── simulator +│   │   ├── board.c +│   │   ├── board.h +│   │   └── board.mk +│   ├── ST_NUCLEO_F030R8 +│   │   ├── board.c +│   │   ├── board.h +│   │   ├── board.mk +│   │   └── cfg +│   │   └── board.chcfg +├── hal.mk +├── include +│   ├── adc.h +│   ├── can.h +│   ├── dac.h +│   ├── ext.h +│   ├── gpt.h +│   ├── hal_channels.h +│   ├── hal_files.h +│   ├── hal.h +│   ├── hal_ioblock.h +│   ├── hal_mmcsd.h +│   ├── hal_queues.h +│   ├── hal_streams.h +│   ├── i2c.h +│   ├── i2s.h +│   ├── icu.h +│   ├── mac.h +│   ├── mii.h +│   ├── mmc_spi.h +│   ├── pal.h +│   ├── pwm.h +│   ├── rtc.h +│   ├── sdc.h +│   ├── serial.h +│   ├── serial_usb.h +│   ├── spi.h +│   ├── st.h +│   ├── uart.h +│   └── usb.h +├── lib +│   └── streams +│   ├── chprintf.c +│   ├── chprintf.h +│   ├── memstreams.c +│   ├── memstreams.h +│   ├── nullstreams.c +│   └── nullstreams.h +├── osal +│   ├── nil +│   │   ├── osal.c +│   │   ├── osal.h +│   │   └── osal.mk +│   ├── os-less +│   │   └── ARMCMx +│   │   ├── osal.c +│   │   ├── osal.h +│   │   └── osal.mk +│   └── rt +│   ├── osal.c +│   ├── osal.h +│   └── osal.mk +├── ports +│   ├── AVR +│   ├── common +│   │   └── ARMCMx +│   │   ├── mpu.h +│   │   ├── nvic.c +│   │   └── nvic.h +│   ├── KINETIS +│   │   ├── K20x +│   │   │   ├── hal_lld.c +│   │   │   ├── hal_lld.h +│   │   │   ├── kinetis_registry.h +│   │   │   ├── platform.dox +│   │   │   ├── platform.mk +│   │   │   ├── pwm_lld.c +│   │   │   ├── pwm_lld.h +│   │   │   ├── spi_lld.c +│   │   │   └── spi_lld.h +│   │   ├── KL2x +│   │   │   ├── hal_lld.c +│   │   │   ├── hal_lld.h +│   │   │   ├── kinetis_registry.h +│   │   │   ├── platform.mk +│   │   │   ├── pwm_lld.c +│   │   │   └── pwm_lld.h +│   │   ├── LLD +│   │   │   ├── adc_lld.c +│   │   │   ├── adc_lld.h +│   │   │   ├── ext_lld.c +│   │   │   ├── ext_lld.h +│   │   │   ├── gpt_lld.c +│   │   │   ├── gpt_lld.h +│   │   │   ├── i2c_lld.c +│   │   │   ├── i2c_lld.h +│   │   │   ├── pal_lld.c +│   │   │   ├── pal_lld.h +│   │   │   ├── serial_lld.c +│   │   │   ├── serial_lld.h +│   │   │   ├── st_lld.c +│   │   │   ├── st_lld.h +│   │   │   ├── usb_lld.c +│   │   │   └── usb_lld.h +│   │   └── README.md +│   ├── LPC +│   ├── simulator +│   └── STM32 +├── src +│   ├── adc.c +│   ├── can.c +│   ├── dac.c +│   ├── ext.c +│   ├── gpt.c +│   ├── hal.c +│   ├── hal_mmcsd.c +│   ├── hal_queues.c +│   ├── i2c.c +│   ├── i2s.c +│   ├── icu.c +│   ├── mac.c +│   ├── mmc_spi.c +│   ├── pal.c +│   ├── pwm.c +│   ├── rtc.c +│   ├── sdc.c +│   ├── serial.c +│   ├── serial_usb.c +│   ├── spi.c +│   ├── st.c +│   ├── uart.c +│   └── usb.c +└── templates + ├── adc_lld.c + ├── adc_lld.h + ├── can_lld.c + ├── can_lld.h + ├── dac_lld.c + ├── dac_lld.h + ├── ext_lld.c + ├── ext_lld.h + ├── gpt_lld.c + ├── gpt_lld.h + ├── halconf.h + ├── hal_lld.c + ├── hal_lld.h + ├── i2c_lld.c + ├── i2c_lld.h + ├── i2s_lld.c + ├── i2s_lld.h + ├── icu_lld.c + ├── icu_lld.h + ├── mac_lld.c + ├── mac_lld.h + ├── mcuconf.h + ├── osal + │   ├── osal.c + │   ├── osal.h + │   └── osal.mk + ├── pal_lld.c + ├── pal_lld.h + ├── platform.mk + ├── pwm_lld.c + ├── pwm_lld.h + ├── rtc_lld.c + ├── rtc_lld.h + ├── sdc_lld.c + ├── sdc_lld.h + ├── serial_lld.c + ├── serial_lld.h + ├── spi_lld.c + ├── spi_lld.h + ├── st_lld.c + ├── st_lld.h + ├── uart_lld.c + ├── uart_lld.h + ├── usb_lld.c + └── usb_lld.h diff --git a/keyboards/infinity_chibios/Makefile b/keyboards/infinity_chibios/Makefile new file mode 100644 index 000000000..649b43e64 --- /dev/null +++ b/keyboards/infinity_chibios/Makefile @@ -0,0 +1,70 @@ +# project specific files +SRC = matrix.c \ + led.c + +## chip/board settings +# - the next two should match the directories in +# /os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) +# - For Teensies, FAMILY = KINETIS and SERIES is either +# KL2x (LC) or K20x (3.0,3.1,3.2). +# - For Infinity KB, SERIES = K20x +MCU_FAMILY = KINETIS +MCU_SERIES = K20x + +# Linker script to use +# - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ +# or /ld/ +# - NOTE: a custom ld script is needed for EEPROM on Teensy LC +# - LDSCRIPT = +# - MKL26Z64 for Teensy LC +# - MK20DX128 for Teensy 3.0 +# - MK20DX256 for Teensy 3.1 and 3.2 +# - MK20DX128BLDR4 for Infinity with Kiibohd bootloader +MCU_LDSCRIPT = MK20DX128BLDR4 + +# Startup code to use +# - it should exist in /os/common/ports/ARMCMx/compilers/GCC/mk/ +# - STARTUP = +# - kl2x for Teensy LC +# - k20x5 for Teensy 3.0 and Infinity KB +# - k20x7 for Teensy 3.1 and 3.2 +MCU_STARTUP = k20x5 + +# Board: it should exist either in /os/hal/boards/ +# or /boards +# - BOARD = +# - PJRC_TEENSY_LC for Teensy LC +# - PJRC_TEENSY_3 for Teensy 3.0 +# - PJRC_TEENSY_3_1 for Teensy 3.1 or 3.2 +# - MCHCK_K20 for Infinity KB +BOARD = MCHCK_K20 + +# Cortex version +# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4 +MCU = cortex-m4 + +# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 +# I.e. 6 for Teensy LC; 7 for Teensy 3.x +ARMV = 7 + +# Vector table for application +# 0x00000000-0x00001000 area is occupied by bootlaoder.*/ +# The CORTEX_VTOR... is needed only for MCHCK/Infinity KB +OPT_DEFS = -DCORTEX_VTOR_INIT=0x00001000 + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration +## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.) +MOUSEKEY_ENABLE ?= yes # Mouse keys +EXTRAKEY_ENABLE ?= yes # Audio control and System control +CONSOLE_ENABLE ?= yes # Console for debug +COMMAND_ENABLE ?= yes # Commands for debug and configuration +SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend +NKRO_ENABLE ?= yes # USB Nkey Rollover +CUSTOM_MATRIX ?= yes # Custom matrix file + +ifndef QUANTUM_DIR + include ../../Makefile +endif \ No newline at end of file diff --git a/keyboards/infinity_chibios/bootloader_defs.h b/keyboards/infinity_chibios/bootloader_defs.h new file mode 100644 index 000000000..c67153be6 --- /dev/null +++ b/keyboards/infinity_chibios/bootloader_defs.h @@ -0,0 +1 @@ +#define KIIBOHD_BOOTLOADER diff --git a/keyboards/infinity_chibios/chconf.h b/keyboards/infinity_chibios/chconf.h new file mode 100644 index 000000000..b886c383b --- /dev/null +++ b/keyboards/infinity_chibios/chconf.h @@ -0,0 +1,524 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file templates/chconf.h + * @brief Configuration file template. + * @details A copy of this file must be placed in each project directory, it + * contains the application specific kernel settings. + * + * @addtogroup config + * @details Kernel related settings and hooks. + * @{ + */ + +#ifndef CHCONF_H +#define CHCONF_H + +#define _CHIBIOS_RT_CONF_ + +/*===========================================================================*/ +/** + * @name System timers settings + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System time counter resolution. + * @note Allowed values are 16 or 32 bits. + */ +#define CH_CFG_ST_RESOLUTION 32 + +/** + * @brief System tick frequency. + * @details Frequency of the system timer that drives the system ticks. This + * setting also defines the system tick time unit. + */ +#define CH_CFG_ST_FREQUENCY 1000 + +/** + * @brief Time delta constant for the tick-less mode. + * @note If this value is zero then the system uses the classic + * periodic tick. This value represents the minimum number + * of ticks that is safe to specify in a timeout directive. + * The value one is not valid, timeouts are rounded up to + * this value. + */ +#define CH_CFG_ST_TIMEDELTA 0 + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel parameters and options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Round robin interval. + * @details This constant is the number of system ticks allowed for the + * threads before preemption occurs. Setting this value to zero + * disables the preemption for threads with equal priority and the + * round robin becomes cooperative. Note that higher priority + * threads can still preempt, the kernel is always preemptive. + * @note Disabling the round robin preemption makes the kernel more compact + * and generally faster. + * @note The round robin preemption is not supported in tickless mode and + * must be set to zero in that case. + */ +#define CH_CFG_TIME_QUANTUM 20 + +/** + * @brief Managed RAM size. + * @details Size of the RAM area to be managed by the OS. If set to zero + * then the whole available RAM is used. The core memory is made + * available to the heap allocator and/or can be used directly through + * the simplified core memory allocator. + * + * @note In order to let the OS manage the whole RAM the linker script must + * provide the @p __heap_base__ and @p __heap_end__ symbols. + * @note Requires @p CH_CFG_USE_MEMCORE. + */ +#define CH_CFG_MEMCORE_SIZE 0 + +/** + * @brief Idle thread automatic spawn suppression. + * @details When this option is activated the function @p chSysInit() + * does not spawn the idle thread. The application @p main() + * function becomes the idle thread and must implement an + * infinite loop. + */ +#define CH_CFG_NO_IDLE_THREAD FALSE + +/* Use __WFI in the idle thread for waiting. Does lower the power + * consumption. */ +#define CORTEX_ENABLE_WFI_IDLE TRUE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Performance options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief OS optimization. + * @details If enabled then time efficient rather than space efficient code + * is used when two possible implementations exist. + * + * @note This is not related to the compiler optimization options. + * @note The default is @p TRUE. + */ +#define CH_CFG_OPTIMIZE_SPEED TRUE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Subsystem options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Time Measurement APIs. + * @details If enabled then the time measurement APIs are included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_TM FALSE + +/** + * @brief Threads registry APIs. + * @details If enabled then the registry APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_REGISTRY TRUE + +/** + * @brief Threads synchronization APIs. + * @details If enabled then the @p chThdWait() function is included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_WAITEXIT TRUE + +/** + * @brief Semaphores APIs. + * @details If enabled then the Semaphores APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_SEMAPHORES TRUE + +/** + * @brief Semaphores queuing mode. + * @details If enabled then the threads are enqueued on semaphores by + * priority rather than in FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE + +/** + * @brief Mutexes APIs. + * @details If enabled then the mutexes APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MUTEXES TRUE + +/** + * @brief Enables recursive behavior on mutexes. + * @note Recursive mutexes are heavier and have an increased + * memory footprint. + * + * @note The default is @p FALSE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE + +/** + * @brief Conditional Variables APIs. + * @details If enabled then the conditional variables APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#define CH_CFG_USE_CONDVARS TRUE + +/** + * @brief Conditional Variables APIs with timeout. + * @details If enabled then the conditional variables APIs with timeout + * specification are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_CONDVARS. + */ +#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE + +/** + * @brief Events Flags APIs. + * @details If enabled then the event flags APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_EVENTS TRUE + +/** + * @brief Events Flags APIs with timeout. + * @details If enabled then the events APIs with timeout specification + * are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_EVENTS. + */ +#define CH_CFG_USE_EVENTS_TIMEOUT TRUE + +/** + * @brief Synchronous Messages APIs. + * @details If enabled then the synchronous messages APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MESSAGES TRUE + +/** + * @brief Synchronous Messages queuing mode. + * @details If enabled then messages are served by priority rather than in + * FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_MESSAGES. + */ +#define CH_CFG_USE_MESSAGES_PRIORITY FALSE + +/** + * @brief Mailboxes APIs. + * @details If enabled then the asynchronous messages (mailboxes) APIs are + * included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#define CH_CFG_USE_MAILBOXES TRUE + +/** + * @brief Core Memory Manager APIs. + * @details If enabled then the core memory manager APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MEMCORE TRUE + +/** + * @brief Heap Allocator APIs. + * @details If enabled then the memory heap allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or + * @p CH_CFG_USE_SEMAPHORES. + * @note Mutexes are recommended. + */ +#define CH_CFG_USE_HEAP TRUE + +/** + * @brief Memory Pools Allocator APIs. + * @details If enabled then the memory pools allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MEMPOOLS TRUE + +/** + * @brief Dynamic Threads APIs. + * @details If enabled then the dynamic threads creation APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_WAITEXIT. + * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. + */ +#define CH_CFG_USE_DYNAMIC TRUE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Debug options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Debug option, kernel statistics. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_STATISTICS FALSE + +/** + * @brief Debug option, system state check. + * @details If enabled the correct call protocol for system APIs is checked + * at runtime. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_SYSTEM_STATE_CHECK FALSE + +/** + * @brief Debug option, parameters checks. + * @details If enabled then the checks on the API functions input + * parameters are activated. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_ENABLE_CHECKS FALSE + +/** + * @brief Debug option, consistency checks. + * @details If enabled then all the assertions in the kernel code are + * activated. This includes consistency checks inside the kernel, + * runtime anomalies and port-defined checks. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_ENABLE_ASSERTS FALSE + +/** + * @brief Debug option, trace buffer. + * @details If enabled then the trace buffer is activated. + * + * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. + */ +#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED + +/** + * @brief Trace buffer entries. + * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is + * different from @p CH_DBG_TRACE_MASK_DISABLED. + */ +#define CH_DBG_TRACE_BUFFER_SIZE 128 + +/** + * @brief Debug option, stack checks. + * @details If enabled then a runtime stack check is performed. + * + * @note The default is @p FALSE. + * @note The stack check is performed in a architecture/port dependent way. + * It may not be implemented or some ports. + * @note The default failure mode is to halt the system with the global + * @p panic_msg variable set to @p NULL. + */ +#define CH_DBG_ENABLE_STACK_CHECK FALSE + +/** + * @brief Debug option, stacks initialization. + * @details If enabled then the threads working area is filled with a byte + * value when a thread is created. This can be useful for the + * runtime measurement of the used stack. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_FILL_THREADS FALSE + +/** + * @brief Debug option, threads profiling. + * @details If enabled then a field is added to the @p thread_t structure that + * counts the system ticks occurred while executing the thread. + * + * @note The default is @p FALSE. + * @note This debug option is not currently compatible with the + * tickless mode. + */ +#define CH_DBG_THREADS_PROFILING FALSE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel hooks + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Threads descriptor structure extension. + * @details User fields added to the end of the @p thread_t structure. + */ +#define CH_CFG_THREAD_EXTRA_FIELDS \ + /* Add threads custom fields here.*/ + +/** + * @brief Threads initialization hook. + * @details User initialization code added to the @p chThdInit() API. + * + * @note It is invoked from within @p chThdInit() and implicitly from all + * the threads creation APIs. + */ +#define CH_CFG_THREAD_INIT_HOOK(tp) { \ + /* Add threads initialization code here.*/ \ +} + +/** + * @brief Threads finalization hook. + * @details User finalization code added to the @p chThdExit() API. + */ +#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ + /* Add threads finalization code here.*/ \ +} + +/** + * @brief Context switch hook. + * @details This hook is invoked just before switching between threads. + */ +#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ + /* Context switch code here.*/ \ +} + +/** + * @brief ISR enter hook. + */ +#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ + /* IRQ prologue code here.*/ \ +} + +/** + * @brief ISR exit hook. + */ +#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ + /* IRQ epilogue code here.*/ \ +} + +/** + * @brief Idle thread enter hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to activate a power saving mode. + */ +#define CH_CFG_IDLE_ENTER_HOOK() { \ + /* Idle-enter code here.*/ \ +} + +/** + * @brief Idle thread leave hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to deactivate a power saving mode. + */ +#define CH_CFG_IDLE_LEAVE_HOOK() { \ + /* Idle-leave code here.*/ \ +} + +/** + * @brief Idle Loop hook. + * @details This hook is continuously invoked by the idle thread loop. + */ +#define CH_CFG_IDLE_LOOP_HOOK() { \ + /* Idle loop code here.*/ \ +} + +/** + * @brief System tick event hook. + * @details This hook is invoked in the system tick handler immediately + * after processing the virtual timers queue. + */ +#define CH_CFG_SYSTEM_TICK_HOOK() { \ + /* System tick event code here.*/ \ +} + +/** + * @brief System halt hook. + * @details This hook is invoked in case to a system halting error before + * the system is halted. + */ +#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ + /* System halt code here.*/ \ +} + +/** + * @brief Trace hook. + * @details This hook is invoked each time a new record is written in the + * trace buffer. + */ +#define CH_CFG_TRACE_HOOK(tep) { \ + /* Trace code here.*/ \ +} + +/** @} */ + +/*===========================================================================*/ +/* Port-specific settings (override port settings defaulted in chcore.h). */ +/*===========================================================================*/ + +#endif /* CHCONF_H */ + +/** @} */ diff --git a/keyboards/infinity_chibios/config.h b/keyboards/infinity_chibios/config.h new file mode 100644 index 000000000..cb9022205 --- /dev/null +++ b/keyboards/infinity_chibios/config.h @@ -0,0 +1,75 @@ +/* +Copyright 2015 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6464 +#define DEVICE_VER 0x0001 +/* in python2: list(u"whatever".encode('utf-16-le')) */ +/* at most 32 characters or the ugly hack in usb_main.c borks */ +#define MANUFACTURER "TMK" +#define USBSTR_MANUFACTURER 'T', '\x00', 'M', '\x00', 'K', '\x00', ' ', '\x00', '\xc6', '\x00' +#define PRODUCT "Infinity keyboard/TMK" +#define USBSTR_PRODUCT 'I', '\x00', 'n', '\x00', 'f', '\x00', 'i', '\x00', 'n', '\x00', 'i', '\x00', 't', '\x00', 'y', '\x00', ' ', '\x00', 'k', '\x00', 'e', '\x00', 'y', '\x00', 'b', '\x00', 'o', '\x00', 'a', '\x00', 'r', '\x00', 'd', '\x00', '/', '\x00', 'T', '\x00', 'M', '\x00', 'K', '\x00' + +/* key matrix size */ +#define MATRIX_ROWS 9 +#define MATRIX_COLS 7 + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +//#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +//#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* Keymap for Infiity prototype */ +#define INFINITY_PROTOTYPE + + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/infinity_chibios/halconf.h b/keyboards/infinity_chibios/halconf.h new file mode 100644 index 000000000..53538de14 --- /dev/null +++ b/keyboards/infinity_chibios/halconf.h @@ -0,0 +1,353 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file templates/halconf.h + * @brief HAL configuration header. + * @details HAL configuration file, this file allows to enable or disable the + * various device drivers from your application. You may also use + * this file in order to override the device drivers default settings. + * + * @addtogroup HAL_CONF + * @{ + */ + +#ifndef _HALCONF_H_ +#define _HALCONF_H_ + +#include "mcuconf.h" + +/** + * @brief Enables the PAL subsystem. + */ +#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) +#define HAL_USE_PAL TRUE +#endif + +/** + * @brief Enables the ADC subsystem. + */ +#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) +#define HAL_USE_ADC FALSE +#endif + +/** + * @brief Enables the CAN subsystem. + */ +#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) +#define HAL_USE_CAN FALSE +#endif + +/** + * @brief Enables the DAC subsystem. + */ +#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) +#define HAL_USE_DAC FALSE +#endif + +/** + * @brief Enables the EXT subsystem. + */ +#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__) +#define HAL_USE_EXT FALSE +#endif + +/** + * @brief Enables the GPT subsystem. + */ +#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) +#define HAL_USE_GPT FALSE +#endif + +/** + * @brief Enables the I2C subsystem. + */ +#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) +#define HAL_USE_I2C FALSE +#endif + +/** + * @brief Enables the I2S subsystem. + */ +#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) +#define HAL_USE_I2S FALSE +#endif + +/** + * @brief Enables the ICU subsystem. + */ +#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) +#define HAL_USE_ICU FALSE +#endif + +/** + * @brief Enables the MAC subsystem. + */ +#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) +#define HAL_USE_MAC FALSE +#endif + +/** + * @brief Enables the MMC_SPI subsystem. + */ +#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) +#define HAL_USE_MMC_SPI FALSE +#endif + +/** + * @brief Enables the PWM subsystem. + */ +#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) +#define HAL_USE_PWM FALSE +#endif + +/** + * @brief Enables the RTC subsystem. + */ +#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) +#define HAL_USE_RTC FALSE +#endif + +/** + * @brief Enables the SDC subsystem. + */ +#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) +#define HAL_USE_SDC FALSE +#endif + +/** + * @brief Enables the SERIAL subsystem. + */ +#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL FALSE +#endif + +/** + * @brief Enables the SERIAL over USB subsystem. + */ +#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL_USB TRUE +#endif + +/** + * @brief Enables the SPI subsystem. + */ +#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) +#define HAL_USE_SPI FALSE +#endif + +/** + * @brief Enables the UART subsystem. + */ +#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) +#define HAL_USE_UART FALSE +#endif + +/** + * @brief Enables the USB subsystem. + */ +#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) +#define HAL_USE_USB TRUE +#endif + +/** + * @brief Enables the WDG subsystem. + */ +#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) +#define HAL_USE_WDG FALSE +#endif + +/*===========================================================================*/ +/* ADC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) +#define ADC_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define ADC_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* CAN driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Sleep mode related APIs inclusion switch. + */ +#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) +#define CAN_USE_SLEEP_MODE TRUE +#endif + +/*===========================================================================*/ +/* I2C driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the mutual exclusion APIs on the I2C bus. + */ +#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define I2C_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* MAC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) +#define MAC_USE_ZERO_COPY FALSE +#endif + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) +#define MAC_USE_EVENTS TRUE +#endif + +/*===========================================================================*/ +/* MMC_SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + * This option is recommended also if the SPI driver does not + * use a DMA channel and heavily loads the CPU. + */ +#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) +#define MMC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SDC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Number of initialization attempts before rejecting the card. + * @note Attempts are performed at 10mS intervals. + */ +#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) +#define SDC_INIT_RETRY 100 +#endif + +/** + * @brief Include support for MMC cards. + * @note MMC support is not yet implemented so this option must be kept + * at @p FALSE. + */ +#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) +#define SDC_MMC_SUPPORT FALSE +#endif + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + */ +#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) +#define SDC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SERIAL driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Default bit rate. + * @details Configuration parameter, this is the baud rate selected for the + * default configuration. + */ +#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) +#define SERIAL_DEFAULT_BITRATE 38400 +#endif + +/** + * @brief Serial buffers size. + * @details Configuration parameter, you can change the depth of the queue + * buffers depending on the requirements of your application. + * @note The default is 64 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_BUFFERS_SIZE 16 +#endif + +/*===========================================================================*/ +/* SERIAL_USB driver related setting. */ +/*===========================================================================*/ + +/** + * @brief Serial over USB buffers size. + * @details Configuration parameter, the buffer size must be a multiple of + * the USB data endpoint maximum packet size. + * @note The default is 64 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_USB_BUFFERS_SIZE 256 +#endif + +/*===========================================================================*/ +/* SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) +#define SPI_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define SPI_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* USB driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) +#define USB_USE_WAIT TRUE +#endif + +#endif /* _HALCONF_H_ */ + +/** @} */ diff --git a/keyboards/infinity_chibios/infinity_chibios.c b/keyboards/infinity_chibios/infinity_chibios.c new file mode 100644 index 000000000..845eda01b --- /dev/null +++ b/keyboards/infinity_chibios/infinity_chibios.c @@ -0,0 +1,17 @@ +/* +Copyright 2012,2013 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include "infinity_chibios.h" diff --git a/keyboards/infinity_chibios/infinity_chibios.h b/keyboards/infinity_chibios/infinity_chibios.h new file mode 100644 index 000000000..a44c68b82 --- /dev/null +++ b/keyboards/infinity_chibios/infinity_chibios.h @@ -0,0 +1,66 @@ +/* +Copyright 2014 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#ifndef KEYMAP_COMMON_H +#define KEYMAP_COMMON_H + +#include "quantum.h" + +#ifdef INFINITY_PROTOTYPE + +/* Infinity prototype */ +#define KEYMAP( \ + K00, K10, K20, K30, K40, K50, K60, K70, K80, K01, K11, K21, K31, K41, K86, \ + K51, K61, K71, K81, K02, K12, K22, K32, K42, K52, K62, K72, K82, K03, \ + K13, K23, K33, K43, K53, K63, K73, K83, K04, K14, K24, K34, K44, \ + K54, K64, K74, K84, K05, K15, K25, K35, K45, K55, K65, K75, K85, \ + K06, K16, K26, K36, K46, K56, K66, K76 \ +) { \ + { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06 }, \ + { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16 }, \ + { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26 }, \ + { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36 }, \ + { KC_##K40, KC_##K41, KC_##K42, KC_##K43, KC_##K44, KC_##K45, KC_##K46 }, \ + { KC_##K50, KC_##K51, KC_##K52, KC_##K53, KC_##K54, KC_##K55, KC_##K56 }, \ + { KC_##K60, KC_##K61, KC_##K62, KC_##K63, KC_##K64, KC_##K65, KC_##K66 }, \ + { KC_##K70, KC_##K71, KC_##K72, KC_##K73, KC_##K74, KC_##K75, KC_##K76 }, \ + { KC_##K80, KC_##K81, KC_##K82, KC_##K83, KC_##K84, KC_##K85, KC_##K86 } \ +} + +#else + +/* Infinity production */ +#define KEYMAP( \ + K00, K10, K20, K30, K40, K50, K60, K70, K80, K01, K11, K21, K31, K41, K51, \ + K61, K71, K81, K02, K12, K22, K32, K42, K52, K62, K72, K82, K03, K13, \ + K23, K33, K43, K53, K63, K73, K83, K04, K14, K24, K34, K44, K54, \ + K64, K74, K84, K05, K15, K25, K35, K45, K55, K65, K75, K85, K06, \ + K16, K26, K36, K46, K56, K66, K76, K86 \ +) { \ + { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06 }, \ + { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16 }, \ + { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26 }, \ + { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36 }, \ + { KC_##K40, KC_##K41, KC_##K42, KC_##K43, KC_##K44, KC_##K45, KC_##K46 }, \ + { KC_##K50, KC_##K51, KC_##K52, KC_##K53, KC_##K54, KC_##K55, KC_##K56 }, \ + { KC_##K60, KC_##K61, KC_##K62, KC_##K63, KC_##K64, KC_##K65, KC_##K66 }, \ + { KC_##K70, KC_##K71, KC_##K72, KC_##K73, KC_##K74, KC_##K75, KC_##K76 }, \ + { KC_##K80, KC_##K81, KC_##K82, KC_##K83, KC_##K84, KC_##K85, KC_##K86 } \ +} + +#endif + +#endif diff --git a/keyboards/infinity_chibios/keymaps/default/keymap.c b/keyboards/infinity_chibios/keymaps/default/keymap.c new file mode 100644 index 000000000..2acf72849 --- /dev/null +++ b/keyboards/infinity_chibios/keymaps/default/keymap.c @@ -0,0 +1,48 @@ +#include "infinity_chibios.h" + +const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Layer 0: Default Layer + * ,-----------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| `|BSp| + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| + * |-----------------------------------------------------------| + * |Contro| A| S| D| F| G| H| J| K| L| ;| '|Enter | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn0| + * |-----------------------------------------------------------' + * | |Gui|Alt | Space |Alt |Gui| | | + * `-----------------------------------------------------------' + */ + [0] = + KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSLS, GRV, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSPC, \ + LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT,ENT, \ + LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH,RSFT,FN0, \ + NO, LGUI,LALT, SPC, RALT,RGUI,NO, NO), + + /* Layer 1: HHKB mode (HHKB Fn) + * ,-----------------------------------------------------------. + * |Pwr| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| + * |-----------------------------------------------------------| + * |Caps | | | | | | | |Psc|Slk|Pus|Up | |Backs| + * |-----------------------------------------------------------| + * | |VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter | + * |-----------------------------------------------------------| + * | | | | | | | +| -|End|PgD|Dow| | | + * `-----------------------------------------------------------' + * | |Gui|Alt | Space |Alt |Gui| | | + * `-----------------------------------------------------------' + */ + [1] = + KEYMAP(PWR, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ + CAPS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,SLCK,PAUS, UP, TRNS, BSPC, \ + TRNS,VOLD,VOLU,MUTE,TRNS,TRNS,PAST,PSLS,HOME,PGUP,LEFT,RGHT,PENT, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PPLS,PMNS,END, PGDN,DOWN,TRNS,TRNS, \ + TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), +}; + +const uint16_t fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(1), +}; + diff --git a/keyboards/infinity_chibios/keymaps/hasu/keymap.c b/keyboards/infinity_chibios/keymaps/hasu/keymap.c new file mode 100644 index 000000000..e9a212f0e --- /dev/null +++ b/keyboards/infinity_chibios/keymaps/hasu/keymap.c @@ -0,0 +1,199 @@ +#include "infinity_chibios.h" + +const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Layer 0: Default Layer + * ,-----------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| `|BSp| + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| + * |-----------------------------------------------------------| + * |Contro| A| S| D| F| G| H| J| K| L| ;| '|Enter | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn0| + * |-----------------------------------------------------------' + * | |Gui|Alt | Space |Alt |Gui| | | + * `-----------------------------------------------------------' + */ + [0] = + KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSLS,GRV, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSPC, \ + LCTL,A, S, D, F, G, H, J, K, L, FN3, QUOT,FN6, \ + FN7, Z, X, C, V, B, N, M, COMM,DOT, FN2, RSFT,FN1, \ + NO, LGUI,LALT, FN4, FN5, RGUI,NO, NO), + + /* Layer 1: HHKB mode (HHKB Fn) + * ,-----------------------------------------------------------. + * |Pwr| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| + * |-----------------------------------------------------------| + * |Caps | | | | | | | |Psc|Slk|Pus|Up | |Backs| + * |-----------------------------------------------------------| + * | |VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter | + * |-----------------------------------------------------------| + * | | | | | | | +| -|End|PgD|Dow| | | + * `-----------------------------------------------------------' + * | |Gui|Alt | Space |Alt |Gui| | | + * `-----------------------------------------------------------' + */ + [1] = + KEYMAP(PWR, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ + CAPS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,SLCK,PAUS, UP, TRNS,BSPC, \ + LCTL,VOLD,VOLU,MUTE,TRNS,TRNS,PAST,PSLS,HOME,PGUP,LEFT,RGHT,ENT, \ + LSFT,TRNS,TRNS,TRNS,TRNS,TRNS,PPLS,PMNS,END, PGDN,DOWN,RSFT,TRNS, \ + TRNS,LGUI,LALT, TRNS, RALT,RGUI,TRNS,TRNS), + + /* Layer 2: Vi mode[Slash] + * ,-----------------------------------------------------------. + * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| + * |-----------------------------------------------------------| + * |Tab |Hom|PgD|Up |PgU|End|Hom|PgD|PgUlEnd| | | |Backs| + * |-----------------------------------------------------------| + * |Contro| |Lef|Dow|Rig| |Lef|Dow|Up |Rig| | |Return | + * |-----------------------------------------------------------| + * |Shift | | | | | |Hom|PgD|PgUlEnd|Fn0|Shift | | + * `-----------------------------------------------------------' + * |Gui|Alt | Space |Alt |Gui| + * `-------------------------------------------' + */ + [2] = \ + KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ + TAB, HOME,PGDN,UP, PGUP,END, HOME,PGDN,PGUP,END, NO, NO, NO, BSPC, \ + LCTL,NO, LEFT,DOWN,RGHT,NO, LEFT,DOWN,UP, RGHT,NO, NO, ENT, \ + LSFT,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, FN2, RSFT,TRNS, \ + TRNS,LGUI,LALT, SPC, RALT,RGUI,TRNS,TRNS), + + /* Layer 3: Mouse mode(IJKL)[Semicolon] + * ,-----------------------------------------------------------. + * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| + * |-----------------------------------------------------------| + * |Tab | | | | | |MwL|MwD|McU|MwU|MwR|Wbk|Wfr|Alt-T| + * |-----------------------------------------------------------| + * |Contro| | | | | |Mb2|McL|McD|McR|Fn | |Return | + * |-----------------------------------------------------------| + * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | | + * `-----------------------------------------------------------' + * |Gui |Alt | Mb1 |Fn |Fn | + * `--------------------------------------------' + * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel + */ + [3] = \ + KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ + FN8, NO, NO, NO, NO, NO, WH_L,WH_D,MS_U,WH_U,WH_R,FN9, FN10,FN8, \ + LCTL,ACL0,ACL1,ACL2,ACL2,NO, NO, MS_L,MS_D,MS_R,FN3, NO, ENT, \ + LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,FN9, FN10,NO, RSFT,TRNS, \ + TRNS,LGUI,LALT, BTN1, TRNS,TRNS,TRNS,TRNS), + + /* Layer 4: Mouse mode(IJKL)[Space] + * ,-----------------------------------------------------------. + * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| + * |-----------------------------------------------------------| + * |Tab | | | | | |MwL|MwD|McU|MwU|MwR|Wbk|Wfr|Alt-T| + * |-----------------------------------------------------------| + * |Contro| | | | | |Mb2|McL|McD|McR|Mb1| |Return | + * |-----------------------------------------------------------| + * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | | + * `-----------------------------------------------------------' + * |Gui |Alt | Mb1 |Fn |Fn | + * `--------------------------------------------' + * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel + */ + [4] = \ + KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ + FN8, NO, NO, NO, NO, NO, WH_L,WH_D,MS_U,WH_U,WH_R,BTN4,BTN5,FN8, \ + LCTL,VOLD,VOLU,MUTE,NO, NO, NO, MS_L,MS_D,MS_R,BTN1,NO, ENT, \ + LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,FN9, FN10,NO, RSFT,TRNS, \ + TRNS,LGUI,LALT, TRNS, TRNS,TRNS,TRNS,TRNS), + +}; + +/* id for user defined functions */ +enum function_id { + LSHIFT_LPAREN, +}; + +enum macro_id { + HELLO, + VOLUP, + ALT_TAB, +}; + +/* + * Fn action definition + */ +const uint16_t fn_actions[] = { + [0] = ACTION_DEFAULT_LAYER_SET(0), // Default layer(not used) + [1] = ACTION_LAYER_TAP_TOGGLE(1), // HHKB layer(toggle with 5 taps) + [2] = ACTION_LAYER_TAP_KEY(2, KC_SLASH), // Cursor layer with Slash* + [3] = ACTION_LAYER_TAP_KEY(3, KC_SCLN), // Mousekey layer with Semicolon* + [4] = ACTION_LAYER_TAP_KEY(4, KC_SPC), // Mousekey layer with Space + [5] = ACTION_LAYER_MOMENTARY(4), // Mousekey layer(IJKL) + [6] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_ENT), // RControl with tap Enter + [7] = ACTION_MODS_ONESHOT(MOD_LSFT), // Oneshot Shift + [8] = ACTION_MACRO(ALT_TAB), // Application switching + [9] = ACTION_MODS_KEY(MOD_LALT, KC_LEFT), + [10] = ACTION_MODS_KEY(MOD_LALT, KC_RIGHT), +}; + +/* + * Macro definition + */ +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch (id) { + case HELLO: + return (record->event.pressed ? + MACRO( I(0), T(H), T(E), T(L), T(L), W(255), T(O), END ) : + MACRO_NONE ); + case VOLUP: + return (record->event.pressed ? + MACRO( D(VOLU), U(VOLU), END ) : + MACRO_NONE ); + case ALT_TAB: + return (record->event.pressed ? + MACRO( D(LALT), D(TAB), END ) : + MACRO( U(TAB), END )); + } + return MACRO_NONE; +} + + + +/* + * user defined action function + */ +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + if (record->event.pressed) dprint("P"); else dprint("R"); + dprintf("%d", record->tap.count); + if (record->tap.interrupted) dprint("i"); + dprint("\n"); + + switch (id) { + case LSHIFT_LPAREN: + // Shift parentheses example: LShft + tap '(' + // http://stevelosh.com/blog/2012/10/a-modern-space-cadet/#shift-parentheses + // http://geekhack.org/index.php?topic=41989.msg1304899#msg1304899 + if (record->event.pressed) { + if (record->tap.count > 0 && !record->tap.interrupted) { + if (record->tap.interrupted) { + dprint("tap interrupted\n"); + register_mods(MOD_BIT(KC_LSHIFT)); + } + } else { + register_mods(MOD_BIT(KC_LSHIFT)); + } + } else { + if (record->tap.count > 0 && !(record->tap.interrupted)) { + add_weak_mods(MOD_BIT(KC_LSHIFT)); + send_keyboard_report(); + register_code(KC_9); + unregister_code(KC_9); + del_weak_mods(MOD_BIT(KC_LSHIFT)); + send_keyboard_report(); + record->tap.count = 0; // ad hoc: cancel tap + } else { + unregister_mods(MOD_BIT(KC_LSHIFT)); + } + } + break; + } +} diff --git a/keyboards/infinity_chibios/led.c b/keyboards/infinity_chibios/led.c new file mode 100644 index 000000000..aed66c7c0 --- /dev/null +++ b/keyboards/infinity_chibios/led.c @@ -0,0 +1,24 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "hal.h" + +#include "led.h" + + +void led_set(uint8_t usb_led) { +} diff --git a/keyboards/infinity_chibios/matrix.c b/keyboards/infinity_chibios/matrix.c new file mode 100644 index 000000000..2c68ea83a --- /dev/null +++ b/keyboards/infinity_chibios/matrix.c @@ -0,0 +1,128 @@ +#include +#include +#include +#include "hal.h" +#include "timer.h" +#include "wait.h" +#include "print.h" +#include "matrix.h" + + +/* + * Infinity Pinusage: + * Column pins are input with internal pull-down. Row pins are output and strobe with high. + * Key is high or 1 when it turns on. + * + * col: { PTD1, PTD2, PTD3, PTD4, PTD5, PTD6, PTD7 } + * row: { PTB0, PTB1, PTB2, PTB3, PTB16, PTB17, PTC4, PTC5, PTD0 } + */ +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; +static matrix_row_t matrix_debouncing[MATRIX_ROWS]; +static bool debouncing = false; +static uint16_t debouncing_time = 0; + + +void matrix_init(void) +{ + /* Column(sense) */ + palSetPadMode(GPIOD, 1, PAL_MODE_INPUT_PULLDOWN); + palSetPadMode(GPIOD, 2, PAL_MODE_INPUT_PULLDOWN); + palSetPadMode(GPIOD, 3, PAL_MODE_INPUT_PULLDOWN); + palSetPadMode(GPIOD, 4, PAL_MODE_INPUT_PULLDOWN); + palSetPadMode(GPIOD, 5, PAL_MODE_INPUT_PULLDOWN); + palSetPadMode(GPIOD, 6, PAL_MODE_INPUT_PULLDOWN); + palSetPadMode(GPIOD, 7, PAL_MODE_INPUT_PULLDOWN); + + /* Row(strobe) */ + palSetPadMode(GPIOB, 0, PAL_MODE_OUTPUT_PUSHPULL); + palSetPadMode(GPIOB, 1, PAL_MODE_OUTPUT_PUSHPULL); + palSetPadMode(GPIOB, 2, PAL_MODE_OUTPUT_PUSHPULL); + palSetPadMode(GPIOB, 3, PAL_MODE_OUTPUT_PUSHPULL); + palSetPadMode(GPIOB, 16, PAL_MODE_OUTPUT_PUSHPULL); + palSetPadMode(GPIOB, 17, PAL_MODE_OUTPUT_PUSHPULL); + palSetPadMode(GPIOC, 4, PAL_MODE_OUTPUT_PUSHPULL); + palSetPadMode(GPIOC, 5, PAL_MODE_OUTPUT_PUSHPULL); + palSetPadMode(GPIOD, 0, PAL_MODE_OUTPUT_PUSHPULL); + + memset(matrix, 0, MATRIX_ROWS); + memset(matrix_debouncing, 0, MATRIX_ROWS); +} + +uint8_t matrix_scan(void) +{ + for (int row = 0; row < MATRIX_ROWS; row++) { + matrix_row_t data = 0; + + // strobe row + switch (row) { + case 0: palSetPad(GPIOB, 0); break; + case 1: palSetPad(GPIOB, 1); break; + case 2: palSetPad(GPIOB, 2); break; + case 3: palSetPad(GPIOB, 3); break; + case 4: palSetPad(GPIOB, 16); break; + case 5: palSetPad(GPIOB, 17); break; + case 6: palSetPad(GPIOC, 4); break; + case 7: palSetPad(GPIOC, 5); break; + case 8: palSetPad(GPIOD, 0); break; + } + + wait_us(1); // need wait to settle pin state + + // read col data + data = (palReadPort(GPIOD)>>1); + + // un-strobe row + switch (row) { + case 0: palClearPad(GPIOB, 0); break; + case 1: palClearPad(GPIOB, 1); break; + case 2: palClearPad(GPIOB, 2); break; + case 3: palClearPad(GPIOB, 3); break; + case 4: palClearPad(GPIOB, 16); break; + case 5: palClearPad(GPIOB, 17); break; + case 6: palClearPad(GPIOC, 4); break; + case 7: palClearPad(GPIOC, 5); break; + case 8: palClearPad(GPIOD, 0); break; + } + + if (matrix_debouncing[row] != data) { + matrix_debouncing[row] = data; + debouncing = true; + debouncing_time = timer_read(); + } + } + + if (debouncing && timer_elapsed(debouncing_time) > DEBOUNCE) { + for (int row = 0; row < MATRIX_ROWS; row++) { + matrix[row] = matrix_debouncing[row]; + } + debouncing = false; + } + return 1; +} + +bool matrix_is_on(uint8_t row, uint8_t col) +{ + return (matrix[row] & (1</os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) +MCU_FAMILY = STM32 +MCU_SERIES = STM32F0xx +# linker script to use +# it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ +# or /ld/ +MCU_LDSCRIPT = STM32F072xB +# startup code to use +# is should exist in /os/common/ports/ARMCMx/compilers/GCC/mk/ +MCU_STARTUP = stm32f0xx +# it should exist either in /os/hal/boards/ +# or /boards +BOARD = ST_STM32F072B_DISCOVERY +# Cortex version +# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4 +MCU = cortex-m0 +# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 +ARMV = 6 +# If you want to be able to jump to bootloader from firmware on STM32 MCUs, +# set the correct BOOTLOADER_ADDRESS. Either set it here, or define it in +# ./bootloader_defs.h or in ./boards//bootloader_defs.h (if you have +# a custom board definition that you plan to reuse). +# If you're not setting it here, leave it commented out. +# It is chip dependent, the correct number can be looked up here (page 175): +# http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf +# This also requires a patch to chibios: +# /tmk_core/tool/chibios/ch-bootloader-jump.patch +#STM32_BOOTLOADER_ADDRESS = 0x1FFFC800 + +# Build Options +# comment out to disable the options. +# +#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +MOUSEKEY_ENABLE ?= yes # Mouse keys +EXTRAKEY_ENABLE ?= yes # Audio control and System control +CONSOLE_ENABLE ?= yes # Console for debug +COMMAND_ENABLE ?= yes # Commands for debug and configuration +SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend +NKRO_ENABLE ?= yes # USB Nkey Rollover +CUSTOM_MATRIX ?= yes # Custom matrix file + +ifndef QUANTUM_DIR + include ../../Makefile +endif diff --git a/keyboards/stm32_f072_onekey/bootloader_defs.h b/keyboards/stm32_f072_onekey/bootloader_defs.h new file mode 100644 index 000000000..02c48c4e6 --- /dev/null +++ b/keyboards/stm32_f072_onekey/bootloader_defs.h @@ -0,0 +1,7 @@ +/* Address for jumping to bootloader on STM32 chips. */ +/* It is chip dependent, the correct number can be looked up here (page 175): + * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf + * This also requires a patch to chibios: + * /tmk_core/tool/chibios/ch-bootloader-jump.patch + */ +#define STM32_BOOTLOADER_ADDRESS 0x1FFFC800 diff --git a/keyboards/stm32_f072_onekey/chconf.h b/keyboards/stm32_f072_onekey/chconf.h new file mode 100644 index 000000000..99fa8ce39 --- /dev/null +++ b/keyboards/stm32_f072_onekey/chconf.h @@ -0,0 +1,524 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file templates/chconf.h + * @brief Configuration file template. + * @details A copy of this file must be placed in each project directory, it + * contains the application specific kernel settings. + * + * @addtogroup config + * @details Kernel related settings and hooks. + * @{ + */ + +#ifndef CHCONF_H +#define CHCONF_H + +#define _CHIBIOS_RT_CONF_ + +/*===========================================================================*/ +/** + * @name System timers settings + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System time counter resolution. + * @note Allowed values are 16 or 32 bits. + */ +#define CH_CFG_ST_RESOLUTION 32 + +/** + * @brief System tick frequency. + * @details Frequency of the system timer that drives the system ticks. This + * setting also defines the system tick time unit. + */ +#define CH_CFG_ST_FREQUENCY 10000 + +/** + * @brief Time delta constant for the tick-less mode. + * @note If this value is zero then the system uses the classic + * periodic tick. This value represents the minimum number + * of ticks that is safe to specify in a timeout directive. + * The value one is not valid, timeouts are rounded up to + * this value. + */ +#define CH_CFG_ST_TIMEDELTA 2 + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel parameters and options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Round robin interval. + * @details This constant is the number of system ticks allowed for the + * threads before preemption occurs. Setting this value to zero + * disables the preemption for threads with equal priority and the + * round robin becomes cooperative. Note that higher priority + * threads can still preempt, the kernel is always preemptive. + * @note Disabling the round robin preemption makes the kernel more compact + * and generally faster. + * @note The round robin preemption is not supported in tickless mode and + * must be set to zero in that case. + */ +#define CH_CFG_TIME_QUANTUM 0 + +/** + * @brief Managed RAM size. + * @details Size of the RAM area to be managed by the OS. If set to zero + * then the whole available RAM is used. The core memory is made + * available to the heap allocator and/or can be used directly through + * the simplified core memory allocator. + * + * @note In order to let the OS manage the whole RAM the linker script must + * provide the @p __heap_base__ and @p __heap_end__ symbols. + * @note Requires @p CH_CFG_USE_MEMCORE. + */ +#define CH_CFG_MEMCORE_SIZE 0 + +/** + * @brief Idle thread automatic spawn suppression. + * @details When this option is activated the function @p chSysInit() + * does not spawn the idle thread. The application @p main() + * function becomes the idle thread and must implement an + * infinite loop. + */ +#define CH_CFG_NO_IDLE_THREAD FALSE + +/* Use __WFI in the idle thread for waiting. Does lower the power + * consumption. */ +#define CORTEX_ENABLE_WFI_IDLE TRUE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Performance options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief OS optimization. + * @details If enabled then time efficient rather than space efficient code + * is used when two possible implementations exist. + * + * @note This is not related to the compiler optimization options. + * @note The default is @p TRUE. + */ +#define CH_CFG_OPTIMIZE_SPEED FALSE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Subsystem options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Time Measurement APIs. + * @details If enabled then the time measurement APIs are included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_TM FALSE + +/** + * @brief Threads registry APIs. + * @details If enabled then the registry APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_REGISTRY TRUE + +/** + * @brief Threads synchronization APIs. + * @details If enabled then the @p chThdWait() function is included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_WAITEXIT TRUE + +/** + * @brief Semaphores APIs. + * @details If enabled then the Semaphores APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_SEMAPHORES TRUE + +/** + * @brief Semaphores queuing mode. + * @details If enabled then the threads are enqueued on semaphores by + * priority rather than in FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE + +/** + * @brief Mutexes APIs. + * @details If enabled then the mutexes APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MUTEXES TRUE + +/** + * @brief Enables recursive behavior on mutexes. + * @note Recursive mutexes are heavier and have an increased + * memory footprint. + * + * @note The default is @p FALSE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE + +/** + * @brief Conditional Variables APIs. + * @details If enabled then the conditional variables APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#define CH_CFG_USE_CONDVARS TRUE + +/** + * @brief Conditional Variables APIs with timeout. + * @details If enabled then the conditional variables APIs with timeout + * specification are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_CONDVARS. + */ +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE + +/** + * @brief Events Flags APIs. + * @details If enabled then the event flags APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_EVENTS TRUE + +/** + * @brief Events Flags APIs with timeout. + * @details If enabled then the events APIs with timeout specification + * are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_EVENTS. + */ +#define CH_CFG_USE_EVENTS_TIMEOUT TRUE + +/** + * @brief Synchronous Messages APIs. + * @details If enabled then the synchronous messages APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MESSAGES TRUE + +/** + * @brief Synchronous Messages queuing mode. + * @details If enabled then messages are served by priority rather than in + * FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_MESSAGES. + */ +#define CH_CFG_USE_MESSAGES_PRIORITY FALSE + +/** + * @brief Mailboxes APIs. + * @details If enabled then the asynchronous messages (mailboxes) APIs are + * included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#define CH_CFG_USE_MAILBOXES TRUE + +/** + * @brief Core Memory Manager APIs. + * @details If enabled then the core memory manager APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MEMCORE FALSE + +/** + * @brief Heap Allocator APIs. + * @details If enabled then the memory heap allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or + * @p CH_CFG_USE_SEMAPHORES. + * @note Mutexes are recommended. + */ +#define CH_CFG_USE_HEAP FALSE + +/** + * @brief Memory Pools Allocator APIs. + * @details If enabled then the memory pools allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MEMPOOLS FALSE + +/** + * @brief Dynamic Threads APIs. + * @details If enabled then the dynamic threads creation APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_WAITEXIT. + * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. + */ +#define CH_CFG_USE_DYNAMIC FALSE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Debug options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Debug option, kernel statistics. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_STATISTICS FALSE + +/** + * @brief Debug option, system state check. + * @details If enabled the correct call protocol for system APIs is checked + * at runtime. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_SYSTEM_STATE_CHECK FALSE + +/** + * @brief Debug option, parameters checks. + * @details If enabled then the checks on the API functions input + * parameters are activated. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_ENABLE_CHECKS FALSE + +/** + * @brief Debug option, consistency checks. + * @details If enabled then all the assertions in the kernel code are + * activated. This includes consistency checks inside the kernel, + * runtime anomalies and port-defined checks. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_ENABLE_ASSERTS FALSE + +/** + * @brief Debug option, trace buffer. + * @details If enabled then the trace buffer is activated. + * + * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. + */ +#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED + +/** + * @brief Trace buffer entries. + * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is + * different from @p CH_DBG_TRACE_MASK_DISABLED. + */ +#define CH_DBG_TRACE_BUFFER_SIZE 128 + +/** + * @brief Debug option, stack checks. + * @details If enabled then a runtime stack check is performed. + * + * @note The default is @p FALSE. + * @note The stack check is performed in a architecture/port dependent way. + * It may not be implemented or some ports. + * @note The default failure mode is to halt the system with the global + * @p panic_msg variable set to @p NULL. + */ +#define CH_DBG_ENABLE_STACK_CHECK FALSE + +/** + * @brief Debug option, stacks initialization. + * @details If enabled then the threads working area is filled with a byte + * value when a thread is created. This can be useful for the + * runtime measurement of the used stack. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_FILL_THREADS FALSE + +/** + * @brief Debug option, threads profiling. + * @details If enabled then a field is added to the @p thread_t structure that + * counts the system ticks occurred while executing the thread. + * + * @note The default is @p FALSE. + * @note This debug option is not currently compatible with the + * tickless mode. + */ +#define CH_DBG_THREADS_PROFILING FALSE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel hooks + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Threads descriptor structure extension. + * @details User fields added to the end of the @p thread_t structure. + */ +#define CH_CFG_THREAD_EXTRA_FIELDS \ + /* Add threads custom fields here.*/ + +/** + * @brief Threads initialization hook. + * @details User initialization code added to the @p chThdInit() API. + * + * @note It is invoked from within @p chThdInit() and implicitly from all + * the threads creation APIs. + */ +#define CH_CFG_THREAD_INIT_HOOK(tp) { \ + /* Add threads initialization code here.*/ \ +} + +/** + * @brief Threads finalization hook. + * @details User finalization code added to the @p chThdExit() API. + */ +#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ + /* Add threads finalization code here.*/ \ +} + +/** + * @brief Context switch hook. + * @details This hook is invoked just before switching between threads. + */ +#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ + /* Context switch code here.*/ \ +} + +/** + * @brief ISR enter hook. + */ +#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ + /* IRQ prologue code here.*/ \ +} + +/** + * @brief ISR exit hook. + */ +#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ + /* IRQ epilogue code here.*/ \ +} + +/** + * @brief Idle thread enter hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to activate a power saving mode. + */ +#define CH_CFG_IDLE_ENTER_HOOK() { \ + /* Idle-enter code here.*/ \ +} + +/** + * @brief Idle thread leave hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to deactivate a power saving mode. + */ +#define CH_CFG_IDLE_LEAVE_HOOK() { \ + /* Idle-leave code here.*/ \ +} + +/** + * @brief Idle Loop hook. + * @details This hook is continuously invoked by the idle thread loop. + */ +#define CH_CFG_IDLE_LOOP_HOOK() { \ + /* Idle loop code here.*/ \ +} + +/** + * @brief System tick event hook. + * @details This hook is invoked in the system tick handler immediately + * after processing the virtual timers queue. + */ +#define CH_CFG_SYSTEM_TICK_HOOK() { \ + /* System tick event code here.*/ \ +} + +/** + * @brief System halt hook. + * @details This hook is invoked in case to a system halting error before + * the system is halted. + */ +#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ + /* System halt code here.*/ \ +} + +/** + * @brief Trace hook. + * @details This hook is invoked each time a new record is written in the + * trace buffer. + */ +#define CH_CFG_TRACE_HOOK(tep) { \ + /* Trace code here.*/ \ +} + +/** @} */ + +/*===========================================================================*/ +/* Port-specific settings (override port settings defaulted in chcore.h). */ +/*===========================================================================*/ + +#endif /* CHCONF_H */ + +/** @} */ diff --git a/keyboards/stm32_f072_onekey/config.h b/keyboards/stm32_f072_onekey/config.h new file mode 100644 index 000000000..bb5251e1d --- /dev/null +++ b/keyboards/stm32_f072_onekey/config.h @@ -0,0 +1,76 @@ +/* +Copyright 2015 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6464 +#define DEVICE_VER 0x0001 +/* in python2: list(u"whatever".encode('utf-16-le')) */ +/* at most 32 characters or the ugly hack in usb_main.c borks */ +#define MANUFACTURER "TMK" +#define USBSTR_MANUFACTURER 'T', '\x00', 'M', '\x00', 'K', '\x00', ' ', '\x00', '\xc6', '\x00' +#define PRODUCT "ChibiOS TMK test" +#define USBSTR_PRODUCT 'C', '\x00', 'h', '\x00', 'i', '\x00', 'b', '\x00', 'i', '\x00', 'O', '\x00', 'S', '\x00', ' ', '\x00', 'T', '\x00', 'M', '\x00', 'K', '\x00', ' ', '\x00', 't', '\x00', 'e', '\x00', 's', '\x00', 't', '\x00' +#define DESCRIPTION "TMK keyboard firmware over ChibiOS" + +/* key matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 1 +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + + + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/stm32_f072_onekey/halconf.h b/keyboards/stm32_f072_onekey/halconf.h new file mode 100644 index 000000000..1a450d632 --- /dev/null +++ b/keyboards/stm32_f072_onekey/halconf.h @@ -0,0 +1,353 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file templates/halconf.h + * @brief HAL configuration header. + * @details HAL configuration file, this file allows to enable or disable the + * various device drivers from your application. You may also use + * this file in order to override the device drivers default settings. + * + * @addtogroup HAL_CONF + * @{ + */ + +#ifndef _HALCONF_H_ +#define _HALCONF_H_ + +#include "mcuconf.h" + +/** + * @brief Enables the PAL subsystem. + */ +#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) +#define HAL_USE_PAL TRUE +#endif + +/** + * @brief Enables the ADC subsystem. + */ +#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) +#define HAL_USE_ADC FALSE +#endif + +/** + * @brief Enables the CAN subsystem. + */ +#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) +#define HAL_USE_CAN FALSE +#endif + +/** + * @brief Enables the DAC subsystem. + */ +#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) +#define HAL_USE_DAC FALSE +#endif + +/** + * @brief Enables the EXT subsystem. + */ +#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__) +#define HAL_USE_EXT FALSE +#endif + +/** + * @brief Enables the GPT subsystem. + */ +#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) +#define HAL_USE_GPT FALSE +#endif + +/** + * @brief Enables the I2C subsystem. + */ +#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) +#define HAL_USE_I2C FALSE +#endif + +/** + * @brief Enables the I2S subsystem. + */ +#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) +#define HAL_USE_I2S FALSE +#endif + +/** + * @brief Enables the ICU subsystem. + */ +#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) +#define HAL_USE_ICU FALSE +#endif + +/** + * @brief Enables the MAC subsystem. + */ +#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) +#define HAL_USE_MAC FALSE +#endif + +/** + * @brief Enables the MMC_SPI subsystem. + */ +#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) +#define HAL_USE_MMC_SPI FALSE +#endif + +/** + * @brief Enables the PWM subsystem. + */ +#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) +#define HAL_USE_PWM FALSE +#endif + +/** + * @brief Enables the RTC subsystem. + */ +#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) +#define HAL_USE_RTC FALSE +#endif + +/** + * @brief Enables the SDC subsystem. + */ +#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) +#define HAL_USE_SDC FALSE +#endif + +/** + * @brief Enables the SERIAL subsystem. + */ +#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL FALSE +#endif + +/** + * @brief Enables the SERIAL over USB subsystem. + */ +#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL_USB FALSE +#endif + +/** + * @brief Enables the SPI subsystem. + */ +#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) +#define HAL_USE_SPI FALSE +#endif + +/** + * @brief Enables the UART subsystem. + */ +#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) +#define HAL_USE_UART FALSE +#endif + +/** + * @brief Enables the USB subsystem. + */ +#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) +#define HAL_USE_USB TRUE +#endif + +/** + * @brief Enables the WDG subsystem. + */ +#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) +#define HAL_USE_WDG FALSE +#endif + +/*===========================================================================*/ +/* ADC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) +#define ADC_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define ADC_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* CAN driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Sleep mode related APIs inclusion switch. + */ +#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) +#define CAN_USE_SLEEP_MODE TRUE +#endif + +/*===========================================================================*/ +/* I2C driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the mutual exclusion APIs on the I2C bus. + */ +#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define I2C_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* MAC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) +#define MAC_USE_ZERO_COPY FALSE +#endif + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) +#define MAC_USE_EVENTS TRUE +#endif + +/*===========================================================================*/ +/* MMC_SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + * This option is recommended also if the SPI driver does not + * use a DMA channel and heavily loads the CPU. + */ +#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) +#define MMC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SDC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Number of initialization attempts before rejecting the card. + * @note Attempts are performed at 10mS intervals. + */ +#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) +#define SDC_INIT_RETRY 100 +#endif + +/** + * @brief Include support for MMC cards. + * @note MMC support is not yet implemented so this option must be kept + * at @p FALSE. + */ +#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) +#define SDC_MMC_SUPPORT FALSE +#endif + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + */ +#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) +#define SDC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SERIAL driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Default bit rate. + * @details Configuration parameter, this is the baud rate selected for the + * default configuration. + */ +#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) +#define SERIAL_DEFAULT_BITRATE 38400 +#endif + +/** + * @brief Serial buffers size. + * @details Configuration parameter, you can change the depth of the queue + * buffers depending on the requirements of your application. + * @note The default is 64 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_BUFFERS_SIZE 16 +#endif + +/*===========================================================================*/ +/* SERIAL_USB driver related setting. */ +/*===========================================================================*/ + +/** + * @brief Serial over USB buffers size. + * @details Configuration parameter, the buffer size must be a multiple of + * the USB data endpoint maximum packet size. + * @note The default is 64 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_USB_BUFFERS_SIZE 256 +#endif + +/*===========================================================================*/ +/* SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) +#define SPI_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define SPI_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* USB driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) +#define USB_USE_WAIT TRUE +#endif + +#endif /* _HALCONF_H_ */ + +/** @} */ diff --git a/keyboards/stm32_f072_onekey/keymaps/default/keymap.c b/keyboards/stm32_f072_onekey/keymaps/default/keymap.c new file mode 100644 index 000000000..6c48149f8 --- /dev/null +++ b/keyboards/stm32_f072_onekey/keymaps/default/keymap.c @@ -0,0 +1,25 @@ +/* +Copyright 2012,2013 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "stm32_f072_onekey.h" + +const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + {{KC_CAPS}}, // test with KC_CAPS, KC_A, KC_BTLD +}; + +const uint16_t fn_actions[] = { +}; diff --git a/keyboards/stm32_f072_onekey/led.c b/keyboards/stm32_f072_onekey/led.c new file mode 100644 index 000000000..18edb8ba8 --- /dev/null +++ b/keyboards/stm32_f072_onekey/led.c @@ -0,0 +1,34 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "hal.h" + +#include "led.h" + + +void led_set(uint8_t usb_led) +{ + (void)usb_led; + if (usb_led & (1< + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "ch.h" +#include "hal.h" + +/* + * scan matrix + */ +#include "print.h" +#include "debug.h" +#include "util.h" +#include "matrix.h" +#include "wait.h" + +#ifndef DEBOUNCE +# define DEBOUNCE 5 +#endif +static uint8_t debouncing = DEBOUNCE; + +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; +static matrix_row_t matrix_debouncing[MATRIX_ROWS]; + +static matrix_row_t read_cols(void); +static void init_cols(void); +static void unselect_rows(void); +static void select_row(uint8_t row); + + +inline +uint8_t matrix_rows(void) +{ + return MATRIX_ROWS; +} + +inline +uint8_t matrix_cols(void) +{ + return MATRIX_COLS; +} + +#define LED_ON() do { palSetPad(GPIOC, GPIOC_LED_BLUE) ;} while (0) +#define LED_OFF() do { palClearPad(GPIOC, GPIOC_LED_BLUE); } while (0) +#define LED_TGL() do { palTogglePad(GPIOC, GPIOC_LED_BLUE); } while (0) + +void matrix_init(void) +{ + // initialize row and col + unselect_rows(); + init_cols(); + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + matrix_debouncing[i] = 0; + } + + //debug + debug_matrix = true; + LED_ON(); + wait_ms(500); + LED_OFF(); +} + +uint8_t matrix_scan(void) +{ + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + select_row(i); + wait_us(30); // without this wait read unstable value. + matrix_row_t cols = read_cols(); + if (matrix_debouncing[i] != cols) { + matrix_debouncing[i] = cols; + if (debouncing) { + debug("bounce!: "); debug_hex(debouncing); debug("\n"); + } + debouncing = DEBOUNCE; + } + unselect_rows(); + } + + if (debouncing) { + if (--debouncing) { + wait_ms(1); + } else { + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = matrix_debouncing[i]; + } + } + } + + return 1; +} + +inline +bool matrix_is_on(uint8_t row, uint8_t col) +{ + return (matrix[row] & ((matrix_row_t)1</os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) +MCU_FAMILY = STM32 +MCU_SERIES = STM32F1xx +# linker script to use +# it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ +# or /ld/ +# startup code to use +# is should exist in /os/common/ports/ARMCMx/compilers/GCC/mk/ +MCU_STARTUP = stm32f1xx +# it should exist either in /os/hal/boards/ +# or /boards +# Cortex version +# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4 +MCU = cortex-m3 +# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 +ARMV = 7 +# If you want to be able to jump to bootloader from firmware on STM32 MCUs, +# set the correct BOOTLOADER_ADDRESS. Either set it here, or define it in +# ./bootloader_defs.h or in ./boards//bootloader_defs.h (if you have +# a custom board definition that you plan to reuse). +# If you're not setting it here, leave it commented out. +# It is chip dependent, the correct number can be looked up here (page 175): +# http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf +# This also requires a patch to chibios: +# /tmk_core/tool/chibios/ch-bootloader-jump.patch +#STM32_BOOTLOADER_ADDRESS = 0x1FFFC800 + +# Build Options +# comment out to disable the options. +# +#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +## BOOTMAGIC is not supported on STM32 chips yet. +MOUSEKEY_ENABLE ?= yes # Mouse keys +EXTRAKEY_ENABLE ?= yes # Audio control and System control +# CONSOLE_ENABLE ?= yes # Console for debug +COMMAND_ENABLE ?= yes # Commands for debug and configuration +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend +NKRO_ENABLE ?= yes # USB Nkey Rollover +CUSTOM_MATRIX ?= yes # Custom matrix file + +ifndef QUANTUM_DIR + include ../../Makefile +endif diff --git a/keyboards/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.c b/keyboards/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.c new file mode 100644 index 000000000..31319ef57 --- /dev/null +++ b/keyboards/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.c @@ -0,0 +1,49 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#include "hal.h" + +/** + * @brief PAL setup. + * @details Digital I/O ports static configuration as defined in @p board.h. + * This variable is used by the HAL when initializing the PAL driver. + */ +#if HAL_USE_PAL || defined(__DOXYGEN__) +const PALConfig pal_default_config = +{ + {VAL_GPIOAODR, VAL_GPIOACRL, VAL_GPIOACRH}, + {VAL_GPIOBODR, VAL_GPIOBCRL, VAL_GPIOBCRH}, + {VAL_GPIOCODR, VAL_GPIOCCRL, VAL_GPIOCCRH}, + {VAL_GPIODODR, VAL_GPIODCRL, VAL_GPIODCRH}, + {VAL_GPIOEODR, VAL_GPIOECRL, VAL_GPIOECRH}, +}; +#endif + +/* + * Early initialization code. + * This initialization must be performed just after stack setup and before + * any other initialization. + */ +void __early_init(void) { + + stm32_clock_init(); +} + +/* + * Board-specific initialization code. + */ +void boardInit(void) { +} diff --git a/keyboards/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.h b/keyboards/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.h new file mode 100644 index 000000000..7253e7782 --- /dev/null +++ b/keyboards/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.h @@ -0,0 +1,166 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef _BOARD_H_ +#define _BOARD_H_ + +/* + * Setup for a Generic STM32F103 board. + */ + +/* + * Board identifier. + */ +#define BOARD_GENERIC_STM32_F103 +#define BOARD_NAME "Generic STM32F103x board" + +/* + * Board frequencies. + */ +#define STM32_LSECLK 32768 +#define STM32_HSECLK 8000000 + +/* + * MCU type, supported types are defined in ./os/hal/platforms/hal_lld.h. + */ +#define STM32F103xB + +/* + * IO pins assignments + */ + +/* on-board */ + +#define GPIOC_LED 13 +#define GPIOD_OSC_IN 0 +#define GPIOD_OSC_OUT 1 + +/* In case your board has a "USB enable" hardware + controlled by a pin, define it here. (It could be just + a 1.5k resistor connected to D+ line.) +*/ +/* +#define GPIOB_USB_DISC 10 +*/ + +/* + * I/O ports initial setup, this configuration is established soon after reset + * in the initialization code. + * + * The digits have the following meaning: + * 0 - Analog input. + * 1 - Push Pull output 10MHz. + * 2 - Push Pull output 2MHz. + * 3 - Push Pull output 50MHz. + * 4 - Digital input. + * 5 - Open Drain output 10MHz. + * 6 - Open Drain output 2MHz. + * 7 - Open Drain output 50MHz. + * 8 - Digital input with PullUp or PullDown resistor depending on ODR. + * 9 - Alternate Push Pull output 10MHz. + * A - Alternate Push Pull output 2MHz. + * B - Alternate Push Pull output 50MHz. + * C - Reserved. + * D - Alternate Open Drain output 10MHz. + * E - Alternate Open Drain output 2MHz. + * F - Alternate Open Drain output 50MHz. + * Please refer to the STM32 Reference Manual for details. + */ + +/* + * Port A setup. + * Everything input with pull-up except: + * PA2 - Alternate output (USART2 TX). + * PA3 - Normal input (USART2 RX). + * PA9 - Alternate output (USART1 TX). + * PA10 - Normal input (USART1 RX). + */ +#define VAL_GPIOACRL 0x88884B88 /* PA7...PA0 */ +#define VAL_GPIOACRH 0x888884B8 /* PA15...PA8 */ +#define VAL_GPIOAODR 0xFFFFFFFF + +/* + * Port B setup. + * Everything input with pull-up except: + * PB10 - Push Pull output (USB switch). + */ +#define VAL_GPIOBCRL 0x88888888 /* PB7...PB0 */ +#define VAL_GPIOBCRH 0x88888388 /* PB15...PB8 */ +#define VAL_GPIOBODR 0xFFFFFFFF + +/* + * Port C setup. + * Everything input with pull-up except: + * PC13 - Push Pull output (LED). + */ +#define VAL_GPIOCCRL 0x88888888 /* PC7...PC0 */ +#define VAL_GPIOCCRH 0x88388888 /* PC15...PC8 */ +#define VAL_GPIOCODR 0xFFFFFFFF + +/* + * Port D setup. + * Everything input with pull-up except: + * PD0 - Normal input (XTAL). + * PD1 - Normal input (XTAL). + */ +#define VAL_GPIODCRL 0x88888844 /* PD7...PD0 */ +#define VAL_GPIODCRH 0x88888888 /* PD15...PD8 */ +#define VAL_GPIODODR 0xFFFFFFFF + +/* + * Port E setup. + * Everything input with pull-up except: + */ +#define VAL_GPIOECRL 0x88888888 /* PE7...PE0 */ +#define VAL_GPIOECRH 0x88888888 /* PE15...PE8 */ +#define VAL_GPIOEODR 0xFFFFFFFF + +/* + * USB bus activation macro, required by the USB driver. + */ +/* The point is that most of the generic STM32F103* boards + have a 1.5k resistor connected on one end to the D+ line + and on the other end to some pin. Or even a slightly more + complicated "USB enable" circuit, controlled by a pin. + That should go here. + + However on some boards (e.g. one that I have), there's no + such hardware. In which case it's better to not do anything. +*/ +/* +#define usb_lld_connect_bus(usbp) palClearPad(GPIOB, GPIOB_USB_DISC) +*/ +#define usb_lld_connect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_INPUT); + +/* + * USB bus de-activation macro, required by the USB driver. + */ +/* +#define usb_lld_disconnect_bus(usbp) palSetPad(GPIOB, GPIOB_USB_DISC) +*/ +#define usb_lld_disconnect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_OUTPUT_PUSHPULL); palClearPad(GPIOA, 12); + +#if !defined(_FROM_ASM_) +#ifdef __cplusplus +extern "C" { +#endif + void boardInit(void); +#ifdef __cplusplus +} +#endif +#endif /* _FROM_ASM_ */ + +#endif /* _BOARD_H_ */ diff --git a/keyboards/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.mk b/keyboards/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.mk new file mode 100644 index 000000000..d692c0ee4 --- /dev/null +++ b/keyboards/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.mk @@ -0,0 +1,5 @@ +# List of all the board related files. +BOARDSRC = $(KEYBOARD_PATH)/boards/GENERIC_STM32_F103/board.c + +# Required include directories +BOARDINC = $(KEYBOARD_PATH)/boards/GENERIC_STM32_F103 diff --git a/keyboards/stm32_f103_onekey/boards/GENERIC_STM32_F103/mini_stm32_mapping.png b/keyboards/stm32_f103_onekey/boards/GENERIC_STM32_F103/mini_stm32_mapping.png new file mode 100644 index 000000000..c44a7d9eb Binary files /dev/null and b/keyboards/stm32_f103_onekey/boards/GENERIC_STM32_F103/mini_stm32_mapping.png differ diff --git a/keyboards/stm32_f103_onekey/boards/maple_mini_mapping.png b/keyboards/stm32_f103_onekey/boards/maple_mini_mapping.png new file mode 100644 index 000000000..12cfa81db Binary files /dev/null and b/keyboards/stm32_f103_onekey/boards/maple_mini_mapping.png differ diff --git a/keyboards/stm32_f103_onekey/bootloader_defs.h b/keyboards/stm32_f103_onekey/bootloader_defs.h new file mode 100644 index 000000000..0f45203cb --- /dev/null +++ b/keyboards/stm32_f103_onekey/bootloader_defs.h @@ -0,0 +1,10 @@ +/* Address for jumping to bootloader on STM32 chips. */ +/* It is chip dependent, the correct number can be looked up here (page 175): + * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf + * This also requires a patch to chibios: + * /tmk_core/tool/chibios/ch-bootloader-jump.patch + */ + +// STM32F103* does NOT have an USB bootloader in ROM (only serial), +// so setting anything here does not make much sense +// #define STM32_BOOTLOADER_ADDRESS 0x1FFFC800 diff --git a/keyboards/stm32_f103_onekey/chconf.h b/keyboards/stm32_f103_onekey/chconf.h new file mode 100644 index 000000000..dfb1f9dfb --- /dev/null +++ b/keyboards/stm32_f103_onekey/chconf.h @@ -0,0 +1,524 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file templates/chconf.h + * @brief Configuration file template. + * @details A copy of this file must be placed in each project directory, it + * contains the application specific kernel settings. + * + * @addtogroup config + * @details Kernel related settings and hooks. + * @{ + */ + +#ifndef CHCONF_H +#define CHCONF_H + +#define _CHIBIOS_RT_CONF_ + +/*===========================================================================*/ +/** + * @name System timers settings + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System time counter resolution. + * @note Allowed values are 16 or 32 bits. + */ +#define CH_CFG_ST_RESOLUTION 16 + +/** + * @brief System tick frequency. + * @details Frequency of the system timer that drives the system ticks. This + * setting also defines the system tick time unit. + */ +#define CH_CFG_ST_FREQUENCY 2000 + +/** + * @brief Time delta constant for the tick-less mode. + * @note If this value is zero then the system uses the classic + * periodic tick. This value represents the minimum number + * of ticks that is safe to specify in a timeout directive. + * The value one is not valid, timeouts are rounded up to + * this value. + */ +#define CH_CFG_ST_TIMEDELTA 2 + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel parameters and options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Round robin interval. + * @details This constant is the number of system ticks allowed for the + * threads before preemption occurs. Setting this value to zero + * disables the preemption for threads with equal priority and the + * round robin becomes cooperative. Note that higher priority + * threads can still preempt, the kernel is always preemptive. + * @note Disabling the round robin preemption makes the kernel more compact + * and generally faster. + * @note The round robin preemption is not supported in tickless mode and + * must be set to zero in that case. + */ +#define CH_CFG_TIME_QUANTUM 0 + +/** + * @brief Managed RAM size. + * @details Size of the RAM area to be managed by the OS. If set to zero + * then the whole available RAM is used. The core memory is made + * available to the heap allocator and/or can be used directly through + * the simplified core memory allocator. + * + * @note In order to let the OS manage the whole RAM the linker script must + * provide the @p __heap_base__ and @p __heap_end__ symbols. + * @note Requires @p CH_CFG_USE_MEMCORE. + */ +#define CH_CFG_MEMCORE_SIZE 0 + +/** + * @brief Idle thread automatic spawn suppression. + * @details When this option is activated the function @p chSysInit() + * does not spawn the idle thread. The application @p main() + * function becomes the idle thread and must implement an + * infinite loop. + */ +#define CH_CFG_NO_IDLE_THREAD FALSE + +/* Use __WFI in the idle thread for waiting. Does lower the power + * consumption. */ +#define CORTEX_ENABLE_WFI_IDLE TRUE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Performance options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief OS optimization. + * @details If enabled then time efficient rather than space efficient code + * is used when two possible implementations exist. + * + * @note This is not related to the compiler optimization options. + * @note The default is @p TRUE. + */ +#define CH_CFG_OPTIMIZE_SPEED TRUE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Subsystem options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Time Measurement APIs. + * @details If enabled then the time measurement APIs are included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_TM FALSE + +/** + * @brief Threads registry APIs. + * @details If enabled then the registry APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_REGISTRY TRUE + +/** + * @brief Threads synchronization APIs. + * @details If enabled then the @p chThdWait() function is included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_WAITEXIT TRUE + +/** + * @brief Semaphores APIs. + * @details If enabled then the Semaphores APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_SEMAPHORES TRUE + +/** + * @brief Semaphores queuing mode. + * @details If enabled then the threads are enqueued on semaphores by + * priority rather than in FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE + +/** + * @brief Mutexes APIs. + * @details If enabled then the mutexes APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MUTEXES TRUE + +/** + * @brief Enables recursive behavior on mutexes. + * @note Recursive mutexes are heavier and have an increased + * memory footprint. + * + * @note The default is @p FALSE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE + +/** + * @brief Conditional Variables APIs. + * @details If enabled then the conditional variables APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#define CH_CFG_USE_CONDVARS TRUE + +/** + * @brief Conditional Variables APIs with timeout. + * @details If enabled then the conditional variables APIs with timeout + * specification are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_CONDVARS. + */ +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE + +/** + * @brief Events Flags APIs. + * @details If enabled then the event flags APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_EVENTS TRUE + +/** + * @brief Events Flags APIs with timeout. + * @details If enabled then the events APIs with timeout specification + * are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_EVENTS. + */ +#define CH_CFG_USE_EVENTS_TIMEOUT TRUE + +/** + * @brief Synchronous Messages APIs. + * @details If enabled then the synchronous messages APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MESSAGES TRUE + +/** + * @brief Synchronous Messages queuing mode. + * @details If enabled then messages are served by priority rather than in + * FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_MESSAGES. + */ +#define CH_CFG_USE_MESSAGES_PRIORITY FALSE + +/** + * @brief Mailboxes APIs. + * @details If enabled then the asynchronous messages (mailboxes) APIs are + * included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#define CH_CFG_USE_MAILBOXES TRUE + +/** + * @brief Core Memory Manager APIs. + * @details If enabled then the core memory manager APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MEMCORE TRUE + +/** + * @brief Heap Allocator APIs. + * @details If enabled then the memory heap allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or + * @p CH_CFG_USE_SEMAPHORES. + * @note Mutexes are recommended. + */ +#define CH_CFG_USE_HEAP TRUE + +/** + * @brief Memory Pools Allocator APIs. + * @details If enabled then the memory pools allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MEMPOOLS FALSE + +/** + * @brief Dynamic Threads APIs. + * @details If enabled then the dynamic threads creation APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_WAITEXIT. + * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. + */ +#define CH_CFG_USE_DYNAMIC FALSE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Debug options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Debug option, kernel statistics. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_STATISTICS FALSE + +/** + * @brief Debug option, system state check. + * @details If enabled the correct call protocol for system APIs is checked + * at runtime. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_SYSTEM_STATE_CHECK FALSE + +/** + * @brief Debug option, parameters checks. + * @details If enabled then the checks on the API functions input + * parameters are activated. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_ENABLE_CHECKS FALSE + +/** + * @brief Debug option, consistency checks. + * @details If enabled then all the assertions in the kernel code are + * activated. This includes consistency checks inside the kernel, + * runtime anomalies and port-defined checks. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_ENABLE_ASSERTS FALSE + +/** + * @brief Debug option, trace buffer. + * @details If enabled then the trace buffer is activated. + * + * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. + */ +#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED + +/** + * @brief Trace buffer entries. + * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is + * different from @p CH_DBG_TRACE_MASK_DISABLED. + */ +#define CH_DBG_TRACE_BUFFER_SIZE 128 + +/** + * @brief Debug option, stack checks. + * @details If enabled then a runtime stack check is performed. + * + * @note The default is @p FALSE. + * @note The stack check is performed in a architecture/port dependent way. + * It may not be implemented or some ports. + * @note The default failure mode is to halt the system with the global + * @p panic_msg variable set to @p NULL. + */ +#define CH_DBG_ENABLE_STACK_CHECK FALSE + +/** + * @brief Debug option, stacks initialization. + * @details If enabled then the threads working area is filled with a byte + * value when a thread is created. This can be useful for the + * runtime measurement of the used stack. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_FILL_THREADS FALSE + +/** + * @brief Debug option, threads profiling. + * @details If enabled then a field is added to the @p thread_t structure that + * counts the system ticks occurred while executing the thread. + * + * @note The default is @p FALSE. + * @note This debug option is not currently compatible with the + * tickless mode. + */ +#define CH_DBG_THREADS_PROFILING FALSE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel hooks + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Threads descriptor structure extension. + * @details User fields added to the end of the @p thread_t structure. + */ +#define CH_CFG_THREAD_EXTRA_FIELDS \ + /* Add threads custom fields here.*/ + +/** + * @brief Threads initialization hook. + * @details User initialization code added to the @p chThdInit() API. + * + * @note It is invoked from within @p chThdInit() and implicitly from all + * the threads creation APIs. + */ +#define CH_CFG_THREAD_INIT_HOOK(tp) { \ + /* Add threads initialization code here.*/ \ +} + +/** + * @brief Threads finalization hook. + * @details User finalization code added to the @p chThdExit() API. + */ +#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ + /* Add threads finalization code here.*/ \ +} + +/** + * @brief Context switch hook. + * @details This hook is invoked just before switching between threads. + */ +#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ + /* Context switch code here.*/ \ +} + +/** + * @brief ISR enter hook. + */ +#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ + /* IRQ prologue code here.*/ \ +} + +/** + * @brief ISR exit hook. + */ +#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ + /* IRQ epilogue code here.*/ \ +} + +/** + * @brief Idle thread enter hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to activate a power saving mode. + */ +#define CH_CFG_IDLE_ENTER_HOOK() { \ + /* Idle-enter code here.*/ \ +} + +/** + * @brief Idle thread leave hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to deactivate a power saving mode. + */ +#define CH_CFG_IDLE_LEAVE_HOOK() { \ + /* Idle-leave code here.*/ \ +} + +/** + * @brief Idle Loop hook. + * @details This hook is continuously invoked by the idle thread loop. + */ +#define CH_CFG_IDLE_LOOP_HOOK() { \ + /* Idle loop code here.*/ \ +} + +/** + * @brief System tick event hook. + * @details This hook is invoked in the system tick handler immediately + * after processing the virtual timers queue. + */ +#define CH_CFG_SYSTEM_TICK_HOOK() { \ + /* System tick event code here.*/ \ +} + +/** + * @brief System halt hook. + * @details This hook is invoked in case to a system halting error before + * the system is halted. + */ +#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ + /* System halt code here.*/ \ +} + +/** + * @brief Trace hook. + * @details This hook is invoked each time a new record is written in the + * trace buffer. + */ +#define CH_CFG_TRACE_HOOK(tep) { \ + /* Trace code here.*/ \ +} + +/** @} */ + +/*===========================================================================*/ +/* Port-specific settings (override port settings defaulted in chcore.h). */ +/*===========================================================================*/ + +#endif /* CHCONF_H */ + +/** @} */ diff --git a/keyboards/stm32_f103_onekey/config.h b/keyboards/stm32_f103_onekey/config.h new file mode 100644 index 000000000..19b14fe61 --- /dev/null +++ b/keyboards/stm32_f103_onekey/config.h @@ -0,0 +1,75 @@ +/* +Copyright 2015 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6464 +#define DEVICE_VER 0x0001 +/* in python2: list(u"whatever".encode('utf-16-le')) */ +/* at most 32 characters or the ugly hack in usb_main.c borks */ +#define MANUFACTURER "TMK" +#define USBSTR_MANUFACTURER 'T', '\x00', 'M', '\x00', 'K', '\x00', ' ', '\x00', '\xc6', '\x00' +#define PRODUCT "ChibiOS TMK test" +#define USBSTR_PRODUCT 'C', '\x00', 'h', '\x00', 'i', '\x00', 'b', '\x00', 'i', '\x00', 'O', '\x00', 'S', '\x00', ' ', '\x00', 'T', '\x00', 'M', '\x00', 'K', '\x00', ' ', '\x00', 't', '\x00', 'e', '\x00', 's', '\x00', 't', '\x00' +#define DESCRIPTION "TMK keyboard firmware over ChibiOS" + +/* key matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 1 +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + + + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/stm32_f103_onekey/flash.sh b/keyboards/stm32_f103_onekey/flash.sh new file mode 100755 index 000000000..15501dfa5 --- /dev/null +++ b/keyboards/stm32_f103_onekey/flash.sh @@ -0,0 +1,2 @@ +#!/bin/bash +Arduino_STM32_usb_hid/tools/linux/maple_upload ttyACM0 2 1EAF:0003 build/ch.bin diff --git a/keyboards/stm32_f103_onekey/halconf.h b/keyboards/stm32_f103_onekey/halconf.h new file mode 100644 index 000000000..1a450d632 --- /dev/null +++ b/keyboards/stm32_f103_onekey/halconf.h @@ -0,0 +1,353 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file templates/halconf.h + * @brief HAL configuration header. + * @details HAL configuration file, this file allows to enable or disable the + * various device drivers from your application. You may also use + * this file in order to override the device drivers default settings. + * + * @addtogroup HAL_CONF + * @{ + */ + +#ifndef _HALCONF_H_ +#define _HALCONF_H_ + +#include "mcuconf.h" + +/** + * @brief Enables the PAL subsystem. + */ +#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) +#define HAL_USE_PAL TRUE +#endif + +/** + * @brief Enables the ADC subsystem. + */ +#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) +#define HAL_USE_ADC FALSE +#endif + +/** + * @brief Enables the CAN subsystem. + */ +#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) +#define HAL_USE_CAN FALSE +#endif + +/** + * @brief Enables the DAC subsystem. + */ +#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) +#define HAL_USE_DAC FALSE +#endif + +/** + * @brief Enables the EXT subsystem. + */ +#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__) +#define HAL_USE_EXT FALSE +#endif + +/** + * @brief Enables the GPT subsystem. + */ +#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) +#define HAL_USE_GPT FALSE +#endif + +/** + * @brief Enables the I2C subsystem. + */ +#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) +#define HAL_USE_I2C FALSE +#endif + +/** + * @brief Enables the I2S subsystem. + */ +#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) +#define HAL_USE_I2S FALSE +#endif + +/** + * @brief Enables the ICU subsystem. + */ +#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) +#define HAL_USE_ICU FALSE +#endif + +/** + * @brief Enables the MAC subsystem. + */ +#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) +#define HAL_USE_MAC FALSE +#endif + +/** + * @brief Enables the MMC_SPI subsystem. + */ +#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) +#define HAL_USE_MMC_SPI FALSE +#endif + +/** + * @brief Enables the PWM subsystem. + */ +#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) +#define HAL_USE_PWM FALSE +#endif + +/** + * @brief Enables the RTC subsystem. + */ +#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) +#define HAL_USE_RTC FALSE +#endif + +/** + * @brief Enables the SDC subsystem. + */ +#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) +#define HAL_USE_SDC FALSE +#endif + +/** + * @brief Enables the SERIAL subsystem. + */ +#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL FALSE +#endif + +/** + * @brief Enables the SERIAL over USB subsystem. + */ +#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL_USB FALSE +#endif + +/** + * @brief Enables the SPI subsystem. + */ +#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) +#define HAL_USE_SPI FALSE +#endif + +/** + * @brief Enables the UART subsystem. + */ +#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) +#define HAL_USE_UART FALSE +#endif + +/** + * @brief Enables the USB subsystem. + */ +#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) +#define HAL_USE_USB TRUE +#endif + +/** + * @brief Enables the WDG subsystem. + */ +#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) +#define HAL_USE_WDG FALSE +#endif + +/*===========================================================================*/ +/* ADC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) +#define ADC_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define ADC_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* CAN driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Sleep mode related APIs inclusion switch. + */ +#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) +#define CAN_USE_SLEEP_MODE TRUE +#endif + +/*===========================================================================*/ +/* I2C driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the mutual exclusion APIs on the I2C bus. + */ +#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define I2C_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* MAC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) +#define MAC_USE_ZERO_COPY FALSE +#endif + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) +#define MAC_USE_EVENTS TRUE +#endif + +/*===========================================================================*/ +/* MMC_SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + * This option is recommended also if the SPI driver does not + * use a DMA channel and heavily loads the CPU. + */ +#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) +#define MMC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SDC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Number of initialization attempts before rejecting the card. + * @note Attempts are performed at 10mS intervals. + */ +#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) +#define SDC_INIT_RETRY 100 +#endif + +/** + * @brief Include support for MMC cards. + * @note MMC support is not yet implemented so this option must be kept + * at @p FALSE. + */ +#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) +#define SDC_MMC_SUPPORT FALSE +#endif + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + */ +#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) +#define SDC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SERIAL driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Default bit rate. + * @details Configuration parameter, this is the baud rate selected for the + * default configuration. + */ +#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) +#define SERIAL_DEFAULT_BITRATE 38400 +#endif + +/** + * @brief Serial buffers size. + * @details Configuration parameter, you can change the depth of the queue + * buffers depending on the requirements of your application. + * @note The default is 64 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_BUFFERS_SIZE 16 +#endif + +/*===========================================================================*/ +/* SERIAL_USB driver related setting. */ +/*===========================================================================*/ + +/** + * @brief Serial over USB buffers size. + * @details Configuration parameter, the buffer size must be a multiple of + * the USB data endpoint maximum packet size. + * @note The default is 64 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_USB_BUFFERS_SIZE 256 +#endif + +/*===========================================================================*/ +/* SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) +#define SPI_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define SPI_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* USB driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) +#define USB_USE_WAIT TRUE +#endif + +#endif /* _HALCONF_H_ */ + +/** @} */ diff --git a/keyboards/stm32_f103_onekey/keymaps/default/keymap.c b/keyboards/stm32_f103_onekey/keymaps/default/keymap.c new file mode 100644 index 000000000..c3b0f0840 --- /dev/null +++ b/keyboards/stm32_f103_onekey/keymaps/default/keymap.c @@ -0,0 +1,25 @@ +/* +Copyright 2012,2013 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "stm32_f103_onekey.h" + +const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + {{KC_CAPS}}, // test with KC_CAPS, KC_A, KC_BTLD +}; + +const uint16_t fn_actions[] = { +}; diff --git a/keyboards/stm32_f103_onekey/ld/STM32F103x8_stm32duino_bootloader.ld b/keyboards/stm32_f103_onekey/ld/STM32F103x8_stm32duino_bootloader.ld new file mode 100644 index 000000000..00613328e --- /dev/null +++ b/keyboards/stm32_f103_onekey/ld/STM32F103x8_stm32duino_bootloader.ld @@ -0,0 +1,88 @@ +/* + ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/* + * ST32F103xB memory setup for use with the maplemini bootloader. + * You will have to + * #define CORTEX_VTOR_INIT 0x5000 + * in your projects chconf.h + */ +MEMORY +{ + flash0 : org = 0x08002000, len = 128k - 0x2000 + flash1 : org = 0x00000000, len = 0 + flash2 : org = 0x00000000, len = 0 + flash3 : org = 0x00000000, len = 0 + flash4 : org = 0x00000000, len = 0 + flash5 : org = 0x00000000, len = 0 + flash6 : org = 0x00000000, len = 0 + flash7 : org = 0x00000000, len = 0 + ram0 : org = 0x20000000, len = 20k + ram1 : org = 0x00000000, len = 0 + ram2 : org = 0x00000000, len = 0 + ram3 : org = 0x00000000, len = 0 + ram4 : org = 0x00000000, len = 0 + ram5 : org = 0x00000000, len = 0 + ram6 : org = 0x00000000, len = 0 + ram7 : org = 0x00000000, len = 0 +} + +/* For each data/text section two region are defined, a virtual region + and a load region (_LMA suffix).*/ + +/* Flash region to be used for exception vectors.*/ +REGION_ALIAS("VECTORS_FLASH", flash0); +REGION_ALIAS("VECTORS_FLASH_LMA", flash0); + +/* Flash region to be used for constructors and destructors.*/ +REGION_ALIAS("XTORS_FLASH", flash0); +REGION_ALIAS("XTORS_FLASH_LMA", flash0); + +/* Flash region to be used for code text.*/ +REGION_ALIAS("TEXT_FLASH", flash0); +REGION_ALIAS("TEXT_FLASH_LMA", flash0); + +/* Flash region to be used for read only data.*/ +REGION_ALIAS("RODATA_FLASH", flash0); +REGION_ALIAS("RODATA_FLASH_LMA", flash0); + +/* Flash region to be used for various.*/ +REGION_ALIAS("VARIOUS_FLASH", flash0); +REGION_ALIAS("VARIOUS_FLASH_LMA", flash0); + +/* Flash region to be used for RAM(n) initialization data.*/ +REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0); + +/* RAM region to be used for Main stack. This stack accommodates the processing + of all exceptions and interrupts.*/ +REGION_ALIAS("MAIN_STACK_RAM", ram0); + +/* RAM region to be used for the process stack. This is the stack used by + the main() function.*/ +REGION_ALIAS("PROCESS_STACK_RAM", ram0); + +/* RAM region to be used for data segment.*/ +REGION_ALIAS("DATA_RAM", ram0); +REGION_ALIAS("DATA_RAM_LMA", flash0); + +/* RAM region to be used for BSS segment.*/ +REGION_ALIAS("BSS_RAM", ram0); + +/* RAM region to be used for the default heap.*/ +REGION_ALIAS("HEAP_RAM", ram0); + +/* Generic rules inclusion.*/ +INCLUDE rules.ld diff --git a/keyboards/stm32_f103_onekey/led.c b/keyboards/stm32_f103_onekey/led.c new file mode 100644 index 000000000..f5c55f7d9 --- /dev/null +++ b/keyboards/stm32_f103_onekey/led.c @@ -0,0 +1,43 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "hal.h" +#include "led.h" + + +void led_set(uint8_t usb_led) +{ + if (usb_led & (1< + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "ch.h" +#include "hal.h" + +/* + * scan matrix + */ +#include "print.h" +#include "debug.h" +#include "util.h" +#include "matrix.h" +#include "wait.h" + +#ifndef DEBOUNCE +# define DEBOUNCE 5 +#endif +static uint8_t debouncing = DEBOUNCE; + +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; +static matrix_row_t matrix_debouncing[MATRIX_ROWS]; + +static matrix_row_t read_cols(void); +static void init_cols(void); +static void unselect_rows(void); +static void select_row(uint8_t row); + + +inline +uint8_t matrix_rows(void) +{ + return MATRIX_ROWS; +} + +inline +uint8_t matrix_cols(void) +{ + return MATRIX_COLS; +} + +/* generic STM32F103C8T6 board */ +#ifdef BOARD_GENERIC_STM32_F103 +#define LED_ON() do { palClearPad(GPIOC, GPIOC_LED) ;} while (0) +#define LED_OFF() do { palSetPad(GPIOC, GPIOC_LED); } while (0) +#define LED_TGL() do { palTogglePad(GPIOC, GPIOC_LED); } while (0) +#endif + +/* Maple Mini */ +#ifdef BOARD_MAPLEMINI_STM32_F103 +#define LED_ON() do { palSetPad(GPIOB, 1) ;} while (0) +#define LED_OFF() do { palClearPad(GPIOB, 1); } while (0) +#define LED_TGL() do { palTogglePad(GPIOB, 1); } while (0) +#endif + +void matrix_init(void) +{ + // initialize row and col + unselect_rows(); + init_cols(); + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + matrix_debouncing[i] = 0; + } + + //debug + debug_matrix = true; + LED_ON(); + wait_ms(500); + LED_OFF(); +} + +uint8_t matrix_scan(void) +{ + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + select_row(i); + wait_us(30); // without this wait read unstable value. + matrix_row_t cols = read_cols(); + if (matrix_debouncing[i] != cols) { + matrix_debouncing[i] = cols; + if (debouncing) { + debug("bounce!: "); debug_hex(debouncing); debug("\n"); + } + debouncing = DEBOUNCE; + } + unselect_rows(); + } + + if (debouncing) { + if (--debouncing) { + wait_ms(1); + } else { + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = matrix_debouncing[i]; + } + } + } + + return 1; +} + +inline +bool matrix_is_on(uint8_t row, uint8_t col) +{ + return (matrix[row] & ((matrix_row_t)1</os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) +# - For Teensies, FAMILY = KINETIS and SERIES is either +# KL2x (LC) or K20x (3.0,3.1,3.2). +MCU_FAMILY = KINETIS +MCU_SERIES = KL2x + +# Linker script to use +# - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ +# or /ld/ +# - NOTE: a custom ld script is needed for EEPROM on Teensy LC +# - LDSCRIPT = +# - MKL26Z64 for Teensy LC +# - MK20DX128 for Teensy 3.0 +# - MK20DX256 for Teensy 3.1 and 3.2 +MCU_LDSCRIPT = MKL26Z64 + +# Startup code to use +# - it should exist in /os/common/ports/ARMCMx/compilers/GCC/mk/ +# - STARTUP = +# - kl2x for Teensy LC +# - k20x5 for Teensy 3.0 +# - k20x7 for Teensy 3.1 and 3.2 +MCU_STARTUP = kl2x + +# Board: it should exist either in /os/hal/boards/ +# or /boards +# - BOARD = +# - PJRC_TEENSY_LC for Teensy LC +# - PJRC_TEENSY_3 for Teensy 3.0 +# - PJRC_TEENSY_3_1 for Teensy 3.1 or 3.2 +BOARD = PJRC_TEENSY_LC + +# Cortex version +# Teensy LC is cortex-m0plus; Teensy 3.x are cortex-m4 +MCU = cortex-m0plus + +# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 +# I.e. 6 for Teensy LC; 7 for Teensy 3.x +ARMV = 6 + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration +## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.) +MOUSEKEY_ENABLE ?= yes # Mouse keys +EXTRAKEY_ENABLE ?= yes # Audio control and System control +CONSOLE_ENABLE ?= yes # Console for debug +COMMAND_ENABLE ?= yes # Commands for debug and configuration +SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend +NKRO_ENABLE ?= yes # USB Nkey Rollover +CUSTOM_MATRIX ?= yes # Custom matrix file + +ifndef QUANTUM_DIR + include ../../Makefile +endif diff --git a/keyboards/teensy_lc_onekey/Makefile.3.0 b/keyboards/teensy_lc_onekey/Makefile.3.0 new file mode 100644 index 000000000..dbf12c363 --- /dev/null +++ b/keyboards/teensy_lc_onekey/Makefile.3.0 @@ -0,0 +1,77 @@ +# Target file name (without extension). +PROJECT = ch + +# Directory common source files exist +TMK_DIR = ../../tmk_core + +# Directory keyboard dependent files exist +TARGET_DIR = . + +# project specific files +SRC = matrix.c \ + led.c + +ifdef KEYMAP + SRC := keymap_$(KEYMAP).c $(SRC) +else + SRC := keymap_plain.c $(SRC) +endif + +CONFIG_H = config.h + +## chip/board settings +# - the next two should match the directories in +# /os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) +# - For Teensies, FAMILY = KINETIS and SERIES is either +# KL2x (LC) or K20x (3.0,3.1,3.2). +MCU_FAMILY = KINETIS +MCU_SERIES = K20x + +# Linker script to use +# - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ +# or /ld/ +# - NOTE: a custom ld script is needed for EEPROM on Teensy LC +# - LDSCRIPT = +# - MKL26Z64 for Teensy LC +# - MK20DX128 for Teensy 3.0 +# - MK20DX256 for Teensy 3.1 and 3.2 +MCU_LDSCRIPT = MK20DX128 + +# Startup code to use +# - it should exist in /os/common/ports/ARMCMx/compilers/GCC/mk/ +# - STARTUP = +# - kl2x for Teensy LC +# - k20x5 for Teensy 3.0 +# - k20x7 for Teensy 3.1 and 3.2 +MCU_STARTUP = k20x5 + +# Board: it should exist either in /os/hal/boards/ +# or /boards +# - BOARD = +# - PJRC_TEENSY_LC for Teensy LC +# - PJRC_TEENSY_3 for Teensy 3.0 +# - PJRC_TEENSY_3_1 for Teensy 3.1 or 3.2 +BOARD = PJRC_TEENSY_3 + +# Cortex version +# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4 +MCU = cortex-m4 + +# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 +# I.e. 6 for Teensy LC; 7 for Teensy 3.x +ARMV = 7 + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.) +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +NKRO_ENABLE = yes # USB Nkey Rollover + +include $(TMK_DIR)/tool/chibios/common.mk +include $(TMK_DIR)/tool/chibios/chibios.mk diff --git a/keyboards/teensy_lc_onekey/Makefile.3.2 b/keyboards/teensy_lc_onekey/Makefile.3.2 new file mode 100644 index 000000000..41bfa41a0 --- /dev/null +++ b/keyboards/teensy_lc_onekey/Makefile.3.2 @@ -0,0 +1,77 @@ +# Target file name (without extension). +PROJECT = ch + +# Directory common source files exist +TMK_DIR = ../../tmk_core + +# Directory keyboard dependent files exist +TARGET_DIR = . + +# project specific files +SRC = matrix.c \ + led.c + +ifdef KEYMAP + SRC := keymap_$(KEYMAP).c $(SRC) +else + SRC := keymap_plain.c $(SRC) +endif + +CONFIG_H = config.h + +## chip/board settings +# - the next two should match the directories in +# /os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) +# - For Teensies, FAMILY = KINETIS and SERIES is either +# KL2x (LC) or K20x (3.0,3.1,3.2). +MCU_FAMILY = KINETIS +MCU_SERIES = K20x + +# Linker script to use +# - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ +# or /ld/ +# - NOTE: a custom ld script is needed for EEPROM on Teensy LC +# - LDSCRIPT = +# - MKL26Z64 for Teensy LC +# - MK20DX128 for Teensy 3.0 +# - MK20DX256 for Teensy 3.1 and 3.2 +MCU_LDSCRIPT = MK20DX256 + +# Startup code to use +# - it should exist in /os/common/ports/ARMCMx/compilers/GCC/mk/ +# - STARTUP = +# - kl2x for Teensy LC +# - k20x5 for Teensy 3.0 +# - k20x7 for Teensy 3.1 and 3.2 +MCU_STARTUP = k20x7 + +# Board: it should exist either in /os/hal/boards/ +# or /boards +# - BOARD = +# - PJRC_TEENSY_LC for Teensy LC +# - PJRC_TEENSY_3 for Teensy 3.0 +# - PJRC_TEENSY_3_1 for Teensy 3.1 or 3.2 +BOARD = PJRC_TEENSY_3_1 + +# Cortex version +# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4 +MCU = cortex-m4 + +# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 +# I.e. 6 for Teensy LC; 7 for Teensy 3.x +ARMV = 7 + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.) +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +NKRO_ENABLE = yes # USB Nkey Rollover + +include $(TMK_DIR)/tool/chibios/common.mk +include $(TMK_DIR)/tool/chibios/chibios.mk diff --git a/keyboards/teensy_lc_onekey/chconf.h b/keyboards/teensy_lc_onekey/chconf.h new file mode 100644 index 000000000..cb36996c3 --- /dev/null +++ b/keyboards/teensy_lc_onekey/chconf.h @@ -0,0 +1,524 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file templates/chconf.h + * @brief Configuration file template. + * @details A copy of this file must be placed in each project directory, it + * contains the application specific kernel settings. + * + * @addtogroup config + * @details Kernel related settings and hooks. + * @{ + */ + +#ifndef CHCONF_H +#define CHCONF_H + +#define _CHIBIOS_RT_CONF_ + +/*===========================================================================*/ +/** + * @name System timers settings + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System time counter resolution. + * @note Allowed values are 16 or 32 bits. + */ +#define CH_CFG_ST_RESOLUTION 32 + +/** + * @brief System tick frequency. + * @details Frequency of the system timer that drives the system ticks. This + * setting also defines the system tick time unit. + */ +#define CH_CFG_ST_FREQUENCY 1000 + +/** + * @brief Time delta constant for the tick-less mode. + * @note If this value is zero then the system uses the classic + * periodic tick. This value represents the minimum number + * of ticks that is safe to specify in a timeout directive. + * The value one is not valid, timeouts are rounded up to + * this value. + */ +#define CH_CFG_ST_TIMEDELTA 0 + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel parameters and options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Round robin interval. + * @details This constant is the number of system ticks allowed for the + * threads before preemption occurs. Setting this value to zero + * disables the preemption for threads with equal priority and the + * round robin becomes cooperative. Note that higher priority + * threads can still preempt, the kernel is always preemptive. + * @note Disabling the round robin preemption makes the kernel more compact + * and generally faster. + * @note The round robin preemption is not supported in tickless mode and + * must be set to zero in that case. + */ +#define CH_CFG_TIME_QUANTUM 20 + +/** + * @brief Managed RAM size. + * @details Size of the RAM area to be managed by the OS. If set to zero + * then the whole available RAM is used. The core memory is made + * available to the heap allocator and/or can be used directly through + * the simplified core memory allocator. + * + * @note In order to let the OS manage the whole RAM the linker script must + * provide the @p __heap_base__ and @p __heap_end__ symbols. + * @note Requires @p CH_CFG_USE_MEMCORE. + */ +#define CH_CFG_MEMCORE_SIZE 0 + +/** + * @brief Idle thread automatic spawn suppression. + * @details When this option is activated the function @p chSysInit() + * does not spawn the idle thread. The application @p main() + * function becomes the idle thread and must implement an + * infinite loop. + */ +#define CH_CFG_NO_IDLE_THREAD FALSE + +/* Use __WFI in the idle thread for waiting. Does lower the power + * consumption. */ +#define CORTEX_ENABLE_WFI_IDLE TRUE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Performance options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief OS optimization. + * @details If enabled then time efficient rather than space efficient code + * is used when two possible implementations exist. + * + * @note This is not related to the compiler optimization options. + * @note The default is @p TRUE. + */ +#define CH_CFG_OPTIMIZE_SPEED TRUE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Subsystem options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Time Measurement APIs. + * @details If enabled then the time measurement APIs are included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_TM FALSE + +/** + * @brief Threads registry APIs. + * @details If enabled then the registry APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_REGISTRY TRUE + +/** + * @brief Threads synchronization APIs. + * @details If enabled then the @p chThdWait() function is included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_WAITEXIT TRUE + +/** + * @brief Semaphores APIs. + * @details If enabled then the Semaphores APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_SEMAPHORES TRUE + +/** + * @brief Semaphores queuing mode. + * @details If enabled then the threads are enqueued on semaphores by + * priority rather than in FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE + +/** + * @brief Mutexes APIs. + * @details If enabled then the mutexes APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MUTEXES TRUE + +/** + * @brief Enables recursive behavior on mutexes. + * @note Recursive mutexes are heavier and have an increased + * memory footprint. + * + * @note The default is @p FALSE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE + +/** + * @brief Conditional Variables APIs. + * @details If enabled then the conditional variables APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#define CH_CFG_USE_CONDVARS TRUE + +/** + * @brief Conditional Variables APIs with timeout. + * @details If enabled then the conditional variables APIs with timeout + * specification are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_CONDVARS. + */ +#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE + +/** + * @brief Events Flags APIs. + * @details If enabled then the event flags APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_EVENTS TRUE + +/** + * @brief Events Flags APIs with timeout. + * @details If enabled then the events APIs with timeout specification + * are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_EVENTS. + */ +#define CH_CFG_USE_EVENTS_TIMEOUT TRUE + +/** + * @brief Synchronous Messages APIs. + * @details If enabled then the synchronous messages APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MESSAGES TRUE + +/** + * @brief Synchronous Messages queuing mode. + * @details If enabled then messages are served by priority rather than in + * FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_MESSAGES. + */ +#define CH_CFG_USE_MESSAGES_PRIORITY FALSE + +/** + * @brief Mailboxes APIs. + * @details If enabled then the asynchronous messages (mailboxes) APIs are + * included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#define CH_CFG_USE_MAILBOXES TRUE + +/** + * @brief Core Memory Manager APIs. + * @details If enabled then the core memory manager APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MEMCORE TRUE + +/** + * @brief Heap Allocator APIs. + * @details If enabled then the memory heap allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or + * @p CH_CFG_USE_SEMAPHORES. + * @note Mutexes are recommended. + */ +#define CH_CFG_USE_HEAP TRUE + +/** + * @brief Memory Pools Allocator APIs. + * @details If enabled then the memory pools allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MEMPOOLS TRUE + +/** + * @brief Dynamic Threads APIs. + * @details If enabled then the dynamic threads creation APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_WAITEXIT. + * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. + */ +#define CH_CFG_USE_DYNAMIC TRUE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Debug options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Debug option, kernel statistics. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_STATISTICS FALSE + +/** + * @brief Debug option, system state check. + * @details If enabled the correct call protocol for system APIs is checked + * at runtime. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_SYSTEM_STATE_CHECK TRUE + +/** + * @brief Debug option, parameters checks. + * @details If enabled then the checks on the API functions input + * parameters are activated. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_ENABLE_CHECKS TRUE + +/** + * @brief Debug option, consistency checks. + * @details If enabled then all the assertions in the kernel code are + * activated. This includes consistency checks inside the kernel, + * runtime anomalies and port-defined checks. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_ENABLE_ASSERTS TRUE + +/** + * @brief Debug option, trace buffer. + * @details If enabled then the trace buffer is activated. + * + * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. + */ +#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED + +/** + * @brief Trace buffer entries. + * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is + * different from @p CH_DBG_TRACE_MASK_DISABLED. + */ +#define CH_DBG_TRACE_BUFFER_SIZE 128 + +/** + * @brief Debug option, stack checks. + * @details If enabled then a runtime stack check is performed. + * + * @note The default is @p FALSE. + * @note The stack check is performed in a architecture/port dependent way. + * It may not be implemented or some ports. + * @note The default failure mode is to halt the system with the global + * @p panic_msg variable set to @p NULL. + */ +#define CH_DBG_ENABLE_STACK_CHECK TRUE + +/** + * @brief Debug option, stacks initialization. + * @details If enabled then the threads working area is filled with a byte + * value when a thread is created. This can be useful for the + * runtime measurement of the used stack. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_FILL_THREADS TRUE + +/** + * @brief Debug option, threads profiling. + * @details If enabled then a field is added to the @p thread_t structure that + * counts the system ticks occurred while executing the thread. + * + * @note The default is @p FALSE. + * @note This debug option is not currently compatible with the + * tickless mode. + */ +#define CH_DBG_THREADS_PROFILING FALSE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel hooks + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Threads descriptor structure extension. + * @details User fields added to the end of the @p thread_t structure. + */ +#define CH_CFG_THREAD_EXTRA_FIELDS \ + /* Add threads custom fields here.*/ + +/** + * @brief Threads initialization hook. + * @details User initialization code added to the @p chThdInit() API. + * + * @note It is invoked from within @p chThdInit() and implicitly from all + * the threads creation APIs. + */ +#define CH_CFG_THREAD_INIT_HOOK(tp) { \ + /* Add threads initialization code here.*/ \ +} + +/** + * @brief Threads finalization hook. + * @details User finalization code added to the @p chThdExit() API. + */ +#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ + /* Add threads finalization code here.*/ \ +} + +/** + * @brief Context switch hook. + * @details This hook is invoked just before switching between threads. + */ +#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ + /* Context switch code here.*/ \ +} + +/** + * @brief ISR enter hook. + */ +#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ + /* IRQ prologue code here.*/ \ +} + +/** + * @brief ISR exit hook. + */ +#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ + /* IRQ epilogue code here.*/ \ +} + +/** + * @brief Idle thread enter hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to activate a power saving mode. + */ +#define CH_CFG_IDLE_ENTER_HOOK() { \ + /* Idle-enter code here.*/ \ +} + +/** + * @brief Idle thread leave hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to deactivate a power saving mode. + */ +#define CH_CFG_IDLE_LEAVE_HOOK() { \ + /* Idle-leave code here.*/ \ +} + +/** + * @brief Idle Loop hook. + * @details This hook is continuously invoked by the idle thread loop. + */ +#define CH_CFG_IDLE_LOOP_HOOK() { \ + /* Idle loop code here.*/ \ +} + +/** + * @brief System tick event hook. + * @details This hook is invoked in the system tick handler immediately + * after processing the virtual timers queue. + */ +#define CH_CFG_SYSTEM_TICK_HOOK() { \ + /* System tick event code here.*/ \ +} + +/** + * @brief System halt hook. + * @details This hook is invoked in case to a system halting error before + * the system is halted. + */ +#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ + /* System halt code here.*/ \ +} + +/** + * @brief Trace hook. + * @details This hook is invoked each time a new record is written in the + * trace buffer. + */ +#define CH_CFG_TRACE_HOOK(tep) { \ + /* Trace code here.*/ \ +} + +/** @} */ + +/*===========================================================================*/ +/* Port-specific settings (override port settings defaulted in chcore.h). */ +/*===========================================================================*/ + +#endif /* CHCONF_H */ + +/** @} */ diff --git a/keyboards/teensy_lc_onekey/config.h b/keyboards/teensy_lc_onekey/config.h new file mode 100644 index 000000000..19b14fe61 --- /dev/null +++ b/keyboards/teensy_lc_onekey/config.h @@ -0,0 +1,75 @@ +/* +Copyright 2015 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6464 +#define DEVICE_VER 0x0001 +/* in python2: list(u"whatever".encode('utf-16-le')) */ +/* at most 32 characters or the ugly hack in usb_main.c borks */ +#define MANUFACTURER "TMK" +#define USBSTR_MANUFACTURER 'T', '\x00', 'M', '\x00', 'K', '\x00', ' ', '\x00', '\xc6', '\x00' +#define PRODUCT "ChibiOS TMK test" +#define USBSTR_PRODUCT 'C', '\x00', 'h', '\x00', 'i', '\x00', 'b', '\x00', 'i', '\x00', 'O', '\x00', 'S', '\x00', ' ', '\x00', 'T', '\x00', 'M', '\x00', 'K', '\x00', ' ', '\x00', 't', '\x00', 'e', '\x00', 's', '\x00', 't', '\x00' +#define DESCRIPTION "TMK keyboard firmware over ChibiOS" + +/* key matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 1 +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + + + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/teensy_lc_onekey/halconf.h b/keyboards/teensy_lc_onekey/halconf.h new file mode 100644 index 000000000..b1d2cd550 --- /dev/null +++ b/keyboards/teensy_lc_onekey/halconf.h @@ -0,0 +1,187 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file templates/halconf.h + * @brief HAL configuration header. + * @details HAL configuration file, this file allows to enable or disable the + * various device drivers from your application. You may also use + * this file in order to override the device drivers default settings. + * + * @addtogroup HAL_CONF + * @{ + */ + +#ifndef _HALCONF_H_ +#define _HALCONF_H_ + +#include "mcuconf.h" + +/** + * @brief Enables the PAL subsystem. + */ +#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) +#define HAL_USE_PAL TRUE +#endif + +/** + * @brief Enables the ADC subsystem. + */ +#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) +#define HAL_USE_ADC FALSE +#endif + +/** + * @brief Enables the CAN subsystem. + */ +#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) +#define HAL_USE_CAN FALSE +#endif + +/** + * @brief Enables the DAC subsystem. + */ +#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) +#define HAL_USE_DAC FALSE +#endif + +/** + * @brief Enables the EXT subsystem. + */ +#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__) +#define HAL_USE_EXT FALSE +#endif + +/** + * @brief Enables the GPT subsystem. + */ +#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) +#define HAL_USE_GPT FALSE +#endif + +/** + * @brief Enables the I2C subsystem. + */ +#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) +#define HAL_USE_I2C FALSE +#endif + +/** + * @brief Enables the I2S subsystem. + */ +#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) +#define HAL_USE_I2S FALSE +#endif + +/** + * @brief Enables the ICU subsystem. + */ +#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) +#define HAL_USE_ICU FALSE +#endif + +/** + * @brief Enables the MAC subsystem. + */ +#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) +#define HAL_USE_MAC FALSE +#endif + +/** + * @brief Enables the MMC_SPI subsystem. + */ +#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) +#define HAL_USE_MMC_SPI FALSE +#endif + +/** + * @brief Enables the PWM subsystem. + */ +#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) +#define HAL_USE_PWM FALSE +#endif + +/** + * @brief Enables the RTC subsystem. + */ +#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) +#define HAL_USE_RTC FALSE +#endif + +/** + * @brief Enables the SDC subsystem. + */ +#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) +#define HAL_USE_SDC FALSE +#endif + +/** + * @brief Enables the SERIAL subsystem. + */ +#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL FALSE +#endif + +/** + * @brief Enables the SERIAL over USB subsystem. + */ +#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL_USB FALSE +#endif + +/** + * @brief Enables the SPI subsystem. + */ +#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) +#define HAL_USE_SPI FALSE +#endif + +/** + * @brief Enables the UART subsystem. + */ +#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) +#define HAL_USE_UART FALSE +#endif + +/** + * @brief Enables the USB subsystem. + */ +#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) +#define HAL_USE_USB TRUE +#endif + +/** + * @brief Enables the WDG subsystem. + */ +#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) +#define HAL_USE_WDG FALSE +#endif + +/*===========================================================================*/ +/* USB driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) +#define USB_USE_WAIT TRUE +#endif + +#endif /* _HALCONF_H_ */ + +/** @} */ diff --git a/keyboards/teensy_lc_onekey/instructions.md b/keyboards/teensy_lc_onekey/instructions.md new file mode 100644 index 000000000..16886a015 --- /dev/null +++ b/keyboards/teensy_lc_onekey/instructions.md @@ -0,0 +1,82 @@ +# Teensy LC, 3.0, 3.1, 3.2 support + +These ARM Teensies are now supported through [ChibiOS](http://chibios.org). + +You'll need to install an ARM toolchain, for instance from [gcc ARM embedded](https://launchpad.net/gcc-arm-embedded) website, or using your favourite package manager. After installing, you should be able to run `arm-none-eabi-gcc -v` in the command prompt and get sensible output. This toolchain is used instead of `avr-gcc`, which is only for AVR chips. Naturally you'll also need the usual development tools (e.g. `make`), just as in the AVR setting. + +Next, you'll need ChibiOS. For Teensies, you'll need code from two repositories: [chibios-main](https://github.com/ChibiOS/ChibiOS) and [chibios-contrib](https://github.com/ChibiOS/ChibiOS). If you're not using git, you can just download a [zip of chibios from here](https://github.com/ChibiOS/ChibiOS/archive/a7df9a891067621e8e1a5c2a2c0ceada82403afe.zip), unpack the zip, and rename/move the unpacked directory (named `ChibiOS-`) to `tmk_core/tool/chibios/chibios` (so that the file `tmk_core/tool/chibios/chibios/license.txt` exists). Now the same procedure with a [zip of chibios-contrib from here](https://github.com/ChibiOS/ChibiOS-Contrib/archive/e1311c4db6cd366cf760673f769e925741ac0ad3.zip): unpack and move `ChibiOS-Contrib-` to `tmk_core/tool/chibios/chibios-contrib`. + +(If you're using git, you can just clone the two repos: [chibios](https://github.com/ChibiOS/ChibiOS) and [chibios-contrib](https://github.com/ChibiOS/ChibiOS-Contrib). However - be warned that things may be somewhat out-of-sync (updates at different rates), so you may need to hunt a bit for the right commits.) + +(Why do we need chibios-contrib? Well, the main repo focuses on STM32 chips, and Freescale/NXP Kinetis chips are supported via the Contrib repository.) + +This should be it. Running `make` in `keyboard/teensy_lc_onekey` should create a working firmware in `build/`, called `ch.hex`. + +For more notes about the ChibiOS backend in TMK, see `tmk_core/protocol/chibios/README.md`. + +## About this onekey example + +It's set up for Teensy LC. To use 3.x, you'll need to edit the `Makefile` (and comment out one line in `mcuconf.h`). A sample makefile for Teensy 3.0 is provided as `Makefile.3.0`, can be used without renaming with `make -f Makefile.3.0`. Similarly for Teensy 3.2, there's `Makefile.3.2`. + +## Credits + +TMK itself is written by hasu, original sources [here](https://github.com/tmk/tmk_keyboard). + +The USB support for Kinetis MCUs is due to RedoX. His ChibiOS fork is also [on github](https://github.com/RedoXyde/ChibiOS); but it doesn't include Teensy LC definitions. + +## Features that are not implemented yet + +Currently only the more fancy suspend features are not there (power saving during suspend). The rest should work fine (reports either way are welcome). + +# Matrix programming notes + +The notes below explain what commands can be used to examine and set the status of Teensy pins. + +## ChibiOS pin manipulation basics + +### Pins + +Each pin sits on a "port", each of which comprises at most 32 individual pins. +So for instance "PTC5" from Kinetis manual/datasheet refers to port C (or GPIOA), pin 5. Most functions dealing with pins take 2 parameters which specify the pin -- the first being the port, the second being the pin number. + +Within ChibiOS, there are definitions which simplify this a bit for the Teensies. `TEENSY_PINn_IOPORT` represents the port of the MCU's pin connected Teensy's PIN `n`, and `TEENSY_PINn` represents its MCU's pin number. + +### Mode + +A MCU pin can be in several modes. The basic command to set a pin mode is + + palSetPadMode(TEENSY_PINn_IOPORT, TEENSY_PINn, PAL_MODE_INPUT_PULLUP); + +The last parameter is the mode. For keyboards, the usual ones that are used are `PAL_MODE_INPUT_PULLUP` (input with a pullup), `PAL_MODE_INPUT_PULLDOWN` (input with a pulldown), `PAL_MODE_INPUT` (input floating, a.k.a. Hi-Z), `PAL_MODE_OUTPUT_PUSHPULL` (output in the Arduino sense -- can be then set HIGH or LOW). + +### Setting + +Pins are set HIGH (after they've been put into `OUTPUT_PUSHPULL` mode) by + + palSetPad(TEENSY_PINn_IOPORT, TEENSY_PINn); + +or set LOW by + + palClearPad(TEENSY_PINn_IOPORT, TEENSY_PINn); + +Toggling can be done with + + palTogglePad(TEENSY_PINn_IOPORT, TEENSY_PINn); + +Alternatively, you can use + + palWritePad(TEENSY_PINn_IOPORT, TEENSY_PINn, bit); + +where `bit` is either `PAL_LOW` or `PAL_HIGH` (i.e. `0` or `1`). + +### Reading + +Reading pin status is done with + + palReadPad(TEENSY_PINn_IOPORT, TEENSY_PINn); + +The function returns either `PAL_HIGH` (actually `1`) or `PAL_LOW` (actually `0`). + +### Further docs + +All the commands that are available for pin manipulation through ChibiOS HAL are documented in [ChibiOS PAL driver docs](http://chibios.sourceforge.net/docs3/hal/group___p_a_l.html). diff --git a/keyboards/teensy_lc_onekey/keymaps/default/keymap.c b/keyboards/teensy_lc_onekey/keymaps/default/keymap.c new file mode 100644 index 000000000..a109b4960 --- /dev/null +++ b/keyboards/teensy_lc_onekey/keymaps/default/keymap.c @@ -0,0 +1,32 @@ +/* +Copyright 2012,2013 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "keycode.h" +#include "action.h" +#include "action_macro.h" +#include "report.h" +#include "host.h" +#include "print.h" +#include "debug.h" +#include "keymap.h" + +const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + {{KC_A}}, +}; // to test: KC_CAPS, KT_BTLD, KC_A + +const uint16_t fn_actions[] = { +}; diff --git a/keyboards/teensy_lc_onekey/ld/MKL26Z64.ld b/keyboards/teensy_lc_onekey/ld/MKL26Z64.ld new file mode 100644 index 000000000..fb141f888 --- /dev/null +++ b/keyboards/teensy_lc_onekey/ld/MKL26Z64.ld @@ -0,0 +1,105 @@ +/* + * Copyright (C) 2013-2016 Fabio Utzig, http://fabioutzig.com + * (C) 2016 flabbergast + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/* + * KL26Z64 memory setup. + */ +MEMORY +{ + flash0 : org = 0x00000000, len = 0x100 + flash1 : org = 0x00000400, len = 0x10 + flash2 : org = 0x00000410, len = 62k - 0x410 + flash3 : org = 0x0000F800, len = 2k + flash4 : org = 0x00000000, len = 0 + flash5 : org = 0x00000000, len = 0 + flash6 : org = 0x00000000, len = 0 + flash7 : org = 0x00000000, len = 0 + ram0 : org = 0x1FFFF800, len = 8k + ram1 : org = 0x00000000, len = 0 + ram2 : org = 0x00000000, len = 0 + ram3 : org = 0x00000000, len = 0 + ram4 : org = 0x00000000, len = 0 + ram5 : org = 0x00000000, len = 0 + ram6 : org = 0x00000000, len = 0 + ram7 : org = 0x00000000, len = 0 +} + +/* Flash region for the configuration bytes.*/ +SECTIONS +{ + .cfmprotect : ALIGN(4) SUBALIGN(4) + { + KEEP(*(.cfmconfig)) + } > flash1 +} + +/* For each data/text section two region are defined, a virtual region + and a load region (_LMA suffix).*/ + +/* Flash region to be used for exception vectors.*/ +REGION_ALIAS("VECTORS_FLASH", flash0); +REGION_ALIAS("VECTORS_FLASH_LMA", flash0); + +/* Flash region to be used for constructors and destructors.*/ +REGION_ALIAS("XTORS_FLASH", flash2); +REGION_ALIAS("XTORS_FLASH_LMA", flash2); + +/* Flash region to be used for code text.*/ +REGION_ALIAS("TEXT_FLASH", flash2); +REGION_ALIAS("TEXT_FLASH_LMA", flash2); + +/* Flash region to be used for read only data.*/ +REGION_ALIAS("RODATA_FLASH", flash2); +REGION_ALIAS("RODATA_FLASH_LMA", flash2); + +/* Flash region to be used for various.*/ +REGION_ALIAS("VARIOUS_FLASH", flash2); +REGION_ALIAS("VARIOUS_FLASH_LMA", flash2); + +/* Flash region to be used for RAM(n) initialization data.*/ +REGION_ALIAS("RAM_INIT_FLASH_LMA", flash2); + +/* RAM region to be used for Main stack. This stack accommodates the processing + of all exceptions and interrupts.*/ +REGION_ALIAS("MAIN_STACK_RAM", ram0); + +/* RAM region to be used for the process stack. This is the stack used by + the main() function.*/ +REGION_ALIAS("PROCESS_STACK_RAM", ram0); + +/* RAM region to be used for data segment.*/ +REGION_ALIAS("DATA_RAM", ram0); +REGION_ALIAS("DATA_RAM_LMA", flash2); + +/* RAM region to be used for BSS segment.*/ +REGION_ALIAS("BSS_RAM", ram0); + +/* RAM region to be used for the default heap.*/ +REGION_ALIAS("HEAP_RAM", ram0); + +__eeprom_workarea_start__ = ORIGIN(flash3); +__eeprom_workarea_size__ = LENGTH(flash3); +__eeprom_workarea_end__ = __eeprom_workarea_start__ + __eeprom_workarea_size__; + +/* Generic rules inclusion.*/ +INCLUDE rules.ld diff --git a/keyboards/teensy_lc_onekey/led.c b/keyboards/teensy_lc_onekey/led.c new file mode 100644 index 000000000..dfa60c107 --- /dev/null +++ b/keyboards/teensy_lc_onekey/led.c @@ -0,0 +1,32 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "hal.h" + +#include "led.h" + + +void led_set(uint8_t usb_led) { + if (usb_led & (1< + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "ch.h" +#include "hal.h" + +/* + * scan matrix + */ +#include "print.h" +#include "debug.h" +#include "util.h" +#include "matrix.h" +#include "wait.h" + +#ifndef DEBOUNCE +# define DEBOUNCE 5 +#endif +static uint8_t debouncing = DEBOUNCE; + +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; +static matrix_row_t matrix_debouncing[MATRIX_ROWS]; + +static matrix_row_t read_cols(void); +static void init_cols(void); +static void unselect_rows(void); +static void select_row(uint8_t row); + + +inline +uint8_t matrix_rows(void) +{ + return MATRIX_ROWS; +} + +inline +uint8_t matrix_cols(void) +{ + return MATRIX_COLS; +} + +#define LED_ON() do { palSetPad(TEENSY_PIN13_IOPORT, TEENSY_PIN13) ;} while (0) +#define LED_OFF() do { palClearPad(TEENSY_PIN13_IOPORT, TEENSY_PIN13); } while (0) +#define LED_TGL() do { palTogglePad(TEENSY_PIN13_IOPORT, TEENSY_PIN13); } while (0) + +void matrix_init(void) +{ + // initialize row and col + unselect_rows(); + init_cols(); + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + matrix_debouncing[i] = 0; + } + + //debug + debug_matrix = true; + LED_ON(); + wait_ms(500); + LED_OFF(); +} + +uint8_t matrix_scan(void) +{ + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + select_row(i); + wait_us(30); // without this wait read unstable value. + matrix_row_t cols = read_cols(); + if (matrix_debouncing[i] != cols) { + matrix_debouncing[i] = cols; + if (debouncing) { + debug("bounce!: "); debug_hex(debouncing); debug("\n"); + } + debouncing = DEBOUNCE; + } + unselect_rows(); + } + + if (debouncing) { + if (--debouncing) { + wait_ms(1); + } else { + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = matrix_debouncing[i]; + } + } + } + + return 1; +} + +inline +bool matrix_is_on(uint8_t row, uint8_t col) +{ + return (matrix[row] & ((matrix_row_t)1< - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include "keymap.h" -#include "report.h" -#include "keycode.h" -#include "action_layer.h" -#include -#include "action.h" -#include "action_macro.h" -#include "debug.h" -#include "backlight.h" -#include "quantum.h" - -#ifdef MIDI_ENABLE - #include "keymap_midi.h" -#endif - -extern keymap_config_t keymap_config; - -#include -#include - -/* converts key to action */ -action_t action_for_key(uint8_t layer, keypos_t key) -{ - // 16bit keycodes - important - uint16_t keycode = keymap_key_to_keycode(layer, key); - - // keycode remapping - keycode = keycode_config(keycode); - - action_t action; - uint8_t action_layer, when, mod; - - switch (keycode) { - case KC_FN0 ... KC_FN31: - action.code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]); - break; - case KC_A ... KC_EXSEL: - case KC_LCTRL ... KC_RGUI: - action.code = ACTION_KEY(keycode); - break; - case KC_SYSTEM_POWER ... KC_SYSTEM_WAKE: - action.code = ACTION_USAGE_SYSTEM(KEYCODE2SYSTEM(keycode)); - break; - case KC_AUDIO_MUTE ... KC_WWW_FAVORITES: - action.code = ACTION_USAGE_CONSUMER(KEYCODE2CONSUMER(keycode)); - break; - case KC_MS_UP ... KC_MS_ACCEL2: - action.code = ACTION_MOUSEKEY(keycode); - break; - case KC_TRNS: - action.code = ACTION_TRANSPARENT; - break; - case QK_MODS ... QK_MODS_MAX: ; - // Has a modifier - // Split it up - action.code = ACTION_MODS_KEY(keycode >> 8, keycode & 0xFF); // adds modifier to key - break; - case QK_FUNCTION ... QK_FUNCTION_MAX: ; - // Is a shortcut for function action_layer, pull last 12bits - // This means we have 4,096 FN macros at our disposal - action.code = pgm_read_word(&fn_actions[(int)keycode & 0xFFF]); - break; - case QK_MACRO ... QK_MACRO_MAX: - action.code = ACTION_MACRO(keycode & 0xFF); - break; - case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: - action.code = ACTION_LAYER_TAP_KEY((keycode >> 0x8) & 0xF, keycode & 0xFF); - break; - case QK_TO ... QK_TO_MAX: ; - // Layer set "GOTO" - when = (keycode >> 0x4) & 0x3; - action_layer = keycode & 0xF; - action.code = ACTION_LAYER_SET(action_layer, when); - break; - case QK_MOMENTARY ... QK_MOMENTARY_MAX: ; - // Momentary action_layer - action_layer = keycode & 0xFF; - action.code = ACTION_LAYER_MOMENTARY(action_layer); - break; - case QK_DEF_LAYER ... QK_DEF_LAYER_MAX: ; - // Set default action_layer - action_layer = keycode & 0xFF; - action.code = ACTION_DEFAULT_LAYER_SET(action_layer); - break; - case QK_TOGGLE_LAYER ... QK_TOGGLE_LAYER_MAX: ; - // Set toggle - action_layer = keycode & 0xFF; - action.code = ACTION_LAYER_TOGGLE(action_layer); - break; - case QK_ONE_SHOT_LAYER ... QK_ONE_SHOT_LAYER_MAX: ; - // OSL(action_layer) - One-shot action_layer - action_layer = keycode & 0xFF; - action.code = ACTION_LAYER_ONESHOT(action_layer); - break; - case QK_ONE_SHOT_MOD ... QK_ONE_SHOT_MOD_MAX: ; - // OSM(mod) - One-shot mod - mod = keycode & 0xFF; - action.code = ACTION_MODS_ONESHOT(mod); - break; - case QK_MOD_TAP ... QK_MOD_TAP_MAX: - action.code = ACTION_MODS_TAP_KEY((keycode >> 0x8) & 0xF, keycode & 0xFF); - break; - #ifdef BACKLIGHT_ENABLE - case BL_0 ... BL_15: - action.code = ACTION_BACKLIGHT_LEVEL(keycode - BL_0); - break; - case BL_DEC: - action.code = ACTION_BACKLIGHT_DECREASE(); - break; - case BL_INC: - action.code = ACTION_BACKLIGHT_INCREASE(); - break; - case BL_TOGG: - action.code = ACTION_BACKLIGHT_TOGGLE(); - break; - case BL_STEP: - action.code = ACTION_BACKLIGHT_STEP(); - break; - #endif - default: - action.code = ACTION_NO; - break; - } - return action; -} - -__attribute__ ((weak)) -const uint16_t PROGMEM fn_actions[] = { - -}; - -/* Macro */ -__attribute__ ((weak)) -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - return MACRO_NONE; -} - -/* Function */ -__attribute__ ((weak)) -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) -{ -} - -/* translates key to keycode */ -uint16_t keymap_key_to_keycode(uint8_t layer, keypos_t key) -{ - // Read entire word (16bits) - return pgm_read_word(&keymaps[(layer)][(key.row)][(key.col)]); -} diff --git a/quantum/keymap.h b/quantum/keymap.h index a994f4f2e..73f99f821 100644 --- a/quantum/keymap.h +++ b/quantum/keymap.h @@ -21,7 +21,9 @@ along with this program. If not, see . #include #include #include "action.h" +#if defined(__AVR__) #include +#endif #include "keycode.h" #include "action_macro.h" #include "report.h" @@ -30,12 +32,15 @@ along with this program. If not, see . #include "debug.h" #include "keycode_config.h" +// ChibiOS uses RESET in its FlagStatus enumeration +// Therefore define it as QK_RESET here, to avoid name collision +#if defined(PROTOCOL_CHIBIOS) +#define RESET QK_RESET +#endif + /* translates key to keycode */ uint16_t keymap_key_to_keycode(uint8_t layer, keypos_t key); -/* translates Fn keycode to action */ -action_t keymap_fn_to_action(uint16_t keycode); - extern const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; extern const uint16_t fn_actions[]; diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c new file mode 100644 index 000000000..76872ac59 --- /dev/null +++ b/quantum/keymap_common.c @@ -0,0 +1,171 @@ +/* +Copyright 2012,2013 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "keymap.h" +#include "report.h" +#include "keycode.h" +#include "action_layer.h" +#if defined(__AVR__) +#include +#include +#endif +#include "action.h" +#include "action_macro.h" +#include "debug.h" +#include "backlight.h" +#include "quantum.h" + +#ifdef MIDI_ENABLE + #include "keymap_midi.h" +#endif + +extern keymap_config_t keymap_config; + +#include + +/* converts key to action */ +action_t action_for_key(uint8_t layer, keypos_t key) +{ + // 16bit keycodes - important + uint16_t keycode = keymap_key_to_keycode(layer, key); + + // keycode remapping + keycode = keycode_config(keycode); + + action_t action; + uint8_t action_layer, when, mod; + // The arm-none-eabi compiler generates out of bounds warnings when using the fn_actions directly for some reason + const uint16_t* actions = fn_actions; + + switch (keycode) { + case KC_FN0 ... KC_FN31: + action.code = pgm_read_word(&actions[FN_INDEX(keycode)]); + break; + case KC_A ... KC_EXSEL: + case KC_LCTRL ... KC_RGUI: + action.code = ACTION_KEY(keycode); + break; + case KC_SYSTEM_POWER ... KC_SYSTEM_WAKE: + action.code = ACTION_USAGE_SYSTEM(KEYCODE2SYSTEM(keycode)); + break; + case KC_AUDIO_MUTE ... KC_WWW_FAVORITES: + action.code = ACTION_USAGE_CONSUMER(KEYCODE2CONSUMER(keycode)); + break; + case KC_MS_UP ... KC_MS_ACCEL2: + action.code = ACTION_MOUSEKEY(keycode); + break; + case KC_TRNS: + action.code = ACTION_TRANSPARENT; + break; + case QK_MODS ... QK_MODS_MAX: ; + // Has a modifier + // Split it up + action.code = ACTION_MODS_KEY(keycode >> 8, keycode & 0xFF); // adds modifier to key + break; + case QK_FUNCTION ... QK_FUNCTION_MAX: ; + // Is a shortcut for function action_layer, pull last 12bits + // This means we have 4,096 FN macros at our disposal + action.code = pgm_read_word(&actions[(int)keycode & 0xFFF]); + break; + case QK_MACRO ... QK_MACRO_MAX: + action.code = ACTION_MACRO(keycode & 0xFF); + break; + case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: + action.code = ACTION_LAYER_TAP_KEY((keycode >> 0x8) & 0xF, keycode & 0xFF); + break; + case QK_TO ... QK_TO_MAX: ; + // Layer set "GOTO" + when = (keycode >> 0x4) & 0x3; + action_layer = keycode & 0xF; + action.code = ACTION_LAYER_SET(action_layer, when); + break; + case QK_MOMENTARY ... QK_MOMENTARY_MAX: ; + // Momentary action_layer + action_layer = keycode & 0xFF; + action.code = ACTION_LAYER_MOMENTARY(action_layer); + break; + case QK_DEF_LAYER ... QK_DEF_LAYER_MAX: ; + // Set default action_layer + action_layer = keycode & 0xFF; + action.code = ACTION_DEFAULT_LAYER_SET(action_layer); + break; + case QK_TOGGLE_LAYER ... QK_TOGGLE_LAYER_MAX: ; + // Set toggle + action_layer = keycode & 0xFF; + action.code = ACTION_LAYER_TOGGLE(action_layer); + break; + case QK_ONE_SHOT_LAYER ... QK_ONE_SHOT_LAYER_MAX: ; + // OSL(action_layer) - One-shot action_layer + action_layer = keycode & 0xFF; + action.code = ACTION_LAYER_ONESHOT(action_layer); + break; + case QK_ONE_SHOT_MOD ... QK_ONE_SHOT_MOD_MAX: ; + // OSM(mod) - One-shot mod + mod = keycode & 0xFF; + action.code = ACTION_MODS_ONESHOT(mod); + break; + case QK_MOD_TAP ... QK_MOD_TAP_MAX: + action.code = ACTION_MODS_TAP_KEY((keycode >> 0x8) & 0xF, keycode & 0xFF); + break; + #ifdef BACKLIGHT_ENABLE + case BL_0 ... BL_15: + action.code = ACTION_BACKLIGHT_LEVEL(keycode - BL_0); + break; + case BL_DEC: + action.code = ACTION_BACKLIGHT_DECREASE(); + break; + case BL_INC: + action.code = ACTION_BACKLIGHT_INCREASE(); + break; + case BL_TOGG: + action.code = ACTION_BACKLIGHT_TOGGLE(); + break; + case BL_STEP: + action.code = ACTION_BACKLIGHT_STEP(); + break; + #endif + default: + action.code = ACTION_NO; + break; + } + return action; +} + +__attribute__ ((weak)) +const uint16_t PROGMEM fn_actions[] = { + +}; + +/* Macro */ +__attribute__ ((weak)) +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + return MACRO_NONE; +} + +/* Function */ +__attribute__ ((weak)) +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) +{ +} + +/* translates key to keycode */ +uint16_t keymap_key_to_keycode(uint8_t layer, keypos_t key) +{ + // Read entire word (16bits) + return pgm_read_word(&keymaps[(layer)][(key.row)][(key.col)]); +} diff --git a/quantum/matrix.c b/quantum/matrix.c index f5744658c..a38c13f15 100644 --- a/quantum/matrix.c +++ b/quantum/matrix.c @@ -17,7 +17,9 @@ along with this program. If not, see . */ #include #include +#if defined(__AVR__) #include +#endif #include "wait.h" #include "print.h" #include "debug.h" diff --git a/quantum/quantum.c b/quantum/quantum.c index 270b976e3..d59bd5a3f 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -88,7 +88,7 @@ bool process_record_quantum(keyrecord_t *record) { stop_all_notes(); shutdown_user(); #endif - _delay_ms(250); + wait_ms(250); #ifdef ATREUS_ASTAR *(uint16_t *)0x0800 = 0x7777; // these two are a-star-specific #endif diff --git a/quantum/quantum.h b/quantum/quantum.h index 9b5d310bd..3a0b74202 100644 --- a/quantum/quantum.h +++ b/quantum/quantum.h @@ -1,7 +1,12 @@ #ifndef QUANTUM_H #define QUANTUM_H +#if defined(__AVR__) #include +#include +#include +#endif +#include "wait.h" #include "matrix.h" #include "keymap.h" #ifdef BACKLIGHT_ENABLE @@ -14,12 +19,9 @@ #include "action_layer.h" #include "eeconfig.h" #include -#include -#include #include "bootloader.h" #include "timer.h" #include "config_common.h" -#include #include "led.h" #include "action_util.h" #include diff --git a/readme.md b/readme.md index 6fa67c047..c24d951d8 100644 --- a/readme.md +++ b/readme.md @@ -24,6 +24,9 @@ The project also includes community support for [lots of other keyboards](/keybo QMK is developed and maintained by Jack Humbert of OLKB with contributions from the community, and of course, [Hasu](https://github.com/tmk). This repo used to be a fork of [TMK](https://github.com/tmk/tmk_keyboard), and we are incredibly grateful for his founding contributions to the firmware. We've had to break the fork due to purely technical reasons - it simply became too different over time, and we've had to start refactoring some of the basic bits and pieces. We are huge fans of TMK and Hasu :) This documentation is edited and maintained by Erez Zukerman of ErgoDox EZ. If you spot any typos or inaccuracies, please [open an issue](https://github.com/jackhumbert/qmk_firmware/issues/new). +#### 2016/02/10 +core: flabbergast's Chibios protocol was merged from (@72b1668). See [tmk_core/protocol/chibios/README.md](tmk_core/protocol/chibios/README.md). Chibios protocol supports Cortex-M such as STM32 and Kinetis. + The OLKB product firmwares are maintained by [Jack Humbert](https://github.com/jackhumbert), the Ergodox EZ by [Erez Zukerman](https://github.com/ezuk), and the Clueboard by [Zach White](https://github.com/skullydazed). diff --git a/tmk_core/avr.mk b/tmk_core/avr.mk new file mode 100644 index 000000000..72be5e6da --- /dev/null +++ b/tmk_core/avr.mk @@ -0,0 +1,185 @@ +# Hey Emacs, this is a -*- makefile -*- +############################################################################## +# Compiler settings +# +CC = avr-gcc +OBJCOPY = avr-objcopy +OBJDUMP = avr-objdump +SIZE = avr-size +AR = avr-ar rcs +NM = avr-nm +HEX = $(OBJCOPY) -O $(FORMAT) -R .eeprom -R .fuse -R .lock -R .signature +EEP = $(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O $(FORMAT) + + + +COMPILEFLAGS += -funsigned-char +COMPILEFLAGS += -funsigned-bitfields +COMPILEFLAGS += -ffunction-sections +COMPILEFLAGS += -fdata-sections +COMPILEFLAGS += -fpack-struct +COMPILEFLAGS += -fshort-enums + +CFLAGS += $(COMPILEFLAGS) +CFLAGS += -fno-inline-small-functions +CFLAGS += -fno-strict-aliasing + +CPPFLAGS += $(COMPILEFLAGS) +CPPFLAGS += -fno-exceptions + +LDFLAGS +=-Wl,--gc-sections + +OPT_DEFS += -DF_CPU=$(F_CPU)UL + +MCUFLAGS = -mmcu=$(MCU) + +# List any extra directories to look for libraries here. +# Each directory must be seperated by a space. +# Use forward slashes for directory separators. +# For a directory that has spaces, enclose it in quotes. +EXTRALIBDIRS = + + +#---------------- External Memory Options ---------------- + +# 64 KB of external RAM, starting after internal RAM (ATmega128!), +# used for variables (.data/.bss) and heap (malloc()). +#EXTMEMOPTS = -Wl,-Tdata=0x801100,--defsym=__heap_end=0x80ffff + +# 64 KB of external RAM, starting after internal RAM (ATmega128!), +# only used for heap (malloc()). +#EXTMEMOPTS = -Wl,--section-start,.data=0x801100,--defsym=__heap_end=0x80ffff + +EXTMEMOPTS = + +#---------------- Debugging Options ---------------- + +# Debugging format. +# Native formats for AVR-GCC's -g are dwarf-2 [default] or stabs. +# AVR Studio 4.10 requires dwarf-2. +# AVR [Extended] COFF format requires stabs, plus an avr-objcopy run. +DEBUG = dwarf-2 + +# For simulavr only - target MCU frequency. +DEBUG_MFREQ = $(F_CPU) + +# Set the DEBUG_UI to either gdb or insight. +# DEBUG_UI = gdb +DEBUG_UI = insight + +# Set the debugging back-end to either avarice, simulavr. +DEBUG_BACKEND = avarice +#DEBUG_BACKEND = simulavr + +# GDB Init Filename. +GDBINIT_FILE = __avr_gdbinit + +# When using avarice settings for the JTAG +JTAG_DEV = /dev/com1 + +# Debugging port used to communicate between GDB / avarice / simulavr. +DEBUG_PORT = 4242 + +# Debugging host used to communicate between GDB / avarice / simulavr, normally +# just set to localhost unless doing some sort of crazy debugging when +# avarice is running on a different computer. +DEBUG_HOST = localhost + +#============================================================================ +# Autodecct teensy loader +ifneq (, $(shell which teensy-loader-cli 2>/dev/null)) + TEENSY_LOADER_CLI = teensy-loader-cli +else + TEENSY_LOADER_CLI = teensy_loader_cli +endif + +# Program the device. +program: $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep + $(PROGRAM_CMD) + +teensy: $(BUILD_DIR)/$(TARGET).hex + $(TEENSY_LOADER_CLI) -mmcu=$(MCU) -w -v $(BUILD_DIR)/$(TARGET).hex + +flip: $(BUILD_DIR)/$(TARGET).hex + batchisp -hardware usb -device $(MCU) -operation erase f + batchisp -hardware usb -device $(MCU) -operation loadbuffer $(BUILD_DIR)/$(TARGET).hex program + batchisp -hardware usb -device $(MCU) -operation start reset 0 + +dfu: $(BUILD_DIR)/$(TARGET).hex sizeafter +ifneq (, $(findstring 0.7, $(shell dfu-programmer --version 2>&1))) + dfu-programmer $(MCU) erase --force +else + dfu-programmer $(MCU) erase +endif + dfu-programmer $(MCU) flash $(BUILD_DIR)/$(TARGET).hex + dfu-programmer $(MCU) reset + +dfu-start: + dfu-programmer $(MCU) reset + dfu-programmer $(MCU) start + +flip-ee: $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep + $(COPY) $(BUILD_DIR)/$(TARGET).eep $(BUILD_DIR)/$(TARGET)eep.hex + batchisp -hardware usb -device $(MCU) -operation memory EEPROM erase + batchisp -hardware usb -device $(MCU) -operation memory EEPROM loadbuffer $(BUILD_DIR)/$(TARGET)eep.hex program + batchisp -hardware usb -device $(MCU) -operation start reset 0 + $(REMOVE) $(BUILD_DIR)/$(TARGET)eep.hex + +dfu-ee: $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep +ifneq (, $(findstring 0.7, $(shell dfu-programmer --version 2>&1))) + dfu-programmer $(MCU) flash --eeprom $(BUILD_DIR)/$(TARGET).eep +else + dfu-programmer $(MCU) flash-eeprom $(BUILD_DIR)/$(TARGET).eep +endif + dfu-programmer $(MCU) reset + + +# Generate avr-gdb config/init file which does the following: +# define the reset signal, load the target file, connect to target, and set +# a breakpoint at main(). +gdb-config: + @$(REMOVE) $(GDBINIT_FILE) + @echo define reset >> $(GDBINIT_FILE) + @echo SIGNAL SIGHUP >> $(GDBINIT_FILE) + @echo end >> $(GDBINIT_FILE) + @echo file $(BUILD_DIR)/$(TARGET).elf >> $(GDBINIT_FILE) + @echo target remote $(DEBUG_HOST):$(DEBUG_PORT) >> $(GDBINIT_FILE) +ifeq ($(DEBUG_BACKEND),simulavr) + @echo load >> $(GDBINIT_FILE) +endif + @echo break main >> $(GDBINIT_FILE) + +debug: gdb-config $(BUILD_DIR)/$(TARGET).elf +ifeq ($(DEBUG_BACKEND), avarice) + @echo Starting AVaRICE - Press enter when "waiting to connect" message displays. + @$(WINSHELL) /c start avarice --jtag $(JTAG_DEV) --erase --program --file \ + $(BUILD_DIR)/$(TARGET).elf $(DEBUG_HOST):$(DEBUG_PORT) + @$(WINSHELL) /c pause + +else + @$(WINSHELL) /c start simulavr --gdbserver --device $(MCU) --clock-freq \ + $(DEBUG_MFREQ) --port $(DEBUG_PORT) +endif + @$(WINSHELL) /c start avr-$(DEBUG_UI) --command=$(GDBINIT_FILE) + + + + +# Convert ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB. +COFFCONVERT = $(OBJCOPY) --debugging +COFFCONVERT += --change-section-address .data-0x800000 +COFFCONVERT += --change-section-address .bss-0x800000 +COFFCONVERT += --change-section-address .noinit-0x800000 +COFFCONVERT += --change-section-address .eeprom-0x810000 + + + +coff: $(BUILD_DIR)/$(TARGET).elf + @$(SECHO) $(MSG_COFF) $(BUILD_DIR)/$(TARGET).cof + $(COFFCONVERT) -O coff-avr $< $(BUILD_DIR)/$(TARGET).cof + + +extcoff: $(BUILD_DIR)/$(TARGET).elf + @$(SECHO) $(MSG_EXTENDED_COFF) $(BUILD_DIR)/$(TARGET).cof + $(COFFCONVERT) -O coff-ext-avr $< $(BUILD_DIR)/$(TARGET).cof + diff --git a/tmk_core/chibios.mk b/tmk_core/chibios.mk new file mode 100644 index 000000000..0abb933a8 --- /dev/null +++ b/tmk_core/chibios.mk @@ -0,0 +1,154 @@ +# Hey Emacs, this is a -*- makefile -*- +############################################################################## +# Architecture or project specific options +# + +# Stack size to be allocated to the Cortex-M process stack. This stack is +# the stack used by the main() thread. +ifeq ($(USE_PROCESS_STACKSIZE),) + USE_PROCESS_STACKSIZE = 0x200 +endif + +# Stack size to the allocated to the Cortex-M main/exceptions stack. This +# stack is used for processing interrupts and exceptions. +ifeq ($(USE_EXCEPTIONS_STACKSIZE),) + USE_EXCEPTIONS_STACKSIZE = 0x400 +endif + +# +# Architecture or project specific options +############################################################################## + +############################################################################## +# Project, sources and paths +# + +# Imported source files and paths +CHIBIOS = $(TOP_DIR)/lib/chibios +CHIBIOS_CONTRIB = $(TOP_DIR)/lib/chibios-contrib +# Startup files. Try a few different locations, for compability with old versions and +# for things hardware in the contrib repository +STARTUP_MK = $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/startup_$(MCU_STARTUP).mk +ifeq ("$(wildcard $(STARTUP_MK))","") + STARTUP_MK = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_$(MCU_STARTUP).mk + ifeq ("$(wildcard $(STARTUP_MK))","") + STARTUP_MK = $(CHIBIOS_CONTRIB)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_$(MCU_STARTUP).mk + endif +endif +include $(STARTUP_MK) +# HAL-OSAL files (optional). +include $(CHIBIOS)/os/hal/hal.mk + +PLATFORM_MK = $(CHIBIOS)/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)/platform.mk +ifeq ("$(wildcard $(PLATFORM_MK))","") +PLATFORM_MK = $(CHIBIOS_CONTRIB)/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)/platform.mk +endif +include $(PLATFORM_MK) + + +BOARD_MK = $(KEYBOARD_PATH)/boards/$(BOARD)/board.mk +ifeq ("$(wildcard $(BOARD_MK))","") + BOARD_MK = $(CHIBIOS)/os/hal/boards/$(BOARD)/board.mk + ifeq ("$(wildcard $(BOARD_MK))","") + BOARD_MK = $(CHIBIOS_CONTRIB)/os/hal/boards/$(BOARD)/board.mk + endif +endif +include $(BOARD_MK) +include $(CHIBIOS)/os/hal/osal/rt/osal.mk +# RTOS files (optional). +include $(CHIBIOS)/os/rt/rt.mk +# Compability with old version +PORT_V = $(CHIBIOS)/os/rt/ports/ARMCMx/compilers/GCC/mk/port_v$(ARMV)m.mk +ifeq ("$(wildcard $(PORT_V))","") +PORT_V = $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v$(ARMV)m.mk +endif +include $(PORT_V) +# Other files (optional). +include $(CHIBIOS)/os/hal/lib/streams/streams.mk + +RULESPATH = $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC +ifeq ("$(wildcard $(RULESPATH)/rules.mk)","") +RULESPATH = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC +endif + +# Define linker script file here +ifneq ("$(wildcard $(KEYBOARD_PATH)/ld/$(MCU_LDSCRIPT).ld)","") +LDSCRIPT = $(KEYBOARD_PATH)/ld/$(MCU_LDSCRIPT).ld +else +LDSCRIPT = $(STARTUPLD)/$(MCU_LDSCRIPT).ld +endif + +CHIBISRC = $(STARTUPSRC) \ + $(KERNSRC) \ + $(PORTSRC) \ + $(OSALSRC) \ + $(HALSRC) \ + $(PLATFORMSRC) \ + $(BOARDSRC) \ + $(STREAMSSRC) \ + $(STARTUPASM) \ + $(PORTASM) \ + $(OSALASM) + +SRC += $(patsubst $(TOP_DIR)/%,%,$(CHIBISRC)) + +EXTRAINCDIRS += $(CHIBIOS)/os/license \ + $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ + $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \ + $(STREAMSINC) $(CHIBIOS)/os/various + +# +# Project, sources and paths +############################################################################## + + +############################################################################## +# Compiler settings +# +CC = arm-none-eabi-gcc +OBJCOPY = arm-none-eabi-objcopy +OBJDUMP = arm-none-eabi-objdump +SIZE = arm-none-eabi-size +AR = arm-none-eabi-ar +NM = arm-none-eabi-nm +HEX = $(OBJCOPY) -O $(FORMAT) +EEP = + +THUMBFLAGS = -DTHUMB_PRESENT -mno-thumb-interwork -DTHUMB_NO_INTERWORKING -mthumb -DTHUMB + +COMPILEFLAGS += -fomit-frame-pointer +COMPILEFLAGS += -falign-functions=16 +COMPILEFLAGS += -ffunction-sections +COMPILEFLAGS += -fdata-sections +COMPILEFLAGS += -fno-common +COMPILEFLAGS += $(THUMBFLAGS) + +CFLAGS += $(COMPILEFLAGS) + +ASFLAGS += $(THUMBFLAGS) + +CPPFLAGS += $(COMPILEFLAGS) +CPPFLAGS += -fno-rtti + +LDFLAGS +=-Wl,--gc-sections +LDFLAGS += -mno-thumb-interwork -mthumb +LDSYMBOLS =,--defsym=__process_stack_size__=$(USE_PROCESS_STACKSIZE) +LDSYMBOLS :=$(LDSYMBOLS),--defsym=__main_stack_size__=$(USE_EXCEPTIONS_STACKSIZE) +LDFLAGS += -Wl,--script=$(LDSCRIPT)$(LDSYMBOLS) + +OPT_DEFS += -DPROTOCOL_CHIBIOS + +MCUFLAGS = -mcpu=$(MCU) + +DEBUG = gdb + +# Define ASM defines here +# bootloader definitions may be used in the startup .s file +ifneq ("$(wildcard $(KEYBOARD_PATH)/bootloader_defs.h)","") + OPT_DEFS += -include $(KEYBOARD_PATH)/bootloader_defs.h +else ifneq ("$(wildcard $(KEYBOARD_PATH)/boards/$(BOARD)/bootloader_defs.h)","") + OPT_DEFS += -include $(KEYBOARD_PATH)/boards/$(BOARD)/bootloader_defs.h +endif + +# List any extra directories to look for libraries here. +EXTRALIBDIRS = $(RULESPATH)/ld \ No newline at end of file diff --git a/tmk_core/common.mk b/tmk_core/common.mk index f2a22e4f8..d71fba9bc 100644 --- a/tmk_core/common.mk +++ b/tmk_core/common.mk @@ -1,4 +1,10 @@ COMMON_DIR = common +ifeq ($(PLATFORM),AVR) + PLATFORM_COMMON_DIR = $(COMMON_DIR)/avr +else ifeq ($(PLATFORM),CHIBIOS) + PLATFORM_COMMON_DIR = $(COMMON_DIR)/chibios +endif + SRC += $(COMMON_DIR)/host.c \ $(COMMON_DIR)/keyboard.c \ $(COMMON_DIR)/action.c \ @@ -9,21 +15,29 @@ SRC += $(COMMON_DIR)/host.c \ $(COMMON_DIR)/print.c \ $(COMMON_DIR)/debug.c \ $(COMMON_DIR)/util.c \ - $(COMMON_DIR)/avr/suspend.c \ - $(COMMON_DIR)/avr/xprintf.S \ - $(COMMON_DIR)/avr/timer.c \ - $(COMMON_DIR)/avr/bootloader.c + $(COMMON_DIR)/eeconfig.c \ + $(PLATFORM_COMMON_DIR)/suspend.c \ + $(PLATFORM_COMMON_DIR)/timer.c \ + $(PLATFORM_COMMON_DIR)/bootloader.c \ + +ifeq ($(PLATFORM),AVR) + SRC += $(PLATFORM_COMMON_DIR)/xprintf.S +endif + +ifeq ($(PLATFORM),CHIBIOS) + SRC += $(PLATFORM_COMMON_DIR)/printf.c + SRC += $(PLATFORM_COMMON_DIR)/eeprom.c +endif + # Option modules ifeq ($(strip $(BOOTMAGIC_ENABLE)), yes) OPT_DEFS += -DBOOTMAGIC_ENABLE SRC += $(COMMON_DIR)/bootmagic.c - SRC += $(COMMON_DIR)/avr/eeconfig.c else OPT_DEFS += -DMAGIC_ENABLE SRC += $(COMMON_DIR)/magic.c - SRC += $(COMMON_DIR)/avr/eeconfig.c endif ifeq ($(strip $(MOUSEKEY_ENABLE)), yes) @@ -57,14 +71,13 @@ ifeq ($(strip $(USB_6KRO_ENABLE)), yes) endif ifeq ($(strip $(SLEEP_LED_ENABLE)), yes) - SRC += $(COMMON_DIR)/sleep_led.c + SRC += $(PLATFORM_COMMON_DIR)/sleep_led.c OPT_DEFS += -DSLEEP_LED_ENABLE OPT_DEFS += -DNO_SUSPEND_POWER_DOWN endif ifeq ($(strip $(BACKLIGHT_ENABLE)), yes) SRC += $(COMMON_DIR)/backlight.c - SRC += $(COMMON_DIR)/avr/eeconfig.c OPT_DEFS += -DBACKLIGHT_ENABLE endif @@ -87,6 +100,13 @@ endif # Version string OPT_DEFS += -DVERSION=$(shell (git describe --always --dirty || echo 'unknown') 2> /dev/null) +# Bootloader address +ifdef STM32_BOOTLOADER_ADDRESS + OPT_DEFS += -DSTM32_BOOTLOADER_ADDRESS=$(STM32_BOOTLOADER_ADDRESS) +endif # Search Path VPATH += $(TMK_PATH)/$(COMMON_DIR) +ifeq ($(PLATFORM),CHIBIOS) +VPATH += $(TMK_PATH)/$(COMMON_DIR)/chibios +endif \ No newline at end of file diff --git a/tmk_core/common/action_tapping.c b/tmk_core/common/action_tapping.c index ff78d7f2a..e16e11be7 100644 --- a/tmk_core/common/action_tapping.c +++ b/tmk_core/common/action_tapping.c @@ -257,7 +257,7 @@ bool process_tapping(keyrecord_t *keyp) return true; } } else { - if (!IS_NOEVENT(event)) debug("Tapping: other key just after tap.\n"); + if (!IS_NOEVENT(event)) debug("Tapping: other key just after tap.\n") {}; process_record(keyp); return true; } diff --git a/tmk_core/common/avr/eeconfig.c b/tmk_core/common/avr/eeconfig.c deleted file mode 100644 index 656938fb3..000000000 --- a/tmk_core/common/avr/eeconfig.c +++ /dev/null @@ -1,56 +0,0 @@ -#include -#include -#include -#include "eeconfig.h" - -void eeconfig_init(void) -{ - eeprom_update_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER); - eeprom_update_byte(EECONFIG_DEBUG, 0); - eeprom_update_byte(EECONFIG_DEFAULT_LAYER, 0); - eeprom_update_byte(EECONFIG_KEYMAP, 0); - eeprom_update_byte(EECONFIG_MOUSEKEY_ACCEL, 0); -#ifdef BACKLIGHT_ENABLE - eeprom_update_byte(EECONFIG_BACKLIGHT, 0); -#endif -#ifdef AUDIO_ENABLE - eeprom_update_byte(EECONFIG_AUDIO, 0xFF); // On by default -#endif -#ifdef RGBLIGHT_ENABLE - eeprom_update_dword(EECONFIG_RGBLIGHT, 0); -#endif -} - -void eeconfig_enable(void) -{ - eeprom_update_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER); -} - -void eeconfig_disable(void) -{ - eeprom_update_word(EECONFIG_MAGIC, 0xFFFF); -} - -bool eeconfig_is_enabled(void) -{ - return (eeprom_read_word(EECONFIG_MAGIC) == EECONFIG_MAGIC_NUMBER); -} - -uint8_t eeconfig_read_debug(void) { return eeprom_read_byte(EECONFIG_DEBUG); } -void eeconfig_update_debug(uint8_t val) { eeprom_update_byte(EECONFIG_DEBUG, val); } - -uint8_t eeconfig_read_default_layer(void) { return eeprom_read_byte(EECONFIG_DEFAULT_LAYER); } -void eeconfig_update_default_layer(uint8_t val) { eeprom_update_byte(EECONFIG_DEFAULT_LAYER, val); } - -uint8_t eeconfig_read_keymap(void) { return eeprom_read_byte(EECONFIG_KEYMAP); } -void eeconfig_update_keymap(uint8_t val) { eeprom_update_byte(EECONFIG_KEYMAP, val); } - -#ifdef BACKLIGHT_ENABLE -uint8_t eeconfig_read_backlight(void) { return eeprom_read_byte(EECONFIG_BACKLIGHT); } -void eeconfig_update_backlight(uint8_t val) { eeprom_update_byte(EECONFIG_BACKLIGHT, val); } -#endif - -#ifdef AUDIO_ENABLE -uint8_t eeconfig_read_audio(void) { return eeprom_read_byte(EECONFIG_AUDIO); } -void eeconfig_update_audio(uint8_t val) { eeprom_update_byte(EECONFIG_AUDIO, val); } -#endif diff --git a/tmk_core/common/avr/sleep_led.c b/tmk_core/common/avr/sleep_led.c new file mode 100644 index 000000000..dab3eb0f3 --- /dev/null +++ b/tmk_core/common/avr/sleep_led.c @@ -0,0 +1,95 @@ +#include +#include +#include +#include +#include "led.h" +#include "sleep_led.h" + +/* Software PWM + * ______ ______ __ + * | ON |___OFF___| ON |___OFF___| .... + * |<-------------->|<-------------->|<- .... + * PWM period PWM period + * + * 256 interrupts/period[resolution] + * 64 periods/second[frequency] + * 256*64 interrupts/second + * F_CPU/(256*64) clocks/interrupt + */ +#define SLEEP_LED_TIMER_TOP F_CPU/(256*64) + +void sleep_led_init(void) +{ + /* Timer1 setup */ + /* CTC mode */ + TCCR1B |= _BV(WGM12); + /* Clock selelct: clk/1 */ + TCCR1B |= _BV(CS10); + /* Set TOP value */ + uint8_t sreg = SREG; + cli(); + OCR1AH = (SLEEP_LED_TIMER_TOP>>8)&0xff; + OCR1AL = SLEEP_LED_TIMER_TOP&0xff; + SREG = sreg; +} + +void sleep_led_enable(void) +{ + /* Enable Compare Match Interrupt */ + TIMSK1 |= _BV(OCIE1A); +} + +void sleep_led_disable(void) +{ + /* Disable Compare Match Interrupt */ + TIMSK1 &= ~_BV(OCIE1A); +} + +void sleep_led_toggle(void) +{ + /* Disable Compare Match Interrupt */ + TIMSK1 ^= _BV(OCIE1A); +} + + +/* Breathing Sleep LED brighness(PWM On period) table + * (64[steps] * 4[duration]) / 64[PWM periods/s] = 4 second breath cycle + * + * http://www.wolframalpha.com/input/?i=%28sin%28+x%2F64*pi%29**8+*+255%2C+x%3D0+to+63 + * (0..63).each {|x| p ((sin(x/64.0*PI)**8)*255).to_i } + */ +static const uint8_t breathing_table[64] PROGMEM = { +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 4, 6, 10, +15, 23, 32, 44, 58, 74, 93, 113, 135, 157, 179, 199, 218, 233, 245, 252, +255, 252, 245, 233, 218, 199, 179, 157, 135, 113, 93, 74, 58, 44, 32, 23, +15, 10, 6, 4, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +ISR(TIMER1_COMPA_vect) +{ + /* Software PWM + * timer:1111 1111 1111 1111 + * \_____/\/ \_______/____ count(0-255) + * \ \______________ duration of step(4) + * \__________________ index of step table(0-63) + */ + static union { + uint16_t row; + struct { + uint8_t count:8; + uint8_t duration:2; + uint8_t index:6; + } pwm; + } timer = { .row = 0 }; + + timer.row++; + + // LED on + if (timer.pwm.count == 0) { + led_set(1< #include -#include +#include "wait.h" #include "matrix.h" #include "bootloader.h" #include "debug.h" @@ -10,6 +10,7 @@ #include "eeconfig.h" #include "bootmagic.h" +keymap_config_t keymap_config; void bootmagic(void) { @@ -19,9 +20,9 @@ void bootmagic(void) } /* do scans in case of bounce */ - print("boogmagic scan: ... "); + print("bootmagic scan: ... "); uint8_t scan = 100; - while (scan--) { matrix_scan(); _delay_ms(10); } + while (scan--) { matrix_scan(); wait_ms(10); } print("done.\n"); /* bootmagic skip */ diff --git a/tmk_core/common/chibios/bootloader.c b/tmk_core/common/chibios/bootloader.c new file mode 100644 index 000000000..8a533ab6f --- /dev/null +++ b/tmk_core/common/chibios/bootloader.c @@ -0,0 +1,47 @@ +#include "bootloader.h" + +#include "ch.h" +#include "hal.h" + +#ifdef STM32_BOOTLOADER_ADDRESS +/* STM32 */ + +#if defined(STM32F0XX) +/* This code should be checked whether it runs correctly on platforms */ +#define SYMVAL(sym) (uint32_t)(((uint8_t *)&(sym)) - ((uint8_t *)0)) +extern uint32_t __ram0_end__; + +void bootloader_jump(void) { + *((unsigned long *)(SYMVAL(__ram0_end__) - 4)) = 0xDEADBEEF; // set magic flag => reset handler will jump into boot loader + NVIC_SystemReset(); +} + +#else /* defined(STM32F0XX) */ +#error Check that the bootloader code works on your platform and add it to bootloader.c! +#endif /* defined(STM32F0XX) */ + +#elif defined(KL2x) || defined(K20x) /* STM32_BOOTLOADER_ADDRESS */ +/* Kinetis */ + +#if defined(KIIBOHD_BOOTLOADER) +/* Kiibohd Bootloader (MCHCK and Infinity KB) */ +#define SCB_AIRCR_VECTKEY_WRITEMAGIC 0x05FA0000 +const uint8_t sys_reset_to_loader_magic[] = "\xff\x00\x7fRESET TO LOADER\x7f\x00\xff"; +void bootloader_jump(void) { + __builtin_memcpy((void *)VBAT, (const void *)sys_reset_to_loader_magic, sizeof(sys_reset_to_loader_magic)); + // request reset + SCB->AIRCR = SCB_AIRCR_VECTKEY_WRITEMAGIC | SCB_AIRCR_SYSRESETREQ_Msk; +} + +#else /* defined(KIIBOHD_BOOTLOADER) */ +/* Default for Kinetis - expecting an ARM Teensy */ +void bootloader_jump(void) { + chThdSleepMilliseconds(100); + __BKPT(0); +} +#endif /* defined(KIIBOHD_BOOTLOADER) */ + +#else /* neither STM32 nor KINETIS */ +__attribute__((weak)) +void bootloader_jump(void) {} +#endif \ No newline at end of file diff --git a/tmk_core/common/chibios/eeprom.c b/tmk_core/common/chibios/eeprom.c new file mode 100644 index 000000000..5ff8ee86f --- /dev/null +++ b/tmk_core/common/chibios/eeprom.c @@ -0,0 +1,588 @@ +#include "ch.h" +#include "hal.h" + +#include "eeconfig.h" + +/*************************************/ +/* Hardware backend */ +/* */ +/* Code from PJRC/Teensyduino */ +/*************************************/ + +/* Teensyduino Core Library + * http://www.pjrc.com/teensy/ + * Copyright (c) 2013 PJRC.COM, LLC. + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * 1. The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * 2. If the Software is incorporated into a build system that allows + * selection among a list of target devices, then similar target + * devices manufactured by PJRC.COM must be included in the list of + * target devices and selectable in the same manner. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + + +#if defined(K20x) /* chip selection */ +/* Teensy 3.0, 3.1, 3.2; mchck; infinity keyboard */ + +// The EEPROM is really RAM with a hardware-based backup system to +// flash memory. Selecting a smaller size EEPROM allows more wear +// leveling, for higher write endurance. If you edit this file, +// set this to the smallest size your application can use. Also, +// due to Freescale's implementation, writing 16 or 32 bit words +// (aligned to 2 or 4 byte boundaries) has twice the endurance +// compared to writing 8 bit bytes. +// +#define EEPROM_SIZE 32 + +// Writing unaligned 16 or 32 bit data is handled automatically when +// this is defined, but at a cost of extra code size. Without this, +// any unaligned write will cause a hard fault exception! If you're +// absolutely sure all 16 and 32 bit writes will be aligned, you can +// remove the extra unnecessary code. +// +#define HANDLE_UNALIGNED_WRITES + +// Minimum EEPROM Endurance +// ------------------------ +#if (EEPROM_SIZE == 2048) // 35000 writes/byte or 70000 writes/word + #define EEESIZE 0x33 +#elif (EEPROM_SIZE == 1024) // 75000 writes/byte or 150000 writes/word + #define EEESIZE 0x34 +#elif (EEPROM_SIZE == 512) // 155000 writes/byte or 310000 writes/word + #define EEESIZE 0x35 +#elif (EEPROM_SIZE == 256) // 315000 writes/byte or 630000 writes/word + #define EEESIZE 0x36 +#elif (EEPROM_SIZE == 128) // 635000 writes/byte or 1270000 writes/word + #define EEESIZE 0x37 +#elif (EEPROM_SIZE == 64) // 1275000 writes/byte or 2550000 writes/word + #define EEESIZE 0x38 +#elif (EEPROM_SIZE == 32) // 2555000 writes/byte or 5110000 writes/word + #define EEESIZE 0x39 +#endif + +void eeprom_initialize(void) +{ + uint32_t count=0; + uint16_t do_flash_cmd[] = { + 0xf06f, 0x037f, 0x7003, 0x7803, + 0xf013, 0x0f80, 0xd0fb, 0x4770}; + uint8_t status; + + if (FTFL->FCNFG & FTFL_FCNFG_RAMRDY) { + // FlexRAM is configured as traditional RAM + // We need to reconfigure for EEPROM usage + FTFL->FCCOB0 = 0x80; // PGMPART = Program Partition Command + FTFL->FCCOB4 = EEESIZE; // EEPROM Size + FTFL->FCCOB5 = 0x03; // 0K for Dataflash, 32K for EEPROM backup + __disable_irq(); + // do_flash_cmd() must execute from RAM. Luckily the C syntax is simple... + (*((void (*)(volatile uint8_t *))((uint32_t)do_flash_cmd | 1)))(&(FTFL->FSTAT)); + __enable_irq(); + status = FTFL->FSTAT; + if (status & (FTFL_FSTAT_RDCOLERR|FTFL_FSTAT_ACCERR|FTFL_FSTAT_FPVIOL)) { + FTFL->FSTAT = (status & (FTFL_FSTAT_RDCOLERR|FTFL_FSTAT_ACCERR|FTFL_FSTAT_FPVIOL)); + return; // error + } + } + // wait for eeprom to become ready (is this really necessary?) + while (!(FTFL->FCNFG & FTFL_FCNFG_EEERDY)) { + if (++count > 20000) break; + } +} + +#define FlexRAM ((uint8_t *)0x14000000) + +uint8_t eeprom_read_byte(const uint8_t *addr) +{ + uint32_t offset = (uint32_t)addr; + if (offset >= EEPROM_SIZE) return 0; + if (!(FTFL->FCNFG & FTFL_FCNFG_EEERDY)) eeprom_initialize(); + return FlexRAM[offset]; +} + +uint16_t eeprom_read_word(const uint16_t *addr) +{ + uint32_t offset = (uint32_t)addr; + if (offset >= EEPROM_SIZE-1) return 0; + if (!(FTFL->FCNFG & FTFL_FCNFG_EEERDY)) eeprom_initialize(); + return *(uint16_t *)(&FlexRAM[offset]); +} + +uint32_t eeprom_read_dword(const uint32_t *addr) +{ + uint32_t offset = (uint32_t)addr; + if (offset >= EEPROM_SIZE-3) return 0; + if (!(FTFL->FCNFG & FTFL_FCNFG_EEERDY)) eeprom_initialize(); + return *(uint32_t *)(&FlexRAM[offset]); +} + +void eeprom_read_block(void *buf, const void *addr, uint32_t len) +{ + uint32_t offset = (uint32_t)addr; + uint8_t *dest = (uint8_t *)buf; + uint32_t end = offset + len; + + if (!(FTFL->FCNFG & FTFL_FCNFG_EEERDY)) eeprom_initialize(); + if (end > EEPROM_SIZE) end = EEPROM_SIZE; + while (offset < end) { + *dest++ = FlexRAM[offset++]; + } +} + +int eeprom_is_ready(void) +{ + return (FTFL->FCNFG & FTFL_FCNFG_EEERDY) ? 1 : 0; +} + +static void flexram_wait(void) +{ + while (!(FTFL->FCNFG & FTFL_FCNFG_EEERDY)) { + // TODO: timeout + } +} + +void eeprom_write_byte(uint8_t *addr, uint8_t value) +{ + uint32_t offset = (uint32_t)addr; + + if (offset >= EEPROM_SIZE) return; + if (!(FTFL->FCNFG & FTFL_FCNFG_EEERDY)) eeprom_initialize(); + if (FlexRAM[offset] != value) { + FlexRAM[offset] = value; + flexram_wait(); + } +} + +void eeprom_write_word(uint16_t *addr, uint16_t value) +{ + uint32_t offset = (uint32_t)addr; + + if (offset >= EEPROM_SIZE-1) return; + if (!(FTFL->FCNFG & FTFL_FCNFG_EEERDY)) eeprom_initialize(); +#ifdef HANDLE_UNALIGNED_WRITES + if ((offset & 1) == 0) { +#endif + if (*(uint16_t *)(&FlexRAM[offset]) != value) { + *(uint16_t *)(&FlexRAM[offset]) = value; + flexram_wait(); + } +#ifdef HANDLE_UNALIGNED_WRITES + } else { + if (FlexRAM[offset] != value) { + FlexRAM[offset] = value; + flexram_wait(); + } + if (FlexRAM[offset + 1] != (value >> 8)) { + FlexRAM[offset + 1] = value >> 8; + flexram_wait(); + } + } +#endif +} + +void eeprom_write_dword(uint32_t *addr, uint32_t value) +{ + uint32_t offset = (uint32_t)addr; + + if (offset >= EEPROM_SIZE-3) return; + if (!(FTFL->FCNFG & FTFL_FCNFG_EEERDY)) eeprom_initialize(); +#ifdef HANDLE_UNALIGNED_WRITES + switch (offset & 3) { + case 0: +#endif + if (*(uint32_t *)(&FlexRAM[offset]) != value) { + *(uint32_t *)(&FlexRAM[offset]) = value; + flexram_wait(); + } + return; +#ifdef HANDLE_UNALIGNED_WRITES + case 2: + if (*(uint16_t *)(&FlexRAM[offset]) != value) { + *(uint16_t *)(&FlexRAM[offset]) = value; + flexram_wait(); + } + if (*(uint16_t *)(&FlexRAM[offset + 2]) != (value >> 16)) { + *(uint16_t *)(&FlexRAM[offset + 2]) = value >> 16; + flexram_wait(); + } + return; + default: + if (FlexRAM[offset] != value) { + FlexRAM[offset] = value; + flexram_wait(); + } + if (*(uint16_t *)(&FlexRAM[offset + 1]) != (value >> 8)) { + *(uint16_t *)(&FlexRAM[offset + 1]) = value >> 8; + flexram_wait(); + } + if (FlexRAM[offset + 3] != (value >> 24)) { + FlexRAM[offset + 3] = value >> 24; + flexram_wait(); + } + } +#endif +} + +void eeprom_write_block(const void *buf, void *addr, uint32_t len) +{ + uint32_t offset = (uint32_t)addr; + const uint8_t *src = (const uint8_t *)buf; + + if (offset >= EEPROM_SIZE) return; + if (!(FTFL->FCNFG & FTFL_FCNFG_EEERDY)) eeprom_initialize(); + if (len >= EEPROM_SIZE) len = EEPROM_SIZE; + if (offset + len >= EEPROM_SIZE) len = EEPROM_SIZE - offset; + while (len > 0) { + uint32_t lsb = offset & 3; + if (lsb == 0 && len >= 4) { + // write aligned 32 bits + uint32_t val32; + val32 = *src++; + val32 |= (*src++ << 8); + val32 |= (*src++ << 16); + val32 |= (*src++ << 24); + if (*(uint32_t *)(&FlexRAM[offset]) != val32) { + *(uint32_t *)(&FlexRAM[offset]) = val32; + flexram_wait(); + } + offset += 4; + len -= 4; + } else if ((lsb == 0 || lsb == 2) && len >= 2) { + // write aligned 16 bits + uint16_t val16; + val16 = *src++; + val16 |= (*src++ << 8); + if (*(uint16_t *)(&FlexRAM[offset]) != val16) { + *(uint16_t *)(&FlexRAM[offset]) = val16; + flexram_wait(); + } + offset += 2; + len -= 2; + } else { + // write 8 bits + uint8_t val8 = *src++; + if (FlexRAM[offset] != val8) { + FlexRAM[offset] = val8; + flexram_wait(); + } + offset++; + len--; + } + } +} + +/* +void do_flash_cmd(volatile uint8_t *fstat) +{ + *fstat = 0x80; + while ((*fstat & 0x80) == 0) ; // wait +} +00000000 : + 0: f06f 037f mvn.w r3, #127 ; 0x7f + 4: 7003 strb r3, [r0, #0] + 6: 7803 ldrb r3, [r0, #0] + 8: f013 0f80 tst.w r3, #128 ; 0x80 + c: d0fb beq.n 6 + e: 4770 bx lr +*/ + +#elif defined(KL2x) /* chip selection */ +/* Teensy LC (emulated) */ + +#define SYMVAL(sym) (uint32_t)(((uint8_t *)&(sym)) - ((uint8_t *)0)) + +extern uint32_t __eeprom_workarea_start__; +extern uint32_t __eeprom_workarea_end__; + +#define EEPROM_SIZE 128 + +static uint32_t flashend = 0; + +void eeprom_initialize(void) +{ + const uint16_t *p = (uint16_t *)SYMVAL(__eeprom_workarea_start__); + + do { + if (*p++ == 0xFFFF) { + flashend = (uint32_t)(p - 2); + return; + } + } while (p < (uint16_t *)SYMVAL(__eeprom_workarea_end__)); + flashend = (uint32_t)((uint16_t *)SYMVAL(__eeprom_workarea_end__) - 1); +} + +uint8_t eeprom_read_byte(const uint8_t *addr) +{ + uint32_t offset = (uint32_t)addr; + const uint16_t *p = (uint16_t *)SYMVAL(__eeprom_workarea_start__); + const uint16_t *end = (const uint16_t *)((uint32_t)flashend); + uint16_t val; + uint8_t data=0xFF; + + if (!end) { + eeprom_initialize(); + end = (const uint16_t *)((uint32_t)flashend); + } + if (offset < EEPROM_SIZE) { + while (p <= end) { + val = *p++; + if ((val & 255) == offset) data = val >> 8; + } + } + return data; +} + +static void flash_write(const uint16_t *code, uint32_t addr, uint32_t data) +{ + // with great power comes great responsibility.... + uint32_t stat; + *(uint32_t *)&(FTFA->FCCOB3) = 0x06000000 | (addr & 0x00FFFFFC); + *(uint32_t *)&(FTFA->FCCOB7) = data; + __disable_irq(); + (*((void (*)(volatile uint8_t *))((uint32_t)code | 1)))(&(FTFA->FSTAT)); + __enable_irq(); + stat = FTFA->FSTAT & (FTFA_FSTAT_RDCOLERR|FTFA_FSTAT_ACCERR|FTFA_FSTAT_FPVIOL); + if (stat) { + FTFA->FSTAT = stat; + } + MCM->PLACR |= MCM_PLACR_CFCC; +} + +void eeprom_write_byte(uint8_t *addr, uint8_t data) +{ + uint32_t offset = (uint32_t)addr; + const uint16_t *p, *end = (const uint16_t *)((uint32_t)flashend); + uint32_t i, val, flashaddr; + uint16_t do_flash_cmd[] = { + 0x2380, 0x7003, 0x7803, 0xb25b, 0x2b00, 0xdafb, 0x4770}; + uint8_t buf[EEPROM_SIZE]; + + if (offset >= EEPROM_SIZE) return; + if (!end) { + eeprom_initialize(); + end = (const uint16_t *)((uint32_t)flashend); + } + if (++end < (uint16_t *)SYMVAL(__eeprom_workarea_end__)) { + val = (data << 8) | offset; + flashaddr = (uint32_t)end; + flashend = flashaddr; + if ((flashaddr & 2) == 0) { + val |= 0xFFFF0000; + } else { + val <<= 16; + val |= 0x0000FFFF; + } + flash_write(do_flash_cmd, flashaddr, val); + } else { + for (i=0; i < EEPROM_SIZE; i++) { + buf[i] = 0xFF; + } + val = 0; + for (p = (uint16_t *)SYMVAL(__eeprom_workarea_start__); p < (uint16_t *)SYMVAL(__eeprom_workarea_end__); p++) { + val = *p; + if ((val & 255) < EEPROM_SIZE) { + buf[val & 255] = val >> 8; + } + } + buf[offset] = data; + for (flashaddr=(uint32_t)(uint16_t *)SYMVAL(__eeprom_workarea_start__); flashaddr < (uint32_t)(uint16_t *)SYMVAL(__eeprom_workarea_end__); flashaddr += 1024) { + *(uint32_t *)&(FTFA->FCCOB3) = 0x09000000 | flashaddr; + __disable_irq(); + (*((void (*)(volatile uint8_t *))((uint32_t)do_flash_cmd | 1)))(&(FTFA->FSTAT)); + __enable_irq(); + val = FTFA->FSTAT & (FTFA_FSTAT_RDCOLERR|FTFA_FSTAT_ACCERR|FTFA_FSTAT_FPVIOL);; + if (val) FTFA->FSTAT = val; + MCM->PLACR |= MCM_PLACR_CFCC; + } + flashaddr=(uint32_t)(uint16_t *)SYMVAL(__eeprom_workarea_start__); + for (i=0; i < EEPROM_SIZE; i++) { + if (buf[i] == 0xFF) continue; + if ((flashaddr & 2) == 0) { + val = (buf[i] << 8) | i; + } else { + val = val | (buf[i] << 24) | (i << 16); + flash_write(do_flash_cmd, flashaddr, val); + } + flashaddr += 2; + } + flashend = flashaddr; + if ((flashaddr & 2)) { + val |= 0xFFFF0000; + flash_write(do_flash_cmd, flashaddr, val); + } + } +} + +/* +void do_flash_cmd(volatile uint8_t *fstat) +{ + *fstat = 0x80; + while ((*fstat & 0x80) == 0) ; // wait +} +00000000 : + 0: 2380 movs r3, #128 ; 0x80 + 2: 7003 strb r3, [r0, #0] + 4: 7803 ldrb r3, [r0, #0] + 6: b25b sxtb r3, r3 + 8: 2b00 cmp r3, #0 + a: dafb bge.n 4 + c: 4770 bx lr +*/ + + +uint16_t eeprom_read_word(const uint16_t *addr) +{ + const uint8_t *p = (const uint8_t *)addr; + return eeprom_read_byte(p) | (eeprom_read_byte(p+1) << 8); +} + +uint32_t eeprom_read_dword(const uint32_t *addr) +{ + const uint8_t *p = (const uint8_t *)addr; + return eeprom_read_byte(p) | (eeprom_read_byte(p+1) << 8) + | (eeprom_read_byte(p+2) << 16) | (eeprom_read_byte(p+3) << 24); +} + +void eeprom_read_block(void *buf, const void *addr, uint32_t len) +{ + const uint8_t *p = (const uint8_t *)addr; + uint8_t *dest = (uint8_t *)buf; + while (len--) { + *dest++ = eeprom_read_byte(p++); + } +} + +int eeprom_is_ready(void) +{ + return 1; +} + +void eeprom_write_word(uint16_t *addr, uint16_t value) +{ + uint8_t *p = (uint8_t *)addr; + eeprom_write_byte(p++, value); + eeprom_write_byte(p, value >> 8); +} + +void eeprom_write_dword(uint32_t *addr, uint32_t value) +{ + uint8_t *p = (uint8_t *)addr; + eeprom_write_byte(p++, value); + eeprom_write_byte(p++, value >> 8); + eeprom_write_byte(p++, value >> 16); + eeprom_write_byte(p, value >> 24); +} + +void eeprom_write_block(const void *buf, void *addr, uint32_t len) +{ + uint8_t *p = (uint8_t *)addr; + const uint8_t *src = (const uint8_t *)buf; + while (len--) { + eeprom_write_byte(p++, *src++); + } +} + +#else +// No EEPROM supported, so emulate it + +#define EEPROM_SIZE 32 +static uint8_t buffer[EEPROM_SIZE]; + +uint8_t eeprom_read_byte(const uint8_t *addr) { + uint32_t offset = (uint32_t)addr; + return buffer[offset]; +} + +void eeprom_write_byte(uint8_t *addr, uint8_t value) { + uint32_t offset = (uint32_t)addr; + buffer[offset] = value; +} + +uint16_t eeprom_read_word(const uint16_t *addr) { + const uint8_t *p = (const uint8_t *)addr; + return eeprom_read_byte(p) | (eeprom_read_byte(p+1) << 8); +} + +uint32_t eeprom_read_dword(const uint32_t *addr) { + const uint8_t *p = (const uint8_t *)addr; + return eeprom_read_byte(p) | (eeprom_read_byte(p+1) << 8) + | (eeprom_read_byte(p+2) << 16) | (eeprom_read_byte(p+3) << 24); +} + +void eeprom_read_block(void *buf, const void *addr, uint32_t len) { + const uint8_t *p = (const uint8_t *)addr; + uint8_t *dest = (uint8_t *)buf; + while (len--) { + *dest++ = eeprom_read_byte(p++); + } +} + +void eeprom_write_word(uint16_t *addr, uint16_t value) { + uint8_t *p = (uint8_t *)addr; + eeprom_write_byte(p++, value); + eeprom_write_byte(p, value >> 8); +} + +void eeprom_write_dword(uint32_t *addr, uint32_t value) { + uint8_t *p = (uint8_t *)addr; + eeprom_write_byte(p++, value); + eeprom_write_byte(p++, value >> 8); + eeprom_write_byte(p++, value >> 16); + eeprom_write_byte(p, value >> 24); +} + +void eeprom_write_block(const void *buf, void *addr, uint32_t len) { + uint8_t *p = (uint8_t *)addr; + const uint8_t *src = (const uint8_t *)buf; + while (len--) { + eeprom_write_byte(p++, *src++); + } +} + +#endif /* chip selection */ +// The update functions just calls write for now, but could probably be optimized + +void eeprom_update_byte(uint8_t *addr, uint8_t value) { + eeprom_write_byte(addr, value); +} + +void eeprom_update_word(uint16_t *addr, uint16_t value) { + uint8_t *p = (uint8_t *)addr; + eeprom_write_byte(p++, value); + eeprom_write_byte(p, value >> 8); +} + +void eeprom_update_dword(uint32_t *addr, uint32_t value) { + uint8_t *p = (uint8_t *)addr; + eeprom_write_byte(p++, value); + eeprom_write_byte(p++, value >> 8); + eeprom_write_byte(p++, value >> 16); + eeprom_write_byte(p, value >> 24); +} + +void eeprom_update_block(const void *buf, void *addr, uint32_t len) { + uint8_t *p = (uint8_t *)addr; + const uint8_t *src = (const uint8_t *)buf; + while (len--) { + eeprom_write_byte(p++, *src++); + } +} diff --git a/tmk_core/common/chibios/printf.c b/tmk_core/common/chibios/printf.c new file mode 100644 index 000000000..72e3d4f8c --- /dev/null +++ b/tmk_core/common/chibios/printf.c @@ -0,0 +1,240 @@ +/* + * found at: http://www.sparetimelabs.com/tinyprintf/tinyprintf.php + * and: http://www.sparetimelabs.com/printfrevisited/printfrevisited.php + */ + +/* +File: printf.c + +Copyright (C) 2004 Kustaa Nyholm + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +*/ + +#include "printf.h" + +typedef void (*putcf) (void*,char); +static putcf stdout_putf; +static void* stdout_putp; + +// this adds cca 400 bytes +#define PRINTF_LONG_SUPPORT + +#ifdef PRINTF_LONG_SUPPORT + +static void uli2a(unsigned long int num, unsigned int base, int uc,char * bf) + { + int n=0; + unsigned int d=1; + while (num/d >= base) + d*=base; + while (d!=0) { + int dgt = num / d; + num%=d; + d/=base; + if (n || dgt>0|| d==0) { + *bf++ = dgt+(dgt<10 ? '0' : (uc ? 'A' : 'a')-10); + ++n; + } + } + *bf=0; + } + +static void li2a (long num, char * bf) + { + if (num<0) { + num=-num; + *bf++ = '-'; + } + uli2a(num,10,0,bf); + } + +#endif + +static void ui2a(unsigned int num, unsigned int base, int uc,char * bf) + { + int n=0; + unsigned int d=1; + while (num/d >= base) + d*=base; + while (d!=0) { + int dgt = num / d; + num%= d; + d/=base; + if (n || dgt>0 || d==0) { + *bf++ = dgt+(dgt<10 ? '0' : (uc ? 'A' : 'a')-10); + ++n; + } + } + *bf=0; + } + +static void i2a (int num, char * bf) + { + if (num<0) { + num=-num; + *bf++ = '-'; + } + ui2a(num,10,0,bf); + } + +static int a2d(char ch) + { + if (ch>='0' && ch<='9') + return ch-'0'; + else if (ch>='a' && ch<='f') + return ch-'a'+10; + else if (ch>='A' && ch<='F') + return ch-'A'+10; + else return -1; + } + +static char a2i(char ch, char** src,int base,int* nump) + { + char* p= *src; + int num=0; + int digit; + while ((digit=a2d(ch))>=0) { + if (digit>base) break; + num=num*base+digit; + ch=*p++; + } + *src=p; + *nump=num; + return ch; + } + +static void putchw(void* putp,putcf putf,int n, char z, char* bf) + { + char fc=z? '0' : ' '; + char ch; + char* p=bf; + while (*p++ && n > 0) + n--; + while (n-- > 0) + putf(putp,fc); + while ((ch= *bf++)) + putf(putp,ch); + } + +void tfp_format(void* putp,putcf putf,char *fmt, va_list va) + { + char bf[12]; + + char ch; + + + while ((ch=*(fmt++))) { + if (ch!='%') + putf(putp,ch); + else { + char lz=0; +#ifdef PRINTF_LONG_SUPPORT + char lng=0; +#endif + int w=0; + ch=*(fmt++); + if (ch=='0') { + ch=*(fmt++); + lz=1; + } + if (ch>='0' && ch<='9') { + ch=a2i(ch,&fmt,10,&w); + } +#ifdef PRINTF_LONG_SUPPORT + if (ch=='l') { + ch=*(fmt++); + lng=1; + } +#endif + switch (ch) { + case 0: + goto abort; + case 'u' : { +#ifdef PRINTF_LONG_SUPPORT + if (lng) + uli2a(va_arg(va, unsigned long int),10,0,bf); + else +#endif + ui2a(va_arg(va, unsigned int),10,0,bf); + putchw(putp,putf,w,lz,bf); + break; + } + case 'd' : { +#ifdef PRINTF_LONG_SUPPORT + if (lng) + li2a(va_arg(va, unsigned long int),bf); + else +#endif + i2a(va_arg(va, int),bf); + putchw(putp,putf,w,lz,bf); + break; + } + case 'x': case 'X' : +#ifdef PRINTF_LONG_SUPPORT + if (lng) + uli2a(va_arg(va, unsigned long int),16,(ch=='X'),bf); + else +#endif + ui2a(va_arg(va, unsigned int),16,(ch=='X'),bf); + putchw(putp,putf,w,lz,bf); + break; + case 'c' : + putf(putp,(char)(va_arg(va, int))); + break; + case 's' : + putchw(putp,putf,w,0,va_arg(va, char*)); + break; + case '%' : + putf(putp,ch); + default: + break; + } + } + } + abort:; + } + + +void init_printf(void* putp,void (*putf) (void*,char)) + { + stdout_putf=putf; + stdout_putp=putp; + } + +void tfp_printf(char *fmt, ...) + { + va_list va; + va_start(va,fmt); + tfp_format(stdout_putp,stdout_putf,fmt,va); + va_end(va); + } + +static void putcp(void* p,char c) + { + *(*((char**)p))++ = c; + } + + + +void tfp_sprintf(char* s,char *fmt, ...) + { + va_list va; + va_start(va,fmt); + tfp_format(&s,putcp,fmt,va); + putcp(&s,0); + va_end(va); + } diff --git a/tmk_core/common/chibios/printf.h b/tmk_core/common/chibios/printf.h new file mode 100644 index 000000000..678a100c6 --- /dev/null +++ b/tmk_core/common/chibios/printf.h @@ -0,0 +1,111 @@ +/* + * found at: http://www.sparetimelabs.com/tinyprintf/tinyprintf.php + * and: http://www.sparetimelabs.com/printfrevisited/printfrevisited.php + */ + +/* +File: printf.h + +Copyright (C) 2004 Kustaa Nyholm + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +See the GNU Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +This library is realy just two files: 'printf.h' and 'printf.c'. + +They provide a simple and small (+200 loc) printf functionality to +be used in embedded systems. + +I've found them so usefull in debugging that I do not bother with a +debugger at all. + +They are distributed in source form, so to use them, just compile them +into your project. + +Two printf variants are provided: printf and sprintf. + +The formats supported by this implementation are: 'd' 'u' 'c' 's' 'x' 'X'. + +Zero padding and field width are also supported. + +If the library is compiled with 'PRINTF_SUPPORT_LONG' defined then the +long specifier is also +supported. Note that this will pull in some long math routines (pun intended!) +and thus make your executable noticably longer. + +The memory foot print of course depends on the target cpu, compiler and +compiler options, but a rough guestimate (based on a H8S target) is about +1.4 kB for code and some twenty 'int's and 'char's, say 60 bytes of stack space. +Not too bad. Your milage may vary. By hacking the source code you can +get rid of some hunred bytes, I'm sure, but personally I feel the balance of +functionality and flexibility versus code size is close to optimal for +many embedded systems. + +To use the printf you need to supply your own character output function, +something like : + + void putc ( void* p, char c) + { + while (!SERIAL_PORT_EMPTY) ; + SERIAL_PORT_TX_REGISTER = c; + } + +Before you can call printf you need to initialize it to use your +character output function with something like: + + init_printf(NULL,putc); + +Notice the 'NULL' in 'init_printf' and the parameter 'void* p' in 'putc', +the NULL (or any pointer) you pass into the 'init_printf' will eventually be +passed to your 'putc' routine. This allows you to pass some storage space (or +anything realy) to the character output function, if necessary. +This is not often needed but it was implemented like that because it made +implementing the sprintf function so neat (look at the source code). + +The code is re-entrant, except for the 'init_printf' function, so it +is safe to call it from interupts too, although this may result in mixed output. +If you rely on re-entrancy, take care that your 'putc' function is re-entrant! + +The printf and sprintf functions are actually macros that translate to +'tfp_printf' and 'tfp_sprintf'. This makes it possible +to use them along with 'stdio.h' printf's in a single source file. +You just need to undef the names before you include the 'stdio.h'. +Note that these are not function like macros, so if you have variables +or struct members with these names, things will explode in your face. +Without variadic macros this is the best we can do to wrap these +fucnction. If it is a problem just give up the macros and use the +functions directly or rename them. + +For further details see source code. + +regs Kusti, 23.10.2004 +*/ + + +#ifndef __TFP_PRINTF__ +#define __TFP_PRINTF__ + +#include + +void init_printf(void* putp,void (*putf) (void*,char)); + +void tfp_printf(char *fmt, ...); +void tfp_sprintf(char* s,char *fmt, ...); + +void tfp_format(void* putp,void (*putf) (void*,char),char *fmt, va_list va); + +#define printf tfp_printf +#define sprintf tfp_sprintf + +#endif diff --git a/tmk_core/common/chibios/sleep_led.c b/tmk_core/common/chibios/sleep_led.c new file mode 100644 index 000000000..4c35cfcba --- /dev/null +++ b/tmk_core/common/chibios/sleep_led.c @@ -0,0 +1,226 @@ +#include "ch.h" +#include "hal.h" + +#include "led.h" +#include "sleep_led.h" + +/* All right, we go the "software" way: timer, toggle LED in interrupt. + * Based on hasu's code for AVRs. + * Use LP timer on Kinetises, TIM14 on STM32F0. + */ + +#if defined(KL2x) || defined(K20x) + +/* Use Low Power Timer (LPTMR) */ +#define TIMER_INTERRUPT_VECTOR KINETIS_LPTMR0_IRQ_VECTOR +#define RESET_COUNTER LPTMR0->CSR |= LPTMRx_CSR_TCF + +#elif defined(STM32F0XX) + +/* Use TIM14 manually */ +#define TIMER_INTERRUPT_VECTOR STM32_TIM14_HANDLER +#define RESET_COUNTER STM32_TIM14->SR &= ~STM32_TIM_SR_UIF + +#endif + +#if defined(KL2x) || defined(K20x) || defined(STM32F0XX) /* common parts for timers/interrupts */ + +/* Breathing Sleep LED brighness(PWM On period) table + * (64[steps] * 4[duration]) / 64[PWM periods/s] = 4 second breath cycle + * + * http://www.wolframalpha.com/input/?i=%28sin%28+x%2F64*pi%29**8+*+255%2C+x%3D0+to+63 + * (0..63).each {|x| p ((sin(x/64.0*PI)**8)*255).to_i } + */ +static const uint8_t breathing_table[64] = { +0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 4, 6, 10, +15, 23, 32, 44, 58, 74, 93, 113, 135, 157, 179, 199, 218, 233, 245, 252, +255, 252, 245, 233, 218, 199, 179, 157, 135, 113, 93, 74, 58, 44, 32, 23, +15, 10, 6, 4, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +/* interrupt handler */ +OSAL_IRQ_HANDLER(TIMER_INTERRUPT_VECTOR) { + OSAL_IRQ_PROLOGUE(); + + /* Software PWM + * timer:1111 1111 1111 1111 + * \_____/\/ \_______/____ count(0-255) + * \ \______________ duration of step(4) + * \__________________ index of step table(0-63) + */ + + // this works for cca 65536 irqs/sec + static union { + uint16_t row; + struct { + uint8_t count:8; + uint8_t duration:2; + uint8_t index:6; + } pwm; + } timer = { .row = 0 }; + + timer.row++; + + // LED on + if (timer.pwm.count == 0) { + led_set(1<SCGC5 |= SIM_SCGC5_LPTMR; + /* Reset LPTMR settings */ + LPTMR0->CSR = 0; + /* Set the compare value */ + LPTMR0->CMR = 0; // trigger on counter value (i.e. every time) + + /* Set up clock source and prescaler */ + /* Software PWM + * ______ ______ __ + * | ON |___OFF___| ON |___OFF___| .... + * |<-------------->|<-------------->|<- .... + * PWM period PWM period + * + * R interrupts/period[resolution] + * F periods/second[frequency] + * R * F interrupts/second + */ + + /* === OPTION 1 === */ + #if 0 + // 1kHz LPO + // No prescaler => 1024 irqs/sec + // Note: this is too slow for a smooth breathe + LPTMR0->PSR = LPTMRx_PSR_PCS(LPTMR_CLOCK_LPO)|LPTMRx_PSR_PBYP; + #endif /* OPTION 1 */ + + /* === OPTION 2 === */ + #if 1 + // nMHz IRC (n=4 on KL25Z, KL26Z and K20x; n=2 or 8 on KL27Z) + MCG->C2 |= MCG_C2_IRCS; // fast (4MHz) internal ref clock + #if defined(KL27) // divide the 8MHz IRC by 2, to have the same MCGIRCLK speed as others + MCG->MC |= MCG_MC_LIRC_DIV2_DIV2; + #endif /* KL27 */ + MCG->C1 |= MCG_C1_IRCLKEN; // enable internal ref clock + // to work in stop mode, also MCG_C1_IREFSTEN + // Divide 4MHz by 2^N (N=6) => 62500 irqs/sec => + // => approx F=61, R=256, duration = 4 + LPTMR0->PSR = LPTMRx_PSR_PCS(LPTMR_CLOCK_MCGIRCLK)|LPTMRx_PSR_PRESCALE(6); + #endif /* OPTION 2 */ + + /* === OPTION 3 === */ + #if 0 + // OSC output (external crystal), usually 8MHz or 16MHz + OSC0->CR |= OSC_CR_ERCLKEN; // enable ext ref clock + // to work in stop mode, also OSC_CR_EREFSTEN + // Divide by 2^N + LPTMR0->PSR = LPTMRx_PSR_PCS(LPTMR_CLOCK_OSCERCLK)|LPTMRx_PSR_PRESCALE(7); + #endif /* OPTION 3 */ + /* === END OPTIONS === */ + + /* Interrupt on TCF set (compare flag) */ + nvicEnableVector(LPTMR0_IRQn, 2); // vector, priority + LPTMR0->CSR |= LPTMRx_CSR_TIE; +} + +void sleep_led_enable(void) { + /* Enable the timer */ + LPTMR0->CSR |= LPTMRx_CSR_TEN; +} + +void sleep_led_disable(void) { + /* Disable the timer */ + LPTMR0->CSR &= ~LPTMRx_CSR_TEN; +} + +void sleep_led_toggle(void) { + /* Toggle the timer */ + LPTMR0->CSR ^= LPTMRx_CSR_TEN; +} + +#elif defined(STM32F0XX) /* platform selection: STM32F0XX */ + +/* Initialise the timer */ +void sleep_led_init(void) { + /* enable clock */ + rccEnableTIM14(FALSE); /* low power enable = FALSE */ + rccResetTIM14(); + + /* prescale */ + /* Assuming 48MHz internal clock */ + /* getting cca 65484 irqs/sec */ + STM32_TIM14->PSC = 733; + + /* auto-reload */ + /* 0 => interrupt every time */ + STM32_TIM14->ARR = 3; + + /* enable counter update event interrupt */ + STM32_TIM14->DIER |= STM32_TIM_DIER_UIE; + + /* register interrupt vector */ + nvicEnableVector(STM32_TIM14_NUMBER, 2); /* vector, priority */ +} + +void sleep_led_enable(void) { + /* Enable the timer */ + STM32_TIM14->CR1 = STM32_TIM_CR1_CEN | STM32_TIM_CR1_URS; + /* URS => update event only on overflow; setting UG bit disabled */ +} + +void sleep_led_disable(void) { + /* Disable the timer */ + STM32_TIM14->CR1 = 0; +} + +void sleep_led_toggle(void) { + /* Toggle the timer */ + STM32_TIM14->CR1 ^= STM32_TIM_CR1_CEN; +} + + +#else /* platform selection: not on familiar chips */ + +void sleep_led_init(void) { +} + +void sleep_led_enable(void) { + led_set(1<. */ #include #include -#include +#include "wait.h" #include "keycode.h" #include "host.h" #include "keymap.h" @@ -103,12 +103,14 @@ bool command_proc(uint8_t code) bool command_extra(uint8_t code) __attribute__ ((weak)); bool command_extra(uint8_t code) { + (void)code; return false; } bool command_console_extra(uint8_t code) __attribute__ ((weak)); bool command_console_extra(uint8_t code) { + (void)code; return false; } @@ -217,8 +219,11 @@ static void print_version(void) " " STR(BOOTLOADER_SIZE) "\n"); print("GCC: " STR(__GNUC__) "." STR(__GNUC_MINOR__) "." STR(__GNUC_PATCHLEVEL__) +#if defined(__AVR__) " AVR-LIBC: " __AVR_LIBC_VERSION_STRING__ - " AVR_ARCH: avr" STR(__AVR_ARCH__) "\n"); + " AVR_ARCH: avr" STR(__AVR_ARCH__) +#endif + "\n"); return; } @@ -234,7 +239,7 @@ static void print_status(void) #ifdef NKRO_ENABLE print_val_hex8(keyboard_nkro); #endif - print_val_hex32(timer_count); + print_val_hex32(timer_read32()); #ifdef PROTOCOL_PJRC print_val_hex8(UDCON); @@ -360,7 +365,7 @@ static bool command_common(uint8_t code) stop_all_notes(); shutdown_user(); #else - _delay_ms(1000); + wait_ms(1000); #endif bootloader_jump(); // not return break; @@ -430,10 +435,11 @@ static bool command_common(uint8_t code) case MAGIC_KC(MAGIC_KEY_NKRO): clear_keyboard(); // clear to prevent stuck keys keyboard_nkro = !keyboard_nkro; - if (keyboard_nkro) + if (keyboard_nkro) { print("NKRO: on\n"); - else + } else { print("NKRO: off\n"); + } break; #endif @@ -750,10 +756,11 @@ static bool mousekey_console(uint8_t code) print("?"); return false; } - if (mousekey_param) + if (mousekey_param) { xprintf("M%d> ", mousekey_param); - else + } else { print("M>" ); + } return true; } #endif diff --git a/tmk_core/common/eeconfig.c b/tmk_core/common/eeconfig.c new file mode 100644 index 000000000..140d2b85b --- /dev/null +++ b/tmk_core/common/eeconfig.c @@ -0,0 +1,56 @@ +#include +#include +#include "eeprom.h" +#include "eeconfig.h" + +void eeconfig_init(void) +{ + eeprom_update_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER); + eeprom_update_byte(EECONFIG_DEBUG, 0); + eeprom_update_byte(EECONFIG_DEFAULT_LAYER, 0); + eeprom_update_byte(EECONFIG_KEYMAP, 0); + eeprom_update_byte(EECONFIG_MOUSEKEY_ACCEL, 0); +#ifdef BACKLIGHT_ENABLE + eeprom_update_byte(EECONFIG_BACKLIGHT, 0); +#endif +#ifdef AUDIO_ENABLE + eeprom_update_byte(EECONFIG_AUDIO, 0xFF); // On by default +#endif +#ifdef RGBLIGHT_ENABLE + eeprom_update_dword(EECONFIG_RGBLIGHT, 0); +#endif +} + +void eeconfig_enable(void) +{ + eeprom_update_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER); +} + +void eeconfig_disable(void) +{ + eeprom_update_word(EECONFIG_MAGIC, 0xFFFF); +} + +bool eeconfig_is_enabled(void) +{ + return (eeprom_read_word(EECONFIG_MAGIC) == EECONFIG_MAGIC_NUMBER); +} + +uint8_t eeconfig_read_debug(void) { return eeprom_read_byte(EECONFIG_DEBUG); } +void eeconfig_update_debug(uint8_t val) { eeprom_update_byte(EECONFIG_DEBUG, val); } + +uint8_t eeconfig_read_default_layer(void) { return eeprom_read_byte(EECONFIG_DEFAULT_LAYER); } +void eeconfig_update_default_layer(uint8_t val) { eeprom_update_byte(EECONFIG_DEFAULT_LAYER, val); } + +uint8_t eeconfig_read_keymap(void) { return eeprom_read_byte(EECONFIG_KEYMAP); } +void eeconfig_update_keymap(uint8_t val) { eeprom_update_byte(EECONFIG_KEYMAP, val); } + +#ifdef BACKLIGHT_ENABLE +uint8_t eeconfig_read_backlight(void) { return eeprom_read_byte(EECONFIG_BACKLIGHT); } +void eeconfig_update_backlight(uint8_t val) { eeprom_update_byte(EECONFIG_BACKLIGHT, val); } +#endif + +#ifdef AUDIO_ENABLE +uint8_t eeconfig_read_audio(void) { return eeprom_read_byte(EECONFIG_AUDIO); } +void eeconfig_update_audio(uint8_t val) { eeprom_update_byte(EECONFIG_AUDIO, val); } +#endif diff --git a/tmk_core/common/eeprom.h b/tmk_core/common/eeprom.h new file mode 100644 index 000000000..2cc2ccee3 --- /dev/null +++ b/tmk_core/common/eeprom.h @@ -0,0 +1,22 @@ +#ifndef TMK_CORE_COMMON_EEPROM_H_ +#define TMK_CORE_COMMON_EEPROM_H_ + +#if defined(__AVR__) +#include +#else +uint8_t eeprom_read_byte (const uint8_t *__p); +uint16_t eeprom_read_word (const uint16_t *__p); +uint32_t eeprom_read_dword (const uint32_t *__p); +void eeprom_read_block (void *__dst, const void *__src, uint32_t __n); +void eeprom_write_byte (uint8_t *__p, uint8_t __value); +void eeprom_write_word (uint16_t *__p, uint16_t __value); +void eeprom_write_dword (uint32_t *__p, uint32_t __value); +void eeprom_write_block (const void *__src, void *__dst, uint32_t __n); +void eeprom_update_byte (uint8_t *__p, uint8_t __value); +void eeprom_update_word (uint16_t *__p, uint16_t __value); +void eeprom_update_dword (uint32_t *__p, uint32_t __value); +void eeprom_update_block (const void *__src, void *__dst, uint32_t __n); +#endif + + +#endif /* TMK_CORE_COMMON_EEPROM_H_ */ diff --git a/tmk_core/common/magic.c b/tmk_core/common/magic.c index f21d1346c..194e4cc02 100644 --- a/tmk_core/common/magic.c +++ b/tmk_core/common/magic.c @@ -1,6 +1,8 @@ #include #include +#if defined(__AVR__) #include +#endif #include "matrix.h" #include "bootloader.h" #include "debug.h" @@ -33,4 +35,4 @@ void magic(void) default_layer = eeconfig_read_default_layer(); default_layer_set((uint32_t)default_layer); -} \ No newline at end of file +} diff --git a/tmk_core/common/print.c b/tmk_core/common/print.c index ca94e1e5d..00489557f 100644 --- a/tmk_core/common/print.c +++ b/tmk_core/common/print.c @@ -38,11 +38,15 @@ void print_set_sendchar(int8_t (*sendchar_func)(uint8_t)) xdev_out(sendchar_func); } -#elif defined(__arm__) +#elif defined(PROTOCOL_CHIBIOS) /* __AVR__ */ + +// don't need anything extra + +#elif defined(__arm__) /* __AVR__ */ // TODO //void print_set_sendchar(int8_t (*sendchar_func)(uint8_t)) { } -#endif +#endif /* __AVR__ */ #endif diff --git a/tmk_core/common/print.h b/tmk_core/common/print.h index 4f3dde65a..0368bcd4a 100644 --- a/tmk_core/common/print.h +++ b/tmk_core/common/print.h @@ -47,7 +47,15 @@ extern "C" /* function pointer of sendchar to be used by print utility */ void print_set_sendchar(int8_t (*print_sendchar_func)(uint8_t)); -#elif defined(__arm__) +#elif defined(PROTOCOL_CHIBIOS) /* __AVR__ */ + +#include "chibios/printf.h" + +#define print(s) printf(s) +#define println(s) printf(s "\r\n") +#define xprintf printf + +#elif defined(__arm__) /* __AVR__ */ #include "mbed/xprintf.h" diff --git a/tmk_core/common/progmem.h b/tmk_core/common/progmem.h index 199b1bedf..5b2765625 100644 --- a/tmk_core/common/progmem.h +++ b/tmk_core/common/progmem.h @@ -5,8 +5,8 @@ # include #elif defined(__arm__) # define PROGMEM -# define pgm_read_byte(p) *(p) -# define pgm_read_word(p) *(p) +# define pgm_read_byte(p) *((unsigned char*)p) +# define pgm_read_word(p) *((uint16_t*)p) #endif #endif diff --git a/tmk_core/common/report.h b/tmk_core/common/report.h index f6c0a315d..0c799eca3 100644 --- a/tmk_core/common/report.h +++ b/tmk_core/common/report.h @@ -84,6 +84,11 @@ along with this program. If not, see . # define KEYBOARD_REPORT_SIZE NKRO_EPSIZE # define KEYBOARD_REPORT_KEYS (NKRO_EPSIZE - 2) # define KEYBOARD_REPORT_BITS (NKRO_EPSIZE - 1) +#elif defined(PROTOCOL_CHIBIOS) && defined(NKRO_ENABLE) +# include "protocol/chibios/usb_main.h" +# define KEYBOARD_REPORT_SIZE NKRO_EPSIZE +# define KEYBOARD_REPORT_KEYS (NKRO_EPSIZE - 2) +# define KEYBOARD_REPORT_BITS (NKRO_EPSIZE - 1) #else # define KEYBOARD_REPORT_SIZE 8 diff --git a/tmk_core/common/sleep_led.c b/tmk_core/common/sleep_led.c deleted file mode 100644 index dab3eb0f3..000000000 --- a/tmk_core/common/sleep_led.c +++ /dev/null @@ -1,95 +0,0 @@ -#include -#include -#include -#include -#include "led.h" -#include "sleep_led.h" - -/* Software PWM - * ______ ______ __ - * | ON |___OFF___| ON |___OFF___| .... - * |<-------------->|<-------------->|<- .... - * PWM period PWM period - * - * 256 interrupts/period[resolution] - * 64 periods/second[frequency] - * 256*64 interrupts/second - * F_CPU/(256*64) clocks/interrupt - */ -#define SLEEP_LED_TIMER_TOP F_CPU/(256*64) - -void sleep_led_init(void) -{ - /* Timer1 setup */ - /* CTC mode */ - TCCR1B |= _BV(WGM12); - /* Clock selelct: clk/1 */ - TCCR1B |= _BV(CS10); - /* Set TOP value */ - uint8_t sreg = SREG; - cli(); - OCR1AH = (SLEEP_LED_TIMER_TOP>>8)&0xff; - OCR1AL = SLEEP_LED_TIMER_TOP&0xff; - SREG = sreg; -} - -void sleep_led_enable(void) -{ - /* Enable Compare Match Interrupt */ - TIMSK1 |= _BV(OCIE1A); -} - -void sleep_led_disable(void) -{ - /* Disable Compare Match Interrupt */ - TIMSK1 &= ~_BV(OCIE1A); -} - -void sleep_led_toggle(void) -{ - /* Disable Compare Match Interrupt */ - TIMSK1 ^= _BV(OCIE1A); -} - - -/* Breathing Sleep LED brighness(PWM On period) table - * (64[steps] * 4[duration]) / 64[PWM periods/s] = 4 second breath cycle - * - * http://www.wolframalpha.com/input/?i=%28sin%28+x%2F64*pi%29**8+*+255%2C+x%3D0+to+63 - * (0..63).each {|x| p ((sin(x/64.0*PI)**8)*255).to_i } - */ -static const uint8_t breathing_table[64] PROGMEM = { -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 4, 6, 10, -15, 23, 32, 44, 58, 74, 93, 113, 135, 157, 179, 199, 218, 233, 245, 252, -255, 252, 245, 233, 218, 199, 179, 157, 135, 113, 93, 74, 58, 44, 32, 23, -15, 10, 6, 4, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; - -ISR(TIMER1_COMPA_vect) -{ - /* Software PWM - * timer:1111 1111 1111 1111 - * \_____/\/ \_______/____ count(0-255) - * \ \______________ duration of step(4) - * \__________________ index of step table(0-63) - */ - static union { - uint16_t row; - struct { - uint8_t count:8; - uint8_t duration:2; - uint8_t index:6; - } pwm; - } timer = { .row = 0 }; - - timer.row++; - - // LED on - if (timer.pwm.count == 0) { - led_set(1< # define wait_ms(ms) _delay_ms(ms) # define wait_us(us) _delay_us(us) -#elif defined(__arm__) +#elif defined(PROTOCOL_CHIBIOS) /* __AVR__ */ +# include "ch.h" +# define wait_ms(ms) chThdSleepMilliseconds(ms) +# define wait_us(us) chThdSleepMicroseconds(us) +#elif defined(__arm__) /* __AVR__ */ # include "wait_api.h" -#endif +#endif /* __AVR__ */ #ifdef __cplusplus } diff --git a/tmk_core/protocol/chibios.mk b/tmk_core/protocol/chibios.mk new file mode 100644 index 000000000..3f4e0a71f --- /dev/null +++ b/tmk_core/protocol/chibios.mk @@ -0,0 +1,10 @@ +PROTOCOL_DIR = protocol +CHIBIOS_DIR = $(PROTOCOL_DIR)/chibios + + +SRC += $(CHIBIOS_DIR)/usb_main.c +SRC += $(CHIBIOS_DIR)/main.c + +VPATH += $(TMK_PATH)/$(PROTOCOL_DIR) +VPATH += $(TMK_PATH)/$(CHIBIOS_DIR) + diff --git a/tmk_core/protocol/chibios/README.md b/tmk_core/protocol/chibios/README.md new file mode 100644 index 000000000..63e6641f8 --- /dev/null +++ b/tmk_core/protocol/chibios/README.md @@ -0,0 +1,55 @@ +## TMK running on top of ChibiOS + +This code can be used to run TMK keyboard logic on top of [ChibiOS], meaning that you can run TMK on whatever [ChibiOS] supports. The notable examples are ARM-based Teensies (3.x and LC) and on the boards with STM32 MCUs. + +### Usage + +- To use, [get a zip of chibios](https://github.com/ChibiOS/ChibiOS/archive/a7df9a891067621e8e1a5c2a2c0ceada82403afe.zip) and unpack/rename it to `tmk_core/tool/chibios/chibios`; or you can just clone [the repo](https://github.com/ChibiOS/ChibiOS) there. For Freescale/NXP Kinetis support (meaning ARM Teensies and the Infinity keyboard), you'll also need [a zip of chibios-contrib](https://github.com/ChibiOS/ChibiOS-Contrib/archive/e1311c4db6cd366cf760673f769e925741ac0ad3.zip), unpacked/renamed to `tmk_core/tool/chibios/chibios-contrib`. Likewise, for git-savvy people, just clone [the repo](https://github.com/ChibiOS/ChibiOS-Contrib) there. +- Note: the abovementioned directories are the defaults. You can have the two chibios repositories wherever you want, just define their location in `CHIBIOS` and `CHIBIOS_CONTRIB` variables in your `Makefile`. +- You will also need to install an ARM toolchain, for instance from [here](https://launchpad.net/gcc-arm-embedded). On linux, this is usually also present as a package for your distribution (as `gcc-arm` or something similar). On OS X, you can use [homebrew](http://brew.sh/) with an appropriate tap. + +### Notes + +- Some comments about ChibiOS syntax and the most commonly used GPIO functions are, as well as an example for ARM Teensies, is [here](https://github.com/tmk/tmk_keyboard/blob/master/keyboard/teensy_lc_onekey/instructions.md). +- For gcc options, inspect `tmk_core/tool/chibios/chibios.mk`. For instance, I enabled `-Wno-missing-field-initializers`, because TMK common bits generated a lot of warnings on that. +- For debugging, it is sometimes useful disable gcc optimisations, you can do that by adding `-O0` to `OPT_DEFS` in your `Makefile`. +- USB string descriptors are messy. I did not find a way to cleanly generate the right structures from actual strings, so the definitions in individual keyboards' `config.h` are ugly as heck. +- It is easy to add some code for testing (e.g. blink LED, do stuff on button press, etc...) - just create another thread in `main.c`, it will run independently of the keyboard business. +- Jumping to (the built-in) bootloaders on STM32 works, but it is not entirely pleasant, since it is very much MCU dependent. So, one needs to dig out the right address to jump to, and either pass it to the compiler in the `Makefile`, or better, define it in `/bootloader_defs.h`. An additional startup code is also needed; the best way to deal with this is to define custom board files. (Example forthcoming.) In any case, there are no problems for Teensies. + + +### Immediate todo + +- power saving for suspend + +### Not tested, but possibly working + +- backlight + +### Missing / not working (TMK vs ChibiOS bits) + +- eeprom / bootmagic for STM32 (will be chip dependent; eeprom needs to be emulated in flash, which means less writes; wear-levelling?) There is a semi-official ST "driver" for eeprom, with wear-levelling, but I think it consumes a lot of RAM (like 2 pages, i.e. 1kB or so). + +### Tried with + +- Infinity, WhiteFox keyboards +- all ARM-based Teensies +- some STM32-based boards (e.g. ST-F072RB-DISCOVERY board, STM32F042 breakout board, Maple Mini (STM32F103-based)) + +## ChibiOS-supported MCUs + +- Pretty much all STM32 chips. +- K20x and KL2x Freescale/NXP chips (i.e. Teensy 3.x/LC, mchck, FRDM-KL2{5,6}Z, FRDM-K20D50M), via the [ChibiOS-Contrib](https://github.com/ChibiOS/ChibiOS-Contrib) repository. +- There is also support for AVR8, but the USB stack is not implemented for them yet (some news on that front recently though), and also the kernel itself takes about 1k of RAM. I think people managed to get ChibiOS running on atmega32[8p/u4] though. +- There is also support for Nordic NRF51822 (the chip in Adafruit's Bluefruit bluetooth-low-energy boards), but be aware that that chip does *not* have USB, and the BLE softdevice (i.e. Bluetooth) is not supported directly at the moment. + +## STM32-based keyboard design considerations + +- STM32F0x2 chips can do crystal-less USB, but they still need a 3.3V voltage regulator. +- The BOOT0 pin should be tied to GND. +- For a hardware way of accessing the in-built DFU bootloader, in addition to the reset button, put another button between the BOOT0 pin and 3V3. +- There is a working example of a STM32F042-based keyboard: [firmware here](https://github.com/flabbergast/flabber_kbs/tree/master/kb45p) and [hardware (kicad) here](https://github.com/flabbergast/kicad/tree/master/kb45p). You can check this example firmware for custom board files, and a more complicated matrix than just one key. + + + +[ChibiOS]: http://chibios.org diff --git a/tmk_core/protocol/chibios/main.c b/tmk_core/protocol/chibios/main.c new file mode 100644 index 000000000..54bb6a8f5 --- /dev/null +++ b/tmk_core/protocol/chibios/main.c @@ -0,0 +1,147 @@ +/* + * (c) 2015 flabberast + * + * Based on the following work: + * - Guillaume Duc's raw hid example (MIT License) + * https://github.com/guiduc/usb-hid-chibios-example + * - PJRC Teensy examples (MIT License) + * https://www.pjrc.com/teensy/usb_keyboard.html + * - hasu's TMK keyboard code (GPL v2 and some code Modified BSD) + * https://github.com/tmk/tmk_keyboard/ + * - ChibiOS demo code (Apache 2.0 License) + * http://www.chibios.org + * + * Since some GPL'd code is used, this work is licensed under + * GPL v2 or later. + */ + +#include "ch.h" +#include "hal.h" + +#include "usb_main.h" + +/* TMK includes */ +#include "report.h" +#include "host.h" +#include "host_driver.h" +#include "keyboard.h" +#include "action.h" +#include "action_util.h" +#include "mousekey.h" +#include "led.h" +#include "sendchar.h" +#include "debug.h" +#include "printf.h" +#ifdef SLEEP_LED_ENABLE +#include "sleep_led.h" +#endif +#include "suspend.h" + + +/* ------------------------- + * TMK host driver defs + * ------------------------- + */ + +/* declarations */ +uint8_t keyboard_leds(void); +void send_keyboard(report_keyboard_t *report); +void send_mouse(report_mouse_t *report); +void send_system(uint16_t data); +void send_consumer(uint16_t data); + +/* host struct */ +host_driver_t chibios_driver = { + keyboard_leds, + send_keyboard, + send_mouse, + send_system, + send_consumer +}; + + +/* TESTING + * Amber LED blinker thread, times are in milliseconds. + */ +/* set this variable to non-zero anywhere to blink once */ +// uint8_t blinkLed = 0; +// static THD_WORKING_AREA(waBlinkerThread, 128); +// static THD_FUNCTION(blinkerThread, arg) { +// (void)arg; +// chRegSetThreadName("blinkOrange"); +// while(true) { +// if(blinkLed) { +// blinkLed = 0; +// palSetPad(TEENSY_PIN13_IOPORT, TEENSY_PIN13); +// chThdSleepMilliseconds(100); +// palClearPad(TEENSY_PIN13_IOPORT, TEENSY_PIN13); +// } +// chThdSleepMilliseconds(100); +// } +// } + + + +/* Main thread + */ +int main(void) { + /* ChibiOS/RT init */ + halInit(); + chSysInit(); + + // TESTING + // chThdCreateStatic(waBlinkerThread, sizeof(waBlinkerThread), NORMALPRIO, blinkerThread, NULL); + + /* Init USB */ + init_usb_driver(&USB_DRIVER); + + /* init printf */ + init_printf(NULL,sendchar_pf); + + /* Wait until the USB is active */ + while(USB_DRIVER.state != USB_ACTIVE) + chThdSleepMilliseconds(50); + + /* Do need to wait here! + * Otherwise the next print might start a transfer on console EP + * before the USB is completely ready, which sometimes causes + * HardFaults. + */ + chThdSleepMilliseconds(50); + + print("USB configured.\n"); + + /* init TMK modules */ + keyboard_init(); + host_set_driver(&chibios_driver); + +#ifdef SLEEP_LED_ENABLE + sleep_led_init(); +#endif + + print("Keyboard start.\n"); + + /* Main loop */ + while(true) { + + if(USB_DRIVER.state == USB_SUSPENDED) { + print("[s]"); + while(USB_DRIVER.state == USB_SUSPENDED) { + /* Do this in the suspended state */ + suspend_power_down(); // on AVR this deep sleeps for 15ms + /* Remote wakeup */ + if((USB_DRIVER.status & 2) && suspend_wakeup_condition()) { + send_remote_wakeup(&USB_DRIVER); + } + } + /* Woken up */ + // variables has been already cleared by the wakeup hook + send_keyboard_report(); +#ifdef MOUSEKEY_ENABLE + mousekey_send(); +#endif /* MOUSEKEY_ENABLE */ + } + + keyboard_task(); + } +} diff --git a/tmk_core/protocol/chibios/usb_main.c b/tmk_core/protocol/chibios/usb_main.c new file mode 100644 index 000000000..e2c9d9bf1 --- /dev/null +++ b/tmk_core/protocol/chibios/usb_main.c @@ -0,0 +1,1372 @@ +/* + * (c) 2015 flabberast + * + * Based on the following work: + * - Guillaume Duc's raw hid example (MIT License) + * https://github.com/guiduc/usb-hid-chibios-example + * - PJRC Teensy examples (MIT License) + * https://www.pjrc.com/teensy/usb_keyboard.html + * - hasu's TMK keyboard code (GPL v2 and some code Modified BSD) + * https://github.com/tmk/tmk_keyboard/ + * - ChibiOS demo code (Apache 2.0 License) + * http://www.chibios.org + * + * Since some GPL'd code is used, this work is licensed under + * GPL v2 or later. + */ + +#include "ch.h" +#include "hal.h" + +#include "usb_main.h" + +#include "host.h" +#include "debug.h" +#include "suspend.h" +#ifdef SLEEP_LED_ENABLE +#include "sleep_led.h" +#include "led.h" +#endif + +/* --------------------------------------------------------- + * Global interface variables and declarations + * --------------------------------------------------------- + */ + +uint8_t keyboard_idle __attribute__((aligned(2))) = 0; +uint8_t keyboard_protocol __attribute__((aligned(2))) = 1; +uint16_t keyboard_led_stats __attribute__((aligned(2))) = 0; +volatile uint16_t keyboard_idle_count = 0; +static virtual_timer_t keyboard_idle_timer; +static void keyboard_idle_timer_cb(void *arg); +#ifdef NKRO_ENABLE +extern bool keyboard_nkro; +#endif /* NKRO_ENABLE */ + +report_keyboard_t keyboard_report_sent = {{0}}; +#ifdef MOUSE_ENABLE +report_mouse_t mouse_report_blank = {0}; +#endif /* MOUSE_ENABLE */ +#ifdef EXTRAKEY_ENABLE +uint8_t extra_report_blank[3] = {0}; +#endif /* EXTRAKEY_ENABLE */ + +#ifdef CONSOLE_ENABLE +/* The emission buffers queue */ +output_buffers_queue_t console_buf_queue; +static uint8_t console_queue_buffer[BQ_BUFFER_SIZE(CONSOLE_QUEUE_CAPACITY, CONSOLE_EPSIZE)]; + +static virtual_timer_t console_flush_timer; +void console_queue_onotify(io_buffers_queue_t *bqp); +static void console_flush_cb(void *arg); +#endif /* CONSOLE_ENABLE */ + +/* --------------------------------------------------------- + * Descriptors and USB driver objects + * --------------------------------------------------------- + */ + +/* HID specific constants */ +#define USB_DESCRIPTOR_HID 0x21 +#define USB_DESCRIPTOR_HID_REPORT 0x22 +#define HID_GET_REPORT 0x01 +#define HID_GET_IDLE 0x02 +#define HID_GET_PROTOCOL 0x03 +#define HID_SET_REPORT 0x09 +#define HID_SET_IDLE 0x0A +#define HID_SET_PROTOCOL 0x0B + +/* USB Device Descriptor */ +static const uint8_t usb_device_descriptor_data[] = { + USB_DESC_DEVICE(0x0200, // bcdUSB (1.1) + 0, // bDeviceClass (defined in later in interface) + 0, // bDeviceSubClass + 0, // bDeviceProtocol + 64, // bMaxPacketSize (64 bytes) (the driver didn't work with 32) + VENDOR_ID, // idVendor + PRODUCT_ID, // idProduct + DEVICE_VER, // bcdDevice + 1, // iManufacturer + 2, // iProduct + 3, // iSerialNumber + 1) // bNumConfigurations +}; + +/* Device Descriptor wrapper */ +static const USBDescriptor usb_device_descriptor = { + sizeof usb_device_descriptor_data, + usb_device_descriptor_data +}; + +/* + * HID Report Descriptor + * + * See "Device Class Definition for Human Interface Devices (HID)" + * (http://www.usb.org/developers/hidpage/HID1_11.pdf) for the + * detailed descrition of all the fields + */ + +/* Keyboard Protocol 1, HID 1.11 spec, Appendix B, page 59-60 */ +static const uint8_t keyboard_hid_report_desc_data[] = { + 0x05, 0x01, // Usage Page (Generic Desktop), + 0x09, 0x06, // Usage (Keyboard), + 0xA1, 0x01, // Collection (Application), + 0x75, 0x01, // Report Size (1), + 0x95, 0x08, // Report Count (8), + 0x05, 0x07, // Usage Page (Key Codes), + 0x19, 0xE0, // Usage Minimum (224), + 0x29, 0xE7, // Usage Maximum (231), + 0x15, 0x00, // Logical Minimum (0), + 0x25, 0x01, // Logical Maximum (1), + 0x81, 0x02, // Input (Data, Variable, Absolute), ;Modifier byte + 0x95, 0x01, // Report Count (1), + 0x75, 0x08, // Report Size (8), + 0x81, 0x03, // Input (Constant), ;Reserved byte + 0x95, 0x05, // Report Count (5), + 0x75, 0x01, // Report Size (1), + 0x05, 0x08, // Usage Page (LEDs), + 0x19, 0x01, // Usage Minimum (1), + 0x29, 0x05, // Usage Maximum (5), + 0x91, 0x02, // Output (Data, Variable, Absolute), ;LED report + 0x95, 0x01, // Report Count (1), + 0x75, 0x03, // Report Size (3), + 0x91, 0x03, // Output (Constant), ;LED report padding + 0x95, KBD_REPORT_KEYS, // Report Count (), + 0x75, 0x08, // Report Size (8), + 0x15, 0x00, // Logical Minimum (0), + 0x25, 0xFF, // Logical Maximum(255), + 0x05, 0x07, // Usage Page (Key Codes), + 0x19, 0x00, // Usage Minimum (0), + 0x29, 0xFF, // Usage Maximum (255), + 0x81, 0x00, // Input (Data, Array), + 0xc0 // End Collection +}; +/* wrapper */ +static const USBDescriptor keyboard_hid_report_descriptor = { + sizeof keyboard_hid_report_desc_data, + keyboard_hid_report_desc_data +}; + +#ifdef NKRO_ENABLE +static const uint8_t nkro_hid_report_desc_data[] = { + 0x05, 0x01, // Usage Page (Generic Desktop), + 0x09, 0x06, // Usage (Keyboard), + 0xA1, 0x01, // Collection (Application), + // bitmap of modifiers + 0x75, 0x01, // Report Size (1), + 0x95, 0x08, // Report Count (8), + 0x05, 0x07, // Usage Page (Key Codes), + 0x19, 0xE0, // Usage Minimum (224), + 0x29, 0xE7, // Usage Maximum (231), + 0x15, 0x00, // Logical Minimum (0), + 0x25, 0x01, // Logical Maximum (1), + 0x81, 0x02, // Input (Data, Variable, Absolute), ;Modifier byte + // LED output report + 0x95, 0x05, // Report Count (5), + 0x75, 0x01, // Report Size (1), + 0x05, 0x08, // Usage Page (LEDs), + 0x19, 0x01, // Usage Minimum (1), + 0x29, 0x05, // Usage Maximum (5), + 0x91, 0x02, // Output (Data, Variable, Absolute), + 0x95, 0x01, // Report Count (1), + 0x75, 0x03, // Report Size (3), + 0x91, 0x03, // Output (Constant), + // bitmap of keys + 0x95, NKRO_REPORT_KEYS * 8, // Report Count (), + 0x75, 0x01, // Report Size (1), + 0x15, 0x00, // Logical Minimum (0), + 0x25, 0x01, // Logical Maximum(1), + 0x05, 0x07, // Usage Page (Key Codes), + 0x19, 0x00, // Usage Minimum (0), + 0x29, NKRO_REPORT_KEYS * 8 - 1, // Usage Maximum (), + 0x81, 0x02, // Input (Data, Variable, Absolute), + 0xc0 // End Collection +}; +/* wrapper */ +static const USBDescriptor nkro_hid_report_descriptor = { + sizeof nkro_hid_report_desc_data, + nkro_hid_report_desc_data +}; +#endif /* NKRO_ENABLE */ + +#ifdef MOUSE_ENABLE +/* Mouse Protocol 1, HID 1.11 spec, Appendix B, page 59-60, with wheel extension + * http://www.microchip.com/forums/tm.aspx?high=&m=391435&mpage=1#391521 + * http://www.keil.com/forum/15671/ + * http://www.microsoft.com/whdc/device/input/wheel.mspx */ +static const uint8_t mouse_hid_report_desc_data[] = { + /* mouse */ + 0x05, 0x01, // USAGE_PAGE (Generic Desktop) + 0x09, 0x02, // USAGE (Mouse) + 0xa1, 0x01, // COLLECTION (Application) + //0x85, REPORT_ID_MOUSE, // REPORT_ID (1) + 0x09, 0x01, // USAGE (Pointer) + 0xa1, 0x00, // COLLECTION (Physical) + // ---------------------------- Buttons + 0x05, 0x09, // USAGE_PAGE (Button) + 0x19, 0x01, // USAGE_MINIMUM (Button 1) + 0x29, 0x05, // USAGE_MAXIMUM (Button 5) + 0x15, 0x00, // LOGICAL_MINIMUM (0) + 0x25, 0x01, // LOGICAL_MAXIMUM (1) + 0x75, 0x01, // REPORT_SIZE (1) + 0x95, 0x05, // REPORT_COUNT (5) + 0x81, 0x02, // INPUT (Data,Var,Abs) + 0x75, 0x03, // REPORT_SIZE (3) + 0x95, 0x01, // REPORT_COUNT (1) + 0x81, 0x03, // INPUT (Cnst,Var,Abs) + // ---------------------------- X,Y position + 0x05, 0x01, // USAGE_PAGE (Generic Desktop) + 0x09, 0x30, // USAGE (X) + 0x09, 0x31, // USAGE (Y) + 0x15, 0x81, // LOGICAL_MINIMUM (-127) + 0x25, 0x7f, // LOGICAL_MAXIMUM (127) + 0x75, 0x08, // REPORT_SIZE (8) + 0x95, 0x02, // REPORT_COUNT (2) + 0x81, 0x06, // INPUT (Data,Var,Rel) + // ---------------------------- Vertical wheel + 0x09, 0x38, // USAGE (Wheel) + 0x15, 0x81, // LOGICAL_MINIMUM (-127) + 0x25, 0x7f, // LOGICAL_MAXIMUM (127) + 0x35, 0x00, // PHYSICAL_MINIMUM (0) - reset physical + 0x45, 0x00, // PHYSICAL_MAXIMUM (0) + 0x75, 0x08, // REPORT_SIZE (8) + 0x95, 0x01, // REPORT_COUNT (1) + 0x81, 0x06, // INPUT (Data,Var,Rel) + // ---------------------------- Horizontal wheel + 0x05, 0x0c, // USAGE_PAGE (Consumer Devices) + 0x0a, 0x38, 0x02, // USAGE (AC Pan) + 0x15, 0x81, // LOGICAL_MINIMUM (-127) + 0x25, 0x7f, // LOGICAL_MAXIMUM (127) + 0x75, 0x08, // REPORT_SIZE (8) + 0x95, 0x01, // REPORT_COUNT (1) + 0x81, 0x06, // INPUT (Data,Var,Rel) + 0xc0, // END_COLLECTION + 0xc0, // END_COLLECTION +}; +/* wrapper */ +static const USBDescriptor mouse_hid_report_descriptor = { + sizeof mouse_hid_report_desc_data, + mouse_hid_report_desc_data +}; +#endif /* MOUSE_ENABLE */ + +#ifdef CONSOLE_ENABLE +static const uint8_t console_hid_report_desc_data[] = { + 0x06, 0x31, 0xFF, // Usage Page 0xFF31 (vendor defined) + 0x09, 0x74, // Usage 0x74 + 0xA1, 0x53, // Collection 0x53 + 0x75, 0x08, // report size = 8 bits + 0x15, 0x00, // logical minimum = 0 + 0x26, 0xFF, 0x00, // logical maximum = 255 + 0x95, CONSOLE_EPSIZE, // report count + 0x09, 0x75, // usage + 0x81, 0x02, // Input (array) + 0xC0 // end collection +}; +/* wrapper */ +static const USBDescriptor console_hid_report_descriptor = { + sizeof console_hid_report_desc_data, + console_hid_report_desc_data +}; +#endif /* CONSOLE_ENABLE */ + +#ifdef EXTRAKEY_ENABLE +/* audio controls & system controls + * http://www.microsoft.com/whdc/archive/w2kbd.mspx */ +static const uint8_t extra_hid_report_desc_data[] = { + /* system control */ + 0x05, 0x01, // USAGE_PAGE (Generic Desktop) + 0x09, 0x80, // USAGE (System Control) + 0xa1, 0x01, // COLLECTION (Application) + 0x85, REPORT_ID_SYSTEM, // REPORT_ID (2) + 0x15, 0x01, // LOGICAL_MINIMUM (0x1) + 0x25, 0xb7, // LOGICAL_MAXIMUM (0xb7) + 0x19, 0x01, // USAGE_MINIMUM (0x1) + 0x29, 0xb7, // USAGE_MAXIMUM (0xb7) + 0x75, 0x10, // REPORT_SIZE (16) + 0x95, 0x01, // REPORT_COUNT (1) + 0x81, 0x00, // INPUT (Data,Array,Abs) + 0xc0, // END_COLLECTION + /* consumer */ + 0x05, 0x0c, // USAGE_PAGE (Consumer Devices) + 0x09, 0x01, // USAGE (Consumer Control) + 0xa1, 0x01, // COLLECTION (Application) + 0x85, REPORT_ID_CONSUMER, // REPORT_ID (3) + 0x15, 0x01, // LOGICAL_MINIMUM (0x1) + 0x26, 0x9c, 0x02, // LOGICAL_MAXIMUM (0x29c) + 0x19, 0x01, // USAGE_MINIMUM (0x1) + 0x2a, 0x9c, 0x02, // USAGE_MAXIMUM (0x29c) + 0x75, 0x10, // REPORT_SIZE (16) + 0x95, 0x01, // REPORT_COUNT (1) + 0x81, 0x00, // INPUT (Data,Array,Abs) + 0xc0, // END_COLLECTION +}; +/* wrapper */ +static const USBDescriptor extra_hid_report_descriptor = { + sizeof extra_hid_report_desc_data, + extra_hid_report_desc_data +}; +#endif /* EXTRAKEY_ENABLE */ + + +/* + * Configuration Descriptor tree for a HID device + * + * The HID Specifications version 1.11 require the following order: + * - Configuration Descriptor + * - Interface Descriptor + * - HID Descriptor + * - Endpoints Descriptors + */ +#define KBD_HID_DESC_NUM 0 +#define KBD_HID_DESC_OFFSET (9 + (9 + 9 + 7) * KBD_HID_DESC_NUM + 9) + +#ifdef MOUSE_ENABLE +# define MOUSE_HID_DESC_NUM (KBD_HID_DESC_NUM + 1) +# define MOUSE_HID_DESC_OFFSET (9 + (9 + 9 + 7) * MOUSE_HID_DESC_NUM + 9) +#else /* MOUSE_ENABLE */ +# define MOUSE_HID_DESC_NUM (KBD_HID_DESC_NUM + 0) +#endif /* MOUSE_ENABLE */ + +#ifdef CONSOLE_ENABLE +#define CONSOLE_HID_DESC_NUM (MOUSE_HID_DESC_NUM + 1) +#define CONSOLE_HID_DESC_OFFSET (9 + (9 + 9 + 7) * CONSOLE_HID_DESC_NUM + 9) +#else /* CONSOLE_ENABLE */ +# define CONSOLE_HID_DESC_NUM (MOUSE_HID_DESC_NUM + 0) +#endif /* CONSOLE_ENABLE */ + +#ifdef EXTRAKEY_ENABLE +# define EXTRA_HID_DESC_NUM (CONSOLE_HID_DESC_NUM + 1) +# define EXTRA_HID_DESC_OFFSET (9 + (9 + 9 + 7) * EXTRA_HID_DESC_NUM + 9) +#else /* EXTRAKEY_ENABLE */ +# define EXTRA_HID_DESC_NUM (CONSOLE_HID_DESC_NUM + 0) +#endif /* EXTRAKEY_ENABLE */ + +#ifdef NKRO_ENABLE +# define NKRO_HID_DESC_NUM (EXTRA_HID_DESC_NUM + 1) +# define NKRO_HID_DESC_OFFSET (9 + (9 + 9 + 7) * EXTRA_HID_DESC_NUM + 9) +#else /* NKRO_ENABLE */ +# define NKRO_HID_DESC_NUM (EXTRA_HID_DESC_NUM + 0) +#endif /* NKRO_ENABLE */ + +#define NUM_INTERFACES (NKRO_HID_DESC_NUM + 1) +#define CONFIG1_DESC_SIZE (9 + (9 + 9 + 7) * NUM_INTERFACES) + +static const uint8_t hid_configuration_descriptor_data[] = { + /* Configuration Descriptor (9 bytes) USB spec 9.6.3, page 264-266, Table 9-10 */ + USB_DESC_CONFIGURATION(CONFIG1_DESC_SIZE, // wTotalLength + NUM_INTERFACES, // bNumInterfaces + 1, // bConfigurationValue + 0, // iConfiguration + 0xA0, // bmAttributes (RESERVED|REMOTEWAKEUP) + 50), // bMaxPower (50mA) + + /* Interface Descriptor (9 bytes) USB spec 9.6.5, page 267-269, Table 9-12 */ + USB_DESC_INTERFACE(KBD_INTERFACE, // bInterfaceNumber + 0, // bAlternateSetting + 1, // bNumEndpoints + 0x03, // bInterfaceClass: HID + 0x01, // bInterfaceSubClass: Boot + 0x01, // bInterfaceProtocol: Keyboard + 0), // iInterface + + /* HID descriptor (9 bytes) HID 1.11 spec, section 6.2.1 */ + USB_DESC_BYTE(9), // bLength + USB_DESC_BYTE(0x21), // bDescriptorType (HID class) + USB_DESC_BCD(0x0111), // bcdHID: HID version 1.11 + USB_DESC_BYTE(0), // bCountryCode + USB_DESC_BYTE(1), // bNumDescriptors + USB_DESC_BYTE(0x22), // bDescriptorType (report desc) + USB_DESC_WORD(sizeof(keyboard_hid_report_desc_data)), // wDescriptorLength + + /* Endpoint Descriptor (7 bytes) USB spec 9.6.6, page 269-271, Table 9-13 */ + USB_DESC_ENDPOINT(KBD_ENDPOINT | 0x80, // bEndpointAddress + 0x03, // bmAttributes (Interrupt) + KBD_EPSIZE,// wMaxPacketSize + 10), // bInterval + + #ifdef MOUSE_ENABLE + /* Interface Descriptor (9 bytes) USB spec 9.6.5, page 267-269, Table 9-12 */ + USB_DESC_INTERFACE(MOUSE_INTERFACE, // bInterfaceNumber + 0, // bAlternateSetting + 1, // bNumEndpoints + 0x03, // bInterfaceClass (0x03 = HID) + // ThinkPad T23 BIOS doesn't work with boot mouse. + 0x00, // bInterfaceSubClass (0x01 = Boot) + 0x00, // bInterfaceProtocol (0x02 = Mouse) + /* + 0x01, // bInterfaceSubClass (0x01 = Boot) + 0x02, // bInterfaceProtocol (0x02 = Mouse) + */ + 0), // iInterface + + /* HID descriptor (9 bytes) HID 1.11 spec, section 6.2.1 */ + USB_DESC_BYTE(9), // bLength + USB_DESC_BYTE(0x21), // bDescriptorType (HID class) + USB_DESC_BCD(0x0111), // bcdHID: HID version 1.11 + USB_DESC_BYTE(0), // bCountryCode + USB_DESC_BYTE(1), // bNumDescriptors + USB_DESC_BYTE(0x22), // bDescriptorType (report desc) + USB_DESC_WORD(sizeof(mouse_hid_report_desc_data)), // wDescriptorLength + + /* Endpoint Descriptor (7 bytes) USB spec 9.6.6, page 269-271, Table 9-13 */ + USB_DESC_ENDPOINT(MOUSE_ENDPOINT | 0x80, // bEndpointAddress + 0x03, // bmAttributes (Interrupt) + MOUSE_EPSIZE, // wMaxPacketSize + 1), // bInterval + #endif /* MOUSE_ENABLE */ + + #ifdef CONSOLE_ENABLE + /* Interface Descriptor (9 bytes) USB spec 9.6.5, page 267-269, Table 9-12 */ + USB_DESC_INTERFACE(CONSOLE_INTERFACE, // bInterfaceNumber + 0, // bAlternateSetting + 1, // bNumEndpoints + 0x03, // bInterfaceClass: HID + 0x00, // bInterfaceSubClass: None + 0x00, // bInterfaceProtocol: None + 0), // iInterface + + /* HID descriptor (9 bytes) HID 1.11 spec, section 6.2.1 */ + USB_DESC_BYTE(9), // bLength + USB_DESC_BYTE(0x21), // bDescriptorType (HID class) + USB_DESC_BCD(0x0111), // bcdHID: HID version 1.11 + USB_DESC_BYTE(0), // bCountryCode + USB_DESC_BYTE(1), // bNumDescriptors + USB_DESC_BYTE(0x22), // bDescriptorType (report desc) + USB_DESC_WORD(sizeof(console_hid_report_desc_data)), // wDescriptorLength + + /* Endpoint Descriptor (7 bytes) USB spec 9.6.6, page 269-271, Table 9-13 */ + USB_DESC_ENDPOINT(CONSOLE_ENDPOINT | 0x80, // bEndpointAddress + 0x03, // bmAttributes (Interrupt) + CONSOLE_EPSIZE, // wMaxPacketSize + 1), // bInterval + #endif /* CONSOLE_ENABLE */ + + #ifdef EXTRAKEY_ENABLE + /* Interface Descriptor (9 bytes) USB spec 9.6.5, page 267-269, Table 9-12 */ + USB_DESC_INTERFACE(EXTRA_INTERFACE, // bInterfaceNumber + 0, // bAlternateSetting + 1, // bNumEndpoints + 0x03, // bInterfaceClass: HID + 0x00, // bInterfaceSubClass: None + 0x00, // bInterfaceProtocol: None + 0), // iInterface + + /* HID descriptor (9 bytes) HID 1.11 spec, section 6.2.1 */ + USB_DESC_BYTE(9), // bLength + USB_DESC_BYTE(0x21), // bDescriptorType (HID class) + USB_DESC_BCD(0x0111), // bcdHID: HID version 1.11 + USB_DESC_BYTE(0), // bCountryCode + USB_DESC_BYTE(1), // bNumDescriptors + USB_DESC_BYTE(0x22), // bDescriptorType (report desc) + USB_DESC_WORD(sizeof(extra_hid_report_desc_data)), // wDescriptorLength + + /* Endpoint Descriptor (7 bytes) USB spec 9.6.6, page 269-271, Table 9-13 */ + USB_DESC_ENDPOINT(EXTRA_ENDPOINT | 0x80, // bEndpointAddress + 0x03, // bmAttributes (Interrupt) + EXTRA_EPSIZE, // wMaxPacketSize + 10), // bInterval + #endif /* EXTRAKEY_ENABLE */ + + #ifdef NKRO_ENABLE + /* Interface Descriptor (9 bytes) USB spec 9.6.5, page 267-269, Table 9-12 */ + USB_DESC_INTERFACE(NKRO_INTERFACE, // bInterfaceNumber + 0, // bAlternateSetting + 1, // bNumEndpoints + 0x03, // bInterfaceClass: HID + 0x00, // bInterfaceSubClass: None + 0x00, // bInterfaceProtocol: None + 0), // iInterface + + /* HID descriptor (9 bytes) HID 1.11 spec, section 6.2.1 */ + USB_DESC_BYTE(9), // bLength + USB_DESC_BYTE(0x21), // bDescriptorType (HID class) + USB_DESC_BCD(0x0111), // bcdHID: HID version 1.11 + USB_DESC_BYTE(0), // bCountryCode + USB_DESC_BYTE(1), // bNumDescriptors + USB_DESC_BYTE(0x22), // bDescriptorType (report desc) + USB_DESC_WORD(sizeof(nkro_hid_report_desc_data)), // wDescriptorLength + + /* Endpoint Descriptor (7 bytes) USB spec 9.6.6, page 269-271, Table 9-13 */ + USB_DESC_ENDPOINT(NKRO_ENDPOINT | 0x80, // bEndpointAddress + 0x03, // bmAttributes (Interrupt) + NKRO_EPSIZE, // wMaxPacketSize + 1), // bInterval + #endif /* NKRO_ENABLE */ +}; + +/* Configuration Descriptor wrapper */ +static const USBDescriptor hid_configuration_descriptor = { + sizeof hid_configuration_descriptor_data, + hid_configuration_descriptor_data +}; + +/* wrappers */ +#define HID_DESCRIPTOR_SIZE 9 +static const USBDescriptor keyboard_hid_descriptor = { + HID_DESCRIPTOR_SIZE, + &hid_configuration_descriptor_data[KBD_HID_DESC_OFFSET] +}; +#ifdef MOUSE_ENABLE +static const USBDescriptor mouse_hid_descriptor = { + HID_DESCRIPTOR_SIZE, + &hid_configuration_descriptor_data[MOUSE_HID_DESC_OFFSET] +}; +#endif /* MOUSE_ENABLE */ +#ifdef CONSOLE_ENABLE +static const USBDescriptor console_hid_descriptor = { + HID_DESCRIPTOR_SIZE, + &hid_configuration_descriptor_data[CONSOLE_HID_DESC_OFFSET] +}; +#endif /* CONSOLE_ENABLE */ +#ifdef EXTRAKEY_ENABLE +static const USBDescriptor extra_hid_descriptor = { + HID_DESCRIPTOR_SIZE, + &hid_configuration_descriptor_data[EXTRA_HID_DESC_OFFSET] +}; +#endif /* EXTRAKEY_ENABLE */ +#ifdef NKRO_ENABLE +static const USBDescriptor nkro_hid_descriptor = { + HID_DESCRIPTOR_SIZE, + &hid_configuration_descriptor_data[NKRO_HID_DESC_OFFSET] +}; +#endif /* NKRO_ENABLE */ + + +/* U.S. English language identifier */ +static const uint8_t usb_string_langid[] = { + USB_DESC_BYTE(4), // bLength + USB_DESC_BYTE(USB_DESCRIPTOR_STRING), // bDescriptorType + USB_DESC_WORD(0x0409) // wLANGID (U.S. English) +}; + +/* ugly ugly hack */ +#define PP_NARG(...) \ + PP_NARG_(__VA_ARGS__,PP_RSEQ_N()) +#define PP_NARG_(...) \ + PP_ARG_N(__VA_ARGS__) +#define PP_ARG_N( \ + _1, _2, _3, _4, _5, _6, _7, _8, _9,_10, \ + _11,_12,_13,_14,_15,_16,_17,_18,_19,_20, \ + _21,_22,_23,_24,_25,_26,_27,_28,_29,_30, \ + _31,_32,_33,_34,_35,_36,_37,_38,_39,_40, \ + _41,_42,_43,_44,_45,_46,_47,_48,_49,_50, \ + _51,_52,_53,_54,_55,_56,_57,_58,_59,_60, \ + _61,_62,_63,N,...) N +#define PP_RSEQ_N() \ + 63,62,61,60, \ + 59,58,57,56,55,54,53,52,51,50, \ + 49,48,47,46,45,44,43,42,41,40, \ + 39,38,37,36,35,34,33,32,31,30, \ + 29,28,27,26,25,24,23,22,21,20, \ + 19,18,17,16,15,14,13,12,11,10, \ + 9,8,7,6,5,4,3,2,1,0 + +/* Vendor string = manufacturer */ +static const uint8_t usb_string_vendor[] = { + USB_DESC_BYTE(PP_NARG(USBSTR_MANUFACTURER)+2), // bLength + USB_DESC_BYTE(USB_DESCRIPTOR_STRING), // bDescriptorType + USBSTR_MANUFACTURER +}; + +/* Device Description string = product */ +static const uint8_t usb_string_description[] = { + USB_DESC_BYTE(PP_NARG(USBSTR_PRODUCT)+2), // bLength + USB_DESC_BYTE(USB_DESCRIPTOR_STRING), // bDescriptorType + USBSTR_PRODUCT +}; + +/* Serial Number string (will be filled by the function init_usb_serial_string) */ +static uint8_t usb_string_serial[] = { + USB_DESC_BYTE(22), // bLength + USB_DESC_BYTE(USB_DESCRIPTOR_STRING), // bDescriptorType + '0', 0, 'x', 0, 'D', 0, 'E', 0, 'A', 0, 'D', 0, 'B', 0, 'E', 0, 'E', 0, 'F', 0 +}; + +/* Strings wrappers array */ +static const USBDescriptor usb_strings[] = { + { sizeof usb_string_langid, usb_string_langid } + , + { sizeof usb_string_vendor, usb_string_vendor } + , + { sizeof usb_string_description, usb_string_description } + , + { sizeof usb_string_serial, usb_string_serial } +}; + +/* + * Handles the GET_DESCRIPTOR callback + * + * Returns the proper descriptor + */ +static const USBDescriptor *usb_get_descriptor_cb(USBDriver *usbp, uint8_t dtype, uint8_t dindex, uint16_t lang) { + (void)usbp; + (void)lang; + switch(dtype) { + /* Generic descriptors */ + case USB_DESCRIPTOR_DEVICE: /* Device Descriptor */ + return &usb_device_descriptor; + + case USB_DESCRIPTOR_CONFIGURATION: /* Configuration Descriptor */ + return &hid_configuration_descriptor; + + case USB_DESCRIPTOR_STRING: /* Strings */ + if(dindex < 4) + return &usb_strings[dindex]; + break; + + /* HID specific descriptors */ + case USB_DESCRIPTOR_HID: /* HID Descriptors */ + switch(lang) { /* yea, poor label, it's actually wIndex from the setup packet */ + case KBD_INTERFACE: + return &keyboard_hid_descriptor; + +#ifdef MOUSE_ENABLE + case MOUSE_INTERFACE: + return &mouse_hid_descriptor; +#endif /* MOUSE_ENABLE */ +#ifdef CONSOLE_ENABLE + case CONSOLE_INTERFACE: + return &console_hid_descriptor; +#endif /* CONSOLE_ENABLE */ +#ifdef EXTRAKEY_ENABLE + case EXTRA_INTERFACE: + return &extra_hid_descriptor; +#endif /* EXTRAKEY_ENABLE */ +#ifdef NKRO_ENABLE + case NKRO_INTERFACE: + return &nkro_hid_descriptor; +#endif /* NKRO_ENABLE */ + } + + case USB_DESCRIPTOR_HID_REPORT: /* HID Report Descriptor */ + switch(lang) { + case KBD_INTERFACE: + return &keyboard_hid_report_descriptor; + +#ifdef MOUSE_ENABLE + case MOUSE_INTERFACE: + return &mouse_hid_report_descriptor; +#endif /* MOUSE_ENABLE */ +#ifdef CONSOLE_ENABLE + case CONSOLE_INTERFACE: + return &console_hid_report_descriptor; +#endif /* CONSOLE_ENABLE */ +#ifdef EXTRAKEY_ENABLE + case EXTRA_INTERFACE: + return &extra_hid_report_descriptor; +#endif /* EXTRAKEY_ENABLE */ +#ifdef NKRO_ENABLE + case NKRO_INTERFACE: + return &nkro_hid_report_descriptor; +#endif /* NKRO_ENABLE */ + } + } + return NULL; +} + +/* keyboard endpoint state structure */ +static USBInEndpointState kbd_ep_state; +/* keyboard endpoint initialization structure (IN) */ +static const USBEndpointConfig kbd_ep_config = { + USB_EP_MODE_TYPE_INTR, /* Interrupt EP */ + NULL, /* SETUP packet notification callback */ + kbd_in_cb, /* IN notification callback */ + NULL, /* OUT notification callback */ + KBD_EPSIZE, /* IN maximum packet size */ + 0, /* OUT maximum packet size */ + &kbd_ep_state, /* IN Endpoint state */ + NULL, /* OUT endpoint state */ + 2, /* IN multiplier */ + NULL /* SETUP buffer (not a SETUP endpoint) */ +}; + +#ifdef MOUSE_ENABLE +/* mouse endpoint state structure */ +static USBInEndpointState mouse_ep_state; + +/* mouse endpoint initialization structure (IN) */ +static const USBEndpointConfig mouse_ep_config = { + USB_EP_MODE_TYPE_INTR, /* Interrupt EP */ + NULL, /* SETUP packet notification callback */ + mouse_in_cb, /* IN notification callback */ + NULL, /* OUT notification callback */ + MOUSE_EPSIZE, /* IN maximum packet size */ + 0, /* OUT maximum packet size */ + &mouse_ep_state, /* IN Endpoint state */ + NULL, /* OUT endpoint state */ + 2, /* IN multiplier */ + NULL /* SETUP buffer (not a SETUP endpoint) */ +}; +#endif /* MOUSE_ENABLE */ + +#ifdef CONSOLE_ENABLE +/* console endpoint state structure */ +static USBInEndpointState console_ep_state; + +/* console endpoint initialization structure (IN) */ +static const USBEndpointConfig console_ep_config = { + USB_EP_MODE_TYPE_INTR, /* Interrupt EP */ + NULL, /* SETUP packet notification callback */ + console_in_cb, /* IN notification callback */ + NULL, /* OUT notification callback */ + CONSOLE_EPSIZE, /* IN maximum packet size */ + 0, /* OUT maximum packet size */ + &console_ep_state, /* IN Endpoint state */ + NULL, /* OUT endpoint state */ + 2, /* IN multiplier */ + NULL /* SETUP buffer (not a SETUP endpoint) */ +}; +#endif /* CONSOLE_ENABLE */ + +#ifdef EXTRAKEY_ENABLE +/* extrakey endpoint state structure */ +static USBInEndpointState extra_ep_state; + +/* extrakey endpoint initialization structure (IN) */ +static const USBEndpointConfig extra_ep_config = { + USB_EP_MODE_TYPE_INTR, /* Interrupt EP */ + NULL, /* SETUP packet notification callback */ + extra_in_cb, /* IN notification callback */ + NULL, /* OUT notification callback */ + EXTRA_EPSIZE, /* IN maximum packet size */ + 0, /* OUT maximum packet size */ + &extra_ep_state, /* IN Endpoint state */ + NULL, /* OUT endpoint state */ + 2, /* IN multiplier */ + NULL /* SETUP buffer (not a SETUP endpoint) */ +}; +#endif /* EXTRAKEY_ENABLE */ + +#ifdef NKRO_ENABLE +/* nkro endpoint state structure */ +static USBInEndpointState nkro_ep_state; + +/* nkro endpoint initialization structure (IN) */ +static const USBEndpointConfig nkro_ep_config = { + USB_EP_MODE_TYPE_INTR, /* Interrupt EP */ + NULL, /* SETUP packet notification callback */ + nkro_in_cb, /* IN notification callback */ + NULL, /* OUT notification callback */ + NKRO_EPSIZE, /* IN maximum packet size */ + 0, /* OUT maximum packet size */ + &nkro_ep_state, /* IN Endpoint state */ + NULL, /* OUT endpoint state */ + 2, /* IN multiplier */ + NULL /* SETUP buffer (not a SETUP endpoint) */ +}; +#endif /* NKRO_ENABLE */ + +/* --------------------------------------------------------- + * USB driver functions + * --------------------------------------------------------- + */ + +/* Handles the USB driver global events + * TODO: maybe disable some things when connection is lost? */ +static void usb_event_cb(USBDriver *usbp, usbevent_t event) { + switch(event) { + case USB_EVENT_RESET: + //TODO: from ISR! print("[R]"); + return; + + case USB_EVENT_ADDRESS: + return; + + case USB_EVENT_CONFIGURED: + osalSysLockFromISR(); + /* Enable the endpoints specified into the configuration. */ + usbInitEndpointI(usbp, KBD_ENDPOINT, &kbd_ep_config); +#ifdef MOUSE_ENABLE + usbInitEndpointI(usbp, MOUSE_ENDPOINT, &mouse_ep_config); +#endif /* MOUSE_ENABLE */ +#ifdef CONSOLE_ENABLE + usbInitEndpointI(usbp, CONSOLE_ENDPOINT, &console_ep_config); + /* don't need to start the flush timer, it starts from console_in_cb automatically */ +#endif /* CONSOLE_ENABLE */ +#ifdef EXTRAKEY_ENABLE + usbInitEndpointI(usbp, EXTRA_ENDPOINT, &extra_ep_config); +#endif /* EXTRAKEY_ENABLE */ +#ifdef NKRO_ENABLE + usbInitEndpointI(usbp, NKRO_ENDPOINT, &nkro_ep_config); +#endif /* NKRO_ENABLE */ + osalSysUnlockFromISR(); + return; + + case USB_EVENT_SUSPEND: + //TODO: from ISR! print("[S]"); +#ifdef SLEEP_LED_ENABLE + sleep_led_enable(); +#endif /* SLEEP_LED_ENABLE */ + return; + + case USB_EVENT_WAKEUP: + //TODO: from ISR! print("[W]"); + suspend_wakeup_init(); +#ifdef SLEEP_LED_ENABLE + sleep_led_disable(); + // NOTE: converters may not accept this + led_set(host_keyboard_leds()); +#endif /* SLEEP_LED_ENABLE */ + return; + + case USB_EVENT_STALLED: + return; + } +} + +/* Function used locally in os/hal/src/usb.c for getting descriptors + * need it here for HID descriptor */ +static uint16_t get_hword(uint8_t *p) { + uint16_t hw; + + hw = (uint16_t)*p++; + hw |= (uint16_t)*p << 8U; + return hw; +} + +/* + * Appendix G: HID Request Support Requirements + * + * The following table enumerates the requests that need to be supported by various types of HID class devices. + * Device type GetReport SetReport GetIdle SetIdle GetProtocol SetProtocol + * ------------------------------------------------------------------------------------------ + * Boot Mouse Required Optional Optional Optional Required Required + * Non-Boot Mouse Required Optional Optional Optional Optional Optional + * Boot Keyboard Required Optional Required Required Required Required + * Non-Boot Keybrd Required Optional Required Required Optional Optional + * Other Device Required Optional Optional Optional Optional Optional + */ + +/* Callback for SETUP request on the endpoint 0 (control) */ +static bool usb_request_hook_cb(USBDriver *usbp) { + const USBDescriptor *dp; + + /* usbp->setup fields: + * 0: bmRequestType (bitmask) + * 1: bRequest + * 2,3: (LSB,MSB) wValue + * 4,5: (LSB,MSB) wIndex + * 6,7: (LSB,MSB) wLength (number of bytes to transfer if there is a data phase) */ + + /* Handle HID class specific requests */ + if(((usbp->setup[0] & USB_RTYPE_TYPE_MASK) == USB_RTYPE_TYPE_CLASS) && + ((usbp->setup[0] & USB_RTYPE_RECIPIENT_MASK) == USB_RTYPE_RECIPIENT_INTERFACE)) { + switch(usbp->setup[0] & USB_RTYPE_DIR_MASK) { + case USB_RTYPE_DIR_DEV2HOST: + switch(usbp->setup[1]) { /* bRequest */ + case HID_GET_REPORT: + switch(usbp->setup[4]) { /* LSB(wIndex) (check MSB==0?) */ + case KBD_INTERFACE: +#ifdef NKRO_ENABLE + case NKRO_INTERFACE: +#endif /* NKRO_ENABLE */ + usbSetupTransfer(usbp, (uint8_t *)&keyboard_report_sent, sizeof(keyboard_report_sent), NULL); + return TRUE; + break; + +#ifdef MOUSE_ENABLE + case MOUSE_INTERFACE: + usbSetupTransfer(usbp, (uint8_t *)&mouse_report_blank, sizeof(mouse_report_blank), NULL); + return TRUE; + break; +#endif /* MOUSE_ENABLE */ + +#ifdef CONSOLE_ENABLE + case CONSOLE_INTERFACE: + usbSetupTransfer(usbp, console_queue_buffer, CONSOLE_EPSIZE, NULL); + return TRUE; + break; +#endif /* CONSOLE_ENABLE */ + +#ifdef EXTRAKEY_ENABLE + case EXTRA_INTERFACE: + if(usbp->setup[3] == 1) { /* MSB(wValue) [Report Type] == 1 [Input Report] */ + switch(usbp->setup[2]) { /* LSB(wValue) [Report ID] */ + case REPORT_ID_SYSTEM: + extra_report_blank[0] = REPORT_ID_SYSTEM; + usbSetupTransfer(usbp, (uint8_t *)extra_report_blank, sizeof(extra_report_blank), NULL); + return TRUE; + break; + case REPORT_ID_CONSUMER: + extra_report_blank[0] = REPORT_ID_CONSUMER; + usbSetupTransfer(usbp, (uint8_t *)extra_report_blank, sizeof(extra_report_blank), NULL); + return TRUE; + break; + default: + return FALSE; + } + } else { + return FALSE; + } + break; +#endif /* EXTRAKEY_ENABLE */ + + default: + usbSetupTransfer(usbp, NULL, 0, NULL); + return TRUE; + break; + } + break; + + case HID_GET_PROTOCOL: + if((usbp->setup[4] == KBD_INTERFACE) && (usbp->setup[5] == 0)) { /* wIndex */ + usbSetupTransfer(usbp, &keyboard_protocol, 1, NULL); + return TRUE; + } + break; + + case HID_GET_IDLE: + usbSetupTransfer(usbp, &keyboard_idle, 1, NULL); + return TRUE; + break; + } + break; + + case USB_RTYPE_DIR_HOST2DEV: + switch(usbp->setup[1]) { /* bRequest */ + case HID_SET_REPORT: + switch(usbp->setup[4]) { /* LSB(wIndex) (check MSB==0 and wLength==1?) */ + case KBD_INTERFACE: +#ifdef NKRO_ENABLE + case NKRO_INTERFACE: +#endif /* NKRO_ENABLE */ + /* keyboard_led_stats = + * keyboard_led_stats needs be word (or dword), otherwise we get an exception on F0 */ + usbSetupTransfer(usbp, (uint8_t *)&keyboard_led_stats, 1, NULL); + return TRUE; + break; + } + break; + + case HID_SET_PROTOCOL: + if((usbp->setup[4] == KBD_INTERFACE) && (usbp->setup[5] == 0)) { /* wIndex */ + keyboard_protocol = ((usbp->setup[2]) != 0x00); /* LSB(wValue) */ +#ifdef NKRO_ENABLE + keyboard_nkro = !!keyboard_protocol; + if(!keyboard_nkro && keyboard_idle) { +#else /* NKRO_ENABLE */ + if(keyboard_idle) { +#endif /* NKRO_ENABLE */ + /* arm the idle timer if boot protocol & idle */ + osalSysLockFromISR(); + chVTSetI(&keyboard_idle_timer, 4*MS2ST(keyboard_idle), keyboard_idle_timer_cb, (void *)usbp); + osalSysUnlockFromISR(); + } + } + usbSetupTransfer(usbp, NULL, 0, NULL); + return TRUE; + break; + + case HID_SET_IDLE: + keyboard_idle = usbp->setup[3]; /* MSB(wValue) */ + /* arm the timer */ +#ifdef NKRO_ENABLE + if(!keyboard_nkro && keyboard_idle) { +#else /* NKRO_ENABLE */ + if(keyboard_idle) { +#endif /* NKRO_ENABLE */ + osalSysLockFromISR(); + chVTSetI(&keyboard_idle_timer, 4*MS2ST(keyboard_idle), keyboard_idle_timer_cb, (void *)usbp); + osalSysUnlockFromISR(); + } + usbSetupTransfer(usbp, NULL, 0, NULL); + return TRUE; + break; + } + break; + } + } + + /* Handle the Get_Descriptor Request for HID class (not handled by the default hook) */ + if((usbp->setup[0] == 0x81) && (usbp->setup[1] == USB_REQ_GET_DESCRIPTOR)) { + dp = usbp->config->get_descriptor_cb(usbp, usbp->setup[3], usbp->setup[2], get_hword(&usbp->setup[4])); + if(dp == NULL) + return FALSE; + usbSetupTransfer(usbp, (uint8_t *)dp->ud_string, dp->ud_size, NULL); + return TRUE; + } + + return FALSE; +} + +/* Start-of-frame callback */ +static void usb_sof_cb(USBDriver *usbp) { + kbd_sof_cb(usbp); +} + + +/* USB driver configuration */ +static const USBConfig usbcfg = { + usb_event_cb, /* USB events callback */ + usb_get_descriptor_cb, /* Device GET_DESCRIPTOR request callback */ + usb_request_hook_cb, /* Requests hook callback */ + usb_sof_cb /* Start Of Frame callback */ +}; + +/* + * Initialize the USB driver + */ +void init_usb_driver(USBDriver *usbp) { + /* + * Activates the USB driver and then the USB bus pull-up on D+. + * Note, a delay is inserted in order to not have to disconnect the cable + * after a reset. + */ + usbDisconnectBus(usbp); + chThdSleepMilliseconds(1500); + usbStart(usbp, &usbcfg); + usbConnectBus(usbp); + + chVTObjectInit(&keyboard_idle_timer); +#ifdef CONSOLE_ENABLE + obqObjectInit(&console_buf_queue, console_queue_buffer, CONSOLE_EPSIZE, CONSOLE_QUEUE_CAPACITY, console_queue_onotify, (void*)usbp); + chVTObjectInit(&console_flush_timer); +#endif +} + +/* + * Send remote wakeup packet + * Note: should not be called from ISR + */ +void send_remote_wakeup(USBDriver *usbp) { + (void)usbp; +#if defined(K20x) || defined(KL2x) +#if KINETIS_USB_USE_USB0 + USB0->CTL |= USBx_CTL_RESUME; + chThdSleepMilliseconds(15); + USB0->CTL &= ~USBx_CTL_RESUME; +#endif /* KINETIS_USB_USE_USB0 */ +#elif defined(STM32F0XX) || defined(STM32F1XX) /* K20x || KL2x */ + STM32_USB->CNTR |= CNTR_RESUME; + chThdSleepMilliseconds(15); + STM32_USB->CNTR &= ~CNTR_RESUME; +#else /* STM32F0XX || STM32F1XX */ +#warning Sending remote wakeup packet not implemented for your platform. +#endif /* K20x || KL2x */ +} + +/* --------------------------------------------------------- + * Keyboard functions + * --------------------------------------------------------- + */ + +/* keyboard IN callback hander (a kbd report has made it IN) */ +void kbd_in_cb(USBDriver *usbp, usbep_t ep) { + /* STUB */ + (void)usbp; + (void)ep; +} + +#ifdef NKRO_ENABLE +/* nkro IN callback hander (a nkro report has made it IN) */ +void nkro_in_cb(USBDriver *usbp, usbep_t ep) { + /* STUB */ + (void)usbp; + (void)ep; +} +#endif /* NKRO_ENABLE */ + +/* start-of-frame handler + * TODO: i guess it would be better to re-implement using timers, + * so that this is not going to have to be checked every 1ms */ +void kbd_sof_cb(USBDriver *usbp) { + (void)usbp; +} + +/* Idle requests timer code + * callback (called from ISR, unlocked state) */ +static void keyboard_idle_timer_cb(void *arg) { + USBDriver *usbp = (USBDriver *)arg; + + osalSysLockFromISR(); + + /* check that the states of things are as they're supposed to */ + if(usbGetDriverStateI(usbp) != USB_ACTIVE) { + /* do not rearm the timer, should be enabled on IDLE request */ + osalSysUnlockFromISR(); + return; + } + +#ifdef NKRO_ENABLE + if(!keyboard_nkro && keyboard_idle) { +#else /* NKRO_ENABLE */ + if(keyboard_idle) { +#endif /* NKRO_ENABLE */ + /* TODO: are we sure we want the KBD_ENDPOINT? */ + if(!usbGetTransmitStatusI(usbp, KBD_ENDPOINT)) { + usbStartTransmitI(usbp, KBD_ENDPOINT, (uint8_t *)&keyboard_report_sent, KBD_EPSIZE); + } + /* rearm the timer */ + chVTSetI(&keyboard_idle_timer, 4*MS2ST(keyboard_idle), keyboard_idle_timer_cb, (void *)usbp); + } + + /* do not rearm the timer if the condition above fails + * it should be enabled again on either IDLE or SET_PROTOCOL requests */ + osalSysUnlockFromISR(); +} + +/* LED status */ +uint8_t keyboard_leds(void) { + return (uint8_t)(keyboard_led_stats & 0xFF); +} + +/* prepare and start sending a report IN + * not callable from ISR or locked state */ +void send_keyboard(report_keyboard_t *report) { + osalSysLock(); + if(usbGetDriverStateI(&USB_DRIVER) != USB_ACTIVE) { + osalSysUnlock(); + return; + } + osalSysUnlock(); + +#ifdef NKRO_ENABLE + if(keyboard_nkro) { /* NKRO protocol */ + /* need to wait until the previous packet has made it through */ + /* can rewrite this using the synchronous API, then would wait + * until *after* the packet has been transmitted. I think + * this is more efficient */ + /* busy wait, should be short and not very common */ + osalSysLock(); + if(usbGetTransmitStatusI(&USB_DRIVER, NKRO_ENDPOINT)) { + /* Need to either suspend, or loop and call unlock/lock during + * every iteration - otherwise the system will remain locked, + * no interrupts served, so USB not going through as well. + * Note: for suspend, need USB_USE_WAIT == TRUE in halconf.h */ + osalThreadSuspendS(&(&USB_DRIVER)->epc[NKRO_ENDPOINT]->in_state->thread); + } + usbStartTransmitI(&USB_DRIVER, NKRO_ENDPOINT, (uint8_t *)report, sizeof(report_keyboard_t)); + osalSysUnlock(); + } else +#endif /* NKRO_ENABLE */ + { /* boot protocol */ + /* need to wait until the previous packet has made it through */ + /* busy wait, should be short and not very common */ + osalSysLock(); + if(usbGetTransmitStatusI(&USB_DRIVER, KBD_ENDPOINT)) { + /* Need to either suspend, or loop and call unlock/lock during + * every iteration - otherwise the system will remain locked, + * no interrupts served, so USB not going through as well. + * Note: for suspend, need USB_USE_WAIT == TRUE in halconf.h */ + osalThreadSuspendS(&(&USB_DRIVER)->epc[KBD_ENDPOINT]->in_state->thread); + } + usbStartTransmitI(&USB_DRIVER, KBD_ENDPOINT, (uint8_t *)report, KBD_EPSIZE); + osalSysUnlock(); + } + keyboard_report_sent = *report; +} + +/* --------------------------------------------------------- + * Mouse functions + * --------------------------------------------------------- + */ + +#ifdef MOUSE_ENABLE + +/* mouse IN callback hander (a mouse report has made it IN) */ +void mouse_in_cb(USBDriver *usbp, usbep_t ep) { + (void)usbp; + (void)ep; +} + +void send_mouse(report_mouse_t *report) { + osalSysLock(); + if(usbGetDriverStateI(&USB_DRIVER) != USB_ACTIVE) { + osalSysUnlock(); + return; + } + osalSysUnlock(); + + /* TODO: LUFA manually waits for the endpoint to become ready + * for about 10ms for mouse, kbd, system; 1ms for nkro + * is this really needed? + */ + + osalSysLock(); + usbStartTransmitI(&USB_DRIVER, MOUSE_ENDPOINT, (uint8_t *)report, sizeof(report_mouse_t)); + osalSysUnlock(); +} + +#else /* MOUSE_ENABLE */ +void send_mouse(report_mouse_t *report) { + (void)report; +} +#endif /* MOUSE_ENABLE */ + +/* --------------------------------------------------------- + * Extrakey functions + * --------------------------------------------------------- + */ + +#ifdef EXTRAKEY_ENABLE + +/* extrakey IN callback hander */ +void extra_in_cb(USBDriver *usbp, usbep_t ep) { + /* STUB */ + (void)usbp; + (void)ep; +} + +static void send_extra_report(uint8_t report_id, uint16_t data) { + osalSysLock(); + if(usbGetDriverStateI(&USB_DRIVER) != USB_ACTIVE) { + osalSysUnlock(); + return; + } + + report_extra_t report = { + .report_id = report_id, + .usage = data + }; + + usbStartTransmitI(&USB_DRIVER, EXTRA_ENDPOINT, (uint8_t *)&report, sizeof(report_extra_t)); + osalSysUnlock(); +} + +void send_system(uint16_t data) { + send_extra_report(REPORT_ID_SYSTEM, data); +} + +void send_consumer(uint16_t data) { + send_extra_report(REPORT_ID_CONSUMER, data); +} + +#else /* EXTRAKEY_ENABLE */ +void send_system(uint16_t data) { + (void)data; +} +void send_consumer(uint16_t data) { + (void)data; +} +#endif /* EXTRAKEY_ENABLE */ + +/* --------------------------------------------------------- + * Console functions + * --------------------------------------------------------- + */ + +#ifdef CONSOLE_ENABLE + +/* console IN callback hander */ +void console_in_cb(USBDriver *usbp, usbep_t ep) { + (void)ep; /* should have ep == CONSOLE_ENDPOINT, so use that to save time/space */ + uint8_t *buf; + size_t n; + + osalSysLockFromISR(); + + /* rearm the timer */ + chVTSetI(&console_flush_timer, MS2ST(CONSOLE_FLUSH_MS), console_flush_cb, (void *)usbp); + + /* Freeing the buffer just transmitted, if it was not a zero size packet.*/ + if (usbp->epc[CONSOLE_ENDPOINT]->in_state->txsize > 0U) { + obqReleaseEmptyBufferI(&console_buf_queue); + } + + /* Checking if there is a buffer ready for transmission.*/ + buf = obqGetFullBufferI(&console_buf_queue, &n); + + if (buf != NULL) { + /* The endpoint cannot be busy, we are in the context of the callback, + so it is safe to transmit without a check.*/ + /* Should have n == CONSOLE_EPSIZE; check it? */ + usbStartTransmitI(usbp, CONSOLE_ENDPOINT, buf, CONSOLE_EPSIZE); + } else { + /* Nothing to transmit.*/ + } + + osalSysUnlockFromISR(); +} + +/* Callback when data is inserted into the output queue + * Called from a locked state */ +void console_queue_onotify(io_buffers_queue_t *bqp) { + size_t n; + USBDriver *usbp = bqGetLinkX(bqp); + + if(usbGetDriverStateI(usbp) != USB_ACTIVE) + return; + + /* Checking if there is already a transaction ongoing on the endpoint.*/ + if (!usbGetTransmitStatusI(usbp, CONSOLE_ENDPOINT)) { + /* Trying to get a full buffer.*/ + uint8_t *buf = obqGetFullBufferI(&console_buf_queue, &n); + if (buf != NULL) { + /* Buffer found, starting a new transaction.*/ + /* Should have n == CONSOLE_EPSIZE; check this? */ + usbStartTransmitI(usbp, CONSOLE_ENDPOINT, buf, CONSOLE_EPSIZE); + } + } +} + +/* Flush timer code + * callback (called from ISR, unlocked state) */ +static void console_flush_cb(void *arg) { + USBDriver *usbp = (USBDriver *)arg; + osalSysLockFromISR(); + + /* check that the states of things are as they're supposed to */ + if(usbGetDriverStateI(usbp) != USB_ACTIVE) { + /* rearm the timer */ + chVTSetI(&console_flush_timer, MS2ST(CONSOLE_FLUSH_MS), console_flush_cb, (void *)usbp); + osalSysUnlockFromISR(); + return; + } + + /* If there is already a transaction ongoing then another one cannot be + started.*/ + if (usbGetTransmitStatusI(usbp, CONSOLE_ENDPOINT)) { + /* rearm the timer */ + chVTSetI(&console_flush_timer, MS2ST(CONSOLE_FLUSH_MS), console_flush_cb, (void *)usbp); + osalSysUnlockFromISR(); + return; + } + + /* Checking if there only a buffer partially filled, if so then it is + enforced in the queue and transmitted.*/ + if(obqTryFlushI(&console_buf_queue)) { + size_t n,i; + uint8_t *buf = obqGetFullBufferI(&console_buf_queue, &n); + + osalDbgAssert(buf != NULL, "queue is empty"); + + /* zero the rest of the buffer (buf should point to allocated space) */ + for(i=n; i + * + * Based on the following work: + * - Guillaume Duc's raw hid example (MIT License) + * https://github.com/guiduc/usb-hid-chibios-example + * - PJRC Teensy examples (MIT License) + * https://www.pjrc.com/teensy/usb_keyboard.html + * - hasu's TMK keyboard code (GPL v2 and some code Modified BSD) + * https://github.com/tmk/tmk_keyboard/ + * - ChibiOS demo code (Apache 2.0 License) + * http://www.chibios.org + * + * Since some GPL'd code is used, this work is licensed under + * GPL v2 or later. + */ + + +#ifndef _USB_MAIN_H_ +#define _USB_MAIN_H_ + +// TESTING +// extern uint8_t blinkLed; + +#include "ch.h" +#include "hal.h" + +/* ------------------------- + * General USB driver header + * ------------------------- + */ + +/* The USB driver to use */ +#define USB_DRIVER USBD1 + +/* Initialize the USB driver and bus */ +void init_usb_driver(USBDriver *usbp); + +/* Send remote wakeup packet */ +void send_remote_wakeup(USBDriver *usbp); + +/* --------------- + * Keyboard header + * --------------- + */ + +/* main keyboard (6kro) */ +#define KBD_INTERFACE 0 +#define KBD_ENDPOINT 1 +#define KBD_EPSIZE 8 +#define KBD_REPORT_KEYS (KBD_EPSIZE - 2) + +/* secondary keyboard */ +#ifdef NKRO_ENABLE +#define NKRO_INTERFACE 4 +#define NKRO_ENDPOINT 5 +#define NKRO_EPSIZE 16 +#define NKRO_REPORT_KEYS (NKRO_EPSIZE - 1) +#endif + +/* extern report_keyboard_t keyboard_report_sent; */ + +/* keyboard IN request callback handler */ +void kbd_in_cb(USBDriver *usbp, usbep_t ep); + +/* start-of-frame handler */ +void kbd_sof_cb(USBDriver *usbp); + +#ifdef NKRO_ENABLE +/* nkro IN callback hander */ +void nkro_in_cb(USBDriver *usbp, usbep_t ep); +#endif /* NKRO_ENABLE */ + +/* ------------ + * Mouse header + * ------------ + */ + +#ifdef MOUSE_ENABLE + +#define MOUSE_INTERFACE 1 +#define MOUSE_ENDPOINT 2 +#define MOUSE_EPSIZE 8 + +/* mouse IN request callback handler */ +void mouse_in_cb(USBDriver *usbp, usbep_t ep); +#endif /* MOUSE_ENABLE */ + +/* --------------- + * Extrakey header + * --------------- + */ + +#ifdef EXTRAKEY_ENABLE + +#define EXTRA_INTERFACE 3 +#define EXTRA_ENDPOINT 4 +#define EXTRA_EPSIZE 8 + +/* extrakey IN request callback handler */ +void extra_in_cb(USBDriver *usbp, usbep_t ep); + +/* extra report structure */ +typedef struct { + uint8_t report_id; + uint16_t usage; +} __attribute__ ((packed)) report_extra_t; +#endif /* EXTRAKEY_ENABLE */ + +/* -------------- + * Console header + * -------------- + */ + +#ifdef CONSOLE_ENABLE + +#define CONSOLE_INTERFACE 2 +#define CONSOLE_ENDPOINT 3 +#define CONSOLE_EPSIZE 16 + +/* Number of IN reports that can be stored inside the output queue */ +#define CONSOLE_QUEUE_CAPACITY 4 + +/* Console flush time */ +#define CONSOLE_FLUSH_MS 50 + +/* Putchar over the USB console */ +int8_t sendchar(uint8_t c); + +/* Flush output (send everything immediately) */ +void console_flush_output(void); + +/* console IN request callback handler */ +void console_in_cb(USBDriver *usbp, usbep_t ep); +#endif /* CONSOLE_ENABLE */ + +void sendchar_pf(void *p, char c); + +#endif /* _USB_MAIN_H_ */ diff --git a/tmk_core/readme.md b/tmk_core/readme.md index 6b6714a6a..f460d0ed4 100644 --- a/tmk_core/readme.md +++ b/tmk_core/readme.md @@ -5,6 +5,16 @@ This is a keyboard firmware library with some useful features for Atmel AVR and Source code is available here: +Updates +------- +#### 2016/02/10 +flabbergast's Chibios protocol was merged from . See [protocol/chibios/README.md](protocol/chibios/README.md). Chibios protocol supports Cortex-M such as STM32 and Kinetis. + +#### 2015/04/22 +separated with TMK Keyboard Firmware Collection + + + Features -------- These features can be used in your keyboard. @@ -27,12 +37,6 @@ These features can be used in your keyboard. -Updates -------- -2015/04/22 separated with TMK Keyboard Firmware Collection - - - TMK Keyboard Firmware Collection -------------------------------- Complete firmwares for various keyboards and protocol converters. diff --git a/tmk_core/rules.mk b/tmk_core/rules.mk index f8f77e892..96eba24d6 100644 --- a/tmk_core/rules.mk +++ b/tmk_core/rules.mk @@ -20,26 +20,11 @@ # Output format. (can be srec, ihex, binary) FORMAT = ihex -BUILD_DIR = .build - -# Object files directory -# To put object files in current directory, use a dot (.), do NOT make -# this an empty or blank macro! -OBJDIR = $(BUILD_DIR)/obj_$(TARGET) - - # Optimization level, can be [0, 1, 2, 3, s]. # 0 = turn off optimization. s = optimize for size. # (Note: 3 is not always the best optimization level. See avr-libc FAQ.) OPT = s - -# Debugging format. -# Native formats for AVR-GCC's -g are dwarf-2 [default] or stabs. -# AVR Studio 4.10 requires dwarf-2. -# AVR [Extended] COFF format requires stabs, plus an avr-objcopy run. -DEBUG = dwarf-2 - COLOR ?= true ifeq ($(COLOR),true) @@ -87,7 +72,7 @@ BUILD_CMD = LOG=$$($(CMD) 2>&1) ; if [ $$? -gt 0 ]; then $(PRINT_ERROR); elif [ # Each directory must be seperated by a space. # Use forward slashes for directory separators. # For a directory that has spaces, enclose it in quotes. -EXTRAINCDIRS = $(subst :, ,$(VPATH)) +EXTRAINCDIRS += $(subst :, ,$(VPATH)) # Compiler flag to set the C Standard level. @@ -99,17 +84,14 @@ CSTANDARD = -std=gnu99 # Place -D or -U options here for C sources -CDEFS = -DF_CPU=$(F_CPU)UL CDEFS += $(OPT_DEFS) # Place -D or -U options here for ASM sources -ADEFS = -DF_CPU=$(F_CPU) ADEFS += $(OPT_DEFS) # Place -D or -U options here for C++ sources -CPPDEFS = -DF_CPU=$(F_CPU)UL #CPPDEFS += -D__STDC_LIMIT_MACROS #CPPDEFS += -D__STDC_CONSTANT_MACROS CPPDEFS += $(OPT_DEFS) @@ -123,17 +105,9 @@ CPPDEFS += $(OPT_DEFS) # -Wall...: warning level # -Wa,...: tell GCC to pass this to the assembler. # -adhlns...: create assembler listing -CFLAGS = -g$(DEBUG) +CFLAGS += -g$(DEBUG) CFLAGS += $(CDEFS) CFLAGS += -O$(OPT) -CFLAGS += -funsigned-char -CFLAGS += -funsigned-bitfields -CFLAGS += -ffunction-sections -CFLAGS += -fdata-sections -CFLAGS += -fno-inline-small-functions -CFLAGS += -fpack-struct -CFLAGS += -fshort-enums -CFLAGS += -fno-strict-aliasing # add color ifeq ($(COLOR),true) ifeq ("$(shell echo "int main(){}" | $(CC) -fdiagnostics-color -x c - -o /dev/null 2>&1)", "") @@ -162,16 +136,9 @@ endif # -Wall...: warning level # -Wa,...: tell GCC to pass this to the assembler. # -adhlns...: create assembler listing -CPPFLAGS = -g$(DEBUG) +CPPFLAGS += -g$(DEBUG) CPPFLAGS += $(CPPDEFS) CPPFLAGS += -O$(OPT) -CPPFLAGS += -funsigned-char -CPPFLAGS += -funsigned-bitfields -CPPFLAGS += -fpack-struct -CPPFLAGS += -fshort-enums -CPPFLAGS += -fno-exceptions -CPPFLAGS += -ffunction-sections -CPPFLAGS += -fdata-sections # to supress "warning: only initialized variables can be placed into program memory area" CPPFLAGS += -w CPPFLAGS += -Wall @@ -198,7 +165,7 @@ endif # files -- see avr-libc docs [FIXME: not yet described there] # -listing-cont-lines: Sets the maximum number of continuation lines of hex # dump that will be displayed for a given single line of source input. -ASFLAGS = $(ADEFS) -Wa,-adhlns=$(@:%.o=%.lst),-gstabs,--listing-cont-lines=100 +ASFLAGS += $(ADEFS) -Wa,-adhlns=$(@:%.o=%.lst),-gstabs,--listing-cont-lines=100 ASFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS)) ifdef CONFIG_H ASFLAGS += -include $(CONFIG_H) @@ -232,28 +199,6 @@ SCANF_LIB = MATH_LIB = -lm -# List any extra directories to look for libraries here. -# Each directory must be seperated by a space. -# Use forward slashes for directory separators. -# For a directory that has spaces, enclose it in quotes. -EXTRALIBDIRS = - - - -#---------------- External Memory Options ---------------- - -# 64 KB of external RAM, starting after internal RAM (ATmega128!), -# used for variables (.data/.bss) and heap (malloc()). -#EXTMEMOPTS = -Wl,-Tdata=0x801100,--defsym=__heap_end=0x80ffff - -# 64 KB of external RAM, starting after internal RAM (ATmega128!), -# only used for heap (malloc()). -#EXTMEMOPTS = -Wl,--section-start,.data=0x801100,--defsym=__heap_end=0x80ffff - -EXTMEMOPTS = - - - #---------------- Linker Options ---------------- # -Wl,...: tell GCC to pass this to linker. # -Map: create map file @@ -262,9 +207,8 @@ EXTMEMOPTS = # Comennt out "--relax" option to avoid a error such: # (.vectors+0x30): relocation truncated to fit: R_AVR_13_PCREL against symbol `__vector_12' # -LDFLAGS = -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref +LDFLAGS += -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref #LDFLAGS += -Wl,--relax -LDFLAGS += -Wl,--gc-sections LDFLAGS += $(EXTMEMOPTS) LDFLAGS += $(patsubst %,-L%,$(EXTRALIBDIRS)) LDFLAGS += $(PRINTF_LIB) $(SCANF_LIB) $(MATH_LIB) @@ -272,59 +216,13 @@ LDFLAGS += $(PRINTF_LIB) $(SCANF_LIB) $(MATH_LIB) # You can give EXTRALDFLAGS at 'make' command line. LDFLAGS += $(EXTRALDFLAGS) - - -#---------------- Debugging Options ---------------- - -# For simulavr only - target MCU frequency. -DEBUG_MFREQ = $(F_CPU) - -# Set the DEBUG_UI to either gdb or insight. -# DEBUG_UI = gdb -DEBUG_UI = insight - -# Set the debugging back-end to either avarice, simulavr. -DEBUG_BACKEND = avarice -#DEBUG_BACKEND = simulavr - -# GDB Init Filename. -GDBINIT_FILE = __avr_gdbinit - -# When using avarice settings for the JTAG -JTAG_DEV = /dev/com1 - -# Debugging port used to communicate between GDB / avarice / simulavr. -DEBUG_PORT = 4242 - -# Debugging host used to communicate between GDB / avarice / simulavr, normally -# just set to localhost unless doing some sort of crazy debugging when -# avarice is running on a different computer. -DEBUG_HOST = localhost - - - -#============================================================================ - - # Define programs and commands. SHELL = sh -CC = avr-gcc -OBJCOPY = avr-objcopy -OBJDUMP = avr-objdump -SIZE = avr-size -AR = avr-ar rcs -NM = avr-nm REMOVE = rm -f REMOVEDIR = rmdir COPY = cp WINSHELL = cmd SECHO = $(SILENT) || echo -# Autodecct teensy loader -ifneq (, $(shell which teensy-loader-cli 2>/dev/null)) - TEENSY_LOADER_CLI = teensy-loader-cli -else - TEENSY_LOADER_CLI = teensy_loader_cli -endif # Define Messages # English @@ -347,8 +245,6 @@ MSG_CLEANING = Cleaning project: MSG_CREATING_LIBRARY = Creating library: - - # Define all object files. OBJ = $(patsubst %.c,$(OBJDIR)/%.o,$(patsubst %.cpp,$(OBJDIR)/%.o,$(patsubst %.S,$(OBJDIR)/%.o,$(SRC)))) @@ -364,9 +260,9 @@ GENDEPFLAGS = -MMD -MP -MF $(BUILD_DIR)/.dep/$(subst /,_,$@).d # Combine all necessary flags and optional flags. # Add target processor to flags. # You can give extra flags at 'make' command line like: make EXTRAFLAGS=-DFOO=bar -ALL_CFLAGS = -mmcu=$(MCU) $(CFLAGS) $(GENDEPFLAGS) $(EXTRAFLAGS) -ALL_CPPFLAGS = -mmcu=$(MCU) -x c++ $(CPPFLAGS) $(GENDEPFLAGS) $(EXTRAFLAGS) -ALL_ASFLAGS = -mmcu=$(MCU) -x assembler-with-cpp $(ASFLAGS) $(EXTRAFLAGS) +ALL_CFLAGS = $(MCUFLAGS) $(CFLAGS) $(GENDEPFLAGS) $(EXTRAFLAGS) +ALL_CPPFLAGS = $(MCUFLAGS) -x c++ $(CPPFLAGS) $(GENDEPFLAGS) $(EXTRAFLAGS) +ALL_ASFLAGS = $(MCUFLAGS) -x assembler-with-cpp $(ASFLAGS) $(EXTRAFLAGS) # Default target. all: @@ -432,104 +328,10 @@ sizeafter: gccversion : @$(SILENT) || $(CC) --version - - -# Program the device. -program: $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep - $(PROGRAM_CMD) - -teensy: $(BUILD_DIR)/$(TARGET).hex - $(TEENSY_LOADER_CLI) -mmcu=$(MCU) -w -v $(BUILD_DIR)/$(TARGET).hex - -flip: $(BUILD_DIR)/$(TARGET).hex - batchisp -hardware usb -device $(MCU) -operation erase f - batchisp -hardware usb -device $(MCU) -operation loadbuffer $(BUILD_DIR)/$(TARGET).hex program - batchisp -hardware usb -device $(MCU) -operation start reset 0 - -dfu: $(BUILD_DIR)/$(TARGET).hex sizeafter -ifneq (, $(findstring 0.7, $(shell dfu-programmer --version 2>&1))) - dfu-programmer $(MCU) erase --force -else - dfu-programmer $(MCU) erase -endif - dfu-programmer $(MCU) flash $(BUILD_DIR)/$(TARGET).hex - dfu-programmer $(MCU) reset - -dfu-start: - dfu-programmer $(MCU) reset - dfu-programmer $(MCU) start - -flip-ee: $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep - $(COPY) $(BUILD_DIR)/$(TARGET).eep $(BUILD_DIR)/$(TARGET)eep.hex - batchisp -hardware usb -device $(MCU) -operation memory EEPROM erase - batchisp -hardware usb -device $(MCU) -operation memory EEPROM loadbuffer $(BUILD_DIR)/$(TARGET)eep.hex program - batchisp -hardware usb -device $(MCU) -operation start reset 0 - $(REMOVE) $(BUILD_DIR)/$(TARGET)eep.hex - -dfu-ee: $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep -ifneq (, $(findstring 0.7, $(shell dfu-programmer --version 2>&1))) - dfu-programmer $(MCU) flash --eeprom $(BUILD_DIR)/$(TARGET).eep -else - dfu-programmer $(MCU) flash-eeprom $(BUILD_DIR)/$(TARGET).eep -endif - dfu-programmer $(MCU) reset - - -# Generate avr-gdb config/init file which does the following: -# define the reset signal, load the target file, connect to target, and set -# a breakpoint at main(). -gdb-config: - @$(REMOVE) $(GDBINIT_FILE) - @echo define reset >> $(GDBINIT_FILE) - @echo SIGNAL SIGHUP >> $(GDBINIT_FILE) - @echo end >> $(GDBINIT_FILE) - @echo file $(BUILD_DIR)/$(TARGET).elf >> $(GDBINIT_FILE) - @echo target remote $(DEBUG_HOST):$(DEBUG_PORT) >> $(GDBINIT_FILE) -ifeq ($(DEBUG_BACKEND),simulavr) - @echo load >> $(GDBINIT_FILE) -endif - @echo break main >> $(GDBINIT_FILE) - -debug: gdb-config $(BUILD_DIR)/$(TARGET).elf -ifeq ($(DEBUG_BACKEND), avarice) - @echo Starting AVaRICE - Press enter when "waiting to connect" message displays. - @$(WINSHELL) /c start avarice --jtag $(JTAG_DEV) --erase --program --file \ - $(BUILD_DIR)/$(TARGET).elf $(DEBUG_HOST):$(DEBUG_PORT) - @$(WINSHELL) /c pause - -else - @$(WINSHELL) /c start simulavr --gdbserver --device $(MCU) --clock-freq \ - $(DEBUG_MFREQ) --port $(DEBUG_PORT) -endif - @$(WINSHELL) /c start avr-$(DEBUG_UI) --command=$(GDBINIT_FILE) - - - - -# Convert ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB. -COFFCONVERT = $(OBJCOPY) --debugging -COFFCONVERT += --change-section-address .data-0x800000 -COFFCONVERT += --change-section-address .bss-0x800000 -COFFCONVERT += --change-section-address .noinit-0x800000 -COFFCONVERT += --change-section-address .eeprom-0x810000 - - - -coff: $(BUILD_DIR)/$(TARGET).elf - @$(SECHO) $(MSG_COFF) $(BUILD_DIR)/$(TARGET).cof - $(COFFCONVERT) -O coff-avr $< $(BUILD_DIR)/$(TARGET).cof - - -extcoff: $(BUILD_DIR)/$(TARGET).elf - @$(SECHO) $(MSG_EXTENDED_COFF) $(BUILD_DIR)/$(TARGET).cof - $(COFFCONVERT) -O coff-ext-avr $< $(BUILD_DIR)/$(TARGET).cof - - - # Create final output files (.hex, .eep) from ELF output file. %.hex: %.elf @$(SILENT) || printf "$(MSG_FLASH) $@" | $(AWK_CMD) - $(eval CMD=$(OBJCOPY) -O $(FORMAT) -R .eeprom -R .fuse -R .lock -R .signature $< $@) + $(eval CMD=$(HEX) $< $@) @$(BUILD_CMD) @if $(AUTOGEN); then \ $(SILENT) || printf "Copying $(TARGET).hex to keymaps/$(KEYMAP)/$(KEYBOARD)_$(KEYMAP).hex\n"; \ @@ -540,7 +342,7 @@ extcoff: $(BUILD_DIR)/$(TARGET).elf %.eep: %.elf @$(SILENT) || printf "$(MSG_EEPROM) $@" | $(AWK_CMD) - $(eval CMD=$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O $(FORMAT) $< $@ || exit 0) + $(eval CMD=$(EEP) $< $@ || exit 0) @$(BUILD_CMD) # Create extended listing file from ELF output file. @@ -622,7 +424,7 @@ show_path: @echo VPATH=$(VPATH) @echo SRC=$(SRC) -SUBDIRS := $(filter-out %/util/ %/doc/ %/keymaps/ %/old_keymap_files/,$(dir $(wildcard $(TOP_DIR)/keyboards/**/*/.))) +SUBDIRS := $(filter-out %/util/ %/doc/ %/keymaps/ %/old_keymap_files/,$(dir $(wildcard $(TOP_DIR)/keyboards/**/*/Makefile))) SUBDIRS := $(SUBDIRS) $(dir $(wildcard $(TOP_DIR)/keyboards/*/.)) SUBDIRS := $(sort $(SUBDIRS)) # $(error $(SUBDIRS)) diff --git a/tmk_core/tool/chibios/.gitignore b/tmk_core/tool/chibios/.gitignore new file mode 100644 index 000000000..88bbafe34 --- /dev/null +++ b/tmk_core/tool/chibios/.gitignore @@ -0,0 +1,2 @@ +chibios +chibios-contrib diff --git a/tmk_core/tool/chibios/ch-bootloader-jump.patch b/tmk_core/tool/chibios/ch-bootloader-jump.patch new file mode 100644 index 000000000..d88657621 --- /dev/null +++ b/tmk_core/tool/chibios/ch-bootloader-jump.patch @@ -0,0 +1,116 @@ +diff --git a/os/common/ports/ARMCMx/compilers/GCC/crt0_v6m.s b/os/common/ports/ARMCMx/compilers/GCC/crt0_v6m.s +index 51a79bb..42d07bd 100644 +--- a/os/common/ports/ARMCMx/compilers/GCC/crt0_v6m.s ++++ b/os/common/ports/ARMCMx/compilers/GCC/crt0_v6m.s +@@ -105,6 +105,13 @@ + #define CRT0_CALL_DESTRUCTORS TRUE + #endif + ++/** ++ * @brief Magic number for jumping to bootloader. ++ */ ++#if !defined(MAGIC_BOOTLOADER_NUMBER) || defined(__DOXYGEN__) ++#define MAGIC_BOOTLOADER_NUMBER 0xDEADBEEF ++#endif ++ + /*===========================================================================*/ + /* Code section. */ + /*===========================================================================*/ +@@ -124,6 +131,17 @@ + .thumb_func + .global Reset_Handler + Reset_Handler: ++ ++#ifdef STM32_BOOTLOADER_ADDRESS ++ /* jump to bootloader code */ ++ ldr r0, =__ram0_end__-4 ++ ldr r1, =MAGIC_BOOTLOADER_NUMBER ++ ldr r2, [r0, #0] ++ str r0, [r0, #0] /* erase stored magic */ ++ cmp r2, r1 ++ beq Bootloader_Jump ++#endif /* STM32_BOOTLOADER_ADDRESS */ ++ + /* Interrupts are globally masked initially.*/ + cpsid i + +@@ -242,6 +260,21 @@ endfiniloop: + ldr r1, =__default_exit + bx r1 + ++#ifdef STM32_BOOTLOADER_ADDRESS ++/* ++ * Jump-to-bootloader function. ++ */ ++ ++ .align 2 ++ .thumb_func ++Bootloader_Jump: ++ ldr r0, =STM32_BOOTLOADER_ADDRESS ++ ldr r1, [r0, #0] ++ mov sp, r1 ++ ldr r0, [r0, #4] ++ bx r0 ++#endif /* STM32_BOOTLOADER_ADDRESS */ ++ + #endif + + /** @} */ +diff --git a/os/common/ports/ARMCMx/compilers/GCC/crt0_v7m.s b/os/common/ports/ARMCMx/compilers/GCC/crt0_v7m.s +index 4812a29..dca9f88 100644 +--- a/os/common/ports/ARMCMx/compilers/GCC/crt0_v7m.s ++++ b/os/common/ports/ARMCMx/compilers/GCC/crt0_v7m.s +@@ -140,6 +140,13 @@ + #define CRT0_CPACR_INIT 0x00F00000 + #endif + ++/** ++ * @brief Magic number for jumping to bootloader. ++ */ ++#if !defined(MAGIC_BOOTLOADER_NUMBER) || defined(__DOXYGEN__) ++#define MAGIC_BOOTLOADER_NUMBER 0xDEADBEEF ++#endif ++ + /*===========================================================================*/ + /* Code section. */ + /*===========================================================================*/ +@@ -164,6 +171,17 @@ + .thumb_func + .global Reset_Handler + Reset_Handler: ++ ++#ifdef STM32_BOOTLOADER_ADDRESS ++ /* jump to bootloader code */ ++ ldr r0, =__ram0_end__-4 ++ ldr r1, =MAGIC_BOOTLOADER_NUMBER ++ ldr r2, [r0, #0] ++ str r0, [r0, #0] /* erase stored magic */ ++ cmp r2, r1 ++ beq Bootloader_Jump ++#endif /* STM32_BOOTLOADER_ADDRESS */ ++ + /* Interrupts are globally masked initially.*/ + cpsid i + +@@ -305,6 +323,21 @@ endfiniloop: + /* Branching to the defined exit handler.*/ + b __default_exit + ++#ifdef STM32_BOOTLOADER_ADDRESS ++/* ++ * Jump-to-bootloader function. ++ */ ++ ++ .align 2 ++ .thumb_func ++Bootloader_Jump: ++ ldr r0, =STM32_BOOTLOADER_ADDRESS ++ ldr r1, [r0, #0] ++ mov sp, r1 ++ ldr r0, [r0, #4] ++ bx r0 ++#endif /* STM32_BOOTLOADER_ADDRESS */ ++ + #endif /* !defined(__DOXYGEN__) */ + + /** @} */ -- cgit v1.2.3 From 27354ae8776d55b361c02be43577184d6af7ac21 Mon Sep 17 00:00:00 2001 From: Seth Chandler Date: Fri, 1 Jul 2016 23:50:51 -0400 Subject: add HHKB support to satan (#470) * add HHKB support * fix indentation --- keyboards/satan/keymaps/sethbc/keymap.c | 149 ++++++++++++++++++++++++++++++++ keyboards/satan/satan.h | 40 +++++++-- 2 files changed, 184 insertions(+), 5 deletions(-) create mode 100644 keyboards/satan/keymaps/sethbc/keymap.c (limited to 'keyboards') diff --git a/keyboards/satan/keymaps/sethbc/keymap.c b/keyboards/satan/keymaps/sethbc/keymap.c new file mode 100644 index 000000000..0ea4a7ae4 --- /dev/null +++ b/keyboards/satan/keymaps/sethbc/keymap.c @@ -0,0 +1,149 @@ +#include "satan.h" + +#ifdef RGBLIGHT_ENABLE +#include "rgblight.h" +#endif + +// Used for SHIFT_ESC +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _FL 1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: (Base Layer) Default Layer + * ,-----------------------------------------------------------. + * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \ | ~ | + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|bksp | + * |-----------------------------------------------------------| + * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift| fn | + * |-----------------------------------------------------------| + * |Ctrl|Gui |Alt | Space |Alt |Gui |FN |Ctrl | + * `-----------------------------------------------------------' + */ +[_BL] = KEYMAP_HHKB( + F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \ + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FL), \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL), + +[_FL] = KEYMAP_HHKB( + #ifdef RGBLIGHT_ENABLE + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, RESET, \ + KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC, \ + KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + #else + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, RESET, \ + KC_CAPS, KC_TRNS, F(1), F(2), F(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC, \ + KC_TRNS, KC_VOLD, F(4), F(5), F(6), KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \ + KC_TRNS, F(7), F(8), KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + #endif +}; + +enum function_id { + SHIFT_ESC, + #ifdef RGBLIGHT_ENABLE + RGBLED_TOGGLE, + RGBLED_STEP_MODE, + RGBLED_INCREASE_HUE, + RGBLED_DECREASE_HUE, + RGBLED_INCREASE_SAT, + RGBLED_DECREASE_SAT, + RGBLED_INCREASE_VAL, + RGBLED_DECREASE_VAL + #endif +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(SHIFT_ESC), + #ifdef RGBLIGHT_ENABLE + [1] = ACTION_FUNCTION(RGBLED_TOGGLE), + [2] = ACTION_FUNCTION(RGBLED_STEP_MODE), + [3] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), + [4] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), + [5] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), + [6] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), + [7] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), + [8] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), + #endif +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + static uint8_t shift_esc_shift_mask; + switch (id) { + case SHIFT_ESC: + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + //led operations + #ifdef RGBLIGHT_ENABLE + case RGBLED_TOGGLE: + if (record->event.pressed) { + rgblight_toggle(); + } + break; + case RGBLED_INCREASE_HUE: + if (record->event.pressed) { + rgblight_increase_hue(); + } + break; + case RGBLED_DECREASE_HUE: + if (record->event.pressed) { + rgblight_decrease_hue(); + } + break; + case RGBLED_INCREASE_SAT: + if (record->event.pressed) { + rgblight_increase_sat(); + } + break; + case RGBLED_DECREASE_SAT: + if (record->event.pressed) { + rgblight_decrease_sat(); + } + break; + case RGBLED_INCREASE_VAL: + if (record->event.pressed) { + rgblight_increase_val(); + } + break; + case RGBLED_DECREASE_VAL: + if (record->event.pressed) { + rgblight_decrease_val(); + } + break; + case RGBLED_STEP_MODE: + if (record->event.pressed) { + rgblight_step(); + } + break; + #endif + } +} diff --git a/keyboards/satan/satan.h b/keyboards/satan/satan.h index 67a48515e..fa1711915 100644 --- a/keyboards/satan/satan.h +++ b/keyboards/satan/satan.h @@ -26,13 +26,43 @@ k40, k41, k42, k45, k4a, k4b, k4c, k4d \ ) \ { \ - {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \ - {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \ - {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, KC_NO, k2d}, \ - {k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k3d}, \ - {k40, k41, k42, KC_NO, KC_NO, k45, KC_NO, KC_NO, KC_NO, KC_NO, k4a, k4b, k4c, k4d} \ + {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \ + {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \ + {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, KC_NO, k2d}, \ + {k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k3d}, \ + {k40, k41, k42, KC_NO, KC_NO, k45, KC_NO, KC_NO, KC_NO, KC_NO, k4a, k4b, k4c, k4d} \ } +/* Satan HHKB matrix layout + * ,------------------------------------------------------------. + * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d| 49 | + * |------------------------------------------------------------| + * | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d | + * |------------------------------------------------------------| + * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2d | + * |------------------------------------------------------------| + * | 30 | 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d | 3c | + * |------------------------------------------------------------| + * | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d | + * `------------------------------------------------------------' + */ + +#define KEYMAP_HHKB( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \ + k40, k41, k42, k45, k4a, k4b, k4c, k4d \ +) \ +{ \ + {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \ + {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \ + {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, KC_NO, k2d}, \ + {k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \ + {k40, k41, k42, KC_NO, KC_NO, k45, KC_NO, KC_NO, KC_NO, k49, k4a, k4b, k4c, k4d} \ +} + + void matrix_init_user(void); void matrix_scan_user(void); -- cgit v1.2.3 From 54209dc672f0c67cf21fcd7dc376c3bbae0db9ae Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 3 Jul 2016 13:44:24 +1200 Subject: Add my keymap to KC60 --- keyboards/kc60/keymaps/wigguno/Makefile | 24 +++++++++++++ keyboards/kc60/keymaps/wigguno/keymap.c | 62 ++++++++++++++++++++++++++++++++ keyboards/kc60/keymaps/wigguno/readme.md | 14 ++++++++ 3 files changed, 100 insertions(+) create mode 100644 keyboards/kc60/keymaps/wigguno/Makefile create mode 100644 keyboards/kc60/keymaps/wigguno/keymap.c create mode 100644 keyboards/kc60/keymaps/wigguno/readme.md (limited to 'keyboards') diff --git a/keyboards/kc60/keymaps/wigguno/Makefile b/keyboards/kc60/keymaps/wigguno/Makefile new file mode 100644 index 000000000..0d7d918d8 --- /dev/null +++ b/keyboards/kc60/keymaps/wigguno/Makefile @@ -0,0 +1,24 @@ + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= no # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= no # Console for debug(+400) +COMMAND_ENABLE ?= no # Commands for debug and configuration +KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE ?= yes # USB Nkey Rollover +BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality +MIDI_ENABLE ?= no # MIDI controls +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE ?= no # Audio output on port C6 + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/kc60/keymaps/wigguno/keymap.c b/keyboards/kc60/keymaps/wigguno/keymap.c new file mode 100644 index 000000000..50b1d0f98 --- /dev/null +++ b/keyboards/kc60/keymaps/wigguno/keymap.c @@ -0,0 +1,62 @@ +// This keymap was designed to close to the default kc60 layout, with some useful changes, such as adding media keys. +// It also moves the reset key off the base layer, as in the default kc60 layout for this firmware. +// I have swapped FN and RGUI as my rainbow keyset has them in the opposite order. + +#include "kc60.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Basic QWERTY + * ,-----------------------------------------------------------. + * |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | + * |-----------------------------------------------------------| + * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | + * |-----------------------------------------------------------| + * |Ctrl|Gui |Alt | Space |Alt |FN |Gui |Ctrl | + * `-----------------------------------------------------------' + */ + [0] = KEYMAP( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \ + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL \ + ), + + /* + * ,-----------------------------------------------------------. + * | ` |F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| Del | + * |-----------------------------------------------------------| + * | | | Up| | | | | | | | PS| | | | + * |-----------------------------------------------------------| + * | |Lft|Dwn|Rgt| |BL-|BL+| | | | | | | + * |-----------------------------------------------------------| + * | |Prv| PP|Nxt| | | | |Hom|End| | | + * |-----------------------------------------------------------| + * | Rst| | | BL | | | | | + * `-----------------------------------------------------------' + * PS = Print Screen + * PP = Play/Pause + */ + [1] = KEYMAP( /* Function Layer */ + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DELETE, \ + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, BL_DEC, BL_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, \ + RESET, KC_TRNS, KC_TRNS, BL_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS \ + ), +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + return MACRO_NONE; +}; diff --git a/keyboards/kc60/keymaps/wigguno/readme.md b/keyboards/kc60/keymaps/wigguno/readme.md new file mode 100644 index 000000000..55a9f60c7 --- /dev/null +++ b/keyboards/kc60/keymaps/wigguno/readme.md @@ -0,0 +1,14 @@ +Wigguno's KC60 Layout +====================== + +## Quantum MK Firmware +For the full Quantum feature list, see [the parent readme.md](/readme.md). + +## Changes from default QMK layout +The default QMK layout for KC60 does not have a function layer. It also has the bootloader-mode reset key bound. This keymap fixes both of these by adding a sensible function layer (including moving the reset key onto it, far away from the FN key). + +### Changes from the default KC60 layout +The default KC60 layout is good, but it was missing media keys. I've added previous, play/pause and next. I've also removed some of the keys from the function layer I didn't use. + +### Build +To enable NKRO you must be in the keymaps/wigguno directory when running make. -- cgit v1.2.3 From f4febd2cf7eb76ba2a76be1dfa48b7b5f4fd37ea Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 3 Jul 2016 13:49:10 +1200 Subject: Fix other KC60 Keymap Makefiles so they compile properly --- keyboards/kc60/keymaps/stanleylai/Makefile | 2 +- keyboards/kc60/keymaps/ws2812/Makefile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboards') diff --git a/keyboards/kc60/keymaps/stanleylai/Makefile b/keyboards/kc60/keymaps/stanleylai/Makefile index f7e4e2fe2..b8b2beda4 100644 --- a/keyboards/kc60/keymaps/stanleylai/Makefile +++ b/keyboards/kc60/keymaps/stanleylai/Makefile @@ -21,5 +21,5 @@ SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend NKRO_ENABLE ?= yes # USB Nkey Rollover ifndef QUANTUM_DIR - include ../../Makefile + include ../../../../Makefile endif diff --git a/keyboards/kc60/keymaps/ws2812/Makefile b/keyboards/kc60/keymaps/ws2812/Makefile index d97e4d9f8..891c44416 100644 --- a/keyboards/kc60/keymaps/ws2812/Makefile +++ b/keyboards/kc60/keymaps/ws2812/Makefile @@ -21,5 +21,5 @@ SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend NKRO_ENABLE ?= no # USB Nkey Rollover ifndef QUANTUM_DIR - include ../../Makefile + include ../../../../Makefile endif -- cgit v1.2.3 From 8149924399cf3d31d80444a10477a29f53a4990e Mon Sep 17 00:00:00 2001 From: Joshua Colbeck Date: Sun, 3 Jul 2016 12:24:44 -0500 Subject: Changed layout of left hand main layer --- keyboards/ergodox_ez/keymaps/default/keymap.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/default/keymap.c b/keyboards/ergodox_ez/keymaps/default/keymap.c index b48a54a43..cbf80c408 100644 --- a/keyboards/ergodox_ez/keymaps/default/keymap.c +++ b/keyboards/ergodox_ez/keymaps/default/keymap.c @@ -10,18 +10,18 @@ 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 | - | + * | = | 1 | 2 | 3 | 4 | 5 | ESC | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | + * | TAB | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | BkSp | A | S | D | F | G |------| |------| H | J | K | L |; / L2|' / Cmd | + * | LCTL | A | S | D | F | G |------| |------| H | J | K | L |; / L2|' / Cmd | * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| - * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * | LShift | Z | X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * | WIN |AltShf| \ | LALT | LCTL | | Up | Down | [ | ] | ~L1 | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. - * | App | LGui | | Alt |Ctrl/Esc| + * | App | LALT | | Alt |Ctrl/Esc| * ,------|------|------| |------+--------+------. * | | | Home | | PgUp | | | * | Space|Backsp|------| |------| Tab |Enter | @@ -32,12 +32,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // 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_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, + ALT_T(KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, ALL_T(KC_NO), + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, TG(SYMB), + KC_LGUI, LALT(KC_LSFT),KC_BSLS,KC_LALT,KC_LCTL, + CTL_T(KC_APP), KC_LALT, KC_HOME, KC_SPC,KC_BSPC,KC_END, // right hand -- cgit v1.2.3 From 62a92a71d05da1473a6cdf23904fc8b377d76317 Mon Sep 17 00:00:00 2001 From: Josh Colbeck Date: Sun, 3 Jul 2016 21:50:04 -0500 Subject: Revert "Changed layout of left hand main layer" This reverts commit 8149924399cf3d31d80444a10477a29f53a4990e. --- keyboards/ergodox_ez/keymaps/default/keymap.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/default/keymap.c b/keyboards/ergodox_ez/keymaps/default/keymap.c index cbf80c408..b48a54a43 100644 --- a/keyboards/ergodox_ez/keymaps/default/keymap.c +++ b/keyboards/ergodox_ez/keymaps/default/keymap.c @@ -10,18 +10,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer * * ,--------------------------------------------------. ,--------------------------------------------------. - * | = | 1 | 2 | 3 | 4 | 5 | ESC | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | + * | = | 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 | \ | + * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | LCTL | A | S | D | F | G |------| |------| H | J | K | L |; / L2|' / Cmd | + * | BkSp | A | S | D | F | G |------| |------| H | J | K | L |; / L2|' / Cmd | * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| - * | LShift | Z | X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | WIN |AltShf| \ | LALT | LCTL | | Up | Down | [ | ] | ~L1 | + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. - * | App | LALT | | Alt |Ctrl/Esc| + * | App | LGui | | Alt |Ctrl/Esc| * ,------|------|------| |------+--------+------. * | | | Home | | PgUp | | | * | Space|Backsp|------| |------| Tab |Enter | @@ -32,12 +32,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Otherwise, it needs KC_* [BASE] = KEYMAP( // layer 0 : default // left hand - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, - ALT_T(KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, ALL_T(KC_NO), - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, TG(SYMB), - KC_LGUI, LALT(KC_LSFT),KC_BSLS,KC_LALT,KC_LCTL, - CTL_T(KC_APP), KC_LALT, + 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 -- cgit v1.2.3 From eafaba6b532a2f013955599fc7aa5c599e638fd3 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 4 Jul 2016 12:01:10 -0400 Subject: Improves debounce --- keyboards/ergodox_ez/config.h | 10 ++-------- keyboards/ergodox_ez/matrix.c | 2 +- 2 files changed, 3 insertions(+), 9 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/config.h b/keyboards/ergodox_ez/config.h index 6a391ffb5..2bb56731b 100644 --- a/keyboards/ergodox_ez/config.h +++ b/keyboards/ergodox_ez/config.h @@ -27,7 +27,7 @@ along with this program. If not, see . #define DEVICE_VER 0x0001 #define MANUFACTURER ErgoDox EZ #define PRODUCT ErgoDox EZ -#define DESCRIPTION t.m.k. keyboard firmware for Ergodox +#define DESCRIPTION QMK keyboard firmware for Ergodox EZ /* key matrix size */ #define MATRIX_ROWS 14 @@ -40,12 +40,6 @@ along with this program. If not, see . #define TAPPING_TOGGLE 1 -#define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } -#define ROWS (int []){ D0, D5, B5, B6 } - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION COL2ROW - /* define if matrix has ghost */ //#define MATRIX_HAS_GHOST @@ -53,7 +47,7 @@ along with this program. If not, see . #define BACKLIGHT_LEVELS 3 /* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 2 +#define DEBOUNCE 5 #define TAPPING_TERM 200 #define IGNORE_MOD_TAP_INTERRUPT // this makes it possible to do rolling combos (zx) with keys that convert to other keys on hold (z becomes ctrl when you hold it, and when this option isn't enabled, z rapidly followed by x actually sends Ctrl-x. That's bad.) diff --git a/keyboards/ergodox_ez/matrix.c b/keyboards/ergodox_ez/matrix.c index b87fddbad..1bacff2a5 100644 --- a/keyboards/ergodox_ez/matrix.c +++ b/keyboards/ergodox_ez/matrix.c @@ -179,7 +179,7 @@ uint8_t matrix_scan(void) if (debouncing) { if (--debouncing) { - _delay_ms(1); + _delay_ms(2); } else { for (uint8_t i = 0; i < MATRIX_ROWS; i++) { matrix[i] = matrix_debouncing[i]; -- cgit v1.2.3 From 86a7b060efb6f94115f5b1f6d9e3703aa3d6b392 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 4 Jul 2016 12:13:41 -0400 Subject: Adds wait to i2c (debounce) --- keyboards/ergodox_ez/matrix.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/matrix.c b/keyboards/ergodox_ez/matrix.c index 1bacff2a5..9c1efa1d0 100644 --- a/keyboards/ergodox_ez/matrix.c +++ b/keyboards/ergodox_ez/matrix.c @@ -27,7 +27,7 @@ along with this program. If not, see . #include #include #include -#include +#include "wait.h" #include "action_layer.h" #include "print.h" #include "debug.h" @@ -166,6 +166,7 @@ uint8_t matrix_scan(void) for (uint8_t i = 0; i < MATRIX_ROWS; i++) { select_row(i); + wait_us(30); // without this wait read unstable value. matrix_row_t cols = read_cols(i); if (matrix_debouncing[i] != cols) { matrix_debouncing[i] = cols; @@ -179,7 +180,7 @@ uint8_t matrix_scan(void) if (debouncing) { if (--debouncing) { - _delay_ms(2); + wait_us(1); } else { for (uint8_t i = 0; i < MATRIX_ROWS; i++) { matrix[i] = matrix_debouncing[i]; @@ -267,7 +268,6 @@ static matrix_row_t read_cols(uint8_t row) return data; } } else { - _delay_us(30); // without this wait read unstable value. // read from teensy return (PINF&(1<<0) ? 0 : (1<<0)) | -- cgit v1.2.3 From 1650adf29ab678ccc331e9f1dd48ccd32bd5cc8c Mon Sep 17 00:00:00 2001 From: Josh Colbeck Date: Mon, 4 Jul 2016 12:00:06 -0500 Subject: Added new keymap --- keyboards/ergodox_ez/keymaps/josh/keymap.c | 191 +++++++++++++++++++++++++++++ 1 file changed, 191 insertions(+) create mode 100644 keyboards/ergodox_ez/keymaps/josh/keymap.c (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/josh/keymap.c b/keyboards/ergodox_ez/keymaps/josh/keymap.c new file mode 100644 index 000000000..4233f7f69 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/josh/keymap.c @@ -0,0 +1,191 @@ +#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 + +//macros +#define CRT_SFT_T 100 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | ESC | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | TAB | Q | W | E | R | T | Meh | | Meh | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | LCTL | A | S | D | F | G |------| |------| H | J | K | L |; / L2|' / CTL | + * |--------+------+------+------+------+------| ~L1 | | ~L1 |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | WIN | ` | LALT | LCTL |AltShf| |AltShf| Left | Down | Up | Right | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | App | LALT | | Alt | CAPS | + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space|Backsp|------| |------| Delete |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_ESC, + ALT_T(KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, ALL_T(KC_NO), + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_FN1, + KC_LGUI, KC_GRV, KC_LALT,KC_LCTL,LALT(KC_LSFT), + CTL_T(KC_APP), KC_LALT, + KC_HOME, + KC_SPC,KC_BSPC,KC_END, + // right hand + M(CRT_SFT_T), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + MEH_T(KC_NO),KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),CTL_T(KC_QUOT), + KC_FN1, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, + LALT(KC_LSFT),KC_LEFT,KC_DOWN,KC_UP, KC_RIGHT, + KC_LALT, KC_CAPS, + KC_PGUP, + KC_PGDN,KC_DEL, KC_ENT + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * |Version | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | CALC | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Left | Down | Up | Right| | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + M(0), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, + 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_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_CALC, + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LEFT, KC_DOWN,KC_UP, KC_RIGHT,KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, 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 +), +}; + +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) { + SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); + } + break; + case CRT_SFT_T: + if (record->event.pressed) { + return MACRO(D(LCTL), D(LSFT), T(T), END); + } + return MACRO(U(LCTL), U(LSFT), END); + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } + +}; -- cgit v1.2.3 From 497b92c3bd3ee480e59d08f2a6fb1b780172681c Mon Sep 17 00:00:00 2001 From: Josh Colbeck Date: Mon, 4 Jul 2016 15:22:13 -0500 Subject: Added macro and readme macros to for often used eclipse shortcuts --- keyboards/ergodox_ez/keymaps/josh/keymap.c | 50 ++++++++++++++++++----------- keyboards/ergodox_ez/keymaps/josh/readme.md | 8 +++++ 2 files changed, 40 insertions(+), 18 deletions(-) create mode 100644 keyboards/ergodox_ez/keymaps/josh/readme.md (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/josh/keymap.c b/keyboards/ergodox_ez/keymaps/josh/keymap.c index 4233f7f69..4ad229182 100644 --- a/keyboards/ergodox_ez/keymaps/josh/keymap.c +++ b/keyboards/ergodox_ez/keymaps/josh/keymap.c @@ -7,21 +7,23 @@ #define MDIA 2 // media keys //macros -#define CRT_SFT_T 100 +#define CTL_SFT_T 100 +#define CTL_SFT_G 101 +#define CTL_ALT_T 102 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer * * ,--------------------------------------------------. ,--------------------------------------------------. - * | = | 1 | 2 | 3 | 4 | 5 | ESC | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | + * | = | 1 | 2 | 3 | 4 | 5 | ESC | | M 100| 6 | 7 | 8 | 9 | 0 | - | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | TAB | Q | W | E | R | T | Meh | | Meh | Y | U | I | O | P | \ | + * |TAB /Alt| Q | W | E | R | T | Meh | | Meh | Y | U | I | O | P |\ / ALT | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | LCTL | A | S | D | F | G |------| |------| H | J | K | L |; / L2|' / CTL | * |--------+------+------+------+------+------| ~L1 | | ~L1 |------+------+------+------+------+--------| * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | WIN | ` | LALT | LCTL |AltShf| |AltShf| Left | Down | Up | Right | + * | WIN | ` | M 102| M 101|AltShf| |AltShf| Left | Down | Up | Right | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | App | LALT | | Alt | CAPS | @@ -39,12 +41,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ALT_T(KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, ALL_T(KC_NO), KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_FN1, - KC_LGUI, KC_GRV, KC_LALT,KC_LCTL,LALT(KC_LSFT), + KC_LGUI, KC_GRV, M(CTL_ALT_T),M(CTL_SFT_G),LALT(KC_LSFT), CTL_T(KC_APP), KC_LALT, KC_HOME, KC_SPC,KC_BSPC,KC_END, // right hand - M(CRT_SFT_T), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + M(CTL_SFT_T),KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, MEH_T(KC_NO),KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),CTL_T(KC_QUOT), KC_FN1, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, @@ -145,19 +147,31 @@ const uint16_t PROGMEM fn_actions[] = { const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // MACRODOWN only works in this function - switch(id) { + switch(id) { case 0: - if (record->event.pressed) { - SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); - } - break; - case CRT_SFT_T: - if (record->event.pressed) { - return MACRO(D(LCTL), D(LSFT), T(T), END); - } - return MACRO(U(LCTL), U(LSFT), END); - break; - } + if (record->event.pressed) { + SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); + } + break; + case CTL_SFT_T: + if (record->event.pressed) { + return MACRO(D(LCTL), D(LSFT), T(T), END); + } + return MACRO(U(LCTL), U(LSFT), END); + break; + case CTL_SFT_G: + if (record->event.pressed) { + return MACRO(D(LCTL), D(LSFT), T(G), END); + } + return MACRO(U(LCTL), U(LSFT), END); + break; + case CTL_ALT_T: + if (record->event.pressed) { + return MACRO(D(LCTL), D(LALT), T(T), END); + } + return MACRO(U(LCTL), U(LALT), END); + break; + } return MACRO_NONE; }; diff --git a/keyboards/ergodox_ez/keymaps/josh/readme.md b/keyboards/ergodox_ez/keymaps/josh/readme.md new file mode 100644 index 000000000..cee19d47e --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/josh/readme.md @@ -0,0 +1,8 @@ +Layout is based on the default layout that comes on the ergodox infinity. Focused mostly on making ctl and alt easy to reach. I spend most my day working in Eclipse which has just so many 3 key shortcuts. + +* Removed numpad keys from symbol layer (I don't use them) +* Added arrow keys under h, j, k, l on symbol layer. vi movement keys! +* Added a few macros for eclipse hotkeys that I used all the time +* Added calc button on symbol layer +* tap vs hold on tab and \. Gives alt, ctl and shift on both sides of the keyboard + -- cgit v1.2.3 From 94d3159d9dbdf711b830c6d7c5a53324097be0a5 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 4 Jul 2016 22:06:22 -0400 Subject: correct break/return order for planck and preonic defaults --- keyboards/planck/keymaps/default/keymap.c | 16 ++++++++-------- keyboards/preonic/keymaps/default/keymap.c | 12 ++++++------ 2 files changed, 14 insertions(+), 14 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/default/keymap.c b/keyboards/planck/keymaps/default/keymap.c index 9b4b33f82..5f71ae7d1 100644 --- a/keyboards/planck/keymaps/default/keymap.c +++ b/keyboards/planck/keymaps/default/keymap.c @@ -197,8 +197,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #endif persistant_default_layer_set(1UL<<_QWERTY); } - break; return false; + break; case COLEMAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE @@ -206,8 +206,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #endif persistant_default_layer_set(1UL<<_COLEMAK); } - break; return false; + break; case DVORAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE @@ -215,8 +215,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #endif persistant_default_layer_set(1UL<<_DVORAK); } - break; return false; + break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); @@ -225,8 +225,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { layer_off(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJUST); } - break; return false; + break; case RAISE: if (record->event.pressed) { layer_on(_RAISE); @@ -235,8 +235,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { layer_off(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJUST); } - break; return false; + break; case BACKLIT: if (record->event.pressed) { register_code(KC_RSFT); @@ -246,8 +246,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } else { unregister_code(KC_RSFT); } - break; return false; + break; case PLOVER: if (record->event.pressed) { #ifdef AUDIO_ENABLE @@ -265,8 +265,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { keymap_config.nkro = 1; eeconfig_update_keymap(keymap_config.raw); } - break; return false; + break; case EXT_PLV: if (record->event.pressed) { #ifdef AUDIO_ENABLE @@ -274,8 +274,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #endif layer_off(_PLOVER); } - break; return false; + break; } return true; } diff --git a/keyboards/preonic/keymaps/default/keymap.c b/keyboards/preonic/keymaps/default/keymap.c index 6d8ef634d..9a957f7ee 100644 --- a/keyboards/preonic/keymaps/default/keymap.c +++ b/keyboards/preonic/keymaps/default/keymap.c @@ -191,8 +191,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #endif persistant_default_layer_set(1UL<<_QWERTY); } - break; return false; + break; case COLEMAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE @@ -200,8 +200,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #endif persistant_default_layer_set(1UL<<_COLEMAK); } - break; return false; + break; case DVORAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE @@ -209,8 +209,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #endif persistant_default_layer_set(1UL<<_DVORAK); } - break; return false; + break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); @@ -219,8 +219,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { layer_off(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJUST); } - break; return false; + break; case RAISE: if (record->event.pressed) { layer_on(_RAISE); @@ -229,8 +229,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { layer_off(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJUST); } - break; return false; + break; case BACKLIT: if (record->event.pressed) { register_code(KC_RSFT); @@ -240,8 +240,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } else { unregister_code(KC_RSFT); } - break; return false; + break; } return true; }; -- cgit v1.2.3 From b11657d1c8a3360779b6b412806d89ca3175fc5f Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Tue, 5 Jul 2016 13:48:12 +0300 Subject: Suprojects for ChibiOS testing --- keyboards/chibios_test/Makefile | 14 + keyboards/chibios_test/chibios_test.c | 1 + keyboards/chibios_test/chibios_test.h | 6 + keyboards/chibios_test/config.h | 76 +++ keyboards/chibios_test/keymaps/default/keymap.c | 25 + keyboards/chibios_test/stm32_f072_onekey/Makefile | 41 ++ .../stm32_f072_onekey/bootloader_defs.h | 7 + keyboards/chibios_test/stm32_f072_onekey/chconf.h | 524 +++++++++++++++++++++ keyboards/chibios_test/stm32_f072_onekey/config.h | 7 + keyboards/chibios_test/stm32_f072_onekey/halconf.h | 353 ++++++++++++++ keyboards/chibios_test/stm32_f072_onekey/led.c | 34 ++ keyboards/chibios_test/stm32_f072_onekey/matrix.c | 163 +++++++ keyboards/chibios_test/stm32_f072_onekey/mcuconf.h | 171 +++++++ .../stm32_f072_onekey/stm32_f072_onekey.c | 1 + .../stm32_f072_onekey/stm32_f072_onekey.h | 5 + keyboards/chibios_test/stm32_f103_onekey/Makefile | 52 ++ .../boards/GENERIC_STM32_F103/board.c | 49 ++ .../boards/GENERIC_STM32_F103/board.h | 166 +++++++ .../boards/GENERIC_STM32_F103/board.mk | 5 + .../GENERIC_STM32_F103/mini_stm32_mapping.png | Bin 0 -> 162908 bytes .../boards/maple_mini_mapping.png | Bin 0 -> 237977 bytes .../stm32_f103_onekey/bootloader_defs.h | 10 + keyboards/chibios_test/stm32_f103_onekey/chconf.h | 524 +++++++++++++++++++++ keyboards/chibios_test/stm32_f103_onekey/config.h | 6 + keyboards/chibios_test/stm32_f103_onekey/flash.sh | 2 + keyboards/chibios_test/stm32_f103_onekey/halconf.h | 353 ++++++++++++++ .../ld/STM32F103x8_stm32duino_bootloader.ld | 88 ++++ keyboards/chibios_test/stm32_f103_onekey/led.c | 43 ++ keyboards/chibios_test/stm32_f103_onekey/matrix.c | 177 +++++++ keyboards/chibios_test/stm32_f103_onekey/mcuconf.h | 209 ++++++++ .../stm32_f103_onekey/stm32_f103_onekey.c | 1 + .../stm32_f103_onekey/stm32_f103_onekey.h | 4 + keyboards/chibios_test/teensy_lc_onekey/Makefile | 49 ++ .../chibios_test/teensy_lc_onekey/Makefile.3.0 | 77 +++ .../chibios_test/teensy_lc_onekey/Makefile.3.2 | 77 +++ keyboards/chibios_test/teensy_lc_onekey/chconf.h | 524 +++++++++++++++++++++ keyboards/chibios_test/teensy_lc_onekey/config.h | 6 + keyboards/chibios_test/teensy_lc_onekey/halconf.h | 187 ++++++++ .../chibios_test/teensy_lc_onekey/instructions.md | 82 ++++ .../chibios_test/teensy_lc_onekey/ld/MKL26Z64.ld | 105 +++++ keyboards/chibios_test/teensy_lc_onekey/led.c | 32 ++ keyboards/chibios_test/teensy_lc_onekey/matrix.c | 163 +++++++ keyboards/chibios_test/teensy_lc_onekey/mcuconf.h | 55 +++ .../teensy_lc_onekey/teensy_lc_onekey.c | 1 + .../teensy_lc_onekey/teensy_lc_onekey.h | 4 + keyboards/stm32_f072_onekey/Makefile | 50 -- keyboards/stm32_f072_onekey/bootloader_defs.h | 7 - keyboards/stm32_f072_onekey/chconf.h | 524 --------------------- keyboards/stm32_f072_onekey/config.h | 76 --- keyboards/stm32_f072_onekey/halconf.h | 353 -------------- .../stm32_f072_onekey/keymaps/default/keymap.c | 25 - keyboards/stm32_f072_onekey/led.c | 34 -- keyboards/stm32_f072_onekey/matrix.c | 163 ------- keyboards/stm32_f072_onekey/mcuconf.h | 171 ------- keyboards/stm32_f072_onekey/stm32_f072_onekey.c | 1 - keyboards/stm32_f072_onekey/stm32_f072_onekey.h | 5 - keyboards/stm32_f103_onekey/Makefile | 64 --- .../boards/GENERIC_STM32_F103/board.c | 49 -- .../boards/GENERIC_STM32_F103/board.h | 166 ------- .../boards/GENERIC_STM32_F103/board.mk | 5 - .../GENERIC_STM32_F103/mini_stm32_mapping.png | Bin 162908 -> 0 bytes .../boards/maple_mini_mapping.png | Bin 237977 -> 0 bytes keyboards/stm32_f103_onekey/bootloader_defs.h | 10 - keyboards/stm32_f103_onekey/chconf.h | 524 --------------------- keyboards/stm32_f103_onekey/config.h | 75 --- keyboards/stm32_f103_onekey/flash.sh | 2 - keyboards/stm32_f103_onekey/halconf.h | 353 -------------- .../stm32_f103_onekey/keymaps/default/keymap.c | 25 - .../ld/STM32F103x8_stm32duino_bootloader.ld | 88 ---- keyboards/stm32_f103_onekey/led.c | 43 -- keyboards/stm32_f103_onekey/matrix.c | 177 ------- keyboards/stm32_f103_onekey/mcuconf.h | 209 -------- keyboards/stm32_f103_onekey/stm32_f103_onekey.c | 1 - keyboards/stm32_f103_onekey/stm32_f103_onekey.h | 4 - keyboards/teensy_lc_onekey/Makefile | 62 --- keyboards/teensy_lc_onekey/Makefile.3.0 | 77 --- keyboards/teensy_lc_onekey/Makefile.3.2 | 77 --- keyboards/teensy_lc_onekey/chconf.h | 524 --------------------- keyboards/teensy_lc_onekey/config.h | 75 --- keyboards/teensy_lc_onekey/halconf.h | 187 -------- keyboards/teensy_lc_onekey/instructions.md | 82 ---- .../teensy_lc_onekey/keymaps/default/keymap.c | 32 -- keyboards/teensy_lc_onekey/ld/MKL26Z64.ld | 105 ----- keyboards/teensy_lc_onekey/led.c | 32 -- keyboards/teensy_lc_onekey/matrix.c | 163 ------- keyboards/teensy_lc_onekey/mcuconf.h | 55 --- keyboards/teensy_lc_onekey/teensy_lc_onekey.c | 1 - keyboards/teensy_lc_onekey/teensy_lc_onekey.h | 4 - 88 files changed, 4479 insertions(+), 4680 deletions(-) create mode 100644 keyboards/chibios_test/Makefile create mode 100644 keyboards/chibios_test/chibios_test.c create mode 100644 keyboards/chibios_test/chibios_test.h create mode 100644 keyboards/chibios_test/config.h create mode 100644 keyboards/chibios_test/keymaps/default/keymap.c create mode 100644 keyboards/chibios_test/stm32_f072_onekey/Makefile create mode 100644 keyboards/chibios_test/stm32_f072_onekey/bootloader_defs.h create mode 100644 keyboards/chibios_test/stm32_f072_onekey/chconf.h create mode 100644 keyboards/chibios_test/stm32_f072_onekey/config.h create mode 100644 keyboards/chibios_test/stm32_f072_onekey/halconf.h create mode 100644 keyboards/chibios_test/stm32_f072_onekey/led.c create mode 100644 keyboards/chibios_test/stm32_f072_onekey/matrix.c create mode 100644 keyboards/chibios_test/stm32_f072_onekey/mcuconf.h create mode 100644 keyboards/chibios_test/stm32_f072_onekey/stm32_f072_onekey.c create mode 100644 keyboards/chibios_test/stm32_f072_onekey/stm32_f072_onekey.h create mode 100644 keyboards/chibios_test/stm32_f103_onekey/Makefile create mode 100644 keyboards/chibios_test/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.c create mode 100644 keyboards/chibios_test/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.h create mode 100644 keyboards/chibios_test/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.mk create mode 100644 keyboards/chibios_test/stm32_f103_onekey/boards/GENERIC_STM32_F103/mini_stm32_mapping.png create mode 100644 keyboards/chibios_test/stm32_f103_onekey/boards/maple_mini_mapping.png create mode 100644 keyboards/chibios_test/stm32_f103_onekey/bootloader_defs.h create mode 100644 keyboards/chibios_test/stm32_f103_onekey/chconf.h create mode 100644 keyboards/chibios_test/stm32_f103_onekey/config.h create mode 100755 keyboards/chibios_test/stm32_f103_onekey/flash.sh create mode 100644 keyboards/chibios_test/stm32_f103_onekey/halconf.h create mode 100644 keyboards/chibios_test/stm32_f103_onekey/ld/STM32F103x8_stm32duino_bootloader.ld create mode 100644 keyboards/chibios_test/stm32_f103_onekey/led.c create mode 100644 keyboards/chibios_test/stm32_f103_onekey/matrix.c create mode 100644 keyboards/chibios_test/stm32_f103_onekey/mcuconf.h create mode 100644 keyboards/chibios_test/stm32_f103_onekey/stm32_f103_onekey.c create mode 100644 keyboards/chibios_test/stm32_f103_onekey/stm32_f103_onekey.h create mode 100644 keyboards/chibios_test/teensy_lc_onekey/Makefile create mode 100644 keyboards/chibios_test/teensy_lc_onekey/Makefile.3.0 create mode 100644 keyboards/chibios_test/teensy_lc_onekey/Makefile.3.2 create mode 100644 keyboards/chibios_test/teensy_lc_onekey/chconf.h create mode 100644 keyboards/chibios_test/teensy_lc_onekey/config.h create mode 100644 keyboards/chibios_test/teensy_lc_onekey/halconf.h create mode 100644 keyboards/chibios_test/teensy_lc_onekey/instructions.md create mode 100644 keyboards/chibios_test/teensy_lc_onekey/ld/MKL26Z64.ld create mode 100644 keyboards/chibios_test/teensy_lc_onekey/led.c create mode 100644 keyboards/chibios_test/teensy_lc_onekey/matrix.c create mode 100644 keyboards/chibios_test/teensy_lc_onekey/mcuconf.h create mode 100644 keyboards/chibios_test/teensy_lc_onekey/teensy_lc_onekey.c create mode 100644 keyboards/chibios_test/teensy_lc_onekey/teensy_lc_onekey.h delete mode 100644 keyboards/stm32_f072_onekey/Makefile delete mode 100644 keyboards/stm32_f072_onekey/bootloader_defs.h delete mode 100644 keyboards/stm32_f072_onekey/chconf.h delete mode 100644 keyboards/stm32_f072_onekey/config.h delete mode 100644 keyboards/stm32_f072_onekey/halconf.h delete mode 100644 keyboards/stm32_f072_onekey/keymaps/default/keymap.c delete mode 100644 keyboards/stm32_f072_onekey/led.c delete mode 100644 keyboards/stm32_f072_onekey/matrix.c delete mode 100644 keyboards/stm32_f072_onekey/mcuconf.h delete mode 100644 keyboards/stm32_f072_onekey/stm32_f072_onekey.c delete mode 100644 keyboards/stm32_f072_onekey/stm32_f072_onekey.h delete mode 100644 keyboards/stm32_f103_onekey/Makefile delete mode 100644 keyboards/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.c delete mode 100644 keyboards/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.h delete mode 100644 keyboards/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.mk delete mode 100644 keyboards/stm32_f103_onekey/boards/GENERIC_STM32_F103/mini_stm32_mapping.png delete mode 100644 keyboards/stm32_f103_onekey/boards/maple_mini_mapping.png delete mode 100644 keyboards/stm32_f103_onekey/bootloader_defs.h delete mode 100644 keyboards/stm32_f103_onekey/chconf.h delete mode 100644 keyboards/stm32_f103_onekey/config.h delete mode 100755 keyboards/stm32_f103_onekey/flash.sh delete mode 100644 keyboards/stm32_f103_onekey/halconf.h delete mode 100644 keyboards/stm32_f103_onekey/keymaps/default/keymap.c delete mode 100644 keyboards/stm32_f103_onekey/ld/STM32F103x8_stm32duino_bootloader.ld delete mode 100644 keyboards/stm32_f103_onekey/led.c delete mode 100644 keyboards/stm32_f103_onekey/matrix.c delete mode 100644 keyboards/stm32_f103_onekey/mcuconf.h delete mode 100644 keyboards/stm32_f103_onekey/stm32_f103_onekey.c delete mode 100644 keyboards/stm32_f103_onekey/stm32_f103_onekey.h delete mode 100644 keyboards/teensy_lc_onekey/Makefile delete mode 100644 keyboards/teensy_lc_onekey/Makefile.3.0 delete mode 100644 keyboards/teensy_lc_onekey/Makefile.3.2 delete mode 100644 keyboards/teensy_lc_onekey/chconf.h delete mode 100644 keyboards/teensy_lc_onekey/config.h delete mode 100644 keyboards/teensy_lc_onekey/halconf.h delete mode 100644 keyboards/teensy_lc_onekey/instructions.md delete mode 100644 keyboards/teensy_lc_onekey/keymaps/default/keymap.c delete mode 100644 keyboards/teensy_lc_onekey/ld/MKL26Z64.ld delete mode 100644 keyboards/teensy_lc_onekey/led.c delete mode 100644 keyboards/teensy_lc_onekey/matrix.c delete mode 100644 keyboards/teensy_lc_onekey/mcuconf.h delete mode 100644 keyboards/teensy_lc_onekey/teensy_lc_onekey.c delete mode 100644 keyboards/teensy_lc_onekey/teensy_lc_onekey.h (limited to 'keyboards') diff --git a/keyboards/chibios_test/Makefile b/keyboards/chibios_test/Makefile new file mode 100644 index 000000000..d9f2b8b83 --- /dev/null +++ b/keyboards/chibios_test/Makefile @@ -0,0 +1,14 @@ +SUBPROJECT_DEFAULT = stm32_f072_onekey + +#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +MOUSEKEY_ENABLE ?= yes # Mouse keys +EXTRAKEY_ENABLE ?= yes # Audio control and System control +CONSOLE_ENABLE ?= yes # Console for debug +COMMAND_ENABLE ?= yes # Commands for debug and configuration +SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend +NKRO_ENABLE ?= yes # USB Nkey Rollover +CUSTOM_MATRIX ?= yes # Custom matrix file + +ifndef QUANTUM_DIR + include ../../Makefile +endif \ No newline at end of file diff --git a/keyboards/chibios_test/chibios_test.c b/keyboards/chibios_test/chibios_test.c new file mode 100644 index 000000000..efe2d4a5d --- /dev/null +++ b/keyboards/chibios_test/chibios_test.c @@ -0,0 +1 @@ +#include "chibios_test.h" diff --git a/keyboards/chibios_test/chibios_test.h b/keyboards/chibios_test/chibios_test.h new file mode 100644 index 000000000..25b031771 --- /dev/null +++ b/keyboards/chibios_test/chibios_test.h @@ -0,0 +1,6 @@ +#ifndef KEYBOARDS_CHIBIOS_TEST_CHIBIOS_TEST_H_ +#define KEYBOARDS_CHIBIOS_TEST_CHIBIOS_TEST_H_ + +#include "quantum.h" + +#endif /* KEYBOARDS_CHIBIOS_TEST_CHIBIOS_TEST_H_ */ diff --git a/keyboards/chibios_test/config.h b/keyboards/chibios_test/config.h new file mode 100644 index 000000000..210f15067 --- /dev/null +++ b/keyboards/chibios_test/config.h @@ -0,0 +1,76 @@ +/* +Copyright 2015 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6464 +#define DEVICE_VER 0x0001 +/* in python2: list(u"whatever".encode('utf-16-le')) */ +/* at most 32 characters or the ugly hack in usb_main.c borks */ +#define MANUFACTURER "QMK" +#define USBSTR_MANUFACTURER 'T', '\x00', 'M', '\x00', 'K', '\x00', ' ', '\x00', '\xc6', '\x00' +#define PRODUCT "ChibiOS QMK test" +#define USBSTR_PRODUCT 'C', '\x00', 'h', '\x00', 'i', '\x00', 'b', '\x00', 'i', '\x00', 'O', '\x00', 'S', '\x00', ' ', '\x00', 'Q', '\x00', 'M', '\x00', 'K', '\x00', ' ', '\x00', 't', '\x00', 'e', '\x00', 's', '\x00', 't', '\x00' +#define DESCRIPTION "QMK keyboard firmware test for ChibiOS" + +/* key matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 1 +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + + + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/chibios_test/keymaps/default/keymap.c b/keyboards/chibios_test/keymaps/default/keymap.c new file mode 100644 index 000000000..239d70007 --- /dev/null +++ b/keyboards/chibios_test/keymaps/default/keymap.c @@ -0,0 +1,25 @@ +/* +Copyright 2012,2013 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "chibios_test.h" + +const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + {{KC_CAPS}}, // test with KC_CAPS, KC_A, KC_BTLD +}; + +const uint16_t fn_actions[] = { +}; diff --git a/keyboards/chibios_test/stm32_f072_onekey/Makefile b/keyboards/chibios_test/stm32_f072_onekey/Makefile new file mode 100644 index 000000000..eae38c4b2 --- /dev/null +++ b/keyboards/chibios_test/stm32_f072_onekey/Makefile @@ -0,0 +1,41 @@ +# project specific files +SRC = matrix.c \ + led.c + +## chip/board settings +# the next two should match the directories in +# /os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) +MCU_FAMILY = STM32 +MCU_SERIES = STM32F0xx +# linker script to use +# it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ +# or /ld/ +MCU_LDSCRIPT = STM32F072xB +# startup code to use +# is should exist in /os/common/ports/ARMCMx/compilers/GCC/mk/ +MCU_STARTUP = stm32f0xx +# it should exist either in /os/hal/boards/ +# or /boards +BOARD = ST_STM32F072B_DISCOVERY +# Cortex version +# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4 +MCU = cortex-m0 +# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 +ARMV = 6 +# If you want to be able to jump to bootloader from firmware on STM32 MCUs, +# set the correct BOOTLOADER_ADDRESS. Either set it here, or define it in +# ./bootloader_defs.h or in ./boards//bootloader_defs.h (if you have +# a custom board definition that you plan to reuse). +# If you're not setting it here, leave it commented out. +# It is chip dependent, the correct number can be looked up here (page 175): +# http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf +# This also requires a patch to chibios: +# /tmk_core/tool/chibios/ch-bootloader-jump.patch +#STM32_BOOTLOADER_ADDRESS = 0x1FFFC800 + +# Build Options +# comment out to disable the options. +# +ifndef QUANTUM_DIR + include ../../../Makefile +endif diff --git a/keyboards/chibios_test/stm32_f072_onekey/bootloader_defs.h b/keyboards/chibios_test/stm32_f072_onekey/bootloader_defs.h new file mode 100644 index 000000000..02c48c4e6 --- /dev/null +++ b/keyboards/chibios_test/stm32_f072_onekey/bootloader_defs.h @@ -0,0 +1,7 @@ +/* Address for jumping to bootloader on STM32 chips. */ +/* It is chip dependent, the correct number can be looked up here (page 175): + * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf + * This also requires a patch to chibios: + * /tmk_core/tool/chibios/ch-bootloader-jump.patch + */ +#define STM32_BOOTLOADER_ADDRESS 0x1FFFC800 diff --git a/keyboards/chibios_test/stm32_f072_onekey/chconf.h b/keyboards/chibios_test/stm32_f072_onekey/chconf.h new file mode 100644 index 000000000..99fa8ce39 --- /dev/null +++ b/keyboards/chibios_test/stm32_f072_onekey/chconf.h @@ -0,0 +1,524 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file templates/chconf.h + * @brief Configuration file template. + * @details A copy of this file must be placed in each project directory, it + * contains the application specific kernel settings. + * + * @addtogroup config + * @details Kernel related settings and hooks. + * @{ + */ + +#ifndef CHCONF_H +#define CHCONF_H + +#define _CHIBIOS_RT_CONF_ + +/*===========================================================================*/ +/** + * @name System timers settings + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System time counter resolution. + * @note Allowed values are 16 or 32 bits. + */ +#define CH_CFG_ST_RESOLUTION 32 + +/** + * @brief System tick frequency. + * @details Frequency of the system timer that drives the system ticks. This + * setting also defines the system tick time unit. + */ +#define CH_CFG_ST_FREQUENCY 10000 + +/** + * @brief Time delta constant for the tick-less mode. + * @note If this value is zero then the system uses the classic + * periodic tick. This value represents the minimum number + * of ticks that is safe to specify in a timeout directive. + * The value one is not valid, timeouts are rounded up to + * this value. + */ +#define CH_CFG_ST_TIMEDELTA 2 + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel parameters and options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Round robin interval. + * @details This constant is the number of system ticks allowed for the + * threads before preemption occurs. Setting this value to zero + * disables the preemption for threads with equal priority and the + * round robin becomes cooperative. Note that higher priority + * threads can still preempt, the kernel is always preemptive. + * @note Disabling the round robin preemption makes the kernel more compact + * and generally faster. + * @note The round robin preemption is not supported in tickless mode and + * must be set to zero in that case. + */ +#define CH_CFG_TIME_QUANTUM 0 + +/** + * @brief Managed RAM size. + * @details Size of the RAM area to be managed by the OS. If set to zero + * then the whole available RAM is used. The core memory is made + * available to the heap allocator and/or can be used directly through + * the simplified core memory allocator. + * + * @note In order to let the OS manage the whole RAM the linker script must + * provide the @p __heap_base__ and @p __heap_end__ symbols. + * @note Requires @p CH_CFG_USE_MEMCORE. + */ +#define CH_CFG_MEMCORE_SIZE 0 + +/** + * @brief Idle thread automatic spawn suppression. + * @details When this option is activated the function @p chSysInit() + * does not spawn the idle thread. The application @p main() + * function becomes the idle thread and must implement an + * infinite loop. + */ +#define CH_CFG_NO_IDLE_THREAD FALSE + +/* Use __WFI in the idle thread for waiting. Does lower the power + * consumption. */ +#define CORTEX_ENABLE_WFI_IDLE TRUE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Performance options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief OS optimization. + * @details If enabled then time efficient rather than space efficient code + * is used when two possible implementations exist. + * + * @note This is not related to the compiler optimization options. + * @note The default is @p TRUE. + */ +#define CH_CFG_OPTIMIZE_SPEED FALSE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Subsystem options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Time Measurement APIs. + * @details If enabled then the time measurement APIs are included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_TM FALSE + +/** + * @brief Threads registry APIs. + * @details If enabled then the registry APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_REGISTRY TRUE + +/** + * @brief Threads synchronization APIs. + * @details If enabled then the @p chThdWait() function is included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_WAITEXIT TRUE + +/** + * @brief Semaphores APIs. + * @details If enabled then the Semaphores APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_SEMAPHORES TRUE + +/** + * @brief Semaphores queuing mode. + * @details If enabled then the threads are enqueued on semaphores by + * priority rather than in FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE + +/** + * @brief Mutexes APIs. + * @details If enabled then the mutexes APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MUTEXES TRUE + +/** + * @brief Enables recursive behavior on mutexes. + * @note Recursive mutexes are heavier and have an increased + * memory footprint. + * + * @note The default is @p FALSE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE + +/** + * @brief Conditional Variables APIs. + * @details If enabled then the conditional variables APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#define CH_CFG_USE_CONDVARS TRUE + +/** + * @brief Conditional Variables APIs with timeout. + * @details If enabled then the conditional variables APIs with timeout + * specification are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_CONDVARS. + */ +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE + +/** + * @brief Events Flags APIs. + * @details If enabled then the event flags APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_EVENTS TRUE + +/** + * @brief Events Flags APIs with timeout. + * @details If enabled then the events APIs with timeout specification + * are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_EVENTS. + */ +#define CH_CFG_USE_EVENTS_TIMEOUT TRUE + +/** + * @brief Synchronous Messages APIs. + * @details If enabled then the synchronous messages APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MESSAGES TRUE + +/** + * @brief Synchronous Messages queuing mode. + * @details If enabled then messages are served by priority rather than in + * FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_MESSAGES. + */ +#define CH_CFG_USE_MESSAGES_PRIORITY FALSE + +/** + * @brief Mailboxes APIs. + * @details If enabled then the asynchronous messages (mailboxes) APIs are + * included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#define CH_CFG_USE_MAILBOXES TRUE + +/** + * @brief Core Memory Manager APIs. + * @details If enabled then the core memory manager APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MEMCORE FALSE + +/** + * @brief Heap Allocator APIs. + * @details If enabled then the memory heap allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or + * @p CH_CFG_USE_SEMAPHORES. + * @note Mutexes are recommended. + */ +#define CH_CFG_USE_HEAP FALSE + +/** + * @brief Memory Pools Allocator APIs. + * @details If enabled then the memory pools allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MEMPOOLS FALSE + +/** + * @brief Dynamic Threads APIs. + * @details If enabled then the dynamic threads creation APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_WAITEXIT. + * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. + */ +#define CH_CFG_USE_DYNAMIC FALSE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Debug options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Debug option, kernel statistics. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_STATISTICS FALSE + +/** + * @brief Debug option, system state check. + * @details If enabled the correct call protocol for system APIs is checked + * at runtime. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_SYSTEM_STATE_CHECK FALSE + +/** + * @brief Debug option, parameters checks. + * @details If enabled then the checks on the API functions input + * parameters are activated. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_ENABLE_CHECKS FALSE + +/** + * @brief Debug option, consistency checks. + * @details If enabled then all the assertions in the kernel code are + * activated. This includes consistency checks inside the kernel, + * runtime anomalies and port-defined checks. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_ENABLE_ASSERTS FALSE + +/** + * @brief Debug option, trace buffer. + * @details If enabled then the trace buffer is activated. + * + * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. + */ +#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED + +/** + * @brief Trace buffer entries. + * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is + * different from @p CH_DBG_TRACE_MASK_DISABLED. + */ +#define CH_DBG_TRACE_BUFFER_SIZE 128 + +/** + * @brief Debug option, stack checks. + * @details If enabled then a runtime stack check is performed. + * + * @note The default is @p FALSE. + * @note The stack check is performed in a architecture/port dependent way. + * It may not be implemented or some ports. + * @note The default failure mode is to halt the system with the global + * @p panic_msg variable set to @p NULL. + */ +#define CH_DBG_ENABLE_STACK_CHECK FALSE + +/** + * @brief Debug option, stacks initialization. + * @details If enabled then the threads working area is filled with a byte + * value when a thread is created. This can be useful for the + * runtime measurement of the used stack. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_FILL_THREADS FALSE + +/** + * @brief Debug option, threads profiling. + * @details If enabled then a field is added to the @p thread_t structure that + * counts the system ticks occurred while executing the thread. + * + * @note The default is @p FALSE. + * @note This debug option is not currently compatible with the + * tickless mode. + */ +#define CH_DBG_THREADS_PROFILING FALSE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel hooks + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Threads descriptor structure extension. + * @details User fields added to the end of the @p thread_t structure. + */ +#define CH_CFG_THREAD_EXTRA_FIELDS \ + /* Add threads custom fields here.*/ + +/** + * @brief Threads initialization hook. + * @details User initialization code added to the @p chThdInit() API. + * + * @note It is invoked from within @p chThdInit() and implicitly from all + * the threads creation APIs. + */ +#define CH_CFG_THREAD_INIT_HOOK(tp) { \ + /* Add threads initialization code here.*/ \ +} + +/** + * @brief Threads finalization hook. + * @details User finalization code added to the @p chThdExit() API. + */ +#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ + /* Add threads finalization code here.*/ \ +} + +/** + * @brief Context switch hook. + * @details This hook is invoked just before switching between threads. + */ +#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ + /* Context switch code here.*/ \ +} + +/** + * @brief ISR enter hook. + */ +#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ + /* IRQ prologue code here.*/ \ +} + +/** + * @brief ISR exit hook. + */ +#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ + /* IRQ epilogue code here.*/ \ +} + +/** + * @brief Idle thread enter hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to activate a power saving mode. + */ +#define CH_CFG_IDLE_ENTER_HOOK() { \ + /* Idle-enter code here.*/ \ +} + +/** + * @brief Idle thread leave hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to deactivate a power saving mode. + */ +#define CH_CFG_IDLE_LEAVE_HOOK() { \ + /* Idle-leave code here.*/ \ +} + +/** + * @brief Idle Loop hook. + * @details This hook is continuously invoked by the idle thread loop. + */ +#define CH_CFG_IDLE_LOOP_HOOK() { \ + /* Idle loop code here.*/ \ +} + +/** + * @brief System tick event hook. + * @details This hook is invoked in the system tick handler immediately + * after processing the virtual timers queue. + */ +#define CH_CFG_SYSTEM_TICK_HOOK() { \ + /* System tick event code here.*/ \ +} + +/** + * @brief System halt hook. + * @details This hook is invoked in case to a system halting error before + * the system is halted. + */ +#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ + /* System halt code here.*/ \ +} + +/** + * @brief Trace hook. + * @details This hook is invoked each time a new record is written in the + * trace buffer. + */ +#define CH_CFG_TRACE_HOOK(tep) { \ + /* Trace code here.*/ \ +} + +/** @} */ + +/*===========================================================================*/ +/* Port-specific settings (override port settings defaulted in chcore.h). */ +/*===========================================================================*/ + +#endif /* CHCONF_H */ + +/** @} */ diff --git a/keyboards/chibios_test/stm32_f072_onekey/config.h b/keyboards/chibios_test/stm32_f072_onekey/config.h new file mode 100644 index 000000000..bbaf0dc4b --- /dev/null +++ b/keyboards/chibios_test/stm32_f072_onekey/config.h @@ -0,0 +1,7 @@ +#ifndef KEYBOARDS_CHIBIOS_TEST_STM32_F072_ONEKEY_CONFIG_H_ +#define KEYBOARDS_CHIBIOS_TEST_STM32_F072_ONEKEY_CONFIG_H_ + +#include "../config.h" + + +#endif /* KEYBOARDS_CHIBIOS_TEST_STM32_F072_ONEKEY_CONFIG_H_ */ diff --git a/keyboards/chibios_test/stm32_f072_onekey/halconf.h b/keyboards/chibios_test/stm32_f072_onekey/halconf.h new file mode 100644 index 000000000..1a450d632 --- /dev/null +++ b/keyboards/chibios_test/stm32_f072_onekey/halconf.h @@ -0,0 +1,353 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file templates/halconf.h + * @brief HAL configuration header. + * @details HAL configuration file, this file allows to enable or disable the + * various device drivers from your application. You may also use + * this file in order to override the device drivers default settings. + * + * @addtogroup HAL_CONF + * @{ + */ + +#ifndef _HALCONF_H_ +#define _HALCONF_H_ + +#include "mcuconf.h" + +/** + * @brief Enables the PAL subsystem. + */ +#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) +#define HAL_USE_PAL TRUE +#endif + +/** + * @brief Enables the ADC subsystem. + */ +#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) +#define HAL_USE_ADC FALSE +#endif + +/** + * @brief Enables the CAN subsystem. + */ +#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) +#define HAL_USE_CAN FALSE +#endif + +/** + * @brief Enables the DAC subsystem. + */ +#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) +#define HAL_USE_DAC FALSE +#endif + +/** + * @brief Enables the EXT subsystem. + */ +#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__) +#define HAL_USE_EXT FALSE +#endif + +/** + * @brief Enables the GPT subsystem. + */ +#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) +#define HAL_USE_GPT FALSE +#endif + +/** + * @brief Enables the I2C subsystem. + */ +#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) +#define HAL_USE_I2C FALSE +#endif + +/** + * @brief Enables the I2S subsystem. + */ +#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) +#define HAL_USE_I2S FALSE +#endif + +/** + * @brief Enables the ICU subsystem. + */ +#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) +#define HAL_USE_ICU FALSE +#endif + +/** + * @brief Enables the MAC subsystem. + */ +#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) +#define HAL_USE_MAC FALSE +#endif + +/** + * @brief Enables the MMC_SPI subsystem. + */ +#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) +#define HAL_USE_MMC_SPI FALSE +#endif + +/** + * @brief Enables the PWM subsystem. + */ +#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) +#define HAL_USE_PWM FALSE +#endif + +/** + * @brief Enables the RTC subsystem. + */ +#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) +#define HAL_USE_RTC FALSE +#endif + +/** + * @brief Enables the SDC subsystem. + */ +#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) +#define HAL_USE_SDC FALSE +#endif + +/** + * @brief Enables the SERIAL subsystem. + */ +#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL FALSE +#endif + +/** + * @brief Enables the SERIAL over USB subsystem. + */ +#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL_USB FALSE +#endif + +/** + * @brief Enables the SPI subsystem. + */ +#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) +#define HAL_USE_SPI FALSE +#endif + +/** + * @brief Enables the UART subsystem. + */ +#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) +#define HAL_USE_UART FALSE +#endif + +/** + * @brief Enables the USB subsystem. + */ +#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) +#define HAL_USE_USB TRUE +#endif + +/** + * @brief Enables the WDG subsystem. + */ +#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) +#define HAL_USE_WDG FALSE +#endif + +/*===========================================================================*/ +/* ADC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) +#define ADC_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define ADC_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* CAN driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Sleep mode related APIs inclusion switch. + */ +#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) +#define CAN_USE_SLEEP_MODE TRUE +#endif + +/*===========================================================================*/ +/* I2C driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the mutual exclusion APIs on the I2C bus. + */ +#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define I2C_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* MAC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) +#define MAC_USE_ZERO_COPY FALSE +#endif + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) +#define MAC_USE_EVENTS TRUE +#endif + +/*===========================================================================*/ +/* MMC_SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + * This option is recommended also if the SPI driver does not + * use a DMA channel and heavily loads the CPU. + */ +#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) +#define MMC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SDC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Number of initialization attempts before rejecting the card. + * @note Attempts are performed at 10mS intervals. + */ +#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) +#define SDC_INIT_RETRY 100 +#endif + +/** + * @brief Include support for MMC cards. + * @note MMC support is not yet implemented so this option must be kept + * at @p FALSE. + */ +#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) +#define SDC_MMC_SUPPORT FALSE +#endif + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + */ +#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) +#define SDC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SERIAL driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Default bit rate. + * @details Configuration parameter, this is the baud rate selected for the + * default configuration. + */ +#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) +#define SERIAL_DEFAULT_BITRATE 38400 +#endif + +/** + * @brief Serial buffers size. + * @details Configuration parameter, you can change the depth of the queue + * buffers depending on the requirements of your application. + * @note The default is 64 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_BUFFERS_SIZE 16 +#endif + +/*===========================================================================*/ +/* SERIAL_USB driver related setting. */ +/*===========================================================================*/ + +/** + * @brief Serial over USB buffers size. + * @details Configuration parameter, the buffer size must be a multiple of + * the USB data endpoint maximum packet size. + * @note The default is 64 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_USB_BUFFERS_SIZE 256 +#endif + +/*===========================================================================*/ +/* SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) +#define SPI_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define SPI_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* USB driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) +#define USB_USE_WAIT TRUE +#endif + +#endif /* _HALCONF_H_ */ + +/** @} */ diff --git a/keyboards/chibios_test/stm32_f072_onekey/led.c b/keyboards/chibios_test/stm32_f072_onekey/led.c new file mode 100644 index 000000000..18edb8ba8 --- /dev/null +++ b/keyboards/chibios_test/stm32_f072_onekey/led.c @@ -0,0 +1,34 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "hal.h" + +#include "led.h" + + +void led_set(uint8_t usb_led) +{ + (void)usb_led; + if (usb_led & (1< + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "ch.h" +#include "hal.h" + +/* + * scan matrix + */ +#include "print.h" +#include "debug.h" +#include "util.h" +#include "matrix.h" +#include "wait.h" + +#ifndef DEBOUNCE +# define DEBOUNCE 5 +#endif +static uint8_t debouncing = DEBOUNCE; + +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; +static matrix_row_t matrix_debouncing[MATRIX_ROWS]; + +static matrix_row_t read_cols(void); +static void init_cols(void); +static void unselect_rows(void); +static void select_row(uint8_t row); + + +inline +uint8_t matrix_rows(void) +{ + return MATRIX_ROWS; +} + +inline +uint8_t matrix_cols(void) +{ + return MATRIX_COLS; +} + +#define LED_ON() do { palSetPad(GPIOC, GPIOC_LED_BLUE) ;} while (0) +#define LED_OFF() do { palClearPad(GPIOC, GPIOC_LED_BLUE); } while (0) +#define LED_TGL() do { palTogglePad(GPIOC, GPIOC_LED_BLUE); } while (0) + +void matrix_init(void) +{ + // initialize row and col + unselect_rows(); + init_cols(); + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + matrix_debouncing[i] = 0; + } + + //debug + debug_matrix = true; + LED_ON(); + wait_ms(500); + LED_OFF(); +} + +uint8_t matrix_scan(void) +{ + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + select_row(i); + wait_us(30); // without this wait read unstable value. + matrix_row_t cols = read_cols(); + if (matrix_debouncing[i] != cols) { + matrix_debouncing[i] = cols; + if (debouncing) { + debug("bounce!: "); debug_hex(debouncing); debug("\n"); + } + debouncing = DEBOUNCE; + } + unselect_rows(); + } + + if (debouncing) { + if (--debouncing) { + wait_ms(1); + } else { + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = matrix_debouncing[i]; + } + } + } + + return 1; +} + +inline +bool matrix_is_on(uint8_t row, uint8_t col) +{ + return (matrix[row] & ((matrix_row_t)1</os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) +MCU_FAMILY = STM32 +MCU_SERIES = STM32F1xx +# linker script to use +# it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ +# or /ld/ +# startup code to use +# is should exist in /os/common/ports/ARMCMx/compilers/GCC/mk/ +MCU_STARTUP = stm32f1xx +# it should exist either in /os/hal/boards/ +# or /boards +# Cortex version +# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4 +MCU = cortex-m3 +# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 +ARMV = 7 +# If you want to be able to jump to bootloader from firmware on STM32 MCUs, +# set the correct BOOTLOADER_ADDRESS. Either set it here, or define it in +# ./bootloader_defs.h or in ./boards//bootloader_defs.h (if you have +# a custom board definition that you plan to reuse). +# If you're not setting it here, leave it commented out. +# It is chip dependent, the correct number can be looked up here (page 175): +# http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf +# This also requires a patch to chibios: +# /tmk_core/tool/chibios/ch-bootloader-jump.patch +#STM32_BOOTLOADER_ADDRESS = 0x1FFFC800 + + +ifndef QUANTUM_DIR + include ../../../Makefile +endif diff --git a/keyboards/chibios_test/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.c b/keyboards/chibios_test/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.c new file mode 100644 index 000000000..31319ef57 --- /dev/null +++ b/keyboards/chibios_test/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.c @@ -0,0 +1,49 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#include "hal.h" + +/** + * @brief PAL setup. + * @details Digital I/O ports static configuration as defined in @p board.h. + * This variable is used by the HAL when initializing the PAL driver. + */ +#if HAL_USE_PAL || defined(__DOXYGEN__) +const PALConfig pal_default_config = +{ + {VAL_GPIOAODR, VAL_GPIOACRL, VAL_GPIOACRH}, + {VAL_GPIOBODR, VAL_GPIOBCRL, VAL_GPIOBCRH}, + {VAL_GPIOCODR, VAL_GPIOCCRL, VAL_GPIOCCRH}, + {VAL_GPIODODR, VAL_GPIODCRL, VAL_GPIODCRH}, + {VAL_GPIOEODR, VAL_GPIOECRL, VAL_GPIOECRH}, +}; +#endif + +/* + * Early initialization code. + * This initialization must be performed just after stack setup and before + * any other initialization. + */ +void __early_init(void) { + + stm32_clock_init(); +} + +/* + * Board-specific initialization code. + */ +void boardInit(void) { +} diff --git a/keyboards/chibios_test/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.h b/keyboards/chibios_test/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.h new file mode 100644 index 000000000..7253e7782 --- /dev/null +++ b/keyboards/chibios_test/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.h @@ -0,0 +1,166 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef _BOARD_H_ +#define _BOARD_H_ + +/* + * Setup for a Generic STM32F103 board. + */ + +/* + * Board identifier. + */ +#define BOARD_GENERIC_STM32_F103 +#define BOARD_NAME "Generic STM32F103x board" + +/* + * Board frequencies. + */ +#define STM32_LSECLK 32768 +#define STM32_HSECLK 8000000 + +/* + * MCU type, supported types are defined in ./os/hal/platforms/hal_lld.h. + */ +#define STM32F103xB + +/* + * IO pins assignments + */ + +/* on-board */ + +#define GPIOC_LED 13 +#define GPIOD_OSC_IN 0 +#define GPIOD_OSC_OUT 1 + +/* In case your board has a "USB enable" hardware + controlled by a pin, define it here. (It could be just + a 1.5k resistor connected to D+ line.) +*/ +/* +#define GPIOB_USB_DISC 10 +*/ + +/* + * I/O ports initial setup, this configuration is established soon after reset + * in the initialization code. + * + * The digits have the following meaning: + * 0 - Analog input. + * 1 - Push Pull output 10MHz. + * 2 - Push Pull output 2MHz. + * 3 - Push Pull output 50MHz. + * 4 - Digital input. + * 5 - Open Drain output 10MHz. + * 6 - Open Drain output 2MHz. + * 7 - Open Drain output 50MHz. + * 8 - Digital input with PullUp or PullDown resistor depending on ODR. + * 9 - Alternate Push Pull output 10MHz. + * A - Alternate Push Pull output 2MHz. + * B - Alternate Push Pull output 50MHz. + * C - Reserved. + * D - Alternate Open Drain output 10MHz. + * E - Alternate Open Drain output 2MHz. + * F - Alternate Open Drain output 50MHz. + * Please refer to the STM32 Reference Manual for details. + */ + +/* + * Port A setup. + * Everything input with pull-up except: + * PA2 - Alternate output (USART2 TX). + * PA3 - Normal input (USART2 RX). + * PA9 - Alternate output (USART1 TX). + * PA10 - Normal input (USART1 RX). + */ +#define VAL_GPIOACRL 0x88884B88 /* PA7...PA0 */ +#define VAL_GPIOACRH 0x888884B8 /* PA15...PA8 */ +#define VAL_GPIOAODR 0xFFFFFFFF + +/* + * Port B setup. + * Everything input with pull-up except: + * PB10 - Push Pull output (USB switch). + */ +#define VAL_GPIOBCRL 0x88888888 /* PB7...PB0 */ +#define VAL_GPIOBCRH 0x88888388 /* PB15...PB8 */ +#define VAL_GPIOBODR 0xFFFFFFFF + +/* + * Port C setup. + * Everything input with pull-up except: + * PC13 - Push Pull output (LED). + */ +#define VAL_GPIOCCRL 0x88888888 /* PC7...PC0 */ +#define VAL_GPIOCCRH 0x88388888 /* PC15...PC8 */ +#define VAL_GPIOCODR 0xFFFFFFFF + +/* + * Port D setup. + * Everything input with pull-up except: + * PD0 - Normal input (XTAL). + * PD1 - Normal input (XTAL). + */ +#define VAL_GPIODCRL 0x88888844 /* PD7...PD0 */ +#define VAL_GPIODCRH 0x88888888 /* PD15...PD8 */ +#define VAL_GPIODODR 0xFFFFFFFF + +/* + * Port E setup. + * Everything input with pull-up except: + */ +#define VAL_GPIOECRL 0x88888888 /* PE7...PE0 */ +#define VAL_GPIOECRH 0x88888888 /* PE15...PE8 */ +#define VAL_GPIOEODR 0xFFFFFFFF + +/* + * USB bus activation macro, required by the USB driver. + */ +/* The point is that most of the generic STM32F103* boards + have a 1.5k resistor connected on one end to the D+ line + and on the other end to some pin. Or even a slightly more + complicated "USB enable" circuit, controlled by a pin. + That should go here. + + However on some boards (e.g. one that I have), there's no + such hardware. In which case it's better to not do anything. +*/ +/* +#define usb_lld_connect_bus(usbp) palClearPad(GPIOB, GPIOB_USB_DISC) +*/ +#define usb_lld_connect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_INPUT); + +/* + * USB bus de-activation macro, required by the USB driver. + */ +/* +#define usb_lld_disconnect_bus(usbp) palSetPad(GPIOB, GPIOB_USB_DISC) +*/ +#define usb_lld_disconnect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_OUTPUT_PUSHPULL); palClearPad(GPIOA, 12); + +#if !defined(_FROM_ASM_) +#ifdef __cplusplus +extern "C" { +#endif + void boardInit(void); +#ifdef __cplusplus +} +#endif +#endif /* _FROM_ASM_ */ + +#endif /* _BOARD_H_ */ diff --git a/keyboards/chibios_test/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.mk b/keyboards/chibios_test/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.mk new file mode 100644 index 000000000..d692c0ee4 --- /dev/null +++ b/keyboards/chibios_test/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.mk @@ -0,0 +1,5 @@ +# List of all the board related files. +BOARDSRC = $(KEYBOARD_PATH)/boards/GENERIC_STM32_F103/board.c + +# Required include directories +BOARDINC = $(KEYBOARD_PATH)/boards/GENERIC_STM32_F103 diff --git a/keyboards/chibios_test/stm32_f103_onekey/boards/GENERIC_STM32_F103/mini_stm32_mapping.png b/keyboards/chibios_test/stm32_f103_onekey/boards/GENERIC_STM32_F103/mini_stm32_mapping.png new file mode 100644 index 000000000..c44a7d9eb Binary files /dev/null and b/keyboards/chibios_test/stm32_f103_onekey/boards/GENERIC_STM32_F103/mini_stm32_mapping.png differ diff --git a/keyboards/chibios_test/stm32_f103_onekey/boards/maple_mini_mapping.png b/keyboards/chibios_test/stm32_f103_onekey/boards/maple_mini_mapping.png new file mode 100644 index 000000000..12cfa81db Binary files /dev/null and b/keyboards/chibios_test/stm32_f103_onekey/boards/maple_mini_mapping.png differ diff --git a/keyboards/chibios_test/stm32_f103_onekey/bootloader_defs.h b/keyboards/chibios_test/stm32_f103_onekey/bootloader_defs.h new file mode 100644 index 000000000..0f45203cb --- /dev/null +++ b/keyboards/chibios_test/stm32_f103_onekey/bootloader_defs.h @@ -0,0 +1,10 @@ +/* Address for jumping to bootloader on STM32 chips. */ +/* It is chip dependent, the correct number can be looked up here (page 175): + * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf + * This also requires a patch to chibios: + * /tmk_core/tool/chibios/ch-bootloader-jump.patch + */ + +// STM32F103* does NOT have an USB bootloader in ROM (only serial), +// so setting anything here does not make much sense +// #define STM32_BOOTLOADER_ADDRESS 0x1FFFC800 diff --git a/keyboards/chibios_test/stm32_f103_onekey/chconf.h b/keyboards/chibios_test/stm32_f103_onekey/chconf.h new file mode 100644 index 000000000..dfb1f9dfb --- /dev/null +++ b/keyboards/chibios_test/stm32_f103_onekey/chconf.h @@ -0,0 +1,524 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file templates/chconf.h + * @brief Configuration file template. + * @details A copy of this file must be placed in each project directory, it + * contains the application specific kernel settings. + * + * @addtogroup config + * @details Kernel related settings and hooks. + * @{ + */ + +#ifndef CHCONF_H +#define CHCONF_H + +#define _CHIBIOS_RT_CONF_ + +/*===========================================================================*/ +/** + * @name System timers settings + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System time counter resolution. + * @note Allowed values are 16 or 32 bits. + */ +#define CH_CFG_ST_RESOLUTION 16 + +/** + * @brief System tick frequency. + * @details Frequency of the system timer that drives the system ticks. This + * setting also defines the system tick time unit. + */ +#define CH_CFG_ST_FREQUENCY 2000 + +/** + * @brief Time delta constant for the tick-less mode. + * @note If this value is zero then the system uses the classic + * periodic tick. This value represents the minimum number + * of ticks that is safe to specify in a timeout directive. + * The value one is not valid, timeouts are rounded up to + * this value. + */ +#define CH_CFG_ST_TIMEDELTA 2 + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel parameters and options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Round robin interval. + * @details This constant is the number of system ticks allowed for the + * threads before preemption occurs. Setting this value to zero + * disables the preemption for threads with equal priority and the + * round robin becomes cooperative. Note that higher priority + * threads can still preempt, the kernel is always preemptive. + * @note Disabling the round robin preemption makes the kernel more compact + * and generally faster. + * @note The round robin preemption is not supported in tickless mode and + * must be set to zero in that case. + */ +#define CH_CFG_TIME_QUANTUM 0 + +/** + * @brief Managed RAM size. + * @details Size of the RAM area to be managed by the OS. If set to zero + * then the whole available RAM is used. The core memory is made + * available to the heap allocator and/or can be used directly through + * the simplified core memory allocator. + * + * @note In order to let the OS manage the whole RAM the linker script must + * provide the @p __heap_base__ and @p __heap_end__ symbols. + * @note Requires @p CH_CFG_USE_MEMCORE. + */ +#define CH_CFG_MEMCORE_SIZE 0 + +/** + * @brief Idle thread automatic spawn suppression. + * @details When this option is activated the function @p chSysInit() + * does not spawn the idle thread. The application @p main() + * function becomes the idle thread and must implement an + * infinite loop. + */ +#define CH_CFG_NO_IDLE_THREAD FALSE + +/* Use __WFI in the idle thread for waiting. Does lower the power + * consumption. */ +#define CORTEX_ENABLE_WFI_IDLE TRUE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Performance options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief OS optimization. + * @details If enabled then time efficient rather than space efficient code + * is used when two possible implementations exist. + * + * @note This is not related to the compiler optimization options. + * @note The default is @p TRUE. + */ +#define CH_CFG_OPTIMIZE_SPEED TRUE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Subsystem options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Time Measurement APIs. + * @details If enabled then the time measurement APIs are included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_TM FALSE + +/** + * @brief Threads registry APIs. + * @details If enabled then the registry APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_REGISTRY TRUE + +/** + * @brief Threads synchronization APIs. + * @details If enabled then the @p chThdWait() function is included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_WAITEXIT TRUE + +/** + * @brief Semaphores APIs. + * @details If enabled then the Semaphores APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_SEMAPHORES TRUE + +/** + * @brief Semaphores queuing mode. + * @details If enabled then the threads are enqueued on semaphores by + * priority rather than in FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE + +/** + * @brief Mutexes APIs. + * @details If enabled then the mutexes APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MUTEXES TRUE + +/** + * @brief Enables recursive behavior on mutexes. + * @note Recursive mutexes are heavier and have an increased + * memory footprint. + * + * @note The default is @p FALSE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE + +/** + * @brief Conditional Variables APIs. + * @details If enabled then the conditional variables APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#define CH_CFG_USE_CONDVARS TRUE + +/** + * @brief Conditional Variables APIs with timeout. + * @details If enabled then the conditional variables APIs with timeout + * specification are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_CONDVARS. + */ +#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE + +/** + * @brief Events Flags APIs. + * @details If enabled then the event flags APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_EVENTS TRUE + +/** + * @brief Events Flags APIs with timeout. + * @details If enabled then the events APIs with timeout specification + * are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_EVENTS. + */ +#define CH_CFG_USE_EVENTS_TIMEOUT TRUE + +/** + * @brief Synchronous Messages APIs. + * @details If enabled then the synchronous messages APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MESSAGES TRUE + +/** + * @brief Synchronous Messages queuing mode. + * @details If enabled then messages are served by priority rather than in + * FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_MESSAGES. + */ +#define CH_CFG_USE_MESSAGES_PRIORITY FALSE + +/** + * @brief Mailboxes APIs. + * @details If enabled then the asynchronous messages (mailboxes) APIs are + * included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#define CH_CFG_USE_MAILBOXES TRUE + +/** + * @brief Core Memory Manager APIs. + * @details If enabled then the core memory manager APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MEMCORE TRUE + +/** + * @brief Heap Allocator APIs. + * @details If enabled then the memory heap allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or + * @p CH_CFG_USE_SEMAPHORES. + * @note Mutexes are recommended. + */ +#define CH_CFG_USE_HEAP TRUE + +/** + * @brief Memory Pools Allocator APIs. + * @details If enabled then the memory pools allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MEMPOOLS FALSE + +/** + * @brief Dynamic Threads APIs. + * @details If enabled then the dynamic threads creation APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_WAITEXIT. + * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. + */ +#define CH_CFG_USE_DYNAMIC FALSE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Debug options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Debug option, kernel statistics. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_STATISTICS FALSE + +/** + * @brief Debug option, system state check. + * @details If enabled the correct call protocol for system APIs is checked + * at runtime. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_SYSTEM_STATE_CHECK FALSE + +/** + * @brief Debug option, parameters checks. + * @details If enabled then the checks on the API functions input + * parameters are activated. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_ENABLE_CHECKS FALSE + +/** + * @brief Debug option, consistency checks. + * @details If enabled then all the assertions in the kernel code are + * activated. This includes consistency checks inside the kernel, + * runtime anomalies and port-defined checks. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_ENABLE_ASSERTS FALSE + +/** + * @brief Debug option, trace buffer. + * @details If enabled then the trace buffer is activated. + * + * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. + */ +#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED + +/** + * @brief Trace buffer entries. + * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is + * different from @p CH_DBG_TRACE_MASK_DISABLED. + */ +#define CH_DBG_TRACE_BUFFER_SIZE 128 + +/** + * @brief Debug option, stack checks. + * @details If enabled then a runtime stack check is performed. + * + * @note The default is @p FALSE. + * @note The stack check is performed in a architecture/port dependent way. + * It may not be implemented or some ports. + * @note The default failure mode is to halt the system with the global + * @p panic_msg variable set to @p NULL. + */ +#define CH_DBG_ENABLE_STACK_CHECK FALSE + +/** + * @brief Debug option, stacks initialization. + * @details If enabled then the threads working area is filled with a byte + * value when a thread is created. This can be useful for the + * runtime measurement of the used stack. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_FILL_THREADS FALSE + +/** + * @brief Debug option, threads profiling. + * @details If enabled then a field is added to the @p thread_t structure that + * counts the system ticks occurred while executing the thread. + * + * @note The default is @p FALSE. + * @note This debug option is not currently compatible with the + * tickless mode. + */ +#define CH_DBG_THREADS_PROFILING FALSE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel hooks + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Threads descriptor structure extension. + * @details User fields added to the end of the @p thread_t structure. + */ +#define CH_CFG_THREAD_EXTRA_FIELDS \ + /* Add threads custom fields here.*/ + +/** + * @brief Threads initialization hook. + * @details User initialization code added to the @p chThdInit() API. + * + * @note It is invoked from within @p chThdInit() and implicitly from all + * the threads creation APIs. + */ +#define CH_CFG_THREAD_INIT_HOOK(tp) { \ + /* Add threads initialization code here.*/ \ +} + +/** + * @brief Threads finalization hook. + * @details User finalization code added to the @p chThdExit() API. + */ +#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ + /* Add threads finalization code here.*/ \ +} + +/** + * @brief Context switch hook. + * @details This hook is invoked just before switching between threads. + */ +#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ + /* Context switch code here.*/ \ +} + +/** + * @brief ISR enter hook. + */ +#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ + /* IRQ prologue code here.*/ \ +} + +/** + * @brief ISR exit hook. + */ +#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ + /* IRQ epilogue code here.*/ \ +} + +/** + * @brief Idle thread enter hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to activate a power saving mode. + */ +#define CH_CFG_IDLE_ENTER_HOOK() { \ + /* Idle-enter code here.*/ \ +} + +/** + * @brief Idle thread leave hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to deactivate a power saving mode. + */ +#define CH_CFG_IDLE_LEAVE_HOOK() { \ + /* Idle-leave code here.*/ \ +} + +/** + * @brief Idle Loop hook. + * @details This hook is continuously invoked by the idle thread loop. + */ +#define CH_CFG_IDLE_LOOP_HOOK() { \ + /* Idle loop code here.*/ \ +} + +/** + * @brief System tick event hook. + * @details This hook is invoked in the system tick handler immediately + * after processing the virtual timers queue. + */ +#define CH_CFG_SYSTEM_TICK_HOOK() { \ + /* System tick event code here.*/ \ +} + +/** + * @brief System halt hook. + * @details This hook is invoked in case to a system halting error before + * the system is halted. + */ +#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ + /* System halt code here.*/ \ +} + +/** + * @brief Trace hook. + * @details This hook is invoked each time a new record is written in the + * trace buffer. + */ +#define CH_CFG_TRACE_HOOK(tep) { \ + /* Trace code here.*/ \ +} + +/** @} */ + +/*===========================================================================*/ +/* Port-specific settings (override port settings defaulted in chcore.h). */ +/*===========================================================================*/ + +#endif /* CHCONF_H */ + +/** @} */ diff --git a/keyboards/chibios_test/stm32_f103_onekey/config.h b/keyboards/chibios_test/stm32_f103_onekey/config.h new file mode 100644 index 000000000..de0b906f3 --- /dev/null +++ b/keyboards/chibios_test/stm32_f103_onekey/config.h @@ -0,0 +1,6 @@ +#ifndef KEYBOARDS_CHIBIOS_TEST_STM32_F103_ONEKEY_CONFIG_H_ +#define KEYBOARDS_CHIBIOS_TEST_STM32_F103_ONEKEY_CONFIG_H_ + +#include "../config.h" + +#endif /* KEYBOARDS_CHIBIOS_TEST_STM32_F103_ONEKEY_CONFIG_H_ */ diff --git a/keyboards/chibios_test/stm32_f103_onekey/flash.sh b/keyboards/chibios_test/stm32_f103_onekey/flash.sh new file mode 100755 index 000000000..15501dfa5 --- /dev/null +++ b/keyboards/chibios_test/stm32_f103_onekey/flash.sh @@ -0,0 +1,2 @@ +#!/bin/bash +Arduino_STM32_usb_hid/tools/linux/maple_upload ttyACM0 2 1EAF:0003 build/ch.bin diff --git a/keyboards/chibios_test/stm32_f103_onekey/halconf.h b/keyboards/chibios_test/stm32_f103_onekey/halconf.h new file mode 100644 index 000000000..1a450d632 --- /dev/null +++ b/keyboards/chibios_test/stm32_f103_onekey/halconf.h @@ -0,0 +1,353 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file templates/halconf.h + * @brief HAL configuration header. + * @details HAL configuration file, this file allows to enable or disable the + * various device drivers from your application. You may also use + * this file in order to override the device drivers default settings. + * + * @addtogroup HAL_CONF + * @{ + */ + +#ifndef _HALCONF_H_ +#define _HALCONF_H_ + +#include "mcuconf.h" + +/** + * @brief Enables the PAL subsystem. + */ +#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) +#define HAL_USE_PAL TRUE +#endif + +/** + * @brief Enables the ADC subsystem. + */ +#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) +#define HAL_USE_ADC FALSE +#endif + +/** + * @brief Enables the CAN subsystem. + */ +#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) +#define HAL_USE_CAN FALSE +#endif + +/** + * @brief Enables the DAC subsystem. + */ +#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) +#define HAL_USE_DAC FALSE +#endif + +/** + * @brief Enables the EXT subsystem. + */ +#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__) +#define HAL_USE_EXT FALSE +#endif + +/** + * @brief Enables the GPT subsystem. + */ +#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) +#define HAL_USE_GPT FALSE +#endif + +/** + * @brief Enables the I2C subsystem. + */ +#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) +#define HAL_USE_I2C FALSE +#endif + +/** + * @brief Enables the I2S subsystem. + */ +#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) +#define HAL_USE_I2S FALSE +#endif + +/** + * @brief Enables the ICU subsystem. + */ +#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) +#define HAL_USE_ICU FALSE +#endif + +/** + * @brief Enables the MAC subsystem. + */ +#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) +#define HAL_USE_MAC FALSE +#endif + +/** + * @brief Enables the MMC_SPI subsystem. + */ +#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) +#define HAL_USE_MMC_SPI FALSE +#endif + +/** + * @brief Enables the PWM subsystem. + */ +#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) +#define HAL_USE_PWM FALSE +#endif + +/** + * @brief Enables the RTC subsystem. + */ +#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) +#define HAL_USE_RTC FALSE +#endif + +/** + * @brief Enables the SDC subsystem. + */ +#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) +#define HAL_USE_SDC FALSE +#endif + +/** + * @brief Enables the SERIAL subsystem. + */ +#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL FALSE +#endif + +/** + * @brief Enables the SERIAL over USB subsystem. + */ +#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL_USB FALSE +#endif + +/** + * @brief Enables the SPI subsystem. + */ +#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) +#define HAL_USE_SPI FALSE +#endif + +/** + * @brief Enables the UART subsystem. + */ +#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) +#define HAL_USE_UART FALSE +#endif + +/** + * @brief Enables the USB subsystem. + */ +#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) +#define HAL_USE_USB TRUE +#endif + +/** + * @brief Enables the WDG subsystem. + */ +#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) +#define HAL_USE_WDG FALSE +#endif + +/*===========================================================================*/ +/* ADC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) +#define ADC_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define ADC_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* CAN driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Sleep mode related APIs inclusion switch. + */ +#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) +#define CAN_USE_SLEEP_MODE TRUE +#endif + +/*===========================================================================*/ +/* I2C driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the mutual exclusion APIs on the I2C bus. + */ +#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define I2C_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* MAC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) +#define MAC_USE_ZERO_COPY FALSE +#endif + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) +#define MAC_USE_EVENTS TRUE +#endif + +/*===========================================================================*/ +/* MMC_SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + * This option is recommended also if the SPI driver does not + * use a DMA channel and heavily loads the CPU. + */ +#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) +#define MMC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SDC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Number of initialization attempts before rejecting the card. + * @note Attempts are performed at 10mS intervals. + */ +#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) +#define SDC_INIT_RETRY 100 +#endif + +/** + * @brief Include support for MMC cards. + * @note MMC support is not yet implemented so this option must be kept + * at @p FALSE. + */ +#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) +#define SDC_MMC_SUPPORT FALSE +#endif + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + */ +#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) +#define SDC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SERIAL driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Default bit rate. + * @details Configuration parameter, this is the baud rate selected for the + * default configuration. + */ +#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) +#define SERIAL_DEFAULT_BITRATE 38400 +#endif + +/** + * @brief Serial buffers size. + * @details Configuration parameter, you can change the depth of the queue + * buffers depending on the requirements of your application. + * @note The default is 64 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_BUFFERS_SIZE 16 +#endif + +/*===========================================================================*/ +/* SERIAL_USB driver related setting. */ +/*===========================================================================*/ + +/** + * @brief Serial over USB buffers size. + * @details Configuration parameter, the buffer size must be a multiple of + * the USB data endpoint maximum packet size. + * @note The default is 64 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_USB_BUFFERS_SIZE 256 +#endif + +/*===========================================================================*/ +/* SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) +#define SPI_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define SPI_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* USB driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) +#define USB_USE_WAIT TRUE +#endif + +#endif /* _HALCONF_H_ */ + +/** @} */ diff --git a/keyboards/chibios_test/stm32_f103_onekey/ld/STM32F103x8_stm32duino_bootloader.ld b/keyboards/chibios_test/stm32_f103_onekey/ld/STM32F103x8_stm32duino_bootloader.ld new file mode 100644 index 000000000..00613328e --- /dev/null +++ b/keyboards/chibios_test/stm32_f103_onekey/ld/STM32F103x8_stm32duino_bootloader.ld @@ -0,0 +1,88 @@ +/* + ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/* + * ST32F103xB memory setup for use with the maplemini bootloader. + * You will have to + * #define CORTEX_VTOR_INIT 0x5000 + * in your projects chconf.h + */ +MEMORY +{ + flash0 : org = 0x08002000, len = 128k - 0x2000 + flash1 : org = 0x00000000, len = 0 + flash2 : org = 0x00000000, len = 0 + flash3 : org = 0x00000000, len = 0 + flash4 : org = 0x00000000, len = 0 + flash5 : org = 0x00000000, len = 0 + flash6 : org = 0x00000000, len = 0 + flash7 : org = 0x00000000, len = 0 + ram0 : org = 0x20000000, len = 20k + ram1 : org = 0x00000000, len = 0 + ram2 : org = 0x00000000, len = 0 + ram3 : org = 0x00000000, len = 0 + ram4 : org = 0x00000000, len = 0 + ram5 : org = 0x00000000, len = 0 + ram6 : org = 0x00000000, len = 0 + ram7 : org = 0x00000000, len = 0 +} + +/* For each data/text section two region are defined, a virtual region + and a load region (_LMA suffix).*/ + +/* Flash region to be used for exception vectors.*/ +REGION_ALIAS("VECTORS_FLASH", flash0); +REGION_ALIAS("VECTORS_FLASH_LMA", flash0); + +/* Flash region to be used for constructors and destructors.*/ +REGION_ALIAS("XTORS_FLASH", flash0); +REGION_ALIAS("XTORS_FLASH_LMA", flash0); + +/* Flash region to be used for code text.*/ +REGION_ALIAS("TEXT_FLASH", flash0); +REGION_ALIAS("TEXT_FLASH_LMA", flash0); + +/* Flash region to be used for read only data.*/ +REGION_ALIAS("RODATA_FLASH", flash0); +REGION_ALIAS("RODATA_FLASH_LMA", flash0); + +/* Flash region to be used for various.*/ +REGION_ALIAS("VARIOUS_FLASH", flash0); +REGION_ALIAS("VARIOUS_FLASH_LMA", flash0); + +/* Flash region to be used for RAM(n) initialization data.*/ +REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0); + +/* RAM region to be used for Main stack. This stack accommodates the processing + of all exceptions and interrupts.*/ +REGION_ALIAS("MAIN_STACK_RAM", ram0); + +/* RAM region to be used for the process stack. This is the stack used by + the main() function.*/ +REGION_ALIAS("PROCESS_STACK_RAM", ram0); + +/* RAM region to be used for data segment.*/ +REGION_ALIAS("DATA_RAM", ram0); +REGION_ALIAS("DATA_RAM_LMA", flash0); + +/* RAM region to be used for BSS segment.*/ +REGION_ALIAS("BSS_RAM", ram0); + +/* RAM region to be used for the default heap.*/ +REGION_ALIAS("HEAP_RAM", ram0); + +/* Generic rules inclusion.*/ +INCLUDE rules.ld diff --git a/keyboards/chibios_test/stm32_f103_onekey/led.c b/keyboards/chibios_test/stm32_f103_onekey/led.c new file mode 100644 index 000000000..f5c55f7d9 --- /dev/null +++ b/keyboards/chibios_test/stm32_f103_onekey/led.c @@ -0,0 +1,43 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "hal.h" +#include "led.h" + + +void led_set(uint8_t usb_led) +{ + if (usb_led & (1< + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "ch.h" +#include "hal.h" + +/* + * scan matrix + */ +#include "print.h" +#include "debug.h" +#include "util.h" +#include "matrix.h" +#include "wait.h" + +#ifndef DEBOUNCE +# define DEBOUNCE 5 +#endif +static uint8_t debouncing = DEBOUNCE; + +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; +static matrix_row_t matrix_debouncing[MATRIX_ROWS]; + +static matrix_row_t read_cols(void); +static void init_cols(void); +static void unselect_rows(void); +static void select_row(uint8_t row); + + +inline +uint8_t matrix_rows(void) +{ + return MATRIX_ROWS; +} + +inline +uint8_t matrix_cols(void) +{ + return MATRIX_COLS; +} + +/* generic STM32F103C8T6 board */ +#ifdef BOARD_GENERIC_STM32_F103 +#define LED_ON() do { palClearPad(GPIOC, GPIOC_LED) ;} while (0) +#define LED_OFF() do { palSetPad(GPIOC, GPIOC_LED); } while (0) +#define LED_TGL() do { palTogglePad(GPIOC, GPIOC_LED); } while (0) +#endif + +/* Maple Mini */ +#ifdef BOARD_MAPLEMINI_STM32_F103 +#define LED_ON() do { palSetPad(GPIOB, 1) ;} while (0) +#define LED_OFF() do { palClearPad(GPIOB, 1); } while (0) +#define LED_TGL() do { palTogglePad(GPIOB, 1); } while (0) +#endif + +void matrix_init(void) +{ + // initialize row and col + unselect_rows(); + init_cols(); + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + matrix_debouncing[i] = 0; + } + + //debug + debug_matrix = true; + LED_ON(); + wait_ms(500); + LED_OFF(); +} + +uint8_t matrix_scan(void) +{ + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + select_row(i); + wait_us(30); // without this wait read unstable value. + matrix_row_t cols = read_cols(); + if (matrix_debouncing[i] != cols) { + matrix_debouncing[i] = cols; + if (debouncing) { + debug("bounce!: "); debug_hex(debouncing); debug("\n"); + } + debouncing = DEBOUNCE; + } + unselect_rows(); + } + + if (debouncing) { + if (--debouncing) { + wait_ms(1); + } else { + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = matrix_debouncing[i]; + } + } + } + + return 1; +} + +inline +bool matrix_is_on(uint8_t row, uint8_t col) +{ + return (matrix[row] & ((matrix_row_t)1</os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) +# - For Teensies, FAMILY = KINETIS and SERIES is either +# KL2x (LC) or K20x (3.0,3.1,3.2). +MCU_FAMILY = KINETIS +MCU_SERIES = KL2x + +# Linker script to use +# - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ +# or /ld/ +# - NOTE: a custom ld script is needed for EEPROM on Teensy LC +# - LDSCRIPT = +# - MKL26Z64 for Teensy LC +# - MK20DX128 for Teensy 3.0 +# - MK20DX256 for Teensy 3.1 and 3.2 +MCU_LDSCRIPT = MKL26Z64 + +# Startup code to use +# - it should exist in /os/common/ports/ARMCMx/compilers/GCC/mk/ +# - STARTUP = +# - kl2x for Teensy LC +# - k20x5 for Teensy 3.0 +# - k20x7 for Teensy 3.1 and 3.2 +MCU_STARTUP = kl2x + +# Board: it should exist either in /os/hal/boards/ +# or /boards +# - BOARD = +# - PJRC_TEENSY_LC for Teensy LC +# - PJRC_TEENSY_3 for Teensy 3.0 +# - PJRC_TEENSY_3_1 for Teensy 3.1 or 3.2 +BOARD = PJRC_TEENSY_LC + +# Cortex version +# Teensy LC is cortex-m0plus; Teensy 3.x are cortex-m4 +MCU = cortex-m0plus + +# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 +# I.e. 6 for Teensy LC; 7 for Teensy 3.x +ARMV = 6 + +ifndef QUANTUM_DIR + include ../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/chibios_test/teensy_lc_onekey/Makefile.3.0 b/keyboards/chibios_test/teensy_lc_onekey/Makefile.3.0 new file mode 100644 index 000000000..dbf12c363 --- /dev/null +++ b/keyboards/chibios_test/teensy_lc_onekey/Makefile.3.0 @@ -0,0 +1,77 @@ +# Target file name (without extension). +PROJECT = ch + +# Directory common source files exist +TMK_DIR = ../../tmk_core + +# Directory keyboard dependent files exist +TARGET_DIR = . + +# project specific files +SRC = matrix.c \ + led.c + +ifdef KEYMAP + SRC := keymap_$(KEYMAP).c $(SRC) +else + SRC := keymap_plain.c $(SRC) +endif + +CONFIG_H = config.h + +## chip/board settings +# - the next two should match the directories in +# /os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) +# - For Teensies, FAMILY = KINETIS and SERIES is either +# KL2x (LC) or K20x (3.0,3.1,3.2). +MCU_FAMILY = KINETIS +MCU_SERIES = K20x + +# Linker script to use +# - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ +# or /ld/ +# - NOTE: a custom ld script is needed for EEPROM on Teensy LC +# - LDSCRIPT = +# - MKL26Z64 for Teensy LC +# - MK20DX128 for Teensy 3.0 +# - MK20DX256 for Teensy 3.1 and 3.2 +MCU_LDSCRIPT = MK20DX128 + +# Startup code to use +# - it should exist in /os/common/ports/ARMCMx/compilers/GCC/mk/ +# - STARTUP = +# - kl2x for Teensy LC +# - k20x5 for Teensy 3.0 +# - k20x7 for Teensy 3.1 and 3.2 +MCU_STARTUP = k20x5 + +# Board: it should exist either in /os/hal/boards/ +# or /boards +# - BOARD = +# - PJRC_TEENSY_LC for Teensy LC +# - PJRC_TEENSY_3 for Teensy 3.0 +# - PJRC_TEENSY_3_1 for Teensy 3.1 or 3.2 +BOARD = PJRC_TEENSY_3 + +# Cortex version +# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4 +MCU = cortex-m4 + +# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 +# I.e. 6 for Teensy LC; 7 for Teensy 3.x +ARMV = 7 + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.) +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +NKRO_ENABLE = yes # USB Nkey Rollover + +include $(TMK_DIR)/tool/chibios/common.mk +include $(TMK_DIR)/tool/chibios/chibios.mk diff --git a/keyboards/chibios_test/teensy_lc_onekey/Makefile.3.2 b/keyboards/chibios_test/teensy_lc_onekey/Makefile.3.2 new file mode 100644 index 000000000..41bfa41a0 --- /dev/null +++ b/keyboards/chibios_test/teensy_lc_onekey/Makefile.3.2 @@ -0,0 +1,77 @@ +# Target file name (without extension). +PROJECT = ch + +# Directory common source files exist +TMK_DIR = ../../tmk_core + +# Directory keyboard dependent files exist +TARGET_DIR = . + +# project specific files +SRC = matrix.c \ + led.c + +ifdef KEYMAP + SRC := keymap_$(KEYMAP).c $(SRC) +else + SRC := keymap_plain.c $(SRC) +endif + +CONFIG_H = config.h + +## chip/board settings +# - the next two should match the directories in +# /os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) +# - For Teensies, FAMILY = KINETIS and SERIES is either +# KL2x (LC) or K20x (3.0,3.1,3.2). +MCU_FAMILY = KINETIS +MCU_SERIES = K20x + +# Linker script to use +# - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ +# or /ld/ +# - NOTE: a custom ld script is needed for EEPROM on Teensy LC +# - LDSCRIPT = +# - MKL26Z64 for Teensy LC +# - MK20DX128 for Teensy 3.0 +# - MK20DX256 for Teensy 3.1 and 3.2 +MCU_LDSCRIPT = MK20DX256 + +# Startup code to use +# - it should exist in /os/common/ports/ARMCMx/compilers/GCC/mk/ +# - STARTUP = +# - kl2x for Teensy LC +# - k20x5 for Teensy 3.0 +# - k20x7 for Teensy 3.1 and 3.2 +MCU_STARTUP = k20x7 + +# Board: it should exist either in /os/hal/boards/ +# or /boards +# - BOARD = +# - PJRC_TEENSY_LC for Teensy LC +# - PJRC_TEENSY_3 for Teensy 3.0 +# - PJRC_TEENSY_3_1 for Teensy 3.1 or 3.2 +BOARD = PJRC_TEENSY_3_1 + +# Cortex version +# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4 +MCU = cortex-m4 + +# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 +# I.e. 6 for Teensy LC; 7 for Teensy 3.x +ARMV = 7 + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration +## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.) +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = yes # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +NKRO_ENABLE = yes # USB Nkey Rollover + +include $(TMK_DIR)/tool/chibios/common.mk +include $(TMK_DIR)/tool/chibios/chibios.mk diff --git a/keyboards/chibios_test/teensy_lc_onekey/chconf.h b/keyboards/chibios_test/teensy_lc_onekey/chconf.h new file mode 100644 index 000000000..cb36996c3 --- /dev/null +++ b/keyboards/chibios_test/teensy_lc_onekey/chconf.h @@ -0,0 +1,524 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file templates/chconf.h + * @brief Configuration file template. + * @details A copy of this file must be placed in each project directory, it + * contains the application specific kernel settings. + * + * @addtogroup config + * @details Kernel related settings and hooks. + * @{ + */ + +#ifndef CHCONF_H +#define CHCONF_H + +#define _CHIBIOS_RT_CONF_ + +/*===========================================================================*/ +/** + * @name System timers settings + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System time counter resolution. + * @note Allowed values are 16 or 32 bits. + */ +#define CH_CFG_ST_RESOLUTION 32 + +/** + * @brief System tick frequency. + * @details Frequency of the system timer that drives the system ticks. This + * setting also defines the system tick time unit. + */ +#define CH_CFG_ST_FREQUENCY 1000 + +/** + * @brief Time delta constant for the tick-less mode. + * @note If this value is zero then the system uses the classic + * periodic tick. This value represents the minimum number + * of ticks that is safe to specify in a timeout directive. + * The value one is not valid, timeouts are rounded up to + * this value. + */ +#define CH_CFG_ST_TIMEDELTA 0 + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel parameters and options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Round robin interval. + * @details This constant is the number of system ticks allowed for the + * threads before preemption occurs. Setting this value to zero + * disables the preemption for threads with equal priority and the + * round robin becomes cooperative. Note that higher priority + * threads can still preempt, the kernel is always preemptive. + * @note Disabling the round robin preemption makes the kernel more compact + * and generally faster. + * @note The round robin preemption is not supported in tickless mode and + * must be set to zero in that case. + */ +#define CH_CFG_TIME_QUANTUM 20 + +/** + * @brief Managed RAM size. + * @details Size of the RAM area to be managed by the OS. If set to zero + * then the whole available RAM is used. The core memory is made + * available to the heap allocator and/or can be used directly through + * the simplified core memory allocator. + * + * @note In order to let the OS manage the whole RAM the linker script must + * provide the @p __heap_base__ and @p __heap_end__ symbols. + * @note Requires @p CH_CFG_USE_MEMCORE. + */ +#define CH_CFG_MEMCORE_SIZE 0 + +/** + * @brief Idle thread automatic spawn suppression. + * @details When this option is activated the function @p chSysInit() + * does not spawn the idle thread. The application @p main() + * function becomes the idle thread and must implement an + * infinite loop. + */ +#define CH_CFG_NO_IDLE_THREAD FALSE + +/* Use __WFI in the idle thread for waiting. Does lower the power + * consumption. */ +#define CORTEX_ENABLE_WFI_IDLE TRUE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Performance options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief OS optimization. + * @details If enabled then time efficient rather than space efficient code + * is used when two possible implementations exist. + * + * @note This is not related to the compiler optimization options. + * @note The default is @p TRUE. + */ +#define CH_CFG_OPTIMIZE_SPEED TRUE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Subsystem options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Time Measurement APIs. + * @details If enabled then the time measurement APIs are included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_TM FALSE + +/** + * @brief Threads registry APIs. + * @details If enabled then the registry APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_REGISTRY TRUE + +/** + * @brief Threads synchronization APIs. + * @details If enabled then the @p chThdWait() function is included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_WAITEXIT TRUE + +/** + * @brief Semaphores APIs. + * @details If enabled then the Semaphores APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_SEMAPHORES TRUE + +/** + * @brief Semaphores queuing mode. + * @details If enabled then the threads are enqueued on semaphores by + * priority rather than in FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE + +/** + * @brief Mutexes APIs. + * @details If enabled then the mutexes APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MUTEXES TRUE + +/** + * @brief Enables recursive behavior on mutexes. + * @note Recursive mutexes are heavier and have an increased + * memory footprint. + * + * @note The default is @p FALSE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE + +/** + * @brief Conditional Variables APIs. + * @details If enabled then the conditional variables APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#define CH_CFG_USE_CONDVARS TRUE + +/** + * @brief Conditional Variables APIs with timeout. + * @details If enabled then the conditional variables APIs with timeout + * specification are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_CONDVARS. + */ +#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE + +/** + * @brief Events Flags APIs. + * @details If enabled then the event flags APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_EVENTS TRUE + +/** + * @brief Events Flags APIs with timeout. + * @details If enabled then the events APIs with timeout specification + * are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_EVENTS. + */ +#define CH_CFG_USE_EVENTS_TIMEOUT TRUE + +/** + * @brief Synchronous Messages APIs. + * @details If enabled then the synchronous messages APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MESSAGES TRUE + +/** + * @brief Synchronous Messages queuing mode. + * @details If enabled then messages are served by priority rather than in + * FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_MESSAGES. + */ +#define CH_CFG_USE_MESSAGES_PRIORITY FALSE + +/** + * @brief Mailboxes APIs. + * @details If enabled then the asynchronous messages (mailboxes) APIs are + * included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#define CH_CFG_USE_MAILBOXES TRUE + +/** + * @brief Core Memory Manager APIs. + * @details If enabled then the core memory manager APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MEMCORE TRUE + +/** + * @brief Heap Allocator APIs. + * @details If enabled then the memory heap allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or + * @p CH_CFG_USE_SEMAPHORES. + * @note Mutexes are recommended. + */ +#define CH_CFG_USE_HEAP TRUE + +/** + * @brief Memory Pools Allocator APIs. + * @details If enabled then the memory pools allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MEMPOOLS TRUE + +/** + * @brief Dynamic Threads APIs. + * @details If enabled then the dynamic threads creation APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_WAITEXIT. + * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. + */ +#define CH_CFG_USE_DYNAMIC TRUE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Debug options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Debug option, kernel statistics. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_STATISTICS FALSE + +/** + * @brief Debug option, system state check. + * @details If enabled the correct call protocol for system APIs is checked + * at runtime. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_SYSTEM_STATE_CHECK TRUE + +/** + * @brief Debug option, parameters checks. + * @details If enabled then the checks on the API functions input + * parameters are activated. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_ENABLE_CHECKS TRUE + +/** + * @brief Debug option, consistency checks. + * @details If enabled then all the assertions in the kernel code are + * activated. This includes consistency checks inside the kernel, + * runtime anomalies and port-defined checks. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_ENABLE_ASSERTS TRUE + +/** + * @brief Debug option, trace buffer. + * @details If enabled then the trace buffer is activated. + * + * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. + */ +#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED + +/** + * @brief Trace buffer entries. + * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is + * different from @p CH_DBG_TRACE_MASK_DISABLED. + */ +#define CH_DBG_TRACE_BUFFER_SIZE 128 + +/** + * @brief Debug option, stack checks. + * @details If enabled then a runtime stack check is performed. + * + * @note The default is @p FALSE. + * @note The stack check is performed in a architecture/port dependent way. + * It may not be implemented or some ports. + * @note The default failure mode is to halt the system with the global + * @p panic_msg variable set to @p NULL. + */ +#define CH_DBG_ENABLE_STACK_CHECK TRUE + +/** + * @brief Debug option, stacks initialization. + * @details If enabled then the threads working area is filled with a byte + * value when a thread is created. This can be useful for the + * runtime measurement of the used stack. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_FILL_THREADS TRUE + +/** + * @brief Debug option, threads profiling. + * @details If enabled then a field is added to the @p thread_t structure that + * counts the system ticks occurred while executing the thread. + * + * @note The default is @p FALSE. + * @note This debug option is not currently compatible with the + * tickless mode. + */ +#define CH_DBG_THREADS_PROFILING FALSE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel hooks + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Threads descriptor structure extension. + * @details User fields added to the end of the @p thread_t structure. + */ +#define CH_CFG_THREAD_EXTRA_FIELDS \ + /* Add threads custom fields here.*/ + +/** + * @brief Threads initialization hook. + * @details User initialization code added to the @p chThdInit() API. + * + * @note It is invoked from within @p chThdInit() and implicitly from all + * the threads creation APIs. + */ +#define CH_CFG_THREAD_INIT_HOOK(tp) { \ + /* Add threads initialization code here.*/ \ +} + +/** + * @brief Threads finalization hook. + * @details User finalization code added to the @p chThdExit() API. + */ +#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ + /* Add threads finalization code here.*/ \ +} + +/** + * @brief Context switch hook. + * @details This hook is invoked just before switching between threads. + */ +#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ + /* Context switch code here.*/ \ +} + +/** + * @brief ISR enter hook. + */ +#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ + /* IRQ prologue code here.*/ \ +} + +/** + * @brief ISR exit hook. + */ +#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ + /* IRQ epilogue code here.*/ \ +} + +/** + * @brief Idle thread enter hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to activate a power saving mode. + */ +#define CH_CFG_IDLE_ENTER_HOOK() { \ + /* Idle-enter code here.*/ \ +} + +/** + * @brief Idle thread leave hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to deactivate a power saving mode. + */ +#define CH_CFG_IDLE_LEAVE_HOOK() { \ + /* Idle-leave code here.*/ \ +} + +/** + * @brief Idle Loop hook. + * @details This hook is continuously invoked by the idle thread loop. + */ +#define CH_CFG_IDLE_LOOP_HOOK() { \ + /* Idle loop code here.*/ \ +} + +/** + * @brief System tick event hook. + * @details This hook is invoked in the system tick handler immediately + * after processing the virtual timers queue. + */ +#define CH_CFG_SYSTEM_TICK_HOOK() { \ + /* System tick event code here.*/ \ +} + +/** + * @brief System halt hook. + * @details This hook is invoked in case to a system halting error before + * the system is halted. + */ +#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ + /* System halt code here.*/ \ +} + +/** + * @brief Trace hook. + * @details This hook is invoked each time a new record is written in the + * trace buffer. + */ +#define CH_CFG_TRACE_HOOK(tep) { \ + /* Trace code here.*/ \ +} + +/** @} */ + +/*===========================================================================*/ +/* Port-specific settings (override port settings defaulted in chcore.h). */ +/*===========================================================================*/ + +#endif /* CHCONF_H */ + +/** @} */ diff --git a/keyboards/chibios_test/teensy_lc_onekey/config.h b/keyboards/chibios_test/teensy_lc_onekey/config.h new file mode 100644 index 000000000..d9eb05d2a --- /dev/null +++ b/keyboards/chibios_test/teensy_lc_onekey/config.h @@ -0,0 +1,6 @@ +#ifndef KEYBOARDS_CHIBIOS_TEST_TEENSY_LC_ONEKEY_CONFIG_H_ +#define KEYBOARDS_CHIBIOS_TEST_TEENSY_LC_ONEKEY_CONFIG_H_ + +#include "../config.h" + +#endif /* KEYBOARDS_CHIBIOS_TEST_TEENSY_LC_ONEKEY_CONFIG_H_ */ diff --git a/keyboards/chibios_test/teensy_lc_onekey/halconf.h b/keyboards/chibios_test/teensy_lc_onekey/halconf.h new file mode 100644 index 000000000..b1d2cd550 --- /dev/null +++ b/keyboards/chibios_test/teensy_lc_onekey/halconf.h @@ -0,0 +1,187 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file templates/halconf.h + * @brief HAL configuration header. + * @details HAL configuration file, this file allows to enable or disable the + * various device drivers from your application. You may also use + * this file in order to override the device drivers default settings. + * + * @addtogroup HAL_CONF + * @{ + */ + +#ifndef _HALCONF_H_ +#define _HALCONF_H_ + +#include "mcuconf.h" + +/** + * @brief Enables the PAL subsystem. + */ +#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) +#define HAL_USE_PAL TRUE +#endif + +/** + * @brief Enables the ADC subsystem. + */ +#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) +#define HAL_USE_ADC FALSE +#endif + +/** + * @brief Enables the CAN subsystem. + */ +#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) +#define HAL_USE_CAN FALSE +#endif + +/** + * @brief Enables the DAC subsystem. + */ +#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) +#define HAL_USE_DAC FALSE +#endif + +/** + * @brief Enables the EXT subsystem. + */ +#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__) +#define HAL_USE_EXT FALSE +#endif + +/** + * @brief Enables the GPT subsystem. + */ +#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) +#define HAL_USE_GPT FALSE +#endif + +/** + * @brief Enables the I2C subsystem. + */ +#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) +#define HAL_USE_I2C FALSE +#endif + +/** + * @brief Enables the I2S subsystem. + */ +#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) +#define HAL_USE_I2S FALSE +#endif + +/** + * @brief Enables the ICU subsystem. + */ +#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) +#define HAL_USE_ICU FALSE +#endif + +/** + * @brief Enables the MAC subsystem. + */ +#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) +#define HAL_USE_MAC FALSE +#endif + +/** + * @brief Enables the MMC_SPI subsystem. + */ +#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) +#define HAL_USE_MMC_SPI FALSE +#endif + +/** + * @brief Enables the PWM subsystem. + */ +#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) +#define HAL_USE_PWM FALSE +#endif + +/** + * @brief Enables the RTC subsystem. + */ +#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) +#define HAL_USE_RTC FALSE +#endif + +/** + * @brief Enables the SDC subsystem. + */ +#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) +#define HAL_USE_SDC FALSE +#endif + +/** + * @brief Enables the SERIAL subsystem. + */ +#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL FALSE +#endif + +/** + * @brief Enables the SERIAL over USB subsystem. + */ +#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL_USB FALSE +#endif + +/** + * @brief Enables the SPI subsystem. + */ +#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) +#define HAL_USE_SPI FALSE +#endif + +/** + * @brief Enables the UART subsystem. + */ +#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) +#define HAL_USE_UART FALSE +#endif + +/** + * @brief Enables the USB subsystem. + */ +#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) +#define HAL_USE_USB TRUE +#endif + +/** + * @brief Enables the WDG subsystem. + */ +#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) +#define HAL_USE_WDG FALSE +#endif + +/*===========================================================================*/ +/* USB driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) +#define USB_USE_WAIT TRUE +#endif + +#endif /* _HALCONF_H_ */ + +/** @} */ diff --git a/keyboards/chibios_test/teensy_lc_onekey/instructions.md b/keyboards/chibios_test/teensy_lc_onekey/instructions.md new file mode 100644 index 000000000..16886a015 --- /dev/null +++ b/keyboards/chibios_test/teensy_lc_onekey/instructions.md @@ -0,0 +1,82 @@ +# Teensy LC, 3.0, 3.1, 3.2 support + +These ARM Teensies are now supported through [ChibiOS](http://chibios.org). + +You'll need to install an ARM toolchain, for instance from [gcc ARM embedded](https://launchpad.net/gcc-arm-embedded) website, or using your favourite package manager. After installing, you should be able to run `arm-none-eabi-gcc -v` in the command prompt and get sensible output. This toolchain is used instead of `avr-gcc`, which is only for AVR chips. Naturally you'll also need the usual development tools (e.g. `make`), just as in the AVR setting. + +Next, you'll need ChibiOS. For Teensies, you'll need code from two repositories: [chibios-main](https://github.com/ChibiOS/ChibiOS) and [chibios-contrib](https://github.com/ChibiOS/ChibiOS). If you're not using git, you can just download a [zip of chibios from here](https://github.com/ChibiOS/ChibiOS/archive/a7df9a891067621e8e1a5c2a2c0ceada82403afe.zip), unpack the zip, and rename/move the unpacked directory (named `ChibiOS-`) to `tmk_core/tool/chibios/chibios` (so that the file `tmk_core/tool/chibios/chibios/license.txt` exists). Now the same procedure with a [zip of chibios-contrib from here](https://github.com/ChibiOS/ChibiOS-Contrib/archive/e1311c4db6cd366cf760673f769e925741ac0ad3.zip): unpack and move `ChibiOS-Contrib-` to `tmk_core/tool/chibios/chibios-contrib`. + +(If you're using git, you can just clone the two repos: [chibios](https://github.com/ChibiOS/ChibiOS) and [chibios-contrib](https://github.com/ChibiOS/ChibiOS-Contrib). However - be warned that things may be somewhat out-of-sync (updates at different rates), so you may need to hunt a bit for the right commits.) + +(Why do we need chibios-contrib? Well, the main repo focuses on STM32 chips, and Freescale/NXP Kinetis chips are supported via the Contrib repository.) + +This should be it. Running `make` in `keyboard/teensy_lc_onekey` should create a working firmware in `build/`, called `ch.hex`. + +For more notes about the ChibiOS backend in TMK, see `tmk_core/protocol/chibios/README.md`. + +## About this onekey example + +It's set up for Teensy LC. To use 3.x, you'll need to edit the `Makefile` (and comment out one line in `mcuconf.h`). A sample makefile for Teensy 3.0 is provided as `Makefile.3.0`, can be used without renaming with `make -f Makefile.3.0`. Similarly for Teensy 3.2, there's `Makefile.3.2`. + +## Credits + +TMK itself is written by hasu, original sources [here](https://github.com/tmk/tmk_keyboard). + +The USB support for Kinetis MCUs is due to RedoX. His ChibiOS fork is also [on github](https://github.com/RedoXyde/ChibiOS); but it doesn't include Teensy LC definitions. + +## Features that are not implemented yet + +Currently only the more fancy suspend features are not there (power saving during suspend). The rest should work fine (reports either way are welcome). + +# Matrix programming notes + +The notes below explain what commands can be used to examine and set the status of Teensy pins. + +## ChibiOS pin manipulation basics + +### Pins + +Each pin sits on a "port", each of which comprises at most 32 individual pins. +So for instance "PTC5" from Kinetis manual/datasheet refers to port C (or GPIOA), pin 5. Most functions dealing with pins take 2 parameters which specify the pin -- the first being the port, the second being the pin number. + +Within ChibiOS, there are definitions which simplify this a bit for the Teensies. `TEENSY_PINn_IOPORT` represents the port of the MCU's pin connected Teensy's PIN `n`, and `TEENSY_PINn` represents its MCU's pin number. + +### Mode + +A MCU pin can be in several modes. The basic command to set a pin mode is + + palSetPadMode(TEENSY_PINn_IOPORT, TEENSY_PINn, PAL_MODE_INPUT_PULLUP); + +The last parameter is the mode. For keyboards, the usual ones that are used are `PAL_MODE_INPUT_PULLUP` (input with a pullup), `PAL_MODE_INPUT_PULLDOWN` (input with a pulldown), `PAL_MODE_INPUT` (input floating, a.k.a. Hi-Z), `PAL_MODE_OUTPUT_PUSHPULL` (output in the Arduino sense -- can be then set HIGH or LOW). + +### Setting + +Pins are set HIGH (after they've been put into `OUTPUT_PUSHPULL` mode) by + + palSetPad(TEENSY_PINn_IOPORT, TEENSY_PINn); + +or set LOW by + + palClearPad(TEENSY_PINn_IOPORT, TEENSY_PINn); + +Toggling can be done with + + palTogglePad(TEENSY_PINn_IOPORT, TEENSY_PINn); + +Alternatively, you can use + + palWritePad(TEENSY_PINn_IOPORT, TEENSY_PINn, bit); + +where `bit` is either `PAL_LOW` or `PAL_HIGH` (i.e. `0` or `1`). + +### Reading + +Reading pin status is done with + + palReadPad(TEENSY_PINn_IOPORT, TEENSY_PINn); + +The function returns either `PAL_HIGH` (actually `1`) or `PAL_LOW` (actually `0`). + +### Further docs + +All the commands that are available for pin manipulation through ChibiOS HAL are documented in [ChibiOS PAL driver docs](http://chibios.sourceforge.net/docs3/hal/group___p_a_l.html). diff --git a/keyboards/chibios_test/teensy_lc_onekey/ld/MKL26Z64.ld b/keyboards/chibios_test/teensy_lc_onekey/ld/MKL26Z64.ld new file mode 100644 index 000000000..fb141f888 --- /dev/null +++ b/keyboards/chibios_test/teensy_lc_onekey/ld/MKL26Z64.ld @@ -0,0 +1,105 @@ +/* + * Copyright (C) 2013-2016 Fabio Utzig, http://fabioutzig.com + * (C) 2016 flabbergast + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/* + * KL26Z64 memory setup. + */ +MEMORY +{ + flash0 : org = 0x00000000, len = 0x100 + flash1 : org = 0x00000400, len = 0x10 + flash2 : org = 0x00000410, len = 62k - 0x410 + flash3 : org = 0x0000F800, len = 2k + flash4 : org = 0x00000000, len = 0 + flash5 : org = 0x00000000, len = 0 + flash6 : org = 0x00000000, len = 0 + flash7 : org = 0x00000000, len = 0 + ram0 : org = 0x1FFFF800, len = 8k + ram1 : org = 0x00000000, len = 0 + ram2 : org = 0x00000000, len = 0 + ram3 : org = 0x00000000, len = 0 + ram4 : org = 0x00000000, len = 0 + ram5 : org = 0x00000000, len = 0 + ram6 : org = 0x00000000, len = 0 + ram7 : org = 0x00000000, len = 0 +} + +/* Flash region for the configuration bytes.*/ +SECTIONS +{ + .cfmprotect : ALIGN(4) SUBALIGN(4) + { + KEEP(*(.cfmconfig)) + } > flash1 +} + +/* For each data/text section two region are defined, a virtual region + and a load region (_LMA suffix).*/ + +/* Flash region to be used for exception vectors.*/ +REGION_ALIAS("VECTORS_FLASH", flash0); +REGION_ALIAS("VECTORS_FLASH_LMA", flash0); + +/* Flash region to be used for constructors and destructors.*/ +REGION_ALIAS("XTORS_FLASH", flash2); +REGION_ALIAS("XTORS_FLASH_LMA", flash2); + +/* Flash region to be used for code text.*/ +REGION_ALIAS("TEXT_FLASH", flash2); +REGION_ALIAS("TEXT_FLASH_LMA", flash2); + +/* Flash region to be used for read only data.*/ +REGION_ALIAS("RODATA_FLASH", flash2); +REGION_ALIAS("RODATA_FLASH_LMA", flash2); + +/* Flash region to be used for various.*/ +REGION_ALIAS("VARIOUS_FLASH", flash2); +REGION_ALIAS("VARIOUS_FLASH_LMA", flash2); + +/* Flash region to be used for RAM(n) initialization data.*/ +REGION_ALIAS("RAM_INIT_FLASH_LMA", flash2); + +/* RAM region to be used for Main stack. This stack accommodates the processing + of all exceptions and interrupts.*/ +REGION_ALIAS("MAIN_STACK_RAM", ram0); + +/* RAM region to be used for the process stack. This is the stack used by + the main() function.*/ +REGION_ALIAS("PROCESS_STACK_RAM", ram0); + +/* RAM region to be used for data segment.*/ +REGION_ALIAS("DATA_RAM", ram0); +REGION_ALIAS("DATA_RAM_LMA", flash2); + +/* RAM region to be used for BSS segment.*/ +REGION_ALIAS("BSS_RAM", ram0); + +/* RAM region to be used for the default heap.*/ +REGION_ALIAS("HEAP_RAM", ram0); + +__eeprom_workarea_start__ = ORIGIN(flash3); +__eeprom_workarea_size__ = LENGTH(flash3); +__eeprom_workarea_end__ = __eeprom_workarea_start__ + __eeprom_workarea_size__; + +/* Generic rules inclusion.*/ +INCLUDE rules.ld diff --git a/keyboards/chibios_test/teensy_lc_onekey/led.c b/keyboards/chibios_test/teensy_lc_onekey/led.c new file mode 100644 index 000000000..dfa60c107 --- /dev/null +++ b/keyboards/chibios_test/teensy_lc_onekey/led.c @@ -0,0 +1,32 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "hal.h" + +#include "led.h" + + +void led_set(uint8_t usb_led) { + if (usb_led & (1< + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "ch.h" +#include "hal.h" + +/* + * scan matrix + */ +#include "print.h" +#include "debug.h" +#include "util.h" +#include "matrix.h" +#include "wait.h" + +#ifndef DEBOUNCE +# define DEBOUNCE 5 +#endif +static uint8_t debouncing = DEBOUNCE; + +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; +static matrix_row_t matrix_debouncing[MATRIX_ROWS]; + +static matrix_row_t read_cols(void); +static void init_cols(void); +static void unselect_rows(void); +static void select_row(uint8_t row); + + +inline +uint8_t matrix_rows(void) +{ + return MATRIX_ROWS; +} + +inline +uint8_t matrix_cols(void) +{ + return MATRIX_COLS; +} + +#define LED_ON() do { palSetPad(TEENSY_PIN13_IOPORT, TEENSY_PIN13) ;} while (0) +#define LED_OFF() do { palClearPad(TEENSY_PIN13_IOPORT, TEENSY_PIN13); } while (0) +#define LED_TGL() do { palTogglePad(TEENSY_PIN13_IOPORT, TEENSY_PIN13); } while (0) + +void matrix_init(void) +{ + // initialize row and col + unselect_rows(); + init_cols(); + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + matrix_debouncing[i] = 0; + } + + //debug + debug_matrix = true; + LED_ON(); + wait_ms(500); + LED_OFF(); +} + +uint8_t matrix_scan(void) +{ + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + select_row(i); + wait_us(30); // without this wait read unstable value. + matrix_row_t cols = read_cols(); + if (matrix_debouncing[i] != cols) { + matrix_debouncing[i] = cols; + if (debouncing) { + debug("bounce!: "); debug_hex(debouncing); debug("\n"); + } + debouncing = DEBOUNCE; + } + unselect_rows(); + } + + if (debouncing) { + if (--debouncing) { + wait_ms(1); + } else { + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = matrix_debouncing[i]; + } + } + } + + return 1; +} + +inline +bool matrix_is_on(uint8_t row, uint8_t col) +{ + return (matrix[row] & ((matrix_row_t)1</os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) -MCU_FAMILY = STM32 -MCU_SERIES = STM32F0xx -# linker script to use -# it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ -# or /ld/ -MCU_LDSCRIPT = STM32F072xB -# startup code to use -# is should exist in /os/common/ports/ARMCMx/compilers/GCC/mk/ -MCU_STARTUP = stm32f0xx -# it should exist either in /os/hal/boards/ -# or /boards -BOARD = ST_STM32F072B_DISCOVERY -# Cortex version -# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4 -MCU = cortex-m0 -# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 -ARMV = 6 -# If you want to be able to jump to bootloader from firmware on STM32 MCUs, -# set the correct BOOTLOADER_ADDRESS. Either set it here, or define it in -# ./bootloader_defs.h or in ./boards//bootloader_defs.h (if you have -# a custom board definition that you plan to reuse). -# If you're not setting it here, leave it commented out. -# It is chip dependent, the correct number can be looked up here (page 175): -# http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf -# This also requires a patch to chibios: -# /tmk_core/tool/chibios/ch-bootloader-jump.patch -#STM32_BOOTLOADER_ADDRESS = 0x1FFFC800 - -# Build Options -# comment out to disable the options. -# -#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration -MOUSEKEY_ENABLE ?= yes # Mouse keys -EXTRAKEY_ENABLE ?= yes # Audio control and System control -CONSOLE_ENABLE ?= yes # Console for debug -COMMAND_ENABLE ?= yes # Commands for debug and configuration -SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend -NKRO_ENABLE ?= yes # USB Nkey Rollover -CUSTOM_MATRIX ?= yes # Custom matrix file - -ifndef QUANTUM_DIR - include ../../Makefile -endif diff --git a/keyboards/stm32_f072_onekey/bootloader_defs.h b/keyboards/stm32_f072_onekey/bootloader_defs.h deleted file mode 100644 index 02c48c4e6..000000000 --- a/keyboards/stm32_f072_onekey/bootloader_defs.h +++ /dev/null @@ -1,7 +0,0 @@ -/* Address for jumping to bootloader on STM32 chips. */ -/* It is chip dependent, the correct number can be looked up here (page 175): - * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf - * This also requires a patch to chibios: - * /tmk_core/tool/chibios/ch-bootloader-jump.patch - */ -#define STM32_BOOTLOADER_ADDRESS 0x1FFFC800 diff --git a/keyboards/stm32_f072_onekey/chconf.h b/keyboards/stm32_f072_onekey/chconf.h deleted file mode 100644 index 99fa8ce39..000000000 --- a/keyboards/stm32_f072_onekey/chconf.h +++ /dev/null @@ -1,524 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#define CH_CFG_ST_RESOLUTION 32 - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#define CH_CFG_ST_FREQUENCY 10000 - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#define CH_CFG_ST_TIMEDELTA 2 - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#define CH_CFG_TIME_QUANTUM 0 - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#define CH_CFG_MEMCORE_SIZE 0 - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#define CH_CFG_NO_IDLE_THREAD FALSE - -/* Use __WFI in the idle thread for waiting. Does lower the power - * consumption. */ -#define CORTEX_ENABLE_WFI_IDLE TRUE - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#define CH_CFG_OPTIMIZE_SPEED FALSE - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_TM FALSE - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_REGISTRY TRUE - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_WAITEXIT TRUE - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_SEMAPHORES TRUE - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_MUTEXES TRUE - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#define CH_CFG_USE_CONDVARS TRUE - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_EVENTS TRUE - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_MESSAGES TRUE - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#define CH_CFG_USE_MAILBOXES TRUE - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_MEMCORE FALSE - -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#define CH_CFG_USE_HEAP FALSE - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_MEMPOOLS FALSE - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#define CH_CFG_USE_DYNAMIC FALSE - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. - * - * @note The default is @p FALSE. - */ -#define CH_DBG_STATISTICS FALSE - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. - * - * @note The default is @p FALSE. - */ -#define CH_DBG_SYSTEM_STATE_CHECK FALSE - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#define CH_DBG_ENABLE_CHECKS FALSE - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. - * - * @note The default is @p FALSE. - */ -#define CH_DBG_ENABLE_ASSERTS FALSE - -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#define CH_DBG_TRACE_BUFFER_SIZE 128 - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#define CH_DBG_ENABLE_STACK_CHECK FALSE - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#define CH_DBG_FILL_THREADS FALSE - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#define CH_DBG_THREADS_PROFILING FALSE - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p chThdInit() API. - * - * @note It is invoked from within @p chThdInit() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} - -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. - */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} - -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} - -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. - */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} - -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} - -/** @} */ - -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ - -#endif /* CHCONF_H */ - -/** @} */ diff --git a/keyboards/stm32_f072_onekey/config.h b/keyboards/stm32_f072_onekey/config.h deleted file mode 100644 index bb5251e1d..000000000 --- a/keyboards/stm32_f072_onekey/config.h +++ /dev/null @@ -1,76 +0,0 @@ -/* -Copyright 2015 Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#ifndef CONFIG_H -#define CONFIG_H - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6464 -#define DEVICE_VER 0x0001 -/* in python2: list(u"whatever".encode('utf-16-le')) */ -/* at most 32 characters or the ugly hack in usb_main.c borks */ -#define MANUFACTURER "TMK" -#define USBSTR_MANUFACTURER 'T', '\x00', 'M', '\x00', 'K', '\x00', ' ', '\x00', '\xc6', '\x00' -#define PRODUCT "ChibiOS TMK test" -#define USBSTR_PRODUCT 'C', '\x00', 'h', '\x00', 'i', '\x00', 'b', '\x00', 'i', '\x00', 'O', '\x00', 'S', '\x00', ' ', '\x00', 'T', '\x00', 'M', '\x00', 'K', '\x00', ' ', '\x00', 't', '\x00', 'e', '\x00', 's', '\x00', 't', '\x00' -#define DESCRIPTION "TMK keyboard firmware over ChibiOS" - -/* key matrix size */ -#define MATRIX_ROWS 1 -#define MATRIX_COLS 1 -#define DIODE_DIRECTION COL2ROW - -/* define if matrix has ghost */ -//#define MATRIX_HAS_GHOST - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -/* key combination for command */ -#define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ -) - - - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -#endif diff --git a/keyboards/stm32_f072_onekey/halconf.h b/keyboards/stm32_f072_onekey/halconf.h deleted file mode 100644 index 1a450d632..000000000 --- a/keyboards/stm32_f072_onekey/halconf.h +++ /dev/null @@ -1,353 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. - * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef _HALCONF_H_ -#define _HALCONF_H_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC FALSE -#endif - -/** - * @brief Enables the EXT subsystem. - */ -#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__) -#define HAL_USE_EXT FALSE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT FALSE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C FALSE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM FALSE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL FALSE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 64 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 16 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 64 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 256 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif - -#endif /* _HALCONF_H_ */ - -/** @} */ diff --git a/keyboards/stm32_f072_onekey/keymaps/default/keymap.c b/keyboards/stm32_f072_onekey/keymaps/default/keymap.c deleted file mode 100644 index 6c48149f8..000000000 --- a/keyboards/stm32_f072_onekey/keymaps/default/keymap.c +++ /dev/null @@ -1,25 +0,0 @@ -/* -Copyright 2012,2013 Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include "stm32_f072_onekey.h" - -const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - {{KC_CAPS}}, // test with KC_CAPS, KC_A, KC_BTLD -}; - -const uint16_t fn_actions[] = { -}; diff --git a/keyboards/stm32_f072_onekey/led.c b/keyboards/stm32_f072_onekey/led.c deleted file mode 100644 index 18edb8ba8..000000000 --- a/keyboards/stm32_f072_onekey/led.c +++ /dev/null @@ -1,34 +0,0 @@ -/* -Copyright 2012 Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include "hal.h" - -#include "led.h" - - -void led_set(uint8_t usb_led) -{ - (void)usb_led; - if (usb_led & (1< - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include "ch.h" -#include "hal.h" - -/* - * scan matrix - */ -#include "print.h" -#include "debug.h" -#include "util.h" -#include "matrix.h" -#include "wait.h" - -#ifndef DEBOUNCE -# define DEBOUNCE 5 -#endif -static uint8_t debouncing = DEBOUNCE; - -/* matrix state(1:on, 0:off) */ -static matrix_row_t matrix[MATRIX_ROWS]; -static matrix_row_t matrix_debouncing[MATRIX_ROWS]; - -static matrix_row_t read_cols(void); -static void init_cols(void); -static void unselect_rows(void); -static void select_row(uint8_t row); - - -inline -uint8_t matrix_rows(void) -{ - return MATRIX_ROWS; -} - -inline -uint8_t matrix_cols(void) -{ - return MATRIX_COLS; -} - -#define LED_ON() do { palSetPad(GPIOC, GPIOC_LED_BLUE) ;} while (0) -#define LED_OFF() do { palClearPad(GPIOC, GPIOC_LED_BLUE); } while (0) -#define LED_TGL() do { palTogglePad(GPIOC, GPIOC_LED_BLUE); } while (0) - -void matrix_init(void) -{ - // initialize row and col - unselect_rows(); - init_cols(); - - // initialize matrix state: all keys off - for (uint8_t i=0; i < MATRIX_ROWS; i++) { - matrix[i] = 0; - matrix_debouncing[i] = 0; - } - - //debug - debug_matrix = true; - LED_ON(); - wait_ms(500); - LED_OFF(); -} - -uint8_t matrix_scan(void) -{ - for (uint8_t i = 0; i < MATRIX_ROWS; i++) { - select_row(i); - wait_us(30); // without this wait read unstable value. - matrix_row_t cols = read_cols(); - if (matrix_debouncing[i] != cols) { - matrix_debouncing[i] = cols; - if (debouncing) { - debug("bounce!: "); debug_hex(debouncing); debug("\n"); - } - debouncing = DEBOUNCE; - } - unselect_rows(); - } - - if (debouncing) { - if (--debouncing) { - wait_ms(1); - } else { - for (uint8_t i = 0; i < MATRIX_ROWS; i++) { - matrix[i] = matrix_debouncing[i]; - } - } - } - - return 1; -} - -inline -bool matrix_is_on(uint8_t row, uint8_t col) -{ - return (matrix[row] & ((matrix_row_t)1</os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) -MCU_FAMILY = STM32 -MCU_SERIES = STM32F1xx -# linker script to use -# it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ -# or /ld/ -# startup code to use -# is should exist in /os/common/ports/ARMCMx/compilers/GCC/mk/ -MCU_STARTUP = stm32f1xx -# it should exist either in /os/hal/boards/ -# or /boards -# Cortex version -# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4 -MCU = cortex-m3 -# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 -ARMV = 7 -# If you want to be able to jump to bootloader from firmware on STM32 MCUs, -# set the correct BOOTLOADER_ADDRESS. Either set it here, or define it in -# ./bootloader_defs.h or in ./boards//bootloader_defs.h (if you have -# a custom board definition that you plan to reuse). -# If you're not setting it here, leave it commented out. -# It is chip dependent, the correct number can be looked up here (page 175): -# http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf -# This also requires a patch to chibios: -# /tmk_core/tool/chibios/ch-bootloader-jump.patch -#STM32_BOOTLOADER_ADDRESS = 0x1FFFC800 - -# Build Options -# comment out to disable the options. -# -#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration -## BOOTMAGIC is not supported on STM32 chips yet. -MOUSEKEY_ENABLE ?= yes # Mouse keys -EXTRAKEY_ENABLE ?= yes # Audio control and System control -# CONSOLE_ENABLE ?= yes # Console for debug -COMMAND_ENABLE ?= yes # Commands for debug and configuration -SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend -NKRO_ENABLE ?= yes # USB Nkey Rollover -CUSTOM_MATRIX ?= yes # Custom matrix file - -ifndef QUANTUM_DIR - include ../../Makefile -endif diff --git a/keyboards/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.c b/keyboards/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.c deleted file mode 100644 index 31319ef57..000000000 --- a/keyboards/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.c +++ /dev/null @@ -1,49 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#include "hal.h" - -/** - * @brief PAL setup. - * @details Digital I/O ports static configuration as defined in @p board.h. - * This variable is used by the HAL when initializing the PAL driver. - */ -#if HAL_USE_PAL || defined(__DOXYGEN__) -const PALConfig pal_default_config = -{ - {VAL_GPIOAODR, VAL_GPIOACRL, VAL_GPIOACRH}, - {VAL_GPIOBODR, VAL_GPIOBCRL, VAL_GPIOBCRH}, - {VAL_GPIOCODR, VAL_GPIOCCRL, VAL_GPIOCCRH}, - {VAL_GPIODODR, VAL_GPIODCRL, VAL_GPIODCRH}, - {VAL_GPIOEODR, VAL_GPIOECRL, VAL_GPIOECRH}, -}; -#endif - -/* - * Early initialization code. - * This initialization must be performed just after stack setup and before - * any other initialization. - */ -void __early_init(void) { - - stm32_clock_init(); -} - -/* - * Board-specific initialization code. - */ -void boardInit(void) { -} diff --git a/keyboards/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.h b/keyboards/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.h deleted file mode 100644 index 7253e7782..000000000 --- a/keyboards/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.h +++ /dev/null @@ -1,166 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#ifndef _BOARD_H_ -#define _BOARD_H_ - -/* - * Setup for a Generic STM32F103 board. - */ - -/* - * Board identifier. - */ -#define BOARD_GENERIC_STM32_F103 -#define BOARD_NAME "Generic STM32F103x board" - -/* - * Board frequencies. - */ -#define STM32_LSECLK 32768 -#define STM32_HSECLK 8000000 - -/* - * MCU type, supported types are defined in ./os/hal/platforms/hal_lld.h. - */ -#define STM32F103xB - -/* - * IO pins assignments - */ - -/* on-board */ - -#define GPIOC_LED 13 -#define GPIOD_OSC_IN 0 -#define GPIOD_OSC_OUT 1 - -/* In case your board has a "USB enable" hardware - controlled by a pin, define it here. (It could be just - a 1.5k resistor connected to D+ line.) -*/ -/* -#define GPIOB_USB_DISC 10 -*/ - -/* - * I/O ports initial setup, this configuration is established soon after reset - * in the initialization code. - * - * The digits have the following meaning: - * 0 - Analog input. - * 1 - Push Pull output 10MHz. - * 2 - Push Pull output 2MHz. - * 3 - Push Pull output 50MHz. - * 4 - Digital input. - * 5 - Open Drain output 10MHz. - * 6 - Open Drain output 2MHz. - * 7 - Open Drain output 50MHz. - * 8 - Digital input with PullUp or PullDown resistor depending on ODR. - * 9 - Alternate Push Pull output 10MHz. - * A - Alternate Push Pull output 2MHz. - * B - Alternate Push Pull output 50MHz. - * C - Reserved. - * D - Alternate Open Drain output 10MHz. - * E - Alternate Open Drain output 2MHz. - * F - Alternate Open Drain output 50MHz. - * Please refer to the STM32 Reference Manual for details. - */ - -/* - * Port A setup. - * Everything input with pull-up except: - * PA2 - Alternate output (USART2 TX). - * PA3 - Normal input (USART2 RX). - * PA9 - Alternate output (USART1 TX). - * PA10 - Normal input (USART1 RX). - */ -#define VAL_GPIOACRL 0x88884B88 /* PA7...PA0 */ -#define VAL_GPIOACRH 0x888884B8 /* PA15...PA8 */ -#define VAL_GPIOAODR 0xFFFFFFFF - -/* - * Port B setup. - * Everything input with pull-up except: - * PB10 - Push Pull output (USB switch). - */ -#define VAL_GPIOBCRL 0x88888888 /* PB7...PB0 */ -#define VAL_GPIOBCRH 0x88888388 /* PB15...PB8 */ -#define VAL_GPIOBODR 0xFFFFFFFF - -/* - * Port C setup. - * Everything input with pull-up except: - * PC13 - Push Pull output (LED). - */ -#define VAL_GPIOCCRL 0x88888888 /* PC7...PC0 */ -#define VAL_GPIOCCRH 0x88388888 /* PC15...PC8 */ -#define VAL_GPIOCODR 0xFFFFFFFF - -/* - * Port D setup. - * Everything input with pull-up except: - * PD0 - Normal input (XTAL). - * PD1 - Normal input (XTAL). - */ -#define VAL_GPIODCRL 0x88888844 /* PD7...PD0 */ -#define VAL_GPIODCRH 0x88888888 /* PD15...PD8 */ -#define VAL_GPIODODR 0xFFFFFFFF - -/* - * Port E setup. - * Everything input with pull-up except: - */ -#define VAL_GPIOECRL 0x88888888 /* PE7...PE0 */ -#define VAL_GPIOECRH 0x88888888 /* PE15...PE8 */ -#define VAL_GPIOEODR 0xFFFFFFFF - -/* - * USB bus activation macro, required by the USB driver. - */ -/* The point is that most of the generic STM32F103* boards - have a 1.5k resistor connected on one end to the D+ line - and on the other end to some pin. Or even a slightly more - complicated "USB enable" circuit, controlled by a pin. - That should go here. - - However on some boards (e.g. one that I have), there's no - such hardware. In which case it's better to not do anything. -*/ -/* -#define usb_lld_connect_bus(usbp) palClearPad(GPIOB, GPIOB_USB_DISC) -*/ -#define usb_lld_connect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_INPUT); - -/* - * USB bus de-activation macro, required by the USB driver. - */ -/* -#define usb_lld_disconnect_bus(usbp) palSetPad(GPIOB, GPIOB_USB_DISC) -*/ -#define usb_lld_disconnect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_OUTPUT_PUSHPULL); palClearPad(GPIOA, 12); - -#if !defined(_FROM_ASM_) -#ifdef __cplusplus -extern "C" { -#endif - void boardInit(void); -#ifdef __cplusplus -} -#endif -#endif /* _FROM_ASM_ */ - -#endif /* _BOARD_H_ */ diff --git a/keyboards/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.mk b/keyboards/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.mk deleted file mode 100644 index d692c0ee4..000000000 --- a/keyboards/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.mk +++ /dev/null @@ -1,5 +0,0 @@ -# List of all the board related files. -BOARDSRC = $(KEYBOARD_PATH)/boards/GENERIC_STM32_F103/board.c - -# Required include directories -BOARDINC = $(KEYBOARD_PATH)/boards/GENERIC_STM32_F103 diff --git a/keyboards/stm32_f103_onekey/boards/GENERIC_STM32_F103/mini_stm32_mapping.png b/keyboards/stm32_f103_onekey/boards/GENERIC_STM32_F103/mini_stm32_mapping.png deleted file mode 100644 index c44a7d9eb..000000000 Binary files a/keyboards/stm32_f103_onekey/boards/GENERIC_STM32_F103/mini_stm32_mapping.png and /dev/null differ diff --git a/keyboards/stm32_f103_onekey/boards/maple_mini_mapping.png b/keyboards/stm32_f103_onekey/boards/maple_mini_mapping.png deleted file mode 100644 index 12cfa81db..000000000 Binary files a/keyboards/stm32_f103_onekey/boards/maple_mini_mapping.png and /dev/null differ diff --git a/keyboards/stm32_f103_onekey/bootloader_defs.h b/keyboards/stm32_f103_onekey/bootloader_defs.h deleted file mode 100644 index 0f45203cb..000000000 --- a/keyboards/stm32_f103_onekey/bootloader_defs.h +++ /dev/null @@ -1,10 +0,0 @@ -/* Address for jumping to bootloader on STM32 chips. */ -/* It is chip dependent, the correct number can be looked up here (page 175): - * http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf - * This also requires a patch to chibios: - * /tmk_core/tool/chibios/ch-bootloader-jump.patch - */ - -// STM32F103* does NOT have an USB bootloader in ROM (only serial), -// so setting anything here does not make much sense -// #define STM32_BOOTLOADER_ADDRESS 0x1FFFC800 diff --git a/keyboards/stm32_f103_onekey/chconf.h b/keyboards/stm32_f103_onekey/chconf.h deleted file mode 100644 index dfb1f9dfb..000000000 --- a/keyboards/stm32_f103_onekey/chconf.h +++ /dev/null @@ -1,524 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#define CH_CFG_ST_RESOLUTION 16 - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#define CH_CFG_ST_FREQUENCY 2000 - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#define CH_CFG_ST_TIMEDELTA 2 - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#define CH_CFG_TIME_QUANTUM 0 - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#define CH_CFG_MEMCORE_SIZE 0 - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#define CH_CFG_NO_IDLE_THREAD FALSE - -/* Use __WFI in the idle thread for waiting. Does lower the power - * consumption. */ -#define CORTEX_ENABLE_WFI_IDLE TRUE - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#define CH_CFG_OPTIMIZE_SPEED TRUE - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_TM FALSE - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_REGISTRY TRUE - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_WAITEXIT TRUE - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_SEMAPHORES TRUE - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_MUTEXES TRUE - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#define CH_CFG_USE_CONDVARS TRUE - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_EVENTS TRUE - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_MESSAGES TRUE - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#define CH_CFG_USE_MAILBOXES TRUE - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_MEMCORE TRUE - -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#define CH_CFG_USE_HEAP TRUE - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_MEMPOOLS FALSE - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#define CH_CFG_USE_DYNAMIC FALSE - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. - * - * @note The default is @p FALSE. - */ -#define CH_DBG_STATISTICS FALSE - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. - * - * @note The default is @p FALSE. - */ -#define CH_DBG_SYSTEM_STATE_CHECK FALSE - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#define CH_DBG_ENABLE_CHECKS FALSE - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. - * - * @note The default is @p FALSE. - */ -#define CH_DBG_ENABLE_ASSERTS FALSE - -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#define CH_DBG_TRACE_BUFFER_SIZE 128 - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#define CH_DBG_ENABLE_STACK_CHECK FALSE - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#define CH_DBG_FILL_THREADS FALSE - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#define CH_DBG_THREADS_PROFILING FALSE - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p chThdInit() API. - * - * @note It is invoked from within @p chThdInit() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} - -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. - */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} - -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} - -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. - */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} - -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} - -/** @} */ - -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ - -#endif /* CHCONF_H */ - -/** @} */ diff --git a/keyboards/stm32_f103_onekey/config.h b/keyboards/stm32_f103_onekey/config.h deleted file mode 100644 index 19b14fe61..000000000 --- a/keyboards/stm32_f103_onekey/config.h +++ /dev/null @@ -1,75 +0,0 @@ -/* -Copyright 2015 Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#ifndef CONFIG_H -#define CONFIG_H - - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6464 -#define DEVICE_VER 0x0001 -/* in python2: list(u"whatever".encode('utf-16-le')) */ -/* at most 32 characters or the ugly hack in usb_main.c borks */ -#define MANUFACTURER "TMK" -#define USBSTR_MANUFACTURER 'T', '\x00', 'M', '\x00', 'K', '\x00', ' ', '\x00', '\xc6', '\x00' -#define PRODUCT "ChibiOS TMK test" -#define USBSTR_PRODUCT 'C', '\x00', 'h', '\x00', 'i', '\x00', 'b', '\x00', 'i', '\x00', 'O', '\x00', 'S', '\x00', ' ', '\x00', 'T', '\x00', 'M', '\x00', 'K', '\x00', ' ', '\x00', 't', '\x00', 'e', '\x00', 's', '\x00', 't', '\x00' -#define DESCRIPTION "TMK keyboard firmware over ChibiOS" - -/* key matrix size */ -#define MATRIX_ROWS 1 -#define MATRIX_COLS 1 -#define DIODE_DIRECTION COL2ROW - -/* define if matrix has ghost */ -//#define MATRIX_HAS_GHOST - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -/* key combination for command */ -#define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ -) - - - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -#endif diff --git a/keyboards/stm32_f103_onekey/flash.sh b/keyboards/stm32_f103_onekey/flash.sh deleted file mode 100755 index 15501dfa5..000000000 --- a/keyboards/stm32_f103_onekey/flash.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -Arduino_STM32_usb_hid/tools/linux/maple_upload ttyACM0 2 1EAF:0003 build/ch.bin diff --git a/keyboards/stm32_f103_onekey/halconf.h b/keyboards/stm32_f103_onekey/halconf.h deleted file mode 100644 index 1a450d632..000000000 --- a/keyboards/stm32_f103_onekey/halconf.h +++ /dev/null @@ -1,353 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. - * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef _HALCONF_H_ -#define _HALCONF_H_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC FALSE -#endif - -/** - * @brief Enables the EXT subsystem. - */ -#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__) -#define HAL_USE_EXT FALSE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT FALSE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C FALSE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM FALSE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL FALSE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 64 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 16 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 64 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 256 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif - -#endif /* _HALCONF_H_ */ - -/** @} */ diff --git a/keyboards/stm32_f103_onekey/keymaps/default/keymap.c b/keyboards/stm32_f103_onekey/keymaps/default/keymap.c deleted file mode 100644 index c3b0f0840..000000000 --- a/keyboards/stm32_f103_onekey/keymaps/default/keymap.c +++ /dev/null @@ -1,25 +0,0 @@ -/* -Copyright 2012,2013 Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include "stm32_f103_onekey.h" - -const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - {{KC_CAPS}}, // test with KC_CAPS, KC_A, KC_BTLD -}; - -const uint16_t fn_actions[] = { -}; diff --git a/keyboards/stm32_f103_onekey/ld/STM32F103x8_stm32duino_bootloader.ld b/keyboards/stm32_f103_onekey/ld/STM32F103x8_stm32duino_bootloader.ld deleted file mode 100644 index 00613328e..000000000 --- a/keyboards/stm32_f103_onekey/ld/STM32F103x8_stm32duino_bootloader.ld +++ /dev/null @@ -1,88 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/* - * ST32F103xB memory setup for use with the maplemini bootloader. - * You will have to - * #define CORTEX_VTOR_INIT 0x5000 - * in your projects chconf.h - */ -MEMORY -{ - flash0 : org = 0x08002000, len = 128k - 0x2000 - flash1 : org = 0x00000000, len = 0 - flash2 : org = 0x00000000, len = 0 - flash3 : org = 0x00000000, len = 0 - flash4 : org = 0x00000000, len = 0 - flash5 : org = 0x00000000, len = 0 - flash6 : org = 0x00000000, len = 0 - flash7 : org = 0x00000000, len = 0 - ram0 : org = 0x20000000, len = 20k - ram1 : org = 0x00000000, len = 0 - ram2 : org = 0x00000000, len = 0 - ram3 : org = 0x00000000, len = 0 - ram4 : org = 0x00000000, len = 0 - ram5 : org = 0x00000000, len = 0 - ram6 : org = 0x00000000, len = 0 - ram7 : org = 0x00000000, len = 0 -} - -/* For each data/text section two region are defined, a virtual region - and a load region (_LMA suffix).*/ - -/* Flash region to be used for exception vectors.*/ -REGION_ALIAS("VECTORS_FLASH", flash0); -REGION_ALIAS("VECTORS_FLASH_LMA", flash0); - -/* Flash region to be used for constructors and destructors.*/ -REGION_ALIAS("XTORS_FLASH", flash0); -REGION_ALIAS("XTORS_FLASH_LMA", flash0); - -/* Flash region to be used for code text.*/ -REGION_ALIAS("TEXT_FLASH", flash0); -REGION_ALIAS("TEXT_FLASH_LMA", flash0); - -/* Flash region to be used for read only data.*/ -REGION_ALIAS("RODATA_FLASH", flash0); -REGION_ALIAS("RODATA_FLASH_LMA", flash0); - -/* Flash region to be used for various.*/ -REGION_ALIAS("VARIOUS_FLASH", flash0); -REGION_ALIAS("VARIOUS_FLASH_LMA", flash0); - -/* Flash region to be used for RAM(n) initialization data.*/ -REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0); - -/* RAM region to be used for Main stack. This stack accommodates the processing - of all exceptions and interrupts.*/ -REGION_ALIAS("MAIN_STACK_RAM", ram0); - -/* RAM region to be used for the process stack. This is the stack used by - the main() function.*/ -REGION_ALIAS("PROCESS_STACK_RAM", ram0); - -/* RAM region to be used for data segment.*/ -REGION_ALIAS("DATA_RAM", ram0); -REGION_ALIAS("DATA_RAM_LMA", flash0); - -/* RAM region to be used for BSS segment.*/ -REGION_ALIAS("BSS_RAM", ram0); - -/* RAM region to be used for the default heap.*/ -REGION_ALIAS("HEAP_RAM", ram0); - -/* Generic rules inclusion.*/ -INCLUDE rules.ld diff --git a/keyboards/stm32_f103_onekey/led.c b/keyboards/stm32_f103_onekey/led.c deleted file mode 100644 index f5c55f7d9..000000000 --- a/keyboards/stm32_f103_onekey/led.c +++ /dev/null @@ -1,43 +0,0 @@ -/* -Copyright 2012 Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include "hal.h" -#include "led.h" - - -void led_set(uint8_t usb_led) -{ - if (usb_led & (1< - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include "ch.h" -#include "hal.h" - -/* - * scan matrix - */ -#include "print.h" -#include "debug.h" -#include "util.h" -#include "matrix.h" -#include "wait.h" - -#ifndef DEBOUNCE -# define DEBOUNCE 5 -#endif -static uint8_t debouncing = DEBOUNCE; - -/* matrix state(1:on, 0:off) */ -static matrix_row_t matrix[MATRIX_ROWS]; -static matrix_row_t matrix_debouncing[MATRIX_ROWS]; - -static matrix_row_t read_cols(void); -static void init_cols(void); -static void unselect_rows(void); -static void select_row(uint8_t row); - - -inline -uint8_t matrix_rows(void) -{ - return MATRIX_ROWS; -} - -inline -uint8_t matrix_cols(void) -{ - return MATRIX_COLS; -} - -/* generic STM32F103C8T6 board */ -#ifdef BOARD_GENERIC_STM32_F103 -#define LED_ON() do { palClearPad(GPIOC, GPIOC_LED) ;} while (0) -#define LED_OFF() do { palSetPad(GPIOC, GPIOC_LED); } while (0) -#define LED_TGL() do { palTogglePad(GPIOC, GPIOC_LED); } while (0) -#endif - -/* Maple Mini */ -#ifdef BOARD_MAPLEMINI_STM32_F103 -#define LED_ON() do { palSetPad(GPIOB, 1) ;} while (0) -#define LED_OFF() do { palClearPad(GPIOB, 1); } while (0) -#define LED_TGL() do { palTogglePad(GPIOB, 1); } while (0) -#endif - -void matrix_init(void) -{ - // initialize row and col - unselect_rows(); - init_cols(); - - // initialize matrix state: all keys off - for (uint8_t i=0; i < MATRIX_ROWS; i++) { - matrix[i] = 0; - matrix_debouncing[i] = 0; - } - - //debug - debug_matrix = true; - LED_ON(); - wait_ms(500); - LED_OFF(); -} - -uint8_t matrix_scan(void) -{ - for (uint8_t i = 0; i < MATRIX_ROWS; i++) { - select_row(i); - wait_us(30); // without this wait read unstable value. - matrix_row_t cols = read_cols(); - if (matrix_debouncing[i] != cols) { - matrix_debouncing[i] = cols; - if (debouncing) { - debug("bounce!: "); debug_hex(debouncing); debug("\n"); - } - debouncing = DEBOUNCE; - } - unselect_rows(); - } - - if (debouncing) { - if (--debouncing) { - wait_ms(1); - } else { - for (uint8_t i = 0; i < MATRIX_ROWS; i++) { - matrix[i] = matrix_debouncing[i]; - } - } - } - - return 1; -} - -inline -bool matrix_is_on(uint8_t row, uint8_t col) -{ - return (matrix[row] & ((matrix_row_t)1</os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) -# - For Teensies, FAMILY = KINETIS and SERIES is either -# KL2x (LC) or K20x (3.0,3.1,3.2). -MCU_FAMILY = KINETIS -MCU_SERIES = KL2x - -# Linker script to use -# - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ -# or /ld/ -# - NOTE: a custom ld script is needed for EEPROM on Teensy LC -# - LDSCRIPT = -# - MKL26Z64 for Teensy LC -# - MK20DX128 for Teensy 3.0 -# - MK20DX256 for Teensy 3.1 and 3.2 -MCU_LDSCRIPT = MKL26Z64 - -# Startup code to use -# - it should exist in /os/common/ports/ARMCMx/compilers/GCC/mk/ -# - STARTUP = -# - kl2x for Teensy LC -# - k20x5 for Teensy 3.0 -# - k20x7 for Teensy 3.1 and 3.2 -MCU_STARTUP = kl2x - -# Board: it should exist either in /os/hal/boards/ -# or /boards -# - BOARD = -# - PJRC_TEENSY_LC for Teensy LC -# - PJRC_TEENSY_3 for Teensy 3.0 -# - PJRC_TEENSY_3_1 for Teensy 3.1 or 3.2 -BOARD = PJRC_TEENSY_LC - -# Cortex version -# Teensy LC is cortex-m0plus; Teensy 3.x are cortex-m4 -MCU = cortex-m0plus - -# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 -# I.e. 6 for Teensy LC; 7 for Teensy 3.x -ARMV = 6 - -# Build Options -# comment out to disable the options. -# -BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration -## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.) -MOUSEKEY_ENABLE ?= yes # Mouse keys -EXTRAKEY_ENABLE ?= yes # Audio control and System control -CONSOLE_ENABLE ?= yes # Console for debug -COMMAND_ENABLE ?= yes # Commands for debug and configuration -SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend -NKRO_ENABLE ?= yes # USB Nkey Rollover -CUSTOM_MATRIX ?= yes # Custom matrix file - -ifndef QUANTUM_DIR - include ../../Makefile -endif diff --git a/keyboards/teensy_lc_onekey/Makefile.3.0 b/keyboards/teensy_lc_onekey/Makefile.3.0 deleted file mode 100644 index dbf12c363..000000000 --- a/keyboards/teensy_lc_onekey/Makefile.3.0 +++ /dev/null @@ -1,77 +0,0 @@ -# Target file name (without extension). -PROJECT = ch - -# Directory common source files exist -TMK_DIR = ../../tmk_core - -# Directory keyboard dependent files exist -TARGET_DIR = . - -# project specific files -SRC = matrix.c \ - led.c - -ifdef KEYMAP - SRC := keymap_$(KEYMAP).c $(SRC) -else - SRC := keymap_plain.c $(SRC) -endif - -CONFIG_H = config.h - -## chip/board settings -# - the next two should match the directories in -# /os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) -# - For Teensies, FAMILY = KINETIS and SERIES is either -# KL2x (LC) or K20x (3.0,3.1,3.2). -MCU_FAMILY = KINETIS -MCU_SERIES = K20x - -# Linker script to use -# - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ -# or /ld/ -# - NOTE: a custom ld script is needed for EEPROM on Teensy LC -# - LDSCRIPT = -# - MKL26Z64 for Teensy LC -# - MK20DX128 for Teensy 3.0 -# - MK20DX256 for Teensy 3.1 and 3.2 -MCU_LDSCRIPT = MK20DX128 - -# Startup code to use -# - it should exist in /os/common/ports/ARMCMx/compilers/GCC/mk/ -# - STARTUP = -# - kl2x for Teensy LC -# - k20x5 for Teensy 3.0 -# - k20x7 for Teensy 3.1 and 3.2 -MCU_STARTUP = k20x5 - -# Board: it should exist either in /os/hal/boards/ -# or /boards -# - BOARD = -# - PJRC_TEENSY_LC for Teensy LC -# - PJRC_TEENSY_3 for Teensy 3.0 -# - PJRC_TEENSY_3_1 for Teensy 3.1 or 3.2 -BOARD = PJRC_TEENSY_3 - -# Cortex version -# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4 -MCU = cortex-m4 - -# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 -# I.e. 6 for Teensy LC; 7 for Teensy 3.x -ARMV = 7 - -# Build Options -# comment out to disable the options. -# -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration -## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.) -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend -NKRO_ENABLE = yes # USB Nkey Rollover - -include $(TMK_DIR)/tool/chibios/common.mk -include $(TMK_DIR)/tool/chibios/chibios.mk diff --git a/keyboards/teensy_lc_onekey/Makefile.3.2 b/keyboards/teensy_lc_onekey/Makefile.3.2 deleted file mode 100644 index 41bfa41a0..000000000 --- a/keyboards/teensy_lc_onekey/Makefile.3.2 +++ /dev/null @@ -1,77 +0,0 @@ -# Target file name (without extension). -PROJECT = ch - -# Directory common source files exist -TMK_DIR = ../../tmk_core - -# Directory keyboard dependent files exist -TARGET_DIR = . - -# project specific files -SRC = matrix.c \ - led.c - -ifdef KEYMAP - SRC := keymap_$(KEYMAP).c $(SRC) -else - SRC := keymap_plain.c $(SRC) -endif - -CONFIG_H = config.h - -## chip/board settings -# - the next two should match the directories in -# /os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) -# - For Teensies, FAMILY = KINETIS and SERIES is either -# KL2x (LC) or K20x (3.0,3.1,3.2). -MCU_FAMILY = KINETIS -MCU_SERIES = K20x - -# Linker script to use -# - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ -# or /ld/ -# - NOTE: a custom ld script is needed for EEPROM on Teensy LC -# - LDSCRIPT = -# - MKL26Z64 for Teensy LC -# - MK20DX128 for Teensy 3.0 -# - MK20DX256 for Teensy 3.1 and 3.2 -MCU_LDSCRIPT = MK20DX256 - -# Startup code to use -# - it should exist in /os/common/ports/ARMCMx/compilers/GCC/mk/ -# - STARTUP = -# - kl2x for Teensy LC -# - k20x5 for Teensy 3.0 -# - k20x7 for Teensy 3.1 and 3.2 -MCU_STARTUP = k20x7 - -# Board: it should exist either in /os/hal/boards/ -# or /boards -# - BOARD = -# - PJRC_TEENSY_LC for Teensy LC -# - PJRC_TEENSY_3 for Teensy 3.0 -# - PJRC_TEENSY_3_1 for Teensy 3.1 or 3.2 -BOARD = PJRC_TEENSY_3_1 - -# Cortex version -# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4 -MCU = cortex-m4 - -# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 -# I.e. 6 for Teensy LC; 7 for Teensy 3.x -ARMV = 7 - -# Build Options -# comment out to disable the options. -# -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration -## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.) -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend -NKRO_ENABLE = yes # USB Nkey Rollover - -include $(TMK_DIR)/tool/chibios/common.mk -include $(TMK_DIR)/tool/chibios/chibios.mk diff --git a/keyboards/teensy_lc_onekey/chconf.h b/keyboards/teensy_lc_onekey/chconf.h deleted file mode 100644 index cb36996c3..000000000 --- a/keyboards/teensy_lc_onekey/chconf.h +++ /dev/null @@ -1,524 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef CHCONF_H -#define CHCONF_H - -#define _CHIBIOS_RT_CONF_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#define CH_CFG_ST_RESOLUTION 32 - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#define CH_CFG_ST_FREQUENCY 1000 - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#define CH_CFG_ST_TIMEDELTA 0 - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#define CH_CFG_TIME_QUANTUM 20 - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#define CH_CFG_MEMCORE_SIZE 0 - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#define CH_CFG_NO_IDLE_THREAD FALSE - -/* Use __WFI in the idle thread for waiting. Does lower the power - * consumption. */ -#define CORTEX_ENABLE_WFI_IDLE TRUE - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#define CH_CFG_OPTIMIZE_SPEED TRUE - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_TM FALSE - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_REGISTRY TRUE - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_WAITEXIT TRUE - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_SEMAPHORES TRUE - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_MUTEXES TRUE - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#define CH_CFG_USE_CONDVARS TRUE - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_EVENTS TRUE - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_MESSAGES TRUE - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#define CH_CFG_USE_MAILBOXES TRUE - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_MEMCORE TRUE - -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#define CH_CFG_USE_HEAP TRUE - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_MEMPOOLS TRUE - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#define CH_CFG_USE_DYNAMIC TRUE - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. - * - * @note The default is @p FALSE. - */ -#define CH_DBG_STATISTICS FALSE - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. - * - * @note The default is @p FALSE. - */ -#define CH_DBG_SYSTEM_STATE_CHECK TRUE - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#define CH_DBG_ENABLE_CHECKS TRUE - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. - * - * @note The default is @p FALSE. - */ -#define CH_DBG_ENABLE_ASSERTS TRUE - -/** - * @brief Debug option, trace buffer. - * @details If enabled then the trace buffer is activated. - * - * @note The default is @p CH_DBG_TRACE_MASK_DISABLED. - */ -#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED - -/** - * @brief Trace buffer entries. - * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is - * different from @p CH_DBG_TRACE_MASK_DISABLED. - */ -#define CH_DBG_TRACE_BUFFER_SIZE 128 - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#define CH_DBG_ENABLE_STACK_CHECK TRUE - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#define CH_DBG_FILL_THREADS TRUE - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#define CH_DBG_THREADS_PROFILING FALSE - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p chThdInit() API. - * - * @note It is invoked from within @p chThdInit() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} - -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ - /* Idle-enter code here.*/ \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ - /* Idle-leave code here.*/ \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. - */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} - -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} - -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. - */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} - -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} - -/** @} */ - -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ - -#endif /* CHCONF_H */ - -/** @} */ diff --git a/keyboards/teensy_lc_onekey/config.h b/keyboards/teensy_lc_onekey/config.h deleted file mode 100644 index 19b14fe61..000000000 --- a/keyboards/teensy_lc_onekey/config.h +++ /dev/null @@ -1,75 +0,0 @@ -/* -Copyright 2015 Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#ifndef CONFIG_H -#define CONFIG_H - - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6464 -#define DEVICE_VER 0x0001 -/* in python2: list(u"whatever".encode('utf-16-le')) */ -/* at most 32 characters or the ugly hack in usb_main.c borks */ -#define MANUFACTURER "TMK" -#define USBSTR_MANUFACTURER 'T', '\x00', 'M', '\x00', 'K', '\x00', ' ', '\x00', '\xc6', '\x00' -#define PRODUCT "ChibiOS TMK test" -#define USBSTR_PRODUCT 'C', '\x00', 'h', '\x00', 'i', '\x00', 'b', '\x00', 'i', '\x00', 'O', '\x00', 'S', '\x00', ' ', '\x00', 'T', '\x00', 'M', '\x00', 'K', '\x00', ' ', '\x00', 't', '\x00', 'e', '\x00', 's', '\x00', 't', '\x00' -#define DESCRIPTION "TMK keyboard firmware over ChibiOS" - -/* key matrix size */ -#define MATRIX_ROWS 1 -#define MATRIX_COLS 1 -#define DIODE_DIRECTION COL2ROW - -/* define if matrix has ghost */ -//#define MATRIX_HAS_GHOST - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -/* key combination for command */ -#define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ -) - - - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -#endif diff --git a/keyboards/teensy_lc_onekey/halconf.h b/keyboards/teensy_lc_onekey/halconf.h deleted file mode 100644 index b1d2cd550..000000000 --- a/keyboards/teensy_lc_onekey/halconf.h +++ /dev/null @@ -1,187 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. - * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef _HALCONF_H_ -#define _HALCONF_H_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC FALSE -#endif - -/** - * @brief Enables the EXT subsystem. - */ -#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__) -#define HAL_USE_EXT FALSE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT FALSE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C FALSE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM FALSE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL FALSE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB FALSE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI FALSE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif - -#endif /* _HALCONF_H_ */ - -/** @} */ diff --git a/keyboards/teensy_lc_onekey/instructions.md b/keyboards/teensy_lc_onekey/instructions.md deleted file mode 100644 index 16886a015..000000000 --- a/keyboards/teensy_lc_onekey/instructions.md +++ /dev/null @@ -1,82 +0,0 @@ -# Teensy LC, 3.0, 3.1, 3.2 support - -These ARM Teensies are now supported through [ChibiOS](http://chibios.org). - -You'll need to install an ARM toolchain, for instance from [gcc ARM embedded](https://launchpad.net/gcc-arm-embedded) website, or using your favourite package manager. After installing, you should be able to run `arm-none-eabi-gcc -v` in the command prompt and get sensible output. This toolchain is used instead of `avr-gcc`, which is only for AVR chips. Naturally you'll also need the usual development tools (e.g. `make`), just as in the AVR setting. - -Next, you'll need ChibiOS. For Teensies, you'll need code from two repositories: [chibios-main](https://github.com/ChibiOS/ChibiOS) and [chibios-contrib](https://github.com/ChibiOS/ChibiOS). If you're not using git, you can just download a [zip of chibios from here](https://github.com/ChibiOS/ChibiOS/archive/a7df9a891067621e8e1a5c2a2c0ceada82403afe.zip), unpack the zip, and rename/move the unpacked directory (named `ChibiOS-`) to `tmk_core/tool/chibios/chibios` (so that the file `tmk_core/tool/chibios/chibios/license.txt` exists). Now the same procedure with a [zip of chibios-contrib from here](https://github.com/ChibiOS/ChibiOS-Contrib/archive/e1311c4db6cd366cf760673f769e925741ac0ad3.zip): unpack and move `ChibiOS-Contrib-` to `tmk_core/tool/chibios/chibios-contrib`. - -(If you're using git, you can just clone the two repos: [chibios](https://github.com/ChibiOS/ChibiOS) and [chibios-contrib](https://github.com/ChibiOS/ChibiOS-Contrib). However - be warned that things may be somewhat out-of-sync (updates at different rates), so you may need to hunt a bit for the right commits.) - -(Why do we need chibios-contrib? Well, the main repo focuses on STM32 chips, and Freescale/NXP Kinetis chips are supported via the Contrib repository.) - -This should be it. Running `make` in `keyboard/teensy_lc_onekey` should create a working firmware in `build/`, called `ch.hex`. - -For more notes about the ChibiOS backend in TMK, see `tmk_core/protocol/chibios/README.md`. - -## About this onekey example - -It's set up for Teensy LC. To use 3.x, you'll need to edit the `Makefile` (and comment out one line in `mcuconf.h`). A sample makefile for Teensy 3.0 is provided as `Makefile.3.0`, can be used without renaming with `make -f Makefile.3.0`. Similarly for Teensy 3.2, there's `Makefile.3.2`. - -## Credits - -TMK itself is written by hasu, original sources [here](https://github.com/tmk/tmk_keyboard). - -The USB support for Kinetis MCUs is due to RedoX. His ChibiOS fork is also [on github](https://github.com/RedoXyde/ChibiOS); but it doesn't include Teensy LC definitions. - -## Features that are not implemented yet - -Currently only the more fancy suspend features are not there (power saving during suspend). The rest should work fine (reports either way are welcome). - -# Matrix programming notes - -The notes below explain what commands can be used to examine and set the status of Teensy pins. - -## ChibiOS pin manipulation basics - -### Pins - -Each pin sits on a "port", each of which comprises at most 32 individual pins. -So for instance "PTC5" from Kinetis manual/datasheet refers to port C (or GPIOA), pin 5. Most functions dealing with pins take 2 parameters which specify the pin -- the first being the port, the second being the pin number. - -Within ChibiOS, there are definitions which simplify this a bit for the Teensies. `TEENSY_PINn_IOPORT` represents the port of the MCU's pin connected Teensy's PIN `n`, and `TEENSY_PINn` represents its MCU's pin number. - -### Mode - -A MCU pin can be in several modes. The basic command to set a pin mode is - - palSetPadMode(TEENSY_PINn_IOPORT, TEENSY_PINn, PAL_MODE_INPUT_PULLUP); - -The last parameter is the mode. For keyboards, the usual ones that are used are `PAL_MODE_INPUT_PULLUP` (input with a pullup), `PAL_MODE_INPUT_PULLDOWN` (input with a pulldown), `PAL_MODE_INPUT` (input floating, a.k.a. Hi-Z), `PAL_MODE_OUTPUT_PUSHPULL` (output in the Arduino sense -- can be then set HIGH or LOW). - -### Setting - -Pins are set HIGH (after they've been put into `OUTPUT_PUSHPULL` mode) by - - palSetPad(TEENSY_PINn_IOPORT, TEENSY_PINn); - -or set LOW by - - palClearPad(TEENSY_PINn_IOPORT, TEENSY_PINn); - -Toggling can be done with - - palTogglePad(TEENSY_PINn_IOPORT, TEENSY_PINn); - -Alternatively, you can use - - palWritePad(TEENSY_PINn_IOPORT, TEENSY_PINn, bit); - -where `bit` is either `PAL_LOW` or `PAL_HIGH` (i.e. `0` or `1`). - -### Reading - -Reading pin status is done with - - palReadPad(TEENSY_PINn_IOPORT, TEENSY_PINn); - -The function returns either `PAL_HIGH` (actually `1`) or `PAL_LOW` (actually `0`). - -### Further docs - -All the commands that are available for pin manipulation through ChibiOS HAL are documented in [ChibiOS PAL driver docs](http://chibios.sourceforge.net/docs3/hal/group___p_a_l.html). diff --git a/keyboards/teensy_lc_onekey/keymaps/default/keymap.c b/keyboards/teensy_lc_onekey/keymaps/default/keymap.c deleted file mode 100644 index a109b4960..000000000 --- a/keyboards/teensy_lc_onekey/keymaps/default/keymap.c +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2012,2013 Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include "keycode.h" -#include "action.h" -#include "action_macro.h" -#include "report.h" -#include "host.h" -#include "print.h" -#include "debug.h" -#include "keymap.h" - -const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - {{KC_A}}, -}; // to test: KC_CAPS, KT_BTLD, KC_A - -const uint16_t fn_actions[] = { -}; diff --git a/keyboards/teensy_lc_onekey/ld/MKL26Z64.ld b/keyboards/teensy_lc_onekey/ld/MKL26Z64.ld deleted file mode 100644 index fb141f888..000000000 --- a/keyboards/teensy_lc_onekey/ld/MKL26Z64.ld +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright (C) 2013-2016 Fabio Utzig, http://fabioutzig.com - * (C) 2016 flabbergast - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -/* - * KL26Z64 memory setup. - */ -MEMORY -{ - flash0 : org = 0x00000000, len = 0x100 - flash1 : org = 0x00000400, len = 0x10 - flash2 : org = 0x00000410, len = 62k - 0x410 - flash3 : org = 0x0000F800, len = 2k - flash4 : org = 0x00000000, len = 0 - flash5 : org = 0x00000000, len = 0 - flash6 : org = 0x00000000, len = 0 - flash7 : org = 0x00000000, len = 0 - ram0 : org = 0x1FFFF800, len = 8k - ram1 : org = 0x00000000, len = 0 - ram2 : org = 0x00000000, len = 0 - ram3 : org = 0x00000000, len = 0 - ram4 : org = 0x00000000, len = 0 - ram5 : org = 0x00000000, len = 0 - ram6 : org = 0x00000000, len = 0 - ram7 : org = 0x00000000, len = 0 -} - -/* Flash region for the configuration bytes.*/ -SECTIONS -{ - .cfmprotect : ALIGN(4) SUBALIGN(4) - { - KEEP(*(.cfmconfig)) - } > flash1 -} - -/* For each data/text section two region are defined, a virtual region - and a load region (_LMA suffix).*/ - -/* Flash region to be used for exception vectors.*/ -REGION_ALIAS("VECTORS_FLASH", flash0); -REGION_ALIAS("VECTORS_FLASH_LMA", flash0); - -/* Flash region to be used for constructors and destructors.*/ -REGION_ALIAS("XTORS_FLASH", flash2); -REGION_ALIAS("XTORS_FLASH_LMA", flash2); - -/* Flash region to be used for code text.*/ -REGION_ALIAS("TEXT_FLASH", flash2); -REGION_ALIAS("TEXT_FLASH_LMA", flash2); - -/* Flash region to be used for read only data.*/ -REGION_ALIAS("RODATA_FLASH", flash2); -REGION_ALIAS("RODATA_FLASH_LMA", flash2); - -/* Flash region to be used for various.*/ -REGION_ALIAS("VARIOUS_FLASH", flash2); -REGION_ALIAS("VARIOUS_FLASH_LMA", flash2); - -/* Flash region to be used for RAM(n) initialization data.*/ -REGION_ALIAS("RAM_INIT_FLASH_LMA", flash2); - -/* RAM region to be used for Main stack. This stack accommodates the processing - of all exceptions and interrupts.*/ -REGION_ALIAS("MAIN_STACK_RAM", ram0); - -/* RAM region to be used for the process stack. This is the stack used by - the main() function.*/ -REGION_ALIAS("PROCESS_STACK_RAM", ram0); - -/* RAM region to be used for data segment.*/ -REGION_ALIAS("DATA_RAM", ram0); -REGION_ALIAS("DATA_RAM_LMA", flash2); - -/* RAM region to be used for BSS segment.*/ -REGION_ALIAS("BSS_RAM", ram0); - -/* RAM region to be used for the default heap.*/ -REGION_ALIAS("HEAP_RAM", ram0); - -__eeprom_workarea_start__ = ORIGIN(flash3); -__eeprom_workarea_size__ = LENGTH(flash3); -__eeprom_workarea_end__ = __eeprom_workarea_start__ + __eeprom_workarea_size__; - -/* Generic rules inclusion.*/ -INCLUDE rules.ld diff --git a/keyboards/teensy_lc_onekey/led.c b/keyboards/teensy_lc_onekey/led.c deleted file mode 100644 index dfa60c107..000000000 --- a/keyboards/teensy_lc_onekey/led.c +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2012 Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include "hal.h" - -#include "led.h" - - -void led_set(uint8_t usb_led) { - if (usb_led & (1< - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include "ch.h" -#include "hal.h" - -/* - * scan matrix - */ -#include "print.h" -#include "debug.h" -#include "util.h" -#include "matrix.h" -#include "wait.h" - -#ifndef DEBOUNCE -# define DEBOUNCE 5 -#endif -static uint8_t debouncing = DEBOUNCE; - -/* matrix state(1:on, 0:off) */ -static matrix_row_t matrix[MATRIX_ROWS]; -static matrix_row_t matrix_debouncing[MATRIX_ROWS]; - -static matrix_row_t read_cols(void); -static void init_cols(void); -static void unselect_rows(void); -static void select_row(uint8_t row); - - -inline -uint8_t matrix_rows(void) -{ - return MATRIX_ROWS; -} - -inline -uint8_t matrix_cols(void) -{ - return MATRIX_COLS; -} - -#define LED_ON() do { palSetPad(TEENSY_PIN13_IOPORT, TEENSY_PIN13) ;} while (0) -#define LED_OFF() do { palClearPad(TEENSY_PIN13_IOPORT, TEENSY_PIN13); } while (0) -#define LED_TGL() do { palTogglePad(TEENSY_PIN13_IOPORT, TEENSY_PIN13); } while (0) - -void matrix_init(void) -{ - // initialize row and col - unselect_rows(); - init_cols(); - - // initialize matrix state: all keys off - for (uint8_t i=0; i < MATRIX_ROWS; i++) { - matrix[i] = 0; - matrix_debouncing[i] = 0; - } - - //debug - debug_matrix = true; - LED_ON(); - wait_ms(500); - LED_OFF(); -} - -uint8_t matrix_scan(void) -{ - for (uint8_t i = 0; i < MATRIX_ROWS; i++) { - select_row(i); - wait_us(30); // without this wait read unstable value. - matrix_row_t cols = read_cols(); - if (matrix_debouncing[i] != cols) { - matrix_debouncing[i] = cols; - if (debouncing) { - debug("bounce!: "); debug_hex(debouncing); debug("\n"); - } - debouncing = DEBOUNCE; - } - unselect_rows(); - } - - if (debouncing) { - if (--debouncing) { - wait_ms(1); - } else { - for (uint8_t i = 0; i < MATRIX_ROWS; i++) { - matrix[i] = matrix_debouncing[i]; - } - } - } - - return 1; -} - -inline -bool matrix_is_on(uint8_t row, uint8_t col) -{ - return (matrix[row] & ((matrix_row_t)1< 162908 bytes .../chibios_test/boards/maple_mini_mapping.png | Bin 0 -> 237977 bytes keyboards/chibios_test/ld/MKL26Z64.ld | 105 +++++++++++++ .../ld/STM32F103x8_stm32duino_bootloader.ld | 88 +++++++++++ .../boards/GENERIC_STM32_F103/board.c | 49 ------ .../boards/GENERIC_STM32_F103/board.h | 166 --------------------- .../boards/GENERIC_STM32_F103/board.mk | 5 - .../GENERIC_STM32_F103/mini_stm32_mapping.png | Bin 162908 -> 0 bytes .../boards/maple_mini_mapping.png | Bin 237977 -> 0 bytes .../ld/STM32F103x8_stm32duino_bootloader.ld | 88 ----------- .../chibios_test/teensy_lc_onekey/ld/MKL26Z64.ld | 105 ------------- 14 files changed, 413 insertions(+), 413 deletions(-) create mode 100644 keyboards/chibios_test/boards/GENERIC_STM32_F103/board.c create mode 100644 keyboards/chibios_test/boards/GENERIC_STM32_F103/board.h create mode 100644 keyboards/chibios_test/boards/GENERIC_STM32_F103/board.mk create mode 100644 keyboards/chibios_test/boards/GENERIC_STM32_F103/mini_stm32_mapping.png create mode 100644 keyboards/chibios_test/boards/maple_mini_mapping.png create mode 100644 keyboards/chibios_test/ld/MKL26Z64.ld create mode 100644 keyboards/chibios_test/ld/STM32F103x8_stm32duino_bootloader.ld delete mode 100644 keyboards/chibios_test/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.c delete mode 100644 keyboards/chibios_test/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.h delete mode 100644 keyboards/chibios_test/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.mk delete mode 100644 keyboards/chibios_test/stm32_f103_onekey/boards/GENERIC_STM32_F103/mini_stm32_mapping.png delete mode 100644 keyboards/chibios_test/stm32_f103_onekey/boards/maple_mini_mapping.png delete mode 100644 keyboards/chibios_test/stm32_f103_onekey/ld/STM32F103x8_stm32duino_bootloader.ld delete mode 100644 keyboards/chibios_test/teensy_lc_onekey/ld/MKL26Z64.ld (limited to 'keyboards') diff --git a/keyboards/chibios_test/boards/GENERIC_STM32_F103/board.c b/keyboards/chibios_test/boards/GENERIC_STM32_F103/board.c new file mode 100644 index 000000000..31319ef57 --- /dev/null +++ b/keyboards/chibios_test/boards/GENERIC_STM32_F103/board.c @@ -0,0 +1,49 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#include "hal.h" + +/** + * @brief PAL setup. + * @details Digital I/O ports static configuration as defined in @p board.h. + * This variable is used by the HAL when initializing the PAL driver. + */ +#if HAL_USE_PAL || defined(__DOXYGEN__) +const PALConfig pal_default_config = +{ + {VAL_GPIOAODR, VAL_GPIOACRL, VAL_GPIOACRH}, + {VAL_GPIOBODR, VAL_GPIOBCRL, VAL_GPIOBCRH}, + {VAL_GPIOCODR, VAL_GPIOCCRL, VAL_GPIOCCRH}, + {VAL_GPIODODR, VAL_GPIODCRL, VAL_GPIODCRH}, + {VAL_GPIOEODR, VAL_GPIOECRL, VAL_GPIOECRH}, +}; +#endif + +/* + * Early initialization code. + * This initialization must be performed just after stack setup and before + * any other initialization. + */ +void __early_init(void) { + + stm32_clock_init(); +} + +/* + * Board-specific initialization code. + */ +void boardInit(void) { +} diff --git a/keyboards/chibios_test/boards/GENERIC_STM32_F103/board.h b/keyboards/chibios_test/boards/GENERIC_STM32_F103/board.h new file mode 100644 index 000000000..7253e7782 --- /dev/null +++ b/keyboards/chibios_test/boards/GENERIC_STM32_F103/board.h @@ -0,0 +1,166 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef _BOARD_H_ +#define _BOARD_H_ + +/* + * Setup for a Generic STM32F103 board. + */ + +/* + * Board identifier. + */ +#define BOARD_GENERIC_STM32_F103 +#define BOARD_NAME "Generic STM32F103x board" + +/* + * Board frequencies. + */ +#define STM32_LSECLK 32768 +#define STM32_HSECLK 8000000 + +/* + * MCU type, supported types are defined in ./os/hal/platforms/hal_lld.h. + */ +#define STM32F103xB + +/* + * IO pins assignments + */ + +/* on-board */ + +#define GPIOC_LED 13 +#define GPIOD_OSC_IN 0 +#define GPIOD_OSC_OUT 1 + +/* In case your board has a "USB enable" hardware + controlled by a pin, define it here. (It could be just + a 1.5k resistor connected to D+ line.) +*/ +/* +#define GPIOB_USB_DISC 10 +*/ + +/* + * I/O ports initial setup, this configuration is established soon after reset + * in the initialization code. + * + * The digits have the following meaning: + * 0 - Analog input. + * 1 - Push Pull output 10MHz. + * 2 - Push Pull output 2MHz. + * 3 - Push Pull output 50MHz. + * 4 - Digital input. + * 5 - Open Drain output 10MHz. + * 6 - Open Drain output 2MHz. + * 7 - Open Drain output 50MHz. + * 8 - Digital input with PullUp or PullDown resistor depending on ODR. + * 9 - Alternate Push Pull output 10MHz. + * A - Alternate Push Pull output 2MHz. + * B - Alternate Push Pull output 50MHz. + * C - Reserved. + * D - Alternate Open Drain output 10MHz. + * E - Alternate Open Drain output 2MHz. + * F - Alternate Open Drain output 50MHz. + * Please refer to the STM32 Reference Manual for details. + */ + +/* + * Port A setup. + * Everything input with pull-up except: + * PA2 - Alternate output (USART2 TX). + * PA3 - Normal input (USART2 RX). + * PA9 - Alternate output (USART1 TX). + * PA10 - Normal input (USART1 RX). + */ +#define VAL_GPIOACRL 0x88884B88 /* PA7...PA0 */ +#define VAL_GPIOACRH 0x888884B8 /* PA15...PA8 */ +#define VAL_GPIOAODR 0xFFFFFFFF + +/* + * Port B setup. + * Everything input with pull-up except: + * PB10 - Push Pull output (USB switch). + */ +#define VAL_GPIOBCRL 0x88888888 /* PB7...PB0 */ +#define VAL_GPIOBCRH 0x88888388 /* PB15...PB8 */ +#define VAL_GPIOBODR 0xFFFFFFFF + +/* + * Port C setup. + * Everything input with pull-up except: + * PC13 - Push Pull output (LED). + */ +#define VAL_GPIOCCRL 0x88888888 /* PC7...PC0 */ +#define VAL_GPIOCCRH 0x88388888 /* PC15...PC8 */ +#define VAL_GPIOCODR 0xFFFFFFFF + +/* + * Port D setup. + * Everything input with pull-up except: + * PD0 - Normal input (XTAL). + * PD1 - Normal input (XTAL). + */ +#define VAL_GPIODCRL 0x88888844 /* PD7...PD0 */ +#define VAL_GPIODCRH 0x88888888 /* PD15...PD8 */ +#define VAL_GPIODODR 0xFFFFFFFF + +/* + * Port E setup. + * Everything input with pull-up except: + */ +#define VAL_GPIOECRL 0x88888888 /* PE7...PE0 */ +#define VAL_GPIOECRH 0x88888888 /* PE15...PE8 */ +#define VAL_GPIOEODR 0xFFFFFFFF + +/* + * USB bus activation macro, required by the USB driver. + */ +/* The point is that most of the generic STM32F103* boards + have a 1.5k resistor connected on one end to the D+ line + and on the other end to some pin. Or even a slightly more + complicated "USB enable" circuit, controlled by a pin. + That should go here. + + However on some boards (e.g. one that I have), there's no + such hardware. In which case it's better to not do anything. +*/ +/* +#define usb_lld_connect_bus(usbp) palClearPad(GPIOB, GPIOB_USB_DISC) +*/ +#define usb_lld_connect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_INPUT); + +/* + * USB bus de-activation macro, required by the USB driver. + */ +/* +#define usb_lld_disconnect_bus(usbp) palSetPad(GPIOB, GPIOB_USB_DISC) +*/ +#define usb_lld_disconnect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_OUTPUT_PUSHPULL); palClearPad(GPIOA, 12); + +#if !defined(_FROM_ASM_) +#ifdef __cplusplus +extern "C" { +#endif + void boardInit(void); +#ifdef __cplusplus +} +#endif +#endif /* _FROM_ASM_ */ + +#endif /* _BOARD_H_ */ diff --git a/keyboards/chibios_test/boards/GENERIC_STM32_F103/board.mk b/keyboards/chibios_test/boards/GENERIC_STM32_F103/board.mk new file mode 100644 index 000000000..d692c0ee4 --- /dev/null +++ b/keyboards/chibios_test/boards/GENERIC_STM32_F103/board.mk @@ -0,0 +1,5 @@ +# List of all the board related files. +BOARDSRC = $(KEYBOARD_PATH)/boards/GENERIC_STM32_F103/board.c + +# Required include directories +BOARDINC = $(KEYBOARD_PATH)/boards/GENERIC_STM32_F103 diff --git a/keyboards/chibios_test/boards/GENERIC_STM32_F103/mini_stm32_mapping.png b/keyboards/chibios_test/boards/GENERIC_STM32_F103/mini_stm32_mapping.png new file mode 100644 index 000000000..c44a7d9eb Binary files /dev/null and b/keyboards/chibios_test/boards/GENERIC_STM32_F103/mini_stm32_mapping.png differ diff --git a/keyboards/chibios_test/boards/maple_mini_mapping.png b/keyboards/chibios_test/boards/maple_mini_mapping.png new file mode 100644 index 000000000..12cfa81db Binary files /dev/null and b/keyboards/chibios_test/boards/maple_mini_mapping.png differ diff --git a/keyboards/chibios_test/ld/MKL26Z64.ld b/keyboards/chibios_test/ld/MKL26Z64.ld new file mode 100644 index 000000000..fb141f888 --- /dev/null +++ b/keyboards/chibios_test/ld/MKL26Z64.ld @@ -0,0 +1,105 @@ +/* + * Copyright (C) 2013-2016 Fabio Utzig, http://fabioutzig.com + * (C) 2016 flabbergast + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/* + * KL26Z64 memory setup. + */ +MEMORY +{ + flash0 : org = 0x00000000, len = 0x100 + flash1 : org = 0x00000400, len = 0x10 + flash2 : org = 0x00000410, len = 62k - 0x410 + flash3 : org = 0x0000F800, len = 2k + flash4 : org = 0x00000000, len = 0 + flash5 : org = 0x00000000, len = 0 + flash6 : org = 0x00000000, len = 0 + flash7 : org = 0x00000000, len = 0 + ram0 : org = 0x1FFFF800, len = 8k + ram1 : org = 0x00000000, len = 0 + ram2 : org = 0x00000000, len = 0 + ram3 : org = 0x00000000, len = 0 + ram4 : org = 0x00000000, len = 0 + ram5 : org = 0x00000000, len = 0 + ram6 : org = 0x00000000, len = 0 + ram7 : org = 0x00000000, len = 0 +} + +/* Flash region for the configuration bytes.*/ +SECTIONS +{ + .cfmprotect : ALIGN(4) SUBALIGN(4) + { + KEEP(*(.cfmconfig)) + } > flash1 +} + +/* For each data/text section two region are defined, a virtual region + and a load region (_LMA suffix).*/ + +/* Flash region to be used for exception vectors.*/ +REGION_ALIAS("VECTORS_FLASH", flash0); +REGION_ALIAS("VECTORS_FLASH_LMA", flash0); + +/* Flash region to be used for constructors and destructors.*/ +REGION_ALIAS("XTORS_FLASH", flash2); +REGION_ALIAS("XTORS_FLASH_LMA", flash2); + +/* Flash region to be used for code text.*/ +REGION_ALIAS("TEXT_FLASH", flash2); +REGION_ALIAS("TEXT_FLASH_LMA", flash2); + +/* Flash region to be used for read only data.*/ +REGION_ALIAS("RODATA_FLASH", flash2); +REGION_ALIAS("RODATA_FLASH_LMA", flash2); + +/* Flash region to be used for various.*/ +REGION_ALIAS("VARIOUS_FLASH", flash2); +REGION_ALIAS("VARIOUS_FLASH_LMA", flash2); + +/* Flash region to be used for RAM(n) initialization data.*/ +REGION_ALIAS("RAM_INIT_FLASH_LMA", flash2); + +/* RAM region to be used for Main stack. This stack accommodates the processing + of all exceptions and interrupts.*/ +REGION_ALIAS("MAIN_STACK_RAM", ram0); + +/* RAM region to be used for the process stack. This is the stack used by + the main() function.*/ +REGION_ALIAS("PROCESS_STACK_RAM", ram0); + +/* RAM region to be used for data segment.*/ +REGION_ALIAS("DATA_RAM", ram0); +REGION_ALIAS("DATA_RAM_LMA", flash2); + +/* RAM region to be used for BSS segment.*/ +REGION_ALIAS("BSS_RAM", ram0); + +/* RAM region to be used for the default heap.*/ +REGION_ALIAS("HEAP_RAM", ram0); + +__eeprom_workarea_start__ = ORIGIN(flash3); +__eeprom_workarea_size__ = LENGTH(flash3); +__eeprom_workarea_end__ = __eeprom_workarea_start__ + __eeprom_workarea_size__; + +/* Generic rules inclusion.*/ +INCLUDE rules.ld diff --git a/keyboards/chibios_test/ld/STM32F103x8_stm32duino_bootloader.ld b/keyboards/chibios_test/ld/STM32F103x8_stm32duino_bootloader.ld new file mode 100644 index 000000000..00613328e --- /dev/null +++ b/keyboards/chibios_test/ld/STM32F103x8_stm32duino_bootloader.ld @@ -0,0 +1,88 @@ +/* + ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/* + * ST32F103xB memory setup for use with the maplemini bootloader. + * You will have to + * #define CORTEX_VTOR_INIT 0x5000 + * in your projects chconf.h + */ +MEMORY +{ + flash0 : org = 0x08002000, len = 128k - 0x2000 + flash1 : org = 0x00000000, len = 0 + flash2 : org = 0x00000000, len = 0 + flash3 : org = 0x00000000, len = 0 + flash4 : org = 0x00000000, len = 0 + flash5 : org = 0x00000000, len = 0 + flash6 : org = 0x00000000, len = 0 + flash7 : org = 0x00000000, len = 0 + ram0 : org = 0x20000000, len = 20k + ram1 : org = 0x00000000, len = 0 + ram2 : org = 0x00000000, len = 0 + ram3 : org = 0x00000000, len = 0 + ram4 : org = 0x00000000, len = 0 + ram5 : org = 0x00000000, len = 0 + ram6 : org = 0x00000000, len = 0 + ram7 : org = 0x00000000, len = 0 +} + +/* For each data/text section two region are defined, a virtual region + and a load region (_LMA suffix).*/ + +/* Flash region to be used for exception vectors.*/ +REGION_ALIAS("VECTORS_FLASH", flash0); +REGION_ALIAS("VECTORS_FLASH_LMA", flash0); + +/* Flash region to be used for constructors and destructors.*/ +REGION_ALIAS("XTORS_FLASH", flash0); +REGION_ALIAS("XTORS_FLASH_LMA", flash0); + +/* Flash region to be used for code text.*/ +REGION_ALIAS("TEXT_FLASH", flash0); +REGION_ALIAS("TEXT_FLASH_LMA", flash0); + +/* Flash region to be used for read only data.*/ +REGION_ALIAS("RODATA_FLASH", flash0); +REGION_ALIAS("RODATA_FLASH_LMA", flash0); + +/* Flash region to be used for various.*/ +REGION_ALIAS("VARIOUS_FLASH", flash0); +REGION_ALIAS("VARIOUS_FLASH_LMA", flash0); + +/* Flash region to be used for RAM(n) initialization data.*/ +REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0); + +/* RAM region to be used for Main stack. This stack accommodates the processing + of all exceptions and interrupts.*/ +REGION_ALIAS("MAIN_STACK_RAM", ram0); + +/* RAM region to be used for the process stack. This is the stack used by + the main() function.*/ +REGION_ALIAS("PROCESS_STACK_RAM", ram0); + +/* RAM region to be used for data segment.*/ +REGION_ALIAS("DATA_RAM", ram0); +REGION_ALIAS("DATA_RAM_LMA", flash0); + +/* RAM region to be used for BSS segment.*/ +REGION_ALIAS("BSS_RAM", ram0); + +/* RAM region to be used for the default heap.*/ +REGION_ALIAS("HEAP_RAM", ram0); + +/* Generic rules inclusion.*/ +INCLUDE rules.ld diff --git a/keyboards/chibios_test/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.c b/keyboards/chibios_test/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.c deleted file mode 100644 index 31319ef57..000000000 --- a/keyboards/chibios_test/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.c +++ /dev/null @@ -1,49 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#include "hal.h" - -/** - * @brief PAL setup. - * @details Digital I/O ports static configuration as defined in @p board.h. - * This variable is used by the HAL when initializing the PAL driver. - */ -#if HAL_USE_PAL || defined(__DOXYGEN__) -const PALConfig pal_default_config = -{ - {VAL_GPIOAODR, VAL_GPIOACRL, VAL_GPIOACRH}, - {VAL_GPIOBODR, VAL_GPIOBCRL, VAL_GPIOBCRH}, - {VAL_GPIOCODR, VAL_GPIOCCRL, VAL_GPIOCCRH}, - {VAL_GPIODODR, VAL_GPIODCRL, VAL_GPIODCRH}, - {VAL_GPIOEODR, VAL_GPIOECRL, VAL_GPIOECRH}, -}; -#endif - -/* - * Early initialization code. - * This initialization must be performed just after stack setup and before - * any other initialization. - */ -void __early_init(void) { - - stm32_clock_init(); -} - -/* - * Board-specific initialization code. - */ -void boardInit(void) { -} diff --git a/keyboards/chibios_test/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.h b/keyboards/chibios_test/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.h deleted file mode 100644 index 7253e7782..000000000 --- a/keyboards/chibios_test/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.h +++ /dev/null @@ -1,166 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -#ifndef _BOARD_H_ -#define _BOARD_H_ - -/* - * Setup for a Generic STM32F103 board. - */ - -/* - * Board identifier. - */ -#define BOARD_GENERIC_STM32_F103 -#define BOARD_NAME "Generic STM32F103x board" - -/* - * Board frequencies. - */ -#define STM32_LSECLK 32768 -#define STM32_HSECLK 8000000 - -/* - * MCU type, supported types are defined in ./os/hal/platforms/hal_lld.h. - */ -#define STM32F103xB - -/* - * IO pins assignments - */ - -/* on-board */ - -#define GPIOC_LED 13 -#define GPIOD_OSC_IN 0 -#define GPIOD_OSC_OUT 1 - -/* In case your board has a "USB enable" hardware - controlled by a pin, define it here. (It could be just - a 1.5k resistor connected to D+ line.) -*/ -/* -#define GPIOB_USB_DISC 10 -*/ - -/* - * I/O ports initial setup, this configuration is established soon after reset - * in the initialization code. - * - * The digits have the following meaning: - * 0 - Analog input. - * 1 - Push Pull output 10MHz. - * 2 - Push Pull output 2MHz. - * 3 - Push Pull output 50MHz. - * 4 - Digital input. - * 5 - Open Drain output 10MHz. - * 6 - Open Drain output 2MHz. - * 7 - Open Drain output 50MHz. - * 8 - Digital input with PullUp or PullDown resistor depending on ODR. - * 9 - Alternate Push Pull output 10MHz. - * A - Alternate Push Pull output 2MHz. - * B - Alternate Push Pull output 50MHz. - * C - Reserved. - * D - Alternate Open Drain output 10MHz. - * E - Alternate Open Drain output 2MHz. - * F - Alternate Open Drain output 50MHz. - * Please refer to the STM32 Reference Manual for details. - */ - -/* - * Port A setup. - * Everything input with pull-up except: - * PA2 - Alternate output (USART2 TX). - * PA3 - Normal input (USART2 RX). - * PA9 - Alternate output (USART1 TX). - * PA10 - Normal input (USART1 RX). - */ -#define VAL_GPIOACRL 0x88884B88 /* PA7...PA0 */ -#define VAL_GPIOACRH 0x888884B8 /* PA15...PA8 */ -#define VAL_GPIOAODR 0xFFFFFFFF - -/* - * Port B setup. - * Everything input with pull-up except: - * PB10 - Push Pull output (USB switch). - */ -#define VAL_GPIOBCRL 0x88888888 /* PB7...PB0 */ -#define VAL_GPIOBCRH 0x88888388 /* PB15...PB8 */ -#define VAL_GPIOBODR 0xFFFFFFFF - -/* - * Port C setup. - * Everything input with pull-up except: - * PC13 - Push Pull output (LED). - */ -#define VAL_GPIOCCRL 0x88888888 /* PC7...PC0 */ -#define VAL_GPIOCCRH 0x88388888 /* PC15...PC8 */ -#define VAL_GPIOCODR 0xFFFFFFFF - -/* - * Port D setup. - * Everything input with pull-up except: - * PD0 - Normal input (XTAL). - * PD1 - Normal input (XTAL). - */ -#define VAL_GPIODCRL 0x88888844 /* PD7...PD0 */ -#define VAL_GPIODCRH 0x88888888 /* PD15...PD8 */ -#define VAL_GPIODODR 0xFFFFFFFF - -/* - * Port E setup. - * Everything input with pull-up except: - */ -#define VAL_GPIOECRL 0x88888888 /* PE7...PE0 */ -#define VAL_GPIOECRH 0x88888888 /* PE15...PE8 */ -#define VAL_GPIOEODR 0xFFFFFFFF - -/* - * USB bus activation macro, required by the USB driver. - */ -/* The point is that most of the generic STM32F103* boards - have a 1.5k resistor connected on one end to the D+ line - and on the other end to some pin. Or even a slightly more - complicated "USB enable" circuit, controlled by a pin. - That should go here. - - However on some boards (e.g. one that I have), there's no - such hardware. In which case it's better to not do anything. -*/ -/* -#define usb_lld_connect_bus(usbp) palClearPad(GPIOB, GPIOB_USB_DISC) -*/ -#define usb_lld_connect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_INPUT); - -/* - * USB bus de-activation macro, required by the USB driver. - */ -/* -#define usb_lld_disconnect_bus(usbp) palSetPad(GPIOB, GPIOB_USB_DISC) -*/ -#define usb_lld_disconnect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_OUTPUT_PUSHPULL); palClearPad(GPIOA, 12); - -#if !defined(_FROM_ASM_) -#ifdef __cplusplus -extern "C" { -#endif - void boardInit(void); -#ifdef __cplusplus -} -#endif -#endif /* _FROM_ASM_ */ - -#endif /* _BOARD_H_ */ diff --git a/keyboards/chibios_test/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.mk b/keyboards/chibios_test/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.mk deleted file mode 100644 index d692c0ee4..000000000 --- a/keyboards/chibios_test/stm32_f103_onekey/boards/GENERIC_STM32_F103/board.mk +++ /dev/null @@ -1,5 +0,0 @@ -# List of all the board related files. -BOARDSRC = $(KEYBOARD_PATH)/boards/GENERIC_STM32_F103/board.c - -# Required include directories -BOARDINC = $(KEYBOARD_PATH)/boards/GENERIC_STM32_F103 diff --git a/keyboards/chibios_test/stm32_f103_onekey/boards/GENERIC_STM32_F103/mini_stm32_mapping.png b/keyboards/chibios_test/stm32_f103_onekey/boards/GENERIC_STM32_F103/mini_stm32_mapping.png deleted file mode 100644 index c44a7d9eb..000000000 Binary files a/keyboards/chibios_test/stm32_f103_onekey/boards/GENERIC_STM32_F103/mini_stm32_mapping.png and /dev/null differ diff --git a/keyboards/chibios_test/stm32_f103_onekey/boards/maple_mini_mapping.png b/keyboards/chibios_test/stm32_f103_onekey/boards/maple_mini_mapping.png deleted file mode 100644 index 12cfa81db..000000000 Binary files a/keyboards/chibios_test/stm32_f103_onekey/boards/maple_mini_mapping.png and /dev/null differ diff --git a/keyboards/chibios_test/stm32_f103_onekey/ld/STM32F103x8_stm32duino_bootloader.ld b/keyboards/chibios_test/stm32_f103_onekey/ld/STM32F103x8_stm32duino_bootloader.ld deleted file mode 100644 index 00613328e..000000000 --- a/keyboards/chibios_test/stm32_f103_onekey/ld/STM32F103x8_stm32duino_bootloader.ld +++ /dev/null @@ -1,88 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/* - * ST32F103xB memory setup for use with the maplemini bootloader. - * You will have to - * #define CORTEX_VTOR_INIT 0x5000 - * in your projects chconf.h - */ -MEMORY -{ - flash0 : org = 0x08002000, len = 128k - 0x2000 - flash1 : org = 0x00000000, len = 0 - flash2 : org = 0x00000000, len = 0 - flash3 : org = 0x00000000, len = 0 - flash4 : org = 0x00000000, len = 0 - flash5 : org = 0x00000000, len = 0 - flash6 : org = 0x00000000, len = 0 - flash7 : org = 0x00000000, len = 0 - ram0 : org = 0x20000000, len = 20k - ram1 : org = 0x00000000, len = 0 - ram2 : org = 0x00000000, len = 0 - ram3 : org = 0x00000000, len = 0 - ram4 : org = 0x00000000, len = 0 - ram5 : org = 0x00000000, len = 0 - ram6 : org = 0x00000000, len = 0 - ram7 : org = 0x00000000, len = 0 -} - -/* For each data/text section two region are defined, a virtual region - and a load region (_LMA suffix).*/ - -/* Flash region to be used for exception vectors.*/ -REGION_ALIAS("VECTORS_FLASH", flash0); -REGION_ALIAS("VECTORS_FLASH_LMA", flash0); - -/* Flash region to be used for constructors and destructors.*/ -REGION_ALIAS("XTORS_FLASH", flash0); -REGION_ALIAS("XTORS_FLASH_LMA", flash0); - -/* Flash region to be used for code text.*/ -REGION_ALIAS("TEXT_FLASH", flash0); -REGION_ALIAS("TEXT_FLASH_LMA", flash0); - -/* Flash region to be used for read only data.*/ -REGION_ALIAS("RODATA_FLASH", flash0); -REGION_ALIAS("RODATA_FLASH_LMA", flash0); - -/* Flash region to be used for various.*/ -REGION_ALIAS("VARIOUS_FLASH", flash0); -REGION_ALIAS("VARIOUS_FLASH_LMA", flash0); - -/* Flash region to be used for RAM(n) initialization data.*/ -REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0); - -/* RAM region to be used for Main stack. This stack accommodates the processing - of all exceptions and interrupts.*/ -REGION_ALIAS("MAIN_STACK_RAM", ram0); - -/* RAM region to be used for the process stack. This is the stack used by - the main() function.*/ -REGION_ALIAS("PROCESS_STACK_RAM", ram0); - -/* RAM region to be used for data segment.*/ -REGION_ALIAS("DATA_RAM", ram0); -REGION_ALIAS("DATA_RAM_LMA", flash0); - -/* RAM region to be used for BSS segment.*/ -REGION_ALIAS("BSS_RAM", ram0); - -/* RAM region to be used for the default heap.*/ -REGION_ALIAS("HEAP_RAM", ram0); - -/* Generic rules inclusion.*/ -INCLUDE rules.ld diff --git a/keyboards/chibios_test/teensy_lc_onekey/ld/MKL26Z64.ld b/keyboards/chibios_test/teensy_lc_onekey/ld/MKL26Z64.ld deleted file mode 100644 index fb141f888..000000000 --- a/keyboards/chibios_test/teensy_lc_onekey/ld/MKL26Z64.ld +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright (C) 2013-2016 Fabio Utzig, http://fabioutzig.com - * (C) 2016 flabbergast - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -/* - * KL26Z64 memory setup. - */ -MEMORY -{ - flash0 : org = 0x00000000, len = 0x100 - flash1 : org = 0x00000400, len = 0x10 - flash2 : org = 0x00000410, len = 62k - 0x410 - flash3 : org = 0x0000F800, len = 2k - flash4 : org = 0x00000000, len = 0 - flash5 : org = 0x00000000, len = 0 - flash6 : org = 0x00000000, len = 0 - flash7 : org = 0x00000000, len = 0 - ram0 : org = 0x1FFFF800, len = 8k - ram1 : org = 0x00000000, len = 0 - ram2 : org = 0x00000000, len = 0 - ram3 : org = 0x00000000, len = 0 - ram4 : org = 0x00000000, len = 0 - ram5 : org = 0x00000000, len = 0 - ram6 : org = 0x00000000, len = 0 - ram7 : org = 0x00000000, len = 0 -} - -/* Flash region for the configuration bytes.*/ -SECTIONS -{ - .cfmprotect : ALIGN(4) SUBALIGN(4) - { - KEEP(*(.cfmconfig)) - } > flash1 -} - -/* For each data/text section two region are defined, a virtual region - and a load region (_LMA suffix).*/ - -/* Flash region to be used for exception vectors.*/ -REGION_ALIAS("VECTORS_FLASH", flash0); -REGION_ALIAS("VECTORS_FLASH_LMA", flash0); - -/* Flash region to be used for constructors and destructors.*/ -REGION_ALIAS("XTORS_FLASH", flash2); -REGION_ALIAS("XTORS_FLASH_LMA", flash2); - -/* Flash region to be used for code text.*/ -REGION_ALIAS("TEXT_FLASH", flash2); -REGION_ALIAS("TEXT_FLASH_LMA", flash2); - -/* Flash region to be used for read only data.*/ -REGION_ALIAS("RODATA_FLASH", flash2); -REGION_ALIAS("RODATA_FLASH_LMA", flash2); - -/* Flash region to be used for various.*/ -REGION_ALIAS("VARIOUS_FLASH", flash2); -REGION_ALIAS("VARIOUS_FLASH_LMA", flash2); - -/* Flash region to be used for RAM(n) initialization data.*/ -REGION_ALIAS("RAM_INIT_FLASH_LMA", flash2); - -/* RAM region to be used for Main stack. This stack accommodates the processing - of all exceptions and interrupts.*/ -REGION_ALIAS("MAIN_STACK_RAM", ram0); - -/* RAM region to be used for the process stack. This is the stack used by - the main() function.*/ -REGION_ALIAS("PROCESS_STACK_RAM", ram0); - -/* RAM region to be used for data segment.*/ -REGION_ALIAS("DATA_RAM", ram0); -REGION_ALIAS("DATA_RAM_LMA", flash2); - -/* RAM region to be used for BSS segment.*/ -REGION_ALIAS("BSS_RAM", ram0); - -/* RAM region to be used for the default heap.*/ -REGION_ALIAS("HEAP_RAM", ram0); - -__eeprom_workarea_start__ = ORIGIN(flash3); -__eeprom_workarea_size__ = LENGTH(flash3); -__eeprom_workarea_end__ = __eeprom_workarea_start__ + __eeprom_workarea_size__; - -/* Generic rules inclusion.*/ -INCLUDE rules.ld -- cgit v1.2.3 From 6e4f2e18e6cd0abffa52e6481d9761064698ec64 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Tue, 5 Jul 2016 15:53:40 +0300 Subject: Don't include common_config.h for ChibiOS test --- keyboards/chibios_test/config.h | 2 -- 1 file changed, 2 deletions(-) (limited to 'keyboards') diff --git a/keyboards/chibios_test/config.h b/keyboards/chibios_test/config.h index 210f15067..c32a77b37 100644 --- a/keyboards/chibios_test/config.h +++ b/keyboards/chibios_test/config.h @@ -18,8 +18,6 @@ along with this program. If not, see . #ifndef CONFIG_H #define CONFIG_H -#include "config_common.h" - /* USB Device descriptor parameter */ #define VENDOR_ID 0xFEED #define PRODUCT_ID 0x6464 -- cgit v1.2.3 From cf6cd15920522b139ba0f6c7e2b52e3d656a45d7 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Tue, 5 Jul 2016 15:54:59 +0300 Subject: Fix typo in teensy_lc_onkey.h --- keyboards/chibios_test/teensy_lc_onekey/teensy_lc_onekey.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/chibios_test/teensy_lc_onekey/teensy_lc_onekey.h b/keyboards/chibios_test/teensy_lc_onekey/teensy_lc_onekey.h index 747e830a7..ea1c84e2f 100644 --- a/keyboards/chibios_test/teensy_lc_onekey/teensy_lc_onekey.h +++ b/keyboards/chibios_test/teensy_lc_onekey/teensy_lc_onekey.h @@ -1,4 +1,4 @@ #ifndef TEENSY_LC_ONEKEY_H #define TEENSY_LC_ONEKEY_H -#include "chbibios_test.h" +#include "chibios_test.h" #endif -- cgit v1.2.3 From 74847a84f8c90c8065f50cee9768f7768b5f856b Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Tue, 5 Jul 2016 16:45:29 +0300 Subject: First version of Infinity Ergodox Mostly just adding the files from the fredizzimo repository. Still needs some fixing until it works --- keyboards/infinity_ergodox/MEMO.txt | 385 +++++++++++++++ keyboards/infinity_ergodox/Makefile | 68 +++ keyboards/infinity_ergodox/bootloader_defs.h | 1 + keyboards/infinity_ergodox/chconf.h | 524 +++++++++++++++++++++ keyboards/infinity_ergodox/config.h | 80 ++++ keyboards/infinity_ergodox/halconf.h | 353 ++++++++++++++ keyboards/infinity_ergodox/infinity_ergodox.c | 1 + keyboards/infinity_ergodox/infinity_ergodox.h | 44 ++ .../infinity_ergodox/keymaps/default/keymap.c | 111 +++++ keyboards/infinity_ergodox/led.c | 49 ++ keyboards/infinity_ergodox/matrix.c | 170 +++++++ keyboards/infinity_ergodox/mcuconf.h | 74 +++ 12 files changed, 1860 insertions(+) create mode 100644 keyboards/infinity_ergodox/MEMO.txt create mode 100644 keyboards/infinity_ergodox/Makefile create mode 100644 keyboards/infinity_ergodox/bootloader_defs.h create mode 100644 keyboards/infinity_ergodox/chconf.h create mode 100644 keyboards/infinity_ergodox/config.h create mode 100644 keyboards/infinity_ergodox/halconf.h create mode 100644 keyboards/infinity_ergodox/infinity_ergodox.c create mode 100644 keyboards/infinity_ergodox/infinity_ergodox.h create mode 100644 keyboards/infinity_ergodox/keymaps/default/keymap.c create mode 100644 keyboards/infinity_ergodox/led.c create mode 100644 keyboards/infinity_ergodox/matrix.c create mode 100644 keyboards/infinity_ergodox/mcuconf.h (limited to 'keyboards') diff --git a/keyboards/infinity_ergodox/MEMO.txt b/keyboards/infinity_ergodox/MEMO.txt new file mode 100644 index 000000000..e2886aa00 --- /dev/null +++ b/keyboards/infinity_ergodox/MEMO.txt @@ -0,0 +1,385 @@ +flabbergast's TMK/ChibiOS port +============================== +2015/10/16 + + +Build +----- +$ git clone -b chibios https://github.com/flabbergast/tmk_keyboard.git + +$ cd tmk_keyboard +$ git submodule add -f -b kinetis https://github.com/flabbergast/ChibiOS.git tmk_core/tool/chibios/chibios +or +$ cd tmk_keyboard/tmk_core/tool/chibios +$ git clone -b kinetis https://github.com/flabbergast/ChibiOS.git tmk_core/tool/chibios/chibios + +$ cd tmk_keyboard/keyboard/infinity_chibios +$ make + + + + +Chibios Configuration +--------------------- +halconf.h: for HAL configuration + placed in project directory + read in chibios/os/hal/hal.mk + included in chibios/os/hal/include/hal.h +mcuconf.h: for MCU configuration + placed in project directory + included in halconf.h + + +Chibios Term +------------ +PAL = Port Abstraction Layer + palWritePad + palReadPad + palSetPad + chibios/os/hal/include/pal.h + +LLD = Low Level Driver + + +Makefile +-------- + # /os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) + MCU_FAMILY = KINETIS + MCU_SERIES = KL2x + + # - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ + # or /ld/ + MCU_LDSCRIPT = MKL26Z64 + + # - it should exist in /os/common/ports/ARMCMx/compilers/GCC/mk/ + MCU_STARTUP = kl2x + + # Board: it should exist either in /os/hal/boards/ + # or /boards + BOARD = PJRC_TEENSY_LC + + MCU = cortex-m0 + + # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 + ARMV = 6 + + +halconf.h +--------- + + +mcuconf.h +--------- + + +chconf.h +-------- + + +ld script +--------- +--- ../../tmk_core/tool/chibios/chibios/os/common/ports/ARMCMx/compilers/GCC/ld/MKL26Z64.ld 2015-10-15 09:08:58.732904304 +0900 ++++ ld/MKL26Z64.ld 2015-10-15 08:48:06.430215496 +0900 +@@ -27,7 +27,8 @@ + { + flash0 : org = 0x00000000, len = 0xc0 + flashcfg : org = 0x00000400, len = 0x10 +- flash : org = 0x00000410, len = 64k - 0x410 ++ flash : org = 0x00000410, len = 62k - 0x410 ++ eeprom_emu : org = 0x0000F800, len = 2k + ram : org = 0x1FFFF800, len = 8k + } + +@@ -35,6 +36,10 @@ + __ram_size__ = LENGTH(ram); + __ram_end__ = __ram_start__ + __ram_size__; + ++__eeprom_workarea_start__ = ORIGIN(eeprom_emu); ++__eeprom_workarea_size__ = LENGTH(eeprom_emu); ++__eeprom_workarea_end__ = __eeprom_workarea_start__ + __eeprom_workarea_size__; ++ + SECTIONS + { + . = 0; + + + +Configuration/Startup for Infinity 60% +-------------------------------------- +Configuration: + + +Clock: +Inifinity + FEI(FLL Engaged Internal) mode with core clock:48MHz, bus clock:48MHz, flash clock:24MHz + Clock dividor: + SIM_CLKDIV1[OUTDIV1] = 0 divide-by-1 for core clock + SIM_CLKDIV1[OUTDIV2] = 0 divide-by-1 for bus clock + SIM_CLKDIV1[OUTDIV4] = 1 divide-by-2 for flash clock + Internal reference clock: + MCG_C1[IREFS] = 1 Internal Reference Select for clock source for FLL + MCG_C1[IRCLKEN] = 1 Internal Reference Clock Enable + FLL multipilication: + MCG_C4[DMX32] = 1 + MCG_C4[DRST_DRS] = 01 FLL factor 1464 * 32.768kHz = 48MHz + +chibios/os/hal/ports/KINETIS/K20x/hal_lld.c + k20x_clock_init(): called in __early_init() defined in board.c + disable watchdog and configure clock + + configurable macros: + KINETIS_NO_INIT: whether init or not + KINETIS_MCG_MODE: clock mode + KINETIS_MCG_MODE_FEI + KINETIS_MCG_MODE_PEE + hal/ports/KINETIS/K20x/hal_lld.h + + +chibios/os/hal/boards/FREESCALE_FREEDOM_K20D50M/board.h + PALConfig pal_default_config + boardInit() + __early_init() + macro definitions for board infos, freq and mcu type + +chibios/os/hal/boards/FREESCALE_FREEDOM_K20D50M/board.c + +USB + + +Startup +------- + common/ports/ARMCMx/GCC/crt0_v[67]m.s + Reset_Handler: startup code + common/ports/ARMCMx/GCC/crt1.c + __core_init(): weak + __early_init(): weak + __late_init(): weak + __default_exit(): weak + called from Reset_Handler of crt0 + common/ports/ARMCMx/GCC/vector.c + common/ports/ARMCMx/GCC/ld/*.ld + +chibios/os/common/ports/ARMCMx/compilers/GCC/ +├── crt0_v6m.s +├── crt0_v7m.s +├── crt1.c +├── ld +│   ├── MK20DX128BLDR3.ld +│   ├── MK20DX128BLDR4.ld +│   ├── MK20DX128.ld +│   ├── MK20DX256.ld +│   ├── MKL25Z128.ld +│   ├── MKL26Z128.ld +│   ├── MKL26Z64.ld +│   └── STM32L476xG.ld +├── mk +│   ├── startup_k20x5.mk +│   ├── startup_k20x7.mk +│   ├── startup_k20x.mk +│   ├── startup_kl2x.mk +│   └── startup_stm32l4xx.mk +├── rules.ld +├── rules.mk +└── vectors.c + +chibios/os/hal/ +├── boards +│   ├── FREESCALE_FREEDOM_K20D50M +│   │   ├── board.c +│   │   ├── board.h +│   │   └── board.mk +│   ├── MCHCK_K20 +│   │   ├── board.c +│   │   ├── board.h +│   │   └── board.mk +│   ├── PJRC_TEENSY_3 +│   │   ├── board.c +│   │   ├── board.h +│   │   └── board.mk +│   ├── PJRC_TEENSY_3_1 +│   │   ├── board.c +│   │   ├── board.h +│   │   └── board.mk +│   ├── PJRC_TEENSY_LC +│   │   ├── board.c +│   │   ├── board.h +│   │   └── board.mk +│   ├── readme.txt +│   ├── simulator +│   │   ├── board.c +│   │   ├── board.h +│   │   └── board.mk +│   ├── ST_NUCLEO_F030R8 +│   │   ├── board.c +│   │   ├── board.h +│   │   ├── board.mk +│   │   └── cfg +│   │   └── board.chcfg +├── hal.mk +├── include +│   ├── adc.h +│   ├── can.h +│   ├── dac.h +│   ├── ext.h +│   ├── gpt.h +│   ├── hal_channels.h +│   ├── hal_files.h +│   ├── hal.h +│   ├── hal_ioblock.h +│   ├── hal_mmcsd.h +│   ├── hal_queues.h +│   ├── hal_streams.h +│   ├── i2c.h +│   ├── i2s.h +│   ├── icu.h +│   ├── mac.h +│   ├── mii.h +│   ├── mmc_spi.h +│   ├── pal.h +│   ├── pwm.h +│   ├── rtc.h +│   ├── sdc.h +│   ├── serial.h +│   ├── serial_usb.h +│   ├── spi.h +│   ├── st.h +│   ├── uart.h +│   └── usb.h +├── lib +│   └── streams +│   ├── chprintf.c +│   ├── chprintf.h +│   ├── memstreams.c +│   ├── memstreams.h +│   ├── nullstreams.c +│   └── nullstreams.h +├── osal +│   ├── nil +│   │   ├── osal.c +│   │   ├── osal.h +│   │   └── osal.mk +│   ├── os-less +│   │   └── ARMCMx +│   │   ├── osal.c +│   │   ├── osal.h +│   │   └── osal.mk +│   └── rt +│   ├── osal.c +│   ├── osal.h +│   └── osal.mk +├── ports +│   ├── AVR +│   ├── common +│   │   └── ARMCMx +│   │   ├── mpu.h +│   │   ├── nvic.c +│   │   └── nvic.h +│   ├── KINETIS +│   │   ├── K20x +│   │   │   ├── hal_lld.c +│   │   │   ├── hal_lld.h +│   │   │   ├── kinetis_registry.h +│   │   │   ├── platform.dox +│   │   │   ├── platform.mk +│   │   │   ├── pwm_lld.c +│   │   │   ├── pwm_lld.h +│   │   │   ├── spi_lld.c +│   │   │   └── spi_lld.h +│   │   ├── KL2x +│   │   │   ├── hal_lld.c +│   │   │   ├── hal_lld.h +│   │   │   ├── kinetis_registry.h +│   │   │   ├── platform.mk +│   │   │   ├── pwm_lld.c +│   │   │   └── pwm_lld.h +│   │   ├── LLD +│   │   │   ├── adc_lld.c +│   │   │   ├── adc_lld.h +│   │   │   ├── ext_lld.c +│   │   │   ├── ext_lld.h +│   │   │   ├── gpt_lld.c +│   │   │   ├── gpt_lld.h +│   │   │   ├── i2c_lld.c +│   │   │   ├── i2c_lld.h +│   │   │   ├── pal_lld.c +│   │   │   ├── pal_lld.h +│   │   │   ├── serial_lld.c +│   │   │   ├── serial_lld.h +│   │   │   ├── st_lld.c +│   │   │   ├── st_lld.h +│   │   │   ├── usb_lld.c +│   │   │   └── usb_lld.h +│   │   └── README.md +│   ├── LPC +│   ├── simulator +│   └── STM32 +├── src +│   ├── adc.c +│   ├── can.c +│   ├── dac.c +│   ├── ext.c +│   ├── gpt.c +│   ├── hal.c +│   ├── hal_mmcsd.c +│   ├── hal_queues.c +│   ├── i2c.c +│   ├── i2s.c +│   ├── icu.c +│   ├── mac.c +│   ├── mmc_spi.c +│   ├── pal.c +│   ├── pwm.c +│   ├── rtc.c +│   ├── sdc.c +│   ├── serial.c +│   ├── serial_usb.c +│   ├── spi.c +│   ├── st.c +│   ├── uart.c +│   └── usb.c +└── templates + ├── adc_lld.c + ├── adc_lld.h + ├── can_lld.c + ├── can_lld.h + ├── dac_lld.c + ├── dac_lld.h + ├── ext_lld.c + ├── ext_lld.h + ├── gpt_lld.c + ├── gpt_lld.h + ├── halconf.h + ├── hal_lld.c + ├── hal_lld.h + ├── i2c_lld.c + ├── i2c_lld.h + ├── i2s_lld.c + ├── i2s_lld.h + ├── icu_lld.c + ├── icu_lld.h + ├── mac_lld.c + ├── mac_lld.h + ├── mcuconf.h + ├── osal + │   ├── osal.c + │   ├── osal.h + │   └── osal.mk + ├── pal_lld.c + ├── pal_lld.h + ├── platform.mk + ├── pwm_lld.c + ├── pwm_lld.h + ├── rtc_lld.c + ├── rtc_lld.h + ├── sdc_lld.c + ├── sdc_lld.h + ├── serial_lld.c + ├── serial_lld.h + ├── spi_lld.c + ├── spi_lld.h + ├── st_lld.c + ├── st_lld.h + ├── uart_lld.c + ├── uart_lld.h + ├── usb_lld.c + └── usb_lld.h diff --git a/keyboards/infinity_ergodox/Makefile b/keyboards/infinity_ergodox/Makefile new file mode 100644 index 000000000..6ea3bd691 --- /dev/null +++ b/keyboards/infinity_ergodox/Makefile @@ -0,0 +1,68 @@ +## chip/board settings +# - the next two should match the directories in +# /os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) +# - For Teensies, FAMILY = KINETIS and SERIES is either +# KL2x (LC) or K20x (3.0,3.1,3.2). +# - For Infinity KB, SERIES = K20x +MCU_FAMILY = KINETIS +MCU_SERIES = K20x + +# Linker script to use +# - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ +# or /ld/ +# - NOTE: a custom ld script is needed for EEPROM on Teensy LC +# - LDSCRIPT = +# - MKL26Z64 for Teensy LC +# - MK20DX128 for Teensy 3.0 +# - MK20DX256 for Teensy 3.1 and 3.2 +# - MK20DX128BLDR4 for Infinity 60% with Kiibohd bootloader +# - MK20DX256BLDR8 for Infinity ErgoDox with Kiibohd bootloader +MCU_LDSCRIPT = MK20DX256BLDR8 + +# Startup code to use +# - it should exist in /os/common/ports/ARMCMx/compilers/GCC/mk/ +# - STARTUP = +# - kl2x for Teensy LC +# - k20x5 for Teensy 3.0 and Infinity 60% +# - k20x7 for Teensy 3.1, 3.2 and Infinity ErgoDox +MCU_STARTUP = k20x7 + +# Board: it should exist either in /os/hal/boards/ +# or /boards +# - BOARD = +# - PJRC_TEENSY_LC for Teensy LC +# - PJRC_TEENSY_3 for Teensy 3.0 +# - PJRC_TEENSY_3_1 for Teensy 3.1 or 3.2 +# - MCHCK_K20 for Infinity KB +#BOARD = MCHCK_K20 +BOARD = PJRC_TEENSY_3_1 + +# Cortex version +# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4 +MCU = cortex-m4 + +# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 +# I.e. 6 for Teensy LC; 7 for Teensy 3.x +ARMV = 7 + +# Vector table for application +# 0x00000000-0x00001000 area is occupied by bootlaoder.*/ +# The CORTEX_VTOR... is needed only for MCHCK/Infinity KB +OPT_DEFS = -DCORTEX_VTOR_INIT=0x00002000 + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration +## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.) +MOUSEKEY_ENABLE ?= yes # Mouse keys +EXTRAKEY_ENABLE ?= yes # Audio control and System control +CONSOLE_ENABLE ?= yes # Console for debug +COMMAND_ENABLE ?= yes # Commands for debug and configuration +SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend +NKRO_ENABLE ?= yes # USB Nkey Rollover +CUSTOM_MATRIX ?= yes # Custom matrix file + +ifndef QUANTUM_DIR + include ../../Makefile +endif \ No newline at end of file diff --git a/keyboards/infinity_ergodox/bootloader_defs.h b/keyboards/infinity_ergodox/bootloader_defs.h new file mode 100644 index 000000000..c67153be6 --- /dev/null +++ b/keyboards/infinity_ergodox/bootloader_defs.h @@ -0,0 +1 @@ +#define KIIBOHD_BOOTLOADER diff --git a/keyboards/infinity_ergodox/chconf.h b/keyboards/infinity_ergodox/chconf.h new file mode 100644 index 000000000..d59c35eb6 --- /dev/null +++ b/keyboards/infinity_ergodox/chconf.h @@ -0,0 +1,524 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file templates/chconf.h + * @brief Configuration file template. + * @details A copy of this file must be placed in each project directory, it + * contains the application specific kernel settings. + * + * @addtogroup config + * @details Kernel related settings and hooks. + * @{ + */ + +#ifndef _CHCONF_H_ +#define _CHCONF_H_ + +#define _CHIBIOS_RT_CONF_ + +/*===========================================================================*/ +/** + * @name System timers settings + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System time counter resolution. + * @note Allowed values are 16 or 32 bits. + */ +#define CH_CFG_ST_RESOLUTION 32 + +/** + * @brief System tick frequency. + * @details Frequency of the system timer that drives the system ticks. This + * setting also defines the system tick time unit. + */ +#define CH_CFG_ST_FREQUENCY 100000 + +/** + * @brief Time delta constant for the tick-less mode. + * @note If this value is zero then the system uses the classic + * periodic tick. This value represents the minimum number + * of ticks that is safe to specify in a timeout directive. + * The value one is not valid, timeouts are rounded up to + * this value. + */ +#define CH_CFG_ST_TIMEDELTA 0 + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel parameters and options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Round robin interval. + * @details This constant is the number of system ticks allowed for the + * threads before preemption occurs. Setting this value to zero + * disables the preemption for threads with equal priority and the + * round robin becomes cooperative. Note that higher priority + * threads can still preempt, the kernel is always preemptive. + * @note Disabling the round robin preemption makes the kernel more compact + * and generally faster. + * @note The round robin preemption is not supported in tickless mode and + * must be set to zero in that case. + */ +#define CH_CFG_TIME_QUANTUM 20 + +/** + * @brief Managed RAM size. + * @details Size of the RAM area to be managed by the OS. If set to zero + * then the whole available RAM is used. The core memory is made + * available to the heap allocator and/or can be used directly through + * the simplified core memory allocator. + * + * @note In order to let the OS manage the whole RAM the linker script must + * provide the @p __heap_base__ and @p __heap_end__ symbols. + * @note Requires @p CH_CFG_USE_MEMCORE. + */ +#define CH_CFG_MEMCORE_SIZE 0 + +/** + * @brief Idle thread automatic spawn suppression. + * @details When this option is activated the function @p chSysInit() + * does not spawn the idle thread. The application @p main() + * function becomes the idle thread and must implement an + * infinite loop. + */ +#define CH_CFG_NO_IDLE_THREAD FALSE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Performance options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief OS optimization. + * @details If enabled then time efficient rather than space efficient code + * is used when two possible implementations exist. + * + * @note This is not related to the compiler optimization options. + * @note The default is @p TRUE. + */ +#define CH_CFG_OPTIMIZE_SPEED TRUE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Subsystem options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Time Measurement APIs. + * @details If enabled then the time measurement APIs are included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_TM FALSE + +/** + * @brief Threads registry APIs. + * @details If enabled then the registry APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_REGISTRY TRUE + +/** + * @brief Threads synchronization APIs. + * @details If enabled then the @p chThdWait() function is included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_WAITEXIT TRUE + +/** + * @brief Semaphores APIs. + * @details If enabled then the Semaphores APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_SEMAPHORES TRUE + +/** + * @brief Semaphores queuing mode. + * @details If enabled then the threads are enqueued on semaphores by + * priority rather than in FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE + +/** + * @brief Mutexes APIs. + * @details If enabled then the mutexes APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MUTEXES TRUE + +/** + * @brief Enables recursive behavior on mutexes. + * @note Recursive mutexes are heavier and have an increased + * memory footprint. + * + * @note The default is @p FALSE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE + +/** + * @brief Conditional Variables APIs. + * @details If enabled then the conditional variables APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#define CH_CFG_USE_CONDVARS TRUE + +/** + * @brief Conditional Variables APIs with timeout. + * @details If enabled then the conditional variables APIs with timeout + * specification are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_CONDVARS. + */ +#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE + +/** + * @brief Events Flags APIs. + * @details If enabled then the event flags APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_EVENTS TRUE + +/** + * @brief Events Flags APIs with timeout. + * @details If enabled then the events APIs with timeout specification + * are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_EVENTS. + */ +#define CH_CFG_USE_EVENTS_TIMEOUT TRUE + +/** + * @brief Synchronous Messages APIs. + * @details If enabled then the synchronous messages APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MESSAGES TRUE + +/** + * @brief Synchronous Messages queuing mode. + * @details If enabled then messages are served by priority rather than in + * FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_MESSAGES. + */ +#define CH_CFG_USE_MESSAGES_PRIORITY FALSE + +/** + * @brief Mailboxes APIs. + * @details If enabled then the asynchronous messages (mailboxes) APIs are + * included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#define CH_CFG_USE_MAILBOXES TRUE + +/** + * @brief I/O Queues APIs. + * @details If enabled then the I/O queues APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_QUEUES TRUE + +/** + * @brief Core Memory Manager APIs. + * @details If enabled then the core memory manager APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MEMCORE TRUE + +/** + * @brief Heap Allocator APIs. + * @details If enabled then the memory heap allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or + * @p CH_CFG_USE_SEMAPHORES. + * @note Mutexes are recommended. + */ +#define CH_CFG_USE_HEAP TRUE + +/** + * @brief Memory Pools Allocator APIs. + * @details If enabled then the memory pools allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MEMPOOLS TRUE + +/** + * @brief Dynamic Threads APIs. + * @details If enabled then the dynamic threads creation APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_WAITEXIT. + * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. + */ +#define CH_CFG_USE_DYNAMIC TRUE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Debug options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Debug option, kernel statistics. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_STATISTICS FALSE + +/** + * @brief Debug option, system state check. + * @details If enabled the correct call protocol for system APIs is checked + * at runtime. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_SYSTEM_STATE_CHECK FALSE + +/** + * @brief Debug option, parameters checks. + * @details If enabled then the checks on the API functions input + * parameters are activated. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_ENABLE_CHECKS FALSE + +/** + * @brief Debug option, consistency checks. + * @details If enabled then all the assertions in the kernel code are + * activated. This includes consistency checks inside the kernel, + * runtime anomalies and port-defined checks. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_ENABLE_ASSERTS FALSE + +/** + * @brief Debug option, trace buffer. + * @details If enabled then the context switch circular trace buffer is + * activated. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_ENABLE_TRACE FALSE + +/** + * @brief Debug option, stack checks. + * @details If enabled then a runtime stack check is performed. + * + * @note The default is @p FALSE. + * @note The stack check is performed in a architecture/port dependent way. + * It may not be implemented or some ports. + * @note The default failure mode is to halt the system with the global + * @p panic_msg variable set to @p NULL. + */ +#define CH_DBG_ENABLE_STACK_CHECK FALSE + +/** + * @brief Debug option, stacks initialization. + * @details If enabled then the threads working area is filled with a byte + * value when a thread is created. This can be useful for the + * runtime measurement of the used stack. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_FILL_THREADS FALSE + +/** + * @brief Debug option, threads profiling. + * @details If enabled then a field is added to the @p thread_t structure that + * counts the system ticks occurred while executing the thread. + * + * @note The default is @p FALSE. + * @note This debug option is not currently compatible with the + * tickless mode. + */ +#define CH_DBG_THREADS_PROFILING FALSE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel hooks + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Threads descriptor structure extension. + * @details User fields added to the end of the @p thread_t structure. + */ +#define CH_CFG_THREAD_EXTRA_FIELDS \ + /* Add threads custom fields here.*/ + +/** + * @brief Threads initialization hook. + * @details User initialization code added to the @p chThdInit() API. + * + * @note It is invoked from within @p chThdInit() and implicitly from all + * the threads creation APIs. + */ +#define CH_CFG_THREAD_INIT_HOOK(tp) { \ + /* Add threads initialization code here.*/ \ +} + +/** + * @brief Threads finalization hook. + * @details User finalization code added to the @p chThdExit() API. + * + * @note It is inserted into lock zone. + * @note It is also invoked when the threads simply return in order to + * terminate. + */ +#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ + /* Add threads finalization code here.*/ \ +} + +/** + * @brief Context switch hook. + * @details This hook is invoked just before switching between threads. + */ +#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ + /* Context switch code here.*/ \ +} + +/** + * @brief ISR enter hook. + */ +#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ + /* IRQ prologue code here.*/ \ +} + +/** + * @brief ISR exit hook. + */ +#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ + /* IRQ epilogue code here.*/ \ +} + +/** + * @brief Idle thread enter hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to activate a power saving mode. + */ +#define CH_CFG_IDLE_ENTER_HOOK() { \ +} + +/** + * @brief Idle thread leave hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to deactivate a power saving mode. + */ +#define CH_CFG_IDLE_LEAVE_HOOK() { \ +} + +/** + * @brief Idle Loop hook. + * @details This hook is continuously invoked by the idle thread loop. + */ +#define CH_CFG_IDLE_LOOP_HOOK() { \ + /* Idle loop code here.*/ \ +} + +/** + * @brief System tick event hook. + * @details This hook is invoked in the system tick handler immediately + * after processing the virtual timers queue. + */ +#define CH_CFG_SYSTEM_TICK_HOOK() { \ + /* System tick event code here.*/ \ +} + +/** + * @brief System halt hook. + * @details This hook is invoked in case to a system halting error before + * the system is halted. + */ +#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ + /* System halt code here.*/ \ +} + +/** + * @brief Trace hook. + * @details This hook is invoked each time a new record is written in the + * trace buffer. + */ +#define CH_CFG_TRACE_HOOK(tep) { \ + /* Trace code here.*/ \ +} + +/** @} */ + +/*===========================================================================*/ +/* Port-specific settings (override port settings defaulted in chcore.h). */ +/*===========================================================================*/ + +#endif /* _CHCONF_H_ */ + +/** @} */ diff --git a/keyboards/infinity_ergodox/config.h b/keyboards/infinity_ergodox/config.h new file mode 100644 index 000000000..d24ee0f05 --- /dev/null +++ b/keyboards/infinity_ergodox/config.h @@ -0,0 +1,80 @@ +/* +Copyright 2015 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6464 +#define DEVICE_VER 0x0001 +/* in python2: list(u"whatever".encode('utf-16-le')) */ +/* at most 32 characters or the ugly hack in usb_main.c borks */ +#define MANUFACTURER "TMK" +#define USBSTR_MANUFACTURER 'T', '\x00', 'M', '\x00', 'K', '\x00', ' ', '\x00' +#define PRODUCT "Infinity keyboard/TMK" +#define USBSTR_PRODUCT 'I', '\x00', 'n', '\x00', 'f', '\x00', 'i', '\x00', 'n', '\x00', 'i', '\x00', 't', '\x00', 'y', '\x00', ' ', '\x00', 'k', '\x00', 'e', '\x00', 'y', '\x00', 'b', '\x00', 'o', '\x00', 'a', '\x00', 'r', '\x00', 'd', '\x00', '/', '\x00', 'T', '\x00', 'M', '\x00', 'K', '\x00' + +/* key matrix size */ +#define MATRIX_ROWS 18 +#define MATRIX_COLS 5 +#define LOCAL_MATRIX_ROWS 9 + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +//#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +//#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* Keymap for Infiity prototype */ +#define INFINITY_PROTOTYPE + +#define SERIAL_LINK_BAUD 562500 +#define SERIAL_LINK_THREAD_PRIORITY (NORMALPRIO - 1) +// The visualizer needs gfx thread priorities +#define VISUALIZER_THREAD_PRIORITY (NORMAL_PRIORITY - 2) + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/infinity_ergodox/halconf.h b/keyboards/infinity_ergodox/halconf.h new file mode 100644 index 000000000..55dd5e88d --- /dev/null +++ b/keyboards/infinity_ergodox/halconf.h @@ -0,0 +1,353 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file templates/halconf.h + * @brief HAL configuration header. + * @details HAL configuration file, this file allows to enable or disable the + * various device drivers from your application. You may also use + * this file in order to override the device drivers default settings. + * + * @addtogroup HAL_CONF + * @{ + */ + +#ifndef _HALCONF_H_ +#define _HALCONF_H_ + +#include "mcuconf.h" + +/** + * @brief Enables the PAL subsystem. + */ +#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) +#define HAL_USE_PAL TRUE +#endif + +/** + * @brief Enables the ADC subsystem. + */ +#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) +#define HAL_USE_ADC FALSE +#endif + +/** + * @brief Enables the CAN subsystem. + */ +#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) +#define HAL_USE_CAN FALSE +#endif + +/** + * @brief Enables the DAC subsystem. + */ +#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) +#define HAL_USE_DAC FALSE +#endif + +/** + * @brief Enables the EXT subsystem. + */ +#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__) +#define HAL_USE_EXT FALSE +#endif + +/** + * @brief Enables the GPT subsystem. + */ +#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) +#define HAL_USE_GPT FALSE +#endif + +/** + * @brief Enables the I2C subsystem. + */ +#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) +#define HAL_USE_I2C TRUE +#endif + +/** + * @brief Enables the I2S subsystem. + */ +#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) +#define HAL_USE_I2S FALSE +#endif + +/** + * @brief Enables the ICU subsystem. + */ +#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) +#define HAL_USE_ICU FALSE +#endif + +/** + * @brief Enables the MAC subsystem. + */ +#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) +#define HAL_USE_MAC FALSE +#endif + +/** + * @brief Enables the MMC_SPI subsystem. + */ +#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) +#define HAL_USE_MMC_SPI FALSE +#endif + +/** + * @brief Enables the PWM subsystem. + */ +#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) +#define HAL_USE_PWM FALSE +#endif + +/** + * @brief Enables the RTC subsystem. + */ +#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) +#define HAL_USE_RTC FALSE +#endif + +/** + * @brief Enables the SDC subsystem. + */ +#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) +#define HAL_USE_SDC FALSE +#endif + +/** + * @brief Enables the SERIAL subsystem. + */ +#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL TRUE +#endif + +/** + * @brief Enables the SERIAL over USB subsystem. + */ +#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL_USB TRUE +#endif + +/** + * @brief Enables the SPI subsystem. + */ +#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) +#define HAL_USE_SPI TRUE +#endif + +/** + * @brief Enables the UART subsystem. + */ +#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) +#define HAL_USE_UART FALSE +#endif + +/** + * @brief Enables the USB subsystem. + */ +#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) +#define HAL_USE_USB TRUE +#endif + +/** + * @brief Enables the WDG subsystem. + */ +#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) +#define HAL_USE_WDG FALSE +#endif + +/*===========================================================================*/ +/* ADC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) +#define ADC_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define ADC_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* CAN driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Sleep mode related APIs inclusion switch. + */ +#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) +#define CAN_USE_SLEEP_MODE TRUE +#endif + +/*===========================================================================*/ +/* I2C driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the mutual exclusion APIs on the I2C bus. + */ +#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define I2C_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* MAC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) +#define MAC_USE_ZERO_COPY FALSE +#endif + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) +#define MAC_USE_EVENTS TRUE +#endif + +/*===========================================================================*/ +/* MMC_SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + * This option is recommended also if the SPI driver does not + * use a DMA channel and heavily loads the CPU. + */ +#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) +#define MMC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SDC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Number of initialization attempts before rejecting the card. + * @note Attempts are performed at 10mS intervals. + */ +#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) +#define SDC_INIT_RETRY 100 +#endif + +/** + * @brief Include support for MMC cards. + * @note MMC support is not yet implemented so this option must be kept + * at @p FALSE. + */ +#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) +#define SDC_MMC_SUPPORT FALSE +#endif + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + */ +#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) +#define SDC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SERIAL driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Default bit rate. + * @details Configuration parameter, this is the baud rate selected for the + * default configuration. + */ +#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) +#define SERIAL_DEFAULT_BITRATE 38400 +#endif + +/** + * @brief Serial buffers size. + * @details Configuration parameter, you can change the depth of the queue + * buffers depending on the requirements of your application. + * @note The default is 64 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_BUFFERS_SIZE 128 +#endif + +/*===========================================================================*/ +/* SERIAL_USB driver related setting. */ +/*===========================================================================*/ + +/** + * @brief Serial over USB buffers size. + * @details Configuration parameter, the buffer size must be a multiple of + * the USB data endpoint maximum packet size. + * @note The default is 64 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_USB_BUFFERS_SIZE 256 +#endif + +/*===========================================================================*/ +/* SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) +#define SPI_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define SPI_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* USB driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) +#define USB_USE_WAIT TRUE +#endif + +#endif /* _HALCONF_H_ */ + +/** @} */ diff --git a/keyboards/infinity_ergodox/infinity_ergodox.c b/keyboards/infinity_ergodox/infinity_ergodox.c new file mode 100644 index 000000000..34aded1a7 --- /dev/null +++ b/keyboards/infinity_ergodox/infinity_ergodox.c @@ -0,0 +1 @@ +#include "infinity_ergodox.h" diff --git a/keyboards/infinity_ergodox/infinity_ergodox.h b/keyboards/infinity_ergodox/infinity_ergodox.h new file mode 100644 index 000000000..de7267594 --- /dev/null +++ b/keyboards/infinity_ergodox/infinity_ergodox.h @@ -0,0 +1,44 @@ +#ifndef KEYBOARDS_INFINITY_ERGODOX_INFINITY_ERGODOX_H_ +#define KEYBOARDS_INFINITY_ERGODOX_INFINITY_ERGODOX_H_ + +#include "quantum.h" + +#define KEYMAP( \ + A80, A70, A60, A50, A40, A30, A20, \ + A81, A71, A61, A51, A41, A31, A21, \ + A82, A72, A62, A52, A42, A32, \ + A83, A73, A63, A53, A43, A33, A23, \ + A84, A74, A64, A54, A44, \ + A13, A03, \ + A04, \ + A34, A24, A14, \ + B20, B30, B40, B50, B60, B70, B80, \ + B21, B31, B41, B51, B61, B71, B81, \ + B32, B42, B52, B62, B72, B82, \ + B23, B33, B43, B53, B63, B73, B83, \ + B44, B54, B64, B74, B84, \ + B03, B13, \ + B04, \ + B14, B24, B34 \ +) { \ + { KC_NO, KC_NO, KC_NO, KC_##A03, KC_##A04 }, \ + { KC_NO, KC_NO, KC_NO, KC_##A13, KC_##A14 }, \ + { KC_##A20, KC_##A21, KC_NO, KC_##A23, KC_##A24 }, \ + { KC_##A30, KC_##A31, KC_##A32, KC_##A33, KC_##A34 }, \ + { KC_##A40, KC_##A41, KC_##A42, KC_##A43, KC_##A44 }, \ + { KC_##A50, KC_##A51, KC_##A52, KC_##A53, KC_##A54 }, \ + { KC_##A60, KC_##A61, KC_##A62, KC_##A63, KC_##A64 }, \ + { KC_##A70, KC_##A71, KC_##A72, KC_##A73, KC_##A74 }, \ + { KC_##A80, KC_##A81, KC_##A82, KC_##A83, KC_##A84 }, \ + { KC_NO, KC_NO, KC_NO, KC_##B03, KC_##B04 }, \ + { KC_NO, KC_NO, KC_NO, KC_##B13, KC_##B14 }, \ + { KC_##B20, KC_##B21, KC_NO, KC_##B23, KC_##B24 }, \ + { KC_##B30, KC_##B31, KC_##B32, KC_##B33, KC_##B34 }, \ + { KC_##B40, KC_##B41, KC_##B42, KC_##B43, KC_##B44 }, \ + { KC_##B50, KC_##B51, KC_##B52, KC_##B53, KC_##B54 }, \ + { KC_##B60, KC_##B61, KC_##B62, KC_##B63, KC_##B64 }, \ + { KC_##B70, KC_##B71, KC_##B72, KC_##B73, KC_##B74 }, \ + { KC_##B80, KC_##B81, KC_##B82, KC_##B83, KC_##B84 } \ +} + +#endif /* KEYBOARDS_INFINITY_ERGODOX_INFINITY_ERGODOX_H_ */ diff --git a/keyboards/infinity_ergodox/keymaps/default/keymap.c b/keyboards/infinity_ergodox/keymaps/default/keymap.c new file mode 100644 index 000000000..c33fb7b92 --- /dev/null +++ b/keyboards/infinity_ergodox/keymaps/default/keymap.c @@ -0,0 +1,111 @@ +/* +Copyright 2016 Fred Sundvik +Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "infinity_ergodox.h" + +const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + KEYMAP( // layer 0 : default + // left hand + EQL, 1, 2, 3, 4, 5, ESC, + BSLS,Q, W, E, R, T, FN1, + TAB, A, S, D, F, G, + LSFT,Z, X, C, V, B, FN0, + LGUI,GRV, BSLS,LEFT,RGHT, + LCTL,LALT, + HOME, + BSPC,DEL, END, + // right hand + FN2, 6, 7, 8, 9, 0, MINS, + LBRC,Y, U, I, O, P, RBRC, + H, J, K, L, SCLN,QUOT, + FN0, N, M, COMM,DOT, SLSH,RSFT, + LEFT,DOWN,UP, RGHT,RGUI, + RALT,RCTL, + PGUP, + PGDN,ENT, SPC + ), + + KEYMAP( // layer 1 : function and symbol keys + // left hand + TRNS,F1, F2, F3, F4, F5, F11, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,FN3, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS, + TRNS, + TRNS,TRNS,TRNS, + // right hand + F12, F6, F7, F8, F9, F10, TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS, + TRNS, + TRNS,TRNS,TRNS + ), + + KEYMAP( // layer 2 : keyboard functions + // left hand + BTLD,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, FN3, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS, + TRNS, + TRNS,TRNS,TRNS, + // right hand + TRNS, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS, + TRNS, + TRNS,TRNS,TRNS + ), + + KEYMAP( // layer 3: numpad + // left hand + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS, + TRNS, + TRNS,TRNS,TRNS, + // right hand + TRNS,NLCK,PSLS,PAST,PAST,PMNS,BSPC, + TRNS,NO, P7, P8, P9, PMNS,BSPC, + NO, P4, P5, P6, PPLS,PENT, + TRNS,NO, P1, P2, P3, PPLS,PENT, + P0, PDOT,SLSH,PENT,PENT, + TRNS,TRNS, + TRNS, + TRNS,TRNS,TRNS + ), +}; +const uint16_t fn_actions[] = { + ACTION_LAYER_MOMENTARY(1), // FN0 - switch to Layer1 + ACTION_LAYER_SET(2, ON_PRESS), // FN1 - set Layer2 + ACTION_LAYER_TOGGLE(3), // FN2 - toggle Layer3 aka Numpad layer + ACTION_LAYER_SET(0, ON_PRESS), // FN3 - set Layer0 +}; diff --git a/keyboards/infinity_ergodox/led.c b/keyboards/infinity_ergodox/led.c new file mode 100644 index 000000000..77195bb35 --- /dev/null +++ b/keyboards/infinity_ergodox/led.c @@ -0,0 +1,49 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "hal.h" + +#include "led.h" + + +void led_set(uint8_t usb_led) { +// The LCD backlight functionality conflicts with this simple +// red backlight +#if !defined(LCD_BACKLIGHT_ENABLE) && defined(STATUS_LED_ENABLE) + // PTC1: LCD Backlight Red(0:on/1:off) + GPIOC->PDDR |= (1<<1); + PORTC->PCR[1] |= PORTx_PCRn_DSE | PORTx_PCRn_MUX(1); + if (usb_led & (1<PCOR |= (1<<1); + } else { + GPIOC->PSOR |= (1<<1); + } +#elif !defined(LCD_BACKLIGHT_ENABLE) + (void)usb_led; + GPIOC->PDDR |= (1<<1); + PORTC->PCR[1] |= PORTx_PCRn_DSE | PORTx_PCRn_MUX(1); + GPIOC->PSOR |= (1<<1); + GPIOC->PDDR |= (1<<2); + PORTC->PCR[2] |= PORTx_PCRn_DSE | PORTx_PCRn_MUX(1); + GPIOC->PSOR |= (1<<2); + GPIOC->PDDR |= (1<<3); + PORTC->PCR[3] |= PORTx_PCRn_DSE | PORTx_PCRn_MUX(1); + GPIOC->PSOR |= (1<<3); +#else + (void)usb_led; +#endif +} diff --git a/keyboards/infinity_ergodox/matrix.c b/keyboards/infinity_ergodox/matrix.c new file mode 100644 index 000000000..fd93967a8 --- /dev/null +++ b/keyboards/infinity_ergodox/matrix.c @@ -0,0 +1,170 @@ +/* +Copyright 2016 Fred Sundvik +Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include +#include +#include +#include "hal.h" +#include "timer.h" +#include "wait.h" +#include "print.h" +#include "debug.h" +#include "matrix.h" +#include "serial_link/system/serial_link.h" + + +/* + * Infinity ErgoDox Pinusage: + * Column pins are input with internal pull-down. Row pins are output and strobe with high. + * Key is high or 1 when it turns on. + * + * col: { PTD1, PTD4, PTD5, PTD6, PTD7 } + * row: { PTB2, PTB3, PTB18, PTB19, PTC0, PTC9, PTC10, PTC11, PTD0 } + */ +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; +static matrix_row_t matrix_debouncing[LOCAL_MATRIX_ROWS]; +static bool debouncing = false; +static uint16_t debouncing_time = 0; + + +void matrix_init(void) +{ + /* Column(sense) */ + palSetPadMode(GPIOD, 1, PAL_MODE_INPUT_PULLDOWN); + palSetPadMode(GPIOD, 4, PAL_MODE_INPUT_PULLDOWN); + palSetPadMode(GPIOD, 5, PAL_MODE_INPUT_PULLDOWN); + palSetPadMode(GPIOD, 6, PAL_MODE_INPUT_PULLDOWN); + palSetPadMode(GPIOD, 7, PAL_MODE_INPUT_PULLDOWN); + + /* Row(strobe) */ + palSetPadMode(GPIOB, 2, PAL_MODE_OUTPUT_PUSHPULL); + palSetPadMode(GPIOB, 3, PAL_MODE_OUTPUT_PUSHPULL); + palSetPadMode(GPIOB, 18, PAL_MODE_OUTPUT_PUSHPULL); + palSetPadMode(GPIOB, 19, PAL_MODE_OUTPUT_PUSHPULL); + palSetPadMode(GPIOC, 0, PAL_MODE_OUTPUT_PUSHPULL); + palSetPadMode(GPIOC, 9, PAL_MODE_OUTPUT_PUSHPULL); + palSetPadMode(GPIOC, 10, PAL_MODE_OUTPUT_PUSHPULL); + palSetPadMode(GPIOC, 11, PAL_MODE_OUTPUT_PUSHPULL); + palSetPadMode(GPIOD, 0, PAL_MODE_OUTPUT_PUSHPULL); + + memset(matrix, 0, MATRIX_ROWS); + memset(matrix_debouncing, 0, LOCAL_MATRIX_ROWS); +} + +uint8_t matrix_scan(void) +{ + for (int row = 0; row < LOCAL_MATRIX_ROWS; row++) { + matrix_row_t data = 0; + + // strobe row + switch (row) { + case 0: palSetPad(GPIOB, 2); break; + case 1: palSetPad(GPIOB, 3); break; + case 2: palSetPad(GPIOB, 18); break; + case 3: palSetPad(GPIOB, 19); break; + case 4: palSetPad(GPIOC, 0); break; + case 5: palSetPad(GPIOC, 9); break; + case 6: palSetPad(GPIOC, 10); break; + case 7: palSetPad(GPIOC, 11); break; + case 8: palSetPad(GPIOD, 0); break; + } + + // need wait to settle pin state + // if you wait too short, or have a too high update rate + // the keyboard might freeze, or there might not be enough + // processing power to update the LCD screen properly. + // 20us, or two ticks at 100000Hz seems to be OK + wait_us(20); + + // read col data: { PTD1, PTD4, PTD5, PTD6, PTD7 } + data = ((palReadPort(GPIOD) & 0xF0) >> 3) | + ((palReadPort(GPIOD) & 0x02) >> 1); + + // un-strobe row + switch (row) { + case 0: palClearPad(GPIOB, 2); break; + case 1: palClearPad(GPIOB, 3); break; + case 2: palClearPad(GPIOB, 18); break; + case 3: palClearPad(GPIOB, 19); break; + case 4: palClearPad(GPIOC, 0); break; + case 5: palClearPad(GPIOC, 9); break; + case 6: palClearPad(GPIOC, 10); break; + case 7: palClearPad(GPIOC, 11); break; + case 8: palClearPad(GPIOD, 0); break; + } + + if (matrix_debouncing[row] != data) { + matrix_debouncing[row] = data; + debouncing = true; + debouncing_time = timer_read(); + } + } + + uint8_t offset = 0; +#ifdef MASTER_IS_ON_RIGHT + if (is_serial_link_master()) { + offset = MATRIX_ROWS - LOCAL_MATRIX_ROWS; + } +#endif + + if (debouncing && timer_elapsed(debouncing_time) > DEBOUNCE) { + for (int row = 0; row < LOCAL_MATRIX_ROWS; row++) { + matrix[offset + row] = matrix_debouncing[row]; + } + debouncing = false; + } + return 1; +} + +bool matrix_is_on(uint8_t row, uint8_t col) +{ + return (matrix[row] & (1</os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) diff --git a/keyboards/infinity_ergodox/matrix.c b/keyboards/infinity_ergodox/matrix.c index fd93967a8..2b806cd64 100644 --- a/keyboards/infinity_ergodox/matrix.c +++ b/keyboards/infinity_ergodox/matrix.c @@ -24,7 +24,6 @@ along with this program. If not, see . #include "print.h" #include "debug.h" #include "matrix.h" -#include "serial_link/system/serial_link.h" /* -- cgit v1.2.3 From 96f44e120295e677d21d3dbb9dc4bf642ba2af09 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 5 Jul 2016 18:36:02 -0400 Subject: one half working --- keyboards/lets-split/Makefile | 73 ++++++++++++++++++++++ keyboards/lets-split/config.h | 87 +++++++++++++++++++++++++++ keyboards/lets-split/keymaps/default/keymap.c | 42 +++++++++++++ keyboards/lets-split/lets-split.c | 48 +++++++++++++++ keyboards/lets-split/lets-split.h | 4 ++ keyboards/lets-split/readme.md | 0 6 files changed, 254 insertions(+) create mode 100644 keyboards/lets-split/Makefile create mode 100644 keyboards/lets-split/config.h create mode 100644 keyboards/lets-split/keymaps/default/keymap.c create mode 100644 keyboards/lets-split/lets-split.c create mode 100644 keyboards/lets-split/lets-split.h create mode 100644 keyboards/lets-split/readme.md (limited to 'keyboards') diff --git a/keyboards/lets-split/Makefile b/keyboards/lets-split/Makefile new file mode 100644 index 000000000..247f978f0 --- /dev/null +++ b/keyboards/lets-split/Makefile @@ -0,0 +1,73 @@ + + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= no # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +NKRO_ENABLE ?= no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality +MIDI_ENABLE ?= no # MIDI controls +AUDIO_ENABLE ?= yes # Audio output on port C6 +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../Makefile +endif \ No newline at end of file diff --git a/keyboards/lets-split/config.h b/keyboards/lets-split/config.h new file mode 100644 index 000000000..5b464147d --- /dev/null +++ b/keyboards/lets-split/config.h @@ -0,0 +1,87 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x3060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Wootpatoot +#define PRODUCT Lets Split +#define DESCRIPTION A split keyboard for the cheap makers + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 6 + +#define MATRIX_ROW_PINS { B5, B4, E6, D7, } +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* ws2812 RGB LED */ +#define ws2812_PORTREG PORTD +#define ws2812_DDRREG DDRD +#define ws2812_pin PD1 +#define RGBLED_NUM 28 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif \ No newline at end of file diff --git a/keyboards/lets-split/keymaps/default/keymap.c b/keyboards/lets-split/keymaps/default/keymap.c new file mode 100644 index 000000000..00602394f --- /dev/null +++ b/keyboards/lets-split/keymaps/default/keymap.c @@ -0,0 +1,42 @@ +#include "lets-split.h" +#include "action_layer.h" + +#define BASE 0 + +enum preonic_keycodes { + KC_IDK = SAFE_RANGE, + PM_RESET +}; + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[BASE] = { + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_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 }, + {KC_IDK, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, PM_RESET } +} + +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_IDK: + if (record->event.pressed) { + SEND_STRING("IDK. "); + } + return false; + break; + case PM_RESET: + if (record->event.pressed) { + promicro_bootloader_jmp(true); + } + return false; + break; + } + return true; +}; \ No newline at end of file diff --git a/keyboards/lets-split/lets-split.c b/keyboards/lets-split/lets-split.c new file mode 100644 index 000000000..ee9872303 --- /dev/null +++ b/keyboards/lets-split/lets-split.c @@ -0,0 +1,48 @@ +#include "lets-split.h" + +#ifdef AUDIO_ENABLE + float tone_startup[][2] = SONG(STARTUP_SOUND); + float tone_goodbye[][2] = SONG(GOODBYE_SOUND); +#endif + +void matrix_init_kb(void) { + + #ifdef AUDIO_ENABLE + _delay_ms(20); // gets rid of tick + PLAY_NOTE_ARRAY(tone_startup, false, 0); + #endif + + // green led on + DDRD |= (1<<5); + PORTD &= ~(1<<5); + + // orange led on + DDRB |= (1<<0); + PORTB &= ~(1<<0); + + matrix_init_user(); +}; + +void promicro_bootloader_jmp(bool program) { + + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_goodbye, false, 0); + _delay_ms(150); + stop_all_notes(); + #endif + + uint16_t *const bootKeyPtr = (uint16_t *)0x0800; + + // Value used by Caterina bootloader use to determine whether to run the + // sketch or the bootloader programmer. + uint16_t bootKey = program ? 0x7777 : 0; + + *bootKeyPtr = bootKey; + + // setup watchdog timeout + wdt_enable(WDTO_60MS); + + while(1) {} // wait for watchdog timer to trigger +} + + diff --git a/keyboards/lets-split/lets-split.h b/keyboards/lets-split/lets-split.h new file mode 100644 index 000000000..c82b95a37 --- /dev/null +++ b/keyboards/lets-split/lets-split.h @@ -0,0 +1,4 @@ +#include "quantum.h" +#include + +void promicro_bootloader_jmp(bool program); \ No newline at end of file diff --git a/keyboards/lets-split/readme.md b/keyboards/lets-split/readme.md new file mode 100644 index 000000000..e69de29bb -- cgit v1.2.3 From d707738616c140f8d9c8eded7b64e5fc806f4b24 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 5 Jul 2016 23:27:10 -0400 Subject: i2c working --- keyboards/lets-split/Makefile | 73 ---- keyboards/lets-split/config.h | 87 ----- keyboards/lets-split/keymaps/default/keymap.c | 42 --- keyboards/lets-split/lets-split.c | 48 --- keyboards/lets-split/lets-split.h | 4 - keyboards/lets-split/readme.md | 0 keyboards/lets_split/Makefile | 77 +++++ keyboards/lets_split/config.h | 93 +++++ keyboards/lets_split/i2c.c | 159 +++++++++ keyboards/lets_split/i2c.h | 31 ++ keyboards/lets_split/keymaps/default/keymap.c | 42 +++ keyboards/lets_split/lets_split.c | 48 +++ keyboards/lets_split/lets_split.h | 21 ++ keyboards/lets_split/matrix.c | 310 +++++++++++++++++ keyboards/lets_split/pro_micro.h | 362 ++++++++++++++++++++ keyboards/lets_split/readme.md | 0 keyboards/lets_split/split_util.c | 67 ++++ keyboards/lets_split/split_util.h | 20 ++ keyboards/lets_split/uno-slave/Makefile | 226 ++++++++++++ .../lets_split/uno-slave/keyboard-i2c-slave.c | 42 +++ keyboards/lets_split/uno-slave/readme.md | 1 + keyboards/lets_split/uno-slave/uno-matrix.c | 160 +++++++++ keyboards/lets_split/uno-slave/uno-matrix.h | 19 ++ keyboards/lets_split/usbconfig.h | 377 +++++++++++++++++++++ tmk_core/common/matrix.h | 5 + 25 files changed, 2060 insertions(+), 254 deletions(-) delete mode 100644 keyboards/lets-split/Makefile delete mode 100644 keyboards/lets-split/config.h delete mode 100644 keyboards/lets-split/keymaps/default/keymap.c delete mode 100644 keyboards/lets-split/lets-split.c delete mode 100644 keyboards/lets-split/lets-split.h delete mode 100644 keyboards/lets-split/readme.md create mode 100644 keyboards/lets_split/Makefile create mode 100644 keyboards/lets_split/config.h create mode 100644 keyboards/lets_split/i2c.c create mode 100644 keyboards/lets_split/i2c.h create mode 100644 keyboards/lets_split/keymaps/default/keymap.c create mode 100644 keyboards/lets_split/lets_split.c create mode 100644 keyboards/lets_split/lets_split.h create mode 100644 keyboards/lets_split/matrix.c create mode 100644 keyboards/lets_split/pro_micro.h create mode 100644 keyboards/lets_split/readme.md create mode 100644 keyboards/lets_split/split_util.c create mode 100644 keyboards/lets_split/split_util.h create mode 100644 keyboards/lets_split/uno-slave/Makefile create mode 100644 keyboards/lets_split/uno-slave/keyboard-i2c-slave.c create mode 100644 keyboards/lets_split/uno-slave/readme.md create mode 100644 keyboards/lets_split/uno-slave/uno-matrix.c create mode 100644 keyboards/lets_split/uno-slave/uno-matrix.h create mode 100644 keyboards/lets_split/usbconfig.h (limited to 'keyboards') diff --git a/keyboards/lets-split/Makefile b/keyboards/lets-split/Makefile deleted file mode 100644 index 247f978f0..000000000 --- a/keyboards/lets-split/Makefile +++ /dev/null @@ -1,73 +0,0 @@ - - -# MCU name -#MCU = at90usb1287 -MCU = atmega32u4 - -# Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -# -# This will be an integer division of F_USB below, as it is sourced by -# F_USB after it has run through any CPU prescalers. Note that this value -# does not *change* the processor frequency - it should merely be updated to -# reflect the processor speed set externally so that the code can use accurate -# software delays. -F_CPU = 16000000 - -# -# LUFA specific -# -# Target architecture (see library "Board Types" documentation). -ARCH = AVR8 - -# Input clock frequency. -# This will define a symbol, F_USB, in all source code files equal to the -# input clock frequency (before any prescaling is performed) in Hz. This value may -# differ from F_CPU if prescaling is used on the latter, and is required as the -# raw input clock is fed directly to the PLL sections of the AVR for high speed -# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' -# at the end, this will be done automatically to create a 32-bit value in your -# source code. -# -# If no clock division is performed on the input clock inside the AVR (via the -# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. -F_USB = $(F_CPU) - -# Interrupt driven control endpoint task(+60) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT - - -# Boot Section Size in *bytes* -# Teensy halfKay 512 -# Teensy++ halfKay 1024 -# Atmel DFU loader 4096 -# LUFA bootloader 4096 -# USBaspLoader 2048 -OPT_DEFS += -DBOOTLOADER_SIZE=4096 - -# Build Options -# change to "no" to disable the options, or define them in the Makefile in -# the appropriate keymap folder that will get included automatically -# -BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) -EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) -CONSOLE_ENABLE ?= no # Console for debug(+400) -COMMAND_ENABLE ?= yes # Commands for debug and configuration -NKRO_ENABLE ?= no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality -MIDI_ENABLE ?= no # MIDI controls -AUDIO_ENABLE ?= yes # Audio output on port C6 -UNICODE_ENABLE ?= no # Unicode -BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. - -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend - -ifndef QUANTUM_DIR - include ../../Makefile -endif \ No newline at end of file diff --git a/keyboards/lets-split/config.h b/keyboards/lets-split/config.h deleted file mode 100644 index 5b464147d..000000000 --- a/keyboards/lets-split/config.h +++ /dev/null @@ -1,87 +0,0 @@ -/* -Copyright 2012 Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#ifndef CONFIG_H -#define CONFIG_H - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x3060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Wootpatoot -#define PRODUCT Lets Split -#define DESCRIPTION A split keyboard for the cheap makers - -/* key matrix size */ -#define MATRIX_ROWS 4 -#define MATRIX_COLS 6 - -#define MATRIX_ROW_PINS { B5, B4, E6, D7, } -#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3 } - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -/* define if matrix has ghost */ -//#define MATRIX_HAS_GHOST - -/* number of backlight levels */ -#define BACKLIGHT_LEVELS 3 - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCING_DELAY 5 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -/* key combination for command */ -#define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ -) - -/* ws2812 RGB LED */ -#define ws2812_PORTREG PORTD -#define ws2812_DDRREG DDRD -#define ws2812_pin PD1 -#define RGBLED_NUM 28 // Number of LEDs -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -// #define NO_DEBUG - -/* disable print */ -// #define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -#endif \ No newline at end of file diff --git a/keyboards/lets-split/keymaps/default/keymap.c b/keyboards/lets-split/keymaps/default/keymap.c deleted file mode 100644 index 00602394f..000000000 --- a/keyboards/lets-split/keymaps/default/keymap.c +++ /dev/null @@ -1,42 +0,0 @@ -#include "lets-split.h" -#include "action_layer.h" - -#define BASE 0 - -enum preonic_keycodes { - KC_IDK = SAFE_RANGE, - PM_RESET -}; - -// Fillers to make layering more clear -#define _______ KC_TRNS -#define XXXXXXX KC_NO - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -[BASE] = { - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_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 }, - {KC_IDK, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, PM_RESET } -} - -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case KC_IDK: - if (record->event.pressed) { - SEND_STRING("IDK. "); - } - return false; - break; - case PM_RESET: - if (record->event.pressed) { - promicro_bootloader_jmp(true); - } - return false; - break; - } - return true; -}; \ No newline at end of file diff --git a/keyboards/lets-split/lets-split.c b/keyboards/lets-split/lets-split.c deleted file mode 100644 index ee9872303..000000000 --- a/keyboards/lets-split/lets-split.c +++ /dev/null @@ -1,48 +0,0 @@ -#include "lets-split.h" - -#ifdef AUDIO_ENABLE - float tone_startup[][2] = SONG(STARTUP_SOUND); - float tone_goodbye[][2] = SONG(GOODBYE_SOUND); -#endif - -void matrix_init_kb(void) { - - #ifdef AUDIO_ENABLE - _delay_ms(20); // gets rid of tick - PLAY_NOTE_ARRAY(tone_startup, false, 0); - #endif - - // green led on - DDRD |= (1<<5); - PORTD &= ~(1<<5); - - // orange led on - DDRB |= (1<<0); - PORTB &= ~(1<<0); - - matrix_init_user(); -}; - -void promicro_bootloader_jmp(bool program) { - - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_goodbye, false, 0); - _delay_ms(150); - stop_all_notes(); - #endif - - uint16_t *const bootKeyPtr = (uint16_t *)0x0800; - - // Value used by Caterina bootloader use to determine whether to run the - // sketch or the bootloader programmer. - uint16_t bootKey = program ? 0x7777 : 0; - - *bootKeyPtr = bootKey; - - // setup watchdog timeout - wdt_enable(WDTO_60MS); - - while(1) {} // wait for watchdog timer to trigger -} - - diff --git a/keyboards/lets-split/lets-split.h b/keyboards/lets-split/lets-split.h deleted file mode 100644 index c82b95a37..000000000 --- a/keyboards/lets-split/lets-split.h +++ /dev/null @@ -1,4 +0,0 @@ -#include "quantum.h" -#include - -void promicro_bootloader_jmp(bool program); \ No newline at end of file diff --git a/keyboards/lets-split/readme.md b/keyboards/lets-split/readme.md deleted file mode 100644 index e69de29bb..000000000 diff --git a/keyboards/lets_split/Makefile b/keyboards/lets_split/Makefile new file mode 100644 index 000000000..d8e283896 --- /dev/null +++ b/keyboards/lets_split/Makefile @@ -0,0 +1,77 @@ +SRC += matrix.c \ + i2c.c \ + split_util.c + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= no # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +NKRO_ENABLE ?= no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality +MIDI_ENABLE ?= no # MIDI controls +AUDIO_ENABLE ?= yes # Audio output on port C6 +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend + +CUSTOM_MATRIX = yes + +ifndef QUANTUM_DIR + include ../../Makefile +endif \ No newline at end of file diff --git a/keyboards/lets_split/config.h b/keyboards/lets_split/config.h new file mode 100644 index 000000000..e68787e0b --- /dev/null +++ b/keyboards/lets_split/config.h @@ -0,0 +1,93 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x3060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Wootpatoot +#define PRODUCT Lets Split +#define DESCRIPTION A split keyboard for the cheap makers + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 6 + +// wiring of each half +#define MATRIX_ROW_PINS { B5, B4, E6, D7 } +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3 } + +#define USE_I2C + +// #define I2C_MASTER_LEFT +#define I2C_MASTER_RIGHT + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* ws2812 RGB LED */ +#define ws2812_PORTREG PORTD +#define ws2812_DDRREG DDRD +#define ws2812_pin PD1 +#define RGBLED_NUM 28 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif \ No newline at end of file diff --git a/keyboards/lets_split/i2c.c b/keyboards/lets_split/i2c.c new file mode 100644 index 000000000..c72789403 --- /dev/null +++ b/keyboards/lets_split/i2c.c @@ -0,0 +1,159 @@ +#include +#include +#include +#include +#include +#include +#include "i2c.h" + +// Limits the amount of we wait for any one i2c transaction. +// Since were running SCL line 100kHz (=> 10μs/bit), and each transactions is +// 9 bits, a single transaction will take around 90μs to complete. +// +// (F_CPU/SCL_CLOCK) => # of μC cycles to transfer a bit +// poll loop takes at least 8 clock cycles to execute +#define I2C_LOOP_TIMEOUT (9+1)*(F_CPU/SCL_CLOCK)/8 + +#define BUFFER_POS_INC() (slave_buffer_pos = (slave_buffer_pos+1)%SLAVE_BUFFER_SIZE) + +volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE]; + +static volatile uint8_t slave_buffer_pos; +static volatile bool slave_has_register_set = false; + +// Wait for an i2c operation to finish +inline static +void i2c_delay(void) { + uint16_t lim = 0; + while(!(TWCR & (1<10. + // Check datasheets for more info. + TWBR = ((F_CPU/SCL_CLOCK)-16)/2; +} + +// Start a transaction with the given i2c slave address. The direction of the +// transfer is set with I2C_READ and I2C_WRITE. +// returns: 0 => success +// 1 => error +uint8_t i2c_master_start(uint8_t address) { + TWCR = (1< slave ACK +// 1 => slave NACK +uint8_t i2c_master_write(uint8_t data) { + TWDR = data; + TWCR = (1<= SLAVE_BUFFER_SIZE ) { + ack = 0; + slave_buffer_pos = 0; + } + slave_has_register_set = true; + } else { + i2c_slave_buffer[slave_buffer_pos] = TWDR; + BUFFER_POS_INC(); + } + break; + + case TW_ST_SLA_ACK: + case TW_ST_DATA_ACK: + // master has addressed this device as a slave transmitter and is + // requesting data. + TWDR = i2c_slave_buffer[slave_buffer_pos]; + BUFFER_POS_INC(); + break; + + case TW_BUS_ERROR: // something went wrong, reset twi state + TWCR = 0; + default: + break; + } + // Reset everything, so we are ready for the next TWI interrupt + TWCR |= (1< + +#ifndef F_CPU +#define F_CPU 16000000UL +#endif + +#define I2C_READ 1 +#define I2C_WRITE 0 + +#define I2C_ACK 1 +#define I2C_NACK 0 + +#define SLAVE_BUFFER_SIZE 0x10 + +// i2c SCL clock frequency +#define SCL_CLOCK 100000L + +extern volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE]; + +void i2c_master_init(void); +uint8_t i2c_master_start(uint8_t address); +void i2c_master_stop(void); +uint8_t i2c_master_write(uint8_t data); +uint8_t i2c_master_read(int); +void i2c_reset_state(void); +void i2c_slave_init(uint8_t address); + +#endif diff --git a/keyboards/lets_split/keymaps/default/keymap.c b/keyboards/lets_split/keymaps/default/keymap.c new file mode 100644 index 000000000..01e3593c2 --- /dev/null +++ b/keyboards/lets_split/keymaps/default/keymap.c @@ -0,0 +1,42 @@ +#include "lets_split.h" +#include "action_layer.h" + +#define BASE 0 + +enum preonic_keycodes { + KC_IDK = SAFE_RANGE, + PM_RESET +}; + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[BASE] = KEYMAP( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, \ + KC_IDK, KC_LCTL, KC_LALT, KC_LGUI, PM_RESET,KC_SPC, KC_SPC, PM_RESET,KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +) + +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_IDK: + if (record->event.pressed) { + SEND_STRING("IDK. "); + } + return false; + break; + case PM_RESET: + if (record->event.pressed) { + promicro_bootloader_jmp(true); + } + return false; + break; + } + return true; +}; \ No newline at end of file diff --git a/keyboards/lets_split/lets_split.c b/keyboards/lets_split/lets_split.c new file mode 100644 index 000000000..1859dc20a --- /dev/null +++ b/keyboards/lets_split/lets_split.c @@ -0,0 +1,48 @@ +#include "lets_split.h" + +#ifdef AUDIO_ENABLE + float tone_startup[][2] = SONG(STARTUP_SOUND); + float tone_goodbye[][2] = SONG(GOODBYE_SOUND); +#endif + +void matrix_init_kb(void) { + + #ifdef AUDIO_ENABLE + _delay_ms(20); // gets rid of tick + PLAY_NOTE_ARRAY(tone_startup, false, 0); + #endif + + // // green led on + // DDRD |= (1<<5); + // PORTD &= ~(1<<5); + + // // orange led on + // DDRB |= (1<<0); + // PORTB &= ~(1<<0); + + matrix_init_user(); +}; + +void promicro_bootloader_jmp(bool program) { + + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_goodbye, false, 0); + _delay_ms(150); + stop_all_notes(); + #endif + + uint16_t *const bootKeyPtr = (uint16_t *)0x0800; + + // Value used by Caterina bootloader use to determine whether to run the + // sketch or the bootloader programmer. + uint16_t bootKey = program ? 0x7777 : 0; + + *bootKeyPtr = bootKey; + + // setup watchdog timeout + wdt_enable(WDTO_60MS); + + while(1) {} // wait for watchdog timer to trigger +} + + diff --git a/keyboards/lets_split/lets_split.h b/keyboards/lets_split/lets_split.h new file mode 100644 index 000000000..e59aed592 --- /dev/null +++ b/keyboards/lets_split/lets_split.h @@ -0,0 +1,21 @@ +#include "quantum.h" +#include + +void promicro_bootloader_jmp(bool program); + +#define KEYMAP( \ + k00, k01, k02, k03, k04, k05, k40, k41, k42, k43, k44, k45, \ + k10, k11, k12, k13, k14, k15, k50, k51, k52, k53, k54, k55, \ + k20, k21, k22, k23, k24, k25, k60, k61, k62, k63, k64, k65, \ + k30, k31, k32, k33, k34, k35, k70, k71, k72, k73, k74, k75 \ + ) \ + { \ + { k00, k01, k02, k03, k04, k05 }, \ + { k10, k11, k12, k13, k14, k15 }, \ + { k20, k21, k22, k23, k24, k25 }, \ + { k30, k31, k32, k33, k34, k35 }, \ + { k40, k41, k42, k43, k44, k45 }, \ + { k50, k51, k52, k53, k54, k55 }, \ + { k60, k61, k62, k63, k64, k65 }, \ + { k70, k71, k72, k73, k74, k75 } \ + } \ No newline at end of file diff --git a/keyboards/lets_split/matrix.c b/keyboards/lets_split/matrix.c new file mode 100644 index 000000000..16c2ba0ba --- /dev/null +++ b/keyboards/lets_split/matrix.c @@ -0,0 +1,310 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +/* + * scan matrix + */ +#include +#include +#include +#include +#include +#include +#include "print.h" +#include "debug.h" +#include "util.h" +#include "matrix.h" +#include "i2c.h" +#include "split_util.h" +#include "pro_micro.h" +#include "config.h" + +#ifndef DEBOUNCE +# define DEBOUNCE 5 +#endif + +#define ERROR_DISCONNECT_COUNT 5 + +static uint8_t debouncing = DEBOUNCE; +static const int ROWS_PER_HAND = MATRIX_ROWS/2; +static uint8_t error_count = 0; + +static const uint8_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; +static const uint8_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; + +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; +static matrix_row_t matrix_debouncing[MATRIX_ROWS]; + +static matrix_row_t read_cols(void); +static void init_cols(void); +static void unselect_rows(void); +static void select_row(uint8_t row); + +__attribute__ ((weak)) +void matrix_init_quantum(void) { + matrix_init_kb(); +} + +__attribute__ ((weak)) +void matrix_scan_quantum(void) { + matrix_scan_kb(); +} + +__attribute__ ((weak)) +void matrix_init_kb(void) { + matrix_init_user(); +} + +__attribute__ ((weak)) +void matrix_scan_kb(void) { + matrix_scan_user(); +} + +__attribute__ ((weak)) +void matrix_init_user(void) { +} + +__attribute__ ((weak)) +void matrix_scan_user(void) { +} + +inline +uint8_t matrix_rows(void) +{ + return MATRIX_ROWS; +} + +inline +uint8_t matrix_cols(void) +{ + return MATRIX_COLS; +} + +void matrix_init(void) +{ + debug_enable = true; + debug_matrix = true; + debug_mouse = true; + // initialize row and col + unselect_rows(); + init_cols(); + + TX_RX_LED_INIT; + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + matrix_debouncing[i] = 0; + } + + matrix_init_quantum(); +} + +uint8_t _matrix_scan(void) +{ + // Right hand is stored after the left in the matirx so, we need to offset it + int offset = isLeftHand ? 0 : (ROWS_PER_HAND); + + for (uint8_t i = 0; i < ROWS_PER_HAND; i++) { + select_row(i); + _delay_us(30); // without this wait read unstable value. + matrix_row_t cols = read_cols(); + if (matrix_debouncing[i+offset] != cols) { + matrix_debouncing[i+offset] = cols; + debouncing = DEBOUNCE; + } + unselect_rows(); + } + + if (debouncing) { + if (--debouncing) { + _delay_ms(1); + } else { + for (uint8_t i = 0; i < ROWS_PER_HAND; i++) { + matrix[i+offset] = matrix_debouncing[i+offset]; + } + } + } + + return 1; +} + +// Get rows from other half over i2c +int i2c_transaction(void) { + int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0; + + int err = i2c_master_start(SLAVE_I2C_ADDRESS + I2C_WRITE); + if (err) goto i2c_error; + + // start of matrix stored at 0x00 + err = i2c_master_write(0x00); + if (err) goto i2c_error; + + // Start read + err = i2c_master_start(SLAVE_I2C_ADDRESS + I2C_READ); + if (err) goto i2c_error; + + if (!err) { + int i; + for (i = 0; i < ROWS_PER_HAND-1; ++i) { + matrix[slaveOffset+i] = i2c_master_read(I2C_ACK); + } + matrix[slaveOffset+i] = i2c_master_read(I2C_NACK); + i2c_master_stop(); + } else { +i2c_error: // the cable is disconnceted, or something else went wrong + i2c_reset_state(); + return err; + } + + return 0; +} + +#ifndef USE_I2C +int serial_transaction(void) { + int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0; + + if (serial_update_buffers()) { + return 1; + } + + for (int i = 0; i < ROWS_PER_HAND; ++i) { + matrix[slaveOffset+i] = serial_slave_buffer[i]; + } + return 0; +} +#endif + +uint8_t matrix_scan(void) +{ + int ret = _matrix_scan(); + + + +#ifdef USE_I2C + if( i2c_transaction() ) { +#else + if( serial_transaction() ) { +#endif + // turn on the indicator led when halves are disconnected + TXLED1; + + error_count++; + + if (error_count > ERROR_DISCONNECT_COUNT) { + // reset other half if disconnected + int slaveOffset = (isLeftHand) ? (ROWS_PER_HAND) : 0; + for (int i = 0; i < ROWS_PER_HAND; ++i) { + matrix[slaveOffset+i] = 0; + } + } + } else { + // turn off the indicator led on no error + TXLED0; + error_count = 0; + } + + matrix_scan_quantum(); + + return ret; +} + +void matrix_slave_scan(void) { + _matrix_scan(); + + int offset = (isLeftHand) ? 0 : (MATRIX_ROWS / 2); + +#ifdef USE_I2C + for (int i = 0; i < ROWS_PER_HAND; ++i) { + /* i2c_slave_buffer[i] = matrix[offset+i]; */ + i2c_slave_buffer[i] = matrix[offset+i]; + } +#else + for (int i = 0; i < ROWS_PER_HAND; ++i) { + serial_slave_buffer[i] = matrix[offset+i]; + } +#endif +} + +bool matrix_is_modified(void) +{ + if (debouncing) return false; + return true; +} + +inline +bool matrix_is_on(uint8_t row, uint8_t col) +{ + return (matrix[row] & ((matrix_row_t)1<> 4) + 1) &= ~_BV(col_pins[x] & 0xF); + _SFR_IO8((col_pins[x] >> 4) + 2) |= _BV(col_pins[x] & 0xF); + } +} + +static matrix_row_t read_cols(void) +{ + matrix_row_t result = 0; + for(int x = 0; x < MATRIX_COLS; x++) { + result |= (_SFR_IO8(col_pins[x] >> 4) & _BV(col_pins[x] & 0xF)) ? 0 : (1 << x); + } + return result; +} + +static void unselect_rows(void) +{ + for(int x = 0; x < ROWS_PER_HAND; x++) { + _SFR_IO8((row_pins[x] >> 4) + 1) &= ~_BV(row_pins[x] & 0xF); + _SFR_IO8((row_pins[x] >> 4) + 2) |= _BV(row_pins[x] & 0xF); + } +} + +static void select_row(uint8_t row) +{ + _SFR_IO8((row_pins[row] >> 4) + 1) |= _BV(row_pins[row] & 0xF); + _SFR_IO8((row_pins[row] >> 4) + 2) &= ~_BV(row_pins[row] & 0xF); +} diff --git a/keyboards/lets_split/pro_micro.h b/keyboards/lets_split/pro_micro.h new file mode 100644 index 000000000..09e219b7b --- /dev/null +++ b/keyboards/lets_split/pro_micro.h @@ -0,0 +1,362 @@ +/* + pins_arduino.h - Pin definition functions for Arduino + Part of Arduino - http://www.arduino.cc/ + + Copyright (c) 2007 David A. Mellis + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General + Public License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA + + $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $ +*/ + +#ifndef Pins_Arduino_h +#define Pins_Arduino_h + +#include + +// Workaround for wrong definitions in "iom32u4.h". +// This should be fixed in the AVR toolchain. +#undef UHCON +#undef UHINT +#undef UHIEN +#undef UHADDR +#undef UHFNUM +#undef UHFNUML +#undef UHFNUMH +#undef UHFLEN +#undef UPINRQX +#undef UPINTX +#undef UPNUM +#undef UPRST +#undef UPCONX +#undef UPCFG0X +#undef UPCFG1X +#undef UPSTAX +#undef UPCFG2X +#undef UPIENX +#undef UPDATX +#undef TCCR2A +#undef WGM20 +#undef WGM21 +#undef COM2B0 +#undef COM2B1 +#undef COM2A0 +#undef COM2A1 +#undef TCCR2B +#undef CS20 +#undef CS21 +#undef CS22 +#undef WGM22 +#undef FOC2B +#undef FOC2A +#undef TCNT2 +#undef TCNT2_0 +#undef TCNT2_1 +#undef TCNT2_2 +#undef TCNT2_3 +#undef TCNT2_4 +#undef TCNT2_5 +#undef TCNT2_6 +#undef TCNT2_7 +#undef OCR2A +#undef OCR2_0 +#undef OCR2_1 +#undef OCR2_2 +#undef OCR2_3 +#undef OCR2_4 +#undef OCR2_5 +#undef OCR2_6 +#undef OCR2_7 +#undef OCR2B +#undef OCR2_0 +#undef OCR2_1 +#undef OCR2_2 +#undef OCR2_3 +#undef OCR2_4 +#undef OCR2_5 +#undef OCR2_6 +#undef OCR2_7 + +#define NUM_DIGITAL_PINS 30 +#define NUM_ANALOG_INPUTS 12 + +#define TX_RX_LED_INIT DDRD |= (1<<5), DDRB |= (1<<0) +#define TXLED0 PORTD |= (1<<5) +#define TXLED1 PORTD &= ~(1<<5) +#define RXLED0 PORTB |= (1<<0) +#define RXLED1 PORTB &= ~(1<<0) + +static const uint8_t SDA = 2; +static const uint8_t SCL = 3; +#define LED_BUILTIN 13 + +// Map SPI port to 'new' pins D14..D17 +static const uint8_t SS = 17; +static const uint8_t MOSI = 16; +static const uint8_t MISO = 14; +static const uint8_t SCK = 15; + +// Mapping of analog pins as digital I/O +// A6-A11 share with digital pins +static const uint8_t A0 = 18; +static const uint8_t A1 = 19; +static const uint8_t A2 = 20; +static const uint8_t A3 = 21; +static const uint8_t A4 = 22; +static const uint8_t A5 = 23; +static const uint8_t A6 = 24; // D4 +static const uint8_t A7 = 25; // D6 +static const uint8_t A8 = 26; // D8 +static const uint8_t A9 = 27; // D9 +static const uint8_t A10 = 28; // D10 +static const uint8_t A11 = 29; // D12 + +#define digitalPinToPCICR(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCICR) : ((uint8_t *)0)) +#define digitalPinToPCICRbit(p) 0 +#define digitalPinToPCMSK(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCMSK0) : ((uint8_t *)0)) +#define digitalPinToPCMSKbit(p) ( ((p) >= 8 && (p) <= 11) ? (p) - 4 : ((p) == 14 ? 3 : ((p) == 15 ? 1 : ((p) == 16 ? 2 : ((p) == 17 ? 0 : (p - A8 + 4)))))) + +// __AVR_ATmega32U4__ has an unusual mapping of pins to channels +extern const uint8_t PROGMEM analog_pin_to_channel_PGM[]; +#define analogPinToChannel(P) ( pgm_read_byte( analog_pin_to_channel_PGM + (P) ) ) + +#define digitalPinToInterrupt(p) ((p) == 0 ? 2 : ((p) == 1 ? 3 : ((p) == 2 ? 1 : ((p) == 3 ? 0 : ((p) == 7 ? 4 : NOT_AN_INTERRUPT))))) + +#ifdef ARDUINO_MAIN + +// On the Arduino board, digital pins are also used +// for the analog output (software PWM). Analog input +// pins are a separate set. + +// ATMEL ATMEGA32U4 / ARDUINO LEONARDO +// +// D0 PD2 RXD1/INT2 +// D1 PD3 TXD1/INT3 +// D2 PD1 SDA SDA/INT1 +// D3# PD0 PWM8/SCL OC0B/SCL/INT0 +// D4 A6 PD4 ADC8 +// D5# PC6 ??? OC3A/#OC4A +// D6# A7 PD7 FastPWM #OC4D/ADC10 +// D7 PE6 INT6/AIN0 +// +// D8 A8 PB4 ADC11/PCINT4 +// D9# A9 PB5 PWM16 OC1A/#OC4B/ADC12/PCINT5 +// D10# A10 PB6 PWM16 OC1B/0c4B/ADC13/PCINT6 +// D11# PB7 PWM8/16 0C0A/OC1C/#RTS/PCINT7 +// D12 A11 PD6 T1/#OC4D/ADC9 +// D13# PC7 PWM10 CLK0/OC4A +// +// A0 D18 PF7 ADC7 +// A1 D19 PF6 ADC6 +// A2 D20 PF5 ADC5 +// A3 D21 PF4 ADC4 +// A4 D22 PF1 ADC1 +// A5 D23 PF0 ADC0 +// +// New pins D14..D17 to map SPI port to digital pins +// +// MISO D14 PB3 MISO,PCINT3 +// SCK D15 PB1 SCK,PCINT1 +// MOSI D16 PB2 MOSI,PCINT2 +// SS D17 PB0 RXLED,SS/PCINT0 +// +// Connected LEDs on board for TX and RX +// TXLED D24 PD5 XCK1 +// RXLED D17 PB0 +// HWB PE2 HWB + +// these arrays map port names (e.g. port B) to the +// appropriate addresses for various functions (e.g. reading +// and writing) +const uint16_t PROGMEM port_to_mode_PGM[] = { + NOT_A_PORT, + NOT_A_PORT, + (uint16_t) &DDRB, + (uint16_t) &DDRC, + (uint16_t) &DDRD, + (uint16_t) &DDRE, + (uint16_t) &DDRF, +}; + +const uint16_t PROGMEM port_to_output_PGM[] = { + NOT_A_PORT, + NOT_A_PORT, + (uint16_t) &PORTB, + (uint16_t) &PORTC, + (uint16_t) &PORTD, + (uint16_t) &PORTE, + (uint16_t) &PORTF, +}; + +const uint16_t PROGMEM port_to_input_PGM[] = { + NOT_A_PORT, + NOT_A_PORT, + (uint16_t) &PINB, + (uint16_t) &PINC, + (uint16_t) &PIND, + (uint16_t) &PINE, + (uint16_t) &PINF, +}; + +const uint8_t PROGMEM digital_pin_to_port_PGM[] = { + PD, // D0 - PD2 + PD, // D1 - PD3 + PD, // D2 - PD1 + PD, // D3 - PD0 + PD, // D4 - PD4 + PC, // D5 - PC6 + PD, // D6 - PD7 + PE, // D7 - PE6 + + PB, // D8 - PB4 + PB, // D9 - PB5 + PB, // D10 - PB6 + PB, // D11 - PB7 + PD, // D12 - PD6 + PC, // D13 - PC7 + + PB, // D14 - MISO - PB3 + PB, // D15 - SCK - PB1 + PB, // D16 - MOSI - PB2 + PB, // D17 - SS - PB0 + + PF, // D18 - A0 - PF7 + PF, // D19 - A1 - PF6 + PF, // D20 - A2 - PF5 + PF, // D21 - A3 - PF4 + PF, // D22 - A4 - PF1 + PF, // D23 - A5 - PF0 + + PD, // D24 - PD5 + PD, // D25 / D6 - A7 - PD7 + PB, // D26 / D8 - A8 - PB4 + PB, // D27 / D9 - A9 - PB5 + PB, // D28 / D10 - A10 - PB6 + PD, // D29 / D12 - A11 - PD6 +}; + +const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = { + _BV(2), // D0 - PD2 + _BV(3), // D1 - PD3 + _BV(1), // D2 - PD1 + _BV(0), // D3 - PD0 + _BV(4), // D4 - PD4 + _BV(6), // D5 - PC6 + _BV(7), // D6 - PD7 + _BV(6), // D7 - PE6 + + _BV(4), // D8 - PB4 + _BV(5), // D9 - PB5 + _BV(6), // D10 - PB6 + _BV(7), // D11 - PB7 + _BV(6), // D12 - PD6 + _BV(7), // D13 - PC7 + + _BV(3), // D14 - MISO - PB3 + _BV(1), // D15 - SCK - PB1 + _BV(2), // D16 - MOSI - PB2 + _BV(0), // D17 - SS - PB0 + + _BV(7), // D18 - A0 - PF7 + _BV(6), // D19 - A1 - PF6 + _BV(5), // D20 - A2 - PF5 + _BV(4), // D21 - A3 - PF4 + _BV(1), // D22 - A4 - PF1 + _BV(0), // D23 - A5 - PF0 + + _BV(5), // D24 - PD5 + _BV(7), // D25 / D6 - A7 - PD7 + _BV(4), // D26 / D8 - A8 - PB4 + _BV(5), // D27 / D9 - A9 - PB5 + _BV(6), // D28 / D10 - A10 - PB6 + _BV(6), // D29 / D12 - A11 - PD6 +}; + +const uint8_t PROGMEM digital_pin_to_timer_PGM[] = { + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + TIMER0B, /* 3 */ + NOT_ON_TIMER, + TIMER3A, /* 5 */ + TIMER4D, /* 6 */ + NOT_ON_TIMER, + + NOT_ON_TIMER, + TIMER1A, /* 9 */ + TIMER1B, /* 10 */ + TIMER0A, /* 11 */ + + NOT_ON_TIMER, + TIMER4A, /* 13 */ + + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, +}; + +const uint8_t PROGMEM analog_pin_to_channel_PGM[] = { + 7, // A0 PF7 ADC7 + 6, // A1 PF6 ADC6 + 5, // A2 PF5 ADC5 + 4, // A3 PF4 ADC4 + 1, // A4 PF1 ADC1 + 0, // A5 PF0 ADC0 + 8, // A6 D4 PD4 ADC8 + 10, // A7 D6 PD7 ADC10 + 11, // A8 D8 PB4 ADC11 + 12, // A9 D9 PB5 ADC12 + 13, // A10 D10 PB6 ADC13 + 9 // A11 D12 PD6 ADC9 +}; + +#endif /* ARDUINO_MAIN */ + +// These serial port names are intended to allow libraries and architecture-neutral +// sketches to automatically default to the correct port name for a particular type +// of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN, +// the first hardware serial port whose RX/TX pins are not dedicated to another use. +// +// SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor +// +// SERIAL_PORT_USBVIRTUAL Port which is USB virtual serial +// +// SERIAL_PORT_LINUXBRIDGE Port which connects to a Linux system via Bridge library +// +// SERIAL_PORT_HARDWARE Hardware serial port, physical RX & TX pins. +// +// SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX +// pins are NOT connected to anything by default. +#define SERIAL_PORT_MONITOR Serial +#define SERIAL_PORT_USBVIRTUAL Serial +#define SERIAL_PORT_HARDWARE Serial1 +#define SERIAL_PORT_HARDWARE_OPEN Serial1 + +#endif /* Pins_Arduino_h */ diff --git a/keyboards/lets_split/readme.md b/keyboards/lets_split/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/keyboards/lets_split/split_util.c b/keyboards/lets_split/split_util.c new file mode 100644 index 000000000..c394596e0 --- /dev/null +++ b/keyboards/lets_split/split_util.c @@ -0,0 +1,67 @@ +#include +#include +#include +#include +#include +#include +#include "split_util.h" +#include "matrix.h" +#include "i2c.h" +#include "keyboard.h" +#include "config.h" + +volatile bool isLeftHand = true; + +static void setup_handedness(void) { + isLeftHand = eeprom_read_byte(EECONFIG_HANDEDNESS); +} + +static void keyboard_master_setup(void) { +#ifdef USE_I2C + i2c_master_init(); +#else + serial_master_init(); +#endif +} + +static void keyboard_slave_setup(void) { +#ifdef USE_I2C + i2c_slave_init(SLAVE_I2C_ADDRESS); +#else + serial_slave_init(); +#endif +} + +bool has_usb(void) { + USBCON |= (1 << OTGPADE); //enables VBUS pad + _delay_us(5); + return (USBSTA & (1< + +#define EECONFIG_BOOTMAGIC_END (uint8_t *)10 +#define EECONFIG_HANDEDNESS EECONFIG_BOOTMAGIC_END + +#define SLAVE_I2C_ADDRESS 0x32 + +extern volatile bool isLeftHand; + +// slave version of matix scan, defined in matrix.c +void matrix_slave_scan(void); + +void split_keyboard_setup(void); +bool has_usb(void); +void keyboard_slave_loop(void); + +#endif diff --git a/keyboards/lets_split/uno-slave/Makefile b/keyboards/lets_split/uno-slave/Makefile new file mode 100644 index 000000000..84e67de11 --- /dev/null +++ b/keyboards/lets_split/uno-slave/Makefile @@ -0,0 +1,226 @@ +# Hey Emacs, this is a -*- makefile -*- + +# AVR-GCC Makefile template, derived from the WinAVR template (which +# is public domain), believed to be neutral to any flavor of "make" +# (GNU make, BSD make, SysV make) + + +MCU = atmega328p +FORMAT = ihex +TARGET = keyboard-i2c-slave +SRC = \ + $(TARGET).c \ + uno-matrix.c \ + ../serial.c \ + ../i2c-slave.c + +ASRC = +OPT = s + +# Programming support using avrdude. Settings and variables. + +AVRDUDE_PROGRAMMER = arduino +AVRDUDE_PORT = /dev/ttyACM0 + +# Name of this Makefile (used for "make depend"). +MAKEFILE = Makefile + +# Debugging format. +# Native formats for AVR-GCC's -g are stabs [default], or dwarf-2. +# AVR (extended) COFF requires stabs, plus an avr-objcopy run. +DEBUG = stabs + +# Compiler flag to set the C Standard level. +# c89 - "ANSI" C +# gnu89 - c89 plus GCC extensions +# c99 - ISO C99 standard (not yet fully implemented) +# gnu99 - c99 plus GCC extensions +CSTANDARD = -std=gnu99 + +# Place -D or -U options here +CDEFS = + +# Place -I options here +CINCS = + + +CDEBUG = -g$(DEBUG) +CWARN = -Wall -Wstrict-prototypes +CTUNING = -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums +#CEXTRA = -Wa,-adhlns=$(<:.c=.lst) +CFLAGS = $(CDEBUG) $(CDEFS) $(CINCS) -O$(OPT) $(CWARN) $(CSTANDARD) $(CEXTRA) \ + -fno-aggressive-loop-optimizations + +#ASFLAGS = -Wa,-adhlns=$(<:.S=.lst),-gstabs + + +#Additional libraries. + +# Minimalistic printf version +PRINTF_LIB_MIN = -Wl,-u,vfprintf -lprintf_min + +# Floating point printf version (requires MATH_LIB = -lm below) +PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt + +PRINTF_LIB = + +# Minimalistic scanf version +SCANF_LIB_MIN = -Wl,-u,vfscanf -lscanf_min + +# Floating point + %[ scanf version (requires MATH_LIB = -lm below) +SCANF_LIB_FLOAT = -Wl,-u,vfscanf -lscanf_flt + +SCANF_LIB = + +MATH_LIB = -lm + +# External memory options + +# 64 KB of external RAM, starting after internal RAM (ATmega128!), +# used for variables (.data/.bss) and heap (malloc()). +#EXTMEMOPTS = -Wl,--section-start,.data=0x801100,--defsym=__heap_end=0x80ffff + +# 64 KB of external RAM, starting after internal RAM (ATmega128!), +# only used for heap (malloc()). +#EXTMEMOPTS = -Wl,--defsym=__heap_start=0x801100,--defsym=__heap_end=0x80ffff + +EXTMEMOPTS = + +#LDMAP = $(LDFLAGS) -Wl,-Map=$(TARGET).map,--cref +LDFLAGS = $(EXTMEMOPTS) $(LDMAP) $(PRINTF_LIB) $(SCANF_LIB) $(MATH_LIB) + + +AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex +#AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep + + +# Uncomment the following if you want avrdude's erase cycle counter. +# Note that this counter needs to be initialized first using -Yn, +# see avrdude manual. +#AVRDUDE_ERASE_COUNTER = -y + +# Uncomment the following if you do /not/ wish a verification to be +# performed after programming the device. +#AVRDUDE_NO_VERIFY = -V + +# Increase verbosity level. Please use this when submitting bug +# reports about avrdude. See +# to submit bug reports. +#AVRDUDE_VERBOSE = -v -v + +AVRDUDE_BASIC = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) +AVRDUDE_FLAGS = $(AVRDUDE_BASIC) $(AVRDUDE_NO_VERIFY) $(AVRDUDE_VERBOSE) $(AVRDUDE_ERASE_COUNTER) + + +CC = avr-gcc +OBJCOPY = avr-objcopy +OBJDUMP = avr-objdump +SIZE = avr-size +NM = avr-nm +AVRDUDE = avrdude +REMOVE = rm -f +MV = mv -f + +# Define all object files. +OBJ = $(SRC:.c=.o) $(ASRC:.S=.o) + +# Define all listing files. +LST = $(ASRC:.S=.lst) $(SRC:.c=.lst) + +# Combine all necessary flags and optional flags. +# Add target processor to flags. +ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS) +ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS) + + +# Default target. +all: build + +build: elf hex eep + +elf: $(TARGET).elf +hex: $(TARGET).hex +eep: $(TARGET).eep +lss: $(TARGET).lss +sym: $(TARGET).sym + + +# Program the device. +program: $(TARGET).hex $(TARGET).eep + $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM) + + +# Convert ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB. +COFFCONVERT=$(OBJCOPY) --debugging \ +--change-section-address .data-0x800000 \ +--change-section-address .bss-0x800000 \ +--change-section-address .noinit-0x800000 \ +--change-section-address .eeprom-0x810000 + + +coff: $(TARGET).elf + $(COFFCONVERT) -O coff-avr $(TARGET).elf $(TARGET).cof + + +extcoff: $(TARGET).elf + $(COFFCONVERT) -O coff-ext-avr $(TARGET).elf $(TARGET).cof + + +.SUFFIXES: .elf .hex .eep .lss .sym + +.elf.hex: + $(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@ + +.elf.eep: + -$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \ + --change-section-lma .eeprom=0 -O $(FORMAT) $< $@ + +# Create extended listing file from ELF output file. +.elf.lss: + $(OBJDUMP) -h -S $< > $@ + +# Create a symbol table from ELF output file. +.elf.sym: + $(NM) -n $< > $@ + + + +# Link: create ELF output file from object files. +$(TARGET).elf: $(OBJ) + $(CC) $(ALL_CFLAGS) $(OBJ) --output $@ $(LDFLAGS) + + +# Compile: create object files from C source files. +.c.o: + $(CC) -c $(ALL_CFLAGS) $< -o $@ + + +# Compile: create assembler files from C source files. +.c.s: + $(CC) -S $(ALL_CFLAGS) $< -o $@ + + +# Assemble: create object files from assembler source files. +.S.o: + $(CC) -c $(ALL_ASFLAGS) $< -o $@ + + + +# Target: clean project. +clean: + $(REMOVE) $(TARGET).hex $(TARGET).eep $(TARGET).cof $(TARGET).elf \ + $(TARGET).map $(TARGET).sym $(TARGET).lss \ + $(OBJ) $(LST) $(SRC:.c=.s) $(SRC:.c=.d) + +depend: + if grep '^# DO NOT DELETE' $(MAKEFILE) >/dev/null; \ + then \ + sed -e '/^# DO NOT DELETE/,$$d' $(MAKEFILE) > \ + $(MAKEFILE).$$$$ && \ + $(MV) $(MAKEFILE).$$$$ $(MAKEFILE); \ + fi + echo '# DO NOT DELETE THIS LINE -- make depend depends on it.' \ + >> $(MAKEFILE); \ + $(CC) -M -mmcu=$(MCU) $(CDEFS) $(CINCS) $(SRC) $(ASRC) >> $(MAKEFILE) + +.PHONY: all build elf hex eep lss sym program coff extcoff clean depend diff --git a/keyboards/lets_split/uno-slave/keyboard-i2c-slave.c b/keyboards/lets_split/uno-slave/keyboard-i2c-slave.c new file mode 100644 index 000000000..2043e7b94 --- /dev/null +++ b/keyboards/lets_split/uno-slave/keyboard-i2c-slave.c @@ -0,0 +1,42 @@ +#include "../i2c-slave.h" +#include "../serial.h" +#include "uno-matrix.h" + +#include +#include +#include + +void setup(void) { + // give some time for noise to clear + _delay_us(1000); + + // turn off arduino uno's led on pin 13 + DDRB |= (1 << 5); + PORTB &= ~(1 << 5); + + matrix_init(); + /* i2c_slave_init(0x32); */ + serial_slave_init(); + + /* serial_slave_buffer[0] = 0xa1; */ + /* serial_slave_buffer[1] = 0x52; */ + /* serial_slave_buffer[2] = 0xa2; */ + /* serial_slave_buffer[3] = 0x67; */ + + // need interrupts for i2c slave code to work + sei(); +} + +void loop(void) { + matrix_scan(); + for(int i=0; i +#include +#include + +#include "uno-matrix.h" + +#define debug(X) NULL +#define debug_hex(X) NULL + +#ifndef DEBOUNCE +# define DEBOUNCE 5 +#endif + +static uint8_t debouncing = DEBOUNCE; + +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; +static matrix_row_t matrix_debouncing[MATRIX_ROWS]; + +static matrix_row_t read_cols(void); +static void init_cols(void); +static void unselect_rows(void); +static void select_row(uint8_t row); + +inline +uint8_t matrix_rows(void) +{ + return MATRIX_ROWS; +} + +inline +uint8_t matrix_cols(void) +{ + return MATRIX_COLS; +} + +void matrix_init(void) +{ + //debug_enable = true; + //debug_matrix = true; + //debug_mouse = true; + // initialize row and col + unselect_rows(); + init_cols(); + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + matrix_debouncing[i] = 0; + } +} + +uint8_t matrix_scan(void) +{ + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + select_row(i); + _delay_us(30); // without this wait read unstable value. + matrix_row_t cols = read_cols(); + //Serial.println(cols, BIN); + if (matrix_debouncing[i] != cols) { + matrix_debouncing[i] = cols; + if (debouncing) { + debug("bounce!: "); debug_hex(debouncing); debug("\n"); + } + debouncing = DEBOUNCE; + } + unselect_rows(); + } + + if (debouncing) { + if (--debouncing) { + _delay_ms(1); + } else { + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = matrix_debouncing[i]; + } + } + } + + return 1; +} + +bool matrix_is_modified(void) +{ + if (debouncing) return false; + return true; +} + +inline +bool matrix_is_on(uint8_t row, uint8_t col) +{ + return (matrix[row] & ((matrix_row_t)1< + +typedef uint8_t matrix_row_t; + +uint8_t matrix_rows(void); +uint8_t matrix_cols(void); +void matrix_init(void); +uint8_t matrix_scan(void); +bool matrix_is_modified(void); +bool matrix_is_on(uint8_t row, uint8_t col); +matrix_row_t matrix_get_row(uint8_t row); + +#endif diff --git a/keyboards/lets_split/usbconfig.h b/keyboards/lets_split/usbconfig.h new file mode 100644 index 000000000..d0ca4c717 --- /dev/null +++ b/keyboards/lets_split/usbconfig.h @@ -0,0 +1,377 @@ +/* Name: usbconfig.h + * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers + * Author: Christian Starkjohann + * Creation Date: 2005-04-01 + * Tabsize: 4 + * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH + * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt) + * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $ + */ + +#ifndef __usbconfig_h_included__ +#define __usbconfig_h_included__ + + +/* +General Description: +This file is an example configuration (with inline documentation) for the USB +driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is +also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may +wire the lines to any other port, as long as D+ is also wired to INT0 (or any +other hardware interrupt, as long as it is the highest level interrupt, see +section at the end of this file). +*/ + +/* ---------------------------- Hardware Config ---------------------------- */ + +#define USB_CFG_IOPORTNAME D +/* This is the port where the USB bus is connected. When you configure it to + * "B", the registers PORTB, PINB and DDRB will be used. + */ +#define USB_CFG_DMINUS_BIT 3 +/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected. + * This may be any bit in the port. + */ +#define USB_CFG_DPLUS_BIT 2 +/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected. + * This may be any bit in the port. Please note that D+ must also be connected + * to interrupt pin INT0! [You can also use other interrupts, see section + * "Optional MCU Description" below, or you can connect D- to the interrupt, as + * it is required if you use the USB_COUNT_SOF feature. If you use D- for the + * interrupt, the USB interrupt will also be triggered at Start-Of-Frame + * markers every millisecond.] + */ +#define USB_CFG_CLOCK_KHZ (F_CPU/1000) +/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000, + * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code + * require no crystal, they tolerate +/- 1% deviation from the nominal + * frequency. All other rates require a precision of 2000 ppm and thus a + * crystal! + * Since F_CPU should be defined to your actual clock rate anyway, you should + * not need to modify this setting. + */ +#define USB_CFG_CHECK_CRC 0 +/* Define this to 1 if you want that the driver checks integrity of incoming + * data packets (CRC checks). CRC checks cost quite a bit of code size and are + * currently only available for 18 MHz crystal clock. You must choose + * USB_CFG_CLOCK_KHZ = 18000 if you enable this option. + */ + +/* ----------------------- Optional Hardware Config ------------------------ */ + +/* #define USB_CFG_PULLUP_IOPORTNAME D */ +/* If you connect the 1.5k pullup resistor from D- to a port pin instead of + * V+, you can connect and disconnect the device from firmware by calling + * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h). + * This constant defines the port on which the pullup resistor is connected. + */ +/* #define USB_CFG_PULLUP_BIT 4 */ +/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined + * above) where the 1.5k pullup resistor is connected. See description + * above for details. + */ + +/* --------------------------- Functional Range ---------------------------- */ + +#define USB_CFG_HAVE_INTRIN_ENDPOINT 1 +/* Define this to 1 if you want to compile a version with two endpoints: The + * default control endpoint 0 and an interrupt-in endpoint (any other endpoint + * number). + */ +#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1 +/* Define this to 1 if you want to compile a version with three endpoints: The + * default control endpoint 0, an interrupt-in endpoint 3 (or the number + * configured below) and a catch-all default interrupt-in endpoint as above. + * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature. + */ +#define USB_CFG_EP3_NUMBER 3 +/* If the so-called endpoint 3 is used, it can now be configured to any other + * endpoint number (except 0) with this macro. Default if undefined is 3. + */ +/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */ +/* The above macro defines the startup condition for data toggling on the + * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1. + * Since the token is toggled BEFORE sending any data, the first packet is + * sent with the oposite value of this configuration! + */ +#define USB_CFG_IMPLEMENT_HALT 0 +/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature + * for endpoint 1 (interrupt endpoint). Although you may not need this feature, + * it is required by the standard. We have made it a config option because it + * bloats the code considerably. + */ +#define USB_CFG_SUPPRESS_INTR_CODE 0 +/* Define this to 1 if you want to declare interrupt-in endpoints, but don't + * want to send any data over them. If this macro is defined to 1, functions + * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if + * you need the interrupt-in endpoints in order to comply to an interface + * (e.g. HID), but never want to send any data. This option saves a couple + * of bytes in flash memory and the transmit buffers in RAM. + */ +#define USB_CFG_INTR_POLL_INTERVAL 10 +/* If you compile a version with endpoint 1 (interrupt-in), this is the poll + * interval. The value is in milliseconds and must not be less than 10 ms for + * low speed devices. + */ +#define USB_CFG_IS_SELF_POWERED 0 +/* Define this to 1 if the device has its own power supply. Set it to 0 if the + * device is powered from the USB bus. + */ +#define USB_CFG_MAX_BUS_POWER 100 +/* Set this variable to the maximum USB bus power consumption of your device. + * The value is in milliamperes. [It will be divided by two since USB + * communicates power requirements in units of 2 mA.] + */ +#define USB_CFG_IMPLEMENT_FN_WRITE 1 +/* Set this to 1 if you want usbFunctionWrite() to be called for control-out + * transfers. Set it to 0 if you don't need it and want to save a couple of + * bytes. + */ +#define USB_CFG_IMPLEMENT_FN_READ 0 +/* Set this to 1 if you need to send control replies which are generated + * "on the fly" when usbFunctionRead() is called. If you only want to send + * data from a static buffer, set it to 0 and return the data from + * usbFunctionSetup(). This saves a couple of bytes. + */ +#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0 +/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints. + * You must implement the function usbFunctionWriteOut() which receives all + * interrupt/bulk data sent to any endpoint other than 0. The endpoint number + * can be found in 'usbRxToken'. + */ +#define USB_CFG_HAVE_FLOWCONTROL 0 +/* Define this to 1 if you want flowcontrol over USB data. See the definition + * of the macros usbDisableAllRequests() and usbEnableAllRequests() in + * usbdrv.h. + */ +#define USB_CFG_DRIVER_FLASH_PAGE 0 +/* If the device has more than 64 kBytes of flash, define this to the 64 k page + * where the driver's constants (descriptors) are located. Or in other words: + * Define this to 1 for boot loaders on the ATMega128. + */ +#define USB_CFG_LONG_TRANSFERS 0 +/* Define this to 1 if you want to send/receive blocks of more than 254 bytes + * in a single control-in or control-out transfer. Note that the capability + * for long transfers increases the driver size. + */ +/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */ +/* This macro is a hook if you want to do unconventional things. If it is + * defined, it's inserted at the beginning of received message processing. + * If you eat the received message and don't want default processing to + * proceed, do a return after doing your things. One possible application + * (besides debugging) is to flash a status LED on each packet. + */ +/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */ +/* This macro is a hook if you need to know when an USB RESET occurs. It has + * one parameter which distinguishes between the start of RESET state and its + * end. + */ +/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */ +/* This macro (if defined) is executed when a USB SET_ADDRESS request was + * received. + */ +#define USB_COUNT_SOF 0 +/* define this macro to 1 if you need the global variable "usbSofCount" which + * counts SOF packets. This feature requires that the hardware interrupt is + * connected to D- instead of D+. + */ +/* #ifdef __ASSEMBLER__ + * macro myAssemblerMacro + * in YL, TCNT0 + * sts timer0Snapshot, YL + * endm + * #endif + * #define USB_SOF_HOOK myAssemblerMacro + * This macro (if defined) is executed in the assembler module when a + * Start Of Frame condition is detected. It is recommended to define it to + * the name of an assembler macro which is defined here as well so that more + * than one assembler instruction can be used. The macro may use the register + * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages + * immediately after an SOF pulse may be lost and must be retried by the host. + * What can you do with this hook? Since the SOF signal occurs exactly every + * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in + * designs running on the internal RC oscillator. + * Please note that Start Of Frame detection works only if D- is wired to the + * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES! + */ +#define USB_CFG_CHECK_DATA_TOGGLING 0 +/* define this macro to 1 if you want to filter out duplicate data packets + * sent by the host. Duplicates occur only as a consequence of communication + * errors, when the host does not receive an ACK. Please note that you need to + * implement the filtering yourself in usbFunctionWriteOut() and + * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable + * for each control- and out-endpoint to check for duplicate packets. + */ +#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0 +/* define this macro to 1 if you want the function usbMeasureFrameLength() + * compiled in. This function can be used to calibrate the AVR's RC oscillator. + */ +#define USB_USE_FAST_CRC 0 +/* The assembler module has two implementations for the CRC algorithm. One is + * faster, the other is smaller. This CRC routine is only used for transmitted + * messages where timing is not critical. The faster routine needs 31 cycles + * per byte while the smaller one needs 61 to 69 cycles. The faster routine + * may be worth the 32 bytes bigger code size if you transmit lots of data and + * run the AVR close to its limit. + */ + +/* -------------------------- Device Description --------------------------- */ + +#define USB_CFG_VENDOR_ID (VENDOR_ID & 0xFF), ((VENDOR_ID >> 8) & 0xFF) +/* USB vendor ID for the device, low byte first. If you have registered your + * own Vendor ID, define it here. Otherwise you may use one of obdev's free + * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules! + * *** IMPORTANT NOTE *** + * This template uses obdev's shared VID/PID pair for Vendor Class devices + * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand + * the implications! + */ +#define USB_CFG_DEVICE_ID (PRODUCT_ID & 0xFF), ((PRODUCT_ID >> 8) & 0xFF) +/* This is the ID of the product, low byte first. It is interpreted in the + * scope of the vendor ID. If you have registered your own VID with usb.org + * or if you have licensed a PID from somebody else, define it here. Otherwise + * you may use one of obdev's free shared VID/PID pairs. See the file + * USB-IDs-for-free.txt for details! + * *** IMPORTANT NOTE *** + * This template uses obdev's shared VID/PID pair for Vendor Class devices + * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand + * the implications! + */ +#define USB_CFG_DEVICE_VERSION 0x00, 0x01 +/* Version number of the device: Minor number first, then major number. + */ +#define USB_CFG_VENDOR_NAME 't', '.', 'm', '.', 'k', '.' +#define USB_CFG_VENDOR_NAME_LEN 6 +/* These two values define the vendor name returned by the USB device. The name + * must be given as a list of characters under single quotes. The characters + * are interpreted as Unicode (UTF-16) entities. + * If you don't want a vendor name string, undefine these macros. + * ALWAYS define a vendor name containing your Internet domain name if you use + * obdev's free shared VID/PID pair. See the file USB-IDs-for-free.txt for + * details. + */ +#define USB_CFG_DEVICE_NAME 'P', 'S', '/', '2', ' ', 'k', 'e', 'y', 'b', 'o', 'a', 'r', 'd', ' ', 'c', 'o', 'n', 'v', 'e', 'r', 't', 'e', 'r' +#define USB_CFG_DEVICE_NAME_LEN 23 +/* Same as above for the device name. If you don't want a device name, undefine + * the macros. See the file USB-IDs-for-free.txt before you assign a name if + * you use a shared VID/PID. + */ +/*#define USB_CFG_SERIAL_NUMBER 'N', 'o', 'n', 'e' */ +/*#define USB_CFG_SERIAL_NUMBER_LEN 0 */ +/* Same as above for the serial number. If you don't want a serial number, + * undefine the macros. + * It may be useful to provide the serial number through other means than at + * compile time. See the section about descriptor properties below for how + * to fine tune control over USB descriptors such as the string descriptor + * for the serial number. + */ +#define USB_CFG_DEVICE_CLASS 0 +#define USB_CFG_DEVICE_SUBCLASS 0 +/* See USB specification if you want to conform to an existing device class. + * Class 0xff is "vendor specific". + */ +#define USB_CFG_INTERFACE_CLASS 3 /* HID */ +#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */ +#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */ +/* See USB specification if you want to conform to an existing device class or + * protocol. The following classes must be set at interface level: + * HID class is 3, no subclass and protocol required (but may be useful!) + * CDC class is 2, use subclass 2 and protocol 1 for ACM + */ +#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0 +/* Define this to the length of the HID report descriptor, if you implement + * an HID device. Otherwise don't define it or define it to 0. + * If you use this define, you must add a PROGMEM character array named + * "usbHidReportDescriptor" to your code which contains the report descriptor. + * Don't forget to keep the array and this define in sync! + */ + +/* #define USB_PUBLIC static */ +/* Use the define above if you #include usbdrv.c instead of linking against it. + * This technique saves a couple of bytes in flash memory. + */ + +/* ------------------- Fine Control over USB Descriptors ------------------- */ +/* If you don't want to use the driver's default USB descriptors, you can + * provide our own. These can be provided as (1) fixed length static data in + * flash memory, (2) fixed length static data in RAM or (3) dynamically at + * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more + * information about this function. + * Descriptor handling is configured through the descriptor's properties. If + * no properties are defined or if they are 0, the default descriptor is used. + * Possible properties are: + * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched + * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is + * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if + * you want RAM pointers. + * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found + * in static memory is in RAM, not in flash memory. + * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash), + * the driver must know the descriptor's length. The descriptor itself is + * found at the address of a well known identifier (see below). + * List of static descriptor names (must be declared PROGMEM if in flash): + * char usbDescriptorDevice[]; + * char usbDescriptorConfiguration[]; + * char usbDescriptorHidReport[]; + * char usbDescriptorString0[]; + * int usbDescriptorStringVendor[]; + * int usbDescriptorStringDevice[]; + * int usbDescriptorStringSerialNumber[]; + * Other descriptors can't be provided statically, they must be provided + * dynamically at runtime. + * + * Descriptor properties are or-ed or added together, e.g.: + * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18)) + * + * The following descriptors are defined: + * USB_CFG_DESCR_PROPS_DEVICE + * USB_CFG_DESCR_PROPS_CONFIGURATION + * USB_CFG_DESCR_PROPS_STRINGS + * USB_CFG_DESCR_PROPS_STRING_0 + * USB_CFG_DESCR_PROPS_STRING_VENDOR + * USB_CFG_DESCR_PROPS_STRING_PRODUCT + * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER + * USB_CFG_DESCR_PROPS_HID + * USB_CFG_DESCR_PROPS_HID_REPORT + * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver) + * + * Note about string descriptors: String descriptors are not just strings, they + * are Unicode strings prefixed with a 2 byte header. Example: + * int serialNumberDescriptor[] = { + * USB_STRING_DESCRIPTOR_HEADER(6), + * 'S', 'e', 'r', 'i', 'a', 'l' + * }; + */ + +#define USB_CFG_DESCR_PROPS_DEVICE 0 +#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC +//#define USB_CFG_DESCR_PROPS_CONFIGURATION 0 +#define USB_CFG_DESCR_PROPS_STRINGS 0 +#define USB_CFG_DESCR_PROPS_STRING_0 0 +#define USB_CFG_DESCR_PROPS_STRING_VENDOR 0 +#define USB_CFG_DESCR_PROPS_STRING_PRODUCT 0 +#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER 0 +//#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC +#define USB_CFG_DESCR_PROPS_HID 0 +#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC +//#define USB_CFG_DESCR_PROPS_HID_REPORT 0 +#define USB_CFG_DESCR_PROPS_UNKNOWN 0 + +/* ----------------------- Optional MCU Description ------------------------ */ + +/* The following configurations have working defaults in usbdrv.h. You + * usually don't need to set them explicitly. Only if you want to run + * the driver on a device which is not yet supported or with a compiler + * which is not fully supported (such as IAR C) or if you use a differnt + * interrupt than INT0, you may have to define some of these. + */ +/* #define USB_INTR_CFG MCUCR */ +/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */ +/* #define USB_INTR_CFG_CLR 0 */ +/* #define USB_INTR_ENABLE GIMSK */ +/* #define USB_INTR_ENABLE_BIT INT0 */ +/* #define USB_INTR_PENDING GIFR */ +/* #define USB_INTR_PENDING_BIT INTF0 */ +/* #define USB_INTR_VECTOR INT0_vect */ + +#endif /* __usbconfig_h_included__ */ diff --git a/tmk_core/common/matrix.h b/tmk_core/common/matrix.h index 71153a5f5..cee3593ee 100644 --- a/tmk_core/common/matrix.h +++ b/tmk_core/common/matrix.h @@ -72,6 +72,11 @@ void matrix_scan_kb(void); void matrix_init_user(void); void matrix_scan_user(void); +#ifdef I2C_SPLIT + void slave_matrix_init(void); + uint8_t slave_matrix_scan(void); +#endif + #ifdef __cplusplus } #endif -- cgit v1.2.3 From ce01f88c43adef9344727998f53bb1cf74913f65 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 5 Jul 2016 23:40:54 -0400 Subject: images, docks, clean-up [skip ci] --- .../imgs/split-keyboard-i2c-schematic.png | Bin 0 -> 26565 bytes .../imgs/split-keyboard-serial-schematic.png | Bin 0 -> 19487 bytes keyboards/lets_split/matrix.c | 1 + keyboards/lets_split/readme.md | 102 ++++++++++ keyboards/lets_split/serial.c | 225 ++++++++++++++++++++ keyboards/lets_split/serial.h | 26 +++ keyboards/lets_split/split_util.c | 9 + keyboards/lets_split/split_util.h | 6 +- keyboards/lets_split/uno-slave/Makefile | 226 --------------------- .../lets_split/uno-slave/keyboard-i2c-slave.c | 42 ---- keyboards/lets_split/uno-slave/readme.md | 1 - keyboards/lets_split/uno-slave/uno-matrix.c | 160 --------------- keyboards/lets_split/uno-slave/uno-matrix.h | 19 -- keyboards/lets_split/uno_slave/Makefile | 226 +++++++++++++++++++++ .../lets_split/uno_slave/keyboard-i2c-slave.c | 42 ++++ keyboards/lets_split/uno_slave/readme.md | 1 + keyboards/lets_split/uno_slave/uno-matrix.c | 160 +++++++++++++++ keyboards/lets_split/uno_slave/uno-matrix.h | 19 ++ 18 files changed, 815 insertions(+), 450 deletions(-) create mode 100644 keyboards/lets_split/imgs/split-keyboard-i2c-schematic.png create mode 100644 keyboards/lets_split/imgs/split-keyboard-serial-schematic.png create mode 100644 keyboards/lets_split/serial.c create mode 100644 keyboards/lets_split/serial.h delete mode 100644 keyboards/lets_split/uno-slave/Makefile delete mode 100644 keyboards/lets_split/uno-slave/keyboard-i2c-slave.c delete mode 100644 keyboards/lets_split/uno-slave/readme.md delete mode 100644 keyboards/lets_split/uno-slave/uno-matrix.c delete mode 100644 keyboards/lets_split/uno-slave/uno-matrix.h create mode 100644 keyboards/lets_split/uno_slave/Makefile create mode 100644 keyboards/lets_split/uno_slave/keyboard-i2c-slave.c create mode 100644 keyboards/lets_split/uno_slave/readme.md create mode 100644 keyboards/lets_split/uno_slave/uno-matrix.c create mode 100644 keyboards/lets_split/uno_slave/uno-matrix.h (limited to 'keyboards') diff --git a/keyboards/lets_split/imgs/split-keyboard-i2c-schematic.png b/keyboards/lets_split/imgs/split-keyboard-i2c-schematic.png new file mode 100644 index 000000000..888294718 Binary files /dev/null and b/keyboards/lets_split/imgs/split-keyboard-i2c-schematic.png differ diff --git a/keyboards/lets_split/imgs/split-keyboard-serial-schematic.png b/keyboards/lets_split/imgs/split-keyboard-serial-schematic.png new file mode 100644 index 000000000..7621d38ed Binary files /dev/null and b/keyboards/lets_split/imgs/split-keyboard-serial-schematic.png differ diff --git a/keyboards/lets_split/matrix.c b/keyboards/lets_split/matrix.c index 16c2ba0ba..1d768c59b 100644 --- a/keyboards/lets_split/matrix.c +++ b/keyboards/lets_split/matrix.c @@ -29,6 +29,7 @@ along with this program. If not, see . #include "util.h" #include "matrix.h" #include "i2c.h" +#include "serial.h" #include "split_util.h" #include "pro_micro.h" #include "config.h" diff --git a/keyboards/lets_split/readme.md b/keyboards/lets_split/readme.md index e69de29bb..73fdb0f78 100644 --- a/keyboards/lets_split/readme.md +++ b/keyboards/lets_split/readme.md @@ -0,0 +1,102 @@ +Let's Split +====== + +This readme and most of the code are from https://github.com/ahtn/tmk_keyboard/ + +Split keyboard firmware for Arduino Pro Micro or other ATmega32u4 +based boards. + +Features +-------- + +Some features supported by the firmware: + +* Either half can connect to the computer via USB, or both halves can be used + independently. +* You only need 3 wires to connect the two halves. Two for VCC and GND and one + for serial communication. +* Optional support for I2C connection between the two halves if for some + reason you require a faster connection between the two halves. Note this + requires an extra wire between halves and pull-up resistors on the data lines. + +Required Hardware +----------------- + +Apart from diodes and key switches for the keyboard matrix in each half, you +will need: + +* 2 Arduino Pro Micro's. You can find theses on aliexpress for ≈3.50USD each. +* 2 TRS sockets +* 1 TRS cable. + +Alternatively, you can use any sort of cable and socket that has at least 3 +wires. If you want to use I2C to communicate between halves, you will need a +cable with at least 4 wires and 2x 4.7kΩ pull-up resistors + +Optional Hardware +----------------- + +A speaker can be hooked-up to either side to the `5` (`C6`) pin and `GND`, and turned on via `AUDIO_ENABLE`. + +Wiring +------ + +The 3 wires of the TRS cable need to connect GND, VCC, and digital pin 3 (i.e. +PD0 on the ATmega32u4) between the two Pro Micros. + +Then wire your key matrix to any of the remaining 17 IO pins of the pro micro +and modify the `matrix.c` accordingly. + +The wiring for serial: + +![serial wiring](imgs/split-keyboard-serial-schematic.png) + +The wiring for i2c: + +![i2c wiring](imgs/split-keyboard-i2c-schematic.png) + +The pull-up resistors may be placed on either half. It is also possible +to use 4 resistors and have the pull-ups in both halves, but this is +unnecessary in simple use cases. + +Notes on Software Configuration +------------------------------- + +Configuring the firmware is similar to any other TMK project. One thing +to note is that `MATIX_ROWS` in `config.h` is the total number of rows between +the two halves, i.e. if your split keyboard has 4 rows in each half, then +`MATRIX_ROWS=8`. + +Also the current implementation assumes a maximum of 8 columns, but it would +not be very difficult to adapt it to support more if required. + + +Flashing +-------- + +If you define `EE_HANDS` in your `config.h`, you will need to set the +EEPROM for the left and right halves. The EEPROM is used to store whether the +half is left handed or right handed. This makes it so that the same firmware +file will run on both hands instead of having to flash left and right handed +versions of the firmware to each half. To flash the EEPROM file for the left +half run: +``` +make eeprom-left +``` +and similarly for right half +``` +make eeprom-right +``` + +After you have flashed the EEPROM for the first time, you then need to program +the flash memory: +``` +make program +``` +Note that you need to program both halves, but you have the option of using +different keymaps for each half. You could program the left half with a QWERTY +layout and the right half with a Colemak layout. Then if you connect the left +half to a computer by USB the keyboard will use QWERTY and Colemak when the +right half is connected. + + diff --git a/keyboards/lets_split/serial.c b/keyboards/lets_split/serial.c new file mode 100644 index 000000000..f439c2f20 --- /dev/null +++ b/keyboards/lets_split/serial.c @@ -0,0 +1,225 @@ +/* + * WARNING: be careful changing this code, it is very timing dependent + */ + +#ifndef F_CPU +#define F_CPU 16000000 +#endif + +#include +#include +#include +#include + +#include "serial.h" + +// Serial pulse period in microseconds. Its probably a bad idea to lower this +// value. +#define SERIAL_DELAY 24 + +uint8_t volatile serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH] = {0}; +uint8_t volatile serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH] = {0}; + +#define SLAVE_DATA_CORRUPT (1<<0) +volatile uint8_t status = 0; + +inline static +void serial_delay(void) { + _delay_us(SERIAL_DELAY); +} + +inline static +void serial_output(void) { + SERIAL_PIN_DDR |= SERIAL_PIN_MASK; +} + +// make the serial pin an input with pull-up resistor +inline static +void serial_input(void) { + SERIAL_PIN_DDR &= ~SERIAL_PIN_MASK; + SERIAL_PIN_PORT |= SERIAL_PIN_MASK; +} + +inline static +uint8_t serial_read_pin(void) { + return !!(SERIAL_PIN_INPUT & SERIAL_PIN_MASK); +} + +inline static +void serial_low(void) { + SERIAL_PIN_PORT &= ~SERIAL_PIN_MASK; +} + +inline static +void serial_high(void) { + SERIAL_PIN_PORT |= SERIAL_PIN_MASK; +} + +void serial_master_init(void) { + serial_output(); + serial_high(); +} + +void serial_slave_init(void) { + serial_input(); + + // Enable INT0 + EIMSK |= _BV(INT0); + // Trigger on falling edge of INT0 + EICRA &= ~(_BV(ISC00) | _BV(ISC01)); +} + +// Used by the master to synchronize timing with the slave. +static +void sync_recv(void) { + serial_input(); + // This shouldn't hang if the slave disconnects because the + // serial line will float to high if the slave does disconnect. + while (!serial_read_pin()); + serial_delay(); +} + +// Used by the slave to send a synchronization signal to the master. +static +void sync_send(void) { + serial_output(); + + serial_low(); + serial_delay(); + + serial_high(); +} + +// Reads a byte from the serial line +static +uint8_t serial_read_byte(void) { + uint8_t byte = 0; + serial_input(); + for ( uint8_t i = 0; i < 8; ++i) { + byte = (byte << 1) | serial_read_pin(); + serial_delay(); + _delay_us(1); + } + + return byte; +} + +// Sends a byte with MSB ordering +static +void serial_write_byte(uint8_t data) { + uint8_t b = 8; + serial_output(); + while( b-- ) { + if(data & (1 << b)) { + serial_high(); + } else { + serial_low(); + } + serial_delay(); + } +} + +// interrupt handle to be used by the slave device +ISR(SERIAL_PIN_INTERRUPT) { + sync_send(); + + uint8_t checksum = 0; + for (int i = 0; i < SERIAL_SLAVE_BUFFER_LENGTH; ++i) { + serial_write_byte(serial_slave_buffer[i]); + sync_send(); + checksum += serial_slave_buffer[i]; + } + serial_write_byte(checksum); + sync_send(); + + // wait for the sync to finish sending + serial_delay(); + + // read the middle of pulses + _delay_us(SERIAL_DELAY/2); + + uint8_t checksum_computed = 0; + for (int i = 0; i < SERIAL_MASTER_BUFFER_LENGTH; ++i) { + serial_master_buffer[i] = serial_read_byte(); + sync_send(); + checksum_computed += serial_master_buffer[i]; + } + uint8_t checksum_received = serial_read_byte(); + sync_send(); + + serial_input(); // end transaction + + if ( checksum_computed != checksum_received ) { + status |= SLAVE_DATA_CORRUPT; + } else { + status &= ~SLAVE_DATA_CORRUPT; + } +} + +inline +bool serial_slave_DATA_CORRUPT(void) { + return status & SLAVE_DATA_CORRUPT; +} + +// Copies the serial_slave_buffer to the master and sends the +// serial_master_buffer to the slave. +// +// Returns: +// 0 => no error +// 1 => slave did not respond +int serial_update_buffers(void) { + // this code is very time dependent, so we need to disable interrupts + cli(); + + // signal to the slave that we want to start a transaction + serial_output(); + serial_low(); + _delay_us(1); + + // wait for the slaves response + serial_input(); + serial_high(); + _delay_us(SERIAL_DELAY); + + // check if the slave is present + if (serial_read_pin()) { + // slave failed to pull the line low, assume not present + sei(); + return 1; + } + + // if the slave is present syncronize with it + sync_recv(); + + uint8_t checksum_computed = 0; + // receive data from the slave + for (int i = 0; i < SERIAL_SLAVE_BUFFER_LENGTH; ++i) { + serial_slave_buffer[i] = serial_read_byte(); + sync_recv(); + checksum_computed += serial_slave_buffer[i]; + } + uint8_t checksum_received = serial_read_byte(); + sync_recv(); + + if (checksum_computed != checksum_received) { + sei(); + return 1; + } + + uint8_t checksum = 0; + // send data to the slave + for (int i = 0; i < SERIAL_MASTER_BUFFER_LENGTH; ++i) { + serial_write_byte(serial_master_buffer[i]); + sync_recv(); + checksum += serial_master_buffer[i]; + } + serial_write_byte(checksum); + sync_recv(); + + // always, release the line when not in use + serial_output(); + serial_high(); + + sei(); + return 0; +} diff --git a/keyboards/lets_split/serial.h b/keyboards/lets_split/serial.h new file mode 100644 index 000000000..15fe4db7b --- /dev/null +++ b/keyboards/lets_split/serial.h @@ -0,0 +1,26 @@ +#ifndef MY_SERIAL_H +#define MY_SERIAL_H + +#include "config.h" +#include + +/* TODO: some defines for interrupt setup */ +#define SERIAL_PIN_DDR DDRD +#define SERIAL_PIN_PORT PORTD +#define SERIAL_PIN_INPUT PIND +#define SERIAL_PIN_MASK _BV(PD0) +#define SERIAL_PIN_INTERRUPT INT0_vect + +#define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2 +#define SERIAL_MASTER_BUFFER_LENGTH 1 + +// Buffers for master - slave communication +extern volatile uint8_t serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH]; +extern volatile uint8_t serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH]; + +void serial_master_init(void); +void serial_slave_init(void); +int serial_update_buffers(void); +bool serial_slave_data_corrupt(void); + +#endif diff --git a/keyboards/lets_split/split_util.c b/keyboards/lets_split/split_util.c index c394596e0..65003a71a 100644 --- a/keyboards/lets_split/split_util.c +++ b/keyboards/lets_split/split_util.c @@ -7,13 +7,22 @@ #include "split_util.h" #include "matrix.h" #include "i2c.h" +#include "serial.h" #include "keyboard.h" #include "config.h" volatile bool isLeftHand = true; static void setup_handedness(void) { + #ifdef EE_HANDS isLeftHand = eeprom_read_byte(EECONFIG_HANDEDNESS); + #else + #ifdef I2C_MASTER_RIGHT + isLeftHand = !has_usb(); + #else + isLeftHand = has_usb(); + #endif + #endif } static void keyboard_master_setup(void) { diff --git a/keyboards/lets_split/split_util.h b/keyboards/lets_split/split_util.h index cf6890d37..6b896679c 100644 --- a/keyboards/lets_split/split_util.h +++ b/keyboards/lets_split/split_util.h @@ -3,8 +3,10 @@ #include -#define EECONFIG_BOOTMAGIC_END (uint8_t *)10 -#define EECONFIG_HANDEDNESS EECONFIG_BOOTMAGIC_END +#ifdef EE_HANDS + #define EECONFIG_BOOTMAGIC_END (uint8_t *)10 + #define EECONFIG_HANDEDNESS EECONFIG_BOOTMAGIC_END +#endif #define SLAVE_I2C_ADDRESS 0x32 diff --git a/keyboards/lets_split/uno-slave/Makefile b/keyboards/lets_split/uno-slave/Makefile deleted file mode 100644 index 84e67de11..000000000 --- a/keyboards/lets_split/uno-slave/Makefile +++ /dev/null @@ -1,226 +0,0 @@ -# Hey Emacs, this is a -*- makefile -*- - -# AVR-GCC Makefile template, derived from the WinAVR template (which -# is public domain), believed to be neutral to any flavor of "make" -# (GNU make, BSD make, SysV make) - - -MCU = atmega328p -FORMAT = ihex -TARGET = keyboard-i2c-slave -SRC = \ - $(TARGET).c \ - uno-matrix.c \ - ../serial.c \ - ../i2c-slave.c - -ASRC = -OPT = s - -# Programming support using avrdude. Settings and variables. - -AVRDUDE_PROGRAMMER = arduino -AVRDUDE_PORT = /dev/ttyACM0 - -# Name of this Makefile (used for "make depend"). -MAKEFILE = Makefile - -# Debugging format. -# Native formats for AVR-GCC's -g are stabs [default], or dwarf-2. -# AVR (extended) COFF requires stabs, plus an avr-objcopy run. -DEBUG = stabs - -# Compiler flag to set the C Standard level. -# c89 - "ANSI" C -# gnu89 - c89 plus GCC extensions -# c99 - ISO C99 standard (not yet fully implemented) -# gnu99 - c99 plus GCC extensions -CSTANDARD = -std=gnu99 - -# Place -D or -U options here -CDEFS = - -# Place -I options here -CINCS = - - -CDEBUG = -g$(DEBUG) -CWARN = -Wall -Wstrict-prototypes -CTUNING = -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -#CEXTRA = -Wa,-adhlns=$(<:.c=.lst) -CFLAGS = $(CDEBUG) $(CDEFS) $(CINCS) -O$(OPT) $(CWARN) $(CSTANDARD) $(CEXTRA) \ - -fno-aggressive-loop-optimizations - -#ASFLAGS = -Wa,-adhlns=$(<:.S=.lst),-gstabs - - -#Additional libraries. - -# Minimalistic printf version -PRINTF_LIB_MIN = -Wl,-u,vfprintf -lprintf_min - -# Floating point printf version (requires MATH_LIB = -lm below) -PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt - -PRINTF_LIB = - -# Minimalistic scanf version -SCANF_LIB_MIN = -Wl,-u,vfscanf -lscanf_min - -# Floating point + %[ scanf version (requires MATH_LIB = -lm below) -SCANF_LIB_FLOAT = -Wl,-u,vfscanf -lscanf_flt - -SCANF_LIB = - -MATH_LIB = -lm - -# External memory options - -# 64 KB of external RAM, starting after internal RAM (ATmega128!), -# used for variables (.data/.bss) and heap (malloc()). -#EXTMEMOPTS = -Wl,--section-start,.data=0x801100,--defsym=__heap_end=0x80ffff - -# 64 KB of external RAM, starting after internal RAM (ATmega128!), -# only used for heap (malloc()). -#EXTMEMOPTS = -Wl,--defsym=__heap_start=0x801100,--defsym=__heap_end=0x80ffff - -EXTMEMOPTS = - -#LDMAP = $(LDFLAGS) -Wl,-Map=$(TARGET).map,--cref -LDFLAGS = $(EXTMEMOPTS) $(LDMAP) $(PRINTF_LIB) $(SCANF_LIB) $(MATH_LIB) - - -AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex -#AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep - - -# Uncomment the following if you want avrdude's erase cycle counter. -# Note that this counter needs to be initialized first using -Yn, -# see avrdude manual. -#AVRDUDE_ERASE_COUNTER = -y - -# Uncomment the following if you do /not/ wish a verification to be -# performed after programming the device. -#AVRDUDE_NO_VERIFY = -V - -# Increase verbosity level. Please use this when submitting bug -# reports about avrdude. See -# to submit bug reports. -#AVRDUDE_VERBOSE = -v -v - -AVRDUDE_BASIC = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) -AVRDUDE_FLAGS = $(AVRDUDE_BASIC) $(AVRDUDE_NO_VERIFY) $(AVRDUDE_VERBOSE) $(AVRDUDE_ERASE_COUNTER) - - -CC = avr-gcc -OBJCOPY = avr-objcopy -OBJDUMP = avr-objdump -SIZE = avr-size -NM = avr-nm -AVRDUDE = avrdude -REMOVE = rm -f -MV = mv -f - -# Define all object files. -OBJ = $(SRC:.c=.o) $(ASRC:.S=.o) - -# Define all listing files. -LST = $(ASRC:.S=.lst) $(SRC:.c=.lst) - -# Combine all necessary flags and optional flags. -# Add target processor to flags. -ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS) -ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS) - - -# Default target. -all: build - -build: elf hex eep - -elf: $(TARGET).elf -hex: $(TARGET).hex -eep: $(TARGET).eep -lss: $(TARGET).lss -sym: $(TARGET).sym - - -# Program the device. -program: $(TARGET).hex $(TARGET).eep - $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM) - - -# Convert ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB. -COFFCONVERT=$(OBJCOPY) --debugging \ ---change-section-address .data-0x800000 \ ---change-section-address .bss-0x800000 \ ---change-section-address .noinit-0x800000 \ ---change-section-address .eeprom-0x810000 - - -coff: $(TARGET).elf - $(COFFCONVERT) -O coff-avr $(TARGET).elf $(TARGET).cof - - -extcoff: $(TARGET).elf - $(COFFCONVERT) -O coff-ext-avr $(TARGET).elf $(TARGET).cof - - -.SUFFIXES: .elf .hex .eep .lss .sym - -.elf.hex: - $(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@ - -.elf.eep: - -$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \ - --change-section-lma .eeprom=0 -O $(FORMAT) $< $@ - -# Create extended listing file from ELF output file. -.elf.lss: - $(OBJDUMP) -h -S $< > $@ - -# Create a symbol table from ELF output file. -.elf.sym: - $(NM) -n $< > $@ - - - -# Link: create ELF output file from object files. -$(TARGET).elf: $(OBJ) - $(CC) $(ALL_CFLAGS) $(OBJ) --output $@ $(LDFLAGS) - - -# Compile: create object files from C source files. -.c.o: - $(CC) -c $(ALL_CFLAGS) $< -o $@ - - -# Compile: create assembler files from C source files. -.c.s: - $(CC) -S $(ALL_CFLAGS) $< -o $@ - - -# Assemble: create object files from assembler source files. -.S.o: - $(CC) -c $(ALL_ASFLAGS) $< -o $@ - - - -# Target: clean project. -clean: - $(REMOVE) $(TARGET).hex $(TARGET).eep $(TARGET).cof $(TARGET).elf \ - $(TARGET).map $(TARGET).sym $(TARGET).lss \ - $(OBJ) $(LST) $(SRC:.c=.s) $(SRC:.c=.d) - -depend: - if grep '^# DO NOT DELETE' $(MAKEFILE) >/dev/null; \ - then \ - sed -e '/^# DO NOT DELETE/,$$d' $(MAKEFILE) > \ - $(MAKEFILE).$$$$ && \ - $(MV) $(MAKEFILE).$$$$ $(MAKEFILE); \ - fi - echo '# DO NOT DELETE THIS LINE -- make depend depends on it.' \ - >> $(MAKEFILE); \ - $(CC) -M -mmcu=$(MCU) $(CDEFS) $(CINCS) $(SRC) $(ASRC) >> $(MAKEFILE) - -.PHONY: all build elf hex eep lss sym program coff extcoff clean depend diff --git a/keyboards/lets_split/uno-slave/keyboard-i2c-slave.c b/keyboards/lets_split/uno-slave/keyboard-i2c-slave.c deleted file mode 100644 index 2043e7b94..000000000 --- a/keyboards/lets_split/uno-slave/keyboard-i2c-slave.c +++ /dev/null @@ -1,42 +0,0 @@ -#include "../i2c-slave.h" -#include "../serial.h" -#include "uno-matrix.h" - -#include -#include -#include - -void setup(void) { - // give some time for noise to clear - _delay_us(1000); - - // turn off arduino uno's led on pin 13 - DDRB |= (1 << 5); - PORTB &= ~(1 << 5); - - matrix_init(); - /* i2c_slave_init(0x32); */ - serial_slave_init(); - - /* serial_slave_buffer[0] = 0xa1; */ - /* serial_slave_buffer[1] = 0x52; */ - /* serial_slave_buffer[2] = 0xa2; */ - /* serial_slave_buffer[3] = 0x67; */ - - // need interrupts for i2c slave code to work - sei(); -} - -void loop(void) { - matrix_scan(); - for(int i=0; i -#include -#include - -#include "uno-matrix.h" - -#define debug(X) NULL -#define debug_hex(X) NULL - -#ifndef DEBOUNCE -# define DEBOUNCE 5 -#endif - -static uint8_t debouncing = DEBOUNCE; - -/* matrix state(1:on, 0:off) */ -static matrix_row_t matrix[MATRIX_ROWS]; -static matrix_row_t matrix_debouncing[MATRIX_ROWS]; - -static matrix_row_t read_cols(void); -static void init_cols(void); -static void unselect_rows(void); -static void select_row(uint8_t row); - -inline -uint8_t matrix_rows(void) -{ - return MATRIX_ROWS; -} - -inline -uint8_t matrix_cols(void) -{ - return MATRIX_COLS; -} - -void matrix_init(void) -{ - //debug_enable = true; - //debug_matrix = true; - //debug_mouse = true; - // initialize row and col - unselect_rows(); - init_cols(); - - // initialize matrix state: all keys off - for (uint8_t i=0; i < MATRIX_ROWS; i++) { - matrix[i] = 0; - matrix_debouncing[i] = 0; - } -} - -uint8_t matrix_scan(void) -{ - for (uint8_t i = 0; i < MATRIX_ROWS; i++) { - select_row(i); - _delay_us(30); // without this wait read unstable value. - matrix_row_t cols = read_cols(); - //Serial.println(cols, BIN); - if (matrix_debouncing[i] != cols) { - matrix_debouncing[i] = cols; - if (debouncing) { - debug("bounce!: "); debug_hex(debouncing); debug("\n"); - } - debouncing = DEBOUNCE; - } - unselect_rows(); - } - - if (debouncing) { - if (--debouncing) { - _delay_ms(1); - } else { - for (uint8_t i = 0; i < MATRIX_ROWS; i++) { - matrix[i] = matrix_debouncing[i]; - } - } - } - - return 1; -} - -bool matrix_is_modified(void) -{ - if (debouncing) return false; - return true; -} - -inline -bool matrix_is_on(uint8_t row, uint8_t col) -{ - return (matrix[row] & ((matrix_row_t)1< - -typedef uint8_t matrix_row_t; - -uint8_t matrix_rows(void); -uint8_t matrix_cols(void); -void matrix_init(void); -uint8_t matrix_scan(void); -bool matrix_is_modified(void); -bool matrix_is_on(uint8_t row, uint8_t col); -matrix_row_t matrix_get_row(uint8_t row); - -#endif diff --git a/keyboards/lets_split/uno_slave/Makefile b/keyboards/lets_split/uno_slave/Makefile new file mode 100644 index 000000000..84e67de11 --- /dev/null +++ b/keyboards/lets_split/uno_slave/Makefile @@ -0,0 +1,226 @@ +# Hey Emacs, this is a -*- makefile -*- + +# AVR-GCC Makefile template, derived from the WinAVR template (which +# is public domain), believed to be neutral to any flavor of "make" +# (GNU make, BSD make, SysV make) + + +MCU = atmega328p +FORMAT = ihex +TARGET = keyboard-i2c-slave +SRC = \ + $(TARGET).c \ + uno-matrix.c \ + ../serial.c \ + ../i2c-slave.c + +ASRC = +OPT = s + +# Programming support using avrdude. Settings and variables. + +AVRDUDE_PROGRAMMER = arduino +AVRDUDE_PORT = /dev/ttyACM0 + +# Name of this Makefile (used for "make depend"). +MAKEFILE = Makefile + +# Debugging format. +# Native formats for AVR-GCC's -g are stabs [default], or dwarf-2. +# AVR (extended) COFF requires stabs, plus an avr-objcopy run. +DEBUG = stabs + +# Compiler flag to set the C Standard level. +# c89 - "ANSI" C +# gnu89 - c89 plus GCC extensions +# c99 - ISO C99 standard (not yet fully implemented) +# gnu99 - c99 plus GCC extensions +CSTANDARD = -std=gnu99 + +# Place -D or -U options here +CDEFS = + +# Place -I options here +CINCS = + + +CDEBUG = -g$(DEBUG) +CWARN = -Wall -Wstrict-prototypes +CTUNING = -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums +#CEXTRA = -Wa,-adhlns=$(<:.c=.lst) +CFLAGS = $(CDEBUG) $(CDEFS) $(CINCS) -O$(OPT) $(CWARN) $(CSTANDARD) $(CEXTRA) \ + -fno-aggressive-loop-optimizations + +#ASFLAGS = -Wa,-adhlns=$(<:.S=.lst),-gstabs + + +#Additional libraries. + +# Minimalistic printf version +PRINTF_LIB_MIN = -Wl,-u,vfprintf -lprintf_min + +# Floating point printf version (requires MATH_LIB = -lm below) +PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt + +PRINTF_LIB = + +# Minimalistic scanf version +SCANF_LIB_MIN = -Wl,-u,vfscanf -lscanf_min + +# Floating point + %[ scanf version (requires MATH_LIB = -lm below) +SCANF_LIB_FLOAT = -Wl,-u,vfscanf -lscanf_flt + +SCANF_LIB = + +MATH_LIB = -lm + +# External memory options + +# 64 KB of external RAM, starting after internal RAM (ATmega128!), +# used for variables (.data/.bss) and heap (malloc()). +#EXTMEMOPTS = -Wl,--section-start,.data=0x801100,--defsym=__heap_end=0x80ffff + +# 64 KB of external RAM, starting after internal RAM (ATmega128!), +# only used for heap (malloc()). +#EXTMEMOPTS = -Wl,--defsym=__heap_start=0x801100,--defsym=__heap_end=0x80ffff + +EXTMEMOPTS = + +#LDMAP = $(LDFLAGS) -Wl,-Map=$(TARGET).map,--cref +LDFLAGS = $(EXTMEMOPTS) $(LDMAP) $(PRINTF_LIB) $(SCANF_LIB) $(MATH_LIB) + + +AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex +#AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep + + +# Uncomment the following if you want avrdude's erase cycle counter. +# Note that this counter needs to be initialized first using -Yn, +# see avrdude manual. +#AVRDUDE_ERASE_COUNTER = -y + +# Uncomment the following if you do /not/ wish a verification to be +# performed after programming the device. +#AVRDUDE_NO_VERIFY = -V + +# Increase verbosity level. Please use this when submitting bug +# reports about avrdude. See +# to submit bug reports. +#AVRDUDE_VERBOSE = -v -v + +AVRDUDE_BASIC = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) +AVRDUDE_FLAGS = $(AVRDUDE_BASIC) $(AVRDUDE_NO_VERIFY) $(AVRDUDE_VERBOSE) $(AVRDUDE_ERASE_COUNTER) + + +CC = avr-gcc +OBJCOPY = avr-objcopy +OBJDUMP = avr-objdump +SIZE = avr-size +NM = avr-nm +AVRDUDE = avrdude +REMOVE = rm -f +MV = mv -f + +# Define all object files. +OBJ = $(SRC:.c=.o) $(ASRC:.S=.o) + +# Define all listing files. +LST = $(ASRC:.S=.lst) $(SRC:.c=.lst) + +# Combine all necessary flags and optional flags. +# Add target processor to flags. +ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS) +ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS) + + +# Default target. +all: build + +build: elf hex eep + +elf: $(TARGET).elf +hex: $(TARGET).hex +eep: $(TARGET).eep +lss: $(TARGET).lss +sym: $(TARGET).sym + + +# Program the device. +program: $(TARGET).hex $(TARGET).eep + $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM) + + +# Convert ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB. +COFFCONVERT=$(OBJCOPY) --debugging \ +--change-section-address .data-0x800000 \ +--change-section-address .bss-0x800000 \ +--change-section-address .noinit-0x800000 \ +--change-section-address .eeprom-0x810000 + + +coff: $(TARGET).elf + $(COFFCONVERT) -O coff-avr $(TARGET).elf $(TARGET).cof + + +extcoff: $(TARGET).elf + $(COFFCONVERT) -O coff-ext-avr $(TARGET).elf $(TARGET).cof + + +.SUFFIXES: .elf .hex .eep .lss .sym + +.elf.hex: + $(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@ + +.elf.eep: + -$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \ + --change-section-lma .eeprom=0 -O $(FORMAT) $< $@ + +# Create extended listing file from ELF output file. +.elf.lss: + $(OBJDUMP) -h -S $< > $@ + +# Create a symbol table from ELF output file. +.elf.sym: + $(NM) -n $< > $@ + + + +# Link: create ELF output file from object files. +$(TARGET).elf: $(OBJ) + $(CC) $(ALL_CFLAGS) $(OBJ) --output $@ $(LDFLAGS) + + +# Compile: create object files from C source files. +.c.o: + $(CC) -c $(ALL_CFLAGS) $< -o $@ + + +# Compile: create assembler files from C source files. +.c.s: + $(CC) -S $(ALL_CFLAGS) $< -o $@ + + +# Assemble: create object files from assembler source files. +.S.o: + $(CC) -c $(ALL_ASFLAGS) $< -o $@ + + + +# Target: clean project. +clean: + $(REMOVE) $(TARGET).hex $(TARGET).eep $(TARGET).cof $(TARGET).elf \ + $(TARGET).map $(TARGET).sym $(TARGET).lss \ + $(OBJ) $(LST) $(SRC:.c=.s) $(SRC:.c=.d) + +depend: + if grep '^# DO NOT DELETE' $(MAKEFILE) >/dev/null; \ + then \ + sed -e '/^# DO NOT DELETE/,$$d' $(MAKEFILE) > \ + $(MAKEFILE).$$$$ && \ + $(MV) $(MAKEFILE).$$$$ $(MAKEFILE); \ + fi + echo '# DO NOT DELETE THIS LINE -- make depend depends on it.' \ + >> $(MAKEFILE); \ + $(CC) -M -mmcu=$(MCU) $(CDEFS) $(CINCS) $(SRC) $(ASRC) >> $(MAKEFILE) + +.PHONY: all build elf hex eep lss sym program coff extcoff clean depend diff --git a/keyboards/lets_split/uno_slave/keyboard-i2c-slave.c b/keyboards/lets_split/uno_slave/keyboard-i2c-slave.c new file mode 100644 index 000000000..2043e7b94 --- /dev/null +++ b/keyboards/lets_split/uno_slave/keyboard-i2c-slave.c @@ -0,0 +1,42 @@ +#include "../i2c-slave.h" +#include "../serial.h" +#include "uno-matrix.h" + +#include +#include +#include + +void setup(void) { + // give some time for noise to clear + _delay_us(1000); + + // turn off arduino uno's led on pin 13 + DDRB |= (1 << 5); + PORTB &= ~(1 << 5); + + matrix_init(); + /* i2c_slave_init(0x32); */ + serial_slave_init(); + + /* serial_slave_buffer[0] = 0xa1; */ + /* serial_slave_buffer[1] = 0x52; */ + /* serial_slave_buffer[2] = 0xa2; */ + /* serial_slave_buffer[3] = 0x67; */ + + // need interrupts for i2c slave code to work + sei(); +} + +void loop(void) { + matrix_scan(); + for(int i=0; i +#include +#include + +#include "uno-matrix.h" + +#define debug(X) NULL +#define debug_hex(X) NULL + +#ifndef DEBOUNCE +# define DEBOUNCE 5 +#endif + +static uint8_t debouncing = DEBOUNCE; + +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; +static matrix_row_t matrix_debouncing[MATRIX_ROWS]; + +static matrix_row_t read_cols(void); +static void init_cols(void); +static void unselect_rows(void); +static void select_row(uint8_t row); + +inline +uint8_t matrix_rows(void) +{ + return MATRIX_ROWS; +} + +inline +uint8_t matrix_cols(void) +{ + return MATRIX_COLS; +} + +void matrix_init(void) +{ + //debug_enable = true; + //debug_matrix = true; + //debug_mouse = true; + // initialize row and col + unselect_rows(); + init_cols(); + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + matrix_debouncing[i] = 0; + } +} + +uint8_t matrix_scan(void) +{ + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + select_row(i); + _delay_us(30); // without this wait read unstable value. + matrix_row_t cols = read_cols(); + //Serial.println(cols, BIN); + if (matrix_debouncing[i] != cols) { + matrix_debouncing[i] = cols; + if (debouncing) { + debug("bounce!: "); debug_hex(debouncing); debug("\n"); + } + debouncing = DEBOUNCE; + } + unselect_rows(); + } + + if (debouncing) { + if (--debouncing) { + _delay_ms(1); + } else { + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = matrix_debouncing[i]; + } + } + } + + return 1; +} + +bool matrix_is_modified(void) +{ + if (debouncing) return false; + return true; +} + +inline +bool matrix_is_on(uint8_t row, uint8_t col) +{ + return (matrix[row] & ((matrix_row_t)1< + +typedef uint8_t matrix_row_t; + +uint8_t matrix_rows(void); +uint8_t matrix_cols(void); +void matrix_init(void); +uint8_t matrix_scan(void); +bool matrix_is_modified(void); +bool matrix_is_on(uint8_t row, uint8_t col); +matrix_row_t matrix_get_row(uint8_t row); + +#endif -- cgit v1.2.3 From dd2522ba8b4acbf4bcd882d5e81df6410d9b69fb Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 5 Jul 2016 23:52:18 -0400 Subject: add options to config.h --- keyboards/lets_split/config.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'keyboards') diff --git a/keyboards/lets_split/config.h b/keyboards/lets_split/config.h index e68787e0b..5937ca44e 100644 --- a/keyboards/lets_split/config.h +++ b/keyboards/lets_split/config.h @@ -29,6 +29,7 @@ along with this program. If not, see . #define DESCRIPTION A split keyboard for the cheap makers /* key matrix size */ +// Rows are doubled-up #define MATRIX_ROWS 8 #define MATRIX_COLS 6 @@ -38,8 +39,10 @@ along with this program. If not, see . #define USE_I2C -// #define I2C_MASTER_LEFT -#define I2C_MASTER_RIGHT +// #define EE_HANDS + +#define I2C_MASTER_LEFT +// #define I2C_MASTER_RIGHT /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW -- cgit v1.2.3 From cb410729e631af9f962726c394956401b7c18079 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 5 Jul 2016 23:56:42 -0400 Subject: remove uno_slave for now, even though it's freakin cool --- keyboards/lets_split/uno_slave/Makefile | 226 --------------------- .../lets_split/uno_slave/keyboard-i2c-slave.c | 42 ---- keyboards/lets_split/uno_slave/readme.md | 1 - keyboards/lets_split/uno_slave/uno-matrix.c | 160 --------------- keyboards/lets_split/uno_slave/uno-matrix.h | 19 -- 5 files changed, 448 deletions(-) delete mode 100644 keyboards/lets_split/uno_slave/Makefile delete mode 100644 keyboards/lets_split/uno_slave/keyboard-i2c-slave.c delete mode 100644 keyboards/lets_split/uno_slave/readme.md delete mode 100644 keyboards/lets_split/uno_slave/uno-matrix.c delete mode 100644 keyboards/lets_split/uno_slave/uno-matrix.h (limited to 'keyboards') diff --git a/keyboards/lets_split/uno_slave/Makefile b/keyboards/lets_split/uno_slave/Makefile deleted file mode 100644 index 84e67de11..000000000 --- a/keyboards/lets_split/uno_slave/Makefile +++ /dev/null @@ -1,226 +0,0 @@ -# Hey Emacs, this is a -*- makefile -*- - -# AVR-GCC Makefile template, derived from the WinAVR template (which -# is public domain), believed to be neutral to any flavor of "make" -# (GNU make, BSD make, SysV make) - - -MCU = atmega328p -FORMAT = ihex -TARGET = keyboard-i2c-slave -SRC = \ - $(TARGET).c \ - uno-matrix.c \ - ../serial.c \ - ../i2c-slave.c - -ASRC = -OPT = s - -# Programming support using avrdude. Settings and variables. - -AVRDUDE_PROGRAMMER = arduino -AVRDUDE_PORT = /dev/ttyACM0 - -# Name of this Makefile (used for "make depend"). -MAKEFILE = Makefile - -# Debugging format. -# Native formats for AVR-GCC's -g are stabs [default], or dwarf-2. -# AVR (extended) COFF requires stabs, plus an avr-objcopy run. -DEBUG = stabs - -# Compiler flag to set the C Standard level. -# c89 - "ANSI" C -# gnu89 - c89 plus GCC extensions -# c99 - ISO C99 standard (not yet fully implemented) -# gnu99 - c99 plus GCC extensions -CSTANDARD = -std=gnu99 - -# Place -D or -U options here -CDEFS = - -# Place -I options here -CINCS = - - -CDEBUG = -g$(DEBUG) -CWARN = -Wall -Wstrict-prototypes -CTUNING = -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -#CEXTRA = -Wa,-adhlns=$(<:.c=.lst) -CFLAGS = $(CDEBUG) $(CDEFS) $(CINCS) -O$(OPT) $(CWARN) $(CSTANDARD) $(CEXTRA) \ - -fno-aggressive-loop-optimizations - -#ASFLAGS = -Wa,-adhlns=$(<:.S=.lst),-gstabs - - -#Additional libraries. - -# Minimalistic printf version -PRINTF_LIB_MIN = -Wl,-u,vfprintf -lprintf_min - -# Floating point printf version (requires MATH_LIB = -lm below) -PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt - -PRINTF_LIB = - -# Minimalistic scanf version -SCANF_LIB_MIN = -Wl,-u,vfscanf -lscanf_min - -# Floating point + %[ scanf version (requires MATH_LIB = -lm below) -SCANF_LIB_FLOAT = -Wl,-u,vfscanf -lscanf_flt - -SCANF_LIB = - -MATH_LIB = -lm - -# External memory options - -# 64 KB of external RAM, starting after internal RAM (ATmega128!), -# used for variables (.data/.bss) and heap (malloc()). -#EXTMEMOPTS = -Wl,--section-start,.data=0x801100,--defsym=__heap_end=0x80ffff - -# 64 KB of external RAM, starting after internal RAM (ATmega128!), -# only used for heap (malloc()). -#EXTMEMOPTS = -Wl,--defsym=__heap_start=0x801100,--defsym=__heap_end=0x80ffff - -EXTMEMOPTS = - -#LDMAP = $(LDFLAGS) -Wl,-Map=$(TARGET).map,--cref -LDFLAGS = $(EXTMEMOPTS) $(LDMAP) $(PRINTF_LIB) $(SCANF_LIB) $(MATH_LIB) - - -AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex -#AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep - - -# Uncomment the following if you want avrdude's erase cycle counter. -# Note that this counter needs to be initialized first using -Yn, -# see avrdude manual. -#AVRDUDE_ERASE_COUNTER = -y - -# Uncomment the following if you do /not/ wish a verification to be -# performed after programming the device. -#AVRDUDE_NO_VERIFY = -V - -# Increase verbosity level. Please use this when submitting bug -# reports about avrdude. See -# to submit bug reports. -#AVRDUDE_VERBOSE = -v -v - -AVRDUDE_BASIC = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) -AVRDUDE_FLAGS = $(AVRDUDE_BASIC) $(AVRDUDE_NO_VERIFY) $(AVRDUDE_VERBOSE) $(AVRDUDE_ERASE_COUNTER) - - -CC = avr-gcc -OBJCOPY = avr-objcopy -OBJDUMP = avr-objdump -SIZE = avr-size -NM = avr-nm -AVRDUDE = avrdude -REMOVE = rm -f -MV = mv -f - -# Define all object files. -OBJ = $(SRC:.c=.o) $(ASRC:.S=.o) - -# Define all listing files. -LST = $(ASRC:.S=.lst) $(SRC:.c=.lst) - -# Combine all necessary flags and optional flags. -# Add target processor to flags. -ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS) -ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS) - - -# Default target. -all: build - -build: elf hex eep - -elf: $(TARGET).elf -hex: $(TARGET).hex -eep: $(TARGET).eep -lss: $(TARGET).lss -sym: $(TARGET).sym - - -# Program the device. -program: $(TARGET).hex $(TARGET).eep - $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM) - - -# Convert ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB. -COFFCONVERT=$(OBJCOPY) --debugging \ ---change-section-address .data-0x800000 \ ---change-section-address .bss-0x800000 \ ---change-section-address .noinit-0x800000 \ ---change-section-address .eeprom-0x810000 - - -coff: $(TARGET).elf - $(COFFCONVERT) -O coff-avr $(TARGET).elf $(TARGET).cof - - -extcoff: $(TARGET).elf - $(COFFCONVERT) -O coff-ext-avr $(TARGET).elf $(TARGET).cof - - -.SUFFIXES: .elf .hex .eep .lss .sym - -.elf.hex: - $(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@ - -.elf.eep: - -$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \ - --change-section-lma .eeprom=0 -O $(FORMAT) $< $@ - -# Create extended listing file from ELF output file. -.elf.lss: - $(OBJDUMP) -h -S $< > $@ - -# Create a symbol table from ELF output file. -.elf.sym: - $(NM) -n $< > $@ - - - -# Link: create ELF output file from object files. -$(TARGET).elf: $(OBJ) - $(CC) $(ALL_CFLAGS) $(OBJ) --output $@ $(LDFLAGS) - - -# Compile: create object files from C source files. -.c.o: - $(CC) -c $(ALL_CFLAGS) $< -o $@ - - -# Compile: create assembler files from C source files. -.c.s: - $(CC) -S $(ALL_CFLAGS) $< -o $@ - - -# Assemble: create object files from assembler source files. -.S.o: - $(CC) -c $(ALL_ASFLAGS) $< -o $@ - - - -# Target: clean project. -clean: - $(REMOVE) $(TARGET).hex $(TARGET).eep $(TARGET).cof $(TARGET).elf \ - $(TARGET).map $(TARGET).sym $(TARGET).lss \ - $(OBJ) $(LST) $(SRC:.c=.s) $(SRC:.c=.d) - -depend: - if grep '^# DO NOT DELETE' $(MAKEFILE) >/dev/null; \ - then \ - sed -e '/^# DO NOT DELETE/,$$d' $(MAKEFILE) > \ - $(MAKEFILE).$$$$ && \ - $(MV) $(MAKEFILE).$$$$ $(MAKEFILE); \ - fi - echo '# DO NOT DELETE THIS LINE -- make depend depends on it.' \ - >> $(MAKEFILE); \ - $(CC) -M -mmcu=$(MCU) $(CDEFS) $(CINCS) $(SRC) $(ASRC) >> $(MAKEFILE) - -.PHONY: all build elf hex eep lss sym program coff extcoff clean depend diff --git a/keyboards/lets_split/uno_slave/keyboard-i2c-slave.c b/keyboards/lets_split/uno_slave/keyboard-i2c-slave.c deleted file mode 100644 index 2043e7b94..000000000 --- a/keyboards/lets_split/uno_slave/keyboard-i2c-slave.c +++ /dev/null @@ -1,42 +0,0 @@ -#include "../i2c-slave.h" -#include "../serial.h" -#include "uno-matrix.h" - -#include -#include -#include - -void setup(void) { - // give some time for noise to clear - _delay_us(1000); - - // turn off arduino uno's led on pin 13 - DDRB |= (1 << 5); - PORTB &= ~(1 << 5); - - matrix_init(); - /* i2c_slave_init(0x32); */ - serial_slave_init(); - - /* serial_slave_buffer[0] = 0xa1; */ - /* serial_slave_buffer[1] = 0x52; */ - /* serial_slave_buffer[2] = 0xa2; */ - /* serial_slave_buffer[3] = 0x67; */ - - // need interrupts for i2c slave code to work - sei(); -} - -void loop(void) { - matrix_scan(); - for(int i=0; i -#include -#include - -#include "uno-matrix.h" - -#define debug(X) NULL -#define debug_hex(X) NULL - -#ifndef DEBOUNCE -# define DEBOUNCE 5 -#endif - -static uint8_t debouncing = DEBOUNCE; - -/* matrix state(1:on, 0:off) */ -static matrix_row_t matrix[MATRIX_ROWS]; -static matrix_row_t matrix_debouncing[MATRIX_ROWS]; - -static matrix_row_t read_cols(void); -static void init_cols(void); -static void unselect_rows(void); -static void select_row(uint8_t row); - -inline -uint8_t matrix_rows(void) -{ - return MATRIX_ROWS; -} - -inline -uint8_t matrix_cols(void) -{ - return MATRIX_COLS; -} - -void matrix_init(void) -{ - //debug_enable = true; - //debug_matrix = true; - //debug_mouse = true; - // initialize row and col - unselect_rows(); - init_cols(); - - // initialize matrix state: all keys off - for (uint8_t i=0; i < MATRIX_ROWS; i++) { - matrix[i] = 0; - matrix_debouncing[i] = 0; - } -} - -uint8_t matrix_scan(void) -{ - for (uint8_t i = 0; i < MATRIX_ROWS; i++) { - select_row(i); - _delay_us(30); // without this wait read unstable value. - matrix_row_t cols = read_cols(); - //Serial.println(cols, BIN); - if (matrix_debouncing[i] != cols) { - matrix_debouncing[i] = cols; - if (debouncing) { - debug("bounce!: "); debug_hex(debouncing); debug("\n"); - } - debouncing = DEBOUNCE; - } - unselect_rows(); - } - - if (debouncing) { - if (--debouncing) { - _delay_ms(1); - } else { - for (uint8_t i = 0; i < MATRIX_ROWS; i++) { - matrix[i] = matrix_debouncing[i]; - } - } - } - - return 1; -} - -bool matrix_is_modified(void) -{ - if (debouncing) return false; - return true; -} - -inline -bool matrix_is_on(uint8_t row, uint8_t col) -{ - return (matrix[row] & ((matrix_row_t)1< - -typedef uint8_t matrix_row_t; - -uint8_t matrix_rows(void); -uint8_t matrix_cols(void); -void matrix_init(void); -uint8_t matrix_scan(void); -bool matrix_is_modified(void); -bool matrix_is_on(uint8_t row, uint8_t col); -matrix_row_t matrix_get_row(uint8_t row); - -#endif -- cgit v1.2.3 From 3577e26fd9916ceab58779ec6323d43da54eb3b5 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 6 Jul 2016 00:24:31 -0400 Subject: fix/annotate wait_us lines --- keyboards/ergodox_ez/matrix.c | 12 ++++++++++++ quantum/matrix.c | 14 ++------------ 2 files changed, 14 insertions(+), 12 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/matrix.c b/keyboards/ergodox_ez/matrix.c index 9c1efa1d0..dc29cf5cd 100644 --- a/keyboards/ergodox_ez/matrix.c +++ b/keyboards/ergodox_ez/matrix.c @@ -39,6 +39,17 @@ along with this program. If not, see . #include "timer.h" #endif +/* + * This constant define not debouncing time in msecs, but amount of matrix + * scan loops which should be made to get stable debounced results. + * + * On Ergodox matrix scan rate is relatively low, because of slow I2C. + * Now it's only 317 scans/second, or about 3.15 msec/scan. + * According to Cherry specs, debouncing time is 5 msec. + * + * And so, there is no sense to have DEBOUNCE higher than 2. + */ + #ifndef DEBOUNCE # define DEBOUNCE 5 #endif @@ -181,6 +192,7 @@ uint8_t matrix_scan(void) if (debouncing) { if (--debouncing) { wait_us(1); + // this should be wait_ms(1) but has been left as-is at EZ's request } else { for (uint8_t i = 0; i < MATRIX_ROWS; i++) { matrix[i] = matrix_debouncing[i]; diff --git a/quantum/matrix.c b/quantum/matrix.c index 094917025..3174e0739 100644 --- a/quantum/matrix.c +++ b/quantum/matrix.c @@ -27,16 +27,6 @@ along with this program. If not, see . #include "matrix.h" /* Set 0 if debouncing isn't needed */ -/* - * This constant define not debouncing time in msecs, but amount of matrix - * scan loops which should be made to get stable debounced results. - * - * On Ergodox matrix scan rate is relatively low, because of slow I2C. - * Now it's only 317 scans/second, or about 3.15 msec/scan. - * According to Cherry specs, debouncing time is 5 msec. - * - * And so, there is no sense to have DEBOUNCE higher than 2. - */ #ifndef DEBOUNCING_DELAY # define DEBOUNCING_DELAY 5 @@ -168,7 +158,7 @@ uint8_t matrix_scan(void) if (debouncing) { if (--debouncing) { - wait_us(1); + wait_ms(1); } else { for (uint8_t i = 0; i < MATRIX_ROWS; i++) { matrix[i] = matrix_debouncing[i]; @@ -192,7 +182,7 @@ uint8_t matrix_scan(void) if (debouncing) { if (--debouncing) { - wait_us(1); + wait_ms(1); } else { for (uint8_t i = 0; i < MATRIX_COLS; i++) { matrix_reversed[i] = matrix_reversed_debouncing[i]; -- cgit v1.2.3 From eb6e17be6fc378fdfb8c5c2c7253c17ffc07d225 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 6 Jul 2016 09:04:04 -0400 Subject: adds eep, removes usbconfig.h --- keyboards/lets_split/eeprom-lefthand.eep | 2 + keyboards/lets_split/eeprom-righthand.eep | 2 + keyboards/lets_split/usbconfig.h | 377 ------------------------------ 3 files changed, 4 insertions(+), 377 deletions(-) create mode 100644 keyboards/lets_split/eeprom-lefthand.eep create mode 100644 keyboards/lets_split/eeprom-righthand.eep delete mode 100644 keyboards/lets_split/usbconfig.h (limited to 'keyboards') diff --git a/keyboards/lets_split/eeprom-lefthand.eep b/keyboards/lets_split/eeprom-lefthand.eep new file mode 100644 index 000000000..a92200b12 --- /dev/null +++ b/keyboards/lets_split/eeprom-lefthand.eep @@ -0,0 +1,2 @@ +:080000000000000000000001F7 +:00000001FF diff --git a/keyboards/lets_split/eeprom-righthand.eep b/keyboards/lets_split/eeprom-righthand.eep new file mode 100644 index 000000000..91a683170 --- /dev/null +++ b/keyboards/lets_split/eeprom-righthand.eep @@ -0,0 +1,2 @@ +:080000000000000000000000F8 +:00000001FF diff --git a/keyboards/lets_split/usbconfig.h b/keyboards/lets_split/usbconfig.h deleted file mode 100644 index d0ca4c717..000000000 --- a/keyboards/lets_split/usbconfig.h +++ /dev/null @@ -1,377 +0,0 @@ -/* Name: usbconfig.h - * Project: V-USB, virtual USB port for Atmel's(r) AVR(r) microcontrollers - * Author: Christian Starkjohann - * Creation Date: 2005-04-01 - * Tabsize: 4 - * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH - * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt) - * This Revision: $Id: usbconfig-prototype.h 785 2010-05-30 17:57:07Z cs $ - */ - -#ifndef __usbconfig_h_included__ -#define __usbconfig_h_included__ - - -/* -General Description: -This file is an example configuration (with inline documentation) for the USB -driver. It configures V-USB for USB D+ connected to Port D bit 2 (which is -also hardware interrupt 0 on many devices) and USB D- to Port D bit 4. You may -wire the lines to any other port, as long as D+ is also wired to INT0 (or any -other hardware interrupt, as long as it is the highest level interrupt, see -section at the end of this file). -*/ - -/* ---------------------------- Hardware Config ---------------------------- */ - -#define USB_CFG_IOPORTNAME D -/* This is the port where the USB bus is connected. When you configure it to - * "B", the registers PORTB, PINB and DDRB will be used. - */ -#define USB_CFG_DMINUS_BIT 3 -/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected. - * This may be any bit in the port. - */ -#define USB_CFG_DPLUS_BIT 2 -/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected. - * This may be any bit in the port. Please note that D+ must also be connected - * to interrupt pin INT0! [You can also use other interrupts, see section - * "Optional MCU Description" below, or you can connect D- to the interrupt, as - * it is required if you use the USB_COUNT_SOF feature. If you use D- for the - * interrupt, the USB interrupt will also be triggered at Start-Of-Frame - * markers every millisecond.] - */ -#define USB_CFG_CLOCK_KHZ (F_CPU/1000) -/* Clock rate of the AVR in kHz. Legal values are 12000, 12800, 15000, 16000, - * 16500, 18000 and 20000. The 12.8 MHz and 16.5 MHz versions of the code - * require no crystal, they tolerate +/- 1% deviation from the nominal - * frequency. All other rates require a precision of 2000 ppm and thus a - * crystal! - * Since F_CPU should be defined to your actual clock rate anyway, you should - * not need to modify this setting. - */ -#define USB_CFG_CHECK_CRC 0 -/* Define this to 1 if you want that the driver checks integrity of incoming - * data packets (CRC checks). CRC checks cost quite a bit of code size and are - * currently only available for 18 MHz crystal clock. You must choose - * USB_CFG_CLOCK_KHZ = 18000 if you enable this option. - */ - -/* ----------------------- Optional Hardware Config ------------------------ */ - -/* #define USB_CFG_PULLUP_IOPORTNAME D */ -/* If you connect the 1.5k pullup resistor from D- to a port pin instead of - * V+, you can connect and disconnect the device from firmware by calling - * the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h). - * This constant defines the port on which the pullup resistor is connected. - */ -/* #define USB_CFG_PULLUP_BIT 4 */ -/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined - * above) where the 1.5k pullup resistor is connected. See description - * above for details. - */ - -/* --------------------------- Functional Range ---------------------------- */ - -#define USB_CFG_HAVE_INTRIN_ENDPOINT 1 -/* Define this to 1 if you want to compile a version with two endpoints: The - * default control endpoint 0 and an interrupt-in endpoint (any other endpoint - * number). - */ -#define USB_CFG_HAVE_INTRIN_ENDPOINT3 1 -/* Define this to 1 if you want to compile a version with three endpoints: The - * default control endpoint 0, an interrupt-in endpoint 3 (or the number - * configured below) and a catch-all default interrupt-in endpoint as above. - * You must also define USB_CFG_HAVE_INTRIN_ENDPOINT to 1 for this feature. - */ -#define USB_CFG_EP3_NUMBER 3 -/* If the so-called endpoint 3 is used, it can now be configured to any other - * endpoint number (except 0) with this macro. Default if undefined is 3. - */ -/* #define USB_INITIAL_DATATOKEN USBPID_DATA1 */ -/* The above macro defines the startup condition for data toggling on the - * interrupt/bulk endpoints 1 and 3. Defaults to USBPID_DATA1. - * Since the token is toggled BEFORE sending any data, the first packet is - * sent with the oposite value of this configuration! - */ -#define USB_CFG_IMPLEMENT_HALT 0 -/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature - * for endpoint 1 (interrupt endpoint). Although you may not need this feature, - * it is required by the standard. We have made it a config option because it - * bloats the code considerably. - */ -#define USB_CFG_SUPPRESS_INTR_CODE 0 -/* Define this to 1 if you want to declare interrupt-in endpoints, but don't - * want to send any data over them. If this macro is defined to 1, functions - * usbSetInterrupt() and usbSetInterrupt3() are omitted. This is useful if - * you need the interrupt-in endpoints in order to comply to an interface - * (e.g. HID), but never want to send any data. This option saves a couple - * of bytes in flash memory and the transmit buffers in RAM. - */ -#define USB_CFG_INTR_POLL_INTERVAL 10 -/* If you compile a version with endpoint 1 (interrupt-in), this is the poll - * interval. The value is in milliseconds and must not be less than 10 ms for - * low speed devices. - */ -#define USB_CFG_IS_SELF_POWERED 0 -/* Define this to 1 if the device has its own power supply. Set it to 0 if the - * device is powered from the USB bus. - */ -#define USB_CFG_MAX_BUS_POWER 100 -/* Set this variable to the maximum USB bus power consumption of your device. - * The value is in milliamperes. [It will be divided by two since USB - * communicates power requirements in units of 2 mA.] - */ -#define USB_CFG_IMPLEMENT_FN_WRITE 1 -/* Set this to 1 if you want usbFunctionWrite() to be called for control-out - * transfers. Set it to 0 if you don't need it and want to save a couple of - * bytes. - */ -#define USB_CFG_IMPLEMENT_FN_READ 0 -/* Set this to 1 if you need to send control replies which are generated - * "on the fly" when usbFunctionRead() is called. If you only want to send - * data from a static buffer, set it to 0 and return the data from - * usbFunctionSetup(). This saves a couple of bytes. - */ -#define USB_CFG_IMPLEMENT_FN_WRITEOUT 0 -/* Define this to 1 if you want to use interrupt-out (or bulk out) endpoints. - * You must implement the function usbFunctionWriteOut() which receives all - * interrupt/bulk data sent to any endpoint other than 0. The endpoint number - * can be found in 'usbRxToken'. - */ -#define USB_CFG_HAVE_FLOWCONTROL 0 -/* Define this to 1 if you want flowcontrol over USB data. See the definition - * of the macros usbDisableAllRequests() and usbEnableAllRequests() in - * usbdrv.h. - */ -#define USB_CFG_DRIVER_FLASH_PAGE 0 -/* If the device has more than 64 kBytes of flash, define this to the 64 k page - * where the driver's constants (descriptors) are located. Or in other words: - * Define this to 1 for boot loaders on the ATMega128. - */ -#define USB_CFG_LONG_TRANSFERS 0 -/* Define this to 1 if you want to send/receive blocks of more than 254 bytes - * in a single control-in or control-out transfer. Note that the capability - * for long transfers increases the driver size. - */ -/* #define USB_RX_USER_HOOK(data, len) if(usbRxToken == (uchar)USBPID_SETUP) blinkLED(); */ -/* This macro is a hook if you want to do unconventional things. If it is - * defined, it's inserted at the beginning of received message processing. - * If you eat the received message and don't want default processing to - * proceed, do a return after doing your things. One possible application - * (besides debugging) is to flash a status LED on each packet. - */ -/* #define USB_RESET_HOOK(resetStarts) if(!resetStarts){hadUsbReset();} */ -/* This macro is a hook if you need to know when an USB RESET occurs. It has - * one parameter which distinguishes between the start of RESET state and its - * end. - */ -/* #define USB_SET_ADDRESS_HOOK() hadAddressAssigned(); */ -/* This macro (if defined) is executed when a USB SET_ADDRESS request was - * received. - */ -#define USB_COUNT_SOF 0 -/* define this macro to 1 if you need the global variable "usbSofCount" which - * counts SOF packets. This feature requires that the hardware interrupt is - * connected to D- instead of D+. - */ -/* #ifdef __ASSEMBLER__ - * macro myAssemblerMacro - * in YL, TCNT0 - * sts timer0Snapshot, YL - * endm - * #endif - * #define USB_SOF_HOOK myAssemblerMacro - * This macro (if defined) is executed in the assembler module when a - * Start Of Frame condition is detected. It is recommended to define it to - * the name of an assembler macro which is defined here as well so that more - * than one assembler instruction can be used. The macro may use the register - * YL and modify SREG. If it lasts longer than a couple of cycles, USB messages - * immediately after an SOF pulse may be lost and must be retried by the host. - * What can you do with this hook? Since the SOF signal occurs exactly every - * 1 ms (unless the host is in sleep mode), you can use it to tune OSCCAL in - * designs running on the internal RC oscillator. - * Please note that Start Of Frame detection works only if D- is wired to the - * interrupt, not D+. THIS IS DIFFERENT THAN MOST EXAMPLES! - */ -#define USB_CFG_CHECK_DATA_TOGGLING 0 -/* define this macro to 1 if you want to filter out duplicate data packets - * sent by the host. Duplicates occur only as a consequence of communication - * errors, when the host does not receive an ACK. Please note that you need to - * implement the filtering yourself in usbFunctionWriteOut() and - * usbFunctionWrite(). Use the global usbCurrentDataToken and a static variable - * for each control- and out-endpoint to check for duplicate packets. - */ -#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 0 -/* define this macro to 1 if you want the function usbMeasureFrameLength() - * compiled in. This function can be used to calibrate the AVR's RC oscillator. - */ -#define USB_USE_FAST_CRC 0 -/* The assembler module has two implementations for the CRC algorithm. One is - * faster, the other is smaller. This CRC routine is only used for transmitted - * messages where timing is not critical. The faster routine needs 31 cycles - * per byte while the smaller one needs 61 to 69 cycles. The faster routine - * may be worth the 32 bytes bigger code size if you transmit lots of data and - * run the AVR close to its limit. - */ - -/* -------------------------- Device Description --------------------------- */ - -#define USB_CFG_VENDOR_ID (VENDOR_ID & 0xFF), ((VENDOR_ID >> 8) & 0xFF) -/* USB vendor ID for the device, low byte first. If you have registered your - * own Vendor ID, define it here. Otherwise you may use one of obdev's free - * shared VID/PID pairs. Be sure to read USB-IDs-for-free.txt for rules! - * *** IMPORTANT NOTE *** - * This template uses obdev's shared VID/PID pair for Vendor Class devices - * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand - * the implications! - */ -#define USB_CFG_DEVICE_ID (PRODUCT_ID & 0xFF), ((PRODUCT_ID >> 8) & 0xFF) -/* This is the ID of the product, low byte first. It is interpreted in the - * scope of the vendor ID. If you have registered your own VID with usb.org - * or if you have licensed a PID from somebody else, define it here. Otherwise - * you may use one of obdev's free shared VID/PID pairs. See the file - * USB-IDs-for-free.txt for details! - * *** IMPORTANT NOTE *** - * This template uses obdev's shared VID/PID pair for Vendor Class devices - * with libusb: 0x16c0/0x5dc. Use this VID/PID pair ONLY if you understand - * the implications! - */ -#define USB_CFG_DEVICE_VERSION 0x00, 0x01 -/* Version number of the device: Minor number first, then major number. - */ -#define USB_CFG_VENDOR_NAME 't', '.', 'm', '.', 'k', '.' -#define USB_CFG_VENDOR_NAME_LEN 6 -/* These two values define the vendor name returned by the USB device. The name - * must be given as a list of characters under single quotes. The characters - * are interpreted as Unicode (UTF-16) entities. - * If you don't want a vendor name string, undefine these macros. - * ALWAYS define a vendor name containing your Internet domain name if you use - * obdev's free shared VID/PID pair. See the file USB-IDs-for-free.txt for - * details. - */ -#define USB_CFG_DEVICE_NAME 'P', 'S', '/', '2', ' ', 'k', 'e', 'y', 'b', 'o', 'a', 'r', 'd', ' ', 'c', 'o', 'n', 'v', 'e', 'r', 't', 'e', 'r' -#define USB_CFG_DEVICE_NAME_LEN 23 -/* Same as above for the device name. If you don't want a device name, undefine - * the macros. See the file USB-IDs-for-free.txt before you assign a name if - * you use a shared VID/PID. - */ -/*#define USB_CFG_SERIAL_NUMBER 'N', 'o', 'n', 'e' */ -/*#define USB_CFG_SERIAL_NUMBER_LEN 0 */ -/* Same as above for the serial number. If you don't want a serial number, - * undefine the macros. - * It may be useful to provide the serial number through other means than at - * compile time. See the section about descriptor properties below for how - * to fine tune control over USB descriptors such as the string descriptor - * for the serial number. - */ -#define USB_CFG_DEVICE_CLASS 0 -#define USB_CFG_DEVICE_SUBCLASS 0 -/* See USB specification if you want to conform to an existing device class. - * Class 0xff is "vendor specific". - */ -#define USB_CFG_INTERFACE_CLASS 3 /* HID */ -#define USB_CFG_INTERFACE_SUBCLASS 1 /* Boot */ -#define USB_CFG_INTERFACE_PROTOCOL 1 /* Keyboard */ -/* See USB specification if you want to conform to an existing device class or - * protocol. The following classes must be set at interface level: - * HID class is 3, no subclass and protocol required (but may be useful!) - * CDC class is 2, use subclass 2 and protocol 1 for ACM - */ -#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0 -/* Define this to the length of the HID report descriptor, if you implement - * an HID device. Otherwise don't define it or define it to 0. - * If you use this define, you must add a PROGMEM character array named - * "usbHidReportDescriptor" to your code which contains the report descriptor. - * Don't forget to keep the array and this define in sync! - */ - -/* #define USB_PUBLIC static */ -/* Use the define above if you #include usbdrv.c instead of linking against it. - * This technique saves a couple of bytes in flash memory. - */ - -/* ------------------- Fine Control over USB Descriptors ------------------- */ -/* If you don't want to use the driver's default USB descriptors, you can - * provide our own. These can be provided as (1) fixed length static data in - * flash memory, (2) fixed length static data in RAM or (3) dynamically at - * runtime in the function usbFunctionDescriptor(). See usbdrv.h for more - * information about this function. - * Descriptor handling is configured through the descriptor's properties. If - * no properties are defined or if they are 0, the default descriptor is used. - * Possible properties are: - * + USB_PROP_IS_DYNAMIC: The data for the descriptor should be fetched - * at runtime via usbFunctionDescriptor(). If the usbMsgPtr mechanism is - * used, the data is in FLASH by default. Add property USB_PROP_IS_RAM if - * you want RAM pointers. - * + USB_PROP_IS_RAM: The data returned by usbFunctionDescriptor() or found - * in static memory is in RAM, not in flash memory. - * + USB_PROP_LENGTH(len): If the data is in static memory (RAM or flash), - * the driver must know the descriptor's length. The descriptor itself is - * found at the address of a well known identifier (see below). - * List of static descriptor names (must be declared PROGMEM if in flash): - * char usbDescriptorDevice[]; - * char usbDescriptorConfiguration[]; - * char usbDescriptorHidReport[]; - * char usbDescriptorString0[]; - * int usbDescriptorStringVendor[]; - * int usbDescriptorStringDevice[]; - * int usbDescriptorStringSerialNumber[]; - * Other descriptors can't be provided statically, they must be provided - * dynamically at runtime. - * - * Descriptor properties are or-ed or added together, e.g.: - * #define USB_CFG_DESCR_PROPS_DEVICE (USB_PROP_IS_RAM | USB_PROP_LENGTH(18)) - * - * The following descriptors are defined: - * USB_CFG_DESCR_PROPS_DEVICE - * USB_CFG_DESCR_PROPS_CONFIGURATION - * USB_CFG_DESCR_PROPS_STRINGS - * USB_CFG_DESCR_PROPS_STRING_0 - * USB_CFG_DESCR_PROPS_STRING_VENDOR - * USB_CFG_DESCR_PROPS_STRING_PRODUCT - * USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER - * USB_CFG_DESCR_PROPS_HID - * USB_CFG_DESCR_PROPS_HID_REPORT - * USB_CFG_DESCR_PROPS_UNKNOWN (for all descriptors not handled by the driver) - * - * Note about string descriptors: String descriptors are not just strings, they - * are Unicode strings prefixed with a 2 byte header. Example: - * int serialNumberDescriptor[] = { - * USB_STRING_DESCRIPTOR_HEADER(6), - * 'S', 'e', 'r', 'i', 'a', 'l' - * }; - */ - -#define USB_CFG_DESCR_PROPS_DEVICE 0 -#define USB_CFG_DESCR_PROPS_CONFIGURATION USB_PROP_IS_DYNAMIC -//#define USB_CFG_DESCR_PROPS_CONFIGURATION 0 -#define USB_CFG_DESCR_PROPS_STRINGS 0 -#define USB_CFG_DESCR_PROPS_STRING_0 0 -#define USB_CFG_DESCR_PROPS_STRING_VENDOR 0 -#define USB_CFG_DESCR_PROPS_STRING_PRODUCT 0 -#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER 0 -//#define USB_CFG_DESCR_PROPS_HID USB_PROP_IS_DYNAMIC -#define USB_CFG_DESCR_PROPS_HID 0 -#define USB_CFG_DESCR_PROPS_HID_REPORT USB_PROP_IS_DYNAMIC -//#define USB_CFG_DESCR_PROPS_HID_REPORT 0 -#define USB_CFG_DESCR_PROPS_UNKNOWN 0 - -/* ----------------------- Optional MCU Description ------------------------ */ - -/* The following configurations have working defaults in usbdrv.h. You - * usually don't need to set them explicitly. Only if you want to run - * the driver on a device which is not yet supported or with a compiler - * which is not fully supported (such as IAR C) or if you use a differnt - * interrupt than INT0, you may have to define some of these. - */ -/* #define USB_INTR_CFG MCUCR */ -/* #define USB_INTR_CFG_SET ((1 << ISC00) | (1 << ISC01)) */ -/* #define USB_INTR_CFG_CLR 0 */ -/* #define USB_INTR_ENABLE GIMSK */ -/* #define USB_INTR_ENABLE_BIT INT0 */ -/* #define USB_INTR_PENDING GIFR */ -/* #define USB_INTR_PENDING_BIT INTF0 */ -/* #define USB_INTR_VECTOR INT0_vect */ - -#endif /* __usbconfig_h_included__ */ -- cgit v1.2.3 From a7e3e4e652a2b9f172282f3876d74ee247a63105 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Wed, 6 Jul 2016 14:29:46 +0300 Subject: Add serial_link compilation to Infinity Ergodox --- Makefile | 12 +++++++++++- keyboards/infinity_ergodox/Makefile | 1 + keyboards/infinity_ergodox/infinity_ergodox.c | 10 ++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) (limited to 'keyboards') diff --git a/Makefile b/Makefile index c285dabad..79f9e8b42 100644 --- a/Makefile +++ b/Makefile @@ -198,10 +198,20 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes) endif ifeq ($(strip $(TAP_DANCE_ENABLE)), yes) - OPT_DEFS += -DTAP_DANCE_ENABLE + OPT_DEFS += -DTAP_DANCE_ENABLE SRC += $(QUANTUM_DIR)/process_keycode/process_tap_dance.c endif +ifeq ($(strip $(SERIAL_LINK_ENABLE)), yes) + SERIAL_DIR = $(QUANTUM_DIR)/serial_link + SERIAL_PATH = $(QUANTUM_PATH)/serial_link + SERIAL_SRC = $(wildcard $(SERIAL_PATH)/protocol/*.c) + SERIAL_SRC += $(wildcard $(SERIAL_PATH)/system/*.c) + SRC += $(patsubst $(QUANTUM_PATH)/%,%,$(SERIAL_SRC)) + OPT_DEFS += -DUSE_SERIAL_LINK + VAPTH += $(SERIAL_PATH) +endif + # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax diff --git a/keyboards/infinity_ergodox/Makefile b/keyboards/infinity_ergodox/Makefile index fb21aae5e..efa32e037 100644 --- a/keyboards/infinity_ergodox/Makefile +++ b/keyboards/infinity_ergodox/Makefile @@ -66,6 +66,7 @@ COMMAND_ENABLE ?= yes # Commands for debug and configuration SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend NKRO_ENABLE ?= yes # USB Nkey Rollover CUSTOM_MATRIX ?= yes # Custom matrix file +SERIAL_LINK_ENABLE = yes ifndef QUANTUM_DIR include ../../Makefile diff --git a/keyboards/infinity_ergodox/infinity_ergodox.c b/keyboards/infinity_ergodox/infinity_ergodox.c index 34aded1a7..85054775e 100644 --- a/keyboards/infinity_ergodox/infinity_ergodox.c +++ b/keyboards/infinity_ergodox/infinity_ergodox.c @@ -1 +1,11 @@ #include "infinity_ergodox.h" +#include "ch.h" +#include "hal.h" +#include "serial_link/system/serial_link.h" + +void init_serial_link_hal(void) { + PORTA->PCR[1] = PORTx_PCRn_PE | PORTx_PCRn_PS | PORTx_PCRn_PFE | PORTx_PCRn_MUX(2); + PORTA->PCR[2] = PORTx_PCRn_DSE | PORTx_PCRn_SRE | PORTx_PCRn_MUX(2); + PORTE->PCR[0] = PORTx_PCRn_PE | PORTx_PCRn_PS | PORTx_PCRn_PFE | PORTx_PCRn_MUX(3); + PORTE->PCR[1] = PORTx_PCRn_DSE | PORTx_PCRn_SRE | PORTx_PCRn_MUX(3); +} -- cgit v1.2.3 From 70797bb8f21c72cba15b314b2d0a6684bfedc369 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Thu, 7 Jul 2016 00:20:20 +0300 Subject: Makefile changes and files to compile Visualizer --- Makefile | 15 +- keyboards/infinity_ergodox/Makefile | 3 + keyboards/infinity_ergodox/gfxconf.h | 331 +++++++++++++++++++++++++ keyboards/infinity_ergodox/lcd_backlight_hal.c | 84 +++++++ keyboards/infinity_ergodox/visualizer_user.c | 168 +++++++++++++ quantum/visualizer/visualizer.c | 2 - quantum/visualizer/visualizer.h | 2 - quantum/visualizer/visualizer.mk | 22 +- 8 files changed, 604 insertions(+), 23 deletions(-) create mode 100644 keyboards/infinity_ergodox/gfxconf.h create mode 100644 keyboards/infinity_ergodox/lcd_backlight_hal.c create mode 100644 keyboards/infinity_ergodox/visualizer_user.c (limited to 'keyboards') diff --git a/Makefile b/Makefile index 7c00ce2cc..a7a10bf32 100644 --- a/Makefile +++ b/Makefile @@ -218,14 +218,6 @@ ifeq ($(strip $(SERIAL_LINK_ENABLE)), yes) VAPTH += $(SERIAL_PATH) endif -ifeq ($(MASTER),right) - OPT_DEFS += -DMASTER_IS_ON_RIGHT -else - ifneq ($(MASTER),left) -$(error MASTER does not have a valid value(left/right)) - endif -endif - # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax @@ -257,10 +249,17 @@ ifeq ($(PLATFORM),AVR) else ifeq ($(PLATFORM),CHIBIOS) include $(TMK_PATH)/protocol/chibios.mk include $(TMK_PATH)/chibios.mk + OPT_OS = chibios else $(error Unknown platform) endif +ifeq ($(strip $(VISUALIZER_ENABLE)), yes) + VISUALIZER_DIR = $(QUANTUM_DIR)/visualizer + VISUALIZER_PATH = $(QUANTUM_PATH)/visualizer + include $(VISUALIZER_PATH)/visualizer.mk +endif + include $(TMK_PATH)/rules.mk GIT_VERSION := $(shell git describe --abbrev=6 --dirty --always --tags 2>/dev/null || date +"%Y-%m-%d-%H:%M:%S") diff --git a/keyboards/infinity_ergodox/Makefile b/keyboards/infinity_ergodox/Makefile index efa32e037..8be2f51b1 100644 --- a/keyboards/infinity_ergodox/Makefile +++ b/keyboards/infinity_ergodox/Makefile @@ -67,6 +67,9 @@ SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend NKRO_ENABLE ?= yes # USB Nkey Rollover CUSTOM_MATRIX ?= yes # Custom matrix file SERIAL_LINK_ENABLE = yes +VISUALIZER_ENABLE ?= yes +LCD_ENABLE ?= yes +LCD_BACKLIGHT_ENABLE ?= yes ifndef QUANTUM_DIR include ../../Makefile diff --git a/keyboards/infinity_ergodox/gfxconf.h b/keyboards/infinity_ergodox/gfxconf.h new file mode 100644 index 000000000..8caa577b7 --- /dev/null +++ b/keyboards/infinity_ergodox/gfxconf.h @@ -0,0 +1,331 @@ +/** + * This file has a different license to the rest of the uGFX system. + * You can copy, modify and distribute this file as you see fit. + * You do not need to publish your source modifications to this file. + * The only thing you are not permitted to do is to relicense it + * under a different license. + */ + +/** + * Copy this file into your project directory and rename it as gfxconf.h + * Edit your copy to turn on the uGFX features you want to use. + * The values below are the defaults. + * + * Only remove the comments from lines where you want to change the + * default value. This allows definitions to be included from + * driver makefiles when required and provides the best future + * compatibility for your project. + * + * Please use spaces instead of tabs in this file. + */ + +#ifndef _GFXCONF_H +#define _GFXCONF_H + + +/////////////////////////////////////////////////////////////////////////// +// GOS - One of these must be defined, preferably in your Makefile // +/////////////////////////////////////////////////////////////////////////// +//#define GFX_USE_OS_CHIBIOS TRUE +//#define GFX_USE_OS_FREERTOS FALSE +// #define GFX_FREERTOS_USE_TRACE FALSE +//#define GFX_USE_OS_WIN32 FALSE +//#define GFX_USE_OS_LINUX FALSE +//#define GFX_USE_OS_OSX FALSE +//#define GFX_USE_OS_ECOS FALSE +//#define GFX_USE_OS_RAWRTOS FALSE +//#define GFX_USE_OS_ARDUINO FALSE +//#define GFX_USE_OS_KEIL FALSE +//#define GFX_USE_OS_CMSIS FALSE +//#define GFX_USE_OS_RAW32 FALSE +// #define INTERRUPTS_OFF() optional_code +// #define INTERRUPTS_ON() optional_code +// These are not defined by default for some reason +#define GOS_NEED_X_THREADS FALSE +#define GOS_NEED_X_HEAP FALSE + +// Options that (should where relevant) apply to all operating systems + #define GFX_NO_INLINE FALSE +// #define GFX_COMPILER GFX_COMPILER_UNKNOWN +// #define GFX_CPU GFX_CPU_UNKNOWN +// #define GFX_OS_HEAP_SIZE 0 +// #define GFX_OS_NO_INIT FALSE +// #define GFX_OS_INIT_NO_WARNING FALSE +// #define GFX_OS_PRE_INIT_FUNCTION myHardwareInitRoutine +// #define GFX_OS_EXTRA_INIT_FUNCTION myOSInitRoutine +// #define GFX_OS_EXTRA_DEINIT_FUNCTION myOSDeInitRoutine + + +/////////////////////////////////////////////////////////////////////////// +// GDISP // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GDISP TRUE + +//#define GDISP_NEED_AUTOFLUSH FALSE +//#define GDISP_NEED_TIMERFLUSH FALSE +//#define GDISP_NEED_VALIDATION TRUE +//#define GDISP_NEED_CLIP TRUE +#define GDISP_NEED_CIRCLE TRUE +#define GDISP_NEED_ELLIPSE TRUE +#define GDISP_NEED_ARC TRUE +#define GDISP_NEED_ARCSECTORS TRUE +#define GDISP_NEED_CONVEX_POLYGON TRUE +//#define GDISP_NEED_SCROLL FALSE +#define GDISP_NEED_PIXELREAD TRUE +#define GDISP_NEED_CONTROL TRUE +//#define GDISP_NEED_QUERY FALSE +//#define GDISP_NEED_MULTITHREAD FALSE +//#define GDISP_NEED_STREAMING FALSE +#define GDISP_NEED_TEXT TRUE +// #define GDISP_NEED_TEXT_WORDWRAP FALSE +// #define GDISP_NEED_ANTIALIAS FALSE +// #define GDISP_NEED_UTF8 FALSE + #define GDISP_NEED_TEXT_KERNING TRUE +// #define GDISP_INCLUDE_FONT_UI1 FALSE +// #define GDISP_INCLUDE_FONT_UI2 FALSE // The smallest preferred font. +// #define GDISP_INCLUDE_FONT_LARGENUMBERS FALSE +// #define GDISP_INCLUDE_FONT_DEJAVUSANS10 FALSE +// #define GDISP_INCLUDE_FONT_DEJAVUSANS12 FALSE +// #define GDISP_INCLUDE_FONT_DEJAVUSANS16 FALSE +// #define GDISP_INCLUDE_FONT_DEJAVUSANS20 FALSE +// #define GDISP_INCLUDE_FONT_DEJAVUSANS24 FALSE +// #define GDISP_INCLUDE_FONT_DEJAVUSANS32 FALSE + #define GDISP_INCLUDE_FONT_DEJAVUSANSBOLD12 TRUE +// #define GDISP_INCLUDE_FONT_FIXED_10X20 FALSE +// #define GDISP_INCLUDE_FONT_FIXED_7X14 FALSE + #define GDISP_INCLUDE_FONT_FIXED_5X8 TRUE +// #define GDISP_INCLUDE_FONT_DEJAVUSANS12_AA FALSE +// #define GDISP_INCLUDE_FONT_DEJAVUSANS16_AA FALSE +// #define GDISP_INCLUDE_FONT_DEJAVUSANS20_AA FALSE +// #define GDISP_INCLUDE_FONT_DEJAVUSANS24_AA FALSE +// #define GDISP_INCLUDE_FONT_DEJAVUSANS32_AA FALSE +// #define GDISP_INCLUDE_FONT_DEJAVUSANSBOLD12_AA FALSE +// #define GDISP_INCLUDE_USER_FONTS FALSE + +//#define GDISP_NEED_IMAGE FALSE +// #define GDISP_NEED_IMAGE_NATIVE FALSE +// #define GDISP_NEED_IMAGE_GIF FALSE +// #define GDISP_NEED_IMAGE_BMP FALSE +// #define GDISP_NEED_IMAGE_BMP_1 FALSE +// #define GDISP_NEED_IMAGE_BMP_4 FALSE +// #define GDISP_NEED_IMAGE_BMP_4_RLE FALSE +// #define GDISP_NEED_IMAGE_BMP_8 FALSE +// #define GDISP_NEED_IMAGE_BMP_8_RLE FALSE +// #define GDISP_NEED_IMAGE_BMP_16 FALSE +// #define GDISP_NEED_IMAGE_BMP_24 FALSE +// #define GDISP_NEED_IMAGE_BMP_32 FALSE +// #define GDISP_NEED_IMAGE_JPG FALSE +// #define GDISP_NEED_IMAGE_PNG FALSE +// #define GDISP_NEED_IMAGE_ACCOUNTING FALSE +#ifdef EMULATOR +#define GDISP_NEED_PIXMAP TRUE +#endif +// #define GDISP_NEED_PIXMAP_IMAGE FALSE + +//#define GDISP_DEFAULT_ORIENTATION GDISP_ROTATE_LANDSCAPE // If not defined the native hardware orientation is used. +//#define GDISP_LINEBUF_SIZE 128 +//#define GDISP_STARTUP_COLOR Black +#define GDISP_NEED_STARTUP_LOGO FALSE + +//#define GDISP_TOTAL_DISPLAYS 2 + +#ifndef EMULATOR +#define GDISP_DRIVER_LIST GDISPVMT_ST7565_ERGODOX, GDISPVMT_IS31FL3731C_ERGODOX +#else +#define GDISP_DRIVER_LIST GDISPVMT_EMULATOR_LCD_ERGODOX, GDISPVMT_EMULATOR_LED_ERGODOX +#endif + + #ifdef GDISP_DRIVER_LIST + // For code and speed optimization define as TRUE or FALSE if all controllers have the same capability + #define GDISP_HARDWARE_STREAM_WRITE FALSE + #define GDISP_HARDWARE_STREAM_READ FALSE + #define GDISP_HARDWARE_STREAM_POS FALSE + #define GDISP_HARDWARE_DRAWPIXEL TRUE + #define GDISP_HARDWARE_CLEARS FALSE + #define GDISP_HARDWARE_FILLS FALSE + #define GDISP_HARDWARE_BITFILLS FALSE + #define GDISP_HARDWARE_SCROLL FALSE + #define GDISP_HARDWARE_PIXELREAD TRUE + #define GDISP_HARDWARE_CONTROL TRUE + #define GDISP_HARDWARE_QUERY FALSE + #define GDISP_HARDWARE_CLIP FALSE + + #define GDISP_PIXELFORMAT GDISP_PIXELFORMAT_RGB888 + #endif + +// The custom format is not defined for some reason, so define it as error +// so we don't get compiler warnings +#define GDISP_PIXELFORMAT_CUSTOM GDISP_PIXELFORMAT_ERROR + +#define GDISP_USE_GFXNET FALSE +// #define GDISP_GFXNET_PORT 13001 +// #define GDISP_GFXNET_CUSTOM_LWIP_STARTUP FALSE +// #define GDISP_DONT_WAIT_FOR_NET_DISPLAY FALSE +// #define GDISP_GFXNET_UNSAFE_SOCKETS FALSE + + +/////////////////////////////////////////////////////////////////////////// +// GWIN // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GWIN FALSE + +//#define GWIN_NEED_WINDOWMANAGER FALSE +// #define GWIN_REDRAW_IMMEDIATE FALSE +// #define GWIN_REDRAW_SINGLEOP FALSE +// #define GWIN_NEED_FLASHING FALSE +// #define GWIN_FLASHING_PERIOD 250 + +//#define GWIN_NEED_CONSOLE FALSE +// #define GWIN_CONSOLE_USE_HISTORY FALSE +// #define GWIN_CONSOLE_HISTORY_AVERAGING FALSE +// #define GWIN_CONSOLE_HISTORY_ATCREATE FALSE +// #define GWIN_CONSOLE_ESCSEQ FALSE +// #define GWIN_CONSOLE_USE_BASESTREAM FALSE +// #define GWIN_CONSOLE_USE_FLOAT FALSE +//#define GWIN_NEED_GRAPH FALSE +//#define GWIN_NEED_GL3D FALSE + +//#define GWIN_NEED_WIDGET FALSE +//#define GWIN_FOCUS_HIGHLIGHT_WIDTH 1 +// #define GWIN_NEED_LABEL FALSE +// #define GWIN_LABEL_ATTRIBUTE FALSE +// #define GWIN_NEED_BUTTON FALSE +// #define GWIN_BUTTON_LAZY_RELEASE FALSE +// #define GWIN_NEED_SLIDER FALSE +// #define GWIN_SLIDER_NOSNAP FALSE +// #define GWIN_SLIDER_DEAD_BAND 5 +// #define GWIN_SLIDER_TOGGLE_INC 20 +// #define GWIN_NEED_CHECKBOX FALSE +// #define GWIN_NEED_IMAGE FALSE +// #define GWIN_NEED_IMAGE_ANIMATION FALSE +// #define GWIN_NEED_RADIO FALSE +// #define GWIN_NEED_LIST FALSE +// #define GWIN_NEED_LIST_IMAGES FALSE +// #define GWIN_NEED_PROGRESSBAR FALSE +// #define GWIN_PROGRESSBAR_AUTO FALSE +// #define GWIN_NEED_KEYBOARD FALSE +// #define GWIN_KEYBOARD_DEFAULT_LAYOUT VirtualKeyboard_English1 +// #define GWIN_NEED_KEYBOARD_ENGLISH1 TRUE +// #define GWIN_NEED_TEXTEDIT FALSE +// #define GWIN_FLAT_STYLING FALSE +// #define GWIN_WIDGET_TAGS FALSE + +//#define GWIN_NEED_CONTAINERS FALSE +// #define GWIN_NEED_CONTAINER FALSE +// #define GWIN_NEED_FRAME FALSE +// #define GWIN_NEED_TABSET FALSE +// #define GWIN_TABSET_TABHEIGHT 18 + + +/////////////////////////////////////////////////////////////////////////// +// GEVENT // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GEVENT TRUE + +//#define GEVENT_ASSERT_NO_RESOURCE FALSE +//#define GEVENT_MAXIMUM_SIZE 32 +//#define GEVENT_MAX_SOURCE_LISTENERS 32 + + +/////////////////////////////////////////////////////////////////////////// +// GTIMER // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GTIMER FALSE + +//#define GTIMER_THREAD_PRIORITY HIGH_PRIORITY +//#define GTIMER_THREAD_WORKAREA_SIZE 2048 + + +/////////////////////////////////////////////////////////////////////////// +// GQUEUE // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GQUEUE FALSE + +//#define GQUEUE_NEED_ASYNC FALSE +//#define GQUEUE_NEED_GSYNC FALSE +//#define GQUEUE_NEED_FSYNC FALSE +//#define GQUEUE_NEED_BUFFERS FALSE + +/////////////////////////////////////////////////////////////////////////// +// GINPUT // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GINPUT FALSE + +//#define GINPUT_NEED_MOUSE FALSE +// #define GINPUT_TOUCH_STARTRAW FALSE +// #define GINPUT_TOUCH_NOTOUCH FALSE +// #define GINPUT_TOUCH_NOCALIBRATE FALSE +// #define GINPUT_TOUCH_NOCALIBRATE_GUI FALSE +// #define GINPUT_MOUSE_POLL_PERIOD 25 +// #define GINPUT_MOUSE_CLICK_TIME 300 +// #define GINPUT_TOUCH_CXTCLICK_TIME 700 +// #define GINPUT_TOUCH_USER_CALIBRATION_LOAD FALSE +// #define GINPUT_TOUCH_USER_CALIBRATION_SAVE FALSE +// #define GMOUSE_DRIVER_LIST GMOUSEVMT_Win32, GMOUSEVMT_Win32 +//#define GINPUT_NEED_KEYBOARD FALSE +// #define GINPUT_KEYBOARD_POLL_PERIOD 200 +// #define GKEYBOARD_DRIVER_LIST GKEYBOARDVMT_Win32, GKEYBOARDVMT_Win32 +// #define GKEYBOARD_LAYOUT_OFF FALSE +// #define GKEYBOARD_LAYOUT_SCANCODE2_US FALSE +//#define GINPUT_NEED_TOGGLE FALSE +//#define GINPUT_NEED_DIAL FALSE + + +/////////////////////////////////////////////////////////////////////////// +// GFILE // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GFILE FALSE + +//#define GFILE_NEED_PRINTG FALSE +//#define GFILE_NEED_SCANG FALSE +//#define GFILE_NEED_STRINGS FALSE +//#define GFILE_NEED_FILELISTS FALSE +//#define GFILE_NEED_STDIO FALSE +//#define GFILE_NEED_NOAUTOMOUNT FALSE +//#define GFILE_NEED_NOAUTOSYNC FALSE + +//#define GFILE_NEED_MEMFS FALSE +//#define GFILE_NEED_ROMFS FALSE +//#define GFILE_NEED_RAMFS FALSE +//#define GFILE_NEED_FATFS FALSE +//#define GFILE_NEED_NATIVEFS FALSE +//#define GFILE_NEED_CHBIOSFS FALSE + +//#define GFILE_ALLOW_FLOATS FALSE +//#define GFILE_ALLOW_DEVICESPECIFIC FALSE +//#define GFILE_MAX_GFILES 3 + +/////////////////////////////////////////////////////////////////////////// +// GADC // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GADC FALSE + +//#define GADC_MAX_LOWSPEED_DEVICES 4 + + +/////////////////////////////////////////////////////////////////////////// +// GAUDIO // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GAUDIO FALSE +// There seems to be a bug in the ugfx code, the wrong define is used +// So define it in order to avoid warnings +#define GFX_USE_GAUDIN GFX_USE_GAUDIO +// #define GAUDIO_NEED_PLAY FALSE +// #define GAUDIO_NEED_RECORD FALSE + + +/////////////////////////////////////////////////////////////////////////// +// GMISC // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GMISC TRUE + +//#define GMISC_NEED_ARRAYOPS FALSE +//#define GMISC_NEED_FASTTRIG FALSE +//#define GMISC_NEED_FIXEDTRIG FALSE +//#define GMISC_NEED_INVSQRT FALSE +// #define GMISC_INVSQRT_MIXED_ENDIAN FALSE +// #define GMISC_INVSQRT_REAL_SLOW FALSE +#define GMISC_NEED_MATRIXFLOAT2D TRUE +#define GMISC_NEED_MATRIXFIXED2D FALSE + +#endif /* _GFXCONF_H */ diff --git a/keyboards/infinity_ergodox/lcd_backlight_hal.c b/keyboards/infinity_ergodox/lcd_backlight_hal.c new file mode 100644 index 000000000..05fc810b4 --- /dev/null +++ b/keyboards/infinity_ergodox/lcd_backlight_hal.c @@ -0,0 +1,84 @@ +/* +Copyright 2016 Fred Sundvik +Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include "lcd_backlight.h" +#include "hal.h" + +#define RED_PIN 1 +#define GREEN_PIN 2 +#define BLUE_PIN 3 +#define CHANNEL_RED FTM0->CHANNEL[0] +#define CHANNEL_GREEN FTM0->CHANNEL[1] +#define CHANNEL_BLUE FTM0->CHANNEL[2] + +#define RGB_PORT PORTC +#define RGB_PORT_GPIO GPIOC + +// Base FTM clock selection (72 MHz system clock) +// @ 0xFFFF period, 72 MHz / (0xFFFF * 2) = Actual period +// Higher pre-scalar will use the most power (also look the best) +// Pre-scalar calculations +// 0 - 72 MHz -> 549 Hz +// 1 - 36 MHz -> 275 Hz +// 2 - 18 MHz -> 137 Hz +// 3 - 9 MHz -> 69 Hz (Slightly visible flicker) +// 4 - 4 500 kHz -> 34 Hz (Visible flickering) +// 5 - 2 250 kHz -> 17 Hz +// 6 - 1 125 kHz -> 9 Hz +// 7 - 562 500 Hz -> 4 Hz +// Using a higher pre-scalar without flicker is possible but FTM0_MOD will need to be reduced +// Which will reduce the brightness range +#define PRESCALAR_DEFINE 0 + +void lcd_backlight_hal_init(void) { + // Setup Backlight + SIM->SCGC6 |= SIM_SCGC6_FTM0; + FTM0->CNT = 0; // Reset counter + + // PWM Period + // 16-bit maximum + FTM0->MOD = 0xFFFF; + + // Set FTM to PWM output - Edge Aligned, Low-true pulses +#define CNSC_MODE FTM_SC_CPWMS | FTM_SC_PS(4) | FTM_SC_CLKS(0) + CHANNEL_RED.CnSC = CNSC_MODE; + CHANNEL_GREEN.CnSC = CNSC_MODE; + CHANNEL_BLUE.CnSC = CNSC_MODE; + + // System clock, /w prescalar setting + FTM0->SC = FTM_SC_CLKS(1) | FTM_SC_PS(PRESCALAR_DEFINE); + + CHANNEL_RED.CnV = 0; + CHANNEL_GREEN.CnV = 0; + CHANNEL_BLUE.CnV = 0; + + RGB_PORT_GPIO->PDDR |= (1 << RED_PIN); + RGB_PORT_GPIO->PDDR |= (1 << GREEN_PIN); + RGB_PORT_GPIO->PDDR |= (1 << BLUE_PIN); + +#define RGB_MODE PORTx_PCRn_SRE | PORTx_PCRn_DSE | PORTx_PCRn_MUX(4) + RGB_PORT->PCR[RED_PIN] = RGB_MODE; + RGB_PORT->PCR[GREEN_PIN] = RGB_MODE; + RGB_PORT->PCR[BLUE_PIN] = RGB_MODE; +} + +void lcd_backlight_hal_color(uint16_t r, uint16_t g, uint16_t b) { + CHANNEL_RED.CnV = r; + CHANNEL_GREEN.CnV = g; + CHANNEL_BLUE.CnV = b; +} + diff --git a/keyboards/infinity_ergodox/visualizer_user.c b/keyboards/infinity_ergodox/visualizer_user.c new file mode 100644 index 000000000..c0d335ce6 --- /dev/null +++ b/keyboards/infinity_ergodox/visualizer_user.c @@ -0,0 +1,168 @@ +/* +Copyright 2016 Fred Sundvik + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +// Currently we are assuming that both the backlight and LCD are enabled +// But it's entirely possible to write a custom visualizer that use only +// one of them +#ifndef LCD_BACKLIGHT_ENABLE +#error This visualizer needs that LCD backlight is enabled +#endif + +#ifndef LCD_ENABLE +#error This visualizer needs that LCD is enabled +#endif + +#include "visualizer.h" +#include "led_test.h" + +static const char* welcome_text[] = {"TMK", "Infinity Ergodox"}; + +// Just an example how to write custom keyframe functions, we could have moved +// all this into the init function +bool display_welcome(keyframe_animation_t* animation, visualizer_state_t* state) { + (void)animation; + // Read the uGFX documentation for information how to use the displays + // http://wiki.ugfx.org/index.php/Main_Page + gdispClear(White); + // You can use static variables for things that can't be found in the animation + // or state structs + gdispDrawString(0, 3, welcome_text[0], state->font_dejavusansbold12, Black); + gdispDrawString(0, 15, welcome_text[1], state->font_dejavusansbold12, Black); + // Always remember to flush the display + gdispFlush(); + // you could set the backlight color as well, but we won't do it here, since + // it's part of the following animation + // lcd_backlight_color(hue, saturation, intensity); + // We don't need constant updates, just drawing the screen once is enough + return false; +} + +// Feel free to modify the animations below, or even add new ones if needed + +// Don't worry, if the startup animation is long, you can use the keyboard like normal +// during that time +static keyframe_animation_t startup_animation = { + .num_frames = 4, + .loop = false, + .frame_lengths = {0, gfxMillisecondsToTicks(1000), gfxMillisecondsToTicks(5000), 0}, + .frame_functions = { + display_welcome, + keyframe_animate_backlight_color, + keyframe_no_operation, + enable_visualization + }, +}; + +// The color animation animates the LCD color when you change layers +static keyframe_animation_t color_animation = { + .num_frames = 2, + .loop = false, + // Note that there's a 200 ms no-operation frame, + // this prevents the color from changing when activating the layer + // momentarily + .frame_lengths = {gfxMillisecondsToTicks(200), gfxMillisecondsToTicks(500)}, + .frame_functions = {keyframe_no_operation, keyframe_animate_backlight_color}, +}; + +// The LCD animation alternates between the layer name display and a +// bitmap that displays all active layers +static keyframe_animation_t lcd_animation = { + .num_frames = 2, + .loop = true, + .frame_lengths = {gfxMillisecondsToTicks(2000), gfxMillisecondsToTicks(2000)}, + .frame_functions = {keyframe_display_layer_text, keyframe_display_layer_bitmap}, +}; + +static keyframe_animation_t suspend_animation = { + .num_frames = 3, + .loop = false, + .frame_lengths = {0, gfxMillisecondsToTicks(1000), 0}, + .frame_functions = { + keyframe_display_layer_text, + keyframe_animate_backlight_color, + keyframe_disable_lcd_and_backlight, + }, +}; + +static keyframe_animation_t resume_animation = { + .num_frames = 5, + .loop = false, + .frame_lengths = {0, 0, gfxMillisecondsToTicks(1000), gfxMillisecondsToTicks(5000), 0}, + .frame_functions = { + keyframe_enable_lcd_and_backlight, + display_welcome, + keyframe_animate_backlight_color, + keyframe_no_operation, + enable_visualization, + }, +}; + +void initialize_user_visualizer(visualizer_state_t* state) { + // The brightness will be dynamically adjustable in the future + // But for now, change it here. + lcd_backlight_brightness(0x50); + state->current_lcd_color = LCD_COLOR(0x00, 0x00, 0xFF); + state->target_lcd_color = LCD_COLOR(0x10, 0xFF, 0xFF); + start_keyframe_animation(&startup_animation); + start_keyframe_animation(&led_test_animation); +} + +void update_user_visualizer_state(visualizer_state_t* state) { + // Add more tests, change the colors and layer texts here + // Usually you want to check the high bits (higher layers first) + // because that's the order layers are processed for keypresses + // You can for check for example: + // state->status.layer + // state->status.default_layer + // state->status.leds (see led.h for available statuses) + if (state->status.layer & 0x8) { + state->target_lcd_color = LCD_COLOR(0xC0, 0xB0, 0xFF); + state->layer_text = "Numpad"; + } + else if (state->status.layer & 0x4) { + state->target_lcd_color = LCD_COLOR(0, 0xB0, 0xFF); + state->layer_text = "KBD functions"; + } + else if (state->status.layer & 0x2) { + state->target_lcd_color = LCD_COLOR(0x80, 0xB0, 0xFF); + state->layer_text = "Function keys"; + } + else { + state->target_lcd_color = LCD_COLOR(0x40, 0xB0, 0xFF); + state->layer_text = "Default"; + } + // You can also stop existing animations, and start your custom ones here + // remember that you should normally have only one animation for the LCD + // and one for the background. But you can also combine them if you want. + start_keyframe_animation(&lcd_animation); + start_keyframe_animation(&color_animation); +} + +void user_visualizer_suspend(visualizer_state_t* state) { + state->layer_text = "Suspending..."; + uint8_t hue = LCD_HUE(state->current_lcd_color); + uint8_t sat = LCD_SAT(state->current_lcd_color); + state->target_lcd_color = LCD_COLOR(hue, sat, 0); + start_keyframe_animation(&suspend_animation); +} + +void user_visualizer_resume(visualizer_state_t* state) { + state->current_lcd_color = LCD_COLOR(0x00, 0x00, 0x00); + state->target_lcd_color = LCD_COLOR(0x10, 0xFF, 0xFF); + start_keyframe_animation(&resume_animation); + start_keyframe_animation(&led_test_animation); +} diff --git a/quantum/visualizer/visualizer.c b/quantum/visualizer/visualizer.c index c24073405..abca22d85 100644 --- a/quantum/visualizer/visualizer.c +++ b/quantum/visualizer/visualizer.c @@ -29,9 +29,7 @@ SOFTWARE. #include "ch.h" #endif -#ifdef LCD_ENABLE #include "gfx.h" -#endif #ifdef LCD_BACKLIGHT_ENABLE #include "lcd_backlight.h" diff --git a/quantum/visualizer/visualizer.h b/quantum/visualizer/visualizer.h index 45cfa9aa9..53e250725 100644 --- a/quantum/visualizer/visualizer.h +++ b/quantum/visualizer/visualizer.h @@ -28,9 +28,7 @@ SOFTWARE. #include #include -#ifdef LCD_ENABLE #include "gfx.h" -#endif #ifdef LCD_BACKLIGHT_ENABLE #include "lcd_backlight.h" diff --git a/quantum/visualizer/visualizer.mk b/quantum/visualizer/visualizer.mk index 56525ffd9..b5dfad8e1 100644 --- a/quantum/visualizer/visualizer.mk +++ b/quantum/visualizer/visualizer.mk @@ -20,14 +20,14 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -GFXLIB = $(VISUALIZER_DIR)/ugfx SRC += $(VISUALIZER_DIR)/visualizer.c -UINCDIR += $(GFXINC) $(VISUALIZER_DIR) +EXTRAINCDIRS += $(GFXINC) $(VISUALIZER_DIR) +GFXLIB = $(LIB_PATH)/ugfx +VPATH += $(VISUALIZER_PATH) ifdef LCD_ENABLE -UDEFS += -DLCD_ENABLE +OPT_DEFS += -DLCD_ENABLE ULIBS += -lm -USE_UGFX = yes endif ifdef LCD_BACKLIGHT_ENABLE @@ -35,21 +35,21 @@ SRC += $(VISUALIZER_DIR)/lcd_backlight.c ifndef EMULATOR SRC += lcd_backlight_hal.c endif -UDEFS += -DLCD_BACKLIGHT_ENABLE +OPT_DEFS += -DLCD_BACKLIGHT_ENABLE endif ifdef LED_ENABLE SRC += $(VISUALIZER_DIR)/led_test.c UDEFS += -DLED_ENABLE -USE_UGFX = yes endif -ifdef USE_UGFX include $(GFXLIB)/gfx.mk -SRC += $(GFXSRC) -UDEFS += $(patsubst %,-D%,$(patsubst -D%,%,$(GFXDEFS))) -ULIBS += $(patsubst %,-l%,$(patsubst -l%,%,$(GFXLIBS))) -endif +#SERIAL_SRC = $(wildcard $(SERIAL_PATH)/protocol/*.c) +#SERIAL_SRC += $(wildcard $(SERIAL_PATH)/system/*.c) +#SRC += $(patsubst $(QUANTUM_PATH)/%,%,$(SERIAL_SRC)) +#SRC += $(GFXSRC) +OPT_DEFS += $(patsubst %,-D%,$(patsubst -D%,%,$(GFXDEFS))) +#ULIBS += $(patsubst %,-l%,$(patsubst -l%,%,$(GFXLIBS))) ifndef VISUALIZER_USER VISUALIZER_USER = visualizer_user.c -- cgit v1.2.3 From 5ed673d82d6cf91aa966a3e903ac37adb519f12c Mon Sep 17 00:00:00 2001 From: Josh Colbeck Date: Wed, 6 Jul 2016 20:24:57 -0500 Subject: Changed layer switching to momentary corrected macro --- keyboards/ergodox_ez/keymaps/josh/keymap.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/josh/keymap.c b/keyboards/ergodox_ez/keymaps/josh/keymap.c index 4ad229182..de5664a25 100644 --- a/keyboards/ergodox_ez/keymaps/josh/keymap.c +++ b/keyboards/ergodox_ez/keymaps/josh/keymap.c @@ -9,7 +9,7 @@ //macros #define CTL_SFT_T 100 #define CTL_SFT_G 101 -#define CTL_ALT_T 102 +#define CTL_ALT_H 102 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer @@ -40,8 +40,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, ALT_T(KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, ALL_T(KC_NO), KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_FN1, - KC_LGUI, KC_GRV, M(CTL_ALT_T),M(CTL_SFT_G),LALT(KC_LSFT), + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(SYMB), + KC_LGUI, KC_GRV, M(CTL_ALT_H),M(CTL_SFT_G),LALT(KC_LSFT), CTL_T(KC_APP), KC_LALT, KC_HOME, KC_SPC,KC_BSPC,KC_END, @@ -49,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { M(CTL_SFT_T),KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, MEH_T(KC_NO),KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),CTL_T(KC_QUOT), - KC_FN1, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, + MO(SYMB), KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, LALT(KC_LSFT),KC_LEFT,KC_DOWN,KC_UP, KC_RIGHT, KC_LALT, KC_CAPS, KC_PGUP, @@ -165,9 +165,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } return MACRO(U(LCTL), U(LSFT), END); break; - case CTL_ALT_T: + case CTL_ALT_H: if (record->event.pressed) { - return MACRO(D(LCTL), D(LALT), T(T), END); + return MACRO(D(LCTL), D(LALT), T(H), END); } return MACRO(U(LCTL), U(LALT), END); break; -- cgit v1.2.3 From a4bf46f9b1d0a0be0cecb2cd0f0d941aa7c71bd3 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 6 Jul 2016 22:48:19 -0400 Subject: default keymap, reset sorted out for now, added serial to makefile --- keyboards/atreus/Makefile | 1 + keyboards/lets_split/Makefile | 3 +- keyboards/lets_split/config.h | 6 +- keyboards/lets_split/keymaps/default/keymap.c | 200 ++++++++++++++++++++++++-- keyboards/lets_split/lets_split.c | 26 +--- keyboards/lets_split/lets_split.h | 8 +- quantum/quantum.c | 2 +- tmk_core/common/avr/bootloader.c | 54 ++++--- 8 files changed, 241 insertions(+), 59 deletions(-) (limited to 'keyboards') diff --git a/keyboards/atreus/Makefile b/keyboards/atreus/Makefile index 72b694faa..95ee1d4d7 100644 --- a/keyboards/atreus/Makefile +++ b/keyboards/atreus/Makefile @@ -5,6 +5,7 @@ ifdef TEENSY2 ATRUES_UPLOAD_COMMAND = teensy_loader_cli -w -mmcu=$(MCU) $(TARGET).hex else OPT_DEFS += -DATREUS_ASTAR + OPT_DEFS += -DCATERINA_BOOTLOADER ATRUES_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \ avrdude -p $(MCU) -c avr109 -U flash:w:$(TARGET).hex -P $(USB) endif diff --git a/keyboards/lets_split/Makefile b/keyboards/lets_split/Makefile index d8e283896..b9f07636b 100644 --- a/keyboards/lets_split/Makefile +++ b/keyboards/lets_split/Makefile @@ -1,6 +1,7 @@ SRC += matrix.c \ i2c.c \ - split_util.c + split_util.c \ + serial.c # MCU name #MCU = at90usb1287 diff --git a/keyboards/lets_split/config.h b/keyboards/lets_split/config.h index 5937ca44e..6f90997ab 100644 --- a/keyboards/lets_split/config.h +++ b/keyboards/lets_split/config.h @@ -37,7 +37,9 @@ along with this program. If not, see . #define MATRIX_ROW_PINS { B5, B4, E6, D7 } #define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3 } -#define USE_I2C +#define CATERINA_BOOTLOADER + +// #define USE_I2C // #define EE_HANDS @@ -51,7 +53,7 @@ along with this program. If not, see . //#define MATRIX_HAS_GHOST /* number of backlight levels */ -#define BACKLIGHT_LEVELS 3 +// #define BACKLIGHT_LEVELS 3 /* Set 0 if debouncing isn't needed */ #define DEBOUNCING_DELAY 5 diff --git a/keyboards/lets_split/keymaps/default/keymap.c b/keyboards/lets_split/keymaps/default/keymap.c index 01e3593c2..0d2d94b67 100644 --- a/keyboards/lets_split/keymaps/default/keymap.c +++ b/keyboards/lets_split/keymaps/default/keymap.c @@ -1,11 +1,27 @@ #include "lets_split.h" #include "action_layer.h" +#include "eeconfig.h" -#define BASE 0 +extern keymap_config_t keymap_config; -enum preonic_keycodes { - KC_IDK = SAFE_RANGE, - PM_RESET +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _ADJUST 16 + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, + RAISE, + ADJUST, }; // Fillers to make layering more clear @@ -14,29 +30,185 @@ enum preonic_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[BASE] = KEYMAP( - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, \ - KC_IDK, KC_LCTL, KC_LALT, KC_LGUI, PM_RESET,KC_SPC, KC_SPC, PM_RESET,KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = KEYMAP( \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ + ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = KEYMAP( \ + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \ + KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ + ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = KEYMAP( \ + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \ + KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \ + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , \ + ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | | \ | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = KEYMAP( \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \ + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = KEYMAP( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \ + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ +), + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = KEYMAP( \ + _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ + _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ ) + }; +#ifdef AUDIO_ENABLE +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +#endif + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case KC_IDK: + case QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_qwerty, false, 0); + #endif + persistant_default_layer_set(1UL<<_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_colemak, false, 0); + #endif + persistant_default_layer_set(1UL<<_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_dvorak, false, 0); + #endif + persistant_default_layer_set(1UL<<_DVORAK); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: if (record->event.pressed) { - SEND_STRING("IDK. "); + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); } return false; break; - case PM_RESET: + case ADJUST: if (record->event.pressed) { - promicro_bootloader_jmp(true); + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); } return false; break; } return true; -}; \ No newline at end of file +} \ No newline at end of file diff --git a/keyboards/lets_split/lets_split.c b/keyboards/lets_split/lets_split.c index 1859dc20a..574c116a7 100644 --- a/keyboards/lets_split/lets_split.c +++ b/keyboards/lets_split/lets_split.c @@ -23,26 +23,8 @@ void matrix_init_kb(void) { matrix_init_user(); }; -void promicro_bootloader_jmp(bool program) { - - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_goodbye, false, 0); - _delay_ms(150); - stop_all_notes(); - #endif - - uint16_t *const bootKeyPtr = (uint16_t *)0x0800; - - // Value used by Caterina bootloader use to determine whether to run the - // sketch or the bootloader programmer. - uint16_t bootKey = program ? 0x7777 : 0; - - *bootKeyPtr = bootKey; - - // setup watchdog timeout - wdt_enable(WDTO_60MS); - - while(1) {} // wait for watchdog timer to trigger +void shutdown_user(void) { + PLAY_NOTE_ARRAY(tone_goodbye, false, 0); + _delay_ms(150); + stop_all_notes(); } - - diff --git a/keyboards/lets_split/lets_split.h b/keyboards/lets_split/lets_split.h index e59aed592..fe7ae0767 100644 --- a/keyboards/lets_split/lets_split.h +++ b/keyboards/lets_split/lets_split.h @@ -1,5 +1,7 @@ +#ifndef LETS_SPLIT_H +#define LETS_SPLIT_H + #include "quantum.h" -#include void promicro_bootloader_jmp(bool program); @@ -18,4 +20,6 @@ void promicro_bootloader_jmp(bool program); { k50, k51, k52, k53, k54, k55 }, \ { k60, k61, k62, k63, k64, k65 }, \ { k70, k71, k72, k73, k74, k75 } \ - } \ No newline at end of file + } + +#endif \ No newline at end of file diff --git a/quantum/quantum.c b/quantum/quantum.c index d59bd5a3f..d8e43a465 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -89,7 +89,7 @@ bool process_record_quantum(keyrecord_t *record) { shutdown_user(); #endif wait_ms(250); - #ifdef ATREUS_ASTAR + #ifdef CATERINA_BOOTLOADER *(uint16_t *)0x0800 = 0x7777; // these two are a-star-specific #endif bootloader_jump(); diff --git a/tmk_core/common/avr/bootloader.c b/tmk_core/common/avr/bootloader.c index 7c744e8c7..fb9bf2d1c 100644 --- a/tmk_core/common/avr/bootloader.c +++ b/tmk_core/common/avr/bootloader.c @@ -73,26 +73,46 @@ uint32_t reset_key __attribute__ ((section (".noinit"))); /* initialize MCU status by watchdog reset */ void bootloader_jump(void) { -#ifdef PROTOCOL_LUFA - USB_Disable(); - cli(); - _delay_ms(2000); -#endif + #ifndef CATERINA_BOOTLOADER -#ifdef PROTOCOL_PJRC - cli(); - UDCON = 1; - USBCON = (1< + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef _GDISP_LLD_BOARD_H +#define _GDISP_LLD_BOARD_H + +static const I2CConfig i2ccfg = { + 400000 // clock speed (Hz); 400kHz max for IS31 +}; + +#define GDISP_SCREEN_WIDTH 7 +#define GDISP_SCREEN_HEIGHT 7 + +static const uint8_t led_mask[] = { + 0xFF, 0x00, /* C1-1 -> C1-16 */ + 0xFF, 0x00, /* C2-1 -> C2-16 */ + 0xFF, 0x00, /* C3-1 -> C3-16 */ + 0xFF, 0x00, /* C4-1 -> C4-16 */ + 0x3F, 0x00, /* C5-1 -> C5-16 */ + 0x00, 0x00, /* C6-1 -> C6-16 */ + 0x00, 0x00, /* C7-1 -> C7-16 */ + 0x00, 0x00, /* C8-1 -> C8-16 */ + 0x00, 0x00, /* C9-1 -> C9-16 */ +}; + +// The address of the LED +#define LA(c, r) (c + r * 16 ) +// Need to be an address that is not mapped, but inside the range of the controller matrix +#define NA LA(8, 8) + +// The numbers in the comments are the led numbers DXX on the PCB +// The mapping is taken from the schematic of left hand side +static const uint8_t led_mapping[GDISP_SCREEN_HEIGHT][GDISP_SCREEN_WIDTH] = { +// 45 44 43 42 41 40 39 + { LA(1, 1), LA(1, 0), LA(0, 4), LA(0, 3), LA(0, 2), LA(0, 1), LA(0, 0)}, +// 52 51 50 49 48 47 46 + { LA(2, 3), LA(2, 2), LA(2, 1), LA(2, 0), LA(1, 4), LA(1, 3), LA(1, 2) }, +// 58 57 56 55 54 53 N/A + { LA(3, 4), LA(3, 3), LA(3, 2), LA(3, 1), LA(3, 0), LA(2, 4), NA }, +// 67 66 65 64 63 62 61 + { LA(5, 3), LA(5, 2), LA(5, 1), LA(5, 0), LA(4, 4), LA(4, 3), LA(4, 2) }, +// 76 75 74 73 72 60 59 + { LA(7, 3), LA(7, 2), LA(7, 1), LA(7, 0), LA(6, 3), LA(4, 1), LA(4, 0) }, +// N/A N/A N/A N/A N/A N/A 68 + { NA, NA, NA, NA, NA, NA, LA(5, 4) }, +// N/A N/A N/A N/A 71 70 69 + { NA, NA, NA, NA, LA(6, 2), LA(6, 1), LA(6, 0) }, +}; + + +#define IS31_ADDR_DEFAULT 0x74 // AD connected to GND +#define IS31_TIMEOUT 5000 + +static GFXINLINE void init_board(GDisplay *g) { + (void) g; + /* I2C pins */ + palSetPadMode(GPIOB, 0, PAL_MODE_ALTERNATIVE_2); // PTB0/I2C0/SCL + palSetPadMode(GPIOB, 1, PAL_MODE_ALTERNATIVE_2); // PTB1/I2C0/SDA + palSetPadMode(GPIOB, 16, PAL_MODE_OUTPUT_PUSHPULL); + palClearPad(GPIOB, 16); + /* start I2C */ + i2cStart(&I2CD1, &i2ccfg); + // try high drive (from kiibohd) + I2CD1.i2c->C2 |= I2Cx_C2_HDRS; + // try glitch fixing (from kiibohd) + I2CD1.i2c->FLT = 4; +} + +static GFXINLINE void post_init_board(GDisplay *g) { + (void) g; +} + +static GFXINLINE const uint8_t* get_led_mask(GDisplay* g) { + (void) g; + return led_mask; +} + +static GFXINLINE uint8_t get_led_address(GDisplay* g, uint16_t x, uint16_t y) +{ + (void) g; + return led_mapping[y][x]; +} + +static GFXINLINE void set_hardware_shutdown(GDisplay* g, bool shutdown) { + (void) g; + if(!shutdown) { + palSetPad(GPIOB, 16); + } + else { + palClearPad(GPIOB, 16); + } +} + +static GFXINLINE void write_data(GDisplay *g, uint8_t* data, uint16_t length) { + (void) g; + i2cMasterTransmitTimeout(&I2CD1, IS31_ADDR_DEFAULT, data, length, 0, 0, US2ST(IS31_TIMEOUT)); +} + +#endif /* _GDISP_LLD_BOARD_H */ diff --git a/keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/driver.mk b/keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/driver.mk new file mode 100644 index 000000000..f32d0d868 --- /dev/null +++ b/keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/driver.mk @@ -0,0 +1,2 @@ +GFXINC += drivers/gdisp/IS31FL3731C +GFXSRC += drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c diff --git a/keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c b/keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c new file mode 100644 index 000000000..1d21f0c49 --- /dev/null +++ b/keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c @@ -0,0 +1,333 @@ +/* +Copyright 2016 Fred Sundvik + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "gfx.h" + +#if GFX_USE_GDISP + +#define GDISP_DRIVER_VMT GDISPVMT_IS31FL3731C_ERGODOX +#include "drivers/gdisp/IS31FL3731C/gdisp_lld_config.h" +#include "src/gdisp/gdisp_driver.h" + +#include "board_IS31FL3731C.h" + +/*===========================================================================*/ +/* Driver local definitions. */ +/*===========================================================================*/ + +#ifndef GDISP_SCREEN_HEIGHT + #define GDISP_SCREEN_HEIGHT 9 +#endif +#ifndef GDISP_SCREEN_WIDTH + #define GDISP_SCREEN_WIDTH 16 +#endif +#ifndef GDISP_INITIAL_CONTRAST + #define GDISP_INITIAL_CONTRAST 0 +#endif +#ifndef GDISP_INITIAL_BACKLIGHT + #define GDISP_INITIAL_BACKLIGHT 100 +#endif + +#define GDISP_FLG_NEEDFLUSH (GDISP_FLG_DRIVER<<0) + +#define IS31_ADDR_DEFAULT 0x74 + +#define IS31_REG_CONFIG 0x00 +// bits in reg +#define IS31_REG_CONFIG_PICTUREMODE 0x00 +#define IS31_REG_CONFIG_AUTOPLAYMODE 0x08 +#define IS31_REG_CONFIG_AUDIOPLAYMODE 0x18 +// D2:D0 bits are starting frame for autoplay mode + +#define IS31_REG_PICTDISP 0x01 // D2:D0 frame select for picture mode + +#define IS31_REG_AUTOPLAYCTRL1 0x02 +// D6:D4 number of loops (000=infty) +// D2:D0 number of frames to be used + +#define IS31_REG_AUTOPLAYCTRL2 0x03 // D5:D0 delay time (*11ms) + +#define IS31_REG_DISPLAYOPT 0x05 +#define IS31_REG_DISPLAYOPT_INTENSITY_SAME 0x20 // same intensity for all frames +#define IS31_REG_DISPLAYOPT_BLINK_ENABLE 0x8 +// D2:D0 bits blink period time (*0.27s) + +#define IS31_REG_AUDIOSYNC 0x06 +#define IS31_REG_AUDIOSYNC_ENABLE 0x1 + +#define IS31_REG_FRAMESTATE 0x07 + +#define IS31_REG_BREATHCTRL1 0x08 +// D6:D4 fade out time (26ms*2^i) +// D2:D0 fade in time (26ms*2^i) + +#define IS31_REG_BREATHCTRL2 0x09 +#define IS31_REG_BREATHCTRL2_ENABLE 0x10 +// D2:D0 extinguish time (3.5ms*2^i) + +#define IS31_REG_SHUTDOWN 0x0A +#define IS31_REG_SHUTDOWN_OFF 0x0 +#define IS31_REG_SHUTDOWN_ON 0x1 + +#define IS31_REG_AGCCTRL 0x0B +#define IS31_REG_ADCRATE 0x0C + +#define IS31_COMMANDREGISTER 0xFD +#define IS31_FUNCTIONREG 0x0B // helpfully called 'page nine' +#define IS31_FUNCTIONREG_SIZE 0xD + +#define IS31_FRAME_SIZE 0xB4 + +#define IS31_PWM_REG 0x24 +#define IS31_PWM_SIZE 0x90 + +#define IS31_LED_MASK_SIZE 0x12 +#define IS31_SCREEN_WIDTH 16 + +#define IS31 + +//Generated by http://jared.geek.nz/2013/feb/linear-led-pwm +const unsigned char cie[256] = { + 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, + 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, + 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, + 7, 8, 8, 8, 8, 9, 9, 9, 10, 10, + 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, + 13, 14, 14, 15, 15, 15, 16, 16, 17, 17, + 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, + 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, + 28, 28, 29, 29, 30, 31, 31, 32, 32, 33, + 34, 34, 35, 36, 37, 37, 38, 39, 39, 40, + 41, 42, 43, 43, 44, 45, 46, 47, 47, 48, + 49, 50, 51, 52, 53, 54, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 70, 71, 72, 73, 74, 75, 76, 77, 79, + 80, 81, 82, 83, 85, 86, 87, 88, 90, 91, + 92, 94, 95, 96, 98, 99, 100, 102, 103, 105, + 106, 108, 109, 110, 112, 113, 115, 116, 118, 120, + 121, 123, 124, 126, 128, 129, 131, 132, 134, 136, + 138, 139, 141, 143, 145, 146, 148, 150, 152, 154, + 155, 157, 159, 161, 163, 165, 167, 169, 171, 173, + 175, 177, 179, 181, 183, 185, 187, 189, 191, 193, + 196, 198, 200, 202, 204, 207, 209, 211, 214, 216, + 218, 220, 223, 225, 228, 230, 232, 235, 237, 240, + 242, 245, 247, 250, 252, 255, +}; + + +/*===========================================================================*/ +/* Driver local functions. */ +/*===========================================================================*/ + +typedef struct{ + uint8_t write_buffer_offset; + uint8_t write_buffer[IS31_FRAME_SIZE]; + uint8_t frame_buffer[GDISP_SCREEN_HEIGHT * GDISP_SCREEN_WIDTH]; + uint8_t page; +}__attribute__((__packed__)) PrivData; + +// Some common routines and macros +#define PRIV(g) ((PrivData*)g->priv) + +/*===========================================================================*/ +/* Driver exported functions. */ +/*===========================================================================*/ + +static GFXINLINE void write_page(GDisplay* g, uint8_t page) { + uint8_t tx[2] __attribute__((aligned(2))); + tx[0] = IS31_COMMANDREGISTER; + tx[1] = page; + write_data(g, tx, 2); +} + +static GFXINLINE void write_register(GDisplay* g, uint8_t page, uint8_t reg, uint8_t data) { + uint8_t tx[2] __attribute__((aligned(2))); + tx[0] = reg; + tx[1] = data; + write_page(g, page); + write_data(g, tx, 2); +} + +static GFXINLINE void write_ram(GDisplay *g, uint8_t page, uint16_t offset, uint16_t length) { + PRIV(g)->write_buffer_offset = offset; + write_page(g, page); + write_data(g, (uint8_t*)PRIV(g), length + 1); +} + +LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { + // The private area is the display surface. + g->priv = gfxAlloc(sizeof(PrivData)); + __builtin_memset(PRIV(g), 0, sizeof(PrivData)); + PRIV(g)->page = 0; + + // Initialise the board interface + init_board(g); + gfxSleepMilliseconds(10); + + // zero function page, all registers (assuming full_page is all zeroes) + write_ram(g, IS31_FUNCTIONREG, 0, IS31_FUNCTIONREG_SIZE); + set_hardware_shutdown(g, false); + gfxSleepMilliseconds(10); + // software shutdown + write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); + gfxSleepMilliseconds(10); + // zero function page, all registers + write_ram(g, IS31_FUNCTIONREG, 0, IS31_FUNCTIONREG_SIZE); + gfxSleepMilliseconds(10); + + + // zero all LED registers on all 8 pages, and enable the mask + __builtin_memcpy(PRIV(g)->write_buffer, get_led_mask(g), IS31_LED_MASK_SIZE); + for(uint8_t i=0; i<8; i++) { + write_ram(g, i, 0, IS31_FRAME_SIZE); + gfxSleepMilliseconds(1); + } + + // software shutdown disable (i.e. turn stuff on) + write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON); + gfxSleepMilliseconds(10); + + // Finish Init + post_init_board(g); + + /* Initialise the GDISP structure */ + g->g.Width = GDISP_SCREEN_WIDTH; + g->g.Height = GDISP_SCREEN_HEIGHT; + g->g.Orientation = GDISP_ROTATE_0; + g->g.Powermode = powerOn; + g->g.Backlight = GDISP_INITIAL_BACKLIGHT; + g->g.Contrast = GDISP_INITIAL_CONTRAST; + return TRUE; +} + +#if GDISP_HARDWARE_FLUSH + LLDSPEC void gdisp_lld_flush(GDisplay *g) { + // Don't flush if we don't need it. + if (!(g->flags & GDISP_FLG_NEEDFLUSH)) + return; + + PRIV(g)->page++; + PRIV(g)->page %= 2; + // TODO: some smarter algorithm for this + // We should run only one physical page at a time + // This way we don't need to send so much data, and + // we could use slightly less memory + uint8_t* src = PRIV(g)->frame_buffer; + for (int y=0;ywrite_buffer[get_led_address(g, x, y)]=cie[*src]; + ++src; + } + } + write_ram(g, PRIV(g)->page, IS31_PWM_REG, IS31_PWM_SIZE); + gfxSleepMilliseconds(1); + write_register(g, IS31_FUNCTIONREG, IS31_REG_PICTDISP, PRIV(g)->page); + + g->flags &= ~GDISP_FLG_NEEDFLUSH; + } +#endif + +#if GDISP_HARDWARE_DRAWPIXEL + LLDSPEC void gdisp_lld_draw_pixel(GDisplay *g) { + coord_t x, y; + + switch(g->g.Orientation) { + default: + case GDISP_ROTATE_0: + x = g->p.x; + y = g->p.y; + break; + case GDISP_ROTATE_180: + x = GDISP_SCREEN_WIDTH-1 - g->p.x; + y = g->p.y; + break; + } + PRIV(g)->frame_buffer[y * GDISP_SCREEN_WIDTH + x] = gdispColor2Native(g->p.color); + g->flags |= GDISP_FLG_NEEDFLUSH; + } +#endif + +#if GDISP_HARDWARE_PIXELREAD + LLDSPEC color_t gdisp_lld_get_pixel_color(GDisplay *g) { + coord_t x, y; + + switch(g->g.Orientation) { + default: + case GDISP_ROTATE_0: + x = g->p.x; + y = g->p.y; + break; + case GDISP_ROTATE_180: + x = GDISP_SCREEN_WIDTH-1 - g->p.x; + y = g->p.y; + break; + } + return gdispNative2Color(PRIV(g)->frame_buffer[y * GDISP_SCREEN_WIDTH + x]); + } +#endif + +#if GDISP_NEED_CONTROL && GDISP_HARDWARE_CONTROL + LLDSPEC void gdisp_lld_control(GDisplay *g) { + switch(g->p.x) { + case GDISP_CONTROL_POWER: + if (g->g.Powermode == (powermode_t)g->p.ptr) + return; + switch((powermode_t)g->p.ptr) { + case powerOff: + case powerSleep: + case powerDeepSleep: + write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); + break; + case powerOn: + write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON); + break; + default: + return; + } + g->g.Powermode = (powermode_t)g->p.ptr; + return; + + case GDISP_CONTROL_ORIENTATION: + if (g->g.Orientation == (orientation_t)g->p.ptr) + return; + switch((orientation_t)g->p.ptr) { + /* Rotation is handled by the drawing routines */ + case GDISP_ROTATE_0: + case GDISP_ROTATE_180: + g->g.Height = GDISP_SCREEN_HEIGHT; + g->g.Width = GDISP_SCREEN_WIDTH; + break; + case GDISP_ROTATE_90: + case GDISP_ROTATE_270: + g->g.Height = GDISP_SCREEN_WIDTH; + g->g.Width = GDISP_SCREEN_HEIGHT; + break; + default: + return; + } + g->g.Orientation = (orientation_t)g->p.ptr; + return; + + case GDISP_CONTROL_CONTRAST: + return; + } + } +#endif // GDISP_NEED_CONTROL + +#endif // GFX_USE_GDISP diff --git a/keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h b/keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h new file mode 100644 index 000000000..bb28ad775 --- /dev/null +++ b/keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h @@ -0,0 +1,36 @@ +/* +Copyright 2016 Fred Sundvik + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef _GDISP_LLD_CONFIG_H +#define _GDISP_LLD_CONFIG_H + +#if GFX_USE_GDISP + +/*===========================================================================*/ +/* Driver hardware support. */ +/*===========================================================================*/ + +#define GDISP_HARDWARE_FLUSH TRUE // This controller requires flushing +#define GDISP_HARDWARE_DRAWPIXEL TRUE +#define GDISP_HARDWARE_PIXELREAD TRUE +#define GDISP_HARDWARE_CONTROL TRUE + +#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_GRAY256 + +#endif /* GFX_USE_GDISP */ + +#endif /* _GDISP_LLD_CONFIG_H */ diff --git a/keyboards/infinity_ergodox/drivers/gdisp/emulator_lcd/driver.mk b/keyboards/infinity_ergodox/drivers/gdisp/emulator_lcd/driver.mk new file mode 100644 index 000000000..16c3f80f5 --- /dev/null +++ b/keyboards/infinity_ergodox/drivers/gdisp/emulator_lcd/driver.mk @@ -0,0 +1,2 @@ +GFXINC += drivers/gdisp/emulator_lcd +GFXSRC += drivers/gdisp/emulator_lcd/emulator_lcd.c diff --git a/keyboards/infinity_ergodox/drivers/gdisp/emulator_lcd/emulator_lcd.c b/keyboards/infinity_ergodox/drivers/gdisp/emulator_lcd/emulator_lcd.c new file mode 100644 index 000000000..babfe2b36 --- /dev/null +++ b/keyboards/infinity_ergodox/drivers/gdisp/emulator_lcd/emulator_lcd.c @@ -0,0 +1,10 @@ +#define GDISP_DRIVER_VMT GDISPVMT_EMULATOR_LCD_ERGODOX +#define GDISP_HARDWARE_DRAWPIXEL TRUE +#define GDISP_HARDWARE_PIXELREAD TRUE +#define GDISP_HARDWARE_CONTROL TRUE +#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_MONO +#define GDISP_SCREEN_WIDTH 128 +#define GDISP_SCREEN_HEIGHT 32 +#define ROTATE_180_IS_FLIP + +#include "emulator/emulator_driver_impl.h" diff --git a/keyboards/infinity_ergodox/drivers/gdisp/emulator_led/driver.mk b/keyboards/infinity_ergodox/drivers/gdisp/emulator_led/driver.mk new file mode 100644 index 000000000..255434432 --- /dev/null +++ b/keyboards/infinity_ergodox/drivers/gdisp/emulator_led/driver.mk @@ -0,0 +1,2 @@ +GFXINC += drivers/gdisp/emulator_led +GFXSRC += drivers/gdisp/emulator_led/emulator_led.c diff --git a/keyboards/infinity_ergodox/drivers/gdisp/emulator_led/emulator_led.c b/keyboards/infinity_ergodox/drivers/gdisp/emulator_led/emulator_led.c new file mode 100644 index 000000000..b0ebcdc47 --- /dev/null +++ b/keyboards/infinity_ergodox/drivers/gdisp/emulator_led/emulator_led.c @@ -0,0 +1,10 @@ +#define GDISP_DRIVER_VMT GDISPVMT_EMULATOR_LED_ERGODOX +#define GDISP_HARDWARE_DRAWPIXEL TRUE +#define GDISP_HARDWARE_PIXELREAD TRUE +#define GDISP_HARDWARE_CONTROL TRUE +#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_MONO +#define GDISP_SCREEN_WIDTH 7 +#define GDISP_SCREEN_HEIGHT 7 +#define ROTATE_180_IS_FLIP + +#include "emulator/emulator_driver_impl.h" diff --git a/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/board_ST7565.h b/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/board_ST7565.h new file mode 100644 index 000000000..290571ce5 --- /dev/null +++ b/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/board_ST7565.h @@ -0,0 +1,127 @@ +/* + * This file is subject to the terms of the GFX License. If a copy of + * the license was not distributed with this file, you can obtain one at: + * + * http://ugfx.org/license.html + */ + +#ifndef _GDISP_LLD_BOARD_H +#define _GDISP_LLD_BOARD_H + +#include "print.h" + +#define ST7565_LCD_BIAS ST7565_LCD_BIAS_9 // actually 6 +#define ST7565_ADC ST7565_ADC_NORMAL +#define ST7565_COM_SCAN ST7565_COM_SCAN_DEC +#define ST7565_PAGE_ORDER 0,1,2,3 +/* + * Custom page order for several LCD boards, e.g. HEM12864-99 + * #define ST7565_PAGE_ORDER 4,5,6,7,0,1,2,3 + */ + +#define ST7565_GPIOPORT GPIOC +#define ST7565_PORT PORTC +#define ST7565_A0_PIN 7 +#define ST7565_RST_PIN 8 +#define ST7565_MOSI_PIN 6 +#define ST7565_SLCK_PIN 5 +#define ST7565_SS_PIN 4 + +#define palSetPadModeRaw(portname, bits) \ + ST7565_PORT->PCR[ST7565_##portname##_PIN] = bits + +#define palSetPadModeNamed(portname, portmode) \ + palSetPadMode(ST7565_GPIOPORT, ST7565_##portname##_PIN, portmode) + +#define ST7565_SPI_MODE PORTx_PCRn_DSE | PORTx_PCRn_MUX(2) +// DSPI Clock and Transfer Attributes +// Frame Size: 8 bits +// MSB First +// CLK Low by default +static const SPIConfig spi1config = { + NULL, + /* HW dependent part.*/ + ST7565_GPIOPORT, + ST7565_SS_PIN, + SPIx_CTARn_FMSZ(7) + | SPIx_CTARn_ASC(7) + | SPIx_CTARn_DT(7) + | SPIx_CTARn_CSSCK(7) + | SPIx_CTARn_PBR(0) + | SPIx_CTARn_BR(7) + //SPI_CR1_BR_0 +}; + +static bool_t st7565_is_data_mode = 1; + +static GFXINLINE void init_board(GDisplay *g) { + (void) g; + palSetPadModeNamed(A0, PAL_MODE_OUTPUT_PUSHPULL); + palSetPad(ST7565_GPIOPORT, ST7565_A0_PIN); + st7565_is_data_mode = 1; + palSetPadModeNamed(RST, PAL_MODE_OUTPUT_PUSHPULL); + palSetPad(ST7565_GPIOPORT, ST7565_RST_PIN); + palSetPadModeRaw(MOSI, ST7565_SPI_MODE); + palSetPadModeRaw(SLCK, ST7565_SPI_MODE); + palSetPadModeRaw(SS, ST7565_SPI_MODE); + + spiInit(); + spiStart(&SPID1, &spi1config); + spiSelect(&SPID1); +} + +static GFXINLINE void post_init_board(GDisplay *g) { + (void) g; +} + +static GFXINLINE void setpin_reset(GDisplay *g, bool_t state) { + (void) g; + if (state) { + palClearPad(ST7565_GPIOPORT, ST7565_RST_PIN); + } + else { + palSetPad(ST7565_GPIOPORT, ST7565_RST_PIN); + } +} + +static GFXINLINE void acquire_bus(GDisplay *g) { + (void) g; + // Only the LCD is using the SPI bus, so no need to acquire + // spiAcquireBus(&SPID1); +} + +static GFXINLINE void release_bus(GDisplay *g) { + (void) g; + // Only the LCD is using the SPI bus, so no need to release + //spiReleaseBus(&SPID1); +} + +static GFXINLINE void write_cmd(GDisplay *g, uint8_t cmd) { + (void) g; + if (st7565_is_data_mode) { + // The sleeps need to be at lest 10 vs 25 ns respectively + // So let's sleep two ticks, one tick might not be enough + // if we are at the end of the tick + chThdSleep(2); + palClearPad(ST7565_GPIOPORT, ST7565_A0_PIN); + chThdSleep(2); + st7565_is_data_mode = 0; + } + spiSend(&SPID1, 1, &cmd); +} + +static GFXINLINE void write_data(GDisplay *g, uint8_t* data, uint16_t length) { + (void) g; + if (!st7565_is_data_mode) { + // The sleeps need to be at lest 10 vs 25 ns respectively + // So let's sleep two ticks, one tick might not be enough + // if we are at the end of the tick + chThdSleep(2); + palSetPad(ST7565_GPIOPORT, ST7565_A0_PIN); + chThdSleep(2); + st7565_is_data_mode = 1; + } + spiSend(&SPID1, length, data); +} + +#endif /* _GDISP_LLD_BOARD_H */ diff --git a/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/driver.mk b/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/driver.mk new file mode 100644 index 000000000..889a1a031 --- /dev/null +++ b/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/driver.mk @@ -0,0 +1,2 @@ +GFXINC += drivers/gdisp/st7565ergodox +GFXSRC += drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c diff --git a/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c b/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c new file mode 100644 index 000000000..c33aea81a --- /dev/null +++ b/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c @@ -0,0 +1,292 @@ +/* + * This file is subject to the terms of the GFX License. If a copy of + * the license was not distributed with this file, you can obtain one at: + * + * http://ugfx.org/license.html + */ + +#include "gfx.h" + +#if GFX_USE_GDISP + +#define GDISP_DRIVER_VMT GDISPVMT_ST7565_ERGODOX +#include "drivers/gdisp/st7565ergodox/gdisp_lld_config.h" +#include "src/gdisp/gdisp_driver.h" + +#include "board_ST7565.h" + +/*===========================================================================*/ +/* Driver local definitions. */ +/*===========================================================================*/ + +#ifndef GDISP_SCREEN_HEIGHT + #define GDISP_SCREEN_HEIGHT 32 +#endif +#ifndef GDISP_SCREEN_WIDTH + #define GDISP_SCREEN_WIDTH 128 +#endif +#ifndef GDISP_INITIAL_CONTRAST + #define GDISP_INITIAL_CONTRAST 0 +#endif +#ifndef GDISP_INITIAL_BACKLIGHT + #define GDISP_INITIAL_BACKLIGHT 100 +#endif + +#define GDISP_FLG_NEEDFLUSH (GDISP_FLG_DRIVER<<0) + +#include "drivers/gdisp/st7565ergodox/st7565.h" + +/*===========================================================================*/ +/* Driver config defaults for backward compatibility. */ +/*===========================================================================*/ +#ifndef ST7565_LCD_BIAS + #define ST7565_LCD_BIAS ST7565_LCD_BIAS_7 +#endif +#ifndef ST7565_ADC + #define ST7565_ADC ST7565_ADC_NORMAL +#endif +#ifndef ST7565_COM_SCAN + #define ST7565_COM_SCAN ST7565_COM_SCAN_INC +#endif +#ifndef ST7565_PAGE_ORDER + #define ST7565_PAGE_ORDER 0,1,2,3 +#endif + +/*===========================================================================*/ +/* Driver local functions. */ +/*===========================================================================*/ + +typedef struct{ + bool_t buffer2; + uint8_t ram[GDISP_SCREEN_HEIGHT * GDISP_SCREEN_WIDTH / 8]; +}PrivData; + +// Some common routines and macros +#define PRIV(g) ((PrivData*)g->priv) +#define RAM(g) (PRIV(g)->ram) +#define write_cmd2(g, cmd1, cmd2) { write_cmd(g, cmd1); write_cmd(g, cmd2); } +#define write_cmd3(g, cmd1, cmd2, cmd3) { write_cmd(g, cmd1); write_cmd(g, cmd2); write_cmd(g, cmd3); } + +// Some common routines and macros +#define delay(us) gfxSleepMicroseconds(us) +#define delay_ms(ms) gfxSleepMilliseconds(ms) + +#define xyaddr(x, y) ((x) + ((y)>>3)*GDISP_SCREEN_WIDTH) +#define xybit(y) (1<<((y)&7)) + +/*===========================================================================*/ +/* Driver exported functions. */ +/*===========================================================================*/ + +/* + * As this controller can't update on a pixel boundary we need to maintain the + * the entire display surface in memory so that we can do the necessary bit + * operations. Fortunately it is a small display in monochrome. + * 64 * 128 / 8 = 1024 bytes. + */ + +LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { + // The private area is the display surface. + g->priv = gfxAlloc(sizeof(PrivData)); + PRIV(g)->buffer2 = false; + + // Initialise the board interface + init_board(g); + + // Hardware reset + setpin_reset(g, TRUE); + gfxSleepMilliseconds(20); + setpin_reset(g, FALSE); + gfxSleepMilliseconds(20); + + acquire_bus(g); + write_cmd(g, ST7565_DISPLAY_OFF); + write_cmd(g, ST7565_LCD_BIAS); + write_cmd(g, ST7565_ADC); + write_cmd(g, ST7565_COM_SCAN); + + write_cmd(g, ST7565_START_LINE | 0); + + write_cmd(g, ST7565_RESISTOR_RATIO | 0x6); + + // turn on voltage converter (VC=1, VR=0, VF=0) + write_cmd(g, ST7565_POWER_CONTROL | 0x04); + delay_ms(50); + + // turn on voltage regulator (VC=1, VR=1, VF=0) + write_cmd(g, ST7565_POWER_CONTROL | 0x06); + delay_ms(50); + + // turn on voltage follower (VC=1, VR=1, VF=1) + write_cmd(g, ST7565_POWER_CONTROL | 0x07); + delay_ms(50); + + write_cmd(g, 0xE2); + write_cmd(g, ST7565_COM_SCAN); + write_cmd2(g, ST7565_CONTRAST, GDISP_INITIAL_CONTRAST*64/101); + //write_cmd2(g, ST7565_CONTRAST, 0); + write_cmd(g, ST7565_DISPLAY_ON); + write_cmd(g, ST7565_ALLON_NORMAL); + write_cmd(g, ST7565_INVERT_DISPLAY); + + write_cmd(g, ST7565_RMW); + + // Finish Init + post_init_board(g); + + // Release the bus + release_bus(g); + + /* Initialise the GDISP structure */ + g->g.Width = GDISP_SCREEN_WIDTH; + g->g.Height = GDISP_SCREEN_HEIGHT; + g->g.Orientation = GDISP_ROTATE_0; + g->g.Powermode = powerOn; + g->g.Backlight = GDISP_INITIAL_BACKLIGHT; + g->g.Contrast = GDISP_INITIAL_CONTRAST; + return TRUE; +} + +#if GDISP_HARDWARE_FLUSH + LLDSPEC void gdisp_lld_flush(GDisplay *g) { + unsigned p; + + // Don't flush if we don't need it. + if (!(g->flags & GDISP_FLG_NEEDFLUSH)) + return; + + acquire_bus(g); + unsigned dstOffset = (PRIV(g)->buffer2 ? 4 : 0); + for (p = 0; p < 4; p++) { + write_cmd(g, ST7565_PAGE | (p + dstOffset)); + write_cmd(g, ST7565_COLUMN_MSB | 0); + write_cmd(g, ST7565_COLUMN_LSB | 0); + write_cmd(g, ST7565_RMW); + write_data(g, RAM(g) + (p*GDISP_SCREEN_WIDTH), GDISP_SCREEN_WIDTH); + } + unsigned line = (PRIV(g)->buffer2 ? 32 : 0); + write_cmd(g, ST7565_START_LINE | line); + PRIV(g)->buffer2 = !PRIV(g)->buffer2; + release_bus(g); + + g->flags &= ~GDISP_FLG_NEEDFLUSH; + } +#endif + +#if GDISP_HARDWARE_DRAWPIXEL + LLDSPEC void gdisp_lld_draw_pixel(GDisplay *g) { + coord_t x, y; + + switch(g->g.Orientation) { + default: + case GDISP_ROTATE_0: + x = g->p.x; + y = g->p.y; + break; + case GDISP_ROTATE_90: + x = g->p.y; + y = GDISP_SCREEN_HEIGHT-1 - g->p.x; + break; + case GDISP_ROTATE_180: + x = GDISP_SCREEN_WIDTH-1 - g->p.x; + y = GDISP_SCREEN_HEIGHT-1 - g->p.y; + break; + case GDISP_ROTATE_270: + x = GDISP_SCREEN_HEIGHT-1 - g->p.y; + y = g->p.x; + break; + } + if (gdispColor2Native(g->p.color) != Black) + RAM(g)[xyaddr(x, y)] |= xybit(y); + else + RAM(g)[xyaddr(x, y)] &= ~xybit(y); + g->flags |= GDISP_FLG_NEEDFLUSH; + } +#endif + +#if GDISP_HARDWARE_PIXELREAD + LLDSPEC color_t gdisp_lld_get_pixel_color(GDisplay *g) { + coord_t x, y; + + switch(g->g.Orientation) { + default: + case GDISP_ROTATE_0: + x = g->p.x; + y = g->p.y; + break; + case GDISP_ROTATE_90: + x = g->p.y; + y = GDISP_SCREEN_HEIGHT-1 - g->p.x; + break; + case GDISP_ROTATE_180: + x = GDISP_SCREEN_WIDTH-1 - g->p.x; + y = GDISP_SCREEN_HEIGHT-1 - g->p.y; + break; + case GDISP_ROTATE_270: + x = GDISP_SCREEN_HEIGHT-1 - g->p.y; + y = g->p.x; + break; + } + return (RAM(g)[xyaddr(x, y)] & xybit(y)) ? White : Black; + } +#endif + +#if GDISP_NEED_CONTROL && GDISP_HARDWARE_CONTROL + LLDSPEC void gdisp_lld_control(GDisplay *g) { + switch(g->p.x) { + case GDISP_CONTROL_POWER: + if (g->g.Powermode == (powermode_t)g->p.ptr) + return; + switch((powermode_t)g->p.ptr) { + case powerOff: + case powerSleep: + case powerDeepSleep: + acquire_bus(g); + write_cmd(g, ST7565_DISPLAY_OFF); + release_bus(g); + break; + case powerOn: + acquire_bus(g); + write_cmd(g, ST7565_DISPLAY_ON); + release_bus(g); + break; + default: + return; + } + g->g.Powermode = (powermode_t)g->p.ptr; + return; + + case GDISP_CONTROL_ORIENTATION: + if (g->g.Orientation == (orientation_t)g->p.ptr) + return; + switch((orientation_t)g->p.ptr) { + /* Rotation is handled by the drawing routines */ + case GDISP_ROTATE_0: + case GDISP_ROTATE_180: + g->g.Height = GDISP_SCREEN_HEIGHT; + g->g.Width = GDISP_SCREEN_WIDTH; + break; + case GDISP_ROTATE_90: + case GDISP_ROTATE_270: + g->g.Height = GDISP_SCREEN_WIDTH; + g->g.Width = GDISP_SCREEN_HEIGHT; + break; + default: + return; + } + g->g.Orientation = (orientation_t)g->p.ptr; + return; + + case GDISP_CONTROL_CONTRAST: + if ((unsigned)g->p.ptr > 100) + g->p.ptr = (void *)100; + acquire_bus(g); + write_cmd2(g, ST7565_CONTRAST, ((((unsigned)g->p.ptr)<<6)/101) & 0x3F); + release_bus(g); + g->g.Contrast = (unsigned)g->p.ptr; + return; + } + } +#endif // GDISP_NEED_CONTROL + +#endif // GFX_USE_GDISP diff --git a/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_config.h b/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_config.h new file mode 100644 index 000000000..48587b9e1 --- /dev/null +++ b/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_config.h @@ -0,0 +1,26 @@ +/* + * This file is subject to the terms of the GFX License. If a copy of + * the license was not distributed with this file, you can obtain one at: + * + * http://ugfx.org/license.html + */ + +#ifndef _GDISP_LLD_CONFIG_H +#define _GDISP_LLD_CONFIG_H + +#if GFX_USE_GDISP + +/*===========================================================================*/ +/* Driver hardware support. */ +/*===========================================================================*/ + +#define GDISP_HARDWARE_FLUSH TRUE // This controller requires flushing +#define GDISP_HARDWARE_DRAWPIXEL TRUE +#define GDISP_HARDWARE_PIXELREAD TRUE +#define GDISP_HARDWARE_CONTROL TRUE + +#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_MONO + +#endif /* GFX_USE_GDISP */ + +#endif /* _GDISP_LLD_CONFIG_H */ diff --git a/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/st7565.h b/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/st7565.h new file mode 100644 index 000000000..48636b33d --- /dev/null +++ b/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/st7565.h @@ -0,0 +1,37 @@ +/* + * This file is subject to the terms of the GFX License. If a copy of + * the license was not distributed with this file, you can obtain one at: + * + * http://ugfx.org/license.html + */ + +#ifndef _ST7565_H +#define _ST7565_H + +#define ST7565_CONTRAST 0x81 +#define ST7565_ALLON_NORMAL 0xA4 +#define ST7565_ALLON 0xA5 +#define ST7565_POSITIVE_DISPLAY 0xA6 +#define ST7565_INVERT_DISPLAY 0xA7 +#define ST7565_DISPLAY_OFF 0xAE +#define ST7565_DISPLAY_ON 0xAF + +#define ST7565_LCD_BIAS_7 0xA3 +#define ST7565_LCD_BIAS_9 0xA2 + +#define ST7565_ADC_NORMAL 0xA0 +#define ST7565_ADC_REVERSE 0xA1 + +#define ST7565_COM_SCAN_INC 0xC0 +#define ST7565_COM_SCAN_DEC 0xC8 + +#define ST7565_START_LINE 0x40 +#define ST7565_PAGE 0xB0 +#define ST7565_COLUMN_MSB 0x10 +#define ST7565_COLUMN_LSB 0x00 +#define ST7565_RMW 0xE0 + +#define ST7565_RESISTOR_RATIO 0x20 +#define ST7565_POWER_CONTROL 0x28 + +#endif /* _ST7565_H */ -- cgit v1.2.3 From 07d0d5cbe48d7afaf0bc8c9916d40179ec51cb42 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Thu, 7 Jul 2016 12:46:10 +0300 Subject: Makefile fixes and update of Visualizer --- keyboards/infinity_ergodox/Makefile | 9 +++++++++ quantum/visualizer/led_test.c | 4 ++-- quantum/visualizer/visualizer.mk | 8 +++----- tmk_core/common/keyboard.c | 8 ++++++++ tmk_core/protocol/chibios/main.c | 7 +++++++ 5 files changed, 29 insertions(+), 7 deletions(-) (limited to 'keyboards') diff --git a/keyboards/infinity_ergodox/Makefile b/keyboards/infinity_ergodox/Makefile index 8be2f51b1..7edc03d8c 100644 --- a/keyboards/infinity_ergodox/Makefile +++ b/keyboards/infinity_ergodox/Makefile @@ -69,8 +69,17 @@ CUSTOM_MATRIX ?= yes # Custom matrix file SERIAL_LINK_ENABLE = yes VISUALIZER_ENABLE ?= yes LCD_ENABLE ?= yes +LED_ENABLE ?= yes LCD_BACKLIGHT_ENABLE ?= yes +ifdef LCD_ENABLE +include drivers/gdisp/st7565ergodox/driver.mk +endif + +ifdef LED_ENABLE +include drivers/gdisp/IS31FL3731C/driver.mk +endif + ifndef QUANTUM_DIR include ../../Makefile endif \ No newline at end of file diff --git a/quantum/visualizer/led_test.c b/quantum/visualizer/led_test.c index c2ea30b55..a9abace8d 100644 --- a/quantum/visualizer/led_test.c +++ b/quantum/visualizer/led_test.c @@ -89,8 +89,8 @@ static uint8_t crossfade_start_frame[NUM_ROWS][NUM_COLS]; static uint8_t crossfade_end_frame[NUM_ROWS][NUM_COLS]; static uint8_t compute_gradient_color(float t, float index, float num) { - const float two_pi = 2.0f * PI; - float normalized_index = (1.0f - index / (num - 1)) * two_pi; + const float two_pi = M_2_PI; + float normalized_index = (1.0f - index / (num - 1.0f)) * two_pi; float x = t * two_pi + normalized_index; float v = 0.5 * (cosf(x) + 1.0f); return (uint8_t)(255.0f * v); diff --git a/quantum/visualizer/visualizer.mk b/quantum/visualizer/visualizer.mk index b5dfad8e1..149968de7 100644 --- a/quantum/visualizer/visualizer.mk +++ b/quantum/visualizer/visualizer.mk @@ -25,6 +25,8 @@ EXTRAINCDIRS += $(GFXINC) $(VISUALIZER_DIR) GFXLIB = $(LIB_PATH)/ugfx VPATH += $(VISUALIZER_PATH) +OPT_DEFS += -DVISUALIZER_ENABLE + ifdef LCD_ENABLE OPT_DEFS += -DLCD_ENABLE ULIBS += -lm @@ -44,12 +46,8 @@ UDEFS += -DLED_ENABLE endif include $(GFXLIB)/gfx.mk -#SERIAL_SRC = $(wildcard $(SERIAL_PATH)/protocol/*.c) -#SERIAL_SRC += $(wildcard $(SERIAL_PATH)/system/*.c) -#SRC += $(patsubst $(QUANTUM_PATH)/%,%,$(SERIAL_SRC)) -#SRC += $(GFXSRC) +SRC += $(patsubst $(TOP_DIR)/%,%,$(GFXSRC)) OPT_DEFS += $(patsubst %,-D%,$(patsubst -D%,%,$(GFXDEFS))) -#ULIBS += $(patsubst %,-l%,$(patsubst -l%,%,$(GFXLIBS))) ifndef VISUALIZER_USER VISUALIZER_USER = visualizer_user.c diff --git a/tmk_core/common/keyboard.c b/tmk_core/common/keyboard.c index 3a1262a9f..c46a701b3 100644 --- a/tmk_core/common/keyboard.c +++ b/tmk_core/common/keyboard.c @@ -29,6 +29,7 @@ along with this program. If not, see . #include "sendchar.h" #include "eeconfig.h" #include "backlight.h" +#include "action_layer.h" #ifdef BOOTMAGIC_ENABLE # include "bootmagic.h" #else @@ -52,6 +53,9 @@ along with this program. If not, see . #ifdef SERIAL_LINK_ENABLE # include "serial_link/system/serial_link.h" #endif +#ifdef VISUALIZER_ENABLE +# include "visualizer/visualizer.h" +#endif #ifdef MATRIX_HAS_GHOST static bool has_ghost_in_row(uint8_t row) @@ -181,6 +185,10 @@ MATRIX_LOOP_END: serial_link_update(); #endif +#ifdef VISUALIZER_ENABLE + visualizer_update(default_layer_state, layer_state, host_keyboard_leds()); +#endif + // update LED if (led_status != host_keyboard_leds()) { led_status = host_keyboard_leds(); diff --git a/tmk_core/protocol/chibios/main.c b/tmk_core/protocol/chibios/main.c index aeb11752f..6bf9c1668 100644 --- a/tmk_core/protocol/chibios/main.c +++ b/tmk_core/protocol/chibios/main.c @@ -38,6 +38,9 @@ #ifdef SERIAL_LINK_ENABLE #include "serial_link/system/serial_link.h" #endif +#ifdef VISUALIZER_ENABLE +#include "visualizer/visualizer.h" +#endif #include "suspend.h" @@ -101,6 +104,10 @@ int main(void) { /* init printf */ init_printf(NULL,sendchar_pf); +#ifdef VISUALIZER_ENABLE + visualizer_init(); +#endif + #ifdef SERIAL_LINK_ENABLE init_serial_link(); #endif -- cgit v1.2.3 From aaac254ebce2005272e7385488b5690bbbe6d7c8 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Thu, 7 Jul 2016 14:29:53 +0300 Subject: Delete lcd_backlight_hal.c The functionality can now be found in the infinity_erogodox.c file instead. --- keyboards/infinity_ergodox/infinity_ergodox.c | 65 ++++++++++++++++++++ keyboards/infinity_ergodox/lcd_backlight_hal.c | 84 -------------------------- quantum/visualizer/visualizer.mk | 3 - 3 files changed, 65 insertions(+), 87 deletions(-) delete mode 100644 keyboards/infinity_ergodox/lcd_backlight_hal.c (limited to 'keyboards') diff --git a/keyboards/infinity_ergodox/infinity_ergodox.c b/keyboards/infinity_ergodox/infinity_ergodox.c index 85054775e..87ed40fab 100644 --- a/keyboards/infinity_ergodox/infinity_ergodox.c +++ b/keyboards/infinity_ergodox/infinity_ergodox.c @@ -2,6 +2,7 @@ #include "ch.h" #include "hal.h" #include "serial_link/system/serial_link.h" +#include "lcd_backlight.h" void init_serial_link_hal(void) { PORTA->PCR[1] = PORTx_PCRn_PE | PORTx_PCRn_PS | PORTx_PCRn_PFE | PORTx_PCRn_MUX(2); @@ -9,3 +10,67 @@ void init_serial_link_hal(void) { PORTE->PCR[0] = PORTx_PCRn_PE | PORTx_PCRn_PS | PORTx_PCRn_PFE | PORTx_PCRn_MUX(3); PORTE->PCR[1] = PORTx_PCRn_DSE | PORTx_PCRn_SRE | PORTx_PCRn_MUX(3); } + +#define RED_PIN 1 +#define GREEN_PIN 2 +#define BLUE_PIN 3 +#define CHANNEL_RED FTM0->CHANNEL[0] +#define CHANNEL_GREEN FTM0->CHANNEL[1] +#define CHANNEL_BLUE FTM0->CHANNEL[2] + +#define RGB_PORT PORTC +#define RGB_PORT_GPIO GPIOC + +// Base FTM clock selection (72 MHz system clock) +// @ 0xFFFF period, 72 MHz / (0xFFFF * 2) = Actual period +// Higher pre-scalar will use the most power (also look the best) +// Pre-scalar calculations +// 0 - 72 MHz -> 549 Hz +// 1 - 36 MHz -> 275 Hz +// 2 - 18 MHz -> 137 Hz +// 3 - 9 MHz -> 69 Hz (Slightly visible flicker) +// 4 - 4 500 kHz -> 34 Hz (Visible flickering) +// 5 - 2 250 kHz -> 17 Hz +// 6 - 1 125 kHz -> 9 Hz +// 7 - 562 500 Hz -> 4 Hz +// Using a higher pre-scalar without flicker is possible but FTM0_MOD will need to be reduced +// Which will reduce the brightness range +#define PRESCALAR_DEFINE 0 + +void lcd_backlight_hal_init(void) { + // Setup Backlight + SIM->SCGC6 |= SIM_SCGC6_FTM0; + FTM0->CNT = 0; // Reset counter + + // PWM Period + // 16-bit maximum + FTM0->MOD = 0xFFFF; + + // Set FTM to PWM output - Edge Aligned, Low-true pulses +#define CNSC_MODE FTM_SC_CPWMS | FTM_SC_PS(4) | FTM_SC_CLKS(0) + CHANNEL_RED.CnSC = CNSC_MODE; + CHANNEL_GREEN.CnSC = CNSC_MODE; + CHANNEL_BLUE.CnSC = CNSC_MODE; + + // System clock, /w prescalar setting + FTM0->SC = FTM_SC_CLKS(1) | FTM_SC_PS(PRESCALAR_DEFINE); + + CHANNEL_RED.CnV = 0; + CHANNEL_GREEN.CnV = 0; + CHANNEL_BLUE.CnV = 0; + + RGB_PORT_GPIO->PDDR |= (1 << RED_PIN); + RGB_PORT_GPIO->PDDR |= (1 << GREEN_PIN); + RGB_PORT_GPIO->PDDR |= (1 << BLUE_PIN); + +#define RGB_MODE PORTx_PCRn_SRE | PORTx_PCRn_DSE | PORTx_PCRn_MUX(4) + RGB_PORT->PCR[RED_PIN] = RGB_MODE; + RGB_PORT->PCR[GREEN_PIN] = RGB_MODE; + RGB_PORT->PCR[BLUE_PIN] = RGB_MODE; +} + +void lcd_backlight_hal_color(uint16_t r, uint16_t g, uint16_t b) { + CHANNEL_RED.CnV = r; + CHANNEL_GREEN.CnV = g; + CHANNEL_BLUE.CnV = b; +} diff --git a/keyboards/infinity_ergodox/lcd_backlight_hal.c b/keyboards/infinity_ergodox/lcd_backlight_hal.c deleted file mode 100644 index 05fc810b4..000000000 --- a/keyboards/infinity_ergodox/lcd_backlight_hal.c +++ /dev/null @@ -1,84 +0,0 @@ -/* -Copyright 2016 Fred Sundvik -Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ -#include "lcd_backlight.h" -#include "hal.h" - -#define RED_PIN 1 -#define GREEN_PIN 2 -#define BLUE_PIN 3 -#define CHANNEL_RED FTM0->CHANNEL[0] -#define CHANNEL_GREEN FTM0->CHANNEL[1] -#define CHANNEL_BLUE FTM0->CHANNEL[2] - -#define RGB_PORT PORTC -#define RGB_PORT_GPIO GPIOC - -// Base FTM clock selection (72 MHz system clock) -// @ 0xFFFF period, 72 MHz / (0xFFFF * 2) = Actual period -// Higher pre-scalar will use the most power (also look the best) -// Pre-scalar calculations -// 0 - 72 MHz -> 549 Hz -// 1 - 36 MHz -> 275 Hz -// 2 - 18 MHz -> 137 Hz -// 3 - 9 MHz -> 69 Hz (Slightly visible flicker) -// 4 - 4 500 kHz -> 34 Hz (Visible flickering) -// 5 - 2 250 kHz -> 17 Hz -// 6 - 1 125 kHz -> 9 Hz -// 7 - 562 500 Hz -> 4 Hz -// Using a higher pre-scalar without flicker is possible but FTM0_MOD will need to be reduced -// Which will reduce the brightness range -#define PRESCALAR_DEFINE 0 - -void lcd_backlight_hal_init(void) { - // Setup Backlight - SIM->SCGC6 |= SIM_SCGC6_FTM0; - FTM0->CNT = 0; // Reset counter - - // PWM Period - // 16-bit maximum - FTM0->MOD = 0xFFFF; - - // Set FTM to PWM output - Edge Aligned, Low-true pulses -#define CNSC_MODE FTM_SC_CPWMS | FTM_SC_PS(4) | FTM_SC_CLKS(0) - CHANNEL_RED.CnSC = CNSC_MODE; - CHANNEL_GREEN.CnSC = CNSC_MODE; - CHANNEL_BLUE.CnSC = CNSC_MODE; - - // System clock, /w prescalar setting - FTM0->SC = FTM_SC_CLKS(1) | FTM_SC_PS(PRESCALAR_DEFINE); - - CHANNEL_RED.CnV = 0; - CHANNEL_GREEN.CnV = 0; - CHANNEL_BLUE.CnV = 0; - - RGB_PORT_GPIO->PDDR |= (1 << RED_PIN); - RGB_PORT_GPIO->PDDR |= (1 << GREEN_PIN); - RGB_PORT_GPIO->PDDR |= (1 << BLUE_PIN); - -#define RGB_MODE PORTx_PCRn_SRE | PORTx_PCRn_DSE | PORTx_PCRn_MUX(4) - RGB_PORT->PCR[RED_PIN] = RGB_MODE; - RGB_PORT->PCR[GREEN_PIN] = RGB_MODE; - RGB_PORT->PCR[BLUE_PIN] = RGB_MODE; -} - -void lcd_backlight_hal_color(uint16_t r, uint16_t g, uint16_t b) { - CHANNEL_RED.CnV = r; - CHANNEL_GREEN.CnV = g; - CHANNEL_BLUE.CnV = b; -} - diff --git a/quantum/visualizer/visualizer.mk b/quantum/visualizer/visualizer.mk index 379496fb6..449957d63 100644 --- a/quantum/visualizer/visualizer.mk +++ b/quantum/visualizer/visualizer.mk @@ -34,9 +34,6 @@ endif ifdef LCD_BACKLIGHT_ENABLE SRC += $(VISUALIZER_DIR)/lcd_backlight.c -ifndef EMULATOR -SRC += lcd_backlight_hal.c -endif OPT_DEFS += -DLCD_BACKLIGHT_ENABLE endif -- cgit v1.2.3 From caedec92d2c22480313c43a364408fb920c55364 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Thu, 7 Jul 2016 14:42:16 +0300 Subject: Move the visualizer_user file to keymap folder Also rename it to visualizer.c --- .../infinity_ergodox/keymaps/default/visualizer.c | 168 +++++++++++++++++++++ keyboards/infinity_ergodox/visualizer_user.c | 168 --------------------- quantum/visualizer/visualizer.mk | 11 +- 3 files changed, 176 insertions(+), 171 deletions(-) create mode 100644 keyboards/infinity_ergodox/keymaps/default/visualizer.c delete mode 100644 keyboards/infinity_ergodox/visualizer_user.c (limited to 'keyboards') diff --git a/keyboards/infinity_ergodox/keymaps/default/visualizer.c b/keyboards/infinity_ergodox/keymaps/default/visualizer.c new file mode 100644 index 000000000..c0d335ce6 --- /dev/null +++ b/keyboards/infinity_ergodox/keymaps/default/visualizer.c @@ -0,0 +1,168 @@ +/* +Copyright 2016 Fred Sundvik + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +// Currently we are assuming that both the backlight and LCD are enabled +// But it's entirely possible to write a custom visualizer that use only +// one of them +#ifndef LCD_BACKLIGHT_ENABLE +#error This visualizer needs that LCD backlight is enabled +#endif + +#ifndef LCD_ENABLE +#error This visualizer needs that LCD is enabled +#endif + +#include "visualizer.h" +#include "led_test.h" + +static const char* welcome_text[] = {"TMK", "Infinity Ergodox"}; + +// Just an example how to write custom keyframe functions, we could have moved +// all this into the init function +bool display_welcome(keyframe_animation_t* animation, visualizer_state_t* state) { + (void)animation; + // Read the uGFX documentation for information how to use the displays + // http://wiki.ugfx.org/index.php/Main_Page + gdispClear(White); + // You can use static variables for things that can't be found in the animation + // or state structs + gdispDrawString(0, 3, welcome_text[0], state->font_dejavusansbold12, Black); + gdispDrawString(0, 15, welcome_text[1], state->font_dejavusansbold12, Black); + // Always remember to flush the display + gdispFlush(); + // you could set the backlight color as well, but we won't do it here, since + // it's part of the following animation + // lcd_backlight_color(hue, saturation, intensity); + // We don't need constant updates, just drawing the screen once is enough + return false; +} + +// Feel free to modify the animations below, or even add new ones if needed + +// Don't worry, if the startup animation is long, you can use the keyboard like normal +// during that time +static keyframe_animation_t startup_animation = { + .num_frames = 4, + .loop = false, + .frame_lengths = {0, gfxMillisecondsToTicks(1000), gfxMillisecondsToTicks(5000), 0}, + .frame_functions = { + display_welcome, + keyframe_animate_backlight_color, + keyframe_no_operation, + enable_visualization + }, +}; + +// The color animation animates the LCD color when you change layers +static keyframe_animation_t color_animation = { + .num_frames = 2, + .loop = false, + // Note that there's a 200 ms no-operation frame, + // this prevents the color from changing when activating the layer + // momentarily + .frame_lengths = {gfxMillisecondsToTicks(200), gfxMillisecondsToTicks(500)}, + .frame_functions = {keyframe_no_operation, keyframe_animate_backlight_color}, +}; + +// The LCD animation alternates between the layer name display and a +// bitmap that displays all active layers +static keyframe_animation_t lcd_animation = { + .num_frames = 2, + .loop = true, + .frame_lengths = {gfxMillisecondsToTicks(2000), gfxMillisecondsToTicks(2000)}, + .frame_functions = {keyframe_display_layer_text, keyframe_display_layer_bitmap}, +}; + +static keyframe_animation_t suspend_animation = { + .num_frames = 3, + .loop = false, + .frame_lengths = {0, gfxMillisecondsToTicks(1000), 0}, + .frame_functions = { + keyframe_display_layer_text, + keyframe_animate_backlight_color, + keyframe_disable_lcd_and_backlight, + }, +}; + +static keyframe_animation_t resume_animation = { + .num_frames = 5, + .loop = false, + .frame_lengths = {0, 0, gfxMillisecondsToTicks(1000), gfxMillisecondsToTicks(5000), 0}, + .frame_functions = { + keyframe_enable_lcd_and_backlight, + display_welcome, + keyframe_animate_backlight_color, + keyframe_no_operation, + enable_visualization, + }, +}; + +void initialize_user_visualizer(visualizer_state_t* state) { + // The brightness will be dynamically adjustable in the future + // But for now, change it here. + lcd_backlight_brightness(0x50); + state->current_lcd_color = LCD_COLOR(0x00, 0x00, 0xFF); + state->target_lcd_color = LCD_COLOR(0x10, 0xFF, 0xFF); + start_keyframe_animation(&startup_animation); + start_keyframe_animation(&led_test_animation); +} + +void update_user_visualizer_state(visualizer_state_t* state) { + // Add more tests, change the colors and layer texts here + // Usually you want to check the high bits (higher layers first) + // because that's the order layers are processed for keypresses + // You can for check for example: + // state->status.layer + // state->status.default_layer + // state->status.leds (see led.h for available statuses) + if (state->status.layer & 0x8) { + state->target_lcd_color = LCD_COLOR(0xC0, 0xB0, 0xFF); + state->layer_text = "Numpad"; + } + else if (state->status.layer & 0x4) { + state->target_lcd_color = LCD_COLOR(0, 0xB0, 0xFF); + state->layer_text = "KBD functions"; + } + else if (state->status.layer & 0x2) { + state->target_lcd_color = LCD_COLOR(0x80, 0xB0, 0xFF); + state->layer_text = "Function keys"; + } + else { + state->target_lcd_color = LCD_COLOR(0x40, 0xB0, 0xFF); + state->layer_text = "Default"; + } + // You can also stop existing animations, and start your custom ones here + // remember that you should normally have only one animation for the LCD + // and one for the background. But you can also combine them if you want. + start_keyframe_animation(&lcd_animation); + start_keyframe_animation(&color_animation); +} + +void user_visualizer_suspend(visualizer_state_t* state) { + state->layer_text = "Suspending..."; + uint8_t hue = LCD_HUE(state->current_lcd_color); + uint8_t sat = LCD_SAT(state->current_lcd_color); + state->target_lcd_color = LCD_COLOR(hue, sat, 0); + start_keyframe_animation(&suspend_animation); +} + +void user_visualizer_resume(visualizer_state_t* state) { + state->current_lcd_color = LCD_COLOR(0x00, 0x00, 0x00); + state->target_lcd_color = LCD_COLOR(0x10, 0xFF, 0xFF); + start_keyframe_animation(&resume_animation); + start_keyframe_animation(&led_test_animation); +} diff --git a/keyboards/infinity_ergodox/visualizer_user.c b/keyboards/infinity_ergodox/visualizer_user.c deleted file mode 100644 index c0d335ce6..000000000 --- a/keyboards/infinity_ergodox/visualizer_user.c +++ /dev/null @@ -1,168 +0,0 @@ -/* -Copyright 2016 Fred Sundvik - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -// Currently we are assuming that both the backlight and LCD are enabled -// But it's entirely possible to write a custom visualizer that use only -// one of them -#ifndef LCD_BACKLIGHT_ENABLE -#error This visualizer needs that LCD backlight is enabled -#endif - -#ifndef LCD_ENABLE -#error This visualizer needs that LCD is enabled -#endif - -#include "visualizer.h" -#include "led_test.h" - -static const char* welcome_text[] = {"TMK", "Infinity Ergodox"}; - -// Just an example how to write custom keyframe functions, we could have moved -// all this into the init function -bool display_welcome(keyframe_animation_t* animation, visualizer_state_t* state) { - (void)animation; - // Read the uGFX documentation for information how to use the displays - // http://wiki.ugfx.org/index.php/Main_Page - gdispClear(White); - // You can use static variables for things that can't be found in the animation - // or state structs - gdispDrawString(0, 3, welcome_text[0], state->font_dejavusansbold12, Black); - gdispDrawString(0, 15, welcome_text[1], state->font_dejavusansbold12, Black); - // Always remember to flush the display - gdispFlush(); - // you could set the backlight color as well, but we won't do it here, since - // it's part of the following animation - // lcd_backlight_color(hue, saturation, intensity); - // We don't need constant updates, just drawing the screen once is enough - return false; -} - -// Feel free to modify the animations below, or even add new ones if needed - -// Don't worry, if the startup animation is long, you can use the keyboard like normal -// during that time -static keyframe_animation_t startup_animation = { - .num_frames = 4, - .loop = false, - .frame_lengths = {0, gfxMillisecondsToTicks(1000), gfxMillisecondsToTicks(5000), 0}, - .frame_functions = { - display_welcome, - keyframe_animate_backlight_color, - keyframe_no_operation, - enable_visualization - }, -}; - -// The color animation animates the LCD color when you change layers -static keyframe_animation_t color_animation = { - .num_frames = 2, - .loop = false, - // Note that there's a 200 ms no-operation frame, - // this prevents the color from changing when activating the layer - // momentarily - .frame_lengths = {gfxMillisecondsToTicks(200), gfxMillisecondsToTicks(500)}, - .frame_functions = {keyframe_no_operation, keyframe_animate_backlight_color}, -}; - -// The LCD animation alternates between the layer name display and a -// bitmap that displays all active layers -static keyframe_animation_t lcd_animation = { - .num_frames = 2, - .loop = true, - .frame_lengths = {gfxMillisecondsToTicks(2000), gfxMillisecondsToTicks(2000)}, - .frame_functions = {keyframe_display_layer_text, keyframe_display_layer_bitmap}, -}; - -static keyframe_animation_t suspend_animation = { - .num_frames = 3, - .loop = false, - .frame_lengths = {0, gfxMillisecondsToTicks(1000), 0}, - .frame_functions = { - keyframe_display_layer_text, - keyframe_animate_backlight_color, - keyframe_disable_lcd_and_backlight, - }, -}; - -static keyframe_animation_t resume_animation = { - .num_frames = 5, - .loop = false, - .frame_lengths = {0, 0, gfxMillisecondsToTicks(1000), gfxMillisecondsToTicks(5000), 0}, - .frame_functions = { - keyframe_enable_lcd_and_backlight, - display_welcome, - keyframe_animate_backlight_color, - keyframe_no_operation, - enable_visualization, - }, -}; - -void initialize_user_visualizer(visualizer_state_t* state) { - // The brightness will be dynamically adjustable in the future - // But for now, change it here. - lcd_backlight_brightness(0x50); - state->current_lcd_color = LCD_COLOR(0x00, 0x00, 0xFF); - state->target_lcd_color = LCD_COLOR(0x10, 0xFF, 0xFF); - start_keyframe_animation(&startup_animation); - start_keyframe_animation(&led_test_animation); -} - -void update_user_visualizer_state(visualizer_state_t* state) { - // Add more tests, change the colors and layer texts here - // Usually you want to check the high bits (higher layers first) - // because that's the order layers are processed for keypresses - // You can for check for example: - // state->status.layer - // state->status.default_layer - // state->status.leds (see led.h for available statuses) - if (state->status.layer & 0x8) { - state->target_lcd_color = LCD_COLOR(0xC0, 0xB0, 0xFF); - state->layer_text = "Numpad"; - } - else if (state->status.layer & 0x4) { - state->target_lcd_color = LCD_COLOR(0, 0xB0, 0xFF); - state->layer_text = "KBD functions"; - } - else if (state->status.layer & 0x2) { - state->target_lcd_color = LCD_COLOR(0x80, 0xB0, 0xFF); - state->layer_text = "Function keys"; - } - else { - state->target_lcd_color = LCD_COLOR(0x40, 0xB0, 0xFF); - state->layer_text = "Default"; - } - // You can also stop existing animations, and start your custom ones here - // remember that you should normally have only one animation for the LCD - // and one for the background. But you can also combine them if you want. - start_keyframe_animation(&lcd_animation); - start_keyframe_animation(&color_animation); -} - -void user_visualizer_suspend(visualizer_state_t* state) { - state->layer_text = "Suspending..."; - uint8_t hue = LCD_HUE(state->current_lcd_color); - uint8_t sat = LCD_SAT(state->current_lcd_color); - state->target_lcd_color = LCD_COLOR(hue, sat, 0); - start_keyframe_animation(&suspend_animation); -} - -void user_visualizer_resume(visualizer_state_t* state) { - state->current_lcd_color = LCD_COLOR(0x00, 0x00, 0x00); - state->target_lcd_color = LCD_COLOR(0x10, 0xFF, 0xFF); - start_keyframe_animation(&resume_animation); - start_keyframe_animation(&led_test_animation); -} diff --git a/quantum/visualizer/visualizer.mk b/quantum/visualizer/visualizer.mk index 449957d63..2f4a41d66 100644 --- a/quantum/visualizer/visualizer.mk +++ b/quantum/visualizer/visualizer.mk @@ -46,10 +46,15 @@ include $(GFXLIB)/gfx.mk SRC += $(patsubst $(TOP_DIR)/%,%,$(GFXSRC)) OPT_DEFS += $(patsubst %,-D%,$(patsubst -D%,%,$(GFXDEFS))) -ifndef VISUALIZER_USER -VISUALIZER_USER = visualizer_user.c +ifneq ("$(wildcard $(KEYMAP_PATH)/visualizer.c)","") + SRC += keyboards/$(KEYBOARD)/keymaps/$(KEYMAP)/visualizer.c +else + ifeq ("$(wildcard $(SUBPROJECT_PATH)/keymaps/$(KEYMAP)/visualizer.c)","") +$(error "$(KEYMAP_PATH)/visualizer.c" does not exist) + else + SRC += keyboards/$(KEYBOARD)/$(SUBPROJECT)/keymaps/$(KEYMAP)/visualizer.c + endif endif -SRC += $(VISUALIZER_USER) ifdef EMULATOR UINCDIR += $(TMK_DIR)/common -- cgit v1.2.3 From 57e08eb8badc5db2fb44d2df684f32ea48cce411 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Thu, 7 Jul 2016 11:33:32 -0400 Subject: updates rgblight implementation, makes non-timer stuff compatible with audio --- keyboards/clueboard/rev1/config.h | 5 +- keyboards/clueboard/rev2/config.h | 5 +- keyboards/cluepad/config.h | 13 +++-- keyboards/kc60/keymaps/ws2812/config.h | 5 +- keyboards/lets_split/config.h | 5 +- keyboards/phantom/config.h | 13 +++-- keyboards/planck/keymaps/experimental/Makefile | 6 +-- keyboards/planck/keymaps/experimental/config.h | 8 +++ keyboards/planck/keymaps/experimental/keymap.c | 73 ++++++++++++++++++++++++-- keyboards/planck/keymaps/pvc/config.h | 5 +- keyboards/planck/keymaps/yang/config.h | 5 +- keyboards/preonic/config.h | 5 +- keyboards/satan/config.h | 14 ++--- quantum/light_ws2812.c | 25 ++++++--- quantum/rgblight.c | 23 ++++++-- quantum/rgblight.h | 7 ++- readme.md | 17 +++--- 17 files changed, 160 insertions(+), 74 deletions(-) (limited to 'keyboards') diff --git a/keyboards/clueboard/rev1/config.h b/keyboards/clueboard/rev1/config.h index 9bb58f56e..8c9497232 100644 --- a/keyboards/clueboard/rev1/config.h +++ b/keyboards/clueboard/rev1/config.h @@ -25,9 +25,8 @@ /* Underlight configuration */ -#define ws2812_PORTREG PORTB -#define ws2812_DDRREG DDRB -#define ws2812_pin 2 +#define RGB_DI_PIN B2 +#define RGBLIGHT_TIMER #define RGBLED_NUM 14 // Number of LEDs #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 diff --git a/keyboards/clueboard/rev2/config.h b/keyboards/clueboard/rev2/config.h index e2f8336be..02982ff29 100644 --- a/keyboards/clueboard/rev2/config.h +++ b/keyboards/clueboard/rev2/config.h @@ -29,9 +29,8 @@ /* Underlight configuration */ -#define ws2812_PORTREG PORTD -#define ws2812_DDRREG DDRD -#define ws2812_pin 7 +#define RGB_DI_PIN D7 +#define RGBLIGHT_TIMER #define RGBLED_NUM 14 // Number of LEDs #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 diff --git a/keyboards/cluepad/config.h b/keyboards/cluepad/config.h index 0955e0f70..bae05fade 100644 --- a/keyboards/cluepad/config.h +++ b/keyboards/cluepad/config.h @@ -69,13 +69,12 @@ along with this program. If not, see . /* Underlight configuration */ - #define ws2812_PORTREG PORTF - #define ws2812_DDRREG DDRF - #define ws2812_pin 6 - #define RGBLED_NUM 4 // Number of LEDs - #define RGBLIGHT_HUE_STEP 10 - #define RGBLIGHT_SAT_STEP 17 - #define RGBLIGHT_VAL_STEP 17 +#define RGB_DI_PIN F6 +#define RGBLIGHT_TIMER +#define RGBLED_NUM 4 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 /* * Feature disable options diff --git a/keyboards/kc60/keymaps/ws2812/config.h b/keyboards/kc60/keymaps/ws2812/config.h index 933bb0d2d..2f39ea8e5 100644 --- a/keyboards/kc60/keymaps/ws2812/config.h +++ b/keyboards/kc60/keymaps/ws2812/config.h @@ -1,9 +1,8 @@ #include "../../config.h" /* WS2812B RGB Underglow LED */ -#define ws2812_PORTREG PORTF -#define ws2812_DDRREG DDRF -#define ws2812_pin PF5 // Based on wiring depicted in ws2812_wiring.jpg +#define RGB_DI_PIN F5 // Based on wiring depicted in ws2812_wiring.jpg +#define RGBLIGHT_TIMER #define RGBLED_NUM 16 // Number of LEDs. Change this to match your use case. #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 diff --git a/keyboards/lets_split/config.h b/keyboards/lets_split/config.h index 6f90997ab..833818ce6 100644 --- a/keyboards/lets_split/config.h +++ b/keyboards/lets_split/config.h @@ -69,9 +69,8 @@ along with this program. If not, see . ) /* ws2812 RGB LED */ -#define ws2812_PORTREG PORTD -#define ws2812_DDRREG DDRD -#define ws2812_pin PD1 +#define RGB_DI_PIN D2 +#define RGBLIGHT_TIMER #define RGBLED_NUM 28 // Number of LEDs #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 diff --git a/keyboards/phantom/config.h b/keyboards/phantom/config.h index d5878766f..983a1d73f 100644 --- a/keyboards/phantom/config.h +++ b/keyboards/phantom/config.h @@ -62,13 +62,12 @@ along with this program. If not, see . /* Underlight configuration */ - #define ws2812_PORTREG PORTE - #define ws2812_DDRREG DDRE - #define ws2812_pin 2 - #define RGBLED_NUM 20 // Number of LEDs - #define RGBLIGHT_HUE_STEP 10 - #define RGBLIGHT_SAT_STEP 17 - #define RGBLIGHT_VAL_STEP 17 +#define RGB_DI_PIN E2 +#define RGBLIGHT_TIMER +#define RGBLED_NUM 20 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 /* * Feature disable options diff --git a/keyboards/planck/keymaps/experimental/Makefile b/keyboards/planck/keymaps/experimental/Makefile index 581e08cd0..877c4aed0 100644 --- a/keyboards/planck/keymaps/experimental/Makefile +++ b/keyboards/planck/keymaps/experimental/Makefile @@ -10,12 +10,12 @@ EXTRAKEY_ENABLE = yes # Audio control and System control(+450) CONSOLE_ENABLE = no # Console for debug(+400) COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = yes # Audio output on port C6 +AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/planck/keymaps/experimental/config.h b/keyboards/planck/keymaps/experimental/config.h index 985e250ab..52acd1905 100644 --- a/keyboards/planck/keymaps/experimental/config.h +++ b/keyboards/planck/keymaps/experimental/config.h @@ -6,4 +6,12 @@ #define LEADER_TIMEOUT 300 #define BACKLIGHT_BREATHING + +/* ws2812 RGB LED */ +#define RGB_DI_PIN B1 +#define RGBLIGHT_TIMER +#define RGBLED_NUM 8 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 + #endif diff --git a/keyboards/planck/keymaps/experimental/keymap.c b/keyboards/planck/keymaps/experimental/keymap.c index 8ec335d7d..d9303fcae 100644 --- a/keyboards/planck/keymaps/experimental/keymap.c +++ b/keyboards/planck/keymaps/experimental/keymap.c @@ -15,7 +15,7 @@ extern keymap_config_t keymap_config; // The underscores don't mean anything - you can have a layer called STUFF or any other name. // Layer names don't all need to be of the same length, obviously, and you can also skip them // entirely and just use numbers. -#define _QWERTY 0 +#define _QWERTY 10 #define _COLEMAK 1 #define _DVORAK 2 #define _LOWER 3 @@ -31,7 +31,15 @@ enum planck_keycodes { LOWER, RAISE, BACKLIT, - EXT_PLV + EXT_PLV, + RGBLED_TOGGLE, + RGBLED_STEP_MODE, + RGBLED_INCREASE_HUE, + RGBLED_DECREASE_HUE, + RGBLED_INCREASE_SAT, + RGBLED_DECREASE_SAT, + RGBLED_INCREASE_VAL, + RGBLED_DECREASE_VAL, }; // Fillers to make layering more clear @@ -39,14 +47,20 @@ enum planck_keycodes { #define XXXXXXX KC_NO const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = { + {KC_NO, KC_NO, KC_NO, KC_NO, RGBLED_TOGGLE, RGBLED_STEP_MODE, RGBLED_INCREASE_HUE, RGBLED_DECREASE_HUE, RGBLED_INCREASE_SAT, RGBLED_DECREASE_SAT, RGBLED_INCREASE_VAL, RGBLED_DECREASE_VAL}, + {KC_NO, KC_NO, KC_NO, KC_NO, RGBLED_TOGGLE, RGBLED_STEP_MODE, RGBLED_INCREASE_HUE, RGBLED_DECREASE_HUE, RGBLED_INCREASE_SAT, RGBLED_DECREASE_SAT, RGBLED_INCREASE_VAL, RGBLED_DECREASE_VAL}, + {KC_NO, KC_NO, KC_NO, KC_NO, RGBLED_TOGGLE, RGBLED_STEP_MODE, RGBLED_INCREASE_HUE, RGBLED_DECREASE_HUE, RGBLED_INCREASE_SAT, RGBLED_DECREASE_SAT, RGBLED_INCREASE_VAL, RGBLED_DECREASE_VAL}, + {KC_NO, KC_NO, KC_NO, KC_NO, RGBLED_TOGGLE, RGBLED_STEP_MODE, RGBLED_INCREASE_HUE, RGBLED_DECREASE_HUE, RGBLED_INCREASE_SAT, RGBLED_DECREASE_SAT, RGBLED_INCREASE_VAL, RGBLED_DECREASE_VAL} +}, /* Qwerty - * ,-----------------------------------------------------------------------------------. + ,-----------------------------------------------------------------------------------. * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| * | Esc | A | S | D | F | G | H | J | K | L | ; | " | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * | Shift| Z | X | C | V | B | N | M |, | . | / |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' @@ -292,6 +306,57 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; return false; + case RGBLED_TOGGLE: + //led operations + if (record->event.pressed) { + rgblight_toggle(); + } + return false; + break; + case RGBLED_INCREASE_HUE: + if (record->event.pressed) { + rgblight_increase_hue(); + } + return false; + break; + case RGBLED_DECREASE_HUE: + if (record->event.pressed) { + rgblight_decrease_hue(); + } + return false; + break; + case RGBLED_INCREASE_SAT: + if (record->event.pressed) { + rgblight_increase_sat(); + } + return false; + break; + case RGBLED_DECREASE_SAT: + if (record->event.pressed) { + rgblight_decrease_sat(); + } + return false; + break; + case RGBLED_INCREASE_VAL: + if (record->event.pressed) { + rgblight_increase_val(); + } + return false; + break; + case RGBLED_DECREASE_VAL: + if (record->event.pressed) { + rgblight_decrease_val(); + } + return false; + break; + case RGBLED_STEP_MODE: + if (record->event.pressed) { + rgblight_step(); + } + return false; + break; + + } return true; }; diff --git a/keyboards/planck/keymaps/pvc/config.h b/keyboards/planck/keymaps/pvc/config.h index b64893108..c857a3e89 100644 --- a/keyboards/planck/keymaps/pvc/config.h +++ b/keyboards/planck/keymaps/pvc/config.h @@ -60,9 +60,8 @@ along with this program. If not, see . ) /* ws2812 RGB LED */ -#define ws2812_PORTREG PORTD -#define ws2812_DDRREG DDRD -#define ws2812_pin PD1 +#define RGB_DI_PIN D1 +#define RGBLIGHT_TIMER #define RGBLED_NUM 28 // Number of LEDs #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 diff --git a/keyboards/planck/keymaps/yang/config.h b/keyboards/planck/keymaps/yang/config.h index 5921e9377..feb5a1190 100644 --- a/keyboards/planck/keymaps/yang/config.h +++ b/keyboards/planck/keymaps/yang/config.h @@ -4,9 +4,8 @@ #include "../../config.h" /* ws2812 RGB LED */ -#define ws2812_PORTREG PORTD -#define ws2812_DDRREG DDRD -#define ws2812_pin PD1 +#define RGB_DI_PIN D1 +#define RGBLIGHT_TIMER #define RGBLED_NUM 28 // Number of LEDs #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 diff --git a/keyboards/preonic/config.h b/keyboards/preonic/config.h index 04946f7fb..3fb978c2f 100644 --- a/keyboards/preonic/config.h +++ b/keyboards/preonic/config.h @@ -62,9 +62,8 @@ along with this program. If not, see . ) /* ws2812 RGB LED */ -#define ws2812_PORTREG PORTD -#define ws2812_DDRREG DDRD -#define ws2812_pin PD1 +#define RGB_DI_PIN D1 +#define RGBLIGHT_TIMER #define RGBLED_NUM 28 // Number of LEDs #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 diff --git a/keyboards/satan/config.h b/keyboards/satan/config.h index a7ea8f904..7e9f91cc8 100644 --- a/keyboards/satan/config.h +++ b/keyboards/satan/config.h @@ -65,13 +65,13 @@ along with this program. If not, see . /* Underlight configuration */ - #define ws2812_PORTREG PORTE - #define ws2812_DDRREG DDRE - #define ws2812_pin 2 - #define RGBLED_NUM 8 // Number of LEDs - #define RGBLIGHT_HUE_STEP 10 - #define RGBLIGHT_SAT_STEP 17 - #define RGBLIGHT_VAL_STEP 17 + +#define RGB_DI_PIN E2 +#define RGBLIGHT_TIMER +#define RGBLED_NUM 8 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 /* * Feature disable options diff --git a/quantum/light_ws2812.c b/quantum/light_ws2812.c index f20043067..401845e85 100755 --- a/quantum/light_ws2812.c +++ b/quantum/light_ws2812.c @@ -19,12 +19,16 @@ // Setleds for standard RGB void inline ws2812_setleds(struct cRGB *ledarray, uint16_t leds) { - ws2812_setleds_pin(ledarray,leds, _BV(ws2812_pin)); + // ws2812_setleds_pin(ledarray,leds, _BV(ws2812_pin)); + ws2812_setleds_pin(ledarray,leds, _BV(RGB_DI_PIN & 0xF)); } void inline ws2812_setleds_pin(struct cRGB *ledarray, uint16_t leds, uint8_t pinmask) { - ws2812_DDRREG |= pinmask; // Enable DDR + // ws2812_DDRREG |= pinmask; // Enable DDR + // new universal format (DDR) + _SFR_IO8((RGB_DI_PIN >> 4) + 1) |= pinmask; + ws2812_sendarray_mask((uint8_t*)ledarray,leds+leds+leds,pinmask); _delay_us(50); } @@ -32,14 +36,17 @@ void inline ws2812_setleds_pin(struct cRGB *ledarray, uint16_t leds, uint8_t pin // Setleds for SK6812RGBW void inline ws2812_setleds_rgbw(struct cRGBW *ledarray, uint16_t leds) { - ws2812_DDRREG |= _BV(ws2812_pin); // Enable DDR - ws2812_sendarray_mask((uint8_t*)ledarray,leds<<2,_BV(ws2812_pin)); + // ws2812_DDRREG |= _BV(ws2812_pin); // Enable DDR + // new universal format (DDR) + _SFR_IO8((RGB_DI_PIN >> 4) + 1) |= _BV(RGB_DI_PIN & 0xF); + + ws2812_sendarray_mask((uint8_t*)ledarray,leds<<2,_BV(RGB_DI_PIN & 0xF)); _delay_us(80); } void ws2812_sendarray(uint8_t *data,uint16_t datlen) { - ws2812_sendarray_mask(data,datlen,_BV(ws2812_pin)); + ws2812_sendarray_mask(data,datlen,_BV(RGB_DI_PIN & 0xF)); } /* @@ -108,8 +115,10 @@ void inline ws2812_sendarray_mask(uint8_t *data,uint16_t datlen,uint8_t maskhi) uint8_t curbyte,ctr,masklo; uint8_t sreg_prev; - masklo =~maskhi&ws2812_PORTREG; - maskhi |= ws2812_PORTREG; + // masklo =~maskhi&ws2812_PORTREG; + // maskhi |= ws2812_PORTREG; + masklo =~maskhi&_SFR_IO8((RGB_DI_PIN >> 4) + 2); + maskhi |= _SFR_IO8((RGB_DI_PIN >> 4) + 2); sreg_prev=SREG; cli(); @@ -173,7 +182,7 @@ w_nop16 " dec %0 \n\t" // '1' [+2] '0' [+2] " brne loop%=\n\t" // '1' [+3] '0' [+4] : "=&d" (ctr) - : "r" (curbyte), "I" (_SFR_IO_ADDR(ws2812_PORTREG)), "r" (maskhi), "r" (masklo) + : "r" (curbyte), "I" (_SFR_IO_ADDR(_SFR_IO8((RGB_DI_PIN >> 4) + 2))), "r" (maskhi), "r" (masklo) ); } diff --git a/quantum/rgblight.c b/quantum/rgblight.c index c29ffedc3..b1b0f035d 100644 --- a/quantum/rgblight.c +++ b/quantum/rgblight.c @@ -146,7 +146,9 @@ void rgblight_init(void) { } eeconfig_debug_rgblight(); // display current eeprom values - rgblight_timer_init(); // setup the timer + #if !defined(AUDIO_ENABLE) && defined(RGBLIGHT_TIMER) + rgblight_timer_init(); // setup the timer + #endif if (rgblight_config.enable) { rgblight_mode(rgblight_config.mode); @@ -192,14 +194,19 @@ void rgblight_mode(uint8_t mode) { eeconfig_update_rgblight(rgblight_config.raw); xprintf("rgblight mode: %u\n", rgblight_config.mode); if (rgblight_config.mode == 1) { - rgblight_timer_disable(); + #if !defined(AUDIO_ENABLE) && defined(RGBLIGHT_TIMER) + rgblight_timer_disable(); + #endif } else if (rgblight_config.mode >=2 && rgblight_config.mode <=23) { // MODE 2-5, breathing // MODE 6-8, rainbow mood // MODE 9-14, rainbow swirl // MODE 15-20, snake // MODE 21-23, knight - rgblight_timer_enable(); + + #if !defined(AUDIO_ENABLE) && defined(RGBLIGHT_TIMER) + rgblight_timer_enable(); + #endif } rgblight_sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val); } @@ -211,7 +218,10 @@ void rgblight_toggle(void) { if (rgblight_config.enable) { rgblight_mode(rgblight_config.mode); } else { - rgblight_timer_disable(); + + #if !defined(AUDIO_ENABLE) && defined(RGBLIGHT_TIMER) + rgblight_timer_disable(); + #endif _delay_ms(50); rgblight_set(); } @@ -328,6 +338,9 @@ void rgblight_set(void) { } } + +#if !defined(AUDIO_ENABLE) && defined(RGBLIGHT_TIMER) + // Animation timer -- AVR Timer3 void rgblight_timer_init(void) { static uint8_t rgblight_timer_is_init = 0; @@ -503,3 +516,5 @@ void rgblight_effect_knight(uint8_t interval) { } } + +#endif \ No newline at end of file diff --git a/quantum/rgblight.h b/quantum/rgblight.h index 64f92523e..def26c428 100644 --- a/quantum/rgblight.h +++ b/quantum/rgblight.h @@ -1,8 +1,11 @@ #ifndef RGBLIGHT_H #define RGBLIGHT_H -#ifndef RGBLIGHT_MODES -#define RGBLIGHT_MODES 23 + +#if !defined(AUDIO_ENABLE) && defined(RGBLIGHT_TIMER) + #define RGBLIGHT_MODES 23 +#else + #define RGBLIGHT_MODES 1 #endif #ifndef RGBLIGHT_EFFECT_SNAKE_LENGTH diff --git a/readme.md b/readme.md index c24d951d8..e87481251 100644 --- a/readme.md +++ b/readme.md @@ -704,23 +704,18 @@ For this mod, you need an unused pin wiring to DI of WS2812 strip. After wiring RGBLIGHT_ENABLE = yes -Please note that the underglow is not compatible with audio output. So you cannot enable both of them at the same time. +In order to use the underglow timer functions, you need to have `#define RGBLIGHT_TIMER` in your `config.h`, and have audio disabled (`AUDIO_ENABLE = no` in your Makefile). -Please add the following options into your config.h, and set them up according your hardware configuration. These settings are for the F4 by default: - - #define ws2812_PORTREG PORTF - #define ws2812_DDRREG DDRF - #define ws2812_pin PF4 +Please add the following options into your config.h, and set them up according your hardware configuration. These settings are for the `F4` pin by default: + + #define RGB_DI_PIN F4 // The pin your RGB strip is wired to + #define RGBLIGHT_TIMER // Require for fancier stuff (not compatible with audio) #define RGBLED_NUM 14 // Number of LEDs #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 #define RGBLIGHT_VAL_STEP 17 -You'll need to edit `PORTF`, `DDRF`, and `PF4` on the first three lines to the port/pin you have your LED(s) wired to, eg for B3 change things to: - - #define ws2812_PORTREG PORTB - #define ws2812_DDRREG DDRB - #define ws2812_pin PB3 +You'll need to edit `RGB_DI_PIN` to the pin you have your `DI` on your RGB strip wired to. The firmware supports 5 different light effects, and the color (hue, saturation, brightness) can be customized in most effects. To control the underglow, you need to modify your keymap file to assign those functions to some keys/key combinations. For details, please check this keymap. `keyboards/planck/keymaps/yang/keymap.c` -- cgit v1.2.3 From 0bfb6086158c64960f039524bbc2bb9e7bbee378 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Thu, 7 Jul 2016 19:56:55 +0300 Subject: Remove unhandled KC_BTLD, RESET should be used instead --- keyboards/chibios_test/keymaps/default/keymap.c | 2 +- keyboards/infinity_ergodox/keymaps/default/keymap.c | 5 ++++- tmk_core/common/keycode.h | 5 ----- 3 files changed, 5 insertions(+), 7 deletions(-) (limited to 'keyboards') diff --git a/keyboards/chibios_test/keymaps/default/keymap.c b/keyboards/chibios_test/keymaps/default/keymap.c index 239d70007..a362e2ccf 100644 --- a/keyboards/chibios_test/keymaps/default/keymap.c +++ b/keyboards/chibios_test/keymaps/default/keymap.c @@ -18,7 +18,7 @@ along with this program. If not, see . #include "chibios_test.h" const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - {{KC_CAPS}}, // test with KC_CAPS, KC_A, KC_BTLD + {{KC_CAPS}}, // test with KC_CAPS, KC_A, RESET }; const uint16_t fn_actions[] = { diff --git a/keyboards/infinity_ergodox/keymaps/default/keymap.c b/keyboards/infinity_ergodox/keymaps/default/keymap.c index c33fb7b92..f1e6b1c8a 100644 --- a/keyboards/infinity_ergodox/keymaps/default/keymap.c +++ b/keyboards/infinity_ergodox/keymaps/default/keymap.c @@ -18,6 +18,9 @@ along with this program. If not, see . #include "infinity_ergodox.h" +// Workaround for old keymap format +#define KC_RESET RESET + const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KEYMAP( // layer 0 : default // left hand @@ -63,7 +66,7 @@ const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KEYMAP( // layer 2 : keyboard functions // left hand - BTLD,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + RESET,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, FN3, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, diff --git a/tmk_core/common/keycode.h b/tmk_core/common/keycode.h index 448195306..fc66dc0ef 100644 --- a/tmk_core/common/keycode.h +++ b/tmk_core/common/keycode.h @@ -156,8 +156,6 @@ along with this program. If not, see . #define KC_WSTP KC_WWW_STOP #define KC_WREF KC_WWW_REFRESH #define KC_WFAV KC_WWW_FAVORITES -/* Jump to bootloader */ -#define KC_BTLD KC_BOOTLOADER /* Transparent */ #define KC_TRANSPARENT 1 #define KC_TRNS KC_TRANSPARENT @@ -428,9 +426,6 @@ enum internal_special_keycodes { KC_MEDIA_FAST_FORWARD, KC_MEDIA_REWIND, /* 0xBC */ - /* Jump to bootloader */ - KC_BOOTLOADER = 0xBF, - /* Fn key */ KC_FN0 = 0xC0, KC_FN1, -- cgit v1.2.3 From 50c686587ed49d8079ba1b11d45ceb6a55d6cd4b Mon Sep 17 00:00:00 2001 From: TerryMathews Date: Thu, 7 Jul 2016 23:34:33 -0400 Subject: Create keycodes for RGB control functions Moves RGB controls out of the macro function and assigns them their own keycodes: RGB_TOG (toggle on/off) RGB_MOD (mode step) RGB_HUI (increase hue) RGB_HUD (decrease hue) RGB_SAI (increase saturation) RGB_SAD (decrease saturation) RGB_VAI (increase brightness) RGB_VAD (decrease brightness) --- keyboards/clueboard/keymaps/default/keymap.c | 72 ++------------------------- keyboards/clueboard/keymaps/max/keymap.c | 66 ++----------------------- keyboards/cluepad/keymaps/default/keymap.c | 67 ++----------------------- keyboards/kc60/keymaps/stanleylai/keymap.c | 67 +------------------------ keyboards/kc60/keymaps/ws2812/keymap.c | 65 +------------------------ keyboards/phantom/keymaps/default/keymap.c | 69 +------------------------- keyboards/planck/keymaps/yang/keymap.c | 62 ++--------------------- keyboards/satan/keymaps/default/keymap.c | 68 +------------------------- keyboards/satan/keymaps/sethbc/keymap.c | 73 ++-------------------------- quantum/keymap.h | 10 ++++ quantum/quantum.c | 50 +++++++++++++++++++ 11 files changed, 83 insertions(+), 586 deletions(-) (limited to 'keyboards') diff --git a/keyboards/clueboard/keymaps/default/keymap.c b/keyboards/clueboard/keymaps/default/keymap.c index 89f71e83a..896bc7ebc 100644 --- a/keyboards/clueboard/keymaps/default/keymap.c +++ b/keyboards/clueboard/keymaps/default/keymap.c @@ -67,11 +67,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_RS] = KEYMAP( #ifdef RGBLIGHT_ENABLE - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(1), F(7), \ - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(8), \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_VAI, \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, \ KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - MO(_FL), KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), F(5), \ - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, F(2), F(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(4), F(6), F(3)), + MO(_FL), KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), RGB_SAI, \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, RGB_MOD, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_HUI), #else KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ @@ -83,30 +83,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { enum function_id { SHIFT_ESC, - #ifdef RGBLIGHT_ENABLE - RGBLED_TOGGLE, - RGBLED_STEP_MODE, - RGBLED_INCREASE_HUE, - RGBLED_DECREASE_HUE, - RGBLED_INCREASE_SAT, - RGBLED_DECREASE_SAT, - RGBLED_INCREASE_VAL, - RGBLED_DECREASE_VAL - #endif }; const uint16_t PROGMEM fn_actions[] = { [0] = ACTION_FUNCTION(SHIFT_ESC), - #ifdef RGBLIGHT_ENABLE - [1] = ACTION_FUNCTION(RGBLED_TOGGLE), - [2] = ACTION_FUNCTION(RGBLED_STEP_MODE), - [3] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), - [4] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), - [5] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), - [6] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), - [7] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), - [8] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), - #endif }; void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { @@ -132,49 +112,5 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { } } break; - //led operations - #ifdef RGBLIGHT_ENABLE - case RGBLED_TOGGLE: - if (record->event.pressed) { - rgblight_toggle(); - } - - break; - case RGBLED_INCREASE_HUE: - if (record->event.pressed) { - rgblight_increase_hue(); - } - break; - case RGBLED_DECREASE_HUE: - if (record->event.pressed) { - rgblight_decrease_hue(); - } - break; - case RGBLED_INCREASE_SAT: - if (record->event.pressed) { - rgblight_increase_sat(); - } - break; - case RGBLED_DECREASE_SAT: - if (record->event.pressed) { - rgblight_decrease_sat(); - } - break; - case RGBLED_INCREASE_VAL: - if (record->event.pressed) { - rgblight_increase_val(); - } - break; - case RGBLED_DECREASE_VAL: - if (record->event.pressed) { - rgblight_decrease_val(); - } - break; - case RGBLED_STEP_MODE: - if (record->event.pressed) { - rgblight_step(); - } - break; - #endif } } diff --git a/keyboards/clueboard/keymaps/max/keymap.c b/keyboards/clueboard/keymaps/max/keymap.c index 82c93401d..080b4930b 100644 --- a/keyboards/clueboard/keymaps/max/keymap.c +++ b/keyboards/clueboard/keymaps/max/keymap.c @@ -66,78 +66,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------------------------------------------------------' */ [_RS] = 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, F(0), F(6), \ - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(7), \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_VAI, \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, \ KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - MO(_FL), KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), F(4), \ - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, F(1), F(1), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(3), F(5), F(2)), + MO(_FL), KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), RGB_SAI, \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, RGB_MOD, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_HUI), }; enum function_id { - RGBLED_TOGGLE, - RGBLED_STEP_MODE, - RGBLED_INCREASE_HUE, - RGBLED_DECREASE_HUE, - RGBLED_INCREASE_SAT, - RGBLED_DECREASE_SAT, - RGBLED_INCREASE_VAL, - RGBLED_DECREASE_VAL, }; const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_FUNCTION(RGBLED_TOGGLE), - [1] = ACTION_FUNCTION(RGBLED_STEP_MODE), - [2] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), - [3] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), - [4] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), - [5] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), - [6] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), - [7] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), }; void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { switch (id) { - case RGBLED_TOGGLE: - //led operations - if (record->event.pressed) { - rgblight_toggle(); - } - - break; - case RGBLED_INCREASE_HUE: - if (record->event.pressed) { - rgblight_increase_hue(); - } - break; - case RGBLED_DECREASE_HUE: - if (record->event.pressed) { - rgblight_decrease_hue(); - } - break; - case RGBLED_INCREASE_SAT: - if (record->event.pressed) { - rgblight_increase_sat(); - } - break; - case RGBLED_DECREASE_SAT: - if (record->event.pressed) { - rgblight_decrease_sat(); - } - break; - case RGBLED_INCREASE_VAL: - if (record->event.pressed) { - rgblight_increase_val(); - } - break; - case RGBLED_DECREASE_VAL: - if (record->event.pressed) { - rgblight_decrease_val(); - } - break; - case RGBLED_STEP_MODE: - if (record->event.pressed) { - rgblight_step(); - } - break; } } diff --git a/keyboards/cluepad/keymaps/default/keymap.c b/keyboards/cluepad/keymaps/default/keymap.c index 8ba49952f..10881e8de 100644 --- a/keyboards/cluepad/keymaps/default/keymap.c +++ b/keyboards/cluepad/keymaps/default/keymap.c @@ -1,7 +1,6 @@ #include "cluepad.h" #include "backlight.h" -#include "rgblight.h" // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. @@ -46,77 +45,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * '-------------------' */ [_FL] = KEYMAP( - LT(_FL, KC_NLCK), KC_TRNS, KC_TRNS, F(0), \ - KC_TRNS, F(4), KC_TRNS, F(6), \ - F(3), BL_STEP, F(2), \ - KC_TRNS, F(5), KC_TRNS, F(7), \ - F(1), KC_TRNS) + LT(_FL, KC_NLCK), KC_TRNS, KC_TRNS, RGB_TOG, \ + KC_TRNS, RGB_SAI, KC_TRNS, RGB_VAI, \ + RGB_HUD, BL_STEP, RGB_HUI, \ + KC_TRNS, RGB_SAD, KC_TRNS, RGB_VAD, \ + RGB_MOD, KC_TRNS) }; enum function_id { - RGBLED_TOGGLE, - RGBLED_STEP_MODE, - RGBLED_INCREASE_HUE, - RGBLED_DECREASE_HUE, - RGBLED_INCREASE_SAT, - RGBLED_DECREASE_SAT, - RGBLED_INCREASE_VAL, - RGBLED_DECREASE_VAL, }; const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_FUNCTION(RGBLED_TOGGLE), - [1] = ACTION_FUNCTION(RGBLED_STEP_MODE), - [2] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), - [3] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), - [4] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), - [5] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), - [6] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), - [7] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), }; void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { switch (id) { - case RGBLED_TOGGLE: - if (record->event.pressed) { - rgblight_toggle(); - } - break; - case RGBLED_INCREASE_HUE: - if (record->event.pressed) { - rgblight_increase_hue(); - } - break; - case RGBLED_DECREASE_HUE: - if (record->event.pressed) { - rgblight_decrease_hue(); - } - break; - case RGBLED_INCREASE_SAT: - if (record->event.pressed) { - rgblight_increase_sat(); - } - break; - case RGBLED_DECREASE_SAT: - if (record->event.pressed) { - rgblight_decrease_sat(); - } - break; - case RGBLED_INCREASE_VAL: - if (record->event.pressed) { - rgblight_increase_val(); - } - break; - case RGBLED_DECREASE_VAL: - if (record->event.pressed) { - rgblight_decrease_val(); - } - break; - case RGBLED_STEP_MODE: - if (record->event.pressed) { - rgblight_step(); - } - break; } } diff --git a/keyboards/kc60/keymaps/stanleylai/keymap.c b/keyboards/kc60/keymaps/stanleylai/keymap.c index a7ea6040d..057c73bf4 100644 --- a/keyboards/kc60/keymaps/stanleylai/keymap.c +++ b/keyboards/kc60/keymaps/stanleylai/keymap.c @@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ - KC_TRNS,KC_NO, F(1), F(2), F(3), F(4), F(5), F(6), F(7), F(8), BL_STEP,BL_TOGG, KC_TRNS, KC_TRNS,\ + KC_TRNS,KC_NO, RGB_TOG,RGB_MOD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD,BL_STEP,BL_TOGG, KC_TRNS, KC_TRNS,\ KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS), #else RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ @@ -52,30 +52,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { enum function_id { SHIFT_ESC, - #ifdef RGBLIGHT_ENABLE - RGBLED_TOGGLE, - RGBLED_STEP_MODE, - RGBLED_INCREASE_HUE, - RGBLED_DECREASE_HUE, - RGBLED_INCREASE_SAT, - RGBLED_DECREASE_SAT, - RGBLED_INCREASE_VAL, - RGBLED_DECREASE_VAL, - #endif }; const uint16_t PROGMEM fn_actions[] = { [0] = ACTION_FUNCTION(SHIFT_ESC), - #ifdef RGBLIGHT_ENABLE - [1] = ACTION_FUNCTION(RGBLED_TOGGLE), - [2] = ACTION_FUNCTION(RGBLED_STEP_MODE), - [3] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), - [4] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), - [5] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), - [6] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), - [7] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), - [8] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), - #endif }; #define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) @@ -102,50 +82,5 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { } } break; - - #ifdef RGBLIGHT_ENABLE - - case RGBLED_TOGGLE: - //led operations - if (record->event.pressed) { - rgblight_toggle(); - } - break; - case RGBLED_INCREASE_HUE: - if (record->event.pressed) { - rgblight_increase_hue(); - } - break; - case RGBLED_DECREASE_HUE: - if (record->event.pressed) { - rgblight_decrease_hue(); - } - break; - case RGBLED_INCREASE_SAT: - if (record->event.pressed) { - rgblight_increase_sat(); - } - break; - case RGBLED_DECREASE_SAT: - if (record->event.pressed) { - rgblight_decrease_sat(); - } - break; - case RGBLED_INCREASE_VAL: - if (record->event.pressed) { - rgblight_increase_val(); - } - break; - case RGBLED_DECREASE_VAL: - if (record->event.pressed) { - rgblight_decrease_val(); - } - break; - case RGBLED_STEP_MODE: - if (record->event.pressed) { - rgblight_step(); - } - break; - #endif } } diff --git a/keyboards/kc60/keymaps/ws2812/keymap.c b/keyboards/kc60/keymaps/ws2812/keymap.c index bd5bef787..1c0574df0 100644 --- a/keyboards/kc60/keymaps/ws2812/keymap.c +++ b/keyboards/kc60/keymaps/ws2812/keymap.c @@ -52,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \ KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_INC, BL_TOGG, \ 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, F(1), F(2), F(3), F(4), F(5), F(6), F(7), F(8), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET), #else KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \ @@ -65,30 +65,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { enum function_id { SHIFT_ESC, - #ifdef RGBLIGHT_ENABLE - RGBLED_TOGGLE, - RGBLED_STEP_MODE, - RGBLED_INCREASE_HUE, - RGBLED_DECREASE_HUE, - RGBLED_INCREASE_SAT, - RGBLED_DECREASE_SAT, - RGBLED_INCREASE_VAL, - RGBLED_DECREASE_VAL - #endif }; const uint16_t PROGMEM fn_actions[] = { [0] = ACTION_FUNCTION(SHIFT_ESC), - #ifdef RGBLIGHT_ENABLE - [1] = ACTION_FUNCTION(RGBLED_TOGGLE), - [2] = ACTION_FUNCTION(RGBLED_STEP_MODE), - [3] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), - [4] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), - [5] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), - [6] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), - [7] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), - [8] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), - #endif }; void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { @@ -114,48 +94,5 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { } } break; - //led operations - #ifdef RGBLIGHT_ENABLE - case RGBLED_TOGGLE: - if (record->event.pressed) { - rgblight_toggle(); - } - break; - case RGBLED_INCREASE_HUE: - if (record->event.pressed) { - rgblight_increase_hue(); - } - break; - case RGBLED_DECREASE_HUE: - if (record->event.pressed) { - rgblight_decrease_hue(); - } - break; - case RGBLED_INCREASE_SAT: - if (record->event.pressed) { - rgblight_increase_sat(); - } - break; - case RGBLED_DECREASE_SAT: - if (record->event.pressed) { - rgblight_decrease_sat(); - } - break; - case RGBLED_INCREASE_VAL: - if (record->event.pressed) { - rgblight_increase_val(); - } - break; - case RGBLED_DECREASE_VAL: - if (record->event.pressed) { - rgblight_decrease_val(); - } - break; - case RGBLED_STEP_MODE: - if (record->event.pressed) { - rgblight_step(); - } - break; - #endif } } diff --git a/keyboards/phantom/keymaps/default/keymap.c b/keyboards/phantom/keymaps/default/keymap.c index 1368226aa..a4fc319ac 100644 --- a/keyboards/phantom/keymaps/default/keymap.c +++ b/keyboards/phantom/keymaps/default/keymap.c @@ -1,9 +1,5 @@ #include "phantom.h" -#ifdef RGBLIGHT_ENABLE -#include "rgblight.h" -#endif - // Used for SHIFT_ESC #define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) @@ -59,7 +55,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_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, F(1), F(2), F(3), F(4), F(5), F(6), F(7), F(8), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), #else KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ @@ -73,30 +69,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { enum function_id { SHIFT_ESC, - #ifdef RGBLIGHT_ENABLE - RGBLED_TOGGLE, - RGBLED_STEP_MODE, - RGBLED_INCREASE_HUE, - RGBLED_DECREASE_HUE, - RGBLED_INCREASE_SAT, - RGBLED_DECREASE_SAT, - RGBLED_INCREASE_VAL, - RGBLED_DECREASE_VAL - #endif }; const uint16_t PROGMEM fn_actions[] = { [0] = ACTION_FUNCTION(SHIFT_ESC), - #ifdef RGBLIGHT_ENABLE - [1] = ACTION_FUNCTION(RGBLED_TOGGLE), - [2] = ACTION_FUNCTION(RGBLED_STEP_MODE), - [3] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), - [4] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), - [5] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), - [6] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), - [7] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), - [8] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), - #endif }; void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { @@ -122,48 +98,5 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { } } break; - //led operations - #ifdef RGBLIGHT_ENABLE - case RGBLED_TOGGLE: - if (record->event.pressed) { - rgblight_toggle(); - } - break; - case RGBLED_INCREASE_HUE: - if (record->event.pressed) { - rgblight_increase_hue(); - } - break; - case RGBLED_DECREASE_HUE: - if (record->event.pressed) { - rgblight_decrease_hue(); - } - break; - case RGBLED_INCREASE_SAT: - if (record->event.pressed) { - rgblight_increase_sat(); - } - break; - case RGBLED_DECREASE_SAT: - if (record->event.pressed) { - rgblight_decrease_sat(); - } - break; - case RGBLED_INCREASE_VAL: - if (record->event.pressed) { - rgblight_increase_val(); - } - break; - case RGBLED_DECREASE_VAL: - if (record->event.pressed) { - rgblight_decrease_val(); - } - break; - case RGBLED_STEP_MODE: - if (record->event.pressed) { - rgblight_step(); - } - break; - #endif } } diff --git a/keyboards/planck/keymaps/yang/keymap.c b/keyboards/planck/keymaps/yang/keymap.c index 541b1a57e..5f2907a08 100644 --- a/keyboards/planck/keymaps/yang/keymap.c +++ b/keyboards/planck/keymaps/yang/keymap.c @@ -51,33 +51,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_RGB] = { /* RGBLIGHT */ {KC_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL}, {KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_END, KC_TRNS}, - {KC_TRNS, F(1), F(2), F(3), F(4), F(5), F(6), F(7), F(8), KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS}, {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} } }; enum function_id { - RGBLED_TOGGLE, - RGBLED_STEP_MODE, - RGBLED_INCREASE_HUE, - RGBLED_DECREASE_HUE, - RGBLED_INCREASE_SAT, - RGBLED_DECREASE_SAT, - RGBLED_INCREASE_VAL, - RGBLED_DECREASE_VAL, + }; const uint16_t PROGMEM fn_actions[] = { [0] = ACTION_LAYER_TAP_KEY(_RGB, KC_SPC), - [1] = ACTION_FUNCTION(RGBLED_TOGGLE), - [2] = ACTION_FUNCTION(RGBLED_STEP_MODE), - [3] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), - [4] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), - [5] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), - [6] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), - [7] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), - [8] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), }; const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) @@ -100,47 +85,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { switch (id) { - case RGBLED_TOGGLE: - //led operations - if (record->event.pressed) { - rgblight_toggle(); - } - - break; - case RGBLED_INCREASE_HUE: - if (record->event.pressed) { - rgblight_increase_hue(); - } - break; - case RGBLED_DECREASE_HUE: - if (record->event.pressed) { - rgblight_decrease_hue(); - } - break; - case RGBLED_INCREASE_SAT: - if (record->event.pressed) { - rgblight_increase_sat(); - } - break; - case RGBLED_DECREASE_SAT: - if (record->event.pressed) { - rgblight_decrease_sat(); - } - break; - case RGBLED_INCREASE_VAL: - if (record->event.pressed) { - rgblight_increase_val(); - } - break; - case RGBLED_DECREASE_VAL: - if (record->event.pressed) { - rgblight_decrease_val(); - } - break; - case RGBLED_STEP_MODE: - if (record->event.pressed) { - rgblight_step(); - } - break; + } } diff --git a/keyboards/satan/keymaps/default/keymap.c b/keyboards/satan/keymaps/default/keymap.c index b19404afc..35dbbb77b 100644 --- a/keyboards/satan/keymaps/default/keymap.c +++ b/keyboards/satan/keymaps/default/keymap.c @@ -1,8 +1,5 @@ #include "satan.h" -#ifdef RGBLIGHT_ENABLE -#include "rgblight.h" -#endif // Used for SHIFT_ESC #define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) @@ -53,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, \ KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_INC, BL_TOGG, \ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, F(1), F(2), F(3), F(4), F(5), F(6), F(7), F(8), KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS,RGB_TOG,RGB_MOD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, \ KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), #else KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, \ @@ -66,30 +63,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { enum function_id { SHIFT_ESC, - #ifdef RGBLIGHT_ENABLE - RGBLED_TOGGLE, - RGBLED_STEP_MODE, - RGBLED_INCREASE_HUE, - RGBLED_DECREASE_HUE, - RGBLED_INCREASE_SAT, - RGBLED_DECREASE_SAT, - RGBLED_INCREASE_VAL, - RGBLED_DECREASE_VAL - #endif }; const uint16_t PROGMEM fn_actions[] = { [0] = ACTION_FUNCTION(SHIFT_ESC), - #ifdef RGBLIGHT_ENABLE - [1] = ACTION_FUNCTION(RGBLED_TOGGLE), - [2] = ACTION_FUNCTION(RGBLED_STEP_MODE), - [3] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), - [4] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), - [5] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), - [6] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), - [7] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), - [8] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), - #endif }; void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { @@ -115,48 +92,5 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { } } break; - //led operations - #ifdef RGBLIGHT_ENABLE - case RGBLED_TOGGLE: - if (record->event.pressed) { - rgblight_toggle(); - } - break; - case RGBLED_INCREASE_HUE: - if (record->event.pressed) { - rgblight_increase_hue(); - } - break; - case RGBLED_DECREASE_HUE: - if (record->event.pressed) { - rgblight_decrease_hue(); - } - break; - case RGBLED_INCREASE_SAT: - if (record->event.pressed) { - rgblight_increase_sat(); - } - break; - case RGBLED_DECREASE_SAT: - if (record->event.pressed) { - rgblight_decrease_sat(); - } - break; - case RGBLED_INCREASE_VAL: - if (record->event.pressed) { - rgblight_increase_val(); - } - break; - case RGBLED_DECREASE_VAL: - if (record->event.pressed) { - rgblight_decrease_val(); - } - break; - case RGBLED_STEP_MODE: - if (record->event.pressed) { - rgblight_step(); - } - break; - #endif } } diff --git a/keyboards/satan/keymaps/sethbc/keymap.c b/keyboards/satan/keymaps/sethbc/keymap.c index 0ea4a7ae4..f8991f9fd 100644 --- a/keyboards/satan/keymaps/sethbc/keymap.c +++ b/keyboards/satan/keymaps/sethbc/keymap.c @@ -1,9 +1,5 @@ #include "satan.h" -#ifdef RGBLIGHT_ENABLE -#include "rgblight.h" -#endif - // Used for SHIFT_ESC #define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) @@ -44,39 +40,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), #else KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, RESET, \ - KC_CAPS, KC_TRNS, F(1), F(2), F(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC, \ - KC_TRNS, KC_VOLD, F(4), F(5), F(6), KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \ - KC_TRNS, F(7), F(8), KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, \ + KC_CAPS, KC_TRNS, RGB_TOG,RGB_MOD,RGB_HUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC, \ + KC_TRNS, KC_VOLD, RGB_HUD,RGB_SAI,RGB_SAD, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \ + KC_TRNS, RGB_VAI,RGB_VAD,KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, \ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), #endif }; enum function_id { SHIFT_ESC, - #ifdef RGBLIGHT_ENABLE - RGBLED_TOGGLE, - RGBLED_STEP_MODE, - RGBLED_INCREASE_HUE, - RGBLED_DECREASE_HUE, - RGBLED_INCREASE_SAT, - RGBLED_DECREASE_SAT, - RGBLED_INCREASE_VAL, - RGBLED_DECREASE_VAL - #endif }; const uint16_t PROGMEM fn_actions[] = { [0] = ACTION_FUNCTION(SHIFT_ESC), - #ifdef RGBLIGHT_ENABLE - [1] = ACTION_FUNCTION(RGBLED_TOGGLE), - [2] = ACTION_FUNCTION(RGBLED_STEP_MODE), - [3] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), - [4] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), - [5] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), - [6] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), - [7] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), - [8] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), - #endif }; void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { @@ -102,48 +78,5 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { } } break; - //led operations - #ifdef RGBLIGHT_ENABLE - case RGBLED_TOGGLE: - if (record->event.pressed) { - rgblight_toggle(); - } - break; - case RGBLED_INCREASE_HUE: - if (record->event.pressed) { - rgblight_increase_hue(); - } - break; - case RGBLED_DECREASE_HUE: - if (record->event.pressed) { - rgblight_decrease_hue(); - } - break; - case RGBLED_INCREASE_SAT: - if (record->event.pressed) { - rgblight_increase_sat(); - } - break; - case RGBLED_DECREASE_SAT: - if (record->event.pressed) { - rgblight_decrease_sat(); - } - break; - case RGBLED_INCREASE_VAL: - if (record->event.pressed) { - rgblight_increase_val(); - } - break; - case RGBLED_DECREASE_VAL: - if (record->event.pressed) { - rgblight_decrease_val(); - } - break; - case RGBLED_STEP_MODE: - if (record->event.pressed) { - rgblight_step(); - } - break; - #endif } } diff --git a/quantum/keymap.h b/quantum/keymap.h index 73f99f821..a15865183 100644 --- a/quantum/keymap.h +++ b/quantum/keymap.h @@ -156,6 +156,16 @@ enum quantum_keycodes { BL_INC, BL_TOGG, BL_STEP, + + // RGB functionality + RGB_TOG, + RGB_MOD, + RGB_HUI, + RGB_HUD, + RGB_SAI, + RGB_SAD, + RGB_VAI, + RGB_VAD, // Left shift, open paren KC_LSPO, diff --git a/quantum/quantum.c b/quantum/quantum.c index d8e43a465..5c0b53e22 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -103,6 +103,56 @@ bool process_record_quantum(keyrecord_t *record) { return false; } break; + #ifdef RGBLIGHT_ENABLE + case RGB_TOG: + if (record->event.pressed) { + rgblight_toggle(); + return false; + } + break; + case RGB_MOD: + if (record->event.pressed) { + rgblight_step(); + return false; + } + break; + case RGB_HUI: + if (record->event.pressed) { + rgblight_increase_hue(); + return false; + } + break; + case RGB_HUD: + if (record->event.pressed) { + rgblight_decrease_hue(); + return false; + } + break; + case RGB_SAI: + if (record->event.pressed) { + rgblight_increase_sat(); + return false; + } + break; + case RGB_SAD: + if (record->event.pressed) { + rgblight_decrease_sat(); + return false; + } + break; + case RGB_VAI: + if (record->event.pressed) { + rgblight_increase_val(); + return false; + } + break; + case RGB_VAD: + if (record->event.pressed) { + rgblight_decrease_val(); + return false; + } + break; + #endif case MAGIC_SWAP_CONTROL_CAPSLOCK ... MAGIC_UNSWAP_ALT_GUI: if (record->event.pressed) { // MAGIC actions (BOOTMAGIC without the boot) -- cgit v1.2.3 From ccfa7351add03eb6c3e081cd37893fc2da519c4b Mon Sep 17 00:00:00 2001 From: TerryMathews Date: Thu, 7 Jul 2016 23:50:04 -0400 Subject: Fix compile error on Clueboard --- keyboards/clueboard/keymaps/max/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboards') diff --git a/keyboards/clueboard/keymaps/max/keymap.c b/keyboards/clueboard/keymaps/max/keymap.c index 080b4930b..193809840 100644 --- a/keyboards/clueboard/keymaps/max/keymap.c +++ b/keyboards/clueboard/keymaps/max/keymap.c @@ -73,8 +73,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, RGB_MOD, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_HUI), }; -enum function_id { -}; +/*enum function_id { +};*/ const uint16_t PROGMEM fn_actions[] = { }; -- cgit v1.2.3 From e2ec45a755741a29ecd814e6151f4d4860b20386 Mon Sep 17 00:00:00 2001 From: TerryMathews Date: Thu, 7 Jul 2016 23:57:11 -0400 Subject: Fix cluepad and planck --- keyboards/cluepad/keymaps/default/keymap.c | 4 ++-- keyboards/planck/keymaps/yang/keymap.c | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'keyboards') diff --git a/keyboards/cluepad/keymaps/default/keymap.c b/keyboards/cluepad/keymaps/default/keymap.c index 10881e8de..66827fe48 100644 --- a/keyboards/cluepad/keymaps/default/keymap.c +++ b/keyboards/cluepad/keymaps/default/keymap.c @@ -52,8 +52,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { RGB_MOD, KC_TRNS) }; -enum function_id { -}; +/*enum function_id { +};*/ const uint16_t PROGMEM fn_actions[] = { }; diff --git a/keyboards/planck/keymaps/yang/keymap.c b/keyboards/planck/keymaps/yang/keymap.c index 5f2907a08..0ce849050 100644 --- a/keyboards/planck/keymaps/yang/keymap.c +++ b/keyboards/planck/keymaps/yang/keymap.c @@ -57,9 +57,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { } }; -enum function_id { - -}; +/*enum function_id { + +};*/ const uint16_t PROGMEM fn_actions[] = { [0] = ACTION_LAYER_TAP_KEY(_RGB, KC_SPC), -- cgit v1.2.3 From 66ffb1cb3a21c670719263f187e3470fd888f42a Mon Sep 17 00:00:00 2001 From: Robbie Gill Date: Thu, 7 Jul 2016 21:03:20 -0700 Subject: port missing support for hhkb-jp from tmk --- keyboards/hhkb/Makefile | 4 +++ keyboards/hhkb/config.h | 6 +++- keyboards/hhkb/hhkb.h | 27 ++++++++++++++ keyboards/hhkb/keymaps/jp/Makefile | 1 + keyboards/hhkb/keymaps/jp/keymap.c | 58 ++++++++++++++++++++++++++++++ keyboards/hhkb/keymaps/rdg_jp/Makefile | 1 + keyboards/hhkb/keymaps/rdg_jp/keymap.c | 65 ++++++++++++++++++++++++++++++++++ 7 files changed, 161 insertions(+), 1 deletion(-) create mode 100644 keyboards/hhkb/keymaps/jp/Makefile create mode 100644 keyboards/hhkb/keymaps/jp/keymap.c create mode 100644 keyboards/hhkb/keymaps/rdg_jp/Makefile create mode 100644 keyboards/hhkb/keymaps/rdg_jp/keymap.c (limited to 'keyboards') diff --git a/keyboards/hhkb/Makefile b/keyboards/hhkb/Makefile index 53eece396..6fe973e1e 100644 --- a/keyboards/hhkb/Makefile +++ b/keyboards/hhkb/Makefile @@ -78,6 +78,10 @@ ifndef QUANTUM_DIR include ../../Makefile endif +ifneq (, $(findstring yes, $(HHKB_JP))) + OPT_DEFS += -DHHKB_JP +endif + debug-on: EXTRAFLAGS += -DDEBUG -DDEBUG_ACTION debug-on: all diff --git a/keyboards/hhkb/config.h b/keyboards/hhkb/config.h index ee66e4457..3f0528b4b 100644 --- a/keyboards/hhkb/config.h +++ b/keyboards/hhkb/config.h @@ -29,7 +29,11 @@ along with this program. If not, see . #define DESCRIPTION q.m.k keyboard firmware for HHKB /* key matrix size */ -#define MATRIX_ROWS 8 +#ifdef HHKB_JP +# define MATRIX_ROWS 16 +#else +# define MATRIX_ROWS 8 +#endif #define MATRIX_COLS 8 #define TAPPING_TERM 200 diff --git a/keyboards/hhkb/hhkb.h b/keyboards/hhkb/hhkb.h index cc756c456..e95125efc 100644 --- a/keyboards/hhkb/hhkb.h +++ b/keyboards/hhkb/hhkb.h @@ -21,4 +21,31 @@ { K70, K71, K72, K73, K74, K75, K76, KC_NO } \ } + +#define KEYMAP_JP( \ + K02, K32, K62, K22, K12, K52, K72, KA2, K92, K82, KB2, KE2, KF2, KD2, KC2, \ + K03, K63, K23, K13, K53, K73, KA3, K93, K83, KB3, KE3, KF3, KD3, \ + K06, K66, K26, K16, K56, K76, KA6, K96, K86, KB6, KE6, KF6, KD6, KC6, \ + K05, K65, K25, K15, K55, K75, KA5, K95, K85, KB5, KE5, KF5, KD5, KC5, \ + K04, K34, K64, K24, K14, K74, K94, K84, KB4, KE4, KF4, KD4, KC4) \ +{ \ + { KC_NO, KC_NO, K02, K03, K04, K05, K06, KC_NO }, \ + { KC_NO, KC_NO, K12, K13, K14, K15, K16, KC_NO }, \ + { KC_NO, KC_NO, K22, K23, K24, K25, K26, KC_NO }, \ + { KC_NO, KC_NO, K32, KC_NO, K34, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, KC_NO, K52, K53, KC_NO, K55, K56, KC_NO }, \ + { KC_NO, KC_NO, K62, K63, K64, K65, K66, KC_NO }, \ + { KC_NO, KC_NO, K72, K73, K74, K75, K76, KC_NO }, \ + { KC_NO, KC_NO, K82, K83, K84, K85, K86, KC_NO }, \ + { KC_NO, KC_NO, K92, K93, K94, K95, K96, KC_NO }, \ + { KC_NO, KC_NO, KA2, KA3, KC_NO, KA5, KA6, KC_NO }, \ + { KC_NO, KC_NO, KB2, KB3, KB4, KB5, KB6, KC_NO }, \ + { KC_NO, KC_NO, KC2, KC_NO, KC4, KC5, KC6, KC_NO }, \ + { KC_NO, KC_NO, KD2, KD3, KD4, KD5, KD6, KC_NO }, \ + { KC_NO, KC_NO, KE2, KE3, KE4, KE5, KE6, KC_NO }, \ + { KC_NO, KC_NO, KF2, KF3, KF4, KF5, KF6, KC_NO } \ +} + + #endif diff --git a/keyboards/hhkb/keymaps/jp/Makefile b/keyboards/hhkb/keymaps/jp/Makefile new file mode 100644 index 000000000..92986292a --- /dev/null +++ b/keyboards/hhkb/keymaps/jp/Makefile @@ -0,0 +1 @@ +HHKB_JP=yes diff --git a/keyboards/hhkb/keymaps/jp/keymap.c b/keyboards/hhkb/keymaps/jp/keymap.c new file mode 100644 index 000000000..8525adce5 --- /dev/null +++ b/keyboards/hhkb/keymaps/jp/keymap.c @@ -0,0 +1,58 @@ +#include "hhkb.h" + +#define _______ KC_TRNS + + +/* Layer 0: HHKB JP + * ,-----------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 10| -| =|Yen|Bsp| + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | + * |------------------------------------------------------` Ent| + * |Ctrl | A| S| D| F| G| H| J| K| L| ;| '| `| | + * |-----------------------------------------------------------| + * |Shft | Z| X| C| V| B| N| M| ,| .| /| \| Up|Sft| + * |-----------------------------------------------------------| + * | ||Ctl|Alt|Cmd| | Spc |Bsp| | | ||Lft|Dwn|Rgh| + * `-----------------------------------------------------------' + */ + +/* Layer 1: HHKB mode (HHKB Fn) + * ,-----------------------------------------------------------. + * |Pwr| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| + * |-----------------------------------------------------------| + * |Caps | | | | | | | |Psc|Slk|Pus|Up | | | + * |------------------------------------------------------` | + * | |VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig| | | + * |-----------------------------------------------------------| + * | | | | | | | +| -|End|PgD|Dow| | | | + * |-----------------------------------------------------------| + * | || | | | | | | | | || | | | + * `-----------------------------------------------------------' + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = KEYMAP_JP( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_JYEN, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_UP, KC_RSFT, + MO(1), KC_ZKHK, KC_LGUI, KC_LALT, KC_MHEN, KC_SPC, KC_HENK, KC_KANA, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = KEYMAP_JP( + KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PWR, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, KC_PENT, + _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______, + _______, _______, _______, _______, _______, _______ , _______, _______, _______, _______, _______, _______, _______ + ) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t macro_id, uint8_t opt) { + return MACRO_NONE; +} + +const uint16_t PROGMEM fn_actions[] = { + +}; diff --git a/keyboards/hhkb/keymaps/rdg_jp/Makefile b/keyboards/hhkb/keymaps/rdg_jp/Makefile new file mode 100644 index 000000000..92986292a --- /dev/null +++ b/keyboards/hhkb/keymaps/rdg_jp/Makefile @@ -0,0 +1 @@ +HHKB_JP=yes diff --git a/keyboards/hhkb/keymaps/rdg_jp/keymap.c b/keyboards/hhkb/keymaps/rdg_jp/keymap.c new file mode 100644 index 000000000..700ba3a0b --- /dev/null +++ b/keyboards/hhkb/keymaps/rdg_jp/keymap.c @@ -0,0 +1,65 @@ +#include "hhkb.h" + +#define _______ KC_TRNS + +enum { + ZER, + HDN, + OSY +}; + + +#define CTL_ESC CTL_T(KC_ESC) +#define SFT_BSP SFT_T(KC_BSPC) + +#define SCRNS3 LGUI(LCTL(LSFT(KC_3))) +#define SCRNS4 LGUI(LCTL(LSFT(KC_4))) + + +/* hhkb jp ~ layout + * ,-----------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 10| -| =|Yen|Bsp| + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | + * |------------------------------------------------------` Ent| + * |Ctrl | A| S| D| F| G| H| J| K| L| ;| '| `| | + * |-----------------------------------------------------------| + * |Shft | Z| X| C| V| B| N| M| ,| .| /| \| Up|Sft| + * |-----------------------------------------------------------| + * | ||Ctl|Alt|Cmd| | Spc |Bsp| | | ||Lft|Dwn|Rgh| + * `-----------------------------------------------------------' + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [ZER] = KEYMAP_JP( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_INS, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, + CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_GRV, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSLS, KC_UP, KC_RSFT, + MO(HDN), KC_LCTL, KC_LALT, KC_LGUI, MO(HDN), KC_SPC, SFT_BSP, MO(HDN), MO(OSY), KC_NO, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [HDN] = KEYMAP_JP( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, + _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, + _______, KC_TILD, KC_GRV, KC_BSLS, KC_PIPE, KC_MINS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TILD, KC_GRV, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PWR, _______, _______, KC_ENT, _______, _______, _______, _______, KC_PGUP, _______, + _______, _______, _______, _______, _______, KC_UNDS , KC_DEL, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ), + + [OSY] = KEYMAP_JP( + _______, _______, _______, SCRNS3, SCRNS4, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______ , _______, _______, _______, _______, _______, _______, _______ + ) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t macro_id, uint8_t opt) { + return MACRO_NONE; +} + +const uint16_t PROGMEM fn_actions[] = { + +}; -- cgit v1.2.3 From 564c743aa025c094f9c31ba2049aa50e15d76ab7 Mon Sep 17 00:00:00 2001 From: TerryMathews Date: Fri, 8 Jul 2016 03:40:05 -0400 Subject: Fix a function mismatch that was causing LEDs to not properly initialize See #430. Name of function being called at init was updated to led_init_ports(), but the call itself wasn't renamed. --- keyboards/phantom/led.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/phantom/led.c b/keyboards/phantom/led.c index b2459c774..69dba7d40 100644 --- a/keyboards/phantom/led.c +++ b/keyboards/phantom/led.c @@ -19,7 +19,7 @@ along with this program. If not, see . #include "stdint.h" #include "led.h" -void led_init(void) { +void led_init_ports(void) { // * Set our LED pins as output DDRB |= (1<<6); DDRB |= (1<<7); -- cgit v1.2.3 From 979a0d25f0092ecf181f753bac71ed4528dc2be5 Mon Sep 17 00:00:00 2001 From: TerryMathews Date: Sat, 9 Jul 2016 16:42:26 -0400 Subject: Establish Poker clone keymap for Satan Maps all of the side-print legends on the stock Poker II keycaps that are feasible (doesn't support repeat rate toggling, Pmode recording). --- keyboards/satan/keymaps/poker/keymap.c | 116 +++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 keyboards/satan/keymaps/poker/keymap.c (limited to 'keyboards') diff --git a/keyboards/satan/keymaps/poker/keymap.c b/keyboards/satan/keymaps/poker/keymap.c new file mode 100644 index 000000000..8181955cf --- /dev/null +++ b/keyboards/satan/keymaps/poker/keymap.c @@ -0,0 +1,116 @@ +#include "satan.h" + +// Used for SHIFT_ESC +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _FL 1 +#define _RL 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: (Base Layer) Default Layer + * ,-----------------------------------------------------------. + * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | + * |-----------------------------------------------------------| + * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | + * |-----------------------------------------------------------| + * |Ctrl|Gui |Alt | Space |Alt |Gui |FN |Ctrl | + * `-----------------------------------------------------------' + */ +[_BL] = KEYMAP( + F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, \ + KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT, MO(_RL), MO(_FL), KC_RCTL), + +/* Keymap _FL: Function Layer + * ,-----------------------------------------------------------. + * | ~ | F1|F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| DEL | + * |-----------------------------------------------------------| + * | | Up| | | | |Cal| |Ins| |PrSc|Sclk|Paus| | + * |-----------------------------------------------------------| + * | |Left|Down|Rig| | | | | | |Home|PgUp| | + * |-----------------------------------------------------------| + * | | |App| | | |Vdn|Vup|Mute|End|PgDn| | + * |-----------------------------------------------------------| + * | | | | | | | | | + * `-----------------------------------------------------------' + */ +[_FL] = KEYMAP( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \ + KC_TRNS,KC_TRNS, KC_UP, KC_TRNS,KC_TRNS,KC_TRNS, KC_CALC,KC_TRNS,KC_INS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, \ + KC_TRNS,KC_LEFT,KC_DOWN,KC_RGHT,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_APP, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, KC_TRNS, \ + KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + /* Keymap _RL: Function Layer + * ,-----------------------------------------------------------. + * | | | | | | | | | | | | | | RESET| + * |-----------------------------------------------------------| + * | | | | | | | | | | | |BL-|BL+|BL | + * |-----------------------------------------------------------| + * | | | | | | | | | | | | | + * |-----------------------------------------------------------| + * | | F1|F2 | F3|F4 | F5| F6| F7| F8| | | | + * |-----------------------------------------------------------| + * | | | | | | | | | + * `-----------------------------------------------------------' + */ +[_RL] = KEYMAP( + #ifdef RGBLIGHT_ENABLE + KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, \ + KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_INC, BL_TOGG, \ + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, RGB_TOG,RGB_MOD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + #else + KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, \ + KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_INC, BL_TOGG, \ + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + #endif +}; + +enum function_id { + SHIFT_ESC, +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(SHIFT_ESC), +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + static uint8_t shift_esc_shift_mask; + switch (id) { + case SHIFT_ESC: + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + } +} -- cgit v1.2.3 From 1ab527a4dbf6ad14c04b07dc6190470c8119b030 Mon Sep 17 00:00:00 2001 From: Max Whittingham Date: Sat, 9 Jul 2016 03:20:58 -0500 Subject: Cleaning up repo --- keyboards/gh60/keymaps/robotmaxtron/Makefile | 112 ++++++++++ .../gh60/keymaps/robotmaxtron/WS2812-wiring.jpg | Bin 0 -> 1038926 bytes keyboards/gh60/keymaps/robotmaxtron/config.h | 190 +++++++++++++++++ keyboards/gh60/keymaps/robotmaxtron/keymap.c | 228 +++++++++++++++++++++ keyboards/gh60/keymaps/robotmaxtron/readme.md | 16 ++ 5 files changed, 546 insertions(+) create mode 100644 keyboards/gh60/keymaps/robotmaxtron/Makefile create mode 100644 keyboards/gh60/keymaps/robotmaxtron/WS2812-wiring.jpg create mode 100644 keyboards/gh60/keymaps/robotmaxtron/config.h create mode 100644 keyboards/gh60/keymaps/robotmaxtron/keymap.c create mode 100644 keyboards/gh60/keymaps/robotmaxtron/readme.md (limited to 'keyboards') diff --git a/keyboards/gh60/keymaps/robotmaxtron/Makefile b/keyboards/gh60/keymaps/robotmaxtron/Makefile new file mode 100644 index 000000000..2e69aee29 --- /dev/null +++ b/keyboards/gh60/keymaps/robotmaxtron/Makefile @@ -0,0 +1,112 @@ +#---------------------------------------------------------------------------- +# On command line: +# +# make all = Make software. +# +# make clean = Clean out built project files. +# +# make coff = Convert ELF to AVR COFF. +# +# make extcoff = Convert ELF to AVR Extended COFF. +# +# make program = Download the hex file to the device. +# Please customize your programmer settings(PROGRAM_CMD) +# +# make teensy = Download the hex file to the device, using teensy_loader_cli. +# (must have teensy_loader_cli installed). +# +# make dfu = Download the hex file to the device, using dfu-programmer (must +# have dfu-programmer installed). +# +# make flip = Download the hex file to the device, using Atmel FLIP (must +# have Atmel FLIP installed). +# +# make dfu-ee = Download the eeprom file to the device, using dfu-programmer +# (must have dfu-programmer installed). +# +# make flip-ee = Download the eeprom file to the device, using Atmel FLIP +# (must have Atmel FLIP installed). +# +# make debug = Start either simulavr or avarice as specified for debugging, +# with avr-gdb or avr-insight as the front end for debugging. +# +# make filename.s = Just compile filename.c into the assembler code only. +# +# make filename.i = Create a preprocessed source file for use in submitting +# bug reports to the GCC project. +# +# To rebuild project do "make clean" then "make all". +#---------------------------------------------------------------------------- + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +# CONSOLE_ENABLE ?= yes # Console for debug(+400) +# COMMAND_ENABLE ?= yes # Commands for debug and configuration +KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend +NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality +# MIDI_ENABLE ?= YES # MIDI controls +# UNICODE_ENABLE ?= YES # Unicode +# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE ?= yes # Enable RGB Underglow + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif + diff --git a/keyboards/gh60/keymaps/robotmaxtron/WS2812-wiring.jpg b/keyboards/gh60/keymaps/robotmaxtron/WS2812-wiring.jpg new file mode 100644 index 000000000..4ab8cc31a Binary files /dev/null and b/keyboards/gh60/keymaps/robotmaxtron/WS2812-wiring.jpg differ diff --git a/keyboards/gh60/keymaps/robotmaxtron/config.h b/keyboards/gh60/keymaps/robotmaxtron/config.h new file mode 100644 index 000000000..8272875ed --- /dev/null +++ b/keyboards/gh60/keymaps/robotmaxtron/config.h @@ -0,0 +1,190 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER geekhack +#define PRODUCT GH60 +#define DESCRIPTION t.m.k. keyboard firmware for GH60 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ + #define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 } +// Rev A +// #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B0, B5, B4, D7, D6, B3 } +// Rev B/C + #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +/* + * RGB Underglow + * These settings are for the F4 by default: + * + * + * #define ws2812_PORTREG PORTF + * #define ws2812_DDRREG DDRF + * #define ws2812_pin PF4 + * #define RGBLED_NUM 14 // Number of LEDs + * #define RGBLIGHT_HUE_STEP 10 + * #define RGBLIGHT_SAT_STEP 17 + * #define RGBLIGHT_VAL_STEP 17 + * + * The firmware supports 5 different light effects, and the color (hue, saturation, brightness) can be customized in most effects. + * To control the underglow, you need to modify your keymap file to assign those functions to some keys/key combinations. + * For details, please check this keymap. keyboard/planck/keymaps/yang/keymap.c +*/ + +/* Deprecated code below +#define ws2812_PORTREG PORTF +#define ws2812_DDRREG DDRF +#define ws2812_pin PF4 +*/ +#define RGB_DI_PIN F4 +#define RGBLIGHT_TIMER +#define RGBLED_NUM 8 // Number of LEDs +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#endif diff --git a/keyboards/gh60/keymaps/robotmaxtron/keymap.c b/keyboards/gh60/keymaps/robotmaxtron/keymap.c new file mode 100644 index 000000000..54cb2747f --- /dev/null +++ b/keyboards/gh60/keymaps/robotmaxtron/keymap.c @@ -0,0 +1,228 @@ +#include "gh60.h" +#include "action_layer.h" + +#define _BL 0 +#define _AL 1 +#define _FL 2 +#define _UL 3 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * Base layer, pretty standard ANSI layout. + * ,-----------------------------------------------------------. + * |FN12| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| + * |-----------------------------------------------------------| + * |Caps/Fn| A| S| D| F| G| H| J| K| L| ;| '|Return | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | + * |-----------------------------------------------------------| + * |Ctrl|Gui |Alt | Space |Alt |Fn |Menu|Ctrl| + * `-----------------------------------------------------------' + */ + [_BL] = KEYMAP( + FN12,1,2,3,4,5,6,7,8,9,0,MINS,EQL,BSPC, \ + TAB,Q,W,E,R,T,Y,U,I,O,P,LBRC,RBRC,BSLS, \ + FN2,A,S,D,F,G,H,J,K,L,SCLN,QUOT,NO,ENT, \ + LSFT,NO,Z,X,C,V,B,N,M,COMM,DOT,SLSH,NO,RSFT, \ + LCTL,LGUI,LALT, SPC, NO,RALT,FN0,APP, RCTL), + + /* + * Locking arrow keys to WASD for when you need dedicated arrow keys + * ,-----------------------------------------------------------. + * | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| + * | | |Up | | | | | | | | | | | | + * |-----------------------------------------------------------| + * | |Left|Down|Rght| | | | | | | | | | + * |-----------------------------------------------------------| + * | | | | | | | | | | | | | + * |-----------------------------------------------------------| + * | | | | | | | | | + * `-----------------------------------------------------------' + */ + [_AL] = KEYMAP( + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,UP,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS,TRNS), + + + /* + * Primary function layer, mostly the same as the traditional Pok3r layout. + * ,-------------------------------------------------------------. + * |`~ | F1| F2| F3| F4| F5| F6| F7| F8| F9| F10| F11| F12|DEL | + * |-------------------------------------------------------------| + * | |_AL| | | | |Calc|PgUp|Up|PgDn|Ptscn|Srlck|Pause| | + * |-------------------------------------------------------------| + * | | | | | | |Home|Left|Down|Rght|Ins| | | + * |-------------------------------------------------------------| + * | |_UL| | | | | | | | | | | + * |-------------------------------------------------------------| + * | | | | | | | | | + * `-------------------------------------------------------------' + */ + [_FL] = KEYMAP( + GRAVE,F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12, DELETE, \ + TRNS,FN1,TRNS,TRNS,TRNS,TRNS,CALC,PGUP,UP,PGDN,PSCR,SLCK,PAUS,TRNS, \ + TRNS,MUTE,_VOLDOWN,_VOLUP,TRNS,TRNS,HOME,LEFT,DOWN,RGHT,INS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,FN3,TRNS,TRNS,TRNS,TRNS,END,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS,TRNS), + + /* + * Locking layer for controlling the underglow. + * + * ,-----------------------------------------------------------. + * | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| + * | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| + * | |On|Mode| | | | | | | | | | | + * |-----------------------------------------------------------| + * | | |Hue+|Hue-|Sat+|Sat-|Val+|Val-| | | | | + * |-----------------------------------------------------------| + * | | | | | | | | | + * `-----------------------------------------------------------' + */ + [_UL] = KEYMAP( + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,FN4,FN5,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,FN6,FN7,FN8,FN9,FN10,FN11,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS,TRNS), +}; + +enum function_id { + RGBLED_TOGGLE, + RGBLED_STEP_MODE, + RGBLED_INCREASE_HUE, + RGBLED_DECREASE_HUE, + RGBLED_INCREASE_SAT, + RGBLED_DECREASE_SAT, + RGBLED_INCREASE_VAL, + RGBLED_DECREASE_VAL, + SHIFT_ESC, +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(2), // Momentary Fn overlay + [1] = ACTION_LAYER_TOGGLE(1), // Toggle Arrow Layer overlay + [2] = ACTION_LAYER_TAP_KEY(2, KC_CAPS), // Tap to toggle caps lock and hold to activate function layer + [3] = ACTION_LAYER_TOGGLE(3), // Toggle Underglow Layer overlay + [4] = ACTION_FUNCTION(RGBLED_TOGGLE), //Turn on/off underglow + [5] = ACTION_FUNCTION(RGBLED_STEP_MODE), // Change underglow mode + [6] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), + [7] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), + [8] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), + [9] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), + [10] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), + [11] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), + [12] = ACTION_FUNCTION(SHIFT_ESC), +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + // This is some kind of macro code, haven't quite figured it out yet. + // Todo: Figure out macro coding here + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +void matrix_scan_user(void) { + +// Layer LED indicators +// ESC led on when in function layer, WASD cluster leds enabled when on arrow cluster +// Todo: Caps lock led on when caps lock is enabled + uint32_t layer = layer_state; + if (layer & (1<<1)) { + gh60_wasd_leds_on(); + } else { + gh60_wasd_leds_off(); + } + + if (layer & (1<<2)) { + gh60_esc_led_on(); + } else { + gh60_esc_led_off(); + } +}; + +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + switch (id) { + case RGBLED_TOGGLE: + //led operations + if (record->event.pressed) { + rgblight_toggle(); + } + break; + case RGBLED_INCREASE_HUE: + if (record->event.pressed) { + rgblight_increase_hue(); + } + break; + case RGBLED_DECREASE_HUE: + if (record->event.pressed) { + rgblight_decrease_hue(); + } + break; + case RGBLED_INCREASE_SAT: + if (record->event.pressed) { + rgblight_increase_sat(); + } + break; + case RGBLED_DECREASE_SAT: + if (record->event.pressed) { + rgblight_decrease_sat(); + } + break; + case RGBLED_INCREASE_VAL: + if (record->event.pressed) { + rgblight_increase_val(); + } + break; + case RGBLED_DECREASE_VAL: + if (record->event.pressed) { + rgblight_decrease_val(); + } + break; + case RGBLED_STEP_MODE: + if (record->event.pressed) { + rgblight_step(); + } + break; + static uint8_t shift_esc_shift_mask; + case SHIFT_ESC: + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + } +}; diff --git a/keyboards/gh60/keymaps/robotmaxtron/readme.md b/keyboards/gh60/keymaps/robotmaxtron/readme.md new file mode 100644 index 000000000..3e2292500 --- /dev/null +++ b/keyboards/gh60/keymaps/robotmaxtron/readme.md @@ -0,0 +1,16 @@ +robotmaxtron's GH60 Layout +===================== + +##Quantum MK Firmware +For the full Quantum feature list, see the parent readme.md. + +* Standard ANSI layout with Pok3r styled function layers +* ESC key led enables when on function layer +* Lockable layer with arrow keys on WASD with backlighting to indicate locked on arrow layer +* Neopixel/WS2812 RGB Underglow Support + +## Reference Images +![Wiring Refererence] (WS2812-wiring.jpg) + +### Additional Credits +Keymap has been based on various keymaps available from the QMK Repo for the GH60-SATAN and KC60 keyboards. -- cgit v1.2.3 From df958a2dbc8b8ca19d57e7f4588656df40bb71f1 Mon Sep 17 00:00:00 2001 From: Max Whittingham Date: Sat, 9 Jul 2016 18:58:16 -0500 Subject: Update keymap.c --- keyboards/gh60/keymaps/robotmaxtron/keymap.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'keyboards') diff --git a/keyboards/gh60/keymaps/robotmaxtron/keymap.c b/keyboards/gh60/keymaps/robotmaxtron/keymap.c index 54cb2747f..263eec4e5 100644 --- a/keyboards/gh60/keymaps/robotmaxtron/keymap.c +++ b/keyboards/gh60/keymaps/robotmaxtron/keymap.c @@ -125,8 +125,6 @@ const uint16_t PROGMEM fn_actions[] = { const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // MACRODOWN only works in this function - // This is some kind of macro code, haven't quite figured it out yet. - // Todo: Figure out macro coding here switch(id) { case 0: if (record->event.pressed) { @@ -143,7 +141,6 @@ void matrix_scan_user(void) { // Layer LED indicators // ESC led on when in function layer, WASD cluster leds enabled when on arrow cluster -// Todo: Caps lock led on when caps lock is enabled uint32_t layer = layer_state; if (layer & (1<<1)) { gh60_wasd_leds_on(); @@ -204,6 +201,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { } break; static uint8_t shift_esc_shift_mask; + // Shift + ESC = ~ case SHIFT_ESC: shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; if (record->event.pressed) { -- cgit v1.2.3 From 753cbee5c06d352ef185dc624cf1152d046b58b6 Mon Sep 17 00:00:00 2001 From: Stanley Lai Date: Sun, 10 Jul 2016 12:07:56 -0700 Subject: Added my custom keymap for Satan --- keyboards/satan/keymaps/stanleylai/config.h | 20 +++++++ keyboards/satan/keymaps/stanleylai/keymap.c | 84 +++++++++++++++++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 keyboards/satan/keymaps/stanleylai/config.h create mode 100644 keyboards/satan/keymaps/stanleylai/keymap.c (limited to 'keyboards') diff --git a/keyboards/satan/keymaps/stanleylai/config.h b/keyboards/satan/keymaps/stanleylai/config.h new file mode 100644 index 000000000..ae2bd36db --- /dev/null +++ b/keyboards/satan/keymaps/stanleylai/config.h @@ -0,0 +1,20 @@ +#include "../../config.h" + +// USB Device descriptor parameter +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0003 +#define MANUFACTURER Custom +#define PRODUCT GH60 rev.CHN +#define DESCRIPTION QMK keyboard firmware for GH60 with WS2812 support + +// Backlight configuration +#define BACKLIGHT_LEVELS 3 + +// Underlight configuration +#define RGB_DI_PIN E2 +#define RGBLIGHT_TIMER +#define RGBLED_NUM 6 // Number of LEDs +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/satan/keymaps/stanleylai/keymap.c b/keyboards/satan/keymaps/stanleylai/keymap.c new file mode 100644 index 000000000..623427e97 --- /dev/null +++ b/keyboards/satan/keymaps/stanleylai/keymap.c @@ -0,0 +1,84 @@ +#include "satan.h" + +// Used for SHIFT_ESC +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _FL 1 +#define _RGBL 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// See base_layer.png and rgb_layer.png for layout reference + +// Base Default Layer +// Mac Modifier Layout. Use BootMagic to toggle GUI and ALT positions. +[_BL] = KEYMAP_HHKB( + F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NO, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \ + LT(_FL, KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, MO(_FL), \ + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT), + +// Function layer +[_FL] = KEYMAP_HHKB( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_NO, \ + KC_NO, KC_MPRV, KC_UP, KC_MNXT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_INS, \ + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, LT(_RGBL, KC_PGUP), KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_HOME, KC_PGDN, KC_END), + +// RGB Layer +[_RGBL] = KEYMAP_HHKB( + #ifdef RGBLIGHT_ENABLE + RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, BL_TOGG, BL_STEP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_NO, KC_NO, KC_TRNS, KC_TRNS,\ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + #else + RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_NO, BL_TOGG, BL_STEP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS,\ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + #endif +}; + +enum function_id { + SHIFT_ESC, +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(SHIFT_ESC), +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + static uint8_t shift_esc_shift_mask; + switch (id) { + case SHIFT_ESC: + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + } +} -- cgit v1.2.3 From b12fe6abb25db1feca6a7649097a8d1cb67a063f Mon Sep 17 00:00:00 2001 From: Smilliam Date: Sun, 10 Jul 2016 19:04:01 -0700 Subject: Made rollover behavior for space cadet optional --- keyboards/kc60/Makefile | 4 ++-- keyboards/kc60/config.h | 6 ++++++ quantum/quantum.c | 20 ++++++++++++-------- readme.md | 6 ++++++ 4 files changed, 26 insertions(+), 10 deletions(-) (limited to 'keyboards') diff --git a/keyboards/kc60/Makefile b/keyboards/kc60/Makefile index 9717b519c..855e81b1c 100644 --- a/keyboards/kc60/Makefile +++ b/keyboards/kc60/Makefile @@ -53,11 +53,11 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) +BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) CONSOLE_ENABLE ?= yes # Console for debug(+400) -COMMAND_ENABLE ?= yes # Commands for debug and configuration +COMMAND_ENABLE ?= no # Commands for debug and configuration KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend diff --git a/keyboards/kc60/config.h b/keyboards/kc60/config.h index c4a9b9ff8..a315f688f 100644 --- a/keyboards/kc60/config.h +++ b/keyboards/kc60/config.h @@ -107,6 +107,12 @@ along with this program. If not, see . keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ ) +/* Prevent stuck modifiers when switching between FN layers */ +#define PREVENT_STUCK_MODIFIERS + +/* Enable opposite shift key to cancel space cadet state */ +#define DISABLE_SPACE_CADET_ROLLOVER + /* control how magic key switches layers */ //#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true //#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true diff --git a/quantum/quantum.c b/quantum/quantum.c index 71c3c723b..d91b8f2d0 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -162,10 +162,12 @@ bool process_record_quantum(keyrecord_t *record) { register_mods(MOD_BIT(KC_LSFT)); } else { - if (get_mods() & MOD_BIT(KC_RSFT)) { - shift_interrupted[0] = true; - shift_interrupted[1] = true; - } + #ifdef DISABLE_SPACE_CADET_ROLLOVER + if (get_mods() & MOD_BIT(KC_RSFT)) { + shift_interrupted[0] = true; + shift_interrupted[1] = true; + } + #endif if (!shift_interrupted[0]) { register_code(LSPO_KEY); unregister_code(LSPO_KEY); @@ -182,10 +184,12 @@ bool process_record_quantum(keyrecord_t *record) { register_mods(MOD_BIT(KC_RSFT)); } else { - if (get_mods() & MOD_BIT(KC_LSFT)) { - shift_interrupted[0] = true; - shift_interrupted[1] = true; - } + #ifdef DISABLE_SPACE_CADET_ROLLOVER + if (get_mods() & MOD_BIT(KC_LSFT)) { + shift_interrupted[0] = true; + shift_interrupted[1] = true; + } + #endif if (!shift_interrupted[1]) { register_code(RSPC_KEY); unregister_code(RSPC_KEY); diff --git a/readme.md b/readme.md index c24d951d8..cc36a34ff 100644 --- a/readme.md +++ b/readme.md @@ -309,6 +309,12 @@ It's defaulted to work on US keyboards, but if your layout uses different keys f #define LSPO_KEY KC_9 #define RSPC_KEY KC_0 +You can also choose between different rollover behaviors of the shift keys by defining: + + #define DISABLE_SPACE_CADET_ROLLOVER + +in your `config.h`. Disabling rollover allows you to use the opposite shift key to cancel the space cadet state in the event of an erroneous press instead of emitting a pair of parentheses when the keys are released. + The only other thing you're going to want to do is create a `Makefile` in your keymap directory and set the following: ``` -- cgit v1.2.3 From 5e58e2281ad872048719b2c142169f3e8103af26 Mon Sep 17 00:00:00 2001 From: Smilliam Date: Sun, 10 Jul 2016 19:10:00 -0700 Subject: amended extraneous file edits --- keyboards/kc60/Makefile | 2 +- keyboards/kc60/config.h | 6 ------ 2 files changed, 1 insertion(+), 7 deletions(-) (limited to 'keyboards') diff --git a/keyboards/kc60/Makefile b/keyboards/kc60/Makefile index 855e81b1c..b00a488b9 100644 --- a/keyboards/kc60/Makefile +++ b/keyboards/kc60/Makefile @@ -57,7 +57,7 @@ BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) CONSOLE_ENABLE ?= yes # Console for debug(+400) -COMMAND_ENABLE ?= no # Commands for debug and configuration +COMMAND_ENABLE ?= yes # Commands for debug and configuration KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend diff --git a/keyboards/kc60/config.h b/keyboards/kc60/config.h index a315f688f..c4a9b9ff8 100644 --- a/keyboards/kc60/config.h +++ b/keyboards/kc60/config.h @@ -107,12 +107,6 @@ along with this program. If not, see . keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ ) -/* Prevent stuck modifiers when switching between FN layers */ -#define PREVENT_STUCK_MODIFIERS - -/* Enable opposite shift key to cancel space cadet state */ -#define DISABLE_SPACE_CADET_ROLLOVER - /* control how magic key switches layers */ //#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true //#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -- cgit v1.2.3 From cb0e102adb4a8accd4f7210153cbcc3e5fa183ac Mon Sep 17 00:00:00 2001 From: Ruiqi Mao Date: Mon, 11 Jul 2016 01:18:07 -0700 Subject: fixed clueboard LED pin assignments and matrix documentation --- keyboards/clueboard/clueboard.c | 16 ---------------- keyboards/clueboard/rev1/rev1.c | 16 ++++++++++++++++ keyboards/clueboard/rev2/rev2.c | 16 ++++++++++++++++ keyboards/clueboard/rev2/rev2.h | 2 +- 4 files changed, 33 insertions(+), 17 deletions(-) (limited to 'keyboards') diff --git a/keyboards/clueboard/clueboard.c b/keyboards/clueboard/clueboard.c index 13195bda6..3435202ba 100644 --- a/keyboards/clueboard/clueboard.c +++ b/keyboards/clueboard/clueboard.c @@ -1,17 +1 @@ #include "clueboard.h" - -void led_init_ports() { - // * Set our LED pins as output - DDRB |= (1<<4); -} - -void led_set_kb(uint8_t usb_led) { - DDRF |= (1<<0); - if (usb_led & (1< 99605 bytes .../keymaps/teckinesis/ordinary-base.txt | 27 ++ .../keymaps/teckinesis/ordinary-media.png | Bin 0 -> 124144 bytes .../keymaps/teckinesis/ordinary-media.txt | 27 ++ .../keymaps/teckinesis/ordinary-special.png | Bin 0 -> 63065 bytes .../keymaps/teckinesis/ordinary-special.txt | 27 ++ .../keymaps/teckinesis/ordinary-symbol.png | Bin 0 -> 103735 bytes .../keymaps/teckinesis/ordinary-symbol.txt | 27 ++ keyboards/ergodox_ez/keymaps/teckinesis/readme.md | 103 +++++ 10 files changed, 665 insertions(+) create mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/ordinary-base.png create mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/ordinary-base.txt create mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/ordinary-media.png create mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/ordinary-media.txt create mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/ordinary-special.png create mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/ordinary-special.txt create mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/ordinary-symbol.png create mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/ordinary-symbol.txt create mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/readme.md (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/keymap.c b/keyboards/ergodox_ez/keymaps/teckinesis/keymap.c new file mode 100644 index 000000000..778cbc63c --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/teckinesis/keymap.c @@ -0,0 +1,454 @@ +#include "ergodox_ez.h" +#include "led.h" +#include "debug.h" +#include "action_layer.h" +#include "action_util.h" +#include "mousekey.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols layer +#define MDIA 2 // media layer +#define SPEC 3 // special layer + +#define LCaps 10 // left caps-shift key +#define LSymb 11 // left symbol-shift key +#define LMdia 12 // left media-shift key +#define LSpec 13 // left special-shift key +#define RCaps 14 // right caps-shift key +#define RSymb 15 // right symbol-shift key +#define RMdia 16 // right media-shift key +#define RSpec 17 // right special-shift key + +#define MUL 20 // mouse up left +#define MUR 21 // mouse up right +#define MDL 22 // mouse down left +#define MDR 23 // mouse down right + +/* + * The Ordinary Layout for the Ergodox EZ keyboard, v4 + * + * Modifications from default by Nicholas Keene ergodoxez@nicholaskeene.com + * + * No rights reserved. This software is in the public domain. + * Credit me if you are friendly but if you're a jerk don't bother. + * + * Details: readme.md + * https://github.com/nrrkeene/qmk_firmware/tree/master/keyboard/ergodox_ez/keymaps/ordinary + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/******* Base Layer ******************************************************************************************************** + * + * ,------------------------------------------------------. ,------------------------------------------------------. + * | Special `~ | 1 | 2 | 3 | 4 | 5 | ESC | | - | 6 | 7 | 8 | 9 | 0 | =+ Special | + * |------------+------+------+------+------+-------------| |------+------+------+------+------+------+------------| + * | Media Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \| Media | + * |------------+------+------+------+------+------| | | |------+------+------+------+------+------------| + * | Symbol | A | S | D | F | G |------| |------| H | J | K | L | ; | '" Symbol | + * |------------+------+------+------+------+------|Shift | | Tab |------+------+------+------+------+------------| + * | Capitals | Z | X | C | V | B | -Tab | | | N | M | , | . | / | Capitals | + * `------------+------+------+------+------+-------------' `-------------+------+------+------+------+------------' + * | LCtrl | Meh |Hyper | LAlt | LGui | | RGui | RAlt | Hyper| Meh | RCtrl | + * `-----------------------------------' `-----------------------------------' + * ,-------------. ,-------------. + * | Home | End | | Left | Right| + * ,------|------|------| |------+------+------. + * | | | PgUp | | Up | | | + * |Backsp| Del |------| |------| Enter| Space| + * | | | PgDn | | Down | | | + * `--------------------' `--------------------' + */ +[BASE] = KEYMAP( +// left hand + F(LSpec),KC_1,KC_2,KC_3 ,KC_4 ,KC_5 ,KC_ESC +,F(LMdia) ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC +,M(LSymb) ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G +,M(LCaps) ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,LSFT(KC_TAB) +,KC_LCTL ,KC_MEH ,KC_HYPR,KC_LALT,KC_LGUI + ,KC_HOME,KC_END + ,KC_PGUP + ,KC_BSPC,KC_DEL ,KC_PGDN + // right hand + ,KC_MINS ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,F(RSpec) + ,KC_RBRC ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,F(RMdia) + ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,F(RSymb) + ,KC_TAB ,KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH ,M(RCaps) + ,KC_RGUI,KC_RALT,KC_HYPR ,KC_MEH ,KC_RCTL + ,KC_LEFT ,KC_RGHT + ,KC_UP + ,KC_DOWN ,KC_ENT ,KC_SPC + ), + +/******* Symbols Layer ***************************************************************************************************** + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | Esc | | - | F6 | F7 | F8 | F9 | F10 | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | | ! | @ | { | } | & | < | | > | | | 7 | 8 | 9 | / | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | # | $ | ( | ) | ` |------| |------| / | 4 | 5 | 6 | * | | + * |-----------+------+------+------+------+------| Tab | | Shift|------+------+------+------+------+-----------| + * | | % | ^ | [ | ] | ~ | | | -Tab| \ | 1 | 2 | 3 | - | | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | LCtrl | Meh |Hyper | LAlt | LGui | |RGui/0|RAlt/.|Hypr/=|Meh/+ |RCtrl/Ent| + * `-----------------------------------' `-------------------------------------' + * ,-------------. ,-------------. + * | Left | Right| | Home | End | + * ,------|------|------| |------+------+------. + * | | | Up | | PgUp | | | + * |Space |Enter |------| |------|BackSp| Del | + * | | | Down | | PgDn | | | + * `--------------------' `--------------------' + */ +[SYMB] = KEYMAP( +// left hand + KC_TRNS ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_ESC +,KC_TRNS ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_AMPR ,LSFT(KC_COMM) +,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_TAB +,KC_LCTL ,KC_MEH ,KC_HYPR,KC_LALT ,KC_LGUI + ,KC_LEFT ,KC_RGHT + ,KC_UP + ,KC_SPC ,KC_ENT ,KC_DOWN + // right hand + ,KC_MINS ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_TRNS + ,LSFT(KC_DOT),KC_PIPE ,KC_7 ,KC_8 ,KC_9 ,KC_SLSH ,KC_TRNS + ,KC_SLSH ,KC_4 ,KC_5 ,KC_6 ,KC_ASTR ,KC_TRNS + ,LSFT(KC_TAB),KC_BSLS ,KC_1 ,KC_2 ,KC_3 ,KC_MINS ,KC_TRNS + ,GUI_T(KC_0),ALT_T(KC_DOT),ALL_T(KC_EQL),MEH_T(KC_PLUS),CTL_T(KC_ENT) + ,KC_HOME ,KC_END + ,KC_PGUP + ,KC_PGDN ,KC_BSPC ,KC_DEL +), + +/******* Media Layer ******************************************************************************************************* + * + * ,---------------------------------------------------------------. ,---------------------------------------------------------------. + * | | F11 | F12 | F13 | F14 | F15 | Esc | | | F16 | F17 | F18 | F19 | F20 | | + * |------+---------+---------+---------+---------+----------------| |------+---------+---------+---------+---------+---------+------| + * | |Shut Down|MouseUpLf|Mouse Up |MouseUpRg|Volume Up|Scroll| |Scroll|PrintScrn| Home | Up | PgUp | Mail | | + * |------+---------+---------+---------+---------+---------| Up | | Up |---------+---------+---------+---------+---------+------| + * | | Sleep |MouseLeft|MouseDown|MouseRght|Volume Dn|------| |------| Num Lock| Left | Down | Right | MyComp | | + * |------+---------+---------+---------+---------+---------|Scroll| |Scroll|---------+---------+---------+---------+---------+------| + * | | |MouseDnLf|MouseDown|MouseDnRg| Mute | Down | | Down | | End | Down | PgDn | | | + * `------+---------+---------+---------+---------+----------------' `----------------+---------+---------+---------+---------+------' + * |LCtrl| Meh | MClick | LClick | R Click| |Cmd/Insrt|Optn/Del | Hyper | Meh |RCtrl| + * `---------------------------------------------' `---------------------------------------------' + * ,-------------. ,-------------. + * | Stop |Refrsh| | Prev | Next | + * ,------|------|------| |------+------+------. + * |Brwser|Brwser|Search| |VolUp | | | + * |Back | Fwd |------| |------| Stop | Play-| + * | | | Home | |VolDn | | Pause| + * `--------------------' `--------------------' + */ +[MDIA] = KEYMAP( +// left hand + KC_TRNS ,KC_F11 ,KC_F12 ,KC_F13 ,KC_F14 ,KC_F15 ,KC_ESC +,KC_TRNS ,KC_POWER ,M(MUL) ,KC_MS_U ,M(MUR) ,KC_VOLU ,KC_WH_U +,KC_TRNS ,KC_SLEP ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_VOLD +,KC_TRNS ,KC_NO ,M(MDL) ,KC_MS_D ,M(MDR) ,KC_MUTE ,KC_WH_D +,KC_LCTL ,KC_MEH ,KC_BTN3 ,KC_BTN1 ,KC_BTN2 + ,KC_WSTP ,KC_WREF + ,KC_WSCH + ,KC_WBAK ,KC_NO ,KC_WHOM + // right hand + ,KC_NO ,KC_F16 ,KC_F17 ,KC_F18 ,KC_F19 ,KC_F20 ,KC_TRNS + ,KC_WH_U ,KC_PSCR ,KC_HOME ,KC_UP ,KC_PGUP ,KC_MAIL ,KC_TRNS + ,KC_NLCK ,KC_LEFT ,KC_DOWN ,KC_RIGHT,KC_MYCM ,KC_TRNS + ,KC_WH_D ,KC_NO ,KC_END ,KC_DOWN ,KC_PGDN ,KC_NO ,KC_TRNS + ,GUI_T(KC_INS),ALT_T(KC_DEL),KC_HYPR ,KC_MEH ,KC_RCTL + ,KC_MPRV ,KC_MNXT + ,KC_VOLU + ,KC_VOLD ,KC_MSTP ,KC_MPLY +), + +/******* Special Layer ***************************************************************************************************** + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | | Esc | | | | | | | | | | | | Bspc | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | | | | | | | | | | | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | |------| |------| | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | | | | | | | | | | RShift | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[SPEC] = KEYMAP( +// left hand + KC_TRNS ,KC_ESC ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,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_BSPC ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_RSFT + ,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[] = { + // the faux shift keys are implemented as macro taps + [LCaps] = ACTION_MACRO_TAP(LCaps) + ,[LSymb] = ACTION_MACRO_TAP(LSymb) + ,[LMdia] = ACTION_MACRO_TAP(LMdia) + ,[LSpec] = ACTION_MACRO_TAP(LSpec) + ,[RCaps] = ACTION_MACRO_TAP(RCaps) + ,[RSymb] = ACTION_MACRO_TAP(RSymb) + ,[RMdia] = ACTION_MACRO_TAP(RMdia) + ,[RSpec] = ACTION_MACRO_TAP(RSpec) +}; + +uint16_t caps_shift = 0; +uint16_t symb_shift = 0; +uint16_t mdia_shift = 0; + +bool symb_lock = false; +bool mdia_lock = false; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + // There are two shift keys for each layer so we increment a layer_shift var when one + // is pressed and decrement when one is released. If both are pressed at the same time + // then the layer is locked (or unlocked). The shift counts are bound between 0 and 2 + // only because sometimes rapid pressing led to irregular events; this way the states + // are self healing during use. + + case LCaps: // both caps-shift keys trigger Left Shift + case RCaps: // so they don't interfere with the magic combo + if (record->event.pressed && !record->tap.count) { + if(++caps_shift > 2) caps_shift = 2; + if(caps_shift == 2) { + register_code(KC_CAPS); + unregister_code(KC_CAPS); + } else if(caps_shift == 1) { + register_code(KC_LSFT); + } + } else { + if(--caps_shift < 0) caps_shift = 0; + if(caps_shift == 0) unregister_code(KC_LSFT); + } + break; + + case LSymb: + if (record->event.pressed) { + if(++symb_shift > 2) symb_shift = 2; + if(symb_shift == 2) { + symb_lock = !symb_lock; + } else if(symb_shift == 1) { + layer_on(SYMB); + } + } else { + if(--symb_shift < 0) symb_shift = 0; + if((symb_shift == 0) && (!symb_lock)) layer_off(SYMB); + } + break; + + case LMdia: + if (record->event.pressed) { + if (record->tap.count && (!mdia_shift) && (!mdia_lock)) { + register_code(KC_TAB); + } else { + if(++mdia_shift > 2) mdia_shift = 2; + if(mdia_shift == 2) { + mdia_lock = !mdia_lock; + } else if(mdia_shift == 1) { + layer_on(MDIA); + } + } + } else { + if(record->tap.count && (!mdia_shift) && (!mdia_lock)) { + unregister_code(KC_TAB); + } else { + if(--mdia_shift < 0) mdia_shift = 0; + if((!mdia_shift) && (!mdia_lock)) layer_off(MDIA); + } + } + break; + + case LSpec: + if (record->event.pressed) { + if (record->tap.count && !record->tap.interrupted) { + register_code(KC_GRV); + } else { + layer_on(SPEC); + } + } else { + if(record->tap.count && !record->tap.interrupted) { + unregister_code(KC_GRV); + } else { + layer_off(SPEC); + } + } + break; + + case RSymb: + if (record->event.pressed) { + if (record->tap.count && (!symb_shift) && (!symb_lock)) { + register_code(KC_QUOT); + } else { + if(++symb_shift > 2) symb_shift = 2; + if(symb_shift == 2) { + symb_lock = !symb_lock; + } else if(symb_shift == 1) { + layer_on(SYMB); + } + } + } else { + if(record->tap.count && symb_shift == 0) { + unregister_code(KC_QUOT); + } else { + if(--symb_shift < 0) symb_shift = 0; + if((!symb_shift) && (!symb_lock)) layer_off(SYMB); + } + } + break; + + case RMdia: + if (record->event.pressed) { + if (record->tap.count && (!mdia_shift) && (!mdia_lock)) { + register_code(KC_BSLS); + } else { + if(++mdia_shift > 2) mdia_shift = 2; + if(mdia_shift == 2) { + mdia_lock = !mdia_lock; + } else if(mdia_shift == 1) { + layer_on(MDIA); + } + } + } else { + if(record->tap.count && (!mdia_shift) && (!mdia_lock)) { + unregister_code(KC_BSLS); + } else { + if(--mdia_shift < 0) mdia_shift = 0; + if((!mdia_shift) && (!mdia_lock)) layer_off(MDIA); + } + } + break; + + case RSpec: + if (record->event.pressed) { + if (record->tap.count && !record->tap.interrupted) { + register_code(KC_EQL); + } else { + layer_on(SPEC); + } + } else { + if(record->tap.count && !record->tap.interrupted) { + unregister_code(KC_EQL); + } else { + layer_off(SPEC); + } + } + break; + + // mouse diagonals + + case MUL: // mouse up left + if (record->event.pressed) { + mousekey_on(KC_MS_UP); + mousekey_on(KC_MS_LEFT); + mousekey_send(); + } else { + mousekey_off(KC_MS_UP); + mousekey_off(KC_MS_LEFT); + mousekey_send(); + } + break; + + case MUR: // mouse up right + if (record->event.pressed) { + mousekey_on(KC_MS_UP); + mousekey_on(KC_MS_RIGHT); + mousekey_send(); + } else { + mousekey_off(KC_MS_UP); + mousekey_off(KC_MS_RIGHT); + mousekey_send(); + } + break; + + case MDL: // mouse down left + if (record->event.pressed) { + mousekey_on(KC_MS_DOWN); + mousekey_on(KC_MS_LEFT); + mousekey_send(); + } else { + mousekey_off(KC_MS_DOWN); + mousekey_off(KC_MS_LEFT); + mousekey_send(); + } + break; + + case MDR: // mouse down right + if (record->event.pressed) { + mousekey_on(KC_MS_DOWN); + mousekey_on(KC_MS_RIGHT); + mousekey_send(); + } else { + mousekey_off(KC_MS_DOWN); + mousekey_off(KC_MS_RIGHT); + mousekey_send(); + } + break; + + default: + // none + 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) { + // shift or caps lock turns on red light + if(caps_shift || (keyboard_report->mods & MOD_BIT(KC_RSFT)) || (host_keyboard_leds() & (1<\n\n\nTab"], +[{y:-0.75,x:3.5,c:"#cccccc"},"C",{x:10.5},"<\n,"], +[{y:-0.875,x:2.5},"X",{x:1},"V",{x:8.5},"M",{x:1},">\n."], +[{y:-0.875,x:5.5},"B",{x:6.5},"N"], +[{y:-0.875,c:"#2277ff",w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#cccccc"},"Z",{x:14.5},"?\n/",{c:"#2277ff",w:1.5},"\n\nCapitals\n\n\n\n\nShift"], +[{y:-0.375,x:3.5,c:"#77aaff"},"Option\n\n\nLAlt",{x:10.5},"Option\n\n\nRAlt"], +[{y:-0.875,x:2.5},"Hyper",{x:1},"Cmd\n\n\nSuper",{x:8.5},"Cmd\n\n\nSuper",{x:1},"Hyper"], +[{y:-0.75,x:0.5},"Ctrl\n\n\nLCtrl","Meh",{x:14.5},"Meh","Ctrl\n\n\nRCtrl"], +[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#54d6de"},"Home","End"], +[{h:2},"< Del\n\n\nBackspace",{h:2},"Del >\n\n\nDelete","Page\n\n\n\n\n\nUp"], +[{x:2},"Page\n\n\n\n\n\nDown"], +[{r:-30,rx:13,y:-1,x:-3},"Left","Right"], +[{x:-3},"Up",{h:2},"Enter",{h:2},"Space"], +[{x:-3},"Down"] + diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-media.png b/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-media.png new file mode 100644 index 000000000..99e5ed80b Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-media.png differ diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-media.txt b/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-media.txt new file mode 100644 index 000000000..4eccc9f35 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-media.txt @@ -0,0 +1,27 @@ +[{x:3.5,c:"#99de2a"},"F13",{x:10.5},"F18"], +[{y:-0.875,x:2.5},"F12",{x:1},"F14",{x:8.5},"F17",{x:1},"F19"], +[{y:-0.875,x:5.5},"F15",{c:"#ff4444"},"Esc",{x:4.5,c:"#737373",a:7},"",{c:"#99de2a",a:4},"F16"], +[{y:-0.875,c:"#2277ff",w:1.5},"Special\n\n\n\n\n\nShift",{c:"#99de2a"},"F11",{x:14.5},"F20",{c:"#2277ff",w:1.5},"\n\nSpecial\n\n\n\n\nShift"], +[{y:-0.375,x:3.5,c:"#ff8500"},"Mouse\n\n\n\n\n\nUp",{x:10.5},"Cursor\n\n\n\n\n\nUp"], +[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nUpLeft",{x:1},"Mouse\n\n\n\n\n\nUpRgt",{x:8.5,c:"#ffb063"},"Home",{x:1},"Page\n\n\n\n\n\nUp"], +[{y:-0.875,x:5.5,c:"#e6e067"},"Vol\n\n\n\n\n\nUp",{c:"#ffb063",h:1.5},"Scroll\n\n\n\n\n\nUp",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nUp",{c:"#e6e067"},"Print\n\n\n\n\n\nScreen"], +[{y:-0.875,c:"#000000",t:"#ff0000",w:1.5},"Media\n\n\n\n\n\nShift",{c:"#e6e067",t:"#000000"},"Shut\n\n\n\n\n\nDown",{x:14.5},"Mail",{c:"#000000",t:"#ff0000",w:1.5},"\n\nMedia\n\n\n\n\nShift"], +[{y:-0.375,x:3.5,c:"#ff8500",t:"#000000"},"Mouse\n\n\n\n\n\nDown",{x:10.5},"Cursor\n\n\n\n\n\nDown"], +[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nLeft",{x:1},"Mouse\n\n\n\n\n\nRight",{x:8.5},"Cursor\n\n\n\n\n\nLeft",{x:1},"Cursor\n\n\n\n\n\nRight"], +[{y:-0.875,x:5.5,c:"#e6e067"},"Vol\n\n\n\n\n\nDown",{x:6.5},"Num\n\n\n\n\n\nLock"], +[{y:-0.875,c:"#2277ff",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#e6e067"},"Sleep",{x:14.5},"My\n\n\n\n\n\nComp",{c:"#2277ff",w:1.5},"\n\nSymbols\n\n\n\n\nShift"], +[{y:-0.625,x:6.5,c:"#ffb063",h:1.5},"Scroll\n\n\n\n\n\nDown",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nDown"], +[{y:-0.75,x:3.5,c:"#ff8500"},"Mouse\n\n\n\n\n\nDown",{x:10.5},"Cursor\n\n\n\n\n\nDown"], +[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nDnLeft",{x:1},"Mouse\n\n\n\n\n\nDnRgt",{x:8.5,c:"#ffb063"},"End",{x:1},"Page\n\n\n\n\n\nDown"], +[{y:-0.875,x:5.5,c:"#e6e067"},"Mute",{x:6.5,c:"#737373",a:7},""], +[{y:-0.875,c:"#2277ff",a:4,w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#737373",a:7},"",{x:14.5},"",{c:"#2277ff",a:4,w:1.5},"\n\nCapitals\n\n\n\n\nShift"], +[{y:-0.375,x:3.5,c:"#ff8500"},"Middle\n\n\n\n\n\nClick",{x:10.5,c:"#ffb063",fa:[0,0,0,1]},"Delete\n\n\nOption"], +[{y:-0.875,x:2.5,c:"#ff8500"},"Left\n\n\n\n\n\nClick",{x:1},"Right\n\n\n\n\n\nClick",{x:8.5,c:"#ffb063"},"Insert\n\n\nCmd",{x:1,c:"#77aaff"},"Hyper"], +[{y:-0.75,x:0.5},"Ctrl\n\n\nLCtrl","Meh",{x:14.5},"Meh","Crtl\n\n\nRCtrl"], +[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#ccbb00"},"Stop\n\n\nBrowser","Reload\n\n\nBrowser"], +[{h:2},"< Web\n\n\nBrowser",{h:2},"Web >\n\n\nBrowser","Search\n\n\nBrowser"], +[{x:2},"Home\n\n\nBrowser"], +[{r:-30,rx:13,y:-1,x:-3},"Prev\n\n\nAudio\n\n\nTrack","Next\n\n\nAudio\n\n\nTrack"], +[{x:-3,c:"#e6e067"},"Vol\n\n\n\n\n\nUp",{c:"#ccbb00",h:2},"Stop\n\n\nAudio",{h:2},"Play\n\n\nAudio\n\n\nPause"], +[{x:-3,c:"#e6e067"},"Vol\n\n\n\n\n\nDown"] + diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-special.png b/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-special.png new file mode 100644 index 000000000..6eecf447e Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-special.png differ diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-special.txt b/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-special.txt new file mode 100644 index 000000000..a08827c6d --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-special.txt @@ -0,0 +1,27 @@ +[{x:3.5,a:7},"",{x:10.5},""], +[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""], +[{y:-0.875,x:5.5},"",{c:"#ff4444",a:4},"Esc",{x:4.5,c:"#cccccc",a:7},"",""], +[{y:-0.875,c:"#000000",t:"#ff0000",a:4,w:1.5},"Special\n\n\n\n\n\nShift",{c:"#ff4444",t:"#000000"},"Esc",{x:14.5,c:"#54d6de"},"Back\n\n\n\n\n\nspace",{c:"#000000",t:"#ff0000",w:1.5},"\n\nSpecial\n\n\n\n\nShift"], +[{y:-0.375,x:3.5,c:"#cccccc",t:"#000000",a:7},"",{x:10.5},""], +[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""], +[{y:-0.875,x:5.5},"",{h:1.5},"",{x:4.5,h:1.5},"",""], +[{y:-0.875,w:1.5},"","",{x:14.5},"",{w:1.5},""], +[{y:-0.375,x:3.5},"",{x:10.5},""], +[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""], +[{y:-0.875,x:5.5},"",{x:6.5},""], +[{y:-0.875,w:1.5},"","",{x:14.5},"",{w:1.5},""], +[{y:-0.625,x:6.5,h:1.5},"",{x:4.5,h:1.5},""], +[{y:-0.75,x:3.5},"",{x:10.5},""], +[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""], +[{y:-0.875,x:5.5},"",{x:6.5},""], +[{y:-0.875,w:1.5},"","",{x:14.5},"",{c:"#2277ff",w:1.5},"RShift"], +[{y:-0.375,x:3.5,c:"#cccccc"},"",{x:10.5},""], +[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""], +[{y:-0.75,x:0.5},"","",{x:14.5},"",""], +[{r:30,rx:6.5,ry:4.25,y:-1,x:1},"",""], +[{h:2},"",{h:2},"",""], +[{x:2},""], +[{r:-30,rx:13,y:-1,x:-3},"",""], +[{x:-3},"",{h:2},"",{h:2},""], +[{x:-3},""] + diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-symbol.png b/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-symbol.png new file mode 100644 index 000000000..e4de64a96 Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-symbol.png differ diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-symbol.txt b/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-symbol.txt new file mode 100644 index 000000000..e199f5c59 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-symbol.txt @@ -0,0 +1,27 @@ +[{x:3.5,c:"#99de2a"},"F3",{x:10.5},"F8"], +[{y:-0.875,x:2.5},"F2",{x:1},"F4",{x:8.5},"F7",{x:1},"F9"], +[{y:-0.875,x:5.5},"F5",{c:"#ff4444"},"Esc",{x:4.5,c:"#bbddbb"},"_\n\n\n\n\n\n-",{c:"#99de2a"},"F6"], +[{y:-0.875,c:"#2277ff",w:1.5},"Special\n\n\n\n\n\nShift",{c:"#99de2a"},"F1",{x:14.5},"F10",{c:"#2277ff",w:1.5},"\n\nSpecial\n\n\n\n\nShift"], +[{y:-0.375,x:3.5,c:"#bbddbb"},"{",{x:10.5,c:"#89b087"},"8"], +[{y:-0.875,x:2.5,c:"#bbddbb"},"@",{x:1},"}",{x:8.5,c:"#89b087"},"7",{x:1},"9"], +[{y:-0.875,x:5.5,c:"#bbddbb"},"&",{h:1.5},"<",{x:4.5,h:1.5},">","|"], +[{y:-0.875,c:"#2277ff",w:1.5},"Media\n\n\n\n\n\nShift",{c:"#bbddbb"},"!",{x:14.5,c:"#89b087"},"/",{c:"#2277ff",w:1.5},"\n\nMedia\n\n\n\n\nShift"], +[{y:-0.375,x:3.5,c:"#bbddbb"},"(",{x:10.5,c:"#89b087"},"5"], +[{y:-0.875,x:2.5,c:"#bbddbb"},"$",{x:1},")",{x:8.5,c:"#89b087"},"4",{x:1},"6"], +[{y:-0.875,x:5.5,c:"#bbddbb"},"`",{x:6.5},"/"], +[{y:-0.875,c:"#000000",t:"#ff0000",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#bbddbb",t:"#000000"},"#",{x:14.5,c:"#89b087"},"*",{c:"#000000",t:"#ff0000",w:1.5},"\n\nSymbols\n\n\n\n\nShift"], +[{y:-0.625,x:6.5,c:"#54d6de",t:"#000000",fa:[0,0,0,1],h:1.5},"Tab >\n\n\nTab",{x:4.5,h:1.5},"< Tab\n\n\nShift Tab"], +[{y:-0.75,x:3.5,c:"#bbddbb"},"[",{x:10.5,c:"#89b087"},"2"], +[{y:-0.875,x:2.5,c:"#bbddbb"},"^",{x:1},"]",{x:8.5,c:"#89b087"},"1",{x:1},"3"], +[{y:-0.875,x:5.5,c:"#bbddbb"},"~",{x:6.5},"\\"], +[{y:-0.875,c:"#2277ff",w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#bbddbb"},"%",{x:14.5,c:"#89b087"},"-",{c:"#2277ff",w:1.5},"\n\nCapitals\n\n\n\n\nShift"], +[{y:-0.375,x:3.5,c:"#77aaff"},"Option\n\n\nLAlt",{x:10.5,c:"#89b087"},".\n\n\nOption"], +[{y:-0.875,x:2.5,c:"#77aaff"},"Hyper",{x:1},"Cmd\n\n\nSuper",{x:8.5,c:"#89b087"},"0\n\n\nCmd",{x:1},"=\n\n\nHyper"], +[{y:-0.75,x:0.5,c:"#77aaff"},"Ctrl\n\n\nLCtrl","Meh",{x:14.5,c:"#89b087"},"+\n\n\nMeh","Enter\n\n\nCtrl"], +[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#54d6de"},"Left","Right"], +[{h:2},"Space",{h:2},"Enter","Up"], +[{x:2},"Down"], +[{r:-30,rx:13,y:-1,x:-3},"Home","End"], +[{x:-3},"Page\n\n\n\n\n\nUp",{h:2},"< Del\n\n\nBackspace",{h:2},"Del >\n\n\nDelete"], +[{x:-3},"Page\n\n\n\n\n\nDown"] + diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/readme.md b/keyboards/ergodox_ez/keymaps/teckinesis/readme.md new file mode 100644 index 000000000..6465cd79e --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/teckinesis/readme.md @@ -0,0 +1,103 @@ +# The Ordinary Layout, a familiar and powerful layout # + +The Ordinary Layout is intended to be unremarkably mundane and remarkably useful. This layout maintains most key positions from common QWERTY keyboards, and it features enhanced Symbol and Media layers compared to the default Ergodox EZ layout. + +The Ordinary Layout is supposed to look mostly like a normal keyboard, except in the ways that the Ergodox key arrangement is unique. The thumbs are responsible for space, enter, plus both forward and backward delete; with only a couple exceptions, all other keys are in the same place they are found on traditional keyboards. + +Nicholas Keene +ordinarylayout@nicholaskeene.com +no rights reserved, use for any purposes, credit me if you are a nice person + +## The Base Layout ## + +* The light blue keys are modifiers: traditional Control, Option, and Command keys, plus Hyper and Meh +* The dark blue keys are Shift keys: Capitals Shift (traditional shift), Symbol Shift, and Media Shift; plus a Shift Lock key +* Several dark blue keys double for entry of characters which would typically be in those locations +* The turquoise keys are text navigation and manipulation +* The red keys is Escape and it is always found in that location no matter what + +![Ordinary base layout](ordinary-base.png) + +This layout puts the modifier keys along the bottom of the keyboard where they are on most keyboards. They are in the regular order, with the addition of Hyper and Meh keys. The modifier keys are all in the same place on all layers, although some layers also assign symbols on those buttons. On the outside edges are the Shift keys. The traditional shift key is called Capitals Shift and it is in the normal location. Above that are Symbols Shift and Media Shift. Each Shift key momentarily switches the layout to that layer, and if you use the Shift Lock button you can lock the layout to that layer. + +Touch typists will also find tilde, tab, equals/plus, slash/pipe, and quote/double-quote sharing space on those Shift keys where they would probably be on a common keyboard. Other than the turquoise keys the only buttons which move to new locations are the Brackets and Dash and Escape. Most touch typists dont touch-type brackets or dash anyway so only Escape really requires retraining of muscle memory, and see below for the Special Escape Sequence. + +The four big turquoise keys are arranged differently than in the default Ergodox EZ layout. The Ordinary Layout here copies the design of the old Fingerworks TouchStream keyboard, but also reflects the natural presumptions of the author -- me! I type the space character with my right hand, and to me it makes sense for the two delete keys to be next to one another. + +The Forward Tab and Backward Tab keys are in their locations mostly because I ended up with two extra buttons and needed something to do with them. My muscle memory from using the Truly Ergonomic Keyboard makes me look for the Tab key with my right index finger, so it is handy to have this redundant Tab, and the idea with the Backward Tab key is that it becomes easy to navigate text fields in forms, or to indent/unindent code. + +## The Symbols Layer ## + +* The light green keys are the eponymous symbols +* The bright green keys are F-Keys +* The dark green keys constitute a number pad +* The turquoise keys are the *reverse* of the turquoise keys on the base layer + +![Ordinary symbol layout](ordinary-symbol.png) + +The Ergodox EZ ships with the "Coder Layer" which I like to call the Symbols layer. There are some significant improvements in The Ordinary Layout over the default layout. + +The symbol keys are mostly the same as on the default layout, which did a good job in this regard, but with a few enhancements: + +* Angle brackets on this layer mean that curly, square, and angle brackets are all available on different layers of the same two buttons. Also, they mean that all kinds of brackets, including parentheses, are available on both the Base and Symbols layers. +* The slash, backslash, and pipe characters are grouped together as a memory aid. +* The & and | symbols are juxtaposed as a memory aid + +The number pad area here, in green, includes all four arithmetic operations in the same order found on most number pads and features an Enter key. The keycodes emitted here are normal numeric keycodes, not the number-pad specific keycodes emitted by most number pads, because this layout does not use a Num Lock key to switch the buttons between numeric keycodes and navigational keycodes. See the explanation in The Media Layout section about navigation using these same buttons. + +Finally, consider the turquoise text-nav keys. Here in the Symbols layer, these are *reversed* from the base layer, with the keys either mirrored or shifted. This is powerful! Often I find myself using the mouse with my right hand, and the left hand needs to press Enter. Instead of reaching the left hand over to the right side of the keyboard, now I simply tap Symbols to reverse the turquoise keys, and Enter is right where it should be. + +## The Media Layer ## + +* The dark orange keys on the left move the mouse cursor +* The dark orange keys on the right move the text cursor +* The light orange keys are for scrolling and paging +* The bright green keys are more F-keys +* The dark yellow keys signal Web and Audio applications +* The light yellow keys signal the operating system +* The dark gray keys do nothing in case you bump them by accident + +![Ordinary media layout](ordinary-media.png) + +This layer was inspired by the Media layer on the Ergodox EZ but takes it farther. The Fingerworks TouchStream keyboard had a very useful feature for controlling the text cursor easily and this layer does something similar. The left hand can move the mouse, the right hand moves the text cursor, in all four directions, in small or large increments. This greatly enhances navigation in text documents. + +Moreover, the orange keys on the right overlay the numberpad from the Symbols Layer, such that in the Media Layer the same keys can be used as if they were a number pad in navigational mode (Num Lock off). For instance, in traditional number pads the '3' key became 'Page Down', and so it is here. This means a user can do text navigation without moving either hand. + +Alas, the yellow keys have at best spotty success with common software. Good luck with those but don't expect too much. + +## Switching Between Layers ## + +In addition to Symbols and Media there is the Capitals layer which is exactly the same as pressing the shift key. Each layer is accessed by a shift key on each edge of the keyboard and corresponds to one of the three LEDs on the keyboard: Capitals (red), Symbols (green), Media (blue). The color of a layer illuminates when the layer is active. + +Shift buttons work in the expected way: press them and all of the keys switch to that layer; release them and the keys switch back to the base layer. If you press both of a pair of shift keys, the layer will lock on until you press both shift keys again. For instance, the widely and rightly loathed Caps Lock is engaged by pressing both Capitals Shift buttons. All the Shift keys work this way. + +Multiple layers can be turned on at once. The Capitals layer will affect characters on other layers to capitalize. Other layers, however, don't 'mix': Symbols blankets the base layout; Media blankets Symbols. + +## Special Sequences ## + +![Ordinary special layout](ordinary-special.png) + +### Escape ### + +The One True Location for the Escape key is segregated way up on the top left of the keyboard. The Ergodox does not have a physical button in such a location and the nearest one is home to the tilde (er, grave) which is commonly found there. In the Ordinary layout the Escape key is found on all layers in the prominent location in the corner next to the 5, whnich is easy to remember, and yet it isn't natural for those of us with muscle memory flicking our wrists up and to the left looking for Escape. + +The Ordinary layout offers as a consolation prize a Special sequence for Escape: Special Shift + 1. This is natural so you can tap the top left button, then the button next to it and get Escape. This gesture works in all layers. + +### Backspace ### + +At the top right corner of the Ergodox EZ you can a gesture similar to the special Escape sequence, using the 0 key, to produce a Backspace. Users of this keyboard and this layout are well advised to learn to use their thumbs for deleting text, but sometimes you are doing other computery things and just want to flick your digits up to the right and press backspace a bunch times. + +### RShift ### + +The Ordinary Layout locks layers by pressing both of a pair of shift keys. This interferes with the QMK firmware magic sequence, which is LShift+RShift. To work around this, both of the Capitals Shift keys produce a *Left Shift* keystroke. If for some reason a person needs *Right Shift* they can find it by pressing a Special Shift key, then the Capitals Shift key on the right side of the keyboard. + +**** + +The Ordinary Layout for the Ergodox EZ keyboard, v4 + +Modifications from default by Nicholas Keene ergodoxez@nicholaskeene.com + +No rights reserved. This software is in the public domain. Credit me if you are friendly but if you're a jerk don't bother. + +Details: readme.md + https://github.com/nrrkeene/qmk_firmware/tree/master/keyboard/ergodox_ez/keymaps/ordinary -- cgit v1.2.3 From 825aead3bdb74effee17d9436d79f2952550b5cf Mon Sep 17 00:00:00 2001 From: Will Wolff-Myren Date: Thu, 14 Jul 2016 00:38:00 -0700 Subject: Replaced readme.md with stub (incl. reference to original layout) --- keyboards/ergodox_ez/keymaps/teckinesis/readme.md | 97 ++--------------------- 1 file changed, 5 insertions(+), 92 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/readme.md b/keyboards/ergodox_ez/keymaps/teckinesis/readme.md index 6465cd79e..5d2f1d07d 100644 --- a/keyboards/ergodox_ez/keymaps/teckinesis/readme.md +++ b/keyboards/ergodox_ez/keymaps/teckinesis/readme.md @@ -1,103 +1,16 @@ -# The Ordinary Layout, a familiar and powerful layout # +# teckinesis Layout # -The Ordinary Layout is intended to be unremarkably mundane and remarkably useful. This layout maintains most key positions from common QWERTY keyboards, and it features enhanced Symbol and Media layers compared to the default Ergodox EZ layout. - -The Ordinary Layout is supposed to look mostly like a normal keyboard, except in the ways that the Ergodox key arrangement is unique. The thumbs are responsible for space, enter, plus both forward and backward delete; with only a couple exceptions, all other keys are in the same place they are found on traditional keyboards. - -Nicholas Keene -ordinarylayout@nicholaskeene.com -no rights reserved, use for any purposes, credit me if you are a nice person +*A blend of TECK and Kinesis layouts, based on ["The Ordinary Layout" by Nicholas Keene](http://qmk.fm/keyboards/ergodox_ez/keymaps/ordinary/#the-ordinary-layout-a-familiar-and-powerful-layout)* ## The Base Layout ## -* The light blue keys are modifiers: traditional Control, Option, and Command keys, plus Hyper and Meh -* The dark blue keys are Shift keys: Capitals Shift (traditional shift), Symbol Shift, and Media Shift; plus a Shift Lock key -* Several dark blue keys double for entry of characters which would typically be in those locations -* The turquoise keys are text navigation and manipulation -* The red keys is Escape and it is always found in that location no matter what - -![Ordinary base layout](ordinary-base.png) - -This layout puts the modifier keys along the bottom of the keyboard where they are on most keyboards. They are in the regular order, with the addition of Hyper and Meh keys. The modifier keys are all in the same place on all layers, although some layers also assign symbols on those buttons. On the outside edges are the Shift keys. The traditional shift key is called Capitals Shift and it is in the normal location. Above that are Symbols Shift and Media Shift. Each Shift key momentarily switches the layout to that layer, and if you use the Shift Lock button you can lock the layout to that layer. - -Touch typists will also find tilde, tab, equals/plus, slash/pipe, and quote/double-quote sharing space on those Shift keys where they would probably be on a common keyboard. Other than the turquoise keys the only buttons which move to new locations are the Brackets and Dash and Escape. Most touch typists dont touch-type brackets or dash anyway so only Escape really requires retraining of muscle memory, and see below for the Special Escape Sequence. - -The four big turquoise keys are arranged differently than in the default Ergodox EZ layout. The Ordinary Layout here copies the design of the old Fingerworks TouchStream keyboard, but also reflects the natural presumptions of the author -- me! I type the space character with my right hand, and to me it makes sense for the two delete keys to be next to one another. - -The Forward Tab and Backward Tab keys are in their locations mostly because I ended up with two extra buttons and needed something to do with them. My muscle memory from using the Truly Ergonomic Keyboard makes me look for the Tab key with my right index finger, so it is handy to have this redundant Tab, and the idea with the Backward Tab key is that it becomes easy to navigate text fields in forms, or to indent/unindent code. +(placeholder) ## The Symbols Layer ## -* The light green keys are the eponymous symbols -* The bright green keys are F-Keys -* The dark green keys constitute a number pad -* The turquoise keys are the *reverse* of the turquoise keys on the base layer - -![Ordinary symbol layout](ordinary-symbol.png) - -The Ergodox EZ ships with the "Coder Layer" which I like to call the Symbols layer. There are some significant improvements in The Ordinary Layout over the default layout. - -The symbol keys are mostly the same as on the default layout, which did a good job in this regard, but with a few enhancements: - -* Angle brackets on this layer mean that curly, square, and angle brackets are all available on different layers of the same two buttons. Also, they mean that all kinds of brackets, including parentheses, are available on both the Base and Symbols layers. -* The slash, backslash, and pipe characters are grouped together as a memory aid. -* The & and | symbols are juxtaposed as a memory aid - -The number pad area here, in green, includes all four arithmetic operations in the same order found on most number pads and features an Enter key. The keycodes emitted here are normal numeric keycodes, not the number-pad specific keycodes emitted by most number pads, because this layout does not use a Num Lock key to switch the buttons between numeric keycodes and navigational keycodes. See the explanation in The Media Layout section about navigation using these same buttons. - -Finally, consider the turquoise text-nav keys. Here in the Symbols layer, these are *reversed* from the base layer, with the keys either mirrored or shifted. This is powerful! Often I find myself using the mouse with my right hand, and the left hand needs to press Enter. Instead of reaching the left hand over to the right side of the keyboard, now I simply tap Symbols to reverse the turquoise keys, and Enter is right where it should be. +(placeholder) ## The Media Layer ## -* The dark orange keys on the left move the mouse cursor -* The dark orange keys on the right move the text cursor -* The light orange keys are for scrolling and paging -* The bright green keys are more F-keys -* The dark yellow keys signal Web and Audio applications -* The light yellow keys signal the operating system -* The dark gray keys do nothing in case you bump them by accident - -![Ordinary media layout](ordinary-media.png) - -This layer was inspired by the Media layer on the Ergodox EZ but takes it farther. The Fingerworks TouchStream keyboard had a very useful feature for controlling the text cursor easily and this layer does something similar. The left hand can move the mouse, the right hand moves the text cursor, in all four directions, in small or large increments. This greatly enhances navigation in text documents. - -Moreover, the orange keys on the right overlay the numberpad from the Symbols Layer, such that in the Media Layer the same keys can be used as if they were a number pad in navigational mode (Num Lock off). For instance, in traditional number pads the '3' key became 'Page Down', and so it is here. This means a user can do text navigation without moving either hand. - -Alas, the yellow keys have at best spotty success with common software. Good luck with those but don't expect too much. - -## Switching Between Layers ## - -In addition to Symbols and Media there is the Capitals layer which is exactly the same as pressing the shift key. Each layer is accessed by a shift key on each edge of the keyboard and corresponds to one of the three LEDs on the keyboard: Capitals (red), Symbols (green), Media (blue). The color of a layer illuminates when the layer is active. - -Shift buttons work in the expected way: press them and all of the keys switch to that layer; release them and the keys switch back to the base layer. If you press both of a pair of shift keys, the layer will lock on until you press both shift keys again. For instance, the widely and rightly loathed Caps Lock is engaged by pressing both Capitals Shift buttons. All the Shift keys work this way. - -Multiple layers can be turned on at once. The Capitals layer will affect characters on other layers to capitalize. Other layers, however, don't 'mix': Symbols blankets the base layout; Media blankets Symbols. - -## Special Sequences ## - -![Ordinary special layout](ordinary-special.png) - -### Escape ### - -The One True Location for the Escape key is segregated way up on the top left of the keyboard. The Ergodox does not have a physical button in such a location and the nearest one is home to the tilde (er, grave) which is commonly found there. In the Ordinary layout the Escape key is found on all layers in the prominent location in the corner next to the 5, whnich is easy to remember, and yet it isn't natural for those of us with muscle memory flicking our wrists up and to the left looking for Escape. - -The Ordinary layout offers as a consolation prize a Special sequence for Escape: Special Shift + 1. This is natural so you can tap the top left button, then the button next to it and get Escape. This gesture works in all layers. - -### Backspace ### - -At the top right corner of the Ergodox EZ you can a gesture similar to the special Escape sequence, using the 0 key, to produce a Backspace. Users of this keyboard and this layout are well advised to learn to use their thumbs for deleting text, but sometimes you are doing other computery things and just want to flick your digits up to the right and press backspace a bunch times. - -### RShift ### - -The Ordinary Layout locks layers by pressing both of a pair of shift keys. This interferes with the QMK firmware magic sequence, which is LShift+RShift. To work around this, both of the Capitals Shift keys produce a *Left Shift* keystroke. If for some reason a person needs *Right Shift* they can find it by pressing a Special Shift key, then the Capitals Shift key on the right side of the keyboard. - -**** - -The Ordinary Layout for the Ergodox EZ keyboard, v4 - -Modifications from default by Nicholas Keene ergodoxez@nicholaskeene.com - -No rights reserved. This software is in the public domain. Credit me if you are friendly but if you're a jerk don't bother. +(placeholder) -Details: readme.md - https://github.com/nrrkeene/qmk_firmware/tree/master/keyboard/ergodox_ez/keymaps/ordinary -- cgit v1.2.3 From b58724543086dc04603d7289c038267779357629 Mon Sep 17 00:00:00 2001 From: Will Wolff-Myren Date: Thu, 14 Jul 2016 00:39:01 -0700 Subject: Replaced ordinary-base.{png|json} with new base layout. --- .../keymaps/teckinesis/ordinary-base.png | Bin 99605 -> 0 bytes .../keymaps/teckinesis/ordinary-base.txt | 27 -- .../keymaps/teckinesis/teckinesis-base.json | 452 +++++++++++++++++++++ .../keymaps/teckinesis/teckinesis-base.png | Bin 0 -> 94828 bytes 4 files changed, 452 insertions(+), 27 deletions(-) delete mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/ordinary-base.png delete mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/ordinary-base.txt create mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-base.json create mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-base.png (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-base.png b/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-base.png deleted file mode 100644 index 9c561a10a..000000000 Binary files a/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-base.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-base.txt b/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-base.txt deleted file mode 100644 index 25731ea2e..000000000 --- a/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-base.txt +++ /dev/null @@ -1,27 +0,0 @@ -[{x:3.5},"#\n3",{x:10.5},"*\n8"], -[{y:-0.875,x:2.5},"@\n2",{x:1},"$\n4",{x:8.5},"&\n7",{x:1},"(\n9"], -[{y:-0.875,x:5.5},"%\n5",{c:"#ff4444"},"Esc",{x:4.5,c:"#cccccc"},"_\n\n\n\n\n\n-","^\n6"], -[{y:-0.875,c:"#2277ff",w:1.5},"Special\n\n~\n\n\n\nShift\n`",{c:"#cccccc"},"!\n1",{x:14.5},")\n0",{c:"#2277ff",w:1.5},"+\n\nSpecial\n\n\n\n=\nShift"], -[{y:-0.375,x:3.5,c:"#cccccc"},"E",{x:10.5},"I"], -[{y:-0.875,x:2.5},"W",{x:1},"R",{x:8.5},"U",{x:1},"O"], -[{y:-0.875,x:5.5},"T",{h:1.5},"{\n\n\n\n\n\n[",{x:4.5,h:1.5},"}\n\n\n\n\n\n]","Y"], -[{y:-0.875,c:"#2277ff",w:1.5},"Media\n\nTab\n\n\n\nShift",{c:"#cccccc"},"Q",{x:14.5},"P",{c:"#2277ff",w:1.5},"|\n\\\nMedia\n\n\n\n\nShift"], -[{y:-0.375,x:3.5,c:"#cccccc"},"D",{x:10.5},"K"], -[{y:-0.875,x:2.5},"S",{x:1},"F",{x:8.5},"J",{x:1},"L"], -[{y:-0.875,x:5.5},"G",{x:6.5},"H"], -[{y:-0.875,c:"#2277ff",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#cccccc"},"A",{x:14.5},":\n;",{c:"#2277ff",w:1.5},"\"\n'\nSymbols\n\n\n\n\nShift"], -[{y:-0.625,x:6.5,c:"#54d6de",fa:[0,0,0,1],h:1.5},"< Tab\n\n\nShift Tab",{x:4.5,h:1.5},"Tab >\n\n\nTab"], -[{y:-0.75,x:3.5,c:"#cccccc"},"C",{x:10.5},"<\n,"], -[{y:-0.875,x:2.5},"X",{x:1},"V",{x:8.5},"M",{x:1},">\n."], -[{y:-0.875,x:5.5},"B",{x:6.5},"N"], -[{y:-0.875,c:"#2277ff",w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#cccccc"},"Z",{x:14.5},"?\n/",{c:"#2277ff",w:1.5},"\n\nCapitals\n\n\n\n\nShift"], -[{y:-0.375,x:3.5,c:"#77aaff"},"Option\n\n\nLAlt",{x:10.5},"Option\n\n\nRAlt"], -[{y:-0.875,x:2.5},"Hyper",{x:1},"Cmd\n\n\nSuper",{x:8.5},"Cmd\n\n\nSuper",{x:1},"Hyper"], -[{y:-0.75,x:0.5},"Ctrl\n\n\nLCtrl","Meh",{x:14.5},"Meh","Ctrl\n\n\nRCtrl"], -[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#54d6de"},"Home","End"], -[{h:2},"< Del\n\n\nBackspace",{h:2},"Del >\n\n\nDelete","Page\n\n\n\n\n\nUp"], -[{x:2},"Page\n\n\n\n\n\nDown"], -[{r:-30,rx:13,y:-1,x:-3},"Left","Right"], -[{x:-3},"Up",{h:2},"Enter",{h:2},"Space"], -[{x:-3},"Down"] - diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-base.json b/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-base.json new file mode 100644 index 000000000..f1efab272 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-base.json @@ -0,0 +1,452 @@ +[ + { + "name": "teckinesis", + "author": "Will Wolff-Myren", + "notes": "# teckinesis Layout # \r\n\r\n*A blend of TECK and Kinesis layouts, based on [\"The Ordinary Layout\" by Nicholas Keene](http://qmk.fm/keyboards/ergodox_ez/keymaps/ordinary/#the-ordinary-layout-a-familiar-and-powerful-layout)*\r\n\r\n## The Base Layout ##\r\n\r\n(placeholder)\r\n\r\n## The Symbols Layer ##\r\n\r\n(placeholder)\r\n\r\n## The Media Layer ##\r\n\r\n(placeholder)", + "switchMount": "cherry", + "switchBrand": "gateron", + "switchType": "KS-3-Tea" + }, + [ + { + "x": 3.5 + }, + "#\n3", + { + "x": 10.5 + }, + ")\n0" + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "@\n2", + { + "x": 1 + }, + "$\n4" + ], + [ + { + "y": -0.995, + "x": 14 + }, + "(\n9", + { + "x": 1 + }, + "_\n-" + ], + [ + { + "y": -0.8799999999999999, + "x": 5.5 + }, + "%\n5", + "^\n6", + { + "x": 4.5 + }, + "&\n7", + "*\n8" + ], + [ + { + "y": -0.875, + "x": 1.5 + }, + "!\n1", + { + "x": 14.5 + }, + "+\n=" + ], + [ + { + "y": -0.995, + "c": "#2277ff", + "w": 1.5 + }, + "Media\n\nEsc\n\n\n\nShift", + { + "x": 16.5, + "w": 1.5 + }, + "~\n`\nMedia\n\n\n\n\nShift" + ], + [ + { + "y": -0.3799999999999999, + "x": 3.5, + "c": "#cccccc" + }, + "E", + { + "x": 10.5 + }, + "I" + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "W", + { + "x": 1 + }, + "R", + { + "x": 8.5 + }, + "U", + { + "x": 1 + }, + "O" + ], + [ + { + "y": -0.875, + "x": 5.5 + }, + "T", + { + "h": 1.5 + }, + "{\n\n\n\n\n\n[", + { + "x": 4.5, + "h": 1.5 + }, + "}\n\n\n\n\n\n]", + "Y" + ], + [ + { + "y": -0.875, + "x": 1.5 + }, + "Q", + { + "x": 14.5 + }, + "P" + ], + [ + { + "y": -0.9950000000000001, + "c": "#2277ff", + "w": 1.5 + }, + "Symbols\n\n?\n/\n\n\nShift", + { + "x": 16.5, + "w": 1.5 + }, + "|\n\\\nSymbols\n\n\n\n\nShift" + ], + [ + { + "y": -0.3799999999999999, + "x": 3.5, + "c": "#cccccc" + }, + "D", + { + "x": 10.5 + }, + "K" + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "S", + { + "x": 1 + }, + "F", + { + "x": 8.5 + }, + "J", + { + "x": 1 + }, + "L" + ], + [ + { + "y": -0.875, + "x": 5.5 + }, + "G", + { + "x": 6.5 + }, + "H" + ], + [ + { + "y": -0.875, + "x": 1.5 + }, + "A", + { + "x": 14.5 + }, + ":\n;" + ], + [ + { + "y": -0.9950000000000001, + "c": "#2277ff", + "w": 1.5 + }, + "Capitals\n\n\n\n\n\nShift", + { + "x": 16.5, + "w": 1.5 + }, + "\n\nCapitals\n\n\n\n\nShift" + ], + [ + { + "y": -0.6299999999999999, + "x": 6.5, + "c": "#54d6de", + "fa": [ + 0, + 0, + 0, + 1 + ], + "h": 1.5 + }, + "< Tab\n\n\nShift Tab", + { + "x": 4.5, + "h": 1.5 + }, + "Tab >\n\n\nTab" + ], + [ + { + "y": -0.75, + "x": 3.5, + "c": "#cccccc" + }, + "C", + { + "x": 10.5 + }, + "<\n," + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "X", + { + "x": 1 + }, + "V", + { + "x": 8.5 + }, + "M", + { + "x": 1 + }, + ">\n." + ], + [ + { + "y": -0.875, + "x": 5.5 + }, + "B", + { + "x": 6.5 + }, + "N" + ], + [ + { + "y": -0.875, + "x": 1.5 + }, + "Z", + { + "x": 14.5 + }, + "?\n/" + ], + [ + { + "y": -0.9950000000000001, + "c": "#2277ff", + "w": 1.5 + }, + "Ctrl", + { + "x": 16.5, + "w": 1.5 + }, + "Ctrl" + ], + [ + { + "y": -0.3799999999999999, + "x": 3.5, + "c": "#77aaff" + }, + "Option\n\n\nLAlt", + { + "x": 10.5 + }, + "Option\n\n\nRAlt" + ], + [ + { + "y": -0.875, + "x": 2.5, + "f": 3 + }, + "Hyper\n\n}\n]", + { + "x": 1 + }, + "Cmd\n\n\nSuper", + { + "x": 8.5, + "fa": [ + 5, + 0, + 0, + 1, + 0, + 0, + 0 + ] + }, + "\n\n\nSuper", + { + "x": 1, + "fa": [ + 5, + 0, + 0, + 0, + 0, + 0, + 1 + ] + }, + "\n\n~\n`\n\n\nHyper" + ], + [ + { + "y": -0.75, + "x": 0.5, + "f": 2 + }, + "Print\n\n\n\n\n\nScreen", + { + "f": 3 + }, + "Meh\n\n{\n[", + { + "x": 14.5, + "fa": [ + 0, + 0, + 0, + 0, + 0, + 0, + 2 + ] + }, + "\n\n\"\n'\n\n\nMeh" + ], + [ + { + "y": -0.9950000000000001, + "x": 18, + "f": 2 + }, + "Special\n\n\n\n\n\nShift" + ], + [ + { + "r": 30, + "rx": 6.5, + "ry": 4.25, + "y": -1, + "x": 1, + "c": "#54d6de", + "f": 3 + }, + "Home", + "End" + ], + [ + { + "fa": [ + 0, + 0, + 0, + 1 + ], + "h": 2 + }, + "< Del\n\n\nBackspace", + { + "h": 2 + }, + "Del >\n\n\nDelete", + "Page\n\n\n\n\n\nUp" + ], + [ + { + "x": 2 + }, + "Page\n\n\n\n\n\nDown" + ], + [ + { + "r": -30, + "rx": 13, + "y": -1, + "x": -3 + }, + "Left", + "Right" + ], + [ + { + "x": -3 + }, + "Up", + { + "h": 2 + }, + "Enter", + { + "h": 2 + }, + "Space" + ], + [ + { + "x": -3 + }, + "Down" + ] +] \ No newline at end of file diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-base.png b/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-base.png new file mode 100644 index 000000000..f1a5eda0d Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-base.png differ -- cgit v1.2.3 From 1b776f0f339032bc6990269e24f35dc2153adae6 Mon Sep 17 00:00:00 2001 From: Will Wolff-Myren Date: Thu, 14 Jul 2016 01:03:45 -0700 Subject: Replaced ordinary-symbol.{png|json} with new base layout. --- .../keymaps/teckinesis/ordinary-symbol.png | Bin 103735 -> 0 bytes .../keymaps/teckinesis/ordinary-symbol.txt | 27 -- keyboards/ergodox_ez/keymaps/teckinesis/readme.md | 4 +- .../keymaps/teckinesis/teckinesis-symbol.json | 428 +++++++++++++++++++++ .../keymaps/teckinesis/teckinesis-symbol.png | Bin 0 -> 97055 bytes 5 files changed, 430 insertions(+), 29 deletions(-) delete mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/ordinary-symbol.png delete mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/ordinary-symbol.txt create mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-symbol.json create mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-symbol.png (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-symbol.png b/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-symbol.png deleted file mode 100644 index e4de64a96..000000000 Binary files a/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-symbol.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-symbol.txt b/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-symbol.txt deleted file mode 100644 index e199f5c59..000000000 --- a/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-symbol.txt +++ /dev/null @@ -1,27 +0,0 @@ -[{x:3.5,c:"#99de2a"},"F3",{x:10.5},"F8"], -[{y:-0.875,x:2.5},"F2",{x:1},"F4",{x:8.5},"F7",{x:1},"F9"], -[{y:-0.875,x:5.5},"F5",{c:"#ff4444"},"Esc",{x:4.5,c:"#bbddbb"},"_\n\n\n\n\n\n-",{c:"#99de2a"},"F6"], -[{y:-0.875,c:"#2277ff",w:1.5},"Special\n\n\n\n\n\nShift",{c:"#99de2a"},"F1",{x:14.5},"F10",{c:"#2277ff",w:1.5},"\n\nSpecial\n\n\n\n\nShift"], -[{y:-0.375,x:3.5,c:"#bbddbb"},"{",{x:10.5,c:"#89b087"},"8"], -[{y:-0.875,x:2.5,c:"#bbddbb"},"@",{x:1},"}",{x:8.5,c:"#89b087"},"7",{x:1},"9"], -[{y:-0.875,x:5.5,c:"#bbddbb"},"&",{h:1.5},"<",{x:4.5,h:1.5},">","|"], -[{y:-0.875,c:"#2277ff",w:1.5},"Media\n\n\n\n\n\nShift",{c:"#bbddbb"},"!",{x:14.5,c:"#89b087"},"/",{c:"#2277ff",w:1.5},"\n\nMedia\n\n\n\n\nShift"], -[{y:-0.375,x:3.5,c:"#bbddbb"},"(",{x:10.5,c:"#89b087"},"5"], -[{y:-0.875,x:2.5,c:"#bbddbb"},"$",{x:1},")",{x:8.5,c:"#89b087"},"4",{x:1},"6"], -[{y:-0.875,x:5.5,c:"#bbddbb"},"`",{x:6.5},"/"], -[{y:-0.875,c:"#000000",t:"#ff0000",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#bbddbb",t:"#000000"},"#",{x:14.5,c:"#89b087"},"*",{c:"#000000",t:"#ff0000",w:1.5},"\n\nSymbols\n\n\n\n\nShift"], -[{y:-0.625,x:6.5,c:"#54d6de",t:"#000000",fa:[0,0,0,1],h:1.5},"Tab >\n\n\nTab",{x:4.5,h:1.5},"< Tab\n\n\nShift Tab"], -[{y:-0.75,x:3.5,c:"#bbddbb"},"[",{x:10.5,c:"#89b087"},"2"], -[{y:-0.875,x:2.5,c:"#bbddbb"},"^",{x:1},"]",{x:8.5,c:"#89b087"},"1",{x:1},"3"], -[{y:-0.875,x:5.5,c:"#bbddbb"},"~",{x:6.5},"\\"], -[{y:-0.875,c:"#2277ff",w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#bbddbb"},"%",{x:14.5,c:"#89b087"},"-",{c:"#2277ff",w:1.5},"\n\nCapitals\n\n\n\n\nShift"], -[{y:-0.375,x:3.5,c:"#77aaff"},"Option\n\n\nLAlt",{x:10.5,c:"#89b087"},".\n\n\nOption"], -[{y:-0.875,x:2.5,c:"#77aaff"},"Hyper",{x:1},"Cmd\n\n\nSuper",{x:8.5,c:"#89b087"},"0\n\n\nCmd",{x:1},"=\n\n\nHyper"], -[{y:-0.75,x:0.5,c:"#77aaff"},"Ctrl\n\n\nLCtrl","Meh",{x:14.5,c:"#89b087"},"+\n\n\nMeh","Enter\n\n\nCtrl"], -[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#54d6de"},"Left","Right"], -[{h:2},"Space",{h:2},"Enter","Up"], -[{x:2},"Down"], -[{r:-30,rx:13,y:-1,x:-3},"Home","End"], -[{x:-3},"Page\n\n\n\n\n\nUp",{h:2},"< Del\n\n\nBackspace",{h:2},"Del >\n\n\nDelete"], -[{x:-3},"Page\n\n\n\n\n\nDown"] - diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/readme.md b/keyboards/ergodox_ez/keymaps/teckinesis/readme.md index 5d2f1d07d..e4881dbbf 100644 --- a/keyboards/ergodox_ez/keymaps/teckinesis/readme.md +++ b/keyboards/ergodox_ez/keymaps/teckinesis/readme.md @@ -4,11 +4,11 @@ ## The Base Layout ## -(placeholder) +![teckinesis base layout](teckinesis-base.png) ## The Symbols Layer ## -(placeholder) +![teckinesis symbols layout](teckinesis-symbol.png) ## The Media Layer ## diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-symbol.json b/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-symbol.json new file mode 100644 index 000000000..052c23da5 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-symbol.json @@ -0,0 +1,428 @@ +[ + { + "name": "teckinesis (Symbols Layer)", + "switchMount": "cherry", + "switchBrand": "gateron", + "switchType": "KS-3-Tea" + }, + [ + { + "x": 3.5, + "c": "#99de2a" + }, + "F3", + { + "x": 10.5 + }, + "F10" + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "F2", + { + "x": 1 + }, + "F4" + ], + [ + { + "y": -0.995, + "x": 14 + }, + "F9", + { + "x": 1 + }, + "F11" + ], + [ + { + "y": -0.8799999999999999, + "x": 5.5 + }, + "F5", + "F6", + { + "x": 4.5 + }, + "F7", + "F8" + ], + [ + { + "y": -0.875, + "x": 1.5 + }, + "F1" + ], + [ + { + "y": -0.995, + "c": "#2277ff", + "w": 1.5 + }, + "Media\n\nEsc\n\n\n\nShift", + { + "x": 15.5, + "c": "#99de2a" + }, + "F12", + { + "c": "#2277ff", + "w": 1.5 + }, + "\n\nMedia\n\n\n\n\nShift" + ], + [ + { + "y": -0.3799999999999999, + "x": 3.5, + "c": "#bbddbb" + }, + "{", + { + "x": 10.5, + "c": "#89b087" + }, + "8" + ], + [ + { + "y": -0.875, + "x": 2.5, + "c": "#bbddbb" + }, + "@", + { + "x": 1 + }, + "}", + { + "x": 8.5, + "c": "#89b087" + }, + "7", + { + "x": 1 + }, + "9" + ], + [ + { + "y": -0.875, + "x": 5.5, + "c": "#bbddbb" + }, + "&", + { + "h": 1.5 + }, + "<", + { + "x": 4.5, + "h": 1.5 + }, + ">", + "|" + ], + [ + { + "y": -0.875, + "x": 1.5 + }, + "!", + { + "x": 14.5, + "c": "#89b087" + }, + "/" + ], + [ + { + "y": -0.9950000000000001, + "c": "#000000", + "t": "#ff0000", + "w": 1.5 + }, + "Symbols\n\n\n\n\n\nShift", + { + "x": 16.5, + "w": 1.5 + }, + "\n\nSymbols\n\n\n\n\nShift" + ], + [ + { + "y": -0.3799999999999999, + "x": 3.5, + "c": "#bbddbb", + "t": "#000000" + }, + "(", + { + "x": 10.5, + "c": "#89b087" + }, + "5" + ], + [ + { + "y": -0.875, + "x": 2.5, + "c": "#bbddbb" + }, + "$", + { + "x": 1 + }, + ")", + { + "x": 8.5, + "c": "#89b087" + }, + "4", + { + "x": 1 + }, + "6" + ], + [ + { + "y": -0.875, + "x": 5.5, + "c": "#bbddbb" + }, + "`", + { + "x": 6.5 + }, + "/" + ], + [ + { + "y": -0.875, + "x": 1.5 + }, + "#", + { + "x": 14.5, + "c": "#89b087" + }, + "*" + ], + [ + { + "y": -0.9950000000000001, + "c": "#2277ff", + "w": 1.5 + }, + "Capitals\n\n\n\n\n\nShift", + { + "x": 16.5, + "w": 1.5 + }, + "\n\nCapitals\n\n\n\n\nShift" + ], + [ + { + "y": -0.6299999999999999, + "x": 6.5, + "c": "#54d6de", + "fa": [ + 0, + 0, + 0, + 1 + ], + "h": 1.5 + }, + "Tab >\n\n\nTab", + { + "x": 4.5, + "h": 1.5 + }, + "< Tab\n\n\nShift Tab" + ], + [ + { + "y": -0.75, + "x": 3.5, + "c": "#bbddbb" + }, + "[", + { + "x": 10.5, + "c": "#89b087" + }, + "2" + ], + [ + { + "y": -0.875, + "x": 2.5, + "c": "#bbddbb" + }, + "^", + { + "x": 1 + }, + "]", + { + "x": 8.5, + "c": "#89b087" + }, + "1", + { + "x": 1 + }, + "3" + ], + [ + { + "y": -0.875, + "x": 5.5, + "c": "#bbddbb" + }, + "~", + { + "x": 6.5 + }, + "\\" + ], + [ + { + "y": -0.875, + "x": 1.5 + }, + "%", + { + "x": 14.5, + "c": "#89b087" + }, + "-" + ], + [ + { + "y": -0.9950000000000001, + "c": "#2277ff", + "w": 1.5 + }, + "Ctrl", + { + "x": 16.5, + "w": 1.5 + }, + "\n\nCtrl" + ], + [ + { + "y": -0.3799999999999999, + "x": 3.5, + "c": "#77aaff" + }, + "Option\n\n\nLAlt", + { + "x": 10.5, + "c": "#89b087" + }, + ".\n\n\nOption" + ], + [ + { + "y": -0.875, + "x": 2.5, + "c": "#77aaff" + }, + "Hyper", + { + "x": 1 + }, + "Cmd\n\n\nSuper", + { + "x": 8.5, + "c": "#89b087" + }, + "0\n\n\nCmd", + { + "x": 1 + }, + "=\n\n\nHyper" + ], + [ + { + "y": -0.75, + "x": 0.5, + "c": "#77aaff" + }, + "Ctrl\n\n\nLCtrl", + "Meh", + { + "x": 14.5, + "c": "#89b087" + }, + "+\n\n\nMeh", + "Enter\n\n\nCtrl" + ], + [ + { + "r": 30, + "rx": 6.5, + "ry": 4.25, + "y": -1, + "x": 1, + "c": "#54d6de" + }, + "Left", + "Right" + ], + [ + { + "h": 2 + }, + "Space", + { + "h": 2 + }, + "Enter", + "Up" + ], + [ + { + "x": 2 + }, + "Down" + ], + [ + { + "r": -30, + "rx": 13, + "y": -1, + "x": -3 + }, + "Home", + "End" + ], + [ + { + "x": -3 + }, + "Page\n\n\n\n\n\nUp", + { + "h": 2 + }, + "< Del\n\n\nBackspace", + { + "h": 2 + }, + "Del >\n\n\nDelete" + ], + [ + { + "x": -3 + }, + "Page\n\n\n\n\n\nDown" + ] +] \ No newline at end of file diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-symbol.png b/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-symbol.png new file mode 100644 index 000000000..4750dbf1f Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-symbol.png differ -- cgit v1.2.3 From 76469ebbcfd5b2582a45eb0dd0966bad724e4cdd Mon Sep 17 00:00:00 2001 From: Will Wolff-Myren Date: Thu, 14 Jul 2016 01:22:15 -0700 Subject: Replaced ordinary-media.{png|json} with new media layout --- .../keymaps/teckinesis/ordinary-media.png | Bin 124144 -> 0 bytes .../keymaps/teckinesis/ordinary-media.txt | 27 -- .../keymaps/teckinesis/teckinesis-media.json | 436 +++++++++++++++++++++ .../keymaps/teckinesis/teckinesis-media.png | Bin 0 -> 112216 bytes 4 files changed, 436 insertions(+), 27 deletions(-) delete mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/ordinary-media.png delete mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/ordinary-media.txt create mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-media.json create mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-media.png (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-media.png b/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-media.png deleted file mode 100644 index 99e5ed80b..000000000 Binary files a/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-media.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-media.txt b/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-media.txt deleted file mode 100644 index 4eccc9f35..000000000 --- a/keyboards/ergodox_ez/keymaps/teckinesis/ordinary-media.txt +++ /dev/null @@ -1,27 +0,0 @@ -[{x:3.5,c:"#99de2a"},"F13",{x:10.5},"F18"], -[{y:-0.875,x:2.5},"F12",{x:1},"F14",{x:8.5},"F17",{x:1},"F19"], -[{y:-0.875,x:5.5},"F15",{c:"#ff4444"},"Esc",{x:4.5,c:"#737373",a:7},"",{c:"#99de2a",a:4},"F16"], -[{y:-0.875,c:"#2277ff",w:1.5},"Special\n\n\n\n\n\nShift",{c:"#99de2a"},"F11",{x:14.5},"F20",{c:"#2277ff",w:1.5},"\n\nSpecial\n\n\n\n\nShift"], -[{y:-0.375,x:3.5,c:"#ff8500"},"Mouse\n\n\n\n\n\nUp",{x:10.5},"Cursor\n\n\n\n\n\nUp"], -[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nUpLeft",{x:1},"Mouse\n\n\n\n\n\nUpRgt",{x:8.5,c:"#ffb063"},"Home",{x:1},"Page\n\n\n\n\n\nUp"], -[{y:-0.875,x:5.5,c:"#e6e067"},"Vol\n\n\n\n\n\nUp",{c:"#ffb063",h:1.5},"Scroll\n\n\n\n\n\nUp",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nUp",{c:"#e6e067"},"Print\n\n\n\n\n\nScreen"], -[{y:-0.875,c:"#000000",t:"#ff0000",w:1.5},"Media\n\n\n\n\n\nShift",{c:"#e6e067",t:"#000000"},"Shut\n\n\n\n\n\nDown",{x:14.5},"Mail",{c:"#000000",t:"#ff0000",w:1.5},"\n\nMedia\n\n\n\n\nShift"], -[{y:-0.375,x:3.5,c:"#ff8500",t:"#000000"},"Mouse\n\n\n\n\n\nDown",{x:10.5},"Cursor\n\n\n\n\n\nDown"], -[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nLeft",{x:1},"Mouse\n\n\n\n\n\nRight",{x:8.5},"Cursor\n\n\n\n\n\nLeft",{x:1},"Cursor\n\n\n\n\n\nRight"], -[{y:-0.875,x:5.5,c:"#e6e067"},"Vol\n\n\n\n\n\nDown",{x:6.5},"Num\n\n\n\n\n\nLock"], -[{y:-0.875,c:"#2277ff",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#e6e067"},"Sleep",{x:14.5},"My\n\n\n\n\n\nComp",{c:"#2277ff",w:1.5},"\n\nSymbols\n\n\n\n\nShift"], -[{y:-0.625,x:6.5,c:"#ffb063",h:1.5},"Scroll\n\n\n\n\n\nDown",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nDown"], -[{y:-0.75,x:3.5,c:"#ff8500"},"Mouse\n\n\n\n\n\nDown",{x:10.5},"Cursor\n\n\n\n\n\nDown"], -[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nDnLeft",{x:1},"Mouse\n\n\n\n\n\nDnRgt",{x:8.5,c:"#ffb063"},"End",{x:1},"Page\n\n\n\n\n\nDown"], -[{y:-0.875,x:5.5,c:"#e6e067"},"Mute",{x:6.5,c:"#737373",a:7},""], -[{y:-0.875,c:"#2277ff",a:4,w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#737373",a:7},"",{x:14.5},"",{c:"#2277ff",a:4,w:1.5},"\n\nCapitals\n\n\n\n\nShift"], -[{y:-0.375,x:3.5,c:"#ff8500"},"Middle\n\n\n\n\n\nClick",{x:10.5,c:"#ffb063",fa:[0,0,0,1]},"Delete\n\n\nOption"], -[{y:-0.875,x:2.5,c:"#ff8500"},"Left\n\n\n\n\n\nClick",{x:1},"Right\n\n\n\n\n\nClick",{x:8.5,c:"#ffb063"},"Insert\n\n\nCmd",{x:1,c:"#77aaff"},"Hyper"], -[{y:-0.75,x:0.5},"Ctrl\n\n\nLCtrl","Meh",{x:14.5},"Meh","Crtl\n\n\nRCtrl"], -[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#ccbb00"},"Stop\n\n\nBrowser","Reload\n\n\nBrowser"], -[{h:2},"< Web\n\n\nBrowser",{h:2},"Web >\n\n\nBrowser","Search\n\n\nBrowser"], -[{x:2},"Home\n\n\nBrowser"], -[{r:-30,rx:13,y:-1,x:-3},"Prev\n\n\nAudio\n\n\nTrack","Next\n\n\nAudio\n\n\nTrack"], -[{x:-3,c:"#e6e067"},"Vol\n\n\n\n\n\nUp",{c:"#ccbb00",h:2},"Stop\n\n\nAudio",{h:2},"Play\n\n\nAudio\n\n\nPause"], -[{x:-3,c:"#e6e067"},"Vol\n\n\n\n\n\nDown"] - diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-media.json b/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-media.json new file mode 100644 index 000000000..65fe394e8 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-media.json @@ -0,0 +1,436 @@ +[ + { + "name": "teckinesis (MediaLayer)", + "author": "Will Wolff-Myren", + "switchMount": "cherry", + "switchBrand": "gateron", + "switchType": "KS-3-Tea" + }, + [ + { + "x": 3.5, + "c": "#99de2a" + }, + "F13", + { + "x": 10.5 + }, + "F18" + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "F12", + { + "x": 1 + }, + "F14", + { + "x": 8.5 + }, + "F17", + { + "x": 1 + }, + "F19" + ], + [ + { + "y": -0.875, + "x": 5.5 + }, + "F15", + { + "c": "#ff4444" + }, + "Esc", + { + "x": 4.5 + }, + "Esc", + { + "c": "#99de2a" + }, + "F16" + ], + [ + { + "y": -0.875, + "x": 1.5 + }, + "F11", + { + "x": 14.5 + }, + "F20" + ], + [ + { + "y": -0.995, + "c": "#000000", + "t": "#ff0000", + "w": 1.5 + }, + "Media\n\n\n\n\n\nShift", + { + "x": 16.5, + "w": 1.5 + }, + "\n\nMedia\n\n\n\n\nShift" + ], + [ + { + "y": -0.3799999999999999, + "x": 3.5, + "c": "#ff8500", + "t": "#000000" + }, + "Mouse\n\n\n\n\n\nUp", + { + "x": 10.5 + }, + "Cursor\n\n\n\n\n\nUp" + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "Mouse\n\n\n\n\n\nUpLeft", + { + "x": 1 + }, + "Mouse\n\n\n\n\n\nUpRgt", + { + "x": 8.5, + "c": "#ffb063" + }, + "Home", + { + "x": 1 + }, + "Page\n\n\n\n\n\nUp" + ], + [ + { + "y": -0.875, + "x": 5.5, + "c": "#e6e067" + }, + "Vol\n\n\n\n\n\nUp", + { + "c": "#ffb063", + "h": 1.5 + }, + "Scroll\n\n\n\n\n\nUp", + { + "x": 4.5, + "h": 1.5 + }, + "Scroll\n\n\n\n\n\nUp", + { + "c": "#e6e067" + }, + "Print\n\n\n\n\n\nScreen" + ], + [ + { + "y": -0.875, + "x": 1.5, + "c": "#737373", + "a": 7 + }, + "", + { + "x": 14.5 + }, + "" + ], + [ + { + "y": -0.9950000000000001, + "c": "#2277ff", + "a": 4, + "w": 1.5 + }, + "Symbols\n\n\n\n\n\nShift", + { + "x": 16.5, + "w": 1.5 + }, + "\n\nSymbols\n\n\n\n\nShift" + ], + [ + { + "y": -0.3799999999999999, + "x": 3.5, + "c": "#ff8500" + }, + "Mouse\n\n\n\n\n\nDown", + { + "x": 10.5 + }, + "Cursor\n\n\n\n\n\nDown" + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "Mouse\n\n\n\n\n\nLeft", + { + "x": 1 + }, + "Mouse\n\n\n\n\n\nRight", + { + "x": 8.5 + }, + "Cursor\n\n\n\n\n\nLeft", + { + "x": 1 + }, + "Cursor\n\n\n\n\n\nRight" + ], + [ + { + "y": -0.875, + "x": 5.5, + "c": "#e6e067" + }, + "Vol\n\n\n\n\n\nDown", + { + "x": 6.5 + }, + "Num\n\n\n\n\n\nLock" + ], + [ + { + "y": -0.875, + "x": 1.5, + "c": "#737373", + "a": 7 + }, + "", + { + "x": 14.5 + }, + "" + ], + [ + { + "y": -0.9950000000000001, + "c": "#2277ff", + "a": 4, + "w": 1.5 + }, + "Capitals\n\n\n\n\n\nShift", + { + "x": 16.5, + "w": 1.5 + }, + "\n\nCapitals\n\n\n\n\nShift" + ], + [ + { + "y": -0.6299999999999999, + "x": 6.5, + "c": "#ffb063", + "h": 1.5 + }, + "Scroll\n\n\n\n\n\nDown", + { + "x": 4.5, + "h": 1.5 + }, + "Scroll\n\n\n\n\n\nDown" + ], + [ + { + "y": -0.75, + "x": 3.5, + "c": "#ff8500" + }, + "Mouse\n\n\n\n\n\nDown", + { + "x": 10.5 + }, + "Cursor\n\n\n\n\n\nDown" + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "Mouse\n\n\n\n\n\nDnLeft", + { + "x": 1 + }, + "Mouse\n\n\n\n\n\nDnRgt", + { + "x": 8.5, + "c": "#ffb063" + }, + "End", + { + "x": 1 + }, + "Page\n\n\n\n\n\nDown" + ], + [ + { + "y": -0.875, + "x": 5.5, + "c": "#e6e067" + }, + "Mute", + { + "x": 6.5, + "c": "#737373", + "a": 7 + }, + "" + ], + [ + { + "y": -0.875, + "x": 1.5 + }, + "", + { + "x": 14.5 + }, + "" + ], + [ + { + "y": -0.9950000000000001, + "c": "#2277ff", + "a": 4, + "w": 1.5 + }, + "Ctrl", + { + "x": 16.5, + "w": 1.5 + }, + "Ctrl" + ], + [ + { + "y": -0.3799999999999999, + "x": 3.5, + "c": "#ff8500" + }, + "Middle\n\n\n\n\n\nClick", + { + "x": 10.5, + "c": "#ffb063", + "fa": [ + 0, + 0, + 0, + 1 + ] + }, + "Delete\n\n\nOption" + ], + [ + { + "y": -0.875, + "x": 2.5, + "c": "#ff8500" + }, + "Left\n\n\n\n\n\nClick", + { + "x": 1 + }, + "Right\n\n\n\n\n\nClick", + { + "x": 8.5, + "c": "#ffb063" + }, + "Insert\n\n\nCmd", + { + "x": 1, + "c": "#77aaff" + }, + "Hyper" + ], + [ + { + "y": -0.75, + "x": 0.5 + }, + "Alt\n\n\nLAlt", + "Meh", + { + "x": 14.5 + }, + "Meh", + "Alt\n\n\nRAlt" + ], + [ + { + "r": 30, + "rx": 6.5, + "ry": 4.25, + "y": -1, + "x": 1, + "c": "#ccbb00" + }, + "Stop\n\n\nBrowser", + "Reload\n\n\nBrowser" + ], + [ + { + "h": 2 + }, + "< Web\n\n\nBrowser", + { + "h": 2 + }, + "Web >\n\n\nBrowser", + "Search\n\n\nBrowser" + ], + [ + { + "x": 2 + }, + "Home\n\n\nBrowser" + ], + [ + { + "r": -30, + "rx": 13, + "y": -1, + "x": -3 + }, + "Prev\n\n\nAudio\n\n\nTrack", + "Next\n\n\nAudio\n\n\nTrack" + ], + [ + { + "x": -3, + "c": "#e6e067" + }, + "Vol\n\n\n\n\n\nUp", + { + "c": "#ccbb00", + "h": 2 + }, + "Stop\n\n\nAudio", + { + "h": 2 + }, + "Play\n\n\nAudio\n\n\nPause" + ], + [ + { + "x": -3, + "c": "#e6e067" + }, + "Vol\n\n\n\n\n\nDown" + ] +] \ No newline at end of file diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-media.png b/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-media.png new file mode 100644 index 000000000..cc51605f9 Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-media.png differ -- cgit v1.2.3 From f13f48a35e1a2b0851bb9967976f39f2e233f838 Mon Sep 17 00:00:00 2001 From: Jonathan Lucas Date: Sat, 16 Jul 2016 20:24:14 -0700 Subject: Added CMD60 keymap --- keyboards/handwired/CMD60/CMD60.c | 8 + keyboards/handwired/CMD60/CMD60.h | 20 +++ keyboards/handwired/CMD60/Makefile | 73 ++++++++++ keyboards/handwired/CMD60/README.md | 35 +++++ keyboards/handwired/CMD60/config.h | 162 +++++++++++++++++++++ keyboards/handwired/CMD60/keymaps/default/keymap.c | 66 +++++++++ 6 files changed, 364 insertions(+) create mode 100644 keyboards/handwired/CMD60/CMD60.c create mode 100644 keyboards/handwired/CMD60/CMD60.h create mode 100644 keyboards/handwired/CMD60/Makefile create mode 100644 keyboards/handwired/CMD60/README.md create mode 100644 keyboards/handwired/CMD60/config.h create mode 100644 keyboards/handwired/CMD60/keymaps/default/keymap.c (limited to 'keyboards') diff --git a/keyboards/handwired/CMD60/CMD60.c b/keyboards/handwired/CMD60/CMD60.c new file mode 100644 index 000000000..799848e34 --- /dev/null +++ b/keyboards/handwired/CMD60/CMD60.c @@ -0,0 +1,8 @@ +#include "CMD60.h" + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + matrix_init_user(); +} diff --git a/keyboards/handwired/CMD60/CMD60.h b/keyboards/handwired/CMD60/CMD60.h new file mode 100644 index 000000000..f90871fc7 --- /dev/null +++ b/keyboards/handwired/CMD60/CMD60.h @@ -0,0 +1,20 @@ +#ifndef CMD60_H +#define CMD60_H + +#include "quantum.h" + +#define KEYMAP( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K41, K42, K45, K4A, K4B, K4C, K4D \ + ) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ + { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, KC_NO,K4A, K4B, K4C, K4D } \ +} + +#endif \ No newline at end of file diff --git a/keyboards/handwired/CMD60/Makefile b/keyboards/handwired/CMD60/Makefile new file mode 100644 index 000000000..711759917 --- /dev/null +++ b/keyboards/handwired/CMD60/Makefile @@ -0,0 +1,73 @@ + +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=512 + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= yes # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE ?= no # USB Nkey Rollover +BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default +MIDI_ENABLE ?= no # MIDI controls +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE ?= no # Audio output on port C6 + +ifndef QUANTUM_DIR + include ../../../Makefile +endif + + diff --git a/keyboards/handwired/CMD60/README.md b/keyboards/handwired/CMD60/README.md new file mode 100644 index 000000000..83e371543 --- /dev/null +++ b/keyboards/handwired/CMD60/README.md @@ -0,0 +1,35 @@ +CMD60 keyboard firmware +====================== + +##CMD60 + +This layout has been designed to optimize use of the left-hand, and it focussed specifically on programmers who work +with text editors like SublimeText and Atom. It utilizes the power of Space_fn, and features a caps lock swap for Fn2 +and enter key on tap. These features allow you to keep your right hand on the mouse more and should enable you to +achieve a higher level of productivity if you take the time to learn its function layers. + +## Quantum MK Firmware + +For the full Quantum feature list, see [the parent readme.md](/doc/readme.md). + +## Building + +Download or clone the whole firmware and navigate to the keyboards/handwired/CMD60 folder. +Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use +the Teensy Loader to program your .hex file. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default + +To build with the default keymap, simply run `make`. + +### Other Keymaps + +To build the firmware binary hex file with a keymap just do `make` with `keymap` option like: + +``` +$ make keymap=[default|jack|] +``` + +Keymaps follow the format **__keymap.c__** and are stored in folders in the `keymaps` folder, eg `keymaps/my_keymap/` diff --git a/keyboards/handwired/CMD60/config.h b/keyboards/handwired/CMD60/config.h new file mode 100644 index 000000000..5e28dc17b --- /dev/null +++ b/keyboards/handwired/CMD60/config.h @@ -0,0 +1,162 @@ +7/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER cmd +#define PRODUCT CMD60 +#define DESCRIPTION Advanced Programming Keeb Layout + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { F0, F4, F5, F6, F7 } +#define MATRIX_COL_PINS { B0, B1, B2, B3, B7, D0, D1, D2, D3, C6, D7, B4, B5, B6 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/handwired/CMD60/keymaps/default/keymap.c b/keyboards/handwired/CMD60/keymaps/default/keymap.c new file mode 100644 index 000000000..9f9cbcd66 --- /dev/null +++ b/keyboards/handwired/CMD60/keymaps/default/keymap.c @@ -0,0 +1,66 @@ +#include "CMD60.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = KEYMAP( /* CMD60 - QWERTY */ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \ + LT(3, KC_ENT), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_NO, KC_RSFT, \ + KC_LCTL, KC_LGUI, KC_LALT, LT(2, KC_SPC), MO(3), MO(4), MO(5), TG(1) \ + ), + [1] = KEYMAP( /* CMD60 - GameMode */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, \ + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_RSFT, \ + KC_TRNS, KC_NO, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS \ + ), + [2] = KEYMAP( /* CMD60 - Arrows */ + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \ + KC_TRNS, KC_BSPC, KC_UP, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC, KC_UP, KC_DEL, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, \ + KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS \ + ), + [3] = KEYMAP( /* CMD60 - Functions */ + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \ + KC_AUDIO_MUTE, KC_BSPC, KC_PGUP, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_TRNS, KC_PAUSE, KC_SLCK, KC_PSCREEN, \ + KC_TRNS, KC_HOME, KC_PGDN, KC_END, KC_TRNS, KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_INSERT, KC_NO, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS \ + ), + [4] = KEYMAP( /* CMD60 - Mouse */ + KC_SYSTEM_SLEEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_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_BTN1, KC_MS_UP, KC_MS_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_TRNS, KC_NO, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_WH_UP, KC_MS_BTN3, KC_MS_WH_DOWN, KC_NO, KC_NO, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS \ + ), + [5] = KEYMAP( /* CMD60 - Media */ + KC_SYSTEM_WAKE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, KC_AUDIO_MUTE, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MEDIA_PREV_TRACK, KC_MEDIA_NEXT_TRACK, KC_MEDIA_PLAY_PAUSE, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_WWW_BACK, KC_WWW_FORWARD, KC_NO, KC_NO, KC_WWW_REFRESH, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS \ + ), +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; -- cgit v1.2.3 From 2877b858d398b64787f679e7826cecce26dbb33f Mon Sep 17 00:00:00 2001 From: Jonathan Lucas Date: Sat, 16 Jul 2016 20:38:55 -0700 Subject: Fix erroneous character Must have been keeb testing :)--- keyboards/handwired/CMD60/config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/handwired/CMD60/config.h b/keyboards/handwired/CMD60/config.h index 5e28dc17b..27eb400b8 100644 --- a/keyboards/handwired/CMD60/config.h +++ b/keyboards/handwired/CMD60/config.h @@ -1,4 +1,4 @@ -7/* +/* Copyright 2012 Jun Wako This program is free software: you can redistribute it and/or modify -- cgit v1.2.3 From f9542237499c7f4f211ef88114d6a469ef69a38e Mon Sep 17 00:00:00 2001 From: Seth Chandler Date: Sat, 16 Jul 2016 23:51:27 -0400 Subject: update makefile to default to no virtual dip switches --- keyboards/satan/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/satan/Makefile b/keyboards/satan/Makefile index 184b5ac37..a0879fc9c 100644 --- a/keyboards/satan/Makefile +++ b/keyboards/satan/Makefile @@ -52,7 +52,7 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 # Build Options # comment out to disable the options. # -BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) +BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE ?= no # Mouse keys(+4700) EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) CONSOLE_ENABLE ?= yes # Console for debug(+400) -- cgit v1.2.3 From 6289332759938781ba1043168df894f844aa55e2 Mon Sep 17 00:00:00 2001 From: Seth Chandler Date: Sat, 16 Jul 2016 23:52:02 -0400 Subject: add custom makefile for sethbc keymap --- keyboards/satan/keymaps/sethbc/Makefile | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 keyboards/satan/keymaps/sethbc/Makefile (limited to 'keyboards') diff --git a/keyboards/satan/keymaps/sethbc/Makefile b/keyboards/satan/keymaps/sethbc/Makefile new file mode 100644 index 000000000..2a7ff2779 --- /dev/null +++ b/keyboards/satan/keymaps/sethbc/Makefile @@ -0,0 +1,21 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif -- cgit v1.2.3 From 38508180c755158a1933bc74b1b294bab3dd4c57 Mon Sep 17 00:00:00 2001 From: Seth Chandler Date: Sun, 17 Jul 2016 03:24:00 -0400 Subject: update readmes in certain directories to work with qmk.fm --- keyboards/clueboard/readme.md | 4 ++++ keyboards/cluepad/readme.md | 4 ++++ 2 files changed, 8 insertions(+) create mode 100644 keyboards/clueboard/readme.md create mode 100644 keyboards/cluepad/readme.md (limited to 'keyboards') diff --git a/keyboards/clueboard/readme.md b/keyboards/clueboard/readme.md new file mode 100644 index 000000000..aa301f020 --- /dev/null +++ b/keyboards/clueboard/readme.md @@ -0,0 +1,4 @@ +Clueboard keyboard firmware +====================== + +TODO: to be updated. diff --git a/keyboards/cluepad/readme.md b/keyboards/cluepad/readme.md new file mode 100644 index 000000000..8450340f2 --- /dev/null +++ b/keyboards/cluepad/readme.md @@ -0,0 +1,4 @@ +Cluepad number pad firmware +====================== + +TODO: to be updated. -- cgit v1.2.3 From 0a2653bac8950fed180cd2cf9e7a5caab8755cd2 Mon Sep 17 00:00:00 2001 From: Seth Chandler Date: Sun, 17 Jul 2016 03:38:53 -0400 Subject: update broken link --- .../ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md index 4188d2b50..16cebd091 100644 --- a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md +++ b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md @@ -10,7 +10,7 @@ There are four layers: Looking for IJKL arrows? [Here we go](../romanzolotarev-norman-plover-osx/). -[![keyboard-layout](romanzolotarev-norman-plover-osx-hjkl.png)](rttp://www.keyboard-layout-editor.com/#/gists/56ffedceb0668dda47c993e7271563e0) +[![keyboard-layout](romanzolotarev-norman-plover-osx-hjkl.png)](http://www.keyboard-layout-editor.com/#/gists/56ffedceb0668dda47c993e7271563e0) ## Switching -- cgit v1.2.3 From f6aeaac5b549ff111f24b6d07c33a3f29b785823 Mon Sep 17 00:00:00 2001 From: Seth Chandler Date: Sun, 17 Jul 2016 03:53:34 -0400 Subject: update more non-existent readmes for QMK.fm --- keyboards/alps64/readme.md | 4 ++++ keyboards/jd45/readme.md | 4 ++++ keyboards/phantom/readme.md | 4 ++++ keyboards/satan/readme.md | 4 ++++ 4 files changed, 16 insertions(+) create mode 100644 keyboards/alps64/readme.md create mode 100644 keyboards/jd45/readme.md create mode 100644 keyboards/phantom/readme.md create mode 100644 keyboards/satan/readme.md (limited to 'keyboards') diff --git a/keyboards/alps64/readme.md b/keyboards/alps64/readme.md new file mode 100644 index 000000000..1798b193a --- /dev/null +++ b/keyboards/alps64/readme.md @@ -0,0 +1,4 @@ +Alps64 keyboard firmware +====================== + +TODO: to be updated. diff --git a/keyboards/jd45/readme.md b/keyboards/jd45/readme.md new file mode 100644 index 000000000..2822666e8 --- /dev/null +++ b/keyboards/jd45/readme.md @@ -0,0 +1,4 @@ +JD45 keyboard firmware +====================== + +TODO: to be updated. diff --git a/keyboards/phantom/readme.md b/keyboards/phantom/readme.md new file mode 100644 index 000000000..190f738fa --- /dev/null +++ b/keyboards/phantom/readme.md @@ -0,0 +1,4 @@ +Phantom keyboard firmware +====================== + +TODO: to be updated. diff --git a/keyboards/satan/readme.md b/keyboards/satan/readme.md new file mode 100644 index 000000000..aa301f020 --- /dev/null +++ b/keyboards/satan/readme.md @@ -0,0 +1,4 @@ +Clueboard keyboard firmware +====================== + +TODO: to be updated. -- cgit v1.2.3 From 973ea2f917001ed11238a3d2c747c602a2765298 Mon Sep 17 00:00:00 2001 From: Will Wolff-Myren Date: Sun, 17 Jul 2016 13:58:43 -0700 Subject: LSpec: KC_GRV -> KC_EQL --- keyboards/ergodox_ez/keymaps/teckinesis/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/keymap.c b/keyboards/ergodox_ez/keymaps/teckinesis/keymap.c index 778cbc63c..3e3763e3f 100644 --- a/keyboards/ergodox_ez/keymaps/teckinesis/keymap.c +++ b/keyboards/ergodox_ez/keymaps/teckinesis/keymap.c @@ -292,13 +292,13 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case LSpec: if (record->event.pressed) { if (record->tap.count && !record->tap.interrupted) { - register_code(KC_GRV); + register_code(KC_EQL); } else { layer_on(SPEC); } } else { if(record->tap.count && !record->tap.interrupted) { - unregister_code(KC_GRV); + unregister_code(KC_EQL); } else { layer_off(SPEC); } -- cgit v1.2.3 From e900c39669d457263d2ded393f512e928a64c6a2 Mon Sep 17 00:00:00 2001 From: Will Wolff-Myren Date: Sun, 17 Jul 2016 14:01:41 -0700 Subject: RSpec: KC_EQL -> KC_MINS --- keyboards/ergodox_ez/keymaps/teckinesis/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/keymap.c b/keyboards/ergodox_ez/keymaps/teckinesis/keymap.c index 3e3763e3f..933d1d80c 100644 --- a/keyboards/ergodox_ez/keymaps/teckinesis/keymap.c +++ b/keyboards/ergodox_ez/keymaps/teckinesis/keymap.c @@ -352,13 +352,13 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case RSpec: if (record->event.pressed) { if (record->tap.count && !record->tap.interrupted) { - register_code(KC_EQL); + register_code(KC_MINS); } else { layer_on(SPEC); } } else { if(record->tap.count && !record->tap.interrupted) { - unregister_code(KC_EQL); + unregister_code(KC_MINS); } else { layer_off(SPEC); } -- cgit v1.2.3 From 11f8d167eccf4b11f4405175c3a195717252c373 Mon Sep 17 00:00:00 2001 From: Will Wolff-Myren Date: Sun, 17 Jul 2016 14:07:14 -0700 Subject: [BASE]: KC_MINS -> KC_GRV --- keyboards/ergodox_ez/keymaps/teckinesis/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/keymap.c b/keyboards/ergodox_ez/keymaps/teckinesis/keymap.c index 933d1d80c..9c0a96ebb 100644 --- a/keyboards/ergodox_ez/keymaps/teckinesis/keymap.c +++ b/keyboards/ergodox_ez/keymaps/teckinesis/keymap.c @@ -70,7 +70,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ,KC_PGUP ,KC_BSPC,KC_DEL ,KC_PGDN // right hand - ,KC_MINS ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,F(RSpec) + ,KC_GRV ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,F(RSpec) ,KC_RBRC ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,F(RMdia) ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,F(RSymb) ,KC_TAB ,KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH ,M(RCaps) -- cgit v1.2.3 From e9453b3fdc73a4b79bbc43024e0eeba9469e6910 Mon Sep 17 00:00:00 2001 From: Will Wolff-Myren Date: Sun, 17 Jul 2016 14:08:22 -0700 Subject: Update Base Layer comment to match new layout. --- keyboards/ergodox_ez/keymaps/teckinesis/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/keymap.c b/keyboards/ergodox_ez/keymaps/teckinesis/keymap.c index 9c0a96ebb..60b9afd3e 100644 --- a/keyboards/ergodox_ez/keymaps/teckinesis/keymap.c +++ b/keyboards/ergodox_ez/keymaps/teckinesis/keymap.c @@ -41,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /******* Base Layer ******************************************************************************************************** * * ,------------------------------------------------------. ,------------------------------------------------------. - * | Special `~ | 1 | 2 | 3 | 4 | 5 | ESC | | - | 6 | 7 | 8 | 9 | 0 | =+ Special | + * | Special =+ | 1 | 2 | 3 | 4 | 5 | ESC | | ` | 6 | 7 | 8 | 9 | 0 | -_ Special | * |------------+------+------+------+------+-------------| |------+------+------+------+------+------+------------| * | Media Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \| Media | * |------------+------+------+------+------+------| | | |------+------+------+------+------+------------| -- cgit v1.2.3 From ecc0fce210e398566ed9cfbd69887d729ef0d8bd Mon Sep 17 00:00:00 2001 From: Will Wolff-Myren Date: Sun, 17 Jul 2016 14:16:31 -0700 Subject: [BASE]: Meh, Hyper now have symbols on both sides Left: MEH_T(KC_BSLS),ALL_T(KC_SLSH) Right: ALL_T(KC_LBRC),MEH_T(KC_RBRC) --- keyboards/ergodox_ez/keymaps/teckinesis/keymap.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/keymap.c b/keyboards/ergodox_ez/keymaps/teckinesis/keymap.c index 60b9afd3e..4654f1cb9 100644 --- a/keyboards/ergodox_ez/keymaps/teckinesis/keymap.c +++ b/keyboards/ergodox_ez/keymaps/teckinesis/keymap.c @@ -49,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------------+------+------+------+------+------|Shift | | Tab |------+------+------+------+------+------------| * | Capitals | Z | X | C | V | B | -Tab | | | N | M | , | . | / | Capitals | * `------------+------+------+------+------+-------------' `-------------+------+------+------+------+------------' - * | LCtrl | Meh |Hyper | LAlt | LGui | | RGui | RAlt | Hyper| Meh | RCtrl | + * | LCtrl |Meh/\ |Hypr//| LAlt | LGui | | RGui | RAlt |Hypr/[|Meh/] | RCtrl | * `-----------------------------------' `-----------------------------------' * ,-------------. ,-------------. * | Home | End | | Left | Right| @@ -65,7 +65,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ,F(LMdia) ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC ,M(LSymb) ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,M(LCaps) ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,LSFT(KC_TAB) -,KC_LCTL ,KC_MEH ,KC_HYPR,KC_LALT,KC_LGUI +,KC_LCTL,MEH_T(KC_BSLS),ALL_T(KC_SLSH),KC_LALT,KC_LGUI ,KC_HOME,KC_END ,KC_PGUP ,KC_BSPC,KC_DEL ,KC_PGDN @@ -74,7 +74,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ,KC_RBRC ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,F(RMdia) ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,F(RSymb) ,KC_TAB ,KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH ,M(RCaps) - ,KC_RGUI,KC_RALT,KC_HYPR ,KC_MEH ,KC_RCTL + ,KC_RGUI,KC_RALT,ALL_T(KC_LBRC),MEH_T(KC_RBRC),KC_RCTL ,KC_LEFT ,KC_RGHT ,KC_UP ,KC_DOWN ,KC_ENT ,KC_SPC @@ -107,7 +107,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ,KC_TRNS ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_AMPR ,LSFT(KC_COMM) ,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_TAB -,KC_LCTL ,KC_MEH ,KC_HYPR,KC_LALT ,KC_LGUI +,KC_LCTL ,KC_MEH ,KC_HYPR ,KC_LALT ,KC_LGUI ,KC_LEFT ,KC_RGHT ,KC_UP ,KC_SPC ,KC_ENT ,KC_DOWN -- cgit v1.2.3 From 5bf40bfb36fbd54dc154ef25c2dad41ddcb0b268 Mon Sep 17 00:00:00 2001 From: Will Wolff-Myren Date: Sun, 17 Jul 2016 14:19:22 -0700 Subject: [MEDIA]: Remove Power, Sleep, Mail, MyComp I kept hitting these on accident while attempting to move the cursor or mouse. =P --- keyboards/ergodox_ez/keymaps/teckinesis/keymap.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/keymap.c b/keyboards/ergodox_ez/keymaps/teckinesis/keymap.c index 4654f1cb9..dc0f8aa6c 100644 --- a/keyboards/ergodox_ez/keymaps/teckinesis/keymap.c +++ b/keyboards/ergodox_ez/keymaps/teckinesis/keymap.c @@ -127,9 +127,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,---------------------------------------------------------------. ,---------------------------------------------------------------. * | | F11 | F12 | F13 | F14 | F15 | Esc | | | F16 | F17 | F18 | F19 | F20 | | * |------+---------+---------+---------+---------+----------------| |------+---------+---------+---------+---------+---------+------| - * | |Shut Down|MouseUpLf|Mouse Up |MouseUpRg|Volume Up|Scroll| |Scroll|PrintScrn| Home | Up | PgUp | Mail | | + * | | |MouseUpLf|Mouse Up |MouseUpRg|Volume Up|Scroll| |Scroll|PrintScrn| Home | Up | PgUp | | | * |------+---------+---------+---------+---------+---------| Up | | Up |---------+---------+---------+---------+---------+------| - * | | Sleep |MouseLeft|MouseDown|MouseRght|Volume Dn|------| |------| Num Lock| Left | Down | Right | MyComp | | + * | | |MouseLeft|MouseDown|MouseRght|Volume Dn|------| |------| Num Lock| Left | Down | Right | | | * |------+---------+---------+---------+---------+---------|Scroll| |Scroll|---------+---------+---------+---------+---------+------| * | | |MouseDnLf|MouseDown|MouseDnRg| Mute | Down | | Down | | End | Down | PgDn | | | * `------+---------+---------+---------+---------+----------------' `----------------+---------+---------+---------+---------+------' @@ -146,8 +146,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MDIA] = KEYMAP( // left hand KC_TRNS ,KC_F11 ,KC_F12 ,KC_F13 ,KC_F14 ,KC_F15 ,KC_ESC -,KC_TRNS ,KC_POWER ,M(MUL) ,KC_MS_U ,M(MUR) ,KC_VOLU ,KC_WH_U -,KC_TRNS ,KC_SLEP ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_VOLD +,KC_TRNS ,KC_NO ,M(MUL) ,KC_MS_U ,M(MUR) ,KC_VOLU ,KC_WH_U +,KC_TRNS ,KC_NO ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_VOLD ,KC_TRNS ,KC_NO ,M(MDL) ,KC_MS_D ,M(MDR) ,KC_MUTE ,KC_WH_D ,KC_LCTL ,KC_MEH ,KC_BTN3 ,KC_BTN1 ,KC_BTN2 ,KC_WSTP ,KC_WREF @@ -155,8 +155,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ,KC_WBAK ,KC_NO ,KC_WHOM // right hand ,KC_NO ,KC_F16 ,KC_F17 ,KC_F18 ,KC_F19 ,KC_F20 ,KC_TRNS - ,KC_WH_U ,KC_PSCR ,KC_HOME ,KC_UP ,KC_PGUP ,KC_MAIL ,KC_TRNS - ,KC_NLCK ,KC_LEFT ,KC_DOWN ,KC_RIGHT,KC_MYCM ,KC_TRNS + ,KC_WH_U ,KC_PSCR ,KC_HOME ,KC_UP ,KC_PGUP ,KC_NO ,KC_TRNS + ,KC_NLCK ,KC_LEFT ,KC_DOWN ,KC_RIGHT,KC_NO ,KC_TRNS ,KC_WH_D ,KC_NO ,KC_END ,KC_DOWN ,KC_PGDN ,KC_NO ,KC_TRNS ,GUI_T(KC_INS),ALT_T(KC_DEL),KC_HYPR ,KC_MEH ,KC_RCTL ,KC_MPRV ,KC_MNXT -- cgit v1.2.3 From ea2b1670f61d166463d9edcba637564fca5d9a7a Mon Sep 17 00:00:00 2001 From: Will Wolff-Myren Date: Sun, 17 Jul 2016 14:56:37 -0700 Subject: Update description comment. --- keyboards/ergodox_ez/keymaps/teckinesis/keymap.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/keymap.c b/keyboards/ergodox_ez/keymaps/teckinesis/keymap.c index dc0f8aa6c..ec6ceb96b 100644 --- a/keyboards/ergodox_ez/keymaps/teckinesis/keymap.c +++ b/keyboards/ergodox_ez/keymaps/teckinesis/keymap.c @@ -25,15 +25,16 @@ #define MDR 23 // mouse down right /* - * The Ordinary Layout for the Ergodox EZ keyboard, v4 + * teckinesis layout for ErgoDox (EZ) * + * Modifications from The Ordinary Layout v4 by Will Wolff-Myren willwm@gmail.com * Modifications from default by Nicholas Keene ergodoxez@nicholaskeene.com * * No rights reserved. This software is in the public domain. * Credit me if you are friendly but if you're a jerk don't bother. * * Details: readme.md - * https://github.com/nrrkeene/qmk_firmware/tree/master/keyboard/ergodox_ez/keymaps/ordinary + * https://github.com/willwm/qmk_firmware/tree/master/keyboard/ergodox_ez/keymaps/teckinesis */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -- cgit v1.2.3 From 8fb407457857c48e16f27d1a774a08f2214d50e6 Mon Sep 17 00:00:00 2001 From: Will Wolff-Myren Date: Sun, 17 Jul 2016 15:04:50 -0700 Subject: Update readme.md * Updated layout images, json from Keyboard Layout Designer * Added links to Keyboard Layout Designer templates. * Added images of TECK, Kinesis layouts. --- .../keymaps/teckinesis/advantage_layout_win.png | Bin 0 -> 93337 bytes keyboards/ergodox_ez/keymaps/teckinesis/readme.md | 39 +++- .../keymaps/teckinesis/teck209layout.jpg | Bin 0 -> 89673 bytes .../keymaps/teckinesis/teckinesis-base.json | 200 ++++++++++----------- .../keymaps/teckinesis/teckinesis-base.png | Bin 94828 -> 93743 bytes .../keymaps/teckinesis/teckinesis-symbol.json | 130 +++++++------- .../keymaps/teckinesis/teckinesis-symbol.png | Bin 97055 -> 97350 bytes 7 files changed, 191 insertions(+), 178 deletions(-) create mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/advantage_layout_win.png create mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/teck209layout.jpg (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/advantage_layout_win.png b/keyboards/ergodox_ez/keymaps/teckinesis/advantage_layout_win.png new file mode 100644 index 000000000..0a1df6809 Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/teckinesis/advantage_layout_win.png differ diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/readme.md b/keyboards/ergodox_ez/keymaps/teckinesis/readme.md index e4881dbbf..c6f2c666f 100644 --- a/keyboards/ergodox_ez/keymaps/teckinesis/readme.md +++ b/keyboards/ergodox_ez/keymaps/teckinesis/readme.md @@ -2,15 +2,52 @@ *A blend of TECK and Kinesis layouts, based on ["The Ordinary Layout" by Nicholas Keene](http://qmk.fm/keyboards/ergodox_ez/keymaps/ordinary/#the-ordinary-layout-a-familiar-and-powerful-layout)* +I love "The Ordinary Layout", but I still use a [TECK](https://www.trulyergonomic.com/store/index.php) +at the office, and I found the transition back and forth to be a bit more difficult than I expected. + +This layout consists of only slight changes to "The Ordinary Layout" based on the layouts of the +[(original) TECK Model 209](https://www.trulyergonomic.com/store/layout-designer--configurator--reprogrammable--truly-ergonomic-mechanical-keyboard/#KTo7PD0+P0BBQkNERUw5394rNR4fICEi4yMkJSYnLS4xOBQaCBUXTBwYDBITLzDhBBYHCQorCw0ODzPl4B0bBhkFKhEQNjc05OPiSktOTSwoLFBSUU/mZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX2BhAFZXAAAAAAAAAAAAXF1eVAAAAAAAAAAAAABZWltVAAAAAAAAAAAAYgBjAAAAAAAAAAAAWFcAAAAAAACTAQAMAiMBAAwBigEADAIhAQAMAZQBAAwBkgEADAGDAQAMALYBAAwAzQEADAC1AQAMAOIBAAwA6gEADADpAQAMALhJAEYAAAAAAEitR64AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACk6Ozw9Pj9AQUJDREVMOd/eKzUeHyAhIuMjJCUmJy0uMTgUGggVF0wcGAwSEy8w4QQWBwkKKwsNDg8z5eMdGwYZBSoREDY3NOfg4kpLTk0sKCxQUlFP5uQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9gYQBWVwAAAAAAAAAAAFxdXlQAAAAAAAAAAAAAWVpbVQAAAAAAAAAAAGIAYwAAAAAAAAAAAFhXAAAAAAAAkwEADAIjAQAMAYoBAAwCIQEADAGUAQAMAZIBAAwBgwEADAC2AQAMAM0BAAwAtQEADADiAQAMAOoBAAwA6QEADAC4SQBGAAAAAABIrUeuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=) and +the [Kinesis Advantage](http://www.kinesis-ergo.com/wp-content/uploads/2013/06/advantage_layout_win.pdf) + ## The Base Layout ## +[Keyboard Layout Editor](http://www.keyboard-layout-editor.com/#/gists/befd4c5800d92114aa9e50d4f7c0dfb0) \ ![teckinesis base layout](teckinesis-base.png) +### Changes from The Ordinary Layout ### + +* Moved KC_MINS from the key left of the 6 to the RSpec key. +* Moved KC_EQL from RSpec to LSpec. +* Moved KC_GRV from LSpec to the key left of the 6. +* Mdded KC_BSLS to the left Meh key. +* Added KC_SLSH to the left Hyper key. +* Added KC_LBRC to the right Hyper key. +* Added KC_RBRC to the right Meh key. + ## The Symbols Layer ## +[teckinesis (Symbols Layer)](http://www.keyboard-layout-editor.com/#/gists/e6ddc4e9e0d194b3e52ac0616238ab61) \ ![teckinesis symbols layout](teckinesis-symbol.png) +### Changes from The Ordinary Layout ### + +* None. + ## The Media Layer ## -(placeholder) +[teckinesis (Media Layer)](http://www.keyboard-layout-editor.com/#/gists/41ff65e6a7c490211fd6702fb34d9908) \ +![teckinesis media layout](teckinesis-media.png) + +### Changes from The Ordinary Layout ### + +* Removed Power, Sleep, Mail, My Computer keys. +(I kept hitting these while using the mouse/cursor. =P) + +## TECK Layout ## + +![TECK 209 Layout](teck209layout.jpg) + +## Kinesis Advantage Layout ## + +![Kinesis Advantage Layout](advantage_layout_win.png) diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/teck209layout.jpg b/keyboards/ergodox_ez/keymaps/teckinesis/teck209layout.jpg new file mode 100644 index 000000000..a97844f4f Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/teckinesis/teck209layout.jpg differ diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-base.json b/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-base.json index f1efab272..69fe28cf7 100644 --- a/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-base.json +++ b/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-base.json @@ -1,8 +1,8 @@ [ { - "name": "teckinesis", + "name": "teckinesis (Base Layer)", "author": "Will Wolff-Myren", - "notes": "# teckinesis Layout # \r\n\r\n*A blend of TECK and Kinesis layouts, based on [\"The Ordinary Layout\" by Nicholas Keene](http://qmk.fm/keyboards/ergodox_ez/keymaps/ordinary/#the-ordinary-layout-a-familiar-and-powerful-layout)*\r\n\r\n## The Base Layout ##\r\n\r\n(placeholder)\r\n\r\n## The Symbols Layer ##\r\n\r\n(placeholder)\r\n\r\n## The Media Layer ##\r\n\r\n(placeholder)", + "notes": "# teckinesis Layout # \r\n\r\n*A blend of TECK and Kinesis layouts, based on [\"The Ordinary Layout\" by Nicholas Keene](http://qmk.fm/keyboards/ergodox_ez/keymaps/ordinary/#the-ordinary-layout-a-familiar-and-powerful-layout)*\r\n\r\n## The Base Layout ##\r\n\r\n![teckinesis base layout](teckinesis-base.png)\r\n\r\n## The Symbols Layer ##\r\n\r\n![teckinesis symbols layout](teckinesis-symbol.png)\r\n\r\n## The Media Layer ##\r\n\r\n(placeholder)\r\n", "switchMount": "cherry", "switchBrand": "gateron", "switchType": "KS-3-Tea" @@ -15,7 +15,7 @@ { "x": 10.5 }, - ")\n0" + "*\n8" ], [ { @@ -26,59 +26,57 @@ { "x": 1 }, - "$\n4" - ], - [ + "$\n4", { - "y": -0.995, - "x": 14 + "x": 8.5 }, - "(\n9", + "&\n7", { "x": 1 }, - "_\n-" + "(\n9" ], [ { - "y": -0.8799999999999999, + "y": -0.875, "x": 5.5 }, "%\n5", - "^\n6", { - "x": 4.5 + "c": "#ff4444" }, - "&\n7", - "*\n8" + "Esc", + { + "x": 4.5, + "c": "#cccccc" + }, + "~\n`", + "^\n6" ], [ { "y": -0.875, - "x": 1.5 + "c": "#2277ff", + "w": 1.5 + }, + "Special\n\n+\n\n\n\nShift\n=", + { + "c": "#cccccc" }, "!\n1", { "x": 14.5 }, - "+\n=" - ], - [ + ")\n0", { - "y": -0.995, "c": "#2277ff", "w": 1.5 }, - "Media\n\nEsc\n\n\n\nShift", - { - "x": 16.5, - "w": 1.5 - }, - "~\n`\nMedia\n\n\n\n\nShift" + "_\n\nSpecial\n\n\n\n-\nShift" ], [ { - "y": -0.3799999999999999, + "y": -0.375, "x": 3.5, "c": "#cccccc" }, @@ -127,30 +125,33 @@ [ { "y": -0.875, - "x": 1.5 + "c": "#2277ff", + "fa": [ + 0, + 0, + 4 + ], + "w": 1.5 + }, + "Media\n\n\n\n\n\nShift", + { + "c": "#cccccc" }, "Q", { "x": 14.5 }, - "P" - ], - [ + "P", { - "y": -0.9950000000000001, "c": "#2277ff", + "f": 3, "w": 1.5 }, - "Symbols\n\n?\n/\n\n\nShift", - { - "x": 16.5, - "w": 1.5 - }, - "|\n\\\nSymbols\n\n\n\n\nShift" + "|\n\\\nMedia\n\n\n\n\nShift" ], [ { - "y": -0.3799999999999999, + "y": -0.375, "x": 3.5, "c": "#cccccc" }, @@ -193,36 +194,34 @@ [ { "y": -0.875, - "x": 1.5 + "c": "#2277ff", + "w": 1.5 + }, + "Symbols\n\n\n\n\n\nShift", + { + "c": "#cccccc" }, "A", { "x": 14.5 }, - ":\n;" - ], - [ + ":\n;", { - "y": -0.9950000000000001, "c": "#2277ff", + "f": 3, "w": 1.5 }, - "Capitals\n\n\n\n\n\nShift", - { - "x": 16.5, - "w": 1.5 - }, - "\n\nCapitals\n\n\n\n\nShift" + "\"\n'\nSymbols\n\n\n\n\nShift" ], [ { - "y": -0.6299999999999999, + "y": -0.625, "x": 6.5, "c": "#54d6de", "fa": [ 0, 0, - 0, + 4, 1 ], "h": 1.5 @@ -279,109 +278,99 @@ [ { "y": -0.875, - "x": 1.5 + "c": "#2277ff", + "w": 1.5 + }, + "Capitals\n\n\n\n\n\nShift", + { + "c": "#cccccc" }, "Z", { "x": 14.5 }, - "?\n/" - ], - [ + "?\n/", { - "y": -0.9950000000000001, "c": "#2277ff", + "f": 3, "w": 1.5 }, - "Ctrl", - { - "x": 16.5, - "w": 1.5 - }, - "Ctrl" + "\n\nCapitals\n\n\n\n\nShift" ], [ { - "y": -0.3799999999999999, + "y": -0.375, "x": 3.5, - "c": "#77aaff" + "c": "#77aaff", + "fa": [ + 5, + 0, + 4, + 1 + ] }, - "Option\n\n\nLAlt", + "\n\n\nLAlt", { "x": 10.5 }, - "Option\n\n\nRAlt" + "\n\n\nRAlt" ], [ { "y": -0.875, "x": 2.5, - "f": 3 - }, - "Hyper\n\n}\n]", - { - "x": 1 + "fa": [ + 5, + 1 + ] }, - "Cmd\n\n\nSuper", + "\nHyper\n?\n/", { - "x": 8.5, + "x": 1, "fa": [ 5, - 0, - 0, 1, 0, - 0, - 0 + 1 ] }, "\n\n\nSuper", + { + "x": 8.5 + }, + "\n\n\nSuper", { "x": 1, "fa": [ - 5, - 0, - 0, 0, 0, 0, 1 ] }, - "\n\n~\n`\n\n\nHyper" + "{\n[\n\nHyper" ], [ { "y": -0.75, - "x": 0.5, - "f": 2 + "x": 0.5 }, - "Print\n\n\n\n\n\nScreen", + "Ctrl\n\n\nLCtrl", { - "f": 3 + "f2": 1 }, - "Meh\n\n{\n[", + "\nMeh\n|\n\\", { "x": 14.5, "fa": [ 0, 0, - 0, - 0, - 0, - 0, - 2 + 1, + 1 ] }, - "\n\n\"\n'\n\n\nMeh" - ], - [ - { - "y": -0.9950000000000001, - "x": 18, - "f": 2 - }, - "Special\n\n\n\n\n\nShift" + "}\n]\n\nMeh", + "Ctrl\n\n\nRCtrl" ], [ { @@ -390,20 +379,13 @@ "ry": 4.25, "y": -1, "x": 1, - "c": "#54d6de", - "f": 3 + "c": "#54d6de" }, "Home", "End" ], [ { - "fa": [ - 0, - 0, - 0, - 1 - ], "h": 2 }, "< Del\n\n\nBackspace", diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-base.png b/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-base.png index f1a5eda0d..7c4584e9f 100644 Binary files a/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-base.png and b/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-base.png differ diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-symbol.json b/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-symbol.json index 052c23da5..439d0128e 100644 --- a/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-symbol.json +++ b/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-symbol.json @@ -1,6 +1,7 @@ [ { - "name": "teckinesis (Symbols Layer)", + "name": "teckinesis (Symbol Layer)", + "author": "Will Wolff-Myren", "switchMount": "cherry", "switchBrand": "gateron", "switchType": "KS-3-Tea" @@ -14,7 +15,7 @@ { "x": 10.5 }, - "F10" + "F8" ], [ { @@ -25,60 +26,60 @@ { "x": 1 }, - "F4" - ], - [ + "F4", { - "y": -0.995, - "x": 14 + "x": 8.5 }, - "F9", + "F7", { "x": 1 }, - "F11" + "F9" ], [ { - "y": -0.8799999999999999, + "y": -0.875, "x": 5.5 }, "F5", - "F6", { - "x": 4.5 + "c": "#ff4444" }, - "F7", - "F8" - ], - [ + "Esc", { - "y": -0.875, - "x": 1.5 + "x": 4.5, + "c": "#bbddbb" }, - "F1" + "_\n\n\n\n\n\n-", + { + "c": "#99de2a" + }, + "F6" ], [ { - "y": -0.995, + "y": -0.875, "c": "#2277ff", "w": 1.5 }, - "Media\n\nEsc\n\n\n\nShift", + "Special\n\n\n\n\n\nShift", { - "x": 15.5, "c": "#99de2a" }, - "F12", + "F1", + { + "x": 14.5 + }, + "F10", { "c": "#2277ff", "w": 1.5 }, - "\n\nMedia\n\n\n\n\nShift" + "\n\nSpecial\n\n\n\n\nShift" ], [ { - "y": -0.3799999999999999, + "y": -0.375, "x": 3.5, "c": "#bbddbb" }, @@ -131,35 +132,30 @@ [ { "y": -0.875, - "x": 1.5 + "c": "#2277ff", + "w": 1.5 + }, + "Media\n\n\n\n\n\nShift", + { + "c": "#bbddbb" }, "!", { "x": 14.5, "c": "#89b087" }, - "/" - ], - [ + "/", { - "y": -0.9950000000000001, - "c": "#000000", - "t": "#ff0000", - "w": 1.5 - }, - "Symbols\n\n\n\n\n\nShift", - { - "x": 16.5, + "c": "#2277ff", "w": 1.5 }, - "\n\nSymbols\n\n\n\n\nShift" + "\n\nMedia\n\n\n\n\nShift" ], [ { - "y": -0.3799999999999999, + "y": -0.375, "x": 3.5, - "c": "#bbddbb", - "t": "#000000" + "c": "#bbddbb" }, "(", { @@ -204,33 +200,34 @@ [ { "y": -0.875, - "x": 1.5 + "c": "#000000", + "t": "#ff0000", + "w": 1.5 + }, + "Symbols\n\n\n\n\n\nShift", + { + "c": "#bbddbb", + "t": "#000000" }, "#", { "x": 14.5, "c": "#89b087" }, - "*" - ], - [ + "*", { - "y": -0.9950000000000001, - "c": "#2277ff", - "w": 1.5 - }, - "Capitals\n\n\n\n\n\nShift", - { - "x": 16.5, + "c": "#000000", + "t": "#ff0000", "w": 1.5 }, - "\n\nCapitals\n\n\n\n\nShift" + "\n\nSymbols\n\n\n\n\nShift" ], [ { - "y": -0.6299999999999999, + "y": -0.625, "x": 6.5, "c": "#54d6de", + "t": "#000000", "fa": [ 0, 0, @@ -295,35 +292,32 @@ [ { "y": -0.875, - "x": 1.5 + "c": "#2277ff", + "w": 1.5 + }, + "Capitals\n\n\n\n\n\nShift", + { + "c": "#bbddbb" }, "%", { "x": 14.5, "c": "#89b087" }, - "-" - ], - [ + "-", { - "y": -0.9950000000000001, "c": "#2277ff", "w": 1.5 }, - "Ctrl", - { - "x": 16.5, - "w": 1.5 - }, - "\n\nCtrl" + "\n\nCapitals\n\n\n\n\nShift" ], [ { - "y": -0.3799999999999999, + "y": -0.375, "x": 3.5, "c": "#77aaff" }, - "Option\n\n\nLAlt", + "\n\n\nLAlt", { "x": 10.5, "c": "#89b087" @@ -340,7 +334,7 @@ { "x": 1 }, - "Cmd\n\n\nSuper", + "\n\n\nSuper", { "x": 8.5, "c": "#89b087" diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-symbol.png b/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-symbol.png index 4750dbf1f..7ca86cf47 100644 Binary files a/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-symbol.png and b/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-symbol.png differ -- cgit v1.2.3 From 3c4620bf8192a38e0d5e83e4e65ffda4a33a882d Mon Sep 17 00:00:00 2001 From: Will Wolff-Myren Date: Sun, 17 Jul 2016 15:08:04 -0700 Subject: Update readme.md * Markdown cleanup --- keyboards/ergodox_ez/keymaps/teckinesis/readme.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/readme.md b/keyboards/ergodox_ez/keymaps/teckinesis/readme.md index c6f2c666f..84b737505 100644 --- a/keyboards/ergodox_ez/keymaps/teckinesis/readme.md +++ b/keyboards/ergodox_ez/keymaps/teckinesis/readme.md @@ -1,4 +1,4 @@ -# teckinesis Layout # +# teckinesis Layout *A blend of TECK and Kinesis layouts, based on ["The Ordinary Layout" by Nicholas Keene](http://qmk.fm/keyboards/ergodox_ez/keymaps/ordinary/#the-ordinary-layout-a-familiar-and-powerful-layout)* @@ -11,7 +11,7 @@ the [Kinesis Advantage](http://www.kinesis-ergo.com/wp-content/uploads/2013/06/a ## The Base Layout ## -[Keyboard Layout Editor](http://www.keyboard-layout-editor.com/#/gists/befd4c5800d92114aa9e50d4f7c0dfb0) \ +[teckinesis (Base Layer)](http://www.keyboard-layout-editor.com/#/gists/befd4c5800d92114aa9e50d4f7c0dfb0) ![teckinesis base layout](teckinesis-base.png) ### Changes from The Ordinary Layout ### @@ -26,7 +26,7 @@ the [Kinesis Advantage](http://www.kinesis-ergo.com/wp-content/uploads/2013/06/a ## The Symbols Layer ## -[teckinesis (Symbols Layer)](http://www.keyboard-layout-editor.com/#/gists/e6ddc4e9e0d194b3e52ac0616238ab61) \ +[teckinesis (Symbols Layer)](http://www.keyboard-layout-editor.com/#/gists/e6ddc4e9e0d194b3e52ac0616238ab61) ![teckinesis symbols layout](teckinesis-symbol.png) ### Changes from The Ordinary Layout ### @@ -35,7 +35,7 @@ the [Kinesis Advantage](http://www.kinesis-ergo.com/wp-content/uploads/2013/06/a ## The Media Layer ## -[teckinesis (Media Layer)](http://www.keyboard-layout-editor.com/#/gists/41ff65e6a7c490211fd6702fb34d9908) \ +[teckinesis (Media Layer)](http://www.keyboard-layout-editor.com/#/gists/41ff65e6a7c490211fd6702fb34d9908) ![teckinesis media layout](teckinesis-media.png) ### Changes from The Ordinary Layout ### @@ -43,7 +43,9 @@ the [Kinesis Advantage](http://www.kinesis-ergo.com/wp-content/uploads/2013/06/a * Removed Power, Sleep, Mail, My Computer keys. (I kept hitting these while using the mouse/cursor. =P) -## TECK Layout ## +# Truly Ergonomic and Kinesis Advantage Layouts + +## TECK 209 Layout ## ![TECK 209 Layout](teck209layout.jpg) -- cgit v1.2.3 From 53eb36c085dafc1305de77de629eb157a0a8ef8f Mon Sep 17 00:00:00 2001 From: Gergely Nagy Date: Mon, 18 Jul 2016 08:46:04 +0200 Subject: ergodox_ez: Update my keymap to v1.3 This updates my ErgoDox EZ layout to v1.3, which has the following noteworthy changes: * Added support for logging keys, by pressing `LEAD d`. Also included is a tool to generate a **heatmap** out of the logs. * The arrow and navigation keys were rearranged again, and now require an additional key being held to activate. See the **base layer** for an image that shows where arrows are. * The **experimental** layer has been redone, and is now called **ADORE**, and as such, can be enabled by `LEAD a` now. * Switching between Dvorak and ADORE is now persisted into EEPROM, and survives a reboot. Signed-off-by: Gergely Nagy --- keyboards/ergodox_ez/keymaps/algernon/Makefile | 3 + .../keymaps/algernon/images/adore-layer.png | Bin 0 -> 95615 bytes .../keymaps/algernon/images/base-layer.png | Bin 105162 -> 95654 bytes .../keymaps/algernon/images/experimental-layer.png | Bin 105172 -> 0 bytes .../ergodox_ez/keymaps/algernon/images/heatmap.png | Bin 0 -> 137912 bytes keyboards/ergodox_ez/keymaps/algernon/keymap.c | 181 +++---- keyboards/ergodox_ez/keymaps/algernon/readme.md | 207 ++++---- .../algernon/tools/heatmap-base-layout.json | 533 +++++++++++++++++++++ .../keymaps/algernon/tools/log-to-heatmap.py | 145 ++++++ 9 files changed, 855 insertions(+), 214 deletions(-) create mode 100644 keyboards/ergodox_ez/keymaps/algernon/images/adore-layer.png delete mode 100644 keyboards/ergodox_ez/keymaps/algernon/images/experimental-layer.png create mode 100644 keyboards/ergodox_ez/keymaps/algernon/images/heatmap.png create mode 100644 keyboards/ergodox_ez/keymaps/algernon/tools/heatmap-base-layout.json create mode 100755 keyboards/ergodox_ez/keymaps/algernon/tools/log-to-heatmap.py (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/algernon/Makefile b/keyboards/ergodox_ez/keymaps/algernon/Makefile index cd7e9e9d2..005f9750c 100644 --- a/keyboards/ergodox_ez/keymaps/algernon/Makefile +++ b/keyboards/ergodox_ez/keymaps/algernon/Makefile @@ -3,6 +3,9 @@ COMMAND_ENABLE=no SLEEP_LED_ENABLE=no UNICODE_ENABLE=no FORCE_NKRO ?= yes +DEBUG_ENABLE = no +CONSOLE_ENABLE = yes +TAP_DANCE_ENABLE = yes ifeq (${FORCE_NKRO},yes) OPT_DEFS += -DFORCE_NKRO diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/adore-layer.png b/keyboards/ergodox_ez/keymaps/algernon/images/adore-layer.png new file mode 100644 index 000000000..3df68ea53 Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/algernon/images/adore-layer.png differ diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/base-layer.png b/keyboards/ergodox_ez/keymaps/algernon/images/base-layer.png index c4e298b6b..7b25a05b3 100644 Binary files a/keyboards/ergodox_ez/keymaps/algernon/images/base-layer.png and b/keyboards/ergodox_ez/keymaps/algernon/images/base-layer.png differ diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/experimental-layer.png b/keyboards/ergodox_ez/keymaps/algernon/images/experimental-layer.png deleted file mode 100644 index 81155851b..000000000 Binary files a/keyboards/ergodox_ez/keymaps/algernon/images/experimental-layer.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/heatmap.png b/keyboards/ergodox_ez/keymaps/algernon/images/heatmap.png new file mode 100644 index 000000000..356035e0a Binary files /dev/null and b/keyboards/ergodox_ez/keymaps/algernon/images/heatmap.png differ diff --git a/keyboards/ergodox_ez/keymaps/algernon/keymap.c b/keyboards/ergodox_ez/keymaps/algernon/keymap.c index 2af3d5f8c..09d8dffd5 100644 --- a/keyboards/ergodox_ez/keymaps/algernon/keymap.c +++ b/keyboards/ergodox_ez/keymaps/algernon/keymap.c @@ -10,12 +10,13 @@ #include "mousekey.h" #include "timer.h" #include "keymap_plover.h" +#include "eeconfig.h" /* Layers */ enum { BASE = 0, - EXPRM, + ADORE, ARRW, APPSEL, HUN, @@ -94,7 +95,7 @@ enum { /* Custom keycodes */ enum { - CT_CLN = 0x7101 + CT_CLN = 0 }; /* States & timers */ @@ -114,8 +115,7 @@ uint16_t oh_left_blink_timer = 0; uint8_t oh_right_blink = 0; uint16_t oh_right_blink_timer = 0; -uint8_t ct_cln_count = 0; -uint16_t ct_cln_timer = 0; +bool log_enable = false; /* The Keymap */ @@ -124,18 +124,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Base Layer * * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | `~ | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 | Plvr | | 1HND | 6 F6 | 7 F7 | 8 F8 | 9 F9 | 0 F10| F11 | + * | `~ | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 | Plvr | | Apps | 6 F6 | 7 F7 | 8 F8 | 9 F9 | 0 F10| F11 | * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| * | Next/Prev | ' | , | . | P | Y | [ | | ] | F | G | C | R | L | \ | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | Tab | A | O | E | U | I |------| |------| D | H | T | N | S | = | + * | Tab/ARROW | A | O | E | U | I |------| |------| D | H | T | N | S | = / Arrow | * |-----------+------+------+------+------+------| ( | | ) |------+------+------+------+------+-----------| * | Play/Pause| / | Q | J | K | X | | | | B | M | W | V | Z | Stop | * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * | | | Left | Up | : | | - | Down | Rght | | | + * | | | | | : | | - | | | | | * `-----------------------------------' `-----------------------------------' * ,-------------. ,-------------. - * | LAlt | GUI | | MDIA | ARRW | + * | LAlt | GUI | | MDIA | 1HND | * ,------|------|------| |------+------+------. * | | | Ctrl | | LEAD | | | * |Backsp|LShift|------| |------| Enter| Space| @@ -146,67 +146,67 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // left hand KC_GRV ,M(KF_1) ,M(KF_2) ,M(KF_3),M(KF_4),M(KF_5),M(A_PLVR) ,M(A_MPN) ,KC_QUOT ,KC_COMM ,KC_DOT ,KC_P ,KC_Y ,KC_LBRC -,KC_TAB ,KC_A ,KC_O ,KC_E ,KC_U ,KC_I +,LT(ARRW,KC_TAB) ,KC_A ,KC_O ,KC_E ,KC_U ,KC_I ,KC_MPLY ,KC_SLSH ,KC_Q ,KC_J ,KC_K ,KC_X ,KC_LPRN -,KC_NO ,KC_NO ,KC_LEFT ,KC_UP ,CT_CLN +,KC_NO ,KC_NO ,KC_NO ,KC_NO ,TD(CT_CLN) ,F(F_ALT),F(F_GUI) ,F(F_CTRL) ,KC_BSPC,F(F_SFT),M(A_ESC) // right hand - ,M(OH_LEFT),M(KF_6),M(KF_7),M(KF_8),M(KF_9) ,M(KF_10) ,KC_F11 - ,KC_RBRC ,KC_F ,KC_G ,KC_C ,KC_R ,KC_L ,KC_BSLS - ,KC_D ,KC_H ,KC_T ,KC_N ,KC_S ,KC_EQL - ,KC_RPRN ,KC_B ,KC_M ,KC_W ,KC_V ,KC_Z ,KC_MSTP - ,KC_MINS,KC_DOWN,KC_RGHT ,KC_NO ,KC_NO + ,KC_APP ,M(KF_6),M(KF_7),M(KF_8),M(KF_9) ,M(KF_10) ,KC_F11 + ,KC_RBRC ,KC_F ,KC_G ,KC_C ,KC_R ,KC_L ,KC_BSLS + ,KC_D ,KC_H ,KC_T ,KC_N ,KC_S ,LT(ARRW, KC_EQL) + ,KC_RPRN ,KC_B ,KC_M ,KC_W ,KC_V ,KC_Z ,KC_MSTP + ,KC_MINS,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,OSL(NMDIA),OSL(ARRW) + ,OSL(NMDIA),M(OH_LEFT) ,KC_LEAD ,F(F_HUN) ,KC_ENT ,KC_SPC ), -/* Keymap 1: Experimental layer +/* Keymap 1: Adore layer * * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | `~ | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 | Plvr | | 1HND | 6 F6 | 7 F7 | 8 F8 | 9 F9 | 0 F10| F11 | + * | `~ | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 | Plvr | | Apps | 6 F6 | 7 F7 | 8 F8 | 9 F9 | 0 F10| F11 | * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | Next/Prev | ' | , | . | P | Y | [ | | ] | L | F | C | R | J | = | + * | Next/Prev | , | . | L | W | M | [ | | ] | F | H | C | P | Y | \ | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | Tab | A | O | E | U | I |------| |------| D | H | T | N | S | \ | + * | Tab/Arrow | A | O | E | I | U |------| |------| D | R | T | N | S | = / Arrow | * |-----------+------+------+------+------+------| ( | | ) |------+------+------+------+------+-----------| - * | Play/Pause| Z | G | V | K | X | | | | Q | M | W | B | / | Stop | + * | Play/Pause| / | Z | ' | K | X | | | | B | G | V | J | Q | Stop | * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * | | | Left | Up | : | | - | Down | Rght | | | + * | | | | | : | | - | | | | | * `-----------------------------------' `-----------------------------------' * ,-------------. ,-------------. - * | LAlt | GUI | | MDIA | ARRW | + * | LAlt | GUI | | MDIA | 1HND | * ,------|------|------| |------+------+------. * | | | Ctrl | | LEAD | | | * |Backsp|LShift|------| |------| Enter| Space| * | | | ESC | | HUN | | | * `--------------------' `--------------------' */ -[EXPRM] = KEYMAP( +[ADORE] = KEYMAP( // left hand KC_GRV ,M(KF_1) ,M(KF_2) ,M(KF_3),M(KF_4),M(KF_5),M(A_PLVR) -,M(A_MPN) ,KC_QUOT ,KC_COMM ,KC_DOT ,KC_P ,KC_Y ,KC_LBRC -,KC_TAB ,KC_A ,KC_O ,KC_E ,KC_U ,KC_I -,KC_MPLY ,KC_Z ,KC_G ,KC_V ,KC_K ,KC_X ,KC_LPRN -,KC_NO ,KC_NO ,KC_LEFT ,KC_UP ,CT_CLN +,M(A_MPN) ,KC_COMM ,KC_DOT ,KC_L ,KC_W ,KC_M ,KC_LBRC +,LT(ARRW, KC_TAB) ,KC_A ,KC_O ,KC_E ,KC_I ,KC_U +,KC_MPLY ,KC_SLSH ,KC_Z ,KC_QUOT,KC_K ,KC_X ,KC_LPRN +,KC_NO ,KC_NO ,KC_NO ,KC_NO ,TD(CT_CLN) ,F(F_ALT),F(F_GUI) ,F(F_CTRL) ,KC_BSPC,F(F_SFT),M(A_ESC) // right hand - ,M(OH_LEFT),M(KF_6),M(KF_7),M(KF_8),M(KF_9) ,M(KF_10) ,KC_F11 - ,KC_RBRC ,KC_L ,KC_F ,KC_C ,KC_R ,KC_J ,KC_BSLS - ,KC_D ,KC_H ,KC_T ,KC_N ,KC_S ,KC_EQL - ,KC_RPRN ,KC_Q ,KC_M ,KC_W ,KC_B ,KC_SLSH ,KC_MSTP - ,KC_MINS,KC_DOWN,KC_RGHT ,KC_NO ,KC_NO + ,KC_APP ,M(KF_6),M(KF_7),M(KF_8),M(KF_9) ,M(KF_10) ,KC_F11 + ,KC_RBRC ,KC_F ,KC_H ,KC_C ,KC_P ,KC_Y ,KC_BSLS + ,KC_D ,KC_R ,KC_T ,KC_N ,KC_S ,LT(ARRW, KC_EQL) + ,KC_RPRN ,KC_B ,KC_G ,KC_V ,KC_J ,KC_Q ,KC_MSTP + ,KC_MINS,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,OSL(NMDIA),OSL(ARRW) + ,OSL(NMDIA),M(OH_LEFT) ,KC_LEAD ,F(F_HUN) ,KC_ENT ,KC_SPC ), @@ -216,19 +216,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------. ,-----------------------------------------------------. * | | | | | | | | | | | | | | | | * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | | | | | | | | | | | | | | | | + * | | | | | | | | | | | Home | Up | End | | | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | | | | | | |------| |------| | | | | | | + * | | | | | | |------| |------| | Left | Down | Rght | | | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| * | | | | | | | | | | | | | | | | * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * | | | Home | PgUp | | | | PgDn | End | | | + * | | | | | | | | | | | | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | | | | | | * ,------|------|------| |------+------+------. * | | | | | | | | - * | | |------| |------| | | + * | | |------| |------| PgUp | PgDn | * | | | | | | | | * `--------------------' `--------------------' */ @@ -239,7 +239,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_HOME ,KC_PGUP ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS @@ -247,14 +247,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // right hand ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_HOME ,KC_UP ,KC_END ,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 ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_PGDN ,KC_END ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_PGUP ,KC_PGDN ), /* Keymap 3: Application select layer @@ -843,8 +843,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) return MACRO_NONE; }; +uint8_t is_adore = 0; + // Runs just one time when the keyboard initializes. void matrix_init_user(void) { + uint8_t dl; + ergodox_led_all_on(); for (int i = LED_BRIGHTNESS_HI; i > LED_BRIGHTNESS_LO; i--) { ergodox_led_all_set (i); @@ -856,6 +860,12 @@ void matrix_init_user(void) { _delay_ms (10); } ergodox_led_all_off(); + + if (!eeconfig_is_enabled()) + eeconfig_init(); + dl = eeconfig_read_default_layer (); + if (dl == (1UL << ADORE)) + is_adore = 1; }; LEADER_EXTERNS(); @@ -882,29 +892,32 @@ void ang_tap (uint16_t codes[]) { register_code (code); \ unregister_code (code) -uint8_t is_exp = 0; - -// Runs constantly in the background, in a loop. -void matrix_scan_user(void) { - uint8_t layer = biton32(layer_state); - - if (gui_timer && timer_elapsed (gui_timer) > TAPPING_TERM) - unregister_code (KC_LGUI); - - if (ct_cln_timer && timer_elapsed (ct_cln_timer) > TAPPING_TERM) { - if (ct_cln_count == 1) { +void ang_tap_dance (qk_tap_dance_state_t *state) { + switch (state->keycode) { + case TD(CT_CLN): + if (state->count == 1) { register_code (KC_RSFT); register_code (KC_SCLN); unregister_code (KC_SCLN); unregister_code (KC_RSFT); - } else if (ct_cln_count == 2) { + } else if (state->count == 2) { register_code (KC_SCLN); unregister_code (KC_SCLN); + reset_tap_dance (state); } - - ct_cln_count = 0; - ct_cln_timer = 0; } +} + +const qk_tap_dance_action_t tap_dance_actions[] = { + [CT_CLN] = ACTION_TAP_DANCE_FN (ang_tap_dance) +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + uint8_t layer = biton32(layer_state); + + if (gui_timer && timer_elapsed (gui_timer) > TAPPING_TERM) + unregister_code (KC_LGUI); if (layer != OHLFT) oh_left_blink = 0; @@ -921,7 +934,7 @@ void matrix_scan_user(void) { ergodox_right_led_1_on (); ergodox_right_led_2_on (); ergodox_right_led_3_on (); - } else if (layer == EXPRM) { + } else if (layer == ADORE) { ergodox_right_led_1_on (); ergodox_right_led_2_on (); ergodox_right_led_3_on (); @@ -961,7 +974,7 @@ void matrix_scan_user(void) { ergodox_right_led_1_on (); } else { ergodox_right_led_1_set (LED_BRIGHTNESS_LO); - if (layer != OHLFT && layer != NMDIA && layer != PLVR && layer != EXPRM) + if (layer != OHLFT && layer != NMDIA && layer != PLVR && layer != ADORE) ergodox_right_led_1_off (); } @@ -971,7 +984,7 @@ void matrix_scan_user(void) { ergodox_right_led_2_on (); } else { ergodox_right_led_2_set (LED_BRIGHTNESS_LO); - if (layer != OHRGT && layer != HUN && layer != OHLFT && layer != NMDIA && layer != PLVR && layer != EXPRM) + if (layer != OHRGT && layer != HUN && layer != OHLFT && layer != NMDIA && layer != PLVR && layer != ADORE) ergodox_right_led_2_off (); } @@ -981,7 +994,7 @@ void matrix_scan_user(void) { ergodox_right_led_3_on (); } else { ergodox_right_led_3_set (LED_BRIGHTNESS_LO); - if (layer != OHRGT && layer != HUN && layer != PLVR && layer != EXPRM) + if (layer != OHRGT && layer != HUN && layer != PLVR && layer != ADORE) ergodox_right_led_3_off (); } @@ -989,6 +1002,10 @@ void matrix_scan_user(void) { leading = false; leader_end (); + SEQ_ONE_KEY (KC_D) { + log_enable = !log_enable; + } + SEQ_ONE_KEY (KC_U) { ang_do_unicode (); } @@ -1036,11 +1053,12 @@ void matrix_scan_user(void) { unregister_code (KC_LGUI); } - SEQ_ONE_KEY (KC_E) { - if (is_exp == 0) { + SEQ_ONE_KEY (KC_A) { + if (is_adore == 0) { default_layer_and (0); - default_layer_or ((1 << EXPRM)); - is_exp = 1; + default_layer_or ((1UL << ADORE)); + eeconfig_update_default_layer ((1UL << ADORE)); + is_adore = 1; ergodox_led_all_off (); ergodox_right_led_3_on (); @@ -1054,9 +1072,10 @@ void matrix_scan_user(void) { _delay_ms (100); ergodox_right_led_1_off (); } else { - is_exp = 0; + is_adore = 0; default_layer_and (0); - default_layer_or (1 << BASE); + default_layer_or (1UL << BASE); + eeconfig_update_default_layer ((1UL << BASE)); ergodox_led_all_off (); ergodox_right_led_1_on (); @@ -1075,29 +1094,11 @@ void matrix_scan_user(void) { } bool process_record_user (uint16_t keycode, keyrecord_t *record) { - switch(keycode) { - case CT_CLN: - if (record->event.pressed) { - ct_cln_count++; - ct_cln_timer = timer_read (); - } else { - } - return false; - break; + uint8_t layer = biton32(layer_state); - default: - if (ct_cln_count == 1) { - register_code (KC_RSFT); - register_code (KC_SCLN); - unregister_code (KC_SCLN); - unregister_code (KC_RSFT); - } else if (ct_cln_count == 2) { - register_code (KC_SCLN); - unregister_code (KC_SCLN); - } - ct_cln_count = 0; - ct_cln_timer = 0; - break; + if (log_enable && layer == BASE) { + xprintf ("KL: col=%d, row=%d\n", record->event.key.col, + record->event.key.row); } return true; diff --git a/keyboards/ergodox_ez/keymaps/algernon/readme.md b/keyboards/ergodox_ez/keymaps/algernon/readme.md index 6b7e8fa2e..2312dc59e 100644 --- a/keyboards/ergodox_ez/keymaps/algernon/readme.md +++ b/keyboards/ergodox_ez/keymaps/algernon/readme.md @@ -1,27 +1,28 @@ + + algernon's layout ======================= -This is an unconventional layout for the ErgoDox EZ. For more details about the -history of the layout, see my -[blog posts about my ErgoDox journey][blog-ergodox]. +This is an unconventional layout for the ErgoDox EZ. For more details about the history of the layout, see my [blog posts about my ErgoDox journey][blog-ergodox]. [blog-ergodox]: https://asylum.madhouse-project.org/blog/tags/ergodox/ -Some of the things in the layout only work when one uses Spacemacs and GNOME -under Linux. Your mileage may vary. +Some of the things in the layout only work when one uses Spacemacs and GNOME under Linux. Your mileage may vary. ## Table of Contents * [Layouts](#layouts) - - [Base layer](#base-layer) - - [Experimental layer](#experimental-layer) - - [Hungarian layer](#hungarian-layer) - - [Navigation and media layer](#navigation-and-media-layer) - - [One-handed layer](#one-handed-layer) - - [Steno layer](#steno-layer) - - [LED states](#led-states) + - [Base layer](#base-layer) + - [ADORE layer](#adore-layer) + - [Hungarian layer](#hungarian-layer) + - [Navigation and media layer](#navigation-and-media-layer) + - [One-handed layer](#one-handed-layer) + - [Steno layer](#steno-layer) + - [LED states](#led-states) +* [Tools](#tools) + - [Heatmap](#heatmap) * [Building](#building) - - [Using on Windows](#using-on-windows) + - [Using on Windows](#using-on-windows) * [Changelog](#changelog) * [License](#license) @@ -31,133 +32,98 @@ under Linux. Your mileage may vary. [![Base layer](images/base-layer.png)](http://www.keyboard-layout-editor.com/#/gists/28f7eb305fdbff943613e1dc7aa9e82b) -At its core, this is a Dvorak layout, with some minor changes. The more -interesting parts are how certain keys behave: - -* The keys on the number row double as function keys, when held for a bit longer - than an usual tap. This allows me to use the function keys without having to - switch layers. -* The `Shift`, `Alt`, and `Control` modifiers are one-shot. When tapped, they - are considered active for the next key press only. When double tapped, they - toggle on, until a third, single tap sometime later. When held, they act as - expected. My usual pattern is that I use these for the next keypress only, so - this behaviour is perfect. If I need them held, I'll just double-tap. -* The `GUI` key is special, because when I double-tap it, it sends `GUI + w`, - which pops up an application selector. It also switches to a one-shot layer, - where the number row on the left half turns into app selector macros, for the - most common things I usually want to switch to. Otherwise it behaves as on a - normal layout. -* The `ESC` key also doubles as a one-shot cancel key: if tapped while any of - the one-shot modifiers are in-flight (as in, single-tapped, and not expired - yet), it cancels all one-shot modifiers. It also cancels the **Hun** layer, if - active. Otherwise it sends the usual keycode. -* The **Media**, **Arrow**, and **Hun** layer keys are one-shot, the **1Hand** - and **STENO** keys are toggles. -* Toggling the **Arrow** layer toggles between the cursor arrows and the paging - keys on the bottom row. +At its core, this is a Dvorak layout, with some minor changes. The more interesting parts are how certain keys behave: + +* The keys on the number row double as function keys, when held for a bit longer than an usual tap. This allows me to use the function keys without having to switch layers. +* The `Shift`, `Alt`, and `Control` modifiers are one-shot. When tapped, they are considered active for the next key press only. When double tapped, they toggle on, until a third, single tap sometime later. When held, they act as expected. My usual pattern is that I use these for the next keypress only, so this behaviour is perfect. If I need them held, I'll just double-tap. +* The `GUI` key is special, because when I double-tap it, it sends `GUI + w`, which pops up an application selector. It also switches to a one-shot layer, where the number row on the left half turns into app selector macros, for the most common things I usually want to switch to. Otherwise it behaves as on a normal layout. +* The `ESC` key also doubles as a one-shot cancel key: if tapped while any of the one-shot modifiers are in-flight (as in, single-tapped, and not expired yet), it cancels all one-shot modifiers. It also cancels the **Hun** layer, if active. Otherwise it sends the usual keycode. +* The **Media** and **Hun** layer keys are one-shot, the **1Hand** and **STENO** keys are toggles. +* When holding any of the **Arrow** layer keys, the arrow layer activates while the layer key is held. Tapping the key produces the normal key. * Tapping the `:` key once yields `:`, tapping it twice yields `;`. -* The **Lead** key allows me to type in a sequence of keys, and trigger some - actions: - - `LEAD u` enters unicode input mode, by sending the GTK+ key sequence that - does this. +* The **Lead** key allows me to type in a sequence of keys, and trigger some actions: + - `LEAD u` enters unicode input mode, by sending the GTK+ key sequence that does this. - `LEAD l` uses the unicode input method to enter a `λ`. - `LEAD s` does a lot of magic to type in a shruggie: `¯\_(ツ)_/¯` - `LEAD y` types `\o/`. - `LEAD w m` maximises the currently focused window. - - `LEAD e` makes the [experimental layer](#experimental-layer) the default. + - `LEAD a` makes the [ADORE layer](#adore-layer) the default. - `LEAD v` prints the firmware version, the keyboard and the keymap. + - `LEAD d` toggles logging keypress positions to the HID console. -## Experimental layer +## ADORE layer -[![Experimental layer](images/experimental-layer.png)](http://www.keyboard-layout-editor.com/#/gists/6ff50bf71248e05aab5b3fec4fae3d08) +[![ADORE layer](images/adore-layer.png)](http://www.keyboard-layout-editor.com/#/gists/45681a17453d235925b6028dd83bf12a) -While using the standard Dvorak layout, I encountered a number of -inconveniences, and on this layer, I am playing with ideas to make the layout -feel better. Initially, it was based on [Capewell-Dvorak][cpd], but that too, -had shortcomings I was not happy with. So now this is something inbetween, with -own observations thrown in. How it works out in the long run remains to be seen. +While using the standard Dvorak layout, I encountered a number of inconveniences, and on this layer, I am playing with ideas to make the layout feel better. Initially, it was based on [Capewell-Dvorak][cpd], but that too, had shortcomings I was not happy with. So now this is something inbetween, with own observations thrown in. How it works out in the long run remains to be seen. [cpd]: http://www.michaelcapewell.com/projects/keyboard/layout_capewell-dvorak.htm + +Based on a week and a half of typing, the keys were rearranged, and the home row neatly spelled out **ADORE**, that gave the layout its name. ## Hungarian layer [![Hungarian layer](images/hun-layer.png)](http://www.keyboard-layout-editor.com/#/gists/b160f6ec90d58c127c114c89f66e9dc9) -On this layer, the accented characters are at the same position as their base -variant. For some, which can have other diatribes, the long one is on top, -short's on bottom. Tapping any of the accented characters takes us back to the -base layer. +On this layer, the accented characters are at the same position as their base variant. For some, which can have other diatribes, the long one is on top, short's on bottom. Tapping any of the accented characters takes us back to the base layer. ## Navigation and media layer [![Navigation and media layer](images/nav-n-media-layer.png)](http://www.keyboard-layout-editor.com/#/gists/c59c453f9fe1a3238ba1494e7e5c6892) -This layer is primarily for navigating with the cursor or the mouse, and some -media things. +This layer is primarily for navigating with the cursor or the mouse, and some media things. ## One-handed layer [![One-handed layer](images/one-handed-layer.png)](http://www.keyboard-layout-editor.com/#/gists/edff2495135955b8963198dace7f7ece) -The one-handed layer is used in situations where the right hand is occupied, by -mousing around, for example. Tapping the `OTHER` key switches which side is -active. For the most part, keys remain in their usual position. When the right -half is active, keys are mirrored to the left half. +The one-handed layer is used in situations where the right hand is occupied, by mousing around, for example. Tapping the `OTHER` key switches which side is active. For the most part, keys remain in their usual position. When the right half is active, keys are mirrored to the left half. The differences are as follows: -* The `ESC` key has been moved to the bottom row, so the `OTHER` key is easier - to tap. -* Most keys on the thumb cluster now have dual uses, and these do not change - when switching sides: - - The `Space`/`Backspace` key sends `Space` on tap, `Backspace` when held - for longer than a normal tap. +* The `ESC` key has been moved to the bottom row, so the `OTHER` key is easier to tap. +* Most keys on the thumb cluster now have dual uses, and these do not change when switching sides: + - The `Space`/`Backspace` key sends `Space` on tap, `Backspace` when held for longer than a normal tap. - The `Enter`/`Shift` key sends `Enter` on short-tap, `Shift` on long-tap. -* The `Apps`/`BASE` key can be used to go back to the base layer, by - long-tapping it. A short-tap will send the `App` key, as usual. +* The `Apps`/`BASE` key can be used to go back to the base layer, by long-tapping it. A short-tap will send the `App` key, as usual. ## Steno layer [![Steno layer for Plover](images/steno-layer.png)](http://www.keyboard-layout-editor.com/#/gists/401ef9a84369e47c57f9aedcf0a0d667) -This is to be used with [Plover](http://www.openstenoproject.org/plover/), -nothing really fancy here. The **STENO** key toggles the layer on and off, and -sends the toggle command to Plover too. +This is to be used with [Plover](http://www.openstenoproject.org/plover/), nothing really fancy here. The **STENO** key toggles the layer on and off, and sends the toggle command to Plover too. ## LED states -The primary purpose of the LEDs is to show the modifier status, a secondary, to -show which layer is active. Each modifier, `Shift`, `Alt` and `Control` each -have their designated LEDs: the *red*, *green* and *blue*, respectively. When a -modifier is in a one-shot state, the respective LED will turn on with a dimmer -light. If the modifier is toggled on, the brightness of the LED turns full. +The primary purpose of the LEDs is to show the modifier status, a secondary, to show which layer is active. Each modifier, `Shift`, `Alt` and `Control` each have their designated LEDs: the *red*, *green* and *blue*, respectively. When a modifier is in a one-shot state, the respective LED will turn on with a dimmer light. If the modifier is toggled on, the brightness of the LED turns full. For the layers, the following rules apply: -* When the [Experimental layer](#experimental-layer) is toggled on, LEDs will - light up from left to right in a sequence, then turn off. When the layer is - toggled off, the LEDs light up and turn off in the other direction. No LEDs - are on while the layer is active. -* When the [Hungarian layer](#hungarian-layer) is active, the *green* and *blue* - LEDs are on. -* When the [Navigation and media layer](#navigation-and-media-layer) is active, - the *red* and *green* ones are on. -* When the [One-handed layer](#one-handed-layer) is active, the *green* LED is - on and bright, and either the *red* or the *blue* one is going to slowly - blink, depending on the currently active side. +* When the [ADORE layer](#adore-layer) is toggled on, LEDs will light up from left to right in a sequence, then turn off. When the layer is toggled off, the LEDs light up and turn off in the other direction. No LEDs are on while the layer is active. +* When the [Hungarian layer](#hungarian-layer) is active, the *green* and *blue* LEDs are on. +* When the [Navigation and media layer](#navigation-and-media-layer) is active, the *red* and *green* ones are on. +* When the [One-handed layer](#one-handed-layer) is active, the *green* LED is on and bright, and either the *red* or the *blue* one is going to slowly blink, depending on the currently active side. * For the [Steno layer](#steno-layer), all LEDs will be turned on. -Unless noted otherwise, the layers use a dim light for the LEDs, while modifiers -use a stronger one, and modifiers override any layer preferences. For example, -when on the one-handed layer, with the left side active (*red* light blinking), -if `Shift` is on, the *red* light will be constantly on. +Unless noted otherwise, the layers use a dim light for the LEDs, while modifiers use a stronger one, and modifiers override any layer preferences. For example, when on the one-handed layer, with the left side active (*red* light blinking), if `Shift` is on, the *red* light will be constantly on. + +# Tools + +## Heatmap + +When the keypress logging functionality is enabled (by `LEAD d`), the keyboard will output a line every time a key is pressed, containing the position of the key in the matrix. This allows one to collect this information, and build analytics over it, such as a heat map, including dead keys too. + +Included with the firmware is a small tool that can parse these logs, and create a heatmap that one can import into [KLE][kle]. To use it, simply point `tools/log-to-heatmap.py` to a base layout file (one is included in the `tools/` directory), and the key position log. The latter one can create by running `hid-listen`, and redirecting its output to a file. + + [kle]: http://www.keyboard-layout-editor.com/ + +The generated heatmap looks somewhat like this: + + ![Heatmap](images/heatmap.png) # Building -To make my workflow easier, this layout is maintained in -[its own repository][algernon:ez-layout]. To build it, you will need the -[QMK][qmk] firmware checked out, and this repo either checked out to something -like `keyboards/ergodox_ez/algernon-master`. One way to achieve that is this: +To make my workflow easier, this layout is maintained in [its own repository][algernon:ez-layout]. To build it, you will need the [QMK][qmk] firmware checked out, and this repo either checked out to something like `keyboards/ergodox_ez/algernon-master`. One way to achieve that is this: [algernon:ez-layout]: https://github.com/algernon/ergodox-layout [qmk]: https://github.com/jackhumbert/qmk_firmware @@ -170,9 +136,7 @@ $ git clone https://github.com/algernon/ergodox-layout.git \ $ make KEYBOARD=ergodox_ez KEYMAP=algernon-master ``` -From time to time, updates may be submitted back to the QMK repository. If you -are reading it there, you can build the firmware like any other firmware -included with it (assuming you are in the root directory of the firmware): +From time to time, updates may be submitted back to the QMK repository. If you are reading it there, you can build the firmware like any other firmware included with it (assuming you are in the root directory of the firmware): ``` $ make KEYBOARD=ergodox_ez KEYMAP=algernon @@ -180,43 +144,40 @@ $ make KEYBOARD=ergodox_ez KEYMAP=algernon ## Using on Windows -The keymap default to forcing NKRO, which seems to upset Windows, and except the -modifiers, none of them work. If you experience this problem, recompile the -firmware with `FORCE_NKRO=no` added to the `make` command line. +The keymap default to forcing NKRO, which seems to upset Windows, and except the modifiers, none of them work. If you experience this problem, recompile the firmware with `FORCE_NKRO=no` added to the `make` command line. # Changelog +## v1.3 - 2016-07-06 + +* Added support for logging keys, by pressing `LEAD d`. Also included is a tool to generate a [heatmap](#heatmap) out of the logs. +* The arrow and navigation keys were rearranged again, and now require an additional key being held to activate. See the [base layer](#base-layer) for an image that shows where arrows are. +* The **experimental** layer has been redone, and is now called [ADORE](#adore-layer), and as such, can be enabled by `LEAD a` now. +* Switching between Dvorak and ADORE is now persisted into EEPROM, and survives a reboot. + ## v1.2 - 2016-06-22 -* The forced NKRO mode can be easily toggled off at compile-time, to make the - firmware compatible with [certain operating systems](#using-on-windows). -* The `:;` key has changed behaviour: to access the `;` symbol, the key needs to - be double-tapped, instead of shifted. -* The `=` and `\` keys were swapped, `=` moved to the home row, on both the - [base](#base-layer) and the [experimental](#experimental-layer) layers. -* The arrow and navigation keys were redone, they are now more accessible, but - the navigation keys require an extra tap to access. -* The **Emacs** layer is gone, replaced by a simplified - [navigation and media](#navigation-and-media-layer) layer. +* The forced NKRO mode can be easily toggled off at compile-time, to make the firmware compatible with [certain operating systems](#using-on-windows). +* The `:;` key has changed behaviour: to access the `;` symbol, the key needs to be double-tapped, instead of shifted. +* The `=` and `\` keys were swapped, `=` moved to the home row, on both the [base](#base-layer) and the **experimental** layers. +* The arrow and navigation keys were redone, they are now more accessible, but the navigation keys require an extra tap to access. +* The **Emacs** layer is gone, replaced by a simplified [navigation and media](#navigation-and-media-layer) layer. * `LEAD v` types the firmware version, and the keymap version. -* On the [experimental](#experimental-layer) layer, the `L` and `Q`, and the `K` - and `G` keys were swapped. -* The [Steno](#steno-layer) layer gained a few more `#` and `*` keys, to make it - easier on my fingers. +* On the **experimental** layer, the `L` and `Q`, and the `K` and `G` keys were swapped. +* The [Steno](#steno-layer) layer gained a few more `#` and `*` keys, to make it easier on my fingers. ## v1.1 - 2016-06-14 * The keyboard starts in NKRO mode, bootmagic and other things are disabled. * A [Steno](#steno-layer) layer was added, to be used with Plover. -* An [experimental](#experimental-layer) layer was added, something halfway - between Dvorak and Capewell-Dvorak. A work in progress. +* An **experimental** layer was added, something halfway between Dvorak and Capewell-Dvorak. A work in progress. * `LEAD y` types `\o/`. * Some keys on the [Base](#base-layer) layer have been moved around: - - `?` moved to the left pinky, left of `Q`. - - `=` shifted one row down, but `F11` stayed where it was. - - `-` on the left half was replaced by `Tab`. - - `Tab`'s original position is taken by a `Media Next`/`Media Prev` key. - - `:` now inputs `;` when shifted. + - `?` moved to the left pinky, left of `Q`. + - `=` shifted one row down, but `F11` stayed where it was. + - `-` on the left half was replaced by `Tab`. + - `Tab`'s original position is taken by a `Media Next`/`Media Prev` key. + - `:` now inputs `;` when shifted. * `ESC` cancels the [Hungarian](#hungarian-layer) layer too, not just modifiers. ## v1.0 - 2016-05-26 @@ -225,6 +186,4 @@ Initial version. # License -The layout, being a derivative of the original TMK firmware which is under the -GPL-2+, this layout is under the GPL as well, but GPL-3+, rather than the older -version. +The layout, being a derivative of the original TMK firmware which is under the GPL-2+, this layout is under the GPL as well, but GPL-3+, rather than the older version. diff --git a/keyboards/ergodox_ez/keymaps/algernon/tools/heatmap-base-layout.json b/keyboards/ergodox_ez/keymaps/algernon/tools/heatmap-base-layout.json new file mode 100644 index 000000000..148bb1f23 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/algernon/tools/heatmap-base-layout.json @@ -0,0 +1,533 @@ +[ + { + "backcolor": "#ffffff", + "name": "ErgoDox - algernon's layout: Heatmap", + "author": "Gergely Nagy ", + "notes": "See [here](https://github.com/algernon/ergodox-layout#readme) for the QMK keymap source.", + "switchMount": "cherry", + "switchBrand": "gateron", + "switchType": "KS-3-Tea", + "pcb": true, + "css": ".keyborder { -webkit-filter: blur(5px); filter: blur(5px); } .keytop { -webkit-filter: blur(10px); } .keylabels { border: 1px solid black; }" + }, + [ + { + "x": 3.5, + "c": "#a7d0db", + "fa": [ + 0, + 0, + 2 + ] + }, + "#\n3\nF3", + { + "x": 10.5, + "c": "#a7d0db", + "t": "#000000", + "a": 4, + "fa": [ + 0, + 0, + 2 + ] + }, + "*\n8\nF8" + ], + [ + { + "y": -0.875, + "x": 2.5, + "c": "#bfbad1", + "t": "#0d0d0b" + }, + "@\n2\nF2", + { + "x": 1, + "c": "#7adabd", + "t": "#000000" + }, + "$\n4\nF4", + { + "x": 8.5 + }, + "&\n7\nF7", + { + "x": 1, + "c": "#bfbad1", + "t": "#0d0d0b" + }, + "(\n9\nF9" + ], + [ + { + "y": -0.875, + "x": 5.5, + "c": "#7adabd", + "t": "#000000" + }, + "%\n5\nF5", + { + "c": "#f9cd31", + "a": 7, + "f": 2 + }, + "STENO", + { + "x": 4.5, + "f": 6 + }, + "", + { + "c": "#7adabd", + "a": 4, + "f": 3, + "fa": [ + 0, + 0, + 2 + ] + }, + "^\n6\nF6" + ], + [ + { + "y": -0.875, + "c": "#ffb2d2", + "f": 3, + "w": 1.5 + }, + "\n\n~\n`", + { + "t": "#0d0d0b" + }, + "!\n1\nF1", + { + "x": 14.5 + }, + ")\n0\nF10", + { + "a": 7, + "w": 1.5 + }, + "F11" + ], + [ + { + "y": -0.375, + "x": 3.5, + "c": "#a7d0db", + "t": "#000000", + "a": 4 + }, + ">\n.", + { + "x": 10.5, + "a": 6 + }, + "C" + ], + [ + { + "y": -0.875, + "x": 2.5, + "c": "#bfbad1", + "t": "#0d0d0b", + "a": 4 + }, + "<\n,", + { + "x": 1, + "c": "#7adabd", + "t": "#000000", + "a": 6 + }, + "P", + { + "x": 8.5 + }, + "G", + { + "x": 1, + "c": "#bfbad1", + "t": "#0d0d0b" + }, + "R" + ], + [ + { + "y": -0.875, + "x": 5.5, + "c": "#7adabd", + "t": "#000000" + }, + "Y", + { + "c": "#93c9b7", + "a": 4, + "h": 1.5 + }, + "{\n[", + { + "x": 4.5, + "h": 1.5 + }, + "}\n]", + { + "c": "#7adabd", + "a": 6 + }, + "F" + ], + [ + { + "y": -0.875, + "c": "#ffb07b", + "t": "#0d0d0b", + "f": 6, + "w": 1.5 + }, + "\n\n", + { + "c": "#ffb2d2", + "a": 4, + "f": 3 + }, + "\"\n'", + { + "x": 14.5, + "a": 6 + }, + "L", + { + "a": 4, + "w": 1.5 + }, + "|\n\\" + ], + [ + { + "y": -0.375, + "x": 3.5, + "c": "#a7d0db", + "t": "#000000", + "a": 6 + }, + "E", + { + "x": 10.5 + }, + "T" + ], + [ + { + "y": -0.875, + "x": 2.5, + "c": "#bfbad1", + "t": "#0d0d0b" + }, + "O", + { + "x": 1, + "c": "#7adabd", + "t": "#000000", + "n": true + }, + "U", + { + "x": 8.5, + "n": true + }, + "H", + { + "x": 1, + "c": "#bfbad1", + "t": "#0d0d0b" + }, + "N" + ], + [ + { + "y": -0.875, + "x": 5.5, + "c": "#7adabd", + "t": "#000000" + }, + "I", + { + "x": 6.5 + }, + "D" + ], + [ + { + "y": -0.875, + "c": "#ffb2d2", + "t": "#0d0d0b", + "fa": [ + 6 + ], + "w": 1.5 + }, + "\n\nTab", + { + "f": 3 + }, + "A", + { + "x": 14.5, + "f": 3 + }, + "S", + { + "a": 4, + "fa": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6 + ], + "w": 1.5 + }, + "+\n=" + ], + [ + { + "y": -0.625, + "x": 6.5, + "c": "#93c9b7", + "t": "#000000", + "a": 7, + "h": 1.5 + }, + "(", + { + "x": 4.5, + "h": 1.5 + }, + ")" + ], + [ + { + "y": -0.75, + "x": 3.5, + "c": "#a7d0db", + "a": 6 + }, + "J", + { + "x": 10.5 + }, + "W" + ], + [ + { + "y": -0.875, + "x": 2.5, + "c": "#bfbad1", + "t": "#0d0d0b" + }, + "Q", + { + "x": 1, + "c": "#7adabd", + "t": "#000000" + }, + "K", + { + "x": 8.5 + }, + "M", + { + "x": 1, + "c": "#bfbad1", + "t": "#0d0d0b" + }, + "V" + ], + [ + { + "y": -0.875, + "x": 5.5, + "c": "#7adabd", + "t": "#000000" + }, + "X", + { + "x": 6.5 + }, + "B" + ], + [ + { + "y": -0.875, + "c": "#ffb07b", + "f": 9, + "w": 1.5 + }, + "\n\n", + { + "c": "#ffb2d2", + "t": "#0d0d0b", + "a": 4, + "f": 3 + }, + "?\n/", + { + "x": 14.5, + "a": 6 + }, + "Z", + { + "c": "#ffb07b", + "t": "#000000", + "f": 9, + "w": 1.5 + }, + "" + ], + [ + { + "y": -0.375, + "x": 3.5, + "c": "#d9dae0", + "g": true, + "a": 7, + "f": 3 + }, + "", + { + "x": 10.5 + }, + "" + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "", + { + "x": 1, + "c": "#d4872a", + "g": false, + "a": 5 + }, + ";\n:", + { + "x": 8.5 + }, + "_\n-", + { + "x": 1, + "c": "#d9dae0", + "g": true, + "a": 7 + }, + "" + ], + [ + { + "y": -0.75, + "x": 0.5 + }, + "", + {}, + "", + { + "x": 14.5 + }, + "", + {}, + "" + ], + [ + { + "r": 30, + "rx": 6.5, + "ry": 4.25, + "y": -1, + "x": 1, + "c": "#f9cd31", + "g": false + }, + "Alt", + { + "a": 4, + "fa": [ + 0, + 0, + 0, + 9 + ] + }, + "\n\n\n" + ], + [ + { + "c": "#d4872a", + "a": 7, + "f": 9, + "h": 2 + }, + "", + { + "h": 2 + }, + "", + { + "c": "#f9cd31", + "f": 3 + }, + "Ctrl" + ], + [ + { + "x": 2, + "c": "#e26757" + }, + "ESC" + ], + [ + { + "r": -30, + "rx": 13, + "y": -1, + "x": -3, + "c": "#f9cd31", + "f": 2 + }, + "MEDIA", + {}, + "1HAND" + ], + [ + { + "x": -3 + }, + "LEAD", + { + "c": "#d4872a", + "f": 9, + "h": 2 + }, + "", + { + "f": 3, + "h": 2 + }, + "SPC" + ], + [ + { + "x": -3, + "c": "#f9cd31", + "f": 2 + }, + "HUN" + ] +] diff --git a/keyboards/ergodox_ez/keymaps/algernon/tools/log-to-heatmap.py b/keyboards/ergodox_ez/keymaps/algernon/tools/log-to-heatmap.py new file mode 100755 index 000000000..a13d12e81 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/algernon/tools/log-to-heatmap.py @@ -0,0 +1,145 @@ +#! /usr/bin/env python +import json +import os +import sys +import re + +from math import floor + +cr_coord_map = [ + [ + # Row 0 + [ 4, 0], [ 4, 2], [ 2, 0], [ 1, 0], [ 2, 2], [ 3, 0], [ 3, 2], + [ 3, 4], [ 3, 6], [ 2, 4], [ 1, 2], [ 2, 6], [ 4, 4], [ 4, 6], + ], + [ + # Row 1 + [ 8, 0], [ 8, 2], [ 6, 0], [ 5, 0], [ 6, 2], [ 7, 0], [ 7, 2], + [ 7, 4], [ 7, 6], [ 6, 4], [ 5, 2], [ 6, 6], [ 8, 4], [ 8, 6], + ], + [ + # Row 2 + [12, 0], [12, 2], [10, 0], [ 9, 0], [10, 2], [11, 0], [ ], + [ ], [11, 2], [10, 4], [ 9, 2], [10, 6], [12, 4], [12, 6], + ], + [ + # Row 3 + [17, 0], [17, 2], [15, 0], [14, 0], [15, 2], [16, 0], [13, 0], + [13, 2], [16, 2], [15, 4], [14, 2], [15, 6], [17, 4], [17, 6], + ], + [ + # Row 4 + [20, 0], [20, 2], [19, 0], [18, 0], [19, 2], [], [], [], [], + [19, 4], [18, 2], [19, 6], [20, 4], [20, 6], + ], + [ + # Row 5 + [ ], [23, 0], [22, 2], [22, 0], [22, 4], [21, 0], [21, 2], + [24, 0], [24, 2], [25, 0], [25, 4], [25, 2], [26, 0], [ ], + ], +] + +def set_attr_at(j, b, n, attr, fn, val): + blk = j[b][n] + if attr in blk: + blk[attr] = fn(blk[attr], val) + else: + blk[attr] = fn(None, val) + +def coord(col, row): + return cr_coord_map[row][col] + +def set_attr(orig, new): + return new + +def set_bg(j, (b, n), color): + set_attr_at(j, b, n, "c", set_attr, color) + #set_attr_at(j, b, n, "g", set_attr, False) + +def _set_tap_info(o, count, cap): + ns = 4 - o.count ("\n") + return o + "\n" * ns + "%.02f%%" % (float(count) / float(cap) * 100) + +def set_tap_info(j, (b, n), count, cap): + j[b][n + 1] = _set_tap_info (j[b][n + 1], count, cap) + +def heatmap_color (v): + colors = [ [0.3, 0.3, 1], [0.3, 1, 0.3], [1, 1, 0.3], [1, 0.3, 0.3]] + fb = 0 + if v <= 0: + idx1, idx2 = 0, 0 + elif v >= 1: + idx1, idx2 = len(colors) - 1, len(colors) - 1 + else: + val = v * (len(colors) - 1) + idx1 = int(floor(val)) + idx2 = idx1 + 1 + fb = val - float(idx1) + + r = (colors[idx2][0] - colors[idx1][0]) * fb + colors[idx1][0] + g = (colors[idx2][1] - colors[idx1][1]) * fb + colors[idx1][1] + b = (colors[idx2][2] - colors[idx1][2]) * fb + colors[idx1][2] + + r, g, b = [x * 255 for x in r, g, b] + return "#%02x%02x%02x" % (r, g, b) + +# Load the keylog +def load_keylog(fname, restrict_row): + keylog = {} + total = 0 + with open(fname, "r") as f: + lines = f.readlines() + for line in lines: + m = re.search ('KL: col=(\d+), row=(\d+)', line) + if not m: + continue + (c, r) = (int(m.group (2)), int(m.group (1))) + if restrict_row != None and r != int(restrict_row): + continue + if (c, r) in keylog: + keylog[(c, r)] = keylog[(c, r)] + 1 + else: + keylog[(c, r)] = 1 + total = total + 1 + return total / 2, keylog + +def l_flat(s): + f = s.split("\n") + return ", ".join (f) + +def main(base_fn, log_fn, restrict_row = None): + + with open(base_fn, "r") as f: + layout = json.load (f) + + ## Reset colors + for row in cr_coord_map: + for col in row: + if col != []: + set_bg (layout, col, "#d9dae0") + #set_attr_at (layout, col[0], col[1], "g", set_attr, True) + + total, log = load_keylog (log_fn, restrict_row) + max_cnt = 0 + for (c, r) in log: + max_cnt = max(max_cnt, log[(c, r)]) + + # Create the heatmap + for (c, r) in log: + coords = coord(c, r) + b, n = coords + cap = max_cnt + v = float(log[(c, r)]) / cap + print >> sys.stderr, "%s => %d/%d => %f = %s" % (l_flat(layout[b][n+1]), log[(c,r)], cap, v, heatmap_color(v)) + set_bg (layout, coord(c, r), heatmap_color (v)) + set_tap_info (layout, coord (c, r), log[(c, r)], total) + + print json.dumps(layout) + +if __name__ == "__main__": + if len(sys.argv) < 3: + print """Log to Heatmap -- creates a heatmap out of keyboard logs + +Usage: log-to-heatmap.py base-layout.json logfile [row] >layout.json""" + sys.exit (1) + main(*sys.argv[1:]) -- cgit v1.2.3 From 47223ebee4823e58e951d9fd89a66e16e29b6357 Mon Sep 17 00:00:00 2001 From: Robert Dale Date: Tue, 19 Jul 2016 08:00:03 -0400 Subject: Corrected the ascii layout to match the coded layout --- keyboards/preonic/keymaps/default/keymap.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'keyboards') diff --git a/keyboards/preonic/keymaps/default/keymap.c b/keyboards/preonic/keymaps/default/keymap.c index 9a957f7ee..2c2299fd2 100644 --- a/keyboards/preonic/keymaps/default/keymap.c +++ b/keyboards/preonic/keymaps/default/keymap.c @@ -142,9 +142,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | | Reset| | | | | | | | | | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | |Audoff|Aud on|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | + * | | | |Aud on|AudOff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | |Voice-|Voice+|Musoff|Mus on| | | | | | | | + * | |Voice-|Voice+|Mus on|MusOff| | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' @@ -277,4 +277,4 @@ void music_scale_user(void) PLAY_NOTE_ARRAY(music_scale, false, 0); } -#endif \ No newline at end of file +#endif -- cgit v1.2.3 From 9c26498f4990ac15ff9acd46440db2ce11b8f80f Mon Sep 17 00:00:00 2001 From: Robert Dale Date: Tue, 19 Jul 2016 08:43:41 -0400 Subject: added Midi On/Off; Enter is actually transparent --- keyboards/preonic/keymaps/default/keymap.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'keyboards') diff --git a/keyboards/preonic/keymaps/default/keymap.c b/keyboards/preonic/keymaps/default/keymap.c index 2c2299fd2..78b4997a8 100644 --- a/keyboards/preonic/keymaps/default/keymap.c +++ b/keyboards/preonic/keymaps/default/keymap.c @@ -102,7 +102,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter | + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' @@ -123,7 +123,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter | + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' @@ -144,7 +144,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | | | |Aud on|AudOff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | |Voice-|Voice+|Mus on|MusOff| | | | | | | | + * | |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' -- cgit v1.2.3 From 8ee9c486fd092aa2c5457f7747385ff82b003c36 Mon Sep 17 00:00:00 2001 From: Joshua T Date: Tue, 19 Jul 2016 17:33:10 -0500 Subject: Adjusted Atreus KEYMAP() function. This change adjusts the KEYMAP() function to provide a more visual representation of the key positions on the keyboard. Previously, keymaps have been defined directly using arrays for the Atreus keyboard. While this works, it doesn't utilize the helpful KEYMAP() function at all to allow the user to visually position the key codes for ease of editing. See the Ergodox-EZ KEYMAP() function and layouts for a great example of how this can work. This change should not break any existing Atreus layouts. At the time of this commit, there are two existing layouts for the Atreus board, and neither use the KEYMAP() function. --- keyboards/atreus/atreus.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'keyboards') diff --git a/keyboards/atreus/atreus.h b/keyboards/atreus/atreus.h index 2b3803bc2..f841c3519 100644 --- a/keyboards/atreus/atreus.h +++ b/keyboards/atreus/atreus.h @@ -10,16 +10,16 @@ // The first section contains all of the arguements // The second converts the arguments into a two-dimensional array #define KEYMAP( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \ ) \ { \ { k00, k01, k02, k03, k04, KC_NO, k05, k06, k07, k08, k09 }, \ { k10, k11, k12, k13, k14, KC_NO, k15, k16, k17, k18, k19 }, \ { k20, k21, k22, k23, k24, k35, k25, k26, k27, k28, k29 }, \ - { k2a, k30, k31, k32, k33, k34, k36, k37, k38, k39, k3a } \ + { k30, k31, k32, k33, k34, k36, k37, k38, k39, k3a, k3b } \ } #endif -- cgit v1.2.3 From 19848613380153f6d420f7807b41c70ee2f5797f Mon Sep 17 00:00:00 2001 From: milestogo Date: Tue, 19 Jul 2016 22:35:38 -0700 Subject: initial kinisis advantage build --- keyboards/kinesis/Makefile | 79 +++ keyboards/kinesis/config.h | 174 +++++++ keyboards/kinesis/docs/kicad/kinesis-cache.lib | 232 +++++++++ keyboards/kinesis/docs/kicad/kinesis.pro | 83 ++++ keyboards/kinesis/docs/kicad/kinesis.sch | 634 +++++++++++++++++++++++++ keyboards/kinesis/docs/photos/P1050573.jpg | Bin 0 -> 177711 bytes keyboards/kinesis/docs/photos/P1050574.jpg | Bin 0 -> 343978 bytes keyboards/kinesis/docs/photos/P1050575.jpg | Bin 0 -> 266771 bytes keyboards/kinesis/docs/readme.txt | 52 ++ keyboards/kinesis/docs/schematic.png | Bin 0 -> 175014 bytes keyboards/kinesis/keymaps/default/Makefile | 21 + keyboards/kinesis/keymaps/default/config.h | 8 + keyboards/kinesis/keymaps/default/keymap.c | 116 +++++ keyboards/kinesis/keymaps/default/readme.md | 1 + keyboards/kinesis/keymaps/programmer/Makefile | 21 + keyboards/kinesis/keymaps/programmer/config.h | 8 + keyboards/kinesis/keymaps/programmer/keymap.c | 245 ++++++++++ keyboards/kinesis/keymaps/programmer/readme.md | 2 + keyboards/kinesis/kinesis.c | 106 +++++ keyboards/kinesis/kinesis.h | 67 +++ keyboards/kinesis/matrix.c | 228 +++++++++ keyboards/kinesis/readme.md | 42 ++ 22 files changed, 2119 insertions(+) create mode 100644 keyboards/kinesis/Makefile create mode 100644 keyboards/kinesis/config.h create mode 100644 keyboards/kinesis/docs/kicad/kinesis-cache.lib create mode 100644 keyboards/kinesis/docs/kicad/kinesis.pro create mode 100644 keyboards/kinesis/docs/kicad/kinesis.sch create mode 100644 keyboards/kinesis/docs/photos/P1050573.jpg create mode 100644 keyboards/kinesis/docs/photos/P1050574.jpg create mode 100644 keyboards/kinesis/docs/photos/P1050575.jpg create mode 100644 keyboards/kinesis/docs/readme.txt create mode 100644 keyboards/kinesis/docs/schematic.png create mode 100644 keyboards/kinesis/keymaps/default/Makefile create mode 100644 keyboards/kinesis/keymaps/default/config.h create mode 100644 keyboards/kinesis/keymaps/default/keymap.c create mode 100644 keyboards/kinesis/keymaps/default/readme.md create mode 100644 keyboards/kinesis/keymaps/programmer/Makefile create mode 100644 keyboards/kinesis/keymaps/programmer/config.h create mode 100644 keyboards/kinesis/keymaps/programmer/keymap.c create mode 100644 keyboards/kinesis/keymaps/programmer/readme.md create mode 100644 keyboards/kinesis/kinesis.c create mode 100644 keyboards/kinesis/kinesis.h create mode 100644 keyboards/kinesis/matrix.c create mode 100644 keyboards/kinesis/readme.md (limited to 'keyboards') diff --git a/keyboards/kinesis/Makefile b/keyboards/kinesis/Makefile new file mode 100644 index 000000000..ca077e636 --- /dev/null +++ b/keyboards/kinesis/Makefile @@ -0,0 +1,79 @@ + +## Project specific files + +SRC= matrix.c + +# MCU name +MCU = at90usb1286 +#MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=1024 + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= no # Console for debug(+400) +COMMAND_ENABLE ?= no +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE ?= no # USB Nkey Rollover +BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default +MIDI_ENABLE ?= no # MIDI controls +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output should be port E6, current quantum library hardcodes C6, which we use for programming +CUSTOM_MATRIX=yes # need to do our own thing with the matrix + +ifndef QUANTUM_DIR + include ../../Makefile +endif + + diff --git a/keyboards/kinesis/config.h b/keyboards/kinesis/config.h new file mode 100644 index 000000000..8f1fdbdb6 --- /dev/null +++ b/keyboards/kinesis/config.h @@ -0,0 +1,174 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER You +#define PRODUCT kinesis-advantage +#define DESCRIPTION A custom keyboard + +// Mouse +#define MOUSEKEY_DELAY 20 +#define MOUSEKEY_INTERVAL 20 +#define MOUSEKEY_MAX_SPEED 4 +#define MOUSEKEY_TIME_TO_MAX 20 +#define MOUSEKEY_WHEEL_MAX_SPEED 1 +#define MOUSEKEY_WHEEL_DELTA 1 +#define MOUSEKEY_WHEEL_TIME_TO_MAX 1 + +/* key matrix size */ +#define MATRIX_ROWS 16 +#define MATRIX_COLS 8 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +//Passed through the port multipler, so 4 pins =16 +#define MATRIX_ROW_PINS { F0,F1, F2, F3 } + +// May be upside down. +#define MATRIX_COL_PINS { B0,B1, B2, B3, B4, B5, B6, B7 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/kinesis/docs/kicad/kinesis-cache.lib b/keyboards/kinesis/docs/kicad/kinesis-cache.lib new file mode 100644 index 000000000..f798d39d6 --- /dev/null +++ b/keyboards/kinesis/docs/kicad/kinesis-cache.lib @@ -0,0 +1,232 @@ +EESchema-LIBRARY Version 2.3 Date: Wednesday, November 12, 2014 'pmt' 10:15:19 pm +#encoding utf-8 +# +# AT90S4414-P +# +DEF AT90S4414-P IC 0 40 Y Y 1 F N +F0 "IC" -850 1880 40 H V L BNN +F1 "AT90S4414-P" 450 -1950 40 H V L BNN +F2 "DIL40" 0 0 30 H V C CIN +F3 "~" 0 0 60 H V C CNN +ALIAS AT90S8515-P +$FPLIST + 40DIP-ELL600 + 40dip600 +$ENDFPLIST +DRAW +S -850 1850 850 -1850 0 1 10 f +X (T0)PB0 1 1000 700 150 L 40 40 1 1 B +X (T1)PB1 2 1000 600 150 L 40 40 1 1 B +X (AIN0)PB2 3 1000 500 150 L 40 40 1 1 B +X (AIN1)PB3 4 1000 400 150 L 40 40 1 1 B +X (~SS~)PB4 5 1000 300 150 L 40 40 1 1 B +X (MOSI)PB5 6 1000 200 150 L 40 40 1 1 B +X (MISO)PB6 7 1000 100 150 L 40 40 1 1 B +X (SCK)PB7 8 1000 0 150 L 40 40 1 1 B +X ~RESET 9 -1000 1700 150 R 40 40 1 1 I +X (RXD)PD0 10 1000 -1000 150 L 40 40 1 1 B +X GND 20 0 -2000 150 U 40 40 1 1 W +X ALE 30 1000 850 150 L 40 40 1 1 O +X VCC 40 0 2000 150 D 40 40 1 1 W +X (TXD)PD1 11 1000 -1100 150 L 40 40 1 1 B +X (A8)PC0 21 1000 -150 150 L 40 40 1 1 B +X ICP 31 -1000 -1400 150 R 40 40 1 1 I +X (INT0)PD2 12 1000 -1200 150 L 40 40 1 1 B +X (A9)PC1 22 1000 -250 150 L 40 40 1 1 B +X (AD7)PA7 32 1000 1000 150 L 40 40 1 1 B +X (INT1)PD3 13 1000 -1300 150 L 40 40 1 1 B +X (A10)PC2 23 1000 -350 150 L 40 40 1 1 B +X (AD6)PA6 33 1000 1100 150 L 40 40 1 1 B +X PD4 14 1000 -1400 150 L 40 40 1 1 B +X (A11)PC3 24 1000 -450 150 L 40 40 1 1 B +X (AD5)PA5 34 1000 1200 150 L 40 40 1 1 B +X (OC1A)PD5 15 1000 -1500 150 L 40 40 1 1 B +X (A12)PC4 25 1000 -550 150 L 40 40 1 1 B +X (AD4)PA4 35 1000 1300 150 L 40 40 1 1 B +X (~WR~)PD6 16 1000 -1600 150 L 40 40 1 1 B +X (A13)PC5 26 1000 -650 150 L 40 40 1 1 B +X (AD3)PA3 36 1000 1400 150 L 40 40 1 1 B +X (~RD~)PD7 17 1000 -1700 150 L 40 40 1 1 B +X (A14)PC6 27 1000 -750 150 L 40 40 1 1 B +X (AD2)PA2 37 1000 1500 150 L 40 40 1 1 B +X XTAL2 18 -1000 1200 150 R 40 40 1 1 B +X (A15)PC7 28 1000 -850 150 L 40 40 1 1 B +X (AD1)PA1 38 1000 1600 150 L 40 40 1 1 B +X XTAL1 19 -1000 800 150 R 40 40 1 1 B +X OC1B 29 -1000 -1500 150 R 40 40 1 1 W +X (AD0)PA0 39 1000 1700 150 L 40 40 1 1 B +ENDDRAW +ENDDEF +# +# ATMEGA16U4-A +# +DEF ATMEGA16U4-A U 0 40 Y Y 1 F N +F0 "U" -950 1700 40 H V C CNN +F1 "ATMEGA16U4-A" 700 -1500 40 H V C CNN +F2 "TQFP44" 0 0 35 H V C CIN +F3 "~" 1100 1100 60 H V C CNN +ALIAS ATMEGA16U4RC-A ATMEGA32U4-A ATMEGA32U4RC-A +$FPLIST + TQFP44 +$ENDFPLIST +DRAW +S -1000 1650 950 -1450 0 1 10 f +X (INT6/AIN0)PE6 1 1100 -650 150 L 40 40 1 1 B +X UVCC 2 -450 1800 150 D 40 40 1 1 W +X D- 3 -1150 100 150 R 40 40 1 1 B +X D+ 4 -1150 200 150 R 40 40 1 1 B +X UGND 5 -400 -1600 150 U 40 40 1 1 P +X UCAP 6 -1150 -50 150 R 40 40 1 1 P +X VBUS 7 -1150 350 150 R 40 40 1 1 P +X (SS/PCINT0)PB0 8 1100 1550 150 L 40 40 1 1 B +X (SCLK/PCINT1)PB1 9 1100 1450 150 L 40 40 1 1 B +X (PDI/MOSI/PCINT2)PB2 10 1100 1350 150 L 40 40 1 1 B +X (RXD/INT2)PD2 20 1100 150 150 L 40 40 1 1 B +X (ADC13/OC1B/OC4B/PCINT13)PB6 30 1100 950 150 L 40 40 1 1 B +X (ADC1)PF1 40 1100 -950 150 L 40 40 1 1 B +X (PDO/MISO/PCINT3)PB3 11 1100 1250 150 L 40 40 1 1 B +X (TXD/INT3)PD3 21 1100 50 150 L 40 40 1 1 B +X (OC3A/~OC4A~)PC6 31 1100 650 150 L 40 40 1 1 B +X (ADC0)PF0 41 1100 -850 150 L 40 40 1 1 B +X (OC0A/OC1C/~RTS~/PCINT7)PB7 12 1100 850 150 L 40 40 1 1 B +X (XCK1/~CTS~)PD5 22 1100 -150 150 L 40 40 1 1 B +X (ICP3/CLK0/OC4A)PC7 32 1100 550 150 L 40 40 1 1 B +X AREF 42 -1150 -850 150 R 40 40 1 1 P +X ~RESET~ 13 -1150 1550 150 R 40 40 1 1 I +X GND 23 -50 -1600 150 U 40 40 1 1 W +X (~HWB~)PE2 33 1100 -550 150 L 40 40 1 1 B +X GND 43 150 -1600 150 U 40 40 1 1 W +X VCC 14 -200 1800 150 D 40 40 1 1 W +X AVCC 24 150 1800 150 D 40 40 1 1 W +X VCC 34 -100 1800 150 D 40 40 1 1 W +X AVCC 44 250 1800 150 D 40 40 1 1 W +X GND 15 -150 -1600 150 U 40 40 1 1 W +X (ICP2/ADC8)PD4 25 1100 -50 150 L 40 40 1 1 B +X GND 35 50 -1600 150 U 40 40 1 1 W +X XTAL2 16 -1150 950 150 R 40 40 1 1 O +X (T1/~OC4D~/ADC9)PD6 26 1100 -250 150 L 40 40 1 1 B +X (ADC7/TDI)PF7 36 1100 -1350 150 L 40 40 1 1 B +X XTAL1 17 -1150 1150 150 R 40 40 1 1 I +X (T0/OC4D/ADC10)PD7 27 1100 -350 150 L 40 40 1 1 B +X (ADC6/TDO)PF6 37 1100 -1250 150 L 40 40 1 1 B +X (OC0B/SCL/INT0)PD0 18 1100 350 150 L 40 40 1 1 B +X (ADC11/PCINT4)PB4 28 1100 1150 150 L 40 40 1 1 B +X (ADC5/TMS)PF5 38 1100 -1150 150 L 40 40 1 1 B +X (SDA/INT1)PD1 19 1100 250 150 L 40 40 1 1 B +X (ADC12/OC1A/~OC4B~/PCINT12)PB5 29 1100 1050 150 L 40 40 1 1 B +X (ADC4/TCK)PF4 39 1100 -1050 150 L 40 40 1 1 B +ENDDRAW +ENDDEF +# +# C +# +DEF C C 0 10 N Y 1 F N +F0 "C" 0 100 40 H V L CNN +F1 "C" 6 -85 40 H V L CNN +F2 "~" 38 -150 30 H V C CNN +F3 "~" 0 0 60 H V C CNN +$FPLIST + SM* + C? + C1-1 +$ENDFPLIST +DRAW +P 2 0 1 20 -80 -30 80 -30 N +P 2 0 1 20 -80 30 80 30 N +X ~ 1 0 200 170 D 40 40 1 1 P +X ~ 2 0 -200 170 U 40 40 1 1 P +ENDDRAW +ENDDEF +# +# CONN_7 +# +DEF CONN_7 P 0 40 Y N 1 F N +F0 "P" -30 0 60 V V C CNN +F1 "CONN_7" 70 0 60 V V C CNN +F2 "~" 0 0 60 H V C CNN +F3 "~" 0 0 60 H V C CNN +DRAW +S -100 350 150 -350 0 1 0 N +X P1 1 -350 300 250 R 50 50 1 1 P I +X P2 2 -350 200 250 R 50 50 1 1 P I +X P3 3 -350 100 250 R 50 50 1 1 P I +X P4 4 -350 0 250 R 50 50 1 1 P I +X P5 5 -350 -100 250 R 50 50 1 1 P I +X P6 6 -350 -200 250 R 50 50 1 1 P I +X P7 7 -350 -300 250 R 50 50 1 1 P I +ENDDRAW +ENDDEF +# +# GND +# +DEF ~GND #PWR 0 0 Y Y 1 F P +F0 "#PWR" 0 0 30 H I C CNN +F1 "GND" 0 -70 30 H I C CNN +F2 "~" 0 0 60 H V C CNN +F3 "~" 0 0 60 H V C CNN +DRAW +P 4 0 1 0 -50 0 0 -50 50 0 -50 0 N +X GND 1 0 0 0 U 30 30 1 1 W N +ENDDRAW +ENDDEF +# +# R +# +DEF R R 0 0 N Y 1 F N +F0 "R" 80 0 40 V V C CNN +F1 "R" 7 1 40 V V C CNN +F2 "~" -70 0 30 V V C CNN +F3 "~" 0 0 30 H V C CNN +$FPLIST + R? + SM0603 + SM0805 + R?-* + SM1206 +$ENDFPLIST +DRAW +S -40 150 40 -150 0 1 12 N +X ~ 1 0 250 100 D 60 60 1 1 P +X ~ 2 0 -250 100 U 60 60 1 1 P +ENDDRAW +ENDDEF +# +# USB-MINI-B +# +DEF USB-MINI-B CON 0 40 Y Y 1 F N +F0 "CON" -250 450 60 H V C CNN +F1 "USB-MINI-B" -50 -500 60 H V C CNN +F2 "~" 0 0 60 H V C CNN +F3 "~" 0 0 60 H V C CNN +$FPLIST + USB-Mini-B-Jack +$ENDFPLIST +DRAW +S -350 400 350 -400 0 1 0 N +X VBUS 1 -550 300 200 R 50 50 1 1 W +X D- 2 -550 150 200 R 50 50 1 1 B +X D+ 3 -550 0 200 R 50 50 1 1 B +X ID 4 -550 -150 200 R 50 50 1 1 B +X GND 5 -550 -300 200 R 50 50 1 1 W +X SHELL1 6 550 300 200 L 50 50 1 1 B +X SHELL2 7 550 150 200 L 50 50 1 1 B +X SHELL3 8 550 -150 200 L 50 50 1 1 B +X SHELL4 9 550 -300 200 L 50 50 1 1 B +ENDDRAW +ENDDEF +# +# VCC +# +DEF VCC #PWR 0 0 Y Y 1 F P +F0 "#PWR" 0 100 30 H I C CNN +F1 "VCC" 0 100 30 H V C CNN +F2 "~" 0 0 60 H V C CNN +F3 "~" 0 0 60 H V C CNN +DRAW +X VCC 1 0 0 0 U 20 20 0 0 W N +C 0 50 20 0 1 0 N +P 3 0 1 0 0 0 0 30 0 30 N +ENDDRAW +ENDDEF +# +#End Library diff --git a/keyboards/kinesis/docs/kicad/kinesis.pro b/keyboards/kinesis/docs/kicad/kinesis.pro new file mode 100644 index 000000000..9f130b509 --- /dev/null +++ b/keyboards/kinesis/docs/kicad/kinesis.pro @@ -0,0 +1,83 @@ +update=Wednesday, November 05, 2014 'pmt' 12:08:47 pm +version=1 +last_client=pcbnew +[cvpcb] +version=1 +NetIExt=net +[cvpcb/libraries] +EquName1=devcms +[general] +version=1 +[eeschema] +version=1 +PageLayoutDescrFile= +SubpartIdSeparator=0 +SubpartFirstId=65 +LibDir=../../../lib/kicad/library +NetFmtName= +RptD_X=0 +RptD_Y=100 +RptLab=1 +LabSize=60 +[eeschema/libraries] +LibName1=power +LibName2=device +LibName3=transistors +LibName4=conn +LibName5=linear +LibName6=regul +LibName7=74xx +LibName8=cmos4000 +LibName9=adc-dac +LibName10=memory +LibName11=xilinx +LibName12=special +LibName13=microcontrollers +LibName14=dsp +LibName15=microchip +LibName16=analog_switches +LibName17=motorola +LibName18=texas +LibName19=intel +LibName20=audio +LibName21=interface +LibName22=digital-audio +LibName23=philips +LibName24=display +LibName25=cypress +LibName26=siliconi +LibName27=opto +LibName28=atmel +LibName29=contrib +LibName30=valves +LibName31=custom +[pcbnew] +version=1 +LastNetListRead= +UseCmpFile=1 +PadDrill=1.016000000000 +PadDrillOvalY=1.016000000000 +PadSizeH=1.524000000000 +PadSizeV=1.524000000000 +PcbTextSizeV=1.500000000000 +PcbTextSizeH=1.500000000000 +PcbTextThickness=0.300000000000 +ModuleTextSizeV=1.000000000000 +ModuleTextSizeH=1.000000000000 +ModuleTextSizeThickness=0.150000000000 +SolderMaskClearance=0.000000000000 +SolderMaskMinWidth=0.000000000000 +DrawSegmentWidth=0.200000000000 +BoardOutlineThickness=0.100000000000 +ModuleOutlineThickness=0.150000000000 +[pcbnew/libraries] +LibDir=../../../lib/kicad/modules +LibName1=custom +LibName2=Sockets +LibName3=Connect +LibName4=Discret +LibName5=Divers +LibName6=Display +LibName7=LEDs +LibName8=SMD_Packages +LibName9=Sockets_DIP diff --git a/keyboards/kinesis/docs/kicad/kinesis.sch b/keyboards/kinesis/docs/kicad/kinesis.sch new file mode 100644 index 000000000..f75335aa0 --- /dev/null +++ b/keyboards/kinesis/docs/kicad/kinesis.sch @@ -0,0 +1,634 @@ +EESchema Schematic File Version 2 +LIBS:power +LIBS:device +LIBS:transistors +LIBS:conn +LIBS:linear +LIBS:regul +LIBS:74xx +LIBS:cmos4000 +LIBS:adc-dac +LIBS:memory +LIBS:xilinx +LIBS:special +LIBS:microcontrollers +LIBS:dsp +LIBS:microchip +LIBS:analog_switches +LIBS:motorola +LIBS:texas +LIBS:intel +LIBS:audio +LIBS:interface +LIBS:digital-audio +LIBS:philips +LIBS:display +LIBS:cypress +LIBS:siliconi +LIBS:opto +LIBS:atmel +LIBS:contrib +LIBS:valves +LIBS:custom +LIBS:kinesis-cache +EELAYER 27 0 +EELAYER END +$Descr A4 11693 8268 +encoding utf-8 +Sheet 1 1 +Title "" +Date "13 nov 2014" +Rev "" +Comp "" +Comment1 "" +Comment2 "" +Comment3 "" +Comment4 "" +$EndDescr +$Comp +L C C4 +U 1 1 545804FB +P 2850 4250 +F 0 "C4" H 2850 4350 40 0000 L CNN +F 1 "1uF" H 2856 4165 40 0000 L CNN +F 2 "~" H 2888 4100 30 0000 C CNN +F 3 "~" H 2850 4250 60 0000 C CNN + 1 2850 4250 + -1 0 0 1 +$EndComp +$Comp +L R R3 +U 1 1 545805E8 +P 2500 4000 +F 0 "R3" V 2580 4000 40 0000 C CNN +F 1 "22" V 2507 4001 40 0000 C CNN +F 2 "~" V 2430 4000 30 0000 C CNN +F 3 "~" H 2500 4000 30 0000 C CNN + 1 2500 4000 + 0 -1 -1 0 +$EndComp +$Comp +L R R2 +U 1 1 545805FA +P 2500 3800 +F 0 "R2" V 2580 3800 40 0000 C CNN +F 1 "22" V 2507 3801 40 0000 C CNN +F 2 "~" V 2430 3800 30 0000 C CNN +F 3 "~" H 2500 3800 30 0000 C CNN + 1 2500 3800 + 0 -1 -1 0 +$EndComp +Entry Wire Line + 6450 2450 6550 2550 +Entry Wire Line + 6450 2550 6550 2650 +Entry Wire Line + 6450 2650 6550 2750 +Entry Wire Line + 6450 2750 6550 2850 +Entry Wire Line + 6450 2950 6550 3050 +Entry Wire Line + 6450 3050 6550 3150 +Entry Wire Line + 6450 2850 6550 2950 +Entry Wire Line + 6450 3150 6550 3250 +Wire Wire Line + 10250 1800 10750 1800 +Entry Wire Line + 10750 1800 10850 1900 +Entry Wire Line + 10750 1900 10850 2000 +Entry Wire Line + 10750 2000 10850 2100 +Entry Wire Line + 10750 2800 10850 2900 +Entry Wire Line + 10750 2900 10850 3000 +Entry Wire Line + 10750 3000 10850 3100 +Entry Wire Line + 10750 3100 10850 3200 +Entry Wire Line + 10750 3200 10850 3300 +Entry Wire Line + 10750 3300 10850 3400 +$Comp +L AT90S8515-P IC2 +U 1 1 545A62EA +P 9250 3500 +F 0 "IC2" H 8400 5380 40 0000 L BNN +F 1 "AT90S8515-P" H 9700 1550 40 0000 L BNN +F 2 "DIL40" H 9250 3500 30 0000 C CIN +F 3 "" H 9250 3500 60 0000 C CNN + 1 9250 3500 + 1 0 0 -1 +$EndComp +NoConn ~ 10250 2650 +Entry Wire Line + 10750 3650 10850 3750 +Entry Wire Line + 10750 3750 10850 3850 +Entry Wire Line + 10750 3850 10850 3950 +Entry Wire Line + 10750 3950 10850 4050 +Entry Wire Line + 10750 4050 10850 4150 +Entry Wire Line + 10750 4150 10850 4250 +Entry Wire Line + 10750 4350 10850 4450 +Entry Wire Line + 10750 4250 10850 4350 +NoConn ~ 8250 4900 +NoConn ~ 8250 5000 +NoConn ~ 8250 1800 +Wire Wire Line + 10250 1900 10750 1900 +Wire Wire Line + 10250 2000 10750 2000 +Wire Wire Line + 10250 2100 10750 2100 +Wire Wire Line + 10250 2200 10750 2200 +Wire Wire Line + 10250 2300 10750 2300 +Wire Wire Line + 10250 2400 10750 2400 +Wire Wire Line + 10250 2500 10750 2500 +Text Label 10350 1800 0 60 ~ 0 +A +Text Label 10350 1900 0 60 ~ 0 +B +Text Label 10350 2000 0 60 ~ 0 +C +Text Label 10350 2100 0 60 ~ 0 +G +Wire Wire Line + 10250 2800 10750 2800 +Wire Wire Line + 10250 2900 10750 2900 +Wire Wire Line + 10250 3000 10750 3000 +Wire Wire Line + 10250 3100 10750 3100 +Wire Wire Line + 10250 3200 10750 3200 +Wire Wire Line + 10250 3300 10750 3300 +Wire Wire Line + 10250 3400 10750 3400 +Wire Wire Line + 10250 3500 10750 3500 +Text Label 10350 2800 0 60 ~ 0 +DL2 +Text Label 10350 2900 0 60 ~ 0 +DR1 +Text Label 10350 3000 0 60 ~ 0 +DR2 +Text Label 10350 3100 0 60 ~ 0 +DL1 +Text Label 10350 3400 0 60 ~ 0 +SCL +Text Label 10350 3500 0 60 ~ 0 +SDA +Wire Wire Line + 10250 3650 10750 3650 +Wire Wire Line + 10250 3750 10750 3750 +Wire Wire Line + 10250 3850 10750 3850 +Wire Wire Line + 10250 3950 10750 3950 +Wire Wire Line + 10250 4050 10750 4050 +Wire Wire Line + 10250 4150 10750 4150 +Wire Wire Line + 10250 4250 10750 4250 +Wire Wire Line + 10250 4350 10750 4350 +Text Label 10350 3650 0 60 ~ 0 +R1 +Text Label 10350 3750 0 60 ~ 0 +R2 +Text Label 10350 3850 0 60 ~ 0 +R3 +Text Label 10350 3950 0 60 ~ 0 +R4 +Text Label 10350 4050 0 60 ~ 0 +R5 +Text Label 10350 4150 0 60 ~ 0 +R6 +Text Label 10350 4250 0 60 ~ 0 +R7 +Text Label 10350 4350 0 60 ~ 0 +R8 +Wire Wire Line + 10250 4500 10750 4500 +Wire Wire Line + 10250 4600 10750 4600 +Wire Wire Line + 10250 4700 10750 4700 +Wire Wire Line + 10250 4800 10750 4800 +Wire Wire Line + 10250 4900 10750 4900 +Wire Wire Line + 10250 5000 10750 5000 +Wire Wire Line + 10250 5100 10750 5100 +Wire Wire Line + 10250 5200 10750 5200 +Text Label 10350 4600 0 60 ~ 0 +FS1 +Text Label 10350 5000 0 60 ~ 0 +FS3 +Text Label 10350 5200 0 60 ~ 0 +FS2 +$Comp +L GND #PWR01 +U 1 1 545A7377 +P 9250 5600 +F 0 "#PWR01" H 9250 5600 30 0001 C CNN +F 1 "GND" H 9250 5530 30 0001 C CNN +F 2 "" H 9250 5600 60 0000 C CNN +F 3 "" H 9250 5600 60 0000 C CNN + 1 9250 5600 + 1 0 0 -1 +$EndComp +Wire Wire Line + 9250 5500 9250 5600 +Text Label 10350 4700 0 60 ~ 0 +CLOCK +Text Label 10350 4800 0 60 ~ 0 +DATA +NoConn ~ 10750 4700 +NoConn ~ 10750 4800 +Text Label 10350 3200 0 60 ~ 0 +KP +Text Label 10350 3300 0 60 ~ 0 +PGM +Text Label 10350 2500 0 60 ~ 0 +BUZZ +NoConn ~ 8250 2300 +NoConn ~ 8250 2700 +$Comp +L GND #PWR02 +U 1 1 545A7565 +P 4750 5700 +F 0 "#PWR02" H 4750 5700 30 0001 C CNN +F 1 "GND" H 4750 5630 30 0001 C CNN +F 2 "" H 4750 5700 60 0000 C CNN +F 3 "" H 4750 5700 60 0000 C CNN + 1 4750 5700 + 1 0 0 -1 +$EndComp +Entry Wire Line + 6450 3650 6550 3750 +Entry Wire Line + 6450 3750 6550 3850 +Entry Wire Line + 6450 4150 6550 4250 +Entry Wire Line + 6450 4250 6550 4350 +Entry Wire Line + 6450 4050 6550 4150 +Entry Wire Line + 6450 4350 6550 4450 +NoConn ~ 3750 2850 +Wire Wire Line + 1200 2000 6450 2000 +NoConn ~ 3750 3050 +Wire Wire Line + 2750 3800 3750 3800 +Wire Wire Line + 2750 3900 3750 3900 +Wire Wire Line + 2750 3900 2750 4000 +Wire Bus Line + 6550 2100 6550 6050 +Wire Bus Line + 10850 1600 10850 6050 +Text Label 6050 4350 0 60 ~ 0 +DL1 +Text Label 6050 4250 0 60 ~ 0 +DR2 +Text Label 6050 4150 0 60 ~ 0 +DR1 +Text Label 6050 4050 0 60 ~ 0 +DL2 +Text Label 6050 2450 0 60 ~ 0 +R1 +Text Label 6050 2550 0 60 ~ 0 +R2 +Text Label 6050 2650 0 60 ~ 0 +R3 +Text Label 6050 2750 0 60 ~ 0 +R4 +Text Label 6050 2850 0 60 ~ 0 +R5 +Text Label 6050 2950 0 60 ~ 0 +R6 +Text Label 6050 3050 0 60 ~ 0 +R7 +Text Label 6050 3150 0 60 ~ 0 +R8 +Text Label 6050 5050 0 60 ~ 0 +A +Text Label 6050 5150 0 60 ~ 0 +B +Text Label 6050 5250 0 60 ~ 0 +C +Text Label 6050 5350 0 60 ~ 0 +G +Text Label 1300 3800 0 60 ~ 0 +D+ +Text Label 1300 4000 0 60 ~ 0 +D- +NoConn ~ 10750 2200 +NoConn ~ 10750 2300 +NoConn ~ 10750 2400 +Text Label 10350 4500 0 60 ~ 0 +GND +NoConn ~ 10750 4900 +NoConn ~ 10750 5100 +Text Label 6050 3450 0 60 ~ 0 +KP +Text Label 6050 3350 0 60 ~ 0 +PGM +$Comp +L ATMEGA32U4-A U1 +U 1 1 5462E0B1 +P 4900 4000 +F 0 "U1" H 3950 5700 40 0000 C CNN +F 1 "ATMEGA32U4-A" H 5600 2500 40 0000 C CNN +F 2 "TQFP44" H 4900 4000 35 0000 C CIN +F 3 "" H 6000 5100 60 0000 C CNN + 1 4900 4000 + 1 0 0 -1 +$EndComp +Wire Wire Line + 3750 4850 3750 5600 +Wire Wire Line + 4450 2200 5150 2200 +Connection ~ 4700 2200 +Connection ~ 4800 2200 +Connection ~ 5050 2200 +Connection ~ 4800 2000 +Wire Wire Line + 6000 2450 6450 2450 +Wire Wire Line + 6000 2550 6450 2550 +Wire Wire Line + 6000 2650 6450 2650 +Wire Wire Line + 6000 2750 6450 2750 +Wire Wire Line + 6000 2850 6450 2850 +Wire Wire Line + 6000 2950 6450 2950 +Wire Wire Line + 6000 3050 6450 3050 +Wire Wire Line + 6000 3150 6450 3150 +Wire Wire Line + 6000 5050 6450 5050 +Wire Wire Line + 6000 5150 6450 5150 +Wire Wire Line + 6000 5250 6450 5250 +Wire Wire Line + 6000 4050 6450 4050 +Wire Wire Line + 6000 4150 6450 4150 +Wire Wire Line + 6000 4250 6450 4250 +Wire Wire Line + 6000 4350 6450 4350 +Wire Wire Line + 6000 4550 6450 4550 +Entry Wire Line + 6450 3350 6550 3450 +Entry Wire Line + 6450 3450 6550 3550 +Entry Wire Line + 6450 5050 6550 5150 +Entry Wire Line + 6450 5150 6550 5250 +Entry Wire Line + 6450 5250 6550 5350 +Entry Wire Line + 6450 5350 6550 5450 +Entry Wire Line + 6450 4650 6550 4750 +Wire Wire Line + 6000 3350 6450 3350 +Wire Wire Line + 6000 3450 6450 3450 +Wire Wire Line + 1200 5600 6450 5600 +Connection ~ 4950 5600 +Connection ~ 4850 5600 +Wire Wire Line + 4750 5600 4750 5700 +Connection ~ 4750 5600 +Connection ~ 4500 5600 +Text Label 6050 4550 0 60 ~ 0 +HWB +Wire Wire Line + 6000 5350 6450 5350 +Wire Wire Line + 6000 3650 6450 3650 +Wire Wire Line + 6000 3750 6450 3750 +Text Label 6050 3650 0 60 ~ 0 +SCL +Text Label 6050 3750 0 60 ~ 0 +SDA +Wire Wire Line + 6000 3850 6450 3850 +Wire Wire Line + 6000 3950 6450 3950 +Wire Wire Line + 6000 4650 6450 4650 +Text Label 6050 4650 0 60 ~ 0 +BUZZ +NoConn ~ 10750 4600 +NoConn ~ 10750 5000 +NoConn ~ 10750 5200 +Entry Wire Line + 10750 3400 10850 3500 +Entry Wire Line + 10750 3500 10850 3600 +Entry Wire Line + 10750 4500 10850 4600 +Wire Wire Line + 2850 4050 3750 4050 +Text Label 2950 4050 0 60 ~ 0 +UCAP +Wire Wire Line + 6000 4850 6450 4850 +Wire Wire Line + 6000 4950 6450 4950 +NoConn ~ 6450 4850 +NoConn ~ 6450 4950 +NoConn ~ 6450 4550 +$Comp +L USB-MINI-B CON1 +U 1 1 546431C1 +P 2100 5050 +F 0 "CON1" H 1850 5500 60 0000 C CNN +F 1 "USB-MINI-B" H 2050 4550 60 0000 C CNN +F 2 "" H 2100 5050 60 0000 C CNN +F 3 "" H 2100 5050 60 0000 C CNN + 1 2100 5050 + 0 1 1 0 +$EndComp +$Comp +L VCC #PWR03 +U 1 1 54643698 +P 2400 4400 +F 0 "#PWR03" H 2400 4500 30 0001 C CNN +F 1 "VCC" H 2400 4500 30 0000 C CNN +F 2 "" H 2400 4400 60 0000 C CNN +F 3 "" H 2400 4400 60 0000 C CNN + 1 2400 4400 + 1 0 0 -1 +$EndComp +Text Notes 2600 2750 0 60 ~ 0 +Teensy 2.0\n(not fully drawn) +$Comp +L CONN_7 B7K-PH-K-S1 +U 1 1 54643939 +P 1950 6900 +F 0 "B7K-PH-K-S1" V 1920 6900 60 0000 C CNN +F 1 "CONN_7" V 2020 6900 60 0000 C CNN +F 2 "" H 1950 6900 60 0000 C CNN +F 3 "" H 1950 6900 60 0000 C CNN + 1 1950 6900 + 1 0 0 -1 +$EndComp +Connection ~ 3750 5600 +Connection ~ 2400 5600 +Connection ~ 2250 5600 +Connection ~ 1950 5600 +Wire Wire Line + 2400 4400 2400 4500 +Wire Wire Line + 2250 4000 2250 4500 +Wire Wire Line + 1200 3800 2250 3800 +Wire Wire Line + 2100 3800 2100 4500 +Wire Wire Line + 2850 4450 2850 5600 +Connection ~ 2850 5600 +Entry Wire Line + 1100 6800 1200 6900 +Entry Wire Line + 1100 6900 1200 7000 +Entry Wire Line + 1100 7000 1200 7100 +Entry Wire Line + 1100 6700 1200 6800 +Wire Wire Line + 1200 6600 1600 6600 +Wire Wire Line + 1200 6700 1600 6700 +Wire Wire Line + 1200 6800 1600 6800 +Wire Wire Line + 1200 6900 1600 6900 +Wire Wire Line + 1200 7000 1600 7000 +Wire Wire Line + 1200 7100 1600 7100 +Wire Wire Line + 1200 7200 1600 7200 +Text Label 1300 6600 0 60 ~ 0 +FS2 +Text Label 1300 6700 0 60 ~ 0 +FS1 +Text Label 1300 6800 0 60 ~ 0 +VCC +Text Label 1300 6900 0 60 ~ 0 +D- +Text Label 1300 7000 0 60 ~ 0 +D+ +Text Label 1300 7100 0 60 ~ 0 +GND +Text Label 1300 7200 0 60 ~ 0 +FS3 +NoConn ~ 3750 2450 +Wire Wire Line + 3600 2000 3600 3650 +Wire Wire Line + 3600 3650 3750 3650 +NoConn ~ 1950 4500 +Wire Bus Line + 1100 1900 1100 7100 +NoConn ~ 1200 6600 +NoConn ~ 1200 6700 +NoConn ~ 1200 7200 +Connection ~ 2100 3800 +Wire Wire Line + 1200 4000 2250 4000 +Entry Wire Line + 1100 3700 1200 3800 +Entry Wire Line + 1100 3900 1200 4000 +Text Label 10350 1500 0 60 ~ 0 +VCC +Entry Wire Line + 1100 1900 1200 2000 +Text Label 1250 2000 0 60 ~ 0 +VCC +Entry Wire Line + 1100 5500 1200 5600 +Connection ~ 1800 5600 +Text Label 1300 5600 0 60 ~ 0 +GND +Wire Wire Line + 9250 5500 10750 5500 +Entry Wire Line + 10750 5500 10850 5600 +Text Label 10350 5500 0 60 ~ 0 +GND +Wire Wire Line + 9250 1500 10750 1500 +Entry Wire Line + 10750 1500 10850 1600 +Connection ~ 3600 2000 +Wire Wire Line + 4800 2000 4800 2200 +Entry Wire Line + 6450 2000 6550 2100 +Text Label 6050 2000 0 60 ~ 0 +VCC +Connection ~ 5050 5600 +Entry Wire Line + 6450 5600 6550 5700 +Text Label 6050 5600 0 60 ~ 0 +GND +NoConn ~ 6450 3850 +NoConn ~ 6450 3950 +Wire Wire Line + 1800 4500 1500 4500 +Wire Wire Line + 1500 4500 1500 5600 +Connection ~ 1500 5600 +Entry Wire Line + 10750 2500 10850 2600 +Entry Wire Line + 10750 2100 10850 2200 +Text Notes 1000 5300 1 60 ~ 0 +Sacrificial USB cable from header to Teensy +Text Notes 7850 5950 0 60 ~ 0 +Ribbon cable between Teensy pins and socket +Wire Bus Line + 10850 6050 6550 6050 +$EndSCHEMATC diff --git a/keyboards/kinesis/docs/photos/P1050573.jpg b/keyboards/kinesis/docs/photos/P1050573.jpg new file mode 100644 index 000000000..027ab9efb Binary files /dev/null and b/keyboards/kinesis/docs/photos/P1050573.jpg differ diff --git a/keyboards/kinesis/docs/photos/P1050574.jpg b/keyboards/kinesis/docs/photos/P1050574.jpg new file mode 100644 index 000000000..d49c492b8 Binary files /dev/null and b/keyboards/kinesis/docs/photos/P1050574.jpg differ diff --git a/keyboards/kinesis/docs/photos/P1050575.jpg b/keyboards/kinesis/docs/photos/P1050575.jpg new file mode 100644 index 000000000..50cc9897c Binary files /dev/null and b/keyboards/kinesis/docs/photos/P1050575.jpg differ diff --git a/keyboards/kinesis/docs/readme.txt b/keyboards/kinesis/docs/readme.txt new file mode 100644 index 000000000..af33ac490 --- /dev/null +++ b/keyboards/kinesis/docs/readme.txt @@ -0,0 +1,52 @@ +This directory of documentation was copied from https://github.com/wjanssens/tmk_keyboard/tree/master/keyboard/kinesis +and is probably Copyright 2014 Warren Janssens +and probably released under GPL v2, which may be recovered at . + +Row configuration +PF0 A +PF1 B +PF2 C +PF3 G 0 = U4, 1 = U5 + +Column configuration + 4y0 4y1 4y2 4y3 4y4 4y5 4y6 4y7 5y0 5y1 5y2 5y3 5y4 5y5 5y6 5y7 + r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 +PB0 21 c1 f6 f8 f7 5 4 3 2 1 =+ +PB1 22 c2 f3 f5 f4 t r e w q TAB +PB2 23 c3 ESC f2 f1 g f d s a CL +PB3 24 c4 f9 f11 f10 b v c x z LS UP DN [{ ]} +PB4 25 c5 f12 SL PS RT LT §± `~ 6 7 8 9 0 -_ +PB5 26 c6 PB PGM KPD y u i o p \ +PB6 27 c7 LC DL BS RC EN SP h j k l ;: '" +PB7 28 c8 RA PU PD n m ,< .> /? RS + */ + + +40 pin connector + + DL2 1 40 VCC + DR1 2 39 A + DR2 3 38 B + DL1 4 37 C + KPD 5 36 G + PGM 6 35 + SCL 7 34 + SDA 8 33 + RST 9 32 BUZZ + WP 10 31 EA + FS1 11 30 ALE + CLOCK 12 29 PSEN + DATA 13 28 r8 + 14 27 r7 + FS3 15 26 r6 + 16 25 r5 + FS2 17 24 r4 + XTAL1 18 23 r3 + XTAL2 19 22 r2 + GND 20 21 r1 + + +references: +https://github.com/chrisandreae/keyboard-firmware + + diff --git a/keyboards/kinesis/docs/schematic.png b/keyboards/kinesis/docs/schematic.png new file mode 100644 index 000000000..fa9405a1f Binary files /dev/null and b/keyboards/kinesis/docs/schematic.png differ diff --git a/keyboards/kinesis/keymaps/default/Makefile b/keyboards/kinesis/keymaps/default/Makefile new file mode 100644 index 000000000..9d3df5964 --- /dev/null +++ b/keyboards/kinesis/keymaps/default/Makefile @@ -0,0 +1,21 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/kinesis/keymaps/default/config.h b/keyboards/kinesis/keymaps/default/config.h new file mode 100644 index 000000000..8893d122e --- /dev/null +++ b/keyboards/kinesis/keymaps/default/config.h @@ -0,0 +1,8 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// place overrides here + +#endif diff --git a/keyboards/kinesis/keymaps/default/keymap.c b/keyboards/kinesis/keymaps/default/keymap.c new file mode 100644 index 000000000..3bf80699c --- /dev/null +++ b/keyboards/kinesis/keymaps/default/keymap.c @@ -0,0 +1,116 @@ +#include "kinesis.h" +#include "action_layer.h" + +#define QWERTY 0 // Base qerty +#define SYMB 1// Symbol layer + +// An almost entirely blank keymap. Test layers with the upper right hand key - 1 in normal mode, reset in layer 2. + + +/**************************************************************************************************** +* +* Keymap: Default Layer in Qwerty +* +* ,-------------------------------------------------------------------------------------------------------------------. +* | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F8 | F9 | F10 | F12 | PSCR | SLCK | PAUS | FN0 | BOOT | +* |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------| +* | =+ | 1! | 2@ | 3# | 4$ | 5% | | 6^ | 7& | 8* | 9( | 0) | -_ | +* |--------+------+------+------+------+------| +------+------+------+------+------+--------| +* | Tab | Q | W | E | R | T | | Y | U | I | O | P | \| | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | Caps | A | S | D | F | G | | H | J | K | L | ;: | '" | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | Shift | Z | X | C | V | B | | N | M | ,. | .> | /? | Shift | +* `--------+------+------+------+------+------- `------+------+------+------+------+--------' +* | `~ | INS | Left | Right| | Up | Down | [{ | ]} | +* `---------------------------' `---------------------------' +* ,-------------. ,-------------. +* | Ctrl | Alt | | Gui | Ctrl | +* ,------|------|------| |------+------+------. +* | | | Home | | PgUp | | | +* | BkSp | Del |------| |------|Return| Space| +* | | | End | | PgDn | | | +* `--------------------' `--------------------' +*/ + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[QWERTY] = KEYMAP( + KC_ESC, KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8, + KC_EQL, KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 , + KC_TAB, KC_Q ,KC_W ,KC_E ,KC_R ,KC_T , + KC_CAPS,KC_A ,KC_S ,KC_D ,KC_F ,KC_G , + KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B , + KC_GRV ,KC_INS ,KC_LEFT,KC_RGHT, + KC_LCTL,KC_LALT, + KC_HOME, + KC_BSPC,KC_DEL ,KC_END , + KC_F9 ,KC_F10 ,KC_F11 ,KC_F12 ,KC_PSCR ,KC_SLCK ,KC_PAUS, KC_FN0, KC_1, + KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_MINS, + KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_BSLS, + KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN,KC_QUOT, + KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_RSFT, + KC_UP ,KC_DOWN,KC_LBRC,KC_RBRC, + KC_RGUI,KC_RCTL, + KC_PGUP, + KC_PGDN,KC_ENTER ,KC_SPC + ), +[SYMB] = 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, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_FN0, RESET, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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[] = { + [0] = 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; +}; + + +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { + +} diff --git a/keyboards/kinesis/keymaps/default/readme.md b/keyboards/kinesis/keymaps/default/readme.md new file mode 100644 index 000000000..da033be1e --- /dev/null +++ b/keyboards/kinesis/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for kinesis-advantage diff --git a/keyboards/kinesis/keymaps/programmer/Makefile b/keyboards/kinesis/keymaps/programmer/Makefile new file mode 100644 index 000000000..9d3df5964 --- /dev/null +++ b/keyboards/kinesis/keymaps/programmer/Makefile @@ -0,0 +1,21 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/kinesis/keymaps/programmer/config.h b/keyboards/kinesis/keymaps/programmer/config.h new file mode 100644 index 000000000..8893d122e --- /dev/null +++ b/keyboards/kinesis/keymaps/programmer/config.h @@ -0,0 +1,8 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// place overrides here + +#endif diff --git a/keyboards/kinesis/keymaps/programmer/keymap.c b/keyboards/kinesis/keymaps/programmer/keymap.c new file mode 100644 index 000000000..83fb7bd5f --- /dev/null +++ b/keyboards/kinesis/keymaps/programmer/keymap.c @@ -0,0 +1,245 @@ +#include "kinesis.h" +#include "action_layer.h" +#include "mousekey.h" + +#define QWERTY 0 // Base qerty +#define SYMB 1// Symbol layer +#define MOUSE 2// + + + + +/* Macros */ +enum { + NONE = 0, + // Diagonal mouse movement + A_MUL, + A_MUR, + A_MDL, + A_MDR, +}; + + +// Borrowing very heavily from +// https://github.com/alvicstep/tmk_keyboard +/**************************************************************************************************** +* +* Keymap: Default Layer in Qwerty +* +* ,-------------------------------------------------------------------------------------------------------------------. +* | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F8 | F9 | F10 | F12 | FN0 | FN1 | FN2 | | bOOT | +* |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------| +* | =+ | 1! | 2@ | 3# | 4$ | 5% | | 6^ | 7& | 8* | 9( | 0) | -_ | +* |--------+------+------+------+------+------| +------+------+------+------+------+--------| +* | Tab | Q | W | E | R | T | | Y | U | I | O | P | \| | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* |MouseFN1| A | S | D | F | G | | H | J | K | L | ;: | '" | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | Shift | Z | X | C | V | B | | N | M | ,. | .> | /? | Shift | +* `--------+------+------+------+------+------- `------+------+------+------+------+--------' +* | `~ | ESC |MOUSE1|MOUSE2| | [{ | ]} | ESC | GUI | +* `---------------------------' `---------------------------' +* ,-------------. ,-------------. +* | Ctrl | Alt | | Gui | Ctrl | +* ,------|------|------| |------+------+------. +* | | | Home | | PgUp | | | +* | BkSp | Del |------| |------|Return| Space| +* | | | End | | PgDn | | | +* `--------------------' `--------------------' +*/ + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[QWERTY] = KEYMAP( + KC_ESC, KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8, + KC_EQL, KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 , + KC_TAB, KC_Q ,KC_W ,KC_E ,KC_R ,KC_T , + KC_FN1 ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G , + KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B , + KC_GRV ,KC_ESC, KC_BTN1,KC_BTN2, + KC_LCTL,KC_LALT, + KC_HOME, + KC_BSPC,KC_DEL ,KC_FN0 , + KC_F9 ,KC_F10 ,KC_F11 ,KC_F12 ,KC_FN0 ,KC_FN1 ,KC_FN2, KC_NO, RESET, + KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_MINS, + KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_BSLS, + KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN,KC_QUOT, + KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_RSFT, + KC_LBRC,KC_RBRC, KC_ESC, KC_RGUI, + KC_RGUI,KC_RCTL, + KC_PGUP, + KC_PGDN,KC_ENTER ,KC_SPC + ), +[SYMB] = 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, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_FN0, KC_2, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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: Movement and function layer +* +* ,-------------------------------------------------------------------------------------------------------------------. +* | Caps | F1 | F2 | F3 | F4 | F5 | F6 | F8 | F9 | F10 | F12 | FN0 | FN1 | FN2 | Tada | bOOT | +* |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------| +* | =+ | ! | @ | # | $ | % | | ^ | & | * | ( | ) |MS Fast | +* |--------+------+------+------+------+------| +------+------+------+------+------+--------| +* | Tab | | | Up | |PgUp | | MwU |MS_UL | MS_U |MS_UR | | Ms Norm| +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* |MouseFN1| C^A | Left | Down |Right | C^E | | | MS_L |Mouse1| MS_R | |MS Slow | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | | GuiZ | GUI X| GUI C| GUI_V|PgDown| | MWD | MDown|MS Dwn|MS_DR | ? | | +* `--------+------+------+------+------+------- `------+------+------+------+------+--------' +* | `~ | ESC | < | > | | { | } | ESC | | +* `---------------------------' `---------------------------' +* ,-------------. ,-------------. +* | Ctrl | Alt | | Gui | Ctrl | +* ,------|------|------| |------+------+------. +* | | | Home | | PgUp | | | +* | BkSp | Del |------| |------|Mouse1|Mouse2| +* | | | End | | PgDn |LClick|Rclick| +* `--------------------' `--------------------' +*/ + + +[MOUSE] = KEYMAP( + KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_EXLM ,KC_AT, KC_HASH, KC_DLR ,KC_PERC , + KC_TRNS, KC_NO, KC_NO, KC_UP, KC_NO, KC_PGUP, + KC_FN1, LCTL(KC_A),KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_E), + KC_TRNS, LGUI(KC_Z),LGUI(KC_X),LGUI(KC_C),LGUI(KC_V),KC_PGDN, + KC_TRNS, KC_TRNS, KC_LABK, KC_RABK, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_FN0,RESET, + KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_ACL2, + KC_WH_U, M(A_MUL), KC_MS_U, M(A_MUR), KC_NO, KC_ACL1, + KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_ACL0, + KC_WH_D, M(A_MDL), KC_MS_D, M(A_MDR), KC_TRNS, KC_TRNS, + KC_LCBR, KC_RCBR, KC_ESC, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_BTN1, KC_BTN2 + ), + + +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_TAP_TOGGLE(MOUSE) , // FN1 - Momentary Layer 1 (Symbols) + [1] = ACTION_LAYER_TOGGLE(MOUSE) , // FN1 - Momentary Layer 1 (Symbols) + [2] = 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; + + // from algernon's ErgoDox EZ layout, + case A_MUL: + if (record->event.pressed) { + mousekey_on(KC_MS_UP); + mousekey_on(KC_MS_LEFT); + } else { + mousekey_off(KC_MS_UP); + mousekey_off(KC_MS_LEFT); + } + mousekey_send(); + break; + + case A_MUR: + if (record->event.pressed) { + mousekey_on(KC_MS_UP); + mousekey_on(KC_MS_RIGHT); + } else { + mousekey_off(KC_MS_UP); + mousekey_off(KC_MS_RIGHT); + } + mousekey_send(); + break; + + case A_MDL: + if (record->event.pressed) { + mousekey_on(KC_MS_DOWN); + mousekey_on(KC_MS_LEFT); + } else { + mousekey_off(KC_MS_DOWN); + mousekey_off(KC_MS_LEFT); + } + mousekey_send(); + break; + + case A_MDR: + if (record->event.pressed) { + mousekey_on(KC_MS_DOWN); + mousekey_on(KC_MS_RIGHT); + } else { + mousekey_off(KC_MS_DOWN); + mousekey_off(KC_MS_RIGHT); + } + mousekey_send(); + break; + } + return MACRO_NONE; +}; + + +void matrix_init_user(void) { + + +} + +void matrix_scan_user(void) { + int8_t layer = biton32(layer_state); + + switch (layer) { + case 1: + all_led_off(); + break; + case 2: + if (!(host_keyboard_leds() & (1 << USB_LED_CAPS_LOCK))) { + all_led_off(); + caps_lock_led_on(); + } + break; + case 0: + all_led_off(); + num_lock_led_on(); + break; + default: + break; + } + +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { + +} diff --git a/keyboards/kinesis/keymaps/programmer/readme.md b/keyboards/kinesis/keymaps/programmer/readme.md new file mode 100644 index 000000000..76356a687 --- /dev/null +++ b/keyboards/kinesis/keymaps/programmer/readme.md @@ -0,0 +1,2 @@ +# a programmer friendly keymap for the kinesis-advantage +# not really baked yet. diff --git a/keyboards/kinesis/kinesis.c b/keyboards/kinesis/kinesis.c new file mode 100644 index 000000000..1fee90e6f --- /dev/null +++ b/keyboards/kinesis/kinesis.c @@ -0,0 +1,106 @@ +#include "kinesis.h" + +// begin section origin https://github.com/alvicstep/tmk_keyboard + + +void all_led_off(void) +{ + PORTD = 0b11111111; +} + +void all_led_on(void) +{ + PORTD = 0b00000000; +} +void num_lock_led_on(void) +{ + PORTD = 0b11101111; +} + +void caps_lock_led_on(void) +{ + PORTD = 0b01111111; +} + +void scroll_lock_led_on(void) +{ + PORTD = 0b11011111; +} +void keypad_led_on(void) +{ + PORTD = 0b10111111; +} +void blink_all_leds(void) +{ + all_led_on(); + _delay_ms(500); + + all_led_off(); + _delay_ms(100); + + caps_lock_led_on(); + _delay_ms(100); + + num_lock_led_on(); + _delay_ms(100); + + scroll_lock_led_on(); + _delay_ms(100); + + keypad_led_on(); + _delay_ms(100); + + //back + + scroll_lock_led_on(); + _delay_ms(100); + + num_lock_led_on(); + _delay_ms(100); + + caps_lock_led_on(); + _delay_ms(100); + + all_led_off(); +} + +// End section origin https://github.com/alvicstep/tmk_keyboard + + void matrix_init_kb(void) { + blink_all_leds(); + matrix_init_user(); +} + + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + return process_record_user(keycode, record); +} + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + +//Copyright 2014 Warren Janssens + uint8_t leds = 0xF0; + if (usb_led & 1 << USB_LED_NUM_LOCK) + leds &= ~0x10; + if (usb_led & 1 << USB_LED_CAPS_LOCK) + leds &= ~0x80; + if (usb_led & 1 << USB_LED_SCROLL_LOCK) + leds &= ~0x20; + PORTD = (PORTD & 0x0F) | leds; + + led_set_user(usb_led); + +} + + diff --git a/keyboards/kinesis/kinesis.h b/keyboards/kinesis/kinesis.h new file mode 100644 index 000000000..c04fbda15 --- /dev/null +++ b/keyboards/kinesis/kinesis.h @@ -0,0 +1,67 @@ +#ifndef KINESIS_H +#define KINESIS_H + +#include "quantum.h" + + +// The first section contains all of the arguements +// The second converts the arguments into a two-dimensional array + +#define KEYMAP( \ + k02,k22,k12,k01,k21,k11,k00,k20,k10, \ + k80,k70,k60,k50,k40,k30, \ + k81,k71,k61,k51,k41,k31, \ + k82,k72,k62,k52,k42,k32, \ + k83,k73,k63,k53,k43,k33, \ + k74,k64,k54,k34, \ + k36,k35, \ + k55, \ + k56,k46,k75, \ + k03,k23,k13,k04,k24,k14,k05,k85,k84, \ + k94,kA4,kB4,kD4,kE4,kF4, \ + k95,kA5,kB5,kD5,kE5,kF5, \ + k96,kA6,kB6,kD6,kE6,kF6, \ + k97,kA7,kB7,kD7,kE7,kF7, \ + k93,kB3,kD3,kE3, \ + k47,k66, \ + k67, \ + k87,k76,k86 \ +) { \ + { k00, k01, k02, k03, k04, k05, KC_NO, KC_NO }, \ + { k10, k11, k12, k13, k14, KC_NO, KC_NO, KC_NO }, \ + { k20, k21, k22, k23, k24, KC_NO, KC_NO, KC_NO }, \ + { k30, k31, k32, k33, k34, k35, k36, KC_NO }, \ + { k40, k41, k42, k43, KC_NO, KC_NO, k46, k47 }, \ + { k50, k51, k52, k53, k54, k55, k56, KC_NO }, \ + { k60, k61, k62, k63, k64, KC_NO, k66, k67 }, \ + { k70, k71, k72, k73, k74, k75, k76, KC_NO }, \ + { k80, k81, k82, k83, KC_NO ,KC_NO, k86, k87}, \ + { KC_NO, KC_NO ,KC_NO ,k93, k94, k95, k96, k97}, \ + { KC_NO, KC_NO ,KC_NO ,KC_NO, kA4, kA5, kA6, kA7}, \ + { KC_NO, KC_NO ,KC_NO ,kB3, kB4, kB5, kB6, kB7}, \ + { KC_NO, KC_NO ,KC_NO ,KC_NO, KC_NO, KC_NO, k84, k85}, \ + { KC_NO, KC_NO ,KC_NO ,kD3, kD4, kD5, kD6, kD7}, \ + { KC_NO, KC_NO ,KC_NO ,kE3, kE4, kE5, kE6, kE7}, \ + { KC_NO, KC_NO ,KC_NO ,KC_NO, kF4, kF5, kF6, kF7} \ +} + + +/* 4y0 A 4y1 B 4y2 4y3 D 4y4 E 4y5 F 4y6 G 4y7 H 5y0 I 5y1 J 5y2 K 5y3 L 5y4 M 5y5 N 5y6 O 5y7 P */ + +/* + 0 1 2 3 4 5 6 7 8 9 A B C D E F + A B C D E F G H I J K L M N O P + 4y0 4y1 4y2 4y3 4y4 4y5 4y6 4y7 5y0 5y1 5y2 5y3 5y4 5y5 5y6 5y7 + r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 +0 PB0 21 c0 f6 f8 f7 5 4 3 2 1 =+ +1 PB1 22 c1 f3 f5 f4 t r e w q TAB +2 PB2 23 c2 ESC f2 f1 g f d s a CL +3 PB3 24 c3 f9 f11 f10 b v c x z LS UP DN [{ ]} +4 PB4 25 c4 f12 SL PS RT LT §± `~ 6 7 8 9 0 -_ +5 PB5 26 c5 PB PGM KPD LA HM END y u i o p \ +6 PB6 27 c6 LC DEL BS RC ENT SP h j k l ;: '" +7 PB7 28 c7 RA PU PD n m ,< .> /? RS +*/ + + +#endif diff --git a/keyboards/kinesis/matrix.c b/keyboards/kinesis/matrix.c new file mode 100644 index 000000000..cb0d5ad7d --- /dev/null +++ b/keyboards/kinesis/matrix.c @@ -0,0 +1,228 @@ +/* +Copyright 2014 Warren Janssens + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +/* + * scan matrix + */ +#include +#include +#include +#include +#include "action_layer.h" +#include "print.h" +#include "debug.h" +#include "util.h" +#include "matrix.h" +#include "led.h" +#include "config.h" + +#ifndef DEBOUNCE +# define DEBOUNCE 5 +#endif +static uint8_t debouncing = DEBOUNCE; + +/* matrix state(1:on, 0:off) */ +static uint8_t matrix[MATRIX_ROWS]; +static uint8_t matrix_debouncing[MATRIX_ROWS]; + +static matrix_row_t read_row(uint8_t row); +static void unselect_rows(void); +static void select_rows(uint8_t row); + +__attribute__ ((weak)) +void matrix_init_quantum(void) { + matrix_init_kb(); +} + +__attribute__ ((weak)) +void matrix_scan_quantum(void) { + matrix_scan_kb(); +} + +__attribute__ ((weak)) +void matrix_init_kb(void) { + matrix_init_user(); +} + +__attribute__ ((weak)) +void matrix_scan_kb(void) { + matrix_scan_user(); +} + +__attribute__ ((weak)) +void matrix_init_user(void) { +} + +__attribute__ ((weak)) +void matrix_scan_user(void) { +} + +inline +uint8_t matrix_rows(void) +{ + return MATRIX_ROWS; +} + + +inline +uint8_t matrix_cols(void) +{ + return MATRIX_COLS; +} + +void matrix_init(void) +{ + //debug_enable = true; + + //dprint("matrix_init"); dprintln(); + // output high (leds) + DDRD = 0xFF; + PORTD = 0xFF; + + // output low (multiplexers) + DDRF = 0xFF; + PORTF = 0x00; + + // input with pullup (matrix) + DDRB = 0x00; + PORTB = 0xFF; + + // input with pullup (program and keypad buttons) + DDRC = 0x00; + PORTC = 0xFF; + + // initialize row and col + unselect_rows(); + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + matrix_debouncing[i] = 0; + } + +} + +uint8_t matrix_scan(void) +{ + + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + select_rows(i); + uint8_t row = read_row(i); + if (matrix_debouncing[i] != row) { + matrix_debouncing[i] = row; + if (debouncing) { + debug("bounce!: "); debug_hex(debouncing); debug("\n"); + } + debouncing = DEBOUNCE; + } + unselect_rows(); + } + + if (debouncing) { + if (--debouncing) { + _delay_ms(1); + } else { + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = matrix_debouncing[i]; + } + } + } + matrix_scan_quantum(); + return 1; +} + +bool matrix_is_modified(void) +{ + if (debouncing) return false; + return true; +} + +inline +bool matrix_is_on(uint8_t row, uint8_t col) +{ + return (matrix[row] & ((matrix_row_t)1< /? RS + */ + + diff --git a/keyboards/kinesis/readme.md b/keyboards/kinesis/readme.md new file mode 100644 index 000000000..a990f9cb9 --- /dev/null +++ b/keyboards/kinesis/readme.md @@ -0,0 +1,42 @@ +kinesis-advantage keyboard firmware +====================== + +## Kinesis specific information +This is a port of https://github.com/alvicstep/tmk_keyboard, +which is a fork of https://github.com/wjanssens/tmk_keyboard, +which is based on work from https://github.com/chrisandreae/keyboard-firmware + +If you replace the kinesis CPU as described in the doc folder, then this code should allow you to use QMK. +I've tested with a Teensy 2++, remember to change the CPU if you use a 32u4 instead. + +Not yet implemented: +- Kinesis EEProm reading or writing +- Audio - this should be simple if we remove hardcoded pins from audio.h and switch to E7 + + + +## Quantum MK Firmware + +For the full Quantum feature list, see [the parent readme.md](/doc/readme.md). + +## Building + +Download or clone the whole firmware and navigate to the keyboards/kinesis-advantage folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default + +To build with the default keymap, simply run `make`. + +### Other Keymaps + +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files. + +To build the firmware binary hex file with a keymap just do `make` with `keymap` option like: + +``` +$ make keymap=[default|jack|] +``` + +Keymaps follow the format **__keymap.c__** and are stored in folders in the `keymaps` folder, eg `keymaps/my_keymap/` -- cgit v1.2.3 From 3d7244e604f47dfbc2b45b17616350b6432c4a52 Mon Sep 17 00:00:00 2001 From: Jason Janse van Rensburg Date: Wed, 20 Jul 2016 16:42:09 +0200 Subject: updated bone2planck --- keyboards/planck/keymaps/bone2planck/keymap.c | 176 ++++++++++++++++---------- 1 file changed, 111 insertions(+), 65 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/bone2planck/keymap.c b/keyboards/planck/keymaps/bone2planck/keymap.c index f40b08685..765f0c770 100644 --- a/keyboards/planck/keymaps/bone2planck/keymap.c +++ b/keyboards/planck/keymaps/bone2planck/keymap.c @@ -3,89 +3,135 @@ #ifdef BACKLIGHT_ENABLE #include "backlight.h" #endif -#include "keymap_german.h" +#include "..\..\..\quantum\keymap_extras\keymap_german.h" +#include "..\..\..\quantum\keymap_common.h" +#include "..\..\..\tmk_core\common\keycode.h" +#define _______ = KC_TRNS; /* This Layout tries to emulate the Bone2 Variant of Neo2, and is intended to be used with a German QWERTZ Softwarelayout. - It has Umlauts and "ß" as it is optimized for a mix of German & English. - My favourite features are the placement of the special characters often used for programming right on the home row - and the number & navigation block combo, so you never have to move your hands from their home position. - - Bone2 wiki page: http://wiki.neo-layout.org/wiki/Bone +It has "üäöß" as it is optimized for a mix of German & English. +My favourite features are the placement of the special characters often used for programming right on the home row +and the number & navigation block combo, so you never have to move your hands from their home position. + +Bone2 wiki page: http://wiki.neo-layout.org/wiki/Bone */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Bone2 * ,-----------------------------------------------------------------------------------. - * | Q | J | D | U | A | X | P | H | L | M | W | ẞ | + * | Q | J | D | U | A | X | P | H | L | M | W | ẞ | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | M1 | C | T | I | E | O | B | N | R | S | G | M1 | + * |M1/Tab| C | T | I | E | O | B | N | R | S | G |M1/Ent| //hold for M1, tap for Tab/Enter * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| F | V | Ü | Ä | Ö | Y | Z | , | . | K |Shift | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter | + * | GUI | Ctrl | Alt | M4 | M2 | Space | M2 | M4 | | Ctrl | Esc | * `-----------------------------------------------------------------------------------' */ [0] = { - { DE_Q, DE_J, DE_D, DE_U, DE_A, DE_X, DE_P, DE_H, DE_L, DE_M, DE_W, DE_SS }, - { MO(1), DE_C, DE_T, DE_I, DE_E, DE_O, DE_B, DE_N, DE_R, DE_S, DE_G, MO(1) }, - { DE_S, DE_F, DE_V, DE_UE, DE_AE, DE_OE, DE_Y, DE_Z, DE_COMM, DE_DOT, DE_K, DE_S }, - { KC_LCTL, KC_LGUI, KC_LALT, MO(3), MO(2), KC_SPC, KC_SPC, MO(2), MO(3), KC_ESC, KC_TAB, KC_ENT } - }, + { DE_Q, DE_J, DE_D, DE_U, DE_A, DE_X, DE_P, DE_H, DE_L, DE_M, DE_W, DE_SS }, + { LT(1,KC_TAB), DE_C, DE_T, DE_I, DE_E, DE_O, DE_B, DE_N, DE_R, DE_S, DE_G, LT(1,KC_ENT) }, + { KC_LSFT, DE_F, DE_V, DE_UE, DE_AE, DE_OE, DE_Y, DE_Z, DE_COMM, DE_DOT, DE_K, KC_LSFT }, + { KC_LGUI, KC_LCTL, KC_LALT, MO(4), MO(2), KC_SPC, KC_SPC, MO(2), MO(4), KC_NO, KC_RCTL, KC_ESC } +}, - /* M1 Special Characters - * ,-----------------------------------------------------------------------------------. - * | ° | @ | _ | [ | ] | ^ | ! | < | > | = | & | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | M1 | \ | / | { | } | * | ? | ( | ) | - | : | M1 | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | # | $ | | | ~ | € | + | % | " | ' | ; | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter | - * `-----------------------------------------------------------------------------------' - */ - [1] = { - { DE_RING, DE_AT, DE_UNDS, DE_LBRC, DE_RBRC, DE_CIRC, DE_EXLM, DE_LESS, DE_MORE, DE_EQL, DE_AMPR, KC_NO }, - { KC_TRNS, DE_BSLS, DE_SLSH, DE_LCBR, DE_RCBR, DE_ASTR, DE_QST, DE_LPRN, DE_RPRN, DE_MINS, DE_COLN, KC_TRNS }, - { KC_NO , DE_HASH, DE_DLR, DE_PIPE, DE_TILD, DE_EURO, DE_PLUS, DE_PERC, DE_DQOT, DE_QUOT, DE_SCLN, KC_NO }, - { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS } - }, +/* M1 Special Characters +very ergonomic placement for coding +* ,-----------------------------------------------------------------------------------. +* | ° | @ | _ | [ | ] | ^ | ! | < | > | = | & | ´ | +* |------+------+------+------+------+-------------+------+------+------+------+------| +* |M1/Tab| \ | / | { | } | * | ? | ( | ) | - | : |M1/Ent| //hold for M1, tap for Tab/Enter +* |------+------+------+------+------+------|------+------+------+------+------+------| +* | Shift| # | $ | | | ~ | € | + | % | " | ' | ; |Shift | +* |------+------+------+------+------+------+------+------+------+------+------+------| +* | GUI | Ctrl | Alt | M4 | M2 | Space | M2 | M4 | | Ctrl | Esc | +* `-----------------------------------------------------------------------------------' +*/ +[1] = { + { DE_RING, DE_AT, DE_UNDS, DE_LBRC, DE_RBRC, DE_CIRC, DE_EXLM, DE_LESS, DE_MORE, DE_EQL, DE_AMPR, DE_ACUT }, + { _______, DE_BSLS, DE_SLSH, DE_LCBR, DE_RCBR, DE_ASTR, DE_QST, DE_LPRN, DE_RPRN, DE_MINS, DE_COLN, _______ }, + { _______, DE_HASH, DE_DLR, DE_PIPE, DE_TILD, DE_EURO, DE_PLUS, DE_PERC, DE_DQOT, DE_QUOT, DE_SCLN, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ } +}, - /* Navigation & Number Blocks - * ,-----------------------------------------------------------------------------------. - * | | PgUp | Bksp | Up | DEL | PgDn | | 7 | 8 | 9 | | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | Home | Lft | Down | Right| End | . | 4 | 5 | 6 | , | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| | Tab | Ins | Enter| | 0 | 1 | 2 | 3 | ; |Shift | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter | - * `-----------------------------------------------------------------------------------' - */ - [2] = { - { KC_NO, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_NO, DE_7, DE_8, DE_9, KC_NO, KC_NO }, - { KC_NO, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, DE_DOT, DE_4, DE_5, DE_6, DE_COMM, KC_NO }, - { DE_S, KC_NO, KC_TAB, KC_INS, KC_ENT, KC_NO, KC_0, DE_1, DE_2, DE_3, DE_SCLN, DE_S }, - { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS } - }, +/* Navigation & Number Blocks +very easy to get used to & intuituve placement +* ,-----------------------------------------------------------------------------------. +* | | PgUp | Bksp | Up | DEL | PgDn | | 7 | 8 | 9 | | | +* |------+------+------+------+------+-------------+------+------+------+------+------| +* | Tab | Home | Lft | Down | Right| End | . | 4 | 5 | 6 | , | Enter| +* |------+------+------+------+------+------|------+------+------+------+------+------| +* | Shift| | Tab | Ins | Enter| | 0 | 1 | 2 | 3 | ; |Shift | +* |------+------+------+------+------+------+------+------+------+------+------+------| +* | GUI | Ctrl | Alt | M3 | M2 | Space | M2 | M3 | | Ctrl | Esc | +* `-----------------------------------------------------------------------------------' +*/ +[2] = { + { KC_NO, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_NO, DE_7, DE_8, DE_9, KC_NO, KC_NO }, + { KC_TAB, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, DE_DOT, DE_4, DE_5, DE_6, DE_COMM, KC_ENT }, + { _______, KC_NO, KC_TAB, KC_INS, KC_ENT, KC_NO, DE_0, DE_1, DE_2, DE_3, DE_SCLN, _______ }, + { _______, _______, _______, MO(3), _______, _______, _______, _______, MO(3), _______, _______, _______ } +}, - /* Function & Media Keys - * ,-----------------------------------------------------------------------------------. - * | | | Print|Scroll|Pause | | | F7 | F8 | F9 | F12 | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | Mute | Vol- | Vol+ | | ³ | F4 | F5 | F6 | F11 | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| | Prev | Play | Next | | ² | F1 | F2 | F3 | F10 |Shift | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | GUI | Alt | M3 | | Space | | M3 | Esc | Tab |Enter | - * `-----------------------------------------------------------------------------------' - */ - [3] = { - { KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F12, KC_NO }, - { KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, DE_SQ3, KC_F4, KC_F5, KC_F6, KC_F11, KC_NO }, - { KC_TRNS, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, DE_SQ2, KC_F1, KC_F2, KC_F3, KC_F10, KC_TRNS}, - { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} - } +/* Flipped Navigation & Number Blocks for one handed use +accessed by sliding from M2 to M3 with thumb +* ,-----------------------------------------------------------------------------------. +* | | | 7 | 8 | 9 | | PgUp | Bksp | Up | DEL | PgDn | | +* |------+------+------+------+------+-------------+------+------+------+------+------| +* | Tab | . | 4 | 5 | 6 | , | Home | Left | Down | Right| End | Enter| +* |------+------+------+------+------+------|------+------+------+------+------+------| +* | Shift| 0 | 1 | 2 | 3 | ; | | Tab | Ins | Enter| |Shift | +* |------+------+------+------+------+------+------+------+------+------+------+------| +* | GUI | Ctrl | Alt | M3 | | Space | | M3 | | Ctrl | Esc | +* `-----------------------------------------------------------------------------------' +*/ + +[3] = { + { KC_NO, KC_NO, DE_7, DE_8 DE_9, KC_NO, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_NO }, + { _______, DE_DOT, DE_4, DE_5, DE_6, DE_COMM, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______ }, + { _______, DE_0, DE_1, DE_2, DE_3, DE_SCLN, KC_NO, KC_TAB, KC_INS, KC_ENT, KC_NO, _______ }, + { _______, _______, _______, _______, KC_NO, _______, _______, KC_NO, _______, _______, _______, _______ } +}, + + +/* Function & Media Keys +slide from m4 to m5 to access flipped version +* ,-----------------------------------------------------------------------------------. +* | | | Print|Scroll|Pause | | | F7 | F8 | F9 | F12 | | +* |------+------+------+------+------+-------------+------+------+------+------+------| +* | | | Mute | Vol- | Vol+ | | ³ | F4 | F5 | F6 | F11 | | +* |------+------+------+------+------+------|------+------+------+------+------+------| +* | Shift| | Prev | Play | Next | | ² | F1 | F2 | F3 | F10 |Shift | +* |------+------+------+------+------+------+------+------+------+------+------+------| +* | GUI | Ctrl | Alt | M4 | M5 | Space | M5 | M4 | | Ctrl | Esc | +* `-----------------------------------------------------------------------------------' +*/ +[4] = { + { KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F12, KC_NO }, + { KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, DE_SQ3, KC_F4, KC_F5, KC_F6, KC_F11, KC_NO }, + { _______, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, DE_SQ2, KC_F1, KC_F2, KC_F3, KC_F10, _______ }, + { _______, _______, _______, _______, MO(5), _______, _______, MO(5), _______, _______, _______, _______ } +} + + +/* flipped Function & Media Keys +* ,-----------------------------------------------------------------------------------. +* | | | F7 | F8 | F9 | | | Print|Scroll| Pause| | | +* |------+------+------+------+------+-------------+------+------+------+------+------| +* | | | F4 | F5 | F6 | ³ | | Mute | Vol- | Vol+ | | | +* |------+------+------+------+------+------|------+------+------+------+------+------| +* | Shift| | F1 | F2 | F3 | ² | | Prev | Play | Next | |Shift | +* |------+------+------+------+------+------+------+------+------+------+------+------| +* | GUI | Ctrl | Alt | | M5 | Space | M5 | | | Ctrl | Esc | +* `-----------------------------------------------------------------------------------' +*/ +[5] = { + { KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO }, + { KC_NO, KC_NO, KC_F4, KC_F5, KC_F6, DE_SQ3, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO }, + { _______, KC_NO, KC_F1, KC_F2, KC_F3, DE_SQ2, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, _______ }, + { _______, _______, _______, KC_NO, _______, _______, _______, _______, KC_NO, _______, _______, _______ } +} }; const uint16_t PROGMEM fn_actions[] = { -- cgit v1.2.3 From 32f5b34ad25e9c1a317109595a0db0e3e47f8f83 Mon Sep 17 00:00:00 2001 From: Jason Janse van Rensburg Date: Wed, 20 Jul 2016 16:58:10 +0200 Subject: reformat --- keyboards/planck/keymaps/bone2planck/keymap.c | 32 +++++++++++++-------------- 1 file changed, 16 insertions(+), 16 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/bone2planck/keymap.c b/keyboards/planck/keymaps/bone2planck/keymap.c index 765f0c770..2e20a9f6c 100644 --- a/keyboards/planck/keymaps/bone2planck/keymap.c +++ b/keyboards/planck/keymaps/bone2planck/keymap.c @@ -18,22 +18,22 @@ Bone2 wiki page: http://wiki.neo-layout.org/wiki/Bone const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Bone2 - * ,-----------------------------------------------------------------------------------. - * | Q | J | D | U | A | X | P | H | L | M | W | ẞ | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * |M1/Tab| C | T | I | E | O | B | N | R | S | G |M1/Ent| //hold for M1, tap for Tab/Enter - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| F | V | Ü | Ä | Ö | Y | Z | , | . | K |Shift | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | GUI | Ctrl | Alt | M4 | M2 | Space | M2 | M4 | | Ctrl | Esc | - * `-----------------------------------------------------------------------------------' - */ - [0] = { - { DE_Q, DE_J, DE_D, DE_U, DE_A, DE_X, DE_P, DE_H, DE_L, DE_M, DE_W, DE_SS }, - { LT(1,KC_TAB), DE_C, DE_T, DE_I, DE_E, DE_O, DE_B, DE_N, DE_R, DE_S, DE_G, LT(1,KC_ENT) }, - { KC_LSFT, DE_F, DE_V, DE_UE, DE_AE, DE_OE, DE_Y, DE_Z, DE_COMM, DE_DOT, DE_K, KC_LSFT }, - { KC_LGUI, KC_LCTL, KC_LALT, MO(4), MO(2), KC_SPC, KC_SPC, MO(2), MO(4), KC_NO, KC_RCTL, KC_ESC } +/* Bone2 +* ,-----------------------------------------------------------------------------------. +* | Q | J | D | U | A | X | P | H | L | M | W | ẞ | +* |------+------+------+------+------+-------------+------+------+------+------+------| +* |M1/Tab| C | T | I | E | O | B | N | R | S | G |M1/Ent| //hold for M1, tap for Tab/Enter +* |------+------+------+------+------+------|------+------+------+------+------+------| +* | Shift| F | V | Ü | Ä | Ö | Y | Z | , | . | K |Shift | +* |------+------+------+------+------+------+------+------+------+------+------+------| +* | GUI | Ctrl | Alt | M4 | M2 | Space | M2 | M4 | | Ctrl | Esc | +* `-----------------------------------------------------------------------------------' +*/ +[0] = { + { DE_Q, DE_J, DE_D, DE_U, DE_A, DE_X, DE_P, DE_H, DE_L, DE_M, DE_W, DE_SS }, + { LT(1,KC_TAB), DE_C, DE_T, DE_I, DE_E, DE_O, DE_B, DE_N, DE_R, DE_S, DE_G, LT(1,KC_ENT) }, + { KC_LSFT, DE_F, DE_V, DE_UE, DE_AE, DE_OE, DE_Y, DE_Z, DE_COMM, DE_DOT, DE_K, KC_LSFT }, + { KC_LGUI, KC_LCTL, KC_LALT, MO(4), MO(2), KC_SPC, KC_SPC, MO(2), MO(4), KC_NO, KC_RCTL, KC_ESC } }, /* M1 Special Characters -- cgit v1.2.3 From b0e9dbecee209a40ff1fc93ce4415d96cb0cdaba Mon Sep 17 00:00:00 2001 From: Jason Janse van Rensburg Date: Wed, 20 Jul 2016 17:05:23 +0200 Subject: fixed include paths --- keyboards/planck/keymaps/bone2planck/keymap.c | 32 +++++++++++++-------------- 1 file changed, 16 insertions(+), 16 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/bone2planck/keymap.c b/keyboards/planck/keymaps/bone2planck/keymap.c index 2e20a9f6c..ceb556425 100644 --- a/keyboards/planck/keymaps/bone2planck/keymap.c +++ b/keyboards/planck/keymaps/bone2planck/keymap.c @@ -3,9 +3,9 @@ #ifdef BACKLIGHT_ENABLE #include "backlight.h" #endif -#include "..\..\..\quantum\keymap_extras\keymap_german.h" -#include "..\..\..\quantum\keymap_common.h" -#include "..\..\..\tmk_core\common\keycode.h" +#include "..\..\..\..\quantum\keymap_extras\keymap_german.h" +#include "..\..\..\..\quantum\keymap_common.h" +#include "..\..\..\..\tmk_core\common\keycode.h" #define _______ = KC_TRNS; /* This Layout tries to emulate the Bone2 Variant of Neo2, and is intended to be used with a German QWERTZ Softwarelayout. @@ -30,10 +30,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [0] = { - { DE_Q, DE_J, DE_D, DE_U, DE_A, DE_X, DE_P, DE_H, DE_L, DE_M, DE_W, DE_SS }, + { DE_Q, DE_J, DE_D, DE_U, DE_A, DE_X, DE_P, DE_H, DE_L, DE_M, DE_W, DE_SS }, { LT(1,KC_TAB), DE_C, DE_T, DE_I, DE_E, DE_O, DE_B, DE_N, DE_R, DE_S, DE_G, LT(1,KC_ENT) }, - { KC_LSFT, DE_F, DE_V, DE_UE, DE_AE, DE_OE, DE_Y, DE_Z, DE_COMM, DE_DOT, DE_K, KC_LSFT }, - { KC_LGUI, KC_LCTL, KC_LALT, MO(4), MO(2), KC_SPC, KC_SPC, MO(2), MO(4), KC_NO, KC_RCTL, KC_ESC } + { KC_LSFT, DE_F, DE_V, DE_UE, DE_AE, DE_OE, DE_Y, DE_Z, DE_COMM, DE_DOT, DE_K, KC_LSFT }, + { KC_LGUI, KC_LCTL, KC_LALT, MO(4), MO(2), KC_SPC, KC_SPC, MO(2), MO(4), KC_NO, KC_RCTL, KC_ESC } }, /* M1 Special Characters @@ -68,8 +68,8 @@ very easy to get used to & intuituve placement * `-----------------------------------------------------------------------------------' */ [2] = { - { KC_NO, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_NO, DE_7, DE_8, DE_9, KC_NO, KC_NO }, - { KC_TAB, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, DE_DOT, DE_4, DE_5, DE_6, DE_COMM, KC_ENT }, + { KC_NO, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_NO, DE_7, DE_8, DE_9, KC_NO, KC_NO }, + { KC_TAB, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, DE_DOT, DE_4, DE_5, DE_6, DE_COMM, KC_ENT }, { _______, KC_NO, KC_TAB, KC_INS, KC_ENT, KC_NO, DE_0, DE_1, DE_2, DE_3, DE_SCLN, _______ }, { _______, _______, _______, MO(3), _______, _______, _______, _______, MO(3), _______, _______, _______ } }, @@ -88,7 +88,7 @@ accessed by sliding from M2 to M3 with thumb */ [3] = { - { KC_NO, KC_NO, DE_7, DE_8 DE_9, KC_NO, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_NO }, + { KC_NO, KC_NO, DE_7, DE_8 DE_9, KC_NO, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_NO }, { _______, DE_DOT, DE_4, DE_5, DE_6, DE_COMM, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______ }, { _______, DE_0, DE_1, DE_2, DE_3, DE_SCLN, KC_NO, KC_TAB, KC_INS, KC_ENT, KC_NO, _______ }, { _______, _______, _______, _______, KC_NO, _______, _______, KC_NO, _______, _______, _______, _______ } @@ -108,8 +108,8 @@ slide from m4 to m5 to access flipped version * `-----------------------------------------------------------------------------------' */ [4] = { - { KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F12, KC_NO }, - { KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, DE_SQ3, KC_F4, KC_F5, KC_F6, KC_F11, KC_NO }, + { KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F12, KC_NO }, + { KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, DE_SQ3, KC_F4, KC_F5, KC_F6, KC_F11, KC_NO }, { _______, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, DE_SQ2, KC_F1, KC_F2, KC_F3, KC_F10, _______ }, { _______, _______, _______, _______, MO(5), _______, _______, MO(5), _______, _______, _______, _______ } } @@ -119,17 +119,17 @@ slide from m4 to m5 to access flipped version * ,-----------------------------------------------------------------------------------. * | | | F7 | F8 | F9 | | | Print|Scroll| Pause| | | * |------+------+------+------+------+-------------+------+------+------+------+------| -* | | | F4 | F5 | F6 | ³ | | Mute | Vol- | Vol+ | | | +* | | ³ | F4 | F5 | F6 | | | Mute | Vol- | Vol+ | | | * |------+------+------+------+------+------|------+------+------+------+------+------| -* | Shift| | F1 | F2 | F3 | ² | | Prev | Play | Next | |Shift | +* | Shift| ² | F1 | F2 | F3 | | | Prev | Play | Next | |Shift | * |------+------+------+------+------+------+------+------+------+------+------+------| * | GUI | Ctrl | Alt | | M5 | Space | M5 | | | Ctrl | Esc | * `-----------------------------------------------------------------------------------' */ [5] = { - { KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO }, - { KC_NO, KC_NO, KC_F4, KC_F5, KC_F6, DE_SQ3, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO }, - { _______, KC_NO, KC_F1, KC_F2, KC_F3, DE_SQ2, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, _______ }, + { KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO }, + { KC_NO, KC_SQ3, KC_F4, KC_F5, KC_F6, KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO }, + { _______, KC_SQ2, KC_F1, KC_F2, KC_F3, KC_NO, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, _______ }, { _______, _______, _______, KC_NO, _______, _______, _______, _______, KC_NO, _______, _______, _______ } } }; -- cgit v1.2.3 From 24e4e6dd18924295a0ce0cab653be2e63008f0af Mon Sep 17 00:00:00 2001 From: milestogo Date: Wed, 20 Jul 2016 21:12:00 -0700 Subject: adding traveller keyboard --- keyboards/handwired/traveller/Makefile | 89 ++++++ keyboards/handwired/traveller/config.h | 173 ++++++++++++ .../handwired/traveller/keymaps/default/keymap.c | 305 +++++++++++++++++++++ .../handwired/traveller/keymaps/default/readme.md | 2 + keyboards/handwired/traveller/readme.md | 35 +++ keyboards/handwired/traveller/traveller.c | 61 +++++ keyboards/handwired/traveller/traveller.h | 32 +++ 7 files changed, 697 insertions(+) create mode 100644 keyboards/handwired/traveller/Makefile create mode 100644 keyboards/handwired/traveller/config.h create mode 100644 keyboards/handwired/traveller/keymaps/default/keymap.c create mode 100644 keyboards/handwired/traveller/keymaps/default/readme.md create mode 100644 keyboards/handwired/traveller/readme.md create mode 100644 keyboards/handwired/traveller/traveller.c create mode 100644 keyboards/handwired/traveller/traveller.h (limited to 'keyboards') diff --git a/keyboards/handwired/traveller/Makefile b/keyboards/handwired/traveller/Makefile new file mode 100644 index 000000000..12a4b71f4 --- /dev/null +++ b/keyboards/handwired/traveller/Makefile @@ -0,0 +1,89 @@ + +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + +# for avr upload +USB ?= /dev/cu.usbmodem1421 +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + + +ifdef TEENSY2 + OPT_DEFS += -DATREUS_TEENSY2 + ATREUS_UPLOAD_COMMAND = teensy_loader_cli -w -mmcu=$(MCU) $(TARGET).hex +else + OPT_DEFS += -DATREUS_ASTAR + OPT_DEFS += -DCATERINA_BOOTLOADER + ATREUS_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \ + avrdude -p $(MCU) -c avr109 -U flash:w:$(TARGET).hex -P $(USB) +endif +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# MCU name + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= no # Console for debug(+400) +COMMAND_ENABLE ?= no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE ?= no # USB Nkey Rollover +BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default +MIDI_ENABLE ?= no # MIDI controls +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE ?= no # Audio output on port C6 +RGBLIGHT_ENABLE = yes + +ifndef QUANTUM_DIR + include ../../../Makefile +endif + +upload: build + $(ATREUS_UPLOAD_COMMAND) + diff --git a/keyboards/handwired/traveller/config.h b/keyboards/handwired/traveller/config.h new file mode 100644 index 000000000..2b82da447 --- /dev/null +++ b/keyboards/handwired/traveller/config.h @@ -0,0 +1,173 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER You +#define PRODUCT traveller +#define DESCRIPTION A custom keyboard + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 13 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { D0, D1, D3, D2 } + // no I can't say why this order seemed like a good idea +#define MATRIX_COL_PINS { B5, D6, B7, B6, F6, B1, B3, F7, B4, E6, D7, C6, D4 } +#define UNUSED_PINS + +// LED stuff +#define RGB_DI_PIN B2 +//#define RBLIGHT_TIMER +#define RGBLED_NUM 1 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +//#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/handwired/traveller/keymaps/default/keymap.c b/keyboards/handwired/traveller/keymaps/default/keymap.c new file mode 100644 index 000000000..13d889ab8 --- /dev/null +++ b/keyboards/handwired/traveller/keymaps/default/keymap.c @@ -0,0 +1,305 @@ +#include "traveller.h" +#include "mousekey.h" +#include "action_layer.h" + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +#define _QW 0 +#define _LW 1 +#define _HI 2 +#define _NAV 4 +#define _CUR 5 +#define _FKEYS 6 +#define _TRNS 8 + +// We do the same trick for functions +#define RGBLED_TOGGLE 10 +#define _HIOUT 15 +#define _LWOUT 16 +// Macros +#define MDL 4 +#define MDR 5 +#define MUR 6 +#define MUL 3 + + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Qwerty + * ,-----------------------------------------. .-----------------------------------------. + * | NAV | ` ~ | W | E | R | T | | Y | U | I | O | - | = | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | Q | S | D | F | G | | H | J | K | L | P | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------+------| + *|ctrl/esc| A | X | C | V | B |Ctrl /| N | M | , | . | ; | ' | + * |------+------+------+------+------+------+ // +------+------+------+------+------+------| + * | Shift| Z | Del | GUI | Low | Bspc |/Enter| Spc | Hi | GUI | Alt | / |Shift | + * `------------------------------------------------------------------------------------------' + * + */ +[_QW] = KEYMAP( + F(_NAV), KC_GRV, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_MINS, KC_EQL, + KC_TAB, KC_Q, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_P, KC_BSLS, + CTL_T(KC_ESC), KC_A, KC_X, KC_C, KC_V, KC_B, KC_RCTL, KC_N, KC_M, KC_COMM, KC_DOT, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_DEL, KC_LGUI, MO(_LW), KC_BSPC, KC_ENTER, KC_SPC, MO(_HI), KC_RGUI, KC_RALT, KC_SLSH, KC_RSFT + ), + +/* LOW - numbers, missing or awkward programming keys + Doubled 1 key allows lazy reach with ring finger. + * ,-----------------------------------------. .-----------------------------------------. + * | FKeys| 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 |Ctrl-alt-del| + * |------+------+------+------+------+------| +------+------+------+------+------+------| + * | Tab | 1 | ] | ( | ) | | | * | ( | ) | [ | | | + * |------+------+------+------+------+------|------+------+------+------+------+------+------| + * | Caps | [ | | { | } | ` | /| # | { | } | | ] | | + * |------+------+------+------+------+------+ // +------+------+------+------+------+------| + * | Shift| | | | Low | |/ | | Hi | | | |Shift | + * `------------------------------------------------------------------------------------------' + * + */ + +[_LW] = KEYMAP( + F(_FKEYS), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, LCTL(LALT(KC_DEL)) , + KC_TRNS, KC_1, KC_RBRC, KC_LPRN, KC_RPRN, KC_NO, KC_ASTR, KC_LPRN, KC_RPRN, KC_LBRC, KC_NO, KC_NO, + KC_CAPS, KC_LBRC, KC_NO, KC_LCBR, KC_RCBR, KC_TILD, KC_TRNS, KC_HASH, KC_LCBR, KC_RCBR, KC_NO, KC_RBRC, KC_NO, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +), + +/* HI - Punctuation, shell and +url ://@.com row on bottom, && is opposite || ^$ are in regex order: ^.*$ +Right hand nav keys work pretty well chorded with the Right hand Hi Key + * ,-----------------------------------------. .-----------------------------------------. + * |FKEYS | ! | @ | # | $ | % | | ^ | & | * | ( | ) | + | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | ! | & | "|" | $ | % | | Vol+| Mute| | | | | + * |------+------+------+------+------+------|------+------+------+------+------+------+------| + * | CAPS | ^ | : | . | * | - | /| Vol-| Play | PgUp | Home | Up | End | + * |------+------+------+------+------+------+ // +------+------+------+------+------+------| + * | | / | | | Low | |/ | | Hi | PgDn | Left| Down | Right | + * `------------------------------------------------------------------------------------------' + * + */ + +[_HI] = KEYMAP( + F(_FKEYS), KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PLUS, + KC_TRNS, KC_EXLM, KC_AMPR, KC_PIPE, KC_DLR, KC_PERC, KC_VOLU, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO, + KC_CAPS, KC_CIRC, KC_COLN, KC_DOT, KC_ASTR, KC_MINS, KC_TRNS, KC_VOLD, KC_PPLS, KC_PGUP, KC_HOME, KC_UP, KC_END, + KC_TRNS, KC_SLSH, KC_TRNS, KC_TRNS, F(_LW), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT +), + +/* NAV - mouse & navigation +//gui left and right are line home/end, or fore & back in browser +// Mouse buttons are reversed for comfort - bigger stretch is to the right button. + + * ,-----------------------------------------. .-----------------------------------------. +* | NAV | | | Up | |Gui-> | | MwU | MS_UL| MS_U |MS_UR | |Ms Norm| +* |------+------+------+------+------+------| |------+------+------+------+------+--------| +* | |Gui<- | Left | Down |Right | C^E | | BTN3 | MS_L |MS Up | MS_R | |Ms Fast | +* |------+------+------+------+------+------|------|------+------+------+------+------+--------| +* | | C^A | GUI X| GUI C| GUI_V| |Enter/| MWD | M_DL |MS Dwn|MS_DR | Up |Ms Slow | +* |------+------+------+------+------+------+ // +------+------+------+------+------+------| +* | | GuiZ | | | Low | |/ButnR|ButnL | Hi | | Left | Down | Right | +* `------------------------------------------------------------------------------------------' +*/ + +[_NAV] = KEYMAP( + F(_NAV), KC_NO, KC_NO, KC_UP, KC_NO, RGUI(KC_RIGHT), KC_WH_U, M(MUL), KC_MS_U, M(MUR), KC_NO, KC_ACL2, + KC_TRNS, RGUI(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_E), KC_BTN3, KC_MS_L, KC_MS_U, KC_MS_R, KC_NO, KC_ACL1, + KC_TRNS, LCTL(KC_A), LGUI(KC_X),RGUI(KC_C), RGUI(KC_V),KC_NO, KC_ENTER, KC_WH_D, M(MDL), KC_MS_D, M(MDR), KC_UP, KC_ACL0, + KC_TRNS, RGUI(KC_Z), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN2, KC_BTN1, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT +), + +/* FKEYS - Funtion keys & mac stuff + * ,-----------------------------------------. .-----------------------------------------. + * | FKEYS| F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | Ctrl | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | F11 | F12 | F13 | F14 | F15 | Alt | + * |------+------+------+------+------+------|------+------+------+------+------+------+------| + * |Qwerty| | | | | | /| | | | | | Del | + * |------+------+------+------+------+------+ // +------+------+------+------+------+------| + * | . |RGBTog| . | | LO | Bspc |/ | | HI | | | | | + * `------------------------------------------------------------------------------------------' + * + */ + +[_FKEYS] = KEYMAP( + F(_FKEYS), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_RCTL, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_LALT , + F(_QW), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL, + KC_TRNS, F(RGBLED_TOGGLE), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +), + + +/* TRNS - skeleton for laters + * ,-----------------------------------------. .-----------------------------------------. + * | . | . | . | . | . | . | | ^ | & | * | ( | ) | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | . | . | . | . | . | . | | 6 | 7 | 8 | 9 | 0 | | + * |------+------+------+------+------+------|------+------+------+------+------+------+------| + * | . | . | . | . | . | . | /| | | | . | ; | " | + * |------+------+------+------+------+------+ // +------+------+------+------+------+------| + * | . | . | . | GUI | LO | . |/ | Spc | HI | GUI | M0 | / |LSFT | + * `------------------------------------------------------------------------------------------' + * + */ + +[_TRNS] = { + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, 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[] = { + [_QW] = ACTION_LAYER_ON(_QW,ON_RELEASE), // return to QWERTY layer + [_LW] = ACTION_LAYER_TAP_TOGGLE(_LW), // Turn on LW when holding, or tap 3 times to switch + [_HI] = ACTION_LAYER_TAP_TOGGLE(_HI), // Turn on LW when holding, or tap 3 times to switch + [_NAV] = ACTION_LAYER_TOGGLE(_NAV), + [_FKEYS] = ACTION_LAYER_TOGGLE(_FKEYS), + [_LWOUT] = ACTION_LAYER_OFF(_LW,ON_RELEASE), + [_HIOUT] = ACTION_LAYER_OFF(_HI,ON_RELEASE), + + // Functions + [RGBLED_TOGGLE] = ACTION_FUNCTION(RGBLED_TOGGLE), + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + + // from algernon's ErgoDox EZ layout, + case MUL: + if (record->event.pressed) { + mousekey_on(KC_MS_UP); + mousekey_on(KC_MS_LEFT); + } else { + mousekey_off(KC_MS_UP); + mousekey_off(KC_MS_LEFT); + } + mousekey_send(); + break; + + case MUR: + if (record->event.pressed) { + mousekey_on(KC_MS_UP); + mousekey_on(KC_MS_RIGHT); + } else { + mousekey_off(KC_MS_UP); + mousekey_off(KC_MS_RIGHT); + } + mousekey_send(); + break; + + case MDL: + if (record->event.pressed) { + mousekey_on(KC_MS_DOWN); + mousekey_on(KC_MS_LEFT); + } else { + mousekey_off(KC_MS_DOWN); + mousekey_off(KC_MS_LEFT); + } + mousekey_send(); + break; + + case MDR: + if (record->event.pressed) { + mousekey_on(KC_MS_DOWN); + mousekey_on(KC_MS_RIGHT); + } else { + mousekey_off(KC_MS_DOWN); + mousekey_off(KC_MS_RIGHT); + } + mousekey_send(); + break; + + + } + return MACRO_NONE; +}; + + + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + switch (id) { + case RGBLED_TOGGLE: + //led operations + if (record->event.pressed) { + rgblight_toggle(); + } + break; + } +} + + + +void LayerLEDSet(uint8_t layr) { + + switch (layr) { + case _QW: + rgblight_setrgb(0,20, 0); // dim green + break; + case _LW: + // deep purple + rgblight_setrgb(20,0,35); + break; + case _HI: + // light blue + rgblight_setrgb(0,20,20); + break; + case _NAV: + // Yellowy orange + rgblight_setrgb(25,20,0); // brighter + break; + case _FKEYS: + // RED + rgblight_setrgb(20,0,0); // brighter + break; + default: + rgblight_setrgb(20,2,20);//error + break; + } + + return; + +} + +void matrix_init_user(void) { +} + +// Bleah globals need to be initialized. +uint8_t old_layer=_QW; + +void matrix_scan_user(void) { + uint8_t layer = biton32(layer_state); + if (old_layer != layer) { + LayerLEDSet(layer); + old_layer=layer; + } +} + + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { + +} + + diff --git a/keyboards/handwired/traveller/keymaps/default/readme.md b/keyboards/handwired/traveller/keymaps/default/readme.md new file mode 100644 index 000000000..7ddc40b3c --- /dev/null +++ b/keyboards/handwired/traveller/keymaps/default/readme.md @@ -0,0 +1,2 @@ +# The default keymap for handwired/traveller +this is a kitchen sink build diff --git a/keyboards/handwired/traveller/readme.md b/keyboards/handwired/traveller/readme.md new file mode 100644 index 000000000..646844b1d --- /dev/null +++ b/keyboards/handwired/traveller/readme.md @@ -0,0 +1,35 @@ +traveler keyboard firmware +====================== + +## Traveller Specific Info ## +The traveller is a varient on the atreus keyboard. +Like the Atreus, it is designed to be a good compromise between size and ergonomics. + +key differences are +- an additional column for each pinky +- an RGB LED in the center to show the current layer +- more finger stagger, splay angle and contoured keycaps (F2 profile for space key). + +You can make your own traveller keyboard by using the openscad tools from the atreus repository, and adding a hole for the LED to shine through. + +## Quantum MK Firmware + +For the full Quantum feature list, see [the parent README.md](/README.md). + +## Building + +Download or clone the whole firmware and navigate to the keyboard/traveler folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default +To build with the default keymap, simply run `make`. + +### Other Keymaps +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` and see keymap document (you can find in top README.md) and existent keymap files. + +To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: +``` +$ make KEYMAP=[default|jack|] +``` +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboards/handwired/traveller/traveller.c b/keyboards/handwired/traveller/traveller.c new file mode 100644 index 000000000..9d2534130 --- /dev/null +++ b/keyboards/handwired/traveller/traveller.c @@ -0,0 +1,61 @@ +#include "traveller.h" + +__attribute__ ((weak)) +void matrix_init_user(void) { + // leave this function blank - it can be defined in a keymap file +}; + +__attribute__ ((weak)) +void matrix_scan_user(void) { + // leave this function blank - it can be defined in a keymap file +} + +__attribute__ ((weak)) +void process_action_user(keyrecord_t *record) { + // leave this function blank - it can be defined in a keymap file +} + +__attribute__ ((weak)) +void led_set_user(uint8_t usb_led) { + // leave this function blank - it can be defined in a keymap file +} + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + +#ifdef RGBLIGHT_ENABLE + rgblight_init(); + rgblight_mode(1); // solid, no timer + rgblight_setrgb(0,20,0);// dim green, happens to be same as _QW +#endif + +// Turn status LED on + DDRC |= (1<<7); + PORTC |= (1<<7); + + matrix_init_user(); +} + + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + return process_record_user(keycode, record); +} + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + + led_set_user(usb_led); +} + + diff --git a/keyboards/handwired/traveller/traveller.h b/keyboards/handwired/traveller/traveller.h new file mode 100644 index 000000000..972a1a94a --- /dev/null +++ b/keyboards/handwired/traveller/traveller.h @@ -0,0 +1,32 @@ +#ifndef TRAVELLER_H +#define TRAVELLER_H + +#include "quantum.h" +#include "led.h" + +#ifdef RGBLIGHT_ENABLE + #include "rgblight.h" +#endif +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif + + + +// This a shortcut to help you visually see your layout. +// The first section contains all of the arguements +// The second converts the arguments into a two-dimensional array +#define KEYMAP( \ + k00, k01, k02, k03, k04, k05, k07, k08, k09, k0a, k0b, k0c, \ + k10, k11, k12, k13, k14, k15, k17, k18, k19, k1a, k1b, k1c, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, KC_NO, k07, k08, k09, k0a, k0b, k0c }, \ + { k10, k11, k12, k13, k14, k15, KC_NO, k17, k18, k19, k1a, k1b, k1c }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c } \ +} + +#endif -- cgit v1.2.3 From 81fe3d962c1a04d180df89c0e052cc487b1bbc8a Mon Sep 17 00:00:00 2001 From: Seth Chandler Date: Sat, 23 Jul 2016 20:37:41 -0400 Subject: update sethbc keymap --- keyboards/satan/keymaps/sethbc/keymap.c | 23 +++++++++++++---------- keyboards/satan/keymaps/sethbc/readme.md | 3 +++ 2 files changed, 16 insertions(+), 10 deletions(-) create mode 100644 keyboards/satan/keymaps/sethbc/readme.md (limited to 'keyboards') diff --git a/keyboards/satan/keymaps/sethbc/keymap.c b/keyboards/satan/keymaps/sethbc/keymap.c index f8991f9fd..82c779081 100644 --- a/keyboards/satan/keymaps/sethbc/keymap.c +++ b/keyboards/satan/keymaps/sethbc/keymap.c @@ -10,6 +10,9 @@ #define _BL 0 #define _FL 1 +// Fillers to make layering more clear +#define _______ KC_TRNS + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap _BL: (Base Layer) Default Layer * ,-----------------------------------------------------------. @@ -33,17 +36,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FL] = KEYMAP_HHKB( #ifdef RGBLIGHT_ENABLE - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, RESET, \ - KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC, \ - KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RESET, \ + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, KC_DEL, \ + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \ + _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______), #else - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, RESET, \ - KC_CAPS, KC_TRNS, RGB_TOG,RGB_MOD,RGB_HUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_BSPC, \ - KC_TRNS, KC_VOLD, RGB_HUD,RGB_SAI,RGB_SAD, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \ - KC_TRNS, RGB_VAI,RGB_VAD,KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, RESET, \ + KC_CAPS, _______, RGB_TOG,RGB_MOD,RGB_HUI, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, KC_DEL, \ + _______, KC_VOLD, RGB_HUD,RGB_SAI,RGB_SAD, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \ + _______, RGB_VAI,RGB_VAD,_______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______), #endif }; diff --git a/keyboards/satan/keymaps/sethbc/readme.md b/keyboards/satan/keymaps/sethbc/readme.md new file mode 100644 index 000000000..ed0eb8701 --- /dev/null +++ b/keyboards/satan/keymaps/sethbc/readme.md @@ -0,0 +1,3 @@ +# sethbc's Satan GH60 layout + +HHKB style split right shift and split backspace. Largely based on the HHKB layout. -- cgit v1.2.3 From ef533be2d63602c85b58edf0376e142e74273e2e Mon Sep 17 00:00:00 2001 From: Seth Chandler Date: Sat, 23 Jul 2016 20:52:27 -0400 Subject: cleanup default layout --- keyboards/satan/keymaps/default/Makefile | 21 ++++++++++++++++++++ keyboards/satan/keymaps/default/keymap.c | 32 ++++++++++++++++--------------- keyboards/satan/keymaps/default/readme.md | 1 + 3 files changed, 39 insertions(+), 15 deletions(-) create mode 100644 keyboards/satan/keymaps/default/Makefile create mode 100644 keyboards/satan/keymaps/default/readme.md (limited to 'keyboards') diff --git a/keyboards/satan/keymaps/default/Makefile b/keyboards/satan/keymaps/default/Makefile new file mode 100644 index 000000000..2a7ff2779 --- /dev/null +++ b/keyboards/satan/keymaps/default/Makefile @@ -0,0 +1,21 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/satan/keymaps/default/keymap.c b/keyboards/satan/keymaps/default/keymap.c index 35dbbb77b..3806137e7 100644 --- a/keyboards/satan/keymaps/default/keymap.c +++ b/keyboards/satan/keymaps/default/keymap.c @@ -11,6 +11,8 @@ #define _BL 0 #define _FL 1 +#define _______ KC_TRNS + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap _BL: (Base Layer) Default Layer * ,-----------------------------------------------------------. @@ -26,11 +28,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------' */ [_BL] = KEYMAP( - F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \ - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, \ - KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FL), KC_RCTL), + F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC,KC_BSLS, \ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, \ + KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI, MO(_FL),KC_RCTL), /* Keymap _FL: Function Layer * ,-----------------------------------------------------------. @@ -47,17 +49,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_FL] = KEYMAP( #ifdef RGBLIGHT_ENABLE - KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, \ - KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_INC, BL_TOGG, \ - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS,RGB_TOG,RGB_MOD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + KC_GRV, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,RESET, \ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, BL_DEC,BL_INC, BL_TOGG, \ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ + _______,RGB_TOG,RGB_MOD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD,_______,_______,_______, \ + _______,_______,_______, _______, _______,_______,_______, _______), #else - KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, \ - KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_INC, BL_TOGG, \ - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + KC_GRV, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,RESET, \ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, BL_DEC, BL_INC,BL_TOGG, \ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \ + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \ + _______,_______,_______, _______, _______,_______,_______,_______), #endif }; diff --git a/keyboards/satan/keymaps/default/readme.md b/keyboards/satan/keymaps/default/readme.md new file mode 100644 index 000000000..c366147df --- /dev/null +++ b/keyboards/satan/keymaps/default/readme.md @@ -0,0 +1 @@ +# default Satan GH60 layout -- cgit v1.2.3 From 75f092271135ac5603eff93cd60bcd95d675278d Mon Sep 17 00:00:00 2001 From: Seth Chandler Date: Sat, 23 Jul 2016 20:55:20 -0400 Subject: fix typo in readme and satan.h --- keyboards/satan/readme.md | 2 +- keyboards/satan/satan.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboards') diff --git a/keyboards/satan/readme.md b/keyboards/satan/readme.md index aa301f020..aaf189746 100644 --- a/keyboards/satan/readme.md +++ b/keyboards/satan/readme.md @@ -1,4 +1,4 @@ -Clueboard keyboard firmware +Satan GH60 keyboard firmware ====================== TODO: to be updated. diff --git a/keyboards/satan/satan.h b/keyboards/satan/satan.h index fa1711915..513446bf3 100644 --- a/keyboards/satan/satan.h +++ b/keyboards/satan/satan.h @@ -3,7 +3,7 @@ #include "quantum.h" -/* Clueboard matrix layout +/* Satan GH60 matrix layout * ,-----------------------------------------------------------. * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d | * |-----------------------------------------------------------| -- cgit v1.2.3 From b5761df57b024c29c69b24552fe1d43c49ac049d Mon Sep 17 00:00:00 2001 From: Jonathan Lucas Date: Sat, 23 Jul 2016 18:47:36 -0700 Subject: Create CMD-Preonic Keymap This is very Alpha-Mode, and has not been tested or even Made yet.--- keyboards/preonic/keymaps/CMD-Preonic/keymap.c | 322 +++++++++++++++++++++++++ 1 file changed, 322 insertions(+) create mode 100644 keyboards/preonic/keymaps/CMD-Preonic/keymap.c (limited to 'keyboards') diff --git a/keyboards/preonic/keymaps/CMD-Preonic/keymap.c b/keyboards/preonic/keymaps/CMD-Preonic/keymap.c new file mode 100644 index 000000000..c7a5be121 --- /dev/null +++ b/keyboards/preonic/keymaps/CMD-Preonic/keymap.c @@ -0,0 +1,322 @@ +#include "preonic.h" +#include "action_layer.h" +#include "eeconfig.h" +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _GAME 3 +#define _NUMPAD 13 +#define _LOWER 14 +#define _RAISE 15 +#define _ADJUST 16 + +// Macro name shortcuts +#define QWERTY M(_QWERTY) +#define COLEMAK M(_COLEMAK) +#define DVORAK M(_DVORAK) +#define GAME M(_GAME) +#define NUMPAD M(_NUMPAD) +#define LOWER M(_LOWER) +#define RAISE M(_RAISE) +#define M_BL 5 + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space | Raise| - | = | [ | ] | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = { + {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH}, + {LT(_RAISE, KC_ENT), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_MINUS, KC_EQUAL, KC_LBRC, KC_RBRC} +}, + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space | Raise| - | = | [ | ] | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = { + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, _______}, + {_______, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {_______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +}, + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | " | , | . | P | Y | F | G | C | R | L | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space | Raise| - | = | [ | ] | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = { + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, _______}, + {_______, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, _______}, + {_______, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +}, + +/* GAME + * ,-----------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | CAPS | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | XXX | Lower | Space | Raise| - | = | [ | ] | + * `-----------------------------------------------------------------------------------' + */ +[_GAME] = { + {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH}, + {KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {_______, _______, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______} +}, + +/* NUMPAD + * ,-----------------------------------------------------------------------------------. + * | Esc | / | * | - | 4 | 5 | 6 | 7 | 8 | 9 | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | 7 | 8 | 9 | + | R | T | Y | U | I | O | P | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | 4 | 5 | 6 | + | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | 1 | 2 | 3 | Enter| V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | 0 | 0 | . | Enter| Lower| Space | Raise| - | = | [ | ] | + * `-----------------------------------------------------------------------------------' + */ +[_NUMPAD] = { + {KC_ESC, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, _______, _______, _______, _______, _______, _______, _______, _______}, + {KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, _______, _______, _______, _______, _______, _______, _______, _______}, + {KC_KP4, KC_KP_5, KC_KP_6, KC_KP_PLUS, _______, _______, _______, _______, _______, _______, _______, _______}, + {KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, _______, _______, _______, _______, _______, _______, _______, _______}, + {KC_KP_0, KC_KP_0, KC_KP_DOT, KC_KP_ENTER, _______, _______, _______, _______, _______, _______, _______, _______}, +}, +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Mute | BkSpc| Up | Del | Forwd| MBtn1| MUp| MBtn2| / | 7 | 8 | 9 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Left | Down | Right| Refr MLeft| MDn |MRight| * | 4 | 5 | 6 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Vol+| Prev | Play | Next | Back | MWDn| MBtn3| MWUp | - | 1 | 2 | 3 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Vol- | Pause| Ins | Print| | | | + | Enter| 0 | . | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = { + {KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL}, + {KC_MUTE, KC_BSPC, KC_UP, KC_DEL, KC_WWW_FORWARD, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, KC_KP_SLASH, KC_KP_7, KC_KP_8, KC_KP_9}, + {_______, KC_LEFT, KC_DOWN, KC_RIGHT, KC_WWW_REFRESH, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_KP_ASTERISK, KC_KP4, KC_KP_5, KC_KP_6}, + {KC_VOLU, KC_MPRV, KC_MPLY, KC_MNXT, KC_WWW_BACK, KC_MS_WH_DOWN, KC_MS_BTN3, KC_MS_WH_UP, KC_KP_MINUS, KC_KP_1, KC_KP_2, KC_KP_3}, + {KC_VOLD, KC_PAUSE, KC_INS, KC_PSCREEN, _______, _______, _______, _______, KC_KP_PLUS, KC_KP_ENTER, KC_KP_0, KC_KP_DOT} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Bksp | PgUp | Del | | | | PgUp | Up | PgDn | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Home | PgDn | End | | | Home | Left | Down | Right| ] | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | End | | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = { + {KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {_______, KC_BSPC, KC_PGUP, KC_DEL, _______, _______, _______, KC_PGUP, KC_UP, _______, _______, _______}, + {_______, KC_HOME, KC_PGDN, KC_END, _______, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, KC_END, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +}, + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | |qwerty|ColMak|Dvorak| | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | |AGNorm|AGSwap| | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | |Aud On|AudOff|MidiOn|MdiOff| | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | |Voice-|Voice+|Mus On|MusOff| Sleep| Wake | Arrow| Game | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | Reset | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = { + {_______, _______, QWERTY, COLEMAK, DVORAK, _______, _______, _______, _______, _______, _______, _______}, + {_______, RESET, _______, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, _______, KC_DEL}, + {_______, _______, _______, AU_ON, AU_OFF, MI_ON, MI_OFF, QWERTY, COLEMAK, DVORAK, _______, _______}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, KC_SYSTEM_SLEEP, KC_SYSTEM_WAKE, ARROW, GAME, _______, _______, _______}, + {_______, _______, _______, _______, _______, RESET, RESET, _______, _______, _______, _______, _______} +} + + +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +#ifdef AUDIO_ENABLE +float start_up[][2] = { + {440.0*pow(2.0,(14)/12.0), 20}, + {440.0*pow(2.0,(26)/12.0), 8}, + {440.0*pow(2.0,(18)/12.0), 20}, + {440.0*pow(2.0,(26)/12.0), 8} +}; + +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); + +float goodbye[][2] = SONG(GOODBYE_SOUND); +#endif + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case _QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_qwerty, false, 0); + #endif + persistant_default_layer_set(1UL<<_QWERTY); + } + break; + case _COLEMAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_colemak, false, 0); + #endif + persistant_default_layer_set(1UL<<_COLEMAK); + } + break; + case _DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_dvorak, false, 0); + #endif + persistant_default_layer_set(1UL<<_DVORAK); + } + break; + case _GAME: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_colemak, false, 0); + #endif + persistant_default_layer_set(1UL<<_GAME); + } + break; + case _NUMPAD: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_dvorak, false, 0); + #endif + persistant_default_layer_set(1UL<<_NUMPAD); + } + break; + case _LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + break; + case _RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + break; + case M_BL: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + + +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + _delay_ms(20); // gets rid of tick + PLAY_NOTE_ARRAY(start_up, false, 0); + #endif +} + +#ifdef AUDIO_ENABLE + +void play_goodbye_tone() +{ + PLAY_NOTE_ARRAY(goodbye, false, 0); + _delay_ms(150); +} + +#endif -- cgit v1.2.3 From 3c7075011b93875ad74b7cfdd66eb009b972e0ed Mon Sep 17 00:00:00 2001 From: Jonathan Lucas Date: Sat, 23 Jul 2016 18:50:41 -0700 Subject: Create Makefile This is untested, use caution.--- keyboards/preonic/keymaps/CMD-Preonic/makefile | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 keyboards/preonic/keymaps/CMD-Preonic/makefile (limited to 'keyboards') diff --git a/keyboards/preonic/keymaps/CMD-Preonic/makefile b/keyboards/preonic/keymaps/CMD-Preonic/makefile new file mode 100644 index 000000000..2f7787e86 --- /dev/null +++ b/keyboards/preonic/keymaps/CMD-Preonic/makefile @@ -0,0 +1,23 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif -- cgit v1.2.3 From 9b3708f830ed06f74e555decebbcc0d5d152ffe3 Mon Sep 17 00:00:00 2001 From: Jonathan Lucas Date: Sat, 23 Jul 2016 18:52:52 -0700 Subject: Init Readme This needs a better description.--- keyboards/preonic/keymaps/CMD-Preonic/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 keyboards/preonic/keymaps/CMD-Preonic/README.md (limited to 'keyboards') diff --git a/keyboards/preonic/keymaps/CMD-Preonic/README.md b/keyboards/preonic/keymaps/CMD-Preonic/README.md new file mode 100644 index 000000000..91fa4adeb --- /dev/null +++ b/keyboards/preonic/keymaps/CMD-Preonic/README.md @@ -0,0 +1 @@ +# CMD-Preonic - This keymapping aims to increase productivity, specifically for programmer's who use Text editors like SublimeText and Atom by maximizing usage of the left-hand and function layers. -- cgit v1.2.3 From fbafb9449e381858d19d8a9a7436ee6b5a078cf3 Mon Sep 17 00:00:00 2001 From: commandlinedesign Date: Sat, 23 Jul 2016 19:32:02 -0700 Subject: Resolved errors --- keyboards/preonic/keymaps/CMD-Preonic/keymap.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) (limited to 'keyboards') diff --git a/keyboards/preonic/keymaps/CMD-Preonic/keymap.c b/keyboards/preonic/keymaps/CMD-Preonic/keymap.c index c7a5be121..f0bcacb41 100644 --- a/keyboards/preonic/keymaps/CMD-Preonic/keymap.c +++ b/keyboards/preonic/keymaps/CMD-Preonic/keymap.c @@ -13,6 +13,7 @@ #define _COLEMAK 1 #define _DVORAK 2 #define _GAME 3 +#define _ARROW 12 #define _NUMPAD 13 #define _LOWER 14 #define _RAISE 15 @@ -23,6 +24,7 @@ #define COLEMAK M(_COLEMAK) #define DVORAK M(_DVORAK) #define GAME M(_GAME) +#define ARROW M(_ARROW) #define NUMPAD M(_NUMPAD) #define LOWER M(_LOWER) #define RAISE M(_RAISE) @@ -47,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| Ctrl | Alt | GUI |Lower | Space | Raise| - | = | [ | ] | * `-----------------------------------------------------------------------------------' */ -[_QWERTY] = { +[_QWERTY] = { {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH}, {LT(_RAISE, KC_ENT), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, @@ -134,10 +136,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_NUMPAD] = { {KC_ESC, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, _______, _______, _______, _______, _______, _______, _______, _______}, {KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, _______, _______, _______, _______, _______, _______, _______, _______}, - {KC_KP4, KC_KP_5, KC_KP_6, KC_KP_PLUS, _______, _______, _______, _______, _______, _______, _______, _______}, + {KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, _______, _______, _______, _______, _______, _______, _______, _______}, {KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, _______, _______, _______, _______, _______, _______, _______, _______}, {KC_KP_0, KC_KP_0, KC_KP_DOT, KC_KP_ENTER, _______, _______, _______, _______, _______, _______, _______, _______}, -}, +}, /* Lower * ,-----------------------------------------------------------------------------------. * | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | Del | @@ -146,7 +148,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | | Left | Down | Right| Refr MLeft| MDn |MRight| * | 4 | 5 | 6 | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Vol+| Prev | Play | Next | Back | MWDn| MBtn3| MWUp | - | 1 | 2 | 3 | + * | Vol+| Prev | Play | Next | Back | MWDn| MBtn3| MWUp | - | 1 | 2 | 3 | * |------+------+------+------+------+------+------+------+------+------+------+------| * | Vol- | Pause| Ins | Print| | | | + | Enter| 0 | . | * `-----------------------------------------------------------------------------------' @@ -154,7 +156,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LOWER] = { {KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL}, {KC_MUTE, KC_BSPC, KC_UP, KC_DEL, KC_WWW_FORWARD, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, KC_KP_SLASH, KC_KP_7, KC_KP_8, KC_KP_9}, - {_______, KC_LEFT, KC_DOWN, KC_RIGHT, KC_WWW_REFRESH, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_KP_ASTERISK, KC_KP4, KC_KP_5, KC_KP_6}, + {_______, KC_LEFT, KC_DOWN, KC_RIGHT, KC_WWW_REFRESH, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_KP_ASTERISK, KC_KP_4, KC_KP_5, KC_KP_6}, {KC_VOLU, KC_MPRV, KC_MPLY, KC_MNXT, KC_WWW_BACK, KC_MS_WH_DOWN, KC_MS_BTN3, KC_MS_WH_UP, KC_KP_MINUS, KC_KP_1, KC_KP_2, KC_KP_3}, {KC_VOLD, KC_PAUSE, KC_INS, KC_PSCREEN, _______, _______, _______, _______, KC_KP_PLUS, KC_KP_ENTER, KC_KP_0, KC_KP_DOT} }, @@ -188,7 +190,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | |Aud On|AudOff|MidiOn|MdiOff| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | |Voice-|Voice+|Mus On|MusOff| Sleep| Wake | Arrow| Game | | | | + * | |Voice-|Voice+|Mus On|MusOff| Sleep| Wake | Arrow| Game |NUMPAD| | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | Reset | | | | | | * `-----------------------------------------------------------------------------------' @@ -197,7 +199,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {_______, _______, QWERTY, COLEMAK, DVORAK, _______, _______, _______, _______, _______, _______, _______}, {_______, RESET, _______, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, _______, KC_DEL}, {_______, _______, _______, AU_ON, AU_OFF, MI_ON, MI_OFF, QWERTY, COLEMAK, DVORAK, _______, _______}, - {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, KC_SYSTEM_SLEEP, KC_SYSTEM_WAKE, ARROW, GAME, _______, _______, _______}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, KC_SYSTEM_SLEEP, KC_SYSTEM_WAKE, ARROW, GAME, NUMPAD, _______, _______}, {_______, _______, _______, _______, _______, RESET, RESET, _______, _______, _______, _______, _______} } @@ -271,6 +273,14 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) persistant_default_layer_set(1UL<<_NUMPAD); } break; + case _ARROW: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_colemak, false, 0); + #endif + persistant_default_layer_set(1UL<<_LOWER); + } + break; case _LOWER: if (record->event.pressed) { layer_on(_LOWER); -- cgit v1.2.3 From c1fb82623c8075bb375f31f4399c47e8e18c521b Mon Sep 17 00:00:00 2001 From: commandlinedesign Date: Sat, 23 Jul 2016 20:02:45 -0700 Subject: Tested, resolved Mouse issue, resolved numpad issue --- keyboards/preonic/keymaps/CMD-Preonic/keymap.c | 30 +++++++++++++------------- 1 file changed, 15 insertions(+), 15 deletions(-) (limited to 'keyboards') diff --git a/keyboards/preonic/keymaps/CMD-Preonic/keymap.c b/keyboards/preonic/keymaps/CMD-Preonic/keymap.c index f0bcacb41..26384795f 100644 --- a/keyboards/preonic/keymaps/CMD-Preonic/keymap.c +++ b/keyboards/preonic/keymaps/CMD-Preonic/keymap.c @@ -50,11 +50,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_QWERTY] = { - {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH}, - {LT(_RAISE, KC_ENT), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_MINUS, KC_EQUAL, KC_LBRC, KC_RBRC} + {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH}, + {LT(_RAISE, KC_ENT), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, LT(_LOWER, KC_SPC), KC_SPC, RAISE, KC_MINUS, KC_EQUAL, KC_LBRC, KC_RBRC} }, /* Colemak @@ -134,11 +134,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_NUMPAD] = { - {KC_ESC, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, _______, _______, _______, _______, _______, _______, _______, _______}, - {KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, _______, _______, _______, _______, _______, _______, _______, _______}, - {KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, _______, _______, _______, _______, _______, _______, _______, _______}, - {KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, _______, _______, _______, _______, _______, _______, _______, _______}, - {KC_KP_0, KC_KP_0, KC_KP_DOT, KC_KP_ENTER, _______, _______, _______, _______, _______, _______, _______, _______}, + {KC_ESC, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______, _______, _______, _______, _______, _______}, + {KC_P7, KC_P8, KC_P9, KC_PPLS, _______, _______, _______, _______, _______, _______, _______, _______}, + {KC_P4, KC_P5, KC_P6, KC_PPLS, _______, _______, _______, _______, _______, _______, _______, _______}, + {KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, _______, _______, _______, _______, _______, _______}, + {KC_P0, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______, _______, _______, _______}, }, /* Lower * ,-----------------------------------------------------------------------------------. @@ -154,11 +154,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_LOWER] = { - {KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL}, - {KC_MUTE, KC_BSPC, KC_UP, KC_DEL, KC_WWW_FORWARD, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, KC_KP_SLASH, KC_KP_7, KC_KP_8, KC_KP_9}, - {_______, KC_LEFT, KC_DOWN, KC_RIGHT, KC_WWW_REFRESH, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_KP_ASTERISK, KC_KP_4, KC_KP_5, KC_KP_6}, - {KC_VOLU, KC_MPRV, KC_MPLY, KC_MNXT, KC_WWW_BACK, KC_MS_WH_DOWN, KC_MS_BTN3, KC_MS_WH_UP, KC_KP_MINUS, KC_KP_1, KC_KP_2, KC_KP_3}, - {KC_VOLD, KC_PAUSE, KC_INS, KC_PSCREEN, _______, _______, _______, _______, KC_KP_PLUS, KC_KP_ENTER, KC_KP_0, KC_KP_DOT} + {KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL}, + {KC_MUTE, KC_BSPC, KC_UP, KC_DEL, KC_WWW_FORWARD, KC_BTN1, KC_MS_U, KC_BTN2, KC_PSLS, KC_P7, KC_P8, KC_P9}, + {_______, KC_LEFT, KC_DOWN, KC_RIGHT, KC_WWW_REFRESH, KC_MS_L, KC_MS_D, KC_MS_R, KC_PAST, KC_P4, KC_P5, KC_P6}, + {KC_VOLU, KC_MPRV, KC_MPLY, KC_MNXT, KC_WWW_BACK, KC_WH_D, KC_BTN3, KC_WH_U, KC_PMNS, KC_P1, KC_P2, KC_P3}, + {KC_VOLD, KC_PAUSE, KC_INS, KC_PSCREEN, _______, _______, _______, _______, KC_PPLS, KC_PENT, KC_P0, KC_PDOT} }, /* Raise -- cgit v1.2.3 From 4480a74a4b815d62de18e35016b0fbe5d59b9c75 Mon Sep 17 00:00:00 2001 From: commandlinedesign Date: Sat, 23 Jul 2016 21:02:23 -0700 Subject: Arrow key fn layer shouldnt overwrite Ctrl key. Better Print Screen position --- keyboards/preonic/keymaps/CMD-Preonic/keymap.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'keyboards') diff --git a/keyboards/preonic/keymaps/CMD-Preonic/keymap.c b/keyboards/preonic/keymaps/CMD-Preonic/keymap.c index 26384795f..287974dab 100644 --- a/keyboards/preonic/keymaps/CMD-Preonic/keymap.c +++ b/keyboards/preonic/keymaps/CMD-Preonic/keymap.c @@ -150,7 +150,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | Vol+| Prev | Play | Next | Back | MWDn| MBtn3| MWUp | - | 1 | 2 | 3 | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Vol- | Pause| Ins | Print| | | | + | Enter| 0 | . | + * | Vol- | | | | | | | + | Enter| 0 | . | * `-----------------------------------------------------------------------------------' */ [_LOWER] = { @@ -169,16 +169,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | | Home | PgDn | End | | | Home | Left | Down | Right| ] | \ | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | End | | | |Enter | + * | | Pause| Ins | | | Print|Screen| End | | | |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | + * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ [_RAISE] = { {KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, {_______, KC_BSPC, KC_PGUP, KC_DEL, _______, _______, _______, KC_PGUP, KC_UP, _______, _______, _______}, {_______, KC_HOME, KC_PGDN, KC_END, _______, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, KC_END, _______, _______, _______, _______}, + {_______, KC_PAUSE, KC_INS, _______, KC_PSCR, KC_PSCR, _______, KC_END, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} }, -- cgit v1.2.3 From c826bcfc3969cba4a699da329dc146b9944fce6b Mon Sep 17 00:00:00 2001 From: commandlinedesign Date: Sat, 23 Jul 2016 21:08:00 -0700 Subject: Did a derp and forgot to set Trans on Arrow layer --- keyboards/preonic/keymaps/CMD-Preonic/keymap.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'keyboards') diff --git a/keyboards/preonic/keymaps/CMD-Preonic/keymap.c b/keyboards/preonic/keymaps/CMD-Preonic/keymap.c index 287974dab..5d217e261 100644 --- a/keyboards/preonic/keymaps/CMD-Preonic/keymap.c +++ b/keyboards/preonic/keymaps/CMD-Preonic/keymap.c @@ -154,11 +154,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_LOWER] = { - {KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL}, - {KC_MUTE, KC_BSPC, KC_UP, KC_DEL, KC_WWW_FORWARD, KC_BTN1, KC_MS_U, KC_BTN2, KC_PSLS, KC_P7, KC_P8, KC_P9}, - {_______, KC_LEFT, KC_DOWN, KC_RIGHT, KC_WWW_REFRESH, KC_MS_L, KC_MS_D, KC_MS_R, KC_PAST, KC_P4, KC_P5, KC_P6}, - {KC_VOLU, KC_MPRV, KC_MPLY, KC_MNXT, KC_WWW_BACK, KC_WH_D, KC_BTN3, KC_WH_U, KC_PMNS, KC_P1, KC_P2, KC_P3}, - {KC_VOLD, KC_PAUSE, KC_INS, KC_PSCREEN, _______, _______, _______, _______, KC_PPLS, KC_PENT, KC_P0, KC_PDOT} + {KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL}, + {KC_MUTE, KC_BSPC, KC_UP, KC_DEL, KC_WWW_FORWARD, KC_BTN1, KC_MS_U, KC_BTN2, KC_PSLS, KC_P7, KC_P8, KC_P9}, + {_______, KC_LEFT, KC_DOWN, KC_RIGHT, KC_WWW_REFRESH, KC_MS_L, KC_MS_D, KC_MS_R, KC_PAST, KC_P4, KC_P5, KC_P6}, + {KC_VOLU, KC_MPRV, KC_MPLY, KC_MNXT, KC_WWW_BACK, KC_WH_D, KC_BTN3, KC_WH_U, KC_PMNS, KC_P1, KC_P2, KC_P3}, + {KC_VOLD, _______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PENT, KC_P0, KC_PDOT} }, /* Raise -- cgit v1.2.3 From e6a41e43aa524ae78aecb2eeeeca55c850d05cdd Mon Sep 17 00:00:00 2001 From: Jonathan Lucas Date: Sat, 23 Jul 2016 21:26:01 -0700 Subject: Updated Readme --- keyboards/preonic/keymaps/CMD-Preonic/README.md | 78 ++++++++++++++++++++++++- 1 file changed, 77 insertions(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/preonic/keymaps/CMD-Preonic/README.md b/keyboards/preonic/keymaps/CMD-Preonic/README.md index 91fa4adeb..2b80c2b3a 100644 --- a/keyboards/preonic/keymaps/CMD-Preonic/README.md +++ b/keyboards/preonic/keymaps/CMD-Preonic/README.md @@ -1 +1,77 @@ -# CMD-Preonic - This keymapping aims to increase productivity, specifically for programmer's who use Text editors like SublimeText and Atom by maximizing usage of the left-hand and function layers. +CMD-Preonic +=================== +The CMD project seeks to improve productivity by optimizing usage of the left hand via clever use of the function layers. + +>Note: This project is currently optimized for grid layout, and has not been confirmed to work 100% on MIT layout, although it is expected to work correctly. + +---------- + +Modes +------------- + +#### QWERTY + +>CMD-Qwerty is very similar to the default Preonic with a few key differences: + + - Dual-role Raise/Enter Key at Caps Lock position. -Don't need to take your hand off the mouse to submit URLs + - Space_Function under left space (Grid layout) -Don't need to take your thumb off of the spacebar to use lower. + - Dedicated arrow keys replaced with ( - , = , [ , and ] ) - big improvement for programmers who are used to fn layer. + +---------- + +#### Game + +> Disables extra features to facilitate easier usage of the Preonic while gaming. this mode is toggled in the adjust layer. + + - Dual Role Function key becomes Caps Lock. + - Space_Function disabled and replaced with normal spacebar. + - Windows Key disabled. + +---------- + +#### Numpad + +> Enables left-hand numpad + + - Left-side numpad + - Can be toggled on in Adjust layer (under . key) + +---------- + +#### Arrow - (Lower) + +> Makes arrow keys easily accessible to Left Hand, and much more. + + - Arrow keys at WASD, Backspace at Q, Delete at E. + - Media Keys near arrow cluster, mute at A. + - Web Nav keys. + - Mouse cluster at YGHJ. + - Numpad in right side of board. + - Can be toggled on in Adjust layer (Under , key) + +---------- + +#### Function- (Raise) + +> Basic Functions. Open Keys for customization. + + - Turns WASD into Navigation cluster (Home, End, Page up and Page Down) + - Pok3r style right hand arrow cluster for accessibility (familiar for many users.) + - Doubles as shift key for top row numbers. + - Print Screen, Insert, etc. + +---------- + +#### Adjust- (Raise + Lower) + +> Switch Modes + + - Default modes moved to the left and new layer toggle modes located to the right. + - Sleep and Wake keys added. + - Reset button moved under Spacebar(s). + +Notes: +------------- + +Please feel free to reach out to Commandlinedesign@gmail.com with suggestions. +Special Thanks to Jack for QMK firmware and the Preonic! -- cgit v1.2.3 From f4cb84c9402cd58628b6cf895fc24fc34fcffdbd Mon Sep 17 00:00:00 2001 From: Will Wolff-Myren Date: Sun, 24 Jul 2016 14:33:17 -0700 Subject: Remove images, per @ezuk request. =) --- .../keymaps/teckinesis/advantage_layout_win.png | Bin 93337 -> 0 bytes keyboards/ergodox_ez/keymaps/teckinesis/readme.md | 10 ---------- .../ergodox_ez/keymaps/teckinesis/teck209layout.jpg | Bin 89673 -> 0 bytes 3 files changed, 10 deletions(-) delete mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/advantage_layout_win.png delete mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/teck209layout.jpg (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/advantage_layout_win.png b/keyboards/ergodox_ez/keymaps/teckinesis/advantage_layout_win.png deleted file mode 100644 index 0a1df6809..000000000 Binary files a/keyboards/ergodox_ez/keymaps/teckinesis/advantage_layout_win.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/readme.md b/keyboards/ergodox_ez/keymaps/teckinesis/readme.md index 84b737505..9494a4d4c 100644 --- a/keyboards/ergodox_ez/keymaps/teckinesis/readme.md +++ b/keyboards/ergodox_ez/keymaps/teckinesis/readme.md @@ -43,13 +43,3 @@ the [Kinesis Advantage](http://www.kinesis-ergo.com/wp-content/uploads/2013/06/a * Removed Power, Sleep, Mail, My Computer keys. (I kept hitting these while using the mouse/cursor. =P) -# Truly Ergonomic and Kinesis Advantage Layouts - -## TECK 209 Layout ## - -![TECK 209 Layout](teck209layout.jpg) - -## Kinesis Advantage Layout ## - -![Kinesis Advantage Layout](advantage_layout_win.png) - diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/teck209layout.jpg b/keyboards/ergodox_ez/keymaps/teckinesis/teck209layout.jpg deleted file mode 100644 index a97844f4f..000000000 Binary files a/keyboards/ergodox_ez/keymaps/teckinesis/teck209layout.jpg and /dev/null differ -- cgit v1.2.3 From 8b94e26d7c3b30cc57d710a11e5651d15e8e3b20 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sun, 24 Jul 2016 22:07:43 -0400 Subject: Fixes midi functionality --- Makefile | 2 +- keyboards/lets_split/config.h | 4 ++-- keyboards/planck/keymaps/default/Makefile | 2 +- quantum/keymap_common.c | 2 +- quantum/process_keycode/process_midi.c | 24 ++++++++++++------------ 5 files changed, 17 insertions(+), 17 deletions(-) (limited to 'keyboards') diff --git a/Makefile b/Makefile index a7a10bf32..980ab26b2 100644 --- a/Makefile +++ b/Makefile @@ -181,7 +181,7 @@ endif ifeq ($(strip $(MIDI_ENABLE)), yes) OPT_DEFS += -DMIDI_ENABLE - SRC += $(QUANTUM_DIR)/process_keycode/process_audio.c + SRC += $(QUANTUM_DIR)/process_keycode/process_midi.c endif ifeq ($(strip $(AUDIO_ENABLE)), yes) diff --git a/keyboards/lets_split/config.h b/keyboards/lets_split/config.h index 833818ce6..ec99514aa 100644 --- a/keyboards/lets_split/config.h +++ b/keyboards/lets_split/config.h @@ -69,9 +69,9 @@ along with this program. If not, see . ) /* ws2812 RGB LED */ -#define RGB_DI_PIN D2 +#define RGB_DI_PIN D4 #define RGBLIGHT_TIMER -#define RGBLED_NUM 28 // Number of LEDs +#define RGBLED_NUM 8 // Number of LEDs #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 #define RGBLIGHT_VAL_STEP 17 diff --git a/keyboards/planck/keymaps/default/Makefile b/keyboards/planck/keymaps/default/Makefile index 581e08cd0..38a504a27 100644 --- a/keyboards/planck/keymaps/default/Makefile +++ b/keyboards/planck/keymaps/default/Makefile @@ -11,7 +11,7 @@ CONSOLE_ENABLE = no # Console for debug(+400) COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI controls +MIDI_ENABLE = yes # MIDI controls AUDIO_ENABLE = yes # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index d0a8312c1..833e5a8f8 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -30,7 +30,7 @@ along with this program. If not, see . #include "quantum.h" #ifdef MIDI_ENABLE - #include "keymap_midi.h" + #include "process_midi.h" #endif extern keymap_config_t keymap_config; diff --git a/quantum/process_keycode/process_midi.c b/quantum/process_keycode/process_midi.c index d6ab9c626..8784e64f3 100644 --- a/quantum/process_keycode/process_midi.c +++ b/quantum/process_keycode/process_midi.c @@ -1,8 +1,8 @@ #include "process_midi.h" bool midi_activated = false; -uint8_t starting_note = 0x0C; -int offset = 7; +uint8_t midi_starting_note = 0x0C; +int midi_offset = 7; bool process_midi(uint16_t keycode, keyrecord_t *record) { if (keycode == MI_ON && record->event.pressed) { @@ -20,42 +20,42 @@ bool process_midi(uint16_t keycode, keyrecord_t *record) { if (midi_activated) { if (record->event.key.col == (MATRIX_COLS - 1) && record->event.key.row == (MATRIX_ROWS - 1)) { if (record->event.pressed) { - starting_note++; // Change key + midi_starting_note++; // Change key midi_send_cc(&midi_device, 0, 0x7B, 0); } return false; } if (record->event.key.col == (MATRIX_COLS - 2) && record->event.key.row == (MATRIX_ROWS - 1)) { if (record->event.pressed) { - starting_note--; // Change key + midi_starting_note--; // Change key midi_send_cc(&midi_device, 0, 0x7B, 0); } return false; } if (record->event.key.col == (MATRIX_COLS - 3) && record->event.key.row == (MATRIX_ROWS - 1) && record->event.pressed) { - offset++; // Change scale + midi_offset++; // Change scale midi_send_cc(&midi_device, 0, 0x7B, 0); return false; } if (record->event.key.col == (MATRIX_COLS - 4) && record->event.key.row == (MATRIX_ROWS - 1) && record->event.pressed) { - offset--; // Change scale + midi_offset--; // Change scale midi_send_cc(&midi_device, 0, 0x7B, 0); return false; } // basic - // uint8_t note = (starting_note + SCALE[record->event.key.col + offset])+12*(MATRIX_ROWS - record->event.key.row); + // uint8_t note = (midi_starting_note + SCALE[record->event.key.col + midi_offset])+12*(MATRIX_ROWS - record->event.key.row); // advanced - // uint8_t note = (starting_note + record->event.key.col + offset)+12*(MATRIX_ROWS - record->event.key.row); + // uint8_t note = (midi_starting_note + record->event.key.col + midi_offset)+12*(MATRIX_ROWS - record->event.key.row); // guitar - uint8_t note = (starting_note + record->event.key.col + offset)+5*(MATRIX_ROWS - record->event.key.row); + uint8_t note = (midi_starting_note + record->event.key.col + midi_offset)+5*(MATRIX_ROWS - record->event.key.row); // violin - // uint8_t note = (starting_note + record->event.key.col + offset)+7*(MATRIX_ROWS - record->event.key.row); + // uint8_t note = (midi_starting_note + record->event.key.col + midi_offset)+7*(MATRIX_ROWS - record->event.key.row); if (record->event.pressed) { - // midi_send_noteon(&midi_device, record->event.key.row, starting_note + SCALE[record->event.key.col], 127); + // midi_send_noteon(&midi_device, record->event.key.row, midi_starting_note + SCALE[record->event.key.col], 127); midi_send_noteon(&midi_device, 0, note, 127); } else { - // midi_send_noteoff(&midi_device, record->event.key.row, starting_note + SCALE[record->event.key.col], 127); + // midi_send_noteoff(&midi_device, record->event.key.row, midi_starting_note + SCALE[record->event.key.col], 127); midi_send_noteoff(&midi_device, 0, note, 127); } -- cgit v1.2.3 From b66131eeb5774ab0406bfb332e784b5691233b97 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 26 Jul 2016 15:59:26 -0400 Subject: disable midi by default --- keyboards/planck/keymaps/default/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/default/Makefile b/keyboards/planck/keymaps/default/Makefile index 38a504a27..0f4953888 100644 --- a/keyboards/planck/keymaps/default/Makefile +++ b/keyboards/planck/keymaps/default/Makefile @@ -11,7 +11,7 @@ CONSOLE_ENABLE = no # Console for debug(+400) COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -MIDI_ENABLE = yes # MIDI controls +MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = yes # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID @@ -22,4 +22,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend ifndef QUANTUM_DIR include ../../../../Makefile -endif \ No newline at end of file +endif -- cgit v1.2.3 From 3fd1c9d72b71075504fab4b46dc295780d774258 Mon Sep 17 00:00:00 2001 From: Mazin Bokhari Date: Tue, 26 Jul 2016 22:43:04 -0500 Subject: Move to keyboards --- keyboard/ergodox_ez/keymaps/maz/keymap.c | 229 ----------------------------- keyboard/ergodox_ez/keymaps/maz/readme.md | 121 --------------- keyboards/ergodox_ez/keymaps/maz/keymap.c | 229 +++++++++++++++++++++++++++++ keyboards/ergodox_ez/keymaps/maz/readme.md | 121 +++++++++++++++ 4 files changed, 350 insertions(+), 350 deletions(-) delete mode 100644 keyboard/ergodox_ez/keymaps/maz/keymap.c delete mode 100644 keyboard/ergodox_ez/keymaps/maz/readme.md create mode 100644 keyboards/ergodox_ez/keymaps/maz/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/maz/readme.md (limited to 'keyboards') diff --git a/keyboard/ergodox_ez/keymaps/maz/keymap.c b/keyboard/ergodox_ez/keymaps/maz/keymap.c deleted file mode 100644 index 7b8f0df74..000000000 --- a/keyboard/ergodox_ez/keymaps/maz/keymap.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 ARRW 2 // arrow keys -#define MDIA 3 // media keys, including mouse - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0: Basic layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | = | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | - | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Tab | Q | W | E | R | T | L1 | | CAPS | Y | U | I | O | P | \ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | ESC | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | - * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| - * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | Grv | |*SYMB*|*ARRW*| |*MDIA*|*SYMB*| [ | ] | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+--------+------. - * | | | | | | | | - * | Space| Bksp |------| |------| Tab |Enter | - * | ctrl | gui | Alt | | Alt | gui | ctrl | - * `--------------------' `----------------------' - */ - // TODO: maybe look into changing the delay or whatever for the holding macros... not sure which way you would go with this. if the macro automatically kicks in if you hold it and press another button (no matter how long you held it for), then it wouldn't hurt to have a longer period i think... although if you hold a button and then decide not to, then you;ll register a space/bksp/etc. on accident. on the other hand, if it's too short of a delay, then you might be able to register spc/bksp/etc quickly enough, although i don't see this as big of an issue - // not sure if gui is meta key or super... it says meta on the basic keycodes page, and i think that's consitent with other shit, but you should really figure out how to program the keyboard to have meta and super separately instead of hacking your init.el to recognize alt as meta... because shit will get fucked up beteween awesome and emacs and other shit i'm guessing -// 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_TRNS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), - 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_TRNS, KC_GRV, KC_TRNS,MO(SYMB),MO(ARRW), - KC_TRNS, KC_TRNS, - KC_TRNS, - CTL_T(KC_SPC),GUI_T(KC_BSPC),KC_LALT, - // right hand - KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_CAPSLOCK, 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, - MO(MDIA), MO(SYMB), KC_LBRC,KC_RBRC, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_RALT,GUI_T(KC_TAB), CTL_T(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_DOT, - KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, - KC_TRNS,KC_TRNS, KC_0, KC_EQL, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), -/* Keymap 2: Arrow keys - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | | | | | | | |PGDOWN| PGUP | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | |------| |------| LEFT | DOWN | UP |RIGHT | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | HOME | END | | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// MEDIA AND MOUSE -[ARRW] = 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, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_PGDOWN, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, - KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS, KC_TRNS, 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 3: Media and mouse keys - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | MsUp | | | | | | | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | |MsLeft|MsDown|MsRght| |------| |------| | Lclk | Rclk | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | |Mute |VolDn | VolUp| | | | | | | | | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | Prev | Play | Next | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * |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_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_WBAK, 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_BTN1, KC_BTN2, 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_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/maz/readme.md b/keyboard/ergodox_ez/keymaps/maz/readme.md deleted file mode 100644 index 000a8d000..000000000 --- a/keyboard/ergodox_ez/keymaps/maz/readme.md +++ /dev/null @@ -1,121 +0,0 @@ -# Introduction - -## Motivation -I created this keymap in an attempt to optimize my typing experience in text editors (vim and emacs) and the command-line. - -More specifically, I wanted to have each modifier key controlled by the thumbs, the most powerful of the digits (I think). This cured me of emacs pinky, which had surprisingly grown quite quickly over the first two weeks of using emacs & emacs-like commands on the command-line. - -## Changes -There are some miscellaneous changes that I kind of forgot I made, such as moving the tilde key, but you can check out the visual layouts below, which I **have** kept up to date. -### Modifier Keys -The biggest changes from the ergodox ez default keymap are the modifiers on the thumb cluster. You must hold each key down for a certain amount of time (forgot where this is specified) in order for the modifier key to activate. - -### Layers -* an arrow layer (ARRW) has been created because the default arrow keys suck. Beware, these do use vim bindings because they're the best. -* the keys in the media layer have been moved around for a better experience (imo), especially with respect to the mouse -* the three layers (SYMB, MDIA, and ARRW) now have their own dedicated keys accessible by the thumbs in the basic layer -* caps lock has been put in place of the right-side `L1` toggle key because there was really no need to have two keys to toggle one layer, and caps lock is useful when writing queries -** unfortunatley, caps lock is not indicated by an LED, so be careful. I use caps lock just like I do insert in vim; for a short burst of text. I always turn off caps lock when I change my focus - -### Removal Of Keys -I also removed a bunch of unnecessary keys that I wasn't going to use anyway. You'll see such keys are blank in the basic layer. I will probably add some more keys in place of these, but I'm fine for now; I just didn't want the distraction of extra keys I barely use. - -## Caveats -### Thumb Cluster Range -I've heard many complaints about the thumb clusters. I agree that the three outter keys are almost impossible to reach. I am going to try to build [Matt Adereth's keyboard](https://github.com/adereth/dactyl-keyboard), which looks to have a better layout. However, I am able to comfortably use the three modifier keys mainly because: -* I use DCS keycaps with SA Row 3 keycaps where the Alt keys are -* I have relatively large hands (I guarantee you there's no problem - I guarantee you) - -### Dangerous positioning -I think it's quite dangerous to put something like control on the same key as enter. Alas, this is a risk I'm willing to accept, and so should you if you decide to use this keymap. I tend to avoid putting myself in situtations in which disaster could occur with one fell swoop of a keypress. - -# Keymap -## Keymap 0: Basic layer -``` -,--------------------------------------------------. ,--------------------------------------------------. -| = | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | - | -|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| -| Tab | Q | W | E | R | T | L1 | | CAPS | Y | U | I | O | P | \ | -|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| -| ESC | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | -|--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| -| LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | -`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - | | Grv | |*SYMB*|*ARRW*| |*MDIA*|*SYMB*| [ | ] | | - `----------------------------------' `----------------------------------' - ,-------------. ,-------------. - | | | | | | - ,------|------|------| |------+--------+------. - | | | | | | | | - | Space| Bksp |------| |------| Tab |Enter | - | ctrl | gui | Alt | | Alt | gui | ctrl | - `--------------------' `----------------------' - -``` - -## Keymap 1: Symbol Layer -The only change here is the *dot* (`.`) character moving from next to `0` next to `+` in order to move the layer keys in the correct position -``` - ,--------------------------------------------------. ,--------------------------------------------------. - | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | - |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | - |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | . | - |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | - `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - | | | | | | | | | 0 | = | | - `----------------------------------' `----------------------------------' - ,-------------. ,-------------. - | | | | | | - ,------|------|------| |------+------+------. - | | | | | | | | - | | |------| |------| | | - | | | | | | | | - `--------------------' `--------------------' -``` - -## Keymap 2: Arrow Layer -``` - ,--------------------------------------------------. ,--------------------------------------------------. - | | | | | | | | | | | | | | | | - |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - | | | | | | | | | | |PGDOWN| PGUP | | | | - |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - | | | | | | |------| |------| LEFT | DOWN | UP |RIGHT | | | - |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - | | | | | | | | | | | HOME | END | | | | - `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - | | | | | | | | | | | | - `----------------------------------' `----------------------------------' - ,-------------. ,-------------. - | | | | | | - ,------|------|------| |------+------+------. - | | | | | | | | - | | |------| |------| | | - | | | | | | | | - `--------------------' `--------------------' -``` - -## Keymap 3: Media and mouse keys -``` - ,--------------------------------------------------. ,--------------------------------------------------. - | | | | | | | | | | | | | | | | - |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - | | | | MsUp | | | | | | | | | | | | - |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - | | |MsLeft|MsDown|MsRght| |------| |------| | Lclk | Rclk | | | | - |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - | | |Mute |VolDn | VolUp| | | | | | | | | | | - `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - | | | Prev | Play | Next | | | | | | | - `----------------------------------' `----------------------------------' - ,-------------. ,-------------. - | | | | | | - ,------|------|------| |------+------+------. - |Brwser| | | | | | | - |Back | |------| |------| | | - | | | | | | | | - `--------------------' `--------------------' -``` diff --git a/keyboards/ergodox_ez/keymaps/maz/keymap.c b/keyboards/ergodox_ez/keymaps/maz/keymap.c new file mode 100644 index 000000000..7b8f0df74 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/maz/keymap.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 ARRW 2 // arrow keys +#define MDIA 3 // media keys, including mouse + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | L1 | | CAPS | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | ESC | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | Grv | |*SYMB*|*ARRW*| |*MDIA*|*SYMB*| [ | ] | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+--------+------. + * | | | | | | | | + * | Space| Bksp |------| |------| Tab |Enter | + * | ctrl | gui | Alt | | Alt | gui | ctrl | + * `--------------------' `----------------------' + */ + // TODO: maybe look into changing the delay or whatever for the holding macros... not sure which way you would go with this. if the macro automatically kicks in if you hold it and press another button (no matter how long you held it for), then it wouldn't hurt to have a longer period i think... although if you hold a button and then decide not to, then you;ll register a space/bksp/etc. on accident. on the other hand, if it's too short of a delay, then you might be able to register spc/bksp/etc quickly enough, although i don't see this as big of an issue + // not sure if gui is meta key or super... it says meta on the basic keycodes page, and i think that's consitent with other shit, but you should really figure out how to program the keyboard to have meta and super separately instead of hacking your init.el to recognize alt as meta... because shit will get fucked up beteween awesome and emacs and other shit i'm guessing +// 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_TRNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), + 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_TRNS, KC_GRV, KC_TRNS,MO(SYMB),MO(ARRW), + KC_TRNS, KC_TRNS, + KC_TRNS, + CTL_T(KC_SPC),GUI_T(KC_BSPC),KC_LALT, + // right hand + KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_CAPSLOCK, 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, + MO(MDIA), MO(SYMB), KC_LBRC,KC_RBRC, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_RALT,GUI_T(KC_TAB), CTL_T(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_DOT, + KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, + KC_TRNS,KC_TRNS, KC_0, KC_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Arrow keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | |PGDOWN| PGUP | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------| LEFT | DOWN | UP |RIGHT | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | HOME | END | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[ARRW] = 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, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_PGDOWN, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS, KC_TRNS, 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 3: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | Lclk | Rclk | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |Mute |VolDn | VolUp| | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | Prev | Play | Next | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * |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_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_WBAK, 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_BTN1, KC_BTN2, 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_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/keyboards/ergodox_ez/keymaps/maz/readme.md b/keyboards/ergodox_ez/keymaps/maz/readme.md new file mode 100644 index 000000000..000a8d000 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/maz/readme.md @@ -0,0 +1,121 @@ +# Introduction + +## Motivation +I created this keymap in an attempt to optimize my typing experience in text editors (vim and emacs) and the command-line. + +More specifically, I wanted to have each modifier key controlled by the thumbs, the most powerful of the digits (I think). This cured me of emacs pinky, which had surprisingly grown quite quickly over the first two weeks of using emacs & emacs-like commands on the command-line. + +## Changes +There are some miscellaneous changes that I kind of forgot I made, such as moving the tilde key, but you can check out the visual layouts below, which I **have** kept up to date. +### Modifier Keys +The biggest changes from the ergodox ez default keymap are the modifiers on the thumb cluster. You must hold each key down for a certain amount of time (forgot where this is specified) in order for the modifier key to activate. + +### Layers +* an arrow layer (ARRW) has been created because the default arrow keys suck. Beware, these do use vim bindings because they're the best. +* the keys in the media layer have been moved around for a better experience (imo), especially with respect to the mouse +* the three layers (SYMB, MDIA, and ARRW) now have their own dedicated keys accessible by the thumbs in the basic layer +* caps lock has been put in place of the right-side `L1` toggle key because there was really no need to have two keys to toggle one layer, and caps lock is useful when writing queries +** unfortunatley, caps lock is not indicated by an LED, so be careful. I use caps lock just like I do insert in vim; for a short burst of text. I always turn off caps lock when I change my focus + +### Removal Of Keys +I also removed a bunch of unnecessary keys that I wasn't going to use anyway. You'll see such keys are blank in the basic layer. I will probably add some more keys in place of these, but I'm fine for now; I just didn't want the distraction of extra keys I barely use. + +## Caveats +### Thumb Cluster Range +I've heard many complaints about the thumb clusters. I agree that the three outter keys are almost impossible to reach. I am going to try to build [Matt Adereth's keyboard](https://github.com/adereth/dactyl-keyboard), which looks to have a better layout. However, I am able to comfortably use the three modifier keys mainly because: +* I use DCS keycaps with SA Row 3 keycaps where the Alt keys are +* I have relatively large hands (I guarantee you there's no problem - I guarantee you) + +### Dangerous positioning +I think it's quite dangerous to put something like control on the same key as enter. Alas, this is a risk I'm willing to accept, and so should you if you decide to use this keymap. I tend to avoid putting myself in situtations in which disaster could occur with one fell swoop of a keypress. + +# Keymap +## Keymap 0: Basic layer +``` +,--------------------------------------------------. ,--------------------------------------------------. +| = | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | - | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| Tab | Q | W | E | R | T | L1 | | CAPS | Y | U | I | O | P | \ | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| ESC | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | +|--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| +| LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | Grv | |*SYMB*|*ARRW*| |*MDIA*|*SYMB*| [ | ] | | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + | | | | | | + ,------|------|------| |------+--------+------. + | | | | | | | | + | Space| Bksp |------| |------| Tab |Enter | + | ctrl | gui | Alt | | Alt | gui | ctrl | + `--------------------' `----------------------' + +``` + +## Keymap 1: Symbol Layer +The only change here is the *dot* (`.`) character moving from next to `0` next to `+` in order to move the layer keys in the correct position +``` + ,--------------------------------------------------. ,--------------------------------------------------. + | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | . | + |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | | | | | | | | 0 | = | | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + | | | | | | + ,------|------|------| |------+------+------. + | | | | | | | | + | | |------| |------| | | + | | | | | | | | + `--------------------' `--------------------' +``` + +## Keymap 2: Arrow Layer +``` + ,--------------------------------------------------. ,--------------------------------------------------. + | | | | | | | | | | | | | | | | + |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + | | | | | | | | | | |PGDOWN| PGUP | | | | + |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + | | | | | | |------| |------| LEFT | DOWN | UP |RIGHT | | | + |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + | | | | | | | | | | | HOME | END | | | | + `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | | | | | | | | | | | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + | | | | | | + ,------|------|------| |------+------+------. + | | | | | | | | + | | |------| |------| | | + | | | | | | | | + `--------------------' `--------------------' +``` + +## Keymap 3: Media and mouse keys +``` + ,--------------------------------------------------. ,--------------------------------------------------. + | | | | | | | | | | | | | | | | + |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + | | | | MsUp | | | | | | | | | | | | + |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + | | |MsLeft|MsDown|MsRght| |------| |------| | Lclk | Rclk | | | | + |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + | | |Mute |VolDn | VolUp| | | | | | | | | | | + `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | | Prev | Play | Next | | | | | | | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + | | | | | | + ,------|------|------| |------+------+------. + |Brwser| | | | | | | + |Back | |------| |------| | | + | | | | | | | | + `--------------------' `--------------------' +``` -- cgit v1.2.3 From fdd07991def0fc54a41ccc9085d11255d8b63fcb Mon Sep 17 00:00:00 2001 From: SmackleFunky Date: Wed, 27 Jul 2016 04:44:24 +0000 Subject: Allow toggling out of plover layer --- keyboards/ergodox_ez/keymaps/plover/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/plover/keymap.c b/keyboards/ergodox_ez/keymaps/plover/keymap.c index a991e6082..8a58a37f6 100644 --- a/keyboards/ergodox_ez/keymaps/plover/keymap.c +++ b/keyboards/ergodox_ez/keymaps/plover/keymap.c @@ -160,7 +160,7 @@ KEYMAP( [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_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, 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, @@ -169,7 +169,7 @@ KEYMAP( 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_TRNS, 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, -- cgit v1.2.3 From 13bb3a73798da4c0f4ddc9cb644c1cd82f7fc8c1 Mon Sep 17 00:00:00 2001 From: Seth Chandler Date: Wed, 27 Jul 2016 02:06:19 -0400 Subject: update NO_AMP to NO_AMPR --- keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/keymap.c b/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/keymap.c index 3b74d266f..a909ed3a4 100644 --- a/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/keymap.c +++ b/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/keymap.c @@ -39,7 +39,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { NO_COLN, KC_A, KC_R, KC_S, KC_T, KC_D, KC_EXLM, KC_Z, KC_X, KC_C, KC_V, KC_B, NO_SCLN, MO(4), KC_BTN1, KC_BTN2, KC_TAB,GUI_T(KC_COMMA), - NO_AMP, NO_PIPE, + NO_AMPR, NO_PIPE, NO_PLUS, KC_FN1,CTL_T(KC_DOT),ALT_T(NO_MINS), // right hand -- cgit v1.2.3 From 368d0bdf685b1b77f7dbcc8bb5769ccaed7f2d21 Mon Sep 17 00:00:00 2001 From: Seth Chandler Date: Wed, 27 Jul 2016 02:21:09 -0400 Subject: kill warnings filling up travis buildlog --- keyboards/satan/keymaps/stanleylai/config.h | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) (limited to 'keyboards') diff --git a/keyboards/satan/keymaps/stanleylai/config.h b/keyboards/satan/keymaps/stanleylai/config.h index ae2bd36db..7f4bb441c 100644 --- a/keyboards/satan/keymaps/stanleylai/config.h +++ b/keyboards/satan/keymaps/stanleylai/config.h @@ -1,20 +1,15 @@ #include "../../config.h" -// USB Device descriptor parameter -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0003 -#define MANUFACTURER Custom -#define PRODUCT GH60 rev.CHN -#define DESCRIPTION QMK keyboard firmware for GH60 with WS2812 support - // Backlight configuration +#undef BACKLIGHT_LEVELS #define BACKLIGHT_LEVELS 3 // Underlight configuration -#define RGB_DI_PIN E2 -#define RGBLIGHT_TIMER +#undef RGBLED_NUM #define RGBLED_NUM 6 // Number of LEDs +#undef RGBLIGHT_HUE_STEP #define RGBLIGHT_HUE_STEP 8 +#undef RGBLIGHT_SAT_STEP #define RGBLIGHT_SAT_STEP 8 +#undef RGBLIGHT_VAL_STEP #define RGBLIGHT_VAL_STEP 8 -- cgit v1.2.3 From 95ef3f864eb1cbffe8a9151d9d3a09522f12000a Mon Sep 17 00:00:00 2001 From: Seth Chandler Date: Wed, 27 Jul 2016 02:30:17 -0400 Subject: fix numerous errors in bone2planck keymap --- keyboards/planck/keymaps/bone2planck/keymap.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/bone2planck/keymap.c b/keyboards/planck/keymaps/bone2planck/keymap.c index ceb556425..8d5e6dcc5 100644 --- a/keyboards/planck/keymaps/bone2planck/keymap.c +++ b/keyboards/planck/keymaps/bone2planck/keymap.c @@ -1,12 +1,12 @@ - -#include "planck.h" +#include "planck.h" #ifdef BACKLIGHT_ENABLE #include "backlight.h" #endif -#include "..\..\..\..\quantum\keymap_extras\keymap_german.h" -#include "..\..\..\..\quantum\keymap_common.h" -#include "..\..\..\..\tmk_core\common\keycode.h" -#define _______ = KC_TRNS; +#include "keymap_german.h" +//#include "..\..\..\..\quantum\keymap_common.h" +//#include "..\..\..\..\tmk_core\common\keycode.h" + +#define _______ KC_TRNS /* This Layout tries to emulate the Bone2 Variant of Neo2, and is intended to be used with a German QWERTZ Softwarelayout. It has "üäöß" as it is optimized for a mix of German & English. @@ -88,7 +88,7 @@ accessed by sliding from M2 to M3 with thumb */ [3] = { - { KC_NO, KC_NO, DE_7, DE_8 DE_9, KC_NO, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_NO }, + { KC_NO, KC_NO, DE_7, DE_8, DE_9, KC_NO, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_NO }, { _______, DE_DOT, DE_4, DE_5, DE_6, DE_COMM, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______ }, { _______, DE_0, DE_1, DE_2, DE_3, DE_SCLN, KC_NO, KC_TAB, KC_INS, KC_ENT, KC_NO, _______ }, { _______, _______, _______, _______, KC_NO, _______, _______, KC_NO, _______, _______, _______, _______ } @@ -112,7 +112,7 @@ slide from m4 to m5 to access flipped version { KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, DE_SQ3, KC_F4, KC_F5, KC_F6, KC_F11, KC_NO }, { _______, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, DE_SQ2, KC_F1, KC_F2, KC_F3, KC_F10, _______ }, { _______, _______, _______, _______, MO(5), _______, _______, MO(5), _______, _______, _______, _______ } -} +}, /* flipped Function & Media Keys @@ -128,8 +128,8 @@ slide from m4 to m5 to access flipped version */ [5] = { { KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO }, - { KC_NO, KC_SQ3, KC_F4, KC_F5, KC_F6, KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO }, - { _______, KC_SQ2, KC_F1, KC_F2, KC_F3, KC_NO, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, _______ }, + { KC_NO, DE_SQ3, KC_F4, KC_F5, KC_F6, KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO }, + { _______, DE_SQ2, KC_F1, KC_F2, KC_F3, KC_NO, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, _______ }, { _______, _______, _______, KC_NO, _______, _______, _______, _______, KC_NO, _______, _______, _______ } } }; -- cgit v1.2.3 From 180a3da44dda89ca6d6e11972d5e9afe21119ed4 Mon Sep 17 00:00:00 2001 From: Seth Chandler Date: Wed, 27 Jul 2016 02:32:15 -0400 Subject: remove unnecessary includes --- keyboards/planck/keymaps/bone2planck/keymap.c | 2 -- 1 file changed, 2 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/bone2planck/keymap.c b/keyboards/planck/keymaps/bone2planck/keymap.c index 8d5e6dcc5..66cf9386d 100644 --- a/keyboards/planck/keymaps/bone2planck/keymap.c +++ b/keyboards/planck/keymaps/bone2planck/keymap.c @@ -3,8 +3,6 @@ #include "backlight.h" #endif #include "keymap_german.h" -//#include "..\..\..\..\quantum\keymap_common.h" -//#include "..\..\..\..\tmk_core\common\keycode.h" #define _______ KC_TRNS -- cgit v1.2.3 From 9822b9f74348184706272fdc968f843bdab42cc2 Mon Sep 17 00:00:00 2001 From: Callum Oakley Date: Wed, 27 Jul 2016 21:18:19 +0100 Subject: Added custom keymap. Added custom keymap. --- keyboards/planck/keymaps/callum/Makefile | 25 ++++++ keyboards/planck/keymaps/callum/keymap.c | 138 +++++++++++++++++++++++++++++++ 2 files changed, 163 insertions(+) create mode 100644 keyboards/planck/keymaps/callum/Makefile create mode 100644 keyboards/planck/keymaps/callum/keymap.c (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/callum/Makefile b/keyboards/planck/keymaps/callum/Makefile new file mode 100644 index 000000000..1d76966a6 --- /dev/null +++ b/keyboards/planck/keymaps/callum/Makefile @@ -0,0 +1,25 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/planck/keymaps/callum/keymap.c b/keyboards/planck/keymaps/callum/keymap.c new file mode 100644 index 000000000..a747dcb15 --- /dev/null +++ b/keyboards/planck/keymaps/callum/keymap.c @@ -0,0 +1,138 @@ +#include "planck.h" +#include "action_layer.h" +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BASE 0 +#define _MOVE 1 +#define _SYMB 2 +#define _FUNC 3 + +enum planck_keycodes { + BASE = SAFE_RANGE, + MOVE, + SYMB, + FUNC +}; + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* BASE + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | - | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Bksp | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Shift | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Func | GUI | Alt | Ctrl | Symb |Enter |Space | Move | GUI | Alt | Ctrl |Caps | + * `-----------------------------------------------------------------------------------' + */ +[_BASE] = { + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_MINS}, + {KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT}, + {FUNC, KC_LGUI, KC_LALT, KC_LCTL, SYMB, KC_ENT, KC_SPC, MOVE, KC_RGUI, KC_RALT, KC_RCTL, KC_CAPS} +}, + +/* MOVE + * ,-----------------------------------------------------------------------------------. + * | Esc | | Home | Up | End | | | Home | Up | End | | Esc | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | | Left | Down |Right | | | Left | Down |Right | | Del | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | |Pg Up |Pg Dn | | |Pg Dn |Pg Up | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_MOVE] = { + {KC_ESC, _______, KC_HOME, KC_UP, KC_END, _______, _______, KC_HOME, KC_UP, KC_END, _______, KC_ESC}, + {KC_DEL, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_DEL}, + {_______, _______, _______, KC_PGUP, KC_PGDN, _______, _______, KC_PGDN, KC_PGUP, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +}, + +/* SYMB + * ,-----------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Esc | + * |-----------------------------------------------------------------------------------. + * | Del | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | ~ | | | + | [ | { | } | ] | = | \ | ` | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_SYMB] = { + {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_ESC }, + {KC_DEL, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL }, + {_______, KC_TILD, KC_PIPE, KC_PLUS, KC_LBRC, KC_LCBR, KC_RCBR, KC_RBRC, KC_EQL, KC_BSLS, KC_GRV, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +}, + +/* FUNC + * ,-----------------------------------------------------------------------------------. + * | F12 | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | + * |-----------------------------------------------------------------------------------. + * | | Play | Prev | Next | BL+ | | | | | | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | Mute | Vol- | Vol+ | BL- | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | |Reset | + * `-----------------------------------------------------------------------------------' + */ +[_FUNC] = { + {KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11 }, + {_______, KC_MPLY, KC_MPRV, KC_MNXT, KC_PAUS, _______, _______, _______, _______, _______, _______, _______}, + {_______, KC_MUTE, KC_VOLD, KC_VOLU, KC_SLCK, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET } +} + +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case MOVE: + if (record->event.pressed) { + layer_on(_MOVE); + update_tri_layer(_MOVE, _SYMB, _FUNC); + } else { + layer_off(_MOVE); + update_tri_layer(_MOVE, _SYMB, _FUNC); + } + return false; + break; + case SYMB: + if (record->event.pressed) { + layer_on(_SYMB); + update_tri_layer(_MOVE, _SYMB, _FUNC); + } else { + layer_off(_SYMB); + update_tri_layer(_MOVE, _SYMB, _FUNC); + } + return false; + break; + case FUNC: + if (record->event.pressed) { + layer_on(_FUNC); + } else { + layer_off(_FUNC); + } + return false; + break; + } + return true; +} -- cgit v1.2.3 From 1eeceee355662305c5ceecb56a210628ddc723ec Mon Sep 17 00:00:00 2001 From: Callum Oakley Date: Thu, 28 Jul 2016 12:15:55 +0100 Subject: Added readme.md for custom layout. --- keyboards/planck/keymaps/callum/readme.md | 48 +++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 keyboards/planck/keymaps/callum/readme.md (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/callum/readme.md b/keyboards/planck/keymaps/callum/readme.md new file mode 100644 index 000000000..d4f3449f1 --- /dev/null +++ b/keyboards/planck/keymaps/callum/readme.md @@ -0,0 +1,48 @@ +# callum’s planck layout + +This is a layout for the grid planck, built with a few ideals in mind. These ideals are just my opinion mind! The great thing about *qmk* is that we can all afford to have different opinions about what makes a good layout: + +- Minimal response times should be maintained. i.e. keys that react differently depending on whether they are tapped or held, keys that react differently if they are double tapped, etc. should be avoided --- since they inevitably send their keycode later than a normal key, interrupting the immediate feedback from the screen. Therefore we restrict ourselves to chording. +- The hands should never need to leave the home position. The usual culprit for this is the arrow cluster, so the arrow cluster should be as close to home as possible. +- There should be two of every modifier (one on each side), since otherwise certain long key combinations become hard to make. +- Backspace should be in the “capslock position” as God intended. +- The keyboard should be usable without any firmware changes on any operating system. In my case that means it should work on *Windows* and *Linux* without any software modifications, while I can change the behaviour slightly on *macOS* in software since that’s my home OS. The images reflect the intended use on *macOS* **after** minor software tweaks; which will be noted. + +We have four layers. A `BASE` layer, in colemak; a `MOVE` layer, with an arrow cluster etc, a `SYMB` layer, with numbers and symbols; and a `FUNC` layer, with function keys and media keys. + +## The `BASE` layer +![](http://i.imgur.com/aEXOlWl.png) + +This is the default layer; in [colemak](https://colemak.com). `esc` and `del` are conspicuously absent but are especially easy to reach from either of the other main layers (see below). The `backspace` location is standard colemak. The `caps` key is still on the `BASE` layer but only because I don’t really use the bottom corners so there’s nothing else I would rather put there. Having `enter` on a thumb means I can still have `quote` immediately to the right of `O`, something that would have annoyed me endlessly otherwise. `minus` is in the upper right because I had an extra space and it’s probably my next most used key that didn’t yet have a home. + +The `MOVE` and `SYMB` layers are reached by holding down the `move` and `symb` keys respectively. The `FUNC` layer is reached by holding down both the `move` and `symb` keys simultaneosly, *or* by holding down the `fn` key. The intended use is that whenever both hands are on the keyboard, the former method is used, and the latter is only used when, for example, reaching over to the keyboard with one hand to access the media controls. + +The `ctrl`, `alt`, `cmd` cluster is asymmetric around the centre so that at least one of each of the modifiers can be reached with the thumbs. The intended use is to always hit the left `cmd` and the right `ctrl`, unless an awkward key combination dictates otherwise. + +In firmware `ctrl` and `cmd`/`GUI` are swapped with respect to the image above --- I swap them to the illustrated location when using *macOS* and leave them be for *Windows* and *Linux*. (so that `cmd-z,x,c,v,...` becomes `ctrl-z,x,c,v,...` saving me some confusion) + +## The `MOVE` layer +![](http://i.imgur.com/KXRSuHT.png) + +This is fairly self explanatory. I almost exclusively use the right hand cluster so that movement is a one handed affair, but the left hand cluster is there if it’s needed. + +On *macOS* I recommend using [Karabiner](https://pqrs.org/osx/karabiner/) and ticking *Use PC Style Home/End #2* and *Use PC Style PageUp/PageDown* so that `home` and `end` jump you to the beginning and end of the line respectively and so that `pg up` and `pg dn` move the cursor instead of just scrolling. + +None of the modifiers are overwritten so that `shift-alt-arrows` etc work as expected. + +## The `SYMB` layer +![](http://i.imgur.com/iuU144Y.png) + +The symbol layer has all the numbers and their usual corresponding symbols in the first two rows, with the symbols on the home row since I use them more frequently than the numbers. The third row contains all the remaining symbols, with brackets in the centre; then normally shifted symbols to the left, and non shifted to the right, in order of most to least used. + +`esc` and `del` are repeated here since I wanted to be able to reach either, one handed, with either hand. + +Again none of the modifiers are overwritten so that shortcuts involving numbers or symbols work as expected. + +## The `FUNC` layer +![](http://i.imgur.com/skxRZiH.png) + +The only thing of note here is that `bl+` and `bl-` are short for *backlight up* and *backlight down* respectively, and in firmware are actually `KC_PAUS` and `KC_SLCK` respectively, since *macOS* interprets these as the backlight keys. + +## Other changes from the default +I have LEDs and sound disabled, simply because I have no need of them. \ No newline at end of file -- cgit v1.2.3 From 3b39910cb9506b9deb93f6395792e806e429aa61 Mon Sep 17 00:00:00 2001 From: Jordi Orlando Date: Thu, 28 Jul 2016 14:36:20 -0500 Subject: Create 0xdec Preonic keymap An ergonomically optimized Colemak keymap for the grid-layout Preonic --- keyboards/preonic/keymaps/0xdec/Makefile | 21 ++++ keyboards/preonic/keymaps/0xdec/README.md | 30 ++++++ keyboards/preonic/keymaps/0xdec/config.h | 10 ++ keyboards/preonic/keymaps/0xdec/keymap.c | 173 ++++++++++++++++++++++++++++++ 4 files changed, 234 insertions(+) create mode 100644 keyboards/preonic/keymaps/0xdec/Makefile create mode 100644 keyboards/preonic/keymaps/0xdec/README.md create mode 100644 keyboards/preonic/keymaps/0xdec/config.h create mode 100644 keyboards/preonic/keymaps/0xdec/keymap.c (limited to 'keyboards') diff --git a/keyboards/preonic/keymaps/0xdec/Makefile b/keyboards/preonic/keymaps/0xdec/Makefile new file mode 100644 index 000000000..6600e3689 --- /dev/null +++ b/keyboards/preonic/keymaps/0xdec/Makefile @@ -0,0 +1,21 @@ +# Build Options + +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/preonic/keymaps/0xdec/README.md b/keyboards/preonic/keymaps/0xdec/README.md new file mode 100644 index 000000000..603d3d455 --- /dev/null +++ b/keyboards/preonic/keymaps/0xdec/README.md @@ -0,0 +1,30 @@ +Ergonomic Colemak Keymap +======================== +An ergonomically optimized Colemak keymap for the grid-layout Preonic + +Modes +---------- + +#### Colemak + +> Base layer + +- All alphanumerics and symbols available on the base layer + +---------- + +#### Game + +> QWERTY layout for use with games or number entry + +- Standard QWERTY layout +- Integrated right-hand numpad in phone layout + +---------- + +#### Function (Raise) + +> Functions and mode switching + +- Turns NEIO into arrow cluster, with nav cluster below (Home, Page Down, Page Up, End) +- Reset key at lower left (Esc) diff --git a/keyboards/preonic/keymaps/0xdec/config.h b/keyboards/preonic/keymaps/0xdec/config.h new file mode 100644 index 000000000..5fc9b6f34 --- /dev/null +++ b/keyboards/preonic/keymaps/0xdec/config.h @@ -0,0 +1,10 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// Number of backlight levels +#undef BACKLIGHT_LEVELS +#define BACKLIGHT_LEVELS 5 + +#endif diff --git a/keyboards/preonic/keymaps/0xdec/keymap.c b/keyboards/preonic/keymaps/0xdec/keymap.c new file mode 100644 index 000000000..6c4b8a6fa --- /dev/null +++ b/keyboards/preonic/keymaps/0xdec/keymap.c @@ -0,0 +1,173 @@ +#include "preonic.h" +#include "action_layer.h" +#include "eeconfig.h" +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif + +// Layer names +#define _COLEMAK 0 +#define _GAME 1 +#define _RAISE 2 + +enum preonic_keycodes { + COLEMAK = SAFE_RANGE, + GAME, + RAISE +}; + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | = | Q | W | F | P | G | J | L | U | Y | [ | ] | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | - | A | R | S | T | D | H | N | E | I | O | ' | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ; | Z | X | C | V | B | K | M | , | . | / | ENTER| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ESC | ALT | GUI | SHIFT| CTRL | BKSP | SPACE| RAISE| SHIFT| | DEL | TAB | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = { + {KC_GRV ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_BSLS}, + {KC_EQL ,KC_Q ,KC_W ,KC_F ,KC_P ,KC_G ,KC_J ,KC_L ,KC_U ,KC_Y ,KC_LBRC,KC_RBRC}, + {KC_MINS,KC_A ,KC_R ,KC_S ,KC_T ,KC_D ,KC_H ,KC_N ,KC_E ,KC_I ,KC_O ,KC_QUOT}, + {KC_SCLN,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_K ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_ENT }, + {KC_ESC ,KC_LALT,KC_LGUI,KC_LSFT,KC_LCTL,KC_BSPC,KC_SPC ,RAISE ,KC_RSFT,_______,KC_DEL ,KC_TAB } +}, + +/* Game + * ,-----------------------------------------------------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 |NUM LK| ÷ | × | - | + * |------+------+------+------+------+------+------+------+------+------+------+------+ + * | TAB | Q | W | E | R | T | Y | U | 1 | 2 | 3 | + | + * |------+------+------+------+------+------+------+------+------+------+------+------+ + * | CTRL | A | S | D | F | G | H | J | 4 | 5 | 6 | = | + * |------+------+------+------+------+------+------+------+------+------+------+------+ + * | SHIFT| Z | X | C | V | B | N | M | 7 | 8 | 9 | ENTER| + * |------+------+------+------+------+------+------+------+------+------+------+------+ + * | | ALT | GUI | SPACE| CTRL | BKSP | SPACE| RAISE| , | 0 | . | TAB | + * `-----------------------------------------------------------------------------------' + */ +[_GAME] = { + {KC_ESC ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_6 ,KC_7 ,KC_NLCK,KC_PSLS,KC_PAST,KC_PMNS}, + {KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_Y ,KC_U ,KC_P1 ,KC_P2 ,KC_P3 ,KC_PPLS}, + {KC_LCTL,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_H ,KC_J ,KC_P4 ,KC_P5 ,KC_P6 ,KC_PEQL}, + {KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_N ,KC_M ,KC_P7 ,KC_P8 ,KC_P9 ,KC_PENT}, + {XXXXXXX,KC_LALT,KC_LGUI,KC_SPC ,KC_LCTL,KC_BSPC,KC_SPC ,RAISE ,KC_PCMM,KC_P0 ,KC_PDOT,KC_TAB } +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | SLEEP| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 |PRTSCR| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | SYM | F11 | F12 | |AU TOG| VOL+ |BL INC|COLMAK| GAME | MUSIC| MENU |SCRLCK| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | CAPS | PREV | STOP | PLAY | NEXT | VOL- |BL DEC| LEFT | DOWN | UP | RIGHT| PAUSE| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | BACK | STOP | RFRSH| FRWRD| MUTE |BL TOG| HOME | PGDN | PGUP | END |INSERT| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | RESET| | | | | DEL | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = { + {KC_SLEP,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_PSCR}, + {XXXXXXX,KC_F11 ,KC_F12 ,XXXXXXX,AU_TOG ,KC_VOLU,BL_INC ,COLEMAK,GAME ,MU_TOG ,KC_MENU,KC_SLCK}, + {KC_CAPS,KC_MPRV,KC_MSTP,KC_MPLY,KC_MNXT,KC_VOLD,BL_DEC ,KC_LEFT,KC_DOWN,KC_UP ,KC_RGHT,KC_PAUS}, + {XXXXXXX,KC_WBAK,KC_WSTP,KC_WREF,KC_WFWD,KC_MUTE,BL_TOGG,KC_HOME,KC_PGDN,KC_PGUP,KC_END ,KC_INS }, + {RESET ,_______,_______,_______,_______,KC_DEL ,_______,_______,_______,_______,_______,_______} +} + +}; + + + +#ifdef AUDIO_ENABLE + +float tone_startup[][2] = { + {NOTE_B5, 20}, + {NOTE_B6, 8}, + {NOTE_DS6, 20}, + {NOTE_B6, 8} +}; +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +float tone_game[][2] = { + {NOTE_E6, 10} ,{NOTE_E6, 10} ,{NOTE_REST, 10} ,{NOTE_E6, 10} , + {NOTE_REST, 10} ,{NOTE_C6, 10} ,{NOTE_E6, 10} ,{NOTE_REST, 10} , + {NOTE_G6, 10} ,{NOTE_REST, 30}, + {NOTE_G5, 10} ,{NOTE_REST, 30} +}; +float tone_goodbye[][2] = SONG(GOODBYE_SOUND); +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); + +void startup_user() { + _delay_ms(20); // gets rid of tick + PLAY_NOTE_ARRAY(tone_startup, false, 0); +} +void shutdown_user() { + PLAY_NOTE_ARRAY(tone_goodbye, false, 0); + _delay_ms(150); + stop_all_notes(); +} + +void music_on_user(void) { + music_scale_user(); +} +void music_scale_user(void) { + PLAY_NOTE_ARRAY(music_scale, false, 0); +} + +#endif + + + +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + startup_user(); + #endif +} + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case COLEMAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_colemak, false, 0); + #endif + persistant_default_layer_set(1UL<<_COLEMAK); + } + break; + case GAME: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_game, false, STACCATO); + #endif + persistant_default_layer_set(1UL<<_GAME); + } + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + } else { + layer_off(_RAISE); + } + break; + default: + return true; + break; + } + + return false; +}; -- cgit v1.2.3 From 61fbb47eb674ee1fab2f8415fe7f43311e51d260 Mon Sep 17 00:00:00 2001 From: coderkun Date: Sun, 22 May 2016 12:56:39 +0200 Subject: fix grave (GRV) and acute (ACUT) accents --- keyboards/ergodox_ez/keymaps/coderkun_neo2/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/coderkun_neo2/keymap.c b/keyboards/ergodox_ez/keymaps/coderkun_neo2/keymap.c index d25e2b995..958523c8b 100644 --- a/keyboards/ergodox_ez/keymaps/coderkun_neo2/keymap.c +++ b/keyboards/ergodox_ez/keymaps/coderkun_neo2/keymap.c @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [BASE] = KEYMAP( // left hand - KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL, + KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, NEO_GRV, 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, TG(PMQ), @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, + NEO_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, TG(PMN), NEO_B, NEO_M, KC_COMM,KC_DOT, NEO_J, KC_RSFT, -- cgit v1.2.3 From 08239aadeacabc3c8f2e727aff055a6816bb416e Mon Sep 17 00:00:00 2001 From: coderkun Date: Sun, 22 May 2016 12:58:54 +0200 Subject: use Ergodox EZ’s third LED for “scroll lock” --- keyboards/ergodox_ez/keymaps/coderkun_neo2/keymap.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/coderkun_neo2/keymap.c b/keyboards/ergodox_ez/keymaps/coderkun_neo2/keymap.c index 958523c8b..b71823e15 100644 --- a/keyboards/ergodox_ez/keymaps/coderkun_neo2/keymap.c +++ b/keyboards/ergodox_ez/keymaps/coderkun_neo2/keymap.c @@ -1,7 +1,8 @@ #include "ergodox_ez.h" #include "debug.h" #include "action_layer.h" -#include "keymap_neo2.h" +#include "led.h" +#include "keymap_extras/keymap_neo2.h" // Layer names #define BASE 0 // default layer @@ -267,7 +268,13 @@ void matrix_scan_user(void) ergodox_right_led_3_on(); break; default: - ergodox_board_led_off(); + if(host_keyboard_leds() & (1< --- keyboards/ergodox_ez/keymaps/algernon/Makefile | 8 +- keyboards/ergodox_ez/keymaps/algernon/keymap.c | 165 +++++-- keyboards/ergodox_ez/keymaps/algernon/readme.md | 9 + .../algernon/tools/heatmap-adore-layout.json | 533 +++++++++++++++++++++ 4 files changed, 687 insertions(+), 28 deletions(-) create mode 100644 keyboards/ergodox_ez/keymaps/algernon/tools/heatmap-adore-layout.json (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/algernon/Makefile b/keyboards/ergodox_ez/keymaps/algernon/Makefile index 005f9750c..6bf3976b9 100644 --- a/keyboards/ergodox_ez/keymaps/algernon/Makefile +++ b/keyboards/ergodox_ez/keymaps/algernon/Makefile @@ -4,13 +4,19 @@ SLEEP_LED_ENABLE=no UNICODE_ENABLE=no FORCE_NKRO ?= yes DEBUG_ENABLE = no -CONSOLE_ENABLE = yes +CONSOLE_ENABLE = no TAP_DANCE_ENABLE = yes +KEYLOGGER_ENABLE ?= yes ifeq (${FORCE_NKRO},yes) OPT_DEFS += -DFORCE_NKRO endif +ifeq (${KEYLOGGER_ENABLE},yes) +OPT_DEFS += -DKEYLOGGER_ENABLE +CONSOLE_ENABLE = yes +endif + KEYMAP_VERSION = $(shell \ if [ -d "${KEYMAP_PATH}/.git" ]; then \ cd "${KEYMAP_PATH}" && git describe --abbrev=6 --dirty --always --tags --match 'v*' 2>/dev/null; \ diff --git a/keyboards/ergodox_ez/keymaps/algernon/keymap.c b/keyboards/ergodox_ez/keymaps/algernon/keymap.c index 09d8dffd5..c12087292 100644 --- a/keyboards/ergodox_ez/keymaps/algernon/keymap.c +++ b/keyboards/ergodox_ez/keymaps/algernon/keymap.c @@ -95,7 +95,9 @@ enum { /* Custom keycodes */ enum { - CT_CLN = 0 + CT_CLN = 0, + CT_MNS, + CT_TA, }; /* States & timers */ @@ -115,7 +117,11 @@ uint16_t oh_left_blink_timer = 0; uint8_t oh_right_blink = 0; uint16_t oh_right_blink_timer = 0; +#if KEYLOGGER_ENABLE bool log_enable = false; +#endif + +bool time_travel = false; /* The Keymap */ @@ -146,7 +152,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // left hand KC_GRV ,M(KF_1) ,M(KF_2) ,M(KF_3),M(KF_4),M(KF_5),M(A_PLVR) ,M(A_MPN) ,KC_QUOT ,KC_COMM ,KC_DOT ,KC_P ,KC_Y ,KC_LBRC -,LT(ARRW,KC_TAB) ,KC_A ,KC_O ,KC_E ,KC_U ,KC_I +,TD(CT_TA) ,KC_A ,KC_O ,KC_E ,KC_U ,KC_I ,KC_MPLY ,KC_SLSH ,KC_Q ,KC_J ,KC_K ,KC_X ,KC_LPRN ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,TD(CT_CLN) @@ -155,11 +161,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ,KC_BSPC,F(F_SFT),M(A_ESC) // right hand - ,KC_APP ,M(KF_6),M(KF_7),M(KF_8),M(KF_9) ,M(KF_10) ,KC_F11 - ,KC_RBRC ,KC_F ,KC_G ,KC_C ,KC_R ,KC_L ,KC_BSLS - ,KC_D ,KC_H ,KC_T ,KC_N ,KC_S ,LT(ARRW, KC_EQL) - ,KC_RPRN ,KC_B ,KC_M ,KC_W ,KC_V ,KC_Z ,KC_MSTP - ,KC_MINS,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_APP ,M(KF_6),M(KF_7) ,M(KF_8),M(KF_9) ,M(KF_10) ,KC_F11 + ,KC_RBRC ,KC_F ,KC_G ,KC_C ,KC_R ,KC_L ,KC_BSLS + ,KC_D ,KC_H ,KC_T ,KC_N ,KC_S ,KC_EQL + ,KC_RPRN ,KC_B ,KC_M ,KC_W ,KC_V ,KC_Z ,KC_MSTP + ,TD(CT_MNS),KC_NO ,KC_NO ,KC_NO ,KC_NO ,OSL(NMDIA),M(OH_LEFT) ,KC_LEAD @@ -191,7 +197,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // left hand KC_GRV ,M(KF_1) ,M(KF_2) ,M(KF_3),M(KF_4),M(KF_5),M(A_PLVR) ,M(A_MPN) ,KC_COMM ,KC_DOT ,KC_L ,KC_W ,KC_M ,KC_LBRC -,LT(ARRW, KC_TAB) ,KC_A ,KC_O ,KC_E ,KC_I ,KC_U +,TD(CT_TA) ,KC_A ,KC_O ,KC_E ,KC_I ,KC_U ,KC_MPLY ,KC_SLSH ,KC_Z ,KC_QUOT,KC_K ,KC_X ,KC_LPRN ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,TD(CT_CLN) @@ -200,11 +206,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ,KC_BSPC,F(F_SFT),M(A_ESC) // right hand - ,KC_APP ,M(KF_6),M(KF_7),M(KF_8),M(KF_9) ,M(KF_10) ,KC_F11 - ,KC_RBRC ,KC_F ,KC_H ,KC_C ,KC_P ,KC_Y ,KC_BSLS - ,KC_D ,KC_R ,KC_T ,KC_N ,KC_S ,LT(ARRW, KC_EQL) - ,KC_RPRN ,KC_B ,KC_G ,KC_V ,KC_J ,KC_Q ,KC_MSTP - ,KC_MINS,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_APP ,M(KF_6),M(KF_7) ,M(KF_8),M(KF_9) ,M(KF_10) ,KC_F11 + ,KC_RBRC ,KC_F ,KC_H ,KC_C ,KC_P ,KC_Y ,KC_BSLS + ,KC_D ,KC_R ,KC_T ,KC_N ,KC_S ,KC_EQL + ,KC_RPRN ,KC_B ,KC_G ,KC_V ,KC_J ,KC_Q ,KC_MSTP + ,TD(CT_MNS),KC_NO ,KC_NO ,KC_NO ,KC_NO ,OSL(NMDIA),M(OH_LEFT) ,KC_LEAD @@ -892,24 +898,92 @@ void ang_tap (uint16_t codes[]) { register_code (code); \ unregister_code (code) -void ang_tap_dance (qk_tap_dance_state_t *state) { - switch (state->keycode) { - case TD(CT_CLN): - if (state->count == 1) { - register_code (KC_RSFT); - register_code (KC_SCLN); - unregister_code (KC_SCLN); - unregister_code (KC_RSFT); - } else if (state->count == 2) { - register_code (KC_SCLN); - unregister_code (KC_SCLN); - reset_tap_dance (state); - } +void ang_tap_dance_cln_finished (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + register_code (KC_RSFT); + register_code (KC_SCLN); + } else if (state->count == 2) { + register_code (KC_SCLN); + } +} + +void ang_tap_dance_cln_reset (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + unregister_code (KC_SCLN); + unregister_code (KC_RSFT); + } else if (state->count == 2) { + unregister_code (KC_SCLN); } } +void ang_tap_dance_mns_finished (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + register_code (KC_MINS); + } else if (state->count == 2) { + register_code (KC_RSFT); + register_code (KC_MINS); + } +} + +void ang_tap_dance_mns_reset (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + unregister_code (KC_MINS); + } else if (state->count == 2) { + unregister_code (KC_RSFT); + unregister_code (KC_MINS); + } +} + +typedef struct { + bool layer_toggle; + bool sticky; + bool finished_once; +} td_ta_state_t; + +void ang_tap_dance_ta_finished (qk_tap_dance_state_t *state, void *user_data) { + td_ta_state_t *td_ta = (td_ta_state_t *) user_data; + + if (td_ta->finished_once) { + return; + } + + if (td_ta->sticky) { + td_ta->sticky = false; + td_ta->layer_toggle = false; + layer_off (ARRW); + return; + } + + td_ta->finished_once = true; + if (state->count == 1 && !state->pressed) { + register_code (KC_TAB); + td_ta->sticky = false; + td_ta->layer_toggle = false; + } else { + td_ta->layer_toggle = true; + layer_on (ARRW); + td_ta->sticky = (state->count == 2); + } +} + +void ang_tap_dance_ta_reset (qk_tap_dance_state_t *state, void *user_data) { + td_ta_state_t *td_ta = (td_ta_state_t *) user_data; + + if (!td_ta->layer_toggle) + unregister_code (KC_TAB); + if (!td_ta->sticky) + layer_off (ARRW); + + td_ta->finished_once = false; +} + const qk_tap_dance_action_t tap_dance_actions[] = { - [CT_CLN] = ACTION_TAP_DANCE_FN (ang_tap_dance) + [CT_CLN] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, ang_tap_dance_cln_finished, ang_tap_dance_cln_reset) + ,[CT_MNS] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, ang_tap_dance_mns_finished, ang_tap_dance_mns_reset) + ,[CT_TA] = { + .fn = { NULL, ang_tap_dance_ta_finished, ang_tap_dance_ta_reset }, + .user_data = (void *)&((td_ta_state_t) { false, false, false }) + } }; // Runs constantly in the background, in a loop. @@ -1002,9 +1076,18 @@ void matrix_scan_user(void) { leading = false; leader_end (); +#if KEYLOGGER_ENABLE SEQ_ONE_KEY (KC_D) { + ergodox_led_all_on(); + _delay_ms(100); + ergodox_led_all_off(); log_enable = !log_enable; } +#endif + + SEQ_ONE_KEY (KC_T) { + time_travel = !time_travel; + } SEQ_ONE_KEY (KC_U) { ang_do_unicode (); @@ -1093,13 +1176,41 @@ void matrix_scan_user(void) { } } +static uint16_t last4[4]; + bool process_record_user (uint16_t keycode, keyrecord_t *record) { +#if KEYLOGGER_ENABLE uint8_t layer = biton32(layer_state); if (log_enable && layer == BASE) { xprintf ("KL: col=%d, row=%d\n", record->event.key.col, record->event.key.row); } +#endif + + if (time_travel && !record->event.pressed) { + uint8_t p; + + // shift cache one to the left + for (p = 0; p < 3; p++) { + last4[p] = last4[p + 1]; + } + last4[3] = keycode; + + if (last4[0] == KC_D && last4[1] == KC_A && last4[2] == KC_T && last4[3] == KC_E) { + uint16_t codes[] = {KC_E, KC_SPC, KC_MINS, KC_D, KC_SPC, KC_QUOT, 0}; + ang_tap (codes); + register_code (KC_RSFT); + register_code (KC_EQL); + unregister_code (KC_EQL); + unregister_code (KC_RSFT); + + uint16_t codes2[] = {KC_4, KC_SPC, KC_D, KC_A, KC_Y, KC_S, KC_QUOT, 0}; + ang_tap (codes2); + + return false; + } + } return true; } diff --git a/keyboards/ergodox_ez/keymaps/algernon/readme.md b/keyboards/ergodox_ez/keymaps/algernon/readme.md index 2312dc59e..6fe177511 100644 --- a/keyboards/ergodox_ez/keymaps/algernon/readme.md +++ b/keyboards/ergodox_ez/keymaps/algernon/readme.md @@ -50,6 +50,7 @@ At its core, this is a Dvorak layout, with some minor changes. The more interest - `LEAD a` makes the [ADORE layer](#adore-layer) the default. - `LEAD v` prints the firmware version, the keyboard and the keymap. - `LEAD d` toggles logging keypress positions to the HID console. + - `LEAD t` toggles time travel. Figuring out the current `date` is left as an exercise to the reader. ## ADORE layer @@ -148,6 +149,14 @@ The keymap default to forcing NKRO, which seems to upset Windows, and except the # Changelog +## v1.4 - 2016-07-29 + +* When toggling the key logging on or off, the LEDs will do a little dance. +* The keylogger is now optional, but enabled by default. Use `KEYLOGGER_ENABLE=no` on the `make` command line to disable it. +* The `TAB`/`ARRW` key was turned into a tap-dance key, allowing one to toggle the **ARROW** layer on by double-tapping, and as such, avoid the need to hold the key. +* The `-`/`_` key was turned into a tap-dance key too. +* There is now a way to travel time with the keyboard, toggle the feature on by hitting `LEAD t`. + ## v1.3 - 2016-07-06 * Added support for logging keys, by pressing `LEAD d`. Also included is a tool to generate a [heatmap](#heatmap) out of the logs. diff --git a/keyboards/ergodox_ez/keymaps/algernon/tools/heatmap-adore-layout.json b/keyboards/ergodox_ez/keymaps/algernon/tools/heatmap-adore-layout.json new file mode 100644 index 000000000..544f61ce8 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/algernon/tools/heatmap-adore-layout.json @@ -0,0 +1,533 @@ +[ + { + "backcolor": "#ffffff", + "name": "ErgoDox - algernon's layout: Heatmap", + "author": "Gergely Nagy ", + "notes": "See [here](https://github.com/algernon/ergodox-layout#readme) for the QMK keymap source.", + "switchMount": "cherry", + "switchBrand": "gateron", + "switchType": "KS-3-Tea", + "pcb": true, + "css": ".keyborder { -webkit-filter: blur(5px); filter: blur(5px); } .keytop { -webkit-filter: blur(10px); } .keylabels { border: 1px solid black; }" + }, + [ + { + "x": 3.5, + "c": "#a7d0db", + "fa": [ + 0, + 0, + 2 + ] + }, + "#\n3\nF3", + { + "x": 10.5, + "c": "#a7d0db", + "t": "#000000", + "a": 4, + "fa": [ + 0, + 0, + 2 + ] + }, + "*\n8\nF8" + ], + [ + { + "y": -0.875, + "x": 2.5, + "c": "#bfbad1", + "t": "#0d0d0b" + }, + "@\n2\nF2", + { + "x": 1, + "c": "#7adabd", + "t": "#000000" + }, + "$\n4\nF4", + { + "x": 8.5 + }, + "&\n7\nF7", + { + "x": 1, + "c": "#bfbad1", + "t": "#0d0d0b" + }, + "(\n9\nF9" + ], + [ + { + "y": -0.875, + "x": 5.5, + "c": "#7adabd", + "t": "#000000" + }, + "%\n5\nF5", + { + "c": "#f9cd31", + "a": 7, + "f": 2 + }, + "STENO", + { + "x": 4.5, + "f": 6 + }, + "", + { + "c": "#7adabd", + "a": 4, + "f": 3, + "fa": [ + 0, + 0, + 2 + ] + }, + "^\n6\nF6" + ], + [ + { + "y": -0.875, + "c": "#ffb2d2", + "f": 3, + "w": 1.5 + }, + "\n\n~\n`", + { + "t": "#0d0d0b" + }, + "!\n1\nF1", + { + "x": 14.5 + }, + ")\n0\nF10", + { + "a": 7, + "w": 1.5 + }, + "F11" + ], + [ + { + "y": -0.375, + "x": 3.5, + "c": "#a7d0db", + "t": "#000000", + "a": 6 + }, + "L", + { + "x": 10.5 + }, + "C" + ], + [ + { + "y": -0.875, + "x": 2.5, + "c": "#bfbad1", + "t": "#0d0d0b", + "a": 4 + }, + ">\n.", + { + "x": 1, + "c": "#7adabd", + "t": "#000000", + "a": 6 + }, + "W", + { + "x": 8.5 + }, + "H", + { + "x": 1, + "c": "#bfbad1", + "t": "#0d0d0b" + }, + "P" + ], + [ + { + "y": -0.875, + "x": 5.5, + "c": "#7adabd", + "t": "#000000" + }, + "M", + { + "c": "#93c9b7", + "a": 4, + "h": 1.5 + }, + "{\n[", + { + "x": 4.5, + "h": 1.5 + }, + "}\n]", + { + "c": "#7adabd", + "a": 6 + }, + "F" + ], + [ + { + "y": -0.875, + "c": "#ffb07b", + "t": "#0d0d0b", + "f": 6, + "w": 1.5 + }, + "\n\n", + { + "c": "#ffb2d2", + "a": 4, + "f": 3 + }, + "<\n,", + { + "x": 14.5, + "a": 6 + }, + "Y", + { + "a": 4, + "w": 1.5 + }, + "|\n\\" + ], + [ + { + "y": -0.375, + "x": 3.5, + "c": "#a7d0db", + "t": "#000000", + "a": 6 + }, + "E", + { + "x": 10.5 + }, + "T" + ], + [ + { + "y": -0.875, + "x": 2.5, + "c": "#bfbad1", + "t": "#0d0d0b" + }, + "O", + { + "x": 1, + "c": "#7adabd", + "t": "#000000", + "n": true + }, + "I", + { + "x": 8.5, + "n": true + }, + "R", + { + "x": 1, + "c": "#bfbad1", + "t": "#0d0d0b" + }, + "N" + ], + [ + { + "y": -0.875, + "x": 5.5, + "c": "#7adabd", + "t": "#000000" + }, + "U", + { + "x": 6.5 + }, + "D" + ], + [ + { + "y": -0.875, + "c": "#ffb2d2", + "t": "#0d0d0b", + "fa": [ + 6 + ], + "w": 1.5 + }, + "\n\nTab", + { + "f": 3 + }, + "A", + { + "x": 14.5, + "f": 3 + }, + "S", + { + "a": 4, + "fa": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6 + ], + "w": 1.5 + }, + "+\n=" + ], + [ + { + "y": -0.625, + "x": 6.5, + "c": "#93c9b7", + "t": "#000000", + "a": 7, + "h": 1.5 + }, + "(", + { + "x": 4.5, + "h": 1.5 + }, + ")" + ], + [ + { + "y": -0.75, + "x": 3.5, + "c": "#a7d0db", + "a": 4, + "f": 3 + }, + "\"\n'", + { + "x": 10.5 + }, + "V" + ], + [ + { + "y": -0.875, + "x": 2.5, + "c": "#bfbad1", + "t": "#0d0d0b" + }, + "Z", + { + "x": 1, + "c": "#7adabd", + "t": "#000000" + }, + "K", + { + "x": 8.5 + }, + "G", + { + "x": 1, + "c": "#bfbad1", + "t": "#0d0d0b" + }, + "J" + ], + [ + { + "y": -0.875, + "x": 5.5, + "c": "#7adabd", + "t": "#000000" + }, + "X", + { + "x": 6.5 + }, + "B" + ], + [ + { + "y": -0.875, + "c": "#ffb07b", + "f": 9, + "w": 1.5 + }, + "\n\n", + { + "c": "#ffb2d2", + "t": "#0d0d0b", + "a": 4, + "f": 3 + }, + "?\n/", + { + "x": 14.5, + "a": 6 + }, + "Q", + { + "c": "#ffb07b", + "t": "#000000", + "f": 9, + "w": 1.5 + }, + "" + ], + [ + { + "y": -0.375, + "x": 3.5, + "c": "#d9dae0", + "g": true, + "a": 7, + "f": 3 + }, + "", + { + "x": 10.5 + }, + "" + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "", + { + "x": 1, + "c": "#d4872a", + "g": false, + "a": 5 + }, + ";\n:", + { + "x": 8.5 + }, + "_\n-", + { + "x": 1, + "c": "#d9dae0", + "g": true, + "a": 7 + }, + "" + ], + [ + { + "y": -0.75, + "x": 0.5 + }, + "", + {}, + "", + { + "x": 14.5 + }, + "", + {}, + "" + ], + [ + { + "r": 30, + "rx": 6.5, + "ry": 4.25, + "y": -1, + "x": 1, + "c": "#f9cd31", + "g": false + }, + "Alt", + { + "a": 4, + "fa": [ + 0, + 0, + 0, + 9 + ] + }, + "\n\n\n" + ], + [ + { + "c": "#d4872a", + "a": 7, + "f": 9, + "h": 2 + }, + "", + { + "h": 2 + }, + "", + { + "c": "#f9cd31", + "f": 3 + }, + "Ctrl" + ], + [ + { + "x": 2, + "c": "#e26757" + }, + "ESC" + ], + [ + { + "r": -30, + "rx": 13, + "y": -1, + "x": -3, + "c": "#f9cd31", + "f": 2 + }, + "MEDIA", + {}, + "1HAND" + ], + [ + { + "x": -3 + }, + "LEAD", + { + "c": "#d4872a", + "f": 9, + "h": 2 + }, + "", + { + "f": 3, + "h": 2 + }, + "SPC" + ], + [ + { + "x": -3, + "c": "#f9cd31", + "f": 2 + }, + "HUN" + ] +] -- cgit v1.2.3 From 9af995c59b2655fa347e43b1eab2122e72ef7fe3 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Thu, 7 Jul 2016 22:28:28 +0300 Subject: Initial structure for Ergodox as subprojects Only the EZ default keymaps compiles at the moment though. --- keyboards/ergodox/Makefile | 34 + keyboards/ergodox/ergodox.c | 8 + keyboards/ergodox/ergodox.h | 11 + keyboards/ergodox/ez/190hotfix.sh | 19 + keyboards/ergodox/ez/Makefile | 76 ++ keyboards/ergodox/ez/config.h | 84 ++ keyboards/ergodox/ez/ez.c | 85 ++ keyboards/ergodox/ez/ez.h | 122 ++ keyboards/ergodox/ez/i2cmaster.h | 178 +++ keyboards/ergodox/ez/matrix.c | 382 ++++++ keyboards/ergodox/ez/readme.md | 44 + keyboards/ergodox/ez/twimaster.c | 208 ++++ keyboards/ergodox/ez/util/compile_keymap.py | 710 ++++++++++++ keyboards/ergodox/ez/util/readme.md | 3 + keyboards/ergodox/infinity/MEMO.txt | 385 +++++++ keyboards/ergodox/infinity/Makefile | 77 ++ keyboards/ergodox/infinity/bootloader_defs.h | 1 + keyboards/ergodox/infinity/chconf.h | 524 +++++++++ keyboards/ergodox/infinity/config.h | 80 ++ .../drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h | 113 ++ .../infinity/drivers/gdisp/IS31FL3731C/driver.mk | 2 + .../drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c | 333 ++++++ .../drivers/gdisp/IS31FL3731C/gdisp_lld_config.h | 36 + .../infinity/drivers/gdisp/emulator_lcd/driver.mk | 2 + .../drivers/gdisp/emulator_lcd/emulator_lcd.c | 10 + .../infinity/drivers/gdisp/emulator_led/driver.mk | 2 + .../drivers/gdisp/emulator_led/emulator_led.c | 10 + .../drivers/gdisp/st7565ergodox/board_ST7565.h | 127 ++ .../infinity/drivers/gdisp/st7565ergodox/driver.mk | 2 + .../drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c | 292 +++++ .../drivers/gdisp/st7565ergodox/gdisp_lld_config.h | 26 + .../infinity/drivers/gdisp/st7565ergodox/st7565.h | 37 + keyboards/ergodox/infinity/gfxconf.h | 331 ++++++ keyboards/ergodox/infinity/halconf.h | 353 ++++++ keyboards/ergodox/infinity/infinity.c | 76 ++ keyboards/ergodox/infinity/infinity.h | 44 + .../ergodox/infinity/keymaps/default/keymap.c | 114 ++ .../ergodox/infinity/keymaps/default/visualizer.c | 168 +++ keyboards/ergodox/infinity/led.c | 49 + keyboards/ergodox/infinity/matrix.c | 169 +++ keyboards/ergodox/infinity/mcuconf.h | 74 ++ keyboards/ergodox/keymaps/ab/Makefile | 9 + keyboards/ergodox/keymaps/ab/keyboard-layout.json | 387 +++++++ keyboards/ergodox/keymaps/ab/keyboard-layout.png | Bin 0 -> 80776 bytes keyboards/ergodox/keymaps/ab/keymap.c | 155 +++ keyboards/ergodox/keymaps/ab/readme.md | 21 + keyboards/ergodox/keymaps/adnw_k_o_y/keymap.c | 185 +++ keyboards/ergodox/keymaps/adnw_k_o_y/readme.md | 7 + keyboards/ergodox/keymaps/alexjj/keymap.c | 238 ++++ keyboards/ergodox/keymaps/alexjj/readme.md | 179 +++ keyboards/ergodox/keymaps/alexjj/rl-layout.jpg | Bin 0 -> 833107 bytes keyboards/ergodox/keymaps/algernon/COPYING | 674 +++++++++++ keyboards/ergodox/keymaps/algernon/Makefile | 35 + keyboards/ergodox/keymaps/algernon/config.h | 27 + .../keymaps/algernon/images/adore-layer.png | Bin 0 -> 95615 bytes .../ergodox/keymaps/algernon/images/base-layer.png | Bin 0 -> 95654 bytes .../ergodox/keymaps/algernon/images/heatmap.png | Bin 0 -> 137912 bytes .../ergodox/keymaps/algernon/images/hun-layer.png | Bin 0 -> 67924 bytes .../keymaps/algernon/images/nav-n-media-layer.png | Bin 0 -> 94837 bytes .../keymaps/algernon/images/one-handed-layer.png | Bin 0 -> 91140 bytes .../keymaps/algernon/images/steno-layer.png | Bin 0 -> 69557 bytes keyboards/ergodox/keymaps/algernon/keymap.c | 1216 ++++++++++++++++++++ keyboards/ergodox/keymaps/algernon/readme.md | 198 ++++ .../algernon/tools/heatmap-adore-layout.json | 533 +++++++++ .../algernon/tools/heatmap-base-layout.json | 533 +++++++++ .../keymaps/algernon/tools/log-to-heatmap.py | 145 +++ .../ergodox/keymaps/algernon/tools/max-focused | 5 + keyboards/ergodox/keymaps/andrew_osx/keymap.c | 187 +++ keyboards/ergodox/keymaps/bepo/bepo.png | Bin 0 -> 79747 bytes keyboards/ergodox/keymaps/bepo/keymap.c | 311 +++++ keyboards/ergodox/keymaps/bepo/readme.md | 34 + keyboards/ergodox/keymaps/coderkun_neo2/Makefile | 2 + keyboards/ergodox/keymaps/coderkun_neo2/keymap.c | 281 +++++ keyboards/ergodox/keymaps/coderkun_neo2/readme.md | 31 + keyboards/ergodox/keymaps/colemak/keymap.c | 184 +++ keyboards/ergodox/keymaps/colemak/readme.md | 4 + .../keymaps/colemak_osx_pc_no/keyboard-layout.png | Bin 0 -> 103158 bytes .../ergodox/keymaps/colemak_osx_pc_no/keymap.c | 264 +++++ .../ergodox/keymaps/colemak_osx_pc_no/readme.md | 23 + .../ergodox/keymaps/csharp_dev/csharp_dev.png | Bin 0 -> 97642 bytes .../keymaps/csharp_dev/csharp_dev_legend.png | Bin 0 -> 387797 bytes keyboards/ergodox/keymaps/csharp_dev/keymap.c | 239 ++++ keyboards/ergodox/keymaps/csharp_dev/readme.md | 47 + keyboards/ergodox/keymaps/dave/keymap.c | 199 ++++ keyboards/ergodox/keymaps/dave/readme.md | 38 + keyboards/ergodox/keymaps/default/default.png | Bin 0 -> 193672 bytes .../ergodox/keymaps/default/default_highres.png | Bin 0 -> 1459389 bytes keyboards/ergodox/keymaps/default/keymap.c | 182 +++ keyboards/ergodox/keymaps/default/readme.md | 10 + .../keymaps/default_osx/default_osx_highres.png | Bin 0 -> 772418 bytes keyboards/ergodox/keymaps/default_osx/keymap.c | 187 +++ keyboards/ergodox/keymaps/default_osx/readme.md | 8 + keyboards/ergodox/keymaps/dragon788/keymap.c | 229 ++++ keyboards/ergodox/keymaps/dvorak/dvorak.png | Bin 0 -> 87314 bytes keyboards/ergodox/keymaps/dvorak/keymap.c | 184 +++ .../dvorak_intl_squisher/keyboard-layout0.png | Bin 0 -> 73585 bytes .../dvorak_intl_squisher/keyboard-layout1.png | Bin 0 -> 59122 bytes .../dvorak_intl_squisher/keyboard-layout2.png | Bin 0 -> 53319 bytes .../ergodox/keymaps/dvorak_intl_squisher/keymap.c | 185 +++ .../ergodox/keymaps/dvorak_intl_squisher/readme.md | 29 + keyboards/ergodox/keymaps/dvorak_spanish/keymap.c | 284 +++++ keyboards/ergodox/keymaps/dvorak_spanish/readme.md | 99 ++ .../keymaps/emacs_osx_dk/default_highres.png | Bin 0 -> 142146 bytes keyboards/ergodox/keymaps/emacs_osx_dk/keymap.c | 184 +++ keyboards/ergodox/keymaps/emacs_osx_dk/readme.md | 10 + .../ergodox/keymaps/erez_experimental/Makefile | 9 + .../ergodox/keymaps/erez_experimental/config.h | 12 + .../ergodox/keymaps/erez_experimental/keymap.c | 199 ++++ .../ergodox/keymaps/erez_experimental/readme.md | 51 + keyboards/ergodox/keymaps/german-kinergo/keymap.c | 210 ++++ .../ergodox/keymaps/german-kinergo/layout-code.png | Bin 0 -> 55386 bytes .../keymaps/german-kinergo/layout-media.png | Bin 0 -> 67634 bytes .../ergodox/keymaps/german-kinergo/layout.png | Bin 0 -> 71175 bytes keyboards/ergodox/keymaps/german-kinergo/readme.md | 35 + .../keymaps/german-manuneo/compile_keymap.py | 710 ++++++++++++ keyboards/ergodox/keymaps/german-manuneo/keymap.c | 783 +++++++++++++ keyboards/ergodox/keymaps/german-manuneo/keymap.md | 188 +++ keyboards/ergodox/keymaps/german/keymap.c | 185 +++ keyboards/ergodox/keymaps/j3rn/keymap.c | 187 +++ keyboards/ergodox/keymaps/j3rn/readme.md | 29 + keyboards/ergodox/keymaps/jack/keymap.c | 118 ++ .../keymaps/jacobono/img/colemak-default-layer.png | Bin 0 -> 70434 bytes .../keymaps/jacobono/img/number-dpad-layer.png | Bin 0 -> 46225 bytes .../ergodox/keymaps/jacobono/img/symbol-layer.png | Bin 0 -> 49615 bytes keyboards/ergodox/keymaps/jacobono/keymap.c | 273 +++++ keyboards/ergodox/keymaps/jacobono/readme.md | 34 + keyboards/ergodox/keymaps/jgarr/keymap.c | 184 +++ keyboards/ergodox/keymaps/josh/keymap.c | 205 ++++ keyboards/ergodox/keymaps/josh/readme.md | 8 + keyboards/ergodox/keymaps/kastyle/keymap.c | 184 +++ keyboards/ergodox/keymaps/kines-ish/keymap.c | 184 +++ keyboards/ergodox/keymaps/kines-ish/readme.md | 19 + keyboards/ergodox/keymaps/maz/keymap.c | 229 ++++ keyboards/ergodox/keymaps/maz/readme.md | 121 ++ keyboards/ergodox/keymaps/mpiechotka/keymap.c | 276 +++++ keyboards/ergodox/keymaps/mpiechotka/readme.md | 6 + keyboards/ergodox/keymaps/msc/img/code_layer.png | Bin 0 -> 71266 bytes keyboards/ergodox/keymaps/msc/img/main_layer.png | Bin 0 -> 90624 bytes keyboards/ergodox/keymaps/msc/img/media_layer.png | Bin 0 -> 75750 bytes keyboards/ergodox/keymaps/msc/keymap.c | 184 +++ keyboards/ergodox/keymaps/msc/readme.md | 32 + keyboards/ergodox/keymaps/naps62/keymap.c | 187 +++ keyboards/ergodox/keymaps/naps62/readme.md | 29 + keyboards/ergodox/keymaps/ordinary/keymap.c | 454 ++++++++ .../ergodox/keymaps/ordinary/ordinary-base.png | Bin 0 -> 99605 bytes .../ergodox/keymaps/ordinary/ordinary-base.txt | 27 + .../ergodox/keymaps/ordinary/ordinary-media.png | Bin 0 -> 124144 bytes .../ergodox/keymaps/ordinary/ordinary-media.txt | 27 + .../ergodox/keymaps/ordinary/ordinary-special.png | Bin 0 -> 63065 bytes .../ergodox/keymaps/ordinary/ordinary-special.txt | 27 + .../ergodox/keymaps/ordinary/ordinary-symbol.png | Bin 0 -> 103735 bytes .../ergodox/keymaps/ordinary/ordinary-symbol.txt | 27 + keyboards/ergodox/keymaps/ordinary/readme.md | 103 ++ keyboards/ergodox/keymaps/osx_de/keymap.c | 364 ++++++ .../ergodox/keymaps/osx_de/osx_de_highres.png | Bin 0 -> 298446 bytes keyboards/ergodox/keymaps/osx_de/readme.md | 41 + keyboards/ergodox/keymaps/osx_de_adnw_koy/keymap.c | 174 +++ .../osx_de_adnw_koy/osx_de_adnw_koy_highres.png | Bin 0 -> 183892 bytes .../ergodox/keymaps/osx_de_experimental/keymap.c | 597 ++++++++++ .../osx_de_experimental_highres.png | Bin 0 -> 303904 bytes .../ergodox/keymaps/osx_de_experimental/readme.md | 22 + keyboards/ergodox/keymaps/osx_fr/keymap.c | 187 +++ .../ergodox/keymaps/osx_kinesis_pnut/keymap.c | 191 +++ keyboards/ergodox/keymaps/plover/keymap.c | 228 ++++ keyboards/ergodox/keymaps/plums/keymap.c | 229 ++++ keyboards/ergodox/keymaps/plums/plums.png | Bin 0 -> 223300 bytes keyboards/ergodox/keymaps/plums/readme.md | 11 + .../keymaps/romanzolotarev-norman-osx/keymap.c | 46 + .../keymaps/romanzolotarev-norman-osx/readme.md | 28 + .../romanzolotarev-norman-osx.png | Bin 0 -> 96954 bytes .../romanzolotarev-norman-plover-osx-hjkl/keymap.c | 134 +++ .../readme.md | 50 + .../romanzolotarev-norman-plover-osx-hjkl.png | Bin 0 -> 130692 bytes .../romanzolotarev-norman-plover-osx/keymap.c | 134 +++ .../romanzolotarev-norman-plover-osx/readme.md | 50 + .../romanzolotarev-norman-plover-osx.png | Bin 0 -> 130464 bytes .../romanzolotarev-norman-qwerty-osx/keymap.c | 74 ++ .../romanzolotarev-norman-qwerty-osx/readme.md | 34 + .../romanzolotarev-norman-qwerty-osx.png | Bin 0 -> 100627 bytes keyboards/ergodox/keymaps/sneako/keymap.c | 187 +++ keyboards/ergodox/keymaps/sneako/readme.md | 6 + keyboards/ergodox/keymaps/software_neo2/keymap.c | 139 +++ keyboards/ergodox/keymaps/supercoder/config_user.h | 9 + .../ergodox/keymaps/supercoder/images/layout.png | Bin 0 -> 65607 bytes .../keymaps/supercoder/images/supercoder_2000.jpg | Bin 0 -> 75444 bytes keyboards/ergodox/keymaps/supercoder/keymap.c | 75 ++ keyboards/ergodox/keymaps/supercoder/makefile.mk | 6 + keyboards/ergodox/keymaps/supercoder/readme.md | 29 + keyboards/ergodox/keymaps/techtomas/keymap.c | 231 ++++ keyboards/ergodox/keymaps/techtomas/readme.md | 57 + keyboards/ergodox/keymaps/teckinesis/keymap.c | 455 ++++++++ .../keymaps/teckinesis/ordinary-special.png | Bin 0 -> 63065 bytes .../keymaps/teckinesis/ordinary-special.txt | 27 + keyboards/ergodox/keymaps/teckinesis/readme.md | 45 + .../keymaps/teckinesis/teckinesis-base.json | 434 +++++++ .../ergodox/keymaps/teckinesis/teckinesis-base.png | Bin 0 -> 93743 bytes .../keymaps/teckinesis/teckinesis-media.json | 436 +++++++ .../keymaps/teckinesis/teckinesis-media.png | Bin 0 -> 112216 bytes .../keymaps/teckinesis/teckinesis-symbol.json | 422 +++++++ .../keymaps/teckinesis/teckinesis-symbol.png | Bin 0 -> 97350 bytes keyboards/ergodox/keymaps/tkuichooseyou/README.md | 13 + .../ergodox/keymaps/tkuichooseyou/compiled.hex | 1137 ++++++++++++++++++ keyboards/ergodox/keymaps/tkuichooseyou/keymap.c | 184 +++ keyboards/ergodox/keymaps/tm2030/keymap.c | 242 ++++ keyboards/ergodox/keymaps/tm2030/readme.md | 136 +++ keyboards/ergodox/keymaps/tonyabra_osx/keymap.c | 184 +++ keyboards/ergodox/keymaps/tonyabra_osx/readme.md | 5 + keyboards/ergodox/keymaps/townk_osx/config.h | 92 ++ keyboards/ergodox/keymaps/townk_osx/keymap.c | 285 +++++ keyboards/ergodox/keymaps/townk_osx/makefile.mk | 4 + keyboards/ergodox/keymaps/townk_osx/readme.md | 77 ++ .../ergodox/keymaps/townk_osx/townk_osx_base.png | Bin 0 -> 785859 bytes .../ergodox/keymaps/townk_osx/townk_osx_fn.png | Bin 0 -> 390041 bytes .../ergodox/keymaps/townk_osx/townk_osx_keypad.png | Bin 0 -> 424425 bytes keyboards/ergodox/keymaps/twey/keymap.c | 221 ++++ keyboards/ergodox/keymaps/twey/readme.md | 17 + keyboards/ergodox/keymaps/workman_osx_mdw/keymap.c | 366 ++++++ keyboards/ergodox/keymaps/zweihander-osx/keymap.c | 233 ++++ .../ergodox/keymaps/zweihander-osx/readme.markdown | 45 + keyboards/ergodox_ez/190hotfix.sh | 19 - keyboards/ergodox_ez/Makefile | 86 -- keyboards/ergodox_ez/config.h | 84 -- keyboards/ergodox_ez/ergodox_ez.c | 85 -- keyboards/ergodox_ez/ergodox_ez.h | 122 -- keyboards/ergodox_ez/i2cmaster.h | 178 --- keyboards/ergodox_ez/keymaps/ab/Makefile | 9 - .../ergodox_ez/keymaps/ab/keyboard-layout.json | 387 ------- .../ergodox_ez/keymaps/ab/keyboard-layout.png | Bin 80776 -> 0 bytes keyboards/ergodox_ez/keymaps/ab/keymap.c | 155 --- keyboards/ergodox_ez/keymaps/ab/readme.md | 21 - keyboards/ergodox_ez/keymaps/adnw_k_o_y/keymap.c | 185 --- keyboards/ergodox_ez/keymaps/adnw_k_o_y/readme.md | 7 - keyboards/ergodox_ez/keymaps/alexjj/keymap.c | 238 ---- keyboards/ergodox_ez/keymaps/alexjj/readme.md | 179 --- keyboards/ergodox_ez/keymaps/alexjj/rl-layout.jpg | Bin 833107 -> 0 bytes keyboards/ergodox_ez/keymaps/algernon/COPYING | 674 ----------- keyboards/ergodox_ez/keymaps/algernon/Makefile | 35 - keyboards/ergodox_ez/keymaps/algernon/config.h | 27 - .../keymaps/algernon/images/adore-layer.png | Bin 95615 -> 0 bytes .../keymaps/algernon/images/base-layer.png | Bin 95654 -> 0 bytes .../ergodox_ez/keymaps/algernon/images/heatmap.png | Bin 137912 -> 0 bytes .../keymaps/algernon/images/hun-layer.png | Bin 67924 -> 0 bytes .../keymaps/algernon/images/nav-n-media-layer.png | Bin 94837 -> 0 bytes .../keymaps/algernon/images/one-handed-layer.png | Bin 91140 -> 0 bytes .../keymaps/algernon/images/steno-layer.png | Bin 69557 -> 0 bytes keyboards/ergodox_ez/keymaps/algernon/keymap.c | 1216 -------------------- keyboards/ergodox_ez/keymaps/algernon/readme.md | 198 ---- .../algernon/tools/heatmap-adore-layout.json | 533 --------- .../algernon/tools/heatmap-base-layout.json | 533 --------- .../keymaps/algernon/tools/log-to-heatmap.py | 145 --- .../ergodox_ez/keymaps/algernon/tools/max-focused | 5 - keyboards/ergodox_ez/keymaps/andrew_osx/keymap.c | 187 --- keyboards/ergodox_ez/keymaps/bepo/bepo.png | Bin 79747 -> 0 bytes keyboards/ergodox_ez/keymaps/bepo/keymap.c | 311 ----- keyboards/ergodox_ez/keymaps/bepo/readme.md | 34 - .../ergodox_ez/keymaps/coderkun_neo2/Makefile | 2 - .../ergodox_ez/keymaps/coderkun_neo2/keymap.c | 281 ----- .../ergodox_ez/keymaps/coderkun_neo2/readme.md | 31 - keyboards/ergodox_ez/keymaps/colemak/keymap.c | 184 --- keyboards/ergodox_ez/keymaps/colemak/readme.md | 4 - .../keymaps/colemak_osx_pc_no/keyboard-layout.png | Bin 103158 -> 0 bytes .../ergodox_ez/keymaps/colemak_osx_pc_no/keymap.c | 264 ----- .../ergodox_ez/keymaps/colemak_osx_pc_no/readme.md | 23 - .../ergodox_ez/keymaps/csharp_dev/csharp_dev.png | Bin 97642 -> 0 bytes .../keymaps/csharp_dev/csharp_dev_legend.png | Bin 387797 -> 0 bytes keyboards/ergodox_ez/keymaps/csharp_dev/keymap.c | 239 ---- keyboards/ergodox_ez/keymaps/csharp_dev/readme.md | 47 - keyboards/ergodox_ez/keymaps/dave/keymap.c | 199 ---- keyboards/ergodox_ez/keymaps/dave/readme.md | 38 - keyboards/ergodox_ez/keymaps/default/default.png | Bin 193672 -> 0 bytes .../ergodox_ez/keymaps/default/default_highres.png | Bin 1459389 -> 0 bytes keyboards/ergodox_ez/keymaps/default/keymap.c | 182 --- keyboards/ergodox_ez/keymaps/default/readme.md | 10 - .../keymaps/default_osx/default_osx_highres.png | Bin 772418 -> 0 bytes keyboards/ergodox_ez/keymaps/default_osx/keymap.c | 187 --- keyboards/ergodox_ez/keymaps/default_osx/readme.md | 8 - keyboards/ergodox_ez/keymaps/dragon788/keymap.c | 229 ---- keyboards/ergodox_ez/keymaps/dvorak/dvorak.png | Bin 87314 -> 0 bytes keyboards/ergodox_ez/keymaps/dvorak/keymap.c | 184 --- .../dvorak_intl_squisher/keyboard-layout0.png | Bin 73585 -> 0 bytes .../dvorak_intl_squisher/keyboard-layout1.png | Bin 59122 -> 0 bytes .../dvorak_intl_squisher/keyboard-layout2.png | Bin 53319 -> 0 bytes .../keymaps/dvorak_intl_squisher/keymap.c | 185 --- .../keymaps/dvorak_intl_squisher/readme.md | 29 - .../ergodox_ez/keymaps/dvorak_spanish/keymap.c | 284 ----- .../ergodox_ez/keymaps/dvorak_spanish/readme.md | 99 -- .../keymaps/emacs_osx_dk/default_highres.png | Bin 142146 -> 0 bytes keyboards/ergodox_ez/keymaps/emacs_osx_dk/keymap.c | 184 --- .../ergodox_ez/keymaps/emacs_osx_dk/readme.md | 10 - .../ergodox_ez/keymaps/erez_experimental/Makefile | 9 - .../ergodox_ez/keymaps/erez_experimental/config.h | 12 - .../ergodox_ez/keymaps/erez_experimental/keymap.c | 199 ---- .../ergodox_ez/keymaps/erez_experimental/readme.md | 51 - .../ergodox_ez/keymaps/german-kinergo/keymap.c | 210 ---- .../keymaps/german-kinergo/layout-code.png | Bin 55386 -> 0 bytes .../keymaps/german-kinergo/layout-media.png | Bin 67634 -> 0 bytes .../ergodox_ez/keymaps/german-kinergo/layout.png | Bin 71175 -> 0 bytes .../ergodox_ez/keymaps/german-kinergo/readme.md | 35 - .../keymaps/german-manuneo/compile_keymap.py | 710 ------------ .../ergodox_ez/keymaps/german-manuneo/keymap.c | 783 ------------- .../ergodox_ez/keymaps/german-manuneo/keymap.md | 188 --- keyboards/ergodox_ez/keymaps/german/keymap.c | 185 --- keyboards/ergodox_ez/keymaps/j3rn/keymap.c | 187 --- keyboards/ergodox_ez/keymaps/j3rn/readme.md | 29 - keyboards/ergodox_ez/keymaps/jack/keymap.c | 118 -- .../keymaps/jacobono/img/colemak-default-layer.png | Bin 70434 -> 0 bytes .../keymaps/jacobono/img/number-dpad-layer.png | Bin 46225 -> 0 bytes .../keymaps/jacobono/img/symbol-layer.png | Bin 49615 -> 0 bytes keyboards/ergodox_ez/keymaps/jacobono/keymap.c | 273 ----- keyboards/ergodox_ez/keymaps/jacobono/readme.md | 34 - keyboards/ergodox_ez/keymaps/jgarr/keymap.c | 184 --- keyboards/ergodox_ez/keymaps/josh/keymap.c | 205 ---- keyboards/ergodox_ez/keymaps/josh/readme.md | 8 - keyboards/ergodox_ez/keymaps/kastyle/keymap.c | 184 --- keyboards/ergodox_ez/keymaps/kines-ish/keymap.c | 184 --- keyboards/ergodox_ez/keymaps/kines-ish/readme.md | 19 - keyboards/ergodox_ez/keymaps/maz/keymap.c | 229 ---- keyboards/ergodox_ez/keymaps/maz/readme.md | 121 -- keyboards/ergodox_ez/keymaps/mpiechotka/keymap.c | 276 ----- keyboards/ergodox_ez/keymaps/mpiechotka/readme.md | 6 - .../ergodox_ez/keymaps/msc/img/code_layer.png | Bin 71266 -> 0 bytes .../ergodox_ez/keymaps/msc/img/main_layer.png | Bin 90624 -> 0 bytes .../ergodox_ez/keymaps/msc/img/media_layer.png | Bin 75750 -> 0 bytes keyboards/ergodox_ez/keymaps/msc/keymap.c | 184 --- keyboards/ergodox_ez/keymaps/msc/readme.md | 32 - keyboards/ergodox_ez/keymaps/naps62/keymap.c | 187 --- keyboards/ergodox_ez/keymaps/naps62/readme.md | 29 - keyboards/ergodox_ez/keymaps/ordinary/keymap.c | 454 -------- .../ergodox_ez/keymaps/ordinary/ordinary-base.png | Bin 99605 -> 0 bytes .../ergodox_ez/keymaps/ordinary/ordinary-base.txt | 27 - .../ergodox_ez/keymaps/ordinary/ordinary-media.png | Bin 124144 -> 0 bytes .../ergodox_ez/keymaps/ordinary/ordinary-media.txt | 27 - .../keymaps/ordinary/ordinary-special.png | Bin 63065 -> 0 bytes .../keymaps/ordinary/ordinary-special.txt | 27 - .../keymaps/ordinary/ordinary-symbol.png | Bin 103735 -> 0 bytes .../keymaps/ordinary/ordinary-symbol.txt | 27 - keyboards/ergodox_ez/keymaps/ordinary/readme.md | 103 -- keyboards/ergodox_ez/keymaps/osx_de/keymap.c | 364 ------ .../ergodox_ez/keymaps/osx_de/osx_de_highres.png | Bin 298446 -> 0 bytes keyboards/ergodox_ez/keymaps/osx_de/readme.md | 41 - .../ergodox_ez/keymaps/osx_de_adnw_koy/keymap.c | 174 --- .../osx_de_adnw_koy/osx_de_adnw_koy_highres.png | Bin 183892 -> 0 bytes .../keymaps/osx_de_experimental/keymap.c | 597 ---------- .../osx_de_experimental_highres.png | Bin 303904 -> 0 bytes .../keymaps/osx_de_experimental/readme.md | 22 - keyboards/ergodox_ez/keymaps/osx_fr/keymap.c | 187 --- .../ergodox_ez/keymaps/osx_kinesis_pnut/keymap.c | 191 --- keyboards/ergodox_ez/keymaps/plover/keymap.c | 228 ---- keyboards/ergodox_ez/keymaps/plums/keymap.c | 229 ---- keyboards/ergodox_ez/keymaps/plums/plums.png | Bin 223300 -> 0 bytes keyboards/ergodox_ez/keymaps/plums/readme.md | 11 - .../keymaps/romanzolotarev-norman-osx/keymap.c | 46 - .../keymaps/romanzolotarev-norman-osx/readme.md | 28 - .../romanzolotarev-norman-osx.png | Bin 96954 -> 0 bytes .../romanzolotarev-norman-plover-osx-hjkl/keymap.c | 134 --- .../readme.md | 50 - .../romanzolotarev-norman-plover-osx-hjkl.png | Bin 130692 -> 0 bytes .../romanzolotarev-norman-plover-osx/keymap.c | 134 --- .../romanzolotarev-norman-plover-osx/readme.md | 50 - .../romanzolotarev-norman-plover-osx.png | Bin 130464 -> 0 bytes .../romanzolotarev-norman-qwerty-osx/keymap.c | 74 -- .../romanzolotarev-norman-qwerty-osx/readme.md | 34 - .../romanzolotarev-norman-qwerty-osx.png | Bin 100627 -> 0 bytes keyboards/ergodox_ez/keymaps/sneako/keymap.c | 187 --- keyboards/ergodox_ez/keymaps/sneako/readme.md | 6 - .../ergodox_ez/keymaps/software_neo2/keymap.c | 139 --- .../ergodox_ez/keymaps/supercoder/config_user.h | 9 - .../keymaps/supercoder/images/layout.png | Bin 65607 -> 0 bytes .../keymaps/supercoder/images/supercoder_2000.jpg | Bin 75444 -> 0 bytes keyboards/ergodox_ez/keymaps/supercoder/keymap.c | 75 -- .../ergodox_ez/keymaps/supercoder/makefile.mk | 6 - keyboards/ergodox_ez/keymaps/supercoder/readme.md | 29 - keyboards/ergodox_ez/keymaps/techtomas/keymap.c | 231 ---- keyboards/ergodox_ez/keymaps/techtomas/readme.md | 57 - keyboards/ergodox_ez/keymaps/teckinesis/keymap.c | 455 -------- .../keymaps/teckinesis/ordinary-special.png | Bin 63065 -> 0 bytes .../keymaps/teckinesis/ordinary-special.txt | 27 - keyboards/ergodox_ez/keymaps/teckinesis/readme.md | 45 - .../keymaps/teckinesis/teckinesis-base.json | 434 ------- .../keymaps/teckinesis/teckinesis-base.png | Bin 93743 -> 0 bytes .../keymaps/teckinesis/teckinesis-media.json | 436 ------- .../keymaps/teckinesis/teckinesis-media.png | Bin 112216 -> 0 bytes .../keymaps/teckinesis/teckinesis-symbol.json | 422 ------- .../keymaps/teckinesis/teckinesis-symbol.png | Bin 97350 -> 0 bytes .../ergodox_ez/keymaps/tkuichooseyou/README.md | 13 - .../ergodox_ez/keymaps/tkuichooseyou/compiled.hex | 1137 ------------------ .../ergodox_ez/keymaps/tkuichooseyou/keymap.c | 184 --- keyboards/ergodox_ez/keymaps/tm2030/keymap.c | 242 ---- keyboards/ergodox_ez/keymaps/tm2030/readme.md | 136 --- keyboards/ergodox_ez/keymaps/tonyabra_osx/keymap.c | 184 --- .../ergodox_ez/keymaps/tonyabra_osx/readme.md | 5 - keyboards/ergodox_ez/keymaps/townk_osx/config.h | 92 -- keyboards/ergodox_ez/keymaps/townk_osx/keymap.c | 285 ----- keyboards/ergodox_ez/keymaps/townk_osx/makefile.mk | 4 - keyboards/ergodox_ez/keymaps/townk_osx/readme.md | 77 -- .../keymaps/townk_osx/townk_osx_base.png | Bin 785859 -> 0 bytes .../ergodox_ez/keymaps/townk_osx/townk_osx_fn.png | Bin 390041 -> 0 bytes .../keymaps/townk_osx/townk_osx_keypad.png | Bin 424425 -> 0 bytes keyboards/ergodox_ez/keymaps/twey/keymap.c | 221 ---- keyboards/ergodox_ez/keymaps/twey/readme.md | 17 - .../ergodox_ez/keymaps/workman_osx_mdw/keymap.c | 366 ------ .../ergodox_ez/keymaps/zweihander-osx/keymap.c | 233 ---- .../keymaps/zweihander-osx/readme.markdown | 45 - keyboards/ergodox_ez/matrix.c | 382 ------ keyboards/ergodox_ez/readme.md | 44 - keyboards/ergodox_ez/twimaster.c | 208 ---- keyboards/ergodox_ez/util/compile_keymap.py | 710 ------------ keyboards/ergodox_ez/util/readme.md | 3 - keyboards/infinity_ergodox/MEMO.txt | 385 ------- keyboards/infinity_ergodox/Makefile | 85 -- keyboards/infinity_ergodox/bootloader_defs.h | 1 - keyboards/infinity_ergodox/chconf.h | 524 --------- keyboards/infinity_ergodox/config.h | 80 -- .../drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h | 113 -- .../drivers/gdisp/IS31FL3731C/driver.mk | 2 - .../drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c | 333 ------ .../drivers/gdisp/IS31FL3731C/gdisp_lld_config.h | 36 - .../drivers/gdisp/emulator_lcd/driver.mk | 2 - .../drivers/gdisp/emulator_lcd/emulator_lcd.c | 10 - .../drivers/gdisp/emulator_led/driver.mk | 2 - .../drivers/gdisp/emulator_led/emulator_led.c | 10 - .../drivers/gdisp/st7565ergodox/board_ST7565.h | 127 -- .../drivers/gdisp/st7565ergodox/driver.mk | 2 - .../drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c | 292 ----- .../drivers/gdisp/st7565ergodox/gdisp_lld_config.h | 26 - .../drivers/gdisp/st7565ergodox/st7565.h | 37 - keyboards/infinity_ergodox/gfxconf.h | 331 ------ keyboards/infinity_ergodox/halconf.h | 353 ------ keyboards/infinity_ergodox/infinity_ergodox.c | 76 -- keyboards/infinity_ergodox/infinity_ergodox.h | 44 - .../infinity_ergodox/keymaps/default/keymap.c | 114 -- .../infinity_ergodox/keymaps/default/visualizer.c | 168 --- keyboards/infinity_ergodox/led.c | 49 - keyboards/infinity_ergodox/matrix.c | 169 --- keyboards/infinity_ergodox/mcuconf.h | 74 -- 435 files changed, 27312 insertions(+), 27277 deletions(-) create mode 100644 keyboards/ergodox/Makefile create mode 100644 keyboards/ergodox/ergodox.c create mode 100644 keyboards/ergodox/ergodox.h create mode 100755 keyboards/ergodox/ez/190hotfix.sh create mode 100644 keyboards/ergodox/ez/Makefile create mode 100644 keyboards/ergodox/ez/config.h create mode 100644 keyboards/ergodox/ez/ez.c create mode 100644 keyboards/ergodox/ez/ez.h create mode 100644 keyboards/ergodox/ez/i2cmaster.h create mode 100644 keyboards/ergodox/ez/matrix.c create mode 100644 keyboards/ergodox/ez/readme.md create mode 100644 keyboards/ergodox/ez/twimaster.c create mode 100644 keyboards/ergodox/ez/util/compile_keymap.py create mode 100644 keyboards/ergodox/ez/util/readme.md create mode 100644 keyboards/ergodox/infinity/MEMO.txt create mode 100644 keyboards/ergodox/infinity/Makefile create mode 100644 keyboards/ergodox/infinity/bootloader_defs.h create mode 100644 keyboards/ergodox/infinity/chconf.h create mode 100644 keyboards/ergodox/infinity/config.h create mode 100644 keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h create mode 100644 keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/driver.mk create mode 100644 keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c create mode 100644 keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h create mode 100644 keyboards/ergodox/infinity/drivers/gdisp/emulator_lcd/driver.mk create mode 100644 keyboards/ergodox/infinity/drivers/gdisp/emulator_lcd/emulator_lcd.c create mode 100644 keyboards/ergodox/infinity/drivers/gdisp/emulator_led/driver.mk create mode 100644 keyboards/ergodox/infinity/drivers/gdisp/emulator_led/emulator_led.c create mode 100644 keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h create mode 100644 keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/driver.mk create mode 100644 keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c create mode 100644 keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_config.h create mode 100644 keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/st7565.h create mode 100644 keyboards/ergodox/infinity/gfxconf.h create mode 100644 keyboards/ergodox/infinity/halconf.h create mode 100644 keyboards/ergodox/infinity/infinity.c create mode 100644 keyboards/ergodox/infinity/infinity.h create mode 100644 keyboards/ergodox/infinity/keymaps/default/keymap.c create mode 100644 keyboards/ergodox/infinity/keymaps/default/visualizer.c create mode 100644 keyboards/ergodox/infinity/led.c create mode 100644 keyboards/ergodox/infinity/matrix.c create mode 100644 keyboards/ergodox/infinity/mcuconf.h create mode 100644 keyboards/ergodox/keymaps/ab/Makefile create mode 100644 keyboards/ergodox/keymaps/ab/keyboard-layout.json create mode 100644 keyboards/ergodox/keymaps/ab/keyboard-layout.png create mode 100644 keyboards/ergodox/keymaps/ab/keymap.c create mode 100644 keyboards/ergodox/keymaps/ab/readme.md create mode 100644 keyboards/ergodox/keymaps/adnw_k_o_y/keymap.c create mode 100644 keyboards/ergodox/keymaps/adnw_k_o_y/readme.md create mode 100644 keyboards/ergodox/keymaps/alexjj/keymap.c create mode 100644 keyboards/ergodox/keymaps/alexjj/readme.md create mode 100644 keyboards/ergodox/keymaps/alexjj/rl-layout.jpg create mode 100644 keyboards/ergodox/keymaps/algernon/COPYING create mode 100644 keyboards/ergodox/keymaps/algernon/Makefile create mode 100644 keyboards/ergodox/keymaps/algernon/config.h create mode 100644 keyboards/ergodox/keymaps/algernon/images/adore-layer.png create mode 100644 keyboards/ergodox/keymaps/algernon/images/base-layer.png create mode 100644 keyboards/ergodox/keymaps/algernon/images/heatmap.png create mode 100644 keyboards/ergodox/keymaps/algernon/images/hun-layer.png create mode 100644 keyboards/ergodox/keymaps/algernon/images/nav-n-media-layer.png create mode 100644 keyboards/ergodox/keymaps/algernon/images/one-handed-layer.png create mode 100644 keyboards/ergodox/keymaps/algernon/images/steno-layer.png create mode 100644 keyboards/ergodox/keymaps/algernon/keymap.c create mode 100644 keyboards/ergodox/keymaps/algernon/readme.md create mode 100644 keyboards/ergodox/keymaps/algernon/tools/heatmap-adore-layout.json create mode 100644 keyboards/ergodox/keymaps/algernon/tools/heatmap-base-layout.json create mode 100755 keyboards/ergodox/keymaps/algernon/tools/log-to-heatmap.py create mode 100755 keyboards/ergodox/keymaps/algernon/tools/max-focused create mode 100644 keyboards/ergodox/keymaps/andrew_osx/keymap.c create mode 100644 keyboards/ergodox/keymaps/bepo/bepo.png create mode 100644 keyboards/ergodox/keymaps/bepo/keymap.c create mode 100644 keyboards/ergodox/keymaps/bepo/readme.md create mode 100644 keyboards/ergodox/keymaps/coderkun_neo2/Makefile create mode 100644 keyboards/ergodox/keymaps/coderkun_neo2/keymap.c create mode 100644 keyboards/ergodox/keymaps/coderkun_neo2/readme.md create mode 100644 keyboards/ergodox/keymaps/colemak/keymap.c create mode 100644 keyboards/ergodox/keymaps/colemak/readme.md create mode 100644 keyboards/ergodox/keymaps/colemak_osx_pc_no/keyboard-layout.png create mode 100644 keyboards/ergodox/keymaps/colemak_osx_pc_no/keymap.c create mode 100644 keyboards/ergodox/keymaps/colemak_osx_pc_no/readme.md create mode 100644 keyboards/ergodox/keymaps/csharp_dev/csharp_dev.png create mode 100644 keyboards/ergodox/keymaps/csharp_dev/csharp_dev_legend.png create mode 100644 keyboards/ergodox/keymaps/csharp_dev/keymap.c create mode 100644 keyboards/ergodox/keymaps/csharp_dev/readme.md create mode 100644 keyboards/ergodox/keymaps/dave/keymap.c create mode 100644 keyboards/ergodox/keymaps/dave/readme.md create mode 100644 keyboards/ergodox/keymaps/default/default.png create mode 100644 keyboards/ergodox/keymaps/default/default_highres.png create mode 100644 keyboards/ergodox/keymaps/default/keymap.c create mode 100644 keyboards/ergodox/keymaps/default/readme.md create mode 100644 keyboards/ergodox/keymaps/default_osx/default_osx_highres.png create mode 100644 keyboards/ergodox/keymaps/default_osx/keymap.c create mode 100644 keyboards/ergodox/keymaps/default_osx/readme.md create mode 100644 keyboards/ergodox/keymaps/dragon788/keymap.c create mode 100644 keyboards/ergodox/keymaps/dvorak/dvorak.png create mode 100644 keyboards/ergodox/keymaps/dvorak/keymap.c create mode 100644 keyboards/ergodox/keymaps/dvorak_intl_squisher/keyboard-layout0.png create mode 100644 keyboards/ergodox/keymaps/dvorak_intl_squisher/keyboard-layout1.png create mode 100644 keyboards/ergodox/keymaps/dvorak_intl_squisher/keyboard-layout2.png create mode 100644 keyboards/ergodox/keymaps/dvorak_intl_squisher/keymap.c create mode 100644 keyboards/ergodox/keymaps/dvorak_intl_squisher/readme.md create mode 100755 keyboards/ergodox/keymaps/dvorak_spanish/keymap.c create mode 100644 keyboards/ergodox/keymaps/dvorak_spanish/readme.md create mode 100644 keyboards/ergodox/keymaps/emacs_osx_dk/default_highres.png create mode 100644 keyboards/ergodox/keymaps/emacs_osx_dk/keymap.c create mode 100644 keyboards/ergodox/keymaps/emacs_osx_dk/readme.md create mode 100644 keyboards/ergodox/keymaps/erez_experimental/Makefile create mode 100644 keyboards/ergodox/keymaps/erez_experimental/config.h create mode 100644 keyboards/ergodox/keymaps/erez_experimental/keymap.c create mode 100644 keyboards/ergodox/keymaps/erez_experimental/readme.md create mode 100644 keyboards/ergodox/keymaps/german-kinergo/keymap.c create mode 100644 keyboards/ergodox/keymaps/german-kinergo/layout-code.png create mode 100644 keyboards/ergodox/keymaps/german-kinergo/layout-media.png create mode 100644 keyboards/ergodox/keymaps/german-kinergo/layout.png create mode 100644 keyboards/ergodox/keymaps/german-kinergo/readme.md create mode 100644 keyboards/ergodox/keymaps/german-manuneo/compile_keymap.py create mode 100644 keyboards/ergodox/keymaps/german-manuneo/keymap.c create mode 100644 keyboards/ergodox/keymaps/german-manuneo/keymap.md create mode 100644 keyboards/ergodox/keymaps/german/keymap.c create mode 100644 keyboards/ergodox/keymaps/j3rn/keymap.c create mode 100644 keyboards/ergodox/keymaps/j3rn/readme.md create mode 100644 keyboards/ergodox/keymaps/jack/keymap.c create mode 100644 keyboards/ergodox/keymaps/jacobono/img/colemak-default-layer.png create mode 100644 keyboards/ergodox/keymaps/jacobono/img/number-dpad-layer.png create mode 100644 keyboards/ergodox/keymaps/jacobono/img/symbol-layer.png create mode 100644 keyboards/ergodox/keymaps/jacobono/keymap.c create mode 100644 keyboards/ergodox/keymaps/jacobono/readme.md create mode 100644 keyboards/ergodox/keymaps/jgarr/keymap.c create mode 100644 keyboards/ergodox/keymaps/josh/keymap.c create mode 100644 keyboards/ergodox/keymaps/josh/readme.md create mode 100644 keyboards/ergodox/keymaps/kastyle/keymap.c create mode 100644 keyboards/ergodox/keymaps/kines-ish/keymap.c create mode 100644 keyboards/ergodox/keymaps/kines-ish/readme.md create mode 100644 keyboards/ergodox/keymaps/maz/keymap.c create mode 100644 keyboards/ergodox/keymaps/maz/readme.md create mode 100644 keyboards/ergodox/keymaps/mpiechotka/keymap.c create mode 100644 keyboards/ergodox/keymaps/mpiechotka/readme.md create mode 100644 keyboards/ergodox/keymaps/msc/img/code_layer.png create mode 100644 keyboards/ergodox/keymaps/msc/img/main_layer.png create mode 100644 keyboards/ergodox/keymaps/msc/img/media_layer.png create mode 100644 keyboards/ergodox/keymaps/msc/keymap.c create mode 100644 keyboards/ergodox/keymaps/msc/readme.md create mode 100644 keyboards/ergodox/keymaps/naps62/keymap.c create mode 100644 keyboards/ergodox/keymaps/naps62/readme.md create mode 100644 keyboards/ergodox/keymaps/ordinary/keymap.c create mode 100644 keyboards/ergodox/keymaps/ordinary/ordinary-base.png create mode 100644 keyboards/ergodox/keymaps/ordinary/ordinary-base.txt create mode 100644 keyboards/ergodox/keymaps/ordinary/ordinary-media.png create mode 100644 keyboards/ergodox/keymaps/ordinary/ordinary-media.txt create mode 100644 keyboards/ergodox/keymaps/ordinary/ordinary-special.png create mode 100644 keyboards/ergodox/keymaps/ordinary/ordinary-special.txt create mode 100644 keyboards/ergodox/keymaps/ordinary/ordinary-symbol.png create mode 100644 keyboards/ergodox/keymaps/ordinary/ordinary-symbol.txt create mode 100644 keyboards/ergodox/keymaps/ordinary/readme.md create mode 100644 keyboards/ergodox/keymaps/osx_de/keymap.c create mode 100644 keyboards/ergodox/keymaps/osx_de/osx_de_highres.png create mode 100644 keyboards/ergodox/keymaps/osx_de/readme.md create mode 100644 keyboards/ergodox/keymaps/osx_de_adnw_koy/keymap.c create mode 100644 keyboards/ergodox/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png create mode 100644 keyboards/ergodox/keymaps/osx_de_experimental/keymap.c create mode 100644 keyboards/ergodox/keymaps/osx_de_experimental/osx_de_experimental_highres.png create mode 100644 keyboards/ergodox/keymaps/osx_de_experimental/readme.md create mode 100644 keyboards/ergodox/keymaps/osx_fr/keymap.c create mode 100644 keyboards/ergodox/keymaps/osx_kinesis_pnut/keymap.c create mode 100644 keyboards/ergodox/keymaps/plover/keymap.c create mode 100644 keyboards/ergodox/keymaps/plums/keymap.c create mode 100644 keyboards/ergodox/keymaps/plums/plums.png create mode 100644 keyboards/ergodox/keymaps/plums/readme.md create mode 100644 keyboards/ergodox/keymaps/romanzolotarev-norman-osx/keymap.c create mode 100644 keyboards/ergodox/keymaps/romanzolotarev-norman-osx/readme.md create mode 100644 keyboards/ergodox/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.png create mode 100644 keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c create mode 100644 keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md create mode 100644 keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.png create mode 100644 keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx/keymap.c create mode 100644 keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx/readme.md create mode 100644 keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx/romanzolotarev-norman-plover-osx.png create mode 100644 keyboards/ergodox/keymaps/romanzolotarev-norman-qwerty-osx/keymap.c create mode 100644 keyboards/ergodox/keymaps/romanzolotarev-norman-qwerty-osx/readme.md create mode 100644 keyboards/ergodox/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.png create mode 100644 keyboards/ergodox/keymaps/sneako/keymap.c create mode 100644 keyboards/ergodox/keymaps/sneako/readme.md create mode 100644 keyboards/ergodox/keymaps/software_neo2/keymap.c create mode 100644 keyboards/ergodox/keymaps/supercoder/config_user.h create mode 100644 keyboards/ergodox/keymaps/supercoder/images/layout.png create mode 100644 keyboards/ergodox/keymaps/supercoder/images/supercoder_2000.jpg create mode 100644 keyboards/ergodox/keymaps/supercoder/keymap.c create mode 100644 keyboards/ergodox/keymaps/supercoder/makefile.mk create mode 100644 keyboards/ergodox/keymaps/supercoder/readme.md create mode 100644 keyboards/ergodox/keymaps/techtomas/keymap.c create mode 100644 keyboards/ergodox/keymaps/techtomas/readme.md create mode 100644 keyboards/ergodox/keymaps/teckinesis/keymap.c create mode 100644 keyboards/ergodox/keymaps/teckinesis/ordinary-special.png create mode 100644 keyboards/ergodox/keymaps/teckinesis/ordinary-special.txt create mode 100644 keyboards/ergodox/keymaps/teckinesis/readme.md create mode 100644 keyboards/ergodox/keymaps/teckinesis/teckinesis-base.json create mode 100644 keyboards/ergodox/keymaps/teckinesis/teckinesis-base.png create mode 100644 keyboards/ergodox/keymaps/teckinesis/teckinesis-media.json create mode 100644 keyboards/ergodox/keymaps/teckinesis/teckinesis-media.png create mode 100644 keyboards/ergodox/keymaps/teckinesis/teckinesis-symbol.json create mode 100644 keyboards/ergodox/keymaps/teckinesis/teckinesis-symbol.png create mode 100644 keyboards/ergodox/keymaps/tkuichooseyou/README.md create mode 100644 keyboards/ergodox/keymaps/tkuichooseyou/compiled.hex create mode 100644 keyboards/ergodox/keymaps/tkuichooseyou/keymap.c create mode 100644 keyboards/ergodox/keymaps/tm2030/keymap.c create mode 100644 keyboards/ergodox/keymaps/tm2030/readme.md create mode 100644 keyboards/ergodox/keymaps/tonyabra_osx/keymap.c create mode 100644 keyboards/ergodox/keymaps/tonyabra_osx/readme.md create mode 100644 keyboards/ergodox/keymaps/townk_osx/config.h create mode 100644 keyboards/ergodox/keymaps/townk_osx/keymap.c create mode 100644 keyboards/ergodox/keymaps/townk_osx/makefile.mk create mode 100644 keyboards/ergodox/keymaps/townk_osx/readme.md create mode 100644 keyboards/ergodox/keymaps/townk_osx/townk_osx_base.png create mode 100644 keyboards/ergodox/keymaps/townk_osx/townk_osx_fn.png create mode 100644 keyboards/ergodox/keymaps/townk_osx/townk_osx_keypad.png create mode 100644 keyboards/ergodox/keymaps/twey/keymap.c create mode 100644 keyboards/ergodox/keymaps/twey/readme.md create mode 100644 keyboards/ergodox/keymaps/workman_osx_mdw/keymap.c create mode 100644 keyboards/ergodox/keymaps/zweihander-osx/keymap.c create mode 100644 keyboards/ergodox/keymaps/zweihander-osx/readme.markdown delete mode 100755 keyboards/ergodox_ez/190hotfix.sh delete mode 100644 keyboards/ergodox_ez/Makefile delete mode 100644 keyboards/ergodox_ez/config.h delete mode 100644 keyboards/ergodox_ez/ergodox_ez.c delete mode 100644 keyboards/ergodox_ez/ergodox_ez.h delete mode 100644 keyboards/ergodox_ez/i2cmaster.h delete mode 100644 keyboards/ergodox_ez/keymaps/ab/Makefile delete mode 100644 keyboards/ergodox_ez/keymaps/ab/keyboard-layout.json delete mode 100644 keyboards/ergodox_ez/keymaps/ab/keyboard-layout.png delete mode 100644 keyboards/ergodox_ez/keymaps/ab/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/ab/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/adnw_k_o_y/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/adnw_k_o_y/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/alexjj/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/alexjj/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/alexjj/rl-layout.jpg delete mode 100644 keyboards/ergodox_ez/keymaps/algernon/COPYING delete mode 100644 keyboards/ergodox_ez/keymaps/algernon/Makefile delete mode 100644 keyboards/ergodox_ez/keymaps/algernon/config.h delete mode 100644 keyboards/ergodox_ez/keymaps/algernon/images/adore-layer.png delete mode 100644 keyboards/ergodox_ez/keymaps/algernon/images/base-layer.png delete mode 100644 keyboards/ergodox_ez/keymaps/algernon/images/heatmap.png delete mode 100644 keyboards/ergodox_ez/keymaps/algernon/images/hun-layer.png delete mode 100644 keyboards/ergodox_ez/keymaps/algernon/images/nav-n-media-layer.png delete mode 100644 keyboards/ergodox_ez/keymaps/algernon/images/one-handed-layer.png delete mode 100644 keyboards/ergodox_ez/keymaps/algernon/images/steno-layer.png delete mode 100644 keyboards/ergodox_ez/keymaps/algernon/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/algernon/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/algernon/tools/heatmap-adore-layout.json delete mode 100644 keyboards/ergodox_ez/keymaps/algernon/tools/heatmap-base-layout.json delete mode 100755 keyboards/ergodox_ez/keymaps/algernon/tools/log-to-heatmap.py delete mode 100755 keyboards/ergodox_ez/keymaps/algernon/tools/max-focused delete mode 100644 keyboards/ergodox_ez/keymaps/andrew_osx/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/bepo/bepo.png delete mode 100644 keyboards/ergodox_ez/keymaps/bepo/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/bepo/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/coderkun_neo2/Makefile delete mode 100644 keyboards/ergodox_ez/keymaps/coderkun_neo2/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/coderkun_neo2/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/colemak/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/colemak/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/keyboard-layout.png delete mode 100644 keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/csharp_dev/csharp_dev.png delete mode 100644 keyboards/ergodox_ez/keymaps/csharp_dev/csharp_dev_legend.png delete mode 100644 keyboards/ergodox_ez/keymaps/csharp_dev/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/csharp_dev/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/dave/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/dave/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/default/default.png delete mode 100644 keyboards/ergodox_ez/keymaps/default/default_highres.png delete mode 100644 keyboards/ergodox_ez/keymaps/default/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/default/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/default_osx/default_osx_highres.png delete mode 100644 keyboards/ergodox_ez/keymaps/default_osx/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/default_osx/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/dragon788/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/dvorak/dvorak.png delete mode 100644 keyboards/ergodox_ez/keymaps/dvorak/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout0.png delete mode 100644 keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout1.png delete mode 100644 keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout2.png delete mode 100644 keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/readme.md delete mode 100755 keyboards/ergodox_ez/keymaps/dvorak_spanish/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/dvorak_spanish/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/emacs_osx_dk/default_highres.png delete mode 100644 keyboards/ergodox_ez/keymaps/emacs_osx_dk/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/emacs_osx_dk/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/erez_experimental/Makefile delete mode 100644 keyboards/ergodox_ez/keymaps/erez_experimental/config.h delete mode 100644 keyboards/ergodox_ez/keymaps/erez_experimental/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/erez_experimental/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/german-kinergo/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/german-kinergo/layout-code.png delete mode 100644 keyboards/ergodox_ez/keymaps/german-kinergo/layout-media.png delete mode 100644 keyboards/ergodox_ez/keymaps/german-kinergo/layout.png delete mode 100644 keyboards/ergodox_ez/keymaps/german-kinergo/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/german-manuneo/compile_keymap.py delete mode 100644 keyboards/ergodox_ez/keymaps/german-manuneo/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/german-manuneo/keymap.md delete mode 100644 keyboards/ergodox_ez/keymaps/german/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/j3rn/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/j3rn/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/jack/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/jacobono/img/colemak-default-layer.png delete mode 100644 keyboards/ergodox_ez/keymaps/jacobono/img/number-dpad-layer.png delete mode 100644 keyboards/ergodox_ez/keymaps/jacobono/img/symbol-layer.png delete mode 100644 keyboards/ergodox_ez/keymaps/jacobono/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/jacobono/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/jgarr/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/josh/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/josh/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/kastyle/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/kines-ish/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/kines-ish/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/maz/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/maz/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/mpiechotka/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/mpiechotka/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/msc/img/code_layer.png delete mode 100644 keyboards/ergodox_ez/keymaps/msc/img/main_layer.png delete mode 100644 keyboards/ergodox_ez/keymaps/msc/img/media_layer.png delete mode 100644 keyboards/ergodox_ez/keymaps/msc/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/msc/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/naps62/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/naps62/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/ordinary/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/ordinary/ordinary-base.png delete mode 100644 keyboards/ergodox_ez/keymaps/ordinary/ordinary-base.txt delete mode 100644 keyboards/ergodox_ez/keymaps/ordinary/ordinary-media.png delete mode 100644 keyboards/ergodox_ez/keymaps/ordinary/ordinary-media.txt delete mode 100644 keyboards/ergodox_ez/keymaps/ordinary/ordinary-special.png delete mode 100644 keyboards/ergodox_ez/keymaps/ordinary/ordinary-special.txt delete mode 100644 keyboards/ergodox_ez/keymaps/ordinary/ordinary-symbol.png delete mode 100644 keyboards/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt delete mode 100644 keyboards/ergodox_ez/keymaps/ordinary/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/osx_de/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/osx_de/osx_de_highres.png delete mode 100644 keyboards/ergodox_ez/keymaps/osx_de/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png delete mode 100644 keyboards/ergodox_ez/keymaps/osx_de_experimental/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png delete mode 100644 keyboards/ergodox_ez/keymaps/osx_de_experimental/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/osx_fr/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/osx_kinesis_pnut/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/plover/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/plums/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/plums/plums.png delete mode 100644 keyboards/ergodox_ez/keymaps/plums/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.png delete mode 100644 keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.png delete mode 100644 keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/romanzolotarev-norman-plover-osx.png delete mode 100644 keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.png delete mode 100644 keyboards/ergodox_ez/keymaps/sneako/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/sneako/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/software_neo2/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/supercoder/config_user.h delete mode 100644 keyboards/ergodox_ez/keymaps/supercoder/images/layout.png delete mode 100644 keyboards/ergodox_ez/keymaps/supercoder/images/supercoder_2000.jpg delete mode 100644 keyboards/ergodox_ez/keymaps/supercoder/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/supercoder/makefile.mk delete mode 100644 keyboards/ergodox_ez/keymaps/supercoder/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/techtomas/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/techtomas/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/ordinary-special.png delete mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/ordinary-special.txt delete mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-base.json delete mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-base.png delete mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-media.json delete mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-media.png delete mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-symbol.json delete mode 100644 keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-symbol.png delete mode 100644 keyboards/ergodox_ez/keymaps/tkuichooseyou/README.md delete mode 100644 keyboards/ergodox_ez/keymaps/tkuichooseyou/compiled.hex delete mode 100644 keyboards/ergodox_ez/keymaps/tkuichooseyou/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/tm2030/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/tm2030/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/tonyabra_osx/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/tonyabra_osx/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/townk_osx/config.h delete mode 100644 keyboards/ergodox_ez/keymaps/townk_osx/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/townk_osx/makefile.mk delete mode 100644 keyboards/ergodox_ez/keymaps/townk_osx/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_base.png delete mode 100644 keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_fn.png delete mode 100644 keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_keypad.png delete mode 100644 keyboards/ergodox_ez/keymaps/twey/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/twey/readme.md delete mode 100644 keyboards/ergodox_ez/keymaps/workman_osx_mdw/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/zweihander-osx/keymap.c delete mode 100644 keyboards/ergodox_ez/keymaps/zweihander-osx/readme.markdown delete mode 100644 keyboards/ergodox_ez/matrix.c delete mode 100644 keyboards/ergodox_ez/readme.md delete mode 100644 keyboards/ergodox_ez/twimaster.c delete mode 100644 keyboards/ergodox_ez/util/compile_keymap.py delete mode 100644 keyboards/ergodox_ez/util/readme.md delete mode 100644 keyboards/infinity_ergodox/MEMO.txt delete mode 100644 keyboards/infinity_ergodox/Makefile delete mode 100644 keyboards/infinity_ergodox/bootloader_defs.h delete mode 100644 keyboards/infinity_ergodox/chconf.h delete mode 100644 keyboards/infinity_ergodox/config.h delete mode 100644 keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h delete mode 100644 keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/driver.mk delete mode 100644 keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c delete mode 100644 keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h delete mode 100644 keyboards/infinity_ergodox/drivers/gdisp/emulator_lcd/driver.mk delete mode 100644 keyboards/infinity_ergodox/drivers/gdisp/emulator_lcd/emulator_lcd.c delete mode 100644 keyboards/infinity_ergodox/drivers/gdisp/emulator_led/driver.mk delete mode 100644 keyboards/infinity_ergodox/drivers/gdisp/emulator_led/emulator_led.c delete mode 100644 keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/board_ST7565.h delete mode 100644 keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/driver.mk delete mode 100644 keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c delete mode 100644 keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_config.h delete mode 100644 keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/st7565.h delete mode 100644 keyboards/infinity_ergodox/gfxconf.h delete mode 100644 keyboards/infinity_ergodox/halconf.h delete mode 100644 keyboards/infinity_ergodox/infinity_ergodox.c delete mode 100644 keyboards/infinity_ergodox/infinity_ergodox.h delete mode 100644 keyboards/infinity_ergodox/keymaps/default/keymap.c delete mode 100644 keyboards/infinity_ergodox/keymaps/default/visualizer.c delete mode 100644 keyboards/infinity_ergodox/led.c delete mode 100644 keyboards/infinity_ergodox/matrix.c delete mode 100644 keyboards/infinity_ergodox/mcuconf.h (limited to 'keyboards') diff --git a/keyboards/ergodox/Makefile b/keyboards/ergodox/Makefile new file mode 100644 index 000000000..05fb588d1 --- /dev/null +++ b/keyboards/ergodox/Makefile @@ -0,0 +1,34 @@ +#---------------------------------------------------------------------------- +# On command line: +# +# make = Make software. +# +# make clean = Clean out built project files. +# +# That's pretty much all you need. To compile, always go make clean, +# followed by make. +# +# For advanced users only: +# make teensy = Download the hex file to the device, using teensy_loader_cli. +# (must have teensy_loader_cli installed). +# +#---------------------------------------------------------------------------- +SUBPROJECT_DEFAULT = ez + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= no # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +CUSTOM_MATRIX ?= yes # Custom matrix file for the ErgoDox EZ +SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend +NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +MIDI_ENABLE ?= no # MIDI controls +UNICODE_ENABLE ?= yes # Unicode + +ifndef QUANTUM_DIR + include ../../Makefile +endif diff --git a/keyboards/ergodox/ergodox.c b/keyboards/ergodox/ergodox.c new file mode 100644 index 000000000..992e95d81 --- /dev/null +++ b/keyboards/ergodox/ergodox.c @@ -0,0 +1,8 @@ +/* + * ergodox.c + * + * Created on: 7 jul 2016 + * Author: Fred Wales + */ + + diff --git a/keyboards/ergodox/ergodox.h b/keyboards/ergodox/ergodox.h new file mode 100644 index 000000000..fe54e3260 --- /dev/null +++ b/keyboards/ergodox/ergodox.h @@ -0,0 +1,11 @@ +#ifndef KEYBOARDS_ERGODOX_ERGODOX_H_ +#define KEYBOARDS_ERGODOX_ERGODOX_H_ + +#ifdef SUBPROJECT_ez + #include "ez.h" +#endif +#ifdef SUBPROJECT_infinity + #include "infinity.h" +#endif + +#endif /* KEYBOARDS_ERGODOX_ERGODOX_H_ */ diff --git a/keyboards/ergodox/ez/190hotfix.sh b/keyboards/ergodox/ez/190hotfix.sh new file mode 100755 index 000000000..bdc3adce2 --- /dev/null +++ b/keyboards/ergodox/ez/190hotfix.sh @@ -0,0 +1,19 @@ +#!/bin/bash +#a tool to fix broken keymaps as a result of pull request #190 +#changing the declaration of matrix_scan_user() and matrix_init_user() +# +#This script will save a copy of the specified keymap as keymap.c.bak +#and then create a new keymap.c with the definion corrected. +#this script must be run from the ergodox_ez directory +if [ $# -ne 1 ]; then + echo $0: usage: ./190hotfix keymap_name + exit 1 +fi + +echo Saving backup as ./keymaps/$1/keymap.c.bak ... +mv ./keymaps/$1/keymap.c ./keymaps/$1/keymap.c.bak + +echo Modifying ./keymaps/$1/keymap.c ... +cat ./keymaps/$1/keymap.c.bak | sed -r 's/^void \* matrix_/void matrix_/'>./keymaps/$1/keymap.c + +echo Complete! diff --git a/keyboards/ergodox/ez/Makefile b/keyboards/ergodox/ez/Makefile new file mode 100644 index 000000000..37e554b30 --- /dev/null +++ b/keyboards/ergodox/ez/Makefile @@ -0,0 +1,76 @@ +#---------------------------------------------------------------------------- +# On command line: +# +# make = Make software. +# +# make clean = Clean out built project files. +# +# That's pretty much all you need. To compile, always go make clean, +# followed by make. +# +# For advanced users only: +# make teensy = Download the hex file to the device, using teensy_loader_cli. +# (must have teensy_loader_cli installed). +# +#---------------------------------------------------------------------------- + +# # project specific files +SRC = twimaster.c \ + matrix.c + +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=512 + + +# Build Options +# comment out to disable the options. +# + +ifndef QUANTUM_DIR + include ../../../Makefile +endif diff --git a/keyboards/ergodox/ez/config.h b/keyboards/ergodox/ez/config.h new file mode 100644 index 000000000..2bb56731b --- /dev/null +++ b/keyboards/ergodox/ez/config.h @@ -0,0 +1,84 @@ +/* +Copyright 2012 Jun Wako +Copyright 2013 Oleg Kostyuk + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x1307 +#define DEVICE_VER 0x0001 +#define MANUFACTURER ErgoDox EZ +#define PRODUCT ErgoDox EZ +#define DESCRIPTION QMK keyboard firmware for Ergodox EZ + +/* key matrix size */ +#define MATRIX_ROWS 14 +#define MATRIX_COLS 6 + +#define MOUSEKEY_DELAY 100 +#define MOUSEKEY_INTERVAL 20 +#define MOUSEKEY_MAX_SPEED 3 +#define MOUSEKEY_TIME_TO_MAX 10 + +#define TAPPING_TOGGLE 1 + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 +#define TAPPING_TERM 200 +#define IGNORE_MOD_TAP_INTERRUPT // this makes it possible to do rolling combos (zx) with keys that convert to other keys on hold (z becomes ctrl when you hold it, and when this option isn't enabled, z rapidly followed by x actually sends Ctrl-x. That's bad.) + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || \ + keyboard_report->mods == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) \ +) + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION +//#define DEBUG_MATRIX_SCAN_RATE + +#endif diff --git a/keyboards/ergodox/ez/ez.c b/keyboards/ergodox/ez/ez.c new file mode 100644 index 000000000..e7afc9859 --- /dev/null +++ b/keyboards/ergodox/ez/ez.c @@ -0,0 +1,85 @@ +#include "ez.h" +#include "i2cmaster.h" + +bool i2c_initialized = 0; +uint8_t mcp23018_status = 0x20; + +void matrix_init_kb(void) { + // keyboard LEDs (see "PWM on ports OC1(A|B|C)" in "teensy-2-0.md") + TCCR1A = 0b10101001; // set and configure fast PWM + TCCR1B = 0b00001001; // set and configure fast PWM + + // (tied to Vcc for hardware convenience) + DDRB &= ~(1<<4); // set B(4) as input + PORTB &= ~(1<<4); // set B(4) internal pull-up disabled + + // unused pins - C7, D4, D5, D7, E6 + // set as input with internal pull-ip enabled + DDRC &= ~(1<<7); + DDRD &= ~(1<<7 | 1<<5 | 1<<4); + DDRE &= ~(1<<6); + PORTC |= (1<<7); + PORTD |= (1<<7 | 1<<5 | 1<<4); + PORTE |= (1<<6); + + ergodox_blink_all_leds(); + + matrix_init_user(); +} + +void ergodox_blink_all_leds(void) +{ + ergodox_led_all_off(); + ergodox_led_all_set(LED_BRIGHTNESS_HI); + ergodox_right_led_1_on(); + _delay_ms(50); + ergodox_right_led_2_on(); + _delay_ms(50); + ergodox_right_led_3_on(); + _delay_ms(50); + ergodox_right_led_1_off(); + _delay_ms(50); + ergodox_right_led_2_off(); + _delay_ms(50); + ergodox_right_led_3_off(); + //ergodox_led_all_on(); + //_delay_ms(333); + ergodox_led_all_off(); +} + +uint8_t init_mcp23018(void) { + mcp23018_status = 0x20; + + // I2C subsystem + if (i2c_initialized == 0) { + i2c_init(); // on pins D(1,0) + i2c_initialized++; + _delay_ms(1000); + } + + // set pin direction + // - unused : input : 1 + // - input : input : 1 + // - driving : output : 0 + mcp23018_status = i2c_start(I2C_ADDR_WRITE); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(IODIRA); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(0b00000000); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(0b00111111); if (mcp23018_status) goto out; + i2c_stop(); + + // set pull-up + // - unused : on : 1 + // - input : on : 1 + // - driving : off : 0 + mcp23018_status = i2c_start(I2C_ADDR_WRITE); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(GPPUA); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(0b00000000); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(0b00111111); if (mcp23018_status) goto out; + +out: + i2c_stop(); + + return mcp23018_status; +} + + diff --git a/keyboards/ergodox/ez/ez.h b/keyboards/ergodox/ez/ez.h new file mode 100644 index 000000000..db4ec867b --- /dev/null +++ b/keyboards/ergodox/ez/ez.h @@ -0,0 +1,122 @@ +#ifndef ERGODOX_EZ_H +#define ERGODOX_EZ_H + +#include "quantum.h" +#include +#include +#include "i2cmaster.h" +#include + +#define CPU_PRESCALE(n) (CLKPR = 0x80, CLKPR = (n)) +#define CPU_16MHz 0x00 + +// I2C aliases and register addresses (see "mcp23018.md") +#define I2C_ADDR 0b0100000 +#define I2C_ADDR_WRITE ( (I2C_ADDR<<1) | I2C_WRITE ) +#define I2C_ADDR_READ ( (I2C_ADDR<<1) | I2C_READ ) +#define IODIRA 0x00 // i/o direction register +#define IODIRB 0x01 +#define GPPUA 0x0C // GPIO pull-up resistor register +#define GPPUB 0x0D +#define GPIOA 0x12 // general purpose i/o port register (write modifies OLAT) +#define GPIOB 0x13 +#define OLATA 0x14 // output latch register +#define OLATB 0x15 + +extern uint8_t mcp23018_status; + +void init_ergodox(void); +void ergodox_blink_all_leds(void); +uint8_t init_mcp23018(void); +uint8_t ergodox_left_leds_update(void); + +#define LED_BRIGHTNESS_LO 15 +#define LED_BRIGHTNESS_HI 255 + + +inline void ergodox_board_led_on(void) { DDRD |= (1<<6); PORTD |= (1<<6); } +inline void ergodox_right_led_1_on(void) { DDRB |= (1<<5); PORTB |= (1<<5); } +inline void ergodox_right_led_2_on(void) { DDRB |= (1<<6); PORTB |= (1<<6); } +inline void ergodox_right_led_3_on(void) { DDRB |= (1<<7); PORTB |= (1<<7); } +inline void ergodox_right_led_on(uint8_t led) { DDRB |= (1<<(led+4)); PORTB |= (1<<(led+4)); } + +inline void ergodox_board_led_off(void) { DDRD &= ~(1<<6); PORTD &= ~(1<<6); } +inline void ergodox_right_led_1_off(void) { DDRB &= ~(1<<5); PORTB &= ~(1<<5); } +inline void ergodox_right_led_2_off(void) { DDRB &= ~(1<<6); PORTB &= ~(1<<6); } +inline void ergodox_right_led_3_off(void) { DDRB &= ~(1<<7); PORTB &= ~(1<<7); } +inline void ergodox_right_led_off(uint8_t led) { DDRB &= ~(1<<(led+4)); PORTB &= ~(1<<(led+4)); } + +inline void ergodox_led_all_on(void) +{ + ergodox_board_led_on(); + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + ergodox_right_led_3_on(); +} + +inline void ergodox_led_all_off(void) +{ + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); +} + +inline void ergodox_right_led_1_set(uint8_t n) { OCR1A = n; } +inline void ergodox_right_led_2_set(uint8_t n) { OCR1B = n; } +inline void ergodox_right_led_3_set(uint8_t n) { OCR1C = n; } +inline void ergodox_right_led_set(uint8_t led, uint8_t n) { + (led == 1) ? (OCR1A = n) : + (led == 2) ? (OCR1B = n) : + (OCR1C = n); +} + +inline void ergodox_led_all_set(uint8_t n) +{ + ergodox_right_led_1_set(n); + ergodox_right_led_2_set(n); + ergodox_right_led_3_set(n); +} + +#define KEYMAP( \ + \ + /* left hand, spatial positions */ \ + k00,k01,k02,k03,k04,k05,k06, \ + k10,k11,k12,k13,k14,k15,k16, \ + k20,k21,k22,k23,k24,k25, \ + k30,k31,k32,k33,k34,k35,k36, \ + k40,k41,k42,k43,k44, \ + k55,k56, \ + k54, \ + k53,k52,k51, \ + \ + /* right hand, spatial positions */ \ + k07,k08,k09,k0A,k0B,k0C,k0D, \ + k17,k18,k19,k1A,k1B,k1C,k1D, \ + k28,k29,k2A,k2B,k2C,k2D, \ + k37,k38,k39,k3A,k3B,k3C,k3D, \ + k49,k4A,k4B,k4C,k4D, \ + k57,k58, \ + k59, \ + k5C,k5B,k5A ) \ + \ + /* matrix positions */ \ + { \ + { k00, k10, k20, k30, k40, KC_NO }, \ + { k01, k11, k21, k31, k41, k51 }, \ + { k02, k12, k22, k32, k42, k52 }, \ + { k03, k13, k23, k33, k43, k53 }, \ + { k04, k14, k24, k34, k44, k54 }, \ + { k05, k15, k25, k35, KC_NO, k55 }, \ + { k06, k16, KC_NO, k36, KC_NO, k56 }, \ + \ + { k07, k17, KC_NO, k37,KC_NO, k57 }, \ + { k08, k18, k28, k38,KC_NO, k58 }, \ + { k09, k19, k29, k39, k49, k59 }, \ + { k0A, k1A, k2A, k3A, k4A, k5A }, \ + { k0B, k1B, k2B, k3B, k4B, k5B }, \ + { k0C, k1C, k2C, k3C, k4C, k5C }, \ + { k0D, k1D, k2D, k3D, k4D, KC_NO } \ + } + +#endif diff --git a/keyboards/ergodox/ez/i2cmaster.h b/keyboards/ergodox/ez/i2cmaster.h new file mode 100644 index 000000000..3917b9e6c --- /dev/null +++ b/keyboards/ergodox/ez/i2cmaster.h @@ -0,0 +1,178 @@ +#ifndef _I2CMASTER_H +#define _I2CMASTER_H 1 +/************************************************************************* +* Title: C include file for the I2C master interface +* (i2cmaster.S or twimaster.c) +* Author: Peter Fleury http://jump.to/fleury +* File: $Id: i2cmaster.h,v 1.10 2005/03/06 22:39:57 Peter Exp $ +* Software: AVR-GCC 3.4.3 / avr-libc 1.2.3 +* Target: any AVR device +* Usage: see Doxygen manual +**************************************************************************/ + +#ifdef DOXYGEN +/** + @defgroup pfleury_ic2master I2C Master library + @code #include @endcode + + @brief I2C (TWI) Master Software Library + + Basic routines for communicating with I2C slave devices. This single master + implementation is limited to one bus master on the I2C bus. + + This I2c library is implemented as a compact assembler software implementation of the I2C protocol + which runs on any AVR (i2cmaster.S) and as a TWI hardware interface for all AVR with built-in TWI hardware (twimaster.c). + Since the API for these two implementations is exactly the same, an application can be linked either against the + software I2C implementation or the hardware I2C implementation. + + Use 4.7k pull-up resistor on the SDA and SCL pin. + + Adapt the SCL and SDA port and pin definitions and eventually the delay routine in the module + i2cmaster.S to your target when using the software I2C implementation ! + + Adjust the CPU clock frequence F_CPU in twimaster.c or in the Makfile when using the TWI hardware implementaion. + + @note + The module i2cmaster.S is based on the Atmel Application Note AVR300, corrected and adapted + to GNU assembler and AVR-GCC C call interface. + Replaced the incorrect quarter period delays found in AVR300 with + half period delays. + + @author Peter Fleury pfleury@gmx.ch http://jump.to/fleury + + @par API Usage Example + The following code shows typical usage of this library, see example test_i2cmaster.c + + @code + + #include + + + #define Dev24C02 0xA2 // device address of EEPROM 24C02, see datasheet + + int main(void) + { + unsigned char ret; + + i2c_init(); // initialize I2C library + + // write 0x75 to EEPROM address 5 (Byte Write) + i2c_start_wait(Dev24C02+I2C_WRITE); // set device address and write mode + i2c_write(0x05); // write address = 5 + i2c_write(0x75); // write value 0x75 to EEPROM + i2c_stop(); // set stop conditon = release bus + + + // read previously written value back from EEPROM address 5 + i2c_start_wait(Dev24C02+I2C_WRITE); // set device address and write mode + + i2c_write(0x05); // write address = 5 + i2c_rep_start(Dev24C02+I2C_READ); // set device address and read mode + + ret = i2c_readNak(); // read one byte from EEPROM + i2c_stop(); + + for(;;); + } + @endcode + +*/ +#endif /* DOXYGEN */ + +/**@{*/ + +#if (__GNUC__ * 100 + __GNUC_MINOR__) < 304 +#error "This library requires AVR-GCC 3.4 or later, update to newer AVR-GCC compiler !" +#endif + +#include + +/** defines the data direction (reading from I2C device) in i2c_start(),i2c_rep_start() */ +#define I2C_READ 1 + +/** defines the data direction (writing to I2C device) in i2c_start(),i2c_rep_start() */ +#define I2C_WRITE 0 + + +/** + @brief initialize the I2C master interace. Need to be called only once + @param void + @return none + */ +extern void i2c_init(void); + + +/** + @brief Terminates the data transfer and releases the I2C bus + @param void + @return none + */ +extern void i2c_stop(void); + + +/** + @brief Issues a start condition and sends address and transfer direction + + @param addr address and transfer direction of I2C device + @retval 0 device accessible + @retval 1 failed to access device + */ +extern unsigned char i2c_start(unsigned char addr); + + +/** + @brief Issues a repeated start condition and sends address and transfer direction + + @param addr address and transfer direction of I2C device + @retval 0 device accessible + @retval 1 failed to access device + */ +extern unsigned char i2c_rep_start(unsigned char addr); + + +/** + @brief Issues a start condition and sends address and transfer direction + + If device is busy, use ack polling to wait until device ready + @param addr address and transfer direction of I2C device + @return none + */ +extern void i2c_start_wait(unsigned char addr); + + +/** + @brief Send one byte to I2C device + @param data byte to be transfered + @retval 0 write successful + @retval 1 write failed + */ +extern unsigned char i2c_write(unsigned char data); + + +/** + @brief read one byte from the I2C device, request more data from device + @return byte read from I2C device + */ +extern unsigned char i2c_readAck(void); + +/** + @brief read one byte from the I2C device, read is followed by a stop condition + @return byte read from I2C device + */ +extern unsigned char i2c_readNak(void); + +/** + @brief read one byte from the I2C device + + Implemented as a macro, which calls either i2c_readAck or i2c_readNak + + @param ack 1 send ack, request more data from device
+ 0 send nak, read is followed by a stop condition + @return byte read from I2C device + */ +extern unsigned char i2c_read(unsigned char ack); +#define i2c_read(ack) (ack) ? i2c_readAck() : i2c_readNak(); + + +/**@}*/ +#endif diff --git a/keyboards/ergodox/ez/matrix.c b/keyboards/ergodox/ez/matrix.c new file mode 100644 index 000000000..a19bab90b --- /dev/null +++ b/keyboards/ergodox/ez/matrix.c @@ -0,0 +1,382 @@ +/* + +Note for ErgoDox EZ customizers: Here be dragons! +This is not a file you want to be messing with. +All of the interesting stuff for you is under keymaps/ :) +Love, Erez + +Copyright 2013 Oleg Kostyuk + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +/* + * scan matrix + */ +#include +#include +#include +#include "wait.h" +#include "action_layer.h" +#include "print.h" +#include "debug.h" +#include "util.h" +#include "matrix.h" +#include "ez.h" +#include "i2cmaster.h" +#ifdef DEBUG_MATRIX_SCAN_RATE +#include "timer.h" +#endif + +/* + * This constant define not debouncing time in msecs, but amount of matrix + * scan loops which should be made to get stable debounced results. + * + * On Ergodox matrix scan rate is relatively low, because of slow I2C. + * Now it's only 317 scans/second, or about 3.15 msec/scan. + * According to Cherry specs, debouncing time is 5 msec. + * + * And so, there is no sense to have DEBOUNCE higher than 2. + */ + +#ifndef DEBOUNCE +# define DEBOUNCE 5 +#endif +static uint8_t debouncing = DEBOUNCE; + +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; +static matrix_row_t matrix_debouncing[MATRIX_ROWS]; + +static matrix_row_t read_cols(uint8_t row); +static void init_cols(void); +static void unselect_rows(void); +static void select_row(uint8_t row); + +static uint8_t mcp23018_reset_loop; + +#ifdef DEBUG_MATRIX_SCAN_RATE +uint32_t matrix_timer; +uint32_t matrix_scan_count; +#endif + + +__attribute__ ((weak)) +void matrix_init_user(void) {} + +__attribute__ ((weak)) +void matrix_scan_user(void) {} + +__attribute__ ((weak)) +void matrix_init_kb(void) { + matrix_init_user(); +} + +__attribute__ ((weak)) +void matrix_scan_kb(void) { + matrix_scan_user(); +} + +inline +uint8_t matrix_rows(void) +{ + return MATRIX_ROWS; +} + +inline +uint8_t matrix_cols(void) +{ + return MATRIX_COLS; +} + +void matrix_init(void) +{ + // initialize row and col + + mcp23018_status = init_mcp23018(); + + + unselect_rows(); + init_cols(); + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + matrix_debouncing[i] = 0; + } + +#ifdef DEBUG_MATRIX_SCAN_RATE + matrix_timer = timer_read32(); + matrix_scan_count = 0; +#endif + + matrix_init_kb(); + +} + +void matrix_power_up(void) { + mcp23018_status = init_mcp23018(); + + unselect_rows(); + init_cols(); + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + matrix_debouncing[i] = 0; + } + +#ifdef DEBUG_MATRIX_SCAN_RATE + matrix_timer = timer_read32(); + matrix_scan_count = 0; +#endif + +} + +uint8_t matrix_scan(void) +{ + if (mcp23018_status) { // if there was an error + if (++mcp23018_reset_loop == 0) { + // since mcp23018_reset_loop is 8 bit - we'll try to reset once in 255 matrix scans + // this will be approx bit more frequent than once per second + print("trying to reset mcp23018\n"); + mcp23018_status = init_mcp23018(); + if (mcp23018_status) { + print("left side not responding\n"); + } else { + print("left side attached\n"); + ergodox_blink_all_leds(); + } + } + } + +#ifdef DEBUG_MATRIX_SCAN_RATE + matrix_scan_count++; + + uint32_t timer_now = timer_read32(); + if (TIMER_DIFF_32(timer_now, matrix_timer)>1000) { + print("matrix scan frequency: "); + pdec(matrix_scan_count); + print("\n"); + + matrix_timer = timer_now; + matrix_scan_count = 0; + } +#endif + + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + select_row(i); + wait_us(30); // without this wait read unstable value. + matrix_row_t cols = read_cols(i); + if (matrix_debouncing[i] != cols) { + matrix_debouncing[i] = cols; + if (debouncing) { + debug("bounce!: "); debug_hex(debouncing); debug("\n"); + } + debouncing = DEBOUNCE; + } + unselect_rows(); + } + + if (debouncing) { + if (--debouncing) { + wait_us(1); + // this should be wait_ms(1) but has been left as-is at EZ's request + } else { + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = matrix_debouncing[i]; + } + } + } + + matrix_scan_quantum(); + + return 1; +} + +bool matrix_is_modified(void) +{ + if (debouncing) return false; + return true; +} + +inline +bool matrix_is_on(uint8_t row, uint8_t col) +{ + return (matrix[row] & ((matrix_row_t)1< http://jump.to/fleury +* File: $Id: twimaster.c,v 1.3 2005/07/02 11:14:21 Peter Exp $ +* Software: AVR-GCC 3.4.3 / avr-libc 1.2.3 +* Target: any AVR device with hardware TWI +* Usage: API compatible with I2C Software Library i2cmaster.h +**************************************************************************/ +#include +#include + +#include + + +/* define CPU frequency in Mhz here if not defined in Makefile */ +#ifndef F_CPU +#define F_CPU 16000000UL +#endif + +/* I2C clock in Hz */ +#define SCL_CLOCK 400000L + + +/************************************************************************* + Initialization of the I2C bus interface. Need to be called only once +*************************************************************************/ +void i2c_init(void) +{ + /* initialize TWI clock + * minimal values in Bit Rate Register (TWBR) and minimal Prescaler + * bits in the TWI Status Register should give us maximal possible + * I2C bus speed - about 444 kHz + * + * for more details, see 20.5.2 in ATmega16/32 secification + */ + + TWSR = 0; /* no prescaler */ + TWBR = 10; /* must be >= 10 for stable operation */ + +}/* i2c_init */ + + +/************************************************************************* + Issues a start condition and sends address and transfer direction. + return 0 = device accessible, 1= failed to access device +*************************************************************************/ +unsigned char i2c_start(unsigned char address) +{ + uint8_t twst; + + // send START condition + TWCR = (1<= 0: + if section['name'] == 'layout_config': + config.update(loads("\n".join( + section['code_lines'] + ))) + elif section['sub_name'].startswith('layer'): + layer_name = section['sub_name'] + config['layer_lines'][layer_name] = section['code_lines'] + + reset_section() + + def amend_section(line_index, line): + section['end_line'] = line_index + section['code_lines'].append(line) + + config = DEFAULT_CONFIG.copy() + config.update({ + 'layer_lines': collections.OrderedDict(), + 'macro_ids': {'UM'}, + 'unicode_macros': {}, + }) + + section = {} + reset_section() + + with io.open(path, encoding="utf-8") as fh: + for i, line in enumerate(fh): + if line.startswith("#"): + start_section(i, line) + elif line.startswith(" "): + amend_section(i, line[4:]) + else: + # TODO: maybe parse description + pass + + end_section() + assert 'layout' in config + return config + +# header file parsing + +IF0_RE = re.compile(r""" + ^ + #if 0 + $.*? + #endif +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +COMMENT_RE = re.compile(r""" + /\* + .*? + \*/" +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +def read_header_file(path): + with io.open(path, encoding="utf-8") as fh: + data = fh.read() + data, _ = COMMENT_RE.subn("", data) + data, _ = IF0_RE.subn("", data) + return data + + +def regex_partial(re_str_fmt, flags): + def partial(*args, **kwargs): + re_str = re_str_fmt.format(*args, **kwargs) + return re.compile(re_str, flags) + return partial + + +KEYDEF_REP = regex_partial(r""" + #define + \s + ( + (?:{}) # the prefixes + (?:\w+) # the key name + ) # capture group end +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +ENUM_RE = re.compile(r""" + ( + enum + \s\w+\s + \{ + .*? # the enum content + \} + ; + ) # capture group end +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +ENUM_KEY_REP = regex_partial(r""" + ( + {} # the prefixes + \w+ # the key name + ) # capture group end +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +def parse_keydefs(config, data): + prefix_options = "|".join(config['key_prefixes']) + keydef_re = KEYDEF_REP(prefix_options) + enum_key_re = ENUM_KEY_REP(prefix_options) + for match in keydef_re.finditer(data): + yield match.groups()[0] + + for enum_match in ENUM_RE.finditer(data): + enum = enum_match.groups()[0] + for key_match in enum_key_re.finditer(enum): + yield key_match.groups()[0] + + +def parse_valid_keys(config, out_path): + basepath = os.path.abspath(os.path.join(os.path.dirname(out_path))) + dirpaths = [] + subpaths = [] + while len(subpaths) < 6: + path = os.path.join(basepath, *subpaths) + dirpaths.append(path) + dirpaths.append(os.path.join(path, "tmk_core", "common")) + dirpaths.append(os.path.join(path, "quantum")) + subpaths.append('..') + + includes = set(config['keymaps_includes']) + includes.add("keycode.h") + + valid_keycodes = set() + for dirpath, include in it.product(dirpaths, includes): + include_path = os.path.join(dirpath, include) + if os.path.exists(include_path): + header_data = read_header_file(include_path) + valid_keycodes.update( + parse_keydefs(config, header_data) + ) + return valid_keycodes + + +# Keymap Parsing + +def iter_raw_codes(layer_lines, filler, separator): + filler_re = re.compile("[" + filler + " ]") + for line in layer_lines: + line, _ = filler_re.subn("", line.strip()) + if not line: + continue + codes = line.split(separator) + for code in codes[1:-1]: + yield code + + +def iter_indexed_codes(raw_codes, key_indexes): + key_rows = {} + key_indexes_flat = [] + + for row_index, key_indexes in enumerate(key_indexes): + for key_index in key_indexes: + key_rows[key_index] = row_index + key_indexes_flat.extend(key_indexes) + assert len(raw_codes) == len(key_indexes_flat) + for raw_code, key_index in zip(raw_codes, key_indexes_flat): + # we keep track of the row mostly for layout purposes + yield raw_code, key_index, key_rows[key_index] + + +LAYER_CHANGE_RE = re.compile(r""" + (DF|TG|MO)\(\d+\) +""", re.VERBOSE) + + +MACRO_RE = re.compile(r""" + M\(\w+\) +""", re.VERBOSE) + + +UNICODE_RE = re.compile(r""" + U[0-9A-F]{4} +""", re.VERBOSE) + + +NON_CODE = re.compile(r""" + ^[^A-Z0-9_]$ +""", re.VERBOSE) + + +def parse_uni_code(raw_code): + macro_id = "UC_" + ( + unicodedata.name(raw_code) + .replace(" ", "_") + .replace("-", "_") + ) + code = "M({})".format(macro_id) + uc_hex = "{:04X}".format(ord(raw_code)) + return code, macro_id, uc_hex + + +def parse_key_code(raw_code, key_prefixes, valid_keycodes): + if raw_code in valid_keycodes: + return raw_code + + for prefix in key_prefixes: + code = prefix + raw_code + if code in valid_keycodes: + return code + + +def parse_code(raw_code, key_prefixes, valid_keycodes): + if not raw_code: + return 'KC_TRNS', None, None + + if LAYER_CHANGE_RE.match(raw_code): + return raw_code, None, None + + if MACRO_RE.match(raw_code): + macro_id = raw_code[2:-1] + return raw_code, macro_id, None + + if UNICODE_RE.match(raw_code): + hex_code = raw_code[1:] + return parse_uni_code(chr(int(hex_code, 16))) + + if NON_CODE.match(raw_code): + return parse_uni_code(raw_code) + + code = parse_key_code(raw_code, key_prefixes, valid_keycodes) + return code, None, None + + +def parse_keymap(config, key_indexes, layer_lines, valid_keycodes): + keymap = {} + raw_codes = list(iter_raw_codes( + layer_lines, config['filler'], config['separator'] + )) + indexed_codes = iter_indexed_codes(raw_codes, key_indexes) + key_prefixes = config['key_prefixes'] + for raw_code, key_index, row_index in indexed_codes: + code, macro_id, uc_hex = parse_code( + raw_code, key_prefixes, valid_keycodes + ) + # TODO: line numbers for invalid codes + err_msg = "Could not parse key '{}' on row {}".format( + raw_code, row_index + ) + assert code is not None, err_msg + # print(repr(raw_code), repr(code), macro_id, uc_hex) + if macro_id: + config['macro_ids'].add(macro_id) + if uc_hex: + config['unicode_macros'][macro_id] = uc_hex + keymap[key_index] = (code, row_index) + return keymap + + +def parse_keymaps(config, valid_keycodes): + keymaps = collections.OrderedDict() + key_indexes = config.get( + 'key_indexes', KEYBOARD_LAYOUTS[config['layout']] + ) + # TODO: maybe validate key_indexes + + for layer_name, layer_lines, in config['layer_lines'].items(): + keymaps[layer_name] = parse_keymap( + config, key_indexes, layer_lines, valid_keycodes + ) + return keymaps + +# keymap.c output + +USERCODE = """ +// 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 L1: + ergodox_right_led_1_on(); + break; + case L2: + ergodox_right_led_2_on(); + break; + case L3: + ergodox_right_led_3_on(); + break; + case L4: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + break; + case L5: + ergodox_right_led_1_on(); + ergodox_right_led_3_on(); + break; + // case L6: + // ergodox_right_led_2_on(); + // ergodox_right_led_3_on(); + // break; + // case L7: + // ergodox_right_led_1_on(); + // ergodox_right_led_2_on(); + // ergodox_right_led_3_on(); + // break; + default: + ergodox_board_led_off(); + break; + } +}; +""" + +MACROCODE = """ +#define UC_MODE_WIN 0 +#define UC_MODE_LINUX 1 +#define UC_MODE_OSX 2 + +// TODO: allow default mode to be configured +static uint16_t unicode_mode = UC_MODE_WIN; + +uint16_t hextokeycode(uint8_t hex) {{ + if (hex == 0x0) {{ + return KC_P0; + }} + if (hex < 0xA) {{ + return KC_P1 + (hex - 0x1); + }} + return KC_A + (hex - 0xA); +}} + +void unicode_action_function(uint16_t hi, uint16_t lo) {{ + switch (unicode_mode) {{ + case UC_MODE_WIN: + register_code(KC_LALT); + + register_code(KC_PPLS); + unregister_code(KC_PPLS); + + register_code(hextokeycode((hi & 0xF0) >> 4)); + unregister_code(hextokeycode((hi & 0xF0) >> 4)); + register_code(hextokeycode((hi & 0x0F))); + unregister_code(hextokeycode((hi & 0x0F))); + register_code(hextokeycode((lo & 0xF0) >> 4)); + unregister_code(hextokeycode((lo & 0xF0) >> 4)); + register_code(hextokeycode((lo & 0x0F))); + unregister_code(hextokeycode((lo & 0x0F))); + + unregister_code(KC_LALT); + break; + case UC_MODE_LINUX: + register_code(KC_LCTL); + register_code(KC_LSFT); + + register_code(KC_U); + unregister_code(KC_U); + + register_code(hextokeycode((hi & 0xF0) >> 4)); + unregister_code(hextokeycode((hi & 0xF0) >> 4)); + register_code(hextokeycode((hi & 0x0F))); + unregister_code(hextokeycode((hi & 0x0F))); + register_code(hextokeycode((lo & 0xF0) >> 4)); + unregister_code(hextokeycode((lo & 0xF0) >> 4)); + register_code(hextokeycode((lo & 0x0F))); + unregister_code(hextokeycode((lo & 0x0F))); + + unregister_code(KC_LCTL); + unregister_code(KC_LSFT); + break; + case UC_MODE_OSX: + break; + }} +}} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {{ + if (!record->event.pressed) {{ + return MACRO_NONE; + }} + // MACRODOWN only works in this function + switch(id) {{ + case UM: + unicode_mode = (unicode_mode + 1) % 2; + break; +{macro_cases} +{unicode_macro_cases} + default: + break; + }} + return MACRO_NONE; +}}; +""" + + +UNICODE_MACRO_TEMPLATE = """ +case {macro_id}: + unicode_action_function(0x{hi:02x}, 0x{lo:02x}); + break; +""".strip() + + +def unicode_macro_cases(config): + for macro_id, uc_hex in config['unicode_macros'].items(): + hi = int(uc_hex, 16) >> 8 + lo = int(uc_hex, 16) & 0xFF + unimacro_keys = ", ".join( + "T({})".format( + "KP_" + digit if digit.isdigit() else digit + ) for digit in uc_hex + ) + yield UNICODE_MACRO_TEMPLATE.format( + macro_id=macro_id, hi=hi, lo=lo + ) + + +def iter_keymap_lines(keymap, row_indents=None): + col_widths = {} + col = 0 + # first pass, figure out the column widths + prev_row_index = None + for code, row_index in keymap.values(): + if row_index != prev_row_index: + col = 0 + if row_indents: + col = row_indents[row_index] + col_widths[col] = max(len(code), col_widths.get(col, 0)) + prev_row_index = row_index + col += 1 + + # second pass, yield the cell values + col = 0 + prev_row_index = None + for key_index in sorted(keymap): + code, row_index = keymap[key_index] + if row_index != prev_row_index: + col = 0 + yield "\n" + if row_indents: + for indent_col in range(row_indents[row_index]): + pad = " " * (col_widths[indent_col] - 4) + yield (" /*-*/" + pad) + col = row_indents[row_index] + else: + yield pad + yield " {}".format(code) + if key_index < len(keymap) - 1: + yield "," + # This will be yielded on the next iteration when + # we know that we're not at the end of a line. + pad = " " * (col_widths[col] - len(code)) + prev_row_index = row_index + col += 1 + + +def iter_keymap_parts(config, keymaps): + # includes + for include_path in config['keymaps_includes']: + yield '#include "{}"\n'.format(include_path) + + yield "\n" + + # definitions + for i, macro_id in enumerate(sorted(config['macro_ids'])): + yield "#define {} {}\n".format(macro_id, i) + + yield "\n" + + for i, layer_name in enumerate(config['layer_lines']): + yield '#define L{0:<3} {0:<5} // {1}\n'.format(i, layer_name) + + yield "\n" + + # keymaps + yield "const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\n" + + for i, layer_name in enumerate(config['layer_lines']): + # comment + layer_lines = config['layer_lines'][layer_name] + prefixed_lines = " * " + " * ".join(layer_lines) + yield "/*\n{} */\n".format(prefixed_lines) + + # keymap codes + keymap = keymaps[layer_name] + row_indents = ROW_INDENTS.get(config['layout']) + keymap_lines = "".join(iter_keymap_lines(keymap, row_indents)) + yield "[L{0}] = KEYMAP({1}\n),\n".format(i, keymap_lines) + + yield "};\n\n" + + # no idea what this is for + yield "const uint16_t PROGMEM fn_actions[] = {};\n" + + # macros + yield MACROCODE.format( + macro_cases="", + unicode_macro_cases="\n".join(unicode_macro_cases(config)), + ) + + # TODO: dynamically create blinking lights + yield USERCODE + + +def main(argv=sys.argv[1:]): + if not argv or '-h' in argv or '--help' in argv: + print(__doc__) + return 0 + + in_path = os.path.abspath(argv[0]) + if not os.path.exists(in_path): + print("No such file '{}'".format(in_path)) + return 1 + + if len(argv) > 1: + out_path = os.path.abspath(argv[1]) + else: + dirname = os.path.dirname(in_path) + out_path = os.path.join(dirname, "keymap.c") + + config = parse_config(in_path) + valid_keys = parse_valid_keys(config, out_path) + keymaps = parse_keymaps(config, valid_keys) + + with io.open(out_path, mode="w", encoding="utf-8") as fh: + for part in iter_keymap_parts(config, keymaps): + fh.write(part) + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/keyboards/ergodox/ez/util/readme.md b/keyboards/ergodox/ez/util/readme.md new file mode 100644 index 000000000..26c5e5d99 --- /dev/null +++ b/keyboards/ergodox/ez/util/readme.md @@ -0,0 +1,3 @@ +# ErgoDox EZ Utilities + +The Python script in this directory, by [mbarkhau](https://github.com/mbarkhau) allows you to write out a basic ErgoDox EZ keymap using Markdown notation, and then transpile it to C, which you can then compile. It's experimental, but if you're not comfortable using C, it's a nice option. diff --git a/keyboards/ergodox/infinity/MEMO.txt b/keyboards/ergodox/infinity/MEMO.txt new file mode 100644 index 000000000..e2886aa00 --- /dev/null +++ b/keyboards/ergodox/infinity/MEMO.txt @@ -0,0 +1,385 @@ +flabbergast's TMK/ChibiOS port +============================== +2015/10/16 + + +Build +----- +$ git clone -b chibios https://github.com/flabbergast/tmk_keyboard.git + +$ cd tmk_keyboard +$ git submodule add -f -b kinetis https://github.com/flabbergast/ChibiOS.git tmk_core/tool/chibios/chibios +or +$ cd tmk_keyboard/tmk_core/tool/chibios +$ git clone -b kinetis https://github.com/flabbergast/ChibiOS.git tmk_core/tool/chibios/chibios + +$ cd tmk_keyboard/keyboard/infinity_chibios +$ make + + + + +Chibios Configuration +--------------------- +halconf.h: for HAL configuration + placed in project directory + read in chibios/os/hal/hal.mk + included in chibios/os/hal/include/hal.h +mcuconf.h: for MCU configuration + placed in project directory + included in halconf.h + + +Chibios Term +------------ +PAL = Port Abstraction Layer + palWritePad + palReadPad + palSetPad + chibios/os/hal/include/pal.h + +LLD = Low Level Driver + + +Makefile +-------- + # /os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) + MCU_FAMILY = KINETIS + MCU_SERIES = KL2x + + # - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ + # or /ld/ + MCU_LDSCRIPT = MKL26Z64 + + # - it should exist in /os/common/ports/ARMCMx/compilers/GCC/mk/ + MCU_STARTUP = kl2x + + # Board: it should exist either in /os/hal/boards/ + # or /boards + BOARD = PJRC_TEENSY_LC + + MCU = cortex-m0 + + # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 + ARMV = 6 + + +halconf.h +--------- + + +mcuconf.h +--------- + + +chconf.h +-------- + + +ld script +--------- +--- ../../tmk_core/tool/chibios/chibios/os/common/ports/ARMCMx/compilers/GCC/ld/MKL26Z64.ld 2015-10-15 09:08:58.732904304 +0900 ++++ ld/MKL26Z64.ld 2015-10-15 08:48:06.430215496 +0900 +@@ -27,7 +27,8 @@ + { + flash0 : org = 0x00000000, len = 0xc0 + flashcfg : org = 0x00000400, len = 0x10 +- flash : org = 0x00000410, len = 64k - 0x410 ++ flash : org = 0x00000410, len = 62k - 0x410 ++ eeprom_emu : org = 0x0000F800, len = 2k + ram : org = 0x1FFFF800, len = 8k + } + +@@ -35,6 +36,10 @@ + __ram_size__ = LENGTH(ram); + __ram_end__ = __ram_start__ + __ram_size__; + ++__eeprom_workarea_start__ = ORIGIN(eeprom_emu); ++__eeprom_workarea_size__ = LENGTH(eeprom_emu); ++__eeprom_workarea_end__ = __eeprom_workarea_start__ + __eeprom_workarea_size__; ++ + SECTIONS + { + . = 0; + + + +Configuration/Startup for Infinity 60% +-------------------------------------- +Configuration: + + +Clock: +Inifinity + FEI(FLL Engaged Internal) mode with core clock:48MHz, bus clock:48MHz, flash clock:24MHz + Clock dividor: + SIM_CLKDIV1[OUTDIV1] = 0 divide-by-1 for core clock + SIM_CLKDIV1[OUTDIV2] = 0 divide-by-1 for bus clock + SIM_CLKDIV1[OUTDIV4] = 1 divide-by-2 for flash clock + Internal reference clock: + MCG_C1[IREFS] = 1 Internal Reference Select for clock source for FLL + MCG_C1[IRCLKEN] = 1 Internal Reference Clock Enable + FLL multipilication: + MCG_C4[DMX32] = 1 + MCG_C4[DRST_DRS] = 01 FLL factor 1464 * 32.768kHz = 48MHz + +chibios/os/hal/ports/KINETIS/K20x/hal_lld.c + k20x_clock_init(): called in __early_init() defined in board.c + disable watchdog and configure clock + + configurable macros: + KINETIS_NO_INIT: whether init or not + KINETIS_MCG_MODE: clock mode + KINETIS_MCG_MODE_FEI + KINETIS_MCG_MODE_PEE + hal/ports/KINETIS/K20x/hal_lld.h + + +chibios/os/hal/boards/FREESCALE_FREEDOM_K20D50M/board.h + PALConfig pal_default_config + boardInit() + __early_init() + macro definitions for board infos, freq and mcu type + +chibios/os/hal/boards/FREESCALE_FREEDOM_K20D50M/board.c + +USB + + +Startup +------- + common/ports/ARMCMx/GCC/crt0_v[67]m.s + Reset_Handler: startup code + common/ports/ARMCMx/GCC/crt1.c + __core_init(): weak + __early_init(): weak + __late_init(): weak + __default_exit(): weak + called from Reset_Handler of crt0 + common/ports/ARMCMx/GCC/vector.c + common/ports/ARMCMx/GCC/ld/*.ld + +chibios/os/common/ports/ARMCMx/compilers/GCC/ +├── crt0_v6m.s +├── crt0_v7m.s +├── crt1.c +├── ld +│   ├── MK20DX128BLDR3.ld +│   ├── MK20DX128BLDR4.ld +│   ├── MK20DX128.ld +│   ├── MK20DX256.ld +│   ├── MKL25Z128.ld +│   ├── MKL26Z128.ld +│   ├── MKL26Z64.ld +│   └── STM32L476xG.ld +├── mk +│   ├── startup_k20x5.mk +│   ├── startup_k20x7.mk +│   ├── startup_k20x.mk +│   ├── startup_kl2x.mk +│   └── startup_stm32l4xx.mk +├── rules.ld +├── rules.mk +└── vectors.c + +chibios/os/hal/ +├── boards +│   ├── FREESCALE_FREEDOM_K20D50M +│   │   ├── board.c +│   │   ├── board.h +│   │   └── board.mk +│   ├── MCHCK_K20 +│   │   ├── board.c +│   │   ├── board.h +│   │   └── board.mk +│   ├── PJRC_TEENSY_3 +│   │   ├── board.c +│   │   ├── board.h +│   │   └── board.mk +│   ├── PJRC_TEENSY_3_1 +│   │   ├── board.c +│   │   ├── board.h +│   │   └── board.mk +│   ├── PJRC_TEENSY_LC +│   │   ├── board.c +│   │   ├── board.h +│   │   └── board.mk +│   ├── readme.txt +│   ├── simulator +│   │   ├── board.c +│   │   ├── board.h +│   │   └── board.mk +│   ├── ST_NUCLEO_F030R8 +│   │   ├── board.c +│   │   ├── board.h +│   │   ├── board.mk +│   │   └── cfg +│   │   └── board.chcfg +├── hal.mk +├── include +│   ├── adc.h +│   ├── can.h +│   ├── dac.h +│   ├── ext.h +│   ├── gpt.h +│   ├── hal_channels.h +│   ├── hal_files.h +│   ├── hal.h +│   ├── hal_ioblock.h +│   ├── hal_mmcsd.h +│   ├── hal_queues.h +│   ├── hal_streams.h +│   ├── i2c.h +│   ├── i2s.h +│   ├── icu.h +│   ├── mac.h +│   ├── mii.h +│   ├── mmc_spi.h +│   ├── pal.h +│   ├── pwm.h +│   ├── rtc.h +│   ├── sdc.h +│   ├── serial.h +│   ├── serial_usb.h +│   ├── spi.h +│   ├── st.h +│   ├── uart.h +│   └── usb.h +├── lib +│   └── streams +│   ├── chprintf.c +│   ├── chprintf.h +│   ├── memstreams.c +│   ├── memstreams.h +│   ├── nullstreams.c +│   └── nullstreams.h +├── osal +│   ├── nil +│   │   ├── osal.c +│   │   ├── osal.h +│   │   └── osal.mk +│   ├── os-less +│   │   └── ARMCMx +│   │   ├── osal.c +│   │   ├── osal.h +│   │   └── osal.mk +│   └── rt +│   ├── osal.c +│   ├── osal.h +│   └── osal.mk +├── ports +│   ├── AVR +│   ├── common +│   │   └── ARMCMx +│   │   ├── mpu.h +│   │   ├── nvic.c +│   │   └── nvic.h +│   ├── KINETIS +│   │   ├── K20x +│   │   │   ├── hal_lld.c +│   │   │   ├── hal_lld.h +│   │   │   ├── kinetis_registry.h +│   │   │   ├── platform.dox +│   │   │   ├── platform.mk +│   │   │   ├── pwm_lld.c +│   │   │   ├── pwm_lld.h +│   │   │   ├── spi_lld.c +│   │   │   └── spi_lld.h +│   │   ├── KL2x +│   │   │   ├── hal_lld.c +│   │   │   ├── hal_lld.h +│   │   │   ├── kinetis_registry.h +│   │   │   ├── platform.mk +│   │   │   ├── pwm_lld.c +│   │   │   └── pwm_lld.h +│   │   ├── LLD +│   │   │   ├── adc_lld.c +│   │   │   ├── adc_lld.h +│   │   │   ├── ext_lld.c +│   │   │   ├── ext_lld.h +│   │   │   ├── gpt_lld.c +│   │   │   ├── gpt_lld.h +│   │   │   ├── i2c_lld.c +│   │   │   ├── i2c_lld.h +│   │   │   ├── pal_lld.c +│   │   │   ├── pal_lld.h +│   │   │   ├── serial_lld.c +│   │   │   ├── serial_lld.h +│   │   │   ├── st_lld.c +│   │   │   ├── st_lld.h +│   │   │   ├── usb_lld.c +│   │   │   └── usb_lld.h +│   │   └── README.md +│   ├── LPC +│   ├── simulator +│   └── STM32 +├── src +│   ├── adc.c +│   ├── can.c +│   ├── dac.c +│   ├── ext.c +│   ├── gpt.c +│   ├── hal.c +│   ├── hal_mmcsd.c +│   ├── hal_queues.c +│   ├── i2c.c +│   ├── i2s.c +│   ├── icu.c +│   ├── mac.c +│   ├── mmc_spi.c +│   ├── pal.c +│   ├── pwm.c +│   ├── rtc.c +│   ├── sdc.c +│   ├── serial.c +│   ├── serial_usb.c +│   ├── spi.c +│   ├── st.c +│   ├── uart.c +│   └── usb.c +└── templates + ├── adc_lld.c + ├── adc_lld.h + ├── can_lld.c + ├── can_lld.h + ├── dac_lld.c + ├── dac_lld.h + ├── ext_lld.c + ├── ext_lld.h + ├── gpt_lld.c + ├── gpt_lld.h + ├── halconf.h + ├── hal_lld.c + ├── hal_lld.h + ├── i2c_lld.c + ├── i2c_lld.h + ├── i2s_lld.c + ├── i2s_lld.h + ├── icu_lld.c + ├── icu_lld.h + ├── mac_lld.c + ├── mac_lld.h + ├── mcuconf.h + ├── osal + │   ├── osal.c + │   ├── osal.h + │   └── osal.mk + ├── pal_lld.c + ├── pal_lld.h + ├── platform.mk + ├── pwm_lld.c + ├── pwm_lld.h + ├── rtc_lld.c + ├── rtc_lld.h + ├── sdc_lld.c + ├── sdc_lld.h + ├── serial_lld.c + ├── serial_lld.h + ├── spi_lld.c + ├── spi_lld.h + ├── st_lld.c + ├── st_lld.h + ├── uart_lld.c + ├── uart_lld.h + ├── usb_lld.c + └── usb_lld.h diff --git a/keyboards/ergodox/infinity/Makefile b/keyboards/ergodox/infinity/Makefile new file mode 100644 index 000000000..942032f83 --- /dev/null +++ b/keyboards/ergodox/infinity/Makefile @@ -0,0 +1,77 @@ +# project specific files +SRC = matrix.c \ + led.c + +## chip/board settings +# - the next two should match the directories in +# /os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) +# - For Teensies, FAMILY = KINETIS and SERIES is either +# KL2x (LC) or K20x (3.0,3.1,3.2). +# - For Infinity KB, SERIES = K20x +MCU_FAMILY = KINETIS +MCU_SERIES = K20x + +# Linker script to use +# - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ +# or /ld/ +# - NOTE: a custom ld script is needed for EEPROM on Teensy LC +# - LDSCRIPT = +# - MKL26Z64 for Teensy LC +# - MK20DX128 for Teensy 3.0 +# - MK20DX256 for Teensy 3.1 and 3.2 +# - MK20DX128BLDR4 for Infinity 60% with Kiibohd bootloader +# - MK20DX256BLDR8 for Infinity ErgoDox with Kiibohd bootloader +MCU_LDSCRIPT = MK20DX256BLDR8 + +# Startup code to use +# - it should exist in /os/common/ports/ARMCMx/compilers/GCC/mk/ +# - STARTUP = +# - kl2x for Teensy LC +# - k20x5 for Teensy 3.0 and Infinity 60% +# - k20x7 for Teensy 3.1, 3.2 and Infinity ErgoDox +MCU_STARTUP = k20x7 + +# Board: it should exist either in /os/hal/boards/ +# or /boards +# - BOARD = +# - PJRC_TEENSY_LC for Teensy LC +# - PJRC_TEENSY_3 for Teensy 3.0 +# - PJRC_TEENSY_3_1 for Teensy 3.1 or 3.2 +# - MCHCK_K20 for Infinity KB +#BOARD = MCHCK_K20 +BOARD = PJRC_TEENSY_3_1 + +# Cortex version +# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4 +MCU = cortex-m4 + +# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 +# I.e. 6 for Teensy LC; 7 for Teensy 3.x +ARMV = 7 + +# Vector table for application +# 0x00000000-0x00001000 area is occupied by bootlaoder.*/ +# The CORTEX_VTOR... is needed only for MCHCK/Infinity KB +OPT_DEFS = -DCORTEX_VTOR_INIT=0x00002000 + +# Build Options +# comment out to disable the options. +# +CUSTOM_MATRIX ?= yes # Custom matrix file +SERIAL_LINK_ENABLE = yes +VISUALIZER_ENABLE ?= yes +LCD_ENABLE ?= yes +LED_ENABLE ?= yes +LCD_BACKLIGHT_ENABLE ?= yes + +ifdef LCD_ENABLE +include drivers/gdisp/st7565ergodox/driver.mk +endif + +ifdef LED_ENABLE +include drivers/gdisp/IS31FL3731C/driver.mk +endif + +ifndef QUANTUM_DIR + include ../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/ergodox/infinity/bootloader_defs.h b/keyboards/ergodox/infinity/bootloader_defs.h new file mode 100644 index 000000000..c67153be6 --- /dev/null +++ b/keyboards/ergodox/infinity/bootloader_defs.h @@ -0,0 +1 @@ +#define KIIBOHD_BOOTLOADER diff --git a/keyboards/ergodox/infinity/chconf.h b/keyboards/ergodox/infinity/chconf.h new file mode 100644 index 000000000..d59c35eb6 --- /dev/null +++ b/keyboards/ergodox/infinity/chconf.h @@ -0,0 +1,524 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file templates/chconf.h + * @brief Configuration file template. + * @details A copy of this file must be placed in each project directory, it + * contains the application specific kernel settings. + * + * @addtogroup config + * @details Kernel related settings and hooks. + * @{ + */ + +#ifndef _CHCONF_H_ +#define _CHCONF_H_ + +#define _CHIBIOS_RT_CONF_ + +/*===========================================================================*/ +/** + * @name System timers settings + * @{ + */ +/*===========================================================================*/ + +/** + * @brief System time counter resolution. + * @note Allowed values are 16 or 32 bits. + */ +#define CH_CFG_ST_RESOLUTION 32 + +/** + * @brief System tick frequency. + * @details Frequency of the system timer that drives the system ticks. This + * setting also defines the system tick time unit. + */ +#define CH_CFG_ST_FREQUENCY 100000 + +/** + * @brief Time delta constant for the tick-less mode. + * @note If this value is zero then the system uses the classic + * periodic tick. This value represents the minimum number + * of ticks that is safe to specify in a timeout directive. + * The value one is not valid, timeouts are rounded up to + * this value. + */ +#define CH_CFG_ST_TIMEDELTA 0 + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel parameters and options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Round robin interval. + * @details This constant is the number of system ticks allowed for the + * threads before preemption occurs. Setting this value to zero + * disables the preemption for threads with equal priority and the + * round robin becomes cooperative. Note that higher priority + * threads can still preempt, the kernel is always preemptive. + * @note Disabling the round robin preemption makes the kernel more compact + * and generally faster. + * @note The round robin preemption is not supported in tickless mode and + * must be set to zero in that case. + */ +#define CH_CFG_TIME_QUANTUM 20 + +/** + * @brief Managed RAM size. + * @details Size of the RAM area to be managed by the OS. If set to zero + * then the whole available RAM is used. The core memory is made + * available to the heap allocator and/or can be used directly through + * the simplified core memory allocator. + * + * @note In order to let the OS manage the whole RAM the linker script must + * provide the @p __heap_base__ and @p __heap_end__ symbols. + * @note Requires @p CH_CFG_USE_MEMCORE. + */ +#define CH_CFG_MEMCORE_SIZE 0 + +/** + * @brief Idle thread automatic spawn suppression. + * @details When this option is activated the function @p chSysInit() + * does not spawn the idle thread. The application @p main() + * function becomes the idle thread and must implement an + * infinite loop. + */ +#define CH_CFG_NO_IDLE_THREAD FALSE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Performance options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief OS optimization. + * @details If enabled then time efficient rather than space efficient code + * is used when two possible implementations exist. + * + * @note This is not related to the compiler optimization options. + * @note The default is @p TRUE. + */ +#define CH_CFG_OPTIMIZE_SPEED TRUE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Subsystem options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Time Measurement APIs. + * @details If enabled then the time measurement APIs are included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_TM FALSE + +/** + * @brief Threads registry APIs. + * @details If enabled then the registry APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_REGISTRY TRUE + +/** + * @brief Threads synchronization APIs. + * @details If enabled then the @p chThdWait() function is included in + * the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_WAITEXIT TRUE + +/** + * @brief Semaphores APIs. + * @details If enabled then the Semaphores APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_SEMAPHORES TRUE + +/** + * @brief Semaphores queuing mode. + * @details If enabled then the threads are enqueued on semaphores by + * priority rather than in FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE + +/** + * @brief Mutexes APIs. + * @details If enabled then the mutexes APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MUTEXES TRUE + +/** + * @brief Enables recursive behavior on mutexes. + * @note Recursive mutexes are heavier and have an increased + * memory footprint. + * + * @note The default is @p FALSE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE + +/** + * @brief Conditional Variables APIs. + * @details If enabled then the conditional variables APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MUTEXES. + */ +#define CH_CFG_USE_CONDVARS TRUE + +/** + * @brief Conditional Variables APIs with timeout. + * @details If enabled then the conditional variables APIs with timeout + * specification are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_CONDVARS. + */ +#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE + +/** + * @brief Events Flags APIs. + * @details If enabled then the event flags APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_EVENTS TRUE + +/** + * @brief Events Flags APIs with timeout. + * @details If enabled then the events APIs with timeout specification + * are included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_EVENTS. + */ +#define CH_CFG_USE_EVENTS_TIMEOUT TRUE + +/** + * @brief Synchronous Messages APIs. + * @details If enabled then the synchronous messages APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MESSAGES TRUE + +/** + * @brief Synchronous Messages queuing mode. + * @details If enabled then messages are served by priority rather than in + * FIFO order. + * + * @note The default is @p FALSE. Enable this if you have special + * requirements. + * @note Requires @p CH_CFG_USE_MESSAGES. + */ +#define CH_CFG_USE_MESSAGES_PRIORITY FALSE + +/** + * @brief Mailboxes APIs. + * @details If enabled then the asynchronous messages (mailboxes) APIs are + * included in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_SEMAPHORES. + */ +#define CH_CFG_USE_MAILBOXES TRUE + +/** + * @brief I/O Queues APIs. + * @details If enabled then the I/O queues APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_QUEUES TRUE + +/** + * @brief Core Memory Manager APIs. + * @details If enabled then the core memory manager APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MEMCORE TRUE + +/** + * @brief Heap Allocator APIs. + * @details If enabled then the memory heap allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or + * @p CH_CFG_USE_SEMAPHORES. + * @note Mutexes are recommended. + */ +#define CH_CFG_USE_HEAP TRUE + +/** + * @brief Memory Pools Allocator APIs. + * @details If enabled then the memory pools allocator APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + */ +#define CH_CFG_USE_MEMPOOLS TRUE + +/** + * @brief Dynamic Threads APIs. + * @details If enabled then the dynamic threads creation APIs are included + * in the kernel. + * + * @note The default is @p TRUE. + * @note Requires @p CH_CFG_USE_WAITEXIT. + * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. + */ +#define CH_CFG_USE_DYNAMIC TRUE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Debug options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Debug option, kernel statistics. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_STATISTICS FALSE + +/** + * @brief Debug option, system state check. + * @details If enabled the correct call protocol for system APIs is checked + * at runtime. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_SYSTEM_STATE_CHECK FALSE + +/** + * @brief Debug option, parameters checks. + * @details If enabled then the checks on the API functions input + * parameters are activated. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_ENABLE_CHECKS FALSE + +/** + * @brief Debug option, consistency checks. + * @details If enabled then all the assertions in the kernel code are + * activated. This includes consistency checks inside the kernel, + * runtime anomalies and port-defined checks. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_ENABLE_ASSERTS FALSE + +/** + * @brief Debug option, trace buffer. + * @details If enabled then the context switch circular trace buffer is + * activated. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_ENABLE_TRACE FALSE + +/** + * @brief Debug option, stack checks. + * @details If enabled then a runtime stack check is performed. + * + * @note The default is @p FALSE. + * @note The stack check is performed in a architecture/port dependent way. + * It may not be implemented or some ports. + * @note The default failure mode is to halt the system with the global + * @p panic_msg variable set to @p NULL. + */ +#define CH_DBG_ENABLE_STACK_CHECK FALSE + +/** + * @brief Debug option, stacks initialization. + * @details If enabled then the threads working area is filled with a byte + * value when a thread is created. This can be useful for the + * runtime measurement of the used stack. + * + * @note The default is @p FALSE. + */ +#define CH_DBG_FILL_THREADS FALSE + +/** + * @brief Debug option, threads profiling. + * @details If enabled then a field is added to the @p thread_t structure that + * counts the system ticks occurred while executing the thread. + * + * @note The default is @p FALSE. + * @note This debug option is not currently compatible with the + * tickless mode. + */ +#define CH_DBG_THREADS_PROFILING FALSE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel hooks + * @{ + */ +/*===========================================================================*/ + +/** + * @brief Threads descriptor structure extension. + * @details User fields added to the end of the @p thread_t structure. + */ +#define CH_CFG_THREAD_EXTRA_FIELDS \ + /* Add threads custom fields here.*/ + +/** + * @brief Threads initialization hook. + * @details User initialization code added to the @p chThdInit() API. + * + * @note It is invoked from within @p chThdInit() and implicitly from all + * the threads creation APIs. + */ +#define CH_CFG_THREAD_INIT_HOOK(tp) { \ + /* Add threads initialization code here.*/ \ +} + +/** + * @brief Threads finalization hook. + * @details User finalization code added to the @p chThdExit() API. + * + * @note It is inserted into lock zone. + * @note It is also invoked when the threads simply return in order to + * terminate. + */ +#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ + /* Add threads finalization code here.*/ \ +} + +/** + * @brief Context switch hook. + * @details This hook is invoked just before switching between threads. + */ +#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ + /* Context switch code here.*/ \ +} + +/** + * @brief ISR enter hook. + */ +#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ + /* IRQ prologue code here.*/ \ +} + +/** + * @brief ISR exit hook. + */ +#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ + /* IRQ epilogue code here.*/ \ +} + +/** + * @brief Idle thread enter hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to activate a power saving mode. + */ +#define CH_CFG_IDLE_ENTER_HOOK() { \ +} + +/** + * @brief Idle thread leave hook. + * @note This hook is invoked within a critical zone, no OS functions + * should be invoked from here. + * @note This macro can be used to deactivate a power saving mode. + */ +#define CH_CFG_IDLE_LEAVE_HOOK() { \ +} + +/** + * @brief Idle Loop hook. + * @details This hook is continuously invoked by the idle thread loop. + */ +#define CH_CFG_IDLE_LOOP_HOOK() { \ + /* Idle loop code here.*/ \ +} + +/** + * @brief System tick event hook. + * @details This hook is invoked in the system tick handler immediately + * after processing the virtual timers queue. + */ +#define CH_CFG_SYSTEM_TICK_HOOK() { \ + /* System tick event code here.*/ \ +} + +/** + * @brief System halt hook. + * @details This hook is invoked in case to a system halting error before + * the system is halted. + */ +#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ + /* System halt code here.*/ \ +} + +/** + * @brief Trace hook. + * @details This hook is invoked each time a new record is written in the + * trace buffer. + */ +#define CH_CFG_TRACE_HOOK(tep) { \ + /* Trace code here.*/ \ +} + +/** @} */ + +/*===========================================================================*/ +/* Port-specific settings (override port settings defaulted in chcore.h). */ +/*===========================================================================*/ + +#endif /* _CHCONF_H_ */ + +/** @} */ diff --git a/keyboards/ergodox/infinity/config.h b/keyboards/ergodox/infinity/config.h new file mode 100644 index 000000000..d24ee0f05 --- /dev/null +++ b/keyboards/ergodox/infinity/config.h @@ -0,0 +1,80 @@ +/* +Copyright 2015 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6464 +#define DEVICE_VER 0x0001 +/* in python2: list(u"whatever".encode('utf-16-le')) */ +/* at most 32 characters or the ugly hack in usb_main.c borks */ +#define MANUFACTURER "TMK" +#define USBSTR_MANUFACTURER 'T', '\x00', 'M', '\x00', 'K', '\x00', ' ', '\x00' +#define PRODUCT "Infinity keyboard/TMK" +#define USBSTR_PRODUCT 'I', '\x00', 'n', '\x00', 'f', '\x00', 'i', '\x00', 'n', '\x00', 'i', '\x00', 't', '\x00', 'y', '\x00', ' ', '\x00', 'k', '\x00', 'e', '\x00', 'y', '\x00', 'b', '\x00', 'o', '\x00', 'a', '\x00', 'r', '\x00', 'd', '\x00', '/', '\x00', 'T', '\x00', 'M', '\x00', 'K', '\x00' + +/* key matrix size */ +#define MATRIX_ROWS 18 +#define MATRIX_COLS 5 +#define LOCAL_MATRIX_ROWS 9 + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +//#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +//#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* Keymap for Infiity prototype */ +#define INFINITY_PROTOTYPE + +#define SERIAL_LINK_BAUD 562500 +#define SERIAL_LINK_THREAD_PRIORITY (NORMALPRIO - 1) +// The visualizer needs gfx thread priorities +#define VISUALIZER_THREAD_PRIORITY (NORMAL_PRIORITY - 2) + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h new file mode 100644 index 000000000..2ea73f1fb --- /dev/null +++ b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h @@ -0,0 +1,113 @@ +/* +Copyright 2016 Fred Sundvik + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef _GDISP_LLD_BOARD_H +#define _GDISP_LLD_BOARD_H + +static const I2CConfig i2ccfg = { + 400000 // clock speed (Hz); 400kHz max for IS31 +}; + +#define GDISP_SCREEN_WIDTH 7 +#define GDISP_SCREEN_HEIGHT 7 + +static const uint8_t led_mask[] = { + 0xFF, 0x00, /* C1-1 -> C1-16 */ + 0xFF, 0x00, /* C2-1 -> C2-16 */ + 0xFF, 0x00, /* C3-1 -> C3-16 */ + 0xFF, 0x00, /* C4-1 -> C4-16 */ + 0x3F, 0x00, /* C5-1 -> C5-16 */ + 0x00, 0x00, /* C6-1 -> C6-16 */ + 0x00, 0x00, /* C7-1 -> C7-16 */ + 0x00, 0x00, /* C8-1 -> C8-16 */ + 0x00, 0x00, /* C9-1 -> C9-16 */ +}; + +// The address of the LED +#define LA(c, r) (c + r * 16 ) +// Need to be an address that is not mapped, but inside the range of the controller matrix +#define NA LA(8, 8) + +// The numbers in the comments are the led numbers DXX on the PCB +// The mapping is taken from the schematic of left hand side +static const uint8_t led_mapping[GDISP_SCREEN_HEIGHT][GDISP_SCREEN_WIDTH] = { +// 45 44 43 42 41 40 39 + { LA(1, 1), LA(1, 0), LA(0, 4), LA(0, 3), LA(0, 2), LA(0, 1), LA(0, 0)}, +// 52 51 50 49 48 47 46 + { LA(2, 3), LA(2, 2), LA(2, 1), LA(2, 0), LA(1, 4), LA(1, 3), LA(1, 2) }, +// 58 57 56 55 54 53 N/A + { LA(3, 4), LA(3, 3), LA(3, 2), LA(3, 1), LA(3, 0), LA(2, 4), NA }, +// 67 66 65 64 63 62 61 + { LA(5, 3), LA(5, 2), LA(5, 1), LA(5, 0), LA(4, 4), LA(4, 3), LA(4, 2) }, +// 76 75 74 73 72 60 59 + { LA(7, 3), LA(7, 2), LA(7, 1), LA(7, 0), LA(6, 3), LA(4, 1), LA(4, 0) }, +// N/A N/A N/A N/A N/A N/A 68 + { NA, NA, NA, NA, NA, NA, LA(5, 4) }, +// N/A N/A N/A N/A 71 70 69 + { NA, NA, NA, NA, LA(6, 2), LA(6, 1), LA(6, 0) }, +}; + + +#define IS31_ADDR_DEFAULT 0x74 // AD connected to GND +#define IS31_TIMEOUT 5000 + +static GFXINLINE void init_board(GDisplay *g) { + (void) g; + /* I2C pins */ + palSetPadMode(GPIOB, 0, PAL_MODE_ALTERNATIVE_2); // PTB0/I2C0/SCL + palSetPadMode(GPIOB, 1, PAL_MODE_ALTERNATIVE_2); // PTB1/I2C0/SDA + palSetPadMode(GPIOB, 16, PAL_MODE_OUTPUT_PUSHPULL); + palClearPad(GPIOB, 16); + /* start I2C */ + i2cStart(&I2CD1, &i2ccfg); + // try high drive (from kiibohd) + I2CD1.i2c->C2 |= I2Cx_C2_HDRS; + // try glitch fixing (from kiibohd) + I2CD1.i2c->FLT = 4; +} + +static GFXINLINE void post_init_board(GDisplay *g) { + (void) g; +} + +static GFXINLINE const uint8_t* get_led_mask(GDisplay* g) { + (void) g; + return led_mask; +} + +static GFXINLINE uint8_t get_led_address(GDisplay* g, uint16_t x, uint16_t y) +{ + (void) g; + return led_mapping[y][x]; +} + +static GFXINLINE void set_hardware_shutdown(GDisplay* g, bool shutdown) { + (void) g; + if(!shutdown) { + palSetPad(GPIOB, 16); + } + else { + palClearPad(GPIOB, 16); + } +} + +static GFXINLINE void write_data(GDisplay *g, uint8_t* data, uint16_t length) { + (void) g; + i2cMasterTransmitTimeout(&I2CD1, IS31_ADDR_DEFAULT, data, length, 0, 0, US2ST(IS31_TIMEOUT)); +} + +#endif /* _GDISP_LLD_BOARD_H */ diff --git a/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/driver.mk b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/driver.mk new file mode 100644 index 000000000..f32d0d868 --- /dev/null +++ b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/driver.mk @@ -0,0 +1,2 @@ +GFXINC += drivers/gdisp/IS31FL3731C +GFXSRC += drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c diff --git a/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c new file mode 100644 index 000000000..1d21f0c49 --- /dev/null +++ b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c @@ -0,0 +1,333 @@ +/* +Copyright 2016 Fred Sundvik + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "gfx.h" + +#if GFX_USE_GDISP + +#define GDISP_DRIVER_VMT GDISPVMT_IS31FL3731C_ERGODOX +#include "drivers/gdisp/IS31FL3731C/gdisp_lld_config.h" +#include "src/gdisp/gdisp_driver.h" + +#include "board_IS31FL3731C.h" + +/*===========================================================================*/ +/* Driver local definitions. */ +/*===========================================================================*/ + +#ifndef GDISP_SCREEN_HEIGHT + #define GDISP_SCREEN_HEIGHT 9 +#endif +#ifndef GDISP_SCREEN_WIDTH + #define GDISP_SCREEN_WIDTH 16 +#endif +#ifndef GDISP_INITIAL_CONTRAST + #define GDISP_INITIAL_CONTRAST 0 +#endif +#ifndef GDISP_INITIAL_BACKLIGHT + #define GDISP_INITIAL_BACKLIGHT 100 +#endif + +#define GDISP_FLG_NEEDFLUSH (GDISP_FLG_DRIVER<<0) + +#define IS31_ADDR_DEFAULT 0x74 + +#define IS31_REG_CONFIG 0x00 +// bits in reg +#define IS31_REG_CONFIG_PICTUREMODE 0x00 +#define IS31_REG_CONFIG_AUTOPLAYMODE 0x08 +#define IS31_REG_CONFIG_AUDIOPLAYMODE 0x18 +// D2:D0 bits are starting frame for autoplay mode + +#define IS31_REG_PICTDISP 0x01 // D2:D0 frame select for picture mode + +#define IS31_REG_AUTOPLAYCTRL1 0x02 +// D6:D4 number of loops (000=infty) +// D2:D0 number of frames to be used + +#define IS31_REG_AUTOPLAYCTRL2 0x03 // D5:D0 delay time (*11ms) + +#define IS31_REG_DISPLAYOPT 0x05 +#define IS31_REG_DISPLAYOPT_INTENSITY_SAME 0x20 // same intensity for all frames +#define IS31_REG_DISPLAYOPT_BLINK_ENABLE 0x8 +// D2:D0 bits blink period time (*0.27s) + +#define IS31_REG_AUDIOSYNC 0x06 +#define IS31_REG_AUDIOSYNC_ENABLE 0x1 + +#define IS31_REG_FRAMESTATE 0x07 + +#define IS31_REG_BREATHCTRL1 0x08 +// D6:D4 fade out time (26ms*2^i) +// D2:D0 fade in time (26ms*2^i) + +#define IS31_REG_BREATHCTRL2 0x09 +#define IS31_REG_BREATHCTRL2_ENABLE 0x10 +// D2:D0 extinguish time (3.5ms*2^i) + +#define IS31_REG_SHUTDOWN 0x0A +#define IS31_REG_SHUTDOWN_OFF 0x0 +#define IS31_REG_SHUTDOWN_ON 0x1 + +#define IS31_REG_AGCCTRL 0x0B +#define IS31_REG_ADCRATE 0x0C + +#define IS31_COMMANDREGISTER 0xFD +#define IS31_FUNCTIONREG 0x0B // helpfully called 'page nine' +#define IS31_FUNCTIONREG_SIZE 0xD + +#define IS31_FRAME_SIZE 0xB4 + +#define IS31_PWM_REG 0x24 +#define IS31_PWM_SIZE 0x90 + +#define IS31_LED_MASK_SIZE 0x12 +#define IS31_SCREEN_WIDTH 16 + +#define IS31 + +//Generated by http://jared.geek.nz/2013/feb/linear-led-pwm +const unsigned char cie[256] = { + 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, + 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, + 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, + 7, 8, 8, 8, 8, 9, 9, 9, 10, 10, + 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, + 13, 14, 14, 15, 15, 15, 16, 16, 17, 17, + 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, + 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, + 28, 28, 29, 29, 30, 31, 31, 32, 32, 33, + 34, 34, 35, 36, 37, 37, 38, 39, 39, 40, + 41, 42, 43, 43, 44, 45, 46, 47, 47, 48, + 49, 50, 51, 52, 53, 54, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 70, 71, 72, 73, 74, 75, 76, 77, 79, + 80, 81, 82, 83, 85, 86, 87, 88, 90, 91, + 92, 94, 95, 96, 98, 99, 100, 102, 103, 105, + 106, 108, 109, 110, 112, 113, 115, 116, 118, 120, + 121, 123, 124, 126, 128, 129, 131, 132, 134, 136, + 138, 139, 141, 143, 145, 146, 148, 150, 152, 154, + 155, 157, 159, 161, 163, 165, 167, 169, 171, 173, + 175, 177, 179, 181, 183, 185, 187, 189, 191, 193, + 196, 198, 200, 202, 204, 207, 209, 211, 214, 216, + 218, 220, 223, 225, 228, 230, 232, 235, 237, 240, + 242, 245, 247, 250, 252, 255, +}; + + +/*===========================================================================*/ +/* Driver local functions. */ +/*===========================================================================*/ + +typedef struct{ + uint8_t write_buffer_offset; + uint8_t write_buffer[IS31_FRAME_SIZE]; + uint8_t frame_buffer[GDISP_SCREEN_HEIGHT * GDISP_SCREEN_WIDTH]; + uint8_t page; +}__attribute__((__packed__)) PrivData; + +// Some common routines and macros +#define PRIV(g) ((PrivData*)g->priv) + +/*===========================================================================*/ +/* Driver exported functions. */ +/*===========================================================================*/ + +static GFXINLINE void write_page(GDisplay* g, uint8_t page) { + uint8_t tx[2] __attribute__((aligned(2))); + tx[0] = IS31_COMMANDREGISTER; + tx[1] = page; + write_data(g, tx, 2); +} + +static GFXINLINE void write_register(GDisplay* g, uint8_t page, uint8_t reg, uint8_t data) { + uint8_t tx[2] __attribute__((aligned(2))); + tx[0] = reg; + tx[1] = data; + write_page(g, page); + write_data(g, tx, 2); +} + +static GFXINLINE void write_ram(GDisplay *g, uint8_t page, uint16_t offset, uint16_t length) { + PRIV(g)->write_buffer_offset = offset; + write_page(g, page); + write_data(g, (uint8_t*)PRIV(g), length + 1); +} + +LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { + // The private area is the display surface. + g->priv = gfxAlloc(sizeof(PrivData)); + __builtin_memset(PRIV(g), 0, sizeof(PrivData)); + PRIV(g)->page = 0; + + // Initialise the board interface + init_board(g); + gfxSleepMilliseconds(10); + + // zero function page, all registers (assuming full_page is all zeroes) + write_ram(g, IS31_FUNCTIONREG, 0, IS31_FUNCTIONREG_SIZE); + set_hardware_shutdown(g, false); + gfxSleepMilliseconds(10); + // software shutdown + write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); + gfxSleepMilliseconds(10); + // zero function page, all registers + write_ram(g, IS31_FUNCTIONREG, 0, IS31_FUNCTIONREG_SIZE); + gfxSleepMilliseconds(10); + + + // zero all LED registers on all 8 pages, and enable the mask + __builtin_memcpy(PRIV(g)->write_buffer, get_led_mask(g), IS31_LED_MASK_SIZE); + for(uint8_t i=0; i<8; i++) { + write_ram(g, i, 0, IS31_FRAME_SIZE); + gfxSleepMilliseconds(1); + } + + // software shutdown disable (i.e. turn stuff on) + write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON); + gfxSleepMilliseconds(10); + + // Finish Init + post_init_board(g); + + /* Initialise the GDISP structure */ + g->g.Width = GDISP_SCREEN_WIDTH; + g->g.Height = GDISP_SCREEN_HEIGHT; + g->g.Orientation = GDISP_ROTATE_0; + g->g.Powermode = powerOn; + g->g.Backlight = GDISP_INITIAL_BACKLIGHT; + g->g.Contrast = GDISP_INITIAL_CONTRAST; + return TRUE; +} + +#if GDISP_HARDWARE_FLUSH + LLDSPEC void gdisp_lld_flush(GDisplay *g) { + // Don't flush if we don't need it. + if (!(g->flags & GDISP_FLG_NEEDFLUSH)) + return; + + PRIV(g)->page++; + PRIV(g)->page %= 2; + // TODO: some smarter algorithm for this + // We should run only one physical page at a time + // This way we don't need to send so much data, and + // we could use slightly less memory + uint8_t* src = PRIV(g)->frame_buffer; + for (int y=0;ywrite_buffer[get_led_address(g, x, y)]=cie[*src]; + ++src; + } + } + write_ram(g, PRIV(g)->page, IS31_PWM_REG, IS31_PWM_SIZE); + gfxSleepMilliseconds(1); + write_register(g, IS31_FUNCTIONREG, IS31_REG_PICTDISP, PRIV(g)->page); + + g->flags &= ~GDISP_FLG_NEEDFLUSH; + } +#endif + +#if GDISP_HARDWARE_DRAWPIXEL + LLDSPEC void gdisp_lld_draw_pixel(GDisplay *g) { + coord_t x, y; + + switch(g->g.Orientation) { + default: + case GDISP_ROTATE_0: + x = g->p.x; + y = g->p.y; + break; + case GDISP_ROTATE_180: + x = GDISP_SCREEN_WIDTH-1 - g->p.x; + y = g->p.y; + break; + } + PRIV(g)->frame_buffer[y * GDISP_SCREEN_WIDTH + x] = gdispColor2Native(g->p.color); + g->flags |= GDISP_FLG_NEEDFLUSH; + } +#endif + +#if GDISP_HARDWARE_PIXELREAD + LLDSPEC color_t gdisp_lld_get_pixel_color(GDisplay *g) { + coord_t x, y; + + switch(g->g.Orientation) { + default: + case GDISP_ROTATE_0: + x = g->p.x; + y = g->p.y; + break; + case GDISP_ROTATE_180: + x = GDISP_SCREEN_WIDTH-1 - g->p.x; + y = g->p.y; + break; + } + return gdispNative2Color(PRIV(g)->frame_buffer[y * GDISP_SCREEN_WIDTH + x]); + } +#endif + +#if GDISP_NEED_CONTROL && GDISP_HARDWARE_CONTROL + LLDSPEC void gdisp_lld_control(GDisplay *g) { + switch(g->p.x) { + case GDISP_CONTROL_POWER: + if (g->g.Powermode == (powermode_t)g->p.ptr) + return; + switch((powermode_t)g->p.ptr) { + case powerOff: + case powerSleep: + case powerDeepSleep: + write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); + break; + case powerOn: + write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON); + break; + default: + return; + } + g->g.Powermode = (powermode_t)g->p.ptr; + return; + + case GDISP_CONTROL_ORIENTATION: + if (g->g.Orientation == (orientation_t)g->p.ptr) + return; + switch((orientation_t)g->p.ptr) { + /* Rotation is handled by the drawing routines */ + case GDISP_ROTATE_0: + case GDISP_ROTATE_180: + g->g.Height = GDISP_SCREEN_HEIGHT; + g->g.Width = GDISP_SCREEN_WIDTH; + break; + case GDISP_ROTATE_90: + case GDISP_ROTATE_270: + g->g.Height = GDISP_SCREEN_WIDTH; + g->g.Width = GDISP_SCREEN_HEIGHT; + break; + default: + return; + } + g->g.Orientation = (orientation_t)g->p.ptr; + return; + + case GDISP_CONTROL_CONTRAST: + return; + } + } +#endif // GDISP_NEED_CONTROL + +#endif // GFX_USE_GDISP diff --git a/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h new file mode 100644 index 000000000..bb28ad775 --- /dev/null +++ b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h @@ -0,0 +1,36 @@ +/* +Copyright 2016 Fred Sundvik + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef _GDISP_LLD_CONFIG_H +#define _GDISP_LLD_CONFIG_H + +#if GFX_USE_GDISP + +/*===========================================================================*/ +/* Driver hardware support. */ +/*===========================================================================*/ + +#define GDISP_HARDWARE_FLUSH TRUE // This controller requires flushing +#define GDISP_HARDWARE_DRAWPIXEL TRUE +#define GDISP_HARDWARE_PIXELREAD TRUE +#define GDISP_HARDWARE_CONTROL TRUE + +#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_GRAY256 + +#endif /* GFX_USE_GDISP */ + +#endif /* _GDISP_LLD_CONFIG_H */ diff --git a/keyboards/ergodox/infinity/drivers/gdisp/emulator_lcd/driver.mk b/keyboards/ergodox/infinity/drivers/gdisp/emulator_lcd/driver.mk new file mode 100644 index 000000000..16c3f80f5 --- /dev/null +++ b/keyboards/ergodox/infinity/drivers/gdisp/emulator_lcd/driver.mk @@ -0,0 +1,2 @@ +GFXINC += drivers/gdisp/emulator_lcd +GFXSRC += drivers/gdisp/emulator_lcd/emulator_lcd.c diff --git a/keyboards/ergodox/infinity/drivers/gdisp/emulator_lcd/emulator_lcd.c b/keyboards/ergodox/infinity/drivers/gdisp/emulator_lcd/emulator_lcd.c new file mode 100644 index 000000000..babfe2b36 --- /dev/null +++ b/keyboards/ergodox/infinity/drivers/gdisp/emulator_lcd/emulator_lcd.c @@ -0,0 +1,10 @@ +#define GDISP_DRIVER_VMT GDISPVMT_EMULATOR_LCD_ERGODOX +#define GDISP_HARDWARE_DRAWPIXEL TRUE +#define GDISP_HARDWARE_PIXELREAD TRUE +#define GDISP_HARDWARE_CONTROL TRUE +#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_MONO +#define GDISP_SCREEN_WIDTH 128 +#define GDISP_SCREEN_HEIGHT 32 +#define ROTATE_180_IS_FLIP + +#include "emulator/emulator_driver_impl.h" diff --git a/keyboards/ergodox/infinity/drivers/gdisp/emulator_led/driver.mk b/keyboards/ergodox/infinity/drivers/gdisp/emulator_led/driver.mk new file mode 100644 index 000000000..255434432 --- /dev/null +++ b/keyboards/ergodox/infinity/drivers/gdisp/emulator_led/driver.mk @@ -0,0 +1,2 @@ +GFXINC += drivers/gdisp/emulator_led +GFXSRC += drivers/gdisp/emulator_led/emulator_led.c diff --git a/keyboards/ergodox/infinity/drivers/gdisp/emulator_led/emulator_led.c b/keyboards/ergodox/infinity/drivers/gdisp/emulator_led/emulator_led.c new file mode 100644 index 000000000..b0ebcdc47 --- /dev/null +++ b/keyboards/ergodox/infinity/drivers/gdisp/emulator_led/emulator_led.c @@ -0,0 +1,10 @@ +#define GDISP_DRIVER_VMT GDISPVMT_EMULATOR_LED_ERGODOX +#define GDISP_HARDWARE_DRAWPIXEL TRUE +#define GDISP_HARDWARE_PIXELREAD TRUE +#define GDISP_HARDWARE_CONTROL TRUE +#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_MONO +#define GDISP_SCREEN_WIDTH 7 +#define GDISP_SCREEN_HEIGHT 7 +#define ROTATE_180_IS_FLIP + +#include "emulator/emulator_driver_impl.h" diff --git a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h new file mode 100644 index 000000000..290571ce5 --- /dev/null +++ b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h @@ -0,0 +1,127 @@ +/* + * This file is subject to the terms of the GFX License. If a copy of + * the license was not distributed with this file, you can obtain one at: + * + * http://ugfx.org/license.html + */ + +#ifndef _GDISP_LLD_BOARD_H +#define _GDISP_LLD_BOARD_H + +#include "print.h" + +#define ST7565_LCD_BIAS ST7565_LCD_BIAS_9 // actually 6 +#define ST7565_ADC ST7565_ADC_NORMAL +#define ST7565_COM_SCAN ST7565_COM_SCAN_DEC +#define ST7565_PAGE_ORDER 0,1,2,3 +/* + * Custom page order for several LCD boards, e.g. HEM12864-99 + * #define ST7565_PAGE_ORDER 4,5,6,7,0,1,2,3 + */ + +#define ST7565_GPIOPORT GPIOC +#define ST7565_PORT PORTC +#define ST7565_A0_PIN 7 +#define ST7565_RST_PIN 8 +#define ST7565_MOSI_PIN 6 +#define ST7565_SLCK_PIN 5 +#define ST7565_SS_PIN 4 + +#define palSetPadModeRaw(portname, bits) \ + ST7565_PORT->PCR[ST7565_##portname##_PIN] = bits + +#define palSetPadModeNamed(portname, portmode) \ + palSetPadMode(ST7565_GPIOPORT, ST7565_##portname##_PIN, portmode) + +#define ST7565_SPI_MODE PORTx_PCRn_DSE | PORTx_PCRn_MUX(2) +// DSPI Clock and Transfer Attributes +// Frame Size: 8 bits +// MSB First +// CLK Low by default +static const SPIConfig spi1config = { + NULL, + /* HW dependent part.*/ + ST7565_GPIOPORT, + ST7565_SS_PIN, + SPIx_CTARn_FMSZ(7) + | SPIx_CTARn_ASC(7) + | SPIx_CTARn_DT(7) + | SPIx_CTARn_CSSCK(7) + | SPIx_CTARn_PBR(0) + | SPIx_CTARn_BR(7) + //SPI_CR1_BR_0 +}; + +static bool_t st7565_is_data_mode = 1; + +static GFXINLINE void init_board(GDisplay *g) { + (void) g; + palSetPadModeNamed(A0, PAL_MODE_OUTPUT_PUSHPULL); + palSetPad(ST7565_GPIOPORT, ST7565_A0_PIN); + st7565_is_data_mode = 1; + palSetPadModeNamed(RST, PAL_MODE_OUTPUT_PUSHPULL); + palSetPad(ST7565_GPIOPORT, ST7565_RST_PIN); + palSetPadModeRaw(MOSI, ST7565_SPI_MODE); + palSetPadModeRaw(SLCK, ST7565_SPI_MODE); + palSetPadModeRaw(SS, ST7565_SPI_MODE); + + spiInit(); + spiStart(&SPID1, &spi1config); + spiSelect(&SPID1); +} + +static GFXINLINE void post_init_board(GDisplay *g) { + (void) g; +} + +static GFXINLINE void setpin_reset(GDisplay *g, bool_t state) { + (void) g; + if (state) { + palClearPad(ST7565_GPIOPORT, ST7565_RST_PIN); + } + else { + palSetPad(ST7565_GPIOPORT, ST7565_RST_PIN); + } +} + +static GFXINLINE void acquire_bus(GDisplay *g) { + (void) g; + // Only the LCD is using the SPI bus, so no need to acquire + // spiAcquireBus(&SPID1); +} + +static GFXINLINE void release_bus(GDisplay *g) { + (void) g; + // Only the LCD is using the SPI bus, so no need to release + //spiReleaseBus(&SPID1); +} + +static GFXINLINE void write_cmd(GDisplay *g, uint8_t cmd) { + (void) g; + if (st7565_is_data_mode) { + // The sleeps need to be at lest 10 vs 25 ns respectively + // So let's sleep two ticks, one tick might not be enough + // if we are at the end of the tick + chThdSleep(2); + palClearPad(ST7565_GPIOPORT, ST7565_A0_PIN); + chThdSleep(2); + st7565_is_data_mode = 0; + } + spiSend(&SPID1, 1, &cmd); +} + +static GFXINLINE void write_data(GDisplay *g, uint8_t* data, uint16_t length) { + (void) g; + if (!st7565_is_data_mode) { + // The sleeps need to be at lest 10 vs 25 ns respectively + // So let's sleep two ticks, one tick might not be enough + // if we are at the end of the tick + chThdSleep(2); + palSetPad(ST7565_GPIOPORT, ST7565_A0_PIN); + chThdSleep(2); + st7565_is_data_mode = 1; + } + spiSend(&SPID1, length, data); +} + +#endif /* _GDISP_LLD_BOARD_H */ diff --git a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/driver.mk b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/driver.mk new file mode 100644 index 000000000..889a1a031 --- /dev/null +++ b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/driver.mk @@ -0,0 +1,2 @@ +GFXINC += drivers/gdisp/st7565ergodox +GFXSRC += drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c diff --git a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c new file mode 100644 index 000000000..c33aea81a --- /dev/null +++ b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c @@ -0,0 +1,292 @@ +/* + * This file is subject to the terms of the GFX License. If a copy of + * the license was not distributed with this file, you can obtain one at: + * + * http://ugfx.org/license.html + */ + +#include "gfx.h" + +#if GFX_USE_GDISP + +#define GDISP_DRIVER_VMT GDISPVMT_ST7565_ERGODOX +#include "drivers/gdisp/st7565ergodox/gdisp_lld_config.h" +#include "src/gdisp/gdisp_driver.h" + +#include "board_ST7565.h" + +/*===========================================================================*/ +/* Driver local definitions. */ +/*===========================================================================*/ + +#ifndef GDISP_SCREEN_HEIGHT + #define GDISP_SCREEN_HEIGHT 32 +#endif +#ifndef GDISP_SCREEN_WIDTH + #define GDISP_SCREEN_WIDTH 128 +#endif +#ifndef GDISP_INITIAL_CONTRAST + #define GDISP_INITIAL_CONTRAST 0 +#endif +#ifndef GDISP_INITIAL_BACKLIGHT + #define GDISP_INITIAL_BACKLIGHT 100 +#endif + +#define GDISP_FLG_NEEDFLUSH (GDISP_FLG_DRIVER<<0) + +#include "drivers/gdisp/st7565ergodox/st7565.h" + +/*===========================================================================*/ +/* Driver config defaults for backward compatibility. */ +/*===========================================================================*/ +#ifndef ST7565_LCD_BIAS + #define ST7565_LCD_BIAS ST7565_LCD_BIAS_7 +#endif +#ifndef ST7565_ADC + #define ST7565_ADC ST7565_ADC_NORMAL +#endif +#ifndef ST7565_COM_SCAN + #define ST7565_COM_SCAN ST7565_COM_SCAN_INC +#endif +#ifndef ST7565_PAGE_ORDER + #define ST7565_PAGE_ORDER 0,1,2,3 +#endif + +/*===========================================================================*/ +/* Driver local functions. */ +/*===========================================================================*/ + +typedef struct{ + bool_t buffer2; + uint8_t ram[GDISP_SCREEN_HEIGHT * GDISP_SCREEN_WIDTH / 8]; +}PrivData; + +// Some common routines and macros +#define PRIV(g) ((PrivData*)g->priv) +#define RAM(g) (PRIV(g)->ram) +#define write_cmd2(g, cmd1, cmd2) { write_cmd(g, cmd1); write_cmd(g, cmd2); } +#define write_cmd3(g, cmd1, cmd2, cmd3) { write_cmd(g, cmd1); write_cmd(g, cmd2); write_cmd(g, cmd3); } + +// Some common routines and macros +#define delay(us) gfxSleepMicroseconds(us) +#define delay_ms(ms) gfxSleepMilliseconds(ms) + +#define xyaddr(x, y) ((x) + ((y)>>3)*GDISP_SCREEN_WIDTH) +#define xybit(y) (1<<((y)&7)) + +/*===========================================================================*/ +/* Driver exported functions. */ +/*===========================================================================*/ + +/* + * As this controller can't update on a pixel boundary we need to maintain the + * the entire display surface in memory so that we can do the necessary bit + * operations. Fortunately it is a small display in monochrome. + * 64 * 128 / 8 = 1024 bytes. + */ + +LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { + // The private area is the display surface. + g->priv = gfxAlloc(sizeof(PrivData)); + PRIV(g)->buffer2 = false; + + // Initialise the board interface + init_board(g); + + // Hardware reset + setpin_reset(g, TRUE); + gfxSleepMilliseconds(20); + setpin_reset(g, FALSE); + gfxSleepMilliseconds(20); + + acquire_bus(g); + write_cmd(g, ST7565_DISPLAY_OFF); + write_cmd(g, ST7565_LCD_BIAS); + write_cmd(g, ST7565_ADC); + write_cmd(g, ST7565_COM_SCAN); + + write_cmd(g, ST7565_START_LINE | 0); + + write_cmd(g, ST7565_RESISTOR_RATIO | 0x6); + + // turn on voltage converter (VC=1, VR=0, VF=0) + write_cmd(g, ST7565_POWER_CONTROL | 0x04); + delay_ms(50); + + // turn on voltage regulator (VC=1, VR=1, VF=0) + write_cmd(g, ST7565_POWER_CONTROL | 0x06); + delay_ms(50); + + // turn on voltage follower (VC=1, VR=1, VF=1) + write_cmd(g, ST7565_POWER_CONTROL | 0x07); + delay_ms(50); + + write_cmd(g, 0xE2); + write_cmd(g, ST7565_COM_SCAN); + write_cmd2(g, ST7565_CONTRAST, GDISP_INITIAL_CONTRAST*64/101); + //write_cmd2(g, ST7565_CONTRAST, 0); + write_cmd(g, ST7565_DISPLAY_ON); + write_cmd(g, ST7565_ALLON_NORMAL); + write_cmd(g, ST7565_INVERT_DISPLAY); + + write_cmd(g, ST7565_RMW); + + // Finish Init + post_init_board(g); + + // Release the bus + release_bus(g); + + /* Initialise the GDISP structure */ + g->g.Width = GDISP_SCREEN_WIDTH; + g->g.Height = GDISP_SCREEN_HEIGHT; + g->g.Orientation = GDISP_ROTATE_0; + g->g.Powermode = powerOn; + g->g.Backlight = GDISP_INITIAL_BACKLIGHT; + g->g.Contrast = GDISP_INITIAL_CONTRAST; + return TRUE; +} + +#if GDISP_HARDWARE_FLUSH + LLDSPEC void gdisp_lld_flush(GDisplay *g) { + unsigned p; + + // Don't flush if we don't need it. + if (!(g->flags & GDISP_FLG_NEEDFLUSH)) + return; + + acquire_bus(g); + unsigned dstOffset = (PRIV(g)->buffer2 ? 4 : 0); + for (p = 0; p < 4; p++) { + write_cmd(g, ST7565_PAGE | (p + dstOffset)); + write_cmd(g, ST7565_COLUMN_MSB | 0); + write_cmd(g, ST7565_COLUMN_LSB | 0); + write_cmd(g, ST7565_RMW); + write_data(g, RAM(g) + (p*GDISP_SCREEN_WIDTH), GDISP_SCREEN_WIDTH); + } + unsigned line = (PRIV(g)->buffer2 ? 32 : 0); + write_cmd(g, ST7565_START_LINE | line); + PRIV(g)->buffer2 = !PRIV(g)->buffer2; + release_bus(g); + + g->flags &= ~GDISP_FLG_NEEDFLUSH; + } +#endif + +#if GDISP_HARDWARE_DRAWPIXEL + LLDSPEC void gdisp_lld_draw_pixel(GDisplay *g) { + coord_t x, y; + + switch(g->g.Orientation) { + default: + case GDISP_ROTATE_0: + x = g->p.x; + y = g->p.y; + break; + case GDISP_ROTATE_90: + x = g->p.y; + y = GDISP_SCREEN_HEIGHT-1 - g->p.x; + break; + case GDISP_ROTATE_180: + x = GDISP_SCREEN_WIDTH-1 - g->p.x; + y = GDISP_SCREEN_HEIGHT-1 - g->p.y; + break; + case GDISP_ROTATE_270: + x = GDISP_SCREEN_HEIGHT-1 - g->p.y; + y = g->p.x; + break; + } + if (gdispColor2Native(g->p.color) != Black) + RAM(g)[xyaddr(x, y)] |= xybit(y); + else + RAM(g)[xyaddr(x, y)] &= ~xybit(y); + g->flags |= GDISP_FLG_NEEDFLUSH; + } +#endif + +#if GDISP_HARDWARE_PIXELREAD + LLDSPEC color_t gdisp_lld_get_pixel_color(GDisplay *g) { + coord_t x, y; + + switch(g->g.Orientation) { + default: + case GDISP_ROTATE_0: + x = g->p.x; + y = g->p.y; + break; + case GDISP_ROTATE_90: + x = g->p.y; + y = GDISP_SCREEN_HEIGHT-1 - g->p.x; + break; + case GDISP_ROTATE_180: + x = GDISP_SCREEN_WIDTH-1 - g->p.x; + y = GDISP_SCREEN_HEIGHT-1 - g->p.y; + break; + case GDISP_ROTATE_270: + x = GDISP_SCREEN_HEIGHT-1 - g->p.y; + y = g->p.x; + break; + } + return (RAM(g)[xyaddr(x, y)] & xybit(y)) ? White : Black; + } +#endif + +#if GDISP_NEED_CONTROL && GDISP_HARDWARE_CONTROL + LLDSPEC void gdisp_lld_control(GDisplay *g) { + switch(g->p.x) { + case GDISP_CONTROL_POWER: + if (g->g.Powermode == (powermode_t)g->p.ptr) + return; + switch((powermode_t)g->p.ptr) { + case powerOff: + case powerSleep: + case powerDeepSleep: + acquire_bus(g); + write_cmd(g, ST7565_DISPLAY_OFF); + release_bus(g); + break; + case powerOn: + acquire_bus(g); + write_cmd(g, ST7565_DISPLAY_ON); + release_bus(g); + break; + default: + return; + } + g->g.Powermode = (powermode_t)g->p.ptr; + return; + + case GDISP_CONTROL_ORIENTATION: + if (g->g.Orientation == (orientation_t)g->p.ptr) + return; + switch((orientation_t)g->p.ptr) { + /* Rotation is handled by the drawing routines */ + case GDISP_ROTATE_0: + case GDISP_ROTATE_180: + g->g.Height = GDISP_SCREEN_HEIGHT; + g->g.Width = GDISP_SCREEN_WIDTH; + break; + case GDISP_ROTATE_90: + case GDISP_ROTATE_270: + g->g.Height = GDISP_SCREEN_WIDTH; + g->g.Width = GDISP_SCREEN_HEIGHT; + break; + default: + return; + } + g->g.Orientation = (orientation_t)g->p.ptr; + return; + + case GDISP_CONTROL_CONTRAST: + if ((unsigned)g->p.ptr > 100) + g->p.ptr = (void *)100; + acquire_bus(g); + write_cmd2(g, ST7565_CONTRAST, ((((unsigned)g->p.ptr)<<6)/101) & 0x3F); + release_bus(g); + g->g.Contrast = (unsigned)g->p.ptr; + return; + } + } +#endif // GDISP_NEED_CONTROL + +#endif // GFX_USE_GDISP diff --git a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_config.h b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_config.h new file mode 100644 index 000000000..48587b9e1 --- /dev/null +++ b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_config.h @@ -0,0 +1,26 @@ +/* + * This file is subject to the terms of the GFX License. If a copy of + * the license was not distributed with this file, you can obtain one at: + * + * http://ugfx.org/license.html + */ + +#ifndef _GDISP_LLD_CONFIG_H +#define _GDISP_LLD_CONFIG_H + +#if GFX_USE_GDISP + +/*===========================================================================*/ +/* Driver hardware support. */ +/*===========================================================================*/ + +#define GDISP_HARDWARE_FLUSH TRUE // This controller requires flushing +#define GDISP_HARDWARE_DRAWPIXEL TRUE +#define GDISP_HARDWARE_PIXELREAD TRUE +#define GDISP_HARDWARE_CONTROL TRUE + +#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_MONO + +#endif /* GFX_USE_GDISP */ + +#endif /* _GDISP_LLD_CONFIG_H */ diff --git a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/st7565.h b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/st7565.h new file mode 100644 index 000000000..48636b33d --- /dev/null +++ b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/st7565.h @@ -0,0 +1,37 @@ +/* + * This file is subject to the terms of the GFX License. If a copy of + * the license was not distributed with this file, you can obtain one at: + * + * http://ugfx.org/license.html + */ + +#ifndef _ST7565_H +#define _ST7565_H + +#define ST7565_CONTRAST 0x81 +#define ST7565_ALLON_NORMAL 0xA4 +#define ST7565_ALLON 0xA5 +#define ST7565_POSITIVE_DISPLAY 0xA6 +#define ST7565_INVERT_DISPLAY 0xA7 +#define ST7565_DISPLAY_OFF 0xAE +#define ST7565_DISPLAY_ON 0xAF + +#define ST7565_LCD_BIAS_7 0xA3 +#define ST7565_LCD_BIAS_9 0xA2 + +#define ST7565_ADC_NORMAL 0xA0 +#define ST7565_ADC_REVERSE 0xA1 + +#define ST7565_COM_SCAN_INC 0xC0 +#define ST7565_COM_SCAN_DEC 0xC8 + +#define ST7565_START_LINE 0x40 +#define ST7565_PAGE 0xB0 +#define ST7565_COLUMN_MSB 0x10 +#define ST7565_COLUMN_LSB 0x00 +#define ST7565_RMW 0xE0 + +#define ST7565_RESISTOR_RATIO 0x20 +#define ST7565_POWER_CONTROL 0x28 + +#endif /* _ST7565_H */ diff --git a/keyboards/ergodox/infinity/gfxconf.h b/keyboards/ergodox/infinity/gfxconf.h new file mode 100644 index 000000000..8caa577b7 --- /dev/null +++ b/keyboards/ergodox/infinity/gfxconf.h @@ -0,0 +1,331 @@ +/** + * This file has a different license to the rest of the uGFX system. + * You can copy, modify and distribute this file as you see fit. + * You do not need to publish your source modifications to this file. + * The only thing you are not permitted to do is to relicense it + * under a different license. + */ + +/** + * Copy this file into your project directory and rename it as gfxconf.h + * Edit your copy to turn on the uGFX features you want to use. + * The values below are the defaults. + * + * Only remove the comments from lines where you want to change the + * default value. This allows definitions to be included from + * driver makefiles when required and provides the best future + * compatibility for your project. + * + * Please use spaces instead of tabs in this file. + */ + +#ifndef _GFXCONF_H +#define _GFXCONF_H + + +/////////////////////////////////////////////////////////////////////////// +// GOS - One of these must be defined, preferably in your Makefile // +/////////////////////////////////////////////////////////////////////////// +//#define GFX_USE_OS_CHIBIOS TRUE +//#define GFX_USE_OS_FREERTOS FALSE +// #define GFX_FREERTOS_USE_TRACE FALSE +//#define GFX_USE_OS_WIN32 FALSE +//#define GFX_USE_OS_LINUX FALSE +//#define GFX_USE_OS_OSX FALSE +//#define GFX_USE_OS_ECOS FALSE +//#define GFX_USE_OS_RAWRTOS FALSE +//#define GFX_USE_OS_ARDUINO FALSE +//#define GFX_USE_OS_KEIL FALSE +//#define GFX_USE_OS_CMSIS FALSE +//#define GFX_USE_OS_RAW32 FALSE +// #define INTERRUPTS_OFF() optional_code +// #define INTERRUPTS_ON() optional_code +// These are not defined by default for some reason +#define GOS_NEED_X_THREADS FALSE +#define GOS_NEED_X_HEAP FALSE + +// Options that (should where relevant) apply to all operating systems + #define GFX_NO_INLINE FALSE +// #define GFX_COMPILER GFX_COMPILER_UNKNOWN +// #define GFX_CPU GFX_CPU_UNKNOWN +// #define GFX_OS_HEAP_SIZE 0 +// #define GFX_OS_NO_INIT FALSE +// #define GFX_OS_INIT_NO_WARNING FALSE +// #define GFX_OS_PRE_INIT_FUNCTION myHardwareInitRoutine +// #define GFX_OS_EXTRA_INIT_FUNCTION myOSInitRoutine +// #define GFX_OS_EXTRA_DEINIT_FUNCTION myOSDeInitRoutine + + +/////////////////////////////////////////////////////////////////////////// +// GDISP // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GDISP TRUE + +//#define GDISP_NEED_AUTOFLUSH FALSE +//#define GDISP_NEED_TIMERFLUSH FALSE +//#define GDISP_NEED_VALIDATION TRUE +//#define GDISP_NEED_CLIP TRUE +#define GDISP_NEED_CIRCLE TRUE +#define GDISP_NEED_ELLIPSE TRUE +#define GDISP_NEED_ARC TRUE +#define GDISP_NEED_ARCSECTORS TRUE +#define GDISP_NEED_CONVEX_POLYGON TRUE +//#define GDISP_NEED_SCROLL FALSE +#define GDISP_NEED_PIXELREAD TRUE +#define GDISP_NEED_CONTROL TRUE +//#define GDISP_NEED_QUERY FALSE +//#define GDISP_NEED_MULTITHREAD FALSE +//#define GDISP_NEED_STREAMING FALSE +#define GDISP_NEED_TEXT TRUE +// #define GDISP_NEED_TEXT_WORDWRAP FALSE +// #define GDISP_NEED_ANTIALIAS FALSE +// #define GDISP_NEED_UTF8 FALSE + #define GDISP_NEED_TEXT_KERNING TRUE +// #define GDISP_INCLUDE_FONT_UI1 FALSE +// #define GDISP_INCLUDE_FONT_UI2 FALSE // The smallest preferred font. +// #define GDISP_INCLUDE_FONT_LARGENUMBERS FALSE +// #define GDISP_INCLUDE_FONT_DEJAVUSANS10 FALSE +// #define GDISP_INCLUDE_FONT_DEJAVUSANS12 FALSE +// #define GDISP_INCLUDE_FONT_DEJAVUSANS16 FALSE +// #define GDISP_INCLUDE_FONT_DEJAVUSANS20 FALSE +// #define GDISP_INCLUDE_FONT_DEJAVUSANS24 FALSE +// #define GDISP_INCLUDE_FONT_DEJAVUSANS32 FALSE + #define GDISP_INCLUDE_FONT_DEJAVUSANSBOLD12 TRUE +// #define GDISP_INCLUDE_FONT_FIXED_10X20 FALSE +// #define GDISP_INCLUDE_FONT_FIXED_7X14 FALSE + #define GDISP_INCLUDE_FONT_FIXED_5X8 TRUE +// #define GDISP_INCLUDE_FONT_DEJAVUSANS12_AA FALSE +// #define GDISP_INCLUDE_FONT_DEJAVUSANS16_AA FALSE +// #define GDISP_INCLUDE_FONT_DEJAVUSANS20_AA FALSE +// #define GDISP_INCLUDE_FONT_DEJAVUSANS24_AA FALSE +// #define GDISP_INCLUDE_FONT_DEJAVUSANS32_AA FALSE +// #define GDISP_INCLUDE_FONT_DEJAVUSANSBOLD12_AA FALSE +// #define GDISP_INCLUDE_USER_FONTS FALSE + +//#define GDISP_NEED_IMAGE FALSE +// #define GDISP_NEED_IMAGE_NATIVE FALSE +// #define GDISP_NEED_IMAGE_GIF FALSE +// #define GDISP_NEED_IMAGE_BMP FALSE +// #define GDISP_NEED_IMAGE_BMP_1 FALSE +// #define GDISP_NEED_IMAGE_BMP_4 FALSE +// #define GDISP_NEED_IMAGE_BMP_4_RLE FALSE +// #define GDISP_NEED_IMAGE_BMP_8 FALSE +// #define GDISP_NEED_IMAGE_BMP_8_RLE FALSE +// #define GDISP_NEED_IMAGE_BMP_16 FALSE +// #define GDISP_NEED_IMAGE_BMP_24 FALSE +// #define GDISP_NEED_IMAGE_BMP_32 FALSE +// #define GDISP_NEED_IMAGE_JPG FALSE +// #define GDISP_NEED_IMAGE_PNG FALSE +// #define GDISP_NEED_IMAGE_ACCOUNTING FALSE +#ifdef EMULATOR +#define GDISP_NEED_PIXMAP TRUE +#endif +// #define GDISP_NEED_PIXMAP_IMAGE FALSE + +//#define GDISP_DEFAULT_ORIENTATION GDISP_ROTATE_LANDSCAPE // If not defined the native hardware orientation is used. +//#define GDISP_LINEBUF_SIZE 128 +//#define GDISP_STARTUP_COLOR Black +#define GDISP_NEED_STARTUP_LOGO FALSE + +//#define GDISP_TOTAL_DISPLAYS 2 + +#ifndef EMULATOR +#define GDISP_DRIVER_LIST GDISPVMT_ST7565_ERGODOX, GDISPVMT_IS31FL3731C_ERGODOX +#else +#define GDISP_DRIVER_LIST GDISPVMT_EMULATOR_LCD_ERGODOX, GDISPVMT_EMULATOR_LED_ERGODOX +#endif + + #ifdef GDISP_DRIVER_LIST + // For code and speed optimization define as TRUE or FALSE if all controllers have the same capability + #define GDISP_HARDWARE_STREAM_WRITE FALSE + #define GDISP_HARDWARE_STREAM_READ FALSE + #define GDISP_HARDWARE_STREAM_POS FALSE + #define GDISP_HARDWARE_DRAWPIXEL TRUE + #define GDISP_HARDWARE_CLEARS FALSE + #define GDISP_HARDWARE_FILLS FALSE + #define GDISP_HARDWARE_BITFILLS FALSE + #define GDISP_HARDWARE_SCROLL FALSE + #define GDISP_HARDWARE_PIXELREAD TRUE + #define GDISP_HARDWARE_CONTROL TRUE + #define GDISP_HARDWARE_QUERY FALSE + #define GDISP_HARDWARE_CLIP FALSE + + #define GDISP_PIXELFORMAT GDISP_PIXELFORMAT_RGB888 + #endif + +// The custom format is not defined for some reason, so define it as error +// so we don't get compiler warnings +#define GDISP_PIXELFORMAT_CUSTOM GDISP_PIXELFORMAT_ERROR + +#define GDISP_USE_GFXNET FALSE +// #define GDISP_GFXNET_PORT 13001 +// #define GDISP_GFXNET_CUSTOM_LWIP_STARTUP FALSE +// #define GDISP_DONT_WAIT_FOR_NET_DISPLAY FALSE +// #define GDISP_GFXNET_UNSAFE_SOCKETS FALSE + + +/////////////////////////////////////////////////////////////////////////// +// GWIN // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GWIN FALSE + +//#define GWIN_NEED_WINDOWMANAGER FALSE +// #define GWIN_REDRAW_IMMEDIATE FALSE +// #define GWIN_REDRAW_SINGLEOP FALSE +// #define GWIN_NEED_FLASHING FALSE +// #define GWIN_FLASHING_PERIOD 250 + +//#define GWIN_NEED_CONSOLE FALSE +// #define GWIN_CONSOLE_USE_HISTORY FALSE +// #define GWIN_CONSOLE_HISTORY_AVERAGING FALSE +// #define GWIN_CONSOLE_HISTORY_ATCREATE FALSE +// #define GWIN_CONSOLE_ESCSEQ FALSE +// #define GWIN_CONSOLE_USE_BASESTREAM FALSE +// #define GWIN_CONSOLE_USE_FLOAT FALSE +//#define GWIN_NEED_GRAPH FALSE +//#define GWIN_NEED_GL3D FALSE + +//#define GWIN_NEED_WIDGET FALSE +//#define GWIN_FOCUS_HIGHLIGHT_WIDTH 1 +// #define GWIN_NEED_LABEL FALSE +// #define GWIN_LABEL_ATTRIBUTE FALSE +// #define GWIN_NEED_BUTTON FALSE +// #define GWIN_BUTTON_LAZY_RELEASE FALSE +// #define GWIN_NEED_SLIDER FALSE +// #define GWIN_SLIDER_NOSNAP FALSE +// #define GWIN_SLIDER_DEAD_BAND 5 +// #define GWIN_SLIDER_TOGGLE_INC 20 +// #define GWIN_NEED_CHECKBOX FALSE +// #define GWIN_NEED_IMAGE FALSE +// #define GWIN_NEED_IMAGE_ANIMATION FALSE +// #define GWIN_NEED_RADIO FALSE +// #define GWIN_NEED_LIST FALSE +// #define GWIN_NEED_LIST_IMAGES FALSE +// #define GWIN_NEED_PROGRESSBAR FALSE +// #define GWIN_PROGRESSBAR_AUTO FALSE +// #define GWIN_NEED_KEYBOARD FALSE +// #define GWIN_KEYBOARD_DEFAULT_LAYOUT VirtualKeyboard_English1 +// #define GWIN_NEED_KEYBOARD_ENGLISH1 TRUE +// #define GWIN_NEED_TEXTEDIT FALSE +// #define GWIN_FLAT_STYLING FALSE +// #define GWIN_WIDGET_TAGS FALSE + +//#define GWIN_NEED_CONTAINERS FALSE +// #define GWIN_NEED_CONTAINER FALSE +// #define GWIN_NEED_FRAME FALSE +// #define GWIN_NEED_TABSET FALSE +// #define GWIN_TABSET_TABHEIGHT 18 + + +/////////////////////////////////////////////////////////////////////////// +// GEVENT // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GEVENT TRUE + +//#define GEVENT_ASSERT_NO_RESOURCE FALSE +//#define GEVENT_MAXIMUM_SIZE 32 +//#define GEVENT_MAX_SOURCE_LISTENERS 32 + + +/////////////////////////////////////////////////////////////////////////// +// GTIMER // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GTIMER FALSE + +//#define GTIMER_THREAD_PRIORITY HIGH_PRIORITY +//#define GTIMER_THREAD_WORKAREA_SIZE 2048 + + +/////////////////////////////////////////////////////////////////////////// +// GQUEUE // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GQUEUE FALSE + +//#define GQUEUE_NEED_ASYNC FALSE +//#define GQUEUE_NEED_GSYNC FALSE +//#define GQUEUE_NEED_FSYNC FALSE +//#define GQUEUE_NEED_BUFFERS FALSE + +/////////////////////////////////////////////////////////////////////////// +// GINPUT // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GINPUT FALSE + +//#define GINPUT_NEED_MOUSE FALSE +// #define GINPUT_TOUCH_STARTRAW FALSE +// #define GINPUT_TOUCH_NOTOUCH FALSE +// #define GINPUT_TOUCH_NOCALIBRATE FALSE +// #define GINPUT_TOUCH_NOCALIBRATE_GUI FALSE +// #define GINPUT_MOUSE_POLL_PERIOD 25 +// #define GINPUT_MOUSE_CLICK_TIME 300 +// #define GINPUT_TOUCH_CXTCLICK_TIME 700 +// #define GINPUT_TOUCH_USER_CALIBRATION_LOAD FALSE +// #define GINPUT_TOUCH_USER_CALIBRATION_SAVE FALSE +// #define GMOUSE_DRIVER_LIST GMOUSEVMT_Win32, GMOUSEVMT_Win32 +//#define GINPUT_NEED_KEYBOARD FALSE +// #define GINPUT_KEYBOARD_POLL_PERIOD 200 +// #define GKEYBOARD_DRIVER_LIST GKEYBOARDVMT_Win32, GKEYBOARDVMT_Win32 +// #define GKEYBOARD_LAYOUT_OFF FALSE +// #define GKEYBOARD_LAYOUT_SCANCODE2_US FALSE +//#define GINPUT_NEED_TOGGLE FALSE +//#define GINPUT_NEED_DIAL FALSE + + +/////////////////////////////////////////////////////////////////////////// +// GFILE // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GFILE FALSE + +//#define GFILE_NEED_PRINTG FALSE +//#define GFILE_NEED_SCANG FALSE +//#define GFILE_NEED_STRINGS FALSE +//#define GFILE_NEED_FILELISTS FALSE +//#define GFILE_NEED_STDIO FALSE +//#define GFILE_NEED_NOAUTOMOUNT FALSE +//#define GFILE_NEED_NOAUTOSYNC FALSE + +//#define GFILE_NEED_MEMFS FALSE +//#define GFILE_NEED_ROMFS FALSE +//#define GFILE_NEED_RAMFS FALSE +//#define GFILE_NEED_FATFS FALSE +//#define GFILE_NEED_NATIVEFS FALSE +//#define GFILE_NEED_CHBIOSFS FALSE + +//#define GFILE_ALLOW_FLOATS FALSE +//#define GFILE_ALLOW_DEVICESPECIFIC FALSE +//#define GFILE_MAX_GFILES 3 + +/////////////////////////////////////////////////////////////////////////// +// GADC // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GADC FALSE + +//#define GADC_MAX_LOWSPEED_DEVICES 4 + + +/////////////////////////////////////////////////////////////////////////// +// GAUDIO // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GAUDIO FALSE +// There seems to be a bug in the ugfx code, the wrong define is used +// So define it in order to avoid warnings +#define GFX_USE_GAUDIN GFX_USE_GAUDIO +// #define GAUDIO_NEED_PLAY FALSE +// #define GAUDIO_NEED_RECORD FALSE + + +/////////////////////////////////////////////////////////////////////////// +// GMISC // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GMISC TRUE + +//#define GMISC_NEED_ARRAYOPS FALSE +//#define GMISC_NEED_FASTTRIG FALSE +//#define GMISC_NEED_FIXEDTRIG FALSE +//#define GMISC_NEED_INVSQRT FALSE +// #define GMISC_INVSQRT_MIXED_ENDIAN FALSE +// #define GMISC_INVSQRT_REAL_SLOW FALSE +#define GMISC_NEED_MATRIXFLOAT2D TRUE +#define GMISC_NEED_MATRIXFIXED2D FALSE + +#endif /* _GFXCONF_H */ diff --git a/keyboards/ergodox/infinity/halconf.h b/keyboards/ergodox/infinity/halconf.h new file mode 100644 index 000000000..55dd5e88d --- /dev/null +++ b/keyboards/ergodox/infinity/halconf.h @@ -0,0 +1,353 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/** + * @file templates/halconf.h + * @brief HAL configuration header. + * @details HAL configuration file, this file allows to enable or disable the + * various device drivers from your application. You may also use + * this file in order to override the device drivers default settings. + * + * @addtogroup HAL_CONF + * @{ + */ + +#ifndef _HALCONF_H_ +#define _HALCONF_H_ + +#include "mcuconf.h" + +/** + * @brief Enables the PAL subsystem. + */ +#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) +#define HAL_USE_PAL TRUE +#endif + +/** + * @brief Enables the ADC subsystem. + */ +#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) +#define HAL_USE_ADC FALSE +#endif + +/** + * @brief Enables the CAN subsystem. + */ +#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) +#define HAL_USE_CAN FALSE +#endif + +/** + * @brief Enables the DAC subsystem. + */ +#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) +#define HAL_USE_DAC FALSE +#endif + +/** + * @brief Enables the EXT subsystem. + */ +#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__) +#define HAL_USE_EXT FALSE +#endif + +/** + * @brief Enables the GPT subsystem. + */ +#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) +#define HAL_USE_GPT FALSE +#endif + +/** + * @brief Enables the I2C subsystem. + */ +#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) +#define HAL_USE_I2C TRUE +#endif + +/** + * @brief Enables the I2S subsystem. + */ +#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) +#define HAL_USE_I2S FALSE +#endif + +/** + * @brief Enables the ICU subsystem. + */ +#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) +#define HAL_USE_ICU FALSE +#endif + +/** + * @brief Enables the MAC subsystem. + */ +#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) +#define HAL_USE_MAC FALSE +#endif + +/** + * @brief Enables the MMC_SPI subsystem. + */ +#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) +#define HAL_USE_MMC_SPI FALSE +#endif + +/** + * @brief Enables the PWM subsystem. + */ +#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) +#define HAL_USE_PWM FALSE +#endif + +/** + * @brief Enables the RTC subsystem. + */ +#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) +#define HAL_USE_RTC FALSE +#endif + +/** + * @brief Enables the SDC subsystem. + */ +#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) +#define HAL_USE_SDC FALSE +#endif + +/** + * @brief Enables the SERIAL subsystem. + */ +#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL TRUE +#endif + +/** + * @brief Enables the SERIAL over USB subsystem. + */ +#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL_USB TRUE +#endif + +/** + * @brief Enables the SPI subsystem. + */ +#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) +#define HAL_USE_SPI TRUE +#endif + +/** + * @brief Enables the UART subsystem. + */ +#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) +#define HAL_USE_UART FALSE +#endif + +/** + * @brief Enables the USB subsystem. + */ +#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) +#define HAL_USE_USB TRUE +#endif + +/** + * @brief Enables the WDG subsystem. + */ +#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) +#define HAL_USE_WDG FALSE +#endif + +/*===========================================================================*/ +/* ADC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) +#define ADC_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define ADC_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* CAN driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Sleep mode related APIs inclusion switch. + */ +#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) +#define CAN_USE_SLEEP_MODE TRUE +#endif + +/*===========================================================================*/ +/* I2C driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables the mutual exclusion APIs on the I2C bus. + */ +#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define I2C_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* MAC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) +#define MAC_USE_ZERO_COPY FALSE +#endif + +/** + * @brief Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) +#define MAC_USE_EVENTS TRUE +#endif + +/*===========================================================================*/ +/* MMC_SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + * This option is recommended also if the SPI driver does not + * use a DMA channel and heavily loads the CPU. + */ +#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) +#define MMC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SDC driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Number of initialization attempts before rejecting the card. + * @note Attempts are performed at 10mS intervals. + */ +#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) +#define SDC_INIT_RETRY 100 +#endif + +/** + * @brief Include support for MMC cards. + * @note MMC support is not yet implemented so this option must be kept + * at @p FALSE. + */ +#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) +#define SDC_MMC_SUPPORT FALSE +#endif + +/** + * @brief Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + * routines releasing some extra CPU time for the threads with + * lower priority, this may slow down the driver a bit however. + */ +#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) +#define SDC_NICE_WAITING TRUE +#endif + +/*===========================================================================*/ +/* SERIAL driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Default bit rate. + * @details Configuration parameter, this is the baud rate selected for the + * default configuration. + */ +#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) +#define SERIAL_DEFAULT_BITRATE 38400 +#endif + +/** + * @brief Serial buffers size. + * @details Configuration parameter, you can change the depth of the queue + * buffers depending on the requirements of your application. + * @note The default is 64 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_BUFFERS_SIZE 128 +#endif + +/*===========================================================================*/ +/* SERIAL_USB driver related setting. */ +/*===========================================================================*/ + +/** + * @brief Serial over USB buffers size. + * @details Configuration parameter, the buffer size must be a multiple of + * the USB data endpoint maximum packet size. + * @note The default is 64 bytes for both the transmission and receive + * buffers. + */ +#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_USB_BUFFERS_SIZE 256 +#endif + +/*===========================================================================*/ +/* SPI driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) +#define SPI_USE_WAIT TRUE +#endif + +/** + * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define SPI_USE_MUTUAL_EXCLUSION TRUE +#endif + +/*===========================================================================*/ +/* USB driver related settings. */ +/*===========================================================================*/ + +/** + * @brief Enables synchronous APIs. + * @note Disabling this option saves both code and data space. + */ +#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) +#define USB_USE_WAIT TRUE +#endif + +#endif /* _HALCONF_H_ */ + +/** @} */ diff --git a/keyboards/ergodox/infinity/infinity.c b/keyboards/ergodox/infinity/infinity.c new file mode 100644 index 000000000..87ed40fab --- /dev/null +++ b/keyboards/ergodox/infinity/infinity.c @@ -0,0 +1,76 @@ +#include "infinity_ergodox.h" +#include "ch.h" +#include "hal.h" +#include "serial_link/system/serial_link.h" +#include "lcd_backlight.h" + +void init_serial_link_hal(void) { + PORTA->PCR[1] = PORTx_PCRn_PE | PORTx_PCRn_PS | PORTx_PCRn_PFE | PORTx_PCRn_MUX(2); + PORTA->PCR[2] = PORTx_PCRn_DSE | PORTx_PCRn_SRE | PORTx_PCRn_MUX(2); + PORTE->PCR[0] = PORTx_PCRn_PE | PORTx_PCRn_PS | PORTx_PCRn_PFE | PORTx_PCRn_MUX(3); + PORTE->PCR[1] = PORTx_PCRn_DSE | PORTx_PCRn_SRE | PORTx_PCRn_MUX(3); +} + +#define RED_PIN 1 +#define GREEN_PIN 2 +#define BLUE_PIN 3 +#define CHANNEL_RED FTM0->CHANNEL[0] +#define CHANNEL_GREEN FTM0->CHANNEL[1] +#define CHANNEL_BLUE FTM0->CHANNEL[2] + +#define RGB_PORT PORTC +#define RGB_PORT_GPIO GPIOC + +// Base FTM clock selection (72 MHz system clock) +// @ 0xFFFF period, 72 MHz / (0xFFFF * 2) = Actual period +// Higher pre-scalar will use the most power (also look the best) +// Pre-scalar calculations +// 0 - 72 MHz -> 549 Hz +// 1 - 36 MHz -> 275 Hz +// 2 - 18 MHz -> 137 Hz +// 3 - 9 MHz -> 69 Hz (Slightly visible flicker) +// 4 - 4 500 kHz -> 34 Hz (Visible flickering) +// 5 - 2 250 kHz -> 17 Hz +// 6 - 1 125 kHz -> 9 Hz +// 7 - 562 500 Hz -> 4 Hz +// Using a higher pre-scalar without flicker is possible but FTM0_MOD will need to be reduced +// Which will reduce the brightness range +#define PRESCALAR_DEFINE 0 + +void lcd_backlight_hal_init(void) { + // Setup Backlight + SIM->SCGC6 |= SIM_SCGC6_FTM0; + FTM0->CNT = 0; // Reset counter + + // PWM Period + // 16-bit maximum + FTM0->MOD = 0xFFFF; + + // Set FTM to PWM output - Edge Aligned, Low-true pulses +#define CNSC_MODE FTM_SC_CPWMS | FTM_SC_PS(4) | FTM_SC_CLKS(0) + CHANNEL_RED.CnSC = CNSC_MODE; + CHANNEL_GREEN.CnSC = CNSC_MODE; + CHANNEL_BLUE.CnSC = CNSC_MODE; + + // System clock, /w prescalar setting + FTM0->SC = FTM_SC_CLKS(1) | FTM_SC_PS(PRESCALAR_DEFINE); + + CHANNEL_RED.CnV = 0; + CHANNEL_GREEN.CnV = 0; + CHANNEL_BLUE.CnV = 0; + + RGB_PORT_GPIO->PDDR |= (1 << RED_PIN); + RGB_PORT_GPIO->PDDR |= (1 << GREEN_PIN); + RGB_PORT_GPIO->PDDR |= (1 << BLUE_PIN); + +#define RGB_MODE PORTx_PCRn_SRE | PORTx_PCRn_DSE | PORTx_PCRn_MUX(4) + RGB_PORT->PCR[RED_PIN] = RGB_MODE; + RGB_PORT->PCR[GREEN_PIN] = RGB_MODE; + RGB_PORT->PCR[BLUE_PIN] = RGB_MODE; +} + +void lcd_backlight_hal_color(uint16_t r, uint16_t g, uint16_t b) { + CHANNEL_RED.CnV = r; + CHANNEL_GREEN.CnV = g; + CHANNEL_BLUE.CnV = b; +} diff --git a/keyboards/ergodox/infinity/infinity.h b/keyboards/ergodox/infinity/infinity.h new file mode 100644 index 000000000..de7267594 --- /dev/null +++ b/keyboards/ergodox/infinity/infinity.h @@ -0,0 +1,44 @@ +#ifndef KEYBOARDS_INFINITY_ERGODOX_INFINITY_ERGODOX_H_ +#define KEYBOARDS_INFINITY_ERGODOX_INFINITY_ERGODOX_H_ + +#include "quantum.h" + +#define KEYMAP( \ + A80, A70, A60, A50, A40, A30, A20, \ + A81, A71, A61, A51, A41, A31, A21, \ + A82, A72, A62, A52, A42, A32, \ + A83, A73, A63, A53, A43, A33, A23, \ + A84, A74, A64, A54, A44, \ + A13, A03, \ + A04, \ + A34, A24, A14, \ + B20, B30, B40, B50, B60, B70, B80, \ + B21, B31, B41, B51, B61, B71, B81, \ + B32, B42, B52, B62, B72, B82, \ + B23, B33, B43, B53, B63, B73, B83, \ + B44, B54, B64, B74, B84, \ + B03, B13, \ + B04, \ + B14, B24, B34 \ +) { \ + { KC_NO, KC_NO, KC_NO, KC_##A03, KC_##A04 }, \ + { KC_NO, KC_NO, KC_NO, KC_##A13, KC_##A14 }, \ + { KC_##A20, KC_##A21, KC_NO, KC_##A23, KC_##A24 }, \ + { KC_##A30, KC_##A31, KC_##A32, KC_##A33, KC_##A34 }, \ + { KC_##A40, KC_##A41, KC_##A42, KC_##A43, KC_##A44 }, \ + { KC_##A50, KC_##A51, KC_##A52, KC_##A53, KC_##A54 }, \ + { KC_##A60, KC_##A61, KC_##A62, KC_##A63, KC_##A64 }, \ + { KC_##A70, KC_##A71, KC_##A72, KC_##A73, KC_##A74 }, \ + { KC_##A80, KC_##A81, KC_##A82, KC_##A83, KC_##A84 }, \ + { KC_NO, KC_NO, KC_NO, KC_##B03, KC_##B04 }, \ + { KC_NO, KC_NO, KC_NO, KC_##B13, KC_##B14 }, \ + { KC_##B20, KC_##B21, KC_NO, KC_##B23, KC_##B24 }, \ + { KC_##B30, KC_##B31, KC_##B32, KC_##B33, KC_##B34 }, \ + { KC_##B40, KC_##B41, KC_##B42, KC_##B43, KC_##B44 }, \ + { KC_##B50, KC_##B51, KC_##B52, KC_##B53, KC_##B54 }, \ + { KC_##B60, KC_##B61, KC_##B62, KC_##B63, KC_##B64 }, \ + { KC_##B70, KC_##B71, KC_##B72, KC_##B73, KC_##B74 }, \ + { KC_##B80, KC_##B81, KC_##B82, KC_##B83, KC_##B84 } \ +} + +#endif /* KEYBOARDS_INFINITY_ERGODOX_INFINITY_ERGODOX_H_ */ diff --git a/keyboards/ergodox/infinity/keymaps/default/keymap.c b/keyboards/ergodox/infinity/keymaps/default/keymap.c new file mode 100644 index 000000000..f1e6b1c8a --- /dev/null +++ b/keyboards/ergodox/infinity/keymaps/default/keymap.c @@ -0,0 +1,114 @@ +/* +Copyright 2016 Fred Sundvik +Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "infinity_ergodox.h" + +// Workaround for old keymap format +#define KC_RESET RESET + +const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + KEYMAP( // layer 0 : default + // left hand + EQL, 1, 2, 3, 4, 5, ESC, + BSLS,Q, W, E, R, T, FN1, + TAB, A, S, D, F, G, + LSFT,Z, X, C, V, B, FN0, + LGUI,GRV, BSLS,LEFT,RGHT, + LCTL,LALT, + HOME, + BSPC,DEL, END, + // right hand + FN2, 6, 7, 8, 9, 0, MINS, + LBRC,Y, U, I, O, P, RBRC, + H, J, K, L, SCLN,QUOT, + FN0, N, M, COMM,DOT, SLSH,RSFT, + LEFT,DOWN,UP, RGHT,RGUI, + RALT,RCTL, + PGUP, + PGDN,ENT, SPC + ), + + KEYMAP( // layer 1 : function and symbol keys + // left hand + TRNS,F1, F2, F3, F4, F5, F11, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,FN3, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS, + TRNS, + TRNS,TRNS,TRNS, + // right hand + F12, F6, F7, F8, F9, F10, TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS, + TRNS, + TRNS,TRNS,TRNS + ), + + KEYMAP( // layer 2 : keyboard functions + // left hand + RESET,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, FN3, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS, + TRNS, + TRNS,TRNS,TRNS, + // right hand + TRNS, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS, + TRNS, + TRNS,TRNS,TRNS + ), + + KEYMAP( // layer 3: numpad + // left hand + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS, + TRNS, + TRNS,TRNS,TRNS, + // right hand + TRNS,NLCK,PSLS,PAST,PAST,PMNS,BSPC, + TRNS,NO, P7, P8, P9, PMNS,BSPC, + NO, P4, P5, P6, PPLS,PENT, + TRNS,NO, P1, P2, P3, PPLS,PENT, + P0, PDOT,SLSH,PENT,PENT, + TRNS,TRNS, + TRNS, + TRNS,TRNS,TRNS + ), +}; +const uint16_t fn_actions[] = { + ACTION_LAYER_MOMENTARY(1), // FN0 - switch to Layer1 + ACTION_LAYER_SET(2, ON_PRESS), // FN1 - set Layer2 + ACTION_LAYER_TOGGLE(3), // FN2 - toggle Layer3 aka Numpad layer + ACTION_LAYER_SET(0, ON_PRESS), // FN3 - set Layer0 +}; diff --git a/keyboards/ergodox/infinity/keymaps/default/visualizer.c b/keyboards/ergodox/infinity/keymaps/default/visualizer.c new file mode 100644 index 000000000..c0d335ce6 --- /dev/null +++ b/keyboards/ergodox/infinity/keymaps/default/visualizer.c @@ -0,0 +1,168 @@ +/* +Copyright 2016 Fred Sundvik + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +// Currently we are assuming that both the backlight and LCD are enabled +// But it's entirely possible to write a custom visualizer that use only +// one of them +#ifndef LCD_BACKLIGHT_ENABLE +#error This visualizer needs that LCD backlight is enabled +#endif + +#ifndef LCD_ENABLE +#error This visualizer needs that LCD is enabled +#endif + +#include "visualizer.h" +#include "led_test.h" + +static const char* welcome_text[] = {"TMK", "Infinity Ergodox"}; + +// Just an example how to write custom keyframe functions, we could have moved +// all this into the init function +bool display_welcome(keyframe_animation_t* animation, visualizer_state_t* state) { + (void)animation; + // Read the uGFX documentation for information how to use the displays + // http://wiki.ugfx.org/index.php/Main_Page + gdispClear(White); + // You can use static variables for things that can't be found in the animation + // or state structs + gdispDrawString(0, 3, welcome_text[0], state->font_dejavusansbold12, Black); + gdispDrawString(0, 15, welcome_text[1], state->font_dejavusansbold12, Black); + // Always remember to flush the display + gdispFlush(); + // you could set the backlight color as well, but we won't do it here, since + // it's part of the following animation + // lcd_backlight_color(hue, saturation, intensity); + // We don't need constant updates, just drawing the screen once is enough + return false; +} + +// Feel free to modify the animations below, or even add new ones if needed + +// Don't worry, if the startup animation is long, you can use the keyboard like normal +// during that time +static keyframe_animation_t startup_animation = { + .num_frames = 4, + .loop = false, + .frame_lengths = {0, gfxMillisecondsToTicks(1000), gfxMillisecondsToTicks(5000), 0}, + .frame_functions = { + display_welcome, + keyframe_animate_backlight_color, + keyframe_no_operation, + enable_visualization + }, +}; + +// The color animation animates the LCD color when you change layers +static keyframe_animation_t color_animation = { + .num_frames = 2, + .loop = false, + // Note that there's a 200 ms no-operation frame, + // this prevents the color from changing when activating the layer + // momentarily + .frame_lengths = {gfxMillisecondsToTicks(200), gfxMillisecondsToTicks(500)}, + .frame_functions = {keyframe_no_operation, keyframe_animate_backlight_color}, +}; + +// The LCD animation alternates between the layer name display and a +// bitmap that displays all active layers +static keyframe_animation_t lcd_animation = { + .num_frames = 2, + .loop = true, + .frame_lengths = {gfxMillisecondsToTicks(2000), gfxMillisecondsToTicks(2000)}, + .frame_functions = {keyframe_display_layer_text, keyframe_display_layer_bitmap}, +}; + +static keyframe_animation_t suspend_animation = { + .num_frames = 3, + .loop = false, + .frame_lengths = {0, gfxMillisecondsToTicks(1000), 0}, + .frame_functions = { + keyframe_display_layer_text, + keyframe_animate_backlight_color, + keyframe_disable_lcd_and_backlight, + }, +}; + +static keyframe_animation_t resume_animation = { + .num_frames = 5, + .loop = false, + .frame_lengths = {0, 0, gfxMillisecondsToTicks(1000), gfxMillisecondsToTicks(5000), 0}, + .frame_functions = { + keyframe_enable_lcd_and_backlight, + display_welcome, + keyframe_animate_backlight_color, + keyframe_no_operation, + enable_visualization, + }, +}; + +void initialize_user_visualizer(visualizer_state_t* state) { + // The brightness will be dynamically adjustable in the future + // But for now, change it here. + lcd_backlight_brightness(0x50); + state->current_lcd_color = LCD_COLOR(0x00, 0x00, 0xFF); + state->target_lcd_color = LCD_COLOR(0x10, 0xFF, 0xFF); + start_keyframe_animation(&startup_animation); + start_keyframe_animation(&led_test_animation); +} + +void update_user_visualizer_state(visualizer_state_t* state) { + // Add more tests, change the colors and layer texts here + // Usually you want to check the high bits (higher layers first) + // because that's the order layers are processed for keypresses + // You can for check for example: + // state->status.layer + // state->status.default_layer + // state->status.leds (see led.h for available statuses) + if (state->status.layer & 0x8) { + state->target_lcd_color = LCD_COLOR(0xC0, 0xB0, 0xFF); + state->layer_text = "Numpad"; + } + else if (state->status.layer & 0x4) { + state->target_lcd_color = LCD_COLOR(0, 0xB0, 0xFF); + state->layer_text = "KBD functions"; + } + else if (state->status.layer & 0x2) { + state->target_lcd_color = LCD_COLOR(0x80, 0xB0, 0xFF); + state->layer_text = "Function keys"; + } + else { + state->target_lcd_color = LCD_COLOR(0x40, 0xB0, 0xFF); + state->layer_text = "Default"; + } + // You can also stop existing animations, and start your custom ones here + // remember that you should normally have only one animation for the LCD + // and one for the background. But you can also combine them if you want. + start_keyframe_animation(&lcd_animation); + start_keyframe_animation(&color_animation); +} + +void user_visualizer_suspend(visualizer_state_t* state) { + state->layer_text = "Suspending..."; + uint8_t hue = LCD_HUE(state->current_lcd_color); + uint8_t sat = LCD_SAT(state->current_lcd_color); + state->target_lcd_color = LCD_COLOR(hue, sat, 0); + start_keyframe_animation(&suspend_animation); +} + +void user_visualizer_resume(visualizer_state_t* state) { + state->current_lcd_color = LCD_COLOR(0x00, 0x00, 0x00); + state->target_lcd_color = LCD_COLOR(0x10, 0xFF, 0xFF); + start_keyframe_animation(&resume_animation); + start_keyframe_animation(&led_test_animation); +} diff --git a/keyboards/ergodox/infinity/led.c b/keyboards/ergodox/infinity/led.c new file mode 100644 index 000000000..77195bb35 --- /dev/null +++ b/keyboards/ergodox/infinity/led.c @@ -0,0 +1,49 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "hal.h" + +#include "led.h" + + +void led_set(uint8_t usb_led) { +// The LCD backlight functionality conflicts with this simple +// red backlight +#if !defined(LCD_BACKLIGHT_ENABLE) && defined(STATUS_LED_ENABLE) + // PTC1: LCD Backlight Red(0:on/1:off) + GPIOC->PDDR |= (1<<1); + PORTC->PCR[1] |= PORTx_PCRn_DSE | PORTx_PCRn_MUX(1); + if (usb_led & (1<PCOR |= (1<<1); + } else { + GPIOC->PSOR |= (1<<1); + } +#elif !defined(LCD_BACKLIGHT_ENABLE) + (void)usb_led; + GPIOC->PDDR |= (1<<1); + PORTC->PCR[1] |= PORTx_PCRn_DSE | PORTx_PCRn_MUX(1); + GPIOC->PSOR |= (1<<1); + GPIOC->PDDR |= (1<<2); + PORTC->PCR[2] |= PORTx_PCRn_DSE | PORTx_PCRn_MUX(1); + GPIOC->PSOR |= (1<<2); + GPIOC->PDDR |= (1<<3); + PORTC->PCR[3] |= PORTx_PCRn_DSE | PORTx_PCRn_MUX(1); + GPIOC->PSOR |= (1<<3); +#else + (void)usb_led; +#endif +} diff --git a/keyboards/ergodox/infinity/matrix.c b/keyboards/ergodox/infinity/matrix.c new file mode 100644 index 000000000..2b806cd64 --- /dev/null +++ b/keyboards/ergodox/infinity/matrix.c @@ -0,0 +1,169 @@ +/* +Copyright 2016 Fred Sundvik +Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include +#include +#include +#include "hal.h" +#include "timer.h" +#include "wait.h" +#include "print.h" +#include "debug.h" +#include "matrix.h" + + +/* + * Infinity ErgoDox Pinusage: + * Column pins are input with internal pull-down. Row pins are output and strobe with high. + * Key is high or 1 when it turns on. + * + * col: { PTD1, PTD4, PTD5, PTD6, PTD7 } + * row: { PTB2, PTB3, PTB18, PTB19, PTC0, PTC9, PTC10, PTC11, PTD0 } + */ +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; +static matrix_row_t matrix_debouncing[LOCAL_MATRIX_ROWS]; +static bool debouncing = false; +static uint16_t debouncing_time = 0; + + +void matrix_init(void) +{ + /* Column(sense) */ + palSetPadMode(GPIOD, 1, PAL_MODE_INPUT_PULLDOWN); + palSetPadMode(GPIOD, 4, PAL_MODE_INPUT_PULLDOWN); + palSetPadMode(GPIOD, 5, PAL_MODE_INPUT_PULLDOWN); + palSetPadMode(GPIOD, 6, PAL_MODE_INPUT_PULLDOWN); + palSetPadMode(GPIOD, 7, PAL_MODE_INPUT_PULLDOWN); + + /* Row(strobe) */ + palSetPadMode(GPIOB, 2, PAL_MODE_OUTPUT_PUSHPULL); + palSetPadMode(GPIOB, 3, PAL_MODE_OUTPUT_PUSHPULL); + palSetPadMode(GPIOB, 18, PAL_MODE_OUTPUT_PUSHPULL); + palSetPadMode(GPIOB, 19, PAL_MODE_OUTPUT_PUSHPULL); + palSetPadMode(GPIOC, 0, PAL_MODE_OUTPUT_PUSHPULL); + palSetPadMode(GPIOC, 9, PAL_MODE_OUTPUT_PUSHPULL); + palSetPadMode(GPIOC, 10, PAL_MODE_OUTPUT_PUSHPULL); + palSetPadMode(GPIOC, 11, PAL_MODE_OUTPUT_PUSHPULL); + palSetPadMode(GPIOD, 0, PAL_MODE_OUTPUT_PUSHPULL); + + memset(matrix, 0, MATRIX_ROWS); + memset(matrix_debouncing, 0, LOCAL_MATRIX_ROWS); +} + +uint8_t matrix_scan(void) +{ + for (int row = 0; row < LOCAL_MATRIX_ROWS; row++) { + matrix_row_t data = 0; + + // strobe row + switch (row) { + case 0: palSetPad(GPIOB, 2); break; + case 1: palSetPad(GPIOB, 3); break; + case 2: palSetPad(GPIOB, 18); break; + case 3: palSetPad(GPIOB, 19); break; + case 4: palSetPad(GPIOC, 0); break; + case 5: palSetPad(GPIOC, 9); break; + case 6: palSetPad(GPIOC, 10); break; + case 7: palSetPad(GPIOC, 11); break; + case 8: palSetPad(GPIOD, 0); break; + } + + // need wait to settle pin state + // if you wait too short, or have a too high update rate + // the keyboard might freeze, or there might not be enough + // processing power to update the LCD screen properly. + // 20us, or two ticks at 100000Hz seems to be OK + wait_us(20); + + // read col data: { PTD1, PTD4, PTD5, PTD6, PTD7 } + data = ((palReadPort(GPIOD) & 0xF0) >> 3) | + ((palReadPort(GPIOD) & 0x02) >> 1); + + // un-strobe row + switch (row) { + case 0: palClearPad(GPIOB, 2); break; + case 1: palClearPad(GPIOB, 3); break; + case 2: palClearPad(GPIOB, 18); break; + case 3: palClearPad(GPIOB, 19); break; + case 4: palClearPad(GPIOC, 0); break; + case 5: palClearPad(GPIOC, 9); break; + case 6: palClearPad(GPIOC, 10); break; + case 7: palClearPad(GPIOC, 11); break; + case 8: palClearPad(GPIOD, 0); break; + } + + if (matrix_debouncing[row] != data) { + matrix_debouncing[row] = data; + debouncing = true; + debouncing_time = timer_read(); + } + } + + uint8_t offset = 0; +#ifdef MASTER_IS_ON_RIGHT + if (is_serial_link_master()) { + offset = MATRIX_ROWS - LOCAL_MATRIX_ROWS; + } +#endif + + if (debouncing && timer_elapsed(debouncing_time) > DEBOUNCE) { + for (int row = 0; row < LOCAL_MATRIX_ROWS; row++) { + matrix[offset + row] = matrix_debouncing[row]; + } + debouncing = false; + } + return 1; +} + +bool matrix_is_on(uint8_t row, uint8_t col) +{ + return (matrix[row] & (1<", + { + "x": 10.5 + }, + "I" + ], + [ + { + "y": -0.8799999999999999, + "x": 2.5 + }, + "W" + ], + [ + { + "y": -0.9950000000000001, + "x": 4.5, + "a": 4 + }, + "R", + { + "x": 8.5, + "a": 7 + }, + "U", + { + "x": 1 + }, + "O" + ], + [ + { + "y": -0.875, + "x": 5.5 + }, + "T", + { + "h": 1.5 + }, + "", + { + "x": 4.5, + "h": 1.5 + }, + "", + "Y" + ], + [ + { + "y": -0.875, + "a": 6, + "w": 1.5 + }, + "Tab", + { + "a": 7 + }, + "Q", + { + "x": 14.5 + }, + "P", + { + "a": 4, + "w": 1.5 + }, + "|\n\\" + ], + [ + { + "y": -0.375, + "x": 3.5, + "a": 7 + }, + "D\n\n\n\n", + { + "x": 10.5 + }, + "K" + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "S\n\n\n\n", + { + "x": 1, + "c": "#c4bcbc" + }, + "F\n\n\n\n", + { + "x": 8.5 + }, + "J", + { + "x": 1, + "c": "#cccccc" + }, + "L" + ], + [ + { + "y": -0.875, + "x": 5.5 + }, + "G", + { + "x": 6.5 + }, + "H" + ], + [ + { + "y": -0.875, + "a": 4, + "fa": [ + 0, + 0, + 0, + 2 + ], + "w": 1.5 + }, + "\n\n\nCtrl\n\n\nCaps", + { + "a": 7 + }, + "A", + { + "x": 14.5, + "a": 4 + }, + ":\n;", + { + "a": 7, + "w": 1.5 + }, + "Enter" + ], + [ + { + "y": -0.625, + "x": 6.5, + "h": 1.5 + }, + "PgDn", + { + "x": 4.5, + "h": 1.5 + }, + "PgUp" + ], + [ + { + "y": -0.75, + "x": 3.5 + }, + "C\n\n\n\n", + { + "x": 10.5, + "a": 4 + }, + "<\n," + ], + [ + { + "y": -0.875, + "x": 2.5, + "a": 7 + }, + "X\n\n\n\n", + { + "x": 1 + }, + "V\n\n\n\n", + { + "x": 8.5 + }, + "M", + { + "x": 1, + "a": 4 + }, + ">\n." + ], + [ + { + "y": -0.875, + "x": 5.5, + "a": 7 + }, + "B", + { + "x": 6.5 + }, + "N" + ], + [ + { + "y": -0.875, + "w": 1.5 + }, + "Shift", + "Z", + { + "x": 14.5, + "a": 4 + }, + "?\n/", + { + "w": 1.5 + }, + "\"\n'" + ], + [ + { + "y": -0.375, + "x": 3.5, + "a": 7 + }, + "Alt\n\n\n\n", + { + "x": 10.5 + }, + "\n\n\n\n" + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "\n\n\n\n", + { + "x": 1 + }, + "Alt\n\n\n\n", + { + "x": 8.5 + }, + "\n\n\n\n", + { + "x": 1 + }, + "\n\n\n\n" + ], + [ + { + "y": -0.75, + "x": 0.5 + }, + "Ctrl\n\n\n\n", + "Esc", + { + "x": 14.5 + }, + "\n\n\n\n", + "Fn" + ], + [ + { + "r": 30, + "rx": 6.5, + "ry": 4.25, + "y": -1, + "x": 1 + }, + "", + "(" + ], + [ + { + "h": 2 + }, + "Space", + { + "h": 2 + }, + "Del", + "[" + ], + [ + { + "x": 2 + }, + "{" + ], + [ + { + "r": -30, + "rx": 13, + "y": -1, + "x": -3 + }, + ")", + "" + ], + [ + { + "x": -3 + }, + "]", + { + "h": 2 + }, + "Enter", + { + "h": 2 + }, + "" + ], + [ + { + "x": -3 + }, + "}" + ] +] \ No newline at end of file diff --git a/keyboards/ergodox/keymaps/ab/keyboard-layout.png b/keyboards/ergodox/keymaps/ab/keyboard-layout.png new file mode 100644 index 000000000..740684461 Binary files /dev/null and b/keyboards/ergodox/keymaps/ab/keyboard-layout.png differ diff --git a/keyboards/ergodox/keymaps/ab/keymap.c b/keyboards/ergodox/keymaps/ab/keymap.c new file mode 100644 index 000000000..df6f33460 --- /dev/null +++ b/keyboards/ergodox/keymaps/ab/keymap.c @@ -0,0 +1,155 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define FN1 1 // media layer + +#define CAPS_CTL CTL_T(KC_CAPS) // Caps on tap, Ctrl on hold. +#define COPY LCTL(KC_V) // C-c Copy +#define PASTE LCTL(KC_V) // C-v Paste +#define ZM_NRM LCTL(KC_0) // C-0 Zoom Normal +#define ZM_OUT LCTL(KC_MINS) // C-- Zoom Out +#define ZM_IN LCTL(KC_PLUS) // C-+ Zoom In +#define EM_UNDO LCTL(KC_UNDS) // C-_ Emacs Undo + +#define _MOB 1 // Mobile# +#define _CUS1 2 // Custom macro 1 +#define _CUS2 3 // Custom macro 2 + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | - | = | BSpace | + * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | Fwd | | Back | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * |Caps/Ctl| A | S | D | F | G |------| |------| H | J | K | L | ; | Enter | + * |--------+------+------+------+------+------| PgDn | | PgUp |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | ' | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | Ctrl | Esc | LGui | Alt | Alt | | Left | Dn | Up | Right| Fn | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Copy | ( | | ) | Paste| + * ,------|------+------| |------+------+------. + * | | | [ | | ] | | | + * |Space | Del |------| |------| Enter|BSpace| + * | | | { | | } | | | + * `--------------------' `--------------------' + */ +// 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_6, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_WBAK, + CAPS_CTL, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_PGDN, + KC_LCTL, KC_ESC, KC_LGUI, KC_LALT, KC_LALT, + COPY, KC_LCBR, + KC_LPRN, + KC_SPC, KC_DEL, KC_LBRC, + // Right hand + KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_WFWD, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_PGUP, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT, + KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TG(FN1), + KC_RCBR, PASTE, + KC_RPRN, + KC_RBRC, KC_ENT, KC_BSPC), +/* Keymap 1: Fn Keys, media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | BSpace | + * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | LClk | MClk | RClk | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Teensy| | ZmNrm| ZmOut| ZmIn | | Undo |VolDn |VolUp | Mute | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------+------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// FN1 Layer + [FN1] = KEYMAP( + // Left hand + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + 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_BTN1, KC_BTN3, KC_BTN2, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, ZM_NRM, ZM_OUT, ZM_IN, + KC_TRNS, KC_TRNS, + KC_TRNS, + RESET, KC_TRNS, KC_TRNS, + // Right hand + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, + KC_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, M(_MOB), KC_TRNS, M(_CUS1),M(_CUS2),KC_TRNS, KC_TRNS, + EM_UNDO, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ), +}; + +const uint16_t PROGMEM fn_actions[] = { +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case _MOB: // Your mobile# here. + return MACRODOWN(T(1), T(2), T(3), T(MINS), + T(1), T(2), T(3), T(MINS), + T(1), T(2), T(3), T(4), + END); + case _CUS1: // Your custom macro 1 + return MACRODOWN(T(E), T(M), T(A), T(C), T(S), T(SPC), END); + case _CUS2: // Your custom macro 2 + return MACRODOWN(T(L), T(S), T(SPC), T(MINS), T(L), T(ENT), END); + }; + 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/keyboards/ergodox/keymaps/ab/readme.md b/keyboards/ergodox/keymaps/ab/readme.md new file mode 100644 index 000000000..6b1ac2be3 --- /dev/null +++ b/keyboards/ergodox/keymaps/ab/readme.md @@ -0,0 +1,21 @@ +# Beginner's keymap for Ergodox-EZ +Beginner's keymap emulates standard QWERTY keyboard for beginners. Once you get comfortable with the Ergodox-EZ, you may fork this keymap and customize it for your own needs or find a suitable one from the community contributed keymaps. + +![Beginner's Keymap](keyboard-layout.png) + +#### Pros +* Easier to switch between regular keyboards and Ergodox-EZ. +* Easy on beginners. It has everything you need for your day to day usage. + +#### Cons +* Keys are not ergonomically placed to take full advantage of Ergodox-EZ. Take a look at this [Default Keymap](https://github.com/jackhumbert/qmk_firmware/blob/master/keyboards/ergodox_ez/keymaps/default/readme.md) +* While multiple layers are possible, beginner's keymap only uses one additional layer for mouse, function and volume keys. + +#### Notes +* Ideally number key [6] should have started from the right-hand side of the keyboard. Doing so breaks the familiar QWERTY layout. +* Quote key ['] should have been placed between [:] and [Enter]. Due to lack of key space, it is placed below [Enter]. +* Double [Alt] keys are placed adjacent to each other for convenience. +* [CapsLock] also acts as [Ctrl] key when you press and hold. It is convenient for GNU Emacs users. +* Additional bracket keys are placed in the center of the keyboard for programmer's convenience. + + diff --git a/keyboards/ergodox/keymaps/adnw_k_o_y/keymap.c b/keyboards/ergodox/keymaps/adnw_k_o_y/keymap.c new file mode 100644 index 000000000..052517d70 --- /dev/null +++ b/keyboards/ergodox/keymaps/adnw_k_o_y/keymap.c @@ -0,0 +1,185 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_german.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 | K | . | O | , | Y | L1 | | L1 | V | G | C | L | ß | Z | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | BkSp | H | A | E | I | U |------| |------| D | T | R | N | S | F | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |X/Ctrl| Q | Ä | Ü | Ö | | | | B | P | W | M | J | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | App | LGui | | Alt |Ctrl/Esc| + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space|Enter |------| |------| Tab |RShift| + * | | | 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, DE_K, DE_DOT, DE_O, DE_COMM,DE_Y, TG(SYMB), + KC_BSPC, DE_H, DE_A, DE_E, DE_I, DE_U, + KC_LSFT, CTL_T(DE_X), DE_Q, DE_AE, DE_UE, DE_OE, 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_ENT ,KC_END, + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(SYMB), DE_V, DE_G, DE_C, DE_L, DE_SS, DE_Z, + DE_D, DE_T, DE_R, DE_N, LT(MDIA, DE_S), GUI_T(KC_F), + MEH_T(KC_NO),KC_B, KC_P, KC_W, KC_M, CTL_T(KC_J), 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_RSFT + ), +/* 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/keyboards/ergodox/keymaps/adnw_k_o_y/readme.md b/keyboards/ergodox/keymaps/adnw_k_o_y/readme.md new file mode 100644 index 000000000..f0dd3815c --- /dev/null +++ b/keyboards/ergodox/keymaps/adnw_k_o_y/readme.md @@ -0,0 +1,7 @@ +# Basic implementation for k.o,y variant of the adnw layout + +adnw is a layout optimised for usage with german and english language +k.o,y is a variant of this layout +http://www.adnw.de/index.php?n=Main.SeitlicheNachbaranschl%C3%A4ge + +The os must use the de_DE layout diff --git a/keyboards/ergodox/keymaps/alexjj/keymap.c b/keyboards/ergodox/keymaps/alexjj/keymap.c new file mode 100644 index 000000000..448f62da0 --- /dev/null +++ b/keyboards/ergodox/keymaps/alexjj/keymap.c @@ -0,0 +1,238 @@ +#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 UNIC 3 // unicode entry layer + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ESC | 1! | 2@ | 3# | 4$ | 5% | 6^ | | 7& | 8* | 9( | 0) | -_ | += | BkSp | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | { | | } | Y | U | I | O | P | |\ | + * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------| + * | Win | A | S | D | F | G |------| |------| H | J | K | L | :; | '" | + * |--------+------+------+------+------+------| Home | | End |------+------+------+------+------+--------| + * | LShift |Z/Alt | X | C | V | B | | | | N | M | , | . | Alt | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |LCtrl | COPY | PASTE| Left | Right| | Down | Up |Hyper | `~ | RCtrl | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * Hyper = Ctrl+Super+Alt+Shift | ~L3 | F5 | | F2 | ~L2 | + * ,------|------|------| |------+------+------. + * | | | PgUp | | Ins | | | + * | Enter| BkSp |------| |------| ~L1 |Space | + * | | | PgDn | | Del | | | + * `--------------------' `--------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, + KC_LGUI, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, ALT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_HOME, + KC_LCTRL, LCTL(KC_C), LCTL(KC_V), KC_LEFT,KC_RGHT, + KC_FN3, KC_F5, + KC_PGUP, + KC_ENT,KC_BSPC,KC_PGDN, + // right hand + KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, + KC_END, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, + KC_DOWN,KC_UP, ALL_T(KC_NO),KC_GRV, KC_RCTRL, + KC_F2, KC_FN2, + KC_INS, + KC_DELT,KC_FN1, KC_SPC + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |PrintScr| + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | £ | | | | | | . | 0 | = |Alt+F4| + * `----------------------------------' `----------------------------------' + * ↑ ,-------------. ,-------------. + * THERE! | | | | | | + * ,------|------|------| |------+------+------. + * CAD = Ctrl + Alt + Delete | | | | | | | | + * | | |------| |------| | | + * | | | | | CAD | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + 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,M(3),KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, + KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_TRNS, + 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, LALT(KC_F4), + KC_TRNS, KC_TRNS, + KC_TRNS, + LCTL(LALT(KC_DEL)), KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | TEENSY | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolDn |VolUp | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | | |------| |------| |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[MDIA] = KEYMAP( + RESET, 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_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK +), +/* Keymap 3: Unicode Entry + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | Alt | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | + | + | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Alt | | | E | | | | | | | 7 | 8 | 9 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Alt | A | | D | F | |------| |------| | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Alt | | | C | | B | | | | | 1 | 2 | 3 | + | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | Alt | Alt | Alt | | | | 0 | 0 | 0 | + | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * WINDOWS ONLY SETUP!! | ~L3 | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | Alt | Alt |------| |------| Alt | Alt | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[UNIC] = KEYMAP( // layer 3 : Unicode Entry + // left hand + KC_LALT, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, KC_P6, + KC_LALT, KC_TRNS, KC_TRNS, KC_E, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LALT, KC_A, KC_TRNS, KC_D, KC_F, KC_TRNS, + KC_LALT, KC_TRNS, KC_TRNS, KC_C, KC_TRNS, KC_B, KC_TRNS, + KC_LALT, KC_LALT, KC_LALT, KC_TRNS,KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_LALT,KC_LALT, KC_TRNS, + // right hand + KC_P7, KC_P8, KC_P9, KC_P0, KC_PPLS,KC_PPLS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_TRNS, + KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_TRNS, + KC_P0, KC_P0, KC_P0, KC_PPLS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS,KC_LALT, KC_LALT + ), +}; + + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Layer 1 (Symbols) + [2] = ACTION_LAYER_TAP_TOGGLE(MDIA), // FN2 - Momentary Layer 2 (Media) + [3] = ACTION_LAYER_TAP_TOGGLE(UNIC) // FN3 - Momentary Layer 3 (Unicode entry) +}; + +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); + } + case 3: // this would trigger when you hit a key mapped as M(3) + if (record->event.pressed) { + return MACRO( I(255), D(LALT), T(P1), T(P5), T(P6), U(LALT), END ); + } + 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; + default: + // none + break; + } + +}; diff --git a/keyboards/ergodox/keymaps/alexjj/readme.md b/keyboards/ergodox/keymaps/alexjj/readme.md new file mode 100644 index 000000000..239e32d39 --- /dev/null +++ b/keyboards/ergodox/keymaps/alexjj/readme.md @@ -0,0 +1,179 @@ +Englishman in New York +=========================== + +:microphone: :tea: + +About +------ + +After using the massdrop configurator to get the basics, I wanted to add a +little extra to my ergodox. Notably the Hyper hotkey, the press and hold, +and a way to have my beloved £ :pound: symbol available[1](#unicode). Why not switch to a GB +layout? Well the computers I use are US keymap'd and I can't always change +that. Plus I've got used to 2/@ and 3/# and moving to the ergodox was hard +enough. :sweat_smile: + +I started from the default and edited from there as I needed. It's somewhat +similar to a regular layout, particularly R1 and shift/controls. I ended up +with a few keys that were blank, so I'm testing out some shortcuts. Alt+F4 for +quitting things in Windows, is one example, but I felt it was better placed on +the 1st layer - in case of fat fingers. + +Layout +------- + +![Layout](rl-layout.jpg "Isn't it lovely") + +### Base Layer + +``` +,--------------------------------------------------. ,--------------------------------------------------. +| ESC | 1! | 2@ | 3# | 4$ | 5% | 6^ | | 7& | 8* | 9( | 0) | -_ | += | BkSp | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| Tab | Q | W | E | R | T | { | | } | Y | U | I | O | P | |\ | +|--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------| +| Win | A | S | D | F | G |------| |------| H | J | K | L | :; | '" | +|--------+------+------+------+------+------| Home | | End |------+------+------+------+------+--------| +| LShift |Z/Alt | X | C | V | B | | | | N | M | , | . | Alt | RShift | +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + |LCtrl | COPY | PASTE| Left | Right| | Down | Up |Hyper | `~ | RCtrl | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + Hyper = Ctrl+Super+Alt+Shift | ~L3 | F5 | | F2 | ~L2 | + ,------|------|------| |------+------+------. + | | | PgUp | | Ins | | | + | Enter| BkSp |------| |------| ~L1 |Space | + | | | PgDn | | Del | | | + `--------------------' `--------------------' +``` + +### Symbol Layer + +``` +,--------------------------------------------------. ,--------------------------------------------------. +| | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |PrintScr| +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | £ | | | | | | . | 0 | = |Alt+F4| + `----------------------------------' `----------------------------------' + ↑ ,-------------. ,-------------. + THERE! | | | | | | + ,------|------|------| |------+------+------. + CAD = Ctrl + Alt + Delete | | | | | | | | + | | |------| |------| | | + | | | | | CAD | | | + `--------------------' `--------------------' +``` +### Media Layer + +Not touched this, not used either. + +``` +,--------------------------------------------------. ,--------------------------------------------------. +| TEENSY | | | | | | | | | | | | | | | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| | | | MsUp | | | | | | | | | | | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | | | | | | | | | | | Prev | Next | | | +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | | | Lclk | Rclk | |VolDn |VolUp | Mute | | | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + | | | | | | + ,------|------|------| |------+------+------. + | | | | | | |Brwser| + | | |------| |------| |Back | + | | | | | | | | + `--------------------' `--------------------' +``` +### Unicode Layer + +Used to enter/test unicode input on Windows. All numbers are numpad keys. + +``` +,--------------------------------------------------. ,--------------------------------------------------. +| Alt | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | + | + | | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| Alt | | | E | | | | | | | 7 | 8 | 9 | + | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| Alt | A | | D | F | |------| |------| | 4 | 5 | 6 | + | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| Alt | | | C | | B | | | | | 1 | 2 | 3 | + | | +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | Alt | Alt | Alt | | | | 0 | 0 | 0 | + | | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + WINDOWS ONLY SETUP!! | ~L3 | | | | | + ,------|------|------| |------+------+------. + | | | | | | | | + | Alt | Alt |------| |------| Alt | Alt | + | | | | | | | | + `--------------------' `--------------------' +``` + + +Usage +------ + +~L1 / L2 / L3 will momentarily switch to a layer if held and another key is pressed. +If pressed and released will remain on layer until pressed again. + +### Unicode + +This layout is for Windows only. To enter a character Press and Hold Alt, type + and hex code then release Alt. + +Changelog +----------- + +### [0.2.1] - 2016-04-05 + +* Changed £ to alt code in Windows. Windows sucks at unicode. + +### [0.2.0] - 2016-03-27 + +* Added unicode layer +* Moved Copy/Paste to left hand side +* Switched Enter and Space (again) +* Added L3 (unicode layer) toggle +* Removed Press and Hold for Alt on right hand size (/) +* Swapped Volume Up/Down to match arrows +* Tried fixing £ macro +* Removed * in the matrix function things (upstream change) + +### [0.1.1] - 2016-03-23 + +* Changed £ input to a macro + + +### [0.1.0] - 2016-03-22 + +After actually using the keyboard, I've made some changes: + +* Swapped Enter and Space +* Moved backspace to thumb keys (top right still remains) +* Added Ctrl+Alt+Delete +* Added Teensy Reset on 2nd layer +* Switched Up and Down +* Changed copy/paste to be Ctrl+c and Ctrl+v as KC_COPY/PASTE didn't work (in Windows) +* Moved ~L2 to replace +L1 after learning how the function works (notes above) +* Hopefully fixed GBP symbol (unicode enabled in MakeFile) + +### [0.0.1] - 2016-03-21 + +First version + + +Issues +------- + +Space for feedback and notes for future improvements + +---- +1: For Windows only, and you have to edit the [registry](https://en.wikipedia.org/wiki/Unicode_input#Hexadecimal_code_input). diff --git a/keyboards/ergodox/keymaps/alexjj/rl-layout.jpg b/keyboards/ergodox/keymaps/alexjj/rl-layout.jpg new file mode 100644 index 000000000..e4e92bf46 Binary files /dev/null and b/keyboards/ergodox/keymaps/alexjj/rl-layout.jpg differ diff --git a/keyboards/ergodox/keymaps/algernon/COPYING b/keyboards/ergodox/keymaps/algernon/COPYING new file mode 100644 index 000000000..94a9ed024 --- /dev/null +++ b/keyboards/ergodox/keymaps/algernon/COPYING @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/keyboards/ergodox/keymaps/algernon/Makefile b/keyboards/ergodox/keymaps/algernon/Makefile new file mode 100644 index 000000000..6bf3976b9 --- /dev/null +++ b/keyboards/ergodox/keymaps/algernon/Makefile @@ -0,0 +1,35 @@ +BOOTMAGIC_ENABLE=no +COMMAND_ENABLE=no +SLEEP_LED_ENABLE=no +UNICODE_ENABLE=no +FORCE_NKRO ?= yes +DEBUG_ENABLE = no +CONSOLE_ENABLE = no +TAP_DANCE_ENABLE = yes +KEYLOGGER_ENABLE ?= yes + +ifeq (${FORCE_NKRO},yes) +OPT_DEFS += -DFORCE_NKRO +endif + +ifeq (${KEYLOGGER_ENABLE},yes) +OPT_DEFS += -DKEYLOGGER_ENABLE +CONSOLE_ENABLE = yes +endif + +KEYMAP_VERSION = $(shell \ + if [ -d "${KEYMAP_PATH}/.git" ]; then \ + cd "${KEYMAP_PATH}" && git describe --abbrev=6 --dirty --always --tags --match 'v*' 2>/dev/null; \ + else echo QMK; fi) + +KEYMAP_BRANCH = $(shell \ + if [ -d "${KEYMAP_PATH}/.git" ]; then \ + cd "${KEYMAP_PATH}"; \ + fi; \ + git rev-parse --abbrev-ref HEAD 2>/dev/null) + +OPT_DEFS += -DKEYMAP_VERSION=\"$(KEYMAP_VERSION)\\\#$(KEYMAP_BRANCH)\" + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/ergodox/keymaps/algernon/config.h b/keyboards/ergodox/keymaps/algernon/config.h new file mode 100644 index 000000000..9bb1025be --- /dev/null +++ b/keyboards/ergodox/keymaps/algernon/config.h @@ -0,0 +1,27 @@ +#ifndef CONFIG_ALGERNON_H +#define CONFIG_ALGERNON_H + +#include "../../config.h" + +#undef MOUSEKEY_TIME_TO_MAX +#undef MOUSEKEY_MAX_SPEED + +#define MOUSEKEY_TIME_TO_MAX 1 +#define MOUSEKEY_MAX_SPEED 2 + +#undef MOUSEKEY_DELAY +#define MOUSEKEY_DELAY 0 + +#undef MOUSEKEY_WHEEL_DELAY +#define MOUSEKEY_WHEEL_DELAY 0 + +#define ONESHOT_TAP_TOGGLE 2 +#define ONESHOT_TIMEOUT 3000 + +#undef LOCKING_SUPPORT_ENABLE +#undef LOCKING_RESYNC_ENABLE + +#undef LEADER_TIMEOUT +#define LEADER_TIMEOUT 1000 + +#endif diff --git a/keyboards/ergodox/keymaps/algernon/images/adore-layer.png b/keyboards/ergodox/keymaps/algernon/images/adore-layer.png new file mode 100644 index 000000000..3df68ea53 Binary files /dev/null and b/keyboards/ergodox/keymaps/algernon/images/adore-layer.png differ diff --git a/keyboards/ergodox/keymaps/algernon/images/base-layer.png b/keyboards/ergodox/keymaps/algernon/images/base-layer.png new file mode 100644 index 000000000..7b25a05b3 Binary files /dev/null and b/keyboards/ergodox/keymaps/algernon/images/base-layer.png differ diff --git a/keyboards/ergodox/keymaps/algernon/images/heatmap.png b/keyboards/ergodox/keymaps/algernon/images/heatmap.png new file mode 100644 index 000000000..356035e0a Binary files /dev/null and b/keyboards/ergodox/keymaps/algernon/images/heatmap.png differ diff --git a/keyboards/ergodox/keymaps/algernon/images/hun-layer.png b/keyboards/ergodox/keymaps/algernon/images/hun-layer.png new file mode 100644 index 000000000..104a9544d Binary files /dev/null and b/keyboards/ergodox/keymaps/algernon/images/hun-layer.png differ diff --git a/keyboards/ergodox/keymaps/algernon/images/nav-n-media-layer.png b/keyboards/ergodox/keymaps/algernon/images/nav-n-media-layer.png new file mode 100644 index 000000000..16d29e124 Binary files /dev/null and b/keyboards/ergodox/keymaps/algernon/images/nav-n-media-layer.png differ diff --git a/keyboards/ergodox/keymaps/algernon/images/one-handed-layer.png b/keyboards/ergodox/keymaps/algernon/images/one-handed-layer.png new file mode 100644 index 000000000..698d11e5f Binary files /dev/null and b/keyboards/ergodox/keymaps/algernon/images/one-handed-layer.png differ diff --git a/keyboards/ergodox/keymaps/algernon/images/steno-layer.png b/keyboards/ergodox/keymaps/algernon/images/steno-layer.png new file mode 100644 index 000000000..fe3c03c93 Binary files /dev/null and b/keyboards/ergodox/keymaps/algernon/images/steno-layer.png differ diff --git a/keyboards/ergodox/keymaps/algernon/keymap.c b/keyboards/ergodox/keymaps/algernon/keymap.c new file mode 100644 index 000000000..c12087292 --- /dev/null +++ b/keyboards/ergodox/keymaps/algernon/keymap.c @@ -0,0 +1,1216 @@ +/* + * algernon's ErgoDox EZ layout, please see the readme.md file! + */ + +#include "ergodox_ez.h" +#include "led.h" +#include "debug.h" +#include "action_layer.h" +#include "action_util.h" +#include "mousekey.h" +#include "timer.h" +#include "keymap_plover.h" +#include "eeconfig.h" + +/* Layers */ + +enum { + BASE = 0, + ADORE, + ARRW, + APPSEL, + HUN, + NMDIA, + OHLFT, + OHRGT, + PLVR, +}; + +/* Macros */ + +enum { + NONE = 0, + // Buttons that do extra stuff + A_GUI, + A_PLVR, + A_ESC, + A_MPN, + + // Function / number keys + KF_1, // 1, F1 + KF_2, // 2, F2 + KF_3, // ... + KF_4, + KF_5, + KF_6, + KF_7, + KF_8, + KF_9, + KF_10, + KF_11, // =, F11 + + // Application select keys + APP_SLK, // Slack + APP_EMCS, // Emacs + APP_TERM, // Terminal + APP_CHRM, // Chrome + APP_MSIC, // Music + + // Diagonal mouse movement + A_MUL, + A_MUR, + A_MDL, + A_MDR, + + // Hungarian layer keys + HU_AA, // Á + HU_OO, // Ó + HU_EE, // É + HU_UU, // Ú + HU_II, // Í + HU_OE, // Ö + HU_UE, // Ü + HU_OEE, // Ő + HU_UEE, // Ű + + // One-handed layout specials + OH_BSSPC, + OH_ENTSFT, + OH_BASE, + OH_LEFT, + OH_RIGHT, +}; + +/* Fn keys */ + +enum { + F_BSE = 0, + F_HUN, + F_GUI, + F_SFT, + F_ALT, + F_CTRL +}; + +/* Custom keycodes */ + +enum { + CT_CLN = 0, + CT_MNS, + CT_TA, +}; + +/* States & timers */ + +uint16_t gui_timer = 0; + +uint16_t kf_timers[12]; + +uint16_t oh_base_timer = 0; +uint16_t oh_bsspc_timer = 0; +uint16_t oh_entsft_timer = 0; + +#define OH_BLINK_INTERVAL 500 + +uint8_t oh_left_blink = 0; +uint16_t oh_left_blink_timer = 0; +uint8_t oh_right_blink = 0; +uint16_t oh_right_blink_timer = 0; + +#if KEYLOGGER_ENABLE +bool log_enable = false; +#endif + +bool time_travel = false; + +/* The Keymap */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Keymap 0: Base Layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | `~ | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 | Plvr | | Apps | 6 F6 | 7 F7 | 8 F8 | 9 F9 | 0 F10| F11 | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | Next/Prev | ' | , | . | P | Y | [ | | ] | F | G | C | R | L | \ | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | Tab/ARROW | A | O | E | U | I |------| |------| D | H | T | N | S | = / Arrow | + * |-----------+------+------+------+------+------| ( | | ) |------+------+------+------+------+-----------| + * | Play/Pause| / | Q | J | K | X | | | | B | M | W | V | Z | Stop | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | : | | - | | | | | + * `-----------------------------------' `-----------------------------------' + * ,-------------. ,-------------. + * | LAlt | GUI | | MDIA | 1HND | + * ,------|------|------| |------+------+------. + * | | | Ctrl | | LEAD | | | + * |Backsp|LShift|------| |------| Enter| Space| + * | | | ESC | | HUN | | | + * `--------------------' `--------------------' + */ +[BASE] = KEYMAP( +// left hand + KC_GRV ,M(KF_1) ,M(KF_2) ,M(KF_3),M(KF_4),M(KF_5),M(A_PLVR) +,M(A_MPN) ,KC_QUOT ,KC_COMM ,KC_DOT ,KC_P ,KC_Y ,KC_LBRC +,TD(CT_TA) ,KC_A ,KC_O ,KC_E ,KC_U ,KC_I +,KC_MPLY ,KC_SLSH ,KC_Q ,KC_J ,KC_K ,KC_X ,KC_LPRN +,KC_NO ,KC_NO ,KC_NO ,KC_NO ,TD(CT_CLN) + + ,F(F_ALT),F(F_GUI) + ,F(F_CTRL) + ,KC_BSPC,F(F_SFT),M(A_ESC) + + // right hand + ,KC_APP ,M(KF_6),M(KF_7) ,M(KF_8),M(KF_9) ,M(KF_10) ,KC_F11 + ,KC_RBRC ,KC_F ,KC_G ,KC_C ,KC_R ,KC_L ,KC_BSLS + ,KC_D ,KC_H ,KC_T ,KC_N ,KC_S ,KC_EQL + ,KC_RPRN ,KC_B ,KC_M ,KC_W ,KC_V ,KC_Z ,KC_MSTP + ,TD(CT_MNS),KC_NO ,KC_NO ,KC_NO ,KC_NO + + ,OSL(NMDIA),M(OH_LEFT) + ,KC_LEAD + ,F(F_HUN) ,KC_ENT ,KC_SPC + ), + +/* Keymap 1: Adore layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | `~ | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 | Plvr | | Apps | 6 F6 | 7 F7 | 8 F8 | 9 F9 | 0 F10| F11 | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | Next/Prev | , | . | L | W | M | [ | | ] | F | H | C | P | Y | \ | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | Tab/Arrow | A | O | E | I | U |------| |------| D | R | T | N | S | = / Arrow | + * |-----------+------+------+------+------+------| ( | | ) |------+------+------+------+------+-----------| + * | Play/Pause| / | Z | ' | K | X | | | | B | G | V | J | Q | Stop | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | : | | - | | | | | + * `-----------------------------------' `-----------------------------------' + * ,-------------. ,-------------. + * | LAlt | GUI | | MDIA | 1HND | + * ,------|------|------| |------+------+------. + * | | | Ctrl | | LEAD | | | + * |Backsp|LShift|------| |------| Enter| Space| + * | | | ESC | | HUN | | | + * `--------------------' `--------------------' + */ +[ADORE] = KEYMAP( +// left hand + KC_GRV ,M(KF_1) ,M(KF_2) ,M(KF_3),M(KF_4),M(KF_5),M(A_PLVR) +,M(A_MPN) ,KC_COMM ,KC_DOT ,KC_L ,KC_W ,KC_M ,KC_LBRC +,TD(CT_TA) ,KC_A ,KC_O ,KC_E ,KC_I ,KC_U +,KC_MPLY ,KC_SLSH ,KC_Z ,KC_QUOT,KC_K ,KC_X ,KC_LPRN +,KC_NO ,KC_NO ,KC_NO ,KC_NO ,TD(CT_CLN) + + ,F(F_ALT),F(F_GUI) + ,F(F_CTRL) + ,KC_BSPC,F(F_SFT),M(A_ESC) + + // right hand + ,KC_APP ,M(KF_6),M(KF_7) ,M(KF_8),M(KF_9) ,M(KF_10) ,KC_F11 + ,KC_RBRC ,KC_F ,KC_H ,KC_C ,KC_P ,KC_Y ,KC_BSLS + ,KC_D ,KC_R ,KC_T ,KC_N ,KC_S ,KC_EQL + ,KC_RPRN ,KC_B ,KC_G ,KC_V ,KC_J ,KC_Q ,KC_MSTP + ,TD(CT_MNS),KC_NO ,KC_NO ,KC_NO ,KC_NO + + ,OSL(NMDIA),M(OH_LEFT) + ,KC_LEAD + ,F(F_HUN) ,KC_ENT ,KC_SPC + ), + +/* Keymap 2: Arrow layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | | | | | | | | | | | Home | Up | End | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | |------| |------| | Left | Down | Rght | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | | | | | | | | | | | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| PgUp | PgDn | + * | | | | | | | | + * `--------------------' `--------------------' + */ + +[ARRW] = 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 ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,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_HOME ,KC_UP ,KC_END ,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_PGUP ,KC_PGDN + ), + +/* Keymap 3: Application select layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | |Music |Slack |Emacs |Term |Chrome| | | | | | | | | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | | | | | | | | | | | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | |------| |------| | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | | | | | | | | | | | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ + +[APPSEL] = KEYMAP( +// left hand + KC_TRNS ,M(APP_MSIC),M(APP_SLK),M(APP_EMCS),M(APP_TERM),M(APP_CHRM),KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,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_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,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 4: Hungarian Layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | | | Ő | | Ű | | | | | | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | Á | Ó | É | Ú | Í |------| |------| | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | Ö | | Ü | | | | | | | | | | | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | BASE | | | + * `--------------------' `--------------------' + */ + +[HUN] = KEYMAP( +// left hand + KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO +,KC_NO ,KC_NO ,M(HU_OEE),KC_NO ,M(HU_UEE),KC_NO ,KC_NO +,KC_NO ,M(HU_AA),M(HU_OO) ,M(HU_EE),M(HU_UU) ,M(HU_II) +,KC_NO ,KC_NO ,M(HU_OE) ,KC_NO ,M(HU_UE) ,KC_NO ,KC_NO +,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + + ,KC_NO ,KC_NO + ,KC_NO + ,KC_NO ,KC_TRNS ,KC_TRNS + + // right hand + ,KC_TRNS ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + + ,KC_NO ,KC_NO + ,KC_NO + ,F(F_BSE),KC_TRNS ,KC_TRNS + ), + +/* Keymap 5: Navigation & Media layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | MS Slow | | | | | |ScrLCK| |ScrLCK| | | | | | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | MS Normal | | Home | Up | PgUp | | | |Scroll| |MsUpL | MsUp |MsUpR | |PrintScreen| + * |-----------+------+------+------+------+------| | | Up |------+------+------+------+------+-----------| + * | MS Fast | | Left | Down | Right| |------| |------| |MsLeft| MsDn |MsRght| | | + * |-----------+------+------+------+------+------| | |Scroll|------+------+------+------+------+-----------| + * | Play/Pause| | End | Down | PgDn | | | | Down | |MsDnL | MsDn |MsDnR | | Stop | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Mute | VlUp | | BASE | MClk | + * ,------|------|------| |------+------+------. + * | | | VlDn | | Prev |Left |Right | + * | SPC | Enter|------| |------| Click| Click| + * | | | ESC | | Next | | | + * `--------------------' `--------------------' + */ +[NMDIA] = KEYMAP( +// left hand + KC_ACL0 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,LGUI(KC_L) +,KC_ACL1 ,KC_NO ,KC_HOME ,KC_UP ,KC_PGUP ,KC_NO ,KC_NO +,KC_ACL2 ,KC_NO ,KC_LEFT ,KC_DOWN ,KC_RIGHT,KC_NO +,KC_MPLY ,KC_NO ,KC_END ,KC_DOWN ,KC_PGDN ,KC_NO ,KC_NO +,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_MUTE ,KC_VOLU + ,KC_VOLD + ,KC_SPC,KC_ENTER,M(A_ESC) + + // right hand + ,LGUI(KC_L),KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_WH_U ,KC_NO ,M(A_MUL),KC_MS_U ,M(A_MUR),KC_NO ,KC_PSCR + ,KC_NO ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_NO ,KC_NO + ,KC_WH_D ,KC_NO ,M(A_MDL),KC_MS_D ,M(A_MDR),KC_NO ,KC_MSTP + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + + ,KC_TRNS ,KC_MS_BTN3 + ,KC_MPRV + ,KC_MNXT ,KC_BTN1 ,KC_BTN2 + ), + +/* Keymap 6: One-handed, left side + * + * ,-----------------------------------------------------. + * | `~ | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 |A BSE| + * |-----------+------+------+------+------+-------------| + * | Tab | ' | , | . | P | Y | [ | + * |-----------+------+------+------+------+------| | + * | - | A | O | E | U | I |------| + * |-----------+------+------+------+------+------| ( | + * | Play/Pause| ; | Q | J | K | X | | + * `-----------+------+------+------+------+-------------' + * | Home | End | Down | Up | ESC | + * `-----------------------------------' + * ,-------------. + * | LAlt | GUI | + * ,------|------|------| + * |BackSp|LShift| Ctrl | + * | | |------| + * |Space |Enter |OTHER | + * `--------------------' + */ +[OHLFT] = KEYMAP( +// left hand + KC_GRV ,M(KF_1) ,M(KF_2) ,M(KF_3) ,M(KF_4) ,M(KF_5) ,M(OH_BASE) +,KC_TAB ,KC_QUOT ,KC_COMM ,KC_DOT ,KC_P ,KC_Y ,KC_LBRC +,KC_MINS ,KC_A ,KC_O ,KC_E ,KC_U ,KC_I +,KC_MPLY ,KC_SCLN ,KC_Q ,KC_J ,KC_K ,KC_X ,KC_LPRN +,KC_HOME ,KC_END ,KC_DOWN ,KC_UP ,M(A_ESC) + + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,M(OH_BSSPC),M(OH_ENTSFT),M(OH_RIGHT) + + // right hand + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + + ,KC_NO ,KC_NO + ,KC_NO + ,KC_NO ,KC_NO ,KC_NO + ), + +/* Keymap 7: One-handed, right side + * + * ,-----------------------------------------------------. + * | = F11 | 0 F10| 9 F9 | 8 F8 | 7 F7 | 6 F6 |A BSE| + * |-----------+------+------+------+------+-------------| + * | / | L | R | C | G | F | ] | + * |-----------+------+------+------+------+------| | + * | \ | S | N | T | H | D |------| + * |-----------+------+------+------+------+------| ) | + * | Stop | Z | V | W | M | B | | + * `-----------+------+------+------+------+-------------' + * | PgDn | PgUp | Right| Left | ESC | + * `-----------------------------------' + * ,-------------. + * | LAlt | GUI | + * ,------|------|------| + * |BackSp|LShift| Ctrl | + * | | |------| + * |Space |Enter |OTHER | + * `--------------------' + */ +[OHRGT] = KEYMAP( +// left hand + M(KF_11) ,M(KF_10) ,M(KF_9) ,M(KF_8) ,M(KF_7) ,M(KF_6) ,M(OH_BASE) +,KC_SLSH ,KC_L ,KC_R ,KC_C ,KC_G ,KC_F ,KC_RBRC +,KC_BSLS ,KC_S ,KC_N ,KC_T ,KC_H ,KC_D +,KC_MSTP ,KC_Z ,KC_V ,KC_W ,KC_M ,KC_B ,KC_RPRN +,KC_PGDN ,KC_PGUP ,KC_RGHT ,KC_LEFT ,M(A_ESC) + + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,M(OH_BSSPC),M(OH_ENTSFT),M(OH_LEFT) + + // right hand + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + + ,KC_NO ,KC_NO + ,KC_NO + ,KC_NO ,KC_NO ,KC_NO + ), + +/* Keymap 8: Steno for Plover + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | BASE | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | # | # | # | # | # | # | | # | # | # | # | # | # | # | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | T | P | H | |------| |------| | F | P | L | T | D | + * |--------+ S +------+------+------+ * | * | | * | * +------+------+------+------+--------| + * | | | K | W | R | | | | | | R | B | G | S | Z | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | A | O |------| |------| E | U | + * | | | | | | | | + * `--------------------' `--------------------' + */ + +[PLVR] = KEYMAP( +// left hand +KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, M(A_PLVR), +KC_NO, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, +KC_NO, PV_LS, PV_LT, PV_LP, PV_LH, PV_STAR, +KC_NO, PV_LS, PV_LK, PV_LW, PV_LR, PV_STAR, PV_STAR, +KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, + KC_NO, + PV_A, PV_O, KC_NO, + + // right hand + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, + PV_STAR, PV_RF, PV_RP, PV_RL, PV_RT, PV_RD, + PV_STAR, PV_STAR, PV_RR, PV_RB, PV_RG, PV_RS, PV_RZ, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, + KC_NO, + KC_NO,PV_E, PV_U + ), + +}; + +const uint16_t PROGMEM fn_actions[] = { + [F_BSE] = ACTION_LAYER_CLEAR(ON_PRESS) + ,[F_HUN] = ACTION_LAYER_INVERT(HUN, ON_PRESS) + ,[F_GUI] = ACTION_MACRO_TAP(A_GUI) + ,[F_SFT] = ACTION_MODS_ONESHOT (MOD_LSFT) + ,[F_ALT] = ACTION_MODS_ONESHOT (MOD_LALT) + ,[F_CTRL] = ACTION_MODS_ONESHOT (MOD_LCTL) +}; + +void toggle_steno(int pressed) +{ + uint8_t layer = biton32(layer_state); + + if (pressed) { + if (layer != PLVR) layer_on(PLVR); else layer_off(PLVR); + + register_code(PV_LP); + register_code(PV_LH); + register_code(PV_LR); + register_code(PV_O); + register_code(PV_RL); + register_code(PV_RG); + } else { + unregister_code(PV_LP); + unregister_code(PV_LH); + unregister_code(PV_LR); + unregister_code(PV_O); + unregister_code(PV_RL); + unregister_code(PV_RG); + } +} + +macro_t *ang_do_hun (keyrecord_t *record, uint16_t accent, uint16_t hun_char) +{ + uint8_t need_shift = 0; + uint8_t hold_shift = 0; + + if (!record->event.pressed) + return MACRO_NONE; + + layer_off (HUN); + + if (keyboard_report->mods & MOD_BIT (KC_LSFT)) { + hold_shift = 1; + need_shift = 1; + unregister_code (KC_LSFT); + } + if ((get_oneshot_mods () & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out ()) { + need_shift = 1; + hold_shift = 0; + unregister_code (KC_LSFT); + } + + clear_oneshot_mods (); + + register_code (KC_RALT); + unregister_code (KC_RALT); + if (accent == (KC_DQT)) { + register_code (KC_RSFT); + } + register_code (accent); + unregister_code (accent); + if (need_shift && accent != (KC_DQT)) { + register_code (KC_RSFT); + } else if (accent == (KC_DQT) && !need_shift) { + unregister_code (KC_RSFT); + } + register_code (hun_char); + unregister_code (hun_char); + if (need_shift || accent == (KC_DQT)) + unregister_code (KC_RSFT); + if (hold_shift) + register_code (KC_LSFT); + + return MACRO_NONE; +} + +void ang_handle_kf (keyrecord_t *record, uint8_t id) +{ + uint8_t code = id - KF_1; + + if (record->event.pressed) { + kf_timers[code] = timer_read (); + } else { + uint8_t kc; + + if (timer_elapsed (kf_timers[code]) > TAPPING_TERM) { + // Long press + kc = KC_F1 + code; + } else { + if (id == KF_11) + kc = KC_EQL; + else + kc = KC_1 + code; + } + + register_code (kc); + unregister_code (kc); + } +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case A_ESC: + if (record->event.pressed) { + if ((get_oneshot_mods ()) && !has_oneshot_mods_timed_out ()) { + clear_oneshot_mods (); + } else { + register_code (KC_ESC); + } + layer_off (HUN); + } else { + unregister_code (KC_ESC); + } + break; + + case A_MPN: + if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || + ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out())) { + int oneshot = ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out()); + + if (oneshot) + clear_oneshot_mods (); + unregister_code (KC_LSFT); + + register_code (KC_MPRV); + unregister_code (KC_MPRV); + + if (!oneshot) + register_code (KC_LSFT); + } else { + return MACRO (T(MNXT), END); + } + } + break; + + /* Hungarian layer */ + case HU_AA: + return ang_do_hun (record, KC_QUOT, KC_A); + case HU_OO: + return ang_do_hun (record, KC_QUOT, KC_O); + case HU_EE: + return ang_do_hun (record, KC_QUOT, KC_E); + case HU_UU: + return ang_do_hun (record, KC_QUOT, KC_U); + case HU_II: + return ang_do_hun (record, KC_QUOT, KC_I); + case HU_OE: + return ang_do_hun (record, KC_DQT, KC_O); + case HU_UE: + return ang_do_hun (record, KC_DQT, KC_U); + case HU_OEE: + return ang_do_hun (record, KC_EQL, KC_O); + case HU_UEE: + return ang_do_hun (record, KC_EQL, KC_U); + + /* Mouse movement */ + case A_MUL: + if (record->event.pressed) { + mousekey_on(KC_MS_UP); + mousekey_on(KC_MS_LEFT); + } else { + mousekey_off(KC_MS_UP); + mousekey_off(KC_MS_LEFT); + } + mousekey_send(); + break; + + case A_MUR: + if (record->event.pressed) { + mousekey_on(KC_MS_UP); + mousekey_on(KC_MS_RIGHT); + } else { + mousekey_off(KC_MS_UP); + mousekey_off(KC_MS_RIGHT); + } + mousekey_send(); + break; + + case A_MDL: + if (record->event.pressed) { + mousekey_on(KC_MS_DOWN); + mousekey_on(KC_MS_LEFT); + } else { + mousekey_off(KC_MS_DOWN); + mousekey_off(KC_MS_LEFT); + } + mousekey_send(); + break; + + case A_MDR: + if (record->event.pressed) { + mousekey_on(KC_MS_DOWN); + mousekey_on(KC_MS_RIGHT); + } else { + mousekey_off(KC_MS_DOWN); + mousekey_off(KC_MS_RIGHT); + } + mousekey_send(); + break; + + /* Plover base */ + case A_PLVR: + toggle_steno(record->event.pressed); + break; + + /* GUI & AppSel */ + case A_GUI: + if (record->event.pressed) { + register_code (KC_LGUI); + if (record->tap.count && !record->tap.interrupted) { + if (record->tap.count >= 2) { + register_code (KC_W); + layer_on (APPSEL); + set_oneshot_layer (APPSEL, ONESHOT_START); + } + } else { + record->tap.count = 0; + } + gui_timer = 0; + } else { + if (record->tap.count >= 2) + { + unregister_code (KC_W); + clear_oneshot_layer_state (ONESHOT_PRESSED); + } + gui_timer = timer_read (); + } + break; + + case APP_SLK: + return MACRODOWN(T(S), T(L), T(A), T(C), T(K), T(ENT), END); + + case APP_EMCS: + return MACRODOWN(T(E), T(M), T(A), T(C), T(S), T(ENT), END); + + case APP_TERM: + return MACRODOWN(T(T), T(E), T(R), T(M), T(ENT), END); + + case APP_CHRM: + return MACRODOWN(T(C), T(H), T(R), T(O), T(M), T(ENT), END); + + case APP_MSIC: + return MACRODOWN(T(R), T(H), T(Y), T(T), T(H), T(M), T(B), T(O), T(X), T(ENT), END); + + /* Function keys */ + case KF_1 ... KF_11: + ang_handle_kf (record, id); + break; + + /* 1HAND layout */ + case OH_BASE: + if (record->event.pressed) { + oh_base_timer = timer_read (); + } else { + if (timer_elapsed (oh_base_timer) > TAPPING_TERM) { + layer_clear (); + } else { + return MACRO (T(APP), END); + } + } + break; + + case OH_BSSPC: + if (record->event.pressed) { + oh_bsspc_timer = timer_read (); + } else { + if (timer_elapsed (oh_bsspc_timer) > TAPPING_TERM) { + return MACRO (T(BSPC), END); + } else { + return MACRO (T(SPC), END); + } + } + break; + + case OH_ENTSFT: + if (record->event.pressed) { + oh_entsft_timer = timer_read (); + } else { + if (timer_elapsed (oh_entsft_timer) > TAPPING_TERM) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT)) + unregister_code (KC_LSFT); + else + register_code (KC_LSFT); + } else { + return MACRO (T(ENT), END); + } + } + break; + + case OH_LEFT: + if (record->event.pressed) { + layer_move (OHLFT); + oh_left_blink = 1; + oh_left_blink_timer = timer_read (); + ergodox_right_led_1_on (); + } + break; + + case OH_RIGHT: + if (record->event.pressed) { + layer_move (OHRGT); + oh_right_blink = 1; + oh_right_blink_timer = timer_read (); + ergodox_right_led_3_on (); + } + break; + } + return MACRO_NONE; +}; + +uint8_t is_adore = 0; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + uint8_t dl; + + ergodox_led_all_on(); + for (int i = LED_BRIGHTNESS_HI; i > LED_BRIGHTNESS_LO; i--) { + ergodox_led_all_set (i); + _delay_ms (5); + } + _delay_ms(1000); + for (int i = LED_BRIGHTNESS_LO; i > 0; i--) { + ergodox_led_all_set (i); + _delay_ms (10); + } + ergodox_led_all_off(); + + if (!eeconfig_is_enabled()) + eeconfig_init(); + dl = eeconfig_read_default_layer (); + if (dl == (1UL << ADORE)) + is_adore = 1; +}; + +LEADER_EXTERNS(); + +void ang_do_unicode (void) { + register_code (KC_RCTL); + register_code (KC_RSFT); + register_code (KC_U); + unregister_code (KC_U); + unregister_code (KC_RSFT); + unregister_code (KC_RCTL); + _delay_ms (100); +} + +void ang_tap (uint16_t codes[]) { + for (int i = 0; codes[i] != 0; i++) { + register_code (codes[i]); + unregister_code (codes[i]); + _delay_ms (50); + } +} + +#define TAP_ONCE(code) \ + register_code (code); \ + unregister_code (code) + +void ang_tap_dance_cln_finished (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + register_code (KC_RSFT); + register_code (KC_SCLN); + } else if (state->count == 2) { + register_code (KC_SCLN); + } +} + +void ang_tap_dance_cln_reset (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + unregister_code (KC_SCLN); + unregister_code (KC_RSFT); + } else if (state->count == 2) { + unregister_code (KC_SCLN); + } +} + +void ang_tap_dance_mns_finished (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + register_code (KC_MINS); + } else if (state->count == 2) { + register_code (KC_RSFT); + register_code (KC_MINS); + } +} + +void ang_tap_dance_mns_reset (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + unregister_code (KC_MINS); + } else if (state->count == 2) { + unregister_code (KC_RSFT); + unregister_code (KC_MINS); + } +} + +typedef struct { + bool layer_toggle; + bool sticky; + bool finished_once; +} td_ta_state_t; + +void ang_tap_dance_ta_finished (qk_tap_dance_state_t *state, void *user_data) { + td_ta_state_t *td_ta = (td_ta_state_t *) user_data; + + if (td_ta->finished_once) { + return; + } + + if (td_ta->sticky) { + td_ta->sticky = false; + td_ta->layer_toggle = false; + layer_off (ARRW); + return; + } + + td_ta->finished_once = true; + if (state->count == 1 && !state->pressed) { + register_code (KC_TAB); + td_ta->sticky = false; + td_ta->layer_toggle = false; + } else { + td_ta->layer_toggle = true; + layer_on (ARRW); + td_ta->sticky = (state->count == 2); + } +} + +void ang_tap_dance_ta_reset (qk_tap_dance_state_t *state, void *user_data) { + td_ta_state_t *td_ta = (td_ta_state_t *) user_data; + + if (!td_ta->layer_toggle) + unregister_code (KC_TAB); + if (!td_ta->sticky) + layer_off (ARRW); + + td_ta->finished_once = false; +} + +const qk_tap_dance_action_t tap_dance_actions[] = { + [CT_CLN] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, ang_tap_dance_cln_finished, ang_tap_dance_cln_reset) + ,[CT_MNS] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, ang_tap_dance_mns_finished, ang_tap_dance_mns_reset) + ,[CT_TA] = { + .fn = { NULL, ang_tap_dance_ta_finished, ang_tap_dance_ta_reset }, + .user_data = (void *)&((td_ta_state_t) { false, false, false }) + } +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + uint8_t layer = biton32(layer_state); + + if (gui_timer && timer_elapsed (gui_timer) > TAPPING_TERM) + unregister_code (KC_LGUI); + + if (layer != OHLFT) + oh_left_blink = 0; + if (layer != OHRGT) + oh_right_blink = 0; + + if (layer == HUN) { + ergodox_right_led_2_on(); + ergodox_right_led_3_on(); + } else if (layer == NMDIA) { + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + } else if (layer == PLVR) { + ergodox_right_led_1_on (); + ergodox_right_led_2_on (); + ergodox_right_led_3_on (); + } else if (layer == ADORE) { + ergodox_right_led_1_on (); + ergodox_right_led_2_on (); + ergodox_right_led_3_on (); + + ergodox_right_led_2_set (LED_BRIGHTNESS_HI); + } + + if (layer == OHLFT || layer == OHRGT) { + ergodox_right_led_2_on(); + + if (oh_left_blink) { + if (timer_elapsed (oh_left_blink_timer) > OH_BLINK_INTERVAL) { + if ((keyboard_report->mods & MOD_BIT(KC_LSFT)) == 0) + ergodox_right_led_1_off (); + } + if (timer_elapsed (oh_left_blink_timer) > OH_BLINK_INTERVAL * 2) { + ergodox_right_led_1_on (); + oh_left_blink_timer = timer_read (); + } + } + + if (oh_right_blink) { + if (timer_elapsed (oh_right_blink_timer) > OH_BLINK_INTERVAL) { + if ((keyboard_report->mods & MOD_BIT(KC_LCTRL)) == 0) + ergodox_right_led_3_off (); + } + if (timer_elapsed (oh_right_blink_timer) > OH_BLINK_INTERVAL * 2) { + ergodox_right_led_3_on (); + oh_right_blink_timer = timer_read (); + } + } + } + + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || + ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out())) { + ergodox_right_led_1_set (LED_BRIGHTNESS_HI); + ergodox_right_led_1_on (); + } else { + ergodox_right_led_1_set (LED_BRIGHTNESS_LO); + if (layer != OHLFT && layer != NMDIA && layer != PLVR && layer != ADORE) + ergodox_right_led_1_off (); + } + + if (keyboard_report->mods & MOD_BIT(KC_LALT) || + ((get_oneshot_mods() & MOD_BIT(KC_LALT)) && !has_oneshot_mods_timed_out())) { + ergodox_right_led_2_set (LED_BRIGHTNESS_HI); + ergodox_right_led_2_on (); + } else { + ergodox_right_led_2_set (LED_BRIGHTNESS_LO); + if (layer != OHRGT && layer != HUN && layer != OHLFT && layer != NMDIA && layer != PLVR && layer != ADORE) + ergodox_right_led_2_off (); + } + + if (keyboard_report->mods & MOD_BIT(KC_LCTRL) || + ((get_oneshot_mods() & MOD_BIT(KC_LCTRL)) && !has_oneshot_mods_timed_out())) { + ergodox_right_led_3_set (LED_BRIGHTNESS_HI); + ergodox_right_led_3_on (); + } else { + ergodox_right_led_3_set (LED_BRIGHTNESS_LO); + if (layer != OHRGT && layer != HUN && layer != PLVR && layer != ADORE) + ergodox_right_led_3_off (); + } + + LEADER_DICTIONARY() { + leading = false; + leader_end (); + +#if KEYLOGGER_ENABLE + SEQ_ONE_KEY (KC_D) { + ergodox_led_all_on(); + _delay_ms(100); + ergodox_led_all_off(); + log_enable = !log_enable; + } +#endif + + SEQ_ONE_KEY (KC_T) { + time_travel = !time_travel; + } + + SEQ_ONE_KEY (KC_U) { + ang_do_unicode (); + } + + SEQ_ONE_KEY (KC_V) { + SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ (" QMK_VERSION "/" KEYMAP_VERSION ")"); + } + + SEQ_ONE_KEY (KC_L) { + /* λ */ + ang_do_unicode (); + + uint16_t codes[] = {KC_0, KC_3, KC_B, KC_B, KC_ENT, 0}; + ang_tap (codes); + } + + SEQ_ONE_KEY (KC_Y) { + uint16_t codes[] = {KC_BSLS, KC_O, KC_SLSH, 0}; + ang_tap (codes); + } + + SEQ_ONE_KEY (KC_S) { + ang_do_unicode (); TAP_ONCE (KC_A); TAP_ONCE (KC_F); TAP_ONCE (KC_SPC); + TAP_ONCE (KC_BSLS); + register_code (KC_RSFT); TAP_ONCE (KC_MINS); TAP_ONCE (KC_9); unregister_code (KC_RSFT); + ang_do_unicode (); TAP_ONCE (KC_3); TAP_ONCE (KC_0); TAP_ONCE (KC_C); TAP_ONCE (KC_4); TAP_ONCE (KC_SPC); + register_code (KC_RSFT); TAP_ONCE (KC_0); TAP_ONCE (KC_MINS); unregister_code (KC_RSFT); + TAP_ONCE (KC_SLSH); + ang_do_unicode (); TAP_ONCE (KC_A); TAP_ONCE (KC_F); TAP_ONCE (KC_SPC); + } + + SEQ_TWO_KEYS (KC_W, KC_M) { + register_code (KC_LALT); + register_code (KC_F2); + unregister_code (KC_F2); + unregister_code (KC_LALT); + + _delay_ms (1000); + + uint16_t codes[] = {KC_M, KC_A, KC_X, KC_MINS, KC_F, KC_O, KC_C, KC_U, KC_S, KC_E, KC_D, KC_ENT, 0}; + ang_tap (codes); + register_code (KC_LGUI); + register_code (KC_UP); + unregister_code (KC_UP); + unregister_code (KC_LGUI); + } + + SEQ_ONE_KEY (KC_A) { + if (is_adore == 0) { + default_layer_and (0); + default_layer_or ((1UL << ADORE)); + eeconfig_update_default_layer ((1UL << ADORE)); + is_adore = 1; + + ergodox_led_all_off (); + ergodox_right_led_3_on (); + _delay_ms (100); + ergodox_right_led_2_on (); + _delay_ms (100); + ergodox_right_led_3_off (); + ergodox_right_led_1_on (); + _delay_ms (100); + ergodox_right_led_2_off (); + _delay_ms (100); + ergodox_right_led_1_off (); + } else { + is_adore = 0; + default_layer_and (0); + default_layer_or (1UL << BASE); + eeconfig_update_default_layer ((1UL << BASE)); + + ergodox_led_all_off (); + ergodox_right_led_1_on (); + _delay_ms (100); + ergodox_right_led_2_on (); + _delay_ms (100); + ergodox_right_led_1_off (); + ergodox_right_led_3_on (); + _delay_ms (100); + ergodox_right_led_2_off (); + _delay_ms (100); + ergodox_right_led_3_off (); + } + } + } +} + +static uint16_t last4[4]; + +bool process_record_user (uint16_t keycode, keyrecord_t *record) { +#if KEYLOGGER_ENABLE + uint8_t layer = biton32(layer_state); + + if (log_enable && layer == BASE) { + xprintf ("KL: col=%d, row=%d\n", record->event.key.col, + record->event.key.row); + } +#endif + + if (time_travel && !record->event.pressed) { + uint8_t p; + + // shift cache one to the left + for (p = 0; p < 3; p++) { + last4[p] = last4[p + 1]; + } + last4[3] = keycode; + + if (last4[0] == KC_D && last4[1] == KC_A && last4[2] == KC_T && last4[3] == KC_E) { + uint16_t codes[] = {KC_E, KC_SPC, KC_MINS, KC_D, KC_SPC, KC_QUOT, 0}; + ang_tap (codes); + register_code (KC_RSFT); + register_code (KC_EQL); + unregister_code (KC_EQL); + unregister_code (KC_RSFT); + + uint16_t codes2[] = {KC_4, KC_SPC, KC_D, KC_A, KC_Y, KC_S, KC_QUOT, 0}; + ang_tap (codes2); + + return false; + } + } + + return true; +} diff --git a/keyboards/ergodox/keymaps/algernon/readme.md b/keyboards/ergodox/keymaps/algernon/readme.md new file mode 100644 index 000000000..6fe177511 --- /dev/null +++ b/keyboards/ergodox/keymaps/algernon/readme.md @@ -0,0 +1,198 @@ + + +algernon's layout +======================= + +This is an unconventional layout for the ErgoDox EZ. For more details about the history of the layout, see my [blog posts about my ErgoDox journey][blog-ergodox]. + + [blog-ergodox]: https://asylum.madhouse-project.org/blog/tags/ergodox/ + +Some of the things in the layout only work when one uses Spacemacs and GNOME under Linux. Your mileage may vary. + +## Table of Contents + +* [Layouts](#layouts) + - [Base layer](#base-layer) + - [ADORE layer](#adore-layer) + - [Hungarian layer](#hungarian-layer) + - [Navigation and media layer](#navigation-and-media-layer) + - [One-handed layer](#one-handed-layer) + - [Steno layer](#steno-layer) + - [LED states](#led-states) +* [Tools](#tools) + - [Heatmap](#heatmap) +* [Building](#building) + - [Using on Windows](#using-on-windows) +* [Changelog](#changelog) +* [License](#license) + +# Layouts + +## Base layer + +[![Base layer](images/base-layer.png)](http://www.keyboard-layout-editor.com/#/gists/28f7eb305fdbff943613e1dc7aa9e82b) + +At its core, this is a Dvorak layout, with some minor changes. The more interesting parts are how certain keys behave: + +* The keys on the number row double as function keys, when held for a bit longer than an usual tap. This allows me to use the function keys without having to switch layers. +* The `Shift`, `Alt`, and `Control` modifiers are one-shot. When tapped, they are considered active for the next key press only. When double tapped, they toggle on, until a third, single tap sometime later. When held, they act as expected. My usual pattern is that I use these for the next keypress only, so this behaviour is perfect. If I need them held, I'll just double-tap. +* The `GUI` key is special, because when I double-tap it, it sends `GUI + w`, which pops up an application selector. It also switches to a one-shot layer, where the number row on the left half turns into app selector macros, for the most common things I usually want to switch to. Otherwise it behaves as on a normal layout. +* The `ESC` key also doubles as a one-shot cancel key: if tapped while any of the one-shot modifiers are in-flight (as in, single-tapped, and not expired yet), it cancels all one-shot modifiers. It also cancels the **Hun** layer, if active. Otherwise it sends the usual keycode. +* The **Media** and **Hun** layer keys are one-shot, the **1Hand** and **STENO** keys are toggles. +* When holding any of the **Arrow** layer keys, the arrow layer activates while the layer key is held. Tapping the key produces the normal key. +* Tapping the `:` key once yields `:`, tapping it twice yields `;`. +* The **Lead** key allows me to type in a sequence of keys, and trigger some actions: + - `LEAD u` enters unicode input mode, by sending the GTK+ key sequence that does this. + - `LEAD l` uses the unicode input method to enter a `λ`. + - `LEAD s` does a lot of magic to type in a shruggie: `¯\_(ツ)_/¯` + - `LEAD y` types `\o/`. + - `LEAD w m` maximises the currently focused window. + - `LEAD a` makes the [ADORE layer](#adore-layer) the default. + - `LEAD v` prints the firmware version, the keyboard and the keymap. + - `LEAD d` toggles logging keypress positions to the HID console. + - `LEAD t` toggles time travel. Figuring out the current `date` is left as an exercise to the reader. + +## ADORE layer + +[![ADORE layer](images/adore-layer.png)](http://www.keyboard-layout-editor.com/#/gists/45681a17453d235925b6028dd83bf12a) + +While using the standard Dvorak layout, I encountered a number of inconveniences, and on this layer, I am playing with ideas to make the layout feel better. Initially, it was based on [Capewell-Dvorak][cpd], but that too, had shortcomings I was not happy with. So now this is something inbetween, with own observations thrown in. How it works out in the long run remains to be seen. + + [cpd]: http://www.michaelcapewell.com/projects/keyboard/layout_capewell-dvorak.htm + +Based on a week and a half of typing, the keys were rearranged, and the home row neatly spelled out **ADORE**, that gave the layout its name. + +## Hungarian layer + +[![Hungarian layer](images/hun-layer.png)](http://www.keyboard-layout-editor.com/#/gists/b160f6ec90d58c127c114c89f66e9dc9) + +On this layer, the accented characters are at the same position as their base variant. For some, which can have other diatribes, the long one is on top, short's on bottom. Tapping any of the accented characters takes us back to the base layer. + +## Navigation and media layer + +[![Navigation and media layer](images/nav-n-media-layer.png)](http://www.keyboard-layout-editor.com/#/gists/c59c453f9fe1a3238ba1494e7e5c6892) + +This layer is primarily for navigating with the cursor or the mouse, and some media things. + +## One-handed layer + +[![One-handed layer](images/one-handed-layer.png)](http://www.keyboard-layout-editor.com/#/gists/edff2495135955b8963198dace7f7ece) + +The one-handed layer is used in situations where the right hand is occupied, by mousing around, for example. Tapping the `OTHER` key switches which side is active. For the most part, keys remain in their usual position. When the right half is active, keys are mirrored to the left half. + +The differences are as follows: + +* The `ESC` key has been moved to the bottom row, so the `OTHER` key is easier to tap. +* Most keys on the thumb cluster now have dual uses, and these do not change when switching sides: + - The `Space`/`Backspace` key sends `Space` on tap, `Backspace` when held for longer than a normal tap. + - The `Enter`/`Shift` key sends `Enter` on short-tap, `Shift` on long-tap. +* The `Apps`/`BASE` key can be used to go back to the base layer, by long-tapping it. A short-tap will send the `App` key, as usual. + +## Steno layer + +[![Steno layer for Plover](images/steno-layer.png)](http://www.keyboard-layout-editor.com/#/gists/401ef9a84369e47c57f9aedcf0a0d667) + +This is to be used with [Plover](http://www.openstenoproject.org/plover/), nothing really fancy here. The **STENO** key toggles the layer on and off, and sends the toggle command to Plover too. + +## LED states + +The primary purpose of the LEDs is to show the modifier status, a secondary, to show which layer is active. Each modifier, `Shift`, `Alt` and `Control` each have their designated LEDs: the *red*, *green* and *blue*, respectively. When a modifier is in a one-shot state, the respective LED will turn on with a dimmer light. If the modifier is toggled on, the brightness of the LED turns full. + +For the layers, the following rules apply: + +* When the [ADORE layer](#adore-layer) is toggled on, LEDs will light up from left to right in a sequence, then turn off. When the layer is toggled off, the LEDs light up and turn off in the other direction. No LEDs are on while the layer is active. +* When the [Hungarian layer](#hungarian-layer) is active, the *green* and *blue* LEDs are on. +* When the [Navigation and media layer](#navigation-and-media-layer) is active, the *red* and *green* ones are on. +* When the [One-handed layer](#one-handed-layer) is active, the *green* LED is on and bright, and either the *red* or the *blue* one is going to slowly blink, depending on the currently active side. +* For the [Steno layer](#steno-layer), all LEDs will be turned on. + +Unless noted otherwise, the layers use a dim light for the LEDs, while modifiers use a stronger one, and modifiers override any layer preferences. For example, when on the one-handed layer, with the left side active (*red* light blinking), if `Shift` is on, the *red* light will be constantly on. + +# Tools + +## Heatmap + +When the keypress logging functionality is enabled (by `LEAD d`), the keyboard will output a line every time a key is pressed, containing the position of the key in the matrix. This allows one to collect this information, and build analytics over it, such as a heat map, including dead keys too. + +Included with the firmware is a small tool that can parse these logs, and create a heatmap that one can import into [KLE][kle]. To use it, simply point `tools/log-to-heatmap.py` to a base layout file (one is included in the `tools/` directory), and the key position log. The latter one can create by running `hid-listen`, and redirecting its output to a file. + + [kle]: http://www.keyboard-layout-editor.com/ + +The generated heatmap looks somewhat like this: + + ![Heatmap](images/heatmap.png) + +# Building + +To make my workflow easier, this layout is maintained in [its own repository][algernon:ez-layout]. To build it, you will need the [QMK][qmk] firmware checked out, and this repo either checked out to something like `keyboards/ergodox_ez/algernon-master`. One way to achieve that is this: + + [algernon:ez-layout]: https://github.com/algernon/ergodox-layout + [qmk]: https://github.com/jackhumbert/qmk_firmware + +``` +$ git clone https://github.com/jackhumbert/qmk_firmware.git +$ cd qmk_firmware +$ git clone https://github.com/algernon/ergodox-layout.git \ + keyboards/ergodox_ez/keymaps/algernon-master +$ make KEYBOARD=ergodox_ez KEYMAP=algernon-master +``` + +From time to time, updates may be submitted back to the QMK repository. If you are reading it there, you can build the firmware like any other firmware included with it (assuming you are in the root directory of the firmware): + +``` +$ make KEYBOARD=ergodox_ez KEYMAP=algernon +``` + +## Using on Windows + +The keymap default to forcing NKRO, which seems to upset Windows, and except the modifiers, none of them work. If you experience this problem, recompile the firmware with `FORCE_NKRO=no` added to the `make` command line. + +# Changelog + +## v1.4 - 2016-07-29 + +* When toggling the key logging on or off, the LEDs will do a little dance. +* The keylogger is now optional, but enabled by default. Use `KEYLOGGER_ENABLE=no` on the `make` command line to disable it. +* The `TAB`/`ARRW` key was turned into a tap-dance key, allowing one to toggle the **ARROW** layer on by double-tapping, and as such, avoid the need to hold the key. +* The `-`/`_` key was turned into a tap-dance key too. +* There is now a way to travel time with the keyboard, toggle the feature on by hitting `LEAD t`. + +## v1.3 - 2016-07-06 + +* Added support for logging keys, by pressing `LEAD d`. Also included is a tool to generate a [heatmap](#heatmap) out of the logs. +* The arrow and navigation keys were rearranged again, and now require an additional key being held to activate. See the [base layer](#base-layer) for an image that shows where arrows are. +* The **experimental** layer has been redone, and is now called [ADORE](#adore-layer), and as such, can be enabled by `LEAD a` now. +* Switching between Dvorak and ADORE is now persisted into EEPROM, and survives a reboot. + +## v1.2 - 2016-06-22 + +* The forced NKRO mode can be easily toggled off at compile-time, to make the firmware compatible with [certain operating systems](#using-on-windows). +* The `:;` key has changed behaviour: to access the `;` symbol, the key needs to be double-tapped, instead of shifted. +* The `=` and `\` keys were swapped, `=` moved to the home row, on both the [base](#base-layer) and the **experimental** layers. +* The arrow and navigation keys were redone, they are now more accessible, but the navigation keys require an extra tap to access. +* The **Emacs** layer is gone, replaced by a simplified [navigation and media](#navigation-and-media-layer) layer. +* `LEAD v` types the firmware version, and the keymap version. +* On the **experimental** layer, the `L` and `Q`, and the `K` and `G` keys were swapped. +* The [Steno](#steno-layer) layer gained a few more `#` and `*` keys, to make it easier on my fingers. + +## v1.1 - 2016-06-14 + +* The keyboard starts in NKRO mode, bootmagic and other things are disabled. +* A [Steno](#steno-layer) layer was added, to be used with Plover. +* An **experimental** layer was added, something halfway between Dvorak and Capewell-Dvorak. A work in progress. +* `LEAD y` types `\o/`. +* Some keys on the [Base](#base-layer) layer have been moved around: + - `?` moved to the left pinky, left of `Q`. + - `=` shifted one row down, but `F11` stayed where it was. + - `-` on the left half was replaced by `Tab`. + - `Tab`'s original position is taken by a `Media Next`/`Media Prev` key. + - `:` now inputs `;` when shifted. +* `ESC` cancels the [Hungarian](#hungarian-layer) layer too, not just modifiers. + +## v1.0 - 2016-05-26 + +Initial version. + +# License + +The layout, being a derivative of the original TMK firmware which is under the GPL-2+, this layout is under the GPL as well, but GPL-3+, rather than the older version. diff --git a/keyboards/ergodox/keymaps/algernon/tools/heatmap-adore-layout.json b/keyboards/ergodox/keymaps/algernon/tools/heatmap-adore-layout.json new file mode 100644 index 000000000..544f61ce8 --- /dev/null +++ b/keyboards/ergodox/keymaps/algernon/tools/heatmap-adore-layout.json @@ -0,0 +1,533 @@ +[ + { + "backcolor": "#ffffff", + "name": "ErgoDox - algernon's layout: Heatmap", + "author": "Gergely Nagy ", + "notes": "See [here](https://github.com/algernon/ergodox-layout#readme) for the QMK keymap source.", + "switchMount": "cherry", + "switchBrand": "gateron", + "switchType": "KS-3-Tea", + "pcb": true, + "css": ".keyborder { -webkit-filter: blur(5px); filter: blur(5px); } .keytop { -webkit-filter: blur(10px); } .keylabels { border: 1px solid black; }" + }, + [ + { + "x": 3.5, + "c": "#a7d0db", + "fa": [ + 0, + 0, + 2 + ] + }, + "#\n3\nF3", + { + "x": 10.5, + "c": "#a7d0db", + "t": "#000000", + "a": 4, + "fa": [ + 0, + 0, + 2 + ] + }, + "*\n8\nF8" + ], + [ + { + "y": -0.875, + "x": 2.5, + "c": "#bfbad1", + "t": "#0d0d0b" + }, + "@\n2\nF2", + { + "x": 1, + "c": "#7adabd", + "t": "#000000" + }, + "$\n4\nF4", + { + "x": 8.5 + }, + "&\n7\nF7", + { + "x": 1, + "c": "#bfbad1", + "t": "#0d0d0b" + }, + "(\n9\nF9" + ], + [ + { + "y": -0.875, + "x": 5.5, + "c": "#7adabd", + "t": "#000000" + }, + "%\n5\nF5", + { + "c": "#f9cd31", + "a": 7, + "f": 2 + }, + "STENO", + { + "x": 4.5, + "f": 6 + }, + "", + { + "c": "#7adabd", + "a": 4, + "f": 3, + "fa": [ + 0, + 0, + 2 + ] + }, + "^\n6\nF6" + ], + [ + { + "y": -0.875, + "c": "#ffb2d2", + "f": 3, + "w": 1.5 + }, + "\n\n~\n`", + { + "t": "#0d0d0b" + }, + "!\n1\nF1", + { + "x": 14.5 + }, + ")\n0\nF10", + { + "a": 7, + "w": 1.5 + }, + "F11" + ], + [ + { + "y": -0.375, + "x": 3.5, + "c": "#a7d0db", + "t": "#000000", + "a": 6 + }, + "L", + { + "x": 10.5 + }, + "C" + ], + [ + { + "y": -0.875, + "x": 2.5, + "c": "#bfbad1", + "t": "#0d0d0b", + "a": 4 + }, + ">\n.", + { + "x": 1, + "c": "#7adabd", + "t": "#000000", + "a": 6 + }, + "W", + { + "x": 8.5 + }, + "H", + { + "x": 1, + "c": "#bfbad1", + "t": "#0d0d0b" + }, + "P" + ], + [ + { + "y": -0.875, + "x": 5.5, + "c": "#7adabd", + "t": "#000000" + }, + "M", + { + "c": "#93c9b7", + "a": 4, + "h": 1.5 + }, + "{\n[", + { + "x": 4.5, + "h": 1.5 + }, + "}\n]", + { + "c": "#7adabd", + "a": 6 + }, + "F" + ], + [ + { + "y": -0.875, + "c": "#ffb07b", + "t": "#0d0d0b", + "f": 6, + "w": 1.5 + }, + "\n\n", + { + "c": "#ffb2d2", + "a": 4, + "f": 3 + }, + "<\n,", + { + "x": 14.5, + "a": 6 + }, + "Y", + { + "a": 4, + "w": 1.5 + }, + "|\n\\" + ], + [ + { + "y": -0.375, + "x": 3.5, + "c": "#a7d0db", + "t": "#000000", + "a": 6 + }, + "E", + { + "x": 10.5 + }, + "T" + ], + [ + { + "y": -0.875, + "x": 2.5, + "c": "#bfbad1", + "t": "#0d0d0b" + }, + "O", + { + "x": 1, + "c": "#7adabd", + "t": "#000000", + "n": true + }, + "I", + { + "x": 8.5, + "n": true + }, + "R", + { + "x": 1, + "c": "#bfbad1", + "t": "#0d0d0b" + }, + "N" + ], + [ + { + "y": -0.875, + "x": 5.5, + "c": "#7adabd", + "t": "#000000" + }, + "U", + { + "x": 6.5 + }, + "D" + ], + [ + { + "y": -0.875, + "c": "#ffb2d2", + "t": "#0d0d0b", + "fa": [ + 6 + ], + "w": 1.5 + }, + "\n\nTab", + { + "f": 3 + }, + "A", + { + "x": 14.5, + "f": 3 + }, + "S", + { + "a": 4, + "fa": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6 + ], + "w": 1.5 + }, + "+\n=" + ], + [ + { + "y": -0.625, + "x": 6.5, + "c": "#93c9b7", + "t": "#000000", + "a": 7, + "h": 1.5 + }, + "(", + { + "x": 4.5, + "h": 1.5 + }, + ")" + ], + [ + { + "y": -0.75, + "x": 3.5, + "c": "#a7d0db", + "a": 4, + "f": 3 + }, + "\"\n'", + { + "x": 10.5 + }, + "V" + ], + [ + { + "y": -0.875, + "x": 2.5, + "c": "#bfbad1", + "t": "#0d0d0b" + }, + "Z", + { + "x": 1, + "c": "#7adabd", + "t": "#000000" + }, + "K", + { + "x": 8.5 + }, + "G", + { + "x": 1, + "c": "#bfbad1", + "t": "#0d0d0b" + }, + "J" + ], + [ + { + "y": -0.875, + "x": 5.5, + "c": "#7adabd", + "t": "#000000" + }, + "X", + { + "x": 6.5 + }, + "B" + ], + [ + { + "y": -0.875, + "c": "#ffb07b", + "f": 9, + "w": 1.5 + }, + "\n\n", + { + "c": "#ffb2d2", + "t": "#0d0d0b", + "a": 4, + "f": 3 + }, + "?\n/", + { + "x": 14.5, + "a": 6 + }, + "Q", + { + "c": "#ffb07b", + "t": "#000000", + "f": 9, + "w": 1.5 + }, + "" + ], + [ + { + "y": -0.375, + "x": 3.5, + "c": "#d9dae0", + "g": true, + "a": 7, + "f": 3 + }, + "", + { + "x": 10.5 + }, + "" + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "", + { + "x": 1, + "c": "#d4872a", + "g": false, + "a": 5 + }, + ";\n:", + { + "x": 8.5 + }, + "_\n-", + { + "x": 1, + "c": "#d9dae0", + "g": true, + "a": 7 + }, + "" + ], + [ + { + "y": -0.75, + "x": 0.5 + }, + "", + {}, + "", + { + "x": 14.5 + }, + "", + {}, + "" + ], + [ + { + "r": 30, + "rx": 6.5, + "ry": 4.25, + "y": -1, + "x": 1, + "c": "#f9cd31", + "g": false + }, + "Alt", + { + "a": 4, + "fa": [ + 0, + 0, + 0, + 9 + ] + }, + "\n\n\n" + ], + [ + { + "c": "#d4872a", + "a": 7, + "f": 9, + "h": 2 + }, + "", + { + "h": 2 + }, + "", + { + "c": "#f9cd31", + "f": 3 + }, + "Ctrl" + ], + [ + { + "x": 2, + "c": "#e26757" + }, + "ESC" + ], + [ + { + "r": -30, + "rx": 13, + "y": -1, + "x": -3, + "c": "#f9cd31", + "f": 2 + }, + "MEDIA", + {}, + "1HAND" + ], + [ + { + "x": -3 + }, + "LEAD", + { + "c": "#d4872a", + "f": 9, + "h": 2 + }, + "", + { + "f": 3, + "h": 2 + }, + "SPC" + ], + [ + { + "x": -3, + "c": "#f9cd31", + "f": 2 + }, + "HUN" + ] +] diff --git a/keyboards/ergodox/keymaps/algernon/tools/heatmap-base-layout.json b/keyboards/ergodox/keymaps/algernon/tools/heatmap-base-layout.json new file mode 100644 index 000000000..148bb1f23 --- /dev/null +++ b/keyboards/ergodox/keymaps/algernon/tools/heatmap-base-layout.json @@ -0,0 +1,533 @@ +[ + { + "backcolor": "#ffffff", + "name": "ErgoDox - algernon's layout: Heatmap", + "author": "Gergely Nagy ", + "notes": "See [here](https://github.com/algernon/ergodox-layout#readme) for the QMK keymap source.", + "switchMount": "cherry", + "switchBrand": "gateron", + "switchType": "KS-3-Tea", + "pcb": true, + "css": ".keyborder { -webkit-filter: blur(5px); filter: blur(5px); } .keytop { -webkit-filter: blur(10px); } .keylabels { border: 1px solid black; }" + }, + [ + { + "x": 3.5, + "c": "#a7d0db", + "fa": [ + 0, + 0, + 2 + ] + }, + "#\n3\nF3", + { + "x": 10.5, + "c": "#a7d0db", + "t": "#000000", + "a": 4, + "fa": [ + 0, + 0, + 2 + ] + }, + "*\n8\nF8" + ], + [ + { + "y": -0.875, + "x": 2.5, + "c": "#bfbad1", + "t": "#0d0d0b" + }, + "@\n2\nF2", + { + "x": 1, + "c": "#7adabd", + "t": "#000000" + }, + "$\n4\nF4", + { + "x": 8.5 + }, + "&\n7\nF7", + { + "x": 1, + "c": "#bfbad1", + "t": "#0d0d0b" + }, + "(\n9\nF9" + ], + [ + { + "y": -0.875, + "x": 5.5, + "c": "#7adabd", + "t": "#000000" + }, + "%\n5\nF5", + { + "c": "#f9cd31", + "a": 7, + "f": 2 + }, + "STENO", + { + "x": 4.5, + "f": 6 + }, + "", + { + "c": "#7adabd", + "a": 4, + "f": 3, + "fa": [ + 0, + 0, + 2 + ] + }, + "^\n6\nF6" + ], + [ + { + "y": -0.875, + "c": "#ffb2d2", + "f": 3, + "w": 1.5 + }, + "\n\n~\n`", + { + "t": "#0d0d0b" + }, + "!\n1\nF1", + { + "x": 14.5 + }, + ")\n0\nF10", + { + "a": 7, + "w": 1.5 + }, + "F11" + ], + [ + { + "y": -0.375, + "x": 3.5, + "c": "#a7d0db", + "t": "#000000", + "a": 4 + }, + ">\n.", + { + "x": 10.5, + "a": 6 + }, + "C" + ], + [ + { + "y": -0.875, + "x": 2.5, + "c": "#bfbad1", + "t": "#0d0d0b", + "a": 4 + }, + "<\n,", + { + "x": 1, + "c": "#7adabd", + "t": "#000000", + "a": 6 + }, + "P", + { + "x": 8.5 + }, + "G", + { + "x": 1, + "c": "#bfbad1", + "t": "#0d0d0b" + }, + "R" + ], + [ + { + "y": -0.875, + "x": 5.5, + "c": "#7adabd", + "t": "#000000" + }, + "Y", + { + "c": "#93c9b7", + "a": 4, + "h": 1.5 + }, + "{\n[", + { + "x": 4.5, + "h": 1.5 + }, + "}\n]", + { + "c": "#7adabd", + "a": 6 + }, + "F" + ], + [ + { + "y": -0.875, + "c": "#ffb07b", + "t": "#0d0d0b", + "f": 6, + "w": 1.5 + }, + "\n\n", + { + "c": "#ffb2d2", + "a": 4, + "f": 3 + }, + "\"\n'", + { + "x": 14.5, + "a": 6 + }, + "L", + { + "a": 4, + "w": 1.5 + }, + "|\n\\" + ], + [ + { + "y": -0.375, + "x": 3.5, + "c": "#a7d0db", + "t": "#000000", + "a": 6 + }, + "E", + { + "x": 10.5 + }, + "T" + ], + [ + { + "y": -0.875, + "x": 2.5, + "c": "#bfbad1", + "t": "#0d0d0b" + }, + "O", + { + "x": 1, + "c": "#7adabd", + "t": "#000000", + "n": true + }, + "U", + { + "x": 8.5, + "n": true + }, + "H", + { + "x": 1, + "c": "#bfbad1", + "t": "#0d0d0b" + }, + "N" + ], + [ + { + "y": -0.875, + "x": 5.5, + "c": "#7adabd", + "t": "#000000" + }, + "I", + { + "x": 6.5 + }, + "D" + ], + [ + { + "y": -0.875, + "c": "#ffb2d2", + "t": "#0d0d0b", + "fa": [ + 6 + ], + "w": 1.5 + }, + "\n\nTab", + { + "f": 3 + }, + "A", + { + "x": 14.5, + "f": 3 + }, + "S", + { + "a": 4, + "fa": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6 + ], + "w": 1.5 + }, + "+\n=" + ], + [ + { + "y": -0.625, + "x": 6.5, + "c": "#93c9b7", + "t": "#000000", + "a": 7, + "h": 1.5 + }, + "(", + { + "x": 4.5, + "h": 1.5 + }, + ")" + ], + [ + { + "y": -0.75, + "x": 3.5, + "c": "#a7d0db", + "a": 6 + }, + "J", + { + "x": 10.5 + }, + "W" + ], + [ + { + "y": -0.875, + "x": 2.5, + "c": "#bfbad1", + "t": "#0d0d0b" + }, + "Q", + { + "x": 1, + "c": "#7adabd", + "t": "#000000" + }, + "K", + { + "x": 8.5 + }, + "M", + { + "x": 1, + "c": "#bfbad1", + "t": "#0d0d0b" + }, + "V" + ], + [ + { + "y": -0.875, + "x": 5.5, + "c": "#7adabd", + "t": "#000000" + }, + "X", + { + "x": 6.5 + }, + "B" + ], + [ + { + "y": -0.875, + "c": "#ffb07b", + "f": 9, + "w": 1.5 + }, + "\n\n", + { + "c": "#ffb2d2", + "t": "#0d0d0b", + "a": 4, + "f": 3 + }, + "?\n/", + { + "x": 14.5, + "a": 6 + }, + "Z", + { + "c": "#ffb07b", + "t": "#000000", + "f": 9, + "w": 1.5 + }, + "" + ], + [ + { + "y": -0.375, + "x": 3.5, + "c": "#d9dae0", + "g": true, + "a": 7, + "f": 3 + }, + "", + { + "x": 10.5 + }, + "" + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "", + { + "x": 1, + "c": "#d4872a", + "g": false, + "a": 5 + }, + ";\n:", + { + "x": 8.5 + }, + "_\n-", + { + "x": 1, + "c": "#d9dae0", + "g": true, + "a": 7 + }, + "" + ], + [ + { + "y": -0.75, + "x": 0.5 + }, + "", + {}, + "", + { + "x": 14.5 + }, + "", + {}, + "" + ], + [ + { + "r": 30, + "rx": 6.5, + "ry": 4.25, + "y": -1, + "x": 1, + "c": "#f9cd31", + "g": false + }, + "Alt", + { + "a": 4, + "fa": [ + 0, + 0, + 0, + 9 + ] + }, + "\n\n\n" + ], + [ + { + "c": "#d4872a", + "a": 7, + "f": 9, + "h": 2 + }, + "", + { + "h": 2 + }, + "", + { + "c": "#f9cd31", + "f": 3 + }, + "Ctrl" + ], + [ + { + "x": 2, + "c": "#e26757" + }, + "ESC" + ], + [ + { + "r": -30, + "rx": 13, + "y": -1, + "x": -3, + "c": "#f9cd31", + "f": 2 + }, + "MEDIA", + {}, + "1HAND" + ], + [ + { + "x": -3 + }, + "LEAD", + { + "c": "#d4872a", + "f": 9, + "h": 2 + }, + "", + { + "f": 3, + "h": 2 + }, + "SPC" + ], + [ + { + "x": -3, + "c": "#f9cd31", + "f": 2 + }, + "HUN" + ] +] diff --git a/keyboards/ergodox/keymaps/algernon/tools/log-to-heatmap.py b/keyboards/ergodox/keymaps/algernon/tools/log-to-heatmap.py new file mode 100755 index 000000000..a13d12e81 --- /dev/null +++ b/keyboards/ergodox/keymaps/algernon/tools/log-to-heatmap.py @@ -0,0 +1,145 @@ +#! /usr/bin/env python +import json +import os +import sys +import re + +from math import floor + +cr_coord_map = [ + [ + # Row 0 + [ 4, 0], [ 4, 2], [ 2, 0], [ 1, 0], [ 2, 2], [ 3, 0], [ 3, 2], + [ 3, 4], [ 3, 6], [ 2, 4], [ 1, 2], [ 2, 6], [ 4, 4], [ 4, 6], + ], + [ + # Row 1 + [ 8, 0], [ 8, 2], [ 6, 0], [ 5, 0], [ 6, 2], [ 7, 0], [ 7, 2], + [ 7, 4], [ 7, 6], [ 6, 4], [ 5, 2], [ 6, 6], [ 8, 4], [ 8, 6], + ], + [ + # Row 2 + [12, 0], [12, 2], [10, 0], [ 9, 0], [10, 2], [11, 0], [ ], + [ ], [11, 2], [10, 4], [ 9, 2], [10, 6], [12, 4], [12, 6], + ], + [ + # Row 3 + [17, 0], [17, 2], [15, 0], [14, 0], [15, 2], [16, 0], [13, 0], + [13, 2], [16, 2], [15, 4], [14, 2], [15, 6], [17, 4], [17, 6], + ], + [ + # Row 4 + [20, 0], [20, 2], [19, 0], [18, 0], [19, 2], [], [], [], [], + [19, 4], [18, 2], [19, 6], [20, 4], [20, 6], + ], + [ + # Row 5 + [ ], [23, 0], [22, 2], [22, 0], [22, 4], [21, 0], [21, 2], + [24, 0], [24, 2], [25, 0], [25, 4], [25, 2], [26, 0], [ ], + ], +] + +def set_attr_at(j, b, n, attr, fn, val): + blk = j[b][n] + if attr in blk: + blk[attr] = fn(blk[attr], val) + else: + blk[attr] = fn(None, val) + +def coord(col, row): + return cr_coord_map[row][col] + +def set_attr(orig, new): + return new + +def set_bg(j, (b, n), color): + set_attr_at(j, b, n, "c", set_attr, color) + #set_attr_at(j, b, n, "g", set_attr, False) + +def _set_tap_info(o, count, cap): + ns = 4 - o.count ("\n") + return o + "\n" * ns + "%.02f%%" % (float(count) / float(cap) * 100) + +def set_tap_info(j, (b, n), count, cap): + j[b][n + 1] = _set_tap_info (j[b][n + 1], count, cap) + +def heatmap_color (v): + colors = [ [0.3, 0.3, 1], [0.3, 1, 0.3], [1, 1, 0.3], [1, 0.3, 0.3]] + fb = 0 + if v <= 0: + idx1, idx2 = 0, 0 + elif v >= 1: + idx1, idx2 = len(colors) - 1, len(colors) - 1 + else: + val = v * (len(colors) - 1) + idx1 = int(floor(val)) + idx2 = idx1 + 1 + fb = val - float(idx1) + + r = (colors[idx2][0] - colors[idx1][0]) * fb + colors[idx1][0] + g = (colors[idx2][1] - colors[idx1][1]) * fb + colors[idx1][1] + b = (colors[idx2][2] - colors[idx1][2]) * fb + colors[idx1][2] + + r, g, b = [x * 255 for x in r, g, b] + return "#%02x%02x%02x" % (r, g, b) + +# Load the keylog +def load_keylog(fname, restrict_row): + keylog = {} + total = 0 + with open(fname, "r") as f: + lines = f.readlines() + for line in lines: + m = re.search ('KL: col=(\d+), row=(\d+)', line) + if not m: + continue + (c, r) = (int(m.group (2)), int(m.group (1))) + if restrict_row != None and r != int(restrict_row): + continue + if (c, r) in keylog: + keylog[(c, r)] = keylog[(c, r)] + 1 + else: + keylog[(c, r)] = 1 + total = total + 1 + return total / 2, keylog + +def l_flat(s): + f = s.split("\n") + return ", ".join (f) + +def main(base_fn, log_fn, restrict_row = None): + + with open(base_fn, "r") as f: + layout = json.load (f) + + ## Reset colors + for row in cr_coord_map: + for col in row: + if col != []: + set_bg (layout, col, "#d9dae0") + #set_attr_at (layout, col[0], col[1], "g", set_attr, True) + + total, log = load_keylog (log_fn, restrict_row) + max_cnt = 0 + for (c, r) in log: + max_cnt = max(max_cnt, log[(c, r)]) + + # Create the heatmap + for (c, r) in log: + coords = coord(c, r) + b, n = coords + cap = max_cnt + v = float(log[(c, r)]) / cap + print >> sys.stderr, "%s => %d/%d => %f = %s" % (l_flat(layout[b][n+1]), log[(c,r)], cap, v, heatmap_color(v)) + set_bg (layout, coord(c, r), heatmap_color (v)) + set_tap_info (layout, coord (c, r), log[(c, r)], total) + + print json.dumps(layout) + +if __name__ == "__main__": + if len(sys.argv) < 3: + print """Log to Heatmap -- creates a heatmap out of keyboard logs + +Usage: log-to-heatmap.py base-layout.json logfile [row] >layout.json""" + sys.exit (1) + main(*sys.argv[1:]) diff --git a/keyboards/ergodox/keymaps/algernon/tools/max-focused b/keyboards/ergodox/keymaps/algernon/tools/max-focused new file mode 100755 index 000000000..4d5220aa8 --- /dev/null +++ b/keyboards/ergodox/keymaps/algernon/tools/max-focused @@ -0,0 +1,5 @@ +#! /bin/sh +WIN="$(xdotool getactivewindow)" +wmctrl -i -r ${WIN} -b remove,maximized_vert,maximized_horz +xdotool windowsize ${WIN} 100% 100% +wmctrl -i -r ${WIN} -b add,maximized_vert,maximized_horz diff --git a/keyboards/ergodox/keymaps/andrew_osx/keymap.c b/keyboards/ergodox/keymaps/andrew_osx/keymap.c new file mode 100644 index 000000000..48257d23a --- /dev/null +++ b/keyboards/ergodox/keymaps/andrew_osx/keymap.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/keyboards/ergodox/keymaps/bepo/bepo.png b/keyboards/ergodox/keymaps/bepo/bepo.png new file mode 100644 index 000000000..3df7aa609 Binary files /dev/null and b/keyboards/ergodox/keymaps/bepo/bepo.png differ diff --git a/keyboards/ergodox/keymaps/bepo/keymap.c b/keyboards/ergodox/keymaps/bepo/keymap.c new file mode 100644 index 000000000..921a94d63 --- /dev/null +++ b/keyboards/ergodox/keymaps/bepo/keymap.c @@ -0,0 +1,311 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_bepo.h" + +#define BASE 0 // default layer +#define QWER 1 // qwerty compat layer +#define SQWER 2 // shifted qwerty compat layer +#define AQWER 3 // alted qwerty compat layer +#define FNAV 4 // function / navigation keys +#define NUM 5 // numeric keypad keys +#define MSE 6 // mouse keys + +#define KP_00 0 +#define CA_Fx 1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Base layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | $ | " | < | > | ( | ) |Delete| |ScroLo| @ | + | - | / | * | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | % | B |E_ACUT| P | O |E_GRAV|Backsp| |CapsLo| ^ | V | D | L | J | Z | + * |--------+------+------+------+------+------| ace | | |------+------+------+------+------+--------| + * | W | A | U | I | E | , |------| |------| C | T | S | R | N | M | + * |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------| + * | E_CIRC |A_GRAV| Y | X | . | K | | | | ' | Q | G | H | F | C_CEDIL| + * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' + * |QWERTY| |LSuper| LCtrl| LAlt| |Escape| L_Mse| | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause| + * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' + * | | | L_Num| | CA_Fx| | | + * | Space|LShift|------| |------|RShift|Enter | + * | | |L_FNav| |L_FNav| | | + * `--------------------' `--------------------' + */ +[BASE] = KEYMAP( +// Left hand +BP_DOLLAR, BP_DQOT, BP_LGIL, BP_RGIL, BP_LPRN, BP_RPRN, KC_DEL, +BP_PERCENT, BP_B, BP_E_ACUTE, BP_P, BP_O, BP_E_GRAVE, KC_BSPC, +BP_W, BP_A, BP_U, BP_I, BP_E, BP_COMMA, +BP_ECRC, BP_A_GRAVE, BP_Y, BP_X, BP_DOT, BP_K, KC_TAB, +TG(QWER), KC_NO, KC_LGUI, KC_LCTL, KC_LALT, + KC_ESC, MO(MSE), + MO(NUM), + KC_SPC, KC_LSHIFT, MO(FNAV), +// Right hand + KC_SLCK, BP_AT, BP_PLUS, BP_MINUS, BP_SLASH, BP_ASTR, BP_EQUAL, + KC_CAPSLOCK, BP_DCRC, BP_V, BP_D, BP_L, BP_J, BP_Z, + BP_C, BP_T, BP_S, BP_R, BP_N, BP_M, + KC_NUMLOCK, BP_APOS, BP_Q, BP_G, BP_H, BP_F, BP_CCED, + BP_ALGR, KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE, +KC_NO, KC_INS, +M(CA_Fx), +MO(FNAV), KC_RSHIFT, KC_ENTER), +/* Keymap 1: QWERTY system compatibility layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | $ | " | < | > | ( | ) |Delete| |ScroLo| @ | + | - | / | * | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | % | b | e | p | o | e |Backsp| |CapsLo| ^ | v | d | l | j | z | + * |--------+------+------+------+------+------| ace | | |------+------+------+------+------+--------| + * | w | a | u | i | e | , |------| |------| c | t | s | r | n | m | + * |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------| + * | e | a | y | x | . | k | | | | ' | q | g | h | f | c | + * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' + * | BEPO | |LSuper| LCtrl| LAlt| |Escape| L_Mse| | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause| + * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' + * | | | L_Num| | | | | + * | Space|LShift|------| |------|RShift|Enter | + * | | |L_FNav| |L_FNav| | | + * `--------------------' `--------------------' + */ +[QWER] = KEYMAP( +// Left hand +KC_DOLLAR, S(KC_QUOT), S(KC_COMM), S(KC_DOT), KC_LPRN, KC_RPRN, KC_DEL, +KC_PERCENT, KC_B, KC_E, KC_P, KC_O, KC_E, KC_BSPC, +KC_W, KC_A, KC_U, KC_I, KC_E, KC_COMMA, +KC_E, KC_A, KC_Y, KC_X, KC_DOT, KC_K, KC_TAB, +KC_TRNS, KC_NO, KC_LGUI, KC_LCTL, KC_LALT, + KC_ESC, MO(MSE), + MO(NUM), + KC_SPC, MO(SQWER), MO(FNAV), +// Right hand + KC_SLCK, KC_AT, KC_PLUS, KC_MINUS, KC_SLASH, KC_ASTR, KC_EQUAL, + KC_CAPSLOCK, KC_CIRC, KC_V, KC_D, KC_L, KC_J, KC_Z, + KC_C, KC_T, KC_S, KC_R, KC_N, KC_M, + KC_NUMLOCK, KC_QUOT, KC_Q, KC_G, KC_H, KC_F, KC_C, + MO(AQWER), KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE, +KC_NO, KC_INS, +KC_TRNS, +MO(FNAV), MO(SQWER), KC_ENTER), +/* Keymap 2: QWERTY shifted system compatibility layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | # | 1 | 2 | 3 | 4 | 5 |Delete| |ScroLo| 6 | 7 | 8 | 9 | 0 | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | ` | B | E | P | O | E |Backsp| |CapsLo| ! | V | D | L | J | Z | + * |--------+------+------+------+------+------| ace | | |------+------+------+------+------+--------| + * | W | A | U | I | E | ; |------| |------| C | T | S | R | N | M | + * |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------| + * | E | A | Y | X | : | K | | | | ? | Q | G | H | F | C | + * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' + * | BEPO | |LSuper| LCtrl| LAlt| |Escape| L_Mse| | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause| + * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' + * | | | L_Num| | | | | + * | Space|LShift|------| |------|RShift|Enter | + * | | |L_FNav| |L_FNav| | | + * `--------------------' `--------------------' + */ +[SQWER] = KEYMAP( +// Left hand +KC_HASH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, +KC_GRV, S(KC_B), S(KC_E), S(KC_P), S(KC_O), S(KC_E), KC_TRNS, +S(KC_W), S(KC_A), S(KC_U), S(KC_I), S(KC_E), KC_SCOLON, +S(KC_E), S(KC_A), S(KC_Y), S(KC_X), KC_COLON, S(KC_K), S(KC_TAB), +KC_TRNS, KC_TRNS, S(KC_LGUI), S(KC_LCTL), S(KC_LALT), + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, +// Right hand + KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_TRNS, KC_EXLM, S(KC_V), S(KC_D), S(KC_L), S(KC_J), S(KC_Z), + S(KC_C), S(KC_T), S(KC_S), S(KC_R), S(KC_N), S(KC_M), + KC_TRNS, S(KC_SLASH), S(KC_Q), S(KC_G), S(KC_H), S(KC_F), S(KC_C), + S(KC_RALT), S(KC_RCTL), S(KC_RGUI), KC_TRNS, KC_TRNS, +KC_TRNS, KC_TRNS, +KC_TRNS, +KC_TRNS, KC_TRNS, KC_TRNS), +/* Keymap 3: QWERTY alted system compatibility layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | $ | " | < | > | [ | ] |Delete| |ScroLo| @ | + | - | / | * | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | % | | | e | & | o | e |Backsp| |CapsLo| ^ | v | d | l | j | z | + * |--------+------+------+------+------+------| ace | | |------+------+------+------+------+--------| + * | w | a | u | i | € | , |------| |------| c | t | s | r | n | m | + * |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------| + * | e | \ | { | } | . | ~ | | | | ' | q | g | h | f | c | + * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' + * | BEPO | |LSuper| LCtrl| LAlt| |Escape| L_Mse| | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause| + * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' + * | | | L_Num| | | | | + * | _ |LShift|------| |------|RShift|Enter | + * | | |L_FNav| |L_FNav| | | + * `--------------------' `--------------------' + */ +[AQWER] = KEYMAP( +// Left hand +KC_DOLLAR, S(KC_QUOT), S(KC_COMM), S(KC_DOT), KC_LBRC, KC_RBRC, KC_DEL, +KC_PERCENT, KC_PIPE, KC_E, KC_AMPR, KC_O, KC_E, KC_BSPC, +KC_W, KC_A, KC_U, KC_I, RALT(KC_5), KC_COMMA, +KC_E, KC_BSLASH, KC_LCBR, KC_RCBR, KC_DOT, KC_TILDE, KC_TAB, +KC_TRNS, KC_NO, KC_LGUI, KC_LCTL, KC_LALT, + KC_ESC, MO(MSE), + MO(NUM), + KC_UNDS, MO(SQWER), MO(FNAV), +// Right hand + KC_SLCK, KC_AT, KC_PLUS, KC_MINUS, KC_SLASH, KC_ASTR, KC_EQUAL, + KC_CAPSLOCK, KC_CIRC, KC_V, KC_D, KC_L, KC_J, KC_Z, + KC_C, KC_T, KC_S, KC_R, KC_N, KC_M, + KC_NUMLOCK, KC_QUOT, KC_Q, KC_G, KC_H, KC_F, KC_C, + KC_TRNS, KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE, +KC_NO, KC_INS, +KC_TRNS, +MO(FNAV), MO(SQWER), KC_ENTER), +/* Keymap 4: function / navigation layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 |VolMut| | | F6 | F7 | F8 | F9 | F10 | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | |VolDwn| | | PgUp | Home | Up | End | F11 | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------| PgDn | Left | Down | Right| F12 | | + * |--------+------+------+------+------+------| VolUp| | |------+------+------+------+------+--------| + * | | Undo | Cut | Copy | Paste| | | | | | | | | | | + * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' + * | | | | | | | | | | | | | | | | | | + * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[FNAV] = KEYMAP( +// Left hand +KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MUTE, +KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLU, +KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, +KC_NO, KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_NO, KC_VOLD, +KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, + KC_NO, KC_NO, + KC_NO, + KC_NO, KC_TRNS, KC_TRNS, +// Right hand + KC_NO, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO, + KC_NO, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_F11, KC_NO, + KC_PGDOWN, KC_LEFT, KC_DOWN, KC_RIGHT, KC_F12, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, +KC_NO, KC_NO, +KC_TRNS, +KC_TRNS, KC_TRNS, KC_NO), +/* Keymap 5: numeric layer, sends keypad codes + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | + | - | / | * | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | 7 | 8 | 9 | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------| | 4 | 5 | 6 | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | 1 | 2 | 3 | | | + * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' + * | | | | | | | | | | | | | 0 | 00 | . | | | + * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' + * | | | | | | | | + * | | |------| |------| | Enter| + * | | | | | | | | + * `--------------------' `--------------------' + */ +[NUM] = KEYMAP( +// Left hand +KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, +KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, +KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, +KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, +KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, + KC_NO, KC_NO, + KC_TRNS, + KC_NO, KC_TRNS, KC_NO, +// Right hand + KC_NO, KC_NO, KC_KP_PLUS, KC_KP_MINUS, KC_KP_SLASH, KC_KP_ASTERISK, KC_NO, + KC_NO, KC_NO, KC_KP_7, KC_KP_8, KC_KP_9, KC_NO, KC_NO, + KC_NO, KC_KP_4, KC_KP_5, KC_KP_6, KC_NO, KC_NO, + KC_NO, KC_NO, KC_KP_1, KC_KP_2, KC_KP_3, KC_NO, KC_NO, + KC_KP_0, M(KP_00), KC_KP_COMMA, KC_NO, KC_NO, +KC_NO, KC_NO, +KC_NO, +KC_NO, KC_TRNS, KC_KP_ENTER), +/* Keymap 6: mouse layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | |LClick| Up |RClick| WhUp | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------| | Left | Down | Right|WhDown| | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' + * | | | | | | | | | | | | | | | | | | + * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[MSE] = KEYMAP( +// Left hand +KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, +KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, +KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, +KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, +KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, + KC_NO, KC_TRNS, + KC_NO, + KC_NO, KC_TRNS, KC_NO, +// Right hand + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, KC_MS_WH_UP, KC_NO, + KC_NO, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_WH_DOWN, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, +KC_NO, KC_NO, +KC_NO, +KC_NO, KC_TRNS, KC_NO) +}; + +const uint16_t PROGMEM fn_actions[] = { +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case KP_00: + if (record->event.pressed) { + return MACRO( T(KP_0), D(KP_0), END ); + } else { + return MACRO( U(KP_0), END ); + } + break; + case CA_Fx: + if (record->event.pressed) { + layer_on(FNAV); + return MACRO( D(LALT), D(LCTL), END ); + } else { + layer_off(FNAV); + return MACRO( U(LCTL), U(LALT), END ); + } + 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) { +}; diff --git a/keyboards/ergodox/keymaps/bepo/readme.md b/keyboards/ergodox/keymaps/bepo/readme.md new file mode 100644 index 000000000..4a18cd80f --- /dev/null +++ b/keyboards/ergodox/keymaps/bepo/readme.md @@ -0,0 +1,34 @@ +# BEPO keymap for the ErgoDox + +This keymap has been made for the BEPO layout (http://bepo.fr), which is an ergonomic french keyboard layout based on Dvorak rules. As it's made for french people, the following of this readme will be in french. + +# Disposition BÉPO pour l'ErgoDox + +Cette keymap a été pensée pour la disposition BÉPO (http://bepo.fr), qui est une disposition de clavier francophone, ergonomique et libre, élaborée selon la méthode Dvorak. L'adaptation de cette disposition à l'ErgoDox a été réalisée en conservant les points forts du clavier TypeMatrix 2030 (très répandu dans la communauté bépo, avec un excellent rapport ergonomie / prix) voir en réglant certains de ses défauts (3 colonnes pour l'auriculaire droit et touche "Ê") et en apportant son lot de nouveautés (compatibilité avec les systèmes azerty et qwerty). + +Particularités +-------------- + +Touches de repos des pouces : "espace" à gauche et "entrée" à droite. + +Placement des touches de combinaison ("Shift", "Alt", "Ctrl"...) adapté aux pouces, et permettant de conserver chaque doigt pour les rangées de lettres auxquelles ils sont assignés sans avoir à changer la touche de combinaison de côté (exemple : "A" majuscule puis "M" majuscule avec les auriculaires et un seul appui d'une touche "Shift"). + +Les touches "Alt" et "Alt Gr" sont accessibles avec les pouces sur la rangée du bas comme sur la TypeMatrix 2030, avec une symétrie gauche / droite. + +Les touches "Ctrl" sont placées sur la même ligne que les touche "Alt" et "Alt Gr" comme sur un clavier clasique, elles sont accessibles aux pouces sur la rangée du bas (moins éloigné que le groupe de touches de pouces pour des petites mains). + +Les touches "Backspace" et "Delete" sont placées comme sur la TypeMatrix 2030, du côté gauche uniquement (pour laisser celles de la main droite servir de {caps,num,scroll}lock puisqu'elles ont des LED). + +La touche "Tab" est placée comme sur la TypeMatrix 2020. + +Meilleure symétrie et accessibilité que la TypeMatrix 2030 : les touches "W" et "%" ont dû être déplacées du côté gauche en raison du nombre de touches de l'ErgoDox, mais l'auriculaire droit ne gère maintenant que deux colonnes de touches au lieu de trois. La touche "Ê" redevient accessible sur la même rangée que les autres lettres, comme sur un clavier classique en disposition bépo. Les lettres, chiffres et symboles sont tous regroupés sur 4 lignes et 6 colonnes pour chaque main, et la première rangée de lettres à la main gauche conserve une identité visuelle "BÉPO". + +Touche de fonction permettant de saisir les touches F1 à F12, les touches F1 à F10 sont placées de façon logique par rapport aux chiffres 1 à 0. Cette même touche permet l'accès aux touches directionnelles sans déplacer la main droite. Les touches "Home" et "End" sont placées de la même façon que sur une TypeMatrix 2030 par rapport aux touches directionnelles. Les touches "Page Up" et "Page Down" sont également accessibles facilement sans déplacer la main droite. Les fonctions "VolUp" et "VolDown" sont placées comme sur la TypeMatrix 2030, avec la fonction "Mute" juste au dessus. Les fonctions "Undo", "Cut", "Copy" et "Paste" sont placées côte à côte comme elles le seraient sur un clavier QWERTY en combinaison avec la touche "Ctrl" (à l'emplacement des lettres "Z", "X", "C" et "V"). Par rapport au layout "SpaceFN", l'utilisation d'une touche de fonction dédiée au pouce permet de ne pas ajouter de latence, et la touche espace reste compatible avec les jeux (action au moment de l'appui et possibilité d'appui long). + +Touche de fonction permettant l'accès au pavé numérique comme sur la TypeMatrix 2030, mais sans avoir à déplacer la main droite : avec les doigts sur la rangée de repos, possibilité de saisir les chiffres "4", "5" et "6" comme sur un pavé numérique classique. Le double "0" de la TypeMatrix a été conservé, et gagne une possibilité de répétition en simples "0". + +L'appui sur une touche permet de basculer en mode BEPO sur un système configuré pour un clavier QWERTY. Cette compatibilité n'est pas parfaite (pas encore de gestion des accents mais ça devrait être faisable avec une disposition en qwerty international, et les combinaisons de touches ne sont pas toutes supportées puisque le clavier traduit déjà certaines touches en combinaisons) mais reste pratique pour une saisie de texte occasionnelle. + +TODO : couche de compatibilité pour utiliser la disposition BÉPO sur un système configuré pour un clavier AZERTY. + +> Olivier Smedts diff --git a/keyboards/ergodox/keymaps/coderkun_neo2/Makefile b/keyboards/ergodox/keymaps/coderkun_neo2/Makefile new file mode 100644 index 000000000..6c0a79b11 --- /dev/null +++ b/keyboards/ergodox/keymaps/coderkun_neo2/Makefile @@ -0,0 +1,2 @@ +SLEEP_LED_ENABLE = no +UNICODE_ENABLE = yes diff --git a/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c b/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c new file mode 100644 index 000000000..8a2ba26d2 --- /dev/null +++ b/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c @@ -0,0 +1,281 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "led.h" +#include "keymap_extras/keymap_neo2.h" + +// Layer names +#define BASE 0 // default layer +#define PMQ 1 // poor man’s QWERTZ +#define PMN 2 // poor man’s Neo +#define FMU 3 // FMU layer +#define NHL 4 // Neo’s software layer 4 rebuilt in Hardware + + +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, NEO_GRV, + 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, TG(PMQ), + 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 + NEO_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, + TG(PMN), 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: poor man’s QWERTZ + * based on kaimi’s layout + * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐ + * │ TAB │ 1 │ 2 │ 3 │ 4 │ 5 │ ` │ │ ´ │ 6 │ 7 │ 8 │ 9 │ 0 │ BKSPC │ + * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤ + * │ C │ P │ T │ F │ K │ L │ HOM │ │ END │ B │ A │ S │ G │ V │ Y │ + * ├───────┼─────┼─────┼─────╆─────╅─────┤ E │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤ + * │ Mod3 │ D │ H │ Ö │ O │ I ├─────┤ ├─────┤ U │ - │ Z │ E │ X │ Mod3 │ + * ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│ │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤ + * │ LSHFT │ Ä │ Q │ R │ W │ N │ │ │ │ J │ M │ , │ . │ ẞ │ Shift │ + * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ + * │ CTL │ ALT │ MO1 │ Win │ MO4 │ │ M04 │ Win │ MO1 │ Alt │ CTL │ + * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ + * │ ← │ ↑ │ │ ↓ │ → │ + * ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐ + * │ │ │ ─ │ │ ─ │ │ │ + * │ SPC │ RTN ├─────┤ ├─────┤ RTN │ SPC │ + * │ │ │ HYP │ │ MEH │ │ │ + * └─────┴─────┴─────┘ └─────┴─────┴─────┘ + */ +[PMQ] = KEYMAP( + // left hand + KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL, + DE_C, DE_P, DE_T, DE_F, DE_K, DE_L, KC_HOME, + NEO_L1_L, DE_D, DE_H, DE_OE, DE_O, DE_I, + KC_LSFT, DE_AE, DE_Q, DE_R, DE_W, DE_N, KC_TRNS, + KC_LCTL, KC_LALT,MO(FMU),KC_LGUI,MO(NHL), + 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, DE_B, DE_A, DE_S, DE_G, DE_V, DE_Y, + DE_U, DE_MINS,DE_Z, DE_E, DE_X, NEO_L1_R, + KC_TRNS, DE_J, DE_M, DE_COMM,DE_DOT, DE_SS, KC_RSFT, + MO(NHL),KC_RGUI,MO(FMU),KC_RALT,KC_RCTL, + KC_DOWN, KC_RGHT, + KC_MINS, + MEH_T(KC_NO),KC_ENT,KC_SPC + ), + +/* Layer 2: poor man’s Neo + * based on kaimi’s layout + * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐ + * │ 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 │ MO4 │ │ M04 │ Win │ MO1 │ Alt │ CTL │ + * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ + * │ ← │ ↑ │ │ ↓ │ → │ + * ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐ + * │ │ │ ─ │ │ ─ │ │ │ + * │ SPC │ RTN ├─────┤ ├─────┤ RTN │ SPC │ + * │ │ │ HYP │ │ MEH │ │ │ + * └─────┴─────┴─────┘ └─────┴─────┴─────┘ + */ +[PMN] = KEYMAP( + KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL, + DE_Y, DE_X, DE_V, DE_L, DE_C, DE_W, KC_HOME, + KC_NO, DE_U, DE_I, DE_A, DE_E, DE_O, + KC_LSFT, DE_UE, DE_OE, DE_AE, DE_P, DE_Z, KC_TRNS, + KC_LCTL, KC_LALT,MO(FMU),KC_LGUI,MO(NHL), + 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, DE_K, DE_H, DE_G, DE_F, DE_Q, DE_SS, + DE_S, DE_N, DE_R, DE_T, DE_D, KC_NO, + KC_TRNS, DE_B, DE_M, KC_COMM,KC_DOT, DE_J, KC_RSFT, + MO(NHL),KC_RGUI,MO(FMU),KC_RALT,KC_RCTL, + KC_DOWN, KC_RGHT, + KC_MINS, + MEH_T(KC_NO),KC_ENT,KC_SPC + ), + +/* Layer 3: F-keys, Mouse and Unicode + * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤ + * │ │ │ │ │ ✕ │ │ │ │ │ │ F9 │ F10 │ F11 │ F12 │ │ + * ├───────┼─────┼─────┼─────╆─────╅─────┤ │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤ + * │ │ │ │ │ ✓ │ ├─────┤ ├─────┤ │ F5 │ F6 │ F7 │ F8 │ │ + * ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│ │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤ + * │ │ │ │ │ │ │ │ │ │ │ F1 │ F2 │ F3 │ F4 │ │ + * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ + * │ │ │(MO1)│ │(MO4)│ │(MO4)│ │(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 + ), + +/* Layer 4: Neo’s software layer 4 rebuilt in Hardware + * based on kaimi’s layout + * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤ + * │ │ PgUp│ BSpc│ ↑ │ Del │ PgDn│ │ │ │ │ 7 │ 8 │ 9 │ + │ − │ + * ├───────┼─────┼─────┼─────╆─────╅─────┤ │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤ + * │ │ Home│ ← │ ↓ │ → │ End ├─────┤ ├─────┤ │ 4 │ 5 │ 6 │ , │ . │ + * ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│ │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤ + * │ │ Esc │ Tab │ Ins │ Ret │ Undo│ │ │ │ │ 1 │ 2 │ 3 │ │ │ + * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ + * │ │ │(MO1)│ │(MO4)│ │(MO4)│ │(MO1)│ │ │ + * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ + * │ │ │ │ │ │ + * ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐ + * │ │ │ │ │ │ │ │ + * │ │ ├─────┤ ├─────┤ │ │ + * │ │ │ │ │ │ │ │ + * └─────┴─────┴─────┘ └─────┴─────┴─────┘ + */ +[NHL] = KEYMAP( + // left hand + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_PGUP,KC_BSPC,KC_UP, KC_DELT,KC_PGDN,KC_NO, + KC_NO, KC_HOME,KC_LEFT,KC_DOWN,KC_RGHT,KC_END, + KC_NO, KC_ESC, KC_TAB, KC_INS, KC_ENT, KC_UNDO,KC_TRNS, + KC_NO, KC_NO, KC_TRNS,KC_NO, KC_TRNS, + KC_NO, KC_NO, + KC_NO, + KC_NO, KC_NO, KC_NO, + // right hand + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_7, KC_8, KC_9, DE_PLUS,DE_MINS, + KC_NO, KC_4, KC_5, KC_6, KC_COMM,KC_DOT, + KC_TRNS, KC_NO, KC_1, KC_2, KC_3, KC_NO, KC_NO, + KC_TRNS,KC_NO, KC_TRNS,KC_NO, KC_NO, + KC_NO, KC_NO, + KC_NO, + KC_NO, KC_NO, KC_NO + ), +}; + +const uint16_t PROGMEM fn_actions[] = { + [BASE] = ACTION_FUNCTION(BASE), + [PMQ] = ACTION_FUNCTION(PMQ), + [PMN] = ACTION_FUNCTION(PMN), + [FMU] = ACTION_LAYER_TAP_TOGGLE(FMU), + [NHL] = ACTION_LAYER_TAP_TOGGLE(NHL) +}; + + +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(); + break; + case PMQ: + ergodox_right_led_2_on(); + break; + case PMN: + ergodox_right_led_3_on(); + break; + default: + if(host_keyboard_leds() & (1<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/keyboards/ergodox/keymaps/colemak/readme.md b/keyboards/ergodox/keymaps/colemak/readme.md new file mode 100644 index 000000000..e28b2f085 --- /dev/null +++ b/keyboards/ergodox/keymaps/colemak/readme.md @@ -0,0 +1,4 @@ +# ErgoDox EZ Colemak Configuration + +Colemak layout with same layers as default ergodox ez keymap. + diff --git a/keyboards/ergodox/keymaps/colemak_osx_pc_no/keyboard-layout.png b/keyboards/ergodox/keymaps/colemak_osx_pc_no/keyboard-layout.png new file mode 100644 index 000000000..57df5a1f9 Binary files /dev/null and b/keyboards/ergodox/keymaps/colemak_osx_pc_no/keyboard-layout.png differ diff --git a/keyboards/ergodox/keymaps/colemak_osx_pc_no/keymap.c b/keyboards/ergodox/keymaps/colemak_osx_pc_no/keymap.c new file mode 100644 index 000000000..a909ed3a4 --- /dev/null +++ b/keyboards/ergodox/keymaps/colemak_osx_pc_no/keymap.c @@ -0,0 +1,264 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_norwegian.h" + +#define BASE 0 // default layer +#define BASE_MAC 1 // default layer mac +#define NUMB_SYMB 2 // numbers and symbols +#define NUMB_SYMB_MAC 3 // numbers and symbols mac +#define FUNCTION 4 // function keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Keymap 0: Basic layer PC + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | \ | [ | ] | { | } | * |Mac/PC| | ^ | $ | ( | ) | < | > | @ | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | ? | Q | W | F | P | G | " | | ' | J | L | U | Y | Å | Æ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | : | A | R | S | T | D |------| |------| H | N | E | I | O | Ø | + * |--------+------+------+------+------+------| ; | | = |------+------+------+------+------+--------| + * | ! | Z | X | C | V | B | | | | K | M | RIGHT| DOWN | UP | _ | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | Func | Lclk | Rclk | TAB |,/CTRL| | LEFT | Esc | ` | # | Num | + * `----------------------------------' `----------------------------------' + * ,-------------. ,--------------. + * | & | | | |Insert| / | + * ,------|------|------| |------+-------+------. + * | | | + | | Del | | | + * | Shift| ./Spc|------| |------| Enter |Space| + * | | |-/Alt | | Bspc | | | + * `--------------------' `---------------------' + */ +[BASE] = KEYMAP( + // left hand + NO_BSLS, NO_LBRC, NO_RBRC, NO_LCBR, NO_RCBR, NO_ASTR, TG(1), + NO_QUES, KC_Q, KC_W, KC_F, KC_P, KC_G, NO_QUO2, + NO_COLN, KC_A, KC_R, KC_S, KC_T, KC_D, + KC_EXLM, KC_Z, KC_X, KC_C, KC_V, KC_B, NO_SCLN, + MO(4), KC_BTN1, KC_BTN2, KC_TAB,GUI_T(KC_COMMA), + NO_AMPR, NO_PIPE, + NO_PLUS, + KC_FN1,CTL_T(KC_DOT),ALT_T(NO_MINS), + // right hand + KC_FN5, NO_DLR, NO_LPRN, NO_RPRN ,KC_FN3, KC_FN4,NO_AT, + NO_APOS, KC_J, KC_L, KC_U, KC_Y, NO_AA, NO_AE , + KC_H, KC_N, KC_E, KC_I, KC_O, NO_OSLH, + NO_EQL, KC_K, KC_M, KC_RIGHT, KC_DOWN, KC_UP, NO_UNDS, + KC_LEFT, KC_ESC, KC_FN7, KC_HASH, MO(2), + KC_INSERT, NO_SLSH, + KC_DELT, + KC_BSPC,KC_ENT,KC_SPC + ), +/* Keymap 1: Basic layer MACS (Same as pc, except for cmd/ctrl, which are swapped) + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | \ | | | { | } | | | | | $ | | | < | > | @ | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | ' |------+------+------+------+------+--------| + * | | | | | | |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | Func | | | |,/Ctrl| | | | ` | | Num | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | |./Cmd |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[BASE_MAC] = KEYMAP( + NO_BSLS_MAC, KC_TRNS,KC_TRNS, NO_LCBR_MAC,NO_RCBR_MAC, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, CTL_T(KC_COMMA), + KC_TRNS, NO_PIPE_MAC, + KC_TRNS, + KC_TRNS,GUI_T(KC_DOT) , KC_TRNS, + // right hand + KC_TRNS, NO_DLR_MAC, KC_TRNS,KC_TRNS,KC_FN8, KC_FN9,NO_AT_MAC, + NO_APOS_MAC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, NO_GRV_MAC, KC_TRNS, MO(3), + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), + +/* Keymap 2: Number ++ layer pc + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | % | | | | | | ~ | ´ | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | 3 | 2 | 1 | 0 | |------| |------| | 5 | 6 | 7 | 8 | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | 4 | | | | | | 9 | END | PGDWN| PGUP | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | HOME | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[NUMB_SYMB] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_PERC, KC_TRNS , KC_TRNS, + KC_TRNS, KC_3 , KC_2 , KC_1 , KC_0 , KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_4, KC_TRNS, 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_FN2, KC_FN6 , KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_5, KC_6, KC_7, KC_8, KC_TRNS, + KC_TRNS, KC_HOME, KC_9, KC_END, KC_PGDN, KC_PGUP, KC_TRNS, + KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), + +/* Keymap 3: Number ++ layer mac. Some keys have to be repeated from the pc symbol layer, since transient keys inherit from the layer we jump from, not the layer above. + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | % | | | | | | ~ | ´ | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | 3 | 2 | 1 | 0 | |------| |------| | 5 | 6 | 7 | 8 | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | 4 | | | | | | 9 | END | PGDWN| PGUP | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | HOME | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[NUMB_SYMB_MAC] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_PERC, KC_TRNS , KC_TRNS, + KC_TRNS, KC_3 , KC_2 , KC_1 , KC_0 , KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_4, KC_TRNS, 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_FN2, KC_FN10, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_5, KC_6, KC_7, KC_8, KC_TRNS, + KC_TRNS, KC_HOME, KC_9, KC_END, KC_PGDN, KC_PGUP, KC_TRNS, + KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), + +/* Keymap 4: Function layer mac + pc + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | F3 | F2 | F1 | | |------| |------| | F5 | F6 | F7 | F8 | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | F4 | | | | | | F9 | F10 | F11 | F12 | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[FUNCTION] = KEYMAP( + 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 , KC_TRNS, + KC_TRNS, KC_F3 , KC_F2 , KC_F1 , KC_TRNS , KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F4, KC_TRNS, 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_F5, KC_F6, KC_F7, KC_F8, KC_TRNS, + KC_TRNS, NO_TILD, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +) +}; + +enum macro_id { + TILDE_NO, LESS_NO, GRTR_NO, CIRC_NO, ACUT_NO, GRV_NO, LESS_NO_MAC, GRTR_NO_MAC, ACUT_NO_MAC +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_MODS_ONESHOT(MOD_LSFT), // Sticky shift light. Tap for the next keypress to be shifted. Hold for regular shift. + [2] = ACTION_MACRO(TILDE_NO), // Completed ~ character(pc and mac), no space needed. + [3] = ACTION_MACRO(LESS_NO), // < completed on keypress down, to avoid shifting the next character if it is not released first. + [4] = ACTION_MACRO(GRTR_NO), // > completed on keypress down, to avoid shifting the next character if it is not released first. + [5] = ACTION_MACRO(CIRC_NO), // Completed ^ character, no space needed. + [6] = ACTION_MACRO(ACUT_NO), // Completed ´ character, no space needed. + [7] = ACTION_MACRO(GRV_NO), // Completed ` character, no space needed. + [8] = ACTION_MACRO(LESS_NO_MAC), // < completed on keypress down, to avoid same button problem when typing <> quickly + [9] = ACTION_MACRO(GRTR_NO_MAC), // > completed on keypress down, to avoid same button problem when typing <> quickly + [10] = ACTION_MACRO(ACUT_NO_MAC), // Completed ´ character, no space needed +}; + + + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + keyevent_t event = record->event; + + switch (id) { + case TILDE_NO: + return (event.pressed ? MACRO( D(RALT), T(RBRC), U(RALT), T(SPC), END ) : MACRO_NONE); + case LESS_NO: + return (event.pressed ? MACRO( T(NUBS), END ) : MACRO_NONE); + case GRTR_NO: + return (event.pressed ? MACRO( D(LSFT), T(NUBS), U(LSFT), END ) : MACRO_NONE); + case CIRC_NO: + return (event.pressed ? MACRO( D(LSFT), T(RBRC), U(LSFT), T(SPC), END ) : MACRO_NONE); + case ACUT_NO: + return (event.pressed ? MACRO( D(RALT), T(EQL), U(RALT), T(SPC), END ) : MACRO_NONE); + case GRV_NO: + return (event.pressed ? MACRO( D(LSFT), T(EQL), T(SPC), U(LSFT), END ) : MACRO_NONE); + case LESS_NO_MAC: + return (event.pressed ? MACRO( T(GRV), END ) : MACRO_NONE); + case GRTR_NO_MAC: + return (event.pressed ? MACRO( D(LSFT), T(GRV), U(LSFT), END ) : MACRO_NONE); + case ACUT_NO_MAC: + return (event.pressed ? MACRO( T(EQL), T(SPC), END ) : MACRO_NONE); + } + return MACRO_NONE; +}; diff --git a/keyboards/ergodox/keymaps/colemak_osx_pc_no/readme.md b/keyboards/ergodox/keymaps/colemak_osx_pc_no/readme.md new file mode 100644 index 000000000..48f095cae --- /dev/null +++ b/keyboards/ergodox/keymaps/colemak_osx_pc_no/readme.md @@ -0,0 +1,23 @@ +# Norwegian Colemak setup with osx/pc toggle + +## Motivation +I wanted a Norwegian Colemak setup that worked in a similar way on both my Mac and PC. I also wanted it to translate from a standard Norwegian keyboard OS setup. + +## Overview +The setup is created to be programmer friendly. +- Most of the symbols used in code can be activated without using layers or shift key. +- You can reach the IDE/OS shortcut activators(Ctrl, Win/Cmd, Alt, Shift) with the thumb. +- Navigation is prioritized, arrows are right below the home row. + +## PC/Mac toggle +The default setup is for Norwegian keyboard setting(not colemak variants) on a PC(Windows or Linux). Use the Mac/PC toggle button to switch between OSX and PC setup. The settings will be reverted to PC setup each time you restart/connect the keyboard. + +## Layers +Numbers and function buttons are on their own layers. The easiest way to switch layers(at least with my hands) in this setup, is to push your hand right below the little finger, on the layer switches. You will then have all your fingers free to type numbers or press function buttons. + +## Shift-key +Tap for the next character to be shifted, hold down for regular shift functionality + +## Layout + +![keyboard-layout](keyboard-layout.png) diff --git a/keyboards/ergodox/keymaps/csharp_dev/csharp_dev.png b/keyboards/ergodox/keymaps/csharp_dev/csharp_dev.png new file mode 100644 index 000000000..6fba568fc Binary files /dev/null and b/keyboards/ergodox/keymaps/csharp_dev/csharp_dev.png differ diff --git a/keyboards/ergodox/keymaps/csharp_dev/csharp_dev_legend.png b/keyboards/ergodox/keymaps/csharp_dev/csharp_dev_legend.png new file mode 100644 index 000000000..b0a1c513c Binary files /dev/null and b/keyboards/ergodox/keymaps/csharp_dev/csharp_dev_legend.png differ diff --git a/keyboards/ergodox/keymaps/csharp_dev/keymap.c b/keyboards/ergodox/keymaps/csharp_dev/keymap.c new file mode 100644 index 000000000..e9648ede7 --- /dev/null +++ b/keyboards/ergodox/keymaps/csharp_dev/keymap.c @@ -0,0 +1,239 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define FKEYS 1 // F keys + macros + +#define MACRO_PUBLIC 10 +#define MACRO_PRIVATE 11 + +#define MACRO_STATIC 12 +#define MACRO_CONST 13 + +#define MACRO_VOID 14 +#define MACRO_VAR 15 +#define MACRO_STRING 16 + +#define MACRO_INT 17 +#define MACRO_FLOAT 18 +#define MACRO_BOOL 19 + +#define MACRO_RETURN 20 +#define MACRO_NULL 21 +#define MACRO_BREAK 22 + +#define MACRO_TODO 23 +#define MACRO_NEW 24 +#define MACRO_PARENTHESE 25 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ( | 1 | 2 | 3 | 4 | 5 | " | | Save | 6 | 7 | 8 | 9 | 0 | [ | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | ) | Q | W | E | R | T |Bkspa | | Del | Y | U | I | O | P | ] | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | { | A | S | D | F | G |------| |------| H | J | K | L | _ | Redo | + * |--------+------+------+------+------+------| / | | ; |------+------+------+------+------+--------| + * | } |Z~Alt | X | C | V | B | | | | N | M | ' | ! | ? | Undo | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Tab~CL| < | > | | | & | | = | + | - | * | L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * |. ~L1 | , | |Home |End~L1| + * ,------|------|------| |------+------+------. + * | | | Copy | | UP | | | + * | Enter| Space|------| |------| Space|Enter | + * | ~WIN | ~LSFT| Past | | DOWN | ~LSFT| ~WIN | + * `--------------------' `--------------------' + */ +// 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_LPRN, KC_1, KC_2, KC_3, KC_4, KC_5, LSFT(KC_QUOTE), + KC_RPRN, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_BSPACE, + KC_LCBR, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_RCBR, ALT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_SLASH, + CTL_T(KC_TAB), LSFT(KC_COMMA),LSFT(KC_DOT),KC_PIPE,KC_AMPR, + LT(1,KC_DOT), KC_COMM, + LCTL(KC_C), + GUI_T(KC_ENTER),SFT_T(KC_SPACE),LCTL(KC_V), + // right hand + LCTL(KC_S) , KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRACKET, + KC_DELETE, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRACKET, + KC_H, KC_J, KC_K, KC_L, KC_UNDS,LCTL(KC_Y), + KC_SCOLON,KC_N, KC_M, KC_QUOTE ,KC_EXLM , LSFT(KC_SLASH), LCTL(KC_Z), + KC_EQUAL,KC_PLUS , KC_MINUS,KC_ASTR , TG(1), + KC_HOME, LT(1,KC_END), + KC_UP, + KC_DOWN,SFT_T(KC_SPACE), GUI_T(KC_ENTER) + ), + +/* Keymap 1: F keys + macros + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ESC | F1 | F2 | F3 | F4 | F5 | ` | | Calc | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab |Public|Static|string|int |return| | | |//TODO| | | | | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | |Privat|Const |var |float |null |------| |------|new | | | | | | + * |--------+------+------+------+------+------| \ | | ~ |------+------+------+------+------+--------| + * | | | |void |bool |break;| | | |(); | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | WIN | Alt | | | | PgUp | PgDw | Ins | PtSc | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | Cut | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| Left | Right| + * | | | | | | | | + * `--------------------' `--------------------' + */ +// FKEYS + MACROS +[FKEYS] = KEYMAP( + // left hand + KC_ESCAPE,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_GRAVE, + KC_TAB,M(MACRO_PUBLIC),M(MACRO_STATIC), M(MACRO_STRING),M(MACRO_INT),M(MACRO_RETURN),KC_TRNS, + KC_TRNS,M(MACRO_PRIVATE),M(MACRO_CONST), M(MACRO_VAR),M(MACRO_FLOAT),M(MACRO_NULL), + KC_TRNS,KC_TRNS,KC_TRNS,M(MACRO_VOID),M(MACRO_BOOL),M(MACRO_BREAK),KC_BSLASH, + KC_TRNS,KC_LGUI,KC_LALT,KC_TRNS,KC_TRNS, + KC_TRNS,LCTL(KC_X), + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_CALCULATOR, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, M(MACRO_TODO), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, + M(MACRO_NEW), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TILD, M(MACRO_PARENTHESE), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_PGUP,KC_PGDOWN, KC_INSERT, KC_PSCREEN, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_LEFT, KC_RIGHT +), + + +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(FKEYS) // FN1 - Momentary Layer 1 +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case MACRO_PUBLIC: + if (record->event.pressed) { + return MACRO( T(P), T(U), T(B), T(L), T(I), T(C), T(SPACE),END); + } + break; + case MACRO_PRIVATE: + if (record->event.pressed) { + return MACRO( T(P), T(R), T(I), T(V), T(A), T(T), T(E), T(SPACE),END); + } + break; + case MACRO_STATIC: + if (record->event.pressed) { + return MACRO( T(S), T(T), T(A), T(T), T(I), T(C), T(SPACE), END); + } + break; + case MACRO_CONST: + if (record->event.pressed) { + return MACRO( T(C), T(O), T(N), T(S), T(T), T(SPACE), END); + } + break; + case MACRO_VOID: + if (record->event.pressed) { + return MACRO( T(V), T(O), T(I), T(D), T(SPACE), END); + } + break; + case MACRO_VAR: + if (record->event.pressed) { + return MACRO( T(V), T(A), T(R), T(SPACE), END); + } + break; + case MACRO_STRING: + if (record->event.pressed) { + return MACRO( T(S), T(T), T(R), T(I), T(N), T(G), T(SPACE), END); + } + break; + case MACRO_BOOL: + if (record->event.pressed) { + return MACRO( T(B), T(O), T(O), T(L), T(SPACE), END); + } + break; + case MACRO_INT: + if (record->event.pressed) { + return MACRO( T(I), T(N), T(T), T(SPACE), END); + } + break; + case MACRO_FLOAT: + if (record->event.pressed) { + return MACRO( T(F), T(L), T(O), T(A),T(T),T(SPACE), END); + } + break; + case MACRO_RETURN: + if (record->event.pressed) { + return MACRO( T(R), T(E), T(T), T(U),T(R),T(N), END); + } + break; + case MACRO_NULL: + if (record->event.pressed) { + return MACRO( T(N), T(U), T(L), T(L), END); + } + case MACRO_BREAK: + if (record->event.pressed) { + return MACRO( T(B), T(R), T(E), T(A), T(K), T(SCOLON), END); + } + break; + case MACRO_TODO: + if (record->event.pressed) { + return MACRO( T(SLASH), T(SLASH), D(LSHIFT) ,T(T), T(O), T(D), T(O),U(LSHIFT), T(SPACE),END); + } + break; + case MACRO_NEW: + if (record->event.pressed) { + return MACRO( T(N), T(E), T(W), T(SPACE), END); + } + break; + case MACRO_PARENTHESE: + if (record->event.pressed) { + return MACRO( D(LSHIFT),T(9), T(0),U(LSHIFT), T(SCOLON), END); + } + 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/keyboards/ergodox/keymaps/csharp_dev/readme.md b/keyboards/ergodox/keymaps/csharp_dev/readme.md new file mode 100644 index 000000000..96af077ad --- /dev/null +++ b/keyboards/ergodox/keymaps/csharp_dev/readme.md @@ -0,0 +1,47 @@ +# ErgoDox EZ C# Developer configuration + +## Changelog + +* Feb 12, 2016 (V1): + * First version commit +* Mar 20, 2016 (V2): + * Removed "Classic QWERTY" layer, inverted GUI and SHIFT on Hold for Space and Enter + +## About +This layout was conceived in an attempt to optimise keyboard layout for developers (C# more specifically, but it can work with most of other languages), and limit the keys required to perform the most frequent actions. + +I came to the realization that my main tool as a developer, the qwerty keyboard was something that did not evolved at its core in almost 150 years. +There are a lot of reasons to this, and it would be a massive entreprise to change a standard so strongly anchored, but I wanted to give it a try and see how would look an input device dedicated to developers, more specifically a C# developer in my case. +The biggest flaw in standard QWERTY keyboards was that I always needed to perform key combination to access commonly used characters or actions. Think about it a minute, how many times a day do you press a modifier key such as Ctrl or Shift, it's insane and could be so easily optimized to require only one key press. + +Then I came across the ErgoDox EZ project, that allowed a full customization of its firmware, and a unique 2 parts design. + +![CSharpDev](csharp_dev_legend.png) + +## Layout design principles +* No key combination required for the most common input characters ( (),[],{},<> ... ) +* No key combination required for the most common actions (copy/paste/undo/save) +* Regroup characters by usage ( + - * = ...) +* Easy access to the most commonly used characters: ; / " . , +* Preregistered macro for the most common C# langage instructions: public / private / string / int / float ... + +## Why is it specific to C Sharp +I defined the characters priority based on their usage in C# language, most of this characters are also used in other coding languages but it may require some tweaking. +For example there is no direct access to ~ or $ keys which can be very common in some languages. +Note it is also specific to Windows environement as the shortcut used in action keys would not work on Mac Os + +## In usage +It was relatively easy to get used to the layout, but it's hard for me to define how easy it was as I was getting used to a blank Ergodox keyboard at the same time. +Still it's extremely satisfying to Save your file with just one easily accessible key or to have one big key to end your code line ( ; ) + +## Improvements +This layout was shared after a bunch of iterations and only once I was happy with it. +Still there are many way to improve or iterate on this: +* Make it language agnostic +* Check and compile language's keyboard's heatmaps to statistically define keys priority (e.g. https://dzone.com/articles/most-pressed-keys-various ) +* QWERTY is still not the most efficient typing layout, I would like to create a Dvorak based similar layout in a near futur + +## Issues +One of the issues encountered while creating this layout was that I did not find a way to have a key to send a modifier on hold, and a key combination while pressed (e.g. I can't set a Key to do Save (Ctrl + S) when pressed and Shift modifier when hold ) + + diff --git a/keyboards/ergodox/keymaps/dave/keymap.c b/keyboards/ergodox/keymaps/dave/keymap.c new file mode 100644 index 000000000..e9480af3e --- /dev/null +++ b/keyboards/ergodox/keymaps/dave/keymap.c @@ -0,0 +1,199 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define PROG 1 // programming +#define NAVI 2 // navigation + +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 | PrtS | | CtAl | CtAl | + * ,------+------+------| |------+------+------. + * | | | L1 | | L1 | | | + * | Spce | ~L2 +------| |------+ ~L1 | Spce | + * | | | LGui | | RGui | | | + * `--------------------' `--------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, 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_PSCREEN, + 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_LBRC,KC_RBRC,KC_NO, CTL_T(KC_QUOT), + MT(0x5, KC_NO), 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 | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// PROGRAMMING +[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 | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | L0 | | L0 | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// NAVIGATION +[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_TRNS, KC_TRNS, + 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) { + +}; + +// 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); + } + } + + +}; diff --git a/keyboards/ergodox/keymaps/dave/readme.md b/keyboards/ergodox/keymaps/dave/readme.md new file mode 100644 index 000000000..aa0f9bd19 --- /dev/null +++ b/keyboards/ergodox/keymaps/dave/readme.md @@ -0,0 +1,38 @@ +This keymap is my preferred layout (after a certain amount of experimentation). +The rationale behind the design is as follows: + +I grew up typing from a very early age and thus never learned the "correct" way +to touch type (essentially, I'm self-taught). As a, result my fingers don't +tend to stay on the "home keys" and occasionally my right hand wants to type +keys that are on the left of the keyboard, and vice versa. + +Hence, despite liking the idea of split keyboards in principle, I've never been +able to get on with them because the split simply doesn't work with my style of +typing. The Ergodox solves this neatly by virtue of having a few extra keys in +the "middle" of the keyboard which I can utilise for deliberate redundancy. +Thus in this keymap there are two "6" keys (one on the left, one on the right) +and likewise Y, H, G, and B are all duplicated to enable one-handed patterns +that I use frequently (e.g. "byobu" with the right hand, "yes" with the left, +etc.). + +I occasionally use the numeric pad for data entry, thus this is duplicated +under the natural home position of the right hand in layer 1 (activated by +holding one of the right thumb buttons), while the cursor keys are duplicated +under the classic WASD gaming layout of the left hand in layer 2 (activated by +holding one of the left thumb buttons). Various other useful keys also appear +in these layers (brackets and symbols for coding in layer 1, navigation and +F-keys in layer 2, etc.). + +Finally, modifier keys like Ctrl, Shift, and Alt, along with Backspace and +Enter are all in traditional locations in an effort to reuse existing muscle +memory as much as possible (keys like =, #, and ' are in layer 1). The layout +maps are in the comments of keymap_dave.c so I won't bother duplicating them +here. + +Oh, and the LEDs are rather pimped ... because I could! + +Anyway, although I'm sure this keymap won't be to many people's taste you might +find some interesting ideas in here for your own layouts. Do tweet me +(@waveform80) if you have any questions / suggestions / bugs. + +Dave. diff --git a/keyboards/ergodox/keymaps/default/default.png b/keyboards/ergodox/keymaps/default/default.png new file mode 100644 index 000000000..6575f7b5e Binary files /dev/null and b/keyboards/ergodox/keymaps/default/default.png differ diff --git a/keyboards/ergodox/keymaps/default/default_highres.png b/keyboards/ergodox/keymaps/default/default_highres.png new file mode 100644 index 000000000..7d9f045f4 Binary files /dev/null and b/keyboards/ergodox/keymaps/default/default_highres.png differ diff --git a/keyboards/ergodox/keymaps/default/keymap.c b/keyboards/ergodox/keymaps/default/keymap.c new file mode 100644 index 000000000..f1a83f4e7 --- /dev/null +++ b/keyboards/ergodox/keymaps/default/keymap.c @@ -0,0 +1,182 @@ +#include "ergodox.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|' / Cmd | + * |--------+------+------+------+------+------| 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),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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * |Version | 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 + M(0), 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) { + SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); + } + 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/keyboards/ergodox/keymaps/default/readme.md b/keyboards/ergodox/keymaps/default/readme.md new file mode 100644 index 000000000..8f6dba45e --- /dev/null +++ b/keyboards/ergodox/keymaps/default/readme.md @@ -0,0 +1,10 @@ +# ErgoDox EZ Default Configuration + +## Changelog + +* Feb 2, 2016 (V1.1): + * Made the right-hand quote key double as Cmd/Win on hold. So you get ' when you tap it, " when you tap it with Shift, and Cmd or Win when you hold it. You can then use it as a modifier, or just press and hold it for a moment (and then let go) to send a single Cmd or Win keystroke (handy for opening the Start menu on Windows). + +This is what we ship with out of the factory. :) The image says it all: + +![Default](default_highres.png) diff --git a/keyboards/ergodox/keymaps/default_osx/default_osx_highres.png b/keyboards/ergodox/keymaps/default_osx/default_osx_highres.png new file mode 100644 index 000000000..04f46bbd5 Binary files /dev/null and b/keyboards/ergodox/keymaps/default_osx/default_osx_highres.png differ diff --git a/keyboards/ergodox/keymaps/default_osx/keymap.c b/keyboards/ergodox/keymaps/default_osx/keymap.c new file mode 100644 index 000000000..c57ffbb88 --- /dev/null +++ b/keyboards/ergodox/keymaps/default_osx/keymap.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(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_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 +[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/keyboards/ergodox/keymaps/default_osx/readme.md b/keyboards/ergodox/keymaps/default_osx/readme.md new file mode 100644 index 000000000..aa749aac9 --- /dev/null +++ b/keyboards/ergodox/keymaps/default_osx/readme.md @@ -0,0 +1,8 @@ +# 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). + +![default osx](default_osx_highres.png) diff --git a/keyboards/ergodox/keymaps/dragon788/keymap.c b/keyboards/ergodox/keymaps/dragon788/keymap.c new file mode 100644 index 000000000..3aec8c6cf --- /dev/null +++ b/keyboards/ergodox/keymaps/dragon788/keymap.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/keyboards/ergodox/keymaps/dvorak/dvorak.png b/keyboards/ergodox/keymaps/dvorak/dvorak.png new file mode 100644 index 000000000..cb8316309 Binary files /dev/null and b/keyboards/ergodox/keymaps/dvorak/dvorak.png differ diff --git a/keyboards/ergodox/keymaps/dvorak/keymap.c b/keyboards/ergodox/keymaps/dvorak/keymap.c new file mode 100644 index 000000000..22947327d --- /dev/null +++ b/keyboards/ergodox/keymaps/dvorak/keymap.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/keyboards/ergodox/keymaps/dvorak_intl_squisher/keyboard-layout0.png b/keyboards/ergodox/keymaps/dvorak_intl_squisher/keyboard-layout0.png new file mode 100644 index 000000000..6a36f9bfa Binary files /dev/null and b/keyboards/ergodox/keymaps/dvorak_intl_squisher/keyboard-layout0.png differ diff --git a/keyboards/ergodox/keymaps/dvorak_intl_squisher/keyboard-layout1.png b/keyboards/ergodox/keymaps/dvorak_intl_squisher/keyboard-layout1.png new file mode 100644 index 000000000..c6e6d913c Binary files /dev/null and b/keyboards/ergodox/keymaps/dvorak_intl_squisher/keyboard-layout1.png differ diff --git a/keyboards/ergodox/keymaps/dvorak_intl_squisher/keyboard-layout2.png b/keyboards/ergodox/keymaps/dvorak_intl_squisher/keyboard-layout2.png new file mode 100644 index 000000000..23f56ff4c Binary files /dev/null and b/keyboards/ergodox/keymaps/dvorak_intl_squisher/keyboard-layout2.png differ diff --git a/keyboards/ergodox/keymaps/dvorak_intl_squisher/keymap.c b/keyboards/ergodox/keymaps/dvorak_intl_squisher/keymap.c new file mode 100644 index 000000000..82f55b4bc --- /dev/null +++ b/keyboards/ergodox/keymaps/dvorak_intl_squisher/keymap.c @@ -0,0 +1,185 @@ +#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 | BrBck| | Play | 6 | 7 | 8 | 9 | 0 | \ / L2 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Esc | ' | , | . | P | Y | Del | | Ins | F | G | C | R | L | / | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | BkSp | A | O | E | U | I |------| |------| D | H | T | N | S | - | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |:/Ctrl| Q | J | K | X | | | | B | M | W | V |Z/Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| LAlt | LGui | Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,---------------. + * | App | L1 | | L2 |PrntScr | + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space| Tab |------| |------| AltShf |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_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_WBAK, + KC_ESC, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_DELT, + 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_LALT, KC_LGUI, KC_LEFT,KC_RGHT, + CTL_T(KC_APP), TG(1), + KC_HOME, + KC_SPC,KC_TAB,KC_END, + // right hand + KC_MPLY, KC_6, KC_7, KC_8, KC_9, KC_0, LT(MDIA, KC_BSLS), + KC_INS, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, + KC_D, KC_H, KC_T, KC_N, 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, + TG(2), KC_PSCREEN, + KC_PGUP, + KC_PGDN,RALT(KC_RSFT), KC_ENT + ), +/* Keymap 1: Symbol & Media Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Prev | Next | | | . | 0 | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | |VolUp | | | + * | | |------| |------| Mute | | + * | | | | |VolDn | | | + * `--------------------' `--------------------' + */ +// 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_MPRV,KC_MNXT, + 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_VOLU, + KC_VOLD, KC_MUTE, KC_TRNS +), +/* Keymap 2: QWERTY Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | Q | W | E | R | T | | | | Y | U | I | O | P | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | A | S | D | F | G |------| |------| H | J | K | L | ; | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +KEYMAP( // layer 0 : default + // left hand + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS, + KC_TRNS, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_TRNS, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, 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_Y, KC_U, KC_I, KC_O, KC_P, KC_TRNS, + KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_TRNS, + KC_TRNS, KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), 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) +}; + +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/keyboards/ergodox/keymaps/dvorak_intl_squisher/readme.md b/keyboards/ergodox/keymaps/dvorak_intl_squisher/readme.md new file mode 100644 index 000000000..984106ff4 --- /dev/null +++ b/keyboards/ergodox/keymaps/dvorak_intl_squisher/readme.md @@ -0,0 +1,29 @@ +# ErgoDox EZ Dvorak International Squisher + +Dvorak layout adjusted with several (linux) applications in mind: + +* Easier Escape for VIM +* Windows/Super key for awesome WM +* Alt+Shift for international characters +* PrintScreen for sys-rq +* Insert for the X11 clip-board + +Major layer changes: + +* Common multimedia keys are integrated into layer 0, less common into layer 1 +* No mouse keys +* Layer 2 is qwerty (for easier gaming & less fortunate keyboard users) + +Known issues: + +* Alt+Shift does not work reliably (depends on the X11 kb layout? Not + entirely clear...) + +![layer0](keyboard-layout0.png) +![layer1](keyboard-layout1.png) +![layer2](keyboard-layout2.png) + +## Changelog + +* 2016-03-29 + * Initial release diff --git a/keyboards/ergodox/keymaps/dvorak_spanish/keymap.c b/keyboards/ergodox/keymaps/dvorak_spanish/keymap.c new file mode 100755 index 000000000..6eb864b44 --- /dev/null +++ b/keyboards/ergodox/keymaps/dvorak_spanish/keymap.c @@ -0,0 +1,284 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +/****************************************************************************************** + * SPANISH DVORAK LAYOUT (see http://djelibeibi.unex.es/dvorak/) + * Layer 1: auxiliary keys + * Layer 2: full qwerty layout + ****************************************************************************************** + * IMPORTANT: Software layout must be set to SPANISH QWERTY to work properly + *****************************************************************************************/ + +// LAYERS +#define BASE 0 // dvorak layout (default) +#define AUX 1 // auxiliary keys +#define QWERTY 2 // qwerty layout + +// MACROS +#define OBRACE 0 // key { or shift +#define CBRACE 1 // key } or shift +#define OBRACK 2 // key [ or left alt +#define CBRACK 3 // key ] or left alt +#define CAPS 4 // caps lock + +// LEDS +#define USB_LED_NUM_LOCK 0 +#define USB_LED_CAPS_LOCK 1 +#define USB_LED_SCROLL_LOCK 2 +#define USB_LED_COMPOSE 3 +#define USB_LED_KANA 4 + +// TIMERS +#define KEY_TAP_FAST 85 +#define KEY_TAP_SLOW 95 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Base layer + * Keys with double values (like Esc/Ctrl) correspond to the 'tapped' key and the 'held' key, respectively + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | \ | 1 | 2 | 3 | 4 | 5 | <> | | ¡ | 6 | 7 | 8 | 9 | 0 | ' | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | F1/~L1 | . | , | Ñ | P | Y |MEH_T | | L1 | F | G | C | H | L |ALL_T/+ | + * |--------+------+------+------+------+------| DEL | | ~L1 |------+------+------+------+------+--------| + * |Esc/Ctrl| A | O | E | U | I |------| |------| D | R | T | N | S |'/RCtrl | + * |--------+------+------+------+------+------| LGUI | | RALT |------+------+------+------+------+--------| + * | {/LSft | - | Q | J | K | X | | | | B | M | W | V | Z | }/RSft | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |[/LALT| HOME |PGDOWN| PGUP | END | | LEFT | DOWN | UP |RIGHT |]/LALT| + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * |F5/CAG|F6/~L1| |F7/~L1|F8/CAG| + * ,------|------|------| |------+--------+------. + * | | |F4/CA | |F11/CA| | | + * | ENTER| TAB |------| |------| BSPC | SPACE| + * | | |F3/SA | |F12/SA| | | + * `--------------------' `----------------------' + * CAG = CTRL-ALT-GUI + * CA = CTRL-ALT + * SA = SHIFT-ALT + * + */ +[BASE] = KEYMAP( + // left hand + KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NONUS_BSLASH, + LT(AUX, KC_F1), KC_DOT, KC_COMM,KC_SCLN,KC_P, KC_Y, MEH_T(KC_DEL), + CTL_T(KC_ESC), KC_A, KC_O, KC_E, KC_U, KC_I, + M(OBRACE), KC_SLSH,KC_Q, KC_J, KC_K, KC_X, KC_LGUI, + M(OBRACK), KC_HOME,KC_PGDN,KC_PGUP,KC_END, + LCAG_T(KC_F5), LT(AUX, KC_F6), + MT((MOD_LALT | MOD_LCTL), KC_F4), + KC_ENT,KC_TAB,MT((MOD_LALT | MOD_LSFT), KC_F3), + // right hand + KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, + KC_FN1, KC_F, KC_G, KC_C, KC_H, KC_L, ALL_T(KC_RBRACKET), + KC_D, KC_R, KC_T, KC_N, KC_S, CTL_T(KC_QUOTE), + KC_RALT, KC_B, KC_M, KC_W, KC_V, KC_Z, M(CBRACE), + KC_LEFT,KC_DOWN,KC_UP, KC_RGHT,M(CBRACK), + LT(AUX, KC_F7), LCAG_T(KC_F8), + MT((MOD_LALT | MOD_LCTL), KC_F11), + MT((MOD_LALT | MOD_LSFT), KC_F12),KC_BSPC, KC_SPC + ), +/* Keymap 1: Aux layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | SLEEP | PWR | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | < | > | MsUp | | | | | ~L0 | | 7 | 8 | 9 | * | `^ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | 4 | 5 | 6 | + | Ç | + * |--------+------+------+------+------+------| | |PSCR |------+------+------+------+------+--------| + * |CAPSLOCK| | | | | | | | | | 1 | 2 | 3 | / | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |CTRL-S|CTRL-Z|CTRL-X|CTRL-C|CTRL-V| | | . | 0 | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | Play | + * ,------|------|------| |------+------+------. + * | | | | | VolUp| | | + * | Lclk | Rclk |------| |------| Prev | Next | + * | | | L2 | | VolDn| | | + * `--------------------' `--------------------' + */ +[AUX] = KEYMAP( + // left hand + KC_NO , KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_SLEP, + KC_TRNS, KC_NONUS_BSLASH, LSFT(KC_NONUS_BSLASH), KC_MS_U, KC_NO, KC_NO, KC_NO, + KC_NO , KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO , + M(CAPS), KC_NO, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO, + LCTL(KC_S), LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), + KC_NO , KC_TRNS, + KC_NO, + KC_BTN1, KC_BTN2, TG(QWERTY), + // right hand + KC_PWR, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_NO, KC_7, KC_8, KC_9, KC_PAST, KC_LBRACKET, + KC_NO, KC_4, KC_5, KC_6, KC_PPLS, KC_BSLASH, + KC_PSCR, KC_NO, KC_1, KC_2, KC_3, KC_PSLS, KC_NO, + KC_NO ,KC_DOT, KC_0, KC_PEQL, KC_NO, + KC_TRNS, KC_MPLY, + KC_VOLU, + KC_VOLD, KC_MPRV, KC_MNXT +), +/* Keymap 2: QWERTY layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | \ | 1 | 2 | 3 | 4 | 5 | <> | | ¡ | 6 | 7 | 8 | 9 | 0 | ' | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | TRANS | Q | W | E | R | T |MEH_T | | TRANS| Y | U | I | O | P |ALL_T/+ | + * |--------+------+------+------+------+------| DEL | | |------+------+------+------+------+--------| + * |Esc/Ctrl| A | S | D | F | G |------| |------| H | J | K | L | Ñ |'/RCtrl | + * |--------+------+------+------+------+------| LGUI | | RALT |------+------+------+------+------+--------| + * | {/LSft | Z | X | C | V | B | | | | N | M | , | . | - | }/RSft | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |[/LALT| HOME |PGDOWN| PGUP | END | | LEFT | DOWN | UP |RIGHT |]/LALT| + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * |F5/CAG| TRANS| | TRANS|F8/CAG| + * ,------|------|------| |------+--------+------. + * | | |F4/CA | |F11/CA| | | + * | ENTER| TAB |------| |------| BSPC | SPACE| + * | | | TRANS| |F12/SA| | | + * `--------------------' `----------------------' + * CAG = CTRL-ALT-GUI + * CA = CTRL-ALT + * SA = SHIFT-ALT + * + */ +[QWERTY] = KEYMAP( + // left hand + KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NONUS_BSLASH, + KC_TRNS, KC_Q, KC_W, KC_E, KC_R, KC_T, MEH_T(KC_DEL), + CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, + M(OBRACE), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LGUI, + M(OBRACK), KC_HOME,KC_PGDN,KC_PGUP,KC_END, + LCAG_T(KC_F5), KC_TRNS, + MT((MOD_LALT | MOD_LCTL), KC_F4), + KC_ENT,KC_TAB,KC_TRNS, + // right hand + KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, + KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, ALL_T(KC_RBRACKET), + KC_H, KC_J, KC_K, KC_L, KC_SCLN,CTL_T(KC_QUOTE), + KC_RALT, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,M(CBRACE), + KC_LEFT,KC_DOWN,KC_UP, KC_RGHT,M(CBRACK), + KC_TRNS, LCAG_T(KC_F8), + MT((MOD_LALT | MOD_LCTL), KC_F11), + MT((MOD_LALT | MOD_LSFT), KC_F12),KC_BSPC, KC_SPC +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(AUX) // FN1 - Momentary Layer 1 (Aux) +}; + +static uint16_t key_timer; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case OBRACE: { + if (record->event.pressed) { + key_timer = timer_read(); + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + if (timer_elapsed(key_timer) < KEY_TAP_SLOW) { + register_code(KC_RALT); + register_code(KC_QUOTE); + unregister_code(KC_QUOTE); + unregister_code(KC_RALT); + } + } + break; + } + case CBRACE: { + if (record->event.pressed) { + key_timer = timer_read(); + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + if (timer_elapsed(key_timer) < KEY_TAP_SLOW) { + register_code(KC_RALT); + register_code(KC_BSLS); + unregister_code(KC_BSLS); + unregister_code(KC_RALT); + } + } + break; + } + case OBRACK: { + if (record->event.pressed) { + key_timer = timer_read(); + register_code(KC_LALT); + } else { + unregister_code(KC_LALT); + if (timer_elapsed(key_timer) < KEY_TAP_SLOW) { + register_code(KC_RALT); + register_code(KC_LBRACKET); + unregister_code(KC_LBRACKET); + unregister_code(KC_RALT); + } + } + break; + } + case CBRACK: { + if (record->event.pressed) { + key_timer = timer_read(); + register_code(KC_LALT); + } else { + unregister_code(KC_LALT); + if (timer_elapsed(key_timer) < KEY_TAP_SLOW) { + register_code(KC_RALT); + register_code(KC_RBRACKET); + unregister_code(KC_RBRACKET); + unregister_code(KC_RALT); + } + } + break; + } + case CAPS: { + if (record->event.pressed) { + register_code(KC_CAPSLOCK); + } else { + unregister_code(KC_CAPSLOCK); + } + 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 1: + ergodox_right_led_3_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } + + // Turn the caps lock led on + if (host_keyboard_leds() & (1< + +,--------------------------------------------------. ,--------------------------------------------------. +| \ | 1 | 2 | 3 | 4 | 5 | <> | | ¡ | 6 | 7 | 8 | 9 | 0 | ' | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| F1/~L1 | . | , | Ñ | P | Y |MEH_T | | L1 | F | G | C | H | L |ALL_T/+ | +|--------+------+------+------+------+------| DEL | | ~L1 |------+------+------+------+------+--------| +|Esc/Ctrl| A | O | E | U | I |------| |------| D | R | T | N | S |'/RCtrl | +|--------+------+------+------+------+------| LGUI | | RALT |------+------+------+------+------+--------| +| {/LSft | - | Q | J | K | X | | | | B | M | W | V | Z | }/RSft | +'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------' + |[/LALT| HOME |PGDOWN| PGUP | END | | LEFT | DOWN | UP |RIGHT |]/LALT| + '----------------------------------' '----------------------------------' + ,-------------. ,-------------. + |F5/CAG|F6/~L1| |F7/~L1|F8/CAG| + ,------|------|------| |------+--------+------. + | | |F4/CA | |F11/CA| | | + | ENTER| TAB |------| |------| BSPC | SPACE| + | | |F3/SA | |F12/SA| | | + '--------------------' '----------------------' + CAG = CTRL-ALT-GUI + CA = CTRL-ALT + SA = SHIFT-ALT + + + +### Keymap 1: Aux layer + +

+
+,--------------------------------------------------.           ,--------------------------------------------------.
+|        |  F1  |  F2  |  F3  |  F4  |  F5  | SLEEP|           | PWR  |  F6  |  F7  |  F8  |  F9  |  F10 |   F11  |
+|--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+|        |  <   |  >   | MsUp |      |      |      |           | ~L0  |      |   7  |   8  |   9  |   *  |  '^    |
+|--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
+|        |      |MsLeft|MsDown|MsRght|      |------|           |------|      |   4  |   5  |   6  |   +  |   Ç    |
+|--------+------+------+------+------+------|      |           |PSCR  |------+------+------+------+------+--------|
+|CAPSLOCK|      |      |      |      |      |      |           |      |      |   1  |   2  |   3  |   /  |        |
+'--------+------+------+------+------+-------------'           '-------------+------+------+------+------+--------'
+  |CTRL-S|CTRL-Z|CTRL-X|CTRL-C|CTRL-V|                                       |      |    . |   0  |   =  |      |
+  '----------------------------------'                                       '----------------------------------'
+                                       ,-------------.       ,-------------.
+                                       |      |      |       |      | Play |
+                                ,------|------|------|       |------+------+------.
+                                |      |      |      |       | VolUp|      |      |
+                                | Lclk | Rclk |------|       |------| Prev | Next |
+                                |      |      |  L2  |       | VolDn|      |      |
+                                '--------------------'       '--------------------'
+
+
+ +### Keymap 2: QWERTY layer + +

+
+,--------------------------------------------------.           ,--------------------------------------------------.
+|   \    |   1  |   2  |   3  |   4  |   5  |  <>  |           |   ¡  |   6  |   7  |   8  |   9  |   0  |   '    |
+|--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
+|  TRANS |   Q  |   W  |   E  |   R  |   T  |MEH_T |           | TRANS|   Y  |   U  |   I  |   O  |   P  |ALL_T/+ |
+|--------+------+------+------+------+------| DEL  |           |      |------+------+------+------+------+--------|
+|Esc/Ctrl|   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |   Ñ  |'/RCtrl |
+|--------+------+------+------+------+------| LGUI |           | RALT |------+------+------+------+------+--------|
+| {/LSft |   Z  |   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |   ,  |   .  |   -  | }/RSft |
+'--------+------+------+------+------+-------------'           '-------------+------+------+------+------+--------'
+  |[/LALT| HOME |PGDOWN| PGUP | END  |                                       | LEFT | DOWN |  UP  |RIGHT |]/LALT|
+  '----------------------------------'                                       '----------------------------------'
+                                       ,-------------.       ,-------------.
+                                       |F5/CAG| TRANS|       | TRANS|F8/CAG|
+                                ,------|------|------|       |------+--------+------.
+                                |      |      |F4/CA |       |F11/CA|        |      |
+                                | ENTER| TAB  |------|       |------|  BSPC  | SPACE|
+                                |      |      | TRANS|       |F12/SA|        |      |
+                                '--------------------'       '----------------------'
+ CAG = CTRL-ALT-GUI
+  CA = CTRL-ALT
+  SA = SHIFT-ALT
+
+
+ + +## Generation of .hex file +> [Download scripts from here](https://github.com/johgh/keyboard/tree/master/ergodox) + +> Execute install.sh and generate.sh scripts. + +> Flash with `teensy_loader` binary (should be installed from previous step) diff --git a/keyboards/ergodox/keymaps/emacs_osx_dk/default_highres.png b/keyboards/ergodox/keymaps/emacs_osx_dk/default_highres.png new file mode 100644 index 000000000..1d2583740 Binary files /dev/null and b/keyboards/ergodox/keymaps/emacs_osx_dk/default_highres.png differ diff --git a/keyboards/ergodox/keymaps/emacs_osx_dk/keymap.c b/keyboards/ergodox/keymaps/emacs_osx_dk/keymap.c new file mode 100644 index 000000000..1d8e66a08 --- /dev/null +++ b/keyboards/ergodox/keymaps/emacs_osx_dk/keymap.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 | L1 | | L2 | 6 | 7 | 8 | 9 | 0 | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | - | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | \/LCtrl| A | S | D | F | G |------| |------| H | J | K | L | ; |'/RCtrl | + * |--------+------+------+------+------+------| RAlt | | RAlt |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | ~L1 | LCtrl| Left| Right| LAlt | | LAlt | Up | Down | RCtrl| ~L2 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Del | Ins | | Esc | App | + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space|Backsp|------| |------| LGui |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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, TG(SYMB), + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, + CTL_T(KC_BSLS), KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_RALT, + MO(SYMB), KC_LCTRL, KC_LEFT,KC_RGHT,KC_LALT, + KC_DELT,KC_INS, + KC_HOME, + KC_SPC,KC_BSPC,KC_END, + // right hand + TG(MDIA), KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, CTL_T(KC_QUOT), + KC_RALT, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, + KC_LALT,KC_UP, KC_DOWN,KC_RCTRL, MO(MDIA), + KC_ESC, KC_APP, + KC_PGUP, + KC_PGDN, KC_LGUI, 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 | 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_0, KC_0, KC_DOT, 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/keyboards/ergodox/keymaps/emacs_osx_dk/readme.md b/keyboards/ergodox/keymaps/emacs_osx_dk/readme.md new file mode 100644 index 000000000..4839988d9 --- /dev/null +++ b/keyboards/ergodox/keymaps/emacs_osx_dk/readme.md @@ -0,0 +1,10 @@ +# ErgoDox EZ Emacs-OSX-DeadKeys Configuration + +Since I'm an Emacs user, ctrl keys are very important and gets a placement where the usual caps_lock is. There +are an extra pair of ctrls, just in case there where problems with the holding one's, but not as comfortable. + +Gui button takes a predominant place on the thumb cluster, as I'm using a mac os x and it relies heavily on it. + +Finally there is also two Right Alts to easily access to accented letters of the spanish alphabet. + +![Default](default_highres.png) diff --git a/keyboards/ergodox/keymaps/erez_experimental/Makefile b/keyboards/ergodox/keymaps/erez_experimental/Makefile new file mode 100644 index 000000000..b673c5ce5 --- /dev/null +++ b/keyboards/ergodox/keymaps/erez_experimental/Makefile @@ -0,0 +1,9 @@ +# Having a file like this allows you to override Makefile definitions +# for your own particular keymap + +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +COMMAND_ENABLE = no # Commands for debug and configuration + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/ergodox/keymaps/erez_experimental/config.h b/keyboards/ergodox/keymaps/erez_experimental/config.h new file mode 100644 index 000000000..e5d7fe188 --- /dev/null +++ b/keyboards/ergodox/keymaps/erez_experimental/config.h @@ -0,0 +1,12 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +#define ONESHOT_TAP_TOGGLE 2 +#define ONESHOT_TIMEOUT 300 + +#undef LEADER_TIMEOUT +#define LEADER_TIMEOUT 300 + +#endif diff --git a/keyboards/ergodox/keymaps/erez_experimental/keymap.c b/keyboards/ergodox/keymaps/erez_experimental/keymap.c new file mode 100644 index 000000000..04ad2a816 --- /dev/null +++ b/keyboards/ergodox/keymaps/erez_experimental/keymap.c @@ -0,0 +1,199 @@ +#include +#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 | 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|Leader|------| |------| Tab/L1 |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_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_LSPO, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_LBRC), + LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT, + ALT_T(KC_APP), KC_LGUI, + KC_HOME, + KC_SPC,KC_LEAD,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_RBRC),KC_N,KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSPC, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, LT(SYMB,KC_MINS), + KC_LALT, CTL_T(KC_ESC), + KC_PGUP, + KC_PGDN,LT(SYMB, KC_TAB), KC_ENT + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | 1 | 2 | 3 | 4 | 5 |------| |------| & | _ | - | ; | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | 6 | 7 | 8 | 9 | 0 | | | | | | @ | = | % | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | |NxtTab|PrvTab| | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, + KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,LCTL(KC_PGUP), LCTL(KC_PGDN), + 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, + KC_AMPR, KC_UNDS, KC_MINS, CM_SCLN, KC_PLUS, KC_TRNS, + KC_TRNS, KC_PIPE, KC_AT, KC_EQL, KC_PERC, KC_TRNS, 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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | PgUp | Home | End | PgDn | |------| |------| | | | | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | |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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_PGUP, KC_HOME, KC_END, KC_PGDN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_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) + [2] = ACTION_MACRO_TAP(0), // Eric Tang's Famous Macro! + [3] = ACTION_MACRO_TAP(1) // Eric Tang's Famous Macro! +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +LEADER_EXTERNS(); + +// 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; + } + + LEADER_DICTIONARY() { + leading = false; + leader_end(); + + SEQ_ONE_KEY(KC_W) { + register_code(KC_LALT); + register_code(KC_F4); + unregister_code(KC_F4); + unregister_code(KC_LALT); + } + SEQ_ONE_KEY(KC_O) { + register_code(KC_LCTL); + register_code(KC_LSFT); + register_code(KC_O); + unregister_code(KC_O); + unregister_code(KC_LSFT); + unregister_code(KC_LCTL); + } + } +} + diff --git a/keyboards/ergodox/keymaps/erez_experimental/readme.md b/keyboards/ergodox/keymaps/erez_experimental/readme.md new file mode 100644 index 000000000..66acfa187 --- /dev/null +++ b/keyboards/ergodox/keymaps/erez_experimental/readme.md @@ -0,0 +1,51 @@ +# Erez's experimental layout + +This is my personal layout which I use to test out ideas which may or may not make it onto the default layout we ship with. It's based off the default layout, with various tweaks. + +Changelog: + +## May 24, 2016: + +* Implements Leader key example + * Leader, W sends Alt-F4 + * Leader, O sends Ctrl-shift-o (a shortcut I use in FrontApp) + +## May 8, 2016: + +* Makes bottom-right key send minus/underscore when tapped, L1 temporary toggle when held +* Tweaked the positions of the numbers on the symbol layer. Basically, 12345 are now directly under their number-row counterparts in layer 0. You can imagine pulling the number row down to the home row. And 67890 are directly under 12345 - so it's a matter of just adding 5 and going to the next row (1+5 = 6, 2+5 = 7 and so on). +* Tweaks media/nav layer + * Removes mouse control, as I don't use it + * Makes left home row keys PgUp, Home, End, PgDn + +## Apr 29, 2016: + +* Tweaks the Hyper and Meh key to send brackets when tapped +* Turns bottom-right key into a minus/underscore (easy to reach with the right pinky) + +## Apr 25, 2016: + +* Made it so that the right and left Shift keys send opening and closing parens ( ) when tapped + +## Feb 11, 2016: + +* Updated ASCII legend for thumb clusters +* Made it so outer left-hand thumb key is L1 momentary toggle +* Added % and @ to L1 +* Swapped positions for _ and - on L1 + +## Feb 5, 2016: + +* A whole new design for the symbol layer. Specifically: + * Put the minus, underscore, and semicolon right in the homerow for the right hand + * Parens are in better places for me + * The arrow keys now send Ctrl-PgUp and Ctrl-PgDn, for switching browser tabs with the arrows when in symbol layer + * Tab (right-hand outer thumb key) now does double duty to toggle symbol layer when held down + * Backspace (left-hand outer thumb key) now just toggles symbol layer (I wasn't using it as a backspace) + + +## Jan 19, 2016: + +* 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). + diff --git a/keyboards/ergodox/keymaps/german-kinergo/keymap.c b/keyboards/ergodox/keymaps/german-kinergo/keymap.c new file mode 100644 index 000000000..b1cecf0dd --- /dev/null +++ b/keyboards/ergodox/keymaps/german-kinergo/keymap.c @@ -0,0 +1,210 @@ +// German keymap derived from "german", but more closely resembling the German layout of the Kinesis Ergo Elan. +// +// chschmitz, 2016-01-27 +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_german.h" + +// Layer names +#define BASE 0 // default layer +#define SYMB 1 // symbol layer +#define MDIA 2 // media keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * X'es mark the spots where this is different from the "german" layout which it is based on. + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * |X Esc X| 1 | 2 | 3 | 4 | 5 |X ` X| |XPRSCX| 6 | 7 | 8 | 9 | 0 | ß | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * |X Tab X| Q | W | E | R | T |X L1 X| |X L1 X| Z | U | I | O | P | Ü | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Caps | A | S | D | F | G |------| |------| H | J | K | L | Ö | Ä/L2 | + * |--------+------+------+------+------+------|X L2 X| |X L2 X|------+------+------+------+------+--------| + * | LShift | Y | X | C | V | B | | | | N | M | , | . |X - X| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |XLGuiX|X ^ X|X < X|XLEFTX|XRIGHT| |XDownX|X Up X|X # X|X + X|XRGuiX| + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * |XCTRLX|XALTX | | Alt |Ctrl/Esc| + * ,------+------+------| |------+--------+------. + * |XXX |XXX | Home | | PgUp |XXX |XXX | + * | Bkspc|Del |------| |------| Enter | Space| + * | | | End | | PgDn | | | + * `--------------------' `----------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, DE_ACUT, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(1), + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, DE_Y, KC_X, KC_C, KC_V, KC_B, MO(2), + KC_LGUI, DE_CIRC, DE_LESS, KC_LEFT, KC_RIGHT, + KC_LCTRL, KC_LALT, + KC_HOME, + KC_BSPC,KC_DELT,KC_END, + // right hand + KC_PSCREEN, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + MO(1), DE_Z, KC_U, KC_I, KC_O, KC_P, DE_UE, + KC_H, KC_J, KC_K, KC_L, DE_OE, LT(MDIA,DE_AE), + MO(2), KC_N, KC_M, KC_COMM, KC_DOT, DE_MINS, KC_RSFT, + KC_DOWN, KC_UP, DE_HASH, DE_PLUS, KC_RGUI, + KC_RALT, KC_RCTRL, + KC_PGUP, + KC_PGDN, KC_ENT, KC_SPC + ), +// [BASE] = KEYMAP( // layer 0 : default +// // left hand +// KC_CIRC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY, +// KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1), +// KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, +// KC_LSFT, DE_Y, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), +// LT(SYMB,DE_LESS),CTL_T(DE_HASH), DE_ACUT, DE_MINS, DE_PLUS, +// ALT_T(KC_APP), KC_LGUI, +// KC_HOME, +// KC_SPC,KC_BSPC,KC_END, +// // right hand +// KC_MNXT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, +// TG(2), DE_Z, KC_U, KC_I, KC_O, KC_P, DE_UE, +// KC_H, KC_J, KC_K, KC_L, DE_OE, LT(MDIA,DE_AE), +// MEH_T(KC_NO),KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(DE_MINS), KC_RSFT, +// KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_FN1, +// KC_LALT,CTL_T(KC_ESC), +// KC_PGUP, +// KC_PGDN,KC_TAB, KC_ENT +// ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | . | 0 | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,DE_EXLM,DE_AT, DE_LCBR,DE_RCBR,DE_PIPE,KC_TRNS, + KC_TRNS,DE_HASH,DE_DLR, DE_LPRN,DE_RPRN,DE_GRV, + KC_TRNS,DE_PERC,DE_CIRC,DE_LBRC,DE_RBRC,DE_TILD,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_UP, KC_7, KC_8, KC_9, DE_ASTR, KC_F12, + KC_DOWN, KC_4, KC_5, KC_6, DE_PLUS, KC_TRNS, + KC_TRNS, DE_AMPR, KC_1, KC_2, KC_3, DE_BSLS, KC_TRNS, + KC_TRNS,KC_DOT, KC_0, DE_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | Lclk | MsUp | Rclk | | | | | |VolDwn| Mute |VolUp | | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | Btn4 |MsLeft|MsDown|MsRght| Btn5 |------| |------| | Prev | Stop | Play | Next | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | |WhRght|WhDown| WhUp |WhLeft|WhClk | | | |BwSrch|BwBack|BwHome|BwRefr|BwFwd | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | |MsAcl0|MsAcl1|MsAcl2| | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | |Brwser|Brwser| + * | Lclk | Rclk |------| |------|Back |Forwd | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[MDIA] = KEYMAP( + KC_TRNS, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_TRNS, + KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS, + KC_TRNS, KC_BTN4, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN5, + KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_BTN3, KC_TRNS, + KC_TRNS, KC_TRNS, KC_ACL0, KC_ACL1, KC_ACL2, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_BTN1, KC_BTN2, KC_TRNS, + // right hand + KC_TRNS, KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11, + KC_TRNS, KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, KC_F12, + KC_TRNS, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, KC_TRNS, + KC_TRNS, KC_WSCH, KC_WBAK, KC_WHOM, KC_WREF, KC_WFWD, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_WBAK, KC_WFWD +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + case SYMB: + ergodox_right_led_1_on(); + break; + case MDIA: + ergodox_right_led_2_on(); + break; + default: + ergodox_board_led_off(); + break; + } + +}; diff --git a/keyboards/ergodox/keymaps/german-kinergo/layout-code.png b/keyboards/ergodox/keymaps/german-kinergo/layout-code.png new file mode 100644 index 000000000..a0ef551e1 Binary files /dev/null and b/keyboards/ergodox/keymaps/german-kinergo/layout-code.png differ diff --git a/keyboards/ergodox/keymaps/german-kinergo/layout-media.png b/keyboards/ergodox/keymaps/german-kinergo/layout-media.png new file mode 100644 index 000000000..56aea1dca Binary files /dev/null and b/keyboards/ergodox/keymaps/german-kinergo/layout-media.png differ diff --git a/keyboards/ergodox/keymaps/german-kinergo/layout.png b/keyboards/ergodox/keymaps/german-kinergo/layout.png new file mode 100644 index 000000000..76a1aa5d7 Binary files /dev/null and b/keyboards/ergodox/keymaps/german-kinergo/layout.png differ diff --git a/keyboards/ergodox/keymaps/german-kinergo/readme.md b/keyboards/ergodox/keymaps/german-kinergo/readme.md new file mode 100644 index 000000000..557d85a8a --- /dev/null +++ b/keyboards/ergodox/keymaps/german-kinergo/readme.md @@ -0,0 +1,35 @@ +# German Layout for the ErgoDox + +This layout is inspired by the "kinesis-qwerty-mod" from benblazak's +[ergodox-firmware](https://github.com/benblazak/ergodox-firmware), as well as by the "german" layout from the +[qmk_firmware](https://github.com/jackhumbert/qmk_firmware). +The goal was to have a layout that is pretty close to an ordinary German +keyboard, so I don't have to make adjustments on the operating system level +and I keep some of the muscle memory to use a regular keyboard. + +Modifications I made with regard to the aforementioned layouts: + +* The key layout is pretty close to the layout of a German Kinesis Ergo Elan. + The only exception I made is that I reversed the "up" and "down" cursor keys, + since that feels more natural to me. + +* All layer changes are "momentary", i.e. they only last as long as the respective key is pressed. + +* I sacrificed the Hyper and Meh keys, which I don't use, and put layer change keys in their place. + +* I added a PrintScreen key which I use quite regularly for screenshots. + +## Default Layer + +![Layout of the default layer](layout.png "Layout of the default layer") + +## Code Layer + +![Layout of the code layer](layout-code.png "Layout of the code layer") + +## Media Layer + +![Layout of the media layer](layout-media.png "Layout of the media layer") + +Christoph Schmitz <schm4704 at web dot de> +2016-01-28 diff --git a/keyboards/ergodox/keymaps/german-manuneo/compile_keymap.py b/keyboards/ergodox/keymaps/german-manuneo/compile_keymap.py new file mode 100644 index 000000000..7076a6ecb --- /dev/null +++ b/keyboards/ergodox/keymaps/german-manuneo/compile_keymap.py @@ -0,0 +1,710 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +"""Compiler for keymap.c files + +This scrip will generate a keymap.c file from a simple +markdown file with a specific layout. + +Usage: + python compile_keymap.py INPUT_PATH [OUTPUT_PATH] +""" +from __future__ import division +from __future__ import print_function +from __future__ import absolute_import +from __future__ import unicode_literals + +import os +import io +import re +import sys +import json +import unicodedata +import collections +import itertools as it + +PY2 = sys.version_info.major == 2 + +if PY2: + chr = unichr + + +KEYBOARD_LAYOUTS = { + # These map positions in the parsed layout to + # positions in the KEYMAP MATRIX + 'ergodox_ez': [ + [ 0, 1, 2, 3, 4, 5, 6], [38, 39, 40, 41, 42, 43, 44], + [ 7, 8, 9, 10, 11, 12, 13], [45, 46, 47, 48, 49, 50, 51], + [14, 15, 16, 17, 18, 19 ], [ 52, 53, 54, 55, 56, 57], + [20, 21, 22, 23, 24, 25, 26], [58, 59, 60, 61, 62, 63, 64], + [27, 28, 29, 30, 31 ], [ 65, 66, 67, 68, 69], + [ 32, 33], [70, 71 ], + [ 34], [72 ], + [ 35, 36, 37], [73, 74, 75 ], + ] +} + +ROW_INDENTS = { + 'ergodox_ez': [0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 5, 0, 6, 0, 4, 0] +} + +BLANK_LAYOUTS = [ +# Compact Layout +""" +.------------------------------------.------------------------------------. +| | | | | | | | | | | | | | | +!-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! +| | | | | | | | | | | | | | | +!-----+----+----+----x----x----! ! !----x----x----+----+----+-----! +| | | | | | |-----!-----! | | | | | | +!-----+----+----+----x----x----! ! !----x----x----+----+----+-----! +| | | | | | | | | | | | | | | +'-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' +""", + +# Wide Layout +""" +.---------------------------------------------. .---------------------------------------------. +| | | | | | | | ! | | | | | | | +!-------+-----+-----+-----+-----+-------------! !-------+-----+-----+-----+-----+-----+-------! +| | | | | | | | ! | | | | | | | +!-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------! +| | | | | | |-------! !-------! | | | | | | +!-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------! +| | | | | | | | ! | | | | | | | +'-------+-----+-----+-----+-----+-------------' '-------------+-----+-----+-----+-----+-------' + | | | | | | ! | | | | | + '------------------------------' '------------------------------' + .---------------. .---------------. + | | | ! | | + .-------+-------+-------! !-------+-------+-------. + ! ! | | ! | ! ! + ! ! !-------! !-------! ! ! + | | | | ! | | | + '-----------------------' '-----------------------' +""", +] + + +DEFAULT_CONFIG = { + "keymaps_includes": [ + "keymap_common.h", + ], + 'filler': "-+.'!:x", + 'separator': "|", + 'default_key_prefix': ["KC_"], +} + + +SECTIONS = [ + 'layout_config', + 'layers', +] + + +# Markdown Parsing + +ONELINE_COMMENT_RE = re.compile(r""" + ^ # comment must be at the start of the line + \s* # arbitrary whitespace + // # start of the comment + (.*) # the comment + $ # until the end of line +""", re.MULTILINE | re.VERBOSE +) + +INLINE_COMMENT_RE = re.compile(r""" + ([\,\"\[\]\{\}\d]) # anythig that might end a expression + \s+ # comment must be preceded by whitespace + // # start of the comment + \s # and succeded by whitespace + (?:[^\"\]\}\{\[]*) # the comment (except things which might be json) + $ # until the end of line +""", re.MULTILINE | re.VERBOSE) + +TRAILING_COMMA_RE = re.compile(r""" + , # the comma + (?:\s*) # arbitrary whitespace + $ # only works if the trailing comma is followed by newline + (\s*) # arbitrary whitespace + ([\]\}]) # end of an array or object +""", re.MULTILINE | re.VERBOSE) + + +def loads(raw_data): + if isinstance(raw_data, bytes): + raw_data = raw_data.decode('utf-8') + + raw_data = ONELINE_COMMENT_RE.sub(r"", raw_data) + raw_data = INLINE_COMMENT_RE.sub(r"\1", raw_data) + raw_data = TRAILING_COMMA_RE.sub(r"\1\2", raw_data) + return json.loads(raw_data) + + +def parse_config(path): + def reset_section(): + section.update({ + 'name': section.get('name', ""), + 'sub_name': "", + 'start_line': -1, + 'end_line': -1, + 'code_lines': [], + }) + + def start_section(line_index, line): + end_section() + if line.startswith("# "): + name = line[2:] + elif line.startswith("## "): + name = line[3:] + else: + name = "" + + name = name.strip().replace(" ", "_").lower() + if name in SECTIONS: + section['name'] = name + else: + section['sub_name'] = name + section['start_line'] = line_index + + def end_section(): + if section['start_line'] >= 0: + if section['name'] == 'layout_config': + config.update(loads("\n".join( + section['code_lines'] + ))) + elif section['sub_name'].startswith('layer'): + layer_name = section['sub_name'] + config['layer_lines'][layer_name] = section['code_lines'] + + reset_section() + + def amend_section(line_index, line): + section['end_line'] = line_index + section['code_lines'].append(line) + + config = DEFAULT_CONFIG.copy() + config.update({ + 'layer_lines': collections.OrderedDict(), + 'macro_ids': {'UM'}, + 'unicode_macros': {}, + }) + + section = {} + reset_section() + + with io.open(path, encoding="utf-8") as fh: + for i, line in enumerate(fh): + if line.startswith("#"): + start_section(i, line) + elif line.startswith(" "): + amend_section(i, line[4:]) + else: + # TODO: maybe parse description + pass + + end_section() + assert 'layout' in config + return config + +# header file parsing + +IF0_RE = re.compile(r""" + ^ + #if 0 + $.*? + #endif +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +COMMENT_RE = re.compile(r""" + /\* + .*? + \*/" +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +def read_header_file(path): + with io.open(path, encoding="utf-8") as fh: + data = fh.read() + data, _ = COMMENT_RE.subn("", data) + data, _ = IF0_RE.subn("", data) + return data + + +def regex_partial(re_str_fmt, flags): + def partial(*args, **kwargs): + re_str = re_str_fmt.format(*args, **kwargs) + return re.compile(re_str, flags) + return partial + + +KEYDEF_REP = regex_partial(r""" + #define + \s + ( + (?:{}) # the prefixes + (?:\w+) # the key name + ) # capture group end +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +ENUM_RE = re.compile(r""" + ( + enum + \s\w+\s + \{ + .*? # the enum content + \} + ; + ) # capture group end +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +ENUM_KEY_REP = regex_partial(r""" + ( + {} # the prefixes + \w+ # the key name + ) # capture group end +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +def parse_keydefs(config, data): + prefix_options = "|".join(config['key_prefixes']) + keydef_re = KEYDEF_REP(prefix_options) + enum_key_re = ENUM_KEY_REP(prefix_options) + for match in keydef_re.finditer(data): + yield match.groups()[0] + + for enum_match in ENUM_RE.finditer(data): + enum = enum_match.groups()[0] + for key_match in enum_key_re.finditer(enum): + yield key_match.groups()[0] + + +def parse_valid_keys(config, out_path): + basepath = os.path.abspath(os.path.join(os.path.dirname(out_path))) + dirpaths = [] + subpaths = [] + while len(subpaths) < 6: + path = os.path.join(basepath, *subpaths) + dirpaths.append(path) + dirpaths.append(os.path.join(path, "tmk_core", "common")) + dirpaths.append(os.path.join(path, "quantum")) + subpaths.append('..') + + includes = set(config['keymaps_includes']) + includes.add("keycode.h") + + valid_keycodes = set() + for dirpath, include in it.product(dirpaths, includes): + include_path = os.path.join(dirpath, include) + if os.path.exists(include_path): + header_data = read_header_file(include_path) + valid_keycodes.update( + parse_keydefs(config, header_data) + ) + return valid_keycodes + + +# Keymap Parsing + +def iter_raw_codes(layer_lines, filler, separator): + filler_re = re.compile("[" + filler + " ]") + for line in layer_lines: + line, _ = filler_re.subn("", line.strip()) + if not line: + continue + codes = line.split(separator) + for code in codes[1:-1]: + yield code + + +def iter_indexed_codes(raw_codes, key_indexes): + key_rows = {} + key_indexes_flat = [] + + for row_index, key_indexes in enumerate(key_indexes): + for key_index in key_indexes: + key_rows[key_index] = row_index + key_indexes_flat.extend(key_indexes) + assert len(raw_codes) == len(key_indexes_flat) + for raw_code, key_index in zip(raw_codes, key_indexes_flat): + # we keep track of the row mostly for layout purposes + yield raw_code, key_index, key_rows[key_index] + + +LAYER_CHANGE_RE = re.compile(r""" + (DF|TG|MO)\(\d+\) +""", re.VERBOSE) + + +MACRO_RE = re.compile(r""" + M\(\w+\) +""", re.VERBOSE) + + +UNICODE_RE = re.compile(r""" + U[0-9A-F]{4} +""", re.VERBOSE) + + +NON_CODE = re.compile(r""" + ^[^A-Z0-9_]$ +""", re.VERBOSE) + + +def parse_uni_code(raw_code): + macro_id = "UC_" + ( + unicodedata.name(raw_code) + .replace(" ", "_") + .replace("-", "_") + ) + code = "M({})".format(macro_id) + uc_hex = "{:04X}".format(ord(raw_code)) + return code, macro_id, uc_hex + + +def parse_key_code(raw_code, key_prefixes, valid_keycodes): + if raw_code in valid_keycodes: + return raw_code + + for prefix in key_prefixes: + code = prefix + raw_code + if code in valid_keycodes: + return code + + +def parse_code(raw_code, key_prefixes, valid_keycodes): + if not raw_code: + return 'KC_TRNS', None, None + + if LAYER_CHANGE_RE.match(raw_code): + return raw_code, None, None + + if MACRO_RE.match(raw_code): + macro_id = raw_code[2:-1] + return raw_code, macro_id, None + + if UNICODE_RE.match(raw_code): + hex_code = raw_code[1:] + return parse_uni_code(chr(int(hex_code, 16))) + + if NON_CODE.match(raw_code): + return parse_uni_code(raw_code) + + code = parse_key_code(raw_code, key_prefixes, valid_keycodes) + return code, None, None + + +def parse_keymap(config, key_indexes, layer_lines, valid_keycodes): + keymap = {} + raw_codes = list(iter_raw_codes( + layer_lines, config['filler'], config['separator'] + )) + indexed_codes = iter_indexed_codes(raw_codes, key_indexes) + key_prefixes = config['key_prefixes'] + for raw_code, key_index, row_index in indexed_codes: + code, macro_id, uc_hex = parse_code( + raw_code, key_prefixes, valid_keycodes + ) + # TODO: line numbers for invalid codes + err_msg = "Could not parse key '{}' on row {}".format( + raw_code, row_index + ) + assert code is not None, err_msg + # print(repr(raw_code), repr(code), macro_id, uc_hex) + if macro_id: + config['macro_ids'].add(macro_id) + if uc_hex: + config['unicode_macros'][macro_id] = uc_hex + keymap[key_index] = (code, row_index) + return keymap + + +def parse_keymaps(config, valid_keycodes): + keymaps = collections.OrderedDict() + key_indexes = config.get( + 'key_indexes', KEYBOARD_LAYOUTS[config['layout']] + ) + # TODO: maybe validate key_indexes + + for layer_name, layer_lines, in config['layer_lines'].items(): + keymaps[layer_name] = parse_keymap( + config, key_indexes, layer_lines, valid_keycodes + ) + return keymaps + +# keymap.c output + +USERCODE = """ +// 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 L1: + ergodox_right_led_1_on(); + break; + case L2: + ergodox_right_led_2_on(); + break; + case L3: + ergodox_right_led_3_on(); + break; + case L4: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + break; + case L5: + ergodox_right_led_1_on(); + ergodox_right_led_3_on(); + break; + // case L6: + // ergodox_right_led_2_on(); + // ergodox_right_led_3_on(); + // break; + // case L7: + // ergodox_right_led_1_on(); + // ergodox_right_led_2_on(); + // ergodox_right_led_3_on(); + // break; + default: + ergodox_board_led_off(); + break; + } +}; +""" + +MACROCODE = """ +#define UC_MODE_WIN 0 +#define UC_MODE_LINUX 1 +#define UC_MODE_OSX 2 + +// TODO: allow default mode to be configured +static uint16_t unicode_mode = UC_MODE_WIN; + +uint16_t hextokeycode(uint8_t hex) {{ + if (hex == 0x0) {{ + return KC_P0; + }} + if (hex < 0xA) {{ + return KC_P1 + (hex - 0x1); + }} + return KC_A + (hex - 0xA); +}} + +void unicode_action_function(uint16_t hi, uint16_t lo) {{ + switch (unicode_mode) {{ + case UC_MODE_WIN: + register_code(KC_LALT); + + register_code(KC_PPLS); + unregister_code(KC_PPLS); + + register_code(hextokeycode((hi & 0xF0) >> 4)); + unregister_code(hextokeycode((hi & 0xF0) >> 4)); + register_code(hextokeycode((hi & 0x0F))); + unregister_code(hextokeycode((hi & 0x0F))); + register_code(hextokeycode((lo & 0xF0) >> 4)); + unregister_code(hextokeycode((lo & 0xF0) >> 4)); + register_code(hextokeycode((lo & 0x0F))); + unregister_code(hextokeycode((lo & 0x0F))); + + unregister_code(KC_LALT); + break; + case UC_MODE_LINUX: + register_code(KC_LCTL); + register_code(KC_LSFT); + + register_code(KC_U); + unregister_code(KC_U); + + register_code(hextokeycode((hi & 0xF0) >> 4)); + unregister_code(hextokeycode((hi & 0xF0) >> 4)); + register_code(hextokeycode((hi & 0x0F))); + unregister_code(hextokeycode((hi & 0x0F))); + register_code(hextokeycode((lo & 0xF0) >> 4)); + unregister_code(hextokeycode((lo & 0xF0) >> 4)); + register_code(hextokeycode((lo & 0x0F))); + unregister_code(hextokeycode((lo & 0x0F))); + + unregister_code(KC_LCTL); + unregister_code(KC_LSFT); + break; + case UC_MODE_OSX: + break; + }} +}} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {{ + if (!record->event.pressed) {{ + return MACRO_NONE; + }} + // MACRODOWN only works in this function + switch(id) {{ + case UM: + unicode_mode = (unicode_mode + 1) % 2; + break; +{macro_cases} +{unicode_macro_cases} + default: + break; + }} + return MACRO_NONE; +}}; +""" + + +UNICODE_MACRO_TEMPLATE = """ +case {macro_id}: + unicode_action_function(0x{hi:02x}, 0x{lo:02x}); + break; +""".strip() + + +def unicode_macro_cases(config): + for macro_id, uc_hex in config['unicode_macros'].items(): + hi = int(uc_hex, 16) >> 8 + lo = int(uc_hex, 16) & 0xFF + unimacro_keys = ", ".join( + "T({})".format( + "KP_" + digit if digit.isdigit() else digit + ) for digit in uc_hex + ) + yield UNICODE_MACRO_TEMPLATE.format( + macro_id=macro_id, hi=hi, lo=lo + ) + + +def iter_keymap_lines(keymap, row_indents=None): + col_widths = {} + col = 0 + # first pass, figure out the column widths + prev_row_index = None + for code, row_index in keymap.values(): + if row_index != prev_row_index: + col = 0 + if row_indents: + col = row_indents[row_index] + col_widths[col] = max(len(code), col_widths.get(col, 0)) + prev_row_index = row_index + col += 1 + + # second pass, yield the cell values + col = 0 + prev_row_index = None + for key_index in sorted(keymap): + code, row_index = keymap[key_index] + if row_index != prev_row_index: + col = 0 + yield "\n" + if row_indents: + for indent_col in range(row_indents[row_index]): + pad = " " * (col_widths[indent_col] - 4) + yield (" /*-*/" + pad) + col = row_indents[row_index] + else: + yield pad + yield " {}".format(code) + if key_index < len(keymap) - 1: + yield "," + # This will be yielded on the next iteration when + # we know that we're not at the end of a line. + pad = " " * (col_widths[col] - len(code)) + prev_row_index = row_index + col += 1 + + +def iter_keymap_parts(config, keymaps): + # includes + for include_path in config['keymaps_includes']: + yield '#include "{}"\n'.format(include_path) + + yield "\n" + + # definitions + for i, macro_id in enumerate(sorted(config['macro_ids'])): + yield "#define {} {}\n".format(macro_id, i) + + yield "\n" + + for i, layer_name in enumerate(config['layer_lines']): + yield '#define L{0:<3} {0:<5} // {1}\n'.format(i, layer_name) + + yield "\n" + + # keymaps + yield "const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\n" + + for i, layer_name in enumerate(config['layer_lines']): + # comment + layer_lines = config['layer_lines'][layer_name] + prefixed_lines = " * " + " * ".join(layer_lines) + yield "/*\n{} */\n".format(prefixed_lines) + + # keymap codes + keymap = keymaps[layer_name] + row_indents = ROW_INDENTS.get(config['layout']) + keymap_lines = "".join(iter_keymap_lines(keymap, row_indents)) + yield "[L{0}] = KEYMAP({1}\n),\n".format(i, keymap_lines) + + yield "};\n\n" + + # no idea what this is for + yield "const uint16_t PROGMEM fn_actions[] = {};\n" + + # macros + yield MACROCODE.format( + macro_cases="", + unicode_macro_cases="\n".join(unicode_macro_cases(config)), + ) + + # TODO: dynamically create blinking lights + yield USERCODE + + +def main(argv=sys.argv[1:]): + if not argv or '-h' in argv or '--help' in argv: + print(__doc__) + return 0 + + in_path = os.path.abspath(argv[0]) + if not os.path.exists(in_path): + print("No such file '{}'".format(in_path)) + return 1 + + if len(argv) > 1: + out_path = os.path.abspath(argv[1]) + else: + dirname = os.path.dirname(in_path) + out_path = os.path.join(dirname, "keymap.c") + + config = parse_config(in_path) + valid_keys = parse_valid_keys(config, out_path) + keymaps = parse_keymaps(config, valid_keys) + + with io.open(out_path, mode="w", encoding="utf-8") as fh: + for part in iter_keymap_parts(config, keymaps): + fh.write(part) + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/keyboards/ergodox/keymaps/german-manuneo/keymap.c b/keyboards/ergodox/keymaps/german-manuneo/keymap.c new file mode 100644 index 000000000..5fcc14d51 --- /dev/null +++ b/keyboards/ergodox/keymaps/german-manuneo/keymap.c @@ -0,0 +1,783 @@ +#include "ergodox_ez.h" +#include "action_layer.h" +#include "keymap.h" +#include "keymap_german.h" + +#define UC_ASYMPTOTICALLY_EQUAL_TO 0 +#define UC_DIVISION_SIGN 1 +#define UC_DOWNWARDS_ARROW 2 +#define UC_ELEMENT_OF 3 +#define UC_EMPTY_SET 4 +#define UC_FOR_ALL 5 +#define UC_GREEK_CAPITAL_LETTER_ALPHA 6 +#define UC_GREEK_CAPITAL_LETTER_BETA 7 +#define UC_GREEK_CAPITAL_LETTER_CHI 8 +#define UC_GREEK_CAPITAL_LETTER_DELTA 9 +#define UC_GREEK_CAPITAL_LETTER_EPSILON 10 +#define UC_GREEK_CAPITAL_LETTER_ETA 11 +#define UC_GREEK_CAPITAL_LETTER_GAMMA 12 +#define UC_GREEK_CAPITAL_LETTER_IOTA 13 +#define UC_GREEK_CAPITAL_LETTER_KAPPA 14 +#define UC_GREEK_CAPITAL_LETTER_LAMDA 15 +#define UC_GREEK_CAPITAL_LETTER_MU 16 +#define UC_GREEK_CAPITAL_LETTER_NU 17 +#define UC_GREEK_CAPITAL_LETTER_OMEGA 18 +#define UC_GREEK_CAPITAL_LETTER_OMICRON 19 +#define UC_GREEK_CAPITAL_LETTER_PHI 20 +#define UC_GREEK_CAPITAL_LETTER_PI 21 +#define UC_GREEK_CAPITAL_LETTER_PSI 22 +#define UC_GREEK_CAPITAL_LETTER_RHO 23 +#define UC_GREEK_CAPITAL_LETTER_SIGMA 24 +#define UC_GREEK_CAPITAL_LETTER_TAU 25 +#define UC_GREEK_CAPITAL_LETTER_THETA 26 +#define UC_GREEK_CAPITAL_LETTER_UPSILON 27 +#define UC_GREEK_CAPITAL_LETTER_XI 28 +#define UC_GREEK_CAPITAL_LETTER_ZETA 29 +#define UC_GREEK_SMALL_LETTER_ALPHA 30 +#define UC_GREEK_SMALL_LETTER_BETA 31 +#define UC_GREEK_SMALL_LETTER_CHI 32 +#define UC_GREEK_SMALL_LETTER_DELTA 33 +#define UC_GREEK_SMALL_LETTER_EPSILON 34 +#define UC_GREEK_SMALL_LETTER_ETA 35 +#define UC_GREEK_SMALL_LETTER_FINAL_SIGMA 36 +#define UC_GREEK_SMALL_LETTER_GAMMA 37 +#define UC_GREEK_SMALL_LETTER_IOTA 38 +#define UC_GREEK_SMALL_LETTER_KAPPA 39 +#define UC_GREEK_SMALL_LETTER_LAMDA 40 +#define UC_GREEK_SMALL_LETTER_MU 41 +#define UC_GREEK_SMALL_LETTER_NU 42 +#define UC_GREEK_SMALL_LETTER_OMEGA 43 +#define UC_GREEK_SMALL_LETTER_OMICRON 44 +#define UC_GREEK_SMALL_LETTER_PHI 45 +#define UC_GREEK_SMALL_LETTER_PI 46 +#define UC_GREEK_SMALL_LETTER_PSI 47 +#define UC_GREEK_SMALL_LETTER_RHO 48 +#define UC_GREEK_SMALL_LETTER_SIGMA 49 +#define UC_GREEK_SMALL_LETTER_TAU 50 +#define UC_GREEK_SMALL_LETTER_THETA 51 +#define UC_GREEK_SMALL_LETTER_UPSILON 52 +#define UC_GREEK_SMALL_LETTER_XI 53 +#define UC_GREEK_SMALL_LETTER_ZETA 54 +#define UC_INFINITY 55 +#define UC_LEFTWARDS_ARROW 56 +#define UC_MULTIPLICATION_SIGN 57 +#define UC_NOT_AN_ELEMENT_OF 58 +#define UC_NOT_EQUAL_TO 59 +#define UC_PLUS_MINUS_SIGN 60 +#define UC_RIGHTWARDS_ARROW 61 +#define UC_SUBSCRIPT_EIGHT 62 +#define UC_SUBSCRIPT_FIVE 63 +#define UC_SUBSCRIPT_FOUR 64 +#define UC_SUBSCRIPT_NINE 65 +#define UC_SUBSCRIPT_ONE 66 +#define UC_SUBSCRIPT_SEVEN 67 +#define UC_SUBSCRIPT_SIX 68 +#define UC_SUBSCRIPT_THREE 69 +#define UC_SUBSCRIPT_TWO 70 +#define UC_SUBSCRIPT_ZERO 71 +#define UC_SUPERSCRIPT_EIGHT 72 +#define UC_SUPERSCRIPT_FIVE 73 +#define UC_SUPERSCRIPT_FOUR 74 +#define UC_SUPERSCRIPT_LATIN_SMALL_LETTER_N 75 +#define UC_SUPERSCRIPT_NINE 76 +#define UC_SUPERSCRIPT_ONE 77 +#define UC_SUPERSCRIPT_SEVEN 78 +#define UC_SUPERSCRIPT_SIX 79 +#define UC_SUPERSCRIPT_THREE 80 +#define UC_SUPERSCRIPT_TWO 81 +#define UC_SUPERSCRIPT_ZERO 82 +#define UC_THERE_DOES_NOT_EXIST 83 +#define UC_THERE_EXISTS 84 +#define UC_UPWARDS_ARROW 85 +#define UC_VULGAR_FRACTION_ONE_EIGHTH 86 +#define UC_VULGAR_FRACTION_ONE_FIFTH 87 +#define UC_VULGAR_FRACTION_ONE_HALF 88 +#define UC_VULGAR_FRACTION_ONE_QUARTER 89 +#define UC_VULGAR_FRACTION_ONE_SIXTH 90 +#define UC_VULGAR_FRACTION_ONE_THIRD 91 +#define UC_VULGAR_FRACTION_THREE_QUARTERS 92 +#define UC_VULGAR_FRACTION_TWO_THIRDS 93 +#define UM 94 + +#define L0 0 // layer_0 +#define L1 1 // layer_1 +#define L2 2 // layer_2 +#define L3 3 // layer_3 +#define L4 4 // layer_4 +#define L5 5 // layer_5 +#define L6 6 // layer_6 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* + * .------------------------------------.------------------------------------. + * |MO(5)| 1 | 2 | 3 | 4 | 5 |ACUT | GRV | 6 | 7 | 8 | 9 | 0 |CIRC | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * |MO(4)| X | P | F | W | G |HOME |TG(2)| H | J | K | L | Q | Z | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * |MO(1)| U | I | A | E | O |-----!-----! S | N | R | T | D | SS | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * |MO(3)| UE | OE | AE | C | V |END | TAB | B | M |COMM| DOT| UP | Y | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | |LGUI|LALT|LCTL| !RCTL|RALT|LEFT|DOWN|RGHT| + * '------------------------' '------------------------' + * .-----------. .-----------. + * |INS |TG(2)| !M(UM)|DELT | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | APP | ! PGUP| ! ! + * ! ! !-----! !-----! ! ! + * |BSPC |LSFT | ESC | ! PGDN|ENTER|SPACE| + * '-----------------' '-----------------' + */ +[L0] = KEYMAP( + MO(5), DE_1, DE_2, DE_3, DE_4, DE_5, DE_ACUT, + MO(4), DE_X, DE_P, DE_F, DE_W, DE_G, KC_HOME, + MO(1), DE_U, DE_I, DE_A, DE_E, DE_O, + MO(3), DE_UE, DE_OE, DE_AE, DE_C, DE_V, KC_END, + KC_TRNS, KC_TRNS, KC_LGUI, KC_LALT, KC_LCTL, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_INS, TG(2), + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_APP, + /*-*/ /*-*/ /*-*/ /*-*/ KC_BSPC, KC_LSFT, KC_ESC, + DE_GRV, DE_6, DE_7, DE_8, DE_9, DE_0, DE_CIRC, + TG(2), DE_H, DE_J, DE_K, DE_L, DE_Q, DE_Z, + /*-*/ DE_S, DE_N, DE_R, DE_T, DE_D, DE_SS, + KC_TAB, DE_B, DE_M, DE_COMM, DE_DOT, KC_UP, DE_Y, + /*-*/ /*-*/ KC_RCTL, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT, + M(UM), KC_DELT, + KC_PGUP, + KC_PGDN, KC_ENTER, KC_SPACE +), +/* + * .------------------------------------.------------------------------------. + * | |EXLM|DQOT|PARA| | | | | | | | |RING| | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | |ASTR|PIPE|SLSH|LCBR|RCBR| | |HASH|LESS|MORE| |DQOT| | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | |UNDS|MINS|AMPR|LBRC|RBRC|-----!-----!DLR |LPRN|RPRN|TILD|QUOT| QST | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | |PLUS|EQL | | | | |BSLS|PERC|SCLN|COLN| ↑ | | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! | | ← | ↓ | → | + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' + */ +[L1] = KEYMAP( + KC_TRNS, DE_EXLM, DE_DQOT, DE_PARA, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, DE_ASTR, DE_PIPE, DE_SLSH, DE_LCBR, DE_RCBR, KC_TRNS, + KC_TRNS, DE_UNDS, DE_MINS, DE_AMPR, DE_LBRC, DE_RBRC, + KC_TRNS, KC_TRNS, DE_PLUS, DE_EQL, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_RING, KC_TRNS, + KC_TRNS, DE_HASH, DE_LESS, DE_MORE, KC_TRNS, DE_DQOT, KC_TRNS, + /*-*/ DE_DLR, DE_LPRN, DE_RPRN, DE_TILD, DE_QUOT, DE_QST, + KC_TRNS, DE_BSLS, DE_PERC, DE_SCLN, DE_COLN, M(UC_UPWARDS_ARROW), KC_TRNS, + /*-*/ /*-*/ KC_TRNS, KC_TRNS, M(UC_LEFTWARDS_ARROW), M(UC_DOWNWARDS_ARROW), M(UC_RIGHTWARDS_ARROW), + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* + * .------------------------------------.------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | F11 | F12 | F6 | F7 | F8 | F9 |F10 |PEQL | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | | | | | | | | | P7 | P8 | P9 |PAST|PSLS | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | | | | |-----!-----! | P4 | P5 | P6 |PMNS|PMNS | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | | | | | | NLCK| | P1 | P2 | P3 |PPLS|PPLS | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! P0 |PCMM|PDOT|PENT|PENT| + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' + */ +[L2] = KEYMAP( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, 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, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PEQL, + KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PAST, KC_PSLS, + /*-*/ KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PMNS, + KC_NLCK, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_PPLS, + /*-*/ /*-*/ KC_P0, KC_PCMM, KC_PDOT, KC_PENT, KC_PENT, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* + * .------------------------------------.------------------------------------. + * | | ¹ | ² | ³ | ⁴ | ⁵ | ∀ | | ⁶ | ⁷ | ⁸ | ⁹ | ⁰ | | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | × | ½ | ÷ | ¼ | ⅕ | | | ⅙ | | ⅛ | | | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | ± | AT |EURO| ∅ |-----!-----! ∞ | ⁿ | ∃ | ∈ | | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | ⅓ | ≠ | ⅔ | ¾ | ≃ | | |EXLM| | ∄ | ∉ | | | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! | | | | | + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' + */ +[L3] = KEYMAP( + KC_TRNS, M(UC_SUPERSCRIPT_ONE), M(UC_SUPERSCRIPT_TWO), M(UC_SUPERSCRIPT_THREE), M(UC_SUPERSCRIPT_FOUR), M(UC_SUPERSCRIPT_FIVE), M(UC_FOR_ALL), + KC_TRNS, M(UC_MULTIPLICATION_SIGN), M(UC_VULGAR_FRACTION_ONE_HALF), M(UC_DIVISION_SIGN), M(UC_VULGAR_FRACTION_ONE_QUARTER), M(UC_VULGAR_FRACTION_ONE_FIFTH), KC_TRNS, + KC_TRNS, KC_TRNS, M(UC_PLUS_MINUS_SIGN), DE_AT, DE_EURO, M(UC_EMPTY_SET), + KC_TRNS, M(UC_VULGAR_FRACTION_ONE_THIRD), M(UC_NOT_EQUAL_TO), M(UC_VULGAR_FRACTION_TWO_THIRDS), M(UC_VULGAR_FRACTION_THREE_QUARTERS), M(UC_ASYMPTOTICALLY_EQUAL_TO), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, M(UC_SUPERSCRIPT_SIX), M(UC_SUPERSCRIPT_SEVEN), M(UC_SUPERSCRIPT_EIGHT), M(UC_SUPERSCRIPT_NINE), M(UC_SUPERSCRIPT_ZERO), KC_TRNS, + KC_TRNS, M(UC_VULGAR_FRACTION_ONE_SIXTH), KC_TRNS, M(UC_VULGAR_FRACTION_ONE_EIGHTH), KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ M(UC_INFINITY), M(UC_SUPERSCRIPT_LATIN_SMALL_LETTER_N), M(UC_THERE_EXISTS), M(UC_ELEMENT_OF), KC_TRNS, KC_TRNS, + KC_TRNS, DE_EXLM, KC_TRNS, M(UC_THERE_DOES_NOT_EXIST), M(UC_NOT_AN_ELEMENT_OF), KC_TRNS, KC_TRNS, + /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* + * .------------------------------------.------------------------------------. + * | | ₁ | ₂ | ₃ | ₄ | ₅ | | | ₆ | ₇ | ₈ | ₉ | ₀ | | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | χ | π | φ | ω | γ | | | η | ξ | κ | λ | | ζ | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | υ | ι | α | ε | ο |-----!-----! σ | ν | ρ | τ | δ | ς | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | θ | | | | | | β | μ | | | | ψ | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! | | | | | + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' + */ +[L4] = KEYMAP( + KC_TRNS, M(UC_SUBSCRIPT_ONE), M(UC_SUBSCRIPT_TWO), M(UC_SUBSCRIPT_THREE), M(UC_SUBSCRIPT_FOUR), M(UC_SUBSCRIPT_FIVE), KC_TRNS, + KC_TRNS, M(UC_GREEK_SMALL_LETTER_CHI), M(UC_GREEK_SMALL_LETTER_PI), M(UC_GREEK_SMALL_LETTER_PHI), M(UC_GREEK_SMALL_LETTER_OMEGA), M(UC_GREEK_SMALL_LETTER_GAMMA), KC_TRNS, + KC_TRNS, M(UC_GREEK_SMALL_LETTER_UPSILON), M(UC_GREEK_SMALL_LETTER_IOTA), M(UC_GREEK_SMALL_LETTER_ALPHA), M(UC_GREEK_SMALL_LETTER_EPSILON), M(UC_GREEK_SMALL_LETTER_OMICRON), + KC_TRNS, KC_TRNS, M(UC_GREEK_SMALL_LETTER_THETA), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, M(UC_SUBSCRIPT_SIX), M(UC_SUBSCRIPT_SEVEN), M(UC_SUBSCRIPT_EIGHT), M(UC_SUBSCRIPT_NINE), M(UC_SUBSCRIPT_ZERO), KC_TRNS, + KC_TRNS, M(UC_GREEK_SMALL_LETTER_ETA), M(UC_GREEK_SMALL_LETTER_XI), M(UC_GREEK_SMALL_LETTER_KAPPA), M(UC_GREEK_SMALL_LETTER_LAMDA), KC_TRNS, M(UC_GREEK_SMALL_LETTER_ZETA), + /*-*/ M(UC_GREEK_SMALL_LETTER_SIGMA), M(UC_GREEK_SMALL_LETTER_NU), M(UC_GREEK_SMALL_LETTER_RHO), M(UC_GREEK_SMALL_LETTER_TAU), M(UC_GREEK_SMALL_LETTER_DELTA), M(UC_GREEK_SMALL_LETTER_FINAL_SIGMA), + KC_TRNS, M(UC_GREEK_SMALL_LETTER_BETA), M(UC_GREEK_SMALL_LETTER_MU), KC_TRNS, KC_TRNS, KC_TRNS, M(UC_GREEK_SMALL_LETTER_PSI), + /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* + * .------------------------------------.------------------------------------. + * | | | | | | | | | | | | | | | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | Χ | Π | Φ | Ω | Γ | | | Η | Ξ | Κ | Λ | | Ζ | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | Υ | Ι | Α | Ε | Ο |-----!-----! Σ | Ν | Ρ | Τ | Δ | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | Θ | | | | | | Β | Μ | | | | Ψ | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! | | | | | + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' + */ +[L5] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_CHI), M(UC_GREEK_CAPITAL_LETTER_PI), M(UC_GREEK_CAPITAL_LETTER_PHI), M(UC_GREEK_CAPITAL_LETTER_OMEGA), M(UC_GREEK_CAPITAL_LETTER_GAMMA), KC_TRNS, + KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_UPSILON), M(UC_GREEK_CAPITAL_LETTER_IOTA), M(UC_GREEK_CAPITAL_LETTER_ALPHA), M(UC_GREEK_CAPITAL_LETTER_EPSILON), M(UC_GREEK_CAPITAL_LETTER_OMICRON), + KC_TRNS, KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_THETA), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_ETA), M(UC_GREEK_CAPITAL_LETTER_XI), M(UC_GREEK_CAPITAL_LETTER_KAPPA), M(UC_GREEK_CAPITAL_LETTER_LAMDA), KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_ZETA), + /*-*/ M(UC_GREEK_CAPITAL_LETTER_SIGMA), M(UC_GREEK_CAPITAL_LETTER_NU), M(UC_GREEK_CAPITAL_LETTER_RHO), M(UC_GREEK_CAPITAL_LETTER_TAU), M(UC_GREEK_CAPITAL_LETTER_DELTA), KC_TRNS, + KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_BETA), M(UC_GREEK_CAPITAL_LETTER_MU), KC_TRNS, KC_TRNS, KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_PSI), + /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* + * .------------------------------------.------------------------------------. + * | | | | | | | | | | | | | | | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | | | | | | | | | | | | | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | | | | |-----!-----! | | | | | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | | | | | | | | | | | | | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! | | | | | + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' + */ +[L6] = 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, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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[] = {}; + +#define UC_MODE_WIN 0 +#define UC_MODE_LINUX 1 +#define UC_MODE_OSX 2 + +// TODO: allow default mode to be configured +static uint16_t unicode_mode = UC_MODE_WIN; + +uint16_t hextokeycode(uint8_t hex) { + if (hex == 0x0) { + return KC_P0; + } + if (hex < 0xA) { + return KC_P1 + (hex - 0x1); + } + return KC_A + (hex - 0xA); +} + +void unicode_action_function(uint16_t hi, uint16_t lo) { + switch (unicode_mode) { + case UC_MODE_WIN: + register_code(KC_LALT); + + register_code(KC_PPLS); + unregister_code(KC_PPLS); + + register_code(hextokeycode((hi & 0xF0) >> 4)); + unregister_code(hextokeycode((hi & 0xF0) >> 4)); + register_code(hextokeycode((hi & 0x0F))); + unregister_code(hextokeycode((hi & 0x0F))); + register_code(hextokeycode((lo & 0xF0) >> 4)); + unregister_code(hextokeycode((lo & 0xF0) >> 4)); + register_code(hextokeycode((lo & 0x0F))); + unregister_code(hextokeycode((lo & 0x0F))); + + unregister_code(KC_LALT); + break; + case UC_MODE_LINUX: + register_code(KC_LCTL); + register_code(KC_LSFT); + + register_code(KC_U); + unregister_code(KC_U); + + register_code(hextokeycode((hi & 0xF0) >> 4)); + unregister_code(hextokeycode((hi & 0xF0) >> 4)); + register_code(hextokeycode((hi & 0x0F))); + unregister_code(hextokeycode((hi & 0x0F))); + register_code(hextokeycode((lo & 0xF0) >> 4)); + unregister_code(hextokeycode((lo & 0xF0) >> 4)); + register_code(hextokeycode((lo & 0x0F))); + unregister_code(hextokeycode((lo & 0x0F))); + + unregister_code(KC_LCTL); + unregister_code(KC_LSFT); + break; + case UC_MODE_OSX: + break; + } +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + if (!record->event.pressed) { + return MACRO_NONE; + } + // MACRODOWN only works in this function + switch(id) { + case UM: + unicode_mode = (unicode_mode + 1) % 2; + break; + +case UC_GREEK_SMALL_LETTER_OMICRON: + unicode_action_function(0x03, 0xbf); + break; +case UC_LEFTWARDS_ARROW: + unicode_action_function(0x21, 0x90); + break; +case UC_GREEK_CAPITAL_LETTER_RHO: + unicode_action_function(0x03, 0xa1); + break; +case UC_SUBSCRIPT_THREE: + unicode_action_function(0x20, 0x83); + break; +case UC_VULGAR_FRACTION_ONE_EIGHTH: + unicode_action_function(0x21, 0x5b); + break; +case UC_GREEK_SMALL_LETTER_LAMDA: + unicode_action_function(0x03, 0xbb); + break; +case UC_VULGAR_FRACTION_ONE_THIRD: + unicode_action_function(0x21, 0x53); + break; +case UC_GREEK_SMALL_LETTER_XI: + unicode_action_function(0x03, 0xbe); + break; +case UC_THERE_DOES_NOT_EXIST: + unicode_action_function(0x22, 0x04); + break; +case UC_SUPERSCRIPT_ONE: + unicode_action_function(0x00, 0xb9); + break; +case UC_GREEK_SMALL_LETTER_BETA: + unicode_action_function(0x03, 0xb2); + break; +case UC_SUBSCRIPT_FIVE: + unicode_action_function(0x20, 0x85); + break; +case UC_GREEK_CAPITAL_LETTER_IOTA: + unicode_action_function(0x03, 0x99); + break; +case UC_VULGAR_FRACTION_ONE_FIFTH: + unicode_action_function(0x21, 0x55); + break; +case UC_GREEK_SMALL_LETTER_PSI: + unicode_action_function(0x03, 0xc8); + break; +case UC_SUBSCRIPT_NINE: + unicode_action_function(0x20, 0x89); + break; +case UC_SUPERSCRIPT_FOUR: + unicode_action_function(0x20, 0x74); + break; +case UC_RIGHTWARDS_ARROW: + unicode_action_function(0x21, 0x92); + break; +case UC_SUPERSCRIPT_SIX: + unicode_action_function(0x20, 0x76); + break; +case UC_DOWNWARDS_ARROW: + unicode_action_function(0x21, 0x93); + break; +case UC_GREEK_SMALL_LETTER_PI: + unicode_action_function(0x03, 0xc0); + break; +case UC_SUPERSCRIPT_TWO: + unicode_action_function(0x00, 0xb2); + break; +case UC_GREEK_CAPITAL_LETTER_OMEGA: + unicode_action_function(0x03, 0xa9); + break; +case UC_GREEK_CAPITAL_LETTER_PSI: + unicode_action_function(0x03, 0xa8); + break; +case UC_SUBSCRIPT_FOUR: + unicode_action_function(0x20, 0x84); + break; +case UC_GREEK_CAPITAL_LETTER_NU: + unicode_action_function(0x03, 0x9d); + break; +case UC_DIVISION_SIGN: + unicode_action_function(0x00, 0xf7); + break; +case UC_GREEK_SMALL_LETTER_SIGMA: + unicode_action_function(0x03, 0xc3); + break; +case UC_GREEK_SMALL_LETTER_RHO: + unicode_action_function(0x03, 0xc1); + break; +case UC_VULGAR_FRACTION_ONE_SIXTH: + unicode_action_function(0x21, 0x59); + break; +case UC_GREEK_SMALL_LETTER_GAMMA: + unicode_action_function(0x03, 0xb3); + break; +case UC_VULGAR_FRACTION_TWO_THIRDS: + unicode_action_function(0x21, 0x54); + break; +case UC_GREEK_SMALL_LETTER_NU: + unicode_action_function(0x03, 0xbd); + break; +case UC_GREEK_SMALL_LETTER_ZETA: + unicode_action_function(0x03, 0xb6); + break; +case UC_GREEK_SMALL_LETTER_EPSILON: + unicode_action_function(0x03, 0xb5); + break; +case UC_GREEK_SMALL_LETTER_KAPPA: + unicode_action_function(0x03, 0xba); + break; +case UC_SUPERSCRIPT_SEVEN: + unicode_action_function(0x20, 0x77); + break; +case UC_GREEK_CAPITAL_LETTER_PI: + unicode_action_function(0x03, 0xa0); + break; +case UC_GREEK_SMALL_LETTER_FINAL_SIGMA: + unicode_action_function(0x03, 0xc2); + break; +case UC_GREEK_CAPITAL_LETTER_XI: + unicode_action_function(0x03, 0x9e); + break; +case UC_GREEK_SMALL_LETTER_THETA: + unicode_action_function(0x03, 0xb8); + break; +case UC_GREEK_SMALL_LETTER_ETA: + unicode_action_function(0x03, 0xb7); + break; +case UC_SUBSCRIPT_TWO: + unicode_action_function(0x20, 0x82); + break; +case UC_ASYMPTOTICALLY_EQUAL_TO: + unicode_action_function(0x22, 0x43); + break; +case UC_GREEK_SMALL_LETTER_ALPHA: + unicode_action_function(0x03, 0xb1); + break; +case UC_GREEK_CAPITAL_LETTER_PHI: + unicode_action_function(0x03, 0xa6); + break; +case UC_GREEK_SMALL_LETTER_PHI: + unicode_action_function(0x03, 0xc6); + break; +case UC_INFINITY: + unicode_action_function(0x22, 0x1e); + break; +case UC_GREEK_CAPITAL_LETTER_OMICRON: + unicode_action_function(0x03, 0x9f); + break; +case UC_ELEMENT_OF: + unicode_action_function(0x22, 0x08); + break; +case UC_MULTIPLICATION_SIGN: + unicode_action_function(0x00, 0xd7); + break; +case UC_SUBSCRIPT_ZERO: + unicode_action_function(0x20, 0x80); + break; +case UC_GREEK_CAPITAL_LETTER_SIGMA: + unicode_action_function(0x03, 0xa3); + break; +case UC_GREEK_SMALL_LETTER_OMEGA: + unicode_action_function(0x03, 0xc9); + break; +case UC_SUBSCRIPT_ONE: + unicode_action_function(0x20, 0x81); + break; +case UC_GREEK_CAPITAL_LETTER_ZETA: + unicode_action_function(0x03, 0x96); + break; +case UC_GREEK_SMALL_LETTER_TAU: + unicode_action_function(0x03, 0xc4); + break; +case UC_SUPERSCRIPT_FIVE: + unicode_action_function(0x20, 0x75); + break; +case UC_THERE_EXISTS: + unicode_action_function(0x22, 0x03); + break; +case UC_PLUS_MINUS_SIGN: + unicode_action_function(0x00, 0xb1); + break; +case UC_VULGAR_FRACTION_THREE_QUARTERS: + unicode_action_function(0x00, 0xbe); + break; +case UC_SUPERSCRIPT_THREE: + unicode_action_function(0x00, 0xb3); + break; +case UC_EMPTY_SET: + unicode_action_function(0x22, 0x05); + break; +case UC_UPWARDS_ARROW: + unicode_action_function(0x21, 0x91); + break; +case UC_SUPERSCRIPT_NINE: + unicode_action_function(0x20, 0x79); + break; +case UC_GREEK_SMALL_LETTER_DELTA: + unicode_action_function(0x03, 0xb4); + break; +case UC_GREEK_SMALL_LETTER_MU: + unicode_action_function(0x03, 0xbc); + break; +case UC_GREEK_CAPITAL_LETTER_KAPPA: + unicode_action_function(0x03, 0x9a); + break; +case UC_SUBSCRIPT_EIGHT: + unicode_action_function(0x20, 0x88); + break; +case UC_GREEK_CAPITAL_LETTER_ALPHA: + unicode_action_function(0x03, 0x91); + break; +case UC_SUBSCRIPT_SEVEN: + unicode_action_function(0x20, 0x87); + break; +case UC_GREEK_CAPITAL_LETTER_BETA: + unicode_action_function(0x03, 0x92); + break; +case UC_GREEK_CAPITAL_LETTER_ETA: + unicode_action_function(0x03, 0x97); + break; +case UC_SUPERSCRIPT_EIGHT: + unicode_action_function(0x20, 0x78); + break; +case UC_SUPERSCRIPT_ZERO: + unicode_action_function(0x20, 0x70); + break; +case UC_NOT_AN_ELEMENT_OF: + unicode_action_function(0x22, 0x09); + break; +case UC_GREEK_SMALL_LETTER_UPSILON: + unicode_action_function(0x03, 0xc5); + break; +case UC_NOT_EQUAL_TO: + unicode_action_function(0x22, 0x60); + break; +case UC_GREEK_CAPITAL_LETTER_CHI: + unicode_action_function(0x03, 0xa7); + break; +case UC_FOR_ALL: + unicode_action_function(0x22, 0x00); + break; +case UC_GREEK_CAPITAL_LETTER_TAU: + unicode_action_function(0x03, 0xa4); + break; +case UC_VULGAR_FRACTION_ONE_QUARTER: + unicode_action_function(0x00, 0xbc); + break; +case UC_GREEK_SMALL_LETTER_CHI: + unicode_action_function(0x03, 0xc7); + break; +case UC_GREEK_CAPITAL_LETTER_THETA: + unicode_action_function(0x03, 0x98); + break; +case UC_GREEK_SMALL_LETTER_IOTA: + unicode_action_function(0x03, 0xb9); + break; +case UC_GREEK_CAPITAL_LETTER_LAMDA: + unicode_action_function(0x03, 0x9b); + break; +case UC_SUPERSCRIPT_LATIN_SMALL_LETTER_N: + unicode_action_function(0x20, 0x7f); + break; +case UC_GREEK_CAPITAL_LETTER_UPSILON: + unicode_action_function(0x03, 0xa5); + break; +case UC_GREEK_CAPITAL_LETTER_MU: + unicode_action_function(0x03, 0x9c); + break; +case UC_GREEK_CAPITAL_LETTER_EPSILON: + unicode_action_function(0x03, 0x95); + break; +case UC_GREEK_CAPITAL_LETTER_GAMMA: + unicode_action_function(0x03, 0x93); + break; +case UC_SUBSCRIPT_SIX: + unicode_action_function(0x20, 0x86); + break; +case UC_GREEK_CAPITAL_LETTER_DELTA: + unicode_action_function(0x03, 0x94); + break; +case UC_VULGAR_FRACTION_ONE_HALF: + unicode_action_function(0x00, 0xbd); + break; + default: + 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 L1: + ergodox_right_led_1_on(); + break; + case L2: + ergodox_right_led_2_on(); + break; + case L3: + ergodox_right_led_3_on(); + break; + case L4: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + break; + case L5: + ergodox_right_led_1_on(); + ergodox_right_led_3_on(); + break; + // case L6: + // ergodox_right_led_2_on(); + // ergodox_right_led_3_on(); + // break; + // case L7: + // ergodox_right_led_1_on(); + // ergodox_right_led_2_on(); + // ergodox_right_led_3_on(); + // break; + default: + ergodox_board_led_off(); + break; + } +}; diff --git a/keyboards/ergodox/keymaps/german-manuneo/keymap.md b/keyboards/ergodox/keymaps/german-manuneo/keymap.md new file mode 100644 index 000000000..2c9e0a837 --- /dev/null +++ b/keyboards/ergodox/keymaps/german-manuneo/keymap.md @@ -0,0 +1,188 @@ +# ManuNeo Ergodox Keyboard Layout + +Compile this file to a `keymap.c` file using `compile_keymap.py` + + python compile_keymap.py keymaps/german-manuneo/keymap.md + +Tested with python 2.7 and python 3.4 + + +# Layout Config + + { + "layout": "ergodox_ez", + "keymaps_includes": [ + "ergodox_ez.h", + "action_layer.h", + "keymap_common.h", + "keymap_extras/keymap_german.h", + ], + "key_prefixes": ["DE_", "KC_"], + "macros": { + // TODO: implement macros + // "MUC": "", + }, + // TODO: implement default unicode mode + } + + +# Layers + + +## Layer 0 + + .------------------------------------.------------------------------------. + |MO(5)| 1 | 2 | 3 | 4 | 5 |ACUT | GRV | 6 | 7 | 8 | 9 | 0 |CIRC | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + |MO(4)| X | P | F | W | G |HOME |TG(2)| H | J | K | L | Q | Z | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + |MO(1)| U | I | A | E | O |-----!-----! S | N | R | T | D | SS | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + |MO(3)| UE | OE | AE | C | V |END | TAB | B | M |COMM| DOT| UP | Y | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | |LGUI|LALT|LCTL| !RCTL|RALT|LEFT|DOWN|RGHT| + '------------------------' '------------------------' + .-----------. .-----------. + |INS |TG(2)| !M(UM)|DELT | + .-----+-----+-----! !-----+-----+-----. + ! ! | APP | ! PGUP| ! ! + ! ! !-----! !-----! ! ! + |BSPC |LSFT | ESC | ! PGDN|ENTER|SPACE| + '-----------------' '-----------------' + + +## Layer 1 + + .------------------------------------.------------------------------------. + | |EXLM|DQOT|PARA| | | | | | | | |RING| | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | |ASTR|PIPE|SLSH|LCBR|RCBR| | |HASH|LESS|MORE| |DQOT| | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | |UNDS|MINS|AMPR|LBRC|RBRC|-----!-----!DLR |LPRN|RPRN|TILD|QUOT| QST | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | |PLUS|EQL | | | | |BSLS|PERC|SCLN|COLN| ↑ | | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | ← | ↓ | → | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' + + +## Layer 2 + + .------------------------------------.------------------------------------. + | | F1 | F2 | F3 | F4 | F5 | F11 | F12 | F6 | F7 | F8 | F9 |F10 |PEQL | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | | | | | | | | | P7 | P8 | P9 |PAST|PSLS | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | | | | |-----!-----! | P4 | P5 | P6 |PMNS|PMNS | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | | | | | | NLCK| | P1 | P2 | P3 |PPLS|PPLS | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! P0 |PCMM|PDOT|PENT|PENT| + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' + + + +## Layer 3 + +http://symbolcodes.tlt.psu.edu/bylanguage/mathchart.html + + .------------------------------------.------------------------------------. + | | ¹ | ² | ³ | ⁴ | ⁵ | ∀ | | ⁶ | ⁷ | ⁸ | ⁹ | ⁰ | | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | × | ½ | ÷ | ¼ | ⅕ | | | ⅙ | | ⅛ | | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | ± | AT |EURO| ∅ |-----!-----! ∞ | ⁿ | ∃ | ∈ | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | ⅓ | ≠ | ⅔ | ¾ | ≃ | | |EXLM| | ∄ | ∉ | | | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' + + +## Layer 4 + + + .------------------------------------.------------------------------------. + | | ₁ | ₂ | ₃ | ₄ | ₅ | | | ₆ | ₇ | ₈ | ₉ | ₀ | | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | χ | π | φ | ω | γ | | | η | ξ | κ | λ | | ζ | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | υ | ι | α | ε | ο |-----!-----! σ | ν | ρ | τ | δ | ς | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | θ | | | | | | β | μ | | | | ψ | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' + + +## Layer 5 + + .------------------------------------.------------------------------------. + | | | | | | | | | | | | | | | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | Χ | Π | Φ | Ω | Γ | | | Η | Ξ | Κ | Λ | | Ζ | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | Υ | Ι | Α | Ε | Ο |-----!-----! Σ | Ν | Ρ | Τ | Δ | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | Θ | | | | | | Β | Μ | | | | Ψ | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' + + +## Layer 6 + + .------------------------------------.------------------------------------. + | | | | | | | | | | | | | | | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | | | | | | | | | | | | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | | | | |-----!-----! | | | | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | | | | | | | | | | | | | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' + diff --git a/keyboards/ergodox/keymaps/german/keymap.c b/keyboards/ergodox/keymaps/german/keymap.c new file mode 100644 index 000000000..3eab51f0e --- /dev/null +++ b/keyboards/ergodox/keymaps/german/keymap.c @@ -0,0 +1,185 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "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/keyboards/ergodox/keymaps/j3rn/keymap.c b/keyboards/ergodox/keymaps/j3rn/keymap.c new file mode 100644 index 000000000..6e271321d --- /dev/null +++ b/keyboards/ergodox/keymaps/j3rn/keymap.c @@ -0,0 +1,187 @@ +#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 / L2| S | D | F | G |------| |------| H | J | K | L | ; | ' | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | ~L1 | ~L2 |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), LT(MDIA, 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_FN2, 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, 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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | Lclk | Rclk | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------|MsLeft|MsDown| MsUp |MsRght| | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | |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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_BTN1, KC_BTN2, 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_TRNS, KC_WBAK +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Layer 1 (Symbols) + [2] = ACTION_LAYER_TAP_TOGGLE(MDIA) // FN2 - Momentary Layer 2 (Media) +}; + +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/keyboards/ergodox/keymaps/j3rn/readme.md b/keyboards/ergodox/keymaps/j3rn/readme.md new file mode 100644 index 000000000..fc4b64042 --- /dev/null +++ b/keyboards/ergodox/keymaps/j3rn/readme.md @@ -0,0 +1,29 @@ +# J3RN's Mac-centric ErgoDox EZ keymap + +## Motivation + +Essentially, I wanted to switch to a layout that was less jarring than the default ErgoDox EZ layout, and did not require finger gymnastics to perform common OS X shortcuts (most of which involve the CMD (LGui) key). + +## How is it different from the default ErgoDox EZ layout? + +This layout more closely resembles that of the Mac keyboard, and has some other goodness baked in. Here is a rundown of what that means: + +### Mac-like changes + +- **The key to the left of "1" is "~" instead of "=".** +- **The key to the right of "0" is Backspace instead of "-"** (misleadingly labeled "delete" on the Mac's keyboard). There was no room to fit in "-" and "=" between "0" and Backspace, unfortunately. +- **The key to the left of "Q" is Tab instead of Delete.** +- **The rightmost big key on the left thumb is CMD (LGui) instead of Backspace.** + +### Other changes + +- **The button to the left of "A" is Ctrl/Esc instead of Backspace.** This is actually how I have the keyboard on my Macbook set up to be, since it's loads more convenient than a CAPS LOCK key. This is the Ctrl key I find myself using most. +- **Mouse uses Vim-style navigation**. To activate "Media mode," hold the 'a' key. This allows you to move the mouse around with hjkl just like in Vim. Additionally, right and left click are the conveniently placed 'i' and 'o' keys. +- **The key to the right of "5" and the key to left of "6" are "[" and "]", respectively, instead of Left and Right.** There is a more convenient set of Left and Right already present. Truth be told, I don't really use these keys, as they are a stretch to reach. +- **The Toggle L1 keys have been replaced by the otherwise displaced "-" and "=".** They are laid out, left-to-right, in the same order as on the Mac keyboard. Honestly, they are not terribly conveniently placed, and their placement might change in a later version. I found that I did not toggle L1 frequently at all, and found using the momentary keys to access L1 to fit my workflow better. +- **The "~"/L1 key in the bottom-left is now just momentary L1.** The "~" key was moved to the top-left as mentioned before, and I like to keep my multi-use keys to a minimum due to the latency for them to switch from "press" to "hold." +- **The Home and End buttons have been shifted up on the left thumb, and Shift inserted below them.** This makes doing Shift-5 and other such combinations less painful. +- **The Page Up and Page Down buttons have been shifted up on the right thumb, and Alt was moved from above them to below them.** I use Alt more than Page Up or Page Down (mostly in terminal applications), and thought that it deserved a more accessible location. + + +**I'm always open to feedback and/or suggestions!** diff --git a/keyboards/ergodox/keymaps/jack/keymap.c b/keyboards/ergodox/keymaps/jack/keymap.c new file mode 100644 index 000000000..80bf9d535 --- /dev/null +++ b/keyboards/ergodox/keymaps/jack/keymap.c @@ -0,0 +1,118 @@ +#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] = { +[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 + ), +[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 +), +[MDIA] = 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/keyboards/ergodox/keymaps/jacobono/img/colemak-default-layer.png b/keyboards/ergodox/keymaps/jacobono/img/colemak-default-layer.png new file mode 100644 index 000000000..06f63c496 Binary files /dev/null and b/keyboards/ergodox/keymaps/jacobono/img/colemak-default-layer.png differ diff --git a/keyboards/ergodox/keymaps/jacobono/img/number-dpad-layer.png b/keyboards/ergodox/keymaps/jacobono/img/number-dpad-layer.png new file mode 100644 index 000000000..4dd718278 Binary files /dev/null and b/keyboards/ergodox/keymaps/jacobono/img/number-dpad-layer.png differ diff --git a/keyboards/ergodox/keymaps/jacobono/img/symbol-layer.png b/keyboards/ergodox/keymaps/jacobono/img/symbol-layer.png new file mode 100644 index 000000000..ee224cf0c Binary files /dev/null and b/keyboards/ergodox/keymaps/jacobono/img/symbol-layer.png differ diff --git a/keyboards/ergodox/keymaps/jacobono/keymap.c b/keyboards/ergodox/keymaps/jacobono/keymap.c new file mode 100644 index 000000000..6b19800af --- /dev/null +++ b/keyboards/ergodox/keymaps/jacobono/keymap.c @@ -0,0 +1,273 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define COLEMAK 0 // new colemak layout +#define QWERTY 1 // default layer +#define SYMB 2 // symbols +#define NUMPAD 3 // number pad +#define MDIA 4 // media keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap 0: Basic COLEMAK layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | F | P | G | | | | J | L | U | Y | ; | TAB | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | BkSp | A | R | S | T | D |------| |------| H | N | E | I | O | DEL | + * |--------+------+------+------+------+------| | LGUI(TAB)------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | K | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | L1 | | | UP |MO(L2)| |MO(L2)| Down | | ALT | RGUI | + * `----------------------------------' `------------------------------------' + * ,-------------. ,---------------. + * | LGUI | App | |Ctrl/Esc| Alt | + * ,------|------|------| |--------+--------+------. + * | | |QUKSL | | QUKSL | | | + * |Space |ENTER |------| |--------| ENTER |Space | + * | | |MO(L3)| | MO(L3) | | | + * `--------------------' `------------------------' + */ + + // If it accepts an argument (i.e, is a function), it doesn't need KC_. + // Otherwise, it needs KC_* + [COLEMAK] = KEYMAP( // layer 0 : Colemak layout default layer + // left hand + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_TRNS, + KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, + KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_TRNS, + TG(QWERTY), KC_TRNS, KC_TRNS,KC_UP, MO(SYMB), + KC_LGUI, KC_APP, + LGUI(S(KC_SPC)), + KC_SPC,KC_ENT,MO(NUMPAD), + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELT, + KC_TRNS, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_TAB, + KC_H, KC_N, KC_E, KC_I, KC_O, KC_DEL, + LGUI(KC_TAB), KC_K, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + MO(SYMB), KC_DOWN, KC_TRNS, KC_RALT, KC_RGUI, + CTL_T(KC_ESC), KC_LALT, + LGUI(S(KC_SPC)), + MO(NUMPAD), KC_ENT, KC_SPC), + + /* Keymap 1: Basic QWERTY layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | BkSp | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | DEL | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | L0 | | L0 | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Ctrl | A | S | D | F | G |------| |------| H | J | K | L |; / L4| CTRL | + * |--------+------+------+------+------+------| Alt | | Alt |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L3| '" |AltShf| Left |MO(L2)| |MO(L2)| Down | [ | ] | ~L3 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,---------------. + * | Tab | BkSp | | Alt |Ctrl/Esc| + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space| LGUI |------| |------| RGUI |Enter | + * | | | End | | PgDn | | | + * `--------------------' `----------------------' + */ + // If it accepts an argument (i.e, is a function), it doesn't need KC_. + // Otherwise, it needs KC_* + [QWERTY] = KEYMAP( // layer 1 + // left hand + KC_BSPC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS, + KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_LALT, + KC_TRNS, KC_QUOT, LALT(KC_LSFT), KC_LEFT, MO(SYMB), + KC_TAB, KC_DELT, + KC_HOME, + KC_SPC, KC_LGUI, KC_END, + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELT, + KC_TRNS, 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_RCTRL, + KC_RALT, KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + MO(SYMB), KC_DOWN, KC_LBRC, KC_RBRC, KC_FN1, + KC_LALT, CTL_T(KC_ESC), + KC_PGUP, + KC_PGDN, KC_RGUI, KC_ENT), + + + /* Keymap 2: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | @ | * | = | _ | | | | ~ | { | } | # | : | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | ! | + | - | " |------| |------| " | ( | ) | ' | ` | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | % | ^ | $ | & | | | | ; | [ | ] | \ | / | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ + // SYMBOL + [SYMB] = KEYMAP( + // left hand + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS, KC_TRNS, KC_AT, KC_ASTR, KC_EQL, KC_UNDS, KC_TRNS, + KC_TRNS, KC_PIPE, KC_EXLM, KC_PLUS, KC_MINS, S(KC_QUOTE), + KC_TRNS, KC_TRNS, KC_PERC, KC_CIRC, KC_DLR, KC_AMPR, 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_TILD, KC_LCBR, KC_RCBR, KC_HASH, S(KC_SCLN), KC_F12, + S(KC_QUOTE),KC_LPRN, KC_RPRN, KC_QUOTE, KC_GRV, KC_TRNS, + KC_TRNS, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_SLSH, 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 3: Numpad Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | UP | | | | | | $ | 7 | 8 | 9 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | LEFT | DOWN | RIGHT| |------| |------| = | 4 | 5 | 6 | - | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | 1 | 2 | 3 | * | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | , | 0 | . | / | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ + // Numpad + [NUMPAD] = KEYMAP( + // left hand + 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_RIGHT,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,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_DLR, KC_7, KC_8, KC_9, KC_PLUS, KC_TRNS, + KC_EQL, KC_4, KC_5, KC_6, KC_MINS, KC_TRNS, + KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_ASTR, KC_TRNS, + KC_COMMA,KC_0, KC_DOT, KC_SLSH, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), + + /* Keymap 4: 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/keyboards/ergodox/keymaps/jacobono/readme.md b/keyboards/ergodox/keymaps/jacobono/readme.md new file mode 100644 index 000000000..48de0509f --- /dev/null +++ b/keyboards/ergodox/keymaps/jacobono/readme.md @@ -0,0 +1,34 @@ +# Default Layer # + +I'm using the colemak layer -- customized a bit to work a bit better when using spacemacs as my editor. + +![default-layer](img/colemak-default-layer.png) + +## Special Keys ## + +`SC1` => `LGUI + TAB` + +`SC2` => `LGUI + SPACE + TAB` + +`L1` => Switch to QWERTY Layout + +`T(L2)` => Toggle Symbol Layer + +`T(L3)` => Toggle Number and D-Pad Layer + +# QWERTY # + +Nothing special here -- just need this layer tucked away for the `WASD`. Which is literally the only reason I use it. +Just have the same button to toggle back to colemak. + +# Symbol Layer # + +![symbol-layer](img/symbol-layer.png) + +This is just putting matching closing symbols next to each other -- useful when editing lisp. + +# Number and D-Pad Layer # + +Just a basic number layer with a D-PAD on the other side. + +![number-dpad-layer](img/number-dpad-layer.png) diff --git a/keyboards/ergodox/keymaps/jgarr/keymap.c b/keyboards/ergodox/keymaps/jgarr/keymap.c new file mode 100644 index 000000000..a3ad2040f --- /dev/null +++ b/keyboards/ergodox/keymaps/jgarr/keymap.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/keyboards/ergodox/keymaps/josh/keymap.c b/keyboards/ergodox/keymaps/josh/keymap.c new file mode 100644 index 000000000..de5664a25 --- /dev/null +++ b/keyboards/ergodox/keymaps/josh/keymap.c @@ -0,0 +1,205 @@ +#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 + +//macros +#define CTL_SFT_T 100 +#define CTL_SFT_G 101 +#define CTL_ALT_H 102 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | ESC | | M 100| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * |TAB /Alt| Q | W | E | R | T | Meh | | Meh | Y | U | I | O | P |\ / ALT | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | LCTL | A | S | D | F | G |------| |------| H | J | K | L |; / L2|' / CTL | + * |--------+------+------+------+------+------| ~L1 | | ~L1 |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | WIN | ` | M 102| M 101|AltShf| |AltShf| Left | Down | Up | Right | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | App | LALT | | Alt | CAPS | + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space|Backsp|------| |------| Delete |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_ESC, + ALT_T(KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, ALL_T(KC_NO), + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(SYMB), + KC_LGUI, KC_GRV, M(CTL_ALT_H),M(CTL_SFT_G),LALT(KC_LSFT), + CTL_T(KC_APP), KC_LALT, + KC_HOME, + KC_SPC,KC_BSPC,KC_END, + // right hand + M(CTL_SFT_T),KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + MEH_T(KC_NO),KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),CTL_T(KC_QUOT), + MO(SYMB), KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, + LALT(KC_LSFT),KC_LEFT,KC_DOWN,KC_UP, KC_RIGHT, + KC_LALT, KC_CAPS, + KC_PGUP, + KC_PGDN,KC_DEL, KC_ENT + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * |Version | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | CALC | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Left | Down | Up | Right| | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + M(0), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, + 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_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_CALC, + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LEFT, KC_DOWN,KC_UP, KC_RIGHT,KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, 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 +), +}; + +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) { + SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); + } + break; + case CTL_SFT_T: + if (record->event.pressed) { + return MACRO(D(LCTL), D(LSFT), T(T), END); + } + return MACRO(U(LCTL), U(LSFT), END); + break; + case CTL_SFT_G: + if (record->event.pressed) { + return MACRO(D(LCTL), D(LSFT), T(G), END); + } + return MACRO(U(LCTL), U(LSFT), END); + break; + case CTL_ALT_H: + if (record->event.pressed) { + return MACRO(D(LCTL), D(LALT), T(H), END); + } + return MACRO(U(LCTL), U(LALT), END); + 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/keyboards/ergodox/keymaps/josh/readme.md b/keyboards/ergodox/keymaps/josh/readme.md new file mode 100644 index 000000000..cee19d47e --- /dev/null +++ b/keyboards/ergodox/keymaps/josh/readme.md @@ -0,0 +1,8 @@ +Layout is based on the default layout that comes on the ergodox infinity. Focused mostly on making ctl and alt easy to reach. I spend most my day working in Eclipse which has just so many 3 key shortcuts. + +* Removed numpad keys from symbol layer (I don't use them) +* Added arrow keys under h, j, k, l on symbol layer. vi movement keys! +* Added a few macros for eclipse hotkeys that I used all the time +* Added calc button on symbol layer +* tap vs hold on tab and \. Gives alt, ctl and shift on both sides of the keyboard + diff --git a/keyboards/ergodox/keymaps/kastyle/keymap.c b/keyboards/ergodox/keymaps/kastyle/keymap.c new file mode 100644 index 000000000..3982e0a19 --- /dev/null +++ b/keyboards/ergodox/keymaps/kastyle/keymap.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/keyboards/ergodox/keymaps/kines-ish/keymap.c b/keyboards/ergodox/keymaps/kines-ish/keymap.c new file mode 100644 index 000000000..5063c99f2 --- /dev/null +++ b/keyboards/ergodox/keymaps/kines-ish/keymap.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/keyboards/ergodox/keymaps/kines-ish/readme.md b/keyboards/ergodox/keymaps/kines-ish/readme.md new file mode 100644 index 000000000..5d39a0590 --- /dev/null +++ b/keyboards/ergodox/keymaps/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/keyboards/ergodox/keymaps/maz/keymap.c b/keyboards/ergodox/keymaps/maz/keymap.c new file mode 100644 index 000000000..7b8f0df74 --- /dev/null +++ b/keyboards/ergodox/keymaps/maz/keymap.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 ARRW 2 // arrow keys +#define MDIA 3 // media keys, including mouse + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | L1 | | CAPS | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | ESC | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | Grv | |*SYMB*|*ARRW*| |*MDIA*|*SYMB*| [ | ] | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+--------+------. + * | | | | | | | | + * | Space| Bksp |------| |------| Tab |Enter | + * | ctrl | gui | Alt | | Alt | gui | ctrl | + * `--------------------' `----------------------' + */ + // TODO: maybe look into changing the delay or whatever for the holding macros... not sure which way you would go with this. if the macro automatically kicks in if you hold it and press another button (no matter how long you held it for), then it wouldn't hurt to have a longer period i think... although if you hold a button and then decide not to, then you;ll register a space/bksp/etc. on accident. on the other hand, if it's too short of a delay, then you might be able to register spc/bksp/etc quickly enough, although i don't see this as big of an issue + // not sure if gui is meta key or super... it says meta on the basic keycodes page, and i think that's consitent with other shit, but you should really figure out how to program the keyboard to have meta and super separately instead of hacking your init.el to recognize alt as meta... because shit will get fucked up beteween awesome and emacs and other shit i'm guessing +// 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_TRNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), + 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_TRNS, KC_GRV, KC_TRNS,MO(SYMB),MO(ARRW), + KC_TRNS, KC_TRNS, + KC_TRNS, + CTL_T(KC_SPC),GUI_T(KC_BSPC),KC_LALT, + // right hand + KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_CAPSLOCK, 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, + MO(MDIA), MO(SYMB), KC_LBRC,KC_RBRC, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_RALT,GUI_T(KC_TAB), CTL_T(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_DOT, + KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, + KC_TRNS,KC_TRNS, KC_0, KC_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Arrow keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | |PGDOWN| PGUP | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------| LEFT | DOWN | UP |RIGHT | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | HOME | END | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[ARRW] = 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, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_PGDOWN, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS, KC_TRNS, 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 3: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | Lclk | Rclk | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |Mute |VolDn | VolUp| | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | Prev | Play | Next | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * |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_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_WBAK, 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_BTN1, KC_BTN2, 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_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/keyboards/ergodox/keymaps/maz/readme.md b/keyboards/ergodox/keymaps/maz/readme.md new file mode 100644 index 000000000..000a8d000 --- /dev/null +++ b/keyboards/ergodox/keymaps/maz/readme.md @@ -0,0 +1,121 @@ +# Introduction + +## Motivation +I created this keymap in an attempt to optimize my typing experience in text editors (vim and emacs) and the command-line. + +More specifically, I wanted to have each modifier key controlled by the thumbs, the most powerful of the digits (I think). This cured me of emacs pinky, which had surprisingly grown quite quickly over the first two weeks of using emacs & emacs-like commands on the command-line. + +## Changes +There are some miscellaneous changes that I kind of forgot I made, such as moving the tilde key, but you can check out the visual layouts below, which I **have** kept up to date. +### Modifier Keys +The biggest changes from the ergodox ez default keymap are the modifiers on the thumb cluster. You must hold each key down for a certain amount of time (forgot where this is specified) in order for the modifier key to activate. + +### Layers +* an arrow layer (ARRW) has been created because the default arrow keys suck. Beware, these do use vim bindings because they're the best. +* the keys in the media layer have been moved around for a better experience (imo), especially with respect to the mouse +* the three layers (SYMB, MDIA, and ARRW) now have their own dedicated keys accessible by the thumbs in the basic layer +* caps lock has been put in place of the right-side `L1` toggle key because there was really no need to have two keys to toggle one layer, and caps lock is useful when writing queries +** unfortunatley, caps lock is not indicated by an LED, so be careful. I use caps lock just like I do insert in vim; for a short burst of text. I always turn off caps lock when I change my focus + +### Removal Of Keys +I also removed a bunch of unnecessary keys that I wasn't going to use anyway. You'll see such keys are blank in the basic layer. I will probably add some more keys in place of these, but I'm fine for now; I just didn't want the distraction of extra keys I barely use. + +## Caveats +### Thumb Cluster Range +I've heard many complaints about the thumb clusters. I agree that the three outter keys are almost impossible to reach. I am going to try to build [Matt Adereth's keyboard](https://github.com/adereth/dactyl-keyboard), which looks to have a better layout. However, I am able to comfortably use the three modifier keys mainly because: +* I use DCS keycaps with SA Row 3 keycaps where the Alt keys are +* I have relatively large hands (I guarantee you there's no problem - I guarantee you) + +### Dangerous positioning +I think it's quite dangerous to put something like control on the same key as enter. Alas, this is a risk I'm willing to accept, and so should you if you decide to use this keymap. I tend to avoid putting myself in situtations in which disaster could occur with one fell swoop of a keypress. + +# Keymap +## Keymap 0: Basic layer +``` +,--------------------------------------------------. ,--------------------------------------------------. +| = | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | - | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| Tab | Q | W | E | R | T | L1 | | CAPS | Y | U | I | O | P | \ | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| ESC | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | +|--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| +| LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | Grv | |*SYMB*|*ARRW*| |*MDIA*|*SYMB*| [ | ] | | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + | | | | | | + ,------|------|------| |------+--------+------. + | | | | | | | | + | Space| Bksp |------| |------| Tab |Enter | + | ctrl | gui | Alt | | Alt | gui | ctrl | + `--------------------' `----------------------' + +``` + +## Keymap 1: Symbol Layer +The only change here is the *dot* (`.`) character moving from next to `0` next to `+` in order to move the layer keys in the correct position +``` + ,--------------------------------------------------. ,--------------------------------------------------. + | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | . | + |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | | | | | | | | 0 | = | | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + | | | | | | + ,------|------|------| |------+------+------. + | | | | | | | | + | | |------| |------| | | + | | | | | | | | + `--------------------' `--------------------' +``` + +## Keymap 2: Arrow Layer +``` + ,--------------------------------------------------. ,--------------------------------------------------. + | | | | | | | | | | | | | | | | + |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + | | | | | | | | | | |PGDOWN| PGUP | | | | + |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + | | | | | | |------| |------| LEFT | DOWN | UP |RIGHT | | | + |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + | | | | | | | | | | | HOME | END | | | | + `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | | | | | | | | | | | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + | | | | | | + ,------|------|------| |------+------+------. + | | | | | | | | + | | |------| |------| | | + | | | | | | | | + `--------------------' `--------------------' +``` + +## Keymap 3: Media and mouse keys +``` + ,--------------------------------------------------. ,--------------------------------------------------. + | | | | | | | | | | | | | | | | + |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + | | | | MsUp | | | | | | | | | | | | + |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + | | |MsLeft|MsDown|MsRght| |------| |------| | Lclk | Rclk | | | | + |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + | | |Mute |VolDn | VolUp| | | | | | | | | | | + `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | | Prev | Play | Next | | | | | | | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + | | | | | | + ,------|------|------| |------+------+------. + |Brwser| | | | | | | + |Back | |------| |------| | | + | | | | | | | | + `--------------------' `--------------------' +``` diff --git a/keyboards/ergodox/keymaps/mpiechotka/keymap.c b/keyboards/ergodox/keymaps/mpiechotka/keymap.c new file mode 100644 index 000000000..5bfef5995 --- /dev/null +++ b/keyboards/ergodox/keymaps/mpiechotka/keymap.c @@ -0,0 +1,276 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_colemak.h" + +enum { + BASE = 0, + BASE_CM, + SYMB, + MACR +}; + +enum { + LWIN = 1, + PC1, + PC2, + PC3, + PC4, + DL_BASE, + DL_BASE_CM, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0a: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Del | Q | W | F | P | G | L1 | | L1 | J | L | U | Y | ; | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Esc | A | R | S | T | D |------| |------| H | N | E | I | O | ' | + * |--------+------+------+------+------+------| = | | - |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | K | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | LAlt | LGui | | LAlt | RAlt | + * ,------|------|------| |------+--------+------. + * | |Backsp| Home | | PgUp | | | + * | Space|ace/ |------| |------| Tab/ |Enter/| + * | /Shft|Ctrl | 1) | | 2) | Ctrl |Shift | + * `--------------------' `----------------------' + * + * 1) End/L1 + * 2) PgDown/L2 + */ +[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_F, KC_P, KC_G, TG(SYMB), + KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_EQL, + LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT, + KC_LALT, F(LWIN), + KC_HOME, + SFT_T(KC_SPC),CTL_T(KC_BSPC),LT(SYMB, KC_END), + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(SYMB), KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, + KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_MINS, KC_K, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, LT(SYMB,KC_NO), + KC_LALT, KC_RALT, + KC_PGUP, + LT(MACR,KC_PGDN),CTL_T(KC_TAB), SFT_T(KC_ENT) + ), +/* Keymap 0b: Basic layer (Colemak keycodes or QWERTY) + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Del | Q | W | F | P | G | L1 | | L1 | J | L | U | Y | ; | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Esc | A | R | S | T | D |------| |------| H | N | E | I | O | ' | + * |--------+------+------+------+------+------| = | | - |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | K | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | LAlt | LGui | | LAlt | RAlt | + * ,------|------|------| |------+--------+------. + * | |Backsp| Home | | PgUp | | | + * | Space|ace/ |------| |------| Tab/ |Enter/| + * | /Shft|Ctrl | 1) | | 2) | Ctrl |Shift | + * `--------------------' `----------------------' + * + * 1) End/L1 + * 2) PgDown/L2 + */ +[BASE_CM] = KEYMAP( // layer 0 : default + // left hand + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_DELT, CM_Q, CM_W, CM_F, CM_P, CM_G, TG(SYMB), + KC_ESC, CM_A, CM_R, CM_S, CM_T, CM_D, + KC_LSFT, CM_Z, CM_X, CM_C, CM_V, CM_B, KC_EQL, + LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT, + KC_LALT, F(LWIN), + KC_HOME, + SFT_T(KC_SPC),CTL_T(KC_BSPC),LT(SYMB, KC_END), + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(SYMB), CM_J, CM_L, CM_U, CM_Y, KC_P, /*CM_SCLN*/ KC_BSLS, + CM_H, CM_N, CM_E, CM_I, CM_O, KC_QUOT, + KC_MINS, CM_K, CM_M, CM_COMM,CM_DOT, CTL_T(CM_SLSH), KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, LT(SYMB,KC_NO), + KC_LALT, KC_RALT, + KC_PGUP, + LT(MACR,KC_PGDN),CTL_T(KC_TAB), SFT_T(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: Macros + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | DLa | DLb | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | PC1 | PC2 | PC3 | PC4 | |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MACROS +[MACR] = KEYMAP( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, F(DL_BASE),F(DL_BASE_CM),KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, F(PC1), F(PC2), F(PC3), F(PC4), KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [LWIN] = ACTION_MACRO(LWIN), + [PC1] = ACTION_MACRO(PC1), + [PC2] = ACTION_MACRO(PC2), + [PC3] = ACTION_MACRO(PC3), + [PC4] = ACTION_MACRO(PC4), + [DL_BASE] = ACTION_DEFAULT_LAYER_SET(BASE), + [DL_BASE_CM] = ACTION_DEFAULT_LAYER_SET(BASE_CM) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + case LWIN: + if (record->event.pressed) { + register_code(KC_RSFT); + unregister_code(KC_RSFT); + register_code(KC_LGUI); + } else { + unregister_code(KC_LGUI); + } + break; + case PC1: + if (!record->event.pressed) { + return MACRO(T(SLCK), W(50), T(SLCK), W(50), T(1), W(50), T(ENT), END); + } + break; + case PC2: + if (!record->event.pressed) { + return MACRO(T(SLCK), W(50), T(SLCK), W(50), T(2), W(50), T(ENT), END); + } + break; + case PC3: + if (!record->event.pressed) { + return MACRO(T(SLCK), W(50), T(SLCK), W(50), T(3), W(50), T(ENT), END); + } + break; + case PC4: + if (!record->event.pressed) { + return MACRO(T(SLCK), W(50), T(SLCK), W(50), T(4), W(50), T(ENT), END); + } + 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 SYMB: + ergodox_right_led_1_on(); + break; + case MACR: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } +}; diff --git a/keyboards/ergodox/keymaps/mpiechotka/readme.md b/keyboards/ergodox/keymaps/mpiechotka/readme.md new file mode 100644 index 000000000..785400d1d --- /dev/null +++ b/keyboards/ergodox/keymaps/mpiechotka/readme.md @@ -0,0 +1,6 @@ +# ErgoDox EZ mpiechotka Configuration + +Modification of ErgoDox EZ Colemak layout with additional QWERTY/software Colemak layer and change of the special keys. + + + diff --git a/keyboards/ergodox/keymaps/msc/img/code_layer.png b/keyboards/ergodox/keymaps/msc/img/code_layer.png new file mode 100644 index 000000000..7b5efaae7 Binary files /dev/null and b/keyboards/ergodox/keymaps/msc/img/code_layer.png differ diff --git a/keyboards/ergodox/keymaps/msc/img/main_layer.png b/keyboards/ergodox/keymaps/msc/img/main_layer.png new file mode 100644 index 000000000..65f92dda1 Binary files /dev/null and b/keyboards/ergodox/keymaps/msc/img/main_layer.png differ diff --git a/keyboards/ergodox/keymaps/msc/img/media_layer.png b/keyboards/ergodox/keymaps/msc/img/media_layer.png new file mode 100644 index 000000000..a69799b07 Binary files /dev/null and b/keyboards/ergodox/keymaps/msc/img/media_layer.png differ diff --git a/keyboards/ergodox/keymaps/msc/keymap.c b/keyboards/ergodox/keymaps/msc/keymap.c new file mode 100644 index 000000000..e567e513f --- /dev/null +++ b/keyboards/ergodox/keymaps/msc/keymap.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 | ; |' / Cmd | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | Cmd | Alt |AltShf| Left | Right| | Left | Down | Up |Right | L2 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | 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), + KC_LGUI,KC_LALT, 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, 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_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TG(MDIA), + 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 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | Mute | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | Prev |VolDn |VolUp | Next | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | Lclk | Rclk |------| |------| |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_TRNS, KC_TRNS, + 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, + KC_TRNS, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, 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/keyboards/ergodox/keymaps/msc/readme.md b/keyboards/ergodox/keymaps/msc/readme.md new file mode 100644 index 000000000..0d14fcbd2 --- /dev/null +++ b/keyboards/ergodox/keymaps/msc/readme.md @@ -0,0 +1,32 @@ +# MSC Configuration + +### Based mostly on the ErgoDox EZ default layout with optimizations for coding on osx. + +#### Expecting the user to rely on Coder Layer this keymap removes some of the duplicate symbol keys in the lower portions of the board and replaces them with arrow keys and modifiers. The Media Layer is also updated to match the change in the arrow keys and the left and right click buttons are moved under the thumb position. The Media layer is now reached with toggle button in the lower right. + +### Main Layer + +![Main Layer](img/main_layer.png) + +### Code Layer + +![Code Layer](img/code_layer.png) + +### Media Layer + +![Media Layer](img/media_layer.png) + +## Changelog + +Version 1.0 + +- Changed the temp code layer key in the bottom right to toggle media layer +- Changed the temp media key to only be ";" +- Changed right hand bottom row to match vim home row nav directions +- Changed media keys to match arrow key changes +- Changed media left and right click to spacebar and backspace locations +- Changed bottom left to Cmd +- Changed single quote on left bottom row to alt + +#### Coming Soon: +- A new layer for Blender editing with a focus on left hand shortcut and a righthand num pad to control the view in Blender. diff --git a/keyboards/ergodox/keymaps/naps62/keymap.c b/keyboards/ergodox/keymaps/naps62/keymap.c new file mode 100644 index 000000000..d8c28423c --- /dev/null +++ b/keyboards/ergodox/keymaps/naps62/keymap.c @@ -0,0 +1,187 @@ +#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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | Esc | 1 ! | 2 @ | 3 # | 4 $ | 5 % | Lang | | Esc | 6 ^ | 7 & | 8 * | 9 ( | 0 ) | Bckspc | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | L2 | | L2 | Y | U | I | O | P | \ | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Ctrl | A | S | D | F | G |------| |------| H | J | K | L | ; : | ' " | + * |--------+------+------+------+------+------| L1 | | L1 |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , < | . > | / ? | - _ | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | L1 | ` ~ | ' " | \ | | L2 | | { | } | [ { | ] } | L1 | + * `----------------------------------' `----------------------------------' + * ,--------------. ,---------------. + * | Home | End | | PgUp |Insert | + * ,------|-------|------| |-------+-------+------. + * | | | LGui | | Del | | | + * | Space| Alt |------| |-------| Enter |Space | + * | | | LGui | | Bcsp | | | + * `---------------------' `----------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, LGUI(KC_SPC), + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(2), + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(1), + MO(1), KC_GRV, KC_QUOT, KC_BSLS, MO(2), + + KC_HOME, KC_END, + KC_LGUI, + KC_SPC, KC_LALT, KC_LGUI, + + // right hand + KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + MO(2), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + MO(1), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_MINS, + KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, MO(1), + + KC_PGUP, KC_INS, + KC_DEL, + KC_BSPC, 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_EQL,KC_DOT, KC_0, KC_MINS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | |GuiUp | Expl | | Term | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | |GuiLft|GuiDwn|GuiRgt| | |------| |------| Left | Down | Up |Right | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | |Browsr| | | | |VolDwn|VolUp | Mute | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | | Play | Prev | Next | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | |Brwser|Brwser| + * | Lclk | Rclk |------| |------|Fwd |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +KEYMAP( + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, LGUI(KC_W), LGUI(KC_E), KC_BTN1, LGUI(KC_T), KC_TRNS, + KC_TRNS, LGUI(KC_A), LGUI(KC_S), LGUI(KC_D), 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_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_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, + KC_MPLY, KC_MPRV, KC_MNXT, 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) { + // 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/keyboards/ergodox/keymaps/naps62/readme.md b/keyboards/ergodox/keymaps/naps62/readme.md new file mode 100644 index 000000000..14728e4cc --- /dev/null +++ b/keyboards/ergodox/keymaps/naps62/readme.md @@ -0,0 +1,29 @@ +# ErgoDox EZ naps62 Configuration + +## Motivation + +I wanted a layout that suited my Linux & Vim usage. I also didn't like the lack of efficient access to some of the more common special characters used in programming. + +## Key features / changes + +### Base Layer (L1) + +* **No `MT(mod, kc)` keys (modifier when pressed, key when tapped).** Those keys work with a global timeout. When a key press is shorter than the timeout, it's considered a tap, otherwise it's a hold. I couldn't find any particular timeout that would work for me. I need to use mods extremely fast, but also want the confort of using them more slowly in other occasions. So I gave up on this feature altogether. +* **Direct access to `{}[]`.** When programming, these are used extremely often. I was still getting used to the coder layer, and I prefer the arrows on the home row, so I used the bottom-right keys for this. +* **Layer keys everywhere.** I either use my little finger or my index finger to go to L1, whichever is more confortable in any given situation. L2 is not used while coding/writing, so I don't need an extremely-optimized access to it. +* **Lang key.** This is nothing more than `Super-Space` combo, which in my systems (both Linux & Windows) is the shortcut to change the keyboard language. I'm Portuguese, so I often cycle between US layout for coding, and PT layout for writing. +* **Special chars on the right-most column.** I only use Ctrl & Shift keys on the left side, so I used the right keys to include some of the more useful special characters as well. + +### Coder Layer (L2) + +* The `=` and `-` signs where nowhere to be found. `-` was already on the base layer, but it's still useful to have a fully-featured NumPad on the coder layer. + +### Media Layer (L3) + +* **Better media keys**. Why was Play/Pause so far away? And where was Mute? I put all my media keys close to each other, including the missing ones +* **Arrow keys on home row.** I use vim, so I'm always on my home row. I use this sometimes to get around, but not as often as to need them on the base row. I'm fine with them here +* I don't use mouse keys. They're still set up, and I made some changes as an experiment, but I mostly forgot they exist by now. + +## Author + +[Miguel Palhas](https://github.com/naps62) diff --git a/keyboards/ergodox/keymaps/ordinary/keymap.c b/keyboards/ergodox/keymaps/ordinary/keymap.c new file mode 100644 index 000000000..778cbc63c --- /dev/null +++ b/keyboards/ergodox/keymaps/ordinary/keymap.c @@ -0,0 +1,454 @@ +#include "ergodox_ez.h" +#include "led.h" +#include "debug.h" +#include "action_layer.h" +#include "action_util.h" +#include "mousekey.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols layer +#define MDIA 2 // media layer +#define SPEC 3 // special layer + +#define LCaps 10 // left caps-shift key +#define LSymb 11 // left symbol-shift key +#define LMdia 12 // left media-shift key +#define LSpec 13 // left special-shift key +#define RCaps 14 // right caps-shift key +#define RSymb 15 // right symbol-shift key +#define RMdia 16 // right media-shift key +#define RSpec 17 // right special-shift key + +#define MUL 20 // mouse up left +#define MUR 21 // mouse up right +#define MDL 22 // mouse down left +#define MDR 23 // mouse down right + +/* + * The Ordinary Layout for the Ergodox EZ keyboard, v4 + * + * Modifications from default by Nicholas Keene ergodoxez@nicholaskeene.com + * + * No rights reserved. This software is in the public domain. + * Credit me if you are friendly but if you're a jerk don't bother. + * + * Details: readme.md + * https://github.com/nrrkeene/qmk_firmware/tree/master/keyboard/ergodox_ez/keymaps/ordinary + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/******* Base Layer ******************************************************************************************************** + * + * ,------------------------------------------------------. ,------------------------------------------------------. + * | Special `~ | 1 | 2 | 3 | 4 | 5 | ESC | | - | 6 | 7 | 8 | 9 | 0 | =+ Special | + * |------------+------+------+------+------+-------------| |------+------+------+------+------+------+------------| + * | Media Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \| Media | + * |------------+------+------+------+------+------| | | |------+------+------+------+------+------------| + * | Symbol | A | S | D | F | G |------| |------| H | J | K | L | ; | '" Symbol | + * |------------+------+------+------+------+------|Shift | | Tab |------+------+------+------+------+------------| + * | Capitals | Z | X | C | V | B | -Tab | | | N | M | , | . | / | Capitals | + * `------------+------+------+------+------+-------------' `-------------+------+------+------+------+------------' + * | LCtrl | Meh |Hyper | LAlt | LGui | | RGui | RAlt | Hyper| Meh | RCtrl | + * `-----------------------------------' `-----------------------------------' + * ,-------------. ,-------------. + * | Home | End | | Left | Right| + * ,------|------|------| |------+------+------. + * | | | PgUp | | Up | | | + * |Backsp| Del |------| |------| Enter| Space| + * | | | PgDn | | Down | | | + * `--------------------' `--------------------' + */ +[BASE] = KEYMAP( +// left hand + F(LSpec),KC_1,KC_2,KC_3 ,KC_4 ,KC_5 ,KC_ESC +,F(LMdia) ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC +,M(LSymb) ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G +,M(LCaps) ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,LSFT(KC_TAB) +,KC_LCTL ,KC_MEH ,KC_HYPR,KC_LALT,KC_LGUI + ,KC_HOME,KC_END + ,KC_PGUP + ,KC_BSPC,KC_DEL ,KC_PGDN + // right hand + ,KC_MINS ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,F(RSpec) + ,KC_RBRC ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,F(RMdia) + ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,F(RSymb) + ,KC_TAB ,KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH ,M(RCaps) + ,KC_RGUI,KC_RALT,KC_HYPR ,KC_MEH ,KC_RCTL + ,KC_LEFT ,KC_RGHT + ,KC_UP + ,KC_DOWN ,KC_ENT ,KC_SPC + ), + +/******* Symbols Layer ***************************************************************************************************** + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | Esc | | - | F6 | F7 | F8 | F9 | F10 | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | | ! | @ | { | } | & | < | | > | | | 7 | 8 | 9 | / | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | # | $ | ( | ) | ` |------| |------| / | 4 | 5 | 6 | * | | + * |-----------+------+------+------+------+------| Tab | | Shift|------+------+------+------+------+-----------| + * | | % | ^ | [ | ] | ~ | | | -Tab| \ | 1 | 2 | 3 | - | | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | LCtrl | Meh |Hyper | LAlt | LGui | |RGui/0|RAlt/.|Hypr/=|Meh/+ |RCtrl/Ent| + * `-----------------------------------' `-------------------------------------' + * ,-------------. ,-------------. + * | Left | Right| | Home | End | + * ,------|------|------| |------+------+------. + * | | | Up | | PgUp | | | + * |Space |Enter |------| |------|BackSp| Del | + * | | | Down | | PgDn | | | + * `--------------------' `--------------------' + */ +[SYMB] = KEYMAP( +// left hand + KC_TRNS ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_ESC +,KC_TRNS ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_AMPR ,LSFT(KC_COMM) +,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_TAB +,KC_LCTL ,KC_MEH ,KC_HYPR,KC_LALT ,KC_LGUI + ,KC_LEFT ,KC_RGHT + ,KC_UP + ,KC_SPC ,KC_ENT ,KC_DOWN + // right hand + ,KC_MINS ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_TRNS + ,LSFT(KC_DOT),KC_PIPE ,KC_7 ,KC_8 ,KC_9 ,KC_SLSH ,KC_TRNS + ,KC_SLSH ,KC_4 ,KC_5 ,KC_6 ,KC_ASTR ,KC_TRNS + ,LSFT(KC_TAB),KC_BSLS ,KC_1 ,KC_2 ,KC_3 ,KC_MINS ,KC_TRNS + ,GUI_T(KC_0),ALT_T(KC_DOT),ALL_T(KC_EQL),MEH_T(KC_PLUS),CTL_T(KC_ENT) + ,KC_HOME ,KC_END + ,KC_PGUP + ,KC_PGDN ,KC_BSPC ,KC_DEL +), + +/******* Media Layer ******************************************************************************************************* + * + * ,---------------------------------------------------------------. ,---------------------------------------------------------------. + * | | F11 | F12 | F13 | F14 | F15 | Esc | | | F16 | F17 | F18 | F19 | F20 | | + * |------+---------+---------+---------+---------+----------------| |------+---------+---------+---------+---------+---------+------| + * | |Shut Down|MouseUpLf|Mouse Up |MouseUpRg|Volume Up|Scroll| |Scroll|PrintScrn| Home | Up | PgUp | Mail | | + * |------+---------+---------+---------+---------+---------| Up | | Up |---------+---------+---------+---------+---------+------| + * | | Sleep |MouseLeft|MouseDown|MouseRght|Volume Dn|------| |------| Num Lock| Left | Down | Right | MyComp | | + * |------+---------+---------+---------+---------+---------|Scroll| |Scroll|---------+---------+---------+---------+---------+------| + * | | |MouseDnLf|MouseDown|MouseDnRg| Mute | Down | | Down | | End | Down | PgDn | | | + * `------+---------+---------+---------+---------+----------------' `----------------+---------+---------+---------+---------+------' + * |LCtrl| Meh | MClick | LClick | R Click| |Cmd/Insrt|Optn/Del | Hyper | Meh |RCtrl| + * `---------------------------------------------' `---------------------------------------------' + * ,-------------. ,-------------. + * | Stop |Refrsh| | Prev | Next | + * ,------|------|------| |------+------+------. + * |Brwser|Brwser|Search| |VolUp | | | + * |Back | Fwd |------| |------| Stop | Play-| + * | | | Home | |VolDn | | Pause| + * `--------------------' `--------------------' + */ +[MDIA] = KEYMAP( +// left hand + KC_TRNS ,KC_F11 ,KC_F12 ,KC_F13 ,KC_F14 ,KC_F15 ,KC_ESC +,KC_TRNS ,KC_POWER ,M(MUL) ,KC_MS_U ,M(MUR) ,KC_VOLU ,KC_WH_U +,KC_TRNS ,KC_SLEP ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_VOLD +,KC_TRNS ,KC_NO ,M(MDL) ,KC_MS_D ,M(MDR) ,KC_MUTE ,KC_WH_D +,KC_LCTL ,KC_MEH ,KC_BTN3 ,KC_BTN1 ,KC_BTN2 + ,KC_WSTP ,KC_WREF + ,KC_WSCH + ,KC_WBAK ,KC_NO ,KC_WHOM + // right hand + ,KC_NO ,KC_F16 ,KC_F17 ,KC_F18 ,KC_F19 ,KC_F20 ,KC_TRNS + ,KC_WH_U ,KC_PSCR ,KC_HOME ,KC_UP ,KC_PGUP ,KC_MAIL ,KC_TRNS + ,KC_NLCK ,KC_LEFT ,KC_DOWN ,KC_RIGHT,KC_MYCM ,KC_TRNS + ,KC_WH_D ,KC_NO ,KC_END ,KC_DOWN ,KC_PGDN ,KC_NO ,KC_TRNS + ,GUI_T(KC_INS),ALT_T(KC_DEL),KC_HYPR ,KC_MEH ,KC_RCTL + ,KC_MPRV ,KC_MNXT + ,KC_VOLU + ,KC_VOLD ,KC_MSTP ,KC_MPLY +), + +/******* Special Layer ***************************************************************************************************** + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | | Esc | | | | | | | | | | | | Bspc | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | | | | | | | | | | | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | |------| |------| | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | | | | | | | | | | RShift | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[SPEC] = KEYMAP( +// left hand + KC_TRNS ,KC_ESC ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,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_BSPC ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_RSFT + ,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[] = { + // the faux shift keys are implemented as macro taps + [LCaps] = ACTION_MACRO_TAP(LCaps) + ,[LSymb] = ACTION_MACRO_TAP(LSymb) + ,[LMdia] = ACTION_MACRO_TAP(LMdia) + ,[LSpec] = ACTION_MACRO_TAP(LSpec) + ,[RCaps] = ACTION_MACRO_TAP(RCaps) + ,[RSymb] = ACTION_MACRO_TAP(RSymb) + ,[RMdia] = ACTION_MACRO_TAP(RMdia) + ,[RSpec] = ACTION_MACRO_TAP(RSpec) +}; + +uint16_t caps_shift = 0; +uint16_t symb_shift = 0; +uint16_t mdia_shift = 0; + +bool symb_lock = false; +bool mdia_lock = false; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + // There are two shift keys for each layer so we increment a layer_shift var when one + // is pressed and decrement when one is released. If both are pressed at the same time + // then the layer is locked (or unlocked). The shift counts are bound between 0 and 2 + // only because sometimes rapid pressing led to irregular events; this way the states + // are self healing during use. + + case LCaps: // both caps-shift keys trigger Left Shift + case RCaps: // so they don't interfere with the magic combo + if (record->event.pressed && !record->tap.count) { + if(++caps_shift > 2) caps_shift = 2; + if(caps_shift == 2) { + register_code(KC_CAPS); + unregister_code(KC_CAPS); + } else if(caps_shift == 1) { + register_code(KC_LSFT); + } + } else { + if(--caps_shift < 0) caps_shift = 0; + if(caps_shift == 0) unregister_code(KC_LSFT); + } + break; + + case LSymb: + if (record->event.pressed) { + if(++symb_shift > 2) symb_shift = 2; + if(symb_shift == 2) { + symb_lock = !symb_lock; + } else if(symb_shift == 1) { + layer_on(SYMB); + } + } else { + if(--symb_shift < 0) symb_shift = 0; + if((symb_shift == 0) && (!symb_lock)) layer_off(SYMB); + } + break; + + case LMdia: + if (record->event.pressed) { + if (record->tap.count && (!mdia_shift) && (!mdia_lock)) { + register_code(KC_TAB); + } else { + if(++mdia_shift > 2) mdia_shift = 2; + if(mdia_shift == 2) { + mdia_lock = !mdia_lock; + } else if(mdia_shift == 1) { + layer_on(MDIA); + } + } + } else { + if(record->tap.count && (!mdia_shift) && (!mdia_lock)) { + unregister_code(KC_TAB); + } else { + if(--mdia_shift < 0) mdia_shift = 0; + if((!mdia_shift) && (!mdia_lock)) layer_off(MDIA); + } + } + break; + + case LSpec: + if (record->event.pressed) { + if (record->tap.count && !record->tap.interrupted) { + register_code(KC_GRV); + } else { + layer_on(SPEC); + } + } else { + if(record->tap.count && !record->tap.interrupted) { + unregister_code(KC_GRV); + } else { + layer_off(SPEC); + } + } + break; + + case RSymb: + if (record->event.pressed) { + if (record->tap.count && (!symb_shift) && (!symb_lock)) { + register_code(KC_QUOT); + } else { + if(++symb_shift > 2) symb_shift = 2; + if(symb_shift == 2) { + symb_lock = !symb_lock; + } else if(symb_shift == 1) { + layer_on(SYMB); + } + } + } else { + if(record->tap.count && symb_shift == 0) { + unregister_code(KC_QUOT); + } else { + if(--symb_shift < 0) symb_shift = 0; + if((!symb_shift) && (!symb_lock)) layer_off(SYMB); + } + } + break; + + case RMdia: + if (record->event.pressed) { + if (record->tap.count && (!mdia_shift) && (!mdia_lock)) { + register_code(KC_BSLS); + } else { + if(++mdia_shift > 2) mdia_shift = 2; + if(mdia_shift == 2) { + mdia_lock = !mdia_lock; + } else if(mdia_shift == 1) { + layer_on(MDIA); + } + } + } else { + if(record->tap.count && (!mdia_shift) && (!mdia_lock)) { + unregister_code(KC_BSLS); + } else { + if(--mdia_shift < 0) mdia_shift = 0; + if((!mdia_shift) && (!mdia_lock)) layer_off(MDIA); + } + } + break; + + case RSpec: + if (record->event.pressed) { + if (record->tap.count && !record->tap.interrupted) { + register_code(KC_EQL); + } else { + layer_on(SPEC); + } + } else { + if(record->tap.count && !record->tap.interrupted) { + unregister_code(KC_EQL); + } else { + layer_off(SPEC); + } + } + break; + + // mouse diagonals + + case MUL: // mouse up left + if (record->event.pressed) { + mousekey_on(KC_MS_UP); + mousekey_on(KC_MS_LEFT); + mousekey_send(); + } else { + mousekey_off(KC_MS_UP); + mousekey_off(KC_MS_LEFT); + mousekey_send(); + } + break; + + case MUR: // mouse up right + if (record->event.pressed) { + mousekey_on(KC_MS_UP); + mousekey_on(KC_MS_RIGHT); + mousekey_send(); + } else { + mousekey_off(KC_MS_UP); + mousekey_off(KC_MS_RIGHT); + mousekey_send(); + } + break; + + case MDL: // mouse down left + if (record->event.pressed) { + mousekey_on(KC_MS_DOWN); + mousekey_on(KC_MS_LEFT); + mousekey_send(); + } else { + mousekey_off(KC_MS_DOWN); + mousekey_off(KC_MS_LEFT); + mousekey_send(); + } + break; + + case MDR: // mouse down right + if (record->event.pressed) { + mousekey_on(KC_MS_DOWN); + mousekey_on(KC_MS_RIGHT); + mousekey_send(); + } else { + mousekey_off(KC_MS_DOWN); + mousekey_off(KC_MS_RIGHT); + mousekey_send(); + } + break; + + default: + // none + 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) { + // shift or caps lock turns on red light + if(caps_shift || (keyboard_report->mods & MOD_BIT(KC_RSFT)) || (host_keyboard_leds() & (1<\n\n\nTab"], +[{y:-0.75,x:3.5,c:"#cccccc"},"C",{x:10.5},"<\n,"], +[{y:-0.875,x:2.5},"X",{x:1},"V",{x:8.5},"M",{x:1},">\n."], +[{y:-0.875,x:5.5},"B",{x:6.5},"N"], +[{y:-0.875,c:"#2277ff",w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#cccccc"},"Z",{x:14.5},"?\n/",{c:"#2277ff",w:1.5},"\n\nCapitals\n\n\n\n\nShift"], +[{y:-0.375,x:3.5,c:"#77aaff"},"Option\n\n\nLAlt",{x:10.5},"Option\n\n\nRAlt"], +[{y:-0.875,x:2.5},"Hyper",{x:1},"Cmd\n\n\nSuper",{x:8.5},"Cmd\n\n\nSuper",{x:1},"Hyper"], +[{y:-0.75,x:0.5},"Ctrl\n\n\nLCtrl","Meh",{x:14.5},"Meh","Ctrl\n\n\nRCtrl"], +[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#54d6de"},"Home","End"], +[{h:2},"< Del\n\n\nBackspace",{h:2},"Del >\n\n\nDelete","Page\n\n\n\n\n\nUp"], +[{x:2},"Page\n\n\n\n\n\nDown"], +[{r:-30,rx:13,y:-1,x:-3},"Left","Right"], +[{x:-3},"Up",{h:2},"Enter",{h:2},"Space"], +[{x:-3},"Down"] + diff --git a/keyboards/ergodox/keymaps/ordinary/ordinary-media.png b/keyboards/ergodox/keymaps/ordinary/ordinary-media.png new file mode 100644 index 000000000..99e5ed80b Binary files /dev/null and b/keyboards/ergodox/keymaps/ordinary/ordinary-media.png differ diff --git a/keyboards/ergodox/keymaps/ordinary/ordinary-media.txt b/keyboards/ergodox/keymaps/ordinary/ordinary-media.txt new file mode 100644 index 000000000..4eccc9f35 --- /dev/null +++ b/keyboards/ergodox/keymaps/ordinary/ordinary-media.txt @@ -0,0 +1,27 @@ +[{x:3.5,c:"#99de2a"},"F13",{x:10.5},"F18"], +[{y:-0.875,x:2.5},"F12",{x:1},"F14",{x:8.5},"F17",{x:1},"F19"], +[{y:-0.875,x:5.5},"F15",{c:"#ff4444"},"Esc",{x:4.5,c:"#737373",a:7},"",{c:"#99de2a",a:4},"F16"], +[{y:-0.875,c:"#2277ff",w:1.5},"Special\n\n\n\n\n\nShift",{c:"#99de2a"},"F11",{x:14.5},"F20",{c:"#2277ff",w:1.5},"\n\nSpecial\n\n\n\n\nShift"], +[{y:-0.375,x:3.5,c:"#ff8500"},"Mouse\n\n\n\n\n\nUp",{x:10.5},"Cursor\n\n\n\n\n\nUp"], +[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nUpLeft",{x:1},"Mouse\n\n\n\n\n\nUpRgt",{x:8.5,c:"#ffb063"},"Home",{x:1},"Page\n\n\n\n\n\nUp"], +[{y:-0.875,x:5.5,c:"#e6e067"},"Vol\n\n\n\n\n\nUp",{c:"#ffb063",h:1.5},"Scroll\n\n\n\n\n\nUp",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nUp",{c:"#e6e067"},"Print\n\n\n\n\n\nScreen"], +[{y:-0.875,c:"#000000",t:"#ff0000",w:1.5},"Media\n\n\n\n\n\nShift",{c:"#e6e067",t:"#000000"},"Shut\n\n\n\n\n\nDown",{x:14.5},"Mail",{c:"#000000",t:"#ff0000",w:1.5},"\n\nMedia\n\n\n\n\nShift"], +[{y:-0.375,x:3.5,c:"#ff8500",t:"#000000"},"Mouse\n\n\n\n\n\nDown",{x:10.5},"Cursor\n\n\n\n\n\nDown"], +[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nLeft",{x:1},"Mouse\n\n\n\n\n\nRight",{x:8.5},"Cursor\n\n\n\n\n\nLeft",{x:1},"Cursor\n\n\n\n\n\nRight"], +[{y:-0.875,x:5.5,c:"#e6e067"},"Vol\n\n\n\n\n\nDown",{x:6.5},"Num\n\n\n\n\n\nLock"], +[{y:-0.875,c:"#2277ff",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#e6e067"},"Sleep",{x:14.5},"My\n\n\n\n\n\nComp",{c:"#2277ff",w:1.5},"\n\nSymbols\n\n\n\n\nShift"], +[{y:-0.625,x:6.5,c:"#ffb063",h:1.5},"Scroll\n\n\n\n\n\nDown",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nDown"], +[{y:-0.75,x:3.5,c:"#ff8500"},"Mouse\n\n\n\n\n\nDown",{x:10.5},"Cursor\n\n\n\n\n\nDown"], +[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nDnLeft",{x:1},"Mouse\n\n\n\n\n\nDnRgt",{x:8.5,c:"#ffb063"},"End",{x:1},"Page\n\n\n\n\n\nDown"], +[{y:-0.875,x:5.5,c:"#e6e067"},"Mute",{x:6.5,c:"#737373",a:7},""], +[{y:-0.875,c:"#2277ff",a:4,w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#737373",a:7},"",{x:14.5},"",{c:"#2277ff",a:4,w:1.5},"\n\nCapitals\n\n\n\n\nShift"], +[{y:-0.375,x:3.5,c:"#ff8500"},"Middle\n\n\n\n\n\nClick",{x:10.5,c:"#ffb063",fa:[0,0,0,1]},"Delete\n\n\nOption"], +[{y:-0.875,x:2.5,c:"#ff8500"},"Left\n\n\n\n\n\nClick",{x:1},"Right\n\n\n\n\n\nClick",{x:8.5,c:"#ffb063"},"Insert\n\n\nCmd",{x:1,c:"#77aaff"},"Hyper"], +[{y:-0.75,x:0.5},"Ctrl\n\n\nLCtrl","Meh",{x:14.5},"Meh","Crtl\n\n\nRCtrl"], +[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#ccbb00"},"Stop\n\n\nBrowser","Reload\n\n\nBrowser"], +[{h:2},"< Web\n\n\nBrowser",{h:2},"Web >\n\n\nBrowser","Search\n\n\nBrowser"], +[{x:2},"Home\n\n\nBrowser"], +[{r:-30,rx:13,y:-1,x:-3},"Prev\n\n\nAudio\n\n\nTrack","Next\n\n\nAudio\n\n\nTrack"], +[{x:-3,c:"#e6e067"},"Vol\n\n\n\n\n\nUp",{c:"#ccbb00",h:2},"Stop\n\n\nAudio",{h:2},"Play\n\n\nAudio\n\n\nPause"], +[{x:-3,c:"#e6e067"},"Vol\n\n\n\n\n\nDown"] + diff --git a/keyboards/ergodox/keymaps/ordinary/ordinary-special.png b/keyboards/ergodox/keymaps/ordinary/ordinary-special.png new file mode 100644 index 000000000..6eecf447e Binary files /dev/null and b/keyboards/ergodox/keymaps/ordinary/ordinary-special.png differ diff --git a/keyboards/ergodox/keymaps/ordinary/ordinary-special.txt b/keyboards/ergodox/keymaps/ordinary/ordinary-special.txt new file mode 100644 index 000000000..a08827c6d --- /dev/null +++ b/keyboards/ergodox/keymaps/ordinary/ordinary-special.txt @@ -0,0 +1,27 @@ +[{x:3.5,a:7},"",{x:10.5},""], +[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""], +[{y:-0.875,x:5.5},"",{c:"#ff4444",a:4},"Esc",{x:4.5,c:"#cccccc",a:7},"",""], +[{y:-0.875,c:"#000000",t:"#ff0000",a:4,w:1.5},"Special\n\n\n\n\n\nShift",{c:"#ff4444",t:"#000000"},"Esc",{x:14.5,c:"#54d6de"},"Back\n\n\n\n\n\nspace",{c:"#000000",t:"#ff0000",w:1.5},"\n\nSpecial\n\n\n\n\nShift"], +[{y:-0.375,x:3.5,c:"#cccccc",t:"#000000",a:7},"",{x:10.5},""], +[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""], +[{y:-0.875,x:5.5},"",{h:1.5},"",{x:4.5,h:1.5},"",""], +[{y:-0.875,w:1.5},"","",{x:14.5},"",{w:1.5},""], +[{y:-0.375,x:3.5},"",{x:10.5},""], +[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""], +[{y:-0.875,x:5.5},"",{x:6.5},""], +[{y:-0.875,w:1.5},"","",{x:14.5},"",{w:1.5},""], +[{y:-0.625,x:6.5,h:1.5},"",{x:4.5,h:1.5},""], +[{y:-0.75,x:3.5},"",{x:10.5},""], +[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""], +[{y:-0.875,x:5.5},"",{x:6.5},""], +[{y:-0.875,w:1.5},"","",{x:14.5},"",{c:"#2277ff",w:1.5},"RShift"], +[{y:-0.375,x:3.5,c:"#cccccc"},"",{x:10.5},""], +[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""], +[{y:-0.75,x:0.5},"","",{x:14.5},"",""], +[{r:30,rx:6.5,ry:4.25,y:-1,x:1},"",""], +[{h:2},"",{h:2},"",""], +[{x:2},""], +[{r:-30,rx:13,y:-1,x:-3},"",""], +[{x:-3},"",{h:2},"",{h:2},""], +[{x:-3},""] + diff --git a/keyboards/ergodox/keymaps/ordinary/ordinary-symbol.png b/keyboards/ergodox/keymaps/ordinary/ordinary-symbol.png new file mode 100644 index 000000000..e4de64a96 Binary files /dev/null and b/keyboards/ergodox/keymaps/ordinary/ordinary-symbol.png differ diff --git a/keyboards/ergodox/keymaps/ordinary/ordinary-symbol.txt b/keyboards/ergodox/keymaps/ordinary/ordinary-symbol.txt new file mode 100644 index 000000000..e199f5c59 --- /dev/null +++ b/keyboards/ergodox/keymaps/ordinary/ordinary-symbol.txt @@ -0,0 +1,27 @@ +[{x:3.5,c:"#99de2a"},"F3",{x:10.5},"F8"], +[{y:-0.875,x:2.5},"F2",{x:1},"F4",{x:8.5},"F7",{x:1},"F9"], +[{y:-0.875,x:5.5},"F5",{c:"#ff4444"},"Esc",{x:4.5,c:"#bbddbb"},"_\n\n\n\n\n\n-",{c:"#99de2a"},"F6"], +[{y:-0.875,c:"#2277ff",w:1.5},"Special\n\n\n\n\n\nShift",{c:"#99de2a"},"F1",{x:14.5},"F10",{c:"#2277ff",w:1.5},"\n\nSpecial\n\n\n\n\nShift"], +[{y:-0.375,x:3.5,c:"#bbddbb"},"{",{x:10.5,c:"#89b087"},"8"], +[{y:-0.875,x:2.5,c:"#bbddbb"},"@",{x:1},"}",{x:8.5,c:"#89b087"},"7",{x:1},"9"], +[{y:-0.875,x:5.5,c:"#bbddbb"},"&",{h:1.5},"<",{x:4.5,h:1.5},">","|"], +[{y:-0.875,c:"#2277ff",w:1.5},"Media\n\n\n\n\n\nShift",{c:"#bbddbb"},"!",{x:14.5,c:"#89b087"},"/",{c:"#2277ff",w:1.5},"\n\nMedia\n\n\n\n\nShift"], +[{y:-0.375,x:3.5,c:"#bbddbb"},"(",{x:10.5,c:"#89b087"},"5"], +[{y:-0.875,x:2.5,c:"#bbddbb"},"$",{x:1},")",{x:8.5,c:"#89b087"},"4",{x:1},"6"], +[{y:-0.875,x:5.5,c:"#bbddbb"},"`",{x:6.5},"/"], +[{y:-0.875,c:"#000000",t:"#ff0000",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#bbddbb",t:"#000000"},"#",{x:14.5,c:"#89b087"},"*",{c:"#000000",t:"#ff0000",w:1.5},"\n\nSymbols\n\n\n\n\nShift"], +[{y:-0.625,x:6.5,c:"#54d6de",t:"#000000",fa:[0,0,0,1],h:1.5},"Tab >\n\n\nTab",{x:4.5,h:1.5},"< Tab\n\n\nShift Tab"], +[{y:-0.75,x:3.5,c:"#bbddbb"},"[",{x:10.5,c:"#89b087"},"2"], +[{y:-0.875,x:2.5,c:"#bbddbb"},"^",{x:1},"]",{x:8.5,c:"#89b087"},"1",{x:1},"3"], +[{y:-0.875,x:5.5,c:"#bbddbb"},"~",{x:6.5},"\\"], +[{y:-0.875,c:"#2277ff",w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#bbddbb"},"%",{x:14.5,c:"#89b087"},"-",{c:"#2277ff",w:1.5},"\n\nCapitals\n\n\n\n\nShift"], +[{y:-0.375,x:3.5,c:"#77aaff"},"Option\n\n\nLAlt",{x:10.5,c:"#89b087"},".\n\n\nOption"], +[{y:-0.875,x:2.5,c:"#77aaff"},"Hyper",{x:1},"Cmd\n\n\nSuper",{x:8.5,c:"#89b087"},"0\n\n\nCmd",{x:1},"=\n\n\nHyper"], +[{y:-0.75,x:0.5,c:"#77aaff"},"Ctrl\n\n\nLCtrl","Meh",{x:14.5,c:"#89b087"},"+\n\n\nMeh","Enter\n\n\nCtrl"], +[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#54d6de"},"Left","Right"], +[{h:2},"Space",{h:2},"Enter","Up"], +[{x:2},"Down"], +[{r:-30,rx:13,y:-1,x:-3},"Home","End"], +[{x:-3},"Page\n\n\n\n\n\nUp",{h:2},"< Del\n\n\nBackspace",{h:2},"Del >\n\n\nDelete"], +[{x:-3},"Page\n\n\n\n\n\nDown"] + diff --git a/keyboards/ergodox/keymaps/ordinary/readme.md b/keyboards/ergodox/keymaps/ordinary/readme.md new file mode 100644 index 000000000..6465cd79e --- /dev/null +++ b/keyboards/ergodox/keymaps/ordinary/readme.md @@ -0,0 +1,103 @@ +# The Ordinary Layout, a familiar and powerful layout # + +The Ordinary Layout is intended to be unremarkably mundane and remarkably useful. This layout maintains most key positions from common QWERTY keyboards, and it features enhanced Symbol and Media layers compared to the default Ergodox EZ layout. + +The Ordinary Layout is supposed to look mostly like a normal keyboard, except in the ways that the Ergodox key arrangement is unique. The thumbs are responsible for space, enter, plus both forward and backward delete; with only a couple exceptions, all other keys are in the same place they are found on traditional keyboards. + +Nicholas Keene +ordinarylayout@nicholaskeene.com +no rights reserved, use for any purposes, credit me if you are a nice person + +## The Base Layout ## + +* The light blue keys are modifiers: traditional Control, Option, and Command keys, plus Hyper and Meh +* The dark blue keys are Shift keys: Capitals Shift (traditional shift), Symbol Shift, and Media Shift; plus a Shift Lock key +* Several dark blue keys double for entry of characters which would typically be in those locations +* The turquoise keys are text navigation and manipulation +* The red keys is Escape and it is always found in that location no matter what + +![Ordinary base layout](ordinary-base.png) + +This layout puts the modifier keys along the bottom of the keyboard where they are on most keyboards. They are in the regular order, with the addition of Hyper and Meh keys. The modifier keys are all in the same place on all layers, although some layers also assign symbols on those buttons. On the outside edges are the Shift keys. The traditional shift key is called Capitals Shift and it is in the normal location. Above that are Symbols Shift and Media Shift. Each Shift key momentarily switches the layout to that layer, and if you use the Shift Lock button you can lock the layout to that layer. + +Touch typists will also find tilde, tab, equals/plus, slash/pipe, and quote/double-quote sharing space on those Shift keys where they would probably be on a common keyboard. Other than the turquoise keys the only buttons which move to new locations are the Brackets and Dash and Escape. Most touch typists dont touch-type brackets or dash anyway so only Escape really requires retraining of muscle memory, and see below for the Special Escape Sequence. + +The four big turquoise keys are arranged differently than in the default Ergodox EZ layout. The Ordinary Layout here copies the design of the old Fingerworks TouchStream keyboard, but also reflects the natural presumptions of the author -- me! I type the space character with my right hand, and to me it makes sense for the two delete keys to be next to one another. + +The Forward Tab and Backward Tab keys are in their locations mostly because I ended up with two extra buttons and needed something to do with them. My muscle memory from using the Truly Ergonomic Keyboard makes me look for the Tab key with my right index finger, so it is handy to have this redundant Tab, and the idea with the Backward Tab key is that it becomes easy to navigate text fields in forms, or to indent/unindent code. + +## The Symbols Layer ## + +* The light green keys are the eponymous symbols +* The bright green keys are F-Keys +* The dark green keys constitute a number pad +* The turquoise keys are the *reverse* of the turquoise keys on the base layer + +![Ordinary symbol layout](ordinary-symbol.png) + +The Ergodox EZ ships with the "Coder Layer" which I like to call the Symbols layer. There are some significant improvements in The Ordinary Layout over the default layout. + +The symbol keys are mostly the same as on the default layout, which did a good job in this regard, but with a few enhancements: + +* Angle brackets on this layer mean that curly, square, and angle brackets are all available on different layers of the same two buttons. Also, they mean that all kinds of brackets, including parentheses, are available on both the Base and Symbols layers. +* The slash, backslash, and pipe characters are grouped together as a memory aid. +* The & and | symbols are juxtaposed as a memory aid + +The number pad area here, in green, includes all four arithmetic operations in the same order found on most number pads and features an Enter key. The keycodes emitted here are normal numeric keycodes, not the number-pad specific keycodes emitted by most number pads, because this layout does not use a Num Lock key to switch the buttons between numeric keycodes and navigational keycodes. See the explanation in The Media Layout section about navigation using these same buttons. + +Finally, consider the turquoise text-nav keys. Here in the Symbols layer, these are *reversed* from the base layer, with the keys either mirrored or shifted. This is powerful! Often I find myself using the mouse with my right hand, and the left hand needs to press Enter. Instead of reaching the left hand over to the right side of the keyboard, now I simply tap Symbols to reverse the turquoise keys, and Enter is right where it should be. + +## The Media Layer ## + +* The dark orange keys on the left move the mouse cursor +* The dark orange keys on the right move the text cursor +* The light orange keys are for scrolling and paging +* The bright green keys are more F-keys +* The dark yellow keys signal Web and Audio applications +* The light yellow keys signal the operating system +* The dark gray keys do nothing in case you bump them by accident + +![Ordinary media layout](ordinary-media.png) + +This layer was inspired by the Media layer on the Ergodox EZ but takes it farther. The Fingerworks TouchStream keyboard had a very useful feature for controlling the text cursor easily and this layer does something similar. The left hand can move the mouse, the right hand moves the text cursor, in all four directions, in small or large increments. This greatly enhances navigation in text documents. + +Moreover, the orange keys on the right overlay the numberpad from the Symbols Layer, such that in the Media Layer the same keys can be used as if they were a number pad in navigational mode (Num Lock off). For instance, in traditional number pads the '3' key became 'Page Down', and so it is here. This means a user can do text navigation without moving either hand. + +Alas, the yellow keys have at best spotty success with common software. Good luck with those but don't expect too much. + +## Switching Between Layers ## + +In addition to Symbols and Media there is the Capitals layer which is exactly the same as pressing the shift key. Each layer is accessed by a shift key on each edge of the keyboard and corresponds to one of the three LEDs on the keyboard: Capitals (red), Symbols (green), Media (blue). The color of a layer illuminates when the layer is active. + +Shift buttons work in the expected way: press them and all of the keys switch to that layer; release them and the keys switch back to the base layer. If you press both of a pair of shift keys, the layer will lock on until you press both shift keys again. For instance, the widely and rightly loathed Caps Lock is engaged by pressing both Capitals Shift buttons. All the Shift keys work this way. + +Multiple layers can be turned on at once. The Capitals layer will affect characters on other layers to capitalize. Other layers, however, don't 'mix': Symbols blankets the base layout; Media blankets Symbols. + +## Special Sequences ## + +![Ordinary special layout](ordinary-special.png) + +### Escape ### + +The One True Location for the Escape key is segregated way up on the top left of the keyboard. The Ergodox does not have a physical button in such a location and the nearest one is home to the tilde (er, grave) which is commonly found there. In the Ordinary layout the Escape key is found on all layers in the prominent location in the corner next to the 5, whnich is easy to remember, and yet it isn't natural for those of us with muscle memory flicking our wrists up and to the left looking for Escape. + +The Ordinary layout offers as a consolation prize a Special sequence for Escape: Special Shift + 1. This is natural so you can tap the top left button, then the button next to it and get Escape. This gesture works in all layers. + +### Backspace ### + +At the top right corner of the Ergodox EZ you can a gesture similar to the special Escape sequence, using the 0 key, to produce a Backspace. Users of this keyboard and this layout are well advised to learn to use their thumbs for deleting text, but sometimes you are doing other computery things and just want to flick your digits up to the right and press backspace a bunch times. + +### RShift ### + +The Ordinary Layout locks layers by pressing both of a pair of shift keys. This interferes with the QMK firmware magic sequence, which is LShift+RShift. To work around this, both of the Capitals Shift keys produce a *Left Shift* keystroke. If for some reason a person needs *Right Shift* they can find it by pressing a Special Shift key, then the Capitals Shift key on the right side of the keyboard. + +**** + +The Ordinary Layout for the Ergodox EZ keyboard, v4 + +Modifications from default by Nicholas Keene ergodoxez@nicholaskeene.com + +No rights reserved. This software is in the public domain. Credit me if you are friendly but if you're a jerk don't bother. + +Details: readme.md + https://github.com/nrrkeene/qmk_firmware/tree/master/keyboard/ergodox_ez/keymaps/ordinary diff --git a/keyboards/ergodox/keymaps/osx_de/keymap.c b/keyboards/ergodox/keymaps/osx_de/keymap.c new file mode 100644 index 000000000..554813d7e --- /dev/null +++ b/keyboards/ergodox/keymaps/osx_de/keymap.c @@ -0,0 +1,364 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_german_osx.h" + +#define BASE 0 +#define SYMB 1 +#define MDIA 2 +#define SMLY 3 +#define NUMB 4 +#define EGOS 5 + +#define M_CTRL_CMDV 0 +#define M_CTRL_CMDC 1 +#define M_MEH_SH_ACUT 2 +#define M_LGUI_SHFT 3 +#define M_CTL_SFT_HASH 4 +#define M_DE_OSX_CIRC_CTRLCMD 5 +#define M_DE_OSX_PLUS_CTRLALT 6 +#define SM_SMILE 7 +#define SM_SMIRK 8 +#define SM_CRY 9 +#define SM_SAD 10 +#define SM_HEART 11 +#define SM_LAUGH 12 +#define SM_KISS 13 +#define SM_FROWN 14 +#define M_TOGGLE_5 15 + +//Layout keymap.c generated with ErgodoxLayoutGenerator V1.0BETA1 +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[BASE]=KEYMAP( +//left half + KC_ESC, DE_OSX_1, DE_OSX_2, DE_OSX_3, DE_OSX_4, DE_OSX_5, M(M_CTL_SFT_HASH), + KC_TAB, DE_OSX_Q, DE_OSX_W, DE_OSX_E, DE_OSX_R, DE_OSX_T, KC_LGUI, + KC_LALT, DE_OSX_A, DE_OSX_S, DE_OSX_D, DE_OSX_F, DE_OSX_G, + KC_LSFT, CTL_T(DE_OSX_Y), DE_OSX_X, DE_OSX_C, DE_OSX_V, DE_OSX_B, KC_LALT, + LT(SYMB,DE_OSX_LESS), M(M_DE_OSX_CIRC_CTRLCMD), M(M_DE_OSX_PLUS_CTRLALT), KC_UP, KC_DOWN, + M(M_MEH_SH_ACUT), TG(MDIA), + KC_HOME, + KC_BSPC, KC_DEL, LT(SMLY,KC_END), + //right half + M(M_CTL_SFT_HASH), DE_OSX_6, DE_OSX_7, DE_OSX_8, DE_OSX_9, DE_OSX_0, DE_OSX_SS, + KC_RGUI, DE_OSX_Z, DE_OSX_U, DE_OSX_I, DE_OSX_O, DE_OSX_P, DE_OSX_UE, + DE_OSX_H, DE_OSX_J, DE_OSX_K, DE_OSX_L, DE_OSX_OE, ALT_T(DE_OSX_AE), + KC_RALT, DE_OSX_N, DE_OSX_M, DE_OSX_COMM, DE_OSX_DOT, CTL_T(DE_OSX_MINS), KC_RSFT, + KC_LEFT, KC_RIGHT, LGUI(KC_LSFT), LALT(KC_LSFT), LT(SYMB,DE_OSX_PLUS), + TG(NUMB), ALL_T(DE_OSX_ACUT), + KC_PGUP, + KC_PGDN, KC_ENT, KC_SPC), +[SYMB]=KEYMAP( +//left half + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS, DE_OSX_LESS, DE_OSX_MORE, DE_OSX_EXLM, DE_OSX_QST, KC_TRNS, KC_TRNS, + KC_TRNS, DE_OSX_HASH, DE_OSX_DLR, DE_OSX_BSLS, DE_OSX_SLSH, KC_DOT, + KC_TRNS, KC_TRNS, DE_OSX_LESS, DE_OSX_PERC, DE_OSX_PIPE, DE_OSX_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 half + M(M_TOGGLE_5), KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), DE_OSX_LESS, DE_OSX_MORE, DE_OSX_EXLM, + DE_OSX_SLSH, DE_OSX_LPRN, DE_OSX_RPRN, LALT(KC_8), LALT(KC_9), DE_OSX_HASH, + KC_TRNS, DE_OSX_PIPE, DE_OSX_TILD, DE_OSX_CIRC, KC_UP, DE_OSX_MINS, LSFT(KC_4), + DE_OSX_QUOT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, + KC_F13, KC_F12, + KC_F14, + KC_F15, KC_TRNS, KC_TRNS), +[MDIA]=KEYMAP( +//left half + 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 half + 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), +[SMLY]=KEYMAP( +//left half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 half + M(SM_SMILE), M(SM_SMIRK), M(SM_LAUGH), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, M(SM_FROWN), M(SM_SAD), M(SM_CRY), KC_TRNS, KC_TRNS, KC_TRNS, + M(SM_HEART), M(SM_KISS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), +[NUMB]=KEYMAP( +//left half + 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 half + 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, DE_OSX_MINS, + KC_TRNS, LSFT(KC_6), KC_1, KC_2, KC_3, LSFT(KC_7), KC_TRNS, + KC_0, KC_DOT, KC_COMM, DE_OSX_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), +[EGOS]=KEYMAP( +//left half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_F1, KC_F2, + KC_F3, + KC_SPC, KC_LCTL, KC_F4, + //right half + M(M_TOGGLE_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, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ +static uint16_t start; +switch(id) { +case M_TOGGLE_5: +//Macro: M_TOGGLE_5//----------------------- + if (record->event.pressed){ + layer_state ^= (1<<5); + layer_state &= (1<<5); + } + +break; +case M_CTRL_CMDC: +//Macro: M_CTRL_CMDC//----------------------- +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 M_DE_OSX_PLUS_CTRLALT: +//Macro: M_DE_OSX_PLUS_CTRLALT//----------------------- +if (record->event.pressed) { + start = timer_read(); + return MACRO(D(LCTRL),D(LALT),END); + } else { + if (timer_elapsed(start) >150) { + return MACRO(U(LCTRL),U(LALT),END); + } else { + return MACRO(U(LCTRL),U(LALT),T(RBRC),END); + } + } + +break; +case SM_KISS: +//Macro: SM_KISS//----------------------- +if (record->event.pressed) { + return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(RBRC),U(LSFT),END); + } + +break; +case SM_FROWN: +//Macro: SM_FROWN//----------------------- +if (record->event.pressed) { + return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LALT),T(8),U(LALT),END); + } + +break; +case SM_CRY: +//Macro: SM_CRY//----------------------- +if (record->event.pressed) { + return MACRO(D(LSFT),T(COMM),U(LSFT),T(SLSH),D(LSFT),T(8),U(LSFT),END); + } + +break; +case SM_SMILE: +//Macro: SM_SMILE//----------------------- +if (record->event.pressed) { + return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(9),U(LSFT),END); + } + +break; +case SM_SMIRK: +//Macro: SM_SMIRK//----------------------- +if (record->event.pressed) { + return MACRO(D(LSFT),T(COMM),U(LSFT),T(SLSH),D(LSFT),T(9),U(LSFT),END); + } + +break; +case M_LGUI_SHFT: +//Macro: M_LGUI_SHFT//----------------------- +if (record->event.pressed){ + return MACRO(D(LGUI),D(LSFT),END); + }else{ + return MACRO(U(LGUI),U(LSFT),END); + } + +break; +case SM_HEART: +//Macro: SM_HEART//----------------------- +if (record->event.pressed) { + return MACRO(T(GRV),T(3),END); + } + +break; +case SM_LAUGH: +//Macro: SM_LAUGH//----------------------- +if (record->event.pressed) { + return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(D),U(LSFT),END); + } + +break; +case M_CTL_SFT_HASH: +//Macro: M_CTL_SFT_HASH//----------------------- +if (record->event.pressed) { + start = timer_read(); + return MACRO(D(LCTRL),D(LSFT),END); + } else { + if (timer_elapsed(start) >150) { + return MACRO(U(LCTRL),U(LSFT),END); + } else { + return MACRO(U(LCTRL),U(LSFT),T(BSLS),END); + } + } + +break; +case SM_SAD: +//Macro: SM_SAD//----------------------- +if (record->event.pressed) { + return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(8),U(LSFT),END); + } + +break; +case M_DE_OSX_CIRC_CTRLCMD: +//Macro: M_DE_OSX_CIRC_CTRLCMD//----------------------- +if (record->event.pressed) { + start = timer_read(); + return MACRO(D(LCTRL),D(LGUI),END); + } else { + if (timer_elapsed(start) >150) { + return MACRO(U(LCTRL),U(LGUI),END); + } else { + return MACRO(U(LCTRL),U(LGUI),T(NUBS),END); + } + } + +break; +case M_CTRL_CMDV: +//Macro: M_CTRL_CMDV//----------------------- +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 M_MEH_SH_ACUT: +//Macro: M_MEH_SH_ACUT//----------------------- +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); + } + } + +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; + case SMLY: + + + ergodox_right_led_3_on(); + break; + case NUMB: + ergodox_right_led_1_on(); + + ergodox_right_led_3_on(); + break; + case EGOS: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + ergodox_right_led_3_on(); + break; +default: +// none +break; +} + +}; + diff --git a/keyboards/ergodox/keymaps/osx_de/osx_de_highres.png b/keyboards/ergodox/keymaps/osx_de/osx_de_highres.png new file mode 100644 index 000000000..d442a992c Binary files /dev/null and b/keyboards/ergodox/keymaps/osx_de/osx_de_highres.png differ diff --git a/keyboards/ergodox/keymaps/osx_de/readme.md b/keyboards/ergodox/keymaps/osx_de/readme.md new file mode 100644 index 000000000..5011a9dd6 --- /dev/null +++ b/keyboards/ergodox/keymaps/osx_de/readme.md @@ -0,0 +1,41 @@ +#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 ist jetzt auf der rechten seite, neben Enter. Dafür hat der linke Daumen nun Backspace und Delete. +- die CMD- und Alt-Tasten sind in der Mitte einfach erreichbar. +- es gibt eine neue Layer die für Spiele genutzt werden kann (egosooter wie Counter Strike). Dort liegen die wichtigsten Tasten auf der linken Seite, im Daumenblock z.B. space und ctrl sowie die F-Tasten 1-4. Diese Layer ist über die Symbollayer erreichbar. +- 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 + +# Erstellt Mit Dem ErgodoxLayoutGenerator + +Der ErgodoxLayoutGenerator ist ein kleines Werkzeug, welches die Erstellung und Pflege der eigenen Keymaps erleichtern soll. Es ist in java geschrieben und kann [hier](https://github.com/sboesebeck/ErgodoxLayoutGenerator/releases) heruntergeladen werden. Damit das Tool funktioniert sollte das offizielle Oracle JDK in aktueller Version installiert sein. +Die Dokumentation für den ELG kann man [hier](https://boesebeck.name/2016/04/16/ergodoxlayoutgenerator-documentation/) nachlesen (momentan leider nur in Englisch verfügbar). + + + +------------------------------ + +# 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 + +# Created Using the ErgodoxLayoutGenerator + +The ErgodoxLayoutGenerator (ELG) is a little tool, which makes the creation and maintenance of keycaps a lot easier. It was written in Java and can be downloaded [here](https://github.com/sboesebeck/ErgodoxLayoutGenerator/releases). To use the tool, you need to have a current version of Oracles JDK installed. + +The documentation of the ELG can be viewed [here](https://boesebeck.name/2016/04/16/ergodoxlayoutgenerator-documentation/). + diff --git a/keyboards/ergodox/keymaps/osx_de_adnw_koy/keymap.c b/keyboards/ergodox/keymaps/osx_de_adnw_koy/keymap.c new file mode 100644 index 000000000..687a5cb8b --- /dev/null +++ b/keyboards/ergodox/keymaps/osx_de_adnw_koy/keymap.c @@ -0,0 +1,174 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#include "keymap_neo2.h" +#include "keymap_uk.h" +#include "keymap_colemak.h" +#include "keymap_french_osx.h" +#include "keymap_nordic.h" +#include "keymap_dvorak.h" +#include "keymap_german.h" +#include "keymap_norwegian.h" +#include "keymap_fr_ch.h" +#include "keymap_german_osx.h" +#include "keymap_spanish.h" +#include "keymap_bepo.h" + +#define BASE 0 +#define SYMB 1 +#define MDIA 2 +#define QWERTZ 3 +#define NUMB 4 + +#define UNUSED 0 + +//Layout keymap.c generated with ErgodoxLayoutGenerator V1.0BETA1 +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[BASE]=KEYMAP( +//left half + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LCTL, + KC_TAB, KC_K, KC_DOT, KC_O, KC_COMM, KC_Z, KC_LGUI, + TG(QWERTZ), KC_H, KC_A, KC_E, KC_I, KC_U, + KC_LSFT, CTL_T(KC_X), KC_Q, DE_AE, DE_UE, DE_OE, KC_LALT, + LT(SYMB,KC_GRV), DE_LESS, LALT(KC_LSFT), KC_LEFT, KC_RGHT, + TG(MDIA), MEH_T(LSFT(DE_ACUT)), + KC_HOME, + KC_BSPC, KC_DEL, KC_END, + //right half + KC_RCTL, KC_6, KC_7, KC_8, KC_9, KC_0, DE_OSX_MINS, + KC_RGUI, 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_RALT, KC_B, KC_P, KC_W, KC_M, CTL_T(KC_J), KC_RSFT, + KC_UP, KC_DOWN, LGUI(KC_LSFT), KC_RBRC, LT(SYMB,KC_BSLS), + ALL_T(DE_ACUT), TG(NUMB), + KC_PGUP, + KC_PGDN, KC_ENT, KC_SPC), +[SYMB]=KEYMAP( +//left half + 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 half + 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), +[MDIA]=KEYMAP( +//left half + 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 half + 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), +[QWERTZ]=KEYMAP( +//left half + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, LGUI(KC_V), + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LGUI, + KC_TRNS, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_LALT, + LT(SYMB,KC_GRV), DE_LESS, LALT(KC_LSFT), KC_LEFT, KC_RGHT, + KC_TRNS, MEH_T(LSFT(DE_ACUT)), + KC_HOME, + KC_BSPC, KC_DEL, KC_END, + //right half + LGUI(KC_C), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_RGUI, KC_Y, KC_U, KC_I, KC_O, KC_P, DE_UE, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(MDIA,DE_AE), + KC_RALT, KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + KC_UP, KC_DOWN, LGUI(KC_LSFT), KC_RBRC, LT(SYMB,KC_BSLS), + ALL_T(DE_ACUT), KC_TRNS, + KC_PGUP, + KC_PGDN, KC_ENT, KC_SPC), +[NUMB]=KEYMAP( +//left half + 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 half + 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[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ +switch(id) { +case UNUSED: +//Macro: UNUSED//----------------------- + + + + + + 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) { + +default: +// none +break; +} + +}; + diff --git a/keyboards/ergodox/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png b/keyboards/ergodox/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png new file mode 100644 index 000000000..193aa339e Binary files /dev/null and b/keyboards/ergodox/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png differ diff --git a/keyboards/ergodox/keymaps/osx_de_experimental/keymap.c b/keyboards/ergodox/keymaps/osx_de_experimental/keymap.c new file mode 100644 index 000000000..21d695894 --- /dev/null +++ b/keyboards/ergodox/keymaps/osx_de_experimental/keymap.c @@ -0,0 +1,597 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_neo2.h" +#include "keymap_uk.h" +#include "keymap_colemak.h" +#include "keymap_nordic.h" +#include "keymap_dvorak.h" +#include "keymap_german.h" +#include "keymap_norwegian.h" +#include "keymap_fr_ch.h" +#include "keymap_german_osx.h" +#include "keymap_spanish.h" +#include "keymap_bepo.h" + + +/** +* This layout was generated using the ErgodoxLayoutGenerator (ELG). You can download it from https://github.com/sboesebeck/ErgodoxLayoutGenerator/releases +* documentation about it can be found here https://boesebeck.name/2016/04/16/ergodoxlayoutgenerator-documentation/ +* Thanks to the team of Erez Zukerman for building the great Ergodox-EZ! +* +* use at own risk! +**/ + +#define BASE 0 +#define SYMB 1 +#define MDIA 2 +#define SMLY 3 +#define NUMB 4 +#define EGOS 5 + +#define SMLY_TOG_QUOT 0 + +#define M_TOGGLE_5 1 + +#define TGH_NUM 2 + +#define M_DE_OSX_PLUS_CTRLALT 3 + +#define SM_KISS 4 + +#define SM_FROWN 5 + +#define SM_CRY 6 + +#define SM_SMILE 7 + +#define SM_SMIRK 8 + +#define M_LGUI_SHFT 9 + +#define SM_HEART 10 + +#define TOG_HLD_MDIA 11 + +#define SM_LAUGH 12 + +#define SM_SAD 13 + +#define M_DE_OSX_CIRC_CTRLCMD 14 + +#define M_MEH_SH_ACUT 15 + + +//Layout keymap.c generated with ErgodoxLayoutGenerator V1.0BETA1 +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/** +* Layer: BASE +* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ +* | ESC | 1 | 2 | 3 | 4 | 5 | Hold or toggle | | Hold or toggle | 6 | 7 | 8 | 9 | 0 | ß | +* | | | | | | | Layer NUMB | | Layer MDIA | | | | | | | +* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ +* | TAB | Q | W | E | R | T | Cmd | | Cmd | Z | U | I | O | P | Ü | +* | | | | | | | | | | | | | | | | +* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/\-------------------\ \-------------------\/-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ +* | Alt | A | S | D | F | G | | H | J | K | L | Ö | Ä | +* | | | | | | | | | | | | | ALT | +* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ +* | Shift | Y | X | C | V | B | Alt | | Alt | N | M | , | . | - | Shift | +* | | Ctrl | | | | | | | | | | | | Ctrl | | +* \-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\ \-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\ +* +* +* /-------------------//-------------------//-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------//-------------------//-------------------/ +* | < | LongPress / Type | LongPress / Type | Shift+Ctrl | Type | | # | ACUT | CMD+Shift | ALT+Shift | + | +* | SYMB | DE_OSX_CIRC_CTRLCMD| DE_OSX_PLUS_CTRAlt | | Toggle SMLY | | Meh | Hyper | | | SYMB | +* \-------------------\\-------------------\\-------------------\\-------------------\/-------------------//-------------------/ /-------------------//-------------------/ \-------------------\\-------------------\\-------------------\\-------------------\\-------------------\ +* | HOME | END | | LEFT | RIGHT | +* | | | | | | +* \-------------------\/-------------------/ /-------------------/\-------------------\ +* | PGUP | | UP | +* | | | | +* /-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------/ +* | BSPC | DEL | PGDN | | DOWN | ENT | SPC | +* | | | | | | | | +* \-------------------\\-------------------\\-------------------\ \-------------------\\-------------------\\-------------------\ +* +* +**/ +[BASE]=KEYMAP( +//left half + KC_ESC, DE_OSX_1, DE_OSX_2, DE_OSX_3, DE_OSX_4, DE_OSX_5, M(TGH_NUM), + KC_TAB, DE_OSX_Q, DE_OSX_W, DE_OSX_E, DE_OSX_R, DE_OSX_T, KC_LGUI, + KC_LALT, DE_OSX_A, DE_OSX_S, DE_OSX_D, DE_OSX_F, DE_OSX_G, + KC_LSFT, CTL_T(DE_OSX_Y), DE_OSX_X, DE_OSX_C, DE_OSX_V, DE_OSX_B, KC_LALT, + LT(SYMB,DE_OSX_LESS), M(M_DE_OSX_CIRC_CTRLCMD), M(M_DE_OSX_PLUS_CTRLALT), LSFT(KC_LCTRL), M(SMLY_TOG_QUOT), + KC_HOME, KC_END, + KC_PGUP, + KC_BSPC, KC_DEL, KC_PGDN, + //right half + M(TOG_HLD_MDIA), DE_OSX_6, DE_OSX_7, DE_OSX_8, DE_OSX_9, DE_OSX_0, DE_OSX_SS, + KC_RGUI, DE_OSX_Z, DE_OSX_U, DE_OSX_I, DE_OSX_O, DE_OSX_P, DE_OSX_UE, + DE_OSX_H, DE_OSX_J, DE_OSX_K, DE_OSX_L, DE_OSX_OE, ALT_T(DE_OSX_AE), + KC_RALT, DE_OSX_N, DE_OSX_M, DE_OSX_COMM, DE_OSX_DOT, CTL_T(DE_OSX_MINS), KC_RSFT, + MEH_T(DE_OSX_HASH), ALL_T(DE_OSX_ACUT), LGUI(KC_LSFT), LALT(KC_LSFT), LT(SYMB,DE_OSX_PLUS), + KC_LEFT, KC_RIGHT, + KC_UP, + KC_DOWN, KC_ENT, KC_SPC), +/** +* Layer: SYMB +* /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ +* | APPLICATION| F1 | F2 | F3 | F4 | F5 | F5 | | F6 | F6 | F7 | F8 | F9 | F10 | F11 | +* | | | | | | | | | | | | | | | | +* /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ +* | | < | > | ! | ? | | | | | \ | [ | ] | < | > | ! | +* | | | | | | | | | | | | | | | | +* /-----------//-----------//-----------//-----------//-----------//-----------/\-----------\ \-----------\/-----------//-----------//-----------//-----------//-----------//-----------/ +* | | # | $ | \ | / | . | | / | ( | ) | { | } | # | +* | | | | | | | | | | | | | | +* /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ +* | | | < | % | | | ~ | | | | | | ~ | | | | | +* | | | | | | | | | | | | | | | | +* \-----------\\-----------\\-----------\\-----------\\-----------\\-----------\\-----------\ \-----------\\-----------\\-----------\\-----------\\-----------\\-----------\\-----------\ +* +* +* /-----------//-----------//-----------//-----------//-----------/ /-----------//-----------//-----------//-----------//-----------/ +* | | | | | | | ' | DQOT | | Toggle 5 | | +* | | | | | | | | | | | | +* \-----------\\-----------\\-----------\\-----------\/-----------//-----------/ /-----------//-----------/ \-----------\\-----------\\-----------\\-----------\\-----------\ +* | | | | F13 | F12 | +* | | | | | | +* \-----------\/-----------/ /-----------/\-----------\ +* | | | F14 | +* | | | | +* /-----------//-----------//-----------/ /-----------//-----------//-----------/ +* | | DEL | | | F15 | | | +* | | | | | | | | +* \-----------\\-----------\\-----------\ \-----------\\-----------\\-----------\ +* +* +**/ +[SYMB]=KEYMAP( +//left half + KC_APPLICATION, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F5, + KC_TRNS, DE_OSX_LESS, DE_OSX_MORE, DE_OSX_EXLM, DE_OSX_QST, KC_TRNS, KC_TRNS, + KC_TRNS, DE_OSX_HASH, DE_OSX_DLR, DE_OSX_BSLS, DE_OSX_SLSH, KC_DOT, + KC_TRNS, KC_TRNS, DE_OSX_LESS, DE_OSX_PERC, DE_OSX_PIPE, DE_OSX_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 half + KC_F6, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, DE_OSX_BSLS, DE_OSX_LBRC, DE_OSX_RBRC, DE_OSX_LESS, DE_OSX_MORE, DE_OSX_EXLM, + DE_OSX_SLSH, DE_OSX_LPRN, DE_OSX_RPRN, DE_OSX_LCBR, DE_OSX_RCBR, DE_OSX_HASH, + KC_TRNS, DE_OSX_PIPE, DE_OSX_TILD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + DE_OSX_QUOT, DE_OSX_DQOT, KC_TRNS, M(M_TOGGLE_5), KC_TRNS, + KC_F13, KC_F12, + KC_F14, + KC_F15, KC_TRNS, KC_TRNS), +/** +* Layer: MDIA +* /-----//-----//-----//-----//-----//-----//-----/ /-----//-----//-----//-----//-----//-----//-----/ +* | | | | | | | | | | | | | | | | +* | | | | | | | | | | | | | | | | +* /-----//-----//-----//-----//-----//-----//-----/ /-----//-----//-----//-----//-----//-----//-----/ +* | | | BTN1 | U | BTN2 | U | | | | | | | | | | +* | | | | | | | | | | | | | | | | +* /-----//-----//-----//-----//-----//-----/\-----\ \-----\/-----//-----//-----//-----//-----//-----/ +* | | | L | D | R | D | | | | | | | | +* | | | | | | | | | | | | | | +* /-----//-----//-----//-----//-----//-----//-----/ /-----//-----//-----//-----//-----//-----//-----/ +* | | | L | D | R | BTN3 | | | | | | | | UP | | +* | | | | | | | | | | | | | | | | +* \-----\\-----\\-----\\-----\\-----\\-----\\-----\ \-----\\-----\\-----\\-----\\-----\\-----\\-----\ +* +* +* /-----//-----//-----//-----//-----/ /-----//-----//-----//-----//-----/ +* | | | | | | | | | LEFT | DOWN | RIGHT| +* | | | | | | | | | | | | +* \-----\\-----\\-----\\-----\/-----//-----/ /-----//-----/ \-----\\-----\\-----\\-----\\-----\ +* | | | | MPRV | MNXT | +* | | | | | | +* \-----\/-----/ /-----/\-----\ +* | | | VOLU | +* | | | | +* /-----//-----//-----/ /-----//-----//-----/ +* | | | | | VOLD | MUTE | MPLY | +* | | | | | | | | +* \-----\\-----\\-----\ \-----\\-----\\-----\ +* +* +**/ +[MDIA]=KEYMAP( +//left half + 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 half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_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_RIGHT, + KC_MPRV, KC_MNXT, + KC_VOLU, + KC_VOLD, KC_MUTE, KC_MPLY), +/** +* Layer: SMLY +* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ +* | | | | | | | | | Typing | Typing | Typing | | | | | +* | | | | | | | | | SM_SMILE| SM_SMIRK| SM_LAUGH| | | | | +* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ +* | | | | | | | | | | Typing | Typing | Typing | | | | +* | | | | | | | | | | SM_FROWN| SM_SAD | SM_CRY | | | | +* /--------//--------//--------//--------//--------//--------/\--------\ \--------\/--------//--------//--------//--------//--------//--------/ +* | | | | | | | | Typing | Typing | | | | | +* | | | | | | | | SM_HEART| SM_KISS | | | | | +* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ +* | | | | | | | | | | | | | | | | +* | | | | | | | | | | | | | | | | +* \--------\\--------\\--------\\--------\\--------\\--------\\--------\ \--------\\--------\\--------\\--------\\--------\\--------\\--------\ +* +* +* /--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------/ +* | | | | | | | | | | | | +* | | | | | | | | | | | | +* \--------\\--------\\--------\\--------\/--------//--------/ /--------//--------/ \--------\\--------\\--------\\--------\\--------\ +* | | | | | | +* | | | | | | +* \--------\/--------/ /--------/\--------\ +* | | | | +* | | | | +* /--------//--------//--------/ /--------//--------//--------/ +* | | | | | | | | +* | | | | | | | | +* \--------\\--------\\--------\ \--------\\--------\\--------\ +* +* +**/ +[SMLY]=KEYMAP( +//left half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 half + M(SM_SMILE), M(SM_SMIRK), M(SM_LAUGH), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, M(SM_FROWN), M(SM_SAD), M(SM_CRY), KC_TRNS, KC_TRNS, KC_TRNS, + M(SM_HEART), M(SM_KISS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), +/** +* Layer: NUMB +* /----//----//----//----//----//----//----/ /----//----//----//----//----//----//----/ +* | | | | | | | | | | F6 | F7 | F8 | F9 | F10 | F11 | +* | | | | | | | | | | | | | | | | +* /----//----//----//----//----//----//----/ /----//----//----//----//----//----//----/ +* | | | | UP | | | | | | / | 7 | 8 | 9 | * | F12 | +* | | | | | | | | | | | | | | | | +* /----//----//----//----//----//----/\----\ \----\/----//----//----//----//----//----/ +* | | | LEFT| DOWN| RGHT| | | / | 4 | 5 | 6 | + | - | +* | | | | | | | | | | | | | | +* /----//----//----//----//----//----//----/ /----//----//----//----//----//----//----/ +* | | | | | | | | | | % | 1 | 2 | 3 | | | +* | | | | | | | | | | | | | | | | +* \----\\----\\----\\----\\----\\----\\----\ \----\\----\\----\\----\\----\\----\\----\ +* +* +* /----//----//----//----//----/ /----//----//----//----//----/ +* | | | | | | | 0 | . | , | = | | +* | | | | | | | | | | | | +* \----\\----\\----\\----\/----//----/ /----//----/ \----\\----\\----\\----\\----\ +* | | | | | | +* | | | | | | +* \----\/----/ /----/\----\ +* | | | | +* | | | | +* /----//----//----/ /----//----//----/ +* | | | | | | | | +* | | | | | | | | +* \----\\----\\----\ \----\\----\\----\ +* +* +**/ +[NUMB]=KEYMAP( +//left half + 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 half + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, DE_OSX_SLSH, KC_7, KC_8, KC_9, DE_OSX_ASTR, KC_F12, + DE_OSX_SLSH, KC_4, KC_5, KC_6, DE_OSX_PLUS, DE_OSX_MINS, + KC_TRNS, DE_OSX_PERC, KC_1, KC_2, KC_3, KC_TRNS, KC_TRNS, + KC_0, KC_DOT, KC_COMM, DE_OSX_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), +/** +* Layer: EGOS +* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ +* | | | | | | | | | | | | | | | | +* | | | | | | | | | | | | | | | | +* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ +* | | | | | | | | | | | | | | | | +* | | | | | | | | | | | | | | | | +* /--------//--------//--------//--------//--------//--------/\--------\ \--------\/--------//--------//--------//--------//--------//--------/ +* | Shift | | | | | | | | | | | | | +* | | | | | | | | | | | | | | +* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ +* | | | | | | | | | | | | | | | | +* | | | | | | | | | | | | | | | | +* \--------\\--------\\--------\\--------\\--------\\--------\\--------\ \--------\\--------\\--------\\--------\\--------\\--------\\--------\ +* +* +* /--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------/ +* | Ctrl | | | | | | | | | Toggle 5| | +* | | | | | | | | | | | | +* \--------\\--------\\--------\\--------\/--------//--------/ /--------//--------/ \--------\\--------\\--------\\--------\\--------\ +* | F1 | F2 | | | | +* | | | | | | +* \--------\/--------/ /--------/\--------\ +* | F3 | | | +* | | | | +* /--------//--------//--------/ /--------//--------//--------/ +* | SPC | Ctrl | F4 | | | | | +* | | | | | | | | +* \--------\\--------\\--------\ \--------\\--------\\--------\ +* +* +**/ +[EGOS]=KEYMAP( +//left half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_F1, KC_F2, + KC_F3, + KC_SPC, KC_LCTL, KC_F4, + //right half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, M(M_TOGGLE_5), KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ +static uint16_t start; +switch(id) { +case SMLY_TOG_QUOT: +//Macro: SMLY_TOG_QUOT//----------------------- +if (record->event.pressed) { + start = timer_read(); + layer_state ^= (1<150) { + return MACRO_NONE; + } else { + return MACRO(DOWN(KC_LSFT),TYPE(DE_OSX_HASH),UP(KC_LSFT),END); + } + } + +break; +case M_TOGGLE_5: +//Macro: M_TOGGLE_5//----------------------- + if (record->event.pressed){ + layer_state ^= (1<<5); + layer_state &= (1<<5); + } + +break; +case TGH_NUM: +//Macro: TGH_NUM//----------------------- +if (record->event.pressed){ + start = timer_read(); + layer_state ^=(1< 150) { + layer_state^=(1<event.pressed) { + start = timer_read(); + return MACRO(DOWN(KC_LCTRL),DOWN(KC_LALT),END); + } else { + if (timer_elapsed(start) >150) { + return MACRO(U(LCTRL),U(LALT),END); + } else { + return MACRO(UP(KC_LCTRL),UP(KC_LALT),TYPE(KC_RBRC),END); + } + } + +break; +case SM_KISS: +//Macro: SM_KISS//----------------------- +if (record->event.pressed) { + return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_RBRC),UP(KC_LSFT),END); + } + +break; +case SM_FROWN: +//Macro: SM_FROWN//----------------------- +if (record->event.pressed) { + return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LALT),TYPE(KC_8),UP(KC_LALT),END); + } + +break; +case SM_CRY: +//Macro: SM_CRY//----------------------- +if (record->event.pressed) { + return MACRO(DOWN(KC_LSFT),TYPE(KC_COMM),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_8),UP(KC_LSFT),END); + } + +break; +case SM_SMILE: +//Macro: SM_SMILE//----------------------- +if (record->event.pressed) { + return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_9),UP(KC_LSFT),END); + } + +break; +case SM_SMIRK: +//Macro: SM_SMIRK//----------------------- +if (record->event.pressed) { + return MACRO(DOWN(KC_LSFT),TYPE(KC_COMM),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_9),UP(KC_LSFT),END); + } + +break; +case M_LGUI_SHFT: +//Macro: M_LGUI_SHFT//----------------------- +if (record->event.pressed){ + return MACRO(DOWN(KC_LGUI),DOWN(KC_LSFT),END); + }else{ + return MACRO(UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),U(LGUI),U(LSFT),END); + } + +break; +case SM_HEART: +//Macro: SM_HEART//----------------------- +if (record->event.pressed) { + return MACRO(TYPE(KC_GRV),TYPE(KC_3),END); + } + +break; +case TOG_HLD_MDIA: +//Macro: TOG_HLD_MDIA//----------------------- +if (record->event.pressed){ + start = timer_read(); + layer_state ^=(1< 150) { + layer_state^=(1<event.pressed) { + return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_D),UP(KC_LSFT),END); + } + +break; +case SM_SAD: +//Macro: SM_SAD//----------------------- +if (record->event.pressed) { + return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_8),UP(KC_LSFT),END); + } + +break; +case M_DE_OSX_CIRC_CTRLCMD: +//Macro: M_DE_OSX_CIRC_CTRLCMD//----------------------- +if (record->event.pressed) { + start = timer_read(); + return MACRO(DOWN(KC_LCTRL),DOWN(KC_LGUI),END); + } else { + if (timer_elapsed(start) >150) { + return MACRO(U(LCTRL),U(LGUI),END); + } else { + return MACRO(UP(KC_LCTRL),UP(KC_LGUI),TYPE(KC_NUBS),END); + } + } + +break; +case M_MEH_SH_ACUT: +//Macro: M_MEH_SH_ACUT//----------------------- +if (record->event.pressed) { + start = timer_read(); + return MACRO(DOWN(KC_LCTRL),DOWN(KC_LSFT),DOWN(KC_LALT),END); + } else { + if (timer_elapsed(start) >150) { + return MACRO(U(LCTRL),U(LSFT),U(LALT),END); + } else { + return MACRO(UP(KC_LCTRL),UP(KC_LALT),TYPE(DE_OSX_ACUT),UP(KC_LSFT),END); + } + } + +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; + case NUMB: + + + ergodox_right_led_3_on(); + break; + case EGOS: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + ergodox_right_led_3_on(); + break; +default: +// none +break; +} + +}; + diff --git a/keyboards/ergodox/keymaps/osx_de_experimental/osx_de_experimental_highres.png b/keyboards/ergodox/keymaps/osx_de_experimental/osx_de_experimental_highres.png new file mode 100644 index 000000000..031d874a7 Binary files /dev/null and b/keyboards/ergodox/keymaps/osx_de_experimental/osx_de_experimental_highres.png differ diff --git a/keyboards/ergodox/keymaps/osx_de_experimental/readme.md b/keyboards/ergodox/keymaps/osx_de_experimental/readme.md new file mode 100644 index 000000000..e6a101841 --- /dev/null +++ b/keyboards/ergodox/keymaps/osx_de_experimental/readme.md @@ -0,0 +1,22 @@ + +# Ergodox und Ergodox-EZ experimentelles Layout + +dieses layout ist experimentell und wird im Lufe der Zeit viele Änderungen und Verbesserungen durchlaufen. Falls diese sich als vorteilhaft erweisen, werden sie evtl. auch in das `osx_de` layout übernommen. + + + +# Erstellt Mit Dem ErgodoxLayoutGenerator + +Der ErgodoxLayoutGenerator (ELG) ist ein kleines Werkzeug, welches die Erstellung und Pflege der eigenen Keymaps erleichtern soll. Es ist in java geschrieben und kann [hier](https://github.com/sboesebeck/ErgodoxLayoutGenerator/releases) heruntergeladen werden. Damit das Tool funktioniert sollte das offizielle Oracle JDK in aktueller Version installiert sein. +Die Dokumentation für den ELG kann man [hier](https://boesebeck.name/2016/04/16/ergodoxlayoutgenerator-documentation/) nachlesen (momentan leider nur in Englisch verfügbar). +--------------------------------------------------------------------------------------------------------------------- + +# Ergodox and Ergodox-EZ experimental layout + +This is an experimental layout which will undergo heavy changes over time. If changes prove to be good, they might also move into the `osx_de` layout. + +Created Using the ErgodoxLayoutGenerator + +The ErgodoxLayoutGenerator (ELG) is a little tool, which makes the creation and maintenance of keycaps a lot easier. It was written in Java and can be downloaded [here](https://github.com/sboesebeck/ErgodoxLayoutGenerator/releases). To use the tool, you need to have a current version of Oracles JDK installed. + +The documentation of the ELG can be viewed [here](https://boesebeck.name/2016/04/16/ergodoxlayoutgenerator-documentation/). \ No newline at end of file diff --git a/keyboards/ergodox/keymaps/osx_fr/keymap.c b/keyboards/ergodox/keymaps/osx_fr/keymap.c new file mode 100644 index 000000000..de951666d --- /dev/null +++ b/keyboards/ergodox/keymaps/osx_fr/keymap.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_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/keyboards/ergodox/keymaps/osx_kinesis_pnut/keymap.c b/keyboards/ergodox/keymaps/osx_kinesis_pnut/keymap.c new file mode 100644 index 000000000..1032be549 --- /dev/null +++ b/keyboards/ergodox/keymaps/osx_kinesis_pnut/keymap.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/keyboards/ergodox/keymaps/plover/keymap.c b/keyboards/ergodox/keymaps/plover/keymap.c new file mode 100644 index 000000000..8a58a37f6 --- /dev/null +++ b/keyboards/ergodox/keymaps/plover/keymap.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_TRNS, + 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_TRNS, 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/keyboards/ergodox/keymaps/plums/keymap.c b/keyboards/ergodox/keymaps/plums/keymap.c new file mode 100644 index 000000000..46eb2e42b --- /dev/null +++ b/keyboards/ergodox/keymaps/plums/keymap.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 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | F5 | |Hypr+M| 6 | 7 | 8 | 9 | 0 | Mute | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | LGui | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | + * |--------+------+------+------+------+------| SYMB | | MDIA |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Ca/Ctl| { | ( | | | : | | - | = | ) | } |C`/Ctl| + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | LGA | LAlt | | RAlt | Play | + * ,------|------|------| |------+------+------. + * | | | Home | | PgUp | | | + * |Backsp| Esc |------| |------|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_F5, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, + KC_LGUI, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, TG(SYMB), + F(0), KC_LCBR, KC_LPRN,KC_PIPE,KC_COLN, + LGUI(KC_LALT), KC_LALT, + KC_HOME, + KC_BSPC, KC_ESC, KC_END, + // right hand + HYPR(KC_M), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MUTE, + KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + TG(MDIA), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_MINS, KC_EQL, KC_RPRN, KC_RCBR, F(1), + KC_RALT, KC_MPLY, + KC_PGUP, + KC_PGDN, KC_ENT, KC_SPC + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | | | | | | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Left | Down | Up | Right| | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, + KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------|MsLeft|MsDown| MsUp |MsRght| | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |VolUp |VolDn | Prev | Next | | | LClk | RClk | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_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_VOLD, KC_MPRV, KC_MNXT, 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_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_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_MACRO_TAP(0), // FN0 - Ctrl + a (For screen/tmux) + [1] = ACTION_MACRO_TAP(1) // FN1 - Ctrl + ` (For quake style console) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // this is the function signature -- just copy/paste it into your keymap file as it is. +{ + switch(id) { + case 0: + if (record->event.pressed) { + if (record->tap.count) { + if (record->tap.interrupted) { + record->tap.count = 0; + // hold press action + register_code(KC_LCTL); + } else { + // tap press action + return MACRO( D(LCTL), T(A), U(LCTL), END ); + } + } else { + // hold press action + register_code(KC_LCTL); + } + } else { + if (record->tap.count) { + // tap release action + } else { + // hold release action + unregister_code(KC_LCTL); + } + record->tap.count = 0; + } + break; + case 1: + if (record->event.pressed) { + if (record->tap.count) { + if (record->tap.interrupted) { + record->tap.count = 0; + // hold press action + register_code(KC_RCTL); + } else { + // tap press action + return MACRO( DOWN(KC_RCTL), TYPE(KC_GRV), UP(KC_RCTL), END ); + } + } else { + // hold press action + register_code(KC_RCTL); + } + } else { + if (record->tap.count) { + // tap release action + } else { + // hold release action + unregister_code(KC_RCTL); + } + record->tap.count = 0; + } + 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/keyboards/ergodox/keymaps/plums/plums.png b/keyboards/ergodox/keymaps/plums/plums.png new file mode 100644 index 000000000..2f127c4ca Binary files /dev/null and b/keyboards/ergodox/keymaps/plums/plums.png differ diff --git a/keyboards/ergodox/keymaps/plums/readme.md b/keyboards/ergodox/keymaps/plums/readme.md new file mode 100644 index 000000000..b72329eef --- /dev/null +++ b/keyboards/ergodox/keymaps/plums/readme.md @@ -0,0 +1,11 @@ +# ErgoDox EZ Plums Configuration + +## Changelog + +* Apr 23, 2016 (v0.1.0): + * Shortcut for iTerm2 quake style dropdown (Ctrl+`) + * Shortcut for screen/tmux (Ctrl+a) + * Shortcut for shush (Hyper+m) + * Combo modifier for LGUI + LALT + +![Plums](plums.png) diff --git a/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/keymap.c b/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/keymap.c new file mode 100644 index 000000000..a66971bef --- /dev/null +++ b/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/keymap.c @@ -0,0 +1,46 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = KEYMAP( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F5, + KC_TAB, KC_Q, KC_W, KC_D, KC_F, KC_K, KC_BSLS, + CTL_T(KC_ESC), KC_A, KC_S, KC_E, KC_T, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, + KC_F1, KC_F2, KC_F3, KC_F4, KC_LGUI, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLD, KC_MUTE, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLU, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_BSPC, CTL_T(KC_ESC), KC_LALT, + // + /*-*/ KC_F6, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + /*-*/ KC_NO, KC_J, KC_U, KC_R, KC_L, KC_SCLN, KC_MINS, + /*-*/ /*-*/ KC_Y, KC_N, KC_I, KC_O, KC_H, KC_ENT, + /*-*/ KC_RBRC, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + /*-*/ /*-*/ /*-*/ KC_RGUI, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, + KC_MPLY, KC_MNXT, + KC_MPRV, + KC_RALT, KC_QUOT, KC_SPC + ) +}; + +const uint16_t PROGMEM fn_actions[] = { +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { +}; diff --git a/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/readme.md b/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/readme.md new file mode 100644 index 000000000..80475ab21 --- /dev/null +++ b/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/readme.md @@ -0,0 +1,28 @@ +# Roman's Layout + +There is only one layer based on [Norman layout](https://normanlayout.info/). + +Looking for multiple-layer layouts? + +- [Symbols, arrows, plover, HJKL arrows](../romanzolotarev-norman-plover-osx-hjkl/) +- [Same with IJKL arrows](../romanzolotarev-norman-plover-osx/) + +[![keyboard-layout](romanzolotarev-norman-osx.png)](http://www.keyboard-layout-editor.com/#/gists/9e89d54f1ea6eeeb7dab1b2d19d28195) + +## Functional Keys + +- Tap `F1` to mute microphone via [Shush](http://mizage.com/shush/). +- Tap `F2` to copy screenshot to the clipboard. +- Hold `SHIFT` and tap `F2` to save screenshot as a file. +- Tap `F3`, `F4`, `F5`, `F6` to resize a window via [Divvy](http://mizage.com/divvy/). + +## CTRL/ESC + +CTRL and ESC are frequently used in Vim. + +- Tap `CTRL/ESC` to send `ESC`. +- Hold `CTRL/ESC` to use as `CTRL`. + +## Activate N-rollover + +- Hold left `SHIFT` and right `SHIRT` and then tap `N`. diff --git a/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.png b/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.png new file mode 100644 index 000000000..4b9433be2 Binary files /dev/null and b/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.png differ diff --git a/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c new file mode 100644 index 000000000..7c9f67381 --- /dev/null +++ b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c @@ -0,0 +1,134 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 +#define SYMB 1 +#define PLVR 2 +#define ARRW 3 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = KEYMAP( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F14, + KC_TAB, KC_Q, KC_W, KC_D, KC_F, KC_K, TG(PLVR), + CTL_T(KC_ESC), KC_A, KC_S, KC_E, KC_T, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, + KC_F1, KC_F2, KC_F3, KC_LALT, KC_LGUI, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLD, KC_MUTE, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLU, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_BSPC, CTL_T(KC_ESC), KC_FN1, + // + /*-*/ KC_F15, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + /*-*/ KC_BSLS, KC_J, KC_U, KC_R, KC_L, KC_SCLN, KC_MINS, + /*-*/ /*-*/ KC_Y, KC_N, KC_I, KC_O, KC_H, KC_ENT, + /*-*/ KC_RBRC, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + /*-*/ /*-*/ /*-*/ KC_RGUI, KC_RALT, KC_F4, KC_F5, KC_F6, + KC_MPLY, KC_MNXT, + KC_MPRV, + KC_FN3, KC_QUOT, KC_SPC + ), + [SYMB] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, + KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + // + /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + /*-*/ /*-*/ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS, + /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ), + [PLVR] = KEYMAP( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, + 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_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_C, KC_V, KC_NO, + // + /*-*/ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + /*-*/ KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO, + /*-*/ /*-*/ 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_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_NO, KC_N, KC_M + ), + [ARRW] = 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_MS_L, KC_MS_U, KC_MS_D, KC_MS_R, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + // + /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ KC_LEFT, KC_DOWN, KC_UP, 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, KC_TRNS + ), +}; + +const uint16_t PROGMEM fn_actions[] = { + [SYMB] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Symbols Layer + [PLVR] = ACTION_LAYER_TAP_TOGGLE(PLVR), // FN2 - Momentary Plover Layer + [ARRW] = ACTION_LAYER_TAP_TOGGLE(ARRW), // FN3 - Momentary Arrows Layer +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } 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 PLVR: + ergodox_right_led_2_on(); + break; + case ARRW: + ergodox_right_led_3_on(); + break; + default: + break; + } +}; diff --git a/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md new file mode 100644 index 000000000..16cebd091 --- /dev/null +++ b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md @@ -0,0 +1,50 @@ +# Roman's Layout + +There are four layers: + +- **BASE** is [Norman layout](https://normanlayout.info/). +- **SYMB** for numbers and symbols. +- **PLVR** is optimized for [Plover](http://www.openstenoproject.org). +- **ARRW** for navigation (same fingers for arrows as HJKL on QWERTY). + +Looking for IJKL arrows? [Here we +go](../romanzolotarev-norman-plover-osx/). + +[![keyboard-layout](romanzolotarev-norman-plover-osx-hjkl.png)](http://www.keyboard-layout-editor.com/#/gists/56ffedceb0668dda47c993e7271563e0) + +## Switching + +- Tap `SYMB` to toggle **SYMB**. +- Tap `ARRW` to toggle **ARRW**. +- Hold `SYMB` (or `ARRW`) to activate **SYMB** (or **ARRW**) while holding. +- Tap `PLVR` to toggle **PLVR**. + +## LEDs + +- Red: SYMB is on. +- Green: PLVR is on. +- Blue: ARRW is on. + +## Functional Keys + +- Tap `F1` to mute microphone via [Shush](http://mizage.com/shush/). +- Tap `F2` to copy screenshot to the clipboard. +- Hold `SHIFT` and tap `F2` to save screenshot as a file. +- Tap `F3`, `F4`, `F5`, `F6` to resize a window via [Divvy](http://mizage.com/divvy/). +- Tap `F14`, `F15` to adjust display brightness. + +**IMPORTANT**: If you have another keyboard connected via Bluetooth, then +`F14` and `F15` will not work. Turn off that Bluetooth keyboard. Re-plug +you ErgoDox. Enjoy! + +## CTRL/ESC + +Both of those keys are frequently used in Vim. + +- Tap `CTRL/ESC` to send `ESC`. +- Hold `CTRL/ESC` to use as `CTRL`. + +## Activate N-rollover + +- While in **BASE** hold left `SHIFT` and right `SHIRT` and then tap `N`. +- Then you can activate **PLVR** and use ErgoDox EZ for steno. diff --git a/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.png b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.png new file mode 100644 index 000000000..cdc535f79 Binary files /dev/null and b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.png differ diff --git a/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx/keymap.c b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx/keymap.c new file mode 100644 index 000000000..9971b834c --- /dev/null +++ b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx/keymap.c @@ -0,0 +1,134 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 +#define SYMB 1 +#define PLVR 2 +#define ARRW 3 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = KEYMAP( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F14, + KC_TAB, KC_Q, KC_W, KC_D, KC_F, KC_K, TG(PLVR), + CTL_T(KC_ESC), KC_A, KC_S, KC_E, KC_T, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, + KC_F1, KC_F2, KC_F3, KC_LALT, KC_LGUI, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLD, KC_MUTE, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLU, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_BSPC, CTL_T(KC_ESC), KC_FN1, + // + /*-*/ KC_F15, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + /*-*/ KC_BSLS, KC_J, KC_U, KC_R, KC_L, KC_SCLN, KC_MINS, + /*-*/ /*-*/ KC_Y, KC_N, KC_I, KC_O, KC_H, KC_ENT, + /*-*/ KC_RBRC, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + /*-*/ /*-*/ /*-*/ KC_RGUI, KC_RALT, KC_F4, KC_F5, KC_F6, + KC_MPLY, KC_MNXT, + KC_MPRV, + KC_FN3, KC_QUOT, KC_SPC + ), + [SYMB] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, + KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + // + /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + /*-*/ /*-*/ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS, + /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ), + [PLVR] = KEYMAP( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, + 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_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_C, KC_V, KC_NO, + // + /*-*/ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + /*-*/ KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO, + /*-*/ /*-*/ 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_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_NO, KC_N, KC_M + ), + [ARRW] = 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_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_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_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_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, KC_TRNS + ), +}; + +const uint16_t PROGMEM fn_actions[] = { + [SYMB] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Symbols Layer + [PLVR] = ACTION_LAYER_TAP_TOGGLE(PLVR), // FN2 - Momentary Plover Layer + [ARRW] = ACTION_LAYER_TAP_TOGGLE(ARRW), // FN3 - Momentary Arrows Layer +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } 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 PLVR: + ergodox_right_led_2_on(); + break; + case ARRW: + ergodox_right_led_3_on(); + break; + default: + break; + } +}; diff --git a/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx/readme.md b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx/readme.md new file mode 100644 index 000000000..804c52a76 --- /dev/null +++ b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx/readme.md @@ -0,0 +1,50 @@ +# Roman's Layout + +There are four layers: + +- **BASE** is [Norman layout](https://normanlayout.info/). +- **SYMB** for numbers and symbols. +- **PLVR** is optimized for [Plover](http://www.openstenoproject.org). +- **ARRW** for navigation (same fingers for arrows as IJKL on QWERTY). + +Looking for HJKL arrows? [Here we +go](../romanzolotarev-norman-plover-osx-hjkl/). + +[![keyboard-layout](romanzolotarev-norman-plover-osx.png)](http://www.keyboard-layout-editor.com/#/gists/8ebcb701ecb763944417) + +## Switching + +- Tap `SYMB` to toggle **SYMB**. +- Tap `ARRW` to toggle **ARRW**. +- Hold `SYMB` (or `ARRW`) to activate **SYMB** (or **ARRW**) while holding. +- Tap `PLVR` to toggle **PLVR**. + +## LEDs + +- Red: SYMB is on. +- Green: PLVR is on. +- Blue: ARRW is on. + +## Functional Keys + +- Tap `F1` to mute microphone via [Shush](http://mizage.com/shush/). +- Tap `F2` to copy screenshot to the clipboard. +- Hold `SHIFT` and tap `F2` to save screenshot as a file. +- Tap `F3`, `F4`, `F5`, `F6` to resize a window via [Divvy](http://mizage.com/divvy/). +- Tap `F14`, `F15` to adjust display brightness. + +**IMPORTANT**: If you have another keyboard connected via Bluetooth, then +`F14` and `F15` will not work. Turn off that Bluetooth keyboard. Re-plug +you ErgoDox. Enjoy! + +## CTRL/ESC + +Both of those keys are frequently used in Vim. + +- Tap `CTRL/ESC` to send `ESC`. +- Hold `CTRL/ESC` to use as `CTRL`. + +## Activate N-rollover + +- While in **BASE** hold left `SHIFT` and right `SHIRT` and then tap `N`. +- Then you can activate **PLVR** and use ErgoDox EZ for steno. diff --git a/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx/romanzolotarev-norman-plover-osx.png b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx/romanzolotarev-norman-plover-osx.png new file mode 100644 index 000000000..10b0752be Binary files /dev/null and b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx/romanzolotarev-norman-plover-osx.png differ diff --git a/keyboards/ergodox/keymaps/romanzolotarev-norman-qwerty-osx/keymap.c b/keyboards/ergodox/keymaps/romanzolotarev-norman-qwerty-osx/keymap.c new file mode 100644 index 000000000..dedac694e --- /dev/null +++ b/keyboards/ergodox/keymaps/romanzolotarev-norman-qwerty-osx/keymap.c @@ -0,0 +1,74 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 +#define QWRT 1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = KEYMAP( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F5, + KC_TAB, KC_Q, KC_W, KC_D, KC_F, KC_K, KC_BSLS, + KC_LCTL, KC_A, KC_S, KC_E, KC_T, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, + KC_F1, KC_F2, KC_F3, KC_F4, KC_LGUI, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLD, KC_MUTE, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLU, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_BSPC, CTL_T(KC_ESC), KC_LALT, + // + /*-*/ KC_F6, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + /*-*/ TG(QWRT), KC_J, KC_U, KC_R, KC_L, KC_SCLN, KC_MINS, + /*-*/ /*-*/ KC_Y, KC_N, KC_I, KC_O, KC_H, KC_ENT, + /*-*/ KC_RBRC, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + /*-*/ /*-*/ /*-*/ KC_RGUI, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, + KC_MPLY, KC_MNXT, + KC_MPRV, + KC_RALT, KC_QUOT, KC_SPC + ), + [QWRT] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_E, KC_R, KC_T, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_D, KC_F, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + // + /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TRNS, + /*-*/ /*-*/ KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_TRNS, + /*-*/ KC_TRNS, KC_N, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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[] = { +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + 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 QWRT: + ergodox_right_led_1_on(); + break; + default: + break; + } +}; diff --git a/keyboards/ergodox/keymaps/romanzolotarev-norman-qwerty-osx/readme.md b/keyboards/ergodox/keymaps/romanzolotarev-norman-qwerty-osx/readme.md new file mode 100644 index 000000000..0e78c130b --- /dev/null +++ b/keyboards/ergodox/keymaps/romanzolotarev-norman-qwerty-osx/readme.md @@ -0,0 +1,34 @@ +# Roman's Layout + +There are two layers: + +- **BASE** is [Norman layout](https://normanlayout.info/). +- **QWRT** is QWERTY. + +[![keyboard-layout](romanzolotarev-norman-qwerty-osx.png)](http://www.keyboard-layout-editor.com/#/gists/3b236f450da474dc506a5a80390c3cc7) + +## Switching + +- Tap `QWRT` to toggle **QWRT**. + +## LEDs + +- Red: QWRT is on. + +## Functional Keys + +- Tap `F1` to mute microphone via [Shush](http://mizage.com/shush/). +- Tap `F2` to copy screenshot to the clipboard. +- Hold `SHIFT` and tap `F2` to save screenshot as a file. +- Tap `F3`, `F4`, `F5`, `F6` to resize a window via [Divvy](http://mizage.com/divvy/). + +## CTRL/ESC + +Both CTRL and ESC are frequently used in Vim. + +- Tap `CTRL/ESC` to send `ESC`. +- Hold `CTRL/ESC` to use as `CTRL`. + +## Activate N-rollover + +- Hold left `SHIFT` and right `SHIRT` and then tap `N`. diff --git a/keyboards/ergodox/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.png b/keyboards/ergodox/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.png new file mode 100644 index 000000000..34762ecb7 Binary files /dev/null and b/keyboards/ergodox/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.png differ diff --git a/keyboards/ergodox/keymaps/sneako/keymap.c b/keyboards/ergodox/keymaps/sneako/keymap.c new file mode 100644 index 000000000..0c6863102 --- /dev/null +++ b/keyboards/ergodox/keymaps/sneako/keymap.c @@ -0,0 +1,187 @@ +// Based on `default_osx` +// Replace left Bksp with Ctrl/Esc +// Remove the Ctrl from Z and / +#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 | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * |Ctrl/Esc| A | S | D | F | G |------| |------| H | J | K | L |; / L2| LGui | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | 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), + 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), + 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),GUI_T(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_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/keyboards/ergodox/keymaps/sneako/readme.md b/keyboards/ergodox/keymaps/sneako/readme.md new file mode 100644 index 000000000..8dd110ee6 --- /dev/null +++ b/keyboards/ergodox/keymaps/sneako/readme.md @@ -0,0 +1,6 @@ +# ergodox_keymap + +Based on the default Ergodox EZ firmware + +Replaced the left side Bksp with a Crtl/Esc, this really helps in vim. +Removed the Ctrls from the Z and / keys. diff --git a/keyboards/ergodox/keymaps/software_neo2/keymap.c b/keyboards/ergodox/keymaps/software_neo2/keymap.c new file mode 100644 index 000000000..2eaba0d7d --- /dev/null +++ b/keyboards/ergodox/keymaps/software_neo2/keymap.c @@ -0,0 +1,139 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "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/keyboards/ergodox/keymaps/supercoder/config_user.h b/keyboards/ergodox/keymaps/supercoder/config_user.h new file mode 100644 index 000000000..8da138372 --- /dev/null +++ b/keyboards/ergodox/keymaps/supercoder/config_user.h @@ -0,0 +1,9 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H 1 + +#include "config.h" + +#undef LOCKING_SUPPORT_ENABLE +#undef LOCKING_RESYNC_ENABLE + +#endif diff --git a/keyboards/ergodox/keymaps/supercoder/images/layout.png b/keyboards/ergodox/keymaps/supercoder/images/layout.png new file mode 100644 index 000000000..c72958c6e Binary files /dev/null and b/keyboards/ergodox/keymaps/supercoder/images/layout.png differ diff --git a/keyboards/ergodox/keymaps/supercoder/images/supercoder_2000.jpg b/keyboards/ergodox/keymaps/supercoder/images/supercoder_2000.jpg new file mode 100644 index 000000000..d690eaf02 Binary files /dev/null and b/keyboards/ergodox/keymaps/supercoder/images/supercoder_2000.jpg differ diff --git a/keyboards/ergodox/keymaps/supercoder/keymap.c b/keyboards/ergodox/keymaps/supercoder/keymap.c new file mode 100644 index 000000000..ca21d30fd --- /dev/null +++ b/keyboards/ergodox/keymaps/supercoder/keymap.c @@ -0,0 +1,75 @@ +/* + * SuperCoder 2000 layout + */ + +#include "ergodox_ez.h" + +/* Layers */ + +#define SC2K 0 // default layer + +/* The Keymap */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Keymap 0: Base Layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 1 | 1 | 1 | 1 | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 1 | 1 | 1 | 1 | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | 0 | 0 | 0 | 0 | 0 | 0 |------| |------| 1 | 1 | 1 | 1 | 1 | 1 | + * |-----------+------+------+------+------+------| 0 | | 1 |------+------+------+------+------+-----------| + * | 0 | 0 | 0 | 0 | 0 | 0 | | | | 1 | 1 | 1 | 1 | 1 | 1 | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 1 | 1 | + * `-----------------------------------' `-----------------------------------' + * ,-------------. ,-------------. + * | DONE | DONE | | DONE | DONE | + * ,------|------|------| |------+------+------. + * | | | DONE | | DONE | | | + * | DONE | DONE |------| |------| DONE | DONE | + * | | | DONE | | DONE | | | + * `--------------------' `--------------------' + */ +[SC2K] = KEYMAP( + // left hand + KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 +,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 +,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 +,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 +,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 + + ,KC_ENT ,KC_ENT + ,KC_ENT + ,KC_ENT ,KC_ENT ,KC_ENT + + // right hand + ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 + ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 + ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 + ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 + ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 + + ,KC_ENT ,KC_ENT + ,KC_ENT + ,KC_ENT ,KC_ENT ,KC_ENT + ), +}; + +const uint16_t PROGMEM fn_actions[] = { +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + 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) { +} diff --git a/keyboards/ergodox/keymaps/supercoder/makefile.mk b/keyboards/ergodox/keymaps/supercoder/makefile.mk new file mode 100644 index 000000000..41a195d9c --- /dev/null +++ b/keyboards/ergodox/keymaps/supercoder/makefile.mk @@ -0,0 +1,6 @@ +BOOTMAGIC_ENABLE=no +COMMAND_ENABLE=no +SLEEP_LED_ENABLE=no +UNICODE_ENABLE=no +MOUSEKEY_ENABLE=no +EXTRAKEY_ENABLE=no diff --git a/keyboards/ergodox/keymaps/supercoder/readme.md b/keyboards/ergodox/keymaps/supercoder/readme.md new file mode 100644 index 000000000..97bf7f583 --- /dev/null +++ b/keyboards/ergodox/keymaps/supercoder/readme.md @@ -0,0 +1,29 @@ +SuperCoder 2000 layout for the ErgoDox +================================================== + +![SuperCoder 2000](images/supercoder_2000.jpg) + +Ever found yourself in need of entering binary codes rapidly? Ever wanted to use +all ten fingers to do so? Ever felt your SuperCoder 2000 too limiting, by only +having three buttons? We heard you! With this layout for the ErgoDox EZ, you +will be able to tap in binary at an unparalleled speed and accuracy! Efficiency +never seen before! + +Behold the Ultimate SuperCoder 2000 layout! + +![SuperCoder layout](images/layout.png) + +### To use it... + +To use this piece of top quality engineering, you can either +[download the hex file][hex] we have prepared for you, or you can compile it on +your own: + + [hex]: https://raw.githubusercontent.com/algernon/ergodox-supercoder/master/supercoder.hex + +``` +$ git clone https://github.com/jackhumbert/qmk_firmware.git +$ cd qmk_firmware/keyboards/ergodox_ez +$ git clone https://github.com/algernon/ergodox-supercoder.git keymaps/supercoder +$ make KEYMAP=supercoder +``` diff --git a/keyboards/ergodox/keymaps/techtomas/keymap.c b/keyboards/ergodox/keymaps/techtomas/keymap.c new file mode 100644 index 000000000..1ff6618b9 --- /dev/null +++ b/keyboards/ergodox/keymaps/techtomas/keymap.c @@ -0,0 +1,231 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define APP 2 // app layer +#define CNTL 3 // control layer + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | L2/` | 1 | 2 | 3 | 4 | 5 |CmdSpc| | - | 6 | 7 | 8 | 9 | 0 | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | MEH/Tab| Q | W | E | R | T | [ | | ] | Y | U | I | O | P | MEH/\ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * |Hyp/Esc | A | S | D | F | G |------| |------| H | J | K | L | L2/; | Hyp/' | + * |--------+------+------+------+------+------| Tab | | STab |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | L2// | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |L1/Lft|L3/Rht| LCtl | LAlt | LGui | | Rgui | Up | Dn | L3 | L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | LCtl | LGui | |AltGui|ShfGui| + * ,-------|------|------| |------+--------+------. + * | | |L1/Hom| |L2/PUp| | | + * | Backsp|Delete|------| |------| Enter | Space | + * | | |L3/End| |L1/PDn| | | + * `--------------------' `-----------------------' + */ +// 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 + LT(APP,KC_GRV), KC_1, KC_2, KC_3, KC_4, KC_5, LGUI(KC_SPC), + MEH_T(KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, + ALL_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, KC_TAB, + LT(SYMB,KC_LEFT), LT(CNTL,KC_RIGHT), KC_LCTL, KC_LALT, KC_LGUI, + KC_LCTL, KC_LGUI, + LT(SYMB,KC_HOME), + KC_BSPC, KC_DELETE, LT(CNTL,KC_END), + // right hand + KC_MINS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, MEH_T(KC_BSLS), + KC_H, KC_J, KC_K, KC_L, LT(APP,KC_SCLN), ALL_T(KC_QUOT), + S(KC_TAB), KC_N, KC_M, KC_COMM, KC_DOT, LT(APP,KC_SLSH), KC_RSFT, + KC_RGUI, KC_UP, KC_DOWN, KC_FN3, KC_FN1, + LALT(KC_LGUI), S(KC_LGUI), + LT(APP,KC_PGUP), + LT(SYMB,KC_PGDN), KC_ENT, KC_SPC + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | Tab | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | < | | > | : | 7 | 8 | 9 | / | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| ; | 4 | 5 | 6 | * | | + * |--------+------+------+------+------+------| F14 | | F15 |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | - | Entr | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | 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,S(KC_COMM), + 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_F14, + 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_TAB, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + S(KC_DOT), KC_COLN, KC_7, KC_8, KC_9, KC_BSLS, KC_F12, + KC_SCLN, KC_4, KC_5, KC_6, KC_ASTR, KC_TRNS, + KC_F15, KC_AMPR, KC_1, KC_2, KC_3, KC_MINS, KC_ENT, + KC_0, KC_DOT, KC_EQL, KC_PLUS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: App Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | CmdQ | CmdW | | | | Stab | | Play | Prev | Next | | |PrtSc | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------| VolDn|VolUp | | | | | + * |--------+------+------+------+------+------| | | Mute |------+------+------+------+------+--------| + * | | CmdZ | CmdX | CmdC | CmdY | CtrlC| | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// Control +[APP] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, LGUI(KC_Q), LGUI(KC_W), KC_TRNS, KC_TRNS, KC_TRNS, S(KC_TAB), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), LCTL(KC_C), 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_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, + KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 3: Control Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | Pwr | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| Lclk |------| |------| Lft | Down | Up | Right| | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | Rclk | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Shift| | | Home | End | + * ,------|------|------| |------+------+------. + * | | | LAtl | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// Control +[CNTL] = KEYMAP( + KC_PWR, 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_BTN1, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN2, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LSFT, KC_TRNS, + KC_LALT, + 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_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_HOME, KC_END, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB), + [2] = ACTION_LAYER_TAP_TOGGLE(APP), + [3] = ACTION_LAYER_TAP_TOGGLE(CNTL) // 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; + case 3: + ergodox_right_led_3_on(); + break; + default: + // none + break; + } + +}; diff --git a/keyboards/ergodox/keymaps/techtomas/readme.md b/keyboards/ergodox/keymaps/techtomas/readme.md new file mode 100644 index 000000000..36e0591a8 --- /dev/null +++ b/keyboards/ergodox/keymaps/techtomas/readme.md @@ -0,0 +1,57 @@ +# Techtomas Configuration + +## Base Layer + +The base layer is a merge of what I liked with the default layout and the ordinary layout. The thumb cluster is more like the Kinesis advantage and the top row of the cluster is convient for use on the mac. + +* The Caps Lock postion handles [Hyper/Esc](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) +* The Tab key toggles MEH. +* The top vertical mods on the left and right are [ and ]. +* The bottom vertical mods on the left and right are tab and shift+tab +* The HYPER and MEH key are made in the same location on the right side of the board as well. Using Keyboard Maestro for OS X makes one-handed shortcuts very easy. +* Layer switching is focused around the thumb clusters plus some additional locations for convience. + +## Symbol Layer +The symbol layer can be tap/toggled with the bottom right key and also toggled on the thumb clusters. + +The bottom two vertical mods are set to F14 and F15 which is the default for changing screen brightness on the mac + +## App Layer +The app layer is used to control media playback and also some application shortcuts (OS X Focused). +It can be toggled on the left board in the top left corner (tilde/grave) or using your pinky on the right side of the board using either ; or /. +There is one additional toggle on the right thumb cluster for quick access to play and mute key combos. + +### Current App shortcuts defined +* Q = CMD+Q +* W = CMD+W +* Z = CMD+Z +* X = CMD+X +* C = CMD+C +* V = CMD+V +* B = CTRL+C +* P = Print Screen + +## Control Layer +The control layer is meant to help easily navigate and select text. It can also be stacked ontop of the Symbol layer when needed. + +The right arrow key and End key toggle the control layer on the left board. There is also a tap toggle for the layer in the same position on the right side of the board. + +On the left board you have mouse control with left & right click in the location of the G and B keys. +On the right board you have vim-style arrow keys using hjkl + +The left thumb cluster moves shift and alt within easy reach while holding the toggle (end). So far I've found this convient to navigate and skip around text when using the hjkl arrow keys. I found that it was easy to get the alt key stuck on depending on what key you released first so I added the PREVENT_STUCK_MODIFIERS to the config.h to help with that. + +## Changelog + +* May 4th, 2016 (v1.2): + * Moved layer toggles around to match my habbits of typing + * Enabled Prevent Stuck Modifers in my config.h (L3 + Alt on cluster would get stuck) + * Changed media layer to be more like an app layer with some quick shortcuts (mac centric) + * Moved around the base layer arrow keys so mod keys were more accesible + +* Apr 29, 2016 (V1.1): + * Added F14 and F15 to symbol layer + * Added control layer toggle to A key. + +* Apr 28, 2016 (V1.0): + * Modified config based on the default layout plus inspiration from the ordinary layout diff --git a/keyboards/ergodox/keymaps/teckinesis/keymap.c b/keyboards/ergodox/keymaps/teckinesis/keymap.c new file mode 100644 index 000000000..ec6ceb96b --- /dev/null +++ b/keyboards/ergodox/keymaps/teckinesis/keymap.c @@ -0,0 +1,455 @@ +#include "ergodox_ez.h" +#include "led.h" +#include "debug.h" +#include "action_layer.h" +#include "action_util.h" +#include "mousekey.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols layer +#define MDIA 2 // media layer +#define SPEC 3 // special layer + +#define LCaps 10 // left caps-shift key +#define LSymb 11 // left symbol-shift key +#define LMdia 12 // left media-shift key +#define LSpec 13 // left special-shift key +#define RCaps 14 // right caps-shift key +#define RSymb 15 // right symbol-shift key +#define RMdia 16 // right media-shift key +#define RSpec 17 // right special-shift key + +#define MUL 20 // mouse up left +#define MUR 21 // mouse up right +#define MDL 22 // mouse down left +#define MDR 23 // mouse down right + +/* + * teckinesis layout for ErgoDox (EZ) + * + * Modifications from The Ordinary Layout v4 by Will Wolff-Myren willwm@gmail.com + * Modifications from default by Nicholas Keene ergodoxez@nicholaskeene.com + * + * No rights reserved. This software is in the public domain. + * Credit me if you are friendly but if you're a jerk don't bother. + * + * Details: readme.md + * https://github.com/willwm/qmk_firmware/tree/master/keyboard/ergodox_ez/keymaps/teckinesis + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/******* Base Layer ******************************************************************************************************** + * + * ,------------------------------------------------------. ,------------------------------------------------------. + * | Special =+ | 1 | 2 | 3 | 4 | 5 | ESC | | ` | 6 | 7 | 8 | 9 | 0 | -_ Special | + * |------------+------+------+------+------+-------------| |------+------+------+------+------+------+------------| + * | Media Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \| Media | + * |------------+------+------+------+------+------| | | |------+------+------+------+------+------------| + * | Symbol | A | S | D | F | G |------| |------| H | J | K | L | ; | '" Symbol | + * |------------+------+------+------+------+------|Shift | | Tab |------+------+------+------+------+------------| + * | Capitals | Z | X | C | V | B | -Tab | | | N | M | , | . | / | Capitals | + * `------------+------+------+------+------+-------------' `-------------+------+------+------+------+------------' + * | LCtrl |Meh/\ |Hypr//| LAlt | LGui | | RGui | RAlt |Hypr/[|Meh/] | RCtrl | + * `-----------------------------------' `-----------------------------------' + * ,-------------. ,-------------. + * | Home | End | | Left | Right| + * ,------|------|------| |------+------+------. + * | | | PgUp | | Up | | | + * |Backsp| Del |------| |------| Enter| Space| + * | | | PgDn | | Down | | | + * `--------------------' `--------------------' + */ +[BASE] = KEYMAP( +// left hand + F(LSpec),KC_1,KC_2,KC_3 ,KC_4 ,KC_5 ,KC_ESC +,F(LMdia) ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC +,M(LSymb) ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G +,M(LCaps) ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,LSFT(KC_TAB) +,KC_LCTL,MEH_T(KC_BSLS),ALL_T(KC_SLSH),KC_LALT,KC_LGUI + ,KC_HOME,KC_END + ,KC_PGUP + ,KC_BSPC,KC_DEL ,KC_PGDN + // right hand + ,KC_GRV ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,F(RSpec) + ,KC_RBRC ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,F(RMdia) + ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,F(RSymb) + ,KC_TAB ,KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH ,M(RCaps) + ,KC_RGUI,KC_RALT,ALL_T(KC_LBRC),MEH_T(KC_RBRC),KC_RCTL + ,KC_LEFT ,KC_RGHT + ,KC_UP + ,KC_DOWN ,KC_ENT ,KC_SPC + ), + +/******* Symbols Layer ***************************************************************************************************** + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | Esc | | - | F6 | F7 | F8 | F9 | F10 | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | | ! | @ | { | } | & | < | | > | | | 7 | 8 | 9 | / | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | # | $ | ( | ) | ` |------| |------| / | 4 | 5 | 6 | * | | + * |-----------+------+------+------+------+------| Tab | | Shift|------+------+------+------+------+-----------| + * | | % | ^ | [ | ] | ~ | | | -Tab| \ | 1 | 2 | 3 | - | | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | LCtrl | Meh |Hyper | LAlt | LGui | |RGui/0|RAlt/.|Hypr/=|Meh/+ |RCtrl/Ent| + * `-----------------------------------' `-------------------------------------' + * ,-------------. ,-------------. + * | Left | Right| | Home | End | + * ,------|------|------| |------+------+------. + * | | | Up | | PgUp | | | + * |Space |Enter |------| |------|BackSp| Del | + * | | | Down | | PgDn | | | + * `--------------------' `--------------------' + */ +[SYMB] = KEYMAP( +// left hand + KC_TRNS ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_ESC +,KC_TRNS ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_AMPR ,LSFT(KC_COMM) +,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_TAB +,KC_LCTL ,KC_MEH ,KC_HYPR ,KC_LALT ,KC_LGUI + ,KC_LEFT ,KC_RGHT + ,KC_UP + ,KC_SPC ,KC_ENT ,KC_DOWN + // right hand + ,KC_MINS ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_TRNS + ,LSFT(KC_DOT),KC_PIPE ,KC_7 ,KC_8 ,KC_9 ,KC_SLSH ,KC_TRNS + ,KC_SLSH ,KC_4 ,KC_5 ,KC_6 ,KC_ASTR ,KC_TRNS + ,LSFT(KC_TAB),KC_BSLS ,KC_1 ,KC_2 ,KC_3 ,KC_MINS ,KC_TRNS + ,GUI_T(KC_0),ALT_T(KC_DOT),ALL_T(KC_EQL),MEH_T(KC_PLUS),CTL_T(KC_ENT) + ,KC_HOME ,KC_END + ,KC_PGUP + ,KC_PGDN ,KC_BSPC ,KC_DEL +), + +/******* Media Layer ******************************************************************************************************* + * + * ,---------------------------------------------------------------. ,---------------------------------------------------------------. + * | | F11 | F12 | F13 | F14 | F15 | Esc | | | F16 | F17 | F18 | F19 | F20 | | + * |------+---------+---------+---------+---------+----------------| |------+---------+---------+---------+---------+---------+------| + * | | |MouseUpLf|Mouse Up |MouseUpRg|Volume Up|Scroll| |Scroll|PrintScrn| Home | Up | PgUp | | | + * |------+---------+---------+---------+---------+---------| Up | | Up |---------+---------+---------+---------+---------+------| + * | | |MouseLeft|MouseDown|MouseRght|Volume Dn|------| |------| Num Lock| Left | Down | Right | | | + * |------+---------+---------+---------+---------+---------|Scroll| |Scroll|---------+---------+---------+---------+---------+------| + * | | |MouseDnLf|MouseDown|MouseDnRg| Mute | Down | | Down | | End | Down | PgDn | | | + * `------+---------+---------+---------+---------+----------------' `----------------+---------+---------+---------+---------+------' + * |LCtrl| Meh | MClick | LClick | R Click| |Cmd/Insrt|Optn/Del | Hyper | Meh |RCtrl| + * `---------------------------------------------' `---------------------------------------------' + * ,-------------. ,-------------. + * | Stop |Refrsh| | Prev | Next | + * ,------|------|------| |------+------+------. + * |Brwser|Brwser|Search| |VolUp | | | + * |Back | Fwd |------| |------| Stop | Play-| + * | | | Home | |VolDn | | Pause| + * `--------------------' `--------------------' + */ +[MDIA] = KEYMAP( +// left hand + KC_TRNS ,KC_F11 ,KC_F12 ,KC_F13 ,KC_F14 ,KC_F15 ,KC_ESC +,KC_TRNS ,KC_NO ,M(MUL) ,KC_MS_U ,M(MUR) ,KC_VOLU ,KC_WH_U +,KC_TRNS ,KC_NO ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_VOLD +,KC_TRNS ,KC_NO ,M(MDL) ,KC_MS_D ,M(MDR) ,KC_MUTE ,KC_WH_D +,KC_LCTL ,KC_MEH ,KC_BTN3 ,KC_BTN1 ,KC_BTN2 + ,KC_WSTP ,KC_WREF + ,KC_WSCH + ,KC_WBAK ,KC_NO ,KC_WHOM + // right hand + ,KC_NO ,KC_F16 ,KC_F17 ,KC_F18 ,KC_F19 ,KC_F20 ,KC_TRNS + ,KC_WH_U ,KC_PSCR ,KC_HOME ,KC_UP ,KC_PGUP ,KC_NO ,KC_TRNS + ,KC_NLCK ,KC_LEFT ,KC_DOWN ,KC_RIGHT,KC_NO ,KC_TRNS + ,KC_WH_D ,KC_NO ,KC_END ,KC_DOWN ,KC_PGDN ,KC_NO ,KC_TRNS + ,GUI_T(KC_INS),ALT_T(KC_DEL),KC_HYPR ,KC_MEH ,KC_RCTL + ,KC_MPRV ,KC_MNXT + ,KC_VOLU + ,KC_VOLD ,KC_MSTP ,KC_MPLY +), + +/******* Special Layer ***************************************************************************************************** + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | | Esc | | | | | | | | | | | | Bspc | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | | | | | | | | | | | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | |------| |------| | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | | | | | | | | | | RShift | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[SPEC] = KEYMAP( +// left hand + KC_TRNS ,KC_ESC ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,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_BSPC ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_RSFT + ,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[] = { + // the faux shift keys are implemented as macro taps + [LCaps] = ACTION_MACRO_TAP(LCaps) + ,[LSymb] = ACTION_MACRO_TAP(LSymb) + ,[LMdia] = ACTION_MACRO_TAP(LMdia) + ,[LSpec] = ACTION_MACRO_TAP(LSpec) + ,[RCaps] = ACTION_MACRO_TAP(RCaps) + ,[RSymb] = ACTION_MACRO_TAP(RSymb) + ,[RMdia] = ACTION_MACRO_TAP(RMdia) + ,[RSpec] = ACTION_MACRO_TAP(RSpec) +}; + +uint16_t caps_shift = 0; +uint16_t symb_shift = 0; +uint16_t mdia_shift = 0; + +bool symb_lock = false; +bool mdia_lock = false; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + // There are two shift keys for each layer so we increment a layer_shift var when one + // is pressed and decrement when one is released. If both are pressed at the same time + // then the layer is locked (or unlocked). The shift counts are bound between 0 and 2 + // only because sometimes rapid pressing led to irregular events; this way the states + // are self healing during use. + + case LCaps: // both caps-shift keys trigger Left Shift + case RCaps: // so they don't interfere with the magic combo + if (record->event.pressed && !record->tap.count) { + if(++caps_shift > 2) caps_shift = 2; + if(caps_shift == 2) { + register_code(KC_CAPS); + unregister_code(KC_CAPS); + } else if(caps_shift == 1) { + register_code(KC_LSFT); + } + } else { + if(--caps_shift < 0) caps_shift = 0; + if(caps_shift == 0) unregister_code(KC_LSFT); + } + break; + + case LSymb: + if (record->event.pressed) { + if(++symb_shift > 2) symb_shift = 2; + if(symb_shift == 2) { + symb_lock = !symb_lock; + } else if(symb_shift == 1) { + layer_on(SYMB); + } + } else { + if(--symb_shift < 0) symb_shift = 0; + if((symb_shift == 0) && (!symb_lock)) layer_off(SYMB); + } + break; + + case LMdia: + if (record->event.pressed) { + if (record->tap.count && (!mdia_shift) && (!mdia_lock)) { + register_code(KC_TAB); + } else { + if(++mdia_shift > 2) mdia_shift = 2; + if(mdia_shift == 2) { + mdia_lock = !mdia_lock; + } else if(mdia_shift == 1) { + layer_on(MDIA); + } + } + } else { + if(record->tap.count && (!mdia_shift) && (!mdia_lock)) { + unregister_code(KC_TAB); + } else { + if(--mdia_shift < 0) mdia_shift = 0; + if((!mdia_shift) && (!mdia_lock)) layer_off(MDIA); + } + } + break; + + case LSpec: + if (record->event.pressed) { + if (record->tap.count && !record->tap.interrupted) { + register_code(KC_EQL); + } else { + layer_on(SPEC); + } + } else { + if(record->tap.count && !record->tap.interrupted) { + unregister_code(KC_EQL); + } else { + layer_off(SPEC); + } + } + break; + + case RSymb: + if (record->event.pressed) { + if (record->tap.count && (!symb_shift) && (!symb_lock)) { + register_code(KC_QUOT); + } else { + if(++symb_shift > 2) symb_shift = 2; + if(symb_shift == 2) { + symb_lock = !symb_lock; + } else if(symb_shift == 1) { + layer_on(SYMB); + } + } + } else { + if(record->tap.count && symb_shift == 0) { + unregister_code(KC_QUOT); + } else { + if(--symb_shift < 0) symb_shift = 0; + if((!symb_shift) && (!symb_lock)) layer_off(SYMB); + } + } + break; + + case RMdia: + if (record->event.pressed) { + if (record->tap.count && (!mdia_shift) && (!mdia_lock)) { + register_code(KC_BSLS); + } else { + if(++mdia_shift > 2) mdia_shift = 2; + if(mdia_shift == 2) { + mdia_lock = !mdia_lock; + } else if(mdia_shift == 1) { + layer_on(MDIA); + } + } + } else { + if(record->tap.count && (!mdia_shift) && (!mdia_lock)) { + unregister_code(KC_BSLS); + } else { + if(--mdia_shift < 0) mdia_shift = 0; + if((!mdia_shift) && (!mdia_lock)) layer_off(MDIA); + } + } + break; + + case RSpec: + if (record->event.pressed) { + if (record->tap.count && !record->tap.interrupted) { + register_code(KC_MINS); + } else { + layer_on(SPEC); + } + } else { + if(record->tap.count && !record->tap.interrupted) { + unregister_code(KC_MINS); + } else { + layer_off(SPEC); + } + } + break; + + // mouse diagonals + + case MUL: // mouse up left + if (record->event.pressed) { + mousekey_on(KC_MS_UP); + mousekey_on(KC_MS_LEFT); + mousekey_send(); + } else { + mousekey_off(KC_MS_UP); + mousekey_off(KC_MS_LEFT); + mousekey_send(); + } + break; + + case MUR: // mouse up right + if (record->event.pressed) { + mousekey_on(KC_MS_UP); + mousekey_on(KC_MS_RIGHT); + mousekey_send(); + } else { + mousekey_off(KC_MS_UP); + mousekey_off(KC_MS_RIGHT); + mousekey_send(); + } + break; + + case MDL: // mouse down left + if (record->event.pressed) { + mousekey_on(KC_MS_DOWN); + mousekey_on(KC_MS_LEFT); + mousekey_send(); + } else { + mousekey_off(KC_MS_DOWN); + mousekey_off(KC_MS_LEFT); + mousekey_send(); + } + break; + + case MDR: // mouse down right + if (record->event.pressed) { + mousekey_on(KC_MS_DOWN); + mousekey_on(KC_MS_RIGHT); + mousekey_send(); + } else { + mousekey_off(KC_MS_DOWN); + mousekey_off(KC_MS_RIGHT); + mousekey_send(); + } + break; + + default: + // none + 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) { + // shift or caps lock turns on red light + if(caps_shift || (keyboard_report->mods & MOD_BIT(KC_RSFT)) || (host_keyboard_leds() & (1<\n\n\n\nShift", + { + "c": "#cccccc" + }, + "Q", + { + "x": 14.5 + }, + "P", + { + "c": "#2277ff", + "f": 3, + "w": 1.5 + }, + "|\n\\\nMedia\n\n\n\n\nShift" + ], + [ + { + "y": -0.375, + "x": 3.5, + "c": "#cccccc" + }, + "D", + { + "x": 10.5 + }, + "K" + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "S", + { + "x": 1 + }, + "F", + { + "x": 8.5 + }, + "J", + { + "x": 1 + }, + "L" + ], + [ + { + "y": -0.875, + "x": 5.5 + }, + "G", + { + "x": 6.5 + }, + "H" + ], + [ + { + "y": -0.875, + "c": "#2277ff", + "w": 1.5 + }, + "Symbols\n\n\n\n\n\nShift", + { + "c": "#cccccc" + }, + "A", + { + "x": 14.5 + }, + ":\n;", + { + "c": "#2277ff", + "f": 3, + "w": 1.5 + }, + "\"\n'\nSymbols\n\n\n\n\nShift" + ], + [ + { + "y": -0.625, + "x": 6.5, + "c": "#54d6de", + "fa": [ + 0, + 0, + 4, + 1 + ], + "h": 1.5 + }, + "< Tab\n\n\nShift Tab", + { + "x": 4.5, + "h": 1.5 + }, + "Tab >\n\n\nTab" + ], + [ + { + "y": -0.75, + "x": 3.5, + "c": "#cccccc" + }, + "C", + { + "x": 10.5 + }, + "<\n," + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "X", + { + "x": 1 + }, + "V", + { + "x": 8.5 + }, + "M", + { + "x": 1 + }, + ">\n." + ], + [ + { + "y": -0.875, + "x": 5.5 + }, + "B", + { + "x": 6.5 + }, + "N" + ], + [ + { + "y": -0.875, + "c": "#2277ff", + "w": 1.5 + }, + "Capitals\n\n\n\n\n\nShift", + { + "c": "#cccccc" + }, + "Z", + { + "x": 14.5 + }, + "?\n/", + { + "c": "#2277ff", + "f": 3, + "w": 1.5 + }, + "\n\nCapitals\n\n\n\n\nShift" + ], + [ + { + "y": -0.375, + "x": 3.5, + "c": "#77aaff", + "fa": [ + 5, + 0, + 4, + 1 + ] + }, + "\n\n\nLAlt", + { + "x": 10.5 + }, + "\n\n\nRAlt" + ], + [ + { + "y": -0.875, + "x": 2.5, + "fa": [ + 5, + 1 + ] + }, + "\nHyper\n?\n/", + { + "x": 1, + "fa": [ + 5, + 1, + 0, + 1 + ] + }, + "\n\n\nSuper", + { + "x": 8.5 + }, + "\n\n\nSuper", + { + "x": 1, + "fa": [ + 0, + 0, + 0, + 1 + ] + }, + "{\n[\n\nHyper" + ], + [ + { + "y": -0.75, + "x": 0.5 + }, + "Ctrl\n\n\nLCtrl", + { + "f2": 1 + }, + "\nMeh\n|\n\\", + { + "x": 14.5, + "fa": [ + 0, + 0, + 1, + 1 + ] + }, + "}\n]\n\nMeh", + "Ctrl\n\n\nRCtrl" + ], + [ + { + "r": 30, + "rx": 6.5, + "ry": 4.25, + "y": -1, + "x": 1, + "c": "#54d6de" + }, + "Home", + "End" + ], + [ + { + "h": 2 + }, + "< Del\n\n\nBackspace", + { + "h": 2 + }, + "Del >\n\n\nDelete", + "Page\n\n\n\n\n\nUp" + ], + [ + { + "x": 2 + }, + "Page\n\n\n\n\n\nDown" + ], + [ + { + "r": -30, + "rx": 13, + "y": -1, + "x": -3 + }, + "Left", + "Right" + ], + [ + { + "x": -3 + }, + "Up", + { + "h": 2 + }, + "Enter", + { + "h": 2 + }, + "Space" + ], + [ + { + "x": -3 + }, + "Down" + ] +] \ No newline at end of file diff --git a/keyboards/ergodox/keymaps/teckinesis/teckinesis-base.png b/keyboards/ergodox/keymaps/teckinesis/teckinesis-base.png new file mode 100644 index 000000000..7c4584e9f Binary files /dev/null and b/keyboards/ergodox/keymaps/teckinesis/teckinesis-base.png differ diff --git a/keyboards/ergodox/keymaps/teckinesis/teckinesis-media.json b/keyboards/ergodox/keymaps/teckinesis/teckinesis-media.json new file mode 100644 index 000000000..65fe394e8 --- /dev/null +++ b/keyboards/ergodox/keymaps/teckinesis/teckinesis-media.json @@ -0,0 +1,436 @@ +[ + { + "name": "teckinesis (MediaLayer)", + "author": "Will Wolff-Myren", + "switchMount": "cherry", + "switchBrand": "gateron", + "switchType": "KS-3-Tea" + }, + [ + { + "x": 3.5, + "c": "#99de2a" + }, + "F13", + { + "x": 10.5 + }, + "F18" + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "F12", + { + "x": 1 + }, + "F14", + { + "x": 8.5 + }, + "F17", + { + "x": 1 + }, + "F19" + ], + [ + { + "y": -0.875, + "x": 5.5 + }, + "F15", + { + "c": "#ff4444" + }, + "Esc", + { + "x": 4.5 + }, + "Esc", + { + "c": "#99de2a" + }, + "F16" + ], + [ + { + "y": -0.875, + "x": 1.5 + }, + "F11", + { + "x": 14.5 + }, + "F20" + ], + [ + { + "y": -0.995, + "c": "#000000", + "t": "#ff0000", + "w": 1.5 + }, + "Media\n\n\n\n\n\nShift", + { + "x": 16.5, + "w": 1.5 + }, + "\n\nMedia\n\n\n\n\nShift" + ], + [ + { + "y": -0.3799999999999999, + "x": 3.5, + "c": "#ff8500", + "t": "#000000" + }, + "Mouse\n\n\n\n\n\nUp", + { + "x": 10.5 + }, + "Cursor\n\n\n\n\n\nUp" + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "Mouse\n\n\n\n\n\nUpLeft", + { + "x": 1 + }, + "Mouse\n\n\n\n\n\nUpRgt", + { + "x": 8.5, + "c": "#ffb063" + }, + "Home", + { + "x": 1 + }, + "Page\n\n\n\n\n\nUp" + ], + [ + { + "y": -0.875, + "x": 5.5, + "c": "#e6e067" + }, + "Vol\n\n\n\n\n\nUp", + { + "c": "#ffb063", + "h": 1.5 + }, + "Scroll\n\n\n\n\n\nUp", + { + "x": 4.5, + "h": 1.5 + }, + "Scroll\n\n\n\n\n\nUp", + { + "c": "#e6e067" + }, + "Print\n\n\n\n\n\nScreen" + ], + [ + { + "y": -0.875, + "x": 1.5, + "c": "#737373", + "a": 7 + }, + "", + { + "x": 14.5 + }, + "" + ], + [ + { + "y": -0.9950000000000001, + "c": "#2277ff", + "a": 4, + "w": 1.5 + }, + "Symbols\n\n\n\n\n\nShift", + { + "x": 16.5, + "w": 1.5 + }, + "\n\nSymbols\n\n\n\n\nShift" + ], + [ + { + "y": -0.3799999999999999, + "x": 3.5, + "c": "#ff8500" + }, + "Mouse\n\n\n\n\n\nDown", + { + "x": 10.5 + }, + "Cursor\n\n\n\n\n\nDown" + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "Mouse\n\n\n\n\n\nLeft", + { + "x": 1 + }, + "Mouse\n\n\n\n\n\nRight", + { + "x": 8.5 + }, + "Cursor\n\n\n\n\n\nLeft", + { + "x": 1 + }, + "Cursor\n\n\n\n\n\nRight" + ], + [ + { + "y": -0.875, + "x": 5.5, + "c": "#e6e067" + }, + "Vol\n\n\n\n\n\nDown", + { + "x": 6.5 + }, + "Num\n\n\n\n\n\nLock" + ], + [ + { + "y": -0.875, + "x": 1.5, + "c": "#737373", + "a": 7 + }, + "", + { + "x": 14.5 + }, + "" + ], + [ + { + "y": -0.9950000000000001, + "c": "#2277ff", + "a": 4, + "w": 1.5 + }, + "Capitals\n\n\n\n\n\nShift", + { + "x": 16.5, + "w": 1.5 + }, + "\n\nCapitals\n\n\n\n\nShift" + ], + [ + { + "y": -0.6299999999999999, + "x": 6.5, + "c": "#ffb063", + "h": 1.5 + }, + "Scroll\n\n\n\n\n\nDown", + { + "x": 4.5, + "h": 1.5 + }, + "Scroll\n\n\n\n\n\nDown" + ], + [ + { + "y": -0.75, + "x": 3.5, + "c": "#ff8500" + }, + "Mouse\n\n\n\n\n\nDown", + { + "x": 10.5 + }, + "Cursor\n\n\n\n\n\nDown" + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "Mouse\n\n\n\n\n\nDnLeft", + { + "x": 1 + }, + "Mouse\n\n\n\n\n\nDnRgt", + { + "x": 8.5, + "c": "#ffb063" + }, + "End", + { + "x": 1 + }, + "Page\n\n\n\n\n\nDown" + ], + [ + { + "y": -0.875, + "x": 5.5, + "c": "#e6e067" + }, + "Mute", + { + "x": 6.5, + "c": "#737373", + "a": 7 + }, + "" + ], + [ + { + "y": -0.875, + "x": 1.5 + }, + "", + { + "x": 14.5 + }, + "" + ], + [ + { + "y": -0.9950000000000001, + "c": "#2277ff", + "a": 4, + "w": 1.5 + }, + "Ctrl", + { + "x": 16.5, + "w": 1.5 + }, + "Ctrl" + ], + [ + { + "y": -0.3799999999999999, + "x": 3.5, + "c": "#ff8500" + }, + "Middle\n\n\n\n\n\nClick", + { + "x": 10.5, + "c": "#ffb063", + "fa": [ + 0, + 0, + 0, + 1 + ] + }, + "Delete\n\n\nOption" + ], + [ + { + "y": -0.875, + "x": 2.5, + "c": "#ff8500" + }, + "Left\n\n\n\n\n\nClick", + { + "x": 1 + }, + "Right\n\n\n\n\n\nClick", + { + "x": 8.5, + "c": "#ffb063" + }, + "Insert\n\n\nCmd", + { + "x": 1, + "c": "#77aaff" + }, + "Hyper" + ], + [ + { + "y": -0.75, + "x": 0.5 + }, + "Alt\n\n\nLAlt", + "Meh", + { + "x": 14.5 + }, + "Meh", + "Alt\n\n\nRAlt" + ], + [ + { + "r": 30, + "rx": 6.5, + "ry": 4.25, + "y": -1, + "x": 1, + "c": "#ccbb00" + }, + "Stop\n\n\nBrowser", + "Reload\n\n\nBrowser" + ], + [ + { + "h": 2 + }, + "< Web\n\n\nBrowser", + { + "h": 2 + }, + "Web >\n\n\nBrowser", + "Search\n\n\nBrowser" + ], + [ + { + "x": 2 + }, + "Home\n\n\nBrowser" + ], + [ + { + "r": -30, + "rx": 13, + "y": -1, + "x": -3 + }, + "Prev\n\n\nAudio\n\n\nTrack", + "Next\n\n\nAudio\n\n\nTrack" + ], + [ + { + "x": -3, + "c": "#e6e067" + }, + "Vol\n\n\n\n\n\nUp", + { + "c": "#ccbb00", + "h": 2 + }, + "Stop\n\n\nAudio", + { + "h": 2 + }, + "Play\n\n\nAudio\n\n\nPause" + ], + [ + { + "x": -3, + "c": "#e6e067" + }, + "Vol\n\n\n\n\n\nDown" + ] +] \ No newline at end of file diff --git a/keyboards/ergodox/keymaps/teckinesis/teckinesis-media.png b/keyboards/ergodox/keymaps/teckinesis/teckinesis-media.png new file mode 100644 index 000000000..cc51605f9 Binary files /dev/null and b/keyboards/ergodox/keymaps/teckinesis/teckinesis-media.png differ diff --git a/keyboards/ergodox/keymaps/teckinesis/teckinesis-symbol.json b/keyboards/ergodox/keymaps/teckinesis/teckinesis-symbol.json new file mode 100644 index 000000000..439d0128e --- /dev/null +++ b/keyboards/ergodox/keymaps/teckinesis/teckinesis-symbol.json @@ -0,0 +1,422 @@ +[ + { + "name": "teckinesis (Symbol Layer)", + "author": "Will Wolff-Myren", + "switchMount": "cherry", + "switchBrand": "gateron", + "switchType": "KS-3-Tea" + }, + [ + { + "x": 3.5, + "c": "#99de2a" + }, + "F3", + { + "x": 10.5 + }, + "F8" + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "F2", + { + "x": 1 + }, + "F4", + { + "x": 8.5 + }, + "F7", + { + "x": 1 + }, + "F9" + ], + [ + { + "y": -0.875, + "x": 5.5 + }, + "F5", + { + "c": "#ff4444" + }, + "Esc", + { + "x": 4.5, + "c": "#bbddbb" + }, + "_\n\n\n\n\n\n-", + { + "c": "#99de2a" + }, + "F6" + ], + [ + { + "y": -0.875, + "c": "#2277ff", + "w": 1.5 + }, + "Special\n\n\n\n\n\nShift", + { + "c": "#99de2a" + }, + "F1", + { + "x": 14.5 + }, + "F10", + { + "c": "#2277ff", + "w": 1.5 + }, + "\n\nSpecial\n\n\n\n\nShift" + ], + [ + { + "y": -0.375, + "x": 3.5, + "c": "#bbddbb" + }, + "{", + { + "x": 10.5, + "c": "#89b087" + }, + "8" + ], + [ + { + "y": -0.875, + "x": 2.5, + "c": "#bbddbb" + }, + "@", + { + "x": 1 + }, + "}", + { + "x": 8.5, + "c": "#89b087" + }, + "7", + { + "x": 1 + }, + "9" + ], + [ + { + "y": -0.875, + "x": 5.5, + "c": "#bbddbb" + }, + "&", + { + "h": 1.5 + }, + "<", + { + "x": 4.5, + "h": 1.5 + }, + ">", + "|" + ], + [ + { + "y": -0.875, + "c": "#2277ff", + "w": 1.5 + }, + "Media\n\n\n\n\n\nShift", + { + "c": "#bbddbb" + }, + "!", + { + "x": 14.5, + "c": "#89b087" + }, + "/", + { + "c": "#2277ff", + "w": 1.5 + }, + "\n\nMedia\n\n\n\n\nShift" + ], + [ + { + "y": -0.375, + "x": 3.5, + "c": "#bbddbb" + }, + "(", + { + "x": 10.5, + "c": "#89b087" + }, + "5" + ], + [ + { + "y": -0.875, + "x": 2.5, + "c": "#bbddbb" + }, + "$", + { + "x": 1 + }, + ")", + { + "x": 8.5, + "c": "#89b087" + }, + "4", + { + "x": 1 + }, + "6" + ], + [ + { + "y": -0.875, + "x": 5.5, + "c": "#bbddbb" + }, + "`", + { + "x": 6.5 + }, + "/" + ], + [ + { + "y": -0.875, + "c": "#000000", + "t": "#ff0000", + "w": 1.5 + }, + "Symbols\n\n\n\n\n\nShift", + { + "c": "#bbddbb", + "t": "#000000" + }, + "#", + { + "x": 14.5, + "c": "#89b087" + }, + "*", + { + "c": "#000000", + "t": "#ff0000", + "w": 1.5 + }, + "\n\nSymbols\n\n\n\n\nShift" + ], + [ + { + "y": -0.625, + "x": 6.5, + "c": "#54d6de", + "t": "#000000", + "fa": [ + 0, + 0, + 0, + 1 + ], + "h": 1.5 + }, + "Tab >\n\n\nTab", + { + "x": 4.5, + "h": 1.5 + }, + "< Tab\n\n\nShift Tab" + ], + [ + { + "y": -0.75, + "x": 3.5, + "c": "#bbddbb" + }, + "[", + { + "x": 10.5, + "c": "#89b087" + }, + "2" + ], + [ + { + "y": -0.875, + "x": 2.5, + "c": "#bbddbb" + }, + "^", + { + "x": 1 + }, + "]", + { + "x": 8.5, + "c": "#89b087" + }, + "1", + { + "x": 1 + }, + "3" + ], + [ + { + "y": -0.875, + "x": 5.5, + "c": "#bbddbb" + }, + "~", + { + "x": 6.5 + }, + "\\" + ], + [ + { + "y": -0.875, + "c": "#2277ff", + "w": 1.5 + }, + "Capitals\n\n\n\n\n\nShift", + { + "c": "#bbddbb" + }, + "%", + { + "x": 14.5, + "c": "#89b087" + }, + "-", + { + "c": "#2277ff", + "w": 1.5 + }, + "\n\nCapitals\n\n\n\n\nShift" + ], + [ + { + "y": -0.375, + "x": 3.5, + "c": "#77aaff" + }, + "\n\n\nLAlt", + { + "x": 10.5, + "c": "#89b087" + }, + ".\n\n\nOption" + ], + [ + { + "y": -0.875, + "x": 2.5, + "c": "#77aaff" + }, + "Hyper", + { + "x": 1 + }, + "\n\n\nSuper", + { + "x": 8.5, + "c": "#89b087" + }, + "0\n\n\nCmd", + { + "x": 1 + }, + "=\n\n\nHyper" + ], + [ + { + "y": -0.75, + "x": 0.5, + "c": "#77aaff" + }, + "Ctrl\n\n\nLCtrl", + "Meh", + { + "x": 14.5, + "c": "#89b087" + }, + "+\n\n\nMeh", + "Enter\n\n\nCtrl" + ], + [ + { + "r": 30, + "rx": 6.5, + "ry": 4.25, + "y": -1, + "x": 1, + "c": "#54d6de" + }, + "Left", + "Right" + ], + [ + { + "h": 2 + }, + "Space", + { + "h": 2 + }, + "Enter", + "Up" + ], + [ + { + "x": 2 + }, + "Down" + ], + [ + { + "r": -30, + "rx": 13, + "y": -1, + "x": -3 + }, + "Home", + "End" + ], + [ + { + "x": -3 + }, + "Page\n\n\n\n\n\nUp", + { + "h": 2 + }, + "< Del\n\n\nBackspace", + { + "h": 2 + }, + "Del >\n\n\nDelete" + ], + [ + { + "x": -3 + }, + "Page\n\n\n\n\n\nDown" + ] +] \ No newline at end of file diff --git a/keyboards/ergodox/keymaps/teckinesis/teckinesis-symbol.png b/keyboards/ergodox/keymaps/teckinesis/teckinesis-symbol.png new file mode 100644 index 000000000..7ca86cf47 Binary files /dev/null and b/keyboards/ergodox/keymaps/teckinesis/teckinesis-symbol.png differ diff --git a/keyboards/ergodox/keymaps/tkuichooseyou/README.md b/keyboards/ergodox/keymaps/tkuichooseyou/README.md new file mode 100644 index 000000000..ab02fac2c --- /dev/null +++ b/keyboards/ergodox/keymaps/tkuichooseyou/README.md @@ -0,0 +1,13 @@ +# Based on Default OSX +I'm a vim and OSX user + +- Moved Hyper and Meh up, replaced with CMD + - Because I'm used to having symmetrical CMD keys on both hands +- Changed left delete to Tab to match OSX +- Changed left Backspace to CTRL/ESC for vim +- Changed top left and top right arrow to `CMD+{` and `CMD+}` + - Useful for switching tabs in Safari, Xcode, etc. +- Remove the Ctrl from Z and / +- Remove CMD from right quote +- Changed right Alt to Delete + diff --git a/keyboards/ergodox/keymaps/tkuichooseyou/compiled.hex b/keyboards/ergodox/keymaps/tkuichooseyou/compiled.hex new file mode 100644 index 000000000..a8cf4527a --- /dev/null +++ b/keyboards/ergodox/keymaps/tkuichooseyou/compiled.hex @@ -0,0 +1,1137 @@ +:100000000C947B020C94C2020C94C2020C94C202A7 +:100010000C94C2020C94C2020C94C2020C94C20250 +:100020000C94C2020C94C2020C94F70D0C94C90EED +:100030000C94C2020C94C2020C94C2020C94C20230 +:100040000C94C2020C9486210C94C2020C94C2023D +:100050000C94C2020C94681C0C94C2020C94C20250 +:100060000C94C2020C94C2020C94C2020C94C20200 +:100070000C94C2020C94C2020C94C2020C94C202F0 +:100080000C94C2020C94C2020C94C2020C94C202E0 +:100090000C94C2020C94C2020C94C2020C94C202D0 +:1000A0000C94C2020C94C2020C94C202360F580F78 +:1000B0004610580F46109D0FC00F461015102810FF +:1000C000F712F712261326135C137C13AD14AD142C +:1000D0008713AD14371437149E14AD14AD14A71440 +:1000E0004414441444144414441444144414441450 +:1000F0004414441444144414441444144414441440 +:10010000561463146A1471147B140000F0A12E00BD +:100110002B002961E100354100001E00140004009D +:100120001D0034004D001F001A0016001B00E104E2 +:100130002A00200008000700060050002C002100C3 +:100140001500090019004F004A00220017000A009C +:100150000500000065642F0A006F0000E300000046 +:10016000E300300A00670000E30000004C002300B9 +:100170001C000B00110000002961240018000D0074 +:10018000100052004B0025000C000E0036005100FC +:100190002800260012000F0037002F002B00270038 +:1001A00013003342380030004E002D00310034007F +:1001B000E500C10000000100010001000100010094 +:1001C00000003A001E0220022202010001003B0052 +:1001D0001F0221022302010001003C002F0226021F +:1001E0002F00010001003D00300227023000010015 +:1001F00001003E003102350035020000010001001F +:1002000001000000010000000100010001000000E9 +:100210000100000001003F005200510024020000D4 +:1002200001004000240021001E00010001004100E7 +:10023000250022001F003700010042002600230095 +:10024000200027000100430025022E0231002E006D +:100250000100440045000100010001000000010010 +:100260000100010001000100000001000100010087 +:1002700001000100010001000100F2000100010085 +:1002800001000100F000F1000100F4000100010094 +:100290000100F3000100F500010001000100010070 +:1002A0000100000001000100010000000100000049 +:1002B0000100010001000000010000000100010038 +:1002C0000100010001000000010001000100010027 +:1002D0000100A9000100010001000100AC00AA001A +:1002E000B600010001000100AB00A8000100010000 +:1002F0000100010001000100010001000100AE0049 +:1003000001000100000016034500720067006F0045 +:1003100044006F007800200045005A0000001603DA +:100320004500720067006F0044006F0078002000F5 +:1003300045005A0000000403090409026D0004018D +:1003400000A0FA09040000010301010009211101C4 +:1003500000012240000705810308000A090401008A +:100360000103010200092111010001224D000705CE +:10037000820308000A0904020001030000000921A9 +:10038000110100012236000705830308000A090451 +:1003900003000103000000092111010001223900BE +:1003A000070584031000011201100100000008ED90 +:1003B000FE071301000102000105010906A1010564 +:1003C0000719E029E7150025019508750181020547 +:1003D000081901290595057501910295017503918B +:1003E0000105071900297715002501957875018108 +:1003F00002C005010980A101850216010026B7008F +:100400001A01002AB700751095018100C0050C097A +:1004100001A1018503160100269C021A01002A9CF5 +:1004200002751095018100C005010902A1010901B1 +:10043000A10005091901290515002501950575017A +:10044000810295017503810105010930093115818A +:10045000257F95027508810609381581257F95014C +:1004600075088106050C0A38021581257F950175EE +:10047000088106C0C005010906A101050719E02988 +:10048000E715002501950875018102950175088120 +:100490000105081901290595057501910295017558 +:1004A0000391010507190029FF150026FF00950695 +:1004B00075088100C000000000000000000000007E +:1004C000010204060A0F17202C3A4A5D71879DB37A +:1004D000C7DAE9F5FCFFFCF5E9DAC7B39D87715D82 +:1004E0004A3A2C20170F0A060402010000000000FF +:1004F00000000000000011241FBECFEFDAE0DEBFD5 +:10050000CDBF04B603FE27C0809101029091020284 +:10051000A0910302B09104028730904BA740B04BEA +:10052000D1F4109201021092020210920302109272 +:10053000040214BE84B7877F84BF0FB6F894A895D1 +:1005400080916000886180936000109260000FBE0F +:10055000E0E0FFE3099511E0A0E0B1E0E6EBF6E4AE +:1005600002C005900D92A433B107D9F712E0A4E3BD +:10057000B1E001C01D92A130B107E1F70E943C0B30 +:100580000C9459230C9400001092B9008AE08093D7 +:10059000B800089594EA9093BC009091BC0097FF36 +:1005A000FCCF9091B900987F983021F0903111F0F4 +:1005B00081E008958093BB0084E88093BC00809123 +:1005C000BC0087FFFCCF8091B900887F883111F093 +:1005D000803471F780E0089584E98093BC008091B5 +:1005E000BC0084FDFCCF08958093BB0084E8809319 +:1005F000BC008091BC0087FFFCCF9091B900987F30 +:1006000081E0983209F480E0089584E88093BC008A +:100610008091BC0087FFFCCF8091BB00089580B320 +:100620008C7080BB81B3836F81BB08958091010181 +:10063000811115C080E40E94CA02809301018111DA +:100640000CC082E10E94F40280930101811105C077 +:100650008FEF0E94F402809301010E94EC0284B1AA +:10066000807F84B985B1807F85B98AB1837F8AB95B +:100670008BB1837F8BB93E98469808950E94E00421 +:10068000809301010E9416030E940F03A5E3B1E0CD +:10069000E3E4F1E08EE08E0F11921D928E13FCCFF9 +:1006A0000C94CA040E94E004809301010E94160386 +:1006B0000E940F03A5E3B1E0E3E4F1E08EE08E0FCA +:1006C00011921D928E13FCCF0895BF92CF92DF92AC +:1006D000EF92FF920F931F93CF93DF9380910101CD +:1006E000882379F0809134018F5F809334018111E8 +:1006F00008C00E94E00480930101811102C00E94A1 +:10070000720405E311E0C0E0D0E0DD24D39482E080 +:10071000C82EEE24E394F12CC730D10500F580916A +:100720000101811164C080E40E94CA02809301012A +:10073000811112C082E10E94F402809301018111B3 +:100740000BC0C7010C2E01C0880F0A94EAF78095F0 +:100750000E94F402809301010E94EC0248C0CA305A +:10076000A1F028F4C83059F0C93061F005C0CC3090 +:1007700089F070F0CD3089F0209A289810C0219A25 +:1007800029980DC0229A2A980AC0239A2B9807C04C +:10079000529A01C0539A5B9802C03E9A469890EADA +:1007A0009A95F1F79FB1799902C082E001C080E08B +:1007B00091709D25982B7C9902C084E001C080E057 +:1007C000892B7D9902C038E001C030E0832B7E99EF +:1007D00002C020E101C020E0822B9FB19095991FBB +:1007E0009927991F9295990F907E892B0FC0809120 +:1007F0000101811149C080E40E94CA028093010175 +:10080000882379F1B12C0E94EC028B2DF8019081A4 +:10081000981719F08083C09200010E941603219658 +:100820000F5F1F4FCE30D10509F076CF80910001C8 +:10083000882361F1815080930001882339F08FE98A +:100840009FE00197F1F700C0000020C0A3E4B1E0F1 +:10085000E5E3F1E0CF01825F91919D938E13FCCF90 +:1008600015C083E10E94F402809301018111CACF77 +:1008700081E40E94CA02809301018111C3CF0E94CA +:100880000503B82EB094BFCF80E0C0CF0E947004A3 +:1008900081E0DF91CF911F910F91FF90EF90DF905A +:1008A000CF90BF900895E82FF0E0ED5BFE4F808180 +:1008B000089508950F931F93CF93DF93C3E4D1E07E +:1008C00010E00C2F025F899190E00E948C1B180FA2 +:1008D0000C13F9CF812FDF91CF911F910F910895C4 +:1008E0000C94400556985E9825982D9826982E9839 +:1008F00027982F988FEF90E090938900809388003D +:1009000090938B0080938A0090938D0080938C004D +:10091000259A2D9A2FEF80E792E021508040904059 +:10092000E1F700C00000269A2E9A2FEF80E792E0B0 +:10093000215080409040E1F700C00000279A2F9A94 +:100940002FEF80E792E0215080409040E1F700C017 +:10095000000025982D982FEF80E792E021508040ED +:100960009040E1F700C0000026982E982FEF80E716 +:1009700092E0215080409040E1F700C000002798AD +:100980002F9856985E9825982D9826982E982798F7 +:100990002F98089589EA8093800089E080938100F0 +:1009A00024982C983F988AB18F748AB96E98479A88 +:1009B0008BB1806B8BB9769A0E9472040C943F05C0 +:1009C00080E2809301018091510181110EC00E944B +:1009D000C40281E0809351012FEF83ED90E3215019 +:1009E00080409040E1F700C0000080E40E94CA020D +:1009F0008093010181112EC00E94F40280930101B5 +:100A0000811128C00E94F40280930101811122C04B +:100A10008FE30E94F4028093010181111BC00E94A8 +:100A2000EC0280E40E94CA0280930101811112C08D +:100A30008CE00E94F4028093010181110BC00E949E +:100A4000F40280930101811105C08FE30E94F4023A +:100A5000809301010E94EC028091010108956111CF +:100A60000BC0FC018281882321F085EE0E949B113E +:100A700003C085EE0E94631280E090E0089508951F +:100A80006091C2017091C3018091C4019091C50130 +:100A90000E94981B56985E9825982D9826982E9817 +:100AA00027982F98813019F0823021F00895259AE7 +:100AB0002D9A0895269A2E9A089581E0089581E04E +:100AC00008950C945F050895282F882339F090E04D +:100AD0002A3010F44D9608950697089587E290E025 +:100AE0000895AF92BF92DF92EF92FF920F931F9300 +:100AF000CF93DF938C01FC01C081D181CE010E9494 +:100B0000111ABE010E94E908EC01B8010E946105BA +:100B1000882309F4D1C1F8018281882309F4C6C071 +:100B200080916201811127C0C431F0E7DF0709F02D +:100B3000BDC10E94630581E0809362010E94321C66 +:100B400090936101809360011092550110925701BA +:100B500010925601109259011092580110925B01A7 +:100B600010925A0110925D0110925C0110925F0187 +:100B700010925E01A1C180916001909161010E947B +:100B80003E1C883C910570F480915501E82FF0E0FF +:100B9000EE0FFF1FEA5AFE4FD183C0838F5F809311 +:100BA00055018AC1C13020E8D20708F451C0F801CC +:100BB0008281882309F47EC05E01E894B7F88091B1 +:100BC0005401813079F050F08230C1F482EE0E94FD +:100BD0009B1187E50E949B1187E50EC082EE0E9463 +:100BE0009B110CC080EE0E949B1181EE0E949B1114 +:100BF00088E10E949B1188E10E9463128CE0E82E3C +:100C0000F12CC5010E2C02C0969587950A94E2F747 +:100C10008F700E946405D82E0E949B118D2D0E941A +:100C20006312F4E0EF1AF1082CEFE2162FEFF20650 +:100C300041F780915401813029F010F0823041F465 +:100C400082EE04C080EE0E94631281EE0E94631265 +:100C5000C43180E7D80768F4C23090E7D90708F0BC +:100C600046C0C115E0E7DE0771F0C130D047A1F101 +:100C70000CC1C33320E7D20709F4D8C0C433D0472E +:100C800009F4EBC002C1F8018281882309F402C192 +:100C90000E941815FFEF24E38CE0F15020408040C3 +:100CA000E1F700C000000E948D1C06C1C13080E841 +:100CB000D80770F2C43120E7D20708F0B3C0C230C1 +:100CC00080E7D807A0F4C11590E7D90709F4E2C07E +:100CD000C130D04709F0D9C0F8018281882309F4D6 +:100CE000D9C08091DF0181608093DF01E5C0F80108 +:100CF0008281882309F4CEC00E94E71C811102C0C2 +:100D00000E94CD1C0E94FA1C90E09093F301809306 +:100D1000F201C230F0E7DF0721F48091F201816037 +:100D20007AC0C33020E7D20721F48091F2018260BB +:100D300072C0C43080E7D80721F48091F20184604A +:100D40006AC0C53090E7D90719F48091F20127C035 +:100D5000C630E0E7DE0721F48091F20180615BC0DC +:100D6000C730F0E7DF0721F48091F201806253C0C1 +:100D7000C83020E7D20721F48091F20180644BC093 +:100D8000C93080E7D80721F48091F201806843C020 +:100D9000CA3090E7D90729F48091F2018460886015 +:100DA0003AC0CB30E0E7DE0721F48091F2018E7F7C +:100DB00032C0CC30F0E7DF0721F48091F2018D7F63 +:100DC0002AC0CD3020E7D20721F48091F2018B7F39 +:100DD00022C0CE3080E7D80719F48091F2011AC002 +:100DE0008091F201CF3090E7D90711F48F7E13C0C4 +:100DF000C031E0E7DE0711F48F7D0DC0C131F0E7AF +:100E0000DF0711F48F7B07C0C231D04711F48F7711 +:100E100002C08B7F877F8093F2018091F2010E9454 +:100E2000FE1C4AC0C333F0E7DF07A1F4F80182815A +:100E3000882321F01092520182E016C08091520165 +:100E4000811106C086E20E949B1186E20E94631215 +:100E500082E018C0C433D047C1F4F80182818823EE +:100E600031F01092530180E20E94B21225C08091AD +:100E70005301811106C087E20E949B1187E20E9404 +:100E8000631280E20E94B91217C081E08093520180 +:100E900080935301C801DF91CF911F910F91FF9073 +:100EA000EF90DF90BF90AF900C945D05C130F0E8FB +:100EB000DF0708F081CECCCE80E0DF91CF911F918B +:100EC0000F91FF90EF90DF90BF90AF90089526E0D4 +:100ED000729FF001112444E5849FE00DF11D11245F +:100EE000E60FF11DEE0FFF1FE25FFE4F859194911B +:100EF0000E94FB08811560E49607B0F5811570E348 +:100F0000970708F0DEC0803E9105D8F4803C91053B +:100F100008F06CC0883A910578F4853A910508F09C +:100F20006BC08130910509F452C108F40FC18430BF +:100F3000910508F04CC10AC18B3B910508F467C0CC +:100F400005C18F3F910509F048F4803F910508F0F5 +:100F5000ADC0883E910508F43AC1F8C0811520E281 +:100F6000920708F0A5C00895811543E5940790F411 +:100F7000811562E5960708F0C8C0811571E59707ED +:100F800008F0BEC0811520E5920708F09DC09F7053 +:100F9000906A0895811545E59407D8F4811564E5B4 +:100FA000960708F0C8C0482F4695469570E2479FBF +:100FB000A00111248370992721E030E0B90102C01B +:100FC000660F771F8A95E2F7CB01842B952B9A68E1 +:100FD0000895811576E5970708F4B2C09C01305654 +:100FE0002115304108F0B2C09F70AEC0FC01EE0F79 +:100FF000FF1FE657F04062C0853A910509F4A9C089 +:10100000863A910509F0A8C082E890E40895883AEC +:10101000910509F4A4C0893A910509F4A3C08A3A5C +:10102000910509F4A2C08B3A910509F4A1C08C3A4C +:10103000910509F4A0C08D3A910509F49FC0803B49 +:10104000910509F49EC08E3A910509F49DC08F3A2E +:10105000910509F49CC0813B910509F49BC0823B3A +:10106000910509F49AC0833B910509F499C0843B2A +:10107000910509F498C0853B910509F497C0863B1A +:10108000910509F496C0873B910509F495C0883B0A +:10109000910509F494C0893B910509F493C08A3BFA +:1010A000910509F492C080E094E408959065089554 +:1010B000FC01FF70EE0FFF1FE65FFE4F85919491DC +:1010C00008959927906C0895482F437021E030E0EF +:1010D00002C0220F331F4A95E2F73C68AC0164E07E +:1010E000569547956A95E1F74370342B8F70869536 +:1010F000869560E2869FC0011124822B932B089570 +:10110000982F8827816F906A0895482F46954695B5 +:1011100070E2479FA00111248370992721E030E0FD +:10112000B90102C0660F771F8A95E2F7CB01842BC5 +:10113000952B9C680895982F8827846F906A08954E +:101140008F719927982F88279062089580E090E00A +:10115000089581E890E4089583E890E4089582EE8C +:1011600094E4089589EE94E408958AEE94E4089551 +:1011700085EB94E4089586EB94E4089587EB94E47A +:1011800008958CEC94E408958DEC94E4089583E83C +:1011900095E408958AE895E4089582E995E4089530 +:1011A00084E995E4089581E296E4089583E296E463 +:1011B000089584E296E4089585E296E4089586E22F +:1011C00096E4089587E296E408958AE296E4089505 +:1011D000089596E0799FF001112494E5899FE00D30 +:1011E000F11D1124E60FF11DEE0FFF1FE25FFE4F10 +:1011F0008591949108958238910549F1B0F4813335 +:10120000910509F458C048F48932910509F44EC09B +:101210008A32910509F454C008958533910509F483 +:1012200040C08933910599F00895833E910529F1D5 +:1012300038F4803E910591F0823E9105A1F0089529 +:10124000863E9105F9F0873E910531F10895209190 +:10125000F20120FD3AC021FD38C008958091F201CD +:1012600080FD35C032C08091F20182FF32C0809192 +:10127000F20184FD30C083EE39C08091F20182FD1D +:1012800028C0F5CF8091F20183FF27C08091F20141 +:1012900084FD21C087EE2AC08091F20183FD1DC02C +:1012A000F5CF8091F20185FD1AC01BC08091F2013B +:1012B00085FD17C014C08091F20186FD14C015C0D1 +:1012C0008091F20186FD11C00EC080EE0FC089E34F +:1012D0000DC082EE0BC080E009C086EE07C089E237 +:1012E00005C085E303C08AE201C081E390E0089570 +:1012F00008950C947809809173010895CF93DF933A +:1013000000D01F92CDB7DEB79C018091F8018430E8 +:1013100019F593E099833B832A839093E9008FEF3B +:101320009091E800815095FD06C095ED9A95F1F7F2 +:1013300000008111F5CF8091E80085FF0DC040E0ED +:1013400050E063E070E0CE0101960E94E70B8091CF +:10135000E8008E778093E8000F900F900F90DF9158 +:10136000CF910895CF93DF9300D01F92CDB7DEB712 +:101370002091F801243021F522E029839B838A8380 +:1013800083E08093E9008FEF9091E800815095FD14 +:1013900006C095ED9A95F1F700008111F5CF809187 +:1013A000E80085FF0DC040E050E063E070E0CE0152 +:1013B00001960E94E70B8091E8008E778093E80009 +:1013C0000F900F900F90DF91CF9108952091F80129 +:1013D0002430F1F422E02093E9002FEF3091E8006F +:1013E000215035FD06C035ED3A95F1F70000211189 +:1013F000F5CF2091E80025FF0BC040E050E065E00C +:1014000070E00E94E70B8091E8008E778093E800FF +:101410000895CF93DF93EC019091F801943009F097 +:1014200046C080910C018823D9F080910D0188235A +:10143000B9F09093E9008FEF9091E800815095FD0D +:1014400006C095E19A95F1F700008111F5CF8091E2 +:10145000E80085FF2CC040E050E060E170E017C07C +:1014600081E08093E9008FEF9091E800815095FD35 +:1014700006C095ED9A95F1F700008111F5CF8091A6 +:10148000E80085FF14C040E050E068E070E0CE0165 +:101490000E94E70B8091E8008E778093E80080E15E +:1014A000FE01A3E6B1E001900D928A95E1F7DF918C +:1014B000CF9108958091F701811109C00E947C0DA0 +:1014C0000E94D90D8091E20084608093E20008952B +:1014D0001092F701089508950C9473210E94231C23 +:1014E0000E9479210E947F100C94790942E061ECFE +:1014F00081E00E94F60C42E061EC82E00E94F60C72 +:1015000042E061EC83E00E94F60C42E161EC84E091 +:101510000C94F60C8091FA01833009F455C030F434 +:10152000813071F0823009F48EC008958A3009F458 +:101530007AC08B3009F460C0893009F09CC020C0AB +:101540008091F901813A09F096C08091E800877F87 +:101550008093E8008091FD019091FE01892B21F498 +:1015600060E183E691E003C060E080E090E070E03D +:101570000E94320C8091E8008B778093E8000895F8 +:101580008091F901813209F076C08091FD0190913E +:10159000FE01009719F0039709F06DC08091E800F3 +:1015A000877F8093E8008091E80082FD05C08091EC +:1015B000F8018111F8CF5FC08091F1008093730131 +:1015C0008091E8008B7753C08091F901813A09F04E +:1015D00052C08091FD019091FE01892B09F04BC012 +:1015E0008091E800877F8093E8008091E80080FF89 +:1015F000FCCF80910C0136C08091F9018132D9F580 +:101600008091FD019091FE01892BA9F58091E80060 +:10161000877F8093E8000E942B0D8091FB018093CF +:101620000C010C9418158091F901813221F58091FB +:10163000E800877F8093E8000E942B0D8091FC01D9 +:101640008093740108958091F901813AA1F4809109 +:10165000E800877F8093E8008091E80080FFFCCF5E +:10166000809174018093F1008091E8008E778093DF +:10167000E8000C942B0D089584B7877F84BF0FB6C4 +:10168000F894A89580916000886180936000109222 +:1016900060000FBE80E880936100109261000E949C +:1016A000CE100E947C0D0E94D90D8091E2008460D2 +:1016B0008093E20078940E945F100E94D01082E034 +:1016C00091E00E947A100E9461218091F80185309A +:1016D00069F40E94E81B8091F6018823B1F30E940F +:1016E000151C882391F30E94D10BEFCF0E94D610D6 +:1016F000ECCF292F332723303105C9F064F4213092 +:10170000310581F02230310509F043C08DE690E0CB +:101710002AE333E042C021323105F1F022323105B3 +:1017200041F137C082E190E027EA33E036C09927E3 +:101730008130910541F08230910541F0892B49F5C6 +:10174000E6E3F3E005C0EEE1F3E002C0E6E0F3E03B +:10175000849190E09F0121C06430D8F4E62FF0E03E +:10176000EE0FFF1FEE5DFE4F2081318189E090E09A +:1017700014C0643070F470E0FB01EE0FFF1FE65EF2 +:10178000FE4F20813181FB01EA5EFE4F808190E0B7 +:1017900004C080E090E020E030E0FA013183208353 +:1017A000089580E189BD82E189BD09B400FEFDCFC5 +:1017B0008091D8008F7D8093D8008091E000826076 +:1017C0008093E0008091E00081FDFCCF0895CF92EE +:1017D000DF92EF92FF920F931F93CF93DF93EC0171 +:1017E0008B016A010E944A0D811133C0C114D104DA +:1017F00039F0F60180819181081B190BC80FD91FA0 +:10180000E12CF12C0115110519F18091E80085FDFD +:1018100016C08091E8008E778093E800C114D1044F +:1018200049F0F60180819181E80EF91EF182E08293 +:1018300085E00FC00E944A0D882321F30AC08991D8 +:101840008093F10001501109FFEFEF1AFF0ADACF80 +:1018500080E0DF91CF911F910F91FF90EF90DF908B +:10186000CF9008952091FF0130910002261737078D +:1018700048F06115710539F42091E8002E77209326 +:10188000E80001C0B90140E061157105A9F120919E +:10189000F801222309F443C0253009F442C0209105 +:1018A000E80023FD40C02091E80022FD32C02091D5 +:1018B000E80020FFE9CF4091F3002091F20030E0F2 +:1018C000342BFC01CF016115710559F02830310529 +:1018D00040F481918093F100615071092F5F3F4F77 +:1018E000F1CF41E02830310509F040E02091E800D7 +:1018F0002E772093E800C8CF4111C9CF0AC080914C +:10190000F801882361F0853061F08091E80083FD63 +:101910000AC08091E80082FFF2CF80E0089582E063 +:10192000089583E0089581E008952091FF013091AA +:1019300000022617370748F06115710539F4209128 +:10194000E8002E772093E80001C0B901FC0120E0F7 +:101950006115710591F18091F801882309F440C067 +:10196000853009F43FC08091E80083FD3DC080913F +:10197000E80082FD2FC08091E80080FFE9CF209130 +:10198000F3008091F20090E0922B6115710559F0FF +:101990008830910540F424912093F10031966150F4 +:1019A00071090196F2CF21E0089709F020E08091BB +:1019B000E8008E778093E800CBCF2111CCCF0AC00E +:1019C0008091F801882361F0853061F08091E80012 +:1019D00083FD0AC08091E80082FFF2CF80E0089585 +:1019E00082E0089583E0089581E00895982F97306C +:1019F00058F59093E900981739F07091EC00209118 +:101A0000ED005091F00003C0242F762F50E021FF0D +:101A100019C03091EB003E7F3093EB003091ED0028 +:101A20003D7F3093ED003091EB0031603093EB005F +:101A30007093EC002093ED005093F0002091EE00A5 +:101A400027FF07C09F5FD3CF8F708093E90081E0AD +:101A5000089580E008958091F90187FF11C0809179 +:101A6000E80082FD05C08091F8018111F8CF11C016 +:101A70008091E8008B770BC08091F801882349F0B2 +:101A80008091E80080FFF8CF8091E8008E77809306 +:101A9000E80008952091E4003091E50095E640913A +:101AA000EC00842F817040FF22C08091E80080FD0F +:101AB0001CC08091F801882391F0853091F08091CD +:101AC000EB0085FD10C04091E4005091E500421705 +:101AD000530729F39A01915011F784E0089582E0A9 +:101AE000089583E0089581E0089580E0089540918D +:101AF000E80042FFDECF08950E94EA0D0E94F20D39 +:101B0000E0EEF0E0808181608083E8EDF0E08081AC +:101B10008F77808319BCA7EDB0E08C918E7F8C937A +:101B200080818F7E80831092F70108950F931F9319 +:101B3000CF93DF930E94EA0D0E94F20DC8EDD0E032 +:101B400088818F77888388818068888388818F7D6A +:101B5000888319BC1092F8011092F4011092F601DA +:101B60001092F50100EE10E0F80180818B7F8083F8 +:101B700088818160888342E060E080E00E94F60C0A +:101B8000E1EEF0E080818E7F8083E2EEF0E0808104 +:101B900081608083808188608083F80180818E7F6E +:101BA0008083888180618883DF91CF911F910F911D +:101BB0000895E8EDF0E080818F7E8083E7EDF0E02E +:101BC00080818160808384E082BF81E08093F7011F +:101BD0000C94960DE8EDF0E080818E7F808310926A +:101BE000E20008951092DA001092E10008951F9229 +:101BF0000F920FB60F9211242F933F934F935F9341 +:101C00006F937F938F939F93AF93BF93EF93FF93C4 +:101C10008091E10082FF0BC08091E20082FF07C04B +:101C20008091E1008B7F8093E1000E945E108091A3 +:101C3000DA0080FF1FC08091D80080FF1BC0809118 +:101C4000DA008E7F8093DA008091D90080FF0DC08A +:101C500080E189BD82E189BD09B400FEFDCF81E04C +:101C60008093F8010E945A0A05C019BC1092F8012D +:101C70000E94680A8091E10080FF19C08091E20013 +:101C800080FF15C08091E2008E7F8093E2008091FA +:101C9000E20080618093E2008091D80080628093AE +:101CA000D80019BC85E08093F8010E946C0A8091ED +:101CB000E10084FF30C08091E20084FF2CC080E10D +:101CC00089BD82E189BD09B400FEFDCF8091D800B5 +:101CD0008F7D8093D8008091E1008F7E8093E1001A +:101CE0008091E2008F7E8093E2008091E20081602B +:101CF0008093E2008091F401882311F084E007C012 +:101D00008091E30087FD02C081E001C083E0809301 +:101D1000F8010E946E0A8091E10083FF29C0809142 +:101D2000E20083FF25C08091E100877F8093E1007E +:101D300082E08093F8011092F4018091E1008E7F9F +:101D40008093E1008091E2008E7F8093E200809199 +:101D5000E20080618093E20042E060E080E00E9467 +:101D6000F60C8091F00088608093F0000E946B0A6E +:101D7000FF91EF91BF91AF919F918F917F916F9163 +:101D80005F914F913F912F910F900FBE0F901F9039 +:101D900018951F920F920FB60F9211242F933F9315 +:101DA0004F935F936F937F938F939F93AF93BF9363 +:101DB000CF93DF93EF93FF93C091E900CF708091B1 +:101DC000EC00D82FD17080FDD0E81092E90080910E +:101DD000F000877F8093F00078940E940D0F10929E +:101DE000E9008091F00088608093F000CD2BCF70E7 +:101DF000C093E900FF91EF91DF91CF91BF91AF9137 +:101E00009F918F917F916F915F914F913F912F9112 +:101E10000F900FBE0F901F9018951F93CF93DF93D5 +:101E2000CDB7DEB7AA970FB6F894DEBF0FBECDBF11 +:101E3000E9EFF1E088E08E0F9091F10091938E131D +:101E4000FBCF0E948A0A8091E80083FF1FC1809126 +:101E5000F9019091FA01492F50E04A30510508F0FC +:101E600015C1FA01EA5AFF4F0C940A23803881F019 +:101E7000823809F00BC18091FD018F708093E900D9 +:101E80008091EB0085FB882780F91092E90006C05D +:101E90008091F5019091F601911182609091E80096 +:101EA000977F9093E8008093F1001092F100C8C0F2 +:101EB000282F2D7F09F0EAC0882319F0823061F0C5 +:101EC000E5C08091FB01813009F0E0C0933009F05A +:101ED00080E08093F6012BC08091FB01811127C027 +:101EE0008091FD018F7009F4D1C08093E9002091A9 +:101EF000EB0020FF1CC0933021F48091EB00806246 +:101F000014C09091EB0090619093EB0021E030E0E1 +:101F1000A90102C0440F551F8A95E2F74093EA00D9 +:101F20001092EA008091EB0088608093EB001092A1 +:101F3000E9008091E800877F86C08111A7C01091D9 +:101F4000FB011F778091E3008078812B8093E30071 +:101F50008091E800877F8093E8000E942B0D80919C +:101F6000E80080FFFCCF8091E30080688093E3006D +:101F7000111102C082E001C083E08093F80186C0A5 +:101F80008058823008F082C08091FB019091FC0162 +:101F90008C3D53E0950779F583E08A838AE2898353 +:101FA0004FB7F894DE01139620E03EE051E2E32FB4 +:101FB000F0E050935700E49120FF03C0E295EF70EA +:101FC0003F5FEF708E2F90E0EA3010F0C79601C0AF +:101FD000C0968D939D932F5F243149F74FBF809119 +:101FE000E800877F8093E8006AE270E0CE01019606 +:101FF0000E94320C14C0AE014F5F5F4F6091FD0133 +:102000000E94790BBC01892B09F440C09091E80033 +:10201000977F9093E80089819A810E94950C809126 +:10202000E8008B778093E80031C0803879F58091A3 +:10203000E800877F8093E8008091F4018093F100AD +:102040008091E8008E778093E8000E942B0D1EC0DF +:1020500081111CC09091FB019230C0F48091E80086 +:10206000877F8093E8009093F4010E942B0D80916C +:10207000F401811106C08091E30087FD02C081E078 +:1020800001C084E08093F8010E94760A8091E80004 +:1020900083FF0AC08091E800877F8093E8008091E9 +:1020A000EB0080628093EB00AA960FB6F894DEBF37 +:1020B0000FBECDBFDF91CF911F9108950895CF93AB +:1020C0008091F8018823A1F0C091E900CF70909130 +:1020D000EC00892F817090FD80E8C82B1092E900F8 +:1020E0008091E80083FD0E940D0FCF70C093E9003E +:1020F000CF91089590937A01809379010895E091AA +:102100007901F0917A01309721F00190F081E02D72 +:10211000099480E00895E0917901F0917A01309777 +:1021200021F00280F381E02D09940895E091790176 +:10213000F0917A01309721F00480F581E02D099427 +:10214000089520917701309178018217930771F0FB +:102150009093780180937701E0917901F0917A0171 +:10216000309721F00680F781E02D099408952091A1 +:102170007501309176018217930771F09093760183 +:1021800080937501E0917901F0917A01309721F007 +:102190000084F185E02D0994089508950C94CD10E4 +:1021A0000E94291C0E943E030C94AF1C9F92AF9288 +:1021B000BF92CF92DF92EF92FF920F931F93CF9334 +:1021C000DF9300D000D000D0CDB7DEB70E9465030A +:1021D0000DE010E0AA24A394B12C902E802F0E9431 +:1021E0005304980124583E4F6901F901F080F82604 +:1021F000A1F40150110988F78FEF89838A831B822C +:102200000E94321C8160782F9D838C8349815A8182 +:102210006B818D810E946D112FC09091DF0191FF24 +:1022200004C08E830E9459048E8125E030E0A50110 +:10223000022E01C0440F0A94EAF7E42E4F21C1F0A8 +:1022400029839A828E2191E009F490E09B830E9479 +:10225000321C8160782F9D838C8349815A816B81E8 +:102260008D810E946D11F6018081E826E08204C014 +:1022700021503109E0F6BDCF0E947D1E10917B01F7 +:102280000E947F101817B9F00E947F1080937B0185 +:1022900026960FB6F894DEBF0FBECDBFDF91CF916B +:1022A0001F910F91FF90EF90DF90CF90BF90AF9074 +:1022B0009F900C94790926960FB6F894DEBF0FBE56 +:1022C000CDBFDF91CF911F910F91FF90EF90DF90E5 +:1022D000CF90BF90AF909F900895CF93DF93CDB7ED +:1022E000DEB72B970FB6F894DEBF0FBECDBF4F837E +:1022F000588769877A878B87DE01119686E0FD0112 +:1023000011928A95E9F785E0FE01379601900D92CA +:102310008A95E1F749815A816B817C818D819E810B +:102320000E94B6172B960FB6F894DEBF0FBECDBF36 +:10233000DF91CF910895CF93882309F4C2C0C82FAD +:10234000823859F40E947F1081FDBBC089E30E944E +:10235000901A0E945D1B89E30CC0833879F40E94B7 +:102360007F1080FDAEC083E50E94901A0E945D1B25 +:1023700083E50E94D21ACF910C945D1B843859F4E6 +:102380000E947F1082FD9DC087E40E94901A0E94E7 +:102390005D1B87E4EECF8CEF8C0F813A48F48C2FD5 +:1023A0000E94C72081118DC08C2F0E94901AE3CF0C +:1023B00080E28C0F883048F4C77081E001C0880F3C +:1023C000CA95EAF70E94161BD6CF8BE58C0F833097 +:1023D00078F4C53A29F0C63A31F083E890E005C0B8 +:1023E00081E890E002C082E890E0CF910C94A110C7 +:1023F00088E58C0F833108F064C0C83A39F1C93AD6 +:1024000041F1CA3A49F1CB3A51F1CC3A59F1CD3ABE +:1024100061F1C03B69F1CE3A71F1CF3A79F1C13B3C +:1024200081F1C23B89F1C33B91F1C43B99F1C53BBA +:10243000A1F1C63BA9F1C73BB1F1C83BB9F1C93B1A +:10244000C1F1CA3BC9F180E090E038C082EE90E073 +:1024500035C089EE90E032C08AEE90E02FC085EB67 +:1024600090E02CC086EB90E029C087EB90E026C07E +:102470008CEC90E023C08DEC90E020C083E891E0EC +:102480001DC08AE891E01AC082E991E017C084E992 +:1024900091E014C081E292E011C083E292E00EC0AC +:1024A00084E292E00BC085E292E008C086E292E00E +:1024B00005C087E292E002C08AE292E0CF910C94DC +:1024C000B710CF910895882309F44BC0823859F48E +:1024D0000E947F1081FF45C089E30E94901A0E94EC +:1024E0005D1B89E30CC0833871F40E947F1080FF6C +:1024F00038C083E50E94901A0E945D1B83E50E940C +:10250000D21A0C945D1B843859F40E947F1082FF0C +:1025100028C087E40E94901A0E945D1B87E4EFCFD9 +:102520009CEF980F913A58F390E2980F983050F43E +:10253000877091E001C0990F8A95EAF7892F0E9470 +:102540001C1BDFCF9BE5980F933020F480E090E0D8 +:102550000C94A110885A833120F480E090E00C9410 +:10256000B7100895882321F00E94161B0C945D1B60 +:102570000895882321F00E941C1B0C945D1B089574 +:102580007F928F929F92AF92BF92CF92DF92EF9203 +:10259000FF920F931F93CF93DF931F92CDB7DEB7B8 +:1025A0007C01C62E772EFC01058102950F701281E9 +:1025B00011110E94331B0E94891A882379F011237C +:1025C00069F080E28C0D883048F082E00E94721A37 +:1025D0000E94891A91E0D82ED92601C0D12CE72D6E +:1025E000E295EF70F0E0E05AFF4F0C940A23872D3C +:1025F000807F072D0F70882311F00295007F112333 +:1026000089F0002309F490C180E28C0D883020F419 +:10261000802F0E94161B03C0802F0E94261B0E9441 +:102620005D1B82C18C2D0E946312002309F495C1A9 +:1026300080E28C0D883020F4802F0E941C1B03C088 +:10264000802F0E942C1B0E945D1B87C1972D907FBD +:10265000872D8F70903211F08295807FCC2021F0F1 +:10266000F1E0CF16B1F01EC0112349F0002309F4A8 +:1026700014C1013009F011C10E94461B6EC1002334 +:1026800019F0013009F469C189830E94491B8981CD +:102690000AC1112321F0023008F05FC1FEC0011110 +:1026A0005CC101C1112321F0002309F4F6C03CC133 +:1026B000002309F4F8C03EC1872D86958695837066 +:1026C00090E0009719F0019761F047C1112321F0C4 +:1026D0008C2D972D937002C080E090E00E94A11095 +:1026E0003CC1112321F08C2D972D937002C080E006 +:1026F00090E00E94B71031C18C2D112319F00E9477 +:10270000851D02C00E94ED1D0E94721E26C1872DEC +:10271000837009F052C0111120C18C2D82958695CD +:102720008770880F880F9C2D9F70892E912CA12C6B +:10273000B12C082E04C0880C991CAA1CBB1C0A943E +:10274000D2F7C4FE14C00FE010E020E030E0B90181 +:10275000A80104C0440F551F661F771F8A95D2F742 +:10276000CB01BA01609570958095909503C060E0AB +:1027700070E0CB01272D26952695237030E022307E +:10278000310569F02330310589F0682979298A29D2 +:102790009B292130310571F00E94FE18DEC06829A6 +:1027A00079298A299B290E941A19D7C00E94FE18EC +:1027B000C501B4010E94E218D0C0112319F0872D81 +:1027C000817001C08695882309F4C7C08C2D82953D +:1027D00086958770880F880F9C2D9F70892E912C6D +:1027E000A12CB12C082E04C0880C991CAA1CBB1C5F +:1027F0000A94D2F7C4FE14C00FE010E020E030E0ED +:10280000B901A80104C0440F551F661F771F8A95A0 +:10281000D2F7CB01BA01609570958095909503C071 +:1028200060E070E0CB01272D269526952370422F7E +:1028300050E04230510569F04330510589F0682974 +:1028400079298A299B294130510571F00E94D819B4 +:1028500084C0682979298A299B290E94F4197DC09E +:102860000E94D819C501B4010E94BC1976C08C2DF4 +:1028700090E0FC01E05EF109E531F10508F050C09F +:10288000E059FF4F0C940A230C2D0F70872D8F7188 +:10289000112331F00E945519802F0E94B2125DC0A1 +:1028A0000E947619802F0E94B91257C0112339F067 +:1028B000011153C0872D8F710E949B194EC00230A9 +:1028C00008F04BC0F7CF112339F0872D8F710E948C +:1028D000551943C01123C9F3872D8F710E947619B2 +:1028E0003CC0112329F0872D8F710E94401935C0FB +:1028F0000E94361932C0112351F0172D1F71812FFC +:102900000E94551963E0812F0E94691A26C081E058 +:102910000E94721A023008F182E00E94721A1DC0F1 +:10292000112331F0002389F28C2D0E949B1115C0D8 +:10293000002391F28C2D0E9463120FC0472D4F701F +:102940006C2DC7010E942F050E945A1806C0472D02 +:102950004F706C2DC7010E94E808DD20F9F00E943D +:10296000651A80FD1BC0F70112820E945F1A0E9447 +:102970005519C7010E94DD140E945F1A0F90DF9164 +:10298000CF911F910F91FF90EF90DF90CF90BF906C +:10299000AF909F908F907F900C9476190F90DF915D +:1029A000CF911F910F91FF90EF90DF90CF90BF904C +:1029B000AF909F908F907F9008950F931F93CF9328 +:1029C000DF93EC01888199812B813C81232BB9F025 +:1029D0009F3F11F48F3F99F0CE010E94710588232B +:1029E00071F0688179818A810E945B1A8C010E9452 +:1029F000101A0E94D718B801CE010E94C012DF91B0 +:102A0000CF911F910F9108950E94331B0E94431B89 +:102A10000E94081B0E945D1B0E94231F0E94721EC1 +:102A200080E090E00E94A11080E090E00C94B7104C +:102A30000E94231B0C9404150E94501A292F2295E2 +:102A40002F7030E02C3031054CF42A3031056CF415 +:102A50002250310922303105A8F407C02C3031054D +:102A600069F02F30310551F00DC0803F69F018F446 +:102A7000803E40F409C0843F29F406C093FB8827B8 +:102A800080F9089580E0089581E00895CF93DF9361 +:102A900000D000D01F92CDB7DEB70F900F900F90EF +:102AA0000F900F90DF91CF910895CF93DF9300D0D7 +:102AB00000D000D0CDB7DEB726960FB6F894DEBFB3 +:102AC0000FBECDBFDF91CF9108951F93CF93DF93BA +:102AD000C0918A0116E080918B01C81799F0D0E06F +:102AE0001C9FF0011D9FF00D1124E457FE4F408103 +:102AF000518162817381848195810E94551521964F +:102B0000C770E9CFDF91CF911F9108954091BC012B +:102B10005091BD016091BE017091BF018091C001D3 +:102B20009091C1010C9455158091C10182958F70CF +:102B300009F054C08091BE01882309F44FC08091F0 +:102B40008A01A0918B016091BC017091BD014091FF +:102B5000BF015091C001B6E08A1709F43FC090E070 +:102B600041155105C1F17F3F11F46F3FA1F1B89FAD +:102B7000F001B99FF00D1124E457FE4F218172132B +:102B80002AC02081621327C02281211124C0238101 +:102B900034812417350710F421503109241B350BDB +:102BA000283C3105C0F42091C1012F702061209391 +:102BB000C10126E0289FF001299FF00D1124EF5656 +:102BC000FE4F80818F70806180838CEB91E00E944A +:102BD000DD140C94651501968770BECF0895CF92D1 +:102BE000DF92EF92FF920F931F93CF93DF93CDB7B6 +:102BF000DEB762970FB6F894DEBF0FBECDBF8C0173 +:102C000085E0F801DE011D9601900D928A95E1F7AD +:102C1000D8014C9111965C91119712966C91129774 +:102C20001396CD90DC9014973091BC017091BD014A +:102C30008091BF019091C001009709F46BC17F3F63 +:102C400019F43F3F09F466C1E090BE01EE2009F49B +:102C5000C0C02091C101C816D90628F0F601E81BB2 +:102C6000F90BCF0104C0809590958C0D9D1DFF241C +:102C7000F394883C910578F0F12C207F09F0C6C0D0 +:102C80007C2DD98AC88A89890E9446158CEB91E0EF +:102C90000E94DD14B1C0822F807F09F046C07513F9 +:102CA00014C0341312C0611110C02F702061209322 +:102CB000C1010E9486158CEB91E00E94DD14809189 +:102CC000C101D80115968C932EC0CD2819F15F3F14 +:102CD00011F44F3FF9F0F62E61111CC080918A016A +:102CE00020918B0136E0821709F45AC090E0389F9A +:102CF000F001399FF00D1124E457FE4F71815713F5 +:102D000006C07081471303C07281711103C0019620 +:102D10008770E9CFF62E662309F418C18091C101AE +:102D200081608093C101F12C11C1751308C0341367 +:102D300006C0611104C08091C101D801C3C04D8794 +:102D40005E878D859E856A8B0E941C156A89882303 +:102D5000E1F16623D1F12091C101822F82958F701C +:102D600090E0029774F08091BC019091BD0198872A +:102D70008F831986DB86CA862C87CE0107960E9430 +:102D8000DD1486E0F801ACEBB1E001900D928A957C +:102D9000E1F70E9494150E948615FF24F394D6C093 +:102DA0004D875E878D859E850E94501A292F22951A +:102DB0002F7030E0223031050CF0BCC09F7009F05C +:102DC000B6C0805E883008F4C1C0C8010E94DD141E +:102DD000E4CFC816D90608F453C0F601E81BF90B76 +:102DE000CF01883C910508F450C0F12C7C2DD98A84 +:102DF000C88A89890E944615ECEBF1E086E0DF0184 +:102E00001D928A95E9F70E948615A0C0751314C01B +:102E1000341312C0611110C08091C101F801858383 +:102E2000C8010E94DD1486E0ECEBF1E0DF011D92A9 +:102E30008A95E9F7FE2C8AC04D875E878D859E8531 +:102E40006A8B0E941C156A89882309F4BECF662309 +:102E500009F4BBCF2091C101822F82958F7090E041 +:102E600002970CF48ECF8091BC019091BD019A83A2 +:102E700089831B82DD82CC822E83CE0101967FCF97 +:102E8000809590958C0D9D1DACCFF62E662309F490 +:102E90009CCF75132EC034132CC02091C10120FD8E +:102EA0001FC0822F82958F70D9F0D80115962C9370 +:102EB00015978F3049F08F5F982F9295907F822FD2 +:102EC0008F70892B15968C93C8010E94DD1486E0C3 +:102ED000F801ACEBB1E001900D928A95E1F793CF48 +:102EE00086E0F801ACEBB1E001900D928A95E1F734 +:102EF0002DC04D875E878D859E850E941C15811192 +:102F000040CF8091C10181608093C101C8010E94BE +:102F1000DD141CC0662309F458CF4D875E878D856C +:102F20009E850E941C15882309F44FCF2ACF81115A +:102F300048CF0CC0243031050CF047CF9F7009F406 +:102F400040CFF8019581907F09F03BCF8F2D62969D +:102F50000FB6F894DEBF0FBECDBFDF91CF911F91AA +:102F60000F91FF90EF90DF90CF9008951F93CF9334 +:102F7000DF93CDB7DEB72C970FB6F894DEBF0FBE48 +:102F8000CDBF4F83588769877A878B879C87CE010F +:102F900007960E94EF15882369F08F8198852A850E +:102FA0003B85232BF1F19F3F09F063C08F3F09F070 +:102FB00060C037C086E0FE013796DE0111960190B1 +:102FC0000D928A95E1F76F817885EA85FB853097C8 +:102FD00041F17F3F11F46F3F21F120918B0130E0EF +:102FE000C90101968770992740918A0150E08417A2 +:102FF000950709F447C069837A83FD83EC8396E0E3 +:10300000929FD001939FB00D1124A457BE4FFE0193 +:10301000319601900D929A95E1F780938B010E9471 +:10302000651516E080918A0190918B018917C1F195 +:10303000189FC001112484579E4F0E94EF158823CA +:1030400079F1E0918A011E9FF0011124E457FE4FAF +:103050004081518162817381848195810E945515DF +:1030600080918A0190E001968770992780938A0168 +:10307000D9CF4F81588569857A858B859C850E943B +:103080005515CFCF0E94181510928B0110928A010E +:10309000ECEBF1E086E0DF011D928A95E9F7C1CF04 +:1030A0002C960FB6F894DEBF0FBECDBFDF91CF9147 +:1030B0001F910895EF92FF920F931F93CF93DF9389 +:1030C0008C01892B09F46CC0F12CEE24E394E80107 +:1030D0002196F8018491843740F4843008F051C07F +:1030E000813081F0823019F15BC0853709F444C02A +:1030F000A8F19CE7980F903708F052C08F770E9494 +:10310000631241C00E5F1F4FFE01C49180E28C0F1D +:10311000883048F4C7708E2D01C0880FCA95EAF731 +:103120000E94361B14C08C2F0E949B112DC00E5F75 +:103130001F4FFE01C49180E28C0F883058F4C77095 +:103140008E2D01C0880FCA95EAF70E943C1B0E9491 +:103150005D1B1AC08C2F0E94631216C00E5F1F4F9A +:10316000FE01C491CC2381F08FE99FE00197F1F734 +:1031700000C00000C150F6CF0E5F1F4FFE01F4905B +:1031800003C00E949B118E018F2D882309F49FCFCD +:10319000EFE9FFE03197F1F700C000008150F5CF73 +:1031A000DF91CF911F910F91FF90EF9008950895B7 +:1031B0006093C6017093C7018093C8019093C901C1 +:1031C0000C9404150F931F930091C6011091C70131 +:1031D0002091C8013091C901DC01CB01802B912BDA +:1031E000A22BB32B8093C6019093C701A093C80173 +:1031F000B093C9011F910F910C9404150F931F9365 +:103200000091C6011091C7012091C8013091C901F8 +:10321000DC01CB0180239123A223B3238093C60139 +:103220009093C701A093C801B093C9011F910F915A +:103230000C9404150F931F930091C6011091C701C0 +:103240002091C8013091C901DC01CB018027912771 +:10325000A227B3278093C6019093C701A093C8010A +:10326000B093C9011F910F910C9404151092C201E3 +:103270001092C3011092C4011092C5010C94041560 +:1032800041E050E060E070E004C0440F551F661F4D +:10329000771F8A95D2F74093C2015093C301609380 +:1032A000C4017093C5010C94041541E050E060E046 +:1032B00070E004C0440F551F661F771F8A95D2F730 +:1032C0008091C2019091C301A091C401B091C50148 +:1032D000482B592B6A2B7B2B4093C2015093C3017F +:1032E0006093C4017093C5010C94041541E050E053 +:1032F00060E070E004C0440F551F661F771F8A9579 +:10330000D2F740955095609570958091C20190914B +:10331000C301A091C401B091C501482359236A2378 +:103320007B234093C2015093C3016093C401709307 +:10333000C5010C94041541E050E060E070E004C069 +:10334000440F551F661F771F8A95D2F78091C201DF +:103350009091C301A091C401B091C501482759279C +:103360006A277B274093C2015093C3016093C40135 +:103370007093C5010C9404150F931F930091C20123 +:103380001091C3012091C4013091C501DC01CB0132 +:10339000802B912BA22BB32B8093C2019093C3015E +:1033A000A093C401B093C5011F910F910C94041513 +:1033B0000F931F930091C2011091C3012091C4018A +:1033C0003091C501DC01CB0180239123A223B323DB +:1033D0008093C2019093C301A093C401B093C5012F +:1033E0001F910F910C9404150F931F930091C2012C +:1033F0001091C3012091C4013091C501DC01CB01C2 +:1034000080279127A227B3278093C2019093C301FD +:10341000A093C401B093C5011F910F910C940415A2 +:103420000895CF92DF92EF92FF920F931F93CF9365 +:10343000DF938C01C090C601D090C701E090C80115 +:10344000F090C9018091C2019091C301A091C40183 +:10345000B091C501C82AD92AEA2AFB2ACFE1D0E0D7 +:10346000D701C6010C2E04C0B695A79597958795F0 +:103470000A94D2F780FF06C0B8018C2F0E9467071C +:10348000019721F4219760F780E001C08C2FDF9134 +:10349000CF911F910F91FF90EF90DF90CF90089503 +:1034A000CF93DF93EC010E94111ABE010E946707BF +:1034B000DF91CF910895CB010E94501A0895809119 +:1034C000CA0185958595859508958091CA01877073 +:1034D000089598E0899F90011124262B2093CA011A +:1034E0000C9455192091CA01809582238093CA01BA +:1034F000982F977069F430E0482F552747FD509575 +:103500002417350729F08595859585950C947619AE +:1035100008959091CA01977081E009F480E00895C0 +:1035200090910C01992321F090910D01911109C006 +:1035300020910E0130910F01F90132969FEF40E08A +:103540001FC0982F9695969596959F3050F5E091CF +:103550000E01F0910F01E90FF11D877021E030E0BD +:10356000A90102C0440F551F8A95E2F7CA01918153 +:10357000892B818308959F3F39F04F5F4E3041F092 +:1035800051915813F8CF0DC05111F7CF942FF5CFAB +:103590009F3F39F0F901E90FF11D97FDFA958283FC +:1035A0000895089590910C01992321F090910D01B7 +:1035B000911109C020910E0130910F01F90132964D +:1035C000205F3F4F1FC0982F9695969596959F30F8 +:1035D000F0F4E0910E01F0910F01E90FF11D8770F9 +:1035E00021E030E0A90102C0440F551F8A95E2F79F +:1035F000CA01809591818923818308953196E217CC +:10360000F30729F090819813F9CF1082F7CF08952E +:1036100081E090E0E0910E01F0910F01E80FF91FB9 +:103620001082019680319105A9F708959091DE01ED +:10363000892B8093DE01089580959091DE01892386 +:103640008093DE0108951092DE0108959091DD01CE +:10365000892B8093DD01089580959091DD01892368 +:103660008093DD0108951092DD0108959091DC01B1 +:10367000892B8093DC01089580959091DC0189234A +:103680008093DC0108951092DC0108958093CB01B2 +:1036900008951092CB01089580910E0190910F0131 +:1036A000FC0131969C01205F3F4F80E09191911188 +:1036B0008F5FE217F307D1F70895E0910E01F091C3 +:1036C0000F018091DE018083E0910E01F0910F01E6 +:1036D00090818091DD01892B8083E0910E01F09132 +:1036E0000F0190818091DC01892B80838091CB0137 +:1036F000882361F0E0910E01F0910F019081892BF8 +:1037000080830E944C1B81111092CB0180910E018D +:1037100090910F010C948B1020E0009739F0AC01D0 +:1037200041505109842395232F5FF7CF822F0895AD +:10373000CF92DF92EF92FF926C01EE24FF24C1142E +:10374000D104E104F10421F0C701B60120E101C078 +:1037500020E0C72ED82EE92EFF24C114D104E104A5 +:10376000F10419F0285FC701B6016B017C0154E038 +:10377000F694E794D794C7945A95D1F7C114D1041D +:10378000E104F10419F02C5FC701B6016B017C0163 +:1037900042E0F694E794D794C7944A95D1F7C114C0 +:1037A000D104E104F10419F02E5FC701B601DC0178 +:1037B000CB01B695A79597958795892B8A2B8B2B4F +:1037C00009F02F5F822FFF90EF90DF90CF90089548 +:1037D0008091F801843039F11092E00120E488E111 +:1037E00090E00FB6F894A895809360000FBE2093E8 +:1037F000600080E00E94790983B7817F846083BF85 +:1038000083B7816083BF7894889583B78E7F83BFA9 +:103810000FB6F894A895809160008861809360004D +:10382000109260000FBE089508950E9452030E94F6 +:1038300065030E94141C0E945A0491E0811101C08A +:1038400090E0892F08950E9418150E947F100C9413 +:10385000790982E084BD93E095BD9AEF97BD80938E +:103860006E0008952FB7F8948091E1019091E201E4 +:10387000A091E301B091E4012FBF0895CF92DF92B0 +:10388000EF92FF920F931F932FB7F8944091E101AD +:103890005091E2016091E3017091E4012FBF6A0150 +:1038A0007B01EE24FF248C0120E030E0C016D1061D +:1038B000E206F30610F4415051099A01281B390B16 +:1038C000C9011F910F91FF90EF90DF90CF90089565 +:1038D0001F920F920FB60F9211248F939F93AF9365 +:1038E000BF938091E1019091E201A091E301B09139 +:1038F000E4010196A11DB11D8093E1019093E201C5 +:10390000A093E301B093E401BF91AF919F918F9198 +:103910000F900FBE0F901F9018950E947C0DF89489 +:103920002FEF87EA91E6215080409040E1F700C0F8 +:10393000000087E090EBDC0180930102909302028B +:10394000A0930302B09304029CE088E10FB6F894C0 +:10395000A895809360000FBE90936000FFCF0E94F7 +:10396000E71C811102C00E94CD1C0E94F21C8093B2 +:10397000DF010E94FA1C90E09093F3018093F20122 +:1039800087FB882780F980930D010E94F61C682F21 +:1039900070E080E090E00C94D8186DEE7EEF80E04F +:1039A00090E00E94432360E082E090E00E94322396 +:1039B00060E083E090E00E94322360E084E090E0E9 +:1039C0000E94322360E085E090E00C94322380E096 +:1039D00090E00E942C2321E08D3E9E4F09F020E0D4 +:1039E000822F089582E090E00C94242383E090E0FD +:1039F0000C94242384E090E00C942423682F84E02A +:103A000090E00C9432238091E70180FF0BC060911D +:103A1000130185E0689FB001112475956795759530 +:103A200067952BC081FF09C06091130185E0689FF5 +:103A3000B00111247595679520C082FF07C0609181 +:103A4000130185E0689FB001112417C09091E8012F +:103A50009923D1F060911201961788F720911301F4 +:103A600085E0289F90011124929FA001939F500D03 +:103A7000112470E0CA010E94F6226038710540F4FA +:103A80006115710539F002C065E070E0862F089578 +:103A90008FE7089581E008958091E70180FF08C0D5 +:103AA0006091110170E0759567957595679521C0D6 +:103AB00081FF06C06091110170E07595679519C08E +:103AC00082FF04C06091110170E010C09091E80184 +:103AD0009923C1F0609110019617A0F78091110110 +:103AE000899FC001112470E00E94F62260387105A0 +:103AF00028F46115710521F0862F08958FE7089548 +:103B000081E0089561E070E0F4CF803F21F40E94ED +:103B1000031D819504C0813F29F40E94031D8093F9 +:103B2000EB010895823F21F40E94031D819504C09A +:103B3000833F29F40E94031D8093EA010895893F81 +:103B400019F40E944C1D05C08A3F31F40E944C1D9F +:103B500081958093EC0108958B3F21F40E944C1DC8 +:103B6000819504C08C3F29F40E944C1D8093ED0187 +:103B70000895843F21F48091E901816017C0853F59 +:103B800021F48091E901826011C0863F21F4809187 +:103B9000E90184600BC0873F21F48091E9018860CE +:103BA00005C0883F31F48091E90180618093E9018B +:103BB00008958D3F21F48091E70181600BC08E3F15 +:103BC00021F48091E701826005C08F3F29F4809144 +:103BD000E70184608093E7010895803F39F4809184 +:103BE000EB0187FF6CC01092EB0169C0813F29F4A3 +:103BF0008091EB011816BCF362C09091EA01823FFC +:103C000029F497FF5CC01092EA0159C0833F19F470 +:103C10001916CCF354C0893F41F48091EC01181679 +:103C20000CF04DC01092EC014AC08A3F29F48091FB +:103C3000EC0187FF44C0F6CF8B3F39F48091ED0152 +:103C400087FF3DC01092ED013AC08C3F29F480916E +:103C5000ED011816BCF333C0843F21F48091E901D3 +:103C60008E7F17C0853F21F48091E9018D7F11C0BF +:103C7000863F21F48091E9018B7F0BC0873F21F4BF +:103C80008091E901877F05C0883F31F48091E90187 +:103C90008F7E8093E90113C08D3F21F48091E7016D +:103CA0008E7F0BC08E3F21F48091E7018D7F05C090 +:103CB0008F3F29F48091E7018B7F8093E70180910A +:103CC000EA0181110EC08091EB0181110AC080913F +:103CD000EC01811106C08091ED01811102C01092AA +:103CE000E801089589EE91E00E9496100E94321C2E +:103CF0009093E6018093E50108951F93CF93DF939E +:103D00008091E5019091E6010E943E1CAC019091EA +:103D1000E801992321F02091140130E006C02091A0 +:103D200015018AE0289F900111244217530708F4D7 +:103D300086C08091EA01C091EB01D091EC01109115 +:103D4000ED01811107C0C11176C0D11174C01111EC +:103D500072C075C09F3F19F09F5F9093E8011816DD +:103D600024F40E94031D8093EA018091EA0187FFF9 +:103D700005C00E94031D81958093EA011C1624F45E +:103D80000E94031D8093EB018091EB0187FF05C02A +:103D90000E94031D81958093EB016091EA016623E7 +:103DA00039F1C091EB01CC2319F1772767FD7095AC +:103DB000872F972F0E94FD2123E333E343E35FE343 +:103DC0000E9461220E94C5216093EA016C2F77272F +:103DD00067FD7095872F972F0E94FD2123E333E322 +:103DE00043E35FE30E9461220E94C5216093EB01DF +:103DF0001D1624F40E944C1D8093EC018091EC016F +:103E000087FF05C00E944C1D81958093EC0111161F +:103E100024F40E944C1D8093ED018091ED0187FFF9 +:103E200005C00E944C1D81958093ED01DF91CF91DB +:103E30001F910C94721E9F3F09F08ECF96CFDF9199 +:103E4000CF911F910895E9EEF1E085E0DF011D9229 +:103E50008A95E9F71092E8011092E70108958330FE +:103E600081F128F4813059F08230D1F00895853005 +:103E700009F449C0B8F1863009F456C0089580911C +:103E80001501262F30E0280F311D2F3F310524F476 +:103E9000680F6093150108958FEF809315010895C1 +:103EA00080911401262F30E0280F311D2F3F31055E +:103EB00024F4680F6093140108958FEF8093140128 +:103EC000089580911301262F30E0280F311D2F3FD8 +:103ED000310524F4680F6093130108958FEF8093E8 +:103EE0001301089580911201262F30E0280F311D13 +:103EF0002F3F310524F4680F6093120108958FEF6E +:103F000080931201089580911101262F30E0280F2F +:103F1000311D2F3F310524F4680F6093110108957E +:103F20008FEF80931101089580911001262F30E0CA +:103F3000280F311D2F3F310524F4680F60931001C5 +:103F400008958FEF809310010895833011F128F4C4 +:103F5000813049F0823091F00895853081F120F16F +:103F60008630C1F1089580911501681720F4861BF1 +:103F70008093150108951092150108958091140100 +:103F8000681720F4861B8093140108951092140181 +:103F9000089580911301681720F4861B8093130104 +:103FA000089510921301089580911201681720F46A +:103FB000861B80931201089510921201089580913A +:103FC0001101681720F4861B809311010895109247 +:103FD0001101089580911001681720F4861B8093C9 +:103FE000100108951092100108950F931F938D31C1 +:103FF00009F471C008F045C0803109F485C008F5A6 +:10400000873009F46FC068F4863009F0ADC0809144 +:10401000DF01817F8E7F8093DF0181E08093EF015C +:10402000A4C08B3009F49EC08E3009F09DC08091F1 +:10403000DF0182FB222720F991E0922790FB82F991 +:104040006CC0863109F48EC060F4813109F08CC0F7 +:104050000E94181590910D0181E0892780930D0130 +:1040600081C0893109F47EC08B3109F07DC0809117 +:10407000DF0181FB222720F991E0922790FB81F953 +:104080004CC0853309F466C048F4873209F462C035 +:1040900008F44FC0893209F45DC066C0833438F437 +:1040A0008A3308F044C0883309F45CC05DC08334AF +:1040B00009F450C0883409F057C00E9418150FEF5A +:1040C00013ED20E3015010402040E1F700C0000054 +:1040D0000E948D1C47C00E947F210E947F100E9479 +:1040E000790940C09091DF01892F8095817080FB14 +:1040F00090F929F0966098609093DF0136C0997F1F +:10410000977F9093DF012EC08091DF0183FB2227F0 +:1041100020F991E0922790FB83F98093DF019923A6 +:1041200009F18091DF0181608093DF011BC0895319 +:1041300001C08D5141E050E060E070E08A019B01D8 +:1041400004C0000F111F221F331F8A95D2F7C90127 +:10415000B80104C061E070E080E090E00E94D818EF +:104160000E94181581E001C080E01F910F91089511 +:1041700080E0089580E008958E518A3030F4E82F71 +:10418000F0E0E65DFE4F8081089580E00895CF93D2 +:10419000C82F8091EF01813079F018F08230E9F179 +:1041A00086C0E0910E01F0910F018081813169F0AC +:1041B000823209F07EC009C0E0910E01F0910F013A +:1041C0008081813111F0823261F48C2F0E94B820FD +:1041D000811104C08C2F0E94F51F1DC081E090E06A +:1041E0001AC08C2F0E94BA20811114C0C43179F0FA +:1041F00048F4CB3079F0C03109F05FC082E08093A1 +:10420000EF0108C0C93219F0C83321F056C010922E +:10421000EF0153C081E0817052C0C93281F110F5C5 +:10422000C43169F1A8F4C73009F045C08AE0809331 +:10423000150194E19093140193E0909313018093FE +:10424000120188E08093110188E28093100133C04D +:1042500082EE8C0F863078F58C2F0E94BC208093E4 +:10426000EE0129C0CE34E9F020F4CB3421F56AE028 +:1042700013C0C13579F0C235F1F461E00DC0809111 +:10428000EE01882319F01092EE0115C081E08093B1 +:10429000EF0115C061E006C08091EE010E942F1F62 +:1042A0000AC06AE08091EE010E94A51F04C010922E +:1042B000EF0180E004C081E002C080E0ACCFCF918C +:1042C0000895E1E8F0E080818860808380818160EA +:1042D00080838FB7F89493E09093890090ED90934A +:1042E00088008FBF0895EFE6F0E0808182608083D0 +:1042F0000895EFE6F0E080818D7F80830895EFE6FA +:10430000F0E0908182E08927808308951F920F92C8 +:104310000FB60F9211242F933F934F935F936F9398 +:104320007F938F939F93AF93BF93EF93FF9380916E +:10433000F0019091F10101969093F1018093F001C9 +:10434000811103C082E00E947909E091F101E695B4 +:10435000E695F0E0EB54FB4FE4918091F0018E1371 +:1043600003C080E00E947909FF91EF91BF91AF9166 +:104370009F918F917F916F915F914F913F912F917D +:104380000F900FBE0F901F9018950E94CC2168943B +:10439000B1110C945B2208950E94402288F09F572F +:1043A00098F0B92F9927B751B0F0E1F0660F771F59 +:1043B000881F991F1AF0BA95C9F714C0B13091F04F +:1043C0000E945A22B1E008950C945A22672F782F48 +:1043D0008827B85F39F0B93FCCF386957795679514 +:1043E000B395D9F73EF490958095709561957F4F80 +:1043F0008F4F9F4F0895E89409C097FB3EF4909526 +:104400008095709561957F4F8F4F9F4F9923A9F0AD +:10441000F92F96E9BB279395F6958795779567953C +:10442000B795F111F8CFFAF4BB0F11F460FF1BC080 +:104430006F5F7F4F8F4F9F4F16C0882311F096E913 +:1044400011C0772321F09EE8872F762F05C06623C1 +:1044500071F096E8862F70E060E02AF09A95660F7A +:10446000771F881FDAF7880F9695879597F9089533 +:1044700057FD9058440F551F59F05F3F71F0479515 +:10448000880F97FB991F61F09F3F79F087950895FA +:10449000121613061406551FF2CF4695F1DF08C019 +:1044A000161617061806991FF1CF86957105610536 +:1044B00008940895E894BB2766277727CB0197F9DE +:1044C00008950E9474220C94E5220E94D72238F0AD +:1044D0000E94DE2220F0952311F00C94CE220C9441 +:1044E000D42211240C945B220E94382270F3959FF1 +:1044F000C1F3950F50E0551F629FF001729FBB27DB +:10450000F00DB11D639FAA27F00DB11DAA1F649F76 +:104510006627B00DA11D661F829F2227B00DA11D29 +:10452000621F739FB00DA11D621F839FA00D611DAF +:10453000221F749F3327A00D611D231F849F600DD0 +:10454000211D822F762F6A2F11249F5750409AF0F9 +:10455000F1F088234AF0EE0FFF1FBB1F661F771F85 +:10456000881F91505040A9F79E3F510580F00C9450 +:10457000CE220C945B225F3FE4F3983ED4F3869501 +:1045800077956795B795F795E7959F5FC1F7FE2BF0 +:10459000880F911D9695879597F9089597F99F67CC +:1045A00080E870E060E008959FEF80EC08950024BB +:1045B0000A941616170618060906089500240A9488 +:1045C00012161306140605060895092E0394000C0E +:1045D00011F4882352F0BB0F40F4BF2B11F460FF9D +:1045E00004C06F5F7F4F8F4F9F4F089597FB072E3B +:1045F00016F4009407D077FD09D00E94102307FC21 +:1046000005D03EF4909581959F4F089570956195E2 +:104610007F4F0895EE0FFF1F0590F491E02D099450 +:10462000AA1BBB1B51E107C0AA1FBB1FA617B707D8 +:1046300010F0A61BB70B881F991F5A95A9F78095F4 +:104640009095BC01CD010895F999FECF92BD81BD31 +:10465000F89A992780B50895A8E1B0E042E050E0CB +:104660000C944B23262FF999FECF92BD81BDF89A69 +:10467000019700B4021631F020BD0FB6F894FA9AF3 +:10468000F99A0FBE08950196272F0E9433230C94A8 +:104690003223DC01CB01FC01F999FECF06C0F2BD4B +:1046A000E1BDF89A319600B40D9241505040B8F7F0 +:0646B0000895F894FFCF0D +:1046B60002207B09090AE609B2097E090101CC013B +:1046C60028080A03140A404D363975042804F203F3 +:1046D600B9034C0365037E03970301020304050631 +:0446E60007080900B8 +:00000001FF diff --git a/keyboards/ergodox/keymaps/tkuichooseyou/keymap.c b/keyboards/ergodox/keymaps/tkuichooseyou/keymap.c new file mode 100644 index 000000000..87b77e42e --- /dev/null +++ b/keyboards/ergodox/keymaps/tkuichooseyou/keymap.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 |CMD+{ | | CMD+}| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | Hyper| | Meh | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * |Ctrl/Esc| A | S | D | F | G |------| |------| H | J | K | L |; / L2| LGui | + * |--------+------+------+------+------+------| LGui | | LGui |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | App | LGui | | Del |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, LGUI(LSFT(KC_LBRC)), + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, ALL_T(KC_NO), + 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, KC_LGUI, + 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 + LGUI(LSFT(KC_RBRC)), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + MEH_T(KC_NO), 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, + KC_LGUI, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1, + KC_DELT, 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/keyboards/ergodox/keymaps/tm2030/keymap.c b/keyboards/ergodox/keymaps/tm2030/keymap.c new file mode 100644 index 000000000..ca8075226 --- /dev/null +++ b/keyboards/ergodox/keymaps/tm2030/keymap.c @@ -0,0 +1,242 @@ +/* TypeMatrix-2030-like keymap */ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "led.h" + +#define BASE 0 // default layer +#define DVRK 1 // Dvorak layer +#define NUMR 8 // numeric layer +#define FNLR 9 // fn layer + +#define MDBL0 1 +#define MFNLR 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | Del | | Del | 6 | 7 | 8 | 9 | 0 | ] | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T |Backsp| |Backsp| Y | U | I | O | P | [ | + * |--------+------+------+------+------+------|ace | |ace |------+------+------+------+------+--------| + * | LShift | A | S | D | F | G |------| |------| H | J | K | L | ; | '/Shift| + * |--------+------+------+------+------+------|Enter | |Enter |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | \/Shift| + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |LCtrl | fn | LGui | Play |App/Alt| | RAlt | - | Home | = |End/Ctl| + * `-----------------------------------' `-----------------------------------' + * ,--------------. ,-------------. + * |Esc/Alt| num | | Left |Right | + * ,------+-------+------| |------+------+------. + * | | | PgUp | | Up | | | + * |Space |LShift |------| |------|RShift|Space | + * | | | PgDn | | Down | | | + * `---------------------' `--------------------' + */ +// 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_Q, KC_W, KC_E, KC_R, KC_T, KC_BSPC, + KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ENT, + KC_LCTL, M(MFNLR), KC_LGUI,KC_MPLY,ALT_T(KC_APP), + + ALT_T(KC_ESC), TG(NUMR), + KC_PGUP, + KC_SPC, KC_LSFT, KC_PGDN, + + // right hand + KC_DELT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RBRC, + KC_BSPC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, SFT_T(KC_QUOT), + KC_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_BSLS), + KC_RALT, KC_MINS, KC_HOME, KC_EQL, CTL_T(KC_END), + + KC_LEFT, KC_RGHT, + KC_UP, + KC_DOWN, KC_RSFT, KC_SPC + ), +/* Dvorak layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | Del | | Del | 6 | 7 | 8 | 9 | 0 | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | ' | , | . | P | Y |Backsp| |Backsp| F | G | C | R | L | / | + * |--------+------+------+------+------+------|ace | |ace |------+------+------+------+------+--------| + * | LShift | A | O | E | U | I |------| |------| D | H | T | N | S | -/Shift| + * |--------+------+------+------+------+------|Enter | |Enter |------+------+------+------+------+--------| + * | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | \/Shift| + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |LCtrl | fn | LGui | Play |App/Alt| | RAlt | [ | Home | ] |End/Ctl| + * `-----------------------------------' `-----------------------------------' + * ,--------------. ,-------------. + * |Esc/Alt| num | | Left |Right | + * ,------+-------+------| |------+------+------. + * | | | PgUp | | Up | | | + * |Space |LShift |------| |------|RShift|Space | + * | | | PgDn | | Down | | | + * `---------------------' `--------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[DVRK] = 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, KC_BSPC, + KC_LSFT, KC_A, KC_O, KC_E, KC_U, KC_I, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_ENT, + KC_LCTL, M(MFNLR), KC_LGUI, KC_MPLY, ALT_T(KC_APP), + + ALT_T(KC_ESC), TG(NUMR), + KC_PGUP, + KC_SPC, KC_LSFT, KC_PGDN, + + // right hand + KC_DELT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + KC_BSPC, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, + KC_D, KC_H, KC_T, KC_N, KC_S, SFT_T(KC_MINS), + KC_ENT, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_T(KC_BSLS), + KC_RALT, KC_LBRC, KC_HOME, KC_RBRC, CTL_T(KC_END), + + KC_LEFT, KC_RGHT, + KC_UP, + KC_DOWN, KC_RSFT, KC_SPC + ), +/* Numeric Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | | | Tab | / | * | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | F6 | F7 | F8 | F9 | F10 | | | | | Home | 7 | 8 | 9 | + | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | F11 | F12 | | | |------| |------| Up | End | 4 | 5 | 6 | + | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | Left | Down | Right| 1 | 2 | 3 |KpEnter | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | 0 | 00 | . |Etr/Ctl| + * `----------------------------------' `-----------------------------------' + * ,-------------. ,-------------. + * | | | |n.lock|c.lock| + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[NUMR] = KEYMAP( + // left hand + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, + KC_TRNS, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_TAB, KC_PSLS, KC_PAST, KC_PMNS, + KC_TRNS, KC_TRNS, KC_HOME, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_UP, KC_END, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LEFT, KC_DOWN, KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_TRNS, KC_P0, M(MDBL0),KC_PDOT, CTL_T(KC_PENT), + + KC_NLCK, KC_CAPS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* fn layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | |Insert| |Insert|Eject |Power |Sleep | Wake |PrtScr|ScrollLk| + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | |VolUp | | | | | | | | Pause | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | Calc | Mail |Browsr|------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | cut | copy |paste | Mute |VolDn | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | Next | | | + * | Mute | |------| |------| | | + * | | | | | Prev | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[FNLR] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_MAIL, KC_WHOM, + KC_TRNS, KC_TRNS, LSFT(KC_DELT),LCTL(KC_INS),LSFT(KC_INS), KC_MUTE, KC_VOLD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_MUTE, KC_TRNS, KC_TRNS, + // right hand + KC_INS, KC_EJCT, KC_PWR, KC_SLEP, KC_WAKE, KC_PSCR, KC_SLCK, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_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_MNXT, KC_TRNS, KC_TRNS +), +}; + +const uint16_t PROGMEM fn_actions[] = { +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case MDBL0: + if (record->event.pressed) { + return MACRO( I(25), T(P0), T(P0), END ); + } + break; + case MFNLR: + layer_invert(NUMR); + layer_invert(FNLR); + 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) { + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + // led 1: numeric layer + if (layer_state & (1 << NUMR)) { + ergodox_right_led_1_on(); + } + // led 2: Dvorak layer + if (default_layer_state == 1 << DVRK) { + ergodox_right_led_2_on(); + } + // led 3: caps lock + if (host_keyboard_leds() & (1<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/keyboards/ergodox/keymaps/tonyabra_osx/readme.md b/keyboards/ergodox/keymaps/tonyabra_osx/readme.md new file mode 100644 index 000000000..f9d76efc2 --- /dev/null +++ b/keyboards/ergodox/keymaps/tonyabra_osx/readme.md @@ -0,0 +1,5 @@ +# ErgoDox EZ OS X Simplified Configuration + +This keyboard configuration replaces the hyper and meh keys with the command key. It also removes all of the meta keys that require a "hold" because I found that I hesitate when I type, which can accidentally fire those combinations. On the upper left of the left hand, I mimicked the Mac placement of tab and escape, and on the upper right of the right hand, I placed an additional enter key for convenience when breezing through prompts. + +This is my standard working configuration for now, but I can see myself tweaking it as I use it more. I highly recommend you do the same. \ No newline at end of file diff --git a/keyboards/ergodox/keymaps/townk_osx/config.h b/keyboards/ergodox/keymaps/townk_osx/config.h new file mode 100644 index 000000000..58ba690af --- /dev/null +++ b/keyboards/ergodox/keymaps/townk_osx/config.h @@ -0,0 +1,92 @@ +/* +Copyright 2012 Jun Wako +Copyright 2013 Oleg Kostyuk + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x1307 +#define DEVICE_VER 0x0001 +#define MANUFACTURER ErgoDox EZ +#define PRODUCT ErgoDox EZ +#define DESCRIPTION t.m.k. keyboard firmware for Ergodox + +/* key matrix size */ +#define MATRIX_ROWS 14 +#define MATRIX_COLS 6 + +#define MOUSEKEY_DELAY 100 +#define MOUSEKEY_INTERVAL 20 +#define MOUSEKEY_MAX_SPEED 3 +#define MOUSEKEY_TIME_TO_MAX 10 + +#define TAPPING_TOGGLE 1 + +#define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } +#define ROWS (int []){ D0, D5, B5, B6 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 2 +#define TAPPING_TERM 200 +#define IGNORE_MOD_TAP_INTERRUPT // this makes it possible to do rolling combos (zx) with keys that convert to other keys on hold (z becomes ctrl when you hold it, and when this option isn't enabled, z rapidly followed by x actually sends Ctrl-x. That's bad.) + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || \ + keyboard_report->mods == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) \ +) + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION +//#define DEBUG_MATRIX_SCAN_RATE +#define ONESHOT_TAP_TOGGLE 2 +#define ONESHOT_TIMEOUT 3000 + +#endif diff --git a/keyboards/ergodox/keymaps/townk_osx/keymap.c b/keyboards/ergodox/keymaps/townk_osx/keymap.c new file mode 100644 index 000000000..07e58a491 --- /dev/null +++ b/keyboards/ergodox/keymaps/townk_osx/keymap.c @@ -0,0 +1,285 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "action_util.h" +#include "led.h" +#include "keymap.h" +#include "timer.h" + +/* + +# Why this Layout + +This layout was based on Kinesis layout and other ErgoDox user layouts +available. It's target to be used on a MacOS but I'm pretty sure it can be +addapted to Windows and/or Linux easily. + +## Function Key + +The `fn` key work almost like it would in any other keyboard with the exception +it has a semi-sticky behavior. What does that mean? + +Well, if you press the `fn` and release it, the keyboard will be put on the +_function layout_ and the next key stroke will be processed as if the `fn` key +was pressed. Aftwards, the leyout get back to _normal_. If you hold `fn` and +press any other key, when you release them, the keyboard leyout is back to +_normal_. + +While pressing the `fn` with the left hand and strikeing the other keys on the +right hand is farly easy, the same cannot being said for the other keys on the +left side. So, instead of trying to do contorcionism with my left hand, I +decided to do a semi-sticky version of `fn`. This way, I can press the `fn` +key with my pinky, release it and press the `1` key to issue an `F1` to the +operating system. + +## Key-Pad Key + +The `key pad` key is a layout switch key. If pressed, it will put the keyboard +on the _key pad layout_ and stay there until key is pressed again. + +This is used to make the keyboard behave mostly like a **num pad keyboard**. + +## Notes +- Regardless in which layout you are, keys from other layouts are not + accessible. This means that if you are on the _key pad layout_, the left hand + will be pretty much unusable. + Of course that like anything else, there are exceptions to this rule. + Modifiers should remain accessible throughout the layers. +- The _shift key_ is, like the _function key_, also configured to have a sticky + behavior. +- All sticky keys have a timeout of 3 seconds. + +*/ +#define BASE 0 +#define KEYPAD 1 +#define FN 2 + +#define MACRO_TMUX_ESC 10 +#define MACRO_TMUX_PASTE 11 +#define MACRO_OSX_COPY 12 +#define MACRO_OSX_PASTE 13 + +#define M_TESC M(MACRO_TMUX_ESC) +#define M_TPASTE M(MACRO_TMUX_PASTE) +#define M_OSXCPY M(MACRO_OSX_COPY) +#define M_OSXPST M(MACRO_OSX_PASTE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Base Layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | `~ | 1 | 2 | 3 | 4 | 5 | ESC | | Pwr | 6 | 7 | 8 | 9 | 0 | - _ | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | Tab | Q | W | E | R | T | F16 | | F17 | Y | U | I | O | P | = + | + * |-----------+------+------+------+------+------| Meh | | Meh |------+------+------+------+------+-----------| + * | \ (Ctrl) | A | S | D | F | G |------| |------| H | J | K | L | ; | ' " (Ctrl)| + * |-----------+------+------+------+------+------| F18 | | F19 |------+------+------+------+------+-----------| + * | LShift | Z | X | C | V | B | Hyper| | Hyper| N | M | , | . | / | RShift | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | FN | KPAD |LCtrl | LAlt | LGui | | RGui | RAlt | RCtrl| KPAD | FN | + * `-----------------------------------' `-----------------------------------' + * ,-------------. ,-------------. + * | M(0) | M(1) | | M(2) | M(3) | + * ,------|------|------| |------+------+------. + * | | | Home | | PgUp | | | + * |Backsp| Del |------| |------| Enter| Space| + * | | | End | | PgDn | | | + * `--------------------' `--------------------' + * + * M(0) = Ctrk+A Esc + * (this is used to issue the Esc key to the Tmux application) + * M(1) = Ctrk+A P + * (this is used to issue the Paste key to the Tmux application) + * M(2) = Cmd+C + * M(3) = Cmd+V + */ +[BASE]=KEYMAP(//left half + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, MEH_T(KC_F16), + CTL_T(KC_BSLS), KC_A, KC_S, KC_D, KC_F, KC_G, + KC_FN2, KC_Z, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_F18), + KC_FN1, TG(KEYPAD), KC_LCTRL, KC_LALT, KC_LGUI, + M_TESC, M_TPASTE, + KC_HOME, + KC_BSPC, KC_DELT, KC_END, + //right half + KC_POWER, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + MEH_T(KC_F17), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_EQL, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, CTL_T(KC_QUOT), + ALL_T(KC_F19), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_FN2, + KC_RGUI, KC_RALT, CTL_T(KC_LBRC), KC_FN3, KC_FN1, + M_OSXCPY, M_OSXPST, + KC_PGUP, + KC_PGDN, KC_ENT, KC_SPC), + +/* Keymap 1: KeyPad Layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | | | LClk | RClk | MClk | | | | BTab | Clear| / | * | ^ | ( | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | M.Accel 2 | |ScrlUp| U |ScrlDn| | | | Tab | 7 | 8 | 9 | + | ) | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | M.Accel 1 | | L | D | R | |------| |------| 4 | 5 | 6 | - | | | + * |-----------+------+------+------+------+------| | |Return|------+------+------+------+------+-----------| + * | M.Accel 0 | |ScrlL | |ScrlR | | | | | 1 | 2 | 3 | = | | | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | XXXX | | | | | 0 | . | , | XXXX | | + * `-----------------------------------' `-----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | XXXX | | + * | | |------| |------| XXXX | | + * | | | | | | XXXX | | + * `--------------------' `--------------------' + */ +[KEYPAD]=KEYMAP(//left half + KC_NO, KC_NO, KC_MS_BTN1, KC_MS_BTN2, KC_MS_BTN3, KC_NO, KC_NO, + KC_MS_ACCEL2, KC_NO, KC_MS_WH_UP, KC_MS_U, KC_MS_WH_DOWN, KC_NO, KC_NO, + KC_MS_ACCEL1, KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, + KC_MS_ACCEL0, KC_NO, KC_MS_WH_LEFT, KC_NO, KC_MS_WH_RIGHT, KC_NO, KC_NO, + KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, + KC_NO, + KC_NO, KC_NO, KC_NO, + //right half + LSFT(KC_TAB), KC_CLEAR, KC_KP_SLASH, KC_KP_ASTERISK, KC_CIRCUMFLEX, KC_LPRN, KC_NO, + KC_TAB, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, KC_RPRN, KC_NO, + KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_MINUS, KC_NO, KC_NO, + KC_KP_ENTER, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_EQUAL, KC_NO, KC_NO, + KC_KP_0, KC_KP_DOT, KC_KP_COMMA, KC_TRNS, KC_NO, + KC_NO, KC_NO, + KC_NO, + KC_NO, KC_TRNS, KC_NO), + +/* Keymap 2: Functions Layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | Vol. Up | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | | Stop | Rw | Rec | FF | | XXXX | | XXXX | | | | | | Vol. Down | + * |-----------+------+------+------+------+------| XXXX | | XXXX |------+------+------+------+------+-----------| + * | CapsLock | Eject| Prev | Play | Next | |------| |------| Left | Down | Up | Right| | Mute | + * |-----------+------+------+------+------+------| XXXX | | XXXX |------+------+------+------+------+-----------| + * | L Shift | | | | | | XXXX | | XXXX | | | | | | R Shift | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | XXXXX | | XXXX | XXXX | XXXX | | XXXX | XXXX | XXXX | | XXXXX | + * `-----------------------------------' `-----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + * + * XXX = These keys are transparent keys that, when pressed, they issue the key from the previous layer. + */ +[FN]=KEYMAP(//left half + KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + KC_NO, KC_MEDIA_STOP, KC_MEDIA_REWIND, KC_MEDIA_SELECT, KC_MEDIA_FAST_FORWARD, KC_NO, KC_TRNS, + KC_CAPS, KC_MEDIA_EJECT, KC_MEDIA_PREV_TRACK, KC_MEDIA_PLAY_PAUSE, KC_MEDIA_NEXT_TRACK, KC_NO, + KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, + KC_NO, KC_NO, + KC_NO, + KC_NO, KC_NO, KC_NO, + //right half + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_VOLU, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLD, + KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_NO, KC_MUTE, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_RSFT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, + KC_NO, KC_NO, + KC_NO, + KC_NO, KC_NO, KC_NO)}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_ONESHOT(FN), + [2] = ACTION_MODS_ONESHOT(MOD_LSFT), // Sticky shift light. Tap for the next keypress to be shifted. Hold for regular shift. + [3] = ACTION_LAYER_TAP_KEY(KEYPAD, KC_RBRC), +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + // MACRODOWN only works in this function + switch(id) { + case MACRO_TMUX_ESC: + if (record->event.pressed) { + return MACRO(D(LCTRL), T(A), U(LCTRL), D(ESC), END); + } + return MACRO(U(ESC), END); + case MACRO_TMUX_PASTE: + if (record->event.pressed) { + return MACRO(D(LCTRL), T(A), U(LCTRL), D(P), END); + } + return MACRO(U(P), END); + case MACRO_OSX_COPY: + if (record->event.pressed) { + return MACRO(D(LGUI), D(C), END); + } + return MACRO(U(C), U(LGUI), END); + case MACRO_OSX_PASTE: + if (record->event.pressed) { + return MACRO(D(LGUI), D(V), END); + } + return MACRO(U(V), U(LGUI), END); + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { +}; + +uint8_t current_layer = BASE; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + uint8_t layer = biton32(layer_state); + + ergodox_led_all_off(); + ergodox_led_all_set(LED_BRIGHTNESS_LO); + + switch (layer) { + case BASE: + current_layer = BASE; + break; + case KEYPAD: + current_layer = KEYPAD; + break; + default: + // none + break; + } + + // layer leds + if (current_layer == KEYPAD) { + ergodox_right_led_3_on(); + } + + // capslock + if (host_keyboard_leds() & (3<mods & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) && // is shift pressed and there is no other + !(keyboard_report->mods & (~MOD_BIT(KC_LSFT) & ~MOD_BIT(KC_RSFT)))) || // modifier being pressed as well + (get_oneshot_mods() & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) && !has_oneshot_mods_timed_out())) { // or the one shot shift didn't timed out + ergodox_right_led_1_set(LED_BRIGHTNESS_HI); + ergodox_right_led_1_on(); + } +}; diff --git a/keyboards/ergodox/keymaps/townk_osx/makefile.mk b/keyboards/ergodox/keymaps/townk_osx/makefile.mk new file mode 100644 index 000000000..e757557bd --- /dev/null +++ b/keyboards/ergodox/keymaps/townk_osx/makefile.mk @@ -0,0 +1,4 @@ +# I don't want my keyboard blinking lights when is suppose to be asleep. +SLEEP_LED_ENABLE = no + +CONFIG_H = keymaps/$(KEYMAP)/config.h diff --git a/keyboards/ergodox/keymaps/townk_osx/readme.md b/keyboards/ergodox/keymaps/townk_osx/readme.md new file mode 100644 index 000000000..c2853ca17 --- /dev/null +++ b/keyboards/ergodox/keymaps/townk_osx/readme.md @@ -0,0 +1,77 @@ +# Townk's Keymap + +Trying to take care of an enjury on my arm I borrow an ergonomic keyboard from +a frient ([Kinesis Advantage](http://www.kinesis-ergo.com/shop/advantage-pro-for-pc-mac/)). + +I really enjoyed my time with it but there were some anoyancies: + +* The curvature on the keys bothered me since I'm a Vim user and using the + motion keys on my editor was awkard. +* I had to spend too much time remapping the keyboard to make some symbol keys + more accessible to me. +* The fact that my hands had to stay close to each other was a bit stressfull + to my sholders. + +After a long research I find out that Ergodox EZ would be perfect for my needs +and purchase one. Before the keyboard even got in my hands I started to think +on the layout I would use on it and soon enough I planed couple adjustments +from the Kinesis I was using so far. + +## The layout + +Here are the layout mapping in images so you can have a glimpse on it: + +![Base Layout](townk_osx_base.png) +![fn Layout](townk_osx_fn.png) +![Keypad & Mouse Layout](townk_osx_keypad.png) + +Notice that, differently from the default behavior, my layer keys are not transparent +by default, which means that if you press any non-labeled white key, nothing will be +handled to the OS. + +### One shot keys + +It all started with the access to the function keys (F1, F2, F3...), since +those keys are located on a different layer I needed a way to press them with +minimal effort without disrupting my flow. + +For me, togglihg a layer to press a button and than toggle it back is a waste +of time (although I admit it's a single tap from what I have), so I decided to +do it as a one shot key. I could press it and the next pressed key would be +handled by the target layer which just after it delivers the key to the OS it +would get back to the previous layer. + +After setting up my layout to do just that I realized that occasionally I +would stop myseld on the middle of the process and the one shot layer would be +still triggered until I press any other key. So to prevent me from tapping +keys I don't want I added a timeout of 3 seconds for the one shot actions. + +Ultimately I tested the shift key as a one shot one and really like it, so +here you have it, all the one shot keys on my layout. + +## Glossary + +If you're not familiar with the Mac symbols used on some keys, here is a +reference to them: + +| Symbol | Description | +| :----: | ------------------- | +| ⌘ | Command | +| ⇪ | Caps Lock | +| ⇧ | Shift | +| ⌥ | Option (alt) | +| ⎋ | Esc | +| ⇥ | Tab forward | +| ⇤ | Tab backward | +| ⌃ | Control | +| ␣ | Space | +| ⌫ | Backspace | +| ⌦ | Delete | +| ⏎ | Enter | +| ⌤ | Return | +| ⌽ | Power on/off button | +| ↖ | Home | +| ↘ | End | +| ⇞ | Page up | +| ⇟ | Page down | +| ⌧ | Clear | diff --git a/keyboards/ergodox/keymaps/townk_osx/townk_osx_base.png b/keyboards/ergodox/keymaps/townk_osx/townk_osx_base.png new file mode 100644 index 000000000..f9bc8b443 Binary files /dev/null and b/keyboards/ergodox/keymaps/townk_osx/townk_osx_base.png differ diff --git a/keyboards/ergodox/keymaps/townk_osx/townk_osx_fn.png b/keyboards/ergodox/keymaps/townk_osx/townk_osx_fn.png new file mode 100644 index 000000000..983b72348 Binary files /dev/null and b/keyboards/ergodox/keymaps/townk_osx/townk_osx_fn.png differ diff --git a/keyboards/ergodox/keymaps/townk_osx/townk_osx_keypad.png b/keyboards/ergodox/keymaps/townk_osx/townk_osx_keypad.png new file mode 100644 index 000000000..8f04b4327 Binary files /dev/null and b/keyboards/ergodox/keymaps/townk_osx/townk_osx_keypad.png differ diff --git a/keyboards/ergodox/keymaps/twey/keymap.c b/keyboards/ergodox/keymaps/twey/keymap.c new file mode 100644 index 000000000..019930f2a --- /dev/null +++ b/keyboards/ergodox/keymaps/twey/keymap.c @@ -0,0 +1,221 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_plover.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define STEN 2 // steno +#define MDIA 3 // media keys + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,---------------------------------------------------. ,---------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | STEN | | NONE | 6 | 7 | 8 | 9 | 0 | \ | + * |--------+------+------+------+-------+-------------| |-------+------+------+------+------+------+--------| + * | Del | ' | , | . | P | Y | Esc | | Caps | F | G | C | R | L | / | + * |--------+------+------+------+-------+------| | | |------+------+------+------+------+--------| + * | BkSp | A | O | E | U | I |------| |-------| D | H | T | N | S | - | + * |--------+------+------+------+-------+------| Tab | | Enter |------+------+------+------+------+--------| + * | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | RShift | + * `--------+------+------+------+-------+-------------' `--------------+------+------+------+------+--------' + * | L1 | NONE | Grv | Left | Right | | Up | Down | [ | ] | L1 | + * `-----------------------------------' `----------------------------------' + * ,--------------. ,---------------. + * | PgUp | PgDn | | Home | End | + * ,------|-------|------| |-------+-------+------. + * | | | NONE | | AltGr | | | + * | Alt | Enter |------| |-------| Space | Ctrl | + * | | | Supr | | ~MDIA | | | + * `---------------------' `----------------------' + */ +// 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, M(0), + KC_DELT, KC_QUOT, KC_COMM,KC_DOT, KC_P, KC_Y, KC_ESC, + KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_TAB, + MO(SYMB), KC_NO, KC_GRV, KC_LEFT,KC_RGHT, + KC_PGUP,KC_PGDN, + KC_NO, + KC_LALT,KC_ENT ,KC_LGUI, + // right hand + KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + KC_CAPS, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, + KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, + KC_ENT, KC_B, KC_M, KC_W, KC_V, KC_Z , KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, MO(SYMB), + KC_HOME, KC_END, + KC_RALT, + MO(MDIA),KC_SPC,KC_RCTL + ), +/* 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 +), + +[STEN] = KEYMAP( // layout: layer 2: Steno for Plover + // left hand + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_NO, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_STAR, + KC_NO, PV_LS, PV_LT, PV_LP, PV_LH, PV_STAR, + KC_NO, PV_LS, PV_LK, PV_LW, PV_LR, PV_STAR, PV_STAR, + KC_TRNS,KC_NO, KC_NO, KC_TRNS, KC_TRNS, + KC_NO, KC_NO, + KC_NO, + PV_A, PV_O, KC_NO, + // right hand + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + PV_STAR, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, + PV_STAR, PV_RF, PV_RP, PV_RL, PV_RT, PV_RD, + PV_STAR, PV_STAR, PV_RR, PV_RB, PV_RG, PV_RS, PV_RZ, + KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_TRNS, + KC_NO, KC_NO, + KC_NO, + KC_TRNS,PV_E, PV_U +), + +/* Keymap 3: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | Back | | Frwd | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | Prev | Play | Next | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// 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_WBAK, KC_TRNS, KC_WFWD, KC_TRNS, KC_TRNS, + KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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(MDIA) // FN1 - Momentary Layer 3 (Media) +}; + +void toggle_steno(int pressed) +{ + uint8_t layer = biton32(layer_state); + + if (pressed) { + if (layer != STEN) layer_on(STEN); else layer_off(STEN); + + register_code(PV_LP); + register_code(PV_LH); + register_code(PV_LR); + register_code(PV_O); + register_code(PV_RL); + register_code(PV_RG); + } else { + unregister_code(PV_LP); + unregister_code(PV_LH); + unregister_code(PV_LR); + unregister_code(PV_O); + unregister_code(PV_RL); + unregister_code(PV_RG); + } +} + +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: + toggle_steno(record->event.pressed); + 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) { + uint32_t layer0 = layer_state & (1UL << 0), + layer1 = layer_state & (1UL << 1), + layer2 = layer_state & (1UL << 2), + layer3 = layer_state & (1UL << 3); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + + if (layer1) ergodox_right_led_1_on(); + if (layer2) ergodox_right_led_2_on(); + if (layer3) ergodox_right_led_3_on(); +}; diff --git a/keyboards/ergodox/keymaps/twey/readme.md b/keyboards/ergodox/keymaps/twey/readme.md new file mode 100644 index 000000000..979e4261e --- /dev/null +++ b/keyboards/ergodox/keymaps/twey/readme.md @@ -0,0 +1,17 @@ +# Twey's Home Configuration +## Layers +- Layer 0: Non-ANSI Dvorak layout, with modified modifiers — all + modifiers on thumb keys, as well as return and space. +- Layer 1: Default symbol layout. +- Layer 2: Plover-oriented stenography layer. +- Layer 3: Extended media/mouse layout. + +## Unusual features +The Plover key (top right key on the left half) also sends my Plover +‘toggle’ chord (SH-FT) when pressed, as well as toggling the steno +layer, so you can toggle between steno and typing modes with a single +keypress. + +If you want to use this feature, you'll need to add the +`commands.json` dictionary to your Plover dictionaries, or define the +toggle stroke (`PHROLG`) yourself. diff --git a/keyboards/ergodox/keymaps/workman_osx_mdw/keymap.c b/keyboards/ergodox/keymaps/workman_osx_mdw/keymap.c new file mode 100644 index 000000000..8effa53b2 --- /dev/null +++ b/keyboards/ergodox/keymaps/workman_osx_mdw/keymap.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; + } + 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/keyboards/ergodox/keymaps/zweihander-osx/keymap.c b/keyboards/ergodox/keymaps/zweihander-osx/keymap.c new file mode 100644 index 000000000..3444152bc --- /dev/null +++ b/keyboards/ergodox/keymaps/zweihander-osx/keymap.c @@ -0,0 +1,233 @@ +#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 SGWK 0 // "sagewick", ⌘S ⌘⇥ +#define SGWF 1 // "sagewick freshly", ⌘S ⌘⇥ ⌘R +#define BBED 2 // BBEdit +#define TMNL 3 // Terminal +#define SAFA 4 // Safari +#define ALFRED_LEAD_TIME 100 // time, in milliseconds, to let Alfred come to the fore and accept keyboard input + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | L1 | | L1 | 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | ⌦ | Q | W | E | R | T | ~L1 | | ~L1 | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | ⌫ | A | S | D | F | G |------| |------| H | J | K | L |; / L2| ' / L⌘ | + * |--------+------+------+------+------+------| L⌘ | | L⌘ |------+------+------+------+------+--------| + * | L⇧ | Z | X | C | V | B | | | | N | M | , | . | / / ⌃| R⇧ | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | L⌃ | L⌥ | L⌘ | ← | → | | ↑ | ↓ | [ | ] | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,---------------. + * | `~ | '" | | ⎋ | ⌫ | + * ,------|------|------| |------+--------+------. + * | | | PgUp | | PgDn | | | + * | | ⌫ |------| |------| ⇥ |Enter | + * | | | L⌥ | | L⌃ | | | + * `--------------------' `----------------------' + */ +// 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, TG(SYMB), + KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(SYMB), + KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LGUI, + KC_LCTL, KC_LALT, KC_LGUI,KC_LEFT,KC_RGHT, + KC_GRV, KC_QUOT, + KC_PGUP, + KC_SPC,KC_BSPC,KC_LALT, + // right hand + TG(SYMB), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + MO(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),GUI_T(KC_QUOT), + KC_LGUI, KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_SPC , + KC_ESC, KC_BSPC, + KC_PGDN, + KC_LCTL, KC_TAB, KC_ENT + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | [ | ] | { | } | " | | | | / | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | < | > | ( | ) | ' |------| |------| - | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | & | 1 | 2 | 3 | = | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | 0 | . | ← | → | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | Home | | | + * | | |------| |------| | | + * | | | | | End | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,KC_LBRC,KC_RBRC,KC_LCBR,KC_RCBR,KC_DQUO,KC_TRNS, + KC_TRNS,KC_LABK,KC_RABK,KC_LPRN,KC_RPRN,KC_QUOT, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,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_SLSH, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, + KC_MINS, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, + KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_EQL, KC_TRNS, + KC_0, KC_DOT, KC_LEFT, KC_RGHT, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_HOME, + KC_END , KC_TRNS, KC_TRNS +), +/* Keymap 2: Media keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F14 | F15 | | | | | | ⌘Q | ⌘W | ⌘⇧` | ⌘` | | | Power | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | PgUp |⌘S⌘⇥⌘R| Term | | | | ⌘] | ⌥⌘↑ | ↑ | ⌥⌘↓ | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |Safari| PgDn | | |------| |------| ⌘[ | ← | ↓ | → | | ⏯ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | |BBEdit| | | |L⇧+Spc| Spc | ⏮ | ⏭ | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | Home | | End | | | + * | | |------| |------| ⌘C | ⌘V | + * | | | | | ⌘X | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[MDIA] = KEYMAP( + KC_TRNS, KC_F14 , KC_F15 , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, /* F14 dims screen, F15 brightens */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, M(SGWF), M(TMNL), KC_TRNS, + KC_TRNS, KC_TRNS, M(SAFA), KC_PGDN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M(BBED), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_HOME, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + LGUI(KC_Q), LGUI(KC_W), LGUI(LSFT(KC_GRV)), LGUI(KC_GRV), KC_TRNS, KC_TRNS, KC_PWR, + KC_TRNS, LGUI(KC_RBRC), LGUI(LALT(KC_UP)), KC_UP , LGUI(LALT(KC_DOWN)), KC_TRNS, KC_TRNS, + LGUI(KC_LBRC), KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_MPLY, + KC_TRNS, LSFT(KC_SPC), KC_SPC , KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, + KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + LGUI(KC_X), LGUI(KC_C), LGUI(KC_V) +), +}; + +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 SGWK: + if (record->event.pressed) { + return MACRO( + I(10), + D(LGUI), T(S), U(LGUI), + D(LGUI), T(TAB), U(LGUI), + END); + } + break; + case SGWF: + if (record->event.pressed) { + return MACRO( + I(10), + D(LGUI), T(S), U(LGUI), + D(LGUI), T(TAB), U(LGUI), + D(LGUI), T(R), U(LGUI), + END); + } + break; + case BBED: + if (record->event.pressed) { + return MACRO( + I(10), + D(LALT), T(SPC), U(LALT), W(ALFRED_LEAD_TIME), + T(B), T(B), T(E), T(D), T(I), T(T), + T(ENT), + END); + } + break; + case TMNL: + if (record->event.pressed) { + return MACRO( + I(10), + D(LALT), T(SPC), U(LALT), W(ALFRED_LEAD_TIME), + T(T), T(E), T(R), T(M), T(I), T(N), T(A), T(L), + T(ENT), + END); + } + break; + case SAFA: + if (record->event.pressed) { + return MACRO( + I(10), + D(LALT), T(SPC), U(LALT), W(ALFRED_LEAD_TIME), + T(S), T(A), T(F), T(A), T(R), T(I), + T(ENT), + END); + } + 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/keyboards/ergodox/keymaps/zweihander-osx/readme.markdown b/keyboards/ergodox/keymaps/zweihander-osx/readme.markdown new file mode 100644 index 000000000..7bce7c690 --- /dev/null +++ b/keyboards/ergodox/keymaps/zweihander-osx/readme.markdown @@ -0,0 +1,45 @@ +# The Zweihander Layout + +NB: the backtick (\`) is special in Markdown. If I write ⌘\` in this readme, I mean “command-backtick”, not “command-backslash-backtick”. + +This layout is tuned for people who… + + +## use OS X + +This layout doesn’t make any concessions for Windows use. While it should work fine in Windows, I’m not about to devote precious keyboard space to Windows-specific shortcuts. + + +## mouse left-handed while doing other things with the right hand + +I tend to have my mouse in my left hand, but I like to use my other hand to make things go faster. I’ve added a bunch of buttons to the media layer to speed up browsing in Safari and Finder: + +- Close Window (⌘W) +- Back (⌘[) +- Forward (⌘]) +- Open and Close Parent Folder (⌥⌘↓) +- Go Up and Close Just-Left Folder (⌥⌘↑) +- Cycle through open windows in current application (⌘\` and ⌘⇧\`) +- Cycle through tabs in current window (⌥⇥ and ⌥⇧⇥) +- Space (page down in browsers; Quick Look in the Finder) +- Shift-Space (page up in web browsers) + +Because moving letter-by-letter is way slower than moving word-by-word, I added Option (⌥) to the bottommost button on the left side. This key can be held easily while holding ; (activate media layer) and pressing J and L to move left and right by word. + + +## use lots of modifier keys in OS X menu-item shortcuts + +I wanted to preserve the feel of a number of shortcuts that involve pressing lots of modifier keys at once; this is why the bottom left of the keyboard has shift, control, option, and command in the usual spaces. Further, some common shortcuts I press have a key on the right side of the keyboard. These shortcuts include: + +- Empty Trash Without Asking for Confirmation (⇧⌥⌘⌫) +- Shut Down Without Asking for Confirmation (⇧⌥⌘ power) + + +## use Emacs-style shortcuts + +I press C-a, C-e, and C-k all the time. It’s difficult to press these key combinations with the control key on the bottom left and I’m too quick on the draw for the control function on the / key to work reliably, so the bottommost thumb button on the right side is another control key. + + +## use spreadsheets + +All the common spreadsheet operations (+-*/=) are now on the right side of the symbol layer. diff --git a/keyboards/ergodox_ez/190hotfix.sh b/keyboards/ergodox_ez/190hotfix.sh deleted file mode 100755 index bdc3adce2..000000000 --- a/keyboards/ergodox_ez/190hotfix.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -#a tool to fix broken keymaps as a result of pull request #190 -#changing the declaration of matrix_scan_user() and matrix_init_user() -# -#This script will save a copy of the specified keymap as keymap.c.bak -#and then create a new keymap.c with the definion corrected. -#this script must be run from the ergodox_ez directory -if [ $# -ne 1 ]; then - echo $0: usage: ./190hotfix keymap_name - exit 1 -fi - -echo Saving backup as ./keymaps/$1/keymap.c.bak ... -mv ./keymaps/$1/keymap.c ./keymaps/$1/keymap.c.bak - -echo Modifying ./keymaps/$1/keymap.c ... -cat ./keymaps/$1/keymap.c.bak | sed -r 's/^void \* matrix_/void matrix_/'>./keymaps/$1/keymap.c - -echo Complete! diff --git a/keyboards/ergodox_ez/Makefile b/keyboards/ergodox_ez/Makefile deleted file mode 100644 index 54edaed6d..000000000 --- a/keyboards/ergodox_ez/Makefile +++ /dev/null @@ -1,86 +0,0 @@ -#---------------------------------------------------------------------------- -# On command line: -# -# make = Make software. -# -# make clean = Clean out built project files. -# -# That's pretty much all you need. To compile, always go make clean, -# followed by make. -# -# For advanced users only: -# make teensy = Download the hex file to the device, using teensy_loader_cli. -# (must have teensy_loader_cli installed). -# -#---------------------------------------------------------------------------- - -# # project specific files -SRC = twimaster.c \ - matrix.c - -# MCU name -MCU = atmega32u4 - -# Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -# -# This will be an integer division of F_USB below, as it is sourced by -# F_USB after it has run through any CPU prescalers. Note that this value -# does not *change* the processor frequency - it should merely be updated to -# reflect the processor speed set externally so that the code can use accurate -# software delays. -F_CPU = 16000000 - - -# -# LUFA specific -# -# Target architecture (see library "Board Types" documentation). -ARCH = AVR8 - -# Input clock frequency. -# This will define a symbol, F_USB, in all source code files equal to the -# input clock frequency (before any prescaling is performed) in Hz. This value may -# differ from F_CPU if prescaling is used on the latter, and is required as the -# raw input clock is fed directly to the PLL sections of the AVR for high speed -# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' -# at the end, this will be done automatically to create a 32-bit value in your -# source code. -# -# If no clock division is performed on the input clock inside the AVR (via the -# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. -F_USB = $(F_CPU) - -# Interrupt driven control endpoint task(+60) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT - - -# Boot Section Size in *bytes* -# Teensy halfKay 512 -# Teensy++ halfKay 1024 -# Atmel DFU loader 4096 -# LUFA bootloader 4096 -# USBaspLoader 2048 -OPT_DEFS += -DBOOTLOADER_SIZE=512 - - -# Build Options -# comment out to disable the options. -# -BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) -EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) -CONSOLE_ENABLE ?= no # Console for debug(+400) -COMMAND_ENABLE ?= yes # Commands for debug and configuration -CUSTOM_MATRIX ?= yes # Custom matrix file for the ErgoDox EZ -SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend -NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -MIDI_ENABLE ?= no # MIDI controls -UNICODE_ENABLE ?= yes # Unicode - -ifndef QUANTUM_DIR - include ../../Makefile -endif diff --git a/keyboards/ergodox_ez/config.h b/keyboards/ergodox_ez/config.h deleted file mode 100644 index 2bb56731b..000000000 --- a/keyboards/ergodox_ez/config.h +++ /dev/null @@ -1,84 +0,0 @@ -/* -Copyright 2012 Jun Wako -Copyright 2013 Oleg Kostyuk - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#ifndef CONFIG_H -#define CONFIG_H - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x1307 -#define DEVICE_VER 0x0001 -#define MANUFACTURER ErgoDox EZ -#define PRODUCT ErgoDox EZ -#define DESCRIPTION QMK keyboard firmware for Ergodox EZ - -/* key matrix size */ -#define MATRIX_ROWS 14 -#define MATRIX_COLS 6 - -#define MOUSEKEY_DELAY 100 -#define MOUSEKEY_INTERVAL 20 -#define MOUSEKEY_MAX_SPEED 3 -#define MOUSEKEY_TIME_TO_MAX 10 - -#define TAPPING_TOGGLE 1 - -/* define if matrix has ghost */ -//#define MATRIX_HAS_GHOST - -/* number of backlight levels */ -#define BACKLIGHT_LEVELS 3 - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 -#define TAPPING_TERM 200 -#define IGNORE_MOD_TAP_INTERRUPT // this makes it possible to do rolling combos (zx) with keys that convert to other keys on hold (z becomes ctrl when you hold it, and when this option isn't enabled, z rapidly followed by x actually sends Ctrl-x. That's bad.) - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -/* key combination for command */ -#define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || \ - keyboard_report->mods == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) \ -) - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -// #define NO_DEBUG - -/* disable print */ -// #define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION -//#define DEBUG_MATRIX_SCAN_RATE - -#endif diff --git a/keyboards/ergodox_ez/ergodox_ez.c b/keyboards/ergodox_ez/ergodox_ez.c deleted file mode 100644 index f0558d9f2..000000000 --- a/keyboards/ergodox_ez/ergodox_ez.c +++ /dev/null @@ -1,85 +0,0 @@ -#include "ergodox_ez.h" -#include "i2cmaster.h" - -bool i2c_initialized = 0; -uint8_t mcp23018_status = 0x20; - -void matrix_init_kb(void) { - // keyboard LEDs (see "PWM on ports OC1(A|B|C)" in "teensy-2-0.md") - TCCR1A = 0b10101001; // set and configure fast PWM - TCCR1B = 0b00001001; // set and configure fast PWM - - // (tied to Vcc for hardware convenience) - DDRB &= ~(1<<4); // set B(4) as input - PORTB &= ~(1<<4); // set B(4) internal pull-up disabled - - // unused pins - C7, D4, D5, D7, E6 - // set as input with internal pull-ip enabled - DDRC &= ~(1<<7); - DDRD &= ~(1<<7 | 1<<5 | 1<<4); - DDRE &= ~(1<<6); - PORTC |= (1<<7); - PORTD |= (1<<7 | 1<<5 | 1<<4); - PORTE |= (1<<6); - - ergodox_blink_all_leds(); - - matrix_init_user(); -} - -void ergodox_blink_all_leds(void) -{ - ergodox_led_all_off(); - ergodox_led_all_set(LED_BRIGHTNESS_HI); - ergodox_right_led_1_on(); - _delay_ms(50); - ergodox_right_led_2_on(); - _delay_ms(50); - ergodox_right_led_3_on(); - _delay_ms(50); - ergodox_right_led_1_off(); - _delay_ms(50); - ergodox_right_led_2_off(); - _delay_ms(50); - ergodox_right_led_3_off(); - //ergodox_led_all_on(); - //_delay_ms(333); - ergodox_led_all_off(); -} - -uint8_t init_mcp23018(void) { - mcp23018_status = 0x20; - - // I2C subsystem - if (i2c_initialized == 0) { - i2c_init(); // on pins D(1,0) - i2c_initialized++; - _delay_ms(1000); - } - - // set pin direction - // - unused : input : 1 - // - input : input : 1 - // - driving : output : 0 - mcp23018_status = i2c_start(I2C_ADDR_WRITE); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(IODIRA); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(0b00000000); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(0b00111111); if (mcp23018_status) goto out; - i2c_stop(); - - // set pull-up - // - unused : on : 1 - // - input : on : 1 - // - driving : off : 0 - mcp23018_status = i2c_start(I2C_ADDR_WRITE); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(GPPUA); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(0b00000000); if (mcp23018_status) goto out; - mcp23018_status = i2c_write(0b00111111); if (mcp23018_status) goto out; - -out: - i2c_stop(); - - return mcp23018_status; -} - - diff --git a/keyboards/ergodox_ez/ergodox_ez.h b/keyboards/ergodox_ez/ergodox_ez.h deleted file mode 100644 index db4ec867b..000000000 --- a/keyboards/ergodox_ez/ergodox_ez.h +++ /dev/null @@ -1,122 +0,0 @@ -#ifndef ERGODOX_EZ_H -#define ERGODOX_EZ_H - -#include "quantum.h" -#include -#include -#include "i2cmaster.h" -#include - -#define CPU_PRESCALE(n) (CLKPR = 0x80, CLKPR = (n)) -#define CPU_16MHz 0x00 - -// I2C aliases and register addresses (see "mcp23018.md") -#define I2C_ADDR 0b0100000 -#define I2C_ADDR_WRITE ( (I2C_ADDR<<1) | I2C_WRITE ) -#define I2C_ADDR_READ ( (I2C_ADDR<<1) | I2C_READ ) -#define IODIRA 0x00 // i/o direction register -#define IODIRB 0x01 -#define GPPUA 0x0C // GPIO pull-up resistor register -#define GPPUB 0x0D -#define GPIOA 0x12 // general purpose i/o port register (write modifies OLAT) -#define GPIOB 0x13 -#define OLATA 0x14 // output latch register -#define OLATB 0x15 - -extern uint8_t mcp23018_status; - -void init_ergodox(void); -void ergodox_blink_all_leds(void); -uint8_t init_mcp23018(void); -uint8_t ergodox_left_leds_update(void); - -#define LED_BRIGHTNESS_LO 15 -#define LED_BRIGHTNESS_HI 255 - - -inline void ergodox_board_led_on(void) { DDRD |= (1<<6); PORTD |= (1<<6); } -inline void ergodox_right_led_1_on(void) { DDRB |= (1<<5); PORTB |= (1<<5); } -inline void ergodox_right_led_2_on(void) { DDRB |= (1<<6); PORTB |= (1<<6); } -inline void ergodox_right_led_3_on(void) { DDRB |= (1<<7); PORTB |= (1<<7); } -inline void ergodox_right_led_on(uint8_t led) { DDRB |= (1<<(led+4)); PORTB |= (1<<(led+4)); } - -inline void ergodox_board_led_off(void) { DDRD &= ~(1<<6); PORTD &= ~(1<<6); } -inline void ergodox_right_led_1_off(void) { DDRB &= ~(1<<5); PORTB &= ~(1<<5); } -inline void ergodox_right_led_2_off(void) { DDRB &= ~(1<<6); PORTB &= ~(1<<6); } -inline void ergodox_right_led_3_off(void) { DDRB &= ~(1<<7); PORTB &= ~(1<<7); } -inline void ergodox_right_led_off(uint8_t led) { DDRB &= ~(1<<(led+4)); PORTB &= ~(1<<(led+4)); } - -inline void ergodox_led_all_on(void) -{ - ergodox_board_led_on(); - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); - ergodox_right_led_3_on(); -} - -inline void ergodox_led_all_off(void) -{ - ergodox_board_led_off(); - ergodox_right_led_1_off(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); -} - -inline void ergodox_right_led_1_set(uint8_t n) { OCR1A = n; } -inline void ergodox_right_led_2_set(uint8_t n) { OCR1B = n; } -inline void ergodox_right_led_3_set(uint8_t n) { OCR1C = n; } -inline void ergodox_right_led_set(uint8_t led, uint8_t n) { - (led == 1) ? (OCR1A = n) : - (led == 2) ? (OCR1B = n) : - (OCR1C = n); -} - -inline void ergodox_led_all_set(uint8_t n) -{ - ergodox_right_led_1_set(n); - ergodox_right_led_2_set(n); - ergodox_right_led_3_set(n); -} - -#define KEYMAP( \ - \ - /* left hand, spatial positions */ \ - k00,k01,k02,k03,k04,k05,k06, \ - k10,k11,k12,k13,k14,k15,k16, \ - k20,k21,k22,k23,k24,k25, \ - k30,k31,k32,k33,k34,k35,k36, \ - k40,k41,k42,k43,k44, \ - k55,k56, \ - k54, \ - k53,k52,k51, \ - \ - /* right hand, spatial positions */ \ - k07,k08,k09,k0A,k0B,k0C,k0D, \ - k17,k18,k19,k1A,k1B,k1C,k1D, \ - k28,k29,k2A,k2B,k2C,k2D, \ - k37,k38,k39,k3A,k3B,k3C,k3D, \ - k49,k4A,k4B,k4C,k4D, \ - k57,k58, \ - k59, \ - k5C,k5B,k5A ) \ - \ - /* matrix positions */ \ - { \ - { k00, k10, k20, k30, k40, KC_NO }, \ - { k01, k11, k21, k31, k41, k51 }, \ - { k02, k12, k22, k32, k42, k52 }, \ - { k03, k13, k23, k33, k43, k53 }, \ - { k04, k14, k24, k34, k44, k54 }, \ - { k05, k15, k25, k35, KC_NO, k55 }, \ - { k06, k16, KC_NO, k36, KC_NO, k56 }, \ - \ - { k07, k17, KC_NO, k37,KC_NO, k57 }, \ - { k08, k18, k28, k38,KC_NO, k58 }, \ - { k09, k19, k29, k39, k49, k59 }, \ - { k0A, k1A, k2A, k3A, k4A, k5A }, \ - { k0B, k1B, k2B, k3B, k4B, k5B }, \ - { k0C, k1C, k2C, k3C, k4C, k5C }, \ - { k0D, k1D, k2D, k3D, k4D, KC_NO } \ - } - -#endif diff --git a/keyboards/ergodox_ez/i2cmaster.h b/keyboards/ergodox_ez/i2cmaster.h deleted file mode 100644 index 3917b9e6c..000000000 --- a/keyboards/ergodox_ez/i2cmaster.h +++ /dev/null @@ -1,178 +0,0 @@ -#ifndef _I2CMASTER_H -#define _I2CMASTER_H 1 -/************************************************************************* -* Title: C include file for the I2C master interface -* (i2cmaster.S or twimaster.c) -* Author: Peter Fleury http://jump.to/fleury -* File: $Id: i2cmaster.h,v 1.10 2005/03/06 22:39:57 Peter Exp $ -* Software: AVR-GCC 3.4.3 / avr-libc 1.2.3 -* Target: any AVR device -* Usage: see Doxygen manual -**************************************************************************/ - -#ifdef DOXYGEN -/** - @defgroup pfleury_ic2master I2C Master library - @code #include @endcode - - @brief I2C (TWI) Master Software Library - - Basic routines for communicating with I2C slave devices. This single master - implementation is limited to one bus master on the I2C bus. - - This I2c library is implemented as a compact assembler software implementation of the I2C protocol - which runs on any AVR (i2cmaster.S) and as a TWI hardware interface for all AVR with built-in TWI hardware (twimaster.c). - Since the API for these two implementations is exactly the same, an application can be linked either against the - software I2C implementation or the hardware I2C implementation. - - Use 4.7k pull-up resistor on the SDA and SCL pin. - - Adapt the SCL and SDA port and pin definitions and eventually the delay routine in the module - i2cmaster.S to your target when using the software I2C implementation ! - - Adjust the CPU clock frequence F_CPU in twimaster.c or in the Makfile when using the TWI hardware implementaion. - - @note - The module i2cmaster.S is based on the Atmel Application Note AVR300, corrected and adapted - to GNU assembler and AVR-GCC C call interface. - Replaced the incorrect quarter period delays found in AVR300 with - half period delays. - - @author Peter Fleury pfleury@gmx.ch http://jump.to/fleury - - @par API Usage Example - The following code shows typical usage of this library, see example test_i2cmaster.c - - @code - - #include - - - #define Dev24C02 0xA2 // device address of EEPROM 24C02, see datasheet - - int main(void) - { - unsigned char ret; - - i2c_init(); // initialize I2C library - - // write 0x75 to EEPROM address 5 (Byte Write) - i2c_start_wait(Dev24C02+I2C_WRITE); // set device address and write mode - i2c_write(0x05); // write address = 5 - i2c_write(0x75); // write value 0x75 to EEPROM - i2c_stop(); // set stop conditon = release bus - - - // read previously written value back from EEPROM address 5 - i2c_start_wait(Dev24C02+I2C_WRITE); // set device address and write mode - - i2c_write(0x05); // write address = 5 - i2c_rep_start(Dev24C02+I2C_READ); // set device address and read mode - - ret = i2c_readNak(); // read one byte from EEPROM - i2c_stop(); - - for(;;); - } - @endcode - -*/ -#endif /* DOXYGEN */ - -/**@{*/ - -#if (__GNUC__ * 100 + __GNUC_MINOR__) < 304 -#error "This library requires AVR-GCC 3.4 or later, update to newer AVR-GCC compiler !" -#endif - -#include - -/** defines the data direction (reading from I2C device) in i2c_start(),i2c_rep_start() */ -#define I2C_READ 1 - -/** defines the data direction (writing to I2C device) in i2c_start(),i2c_rep_start() */ -#define I2C_WRITE 0 - - -/** - @brief initialize the I2C master interace. Need to be called only once - @param void - @return none - */ -extern void i2c_init(void); - - -/** - @brief Terminates the data transfer and releases the I2C bus - @param void - @return none - */ -extern void i2c_stop(void); - - -/** - @brief Issues a start condition and sends address and transfer direction - - @param addr address and transfer direction of I2C device - @retval 0 device accessible - @retval 1 failed to access device - */ -extern unsigned char i2c_start(unsigned char addr); - - -/** - @brief Issues a repeated start condition and sends address and transfer direction - - @param addr address and transfer direction of I2C device - @retval 0 device accessible - @retval 1 failed to access device - */ -extern unsigned char i2c_rep_start(unsigned char addr); - - -/** - @brief Issues a start condition and sends address and transfer direction - - If device is busy, use ack polling to wait until device ready - @param addr address and transfer direction of I2C device - @return none - */ -extern void i2c_start_wait(unsigned char addr); - - -/** - @brief Send one byte to I2C device - @param data byte to be transfered - @retval 0 write successful - @retval 1 write failed - */ -extern unsigned char i2c_write(unsigned char data); - - -/** - @brief read one byte from the I2C device, request more data from device - @return byte read from I2C device - */ -extern unsigned char i2c_readAck(void); - -/** - @brief read one byte from the I2C device, read is followed by a stop condition - @return byte read from I2C device - */ -extern unsigned char i2c_readNak(void); - -/** - @brief read one byte from the I2C device - - Implemented as a macro, which calls either i2c_readAck or i2c_readNak - - @param ack 1 send ack, request more data from device
- 0 send nak, read is followed by a stop condition - @return byte read from I2C device - */ -extern unsigned char i2c_read(unsigned char ack); -#define i2c_read(ack) (ack) ? i2c_readAck() : i2c_readNak(); - - -/**@}*/ -#endif diff --git a/keyboards/ergodox_ez/keymaps/ab/Makefile b/keyboards/ergodox_ez/keymaps/ab/Makefile deleted file mode 100644 index b673c5ce5..000000000 --- a/keyboards/ergodox_ez/keymaps/ab/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -# Having a file like this allows you to override Makefile definitions -# for your own particular keymap - -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -COMMAND_ENABLE = no # Commands for debug and configuration - -ifndef QUANTUM_DIR - include ../../../../Makefile -endif diff --git a/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.json b/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.json deleted file mode 100644 index e2badad4d..000000000 --- a/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.json +++ /dev/null @@ -1,387 +0,0 @@ -[ - { - "name": "Beginner's Keymap for Ergodox-EZ", - "author": "Anand Babu Periasamy" - }, - [ - { - "x": 3.5 - }, - "#\n3\n\n\nF3", - { - "x": 10.5 - }, - ")\n0\n\n\nF10" - ], - [ - { - "y": -0.875, - "x": 2.5 - }, - "@\n2\n\n\nF2", - { - "x": 1 - }, - "$\n4\n\n\nF4", - { - "x": 8.5 - }, - "(\n9\n\n\nF9", - { - "x": 1 - }, - "_\n-\n\n\nF11" - ], - [ - { - "y": -0.875, - "x": 5.5 - }, - "%\n5\n\n\nF5", - "^\n6\n\n\nF6", - { - "x": 4.5 - }, - "&\n7\n\n\nF7", - "*\n8\n\n\nF8" - ], - [ - { - "y": -0.875, - "w": 1.5 - }, - "~\n`\n\n\nEsc", - "!\n1\n\n\nF1", - { - "x": 14.5 - }, - "+\n=\n\n\nF12", - { - "a": 7, - "w": 1.5 - }, - "Backspace\n\n\n\nBackspace" - ], - [ - { - "y": -0.375, - "x": 3.5 - }, - "E\n\n\n\n", - { - "x": 10.5 - }, - "I" - ], - [ - { - "y": -0.8799999999999999, - "x": 2.5 - }, - "W" - ], - [ - { - "y": -0.9950000000000001, - "x": 4.5, - "a": 4 - }, - "R", - { - "x": 8.5, - "a": 7 - }, - "U", - { - "x": 1 - }, - "O" - ], - [ - { - "y": -0.875, - "x": 5.5 - }, - "T", - { - "h": 1.5 - }, - "", - { - "x": 4.5, - "h": 1.5 - }, - "", - "Y" - ], - [ - { - "y": -0.875, - "a": 6, - "w": 1.5 - }, - "Tab", - { - "a": 7 - }, - "Q", - { - "x": 14.5 - }, - "P", - { - "a": 4, - "w": 1.5 - }, - "|\n\\" - ], - [ - { - "y": -0.375, - "x": 3.5, - "a": 7 - }, - "D\n\n\n\n", - { - "x": 10.5 - }, - "K" - ], - [ - { - "y": -0.875, - "x": 2.5 - }, - "S\n\n\n\n", - { - "x": 1, - "c": "#c4bcbc" - }, - "F\n\n\n\n", - { - "x": 8.5 - }, - "J", - { - "x": 1, - "c": "#cccccc" - }, - "L" - ], - [ - { - "y": -0.875, - "x": 5.5 - }, - "G", - { - "x": 6.5 - }, - "H" - ], - [ - { - "y": -0.875, - "a": 4, - "fa": [ - 0, - 0, - 0, - 2 - ], - "w": 1.5 - }, - "\n\n\nCtrl\n\n\nCaps", - { - "a": 7 - }, - "A", - { - "x": 14.5, - "a": 4 - }, - ":\n;", - { - "a": 7, - "w": 1.5 - }, - "Enter" - ], - [ - { - "y": -0.625, - "x": 6.5, - "h": 1.5 - }, - "PgDn", - { - "x": 4.5, - "h": 1.5 - }, - "PgUp" - ], - [ - { - "y": -0.75, - "x": 3.5 - }, - "C\n\n\n\n", - { - "x": 10.5, - "a": 4 - }, - "<\n," - ], - [ - { - "y": -0.875, - "x": 2.5, - "a": 7 - }, - "X\n\n\n\n", - { - "x": 1 - }, - "V\n\n\n\n", - { - "x": 8.5 - }, - "M", - { - "x": 1, - "a": 4 - }, - ">\n." - ], - [ - { - "y": -0.875, - "x": 5.5, - "a": 7 - }, - "B", - { - "x": 6.5 - }, - "N" - ], - [ - { - "y": -0.875, - "w": 1.5 - }, - "Shift", - "Z", - { - "x": 14.5, - "a": 4 - }, - "?\n/", - { - "w": 1.5 - }, - "\"\n'" - ], - [ - { - "y": -0.375, - "x": 3.5, - "a": 7 - }, - "Alt\n\n\n\n", - { - "x": 10.5 - }, - "\n\n\n\n" - ], - [ - { - "y": -0.875, - "x": 2.5 - }, - "\n\n\n\n", - { - "x": 1 - }, - "Alt\n\n\n\n", - { - "x": 8.5 - }, - "\n\n\n\n", - { - "x": 1 - }, - "\n\n\n\n" - ], - [ - { - "y": -0.75, - "x": 0.5 - }, - "Ctrl\n\n\n\n", - "Esc", - { - "x": 14.5 - }, - "\n\n\n\n", - "Fn" - ], - [ - { - "r": 30, - "rx": 6.5, - "ry": 4.25, - "y": -1, - "x": 1 - }, - "", - "(" - ], - [ - { - "h": 2 - }, - "Space", - { - "h": 2 - }, - "Del", - "[" - ], - [ - { - "x": 2 - }, - "{" - ], - [ - { - "r": -30, - "rx": 13, - "y": -1, - "x": -3 - }, - ")", - "" - ], - [ - { - "x": -3 - }, - "]", - { - "h": 2 - }, - "Enter", - { - "h": 2 - }, - "" - ], - [ - { - "x": -3 - }, - "}" - ] -] \ No newline at end of file diff --git a/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.png b/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.png deleted file mode 100644 index 740684461..000000000 Binary files a/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/ab/keymap.c b/keyboards/ergodox_ez/keymaps/ab/keymap.c deleted file mode 100644 index df6f33460..000000000 --- a/keyboards/ergodox_ez/keymaps/ab/keymap.c +++ /dev/null @@ -1,155 +0,0 @@ -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" - -#define BASE 0 // default layer -#define FN1 1 // media layer - -#define CAPS_CTL CTL_T(KC_CAPS) // Caps on tap, Ctrl on hold. -#define COPY LCTL(KC_V) // C-c Copy -#define PASTE LCTL(KC_V) // C-v Paste -#define ZM_NRM LCTL(KC_0) // C-0 Zoom Normal -#define ZM_OUT LCTL(KC_MINS) // C-- Zoom Out -#define ZM_IN LCTL(KC_PLUS) // C-+ Zoom In -#define EM_UNDO LCTL(KC_UNDS) // C-_ Emacs Undo - -#define _MOB 1 // Mobile# -#define _CUS1 2 // Custom macro 1 -#define _CUS2 3 // Custom macro 2 - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0: Basic layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | - | = | BSpace | - * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| - * | Tab | Q | W | E | R | T | Fwd | | Back | Y | U | I | O | P | \ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * |Caps/Ctl| A | S | D | F | G |------| |------| H | J | K | L | ; | Enter | - * |--------+------+------+------+------+------| PgDn | | PgUp |------+------+------+------+------+--------| - * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | ' | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | Ctrl | Esc | LGui | Alt | Alt | | Left | Dn | Up | Right| Fn | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | Copy | ( | | ) | Paste| - * ,------|------+------| |------+------+------. - * | | | [ | | ] | | | - * |Space | Del |------| |------| Enter|BSpace| - * | | | { | | } | | | - * `--------------------' `--------------------' - */ -// 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_6, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_WBAK, - CAPS_CTL, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_PGDN, - KC_LCTL, KC_ESC, KC_LGUI, KC_LALT, KC_LALT, - COPY, KC_LCBR, - KC_LPRN, - KC_SPC, KC_DEL, KC_LBRC, - // Right hand - KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, - KC_WFWD, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, - KC_PGUP, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT, - KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TG(FN1), - KC_RCBR, PASTE, - KC_RPRN, - KC_RBRC, KC_ENT, KC_BSPC), -/* Keymap 1: Fn Keys, media and mouse keys - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | BSpace | - * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| - * | | | | MsUp | | | | | | | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | LClk | MClk | RClk | | | | | | | | | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |Teensy| | ZmNrm| ZmOut| ZmIn | | Undo |VolDn |VolUp | Mute | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------+------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// FN1 Layer - [FN1] = KEYMAP( - // Left hand - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, - 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_BTN1, KC_BTN3, KC_BTN2, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, ZM_NRM, ZM_OUT, ZM_IN, - KC_TRNS, KC_TRNS, - KC_TRNS, - RESET, KC_TRNS, KC_TRNS, - // Right hand - KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, - KC_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, M(_MOB), KC_TRNS, M(_CUS1),M(_CUS2),KC_TRNS, KC_TRNS, - EM_UNDO, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS - ), -}; - -const uint16_t PROGMEM fn_actions[] = { -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case _MOB: // Your mobile# here. - return MACRODOWN(T(1), T(2), T(3), T(MINS), - T(1), T(2), T(3), T(MINS), - T(1), T(2), T(3), T(4), - END); - case _CUS1: // Your custom macro 1 - return MACRODOWN(T(E), T(M), T(A), T(C), T(S), T(SPC), END); - case _CUS2: // Your custom macro 2 - return MACRODOWN(T(L), T(S), T(SPC), T(MINS), T(L), T(ENT), END); - }; - 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/keyboards/ergodox_ez/keymaps/ab/readme.md b/keyboards/ergodox_ez/keymaps/ab/readme.md deleted file mode 100644 index 6b1ac2be3..000000000 --- a/keyboards/ergodox_ez/keymaps/ab/readme.md +++ /dev/null @@ -1,21 +0,0 @@ -# Beginner's keymap for Ergodox-EZ -Beginner's keymap emulates standard QWERTY keyboard for beginners. Once you get comfortable with the Ergodox-EZ, you may fork this keymap and customize it for your own needs or find a suitable one from the community contributed keymaps. - -![Beginner's Keymap](keyboard-layout.png) - -#### Pros -* Easier to switch between regular keyboards and Ergodox-EZ. -* Easy on beginners. It has everything you need for your day to day usage. - -#### Cons -* Keys are not ergonomically placed to take full advantage of Ergodox-EZ. Take a look at this [Default Keymap](https://github.com/jackhumbert/qmk_firmware/blob/master/keyboards/ergodox_ez/keymaps/default/readme.md) -* While multiple layers are possible, beginner's keymap only uses one additional layer for mouse, function and volume keys. - -#### Notes -* Ideally number key [6] should have started from the right-hand side of the keyboard. Doing so breaks the familiar QWERTY layout. -* Quote key ['] should have been placed between [:] and [Enter]. Due to lack of key space, it is placed below [Enter]. -* Double [Alt] keys are placed adjacent to each other for convenience. -* [CapsLock] also acts as [Ctrl] key when you press and hold. It is convenient for GNU Emacs users. -* Additional bracket keys are placed in the center of the keyboard for programmer's convenience. - - diff --git a/keyboards/ergodox_ez/keymaps/adnw_k_o_y/keymap.c b/keyboards/ergodox_ez/keymaps/adnw_k_o_y/keymap.c deleted file mode 100644 index 052517d70..000000000 --- a/keyboards/ergodox_ez/keymaps/adnw_k_o_y/keymap.c +++ /dev/null @@ -1,185 +0,0 @@ -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" -#include "keymap_german.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 | K | . | O | , | Y | L1 | | L1 | V | G | C | L | ß | Z | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | BkSp | H | A | E | I | U |------| |------| D | T | R | N | S | F | - * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| - * | LShift |X/Ctrl| Q | Ä | Ü | Ö | | | | B | P | W | M | J | RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | App | LGui | | Alt |Ctrl/Esc| - * ,------|------|------| |------+--------+------. - * | | | Home | | PgUp | | | - * | Space|Enter |------| |------| Tab |RShift| - * | | | 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, DE_K, DE_DOT, DE_O, DE_COMM,DE_Y, TG(SYMB), - KC_BSPC, DE_H, DE_A, DE_E, DE_I, DE_U, - KC_LSFT, CTL_T(DE_X), DE_Q, DE_AE, DE_UE, DE_OE, 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_ENT ,KC_END, - // right hand - KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - TG(SYMB), DE_V, DE_G, DE_C, DE_L, DE_SS, DE_Z, - DE_D, DE_T, DE_R, DE_N, LT(MDIA, DE_S), GUI_T(KC_F), - MEH_T(KC_NO),KC_B, KC_P, KC_W, KC_M, CTL_T(KC_J), 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_RSFT - ), -/* 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/keyboards/ergodox_ez/keymaps/adnw_k_o_y/readme.md b/keyboards/ergodox_ez/keymaps/adnw_k_o_y/readme.md deleted file mode 100644 index f0dd3815c..000000000 --- a/keyboards/ergodox_ez/keymaps/adnw_k_o_y/readme.md +++ /dev/null @@ -1,7 +0,0 @@ -# Basic implementation for k.o,y variant of the adnw layout - -adnw is a layout optimised for usage with german and english language -k.o,y is a variant of this layout -http://www.adnw.de/index.php?n=Main.SeitlicheNachbaranschl%C3%A4ge - -The os must use the de_DE layout diff --git a/keyboards/ergodox_ez/keymaps/alexjj/keymap.c b/keyboards/ergodox_ez/keymaps/alexjj/keymap.c deleted file mode 100644 index 448f62da0..000000000 --- a/keyboards/ergodox_ez/keymaps/alexjj/keymap.c +++ /dev/null @@ -1,238 +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 UNIC 3 // unicode entry layer - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0: Basic layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | ESC | 1! | 2@ | 3# | 4$ | 5% | 6^ | | 7& | 8* | 9( | 0) | -_ | += | BkSp | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Tab | Q | W | E | R | T | { | | } | Y | U | I | O | P | |\ | - * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------| - * | Win | A | S | D | F | G |------| |------| H | J | K | L | :; | '" | - * |--------+------+------+------+------+------| Home | | End |------+------+------+------+------+--------| - * | LShift |Z/Alt | X | C | V | B | | | | N | M | , | . | Alt | RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |LCtrl | COPY | PASTE| Left | Right| | Down | Up |Hyper | `~ | RCtrl | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * Hyper = Ctrl+Super+Alt+Shift | ~L3 | F5 | | F2 | ~L2 | - * ,------|------|------| |------+------+------. - * | | | PgUp | | Ins | | | - * | Enter| BkSp |------| |------| ~L1 |Space | - * | | | PgDn | | Del | | | - * `--------------------' `--------------------' - */ -// If it accepts an argument (i.e, is a function), it doesn't need KC_. -// Otherwise, it needs KC_* -[BASE] = KEYMAP( // layer 0 : default - // left hand - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, - KC_LGUI, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, ALT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_HOME, - KC_LCTRL, LCTL(KC_C), LCTL(KC_V), KC_LEFT,KC_RGHT, - KC_FN3, KC_F5, - KC_PGUP, - KC_ENT,KC_BSPC,KC_PGDN, - // right hand - KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, - KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, - KC_END, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, - KC_DOWN,KC_UP, ALL_T(KC_NO),KC_GRV, KC_RCTRL, - KC_F2, KC_FN2, - KC_INS, - KC_DELT,KC_FN1, KC_SPC - ), -/* Keymap 1: Symbol Layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |PrintScr| - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | £ | | | | | | . | 0 | = |Alt+F4| - * `----------------------------------' `----------------------------------' - * ↑ ,-------------. ,-------------. - * THERE! | | | | | | - * ,------|------|------| |------+------+------. - * CAD = Ctrl + Alt + Delete | | | | | | | | - * | | |------| |------| | | - * | | | | | CAD | | | - * `--------------------' `--------------------' - */ -// SYMBOLS -[SYMB] = KEYMAP( - // left hand - KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, - 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,M(3),KC_TRNS,KC_TRNS,KC_TRNS, - KC_TRNS,KC_TRNS, - KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS, - // right hand - KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, - KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_TRNS, - 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, LALT(KC_F4), - KC_TRNS, KC_TRNS, - KC_TRNS, - LCTL(LALT(KC_DEL)), KC_TRNS, KC_TRNS -), -/* Keymap 2: Media and mouse keys - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | TEENSY | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | MsUp | | | | | | | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | Prev | Next | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | Lclk | Rclk | |VolDn |VolUp | Mute | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | |Brwser| - * | | |------| |------| |Back | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// MEDIA AND MOUSE -[MDIA] = KEYMAP( - RESET, 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_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_WBAK -), -/* Keymap 3: Unicode Entry - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | Alt | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | + | + | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Alt | | | E | | | | | | | 7 | 8 | 9 | + | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | Alt | A | | D | F | |------| |------| | 4 | 5 | 6 | + | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | Alt | | | C | | B | | | | | 1 | 2 | 3 | + | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | Alt | Alt | Alt | | | | 0 | 0 | 0 | + | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * WINDOWS ONLY SETUP!! | ~L3 | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | Alt | Alt |------| |------| Alt | Alt | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// If it accepts an argument (i.e, is a function), it doesn't need KC_. -// Otherwise, it needs KC_* -[UNIC] = KEYMAP( // layer 3 : Unicode Entry - // left hand - KC_LALT, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, KC_P6, - KC_LALT, KC_TRNS, KC_TRNS, KC_E, KC_TRNS, KC_TRNS, KC_TRNS, - KC_LALT, KC_A, KC_TRNS, KC_D, KC_F, KC_TRNS, - KC_LALT, KC_TRNS, KC_TRNS, KC_C, KC_TRNS, KC_B, KC_TRNS, - KC_LALT, KC_LALT, KC_LALT, KC_TRNS,KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_LALT,KC_LALT, KC_TRNS, - // right hand - KC_P7, KC_P8, KC_P9, KC_P0, KC_PPLS,KC_PPLS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_TRNS, - KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_TRNS, - KC_P0, KC_P0, KC_P0, KC_PPLS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS,KC_LALT, KC_LALT - ), -}; - - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Layer 1 (Symbols) - [2] = ACTION_LAYER_TAP_TOGGLE(MDIA), // FN2 - Momentary Layer 2 (Media) - [3] = ACTION_LAYER_TAP_TOGGLE(UNIC) // FN3 - Momentary Layer 3 (Unicode entry) -}; - -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); - } - case 3: // this would trigger when you hit a key mapped as M(3) - if (record->event.pressed) { - return MACRO( I(255), D(LALT), T(P1), T(P5), T(P6), U(LALT), END ); - } - 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; - default: - // none - break; - } - -}; diff --git a/keyboards/ergodox_ez/keymaps/alexjj/readme.md b/keyboards/ergodox_ez/keymaps/alexjj/readme.md deleted file mode 100644 index 239e32d39..000000000 --- a/keyboards/ergodox_ez/keymaps/alexjj/readme.md +++ /dev/null @@ -1,179 +0,0 @@ -Englishman in New York -=========================== - -:microphone: :tea: - -About ------- - -After using the massdrop configurator to get the basics, I wanted to add a -little extra to my ergodox. Notably the Hyper hotkey, the press and hold, -and a way to have my beloved £ :pound: symbol available[1](#unicode). Why not switch to a GB -layout? Well the computers I use are US keymap'd and I can't always change -that. Plus I've got used to 2/@ and 3/# and moving to the ergodox was hard -enough. :sweat_smile: - -I started from the default and edited from there as I needed. It's somewhat -similar to a regular layout, particularly R1 and shift/controls. I ended up -with a few keys that were blank, so I'm testing out some shortcuts. Alt+F4 for -quitting things in Windows, is one example, but I felt it was better placed on -the 1st layer - in case of fat fingers. - -Layout -------- - -![Layout](rl-layout.jpg "Isn't it lovely") - -### Base Layer - -``` -,--------------------------------------------------. ,--------------------------------------------------. -| ESC | 1! | 2@ | 3# | 4$ | 5% | 6^ | | 7& | 8* | 9( | 0) | -_ | += | BkSp | -|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| -| Tab | Q | W | E | R | T | { | | } | Y | U | I | O | P | |\ | -|--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------| -| Win | A | S | D | F | G |------| |------| H | J | K | L | :; | '" | -|--------+------+------+------+------+------| Home | | End |------+------+------+------+------+--------| -| LShift |Z/Alt | X | C | V | B | | | | N | M | , | . | Alt | RShift | -`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - |LCtrl | COPY | PASTE| Left | Right| | Down | Up |Hyper | `~ | RCtrl | - `----------------------------------' `----------------------------------' - ,-------------. ,-------------. - Hyper = Ctrl+Super+Alt+Shift | ~L3 | F5 | | F2 | ~L2 | - ,------|------|------| |------+------+------. - | | | PgUp | | Ins | | | - | Enter| BkSp |------| |------| ~L1 |Space | - | | | PgDn | | Del | | | - `--------------------' `--------------------' -``` - -### Symbol Layer - -``` -,--------------------------------------------------. ,--------------------------------------------------. -| | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |PrintScr| -|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| -| | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | | -|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| -| | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | -|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| -| | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | -`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - | | £ | | | | | | . | 0 | = |Alt+F4| - `----------------------------------' `----------------------------------' - ↑ ,-------------. ,-------------. - THERE! | | | | | | - ,------|------|------| |------+------+------. - CAD = Ctrl + Alt + Delete | | | | | | | | - | | |------| |------| | | - | | | | | CAD | | | - `--------------------' `--------------------' -``` -### Media Layer - -Not touched this, not used either. - -``` -,--------------------------------------------------. ,--------------------------------------------------. -| TEENSY | | | | | | | | | | | | | | | -|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| -| | | | MsUp | | | | | | | | | | | | -|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| -| | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | -|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| -| | | | | | | | | | | | Prev | Next | | | -`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - | | | | Lclk | Rclk | |VolDn |VolUp | Mute | | | - `----------------------------------' `----------------------------------' - ,-------------. ,-------------. - | | | | | | - ,------|------|------| |------+------+------. - | | | | | | |Brwser| - | | |------| |------| |Back | - | | | | | | | | - `--------------------' `--------------------' -``` -### Unicode Layer - -Used to enter/test unicode input on Windows. All numbers are numpad keys. - -``` -,--------------------------------------------------. ,--------------------------------------------------. -| Alt | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | + | + | | -|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| -| Alt | | | E | | | | | | | 7 | 8 | 9 | + | | -|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| -| Alt | A | | D | F | |------| |------| | 4 | 5 | 6 | + | | -|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| -| Alt | | | C | | B | | | | | 1 | 2 | 3 | + | | -`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - | Alt | Alt | Alt | | | | 0 | 0 | 0 | + | | - `----------------------------------' `----------------------------------' - ,-------------. ,-------------. - WINDOWS ONLY SETUP!! | ~L3 | | | | | - ,------|------|------| |------+------+------. - | | | | | | | | - | Alt | Alt |------| |------| Alt | Alt | - | | | | | | | | - `--------------------' `--------------------' -``` - - -Usage ------- - -~L1 / L2 / L3 will momentarily switch to a layer if held and another key is pressed. -If pressed and released will remain on layer until pressed again. - -### Unicode - -This layout is for Windows only. To enter a character Press and Hold Alt, type + and hex code then release Alt. - -Changelog ------------ - -### [0.2.1] - 2016-04-05 - -* Changed £ to alt code in Windows. Windows sucks at unicode. - -### [0.2.0] - 2016-03-27 - -* Added unicode layer -* Moved Copy/Paste to left hand side -* Switched Enter and Space (again) -* Added L3 (unicode layer) toggle -* Removed Press and Hold for Alt on right hand size (/) -* Swapped Volume Up/Down to match arrows -* Tried fixing £ macro -* Removed * in the matrix function things (upstream change) - -### [0.1.1] - 2016-03-23 - -* Changed £ input to a macro - - -### [0.1.0] - 2016-03-22 - -After actually using the keyboard, I've made some changes: - -* Swapped Enter and Space -* Moved backspace to thumb keys (top right still remains) -* Added Ctrl+Alt+Delete -* Added Teensy Reset on 2nd layer -* Switched Up and Down -* Changed copy/paste to be Ctrl+c and Ctrl+v as KC_COPY/PASTE didn't work (in Windows) -* Moved ~L2 to replace +L1 after learning how the function works (notes above) -* Hopefully fixed GBP symbol (unicode enabled in MakeFile) - -### [0.0.1] - 2016-03-21 - -First version - - -Issues -------- - -Space for feedback and notes for future improvements - ----- -1: For Windows only, and you have to edit the [registry](https://en.wikipedia.org/wiki/Unicode_input#Hexadecimal_code_input). diff --git a/keyboards/ergodox_ez/keymaps/alexjj/rl-layout.jpg b/keyboards/ergodox_ez/keymaps/alexjj/rl-layout.jpg deleted file mode 100644 index e4e92bf46..000000000 Binary files a/keyboards/ergodox_ez/keymaps/alexjj/rl-layout.jpg and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/algernon/COPYING b/keyboards/ergodox_ez/keymaps/algernon/COPYING deleted file mode 100644 index 94a9ed024..000000000 --- a/keyboards/ergodox_ez/keymaps/algernon/COPYING +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/keyboards/ergodox_ez/keymaps/algernon/Makefile b/keyboards/ergodox_ez/keymaps/algernon/Makefile deleted file mode 100644 index 6bf3976b9..000000000 --- a/keyboards/ergodox_ez/keymaps/algernon/Makefile +++ /dev/null @@ -1,35 +0,0 @@ -BOOTMAGIC_ENABLE=no -COMMAND_ENABLE=no -SLEEP_LED_ENABLE=no -UNICODE_ENABLE=no -FORCE_NKRO ?= yes -DEBUG_ENABLE = no -CONSOLE_ENABLE = no -TAP_DANCE_ENABLE = yes -KEYLOGGER_ENABLE ?= yes - -ifeq (${FORCE_NKRO},yes) -OPT_DEFS += -DFORCE_NKRO -endif - -ifeq (${KEYLOGGER_ENABLE},yes) -OPT_DEFS += -DKEYLOGGER_ENABLE -CONSOLE_ENABLE = yes -endif - -KEYMAP_VERSION = $(shell \ - if [ -d "${KEYMAP_PATH}/.git" ]; then \ - cd "${KEYMAP_PATH}" && git describe --abbrev=6 --dirty --always --tags --match 'v*' 2>/dev/null; \ - else echo QMK; fi) - -KEYMAP_BRANCH = $(shell \ - if [ -d "${KEYMAP_PATH}/.git" ]; then \ - cd "${KEYMAP_PATH}"; \ - fi; \ - git rev-parse --abbrev-ref HEAD 2>/dev/null) - -OPT_DEFS += -DKEYMAP_VERSION=\"$(KEYMAP_VERSION)\\\#$(KEYMAP_BRANCH)\" - -ifndef QUANTUM_DIR - include ../../../../Makefile -endif diff --git a/keyboards/ergodox_ez/keymaps/algernon/config.h b/keyboards/ergodox_ez/keymaps/algernon/config.h deleted file mode 100644 index 9bb1025be..000000000 --- a/keyboards/ergodox_ez/keymaps/algernon/config.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef CONFIG_ALGERNON_H -#define CONFIG_ALGERNON_H - -#include "../../config.h" - -#undef MOUSEKEY_TIME_TO_MAX -#undef MOUSEKEY_MAX_SPEED - -#define MOUSEKEY_TIME_TO_MAX 1 -#define MOUSEKEY_MAX_SPEED 2 - -#undef MOUSEKEY_DELAY -#define MOUSEKEY_DELAY 0 - -#undef MOUSEKEY_WHEEL_DELAY -#define MOUSEKEY_WHEEL_DELAY 0 - -#define ONESHOT_TAP_TOGGLE 2 -#define ONESHOT_TIMEOUT 3000 - -#undef LOCKING_SUPPORT_ENABLE -#undef LOCKING_RESYNC_ENABLE - -#undef LEADER_TIMEOUT -#define LEADER_TIMEOUT 1000 - -#endif diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/adore-layer.png b/keyboards/ergodox_ez/keymaps/algernon/images/adore-layer.png deleted file mode 100644 index 3df68ea53..000000000 Binary files a/keyboards/ergodox_ez/keymaps/algernon/images/adore-layer.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/base-layer.png b/keyboards/ergodox_ez/keymaps/algernon/images/base-layer.png deleted file mode 100644 index 7b25a05b3..000000000 Binary files a/keyboards/ergodox_ez/keymaps/algernon/images/base-layer.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/heatmap.png b/keyboards/ergodox_ez/keymaps/algernon/images/heatmap.png deleted file mode 100644 index 356035e0a..000000000 Binary files a/keyboards/ergodox_ez/keymaps/algernon/images/heatmap.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/hun-layer.png b/keyboards/ergodox_ez/keymaps/algernon/images/hun-layer.png deleted file mode 100644 index 104a9544d..000000000 Binary files a/keyboards/ergodox_ez/keymaps/algernon/images/hun-layer.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/nav-n-media-layer.png b/keyboards/ergodox_ez/keymaps/algernon/images/nav-n-media-layer.png deleted file mode 100644 index 16d29e124..000000000 Binary files a/keyboards/ergodox_ez/keymaps/algernon/images/nav-n-media-layer.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/one-handed-layer.png b/keyboards/ergodox_ez/keymaps/algernon/images/one-handed-layer.png deleted file mode 100644 index 698d11e5f..000000000 Binary files a/keyboards/ergodox_ez/keymaps/algernon/images/one-handed-layer.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/steno-layer.png b/keyboards/ergodox_ez/keymaps/algernon/images/steno-layer.png deleted file mode 100644 index fe3c03c93..000000000 Binary files a/keyboards/ergodox_ez/keymaps/algernon/images/steno-layer.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/algernon/keymap.c b/keyboards/ergodox_ez/keymaps/algernon/keymap.c deleted file mode 100644 index c12087292..000000000 --- a/keyboards/ergodox_ez/keymaps/algernon/keymap.c +++ /dev/null @@ -1,1216 +0,0 @@ -/* - * algernon's ErgoDox EZ layout, please see the readme.md file! - */ - -#include "ergodox_ez.h" -#include "led.h" -#include "debug.h" -#include "action_layer.h" -#include "action_util.h" -#include "mousekey.h" -#include "timer.h" -#include "keymap_plover.h" -#include "eeconfig.h" - -/* Layers */ - -enum { - BASE = 0, - ADORE, - ARRW, - APPSEL, - HUN, - NMDIA, - OHLFT, - OHRGT, - PLVR, -}; - -/* Macros */ - -enum { - NONE = 0, - // Buttons that do extra stuff - A_GUI, - A_PLVR, - A_ESC, - A_MPN, - - // Function / number keys - KF_1, // 1, F1 - KF_2, // 2, F2 - KF_3, // ... - KF_4, - KF_5, - KF_6, - KF_7, - KF_8, - KF_9, - KF_10, - KF_11, // =, F11 - - // Application select keys - APP_SLK, // Slack - APP_EMCS, // Emacs - APP_TERM, // Terminal - APP_CHRM, // Chrome - APP_MSIC, // Music - - // Diagonal mouse movement - A_MUL, - A_MUR, - A_MDL, - A_MDR, - - // Hungarian layer keys - HU_AA, // Á - HU_OO, // Ó - HU_EE, // É - HU_UU, // Ú - HU_II, // Í - HU_OE, // Ö - HU_UE, // Ü - HU_OEE, // Ő - HU_UEE, // Ű - - // One-handed layout specials - OH_BSSPC, - OH_ENTSFT, - OH_BASE, - OH_LEFT, - OH_RIGHT, -}; - -/* Fn keys */ - -enum { - F_BSE = 0, - F_HUN, - F_GUI, - F_SFT, - F_ALT, - F_CTRL -}; - -/* Custom keycodes */ - -enum { - CT_CLN = 0, - CT_MNS, - CT_TA, -}; - -/* States & timers */ - -uint16_t gui_timer = 0; - -uint16_t kf_timers[12]; - -uint16_t oh_base_timer = 0; -uint16_t oh_bsspc_timer = 0; -uint16_t oh_entsft_timer = 0; - -#define OH_BLINK_INTERVAL 500 - -uint8_t oh_left_blink = 0; -uint16_t oh_left_blink_timer = 0; -uint8_t oh_right_blink = 0; -uint16_t oh_right_blink_timer = 0; - -#if KEYLOGGER_ENABLE -bool log_enable = false; -#endif - -bool time_travel = false; - -/* The Keymap */ - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* Keymap 0: Base Layer - * - * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | `~ | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 | Plvr | | Apps | 6 F6 | 7 F7 | 8 F8 | 9 F9 | 0 F10| F11 | - * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | Next/Prev | ' | , | . | P | Y | [ | | ] | F | G | C | R | L | \ | - * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | Tab/ARROW | A | O | E | U | I |------| |------| D | H | T | N | S | = / Arrow | - * |-----------+------+------+------+------+------| ( | | ) |------+------+------+------+------+-----------| - * | Play/Pause| / | Q | J | K | X | | | | B | M | W | V | Z | Stop | - * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * | | | | | : | | - | | | | | - * `-----------------------------------' `-----------------------------------' - * ,-------------. ,-------------. - * | LAlt | GUI | | MDIA | 1HND | - * ,------|------|------| |------+------+------. - * | | | Ctrl | | LEAD | | | - * |Backsp|LShift|------| |------| Enter| Space| - * | | | ESC | | HUN | | | - * `--------------------' `--------------------' - */ -[BASE] = KEYMAP( -// left hand - KC_GRV ,M(KF_1) ,M(KF_2) ,M(KF_3),M(KF_4),M(KF_5),M(A_PLVR) -,M(A_MPN) ,KC_QUOT ,KC_COMM ,KC_DOT ,KC_P ,KC_Y ,KC_LBRC -,TD(CT_TA) ,KC_A ,KC_O ,KC_E ,KC_U ,KC_I -,KC_MPLY ,KC_SLSH ,KC_Q ,KC_J ,KC_K ,KC_X ,KC_LPRN -,KC_NO ,KC_NO ,KC_NO ,KC_NO ,TD(CT_CLN) - - ,F(F_ALT),F(F_GUI) - ,F(F_CTRL) - ,KC_BSPC,F(F_SFT),M(A_ESC) - - // right hand - ,KC_APP ,M(KF_6),M(KF_7) ,M(KF_8),M(KF_9) ,M(KF_10) ,KC_F11 - ,KC_RBRC ,KC_F ,KC_G ,KC_C ,KC_R ,KC_L ,KC_BSLS - ,KC_D ,KC_H ,KC_T ,KC_N ,KC_S ,KC_EQL - ,KC_RPRN ,KC_B ,KC_M ,KC_W ,KC_V ,KC_Z ,KC_MSTP - ,TD(CT_MNS),KC_NO ,KC_NO ,KC_NO ,KC_NO - - ,OSL(NMDIA),M(OH_LEFT) - ,KC_LEAD - ,F(F_HUN) ,KC_ENT ,KC_SPC - ), - -/* Keymap 1: Adore layer - * - * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | `~ | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 | Plvr | | Apps | 6 F6 | 7 F7 | 8 F8 | 9 F9 | 0 F10| F11 | - * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | Next/Prev | , | . | L | W | M | [ | | ] | F | H | C | P | Y | \ | - * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | Tab/Arrow | A | O | E | I | U |------| |------| D | R | T | N | S | = / Arrow | - * |-----------+------+------+------+------+------| ( | | ) |------+------+------+------+------+-----------| - * | Play/Pause| / | Z | ' | K | X | | | | B | G | V | J | Q | Stop | - * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * | | | | | : | | - | | | | | - * `-----------------------------------' `-----------------------------------' - * ,-------------. ,-------------. - * | LAlt | GUI | | MDIA | 1HND | - * ,------|------|------| |------+------+------. - * | | | Ctrl | | LEAD | | | - * |Backsp|LShift|------| |------| Enter| Space| - * | | | ESC | | HUN | | | - * `--------------------' `--------------------' - */ -[ADORE] = KEYMAP( -// left hand - KC_GRV ,M(KF_1) ,M(KF_2) ,M(KF_3),M(KF_4),M(KF_5),M(A_PLVR) -,M(A_MPN) ,KC_COMM ,KC_DOT ,KC_L ,KC_W ,KC_M ,KC_LBRC -,TD(CT_TA) ,KC_A ,KC_O ,KC_E ,KC_I ,KC_U -,KC_MPLY ,KC_SLSH ,KC_Z ,KC_QUOT,KC_K ,KC_X ,KC_LPRN -,KC_NO ,KC_NO ,KC_NO ,KC_NO ,TD(CT_CLN) - - ,F(F_ALT),F(F_GUI) - ,F(F_CTRL) - ,KC_BSPC,F(F_SFT),M(A_ESC) - - // right hand - ,KC_APP ,M(KF_6),M(KF_7) ,M(KF_8),M(KF_9) ,M(KF_10) ,KC_F11 - ,KC_RBRC ,KC_F ,KC_H ,KC_C ,KC_P ,KC_Y ,KC_BSLS - ,KC_D ,KC_R ,KC_T ,KC_N ,KC_S ,KC_EQL - ,KC_RPRN ,KC_B ,KC_G ,KC_V ,KC_J ,KC_Q ,KC_MSTP - ,TD(CT_MNS),KC_NO ,KC_NO ,KC_NO ,KC_NO - - ,OSL(NMDIA),M(OH_LEFT) - ,KC_LEAD - ,F(F_HUN) ,KC_ENT ,KC_SPC - ), - -/* Keymap 2: Arrow layer - * - * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | | | | | | | | | | | Home | Up | End | | | - * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | | | | | | |------| |------| | Left | Down | Rght | | | - * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | | | | | | | | | | | | | | | | - * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| PgUp | PgDn | - * | | | | | | | | - * `--------------------' `--------------------' - */ - -[ARRW] = 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 ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,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_HOME ,KC_UP ,KC_END ,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_PGUP ,KC_PGDN - ), - -/* Keymap 3: Application select layer - * - * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | |Music |Slack |Emacs |Term |Chrome| | | | | | | | | | - * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | | | | | | | | | | | | | | | | - * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | | | | | | |------| |------| | | | | | | - * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | | | | | | | | | | | | | | | | - * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ - -[APPSEL] = KEYMAP( -// left hand - KC_TRNS ,M(APP_MSIC),M(APP_SLK),M(APP_EMCS),M(APP_TERM),M(APP_CHRM),KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,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_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,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 4: Hungarian Layer - * - * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | | | Ő | | Ű | | | | | | | | | | | - * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | | Á | Ó | É | Ú | Í |------| |------| | | | | | | - * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | | | Ö | | Ü | | | | | | | | | | | - * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | BASE | | | - * `--------------------' `--------------------' - */ - -[HUN] = KEYMAP( -// left hand - KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO -,KC_NO ,KC_NO ,M(HU_OEE),KC_NO ,M(HU_UEE),KC_NO ,KC_NO -,KC_NO ,M(HU_AA),M(HU_OO) ,M(HU_EE),M(HU_UU) ,M(HU_II) -,KC_NO ,KC_NO ,M(HU_OE) ,KC_NO ,M(HU_UE) ,KC_NO ,KC_NO -,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - - ,KC_NO ,KC_NO - ,KC_NO - ,KC_NO ,KC_TRNS ,KC_TRNS - - // right hand - ,KC_TRNS ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - - ,KC_NO ,KC_NO - ,KC_NO - ,F(F_BSE),KC_TRNS ,KC_TRNS - ), - -/* Keymap 5: Navigation & Media layer - * - * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | MS Slow | | | | | |ScrLCK| |ScrLCK| | | | | | | - * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | MS Normal | | Home | Up | PgUp | | | |Scroll| |MsUpL | MsUp |MsUpR | |PrintScreen| - * |-----------+------+------+------+------+------| | | Up |------+------+------+------+------+-----------| - * | MS Fast | | Left | Down | Right| |------| |------| |MsLeft| MsDn |MsRght| | | - * |-----------+------+------+------+------+------| | |Scroll|------+------+------+------+------+-----------| - * | Play/Pause| | End | Down | PgDn | | | | Down | |MsDnL | MsDn |MsDnR | | Stop | - * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | Mute | VlUp | | BASE | MClk | - * ,------|------|------| |------+------+------. - * | | | VlDn | | Prev |Left |Right | - * | SPC | Enter|------| |------| Click| Click| - * | | | ESC | | Next | | | - * `--------------------' `--------------------' - */ -[NMDIA] = KEYMAP( -// left hand - KC_ACL0 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,LGUI(KC_L) -,KC_ACL1 ,KC_NO ,KC_HOME ,KC_UP ,KC_PGUP ,KC_NO ,KC_NO -,KC_ACL2 ,KC_NO ,KC_LEFT ,KC_DOWN ,KC_RIGHT,KC_NO -,KC_MPLY ,KC_NO ,KC_END ,KC_DOWN ,KC_PGDN ,KC_NO ,KC_NO -,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_MUTE ,KC_VOLU - ,KC_VOLD - ,KC_SPC,KC_ENTER,M(A_ESC) - - // right hand - ,LGUI(KC_L),KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_WH_U ,KC_NO ,M(A_MUL),KC_MS_U ,M(A_MUR),KC_NO ,KC_PSCR - ,KC_NO ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_NO ,KC_NO - ,KC_WH_D ,KC_NO ,M(A_MDL),KC_MS_D ,M(A_MDR),KC_NO ,KC_MSTP - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - - ,KC_TRNS ,KC_MS_BTN3 - ,KC_MPRV - ,KC_MNXT ,KC_BTN1 ,KC_BTN2 - ), - -/* Keymap 6: One-handed, left side - * - * ,-----------------------------------------------------. - * | `~ | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 |A BSE| - * |-----------+------+------+------+------+-------------| - * | Tab | ' | , | . | P | Y | [ | - * |-----------+------+------+------+------+------| | - * | - | A | O | E | U | I |------| - * |-----------+------+------+------+------+------| ( | - * | Play/Pause| ; | Q | J | K | X | | - * `-----------+------+------+------+------+-------------' - * | Home | End | Down | Up | ESC | - * `-----------------------------------' - * ,-------------. - * | LAlt | GUI | - * ,------|------|------| - * |BackSp|LShift| Ctrl | - * | | |------| - * |Space |Enter |OTHER | - * `--------------------' - */ -[OHLFT] = KEYMAP( -// left hand - KC_GRV ,M(KF_1) ,M(KF_2) ,M(KF_3) ,M(KF_4) ,M(KF_5) ,M(OH_BASE) -,KC_TAB ,KC_QUOT ,KC_COMM ,KC_DOT ,KC_P ,KC_Y ,KC_LBRC -,KC_MINS ,KC_A ,KC_O ,KC_E ,KC_U ,KC_I -,KC_MPLY ,KC_SCLN ,KC_Q ,KC_J ,KC_K ,KC_X ,KC_LPRN -,KC_HOME ,KC_END ,KC_DOWN ,KC_UP ,M(A_ESC) - - ,KC_TRNS ,KC_TRNS - ,KC_TRNS - ,M(OH_BSSPC),M(OH_ENTSFT),M(OH_RIGHT) - - // right hand - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - - ,KC_NO ,KC_NO - ,KC_NO - ,KC_NO ,KC_NO ,KC_NO - ), - -/* Keymap 7: One-handed, right side - * - * ,-----------------------------------------------------. - * | = F11 | 0 F10| 9 F9 | 8 F8 | 7 F7 | 6 F6 |A BSE| - * |-----------+------+------+------+------+-------------| - * | / | L | R | C | G | F | ] | - * |-----------+------+------+------+------+------| | - * | \ | S | N | T | H | D |------| - * |-----------+------+------+------+------+------| ) | - * | Stop | Z | V | W | M | B | | - * `-----------+------+------+------+------+-------------' - * | PgDn | PgUp | Right| Left | ESC | - * `-----------------------------------' - * ,-------------. - * | LAlt | GUI | - * ,------|------|------| - * |BackSp|LShift| Ctrl | - * | | |------| - * |Space |Enter |OTHER | - * `--------------------' - */ -[OHRGT] = KEYMAP( -// left hand - M(KF_11) ,M(KF_10) ,M(KF_9) ,M(KF_8) ,M(KF_7) ,M(KF_6) ,M(OH_BASE) -,KC_SLSH ,KC_L ,KC_R ,KC_C ,KC_G ,KC_F ,KC_RBRC -,KC_BSLS ,KC_S ,KC_N ,KC_T ,KC_H ,KC_D -,KC_MSTP ,KC_Z ,KC_V ,KC_W ,KC_M ,KC_B ,KC_RPRN -,KC_PGDN ,KC_PGUP ,KC_RGHT ,KC_LEFT ,M(A_ESC) - - ,KC_TRNS ,KC_TRNS - ,KC_TRNS - ,M(OH_BSSPC),M(OH_ENTSFT),M(OH_LEFT) - - // right hand - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - - ,KC_NO ,KC_NO - ,KC_NO - ,KC_NO ,KC_NO ,KC_NO - ), - -/* Keymap 8: Steno for Plover - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | BASE | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | # | # | # | # | # | # | | # | # | # | # | # | # | # | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | T | P | H | |------| |------| | F | P | L | T | D | - * |--------+ S +------+------+------+ * | * | | * | * +------+------+------+------+--------| - * | | | K | W | R | | | | | | R | B | G | S | Z | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | A | O |------| |------| E | U | - * | | | | | | | | - * `--------------------' `--------------------' - */ - -[PLVR] = KEYMAP( -// left hand -KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, M(A_PLVR), -KC_NO, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, -KC_NO, PV_LS, PV_LT, PV_LP, PV_LH, PV_STAR, -KC_NO, PV_LS, PV_LK, PV_LW, PV_LR, PV_STAR, PV_STAR, -KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, - KC_NO, - PV_A, PV_O, KC_NO, - - // right hand - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, - PV_STAR, PV_RF, PV_RP, PV_RL, PV_RT, PV_RD, - PV_STAR, PV_STAR, PV_RR, PV_RB, PV_RG, PV_RS, PV_RZ, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, - KC_NO, - KC_NO,PV_E, PV_U - ), - -}; - -const uint16_t PROGMEM fn_actions[] = { - [F_BSE] = ACTION_LAYER_CLEAR(ON_PRESS) - ,[F_HUN] = ACTION_LAYER_INVERT(HUN, ON_PRESS) - ,[F_GUI] = ACTION_MACRO_TAP(A_GUI) - ,[F_SFT] = ACTION_MODS_ONESHOT (MOD_LSFT) - ,[F_ALT] = ACTION_MODS_ONESHOT (MOD_LALT) - ,[F_CTRL] = ACTION_MODS_ONESHOT (MOD_LCTL) -}; - -void toggle_steno(int pressed) -{ - uint8_t layer = biton32(layer_state); - - if (pressed) { - if (layer != PLVR) layer_on(PLVR); else layer_off(PLVR); - - register_code(PV_LP); - register_code(PV_LH); - register_code(PV_LR); - register_code(PV_O); - register_code(PV_RL); - register_code(PV_RG); - } else { - unregister_code(PV_LP); - unregister_code(PV_LH); - unregister_code(PV_LR); - unregister_code(PV_O); - unregister_code(PV_RL); - unregister_code(PV_RG); - } -} - -macro_t *ang_do_hun (keyrecord_t *record, uint16_t accent, uint16_t hun_char) -{ - uint8_t need_shift = 0; - uint8_t hold_shift = 0; - - if (!record->event.pressed) - return MACRO_NONE; - - layer_off (HUN); - - if (keyboard_report->mods & MOD_BIT (KC_LSFT)) { - hold_shift = 1; - need_shift = 1; - unregister_code (KC_LSFT); - } - if ((get_oneshot_mods () & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out ()) { - need_shift = 1; - hold_shift = 0; - unregister_code (KC_LSFT); - } - - clear_oneshot_mods (); - - register_code (KC_RALT); - unregister_code (KC_RALT); - if (accent == (KC_DQT)) { - register_code (KC_RSFT); - } - register_code (accent); - unregister_code (accent); - if (need_shift && accent != (KC_DQT)) { - register_code (KC_RSFT); - } else if (accent == (KC_DQT) && !need_shift) { - unregister_code (KC_RSFT); - } - register_code (hun_char); - unregister_code (hun_char); - if (need_shift || accent == (KC_DQT)) - unregister_code (KC_RSFT); - if (hold_shift) - register_code (KC_LSFT); - - return MACRO_NONE; -} - -void ang_handle_kf (keyrecord_t *record, uint8_t id) -{ - uint8_t code = id - KF_1; - - if (record->event.pressed) { - kf_timers[code] = timer_read (); - } else { - uint8_t kc; - - if (timer_elapsed (kf_timers[code]) > TAPPING_TERM) { - // Long press - kc = KC_F1 + code; - } else { - if (id == KF_11) - kc = KC_EQL; - else - kc = KC_1 + code; - } - - register_code (kc); - unregister_code (kc); - } -} - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - case A_ESC: - if (record->event.pressed) { - if ((get_oneshot_mods ()) && !has_oneshot_mods_timed_out ()) { - clear_oneshot_mods (); - } else { - register_code (KC_ESC); - } - layer_off (HUN); - } else { - unregister_code (KC_ESC); - } - break; - - case A_MPN: - if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || - ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out())) { - int oneshot = ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out()); - - if (oneshot) - clear_oneshot_mods (); - unregister_code (KC_LSFT); - - register_code (KC_MPRV); - unregister_code (KC_MPRV); - - if (!oneshot) - register_code (KC_LSFT); - } else { - return MACRO (T(MNXT), END); - } - } - break; - - /* Hungarian layer */ - case HU_AA: - return ang_do_hun (record, KC_QUOT, KC_A); - case HU_OO: - return ang_do_hun (record, KC_QUOT, KC_O); - case HU_EE: - return ang_do_hun (record, KC_QUOT, KC_E); - case HU_UU: - return ang_do_hun (record, KC_QUOT, KC_U); - case HU_II: - return ang_do_hun (record, KC_QUOT, KC_I); - case HU_OE: - return ang_do_hun (record, KC_DQT, KC_O); - case HU_UE: - return ang_do_hun (record, KC_DQT, KC_U); - case HU_OEE: - return ang_do_hun (record, KC_EQL, KC_O); - case HU_UEE: - return ang_do_hun (record, KC_EQL, KC_U); - - /* Mouse movement */ - case A_MUL: - if (record->event.pressed) { - mousekey_on(KC_MS_UP); - mousekey_on(KC_MS_LEFT); - } else { - mousekey_off(KC_MS_UP); - mousekey_off(KC_MS_LEFT); - } - mousekey_send(); - break; - - case A_MUR: - if (record->event.pressed) { - mousekey_on(KC_MS_UP); - mousekey_on(KC_MS_RIGHT); - } else { - mousekey_off(KC_MS_UP); - mousekey_off(KC_MS_RIGHT); - } - mousekey_send(); - break; - - case A_MDL: - if (record->event.pressed) { - mousekey_on(KC_MS_DOWN); - mousekey_on(KC_MS_LEFT); - } else { - mousekey_off(KC_MS_DOWN); - mousekey_off(KC_MS_LEFT); - } - mousekey_send(); - break; - - case A_MDR: - if (record->event.pressed) { - mousekey_on(KC_MS_DOWN); - mousekey_on(KC_MS_RIGHT); - } else { - mousekey_off(KC_MS_DOWN); - mousekey_off(KC_MS_RIGHT); - } - mousekey_send(); - break; - - /* Plover base */ - case A_PLVR: - toggle_steno(record->event.pressed); - break; - - /* GUI & AppSel */ - case A_GUI: - if (record->event.pressed) { - register_code (KC_LGUI); - if (record->tap.count && !record->tap.interrupted) { - if (record->tap.count >= 2) { - register_code (KC_W); - layer_on (APPSEL); - set_oneshot_layer (APPSEL, ONESHOT_START); - } - } else { - record->tap.count = 0; - } - gui_timer = 0; - } else { - if (record->tap.count >= 2) - { - unregister_code (KC_W); - clear_oneshot_layer_state (ONESHOT_PRESSED); - } - gui_timer = timer_read (); - } - break; - - case APP_SLK: - return MACRODOWN(T(S), T(L), T(A), T(C), T(K), T(ENT), END); - - case APP_EMCS: - return MACRODOWN(T(E), T(M), T(A), T(C), T(S), T(ENT), END); - - case APP_TERM: - return MACRODOWN(T(T), T(E), T(R), T(M), T(ENT), END); - - case APP_CHRM: - return MACRODOWN(T(C), T(H), T(R), T(O), T(M), T(ENT), END); - - case APP_MSIC: - return MACRODOWN(T(R), T(H), T(Y), T(T), T(H), T(M), T(B), T(O), T(X), T(ENT), END); - - /* Function keys */ - case KF_1 ... KF_11: - ang_handle_kf (record, id); - break; - - /* 1HAND layout */ - case OH_BASE: - if (record->event.pressed) { - oh_base_timer = timer_read (); - } else { - if (timer_elapsed (oh_base_timer) > TAPPING_TERM) { - layer_clear (); - } else { - return MACRO (T(APP), END); - } - } - break; - - case OH_BSSPC: - if (record->event.pressed) { - oh_bsspc_timer = timer_read (); - } else { - if (timer_elapsed (oh_bsspc_timer) > TAPPING_TERM) { - return MACRO (T(BSPC), END); - } else { - return MACRO (T(SPC), END); - } - } - break; - - case OH_ENTSFT: - if (record->event.pressed) { - oh_entsft_timer = timer_read (); - } else { - if (timer_elapsed (oh_entsft_timer) > TAPPING_TERM) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT)) - unregister_code (KC_LSFT); - else - register_code (KC_LSFT); - } else { - return MACRO (T(ENT), END); - } - } - break; - - case OH_LEFT: - if (record->event.pressed) { - layer_move (OHLFT); - oh_left_blink = 1; - oh_left_blink_timer = timer_read (); - ergodox_right_led_1_on (); - } - break; - - case OH_RIGHT: - if (record->event.pressed) { - layer_move (OHRGT); - oh_right_blink = 1; - oh_right_blink_timer = timer_read (); - ergodox_right_led_3_on (); - } - break; - } - return MACRO_NONE; -}; - -uint8_t is_adore = 0; - -// Runs just one time when the keyboard initializes. -void matrix_init_user(void) { - uint8_t dl; - - ergodox_led_all_on(); - for (int i = LED_BRIGHTNESS_HI; i > LED_BRIGHTNESS_LO; i--) { - ergodox_led_all_set (i); - _delay_ms (5); - } - _delay_ms(1000); - for (int i = LED_BRIGHTNESS_LO; i > 0; i--) { - ergodox_led_all_set (i); - _delay_ms (10); - } - ergodox_led_all_off(); - - if (!eeconfig_is_enabled()) - eeconfig_init(); - dl = eeconfig_read_default_layer (); - if (dl == (1UL << ADORE)) - is_adore = 1; -}; - -LEADER_EXTERNS(); - -void ang_do_unicode (void) { - register_code (KC_RCTL); - register_code (KC_RSFT); - register_code (KC_U); - unregister_code (KC_U); - unregister_code (KC_RSFT); - unregister_code (KC_RCTL); - _delay_ms (100); -} - -void ang_tap (uint16_t codes[]) { - for (int i = 0; codes[i] != 0; i++) { - register_code (codes[i]); - unregister_code (codes[i]); - _delay_ms (50); - } -} - -#define TAP_ONCE(code) \ - register_code (code); \ - unregister_code (code) - -void ang_tap_dance_cln_finished (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - register_code (KC_RSFT); - register_code (KC_SCLN); - } else if (state->count == 2) { - register_code (KC_SCLN); - } -} - -void ang_tap_dance_cln_reset (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - unregister_code (KC_SCLN); - unregister_code (KC_RSFT); - } else if (state->count == 2) { - unregister_code (KC_SCLN); - } -} - -void ang_tap_dance_mns_finished (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - register_code (KC_MINS); - } else if (state->count == 2) { - register_code (KC_RSFT); - register_code (KC_MINS); - } -} - -void ang_tap_dance_mns_reset (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - unregister_code (KC_MINS); - } else if (state->count == 2) { - unregister_code (KC_RSFT); - unregister_code (KC_MINS); - } -} - -typedef struct { - bool layer_toggle; - bool sticky; - bool finished_once; -} td_ta_state_t; - -void ang_tap_dance_ta_finished (qk_tap_dance_state_t *state, void *user_data) { - td_ta_state_t *td_ta = (td_ta_state_t *) user_data; - - if (td_ta->finished_once) { - return; - } - - if (td_ta->sticky) { - td_ta->sticky = false; - td_ta->layer_toggle = false; - layer_off (ARRW); - return; - } - - td_ta->finished_once = true; - if (state->count == 1 && !state->pressed) { - register_code (KC_TAB); - td_ta->sticky = false; - td_ta->layer_toggle = false; - } else { - td_ta->layer_toggle = true; - layer_on (ARRW); - td_ta->sticky = (state->count == 2); - } -} - -void ang_tap_dance_ta_reset (qk_tap_dance_state_t *state, void *user_data) { - td_ta_state_t *td_ta = (td_ta_state_t *) user_data; - - if (!td_ta->layer_toggle) - unregister_code (KC_TAB); - if (!td_ta->sticky) - layer_off (ARRW); - - td_ta->finished_once = false; -} - -const qk_tap_dance_action_t tap_dance_actions[] = { - [CT_CLN] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, ang_tap_dance_cln_finished, ang_tap_dance_cln_reset) - ,[CT_MNS] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, ang_tap_dance_mns_finished, ang_tap_dance_mns_reset) - ,[CT_TA] = { - .fn = { NULL, ang_tap_dance_ta_finished, ang_tap_dance_ta_reset }, - .user_data = (void *)&((td_ta_state_t) { false, false, false }) - } -}; - -// Runs constantly in the background, in a loop. -void matrix_scan_user(void) { - uint8_t layer = biton32(layer_state); - - if (gui_timer && timer_elapsed (gui_timer) > TAPPING_TERM) - unregister_code (KC_LGUI); - - if (layer != OHLFT) - oh_left_blink = 0; - if (layer != OHRGT) - oh_right_blink = 0; - - if (layer == HUN) { - ergodox_right_led_2_on(); - ergodox_right_led_3_on(); - } else if (layer == NMDIA) { - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); - } else if (layer == PLVR) { - ergodox_right_led_1_on (); - ergodox_right_led_2_on (); - ergodox_right_led_3_on (); - } else if (layer == ADORE) { - ergodox_right_led_1_on (); - ergodox_right_led_2_on (); - ergodox_right_led_3_on (); - - ergodox_right_led_2_set (LED_BRIGHTNESS_HI); - } - - if (layer == OHLFT || layer == OHRGT) { - ergodox_right_led_2_on(); - - if (oh_left_blink) { - if (timer_elapsed (oh_left_blink_timer) > OH_BLINK_INTERVAL) { - if ((keyboard_report->mods & MOD_BIT(KC_LSFT)) == 0) - ergodox_right_led_1_off (); - } - if (timer_elapsed (oh_left_blink_timer) > OH_BLINK_INTERVAL * 2) { - ergodox_right_led_1_on (); - oh_left_blink_timer = timer_read (); - } - } - - if (oh_right_blink) { - if (timer_elapsed (oh_right_blink_timer) > OH_BLINK_INTERVAL) { - if ((keyboard_report->mods & MOD_BIT(KC_LCTRL)) == 0) - ergodox_right_led_3_off (); - } - if (timer_elapsed (oh_right_blink_timer) > OH_BLINK_INTERVAL * 2) { - ergodox_right_led_3_on (); - oh_right_blink_timer = timer_read (); - } - } - } - - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || - ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out())) { - ergodox_right_led_1_set (LED_BRIGHTNESS_HI); - ergodox_right_led_1_on (); - } else { - ergodox_right_led_1_set (LED_BRIGHTNESS_LO); - if (layer != OHLFT && layer != NMDIA && layer != PLVR && layer != ADORE) - ergodox_right_led_1_off (); - } - - if (keyboard_report->mods & MOD_BIT(KC_LALT) || - ((get_oneshot_mods() & MOD_BIT(KC_LALT)) && !has_oneshot_mods_timed_out())) { - ergodox_right_led_2_set (LED_BRIGHTNESS_HI); - ergodox_right_led_2_on (); - } else { - ergodox_right_led_2_set (LED_BRIGHTNESS_LO); - if (layer != OHRGT && layer != HUN && layer != OHLFT && layer != NMDIA && layer != PLVR && layer != ADORE) - ergodox_right_led_2_off (); - } - - if (keyboard_report->mods & MOD_BIT(KC_LCTRL) || - ((get_oneshot_mods() & MOD_BIT(KC_LCTRL)) && !has_oneshot_mods_timed_out())) { - ergodox_right_led_3_set (LED_BRIGHTNESS_HI); - ergodox_right_led_3_on (); - } else { - ergodox_right_led_3_set (LED_BRIGHTNESS_LO); - if (layer != OHRGT && layer != HUN && layer != PLVR && layer != ADORE) - ergodox_right_led_3_off (); - } - - LEADER_DICTIONARY() { - leading = false; - leader_end (); - -#if KEYLOGGER_ENABLE - SEQ_ONE_KEY (KC_D) { - ergodox_led_all_on(); - _delay_ms(100); - ergodox_led_all_off(); - log_enable = !log_enable; - } -#endif - - SEQ_ONE_KEY (KC_T) { - time_travel = !time_travel; - } - - SEQ_ONE_KEY (KC_U) { - ang_do_unicode (); - } - - SEQ_ONE_KEY (KC_V) { - SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ (" QMK_VERSION "/" KEYMAP_VERSION ")"); - } - - SEQ_ONE_KEY (KC_L) { - /* λ */ - ang_do_unicode (); - - uint16_t codes[] = {KC_0, KC_3, KC_B, KC_B, KC_ENT, 0}; - ang_tap (codes); - } - - SEQ_ONE_KEY (KC_Y) { - uint16_t codes[] = {KC_BSLS, KC_O, KC_SLSH, 0}; - ang_tap (codes); - } - - SEQ_ONE_KEY (KC_S) { - ang_do_unicode (); TAP_ONCE (KC_A); TAP_ONCE (KC_F); TAP_ONCE (KC_SPC); - TAP_ONCE (KC_BSLS); - register_code (KC_RSFT); TAP_ONCE (KC_MINS); TAP_ONCE (KC_9); unregister_code (KC_RSFT); - ang_do_unicode (); TAP_ONCE (KC_3); TAP_ONCE (KC_0); TAP_ONCE (KC_C); TAP_ONCE (KC_4); TAP_ONCE (KC_SPC); - register_code (KC_RSFT); TAP_ONCE (KC_0); TAP_ONCE (KC_MINS); unregister_code (KC_RSFT); - TAP_ONCE (KC_SLSH); - ang_do_unicode (); TAP_ONCE (KC_A); TAP_ONCE (KC_F); TAP_ONCE (KC_SPC); - } - - SEQ_TWO_KEYS (KC_W, KC_M) { - register_code (KC_LALT); - register_code (KC_F2); - unregister_code (KC_F2); - unregister_code (KC_LALT); - - _delay_ms (1000); - - uint16_t codes[] = {KC_M, KC_A, KC_X, KC_MINS, KC_F, KC_O, KC_C, KC_U, KC_S, KC_E, KC_D, KC_ENT, 0}; - ang_tap (codes); - register_code (KC_LGUI); - register_code (KC_UP); - unregister_code (KC_UP); - unregister_code (KC_LGUI); - } - - SEQ_ONE_KEY (KC_A) { - if (is_adore == 0) { - default_layer_and (0); - default_layer_or ((1UL << ADORE)); - eeconfig_update_default_layer ((1UL << ADORE)); - is_adore = 1; - - ergodox_led_all_off (); - ergodox_right_led_3_on (); - _delay_ms (100); - ergodox_right_led_2_on (); - _delay_ms (100); - ergodox_right_led_3_off (); - ergodox_right_led_1_on (); - _delay_ms (100); - ergodox_right_led_2_off (); - _delay_ms (100); - ergodox_right_led_1_off (); - } else { - is_adore = 0; - default_layer_and (0); - default_layer_or (1UL << BASE); - eeconfig_update_default_layer ((1UL << BASE)); - - ergodox_led_all_off (); - ergodox_right_led_1_on (); - _delay_ms (100); - ergodox_right_led_2_on (); - _delay_ms (100); - ergodox_right_led_1_off (); - ergodox_right_led_3_on (); - _delay_ms (100); - ergodox_right_led_2_off (); - _delay_ms (100); - ergodox_right_led_3_off (); - } - } - } -} - -static uint16_t last4[4]; - -bool process_record_user (uint16_t keycode, keyrecord_t *record) { -#if KEYLOGGER_ENABLE - uint8_t layer = biton32(layer_state); - - if (log_enable && layer == BASE) { - xprintf ("KL: col=%d, row=%d\n", record->event.key.col, - record->event.key.row); - } -#endif - - if (time_travel && !record->event.pressed) { - uint8_t p; - - // shift cache one to the left - for (p = 0; p < 3; p++) { - last4[p] = last4[p + 1]; - } - last4[3] = keycode; - - if (last4[0] == KC_D && last4[1] == KC_A && last4[2] == KC_T && last4[3] == KC_E) { - uint16_t codes[] = {KC_E, KC_SPC, KC_MINS, KC_D, KC_SPC, KC_QUOT, 0}; - ang_tap (codes); - register_code (KC_RSFT); - register_code (KC_EQL); - unregister_code (KC_EQL); - unregister_code (KC_RSFT); - - uint16_t codes2[] = {KC_4, KC_SPC, KC_D, KC_A, KC_Y, KC_S, KC_QUOT, 0}; - ang_tap (codes2); - - return false; - } - } - - return true; -} diff --git a/keyboards/ergodox_ez/keymaps/algernon/readme.md b/keyboards/ergodox_ez/keymaps/algernon/readme.md deleted file mode 100644 index 6fe177511..000000000 --- a/keyboards/ergodox_ez/keymaps/algernon/readme.md +++ /dev/null @@ -1,198 +0,0 @@ - - -algernon's layout -======================= - -This is an unconventional layout for the ErgoDox EZ. For more details about the history of the layout, see my [blog posts about my ErgoDox journey][blog-ergodox]. - - [blog-ergodox]: https://asylum.madhouse-project.org/blog/tags/ergodox/ - -Some of the things in the layout only work when one uses Spacemacs and GNOME under Linux. Your mileage may vary. - -## Table of Contents - -* [Layouts](#layouts) - - [Base layer](#base-layer) - - [ADORE layer](#adore-layer) - - [Hungarian layer](#hungarian-layer) - - [Navigation and media layer](#navigation-and-media-layer) - - [One-handed layer](#one-handed-layer) - - [Steno layer](#steno-layer) - - [LED states](#led-states) -* [Tools](#tools) - - [Heatmap](#heatmap) -* [Building](#building) - - [Using on Windows](#using-on-windows) -* [Changelog](#changelog) -* [License](#license) - -# Layouts - -## Base layer - -[![Base layer](images/base-layer.png)](http://www.keyboard-layout-editor.com/#/gists/28f7eb305fdbff943613e1dc7aa9e82b) - -At its core, this is a Dvorak layout, with some minor changes. The more interesting parts are how certain keys behave: - -* The keys on the number row double as function keys, when held for a bit longer than an usual tap. This allows me to use the function keys without having to switch layers. -* The `Shift`, `Alt`, and `Control` modifiers are one-shot. When tapped, they are considered active for the next key press only. When double tapped, they toggle on, until a third, single tap sometime later. When held, they act as expected. My usual pattern is that I use these for the next keypress only, so this behaviour is perfect. If I need them held, I'll just double-tap. -* The `GUI` key is special, because when I double-tap it, it sends `GUI + w`, which pops up an application selector. It also switches to a one-shot layer, where the number row on the left half turns into app selector macros, for the most common things I usually want to switch to. Otherwise it behaves as on a normal layout. -* The `ESC` key also doubles as a one-shot cancel key: if tapped while any of the one-shot modifiers are in-flight (as in, single-tapped, and not expired yet), it cancels all one-shot modifiers. It also cancels the **Hun** layer, if active. Otherwise it sends the usual keycode. -* The **Media** and **Hun** layer keys are one-shot, the **1Hand** and **STENO** keys are toggles. -* When holding any of the **Arrow** layer keys, the arrow layer activates while the layer key is held. Tapping the key produces the normal key. -* Tapping the `:` key once yields `:`, tapping it twice yields `;`. -* The **Lead** key allows me to type in a sequence of keys, and trigger some actions: - - `LEAD u` enters unicode input mode, by sending the GTK+ key sequence that does this. - - `LEAD l` uses the unicode input method to enter a `λ`. - - `LEAD s` does a lot of magic to type in a shruggie: `¯\_(ツ)_/¯` - - `LEAD y` types `\o/`. - - `LEAD w m` maximises the currently focused window. - - `LEAD a` makes the [ADORE layer](#adore-layer) the default. - - `LEAD v` prints the firmware version, the keyboard and the keymap. - - `LEAD d` toggles logging keypress positions to the HID console. - - `LEAD t` toggles time travel. Figuring out the current `date` is left as an exercise to the reader. - -## ADORE layer - -[![ADORE layer](images/adore-layer.png)](http://www.keyboard-layout-editor.com/#/gists/45681a17453d235925b6028dd83bf12a) - -While using the standard Dvorak layout, I encountered a number of inconveniences, and on this layer, I am playing with ideas to make the layout feel better. Initially, it was based on [Capewell-Dvorak][cpd], but that too, had shortcomings I was not happy with. So now this is something inbetween, with own observations thrown in. How it works out in the long run remains to be seen. - - [cpd]: http://www.michaelcapewell.com/projects/keyboard/layout_capewell-dvorak.htm - -Based on a week and a half of typing, the keys were rearranged, and the home row neatly spelled out **ADORE**, that gave the layout its name. - -## Hungarian layer - -[![Hungarian layer](images/hun-layer.png)](http://www.keyboard-layout-editor.com/#/gists/b160f6ec90d58c127c114c89f66e9dc9) - -On this layer, the accented characters are at the same position as their base variant. For some, which can have other diatribes, the long one is on top, short's on bottom. Tapping any of the accented characters takes us back to the base layer. - -## Navigation and media layer - -[![Navigation and media layer](images/nav-n-media-layer.png)](http://www.keyboard-layout-editor.com/#/gists/c59c453f9fe1a3238ba1494e7e5c6892) - -This layer is primarily for navigating with the cursor or the mouse, and some media things. - -## One-handed layer - -[![One-handed layer](images/one-handed-layer.png)](http://www.keyboard-layout-editor.com/#/gists/edff2495135955b8963198dace7f7ece) - -The one-handed layer is used in situations where the right hand is occupied, by mousing around, for example. Tapping the `OTHER` key switches which side is active. For the most part, keys remain in their usual position. When the right half is active, keys are mirrored to the left half. - -The differences are as follows: - -* The `ESC` key has been moved to the bottom row, so the `OTHER` key is easier to tap. -* Most keys on the thumb cluster now have dual uses, and these do not change when switching sides: - - The `Space`/`Backspace` key sends `Space` on tap, `Backspace` when held for longer than a normal tap. - - The `Enter`/`Shift` key sends `Enter` on short-tap, `Shift` on long-tap. -* The `Apps`/`BASE` key can be used to go back to the base layer, by long-tapping it. A short-tap will send the `App` key, as usual. - -## Steno layer - -[![Steno layer for Plover](images/steno-layer.png)](http://www.keyboard-layout-editor.com/#/gists/401ef9a84369e47c57f9aedcf0a0d667) - -This is to be used with [Plover](http://www.openstenoproject.org/plover/), nothing really fancy here. The **STENO** key toggles the layer on and off, and sends the toggle command to Plover too. - -## LED states - -The primary purpose of the LEDs is to show the modifier status, a secondary, to show which layer is active. Each modifier, `Shift`, `Alt` and `Control` each have their designated LEDs: the *red*, *green* and *blue*, respectively. When a modifier is in a one-shot state, the respective LED will turn on with a dimmer light. If the modifier is toggled on, the brightness of the LED turns full. - -For the layers, the following rules apply: - -* When the [ADORE layer](#adore-layer) is toggled on, LEDs will light up from left to right in a sequence, then turn off. When the layer is toggled off, the LEDs light up and turn off in the other direction. No LEDs are on while the layer is active. -* When the [Hungarian layer](#hungarian-layer) is active, the *green* and *blue* LEDs are on. -* When the [Navigation and media layer](#navigation-and-media-layer) is active, the *red* and *green* ones are on. -* When the [One-handed layer](#one-handed-layer) is active, the *green* LED is on and bright, and either the *red* or the *blue* one is going to slowly blink, depending on the currently active side. -* For the [Steno layer](#steno-layer), all LEDs will be turned on. - -Unless noted otherwise, the layers use a dim light for the LEDs, while modifiers use a stronger one, and modifiers override any layer preferences. For example, when on the one-handed layer, with the left side active (*red* light blinking), if `Shift` is on, the *red* light will be constantly on. - -# Tools - -## Heatmap - -When the keypress logging functionality is enabled (by `LEAD d`), the keyboard will output a line every time a key is pressed, containing the position of the key in the matrix. This allows one to collect this information, and build analytics over it, such as a heat map, including dead keys too. - -Included with the firmware is a small tool that can parse these logs, and create a heatmap that one can import into [KLE][kle]. To use it, simply point `tools/log-to-heatmap.py` to a base layout file (one is included in the `tools/` directory), and the key position log. The latter one can create by running `hid-listen`, and redirecting its output to a file. - - [kle]: http://www.keyboard-layout-editor.com/ - -The generated heatmap looks somewhat like this: - - ![Heatmap](images/heatmap.png) - -# Building - -To make my workflow easier, this layout is maintained in [its own repository][algernon:ez-layout]. To build it, you will need the [QMK][qmk] firmware checked out, and this repo either checked out to something like `keyboards/ergodox_ez/algernon-master`. One way to achieve that is this: - - [algernon:ez-layout]: https://github.com/algernon/ergodox-layout - [qmk]: https://github.com/jackhumbert/qmk_firmware - -``` -$ git clone https://github.com/jackhumbert/qmk_firmware.git -$ cd qmk_firmware -$ git clone https://github.com/algernon/ergodox-layout.git \ - keyboards/ergodox_ez/keymaps/algernon-master -$ make KEYBOARD=ergodox_ez KEYMAP=algernon-master -``` - -From time to time, updates may be submitted back to the QMK repository. If you are reading it there, you can build the firmware like any other firmware included with it (assuming you are in the root directory of the firmware): - -``` -$ make KEYBOARD=ergodox_ez KEYMAP=algernon -``` - -## Using on Windows - -The keymap default to forcing NKRO, which seems to upset Windows, and except the modifiers, none of them work. If you experience this problem, recompile the firmware with `FORCE_NKRO=no` added to the `make` command line. - -# Changelog - -## v1.4 - 2016-07-29 - -* When toggling the key logging on or off, the LEDs will do a little dance. -* The keylogger is now optional, but enabled by default. Use `KEYLOGGER_ENABLE=no` on the `make` command line to disable it. -* The `TAB`/`ARRW` key was turned into a tap-dance key, allowing one to toggle the **ARROW** layer on by double-tapping, and as such, avoid the need to hold the key. -* The `-`/`_` key was turned into a tap-dance key too. -* There is now a way to travel time with the keyboard, toggle the feature on by hitting `LEAD t`. - -## v1.3 - 2016-07-06 - -* Added support for logging keys, by pressing `LEAD d`. Also included is a tool to generate a [heatmap](#heatmap) out of the logs. -* The arrow and navigation keys were rearranged again, and now require an additional key being held to activate. See the [base layer](#base-layer) for an image that shows where arrows are. -* The **experimental** layer has been redone, and is now called [ADORE](#adore-layer), and as such, can be enabled by `LEAD a` now. -* Switching between Dvorak and ADORE is now persisted into EEPROM, and survives a reboot. - -## v1.2 - 2016-06-22 - -* The forced NKRO mode can be easily toggled off at compile-time, to make the firmware compatible with [certain operating systems](#using-on-windows). -* The `:;` key has changed behaviour: to access the `;` symbol, the key needs to be double-tapped, instead of shifted. -* The `=` and `\` keys were swapped, `=` moved to the home row, on both the [base](#base-layer) and the **experimental** layers. -* The arrow and navigation keys were redone, they are now more accessible, but the navigation keys require an extra tap to access. -* The **Emacs** layer is gone, replaced by a simplified [navigation and media](#navigation-and-media-layer) layer. -* `LEAD v` types the firmware version, and the keymap version. -* On the **experimental** layer, the `L` and `Q`, and the `K` and `G` keys were swapped. -* The [Steno](#steno-layer) layer gained a few more `#` and `*` keys, to make it easier on my fingers. - -## v1.1 - 2016-06-14 - -* The keyboard starts in NKRO mode, bootmagic and other things are disabled. -* A [Steno](#steno-layer) layer was added, to be used with Plover. -* An **experimental** layer was added, something halfway between Dvorak and Capewell-Dvorak. A work in progress. -* `LEAD y` types `\o/`. -* Some keys on the [Base](#base-layer) layer have been moved around: - - `?` moved to the left pinky, left of `Q`. - - `=` shifted one row down, but `F11` stayed where it was. - - `-` on the left half was replaced by `Tab`. - - `Tab`'s original position is taken by a `Media Next`/`Media Prev` key. - - `:` now inputs `;` when shifted. -* `ESC` cancels the [Hungarian](#hungarian-layer) layer too, not just modifiers. - -## v1.0 - 2016-05-26 - -Initial version. - -# License - -The layout, being a derivative of the original TMK firmware which is under the GPL-2+, this layout is under the GPL as well, but GPL-3+, rather than the older version. diff --git a/keyboards/ergodox_ez/keymaps/algernon/tools/heatmap-adore-layout.json b/keyboards/ergodox_ez/keymaps/algernon/tools/heatmap-adore-layout.json deleted file mode 100644 index 544f61ce8..000000000 --- a/keyboards/ergodox_ez/keymaps/algernon/tools/heatmap-adore-layout.json +++ /dev/null @@ -1,533 +0,0 @@ -[ - { - "backcolor": "#ffffff", - "name": "ErgoDox - algernon's layout: Heatmap", - "author": "Gergely Nagy ", - "notes": "See [here](https://github.com/algernon/ergodox-layout#readme) for the QMK keymap source.", - "switchMount": "cherry", - "switchBrand": "gateron", - "switchType": "KS-3-Tea", - "pcb": true, - "css": ".keyborder { -webkit-filter: blur(5px); filter: blur(5px); } .keytop { -webkit-filter: blur(10px); } .keylabels { border: 1px solid black; }" - }, - [ - { - "x": 3.5, - "c": "#a7d0db", - "fa": [ - 0, - 0, - 2 - ] - }, - "#\n3\nF3", - { - "x": 10.5, - "c": "#a7d0db", - "t": "#000000", - "a": 4, - "fa": [ - 0, - 0, - 2 - ] - }, - "*\n8\nF8" - ], - [ - { - "y": -0.875, - "x": 2.5, - "c": "#bfbad1", - "t": "#0d0d0b" - }, - "@\n2\nF2", - { - "x": 1, - "c": "#7adabd", - "t": "#000000" - }, - "$\n4\nF4", - { - "x": 8.5 - }, - "&\n7\nF7", - { - "x": 1, - "c": "#bfbad1", - "t": "#0d0d0b" - }, - "(\n9\nF9" - ], - [ - { - "y": -0.875, - "x": 5.5, - "c": "#7adabd", - "t": "#000000" - }, - "%\n5\nF5", - { - "c": "#f9cd31", - "a": 7, - "f": 2 - }, - "STENO", - { - "x": 4.5, - "f": 6 - }, - "", - { - "c": "#7adabd", - "a": 4, - "f": 3, - "fa": [ - 0, - 0, - 2 - ] - }, - "^\n6\nF6" - ], - [ - { - "y": -0.875, - "c": "#ffb2d2", - "f": 3, - "w": 1.5 - }, - "\n\n~\n`", - { - "t": "#0d0d0b" - }, - "!\n1\nF1", - { - "x": 14.5 - }, - ")\n0\nF10", - { - "a": 7, - "w": 1.5 - }, - "F11" - ], - [ - { - "y": -0.375, - "x": 3.5, - "c": "#a7d0db", - "t": "#000000", - "a": 6 - }, - "L", - { - "x": 10.5 - }, - "C" - ], - [ - { - "y": -0.875, - "x": 2.5, - "c": "#bfbad1", - "t": "#0d0d0b", - "a": 4 - }, - ">\n.", - { - "x": 1, - "c": "#7adabd", - "t": "#000000", - "a": 6 - }, - "W", - { - "x": 8.5 - }, - "H", - { - "x": 1, - "c": "#bfbad1", - "t": "#0d0d0b" - }, - "P" - ], - [ - { - "y": -0.875, - "x": 5.5, - "c": "#7adabd", - "t": "#000000" - }, - "M", - { - "c": "#93c9b7", - "a": 4, - "h": 1.5 - }, - "{\n[", - { - "x": 4.5, - "h": 1.5 - }, - "}\n]", - { - "c": "#7adabd", - "a": 6 - }, - "F" - ], - [ - { - "y": -0.875, - "c": "#ffb07b", - "t": "#0d0d0b", - "f": 6, - "w": 1.5 - }, - "\n\n", - { - "c": "#ffb2d2", - "a": 4, - "f": 3 - }, - "<\n,", - { - "x": 14.5, - "a": 6 - }, - "Y", - { - "a": 4, - "w": 1.5 - }, - "|\n\\" - ], - [ - { - "y": -0.375, - "x": 3.5, - "c": "#a7d0db", - "t": "#000000", - "a": 6 - }, - "E", - { - "x": 10.5 - }, - "T" - ], - [ - { - "y": -0.875, - "x": 2.5, - "c": "#bfbad1", - "t": "#0d0d0b" - }, - "O", - { - "x": 1, - "c": "#7adabd", - "t": "#000000", - "n": true - }, - "I", - { - "x": 8.5, - "n": true - }, - "R", - { - "x": 1, - "c": "#bfbad1", - "t": "#0d0d0b" - }, - "N" - ], - [ - { - "y": -0.875, - "x": 5.5, - "c": "#7adabd", - "t": "#000000" - }, - "U", - { - "x": 6.5 - }, - "D" - ], - [ - { - "y": -0.875, - "c": "#ffb2d2", - "t": "#0d0d0b", - "fa": [ - 6 - ], - "w": 1.5 - }, - "\n\nTab", - { - "f": 3 - }, - "A", - { - "x": 14.5, - "f": 3 - }, - "S", - { - "a": 4, - "fa": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6 - ], - "w": 1.5 - }, - "+\n=" - ], - [ - { - "y": -0.625, - "x": 6.5, - "c": "#93c9b7", - "t": "#000000", - "a": 7, - "h": 1.5 - }, - "(", - { - "x": 4.5, - "h": 1.5 - }, - ")" - ], - [ - { - "y": -0.75, - "x": 3.5, - "c": "#a7d0db", - "a": 4, - "f": 3 - }, - "\"\n'", - { - "x": 10.5 - }, - "V" - ], - [ - { - "y": -0.875, - "x": 2.5, - "c": "#bfbad1", - "t": "#0d0d0b" - }, - "Z", - { - "x": 1, - "c": "#7adabd", - "t": "#000000" - }, - "K", - { - "x": 8.5 - }, - "G", - { - "x": 1, - "c": "#bfbad1", - "t": "#0d0d0b" - }, - "J" - ], - [ - { - "y": -0.875, - "x": 5.5, - "c": "#7adabd", - "t": "#000000" - }, - "X", - { - "x": 6.5 - }, - "B" - ], - [ - { - "y": -0.875, - "c": "#ffb07b", - "f": 9, - "w": 1.5 - }, - "\n\n", - { - "c": "#ffb2d2", - "t": "#0d0d0b", - "a": 4, - "f": 3 - }, - "?\n/", - { - "x": 14.5, - "a": 6 - }, - "Q", - { - "c": "#ffb07b", - "t": "#000000", - "f": 9, - "w": 1.5 - }, - "" - ], - [ - { - "y": -0.375, - "x": 3.5, - "c": "#d9dae0", - "g": true, - "a": 7, - "f": 3 - }, - "", - { - "x": 10.5 - }, - "" - ], - [ - { - "y": -0.875, - "x": 2.5 - }, - "", - { - "x": 1, - "c": "#d4872a", - "g": false, - "a": 5 - }, - ";\n:", - { - "x": 8.5 - }, - "_\n-", - { - "x": 1, - "c": "#d9dae0", - "g": true, - "a": 7 - }, - "" - ], - [ - { - "y": -0.75, - "x": 0.5 - }, - "", - {}, - "", - { - "x": 14.5 - }, - "", - {}, - "" - ], - [ - { - "r": 30, - "rx": 6.5, - "ry": 4.25, - "y": -1, - "x": 1, - "c": "#f9cd31", - "g": false - }, - "Alt", - { - "a": 4, - "fa": [ - 0, - 0, - 0, - 9 - ] - }, - "\n\n\n" - ], - [ - { - "c": "#d4872a", - "a": 7, - "f": 9, - "h": 2 - }, - "", - { - "h": 2 - }, - "", - { - "c": "#f9cd31", - "f": 3 - }, - "Ctrl" - ], - [ - { - "x": 2, - "c": "#e26757" - }, - "ESC" - ], - [ - { - "r": -30, - "rx": 13, - "y": -1, - "x": -3, - "c": "#f9cd31", - "f": 2 - }, - "MEDIA", - {}, - "1HAND" - ], - [ - { - "x": -3 - }, - "LEAD", - { - "c": "#d4872a", - "f": 9, - "h": 2 - }, - "", - { - "f": 3, - "h": 2 - }, - "SPC" - ], - [ - { - "x": -3, - "c": "#f9cd31", - "f": 2 - }, - "HUN" - ] -] diff --git a/keyboards/ergodox_ez/keymaps/algernon/tools/heatmap-base-layout.json b/keyboards/ergodox_ez/keymaps/algernon/tools/heatmap-base-layout.json deleted file mode 100644 index 148bb1f23..000000000 --- a/keyboards/ergodox_ez/keymaps/algernon/tools/heatmap-base-layout.json +++ /dev/null @@ -1,533 +0,0 @@ -[ - { - "backcolor": "#ffffff", - "name": "ErgoDox - algernon's layout: Heatmap", - "author": "Gergely Nagy ", - "notes": "See [here](https://github.com/algernon/ergodox-layout#readme) for the QMK keymap source.", - "switchMount": "cherry", - "switchBrand": "gateron", - "switchType": "KS-3-Tea", - "pcb": true, - "css": ".keyborder { -webkit-filter: blur(5px); filter: blur(5px); } .keytop { -webkit-filter: blur(10px); } .keylabels { border: 1px solid black; }" - }, - [ - { - "x": 3.5, - "c": "#a7d0db", - "fa": [ - 0, - 0, - 2 - ] - }, - "#\n3\nF3", - { - "x": 10.5, - "c": "#a7d0db", - "t": "#000000", - "a": 4, - "fa": [ - 0, - 0, - 2 - ] - }, - "*\n8\nF8" - ], - [ - { - "y": -0.875, - "x": 2.5, - "c": "#bfbad1", - "t": "#0d0d0b" - }, - "@\n2\nF2", - { - "x": 1, - "c": "#7adabd", - "t": "#000000" - }, - "$\n4\nF4", - { - "x": 8.5 - }, - "&\n7\nF7", - { - "x": 1, - "c": "#bfbad1", - "t": "#0d0d0b" - }, - "(\n9\nF9" - ], - [ - { - "y": -0.875, - "x": 5.5, - "c": "#7adabd", - "t": "#000000" - }, - "%\n5\nF5", - { - "c": "#f9cd31", - "a": 7, - "f": 2 - }, - "STENO", - { - "x": 4.5, - "f": 6 - }, - "", - { - "c": "#7adabd", - "a": 4, - "f": 3, - "fa": [ - 0, - 0, - 2 - ] - }, - "^\n6\nF6" - ], - [ - { - "y": -0.875, - "c": "#ffb2d2", - "f": 3, - "w": 1.5 - }, - "\n\n~\n`", - { - "t": "#0d0d0b" - }, - "!\n1\nF1", - { - "x": 14.5 - }, - ")\n0\nF10", - { - "a": 7, - "w": 1.5 - }, - "F11" - ], - [ - { - "y": -0.375, - "x": 3.5, - "c": "#a7d0db", - "t": "#000000", - "a": 4 - }, - ">\n.", - { - "x": 10.5, - "a": 6 - }, - "C" - ], - [ - { - "y": -0.875, - "x": 2.5, - "c": "#bfbad1", - "t": "#0d0d0b", - "a": 4 - }, - "<\n,", - { - "x": 1, - "c": "#7adabd", - "t": "#000000", - "a": 6 - }, - "P", - { - "x": 8.5 - }, - "G", - { - "x": 1, - "c": "#bfbad1", - "t": "#0d0d0b" - }, - "R" - ], - [ - { - "y": -0.875, - "x": 5.5, - "c": "#7adabd", - "t": "#000000" - }, - "Y", - { - "c": "#93c9b7", - "a": 4, - "h": 1.5 - }, - "{\n[", - { - "x": 4.5, - "h": 1.5 - }, - "}\n]", - { - "c": "#7adabd", - "a": 6 - }, - "F" - ], - [ - { - "y": -0.875, - "c": "#ffb07b", - "t": "#0d0d0b", - "f": 6, - "w": 1.5 - }, - "\n\n", - { - "c": "#ffb2d2", - "a": 4, - "f": 3 - }, - "\"\n'", - { - "x": 14.5, - "a": 6 - }, - "L", - { - "a": 4, - "w": 1.5 - }, - "|\n\\" - ], - [ - { - "y": -0.375, - "x": 3.5, - "c": "#a7d0db", - "t": "#000000", - "a": 6 - }, - "E", - { - "x": 10.5 - }, - "T" - ], - [ - { - "y": -0.875, - "x": 2.5, - "c": "#bfbad1", - "t": "#0d0d0b" - }, - "O", - { - "x": 1, - "c": "#7adabd", - "t": "#000000", - "n": true - }, - "U", - { - "x": 8.5, - "n": true - }, - "H", - { - "x": 1, - "c": "#bfbad1", - "t": "#0d0d0b" - }, - "N" - ], - [ - { - "y": -0.875, - "x": 5.5, - "c": "#7adabd", - "t": "#000000" - }, - "I", - { - "x": 6.5 - }, - "D" - ], - [ - { - "y": -0.875, - "c": "#ffb2d2", - "t": "#0d0d0b", - "fa": [ - 6 - ], - "w": 1.5 - }, - "\n\nTab", - { - "f": 3 - }, - "A", - { - "x": 14.5, - "f": 3 - }, - "S", - { - "a": 4, - "fa": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 6 - ], - "w": 1.5 - }, - "+\n=" - ], - [ - { - "y": -0.625, - "x": 6.5, - "c": "#93c9b7", - "t": "#000000", - "a": 7, - "h": 1.5 - }, - "(", - { - "x": 4.5, - "h": 1.5 - }, - ")" - ], - [ - { - "y": -0.75, - "x": 3.5, - "c": "#a7d0db", - "a": 6 - }, - "J", - { - "x": 10.5 - }, - "W" - ], - [ - { - "y": -0.875, - "x": 2.5, - "c": "#bfbad1", - "t": "#0d0d0b" - }, - "Q", - { - "x": 1, - "c": "#7adabd", - "t": "#000000" - }, - "K", - { - "x": 8.5 - }, - "M", - { - "x": 1, - "c": "#bfbad1", - "t": "#0d0d0b" - }, - "V" - ], - [ - { - "y": -0.875, - "x": 5.5, - "c": "#7adabd", - "t": "#000000" - }, - "X", - { - "x": 6.5 - }, - "B" - ], - [ - { - "y": -0.875, - "c": "#ffb07b", - "f": 9, - "w": 1.5 - }, - "\n\n", - { - "c": "#ffb2d2", - "t": "#0d0d0b", - "a": 4, - "f": 3 - }, - "?\n/", - { - "x": 14.5, - "a": 6 - }, - "Z", - { - "c": "#ffb07b", - "t": "#000000", - "f": 9, - "w": 1.5 - }, - "" - ], - [ - { - "y": -0.375, - "x": 3.5, - "c": "#d9dae0", - "g": true, - "a": 7, - "f": 3 - }, - "", - { - "x": 10.5 - }, - "" - ], - [ - { - "y": -0.875, - "x": 2.5 - }, - "", - { - "x": 1, - "c": "#d4872a", - "g": false, - "a": 5 - }, - ";\n:", - { - "x": 8.5 - }, - "_\n-", - { - "x": 1, - "c": "#d9dae0", - "g": true, - "a": 7 - }, - "" - ], - [ - { - "y": -0.75, - "x": 0.5 - }, - "", - {}, - "", - { - "x": 14.5 - }, - "", - {}, - "" - ], - [ - { - "r": 30, - "rx": 6.5, - "ry": 4.25, - "y": -1, - "x": 1, - "c": "#f9cd31", - "g": false - }, - "Alt", - { - "a": 4, - "fa": [ - 0, - 0, - 0, - 9 - ] - }, - "\n\n\n" - ], - [ - { - "c": "#d4872a", - "a": 7, - "f": 9, - "h": 2 - }, - "", - { - "h": 2 - }, - "", - { - "c": "#f9cd31", - "f": 3 - }, - "Ctrl" - ], - [ - { - "x": 2, - "c": "#e26757" - }, - "ESC" - ], - [ - { - "r": -30, - "rx": 13, - "y": -1, - "x": -3, - "c": "#f9cd31", - "f": 2 - }, - "MEDIA", - {}, - "1HAND" - ], - [ - { - "x": -3 - }, - "LEAD", - { - "c": "#d4872a", - "f": 9, - "h": 2 - }, - "", - { - "f": 3, - "h": 2 - }, - "SPC" - ], - [ - { - "x": -3, - "c": "#f9cd31", - "f": 2 - }, - "HUN" - ] -] diff --git a/keyboards/ergodox_ez/keymaps/algernon/tools/log-to-heatmap.py b/keyboards/ergodox_ez/keymaps/algernon/tools/log-to-heatmap.py deleted file mode 100755 index a13d12e81..000000000 --- a/keyboards/ergodox_ez/keymaps/algernon/tools/log-to-heatmap.py +++ /dev/null @@ -1,145 +0,0 @@ -#! /usr/bin/env python -import json -import os -import sys -import re - -from math import floor - -cr_coord_map = [ - [ - # Row 0 - [ 4, 0], [ 4, 2], [ 2, 0], [ 1, 0], [ 2, 2], [ 3, 0], [ 3, 2], - [ 3, 4], [ 3, 6], [ 2, 4], [ 1, 2], [ 2, 6], [ 4, 4], [ 4, 6], - ], - [ - # Row 1 - [ 8, 0], [ 8, 2], [ 6, 0], [ 5, 0], [ 6, 2], [ 7, 0], [ 7, 2], - [ 7, 4], [ 7, 6], [ 6, 4], [ 5, 2], [ 6, 6], [ 8, 4], [ 8, 6], - ], - [ - # Row 2 - [12, 0], [12, 2], [10, 0], [ 9, 0], [10, 2], [11, 0], [ ], - [ ], [11, 2], [10, 4], [ 9, 2], [10, 6], [12, 4], [12, 6], - ], - [ - # Row 3 - [17, 0], [17, 2], [15, 0], [14, 0], [15, 2], [16, 0], [13, 0], - [13, 2], [16, 2], [15, 4], [14, 2], [15, 6], [17, 4], [17, 6], - ], - [ - # Row 4 - [20, 0], [20, 2], [19, 0], [18, 0], [19, 2], [], [], [], [], - [19, 4], [18, 2], [19, 6], [20, 4], [20, 6], - ], - [ - # Row 5 - [ ], [23, 0], [22, 2], [22, 0], [22, 4], [21, 0], [21, 2], - [24, 0], [24, 2], [25, 0], [25, 4], [25, 2], [26, 0], [ ], - ], -] - -def set_attr_at(j, b, n, attr, fn, val): - blk = j[b][n] - if attr in blk: - blk[attr] = fn(blk[attr], val) - else: - blk[attr] = fn(None, val) - -def coord(col, row): - return cr_coord_map[row][col] - -def set_attr(orig, new): - return new - -def set_bg(j, (b, n), color): - set_attr_at(j, b, n, "c", set_attr, color) - #set_attr_at(j, b, n, "g", set_attr, False) - -def _set_tap_info(o, count, cap): - ns = 4 - o.count ("\n") - return o + "\n" * ns + "%.02f%%" % (float(count) / float(cap) * 100) - -def set_tap_info(j, (b, n), count, cap): - j[b][n + 1] = _set_tap_info (j[b][n + 1], count, cap) - -def heatmap_color (v): - colors = [ [0.3, 0.3, 1], [0.3, 1, 0.3], [1, 1, 0.3], [1, 0.3, 0.3]] - fb = 0 - if v <= 0: - idx1, idx2 = 0, 0 - elif v >= 1: - idx1, idx2 = len(colors) - 1, len(colors) - 1 - else: - val = v * (len(colors) - 1) - idx1 = int(floor(val)) - idx2 = idx1 + 1 - fb = val - float(idx1) - - r = (colors[idx2][0] - colors[idx1][0]) * fb + colors[idx1][0] - g = (colors[idx2][1] - colors[idx1][1]) * fb + colors[idx1][1] - b = (colors[idx2][2] - colors[idx1][2]) * fb + colors[idx1][2] - - r, g, b = [x * 255 for x in r, g, b] - return "#%02x%02x%02x" % (r, g, b) - -# Load the keylog -def load_keylog(fname, restrict_row): - keylog = {} - total = 0 - with open(fname, "r") as f: - lines = f.readlines() - for line in lines: - m = re.search ('KL: col=(\d+), row=(\d+)', line) - if not m: - continue - (c, r) = (int(m.group (2)), int(m.group (1))) - if restrict_row != None and r != int(restrict_row): - continue - if (c, r) in keylog: - keylog[(c, r)] = keylog[(c, r)] + 1 - else: - keylog[(c, r)] = 1 - total = total + 1 - return total / 2, keylog - -def l_flat(s): - f = s.split("\n") - return ", ".join (f) - -def main(base_fn, log_fn, restrict_row = None): - - with open(base_fn, "r") as f: - layout = json.load (f) - - ## Reset colors - for row in cr_coord_map: - for col in row: - if col != []: - set_bg (layout, col, "#d9dae0") - #set_attr_at (layout, col[0], col[1], "g", set_attr, True) - - total, log = load_keylog (log_fn, restrict_row) - max_cnt = 0 - for (c, r) in log: - max_cnt = max(max_cnt, log[(c, r)]) - - # Create the heatmap - for (c, r) in log: - coords = coord(c, r) - b, n = coords - cap = max_cnt - v = float(log[(c, r)]) / cap - print >> sys.stderr, "%s => %d/%d => %f = %s" % (l_flat(layout[b][n+1]), log[(c,r)], cap, v, heatmap_color(v)) - set_bg (layout, coord(c, r), heatmap_color (v)) - set_tap_info (layout, coord (c, r), log[(c, r)], total) - - print json.dumps(layout) - -if __name__ == "__main__": - if len(sys.argv) < 3: - print """Log to Heatmap -- creates a heatmap out of keyboard logs - -Usage: log-to-heatmap.py base-layout.json logfile [row] >layout.json""" - sys.exit (1) - main(*sys.argv[1:]) diff --git a/keyboards/ergodox_ez/keymaps/algernon/tools/max-focused b/keyboards/ergodox_ez/keymaps/algernon/tools/max-focused deleted file mode 100755 index 4d5220aa8..000000000 --- a/keyboards/ergodox_ez/keymaps/algernon/tools/max-focused +++ /dev/null @@ -1,5 +0,0 @@ -#! /bin/sh -WIN="$(xdotool getactivewindow)" -wmctrl -i -r ${WIN} -b remove,maximized_vert,maximized_horz -xdotool windowsize ${WIN} 100% 100% -wmctrl -i -r ${WIN} -b add,maximized_vert,maximized_horz diff --git a/keyboards/ergodox_ez/keymaps/andrew_osx/keymap.c b/keyboards/ergodox_ez/keymaps/andrew_osx/keymap.c deleted file mode 100644 index 48257d23a..000000000 --- a/keyboards/ergodox_ez/keymaps/andrew_osx/keymap.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/keyboards/ergodox_ez/keymaps/bepo/bepo.png b/keyboards/ergodox_ez/keymaps/bepo/bepo.png deleted file mode 100644 index 3df7aa609..000000000 Binary files a/keyboards/ergodox_ez/keymaps/bepo/bepo.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/bepo/keymap.c b/keyboards/ergodox_ez/keymaps/bepo/keymap.c deleted file mode 100644 index 921a94d63..000000000 --- a/keyboards/ergodox_ez/keymaps/bepo/keymap.c +++ /dev/null @@ -1,311 +0,0 @@ -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" -#include "keymap_bepo.h" - -#define BASE 0 // default layer -#define QWER 1 // qwerty compat layer -#define SQWER 2 // shifted qwerty compat layer -#define AQWER 3 // alted qwerty compat layer -#define FNAV 4 // function / navigation keys -#define NUM 5 // numeric keypad keys -#define MSE 6 // mouse keys - -#define KP_00 0 -#define CA_Fx 1 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0: Base layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | $ | " | < | > | ( | ) |Delete| |ScroLo| @ | + | - | / | * | = | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | % | B |E_ACUT| P | O |E_GRAV|Backsp| |CapsLo| ^ | V | D | L | J | Z | - * |--------+------+------+------+------+------| ace | | |------+------+------+------+------+--------| - * | W | A | U | I | E | , |------| |------| C | T | S | R | N | M | - * |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------| - * | E_CIRC |A_GRAV| Y | X | . | K | | | | ' | Q | G | H | F | C_CEDIL| - * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' - * |QWERTY| |LSuper| LCtrl| LAlt| |Escape| L_Mse| | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause| - * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' - * | | | L_Num| | CA_Fx| | | - * | Space|LShift|------| |------|RShift|Enter | - * | | |L_FNav| |L_FNav| | | - * `--------------------' `--------------------' - */ -[BASE] = KEYMAP( -// Left hand -BP_DOLLAR, BP_DQOT, BP_LGIL, BP_RGIL, BP_LPRN, BP_RPRN, KC_DEL, -BP_PERCENT, BP_B, BP_E_ACUTE, BP_P, BP_O, BP_E_GRAVE, KC_BSPC, -BP_W, BP_A, BP_U, BP_I, BP_E, BP_COMMA, -BP_ECRC, BP_A_GRAVE, BP_Y, BP_X, BP_DOT, BP_K, KC_TAB, -TG(QWER), KC_NO, KC_LGUI, KC_LCTL, KC_LALT, - KC_ESC, MO(MSE), - MO(NUM), - KC_SPC, KC_LSHIFT, MO(FNAV), -// Right hand - KC_SLCK, BP_AT, BP_PLUS, BP_MINUS, BP_SLASH, BP_ASTR, BP_EQUAL, - KC_CAPSLOCK, BP_DCRC, BP_V, BP_D, BP_L, BP_J, BP_Z, - BP_C, BP_T, BP_S, BP_R, BP_N, BP_M, - KC_NUMLOCK, BP_APOS, BP_Q, BP_G, BP_H, BP_F, BP_CCED, - BP_ALGR, KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE, -KC_NO, KC_INS, -M(CA_Fx), -MO(FNAV), KC_RSHIFT, KC_ENTER), -/* Keymap 1: QWERTY system compatibility layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | $ | " | < | > | ( | ) |Delete| |ScroLo| @ | + | - | / | * | = | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | % | b | e | p | o | e |Backsp| |CapsLo| ^ | v | d | l | j | z | - * |--------+------+------+------+------+------| ace | | |------+------+------+------+------+--------| - * | w | a | u | i | e | , |------| |------| c | t | s | r | n | m | - * |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------| - * | e | a | y | x | . | k | | | | ' | q | g | h | f | c | - * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' - * | BEPO | |LSuper| LCtrl| LAlt| |Escape| L_Mse| | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause| - * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' - * | | | L_Num| | | | | - * | Space|LShift|------| |------|RShift|Enter | - * | | |L_FNav| |L_FNav| | | - * `--------------------' `--------------------' - */ -[QWER] = KEYMAP( -// Left hand -KC_DOLLAR, S(KC_QUOT), S(KC_COMM), S(KC_DOT), KC_LPRN, KC_RPRN, KC_DEL, -KC_PERCENT, KC_B, KC_E, KC_P, KC_O, KC_E, KC_BSPC, -KC_W, KC_A, KC_U, KC_I, KC_E, KC_COMMA, -KC_E, KC_A, KC_Y, KC_X, KC_DOT, KC_K, KC_TAB, -KC_TRNS, KC_NO, KC_LGUI, KC_LCTL, KC_LALT, - KC_ESC, MO(MSE), - MO(NUM), - KC_SPC, MO(SQWER), MO(FNAV), -// Right hand - KC_SLCK, KC_AT, KC_PLUS, KC_MINUS, KC_SLASH, KC_ASTR, KC_EQUAL, - KC_CAPSLOCK, KC_CIRC, KC_V, KC_D, KC_L, KC_J, KC_Z, - KC_C, KC_T, KC_S, KC_R, KC_N, KC_M, - KC_NUMLOCK, KC_QUOT, KC_Q, KC_G, KC_H, KC_F, KC_C, - MO(AQWER), KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE, -KC_NO, KC_INS, -KC_TRNS, -MO(FNAV), MO(SQWER), KC_ENTER), -/* Keymap 2: QWERTY shifted system compatibility layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | # | 1 | 2 | 3 | 4 | 5 |Delete| |ScroLo| 6 | 7 | 8 | 9 | 0 | = | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | ` | B | E | P | O | E |Backsp| |CapsLo| ! | V | D | L | J | Z | - * |--------+------+------+------+------+------| ace | | |------+------+------+------+------+--------| - * | W | A | U | I | E | ; |------| |------| C | T | S | R | N | M | - * |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------| - * | E | A | Y | X | : | K | | | | ? | Q | G | H | F | C | - * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' - * | BEPO | |LSuper| LCtrl| LAlt| |Escape| L_Mse| | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause| - * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' - * | | | L_Num| | | | | - * | Space|LShift|------| |------|RShift|Enter | - * | | |L_FNav| |L_FNav| | | - * `--------------------' `--------------------' - */ -[SQWER] = KEYMAP( -// Left hand -KC_HASH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, -KC_GRV, S(KC_B), S(KC_E), S(KC_P), S(KC_O), S(KC_E), KC_TRNS, -S(KC_W), S(KC_A), S(KC_U), S(KC_I), S(KC_E), KC_SCOLON, -S(KC_E), S(KC_A), S(KC_Y), S(KC_X), KC_COLON, S(KC_K), S(KC_TAB), -KC_TRNS, KC_TRNS, S(KC_LGUI), S(KC_LCTL), S(KC_LALT), - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, -// Right hand - KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, - KC_TRNS, KC_EXLM, S(KC_V), S(KC_D), S(KC_L), S(KC_J), S(KC_Z), - S(KC_C), S(KC_T), S(KC_S), S(KC_R), S(KC_N), S(KC_M), - KC_TRNS, S(KC_SLASH), S(KC_Q), S(KC_G), S(KC_H), S(KC_F), S(KC_C), - S(KC_RALT), S(KC_RCTL), S(KC_RGUI), KC_TRNS, KC_TRNS, -KC_TRNS, KC_TRNS, -KC_TRNS, -KC_TRNS, KC_TRNS, KC_TRNS), -/* Keymap 3: QWERTY alted system compatibility layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | $ | " | < | > | [ | ] |Delete| |ScroLo| @ | + | - | / | * | = | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | % | | | e | & | o | e |Backsp| |CapsLo| ^ | v | d | l | j | z | - * |--------+------+------+------+------+------| ace | | |------+------+------+------+------+--------| - * | w | a | u | i | € | , |------| |------| c | t | s | r | n | m | - * |--------+------+------+------+------+------| Tab | | NumLo|------+------+------+------+------+--------| - * | e | \ | { | } | . | ~ | | | | ' | q | g | h | f | c | - * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' - * | BEPO | |LSuper| LCtrl| LAlt| |Escape| L_Mse| | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause| - * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' - * | | | L_Num| | | | | - * | _ |LShift|------| |------|RShift|Enter | - * | | |L_FNav| |L_FNav| | | - * `--------------------' `--------------------' - */ -[AQWER] = KEYMAP( -// Left hand -KC_DOLLAR, S(KC_QUOT), S(KC_COMM), S(KC_DOT), KC_LBRC, KC_RBRC, KC_DEL, -KC_PERCENT, KC_PIPE, KC_E, KC_AMPR, KC_O, KC_E, KC_BSPC, -KC_W, KC_A, KC_U, KC_I, RALT(KC_5), KC_COMMA, -KC_E, KC_BSLASH, KC_LCBR, KC_RCBR, KC_DOT, KC_TILDE, KC_TAB, -KC_TRNS, KC_NO, KC_LGUI, KC_LCTL, KC_LALT, - KC_ESC, MO(MSE), - MO(NUM), - KC_UNDS, MO(SQWER), MO(FNAV), -// Right hand - KC_SLCK, KC_AT, KC_PLUS, KC_MINUS, KC_SLASH, KC_ASTR, KC_EQUAL, - KC_CAPSLOCK, KC_CIRC, KC_V, KC_D, KC_L, KC_J, KC_Z, - KC_C, KC_T, KC_S, KC_R, KC_N, KC_M, - KC_NUMLOCK, KC_QUOT, KC_Q, KC_G, KC_H, KC_F, KC_C, - KC_TRNS, KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE, -KC_NO, KC_INS, -KC_TRNS, -MO(FNAV), MO(SQWER), KC_ENTER), -/* Keymap 4: function / navigation layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 |VolMut| | | F6 | F7 | F8 | F9 | F10 | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | | | |VolDwn| | | PgUp | Home | Up | End | F11 | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | |------| |------| PgDn | Left | Down | Right| F12 | | - * |--------+------+------+------+------+------| VolUp| | |------+------+------+------+------+--------| - * | | Undo | Cut | Copy | Paste| | | | | | | | | | | - * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' - * | | | | | | | | | | | | | | | | | | - * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -[FNAV] = KEYMAP( -// Left hand -KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MUTE, -KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLU, -KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, -KC_NO, KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_NO, KC_VOLD, -KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, - KC_NO, KC_NO, - KC_NO, - KC_NO, KC_TRNS, KC_TRNS, -// Right hand - KC_NO, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO, - KC_NO, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_F11, KC_NO, - KC_PGDOWN, KC_LEFT, KC_DOWN, KC_RIGHT, KC_F12, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, -KC_NO, KC_NO, -KC_TRNS, -KC_TRNS, KC_TRNS, KC_NO), -/* Keymap 5: numeric layer, sends keypad codes - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | + | - | / | * | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | | | | | | | | 7 | 8 | 9 | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | |------| |------| | 4 | 5 | 6 | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | 1 | 2 | 3 | | | - * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' - * | | | | | | | | | | | | | 0 | 00 | . | | | - * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' - * | | | | | | | | - * | | |------| |------| | Enter| - * | | | | | | | | - * `--------------------' `--------------------' - */ -[NUM] = KEYMAP( -// Left hand -KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, -KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, -KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, -KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, -KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, - KC_NO, KC_NO, - KC_TRNS, - KC_NO, KC_TRNS, KC_NO, -// Right hand - KC_NO, KC_NO, KC_KP_PLUS, KC_KP_MINUS, KC_KP_SLASH, KC_KP_ASTERISK, KC_NO, - KC_NO, KC_NO, KC_KP_7, KC_KP_8, KC_KP_9, KC_NO, KC_NO, - KC_NO, KC_KP_4, KC_KP_5, KC_KP_6, KC_NO, KC_NO, - KC_NO, KC_NO, KC_KP_1, KC_KP_2, KC_KP_3, KC_NO, KC_NO, - KC_KP_0, M(KP_00), KC_KP_COMMA, KC_NO, KC_NO, -KC_NO, KC_NO, -KC_NO, -KC_NO, KC_TRNS, KC_KP_ENTER), -/* Keymap 6: mouse layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | | | | | | | |LClick| Up |RClick| WhUp | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | |------| |------| | Left | Down | Right|WhDown| | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | - * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' - * | | | | | | | | | | | | | | | | | | - * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -[MSE] = KEYMAP( -// Left hand -KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, -KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, -KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, -KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, -KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, - KC_NO, KC_TRNS, - KC_NO, - KC_NO, KC_TRNS, KC_NO, -// Right hand - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, KC_MS_WH_UP, KC_NO, - KC_NO, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_WH_DOWN, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, -KC_NO, KC_NO, -KC_NO, -KC_NO, KC_TRNS, KC_NO) -}; - -const uint16_t PROGMEM fn_actions[] = { -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - case KP_00: - if (record->event.pressed) { - return MACRO( T(KP_0), D(KP_0), END ); - } else { - return MACRO( U(KP_0), END ); - } - break; - case CA_Fx: - if (record->event.pressed) { - layer_on(FNAV); - return MACRO( D(LALT), D(LCTL), END ); - } else { - layer_off(FNAV); - return MACRO( U(LCTL), U(LALT), END ); - } - 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) { -}; diff --git a/keyboards/ergodox_ez/keymaps/bepo/readme.md b/keyboards/ergodox_ez/keymaps/bepo/readme.md deleted file mode 100644 index 4a18cd80f..000000000 --- a/keyboards/ergodox_ez/keymaps/bepo/readme.md +++ /dev/null @@ -1,34 +0,0 @@ -# BEPO keymap for the ErgoDox - -This keymap has been made for the BEPO layout (http://bepo.fr), which is an ergonomic french keyboard layout based on Dvorak rules. As it's made for french people, the following of this readme will be in french. - -# Disposition BÉPO pour l'ErgoDox - -Cette keymap a été pensée pour la disposition BÉPO (http://bepo.fr), qui est une disposition de clavier francophone, ergonomique et libre, élaborée selon la méthode Dvorak. L'adaptation de cette disposition à l'ErgoDox a été réalisée en conservant les points forts du clavier TypeMatrix 2030 (très répandu dans la communauté bépo, avec un excellent rapport ergonomie / prix) voir en réglant certains de ses défauts (3 colonnes pour l'auriculaire droit et touche "Ê") et en apportant son lot de nouveautés (compatibilité avec les systèmes azerty et qwerty). - -Particularités --------------- - -Touches de repos des pouces : "espace" à gauche et "entrée" à droite. - -Placement des touches de combinaison ("Shift", "Alt", "Ctrl"...) adapté aux pouces, et permettant de conserver chaque doigt pour les rangées de lettres auxquelles ils sont assignés sans avoir à changer la touche de combinaison de côté (exemple : "A" majuscule puis "M" majuscule avec les auriculaires et un seul appui d'une touche "Shift"). - -Les touches "Alt" et "Alt Gr" sont accessibles avec les pouces sur la rangée du bas comme sur la TypeMatrix 2030, avec une symétrie gauche / droite. - -Les touches "Ctrl" sont placées sur la même ligne que les touche "Alt" et "Alt Gr" comme sur un clavier clasique, elles sont accessibles aux pouces sur la rangée du bas (moins éloigné que le groupe de touches de pouces pour des petites mains). - -Les touches "Backspace" et "Delete" sont placées comme sur la TypeMatrix 2030, du côté gauche uniquement (pour laisser celles de la main droite servir de {caps,num,scroll}lock puisqu'elles ont des LED). - -La touche "Tab" est placée comme sur la TypeMatrix 2020. - -Meilleure symétrie et accessibilité que la TypeMatrix 2030 : les touches "W" et "%" ont dû être déplacées du côté gauche en raison du nombre de touches de l'ErgoDox, mais l'auriculaire droit ne gère maintenant que deux colonnes de touches au lieu de trois. La touche "Ê" redevient accessible sur la même rangée que les autres lettres, comme sur un clavier classique en disposition bépo. Les lettres, chiffres et symboles sont tous regroupés sur 4 lignes et 6 colonnes pour chaque main, et la première rangée de lettres à la main gauche conserve une identité visuelle "BÉPO". - -Touche de fonction permettant de saisir les touches F1 à F12, les touches F1 à F10 sont placées de façon logique par rapport aux chiffres 1 à 0. Cette même touche permet l'accès aux touches directionnelles sans déplacer la main droite. Les touches "Home" et "End" sont placées de la même façon que sur une TypeMatrix 2030 par rapport aux touches directionnelles. Les touches "Page Up" et "Page Down" sont également accessibles facilement sans déplacer la main droite. Les fonctions "VolUp" et "VolDown" sont placées comme sur la TypeMatrix 2030, avec la fonction "Mute" juste au dessus. Les fonctions "Undo", "Cut", "Copy" et "Paste" sont placées côte à côte comme elles le seraient sur un clavier QWERTY en combinaison avec la touche "Ctrl" (à l'emplacement des lettres "Z", "X", "C" et "V"). Par rapport au layout "SpaceFN", l'utilisation d'une touche de fonction dédiée au pouce permet de ne pas ajouter de latence, et la touche espace reste compatible avec les jeux (action au moment de l'appui et possibilité d'appui long). - -Touche de fonction permettant l'accès au pavé numérique comme sur la TypeMatrix 2030, mais sans avoir à déplacer la main droite : avec les doigts sur la rangée de repos, possibilité de saisir les chiffres "4", "5" et "6" comme sur un pavé numérique classique. Le double "0" de la TypeMatrix a été conservé, et gagne une possibilité de répétition en simples "0". - -L'appui sur une touche permet de basculer en mode BEPO sur un système configuré pour un clavier QWERTY. Cette compatibilité n'est pas parfaite (pas encore de gestion des accents mais ça devrait être faisable avec une disposition en qwerty international, et les combinaisons de touches ne sont pas toutes supportées puisque le clavier traduit déjà certaines touches en combinaisons) mais reste pratique pour une saisie de texte occasionnelle. - -TODO : couche de compatibilité pour utiliser la disposition BÉPO sur un système configuré pour un clavier AZERTY. - -> Olivier Smedts diff --git a/keyboards/ergodox_ez/keymaps/coderkun_neo2/Makefile b/keyboards/ergodox_ez/keymaps/coderkun_neo2/Makefile deleted file mode 100644 index 6c0a79b11..000000000 --- a/keyboards/ergodox_ez/keymaps/coderkun_neo2/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -SLEEP_LED_ENABLE = no -UNICODE_ENABLE = yes diff --git a/keyboards/ergodox_ez/keymaps/coderkun_neo2/keymap.c b/keyboards/ergodox_ez/keymaps/coderkun_neo2/keymap.c deleted file mode 100644 index 8a2ba26d2..000000000 --- a/keyboards/ergodox_ez/keymaps/coderkun_neo2/keymap.c +++ /dev/null @@ -1,281 +0,0 @@ -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" -#include "led.h" -#include "keymap_extras/keymap_neo2.h" - -// Layer names -#define BASE 0 // default layer -#define PMQ 1 // poor man’s QWERTZ -#define PMN 2 // poor man’s Neo -#define FMU 3 // FMU layer -#define NHL 4 // Neo’s software layer 4 rebuilt in Hardware - - -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, NEO_GRV, - 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, TG(PMQ), - 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 - NEO_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, - TG(PMN), 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: poor man’s QWERTZ - * based on kaimi’s layout - * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐ - * │ TAB │ 1 │ 2 │ 3 │ 4 │ 5 │ ` │ │ ´ │ 6 │ 7 │ 8 │ 9 │ 0 │ BKSPC │ - * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤ - * │ C │ P │ T │ F │ K │ L │ HOM │ │ END │ B │ A │ S │ G │ V │ Y │ - * ├───────┼─────┼─────┼─────╆─────╅─────┤ E │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤ - * │ Mod3 │ D │ H │ Ö │ O │ I ├─────┤ ├─────┤ U │ - │ Z │ E │ X │ Mod3 │ - * ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│ │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤ - * │ LSHFT │ Ä │ Q │ R │ W │ N │ │ │ │ J │ M │ , │ . │ ẞ │ Shift │ - * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ - * │ CTL │ ALT │ MO1 │ Win │ MO4 │ │ M04 │ Win │ MO1 │ Alt │ CTL │ - * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ - * │ ← │ ↑ │ │ ↓ │ → │ - * ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐ - * │ │ │ ─ │ │ ─ │ │ │ - * │ SPC │ RTN ├─────┤ ├─────┤ RTN │ SPC │ - * │ │ │ HYP │ │ MEH │ │ │ - * └─────┴─────┴─────┘ └─────┴─────┴─────┘ - */ -[PMQ] = KEYMAP( - // left hand - KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL, - DE_C, DE_P, DE_T, DE_F, DE_K, DE_L, KC_HOME, - NEO_L1_L, DE_D, DE_H, DE_OE, DE_O, DE_I, - KC_LSFT, DE_AE, DE_Q, DE_R, DE_W, DE_N, KC_TRNS, - KC_LCTL, KC_LALT,MO(FMU),KC_LGUI,MO(NHL), - 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, DE_B, DE_A, DE_S, DE_G, DE_V, DE_Y, - DE_U, DE_MINS,DE_Z, DE_E, DE_X, NEO_L1_R, - KC_TRNS, DE_J, DE_M, DE_COMM,DE_DOT, DE_SS, KC_RSFT, - MO(NHL),KC_RGUI,MO(FMU),KC_RALT,KC_RCTL, - KC_DOWN, KC_RGHT, - KC_MINS, - MEH_T(KC_NO),KC_ENT,KC_SPC - ), - -/* Layer 2: poor man’s Neo - * based on kaimi’s layout - * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐ - * │ 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 │ MO4 │ │ M04 │ Win │ MO1 │ Alt │ CTL │ - * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ - * │ ← │ ↑ │ │ ↓ │ → │ - * ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐ - * │ │ │ ─ │ │ ─ │ │ │ - * │ SPC │ RTN ├─────┤ ├─────┤ RTN │ SPC │ - * │ │ │ HYP │ │ MEH │ │ │ - * └─────┴─────┴─────┘ └─────┴─────┴─────┘ - */ -[PMN] = KEYMAP( - KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL, - DE_Y, DE_X, DE_V, DE_L, DE_C, DE_W, KC_HOME, - KC_NO, DE_U, DE_I, DE_A, DE_E, DE_O, - KC_LSFT, DE_UE, DE_OE, DE_AE, DE_P, DE_Z, KC_TRNS, - KC_LCTL, KC_LALT,MO(FMU),KC_LGUI,MO(NHL), - 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, DE_K, DE_H, DE_G, DE_F, DE_Q, DE_SS, - DE_S, DE_N, DE_R, DE_T, DE_D, KC_NO, - KC_TRNS, DE_B, DE_M, KC_COMM,KC_DOT, DE_J, KC_RSFT, - MO(NHL),KC_RGUI,MO(FMU),KC_RALT,KC_RCTL, - KC_DOWN, KC_RGHT, - KC_MINS, - MEH_T(KC_NO),KC_ENT,KC_SPC - ), - -/* Layer 3: F-keys, Mouse and Unicode - * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐ - * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤ - * │ │ │ │ │ ✕ │ │ │ │ │ │ F9 │ F10 │ F11 │ F12 │ │ - * ├───────┼─────┼─────┼─────╆─────╅─────┤ │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤ - * │ │ │ │ │ ✓ │ ├─────┤ ├─────┤ │ F5 │ F6 │ F7 │ F8 │ │ - * ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│ │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤ - * │ │ │ │ │ │ │ │ │ │ │ F1 │ F2 │ F3 │ F4 │ │ - * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ - * │ │ │(MO1)│ │(MO4)│ │(MO4)│ │(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 - ), - -/* Layer 4: Neo’s software layer 4 rebuilt in Hardware - * based on kaimi’s layout - * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐ - * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤ - * │ │ PgUp│ BSpc│ ↑ │ Del │ PgDn│ │ │ │ │ 7 │ 8 │ 9 │ + │ − │ - * ├───────┼─────┼─────┼─────╆─────╅─────┤ │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤ - * │ │ Home│ ← │ ↓ │ → │ End ├─────┤ ├─────┤ │ 4 │ 5 │ 6 │ , │ . │ - * ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│ │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤ - * │ │ Esc │ Tab │ Ins │ Ret │ Undo│ │ │ │ │ 1 │ 2 │ 3 │ │ │ - * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ - * │ │ │(MO1)│ │(MO4)│ │(MO4)│ │(MO1)│ │ │ - * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ - * │ │ │ │ │ │ - * ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐ - * │ │ │ │ │ │ │ │ - * │ │ ├─────┤ ├─────┤ │ │ - * │ │ │ │ │ │ │ │ - * └─────┴─────┴─────┘ └─────┴─────┴─────┘ - */ -[NHL] = KEYMAP( - // left hand - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_PGUP,KC_BSPC,KC_UP, KC_DELT,KC_PGDN,KC_NO, - KC_NO, KC_HOME,KC_LEFT,KC_DOWN,KC_RGHT,KC_END, - KC_NO, KC_ESC, KC_TAB, KC_INS, KC_ENT, KC_UNDO,KC_TRNS, - KC_NO, KC_NO, KC_TRNS,KC_NO, KC_TRNS, - KC_NO, KC_NO, - KC_NO, - KC_NO, KC_NO, KC_NO, - // right hand - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_7, KC_8, KC_9, DE_PLUS,DE_MINS, - KC_NO, KC_4, KC_5, KC_6, KC_COMM,KC_DOT, - KC_TRNS, KC_NO, KC_1, KC_2, KC_3, KC_NO, KC_NO, - KC_TRNS,KC_NO, KC_TRNS,KC_NO, KC_NO, - KC_NO, KC_NO, - KC_NO, - KC_NO, KC_NO, KC_NO - ), -}; - -const uint16_t PROGMEM fn_actions[] = { - [BASE] = ACTION_FUNCTION(BASE), - [PMQ] = ACTION_FUNCTION(PMQ), - [PMN] = ACTION_FUNCTION(PMN), - [FMU] = ACTION_LAYER_TAP_TOGGLE(FMU), - [NHL] = ACTION_LAYER_TAP_TOGGLE(NHL) -}; - - -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(); - break; - case PMQ: - ergodox_right_led_2_on(); - break; - case PMN: - ergodox_right_led_3_on(); - break; - default: - if(host_keyboard_leds() & (1<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/keyboards/ergodox_ez/keymaps/colemak/readme.md b/keyboards/ergodox_ez/keymaps/colemak/readme.md deleted file mode 100644 index e28b2f085..000000000 --- a/keyboards/ergodox_ez/keymaps/colemak/readme.md +++ /dev/null @@ -1,4 +0,0 @@ -# ErgoDox EZ Colemak Configuration - -Colemak layout with same layers as default ergodox ez keymap. - diff --git a/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/keyboard-layout.png b/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/keyboard-layout.png deleted file mode 100644 index 57df5a1f9..000000000 Binary files a/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/keyboard-layout.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/keymap.c b/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/keymap.c deleted file mode 100644 index a909ed3a4..000000000 --- a/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/keymap.c +++ /dev/null @@ -1,264 +0,0 @@ -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" -#include "keymap_norwegian.h" - -#define BASE 0 // default layer -#define BASE_MAC 1 // default layer mac -#define NUMB_SYMB 2 // numbers and symbols -#define NUMB_SYMB_MAC 3 // numbers and symbols mac -#define FUNCTION 4 // function keys - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* Keymap 0: Basic layer PC - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | \ | [ | ] | { | } | * |Mac/PC| | ^ | $ | ( | ) | < | > | @ | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | ? | Q | W | F | P | G | " | | ' | J | L | U | Y | Å | Æ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | : | A | R | S | T | D |------| |------| H | N | E | I | O | Ø | - * |--------+------+------+------+------+------| ; | | = |------+------+------+------+------+--------| - * | ! | Z | X | C | V | B | | | | K | M | RIGHT| DOWN | UP | _ | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | Func | Lclk | Rclk | TAB |,/CTRL| | LEFT | Esc | ` | # | Num | - * `----------------------------------' `----------------------------------' - * ,-------------. ,--------------. - * | & | | | |Insert| / | - * ,------|------|------| |------+-------+------. - * | | | + | | Del | | | - * | Shift| ./Spc|------| |------| Enter |Space| - * | | |-/Alt | | Bspc | | | - * `--------------------' `---------------------' - */ -[BASE] = KEYMAP( - // left hand - NO_BSLS, NO_LBRC, NO_RBRC, NO_LCBR, NO_RCBR, NO_ASTR, TG(1), - NO_QUES, KC_Q, KC_W, KC_F, KC_P, KC_G, NO_QUO2, - NO_COLN, KC_A, KC_R, KC_S, KC_T, KC_D, - KC_EXLM, KC_Z, KC_X, KC_C, KC_V, KC_B, NO_SCLN, - MO(4), KC_BTN1, KC_BTN2, KC_TAB,GUI_T(KC_COMMA), - NO_AMPR, NO_PIPE, - NO_PLUS, - KC_FN1,CTL_T(KC_DOT),ALT_T(NO_MINS), - // right hand - KC_FN5, NO_DLR, NO_LPRN, NO_RPRN ,KC_FN3, KC_FN4,NO_AT, - NO_APOS, KC_J, KC_L, KC_U, KC_Y, NO_AA, NO_AE , - KC_H, KC_N, KC_E, KC_I, KC_O, NO_OSLH, - NO_EQL, KC_K, KC_M, KC_RIGHT, KC_DOWN, KC_UP, NO_UNDS, - KC_LEFT, KC_ESC, KC_FN7, KC_HASH, MO(2), - KC_INSERT, NO_SLSH, - KC_DELT, - KC_BSPC,KC_ENT,KC_SPC - ), -/* Keymap 1: Basic layer MACS (Same as pc, except for cmd/ctrl, which are swapped) - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | \ | | | { | } | | | | | $ | | | < | > | @ | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+------| | | ' |------+------+------+------+------+--------| - * | | | | | | |------| |------| | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | Func | | | |,/Ctrl| | | | ` | | Num | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | |./Cmd |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -[BASE_MAC] = KEYMAP( - NO_BSLS_MAC, KC_TRNS,KC_TRNS, NO_LCBR_MAC,NO_RCBR_MAC, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, CTL_T(KC_COMMA), - KC_TRNS, NO_PIPE_MAC, - KC_TRNS, - KC_TRNS,GUI_T(KC_DOT) , KC_TRNS, - // right hand - KC_TRNS, NO_DLR_MAC, KC_TRNS,KC_TRNS,KC_FN8, KC_FN9,NO_AT_MAC, - NO_APOS_MAC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, NO_GRV_MAC, KC_TRNS, MO(3), - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), - -/* Keymap 2: Number ++ layer pc - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | | % | | | | | | ~ | ´ | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | 3 | 2 | 1 | 0 | |------| |------| | 5 | 6 | 7 | 8 | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | 4 | | | | | | 9 | END | PGDWN| PGUP | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | HOME | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -[NUMB_SYMB] = KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_PERC, KC_TRNS , KC_TRNS, - KC_TRNS, KC_3 , KC_2 , KC_1 , KC_0 , KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_4, KC_TRNS, 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_FN2, KC_FN6 , KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_5, KC_6, KC_7, KC_8, KC_TRNS, - KC_TRNS, KC_HOME, KC_9, KC_END, KC_PGDN, KC_PGUP, KC_TRNS, - KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), - -/* Keymap 3: Number ++ layer mac. Some keys have to be repeated from the pc symbol layer, since transient keys inherit from the layer we jump from, not the layer above. - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | | % | | | | | | ~ | ´ | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | 3 | 2 | 1 | 0 | |------| |------| | 5 | 6 | 7 | 8 | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | 4 | | | | | | 9 | END | PGDWN| PGUP | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | HOME | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -[NUMB_SYMB_MAC] = KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_PERC, KC_TRNS , KC_TRNS, - KC_TRNS, KC_3 , KC_2 , KC_1 , KC_0 , KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_4, KC_TRNS, 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_FN2, KC_FN10, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_5, KC_6, KC_7, KC_8, KC_TRNS, - KC_TRNS, KC_HOME, KC_9, KC_END, KC_PGDN, KC_PGUP, KC_TRNS, - KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), - -/* Keymap 4: Function layer mac + pc - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | F3 | F2 | F1 | | |------| |------| | F5 | F6 | F7 | F8 | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | F4 | | | | | | F9 | F10 | F11 | F12 | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -[FUNCTION] = KEYMAP( - 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 , KC_TRNS, - KC_TRNS, KC_F3 , KC_F2 , KC_F1 , KC_TRNS , KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F4, KC_TRNS, 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_F5, KC_F6, KC_F7, KC_F8, KC_TRNS, - KC_TRNS, NO_TILD, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -) -}; - -enum macro_id { - TILDE_NO, LESS_NO, GRTR_NO, CIRC_NO, ACUT_NO, GRV_NO, LESS_NO_MAC, GRTR_NO_MAC, ACUT_NO_MAC -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_MODS_ONESHOT(MOD_LSFT), // Sticky shift light. Tap for the next keypress to be shifted. Hold for regular shift. - [2] = ACTION_MACRO(TILDE_NO), // Completed ~ character(pc and mac), no space needed. - [3] = ACTION_MACRO(LESS_NO), // < completed on keypress down, to avoid shifting the next character if it is not released first. - [4] = ACTION_MACRO(GRTR_NO), // > completed on keypress down, to avoid shifting the next character if it is not released first. - [5] = ACTION_MACRO(CIRC_NO), // Completed ^ character, no space needed. - [6] = ACTION_MACRO(ACUT_NO), // Completed ´ character, no space needed. - [7] = ACTION_MACRO(GRV_NO), // Completed ` character, no space needed. - [8] = ACTION_MACRO(LESS_NO_MAC), // < completed on keypress down, to avoid same button problem when typing <> quickly - [9] = ACTION_MACRO(GRTR_NO_MAC), // > completed on keypress down, to avoid same button problem when typing <> quickly - [10] = ACTION_MACRO(ACUT_NO_MAC), // Completed ´ character, no space needed -}; - - - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - keyevent_t event = record->event; - - switch (id) { - case TILDE_NO: - return (event.pressed ? MACRO( D(RALT), T(RBRC), U(RALT), T(SPC), END ) : MACRO_NONE); - case LESS_NO: - return (event.pressed ? MACRO( T(NUBS), END ) : MACRO_NONE); - case GRTR_NO: - return (event.pressed ? MACRO( D(LSFT), T(NUBS), U(LSFT), END ) : MACRO_NONE); - case CIRC_NO: - return (event.pressed ? MACRO( D(LSFT), T(RBRC), U(LSFT), T(SPC), END ) : MACRO_NONE); - case ACUT_NO: - return (event.pressed ? MACRO( D(RALT), T(EQL), U(RALT), T(SPC), END ) : MACRO_NONE); - case GRV_NO: - return (event.pressed ? MACRO( D(LSFT), T(EQL), T(SPC), U(LSFT), END ) : MACRO_NONE); - case LESS_NO_MAC: - return (event.pressed ? MACRO( T(GRV), END ) : MACRO_NONE); - case GRTR_NO_MAC: - return (event.pressed ? MACRO( D(LSFT), T(GRV), U(LSFT), END ) : MACRO_NONE); - case ACUT_NO_MAC: - return (event.pressed ? MACRO( T(EQL), T(SPC), END ) : MACRO_NONE); - } - return MACRO_NONE; -}; diff --git a/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/readme.md b/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/readme.md deleted file mode 100644 index 48f095cae..000000000 --- a/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/readme.md +++ /dev/null @@ -1,23 +0,0 @@ -# Norwegian Colemak setup with osx/pc toggle - -## Motivation -I wanted a Norwegian Colemak setup that worked in a similar way on both my Mac and PC. I also wanted it to translate from a standard Norwegian keyboard OS setup. - -## Overview -The setup is created to be programmer friendly. -- Most of the symbols used in code can be activated without using layers or shift key. -- You can reach the IDE/OS shortcut activators(Ctrl, Win/Cmd, Alt, Shift) with the thumb. -- Navigation is prioritized, arrows are right below the home row. - -## PC/Mac toggle -The default setup is for Norwegian keyboard setting(not colemak variants) on a PC(Windows or Linux). Use the Mac/PC toggle button to switch between OSX and PC setup. The settings will be reverted to PC setup each time you restart/connect the keyboard. - -## Layers -Numbers and function buttons are on their own layers. The easiest way to switch layers(at least with my hands) in this setup, is to push your hand right below the little finger, on the layer switches. You will then have all your fingers free to type numbers or press function buttons. - -## Shift-key -Tap for the next character to be shifted, hold down for regular shift functionality - -## Layout - -![keyboard-layout](keyboard-layout.png) diff --git a/keyboards/ergodox_ez/keymaps/csharp_dev/csharp_dev.png b/keyboards/ergodox_ez/keymaps/csharp_dev/csharp_dev.png deleted file mode 100644 index 6fba568fc..000000000 Binary files a/keyboards/ergodox_ez/keymaps/csharp_dev/csharp_dev.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/csharp_dev/csharp_dev_legend.png b/keyboards/ergodox_ez/keymaps/csharp_dev/csharp_dev_legend.png deleted file mode 100644 index b0a1c513c..000000000 Binary files a/keyboards/ergodox_ez/keymaps/csharp_dev/csharp_dev_legend.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/csharp_dev/keymap.c b/keyboards/ergodox_ez/keymaps/csharp_dev/keymap.c deleted file mode 100644 index e9648ede7..000000000 --- a/keyboards/ergodox_ez/keymaps/csharp_dev/keymap.c +++ /dev/null @@ -1,239 +0,0 @@ -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" - -#define BASE 0 // default layer -#define FKEYS 1 // F keys + macros - -#define MACRO_PUBLIC 10 -#define MACRO_PRIVATE 11 - -#define MACRO_STATIC 12 -#define MACRO_CONST 13 - -#define MACRO_VOID 14 -#define MACRO_VAR 15 -#define MACRO_STRING 16 - -#define MACRO_INT 17 -#define MACRO_FLOAT 18 -#define MACRO_BOOL 19 - -#define MACRO_RETURN 20 -#define MACRO_NULL 21 -#define MACRO_BREAK 22 - -#define MACRO_TODO 23 -#define MACRO_NEW 24 -#define MACRO_PARENTHESE 25 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0: Basic layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | ( | 1 | 2 | 3 | 4 | 5 | " | | Save | 6 | 7 | 8 | 9 | 0 | [ | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | ) | Q | W | E | R | T |Bkspa | | Del | Y | U | I | O | P | ] | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | { | A | S | D | F | G |------| |------| H | J | K | L | _ | Redo | - * |--------+------+------+------+------+------| / | | ; |------+------+------+------+------+--------| - * | } |Z~Alt | X | C | V | B | | | | N | M | ' | ! | ? | Undo | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |Tab~CL| < | > | | | & | | = | + | - | * | L1 | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * |. ~L1 | , | |Home |End~L1| - * ,------|------|------| |------+------+------. - * | | | Copy | | UP | | | - * | Enter| Space|------| |------| Space|Enter | - * | ~WIN | ~LSFT| Past | | DOWN | ~LSFT| ~WIN | - * `--------------------' `--------------------' - */ -// 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_LPRN, KC_1, KC_2, KC_3, KC_4, KC_5, LSFT(KC_QUOTE), - KC_RPRN, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_BSPACE, - KC_LCBR, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_RCBR, ALT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_SLASH, - CTL_T(KC_TAB), LSFT(KC_COMMA),LSFT(KC_DOT),KC_PIPE,KC_AMPR, - LT(1,KC_DOT), KC_COMM, - LCTL(KC_C), - GUI_T(KC_ENTER),SFT_T(KC_SPACE),LCTL(KC_V), - // right hand - LCTL(KC_S) , KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRACKET, - KC_DELETE, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRACKET, - KC_H, KC_J, KC_K, KC_L, KC_UNDS,LCTL(KC_Y), - KC_SCOLON,KC_N, KC_M, KC_QUOTE ,KC_EXLM , LSFT(KC_SLASH), LCTL(KC_Z), - KC_EQUAL,KC_PLUS , KC_MINUS,KC_ASTR , TG(1), - KC_HOME, LT(1,KC_END), - KC_UP, - KC_DOWN,SFT_T(KC_SPACE), GUI_T(KC_ENTER) - ), - -/* Keymap 1: F keys + macros - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | ESC | F1 | F2 | F3 | F4 | F5 | ` | | Calc | F6 | F7 | F8 | F9 | F10 | F11 | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Tab |Public|Static|string|int |return| | | |//TODO| | | | | F12 | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | |Privat|Const |var |float |null |------| |------|new | | | | | | - * |--------+------+------+------+------+------| \ | | ~ |------+------+------+------+------+--------| - * | | | |void |bool |break;| | | |(); | | | | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | WIN | Alt | | | | PgUp | PgDw | Ins | PtSc | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | Cut | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| Left | Right| - * | | | | | | | | - * `--------------------' `--------------------' - */ -// FKEYS + MACROS -[FKEYS] = KEYMAP( - // left hand - KC_ESCAPE,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_GRAVE, - KC_TAB,M(MACRO_PUBLIC),M(MACRO_STATIC), M(MACRO_STRING),M(MACRO_INT),M(MACRO_RETURN),KC_TRNS, - KC_TRNS,M(MACRO_PRIVATE),M(MACRO_CONST), M(MACRO_VAR),M(MACRO_FLOAT),M(MACRO_NULL), - KC_TRNS,KC_TRNS,KC_TRNS,M(MACRO_VOID),M(MACRO_BOOL),M(MACRO_BREAK),KC_BSLASH, - KC_TRNS,KC_LGUI,KC_LALT,KC_TRNS,KC_TRNS, - KC_TRNS,LCTL(KC_X), - KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS, - // right hand - KC_CALCULATOR, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TRNS, M(MACRO_TODO), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, - M(MACRO_NEW), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TILD, M(MACRO_PARENTHESE), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_PGUP,KC_PGDOWN, KC_INSERT, KC_PSCREEN, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_LEFT, KC_RIGHT -), - - -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_TAP_TOGGLE(FKEYS) // FN1 - Momentary Layer 1 -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case MACRO_PUBLIC: - if (record->event.pressed) { - return MACRO( T(P), T(U), T(B), T(L), T(I), T(C), T(SPACE),END); - } - break; - case MACRO_PRIVATE: - if (record->event.pressed) { - return MACRO( T(P), T(R), T(I), T(V), T(A), T(T), T(E), T(SPACE),END); - } - break; - case MACRO_STATIC: - if (record->event.pressed) { - return MACRO( T(S), T(T), T(A), T(T), T(I), T(C), T(SPACE), END); - } - break; - case MACRO_CONST: - if (record->event.pressed) { - return MACRO( T(C), T(O), T(N), T(S), T(T), T(SPACE), END); - } - break; - case MACRO_VOID: - if (record->event.pressed) { - return MACRO( T(V), T(O), T(I), T(D), T(SPACE), END); - } - break; - case MACRO_VAR: - if (record->event.pressed) { - return MACRO( T(V), T(A), T(R), T(SPACE), END); - } - break; - case MACRO_STRING: - if (record->event.pressed) { - return MACRO( T(S), T(T), T(R), T(I), T(N), T(G), T(SPACE), END); - } - break; - case MACRO_BOOL: - if (record->event.pressed) { - return MACRO( T(B), T(O), T(O), T(L), T(SPACE), END); - } - break; - case MACRO_INT: - if (record->event.pressed) { - return MACRO( T(I), T(N), T(T), T(SPACE), END); - } - break; - case MACRO_FLOAT: - if (record->event.pressed) { - return MACRO( T(F), T(L), T(O), T(A),T(T),T(SPACE), END); - } - break; - case MACRO_RETURN: - if (record->event.pressed) { - return MACRO( T(R), T(E), T(T), T(U),T(R),T(N), END); - } - break; - case MACRO_NULL: - if (record->event.pressed) { - return MACRO( T(N), T(U), T(L), T(L), END); - } - case MACRO_BREAK: - if (record->event.pressed) { - return MACRO( T(B), T(R), T(E), T(A), T(K), T(SCOLON), END); - } - break; - case MACRO_TODO: - if (record->event.pressed) { - return MACRO( T(SLASH), T(SLASH), D(LSHIFT) ,T(T), T(O), T(D), T(O),U(LSHIFT), T(SPACE),END); - } - break; - case MACRO_NEW: - if (record->event.pressed) { - return MACRO( T(N), T(E), T(W), T(SPACE), END); - } - break; - case MACRO_PARENTHESE: - if (record->event.pressed) { - return MACRO( D(LSHIFT),T(9), T(0),U(LSHIFT), T(SCOLON), END); - } - 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/keyboards/ergodox_ez/keymaps/csharp_dev/readme.md b/keyboards/ergodox_ez/keymaps/csharp_dev/readme.md deleted file mode 100644 index 96af077ad..000000000 --- a/keyboards/ergodox_ez/keymaps/csharp_dev/readme.md +++ /dev/null @@ -1,47 +0,0 @@ -# ErgoDox EZ C# Developer configuration - -## Changelog - -* Feb 12, 2016 (V1): - * First version commit -* Mar 20, 2016 (V2): - * Removed "Classic QWERTY" layer, inverted GUI and SHIFT on Hold for Space and Enter - -## About -This layout was conceived in an attempt to optimise keyboard layout for developers (C# more specifically, but it can work with most of other languages), and limit the keys required to perform the most frequent actions. - -I came to the realization that my main tool as a developer, the qwerty keyboard was something that did not evolved at its core in almost 150 years. -There are a lot of reasons to this, and it would be a massive entreprise to change a standard so strongly anchored, but I wanted to give it a try and see how would look an input device dedicated to developers, more specifically a C# developer in my case. -The biggest flaw in standard QWERTY keyboards was that I always needed to perform key combination to access commonly used characters or actions. Think about it a minute, how many times a day do you press a modifier key such as Ctrl or Shift, it's insane and could be so easily optimized to require only one key press. - -Then I came across the ErgoDox EZ project, that allowed a full customization of its firmware, and a unique 2 parts design. - -![CSharpDev](csharp_dev_legend.png) - -## Layout design principles -* No key combination required for the most common input characters ( (),[],{},<> ... ) -* No key combination required for the most common actions (copy/paste/undo/save) -* Regroup characters by usage ( + - * = ...) -* Easy access to the most commonly used characters: ; / " . , -* Preregistered macro for the most common C# langage instructions: public / private / string / int / float ... - -## Why is it specific to C Sharp -I defined the characters priority based on their usage in C# language, most of this characters are also used in other coding languages but it may require some tweaking. -For example there is no direct access to ~ or $ keys which can be very common in some languages. -Note it is also specific to Windows environement as the shortcut used in action keys would not work on Mac Os - -## In usage -It was relatively easy to get used to the layout, but it's hard for me to define how easy it was as I was getting used to a blank Ergodox keyboard at the same time. -Still it's extremely satisfying to Save your file with just one easily accessible key or to have one big key to end your code line ( ; ) - -## Improvements -This layout was shared after a bunch of iterations and only once I was happy with it. -Still there are many way to improve or iterate on this: -* Make it language agnostic -* Check and compile language's keyboard's heatmaps to statistically define keys priority (e.g. https://dzone.com/articles/most-pressed-keys-various ) -* QWERTY is still not the most efficient typing layout, I would like to create a Dvorak based similar layout in a near futur - -## Issues -One of the issues encountered while creating this layout was that I did not find a way to have a key to send a modifier on hold, and a key combination while pressed (e.g. I can't set a Key to do Save (Ctrl + S) when pressed and Shift modifier when hold ) - - diff --git a/keyboards/ergodox_ez/keymaps/dave/keymap.c b/keyboards/ergodox_ez/keymaps/dave/keymap.c deleted file mode 100644 index e9480af3e..000000000 --- a/keyboards/ergodox_ez/keymaps/dave/keymap.c +++ /dev/null @@ -1,199 +0,0 @@ -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" - -#define BASE 0 // default layer -#define PROG 1 // programming -#define NAVI 2 // navigation - -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 | PrtS | | CtAl | CtAl | - * ,------+------+------| |------+------+------. - * | | | L1 | | L1 | | | - * | Spce | ~L2 +------| |------+ ~L1 | Spce | - * | | | LGui | | RGui | | | - * `--------------------' `--------------------' - */ -// If it accepts an argument (i.e, is a function), it doesn't need KC_. -// Otherwise, it needs KC_* -[BASE] = KEYMAP( // layer 0 : default - // left hand - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, 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_PSCREEN, - 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_LBRC,KC_RBRC,KC_NO, CTL_T(KC_QUOT), - MT(0x5, KC_NO), 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 | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// PROGRAMMING -[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 | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | L0 | | L0 | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// NAVIGATION -[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_TRNS, KC_TRNS, - 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) { - -}; - -// 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); - } - } - - -}; diff --git a/keyboards/ergodox_ez/keymaps/dave/readme.md b/keyboards/ergodox_ez/keymaps/dave/readme.md deleted file mode 100644 index aa0f9bd19..000000000 --- a/keyboards/ergodox_ez/keymaps/dave/readme.md +++ /dev/null @@ -1,38 +0,0 @@ -This keymap is my preferred layout (after a certain amount of experimentation). -The rationale behind the design is as follows: - -I grew up typing from a very early age and thus never learned the "correct" way -to touch type (essentially, I'm self-taught). As a, result my fingers don't -tend to stay on the "home keys" and occasionally my right hand wants to type -keys that are on the left of the keyboard, and vice versa. - -Hence, despite liking the idea of split keyboards in principle, I've never been -able to get on with them because the split simply doesn't work with my style of -typing. The Ergodox solves this neatly by virtue of having a few extra keys in -the "middle" of the keyboard which I can utilise for deliberate redundancy. -Thus in this keymap there are two "6" keys (one on the left, one on the right) -and likewise Y, H, G, and B are all duplicated to enable one-handed patterns -that I use frequently (e.g. "byobu" with the right hand, "yes" with the left, -etc.). - -I occasionally use the numeric pad for data entry, thus this is duplicated -under the natural home position of the right hand in layer 1 (activated by -holding one of the right thumb buttons), while the cursor keys are duplicated -under the classic WASD gaming layout of the left hand in layer 2 (activated by -holding one of the left thumb buttons). Various other useful keys also appear -in these layers (brackets and symbols for coding in layer 1, navigation and -F-keys in layer 2, etc.). - -Finally, modifier keys like Ctrl, Shift, and Alt, along with Backspace and -Enter are all in traditional locations in an effort to reuse existing muscle -memory as much as possible (keys like =, #, and ' are in layer 1). The layout -maps are in the comments of keymap_dave.c so I won't bother duplicating them -here. - -Oh, and the LEDs are rather pimped ... because I could! - -Anyway, although I'm sure this keymap won't be to many people's taste you might -find some interesting ideas in here for your own layouts. Do tweet me -(@waveform80) if you have any questions / suggestions / bugs. - -Dave. diff --git a/keyboards/ergodox_ez/keymaps/default/default.png b/keyboards/ergodox_ez/keymaps/default/default.png deleted file mode 100644 index 6575f7b5e..000000000 Binary files a/keyboards/ergodox_ez/keymaps/default/default.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/default/default_highres.png b/keyboards/ergodox_ez/keymaps/default/default_highres.png deleted file mode 100644 index 7d9f045f4..000000000 Binary files a/keyboards/ergodox_ez/keymaps/default/default_highres.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/default/keymap.c b/keyboards/ergodox_ez/keymaps/default/keymap.c deleted file mode 100644 index b48a54a43..000000000 --- a/keyboards/ergodox_ez/keymaps/default/keymap.c +++ /dev/null @@ -1,182 +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|' / Cmd | - * |--------+------+------+------+------+------| 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),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 - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * |Version | 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 - M(0), 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) { - SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); - } - 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/keyboards/ergodox_ez/keymaps/default/readme.md b/keyboards/ergodox_ez/keymaps/default/readme.md deleted file mode 100644 index 8f6dba45e..000000000 --- a/keyboards/ergodox_ez/keymaps/default/readme.md +++ /dev/null @@ -1,10 +0,0 @@ -# ErgoDox EZ Default Configuration - -## Changelog - -* Feb 2, 2016 (V1.1): - * Made the right-hand quote key double as Cmd/Win on hold. So you get ' when you tap it, " when you tap it with Shift, and Cmd or Win when you hold it. You can then use it as a modifier, or just press and hold it for a moment (and then let go) to send a single Cmd or Win keystroke (handy for opening the Start menu on Windows). - -This is what we ship with out of the factory. :) The image says it all: - -![Default](default_highres.png) diff --git a/keyboards/ergodox_ez/keymaps/default_osx/default_osx_highres.png b/keyboards/ergodox_ez/keymaps/default_osx/default_osx_highres.png deleted file mode 100644 index 04f46bbd5..000000000 Binary files a/keyboards/ergodox_ez/keymaps/default_osx/default_osx_highres.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/default_osx/keymap.c b/keyboards/ergodox_ez/keymaps/default_osx/keymap.c deleted file mode 100644 index c57ffbb88..000000000 --- a/keyboards/ergodox_ez/keymaps/default_osx/keymap.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(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_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 -[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/keyboards/ergodox_ez/keymaps/default_osx/readme.md b/keyboards/ergodox_ez/keymaps/default_osx/readme.md deleted file mode 100644 index aa749aac9..000000000 --- a/keyboards/ergodox_ez/keymaps/default_osx/readme.md +++ /dev/null @@ -1,8 +0,0 @@ -# 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). - -![default osx](default_osx_highres.png) diff --git a/keyboards/ergodox_ez/keymaps/dragon788/keymap.c b/keyboards/ergodox_ez/keymaps/dragon788/keymap.c deleted file mode 100644 index 3aec8c6cf..000000000 --- a/keyboards/ergodox_ez/keymaps/dragon788/keymap.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/keyboards/ergodox_ez/keymaps/dvorak/dvorak.png b/keyboards/ergodox_ez/keymaps/dvorak/dvorak.png deleted file mode 100644 index cb8316309..000000000 Binary files a/keyboards/ergodox_ez/keymaps/dvorak/dvorak.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/dvorak/keymap.c b/keyboards/ergodox_ez/keymaps/dvorak/keymap.c deleted file mode 100644 index 22947327d..000000000 --- a/keyboards/ergodox_ez/keymaps/dvorak/keymap.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/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout0.png b/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout0.png deleted file mode 100644 index 6a36f9bfa..000000000 Binary files a/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout0.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout1.png b/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout1.png deleted file mode 100644 index c6e6d913c..000000000 Binary files a/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout1.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout2.png b/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout2.png deleted file mode 100644 index 23f56ff4c..000000000 Binary files a/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout2.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keymap.c b/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keymap.c deleted file mode 100644 index 82f55b4bc..000000000 --- a/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keymap.c +++ /dev/null @@ -1,185 +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 | BrBck| | Play | 6 | 7 | 8 | 9 | 0 | \ / L2 | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Esc | ' | , | . | P | Y | Del | | Ins | F | G | C | R | L | / | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | BkSp | A | O | E | U | I |------| |------| D | H | T | N | S | - | - * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| - * | LShift |:/Ctrl| Q | J | K | X | | | | B | M | W | V |Z/Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |Grv/L1| LAlt | LGui | Left | Right| | Up | Down | [ | ] | ~L1 | - * `----------------------------------' `----------------------------------' - * ,-------------. ,---------------. - * | App | L1 | | L2 |PrntScr | - * ,------|------|------| |------+--------+------. - * | | | Home | | PgUp | | | - * | Space| Tab |------| |------| AltShf |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_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_WBAK, - KC_ESC, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_DELT, - 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_LALT, KC_LGUI, KC_LEFT,KC_RGHT, - CTL_T(KC_APP), TG(1), - KC_HOME, - KC_SPC,KC_TAB,KC_END, - // right hand - KC_MPLY, KC_6, KC_7, KC_8, KC_9, KC_0, LT(MDIA, KC_BSLS), - KC_INS, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, - KC_D, KC_H, KC_T, KC_N, 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, - TG(2), KC_PSCREEN, - KC_PGUP, - KC_PGDN,RALT(KC_RSFT), KC_ENT - ), -/* Keymap 1: Symbol & Media Layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | Prev | Next | | | . | 0 | = | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | |VolUp | | | - * | | |------| |------| Mute | | - * | | | | |VolDn | | | - * `--------------------' `--------------------' - */ -// 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_MPRV,KC_MNXT, - 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_VOLU, - KC_VOLD, KC_MUTE, KC_TRNS -), -/* Keymap 2: QWERTY Layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | Q | W | E | R | T | | | | Y | U | I | O | P | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | A | S | D | F | G |------| |------| H | J | K | L | ; | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// MEDIA AND MOUSE -KEYMAP( // layer 0 : default - // left hand - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - KC_TRNS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS, - KC_TRNS, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_TRNS, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, 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_Y, KC_U, KC_I, KC_O, KC_P, KC_TRNS, - KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_TRNS, - KC_TRNS, KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), 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) -}; - -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/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/readme.md b/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/readme.md deleted file mode 100644 index 984106ff4..000000000 --- a/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/readme.md +++ /dev/null @@ -1,29 +0,0 @@ -# ErgoDox EZ Dvorak International Squisher - -Dvorak layout adjusted with several (linux) applications in mind: - -* Easier Escape for VIM -* Windows/Super key for awesome WM -* Alt+Shift for international characters -* PrintScreen for sys-rq -* Insert for the X11 clip-board - -Major layer changes: - -* Common multimedia keys are integrated into layer 0, less common into layer 1 -* No mouse keys -* Layer 2 is qwerty (for easier gaming & less fortunate keyboard users) - -Known issues: - -* Alt+Shift does not work reliably (depends on the X11 kb layout? Not - entirely clear...) - -![layer0](keyboard-layout0.png) -![layer1](keyboard-layout1.png) -![layer2](keyboard-layout2.png) - -## Changelog - -* 2016-03-29 - * Initial release diff --git a/keyboards/ergodox_ez/keymaps/dvorak_spanish/keymap.c b/keyboards/ergodox_ez/keymaps/dvorak_spanish/keymap.c deleted file mode 100755 index 6eb864b44..000000000 --- a/keyboards/ergodox_ez/keymaps/dvorak_spanish/keymap.c +++ /dev/null @@ -1,284 +0,0 @@ -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" - -/****************************************************************************************** - * SPANISH DVORAK LAYOUT (see http://djelibeibi.unex.es/dvorak/) - * Layer 1: auxiliary keys - * Layer 2: full qwerty layout - ****************************************************************************************** - * IMPORTANT: Software layout must be set to SPANISH QWERTY to work properly - *****************************************************************************************/ - -// LAYERS -#define BASE 0 // dvorak layout (default) -#define AUX 1 // auxiliary keys -#define QWERTY 2 // qwerty layout - -// MACROS -#define OBRACE 0 // key { or shift -#define CBRACE 1 // key } or shift -#define OBRACK 2 // key [ or left alt -#define CBRACK 3 // key ] or left alt -#define CAPS 4 // caps lock - -// LEDS -#define USB_LED_NUM_LOCK 0 -#define USB_LED_CAPS_LOCK 1 -#define USB_LED_SCROLL_LOCK 2 -#define USB_LED_COMPOSE 3 -#define USB_LED_KANA 4 - -// TIMERS -#define KEY_TAP_FAST 85 -#define KEY_TAP_SLOW 95 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0: Base layer - * Keys with double values (like Esc/Ctrl) correspond to the 'tapped' key and the 'held' key, respectively - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | \ | 1 | 2 | 3 | 4 | 5 | <> | | ¡ | 6 | 7 | 8 | 9 | 0 | ' | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | F1/~L1 | . | , | Ñ | P | Y |MEH_T | | L1 | F | G | C | H | L |ALL_T/+ | - * |--------+------+------+------+------+------| DEL | | ~L1 |------+------+------+------+------+--------| - * |Esc/Ctrl| A | O | E | U | I |------| |------| D | R | T | N | S |'/RCtrl | - * |--------+------+------+------+------+------| LGUI | | RALT |------+------+------+------+------+--------| - * | {/LSft | - | Q | J | K | X | | | | B | M | W | V | Z | }/RSft | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |[/LALT| HOME |PGDOWN| PGUP | END | | LEFT | DOWN | UP |RIGHT |]/LALT| - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * |F5/CAG|F6/~L1| |F7/~L1|F8/CAG| - * ,------|------|------| |------+--------+------. - * | | |F4/CA | |F11/CA| | | - * | ENTER| TAB |------| |------| BSPC | SPACE| - * | | |F3/SA | |F12/SA| | | - * `--------------------' `----------------------' - * CAG = CTRL-ALT-GUI - * CA = CTRL-ALT - * SA = SHIFT-ALT - * - */ -[BASE] = KEYMAP( - // left hand - KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NONUS_BSLASH, - LT(AUX, KC_F1), KC_DOT, KC_COMM,KC_SCLN,KC_P, KC_Y, MEH_T(KC_DEL), - CTL_T(KC_ESC), KC_A, KC_O, KC_E, KC_U, KC_I, - M(OBRACE), KC_SLSH,KC_Q, KC_J, KC_K, KC_X, KC_LGUI, - M(OBRACK), KC_HOME,KC_PGDN,KC_PGUP,KC_END, - LCAG_T(KC_F5), LT(AUX, KC_F6), - MT((MOD_LALT | MOD_LCTL), KC_F4), - KC_ENT,KC_TAB,MT((MOD_LALT | MOD_LSFT), KC_F3), - // right hand - KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, - KC_FN1, KC_F, KC_G, KC_C, KC_H, KC_L, ALL_T(KC_RBRACKET), - KC_D, KC_R, KC_T, KC_N, KC_S, CTL_T(KC_QUOTE), - KC_RALT, KC_B, KC_M, KC_W, KC_V, KC_Z, M(CBRACE), - KC_LEFT,KC_DOWN,KC_UP, KC_RGHT,M(CBRACK), - LT(AUX, KC_F7), LCAG_T(KC_F8), - MT((MOD_LALT | MOD_LCTL), KC_F11), - MT((MOD_LALT | MOD_LSFT), KC_F12),KC_BSPC, KC_SPC - ), -/* Keymap 1: Aux layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | SLEEP | PWR | F6 | F7 | F8 | F9 | F10 | F11 | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | < | > | MsUp | | | | | ~L0 | | 7 | 8 | 9 | * | `^ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | |MsLeft|MsDown|MsRght| |------| |------| | 4 | 5 | 6 | + | Ç | - * |--------+------+------+------+------+------| | |PSCR |------+------+------+------+------+--------| - * |CAPSLOCK| | | | | | | | | | 1 | 2 | 3 | / | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |CTRL-S|CTRL-Z|CTRL-X|CTRL-C|CTRL-V| | | . | 0 | = | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | Play | - * ,------|------|------| |------+------+------. - * | | | | | VolUp| | | - * | Lclk | Rclk |------| |------| Prev | Next | - * | | | L2 | | VolDn| | | - * `--------------------' `--------------------' - */ -[AUX] = KEYMAP( - // left hand - KC_NO , KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_SLEP, - KC_TRNS, KC_NONUS_BSLASH, LSFT(KC_NONUS_BSLASH), KC_MS_U, KC_NO, KC_NO, KC_NO, - KC_NO , KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO , - M(CAPS), KC_NO, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO, - LCTL(KC_S), LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), - KC_NO , KC_TRNS, - KC_NO, - KC_BTN1, KC_BTN2, TG(QWERTY), - // right hand - KC_PWR, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TRNS, KC_NO, KC_7, KC_8, KC_9, KC_PAST, KC_LBRACKET, - KC_NO, KC_4, KC_5, KC_6, KC_PPLS, KC_BSLASH, - KC_PSCR, KC_NO, KC_1, KC_2, KC_3, KC_PSLS, KC_NO, - KC_NO ,KC_DOT, KC_0, KC_PEQL, KC_NO, - KC_TRNS, KC_MPLY, - KC_VOLU, - KC_VOLD, KC_MPRV, KC_MNXT -), -/* Keymap 2: QWERTY layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | \ | 1 | 2 | 3 | 4 | 5 | <> | | ¡ | 6 | 7 | 8 | 9 | 0 | ' | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | TRANS | Q | W | E | R | T |MEH_T | | TRANS| Y | U | I | O | P |ALL_T/+ | - * |--------+------+------+------+------+------| DEL | | |------+------+------+------+------+--------| - * |Esc/Ctrl| A | S | D | F | G |------| |------| H | J | K | L | Ñ |'/RCtrl | - * |--------+------+------+------+------+------| LGUI | | RALT |------+------+------+------+------+--------| - * | {/LSft | Z | X | C | V | B | | | | N | M | , | . | - | }/RSft | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |[/LALT| HOME |PGDOWN| PGUP | END | | LEFT | DOWN | UP |RIGHT |]/LALT| - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * |F5/CAG| TRANS| | TRANS|F8/CAG| - * ,------|------|------| |------+--------+------. - * | | |F4/CA | |F11/CA| | | - * | ENTER| TAB |------| |------| BSPC | SPACE| - * | | | TRANS| |F12/SA| | | - * `--------------------' `----------------------' - * CAG = CTRL-ALT-GUI - * CA = CTRL-ALT - * SA = SHIFT-ALT - * - */ -[QWERTY] = KEYMAP( - // left hand - KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NONUS_BSLASH, - KC_TRNS, KC_Q, KC_W, KC_E, KC_R, KC_T, MEH_T(KC_DEL), - CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, - M(OBRACE), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LGUI, - M(OBRACK), KC_HOME,KC_PGDN,KC_PGUP,KC_END, - LCAG_T(KC_F5), KC_TRNS, - MT((MOD_LALT | MOD_LCTL), KC_F4), - KC_ENT,KC_TAB,KC_TRNS, - // right hand - KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, - KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, ALL_T(KC_RBRACKET), - KC_H, KC_J, KC_K, KC_L, KC_SCLN,CTL_T(KC_QUOTE), - KC_RALT, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,M(CBRACE), - KC_LEFT,KC_DOWN,KC_UP, KC_RGHT,M(CBRACK), - KC_TRNS, LCAG_T(KC_F8), - MT((MOD_LALT | MOD_LCTL), KC_F11), - MT((MOD_LALT | MOD_LSFT), KC_F12),KC_BSPC, KC_SPC -), -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_TAP_TOGGLE(AUX) // FN1 - Momentary Layer 1 (Aux) -}; - -static uint16_t key_timer; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - case OBRACE: { - if (record->event.pressed) { - key_timer = timer_read(); - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - if (timer_elapsed(key_timer) < KEY_TAP_SLOW) { - register_code(KC_RALT); - register_code(KC_QUOTE); - unregister_code(KC_QUOTE); - unregister_code(KC_RALT); - } - } - break; - } - case CBRACE: { - if (record->event.pressed) { - key_timer = timer_read(); - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - if (timer_elapsed(key_timer) < KEY_TAP_SLOW) { - register_code(KC_RALT); - register_code(KC_BSLS); - unregister_code(KC_BSLS); - unregister_code(KC_RALT); - } - } - break; - } - case OBRACK: { - if (record->event.pressed) { - key_timer = timer_read(); - register_code(KC_LALT); - } else { - unregister_code(KC_LALT); - if (timer_elapsed(key_timer) < KEY_TAP_SLOW) { - register_code(KC_RALT); - register_code(KC_LBRACKET); - unregister_code(KC_LBRACKET); - unregister_code(KC_RALT); - } - } - break; - } - case CBRACK: { - if (record->event.pressed) { - key_timer = timer_read(); - register_code(KC_LALT); - } else { - unregister_code(KC_LALT); - if (timer_elapsed(key_timer) < KEY_TAP_SLOW) { - register_code(KC_RALT); - register_code(KC_RBRACKET); - unregister_code(KC_RBRACKET); - unregister_code(KC_RALT); - } - } - break; - } - case CAPS: { - if (record->event.pressed) { - register_code(KC_CAPSLOCK); - } else { - unregister_code(KC_CAPSLOCK); - } - 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 1: - ergodox_right_led_3_on(); - break; - case 2: - ergodox_right_led_2_on(); - break; - default: - // none - break; - } - - // Turn the caps lock led on - if (host_keyboard_leds() & (1< - -,--------------------------------------------------. ,--------------------------------------------------. -| \ | 1 | 2 | 3 | 4 | 5 | <> | | ¡ | 6 | 7 | 8 | 9 | 0 | ' | -|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| -| F1/~L1 | . | , | Ñ | P | Y |MEH_T | | L1 | F | G | C | H | L |ALL_T/+ | -|--------+------+------+------+------+------| DEL | | ~L1 |------+------+------+------+------+--------| -|Esc/Ctrl| A | O | E | U | I |------| |------| D | R | T | N | S |'/RCtrl | -|--------+------+------+------+------+------| LGUI | | RALT |------+------+------+------+------+--------| -| {/LSft | - | Q | J | K | X | | | | B | M | W | V | Z | }/RSft | -'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------' - |[/LALT| HOME |PGDOWN| PGUP | END | | LEFT | DOWN | UP |RIGHT |]/LALT| - '----------------------------------' '----------------------------------' - ,-------------. ,-------------. - |F5/CAG|F6/~L1| |F7/~L1|F8/CAG| - ,------|------|------| |------+--------+------. - | | |F4/CA | |F11/CA| | | - | ENTER| TAB |------| |------| BSPC | SPACE| - | | |F3/SA | |F12/SA| | | - '--------------------' '----------------------' - CAG = CTRL-ALT-GUI - CA = CTRL-ALT - SA = SHIFT-ALT - - - -### Keymap 1: Aux layer - -

-
-,--------------------------------------------------.           ,--------------------------------------------------.
-|        |  F1  |  F2  |  F3  |  F4  |  F5  | SLEEP|           | PWR  |  F6  |  F7  |  F8  |  F9  |  F10 |   F11  |
-|--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
-|        |  <   |  >   | MsUp |      |      |      |           | ~L0  |      |   7  |   8  |   9  |   *  |  '^    |
-|--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------|
-|        |      |MsLeft|MsDown|MsRght|      |------|           |------|      |   4  |   5  |   6  |   +  |   Ç    |
-|--------+------+------+------+------+------|      |           |PSCR  |------+------+------+------+------+--------|
-|CAPSLOCK|      |      |      |      |      |      |           |      |      |   1  |   2  |   3  |   /  |        |
-'--------+------+------+------+------+-------------'           '-------------+------+------+------+------+--------'
-  |CTRL-S|CTRL-Z|CTRL-X|CTRL-C|CTRL-V|                                       |      |    . |   0  |   =  |      |
-  '----------------------------------'                                       '----------------------------------'
-                                       ,-------------.       ,-------------.
-                                       |      |      |       |      | Play |
-                                ,------|------|------|       |------+------+------.
-                                |      |      |      |       | VolUp|      |      |
-                                | Lclk | Rclk |------|       |------| Prev | Next |
-                                |      |      |  L2  |       | VolDn|      |      |
-                                '--------------------'       '--------------------'
-
-
- -### Keymap 2: QWERTY layer - -

-
-,--------------------------------------------------.           ,--------------------------------------------------.
-|   \    |   1  |   2  |   3  |   4  |   5  |  <>  |           |   ¡  |   6  |   7  |   8  |   9  |   0  |   '    |
-|--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
-|  TRANS |   Q  |   W  |   E  |   R  |   T  |MEH_T |           | TRANS|   Y  |   U  |   I  |   O  |   P  |ALL_T/+ |
-|--------+------+------+------+------+------| DEL  |           |      |------+------+------+------+------+--------|
-|Esc/Ctrl|   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |   Ñ  |'/RCtrl |
-|--------+------+------+------+------+------| LGUI |           | RALT |------+------+------+------+------+--------|
-| {/LSft |   Z  |   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |   ,  |   .  |   -  | }/RSft |
-'--------+------+------+------+------+-------------'           '-------------+------+------+------+------+--------'
-  |[/LALT| HOME |PGDOWN| PGUP | END  |                                       | LEFT | DOWN |  UP  |RIGHT |]/LALT|
-  '----------------------------------'                                       '----------------------------------'
-                                       ,-------------.       ,-------------.
-                                       |F5/CAG| TRANS|       | TRANS|F8/CAG|
-                                ,------|------|------|       |------+--------+------.
-                                |      |      |F4/CA |       |F11/CA|        |      |
-                                | ENTER| TAB  |------|       |------|  BSPC  | SPACE|
-                                |      |      | TRANS|       |F12/SA|        |      |
-                                '--------------------'       '----------------------'
- CAG = CTRL-ALT-GUI
-  CA = CTRL-ALT
-  SA = SHIFT-ALT
-
-
- - -## Generation of .hex file -> [Download scripts from here](https://github.com/johgh/keyboard/tree/master/ergodox) - -> Execute install.sh and generate.sh scripts. - -> Flash with `teensy_loader` binary (should be installed from previous step) diff --git a/keyboards/ergodox_ez/keymaps/emacs_osx_dk/default_highres.png b/keyboards/ergodox_ez/keymaps/emacs_osx_dk/default_highres.png deleted file mode 100644 index 1d2583740..000000000 Binary files a/keyboards/ergodox_ez/keymaps/emacs_osx_dk/default_highres.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/emacs_osx_dk/keymap.c b/keyboards/ergodox_ez/keymaps/emacs_osx_dk/keymap.c deleted file mode 100644 index 1d8e66a08..000000000 --- a/keyboards/ergodox_ez/keymaps/emacs_osx_dk/keymap.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 | L1 | | L2 | 6 | 7 | 8 | 9 | 0 | = | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | - | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | \/LCtrl| A | S | D | F | G |------| |------| H | J | K | L | ; |'/RCtrl | - * |--------+------+------+------+------+------| RAlt | | RAlt |------+------+------+------+------+--------| - * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | ~L1 | LCtrl| Left| Right| LAlt | | LAlt | Up | Down | RCtrl| ~L2 | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | Del | Ins | | Esc | App | - * ,------|------|------| |------+--------+------. - * | | | Home | | PgUp | | | - * | Space|Backsp|------| |------| LGui |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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, TG(SYMB), - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, - CTL_T(KC_BSLS), KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_RALT, - MO(SYMB), KC_LCTRL, KC_LEFT,KC_RGHT,KC_LALT, - KC_DELT,KC_INS, - KC_HOME, - KC_SPC,KC_BSPC,KC_END, - // right hand - TG(MDIA), KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, - KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, - KC_H, KC_J, KC_K, KC_L, KC_SCLN, CTL_T(KC_QUOT), - KC_RALT, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, - KC_LALT,KC_UP, KC_DOWN,KC_RCTRL, MO(MDIA), - KC_ESC, KC_APP, - KC_PGUP, - KC_PGDN, KC_LGUI, 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 | 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_0, KC_0, KC_DOT, 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/keyboards/ergodox_ez/keymaps/emacs_osx_dk/readme.md b/keyboards/ergodox_ez/keymaps/emacs_osx_dk/readme.md deleted file mode 100644 index 4839988d9..000000000 --- a/keyboards/ergodox_ez/keymaps/emacs_osx_dk/readme.md +++ /dev/null @@ -1,10 +0,0 @@ -# ErgoDox EZ Emacs-OSX-DeadKeys Configuration - -Since I'm an Emacs user, ctrl keys are very important and gets a placement where the usual caps_lock is. There -are an extra pair of ctrls, just in case there where problems with the holding one's, but not as comfortable. - -Gui button takes a predominant place on the thumb cluster, as I'm using a mac os x and it relies heavily on it. - -Finally there is also two Right Alts to easily access to accented letters of the spanish alphabet. - -![Default](default_highres.png) diff --git a/keyboards/ergodox_ez/keymaps/erez_experimental/Makefile b/keyboards/ergodox_ez/keymaps/erez_experimental/Makefile deleted file mode 100644 index b673c5ce5..000000000 --- a/keyboards/ergodox_ez/keymaps/erez_experimental/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -# Having a file like this allows you to override Makefile definitions -# for your own particular keymap - -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -COMMAND_ENABLE = no # Commands for debug and configuration - -ifndef QUANTUM_DIR - include ../../../../Makefile -endif diff --git a/keyboards/ergodox_ez/keymaps/erez_experimental/config.h b/keyboards/ergodox_ez/keymaps/erez_experimental/config.h deleted file mode 100644 index e5d7fe188..000000000 --- a/keyboards/ergodox_ez/keymaps/erez_experimental/config.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H - -#include "../../config.h" - -#define ONESHOT_TAP_TOGGLE 2 -#define ONESHOT_TIMEOUT 300 - -#undef LEADER_TIMEOUT -#define LEADER_TIMEOUT 300 - -#endif diff --git a/keyboards/ergodox_ez/keymaps/erez_experimental/keymap.c b/keyboards/ergodox_ez/keymaps/erez_experimental/keymap.c deleted file mode 100644 index 04ad2a816..000000000 --- a/keyboards/ergodox_ez/keymaps/erez_experimental/keymap.c +++ /dev/null @@ -1,199 +0,0 @@ -#include -#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 | 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|Leader|------| |------| Tab/L1 |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_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_LSPO, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_LBRC), - LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT, - ALT_T(KC_APP), KC_LGUI, - KC_HOME, - KC_SPC,KC_LEAD,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_RBRC),KC_N,KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSPC, - KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, LT(SYMB,KC_MINS), - KC_LALT, CTL_T(KC_ESC), - KC_PGUP, - KC_PGDN,LT(SYMB, KC_TAB), KC_ENT - ), -/* Keymap 1: Symbol Layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | F12 | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | 1 | 2 | 3 | 4 | 5 |------| |------| & | _ | - | ; | + | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | 6 | 7 | 8 | 9 | 0 | | | | | | @ | = | % | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | |NxtTab|PrvTab| | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// SYMBOLS -[SYMB] = KEYMAP( - // left hand - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, - KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, - KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, - KC_TRNS, KC_TRNS,KC_TRNS,LCTL(KC_PGUP), LCTL(KC_PGDN), - 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, - KC_AMPR, KC_UNDS, KC_MINS, CM_SCLN, KC_PLUS, KC_TRNS, - KC_TRNS, KC_PIPE, KC_AT, KC_EQL, KC_PERC, KC_TRNS, 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 - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | PgUp | Home | End | PgDn | |------| |------| | | | | | Play | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | Prev | Next | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | |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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_PGUP, KC_HOME, KC_END, KC_PGDN, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_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) - [2] = ACTION_MACRO_TAP(0), // Eric Tang's Famous Macro! - [3] = ACTION_MACRO_TAP(1) // Eric Tang's Famous Macro! -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - return MACRO_NONE; -}; - -// Runs just one time when the keyboard initializes. -void matrix_init_user(void) { - -}; - -LEADER_EXTERNS(); - -// 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; - } - - LEADER_DICTIONARY() { - leading = false; - leader_end(); - - SEQ_ONE_KEY(KC_W) { - register_code(KC_LALT); - register_code(KC_F4); - unregister_code(KC_F4); - unregister_code(KC_LALT); - } - SEQ_ONE_KEY(KC_O) { - register_code(KC_LCTL); - register_code(KC_LSFT); - register_code(KC_O); - unregister_code(KC_O); - unregister_code(KC_LSFT); - unregister_code(KC_LCTL); - } - } -} - diff --git a/keyboards/ergodox_ez/keymaps/erez_experimental/readme.md b/keyboards/ergodox_ez/keymaps/erez_experimental/readme.md deleted file mode 100644 index 66acfa187..000000000 --- a/keyboards/ergodox_ez/keymaps/erez_experimental/readme.md +++ /dev/null @@ -1,51 +0,0 @@ -# Erez's experimental layout - -This is my personal layout which I use to test out ideas which may or may not make it onto the default layout we ship with. It's based off the default layout, with various tweaks. - -Changelog: - -## May 24, 2016: - -* Implements Leader key example - * Leader, W sends Alt-F4 - * Leader, O sends Ctrl-shift-o (a shortcut I use in FrontApp) - -## May 8, 2016: - -* Makes bottom-right key send minus/underscore when tapped, L1 temporary toggle when held -* Tweaked the positions of the numbers on the symbol layer. Basically, 12345 are now directly under their number-row counterparts in layer 0. You can imagine pulling the number row down to the home row. And 67890 are directly under 12345 - so it's a matter of just adding 5 and going to the next row (1+5 = 6, 2+5 = 7 and so on). -* Tweaks media/nav layer - * Removes mouse control, as I don't use it - * Makes left home row keys PgUp, Home, End, PgDn - -## Apr 29, 2016: - -* Tweaks the Hyper and Meh key to send brackets when tapped -* Turns bottom-right key into a minus/underscore (easy to reach with the right pinky) - -## Apr 25, 2016: - -* Made it so that the right and left Shift keys send opening and closing parens ( ) when tapped - -## Feb 11, 2016: - -* Updated ASCII legend for thumb clusters -* Made it so outer left-hand thumb key is L1 momentary toggle -* Added % and @ to L1 -* Swapped positions for _ and - on L1 - -## Feb 5, 2016: - -* A whole new design for the symbol layer. Specifically: - * Put the minus, underscore, and semicolon right in the homerow for the right hand - * Parens are in better places for me - * The arrow keys now send Ctrl-PgUp and Ctrl-PgDn, for switching browser tabs with the arrows when in symbol layer - * Tab (right-hand outer thumb key) now does double duty to toggle symbol layer when held down - * Backspace (left-hand outer thumb key) now just toggles symbol layer (I wasn't using it as a backspace) - - -## Jan 19, 2016: - -* 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). - diff --git a/keyboards/ergodox_ez/keymaps/german-kinergo/keymap.c b/keyboards/ergodox_ez/keymaps/german-kinergo/keymap.c deleted file mode 100644 index b1cecf0dd..000000000 --- a/keyboards/ergodox_ez/keymaps/german-kinergo/keymap.c +++ /dev/null @@ -1,210 +0,0 @@ -// German keymap derived from "german", but more closely resembling the German layout of the Kinesis Ergo Elan. -// -// chschmitz, 2016-01-27 -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" -#include "keymap_german.h" - -// Layer names -#define BASE 0 // default layer -#define SYMB 1 // symbol layer -#define MDIA 2 // media keys - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0: Basic layer - * - * X'es mark the spots where this is different from the "german" layout which it is based on. - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * |X Esc X| 1 | 2 | 3 | 4 | 5 |X ` X| |XPRSCX| 6 | 7 | 8 | 9 | 0 | ß | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * |X Tab X| Q | W | E | R | T |X L1 X| |X L1 X| Z | U | I | O | P | Ü | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | Caps | A | S | D | F | G |------| |------| H | J | K | L | Ö | Ä/L2 | - * |--------+------+------+------+------+------|X L2 X| |X L2 X|------+------+------+------+------+--------| - * | LShift | Y | X | C | V | B | | | | N | M | , | . |X - X| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |XLGuiX|X ^ X|X < X|XLEFTX|XRIGHT| |XDownX|X Up X|X # X|X + X|XRGuiX| - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * |XCTRLX|XALTX | | Alt |Ctrl/Esc| - * ,------+------+------| |------+--------+------. - * |XXX |XXX | Home | | PgUp |XXX |XXX | - * | Bkspc|Del |------| |------| Enter | Space| - * | | | End | | PgDn | | | - * `--------------------' `----------------------' - */ -// If it accepts an argument (i.e, is a function), it doesn't need KC_. -// Otherwise, it needs KC_* -[BASE] = KEYMAP( // layer 0 : default - // left hand - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, DE_ACUT, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(1), - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, DE_Y, KC_X, KC_C, KC_V, KC_B, MO(2), - KC_LGUI, DE_CIRC, DE_LESS, KC_LEFT, KC_RIGHT, - KC_LCTRL, KC_LALT, - KC_HOME, - KC_BSPC,KC_DELT,KC_END, - // right hand - KC_PSCREEN, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - MO(1), DE_Z, KC_U, KC_I, KC_O, KC_P, DE_UE, - KC_H, KC_J, KC_K, KC_L, DE_OE, LT(MDIA,DE_AE), - MO(2), KC_N, KC_M, KC_COMM, KC_DOT, DE_MINS, KC_RSFT, - KC_DOWN, KC_UP, DE_HASH, DE_PLUS, KC_RGUI, - KC_RALT, KC_RCTRL, - KC_PGUP, - KC_PGDN, KC_ENT, KC_SPC - ), -// [BASE] = KEYMAP( // layer 0 : default -// // left hand -// KC_CIRC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY, -// KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1), -// KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, -// KC_LSFT, DE_Y, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), -// LT(SYMB,DE_LESS),CTL_T(DE_HASH), DE_ACUT, DE_MINS, DE_PLUS, -// ALT_T(KC_APP), KC_LGUI, -// KC_HOME, -// KC_SPC,KC_BSPC,KC_END, -// // right hand -// KC_MNXT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, -// TG(2), DE_Z, KC_U, KC_I, KC_O, KC_P, DE_UE, -// KC_H, KC_J, KC_K, KC_L, DE_OE, LT(MDIA,DE_AE), -// MEH_T(KC_NO),KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(DE_MINS), KC_RSFT, -// KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_FN1, -// KC_LALT,CTL_T(KC_ESC), -// KC_PGUP, -// KC_PGDN,KC_TAB, KC_ENT -// ), -/* Keymap 1: Symbol Layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | . | 0 | = | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// SYMBOLS -[SYMB] = KEYMAP( - // left hand - KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, - KC_TRNS,DE_EXLM,DE_AT, DE_LCBR,DE_RCBR,DE_PIPE,KC_TRNS, - KC_TRNS,DE_HASH,DE_DLR, DE_LPRN,DE_RPRN,DE_GRV, - KC_TRNS,DE_PERC,DE_CIRC,DE_LBRC,DE_RBRC,DE_TILD,KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - KC_TRNS,KC_TRNS, - KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS, - // right hand - KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TRNS, KC_UP, KC_7, KC_8, KC_9, DE_ASTR, KC_F12, - KC_DOWN, KC_4, KC_5, KC_6, DE_PLUS, KC_TRNS, - KC_TRNS, DE_AMPR, KC_1, KC_2, KC_3, DE_BSLS, KC_TRNS, - KC_TRNS,KC_DOT, KC_0, DE_EQL, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), -/* Keymap 2: Media and mouse keys - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | Lclk | MsUp | Rclk | | | | | |VolDwn| Mute |VolUp | | F12 | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | Btn4 |MsLeft|MsDown|MsRght| Btn5 |------| |------| | Prev | Stop | Play | Next | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | |WhRght|WhDown| WhUp |WhLeft|WhClk | | | |BwSrch|BwBack|BwHome|BwRefr|BwFwd | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | |MsAcl0|MsAcl1|MsAcl2| | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | |Brwser|Brwser| - * | Lclk | Rclk |------| |------|Back |Forwd | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// MEDIA AND MOUSE -[MDIA] = KEYMAP( - KC_TRNS, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_TRNS, - KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS, - KC_TRNS, KC_BTN4, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN5, - KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_BTN3, KC_TRNS, - KC_TRNS, KC_TRNS, KC_ACL0, KC_ACL1, KC_ACL2, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_BTN1, KC_BTN2, KC_TRNS, - // right hand - KC_TRNS, KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11, - KC_TRNS, KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, KC_F12, - KC_TRNS, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, KC_TRNS, - KC_TRNS, KC_WSCH, KC_WBAK, KC_WHOM, KC_WREF, KC_WFWD, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_WBAK, KC_WFWD -), -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; - -// Runs just one time when the keyboard initializes. -void matrix_init_user(void) { - -}; - -// Runs constantly in the background, in a loop. -void matrix_scan_user(void) { - - uint8_t layer = biton32(layer_state); - - ergodox_board_led_off(); - ergodox_right_led_1_off(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); - switch (layer) { - case SYMB: - ergodox_right_led_1_on(); - break; - case MDIA: - ergodox_right_led_2_on(); - break; - default: - ergodox_board_led_off(); - break; - } - -}; diff --git a/keyboards/ergodox_ez/keymaps/german-kinergo/layout-code.png b/keyboards/ergodox_ez/keymaps/german-kinergo/layout-code.png deleted file mode 100644 index a0ef551e1..000000000 Binary files a/keyboards/ergodox_ez/keymaps/german-kinergo/layout-code.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/german-kinergo/layout-media.png b/keyboards/ergodox_ez/keymaps/german-kinergo/layout-media.png deleted file mode 100644 index 56aea1dca..000000000 Binary files a/keyboards/ergodox_ez/keymaps/german-kinergo/layout-media.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/german-kinergo/layout.png b/keyboards/ergodox_ez/keymaps/german-kinergo/layout.png deleted file mode 100644 index 76a1aa5d7..000000000 Binary files a/keyboards/ergodox_ez/keymaps/german-kinergo/layout.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/german-kinergo/readme.md b/keyboards/ergodox_ez/keymaps/german-kinergo/readme.md deleted file mode 100644 index 557d85a8a..000000000 --- a/keyboards/ergodox_ez/keymaps/german-kinergo/readme.md +++ /dev/null @@ -1,35 +0,0 @@ -# German Layout for the ErgoDox - -This layout is inspired by the "kinesis-qwerty-mod" from benblazak's -[ergodox-firmware](https://github.com/benblazak/ergodox-firmware), as well as by the "german" layout from the -[qmk_firmware](https://github.com/jackhumbert/qmk_firmware). -The goal was to have a layout that is pretty close to an ordinary German -keyboard, so I don't have to make adjustments on the operating system level -and I keep some of the muscle memory to use a regular keyboard. - -Modifications I made with regard to the aforementioned layouts: - -* The key layout is pretty close to the layout of a German Kinesis Ergo Elan. - The only exception I made is that I reversed the "up" and "down" cursor keys, - since that feels more natural to me. - -* All layer changes are "momentary", i.e. they only last as long as the respective key is pressed. - -* I sacrificed the Hyper and Meh keys, which I don't use, and put layer change keys in their place. - -* I added a PrintScreen key which I use quite regularly for screenshots. - -## Default Layer - -![Layout of the default layer](layout.png "Layout of the default layer") - -## Code Layer - -![Layout of the code layer](layout-code.png "Layout of the code layer") - -## Media Layer - -![Layout of the media layer](layout-media.png "Layout of the media layer") - -Christoph Schmitz <schm4704 at web dot de> -2016-01-28 diff --git a/keyboards/ergodox_ez/keymaps/german-manuneo/compile_keymap.py b/keyboards/ergodox_ez/keymaps/german-manuneo/compile_keymap.py deleted file mode 100644 index 7076a6ecb..000000000 --- a/keyboards/ergodox_ez/keymaps/german-manuneo/compile_keymap.py +++ /dev/null @@ -1,710 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -"""Compiler for keymap.c files - -This scrip will generate a keymap.c file from a simple -markdown file with a specific layout. - -Usage: - python compile_keymap.py INPUT_PATH [OUTPUT_PATH] -""" -from __future__ import division -from __future__ import print_function -from __future__ import absolute_import -from __future__ import unicode_literals - -import os -import io -import re -import sys -import json -import unicodedata -import collections -import itertools as it - -PY2 = sys.version_info.major == 2 - -if PY2: - chr = unichr - - -KEYBOARD_LAYOUTS = { - # These map positions in the parsed layout to - # positions in the KEYMAP MATRIX - 'ergodox_ez': [ - [ 0, 1, 2, 3, 4, 5, 6], [38, 39, 40, 41, 42, 43, 44], - [ 7, 8, 9, 10, 11, 12, 13], [45, 46, 47, 48, 49, 50, 51], - [14, 15, 16, 17, 18, 19 ], [ 52, 53, 54, 55, 56, 57], - [20, 21, 22, 23, 24, 25, 26], [58, 59, 60, 61, 62, 63, 64], - [27, 28, 29, 30, 31 ], [ 65, 66, 67, 68, 69], - [ 32, 33], [70, 71 ], - [ 34], [72 ], - [ 35, 36, 37], [73, 74, 75 ], - ] -} - -ROW_INDENTS = { - 'ergodox_ez': [0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 5, 0, 6, 0, 4, 0] -} - -BLANK_LAYOUTS = [ -# Compact Layout -""" -.------------------------------------.------------------------------------. -| | | | | | | | | | | | | | | -!-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! -| | | | | | | | | | | | | | | -!-----+----+----+----x----x----! ! !----x----x----+----+----+-----! -| | | | | | |-----!-----! | | | | | | -!-----+----+----+----x----x----! ! !----x----x----+----+----+-----! -| | | | | | | | | | | | | | | -'-----+----+----+----+----+----------'----------+----+----+----+----+-----' - | | | | | | ! | | | | | - '------------------------' '------------------------' - .-----------. .-----------. - | | | ! | | - .-----+-----+-----! !-----+-----+-----. - ! ! | | ! | ! ! - ! ! !-----! !-----! ! ! - | | | | ! | | | - '-----------------' '-----------------' -""", - -# Wide Layout -""" -.---------------------------------------------. .---------------------------------------------. -| | | | | | | | ! | | | | | | | -!-------+-----+-----+-----+-----+-------------! !-------+-----+-----+-----+-----+-----+-------! -| | | | | | | | ! | | | | | | | -!-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------! -| | | | | | |-------! !-------! | | | | | | -!-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------! -| | | | | | | | ! | | | | | | | -'-------+-----+-----+-----+-----+-------------' '-------------+-----+-----+-----+-----+-------' - | | | | | | ! | | | | | - '------------------------------' '------------------------------' - .---------------. .---------------. - | | | ! | | - .-------+-------+-------! !-------+-------+-------. - ! ! | | ! | ! ! - ! ! !-------! !-------! ! ! - | | | | ! | | | - '-----------------------' '-----------------------' -""", -] - - -DEFAULT_CONFIG = { - "keymaps_includes": [ - "keymap_common.h", - ], - 'filler': "-+.'!:x", - 'separator': "|", - 'default_key_prefix': ["KC_"], -} - - -SECTIONS = [ - 'layout_config', - 'layers', -] - - -# Markdown Parsing - -ONELINE_COMMENT_RE = re.compile(r""" - ^ # comment must be at the start of the line - \s* # arbitrary whitespace - // # start of the comment - (.*) # the comment - $ # until the end of line -""", re.MULTILINE | re.VERBOSE -) - -INLINE_COMMENT_RE = re.compile(r""" - ([\,\"\[\]\{\}\d]) # anythig that might end a expression - \s+ # comment must be preceded by whitespace - // # start of the comment - \s # and succeded by whitespace - (?:[^\"\]\}\{\[]*) # the comment (except things which might be json) - $ # until the end of line -""", re.MULTILINE | re.VERBOSE) - -TRAILING_COMMA_RE = re.compile(r""" - , # the comma - (?:\s*) # arbitrary whitespace - $ # only works if the trailing comma is followed by newline - (\s*) # arbitrary whitespace - ([\]\}]) # end of an array or object -""", re.MULTILINE | re.VERBOSE) - - -def loads(raw_data): - if isinstance(raw_data, bytes): - raw_data = raw_data.decode('utf-8') - - raw_data = ONELINE_COMMENT_RE.sub(r"", raw_data) - raw_data = INLINE_COMMENT_RE.sub(r"\1", raw_data) - raw_data = TRAILING_COMMA_RE.sub(r"\1\2", raw_data) - return json.loads(raw_data) - - -def parse_config(path): - def reset_section(): - section.update({ - 'name': section.get('name', ""), - 'sub_name': "", - 'start_line': -1, - 'end_line': -1, - 'code_lines': [], - }) - - def start_section(line_index, line): - end_section() - if line.startswith("# "): - name = line[2:] - elif line.startswith("## "): - name = line[3:] - else: - name = "" - - name = name.strip().replace(" ", "_").lower() - if name in SECTIONS: - section['name'] = name - else: - section['sub_name'] = name - section['start_line'] = line_index - - def end_section(): - if section['start_line'] >= 0: - if section['name'] == 'layout_config': - config.update(loads("\n".join( - section['code_lines'] - ))) - elif section['sub_name'].startswith('layer'): - layer_name = section['sub_name'] - config['layer_lines'][layer_name] = section['code_lines'] - - reset_section() - - def amend_section(line_index, line): - section['end_line'] = line_index - section['code_lines'].append(line) - - config = DEFAULT_CONFIG.copy() - config.update({ - 'layer_lines': collections.OrderedDict(), - 'macro_ids': {'UM'}, - 'unicode_macros': {}, - }) - - section = {} - reset_section() - - with io.open(path, encoding="utf-8") as fh: - for i, line in enumerate(fh): - if line.startswith("#"): - start_section(i, line) - elif line.startswith(" "): - amend_section(i, line[4:]) - else: - # TODO: maybe parse description - pass - - end_section() - assert 'layout' in config - return config - -# header file parsing - -IF0_RE = re.compile(r""" - ^ - #if 0 - $.*? - #endif -""", re.MULTILINE | re.DOTALL | re.VERBOSE) - - -COMMENT_RE = re.compile(r""" - /\* - .*? - \*/" -""", re.MULTILINE | re.DOTALL | re.VERBOSE) - - -def read_header_file(path): - with io.open(path, encoding="utf-8") as fh: - data = fh.read() - data, _ = COMMENT_RE.subn("", data) - data, _ = IF0_RE.subn("", data) - return data - - -def regex_partial(re_str_fmt, flags): - def partial(*args, **kwargs): - re_str = re_str_fmt.format(*args, **kwargs) - return re.compile(re_str, flags) - return partial - - -KEYDEF_REP = regex_partial(r""" - #define - \s - ( - (?:{}) # the prefixes - (?:\w+) # the key name - ) # capture group end -""", re.MULTILINE | re.DOTALL | re.VERBOSE) - - -ENUM_RE = re.compile(r""" - ( - enum - \s\w+\s - \{ - .*? # the enum content - \} - ; - ) # capture group end -""", re.MULTILINE | re.DOTALL | re.VERBOSE) - - -ENUM_KEY_REP = regex_partial(r""" - ( - {} # the prefixes - \w+ # the key name - ) # capture group end -""", re.MULTILINE | re.DOTALL | re.VERBOSE) - - -def parse_keydefs(config, data): - prefix_options = "|".join(config['key_prefixes']) - keydef_re = KEYDEF_REP(prefix_options) - enum_key_re = ENUM_KEY_REP(prefix_options) - for match in keydef_re.finditer(data): - yield match.groups()[0] - - for enum_match in ENUM_RE.finditer(data): - enum = enum_match.groups()[0] - for key_match in enum_key_re.finditer(enum): - yield key_match.groups()[0] - - -def parse_valid_keys(config, out_path): - basepath = os.path.abspath(os.path.join(os.path.dirname(out_path))) - dirpaths = [] - subpaths = [] - while len(subpaths) < 6: - path = os.path.join(basepath, *subpaths) - dirpaths.append(path) - dirpaths.append(os.path.join(path, "tmk_core", "common")) - dirpaths.append(os.path.join(path, "quantum")) - subpaths.append('..') - - includes = set(config['keymaps_includes']) - includes.add("keycode.h") - - valid_keycodes = set() - for dirpath, include in it.product(dirpaths, includes): - include_path = os.path.join(dirpath, include) - if os.path.exists(include_path): - header_data = read_header_file(include_path) - valid_keycodes.update( - parse_keydefs(config, header_data) - ) - return valid_keycodes - - -# Keymap Parsing - -def iter_raw_codes(layer_lines, filler, separator): - filler_re = re.compile("[" + filler + " ]") - for line in layer_lines: - line, _ = filler_re.subn("", line.strip()) - if not line: - continue - codes = line.split(separator) - for code in codes[1:-1]: - yield code - - -def iter_indexed_codes(raw_codes, key_indexes): - key_rows = {} - key_indexes_flat = [] - - for row_index, key_indexes in enumerate(key_indexes): - for key_index in key_indexes: - key_rows[key_index] = row_index - key_indexes_flat.extend(key_indexes) - assert len(raw_codes) == len(key_indexes_flat) - for raw_code, key_index in zip(raw_codes, key_indexes_flat): - # we keep track of the row mostly for layout purposes - yield raw_code, key_index, key_rows[key_index] - - -LAYER_CHANGE_RE = re.compile(r""" - (DF|TG|MO)\(\d+\) -""", re.VERBOSE) - - -MACRO_RE = re.compile(r""" - M\(\w+\) -""", re.VERBOSE) - - -UNICODE_RE = re.compile(r""" - U[0-9A-F]{4} -""", re.VERBOSE) - - -NON_CODE = re.compile(r""" - ^[^A-Z0-9_]$ -""", re.VERBOSE) - - -def parse_uni_code(raw_code): - macro_id = "UC_" + ( - unicodedata.name(raw_code) - .replace(" ", "_") - .replace("-", "_") - ) - code = "M({})".format(macro_id) - uc_hex = "{:04X}".format(ord(raw_code)) - return code, macro_id, uc_hex - - -def parse_key_code(raw_code, key_prefixes, valid_keycodes): - if raw_code in valid_keycodes: - return raw_code - - for prefix in key_prefixes: - code = prefix + raw_code - if code in valid_keycodes: - return code - - -def parse_code(raw_code, key_prefixes, valid_keycodes): - if not raw_code: - return 'KC_TRNS', None, None - - if LAYER_CHANGE_RE.match(raw_code): - return raw_code, None, None - - if MACRO_RE.match(raw_code): - macro_id = raw_code[2:-1] - return raw_code, macro_id, None - - if UNICODE_RE.match(raw_code): - hex_code = raw_code[1:] - return parse_uni_code(chr(int(hex_code, 16))) - - if NON_CODE.match(raw_code): - return parse_uni_code(raw_code) - - code = parse_key_code(raw_code, key_prefixes, valid_keycodes) - return code, None, None - - -def parse_keymap(config, key_indexes, layer_lines, valid_keycodes): - keymap = {} - raw_codes = list(iter_raw_codes( - layer_lines, config['filler'], config['separator'] - )) - indexed_codes = iter_indexed_codes(raw_codes, key_indexes) - key_prefixes = config['key_prefixes'] - for raw_code, key_index, row_index in indexed_codes: - code, macro_id, uc_hex = parse_code( - raw_code, key_prefixes, valid_keycodes - ) - # TODO: line numbers for invalid codes - err_msg = "Could not parse key '{}' on row {}".format( - raw_code, row_index - ) - assert code is not None, err_msg - # print(repr(raw_code), repr(code), macro_id, uc_hex) - if macro_id: - config['macro_ids'].add(macro_id) - if uc_hex: - config['unicode_macros'][macro_id] = uc_hex - keymap[key_index] = (code, row_index) - return keymap - - -def parse_keymaps(config, valid_keycodes): - keymaps = collections.OrderedDict() - key_indexes = config.get( - 'key_indexes', KEYBOARD_LAYOUTS[config['layout']] - ) - # TODO: maybe validate key_indexes - - for layer_name, layer_lines, in config['layer_lines'].items(): - keymaps[layer_name] = parse_keymap( - config, key_indexes, layer_lines, valid_keycodes - ) - return keymaps - -# keymap.c output - -USERCODE = """ -// 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 L1: - ergodox_right_led_1_on(); - break; - case L2: - ergodox_right_led_2_on(); - break; - case L3: - ergodox_right_led_3_on(); - break; - case L4: - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); - break; - case L5: - ergodox_right_led_1_on(); - ergodox_right_led_3_on(); - break; - // case L6: - // ergodox_right_led_2_on(); - // ergodox_right_led_3_on(); - // break; - // case L7: - // ergodox_right_led_1_on(); - // ergodox_right_led_2_on(); - // ergodox_right_led_3_on(); - // break; - default: - ergodox_board_led_off(); - break; - } -}; -""" - -MACROCODE = """ -#define UC_MODE_WIN 0 -#define UC_MODE_LINUX 1 -#define UC_MODE_OSX 2 - -// TODO: allow default mode to be configured -static uint16_t unicode_mode = UC_MODE_WIN; - -uint16_t hextokeycode(uint8_t hex) {{ - if (hex == 0x0) {{ - return KC_P0; - }} - if (hex < 0xA) {{ - return KC_P1 + (hex - 0x1); - }} - return KC_A + (hex - 0xA); -}} - -void unicode_action_function(uint16_t hi, uint16_t lo) {{ - switch (unicode_mode) {{ - case UC_MODE_WIN: - register_code(KC_LALT); - - register_code(KC_PPLS); - unregister_code(KC_PPLS); - - register_code(hextokeycode((hi & 0xF0) >> 4)); - unregister_code(hextokeycode((hi & 0xF0) >> 4)); - register_code(hextokeycode((hi & 0x0F))); - unregister_code(hextokeycode((hi & 0x0F))); - register_code(hextokeycode((lo & 0xF0) >> 4)); - unregister_code(hextokeycode((lo & 0xF0) >> 4)); - register_code(hextokeycode((lo & 0x0F))); - unregister_code(hextokeycode((lo & 0x0F))); - - unregister_code(KC_LALT); - break; - case UC_MODE_LINUX: - register_code(KC_LCTL); - register_code(KC_LSFT); - - register_code(KC_U); - unregister_code(KC_U); - - register_code(hextokeycode((hi & 0xF0) >> 4)); - unregister_code(hextokeycode((hi & 0xF0) >> 4)); - register_code(hextokeycode((hi & 0x0F))); - unregister_code(hextokeycode((hi & 0x0F))); - register_code(hextokeycode((lo & 0xF0) >> 4)); - unregister_code(hextokeycode((lo & 0xF0) >> 4)); - register_code(hextokeycode((lo & 0x0F))); - unregister_code(hextokeycode((lo & 0x0F))); - - unregister_code(KC_LCTL); - unregister_code(KC_LSFT); - break; - case UC_MODE_OSX: - break; - }} -}} - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {{ - if (!record->event.pressed) {{ - return MACRO_NONE; - }} - // MACRODOWN only works in this function - switch(id) {{ - case UM: - unicode_mode = (unicode_mode + 1) % 2; - break; -{macro_cases} -{unicode_macro_cases} - default: - break; - }} - return MACRO_NONE; -}}; -""" - - -UNICODE_MACRO_TEMPLATE = """ -case {macro_id}: - unicode_action_function(0x{hi:02x}, 0x{lo:02x}); - break; -""".strip() - - -def unicode_macro_cases(config): - for macro_id, uc_hex in config['unicode_macros'].items(): - hi = int(uc_hex, 16) >> 8 - lo = int(uc_hex, 16) & 0xFF - unimacro_keys = ", ".join( - "T({})".format( - "KP_" + digit if digit.isdigit() else digit - ) for digit in uc_hex - ) - yield UNICODE_MACRO_TEMPLATE.format( - macro_id=macro_id, hi=hi, lo=lo - ) - - -def iter_keymap_lines(keymap, row_indents=None): - col_widths = {} - col = 0 - # first pass, figure out the column widths - prev_row_index = None - for code, row_index in keymap.values(): - if row_index != prev_row_index: - col = 0 - if row_indents: - col = row_indents[row_index] - col_widths[col] = max(len(code), col_widths.get(col, 0)) - prev_row_index = row_index - col += 1 - - # second pass, yield the cell values - col = 0 - prev_row_index = None - for key_index in sorted(keymap): - code, row_index = keymap[key_index] - if row_index != prev_row_index: - col = 0 - yield "\n" - if row_indents: - for indent_col in range(row_indents[row_index]): - pad = " " * (col_widths[indent_col] - 4) - yield (" /*-*/" + pad) - col = row_indents[row_index] - else: - yield pad - yield " {}".format(code) - if key_index < len(keymap) - 1: - yield "," - # This will be yielded on the next iteration when - # we know that we're not at the end of a line. - pad = " " * (col_widths[col] - len(code)) - prev_row_index = row_index - col += 1 - - -def iter_keymap_parts(config, keymaps): - # includes - for include_path in config['keymaps_includes']: - yield '#include "{}"\n'.format(include_path) - - yield "\n" - - # definitions - for i, macro_id in enumerate(sorted(config['macro_ids'])): - yield "#define {} {}\n".format(macro_id, i) - - yield "\n" - - for i, layer_name in enumerate(config['layer_lines']): - yield '#define L{0:<3} {0:<5} // {1}\n'.format(i, layer_name) - - yield "\n" - - # keymaps - yield "const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\n" - - for i, layer_name in enumerate(config['layer_lines']): - # comment - layer_lines = config['layer_lines'][layer_name] - prefixed_lines = " * " + " * ".join(layer_lines) - yield "/*\n{} */\n".format(prefixed_lines) - - # keymap codes - keymap = keymaps[layer_name] - row_indents = ROW_INDENTS.get(config['layout']) - keymap_lines = "".join(iter_keymap_lines(keymap, row_indents)) - yield "[L{0}] = KEYMAP({1}\n),\n".format(i, keymap_lines) - - yield "};\n\n" - - # no idea what this is for - yield "const uint16_t PROGMEM fn_actions[] = {};\n" - - # macros - yield MACROCODE.format( - macro_cases="", - unicode_macro_cases="\n".join(unicode_macro_cases(config)), - ) - - # TODO: dynamically create blinking lights - yield USERCODE - - -def main(argv=sys.argv[1:]): - if not argv or '-h' in argv or '--help' in argv: - print(__doc__) - return 0 - - in_path = os.path.abspath(argv[0]) - if not os.path.exists(in_path): - print("No such file '{}'".format(in_path)) - return 1 - - if len(argv) > 1: - out_path = os.path.abspath(argv[1]) - else: - dirname = os.path.dirname(in_path) - out_path = os.path.join(dirname, "keymap.c") - - config = parse_config(in_path) - valid_keys = parse_valid_keys(config, out_path) - keymaps = parse_keymaps(config, valid_keys) - - with io.open(out_path, mode="w", encoding="utf-8") as fh: - for part in iter_keymap_parts(config, keymaps): - fh.write(part) - - -if __name__ == '__main__': - sys.exit(main()) diff --git a/keyboards/ergodox_ez/keymaps/german-manuneo/keymap.c b/keyboards/ergodox_ez/keymaps/german-manuneo/keymap.c deleted file mode 100644 index 5fcc14d51..000000000 --- a/keyboards/ergodox_ez/keymaps/german-manuneo/keymap.c +++ /dev/null @@ -1,783 +0,0 @@ -#include "ergodox_ez.h" -#include "action_layer.h" -#include "keymap.h" -#include "keymap_german.h" - -#define UC_ASYMPTOTICALLY_EQUAL_TO 0 -#define UC_DIVISION_SIGN 1 -#define UC_DOWNWARDS_ARROW 2 -#define UC_ELEMENT_OF 3 -#define UC_EMPTY_SET 4 -#define UC_FOR_ALL 5 -#define UC_GREEK_CAPITAL_LETTER_ALPHA 6 -#define UC_GREEK_CAPITAL_LETTER_BETA 7 -#define UC_GREEK_CAPITAL_LETTER_CHI 8 -#define UC_GREEK_CAPITAL_LETTER_DELTA 9 -#define UC_GREEK_CAPITAL_LETTER_EPSILON 10 -#define UC_GREEK_CAPITAL_LETTER_ETA 11 -#define UC_GREEK_CAPITAL_LETTER_GAMMA 12 -#define UC_GREEK_CAPITAL_LETTER_IOTA 13 -#define UC_GREEK_CAPITAL_LETTER_KAPPA 14 -#define UC_GREEK_CAPITAL_LETTER_LAMDA 15 -#define UC_GREEK_CAPITAL_LETTER_MU 16 -#define UC_GREEK_CAPITAL_LETTER_NU 17 -#define UC_GREEK_CAPITAL_LETTER_OMEGA 18 -#define UC_GREEK_CAPITAL_LETTER_OMICRON 19 -#define UC_GREEK_CAPITAL_LETTER_PHI 20 -#define UC_GREEK_CAPITAL_LETTER_PI 21 -#define UC_GREEK_CAPITAL_LETTER_PSI 22 -#define UC_GREEK_CAPITAL_LETTER_RHO 23 -#define UC_GREEK_CAPITAL_LETTER_SIGMA 24 -#define UC_GREEK_CAPITAL_LETTER_TAU 25 -#define UC_GREEK_CAPITAL_LETTER_THETA 26 -#define UC_GREEK_CAPITAL_LETTER_UPSILON 27 -#define UC_GREEK_CAPITAL_LETTER_XI 28 -#define UC_GREEK_CAPITAL_LETTER_ZETA 29 -#define UC_GREEK_SMALL_LETTER_ALPHA 30 -#define UC_GREEK_SMALL_LETTER_BETA 31 -#define UC_GREEK_SMALL_LETTER_CHI 32 -#define UC_GREEK_SMALL_LETTER_DELTA 33 -#define UC_GREEK_SMALL_LETTER_EPSILON 34 -#define UC_GREEK_SMALL_LETTER_ETA 35 -#define UC_GREEK_SMALL_LETTER_FINAL_SIGMA 36 -#define UC_GREEK_SMALL_LETTER_GAMMA 37 -#define UC_GREEK_SMALL_LETTER_IOTA 38 -#define UC_GREEK_SMALL_LETTER_KAPPA 39 -#define UC_GREEK_SMALL_LETTER_LAMDA 40 -#define UC_GREEK_SMALL_LETTER_MU 41 -#define UC_GREEK_SMALL_LETTER_NU 42 -#define UC_GREEK_SMALL_LETTER_OMEGA 43 -#define UC_GREEK_SMALL_LETTER_OMICRON 44 -#define UC_GREEK_SMALL_LETTER_PHI 45 -#define UC_GREEK_SMALL_LETTER_PI 46 -#define UC_GREEK_SMALL_LETTER_PSI 47 -#define UC_GREEK_SMALL_LETTER_RHO 48 -#define UC_GREEK_SMALL_LETTER_SIGMA 49 -#define UC_GREEK_SMALL_LETTER_TAU 50 -#define UC_GREEK_SMALL_LETTER_THETA 51 -#define UC_GREEK_SMALL_LETTER_UPSILON 52 -#define UC_GREEK_SMALL_LETTER_XI 53 -#define UC_GREEK_SMALL_LETTER_ZETA 54 -#define UC_INFINITY 55 -#define UC_LEFTWARDS_ARROW 56 -#define UC_MULTIPLICATION_SIGN 57 -#define UC_NOT_AN_ELEMENT_OF 58 -#define UC_NOT_EQUAL_TO 59 -#define UC_PLUS_MINUS_SIGN 60 -#define UC_RIGHTWARDS_ARROW 61 -#define UC_SUBSCRIPT_EIGHT 62 -#define UC_SUBSCRIPT_FIVE 63 -#define UC_SUBSCRIPT_FOUR 64 -#define UC_SUBSCRIPT_NINE 65 -#define UC_SUBSCRIPT_ONE 66 -#define UC_SUBSCRIPT_SEVEN 67 -#define UC_SUBSCRIPT_SIX 68 -#define UC_SUBSCRIPT_THREE 69 -#define UC_SUBSCRIPT_TWO 70 -#define UC_SUBSCRIPT_ZERO 71 -#define UC_SUPERSCRIPT_EIGHT 72 -#define UC_SUPERSCRIPT_FIVE 73 -#define UC_SUPERSCRIPT_FOUR 74 -#define UC_SUPERSCRIPT_LATIN_SMALL_LETTER_N 75 -#define UC_SUPERSCRIPT_NINE 76 -#define UC_SUPERSCRIPT_ONE 77 -#define UC_SUPERSCRIPT_SEVEN 78 -#define UC_SUPERSCRIPT_SIX 79 -#define UC_SUPERSCRIPT_THREE 80 -#define UC_SUPERSCRIPT_TWO 81 -#define UC_SUPERSCRIPT_ZERO 82 -#define UC_THERE_DOES_NOT_EXIST 83 -#define UC_THERE_EXISTS 84 -#define UC_UPWARDS_ARROW 85 -#define UC_VULGAR_FRACTION_ONE_EIGHTH 86 -#define UC_VULGAR_FRACTION_ONE_FIFTH 87 -#define UC_VULGAR_FRACTION_ONE_HALF 88 -#define UC_VULGAR_FRACTION_ONE_QUARTER 89 -#define UC_VULGAR_FRACTION_ONE_SIXTH 90 -#define UC_VULGAR_FRACTION_ONE_THIRD 91 -#define UC_VULGAR_FRACTION_THREE_QUARTERS 92 -#define UC_VULGAR_FRACTION_TWO_THIRDS 93 -#define UM 94 - -#define L0 0 // layer_0 -#define L1 1 // layer_1 -#define L2 2 // layer_2 -#define L3 3 // layer_3 -#define L4 4 // layer_4 -#define L5 5 // layer_5 -#define L6 6 // layer_6 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* - * .------------------------------------.------------------------------------. - * |MO(5)| 1 | 2 | 3 | 4 | 5 |ACUT | GRV | 6 | 7 | 8 | 9 | 0 |CIRC | - * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! - * |MO(4)| X | P | F | W | G |HOME |TG(2)| H | J | K | L | Q | Z | - * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - * |MO(1)| U | I | A | E | O |-----!-----! S | N | R | T | D | SS | - * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - * |MO(3)| UE | OE | AE | C | V |END | TAB | B | M |COMM| DOT| UP | Y | - * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' - * | | |LGUI|LALT|LCTL| !RCTL|RALT|LEFT|DOWN|RGHT| - * '------------------------' '------------------------' - * .-----------. .-----------. - * |INS |TG(2)| !M(UM)|DELT | - * .-----+-----+-----! !-----+-----+-----. - * ! ! | APP | ! PGUP| ! ! - * ! ! !-----! !-----! ! ! - * |BSPC |LSFT | ESC | ! PGDN|ENTER|SPACE| - * '-----------------' '-----------------' - */ -[L0] = KEYMAP( - MO(5), DE_1, DE_2, DE_3, DE_4, DE_5, DE_ACUT, - MO(4), DE_X, DE_P, DE_F, DE_W, DE_G, KC_HOME, - MO(1), DE_U, DE_I, DE_A, DE_E, DE_O, - MO(3), DE_UE, DE_OE, DE_AE, DE_C, DE_V, KC_END, - KC_TRNS, KC_TRNS, KC_LGUI, KC_LALT, KC_LCTL, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_INS, TG(2), - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_APP, - /*-*/ /*-*/ /*-*/ /*-*/ KC_BSPC, KC_LSFT, KC_ESC, - DE_GRV, DE_6, DE_7, DE_8, DE_9, DE_0, DE_CIRC, - TG(2), DE_H, DE_J, DE_K, DE_L, DE_Q, DE_Z, - /*-*/ DE_S, DE_N, DE_R, DE_T, DE_D, DE_SS, - KC_TAB, DE_B, DE_M, DE_COMM, DE_DOT, KC_UP, DE_Y, - /*-*/ /*-*/ KC_RCTL, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT, - M(UM), KC_DELT, - KC_PGUP, - KC_PGDN, KC_ENTER, KC_SPACE -), -/* - * .------------------------------------.------------------------------------. - * | |EXLM|DQOT|PARA| | | | | | | | |RING| | - * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! - * | |ASTR|PIPE|SLSH|LCBR|RCBR| | |HASH|LESS|MORE| |DQOT| | - * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - * | |UNDS|MINS|AMPR|LBRC|RBRC|-----!-----!DLR |LPRN|RPRN|TILD|QUOT| QST | - * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - * | | |PLUS|EQL | | | | |BSLS|PERC|SCLN|COLN| ↑ | | - * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' - * | | | | | | ! | | ← | ↓ | → | - * '------------------------' '------------------------' - * .-----------. .-----------. - * | | | ! | | - * .-----+-----+-----! !-----+-----+-----. - * ! ! | | ! | ! ! - * ! ! !-----! !-----! ! ! - * | | | | ! | | | - * '-----------------' '-----------------' - */ -[L1] = KEYMAP( - KC_TRNS, DE_EXLM, DE_DQOT, DE_PARA, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, DE_ASTR, DE_PIPE, DE_SLSH, DE_LCBR, DE_RCBR, KC_TRNS, - KC_TRNS, DE_UNDS, DE_MINS, DE_AMPR, DE_LBRC, DE_RBRC, - KC_TRNS, KC_TRNS, DE_PLUS, DE_EQL, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, - /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_RING, KC_TRNS, - KC_TRNS, DE_HASH, DE_LESS, DE_MORE, KC_TRNS, DE_DQOT, KC_TRNS, - /*-*/ DE_DLR, DE_LPRN, DE_RPRN, DE_TILD, DE_QUOT, DE_QST, - KC_TRNS, DE_BSLS, DE_PERC, DE_SCLN, DE_COLN, M(UC_UPWARDS_ARROW), KC_TRNS, - /*-*/ /*-*/ KC_TRNS, KC_TRNS, M(UC_LEFTWARDS_ARROW), M(UC_DOWNWARDS_ARROW), M(UC_RIGHTWARDS_ARROW), - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), -/* - * .------------------------------------.------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | F11 | F12 | F6 | F7 | F8 | F9 |F10 |PEQL | - * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! - * | | | | | | | | | | P7 | P8 | P9 |PAST|PSLS | - * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - * | | | | | | |-----!-----! | P4 | P5 | P6 |PMNS|PMNS | - * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - * | | | | | | | | NLCK| | P1 | P2 | P3 |PPLS|PPLS | - * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' - * | | | | | | ! P0 |PCMM|PDOT|PENT|PENT| - * '------------------------' '------------------------' - * .-----------. .-----------. - * | | | ! | | - * .-----+-----+-----! !-----+-----+-----. - * ! ! | | ! | ! ! - * ! ! !-----! !-----! ! ! - * | | | | ! | | | - * '-----------------' '-----------------' - */ -[L2] = KEYMAP( - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, 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, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, - /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, - KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PEQL, - KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PAST, KC_PSLS, - /*-*/ KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PMNS, - KC_NLCK, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_PPLS, - /*-*/ /*-*/ KC_P0, KC_PCMM, KC_PDOT, KC_PENT, KC_PENT, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), -/* - * .------------------------------------.------------------------------------. - * | | ¹ | ² | ³ | ⁴ | ⁵ | ∀ | | ⁶ | ⁷ | ⁸ | ⁹ | ⁰ | | - * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! - * | | × | ½ | ÷ | ¼ | ⅕ | | | ⅙ | | ⅛ | | | | - * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - * | | | ± | AT |EURO| ∅ |-----!-----! ∞ | ⁿ | ∃ | ∈ | | | - * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - * | | ⅓ | ≠ | ⅔ | ¾ | ≃ | | |EXLM| | ∄ | ∉ | | | - * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' - * | | | | | | ! | | | | | - * '------------------------' '------------------------' - * .-----------. .-----------. - * | | | ! | | - * .-----+-----+-----! !-----+-----+-----. - * ! ! | | ! | ! ! - * ! ! !-----! !-----! ! ! - * | | | | ! | | | - * '-----------------' '-----------------' - */ -[L3] = KEYMAP( - KC_TRNS, M(UC_SUPERSCRIPT_ONE), M(UC_SUPERSCRIPT_TWO), M(UC_SUPERSCRIPT_THREE), M(UC_SUPERSCRIPT_FOUR), M(UC_SUPERSCRIPT_FIVE), M(UC_FOR_ALL), - KC_TRNS, M(UC_MULTIPLICATION_SIGN), M(UC_VULGAR_FRACTION_ONE_HALF), M(UC_DIVISION_SIGN), M(UC_VULGAR_FRACTION_ONE_QUARTER), M(UC_VULGAR_FRACTION_ONE_FIFTH), KC_TRNS, - KC_TRNS, KC_TRNS, M(UC_PLUS_MINUS_SIGN), DE_AT, DE_EURO, M(UC_EMPTY_SET), - KC_TRNS, M(UC_VULGAR_FRACTION_ONE_THIRD), M(UC_NOT_EQUAL_TO), M(UC_VULGAR_FRACTION_TWO_THIRDS), M(UC_VULGAR_FRACTION_THREE_QUARTERS), M(UC_ASYMPTOTICALLY_EQUAL_TO), KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, - /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, M(UC_SUPERSCRIPT_SIX), M(UC_SUPERSCRIPT_SEVEN), M(UC_SUPERSCRIPT_EIGHT), M(UC_SUPERSCRIPT_NINE), M(UC_SUPERSCRIPT_ZERO), KC_TRNS, - KC_TRNS, M(UC_VULGAR_FRACTION_ONE_SIXTH), KC_TRNS, M(UC_VULGAR_FRACTION_ONE_EIGHTH), KC_TRNS, KC_TRNS, KC_TRNS, - /*-*/ M(UC_INFINITY), M(UC_SUPERSCRIPT_LATIN_SMALL_LETTER_N), M(UC_THERE_EXISTS), M(UC_ELEMENT_OF), KC_TRNS, KC_TRNS, - KC_TRNS, DE_EXLM, KC_TRNS, M(UC_THERE_DOES_NOT_EXIST), M(UC_NOT_AN_ELEMENT_OF), KC_TRNS, KC_TRNS, - /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), -/* - * .------------------------------------.------------------------------------. - * | | ₁ | ₂ | ₃ | ₄ | ₅ | | | ₆ | ₇ | ₈ | ₉ | ₀ | | - * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! - * | | χ | π | φ | ω | γ | | | η | ξ | κ | λ | | ζ | - * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - * | | υ | ι | α | ε | ο |-----!-----! σ | ν | ρ | τ | δ | ς | - * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - * | | | θ | | | | | | β | μ | | | | ψ | - * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' - * | | | | | | ! | | | | | - * '------------------------' '------------------------' - * .-----------. .-----------. - * | | | ! | | - * .-----+-----+-----! !-----+-----+-----. - * ! ! | | ! | ! ! - * ! ! !-----! !-----! ! ! - * | | | | ! | | | - * '-----------------' '-----------------' - */ -[L4] = KEYMAP( - KC_TRNS, M(UC_SUBSCRIPT_ONE), M(UC_SUBSCRIPT_TWO), M(UC_SUBSCRIPT_THREE), M(UC_SUBSCRIPT_FOUR), M(UC_SUBSCRIPT_FIVE), KC_TRNS, - KC_TRNS, M(UC_GREEK_SMALL_LETTER_CHI), M(UC_GREEK_SMALL_LETTER_PI), M(UC_GREEK_SMALL_LETTER_PHI), M(UC_GREEK_SMALL_LETTER_OMEGA), M(UC_GREEK_SMALL_LETTER_GAMMA), KC_TRNS, - KC_TRNS, M(UC_GREEK_SMALL_LETTER_UPSILON), M(UC_GREEK_SMALL_LETTER_IOTA), M(UC_GREEK_SMALL_LETTER_ALPHA), M(UC_GREEK_SMALL_LETTER_EPSILON), M(UC_GREEK_SMALL_LETTER_OMICRON), - KC_TRNS, KC_TRNS, M(UC_GREEK_SMALL_LETTER_THETA), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, - /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, M(UC_SUBSCRIPT_SIX), M(UC_SUBSCRIPT_SEVEN), M(UC_SUBSCRIPT_EIGHT), M(UC_SUBSCRIPT_NINE), M(UC_SUBSCRIPT_ZERO), KC_TRNS, - KC_TRNS, M(UC_GREEK_SMALL_LETTER_ETA), M(UC_GREEK_SMALL_LETTER_XI), M(UC_GREEK_SMALL_LETTER_KAPPA), M(UC_GREEK_SMALL_LETTER_LAMDA), KC_TRNS, M(UC_GREEK_SMALL_LETTER_ZETA), - /*-*/ M(UC_GREEK_SMALL_LETTER_SIGMA), M(UC_GREEK_SMALL_LETTER_NU), M(UC_GREEK_SMALL_LETTER_RHO), M(UC_GREEK_SMALL_LETTER_TAU), M(UC_GREEK_SMALL_LETTER_DELTA), M(UC_GREEK_SMALL_LETTER_FINAL_SIGMA), - KC_TRNS, M(UC_GREEK_SMALL_LETTER_BETA), M(UC_GREEK_SMALL_LETTER_MU), KC_TRNS, KC_TRNS, KC_TRNS, M(UC_GREEK_SMALL_LETTER_PSI), - /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), -/* - * .------------------------------------.------------------------------------. - * | | | | | | | | | | | | | | | - * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! - * | | Χ | Π | Φ | Ω | Γ | | | Η | Ξ | Κ | Λ | | Ζ | - * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - * | | Υ | Ι | Α | Ε | Ο |-----!-----! Σ | Ν | Ρ | Τ | Δ | | - * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - * | | | Θ | | | | | | Β | Μ | | | | Ψ | - * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' - * | | | | | | ! | | | | | - * '------------------------' '------------------------' - * .-----------. .-----------. - * | | | ! | | - * .-----+-----+-----! !-----+-----+-----. - * ! ! | | ! | ! ! - * ! ! !-----! !-----! ! ! - * | | | | ! | | | - * '-----------------' '-----------------' - */ -[L5] = KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_CHI), M(UC_GREEK_CAPITAL_LETTER_PI), M(UC_GREEK_CAPITAL_LETTER_PHI), M(UC_GREEK_CAPITAL_LETTER_OMEGA), M(UC_GREEK_CAPITAL_LETTER_GAMMA), KC_TRNS, - KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_UPSILON), M(UC_GREEK_CAPITAL_LETTER_IOTA), M(UC_GREEK_CAPITAL_LETTER_ALPHA), M(UC_GREEK_CAPITAL_LETTER_EPSILON), M(UC_GREEK_CAPITAL_LETTER_OMICRON), - KC_TRNS, KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_THETA), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, - /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_ETA), M(UC_GREEK_CAPITAL_LETTER_XI), M(UC_GREEK_CAPITAL_LETTER_KAPPA), M(UC_GREEK_CAPITAL_LETTER_LAMDA), KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_ZETA), - /*-*/ M(UC_GREEK_CAPITAL_LETTER_SIGMA), M(UC_GREEK_CAPITAL_LETTER_NU), M(UC_GREEK_CAPITAL_LETTER_RHO), M(UC_GREEK_CAPITAL_LETTER_TAU), M(UC_GREEK_CAPITAL_LETTER_DELTA), KC_TRNS, - KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_BETA), M(UC_GREEK_CAPITAL_LETTER_MU), KC_TRNS, KC_TRNS, KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_PSI), - /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), -/* - * .------------------------------------.------------------------------------. - * | | | | | | | | | | | | | | | - * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! - * | | | | | | | | | | | | | | | - * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - * | | | | | | |-----!-----! | | | | | | - * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - * | | | | | | | | | | | | | | | - * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' - * | | | | | | ! | | | | | - * '------------------------' '------------------------' - * .-----------. .-----------. - * | | | ! | | - * .-----+-----+-----! !-----+-----+-----. - * ! ! | | ! | ! ! - * ! ! !-----! !-----! ! ! - * | | | | ! | | | - * '-----------------' '-----------------' - */ -[L6] = 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, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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[] = {}; - -#define UC_MODE_WIN 0 -#define UC_MODE_LINUX 1 -#define UC_MODE_OSX 2 - -// TODO: allow default mode to be configured -static uint16_t unicode_mode = UC_MODE_WIN; - -uint16_t hextokeycode(uint8_t hex) { - if (hex == 0x0) { - return KC_P0; - } - if (hex < 0xA) { - return KC_P1 + (hex - 0x1); - } - return KC_A + (hex - 0xA); -} - -void unicode_action_function(uint16_t hi, uint16_t lo) { - switch (unicode_mode) { - case UC_MODE_WIN: - register_code(KC_LALT); - - register_code(KC_PPLS); - unregister_code(KC_PPLS); - - register_code(hextokeycode((hi & 0xF0) >> 4)); - unregister_code(hextokeycode((hi & 0xF0) >> 4)); - register_code(hextokeycode((hi & 0x0F))); - unregister_code(hextokeycode((hi & 0x0F))); - register_code(hextokeycode((lo & 0xF0) >> 4)); - unregister_code(hextokeycode((lo & 0xF0) >> 4)); - register_code(hextokeycode((lo & 0x0F))); - unregister_code(hextokeycode((lo & 0x0F))); - - unregister_code(KC_LALT); - break; - case UC_MODE_LINUX: - register_code(KC_LCTL); - register_code(KC_LSFT); - - register_code(KC_U); - unregister_code(KC_U); - - register_code(hextokeycode((hi & 0xF0) >> 4)); - unregister_code(hextokeycode((hi & 0xF0) >> 4)); - register_code(hextokeycode((hi & 0x0F))); - unregister_code(hextokeycode((hi & 0x0F))); - register_code(hextokeycode((lo & 0xF0) >> 4)); - unregister_code(hextokeycode((lo & 0xF0) >> 4)); - register_code(hextokeycode((lo & 0x0F))); - unregister_code(hextokeycode((lo & 0x0F))); - - unregister_code(KC_LCTL); - unregister_code(KC_LSFT); - break; - case UC_MODE_OSX: - break; - } -} - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - if (!record->event.pressed) { - return MACRO_NONE; - } - // MACRODOWN only works in this function - switch(id) { - case UM: - unicode_mode = (unicode_mode + 1) % 2; - break; - -case UC_GREEK_SMALL_LETTER_OMICRON: - unicode_action_function(0x03, 0xbf); - break; -case UC_LEFTWARDS_ARROW: - unicode_action_function(0x21, 0x90); - break; -case UC_GREEK_CAPITAL_LETTER_RHO: - unicode_action_function(0x03, 0xa1); - break; -case UC_SUBSCRIPT_THREE: - unicode_action_function(0x20, 0x83); - break; -case UC_VULGAR_FRACTION_ONE_EIGHTH: - unicode_action_function(0x21, 0x5b); - break; -case UC_GREEK_SMALL_LETTER_LAMDA: - unicode_action_function(0x03, 0xbb); - break; -case UC_VULGAR_FRACTION_ONE_THIRD: - unicode_action_function(0x21, 0x53); - break; -case UC_GREEK_SMALL_LETTER_XI: - unicode_action_function(0x03, 0xbe); - break; -case UC_THERE_DOES_NOT_EXIST: - unicode_action_function(0x22, 0x04); - break; -case UC_SUPERSCRIPT_ONE: - unicode_action_function(0x00, 0xb9); - break; -case UC_GREEK_SMALL_LETTER_BETA: - unicode_action_function(0x03, 0xb2); - break; -case UC_SUBSCRIPT_FIVE: - unicode_action_function(0x20, 0x85); - break; -case UC_GREEK_CAPITAL_LETTER_IOTA: - unicode_action_function(0x03, 0x99); - break; -case UC_VULGAR_FRACTION_ONE_FIFTH: - unicode_action_function(0x21, 0x55); - break; -case UC_GREEK_SMALL_LETTER_PSI: - unicode_action_function(0x03, 0xc8); - break; -case UC_SUBSCRIPT_NINE: - unicode_action_function(0x20, 0x89); - break; -case UC_SUPERSCRIPT_FOUR: - unicode_action_function(0x20, 0x74); - break; -case UC_RIGHTWARDS_ARROW: - unicode_action_function(0x21, 0x92); - break; -case UC_SUPERSCRIPT_SIX: - unicode_action_function(0x20, 0x76); - break; -case UC_DOWNWARDS_ARROW: - unicode_action_function(0x21, 0x93); - break; -case UC_GREEK_SMALL_LETTER_PI: - unicode_action_function(0x03, 0xc0); - break; -case UC_SUPERSCRIPT_TWO: - unicode_action_function(0x00, 0xb2); - break; -case UC_GREEK_CAPITAL_LETTER_OMEGA: - unicode_action_function(0x03, 0xa9); - break; -case UC_GREEK_CAPITAL_LETTER_PSI: - unicode_action_function(0x03, 0xa8); - break; -case UC_SUBSCRIPT_FOUR: - unicode_action_function(0x20, 0x84); - break; -case UC_GREEK_CAPITAL_LETTER_NU: - unicode_action_function(0x03, 0x9d); - break; -case UC_DIVISION_SIGN: - unicode_action_function(0x00, 0xf7); - break; -case UC_GREEK_SMALL_LETTER_SIGMA: - unicode_action_function(0x03, 0xc3); - break; -case UC_GREEK_SMALL_LETTER_RHO: - unicode_action_function(0x03, 0xc1); - break; -case UC_VULGAR_FRACTION_ONE_SIXTH: - unicode_action_function(0x21, 0x59); - break; -case UC_GREEK_SMALL_LETTER_GAMMA: - unicode_action_function(0x03, 0xb3); - break; -case UC_VULGAR_FRACTION_TWO_THIRDS: - unicode_action_function(0x21, 0x54); - break; -case UC_GREEK_SMALL_LETTER_NU: - unicode_action_function(0x03, 0xbd); - break; -case UC_GREEK_SMALL_LETTER_ZETA: - unicode_action_function(0x03, 0xb6); - break; -case UC_GREEK_SMALL_LETTER_EPSILON: - unicode_action_function(0x03, 0xb5); - break; -case UC_GREEK_SMALL_LETTER_KAPPA: - unicode_action_function(0x03, 0xba); - break; -case UC_SUPERSCRIPT_SEVEN: - unicode_action_function(0x20, 0x77); - break; -case UC_GREEK_CAPITAL_LETTER_PI: - unicode_action_function(0x03, 0xa0); - break; -case UC_GREEK_SMALL_LETTER_FINAL_SIGMA: - unicode_action_function(0x03, 0xc2); - break; -case UC_GREEK_CAPITAL_LETTER_XI: - unicode_action_function(0x03, 0x9e); - break; -case UC_GREEK_SMALL_LETTER_THETA: - unicode_action_function(0x03, 0xb8); - break; -case UC_GREEK_SMALL_LETTER_ETA: - unicode_action_function(0x03, 0xb7); - break; -case UC_SUBSCRIPT_TWO: - unicode_action_function(0x20, 0x82); - break; -case UC_ASYMPTOTICALLY_EQUAL_TO: - unicode_action_function(0x22, 0x43); - break; -case UC_GREEK_SMALL_LETTER_ALPHA: - unicode_action_function(0x03, 0xb1); - break; -case UC_GREEK_CAPITAL_LETTER_PHI: - unicode_action_function(0x03, 0xa6); - break; -case UC_GREEK_SMALL_LETTER_PHI: - unicode_action_function(0x03, 0xc6); - break; -case UC_INFINITY: - unicode_action_function(0x22, 0x1e); - break; -case UC_GREEK_CAPITAL_LETTER_OMICRON: - unicode_action_function(0x03, 0x9f); - break; -case UC_ELEMENT_OF: - unicode_action_function(0x22, 0x08); - break; -case UC_MULTIPLICATION_SIGN: - unicode_action_function(0x00, 0xd7); - break; -case UC_SUBSCRIPT_ZERO: - unicode_action_function(0x20, 0x80); - break; -case UC_GREEK_CAPITAL_LETTER_SIGMA: - unicode_action_function(0x03, 0xa3); - break; -case UC_GREEK_SMALL_LETTER_OMEGA: - unicode_action_function(0x03, 0xc9); - break; -case UC_SUBSCRIPT_ONE: - unicode_action_function(0x20, 0x81); - break; -case UC_GREEK_CAPITAL_LETTER_ZETA: - unicode_action_function(0x03, 0x96); - break; -case UC_GREEK_SMALL_LETTER_TAU: - unicode_action_function(0x03, 0xc4); - break; -case UC_SUPERSCRIPT_FIVE: - unicode_action_function(0x20, 0x75); - break; -case UC_THERE_EXISTS: - unicode_action_function(0x22, 0x03); - break; -case UC_PLUS_MINUS_SIGN: - unicode_action_function(0x00, 0xb1); - break; -case UC_VULGAR_FRACTION_THREE_QUARTERS: - unicode_action_function(0x00, 0xbe); - break; -case UC_SUPERSCRIPT_THREE: - unicode_action_function(0x00, 0xb3); - break; -case UC_EMPTY_SET: - unicode_action_function(0x22, 0x05); - break; -case UC_UPWARDS_ARROW: - unicode_action_function(0x21, 0x91); - break; -case UC_SUPERSCRIPT_NINE: - unicode_action_function(0x20, 0x79); - break; -case UC_GREEK_SMALL_LETTER_DELTA: - unicode_action_function(0x03, 0xb4); - break; -case UC_GREEK_SMALL_LETTER_MU: - unicode_action_function(0x03, 0xbc); - break; -case UC_GREEK_CAPITAL_LETTER_KAPPA: - unicode_action_function(0x03, 0x9a); - break; -case UC_SUBSCRIPT_EIGHT: - unicode_action_function(0x20, 0x88); - break; -case UC_GREEK_CAPITAL_LETTER_ALPHA: - unicode_action_function(0x03, 0x91); - break; -case UC_SUBSCRIPT_SEVEN: - unicode_action_function(0x20, 0x87); - break; -case UC_GREEK_CAPITAL_LETTER_BETA: - unicode_action_function(0x03, 0x92); - break; -case UC_GREEK_CAPITAL_LETTER_ETA: - unicode_action_function(0x03, 0x97); - break; -case UC_SUPERSCRIPT_EIGHT: - unicode_action_function(0x20, 0x78); - break; -case UC_SUPERSCRIPT_ZERO: - unicode_action_function(0x20, 0x70); - break; -case UC_NOT_AN_ELEMENT_OF: - unicode_action_function(0x22, 0x09); - break; -case UC_GREEK_SMALL_LETTER_UPSILON: - unicode_action_function(0x03, 0xc5); - break; -case UC_NOT_EQUAL_TO: - unicode_action_function(0x22, 0x60); - break; -case UC_GREEK_CAPITAL_LETTER_CHI: - unicode_action_function(0x03, 0xa7); - break; -case UC_FOR_ALL: - unicode_action_function(0x22, 0x00); - break; -case UC_GREEK_CAPITAL_LETTER_TAU: - unicode_action_function(0x03, 0xa4); - break; -case UC_VULGAR_FRACTION_ONE_QUARTER: - unicode_action_function(0x00, 0xbc); - break; -case UC_GREEK_SMALL_LETTER_CHI: - unicode_action_function(0x03, 0xc7); - break; -case UC_GREEK_CAPITAL_LETTER_THETA: - unicode_action_function(0x03, 0x98); - break; -case UC_GREEK_SMALL_LETTER_IOTA: - unicode_action_function(0x03, 0xb9); - break; -case UC_GREEK_CAPITAL_LETTER_LAMDA: - unicode_action_function(0x03, 0x9b); - break; -case UC_SUPERSCRIPT_LATIN_SMALL_LETTER_N: - unicode_action_function(0x20, 0x7f); - break; -case UC_GREEK_CAPITAL_LETTER_UPSILON: - unicode_action_function(0x03, 0xa5); - break; -case UC_GREEK_CAPITAL_LETTER_MU: - unicode_action_function(0x03, 0x9c); - break; -case UC_GREEK_CAPITAL_LETTER_EPSILON: - unicode_action_function(0x03, 0x95); - break; -case UC_GREEK_CAPITAL_LETTER_GAMMA: - unicode_action_function(0x03, 0x93); - break; -case UC_SUBSCRIPT_SIX: - unicode_action_function(0x20, 0x86); - break; -case UC_GREEK_CAPITAL_LETTER_DELTA: - unicode_action_function(0x03, 0x94); - break; -case UC_VULGAR_FRACTION_ONE_HALF: - unicode_action_function(0x00, 0xbd); - break; - default: - 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 L1: - ergodox_right_led_1_on(); - break; - case L2: - ergodox_right_led_2_on(); - break; - case L3: - ergodox_right_led_3_on(); - break; - case L4: - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); - break; - case L5: - ergodox_right_led_1_on(); - ergodox_right_led_3_on(); - break; - // case L6: - // ergodox_right_led_2_on(); - // ergodox_right_led_3_on(); - // break; - // case L7: - // ergodox_right_led_1_on(); - // ergodox_right_led_2_on(); - // ergodox_right_led_3_on(); - // break; - default: - ergodox_board_led_off(); - break; - } -}; diff --git a/keyboards/ergodox_ez/keymaps/german-manuneo/keymap.md b/keyboards/ergodox_ez/keymaps/german-manuneo/keymap.md deleted file mode 100644 index 2c9e0a837..000000000 --- a/keyboards/ergodox_ez/keymaps/german-manuneo/keymap.md +++ /dev/null @@ -1,188 +0,0 @@ -# ManuNeo Ergodox Keyboard Layout - -Compile this file to a `keymap.c` file using `compile_keymap.py` - - python compile_keymap.py keymaps/german-manuneo/keymap.md - -Tested with python 2.7 and python 3.4 - - -# Layout Config - - { - "layout": "ergodox_ez", - "keymaps_includes": [ - "ergodox_ez.h", - "action_layer.h", - "keymap_common.h", - "keymap_extras/keymap_german.h", - ], - "key_prefixes": ["DE_", "KC_"], - "macros": { - // TODO: implement macros - // "MUC": "", - }, - // TODO: implement default unicode mode - } - - -# Layers - - -## Layer 0 - - .------------------------------------.------------------------------------. - |MO(5)| 1 | 2 | 3 | 4 | 5 |ACUT | GRV | 6 | 7 | 8 | 9 | 0 |CIRC | - !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! - |MO(4)| X | P | F | W | G |HOME |TG(2)| H | J | K | L | Q | Z | - !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - |MO(1)| U | I | A | E | O |-----!-----! S | N | R | T | D | SS | - !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - |MO(3)| UE | OE | AE | C | V |END | TAB | B | M |COMM| DOT| UP | Y | - '-----+----+----+----+----+----------'----------+----+----+----+----+-----' - | | |LGUI|LALT|LCTL| !RCTL|RALT|LEFT|DOWN|RGHT| - '------------------------' '------------------------' - .-----------. .-----------. - |INS |TG(2)| !M(UM)|DELT | - .-----+-----+-----! !-----+-----+-----. - ! ! | APP | ! PGUP| ! ! - ! ! !-----! !-----! ! ! - |BSPC |LSFT | ESC | ! PGDN|ENTER|SPACE| - '-----------------' '-----------------' - - -## Layer 1 - - .------------------------------------.------------------------------------. - | |EXLM|DQOT|PARA| | | | | | | | |RING| | - !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! - | |ASTR|PIPE|SLSH|LCBR|RCBR| | |HASH|LESS|MORE| |DQOT| | - !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - | |UNDS|MINS|AMPR|LBRC|RBRC|-----!-----!DLR |LPRN|RPRN|TILD|QUOT| QST | - !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - | | |PLUS|EQL | | | | |BSLS|PERC|SCLN|COLN| ↑ | | - '-----+----+----+----+----+----------'----------+----+----+----+----+-----' - | | | | | | ! | | ← | ↓ | → | - '------------------------' '------------------------' - .-----------. .-----------. - | | | ! | | - .-----+-----+-----! !-----+-----+-----. - ! ! | | ! | ! ! - ! ! !-----! !-----! ! ! - | | | | ! | | | - '-----------------' '-----------------' - - -## Layer 2 - - .------------------------------------.------------------------------------. - | | F1 | F2 | F3 | F4 | F5 | F11 | F12 | F6 | F7 | F8 | F9 |F10 |PEQL | - !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! - | | | | | | | | | | P7 | P8 | P9 |PAST|PSLS | - !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - | | | | | | |-----!-----! | P4 | P5 | P6 |PMNS|PMNS | - !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - | | | | | | | | NLCK| | P1 | P2 | P3 |PPLS|PPLS | - '-----+----+----+----+----+----------'----------+----+----+----+----+-----' - | | | | | | ! P0 |PCMM|PDOT|PENT|PENT| - '------------------------' '------------------------' - .-----------. .-----------. - | | | ! | | - .-----+-----+-----! !-----+-----+-----. - ! ! | | ! | ! ! - ! ! !-----! !-----! ! ! - | | | | ! | | | - '-----------------' '-----------------' - - - -## Layer 3 - -http://symbolcodes.tlt.psu.edu/bylanguage/mathchart.html - - .------------------------------------.------------------------------------. - | | ¹ | ² | ³ | ⁴ | ⁵ | ∀ | | ⁶ | ⁷ | ⁸ | ⁹ | ⁰ | | - !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! - | | × | ½ | ÷ | ¼ | ⅕ | | | ⅙ | | ⅛ | | | | - !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - | | | ± | AT |EURO| ∅ |-----!-----! ∞ | ⁿ | ∃ | ∈ | | | - !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - | | ⅓ | ≠ | ⅔ | ¾ | ≃ | | |EXLM| | ∄ | ∉ | | | - '-----+----+----+----+----+----------'----------+----+----+----+----+-----' - | | | | | | ! | | | | | - '------------------------' '------------------------' - .-----------. .-----------. - | | | ! | | - .-----+-----+-----! !-----+-----+-----. - ! ! | | ! | ! ! - ! ! !-----! !-----! ! ! - | | | | ! | | | - '-----------------' '-----------------' - - -## Layer 4 - - - .------------------------------------.------------------------------------. - | | ₁ | ₂ | ₃ | ₄ | ₅ | | | ₆ | ₇ | ₈ | ₉ | ₀ | | - !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! - | | χ | π | φ | ω | γ | | | η | ξ | κ | λ | | ζ | - !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - | | υ | ι | α | ε | ο |-----!-----! σ | ν | ρ | τ | δ | ς | - !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - | | | θ | | | | | | β | μ | | | | ψ | - '-----+----+----+----+----+----------'----------+----+----+----+----+-----' - | | | | | | ! | | | | | - '------------------------' '------------------------' - .-----------. .-----------. - | | | ! | | - .-----+-----+-----! !-----+-----+-----. - ! ! | | ! | ! ! - ! ! !-----! !-----! ! ! - | | | | ! | | | - '-----------------' '-----------------' - - -## Layer 5 - - .------------------------------------.------------------------------------. - | | | | | | | | | | | | | | | - !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! - | | Χ | Π | Φ | Ω | Γ | | | Η | Ξ | Κ | Λ | | Ζ | - !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - | | Υ | Ι | Α | Ε | Ο |-----!-----! Σ | Ν | Ρ | Τ | Δ | | - !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - | | | Θ | | | | | | Β | Μ | | | | Ψ | - '-----+----+----+----+----+----------'----------+----+----+----+----+-----' - | | | | | | ! | | | | | - '------------------------' '------------------------' - .-----------. .-----------. - | | | ! | | - .-----+-----+-----! !-----+-----+-----. - ! ! | | ! | ! ! - ! ! !-----! !-----! ! ! - | | | | ! | | | - '-----------------' '-----------------' - - -## Layer 6 - - .------------------------------------.------------------------------------. - | | | | | | | | | | | | | | | - !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! - | | | | | | | | | | | | | | | - !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - | | | | | | |-----!-----! | | | | | | - !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - | | | | | | | | | | | | | | | - '-----+----+----+----+----+----------'----------+----+----+----+----+-----' - | | | | | | ! | | | | | - '------------------------' '------------------------' - .-----------. .-----------. - | | | ! | | - .-----+-----+-----! !-----+-----+-----. - ! ! | | ! | ! ! - ! ! !-----! !-----! ! ! - | | | | ! | | | - '-----------------' '-----------------' - diff --git a/keyboards/ergodox_ez/keymaps/german/keymap.c b/keyboards/ergodox_ez/keymaps/german/keymap.c deleted file mode 100644 index 3eab51f0e..000000000 --- a/keyboards/ergodox_ez/keymaps/german/keymap.c +++ /dev/null @@ -1,185 +0,0 @@ -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" -#include "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/keyboards/ergodox_ez/keymaps/j3rn/keymap.c b/keyboards/ergodox_ez/keymaps/j3rn/keymap.c deleted file mode 100644 index 6e271321d..000000000 --- a/keyboards/ergodox_ez/keymaps/j3rn/keymap.c +++ /dev/null @@ -1,187 +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 / L2| S | D | F | G |------| |------| H | J | K | L | ; | ' | - * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| - * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | ~L1 | ~L2 |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), LT(MDIA, 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_FN2, 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, 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 - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | | | | | | | | | Lclk | Rclk | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | |------| |------|MsLeft|MsDown| MsUp |MsRght| | Play | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | Prev | Next | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | |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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_BTN1, KC_BTN2, 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_TRNS, KC_WBAK -), -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Layer 1 (Symbols) - [2] = ACTION_LAYER_TAP_TOGGLE(MDIA) // FN2 - Momentary Layer 2 (Media) -}; - -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/keyboards/ergodox_ez/keymaps/j3rn/readme.md b/keyboards/ergodox_ez/keymaps/j3rn/readme.md deleted file mode 100644 index fc4b64042..000000000 --- a/keyboards/ergodox_ez/keymaps/j3rn/readme.md +++ /dev/null @@ -1,29 +0,0 @@ -# J3RN's Mac-centric ErgoDox EZ keymap - -## Motivation - -Essentially, I wanted to switch to a layout that was less jarring than the default ErgoDox EZ layout, and did not require finger gymnastics to perform common OS X shortcuts (most of which involve the CMD (LGui) key). - -## How is it different from the default ErgoDox EZ layout? - -This layout more closely resembles that of the Mac keyboard, and has some other goodness baked in. Here is a rundown of what that means: - -### Mac-like changes - -- **The key to the left of "1" is "~" instead of "=".** -- **The key to the right of "0" is Backspace instead of "-"** (misleadingly labeled "delete" on the Mac's keyboard). There was no room to fit in "-" and "=" between "0" and Backspace, unfortunately. -- **The key to the left of "Q" is Tab instead of Delete.** -- **The rightmost big key on the left thumb is CMD (LGui) instead of Backspace.** - -### Other changes - -- **The button to the left of "A" is Ctrl/Esc instead of Backspace.** This is actually how I have the keyboard on my Macbook set up to be, since it's loads more convenient than a CAPS LOCK key. This is the Ctrl key I find myself using most. -- **Mouse uses Vim-style navigation**. To activate "Media mode," hold the 'a' key. This allows you to move the mouse around with hjkl just like in Vim. Additionally, right and left click are the conveniently placed 'i' and 'o' keys. -- **The key to the right of "5" and the key to left of "6" are "[" and "]", respectively, instead of Left and Right.** There is a more convenient set of Left and Right already present. Truth be told, I don't really use these keys, as they are a stretch to reach. -- **The Toggle L1 keys have been replaced by the otherwise displaced "-" and "=".** They are laid out, left-to-right, in the same order as on the Mac keyboard. Honestly, they are not terribly conveniently placed, and their placement might change in a later version. I found that I did not toggle L1 frequently at all, and found using the momentary keys to access L1 to fit my workflow better. -- **The "~"/L1 key in the bottom-left is now just momentary L1.** The "~" key was moved to the top-left as mentioned before, and I like to keep my multi-use keys to a minimum due to the latency for them to switch from "press" to "hold." -- **The Home and End buttons have been shifted up on the left thumb, and Shift inserted below them.** This makes doing Shift-5 and other such combinations less painful. -- **The Page Up and Page Down buttons have been shifted up on the right thumb, and Alt was moved from above them to below them.** I use Alt more than Page Up or Page Down (mostly in terminal applications), and thought that it deserved a more accessible location. - - -**I'm always open to feedback and/or suggestions!** diff --git a/keyboards/ergodox_ez/keymaps/jack/keymap.c b/keyboards/ergodox_ez/keymaps/jack/keymap.c deleted file mode 100644 index 80bf9d535..000000000 --- a/keyboards/ergodox_ez/keymaps/jack/keymap.c +++ /dev/null @@ -1,118 +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] = { -[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 - ), -[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 -), -[MDIA] = 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/keyboards/ergodox_ez/keymaps/jacobono/img/colemak-default-layer.png b/keyboards/ergodox_ez/keymaps/jacobono/img/colemak-default-layer.png deleted file mode 100644 index 06f63c496..000000000 Binary files a/keyboards/ergodox_ez/keymaps/jacobono/img/colemak-default-layer.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/jacobono/img/number-dpad-layer.png b/keyboards/ergodox_ez/keymaps/jacobono/img/number-dpad-layer.png deleted file mode 100644 index 4dd718278..000000000 Binary files a/keyboards/ergodox_ez/keymaps/jacobono/img/number-dpad-layer.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/jacobono/img/symbol-layer.png b/keyboards/ergodox_ez/keymaps/jacobono/img/symbol-layer.png deleted file mode 100644 index ee224cf0c..000000000 Binary files a/keyboards/ergodox_ez/keymaps/jacobono/img/symbol-layer.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/jacobono/keymap.c b/keyboards/ergodox_ez/keymaps/jacobono/keymap.c deleted file mode 100644 index 6b19800af..000000000 --- a/keyboards/ergodox_ez/keymaps/jacobono/keymap.c +++ /dev/null @@ -1,273 +0,0 @@ -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" - -#define COLEMAK 0 // new colemak layout -#define QWERTY 1 // default layer -#define SYMB 2 // symbols -#define NUMPAD 3 // number pad -#define MDIA 4 // media keys - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Keymap 0: Basic COLEMAK layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Tab | Q | W | F | P | G | | | | J | L | U | Y | ; | TAB | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | BkSp | A | R | S | T | D |------| |------| H | N | E | I | O | DEL | - * |--------+------+------+------+------+------| | LGUI(TAB)------+------+------+------+------+--------| - * | LShift |Z/Ctrl| X | C | V | B | | | | K | M | , | . |//Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | L1 | | | UP |MO(L2)| |MO(L2)| Down | | ALT | RGUI | - * `----------------------------------' `------------------------------------' - * ,-------------. ,---------------. - * | LGUI | App | |Ctrl/Esc| Alt | - * ,------|------|------| |--------+--------+------. - * | | |QUKSL | | QUKSL | | | - * |Space |ENTER |------| |--------| ENTER |Space | - * | | |MO(L3)| | MO(L3) | | | - * `--------------------' `------------------------' - */ - - // If it accepts an argument (i.e, is a function), it doesn't need KC_. - // Otherwise, it needs KC_* - [COLEMAK] = KEYMAP( // layer 0 : Colemak layout default layer - // left hand - KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, - KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_TRNS, - KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, - KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_TRNS, - TG(QWERTY), KC_TRNS, KC_TRNS,KC_UP, MO(SYMB), - KC_LGUI, KC_APP, - LGUI(S(KC_SPC)), - KC_SPC,KC_ENT,MO(NUMPAD), - // right hand - KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELT, - KC_TRNS, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_TAB, - KC_H, KC_N, KC_E, KC_I, KC_O, KC_DEL, - LGUI(KC_TAB), KC_K, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT, - MO(SYMB), KC_DOWN, KC_TRNS, KC_RALT, KC_RGUI, - CTL_T(KC_ESC), KC_LALT, - LGUI(S(KC_SPC)), - MO(NUMPAD), KC_ENT, KC_SPC), - - /* Keymap 1: Basic QWERTY layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | BkSp | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | DEL | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Tab | Q | W | E | R | T | L0 | | L0 | Y | U | I | O | P | \ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | Ctrl | A | S | D | F | G |------| |------| H | J | K | L |; / L4| CTRL | - * |--------+------+------+------+------+------| Alt | | Alt |------+------+------+------+------+--------| - * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |Grv/L3| '" |AltShf| Left |MO(L2)| |MO(L2)| Down | [ | ] | ~L3 | - * `----------------------------------' `----------------------------------' - * ,-------------. ,---------------. - * | Tab | BkSp | | Alt |Ctrl/Esc| - * ,------|------|------| |------+--------+------. - * | | | Home | | PgUp | | | - * | Space| LGUI |------| |------| RGUI |Enter | - * | | | End | | PgDn | | | - * `--------------------' `----------------------' - */ - // If it accepts an argument (i.e, is a function), it doesn't need KC_. - // Otherwise, it needs KC_* - [QWERTY] = KEYMAP( // layer 1 - // left hand - KC_BSPC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS, - KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_LALT, - KC_TRNS, KC_QUOT, LALT(KC_LSFT), KC_LEFT, MO(SYMB), - KC_TAB, KC_DELT, - KC_HOME, - KC_SPC, KC_LGUI, KC_END, - // right hand - KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELT, - KC_TRNS, 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_RCTRL, - KC_RALT, KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT, - MO(SYMB), KC_DOWN, KC_LBRC, KC_RBRC, KC_FN1, - KC_LALT, CTL_T(KC_ESC), - KC_PGUP, - KC_PGDN, KC_RGUI, KC_ENT), - - - /* Keymap 2: Symbol Layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | @ | * | = | _ | | | | ~ | { | } | # | : | F12 | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | ! | + | - | " |------| |------| " | ( | ) | ' | ` | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | % | ^ | $ | & | | | | ; | [ | ] | \ | / | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ - // SYMBOL - [SYMB] = KEYMAP( - // left hand - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, - KC_TRNS, KC_TRNS, KC_AT, KC_ASTR, KC_EQL, KC_UNDS, KC_TRNS, - KC_TRNS, KC_PIPE, KC_EXLM, KC_PLUS, KC_MINS, S(KC_QUOTE), - KC_TRNS, KC_TRNS, KC_PERC, KC_CIRC, KC_DLR, KC_AMPR, 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_TILD, KC_LCBR, KC_RCBR, KC_HASH, S(KC_SCLN), KC_F12, - S(KC_QUOTE),KC_LPRN, KC_RPRN, KC_QUOTE, KC_GRV, KC_TRNS, - KC_TRNS, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_SLSH, 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 3: Numpad Layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | UP | | | | | | $ | 7 | 8 | 9 | + | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | LEFT | DOWN | RIGHT| |------| |------| = | 4 | 5 | 6 | - | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | 1 | 2 | 3 | * | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | , | 0 | . | / | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ - // Numpad - [NUMPAD] = KEYMAP( - // left hand - 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_RIGHT,KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,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_DLR, KC_7, KC_8, KC_9, KC_PLUS, KC_TRNS, - KC_EQL, KC_4, KC_5, KC_6, KC_MINS, KC_TRNS, - KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_ASTR, KC_TRNS, - KC_COMMA,KC_0, KC_DOT, KC_SLSH, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS), - - /* Keymap 4: 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/keyboards/ergodox_ez/keymaps/jacobono/readme.md b/keyboards/ergodox_ez/keymaps/jacobono/readme.md deleted file mode 100644 index 48de0509f..000000000 --- a/keyboards/ergodox_ez/keymaps/jacobono/readme.md +++ /dev/null @@ -1,34 +0,0 @@ -# Default Layer # - -I'm using the colemak layer -- customized a bit to work a bit better when using spacemacs as my editor. - -![default-layer](img/colemak-default-layer.png) - -## Special Keys ## - -`SC1` => `LGUI + TAB` - -`SC2` => `LGUI + SPACE + TAB` - -`L1` => Switch to QWERTY Layout - -`T(L2)` => Toggle Symbol Layer - -`T(L3)` => Toggle Number and D-Pad Layer - -# QWERTY # - -Nothing special here -- just need this layer tucked away for the `WASD`. Which is literally the only reason I use it. -Just have the same button to toggle back to colemak. - -# Symbol Layer # - -![symbol-layer](img/symbol-layer.png) - -This is just putting matching closing symbols next to each other -- useful when editing lisp. - -# Number and D-Pad Layer # - -Just a basic number layer with a D-PAD on the other side. - -![number-dpad-layer](img/number-dpad-layer.png) diff --git a/keyboards/ergodox_ez/keymaps/jgarr/keymap.c b/keyboards/ergodox_ez/keymaps/jgarr/keymap.c deleted file mode 100644 index a3ad2040f..000000000 --- a/keyboards/ergodox_ez/keymaps/jgarr/keymap.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/keyboards/ergodox_ez/keymaps/josh/keymap.c b/keyboards/ergodox_ez/keymaps/josh/keymap.c deleted file mode 100644 index de5664a25..000000000 --- a/keyboards/ergodox_ez/keymaps/josh/keymap.c +++ /dev/null @@ -1,205 +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 - -//macros -#define CTL_SFT_T 100 -#define CTL_SFT_G 101 -#define CTL_ALT_H 102 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0: Basic layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | = | 1 | 2 | 3 | 4 | 5 | ESC | | M 100| 6 | 7 | 8 | 9 | 0 | - | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * |TAB /Alt| Q | W | E | R | T | Meh | | Meh | Y | U | I | O | P |\ / ALT | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | LCTL | A | S | D | F | G |------| |------| H | J | K | L |; / L2|' / CTL | - * |--------+------+------+------+------+------| ~L1 | | ~L1 |------+------+------+------+------+--------| - * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | WIN | ` | M 102| M 101|AltShf| |AltShf| Left | Down | Up | Right | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | App | LALT | | Alt | CAPS | - * ,------|------|------| |------+--------+------. - * | | | Home | | PgUp | | | - * | Space|Backsp|------| |------| Delete |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_ESC, - ALT_T(KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, ALL_T(KC_NO), - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(SYMB), - KC_LGUI, KC_GRV, M(CTL_ALT_H),M(CTL_SFT_G),LALT(KC_LSFT), - CTL_T(KC_APP), KC_LALT, - KC_HOME, - KC_SPC,KC_BSPC,KC_END, - // right hand - M(CTL_SFT_T),KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - MEH_T(KC_NO),KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),CTL_T(KC_QUOT), - MO(SYMB), KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, - LALT(KC_LSFT),KC_LEFT,KC_DOWN,KC_UP, KC_RIGHT, - KC_LALT, KC_CAPS, - KC_PGUP, - KC_PGDN,KC_DEL, KC_ENT - ), -/* Keymap 1: Symbol Layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * |Version | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | CALC | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | ! | @ | { | } | | | | | | | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | # | $ | ( | ) | ` |------| |------| Left | Down | Up | Right| | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | % | ^ | [ | ] | ~ | | | | | | | | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// SYMBOLS -[SYMB] = KEYMAP( - // left hand - M(0), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, - 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_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_CALC, - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_LEFT, KC_DOWN,KC_UP, KC_RIGHT,KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, 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 -), -}; - -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) { - SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); - } - break; - case CTL_SFT_T: - if (record->event.pressed) { - return MACRO(D(LCTL), D(LSFT), T(T), END); - } - return MACRO(U(LCTL), U(LSFT), END); - break; - case CTL_SFT_G: - if (record->event.pressed) { - return MACRO(D(LCTL), D(LSFT), T(G), END); - } - return MACRO(U(LCTL), U(LSFT), END); - break; - case CTL_ALT_H: - if (record->event.pressed) { - return MACRO(D(LCTL), D(LALT), T(H), END); - } - return MACRO(U(LCTL), U(LALT), END); - 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/keyboards/ergodox_ez/keymaps/josh/readme.md b/keyboards/ergodox_ez/keymaps/josh/readme.md deleted file mode 100644 index cee19d47e..000000000 --- a/keyboards/ergodox_ez/keymaps/josh/readme.md +++ /dev/null @@ -1,8 +0,0 @@ -Layout is based on the default layout that comes on the ergodox infinity. Focused mostly on making ctl and alt easy to reach. I spend most my day working in Eclipse which has just so many 3 key shortcuts. - -* Removed numpad keys from symbol layer (I don't use them) -* Added arrow keys under h, j, k, l on symbol layer. vi movement keys! -* Added a few macros for eclipse hotkeys that I used all the time -* Added calc button on symbol layer -* tap vs hold on tab and \. Gives alt, ctl and shift on both sides of the keyboard - diff --git a/keyboards/ergodox_ez/keymaps/kastyle/keymap.c b/keyboards/ergodox_ez/keymaps/kastyle/keymap.c deleted file mode 100644 index 3982e0a19..000000000 --- a/keyboards/ergodox_ez/keymaps/kastyle/keymap.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/keyboards/ergodox_ez/keymaps/kines-ish/keymap.c b/keyboards/ergodox_ez/keymaps/kines-ish/keymap.c deleted file mode 100644 index 5063c99f2..000000000 --- a/keyboards/ergodox_ez/keymaps/kines-ish/keymap.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/keyboards/ergodox_ez/keymaps/kines-ish/readme.md b/keyboards/ergodox_ez/keymaps/kines-ish/readme.md deleted file mode 100644 index 5d39a0590..000000000 --- a/keyboards/ergodox_ez/keymaps/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/keyboards/ergodox_ez/keymaps/maz/keymap.c b/keyboards/ergodox_ez/keymaps/maz/keymap.c deleted file mode 100644 index 7b8f0df74..000000000 --- a/keyboards/ergodox_ez/keymaps/maz/keymap.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 ARRW 2 // arrow keys -#define MDIA 3 // media keys, including mouse - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0: Basic layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | = | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | - | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Tab | Q | W | E | R | T | L1 | | CAPS | Y | U | I | O | P | \ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | ESC | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | - * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| - * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | Grv | |*SYMB*|*ARRW*| |*MDIA*|*SYMB*| [ | ] | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+--------+------. - * | | | | | | | | - * | Space| Bksp |------| |------| Tab |Enter | - * | ctrl | gui | Alt | | Alt | gui | ctrl | - * `--------------------' `----------------------' - */ - // TODO: maybe look into changing the delay or whatever for the holding macros... not sure which way you would go with this. if the macro automatically kicks in if you hold it and press another button (no matter how long you held it for), then it wouldn't hurt to have a longer period i think... although if you hold a button and then decide not to, then you;ll register a space/bksp/etc. on accident. on the other hand, if it's too short of a delay, then you might be able to register spc/bksp/etc quickly enough, although i don't see this as big of an issue - // not sure if gui is meta key or super... it says meta on the basic keycodes page, and i think that's consitent with other shit, but you should really figure out how to program the keyboard to have meta and super separately instead of hacking your init.el to recognize alt as meta... because shit will get fucked up beteween awesome and emacs and other shit i'm guessing -// 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_TRNS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), - 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_TRNS, KC_GRV, KC_TRNS,MO(SYMB),MO(ARRW), - KC_TRNS, KC_TRNS, - KC_TRNS, - CTL_T(KC_SPC),GUI_T(KC_BSPC),KC_LALT, - // right hand - KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_CAPSLOCK, 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, - MO(MDIA), MO(SYMB), KC_LBRC,KC_RBRC, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_RALT,GUI_T(KC_TAB), CTL_T(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_DOT, - KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, - KC_TRNS,KC_TRNS, KC_0, KC_EQL, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), -/* Keymap 2: Arrow keys - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | | | | | | | |PGDOWN| PGUP | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | |------| |------| LEFT | DOWN | UP |RIGHT | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | HOME | END | | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// MEDIA AND MOUSE -[ARRW] = 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, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_PGDOWN, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, - KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS, KC_TRNS, 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 3: Media and mouse keys - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | MsUp | | | | | | | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | |MsLeft|MsDown|MsRght| |------| |------| | Lclk | Rclk | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | |Mute |VolDn | VolUp| | | | | | | | | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | Prev | Play | Next | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * |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_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_WBAK, 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_BTN1, KC_BTN2, 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_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/keyboards/ergodox_ez/keymaps/maz/readme.md b/keyboards/ergodox_ez/keymaps/maz/readme.md deleted file mode 100644 index 000a8d000..000000000 --- a/keyboards/ergodox_ez/keymaps/maz/readme.md +++ /dev/null @@ -1,121 +0,0 @@ -# Introduction - -## Motivation -I created this keymap in an attempt to optimize my typing experience in text editors (vim and emacs) and the command-line. - -More specifically, I wanted to have each modifier key controlled by the thumbs, the most powerful of the digits (I think). This cured me of emacs pinky, which had surprisingly grown quite quickly over the first two weeks of using emacs & emacs-like commands on the command-line. - -## Changes -There are some miscellaneous changes that I kind of forgot I made, such as moving the tilde key, but you can check out the visual layouts below, which I **have** kept up to date. -### Modifier Keys -The biggest changes from the ergodox ez default keymap are the modifiers on the thumb cluster. You must hold each key down for a certain amount of time (forgot where this is specified) in order for the modifier key to activate. - -### Layers -* an arrow layer (ARRW) has been created because the default arrow keys suck. Beware, these do use vim bindings because they're the best. -* the keys in the media layer have been moved around for a better experience (imo), especially with respect to the mouse -* the three layers (SYMB, MDIA, and ARRW) now have their own dedicated keys accessible by the thumbs in the basic layer -* caps lock has been put in place of the right-side `L1` toggle key because there was really no need to have two keys to toggle one layer, and caps lock is useful when writing queries -** unfortunatley, caps lock is not indicated by an LED, so be careful. I use caps lock just like I do insert in vim; for a short burst of text. I always turn off caps lock when I change my focus - -### Removal Of Keys -I also removed a bunch of unnecessary keys that I wasn't going to use anyway. You'll see such keys are blank in the basic layer. I will probably add some more keys in place of these, but I'm fine for now; I just didn't want the distraction of extra keys I barely use. - -## Caveats -### Thumb Cluster Range -I've heard many complaints about the thumb clusters. I agree that the three outter keys are almost impossible to reach. I am going to try to build [Matt Adereth's keyboard](https://github.com/adereth/dactyl-keyboard), which looks to have a better layout. However, I am able to comfortably use the three modifier keys mainly because: -* I use DCS keycaps with SA Row 3 keycaps where the Alt keys are -* I have relatively large hands (I guarantee you there's no problem - I guarantee you) - -### Dangerous positioning -I think it's quite dangerous to put something like control on the same key as enter. Alas, this is a risk I'm willing to accept, and so should you if you decide to use this keymap. I tend to avoid putting myself in situtations in which disaster could occur with one fell swoop of a keypress. - -# Keymap -## Keymap 0: Basic layer -``` -,--------------------------------------------------. ,--------------------------------------------------. -| = | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | - | -|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| -| Tab | Q | W | E | R | T | L1 | | CAPS | Y | U | I | O | P | \ | -|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| -| ESC | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | -|--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| -| LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | -`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - | | Grv | |*SYMB*|*ARRW*| |*MDIA*|*SYMB*| [ | ] | | - `----------------------------------' `----------------------------------' - ,-------------. ,-------------. - | | | | | | - ,------|------|------| |------+--------+------. - | | | | | | | | - | Space| Bksp |------| |------| Tab |Enter | - | ctrl | gui | Alt | | Alt | gui | ctrl | - `--------------------' `----------------------' - -``` - -## Keymap 1: Symbol Layer -The only change here is the *dot* (`.`) character moving from next to `0` next to `+` in order to move the layer keys in the correct position -``` - ,--------------------------------------------------. ,--------------------------------------------------. - | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | - |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | - |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | . | - |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | - `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - | | | | | | | | | 0 | = | | - `----------------------------------' `----------------------------------' - ,-------------. ,-------------. - | | | | | | - ,------|------|------| |------+------+------. - | | | | | | | | - | | |------| |------| | | - | | | | | | | | - `--------------------' `--------------------' -``` - -## Keymap 2: Arrow Layer -``` - ,--------------------------------------------------. ,--------------------------------------------------. - | | | | | | | | | | | | | | | | - |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - | | | | | | | | | | |PGDOWN| PGUP | | | | - |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - | | | | | | |------| |------| LEFT | DOWN | UP |RIGHT | | | - |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - | | | | | | | | | | | HOME | END | | | | - `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - | | | | | | | | | | | | - `----------------------------------' `----------------------------------' - ,-------------. ,-------------. - | | | | | | - ,------|------|------| |------+------+------. - | | | | | | | | - | | |------| |------| | | - | | | | | | | | - `--------------------' `--------------------' -``` - -## Keymap 3: Media and mouse keys -``` - ,--------------------------------------------------. ,--------------------------------------------------. - | | | | | | | | | | | | | | | | - |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - | | | | MsUp | | | | | | | | | | | | - |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - | | |MsLeft|MsDown|MsRght| |------| |------| | Lclk | Rclk | | | | - |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - | | |Mute |VolDn | VolUp| | | | | | | | | | | - `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - | | | Prev | Play | Next | | | | | | | - `----------------------------------' `----------------------------------' - ,-------------. ,-------------. - | | | | | | - ,------|------|------| |------+------+------. - |Brwser| | | | | | | - |Back | |------| |------| | | - | | | | | | | | - `--------------------' `--------------------' -``` diff --git a/keyboards/ergodox_ez/keymaps/mpiechotka/keymap.c b/keyboards/ergodox_ez/keymaps/mpiechotka/keymap.c deleted file mode 100644 index 5bfef5995..000000000 --- a/keyboards/ergodox_ez/keymaps/mpiechotka/keymap.c +++ /dev/null @@ -1,276 +0,0 @@ -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" -#include "keymap_colemak.h" - -enum { - BASE = 0, - BASE_CM, - SYMB, - MACR -}; - -enum { - LWIN = 1, - PC1, - PC2, - PC3, - PC4, - DL_BASE, - DL_BASE_CM, -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0a: Basic layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Del | Q | W | F | P | G | L1 | | L1 | J | L | U | Y | ; | \ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | Esc | A | R | S | T | D |------| |------| H | N | E | I | O | ' | - * |--------+------+------+------+------+------| = | | - |------+------+------+------+------+--------| - * | LShift |Z/Ctrl| X | C | V | B | | | | K | M | , | . |//Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | LAlt | LGui | | LAlt | RAlt | - * ,------|------|------| |------+--------+------. - * | |Backsp| Home | | PgUp | | | - * | Space|ace/ |------| |------| Tab/ |Enter/| - * | /Shft|Ctrl | 1) | | 2) | Ctrl |Shift | - * `--------------------' `----------------------' - * - * 1) End/L1 - * 2) PgDown/L2 - */ -[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_F, KC_P, KC_G, TG(SYMB), - KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_EQL, - LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT, - KC_LALT, F(LWIN), - KC_HOME, - SFT_T(KC_SPC),CTL_T(KC_BSPC),LT(SYMB, KC_END), - // right hand - KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - TG(SYMB), KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, - KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, - KC_MINS, KC_K, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, - KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, LT(SYMB,KC_NO), - KC_LALT, KC_RALT, - KC_PGUP, - LT(MACR,KC_PGDN),CTL_T(KC_TAB), SFT_T(KC_ENT) - ), -/* Keymap 0b: Basic layer (Colemak keycodes or QWERTY) - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Del | Q | W | F | P | G | L1 | | L1 | J | L | U | Y | ; | \ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | Esc | A | R | S | T | D |------| |------| H | N | E | I | O | ' | - * |--------+------+------+------+------+------| = | | - |------+------+------+------+------+--------| - * | LShift |Z/Ctrl| X | C | V | B | | | | K | M | , | . |//Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | LAlt | LGui | | LAlt | RAlt | - * ,------|------|------| |------+--------+------. - * | |Backsp| Home | | PgUp | | | - * | Space|ace/ |------| |------| Tab/ |Enter/| - * | /Shft|Ctrl | 1) | | 2) | Ctrl |Shift | - * `--------------------' `----------------------' - * - * 1) End/L1 - * 2) PgDown/L2 - */ -[BASE_CM] = KEYMAP( // layer 0 : default - // left hand - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, - KC_DELT, CM_Q, CM_W, CM_F, CM_P, CM_G, TG(SYMB), - KC_ESC, CM_A, CM_R, CM_S, CM_T, CM_D, - KC_LSFT, CM_Z, CM_X, CM_C, CM_V, CM_B, KC_EQL, - LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT, - KC_LALT, F(LWIN), - KC_HOME, - SFT_T(KC_SPC),CTL_T(KC_BSPC),LT(SYMB, KC_END), - // right hand - KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - TG(SYMB), CM_J, CM_L, CM_U, CM_Y, KC_P, /*CM_SCLN*/ KC_BSLS, - CM_H, CM_N, CM_E, CM_I, CM_O, KC_QUOT, - KC_MINS, CM_K, CM_M, CM_COMM,CM_DOT, CTL_T(CM_SLSH), KC_RSFT, - KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, LT(SYMB,KC_NO), - KC_LALT, KC_RALT, - KC_PGUP, - LT(MACR,KC_PGDN),CTL_T(KC_TAB), SFT_T(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: Macros - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | DLa | DLb | | | | | | | | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | PC1 | PC2 | PC3 | PC4 | |------| |------| | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// MACROS -[MACR] = KEYMAP( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, F(DL_BASE),F(DL_BASE_CM),KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, F(PC1), F(PC2), F(PC3), F(PC4), KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_TRNS,KC_TRNS, - KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS, - // right hand - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), -}; - -const uint16_t PROGMEM fn_actions[] = { - [LWIN] = ACTION_MACRO(LWIN), - [PC1] = ACTION_MACRO(PC1), - [PC2] = ACTION_MACRO(PC2), - [PC3] = ACTION_MACRO(PC3), - [PC4] = ACTION_MACRO(PC4), - [DL_BASE] = ACTION_DEFAULT_LAYER_SET(BASE), - [DL_BASE_CM] = ACTION_DEFAULT_LAYER_SET(BASE_CM) -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; - case LWIN: - if (record->event.pressed) { - register_code(KC_RSFT); - unregister_code(KC_RSFT); - register_code(KC_LGUI); - } else { - unregister_code(KC_LGUI); - } - break; - case PC1: - if (!record->event.pressed) { - return MACRO(T(SLCK), W(50), T(SLCK), W(50), T(1), W(50), T(ENT), END); - } - break; - case PC2: - if (!record->event.pressed) { - return MACRO(T(SLCK), W(50), T(SLCK), W(50), T(2), W(50), T(ENT), END); - } - break; - case PC3: - if (!record->event.pressed) { - return MACRO(T(SLCK), W(50), T(SLCK), W(50), T(3), W(50), T(ENT), END); - } - break; - case PC4: - if (!record->event.pressed) { - return MACRO(T(SLCK), W(50), T(SLCK), W(50), T(4), W(50), T(ENT), END); - } - 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 SYMB: - ergodox_right_led_1_on(); - break; - case MACR: - ergodox_right_led_2_on(); - break; - default: - // none - break; - } -}; diff --git a/keyboards/ergodox_ez/keymaps/mpiechotka/readme.md b/keyboards/ergodox_ez/keymaps/mpiechotka/readme.md deleted file mode 100644 index 785400d1d..000000000 --- a/keyboards/ergodox_ez/keymaps/mpiechotka/readme.md +++ /dev/null @@ -1,6 +0,0 @@ -# ErgoDox EZ mpiechotka Configuration - -Modification of ErgoDox EZ Colemak layout with additional QWERTY/software Colemak layer and change of the special keys. - - - diff --git a/keyboards/ergodox_ez/keymaps/msc/img/code_layer.png b/keyboards/ergodox_ez/keymaps/msc/img/code_layer.png deleted file mode 100644 index 7b5efaae7..000000000 Binary files a/keyboards/ergodox_ez/keymaps/msc/img/code_layer.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/msc/img/main_layer.png b/keyboards/ergodox_ez/keymaps/msc/img/main_layer.png deleted file mode 100644 index 65f92dda1..000000000 Binary files a/keyboards/ergodox_ez/keymaps/msc/img/main_layer.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/msc/img/media_layer.png b/keyboards/ergodox_ez/keymaps/msc/img/media_layer.png deleted file mode 100644 index a69799b07..000000000 Binary files a/keyboards/ergodox_ez/keymaps/msc/img/media_layer.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/msc/keymap.c b/keyboards/ergodox_ez/keymaps/msc/keymap.c deleted file mode 100644 index e567e513f..000000000 --- a/keyboards/ergodox_ez/keymaps/msc/keymap.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 | ; |' / Cmd | - * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| - * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | Cmd | Alt |AltShf| Left | Right| | Left | Down | Up |Right | L2 | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | 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), - KC_LGUI,KC_LALT, 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, 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_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TG(MDIA), - 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 | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | Mute | | | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | Prev |VolDn |VolUp | Next | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | |Brwser| - * | Lclk | Rclk |------| |------| |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_TRNS, KC_TRNS, - 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, - KC_TRNS, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, 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/keyboards/ergodox_ez/keymaps/msc/readme.md b/keyboards/ergodox_ez/keymaps/msc/readme.md deleted file mode 100644 index 0d14fcbd2..000000000 --- a/keyboards/ergodox_ez/keymaps/msc/readme.md +++ /dev/null @@ -1,32 +0,0 @@ -# MSC Configuration - -### Based mostly on the ErgoDox EZ default layout with optimizations for coding on osx. - -#### Expecting the user to rely on Coder Layer this keymap removes some of the duplicate symbol keys in the lower portions of the board and replaces them with arrow keys and modifiers. The Media Layer is also updated to match the change in the arrow keys and the left and right click buttons are moved under the thumb position. The Media layer is now reached with toggle button in the lower right. - -### Main Layer - -![Main Layer](img/main_layer.png) - -### Code Layer - -![Code Layer](img/code_layer.png) - -### Media Layer - -![Media Layer](img/media_layer.png) - -## Changelog - -Version 1.0 - -- Changed the temp code layer key in the bottom right to toggle media layer -- Changed the temp media key to only be ";" -- Changed right hand bottom row to match vim home row nav directions -- Changed media keys to match arrow key changes -- Changed media left and right click to spacebar and backspace locations -- Changed bottom left to Cmd -- Changed single quote on left bottom row to alt - -#### Coming Soon: -- A new layer for Blender editing with a focus on left hand shortcut and a righthand num pad to control the view in Blender. diff --git a/keyboards/ergodox_ez/keymaps/naps62/keymap.c b/keyboards/ergodox_ez/keymaps/naps62/keymap.c deleted file mode 100644 index d8c28423c..000000000 --- a/keyboards/ergodox_ez/keymaps/naps62/keymap.c +++ /dev/null @@ -1,187 +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 - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | Esc | 1 ! | 2 @ | 3 # | 4 $ | 5 % | Lang | | Esc | 6 ^ | 7 & | 8 * | 9 ( | 0 ) | Bckspc | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Tab | Q | W | E | R | T | L2 | | L2 | Y | U | I | O | P | \ | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | Ctrl | A | S | D | F | G |------| |------| H | J | K | L | ; : | ' " | - * |--------+------+------+------+------+------| L1 | | L1 |------+------+------+------+------+--------| - * | LShift | Z | X | C | V | B | | | | N | M | , < | . > | / ? | - _ | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | L1 | ` ~ | ' " | \ | | L2 | | { | } | [ { | ] } | L1 | - * `----------------------------------' `----------------------------------' - * ,--------------. ,---------------. - * | Home | End | | PgUp |Insert | - * ,------|-------|------| |-------+-------+------. - * | | | LGui | | Del | | | - * | Space| Alt |------| |-------| Enter |Space | - * | | | LGui | | Bcsp | | | - * `---------------------' `----------------------' - */ -// If it accepts an argument (i.e, is a function), it doesn't need KC_. -// Otherwise, it needs KC_* -[BASE] = KEYMAP( // layer 0 : default - // left hand - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, LGUI(KC_SPC), - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(2), - KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(1), - MO(1), KC_GRV, KC_QUOT, KC_BSLS, MO(2), - - KC_HOME, KC_END, - KC_LGUI, - KC_SPC, KC_LALT, KC_LGUI, - - // right hand - KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - MO(2), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - MO(1), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_MINS, - KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, MO(1), - - KC_PGUP, KC_INS, - KC_DEL, - KC_BSPC, 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_EQL,KC_DOT, KC_0, KC_MINS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), -/* Keymap 2: Media and mouse keys - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | |GuiUp | Expl | | Term | | | | | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | |GuiLft|GuiDwn|GuiRgt| | |------| |------| Left | Down | Up |Right | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | |Browsr| | | | |VolDwn|VolUp | Mute | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | Lclk | Rclk | | Play | Prev | Next | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | |Brwser|Brwser| - * | Lclk | Rclk |------| |------|Fwd |Back | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// MEDIA AND MOUSE -KEYMAP( - RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, LGUI(KC_W), LGUI(KC_E), KC_BTN1, LGUI(KC_T), KC_TRNS, - KC_TRNS, LGUI(KC_A), LGUI(KC_S), LGUI(KC_D), 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_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_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, - KC_MPLY, KC_MPRV, KC_MNXT, 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) { - // 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/keyboards/ergodox_ez/keymaps/naps62/readme.md b/keyboards/ergodox_ez/keymaps/naps62/readme.md deleted file mode 100644 index 14728e4cc..000000000 --- a/keyboards/ergodox_ez/keymaps/naps62/readme.md +++ /dev/null @@ -1,29 +0,0 @@ -# ErgoDox EZ naps62 Configuration - -## Motivation - -I wanted a layout that suited my Linux & Vim usage. I also didn't like the lack of efficient access to some of the more common special characters used in programming. - -## Key features / changes - -### Base Layer (L1) - -* **No `MT(mod, kc)` keys (modifier when pressed, key when tapped).** Those keys work with a global timeout. When a key press is shorter than the timeout, it's considered a tap, otherwise it's a hold. I couldn't find any particular timeout that would work for me. I need to use mods extremely fast, but also want the confort of using them more slowly in other occasions. So I gave up on this feature altogether. -* **Direct access to `{}[]`.** When programming, these are used extremely often. I was still getting used to the coder layer, and I prefer the arrows on the home row, so I used the bottom-right keys for this. -* **Layer keys everywhere.** I either use my little finger or my index finger to go to L1, whichever is more confortable in any given situation. L2 is not used while coding/writing, so I don't need an extremely-optimized access to it. -* **Lang key.** This is nothing more than `Super-Space` combo, which in my systems (both Linux & Windows) is the shortcut to change the keyboard language. I'm Portuguese, so I often cycle between US layout for coding, and PT layout for writing. -* **Special chars on the right-most column.** I only use Ctrl & Shift keys on the left side, so I used the right keys to include some of the more useful special characters as well. - -### Coder Layer (L2) - -* The `=` and `-` signs where nowhere to be found. `-` was already on the base layer, but it's still useful to have a fully-featured NumPad on the coder layer. - -### Media Layer (L3) - -* **Better media keys**. Why was Play/Pause so far away? And where was Mute? I put all my media keys close to each other, including the missing ones -* **Arrow keys on home row.** I use vim, so I'm always on my home row. I use this sometimes to get around, but not as often as to need them on the base row. I'm fine with them here -* I don't use mouse keys. They're still set up, and I made some changes as an experiment, but I mostly forgot they exist by now. - -## Author - -[Miguel Palhas](https://github.com/naps62) diff --git a/keyboards/ergodox_ez/keymaps/ordinary/keymap.c b/keyboards/ergodox_ez/keymaps/ordinary/keymap.c deleted file mode 100644 index 778cbc63c..000000000 --- a/keyboards/ergodox_ez/keymaps/ordinary/keymap.c +++ /dev/null @@ -1,454 +0,0 @@ -#include "ergodox_ez.h" -#include "led.h" -#include "debug.h" -#include "action_layer.h" -#include "action_util.h" -#include "mousekey.h" - -#define BASE 0 // default layer -#define SYMB 1 // symbols layer -#define MDIA 2 // media layer -#define SPEC 3 // special layer - -#define LCaps 10 // left caps-shift key -#define LSymb 11 // left symbol-shift key -#define LMdia 12 // left media-shift key -#define LSpec 13 // left special-shift key -#define RCaps 14 // right caps-shift key -#define RSymb 15 // right symbol-shift key -#define RMdia 16 // right media-shift key -#define RSpec 17 // right special-shift key - -#define MUL 20 // mouse up left -#define MUR 21 // mouse up right -#define MDL 22 // mouse down left -#define MDR 23 // mouse down right - -/* - * The Ordinary Layout for the Ergodox EZ keyboard, v4 - * - * Modifications from default by Nicholas Keene ergodoxez@nicholaskeene.com - * - * No rights reserved. This software is in the public domain. - * Credit me if you are friendly but if you're a jerk don't bother. - * - * Details: readme.md - * https://github.com/nrrkeene/qmk_firmware/tree/master/keyboard/ergodox_ez/keymaps/ordinary - */ - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/******* Base Layer ******************************************************************************************************** - * - * ,------------------------------------------------------. ,------------------------------------------------------. - * | Special `~ | 1 | 2 | 3 | 4 | 5 | ESC | | - | 6 | 7 | 8 | 9 | 0 | =+ Special | - * |------------+------+------+------+------+-------------| |------+------+------+------+------+------+------------| - * | Media Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \| Media | - * |------------+------+------+------+------+------| | | |------+------+------+------+------+------------| - * | Symbol | A | S | D | F | G |------| |------| H | J | K | L | ; | '" Symbol | - * |------------+------+------+------+------+------|Shift | | Tab |------+------+------+------+------+------------| - * | Capitals | Z | X | C | V | B | -Tab | | | N | M | , | . | / | Capitals | - * `------------+------+------+------+------+-------------' `-------------+------+------+------+------+------------' - * | LCtrl | Meh |Hyper | LAlt | LGui | | RGui | RAlt | Hyper| Meh | RCtrl | - * `-----------------------------------' `-----------------------------------' - * ,-------------. ,-------------. - * | Home | End | | Left | Right| - * ,------|------|------| |------+------+------. - * | | | PgUp | | Up | | | - * |Backsp| Del |------| |------| Enter| Space| - * | | | PgDn | | Down | | | - * `--------------------' `--------------------' - */ -[BASE] = KEYMAP( -// left hand - F(LSpec),KC_1,KC_2,KC_3 ,KC_4 ,KC_5 ,KC_ESC -,F(LMdia) ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC -,M(LSymb) ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G -,M(LCaps) ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,LSFT(KC_TAB) -,KC_LCTL ,KC_MEH ,KC_HYPR,KC_LALT,KC_LGUI - ,KC_HOME,KC_END - ,KC_PGUP - ,KC_BSPC,KC_DEL ,KC_PGDN - // right hand - ,KC_MINS ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,F(RSpec) - ,KC_RBRC ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,F(RMdia) - ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,F(RSymb) - ,KC_TAB ,KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH ,M(RCaps) - ,KC_RGUI,KC_RALT,KC_HYPR ,KC_MEH ,KC_RCTL - ,KC_LEFT ,KC_RGHT - ,KC_UP - ,KC_DOWN ,KC_ENT ,KC_SPC - ), - -/******* Symbols Layer ***************************************************************************************************** - * - * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | Esc | | - | F6 | F7 | F8 | F9 | F10 | | - * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | | ! | @ | { | } | & | < | | > | | | 7 | 8 | 9 | / | | - * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | | # | $ | ( | ) | ` |------| |------| / | 4 | 5 | 6 | * | | - * |-----------+------+------+------+------+------| Tab | | Shift|------+------+------+------+------+-----------| - * | | % | ^ | [ | ] | ~ | | | -Tab| \ | 1 | 2 | 3 | - | | - * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * | LCtrl | Meh |Hyper | LAlt | LGui | |RGui/0|RAlt/.|Hypr/=|Meh/+ |RCtrl/Ent| - * `-----------------------------------' `-------------------------------------' - * ,-------------. ,-------------. - * | Left | Right| | Home | End | - * ,------|------|------| |------+------+------. - * | | | Up | | PgUp | | | - * |Space |Enter |------| |------|BackSp| Del | - * | | | Down | | PgDn | | | - * `--------------------' `--------------------' - */ -[SYMB] = KEYMAP( -// left hand - KC_TRNS ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_ESC -,KC_TRNS ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_AMPR ,LSFT(KC_COMM) -,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_TAB -,KC_LCTL ,KC_MEH ,KC_HYPR,KC_LALT ,KC_LGUI - ,KC_LEFT ,KC_RGHT - ,KC_UP - ,KC_SPC ,KC_ENT ,KC_DOWN - // right hand - ,KC_MINS ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_TRNS - ,LSFT(KC_DOT),KC_PIPE ,KC_7 ,KC_8 ,KC_9 ,KC_SLSH ,KC_TRNS - ,KC_SLSH ,KC_4 ,KC_5 ,KC_6 ,KC_ASTR ,KC_TRNS - ,LSFT(KC_TAB),KC_BSLS ,KC_1 ,KC_2 ,KC_3 ,KC_MINS ,KC_TRNS - ,GUI_T(KC_0),ALT_T(KC_DOT),ALL_T(KC_EQL),MEH_T(KC_PLUS),CTL_T(KC_ENT) - ,KC_HOME ,KC_END - ,KC_PGUP - ,KC_PGDN ,KC_BSPC ,KC_DEL -), - -/******* Media Layer ******************************************************************************************************* - * - * ,---------------------------------------------------------------. ,---------------------------------------------------------------. - * | | F11 | F12 | F13 | F14 | F15 | Esc | | | F16 | F17 | F18 | F19 | F20 | | - * |------+---------+---------+---------+---------+----------------| |------+---------+---------+---------+---------+---------+------| - * | |Shut Down|MouseUpLf|Mouse Up |MouseUpRg|Volume Up|Scroll| |Scroll|PrintScrn| Home | Up | PgUp | Mail | | - * |------+---------+---------+---------+---------+---------| Up | | Up |---------+---------+---------+---------+---------+------| - * | | Sleep |MouseLeft|MouseDown|MouseRght|Volume Dn|------| |------| Num Lock| Left | Down | Right | MyComp | | - * |------+---------+---------+---------+---------+---------|Scroll| |Scroll|---------+---------+---------+---------+---------+------| - * | | |MouseDnLf|MouseDown|MouseDnRg| Mute | Down | | Down | | End | Down | PgDn | | | - * `------+---------+---------+---------+---------+----------------' `----------------+---------+---------+---------+---------+------' - * |LCtrl| Meh | MClick | LClick | R Click| |Cmd/Insrt|Optn/Del | Hyper | Meh |RCtrl| - * `---------------------------------------------' `---------------------------------------------' - * ,-------------. ,-------------. - * | Stop |Refrsh| | Prev | Next | - * ,------|------|------| |------+------+------. - * |Brwser|Brwser|Search| |VolUp | | | - * |Back | Fwd |------| |------| Stop | Play-| - * | | | Home | |VolDn | | Pause| - * `--------------------' `--------------------' - */ -[MDIA] = KEYMAP( -// left hand - KC_TRNS ,KC_F11 ,KC_F12 ,KC_F13 ,KC_F14 ,KC_F15 ,KC_ESC -,KC_TRNS ,KC_POWER ,M(MUL) ,KC_MS_U ,M(MUR) ,KC_VOLU ,KC_WH_U -,KC_TRNS ,KC_SLEP ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_VOLD -,KC_TRNS ,KC_NO ,M(MDL) ,KC_MS_D ,M(MDR) ,KC_MUTE ,KC_WH_D -,KC_LCTL ,KC_MEH ,KC_BTN3 ,KC_BTN1 ,KC_BTN2 - ,KC_WSTP ,KC_WREF - ,KC_WSCH - ,KC_WBAK ,KC_NO ,KC_WHOM - // right hand - ,KC_NO ,KC_F16 ,KC_F17 ,KC_F18 ,KC_F19 ,KC_F20 ,KC_TRNS - ,KC_WH_U ,KC_PSCR ,KC_HOME ,KC_UP ,KC_PGUP ,KC_MAIL ,KC_TRNS - ,KC_NLCK ,KC_LEFT ,KC_DOWN ,KC_RIGHT,KC_MYCM ,KC_TRNS - ,KC_WH_D ,KC_NO ,KC_END ,KC_DOWN ,KC_PGDN ,KC_NO ,KC_TRNS - ,GUI_T(KC_INS),ALT_T(KC_DEL),KC_HYPR ,KC_MEH ,KC_RCTL - ,KC_MPRV ,KC_MNXT - ,KC_VOLU - ,KC_VOLD ,KC_MSTP ,KC_MPLY -), - -/******* Special Layer ***************************************************************************************************** - * - * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | | Esc | | | | | | | | | | | | Bspc | | - * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | | | | | | | | | | | | | | | | - * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | | | | | | |------| |------| | | | | | | - * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | | | | | | | | | | | | | | | RShift | - * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -[SPEC] = KEYMAP( -// left hand - KC_TRNS ,KC_ESC ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,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_BSPC ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_RSFT - ,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[] = { - // the faux shift keys are implemented as macro taps - [LCaps] = ACTION_MACRO_TAP(LCaps) - ,[LSymb] = ACTION_MACRO_TAP(LSymb) - ,[LMdia] = ACTION_MACRO_TAP(LMdia) - ,[LSpec] = ACTION_MACRO_TAP(LSpec) - ,[RCaps] = ACTION_MACRO_TAP(RCaps) - ,[RSymb] = ACTION_MACRO_TAP(RSymb) - ,[RMdia] = ACTION_MACRO_TAP(RMdia) - ,[RSpec] = ACTION_MACRO_TAP(RSpec) -}; - -uint16_t caps_shift = 0; -uint16_t symb_shift = 0; -uint16_t mdia_shift = 0; - -bool symb_lock = false; -bool mdia_lock = false; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - // There are two shift keys for each layer so we increment a layer_shift var when one - // is pressed and decrement when one is released. If both are pressed at the same time - // then the layer is locked (or unlocked). The shift counts are bound between 0 and 2 - // only because sometimes rapid pressing led to irregular events; this way the states - // are self healing during use. - - case LCaps: // both caps-shift keys trigger Left Shift - case RCaps: // so they don't interfere with the magic combo - if (record->event.pressed && !record->tap.count) { - if(++caps_shift > 2) caps_shift = 2; - if(caps_shift == 2) { - register_code(KC_CAPS); - unregister_code(KC_CAPS); - } else if(caps_shift == 1) { - register_code(KC_LSFT); - } - } else { - if(--caps_shift < 0) caps_shift = 0; - if(caps_shift == 0) unregister_code(KC_LSFT); - } - break; - - case LSymb: - if (record->event.pressed) { - if(++symb_shift > 2) symb_shift = 2; - if(symb_shift == 2) { - symb_lock = !symb_lock; - } else if(symb_shift == 1) { - layer_on(SYMB); - } - } else { - if(--symb_shift < 0) symb_shift = 0; - if((symb_shift == 0) && (!symb_lock)) layer_off(SYMB); - } - break; - - case LMdia: - if (record->event.pressed) { - if (record->tap.count && (!mdia_shift) && (!mdia_lock)) { - register_code(KC_TAB); - } else { - if(++mdia_shift > 2) mdia_shift = 2; - if(mdia_shift == 2) { - mdia_lock = !mdia_lock; - } else if(mdia_shift == 1) { - layer_on(MDIA); - } - } - } else { - if(record->tap.count && (!mdia_shift) && (!mdia_lock)) { - unregister_code(KC_TAB); - } else { - if(--mdia_shift < 0) mdia_shift = 0; - if((!mdia_shift) && (!mdia_lock)) layer_off(MDIA); - } - } - break; - - case LSpec: - if (record->event.pressed) { - if (record->tap.count && !record->tap.interrupted) { - register_code(KC_GRV); - } else { - layer_on(SPEC); - } - } else { - if(record->tap.count && !record->tap.interrupted) { - unregister_code(KC_GRV); - } else { - layer_off(SPEC); - } - } - break; - - case RSymb: - if (record->event.pressed) { - if (record->tap.count && (!symb_shift) && (!symb_lock)) { - register_code(KC_QUOT); - } else { - if(++symb_shift > 2) symb_shift = 2; - if(symb_shift == 2) { - symb_lock = !symb_lock; - } else if(symb_shift == 1) { - layer_on(SYMB); - } - } - } else { - if(record->tap.count && symb_shift == 0) { - unregister_code(KC_QUOT); - } else { - if(--symb_shift < 0) symb_shift = 0; - if((!symb_shift) && (!symb_lock)) layer_off(SYMB); - } - } - break; - - case RMdia: - if (record->event.pressed) { - if (record->tap.count && (!mdia_shift) && (!mdia_lock)) { - register_code(KC_BSLS); - } else { - if(++mdia_shift > 2) mdia_shift = 2; - if(mdia_shift == 2) { - mdia_lock = !mdia_lock; - } else if(mdia_shift == 1) { - layer_on(MDIA); - } - } - } else { - if(record->tap.count && (!mdia_shift) && (!mdia_lock)) { - unregister_code(KC_BSLS); - } else { - if(--mdia_shift < 0) mdia_shift = 0; - if((!mdia_shift) && (!mdia_lock)) layer_off(MDIA); - } - } - break; - - case RSpec: - if (record->event.pressed) { - if (record->tap.count && !record->tap.interrupted) { - register_code(KC_EQL); - } else { - layer_on(SPEC); - } - } else { - if(record->tap.count && !record->tap.interrupted) { - unregister_code(KC_EQL); - } else { - layer_off(SPEC); - } - } - break; - - // mouse diagonals - - case MUL: // mouse up left - if (record->event.pressed) { - mousekey_on(KC_MS_UP); - mousekey_on(KC_MS_LEFT); - mousekey_send(); - } else { - mousekey_off(KC_MS_UP); - mousekey_off(KC_MS_LEFT); - mousekey_send(); - } - break; - - case MUR: // mouse up right - if (record->event.pressed) { - mousekey_on(KC_MS_UP); - mousekey_on(KC_MS_RIGHT); - mousekey_send(); - } else { - mousekey_off(KC_MS_UP); - mousekey_off(KC_MS_RIGHT); - mousekey_send(); - } - break; - - case MDL: // mouse down left - if (record->event.pressed) { - mousekey_on(KC_MS_DOWN); - mousekey_on(KC_MS_LEFT); - mousekey_send(); - } else { - mousekey_off(KC_MS_DOWN); - mousekey_off(KC_MS_LEFT); - mousekey_send(); - } - break; - - case MDR: // mouse down right - if (record->event.pressed) { - mousekey_on(KC_MS_DOWN); - mousekey_on(KC_MS_RIGHT); - mousekey_send(); - } else { - mousekey_off(KC_MS_DOWN); - mousekey_off(KC_MS_RIGHT); - mousekey_send(); - } - break; - - default: - // none - 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) { - // shift or caps lock turns on red light - if(caps_shift || (keyboard_report->mods & MOD_BIT(KC_RSFT)) || (host_keyboard_leds() & (1<\n\n\nTab"], -[{y:-0.75,x:3.5,c:"#cccccc"},"C",{x:10.5},"<\n,"], -[{y:-0.875,x:2.5},"X",{x:1},"V",{x:8.5},"M",{x:1},">\n."], -[{y:-0.875,x:5.5},"B",{x:6.5},"N"], -[{y:-0.875,c:"#2277ff",w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#cccccc"},"Z",{x:14.5},"?\n/",{c:"#2277ff",w:1.5},"\n\nCapitals\n\n\n\n\nShift"], -[{y:-0.375,x:3.5,c:"#77aaff"},"Option\n\n\nLAlt",{x:10.5},"Option\n\n\nRAlt"], -[{y:-0.875,x:2.5},"Hyper",{x:1},"Cmd\n\n\nSuper",{x:8.5},"Cmd\n\n\nSuper",{x:1},"Hyper"], -[{y:-0.75,x:0.5},"Ctrl\n\n\nLCtrl","Meh",{x:14.5},"Meh","Ctrl\n\n\nRCtrl"], -[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#54d6de"},"Home","End"], -[{h:2},"< Del\n\n\nBackspace",{h:2},"Del >\n\n\nDelete","Page\n\n\n\n\n\nUp"], -[{x:2},"Page\n\n\n\n\n\nDown"], -[{r:-30,rx:13,y:-1,x:-3},"Left","Right"], -[{x:-3},"Up",{h:2},"Enter",{h:2},"Space"], -[{x:-3},"Down"] - diff --git a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-media.png b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-media.png deleted file mode 100644 index 99e5ed80b..000000000 Binary files a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-media.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-media.txt b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-media.txt deleted file mode 100644 index 4eccc9f35..000000000 --- a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-media.txt +++ /dev/null @@ -1,27 +0,0 @@ -[{x:3.5,c:"#99de2a"},"F13",{x:10.5},"F18"], -[{y:-0.875,x:2.5},"F12",{x:1},"F14",{x:8.5},"F17",{x:1},"F19"], -[{y:-0.875,x:5.5},"F15",{c:"#ff4444"},"Esc",{x:4.5,c:"#737373",a:7},"",{c:"#99de2a",a:4},"F16"], -[{y:-0.875,c:"#2277ff",w:1.5},"Special\n\n\n\n\n\nShift",{c:"#99de2a"},"F11",{x:14.5},"F20",{c:"#2277ff",w:1.5},"\n\nSpecial\n\n\n\n\nShift"], -[{y:-0.375,x:3.5,c:"#ff8500"},"Mouse\n\n\n\n\n\nUp",{x:10.5},"Cursor\n\n\n\n\n\nUp"], -[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nUpLeft",{x:1},"Mouse\n\n\n\n\n\nUpRgt",{x:8.5,c:"#ffb063"},"Home",{x:1},"Page\n\n\n\n\n\nUp"], -[{y:-0.875,x:5.5,c:"#e6e067"},"Vol\n\n\n\n\n\nUp",{c:"#ffb063",h:1.5},"Scroll\n\n\n\n\n\nUp",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nUp",{c:"#e6e067"},"Print\n\n\n\n\n\nScreen"], -[{y:-0.875,c:"#000000",t:"#ff0000",w:1.5},"Media\n\n\n\n\n\nShift",{c:"#e6e067",t:"#000000"},"Shut\n\n\n\n\n\nDown",{x:14.5},"Mail",{c:"#000000",t:"#ff0000",w:1.5},"\n\nMedia\n\n\n\n\nShift"], -[{y:-0.375,x:3.5,c:"#ff8500",t:"#000000"},"Mouse\n\n\n\n\n\nDown",{x:10.5},"Cursor\n\n\n\n\n\nDown"], -[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nLeft",{x:1},"Mouse\n\n\n\n\n\nRight",{x:8.5},"Cursor\n\n\n\n\n\nLeft",{x:1},"Cursor\n\n\n\n\n\nRight"], -[{y:-0.875,x:5.5,c:"#e6e067"},"Vol\n\n\n\n\n\nDown",{x:6.5},"Num\n\n\n\n\n\nLock"], -[{y:-0.875,c:"#2277ff",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#e6e067"},"Sleep",{x:14.5},"My\n\n\n\n\n\nComp",{c:"#2277ff",w:1.5},"\n\nSymbols\n\n\n\n\nShift"], -[{y:-0.625,x:6.5,c:"#ffb063",h:1.5},"Scroll\n\n\n\n\n\nDown",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nDown"], -[{y:-0.75,x:3.5,c:"#ff8500"},"Mouse\n\n\n\n\n\nDown",{x:10.5},"Cursor\n\n\n\n\n\nDown"], -[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nDnLeft",{x:1},"Mouse\n\n\n\n\n\nDnRgt",{x:8.5,c:"#ffb063"},"End",{x:1},"Page\n\n\n\n\n\nDown"], -[{y:-0.875,x:5.5,c:"#e6e067"},"Mute",{x:6.5,c:"#737373",a:7},""], -[{y:-0.875,c:"#2277ff",a:4,w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#737373",a:7},"",{x:14.5},"",{c:"#2277ff",a:4,w:1.5},"\n\nCapitals\n\n\n\n\nShift"], -[{y:-0.375,x:3.5,c:"#ff8500"},"Middle\n\n\n\n\n\nClick",{x:10.5,c:"#ffb063",fa:[0,0,0,1]},"Delete\n\n\nOption"], -[{y:-0.875,x:2.5,c:"#ff8500"},"Left\n\n\n\n\n\nClick",{x:1},"Right\n\n\n\n\n\nClick",{x:8.5,c:"#ffb063"},"Insert\n\n\nCmd",{x:1,c:"#77aaff"},"Hyper"], -[{y:-0.75,x:0.5},"Ctrl\n\n\nLCtrl","Meh",{x:14.5},"Meh","Crtl\n\n\nRCtrl"], -[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#ccbb00"},"Stop\n\n\nBrowser","Reload\n\n\nBrowser"], -[{h:2},"< Web\n\n\nBrowser",{h:2},"Web >\n\n\nBrowser","Search\n\n\nBrowser"], -[{x:2},"Home\n\n\nBrowser"], -[{r:-30,rx:13,y:-1,x:-3},"Prev\n\n\nAudio\n\n\nTrack","Next\n\n\nAudio\n\n\nTrack"], -[{x:-3,c:"#e6e067"},"Vol\n\n\n\n\n\nUp",{c:"#ccbb00",h:2},"Stop\n\n\nAudio",{h:2},"Play\n\n\nAudio\n\n\nPause"], -[{x:-3,c:"#e6e067"},"Vol\n\n\n\n\n\nDown"] - diff --git a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-special.png b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-special.png deleted file mode 100644 index 6eecf447e..000000000 Binary files a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-special.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-special.txt b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-special.txt deleted file mode 100644 index a08827c6d..000000000 --- a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-special.txt +++ /dev/null @@ -1,27 +0,0 @@ -[{x:3.5,a:7},"",{x:10.5},""], -[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""], -[{y:-0.875,x:5.5},"",{c:"#ff4444",a:4},"Esc",{x:4.5,c:"#cccccc",a:7},"",""], -[{y:-0.875,c:"#000000",t:"#ff0000",a:4,w:1.5},"Special\n\n\n\n\n\nShift",{c:"#ff4444",t:"#000000"},"Esc",{x:14.5,c:"#54d6de"},"Back\n\n\n\n\n\nspace",{c:"#000000",t:"#ff0000",w:1.5},"\n\nSpecial\n\n\n\n\nShift"], -[{y:-0.375,x:3.5,c:"#cccccc",t:"#000000",a:7},"",{x:10.5},""], -[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""], -[{y:-0.875,x:5.5},"",{h:1.5},"",{x:4.5,h:1.5},"",""], -[{y:-0.875,w:1.5},"","",{x:14.5},"",{w:1.5},""], -[{y:-0.375,x:3.5},"",{x:10.5},""], -[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""], -[{y:-0.875,x:5.5},"",{x:6.5},""], -[{y:-0.875,w:1.5},"","",{x:14.5},"",{w:1.5},""], -[{y:-0.625,x:6.5,h:1.5},"",{x:4.5,h:1.5},""], -[{y:-0.75,x:3.5},"",{x:10.5},""], -[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""], -[{y:-0.875,x:5.5},"",{x:6.5},""], -[{y:-0.875,w:1.5},"","",{x:14.5},"",{c:"#2277ff",w:1.5},"RShift"], -[{y:-0.375,x:3.5,c:"#cccccc"},"",{x:10.5},""], -[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""], -[{y:-0.75,x:0.5},"","",{x:14.5},"",""], -[{r:30,rx:6.5,ry:4.25,y:-1,x:1},"",""], -[{h:2},"",{h:2},"",""], -[{x:2},""], -[{r:-30,rx:13,y:-1,x:-3},"",""], -[{x:-3},"",{h:2},"",{h:2},""], -[{x:-3},""] - diff --git a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-symbol.png b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-symbol.png deleted file mode 100644 index e4de64a96..000000000 Binary files a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-symbol.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt deleted file mode 100644 index e199f5c59..000000000 --- a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt +++ /dev/null @@ -1,27 +0,0 @@ -[{x:3.5,c:"#99de2a"},"F3",{x:10.5},"F8"], -[{y:-0.875,x:2.5},"F2",{x:1},"F4",{x:8.5},"F7",{x:1},"F9"], -[{y:-0.875,x:5.5},"F5",{c:"#ff4444"},"Esc",{x:4.5,c:"#bbddbb"},"_\n\n\n\n\n\n-",{c:"#99de2a"},"F6"], -[{y:-0.875,c:"#2277ff",w:1.5},"Special\n\n\n\n\n\nShift",{c:"#99de2a"},"F1",{x:14.5},"F10",{c:"#2277ff",w:1.5},"\n\nSpecial\n\n\n\n\nShift"], -[{y:-0.375,x:3.5,c:"#bbddbb"},"{",{x:10.5,c:"#89b087"},"8"], -[{y:-0.875,x:2.5,c:"#bbddbb"},"@",{x:1},"}",{x:8.5,c:"#89b087"},"7",{x:1},"9"], -[{y:-0.875,x:5.5,c:"#bbddbb"},"&",{h:1.5},"<",{x:4.5,h:1.5},">","|"], -[{y:-0.875,c:"#2277ff",w:1.5},"Media\n\n\n\n\n\nShift",{c:"#bbddbb"},"!",{x:14.5,c:"#89b087"},"/",{c:"#2277ff",w:1.5},"\n\nMedia\n\n\n\n\nShift"], -[{y:-0.375,x:3.5,c:"#bbddbb"},"(",{x:10.5,c:"#89b087"},"5"], -[{y:-0.875,x:2.5,c:"#bbddbb"},"$",{x:1},")",{x:8.5,c:"#89b087"},"4",{x:1},"6"], -[{y:-0.875,x:5.5,c:"#bbddbb"},"`",{x:6.5},"/"], -[{y:-0.875,c:"#000000",t:"#ff0000",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#bbddbb",t:"#000000"},"#",{x:14.5,c:"#89b087"},"*",{c:"#000000",t:"#ff0000",w:1.5},"\n\nSymbols\n\n\n\n\nShift"], -[{y:-0.625,x:6.5,c:"#54d6de",t:"#000000",fa:[0,0,0,1],h:1.5},"Tab >\n\n\nTab",{x:4.5,h:1.5},"< Tab\n\n\nShift Tab"], -[{y:-0.75,x:3.5,c:"#bbddbb"},"[",{x:10.5,c:"#89b087"},"2"], -[{y:-0.875,x:2.5,c:"#bbddbb"},"^",{x:1},"]",{x:8.5,c:"#89b087"},"1",{x:1},"3"], -[{y:-0.875,x:5.5,c:"#bbddbb"},"~",{x:6.5},"\\"], -[{y:-0.875,c:"#2277ff",w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#bbddbb"},"%",{x:14.5,c:"#89b087"},"-",{c:"#2277ff",w:1.5},"\n\nCapitals\n\n\n\n\nShift"], -[{y:-0.375,x:3.5,c:"#77aaff"},"Option\n\n\nLAlt",{x:10.5,c:"#89b087"},".\n\n\nOption"], -[{y:-0.875,x:2.5,c:"#77aaff"},"Hyper",{x:1},"Cmd\n\n\nSuper",{x:8.5,c:"#89b087"},"0\n\n\nCmd",{x:1},"=\n\n\nHyper"], -[{y:-0.75,x:0.5,c:"#77aaff"},"Ctrl\n\n\nLCtrl","Meh",{x:14.5,c:"#89b087"},"+\n\n\nMeh","Enter\n\n\nCtrl"], -[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#54d6de"},"Left","Right"], -[{h:2},"Space",{h:2},"Enter","Up"], -[{x:2},"Down"], -[{r:-30,rx:13,y:-1,x:-3},"Home","End"], -[{x:-3},"Page\n\n\n\n\n\nUp",{h:2},"< Del\n\n\nBackspace",{h:2},"Del >\n\n\nDelete"], -[{x:-3},"Page\n\n\n\n\n\nDown"] - diff --git a/keyboards/ergodox_ez/keymaps/ordinary/readme.md b/keyboards/ergodox_ez/keymaps/ordinary/readme.md deleted file mode 100644 index 6465cd79e..000000000 --- a/keyboards/ergodox_ez/keymaps/ordinary/readme.md +++ /dev/null @@ -1,103 +0,0 @@ -# The Ordinary Layout, a familiar and powerful layout # - -The Ordinary Layout is intended to be unremarkably mundane and remarkably useful. This layout maintains most key positions from common QWERTY keyboards, and it features enhanced Symbol and Media layers compared to the default Ergodox EZ layout. - -The Ordinary Layout is supposed to look mostly like a normal keyboard, except in the ways that the Ergodox key arrangement is unique. The thumbs are responsible for space, enter, plus both forward and backward delete; with only a couple exceptions, all other keys are in the same place they are found on traditional keyboards. - -Nicholas Keene -ordinarylayout@nicholaskeene.com -no rights reserved, use for any purposes, credit me if you are a nice person - -## The Base Layout ## - -* The light blue keys are modifiers: traditional Control, Option, and Command keys, plus Hyper and Meh -* The dark blue keys are Shift keys: Capitals Shift (traditional shift), Symbol Shift, and Media Shift; plus a Shift Lock key -* Several dark blue keys double for entry of characters which would typically be in those locations -* The turquoise keys are text navigation and manipulation -* The red keys is Escape and it is always found in that location no matter what - -![Ordinary base layout](ordinary-base.png) - -This layout puts the modifier keys along the bottom of the keyboard where they are on most keyboards. They are in the regular order, with the addition of Hyper and Meh keys. The modifier keys are all in the same place on all layers, although some layers also assign symbols on those buttons. On the outside edges are the Shift keys. The traditional shift key is called Capitals Shift and it is in the normal location. Above that are Symbols Shift and Media Shift. Each Shift key momentarily switches the layout to that layer, and if you use the Shift Lock button you can lock the layout to that layer. - -Touch typists will also find tilde, tab, equals/plus, slash/pipe, and quote/double-quote sharing space on those Shift keys where they would probably be on a common keyboard. Other than the turquoise keys the only buttons which move to new locations are the Brackets and Dash and Escape. Most touch typists dont touch-type brackets or dash anyway so only Escape really requires retraining of muscle memory, and see below for the Special Escape Sequence. - -The four big turquoise keys are arranged differently than in the default Ergodox EZ layout. The Ordinary Layout here copies the design of the old Fingerworks TouchStream keyboard, but also reflects the natural presumptions of the author -- me! I type the space character with my right hand, and to me it makes sense for the two delete keys to be next to one another. - -The Forward Tab and Backward Tab keys are in their locations mostly because I ended up with two extra buttons and needed something to do with them. My muscle memory from using the Truly Ergonomic Keyboard makes me look for the Tab key with my right index finger, so it is handy to have this redundant Tab, and the idea with the Backward Tab key is that it becomes easy to navigate text fields in forms, or to indent/unindent code. - -## The Symbols Layer ## - -* The light green keys are the eponymous symbols -* The bright green keys are F-Keys -* The dark green keys constitute a number pad -* The turquoise keys are the *reverse* of the turquoise keys on the base layer - -![Ordinary symbol layout](ordinary-symbol.png) - -The Ergodox EZ ships with the "Coder Layer" which I like to call the Symbols layer. There are some significant improvements in The Ordinary Layout over the default layout. - -The symbol keys are mostly the same as on the default layout, which did a good job in this regard, but with a few enhancements: - -* Angle brackets on this layer mean that curly, square, and angle brackets are all available on different layers of the same two buttons. Also, they mean that all kinds of brackets, including parentheses, are available on both the Base and Symbols layers. -* The slash, backslash, and pipe characters are grouped together as a memory aid. -* The & and | symbols are juxtaposed as a memory aid - -The number pad area here, in green, includes all four arithmetic operations in the same order found on most number pads and features an Enter key. The keycodes emitted here are normal numeric keycodes, not the number-pad specific keycodes emitted by most number pads, because this layout does not use a Num Lock key to switch the buttons between numeric keycodes and navigational keycodes. See the explanation in The Media Layout section about navigation using these same buttons. - -Finally, consider the turquoise text-nav keys. Here in the Symbols layer, these are *reversed* from the base layer, with the keys either mirrored or shifted. This is powerful! Often I find myself using the mouse with my right hand, and the left hand needs to press Enter. Instead of reaching the left hand over to the right side of the keyboard, now I simply tap Symbols to reverse the turquoise keys, and Enter is right where it should be. - -## The Media Layer ## - -* The dark orange keys on the left move the mouse cursor -* The dark orange keys on the right move the text cursor -* The light orange keys are for scrolling and paging -* The bright green keys are more F-keys -* The dark yellow keys signal Web and Audio applications -* The light yellow keys signal the operating system -* The dark gray keys do nothing in case you bump them by accident - -![Ordinary media layout](ordinary-media.png) - -This layer was inspired by the Media layer on the Ergodox EZ but takes it farther. The Fingerworks TouchStream keyboard had a very useful feature for controlling the text cursor easily and this layer does something similar. The left hand can move the mouse, the right hand moves the text cursor, in all four directions, in small or large increments. This greatly enhances navigation in text documents. - -Moreover, the orange keys on the right overlay the numberpad from the Symbols Layer, such that in the Media Layer the same keys can be used as if they were a number pad in navigational mode (Num Lock off). For instance, in traditional number pads the '3' key became 'Page Down', and so it is here. This means a user can do text navigation without moving either hand. - -Alas, the yellow keys have at best spotty success with common software. Good luck with those but don't expect too much. - -## Switching Between Layers ## - -In addition to Symbols and Media there is the Capitals layer which is exactly the same as pressing the shift key. Each layer is accessed by a shift key on each edge of the keyboard and corresponds to one of the three LEDs on the keyboard: Capitals (red), Symbols (green), Media (blue). The color of a layer illuminates when the layer is active. - -Shift buttons work in the expected way: press them and all of the keys switch to that layer; release them and the keys switch back to the base layer. If you press both of a pair of shift keys, the layer will lock on until you press both shift keys again. For instance, the widely and rightly loathed Caps Lock is engaged by pressing both Capitals Shift buttons. All the Shift keys work this way. - -Multiple layers can be turned on at once. The Capitals layer will affect characters on other layers to capitalize. Other layers, however, don't 'mix': Symbols blankets the base layout; Media blankets Symbols. - -## Special Sequences ## - -![Ordinary special layout](ordinary-special.png) - -### Escape ### - -The One True Location for the Escape key is segregated way up on the top left of the keyboard. The Ergodox does not have a physical button in such a location and the nearest one is home to the tilde (er, grave) which is commonly found there. In the Ordinary layout the Escape key is found on all layers in the prominent location in the corner next to the 5, whnich is easy to remember, and yet it isn't natural for those of us with muscle memory flicking our wrists up and to the left looking for Escape. - -The Ordinary layout offers as a consolation prize a Special sequence for Escape: Special Shift + 1. This is natural so you can tap the top left button, then the button next to it and get Escape. This gesture works in all layers. - -### Backspace ### - -At the top right corner of the Ergodox EZ you can a gesture similar to the special Escape sequence, using the 0 key, to produce a Backspace. Users of this keyboard and this layout are well advised to learn to use their thumbs for deleting text, but sometimes you are doing other computery things and just want to flick your digits up to the right and press backspace a bunch times. - -### RShift ### - -The Ordinary Layout locks layers by pressing both of a pair of shift keys. This interferes with the QMK firmware magic sequence, which is LShift+RShift. To work around this, both of the Capitals Shift keys produce a *Left Shift* keystroke. If for some reason a person needs *Right Shift* they can find it by pressing a Special Shift key, then the Capitals Shift key on the right side of the keyboard. - -**** - -The Ordinary Layout for the Ergodox EZ keyboard, v4 - -Modifications from default by Nicholas Keene ergodoxez@nicholaskeene.com - -No rights reserved. This software is in the public domain. Credit me if you are friendly but if you're a jerk don't bother. - -Details: readme.md - https://github.com/nrrkeene/qmk_firmware/tree/master/keyboard/ergodox_ez/keymaps/ordinary diff --git a/keyboards/ergodox_ez/keymaps/osx_de/keymap.c b/keyboards/ergodox_ez/keymaps/osx_de/keymap.c deleted file mode 100644 index 554813d7e..000000000 --- a/keyboards/ergodox_ez/keymaps/osx_de/keymap.c +++ /dev/null @@ -1,364 +0,0 @@ -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" -#include "keymap_german_osx.h" - -#define BASE 0 -#define SYMB 1 -#define MDIA 2 -#define SMLY 3 -#define NUMB 4 -#define EGOS 5 - -#define M_CTRL_CMDV 0 -#define M_CTRL_CMDC 1 -#define M_MEH_SH_ACUT 2 -#define M_LGUI_SHFT 3 -#define M_CTL_SFT_HASH 4 -#define M_DE_OSX_CIRC_CTRLCMD 5 -#define M_DE_OSX_PLUS_CTRLALT 6 -#define SM_SMILE 7 -#define SM_SMIRK 8 -#define SM_CRY 9 -#define SM_SAD 10 -#define SM_HEART 11 -#define SM_LAUGH 12 -#define SM_KISS 13 -#define SM_FROWN 14 -#define M_TOGGLE_5 15 - -//Layout keymap.c generated with ErgodoxLayoutGenerator V1.0BETA1 -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[BASE]=KEYMAP( -//left half - KC_ESC, DE_OSX_1, DE_OSX_2, DE_OSX_3, DE_OSX_4, DE_OSX_5, M(M_CTL_SFT_HASH), - KC_TAB, DE_OSX_Q, DE_OSX_W, DE_OSX_E, DE_OSX_R, DE_OSX_T, KC_LGUI, - KC_LALT, DE_OSX_A, DE_OSX_S, DE_OSX_D, DE_OSX_F, DE_OSX_G, - KC_LSFT, CTL_T(DE_OSX_Y), DE_OSX_X, DE_OSX_C, DE_OSX_V, DE_OSX_B, KC_LALT, - LT(SYMB,DE_OSX_LESS), M(M_DE_OSX_CIRC_CTRLCMD), M(M_DE_OSX_PLUS_CTRLALT), KC_UP, KC_DOWN, - M(M_MEH_SH_ACUT), TG(MDIA), - KC_HOME, - KC_BSPC, KC_DEL, LT(SMLY,KC_END), - //right half - M(M_CTL_SFT_HASH), DE_OSX_6, DE_OSX_7, DE_OSX_8, DE_OSX_9, DE_OSX_0, DE_OSX_SS, - KC_RGUI, DE_OSX_Z, DE_OSX_U, DE_OSX_I, DE_OSX_O, DE_OSX_P, DE_OSX_UE, - DE_OSX_H, DE_OSX_J, DE_OSX_K, DE_OSX_L, DE_OSX_OE, ALT_T(DE_OSX_AE), - KC_RALT, DE_OSX_N, DE_OSX_M, DE_OSX_COMM, DE_OSX_DOT, CTL_T(DE_OSX_MINS), KC_RSFT, - KC_LEFT, KC_RIGHT, LGUI(KC_LSFT), LALT(KC_LSFT), LT(SYMB,DE_OSX_PLUS), - TG(NUMB), ALL_T(DE_OSX_ACUT), - KC_PGUP, - KC_PGDN, KC_ENT, KC_SPC), -[SYMB]=KEYMAP( -//left half - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, - KC_TRNS, DE_OSX_LESS, DE_OSX_MORE, DE_OSX_EXLM, DE_OSX_QST, KC_TRNS, KC_TRNS, - KC_TRNS, DE_OSX_HASH, DE_OSX_DLR, DE_OSX_BSLS, DE_OSX_SLSH, KC_DOT, - KC_TRNS, KC_TRNS, DE_OSX_LESS, DE_OSX_PERC, DE_OSX_PIPE, DE_OSX_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 half - M(M_TOGGLE_5), KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), DE_OSX_LESS, DE_OSX_MORE, DE_OSX_EXLM, - DE_OSX_SLSH, DE_OSX_LPRN, DE_OSX_RPRN, LALT(KC_8), LALT(KC_9), DE_OSX_HASH, - KC_TRNS, DE_OSX_PIPE, DE_OSX_TILD, DE_OSX_CIRC, KC_UP, DE_OSX_MINS, LSFT(KC_4), - DE_OSX_QUOT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, - KC_F13, KC_F12, - KC_F14, - KC_F15, KC_TRNS, KC_TRNS), -[MDIA]=KEYMAP( -//left half - 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 half - 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), -[SMLY]=KEYMAP( -//left half - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 half - M(SM_SMILE), M(SM_SMIRK), M(SM_LAUGH), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, M(SM_FROWN), M(SM_SAD), M(SM_CRY), KC_TRNS, KC_TRNS, KC_TRNS, - M(SM_HEART), M(SM_KISS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS), -[NUMB]=KEYMAP( -//left half - 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 half - 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, DE_OSX_MINS, - KC_TRNS, LSFT(KC_6), KC_1, KC_2, KC_3, LSFT(KC_7), KC_TRNS, - KC_0, KC_DOT, KC_COMM, DE_OSX_EQL, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS), -[EGOS]=KEYMAP( -//left half - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_F1, KC_F2, - KC_F3, - KC_SPC, KC_LCTL, KC_F4, - //right half - M(M_TOGGLE_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, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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[] = { - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ -static uint16_t start; -switch(id) { -case M_TOGGLE_5: -//Macro: M_TOGGLE_5//----------------------- - if (record->event.pressed){ - layer_state ^= (1<<5); - layer_state &= (1<<5); - } - -break; -case M_CTRL_CMDC: -//Macro: M_CTRL_CMDC//----------------------- -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 M_DE_OSX_PLUS_CTRLALT: -//Macro: M_DE_OSX_PLUS_CTRLALT//----------------------- -if (record->event.pressed) { - start = timer_read(); - return MACRO(D(LCTRL),D(LALT),END); - } else { - if (timer_elapsed(start) >150) { - return MACRO(U(LCTRL),U(LALT),END); - } else { - return MACRO(U(LCTRL),U(LALT),T(RBRC),END); - } - } - -break; -case SM_KISS: -//Macro: SM_KISS//----------------------- -if (record->event.pressed) { - return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(RBRC),U(LSFT),END); - } - -break; -case SM_FROWN: -//Macro: SM_FROWN//----------------------- -if (record->event.pressed) { - return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LALT),T(8),U(LALT),END); - } - -break; -case SM_CRY: -//Macro: SM_CRY//----------------------- -if (record->event.pressed) { - return MACRO(D(LSFT),T(COMM),U(LSFT),T(SLSH),D(LSFT),T(8),U(LSFT),END); - } - -break; -case SM_SMILE: -//Macro: SM_SMILE//----------------------- -if (record->event.pressed) { - return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(9),U(LSFT),END); - } - -break; -case SM_SMIRK: -//Macro: SM_SMIRK//----------------------- -if (record->event.pressed) { - return MACRO(D(LSFT),T(COMM),U(LSFT),T(SLSH),D(LSFT),T(9),U(LSFT),END); - } - -break; -case M_LGUI_SHFT: -//Macro: M_LGUI_SHFT//----------------------- -if (record->event.pressed){ - return MACRO(D(LGUI),D(LSFT),END); - }else{ - return MACRO(U(LGUI),U(LSFT),END); - } - -break; -case SM_HEART: -//Macro: SM_HEART//----------------------- -if (record->event.pressed) { - return MACRO(T(GRV),T(3),END); - } - -break; -case SM_LAUGH: -//Macro: SM_LAUGH//----------------------- -if (record->event.pressed) { - return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(D),U(LSFT),END); - } - -break; -case M_CTL_SFT_HASH: -//Macro: M_CTL_SFT_HASH//----------------------- -if (record->event.pressed) { - start = timer_read(); - return MACRO(D(LCTRL),D(LSFT),END); - } else { - if (timer_elapsed(start) >150) { - return MACRO(U(LCTRL),U(LSFT),END); - } else { - return MACRO(U(LCTRL),U(LSFT),T(BSLS),END); - } - } - -break; -case SM_SAD: -//Macro: SM_SAD//----------------------- -if (record->event.pressed) { - return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(8),U(LSFT),END); - } - -break; -case M_DE_OSX_CIRC_CTRLCMD: -//Macro: M_DE_OSX_CIRC_CTRLCMD//----------------------- -if (record->event.pressed) { - start = timer_read(); - return MACRO(D(LCTRL),D(LGUI),END); - } else { - if (timer_elapsed(start) >150) { - return MACRO(U(LCTRL),U(LGUI),END); - } else { - return MACRO(U(LCTRL),U(LGUI),T(NUBS),END); - } - } - -break; -case M_CTRL_CMDV: -//Macro: M_CTRL_CMDV//----------------------- -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 M_MEH_SH_ACUT: -//Macro: M_MEH_SH_ACUT//----------------------- -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); - } - } - -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; - case SMLY: - - - ergodox_right_led_3_on(); - break; - case NUMB: - ergodox_right_led_1_on(); - - ergodox_right_led_3_on(); - break; - case EGOS: - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); - ergodox_right_led_3_on(); - break; -default: -// none -break; -} - -}; - diff --git a/keyboards/ergodox_ez/keymaps/osx_de/osx_de_highres.png b/keyboards/ergodox_ez/keymaps/osx_de/osx_de_highres.png deleted file mode 100644 index d442a992c..000000000 Binary files a/keyboards/ergodox_ez/keymaps/osx_de/osx_de_highres.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/osx_de/readme.md b/keyboards/ergodox_ez/keymaps/osx_de/readme.md deleted file mode 100644 index 5011a9dd6..000000000 --- a/keyboards/ergodox_ez/keymaps/osx_de/readme.md +++ /dev/null @@ -1,41 +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 ist jetzt auf der rechten seite, neben Enter. Dafür hat der linke Daumen nun Backspace und Delete. -- die CMD- und Alt-Tasten sind in der Mitte einfach erreichbar. -- es gibt eine neue Layer die für Spiele genutzt werden kann (egosooter wie Counter Strike). Dort liegen die wichtigsten Tasten auf der linken Seite, im Daumenblock z.B. space und ctrl sowie die F-Tasten 1-4. Diese Layer ist über die Symbollayer erreichbar. -- 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 - -# Erstellt Mit Dem ErgodoxLayoutGenerator - -Der ErgodoxLayoutGenerator ist ein kleines Werkzeug, welches die Erstellung und Pflege der eigenen Keymaps erleichtern soll. Es ist in java geschrieben und kann [hier](https://github.com/sboesebeck/ErgodoxLayoutGenerator/releases) heruntergeladen werden. Damit das Tool funktioniert sollte das offizielle Oracle JDK in aktueller Version installiert sein. -Die Dokumentation für den ELG kann man [hier](https://boesebeck.name/2016/04/16/ergodoxlayoutgenerator-documentation/) nachlesen (momentan leider nur in Englisch verfügbar). - - - ------------------------------- - -# 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 - -# Created Using the ErgodoxLayoutGenerator - -The ErgodoxLayoutGenerator (ELG) is a little tool, which makes the creation and maintenance of keycaps a lot easier. It was written in Java and can be downloaded [here](https://github.com/sboesebeck/ErgodoxLayoutGenerator/releases). To use the tool, you need to have a current version of Oracles JDK installed. - -The documentation of the ELG can be viewed [here](https://boesebeck.name/2016/04/16/ergodoxlayoutgenerator-documentation/). - diff --git a/keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/keymap.c b/keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/keymap.c deleted file mode 100644 index 687a5cb8b..000000000 --- a/keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/keymap.c +++ /dev/null @@ -1,174 +0,0 @@ -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" - -#include "keymap_neo2.h" -#include "keymap_uk.h" -#include "keymap_colemak.h" -#include "keymap_french_osx.h" -#include "keymap_nordic.h" -#include "keymap_dvorak.h" -#include "keymap_german.h" -#include "keymap_norwegian.h" -#include "keymap_fr_ch.h" -#include "keymap_german_osx.h" -#include "keymap_spanish.h" -#include "keymap_bepo.h" - -#define BASE 0 -#define SYMB 1 -#define MDIA 2 -#define QWERTZ 3 -#define NUMB 4 - -#define UNUSED 0 - -//Layout keymap.c generated with ErgodoxLayoutGenerator V1.0BETA1 -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[BASE]=KEYMAP( -//left half - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LCTL, - KC_TAB, KC_K, KC_DOT, KC_O, KC_COMM, KC_Z, KC_LGUI, - TG(QWERTZ), KC_H, KC_A, KC_E, KC_I, KC_U, - KC_LSFT, CTL_T(KC_X), KC_Q, DE_AE, DE_UE, DE_OE, KC_LALT, - LT(SYMB,KC_GRV), DE_LESS, LALT(KC_LSFT), KC_LEFT, KC_RGHT, - TG(MDIA), MEH_T(LSFT(DE_ACUT)), - KC_HOME, - KC_BSPC, KC_DEL, KC_END, - //right half - KC_RCTL, KC_6, KC_7, KC_8, KC_9, KC_0, DE_OSX_MINS, - KC_RGUI, 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_RALT, KC_B, KC_P, KC_W, KC_M, CTL_T(KC_J), KC_RSFT, - KC_UP, KC_DOWN, LGUI(KC_LSFT), KC_RBRC, LT(SYMB,KC_BSLS), - ALL_T(DE_ACUT), TG(NUMB), - KC_PGUP, - KC_PGDN, KC_ENT, KC_SPC), -[SYMB]=KEYMAP( -//left half - 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 half - 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), -[MDIA]=KEYMAP( -//left half - 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 half - 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), -[QWERTZ]=KEYMAP( -//left half - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, LGUI(KC_V), - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LGUI, - KC_TRNS, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_LALT, - LT(SYMB,KC_GRV), DE_LESS, LALT(KC_LSFT), KC_LEFT, KC_RGHT, - KC_TRNS, MEH_T(LSFT(DE_ACUT)), - KC_HOME, - KC_BSPC, KC_DEL, KC_END, - //right half - LGUI(KC_C), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_RGUI, KC_Y, KC_U, KC_I, KC_O, KC_P, DE_UE, - KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(MDIA,DE_AE), - KC_RALT, KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT, - KC_UP, KC_DOWN, LGUI(KC_LSFT), KC_RBRC, LT(SYMB,KC_BSLS), - ALL_T(DE_ACUT), KC_TRNS, - KC_PGUP, - KC_PGDN, KC_ENT, KC_SPC), -[NUMB]=KEYMAP( -//left half - 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 half - 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[] = { - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ -switch(id) { -case UNUSED: -//Macro: UNUSED//----------------------- - - - - - - 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) { - -default: -// none -break; -} - -}; - diff --git a/keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png b/keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png deleted file mode 100644 index 193aa339e..000000000 Binary files a/keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/osx_de_experimental/keymap.c b/keyboards/ergodox_ez/keymaps/osx_de_experimental/keymap.c deleted file mode 100644 index 21d695894..000000000 --- a/keyboards/ergodox_ez/keymaps/osx_de_experimental/keymap.c +++ /dev/null @@ -1,597 +0,0 @@ -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" -#include "keymap_neo2.h" -#include "keymap_uk.h" -#include "keymap_colemak.h" -#include "keymap_nordic.h" -#include "keymap_dvorak.h" -#include "keymap_german.h" -#include "keymap_norwegian.h" -#include "keymap_fr_ch.h" -#include "keymap_german_osx.h" -#include "keymap_spanish.h" -#include "keymap_bepo.h" - - -/** -* This layout was generated using the ErgodoxLayoutGenerator (ELG). You can download it from https://github.com/sboesebeck/ErgodoxLayoutGenerator/releases -* documentation about it can be found here https://boesebeck.name/2016/04/16/ergodoxlayoutgenerator-documentation/ -* Thanks to the team of Erez Zukerman for building the great Ergodox-EZ! -* -* use at own risk! -**/ - -#define BASE 0 -#define SYMB 1 -#define MDIA 2 -#define SMLY 3 -#define NUMB 4 -#define EGOS 5 - -#define SMLY_TOG_QUOT 0 - -#define M_TOGGLE_5 1 - -#define TGH_NUM 2 - -#define M_DE_OSX_PLUS_CTRLALT 3 - -#define SM_KISS 4 - -#define SM_FROWN 5 - -#define SM_CRY 6 - -#define SM_SMILE 7 - -#define SM_SMIRK 8 - -#define M_LGUI_SHFT 9 - -#define SM_HEART 10 - -#define TOG_HLD_MDIA 11 - -#define SM_LAUGH 12 - -#define SM_SAD 13 - -#define M_DE_OSX_CIRC_CTRLCMD 14 - -#define M_MEH_SH_ACUT 15 - - -//Layout keymap.c generated with ErgodoxLayoutGenerator V1.0BETA1 -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/** -* Layer: BASE -* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ -* | ESC | 1 | 2 | 3 | 4 | 5 | Hold or toggle | | Hold or toggle | 6 | 7 | 8 | 9 | 0 | ß | -* | | | | | | | Layer NUMB | | Layer MDIA | | | | | | | -* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ -* | TAB | Q | W | E | R | T | Cmd | | Cmd | Z | U | I | O | P | Ü | -* | | | | | | | | | | | | | | | | -* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/\-------------------\ \-------------------\/-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ -* | Alt | A | S | D | F | G | | H | J | K | L | Ö | Ä | -* | | | | | | | | | | | | | ALT | -* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ -* | Shift | Y | X | C | V | B | Alt | | Alt | N | M | , | . | - | Shift | -* | | Ctrl | | | | | | | | | | | | Ctrl | | -* \-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\ \-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\ -* -* -* /-------------------//-------------------//-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------//-------------------//-------------------/ -* | < | LongPress / Type | LongPress / Type | Shift+Ctrl | Type | | # | ACUT | CMD+Shift | ALT+Shift | + | -* | SYMB | DE_OSX_CIRC_CTRLCMD| DE_OSX_PLUS_CTRAlt | | Toggle SMLY | | Meh | Hyper | | | SYMB | -* \-------------------\\-------------------\\-------------------\\-------------------\/-------------------//-------------------/ /-------------------//-------------------/ \-------------------\\-------------------\\-------------------\\-------------------\\-------------------\ -* | HOME | END | | LEFT | RIGHT | -* | | | | | | -* \-------------------\/-------------------/ /-------------------/\-------------------\ -* | PGUP | | UP | -* | | | | -* /-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------/ -* | BSPC | DEL | PGDN | | DOWN | ENT | SPC | -* | | | | | | | | -* \-------------------\\-------------------\\-------------------\ \-------------------\\-------------------\\-------------------\ -* -* -**/ -[BASE]=KEYMAP( -//left half - KC_ESC, DE_OSX_1, DE_OSX_2, DE_OSX_3, DE_OSX_4, DE_OSX_5, M(TGH_NUM), - KC_TAB, DE_OSX_Q, DE_OSX_W, DE_OSX_E, DE_OSX_R, DE_OSX_T, KC_LGUI, - KC_LALT, DE_OSX_A, DE_OSX_S, DE_OSX_D, DE_OSX_F, DE_OSX_G, - KC_LSFT, CTL_T(DE_OSX_Y), DE_OSX_X, DE_OSX_C, DE_OSX_V, DE_OSX_B, KC_LALT, - LT(SYMB,DE_OSX_LESS), M(M_DE_OSX_CIRC_CTRLCMD), M(M_DE_OSX_PLUS_CTRLALT), LSFT(KC_LCTRL), M(SMLY_TOG_QUOT), - KC_HOME, KC_END, - KC_PGUP, - KC_BSPC, KC_DEL, KC_PGDN, - //right half - M(TOG_HLD_MDIA), DE_OSX_6, DE_OSX_7, DE_OSX_8, DE_OSX_9, DE_OSX_0, DE_OSX_SS, - KC_RGUI, DE_OSX_Z, DE_OSX_U, DE_OSX_I, DE_OSX_O, DE_OSX_P, DE_OSX_UE, - DE_OSX_H, DE_OSX_J, DE_OSX_K, DE_OSX_L, DE_OSX_OE, ALT_T(DE_OSX_AE), - KC_RALT, DE_OSX_N, DE_OSX_M, DE_OSX_COMM, DE_OSX_DOT, CTL_T(DE_OSX_MINS), KC_RSFT, - MEH_T(DE_OSX_HASH), ALL_T(DE_OSX_ACUT), LGUI(KC_LSFT), LALT(KC_LSFT), LT(SYMB,DE_OSX_PLUS), - KC_LEFT, KC_RIGHT, - KC_UP, - KC_DOWN, KC_ENT, KC_SPC), -/** -* Layer: SYMB -* /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ -* | APPLICATION| F1 | F2 | F3 | F4 | F5 | F5 | | F6 | F6 | F7 | F8 | F9 | F10 | F11 | -* | | | | | | | | | | | | | | | | -* /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ -* | | < | > | ! | ? | | | | | \ | [ | ] | < | > | ! | -* | | | | | | | | | | | | | | | | -* /-----------//-----------//-----------//-----------//-----------//-----------/\-----------\ \-----------\/-----------//-----------//-----------//-----------//-----------//-----------/ -* | | # | $ | \ | / | . | | / | ( | ) | { | } | # | -* | | | | | | | | | | | | | | -* /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ -* | | | < | % | | | ~ | | | | | | ~ | | | | | -* | | | | | | | | | | | | | | | | -* \-----------\\-----------\\-----------\\-----------\\-----------\\-----------\\-----------\ \-----------\\-----------\\-----------\\-----------\\-----------\\-----------\\-----------\ -* -* -* /-----------//-----------//-----------//-----------//-----------/ /-----------//-----------//-----------//-----------//-----------/ -* | | | | | | | ' | DQOT | | Toggle 5 | | -* | | | | | | | | | | | | -* \-----------\\-----------\\-----------\\-----------\/-----------//-----------/ /-----------//-----------/ \-----------\\-----------\\-----------\\-----------\\-----------\ -* | | | | F13 | F12 | -* | | | | | | -* \-----------\/-----------/ /-----------/\-----------\ -* | | | F14 | -* | | | | -* /-----------//-----------//-----------/ /-----------//-----------//-----------/ -* | | DEL | | | F15 | | | -* | | | | | | | | -* \-----------\\-----------\\-----------\ \-----------\\-----------\\-----------\ -* -* -**/ -[SYMB]=KEYMAP( -//left half - KC_APPLICATION, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F5, - KC_TRNS, DE_OSX_LESS, DE_OSX_MORE, DE_OSX_EXLM, DE_OSX_QST, KC_TRNS, KC_TRNS, - KC_TRNS, DE_OSX_HASH, DE_OSX_DLR, DE_OSX_BSLS, DE_OSX_SLSH, KC_DOT, - KC_TRNS, KC_TRNS, DE_OSX_LESS, DE_OSX_PERC, DE_OSX_PIPE, DE_OSX_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 half - KC_F6, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TRNS, DE_OSX_BSLS, DE_OSX_LBRC, DE_OSX_RBRC, DE_OSX_LESS, DE_OSX_MORE, DE_OSX_EXLM, - DE_OSX_SLSH, DE_OSX_LPRN, DE_OSX_RPRN, DE_OSX_LCBR, DE_OSX_RCBR, DE_OSX_HASH, - KC_TRNS, DE_OSX_PIPE, DE_OSX_TILD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - DE_OSX_QUOT, DE_OSX_DQOT, KC_TRNS, M(M_TOGGLE_5), KC_TRNS, - KC_F13, KC_F12, - KC_F14, - KC_F15, KC_TRNS, KC_TRNS), -/** -* Layer: MDIA -* /-----//-----//-----//-----//-----//-----//-----/ /-----//-----//-----//-----//-----//-----//-----/ -* | | | | | | | | | | | | | | | | -* | | | | | | | | | | | | | | | | -* /-----//-----//-----//-----//-----//-----//-----/ /-----//-----//-----//-----//-----//-----//-----/ -* | | | BTN1 | U | BTN2 | U | | | | | | | | | | -* | | | | | | | | | | | | | | | | -* /-----//-----//-----//-----//-----//-----/\-----\ \-----\/-----//-----//-----//-----//-----//-----/ -* | | | L | D | R | D | | | | | | | | -* | | | | | | | | | | | | | | -* /-----//-----//-----//-----//-----//-----//-----/ /-----//-----//-----//-----//-----//-----//-----/ -* | | | L | D | R | BTN3 | | | | | | | | UP | | -* | | | | | | | | | | | | | | | | -* \-----\\-----\\-----\\-----\\-----\\-----\\-----\ \-----\\-----\\-----\\-----\\-----\\-----\\-----\ -* -* -* /-----//-----//-----//-----//-----/ /-----//-----//-----//-----//-----/ -* | | | | | | | | | LEFT | DOWN | RIGHT| -* | | | | | | | | | | | | -* \-----\\-----\\-----\\-----\/-----//-----/ /-----//-----/ \-----\\-----\\-----\\-----\\-----\ -* | | | | MPRV | MNXT | -* | | | | | | -* \-----\/-----/ /-----/\-----\ -* | | | VOLU | -* | | | | -* /-----//-----//-----/ /-----//-----//-----/ -* | | | | | VOLD | MUTE | MPLY | -* | | | | | | | | -* \-----\\-----\\-----\ \-----\\-----\\-----\ -* -* -**/ -[MDIA]=KEYMAP( -//left half - 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 half - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_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_RIGHT, - KC_MPRV, KC_MNXT, - KC_VOLU, - KC_VOLD, KC_MUTE, KC_MPLY), -/** -* Layer: SMLY -* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ -* | | | | | | | | | Typing | Typing | Typing | | | | | -* | | | | | | | | | SM_SMILE| SM_SMIRK| SM_LAUGH| | | | | -* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ -* | | | | | | | | | | Typing | Typing | Typing | | | | -* | | | | | | | | | | SM_FROWN| SM_SAD | SM_CRY | | | | -* /--------//--------//--------//--------//--------//--------/\--------\ \--------\/--------//--------//--------//--------//--------//--------/ -* | | | | | | | | Typing | Typing | | | | | -* | | | | | | | | SM_HEART| SM_KISS | | | | | -* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ -* | | | | | | | | | | | | | | | | -* | | | | | | | | | | | | | | | | -* \--------\\--------\\--------\\--------\\--------\\--------\\--------\ \--------\\--------\\--------\\--------\\--------\\--------\\--------\ -* -* -* /--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------/ -* | | | | | | | | | | | | -* | | | | | | | | | | | | -* \--------\\--------\\--------\\--------\/--------//--------/ /--------//--------/ \--------\\--------\\--------\\--------\\--------\ -* | | | | | | -* | | | | | | -* \--------\/--------/ /--------/\--------\ -* | | | | -* | | | | -* /--------//--------//--------/ /--------//--------//--------/ -* | | | | | | | | -* | | | | | | | | -* \--------\\--------\\--------\ \--------\\--------\\--------\ -* -* -**/ -[SMLY]=KEYMAP( -//left half - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 half - M(SM_SMILE), M(SM_SMIRK), M(SM_LAUGH), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, M(SM_FROWN), M(SM_SAD), M(SM_CRY), KC_TRNS, KC_TRNS, KC_TRNS, - M(SM_HEART), M(SM_KISS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS), -/** -* Layer: NUMB -* /----//----//----//----//----//----//----/ /----//----//----//----//----//----//----/ -* | | | | | | | | | | F6 | F7 | F8 | F9 | F10 | F11 | -* | | | | | | | | | | | | | | | | -* /----//----//----//----//----//----//----/ /----//----//----//----//----//----//----/ -* | | | | UP | | | | | | / | 7 | 8 | 9 | * | F12 | -* | | | | | | | | | | | | | | | | -* /----//----//----//----//----//----/\----\ \----\/----//----//----//----//----//----/ -* | | | LEFT| DOWN| RGHT| | | / | 4 | 5 | 6 | + | - | -* | | | | | | | | | | | | | | -* /----//----//----//----//----//----//----/ /----//----//----//----//----//----//----/ -* | | | | | | | | | | % | 1 | 2 | 3 | | | -* | | | | | | | | | | | | | | | | -* \----\\----\\----\\----\\----\\----\\----\ \----\\----\\----\\----\\----\\----\\----\ -* -* -* /----//----//----//----//----/ /----//----//----//----//----/ -* | | | | | | | 0 | . | , | = | | -* | | | | | | | | | | | | -* \----\\----\\----\\----\/----//----/ /----//----/ \----\\----\\----\\----\\----\ -* | | | | | | -* | | | | | | -* \----\/----/ /----/\----\ -* | | | | -* | | | | -* /----//----//----/ /----//----//----/ -* | | | | | | | | -* | | | | | | | | -* \----\\----\\----\ \----\\----\\----\ -* -* -**/ -[NUMB]=KEYMAP( -//left half - 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 half - KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TRNS, DE_OSX_SLSH, KC_7, KC_8, KC_9, DE_OSX_ASTR, KC_F12, - DE_OSX_SLSH, KC_4, KC_5, KC_6, DE_OSX_PLUS, DE_OSX_MINS, - KC_TRNS, DE_OSX_PERC, KC_1, KC_2, KC_3, KC_TRNS, KC_TRNS, - KC_0, KC_DOT, KC_COMM, DE_OSX_EQL, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS), -/** -* Layer: EGOS -* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ -* | | | | | | | | | | | | | | | | -* | | | | | | | | | | | | | | | | -* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ -* | | | | | | | | | | | | | | | | -* | | | | | | | | | | | | | | | | -* /--------//--------//--------//--------//--------//--------/\--------\ \--------\/--------//--------//--------//--------//--------//--------/ -* | Shift | | | | | | | | | | | | | -* | | | | | | | | | | | | | | -* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ -* | | | | | | | | | | | | | | | | -* | | | | | | | | | | | | | | | | -* \--------\\--------\\--------\\--------\\--------\\--------\\--------\ \--------\\--------\\--------\\--------\\--------\\--------\\--------\ -* -* -* /--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------/ -* | Ctrl | | | | | | | | | Toggle 5| | -* | | | | | | | | | | | | -* \--------\\--------\\--------\\--------\/--------//--------/ /--------//--------/ \--------\\--------\\--------\\--------\\--------\ -* | F1 | F2 | | | | -* | | | | | | -* \--------\/--------/ /--------/\--------\ -* | F3 | | | -* | | | | -* /--------//--------//--------/ /--------//--------//--------/ -* | SPC | Ctrl | F4 | | | | | -* | | | | | | | | -* \--------\\--------\\--------\ \--------\\--------\\--------\ -* -* -**/ -[EGOS]=KEYMAP( -//left half - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_F1, KC_F2, - KC_F3, - KC_SPC, KC_LCTL, KC_F4, - //right half - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, M(M_TOGGLE_5), KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS), -}; - -const uint16_t PROGMEM fn_actions[] = { - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ -static uint16_t start; -switch(id) { -case SMLY_TOG_QUOT: -//Macro: SMLY_TOG_QUOT//----------------------- -if (record->event.pressed) { - start = timer_read(); - layer_state ^= (1<150) { - return MACRO_NONE; - } else { - return MACRO(DOWN(KC_LSFT),TYPE(DE_OSX_HASH),UP(KC_LSFT),END); - } - } - -break; -case M_TOGGLE_5: -//Macro: M_TOGGLE_5//----------------------- - if (record->event.pressed){ - layer_state ^= (1<<5); - layer_state &= (1<<5); - } - -break; -case TGH_NUM: -//Macro: TGH_NUM//----------------------- -if (record->event.pressed){ - start = timer_read(); - layer_state ^=(1< 150) { - layer_state^=(1<event.pressed) { - start = timer_read(); - return MACRO(DOWN(KC_LCTRL),DOWN(KC_LALT),END); - } else { - if (timer_elapsed(start) >150) { - return MACRO(U(LCTRL),U(LALT),END); - } else { - return MACRO(UP(KC_LCTRL),UP(KC_LALT),TYPE(KC_RBRC),END); - } - } - -break; -case SM_KISS: -//Macro: SM_KISS//----------------------- -if (record->event.pressed) { - return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_RBRC),UP(KC_LSFT),END); - } - -break; -case SM_FROWN: -//Macro: SM_FROWN//----------------------- -if (record->event.pressed) { - return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LALT),TYPE(KC_8),UP(KC_LALT),END); - } - -break; -case SM_CRY: -//Macro: SM_CRY//----------------------- -if (record->event.pressed) { - return MACRO(DOWN(KC_LSFT),TYPE(KC_COMM),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_8),UP(KC_LSFT),END); - } - -break; -case SM_SMILE: -//Macro: SM_SMILE//----------------------- -if (record->event.pressed) { - return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_9),UP(KC_LSFT),END); - } - -break; -case SM_SMIRK: -//Macro: SM_SMIRK//----------------------- -if (record->event.pressed) { - return MACRO(DOWN(KC_LSFT),TYPE(KC_COMM),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_9),UP(KC_LSFT),END); - } - -break; -case M_LGUI_SHFT: -//Macro: M_LGUI_SHFT//----------------------- -if (record->event.pressed){ - return MACRO(DOWN(KC_LGUI),DOWN(KC_LSFT),END); - }else{ - return MACRO(UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),U(LGUI),U(LSFT),END); - } - -break; -case SM_HEART: -//Macro: SM_HEART//----------------------- -if (record->event.pressed) { - return MACRO(TYPE(KC_GRV),TYPE(KC_3),END); - } - -break; -case TOG_HLD_MDIA: -//Macro: TOG_HLD_MDIA//----------------------- -if (record->event.pressed){ - start = timer_read(); - layer_state ^=(1< 150) { - layer_state^=(1<event.pressed) { - return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_D),UP(KC_LSFT),END); - } - -break; -case SM_SAD: -//Macro: SM_SAD//----------------------- -if (record->event.pressed) { - return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_8),UP(KC_LSFT),END); - } - -break; -case M_DE_OSX_CIRC_CTRLCMD: -//Macro: M_DE_OSX_CIRC_CTRLCMD//----------------------- -if (record->event.pressed) { - start = timer_read(); - return MACRO(DOWN(KC_LCTRL),DOWN(KC_LGUI),END); - } else { - if (timer_elapsed(start) >150) { - return MACRO(U(LCTRL),U(LGUI),END); - } else { - return MACRO(UP(KC_LCTRL),UP(KC_LGUI),TYPE(KC_NUBS),END); - } - } - -break; -case M_MEH_SH_ACUT: -//Macro: M_MEH_SH_ACUT//----------------------- -if (record->event.pressed) { - start = timer_read(); - return MACRO(DOWN(KC_LCTRL),DOWN(KC_LSFT),DOWN(KC_LALT),END); - } else { - if (timer_elapsed(start) >150) { - return MACRO(U(LCTRL),U(LSFT),U(LALT),END); - } else { - return MACRO(UP(KC_LCTRL),UP(KC_LALT),TYPE(DE_OSX_ACUT),UP(KC_LSFT),END); - } - } - -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; - case NUMB: - - - ergodox_right_led_3_on(); - break; - case EGOS: - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); - ergodox_right_led_3_on(); - break; -default: -// none -break; -} - -}; - diff --git a/keyboards/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png b/keyboards/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png deleted file mode 100644 index 031d874a7..000000000 Binary files a/keyboards/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/osx_de_experimental/readme.md b/keyboards/ergodox_ez/keymaps/osx_de_experimental/readme.md deleted file mode 100644 index e6a101841..000000000 --- a/keyboards/ergodox_ez/keymaps/osx_de_experimental/readme.md +++ /dev/null @@ -1,22 +0,0 @@ - -# Ergodox und Ergodox-EZ experimentelles Layout - -dieses layout ist experimentell und wird im Lufe der Zeit viele Änderungen und Verbesserungen durchlaufen. Falls diese sich als vorteilhaft erweisen, werden sie evtl. auch in das `osx_de` layout übernommen. - - - -# Erstellt Mit Dem ErgodoxLayoutGenerator - -Der ErgodoxLayoutGenerator (ELG) ist ein kleines Werkzeug, welches die Erstellung und Pflege der eigenen Keymaps erleichtern soll. Es ist in java geschrieben und kann [hier](https://github.com/sboesebeck/ErgodoxLayoutGenerator/releases) heruntergeladen werden. Damit das Tool funktioniert sollte das offizielle Oracle JDK in aktueller Version installiert sein. -Die Dokumentation für den ELG kann man [hier](https://boesebeck.name/2016/04/16/ergodoxlayoutgenerator-documentation/) nachlesen (momentan leider nur in Englisch verfügbar). ---------------------------------------------------------------------------------------------------------------------- - -# Ergodox and Ergodox-EZ experimental layout - -This is an experimental layout which will undergo heavy changes over time. If changes prove to be good, they might also move into the `osx_de` layout. - -Created Using the ErgodoxLayoutGenerator - -The ErgodoxLayoutGenerator (ELG) is a little tool, which makes the creation and maintenance of keycaps a lot easier. It was written in Java and can be downloaded [here](https://github.com/sboesebeck/ErgodoxLayoutGenerator/releases). To use the tool, you need to have a current version of Oracles JDK installed. - -The documentation of the ELG can be viewed [here](https://boesebeck.name/2016/04/16/ergodoxlayoutgenerator-documentation/). \ No newline at end of file diff --git a/keyboards/ergodox_ez/keymaps/osx_fr/keymap.c b/keyboards/ergodox_ez/keymaps/osx_fr/keymap.c deleted file mode 100644 index de951666d..000000000 --- a/keyboards/ergodox_ez/keymaps/osx_fr/keymap.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_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/keyboards/ergodox_ez/keymaps/osx_kinesis_pnut/keymap.c b/keyboards/ergodox_ez/keymaps/osx_kinesis_pnut/keymap.c deleted file mode 100644 index 1032be549..000000000 --- a/keyboards/ergodox_ez/keymaps/osx_kinesis_pnut/keymap.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/keyboards/ergodox_ez/keymaps/plover/keymap.c b/keyboards/ergodox_ez/keymaps/plover/keymap.c deleted file mode 100644 index 8a58a37f6..000000000 --- a/keyboards/ergodox_ez/keymaps/plover/keymap.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_TRNS, - 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_TRNS, 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/keyboards/ergodox_ez/keymaps/plums/keymap.c b/keyboards/ergodox_ez/keymaps/plums/keymap.c deleted file mode 100644 index 46eb2e42b..000000000 --- a/keyboards/ergodox_ez/keymaps/plums/keymap.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 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0: Basic layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | F5 | |Hypr+M| 6 | 7 | 8 | 9 | 0 | Mute | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | LGui | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | - * |--------+------+------+------+------+------| SYMB | | MDIA |------+------+------+------+------+--------| - * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |Ca/Ctl| { | ( | | | : | | - | = | ) | } |C`/Ctl| - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | LGA | LAlt | | RAlt | Play | - * ,------|------|------| |------+------+------. - * | | | Home | | PgUp | | | - * |Backsp| Esc |------| |------|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_F5, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, - KC_LGUI, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, TG(SYMB), - F(0), KC_LCBR, KC_LPRN,KC_PIPE,KC_COLN, - LGUI(KC_LALT), KC_LALT, - KC_HOME, - KC_BSPC, KC_ESC, KC_END, - // right hand - HYPR(KC_M), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MUTE, - KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - TG(MDIA), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_MINS, KC_EQL, KC_RPRN, KC_RCBR, F(1), - KC_RALT, KC_MPLY, - KC_PGUP, - KC_PGDN, KC_ENT, KC_SPC - ), -/* Keymap 1: Symbol Layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | ! | @ | { | } | | | | | | | | | | | F12 | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | # | $ | ( | ) | ` |------| |------| Left | Down | Up | Right| | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | % | ^ | [ | ] | ~ | | | | | | | | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, - KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | |------| |------|MsLeft|MsDown| MsUp |MsRght| | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |VolUp |VolDn | Prev | Next | | | LClk | RClk | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_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_VOLD, KC_MPRV, KC_MNXT, 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_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_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_WBAK -), -}; - -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_MACRO_TAP(0), // FN0 - Ctrl + a (For screen/tmux) - [1] = ACTION_MACRO_TAP(1) // FN1 - Ctrl + ` (For quake style console) -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // this is the function signature -- just copy/paste it into your keymap file as it is. -{ - switch(id) { - case 0: - if (record->event.pressed) { - if (record->tap.count) { - if (record->tap.interrupted) { - record->tap.count = 0; - // hold press action - register_code(KC_LCTL); - } else { - // tap press action - return MACRO( D(LCTL), T(A), U(LCTL), END ); - } - } else { - // hold press action - register_code(KC_LCTL); - } - } else { - if (record->tap.count) { - // tap release action - } else { - // hold release action - unregister_code(KC_LCTL); - } - record->tap.count = 0; - } - break; - case 1: - if (record->event.pressed) { - if (record->tap.count) { - if (record->tap.interrupted) { - record->tap.count = 0; - // hold press action - register_code(KC_RCTL); - } else { - // tap press action - return MACRO( DOWN(KC_RCTL), TYPE(KC_GRV), UP(KC_RCTL), END ); - } - } else { - // hold press action - register_code(KC_RCTL); - } - } else { - if (record->tap.count) { - // tap release action - } else { - // hold release action - unregister_code(KC_RCTL); - } - record->tap.count = 0; - } - 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/keyboards/ergodox_ez/keymaps/plums/plums.png b/keyboards/ergodox_ez/keymaps/plums/plums.png deleted file mode 100644 index 2f127c4ca..000000000 Binary files a/keyboards/ergodox_ez/keymaps/plums/plums.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/plums/readme.md b/keyboards/ergodox_ez/keymaps/plums/readme.md deleted file mode 100644 index b72329eef..000000000 --- a/keyboards/ergodox_ez/keymaps/plums/readme.md +++ /dev/null @@ -1,11 +0,0 @@ -# ErgoDox EZ Plums Configuration - -## Changelog - -* Apr 23, 2016 (v0.1.0): - * Shortcut for iTerm2 quake style dropdown (Ctrl+`) - * Shortcut for screen/tmux (Ctrl+a) - * Shortcut for shush (Hyper+m) - * Combo modifier for LGUI + LALT - -![Plums](plums.png) diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/keymap.c b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/keymap.c deleted file mode 100644 index a66971bef..000000000 --- a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/keymap.c +++ /dev/null @@ -1,46 +0,0 @@ -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" - -#define BASE 0 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [BASE] = KEYMAP( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F5, - KC_TAB, KC_Q, KC_W, KC_D, KC_F, KC_K, KC_BSLS, - CTL_T(KC_ESC), KC_A, KC_S, KC_E, KC_T, KC_G, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, - KC_F1, KC_F2, KC_F3, KC_F4, KC_LGUI, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLD, KC_MUTE, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLU, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_BSPC, CTL_T(KC_ESC), KC_LALT, - // - /*-*/ KC_F6, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, - /*-*/ KC_NO, KC_J, KC_U, KC_R, KC_L, KC_SCLN, KC_MINS, - /*-*/ /*-*/ KC_Y, KC_N, KC_I, KC_O, KC_H, KC_ENT, - /*-*/ KC_RBRC, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - /*-*/ /*-*/ /*-*/ KC_RGUI, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, - KC_MPLY, KC_MNXT, - KC_MPRV, - KC_RALT, KC_QUOT, KC_SPC - ) -}; - -const uint16_t PROGMEM fn_actions[] = { -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - return MACRO_NONE; -}; - -// Runs just one time when the keyboard initializes. -void matrix_init_user(void) { - ergodox_board_led_off(); - ergodox_right_led_1_off(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); -}; - -// Runs constantly in the background, in a loop. -void matrix_scan_user(void) { -}; diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/readme.md b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/readme.md deleted file mode 100644 index 80475ab21..000000000 --- a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/readme.md +++ /dev/null @@ -1,28 +0,0 @@ -# Roman's Layout - -There is only one layer based on [Norman layout](https://normanlayout.info/). - -Looking for multiple-layer layouts? - -- [Symbols, arrows, plover, HJKL arrows](../romanzolotarev-norman-plover-osx-hjkl/) -- [Same with IJKL arrows](../romanzolotarev-norman-plover-osx/) - -[![keyboard-layout](romanzolotarev-norman-osx.png)](http://www.keyboard-layout-editor.com/#/gists/9e89d54f1ea6eeeb7dab1b2d19d28195) - -## Functional Keys - -- Tap `F1` to mute microphone via [Shush](http://mizage.com/shush/). -- Tap `F2` to copy screenshot to the clipboard. -- Hold `SHIFT` and tap `F2` to save screenshot as a file. -- Tap `F3`, `F4`, `F5`, `F6` to resize a window via [Divvy](http://mizage.com/divvy/). - -## CTRL/ESC - -CTRL and ESC are frequently used in Vim. - -- Tap `CTRL/ESC` to send `ESC`. -- Hold `CTRL/ESC` to use as `CTRL`. - -## Activate N-rollover - -- Hold left `SHIFT` and right `SHIRT` and then tap `N`. diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.png b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.png deleted file mode 100644 index 4b9433be2..000000000 Binary files a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c deleted file mode 100644 index 7c9f67381..000000000 --- a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c +++ /dev/null @@ -1,134 +0,0 @@ -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" - -#define BASE 0 -#define SYMB 1 -#define PLVR 2 -#define ARRW 3 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [BASE] = KEYMAP( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F14, - KC_TAB, KC_Q, KC_W, KC_D, KC_F, KC_K, TG(PLVR), - CTL_T(KC_ESC), KC_A, KC_S, KC_E, KC_T, KC_G, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, - KC_F1, KC_F2, KC_F3, KC_LALT, KC_LGUI, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLD, KC_MUTE, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLU, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_BSPC, CTL_T(KC_ESC), KC_FN1, - // - /*-*/ KC_F15, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, - /*-*/ KC_BSLS, KC_J, KC_U, KC_R, KC_L, KC_SCLN, KC_MINS, - /*-*/ /*-*/ KC_Y, KC_N, KC_I, KC_O, KC_H, KC_ENT, - /*-*/ KC_RBRC, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - /*-*/ /*-*/ /*-*/ KC_RGUI, KC_RALT, KC_F4, KC_F5, KC_F6, - KC_MPLY, KC_MNXT, - KC_MPRV, - KC_FN3, KC_QUOT, KC_SPC - ), - [SYMB] = KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, - KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, - /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, - // - /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - /*-*/ KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, - /*-*/ /*-*/ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS, - /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS - ), - [PLVR] = KEYMAP( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, - KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, - 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_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, - /*-*/ /*-*/ /*-*/ /*-*/ KC_C, KC_V, KC_NO, - // - /*-*/ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - /*-*/ KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO, - /*-*/ /*-*/ 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_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_NO, KC_N, KC_M - ), - [ARRW] = 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_MS_L, KC_MS_U, KC_MS_D, KC_MS_R, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, - /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, - // - /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - /*-*/ /*-*/ KC_LEFT, KC_DOWN, KC_UP, 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, KC_TRNS - ), -}; - -const uint16_t PROGMEM fn_actions[] = { - [SYMB] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Symbols Layer - [PLVR] = ACTION_LAYER_TAP_TOGGLE(PLVR), // FN2 - Momentary Plover Layer - [ARRW] = ACTION_LAYER_TAP_TOGGLE(ARRW), // FN3 - Momentary Arrows Layer -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } 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 PLVR: - ergodox_right_led_2_on(); - break; - case ARRW: - ergodox_right_led_3_on(); - break; - default: - break; - } -}; diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md deleted file mode 100644 index 16cebd091..000000000 --- a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md +++ /dev/null @@ -1,50 +0,0 @@ -# Roman's Layout - -There are four layers: - -- **BASE** is [Norman layout](https://normanlayout.info/). -- **SYMB** for numbers and symbols. -- **PLVR** is optimized for [Plover](http://www.openstenoproject.org). -- **ARRW** for navigation (same fingers for arrows as HJKL on QWERTY). - -Looking for IJKL arrows? [Here we -go](../romanzolotarev-norman-plover-osx/). - -[![keyboard-layout](romanzolotarev-norman-plover-osx-hjkl.png)](http://www.keyboard-layout-editor.com/#/gists/56ffedceb0668dda47c993e7271563e0) - -## Switching - -- Tap `SYMB` to toggle **SYMB**. -- Tap `ARRW` to toggle **ARRW**. -- Hold `SYMB` (or `ARRW`) to activate **SYMB** (or **ARRW**) while holding. -- Tap `PLVR` to toggle **PLVR**. - -## LEDs - -- Red: SYMB is on. -- Green: PLVR is on. -- Blue: ARRW is on. - -## Functional Keys - -- Tap `F1` to mute microphone via [Shush](http://mizage.com/shush/). -- Tap `F2` to copy screenshot to the clipboard. -- Hold `SHIFT` and tap `F2` to save screenshot as a file. -- Tap `F3`, `F4`, `F5`, `F6` to resize a window via [Divvy](http://mizage.com/divvy/). -- Tap `F14`, `F15` to adjust display brightness. - -**IMPORTANT**: If you have another keyboard connected via Bluetooth, then -`F14` and `F15` will not work. Turn off that Bluetooth keyboard. Re-plug -you ErgoDox. Enjoy! - -## CTRL/ESC - -Both of those keys are frequently used in Vim. - -- Tap `CTRL/ESC` to send `ESC`. -- Hold `CTRL/ESC` to use as `CTRL`. - -## Activate N-rollover - -- While in **BASE** hold left `SHIFT` and right `SHIRT` and then tap `N`. -- Then you can activate **PLVR** and use ErgoDox EZ for steno. diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.png b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.png deleted file mode 100644 index cdc535f79..000000000 Binary files a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/keymap.c b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/keymap.c deleted file mode 100644 index 9971b834c..000000000 --- a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/keymap.c +++ /dev/null @@ -1,134 +0,0 @@ -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" - -#define BASE 0 -#define SYMB 1 -#define PLVR 2 -#define ARRW 3 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [BASE] = KEYMAP( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F14, - KC_TAB, KC_Q, KC_W, KC_D, KC_F, KC_K, TG(PLVR), - CTL_T(KC_ESC), KC_A, KC_S, KC_E, KC_T, KC_G, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, - KC_F1, KC_F2, KC_F3, KC_LALT, KC_LGUI, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLD, KC_MUTE, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLU, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_BSPC, CTL_T(KC_ESC), KC_FN1, - // - /*-*/ KC_F15, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, - /*-*/ KC_BSLS, KC_J, KC_U, KC_R, KC_L, KC_SCLN, KC_MINS, - /*-*/ /*-*/ KC_Y, KC_N, KC_I, KC_O, KC_H, KC_ENT, - /*-*/ KC_RBRC, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - /*-*/ /*-*/ /*-*/ KC_RGUI, KC_RALT, KC_F4, KC_F5, KC_F6, - KC_MPLY, KC_MNXT, - KC_MPRV, - KC_FN3, KC_QUOT, KC_SPC - ), - [SYMB] = KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, - KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, - /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, - // - /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - /*-*/ KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, - /*-*/ /*-*/ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS, - /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS - ), - [PLVR] = KEYMAP( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, - KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, - 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_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, - /*-*/ /*-*/ /*-*/ /*-*/ KC_C, KC_V, KC_NO, - // - /*-*/ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - /*-*/ KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO, - /*-*/ /*-*/ 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_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_NO, KC_N, KC_M - ), - [ARRW] = 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_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_TRNS, KC_TRNS, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, - /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_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_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, KC_TRNS - ), -}; - -const uint16_t PROGMEM fn_actions[] = { - [SYMB] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Symbols Layer - [PLVR] = ACTION_LAYER_TAP_TOGGLE(PLVR), // FN2 - Momentary Plover Layer - [ARRW] = ACTION_LAYER_TAP_TOGGLE(ARRW), // FN3 - Momentary Arrows Layer -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } 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 PLVR: - ergodox_right_led_2_on(); - break; - case ARRW: - ergodox_right_led_3_on(); - break; - default: - break; - } -}; diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/readme.md b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/readme.md deleted file mode 100644 index 804c52a76..000000000 --- a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/readme.md +++ /dev/null @@ -1,50 +0,0 @@ -# Roman's Layout - -There are four layers: - -- **BASE** is [Norman layout](https://normanlayout.info/). -- **SYMB** for numbers and symbols. -- **PLVR** is optimized for [Plover](http://www.openstenoproject.org). -- **ARRW** for navigation (same fingers for arrows as IJKL on QWERTY). - -Looking for HJKL arrows? [Here we -go](../romanzolotarev-norman-plover-osx-hjkl/). - -[![keyboard-layout](romanzolotarev-norman-plover-osx.png)](http://www.keyboard-layout-editor.com/#/gists/8ebcb701ecb763944417) - -## Switching - -- Tap `SYMB` to toggle **SYMB**. -- Tap `ARRW` to toggle **ARRW**. -- Hold `SYMB` (or `ARRW`) to activate **SYMB** (or **ARRW**) while holding. -- Tap `PLVR` to toggle **PLVR**. - -## LEDs - -- Red: SYMB is on. -- Green: PLVR is on. -- Blue: ARRW is on. - -## Functional Keys - -- Tap `F1` to mute microphone via [Shush](http://mizage.com/shush/). -- Tap `F2` to copy screenshot to the clipboard. -- Hold `SHIFT` and tap `F2` to save screenshot as a file. -- Tap `F3`, `F4`, `F5`, `F6` to resize a window via [Divvy](http://mizage.com/divvy/). -- Tap `F14`, `F15` to adjust display brightness. - -**IMPORTANT**: If you have another keyboard connected via Bluetooth, then -`F14` and `F15` will not work. Turn off that Bluetooth keyboard. Re-plug -you ErgoDox. Enjoy! - -## CTRL/ESC - -Both of those keys are frequently used in Vim. - -- Tap `CTRL/ESC` to send `ESC`. -- Hold `CTRL/ESC` to use as `CTRL`. - -## Activate N-rollover - -- While in **BASE** hold left `SHIFT` and right `SHIRT` and then tap `N`. -- Then you can activate **PLVR** and use ErgoDox EZ for steno. diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/romanzolotarev-norman-plover-osx.png b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/romanzolotarev-norman-plover-osx.png deleted file mode 100644 index 10b0752be..000000000 Binary files a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/romanzolotarev-norman-plover-osx.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/keymap.c b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/keymap.c deleted file mode 100644 index dedac694e..000000000 --- a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/keymap.c +++ /dev/null @@ -1,74 +0,0 @@ -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" - -#define BASE 0 -#define QWRT 1 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [BASE] = KEYMAP( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F5, - KC_TAB, KC_Q, KC_W, KC_D, KC_F, KC_K, KC_BSLS, - KC_LCTL, KC_A, KC_S, KC_E, KC_T, KC_G, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, - KC_F1, KC_F2, KC_F3, KC_F4, KC_LGUI, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLD, KC_MUTE, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLU, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_BSPC, CTL_T(KC_ESC), KC_LALT, - // - /*-*/ KC_F6, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, - /*-*/ TG(QWRT), KC_J, KC_U, KC_R, KC_L, KC_SCLN, KC_MINS, - /*-*/ /*-*/ KC_Y, KC_N, KC_I, KC_O, KC_H, KC_ENT, - /*-*/ KC_RBRC, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - /*-*/ /*-*/ /*-*/ KC_RGUI, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, - KC_MPLY, KC_MNXT, - KC_MPRV, - KC_RALT, KC_QUOT, KC_SPC - ), - [QWRT] = KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_E, KC_R, KC_T, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_D, KC_F, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, - /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, - // - /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - /*-*/ KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TRNS, - /*-*/ /*-*/ KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_TRNS, - /*-*/ KC_TRNS, KC_N, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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[] = { -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - 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 QWRT: - ergodox_right_led_1_on(); - break; - default: - break; - } -}; diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/readme.md b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/readme.md deleted file mode 100644 index 0e78c130b..000000000 --- a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/readme.md +++ /dev/null @@ -1,34 +0,0 @@ -# Roman's Layout - -There are two layers: - -- **BASE** is [Norman layout](https://normanlayout.info/). -- **QWRT** is QWERTY. - -[![keyboard-layout](romanzolotarev-norman-qwerty-osx.png)](http://www.keyboard-layout-editor.com/#/gists/3b236f450da474dc506a5a80390c3cc7) - -## Switching - -- Tap `QWRT` to toggle **QWRT**. - -## LEDs - -- Red: QWRT is on. - -## Functional Keys - -- Tap `F1` to mute microphone via [Shush](http://mizage.com/shush/). -- Tap `F2` to copy screenshot to the clipboard. -- Hold `SHIFT` and tap `F2` to save screenshot as a file. -- Tap `F3`, `F4`, `F5`, `F6` to resize a window via [Divvy](http://mizage.com/divvy/). - -## CTRL/ESC - -Both CTRL and ESC are frequently used in Vim. - -- Tap `CTRL/ESC` to send `ESC`. -- Hold `CTRL/ESC` to use as `CTRL`. - -## Activate N-rollover - -- Hold left `SHIFT` and right `SHIRT` and then tap `N`. diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.png b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.png deleted file mode 100644 index 34762ecb7..000000000 Binary files a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/sneako/keymap.c b/keyboards/ergodox_ez/keymaps/sneako/keymap.c deleted file mode 100644 index 0c6863102..000000000 --- a/keyboards/ergodox_ez/keymaps/sneako/keymap.c +++ /dev/null @@ -1,187 +0,0 @@ -// Based on `default_osx` -// Replace left Bksp with Ctrl/Esc -// Remove the Ctrl from Z and / -#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 | \ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * |Ctrl/Esc| A | S | D | F | G |------| |------| H | J | K | L |; / L2| LGui | - * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| - * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | 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), - 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), - 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),GUI_T(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_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/keyboards/ergodox_ez/keymaps/sneako/readme.md b/keyboards/ergodox_ez/keymaps/sneako/readme.md deleted file mode 100644 index 8dd110ee6..000000000 --- a/keyboards/ergodox_ez/keymaps/sneako/readme.md +++ /dev/null @@ -1,6 +0,0 @@ -# ergodox_keymap - -Based on the default Ergodox EZ firmware - -Replaced the left side Bksp with a Crtl/Esc, this really helps in vim. -Removed the Ctrls from the Z and / keys. diff --git a/keyboards/ergodox_ez/keymaps/software_neo2/keymap.c b/keyboards/ergodox_ez/keymaps/software_neo2/keymap.c deleted file mode 100644 index 2eaba0d7d..000000000 --- a/keyboards/ergodox_ez/keymaps/software_neo2/keymap.c +++ /dev/null @@ -1,139 +0,0 @@ -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" -#include "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/keyboards/ergodox_ez/keymaps/supercoder/config_user.h b/keyboards/ergodox_ez/keymaps/supercoder/config_user.h deleted file mode 100644 index 8da138372..000000000 --- a/keyboards/ergodox_ez/keymaps/supercoder/config_user.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H 1 - -#include "config.h" - -#undef LOCKING_SUPPORT_ENABLE -#undef LOCKING_RESYNC_ENABLE - -#endif diff --git a/keyboards/ergodox_ez/keymaps/supercoder/images/layout.png b/keyboards/ergodox_ez/keymaps/supercoder/images/layout.png deleted file mode 100644 index c72958c6e..000000000 Binary files a/keyboards/ergodox_ez/keymaps/supercoder/images/layout.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/supercoder/images/supercoder_2000.jpg b/keyboards/ergodox_ez/keymaps/supercoder/images/supercoder_2000.jpg deleted file mode 100644 index d690eaf02..000000000 Binary files a/keyboards/ergodox_ez/keymaps/supercoder/images/supercoder_2000.jpg and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/supercoder/keymap.c b/keyboards/ergodox_ez/keymaps/supercoder/keymap.c deleted file mode 100644 index ca21d30fd..000000000 --- a/keyboards/ergodox_ez/keymaps/supercoder/keymap.c +++ /dev/null @@ -1,75 +0,0 @@ -/* - * SuperCoder 2000 layout - */ - -#include "ergodox_ez.h" - -/* Layers */ - -#define SC2K 0 // default layer - -/* The Keymap */ - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - /* Keymap 0: Base Layer - * - * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 1 | 1 | 1 | 1 | - * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 1 | 1 | 1 | 1 | - * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | 0 | 0 | 0 | 0 | 0 | 0 |------| |------| 1 | 1 | 1 | 1 | 1 | 1 | - * |-----------+------+------+------+------+------| 0 | | 1 |------+------+------+------+------+-----------| - * | 0 | 0 | 0 | 0 | 0 | 0 | | | | 1 | 1 | 1 | 1 | 1 | 1 | - * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 1 | 1 | - * `-----------------------------------' `-----------------------------------' - * ,-------------. ,-------------. - * | DONE | DONE | | DONE | DONE | - * ,------|------|------| |------+------+------. - * | | | DONE | | DONE | | | - * | DONE | DONE |------| |------| DONE | DONE | - * | | | DONE | | DONE | | | - * `--------------------' `--------------------' - */ -[SC2K] = KEYMAP( - // left hand - KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 -,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 -,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 -,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 -,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 - - ,KC_ENT ,KC_ENT - ,KC_ENT - ,KC_ENT ,KC_ENT ,KC_ENT - - // right hand - ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 - ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 - ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 - ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 - ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 - - ,KC_ENT ,KC_ENT - ,KC_ENT - ,KC_ENT ,KC_ENT ,KC_ENT - ), -}; - -const uint16_t PROGMEM fn_actions[] = { -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - 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) { -} diff --git a/keyboards/ergodox_ez/keymaps/supercoder/makefile.mk b/keyboards/ergodox_ez/keymaps/supercoder/makefile.mk deleted file mode 100644 index 41a195d9c..000000000 --- a/keyboards/ergodox_ez/keymaps/supercoder/makefile.mk +++ /dev/null @@ -1,6 +0,0 @@ -BOOTMAGIC_ENABLE=no -COMMAND_ENABLE=no -SLEEP_LED_ENABLE=no -UNICODE_ENABLE=no -MOUSEKEY_ENABLE=no -EXTRAKEY_ENABLE=no diff --git a/keyboards/ergodox_ez/keymaps/supercoder/readme.md b/keyboards/ergodox_ez/keymaps/supercoder/readme.md deleted file mode 100644 index 97bf7f583..000000000 --- a/keyboards/ergodox_ez/keymaps/supercoder/readme.md +++ /dev/null @@ -1,29 +0,0 @@ -SuperCoder 2000 layout for the ErgoDox -================================================== - -![SuperCoder 2000](images/supercoder_2000.jpg) - -Ever found yourself in need of entering binary codes rapidly? Ever wanted to use -all ten fingers to do so? Ever felt your SuperCoder 2000 too limiting, by only -having three buttons? We heard you! With this layout for the ErgoDox EZ, you -will be able to tap in binary at an unparalleled speed and accuracy! Efficiency -never seen before! - -Behold the Ultimate SuperCoder 2000 layout! - -![SuperCoder layout](images/layout.png) - -### To use it... - -To use this piece of top quality engineering, you can either -[download the hex file][hex] we have prepared for you, or you can compile it on -your own: - - [hex]: https://raw.githubusercontent.com/algernon/ergodox-supercoder/master/supercoder.hex - -``` -$ git clone https://github.com/jackhumbert/qmk_firmware.git -$ cd qmk_firmware/keyboards/ergodox_ez -$ git clone https://github.com/algernon/ergodox-supercoder.git keymaps/supercoder -$ make KEYMAP=supercoder -``` diff --git a/keyboards/ergodox_ez/keymaps/techtomas/keymap.c b/keyboards/ergodox_ez/keymaps/techtomas/keymap.c deleted file mode 100644 index 1ff6618b9..000000000 --- a/keyboards/ergodox_ez/keymaps/techtomas/keymap.c +++ /dev/null @@ -1,231 +0,0 @@ -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" - -#define BASE 0 // default layer -#define SYMB 1 // symbols -#define APP 2 // app layer -#define CNTL 3 // control layer - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0: Basic layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | L2/` | 1 | 2 | 3 | 4 | 5 |CmdSpc| | - | 6 | 7 | 8 | 9 | 0 | = | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | MEH/Tab| Q | W | E | R | T | [ | | ] | Y | U | I | O | P | MEH/\ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * |Hyp/Esc | A | S | D | F | G |------| |------| H | J | K | L | L2/; | Hyp/' | - * |--------+------+------+------+------+------| Tab | | STab |------+------+------+------+------+--------| - * | LShift | Z | X | C | V | B | | | | N | M | , | . | L2// | RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |L1/Lft|L3/Rht| LCtl | LAlt | LGui | | Rgui | Up | Dn | L3 | L1 | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | LCtl | LGui | |AltGui|ShfGui| - * ,-------|------|------| |------+--------+------. - * | | |L1/Hom| |L2/PUp| | | - * | Backsp|Delete|------| |------| Enter | Space | - * | | |L3/End| |L1/PDn| | | - * `--------------------' `-----------------------' - */ -// 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 - LT(APP,KC_GRV), KC_1, KC_2, KC_3, KC_4, KC_5, LGUI(KC_SPC), - MEH_T(KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, - ALL_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, KC_TAB, - LT(SYMB,KC_LEFT), LT(CNTL,KC_RIGHT), KC_LCTL, KC_LALT, KC_LGUI, - KC_LCTL, KC_LGUI, - LT(SYMB,KC_HOME), - KC_BSPC, KC_DELETE, LT(CNTL,KC_END), - // right hand - KC_MINS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, - KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, MEH_T(KC_BSLS), - KC_H, KC_J, KC_K, KC_L, LT(APP,KC_SCLN), ALL_T(KC_QUOT), - S(KC_TAB), KC_N, KC_M, KC_COMM, KC_DOT, LT(APP,KC_SLSH), KC_RSFT, - KC_RGUI, KC_UP, KC_DOWN, KC_FN3, KC_FN1, - LALT(KC_LGUI), S(KC_LGUI), - LT(APP,KC_PGUP), - LT(SYMB,KC_PGDN), KC_ENT, KC_SPC - ), -/* Keymap 1: Symbol Layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | | Tab | F6 | F7 | F8 | F9 | F10 | F11 | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | ! | @ | { | } | | | < | | > | : | 7 | 8 | 9 | / | F12 | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | # | $ | ( | ) | ` |------| |------| ; | 4 | 5 | 6 | * | | - * |--------+------+------+------+------+------| F14 | | F15 |------+------+------+------+------+--------| - * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | - | Entr | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | 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,S(KC_COMM), - 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_F14, - 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_TAB, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - S(KC_DOT), KC_COLN, KC_7, KC_8, KC_9, KC_BSLS, KC_F12, - KC_SCLN, KC_4, KC_5, KC_6, KC_ASTR, KC_TRNS, - KC_F15, KC_AMPR, KC_1, KC_2, KC_3, KC_MINS, KC_ENT, - KC_0, KC_DOT, KC_EQL, KC_PLUS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), -/* Keymap 2: App Layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | CmdQ | CmdW | | | | Stab | | Play | Prev | Next | | |PrtSc | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | |------| |------| VolDn|VolUp | | | | | - * |--------+------+------+------+------+------| | | Mute |------+------+------+------+------+--------| - * | | CmdZ | CmdX | CmdC | CmdY | CtrlC| | | | | | | | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// Control -[APP] = KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, LGUI(KC_Q), LGUI(KC_W), KC_TRNS, KC_TRNS, KC_TRNS, S(KC_TAB), - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), LCTL(KC_C), 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_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, - KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 3: Control Layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | Pwr | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | MsUp | | | | | | | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | |MsLeft|MsDown|MsRght| Lclk |------| |------| Lft | Down | Up | Right| | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | Rclk | | | | | | | | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | Shift| | | Home | End | - * ,------|------|------| |------+------+------. - * | | | LAtl | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// Control -[CNTL] = KEYMAP( - KC_PWR, 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_BTN1, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN2, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_LSFT, KC_TRNS, - KC_LALT, - 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_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_HOME, KC_END, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_TAP_TOGGLE(SYMB), - [2] = ACTION_LAYER_TAP_TOGGLE(APP), - [3] = ACTION_LAYER_TAP_TOGGLE(CNTL) // 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; - case 3: - ergodox_right_led_3_on(); - break; - default: - // none - break; - } - -}; diff --git a/keyboards/ergodox_ez/keymaps/techtomas/readme.md b/keyboards/ergodox_ez/keymaps/techtomas/readme.md deleted file mode 100644 index 36e0591a8..000000000 --- a/keyboards/ergodox_ez/keymaps/techtomas/readme.md +++ /dev/null @@ -1,57 +0,0 @@ -# Techtomas Configuration - -## Base Layer - -The base layer is a merge of what I liked with the default layout and the ordinary layout. The thumb cluster is more like the Kinesis advantage and the top row of the cluster is convient for use on the mac. - -* The Caps Lock postion handles [Hyper/Esc](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) -* The Tab key toggles MEH. -* The top vertical mods on the left and right are [ and ]. -* The bottom vertical mods on the left and right are tab and shift+tab -* The HYPER and MEH key are made in the same location on the right side of the board as well. Using Keyboard Maestro for OS X makes one-handed shortcuts very easy. -* Layer switching is focused around the thumb clusters plus some additional locations for convience. - -## Symbol Layer -The symbol layer can be tap/toggled with the bottom right key and also toggled on the thumb clusters. - -The bottom two vertical mods are set to F14 and F15 which is the default for changing screen brightness on the mac - -## App Layer -The app layer is used to control media playback and also some application shortcuts (OS X Focused). -It can be toggled on the left board in the top left corner (tilde/grave) or using your pinky on the right side of the board using either ; or /. -There is one additional toggle on the right thumb cluster for quick access to play and mute key combos. - -### Current App shortcuts defined -* Q = CMD+Q -* W = CMD+W -* Z = CMD+Z -* X = CMD+X -* C = CMD+C -* V = CMD+V -* B = CTRL+C -* P = Print Screen - -## Control Layer -The control layer is meant to help easily navigate and select text. It can also be stacked ontop of the Symbol layer when needed. - -The right arrow key and End key toggle the control layer on the left board. There is also a tap toggle for the layer in the same position on the right side of the board. - -On the left board you have mouse control with left & right click in the location of the G and B keys. -On the right board you have vim-style arrow keys using hjkl - -The left thumb cluster moves shift and alt within easy reach while holding the toggle (end). So far I've found this convient to navigate and skip around text when using the hjkl arrow keys. I found that it was easy to get the alt key stuck on depending on what key you released first so I added the PREVENT_STUCK_MODIFIERS to the config.h to help with that. - -## Changelog - -* May 4th, 2016 (v1.2): - * Moved layer toggles around to match my habbits of typing - * Enabled Prevent Stuck Modifers in my config.h (L3 + Alt on cluster would get stuck) - * Changed media layer to be more like an app layer with some quick shortcuts (mac centric) - * Moved around the base layer arrow keys so mod keys were more accesible - -* Apr 29, 2016 (V1.1): - * Added F14 and F15 to symbol layer - * Added control layer toggle to A key. - -* Apr 28, 2016 (V1.0): - * Modified config based on the default layout plus inspiration from the ordinary layout diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/keymap.c b/keyboards/ergodox_ez/keymaps/teckinesis/keymap.c deleted file mode 100644 index ec6ceb96b..000000000 --- a/keyboards/ergodox_ez/keymaps/teckinesis/keymap.c +++ /dev/null @@ -1,455 +0,0 @@ -#include "ergodox_ez.h" -#include "led.h" -#include "debug.h" -#include "action_layer.h" -#include "action_util.h" -#include "mousekey.h" - -#define BASE 0 // default layer -#define SYMB 1 // symbols layer -#define MDIA 2 // media layer -#define SPEC 3 // special layer - -#define LCaps 10 // left caps-shift key -#define LSymb 11 // left symbol-shift key -#define LMdia 12 // left media-shift key -#define LSpec 13 // left special-shift key -#define RCaps 14 // right caps-shift key -#define RSymb 15 // right symbol-shift key -#define RMdia 16 // right media-shift key -#define RSpec 17 // right special-shift key - -#define MUL 20 // mouse up left -#define MUR 21 // mouse up right -#define MDL 22 // mouse down left -#define MDR 23 // mouse down right - -/* - * teckinesis layout for ErgoDox (EZ) - * - * Modifications from The Ordinary Layout v4 by Will Wolff-Myren willwm@gmail.com - * Modifications from default by Nicholas Keene ergodoxez@nicholaskeene.com - * - * No rights reserved. This software is in the public domain. - * Credit me if you are friendly but if you're a jerk don't bother. - * - * Details: readme.md - * https://github.com/willwm/qmk_firmware/tree/master/keyboard/ergodox_ez/keymaps/teckinesis - */ - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/******* Base Layer ******************************************************************************************************** - * - * ,------------------------------------------------------. ,------------------------------------------------------. - * | Special =+ | 1 | 2 | 3 | 4 | 5 | ESC | | ` | 6 | 7 | 8 | 9 | 0 | -_ Special | - * |------------+------+------+------+------+-------------| |------+------+------+------+------+------+------------| - * | Media Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \| Media | - * |------------+------+------+------+------+------| | | |------+------+------+------+------+------------| - * | Symbol | A | S | D | F | G |------| |------| H | J | K | L | ; | '" Symbol | - * |------------+------+------+------+------+------|Shift | | Tab |------+------+------+------+------+------------| - * | Capitals | Z | X | C | V | B | -Tab | | | N | M | , | . | / | Capitals | - * `------------+------+------+------+------+-------------' `-------------+------+------+------+------+------------' - * | LCtrl |Meh/\ |Hypr//| LAlt | LGui | | RGui | RAlt |Hypr/[|Meh/] | RCtrl | - * `-----------------------------------' `-----------------------------------' - * ,-------------. ,-------------. - * | Home | End | | Left | Right| - * ,------|------|------| |------+------+------. - * | | | PgUp | | Up | | | - * |Backsp| Del |------| |------| Enter| Space| - * | | | PgDn | | Down | | | - * `--------------------' `--------------------' - */ -[BASE] = KEYMAP( -// left hand - F(LSpec),KC_1,KC_2,KC_3 ,KC_4 ,KC_5 ,KC_ESC -,F(LMdia) ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC -,M(LSymb) ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G -,M(LCaps) ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,LSFT(KC_TAB) -,KC_LCTL,MEH_T(KC_BSLS),ALL_T(KC_SLSH),KC_LALT,KC_LGUI - ,KC_HOME,KC_END - ,KC_PGUP - ,KC_BSPC,KC_DEL ,KC_PGDN - // right hand - ,KC_GRV ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,F(RSpec) - ,KC_RBRC ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,F(RMdia) - ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,F(RSymb) - ,KC_TAB ,KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH ,M(RCaps) - ,KC_RGUI,KC_RALT,ALL_T(KC_LBRC),MEH_T(KC_RBRC),KC_RCTL - ,KC_LEFT ,KC_RGHT - ,KC_UP - ,KC_DOWN ,KC_ENT ,KC_SPC - ), - -/******* Symbols Layer ***************************************************************************************************** - * - * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | Esc | | - | F6 | F7 | F8 | F9 | F10 | | - * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | | ! | @ | { | } | & | < | | > | | | 7 | 8 | 9 | / | | - * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | | # | $ | ( | ) | ` |------| |------| / | 4 | 5 | 6 | * | | - * |-----------+------+------+------+------+------| Tab | | Shift|------+------+------+------+------+-----------| - * | | % | ^ | [ | ] | ~ | | | -Tab| \ | 1 | 2 | 3 | - | | - * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * | LCtrl | Meh |Hyper | LAlt | LGui | |RGui/0|RAlt/.|Hypr/=|Meh/+ |RCtrl/Ent| - * `-----------------------------------' `-------------------------------------' - * ,-------------. ,-------------. - * | Left | Right| | Home | End | - * ,------|------|------| |------+------+------. - * | | | Up | | PgUp | | | - * |Space |Enter |------| |------|BackSp| Del | - * | | | Down | | PgDn | | | - * `--------------------' `--------------------' - */ -[SYMB] = KEYMAP( -// left hand - KC_TRNS ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_ESC -,KC_TRNS ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_AMPR ,LSFT(KC_COMM) -,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_TAB -,KC_LCTL ,KC_MEH ,KC_HYPR ,KC_LALT ,KC_LGUI - ,KC_LEFT ,KC_RGHT - ,KC_UP - ,KC_SPC ,KC_ENT ,KC_DOWN - // right hand - ,KC_MINS ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_TRNS - ,LSFT(KC_DOT),KC_PIPE ,KC_7 ,KC_8 ,KC_9 ,KC_SLSH ,KC_TRNS - ,KC_SLSH ,KC_4 ,KC_5 ,KC_6 ,KC_ASTR ,KC_TRNS - ,LSFT(KC_TAB),KC_BSLS ,KC_1 ,KC_2 ,KC_3 ,KC_MINS ,KC_TRNS - ,GUI_T(KC_0),ALT_T(KC_DOT),ALL_T(KC_EQL),MEH_T(KC_PLUS),CTL_T(KC_ENT) - ,KC_HOME ,KC_END - ,KC_PGUP - ,KC_PGDN ,KC_BSPC ,KC_DEL -), - -/******* Media Layer ******************************************************************************************************* - * - * ,---------------------------------------------------------------. ,---------------------------------------------------------------. - * | | F11 | F12 | F13 | F14 | F15 | Esc | | | F16 | F17 | F18 | F19 | F20 | | - * |------+---------+---------+---------+---------+----------------| |------+---------+---------+---------+---------+---------+------| - * | | |MouseUpLf|Mouse Up |MouseUpRg|Volume Up|Scroll| |Scroll|PrintScrn| Home | Up | PgUp | | | - * |------+---------+---------+---------+---------+---------| Up | | Up |---------+---------+---------+---------+---------+------| - * | | |MouseLeft|MouseDown|MouseRght|Volume Dn|------| |------| Num Lock| Left | Down | Right | | | - * |------+---------+---------+---------+---------+---------|Scroll| |Scroll|---------+---------+---------+---------+---------+------| - * | | |MouseDnLf|MouseDown|MouseDnRg| Mute | Down | | Down | | End | Down | PgDn | | | - * `------+---------+---------+---------+---------+----------------' `----------------+---------+---------+---------+---------+------' - * |LCtrl| Meh | MClick | LClick | R Click| |Cmd/Insrt|Optn/Del | Hyper | Meh |RCtrl| - * `---------------------------------------------' `---------------------------------------------' - * ,-------------. ,-------------. - * | Stop |Refrsh| | Prev | Next | - * ,------|------|------| |------+------+------. - * |Brwser|Brwser|Search| |VolUp | | | - * |Back | Fwd |------| |------| Stop | Play-| - * | | | Home | |VolDn | | Pause| - * `--------------------' `--------------------' - */ -[MDIA] = KEYMAP( -// left hand - KC_TRNS ,KC_F11 ,KC_F12 ,KC_F13 ,KC_F14 ,KC_F15 ,KC_ESC -,KC_TRNS ,KC_NO ,M(MUL) ,KC_MS_U ,M(MUR) ,KC_VOLU ,KC_WH_U -,KC_TRNS ,KC_NO ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_VOLD -,KC_TRNS ,KC_NO ,M(MDL) ,KC_MS_D ,M(MDR) ,KC_MUTE ,KC_WH_D -,KC_LCTL ,KC_MEH ,KC_BTN3 ,KC_BTN1 ,KC_BTN2 - ,KC_WSTP ,KC_WREF - ,KC_WSCH - ,KC_WBAK ,KC_NO ,KC_WHOM - // right hand - ,KC_NO ,KC_F16 ,KC_F17 ,KC_F18 ,KC_F19 ,KC_F20 ,KC_TRNS - ,KC_WH_U ,KC_PSCR ,KC_HOME ,KC_UP ,KC_PGUP ,KC_NO ,KC_TRNS - ,KC_NLCK ,KC_LEFT ,KC_DOWN ,KC_RIGHT,KC_NO ,KC_TRNS - ,KC_WH_D ,KC_NO ,KC_END ,KC_DOWN ,KC_PGDN ,KC_NO ,KC_TRNS - ,GUI_T(KC_INS),ALT_T(KC_DEL),KC_HYPR ,KC_MEH ,KC_RCTL - ,KC_MPRV ,KC_MNXT - ,KC_VOLU - ,KC_VOLD ,KC_MSTP ,KC_MPLY -), - -/******* Special Layer ***************************************************************************************************** - * - * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | | Esc | | | | | | | | | | | | Bspc | | - * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | | | | | | | | | | | | | | | | - * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | | | | | | |------| |------| | | | | | | - * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | | | | | | | | | | | | | | | RShift | - * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -[SPEC] = KEYMAP( -// left hand - KC_TRNS ,KC_ESC ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,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_BSPC ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_RSFT - ,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[] = { - // the faux shift keys are implemented as macro taps - [LCaps] = ACTION_MACRO_TAP(LCaps) - ,[LSymb] = ACTION_MACRO_TAP(LSymb) - ,[LMdia] = ACTION_MACRO_TAP(LMdia) - ,[LSpec] = ACTION_MACRO_TAP(LSpec) - ,[RCaps] = ACTION_MACRO_TAP(RCaps) - ,[RSymb] = ACTION_MACRO_TAP(RSymb) - ,[RMdia] = ACTION_MACRO_TAP(RMdia) - ,[RSpec] = ACTION_MACRO_TAP(RSpec) -}; - -uint16_t caps_shift = 0; -uint16_t symb_shift = 0; -uint16_t mdia_shift = 0; - -bool symb_lock = false; -bool mdia_lock = false; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - // There are two shift keys for each layer so we increment a layer_shift var when one - // is pressed and decrement when one is released. If both are pressed at the same time - // then the layer is locked (or unlocked). The shift counts are bound between 0 and 2 - // only because sometimes rapid pressing led to irregular events; this way the states - // are self healing during use. - - case LCaps: // both caps-shift keys trigger Left Shift - case RCaps: // so they don't interfere with the magic combo - if (record->event.pressed && !record->tap.count) { - if(++caps_shift > 2) caps_shift = 2; - if(caps_shift == 2) { - register_code(KC_CAPS); - unregister_code(KC_CAPS); - } else if(caps_shift == 1) { - register_code(KC_LSFT); - } - } else { - if(--caps_shift < 0) caps_shift = 0; - if(caps_shift == 0) unregister_code(KC_LSFT); - } - break; - - case LSymb: - if (record->event.pressed) { - if(++symb_shift > 2) symb_shift = 2; - if(symb_shift == 2) { - symb_lock = !symb_lock; - } else if(symb_shift == 1) { - layer_on(SYMB); - } - } else { - if(--symb_shift < 0) symb_shift = 0; - if((symb_shift == 0) && (!symb_lock)) layer_off(SYMB); - } - break; - - case LMdia: - if (record->event.pressed) { - if (record->tap.count && (!mdia_shift) && (!mdia_lock)) { - register_code(KC_TAB); - } else { - if(++mdia_shift > 2) mdia_shift = 2; - if(mdia_shift == 2) { - mdia_lock = !mdia_lock; - } else if(mdia_shift == 1) { - layer_on(MDIA); - } - } - } else { - if(record->tap.count && (!mdia_shift) && (!mdia_lock)) { - unregister_code(KC_TAB); - } else { - if(--mdia_shift < 0) mdia_shift = 0; - if((!mdia_shift) && (!mdia_lock)) layer_off(MDIA); - } - } - break; - - case LSpec: - if (record->event.pressed) { - if (record->tap.count && !record->tap.interrupted) { - register_code(KC_EQL); - } else { - layer_on(SPEC); - } - } else { - if(record->tap.count && !record->tap.interrupted) { - unregister_code(KC_EQL); - } else { - layer_off(SPEC); - } - } - break; - - case RSymb: - if (record->event.pressed) { - if (record->tap.count && (!symb_shift) && (!symb_lock)) { - register_code(KC_QUOT); - } else { - if(++symb_shift > 2) symb_shift = 2; - if(symb_shift == 2) { - symb_lock = !symb_lock; - } else if(symb_shift == 1) { - layer_on(SYMB); - } - } - } else { - if(record->tap.count && symb_shift == 0) { - unregister_code(KC_QUOT); - } else { - if(--symb_shift < 0) symb_shift = 0; - if((!symb_shift) && (!symb_lock)) layer_off(SYMB); - } - } - break; - - case RMdia: - if (record->event.pressed) { - if (record->tap.count && (!mdia_shift) && (!mdia_lock)) { - register_code(KC_BSLS); - } else { - if(++mdia_shift > 2) mdia_shift = 2; - if(mdia_shift == 2) { - mdia_lock = !mdia_lock; - } else if(mdia_shift == 1) { - layer_on(MDIA); - } - } - } else { - if(record->tap.count && (!mdia_shift) && (!mdia_lock)) { - unregister_code(KC_BSLS); - } else { - if(--mdia_shift < 0) mdia_shift = 0; - if((!mdia_shift) && (!mdia_lock)) layer_off(MDIA); - } - } - break; - - case RSpec: - if (record->event.pressed) { - if (record->tap.count && !record->tap.interrupted) { - register_code(KC_MINS); - } else { - layer_on(SPEC); - } - } else { - if(record->tap.count && !record->tap.interrupted) { - unregister_code(KC_MINS); - } else { - layer_off(SPEC); - } - } - break; - - // mouse diagonals - - case MUL: // mouse up left - if (record->event.pressed) { - mousekey_on(KC_MS_UP); - mousekey_on(KC_MS_LEFT); - mousekey_send(); - } else { - mousekey_off(KC_MS_UP); - mousekey_off(KC_MS_LEFT); - mousekey_send(); - } - break; - - case MUR: // mouse up right - if (record->event.pressed) { - mousekey_on(KC_MS_UP); - mousekey_on(KC_MS_RIGHT); - mousekey_send(); - } else { - mousekey_off(KC_MS_UP); - mousekey_off(KC_MS_RIGHT); - mousekey_send(); - } - break; - - case MDL: // mouse down left - if (record->event.pressed) { - mousekey_on(KC_MS_DOWN); - mousekey_on(KC_MS_LEFT); - mousekey_send(); - } else { - mousekey_off(KC_MS_DOWN); - mousekey_off(KC_MS_LEFT); - mousekey_send(); - } - break; - - case MDR: // mouse down right - if (record->event.pressed) { - mousekey_on(KC_MS_DOWN); - mousekey_on(KC_MS_RIGHT); - mousekey_send(); - } else { - mousekey_off(KC_MS_DOWN); - mousekey_off(KC_MS_RIGHT); - mousekey_send(); - } - break; - - default: - // none - 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) { - // shift or caps lock turns on red light - if(caps_shift || (keyboard_report->mods & MOD_BIT(KC_RSFT)) || (host_keyboard_leds() & (1<\n\n\n\nShift", - { - "c": "#cccccc" - }, - "Q", - { - "x": 14.5 - }, - "P", - { - "c": "#2277ff", - "f": 3, - "w": 1.5 - }, - "|\n\\\nMedia\n\n\n\n\nShift" - ], - [ - { - "y": -0.375, - "x": 3.5, - "c": "#cccccc" - }, - "D", - { - "x": 10.5 - }, - "K" - ], - [ - { - "y": -0.875, - "x": 2.5 - }, - "S", - { - "x": 1 - }, - "F", - { - "x": 8.5 - }, - "J", - { - "x": 1 - }, - "L" - ], - [ - { - "y": -0.875, - "x": 5.5 - }, - "G", - { - "x": 6.5 - }, - "H" - ], - [ - { - "y": -0.875, - "c": "#2277ff", - "w": 1.5 - }, - "Symbols\n\n\n\n\n\nShift", - { - "c": "#cccccc" - }, - "A", - { - "x": 14.5 - }, - ":\n;", - { - "c": "#2277ff", - "f": 3, - "w": 1.5 - }, - "\"\n'\nSymbols\n\n\n\n\nShift" - ], - [ - { - "y": -0.625, - "x": 6.5, - "c": "#54d6de", - "fa": [ - 0, - 0, - 4, - 1 - ], - "h": 1.5 - }, - "< Tab\n\n\nShift Tab", - { - "x": 4.5, - "h": 1.5 - }, - "Tab >\n\n\nTab" - ], - [ - { - "y": -0.75, - "x": 3.5, - "c": "#cccccc" - }, - "C", - { - "x": 10.5 - }, - "<\n," - ], - [ - { - "y": -0.875, - "x": 2.5 - }, - "X", - { - "x": 1 - }, - "V", - { - "x": 8.5 - }, - "M", - { - "x": 1 - }, - ">\n." - ], - [ - { - "y": -0.875, - "x": 5.5 - }, - "B", - { - "x": 6.5 - }, - "N" - ], - [ - { - "y": -0.875, - "c": "#2277ff", - "w": 1.5 - }, - "Capitals\n\n\n\n\n\nShift", - { - "c": "#cccccc" - }, - "Z", - { - "x": 14.5 - }, - "?\n/", - { - "c": "#2277ff", - "f": 3, - "w": 1.5 - }, - "\n\nCapitals\n\n\n\n\nShift" - ], - [ - { - "y": -0.375, - "x": 3.5, - "c": "#77aaff", - "fa": [ - 5, - 0, - 4, - 1 - ] - }, - "\n\n\nLAlt", - { - "x": 10.5 - }, - "\n\n\nRAlt" - ], - [ - { - "y": -0.875, - "x": 2.5, - "fa": [ - 5, - 1 - ] - }, - "\nHyper\n?\n/", - { - "x": 1, - "fa": [ - 5, - 1, - 0, - 1 - ] - }, - "\n\n\nSuper", - { - "x": 8.5 - }, - "\n\n\nSuper", - { - "x": 1, - "fa": [ - 0, - 0, - 0, - 1 - ] - }, - "{\n[\n\nHyper" - ], - [ - { - "y": -0.75, - "x": 0.5 - }, - "Ctrl\n\n\nLCtrl", - { - "f2": 1 - }, - "\nMeh\n|\n\\", - { - "x": 14.5, - "fa": [ - 0, - 0, - 1, - 1 - ] - }, - "}\n]\n\nMeh", - "Ctrl\n\n\nRCtrl" - ], - [ - { - "r": 30, - "rx": 6.5, - "ry": 4.25, - "y": -1, - "x": 1, - "c": "#54d6de" - }, - "Home", - "End" - ], - [ - { - "h": 2 - }, - "< Del\n\n\nBackspace", - { - "h": 2 - }, - "Del >\n\n\nDelete", - "Page\n\n\n\n\n\nUp" - ], - [ - { - "x": 2 - }, - "Page\n\n\n\n\n\nDown" - ], - [ - { - "r": -30, - "rx": 13, - "y": -1, - "x": -3 - }, - "Left", - "Right" - ], - [ - { - "x": -3 - }, - "Up", - { - "h": 2 - }, - "Enter", - { - "h": 2 - }, - "Space" - ], - [ - { - "x": -3 - }, - "Down" - ] -] \ No newline at end of file diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-base.png b/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-base.png deleted file mode 100644 index 7c4584e9f..000000000 Binary files a/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-base.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-media.json b/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-media.json deleted file mode 100644 index 65fe394e8..000000000 --- a/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-media.json +++ /dev/null @@ -1,436 +0,0 @@ -[ - { - "name": "teckinesis (MediaLayer)", - "author": "Will Wolff-Myren", - "switchMount": "cherry", - "switchBrand": "gateron", - "switchType": "KS-3-Tea" - }, - [ - { - "x": 3.5, - "c": "#99de2a" - }, - "F13", - { - "x": 10.5 - }, - "F18" - ], - [ - { - "y": -0.875, - "x": 2.5 - }, - "F12", - { - "x": 1 - }, - "F14", - { - "x": 8.5 - }, - "F17", - { - "x": 1 - }, - "F19" - ], - [ - { - "y": -0.875, - "x": 5.5 - }, - "F15", - { - "c": "#ff4444" - }, - "Esc", - { - "x": 4.5 - }, - "Esc", - { - "c": "#99de2a" - }, - "F16" - ], - [ - { - "y": -0.875, - "x": 1.5 - }, - "F11", - { - "x": 14.5 - }, - "F20" - ], - [ - { - "y": -0.995, - "c": "#000000", - "t": "#ff0000", - "w": 1.5 - }, - "Media\n\n\n\n\n\nShift", - { - "x": 16.5, - "w": 1.5 - }, - "\n\nMedia\n\n\n\n\nShift" - ], - [ - { - "y": -0.3799999999999999, - "x": 3.5, - "c": "#ff8500", - "t": "#000000" - }, - "Mouse\n\n\n\n\n\nUp", - { - "x": 10.5 - }, - "Cursor\n\n\n\n\n\nUp" - ], - [ - { - "y": -0.875, - "x": 2.5 - }, - "Mouse\n\n\n\n\n\nUpLeft", - { - "x": 1 - }, - "Mouse\n\n\n\n\n\nUpRgt", - { - "x": 8.5, - "c": "#ffb063" - }, - "Home", - { - "x": 1 - }, - "Page\n\n\n\n\n\nUp" - ], - [ - { - "y": -0.875, - "x": 5.5, - "c": "#e6e067" - }, - "Vol\n\n\n\n\n\nUp", - { - "c": "#ffb063", - "h": 1.5 - }, - "Scroll\n\n\n\n\n\nUp", - { - "x": 4.5, - "h": 1.5 - }, - "Scroll\n\n\n\n\n\nUp", - { - "c": "#e6e067" - }, - "Print\n\n\n\n\n\nScreen" - ], - [ - { - "y": -0.875, - "x": 1.5, - "c": "#737373", - "a": 7 - }, - "", - { - "x": 14.5 - }, - "" - ], - [ - { - "y": -0.9950000000000001, - "c": "#2277ff", - "a": 4, - "w": 1.5 - }, - "Symbols\n\n\n\n\n\nShift", - { - "x": 16.5, - "w": 1.5 - }, - "\n\nSymbols\n\n\n\n\nShift" - ], - [ - { - "y": -0.3799999999999999, - "x": 3.5, - "c": "#ff8500" - }, - "Mouse\n\n\n\n\n\nDown", - { - "x": 10.5 - }, - "Cursor\n\n\n\n\n\nDown" - ], - [ - { - "y": -0.875, - "x": 2.5 - }, - "Mouse\n\n\n\n\n\nLeft", - { - "x": 1 - }, - "Mouse\n\n\n\n\n\nRight", - { - "x": 8.5 - }, - "Cursor\n\n\n\n\n\nLeft", - { - "x": 1 - }, - "Cursor\n\n\n\n\n\nRight" - ], - [ - { - "y": -0.875, - "x": 5.5, - "c": "#e6e067" - }, - "Vol\n\n\n\n\n\nDown", - { - "x": 6.5 - }, - "Num\n\n\n\n\n\nLock" - ], - [ - { - "y": -0.875, - "x": 1.5, - "c": "#737373", - "a": 7 - }, - "", - { - "x": 14.5 - }, - "" - ], - [ - { - "y": -0.9950000000000001, - "c": "#2277ff", - "a": 4, - "w": 1.5 - }, - "Capitals\n\n\n\n\n\nShift", - { - "x": 16.5, - "w": 1.5 - }, - "\n\nCapitals\n\n\n\n\nShift" - ], - [ - { - "y": -0.6299999999999999, - "x": 6.5, - "c": "#ffb063", - "h": 1.5 - }, - "Scroll\n\n\n\n\n\nDown", - { - "x": 4.5, - "h": 1.5 - }, - "Scroll\n\n\n\n\n\nDown" - ], - [ - { - "y": -0.75, - "x": 3.5, - "c": "#ff8500" - }, - "Mouse\n\n\n\n\n\nDown", - { - "x": 10.5 - }, - "Cursor\n\n\n\n\n\nDown" - ], - [ - { - "y": -0.875, - "x": 2.5 - }, - "Mouse\n\n\n\n\n\nDnLeft", - { - "x": 1 - }, - "Mouse\n\n\n\n\n\nDnRgt", - { - "x": 8.5, - "c": "#ffb063" - }, - "End", - { - "x": 1 - }, - "Page\n\n\n\n\n\nDown" - ], - [ - { - "y": -0.875, - "x": 5.5, - "c": "#e6e067" - }, - "Mute", - { - "x": 6.5, - "c": "#737373", - "a": 7 - }, - "" - ], - [ - { - "y": -0.875, - "x": 1.5 - }, - "", - { - "x": 14.5 - }, - "" - ], - [ - { - "y": -0.9950000000000001, - "c": "#2277ff", - "a": 4, - "w": 1.5 - }, - "Ctrl", - { - "x": 16.5, - "w": 1.5 - }, - "Ctrl" - ], - [ - { - "y": -0.3799999999999999, - "x": 3.5, - "c": "#ff8500" - }, - "Middle\n\n\n\n\n\nClick", - { - "x": 10.5, - "c": "#ffb063", - "fa": [ - 0, - 0, - 0, - 1 - ] - }, - "Delete\n\n\nOption" - ], - [ - { - "y": -0.875, - "x": 2.5, - "c": "#ff8500" - }, - "Left\n\n\n\n\n\nClick", - { - "x": 1 - }, - "Right\n\n\n\n\n\nClick", - { - "x": 8.5, - "c": "#ffb063" - }, - "Insert\n\n\nCmd", - { - "x": 1, - "c": "#77aaff" - }, - "Hyper" - ], - [ - { - "y": -0.75, - "x": 0.5 - }, - "Alt\n\n\nLAlt", - "Meh", - { - "x": 14.5 - }, - "Meh", - "Alt\n\n\nRAlt" - ], - [ - { - "r": 30, - "rx": 6.5, - "ry": 4.25, - "y": -1, - "x": 1, - "c": "#ccbb00" - }, - "Stop\n\n\nBrowser", - "Reload\n\n\nBrowser" - ], - [ - { - "h": 2 - }, - "< Web\n\n\nBrowser", - { - "h": 2 - }, - "Web >\n\n\nBrowser", - "Search\n\n\nBrowser" - ], - [ - { - "x": 2 - }, - "Home\n\n\nBrowser" - ], - [ - { - "r": -30, - "rx": 13, - "y": -1, - "x": -3 - }, - "Prev\n\n\nAudio\n\n\nTrack", - "Next\n\n\nAudio\n\n\nTrack" - ], - [ - { - "x": -3, - "c": "#e6e067" - }, - "Vol\n\n\n\n\n\nUp", - { - "c": "#ccbb00", - "h": 2 - }, - "Stop\n\n\nAudio", - { - "h": 2 - }, - "Play\n\n\nAudio\n\n\nPause" - ], - [ - { - "x": -3, - "c": "#e6e067" - }, - "Vol\n\n\n\n\n\nDown" - ] -] \ No newline at end of file diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-media.png b/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-media.png deleted file mode 100644 index cc51605f9..000000000 Binary files a/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-media.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-symbol.json b/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-symbol.json deleted file mode 100644 index 439d0128e..000000000 --- a/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-symbol.json +++ /dev/null @@ -1,422 +0,0 @@ -[ - { - "name": "teckinesis (Symbol Layer)", - "author": "Will Wolff-Myren", - "switchMount": "cherry", - "switchBrand": "gateron", - "switchType": "KS-3-Tea" - }, - [ - { - "x": 3.5, - "c": "#99de2a" - }, - "F3", - { - "x": 10.5 - }, - "F8" - ], - [ - { - "y": -0.875, - "x": 2.5 - }, - "F2", - { - "x": 1 - }, - "F4", - { - "x": 8.5 - }, - "F7", - { - "x": 1 - }, - "F9" - ], - [ - { - "y": -0.875, - "x": 5.5 - }, - "F5", - { - "c": "#ff4444" - }, - "Esc", - { - "x": 4.5, - "c": "#bbddbb" - }, - "_\n\n\n\n\n\n-", - { - "c": "#99de2a" - }, - "F6" - ], - [ - { - "y": -0.875, - "c": "#2277ff", - "w": 1.5 - }, - "Special\n\n\n\n\n\nShift", - { - "c": "#99de2a" - }, - "F1", - { - "x": 14.5 - }, - "F10", - { - "c": "#2277ff", - "w": 1.5 - }, - "\n\nSpecial\n\n\n\n\nShift" - ], - [ - { - "y": -0.375, - "x": 3.5, - "c": "#bbddbb" - }, - "{", - { - "x": 10.5, - "c": "#89b087" - }, - "8" - ], - [ - { - "y": -0.875, - "x": 2.5, - "c": "#bbddbb" - }, - "@", - { - "x": 1 - }, - "}", - { - "x": 8.5, - "c": "#89b087" - }, - "7", - { - "x": 1 - }, - "9" - ], - [ - { - "y": -0.875, - "x": 5.5, - "c": "#bbddbb" - }, - "&", - { - "h": 1.5 - }, - "<", - { - "x": 4.5, - "h": 1.5 - }, - ">", - "|" - ], - [ - { - "y": -0.875, - "c": "#2277ff", - "w": 1.5 - }, - "Media\n\n\n\n\n\nShift", - { - "c": "#bbddbb" - }, - "!", - { - "x": 14.5, - "c": "#89b087" - }, - "/", - { - "c": "#2277ff", - "w": 1.5 - }, - "\n\nMedia\n\n\n\n\nShift" - ], - [ - { - "y": -0.375, - "x": 3.5, - "c": "#bbddbb" - }, - "(", - { - "x": 10.5, - "c": "#89b087" - }, - "5" - ], - [ - { - "y": -0.875, - "x": 2.5, - "c": "#bbddbb" - }, - "$", - { - "x": 1 - }, - ")", - { - "x": 8.5, - "c": "#89b087" - }, - "4", - { - "x": 1 - }, - "6" - ], - [ - { - "y": -0.875, - "x": 5.5, - "c": "#bbddbb" - }, - "`", - { - "x": 6.5 - }, - "/" - ], - [ - { - "y": -0.875, - "c": "#000000", - "t": "#ff0000", - "w": 1.5 - }, - "Symbols\n\n\n\n\n\nShift", - { - "c": "#bbddbb", - "t": "#000000" - }, - "#", - { - "x": 14.5, - "c": "#89b087" - }, - "*", - { - "c": "#000000", - "t": "#ff0000", - "w": 1.5 - }, - "\n\nSymbols\n\n\n\n\nShift" - ], - [ - { - "y": -0.625, - "x": 6.5, - "c": "#54d6de", - "t": "#000000", - "fa": [ - 0, - 0, - 0, - 1 - ], - "h": 1.5 - }, - "Tab >\n\n\nTab", - { - "x": 4.5, - "h": 1.5 - }, - "< Tab\n\n\nShift Tab" - ], - [ - { - "y": -0.75, - "x": 3.5, - "c": "#bbddbb" - }, - "[", - { - "x": 10.5, - "c": "#89b087" - }, - "2" - ], - [ - { - "y": -0.875, - "x": 2.5, - "c": "#bbddbb" - }, - "^", - { - "x": 1 - }, - "]", - { - "x": 8.5, - "c": "#89b087" - }, - "1", - { - "x": 1 - }, - "3" - ], - [ - { - "y": -0.875, - "x": 5.5, - "c": "#bbddbb" - }, - "~", - { - "x": 6.5 - }, - "\\" - ], - [ - { - "y": -0.875, - "c": "#2277ff", - "w": 1.5 - }, - "Capitals\n\n\n\n\n\nShift", - { - "c": "#bbddbb" - }, - "%", - { - "x": 14.5, - "c": "#89b087" - }, - "-", - { - "c": "#2277ff", - "w": 1.5 - }, - "\n\nCapitals\n\n\n\n\nShift" - ], - [ - { - "y": -0.375, - "x": 3.5, - "c": "#77aaff" - }, - "\n\n\nLAlt", - { - "x": 10.5, - "c": "#89b087" - }, - ".\n\n\nOption" - ], - [ - { - "y": -0.875, - "x": 2.5, - "c": "#77aaff" - }, - "Hyper", - { - "x": 1 - }, - "\n\n\nSuper", - { - "x": 8.5, - "c": "#89b087" - }, - "0\n\n\nCmd", - { - "x": 1 - }, - "=\n\n\nHyper" - ], - [ - { - "y": -0.75, - "x": 0.5, - "c": "#77aaff" - }, - "Ctrl\n\n\nLCtrl", - "Meh", - { - "x": 14.5, - "c": "#89b087" - }, - "+\n\n\nMeh", - "Enter\n\n\nCtrl" - ], - [ - { - "r": 30, - "rx": 6.5, - "ry": 4.25, - "y": -1, - "x": 1, - "c": "#54d6de" - }, - "Left", - "Right" - ], - [ - { - "h": 2 - }, - "Space", - { - "h": 2 - }, - "Enter", - "Up" - ], - [ - { - "x": 2 - }, - "Down" - ], - [ - { - "r": -30, - "rx": 13, - "y": -1, - "x": -3 - }, - "Home", - "End" - ], - [ - { - "x": -3 - }, - "Page\n\n\n\n\n\nUp", - { - "h": 2 - }, - "< Del\n\n\nBackspace", - { - "h": 2 - }, - "Del >\n\n\nDelete" - ], - [ - { - "x": -3 - }, - "Page\n\n\n\n\n\nDown" - ] -] \ No newline at end of file diff --git a/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-symbol.png b/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-symbol.png deleted file mode 100644 index 7ca86cf47..000000000 Binary files a/keyboards/ergodox_ez/keymaps/teckinesis/teckinesis-symbol.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/tkuichooseyou/README.md b/keyboards/ergodox_ez/keymaps/tkuichooseyou/README.md deleted file mode 100644 index ab02fac2c..000000000 --- a/keyboards/ergodox_ez/keymaps/tkuichooseyou/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# Based on Default OSX -I'm a vim and OSX user - -- Moved Hyper and Meh up, replaced with CMD - - Because I'm used to having symmetrical CMD keys on both hands -- Changed left delete to Tab to match OSX -- Changed left Backspace to CTRL/ESC for vim -- Changed top left and top right arrow to `CMD+{` and `CMD+}` - - Useful for switching tabs in Safari, Xcode, etc. -- Remove the Ctrl from Z and / -- Remove CMD from right quote -- Changed right Alt to Delete - diff --git a/keyboards/ergodox_ez/keymaps/tkuichooseyou/compiled.hex b/keyboards/ergodox_ez/keymaps/tkuichooseyou/compiled.hex deleted file mode 100644 index a8cf4527a..000000000 --- a/keyboards/ergodox_ez/keymaps/tkuichooseyou/compiled.hex +++ /dev/null @@ -1,1137 +0,0 @@ -:100000000C947B020C94C2020C94C2020C94C202A7 -:100010000C94C2020C94C2020C94C2020C94C20250 -:100020000C94C2020C94C2020C94F70D0C94C90EED -:100030000C94C2020C94C2020C94C2020C94C20230 -:100040000C94C2020C9486210C94C2020C94C2023D -:100050000C94C2020C94681C0C94C2020C94C20250 -:100060000C94C2020C94C2020C94C2020C94C20200 -:100070000C94C2020C94C2020C94C2020C94C202F0 -:100080000C94C2020C94C2020C94C2020C94C202E0 -:100090000C94C2020C94C2020C94C2020C94C202D0 -:1000A0000C94C2020C94C2020C94C202360F580F78 -:1000B0004610580F46109D0FC00F461015102810FF -:1000C000F712F712261326135C137C13AD14AD142C -:1000D0008713AD14371437149E14AD14AD14A71440 -:1000E0004414441444144414441444144414441450 -:1000F0004414441444144414441444144414441440 -:10010000561463146A1471147B140000F0A12E00BD -:100110002B002961E100354100001E00140004009D -:100120001D0034004D001F001A0016001B00E104E2 -:100130002A00200008000700060050002C002100C3 -:100140001500090019004F004A00220017000A009C -:100150000500000065642F0A006F0000E300000046 -:10016000E300300A00670000E30000004C002300B9 -:100170001C000B00110000002961240018000D0074 -:10018000100052004B0025000C000E0036005100FC -:100190002800260012000F0037002F002B00270038 -:1001A00013003342380030004E002D00310034007F -:1001B000E500C10000000100010001000100010094 -:1001C00000003A001E0220022202010001003B0052 -:1001D0001F0221022302010001003C002F0226021F -:1001E0002F00010001003D00300227023000010015 -:1001F00001003E003102350035020000010001001F -:1002000001000000010000000100010001000000E9 -:100210000100000001003F005200510024020000D4 -:1002200001004000240021001E00010001004100E7 -:10023000250022001F003700010042002600230095 -:10024000200027000100430025022E0231002E006D -:100250000100440045000100010001000000010010 -:100260000100010001000100000001000100010087 -:1002700001000100010001000100F2000100010085 -:1002800001000100F000F1000100F4000100010094 -:100290000100F3000100F500010001000100010070 -:1002A0000100000001000100010000000100000049 -:1002B0000100010001000000010000000100010038 -:1002C0000100010001000000010001000100010027 -:1002D0000100A9000100010001000100AC00AA001A -:1002E000B600010001000100AB00A8000100010000 -:1002F0000100010001000100010001000100AE0049 -:1003000001000100000016034500720067006F0045 -:1003100044006F007800200045005A0000001603DA -:100320004500720067006F0044006F0078002000F5 -:1003300045005A0000000403090409026D0004018D -:1003400000A0FA09040000010301010009211101C4 -:1003500000012240000705810308000A090401008A -:100360000103010200092111010001224D000705CE -:10037000820308000A0904020001030000000921A9 -:10038000110100012236000705830308000A090451 -:1003900003000103000000092111010001223900BE -:1003A000070584031000011201100100000008ED90 -:1003B000FE071301000102000105010906A1010564 -:1003C0000719E029E7150025019508750181020547 -:1003D000081901290595057501910295017503918B -:1003E0000105071900297715002501957875018108 -:1003F00002C005010980A101850216010026B7008F -:100400001A01002AB700751095018100C0050C097A -:1004100001A1018503160100269C021A01002A9CF5 -:1004200002751095018100C005010902A1010901B1 -:10043000A10005091901290515002501950575017A -:10044000810295017503810105010930093115818A -:10045000257F95027508810609381581257F95014C -:1004600075088106050C0A38021581257F950175EE -:10047000088106C0C005010906A101050719E02988 -:10048000E715002501950875018102950175088120 -:100490000105081901290595057501910295017558 -:1004A0000391010507190029FF150026FF00950695 -:1004B00075088100C000000000000000000000007E -:1004C000010204060A0F17202C3A4A5D71879DB37A -:1004D000C7DAE9F5FCFFFCF5E9DAC7B39D87715D82 -:1004E0004A3A2C20170F0A060402010000000000FF -:1004F00000000000000011241FBECFEFDAE0DEBFD5 -:10050000CDBF04B603FE27C0809101029091020284 -:10051000A0910302B09104028730904BA740B04BEA -:10052000D1F4109201021092020210920302109272 -:10053000040214BE84B7877F84BF0FB6F894A895D1 -:1005400080916000886180936000109260000FBE0F -:10055000E0E0FFE3099511E0A0E0B1E0E6EBF6E4AE -:1005600002C005900D92A433B107D9F712E0A4E3BD -:10057000B1E001C01D92A130B107E1F70E943C0B30 -:100580000C9459230C9400001092B9008AE08093D7 -:10059000B800089594EA9093BC009091BC0097FF36 -:1005A000FCCF9091B900987F983021F0903111F0F4 -:1005B00081E008958093BB0084E88093BC00809123 -:1005C000BC0087FFFCCF8091B900887F883111F093 -:1005D000803471F780E0089584E98093BC008091B5 -:1005E000BC0084FDFCCF08958093BB0084E8809319 -:1005F000BC008091BC0087FFFCCF9091B900987F30 -:1006000081E0983209F480E0089584E88093BC008A -:100610008091BC0087FFFCCF8091BB00089580B320 -:100620008C7080BB81B3836F81BB08958091010181 -:10063000811115C080E40E94CA02809301018111DA -:100640000CC082E10E94F40280930101811105C077 -:100650008FEF0E94F402809301010E94EC0284B1AA -:10066000807F84B985B1807F85B98AB1837F8AB95B -:100670008BB1837F8BB93E98469808950E94E00421 -:10068000809301010E9416030E940F03A5E3B1E0CD -:10069000E3E4F1E08EE08E0F11921D928E13FCCFF9 -:1006A0000C94CA040E94E004809301010E94160386 -:1006B0000E940F03A5E3B1E0E3E4F1E08EE08E0FCA -:1006C00011921D928E13FCCF0895BF92CF92DF92AC -:1006D000EF92FF920F931F93CF93DF9380910101CD -:1006E000882379F0809134018F5F809334018111E8 -:1006F00008C00E94E00480930101811102C00E94A1 -:10070000720405E311E0C0E0D0E0DD24D39482E080 -:10071000C82EEE24E394F12CC730D10500F580916A -:100720000101811164C080E40E94CA02809301012A -:10073000811112C082E10E94F402809301018111B3 -:100740000BC0C7010C2E01C0880F0A94EAF78095F0 -:100750000E94F402809301010E94EC0248C0CA305A -:10076000A1F028F4C83059F0C93061F005C0CC3090 -:1007700089F070F0CD3089F0209A289810C0219A25 -:1007800029980DC0229A2A980AC0239A2B9807C04C -:10079000529A01C0539A5B9802C03E9A469890EADA -:1007A0009A95F1F79FB1799902C082E001C080E08B -:1007B00091709D25982B7C9902C084E001C080E057 -:1007C000892B7D9902C038E001C030E0832B7E99EF -:1007D00002C020E101C020E0822B9FB19095991FBB -:1007E0009927991F9295990F907E892B0FC0809120 -:1007F0000101811149C080E40E94CA028093010175 -:10080000882379F1B12C0E94EC028B2DF8019081A4 -:10081000981719F08083C09200010E941603219658 -:100820000F5F1F4FCE30D10509F076CF80910001C8 -:10083000882361F1815080930001882339F08FE98A -:100840009FE00197F1F700C0000020C0A3E4B1E0F1 -:10085000E5E3F1E0CF01825F91919D938E13FCCF90 -:1008600015C083E10E94F402809301018111CACF77 -:1008700081E40E94CA02809301018111C3CF0E94CA -:100880000503B82EB094BFCF80E0C0CF0E947004A3 -:1008900081E0DF91CF911F910F91FF90EF90DF905A -:1008A000CF90BF900895E82FF0E0ED5BFE4F808180 -:1008B000089508950F931F93CF93DF93C3E4D1E07E -:1008C00010E00C2F025F899190E00E948C1B180FA2 -:1008D0000C13F9CF812FDF91CF911F910F910895C4 -:1008E0000C94400556985E9825982D9826982E9839 -:1008F00027982F988FEF90E090938900809388003D -:1009000090938B0080938A0090938D0080938C004D -:10091000259A2D9A2FEF80E792E021508040904059 -:10092000E1F700C00000269A2E9A2FEF80E792E0B0 -:10093000215080409040E1F700C00000279A2F9A94 -:100940002FEF80E792E0215080409040E1F700C017 -:10095000000025982D982FEF80E792E021508040ED -:100960009040E1F700C0000026982E982FEF80E716 -:1009700092E0215080409040E1F700C000002798AD -:100980002F9856985E9825982D9826982E982798F7 -:100990002F98089589EA8093800089E080938100F0 -:1009A00024982C983F988AB18F748AB96E98479A88 -:1009B0008BB1806B8BB9769A0E9472040C943F05C0 -:1009C00080E2809301018091510181110EC00E944B -:1009D000C40281E0809351012FEF83ED90E3215019 -:1009E00080409040E1F700C0000080E40E94CA020D -:1009F0008093010181112EC00E94F40280930101B5 -:100A0000811128C00E94F40280930101811122C04B -:100A10008FE30E94F4028093010181111BC00E94A8 -:100A2000EC0280E40E94CA0280930101811112C08D -:100A30008CE00E94F4028093010181110BC00E949E -:100A4000F40280930101811105C08FE30E94F4023A -:100A5000809301010E94EC028091010108956111CF -:100A60000BC0FC018281882321F085EE0E949B113E -:100A700003C085EE0E94631280E090E0089508951F -:100A80006091C2017091C3018091C4019091C50130 -:100A90000E94981B56985E9825982D9826982E9817 -:100AA00027982F98813019F0823021F00895259AE7 -:100AB0002D9A0895269A2E9A089581E0089581E04E -:100AC00008950C945F050895282F882339F090E04D -:100AD0002A3010F44D9608950697089587E290E025 -:100AE0000895AF92BF92DF92EF92FF920F931F9300 -:100AF000CF93DF938C01FC01C081D181CE010E9494 -:100B0000111ABE010E94E908EC01B8010E946105BA -:100B1000882309F4D1C1F8018281882309F4C6C071 -:100B200080916201811127C0C431F0E7DF0709F02D -:100B3000BDC10E94630581E0809362010E94321C66 -:100B400090936101809360011092550110925701BA -:100B500010925601109259011092580110925B01A7 -:100B600010925A0110925D0110925C0110925F0187 -:100B700010925E01A1C180916001909161010E947B -:100B80003E1C883C910570F480915501E82FF0E0FF -:100B9000EE0FFF1FEA5AFE4FD183C0838F5F809311 -:100BA00055018AC1C13020E8D20708F451C0F801CC -:100BB0008281882309F47EC05E01E894B7F88091B1 -:100BC0005401813079F050F08230C1F482EE0E94FD -:100BD0009B1187E50E949B1187E50EC082EE0E9463 -:100BE0009B110CC080EE0E949B1181EE0E949B1114 -:100BF00088E10E949B1188E10E9463128CE0E82E3C -:100C0000F12CC5010E2C02C0969587950A94E2F747 -:100C10008F700E946405D82E0E949B118D2D0E941A -:100C20006312F4E0EF1AF1082CEFE2162FEFF20650 -:100C300041F780915401813029F010F0823041F465 -:100C400082EE04C080EE0E94631281EE0E94631265 -:100C5000C43180E7D80768F4C23090E7D90708F0BC -:100C600046C0C115E0E7DE0771F0C130D047A1F101 -:100C70000CC1C33320E7D20709F4D8C0C433D0472E -:100C800009F4EBC002C1F8018281882309F402C192 -:100C90000E941815FFEF24E38CE0F15020408040C3 -:100CA000E1F700C000000E948D1C06C1C13080E841 -:100CB000D80770F2C43120E7D20708F0B3C0C230C1 -:100CC00080E7D807A0F4C11590E7D90709F4E2C07E -:100CD000C130D04709F0D9C0F8018281882309F4D6 -:100CE000D9C08091DF0181608093DF01E5C0F80108 -:100CF0008281882309F4CEC00E94E71C811102C0C2 -:100D00000E94CD1C0E94FA1C90E09093F301809306 -:100D1000F201C230F0E7DF0721F48091F201816037 -:100D20007AC0C33020E7D20721F48091F2018260BB -:100D300072C0C43080E7D80721F48091F20184604A -:100D40006AC0C53090E7D90719F48091F20127C035 -:100D5000C630E0E7DE0721F48091F20180615BC0DC -:100D6000C730F0E7DF0721F48091F201806253C0C1 -:100D7000C83020E7D20721F48091F20180644BC093 -:100D8000C93080E7D80721F48091F201806843C020 -:100D9000CA3090E7D90729F48091F2018460886015 -:100DA0003AC0CB30E0E7DE0721F48091F2018E7F7C -:100DB00032C0CC30F0E7DF0721F48091F2018D7F63 -:100DC0002AC0CD3020E7D20721F48091F2018B7F39 -:100DD00022C0CE3080E7D80719F48091F2011AC002 -:100DE0008091F201CF3090E7D90711F48F7E13C0C4 -:100DF000C031E0E7DE0711F48F7D0DC0C131F0E7AF -:100E0000DF0711F48F7B07C0C231D04711F48F7711 -:100E100002C08B7F877F8093F2018091F2010E9454 -:100E2000FE1C4AC0C333F0E7DF07A1F4F80182815A -:100E3000882321F01092520182E016C08091520165 -:100E4000811106C086E20E949B1186E20E94631215 -:100E500082E018C0C433D047C1F4F80182818823EE -:100E600031F01092530180E20E94B21225C08091AD -:100E70005301811106C087E20E949B1187E20E9404 -:100E8000631280E20E94B91217C081E08093520180 -:100E900080935301C801DF91CF911F910F91FF9073 -:100EA000EF90DF90BF90AF900C945D05C130F0E8FB -:100EB000DF0708F081CECCCE80E0DF91CF911F918B -:100EC0000F91FF90EF90DF90BF90AF90089526E0D4 -:100ED000729FF001112444E5849FE00DF11D11245F -:100EE000E60FF11DEE0FFF1FE25FFE4F859194911B -:100EF0000E94FB08811560E49607B0F5811570E348 -:100F0000970708F0DEC0803E9105D8F4803C91053B -:100F100008F06CC0883A910578F4853A910508F09C -:100F20006BC08130910509F452C108F40FC18430BF -:100F3000910508F04CC10AC18B3B910508F467C0CC -:100F400005C18F3F910509F048F4803F910508F0F5 -:100F5000ADC0883E910508F43AC1F8C0811520E281 -:100F6000920708F0A5C00895811543E5940790F411 -:100F7000811562E5960708F0C8C0811571E59707ED -:100F800008F0BEC0811520E5920708F09DC09F7053 -:100F9000906A0895811545E59407D8F4811564E5B4 -:100FA000960708F0C8C0482F4695469570E2479FBF -:100FB000A00111248370992721E030E0B90102C01B -:100FC000660F771F8A95E2F7CB01842B952B9A68E1 -:100FD0000895811576E5970708F4B2C09C01305654 -:100FE0002115304108F0B2C09F70AEC0FC01EE0F79 -:100FF000FF1FE657F04062C0853A910509F4A9C089 -:10100000863A910509F0A8C082E890E40895883AEC -:10101000910509F4A4C0893A910509F4A3C08A3A5C -:10102000910509F4A2C08B3A910509F4A1C08C3A4C -:10103000910509F4A0C08D3A910509F49FC0803B49 -:10104000910509F49EC08E3A910509F49DC08F3A2E -:10105000910509F49CC0813B910509F49BC0823B3A -:10106000910509F49AC0833B910509F499C0843B2A -:10107000910509F498C0853B910509F497C0863B1A -:10108000910509F496C0873B910509F495C0883B0A -:10109000910509F494C0893B910509F493C08A3BFA -:1010A000910509F492C080E094E408959065089554 -:1010B000FC01FF70EE0FFF1FE65FFE4F85919491DC -:1010C00008959927906C0895482F437021E030E0EF -:1010D00002C0220F331F4A95E2F73C68AC0164E07E -:1010E000569547956A95E1F74370342B8F70869536 -:1010F000869560E2869FC0011124822B932B089570 -:10110000982F8827816F906A0895482F46954695B5 -:1011100070E2479FA00111248370992721E030E0FD -:10112000B90102C0660F771F8A95E2F7CB01842BC5 -:10113000952B9C680895982F8827846F906A08954E -:101140008F719927982F88279062089580E090E00A -:10115000089581E890E4089583E890E4089582EE8C -:1011600094E4089589EE94E408958AEE94E4089551 -:1011700085EB94E4089586EB94E4089587EB94E47A -:1011800008958CEC94E408958DEC94E4089583E83C -:1011900095E408958AE895E4089582E995E4089530 -:1011A00084E995E4089581E296E4089583E296E463 -:1011B000089584E296E4089585E296E4089586E22F -:1011C00096E4089587E296E408958AE296E4089505 -:1011D000089596E0799FF001112494E5899FE00D30 -:1011E000F11D1124E60FF11DEE0FFF1FE25FFE4F10 -:1011F0008591949108958238910549F1B0F4813335 -:10120000910509F458C048F48932910509F44EC09B -:101210008A32910509F454C008958533910509F483 -:1012200040C08933910599F00895833E910529F1D5 -:1012300038F4803E910591F0823E9105A1F0089529 -:10124000863E9105F9F0873E910531F10895209190 -:10125000F20120FD3AC021FD38C008958091F201CD -:1012600080FD35C032C08091F20182FF32C0809192 -:10127000F20184FD30C083EE39C08091F20182FD1D -:1012800028C0F5CF8091F20183FF27C08091F20141 -:1012900084FD21C087EE2AC08091F20183FD1DC02C -:1012A000F5CF8091F20185FD1AC01BC08091F2013B -:1012B00085FD17C014C08091F20186FD14C015C0D1 -:1012C0008091F20186FD11C00EC080EE0FC089E34F -:1012D0000DC082EE0BC080E009C086EE07C089E237 -:1012E00005C085E303C08AE201C081E390E0089570 -:1012F00008950C947809809173010895CF93DF933A -:1013000000D01F92CDB7DEB79C018091F8018430E8 -:1013100019F593E099833B832A839093E9008FEF3B -:101320009091E800815095FD06C095ED9A95F1F7F2 -:1013300000008111F5CF8091E80085FF0DC040E0ED -:1013400050E063E070E0CE0101960E94E70B8091CF -:10135000E8008E778093E8000F900F900F90DF9158 -:10136000CF910895CF93DF9300D01F92CDB7DEB712 -:101370002091F801243021F522E029839B838A8380 -:1013800083E08093E9008FEF9091E800815095FD14 -:1013900006C095ED9A95F1F700008111F5CF809187 -:1013A000E80085FF0DC040E050E063E070E0CE0152 -:1013B00001960E94E70B8091E8008E778093E80009 -:1013C0000F900F900F90DF91CF9108952091F80129 -:1013D0002430F1F422E02093E9002FEF3091E8006F -:1013E000215035FD06C035ED3A95F1F70000211189 -:1013F000F5CF2091E80025FF0BC040E050E065E00C -:1014000070E00E94E70B8091E8008E778093E800FF -:101410000895CF93DF93EC019091F801943009F097 -:1014200046C080910C018823D9F080910D0188235A -:10143000B9F09093E9008FEF9091E800815095FD0D -:1014400006C095E19A95F1F700008111F5CF8091E2 -:10145000E80085FF2CC040E050E060E170E017C07C -:1014600081E08093E9008FEF9091E800815095FD35 -:1014700006C095ED9A95F1F700008111F5CF8091A6 -:10148000E80085FF14C040E050E068E070E0CE0165 -:101490000E94E70B8091E8008E778093E80080E15E -:1014A000FE01A3E6B1E001900D928A95E1F7DF918C -:1014B000CF9108958091F701811109C00E947C0DA0 -:1014C0000E94D90D8091E20084608093E20008952B -:1014D0001092F701089508950C9473210E94231C23 -:1014E0000E9479210E947F100C94790942E061ECFE -:1014F00081E00E94F60C42E061EC82E00E94F60C72 -:1015000042E061EC83E00E94F60C42E161EC84E091 -:101510000C94F60C8091FA01833009F455C030F434 -:10152000813071F0823009F48EC008958A3009F458 -:101530007AC08B3009F460C0893009F09CC020C0AB -:101540008091F901813A09F096C08091E800877F87 -:101550008093E8008091FD019091FE01892B21F498 -:1015600060E183E691E003C060E080E090E070E03D -:101570000E94320C8091E8008B778093E8000895F8 -:101580008091F901813209F076C08091FD0190913E -:10159000FE01009719F0039709F06DC08091E800F3 -:1015A000877F8093E8008091E80082FD05C08091EC -:1015B000F8018111F8CF5FC08091F1008093730131 -:1015C0008091E8008B7753C08091F901813A09F04E -:1015D00052C08091FD019091FE01892B09F04BC012 -:1015E0008091E800877F8093E8008091E80080FF89 -:1015F000FCCF80910C0136C08091F9018132D9F580 -:101600008091FD019091FE01892BA9F58091E80060 -:10161000877F8093E8000E942B0D8091FB018093CF -:101620000C010C9418158091F901813221F58091FB -:10163000E800877F8093E8000E942B0D8091FC01D9 -:101640008093740108958091F901813AA1F4809109 -:10165000E800877F8093E8008091E80080FFFCCF5E -:10166000809174018093F1008091E8008E778093DF -:10167000E8000C942B0D089584B7877F84BF0FB6C4 -:10168000F894A89580916000886180936000109222 -:1016900060000FBE80E880936100109261000E949C -:1016A000CE100E947C0D0E94D90D8091E2008460D2 -:1016B0008093E20078940E945F100E94D01082E034 -:1016C00091E00E947A100E9461218091F80185309A -:1016D00069F40E94E81B8091F6018823B1F30E940F -:1016E000151C882391F30E94D10BEFCF0E94D610D6 -:1016F000ECCF292F332723303105C9F064F4213092 -:10170000310581F02230310509F043C08DE690E0CB -:101710002AE333E042C021323105F1F022323105B3 -:1017200041F137C082E190E027EA33E036C09927E3 -:101730008130910541F08230910541F0892B49F5C6 -:10174000E6E3F3E005C0EEE1F3E002C0E6E0F3E03B -:10175000849190E09F0121C06430D8F4E62FF0E03E -:10176000EE0FFF1FEE5DFE4F2081318189E090E09A -:1017700014C0643070F470E0FB01EE0FFF1FE65EF2 -:10178000FE4F20813181FB01EA5EFE4F808190E0B7 -:1017900004C080E090E020E030E0FA013183208353 -:1017A000089580E189BD82E189BD09B400FEFDCFC5 -:1017B0008091D8008F7D8093D8008091E000826076 -:1017C0008093E0008091E00081FDFCCF0895CF92EE -:1017D000DF92EF92FF920F931F93CF93DF93EC0171 -:1017E0008B016A010E944A0D811133C0C114D104DA -:1017F00039F0F60180819181081B190BC80FD91FA0 -:10180000E12CF12C0115110519F18091E80085FDFD -:1018100016C08091E8008E778093E800C114D1044F -:1018200049F0F60180819181E80EF91EF182E08293 -:1018300085E00FC00E944A0D882321F30AC08991D8 -:101840008093F10001501109FFEFEF1AFF0ADACF80 -:1018500080E0DF91CF911F910F91FF90EF90DF908B -:10186000CF9008952091FF0130910002261737078D -:1018700048F06115710539F42091E8002E77209326 -:10188000E80001C0B90140E061157105A9F120919E -:10189000F801222309F443C0253009F442C0209105 -:1018A000E80023FD40C02091E80022FD32C02091D5 -:1018B000E80020FFE9CF4091F3002091F20030E0F2 -:1018C000342BFC01CF016115710559F02830310529 -:1018D00040F481918093F100615071092F5F3F4F77 -:1018E000F1CF41E02830310509F040E02091E800D7 -:1018F0002E772093E800C8CF4111C9CF0AC080914C -:10190000F801882361F0853061F08091E80083FD63 -:101910000AC08091E80082FFF2CF80E0089582E063 -:10192000089583E0089581E008952091FF013091AA -:1019300000022617370748F06115710539F4209128 -:10194000E8002E772093E80001C0B901FC0120E0F7 -:101950006115710591F18091F801882309F440C067 -:10196000853009F43FC08091E80083FD3DC080913F -:10197000E80082FD2FC08091E80080FFE9CF209130 -:10198000F3008091F20090E0922B6115710559F0FF -:101990008830910540F424912093F10031966150F4 -:1019A00071090196F2CF21E0089709F020E08091BB -:1019B000E8008E778093E800CBCF2111CCCF0AC00E -:1019C0008091F801882361F0853061F08091E80012 -:1019D00083FD0AC08091E80082FFF2CF80E0089585 -:1019E00082E0089583E0089581E00895982F97306C -:1019F00058F59093E900981739F07091EC00209118 -:101A0000ED005091F00003C0242F762F50E021FF0D -:101A100019C03091EB003E7F3093EB003091ED0028 -:101A20003D7F3093ED003091EB0031603093EB005F -:101A30007093EC002093ED005093F0002091EE00A5 -:101A400027FF07C09F5FD3CF8F708093E90081E0AD -:101A5000089580E008958091F90187FF11C0809179 -:101A6000E80082FD05C08091F8018111F8CF11C016 -:101A70008091E8008B770BC08091F801882349F0B2 -:101A80008091E80080FFF8CF8091E8008E77809306 -:101A9000E80008952091E4003091E50095E640913A -:101AA000EC00842F817040FF22C08091E80080FD0F -:101AB0001CC08091F801882391F0853091F08091CD -:101AC000EB0085FD10C04091E4005091E500421705 -:101AD000530729F39A01915011F784E0089582E0A9 -:101AE000089583E0089581E0089580E0089540918D -:101AF000E80042FFDECF08950E94EA0D0E94F20D39 -:101B0000E0EEF0E0808181608083E8EDF0E08081AC -:101B10008F77808319BCA7EDB0E08C918E7F8C937A -:101B200080818F7E80831092F70108950F931F9319 -:101B3000CF93DF930E94EA0D0E94F20DC8EDD0E032 -:101B400088818F77888388818068888388818F7D6A -:101B5000888319BC1092F8011092F4011092F601DA -:101B60001092F50100EE10E0F80180818B7F8083F8 -:101B700088818160888342E060E080E00E94F60C0A -:101B8000E1EEF0E080818E7F8083E2EEF0E0808104 -:101B900081608083808188608083F80180818E7F6E -:101BA0008083888180618883DF91CF911F910F911D -:101BB0000895E8EDF0E080818F7E8083E7EDF0E02E -:101BC00080818160808384E082BF81E08093F7011F -:101BD0000C94960DE8EDF0E080818E7F808310926A -:101BE000E20008951092DA001092E10008951F9229 -:101BF0000F920FB60F9211242F933F934F935F9341 -:101C00006F937F938F939F93AF93BF93EF93FF93C4 -:101C10008091E10082FF0BC08091E20082FF07C04B -:101C20008091E1008B7F8093E1000E945E108091A3 -:101C3000DA0080FF1FC08091D80080FF1BC0809118 -:101C4000DA008E7F8093DA008091D90080FF0DC08A -:101C500080E189BD82E189BD09B400FEFDCF81E04C -:101C60008093F8010E945A0A05C019BC1092F8012D -:101C70000E94680A8091E10080FF19C08091E20013 -:101C800080FF15C08091E2008E7F8093E2008091FA -:101C9000E20080618093E2008091D80080628093AE -:101CA000D80019BC85E08093F8010E946C0A8091ED -:101CB000E10084FF30C08091E20084FF2CC080E10D -:101CC00089BD82E189BD09B400FEFDCF8091D800B5 -:101CD0008F7D8093D8008091E1008F7E8093E1001A -:101CE0008091E2008F7E8093E2008091E20081602B -:101CF0008093E2008091F401882311F084E007C012 -:101D00008091E30087FD02C081E001C083E0809301 -:101D1000F8010E946E0A8091E10083FF29C0809142 -:101D2000E20083FF25C08091E100877F8093E1007E -:101D300082E08093F8011092F4018091E1008E7F9F -:101D40008093E1008091E2008E7F8093E200809199 -:101D5000E20080618093E20042E060E080E00E9467 -:101D6000F60C8091F00088608093F0000E946B0A6E -:101D7000FF91EF91BF91AF919F918F917F916F9163 -:101D80005F914F913F912F910F900FBE0F901F9039 -:101D900018951F920F920FB60F9211242F933F9315 -:101DA0004F935F936F937F938F939F93AF93BF9363 -:101DB000CF93DF93EF93FF93C091E900CF708091B1 -:101DC000EC00D82FD17080FDD0E81092E90080910E -:101DD000F000877F8093F00078940E940D0F10929E -:101DE000E9008091F00088608093F000CD2BCF70E7 -:101DF000C093E900FF91EF91DF91CF91BF91AF9137 -:101E00009F918F917F916F915F914F913F912F9112 -:101E10000F900FBE0F901F9018951F93CF93DF93D5 -:101E2000CDB7DEB7AA970FB6F894DEBF0FBECDBF11 -:101E3000E9EFF1E088E08E0F9091F10091938E131D -:101E4000FBCF0E948A0A8091E80083FF1FC1809126 -:101E5000F9019091FA01492F50E04A30510508F0FC -:101E600015C1FA01EA5AFF4F0C940A23803881F019 -:101E7000823809F00BC18091FD018F708093E900D9 -:101E80008091EB0085FB882780F91092E90006C05D -:101E90008091F5019091F601911182609091E80096 -:101EA000977F9093E8008093F1001092F100C8C0F2 -:101EB000282F2D7F09F0EAC0882319F0823061F0C5 -:101EC000E5C08091FB01813009F0E0C0933009F05A -:101ED00080E08093F6012BC08091FB01811127C027 -:101EE0008091FD018F7009F4D1C08093E9002091A9 -:101EF000EB0020FF1CC0933021F48091EB00806246 -:101F000014C09091EB0090619093EB0021E030E0E1 -:101F1000A90102C0440F551F8A95E2F74093EA00D9 -:101F20001092EA008091EB0088608093EB001092A1 -:101F3000E9008091E800877F86C08111A7C01091D9 -:101F4000FB011F778091E3008078812B8093E30071 -:101F50008091E800877F8093E8000E942B0D80919C -:101F6000E80080FFFCCF8091E30080688093E3006D -:101F7000111102C082E001C083E08093F80186C0A5 -:101F80008058823008F082C08091FB019091FC0162 -:101F90008C3D53E0950779F583E08A838AE2898353 -:101FA0004FB7F894DE01139620E03EE051E2E32FB4 -:101FB000F0E050935700E49120FF03C0E295EF70EA -:101FC0003F5FEF708E2F90E0EA3010F0C79601C0AF -:101FD000C0968D939D932F5F243149F74FBF809119 -:101FE000E800877F8093E8006AE270E0CE01019606 -:101FF0000E94320C14C0AE014F5F5F4F6091FD0133 -:102000000E94790BBC01892B09F440C09091E80033 -:10201000977F9093E80089819A810E94950C809126 -:10202000E8008B778093E80031C0803879F58091A3 -:10203000E800877F8093E8008091F4018093F100AD -:102040008091E8008E778093E8000E942B0D1EC0DF -:1020500081111CC09091FB019230C0F48091E80086 -:10206000877F8093E8009093F4010E942B0D80916C -:10207000F401811106C08091E30087FD02C081E078 -:1020800001C084E08093F8010E94760A8091E80004 -:1020900083FF0AC08091E800877F8093E8008091E9 -:1020A000EB0080628093EB00AA960FB6F894DEBF37 -:1020B0000FBECDBFDF91CF911F9108950895CF93AB -:1020C0008091F8018823A1F0C091E900CF70909130 -:1020D000EC00892F817090FD80E8C82B1092E900F8 -:1020E0008091E80083FD0E940D0FCF70C093E9003E -:1020F000CF91089590937A01809379010895E091AA -:102100007901F0917A01309721F00190F081E02D72 -:10211000099480E00895E0917901F0917A01309777 -:1021200021F00280F381E02D09940895E091790176 -:10213000F0917A01309721F00480F581E02D099427 -:10214000089520917701309178018217930771F0FB -:102150009093780180937701E0917901F0917A0171 -:10216000309721F00680F781E02D099408952091A1 -:102170007501309176018217930771F09093760183 -:1021800080937501E0917901F0917A01309721F007 -:102190000084F185E02D0994089508950C94CD10E4 -:1021A0000E94291C0E943E030C94AF1C9F92AF9288 -:1021B000BF92CF92DF92EF92FF920F931F93CF9334 -:1021C000DF9300D000D000D0CDB7DEB70E9465030A -:1021D0000DE010E0AA24A394B12C902E802F0E9431 -:1021E0005304980124583E4F6901F901F080F82604 -:1021F000A1F40150110988F78FEF89838A831B822C -:102200000E94321C8160782F9D838C8349815A8182 -:102210006B818D810E946D112FC09091DF0191FF24 -:1022200004C08E830E9459048E8125E030E0A50110 -:10223000022E01C0440F0A94EAF7E42E4F21C1F0A8 -:1022400029839A828E2191E009F490E09B830E9479 -:10225000321C8160782F9D838C8349815A816B81E8 -:102260008D810E946D11F6018081E826E08204C014 -:1022700021503109E0F6BDCF0E947D1E10917B01F7 -:102280000E947F101817B9F00E947F1080937B0185 -:1022900026960FB6F894DEBF0FBECDBFDF91CF916B -:1022A0001F910F91FF90EF90DF90CF90BF90AF9074 -:1022B0009F900C94790926960FB6F894DEBF0FBE56 -:1022C000CDBFDF91CF911F910F91FF90EF90DF90E5 -:1022D000CF90BF90AF909F900895CF93DF93CDB7ED -:1022E000DEB72B970FB6F894DEBF0FBECDBF4F837E -:1022F000588769877A878B87DE01119686E0FD0112 -:1023000011928A95E9F785E0FE01379601900D92CA -:102310008A95E1F749815A816B817C818D819E810B -:102320000E94B6172B960FB6F894DEBF0FBECDBF36 -:10233000DF91CF910895CF93882309F4C2C0C82FAD -:10234000823859F40E947F1081FDBBC089E30E944E -:10235000901A0E945D1B89E30CC0833879F40E94B7 -:102360007F1080FDAEC083E50E94901A0E945D1B25 -:1023700083E50E94D21ACF910C945D1B843859F4E6 -:102380000E947F1082FD9DC087E40E94901A0E94E7 -:102390005D1B87E4EECF8CEF8C0F813A48F48C2FD5 -:1023A0000E94C72081118DC08C2F0E94901AE3CF0C -:1023B00080E28C0F883048F4C77081E001C0880F3C -:1023C000CA95EAF70E94161BD6CF8BE58C0F833097 -:1023D00078F4C53A29F0C63A31F083E890E005C0B8 -:1023E00081E890E002C082E890E0CF910C94A110C7 -:1023F00088E58C0F833108F064C0C83A39F1C93AD6 -:1024000041F1CA3A49F1CB3A51F1CC3A59F1CD3ABE -:1024100061F1C03B69F1CE3A71F1CF3A79F1C13B3C -:1024200081F1C23B89F1C33B91F1C43B99F1C53BBA -:10243000A1F1C63BA9F1C73BB1F1C83BB9F1C93B1A -:10244000C1F1CA3BC9F180E090E038C082EE90E073 -:1024500035C089EE90E032C08AEE90E02FC085EB67 -:1024600090E02CC086EB90E029C087EB90E026C07E -:102470008CEC90E023C08DEC90E020C083E891E0EC -:102480001DC08AE891E01AC082E991E017C084E992 -:1024900091E014C081E292E011C083E292E00EC0AC -:1024A00084E292E00BC085E292E008C086E292E00E -:1024B00005C087E292E002C08AE292E0CF910C94DC -:1024C000B710CF910895882309F44BC0823859F48E -:1024D0000E947F1081FF45C089E30E94901A0E94EC -:1024E0005D1B89E30CC0833871F40E947F1080FF6C -:1024F00038C083E50E94901A0E945D1B83E50E940C -:10250000D21A0C945D1B843859F40E947F1082FF0C -:1025100028C087E40E94901A0E945D1B87E4EFCFD9 -:102520009CEF980F913A58F390E2980F983050F43E -:10253000877091E001C0990F8A95EAF7892F0E9470 -:102540001C1BDFCF9BE5980F933020F480E090E0D8 -:102550000C94A110885A833120F480E090E00C9410 -:10256000B7100895882321F00E94161B0C945D1B60 -:102570000895882321F00E941C1B0C945D1B089574 -:102580007F928F929F92AF92BF92CF92DF92EF9203 -:10259000FF920F931F93CF93DF931F92CDB7DEB7B8 -:1025A0007C01C62E772EFC01058102950F701281E9 -:1025B00011110E94331B0E94891A882379F011237C -:1025C00069F080E28C0D883048F082E00E94721A37 -:1025D0000E94891A91E0D82ED92601C0D12CE72D6E -:1025E000E295EF70F0E0E05AFF4F0C940A23872D3C -:1025F000807F072D0F70882311F00295007F112333 -:1026000089F0002309F490C180E28C0D883020F419 -:10261000802F0E94161B03C0802F0E94261B0E9441 -:102620005D1B82C18C2D0E946312002309F495C1A9 -:1026300080E28C0D883020F4802F0E941C1B03C088 -:10264000802F0E942C1B0E945D1B87C1972D907FBD -:10265000872D8F70903211F08295807FCC2021F0F1 -:10266000F1E0CF16B1F01EC0112349F0002309F4A8 -:1026700014C1013009F011C10E94461B6EC1002334 -:1026800019F0013009F469C189830E94491B8981CD -:102690000AC1112321F0023008F05FC1FEC0011110 -:1026A0005CC101C1112321F0002309F4F6C03CC133 -:1026B000002309F4F8C03EC1872D86958695837066 -:1026C00090E0009719F0019761F047C1112321F0C4 -:1026D0008C2D972D937002C080E090E00E94A11095 -:1026E0003CC1112321F08C2D972D937002C080E006 -:1026F00090E00E94B71031C18C2D112319F00E9477 -:10270000851D02C00E94ED1D0E94721E26C1872DEC -:10271000837009F052C0111120C18C2D82958695CD -:102720008770880F880F9C2D9F70892E912CA12C6B -:10273000B12C082E04C0880C991CAA1CBB1C0A943E -:10274000D2F7C4FE14C00FE010E020E030E0B90181 -:10275000A80104C0440F551F661F771F8A95D2F742 -:10276000CB01BA01609570958095909503C060E0AB -:1027700070E0CB01272D26952695237030E022307E -:10278000310569F02330310589F0682979298A29D2 -:102790009B292130310571F00E94FE18DEC06829A6 -:1027A00079298A299B290E941A19D7C00E94FE18EC -:1027B000C501B4010E94E218D0C0112319F0872D81 -:1027C000817001C08695882309F4C7C08C2D82953D -:1027D00086958770880F880F9C2D9F70892E912C6D -:1027E000A12CB12C082E04C0880C991CAA1CBB1C5F -:1027F0000A94D2F7C4FE14C00FE010E020E030E0ED -:10280000B901A80104C0440F551F661F771F8A95A0 -:10281000D2F7CB01BA01609570958095909503C071 -:1028200060E070E0CB01272D269526952370422F7E -:1028300050E04230510569F04330510589F0682974 -:1028400079298A299B294130510571F00E94D819B4 -:1028500084C0682979298A299B290E94F4197DC09E -:102860000E94D819C501B4010E94BC1976C08C2DF4 -:1028700090E0FC01E05EF109E531F10508F050C09F -:10288000E059FF4F0C940A230C2D0F70872D8F7188 -:10289000112331F00E945519802F0E94B2125DC0A1 -:1028A0000E947619802F0E94B91257C0112339F067 -:1028B000011153C0872D8F710E949B194EC00230A9 -:1028C00008F04BC0F7CF112339F0872D8F710E948C -:1028D000551943C01123C9F3872D8F710E947619B2 -:1028E0003CC0112329F0872D8F710E94401935C0FB -:1028F0000E94361932C0112351F0172D1F71812FFC -:102900000E94551963E0812F0E94691A26C081E058 -:102910000E94721A023008F182E00E94721A1DC0F1 -:10292000112331F0002389F28C2D0E949B1115C0D8 -:10293000002391F28C2D0E9463120FC0472D4F701F -:102940006C2DC7010E942F050E945A1806C0472D02 -:102950004F706C2DC7010E94E808DD20F9F00E943D -:10296000651A80FD1BC0F70112820E945F1A0E9447 -:102970005519C7010E94DD140E945F1A0F90DF9164 -:10298000CF911F910F91FF90EF90DF90CF90BF906C -:10299000AF909F908F907F900C9476190F90DF915D -:1029A000CF911F910F91FF90EF90DF90CF90BF904C -:1029B000AF909F908F907F9008950F931F93CF9328 -:1029C000DF93EC01888199812B813C81232BB9F025 -:1029D0009F3F11F48F3F99F0CE010E94710588232B -:1029E00071F0688179818A810E945B1A8C010E9452 -:1029F000101A0E94D718B801CE010E94C012DF91B0 -:102A0000CF911F910F9108950E94331B0E94431B89 -:102A10000E94081B0E945D1B0E94231F0E94721EC1 -:102A200080E090E00E94A11080E090E00C94B7104C -:102A30000E94231B0C9404150E94501A292F2295E2 -:102A40002F7030E02C3031054CF42A3031056CF415 -:102A50002250310922303105A8F407C02C3031054D -:102A600069F02F30310551F00DC0803F69F018F446 -:102A7000803E40F409C0843F29F406C093FB8827B8 -:102A800080F9089580E0089581E00895CF93DF9361 -:102A900000D000D01F92CDB7DEB70F900F900F90EF -:102AA0000F900F90DF91CF910895CF93DF9300D0D7 -:102AB00000D000D0CDB7DEB726960FB6F894DEBFB3 -:102AC0000FBECDBFDF91CF9108951F93CF93DF93BA -:102AD000C0918A0116E080918B01C81799F0D0E06F -:102AE0001C9FF0011D9FF00D1124E457FE4F408103 -:102AF000518162817381848195810E94551521964F -:102B0000C770E9CFDF91CF911F9108954091BC012B -:102B10005091BD016091BE017091BF018091C001D3 -:102B20009091C1010C9455158091C10182958F70CF -:102B300009F054C08091BE01882309F44FC08091F0 -:102B40008A01A0918B016091BC017091BD014091FF -:102B5000BF015091C001B6E08A1709F43FC090E070 -:102B600041155105C1F17F3F11F46F3FA1F1B89FAD -:102B7000F001B99FF00D1124E457FE4F218172132B -:102B80002AC02081621327C02281211124C0238101 -:102B900034812417350710F421503109241B350BDB -:102BA000283C3105C0F42091C1012F702061209391 -:102BB000C10126E0289FF001299FF00D1124EF5656 -:102BC000FE4F80818F70806180838CEB91E00E944A -:102BD000DD140C94651501968770BECF0895CF92D1 -:102BE000DF92EF92FF920F931F93CF93DF93CDB7B6 -:102BF000DEB762970FB6F894DEBF0FBECDBF8C0173 -:102C000085E0F801DE011D9601900D928A95E1F7AD -:102C1000D8014C9111965C91119712966C91129774 -:102C20001396CD90DC9014973091BC017091BD014A -:102C30008091BF019091C001009709F46BC17F3F63 -:102C400019F43F3F09F466C1E090BE01EE2009F49B -:102C5000C0C02091C101C816D90628F0F601E81BB2 -:102C6000F90BCF0104C0809590958C0D9D1DFF241C -:102C7000F394883C910578F0F12C207F09F0C6C0D0 -:102C80007C2DD98AC88A89890E9446158CEB91E0EF -:102C90000E94DD14B1C0822F807F09F046C07513F9 -:102CA00014C0341312C0611110C02F702061209322 -:102CB000C1010E9486158CEB91E00E94DD14809189 -:102CC000C101D80115968C932EC0CD2819F15F3F14 -:102CD00011F44F3FF9F0F62E61111CC080918A016A -:102CE00020918B0136E0821709F45AC090E0389F9A -:102CF000F001399FF00D1124E457FE4F71815713F5 -:102D000006C07081471303C07281711103C0019620 -:102D10008770E9CFF62E662309F418C18091C101AE -:102D200081608093C101F12C11C1751308C0341367 -:102D300006C0611104C08091C101D801C3C04D8794 -:102D40005E878D859E856A8B0E941C156A89882303 -:102D5000E1F16623D1F12091C101822F82958F701C -:102D600090E0029774F08091BC019091BD0198872A -:102D70008F831986DB86CA862C87CE0107960E9430 -:102D8000DD1486E0F801ACEBB1E001900D928A957C -:102D9000E1F70E9494150E948615FF24F394D6C093 -:102DA0004D875E878D859E850E94501A292F22951A -:102DB0002F7030E0223031050CF0BCC09F7009F05C -:102DC000B6C0805E883008F4C1C0C8010E94DD141E -:102DD000E4CFC816D90608F453C0F601E81BF90B76 -:102DE000CF01883C910508F450C0F12C7C2DD98A84 -:102DF000C88A89890E944615ECEBF1E086E0DF0184 -:102E00001D928A95E9F70E948615A0C0751314C01B -:102E1000341312C0611110C08091C101F801858383 -:102E2000C8010E94DD1486E0ECEBF1E0DF011D92A9 -:102E30008A95E9F7FE2C8AC04D875E878D859E8531 -:102E40006A8B0E941C156A89882309F4BECF662309 -:102E500009F4BBCF2091C101822F82958F7090E041 -:102E600002970CF48ECF8091BC019091BD019A83A2 -:102E700089831B82DD82CC822E83CE0101967FCF97 -:102E8000809590958C0D9D1DACCFF62E662309F490 -:102E90009CCF75132EC034132CC02091C10120FD8E -:102EA0001FC0822F82958F70D9F0D80115962C9370 -:102EB00015978F3049F08F5F982F9295907F822FD2 -:102EC0008F70892B15968C93C8010E94DD1486E0C3 -:102ED000F801ACEBB1E001900D928A95E1F793CF48 -:102EE00086E0F801ACEBB1E001900D928A95E1F734 -:102EF0002DC04D875E878D859E850E941C15811192 -:102F000040CF8091C10181608093C101C8010E94BE -:102F1000DD141CC0662309F458CF4D875E878D856C -:102F20009E850E941C15882309F44FCF2ACF81115A -:102F300048CF0CC0243031050CF047CF9F7009F406 -:102F400040CFF8019581907F09F03BCF8F2D62969D -:102F50000FB6F894DEBF0FBECDBFDF91CF911F91AA -:102F60000F91FF90EF90DF90CF9008951F93CF9334 -:102F7000DF93CDB7DEB72C970FB6F894DEBF0FBE48 -:102F8000CDBF4F83588769877A878B879C87CE010F -:102F900007960E94EF15882369F08F8198852A850E -:102FA0003B85232BF1F19F3F09F063C08F3F09F070 -:102FB00060C037C086E0FE013796DE0111960190B1 -:102FC0000D928A95E1F76F817885EA85FB853097C8 -:102FD00041F17F3F11F46F3F21F120918B0130E0EF -:102FE000C90101968770992740918A0150E08417A2 -:102FF000950709F447C069837A83FD83EC8396E0E3 -:10300000929FD001939FB00D1124A457BE4FFE0193 -:10301000319601900D929A95E1F780938B010E9471 -:10302000651516E080918A0190918B018917C1F195 -:10303000189FC001112484579E4F0E94EF158823CA -:1030400079F1E0918A011E9FF0011124E457FE4FAF -:103050004081518162817381848195810E945515DF -:1030600080918A0190E001968770992780938A0168 -:10307000D9CF4F81588569857A858B859C850E943B -:103080005515CFCF0E94181510928B0110928A010E -:10309000ECEBF1E086E0DF011D928A95E9F7C1CF04 -:1030A0002C960FB6F894DEBF0FBECDBFDF91CF9147 -:1030B0001F910895EF92FF920F931F93CF93DF9389 -:1030C0008C01892B09F46CC0F12CEE24E394E80107 -:1030D0002196F8018491843740F4843008F051C07F -:1030E000813081F0823019F15BC0853709F444C02A -:1030F000A8F19CE7980F903708F052C08F770E9494 -:10310000631241C00E5F1F4FFE01C49180E28C0F1D -:10311000883048F4C7708E2D01C0880FCA95EAF731 -:103120000E94361B14C08C2F0E949B112DC00E5F75 -:103130001F4FFE01C49180E28C0F883058F4C77095 -:103140008E2D01C0880FCA95EAF70E943C1B0E9491 -:103150005D1B1AC08C2F0E94631216C00E5F1F4F9A -:10316000FE01C491CC2381F08FE99FE00197F1F734 -:1031700000C00000C150F6CF0E5F1F4FFE01F4905B -:1031800003C00E949B118E018F2D882309F49FCFCD -:10319000EFE9FFE03197F1F700C000008150F5CF73 -:1031A000DF91CF911F910F91FF90EF9008950895B7 -:1031B0006093C6017093C7018093C8019093C901C1 -:1031C0000C9404150F931F930091C6011091C70131 -:1031D0002091C8013091C901DC01CB01802B912BDA -:1031E000A22BB32B8093C6019093C701A093C80173 -:1031F000B093C9011F910F910C9404150F931F9365 -:103200000091C6011091C7012091C8013091C901F8 -:10321000DC01CB0180239123A223B3238093C60139 -:103220009093C701A093C801B093C9011F910F915A -:103230000C9404150F931F930091C6011091C701C0 -:103240002091C8013091C901DC01CB018027912771 -:10325000A227B3278093C6019093C701A093C8010A -:10326000B093C9011F910F910C9404151092C201E3 -:103270001092C3011092C4011092C5010C94041560 -:1032800041E050E060E070E004C0440F551F661F4D -:10329000771F8A95D2F74093C2015093C301609380 -:1032A000C4017093C5010C94041541E050E060E046 -:1032B00070E004C0440F551F661F771F8A95D2F730 -:1032C0008091C2019091C301A091C401B091C50148 -:1032D000482B592B6A2B7B2B4093C2015093C3017F -:1032E0006093C4017093C5010C94041541E050E053 -:1032F00060E070E004C0440F551F661F771F8A9579 -:10330000D2F740955095609570958091C20190914B -:10331000C301A091C401B091C501482359236A2378 -:103320007B234093C2015093C3016093C401709307 -:10333000C5010C94041541E050E060E070E004C069 -:10334000440F551F661F771F8A95D2F78091C201DF -:103350009091C301A091C401B091C501482759279C -:103360006A277B274093C2015093C3016093C40135 -:103370007093C5010C9404150F931F930091C20123 -:103380001091C3012091C4013091C501DC01CB0132 -:10339000802B912BA22BB32B8093C2019093C3015E -:1033A000A093C401B093C5011F910F910C94041513 -:1033B0000F931F930091C2011091C3012091C4018A -:1033C0003091C501DC01CB0180239123A223B323DB -:1033D0008093C2019093C301A093C401B093C5012F -:1033E0001F910F910C9404150F931F930091C2012C -:1033F0001091C3012091C4013091C501DC01CB01C2 -:1034000080279127A227B3278093C2019093C301FD -:10341000A093C401B093C5011F910F910C940415A2 -:103420000895CF92DF92EF92FF920F931F93CF9365 -:10343000DF938C01C090C601D090C701E090C80115 -:10344000F090C9018091C2019091C301A091C40183 -:10345000B091C501C82AD92AEA2AFB2ACFE1D0E0D7 -:10346000D701C6010C2E04C0B695A79597958795F0 -:103470000A94D2F780FF06C0B8018C2F0E9467071C -:10348000019721F4219760F780E001C08C2FDF9134 -:10349000CF911F910F91FF90EF90DF90CF90089503 -:1034A000CF93DF93EC010E94111ABE010E946707BF -:1034B000DF91CF910895CB010E94501A0895809119 -:1034C000CA0185958595859508958091CA01877073 -:1034D000089598E0899F90011124262B2093CA011A -:1034E0000C9455192091CA01809582238093CA01BA -:1034F000982F977069F430E0482F552747FD509575 -:103500002417350729F08595859585950C947619AE -:1035100008959091CA01977081E009F480E00895C0 -:1035200090910C01992321F090910D01911109C006 -:1035300020910E0130910F01F90132969FEF40E08A -:103540001FC0982F9695969596959F3050F5E091CF -:103550000E01F0910F01E90FF11D877021E030E0BD -:10356000A90102C0440F551F8A95E2F7CA01918153 -:10357000892B818308959F3F39F04F5F4E3041F092 -:1035800051915813F8CF0DC05111F7CF942FF5CFAB -:103590009F3F39F0F901E90FF11D97FDFA958283FC -:1035A0000895089590910C01992321F090910D01B7 -:1035B000911109C020910E0130910F01F90132964D -:1035C000205F3F4F1FC0982F9695969596959F30F8 -:1035D000F0F4E0910E01F0910F01E90FF11D8770F9 -:1035E00021E030E0A90102C0440F551F8A95E2F79F -:1035F000CA01809591818923818308953196E217CC -:10360000F30729F090819813F9CF1082F7CF08952E -:1036100081E090E0E0910E01F0910F01E80FF91FB9 -:103620001082019680319105A9F708959091DE01ED -:10363000892B8093DE01089580959091DE01892386 -:103640008093DE0108951092DE0108959091DD01CE -:10365000892B8093DD01089580959091DD01892368 -:103660008093DD0108951092DD0108959091DC01B1 -:10367000892B8093DC01089580959091DC0189234A -:103680008093DC0108951092DC0108958093CB01B2 -:1036900008951092CB01089580910E0190910F0131 -:1036A000FC0131969C01205F3F4F80E09191911188 -:1036B0008F5FE217F307D1F70895E0910E01F091C3 -:1036C0000F018091DE018083E0910E01F0910F01E6 -:1036D00090818091DD01892B8083E0910E01F09132 -:1036E0000F0190818091DC01892B80838091CB0137 -:1036F000882361F0E0910E01F0910F019081892BF8 -:1037000080830E944C1B81111092CB0180910E018D -:1037100090910F010C948B1020E0009739F0AC01D0 -:1037200041505109842395232F5FF7CF822F0895AD -:10373000CF92DF92EF92FF926C01EE24FF24C1142E -:10374000D104E104F10421F0C701B60120E101C078 -:1037500020E0C72ED82EE92EFF24C114D104E104A5 -:10376000F10419F0285FC701B6016B017C0154E038 -:10377000F694E794D794C7945A95D1F7C114D1041D -:10378000E104F10419F02C5FC701B6016B017C0163 -:1037900042E0F694E794D794C7944A95D1F7C114C0 -:1037A000D104E104F10419F02E5FC701B601DC0178 -:1037B000CB01B695A79597958795892B8A2B8B2B4F -:1037C00009F02F5F822FFF90EF90DF90CF90089548 -:1037D0008091F801843039F11092E00120E488E111 -:1037E00090E00FB6F894A895809360000FBE2093E8 -:1037F000600080E00E94790983B7817F846083BF85 -:1038000083B7816083BF7894889583B78E7F83BFA9 -:103810000FB6F894A895809160008861809360004D -:10382000109260000FBE089508950E9452030E94F6 -:1038300065030E94141C0E945A0491E0811101C08A -:1038400090E0892F08950E9418150E947F100C9413 -:10385000790982E084BD93E095BD9AEF97BD80938E -:103860006E0008952FB7F8948091E1019091E201E4 -:10387000A091E301B091E4012FBF0895CF92DF92B0 -:10388000EF92FF920F931F932FB7F8944091E101AD -:103890005091E2016091E3017091E4012FBF6A0150 -:1038A0007B01EE24FF248C0120E030E0C016D1061D -:1038B000E206F30610F4415051099A01281B390B16 -:1038C000C9011F910F91FF90EF90DF90CF90089565 -:1038D0001F920F920FB60F9211248F939F93AF9365 -:1038E000BF938091E1019091E201A091E301B09139 -:1038F000E4010196A11DB11D8093E1019093E201C5 -:10390000A093E301B093E401BF91AF919F918F9198 -:103910000F900FBE0F901F9018950E947C0DF89489 -:103920002FEF87EA91E6215080409040E1F700C0F8 -:10393000000087E090EBDC0180930102909302028B -:10394000A0930302B09304029CE088E10FB6F894C0 -:10395000A895809360000FBE90936000FFCF0E94F7 -:10396000E71C811102C00E94CD1C0E94F21C8093B2 -:10397000DF010E94FA1C90E09093F3018093F20122 -:1039800087FB882780F980930D010E94F61C682F21 -:1039900070E080E090E00C94D8186DEE7EEF80E04F -:1039A00090E00E94432360E082E090E00E94322396 -:1039B00060E083E090E00E94322360E084E090E0E9 -:1039C0000E94322360E085E090E00C94322380E096 -:1039D00090E00E942C2321E08D3E9E4F09F020E0D4 -:1039E000822F089582E090E00C94242383E090E0FD -:1039F0000C94242384E090E00C942423682F84E02A -:103A000090E00C9432238091E70180FF0BC060911D -:103A1000130185E0689FB001112475956795759530 -:103A200067952BC081FF09C06091130185E0689FF5 -:103A3000B00111247595679520C082FF07C0609181 -:103A4000130185E0689FB001112417C09091E8012F -:103A50009923D1F060911201961788F720911301F4 -:103A600085E0289F90011124929FA001939F500D03 -:103A7000112470E0CA010E94F6226038710540F4FA -:103A80006115710539F002C065E070E0862F089578 -:103A90008FE7089581E008958091E70180FF08C0D5 -:103AA0006091110170E0759567957595679521C0D6 -:103AB00081FF06C06091110170E07595679519C08E -:103AC00082FF04C06091110170E010C09091E80184 -:103AD0009923C1F0609110019617A0F78091110110 -:103AE000899FC001112470E00E94F62260387105A0 -:103AF00028F46115710521F0862F08958FE7089548 -:103B000081E0089561E070E0F4CF803F21F40E94ED -:103B1000031D819504C0813F29F40E94031D8093F9 -:103B2000EB010895823F21F40E94031D819504C09A -:103B3000833F29F40E94031D8093EA010895893F81 -:103B400019F40E944C1D05C08A3F31F40E944C1D9F -:103B500081958093EC0108958B3F21F40E944C1DC8 -:103B6000819504C08C3F29F40E944C1D8093ED0187 -:103B70000895843F21F48091E901816017C0853F59 -:103B800021F48091E901826011C0863F21F4809187 -:103B9000E90184600BC0873F21F48091E9018860CE -:103BA00005C0883F31F48091E90180618093E9018B -:103BB00008958D3F21F48091E70181600BC08E3F15 -:103BC00021F48091E701826005C08F3F29F4809144 -:103BD000E70184608093E7010895803F39F4809184 -:103BE000EB0187FF6CC01092EB0169C0813F29F4A3 -:103BF0008091EB011816BCF362C09091EA01823FFC -:103C000029F497FF5CC01092EA0159C0833F19F470 -:103C10001916CCF354C0893F41F48091EC01181679 -:103C20000CF04DC01092EC014AC08A3F29F48091FB -:103C3000EC0187FF44C0F6CF8B3F39F48091ED0152 -:103C400087FF3DC01092ED013AC08C3F29F480916E -:103C5000ED011816BCF333C0843F21F48091E901D3 -:103C60008E7F17C0853F21F48091E9018D7F11C0BF -:103C7000863F21F48091E9018B7F0BC0873F21F4BF -:103C80008091E901877F05C0883F31F48091E90187 -:103C90008F7E8093E90113C08D3F21F48091E7016D -:103CA0008E7F0BC08E3F21F48091E7018D7F05C090 -:103CB0008F3F29F48091E7018B7F8093E70180910A -:103CC000EA0181110EC08091EB0181110AC080913F -:103CD000EC01811106C08091ED01811102C01092AA -:103CE000E801089589EE91E00E9496100E94321C2E -:103CF0009093E6018093E50108951F93CF93DF939E -:103D00008091E5019091E6010E943E1CAC019091EA -:103D1000E801992321F02091140130E006C02091A0 -:103D200015018AE0289F900111244217530708F4D7 -:103D300086C08091EA01C091EB01D091EC01109115 -:103D4000ED01811107C0C11176C0D11174C01111EC -:103D500072C075C09F3F19F09F5F9093E8011816DD -:103D600024F40E94031D8093EA018091EA0187FFF9 -:103D700005C00E94031D81958093EA011C1624F45E -:103D80000E94031D8093EB018091EB0187FF05C02A -:103D90000E94031D81958093EB016091EA016623E7 -:103DA00039F1C091EB01CC2319F1772767FD7095AC -:103DB000872F972F0E94FD2123E333E343E35FE343 -:103DC0000E9461220E94C5216093EA016C2F77272F -:103DD00067FD7095872F972F0E94FD2123E333E322 -:103DE00043E35FE30E9461220E94C5216093EB01DF -:103DF0001D1624F40E944C1D8093EC018091EC016F -:103E000087FF05C00E944C1D81958093EC0111161F -:103E100024F40E944C1D8093ED018091ED0187FFF9 -:103E200005C00E944C1D81958093ED01DF91CF91DB -:103E30001F910C94721E9F3F09F08ECF96CFDF9199 -:103E4000CF911F910895E9EEF1E085E0DF011D9229 -:103E50008A95E9F71092E8011092E70108958330FE -:103E600081F128F4813059F08230D1F00895853005 -:103E700009F449C0B8F1863009F456C0089580911C -:103E80001501262F30E0280F311D2F3F310524F476 -:103E9000680F6093150108958FEF809315010895C1 -:103EA00080911401262F30E0280F311D2F3F31055E -:103EB00024F4680F6093140108958FEF8093140128 -:103EC000089580911301262F30E0280F311D2F3FD8 -:103ED000310524F4680F6093130108958FEF8093E8 -:103EE0001301089580911201262F30E0280F311D13 -:103EF0002F3F310524F4680F6093120108958FEF6E -:103F000080931201089580911101262F30E0280F2F -:103F1000311D2F3F310524F4680F6093110108957E -:103F20008FEF80931101089580911001262F30E0CA -:103F3000280F311D2F3F310524F4680F60931001C5 -:103F400008958FEF809310010895833011F128F4C4 -:103F5000813049F0823091F00895853081F120F16F -:103F60008630C1F1089580911501681720F4861BF1 -:103F70008093150108951092150108958091140100 -:103F8000681720F4861B8093140108951092140181 -:103F9000089580911301681720F4861B8093130104 -:103FA000089510921301089580911201681720F46A -:103FB000861B80931201089510921201089580913A -:103FC0001101681720F4861B809311010895109247 -:103FD0001101089580911001681720F4861B8093C9 -:103FE000100108951092100108950F931F938D31C1 -:103FF00009F471C008F045C0803109F485C008F5A6 -:10400000873009F46FC068F4863009F0ADC0809144 -:10401000DF01817F8E7F8093DF0181E08093EF015C -:10402000A4C08B3009F49EC08E3009F09DC08091F1 -:10403000DF0182FB222720F991E0922790FB82F991 -:104040006CC0863109F48EC060F4813109F08CC0F7 -:104050000E94181590910D0181E0892780930D0130 -:1040600081C0893109F47EC08B3109F07DC0809117 -:10407000DF0181FB222720F991E0922790FB81F953 -:104080004CC0853309F466C048F4873209F462C035 -:1040900008F44FC0893209F45DC066C0833438F437 -:1040A0008A3308F044C0883309F45CC05DC08334AF -:1040B00009F450C0883409F057C00E9418150FEF5A -:1040C00013ED20E3015010402040E1F700C0000054 -:1040D0000E948D1C47C00E947F210E947F100E9479 -:1040E000790940C09091DF01892F8095817080FB14 -:1040F00090F929F0966098609093DF0136C0997F1F -:10410000977F9093DF012EC08091DF0183FB2227F0 -:1041100020F991E0922790FB83F98093DF019923A6 -:1041200009F18091DF0181608093DF011BC0895319 -:1041300001C08D5141E050E060E070E08A019B01D8 -:1041400004C0000F111F221F331F8A95D2F7C90127 -:10415000B80104C061E070E080E090E00E94D818EF -:104160000E94181581E001C080E01F910F91089511 -:1041700080E0089580E008958E518A3030F4E82F71 -:10418000F0E0E65DFE4F8081089580E00895CF93D2 -:10419000C82F8091EF01813079F018F08230E9F179 -:1041A00086C0E0910E01F0910F018081813169F0AC -:1041B000823209F07EC009C0E0910E01F0910F013A -:1041C0008081813111F0823261F48C2F0E94B820FD -:1041D000811104C08C2F0E94F51F1DC081E090E06A -:1041E0001AC08C2F0E94BA20811114C0C43179F0FA -:1041F00048F4CB3079F0C03109F05FC082E08093A1 -:10420000EF0108C0C93219F0C83321F056C010922E -:10421000EF0153C081E0817052C0C93281F110F5C5 -:10422000C43169F1A8F4C73009F045C08AE0809331 -:10423000150194E19093140193E0909313018093FE -:10424000120188E08093110188E28093100133C04D -:1042500082EE8C0F863078F58C2F0E94BC208093E4 -:10426000EE0129C0CE34E9F020F4CB3421F56AE028 -:1042700013C0C13579F0C235F1F461E00DC0809111 -:10428000EE01882319F01092EE0115C081E08093B1 -:10429000EF0115C061E006C08091EE010E942F1F62 -:1042A0000AC06AE08091EE010E94A51F04C010922E -:1042B000EF0180E004C081E002C080E0ACCFCF918C -:1042C0000895E1E8F0E080818860808380818160EA -:1042D00080838FB7F89493E09093890090ED90934A -:1042E00088008FBF0895EFE6F0E0808182608083D0 -:1042F0000895EFE6F0E080818D7F80830895EFE6FA -:10430000F0E0908182E08927808308951F920F92C8 -:104310000FB60F9211242F933F934F935F936F9398 -:104320007F938F939F93AF93BF93EF93FF9380916E -:10433000F0019091F10101969093F1018093F001C9 -:10434000811103C082E00E947909E091F101E695B4 -:10435000E695F0E0EB54FB4FE4918091F0018E1371 -:1043600003C080E00E947909FF91EF91BF91AF9166 -:104370009F918F917F916F915F914F913F912F917D -:104380000F900FBE0F901F9018950E94CC2168943B -:10439000B1110C945B2208950E94402288F09F572F -:1043A00098F0B92F9927B751B0F0E1F0660F771F59 -:1043B000881F991F1AF0BA95C9F714C0B13091F04F -:1043C0000E945A22B1E008950C945A22672F782F48 -:1043D0008827B85F39F0B93FCCF386957795679514 -:1043E000B395D9F73EF490958095709561957F4F80 -:1043F0008F4F9F4F0895E89409C097FB3EF4909526 -:104400008095709561957F4F8F4F9F4F9923A9F0AD -:10441000F92F96E9BB279395F6958795779567953C -:10442000B795F111F8CFFAF4BB0F11F460FF1BC080 -:104430006F5F7F4F8F4F9F4F16C0882311F096E913 -:1044400011C0772321F09EE8872F762F05C06623C1 -:1044500071F096E8862F70E060E02AF09A95660F7A -:10446000771F881FDAF7880F9695879597F9089533 -:1044700057FD9058440F551F59F05F3F71F0479515 -:10448000880F97FB991F61F09F3F79F087950895FA -:10449000121613061406551FF2CF4695F1DF08C019 -:1044A000161617061806991FF1CF86957105610536 -:1044B00008940895E894BB2766277727CB0197F9DE -:1044C00008950E9474220C94E5220E94D72238F0AD -:1044D0000E94DE2220F0952311F00C94CE220C9441 -:1044E000D42211240C945B220E94382270F3959FF1 -:1044F000C1F3950F50E0551F629FF001729FBB27DB -:10450000F00DB11D639FAA27F00DB11DAA1F649F76 -:104510006627B00DA11D661F829F2227B00DA11D29 -:10452000621F739FB00DA11D621F839FA00D611DAF -:10453000221F749F3327A00D611D231F849F600DD0 -:10454000211D822F762F6A2F11249F5750409AF0F9 -:10455000F1F088234AF0EE0FFF1FBB1F661F771F85 -:10456000881F91505040A9F79E3F510580F00C9450 -:10457000CE220C945B225F3FE4F3983ED4F3869501 -:1045800077956795B795F795E7959F5FC1F7FE2BF0 -:10459000880F911D9695879597F9089597F99F67CC -:1045A00080E870E060E008959FEF80EC08950024BB -:1045B0000A941616170618060906089500240A9488 -:1045C00012161306140605060895092E0394000C0E -:1045D00011F4882352F0BB0F40F4BF2B11F460FF9D -:1045E00004C06F5F7F4F8F4F9F4F089597FB072E3B -:1045F00016F4009407D077FD09D00E94102307FC21 -:1046000005D03EF4909581959F4F089570956195E2 -:104610007F4F0895EE0FFF1F0590F491E02D099450 -:10462000AA1BBB1B51E107C0AA1FBB1FA617B707D8 -:1046300010F0A61BB70B881F991F5A95A9F78095F4 -:104640009095BC01CD010895F999FECF92BD81BD31 -:10465000F89A992780B50895A8E1B0E042E050E0CB -:104660000C944B23262FF999FECF92BD81BDF89A69 -:10467000019700B4021631F020BD0FB6F894FA9AF3 -:10468000F99A0FBE08950196272F0E9433230C94A8 -:104690003223DC01CB01FC01F999FECF06C0F2BD4B -:1046A000E1BDF89A319600B40D9241505040B8F7F0 -:0646B0000895F894FFCF0D -:1046B60002207B09090AE609B2097E090101CC013B -:1046C60028080A03140A404D363975042804F203F3 -:1046D600B9034C0365037E03970301020304050631 -:0446E60007080900B8 -:00000001FF diff --git a/keyboards/ergodox_ez/keymaps/tkuichooseyou/keymap.c b/keyboards/ergodox_ez/keymaps/tkuichooseyou/keymap.c deleted file mode 100644 index 87b77e42e..000000000 --- a/keyboards/ergodox_ez/keymaps/tkuichooseyou/keymap.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 |CMD+{ | | CMD+}| 6 | 7 | 8 | 9 | 0 | - | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Tab | Q | W | E | R | T | Hyper| | Meh | Y | U | I | O | P | \ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * |Ctrl/Esc| A | S | D | F | G |------| |------| H | J | K | L |; / L2| LGui | - * |--------+------+------+------+------+------| LGui | | LGui |------+------+------+------+------+--------| - * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | App | LGui | | Del |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, LGUI(LSFT(KC_LBRC)), - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, ALL_T(KC_NO), - 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, KC_LGUI, - 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 - LGUI(LSFT(KC_RBRC)), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - MEH_T(KC_NO), 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, - KC_LGUI, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, - KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1, - KC_DELT, 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/keyboards/ergodox_ez/keymaps/tm2030/keymap.c b/keyboards/ergodox_ez/keymaps/tm2030/keymap.c deleted file mode 100644 index ca8075226..000000000 --- a/keyboards/ergodox_ez/keymaps/tm2030/keymap.c +++ /dev/null @@ -1,242 +0,0 @@ -/* TypeMatrix-2030-like keymap */ -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" -#include "led.h" - -#define BASE 0 // default layer -#define DVRK 1 // Dvorak layer -#define NUMR 8 // numeric layer -#define FNLR 9 // fn layer - -#define MDBL0 1 -#define MFNLR 2 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Basic layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | Del | | Del | 6 | 7 | 8 | 9 | 0 | ] | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Tab | Q | W | E | R | T |Backsp| |Backsp| Y | U | I | O | P | [ | - * |--------+------+------+------+------+------|ace | |ace |------+------+------+------+------+--------| - * | LShift | A | S | D | F | G |------| |------| H | J | K | L | ; | '/Shift| - * |--------+------+------+------+------+------|Enter | |Enter |------+------+------+------+------+--------| - * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | \/Shift| - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |LCtrl | fn | LGui | Play |App/Alt| | RAlt | - | Home | = |End/Ctl| - * `-----------------------------------' `-----------------------------------' - * ,--------------. ,-------------. - * |Esc/Alt| num | | Left |Right | - * ,------+-------+------| |------+------+------. - * | | | PgUp | | Up | | | - * |Space |LShift |------| |------|RShift|Space | - * | | | PgDn | | Down | | | - * `---------------------' `--------------------' - */ -// 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_Q, KC_W, KC_E, KC_R, KC_T, KC_BSPC, - KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ENT, - KC_LCTL, M(MFNLR), KC_LGUI,KC_MPLY,ALT_T(KC_APP), - - ALT_T(KC_ESC), TG(NUMR), - KC_PGUP, - KC_SPC, KC_LSFT, KC_PGDN, - - // right hand - KC_DELT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RBRC, - KC_BSPC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, - KC_H, KC_J, KC_K, KC_L, KC_SCLN, SFT_T(KC_QUOT), - KC_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_BSLS), - KC_RALT, KC_MINS, KC_HOME, KC_EQL, CTL_T(KC_END), - - KC_LEFT, KC_RGHT, - KC_UP, - KC_DOWN, KC_RSFT, KC_SPC - ), -/* Dvorak layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | Del | | Del | 6 | 7 | 8 | 9 | 0 | = | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Tab | ' | , | . | P | Y |Backsp| |Backsp| F | G | C | R | L | / | - * |--------+------+------+------+------+------|ace | |ace |------+------+------+------+------+--------| - * | LShift | A | O | E | U | I |------| |------| D | H | T | N | S | -/Shift| - * |--------+------+------+------+------+------|Enter | |Enter |------+------+------+------+------+--------| - * | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | \/Shift| - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |LCtrl | fn | LGui | Play |App/Alt| | RAlt | [ | Home | ] |End/Ctl| - * `-----------------------------------' `-----------------------------------' - * ,--------------. ,-------------. - * |Esc/Alt| num | | Left |Right | - * ,------+-------+------| |------+------+------. - * | | | PgUp | | Up | | | - * |Space |LShift |------| |------|RShift|Space | - * | | | PgDn | | Down | | | - * `---------------------' `--------------------' - */ -// If it accepts an argument (i.e, is a function), it doesn't need KC_. -// Otherwise, it needs KC_* -[DVRK] = 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, KC_BSPC, - KC_LSFT, KC_A, KC_O, KC_E, KC_U, KC_I, - KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_ENT, - KC_LCTL, M(MFNLR), KC_LGUI, KC_MPLY, ALT_T(KC_APP), - - ALT_T(KC_ESC), TG(NUMR), - KC_PGUP, - KC_SPC, KC_LSFT, KC_PGDN, - - // right hand - KC_DELT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, - KC_BSPC, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, - KC_D, KC_H, KC_T, KC_N, KC_S, SFT_T(KC_MINS), - KC_ENT, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_T(KC_BSLS), - KC_RALT, KC_LBRC, KC_HOME, KC_RBRC, CTL_T(KC_END), - - KC_LEFT, KC_RGHT, - KC_UP, - KC_DOWN, KC_RSFT, KC_SPC - ), -/* Numeric Layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | | | | | Tab | / | * | - | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | F6 | F7 | F8 | F9 | F10 | | | | | Home | 7 | 8 | 9 | + | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | F11 | F12 | | | |------| |------| Up | End | 4 | 5 | 6 | + | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | Left | Down | Right| 1 | 2 | 3 |KpEnter | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | 0 | 00 | . |Etr/Ctl| - * `----------------------------------' `-----------------------------------' - * ,-------------. ,-------------. - * | | | |n.lock|c.lock| - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// SYMBOLS -[NUMR] = KEYMAP( - // left hand - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, - KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, - KC_TRNS, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_TAB, KC_PSLS, KC_PAST, KC_PMNS, - KC_TRNS, KC_TRNS, KC_HOME, KC_P7, KC_P8, KC_P9, KC_PPLS, - KC_UP, KC_END, KC_P4, KC_P5, KC_P6, KC_PPLS, - KC_LEFT, KC_DOWN, KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_TRNS, KC_P0, M(MDBL0),KC_PDOT, CTL_T(KC_PENT), - - KC_NLCK, KC_CAPS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), -/* fn layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | |Insert| |Insert|Eject |Power |Sleep | Wake |PrtScr|ScrollLk| - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | | | |VolUp | | | | | | | | Pause | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | Calc | Mail |Browsr|------| |------| | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | cut | copy |paste | Mute |VolDn | | | | | | | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | Next | | | - * | Mute | |------| |------| | | - * | | | | | Prev | | | - * `--------------------' `--------------------' - */ -// MEDIA AND MOUSE -[FNLR] = KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, - KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_MAIL, KC_WHOM, - KC_TRNS, KC_TRNS, LSFT(KC_DELT),LCTL(KC_INS),LSFT(KC_INS), KC_MUTE, KC_VOLD, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_MUTE, KC_TRNS, KC_TRNS, - // right hand - KC_INS, KC_EJCT, KC_PWR, KC_SLEP, KC_WAKE, KC_PSCR, KC_SLCK, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_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_MNXT, KC_TRNS, KC_TRNS -), -}; - -const uint16_t PROGMEM fn_actions[] = { -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case MDBL0: - if (record->event.pressed) { - return MACRO( I(25), T(P0), T(P0), END ); - } - break; - case MFNLR: - layer_invert(NUMR); - layer_invert(FNLR); - 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) { - - ergodox_board_led_off(); - ergodox_right_led_1_off(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); - // led 1: numeric layer - if (layer_state & (1 << NUMR)) { - ergodox_right_led_1_on(); - } - // led 2: Dvorak layer - if (default_layer_state == 1 << DVRK) { - ergodox_right_led_2_on(); - } - // led 3: caps lock - if (host_keyboard_leds() & (1<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/keyboards/ergodox_ez/keymaps/tonyabra_osx/readme.md b/keyboards/ergodox_ez/keymaps/tonyabra_osx/readme.md deleted file mode 100644 index f9d76efc2..000000000 --- a/keyboards/ergodox_ez/keymaps/tonyabra_osx/readme.md +++ /dev/null @@ -1,5 +0,0 @@ -# ErgoDox EZ OS X Simplified Configuration - -This keyboard configuration replaces the hyper and meh keys with the command key. It also removes all of the meta keys that require a "hold" because I found that I hesitate when I type, which can accidentally fire those combinations. On the upper left of the left hand, I mimicked the Mac placement of tab and escape, and on the upper right of the right hand, I placed an additional enter key for convenience when breezing through prompts. - -This is my standard working configuration for now, but I can see myself tweaking it as I use it more. I highly recommend you do the same. \ No newline at end of file diff --git a/keyboards/ergodox_ez/keymaps/townk_osx/config.h b/keyboards/ergodox_ez/keymaps/townk_osx/config.h deleted file mode 100644 index 58ba690af..000000000 --- a/keyboards/ergodox_ez/keymaps/townk_osx/config.h +++ /dev/null @@ -1,92 +0,0 @@ -/* -Copyright 2012 Jun Wako -Copyright 2013 Oleg Kostyuk - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#ifndef CONFIG_H -#define CONFIG_H - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x1307 -#define DEVICE_VER 0x0001 -#define MANUFACTURER ErgoDox EZ -#define PRODUCT ErgoDox EZ -#define DESCRIPTION t.m.k. keyboard firmware for Ergodox - -/* key matrix size */ -#define MATRIX_ROWS 14 -#define MATRIX_COLS 6 - -#define MOUSEKEY_DELAY 100 -#define MOUSEKEY_INTERVAL 20 -#define MOUSEKEY_MAX_SPEED 3 -#define MOUSEKEY_TIME_TO_MAX 10 - -#define TAPPING_TOGGLE 1 - -#define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } -#define ROWS (int []){ D0, D5, B5, B6 } - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -/* define if matrix has ghost */ -//#define MATRIX_HAS_GHOST - -/* number of backlight levels */ -#define BACKLIGHT_LEVELS 3 - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 2 -#define TAPPING_TERM 200 -#define IGNORE_MOD_TAP_INTERRUPT // this makes it possible to do rolling combos (zx) with keys that convert to other keys on hold (z becomes ctrl when you hold it, and when this option isn't enabled, z rapidly followed by x actually sends Ctrl-x. That's bad.) - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -/* key combination for command */ -#define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || \ - keyboard_report->mods == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) \ -) - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -// #define NO_DEBUG - -/* disable print */ -// #define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION -//#define DEBUG_MATRIX_SCAN_RATE -#define ONESHOT_TAP_TOGGLE 2 -#define ONESHOT_TIMEOUT 3000 - -#endif diff --git a/keyboards/ergodox_ez/keymaps/townk_osx/keymap.c b/keyboards/ergodox_ez/keymaps/townk_osx/keymap.c deleted file mode 100644 index 07e58a491..000000000 --- a/keyboards/ergodox_ez/keymaps/townk_osx/keymap.c +++ /dev/null @@ -1,285 +0,0 @@ -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" -#include "action_util.h" -#include "led.h" -#include "keymap.h" -#include "timer.h" - -/* - -# Why this Layout - -This layout was based on Kinesis layout and other ErgoDox user layouts -available. It's target to be used on a MacOS but I'm pretty sure it can be -addapted to Windows and/or Linux easily. - -## Function Key - -The `fn` key work almost like it would in any other keyboard with the exception -it has a semi-sticky behavior. What does that mean? - -Well, if you press the `fn` and release it, the keyboard will be put on the -_function layout_ and the next key stroke will be processed as if the `fn` key -was pressed. Aftwards, the leyout get back to _normal_. If you hold `fn` and -press any other key, when you release them, the keyboard leyout is back to -_normal_. - -While pressing the `fn` with the left hand and strikeing the other keys on the -right hand is farly easy, the same cannot being said for the other keys on the -left side. So, instead of trying to do contorcionism with my left hand, I -decided to do a semi-sticky version of `fn`. This way, I can press the `fn` -key with my pinky, release it and press the `1` key to issue an `F1` to the -operating system. - -## Key-Pad Key - -The `key pad` key is a layout switch key. If pressed, it will put the keyboard -on the _key pad layout_ and stay there until key is pressed again. - -This is used to make the keyboard behave mostly like a **num pad keyboard**. - -## Notes -- Regardless in which layout you are, keys from other layouts are not - accessible. This means that if you are on the _key pad layout_, the left hand - will be pretty much unusable. - Of course that like anything else, there are exceptions to this rule. - Modifiers should remain accessible throughout the layers. -- The _shift key_ is, like the _function key_, also configured to have a sticky - behavior. -- All sticky keys have a timeout of 3 seconds. - -*/ -#define BASE 0 -#define KEYPAD 1 -#define FN 2 - -#define MACRO_TMUX_ESC 10 -#define MACRO_TMUX_PASTE 11 -#define MACRO_OSX_COPY 12 -#define MACRO_OSX_PASTE 13 - -#define M_TESC M(MACRO_TMUX_ESC) -#define M_TPASTE M(MACRO_TMUX_PASTE) -#define M_OSXCPY M(MACRO_OSX_COPY) -#define M_OSXPST M(MACRO_OSX_PASTE) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0: Base Layer - * - * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | `~ | 1 | 2 | 3 | 4 | 5 | ESC | | Pwr | 6 | 7 | 8 | 9 | 0 | - _ | - * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | Tab | Q | W | E | R | T | F16 | | F17 | Y | U | I | O | P | = + | - * |-----------+------+------+------+------+------| Meh | | Meh |------+------+------+------+------+-----------| - * | \ (Ctrl) | A | S | D | F | G |------| |------| H | J | K | L | ; | ' " (Ctrl)| - * |-----------+------+------+------+------+------| F18 | | F19 |------+------+------+------+------+-----------| - * | LShift | Z | X | C | V | B | Hyper| | Hyper| N | M | , | . | / | RShift | - * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * | FN | KPAD |LCtrl | LAlt | LGui | | RGui | RAlt | RCtrl| KPAD | FN | - * `-----------------------------------' `-----------------------------------' - * ,-------------. ,-------------. - * | M(0) | M(1) | | M(2) | M(3) | - * ,------|------|------| |------+------+------. - * | | | Home | | PgUp | | | - * |Backsp| Del |------| |------| Enter| Space| - * | | | End | | PgDn | | | - * `--------------------' `--------------------' - * - * M(0) = Ctrk+A Esc - * (this is used to issue the Esc key to the Tmux application) - * M(1) = Ctrk+A P - * (this is used to issue the Paste key to the Tmux application) - * M(2) = Cmd+C - * M(3) = Cmd+V - */ -[BASE]=KEYMAP(//left half - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, MEH_T(KC_F16), - CTL_T(KC_BSLS), KC_A, KC_S, KC_D, KC_F, KC_G, - KC_FN2, KC_Z, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_F18), - KC_FN1, TG(KEYPAD), KC_LCTRL, KC_LALT, KC_LGUI, - M_TESC, M_TPASTE, - KC_HOME, - KC_BSPC, KC_DELT, KC_END, - //right half - KC_POWER, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - MEH_T(KC_F17), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_EQL, - KC_H, KC_J, KC_K, KC_L, KC_SCLN, CTL_T(KC_QUOT), - ALL_T(KC_F19), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_FN2, - KC_RGUI, KC_RALT, CTL_T(KC_LBRC), KC_FN3, KC_FN1, - M_OSXCPY, M_OSXPST, - KC_PGUP, - KC_PGDN, KC_ENT, KC_SPC), - -/* Keymap 1: KeyPad Layer - * - * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | | | LClk | RClk | MClk | | | | BTab | Clear| / | * | ^ | ( | | - * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | M.Accel 2 | |ScrlUp| U |ScrlDn| | | | Tab | 7 | 8 | 9 | + | ) | | - * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | M.Accel 1 | | L | D | R | |------| |------| 4 | 5 | 6 | - | | | - * |-----------+------+------+------+------+------| | |Return|------+------+------+------+------+-----------| - * | M.Accel 0 | |ScrlL | |ScrlR | | | | | 1 | 2 | 3 | = | | | - * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * | | XXXX | | | | | 0 | . | , | XXXX | | - * `-----------------------------------' `-----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | XXXX | | - * | | |------| |------| XXXX | | - * | | | | | | XXXX | | - * `--------------------' `--------------------' - */ -[KEYPAD]=KEYMAP(//left half - KC_NO, KC_NO, KC_MS_BTN1, KC_MS_BTN2, KC_MS_BTN3, KC_NO, KC_NO, - KC_MS_ACCEL2, KC_NO, KC_MS_WH_UP, KC_MS_U, KC_MS_WH_DOWN, KC_NO, KC_NO, - KC_MS_ACCEL1, KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, - KC_MS_ACCEL0, KC_NO, KC_MS_WH_LEFT, KC_NO, KC_MS_WH_RIGHT, KC_NO, KC_NO, - KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, - KC_NO, - KC_NO, KC_NO, KC_NO, - //right half - LSFT(KC_TAB), KC_CLEAR, KC_KP_SLASH, KC_KP_ASTERISK, KC_CIRCUMFLEX, KC_LPRN, KC_NO, - KC_TAB, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, KC_RPRN, KC_NO, - KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_MINUS, KC_NO, KC_NO, - KC_KP_ENTER, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_EQUAL, KC_NO, KC_NO, - KC_KP_0, KC_KP_DOT, KC_KP_COMMA, KC_TRNS, KC_NO, - KC_NO, KC_NO, - KC_NO, - KC_NO, KC_TRNS, KC_NO), - -/* Keymap 2: Functions Layer - * - * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | Vol. Up | - * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | | Stop | Rw | Rec | FF | | XXXX | | XXXX | | | | | | Vol. Down | - * |-----------+------+------+------+------+------| XXXX | | XXXX |------+------+------+------+------+-----------| - * | CapsLock | Eject| Prev | Play | Next | |------| |------| Left | Down | Up | Right| | Mute | - * |-----------+------+------+------+------+------| XXXX | | XXXX |------+------+------+------+------+-----------| - * | L Shift | | | | | | XXXX | | XXXX | | | | | | R Shift | - * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * | XXXXX | | XXXX | XXXX | XXXX | | XXXX | XXXX | XXXX | | XXXXX | - * `-----------------------------------' `-----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - * - * XXX = These keys are transparent keys that, when pressed, they issue the key from the previous layer. - */ -[FN]=KEYMAP(//left half - KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, - KC_NO, KC_MEDIA_STOP, KC_MEDIA_REWIND, KC_MEDIA_SELECT, KC_MEDIA_FAST_FORWARD, KC_NO, KC_TRNS, - KC_CAPS, KC_MEDIA_EJECT, KC_MEDIA_PREV_TRACK, KC_MEDIA_PLAY_PAUSE, KC_MEDIA_NEXT_TRACK, KC_NO, - KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, - KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, - KC_NO, KC_NO, - KC_NO, - KC_NO, KC_NO, KC_NO, - //right half - KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_VOLU, - KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLD, - KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_NO, KC_MUTE, - KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_RSFT, - KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, - KC_NO, KC_NO, - KC_NO, - KC_NO, KC_NO, KC_NO)}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_ONESHOT(FN), - [2] = ACTION_MODS_ONESHOT(MOD_LSFT), // Sticky shift light. Tap for the next keypress to be shifted. Hold for regular shift. - [3] = ACTION_LAYER_TAP_KEY(KEYPAD, KC_RBRC), -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - // MACRODOWN only works in this function - switch(id) { - case MACRO_TMUX_ESC: - if (record->event.pressed) { - return MACRO(D(LCTRL), T(A), U(LCTRL), D(ESC), END); - } - return MACRO(U(ESC), END); - case MACRO_TMUX_PASTE: - if (record->event.pressed) { - return MACRO(D(LCTRL), T(A), U(LCTRL), D(P), END); - } - return MACRO(U(P), END); - case MACRO_OSX_COPY: - if (record->event.pressed) { - return MACRO(D(LGUI), D(C), END); - } - return MACRO(U(C), U(LGUI), END); - case MACRO_OSX_PASTE: - if (record->event.pressed) { - return MACRO(D(LGUI), D(V), END); - } - return MACRO(U(V), U(LGUI), END); - } - return MACRO_NONE; -}; - -// Runs just one time when the keyboard initializes. -void matrix_init_user(void) { -}; - -uint8_t current_layer = BASE; - -// Runs constantly in the background, in a loop. -void matrix_scan_user(void) { - uint8_t layer = biton32(layer_state); - - ergodox_led_all_off(); - ergodox_led_all_set(LED_BRIGHTNESS_LO); - - switch (layer) { - case BASE: - current_layer = BASE; - break; - case KEYPAD: - current_layer = KEYPAD; - break; - default: - // none - break; - } - - // layer leds - if (current_layer == KEYPAD) { - ergodox_right_led_3_on(); - } - - // capslock - if (host_keyboard_leds() & (3<mods & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) && // is shift pressed and there is no other - !(keyboard_report->mods & (~MOD_BIT(KC_LSFT) & ~MOD_BIT(KC_RSFT)))) || // modifier being pressed as well - (get_oneshot_mods() & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) && !has_oneshot_mods_timed_out())) { // or the one shot shift didn't timed out - ergodox_right_led_1_set(LED_BRIGHTNESS_HI); - ergodox_right_led_1_on(); - } -}; diff --git a/keyboards/ergodox_ez/keymaps/townk_osx/makefile.mk b/keyboards/ergodox_ez/keymaps/townk_osx/makefile.mk deleted file mode 100644 index e757557bd..000000000 --- a/keyboards/ergodox_ez/keymaps/townk_osx/makefile.mk +++ /dev/null @@ -1,4 +0,0 @@ -# I don't want my keyboard blinking lights when is suppose to be asleep. -SLEEP_LED_ENABLE = no - -CONFIG_H = keymaps/$(KEYMAP)/config.h diff --git a/keyboards/ergodox_ez/keymaps/townk_osx/readme.md b/keyboards/ergodox_ez/keymaps/townk_osx/readme.md deleted file mode 100644 index c2853ca17..000000000 --- a/keyboards/ergodox_ez/keymaps/townk_osx/readme.md +++ /dev/null @@ -1,77 +0,0 @@ -# Townk's Keymap - -Trying to take care of an enjury on my arm I borrow an ergonomic keyboard from -a frient ([Kinesis Advantage](http://www.kinesis-ergo.com/shop/advantage-pro-for-pc-mac/)). - -I really enjoyed my time with it but there were some anoyancies: - -* The curvature on the keys bothered me since I'm a Vim user and using the - motion keys on my editor was awkard. -* I had to spend too much time remapping the keyboard to make some symbol keys - more accessible to me. -* The fact that my hands had to stay close to each other was a bit stressfull - to my sholders. - -After a long research I find out that Ergodox EZ would be perfect for my needs -and purchase one. Before the keyboard even got in my hands I started to think -on the layout I would use on it and soon enough I planed couple adjustments -from the Kinesis I was using so far. - -## The layout - -Here are the layout mapping in images so you can have a glimpse on it: - -![Base Layout](townk_osx_base.png) -![fn Layout](townk_osx_fn.png) -![Keypad & Mouse Layout](townk_osx_keypad.png) - -Notice that, differently from the default behavior, my layer keys are not transparent -by default, which means that if you press any non-labeled white key, nothing will be -handled to the OS. - -### One shot keys - -It all started with the access to the function keys (F1, F2, F3...), since -those keys are located on a different layer I needed a way to press them with -minimal effort without disrupting my flow. - -For me, togglihg a layer to press a button and than toggle it back is a waste -of time (although I admit it's a single tap from what I have), so I decided to -do it as a one shot key. I could press it and the next pressed key would be -handled by the target layer which just after it delivers the key to the OS it -would get back to the previous layer. - -After setting up my layout to do just that I realized that occasionally I -would stop myseld on the middle of the process and the one shot layer would be -still triggered until I press any other key. So to prevent me from tapping -keys I don't want I added a timeout of 3 seconds for the one shot actions. - -Ultimately I tested the shift key as a one shot one and really like it, so -here you have it, all the one shot keys on my layout. - -## Glossary - -If you're not familiar with the Mac symbols used on some keys, here is a -reference to them: - -| Symbol | Description | -| :----: | ------------------- | -| ⌘ | Command | -| ⇪ | Caps Lock | -| ⇧ | Shift | -| ⌥ | Option (alt) | -| ⎋ | Esc | -| ⇥ | Tab forward | -| ⇤ | Tab backward | -| ⌃ | Control | -| ␣ | Space | -| ⌫ | Backspace | -| ⌦ | Delete | -| ⏎ | Enter | -| ⌤ | Return | -| ⌽ | Power on/off button | -| ↖ | Home | -| ↘ | End | -| ⇞ | Page up | -| ⇟ | Page down | -| ⌧ | Clear | diff --git a/keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_base.png b/keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_base.png deleted file mode 100644 index f9bc8b443..000000000 Binary files a/keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_base.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_fn.png b/keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_fn.png deleted file mode 100644 index 983b72348..000000000 Binary files a/keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_fn.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_keypad.png b/keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_keypad.png deleted file mode 100644 index 8f04b4327..000000000 Binary files a/keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_keypad.png and /dev/null differ diff --git a/keyboards/ergodox_ez/keymaps/twey/keymap.c b/keyboards/ergodox_ez/keymaps/twey/keymap.c deleted file mode 100644 index 019930f2a..000000000 --- a/keyboards/ergodox_ez/keymaps/twey/keymap.c +++ /dev/null @@ -1,221 +0,0 @@ -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" -#include "keymap_plover.h" - -#define BASE 0 // default layer -#define SYMB 1 // symbols -#define STEN 2 // steno -#define MDIA 3 // media keys - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0: Basic layer - * - * ,---------------------------------------------------. ,---------------------------------------------------. - * | = | 1 | 2 | 3 | 4 | 5 | STEN | | NONE | 6 | 7 | 8 | 9 | 0 | \ | - * |--------+------+------+------+-------+-------------| |-------+------+------+------+------+------+--------| - * | Del | ' | , | . | P | Y | Esc | | Caps | F | G | C | R | L | / | - * |--------+------+------+------+-------+------| | | |------+------+------+------+------+--------| - * | BkSp | A | O | E | U | I |------| |-------| D | H | T | N | S | - | - * |--------+------+------+------+-------+------| Tab | | Enter |------+------+------+------+------+--------| - * | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | RShift | - * `--------+------+------+------+-------+-------------' `--------------+------+------+------+------+--------' - * | L1 | NONE | Grv | Left | Right | | Up | Down | [ | ] | L1 | - * `-----------------------------------' `----------------------------------' - * ,--------------. ,---------------. - * | PgUp | PgDn | | Home | End | - * ,------|-------|------| |-------+-------+------. - * | | | NONE | | AltGr | | | - * | Alt | Enter |------| |-------| Space | Ctrl | - * | | | Supr | | ~MDIA | | | - * `---------------------' `----------------------' - */ -// 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, M(0), - KC_DELT, KC_QUOT, KC_COMM,KC_DOT, KC_P, KC_Y, KC_ESC, - KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I, - KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_TAB, - MO(SYMB), KC_NO, KC_GRV, KC_LEFT,KC_RGHT, - KC_PGUP,KC_PGDN, - KC_NO, - KC_LALT,KC_ENT ,KC_LGUI, - // right hand - KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, - KC_CAPS, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, - KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, - KC_ENT, KC_B, KC_M, KC_W, KC_V, KC_Z , KC_RSFT, - KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, MO(SYMB), - KC_HOME, KC_END, - KC_RALT, - MO(MDIA),KC_SPC,KC_RCTL - ), -/* 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 -), - -[STEN] = KEYMAP( // layout: layer 2: Steno for Plover - // left hand - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, - KC_NO, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_STAR, - KC_NO, PV_LS, PV_LT, PV_LP, PV_LH, PV_STAR, - KC_NO, PV_LS, PV_LK, PV_LW, PV_LR, PV_STAR, PV_STAR, - KC_TRNS,KC_NO, KC_NO, KC_TRNS, KC_TRNS, - KC_NO, KC_NO, - KC_NO, - PV_A, PV_O, KC_NO, - // right hand - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - PV_STAR, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, - PV_STAR, PV_RF, PV_RP, PV_RL, PV_RT, PV_RD, - PV_STAR, PV_STAR, PV_RR, PV_RB, PV_RG, PV_RS, PV_RZ, - KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_TRNS, - KC_NO, KC_NO, - KC_NO, - KC_TRNS,PV_E, PV_U -), - -/* Keymap 3: Media and mouse keys - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | MsUp | | | | | | | Back | | Frwd | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | |MsLeft|MsDown|MsRght| |------| |------| | Prev | Play | Next | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// 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_WBAK, KC_TRNS, KC_WFWD, KC_TRNS, KC_TRNS, - KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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(MDIA) // FN1 - Momentary Layer 3 (Media) -}; - -void toggle_steno(int pressed) -{ - uint8_t layer = biton32(layer_state); - - if (pressed) { - if (layer != STEN) layer_on(STEN); else layer_off(STEN); - - register_code(PV_LP); - register_code(PV_LH); - register_code(PV_LR); - register_code(PV_O); - register_code(PV_RL); - register_code(PV_RG); - } else { - unregister_code(PV_LP); - unregister_code(PV_LH); - unregister_code(PV_LR); - unregister_code(PV_O); - unregister_code(PV_RL); - unregister_code(PV_RG); - } -} - -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: - toggle_steno(record->event.pressed); - 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) { - uint32_t layer0 = layer_state & (1UL << 0), - layer1 = layer_state & (1UL << 1), - layer2 = layer_state & (1UL << 2), - layer3 = layer_state & (1UL << 3); - - ergodox_board_led_off(); - ergodox_right_led_1_off(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); - - if (layer1) ergodox_right_led_1_on(); - if (layer2) ergodox_right_led_2_on(); - if (layer3) ergodox_right_led_3_on(); -}; diff --git a/keyboards/ergodox_ez/keymaps/twey/readme.md b/keyboards/ergodox_ez/keymaps/twey/readme.md deleted file mode 100644 index 979e4261e..000000000 --- a/keyboards/ergodox_ez/keymaps/twey/readme.md +++ /dev/null @@ -1,17 +0,0 @@ -# Twey's Home Configuration -## Layers -- Layer 0: Non-ANSI Dvorak layout, with modified modifiers — all - modifiers on thumb keys, as well as return and space. -- Layer 1: Default symbol layout. -- Layer 2: Plover-oriented stenography layer. -- Layer 3: Extended media/mouse layout. - -## Unusual features -The Plover key (top right key on the left half) also sends my Plover -‘toggle’ chord (SH-FT) when pressed, as well as toggling the steno -layer, so you can toggle between steno and typing modes with a single -keypress. - -If you want to use this feature, you'll need to add the -`commands.json` dictionary to your Plover dictionaries, or define the -toggle stroke (`PHROLG`) yourself. diff --git a/keyboards/ergodox_ez/keymaps/workman_osx_mdw/keymap.c b/keyboards/ergodox_ez/keymaps/workman_osx_mdw/keymap.c deleted file mode 100644 index 8effa53b2..000000000 --- a/keyboards/ergodox_ez/keymaps/workman_osx_mdw/keymap.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; - } - 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/keyboards/ergodox_ez/keymaps/zweihander-osx/keymap.c b/keyboards/ergodox_ez/keymaps/zweihander-osx/keymap.c deleted file mode 100644 index 3444152bc..000000000 --- a/keyboards/ergodox_ez/keymaps/zweihander-osx/keymap.c +++ /dev/null @@ -1,233 +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 SGWK 0 // "sagewick", ⌘S ⌘⇥ -#define SGWF 1 // "sagewick freshly", ⌘S ⌘⇥ ⌘R -#define BBED 2 // BBEdit -#define TMNL 3 // Terminal -#define SAFA 4 // Safari -#define ALFRED_LEAD_TIME 100 // time, in milliseconds, to let Alfred come to the fore and accept keyboard input - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0: Basic layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | = | 1 | 2 | 3 | 4 | 5 | L1 | | L1 | 6 | 7 | 8 | 9 | 0 | - | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | ⌦ | Q | W | E | R | T | ~L1 | | ~L1 | Y | U | I | O | P | \ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | ⌫ | A | S | D | F | G |------| |------| H | J | K | L |; / L2| ' / L⌘ | - * |--------+------+------+------+------+------| L⌘ | | L⌘ |------+------+------+------+------+--------| - * | L⇧ | Z | X | C | V | B | | | | N | M | , | . | / / ⌃| R⇧ | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | L⌃ | L⌥ | L⌘ | ← | → | | ↑ | ↓ | [ | ] | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,---------------. - * | `~ | '" | | ⎋ | ⌫ | - * ,------|------|------| |------+--------+------. - * | | | PgUp | | PgDn | | | - * | | ⌫ |------| |------| ⇥ |Enter | - * | | | L⌥ | | L⌃ | | | - * `--------------------' `----------------------' - */ -// 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, TG(SYMB), - KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(SYMB), - KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LGUI, - KC_LCTL, KC_LALT, KC_LGUI,KC_LEFT,KC_RGHT, - KC_GRV, KC_QUOT, - KC_PGUP, - KC_SPC,KC_BSPC,KC_LALT, - // right hand - TG(SYMB), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - MO(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),GUI_T(KC_QUOT), - KC_LGUI, KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, - KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_SPC , - KC_ESC, KC_BSPC, - KC_PGDN, - KC_LCTL, KC_TAB, KC_ENT - ), -/* Keymap 1: Symbol Layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | [ | ] | { | } | " | | | | / | 7 | 8 | 9 | * | F12 | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | < | > | ( | ) | ' |------| |------| - | 4 | 5 | 6 | + | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | & | 1 | 2 | 3 | = | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | 0 | . | ← | → | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | Home | | | - * | | |------| |------| | | - * | | | | | End | | | - * `--------------------' `--------------------' - */ -// SYMBOLS -[SYMB] = KEYMAP( - // left hand - KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, - KC_TRNS,KC_LBRC,KC_RBRC,KC_LCBR,KC_RCBR,KC_DQUO,KC_TRNS, - KC_TRNS,KC_LABK,KC_RABK,KC_LPRN,KC_RPRN,KC_QUOT, - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,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_SLSH, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, - KC_MINS, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, - KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_EQL, KC_TRNS, - KC_0, KC_DOT, KC_LEFT, KC_RGHT, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_HOME, - KC_END , KC_TRNS, KC_TRNS -), -/* Keymap 2: Media keys - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F14 | F15 | | | | | | ⌘Q | ⌘W | ⌘⇧` | ⌘` | | | Power | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | PgUp |⌘S⌘⇥⌘R| Term | | | | ⌘] | ⌥⌘↑ | ↑ | ⌥⌘↓ | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | |Safari| PgDn | | |------| |------| ⌘[ | ← | ↓ | → | | ⏯ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | |BBEdit| | | |L⇧+Spc| Spc | ⏮ | ⏭ | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | |VolUp |VolDn | Mute | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | Home | | End | | | - * | | |------| |------| ⌘C | ⌘V | - * | | | | | ⌘X | | | - * `--------------------' `--------------------' - */ -// MEDIA AND MOUSE -[MDIA] = KEYMAP( - KC_TRNS, KC_F14 , KC_F15 , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, /* F14 dims screen, F15 brightens */ - KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, M(SGWF), M(TMNL), KC_TRNS, - KC_TRNS, KC_TRNS, M(SAFA), KC_PGDN, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M(BBED), KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_HOME, - KC_TRNS, KC_TRNS, KC_TRNS, - // right hand - LGUI(KC_Q), LGUI(KC_W), LGUI(LSFT(KC_GRV)), LGUI(KC_GRV), KC_TRNS, KC_TRNS, KC_PWR, - KC_TRNS, LGUI(KC_RBRC), LGUI(LALT(KC_UP)), KC_UP , LGUI(LALT(KC_DOWN)), KC_TRNS, KC_TRNS, - LGUI(KC_LBRC), KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_MPLY, - KC_TRNS, LSFT(KC_SPC), KC_SPC , KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, - KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - LGUI(KC_X), LGUI(KC_C), LGUI(KC_V) -), -}; - -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 SGWK: - if (record->event.pressed) { - return MACRO( - I(10), - D(LGUI), T(S), U(LGUI), - D(LGUI), T(TAB), U(LGUI), - END); - } - break; - case SGWF: - if (record->event.pressed) { - return MACRO( - I(10), - D(LGUI), T(S), U(LGUI), - D(LGUI), T(TAB), U(LGUI), - D(LGUI), T(R), U(LGUI), - END); - } - break; - case BBED: - if (record->event.pressed) { - return MACRO( - I(10), - D(LALT), T(SPC), U(LALT), W(ALFRED_LEAD_TIME), - T(B), T(B), T(E), T(D), T(I), T(T), - T(ENT), - END); - } - break; - case TMNL: - if (record->event.pressed) { - return MACRO( - I(10), - D(LALT), T(SPC), U(LALT), W(ALFRED_LEAD_TIME), - T(T), T(E), T(R), T(M), T(I), T(N), T(A), T(L), - T(ENT), - END); - } - break; - case SAFA: - if (record->event.pressed) { - return MACRO( - I(10), - D(LALT), T(SPC), U(LALT), W(ALFRED_LEAD_TIME), - T(S), T(A), T(F), T(A), T(R), T(I), - T(ENT), - END); - } - 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/keyboards/ergodox_ez/keymaps/zweihander-osx/readme.markdown b/keyboards/ergodox_ez/keymaps/zweihander-osx/readme.markdown deleted file mode 100644 index 7bce7c690..000000000 --- a/keyboards/ergodox_ez/keymaps/zweihander-osx/readme.markdown +++ /dev/null @@ -1,45 +0,0 @@ -# The Zweihander Layout - -NB: the backtick (\`) is special in Markdown. If I write ⌘\` in this readme, I mean “command-backtick”, not “command-backslash-backtick”. - -This layout is tuned for people who… - - -## use OS X - -This layout doesn’t make any concessions for Windows use. While it should work fine in Windows, I’m not about to devote precious keyboard space to Windows-specific shortcuts. - - -## mouse left-handed while doing other things with the right hand - -I tend to have my mouse in my left hand, but I like to use my other hand to make things go faster. I’ve added a bunch of buttons to the media layer to speed up browsing in Safari and Finder: - -- Close Window (⌘W) -- Back (⌘[) -- Forward (⌘]) -- Open and Close Parent Folder (⌥⌘↓) -- Go Up and Close Just-Left Folder (⌥⌘↑) -- Cycle through open windows in current application (⌘\` and ⌘⇧\`) -- Cycle through tabs in current window (⌥⇥ and ⌥⇧⇥) -- Space (page down in browsers; Quick Look in the Finder) -- Shift-Space (page up in web browsers) - -Because moving letter-by-letter is way slower than moving word-by-word, I added Option (⌥) to the bottommost button on the left side. This key can be held easily while holding ; (activate media layer) and pressing J and L to move left and right by word. - - -## use lots of modifier keys in OS X menu-item shortcuts - -I wanted to preserve the feel of a number of shortcuts that involve pressing lots of modifier keys at once; this is why the bottom left of the keyboard has shift, control, option, and command in the usual spaces. Further, some common shortcuts I press have a key on the right side of the keyboard. These shortcuts include: - -- Empty Trash Without Asking for Confirmation (⇧⌥⌘⌫) -- Shut Down Without Asking for Confirmation (⇧⌥⌘ power) - - -## use Emacs-style shortcuts - -I press C-a, C-e, and C-k all the time. It’s difficult to press these key combinations with the control key on the bottom left and I’m too quick on the draw for the control function on the / key to work reliably, so the bottommost thumb button on the right side is another control key. - - -## use spreadsheets - -All the common spreadsheet operations (+-*/=) are now on the right side of the symbol layer. diff --git a/keyboards/ergodox_ez/matrix.c b/keyboards/ergodox_ez/matrix.c deleted file mode 100644 index dc29cf5cd..000000000 --- a/keyboards/ergodox_ez/matrix.c +++ /dev/null @@ -1,382 +0,0 @@ -/* - -Note for ErgoDox EZ customizers: Here be dragons! -This is not a file you want to be messing with. -All of the interesting stuff for you is under keymaps/ :) -Love, Erez - -Copyright 2013 Oleg Kostyuk - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -/* - * scan matrix - */ -#include -#include -#include -#include "wait.h" -#include "action_layer.h" -#include "print.h" -#include "debug.h" -#include "util.h" -#include "matrix.h" -#include "ergodox_ez.h" -#include "i2cmaster.h" -#ifdef DEBUG_MATRIX_SCAN_RATE -#include "timer.h" -#endif - -/* - * This constant define not debouncing time in msecs, but amount of matrix - * scan loops which should be made to get stable debounced results. - * - * On Ergodox matrix scan rate is relatively low, because of slow I2C. - * Now it's only 317 scans/second, or about 3.15 msec/scan. - * According to Cherry specs, debouncing time is 5 msec. - * - * And so, there is no sense to have DEBOUNCE higher than 2. - */ - -#ifndef DEBOUNCE -# define DEBOUNCE 5 -#endif -static uint8_t debouncing = DEBOUNCE; - -/* matrix state(1:on, 0:off) */ -static matrix_row_t matrix[MATRIX_ROWS]; -static matrix_row_t matrix_debouncing[MATRIX_ROWS]; - -static matrix_row_t read_cols(uint8_t row); -static void init_cols(void); -static void unselect_rows(void); -static void select_row(uint8_t row); - -static uint8_t mcp23018_reset_loop; - -#ifdef DEBUG_MATRIX_SCAN_RATE -uint32_t matrix_timer; -uint32_t matrix_scan_count; -#endif - - -__attribute__ ((weak)) -void matrix_init_user(void) {} - -__attribute__ ((weak)) -void matrix_scan_user(void) {} - -__attribute__ ((weak)) -void matrix_init_kb(void) { - matrix_init_user(); -} - -__attribute__ ((weak)) -void matrix_scan_kb(void) { - matrix_scan_user(); -} - -inline -uint8_t matrix_rows(void) -{ - return MATRIX_ROWS; -} - -inline -uint8_t matrix_cols(void) -{ - return MATRIX_COLS; -} - -void matrix_init(void) -{ - // initialize row and col - - mcp23018_status = init_mcp23018(); - - - unselect_rows(); - init_cols(); - - // initialize matrix state: all keys off - for (uint8_t i=0; i < MATRIX_ROWS; i++) { - matrix[i] = 0; - matrix_debouncing[i] = 0; - } - -#ifdef DEBUG_MATRIX_SCAN_RATE - matrix_timer = timer_read32(); - matrix_scan_count = 0; -#endif - - matrix_init_kb(); - -} - -void matrix_power_up(void) { - mcp23018_status = init_mcp23018(); - - unselect_rows(); - init_cols(); - - // initialize matrix state: all keys off - for (uint8_t i=0; i < MATRIX_ROWS; i++) { - matrix[i] = 0; - matrix_debouncing[i] = 0; - } - -#ifdef DEBUG_MATRIX_SCAN_RATE - matrix_timer = timer_read32(); - matrix_scan_count = 0; -#endif - -} - -uint8_t matrix_scan(void) -{ - if (mcp23018_status) { // if there was an error - if (++mcp23018_reset_loop == 0) { - // since mcp23018_reset_loop is 8 bit - we'll try to reset once in 255 matrix scans - // this will be approx bit more frequent than once per second - print("trying to reset mcp23018\n"); - mcp23018_status = init_mcp23018(); - if (mcp23018_status) { - print("left side not responding\n"); - } else { - print("left side attached\n"); - ergodox_blink_all_leds(); - } - } - } - -#ifdef DEBUG_MATRIX_SCAN_RATE - matrix_scan_count++; - - uint32_t timer_now = timer_read32(); - if (TIMER_DIFF_32(timer_now, matrix_timer)>1000) { - print("matrix scan frequency: "); - pdec(matrix_scan_count); - print("\n"); - - matrix_timer = timer_now; - matrix_scan_count = 0; - } -#endif - - for (uint8_t i = 0; i < MATRIX_ROWS; i++) { - select_row(i); - wait_us(30); // without this wait read unstable value. - matrix_row_t cols = read_cols(i); - if (matrix_debouncing[i] != cols) { - matrix_debouncing[i] = cols; - if (debouncing) { - debug("bounce!: "); debug_hex(debouncing); debug("\n"); - } - debouncing = DEBOUNCE; - } - unselect_rows(); - } - - if (debouncing) { - if (--debouncing) { - wait_us(1); - // this should be wait_ms(1) but has been left as-is at EZ's request - } else { - for (uint8_t i = 0; i < MATRIX_ROWS; i++) { - matrix[i] = matrix_debouncing[i]; - } - } - } - - matrix_scan_quantum(); - - return 1; -} - -bool matrix_is_modified(void) -{ - if (debouncing) return false; - return true; -} - -inline -bool matrix_is_on(uint8_t row, uint8_t col) -{ - return (matrix[row] & ((matrix_row_t)1< http://jump.to/fleury -* File: $Id: twimaster.c,v 1.3 2005/07/02 11:14:21 Peter Exp $ -* Software: AVR-GCC 3.4.3 / avr-libc 1.2.3 -* Target: any AVR device with hardware TWI -* Usage: API compatible with I2C Software Library i2cmaster.h -**************************************************************************/ -#include -#include - -#include - - -/* define CPU frequency in Mhz here if not defined in Makefile */ -#ifndef F_CPU -#define F_CPU 16000000UL -#endif - -/* I2C clock in Hz */ -#define SCL_CLOCK 400000L - - -/************************************************************************* - Initialization of the I2C bus interface. Need to be called only once -*************************************************************************/ -void i2c_init(void) -{ - /* initialize TWI clock - * minimal values in Bit Rate Register (TWBR) and minimal Prescaler - * bits in the TWI Status Register should give us maximal possible - * I2C bus speed - about 444 kHz - * - * for more details, see 20.5.2 in ATmega16/32 secification - */ - - TWSR = 0; /* no prescaler */ - TWBR = 10; /* must be >= 10 for stable operation */ - -}/* i2c_init */ - - -/************************************************************************* - Issues a start condition and sends address and transfer direction. - return 0 = device accessible, 1= failed to access device -*************************************************************************/ -unsigned char i2c_start(unsigned char address) -{ - uint8_t twst; - - // send START condition - TWCR = (1<= 0: - if section['name'] == 'layout_config': - config.update(loads("\n".join( - section['code_lines'] - ))) - elif section['sub_name'].startswith('layer'): - layer_name = section['sub_name'] - config['layer_lines'][layer_name] = section['code_lines'] - - reset_section() - - def amend_section(line_index, line): - section['end_line'] = line_index - section['code_lines'].append(line) - - config = DEFAULT_CONFIG.copy() - config.update({ - 'layer_lines': collections.OrderedDict(), - 'macro_ids': {'UM'}, - 'unicode_macros': {}, - }) - - section = {} - reset_section() - - with io.open(path, encoding="utf-8") as fh: - for i, line in enumerate(fh): - if line.startswith("#"): - start_section(i, line) - elif line.startswith(" "): - amend_section(i, line[4:]) - else: - # TODO: maybe parse description - pass - - end_section() - assert 'layout' in config - return config - -# header file parsing - -IF0_RE = re.compile(r""" - ^ - #if 0 - $.*? - #endif -""", re.MULTILINE | re.DOTALL | re.VERBOSE) - - -COMMENT_RE = re.compile(r""" - /\* - .*? - \*/" -""", re.MULTILINE | re.DOTALL | re.VERBOSE) - - -def read_header_file(path): - with io.open(path, encoding="utf-8") as fh: - data = fh.read() - data, _ = COMMENT_RE.subn("", data) - data, _ = IF0_RE.subn("", data) - return data - - -def regex_partial(re_str_fmt, flags): - def partial(*args, **kwargs): - re_str = re_str_fmt.format(*args, **kwargs) - return re.compile(re_str, flags) - return partial - - -KEYDEF_REP = regex_partial(r""" - #define - \s - ( - (?:{}) # the prefixes - (?:\w+) # the key name - ) # capture group end -""", re.MULTILINE | re.DOTALL | re.VERBOSE) - - -ENUM_RE = re.compile(r""" - ( - enum - \s\w+\s - \{ - .*? # the enum content - \} - ; - ) # capture group end -""", re.MULTILINE | re.DOTALL | re.VERBOSE) - - -ENUM_KEY_REP = regex_partial(r""" - ( - {} # the prefixes - \w+ # the key name - ) # capture group end -""", re.MULTILINE | re.DOTALL | re.VERBOSE) - - -def parse_keydefs(config, data): - prefix_options = "|".join(config['key_prefixes']) - keydef_re = KEYDEF_REP(prefix_options) - enum_key_re = ENUM_KEY_REP(prefix_options) - for match in keydef_re.finditer(data): - yield match.groups()[0] - - for enum_match in ENUM_RE.finditer(data): - enum = enum_match.groups()[0] - for key_match in enum_key_re.finditer(enum): - yield key_match.groups()[0] - - -def parse_valid_keys(config, out_path): - basepath = os.path.abspath(os.path.join(os.path.dirname(out_path))) - dirpaths = [] - subpaths = [] - while len(subpaths) < 6: - path = os.path.join(basepath, *subpaths) - dirpaths.append(path) - dirpaths.append(os.path.join(path, "tmk_core", "common")) - dirpaths.append(os.path.join(path, "quantum")) - subpaths.append('..') - - includes = set(config['keymaps_includes']) - includes.add("keycode.h") - - valid_keycodes = set() - for dirpath, include in it.product(dirpaths, includes): - include_path = os.path.join(dirpath, include) - if os.path.exists(include_path): - header_data = read_header_file(include_path) - valid_keycodes.update( - parse_keydefs(config, header_data) - ) - return valid_keycodes - - -# Keymap Parsing - -def iter_raw_codes(layer_lines, filler, separator): - filler_re = re.compile("[" + filler + " ]") - for line in layer_lines: - line, _ = filler_re.subn("", line.strip()) - if not line: - continue - codes = line.split(separator) - for code in codes[1:-1]: - yield code - - -def iter_indexed_codes(raw_codes, key_indexes): - key_rows = {} - key_indexes_flat = [] - - for row_index, key_indexes in enumerate(key_indexes): - for key_index in key_indexes: - key_rows[key_index] = row_index - key_indexes_flat.extend(key_indexes) - assert len(raw_codes) == len(key_indexes_flat) - for raw_code, key_index in zip(raw_codes, key_indexes_flat): - # we keep track of the row mostly for layout purposes - yield raw_code, key_index, key_rows[key_index] - - -LAYER_CHANGE_RE = re.compile(r""" - (DF|TG|MO)\(\d+\) -""", re.VERBOSE) - - -MACRO_RE = re.compile(r""" - M\(\w+\) -""", re.VERBOSE) - - -UNICODE_RE = re.compile(r""" - U[0-9A-F]{4} -""", re.VERBOSE) - - -NON_CODE = re.compile(r""" - ^[^A-Z0-9_]$ -""", re.VERBOSE) - - -def parse_uni_code(raw_code): - macro_id = "UC_" + ( - unicodedata.name(raw_code) - .replace(" ", "_") - .replace("-", "_") - ) - code = "M({})".format(macro_id) - uc_hex = "{:04X}".format(ord(raw_code)) - return code, macro_id, uc_hex - - -def parse_key_code(raw_code, key_prefixes, valid_keycodes): - if raw_code in valid_keycodes: - return raw_code - - for prefix in key_prefixes: - code = prefix + raw_code - if code in valid_keycodes: - return code - - -def parse_code(raw_code, key_prefixes, valid_keycodes): - if not raw_code: - return 'KC_TRNS', None, None - - if LAYER_CHANGE_RE.match(raw_code): - return raw_code, None, None - - if MACRO_RE.match(raw_code): - macro_id = raw_code[2:-1] - return raw_code, macro_id, None - - if UNICODE_RE.match(raw_code): - hex_code = raw_code[1:] - return parse_uni_code(chr(int(hex_code, 16))) - - if NON_CODE.match(raw_code): - return parse_uni_code(raw_code) - - code = parse_key_code(raw_code, key_prefixes, valid_keycodes) - return code, None, None - - -def parse_keymap(config, key_indexes, layer_lines, valid_keycodes): - keymap = {} - raw_codes = list(iter_raw_codes( - layer_lines, config['filler'], config['separator'] - )) - indexed_codes = iter_indexed_codes(raw_codes, key_indexes) - key_prefixes = config['key_prefixes'] - for raw_code, key_index, row_index in indexed_codes: - code, macro_id, uc_hex = parse_code( - raw_code, key_prefixes, valid_keycodes - ) - # TODO: line numbers for invalid codes - err_msg = "Could not parse key '{}' on row {}".format( - raw_code, row_index - ) - assert code is not None, err_msg - # print(repr(raw_code), repr(code), macro_id, uc_hex) - if macro_id: - config['macro_ids'].add(macro_id) - if uc_hex: - config['unicode_macros'][macro_id] = uc_hex - keymap[key_index] = (code, row_index) - return keymap - - -def parse_keymaps(config, valid_keycodes): - keymaps = collections.OrderedDict() - key_indexes = config.get( - 'key_indexes', KEYBOARD_LAYOUTS[config['layout']] - ) - # TODO: maybe validate key_indexes - - for layer_name, layer_lines, in config['layer_lines'].items(): - keymaps[layer_name] = parse_keymap( - config, key_indexes, layer_lines, valid_keycodes - ) - return keymaps - -# keymap.c output - -USERCODE = """ -// 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 L1: - ergodox_right_led_1_on(); - break; - case L2: - ergodox_right_led_2_on(); - break; - case L3: - ergodox_right_led_3_on(); - break; - case L4: - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); - break; - case L5: - ergodox_right_led_1_on(); - ergodox_right_led_3_on(); - break; - // case L6: - // ergodox_right_led_2_on(); - // ergodox_right_led_3_on(); - // break; - // case L7: - // ergodox_right_led_1_on(); - // ergodox_right_led_2_on(); - // ergodox_right_led_3_on(); - // break; - default: - ergodox_board_led_off(); - break; - } -}; -""" - -MACROCODE = """ -#define UC_MODE_WIN 0 -#define UC_MODE_LINUX 1 -#define UC_MODE_OSX 2 - -// TODO: allow default mode to be configured -static uint16_t unicode_mode = UC_MODE_WIN; - -uint16_t hextokeycode(uint8_t hex) {{ - if (hex == 0x0) {{ - return KC_P0; - }} - if (hex < 0xA) {{ - return KC_P1 + (hex - 0x1); - }} - return KC_A + (hex - 0xA); -}} - -void unicode_action_function(uint16_t hi, uint16_t lo) {{ - switch (unicode_mode) {{ - case UC_MODE_WIN: - register_code(KC_LALT); - - register_code(KC_PPLS); - unregister_code(KC_PPLS); - - register_code(hextokeycode((hi & 0xF0) >> 4)); - unregister_code(hextokeycode((hi & 0xF0) >> 4)); - register_code(hextokeycode((hi & 0x0F))); - unregister_code(hextokeycode((hi & 0x0F))); - register_code(hextokeycode((lo & 0xF0) >> 4)); - unregister_code(hextokeycode((lo & 0xF0) >> 4)); - register_code(hextokeycode((lo & 0x0F))); - unregister_code(hextokeycode((lo & 0x0F))); - - unregister_code(KC_LALT); - break; - case UC_MODE_LINUX: - register_code(KC_LCTL); - register_code(KC_LSFT); - - register_code(KC_U); - unregister_code(KC_U); - - register_code(hextokeycode((hi & 0xF0) >> 4)); - unregister_code(hextokeycode((hi & 0xF0) >> 4)); - register_code(hextokeycode((hi & 0x0F))); - unregister_code(hextokeycode((hi & 0x0F))); - register_code(hextokeycode((lo & 0xF0) >> 4)); - unregister_code(hextokeycode((lo & 0xF0) >> 4)); - register_code(hextokeycode((lo & 0x0F))); - unregister_code(hextokeycode((lo & 0x0F))); - - unregister_code(KC_LCTL); - unregister_code(KC_LSFT); - break; - case UC_MODE_OSX: - break; - }} -}} - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {{ - if (!record->event.pressed) {{ - return MACRO_NONE; - }} - // MACRODOWN only works in this function - switch(id) {{ - case UM: - unicode_mode = (unicode_mode + 1) % 2; - break; -{macro_cases} -{unicode_macro_cases} - default: - break; - }} - return MACRO_NONE; -}}; -""" - - -UNICODE_MACRO_TEMPLATE = """ -case {macro_id}: - unicode_action_function(0x{hi:02x}, 0x{lo:02x}); - break; -""".strip() - - -def unicode_macro_cases(config): - for macro_id, uc_hex in config['unicode_macros'].items(): - hi = int(uc_hex, 16) >> 8 - lo = int(uc_hex, 16) & 0xFF - unimacro_keys = ", ".join( - "T({})".format( - "KP_" + digit if digit.isdigit() else digit - ) for digit in uc_hex - ) - yield UNICODE_MACRO_TEMPLATE.format( - macro_id=macro_id, hi=hi, lo=lo - ) - - -def iter_keymap_lines(keymap, row_indents=None): - col_widths = {} - col = 0 - # first pass, figure out the column widths - prev_row_index = None - for code, row_index in keymap.values(): - if row_index != prev_row_index: - col = 0 - if row_indents: - col = row_indents[row_index] - col_widths[col] = max(len(code), col_widths.get(col, 0)) - prev_row_index = row_index - col += 1 - - # second pass, yield the cell values - col = 0 - prev_row_index = None - for key_index in sorted(keymap): - code, row_index = keymap[key_index] - if row_index != prev_row_index: - col = 0 - yield "\n" - if row_indents: - for indent_col in range(row_indents[row_index]): - pad = " " * (col_widths[indent_col] - 4) - yield (" /*-*/" + pad) - col = row_indents[row_index] - else: - yield pad - yield " {}".format(code) - if key_index < len(keymap) - 1: - yield "," - # This will be yielded on the next iteration when - # we know that we're not at the end of a line. - pad = " " * (col_widths[col] - len(code)) - prev_row_index = row_index - col += 1 - - -def iter_keymap_parts(config, keymaps): - # includes - for include_path in config['keymaps_includes']: - yield '#include "{}"\n'.format(include_path) - - yield "\n" - - # definitions - for i, macro_id in enumerate(sorted(config['macro_ids'])): - yield "#define {} {}\n".format(macro_id, i) - - yield "\n" - - for i, layer_name in enumerate(config['layer_lines']): - yield '#define L{0:<3} {0:<5} // {1}\n'.format(i, layer_name) - - yield "\n" - - # keymaps - yield "const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\n" - - for i, layer_name in enumerate(config['layer_lines']): - # comment - layer_lines = config['layer_lines'][layer_name] - prefixed_lines = " * " + " * ".join(layer_lines) - yield "/*\n{} */\n".format(prefixed_lines) - - # keymap codes - keymap = keymaps[layer_name] - row_indents = ROW_INDENTS.get(config['layout']) - keymap_lines = "".join(iter_keymap_lines(keymap, row_indents)) - yield "[L{0}] = KEYMAP({1}\n),\n".format(i, keymap_lines) - - yield "};\n\n" - - # no idea what this is for - yield "const uint16_t PROGMEM fn_actions[] = {};\n" - - # macros - yield MACROCODE.format( - macro_cases="", - unicode_macro_cases="\n".join(unicode_macro_cases(config)), - ) - - # TODO: dynamically create blinking lights - yield USERCODE - - -def main(argv=sys.argv[1:]): - if not argv or '-h' in argv or '--help' in argv: - print(__doc__) - return 0 - - in_path = os.path.abspath(argv[0]) - if not os.path.exists(in_path): - print("No such file '{}'".format(in_path)) - return 1 - - if len(argv) > 1: - out_path = os.path.abspath(argv[1]) - else: - dirname = os.path.dirname(in_path) - out_path = os.path.join(dirname, "keymap.c") - - config = parse_config(in_path) - valid_keys = parse_valid_keys(config, out_path) - keymaps = parse_keymaps(config, valid_keys) - - with io.open(out_path, mode="w", encoding="utf-8") as fh: - for part in iter_keymap_parts(config, keymaps): - fh.write(part) - - -if __name__ == '__main__': - sys.exit(main()) diff --git a/keyboards/ergodox_ez/util/readme.md b/keyboards/ergodox_ez/util/readme.md deleted file mode 100644 index 26c5e5d99..000000000 --- a/keyboards/ergodox_ez/util/readme.md +++ /dev/null @@ -1,3 +0,0 @@ -# ErgoDox EZ Utilities - -The Python script in this directory, by [mbarkhau](https://github.com/mbarkhau) allows you to write out a basic ErgoDox EZ keymap using Markdown notation, and then transpile it to C, which you can then compile. It's experimental, but if you're not comfortable using C, it's a nice option. diff --git a/keyboards/infinity_ergodox/MEMO.txt b/keyboards/infinity_ergodox/MEMO.txt deleted file mode 100644 index e2886aa00..000000000 --- a/keyboards/infinity_ergodox/MEMO.txt +++ /dev/null @@ -1,385 +0,0 @@ -flabbergast's TMK/ChibiOS port -============================== -2015/10/16 - - -Build ------ -$ git clone -b chibios https://github.com/flabbergast/tmk_keyboard.git - -$ cd tmk_keyboard -$ git submodule add -f -b kinetis https://github.com/flabbergast/ChibiOS.git tmk_core/tool/chibios/chibios -or -$ cd tmk_keyboard/tmk_core/tool/chibios -$ git clone -b kinetis https://github.com/flabbergast/ChibiOS.git tmk_core/tool/chibios/chibios - -$ cd tmk_keyboard/keyboard/infinity_chibios -$ make - - - - -Chibios Configuration ---------------------- -halconf.h: for HAL configuration - placed in project directory - read in chibios/os/hal/hal.mk - included in chibios/os/hal/include/hal.h -mcuconf.h: for MCU configuration - placed in project directory - included in halconf.h - - -Chibios Term ------------- -PAL = Port Abstraction Layer - palWritePad - palReadPad - palSetPad - chibios/os/hal/include/pal.h - -LLD = Low Level Driver - - -Makefile --------- - # /os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) - MCU_FAMILY = KINETIS - MCU_SERIES = KL2x - - # - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ - # or /ld/ - MCU_LDSCRIPT = MKL26Z64 - - # - it should exist in /os/common/ports/ARMCMx/compilers/GCC/mk/ - MCU_STARTUP = kl2x - - # Board: it should exist either in /os/hal/boards/ - # or /boards - BOARD = PJRC_TEENSY_LC - - MCU = cortex-m0 - - # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 - ARMV = 6 - - -halconf.h ---------- - - -mcuconf.h ---------- - - -chconf.h --------- - - -ld script ---------- ---- ../../tmk_core/tool/chibios/chibios/os/common/ports/ARMCMx/compilers/GCC/ld/MKL26Z64.ld 2015-10-15 09:08:58.732904304 +0900 -+++ ld/MKL26Z64.ld 2015-10-15 08:48:06.430215496 +0900 -@@ -27,7 +27,8 @@ - { - flash0 : org = 0x00000000, len = 0xc0 - flashcfg : org = 0x00000400, len = 0x10 -- flash : org = 0x00000410, len = 64k - 0x410 -+ flash : org = 0x00000410, len = 62k - 0x410 -+ eeprom_emu : org = 0x0000F800, len = 2k - ram : org = 0x1FFFF800, len = 8k - } - -@@ -35,6 +36,10 @@ - __ram_size__ = LENGTH(ram); - __ram_end__ = __ram_start__ + __ram_size__; - -+__eeprom_workarea_start__ = ORIGIN(eeprom_emu); -+__eeprom_workarea_size__ = LENGTH(eeprom_emu); -+__eeprom_workarea_end__ = __eeprom_workarea_start__ + __eeprom_workarea_size__; -+ - SECTIONS - { - . = 0; - - - -Configuration/Startup for Infinity 60% --------------------------------------- -Configuration: - - -Clock: -Inifinity - FEI(FLL Engaged Internal) mode with core clock:48MHz, bus clock:48MHz, flash clock:24MHz - Clock dividor: - SIM_CLKDIV1[OUTDIV1] = 0 divide-by-1 for core clock - SIM_CLKDIV1[OUTDIV2] = 0 divide-by-1 for bus clock - SIM_CLKDIV1[OUTDIV4] = 1 divide-by-2 for flash clock - Internal reference clock: - MCG_C1[IREFS] = 1 Internal Reference Select for clock source for FLL - MCG_C1[IRCLKEN] = 1 Internal Reference Clock Enable - FLL multipilication: - MCG_C4[DMX32] = 1 - MCG_C4[DRST_DRS] = 01 FLL factor 1464 * 32.768kHz = 48MHz - -chibios/os/hal/ports/KINETIS/K20x/hal_lld.c - k20x_clock_init(): called in __early_init() defined in board.c - disable watchdog and configure clock - - configurable macros: - KINETIS_NO_INIT: whether init or not - KINETIS_MCG_MODE: clock mode - KINETIS_MCG_MODE_FEI - KINETIS_MCG_MODE_PEE - hal/ports/KINETIS/K20x/hal_lld.h - - -chibios/os/hal/boards/FREESCALE_FREEDOM_K20D50M/board.h - PALConfig pal_default_config - boardInit() - __early_init() - macro definitions for board infos, freq and mcu type - -chibios/os/hal/boards/FREESCALE_FREEDOM_K20D50M/board.c - -USB - - -Startup -------- - common/ports/ARMCMx/GCC/crt0_v[67]m.s - Reset_Handler: startup code - common/ports/ARMCMx/GCC/crt1.c - __core_init(): weak - __early_init(): weak - __late_init(): weak - __default_exit(): weak - called from Reset_Handler of crt0 - common/ports/ARMCMx/GCC/vector.c - common/ports/ARMCMx/GCC/ld/*.ld - -chibios/os/common/ports/ARMCMx/compilers/GCC/ -├── crt0_v6m.s -├── crt0_v7m.s -├── crt1.c -├── ld -│   ├── MK20DX128BLDR3.ld -│   ├── MK20DX128BLDR4.ld -│   ├── MK20DX128.ld -│   ├── MK20DX256.ld -│   ├── MKL25Z128.ld -│   ├── MKL26Z128.ld -│   ├── MKL26Z64.ld -│   └── STM32L476xG.ld -├── mk -│   ├── startup_k20x5.mk -│   ├── startup_k20x7.mk -│   ├── startup_k20x.mk -│   ├── startup_kl2x.mk -│   └── startup_stm32l4xx.mk -├── rules.ld -├── rules.mk -└── vectors.c - -chibios/os/hal/ -├── boards -│   ├── FREESCALE_FREEDOM_K20D50M -│   │   ├── board.c -│   │   ├── board.h -│   │   └── board.mk -│   ├── MCHCK_K20 -│   │   ├── board.c -│   │   ├── board.h -│   │   └── board.mk -│   ├── PJRC_TEENSY_3 -│   │   ├── board.c -│   │   ├── board.h -│   │   └── board.mk -│   ├── PJRC_TEENSY_3_1 -│   │   ├── board.c -│   │   ├── board.h -│   │   └── board.mk -│   ├── PJRC_TEENSY_LC -│   │   ├── board.c -│   │   ├── board.h -│   │   └── board.mk -│   ├── readme.txt -│   ├── simulator -│   │   ├── board.c -│   │   ├── board.h -│   │   └── board.mk -│   ├── ST_NUCLEO_F030R8 -│   │   ├── board.c -│   │   ├── board.h -│   │   ├── board.mk -│   │   └── cfg -│   │   └── board.chcfg -├── hal.mk -├── include -│   ├── adc.h -│   ├── can.h -│   ├── dac.h -│   ├── ext.h -│   ├── gpt.h -│   ├── hal_channels.h -│   ├── hal_files.h -│   ├── hal.h -│   ├── hal_ioblock.h -│   ├── hal_mmcsd.h -│   ├── hal_queues.h -│   ├── hal_streams.h -│   ├── i2c.h -│   ├── i2s.h -│   ├── icu.h -│   ├── mac.h -│   ├── mii.h -│   ├── mmc_spi.h -│   ├── pal.h -│   ├── pwm.h -│   ├── rtc.h -│   ├── sdc.h -│   ├── serial.h -│   ├── serial_usb.h -│   ├── spi.h -│   ├── st.h -│   ├── uart.h -│   └── usb.h -├── lib -│   └── streams -│   ├── chprintf.c -│   ├── chprintf.h -│   ├── memstreams.c -│   ├── memstreams.h -│   ├── nullstreams.c -│   └── nullstreams.h -├── osal -│   ├── nil -│   │   ├── osal.c -│   │   ├── osal.h -│   │   └── osal.mk -│   ├── os-less -│   │   └── ARMCMx -│   │   ├── osal.c -│   │   ├── osal.h -│   │   └── osal.mk -│   └── rt -│   ├── osal.c -│   ├── osal.h -│   └── osal.mk -├── ports -│   ├── AVR -│   ├── common -│   │   └── ARMCMx -│   │   ├── mpu.h -│   │   ├── nvic.c -│   │   └── nvic.h -│   ├── KINETIS -│   │   ├── K20x -│   │   │   ├── hal_lld.c -│   │   │   ├── hal_lld.h -│   │   │   ├── kinetis_registry.h -│   │   │   ├── platform.dox -│   │   │   ├── platform.mk -│   │   │   ├── pwm_lld.c -│   │   │   ├── pwm_lld.h -│   │   │   ├── spi_lld.c -│   │   │   └── spi_lld.h -│   │   ├── KL2x -│   │   │   ├── hal_lld.c -│   │   │   ├── hal_lld.h -│   │   │   ├── kinetis_registry.h -│   │   │   ├── platform.mk -│   │   │   ├── pwm_lld.c -│   │   │   └── pwm_lld.h -│   │   ├── LLD -│   │   │   ├── adc_lld.c -│   │   │   ├── adc_lld.h -│   │   │   ├── ext_lld.c -│   │   │   ├── ext_lld.h -│   │   │   ├── gpt_lld.c -│   │   │   ├── gpt_lld.h -│   │   │   ├── i2c_lld.c -│   │   │   ├── i2c_lld.h -│   │   │   ├── pal_lld.c -│   │   │   ├── pal_lld.h -│   │   │   ├── serial_lld.c -│   │   │   ├── serial_lld.h -│   │   │   ├── st_lld.c -│   │   │   ├── st_lld.h -│   │   │   ├── usb_lld.c -│   │   │   └── usb_lld.h -│   │   └── README.md -│   ├── LPC -│   ├── simulator -│   └── STM32 -├── src -│   ├── adc.c -│   ├── can.c -│   ├── dac.c -│   ├── ext.c -│   ├── gpt.c -│   ├── hal.c -│   ├── hal_mmcsd.c -│   ├── hal_queues.c -│   ├── i2c.c -│   ├── i2s.c -│   ├── icu.c -│   ├── mac.c -│   ├── mmc_spi.c -│   ├── pal.c -│   ├── pwm.c -│   ├── rtc.c -│   ├── sdc.c -│   ├── serial.c -│   ├── serial_usb.c -│   ├── spi.c -│   ├── st.c -│   ├── uart.c -│   └── usb.c -└── templates - ├── adc_lld.c - ├── adc_lld.h - ├── can_lld.c - ├── can_lld.h - ├── dac_lld.c - ├── dac_lld.h - ├── ext_lld.c - ├── ext_lld.h - ├── gpt_lld.c - ├── gpt_lld.h - ├── halconf.h - ├── hal_lld.c - ├── hal_lld.h - ├── i2c_lld.c - ├── i2c_lld.h - ├── i2s_lld.c - ├── i2s_lld.h - ├── icu_lld.c - ├── icu_lld.h - ├── mac_lld.c - ├── mac_lld.h - ├── mcuconf.h - ├── osal - │   ├── osal.c - │   ├── osal.h - │   └── osal.mk - ├── pal_lld.c - ├── pal_lld.h - ├── platform.mk - ├── pwm_lld.c - ├── pwm_lld.h - ├── rtc_lld.c - ├── rtc_lld.h - ├── sdc_lld.c - ├── sdc_lld.h - ├── serial_lld.c - ├── serial_lld.h - ├── spi_lld.c - ├── spi_lld.h - ├── st_lld.c - ├── st_lld.h - ├── uart_lld.c - ├── uart_lld.h - ├── usb_lld.c - └── usb_lld.h diff --git a/keyboards/infinity_ergodox/Makefile b/keyboards/infinity_ergodox/Makefile deleted file mode 100644 index 7edc03d8c..000000000 --- a/keyboards/infinity_ergodox/Makefile +++ /dev/null @@ -1,85 +0,0 @@ -# project specific files -SRC = matrix.c \ - led.c - -## chip/board settings -# - the next two should match the directories in -# /os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) -# - For Teensies, FAMILY = KINETIS and SERIES is either -# KL2x (LC) or K20x (3.0,3.1,3.2). -# - For Infinity KB, SERIES = K20x -MCU_FAMILY = KINETIS -MCU_SERIES = K20x - -# Linker script to use -# - it should exist either in /os/common/ports/ARMCMx/compilers/GCC/ld/ -# or /ld/ -# - NOTE: a custom ld script is needed for EEPROM on Teensy LC -# - LDSCRIPT = -# - MKL26Z64 for Teensy LC -# - MK20DX128 for Teensy 3.0 -# - MK20DX256 for Teensy 3.1 and 3.2 -# - MK20DX128BLDR4 for Infinity 60% with Kiibohd bootloader -# - MK20DX256BLDR8 for Infinity ErgoDox with Kiibohd bootloader -MCU_LDSCRIPT = MK20DX256BLDR8 - -# Startup code to use -# - it should exist in /os/common/ports/ARMCMx/compilers/GCC/mk/ -# - STARTUP = -# - kl2x for Teensy LC -# - k20x5 for Teensy 3.0 and Infinity 60% -# - k20x7 for Teensy 3.1, 3.2 and Infinity ErgoDox -MCU_STARTUP = k20x7 - -# Board: it should exist either in /os/hal/boards/ -# or /boards -# - BOARD = -# - PJRC_TEENSY_LC for Teensy LC -# - PJRC_TEENSY_3 for Teensy 3.0 -# - PJRC_TEENSY_3_1 for Teensy 3.1 or 3.2 -# - MCHCK_K20 for Infinity KB -#BOARD = MCHCK_K20 -BOARD = PJRC_TEENSY_3_1 - -# Cortex version -# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4 -MCU = cortex-m4 - -# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 -# I.e. 6 for Teensy LC; 7 for Teensy 3.x -ARMV = 7 - -# Vector table for application -# 0x00000000-0x00001000 area is occupied by bootlaoder.*/ -# The CORTEX_VTOR... is needed only for MCHCK/Infinity KB -OPT_DEFS = -DCORTEX_VTOR_INIT=0x00002000 - -# Build Options -# comment out to disable the options. -# -BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration -## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.) -MOUSEKEY_ENABLE ?= yes # Mouse keys -EXTRAKEY_ENABLE ?= yes # Audio control and System control -CONSOLE_ENABLE ?= yes # Console for debug -COMMAND_ENABLE ?= yes # Commands for debug and configuration -SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend -NKRO_ENABLE ?= yes # USB Nkey Rollover -CUSTOM_MATRIX ?= yes # Custom matrix file -SERIAL_LINK_ENABLE = yes -VISUALIZER_ENABLE ?= yes -LCD_ENABLE ?= yes -LED_ENABLE ?= yes -LCD_BACKLIGHT_ENABLE ?= yes - -ifdef LCD_ENABLE -include drivers/gdisp/st7565ergodox/driver.mk -endif - -ifdef LED_ENABLE -include drivers/gdisp/IS31FL3731C/driver.mk -endif - -ifndef QUANTUM_DIR - include ../../Makefile -endif \ No newline at end of file diff --git a/keyboards/infinity_ergodox/bootloader_defs.h b/keyboards/infinity_ergodox/bootloader_defs.h deleted file mode 100644 index c67153be6..000000000 --- a/keyboards/infinity_ergodox/bootloader_defs.h +++ /dev/null @@ -1 +0,0 @@ -#define KIIBOHD_BOOTLOADER diff --git a/keyboards/infinity_ergodox/chconf.h b/keyboards/infinity_ergodox/chconf.h deleted file mode 100644 index d59c35eb6..000000000 --- a/keyboards/infinity_ergodox/chconf.h +++ /dev/null @@ -1,524 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef _CHCONF_H_ -#define _CHCONF_H_ - -#define _CHIBIOS_RT_CONF_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#define CH_CFG_ST_RESOLUTION 32 - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#define CH_CFG_ST_FREQUENCY 100000 - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#define CH_CFG_ST_TIMEDELTA 0 - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#define CH_CFG_TIME_QUANTUM 20 - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#define CH_CFG_MEMCORE_SIZE 0 - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#define CH_CFG_NO_IDLE_THREAD FALSE - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#define CH_CFG_OPTIMIZE_SPEED TRUE - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_TM FALSE - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_REGISTRY TRUE - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_WAITEXIT TRUE - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_SEMAPHORES TRUE - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_MUTEXES TRUE - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#define CH_CFG_USE_CONDVARS TRUE - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_EVENTS TRUE - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_MESSAGES TRUE - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#define CH_CFG_USE_MAILBOXES TRUE - -/** - * @brief I/O Queues APIs. - * @details If enabled then the I/O queues APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_QUEUES TRUE - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_MEMCORE TRUE - -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#define CH_CFG_USE_HEAP TRUE - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_MEMPOOLS TRUE - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#define CH_CFG_USE_DYNAMIC TRUE - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. - * - * @note The default is @p FALSE. - */ -#define CH_DBG_STATISTICS FALSE - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. - * - * @note The default is @p FALSE. - */ -#define CH_DBG_SYSTEM_STATE_CHECK FALSE - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#define CH_DBG_ENABLE_CHECKS FALSE - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. - * - * @note The default is @p FALSE. - */ -#define CH_DBG_ENABLE_ASSERTS FALSE - -/** - * @brief Debug option, trace buffer. - * @details If enabled then the context switch circular trace buffer is - * activated. - * - * @note The default is @p FALSE. - */ -#define CH_DBG_ENABLE_TRACE FALSE - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#define CH_DBG_ENABLE_STACK_CHECK FALSE - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#define CH_DBG_FILL_THREADS FALSE - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#define CH_DBG_THREADS_PROFILING FALSE - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p chThdInit() API. - * - * @note It is invoked from within @p chThdInit() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - * - * @note It is inserted into lock zone. - * @note It is also invoked when the threads simply return in order to - * terminate. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief ISR enter hook. - */ -#define CH_CFG_IRQ_PROLOGUE_HOOK() { \ - /* IRQ prologue code here.*/ \ -} - -/** - * @brief ISR exit hook. - */ -#define CH_CFG_IRQ_EPILOGUE_HOOK() { \ - /* IRQ epilogue code here.*/ \ -} - -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. - */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} - -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} - -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. - */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} - -/** - * @brief Trace hook. - * @details This hook is invoked each time a new record is written in the - * trace buffer. - */ -#define CH_CFG_TRACE_HOOK(tep) { \ - /* Trace code here.*/ \ -} - -/** @} */ - -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ - -#endif /* _CHCONF_H_ */ - -/** @} */ diff --git a/keyboards/infinity_ergodox/config.h b/keyboards/infinity_ergodox/config.h deleted file mode 100644 index d24ee0f05..000000000 --- a/keyboards/infinity_ergodox/config.h +++ /dev/null @@ -1,80 +0,0 @@ -/* -Copyright 2015 Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#ifndef CONFIG_H -#define CONFIG_H - - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6464 -#define DEVICE_VER 0x0001 -/* in python2: list(u"whatever".encode('utf-16-le')) */ -/* at most 32 characters or the ugly hack in usb_main.c borks */ -#define MANUFACTURER "TMK" -#define USBSTR_MANUFACTURER 'T', '\x00', 'M', '\x00', 'K', '\x00', ' ', '\x00' -#define PRODUCT "Infinity keyboard/TMK" -#define USBSTR_PRODUCT 'I', '\x00', 'n', '\x00', 'f', '\x00', 'i', '\x00', 'n', '\x00', 'i', '\x00', 't', '\x00', 'y', '\x00', ' ', '\x00', 'k', '\x00', 'e', '\x00', 'y', '\x00', 'b', '\x00', 'o', '\x00', 'a', '\x00', 'r', '\x00', 'd', '\x00', '/', '\x00', 'T', '\x00', 'M', '\x00', 'K', '\x00' - -/* key matrix size */ -#define MATRIX_ROWS 18 -#define MATRIX_COLS 5 -#define LOCAL_MATRIX_ROWS 9 - -/* define if matrix has ghost */ -//#define MATRIX_HAS_GHOST - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -//#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -//#define LOCKING_RESYNC_ENABLE - -/* key combination for command */ -#define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ -) - -/* Keymap for Infiity prototype */ -#define INFINITY_PROTOTYPE - -#define SERIAL_LINK_BAUD 562500 -#define SERIAL_LINK_THREAD_PRIORITY (NORMALPRIO - 1) -// The visualizer needs gfx thread priorities -#define VISUALIZER_THREAD_PRIORITY (NORMAL_PRIORITY - 2) - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -#endif diff --git a/keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h b/keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h deleted file mode 100644 index 2ea73f1fb..000000000 --- a/keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h +++ /dev/null @@ -1,113 +0,0 @@ -/* -Copyright 2016 Fred Sundvik - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#ifndef _GDISP_LLD_BOARD_H -#define _GDISP_LLD_BOARD_H - -static const I2CConfig i2ccfg = { - 400000 // clock speed (Hz); 400kHz max for IS31 -}; - -#define GDISP_SCREEN_WIDTH 7 -#define GDISP_SCREEN_HEIGHT 7 - -static const uint8_t led_mask[] = { - 0xFF, 0x00, /* C1-1 -> C1-16 */ - 0xFF, 0x00, /* C2-1 -> C2-16 */ - 0xFF, 0x00, /* C3-1 -> C3-16 */ - 0xFF, 0x00, /* C4-1 -> C4-16 */ - 0x3F, 0x00, /* C5-1 -> C5-16 */ - 0x00, 0x00, /* C6-1 -> C6-16 */ - 0x00, 0x00, /* C7-1 -> C7-16 */ - 0x00, 0x00, /* C8-1 -> C8-16 */ - 0x00, 0x00, /* C9-1 -> C9-16 */ -}; - -// The address of the LED -#define LA(c, r) (c + r * 16 ) -// Need to be an address that is not mapped, but inside the range of the controller matrix -#define NA LA(8, 8) - -// The numbers in the comments are the led numbers DXX on the PCB -// The mapping is taken from the schematic of left hand side -static const uint8_t led_mapping[GDISP_SCREEN_HEIGHT][GDISP_SCREEN_WIDTH] = { -// 45 44 43 42 41 40 39 - { LA(1, 1), LA(1, 0), LA(0, 4), LA(0, 3), LA(0, 2), LA(0, 1), LA(0, 0)}, -// 52 51 50 49 48 47 46 - { LA(2, 3), LA(2, 2), LA(2, 1), LA(2, 0), LA(1, 4), LA(1, 3), LA(1, 2) }, -// 58 57 56 55 54 53 N/A - { LA(3, 4), LA(3, 3), LA(3, 2), LA(3, 1), LA(3, 0), LA(2, 4), NA }, -// 67 66 65 64 63 62 61 - { LA(5, 3), LA(5, 2), LA(5, 1), LA(5, 0), LA(4, 4), LA(4, 3), LA(4, 2) }, -// 76 75 74 73 72 60 59 - { LA(7, 3), LA(7, 2), LA(7, 1), LA(7, 0), LA(6, 3), LA(4, 1), LA(4, 0) }, -// N/A N/A N/A N/A N/A N/A 68 - { NA, NA, NA, NA, NA, NA, LA(5, 4) }, -// N/A N/A N/A N/A 71 70 69 - { NA, NA, NA, NA, LA(6, 2), LA(6, 1), LA(6, 0) }, -}; - - -#define IS31_ADDR_DEFAULT 0x74 // AD connected to GND -#define IS31_TIMEOUT 5000 - -static GFXINLINE void init_board(GDisplay *g) { - (void) g; - /* I2C pins */ - palSetPadMode(GPIOB, 0, PAL_MODE_ALTERNATIVE_2); // PTB0/I2C0/SCL - palSetPadMode(GPIOB, 1, PAL_MODE_ALTERNATIVE_2); // PTB1/I2C0/SDA - palSetPadMode(GPIOB, 16, PAL_MODE_OUTPUT_PUSHPULL); - palClearPad(GPIOB, 16); - /* start I2C */ - i2cStart(&I2CD1, &i2ccfg); - // try high drive (from kiibohd) - I2CD1.i2c->C2 |= I2Cx_C2_HDRS; - // try glitch fixing (from kiibohd) - I2CD1.i2c->FLT = 4; -} - -static GFXINLINE void post_init_board(GDisplay *g) { - (void) g; -} - -static GFXINLINE const uint8_t* get_led_mask(GDisplay* g) { - (void) g; - return led_mask; -} - -static GFXINLINE uint8_t get_led_address(GDisplay* g, uint16_t x, uint16_t y) -{ - (void) g; - return led_mapping[y][x]; -} - -static GFXINLINE void set_hardware_shutdown(GDisplay* g, bool shutdown) { - (void) g; - if(!shutdown) { - palSetPad(GPIOB, 16); - } - else { - palClearPad(GPIOB, 16); - } -} - -static GFXINLINE void write_data(GDisplay *g, uint8_t* data, uint16_t length) { - (void) g; - i2cMasterTransmitTimeout(&I2CD1, IS31_ADDR_DEFAULT, data, length, 0, 0, US2ST(IS31_TIMEOUT)); -} - -#endif /* _GDISP_LLD_BOARD_H */ diff --git a/keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/driver.mk b/keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/driver.mk deleted file mode 100644 index f32d0d868..000000000 --- a/keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/driver.mk +++ /dev/null @@ -1,2 +0,0 @@ -GFXINC += drivers/gdisp/IS31FL3731C -GFXSRC += drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c diff --git a/keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c b/keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c deleted file mode 100644 index 1d21f0c49..000000000 --- a/keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c +++ /dev/null @@ -1,333 +0,0 @@ -/* -Copyright 2016 Fred Sundvik - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include "gfx.h" - -#if GFX_USE_GDISP - -#define GDISP_DRIVER_VMT GDISPVMT_IS31FL3731C_ERGODOX -#include "drivers/gdisp/IS31FL3731C/gdisp_lld_config.h" -#include "src/gdisp/gdisp_driver.h" - -#include "board_IS31FL3731C.h" - -/*===========================================================================*/ -/* Driver local definitions. */ -/*===========================================================================*/ - -#ifndef GDISP_SCREEN_HEIGHT - #define GDISP_SCREEN_HEIGHT 9 -#endif -#ifndef GDISP_SCREEN_WIDTH - #define GDISP_SCREEN_WIDTH 16 -#endif -#ifndef GDISP_INITIAL_CONTRAST - #define GDISP_INITIAL_CONTRAST 0 -#endif -#ifndef GDISP_INITIAL_BACKLIGHT - #define GDISP_INITIAL_BACKLIGHT 100 -#endif - -#define GDISP_FLG_NEEDFLUSH (GDISP_FLG_DRIVER<<0) - -#define IS31_ADDR_DEFAULT 0x74 - -#define IS31_REG_CONFIG 0x00 -// bits in reg -#define IS31_REG_CONFIG_PICTUREMODE 0x00 -#define IS31_REG_CONFIG_AUTOPLAYMODE 0x08 -#define IS31_REG_CONFIG_AUDIOPLAYMODE 0x18 -// D2:D0 bits are starting frame for autoplay mode - -#define IS31_REG_PICTDISP 0x01 // D2:D0 frame select for picture mode - -#define IS31_REG_AUTOPLAYCTRL1 0x02 -// D6:D4 number of loops (000=infty) -// D2:D0 number of frames to be used - -#define IS31_REG_AUTOPLAYCTRL2 0x03 // D5:D0 delay time (*11ms) - -#define IS31_REG_DISPLAYOPT 0x05 -#define IS31_REG_DISPLAYOPT_INTENSITY_SAME 0x20 // same intensity for all frames -#define IS31_REG_DISPLAYOPT_BLINK_ENABLE 0x8 -// D2:D0 bits blink period time (*0.27s) - -#define IS31_REG_AUDIOSYNC 0x06 -#define IS31_REG_AUDIOSYNC_ENABLE 0x1 - -#define IS31_REG_FRAMESTATE 0x07 - -#define IS31_REG_BREATHCTRL1 0x08 -// D6:D4 fade out time (26ms*2^i) -// D2:D0 fade in time (26ms*2^i) - -#define IS31_REG_BREATHCTRL2 0x09 -#define IS31_REG_BREATHCTRL2_ENABLE 0x10 -// D2:D0 extinguish time (3.5ms*2^i) - -#define IS31_REG_SHUTDOWN 0x0A -#define IS31_REG_SHUTDOWN_OFF 0x0 -#define IS31_REG_SHUTDOWN_ON 0x1 - -#define IS31_REG_AGCCTRL 0x0B -#define IS31_REG_ADCRATE 0x0C - -#define IS31_COMMANDREGISTER 0xFD -#define IS31_FUNCTIONREG 0x0B // helpfully called 'page nine' -#define IS31_FUNCTIONREG_SIZE 0xD - -#define IS31_FRAME_SIZE 0xB4 - -#define IS31_PWM_REG 0x24 -#define IS31_PWM_SIZE 0x90 - -#define IS31_LED_MASK_SIZE 0x12 -#define IS31_SCREEN_WIDTH 16 - -#define IS31 - -//Generated by http://jared.geek.nz/2013/feb/linear-led-pwm -const unsigned char cie[256] = { - 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, - 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, - 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, - 7, 8, 8, 8, 8, 9, 9, 9, 10, 10, - 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, - 13, 14, 14, 15, 15, 15, 16, 16, 17, 17, - 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, - 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, - 28, 28, 29, 29, 30, 31, 31, 32, 32, 33, - 34, 34, 35, 36, 37, 37, 38, 39, 39, 40, - 41, 42, 43, 43, 44, 45, 46, 47, 47, 48, - 49, 50, 51, 52, 53, 54, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 70, 71, 72, 73, 74, 75, 76, 77, 79, - 80, 81, 82, 83, 85, 86, 87, 88, 90, 91, - 92, 94, 95, 96, 98, 99, 100, 102, 103, 105, - 106, 108, 109, 110, 112, 113, 115, 116, 118, 120, - 121, 123, 124, 126, 128, 129, 131, 132, 134, 136, - 138, 139, 141, 143, 145, 146, 148, 150, 152, 154, - 155, 157, 159, 161, 163, 165, 167, 169, 171, 173, - 175, 177, 179, 181, 183, 185, 187, 189, 191, 193, - 196, 198, 200, 202, 204, 207, 209, 211, 214, 216, - 218, 220, 223, 225, 228, 230, 232, 235, 237, 240, - 242, 245, 247, 250, 252, 255, -}; - - -/*===========================================================================*/ -/* Driver local functions. */ -/*===========================================================================*/ - -typedef struct{ - uint8_t write_buffer_offset; - uint8_t write_buffer[IS31_FRAME_SIZE]; - uint8_t frame_buffer[GDISP_SCREEN_HEIGHT * GDISP_SCREEN_WIDTH]; - uint8_t page; -}__attribute__((__packed__)) PrivData; - -// Some common routines and macros -#define PRIV(g) ((PrivData*)g->priv) - -/*===========================================================================*/ -/* Driver exported functions. */ -/*===========================================================================*/ - -static GFXINLINE void write_page(GDisplay* g, uint8_t page) { - uint8_t tx[2] __attribute__((aligned(2))); - tx[0] = IS31_COMMANDREGISTER; - tx[1] = page; - write_data(g, tx, 2); -} - -static GFXINLINE void write_register(GDisplay* g, uint8_t page, uint8_t reg, uint8_t data) { - uint8_t tx[2] __attribute__((aligned(2))); - tx[0] = reg; - tx[1] = data; - write_page(g, page); - write_data(g, tx, 2); -} - -static GFXINLINE void write_ram(GDisplay *g, uint8_t page, uint16_t offset, uint16_t length) { - PRIV(g)->write_buffer_offset = offset; - write_page(g, page); - write_data(g, (uint8_t*)PRIV(g), length + 1); -} - -LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { - // The private area is the display surface. - g->priv = gfxAlloc(sizeof(PrivData)); - __builtin_memset(PRIV(g), 0, sizeof(PrivData)); - PRIV(g)->page = 0; - - // Initialise the board interface - init_board(g); - gfxSleepMilliseconds(10); - - // zero function page, all registers (assuming full_page is all zeroes) - write_ram(g, IS31_FUNCTIONREG, 0, IS31_FUNCTIONREG_SIZE); - set_hardware_shutdown(g, false); - gfxSleepMilliseconds(10); - // software shutdown - write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); - gfxSleepMilliseconds(10); - // zero function page, all registers - write_ram(g, IS31_FUNCTIONREG, 0, IS31_FUNCTIONREG_SIZE); - gfxSleepMilliseconds(10); - - - // zero all LED registers on all 8 pages, and enable the mask - __builtin_memcpy(PRIV(g)->write_buffer, get_led_mask(g), IS31_LED_MASK_SIZE); - for(uint8_t i=0; i<8; i++) { - write_ram(g, i, 0, IS31_FRAME_SIZE); - gfxSleepMilliseconds(1); - } - - // software shutdown disable (i.e. turn stuff on) - write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON); - gfxSleepMilliseconds(10); - - // Finish Init - post_init_board(g); - - /* Initialise the GDISP structure */ - g->g.Width = GDISP_SCREEN_WIDTH; - g->g.Height = GDISP_SCREEN_HEIGHT; - g->g.Orientation = GDISP_ROTATE_0; - g->g.Powermode = powerOn; - g->g.Backlight = GDISP_INITIAL_BACKLIGHT; - g->g.Contrast = GDISP_INITIAL_CONTRAST; - return TRUE; -} - -#if GDISP_HARDWARE_FLUSH - LLDSPEC void gdisp_lld_flush(GDisplay *g) { - // Don't flush if we don't need it. - if (!(g->flags & GDISP_FLG_NEEDFLUSH)) - return; - - PRIV(g)->page++; - PRIV(g)->page %= 2; - // TODO: some smarter algorithm for this - // We should run only one physical page at a time - // This way we don't need to send so much data, and - // we could use slightly less memory - uint8_t* src = PRIV(g)->frame_buffer; - for (int y=0;ywrite_buffer[get_led_address(g, x, y)]=cie[*src]; - ++src; - } - } - write_ram(g, PRIV(g)->page, IS31_PWM_REG, IS31_PWM_SIZE); - gfxSleepMilliseconds(1); - write_register(g, IS31_FUNCTIONREG, IS31_REG_PICTDISP, PRIV(g)->page); - - g->flags &= ~GDISP_FLG_NEEDFLUSH; - } -#endif - -#if GDISP_HARDWARE_DRAWPIXEL - LLDSPEC void gdisp_lld_draw_pixel(GDisplay *g) { - coord_t x, y; - - switch(g->g.Orientation) { - default: - case GDISP_ROTATE_0: - x = g->p.x; - y = g->p.y; - break; - case GDISP_ROTATE_180: - x = GDISP_SCREEN_WIDTH-1 - g->p.x; - y = g->p.y; - break; - } - PRIV(g)->frame_buffer[y * GDISP_SCREEN_WIDTH + x] = gdispColor2Native(g->p.color); - g->flags |= GDISP_FLG_NEEDFLUSH; - } -#endif - -#if GDISP_HARDWARE_PIXELREAD - LLDSPEC color_t gdisp_lld_get_pixel_color(GDisplay *g) { - coord_t x, y; - - switch(g->g.Orientation) { - default: - case GDISP_ROTATE_0: - x = g->p.x; - y = g->p.y; - break; - case GDISP_ROTATE_180: - x = GDISP_SCREEN_WIDTH-1 - g->p.x; - y = g->p.y; - break; - } - return gdispNative2Color(PRIV(g)->frame_buffer[y * GDISP_SCREEN_WIDTH + x]); - } -#endif - -#if GDISP_NEED_CONTROL && GDISP_HARDWARE_CONTROL - LLDSPEC void gdisp_lld_control(GDisplay *g) { - switch(g->p.x) { - case GDISP_CONTROL_POWER: - if (g->g.Powermode == (powermode_t)g->p.ptr) - return; - switch((powermode_t)g->p.ptr) { - case powerOff: - case powerSleep: - case powerDeepSleep: - write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); - break; - case powerOn: - write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON); - break; - default: - return; - } - g->g.Powermode = (powermode_t)g->p.ptr; - return; - - case GDISP_CONTROL_ORIENTATION: - if (g->g.Orientation == (orientation_t)g->p.ptr) - return; - switch((orientation_t)g->p.ptr) { - /* Rotation is handled by the drawing routines */ - case GDISP_ROTATE_0: - case GDISP_ROTATE_180: - g->g.Height = GDISP_SCREEN_HEIGHT; - g->g.Width = GDISP_SCREEN_WIDTH; - break; - case GDISP_ROTATE_90: - case GDISP_ROTATE_270: - g->g.Height = GDISP_SCREEN_WIDTH; - g->g.Width = GDISP_SCREEN_HEIGHT; - break; - default: - return; - } - g->g.Orientation = (orientation_t)g->p.ptr; - return; - - case GDISP_CONTROL_CONTRAST: - return; - } - } -#endif // GDISP_NEED_CONTROL - -#endif // GFX_USE_GDISP diff --git a/keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h b/keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h deleted file mode 100644 index bb28ad775..000000000 --- a/keyboards/infinity_ergodox/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h +++ /dev/null @@ -1,36 +0,0 @@ -/* -Copyright 2016 Fred Sundvik - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#ifndef _GDISP_LLD_CONFIG_H -#define _GDISP_LLD_CONFIG_H - -#if GFX_USE_GDISP - -/*===========================================================================*/ -/* Driver hardware support. */ -/*===========================================================================*/ - -#define GDISP_HARDWARE_FLUSH TRUE // This controller requires flushing -#define GDISP_HARDWARE_DRAWPIXEL TRUE -#define GDISP_HARDWARE_PIXELREAD TRUE -#define GDISP_HARDWARE_CONTROL TRUE - -#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_GRAY256 - -#endif /* GFX_USE_GDISP */ - -#endif /* _GDISP_LLD_CONFIG_H */ diff --git a/keyboards/infinity_ergodox/drivers/gdisp/emulator_lcd/driver.mk b/keyboards/infinity_ergodox/drivers/gdisp/emulator_lcd/driver.mk deleted file mode 100644 index 16c3f80f5..000000000 --- a/keyboards/infinity_ergodox/drivers/gdisp/emulator_lcd/driver.mk +++ /dev/null @@ -1,2 +0,0 @@ -GFXINC += drivers/gdisp/emulator_lcd -GFXSRC += drivers/gdisp/emulator_lcd/emulator_lcd.c diff --git a/keyboards/infinity_ergodox/drivers/gdisp/emulator_lcd/emulator_lcd.c b/keyboards/infinity_ergodox/drivers/gdisp/emulator_lcd/emulator_lcd.c deleted file mode 100644 index babfe2b36..000000000 --- a/keyboards/infinity_ergodox/drivers/gdisp/emulator_lcd/emulator_lcd.c +++ /dev/null @@ -1,10 +0,0 @@ -#define GDISP_DRIVER_VMT GDISPVMT_EMULATOR_LCD_ERGODOX -#define GDISP_HARDWARE_DRAWPIXEL TRUE -#define GDISP_HARDWARE_PIXELREAD TRUE -#define GDISP_HARDWARE_CONTROL TRUE -#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_MONO -#define GDISP_SCREEN_WIDTH 128 -#define GDISP_SCREEN_HEIGHT 32 -#define ROTATE_180_IS_FLIP - -#include "emulator/emulator_driver_impl.h" diff --git a/keyboards/infinity_ergodox/drivers/gdisp/emulator_led/driver.mk b/keyboards/infinity_ergodox/drivers/gdisp/emulator_led/driver.mk deleted file mode 100644 index 255434432..000000000 --- a/keyboards/infinity_ergodox/drivers/gdisp/emulator_led/driver.mk +++ /dev/null @@ -1,2 +0,0 @@ -GFXINC += drivers/gdisp/emulator_led -GFXSRC += drivers/gdisp/emulator_led/emulator_led.c diff --git a/keyboards/infinity_ergodox/drivers/gdisp/emulator_led/emulator_led.c b/keyboards/infinity_ergodox/drivers/gdisp/emulator_led/emulator_led.c deleted file mode 100644 index b0ebcdc47..000000000 --- a/keyboards/infinity_ergodox/drivers/gdisp/emulator_led/emulator_led.c +++ /dev/null @@ -1,10 +0,0 @@ -#define GDISP_DRIVER_VMT GDISPVMT_EMULATOR_LED_ERGODOX -#define GDISP_HARDWARE_DRAWPIXEL TRUE -#define GDISP_HARDWARE_PIXELREAD TRUE -#define GDISP_HARDWARE_CONTROL TRUE -#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_MONO -#define GDISP_SCREEN_WIDTH 7 -#define GDISP_SCREEN_HEIGHT 7 -#define ROTATE_180_IS_FLIP - -#include "emulator/emulator_driver_impl.h" diff --git a/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/board_ST7565.h b/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/board_ST7565.h deleted file mode 100644 index 290571ce5..000000000 --- a/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/board_ST7565.h +++ /dev/null @@ -1,127 +0,0 @@ -/* - * This file is subject to the terms of the GFX License. If a copy of - * the license was not distributed with this file, you can obtain one at: - * - * http://ugfx.org/license.html - */ - -#ifndef _GDISP_LLD_BOARD_H -#define _GDISP_LLD_BOARD_H - -#include "print.h" - -#define ST7565_LCD_BIAS ST7565_LCD_BIAS_9 // actually 6 -#define ST7565_ADC ST7565_ADC_NORMAL -#define ST7565_COM_SCAN ST7565_COM_SCAN_DEC -#define ST7565_PAGE_ORDER 0,1,2,3 -/* - * Custom page order for several LCD boards, e.g. HEM12864-99 - * #define ST7565_PAGE_ORDER 4,5,6,7,0,1,2,3 - */ - -#define ST7565_GPIOPORT GPIOC -#define ST7565_PORT PORTC -#define ST7565_A0_PIN 7 -#define ST7565_RST_PIN 8 -#define ST7565_MOSI_PIN 6 -#define ST7565_SLCK_PIN 5 -#define ST7565_SS_PIN 4 - -#define palSetPadModeRaw(portname, bits) \ - ST7565_PORT->PCR[ST7565_##portname##_PIN] = bits - -#define palSetPadModeNamed(portname, portmode) \ - palSetPadMode(ST7565_GPIOPORT, ST7565_##portname##_PIN, portmode) - -#define ST7565_SPI_MODE PORTx_PCRn_DSE | PORTx_PCRn_MUX(2) -// DSPI Clock and Transfer Attributes -// Frame Size: 8 bits -// MSB First -// CLK Low by default -static const SPIConfig spi1config = { - NULL, - /* HW dependent part.*/ - ST7565_GPIOPORT, - ST7565_SS_PIN, - SPIx_CTARn_FMSZ(7) - | SPIx_CTARn_ASC(7) - | SPIx_CTARn_DT(7) - | SPIx_CTARn_CSSCK(7) - | SPIx_CTARn_PBR(0) - | SPIx_CTARn_BR(7) - //SPI_CR1_BR_0 -}; - -static bool_t st7565_is_data_mode = 1; - -static GFXINLINE void init_board(GDisplay *g) { - (void) g; - palSetPadModeNamed(A0, PAL_MODE_OUTPUT_PUSHPULL); - palSetPad(ST7565_GPIOPORT, ST7565_A0_PIN); - st7565_is_data_mode = 1; - palSetPadModeNamed(RST, PAL_MODE_OUTPUT_PUSHPULL); - palSetPad(ST7565_GPIOPORT, ST7565_RST_PIN); - palSetPadModeRaw(MOSI, ST7565_SPI_MODE); - palSetPadModeRaw(SLCK, ST7565_SPI_MODE); - palSetPadModeRaw(SS, ST7565_SPI_MODE); - - spiInit(); - spiStart(&SPID1, &spi1config); - spiSelect(&SPID1); -} - -static GFXINLINE void post_init_board(GDisplay *g) { - (void) g; -} - -static GFXINLINE void setpin_reset(GDisplay *g, bool_t state) { - (void) g; - if (state) { - palClearPad(ST7565_GPIOPORT, ST7565_RST_PIN); - } - else { - palSetPad(ST7565_GPIOPORT, ST7565_RST_PIN); - } -} - -static GFXINLINE void acquire_bus(GDisplay *g) { - (void) g; - // Only the LCD is using the SPI bus, so no need to acquire - // spiAcquireBus(&SPID1); -} - -static GFXINLINE void release_bus(GDisplay *g) { - (void) g; - // Only the LCD is using the SPI bus, so no need to release - //spiReleaseBus(&SPID1); -} - -static GFXINLINE void write_cmd(GDisplay *g, uint8_t cmd) { - (void) g; - if (st7565_is_data_mode) { - // The sleeps need to be at lest 10 vs 25 ns respectively - // So let's sleep two ticks, one tick might not be enough - // if we are at the end of the tick - chThdSleep(2); - palClearPad(ST7565_GPIOPORT, ST7565_A0_PIN); - chThdSleep(2); - st7565_is_data_mode = 0; - } - spiSend(&SPID1, 1, &cmd); -} - -static GFXINLINE void write_data(GDisplay *g, uint8_t* data, uint16_t length) { - (void) g; - if (!st7565_is_data_mode) { - // The sleeps need to be at lest 10 vs 25 ns respectively - // So let's sleep two ticks, one tick might not be enough - // if we are at the end of the tick - chThdSleep(2); - palSetPad(ST7565_GPIOPORT, ST7565_A0_PIN); - chThdSleep(2); - st7565_is_data_mode = 1; - } - spiSend(&SPID1, length, data); -} - -#endif /* _GDISP_LLD_BOARD_H */ diff --git a/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/driver.mk b/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/driver.mk deleted file mode 100644 index 889a1a031..000000000 --- a/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/driver.mk +++ /dev/null @@ -1,2 +0,0 @@ -GFXINC += drivers/gdisp/st7565ergodox -GFXSRC += drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c diff --git a/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c b/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c deleted file mode 100644 index c33aea81a..000000000 --- a/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c +++ /dev/null @@ -1,292 +0,0 @@ -/* - * This file is subject to the terms of the GFX License. If a copy of - * the license was not distributed with this file, you can obtain one at: - * - * http://ugfx.org/license.html - */ - -#include "gfx.h" - -#if GFX_USE_GDISP - -#define GDISP_DRIVER_VMT GDISPVMT_ST7565_ERGODOX -#include "drivers/gdisp/st7565ergodox/gdisp_lld_config.h" -#include "src/gdisp/gdisp_driver.h" - -#include "board_ST7565.h" - -/*===========================================================================*/ -/* Driver local definitions. */ -/*===========================================================================*/ - -#ifndef GDISP_SCREEN_HEIGHT - #define GDISP_SCREEN_HEIGHT 32 -#endif -#ifndef GDISP_SCREEN_WIDTH - #define GDISP_SCREEN_WIDTH 128 -#endif -#ifndef GDISP_INITIAL_CONTRAST - #define GDISP_INITIAL_CONTRAST 0 -#endif -#ifndef GDISP_INITIAL_BACKLIGHT - #define GDISP_INITIAL_BACKLIGHT 100 -#endif - -#define GDISP_FLG_NEEDFLUSH (GDISP_FLG_DRIVER<<0) - -#include "drivers/gdisp/st7565ergodox/st7565.h" - -/*===========================================================================*/ -/* Driver config defaults for backward compatibility. */ -/*===========================================================================*/ -#ifndef ST7565_LCD_BIAS - #define ST7565_LCD_BIAS ST7565_LCD_BIAS_7 -#endif -#ifndef ST7565_ADC - #define ST7565_ADC ST7565_ADC_NORMAL -#endif -#ifndef ST7565_COM_SCAN - #define ST7565_COM_SCAN ST7565_COM_SCAN_INC -#endif -#ifndef ST7565_PAGE_ORDER - #define ST7565_PAGE_ORDER 0,1,2,3 -#endif - -/*===========================================================================*/ -/* Driver local functions. */ -/*===========================================================================*/ - -typedef struct{ - bool_t buffer2; - uint8_t ram[GDISP_SCREEN_HEIGHT * GDISP_SCREEN_WIDTH / 8]; -}PrivData; - -// Some common routines and macros -#define PRIV(g) ((PrivData*)g->priv) -#define RAM(g) (PRIV(g)->ram) -#define write_cmd2(g, cmd1, cmd2) { write_cmd(g, cmd1); write_cmd(g, cmd2); } -#define write_cmd3(g, cmd1, cmd2, cmd3) { write_cmd(g, cmd1); write_cmd(g, cmd2); write_cmd(g, cmd3); } - -// Some common routines and macros -#define delay(us) gfxSleepMicroseconds(us) -#define delay_ms(ms) gfxSleepMilliseconds(ms) - -#define xyaddr(x, y) ((x) + ((y)>>3)*GDISP_SCREEN_WIDTH) -#define xybit(y) (1<<((y)&7)) - -/*===========================================================================*/ -/* Driver exported functions. */ -/*===========================================================================*/ - -/* - * As this controller can't update on a pixel boundary we need to maintain the - * the entire display surface in memory so that we can do the necessary bit - * operations. Fortunately it is a small display in monochrome. - * 64 * 128 / 8 = 1024 bytes. - */ - -LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { - // The private area is the display surface. - g->priv = gfxAlloc(sizeof(PrivData)); - PRIV(g)->buffer2 = false; - - // Initialise the board interface - init_board(g); - - // Hardware reset - setpin_reset(g, TRUE); - gfxSleepMilliseconds(20); - setpin_reset(g, FALSE); - gfxSleepMilliseconds(20); - - acquire_bus(g); - write_cmd(g, ST7565_DISPLAY_OFF); - write_cmd(g, ST7565_LCD_BIAS); - write_cmd(g, ST7565_ADC); - write_cmd(g, ST7565_COM_SCAN); - - write_cmd(g, ST7565_START_LINE | 0); - - write_cmd(g, ST7565_RESISTOR_RATIO | 0x6); - - // turn on voltage converter (VC=1, VR=0, VF=0) - write_cmd(g, ST7565_POWER_CONTROL | 0x04); - delay_ms(50); - - // turn on voltage regulator (VC=1, VR=1, VF=0) - write_cmd(g, ST7565_POWER_CONTROL | 0x06); - delay_ms(50); - - // turn on voltage follower (VC=1, VR=1, VF=1) - write_cmd(g, ST7565_POWER_CONTROL | 0x07); - delay_ms(50); - - write_cmd(g, 0xE2); - write_cmd(g, ST7565_COM_SCAN); - write_cmd2(g, ST7565_CONTRAST, GDISP_INITIAL_CONTRAST*64/101); - //write_cmd2(g, ST7565_CONTRAST, 0); - write_cmd(g, ST7565_DISPLAY_ON); - write_cmd(g, ST7565_ALLON_NORMAL); - write_cmd(g, ST7565_INVERT_DISPLAY); - - write_cmd(g, ST7565_RMW); - - // Finish Init - post_init_board(g); - - // Release the bus - release_bus(g); - - /* Initialise the GDISP structure */ - g->g.Width = GDISP_SCREEN_WIDTH; - g->g.Height = GDISP_SCREEN_HEIGHT; - g->g.Orientation = GDISP_ROTATE_0; - g->g.Powermode = powerOn; - g->g.Backlight = GDISP_INITIAL_BACKLIGHT; - g->g.Contrast = GDISP_INITIAL_CONTRAST; - return TRUE; -} - -#if GDISP_HARDWARE_FLUSH - LLDSPEC void gdisp_lld_flush(GDisplay *g) { - unsigned p; - - // Don't flush if we don't need it. - if (!(g->flags & GDISP_FLG_NEEDFLUSH)) - return; - - acquire_bus(g); - unsigned dstOffset = (PRIV(g)->buffer2 ? 4 : 0); - for (p = 0; p < 4; p++) { - write_cmd(g, ST7565_PAGE | (p + dstOffset)); - write_cmd(g, ST7565_COLUMN_MSB | 0); - write_cmd(g, ST7565_COLUMN_LSB | 0); - write_cmd(g, ST7565_RMW); - write_data(g, RAM(g) + (p*GDISP_SCREEN_WIDTH), GDISP_SCREEN_WIDTH); - } - unsigned line = (PRIV(g)->buffer2 ? 32 : 0); - write_cmd(g, ST7565_START_LINE | line); - PRIV(g)->buffer2 = !PRIV(g)->buffer2; - release_bus(g); - - g->flags &= ~GDISP_FLG_NEEDFLUSH; - } -#endif - -#if GDISP_HARDWARE_DRAWPIXEL - LLDSPEC void gdisp_lld_draw_pixel(GDisplay *g) { - coord_t x, y; - - switch(g->g.Orientation) { - default: - case GDISP_ROTATE_0: - x = g->p.x; - y = g->p.y; - break; - case GDISP_ROTATE_90: - x = g->p.y; - y = GDISP_SCREEN_HEIGHT-1 - g->p.x; - break; - case GDISP_ROTATE_180: - x = GDISP_SCREEN_WIDTH-1 - g->p.x; - y = GDISP_SCREEN_HEIGHT-1 - g->p.y; - break; - case GDISP_ROTATE_270: - x = GDISP_SCREEN_HEIGHT-1 - g->p.y; - y = g->p.x; - break; - } - if (gdispColor2Native(g->p.color) != Black) - RAM(g)[xyaddr(x, y)] |= xybit(y); - else - RAM(g)[xyaddr(x, y)] &= ~xybit(y); - g->flags |= GDISP_FLG_NEEDFLUSH; - } -#endif - -#if GDISP_HARDWARE_PIXELREAD - LLDSPEC color_t gdisp_lld_get_pixel_color(GDisplay *g) { - coord_t x, y; - - switch(g->g.Orientation) { - default: - case GDISP_ROTATE_0: - x = g->p.x; - y = g->p.y; - break; - case GDISP_ROTATE_90: - x = g->p.y; - y = GDISP_SCREEN_HEIGHT-1 - g->p.x; - break; - case GDISP_ROTATE_180: - x = GDISP_SCREEN_WIDTH-1 - g->p.x; - y = GDISP_SCREEN_HEIGHT-1 - g->p.y; - break; - case GDISP_ROTATE_270: - x = GDISP_SCREEN_HEIGHT-1 - g->p.y; - y = g->p.x; - break; - } - return (RAM(g)[xyaddr(x, y)] & xybit(y)) ? White : Black; - } -#endif - -#if GDISP_NEED_CONTROL && GDISP_HARDWARE_CONTROL - LLDSPEC void gdisp_lld_control(GDisplay *g) { - switch(g->p.x) { - case GDISP_CONTROL_POWER: - if (g->g.Powermode == (powermode_t)g->p.ptr) - return; - switch((powermode_t)g->p.ptr) { - case powerOff: - case powerSleep: - case powerDeepSleep: - acquire_bus(g); - write_cmd(g, ST7565_DISPLAY_OFF); - release_bus(g); - break; - case powerOn: - acquire_bus(g); - write_cmd(g, ST7565_DISPLAY_ON); - release_bus(g); - break; - default: - return; - } - g->g.Powermode = (powermode_t)g->p.ptr; - return; - - case GDISP_CONTROL_ORIENTATION: - if (g->g.Orientation == (orientation_t)g->p.ptr) - return; - switch((orientation_t)g->p.ptr) { - /* Rotation is handled by the drawing routines */ - case GDISP_ROTATE_0: - case GDISP_ROTATE_180: - g->g.Height = GDISP_SCREEN_HEIGHT; - g->g.Width = GDISP_SCREEN_WIDTH; - break; - case GDISP_ROTATE_90: - case GDISP_ROTATE_270: - g->g.Height = GDISP_SCREEN_WIDTH; - g->g.Width = GDISP_SCREEN_HEIGHT; - break; - default: - return; - } - g->g.Orientation = (orientation_t)g->p.ptr; - return; - - case GDISP_CONTROL_CONTRAST: - if ((unsigned)g->p.ptr > 100) - g->p.ptr = (void *)100; - acquire_bus(g); - write_cmd2(g, ST7565_CONTRAST, ((((unsigned)g->p.ptr)<<6)/101) & 0x3F); - release_bus(g); - g->g.Contrast = (unsigned)g->p.ptr; - return; - } - } -#endif // GDISP_NEED_CONTROL - -#endif // GFX_USE_GDISP diff --git a/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_config.h b/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_config.h deleted file mode 100644 index 48587b9e1..000000000 --- a/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_config.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * This file is subject to the terms of the GFX License. If a copy of - * the license was not distributed with this file, you can obtain one at: - * - * http://ugfx.org/license.html - */ - -#ifndef _GDISP_LLD_CONFIG_H -#define _GDISP_LLD_CONFIG_H - -#if GFX_USE_GDISP - -/*===========================================================================*/ -/* Driver hardware support. */ -/*===========================================================================*/ - -#define GDISP_HARDWARE_FLUSH TRUE // This controller requires flushing -#define GDISP_HARDWARE_DRAWPIXEL TRUE -#define GDISP_HARDWARE_PIXELREAD TRUE -#define GDISP_HARDWARE_CONTROL TRUE - -#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_MONO - -#endif /* GFX_USE_GDISP */ - -#endif /* _GDISP_LLD_CONFIG_H */ diff --git a/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/st7565.h b/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/st7565.h deleted file mode 100644 index 48636b33d..000000000 --- a/keyboards/infinity_ergodox/drivers/gdisp/st7565ergodox/st7565.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * This file is subject to the terms of the GFX License. If a copy of - * the license was not distributed with this file, you can obtain one at: - * - * http://ugfx.org/license.html - */ - -#ifndef _ST7565_H -#define _ST7565_H - -#define ST7565_CONTRAST 0x81 -#define ST7565_ALLON_NORMAL 0xA4 -#define ST7565_ALLON 0xA5 -#define ST7565_POSITIVE_DISPLAY 0xA6 -#define ST7565_INVERT_DISPLAY 0xA7 -#define ST7565_DISPLAY_OFF 0xAE -#define ST7565_DISPLAY_ON 0xAF - -#define ST7565_LCD_BIAS_7 0xA3 -#define ST7565_LCD_BIAS_9 0xA2 - -#define ST7565_ADC_NORMAL 0xA0 -#define ST7565_ADC_REVERSE 0xA1 - -#define ST7565_COM_SCAN_INC 0xC0 -#define ST7565_COM_SCAN_DEC 0xC8 - -#define ST7565_START_LINE 0x40 -#define ST7565_PAGE 0xB0 -#define ST7565_COLUMN_MSB 0x10 -#define ST7565_COLUMN_LSB 0x00 -#define ST7565_RMW 0xE0 - -#define ST7565_RESISTOR_RATIO 0x20 -#define ST7565_POWER_CONTROL 0x28 - -#endif /* _ST7565_H */ diff --git a/keyboards/infinity_ergodox/gfxconf.h b/keyboards/infinity_ergodox/gfxconf.h deleted file mode 100644 index 8caa577b7..000000000 --- a/keyboards/infinity_ergodox/gfxconf.h +++ /dev/null @@ -1,331 +0,0 @@ -/** - * This file has a different license to the rest of the uGFX system. - * You can copy, modify and distribute this file as you see fit. - * You do not need to publish your source modifications to this file. - * The only thing you are not permitted to do is to relicense it - * under a different license. - */ - -/** - * Copy this file into your project directory and rename it as gfxconf.h - * Edit your copy to turn on the uGFX features you want to use. - * The values below are the defaults. - * - * Only remove the comments from lines where you want to change the - * default value. This allows definitions to be included from - * driver makefiles when required and provides the best future - * compatibility for your project. - * - * Please use spaces instead of tabs in this file. - */ - -#ifndef _GFXCONF_H -#define _GFXCONF_H - - -/////////////////////////////////////////////////////////////////////////// -// GOS - One of these must be defined, preferably in your Makefile // -/////////////////////////////////////////////////////////////////////////// -//#define GFX_USE_OS_CHIBIOS TRUE -//#define GFX_USE_OS_FREERTOS FALSE -// #define GFX_FREERTOS_USE_TRACE FALSE -//#define GFX_USE_OS_WIN32 FALSE -//#define GFX_USE_OS_LINUX FALSE -//#define GFX_USE_OS_OSX FALSE -//#define GFX_USE_OS_ECOS FALSE -//#define GFX_USE_OS_RAWRTOS FALSE -//#define GFX_USE_OS_ARDUINO FALSE -//#define GFX_USE_OS_KEIL FALSE -//#define GFX_USE_OS_CMSIS FALSE -//#define GFX_USE_OS_RAW32 FALSE -// #define INTERRUPTS_OFF() optional_code -// #define INTERRUPTS_ON() optional_code -// These are not defined by default for some reason -#define GOS_NEED_X_THREADS FALSE -#define GOS_NEED_X_HEAP FALSE - -// Options that (should where relevant) apply to all operating systems - #define GFX_NO_INLINE FALSE -// #define GFX_COMPILER GFX_COMPILER_UNKNOWN -// #define GFX_CPU GFX_CPU_UNKNOWN -// #define GFX_OS_HEAP_SIZE 0 -// #define GFX_OS_NO_INIT FALSE -// #define GFX_OS_INIT_NO_WARNING FALSE -// #define GFX_OS_PRE_INIT_FUNCTION myHardwareInitRoutine -// #define GFX_OS_EXTRA_INIT_FUNCTION myOSInitRoutine -// #define GFX_OS_EXTRA_DEINIT_FUNCTION myOSDeInitRoutine - - -/////////////////////////////////////////////////////////////////////////// -// GDISP // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GDISP TRUE - -//#define GDISP_NEED_AUTOFLUSH FALSE -//#define GDISP_NEED_TIMERFLUSH FALSE -//#define GDISP_NEED_VALIDATION TRUE -//#define GDISP_NEED_CLIP TRUE -#define GDISP_NEED_CIRCLE TRUE -#define GDISP_NEED_ELLIPSE TRUE -#define GDISP_NEED_ARC TRUE -#define GDISP_NEED_ARCSECTORS TRUE -#define GDISP_NEED_CONVEX_POLYGON TRUE -//#define GDISP_NEED_SCROLL FALSE -#define GDISP_NEED_PIXELREAD TRUE -#define GDISP_NEED_CONTROL TRUE -//#define GDISP_NEED_QUERY FALSE -//#define GDISP_NEED_MULTITHREAD FALSE -//#define GDISP_NEED_STREAMING FALSE -#define GDISP_NEED_TEXT TRUE -// #define GDISP_NEED_TEXT_WORDWRAP FALSE -// #define GDISP_NEED_ANTIALIAS FALSE -// #define GDISP_NEED_UTF8 FALSE - #define GDISP_NEED_TEXT_KERNING TRUE -// #define GDISP_INCLUDE_FONT_UI1 FALSE -// #define GDISP_INCLUDE_FONT_UI2 FALSE // The smallest preferred font. -// #define GDISP_INCLUDE_FONT_LARGENUMBERS FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS10 FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS12 FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS16 FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS20 FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS24 FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS32 FALSE - #define GDISP_INCLUDE_FONT_DEJAVUSANSBOLD12 TRUE -// #define GDISP_INCLUDE_FONT_FIXED_10X20 FALSE -// #define GDISP_INCLUDE_FONT_FIXED_7X14 FALSE - #define GDISP_INCLUDE_FONT_FIXED_5X8 TRUE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS12_AA FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS16_AA FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS20_AA FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS24_AA FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS32_AA FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANSBOLD12_AA FALSE -// #define GDISP_INCLUDE_USER_FONTS FALSE - -//#define GDISP_NEED_IMAGE FALSE -// #define GDISP_NEED_IMAGE_NATIVE FALSE -// #define GDISP_NEED_IMAGE_GIF FALSE -// #define GDISP_NEED_IMAGE_BMP FALSE -// #define GDISP_NEED_IMAGE_BMP_1 FALSE -// #define GDISP_NEED_IMAGE_BMP_4 FALSE -// #define GDISP_NEED_IMAGE_BMP_4_RLE FALSE -// #define GDISP_NEED_IMAGE_BMP_8 FALSE -// #define GDISP_NEED_IMAGE_BMP_8_RLE FALSE -// #define GDISP_NEED_IMAGE_BMP_16 FALSE -// #define GDISP_NEED_IMAGE_BMP_24 FALSE -// #define GDISP_NEED_IMAGE_BMP_32 FALSE -// #define GDISP_NEED_IMAGE_JPG FALSE -// #define GDISP_NEED_IMAGE_PNG FALSE -// #define GDISP_NEED_IMAGE_ACCOUNTING FALSE -#ifdef EMULATOR -#define GDISP_NEED_PIXMAP TRUE -#endif -// #define GDISP_NEED_PIXMAP_IMAGE FALSE - -//#define GDISP_DEFAULT_ORIENTATION GDISP_ROTATE_LANDSCAPE // If not defined the native hardware orientation is used. -//#define GDISP_LINEBUF_SIZE 128 -//#define GDISP_STARTUP_COLOR Black -#define GDISP_NEED_STARTUP_LOGO FALSE - -//#define GDISP_TOTAL_DISPLAYS 2 - -#ifndef EMULATOR -#define GDISP_DRIVER_LIST GDISPVMT_ST7565_ERGODOX, GDISPVMT_IS31FL3731C_ERGODOX -#else -#define GDISP_DRIVER_LIST GDISPVMT_EMULATOR_LCD_ERGODOX, GDISPVMT_EMULATOR_LED_ERGODOX -#endif - - #ifdef GDISP_DRIVER_LIST - // For code and speed optimization define as TRUE or FALSE if all controllers have the same capability - #define GDISP_HARDWARE_STREAM_WRITE FALSE - #define GDISP_HARDWARE_STREAM_READ FALSE - #define GDISP_HARDWARE_STREAM_POS FALSE - #define GDISP_HARDWARE_DRAWPIXEL TRUE - #define GDISP_HARDWARE_CLEARS FALSE - #define GDISP_HARDWARE_FILLS FALSE - #define GDISP_HARDWARE_BITFILLS FALSE - #define GDISP_HARDWARE_SCROLL FALSE - #define GDISP_HARDWARE_PIXELREAD TRUE - #define GDISP_HARDWARE_CONTROL TRUE - #define GDISP_HARDWARE_QUERY FALSE - #define GDISP_HARDWARE_CLIP FALSE - - #define GDISP_PIXELFORMAT GDISP_PIXELFORMAT_RGB888 - #endif - -// The custom format is not defined for some reason, so define it as error -// so we don't get compiler warnings -#define GDISP_PIXELFORMAT_CUSTOM GDISP_PIXELFORMAT_ERROR - -#define GDISP_USE_GFXNET FALSE -// #define GDISP_GFXNET_PORT 13001 -// #define GDISP_GFXNET_CUSTOM_LWIP_STARTUP FALSE -// #define GDISP_DONT_WAIT_FOR_NET_DISPLAY FALSE -// #define GDISP_GFXNET_UNSAFE_SOCKETS FALSE - - -/////////////////////////////////////////////////////////////////////////// -// GWIN // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GWIN FALSE - -//#define GWIN_NEED_WINDOWMANAGER FALSE -// #define GWIN_REDRAW_IMMEDIATE FALSE -// #define GWIN_REDRAW_SINGLEOP FALSE -// #define GWIN_NEED_FLASHING FALSE -// #define GWIN_FLASHING_PERIOD 250 - -//#define GWIN_NEED_CONSOLE FALSE -// #define GWIN_CONSOLE_USE_HISTORY FALSE -// #define GWIN_CONSOLE_HISTORY_AVERAGING FALSE -// #define GWIN_CONSOLE_HISTORY_ATCREATE FALSE -// #define GWIN_CONSOLE_ESCSEQ FALSE -// #define GWIN_CONSOLE_USE_BASESTREAM FALSE -// #define GWIN_CONSOLE_USE_FLOAT FALSE -//#define GWIN_NEED_GRAPH FALSE -//#define GWIN_NEED_GL3D FALSE - -//#define GWIN_NEED_WIDGET FALSE -//#define GWIN_FOCUS_HIGHLIGHT_WIDTH 1 -// #define GWIN_NEED_LABEL FALSE -// #define GWIN_LABEL_ATTRIBUTE FALSE -// #define GWIN_NEED_BUTTON FALSE -// #define GWIN_BUTTON_LAZY_RELEASE FALSE -// #define GWIN_NEED_SLIDER FALSE -// #define GWIN_SLIDER_NOSNAP FALSE -// #define GWIN_SLIDER_DEAD_BAND 5 -// #define GWIN_SLIDER_TOGGLE_INC 20 -// #define GWIN_NEED_CHECKBOX FALSE -// #define GWIN_NEED_IMAGE FALSE -// #define GWIN_NEED_IMAGE_ANIMATION FALSE -// #define GWIN_NEED_RADIO FALSE -// #define GWIN_NEED_LIST FALSE -// #define GWIN_NEED_LIST_IMAGES FALSE -// #define GWIN_NEED_PROGRESSBAR FALSE -// #define GWIN_PROGRESSBAR_AUTO FALSE -// #define GWIN_NEED_KEYBOARD FALSE -// #define GWIN_KEYBOARD_DEFAULT_LAYOUT VirtualKeyboard_English1 -// #define GWIN_NEED_KEYBOARD_ENGLISH1 TRUE -// #define GWIN_NEED_TEXTEDIT FALSE -// #define GWIN_FLAT_STYLING FALSE -// #define GWIN_WIDGET_TAGS FALSE - -//#define GWIN_NEED_CONTAINERS FALSE -// #define GWIN_NEED_CONTAINER FALSE -// #define GWIN_NEED_FRAME FALSE -// #define GWIN_NEED_TABSET FALSE -// #define GWIN_TABSET_TABHEIGHT 18 - - -/////////////////////////////////////////////////////////////////////////// -// GEVENT // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GEVENT TRUE - -//#define GEVENT_ASSERT_NO_RESOURCE FALSE -//#define GEVENT_MAXIMUM_SIZE 32 -//#define GEVENT_MAX_SOURCE_LISTENERS 32 - - -/////////////////////////////////////////////////////////////////////////// -// GTIMER // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GTIMER FALSE - -//#define GTIMER_THREAD_PRIORITY HIGH_PRIORITY -//#define GTIMER_THREAD_WORKAREA_SIZE 2048 - - -/////////////////////////////////////////////////////////////////////////// -// GQUEUE // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GQUEUE FALSE - -//#define GQUEUE_NEED_ASYNC FALSE -//#define GQUEUE_NEED_GSYNC FALSE -//#define GQUEUE_NEED_FSYNC FALSE -//#define GQUEUE_NEED_BUFFERS FALSE - -/////////////////////////////////////////////////////////////////////////// -// GINPUT // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GINPUT FALSE - -//#define GINPUT_NEED_MOUSE FALSE -// #define GINPUT_TOUCH_STARTRAW FALSE -// #define GINPUT_TOUCH_NOTOUCH FALSE -// #define GINPUT_TOUCH_NOCALIBRATE FALSE -// #define GINPUT_TOUCH_NOCALIBRATE_GUI FALSE -// #define GINPUT_MOUSE_POLL_PERIOD 25 -// #define GINPUT_MOUSE_CLICK_TIME 300 -// #define GINPUT_TOUCH_CXTCLICK_TIME 700 -// #define GINPUT_TOUCH_USER_CALIBRATION_LOAD FALSE -// #define GINPUT_TOUCH_USER_CALIBRATION_SAVE FALSE -// #define GMOUSE_DRIVER_LIST GMOUSEVMT_Win32, GMOUSEVMT_Win32 -//#define GINPUT_NEED_KEYBOARD FALSE -// #define GINPUT_KEYBOARD_POLL_PERIOD 200 -// #define GKEYBOARD_DRIVER_LIST GKEYBOARDVMT_Win32, GKEYBOARDVMT_Win32 -// #define GKEYBOARD_LAYOUT_OFF FALSE -// #define GKEYBOARD_LAYOUT_SCANCODE2_US FALSE -//#define GINPUT_NEED_TOGGLE FALSE -//#define GINPUT_NEED_DIAL FALSE - - -/////////////////////////////////////////////////////////////////////////// -// GFILE // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GFILE FALSE - -//#define GFILE_NEED_PRINTG FALSE -//#define GFILE_NEED_SCANG FALSE -//#define GFILE_NEED_STRINGS FALSE -//#define GFILE_NEED_FILELISTS FALSE -//#define GFILE_NEED_STDIO FALSE -//#define GFILE_NEED_NOAUTOMOUNT FALSE -//#define GFILE_NEED_NOAUTOSYNC FALSE - -//#define GFILE_NEED_MEMFS FALSE -//#define GFILE_NEED_ROMFS FALSE -//#define GFILE_NEED_RAMFS FALSE -//#define GFILE_NEED_FATFS FALSE -//#define GFILE_NEED_NATIVEFS FALSE -//#define GFILE_NEED_CHBIOSFS FALSE - -//#define GFILE_ALLOW_FLOATS FALSE -//#define GFILE_ALLOW_DEVICESPECIFIC FALSE -//#define GFILE_MAX_GFILES 3 - -/////////////////////////////////////////////////////////////////////////// -// GADC // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GADC FALSE - -//#define GADC_MAX_LOWSPEED_DEVICES 4 - - -/////////////////////////////////////////////////////////////////////////// -// GAUDIO // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GAUDIO FALSE -// There seems to be a bug in the ugfx code, the wrong define is used -// So define it in order to avoid warnings -#define GFX_USE_GAUDIN GFX_USE_GAUDIO -// #define GAUDIO_NEED_PLAY FALSE -// #define GAUDIO_NEED_RECORD FALSE - - -/////////////////////////////////////////////////////////////////////////// -// GMISC // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GMISC TRUE - -//#define GMISC_NEED_ARRAYOPS FALSE -//#define GMISC_NEED_FASTTRIG FALSE -//#define GMISC_NEED_FIXEDTRIG FALSE -//#define GMISC_NEED_INVSQRT FALSE -// #define GMISC_INVSQRT_MIXED_ENDIAN FALSE -// #define GMISC_INVSQRT_REAL_SLOW FALSE -#define GMISC_NEED_MATRIXFLOAT2D TRUE -#define GMISC_NEED_MATRIXFIXED2D FALSE - -#endif /* _GFXCONF_H */ diff --git a/keyboards/infinity_ergodox/halconf.h b/keyboards/infinity_ergodox/halconf.h deleted file mode 100644 index 55dd5e88d..000000000 --- a/keyboards/infinity_ergodox/halconf.h +++ /dev/null @@ -1,353 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/halconf.h - * @brief HAL configuration header. - * @details HAL configuration file, this file allows to enable or disable the - * various device drivers from your application. You may also use - * this file in order to override the device drivers default settings. - * - * @addtogroup HAL_CONF - * @{ - */ - -#ifndef _HALCONF_H_ -#define _HALCONF_H_ - -#include "mcuconf.h" - -/** - * @brief Enables the PAL subsystem. - */ -#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) -#define HAL_USE_PAL TRUE -#endif - -/** - * @brief Enables the ADC subsystem. - */ -#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) -#define HAL_USE_ADC FALSE -#endif - -/** - * @brief Enables the CAN subsystem. - */ -#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) -#define HAL_USE_CAN FALSE -#endif - -/** - * @brief Enables the DAC subsystem. - */ -#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) -#define HAL_USE_DAC FALSE -#endif - -/** - * @brief Enables the EXT subsystem. - */ -#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__) -#define HAL_USE_EXT FALSE -#endif - -/** - * @brief Enables the GPT subsystem. - */ -#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) -#define HAL_USE_GPT FALSE -#endif - -/** - * @brief Enables the I2C subsystem. - */ -#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) -#define HAL_USE_I2C TRUE -#endif - -/** - * @brief Enables the I2S subsystem. - */ -#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) -#define HAL_USE_I2S FALSE -#endif - -/** - * @brief Enables the ICU subsystem. - */ -#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) -#define HAL_USE_ICU FALSE -#endif - -/** - * @brief Enables the MAC subsystem. - */ -#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) -#define HAL_USE_MAC FALSE -#endif - -/** - * @brief Enables the MMC_SPI subsystem. - */ -#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) -#define HAL_USE_MMC_SPI FALSE -#endif - -/** - * @brief Enables the PWM subsystem. - */ -#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) -#define HAL_USE_PWM FALSE -#endif - -/** - * @brief Enables the RTC subsystem. - */ -#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) -#define HAL_USE_RTC FALSE -#endif - -/** - * @brief Enables the SDC subsystem. - */ -#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) -#define HAL_USE_SDC FALSE -#endif - -/** - * @brief Enables the SERIAL subsystem. - */ -#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL TRUE -#endif - -/** - * @brief Enables the SERIAL over USB subsystem. - */ -#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) -#define HAL_USE_SERIAL_USB TRUE -#endif - -/** - * @brief Enables the SPI subsystem. - */ -#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) -#define HAL_USE_SPI TRUE -#endif - -/** - * @brief Enables the UART subsystem. - */ -#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) -#define HAL_USE_UART FALSE -#endif - -/** - * @brief Enables the USB subsystem. - */ -#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) -#define HAL_USE_USB TRUE -#endif - -/** - * @brief Enables the WDG subsystem. - */ -#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) -#define HAL_USE_WDG FALSE -#endif - -/*===========================================================================*/ -/* ADC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) -#define ADC_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define ADC_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* CAN driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Sleep mode related APIs inclusion switch. - */ -#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) -#define CAN_USE_SLEEP_MODE TRUE -#endif - -/*===========================================================================*/ -/* I2C driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables the mutual exclusion APIs on the I2C bus. - */ -#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define I2C_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* MAC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) -#define MAC_USE_ZERO_COPY FALSE -#endif - -/** - * @brief Enables an event sources for incoming packets. - */ -#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) -#define MAC_USE_EVENTS TRUE -#endif - -/*===========================================================================*/ -/* MMC_SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - * This option is recommended also if the SPI driver does not - * use a DMA channel and heavily loads the CPU. - */ -#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) -#define MMC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SDC driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Number of initialization attempts before rejecting the card. - * @note Attempts are performed at 10mS intervals. - */ -#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) -#define SDC_INIT_RETRY 100 -#endif - -/** - * @brief Include support for MMC cards. - * @note MMC support is not yet implemented so this option must be kept - * at @p FALSE. - */ -#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) -#define SDC_MMC_SUPPORT FALSE -#endif - -/** - * @brief Delays insertions. - * @details If enabled this options inserts delays into the MMC waiting - * routines releasing some extra CPU time for the threads with - * lower priority, this may slow down the driver a bit however. - */ -#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) -#define SDC_NICE_WAITING TRUE -#endif - -/*===========================================================================*/ -/* SERIAL driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Default bit rate. - * @details Configuration parameter, this is the baud rate selected for the - * default configuration. - */ -#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) -#define SERIAL_DEFAULT_BITRATE 38400 -#endif - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - * @note The default is 64 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 128 -#endif - -/*===========================================================================*/ -/* SERIAL_USB driver related setting. */ -/*===========================================================================*/ - -/** - * @brief Serial over USB buffers size. - * @details Configuration parameter, the buffer size must be a multiple of - * the USB data endpoint maximum packet size. - * @note The default is 64 bytes for both the transmission and receive - * buffers. - */ -#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_USB_BUFFERS_SIZE 256 -#endif - -/*===========================================================================*/ -/* SPI driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) -#define SPI_USE_WAIT TRUE -#endif - -/** - * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) -#define SPI_USE_MUTUAL_EXCLUSION TRUE -#endif - -/*===========================================================================*/ -/* USB driver related settings. */ -/*===========================================================================*/ - -/** - * @brief Enables synchronous APIs. - * @note Disabling this option saves both code and data space. - */ -#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) -#define USB_USE_WAIT TRUE -#endif - -#endif /* _HALCONF_H_ */ - -/** @} */ diff --git a/keyboards/infinity_ergodox/infinity_ergodox.c b/keyboards/infinity_ergodox/infinity_ergodox.c deleted file mode 100644 index 87ed40fab..000000000 --- a/keyboards/infinity_ergodox/infinity_ergodox.c +++ /dev/null @@ -1,76 +0,0 @@ -#include "infinity_ergodox.h" -#include "ch.h" -#include "hal.h" -#include "serial_link/system/serial_link.h" -#include "lcd_backlight.h" - -void init_serial_link_hal(void) { - PORTA->PCR[1] = PORTx_PCRn_PE | PORTx_PCRn_PS | PORTx_PCRn_PFE | PORTx_PCRn_MUX(2); - PORTA->PCR[2] = PORTx_PCRn_DSE | PORTx_PCRn_SRE | PORTx_PCRn_MUX(2); - PORTE->PCR[0] = PORTx_PCRn_PE | PORTx_PCRn_PS | PORTx_PCRn_PFE | PORTx_PCRn_MUX(3); - PORTE->PCR[1] = PORTx_PCRn_DSE | PORTx_PCRn_SRE | PORTx_PCRn_MUX(3); -} - -#define RED_PIN 1 -#define GREEN_PIN 2 -#define BLUE_PIN 3 -#define CHANNEL_RED FTM0->CHANNEL[0] -#define CHANNEL_GREEN FTM0->CHANNEL[1] -#define CHANNEL_BLUE FTM0->CHANNEL[2] - -#define RGB_PORT PORTC -#define RGB_PORT_GPIO GPIOC - -// Base FTM clock selection (72 MHz system clock) -// @ 0xFFFF period, 72 MHz / (0xFFFF * 2) = Actual period -// Higher pre-scalar will use the most power (also look the best) -// Pre-scalar calculations -// 0 - 72 MHz -> 549 Hz -// 1 - 36 MHz -> 275 Hz -// 2 - 18 MHz -> 137 Hz -// 3 - 9 MHz -> 69 Hz (Slightly visible flicker) -// 4 - 4 500 kHz -> 34 Hz (Visible flickering) -// 5 - 2 250 kHz -> 17 Hz -// 6 - 1 125 kHz -> 9 Hz -// 7 - 562 500 Hz -> 4 Hz -// Using a higher pre-scalar without flicker is possible but FTM0_MOD will need to be reduced -// Which will reduce the brightness range -#define PRESCALAR_DEFINE 0 - -void lcd_backlight_hal_init(void) { - // Setup Backlight - SIM->SCGC6 |= SIM_SCGC6_FTM0; - FTM0->CNT = 0; // Reset counter - - // PWM Period - // 16-bit maximum - FTM0->MOD = 0xFFFF; - - // Set FTM to PWM output - Edge Aligned, Low-true pulses -#define CNSC_MODE FTM_SC_CPWMS | FTM_SC_PS(4) | FTM_SC_CLKS(0) - CHANNEL_RED.CnSC = CNSC_MODE; - CHANNEL_GREEN.CnSC = CNSC_MODE; - CHANNEL_BLUE.CnSC = CNSC_MODE; - - // System clock, /w prescalar setting - FTM0->SC = FTM_SC_CLKS(1) | FTM_SC_PS(PRESCALAR_DEFINE); - - CHANNEL_RED.CnV = 0; - CHANNEL_GREEN.CnV = 0; - CHANNEL_BLUE.CnV = 0; - - RGB_PORT_GPIO->PDDR |= (1 << RED_PIN); - RGB_PORT_GPIO->PDDR |= (1 << GREEN_PIN); - RGB_PORT_GPIO->PDDR |= (1 << BLUE_PIN); - -#define RGB_MODE PORTx_PCRn_SRE | PORTx_PCRn_DSE | PORTx_PCRn_MUX(4) - RGB_PORT->PCR[RED_PIN] = RGB_MODE; - RGB_PORT->PCR[GREEN_PIN] = RGB_MODE; - RGB_PORT->PCR[BLUE_PIN] = RGB_MODE; -} - -void lcd_backlight_hal_color(uint16_t r, uint16_t g, uint16_t b) { - CHANNEL_RED.CnV = r; - CHANNEL_GREEN.CnV = g; - CHANNEL_BLUE.CnV = b; -} diff --git a/keyboards/infinity_ergodox/infinity_ergodox.h b/keyboards/infinity_ergodox/infinity_ergodox.h deleted file mode 100644 index de7267594..000000000 --- a/keyboards/infinity_ergodox/infinity_ergodox.h +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef KEYBOARDS_INFINITY_ERGODOX_INFINITY_ERGODOX_H_ -#define KEYBOARDS_INFINITY_ERGODOX_INFINITY_ERGODOX_H_ - -#include "quantum.h" - -#define KEYMAP( \ - A80, A70, A60, A50, A40, A30, A20, \ - A81, A71, A61, A51, A41, A31, A21, \ - A82, A72, A62, A52, A42, A32, \ - A83, A73, A63, A53, A43, A33, A23, \ - A84, A74, A64, A54, A44, \ - A13, A03, \ - A04, \ - A34, A24, A14, \ - B20, B30, B40, B50, B60, B70, B80, \ - B21, B31, B41, B51, B61, B71, B81, \ - B32, B42, B52, B62, B72, B82, \ - B23, B33, B43, B53, B63, B73, B83, \ - B44, B54, B64, B74, B84, \ - B03, B13, \ - B04, \ - B14, B24, B34 \ -) { \ - { KC_NO, KC_NO, KC_NO, KC_##A03, KC_##A04 }, \ - { KC_NO, KC_NO, KC_NO, KC_##A13, KC_##A14 }, \ - { KC_##A20, KC_##A21, KC_NO, KC_##A23, KC_##A24 }, \ - { KC_##A30, KC_##A31, KC_##A32, KC_##A33, KC_##A34 }, \ - { KC_##A40, KC_##A41, KC_##A42, KC_##A43, KC_##A44 }, \ - { KC_##A50, KC_##A51, KC_##A52, KC_##A53, KC_##A54 }, \ - { KC_##A60, KC_##A61, KC_##A62, KC_##A63, KC_##A64 }, \ - { KC_##A70, KC_##A71, KC_##A72, KC_##A73, KC_##A74 }, \ - { KC_##A80, KC_##A81, KC_##A82, KC_##A83, KC_##A84 }, \ - { KC_NO, KC_NO, KC_NO, KC_##B03, KC_##B04 }, \ - { KC_NO, KC_NO, KC_NO, KC_##B13, KC_##B14 }, \ - { KC_##B20, KC_##B21, KC_NO, KC_##B23, KC_##B24 }, \ - { KC_##B30, KC_##B31, KC_##B32, KC_##B33, KC_##B34 }, \ - { KC_##B40, KC_##B41, KC_##B42, KC_##B43, KC_##B44 }, \ - { KC_##B50, KC_##B51, KC_##B52, KC_##B53, KC_##B54 }, \ - { KC_##B60, KC_##B61, KC_##B62, KC_##B63, KC_##B64 }, \ - { KC_##B70, KC_##B71, KC_##B72, KC_##B73, KC_##B74 }, \ - { KC_##B80, KC_##B81, KC_##B82, KC_##B83, KC_##B84 } \ -} - -#endif /* KEYBOARDS_INFINITY_ERGODOX_INFINITY_ERGODOX_H_ */ diff --git a/keyboards/infinity_ergodox/keymaps/default/keymap.c b/keyboards/infinity_ergodox/keymaps/default/keymap.c deleted file mode 100644 index f1e6b1c8a..000000000 --- a/keyboards/infinity_ergodox/keymaps/default/keymap.c +++ /dev/null @@ -1,114 +0,0 @@ -/* -Copyright 2016 Fred Sundvik -Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include "infinity_ergodox.h" - -// Workaround for old keymap format -#define KC_RESET RESET - -const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - KEYMAP( // layer 0 : default - // left hand - EQL, 1, 2, 3, 4, 5, ESC, - BSLS,Q, W, E, R, T, FN1, - TAB, A, S, D, F, G, - LSFT,Z, X, C, V, B, FN0, - LGUI,GRV, BSLS,LEFT,RGHT, - LCTL,LALT, - HOME, - BSPC,DEL, END, - // right hand - FN2, 6, 7, 8, 9, 0, MINS, - LBRC,Y, U, I, O, P, RBRC, - H, J, K, L, SCLN,QUOT, - FN0, N, M, COMM,DOT, SLSH,RSFT, - LEFT,DOWN,UP, RGHT,RGUI, - RALT,RCTL, - PGUP, - PGDN,ENT, SPC - ), - - KEYMAP( // layer 1 : function and symbol keys - // left hand - TRNS,F1, F2, F3, F4, F5, F11, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,FN3, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS, - TRNS, - TRNS,TRNS,TRNS, - // right hand - F12, F6, F7, F8, F9, F10, TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS, - TRNS, - TRNS,TRNS,TRNS - ), - - KEYMAP( // layer 2 : keyboard functions - // left hand - RESET,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, FN3, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS, - TRNS, - TRNS,TRNS,TRNS, - // right hand - TRNS, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS, - TRNS, - TRNS,TRNS,TRNS - ), - - KEYMAP( // layer 3: numpad - // left hand - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS, - TRNS, - TRNS,TRNS,TRNS, - // right hand - TRNS,NLCK,PSLS,PAST,PAST,PMNS,BSPC, - TRNS,NO, P7, P8, P9, PMNS,BSPC, - NO, P4, P5, P6, PPLS,PENT, - TRNS,NO, P1, P2, P3, PPLS,PENT, - P0, PDOT,SLSH,PENT,PENT, - TRNS,TRNS, - TRNS, - TRNS,TRNS,TRNS - ), -}; -const uint16_t fn_actions[] = { - ACTION_LAYER_MOMENTARY(1), // FN0 - switch to Layer1 - ACTION_LAYER_SET(2, ON_PRESS), // FN1 - set Layer2 - ACTION_LAYER_TOGGLE(3), // FN2 - toggle Layer3 aka Numpad layer - ACTION_LAYER_SET(0, ON_PRESS), // FN3 - set Layer0 -}; diff --git a/keyboards/infinity_ergodox/keymaps/default/visualizer.c b/keyboards/infinity_ergodox/keymaps/default/visualizer.c deleted file mode 100644 index c0d335ce6..000000000 --- a/keyboards/infinity_ergodox/keymaps/default/visualizer.c +++ /dev/null @@ -1,168 +0,0 @@ -/* -Copyright 2016 Fred Sundvik - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -// Currently we are assuming that both the backlight and LCD are enabled -// But it's entirely possible to write a custom visualizer that use only -// one of them -#ifndef LCD_BACKLIGHT_ENABLE -#error This visualizer needs that LCD backlight is enabled -#endif - -#ifndef LCD_ENABLE -#error This visualizer needs that LCD is enabled -#endif - -#include "visualizer.h" -#include "led_test.h" - -static const char* welcome_text[] = {"TMK", "Infinity Ergodox"}; - -// Just an example how to write custom keyframe functions, we could have moved -// all this into the init function -bool display_welcome(keyframe_animation_t* animation, visualizer_state_t* state) { - (void)animation; - // Read the uGFX documentation for information how to use the displays - // http://wiki.ugfx.org/index.php/Main_Page - gdispClear(White); - // You can use static variables for things that can't be found in the animation - // or state structs - gdispDrawString(0, 3, welcome_text[0], state->font_dejavusansbold12, Black); - gdispDrawString(0, 15, welcome_text[1], state->font_dejavusansbold12, Black); - // Always remember to flush the display - gdispFlush(); - // you could set the backlight color as well, but we won't do it here, since - // it's part of the following animation - // lcd_backlight_color(hue, saturation, intensity); - // We don't need constant updates, just drawing the screen once is enough - return false; -} - -// Feel free to modify the animations below, or even add new ones if needed - -// Don't worry, if the startup animation is long, you can use the keyboard like normal -// during that time -static keyframe_animation_t startup_animation = { - .num_frames = 4, - .loop = false, - .frame_lengths = {0, gfxMillisecondsToTicks(1000), gfxMillisecondsToTicks(5000), 0}, - .frame_functions = { - display_welcome, - keyframe_animate_backlight_color, - keyframe_no_operation, - enable_visualization - }, -}; - -// The color animation animates the LCD color when you change layers -static keyframe_animation_t color_animation = { - .num_frames = 2, - .loop = false, - // Note that there's a 200 ms no-operation frame, - // this prevents the color from changing when activating the layer - // momentarily - .frame_lengths = {gfxMillisecondsToTicks(200), gfxMillisecondsToTicks(500)}, - .frame_functions = {keyframe_no_operation, keyframe_animate_backlight_color}, -}; - -// The LCD animation alternates between the layer name display and a -// bitmap that displays all active layers -static keyframe_animation_t lcd_animation = { - .num_frames = 2, - .loop = true, - .frame_lengths = {gfxMillisecondsToTicks(2000), gfxMillisecondsToTicks(2000)}, - .frame_functions = {keyframe_display_layer_text, keyframe_display_layer_bitmap}, -}; - -static keyframe_animation_t suspend_animation = { - .num_frames = 3, - .loop = false, - .frame_lengths = {0, gfxMillisecondsToTicks(1000), 0}, - .frame_functions = { - keyframe_display_layer_text, - keyframe_animate_backlight_color, - keyframe_disable_lcd_and_backlight, - }, -}; - -static keyframe_animation_t resume_animation = { - .num_frames = 5, - .loop = false, - .frame_lengths = {0, 0, gfxMillisecondsToTicks(1000), gfxMillisecondsToTicks(5000), 0}, - .frame_functions = { - keyframe_enable_lcd_and_backlight, - display_welcome, - keyframe_animate_backlight_color, - keyframe_no_operation, - enable_visualization, - }, -}; - -void initialize_user_visualizer(visualizer_state_t* state) { - // The brightness will be dynamically adjustable in the future - // But for now, change it here. - lcd_backlight_brightness(0x50); - state->current_lcd_color = LCD_COLOR(0x00, 0x00, 0xFF); - state->target_lcd_color = LCD_COLOR(0x10, 0xFF, 0xFF); - start_keyframe_animation(&startup_animation); - start_keyframe_animation(&led_test_animation); -} - -void update_user_visualizer_state(visualizer_state_t* state) { - // Add more tests, change the colors and layer texts here - // Usually you want to check the high bits (higher layers first) - // because that's the order layers are processed for keypresses - // You can for check for example: - // state->status.layer - // state->status.default_layer - // state->status.leds (see led.h for available statuses) - if (state->status.layer & 0x8) { - state->target_lcd_color = LCD_COLOR(0xC0, 0xB0, 0xFF); - state->layer_text = "Numpad"; - } - else if (state->status.layer & 0x4) { - state->target_lcd_color = LCD_COLOR(0, 0xB0, 0xFF); - state->layer_text = "KBD functions"; - } - else if (state->status.layer & 0x2) { - state->target_lcd_color = LCD_COLOR(0x80, 0xB0, 0xFF); - state->layer_text = "Function keys"; - } - else { - state->target_lcd_color = LCD_COLOR(0x40, 0xB0, 0xFF); - state->layer_text = "Default"; - } - // You can also stop existing animations, and start your custom ones here - // remember that you should normally have only one animation for the LCD - // and one for the background. But you can also combine them if you want. - start_keyframe_animation(&lcd_animation); - start_keyframe_animation(&color_animation); -} - -void user_visualizer_suspend(visualizer_state_t* state) { - state->layer_text = "Suspending..."; - uint8_t hue = LCD_HUE(state->current_lcd_color); - uint8_t sat = LCD_SAT(state->current_lcd_color); - state->target_lcd_color = LCD_COLOR(hue, sat, 0); - start_keyframe_animation(&suspend_animation); -} - -void user_visualizer_resume(visualizer_state_t* state) { - state->current_lcd_color = LCD_COLOR(0x00, 0x00, 0x00); - state->target_lcd_color = LCD_COLOR(0x10, 0xFF, 0xFF); - start_keyframe_animation(&resume_animation); - start_keyframe_animation(&led_test_animation); -} diff --git a/keyboards/infinity_ergodox/led.c b/keyboards/infinity_ergodox/led.c deleted file mode 100644 index 77195bb35..000000000 --- a/keyboards/infinity_ergodox/led.c +++ /dev/null @@ -1,49 +0,0 @@ -/* -Copyright 2012 Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include "hal.h" - -#include "led.h" - - -void led_set(uint8_t usb_led) { -// The LCD backlight functionality conflicts with this simple -// red backlight -#if !defined(LCD_BACKLIGHT_ENABLE) && defined(STATUS_LED_ENABLE) - // PTC1: LCD Backlight Red(0:on/1:off) - GPIOC->PDDR |= (1<<1); - PORTC->PCR[1] |= PORTx_PCRn_DSE | PORTx_PCRn_MUX(1); - if (usb_led & (1<PCOR |= (1<<1); - } else { - GPIOC->PSOR |= (1<<1); - } -#elif !defined(LCD_BACKLIGHT_ENABLE) - (void)usb_led; - GPIOC->PDDR |= (1<<1); - PORTC->PCR[1] |= PORTx_PCRn_DSE | PORTx_PCRn_MUX(1); - GPIOC->PSOR |= (1<<1); - GPIOC->PDDR |= (1<<2); - PORTC->PCR[2] |= PORTx_PCRn_DSE | PORTx_PCRn_MUX(1); - GPIOC->PSOR |= (1<<2); - GPIOC->PDDR |= (1<<3); - PORTC->PCR[3] |= PORTx_PCRn_DSE | PORTx_PCRn_MUX(1); - GPIOC->PSOR |= (1<<3); -#else - (void)usb_led; -#endif -} diff --git a/keyboards/infinity_ergodox/matrix.c b/keyboards/infinity_ergodox/matrix.c deleted file mode 100644 index 2b806cd64..000000000 --- a/keyboards/infinity_ergodox/matrix.c +++ /dev/null @@ -1,169 +0,0 @@ -/* -Copyright 2016 Fred Sundvik -Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ -#include -#include -#include -#include "hal.h" -#include "timer.h" -#include "wait.h" -#include "print.h" -#include "debug.h" -#include "matrix.h" - - -/* - * Infinity ErgoDox Pinusage: - * Column pins are input with internal pull-down. Row pins are output and strobe with high. - * Key is high or 1 when it turns on. - * - * col: { PTD1, PTD4, PTD5, PTD6, PTD7 } - * row: { PTB2, PTB3, PTB18, PTB19, PTC0, PTC9, PTC10, PTC11, PTD0 } - */ -/* matrix state(1:on, 0:off) */ -static matrix_row_t matrix[MATRIX_ROWS]; -static matrix_row_t matrix_debouncing[LOCAL_MATRIX_ROWS]; -static bool debouncing = false; -static uint16_t debouncing_time = 0; - - -void matrix_init(void) -{ - /* Column(sense) */ - palSetPadMode(GPIOD, 1, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOD, 4, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOD, 5, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOD, 6, PAL_MODE_INPUT_PULLDOWN); - palSetPadMode(GPIOD, 7, PAL_MODE_INPUT_PULLDOWN); - - /* Row(strobe) */ - palSetPadMode(GPIOB, 2, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOB, 3, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOB, 18, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOB, 19, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOC, 0, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOC, 9, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOC, 10, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOC, 11, PAL_MODE_OUTPUT_PUSHPULL); - palSetPadMode(GPIOD, 0, PAL_MODE_OUTPUT_PUSHPULL); - - memset(matrix, 0, MATRIX_ROWS); - memset(matrix_debouncing, 0, LOCAL_MATRIX_ROWS); -} - -uint8_t matrix_scan(void) -{ - for (int row = 0; row < LOCAL_MATRIX_ROWS; row++) { - matrix_row_t data = 0; - - // strobe row - switch (row) { - case 0: palSetPad(GPIOB, 2); break; - case 1: palSetPad(GPIOB, 3); break; - case 2: palSetPad(GPIOB, 18); break; - case 3: palSetPad(GPIOB, 19); break; - case 4: palSetPad(GPIOC, 0); break; - case 5: palSetPad(GPIOC, 9); break; - case 6: palSetPad(GPIOC, 10); break; - case 7: palSetPad(GPIOC, 11); break; - case 8: palSetPad(GPIOD, 0); break; - } - - // need wait to settle pin state - // if you wait too short, or have a too high update rate - // the keyboard might freeze, or there might not be enough - // processing power to update the LCD screen properly. - // 20us, or two ticks at 100000Hz seems to be OK - wait_us(20); - - // read col data: { PTD1, PTD4, PTD5, PTD6, PTD7 } - data = ((palReadPort(GPIOD) & 0xF0) >> 3) | - ((palReadPort(GPIOD) & 0x02) >> 1); - - // un-strobe row - switch (row) { - case 0: palClearPad(GPIOB, 2); break; - case 1: palClearPad(GPIOB, 3); break; - case 2: palClearPad(GPIOB, 18); break; - case 3: palClearPad(GPIOB, 19); break; - case 4: palClearPad(GPIOC, 0); break; - case 5: palClearPad(GPIOC, 9); break; - case 6: palClearPad(GPIOC, 10); break; - case 7: palClearPad(GPIOC, 11); break; - case 8: palClearPad(GPIOD, 0); break; - } - - if (matrix_debouncing[row] != data) { - matrix_debouncing[row] = data; - debouncing = true; - debouncing_time = timer_read(); - } - } - - uint8_t offset = 0; -#ifdef MASTER_IS_ON_RIGHT - if (is_serial_link_master()) { - offset = MATRIX_ROWS - LOCAL_MATRIX_ROWS; - } -#endif - - if (debouncing && timer_elapsed(debouncing_time) > DEBOUNCE) { - for (int row = 0; row < LOCAL_MATRIX_ROWS; row++) { - matrix[offset + row] = matrix_debouncing[row]; - } - debouncing = false; - } - return 1; -} - -bool matrix_is_on(uint8_t row, uint8_t col) -{ - return (matrix[row] & (1< -#include "ergodox_ez.h" +#include "ergodox.h" #include "debug.h" #include "action_layer.h" diff --git a/keyboards/ergodox/keymaps/german-kinergo/keymap.c b/keyboards/ergodox/keymaps/german-kinergo/keymap.c index b1cecf0dd..971318d87 100644 --- a/keyboards/ergodox/keymaps/german-kinergo/keymap.c +++ b/keyboards/ergodox/keymaps/german-kinergo/keymap.c @@ -1,7 +1,7 @@ // German keymap derived from "german", but more closely resembling the German layout of the Kinesis Ergo Elan. // // chschmitz, 2016-01-27 -#include "ergodox_ez.h" +#include "ergodox.h" #include "debug.h" #include "action_layer.h" #include "keymap_german.h" diff --git a/keyboards/ergodox/keymaps/german-manuneo/keymap.c b/keyboards/ergodox/keymaps/german-manuneo/keymap.c index 5fcc14d51..16e92bc23 100644 --- a/keyboards/ergodox/keymaps/german-manuneo/keymap.c +++ b/keyboards/ergodox/keymaps/german-manuneo/keymap.c @@ -1,4 +1,4 @@ -#include "ergodox_ez.h" +#include "ergodox.h" #include "action_layer.h" #include "keymap.h" #include "keymap_german.h" diff --git a/keyboards/ergodox/keymaps/german-manuneo/keymap.md b/keyboards/ergodox/keymaps/german-manuneo/keymap.md index 2c9e0a837..837b25446 100644 --- a/keyboards/ergodox/keymaps/german-manuneo/keymap.md +++ b/keyboards/ergodox/keymaps/german-manuneo/keymap.md @@ -12,7 +12,7 @@ Tested with python 2.7 and python 3.4 { "layout": "ergodox_ez", "keymaps_includes": [ - "ergodox_ez.h", + "ergodox.h", "action_layer.h", "keymap_common.h", "keymap_extras/keymap_german.h", diff --git a/keyboards/ergodox/keymaps/german/keymap.c b/keyboards/ergodox/keymaps/german/keymap.c index 3eab51f0e..9b2f6ffa2 100644 --- a/keyboards/ergodox/keymaps/german/keymap.c +++ b/keyboards/ergodox/keymaps/german/keymap.c @@ -1,4 +1,4 @@ -#include "ergodox_ez.h" +#include "ergodox.h" #include "debug.h" #include "action_layer.h" #include "keymap_german.h" diff --git a/keyboards/ergodox/keymaps/j3rn/keymap.c b/keyboards/ergodox/keymaps/j3rn/keymap.c index 6e271321d..43c8f30a3 100644 --- a/keyboards/ergodox/keymaps/j3rn/keymap.c +++ b/keyboards/ergodox/keymaps/j3rn/keymap.c @@ -1,4 +1,4 @@ -#include "ergodox_ez.h" +#include "ergodox.h" #include "debug.h" #include "action_layer.h" diff --git a/keyboards/ergodox/keymaps/jack/keymap.c b/keyboards/ergodox/keymaps/jack/keymap.c index 80bf9d535..dda253fa4 100644 --- a/keyboards/ergodox/keymaps/jack/keymap.c +++ b/keyboards/ergodox/keymaps/jack/keymap.c @@ -1,4 +1,4 @@ -#include "ergodox_ez.h" +#include "ergodox.h" #include "debug.h" #include "action_layer.h" diff --git a/keyboards/ergodox/keymaps/jacobono/keymap.c b/keyboards/ergodox/keymaps/jacobono/keymap.c index 6b19800af..dc7382bfe 100644 --- a/keyboards/ergodox/keymaps/jacobono/keymap.c +++ b/keyboards/ergodox/keymaps/jacobono/keymap.c @@ -1,4 +1,4 @@ -#include "ergodox_ez.h" +#include "ergodox.h" #include "debug.h" #include "action_layer.h" diff --git a/keyboards/ergodox/keymaps/jgarr/keymap.c b/keyboards/ergodox/keymaps/jgarr/keymap.c index a3ad2040f..42d58421d 100644 --- a/keyboards/ergodox/keymaps/jgarr/keymap.c +++ b/keyboards/ergodox/keymaps/jgarr/keymap.c @@ -1,4 +1,4 @@ -#include "ergodox_ez.h" +#include "ergodox.h" #include "debug.h" #include "action_layer.h" diff --git a/keyboards/ergodox/keymaps/josh/keymap.c b/keyboards/ergodox/keymaps/josh/keymap.c index de5664a25..488b21427 100644 --- a/keyboards/ergodox/keymaps/josh/keymap.c +++ b/keyboards/ergodox/keymaps/josh/keymap.c @@ -1,4 +1,4 @@ -#include "ergodox_ez.h" +#include "ergodox.h" #include "debug.h" #include "action_layer.h" diff --git a/keyboards/ergodox/keymaps/kastyle/keymap.c b/keyboards/ergodox/keymaps/kastyle/keymap.c index 3982e0a19..a92085003 100644 --- a/keyboards/ergodox/keymaps/kastyle/keymap.c +++ b/keyboards/ergodox/keymaps/kastyle/keymap.c @@ -1,4 +1,4 @@ -#include "ergodox_ez.h" +#include "ergodox.h" #include "debug.h" #include "action_layer.h" diff --git a/keyboards/ergodox/keymaps/kines-ish/keymap.c b/keyboards/ergodox/keymaps/kines-ish/keymap.c index 5063c99f2..83f5b0e2b 100644 --- a/keyboards/ergodox/keymaps/kines-ish/keymap.c +++ b/keyboards/ergodox/keymaps/kines-ish/keymap.c @@ -1,4 +1,4 @@ -#include "ergodox_ez.h" +#include "ergodox.h" #include "debug.h" #include "action_layer.h" diff --git a/keyboards/ergodox/keymaps/maz/keymap.c b/keyboards/ergodox/keymaps/maz/keymap.c index 7b8f0df74..6378f874b 100644 --- a/keyboards/ergodox/keymaps/maz/keymap.c +++ b/keyboards/ergodox/keymaps/maz/keymap.c @@ -1,4 +1,4 @@ -#include "ergodox_ez.h" +#include "ergodox.h" #include "debug.h" #include "action_layer.h" diff --git a/keyboards/ergodox/keymaps/mpiechotka/keymap.c b/keyboards/ergodox/keymaps/mpiechotka/keymap.c index 5bfef5995..67aca4479 100644 --- a/keyboards/ergodox/keymaps/mpiechotka/keymap.c +++ b/keyboards/ergodox/keymaps/mpiechotka/keymap.c @@ -1,4 +1,4 @@ -#include "ergodox_ez.h" +#include "ergodox.h" #include "debug.h" #include "action_layer.h" #include "keymap_colemak.h" diff --git a/keyboards/ergodox/keymaps/msc/keymap.c b/keyboards/ergodox/keymaps/msc/keymap.c index e567e513f..c43aecf6b 100644 --- a/keyboards/ergodox/keymaps/msc/keymap.c +++ b/keyboards/ergodox/keymaps/msc/keymap.c @@ -1,4 +1,4 @@ -#include "ergodox_ez.h" +#include "ergodox.h" #include "debug.h" #include "action_layer.h" diff --git a/keyboards/ergodox/keymaps/naps62/keymap.c b/keyboards/ergodox/keymaps/naps62/keymap.c index d8c28423c..9064053fc 100644 --- a/keyboards/ergodox/keymaps/naps62/keymap.c +++ b/keyboards/ergodox/keymaps/naps62/keymap.c @@ -1,4 +1,4 @@ -#include "ergodox_ez.h" +#include "ergodox.h" #include "debug.h" #include "action_layer.h" diff --git a/keyboards/ergodox/keymaps/ordinary/keymap.c b/keyboards/ergodox/keymaps/ordinary/keymap.c index 778cbc63c..bf0574ea2 100644 --- a/keyboards/ergodox/keymaps/ordinary/keymap.c +++ b/keyboards/ergodox/keymaps/ordinary/keymap.c @@ -1,4 +1,4 @@ -#include "ergodox_ez.h" +#include "ergodox.h" #include "led.h" #include "debug.h" #include "action_layer.h" diff --git a/keyboards/ergodox/keymaps/osx_de/keymap.c b/keyboards/ergodox/keymaps/osx_de/keymap.c index 554813d7e..e3b9e11f4 100644 --- a/keyboards/ergodox/keymaps/osx_de/keymap.c +++ b/keyboards/ergodox/keymaps/osx_de/keymap.c @@ -1,4 +1,4 @@ -#include "ergodox_ez.h" +#include "ergodox.h" #include "debug.h" #include "action_layer.h" #include "keymap_german_osx.h" diff --git a/keyboards/ergodox/keymaps/osx_de_adnw_koy/keymap.c b/keyboards/ergodox/keymaps/osx_de_adnw_koy/keymap.c index 687a5cb8b..6c4312a32 100644 --- a/keyboards/ergodox/keymaps/osx_de_adnw_koy/keymap.c +++ b/keyboards/ergodox/keymaps/osx_de_adnw_koy/keymap.c @@ -1,4 +1,4 @@ -#include "ergodox_ez.h" +#include "ergodox.h" #include "debug.h" #include "action_layer.h" diff --git a/keyboards/ergodox/keymaps/osx_de_experimental/keymap.c b/keyboards/ergodox/keymaps/osx_de_experimental/keymap.c index 21d695894..61b6a4fdb 100644 --- a/keyboards/ergodox/keymaps/osx_de_experimental/keymap.c +++ b/keyboards/ergodox/keymaps/osx_de_experimental/keymap.c @@ -1,4 +1,4 @@ -#include "ergodox_ez.h" +#include "ergodox.h" #include "debug.h" #include "action_layer.h" #include "keymap_neo2.h" diff --git a/keyboards/ergodox/keymaps/osx_fr/keymap.c b/keyboards/ergodox/keymaps/osx_fr/keymap.c index de951666d..7dee284fa 100644 --- a/keyboards/ergodox/keymaps/osx_fr/keymap.c +++ b/keyboards/ergodox/keymaps/osx_fr/keymap.c @@ -1,5 +1,5 @@ // French AZERTY version of the default_osx file -#include "ergodox_ez.h" +#include "ergodox.h" #include "debug.h" #include "action_layer.h" #include "keymap_french_osx.h" @@ -184,4 +184,4 @@ void matrix_scan_user(void) { break; } -}; \ No newline at end of file +}; diff --git a/keyboards/ergodox/keymaps/osx_kinesis_pnut/keymap.c b/keyboards/ergodox/keymaps/osx_kinesis_pnut/keymap.c index 1032be549..11281df8a 100644 --- a/keyboards/ergodox/keymaps/osx_kinesis_pnut/keymap.c +++ b/keyboards/ergodox/keymaps/osx_kinesis_pnut/keymap.c @@ -5,7 +5,7 @@ // 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 "ergodox.h" #include "debug.h" #include "action_layer.h" diff --git a/keyboards/ergodox/keymaps/plover/keymap.c b/keyboards/ergodox/keymaps/plover/keymap.c index 8a58a37f6..12b3aa212 100644 --- a/keyboards/ergodox/keymaps/plover/keymap.c +++ b/keyboards/ergodox/keymaps/plover/keymap.c @@ -1,4 +1,4 @@ -#include "ergodox_ez.h" +#include "ergodox.h" #include "debug.h" #include "action_layer.h" diff --git a/keyboards/ergodox/keymaps/plums/keymap.c b/keyboards/ergodox/keymaps/plums/keymap.c index 46eb2e42b..2853455e3 100644 --- a/keyboards/ergodox/keymaps/plums/keymap.c +++ b/keyboards/ergodox/keymaps/plums/keymap.c @@ -1,4 +1,4 @@ -#include "ergodox_ez.h" +#include "ergodox.h" #include "debug.h" #include "action_layer.h" diff --git a/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/keymap.c b/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/keymap.c index a66971bef..24d0c4ecb 100644 --- a/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/keymap.c +++ b/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/keymap.c @@ -1,4 +1,4 @@ -#include "ergodox_ez.h" +#include "ergodox.h" #include "debug.h" #include "action_layer.h" diff --git a/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c index 7c9f67381..9f41e5189 100644 --- a/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c +++ b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c @@ -1,4 +1,4 @@ -#include "ergodox_ez.h" +#include "ergodox.h" #include "debug.h" #include "action_layer.h" diff --git a/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx/keymap.c b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx/keymap.c index 9971b834c..563e24872 100644 --- a/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx/keymap.c +++ b/keyboards/ergodox/keymaps/romanzolotarev-norman-plover-osx/keymap.c @@ -1,4 +1,4 @@ -#include "ergodox_ez.h" +#include "ergodox.h" #include "debug.h" #include "action_layer.h" diff --git a/keyboards/ergodox/keymaps/romanzolotarev-norman-qwerty-osx/keymap.c b/keyboards/ergodox/keymaps/romanzolotarev-norman-qwerty-osx/keymap.c index dedac694e..5569f5c74 100644 --- a/keyboards/ergodox/keymaps/romanzolotarev-norman-qwerty-osx/keymap.c +++ b/keyboards/ergodox/keymaps/romanzolotarev-norman-qwerty-osx/keymap.c @@ -1,4 +1,4 @@ -#include "ergodox_ez.h" +#include "ergodox.h" #include "debug.h" #include "action_layer.h" diff --git a/keyboards/ergodox/keymaps/sneako/keymap.c b/keyboards/ergodox/keymaps/sneako/keymap.c index 0c6863102..08cadd685 100644 --- a/keyboards/ergodox/keymaps/sneako/keymap.c +++ b/keyboards/ergodox/keymaps/sneako/keymap.c @@ -1,7 +1,7 @@ // Based on `default_osx` // Replace left Bksp with Ctrl/Esc // Remove the Ctrl from Z and / -#include "ergodox_ez.h" +#include "ergodox.h" #include "debug.h" #include "action_layer.h" diff --git a/keyboards/ergodox/keymaps/software_neo2/keymap.c b/keyboards/ergodox/keymaps/software_neo2/keymap.c index 2eaba0d7d..41ace403d 100644 --- a/keyboards/ergodox/keymaps/software_neo2/keymap.c +++ b/keyboards/ergodox/keymaps/software_neo2/keymap.c @@ -1,4 +1,4 @@ -#include "ergodox_ez.h" +#include "ergodox.h" #include "debug.h" #include "action_layer.h" #include "keymap_neo2.h" diff --git a/keyboards/ergodox/keymaps/supercoder/keymap.c b/keyboards/ergodox/keymaps/supercoder/keymap.c index ca21d30fd..775acf2c9 100644 --- a/keyboards/ergodox/keymaps/supercoder/keymap.c +++ b/keyboards/ergodox/keymaps/supercoder/keymap.c @@ -2,7 +2,7 @@ * SuperCoder 2000 layout */ -#include "ergodox_ez.h" +#include "ergodox.h" /* Layers */ diff --git a/keyboards/ergodox/keymaps/techtomas/keymap.c b/keyboards/ergodox/keymaps/techtomas/keymap.c index 1ff6618b9..93d59d487 100644 --- a/keyboards/ergodox/keymaps/techtomas/keymap.c +++ b/keyboards/ergodox/keymaps/techtomas/keymap.c @@ -1,4 +1,4 @@ -#include "ergodox_ez.h" +#include "ergodox.h" #include "debug.h" #include "action_layer.h" diff --git a/keyboards/ergodox/keymaps/teckinesis/keymap.c b/keyboards/ergodox/keymaps/teckinesis/keymap.c index ec6ceb96b..2837874f7 100644 --- a/keyboards/ergodox/keymaps/teckinesis/keymap.c +++ b/keyboards/ergodox/keymaps/teckinesis/keymap.c @@ -1,4 +1,4 @@ -#include "ergodox_ez.h" +#include "ergodox.h" #include "led.h" #include "debug.h" #include "action_layer.h" diff --git a/keyboards/ergodox/keymaps/tkuichooseyou/keymap.c b/keyboards/ergodox/keymaps/tkuichooseyou/keymap.c index 87b77e42e..d1c779186 100644 --- a/keyboards/ergodox/keymaps/tkuichooseyou/keymap.c +++ b/keyboards/ergodox/keymaps/tkuichooseyou/keymap.c @@ -1,4 +1,4 @@ -#include "ergodox_ez.h" +#include "ergodox.h" #include "debug.h" #include "action_layer.h" diff --git a/keyboards/ergodox/keymaps/tm2030/keymap.c b/keyboards/ergodox/keymaps/tm2030/keymap.c index ca8075226..1d861ee7c 100644 --- a/keyboards/ergodox/keymaps/tm2030/keymap.c +++ b/keyboards/ergodox/keymaps/tm2030/keymap.c @@ -1,5 +1,5 @@ /* TypeMatrix-2030-like keymap */ -#include "ergodox_ez.h" +#include "ergodox.h" #include "debug.h" #include "action_layer.h" #include "led.h" diff --git a/keyboards/ergodox/keymaps/tonyabra_osx/keymap.c b/keyboards/ergodox/keymaps/tonyabra_osx/keymap.c index 87b9fb676..2a15fcb8d 100644 --- a/keyboards/ergodox/keymaps/tonyabra_osx/keymap.c +++ b/keyboards/ergodox/keymaps/tonyabra_osx/keymap.c @@ -1,4 +1,4 @@ -#include "ergodox_ez.h" +#include "ergodox.h" #include "debug.h" #include "action_layer.h" diff --git a/keyboards/ergodox/keymaps/townk_osx/keymap.c b/keyboards/ergodox/keymaps/townk_osx/keymap.c index 07e58a491..5043d49a0 100644 --- a/keyboards/ergodox/keymaps/townk_osx/keymap.c +++ b/keyboards/ergodox/keymaps/townk_osx/keymap.c @@ -1,4 +1,4 @@ -#include "ergodox_ez.h" +#include "ergodox.h" #include "debug.h" #include "action_layer.h" #include "action_util.h" diff --git a/keyboards/ergodox/keymaps/twey/keymap.c b/keyboards/ergodox/keymaps/twey/keymap.c index 019930f2a..5deacd63f 100644 --- a/keyboards/ergodox/keymaps/twey/keymap.c +++ b/keyboards/ergodox/keymaps/twey/keymap.c @@ -1,4 +1,4 @@ -#include "ergodox_ez.h" +#include "ergodox.h" #include "debug.h" #include "action_layer.h" #include "keymap_plover.h" diff --git a/keyboards/ergodox/keymaps/workman_osx_mdw/keymap.c b/keyboards/ergodox/keymaps/workman_osx_mdw/keymap.c index 8effa53b2..c05a1018d 100644 --- a/keyboards/ergodox/keymaps/workman_osx_mdw/keymap.c +++ b/keyboards/ergodox/keymaps/workman_osx_mdw/keymap.c @@ -1,4 +1,4 @@ -#include "ergodox_ez.h" +#include "ergodox.h" #include "debug.h" #include "action_layer.h" // readme diff --git a/keyboards/ergodox/keymaps/zweihander-osx/keymap.c b/keyboards/ergodox/keymaps/zweihander-osx/keymap.c index 3444152bc..40b1d7d6d 100644 --- a/keyboards/ergodox/keymaps/zweihander-osx/keymap.c +++ b/keyboards/ergodox/keymaps/zweihander-osx/keymap.c @@ -1,4 +1,4 @@ -#include "ergodox_ez.h" +#include "ergodox.h" #include "debug.h" #include "action_layer.h" -- cgit v1.2.3 From e01b4c3fd9a7b66276ffd22dcac25d569d7bb7ff Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sat, 9 Jul 2016 00:41:15 +0300 Subject: Most ergodox keymaps compiles on Infinity There are linker errors due to missing led funcitonality though --- .../drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h | 113 +++++++ .../ergodox/drivers/gdisp/IS31FL3731C/driver.mk | 2 + .../drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c | 333 +++++++++++++++++++++ .../drivers/gdisp/IS31FL3731C/gdisp_lld_config.h | 36 +++ .../ergodox/drivers/gdisp/emulator_lcd/driver.mk | 2 + .../drivers/gdisp/emulator_lcd/emulator_lcd.c | 10 + .../ergodox/drivers/gdisp/emulator_led/driver.mk | 2 + .../drivers/gdisp/emulator_led/emulator_led.c | 10 + .../drivers/gdisp/st7565ergodox/board_ST7565.h | 127 ++++++++ .../ergodox/drivers/gdisp/st7565ergodox/driver.mk | 2 + .../drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c | 292 ++++++++++++++++++ .../drivers/gdisp/st7565ergodox/gdisp_lld_config.h | 26 ++ .../ergodox/drivers/gdisp/st7565ergodox/st7565.h | 37 +++ keyboards/ergodox/ergodox.c | 8 - keyboards/ergodox/ergodox.h | 1 - keyboards/ergodox/infinity/Makefile | 4 +- .../drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h | 113 ------- .../infinity/drivers/gdisp/IS31FL3731C/driver.mk | 2 - .../drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c | 333 --------------------- .../drivers/gdisp/IS31FL3731C/gdisp_lld_config.h | 36 --- .../infinity/drivers/gdisp/emulator_lcd/driver.mk | 2 - .../drivers/gdisp/emulator_lcd/emulator_lcd.c | 10 - .../infinity/drivers/gdisp/emulator_led/driver.mk | 2 - .../drivers/gdisp/emulator_led/emulator_led.c | 10 - .../drivers/gdisp/st7565ergodox/board_ST7565.h | 127 -------- .../infinity/drivers/gdisp/st7565ergodox/driver.mk | 2 - .../drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c | 292 ------------------ .../drivers/gdisp/st7565ergodox/gdisp_lld_config.h | 26 -- .../infinity/drivers/gdisp/st7565ergodox/st7565.h | 37 --- keyboards/ergodox/infinity/infinity.c | 21 +- keyboards/ergodox/infinity/infinity.h | 36 +-- keyboards/ergodox/infinity/matrix.c | 3 + quantum/quantum.h | 1 + tmk_core/common/print.h | 4 +- 34 files changed, 1038 insertions(+), 1024 deletions(-) create mode 100644 keyboards/ergodox/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h create mode 100644 keyboards/ergodox/drivers/gdisp/IS31FL3731C/driver.mk create mode 100644 keyboards/ergodox/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c create mode 100644 keyboards/ergodox/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h create mode 100644 keyboards/ergodox/drivers/gdisp/emulator_lcd/driver.mk create mode 100644 keyboards/ergodox/drivers/gdisp/emulator_lcd/emulator_lcd.c create mode 100644 keyboards/ergodox/drivers/gdisp/emulator_led/driver.mk create mode 100644 keyboards/ergodox/drivers/gdisp/emulator_led/emulator_led.c create mode 100644 keyboards/ergodox/drivers/gdisp/st7565ergodox/board_ST7565.h create mode 100644 keyboards/ergodox/drivers/gdisp/st7565ergodox/driver.mk create mode 100644 keyboards/ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c create mode 100644 keyboards/ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_config.h create mode 100644 keyboards/ergodox/drivers/gdisp/st7565ergodox/st7565.h delete mode 100644 keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h delete mode 100644 keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/driver.mk delete mode 100644 keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c delete mode 100644 keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h delete mode 100644 keyboards/ergodox/infinity/drivers/gdisp/emulator_lcd/driver.mk delete mode 100644 keyboards/ergodox/infinity/drivers/gdisp/emulator_lcd/emulator_lcd.c delete mode 100644 keyboards/ergodox/infinity/drivers/gdisp/emulator_led/driver.mk delete mode 100644 keyboards/ergodox/infinity/drivers/gdisp/emulator_led/emulator_led.c delete mode 100644 keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h delete mode 100644 keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/driver.mk delete mode 100644 keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c delete mode 100644 keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_config.h delete mode 100644 keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/st7565.h (limited to 'keyboards') diff --git a/keyboards/ergodox/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h b/keyboards/ergodox/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h new file mode 100644 index 000000000..2ea73f1fb --- /dev/null +++ b/keyboards/ergodox/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h @@ -0,0 +1,113 @@ +/* +Copyright 2016 Fred Sundvik + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef _GDISP_LLD_BOARD_H +#define _GDISP_LLD_BOARD_H + +static const I2CConfig i2ccfg = { + 400000 // clock speed (Hz); 400kHz max for IS31 +}; + +#define GDISP_SCREEN_WIDTH 7 +#define GDISP_SCREEN_HEIGHT 7 + +static const uint8_t led_mask[] = { + 0xFF, 0x00, /* C1-1 -> C1-16 */ + 0xFF, 0x00, /* C2-1 -> C2-16 */ + 0xFF, 0x00, /* C3-1 -> C3-16 */ + 0xFF, 0x00, /* C4-1 -> C4-16 */ + 0x3F, 0x00, /* C5-1 -> C5-16 */ + 0x00, 0x00, /* C6-1 -> C6-16 */ + 0x00, 0x00, /* C7-1 -> C7-16 */ + 0x00, 0x00, /* C8-1 -> C8-16 */ + 0x00, 0x00, /* C9-1 -> C9-16 */ +}; + +// The address of the LED +#define LA(c, r) (c + r * 16 ) +// Need to be an address that is not mapped, but inside the range of the controller matrix +#define NA LA(8, 8) + +// The numbers in the comments are the led numbers DXX on the PCB +// The mapping is taken from the schematic of left hand side +static const uint8_t led_mapping[GDISP_SCREEN_HEIGHT][GDISP_SCREEN_WIDTH] = { +// 45 44 43 42 41 40 39 + { LA(1, 1), LA(1, 0), LA(0, 4), LA(0, 3), LA(0, 2), LA(0, 1), LA(0, 0)}, +// 52 51 50 49 48 47 46 + { LA(2, 3), LA(2, 2), LA(2, 1), LA(2, 0), LA(1, 4), LA(1, 3), LA(1, 2) }, +// 58 57 56 55 54 53 N/A + { LA(3, 4), LA(3, 3), LA(3, 2), LA(3, 1), LA(3, 0), LA(2, 4), NA }, +// 67 66 65 64 63 62 61 + { LA(5, 3), LA(5, 2), LA(5, 1), LA(5, 0), LA(4, 4), LA(4, 3), LA(4, 2) }, +// 76 75 74 73 72 60 59 + { LA(7, 3), LA(7, 2), LA(7, 1), LA(7, 0), LA(6, 3), LA(4, 1), LA(4, 0) }, +// N/A N/A N/A N/A N/A N/A 68 + { NA, NA, NA, NA, NA, NA, LA(5, 4) }, +// N/A N/A N/A N/A 71 70 69 + { NA, NA, NA, NA, LA(6, 2), LA(6, 1), LA(6, 0) }, +}; + + +#define IS31_ADDR_DEFAULT 0x74 // AD connected to GND +#define IS31_TIMEOUT 5000 + +static GFXINLINE void init_board(GDisplay *g) { + (void) g; + /* I2C pins */ + palSetPadMode(GPIOB, 0, PAL_MODE_ALTERNATIVE_2); // PTB0/I2C0/SCL + palSetPadMode(GPIOB, 1, PAL_MODE_ALTERNATIVE_2); // PTB1/I2C0/SDA + palSetPadMode(GPIOB, 16, PAL_MODE_OUTPUT_PUSHPULL); + palClearPad(GPIOB, 16); + /* start I2C */ + i2cStart(&I2CD1, &i2ccfg); + // try high drive (from kiibohd) + I2CD1.i2c->C2 |= I2Cx_C2_HDRS; + // try glitch fixing (from kiibohd) + I2CD1.i2c->FLT = 4; +} + +static GFXINLINE void post_init_board(GDisplay *g) { + (void) g; +} + +static GFXINLINE const uint8_t* get_led_mask(GDisplay* g) { + (void) g; + return led_mask; +} + +static GFXINLINE uint8_t get_led_address(GDisplay* g, uint16_t x, uint16_t y) +{ + (void) g; + return led_mapping[y][x]; +} + +static GFXINLINE void set_hardware_shutdown(GDisplay* g, bool shutdown) { + (void) g; + if(!shutdown) { + palSetPad(GPIOB, 16); + } + else { + palClearPad(GPIOB, 16); + } +} + +static GFXINLINE void write_data(GDisplay *g, uint8_t* data, uint16_t length) { + (void) g; + i2cMasterTransmitTimeout(&I2CD1, IS31_ADDR_DEFAULT, data, length, 0, 0, US2ST(IS31_TIMEOUT)); +} + +#endif /* _GDISP_LLD_BOARD_H */ diff --git a/keyboards/ergodox/drivers/gdisp/IS31FL3731C/driver.mk b/keyboards/ergodox/drivers/gdisp/IS31FL3731C/driver.mk new file mode 100644 index 000000000..f32d0d868 --- /dev/null +++ b/keyboards/ergodox/drivers/gdisp/IS31FL3731C/driver.mk @@ -0,0 +1,2 @@ +GFXINC += drivers/gdisp/IS31FL3731C +GFXSRC += drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c diff --git a/keyboards/ergodox/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c b/keyboards/ergodox/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c new file mode 100644 index 000000000..1d21f0c49 --- /dev/null +++ b/keyboards/ergodox/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c @@ -0,0 +1,333 @@ +/* +Copyright 2016 Fred Sundvik + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "gfx.h" + +#if GFX_USE_GDISP + +#define GDISP_DRIVER_VMT GDISPVMT_IS31FL3731C_ERGODOX +#include "drivers/gdisp/IS31FL3731C/gdisp_lld_config.h" +#include "src/gdisp/gdisp_driver.h" + +#include "board_IS31FL3731C.h" + +/*===========================================================================*/ +/* Driver local definitions. */ +/*===========================================================================*/ + +#ifndef GDISP_SCREEN_HEIGHT + #define GDISP_SCREEN_HEIGHT 9 +#endif +#ifndef GDISP_SCREEN_WIDTH + #define GDISP_SCREEN_WIDTH 16 +#endif +#ifndef GDISP_INITIAL_CONTRAST + #define GDISP_INITIAL_CONTRAST 0 +#endif +#ifndef GDISP_INITIAL_BACKLIGHT + #define GDISP_INITIAL_BACKLIGHT 100 +#endif + +#define GDISP_FLG_NEEDFLUSH (GDISP_FLG_DRIVER<<0) + +#define IS31_ADDR_DEFAULT 0x74 + +#define IS31_REG_CONFIG 0x00 +// bits in reg +#define IS31_REG_CONFIG_PICTUREMODE 0x00 +#define IS31_REG_CONFIG_AUTOPLAYMODE 0x08 +#define IS31_REG_CONFIG_AUDIOPLAYMODE 0x18 +// D2:D0 bits are starting frame for autoplay mode + +#define IS31_REG_PICTDISP 0x01 // D2:D0 frame select for picture mode + +#define IS31_REG_AUTOPLAYCTRL1 0x02 +// D6:D4 number of loops (000=infty) +// D2:D0 number of frames to be used + +#define IS31_REG_AUTOPLAYCTRL2 0x03 // D5:D0 delay time (*11ms) + +#define IS31_REG_DISPLAYOPT 0x05 +#define IS31_REG_DISPLAYOPT_INTENSITY_SAME 0x20 // same intensity for all frames +#define IS31_REG_DISPLAYOPT_BLINK_ENABLE 0x8 +// D2:D0 bits blink period time (*0.27s) + +#define IS31_REG_AUDIOSYNC 0x06 +#define IS31_REG_AUDIOSYNC_ENABLE 0x1 + +#define IS31_REG_FRAMESTATE 0x07 + +#define IS31_REG_BREATHCTRL1 0x08 +// D6:D4 fade out time (26ms*2^i) +// D2:D0 fade in time (26ms*2^i) + +#define IS31_REG_BREATHCTRL2 0x09 +#define IS31_REG_BREATHCTRL2_ENABLE 0x10 +// D2:D0 extinguish time (3.5ms*2^i) + +#define IS31_REG_SHUTDOWN 0x0A +#define IS31_REG_SHUTDOWN_OFF 0x0 +#define IS31_REG_SHUTDOWN_ON 0x1 + +#define IS31_REG_AGCCTRL 0x0B +#define IS31_REG_ADCRATE 0x0C + +#define IS31_COMMANDREGISTER 0xFD +#define IS31_FUNCTIONREG 0x0B // helpfully called 'page nine' +#define IS31_FUNCTIONREG_SIZE 0xD + +#define IS31_FRAME_SIZE 0xB4 + +#define IS31_PWM_REG 0x24 +#define IS31_PWM_SIZE 0x90 + +#define IS31_LED_MASK_SIZE 0x12 +#define IS31_SCREEN_WIDTH 16 + +#define IS31 + +//Generated by http://jared.geek.nz/2013/feb/linear-led-pwm +const unsigned char cie[256] = { + 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, + 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, + 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, + 7, 8, 8, 8, 8, 9, 9, 9, 10, 10, + 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, + 13, 14, 14, 15, 15, 15, 16, 16, 17, 17, + 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, + 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, + 28, 28, 29, 29, 30, 31, 31, 32, 32, 33, + 34, 34, 35, 36, 37, 37, 38, 39, 39, 40, + 41, 42, 43, 43, 44, 45, 46, 47, 47, 48, + 49, 50, 51, 52, 53, 54, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 70, 71, 72, 73, 74, 75, 76, 77, 79, + 80, 81, 82, 83, 85, 86, 87, 88, 90, 91, + 92, 94, 95, 96, 98, 99, 100, 102, 103, 105, + 106, 108, 109, 110, 112, 113, 115, 116, 118, 120, + 121, 123, 124, 126, 128, 129, 131, 132, 134, 136, + 138, 139, 141, 143, 145, 146, 148, 150, 152, 154, + 155, 157, 159, 161, 163, 165, 167, 169, 171, 173, + 175, 177, 179, 181, 183, 185, 187, 189, 191, 193, + 196, 198, 200, 202, 204, 207, 209, 211, 214, 216, + 218, 220, 223, 225, 228, 230, 232, 235, 237, 240, + 242, 245, 247, 250, 252, 255, +}; + + +/*===========================================================================*/ +/* Driver local functions. */ +/*===========================================================================*/ + +typedef struct{ + uint8_t write_buffer_offset; + uint8_t write_buffer[IS31_FRAME_SIZE]; + uint8_t frame_buffer[GDISP_SCREEN_HEIGHT * GDISP_SCREEN_WIDTH]; + uint8_t page; +}__attribute__((__packed__)) PrivData; + +// Some common routines and macros +#define PRIV(g) ((PrivData*)g->priv) + +/*===========================================================================*/ +/* Driver exported functions. */ +/*===========================================================================*/ + +static GFXINLINE void write_page(GDisplay* g, uint8_t page) { + uint8_t tx[2] __attribute__((aligned(2))); + tx[0] = IS31_COMMANDREGISTER; + tx[1] = page; + write_data(g, tx, 2); +} + +static GFXINLINE void write_register(GDisplay* g, uint8_t page, uint8_t reg, uint8_t data) { + uint8_t tx[2] __attribute__((aligned(2))); + tx[0] = reg; + tx[1] = data; + write_page(g, page); + write_data(g, tx, 2); +} + +static GFXINLINE void write_ram(GDisplay *g, uint8_t page, uint16_t offset, uint16_t length) { + PRIV(g)->write_buffer_offset = offset; + write_page(g, page); + write_data(g, (uint8_t*)PRIV(g), length + 1); +} + +LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { + // The private area is the display surface. + g->priv = gfxAlloc(sizeof(PrivData)); + __builtin_memset(PRIV(g), 0, sizeof(PrivData)); + PRIV(g)->page = 0; + + // Initialise the board interface + init_board(g); + gfxSleepMilliseconds(10); + + // zero function page, all registers (assuming full_page is all zeroes) + write_ram(g, IS31_FUNCTIONREG, 0, IS31_FUNCTIONREG_SIZE); + set_hardware_shutdown(g, false); + gfxSleepMilliseconds(10); + // software shutdown + write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); + gfxSleepMilliseconds(10); + // zero function page, all registers + write_ram(g, IS31_FUNCTIONREG, 0, IS31_FUNCTIONREG_SIZE); + gfxSleepMilliseconds(10); + + + // zero all LED registers on all 8 pages, and enable the mask + __builtin_memcpy(PRIV(g)->write_buffer, get_led_mask(g), IS31_LED_MASK_SIZE); + for(uint8_t i=0; i<8; i++) { + write_ram(g, i, 0, IS31_FRAME_SIZE); + gfxSleepMilliseconds(1); + } + + // software shutdown disable (i.e. turn stuff on) + write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON); + gfxSleepMilliseconds(10); + + // Finish Init + post_init_board(g); + + /* Initialise the GDISP structure */ + g->g.Width = GDISP_SCREEN_WIDTH; + g->g.Height = GDISP_SCREEN_HEIGHT; + g->g.Orientation = GDISP_ROTATE_0; + g->g.Powermode = powerOn; + g->g.Backlight = GDISP_INITIAL_BACKLIGHT; + g->g.Contrast = GDISP_INITIAL_CONTRAST; + return TRUE; +} + +#if GDISP_HARDWARE_FLUSH + LLDSPEC void gdisp_lld_flush(GDisplay *g) { + // Don't flush if we don't need it. + if (!(g->flags & GDISP_FLG_NEEDFLUSH)) + return; + + PRIV(g)->page++; + PRIV(g)->page %= 2; + // TODO: some smarter algorithm for this + // We should run only one physical page at a time + // This way we don't need to send so much data, and + // we could use slightly less memory + uint8_t* src = PRIV(g)->frame_buffer; + for (int y=0;ywrite_buffer[get_led_address(g, x, y)]=cie[*src]; + ++src; + } + } + write_ram(g, PRIV(g)->page, IS31_PWM_REG, IS31_PWM_SIZE); + gfxSleepMilliseconds(1); + write_register(g, IS31_FUNCTIONREG, IS31_REG_PICTDISP, PRIV(g)->page); + + g->flags &= ~GDISP_FLG_NEEDFLUSH; + } +#endif + +#if GDISP_HARDWARE_DRAWPIXEL + LLDSPEC void gdisp_lld_draw_pixel(GDisplay *g) { + coord_t x, y; + + switch(g->g.Orientation) { + default: + case GDISP_ROTATE_0: + x = g->p.x; + y = g->p.y; + break; + case GDISP_ROTATE_180: + x = GDISP_SCREEN_WIDTH-1 - g->p.x; + y = g->p.y; + break; + } + PRIV(g)->frame_buffer[y * GDISP_SCREEN_WIDTH + x] = gdispColor2Native(g->p.color); + g->flags |= GDISP_FLG_NEEDFLUSH; + } +#endif + +#if GDISP_HARDWARE_PIXELREAD + LLDSPEC color_t gdisp_lld_get_pixel_color(GDisplay *g) { + coord_t x, y; + + switch(g->g.Orientation) { + default: + case GDISP_ROTATE_0: + x = g->p.x; + y = g->p.y; + break; + case GDISP_ROTATE_180: + x = GDISP_SCREEN_WIDTH-1 - g->p.x; + y = g->p.y; + break; + } + return gdispNative2Color(PRIV(g)->frame_buffer[y * GDISP_SCREEN_WIDTH + x]); + } +#endif + +#if GDISP_NEED_CONTROL && GDISP_HARDWARE_CONTROL + LLDSPEC void gdisp_lld_control(GDisplay *g) { + switch(g->p.x) { + case GDISP_CONTROL_POWER: + if (g->g.Powermode == (powermode_t)g->p.ptr) + return; + switch((powermode_t)g->p.ptr) { + case powerOff: + case powerSleep: + case powerDeepSleep: + write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); + break; + case powerOn: + write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON); + break; + default: + return; + } + g->g.Powermode = (powermode_t)g->p.ptr; + return; + + case GDISP_CONTROL_ORIENTATION: + if (g->g.Orientation == (orientation_t)g->p.ptr) + return; + switch((orientation_t)g->p.ptr) { + /* Rotation is handled by the drawing routines */ + case GDISP_ROTATE_0: + case GDISP_ROTATE_180: + g->g.Height = GDISP_SCREEN_HEIGHT; + g->g.Width = GDISP_SCREEN_WIDTH; + break; + case GDISP_ROTATE_90: + case GDISP_ROTATE_270: + g->g.Height = GDISP_SCREEN_WIDTH; + g->g.Width = GDISP_SCREEN_HEIGHT; + break; + default: + return; + } + g->g.Orientation = (orientation_t)g->p.ptr; + return; + + case GDISP_CONTROL_CONTRAST: + return; + } + } +#endif // GDISP_NEED_CONTROL + +#endif // GFX_USE_GDISP diff --git a/keyboards/ergodox/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h b/keyboards/ergodox/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h new file mode 100644 index 000000000..bb28ad775 --- /dev/null +++ b/keyboards/ergodox/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h @@ -0,0 +1,36 @@ +/* +Copyright 2016 Fred Sundvik + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef _GDISP_LLD_CONFIG_H +#define _GDISP_LLD_CONFIG_H + +#if GFX_USE_GDISP + +/*===========================================================================*/ +/* Driver hardware support. */ +/*===========================================================================*/ + +#define GDISP_HARDWARE_FLUSH TRUE // This controller requires flushing +#define GDISP_HARDWARE_DRAWPIXEL TRUE +#define GDISP_HARDWARE_PIXELREAD TRUE +#define GDISP_HARDWARE_CONTROL TRUE + +#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_GRAY256 + +#endif /* GFX_USE_GDISP */ + +#endif /* _GDISP_LLD_CONFIG_H */ diff --git a/keyboards/ergodox/drivers/gdisp/emulator_lcd/driver.mk b/keyboards/ergodox/drivers/gdisp/emulator_lcd/driver.mk new file mode 100644 index 000000000..16c3f80f5 --- /dev/null +++ b/keyboards/ergodox/drivers/gdisp/emulator_lcd/driver.mk @@ -0,0 +1,2 @@ +GFXINC += drivers/gdisp/emulator_lcd +GFXSRC += drivers/gdisp/emulator_lcd/emulator_lcd.c diff --git a/keyboards/ergodox/drivers/gdisp/emulator_lcd/emulator_lcd.c b/keyboards/ergodox/drivers/gdisp/emulator_lcd/emulator_lcd.c new file mode 100644 index 000000000..babfe2b36 --- /dev/null +++ b/keyboards/ergodox/drivers/gdisp/emulator_lcd/emulator_lcd.c @@ -0,0 +1,10 @@ +#define GDISP_DRIVER_VMT GDISPVMT_EMULATOR_LCD_ERGODOX +#define GDISP_HARDWARE_DRAWPIXEL TRUE +#define GDISP_HARDWARE_PIXELREAD TRUE +#define GDISP_HARDWARE_CONTROL TRUE +#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_MONO +#define GDISP_SCREEN_WIDTH 128 +#define GDISP_SCREEN_HEIGHT 32 +#define ROTATE_180_IS_FLIP + +#include "emulator/emulator_driver_impl.h" diff --git a/keyboards/ergodox/drivers/gdisp/emulator_led/driver.mk b/keyboards/ergodox/drivers/gdisp/emulator_led/driver.mk new file mode 100644 index 000000000..255434432 --- /dev/null +++ b/keyboards/ergodox/drivers/gdisp/emulator_led/driver.mk @@ -0,0 +1,2 @@ +GFXINC += drivers/gdisp/emulator_led +GFXSRC += drivers/gdisp/emulator_led/emulator_led.c diff --git a/keyboards/ergodox/drivers/gdisp/emulator_led/emulator_led.c b/keyboards/ergodox/drivers/gdisp/emulator_led/emulator_led.c new file mode 100644 index 000000000..b0ebcdc47 --- /dev/null +++ b/keyboards/ergodox/drivers/gdisp/emulator_led/emulator_led.c @@ -0,0 +1,10 @@ +#define GDISP_DRIVER_VMT GDISPVMT_EMULATOR_LED_ERGODOX +#define GDISP_HARDWARE_DRAWPIXEL TRUE +#define GDISP_HARDWARE_PIXELREAD TRUE +#define GDISP_HARDWARE_CONTROL TRUE +#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_MONO +#define GDISP_SCREEN_WIDTH 7 +#define GDISP_SCREEN_HEIGHT 7 +#define ROTATE_180_IS_FLIP + +#include "emulator/emulator_driver_impl.h" diff --git a/keyboards/ergodox/drivers/gdisp/st7565ergodox/board_ST7565.h b/keyboards/ergodox/drivers/gdisp/st7565ergodox/board_ST7565.h new file mode 100644 index 000000000..290571ce5 --- /dev/null +++ b/keyboards/ergodox/drivers/gdisp/st7565ergodox/board_ST7565.h @@ -0,0 +1,127 @@ +/* + * This file is subject to the terms of the GFX License. If a copy of + * the license was not distributed with this file, you can obtain one at: + * + * http://ugfx.org/license.html + */ + +#ifndef _GDISP_LLD_BOARD_H +#define _GDISP_LLD_BOARD_H + +#include "print.h" + +#define ST7565_LCD_BIAS ST7565_LCD_BIAS_9 // actually 6 +#define ST7565_ADC ST7565_ADC_NORMAL +#define ST7565_COM_SCAN ST7565_COM_SCAN_DEC +#define ST7565_PAGE_ORDER 0,1,2,3 +/* + * Custom page order for several LCD boards, e.g. HEM12864-99 + * #define ST7565_PAGE_ORDER 4,5,6,7,0,1,2,3 + */ + +#define ST7565_GPIOPORT GPIOC +#define ST7565_PORT PORTC +#define ST7565_A0_PIN 7 +#define ST7565_RST_PIN 8 +#define ST7565_MOSI_PIN 6 +#define ST7565_SLCK_PIN 5 +#define ST7565_SS_PIN 4 + +#define palSetPadModeRaw(portname, bits) \ + ST7565_PORT->PCR[ST7565_##portname##_PIN] = bits + +#define palSetPadModeNamed(portname, portmode) \ + palSetPadMode(ST7565_GPIOPORT, ST7565_##portname##_PIN, portmode) + +#define ST7565_SPI_MODE PORTx_PCRn_DSE | PORTx_PCRn_MUX(2) +// DSPI Clock and Transfer Attributes +// Frame Size: 8 bits +// MSB First +// CLK Low by default +static const SPIConfig spi1config = { + NULL, + /* HW dependent part.*/ + ST7565_GPIOPORT, + ST7565_SS_PIN, + SPIx_CTARn_FMSZ(7) + | SPIx_CTARn_ASC(7) + | SPIx_CTARn_DT(7) + | SPIx_CTARn_CSSCK(7) + | SPIx_CTARn_PBR(0) + | SPIx_CTARn_BR(7) + //SPI_CR1_BR_0 +}; + +static bool_t st7565_is_data_mode = 1; + +static GFXINLINE void init_board(GDisplay *g) { + (void) g; + palSetPadModeNamed(A0, PAL_MODE_OUTPUT_PUSHPULL); + palSetPad(ST7565_GPIOPORT, ST7565_A0_PIN); + st7565_is_data_mode = 1; + palSetPadModeNamed(RST, PAL_MODE_OUTPUT_PUSHPULL); + palSetPad(ST7565_GPIOPORT, ST7565_RST_PIN); + palSetPadModeRaw(MOSI, ST7565_SPI_MODE); + palSetPadModeRaw(SLCK, ST7565_SPI_MODE); + palSetPadModeRaw(SS, ST7565_SPI_MODE); + + spiInit(); + spiStart(&SPID1, &spi1config); + spiSelect(&SPID1); +} + +static GFXINLINE void post_init_board(GDisplay *g) { + (void) g; +} + +static GFXINLINE void setpin_reset(GDisplay *g, bool_t state) { + (void) g; + if (state) { + palClearPad(ST7565_GPIOPORT, ST7565_RST_PIN); + } + else { + palSetPad(ST7565_GPIOPORT, ST7565_RST_PIN); + } +} + +static GFXINLINE void acquire_bus(GDisplay *g) { + (void) g; + // Only the LCD is using the SPI bus, so no need to acquire + // spiAcquireBus(&SPID1); +} + +static GFXINLINE void release_bus(GDisplay *g) { + (void) g; + // Only the LCD is using the SPI bus, so no need to release + //spiReleaseBus(&SPID1); +} + +static GFXINLINE void write_cmd(GDisplay *g, uint8_t cmd) { + (void) g; + if (st7565_is_data_mode) { + // The sleeps need to be at lest 10 vs 25 ns respectively + // So let's sleep two ticks, one tick might not be enough + // if we are at the end of the tick + chThdSleep(2); + palClearPad(ST7565_GPIOPORT, ST7565_A0_PIN); + chThdSleep(2); + st7565_is_data_mode = 0; + } + spiSend(&SPID1, 1, &cmd); +} + +static GFXINLINE void write_data(GDisplay *g, uint8_t* data, uint16_t length) { + (void) g; + if (!st7565_is_data_mode) { + // The sleeps need to be at lest 10 vs 25 ns respectively + // So let's sleep two ticks, one tick might not be enough + // if we are at the end of the tick + chThdSleep(2); + palSetPad(ST7565_GPIOPORT, ST7565_A0_PIN); + chThdSleep(2); + st7565_is_data_mode = 1; + } + spiSend(&SPID1, length, data); +} + +#endif /* _GDISP_LLD_BOARD_H */ diff --git a/keyboards/ergodox/drivers/gdisp/st7565ergodox/driver.mk b/keyboards/ergodox/drivers/gdisp/st7565ergodox/driver.mk new file mode 100644 index 000000000..889a1a031 --- /dev/null +++ b/keyboards/ergodox/drivers/gdisp/st7565ergodox/driver.mk @@ -0,0 +1,2 @@ +GFXINC += drivers/gdisp/st7565ergodox +GFXSRC += drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c diff --git a/keyboards/ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c b/keyboards/ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c new file mode 100644 index 000000000..c33aea81a --- /dev/null +++ b/keyboards/ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c @@ -0,0 +1,292 @@ +/* + * This file is subject to the terms of the GFX License. If a copy of + * the license was not distributed with this file, you can obtain one at: + * + * http://ugfx.org/license.html + */ + +#include "gfx.h" + +#if GFX_USE_GDISP + +#define GDISP_DRIVER_VMT GDISPVMT_ST7565_ERGODOX +#include "drivers/gdisp/st7565ergodox/gdisp_lld_config.h" +#include "src/gdisp/gdisp_driver.h" + +#include "board_ST7565.h" + +/*===========================================================================*/ +/* Driver local definitions. */ +/*===========================================================================*/ + +#ifndef GDISP_SCREEN_HEIGHT + #define GDISP_SCREEN_HEIGHT 32 +#endif +#ifndef GDISP_SCREEN_WIDTH + #define GDISP_SCREEN_WIDTH 128 +#endif +#ifndef GDISP_INITIAL_CONTRAST + #define GDISP_INITIAL_CONTRAST 0 +#endif +#ifndef GDISP_INITIAL_BACKLIGHT + #define GDISP_INITIAL_BACKLIGHT 100 +#endif + +#define GDISP_FLG_NEEDFLUSH (GDISP_FLG_DRIVER<<0) + +#include "drivers/gdisp/st7565ergodox/st7565.h" + +/*===========================================================================*/ +/* Driver config defaults for backward compatibility. */ +/*===========================================================================*/ +#ifndef ST7565_LCD_BIAS + #define ST7565_LCD_BIAS ST7565_LCD_BIAS_7 +#endif +#ifndef ST7565_ADC + #define ST7565_ADC ST7565_ADC_NORMAL +#endif +#ifndef ST7565_COM_SCAN + #define ST7565_COM_SCAN ST7565_COM_SCAN_INC +#endif +#ifndef ST7565_PAGE_ORDER + #define ST7565_PAGE_ORDER 0,1,2,3 +#endif + +/*===========================================================================*/ +/* Driver local functions. */ +/*===========================================================================*/ + +typedef struct{ + bool_t buffer2; + uint8_t ram[GDISP_SCREEN_HEIGHT * GDISP_SCREEN_WIDTH / 8]; +}PrivData; + +// Some common routines and macros +#define PRIV(g) ((PrivData*)g->priv) +#define RAM(g) (PRIV(g)->ram) +#define write_cmd2(g, cmd1, cmd2) { write_cmd(g, cmd1); write_cmd(g, cmd2); } +#define write_cmd3(g, cmd1, cmd2, cmd3) { write_cmd(g, cmd1); write_cmd(g, cmd2); write_cmd(g, cmd3); } + +// Some common routines and macros +#define delay(us) gfxSleepMicroseconds(us) +#define delay_ms(ms) gfxSleepMilliseconds(ms) + +#define xyaddr(x, y) ((x) + ((y)>>3)*GDISP_SCREEN_WIDTH) +#define xybit(y) (1<<((y)&7)) + +/*===========================================================================*/ +/* Driver exported functions. */ +/*===========================================================================*/ + +/* + * As this controller can't update on a pixel boundary we need to maintain the + * the entire display surface in memory so that we can do the necessary bit + * operations. Fortunately it is a small display in monochrome. + * 64 * 128 / 8 = 1024 bytes. + */ + +LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { + // The private area is the display surface. + g->priv = gfxAlloc(sizeof(PrivData)); + PRIV(g)->buffer2 = false; + + // Initialise the board interface + init_board(g); + + // Hardware reset + setpin_reset(g, TRUE); + gfxSleepMilliseconds(20); + setpin_reset(g, FALSE); + gfxSleepMilliseconds(20); + + acquire_bus(g); + write_cmd(g, ST7565_DISPLAY_OFF); + write_cmd(g, ST7565_LCD_BIAS); + write_cmd(g, ST7565_ADC); + write_cmd(g, ST7565_COM_SCAN); + + write_cmd(g, ST7565_START_LINE | 0); + + write_cmd(g, ST7565_RESISTOR_RATIO | 0x6); + + // turn on voltage converter (VC=1, VR=0, VF=0) + write_cmd(g, ST7565_POWER_CONTROL | 0x04); + delay_ms(50); + + // turn on voltage regulator (VC=1, VR=1, VF=0) + write_cmd(g, ST7565_POWER_CONTROL | 0x06); + delay_ms(50); + + // turn on voltage follower (VC=1, VR=1, VF=1) + write_cmd(g, ST7565_POWER_CONTROL | 0x07); + delay_ms(50); + + write_cmd(g, 0xE2); + write_cmd(g, ST7565_COM_SCAN); + write_cmd2(g, ST7565_CONTRAST, GDISP_INITIAL_CONTRAST*64/101); + //write_cmd2(g, ST7565_CONTRAST, 0); + write_cmd(g, ST7565_DISPLAY_ON); + write_cmd(g, ST7565_ALLON_NORMAL); + write_cmd(g, ST7565_INVERT_DISPLAY); + + write_cmd(g, ST7565_RMW); + + // Finish Init + post_init_board(g); + + // Release the bus + release_bus(g); + + /* Initialise the GDISP structure */ + g->g.Width = GDISP_SCREEN_WIDTH; + g->g.Height = GDISP_SCREEN_HEIGHT; + g->g.Orientation = GDISP_ROTATE_0; + g->g.Powermode = powerOn; + g->g.Backlight = GDISP_INITIAL_BACKLIGHT; + g->g.Contrast = GDISP_INITIAL_CONTRAST; + return TRUE; +} + +#if GDISP_HARDWARE_FLUSH + LLDSPEC void gdisp_lld_flush(GDisplay *g) { + unsigned p; + + // Don't flush if we don't need it. + if (!(g->flags & GDISP_FLG_NEEDFLUSH)) + return; + + acquire_bus(g); + unsigned dstOffset = (PRIV(g)->buffer2 ? 4 : 0); + for (p = 0; p < 4; p++) { + write_cmd(g, ST7565_PAGE | (p + dstOffset)); + write_cmd(g, ST7565_COLUMN_MSB | 0); + write_cmd(g, ST7565_COLUMN_LSB | 0); + write_cmd(g, ST7565_RMW); + write_data(g, RAM(g) + (p*GDISP_SCREEN_WIDTH), GDISP_SCREEN_WIDTH); + } + unsigned line = (PRIV(g)->buffer2 ? 32 : 0); + write_cmd(g, ST7565_START_LINE | line); + PRIV(g)->buffer2 = !PRIV(g)->buffer2; + release_bus(g); + + g->flags &= ~GDISP_FLG_NEEDFLUSH; + } +#endif + +#if GDISP_HARDWARE_DRAWPIXEL + LLDSPEC void gdisp_lld_draw_pixel(GDisplay *g) { + coord_t x, y; + + switch(g->g.Orientation) { + default: + case GDISP_ROTATE_0: + x = g->p.x; + y = g->p.y; + break; + case GDISP_ROTATE_90: + x = g->p.y; + y = GDISP_SCREEN_HEIGHT-1 - g->p.x; + break; + case GDISP_ROTATE_180: + x = GDISP_SCREEN_WIDTH-1 - g->p.x; + y = GDISP_SCREEN_HEIGHT-1 - g->p.y; + break; + case GDISP_ROTATE_270: + x = GDISP_SCREEN_HEIGHT-1 - g->p.y; + y = g->p.x; + break; + } + if (gdispColor2Native(g->p.color) != Black) + RAM(g)[xyaddr(x, y)] |= xybit(y); + else + RAM(g)[xyaddr(x, y)] &= ~xybit(y); + g->flags |= GDISP_FLG_NEEDFLUSH; + } +#endif + +#if GDISP_HARDWARE_PIXELREAD + LLDSPEC color_t gdisp_lld_get_pixel_color(GDisplay *g) { + coord_t x, y; + + switch(g->g.Orientation) { + default: + case GDISP_ROTATE_0: + x = g->p.x; + y = g->p.y; + break; + case GDISP_ROTATE_90: + x = g->p.y; + y = GDISP_SCREEN_HEIGHT-1 - g->p.x; + break; + case GDISP_ROTATE_180: + x = GDISP_SCREEN_WIDTH-1 - g->p.x; + y = GDISP_SCREEN_HEIGHT-1 - g->p.y; + break; + case GDISP_ROTATE_270: + x = GDISP_SCREEN_HEIGHT-1 - g->p.y; + y = g->p.x; + break; + } + return (RAM(g)[xyaddr(x, y)] & xybit(y)) ? White : Black; + } +#endif + +#if GDISP_NEED_CONTROL && GDISP_HARDWARE_CONTROL + LLDSPEC void gdisp_lld_control(GDisplay *g) { + switch(g->p.x) { + case GDISP_CONTROL_POWER: + if (g->g.Powermode == (powermode_t)g->p.ptr) + return; + switch((powermode_t)g->p.ptr) { + case powerOff: + case powerSleep: + case powerDeepSleep: + acquire_bus(g); + write_cmd(g, ST7565_DISPLAY_OFF); + release_bus(g); + break; + case powerOn: + acquire_bus(g); + write_cmd(g, ST7565_DISPLAY_ON); + release_bus(g); + break; + default: + return; + } + g->g.Powermode = (powermode_t)g->p.ptr; + return; + + case GDISP_CONTROL_ORIENTATION: + if (g->g.Orientation == (orientation_t)g->p.ptr) + return; + switch((orientation_t)g->p.ptr) { + /* Rotation is handled by the drawing routines */ + case GDISP_ROTATE_0: + case GDISP_ROTATE_180: + g->g.Height = GDISP_SCREEN_HEIGHT; + g->g.Width = GDISP_SCREEN_WIDTH; + break; + case GDISP_ROTATE_90: + case GDISP_ROTATE_270: + g->g.Height = GDISP_SCREEN_WIDTH; + g->g.Width = GDISP_SCREEN_HEIGHT; + break; + default: + return; + } + g->g.Orientation = (orientation_t)g->p.ptr; + return; + + case GDISP_CONTROL_CONTRAST: + if ((unsigned)g->p.ptr > 100) + g->p.ptr = (void *)100; + acquire_bus(g); + write_cmd2(g, ST7565_CONTRAST, ((((unsigned)g->p.ptr)<<6)/101) & 0x3F); + release_bus(g); + g->g.Contrast = (unsigned)g->p.ptr; + return; + } + } +#endif // GDISP_NEED_CONTROL + +#endif // GFX_USE_GDISP diff --git a/keyboards/ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_config.h b/keyboards/ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_config.h new file mode 100644 index 000000000..48587b9e1 --- /dev/null +++ b/keyboards/ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_config.h @@ -0,0 +1,26 @@ +/* + * This file is subject to the terms of the GFX License. If a copy of + * the license was not distributed with this file, you can obtain one at: + * + * http://ugfx.org/license.html + */ + +#ifndef _GDISP_LLD_CONFIG_H +#define _GDISP_LLD_CONFIG_H + +#if GFX_USE_GDISP + +/*===========================================================================*/ +/* Driver hardware support. */ +/*===========================================================================*/ + +#define GDISP_HARDWARE_FLUSH TRUE // This controller requires flushing +#define GDISP_HARDWARE_DRAWPIXEL TRUE +#define GDISP_HARDWARE_PIXELREAD TRUE +#define GDISP_HARDWARE_CONTROL TRUE + +#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_MONO + +#endif /* GFX_USE_GDISP */ + +#endif /* _GDISP_LLD_CONFIG_H */ diff --git a/keyboards/ergodox/drivers/gdisp/st7565ergodox/st7565.h b/keyboards/ergodox/drivers/gdisp/st7565ergodox/st7565.h new file mode 100644 index 000000000..48636b33d --- /dev/null +++ b/keyboards/ergodox/drivers/gdisp/st7565ergodox/st7565.h @@ -0,0 +1,37 @@ +/* + * This file is subject to the terms of the GFX License. If a copy of + * the license was not distributed with this file, you can obtain one at: + * + * http://ugfx.org/license.html + */ + +#ifndef _ST7565_H +#define _ST7565_H + +#define ST7565_CONTRAST 0x81 +#define ST7565_ALLON_NORMAL 0xA4 +#define ST7565_ALLON 0xA5 +#define ST7565_POSITIVE_DISPLAY 0xA6 +#define ST7565_INVERT_DISPLAY 0xA7 +#define ST7565_DISPLAY_OFF 0xAE +#define ST7565_DISPLAY_ON 0xAF + +#define ST7565_LCD_BIAS_7 0xA3 +#define ST7565_LCD_BIAS_9 0xA2 + +#define ST7565_ADC_NORMAL 0xA0 +#define ST7565_ADC_REVERSE 0xA1 + +#define ST7565_COM_SCAN_INC 0xC0 +#define ST7565_COM_SCAN_DEC 0xC8 + +#define ST7565_START_LINE 0x40 +#define ST7565_PAGE 0xB0 +#define ST7565_COLUMN_MSB 0x10 +#define ST7565_COLUMN_LSB 0x00 +#define ST7565_RMW 0xE0 + +#define ST7565_RESISTOR_RATIO 0x20 +#define ST7565_POWER_CONTROL 0x28 + +#endif /* _ST7565_H */ diff --git a/keyboards/ergodox/ergodox.c b/keyboards/ergodox/ergodox.c index 992e95d81..e69de29bb 100644 --- a/keyboards/ergodox/ergodox.c +++ b/keyboards/ergodox/ergodox.c @@ -1,8 +0,0 @@ -/* - * ergodox.c - * - * Created on: 7 jul 2016 - * Author: Fred Wales - */ - - diff --git a/keyboards/ergodox/ergodox.h b/keyboards/ergodox/ergodox.h index fe54e3260..f8ec8b5bf 100644 --- a/keyboards/ergodox/ergodox.h +++ b/keyboards/ergodox/ergodox.h @@ -1,6 +1,5 @@ #ifndef KEYBOARDS_ERGODOX_ERGODOX_H_ #define KEYBOARDS_ERGODOX_ERGODOX_H_ - #ifdef SUBPROJECT_ez #include "ez.h" #endif diff --git a/keyboards/ergodox/infinity/Makefile b/keyboards/ergodox/infinity/Makefile index 942032f83..22065e4d2 100644 --- a/keyboards/ergodox/infinity/Makefile +++ b/keyboards/ergodox/infinity/Makefile @@ -52,14 +52,14 @@ ARMV = 7 # Vector table for application # 0x00000000-0x00001000 area is occupied by bootlaoder.*/ # The CORTEX_VTOR... is needed only for MCHCK/Infinity KB -OPT_DEFS = -DCORTEX_VTOR_INIT=0x00002000 +OPT_DEFS += -DCORTEX_VTOR_INIT=0x00002000 # Build Options # comment out to disable the options. # CUSTOM_MATRIX ?= yes # Custom matrix file SERIAL_LINK_ENABLE = yes -VISUALIZER_ENABLE ?= yes +VISUALIZER_ENABLE ?= no #temporarily disabled to make everything compile LCD_ENABLE ?= yes LED_ENABLE ?= yes LCD_BACKLIGHT_ENABLE ?= yes diff --git a/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h deleted file mode 100644 index 2ea73f1fb..000000000 --- a/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h +++ /dev/null @@ -1,113 +0,0 @@ -/* -Copyright 2016 Fred Sundvik - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#ifndef _GDISP_LLD_BOARD_H -#define _GDISP_LLD_BOARD_H - -static const I2CConfig i2ccfg = { - 400000 // clock speed (Hz); 400kHz max for IS31 -}; - -#define GDISP_SCREEN_WIDTH 7 -#define GDISP_SCREEN_HEIGHT 7 - -static const uint8_t led_mask[] = { - 0xFF, 0x00, /* C1-1 -> C1-16 */ - 0xFF, 0x00, /* C2-1 -> C2-16 */ - 0xFF, 0x00, /* C3-1 -> C3-16 */ - 0xFF, 0x00, /* C4-1 -> C4-16 */ - 0x3F, 0x00, /* C5-1 -> C5-16 */ - 0x00, 0x00, /* C6-1 -> C6-16 */ - 0x00, 0x00, /* C7-1 -> C7-16 */ - 0x00, 0x00, /* C8-1 -> C8-16 */ - 0x00, 0x00, /* C9-1 -> C9-16 */ -}; - -// The address of the LED -#define LA(c, r) (c + r * 16 ) -// Need to be an address that is not mapped, but inside the range of the controller matrix -#define NA LA(8, 8) - -// The numbers in the comments are the led numbers DXX on the PCB -// The mapping is taken from the schematic of left hand side -static const uint8_t led_mapping[GDISP_SCREEN_HEIGHT][GDISP_SCREEN_WIDTH] = { -// 45 44 43 42 41 40 39 - { LA(1, 1), LA(1, 0), LA(0, 4), LA(0, 3), LA(0, 2), LA(0, 1), LA(0, 0)}, -// 52 51 50 49 48 47 46 - { LA(2, 3), LA(2, 2), LA(2, 1), LA(2, 0), LA(1, 4), LA(1, 3), LA(1, 2) }, -// 58 57 56 55 54 53 N/A - { LA(3, 4), LA(3, 3), LA(3, 2), LA(3, 1), LA(3, 0), LA(2, 4), NA }, -// 67 66 65 64 63 62 61 - { LA(5, 3), LA(5, 2), LA(5, 1), LA(5, 0), LA(4, 4), LA(4, 3), LA(4, 2) }, -// 76 75 74 73 72 60 59 - { LA(7, 3), LA(7, 2), LA(7, 1), LA(7, 0), LA(6, 3), LA(4, 1), LA(4, 0) }, -// N/A N/A N/A N/A N/A N/A 68 - { NA, NA, NA, NA, NA, NA, LA(5, 4) }, -// N/A N/A N/A N/A 71 70 69 - { NA, NA, NA, NA, LA(6, 2), LA(6, 1), LA(6, 0) }, -}; - - -#define IS31_ADDR_DEFAULT 0x74 // AD connected to GND -#define IS31_TIMEOUT 5000 - -static GFXINLINE void init_board(GDisplay *g) { - (void) g; - /* I2C pins */ - palSetPadMode(GPIOB, 0, PAL_MODE_ALTERNATIVE_2); // PTB0/I2C0/SCL - palSetPadMode(GPIOB, 1, PAL_MODE_ALTERNATIVE_2); // PTB1/I2C0/SDA - palSetPadMode(GPIOB, 16, PAL_MODE_OUTPUT_PUSHPULL); - palClearPad(GPIOB, 16); - /* start I2C */ - i2cStart(&I2CD1, &i2ccfg); - // try high drive (from kiibohd) - I2CD1.i2c->C2 |= I2Cx_C2_HDRS; - // try glitch fixing (from kiibohd) - I2CD1.i2c->FLT = 4; -} - -static GFXINLINE void post_init_board(GDisplay *g) { - (void) g; -} - -static GFXINLINE const uint8_t* get_led_mask(GDisplay* g) { - (void) g; - return led_mask; -} - -static GFXINLINE uint8_t get_led_address(GDisplay* g, uint16_t x, uint16_t y) -{ - (void) g; - return led_mapping[y][x]; -} - -static GFXINLINE void set_hardware_shutdown(GDisplay* g, bool shutdown) { - (void) g; - if(!shutdown) { - palSetPad(GPIOB, 16); - } - else { - palClearPad(GPIOB, 16); - } -} - -static GFXINLINE void write_data(GDisplay *g, uint8_t* data, uint16_t length) { - (void) g; - i2cMasterTransmitTimeout(&I2CD1, IS31_ADDR_DEFAULT, data, length, 0, 0, US2ST(IS31_TIMEOUT)); -} - -#endif /* _GDISP_LLD_BOARD_H */ diff --git a/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/driver.mk b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/driver.mk deleted file mode 100644 index f32d0d868..000000000 --- a/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/driver.mk +++ /dev/null @@ -1,2 +0,0 @@ -GFXINC += drivers/gdisp/IS31FL3731C -GFXSRC += drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c diff --git a/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c deleted file mode 100644 index 1d21f0c49..000000000 --- a/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c +++ /dev/null @@ -1,333 +0,0 @@ -/* -Copyright 2016 Fred Sundvik - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include "gfx.h" - -#if GFX_USE_GDISP - -#define GDISP_DRIVER_VMT GDISPVMT_IS31FL3731C_ERGODOX -#include "drivers/gdisp/IS31FL3731C/gdisp_lld_config.h" -#include "src/gdisp/gdisp_driver.h" - -#include "board_IS31FL3731C.h" - -/*===========================================================================*/ -/* Driver local definitions. */ -/*===========================================================================*/ - -#ifndef GDISP_SCREEN_HEIGHT - #define GDISP_SCREEN_HEIGHT 9 -#endif -#ifndef GDISP_SCREEN_WIDTH - #define GDISP_SCREEN_WIDTH 16 -#endif -#ifndef GDISP_INITIAL_CONTRAST - #define GDISP_INITIAL_CONTRAST 0 -#endif -#ifndef GDISP_INITIAL_BACKLIGHT - #define GDISP_INITIAL_BACKLIGHT 100 -#endif - -#define GDISP_FLG_NEEDFLUSH (GDISP_FLG_DRIVER<<0) - -#define IS31_ADDR_DEFAULT 0x74 - -#define IS31_REG_CONFIG 0x00 -// bits in reg -#define IS31_REG_CONFIG_PICTUREMODE 0x00 -#define IS31_REG_CONFIG_AUTOPLAYMODE 0x08 -#define IS31_REG_CONFIG_AUDIOPLAYMODE 0x18 -// D2:D0 bits are starting frame for autoplay mode - -#define IS31_REG_PICTDISP 0x01 // D2:D0 frame select for picture mode - -#define IS31_REG_AUTOPLAYCTRL1 0x02 -// D6:D4 number of loops (000=infty) -// D2:D0 number of frames to be used - -#define IS31_REG_AUTOPLAYCTRL2 0x03 // D5:D0 delay time (*11ms) - -#define IS31_REG_DISPLAYOPT 0x05 -#define IS31_REG_DISPLAYOPT_INTENSITY_SAME 0x20 // same intensity for all frames -#define IS31_REG_DISPLAYOPT_BLINK_ENABLE 0x8 -// D2:D0 bits blink period time (*0.27s) - -#define IS31_REG_AUDIOSYNC 0x06 -#define IS31_REG_AUDIOSYNC_ENABLE 0x1 - -#define IS31_REG_FRAMESTATE 0x07 - -#define IS31_REG_BREATHCTRL1 0x08 -// D6:D4 fade out time (26ms*2^i) -// D2:D0 fade in time (26ms*2^i) - -#define IS31_REG_BREATHCTRL2 0x09 -#define IS31_REG_BREATHCTRL2_ENABLE 0x10 -// D2:D0 extinguish time (3.5ms*2^i) - -#define IS31_REG_SHUTDOWN 0x0A -#define IS31_REG_SHUTDOWN_OFF 0x0 -#define IS31_REG_SHUTDOWN_ON 0x1 - -#define IS31_REG_AGCCTRL 0x0B -#define IS31_REG_ADCRATE 0x0C - -#define IS31_COMMANDREGISTER 0xFD -#define IS31_FUNCTIONREG 0x0B // helpfully called 'page nine' -#define IS31_FUNCTIONREG_SIZE 0xD - -#define IS31_FRAME_SIZE 0xB4 - -#define IS31_PWM_REG 0x24 -#define IS31_PWM_SIZE 0x90 - -#define IS31_LED_MASK_SIZE 0x12 -#define IS31_SCREEN_WIDTH 16 - -#define IS31 - -//Generated by http://jared.geek.nz/2013/feb/linear-led-pwm -const unsigned char cie[256] = { - 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, - 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, - 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, - 7, 8, 8, 8, 8, 9, 9, 9, 10, 10, - 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, - 13, 14, 14, 15, 15, 15, 16, 16, 17, 17, - 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, - 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, - 28, 28, 29, 29, 30, 31, 31, 32, 32, 33, - 34, 34, 35, 36, 37, 37, 38, 39, 39, 40, - 41, 42, 43, 43, 44, 45, 46, 47, 47, 48, - 49, 50, 51, 52, 53, 54, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 70, 71, 72, 73, 74, 75, 76, 77, 79, - 80, 81, 82, 83, 85, 86, 87, 88, 90, 91, - 92, 94, 95, 96, 98, 99, 100, 102, 103, 105, - 106, 108, 109, 110, 112, 113, 115, 116, 118, 120, - 121, 123, 124, 126, 128, 129, 131, 132, 134, 136, - 138, 139, 141, 143, 145, 146, 148, 150, 152, 154, - 155, 157, 159, 161, 163, 165, 167, 169, 171, 173, - 175, 177, 179, 181, 183, 185, 187, 189, 191, 193, - 196, 198, 200, 202, 204, 207, 209, 211, 214, 216, - 218, 220, 223, 225, 228, 230, 232, 235, 237, 240, - 242, 245, 247, 250, 252, 255, -}; - - -/*===========================================================================*/ -/* Driver local functions. */ -/*===========================================================================*/ - -typedef struct{ - uint8_t write_buffer_offset; - uint8_t write_buffer[IS31_FRAME_SIZE]; - uint8_t frame_buffer[GDISP_SCREEN_HEIGHT * GDISP_SCREEN_WIDTH]; - uint8_t page; -}__attribute__((__packed__)) PrivData; - -// Some common routines and macros -#define PRIV(g) ((PrivData*)g->priv) - -/*===========================================================================*/ -/* Driver exported functions. */ -/*===========================================================================*/ - -static GFXINLINE void write_page(GDisplay* g, uint8_t page) { - uint8_t tx[2] __attribute__((aligned(2))); - tx[0] = IS31_COMMANDREGISTER; - tx[1] = page; - write_data(g, tx, 2); -} - -static GFXINLINE void write_register(GDisplay* g, uint8_t page, uint8_t reg, uint8_t data) { - uint8_t tx[2] __attribute__((aligned(2))); - tx[0] = reg; - tx[1] = data; - write_page(g, page); - write_data(g, tx, 2); -} - -static GFXINLINE void write_ram(GDisplay *g, uint8_t page, uint16_t offset, uint16_t length) { - PRIV(g)->write_buffer_offset = offset; - write_page(g, page); - write_data(g, (uint8_t*)PRIV(g), length + 1); -} - -LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { - // The private area is the display surface. - g->priv = gfxAlloc(sizeof(PrivData)); - __builtin_memset(PRIV(g), 0, sizeof(PrivData)); - PRIV(g)->page = 0; - - // Initialise the board interface - init_board(g); - gfxSleepMilliseconds(10); - - // zero function page, all registers (assuming full_page is all zeroes) - write_ram(g, IS31_FUNCTIONREG, 0, IS31_FUNCTIONREG_SIZE); - set_hardware_shutdown(g, false); - gfxSleepMilliseconds(10); - // software shutdown - write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); - gfxSleepMilliseconds(10); - // zero function page, all registers - write_ram(g, IS31_FUNCTIONREG, 0, IS31_FUNCTIONREG_SIZE); - gfxSleepMilliseconds(10); - - - // zero all LED registers on all 8 pages, and enable the mask - __builtin_memcpy(PRIV(g)->write_buffer, get_led_mask(g), IS31_LED_MASK_SIZE); - for(uint8_t i=0; i<8; i++) { - write_ram(g, i, 0, IS31_FRAME_SIZE); - gfxSleepMilliseconds(1); - } - - // software shutdown disable (i.e. turn stuff on) - write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON); - gfxSleepMilliseconds(10); - - // Finish Init - post_init_board(g); - - /* Initialise the GDISP structure */ - g->g.Width = GDISP_SCREEN_WIDTH; - g->g.Height = GDISP_SCREEN_HEIGHT; - g->g.Orientation = GDISP_ROTATE_0; - g->g.Powermode = powerOn; - g->g.Backlight = GDISP_INITIAL_BACKLIGHT; - g->g.Contrast = GDISP_INITIAL_CONTRAST; - return TRUE; -} - -#if GDISP_HARDWARE_FLUSH - LLDSPEC void gdisp_lld_flush(GDisplay *g) { - // Don't flush if we don't need it. - if (!(g->flags & GDISP_FLG_NEEDFLUSH)) - return; - - PRIV(g)->page++; - PRIV(g)->page %= 2; - // TODO: some smarter algorithm for this - // We should run only one physical page at a time - // This way we don't need to send so much data, and - // we could use slightly less memory - uint8_t* src = PRIV(g)->frame_buffer; - for (int y=0;ywrite_buffer[get_led_address(g, x, y)]=cie[*src]; - ++src; - } - } - write_ram(g, PRIV(g)->page, IS31_PWM_REG, IS31_PWM_SIZE); - gfxSleepMilliseconds(1); - write_register(g, IS31_FUNCTIONREG, IS31_REG_PICTDISP, PRIV(g)->page); - - g->flags &= ~GDISP_FLG_NEEDFLUSH; - } -#endif - -#if GDISP_HARDWARE_DRAWPIXEL - LLDSPEC void gdisp_lld_draw_pixel(GDisplay *g) { - coord_t x, y; - - switch(g->g.Orientation) { - default: - case GDISP_ROTATE_0: - x = g->p.x; - y = g->p.y; - break; - case GDISP_ROTATE_180: - x = GDISP_SCREEN_WIDTH-1 - g->p.x; - y = g->p.y; - break; - } - PRIV(g)->frame_buffer[y * GDISP_SCREEN_WIDTH + x] = gdispColor2Native(g->p.color); - g->flags |= GDISP_FLG_NEEDFLUSH; - } -#endif - -#if GDISP_HARDWARE_PIXELREAD - LLDSPEC color_t gdisp_lld_get_pixel_color(GDisplay *g) { - coord_t x, y; - - switch(g->g.Orientation) { - default: - case GDISP_ROTATE_0: - x = g->p.x; - y = g->p.y; - break; - case GDISP_ROTATE_180: - x = GDISP_SCREEN_WIDTH-1 - g->p.x; - y = g->p.y; - break; - } - return gdispNative2Color(PRIV(g)->frame_buffer[y * GDISP_SCREEN_WIDTH + x]); - } -#endif - -#if GDISP_NEED_CONTROL && GDISP_HARDWARE_CONTROL - LLDSPEC void gdisp_lld_control(GDisplay *g) { - switch(g->p.x) { - case GDISP_CONTROL_POWER: - if (g->g.Powermode == (powermode_t)g->p.ptr) - return; - switch((powermode_t)g->p.ptr) { - case powerOff: - case powerSleep: - case powerDeepSleep: - write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); - break; - case powerOn: - write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON); - break; - default: - return; - } - g->g.Powermode = (powermode_t)g->p.ptr; - return; - - case GDISP_CONTROL_ORIENTATION: - if (g->g.Orientation == (orientation_t)g->p.ptr) - return; - switch((orientation_t)g->p.ptr) { - /* Rotation is handled by the drawing routines */ - case GDISP_ROTATE_0: - case GDISP_ROTATE_180: - g->g.Height = GDISP_SCREEN_HEIGHT; - g->g.Width = GDISP_SCREEN_WIDTH; - break; - case GDISP_ROTATE_90: - case GDISP_ROTATE_270: - g->g.Height = GDISP_SCREEN_WIDTH; - g->g.Width = GDISP_SCREEN_HEIGHT; - break; - default: - return; - } - g->g.Orientation = (orientation_t)g->p.ptr; - return; - - case GDISP_CONTROL_CONTRAST: - return; - } - } -#endif // GDISP_NEED_CONTROL - -#endif // GFX_USE_GDISP diff --git a/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h deleted file mode 100644 index bb28ad775..000000000 --- a/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h +++ /dev/null @@ -1,36 +0,0 @@ -/* -Copyright 2016 Fred Sundvik - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#ifndef _GDISP_LLD_CONFIG_H -#define _GDISP_LLD_CONFIG_H - -#if GFX_USE_GDISP - -/*===========================================================================*/ -/* Driver hardware support. */ -/*===========================================================================*/ - -#define GDISP_HARDWARE_FLUSH TRUE // This controller requires flushing -#define GDISP_HARDWARE_DRAWPIXEL TRUE -#define GDISP_HARDWARE_PIXELREAD TRUE -#define GDISP_HARDWARE_CONTROL TRUE - -#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_GRAY256 - -#endif /* GFX_USE_GDISP */ - -#endif /* _GDISP_LLD_CONFIG_H */ diff --git a/keyboards/ergodox/infinity/drivers/gdisp/emulator_lcd/driver.mk b/keyboards/ergodox/infinity/drivers/gdisp/emulator_lcd/driver.mk deleted file mode 100644 index 16c3f80f5..000000000 --- a/keyboards/ergodox/infinity/drivers/gdisp/emulator_lcd/driver.mk +++ /dev/null @@ -1,2 +0,0 @@ -GFXINC += drivers/gdisp/emulator_lcd -GFXSRC += drivers/gdisp/emulator_lcd/emulator_lcd.c diff --git a/keyboards/ergodox/infinity/drivers/gdisp/emulator_lcd/emulator_lcd.c b/keyboards/ergodox/infinity/drivers/gdisp/emulator_lcd/emulator_lcd.c deleted file mode 100644 index babfe2b36..000000000 --- a/keyboards/ergodox/infinity/drivers/gdisp/emulator_lcd/emulator_lcd.c +++ /dev/null @@ -1,10 +0,0 @@ -#define GDISP_DRIVER_VMT GDISPVMT_EMULATOR_LCD_ERGODOX -#define GDISP_HARDWARE_DRAWPIXEL TRUE -#define GDISP_HARDWARE_PIXELREAD TRUE -#define GDISP_HARDWARE_CONTROL TRUE -#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_MONO -#define GDISP_SCREEN_WIDTH 128 -#define GDISP_SCREEN_HEIGHT 32 -#define ROTATE_180_IS_FLIP - -#include "emulator/emulator_driver_impl.h" diff --git a/keyboards/ergodox/infinity/drivers/gdisp/emulator_led/driver.mk b/keyboards/ergodox/infinity/drivers/gdisp/emulator_led/driver.mk deleted file mode 100644 index 255434432..000000000 --- a/keyboards/ergodox/infinity/drivers/gdisp/emulator_led/driver.mk +++ /dev/null @@ -1,2 +0,0 @@ -GFXINC += drivers/gdisp/emulator_led -GFXSRC += drivers/gdisp/emulator_led/emulator_led.c diff --git a/keyboards/ergodox/infinity/drivers/gdisp/emulator_led/emulator_led.c b/keyboards/ergodox/infinity/drivers/gdisp/emulator_led/emulator_led.c deleted file mode 100644 index b0ebcdc47..000000000 --- a/keyboards/ergodox/infinity/drivers/gdisp/emulator_led/emulator_led.c +++ /dev/null @@ -1,10 +0,0 @@ -#define GDISP_DRIVER_VMT GDISPVMT_EMULATOR_LED_ERGODOX -#define GDISP_HARDWARE_DRAWPIXEL TRUE -#define GDISP_HARDWARE_PIXELREAD TRUE -#define GDISP_HARDWARE_CONTROL TRUE -#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_MONO -#define GDISP_SCREEN_WIDTH 7 -#define GDISP_SCREEN_HEIGHT 7 -#define ROTATE_180_IS_FLIP - -#include "emulator/emulator_driver_impl.h" diff --git a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h deleted file mode 100644 index 290571ce5..000000000 --- a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h +++ /dev/null @@ -1,127 +0,0 @@ -/* - * This file is subject to the terms of the GFX License. If a copy of - * the license was not distributed with this file, you can obtain one at: - * - * http://ugfx.org/license.html - */ - -#ifndef _GDISP_LLD_BOARD_H -#define _GDISP_LLD_BOARD_H - -#include "print.h" - -#define ST7565_LCD_BIAS ST7565_LCD_BIAS_9 // actually 6 -#define ST7565_ADC ST7565_ADC_NORMAL -#define ST7565_COM_SCAN ST7565_COM_SCAN_DEC -#define ST7565_PAGE_ORDER 0,1,2,3 -/* - * Custom page order for several LCD boards, e.g. HEM12864-99 - * #define ST7565_PAGE_ORDER 4,5,6,7,0,1,2,3 - */ - -#define ST7565_GPIOPORT GPIOC -#define ST7565_PORT PORTC -#define ST7565_A0_PIN 7 -#define ST7565_RST_PIN 8 -#define ST7565_MOSI_PIN 6 -#define ST7565_SLCK_PIN 5 -#define ST7565_SS_PIN 4 - -#define palSetPadModeRaw(portname, bits) \ - ST7565_PORT->PCR[ST7565_##portname##_PIN] = bits - -#define palSetPadModeNamed(portname, portmode) \ - palSetPadMode(ST7565_GPIOPORT, ST7565_##portname##_PIN, portmode) - -#define ST7565_SPI_MODE PORTx_PCRn_DSE | PORTx_PCRn_MUX(2) -// DSPI Clock and Transfer Attributes -// Frame Size: 8 bits -// MSB First -// CLK Low by default -static const SPIConfig spi1config = { - NULL, - /* HW dependent part.*/ - ST7565_GPIOPORT, - ST7565_SS_PIN, - SPIx_CTARn_FMSZ(7) - | SPIx_CTARn_ASC(7) - | SPIx_CTARn_DT(7) - | SPIx_CTARn_CSSCK(7) - | SPIx_CTARn_PBR(0) - | SPIx_CTARn_BR(7) - //SPI_CR1_BR_0 -}; - -static bool_t st7565_is_data_mode = 1; - -static GFXINLINE void init_board(GDisplay *g) { - (void) g; - palSetPadModeNamed(A0, PAL_MODE_OUTPUT_PUSHPULL); - palSetPad(ST7565_GPIOPORT, ST7565_A0_PIN); - st7565_is_data_mode = 1; - palSetPadModeNamed(RST, PAL_MODE_OUTPUT_PUSHPULL); - palSetPad(ST7565_GPIOPORT, ST7565_RST_PIN); - palSetPadModeRaw(MOSI, ST7565_SPI_MODE); - palSetPadModeRaw(SLCK, ST7565_SPI_MODE); - palSetPadModeRaw(SS, ST7565_SPI_MODE); - - spiInit(); - spiStart(&SPID1, &spi1config); - spiSelect(&SPID1); -} - -static GFXINLINE void post_init_board(GDisplay *g) { - (void) g; -} - -static GFXINLINE void setpin_reset(GDisplay *g, bool_t state) { - (void) g; - if (state) { - palClearPad(ST7565_GPIOPORT, ST7565_RST_PIN); - } - else { - palSetPad(ST7565_GPIOPORT, ST7565_RST_PIN); - } -} - -static GFXINLINE void acquire_bus(GDisplay *g) { - (void) g; - // Only the LCD is using the SPI bus, so no need to acquire - // spiAcquireBus(&SPID1); -} - -static GFXINLINE void release_bus(GDisplay *g) { - (void) g; - // Only the LCD is using the SPI bus, so no need to release - //spiReleaseBus(&SPID1); -} - -static GFXINLINE void write_cmd(GDisplay *g, uint8_t cmd) { - (void) g; - if (st7565_is_data_mode) { - // The sleeps need to be at lest 10 vs 25 ns respectively - // So let's sleep two ticks, one tick might not be enough - // if we are at the end of the tick - chThdSleep(2); - palClearPad(ST7565_GPIOPORT, ST7565_A0_PIN); - chThdSleep(2); - st7565_is_data_mode = 0; - } - spiSend(&SPID1, 1, &cmd); -} - -static GFXINLINE void write_data(GDisplay *g, uint8_t* data, uint16_t length) { - (void) g; - if (!st7565_is_data_mode) { - // The sleeps need to be at lest 10 vs 25 ns respectively - // So let's sleep two ticks, one tick might not be enough - // if we are at the end of the tick - chThdSleep(2); - palSetPad(ST7565_GPIOPORT, ST7565_A0_PIN); - chThdSleep(2); - st7565_is_data_mode = 1; - } - spiSend(&SPID1, length, data); -} - -#endif /* _GDISP_LLD_BOARD_H */ diff --git a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/driver.mk b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/driver.mk deleted file mode 100644 index 889a1a031..000000000 --- a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/driver.mk +++ /dev/null @@ -1,2 +0,0 @@ -GFXINC += drivers/gdisp/st7565ergodox -GFXSRC += drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c diff --git a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c deleted file mode 100644 index c33aea81a..000000000 --- a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c +++ /dev/null @@ -1,292 +0,0 @@ -/* - * This file is subject to the terms of the GFX License. If a copy of - * the license was not distributed with this file, you can obtain one at: - * - * http://ugfx.org/license.html - */ - -#include "gfx.h" - -#if GFX_USE_GDISP - -#define GDISP_DRIVER_VMT GDISPVMT_ST7565_ERGODOX -#include "drivers/gdisp/st7565ergodox/gdisp_lld_config.h" -#include "src/gdisp/gdisp_driver.h" - -#include "board_ST7565.h" - -/*===========================================================================*/ -/* Driver local definitions. */ -/*===========================================================================*/ - -#ifndef GDISP_SCREEN_HEIGHT - #define GDISP_SCREEN_HEIGHT 32 -#endif -#ifndef GDISP_SCREEN_WIDTH - #define GDISP_SCREEN_WIDTH 128 -#endif -#ifndef GDISP_INITIAL_CONTRAST - #define GDISP_INITIAL_CONTRAST 0 -#endif -#ifndef GDISP_INITIAL_BACKLIGHT - #define GDISP_INITIAL_BACKLIGHT 100 -#endif - -#define GDISP_FLG_NEEDFLUSH (GDISP_FLG_DRIVER<<0) - -#include "drivers/gdisp/st7565ergodox/st7565.h" - -/*===========================================================================*/ -/* Driver config defaults for backward compatibility. */ -/*===========================================================================*/ -#ifndef ST7565_LCD_BIAS - #define ST7565_LCD_BIAS ST7565_LCD_BIAS_7 -#endif -#ifndef ST7565_ADC - #define ST7565_ADC ST7565_ADC_NORMAL -#endif -#ifndef ST7565_COM_SCAN - #define ST7565_COM_SCAN ST7565_COM_SCAN_INC -#endif -#ifndef ST7565_PAGE_ORDER - #define ST7565_PAGE_ORDER 0,1,2,3 -#endif - -/*===========================================================================*/ -/* Driver local functions. */ -/*===========================================================================*/ - -typedef struct{ - bool_t buffer2; - uint8_t ram[GDISP_SCREEN_HEIGHT * GDISP_SCREEN_WIDTH / 8]; -}PrivData; - -// Some common routines and macros -#define PRIV(g) ((PrivData*)g->priv) -#define RAM(g) (PRIV(g)->ram) -#define write_cmd2(g, cmd1, cmd2) { write_cmd(g, cmd1); write_cmd(g, cmd2); } -#define write_cmd3(g, cmd1, cmd2, cmd3) { write_cmd(g, cmd1); write_cmd(g, cmd2); write_cmd(g, cmd3); } - -// Some common routines and macros -#define delay(us) gfxSleepMicroseconds(us) -#define delay_ms(ms) gfxSleepMilliseconds(ms) - -#define xyaddr(x, y) ((x) + ((y)>>3)*GDISP_SCREEN_WIDTH) -#define xybit(y) (1<<((y)&7)) - -/*===========================================================================*/ -/* Driver exported functions. */ -/*===========================================================================*/ - -/* - * As this controller can't update on a pixel boundary we need to maintain the - * the entire display surface in memory so that we can do the necessary bit - * operations. Fortunately it is a small display in monochrome. - * 64 * 128 / 8 = 1024 bytes. - */ - -LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { - // The private area is the display surface. - g->priv = gfxAlloc(sizeof(PrivData)); - PRIV(g)->buffer2 = false; - - // Initialise the board interface - init_board(g); - - // Hardware reset - setpin_reset(g, TRUE); - gfxSleepMilliseconds(20); - setpin_reset(g, FALSE); - gfxSleepMilliseconds(20); - - acquire_bus(g); - write_cmd(g, ST7565_DISPLAY_OFF); - write_cmd(g, ST7565_LCD_BIAS); - write_cmd(g, ST7565_ADC); - write_cmd(g, ST7565_COM_SCAN); - - write_cmd(g, ST7565_START_LINE | 0); - - write_cmd(g, ST7565_RESISTOR_RATIO | 0x6); - - // turn on voltage converter (VC=1, VR=0, VF=0) - write_cmd(g, ST7565_POWER_CONTROL | 0x04); - delay_ms(50); - - // turn on voltage regulator (VC=1, VR=1, VF=0) - write_cmd(g, ST7565_POWER_CONTROL | 0x06); - delay_ms(50); - - // turn on voltage follower (VC=1, VR=1, VF=1) - write_cmd(g, ST7565_POWER_CONTROL | 0x07); - delay_ms(50); - - write_cmd(g, 0xE2); - write_cmd(g, ST7565_COM_SCAN); - write_cmd2(g, ST7565_CONTRAST, GDISP_INITIAL_CONTRAST*64/101); - //write_cmd2(g, ST7565_CONTRAST, 0); - write_cmd(g, ST7565_DISPLAY_ON); - write_cmd(g, ST7565_ALLON_NORMAL); - write_cmd(g, ST7565_INVERT_DISPLAY); - - write_cmd(g, ST7565_RMW); - - // Finish Init - post_init_board(g); - - // Release the bus - release_bus(g); - - /* Initialise the GDISP structure */ - g->g.Width = GDISP_SCREEN_WIDTH; - g->g.Height = GDISP_SCREEN_HEIGHT; - g->g.Orientation = GDISP_ROTATE_0; - g->g.Powermode = powerOn; - g->g.Backlight = GDISP_INITIAL_BACKLIGHT; - g->g.Contrast = GDISP_INITIAL_CONTRAST; - return TRUE; -} - -#if GDISP_HARDWARE_FLUSH - LLDSPEC void gdisp_lld_flush(GDisplay *g) { - unsigned p; - - // Don't flush if we don't need it. - if (!(g->flags & GDISP_FLG_NEEDFLUSH)) - return; - - acquire_bus(g); - unsigned dstOffset = (PRIV(g)->buffer2 ? 4 : 0); - for (p = 0; p < 4; p++) { - write_cmd(g, ST7565_PAGE | (p + dstOffset)); - write_cmd(g, ST7565_COLUMN_MSB | 0); - write_cmd(g, ST7565_COLUMN_LSB | 0); - write_cmd(g, ST7565_RMW); - write_data(g, RAM(g) + (p*GDISP_SCREEN_WIDTH), GDISP_SCREEN_WIDTH); - } - unsigned line = (PRIV(g)->buffer2 ? 32 : 0); - write_cmd(g, ST7565_START_LINE | line); - PRIV(g)->buffer2 = !PRIV(g)->buffer2; - release_bus(g); - - g->flags &= ~GDISP_FLG_NEEDFLUSH; - } -#endif - -#if GDISP_HARDWARE_DRAWPIXEL - LLDSPEC void gdisp_lld_draw_pixel(GDisplay *g) { - coord_t x, y; - - switch(g->g.Orientation) { - default: - case GDISP_ROTATE_0: - x = g->p.x; - y = g->p.y; - break; - case GDISP_ROTATE_90: - x = g->p.y; - y = GDISP_SCREEN_HEIGHT-1 - g->p.x; - break; - case GDISP_ROTATE_180: - x = GDISP_SCREEN_WIDTH-1 - g->p.x; - y = GDISP_SCREEN_HEIGHT-1 - g->p.y; - break; - case GDISP_ROTATE_270: - x = GDISP_SCREEN_HEIGHT-1 - g->p.y; - y = g->p.x; - break; - } - if (gdispColor2Native(g->p.color) != Black) - RAM(g)[xyaddr(x, y)] |= xybit(y); - else - RAM(g)[xyaddr(x, y)] &= ~xybit(y); - g->flags |= GDISP_FLG_NEEDFLUSH; - } -#endif - -#if GDISP_HARDWARE_PIXELREAD - LLDSPEC color_t gdisp_lld_get_pixel_color(GDisplay *g) { - coord_t x, y; - - switch(g->g.Orientation) { - default: - case GDISP_ROTATE_0: - x = g->p.x; - y = g->p.y; - break; - case GDISP_ROTATE_90: - x = g->p.y; - y = GDISP_SCREEN_HEIGHT-1 - g->p.x; - break; - case GDISP_ROTATE_180: - x = GDISP_SCREEN_WIDTH-1 - g->p.x; - y = GDISP_SCREEN_HEIGHT-1 - g->p.y; - break; - case GDISP_ROTATE_270: - x = GDISP_SCREEN_HEIGHT-1 - g->p.y; - y = g->p.x; - break; - } - return (RAM(g)[xyaddr(x, y)] & xybit(y)) ? White : Black; - } -#endif - -#if GDISP_NEED_CONTROL && GDISP_HARDWARE_CONTROL - LLDSPEC void gdisp_lld_control(GDisplay *g) { - switch(g->p.x) { - case GDISP_CONTROL_POWER: - if (g->g.Powermode == (powermode_t)g->p.ptr) - return; - switch((powermode_t)g->p.ptr) { - case powerOff: - case powerSleep: - case powerDeepSleep: - acquire_bus(g); - write_cmd(g, ST7565_DISPLAY_OFF); - release_bus(g); - break; - case powerOn: - acquire_bus(g); - write_cmd(g, ST7565_DISPLAY_ON); - release_bus(g); - break; - default: - return; - } - g->g.Powermode = (powermode_t)g->p.ptr; - return; - - case GDISP_CONTROL_ORIENTATION: - if (g->g.Orientation == (orientation_t)g->p.ptr) - return; - switch((orientation_t)g->p.ptr) { - /* Rotation is handled by the drawing routines */ - case GDISP_ROTATE_0: - case GDISP_ROTATE_180: - g->g.Height = GDISP_SCREEN_HEIGHT; - g->g.Width = GDISP_SCREEN_WIDTH; - break; - case GDISP_ROTATE_90: - case GDISP_ROTATE_270: - g->g.Height = GDISP_SCREEN_WIDTH; - g->g.Width = GDISP_SCREEN_HEIGHT; - break; - default: - return; - } - g->g.Orientation = (orientation_t)g->p.ptr; - return; - - case GDISP_CONTROL_CONTRAST: - if ((unsigned)g->p.ptr > 100) - g->p.ptr = (void *)100; - acquire_bus(g); - write_cmd2(g, ST7565_CONTRAST, ((((unsigned)g->p.ptr)<<6)/101) & 0x3F); - release_bus(g); - g->g.Contrast = (unsigned)g->p.ptr; - return; - } - } -#endif // GDISP_NEED_CONTROL - -#endif // GFX_USE_GDISP diff --git a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_config.h b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_config.h deleted file mode 100644 index 48587b9e1..000000000 --- a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_config.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * This file is subject to the terms of the GFX License. If a copy of - * the license was not distributed with this file, you can obtain one at: - * - * http://ugfx.org/license.html - */ - -#ifndef _GDISP_LLD_CONFIG_H -#define _GDISP_LLD_CONFIG_H - -#if GFX_USE_GDISP - -/*===========================================================================*/ -/* Driver hardware support. */ -/*===========================================================================*/ - -#define GDISP_HARDWARE_FLUSH TRUE // This controller requires flushing -#define GDISP_HARDWARE_DRAWPIXEL TRUE -#define GDISP_HARDWARE_PIXELREAD TRUE -#define GDISP_HARDWARE_CONTROL TRUE - -#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_MONO - -#endif /* GFX_USE_GDISP */ - -#endif /* _GDISP_LLD_CONFIG_H */ diff --git a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/st7565.h b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/st7565.h deleted file mode 100644 index 48636b33d..000000000 --- a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/st7565.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * This file is subject to the terms of the GFX License. If a copy of - * the license was not distributed with this file, you can obtain one at: - * - * http://ugfx.org/license.html - */ - -#ifndef _ST7565_H -#define _ST7565_H - -#define ST7565_CONTRAST 0x81 -#define ST7565_ALLON_NORMAL 0xA4 -#define ST7565_ALLON 0xA5 -#define ST7565_POSITIVE_DISPLAY 0xA6 -#define ST7565_INVERT_DISPLAY 0xA7 -#define ST7565_DISPLAY_OFF 0xAE -#define ST7565_DISPLAY_ON 0xAF - -#define ST7565_LCD_BIAS_7 0xA3 -#define ST7565_LCD_BIAS_9 0xA2 - -#define ST7565_ADC_NORMAL 0xA0 -#define ST7565_ADC_REVERSE 0xA1 - -#define ST7565_COM_SCAN_INC 0xC0 -#define ST7565_COM_SCAN_DEC 0xC8 - -#define ST7565_START_LINE 0x40 -#define ST7565_PAGE 0xB0 -#define ST7565_COLUMN_MSB 0x10 -#define ST7565_COLUMN_LSB 0x00 -#define ST7565_RMW 0xE0 - -#define ST7565_RESISTOR_RATIO 0x20 -#define ST7565_POWER_CONTROL 0x28 - -#endif /* _ST7565_H */ diff --git a/keyboards/ergodox/infinity/infinity.c b/keyboards/ergodox/infinity/infinity.c index 87ed40fab..85e61e3aa 100644 --- a/keyboards/ergodox/infinity/infinity.c +++ b/keyboards/ergodox/infinity/infinity.c @@ -1,8 +1,10 @@ -#include "infinity_ergodox.h" +#include "infinity.h" #include "ch.h" #include "hal.h" #include "serial_link/system/serial_link.h" +#ifdef VISUALIZER_ENABLE #include "lcd_backlight.h" +#endif void init_serial_link_hal(void) { PORTA->PCR[1] = PORTx_PCRn_PE | PORTx_PCRn_PS | PORTx_PCRn_PFE | PORTx_PCRn_MUX(2); @@ -36,7 +38,7 @@ void init_serial_link_hal(void) { // Using a higher pre-scalar without flicker is possible but FTM0_MOD will need to be reduced // Which will reduce the brightness range #define PRESCALAR_DEFINE 0 - +#ifdef VISUALIZER_ENABLE void lcd_backlight_hal_init(void) { // Setup Backlight SIM->SCGC6 |= SIM_SCGC6_FTM0; @@ -74,3 +76,18 @@ void lcd_backlight_hal_color(uint16_t r, uint16_t g, uint16_t b) { CHANNEL_GREEN.CnV = g; CHANNEL_BLUE.CnV = b; } +#endif + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + matrix_init_user(); +} + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +} diff --git a/keyboards/ergodox/infinity/infinity.h b/keyboards/ergodox/infinity/infinity.h index de7267594..a92aa89bb 100644 --- a/keyboards/ergodox/infinity/infinity.h +++ b/keyboards/ergodox/infinity/infinity.h @@ -21,24 +21,24 @@ B04, \ B14, B24, B34 \ ) { \ - { KC_NO, KC_NO, KC_NO, KC_##A03, KC_##A04 }, \ - { KC_NO, KC_NO, KC_NO, KC_##A13, KC_##A14 }, \ - { KC_##A20, KC_##A21, KC_NO, KC_##A23, KC_##A24 }, \ - { KC_##A30, KC_##A31, KC_##A32, KC_##A33, KC_##A34 }, \ - { KC_##A40, KC_##A41, KC_##A42, KC_##A43, KC_##A44 }, \ - { KC_##A50, KC_##A51, KC_##A52, KC_##A53, KC_##A54 }, \ - { KC_##A60, KC_##A61, KC_##A62, KC_##A63, KC_##A64 }, \ - { KC_##A70, KC_##A71, KC_##A72, KC_##A73, KC_##A74 }, \ - { KC_##A80, KC_##A81, KC_##A82, KC_##A83, KC_##A84 }, \ - { KC_NO, KC_NO, KC_NO, KC_##B03, KC_##B04 }, \ - { KC_NO, KC_NO, KC_NO, KC_##B13, KC_##B14 }, \ - { KC_##B20, KC_##B21, KC_NO, KC_##B23, KC_##B24 }, \ - { KC_##B30, KC_##B31, KC_##B32, KC_##B33, KC_##B34 }, \ - { KC_##B40, KC_##B41, KC_##B42, KC_##B43, KC_##B44 }, \ - { KC_##B50, KC_##B51, KC_##B52, KC_##B53, KC_##B54 }, \ - { KC_##B60, KC_##B61, KC_##B62, KC_##B63, KC_##B64 }, \ - { KC_##B70, KC_##B71, KC_##B72, KC_##B73, KC_##B74 }, \ - { KC_##B80, KC_##B81, KC_##B82, KC_##B83, KC_##B84 } \ + { KC_NO, KC_NO, KC_NO, A03, A04 }, \ + { KC_NO, KC_NO, KC_NO, A13, A14 }, \ + { A20, A21, KC_NO, A23, A24 }, \ + { A30, A31, A32, A33, A34 }, \ + { A40, A41, A42, A43, A44 }, \ + { A50, A51, A52, A53, A54 }, \ + { A60, A61, A62, A63, A64 }, \ + { A70, A71, A72, A73, A74 }, \ + { A80, A81, A82, A83, A84 }, \ + { KC_NO, KC_NO, KC_NO, B03, B04 }, \ + { KC_NO, KC_NO, KC_NO, B13, B14 }, \ + { B20, B21, KC_NO, B23, B24 }, \ + { B30, B31, B32, B33, B34 }, \ + { B40, B41, B42, B43, B44 }, \ + { B50, B51, B52, B53, B54 }, \ + { B60, B61, B62, B63, B64 }, \ + { B70, B71, B72, B73, B74 }, \ + { B80, B81, B82, B83, B84 } \ } #endif /* KEYBOARDS_INFINITY_ERGODOX_INFINITY_ERGODOX_H_ */ diff --git a/keyboards/ergodox/infinity/matrix.c b/keyboards/ergodox/infinity/matrix.c index 2b806cd64..1fda90484 100644 --- a/keyboards/ergodox/infinity/matrix.c +++ b/keyboards/ergodox/infinity/matrix.c @@ -63,6 +63,8 @@ void matrix_init(void) memset(matrix, 0, MATRIX_ROWS); memset(matrix_debouncing, 0, LOCAL_MATRIX_ROWS); + + matrix_init_quantum(); } uint8_t matrix_scan(void) @@ -127,6 +129,7 @@ uint8_t matrix_scan(void) } debouncing = false; } + matrix_scan_quantum(); return 1; } diff --git a/quantum/quantum.h b/quantum/quantum.h index 7ebfb24e3..6e3fbcc79 100644 --- a/quantum/quantum.h +++ b/quantum/quantum.h @@ -25,6 +25,7 @@ #include "led.h" #include "action_util.h" #include +#include "print.h" extern uint32_t default_layer_state; diff --git a/tmk_core/common/print.h b/tmk_core/common/print.h index 0368bcd4a..a1352527f 100644 --- a/tmk_core/common/print.h +++ b/tmk_core/common/print.h @@ -29,7 +29,9 @@ #include #include "util.h" - +#if defined(PROTOCOL_CHIBIOS) +#define PSTR(x) x +#endif #ifndef NO_PRINT -- cgit v1.2.3 From e0f28c2b1068d8cd218e1450dea97fde946ba87a Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sat, 9 Jul 2016 01:38:58 +0300 Subject: Add empty led control functions to Infinity Ergodox So that most keymaps compiles and links --- keyboards/ergodox/infinity/infinity.c | 30 ++++++++++++++++ keyboards/ergodox/infinity/infinity.h | 66 +++++++++++++++++++++++++++++++++++ 2 files changed, 96 insertions(+) (limited to 'keyboards') diff --git a/keyboards/ergodox/infinity/infinity.c b/keyboards/ergodox/infinity/infinity.c index 85e61e3aa..d33c54441 100644 --- a/keyboards/ergodox/infinity/infinity.c +++ b/keyboards/ergodox/infinity/infinity.c @@ -91,3 +91,33 @@ void matrix_scan_kb(void) { matrix_scan_user(); } + +void ergodox_board_led_on(void){ +} + +void ergodox_right_led_1_on(void){ +} + +void ergodox_right_led_2_on(void){ +} + +void ergodox_right_led_3_on(void){ +} + +void ergodox_right_led_on(uint8_t led){ +} + +void ergodox_board_led_off(void){ +} + +void ergodox_right_led_1_off(void){ +} + +void ergodox_right_led_2_off(void){ +} + +void ergodox_right_led_3_off(void){ +} + +void ergodox_right_led_off(uint8_t led){ +} diff --git a/keyboards/ergodox/infinity/infinity.h b/keyboards/ergodox/infinity/infinity.h index a92aa89bb..83ce6444c 100644 --- a/keyboards/ergodox/infinity/infinity.h +++ b/keyboards/ergodox/infinity/infinity.h @@ -3,6 +3,72 @@ #include "quantum.h" +void ergodox_board_led_on(void); +void ergodox_right_led_1_on(void); +void ergodox_right_led_2_on(void); +void ergodox_right_led_3_on(void); +void ergodox_right_led_on(uint8_t led); + +void ergodox_board_led_off(void); +void ergodox_right_led_1_off(void); +void ergodox_right_led_2_off(void); +void ergodox_right_led_3_off(void); +void ergodox_right_led_off(uint8_t led); + +inline void ergodox_led_all_on(void) +{ + ergodox_board_led_on(); + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + ergodox_right_led_3_on(); +} + +inline void ergodox_led_all_off(void) +{ + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); +} + +inline void ergodox_right_led_1_set(uint8_t n){ + if (n) { + ergodox_right_led_1_on(); + } else { + ergodox_right_led_1_off(); + } +} + +inline void ergodox_right_led_2_set(uint8_t n){ + if (n) { + ergodox_right_led_2_on(); + } else { + ergodox_right_led_2_off(); + } +} + +inline void ergodox_right_led_3_set(uint8_t n){ + if (n) { + ergodox_right_led_3_on(); + } else { + ergodox_right_led_3_off(); + } +} + +inline void ergodox_right_led_set(uint8_t led, uint8_t n){ + if (n) { + ergodox_right_led_on(led); + } else { + ergodox_right_led_off(led); + } +} + +inline void ergodox_led_all_set(uint8_t n) { + ergodox_right_led_1_set(n); + ergodox_right_led_2_set(n); + ergodox_right_led_3_set(n); +} + #define KEYMAP( \ A80, A70, A60, A50, A40, A30, A20, \ A81, A71, A61, A51, A41, A31, A21, \ -- cgit v1.2.3 From e7670f6d19639ba2a0cead228cc58ff58eef5a60 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sat, 9 Jul 2016 11:26:15 +0300 Subject: Move some of the Ergodox config settings to shared --- keyboards/ergodox/config.h | 24 ++++++++++++++++++++++++ keyboards/ergodox/ez/config.h | 29 +++++------------------------ keyboards/ergodox/infinity/config.h | 21 ++++++++------------- 3 files changed, 37 insertions(+), 37 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/config.h b/keyboards/ergodox/config.h index c37c10e93..edc60caae 100644 --- a/keyboards/ergodox/config.h +++ b/keyboards/ergodox/config.h @@ -1,6 +1,30 @@ #ifndef KEYBOARDS_ERGODOX_CONFIG_H_ #define KEYBOARDS_ERGODOX_CONFIG_H_ +#define MOUSEKEY_DELAY 100 +#define MOUSEKEY_INTERVAL 20 +#define MOUSEKEY_MAX_SPEED 3 +#define MOUSEKEY_TIME_TO_MAX 10 + +#define TAPPING_TOGGLE 1 + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +#define TAPPING_TERM 200 +#define IGNORE_MOD_TAP_INTERRUPT // this makes it possible to do rolling combos (zx) with keys that convert to other keys on hold (z becomes ctrl when you hold it, and when this option isn't enabled, z rapidly followed by x actually sends Ctrl-x. That's bad.) + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || \ + keyboard_report->mods == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) \ +) + #ifdef SUBPROJECT_ez #include "ez/config.h" #endif diff --git a/keyboards/ergodox/ez/config.h b/keyboards/ergodox/ez/config.h index 2bb56731b..59fc0fda7 100644 --- a/keyboards/ergodox/ez/config.h +++ b/keyboards/ergodox/ez/config.h @@ -19,7 +19,7 @@ along with this program. If not, see . #ifndef CONFIG_H #define CONFIG_H -#include "config_common.h" +#include "../config.h" /* USB Device descriptor parameter */ #define VENDOR_ID 0xFEED @@ -33,34 +33,15 @@ along with this program. If not, see . #define MATRIX_ROWS 14 #define MATRIX_COLS 6 -#define MOUSEKEY_DELAY 100 -#define MOUSEKEY_INTERVAL 20 -#define MOUSEKEY_MAX_SPEED 3 -#define MOUSEKEY_TIME_TO_MAX 10 - -#define TAPPING_TOGGLE 1 - -/* define if matrix has ghost */ -//#define MATRIX_HAS_GHOST - /* number of backlight levels */ #define BACKLIGHT_LEVELS 3 +#define LED_BRIGHTNESS_LO 15 +#define LED_BRIGHTNESS_HI 255 + + /* Set 0 if debouncing isn't needed */ #define DEBOUNCE 5 -#define TAPPING_TERM 200 -#define IGNORE_MOD_TAP_INTERRUPT // this makes it possible to do rolling combos (zx) with keys that convert to other keys on hold (z becomes ctrl when you hold it, and when this option isn't enabled, z rapidly followed by x actually sends Ctrl-x. That's bad.) - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -/* key combination for command */ -#define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || \ - keyboard_report->mods == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) \ -) /* * Feature disable options diff --git a/keyboards/ergodox/infinity/config.h b/keyboards/ergodox/infinity/config.h index d24ee0f05..83d7c5837 100644 --- a/keyboards/ergodox/infinity/config.h +++ b/keyboards/ergodox/infinity/config.h @@ -18,6 +18,8 @@ along with this program. If not, see . #ifndef CONFIG_H #define CONFIG_H +#include "../config.h" + /* USB Device descriptor parameter */ #define VENDOR_ID 0xFEED @@ -35,25 +37,18 @@ along with this program. If not, see . #define MATRIX_COLS 5 #define LOCAL_MATRIX_ROWS 9 +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +#define LED_BRIGHTNESS_LO 15 +#define LED_BRIGHTNESS_HI 255 + /* define if matrix has ghost */ //#define MATRIX_HAS_GHOST /* Set 0 if debouncing isn't needed */ #define DEBOUNCE 5 -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -//#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -//#define LOCKING_RESYNC_ENABLE - -/* key combination for command */ -#define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ -) - -/* Keymap for Infiity prototype */ -#define INFINITY_PROTOTYPE - #define SERIAL_LINK_BAUD 562500 #define SERIAL_LINK_THREAD_PRIORITY (NORMALPRIO - 1) // The visualizer needs gfx thread priorities -- cgit v1.2.3 From 1641743b9d9800a4a95ad12c77e1e90aa462347e Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sat, 9 Jul 2016 11:27:06 +0300 Subject: Change _delay_ms to wait_ms in algernon keymap --- keyboards/ergodox/keymaps/algernon/keymap.c | 2433 ++++++++++++++------------- 1 file changed, 1217 insertions(+), 1216 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/keymaps/algernon/keymap.c b/keyboards/ergodox/keymaps/algernon/keymap.c index 1ebcf528b..6a14ef467 100644 --- a/keyboards/ergodox/keymaps/algernon/keymap.c +++ b/keyboards/ergodox/keymaps/algernon/keymap.c @@ -1,1216 +1,1217 @@ -/* - * algernon's ErgoDox EZ layout, please see the readme.md file! - */ - -#include "ergodox.h" -#include "led.h" -#include "debug.h" -#include "action_layer.h" -#include "action_util.h" -#include "mousekey.h" -#include "timer.h" -#include "keymap_plover.h" -#include "eeconfig.h" - -/* Layers */ - -enum { - BASE = 0, - ADORE, - ARRW, - APPSEL, - HUN, - NMDIA, - OHLFT, - OHRGT, - PLVR, -}; - -/* Macros */ - -enum { - NONE = 0, - // Buttons that do extra stuff - A_GUI, - A_PLVR, - A_ESC, - A_MPN, - - // Function / number keys - KF_1, // 1, F1 - KF_2, // 2, F2 - KF_3, // ... - KF_4, - KF_5, - KF_6, - KF_7, - KF_8, - KF_9, - KF_10, - KF_11, // =, F11 - - // Application select keys - APP_SLK, // Slack - APP_EMCS, // Emacs - APP_TERM, // Terminal - APP_CHRM, // Chrome - APP_MSIC, // Music - - // Diagonal mouse movement - A_MUL, - A_MUR, - A_MDL, - A_MDR, - - // Hungarian layer keys - HU_AA, // Á - HU_OO, // Ó - HU_EE, // É - HU_UU, // Ú - HU_II, // Í - HU_OE, // Ö - HU_UE, // Ü - HU_OEE, // Ő - HU_UEE, // Ű - - // One-handed layout specials - OH_BSSPC, - OH_ENTSFT, - OH_BASE, - OH_LEFT, - OH_RIGHT, -}; - -/* Fn keys */ - -enum { - F_BSE = 0, - F_HUN, - F_GUI, - F_SFT, - F_ALT, - F_CTRL -}; - -/* Custom keycodes */ - -enum { - CT_CLN = 0, - CT_MNS, - CT_TA, -}; - -/* States & timers */ - -uint16_t gui_timer = 0; - -uint16_t kf_timers[12]; - -uint16_t oh_base_timer = 0; -uint16_t oh_bsspc_timer = 0; -uint16_t oh_entsft_timer = 0; - -#define OH_BLINK_INTERVAL 500 - -uint8_t oh_left_blink = 0; -uint16_t oh_left_blink_timer = 0; -uint8_t oh_right_blink = 0; -uint16_t oh_right_blink_timer = 0; - -#if KEYLOGGER_ENABLE -bool log_enable = false; -#endif - -bool time_travel = false; - -/* The Keymap */ - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* Keymap 0: Base Layer - * - * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | `~ | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 | Plvr | | Apps | 6 F6 | 7 F7 | 8 F8 | 9 F9 | 0 F10| F11 | - * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | Next/Prev | ' | , | . | P | Y | [ | | ] | F | G | C | R | L | \ | - * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | Tab/ARROW | A | O | E | U | I |------| |------| D | H | T | N | S | = / Arrow | - * |-----------+------+------+------+------+------| ( | | ) |------+------+------+------+------+-----------| - * | Play/Pause| / | Q | J | K | X | | | | B | M | W | V | Z | Stop | - * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * | | | | | : | | - | | | | | - * `-----------------------------------' `-----------------------------------' - * ,-------------. ,-------------. - * | LAlt | GUI | | MDIA | 1HND | - * ,------|------|------| |------+------+------. - * | | | Ctrl | | LEAD | | | - * |Backsp|LShift|------| |------| Enter| Space| - * | | | ESC | | HUN | | | - * `--------------------' `--------------------' - */ -[BASE] = KEYMAP( -// left hand - KC_GRV ,M(KF_1) ,M(KF_2) ,M(KF_3),M(KF_4),M(KF_5),M(A_PLVR) -,M(A_MPN) ,KC_QUOT ,KC_COMM ,KC_DOT ,KC_P ,KC_Y ,KC_LBRC -,TD(CT_TA) ,KC_A ,KC_O ,KC_E ,KC_U ,KC_I -,KC_MPLY ,KC_SLSH ,KC_Q ,KC_J ,KC_K ,KC_X ,KC_LPRN -,KC_NO ,KC_NO ,KC_NO ,KC_NO ,TD(CT_CLN) - - ,F(F_ALT),F(F_GUI) - ,F(F_CTRL) - ,KC_BSPC,F(F_SFT),M(A_ESC) - - // right hand - ,KC_APP ,M(KF_6),M(KF_7) ,M(KF_8),M(KF_9) ,M(KF_10) ,KC_F11 - ,KC_RBRC ,KC_F ,KC_G ,KC_C ,KC_R ,KC_L ,KC_BSLS - ,KC_D ,KC_H ,KC_T ,KC_N ,KC_S ,KC_EQL - ,KC_RPRN ,KC_B ,KC_M ,KC_W ,KC_V ,KC_Z ,KC_MSTP - ,TD(CT_MNS),KC_NO ,KC_NO ,KC_NO ,KC_NO - - ,OSL(NMDIA),M(OH_LEFT) - ,KC_LEAD - ,F(F_HUN) ,KC_ENT ,KC_SPC - ), - -/* Keymap 1: Adore layer - * - * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | `~ | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 | Plvr | | Apps | 6 F6 | 7 F7 | 8 F8 | 9 F9 | 0 F10| F11 | - * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | Next/Prev | , | . | L | W | M | [ | | ] | F | H | C | P | Y | \ | - * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | Tab/Arrow | A | O | E | I | U |------| |------| D | R | T | N | S | = / Arrow | - * |-----------+------+------+------+------+------| ( | | ) |------+------+------+------+------+-----------| - * | Play/Pause| / | Z | ' | K | X | | | | B | G | V | J | Q | Stop | - * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * | | | | | : | | - | | | | | - * `-----------------------------------' `-----------------------------------' - * ,-------------. ,-------------. - * | LAlt | GUI | | MDIA | 1HND | - * ,------|------|------| |------+------+------. - * | | | Ctrl | | LEAD | | | - * |Backsp|LShift|------| |------| Enter| Space| - * | | | ESC | | HUN | | | - * `--------------------' `--------------------' - */ -[ADORE] = KEYMAP( -// left hand - KC_GRV ,M(KF_1) ,M(KF_2) ,M(KF_3),M(KF_4),M(KF_5),M(A_PLVR) -,M(A_MPN) ,KC_COMM ,KC_DOT ,KC_L ,KC_W ,KC_M ,KC_LBRC -,TD(CT_TA) ,KC_A ,KC_O ,KC_E ,KC_I ,KC_U -,KC_MPLY ,KC_SLSH ,KC_Z ,KC_QUOT,KC_K ,KC_X ,KC_LPRN -,KC_NO ,KC_NO ,KC_NO ,KC_NO ,TD(CT_CLN) - - ,F(F_ALT),F(F_GUI) - ,F(F_CTRL) - ,KC_BSPC,F(F_SFT),M(A_ESC) - - // right hand - ,KC_APP ,M(KF_6),M(KF_7) ,M(KF_8),M(KF_9) ,M(KF_10) ,KC_F11 - ,KC_RBRC ,KC_F ,KC_H ,KC_C ,KC_P ,KC_Y ,KC_BSLS - ,KC_D ,KC_R ,KC_T ,KC_N ,KC_S ,KC_EQL - ,KC_RPRN ,KC_B ,KC_G ,KC_V ,KC_J ,KC_Q ,KC_MSTP - ,TD(CT_MNS),KC_NO ,KC_NO ,KC_NO ,KC_NO - - ,OSL(NMDIA),M(OH_LEFT) - ,KC_LEAD - ,F(F_HUN) ,KC_ENT ,KC_SPC - ), - -/* Keymap 2: Arrow layer - * - * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | | | | | | | | | | | Home | Up | End | | | - * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | | | | | | |------| |------| | Left | Down | Rght | | | - * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | | | | | | | | | | | | | | | | - * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| PgUp | PgDn | - * | | | | | | | | - * `--------------------' `--------------------' - */ - -[ARRW] = 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 ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,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_HOME ,KC_UP ,KC_END ,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_PGUP ,KC_PGDN - ), - -/* Keymap 3: Application select layer - * - * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | |Music |Slack |Emacs |Term |Chrome| | | | | | | | | | - * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | | | | | | | | | | | | | | | | - * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | | | | | | |------| |------| | | | | | | - * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | | | | | | | | | | | | | | | | - * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ - -[APPSEL] = KEYMAP( -// left hand - KC_TRNS ,M(APP_MSIC),M(APP_SLK),M(APP_EMCS),M(APP_TERM),M(APP_CHRM),KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS -,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,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_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS - ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,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 4: Hungarian Layer - * - * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | | | Ő | | Ű | | | | | | | | | | | - * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | | Á | Ó | É | Ú | Í |------| |------| | | | | | | - * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | | | Ö | | Ü | | | | | | | | | | | - * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | BASE | | | - * `--------------------' `--------------------' - */ - -[HUN] = KEYMAP( -// left hand - KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO -,KC_NO ,KC_NO ,M(HU_OEE),KC_NO ,M(HU_UEE),KC_NO ,KC_NO -,KC_NO ,M(HU_AA),M(HU_OO) ,M(HU_EE),M(HU_UU) ,M(HU_II) -,KC_NO ,KC_NO ,M(HU_OE) ,KC_NO ,M(HU_UE) ,KC_NO ,KC_NO -,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - - ,KC_NO ,KC_NO - ,KC_NO - ,KC_NO ,KC_TRNS ,KC_TRNS - - // right hand - ,KC_TRNS ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - - ,KC_NO ,KC_NO - ,KC_NO - ,F(F_BSE),KC_TRNS ,KC_TRNS - ), - -/* Keymap 5: Navigation & Media layer - * - * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | MS Slow | | | | | |ScrLCK| |ScrLCK| | | | | | | - * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | MS Normal | | Home | Up | PgUp | | | |Scroll| |MsUpL | MsUp |MsUpR | |PrintScreen| - * |-----------+------+------+------+------+------| | | Up |------+------+------+------+------+-----------| - * | MS Fast | | Left | Down | Right| |------| |------| |MsLeft| MsDn |MsRght| | | - * |-----------+------+------+------+------+------| | |Scroll|------+------+------+------+------+-----------| - * | Play/Pause| | End | Down | PgDn | | | | Down | |MsDnL | MsDn |MsDnR | | Stop | - * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | Mute | VlUp | | BASE | MClk | - * ,------|------|------| |------+------+------. - * | | | VlDn | | Prev |Left |Right | - * | SPC | Enter|------| |------| Click| Click| - * | | | ESC | | Next | | | - * `--------------------' `--------------------' - */ -[NMDIA] = KEYMAP( -// left hand - KC_ACL0 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,LGUI(KC_L) -,KC_ACL1 ,KC_NO ,KC_HOME ,KC_UP ,KC_PGUP ,KC_NO ,KC_NO -,KC_ACL2 ,KC_NO ,KC_LEFT ,KC_DOWN ,KC_RIGHT,KC_NO -,KC_MPLY ,KC_NO ,KC_END ,KC_DOWN ,KC_PGDN ,KC_NO ,KC_NO -,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_MUTE ,KC_VOLU - ,KC_VOLD - ,KC_SPC,KC_ENTER,M(A_ESC) - - // right hand - ,LGUI(KC_L),KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_WH_U ,KC_NO ,M(A_MUL),KC_MS_U ,M(A_MUR),KC_NO ,KC_PSCR - ,KC_NO ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_NO ,KC_NO - ,KC_WH_D ,KC_NO ,M(A_MDL),KC_MS_D ,M(A_MDR),KC_NO ,KC_MSTP - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - - ,KC_TRNS ,KC_MS_BTN3 - ,KC_MPRV - ,KC_MNXT ,KC_BTN1 ,KC_BTN2 - ), - -/* Keymap 6: One-handed, left side - * - * ,-----------------------------------------------------. - * | `~ | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 |A BSE| - * |-----------+------+------+------+------+-------------| - * | Tab | ' | , | . | P | Y | [ | - * |-----------+------+------+------+------+------| | - * | - | A | O | E | U | I |------| - * |-----------+------+------+------+------+------| ( | - * | Play/Pause| ; | Q | J | K | X | | - * `-----------+------+------+------+------+-------------' - * | Home | End | Down | Up | ESC | - * `-----------------------------------' - * ,-------------. - * | LAlt | GUI | - * ,------|------|------| - * |BackSp|LShift| Ctrl | - * | | |------| - * |Space |Enter |OTHER | - * `--------------------' - */ -[OHLFT] = KEYMAP( -// left hand - KC_GRV ,M(KF_1) ,M(KF_2) ,M(KF_3) ,M(KF_4) ,M(KF_5) ,M(OH_BASE) -,KC_TAB ,KC_QUOT ,KC_COMM ,KC_DOT ,KC_P ,KC_Y ,KC_LBRC -,KC_MINS ,KC_A ,KC_O ,KC_E ,KC_U ,KC_I -,KC_MPLY ,KC_SCLN ,KC_Q ,KC_J ,KC_K ,KC_X ,KC_LPRN -,KC_HOME ,KC_END ,KC_DOWN ,KC_UP ,M(A_ESC) - - ,KC_TRNS ,KC_TRNS - ,KC_TRNS - ,M(OH_BSSPC),M(OH_ENTSFT),M(OH_RIGHT) - - // right hand - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - - ,KC_NO ,KC_NO - ,KC_NO - ,KC_NO ,KC_NO ,KC_NO - ), - -/* Keymap 7: One-handed, right side - * - * ,-----------------------------------------------------. - * | = F11 | 0 F10| 9 F9 | 8 F8 | 7 F7 | 6 F6 |A BSE| - * |-----------+------+------+------+------+-------------| - * | / | L | R | C | G | F | ] | - * |-----------+------+------+------+------+------| | - * | \ | S | N | T | H | D |------| - * |-----------+------+------+------+------+------| ) | - * | Stop | Z | V | W | M | B | | - * `-----------+------+------+------+------+-------------' - * | PgDn | PgUp | Right| Left | ESC | - * `-----------------------------------' - * ,-------------. - * | LAlt | GUI | - * ,------|------|------| - * |BackSp|LShift| Ctrl | - * | | |------| - * |Space |Enter |OTHER | - * `--------------------' - */ -[OHRGT] = KEYMAP( -// left hand - M(KF_11) ,M(KF_10) ,M(KF_9) ,M(KF_8) ,M(KF_7) ,M(KF_6) ,M(OH_BASE) -,KC_SLSH ,KC_L ,KC_R ,KC_C ,KC_G ,KC_F ,KC_RBRC -,KC_BSLS ,KC_S ,KC_N ,KC_T ,KC_H ,KC_D -,KC_MSTP ,KC_Z ,KC_V ,KC_W ,KC_M ,KC_B ,KC_RPRN -,KC_PGDN ,KC_PGUP ,KC_RGHT ,KC_LEFT ,M(A_ESC) - - ,KC_TRNS ,KC_TRNS - ,KC_TRNS - ,M(OH_BSSPC),M(OH_ENTSFT),M(OH_LEFT) - - // right hand - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO - - ,KC_NO ,KC_NO - ,KC_NO - ,KC_NO ,KC_NO ,KC_NO - ), - -/* Keymap 8: Steno for Plover - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | BASE | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | # | # | # | # | # | # | | # | # | # | # | # | # | # | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | T | P | H | |------| |------| | F | P | L | T | D | - * |--------+ S +------+------+------+ * | * | | * | * +------+------+------+------+--------| - * | | | K | W | R | | | | | | R | B | G | S | Z | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | A | O |------| |------| E | U | - * | | | | | | | | - * `--------------------' `--------------------' - */ - -[PLVR] = KEYMAP( -// left hand -KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, M(A_PLVR), -KC_NO, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, -KC_NO, PV_LS, PV_LT, PV_LP, PV_LH, PV_STAR, -KC_NO, PV_LS, PV_LK, PV_LW, PV_LR, PV_STAR, PV_STAR, -KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, - KC_NO, - PV_A, PV_O, KC_NO, - - // right hand - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, - PV_STAR, PV_RF, PV_RP, PV_RL, PV_RT, PV_RD, - PV_STAR, PV_STAR, PV_RR, PV_RB, PV_RG, PV_RS, PV_RZ, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, - KC_NO, - KC_NO,PV_E, PV_U - ), - -}; - -const uint16_t PROGMEM fn_actions[] = { - [F_BSE] = ACTION_LAYER_CLEAR(ON_PRESS) - ,[F_HUN] = ACTION_LAYER_INVERT(HUN, ON_PRESS) - ,[F_GUI] = ACTION_MACRO_TAP(A_GUI) - ,[F_SFT] = ACTION_MODS_ONESHOT (MOD_LSFT) - ,[F_ALT] = ACTION_MODS_ONESHOT (MOD_LALT) - ,[F_CTRL] = ACTION_MODS_ONESHOT (MOD_LCTL) -}; - -void toggle_steno(int pressed) -{ - uint8_t layer = biton32(layer_state); - - if (pressed) { - if (layer != PLVR) layer_on(PLVR); else layer_off(PLVR); - - register_code(PV_LP); - register_code(PV_LH); - register_code(PV_LR); - register_code(PV_O); - register_code(PV_RL); - register_code(PV_RG); - } else { - unregister_code(PV_LP); - unregister_code(PV_LH); - unregister_code(PV_LR); - unregister_code(PV_O); - unregister_code(PV_RL); - unregister_code(PV_RG); - } -} - -macro_t *ang_do_hun (keyrecord_t *record, uint16_t accent, uint16_t hun_char) -{ - uint8_t need_shift = 0; - uint8_t hold_shift = 0; - - if (!record->event.pressed) - return MACRO_NONE; - - layer_off (HUN); - - if (keyboard_report->mods & MOD_BIT (KC_LSFT)) { - hold_shift = 1; - need_shift = 1; - unregister_code (KC_LSFT); - } - if ((get_oneshot_mods () & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out ()) { - need_shift = 1; - hold_shift = 0; - unregister_code (KC_LSFT); - } - - clear_oneshot_mods (); - - register_code (KC_RALT); - unregister_code (KC_RALT); - if (accent == (KC_DQT)) { - register_code (KC_RSFT); - } - register_code (accent); - unregister_code (accent); - if (need_shift && accent != (KC_DQT)) { - register_code (KC_RSFT); - } else if (accent == (KC_DQT) && !need_shift) { - unregister_code (KC_RSFT); - } - register_code (hun_char); - unregister_code (hun_char); - if (need_shift || accent == (KC_DQT)) - unregister_code (KC_RSFT); - if (hold_shift) - register_code (KC_LSFT); - - return MACRO_NONE; -} - -void ang_handle_kf (keyrecord_t *record, uint8_t id) -{ - uint8_t code = id - KF_1; - - if (record->event.pressed) { - kf_timers[code] = timer_read (); - } else { - uint8_t kc; - - if (timer_elapsed (kf_timers[code]) > TAPPING_TERM) { - // Long press - kc = KC_F1 + code; - } else { - if (id == KF_11) - kc = KC_EQL; - else - kc = KC_1 + code; - } - - register_code (kc); - unregister_code (kc); - } -} - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - case A_ESC: - if (record->event.pressed) { - if ((get_oneshot_mods ()) && !has_oneshot_mods_timed_out ()) { - clear_oneshot_mods (); - } else { - register_code (KC_ESC); - } - layer_off (HUN); - } else { - unregister_code (KC_ESC); - } - break; - - case A_MPN: - if (record->event.pressed) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || - ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out())) { - int oneshot = ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out()); - - if (oneshot) - clear_oneshot_mods (); - unregister_code (KC_LSFT); - - register_code (KC_MPRV); - unregister_code (KC_MPRV); - - if (!oneshot) - register_code (KC_LSFT); - } else { - return MACRO (T(MNXT), END); - } - } - break; - - /* Hungarian layer */ - case HU_AA: - return ang_do_hun (record, KC_QUOT, KC_A); - case HU_OO: - return ang_do_hun (record, KC_QUOT, KC_O); - case HU_EE: - return ang_do_hun (record, KC_QUOT, KC_E); - case HU_UU: - return ang_do_hun (record, KC_QUOT, KC_U); - case HU_II: - return ang_do_hun (record, KC_QUOT, KC_I); - case HU_OE: - return ang_do_hun (record, KC_DQT, KC_O); - case HU_UE: - return ang_do_hun (record, KC_DQT, KC_U); - case HU_OEE: - return ang_do_hun (record, KC_EQL, KC_O); - case HU_UEE: - return ang_do_hun (record, KC_EQL, KC_U); - - /* Mouse movement */ - case A_MUL: - if (record->event.pressed) { - mousekey_on(KC_MS_UP); - mousekey_on(KC_MS_LEFT); - } else { - mousekey_off(KC_MS_UP); - mousekey_off(KC_MS_LEFT); - } - mousekey_send(); - break; - - case A_MUR: - if (record->event.pressed) { - mousekey_on(KC_MS_UP); - mousekey_on(KC_MS_RIGHT); - } else { - mousekey_off(KC_MS_UP); - mousekey_off(KC_MS_RIGHT); - } - mousekey_send(); - break; - - case A_MDL: - if (record->event.pressed) { - mousekey_on(KC_MS_DOWN); - mousekey_on(KC_MS_LEFT); - } else { - mousekey_off(KC_MS_DOWN); - mousekey_off(KC_MS_LEFT); - } - mousekey_send(); - break; - - case A_MDR: - if (record->event.pressed) { - mousekey_on(KC_MS_DOWN); - mousekey_on(KC_MS_RIGHT); - } else { - mousekey_off(KC_MS_DOWN); - mousekey_off(KC_MS_RIGHT); - } - mousekey_send(); - break; - - /* Plover base */ - case A_PLVR: - toggle_steno(record->event.pressed); - break; - - /* GUI & AppSel */ - case A_GUI: - if (record->event.pressed) { - register_code (KC_LGUI); - if (record->tap.count && !record->tap.interrupted) { - if (record->tap.count >= 2) { - register_code (KC_W); - layer_on (APPSEL); - set_oneshot_layer (APPSEL, ONESHOT_START); - } - } else { - record->tap.count = 0; - } - gui_timer = 0; - } else { - if (record->tap.count >= 2) - { - unregister_code (KC_W); - clear_oneshot_layer_state (ONESHOT_PRESSED); - } - gui_timer = timer_read (); - } - break; - - case APP_SLK: - return MACRODOWN(T(S), T(L), T(A), T(C), T(K), T(ENT), END); - - case APP_EMCS: - return MACRODOWN(T(E), T(M), T(A), T(C), T(S), T(ENT), END); - - case APP_TERM: - return MACRODOWN(T(T), T(E), T(R), T(M), T(ENT), END); - - case APP_CHRM: - return MACRODOWN(T(C), T(H), T(R), T(O), T(M), T(ENT), END); - - case APP_MSIC: - return MACRODOWN(T(R), T(H), T(Y), T(T), T(H), T(M), T(B), T(O), T(X), T(ENT), END); - - /* Function keys */ - case KF_1 ... KF_11: - ang_handle_kf (record, id); - break; - - /* 1HAND layout */ - case OH_BASE: - if (record->event.pressed) { - oh_base_timer = timer_read (); - } else { - if (timer_elapsed (oh_base_timer) > TAPPING_TERM) { - layer_clear (); - } else { - return MACRO (T(APP), END); - } - } - break; - - case OH_BSSPC: - if (record->event.pressed) { - oh_bsspc_timer = timer_read (); - } else { - if (timer_elapsed (oh_bsspc_timer) > TAPPING_TERM) { - return MACRO (T(BSPC), END); - } else { - return MACRO (T(SPC), END); - } - } - break; - - case OH_ENTSFT: - if (record->event.pressed) { - oh_entsft_timer = timer_read (); - } else { - if (timer_elapsed (oh_entsft_timer) > TAPPING_TERM) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT)) - unregister_code (KC_LSFT); - else - register_code (KC_LSFT); - } else { - return MACRO (T(ENT), END); - } - } - break; - - case OH_LEFT: - if (record->event.pressed) { - layer_move (OHLFT); - oh_left_blink = 1; - oh_left_blink_timer = timer_read (); - ergodox_right_led_1_on (); - } - break; - - case OH_RIGHT: - if (record->event.pressed) { - layer_move (OHRGT); - oh_right_blink = 1; - oh_right_blink_timer = timer_read (); - ergodox_right_led_3_on (); - } - break; - } - return MACRO_NONE; -}; - -uint8_t is_adore = 0; - -// Runs just one time when the keyboard initializes. -void matrix_init_user(void) { - uint8_t dl; - - ergodox_led_all_on(); - for (int i = LED_BRIGHTNESS_HI; i > LED_BRIGHTNESS_LO; i--) { - ergodox_led_all_set (i); - _delay_ms (5); - } - _delay_ms(1000); - for (int i = LED_BRIGHTNESS_LO; i > 0; i--) { - ergodox_led_all_set (i); - _delay_ms (10); - } - ergodox_led_all_off(); - - if (!eeconfig_is_enabled()) - eeconfig_init(); - dl = eeconfig_read_default_layer (); - if (dl == (1UL << ADORE)) - is_adore = 1; -}; - -LEADER_EXTERNS(); - -void ang_do_unicode (void) { - register_code (KC_RCTL); - register_code (KC_RSFT); - register_code (KC_U); - unregister_code (KC_U); - unregister_code (KC_RSFT); - unregister_code (KC_RCTL); - _delay_ms (100); -} - -void ang_tap (uint16_t codes[]) { - for (int i = 0; codes[i] != 0; i++) { - register_code (codes[i]); - unregister_code (codes[i]); - _delay_ms (50); - } -} - -#define TAP_ONCE(code) \ - register_code (code); \ - unregister_code (code) - -void ang_tap_dance_cln_finished (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - register_code (KC_RSFT); - register_code (KC_SCLN); - } else if (state->count == 2) { - register_code (KC_SCLN); - } -} - -void ang_tap_dance_cln_reset (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - unregister_code (KC_SCLN); - unregister_code (KC_RSFT); - } else if (state->count == 2) { - unregister_code (KC_SCLN); - } -} - -void ang_tap_dance_mns_finished (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - register_code (KC_MINS); - } else if (state->count == 2) { - register_code (KC_RSFT); - register_code (KC_MINS); - } -} - -void ang_tap_dance_mns_reset (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - unregister_code (KC_MINS); - } else if (state->count == 2) { - unregister_code (KC_RSFT); - unregister_code (KC_MINS); - } -} - -typedef struct { - bool layer_toggle; - bool sticky; - bool finished_once; -} td_ta_state_t; - -void ang_tap_dance_ta_finished (qk_tap_dance_state_t *state, void *user_data) { - td_ta_state_t *td_ta = (td_ta_state_t *) user_data; - - if (td_ta->finished_once) { - return; - } - - if (td_ta->sticky) { - td_ta->sticky = false; - td_ta->layer_toggle = false; - layer_off (ARRW); - return; - } - - td_ta->finished_once = true; - if (state->count == 1 && !state->pressed) { - register_code (KC_TAB); - td_ta->sticky = false; - td_ta->layer_toggle = false; - } else { - td_ta->layer_toggle = true; - layer_on (ARRW); - td_ta->sticky = (state->count == 2); - } -} - -void ang_tap_dance_ta_reset (qk_tap_dance_state_t *state, void *user_data) { - td_ta_state_t *td_ta = (td_ta_state_t *) user_data; - - if (!td_ta->layer_toggle) - unregister_code (KC_TAB); - if (!td_ta->sticky) - layer_off (ARRW); - - td_ta->finished_once = false; -} - -const qk_tap_dance_action_t tap_dance_actions[] = { - [CT_CLN] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, ang_tap_dance_cln_finished, ang_tap_dance_cln_reset) - ,[CT_MNS] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, ang_tap_dance_mns_finished, ang_tap_dance_mns_reset) - ,[CT_TA] = { - .fn = { NULL, ang_tap_dance_ta_finished, ang_tap_dance_ta_reset }, - .user_data = (void *)&((td_ta_state_t) { false, false, false }) - } -}; - -// Runs constantly in the background, in a loop. -void matrix_scan_user(void) { - uint8_t layer = biton32(layer_state); - - if (gui_timer && timer_elapsed (gui_timer) > TAPPING_TERM) - unregister_code (KC_LGUI); - - if (layer != OHLFT) - oh_left_blink = 0; - if (layer != OHRGT) - oh_right_blink = 0; - - if (layer == HUN) { - ergodox_right_led_2_on(); - ergodox_right_led_3_on(); - } else if (layer == NMDIA) { - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); - } else if (layer == PLVR) { - ergodox_right_led_1_on (); - ergodox_right_led_2_on (); - ergodox_right_led_3_on (); - } else if (layer == ADORE) { - ergodox_right_led_1_on (); - ergodox_right_led_2_on (); - ergodox_right_led_3_on (); - - ergodox_right_led_2_set (LED_BRIGHTNESS_HI); - } - - if (layer == OHLFT || layer == OHRGT) { - ergodox_right_led_2_on(); - - if (oh_left_blink) { - if (timer_elapsed (oh_left_blink_timer) > OH_BLINK_INTERVAL) { - if ((keyboard_report->mods & MOD_BIT(KC_LSFT)) == 0) - ergodox_right_led_1_off (); - } - if (timer_elapsed (oh_left_blink_timer) > OH_BLINK_INTERVAL * 2) { - ergodox_right_led_1_on (); - oh_left_blink_timer = timer_read (); - } - } - - if (oh_right_blink) { - if (timer_elapsed (oh_right_blink_timer) > OH_BLINK_INTERVAL) { - if ((keyboard_report->mods & MOD_BIT(KC_LCTRL)) == 0) - ergodox_right_led_3_off (); - } - if (timer_elapsed (oh_right_blink_timer) > OH_BLINK_INTERVAL * 2) { - ergodox_right_led_3_on (); - oh_right_blink_timer = timer_read (); - } - } - } - - if (keyboard_report->mods & MOD_BIT(KC_LSFT) || - ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out())) { - ergodox_right_led_1_set (LED_BRIGHTNESS_HI); - ergodox_right_led_1_on (); - } else { - ergodox_right_led_1_set (LED_BRIGHTNESS_LO); - if (layer != OHLFT && layer != NMDIA && layer != PLVR && layer != ADORE) - ergodox_right_led_1_off (); - } - - if (keyboard_report->mods & MOD_BIT(KC_LALT) || - ((get_oneshot_mods() & MOD_BIT(KC_LALT)) && !has_oneshot_mods_timed_out())) { - ergodox_right_led_2_set (LED_BRIGHTNESS_HI); - ergodox_right_led_2_on (); - } else { - ergodox_right_led_2_set (LED_BRIGHTNESS_LO); - if (layer != OHRGT && layer != HUN && layer != OHLFT && layer != NMDIA && layer != PLVR && layer != ADORE) - ergodox_right_led_2_off (); - } - - if (keyboard_report->mods & MOD_BIT(KC_LCTRL) || - ((get_oneshot_mods() & MOD_BIT(KC_LCTRL)) && !has_oneshot_mods_timed_out())) { - ergodox_right_led_3_set (LED_BRIGHTNESS_HI); - ergodox_right_led_3_on (); - } else { - ergodox_right_led_3_set (LED_BRIGHTNESS_LO); - if (layer != OHRGT && layer != HUN && layer != PLVR && layer != ADORE) - ergodox_right_led_3_off (); - } - - LEADER_DICTIONARY() { - leading = false; - leader_end (); - -#if KEYLOGGER_ENABLE - SEQ_ONE_KEY (KC_D) { - ergodox_led_all_on(); - _delay_ms(100); - ergodox_led_all_off(); - log_enable = !log_enable; - } -#endif - - SEQ_ONE_KEY (KC_T) { - time_travel = !time_travel; - } - - SEQ_ONE_KEY (KC_U) { - ang_do_unicode (); - } - - SEQ_ONE_KEY (KC_V) { - SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ (" QMK_VERSION "/" KEYMAP_VERSION ")"); - } - - SEQ_ONE_KEY (KC_L) { - /* λ */ - ang_do_unicode (); - - uint16_t codes[] = {KC_0, KC_3, KC_B, KC_B, KC_ENT, 0}; - ang_tap (codes); - } - - SEQ_ONE_KEY (KC_Y) { - uint16_t codes[] = {KC_BSLS, KC_O, KC_SLSH, 0}; - ang_tap (codes); - } - - SEQ_ONE_KEY (KC_S) { - ang_do_unicode (); TAP_ONCE (KC_A); TAP_ONCE (KC_F); TAP_ONCE (KC_SPC); - TAP_ONCE (KC_BSLS); - register_code (KC_RSFT); TAP_ONCE (KC_MINS); TAP_ONCE (KC_9); unregister_code (KC_RSFT); - ang_do_unicode (); TAP_ONCE (KC_3); TAP_ONCE (KC_0); TAP_ONCE (KC_C); TAP_ONCE (KC_4); TAP_ONCE (KC_SPC); - register_code (KC_RSFT); TAP_ONCE (KC_0); TAP_ONCE (KC_MINS); unregister_code (KC_RSFT); - TAP_ONCE (KC_SLSH); - ang_do_unicode (); TAP_ONCE (KC_A); TAP_ONCE (KC_F); TAP_ONCE (KC_SPC); - } - - SEQ_TWO_KEYS (KC_W, KC_M) { - register_code (KC_LALT); - register_code (KC_F2); - unregister_code (KC_F2); - unregister_code (KC_LALT); - - _delay_ms (1000); - - uint16_t codes[] = {KC_M, KC_A, KC_X, KC_MINS, KC_F, KC_O, KC_C, KC_U, KC_S, KC_E, KC_D, KC_ENT, 0}; - ang_tap (codes); - register_code (KC_LGUI); - register_code (KC_UP); - unregister_code (KC_UP); - unregister_code (KC_LGUI); - } - - SEQ_ONE_KEY (KC_A) { - if (is_adore == 0) { - default_layer_and (0); - default_layer_or ((1UL << ADORE)); - eeconfig_update_default_layer ((1UL << ADORE)); - is_adore = 1; - - ergodox_led_all_off (); - ergodox_right_led_3_on (); - _delay_ms (100); - ergodox_right_led_2_on (); - _delay_ms (100); - ergodox_right_led_3_off (); - ergodox_right_led_1_on (); - _delay_ms (100); - ergodox_right_led_2_off (); - _delay_ms (100); - ergodox_right_led_1_off (); - } else { - is_adore = 0; - default_layer_and (0); - default_layer_or (1UL << BASE); - eeconfig_update_default_layer ((1UL << BASE)); - - ergodox_led_all_off (); - ergodox_right_led_1_on (); - _delay_ms (100); - ergodox_right_led_2_on (); - _delay_ms (100); - ergodox_right_led_1_off (); - ergodox_right_led_3_on (); - _delay_ms (100); - ergodox_right_led_2_off (); - _delay_ms (100); - ergodox_right_led_3_off (); - } - } - } -} - -static uint16_t last4[4]; - -bool process_record_user (uint16_t keycode, keyrecord_t *record) { -#if KEYLOGGER_ENABLE - uint8_t layer = biton32(layer_state); - - if (log_enable && layer == BASE) { - xprintf ("KL: col=%d, row=%d\n", record->event.key.col, - record->event.key.row); - } -#endif - - if (time_travel && !record->event.pressed) { - uint8_t p; - - // shift cache one to the left - for (p = 0; p < 3; p++) { - last4[p] = last4[p + 1]; - } - last4[3] = keycode; - - if (last4[0] == KC_D && last4[1] == KC_A && last4[2] == KC_T && last4[3] == KC_E) { - uint16_t codes[] = {KC_E, KC_SPC, KC_MINS, KC_D, KC_SPC, KC_QUOT, 0}; - ang_tap (codes); - register_code (KC_RSFT); - register_code (KC_EQL); - unregister_code (KC_EQL); - unregister_code (KC_RSFT); - - uint16_t codes2[] = {KC_4, KC_SPC, KC_D, KC_A, KC_Y, KC_S, KC_QUOT, 0}; - ang_tap (codes2); - - return false; - } - } - - return true; -} +/* + * algernon's ErgoDox EZ layout, please see the readme.md file! + */ + +#include "ergodox.h" +#include "led.h" +#include "debug.h" +#include "action_layer.h" +#include "action_util.h" +#include "mousekey.h" +#include "timer.h" +#include "keymap_plover.h" +#include "eeconfig.h" +#include "wait.h" + +/* Layers */ + +enum { + BASE = 0, + ADORE, + ARRW, + APPSEL, + HUN, + NMDIA, + OHLFT, + OHRGT, + PLVR, +}; + +/* Macros */ + +enum { + NONE = 0, + // Buttons that do extra stuff + A_GUI, + A_PLVR, + A_ESC, + A_MPN, + + // Function / number keys + KF_1, // 1, F1 + KF_2, // 2, F2 + KF_3, // ... + KF_4, + KF_5, + KF_6, + KF_7, + KF_8, + KF_9, + KF_10, + KF_11, // =, F11 + + // Application select keys + APP_SLK, // Slack + APP_EMCS, // Emacs + APP_TERM, // Terminal + APP_CHRM, // Chrome + APP_MSIC, // Music + + // Diagonal mouse movement + A_MUL, + A_MUR, + A_MDL, + A_MDR, + + // Hungarian layer keys + HU_AA, // Á + HU_OO, // Ó + HU_EE, // É + HU_UU, // Ú + HU_II, // Í + HU_OE, // Ö + HU_UE, // Ü + HU_OEE, // Ő + HU_UEE, // Ű + + // One-handed layout specials + OH_BSSPC, + OH_ENTSFT, + OH_BASE, + OH_LEFT, + OH_RIGHT, +}; + +/* Fn keys */ + +enum { + F_BSE = 0, + F_HUN, + F_GUI, + F_SFT, + F_ALT, + F_CTRL +}; + +/* Custom keycodes */ + +enum { + CT_CLN = 0, + CT_MNS, + CT_TA, +}; + +/* States & timers */ + +uint16_t gui_timer = 0; + +uint16_t kf_timers[12]; + +uint16_t oh_base_timer = 0; +uint16_t oh_bsspc_timer = 0; +uint16_t oh_entsft_timer = 0; + +#define OH_BLINK_INTERVAL 500 + +uint8_t oh_left_blink = 0; +uint16_t oh_left_blink_timer = 0; +uint8_t oh_right_blink = 0; +uint16_t oh_right_blink_timer = 0; + +#if KEYLOGGER_ENABLE +bool log_enable = false; +#endif + +bool time_travel = false; + +/* The Keymap */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Keymap 0: Base Layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | `~ | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 | Plvr | | Apps | 6 F6 | 7 F7 | 8 F8 | 9 F9 | 0 F10| F11 | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | Next/Prev | ' | , | . | P | Y | [ | | ] | F | G | C | R | L | \ | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | Tab/ARROW | A | O | E | U | I |------| |------| D | H | T | N | S | = / Arrow | + * |-----------+------+------+------+------+------| ( | | ) |------+------+------+------+------+-----------| + * | Play/Pause| / | Q | J | K | X | | | | B | M | W | V | Z | Stop | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | : | | - | | | | | + * `-----------------------------------' `-----------------------------------' + * ,-------------. ,-------------. + * | LAlt | GUI | | MDIA | 1HND | + * ,------|------|------| |------+------+------. + * | | | Ctrl | | LEAD | | | + * |Backsp|LShift|------| |------| Enter| Space| + * | | | ESC | | HUN | | | + * `--------------------' `--------------------' + */ +[BASE] = KEYMAP( +// left hand + KC_GRV ,M(KF_1) ,M(KF_2) ,M(KF_3),M(KF_4),M(KF_5),M(A_PLVR) +,M(A_MPN) ,KC_QUOT ,KC_COMM ,KC_DOT ,KC_P ,KC_Y ,KC_LBRC +,TD(CT_TA) ,KC_A ,KC_O ,KC_E ,KC_U ,KC_I +,KC_MPLY ,KC_SLSH ,KC_Q ,KC_J ,KC_K ,KC_X ,KC_LPRN +,KC_NO ,KC_NO ,KC_NO ,KC_NO ,TD(CT_CLN) + + ,F(F_ALT),F(F_GUI) + ,F(F_CTRL) + ,KC_BSPC,F(F_SFT),M(A_ESC) + + // right hand + ,KC_APP ,M(KF_6),M(KF_7) ,M(KF_8),M(KF_9) ,M(KF_10) ,KC_F11 + ,KC_RBRC ,KC_F ,KC_G ,KC_C ,KC_R ,KC_L ,KC_BSLS + ,KC_D ,KC_H ,KC_T ,KC_N ,KC_S ,KC_EQL + ,KC_RPRN ,KC_B ,KC_M ,KC_W ,KC_V ,KC_Z ,KC_MSTP + ,TD(CT_MNS),KC_NO ,KC_NO ,KC_NO ,KC_NO + + ,OSL(NMDIA),M(OH_LEFT) + ,KC_LEAD + ,F(F_HUN) ,KC_ENT ,KC_SPC + ), + +/* Keymap 1: Adore layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | `~ | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 | Plvr | | Apps | 6 F6 | 7 F7 | 8 F8 | 9 F9 | 0 F10| F11 | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | Next/Prev | , | . | L | W | M | [ | | ] | F | H | C | P | Y | \ | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | Tab/Arrow | A | O | E | I | U |------| |------| D | R | T | N | S | = / Arrow | + * |-----------+------+------+------+------+------| ( | | ) |------+------+------+------+------+-----------| + * | Play/Pause| / | Z | ' | K | X | | | | B | G | V | J | Q | Stop | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | : | | - | | | | | + * `-----------------------------------' `-----------------------------------' + * ,-------------. ,-------------. + * | LAlt | GUI | | MDIA | 1HND | + * ,------|------|------| |------+------+------. + * | | | Ctrl | | LEAD | | | + * |Backsp|LShift|------| |------| Enter| Space| + * | | | ESC | | HUN | | | + * `--------------------' `--------------------' + */ +[ADORE] = KEYMAP( +// left hand + KC_GRV ,M(KF_1) ,M(KF_2) ,M(KF_3),M(KF_4),M(KF_5),M(A_PLVR) +,M(A_MPN) ,KC_COMM ,KC_DOT ,KC_L ,KC_W ,KC_M ,KC_LBRC +,TD(CT_TA) ,KC_A ,KC_O ,KC_E ,KC_I ,KC_U +,KC_MPLY ,KC_SLSH ,KC_Z ,KC_QUOT,KC_K ,KC_X ,KC_LPRN +,KC_NO ,KC_NO ,KC_NO ,KC_NO ,TD(CT_CLN) + + ,F(F_ALT),F(F_GUI) + ,F(F_CTRL) + ,KC_BSPC,F(F_SFT),M(A_ESC) + + // right hand + ,KC_APP ,M(KF_6),M(KF_7) ,M(KF_8),M(KF_9) ,M(KF_10) ,KC_F11 + ,KC_RBRC ,KC_F ,KC_H ,KC_C ,KC_P ,KC_Y ,KC_BSLS + ,KC_D ,KC_R ,KC_T ,KC_N ,KC_S ,KC_EQL + ,KC_RPRN ,KC_B ,KC_G ,KC_V ,KC_J ,KC_Q ,KC_MSTP + ,TD(CT_MNS),KC_NO ,KC_NO ,KC_NO ,KC_NO + + ,OSL(NMDIA),M(OH_LEFT) + ,KC_LEAD + ,F(F_HUN) ,KC_ENT ,KC_SPC + ), + +/* Keymap 2: Arrow layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | | | | | | | | | | | Home | Up | End | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | |------| |------| | Left | Down | Rght | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | | | | | | | | | | | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| PgUp | PgDn | + * | | | | | | | | + * `--------------------' `--------------------' + */ + +[ARRW] = 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 ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,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_HOME ,KC_UP ,KC_END ,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_PGUP ,KC_PGDN + ), + +/* Keymap 3: Application select layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | |Music |Slack |Emacs |Term |Chrome| | | | | | | | | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | | | | | | | | | | | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | |------| |------| | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | | | | | | | | | | | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ + +[APPSEL] = KEYMAP( +// left hand + KC_TRNS ,M(APP_MSIC),M(APP_SLK),M(APP_EMCS),M(APP_TERM),M(APP_CHRM),KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,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_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,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 4: Hungarian Layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | | | Ő | | Ű | | | | | | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | Á | Ó | É | Ú | Í |------| |------| | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | Ö | | Ü | | | | | | | | | | | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | BASE | | | + * `--------------------' `--------------------' + */ + +[HUN] = KEYMAP( +// left hand + KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO +,KC_NO ,KC_NO ,M(HU_OEE),KC_NO ,M(HU_UEE),KC_NO ,KC_NO +,KC_NO ,M(HU_AA),M(HU_OO) ,M(HU_EE),M(HU_UU) ,M(HU_II) +,KC_NO ,KC_NO ,M(HU_OE) ,KC_NO ,M(HU_UE) ,KC_NO ,KC_NO +,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + + ,KC_NO ,KC_NO + ,KC_NO + ,KC_NO ,KC_TRNS ,KC_TRNS + + // right hand + ,KC_TRNS ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + + ,KC_NO ,KC_NO + ,KC_NO + ,F(F_BSE),KC_TRNS ,KC_TRNS + ), + +/* Keymap 5: Navigation & Media layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | MS Slow | | | | | |ScrLCK| |ScrLCK| | | | | | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | MS Normal | | Home | Up | PgUp | | | |Scroll| |MsUpL | MsUp |MsUpR | |PrintScreen| + * |-----------+------+------+------+------+------| | | Up |------+------+------+------+------+-----------| + * | MS Fast | | Left | Down | Right| |------| |------| |MsLeft| MsDn |MsRght| | | + * |-----------+------+------+------+------+------| | |Scroll|------+------+------+------+------+-----------| + * | Play/Pause| | End | Down | PgDn | | | | Down | |MsDnL | MsDn |MsDnR | | Stop | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Mute | VlUp | | BASE | MClk | + * ,------|------|------| |------+------+------. + * | | | VlDn | | Prev |Left |Right | + * | SPC | Enter|------| |------| Click| Click| + * | | | ESC | | Next | | | + * `--------------------' `--------------------' + */ +[NMDIA] = KEYMAP( +// left hand + KC_ACL0 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,LGUI(KC_L) +,KC_ACL1 ,KC_NO ,KC_HOME ,KC_UP ,KC_PGUP ,KC_NO ,KC_NO +,KC_ACL2 ,KC_NO ,KC_LEFT ,KC_DOWN ,KC_RIGHT,KC_NO +,KC_MPLY ,KC_NO ,KC_END ,KC_DOWN ,KC_PGDN ,KC_NO ,KC_NO +,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_MUTE ,KC_VOLU + ,KC_VOLD + ,KC_SPC,KC_ENTER,M(A_ESC) + + // right hand + ,LGUI(KC_L),KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_WH_U ,KC_NO ,M(A_MUL),KC_MS_U ,M(A_MUR),KC_NO ,KC_PSCR + ,KC_NO ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_NO ,KC_NO + ,KC_WH_D ,KC_NO ,M(A_MDL),KC_MS_D ,M(A_MDR),KC_NO ,KC_MSTP + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + + ,KC_TRNS ,KC_MS_BTN3 + ,KC_MPRV + ,KC_MNXT ,KC_BTN1 ,KC_BTN2 + ), + +/* Keymap 6: One-handed, left side + * + * ,-----------------------------------------------------. + * | `~ | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 |A BSE| + * |-----------+------+------+------+------+-------------| + * | Tab | ' | , | . | P | Y | [ | + * |-----------+------+------+------+------+------| | + * | - | A | O | E | U | I |------| + * |-----------+------+------+------+------+------| ( | + * | Play/Pause| ; | Q | J | K | X | | + * `-----------+------+------+------+------+-------------' + * | Home | End | Down | Up | ESC | + * `-----------------------------------' + * ,-------------. + * | LAlt | GUI | + * ,------|------|------| + * |BackSp|LShift| Ctrl | + * | | |------| + * |Space |Enter |OTHER | + * `--------------------' + */ +[OHLFT] = KEYMAP( +// left hand + KC_GRV ,M(KF_1) ,M(KF_2) ,M(KF_3) ,M(KF_4) ,M(KF_5) ,M(OH_BASE) +,KC_TAB ,KC_QUOT ,KC_COMM ,KC_DOT ,KC_P ,KC_Y ,KC_LBRC +,KC_MINS ,KC_A ,KC_O ,KC_E ,KC_U ,KC_I +,KC_MPLY ,KC_SCLN ,KC_Q ,KC_J ,KC_K ,KC_X ,KC_LPRN +,KC_HOME ,KC_END ,KC_DOWN ,KC_UP ,M(A_ESC) + + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,M(OH_BSSPC),M(OH_ENTSFT),M(OH_RIGHT) + + // right hand + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + + ,KC_NO ,KC_NO + ,KC_NO + ,KC_NO ,KC_NO ,KC_NO + ), + +/* Keymap 7: One-handed, right side + * + * ,-----------------------------------------------------. + * | = F11 | 0 F10| 9 F9 | 8 F8 | 7 F7 | 6 F6 |A BSE| + * |-----------+------+------+------+------+-------------| + * | / | L | R | C | G | F | ] | + * |-----------+------+------+------+------+------| | + * | \ | S | N | T | H | D |------| + * |-----------+------+------+------+------+------| ) | + * | Stop | Z | V | W | M | B | | + * `-----------+------+------+------+------+-------------' + * | PgDn | PgUp | Right| Left | ESC | + * `-----------------------------------' + * ,-------------. + * | LAlt | GUI | + * ,------|------|------| + * |BackSp|LShift| Ctrl | + * | | |------| + * |Space |Enter |OTHER | + * `--------------------' + */ +[OHRGT] = KEYMAP( +// left hand + M(KF_11) ,M(KF_10) ,M(KF_9) ,M(KF_8) ,M(KF_7) ,M(KF_6) ,M(OH_BASE) +,KC_SLSH ,KC_L ,KC_R ,KC_C ,KC_G ,KC_F ,KC_RBRC +,KC_BSLS ,KC_S ,KC_N ,KC_T ,KC_H ,KC_D +,KC_MSTP ,KC_Z ,KC_V ,KC_W ,KC_M ,KC_B ,KC_RPRN +,KC_PGDN ,KC_PGUP ,KC_RGHT ,KC_LEFT ,M(A_ESC) + + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,M(OH_BSSPC),M(OH_ENTSFT),M(OH_LEFT) + + // right hand + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + + ,KC_NO ,KC_NO + ,KC_NO + ,KC_NO ,KC_NO ,KC_NO + ), + +/* Keymap 8: Steno for Plover + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | BASE | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | # | # | # | # | # | # | | # | # | # | # | # | # | # | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | T | P | H | |------| |------| | F | P | L | T | D | + * |--------+ S +------+------+------+ * | * | | * | * +------+------+------+------+--------| + * | | | K | W | R | | | | | | R | B | G | S | Z | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | A | O |------| |------| E | U | + * | | | | | | | | + * `--------------------' `--------------------' + */ + +[PLVR] = KEYMAP( +// left hand +KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, M(A_PLVR), +KC_NO, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, +KC_NO, PV_LS, PV_LT, PV_LP, PV_LH, PV_STAR, +KC_NO, PV_LS, PV_LK, PV_LW, PV_LR, PV_STAR, PV_STAR, +KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, + KC_NO, + PV_A, PV_O, KC_NO, + + // right hand + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, + PV_STAR, PV_RF, PV_RP, PV_RL, PV_RT, PV_RD, + PV_STAR, PV_STAR, PV_RR, PV_RB, PV_RG, PV_RS, PV_RZ, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, + KC_NO, + KC_NO,PV_E, PV_U + ), + +}; + +const uint16_t PROGMEM fn_actions[] = { + [F_BSE] = ACTION_LAYER_CLEAR(ON_PRESS) + ,[F_HUN] = ACTION_LAYER_INVERT(HUN, ON_PRESS) + ,[F_GUI] = ACTION_MACRO_TAP(A_GUI) + ,[F_SFT] = ACTION_MODS_ONESHOT (MOD_LSFT) + ,[F_ALT] = ACTION_MODS_ONESHOT (MOD_LALT) + ,[F_CTRL] = ACTION_MODS_ONESHOT (MOD_LCTL) +}; + +void toggle_steno(int pressed) +{ + uint8_t layer = biton32(layer_state); + + if (pressed) { + if (layer != PLVR) layer_on(PLVR); else layer_off(PLVR); + + register_code(PV_LP); + register_code(PV_LH); + register_code(PV_LR); + register_code(PV_O); + register_code(PV_RL); + register_code(PV_RG); + } else { + unregister_code(PV_LP); + unregister_code(PV_LH); + unregister_code(PV_LR); + unregister_code(PV_O); + unregister_code(PV_RL); + unregister_code(PV_RG); + } +} + +macro_t *ang_do_hun (keyrecord_t *record, uint16_t accent, uint16_t hun_char) +{ + uint8_t need_shift = 0; + uint8_t hold_shift = 0; + + if (!record->event.pressed) + return MACRO_NONE; + + layer_off (HUN); + + if (keyboard_report->mods & MOD_BIT (KC_LSFT)) { + hold_shift = 1; + need_shift = 1; + unregister_code (KC_LSFT); + } + if ((get_oneshot_mods () & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out ()) { + need_shift = 1; + hold_shift = 0; + unregister_code (KC_LSFT); + } + + clear_oneshot_mods (); + + register_code (KC_RALT); + unregister_code (KC_RALT); + if (accent == (KC_DQT)) { + register_code (KC_RSFT); + } + register_code (accent); + unregister_code (accent); + if (need_shift && accent != (KC_DQT)) { + register_code (KC_RSFT); + } else if (accent == (KC_DQT) && !need_shift) { + unregister_code (KC_RSFT); + } + register_code (hun_char); + unregister_code (hun_char); + if (need_shift || accent == (KC_DQT)) + unregister_code (KC_RSFT); + if (hold_shift) + register_code (KC_LSFT); + + return MACRO_NONE; +} + +void ang_handle_kf (keyrecord_t *record, uint8_t id) +{ + uint8_t code = id - KF_1; + + if (record->event.pressed) { + kf_timers[code] = timer_read (); + } else { + uint8_t kc; + + if (timer_elapsed (kf_timers[code]) > TAPPING_TERM) { + // Long press + kc = KC_F1 + code; + } else { + if (id == KF_11) + kc = KC_EQL; + else + kc = KC_1 + code; + } + + register_code (kc); + unregister_code (kc); + } +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case A_ESC: + if (record->event.pressed) { + if ((get_oneshot_mods ()) && !has_oneshot_mods_timed_out ()) { + clear_oneshot_mods (); + } else { + register_code (KC_ESC); + } + layer_off (HUN); + } else { + unregister_code (KC_ESC); + } + break; + + case A_MPN: + if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || + ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out())) { + int oneshot = ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out()); + + if (oneshot) + clear_oneshot_mods (); + unregister_code (KC_LSFT); + + register_code (KC_MPRV); + unregister_code (KC_MPRV); + + if (!oneshot) + register_code (KC_LSFT); + } else { + return MACRO (T(MNXT), END); + } + } + break; + + /* Hungarian layer */ + case HU_AA: + return ang_do_hun (record, KC_QUOT, KC_A); + case HU_OO: + return ang_do_hun (record, KC_QUOT, KC_O); + case HU_EE: + return ang_do_hun (record, KC_QUOT, KC_E); + case HU_UU: + return ang_do_hun (record, KC_QUOT, KC_U); + case HU_II: + return ang_do_hun (record, KC_QUOT, KC_I); + case HU_OE: + return ang_do_hun (record, KC_DQT, KC_O); + case HU_UE: + return ang_do_hun (record, KC_DQT, KC_U); + case HU_OEE: + return ang_do_hun (record, KC_EQL, KC_O); + case HU_UEE: + return ang_do_hun (record, KC_EQL, KC_U); + + /* Mouse movement */ + case A_MUL: + if (record->event.pressed) { + mousekey_on(KC_MS_UP); + mousekey_on(KC_MS_LEFT); + } else { + mousekey_off(KC_MS_UP); + mousekey_off(KC_MS_LEFT); + } + mousekey_send(); + break; + + case A_MUR: + if (record->event.pressed) { + mousekey_on(KC_MS_UP); + mousekey_on(KC_MS_RIGHT); + } else { + mousekey_off(KC_MS_UP); + mousekey_off(KC_MS_RIGHT); + } + mousekey_send(); + break; + + case A_MDL: + if (record->event.pressed) { + mousekey_on(KC_MS_DOWN); + mousekey_on(KC_MS_LEFT); + } else { + mousekey_off(KC_MS_DOWN); + mousekey_off(KC_MS_LEFT); + } + mousekey_send(); + break; + + case A_MDR: + if (record->event.pressed) { + mousekey_on(KC_MS_DOWN); + mousekey_on(KC_MS_RIGHT); + } else { + mousekey_off(KC_MS_DOWN); + mousekey_off(KC_MS_RIGHT); + } + mousekey_send(); + break; + + /* Plover base */ + case A_PLVR: + toggle_steno(record->event.pressed); + break; + + /* GUI & AppSel */ + case A_GUI: + if (record->event.pressed) { + register_code (KC_LGUI); + if (record->tap.count && !record->tap.interrupted) { + if (record->tap.count >= 2) { + register_code (KC_W); + layer_on (APPSEL); + set_oneshot_layer (APPSEL, ONESHOT_START); + } + } else { + record->tap.count = 0; + } + gui_timer = 0; + } else { + if (record->tap.count >= 2) + { + unregister_code (KC_W); + clear_oneshot_layer_state (ONESHOT_PRESSED); + } + gui_timer = timer_read (); + } + break; + + case APP_SLK: + return MACRODOWN(T(S), T(L), T(A), T(C), T(K), T(ENT), END); + + case APP_EMCS: + return MACRODOWN(T(E), T(M), T(A), T(C), T(S), T(ENT), END); + + case APP_TERM: + return MACRODOWN(T(T), T(E), T(R), T(M), T(ENT), END); + + case APP_CHRM: + return MACRODOWN(T(C), T(H), T(R), T(O), T(M), T(ENT), END); + + case APP_MSIC: + return MACRODOWN(T(R), T(H), T(Y), T(T), T(H), T(M), T(B), T(O), T(X), T(ENT), END); + + /* Function keys */ + case KF_1 ... KF_11: + ang_handle_kf (record, id); + break; + + /* 1HAND layout */ + case OH_BASE: + if (record->event.pressed) { + oh_base_timer = timer_read (); + } else { + if (timer_elapsed (oh_base_timer) > TAPPING_TERM) { + layer_clear (); + } else { + return MACRO (T(APP), END); + } + } + break; + + case OH_BSSPC: + if (record->event.pressed) { + oh_bsspc_timer = timer_read (); + } else { + if (timer_elapsed (oh_bsspc_timer) > TAPPING_TERM) { + return MACRO (T(BSPC), END); + } else { + return MACRO (T(SPC), END); + } + } + break; + + case OH_ENTSFT: + if (record->event.pressed) { + oh_entsft_timer = timer_read (); + } else { + if (timer_elapsed (oh_entsft_timer) > TAPPING_TERM) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT)) + unregister_code (KC_LSFT); + else + register_code (KC_LSFT); + } else { + return MACRO (T(ENT), END); + } + } + break; + + case OH_LEFT: + if (record->event.pressed) { + layer_move (OHLFT); + oh_left_blink = 1; + oh_left_blink_timer = timer_read (); + ergodox_right_led_1_on (); + } + break; + + case OH_RIGHT: + if (record->event.pressed) { + layer_move (OHRGT); + oh_right_blink = 1; + oh_right_blink_timer = timer_read (); + ergodox_right_led_3_on (); + } + break; + } + return MACRO_NONE; +}; + +uint8_t is_adore = 0; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + uint8_t dl; + + ergodox_led_all_on(); + for (int i = LED_BRIGHTNESS_HI; i > LED_BRIGHTNESS_LO; i--) { + ergodox_led_all_set (i); + wait_ms (5); + } + wait_ms(1000); + for (int i = LED_BRIGHTNESS_LO; i > 0; i--) { + ergodox_led_all_set (i); + wait_ms (10); + } + ergodox_led_all_off(); + + if (!eeconfig_is_enabled()) + eeconfig_init(); + dl = eeconfig_read_default_layer (); + if (dl == (1UL << ADORE)) + is_adore = 1; +}; + +LEADER_EXTERNS(); + +void ang_do_unicode (void) { + register_code (KC_RCTL); + register_code (KC_RSFT); + register_code (KC_U); + unregister_code (KC_U); + unregister_code (KC_RSFT); + unregister_code (KC_RCTL); + wait_ms (100); +} + +void ang_tap (uint16_t codes[]) { + for (int i = 0; codes[i] != 0; i++) { + register_code (codes[i]); + unregister_code (codes[i]); + wait_ms (50); + } +} + +#define TAP_ONCE(code) \ + register_code (code); \ + unregister_code (code) + +void ang_tap_dance_cln_finished (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + register_code (KC_RSFT); + register_code (KC_SCLN); + } else if (state->count == 2) { + register_code (KC_SCLN); + } +} + +void ang_tap_dance_cln_reset (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + unregister_code (KC_SCLN); + unregister_code (KC_RSFT); + } else if (state->count == 2) { + unregister_code (KC_SCLN); + } +} + +void ang_tap_dance_mns_finished (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + register_code (KC_MINS); + } else if (state->count == 2) { + register_code (KC_RSFT); + register_code (KC_MINS); + } +} + +void ang_tap_dance_mns_reset (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + unregister_code (KC_MINS); + } else if (state->count == 2) { + unregister_code (KC_RSFT); + unregister_code (KC_MINS); + } +} + +typedef struct { + bool layer_toggle; + bool sticky; + bool finished_once; +} td_ta_state_t; + +void ang_tap_dance_ta_finished (qk_tap_dance_state_t *state, void *user_data) { + td_ta_state_t *td_ta = (td_ta_state_t *) user_data; + + if (td_ta->finished_once) { + return; + } + + if (td_ta->sticky) { + td_ta->sticky = false; + td_ta->layer_toggle = false; + layer_off (ARRW); + return; + } + + td_ta->finished_once = true; + if (state->count == 1 && !state->pressed) { + register_code (KC_TAB); + td_ta->sticky = false; + td_ta->layer_toggle = false; + } else { + td_ta->layer_toggle = true; + layer_on (ARRW); + td_ta->sticky = (state->count == 2); + } +} + +void ang_tap_dance_ta_reset (qk_tap_dance_state_t *state, void *user_data) { + td_ta_state_t *td_ta = (td_ta_state_t *) user_data; + + if (!td_ta->layer_toggle) + unregister_code (KC_TAB); + if (!td_ta->sticky) + layer_off (ARRW); + + td_ta->finished_once = false; +} + +const qk_tap_dance_action_t tap_dance_actions[] = { + [CT_CLN] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, ang_tap_dance_cln_finished, ang_tap_dance_cln_reset) + ,[CT_MNS] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, ang_tap_dance_mns_finished, ang_tap_dance_mns_reset) + ,[CT_TA] = { + .fn = { NULL, ang_tap_dance_ta_finished, ang_tap_dance_ta_reset }, + .user_data = (void *)&((td_ta_state_t) { false, false, false }) + } +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + uint8_t layer = biton32(layer_state); + + if (gui_timer && timer_elapsed (gui_timer) > TAPPING_TERM) + unregister_code (KC_LGUI); + + if (layer != OHLFT) + oh_left_blink = 0; + if (layer != OHRGT) + oh_right_blink = 0; + + if (layer == HUN) { + ergodox_right_led_2_on(); + ergodox_right_led_3_on(); + } else if (layer == NMDIA) { + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + } else if (layer == PLVR) { + ergodox_right_led_1_on (); + ergodox_right_led_2_on (); + ergodox_right_led_3_on (); + } else if (layer == ADORE) { + ergodox_right_led_1_on (); + ergodox_right_led_2_on (); + ergodox_right_led_3_on (); + + ergodox_right_led_2_set (LED_BRIGHTNESS_HI); + } + + if (layer == OHLFT || layer == OHRGT) { + ergodox_right_led_2_on(); + + if (oh_left_blink) { + if (timer_elapsed (oh_left_blink_timer) > OH_BLINK_INTERVAL) { + if ((keyboard_report->mods & MOD_BIT(KC_LSFT)) == 0) + ergodox_right_led_1_off (); + } + if (timer_elapsed (oh_left_blink_timer) > OH_BLINK_INTERVAL * 2) { + ergodox_right_led_1_on (); + oh_left_blink_timer = timer_read (); + } + } + + if (oh_right_blink) { + if (timer_elapsed (oh_right_blink_timer) > OH_BLINK_INTERVAL) { + if ((keyboard_report->mods & MOD_BIT(KC_LCTRL)) == 0) + ergodox_right_led_3_off (); + } + if (timer_elapsed (oh_right_blink_timer) > OH_BLINK_INTERVAL * 2) { + ergodox_right_led_3_on (); + oh_right_blink_timer = timer_read (); + } + } + } + + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || + ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out())) { + ergodox_right_led_1_set (LED_BRIGHTNESS_HI); + ergodox_right_led_1_on (); + } else { + ergodox_right_led_1_set (LED_BRIGHTNESS_LO); + if (layer != OHLFT && layer != NMDIA && layer != PLVR && layer != ADORE) + ergodox_right_led_1_off (); + } + + if (keyboard_report->mods & MOD_BIT(KC_LALT) || + ((get_oneshot_mods() & MOD_BIT(KC_LALT)) && !has_oneshot_mods_timed_out())) { + ergodox_right_led_2_set (LED_BRIGHTNESS_HI); + ergodox_right_led_2_on (); + } else { + ergodox_right_led_2_set (LED_BRIGHTNESS_LO); + if (layer != OHRGT && layer != HUN && layer != OHLFT && layer != NMDIA && layer != PLVR && layer != ADORE) + ergodox_right_led_2_off (); + } + + if (keyboard_report->mods & MOD_BIT(KC_LCTRL) || + ((get_oneshot_mods() & MOD_BIT(KC_LCTRL)) && !has_oneshot_mods_timed_out())) { + ergodox_right_led_3_set (LED_BRIGHTNESS_HI); + ergodox_right_led_3_on (); + } else { + ergodox_right_led_3_set (LED_BRIGHTNESS_LO); + if (layer != OHRGT && layer != HUN && layer != PLVR && layer != ADORE) + ergodox_right_led_3_off (); + } + + LEADER_DICTIONARY() { + leading = false; + leader_end (); + +#if KEYLOGGER_ENABLE + SEQ_ONE_KEY (KC_D) { + ergodox_led_all_on(); + wait_ms(100); + ergodox_led_all_off(); + log_enable = !log_enable; + } +#endif + + SEQ_ONE_KEY (KC_T) { + time_travel = !time_travel; + } + + SEQ_ONE_KEY (KC_U) { + ang_do_unicode (); + } + + SEQ_ONE_KEY (KC_V) { + SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ (" QMK_VERSION "/" KEYMAP_VERSION ")"); + } + + SEQ_ONE_KEY (KC_L) { + /* λ */ + ang_do_unicode (); + + uint16_t codes[] = {KC_0, KC_3, KC_B, KC_B, KC_ENT, 0}; + ang_tap (codes); + } + + SEQ_ONE_KEY (KC_Y) { + uint16_t codes[] = {KC_BSLS, KC_O, KC_SLSH, 0}; + ang_tap (codes); + } + + SEQ_ONE_KEY (KC_S) { + ang_do_unicode (); TAP_ONCE (KC_A); TAP_ONCE (KC_F); TAP_ONCE (KC_SPC); + TAP_ONCE (KC_BSLS); + register_code (KC_RSFT); TAP_ONCE (KC_MINS); TAP_ONCE (KC_9); unregister_code (KC_RSFT); + ang_do_unicode (); TAP_ONCE (KC_3); TAP_ONCE (KC_0); TAP_ONCE (KC_C); TAP_ONCE (KC_4); TAP_ONCE (KC_SPC); + register_code (KC_RSFT); TAP_ONCE (KC_0); TAP_ONCE (KC_MINS); unregister_code (KC_RSFT); + TAP_ONCE (KC_SLSH); + ang_do_unicode (); TAP_ONCE (KC_A); TAP_ONCE (KC_F); TAP_ONCE (KC_SPC); + } + + SEQ_TWO_KEYS (KC_W, KC_M) { + register_code (KC_LALT); + register_code (KC_F2); + unregister_code (KC_F2); + unregister_code (KC_LALT); + + wait_ms (1000); + + uint16_t codes[] = {KC_M, KC_A, KC_X, KC_MINS, KC_F, KC_O, KC_C, KC_U, KC_S, KC_E, KC_D, KC_ENT, 0}; + ang_tap (codes); + register_code (KC_LGUI); + register_code (KC_UP); + unregister_code (KC_UP); + unregister_code (KC_LGUI); + } + + SEQ_ONE_KEY (KC_A) { + if (is_adore == 0) { + default_layer_and (0); + default_layer_or ((1UL << ADORE)); + eeconfig_update_default_layer ((1UL << ADORE)); + is_adore = 1; + + ergodox_led_all_off (); + ergodox_right_led_3_on (); + wait_ms (100); + ergodox_right_led_2_on (); + wait_ms (100); + ergodox_right_led_3_off (); + ergodox_right_led_1_on (); + wait_ms (100); + ergodox_right_led_2_off (); + wait_ms (100); + ergodox_right_led_1_off (); + } else { + is_adore = 0; + default_layer_and (0); + default_layer_or (1UL << BASE); + eeconfig_update_default_layer ((1UL << BASE)); + + ergodox_led_all_off (); + ergodox_right_led_1_on (); + wait_ms (100); + ergodox_right_led_2_on (); + wait_ms (100); + ergodox_right_led_1_off (); + ergodox_right_led_3_on (); + wait_ms (100); + ergodox_right_led_2_off (); + wait_ms (100); + ergodox_right_led_3_off (); + } + } + } +} + +static uint16_t last4[4]; + +bool process_record_user (uint16_t keycode, keyrecord_t *record) { +#if KEYLOGGER_ENABLE + uint8_t layer = biton32(layer_state); + + if (log_enable && layer == BASE) { + xprintf ("KL: col=%d, row=%d\n", record->event.key.col, + record->event.key.row); + } +#endif + + if (time_travel && !record->event.pressed) { + uint8_t p; + + // shift cache one to the left + for (p = 0; p < 3; p++) { + last4[p] = last4[p + 1]; + } + last4[3] = keycode; + + if (last4[0] == KC_D && last4[1] == KC_A && last4[2] == KC_T && last4[3] == KC_E) { + uint16_t codes[] = {KC_E, KC_SPC, KC_MINS, KC_D, KC_SPC, KC_QUOT, 0}; + ang_tap (codes); + register_code (KC_RSFT); + register_code (KC_EQL); + unregister_code (KC_EQL); + unregister_code (KC_RSFT); + + uint16_t codes2[] = {KC_4, KC_SPC, KC_D, KC_A, KC_Y, KC_S, KC_QUOT, 0}; + ang_tap (codes2); + + return false; + } + } + + return true; +} -- cgit v1.2.3 From a6577b272e763303fc1a86bd54888e6f2b43cb37 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sat, 9 Jul 2016 21:24:02 +0300 Subject: Define weak matrix user function for Infinity Ergodox So that a few keyboards, which don't use them, links properly. --- keyboards/ergodox/infinity/infinity.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'keyboards') diff --git a/keyboards/ergodox/infinity/infinity.c b/keyboards/ergodox/infinity/infinity.c index d33c54441..f89e046d0 100644 --- a/keyboards/ergodox/infinity/infinity.c +++ b/keyboards/ergodox/infinity/infinity.c @@ -78,6 +78,15 @@ void lcd_backlight_hal_color(uint16_t r, uint16_t g, uint16_t b) { } #endif +__attribute__ ((weak)) +void matrix_init_user(void) { +} + +__attribute__ ((weak)) +void matrix_scan_user(void) { +} + + void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up -- cgit v1.2.3 From 426e9ecc6fb8366c1c17af692deddd90df570cd8 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 10 Jul 2016 12:01:28 +0300 Subject: Fix config.h include guards --- keyboards/ergodox/ez/config.h | 4 ++-- keyboards/ergodox/infinity/config.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/ez/config.h b/keyboards/ergodox/ez/config.h index 59fc0fda7..084a044ee 100644 --- a/keyboards/ergodox/ez/config.h +++ b/keyboards/ergodox/ez/config.h @@ -16,8 +16,8 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef CONFIG_H -#define CONFIG_H +#ifndef ERGODOX_EZ_CONFIG_H +#define ERGODOX_EZ_CONFIG_H #include "../config.h" diff --git a/keyboards/ergodox/infinity/config.h b/keyboards/ergodox/infinity/config.h index 83d7c5837..9e264083b 100644 --- a/keyboards/ergodox/infinity/config.h +++ b/keyboards/ergodox/infinity/config.h @@ -15,8 +15,8 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef CONFIG_H -#define CONFIG_H +#ifndef INFINITY_ERGODOX_CONFIG_H +#define INFINITY_ERGODOX_CONFIG_H #include "../config.h" -- cgit v1.2.3 From fd7f20b029e621942e1c0b342bc852a545305ee0 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 10 Jul 2016 12:02:17 +0300 Subject: Rename supercoder config_user to config.h Also fixup the include path of parent config --- keyboards/ergodox/keymaps/supercoder/config.h | 9 +++++++++ keyboards/ergodox/keymaps/supercoder/config_user.h | 9 --------- 2 files changed, 9 insertions(+), 9 deletions(-) create mode 100644 keyboards/ergodox/keymaps/supercoder/config.h delete mode 100644 keyboards/ergodox/keymaps/supercoder/config_user.h (limited to 'keyboards') diff --git a/keyboards/ergodox/keymaps/supercoder/config.h b/keyboards/ergodox/keymaps/supercoder/config.h new file mode 100644 index 000000000..2de3599f8 --- /dev/null +++ b/keyboards/ergodox/keymaps/supercoder/config.h @@ -0,0 +1,9 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H 1 + +#include "../../config.h" + +#undef LOCKING_SUPPORT_ENABLE +#undef LOCKING_RESYNC_ENABLE + +#endif diff --git a/keyboards/ergodox/keymaps/supercoder/config_user.h b/keyboards/ergodox/keymaps/supercoder/config_user.h deleted file mode 100644 index 8da138372..000000000 --- a/keyboards/ergodox/keymaps/supercoder/config_user.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H 1 - -#include "config.h" - -#undef LOCKING_SUPPORT_ENABLE -#undef LOCKING_RESYNC_ENABLE - -#endif -- cgit v1.2.3 From 650298cec34f55271f3faaab688d878c3f172e77 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 10 Jul 2016 12:02:56 +0300 Subject: Cleanup the townk_osx config.h and make files --- keyboards/ergodox/keymaps/townk_osx/config.h | 50 +------------------------ keyboards/ergodox/keymaps/townk_osx/makefile.mk | 4 +- 2 files changed, 2 insertions(+), 52 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/keymaps/townk_osx/config.h b/keyboards/ergodox/keymaps/townk_osx/config.h index 58ba690af..72d3e9670 100644 --- a/keyboards/ergodox/keymaps/townk_osx/config.h +++ b/keyboards/ergodox/keymaps/townk_osx/config.h @@ -19,55 +19,7 @@ along with this program. If not, see . #ifndef CONFIG_H #define CONFIG_H -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x1307 -#define DEVICE_VER 0x0001 -#define MANUFACTURER ErgoDox EZ -#define PRODUCT ErgoDox EZ -#define DESCRIPTION t.m.k. keyboard firmware for Ergodox - -/* key matrix size */ -#define MATRIX_ROWS 14 -#define MATRIX_COLS 6 - -#define MOUSEKEY_DELAY 100 -#define MOUSEKEY_INTERVAL 20 -#define MOUSEKEY_MAX_SPEED 3 -#define MOUSEKEY_TIME_TO_MAX 10 - -#define TAPPING_TOGGLE 1 - -#define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } -#define ROWS (int []){ D0, D5, B5, B6 } - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -/* define if matrix has ghost */ -//#define MATRIX_HAS_GHOST - -/* number of backlight levels */ -#define BACKLIGHT_LEVELS 3 - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 2 -#define TAPPING_TERM 200 -#define IGNORE_MOD_TAP_INTERRUPT // this makes it possible to do rolling combos (zx) with keys that convert to other keys on hold (z becomes ctrl when you hold it, and when this option isn't enabled, z rapidly followed by x actually sends Ctrl-x. That's bad.) - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -/* key combination for command */ -#define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || \ - keyboard_report->mods == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) \ -) - +#include "../../config.h" /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/ergodox/keymaps/townk_osx/makefile.mk b/keyboards/ergodox/keymaps/townk_osx/makefile.mk index e757557bd..c06021b9f 100644 --- a/keyboards/ergodox/keymaps/townk_osx/makefile.mk +++ b/keyboards/ergodox/keymaps/townk_osx/makefile.mk @@ -1,4 +1,2 @@ # I don't want my keyboard blinking lights when is suppose to be asleep. -SLEEP_LED_ENABLE = no - -CONFIG_H = keymaps/$(KEYMAP)/config.h +SLEEP_LED_ENABLE = no \ No newline at end of file -- cgit v1.2.3 From 37052a53f15ea5540b20e2d81a6992f34ebb84fe Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 10 Jul 2016 12:05:34 +0300 Subject: Remove the Infinity Ergodox default keymap --- .../ergodox/infinity/keymaps/default/keymap.c | 114 -------------- .../ergodox/infinity/keymaps/default/visualizer.c | 168 --------------------- 2 files changed, 282 deletions(-) delete mode 100644 keyboards/ergodox/infinity/keymaps/default/keymap.c delete mode 100644 keyboards/ergodox/infinity/keymaps/default/visualizer.c (limited to 'keyboards') diff --git a/keyboards/ergodox/infinity/keymaps/default/keymap.c b/keyboards/ergodox/infinity/keymaps/default/keymap.c deleted file mode 100644 index f1e6b1c8a..000000000 --- a/keyboards/ergodox/infinity/keymaps/default/keymap.c +++ /dev/null @@ -1,114 +0,0 @@ -/* -Copyright 2016 Fred Sundvik -Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include "infinity_ergodox.h" - -// Workaround for old keymap format -#define KC_RESET RESET - -const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - KEYMAP( // layer 0 : default - // left hand - EQL, 1, 2, 3, 4, 5, ESC, - BSLS,Q, W, E, R, T, FN1, - TAB, A, S, D, F, G, - LSFT,Z, X, C, V, B, FN0, - LGUI,GRV, BSLS,LEFT,RGHT, - LCTL,LALT, - HOME, - BSPC,DEL, END, - // right hand - FN2, 6, 7, 8, 9, 0, MINS, - LBRC,Y, U, I, O, P, RBRC, - H, J, K, L, SCLN,QUOT, - FN0, N, M, COMM,DOT, SLSH,RSFT, - LEFT,DOWN,UP, RGHT,RGUI, - RALT,RCTL, - PGUP, - PGDN,ENT, SPC - ), - - KEYMAP( // layer 1 : function and symbol keys - // left hand - TRNS,F1, F2, F3, F4, F5, F11, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,FN3, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS, - TRNS, - TRNS,TRNS,TRNS, - // right hand - F12, F6, F7, F8, F9, F10, TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS, - TRNS, - TRNS,TRNS,TRNS - ), - - KEYMAP( // layer 2 : keyboard functions - // left hand - RESET,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, FN3, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS, - TRNS, - TRNS,TRNS,TRNS, - // right hand - TRNS, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS, - TRNS, - TRNS,TRNS,TRNS - ), - - KEYMAP( // layer 3: numpad - // left hand - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS, - TRNS, - TRNS,TRNS,TRNS, - // right hand - TRNS,NLCK,PSLS,PAST,PAST,PMNS,BSPC, - TRNS,NO, P7, P8, P9, PMNS,BSPC, - NO, P4, P5, P6, PPLS,PENT, - TRNS,NO, P1, P2, P3, PPLS,PENT, - P0, PDOT,SLSH,PENT,PENT, - TRNS,TRNS, - TRNS, - TRNS,TRNS,TRNS - ), -}; -const uint16_t fn_actions[] = { - ACTION_LAYER_MOMENTARY(1), // FN0 - switch to Layer1 - ACTION_LAYER_SET(2, ON_PRESS), // FN1 - set Layer2 - ACTION_LAYER_TOGGLE(3), // FN2 - toggle Layer3 aka Numpad layer - ACTION_LAYER_SET(0, ON_PRESS), // FN3 - set Layer0 -}; diff --git a/keyboards/ergodox/infinity/keymaps/default/visualizer.c b/keyboards/ergodox/infinity/keymaps/default/visualizer.c deleted file mode 100644 index c0d335ce6..000000000 --- a/keyboards/ergodox/infinity/keymaps/default/visualizer.c +++ /dev/null @@ -1,168 +0,0 @@ -/* -Copyright 2016 Fred Sundvik - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -// Currently we are assuming that both the backlight and LCD are enabled -// But it's entirely possible to write a custom visualizer that use only -// one of them -#ifndef LCD_BACKLIGHT_ENABLE -#error This visualizer needs that LCD backlight is enabled -#endif - -#ifndef LCD_ENABLE -#error This visualizer needs that LCD is enabled -#endif - -#include "visualizer.h" -#include "led_test.h" - -static const char* welcome_text[] = {"TMK", "Infinity Ergodox"}; - -// Just an example how to write custom keyframe functions, we could have moved -// all this into the init function -bool display_welcome(keyframe_animation_t* animation, visualizer_state_t* state) { - (void)animation; - // Read the uGFX documentation for information how to use the displays - // http://wiki.ugfx.org/index.php/Main_Page - gdispClear(White); - // You can use static variables for things that can't be found in the animation - // or state structs - gdispDrawString(0, 3, welcome_text[0], state->font_dejavusansbold12, Black); - gdispDrawString(0, 15, welcome_text[1], state->font_dejavusansbold12, Black); - // Always remember to flush the display - gdispFlush(); - // you could set the backlight color as well, but we won't do it here, since - // it's part of the following animation - // lcd_backlight_color(hue, saturation, intensity); - // We don't need constant updates, just drawing the screen once is enough - return false; -} - -// Feel free to modify the animations below, or even add new ones if needed - -// Don't worry, if the startup animation is long, you can use the keyboard like normal -// during that time -static keyframe_animation_t startup_animation = { - .num_frames = 4, - .loop = false, - .frame_lengths = {0, gfxMillisecondsToTicks(1000), gfxMillisecondsToTicks(5000), 0}, - .frame_functions = { - display_welcome, - keyframe_animate_backlight_color, - keyframe_no_operation, - enable_visualization - }, -}; - -// The color animation animates the LCD color when you change layers -static keyframe_animation_t color_animation = { - .num_frames = 2, - .loop = false, - // Note that there's a 200 ms no-operation frame, - // this prevents the color from changing when activating the layer - // momentarily - .frame_lengths = {gfxMillisecondsToTicks(200), gfxMillisecondsToTicks(500)}, - .frame_functions = {keyframe_no_operation, keyframe_animate_backlight_color}, -}; - -// The LCD animation alternates between the layer name display and a -// bitmap that displays all active layers -static keyframe_animation_t lcd_animation = { - .num_frames = 2, - .loop = true, - .frame_lengths = {gfxMillisecondsToTicks(2000), gfxMillisecondsToTicks(2000)}, - .frame_functions = {keyframe_display_layer_text, keyframe_display_layer_bitmap}, -}; - -static keyframe_animation_t suspend_animation = { - .num_frames = 3, - .loop = false, - .frame_lengths = {0, gfxMillisecondsToTicks(1000), 0}, - .frame_functions = { - keyframe_display_layer_text, - keyframe_animate_backlight_color, - keyframe_disable_lcd_and_backlight, - }, -}; - -static keyframe_animation_t resume_animation = { - .num_frames = 5, - .loop = false, - .frame_lengths = {0, 0, gfxMillisecondsToTicks(1000), gfxMillisecondsToTicks(5000), 0}, - .frame_functions = { - keyframe_enable_lcd_and_backlight, - display_welcome, - keyframe_animate_backlight_color, - keyframe_no_operation, - enable_visualization, - }, -}; - -void initialize_user_visualizer(visualizer_state_t* state) { - // The brightness will be dynamically adjustable in the future - // But for now, change it here. - lcd_backlight_brightness(0x50); - state->current_lcd_color = LCD_COLOR(0x00, 0x00, 0xFF); - state->target_lcd_color = LCD_COLOR(0x10, 0xFF, 0xFF); - start_keyframe_animation(&startup_animation); - start_keyframe_animation(&led_test_animation); -} - -void update_user_visualizer_state(visualizer_state_t* state) { - // Add more tests, change the colors and layer texts here - // Usually you want to check the high bits (higher layers first) - // because that's the order layers are processed for keypresses - // You can for check for example: - // state->status.layer - // state->status.default_layer - // state->status.leds (see led.h for available statuses) - if (state->status.layer & 0x8) { - state->target_lcd_color = LCD_COLOR(0xC0, 0xB0, 0xFF); - state->layer_text = "Numpad"; - } - else if (state->status.layer & 0x4) { - state->target_lcd_color = LCD_COLOR(0, 0xB0, 0xFF); - state->layer_text = "KBD functions"; - } - else if (state->status.layer & 0x2) { - state->target_lcd_color = LCD_COLOR(0x80, 0xB0, 0xFF); - state->layer_text = "Function keys"; - } - else { - state->target_lcd_color = LCD_COLOR(0x40, 0xB0, 0xFF); - state->layer_text = "Default"; - } - // You can also stop existing animations, and start your custom ones here - // remember that you should normally have only one animation for the LCD - // and one for the background. But you can also combine them if you want. - start_keyframe_animation(&lcd_animation); - start_keyframe_animation(&color_animation); -} - -void user_visualizer_suspend(visualizer_state_t* state) { - state->layer_text = "Suspending..."; - uint8_t hue = LCD_HUE(state->current_lcd_color); - uint8_t sat = LCD_SAT(state->current_lcd_color); - state->target_lcd_color = LCD_COLOR(hue, sat, 0); - start_keyframe_animation(&suspend_animation); -} - -void user_visualizer_resume(visualizer_state_t* state) { - state->current_lcd_color = LCD_COLOR(0x00, 0x00, 0x00); - state->target_lcd_color = LCD_COLOR(0x10, 0xFF, 0xFF); - start_keyframe_animation(&resume_animation); - start_keyframe_animation(&led_test_animation); -} -- cgit v1.2.3 From 592ef7c6f0441216d2dbfb08af4e20ed35581102 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 10 Jul 2016 14:29:00 +0300 Subject: Move Infinity Ergodox drivers to subproject, and fix makefile --- .../drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h | 113 ------- .../ergodox/drivers/gdisp/IS31FL3731C/driver.mk | 2 - .../drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c | 333 --------------------- .../drivers/gdisp/IS31FL3731C/gdisp_lld_config.h | 36 --- .../ergodox/drivers/gdisp/emulator_lcd/driver.mk | 2 - .../drivers/gdisp/emulator_lcd/emulator_lcd.c | 10 - .../ergodox/drivers/gdisp/emulator_led/driver.mk | 2 - .../drivers/gdisp/emulator_led/emulator_led.c | 10 - .../drivers/gdisp/st7565ergodox/board_ST7565.h | 127 -------- .../ergodox/drivers/gdisp/st7565ergodox/driver.mk | 2 - .../drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c | 292 ------------------ .../drivers/gdisp/st7565ergodox/gdisp_lld_config.h | 26 -- .../ergodox/drivers/gdisp/st7565ergodox/st7565.h | 37 --- keyboards/ergodox/infinity/Makefile | 4 +- .../drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h | 113 +++++++ .../infinity/drivers/gdisp/IS31FL3731C/driver.mk | 2 + .../drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c | 333 +++++++++++++++++++++ .../drivers/gdisp/IS31FL3731C/gdisp_lld_config.h | 36 +++ .../infinity/drivers/gdisp/emulator_lcd/driver.mk | 2 + .../drivers/gdisp/emulator_lcd/emulator_lcd.c | 10 + .../infinity/drivers/gdisp/emulator_led/driver.mk | 2 + .../drivers/gdisp/emulator_led/emulator_led.c | 10 + .../drivers/gdisp/st7565ergodox/board_ST7565.h | 127 ++++++++ .../infinity/drivers/gdisp/st7565ergodox/driver.mk | 2 + .../drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c | 292 ++++++++++++++++++ .../drivers/gdisp/st7565ergodox/gdisp_lld_config.h | 26 ++ .../infinity/drivers/gdisp/st7565ergodox/st7565.h | 37 +++ 27 files changed, 994 insertions(+), 994 deletions(-) delete mode 100644 keyboards/ergodox/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h delete mode 100644 keyboards/ergodox/drivers/gdisp/IS31FL3731C/driver.mk delete mode 100644 keyboards/ergodox/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c delete mode 100644 keyboards/ergodox/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h delete mode 100644 keyboards/ergodox/drivers/gdisp/emulator_lcd/driver.mk delete mode 100644 keyboards/ergodox/drivers/gdisp/emulator_lcd/emulator_lcd.c delete mode 100644 keyboards/ergodox/drivers/gdisp/emulator_led/driver.mk delete mode 100644 keyboards/ergodox/drivers/gdisp/emulator_led/emulator_led.c delete mode 100644 keyboards/ergodox/drivers/gdisp/st7565ergodox/board_ST7565.h delete mode 100644 keyboards/ergodox/drivers/gdisp/st7565ergodox/driver.mk delete mode 100644 keyboards/ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c delete mode 100644 keyboards/ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_config.h delete mode 100644 keyboards/ergodox/drivers/gdisp/st7565ergodox/st7565.h create mode 100644 keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h create mode 100644 keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/driver.mk create mode 100644 keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c create mode 100644 keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h create mode 100644 keyboards/ergodox/infinity/drivers/gdisp/emulator_lcd/driver.mk create mode 100644 keyboards/ergodox/infinity/drivers/gdisp/emulator_lcd/emulator_lcd.c create mode 100644 keyboards/ergodox/infinity/drivers/gdisp/emulator_led/driver.mk create mode 100644 keyboards/ergodox/infinity/drivers/gdisp/emulator_led/emulator_led.c create mode 100644 keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h create mode 100644 keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/driver.mk create mode 100644 keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c create mode 100644 keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_config.h create mode 100644 keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/st7565.h (limited to 'keyboards') diff --git a/keyboards/ergodox/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h b/keyboards/ergodox/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h deleted file mode 100644 index 2ea73f1fb..000000000 --- a/keyboards/ergodox/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h +++ /dev/null @@ -1,113 +0,0 @@ -/* -Copyright 2016 Fred Sundvik - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#ifndef _GDISP_LLD_BOARD_H -#define _GDISP_LLD_BOARD_H - -static const I2CConfig i2ccfg = { - 400000 // clock speed (Hz); 400kHz max for IS31 -}; - -#define GDISP_SCREEN_WIDTH 7 -#define GDISP_SCREEN_HEIGHT 7 - -static const uint8_t led_mask[] = { - 0xFF, 0x00, /* C1-1 -> C1-16 */ - 0xFF, 0x00, /* C2-1 -> C2-16 */ - 0xFF, 0x00, /* C3-1 -> C3-16 */ - 0xFF, 0x00, /* C4-1 -> C4-16 */ - 0x3F, 0x00, /* C5-1 -> C5-16 */ - 0x00, 0x00, /* C6-1 -> C6-16 */ - 0x00, 0x00, /* C7-1 -> C7-16 */ - 0x00, 0x00, /* C8-1 -> C8-16 */ - 0x00, 0x00, /* C9-1 -> C9-16 */ -}; - -// The address of the LED -#define LA(c, r) (c + r * 16 ) -// Need to be an address that is not mapped, but inside the range of the controller matrix -#define NA LA(8, 8) - -// The numbers in the comments are the led numbers DXX on the PCB -// The mapping is taken from the schematic of left hand side -static const uint8_t led_mapping[GDISP_SCREEN_HEIGHT][GDISP_SCREEN_WIDTH] = { -// 45 44 43 42 41 40 39 - { LA(1, 1), LA(1, 0), LA(0, 4), LA(0, 3), LA(0, 2), LA(0, 1), LA(0, 0)}, -// 52 51 50 49 48 47 46 - { LA(2, 3), LA(2, 2), LA(2, 1), LA(2, 0), LA(1, 4), LA(1, 3), LA(1, 2) }, -// 58 57 56 55 54 53 N/A - { LA(3, 4), LA(3, 3), LA(3, 2), LA(3, 1), LA(3, 0), LA(2, 4), NA }, -// 67 66 65 64 63 62 61 - { LA(5, 3), LA(5, 2), LA(5, 1), LA(5, 0), LA(4, 4), LA(4, 3), LA(4, 2) }, -// 76 75 74 73 72 60 59 - { LA(7, 3), LA(7, 2), LA(7, 1), LA(7, 0), LA(6, 3), LA(4, 1), LA(4, 0) }, -// N/A N/A N/A N/A N/A N/A 68 - { NA, NA, NA, NA, NA, NA, LA(5, 4) }, -// N/A N/A N/A N/A 71 70 69 - { NA, NA, NA, NA, LA(6, 2), LA(6, 1), LA(6, 0) }, -}; - - -#define IS31_ADDR_DEFAULT 0x74 // AD connected to GND -#define IS31_TIMEOUT 5000 - -static GFXINLINE void init_board(GDisplay *g) { - (void) g; - /* I2C pins */ - palSetPadMode(GPIOB, 0, PAL_MODE_ALTERNATIVE_2); // PTB0/I2C0/SCL - palSetPadMode(GPIOB, 1, PAL_MODE_ALTERNATIVE_2); // PTB1/I2C0/SDA - palSetPadMode(GPIOB, 16, PAL_MODE_OUTPUT_PUSHPULL); - palClearPad(GPIOB, 16); - /* start I2C */ - i2cStart(&I2CD1, &i2ccfg); - // try high drive (from kiibohd) - I2CD1.i2c->C2 |= I2Cx_C2_HDRS; - // try glitch fixing (from kiibohd) - I2CD1.i2c->FLT = 4; -} - -static GFXINLINE void post_init_board(GDisplay *g) { - (void) g; -} - -static GFXINLINE const uint8_t* get_led_mask(GDisplay* g) { - (void) g; - return led_mask; -} - -static GFXINLINE uint8_t get_led_address(GDisplay* g, uint16_t x, uint16_t y) -{ - (void) g; - return led_mapping[y][x]; -} - -static GFXINLINE void set_hardware_shutdown(GDisplay* g, bool shutdown) { - (void) g; - if(!shutdown) { - palSetPad(GPIOB, 16); - } - else { - palClearPad(GPIOB, 16); - } -} - -static GFXINLINE void write_data(GDisplay *g, uint8_t* data, uint16_t length) { - (void) g; - i2cMasterTransmitTimeout(&I2CD1, IS31_ADDR_DEFAULT, data, length, 0, 0, US2ST(IS31_TIMEOUT)); -} - -#endif /* _GDISP_LLD_BOARD_H */ diff --git a/keyboards/ergodox/drivers/gdisp/IS31FL3731C/driver.mk b/keyboards/ergodox/drivers/gdisp/IS31FL3731C/driver.mk deleted file mode 100644 index f32d0d868..000000000 --- a/keyboards/ergodox/drivers/gdisp/IS31FL3731C/driver.mk +++ /dev/null @@ -1,2 +0,0 @@ -GFXINC += drivers/gdisp/IS31FL3731C -GFXSRC += drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c diff --git a/keyboards/ergodox/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c b/keyboards/ergodox/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c deleted file mode 100644 index 1d21f0c49..000000000 --- a/keyboards/ergodox/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c +++ /dev/null @@ -1,333 +0,0 @@ -/* -Copyright 2016 Fred Sundvik - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include "gfx.h" - -#if GFX_USE_GDISP - -#define GDISP_DRIVER_VMT GDISPVMT_IS31FL3731C_ERGODOX -#include "drivers/gdisp/IS31FL3731C/gdisp_lld_config.h" -#include "src/gdisp/gdisp_driver.h" - -#include "board_IS31FL3731C.h" - -/*===========================================================================*/ -/* Driver local definitions. */ -/*===========================================================================*/ - -#ifndef GDISP_SCREEN_HEIGHT - #define GDISP_SCREEN_HEIGHT 9 -#endif -#ifndef GDISP_SCREEN_WIDTH - #define GDISP_SCREEN_WIDTH 16 -#endif -#ifndef GDISP_INITIAL_CONTRAST - #define GDISP_INITIAL_CONTRAST 0 -#endif -#ifndef GDISP_INITIAL_BACKLIGHT - #define GDISP_INITIAL_BACKLIGHT 100 -#endif - -#define GDISP_FLG_NEEDFLUSH (GDISP_FLG_DRIVER<<0) - -#define IS31_ADDR_DEFAULT 0x74 - -#define IS31_REG_CONFIG 0x00 -// bits in reg -#define IS31_REG_CONFIG_PICTUREMODE 0x00 -#define IS31_REG_CONFIG_AUTOPLAYMODE 0x08 -#define IS31_REG_CONFIG_AUDIOPLAYMODE 0x18 -// D2:D0 bits are starting frame for autoplay mode - -#define IS31_REG_PICTDISP 0x01 // D2:D0 frame select for picture mode - -#define IS31_REG_AUTOPLAYCTRL1 0x02 -// D6:D4 number of loops (000=infty) -// D2:D0 number of frames to be used - -#define IS31_REG_AUTOPLAYCTRL2 0x03 // D5:D0 delay time (*11ms) - -#define IS31_REG_DISPLAYOPT 0x05 -#define IS31_REG_DISPLAYOPT_INTENSITY_SAME 0x20 // same intensity for all frames -#define IS31_REG_DISPLAYOPT_BLINK_ENABLE 0x8 -// D2:D0 bits blink period time (*0.27s) - -#define IS31_REG_AUDIOSYNC 0x06 -#define IS31_REG_AUDIOSYNC_ENABLE 0x1 - -#define IS31_REG_FRAMESTATE 0x07 - -#define IS31_REG_BREATHCTRL1 0x08 -// D6:D4 fade out time (26ms*2^i) -// D2:D0 fade in time (26ms*2^i) - -#define IS31_REG_BREATHCTRL2 0x09 -#define IS31_REG_BREATHCTRL2_ENABLE 0x10 -// D2:D0 extinguish time (3.5ms*2^i) - -#define IS31_REG_SHUTDOWN 0x0A -#define IS31_REG_SHUTDOWN_OFF 0x0 -#define IS31_REG_SHUTDOWN_ON 0x1 - -#define IS31_REG_AGCCTRL 0x0B -#define IS31_REG_ADCRATE 0x0C - -#define IS31_COMMANDREGISTER 0xFD -#define IS31_FUNCTIONREG 0x0B // helpfully called 'page nine' -#define IS31_FUNCTIONREG_SIZE 0xD - -#define IS31_FRAME_SIZE 0xB4 - -#define IS31_PWM_REG 0x24 -#define IS31_PWM_SIZE 0x90 - -#define IS31_LED_MASK_SIZE 0x12 -#define IS31_SCREEN_WIDTH 16 - -#define IS31 - -//Generated by http://jared.geek.nz/2013/feb/linear-led-pwm -const unsigned char cie[256] = { - 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, - 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, - 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, - 7, 8, 8, 8, 8, 9, 9, 9, 10, 10, - 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, - 13, 14, 14, 15, 15, 15, 16, 16, 17, 17, - 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, - 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, - 28, 28, 29, 29, 30, 31, 31, 32, 32, 33, - 34, 34, 35, 36, 37, 37, 38, 39, 39, 40, - 41, 42, 43, 43, 44, 45, 46, 47, 47, 48, - 49, 50, 51, 52, 53, 54, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 70, 71, 72, 73, 74, 75, 76, 77, 79, - 80, 81, 82, 83, 85, 86, 87, 88, 90, 91, - 92, 94, 95, 96, 98, 99, 100, 102, 103, 105, - 106, 108, 109, 110, 112, 113, 115, 116, 118, 120, - 121, 123, 124, 126, 128, 129, 131, 132, 134, 136, - 138, 139, 141, 143, 145, 146, 148, 150, 152, 154, - 155, 157, 159, 161, 163, 165, 167, 169, 171, 173, - 175, 177, 179, 181, 183, 185, 187, 189, 191, 193, - 196, 198, 200, 202, 204, 207, 209, 211, 214, 216, - 218, 220, 223, 225, 228, 230, 232, 235, 237, 240, - 242, 245, 247, 250, 252, 255, -}; - - -/*===========================================================================*/ -/* Driver local functions. */ -/*===========================================================================*/ - -typedef struct{ - uint8_t write_buffer_offset; - uint8_t write_buffer[IS31_FRAME_SIZE]; - uint8_t frame_buffer[GDISP_SCREEN_HEIGHT * GDISP_SCREEN_WIDTH]; - uint8_t page; -}__attribute__((__packed__)) PrivData; - -// Some common routines and macros -#define PRIV(g) ((PrivData*)g->priv) - -/*===========================================================================*/ -/* Driver exported functions. */ -/*===========================================================================*/ - -static GFXINLINE void write_page(GDisplay* g, uint8_t page) { - uint8_t tx[2] __attribute__((aligned(2))); - tx[0] = IS31_COMMANDREGISTER; - tx[1] = page; - write_data(g, tx, 2); -} - -static GFXINLINE void write_register(GDisplay* g, uint8_t page, uint8_t reg, uint8_t data) { - uint8_t tx[2] __attribute__((aligned(2))); - tx[0] = reg; - tx[1] = data; - write_page(g, page); - write_data(g, tx, 2); -} - -static GFXINLINE void write_ram(GDisplay *g, uint8_t page, uint16_t offset, uint16_t length) { - PRIV(g)->write_buffer_offset = offset; - write_page(g, page); - write_data(g, (uint8_t*)PRIV(g), length + 1); -} - -LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { - // The private area is the display surface. - g->priv = gfxAlloc(sizeof(PrivData)); - __builtin_memset(PRIV(g), 0, sizeof(PrivData)); - PRIV(g)->page = 0; - - // Initialise the board interface - init_board(g); - gfxSleepMilliseconds(10); - - // zero function page, all registers (assuming full_page is all zeroes) - write_ram(g, IS31_FUNCTIONREG, 0, IS31_FUNCTIONREG_SIZE); - set_hardware_shutdown(g, false); - gfxSleepMilliseconds(10); - // software shutdown - write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); - gfxSleepMilliseconds(10); - // zero function page, all registers - write_ram(g, IS31_FUNCTIONREG, 0, IS31_FUNCTIONREG_SIZE); - gfxSleepMilliseconds(10); - - - // zero all LED registers on all 8 pages, and enable the mask - __builtin_memcpy(PRIV(g)->write_buffer, get_led_mask(g), IS31_LED_MASK_SIZE); - for(uint8_t i=0; i<8; i++) { - write_ram(g, i, 0, IS31_FRAME_SIZE); - gfxSleepMilliseconds(1); - } - - // software shutdown disable (i.e. turn stuff on) - write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON); - gfxSleepMilliseconds(10); - - // Finish Init - post_init_board(g); - - /* Initialise the GDISP structure */ - g->g.Width = GDISP_SCREEN_WIDTH; - g->g.Height = GDISP_SCREEN_HEIGHT; - g->g.Orientation = GDISP_ROTATE_0; - g->g.Powermode = powerOn; - g->g.Backlight = GDISP_INITIAL_BACKLIGHT; - g->g.Contrast = GDISP_INITIAL_CONTRAST; - return TRUE; -} - -#if GDISP_HARDWARE_FLUSH - LLDSPEC void gdisp_lld_flush(GDisplay *g) { - // Don't flush if we don't need it. - if (!(g->flags & GDISP_FLG_NEEDFLUSH)) - return; - - PRIV(g)->page++; - PRIV(g)->page %= 2; - // TODO: some smarter algorithm for this - // We should run only one physical page at a time - // This way we don't need to send so much data, and - // we could use slightly less memory - uint8_t* src = PRIV(g)->frame_buffer; - for (int y=0;ywrite_buffer[get_led_address(g, x, y)]=cie[*src]; - ++src; - } - } - write_ram(g, PRIV(g)->page, IS31_PWM_REG, IS31_PWM_SIZE); - gfxSleepMilliseconds(1); - write_register(g, IS31_FUNCTIONREG, IS31_REG_PICTDISP, PRIV(g)->page); - - g->flags &= ~GDISP_FLG_NEEDFLUSH; - } -#endif - -#if GDISP_HARDWARE_DRAWPIXEL - LLDSPEC void gdisp_lld_draw_pixel(GDisplay *g) { - coord_t x, y; - - switch(g->g.Orientation) { - default: - case GDISP_ROTATE_0: - x = g->p.x; - y = g->p.y; - break; - case GDISP_ROTATE_180: - x = GDISP_SCREEN_WIDTH-1 - g->p.x; - y = g->p.y; - break; - } - PRIV(g)->frame_buffer[y * GDISP_SCREEN_WIDTH + x] = gdispColor2Native(g->p.color); - g->flags |= GDISP_FLG_NEEDFLUSH; - } -#endif - -#if GDISP_HARDWARE_PIXELREAD - LLDSPEC color_t gdisp_lld_get_pixel_color(GDisplay *g) { - coord_t x, y; - - switch(g->g.Orientation) { - default: - case GDISP_ROTATE_0: - x = g->p.x; - y = g->p.y; - break; - case GDISP_ROTATE_180: - x = GDISP_SCREEN_WIDTH-1 - g->p.x; - y = g->p.y; - break; - } - return gdispNative2Color(PRIV(g)->frame_buffer[y * GDISP_SCREEN_WIDTH + x]); - } -#endif - -#if GDISP_NEED_CONTROL && GDISP_HARDWARE_CONTROL - LLDSPEC void gdisp_lld_control(GDisplay *g) { - switch(g->p.x) { - case GDISP_CONTROL_POWER: - if (g->g.Powermode == (powermode_t)g->p.ptr) - return; - switch((powermode_t)g->p.ptr) { - case powerOff: - case powerSleep: - case powerDeepSleep: - write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); - break; - case powerOn: - write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON); - break; - default: - return; - } - g->g.Powermode = (powermode_t)g->p.ptr; - return; - - case GDISP_CONTROL_ORIENTATION: - if (g->g.Orientation == (orientation_t)g->p.ptr) - return; - switch((orientation_t)g->p.ptr) { - /* Rotation is handled by the drawing routines */ - case GDISP_ROTATE_0: - case GDISP_ROTATE_180: - g->g.Height = GDISP_SCREEN_HEIGHT; - g->g.Width = GDISP_SCREEN_WIDTH; - break; - case GDISP_ROTATE_90: - case GDISP_ROTATE_270: - g->g.Height = GDISP_SCREEN_WIDTH; - g->g.Width = GDISP_SCREEN_HEIGHT; - break; - default: - return; - } - g->g.Orientation = (orientation_t)g->p.ptr; - return; - - case GDISP_CONTROL_CONTRAST: - return; - } - } -#endif // GDISP_NEED_CONTROL - -#endif // GFX_USE_GDISP diff --git a/keyboards/ergodox/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h b/keyboards/ergodox/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h deleted file mode 100644 index bb28ad775..000000000 --- a/keyboards/ergodox/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h +++ /dev/null @@ -1,36 +0,0 @@ -/* -Copyright 2016 Fred Sundvik - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#ifndef _GDISP_LLD_CONFIG_H -#define _GDISP_LLD_CONFIG_H - -#if GFX_USE_GDISP - -/*===========================================================================*/ -/* Driver hardware support. */ -/*===========================================================================*/ - -#define GDISP_HARDWARE_FLUSH TRUE // This controller requires flushing -#define GDISP_HARDWARE_DRAWPIXEL TRUE -#define GDISP_HARDWARE_PIXELREAD TRUE -#define GDISP_HARDWARE_CONTROL TRUE - -#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_GRAY256 - -#endif /* GFX_USE_GDISP */ - -#endif /* _GDISP_LLD_CONFIG_H */ diff --git a/keyboards/ergodox/drivers/gdisp/emulator_lcd/driver.mk b/keyboards/ergodox/drivers/gdisp/emulator_lcd/driver.mk deleted file mode 100644 index 16c3f80f5..000000000 --- a/keyboards/ergodox/drivers/gdisp/emulator_lcd/driver.mk +++ /dev/null @@ -1,2 +0,0 @@ -GFXINC += drivers/gdisp/emulator_lcd -GFXSRC += drivers/gdisp/emulator_lcd/emulator_lcd.c diff --git a/keyboards/ergodox/drivers/gdisp/emulator_lcd/emulator_lcd.c b/keyboards/ergodox/drivers/gdisp/emulator_lcd/emulator_lcd.c deleted file mode 100644 index babfe2b36..000000000 --- a/keyboards/ergodox/drivers/gdisp/emulator_lcd/emulator_lcd.c +++ /dev/null @@ -1,10 +0,0 @@ -#define GDISP_DRIVER_VMT GDISPVMT_EMULATOR_LCD_ERGODOX -#define GDISP_HARDWARE_DRAWPIXEL TRUE -#define GDISP_HARDWARE_PIXELREAD TRUE -#define GDISP_HARDWARE_CONTROL TRUE -#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_MONO -#define GDISP_SCREEN_WIDTH 128 -#define GDISP_SCREEN_HEIGHT 32 -#define ROTATE_180_IS_FLIP - -#include "emulator/emulator_driver_impl.h" diff --git a/keyboards/ergodox/drivers/gdisp/emulator_led/driver.mk b/keyboards/ergodox/drivers/gdisp/emulator_led/driver.mk deleted file mode 100644 index 255434432..000000000 --- a/keyboards/ergodox/drivers/gdisp/emulator_led/driver.mk +++ /dev/null @@ -1,2 +0,0 @@ -GFXINC += drivers/gdisp/emulator_led -GFXSRC += drivers/gdisp/emulator_led/emulator_led.c diff --git a/keyboards/ergodox/drivers/gdisp/emulator_led/emulator_led.c b/keyboards/ergodox/drivers/gdisp/emulator_led/emulator_led.c deleted file mode 100644 index b0ebcdc47..000000000 --- a/keyboards/ergodox/drivers/gdisp/emulator_led/emulator_led.c +++ /dev/null @@ -1,10 +0,0 @@ -#define GDISP_DRIVER_VMT GDISPVMT_EMULATOR_LED_ERGODOX -#define GDISP_HARDWARE_DRAWPIXEL TRUE -#define GDISP_HARDWARE_PIXELREAD TRUE -#define GDISP_HARDWARE_CONTROL TRUE -#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_MONO -#define GDISP_SCREEN_WIDTH 7 -#define GDISP_SCREEN_HEIGHT 7 -#define ROTATE_180_IS_FLIP - -#include "emulator/emulator_driver_impl.h" diff --git a/keyboards/ergodox/drivers/gdisp/st7565ergodox/board_ST7565.h b/keyboards/ergodox/drivers/gdisp/st7565ergodox/board_ST7565.h deleted file mode 100644 index 290571ce5..000000000 --- a/keyboards/ergodox/drivers/gdisp/st7565ergodox/board_ST7565.h +++ /dev/null @@ -1,127 +0,0 @@ -/* - * This file is subject to the terms of the GFX License. If a copy of - * the license was not distributed with this file, you can obtain one at: - * - * http://ugfx.org/license.html - */ - -#ifndef _GDISP_LLD_BOARD_H -#define _GDISP_LLD_BOARD_H - -#include "print.h" - -#define ST7565_LCD_BIAS ST7565_LCD_BIAS_9 // actually 6 -#define ST7565_ADC ST7565_ADC_NORMAL -#define ST7565_COM_SCAN ST7565_COM_SCAN_DEC -#define ST7565_PAGE_ORDER 0,1,2,3 -/* - * Custom page order for several LCD boards, e.g. HEM12864-99 - * #define ST7565_PAGE_ORDER 4,5,6,7,0,1,2,3 - */ - -#define ST7565_GPIOPORT GPIOC -#define ST7565_PORT PORTC -#define ST7565_A0_PIN 7 -#define ST7565_RST_PIN 8 -#define ST7565_MOSI_PIN 6 -#define ST7565_SLCK_PIN 5 -#define ST7565_SS_PIN 4 - -#define palSetPadModeRaw(portname, bits) \ - ST7565_PORT->PCR[ST7565_##portname##_PIN] = bits - -#define palSetPadModeNamed(portname, portmode) \ - palSetPadMode(ST7565_GPIOPORT, ST7565_##portname##_PIN, portmode) - -#define ST7565_SPI_MODE PORTx_PCRn_DSE | PORTx_PCRn_MUX(2) -// DSPI Clock and Transfer Attributes -// Frame Size: 8 bits -// MSB First -// CLK Low by default -static const SPIConfig spi1config = { - NULL, - /* HW dependent part.*/ - ST7565_GPIOPORT, - ST7565_SS_PIN, - SPIx_CTARn_FMSZ(7) - | SPIx_CTARn_ASC(7) - | SPIx_CTARn_DT(7) - | SPIx_CTARn_CSSCK(7) - | SPIx_CTARn_PBR(0) - | SPIx_CTARn_BR(7) - //SPI_CR1_BR_0 -}; - -static bool_t st7565_is_data_mode = 1; - -static GFXINLINE void init_board(GDisplay *g) { - (void) g; - palSetPadModeNamed(A0, PAL_MODE_OUTPUT_PUSHPULL); - palSetPad(ST7565_GPIOPORT, ST7565_A0_PIN); - st7565_is_data_mode = 1; - palSetPadModeNamed(RST, PAL_MODE_OUTPUT_PUSHPULL); - palSetPad(ST7565_GPIOPORT, ST7565_RST_PIN); - palSetPadModeRaw(MOSI, ST7565_SPI_MODE); - palSetPadModeRaw(SLCK, ST7565_SPI_MODE); - palSetPadModeRaw(SS, ST7565_SPI_MODE); - - spiInit(); - spiStart(&SPID1, &spi1config); - spiSelect(&SPID1); -} - -static GFXINLINE void post_init_board(GDisplay *g) { - (void) g; -} - -static GFXINLINE void setpin_reset(GDisplay *g, bool_t state) { - (void) g; - if (state) { - palClearPad(ST7565_GPIOPORT, ST7565_RST_PIN); - } - else { - palSetPad(ST7565_GPIOPORT, ST7565_RST_PIN); - } -} - -static GFXINLINE void acquire_bus(GDisplay *g) { - (void) g; - // Only the LCD is using the SPI bus, so no need to acquire - // spiAcquireBus(&SPID1); -} - -static GFXINLINE void release_bus(GDisplay *g) { - (void) g; - // Only the LCD is using the SPI bus, so no need to release - //spiReleaseBus(&SPID1); -} - -static GFXINLINE void write_cmd(GDisplay *g, uint8_t cmd) { - (void) g; - if (st7565_is_data_mode) { - // The sleeps need to be at lest 10 vs 25 ns respectively - // So let's sleep two ticks, one tick might not be enough - // if we are at the end of the tick - chThdSleep(2); - palClearPad(ST7565_GPIOPORT, ST7565_A0_PIN); - chThdSleep(2); - st7565_is_data_mode = 0; - } - spiSend(&SPID1, 1, &cmd); -} - -static GFXINLINE void write_data(GDisplay *g, uint8_t* data, uint16_t length) { - (void) g; - if (!st7565_is_data_mode) { - // The sleeps need to be at lest 10 vs 25 ns respectively - // So let's sleep two ticks, one tick might not be enough - // if we are at the end of the tick - chThdSleep(2); - palSetPad(ST7565_GPIOPORT, ST7565_A0_PIN); - chThdSleep(2); - st7565_is_data_mode = 1; - } - spiSend(&SPID1, length, data); -} - -#endif /* _GDISP_LLD_BOARD_H */ diff --git a/keyboards/ergodox/drivers/gdisp/st7565ergodox/driver.mk b/keyboards/ergodox/drivers/gdisp/st7565ergodox/driver.mk deleted file mode 100644 index 889a1a031..000000000 --- a/keyboards/ergodox/drivers/gdisp/st7565ergodox/driver.mk +++ /dev/null @@ -1,2 +0,0 @@ -GFXINC += drivers/gdisp/st7565ergodox -GFXSRC += drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c diff --git a/keyboards/ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c b/keyboards/ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c deleted file mode 100644 index c33aea81a..000000000 --- a/keyboards/ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c +++ /dev/null @@ -1,292 +0,0 @@ -/* - * This file is subject to the terms of the GFX License. If a copy of - * the license was not distributed with this file, you can obtain one at: - * - * http://ugfx.org/license.html - */ - -#include "gfx.h" - -#if GFX_USE_GDISP - -#define GDISP_DRIVER_VMT GDISPVMT_ST7565_ERGODOX -#include "drivers/gdisp/st7565ergodox/gdisp_lld_config.h" -#include "src/gdisp/gdisp_driver.h" - -#include "board_ST7565.h" - -/*===========================================================================*/ -/* Driver local definitions. */ -/*===========================================================================*/ - -#ifndef GDISP_SCREEN_HEIGHT - #define GDISP_SCREEN_HEIGHT 32 -#endif -#ifndef GDISP_SCREEN_WIDTH - #define GDISP_SCREEN_WIDTH 128 -#endif -#ifndef GDISP_INITIAL_CONTRAST - #define GDISP_INITIAL_CONTRAST 0 -#endif -#ifndef GDISP_INITIAL_BACKLIGHT - #define GDISP_INITIAL_BACKLIGHT 100 -#endif - -#define GDISP_FLG_NEEDFLUSH (GDISP_FLG_DRIVER<<0) - -#include "drivers/gdisp/st7565ergodox/st7565.h" - -/*===========================================================================*/ -/* Driver config defaults for backward compatibility. */ -/*===========================================================================*/ -#ifndef ST7565_LCD_BIAS - #define ST7565_LCD_BIAS ST7565_LCD_BIAS_7 -#endif -#ifndef ST7565_ADC - #define ST7565_ADC ST7565_ADC_NORMAL -#endif -#ifndef ST7565_COM_SCAN - #define ST7565_COM_SCAN ST7565_COM_SCAN_INC -#endif -#ifndef ST7565_PAGE_ORDER - #define ST7565_PAGE_ORDER 0,1,2,3 -#endif - -/*===========================================================================*/ -/* Driver local functions. */ -/*===========================================================================*/ - -typedef struct{ - bool_t buffer2; - uint8_t ram[GDISP_SCREEN_HEIGHT * GDISP_SCREEN_WIDTH / 8]; -}PrivData; - -// Some common routines and macros -#define PRIV(g) ((PrivData*)g->priv) -#define RAM(g) (PRIV(g)->ram) -#define write_cmd2(g, cmd1, cmd2) { write_cmd(g, cmd1); write_cmd(g, cmd2); } -#define write_cmd3(g, cmd1, cmd2, cmd3) { write_cmd(g, cmd1); write_cmd(g, cmd2); write_cmd(g, cmd3); } - -// Some common routines and macros -#define delay(us) gfxSleepMicroseconds(us) -#define delay_ms(ms) gfxSleepMilliseconds(ms) - -#define xyaddr(x, y) ((x) + ((y)>>3)*GDISP_SCREEN_WIDTH) -#define xybit(y) (1<<((y)&7)) - -/*===========================================================================*/ -/* Driver exported functions. */ -/*===========================================================================*/ - -/* - * As this controller can't update on a pixel boundary we need to maintain the - * the entire display surface in memory so that we can do the necessary bit - * operations. Fortunately it is a small display in monochrome. - * 64 * 128 / 8 = 1024 bytes. - */ - -LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { - // The private area is the display surface. - g->priv = gfxAlloc(sizeof(PrivData)); - PRIV(g)->buffer2 = false; - - // Initialise the board interface - init_board(g); - - // Hardware reset - setpin_reset(g, TRUE); - gfxSleepMilliseconds(20); - setpin_reset(g, FALSE); - gfxSleepMilliseconds(20); - - acquire_bus(g); - write_cmd(g, ST7565_DISPLAY_OFF); - write_cmd(g, ST7565_LCD_BIAS); - write_cmd(g, ST7565_ADC); - write_cmd(g, ST7565_COM_SCAN); - - write_cmd(g, ST7565_START_LINE | 0); - - write_cmd(g, ST7565_RESISTOR_RATIO | 0x6); - - // turn on voltage converter (VC=1, VR=0, VF=0) - write_cmd(g, ST7565_POWER_CONTROL | 0x04); - delay_ms(50); - - // turn on voltage regulator (VC=1, VR=1, VF=0) - write_cmd(g, ST7565_POWER_CONTROL | 0x06); - delay_ms(50); - - // turn on voltage follower (VC=1, VR=1, VF=1) - write_cmd(g, ST7565_POWER_CONTROL | 0x07); - delay_ms(50); - - write_cmd(g, 0xE2); - write_cmd(g, ST7565_COM_SCAN); - write_cmd2(g, ST7565_CONTRAST, GDISP_INITIAL_CONTRAST*64/101); - //write_cmd2(g, ST7565_CONTRAST, 0); - write_cmd(g, ST7565_DISPLAY_ON); - write_cmd(g, ST7565_ALLON_NORMAL); - write_cmd(g, ST7565_INVERT_DISPLAY); - - write_cmd(g, ST7565_RMW); - - // Finish Init - post_init_board(g); - - // Release the bus - release_bus(g); - - /* Initialise the GDISP structure */ - g->g.Width = GDISP_SCREEN_WIDTH; - g->g.Height = GDISP_SCREEN_HEIGHT; - g->g.Orientation = GDISP_ROTATE_0; - g->g.Powermode = powerOn; - g->g.Backlight = GDISP_INITIAL_BACKLIGHT; - g->g.Contrast = GDISP_INITIAL_CONTRAST; - return TRUE; -} - -#if GDISP_HARDWARE_FLUSH - LLDSPEC void gdisp_lld_flush(GDisplay *g) { - unsigned p; - - // Don't flush if we don't need it. - if (!(g->flags & GDISP_FLG_NEEDFLUSH)) - return; - - acquire_bus(g); - unsigned dstOffset = (PRIV(g)->buffer2 ? 4 : 0); - for (p = 0; p < 4; p++) { - write_cmd(g, ST7565_PAGE | (p + dstOffset)); - write_cmd(g, ST7565_COLUMN_MSB | 0); - write_cmd(g, ST7565_COLUMN_LSB | 0); - write_cmd(g, ST7565_RMW); - write_data(g, RAM(g) + (p*GDISP_SCREEN_WIDTH), GDISP_SCREEN_WIDTH); - } - unsigned line = (PRIV(g)->buffer2 ? 32 : 0); - write_cmd(g, ST7565_START_LINE | line); - PRIV(g)->buffer2 = !PRIV(g)->buffer2; - release_bus(g); - - g->flags &= ~GDISP_FLG_NEEDFLUSH; - } -#endif - -#if GDISP_HARDWARE_DRAWPIXEL - LLDSPEC void gdisp_lld_draw_pixel(GDisplay *g) { - coord_t x, y; - - switch(g->g.Orientation) { - default: - case GDISP_ROTATE_0: - x = g->p.x; - y = g->p.y; - break; - case GDISP_ROTATE_90: - x = g->p.y; - y = GDISP_SCREEN_HEIGHT-1 - g->p.x; - break; - case GDISP_ROTATE_180: - x = GDISP_SCREEN_WIDTH-1 - g->p.x; - y = GDISP_SCREEN_HEIGHT-1 - g->p.y; - break; - case GDISP_ROTATE_270: - x = GDISP_SCREEN_HEIGHT-1 - g->p.y; - y = g->p.x; - break; - } - if (gdispColor2Native(g->p.color) != Black) - RAM(g)[xyaddr(x, y)] |= xybit(y); - else - RAM(g)[xyaddr(x, y)] &= ~xybit(y); - g->flags |= GDISP_FLG_NEEDFLUSH; - } -#endif - -#if GDISP_HARDWARE_PIXELREAD - LLDSPEC color_t gdisp_lld_get_pixel_color(GDisplay *g) { - coord_t x, y; - - switch(g->g.Orientation) { - default: - case GDISP_ROTATE_0: - x = g->p.x; - y = g->p.y; - break; - case GDISP_ROTATE_90: - x = g->p.y; - y = GDISP_SCREEN_HEIGHT-1 - g->p.x; - break; - case GDISP_ROTATE_180: - x = GDISP_SCREEN_WIDTH-1 - g->p.x; - y = GDISP_SCREEN_HEIGHT-1 - g->p.y; - break; - case GDISP_ROTATE_270: - x = GDISP_SCREEN_HEIGHT-1 - g->p.y; - y = g->p.x; - break; - } - return (RAM(g)[xyaddr(x, y)] & xybit(y)) ? White : Black; - } -#endif - -#if GDISP_NEED_CONTROL && GDISP_HARDWARE_CONTROL - LLDSPEC void gdisp_lld_control(GDisplay *g) { - switch(g->p.x) { - case GDISP_CONTROL_POWER: - if (g->g.Powermode == (powermode_t)g->p.ptr) - return; - switch((powermode_t)g->p.ptr) { - case powerOff: - case powerSleep: - case powerDeepSleep: - acquire_bus(g); - write_cmd(g, ST7565_DISPLAY_OFF); - release_bus(g); - break; - case powerOn: - acquire_bus(g); - write_cmd(g, ST7565_DISPLAY_ON); - release_bus(g); - break; - default: - return; - } - g->g.Powermode = (powermode_t)g->p.ptr; - return; - - case GDISP_CONTROL_ORIENTATION: - if (g->g.Orientation == (orientation_t)g->p.ptr) - return; - switch((orientation_t)g->p.ptr) { - /* Rotation is handled by the drawing routines */ - case GDISP_ROTATE_0: - case GDISP_ROTATE_180: - g->g.Height = GDISP_SCREEN_HEIGHT; - g->g.Width = GDISP_SCREEN_WIDTH; - break; - case GDISP_ROTATE_90: - case GDISP_ROTATE_270: - g->g.Height = GDISP_SCREEN_WIDTH; - g->g.Width = GDISP_SCREEN_HEIGHT; - break; - default: - return; - } - g->g.Orientation = (orientation_t)g->p.ptr; - return; - - case GDISP_CONTROL_CONTRAST: - if ((unsigned)g->p.ptr > 100) - g->p.ptr = (void *)100; - acquire_bus(g); - write_cmd2(g, ST7565_CONTRAST, ((((unsigned)g->p.ptr)<<6)/101) & 0x3F); - release_bus(g); - g->g.Contrast = (unsigned)g->p.ptr; - return; - } - } -#endif // GDISP_NEED_CONTROL - -#endif // GFX_USE_GDISP diff --git a/keyboards/ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_config.h b/keyboards/ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_config.h deleted file mode 100644 index 48587b9e1..000000000 --- a/keyboards/ergodox/drivers/gdisp/st7565ergodox/gdisp_lld_config.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * This file is subject to the terms of the GFX License. If a copy of - * the license was not distributed with this file, you can obtain one at: - * - * http://ugfx.org/license.html - */ - -#ifndef _GDISP_LLD_CONFIG_H -#define _GDISP_LLD_CONFIG_H - -#if GFX_USE_GDISP - -/*===========================================================================*/ -/* Driver hardware support. */ -/*===========================================================================*/ - -#define GDISP_HARDWARE_FLUSH TRUE // This controller requires flushing -#define GDISP_HARDWARE_DRAWPIXEL TRUE -#define GDISP_HARDWARE_PIXELREAD TRUE -#define GDISP_HARDWARE_CONTROL TRUE - -#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_MONO - -#endif /* GFX_USE_GDISP */ - -#endif /* _GDISP_LLD_CONFIG_H */ diff --git a/keyboards/ergodox/drivers/gdisp/st7565ergodox/st7565.h b/keyboards/ergodox/drivers/gdisp/st7565ergodox/st7565.h deleted file mode 100644 index 48636b33d..000000000 --- a/keyboards/ergodox/drivers/gdisp/st7565ergodox/st7565.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * This file is subject to the terms of the GFX License. If a copy of - * the license was not distributed with this file, you can obtain one at: - * - * http://ugfx.org/license.html - */ - -#ifndef _ST7565_H -#define _ST7565_H - -#define ST7565_CONTRAST 0x81 -#define ST7565_ALLON_NORMAL 0xA4 -#define ST7565_ALLON 0xA5 -#define ST7565_POSITIVE_DISPLAY 0xA6 -#define ST7565_INVERT_DISPLAY 0xA7 -#define ST7565_DISPLAY_OFF 0xAE -#define ST7565_DISPLAY_ON 0xAF - -#define ST7565_LCD_BIAS_7 0xA3 -#define ST7565_LCD_BIAS_9 0xA2 - -#define ST7565_ADC_NORMAL 0xA0 -#define ST7565_ADC_REVERSE 0xA1 - -#define ST7565_COM_SCAN_INC 0xC0 -#define ST7565_COM_SCAN_DEC 0xC8 - -#define ST7565_START_LINE 0x40 -#define ST7565_PAGE 0xB0 -#define ST7565_COLUMN_MSB 0x10 -#define ST7565_COLUMN_LSB 0x00 -#define ST7565_RMW 0xE0 - -#define ST7565_RESISTOR_RATIO 0x20 -#define ST7565_POWER_CONTROL 0x28 - -#endif /* _ST7565_H */ diff --git a/keyboards/ergodox/infinity/Makefile b/keyboards/ergodox/infinity/Makefile index 22065e4d2..d1ec266d0 100644 --- a/keyboards/ergodox/infinity/Makefile +++ b/keyboards/ergodox/infinity/Makefile @@ -65,11 +65,11 @@ LED_ENABLE ?= yes LCD_BACKLIGHT_ENABLE ?= yes ifdef LCD_ENABLE -include drivers/gdisp/st7565ergodox/driver.mk +include $(SUBPROJECT_PATH)/drivers/gdisp/st7565ergodox/driver.mk endif ifdef LED_ENABLE -include drivers/gdisp/IS31FL3731C/driver.mk +include $(SUBPROJECT_PATH)/drivers/gdisp/IS31FL3731C/driver.mk endif ifndef QUANTUM_DIR diff --git a/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h new file mode 100644 index 000000000..2ea73f1fb --- /dev/null +++ b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h @@ -0,0 +1,113 @@ +/* +Copyright 2016 Fred Sundvik + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef _GDISP_LLD_BOARD_H +#define _GDISP_LLD_BOARD_H + +static const I2CConfig i2ccfg = { + 400000 // clock speed (Hz); 400kHz max for IS31 +}; + +#define GDISP_SCREEN_WIDTH 7 +#define GDISP_SCREEN_HEIGHT 7 + +static const uint8_t led_mask[] = { + 0xFF, 0x00, /* C1-1 -> C1-16 */ + 0xFF, 0x00, /* C2-1 -> C2-16 */ + 0xFF, 0x00, /* C3-1 -> C3-16 */ + 0xFF, 0x00, /* C4-1 -> C4-16 */ + 0x3F, 0x00, /* C5-1 -> C5-16 */ + 0x00, 0x00, /* C6-1 -> C6-16 */ + 0x00, 0x00, /* C7-1 -> C7-16 */ + 0x00, 0x00, /* C8-1 -> C8-16 */ + 0x00, 0x00, /* C9-1 -> C9-16 */ +}; + +// The address of the LED +#define LA(c, r) (c + r * 16 ) +// Need to be an address that is not mapped, but inside the range of the controller matrix +#define NA LA(8, 8) + +// The numbers in the comments are the led numbers DXX on the PCB +// The mapping is taken from the schematic of left hand side +static const uint8_t led_mapping[GDISP_SCREEN_HEIGHT][GDISP_SCREEN_WIDTH] = { +// 45 44 43 42 41 40 39 + { LA(1, 1), LA(1, 0), LA(0, 4), LA(0, 3), LA(0, 2), LA(0, 1), LA(0, 0)}, +// 52 51 50 49 48 47 46 + { LA(2, 3), LA(2, 2), LA(2, 1), LA(2, 0), LA(1, 4), LA(1, 3), LA(1, 2) }, +// 58 57 56 55 54 53 N/A + { LA(3, 4), LA(3, 3), LA(3, 2), LA(3, 1), LA(3, 0), LA(2, 4), NA }, +// 67 66 65 64 63 62 61 + { LA(5, 3), LA(5, 2), LA(5, 1), LA(5, 0), LA(4, 4), LA(4, 3), LA(4, 2) }, +// 76 75 74 73 72 60 59 + { LA(7, 3), LA(7, 2), LA(7, 1), LA(7, 0), LA(6, 3), LA(4, 1), LA(4, 0) }, +// N/A N/A N/A N/A N/A N/A 68 + { NA, NA, NA, NA, NA, NA, LA(5, 4) }, +// N/A N/A N/A N/A 71 70 69 + { NA, NA, NA, NA, LA(6, 2), LA(6, 1), LA(6, 0) }, +}; + + +#define IS31_ADDR_DEFAULT 0x74 // AD connected to GND +#define IS31_TIMEOUT 5000 + +static GFXINLINE void init_board(GDisplay *g) { + (void) g; + /* I2C pins */ + palSetPadMode(GPIOB, 0, PAL_MODE_ALTERNATIVE_2); // PTB0/I2C0/SCL + palSetPadMode(GPIOB, 1, PAL_MODE_ALTERNATIVE_2); // PTB1/I2C0/SDA + palSetPadMode(GPIOB, 16, PAL_MODE_OUTPUT_PUSHPULL); + palClearPad(GPIOB, 16); + /* start I2C */ + i2cStart(&I2CD1, &i2ccfg); + // try high drive (from kiibohd) + I2CD1.i2c->C2 |= I2Cx_C2_HDRS; + // try glitch fixing (from kiibohd) + I2CD1.i2c->FLT = 4; +} + +static GFXINLINE void post_init_board(GDisplay *g) { + (void) g; +} + +static GFXINLINE const uint8_t* get_led_mask(GDisplay* g) { + (void) g; + return led_mask; +} + +static GFXINLINE uint8_t get_led_address(GDisplay* g, uint16_t x, uint16_t y) +{ + (void) g; + return led_mapping[y][x]; +} + +static GFXINLINE void set_hardware_shutdown(GDisplay* g, bool shutdown) { + (void) g; + if(!shutdown) { + palSetPad(GPIOB, 16); + } + else { + palClearPad(GPIOB, 16); + } +} + +static GFXINLINE void write_data(GDisplay *g, uint8_t* data, uint16_t length) { + (void) g; + i2cMasterTransmitTimeout(&I2CD1, IS31_ADDR_DEFAULT, data, length, 0, 0, US2ST(IS31_TIMEOUT)); +} + +#endif /* _GDISP_LLD_BOARD_H */ diff --git a/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/driver.mk b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/driver.mk new file mode 100644 index 000000000..f32d0d868 --- /dev/null +++ b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/driver.mk @@ -0,0 +1,2 @@ +GFXINC += drivers/gdisp/IS31FL3731C +GFXSRC += drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c diff --git a/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c new file mode 100644 index 000000000..1d21f0c49 --- /dev/null +++ b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c @@ -0,0 +1,333 @@ +/* +Copyright 2016 Fred Sundvik + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "gfx.h" + +#if GFX_USE_GDISP + +#define GDISP_DRIVER_VMT GDISPVMT_IS31FL3731C_ERGODOX +#include "drivers/gdisp/IS31FL3731C/gdisp_lld_config.h" +#include "src/gdisp/gdisp_driver.h" + +#include "board_IS31FL3731C.h" + +/*===========================================================================*/ +/* Driver local definitions. */ +/*===========================================================================*/ + +#ifndef GDISP_SCREEN_HEIGHT + #define GDISP_SCREEN_HEIGHT 9 +#endif +#ifndef GDISP_SCREEN_WIDTH + #define GDISP_SCREEN_WIDTH 16 +#endif +#ifndef GDISP_INITIAL_CONTRAST + #define GDISP_INITIAL_CONTRAST 0 +#endif +#ifndef GDISP_INITIAL_BACKLIGHT + #define GDISP_INITIAL_BACKLIGHT 100 +#endif + +#define GDISP_FLG_NEEDFLUSH (GDISP_FLG_DRIVER<<0) + +#define IS31_ADDR_DEFAULT 0x74 + +#define IS31_REG_CONFIG 0x00 +// bits in reg +#define IS31_REG_CONFIG_PICTUREMODE 0x00 +#define IS31_REG_CONFIG_AUTOPLAYMODE 0x08 +#define IS31_REG_CONFIG_AUDIOPLAYMODE 0x18 +// D2:D0 bits are starting frame for autoplay mode + +#define IS31_REG_PICTDISP 0x01 // D2:D0 frame select for picture mode + +#define IS31_REG_AUTOPLAYCTRL1 0x02 +// D6:D4 number of loops (000=infty) +// D2:D0 number of frames to be used + +#define IS31_REG_AUTOPLAYCTRL2 0x03 // D5:D0 delay time (*11ms) + +#define IS31_REG_DISPLAYOPT 0x05 +#define IS31_REG_DISPLAYOPT_INTENSITY_SAME 0x20 // same intensity for all frames +#define IS31_REG_DISPLAYOPT_BLINK_ENABLE 0x8 +// D2:D0 bits blink period time (*0.27s) + +#define IS31_REG_AUDIOSYNC 0x06 +#define IS31_REG_AUDIOSYNC_ENABLE 0x1 + +#define IS31_REG_FRAMESTATE 0x07 + +#define IS31_REG_BREATHCTRL1 0x08 +// D6:D4 fade out time (26ms*2^i) +// D2:D0 fade in time (26ms*2^i) + +#define IS31_REG_BREATHCTRL2 0x09 +#define IS31_REG_BREATHCTRL2_ENABLE 0x10 +// D2:D0 extinguish time (3.5ms*2^i) + +#define IS31_REG_SHUTDOWN 0x0A +#define IS31_REG_SHUTDOWN_OFF 0x0 +#define IS31_REG_SHUTDOWN_ON 0x1 + +#define IS31_REG_AGCCTRL 0x0B +#define IS31_REG_ADCRATE 0x0C + +#define IS31_COMMANDREGISTER 0xFD +#define IS31_FUNCTIONREG 0x0B // helpfully called 'page nine' +#define IS31_FUNCTIONREG_SIZE 0xD + +#define IS31_FRAME_SIZE 0xB4 + +#define IS31_PWM_REG 0x24 +#define IS31_PWM_SIZE 0x90 + +#define IS31_LED_MASK_SIZE 0x12 +#define IS31_SCREEN_WIDTH 16 + +#define IS31 + +//Generated by http://jared.geek.nz/2013/feb/linear-led-pwm +const unsigned char cie[256] = { + 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, + 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, + 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, + 7, 8, 8, 8, 8, 9, 9, 9, 10, 10, + 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, + 13, 14, 14, 15, 15, 15, 16, 16, 17, 17, + 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, + 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, + 28, 28, 29, 29, 30, 31, 31, 32, 32, 33, + 34, 34, 35, 36, 37, 37, 38, 39, 39, 40, + 41, 42, 43, 43, 44, 45, 46, 47, 47, 48, + 49, 50, 51, 52, 53, 54, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 70, 71, 72, 73, 74, 75, 76, 77, 79, + 80, 81, 82, 83, 85, 86, 87, 88, 90, 91, + 92, 94, 95, 96, 98, 99, 100, 102, 103, 105, + 106, 108, 109, 110, 112, 113, 115, 116, 118, 120, + 121, 123, 124, 126, 128, 129, 131, 132, 134, 136, + 138, 139, 141, 143, 145, 146, 148, 150, 152, 154, + 155, 157, 159, 161, 163, 165, 167, 169, 171, 173, + 175, 177, 179, 181, 183, 185, 187, 189, 191, 193, + 196, 198, 200, 202, 204, 207, 209, 211, 214, 216, + 218, 220, 223, 225, 228, 230, 232, 235, 237, 240, + 242, 245, 247, 250, 252, 255, +}; + + +/*===========================================================================*/ +/* Driver local functions. */ +/*===========================================================================*/ + +typedef struct{ + uint8_t write_buffer_offset; + uint8_t write_buffer[IS31_FRAME_SIZE]; + uint8_t frame_buffer[GDISP_SCREEN_HEIGHT * GDISP_SCREEN_WIDTH]; + uint8_t page; +}__attribute__((__packed__)) PrivData; + +// Some common routines and macros +#define PRIV(g) ((PrivData*)g->priv) + +/*===========================================================================*/ +/* Driver exported functions. */ +/*===========================================================================*/ + +static GFXINLINE void write_page(GDisplay* g, uint8_t page) { + uint8_t tx[2] __attribute__((aligned(2))); + tx[0] = IS31_COMMANDREGISTER; + tx[1] = page; + write_data(g, tx, 2); +} + +static GFXINLINE void write_register(GDisplay* g, uint8_t page, uint8_t reg, uint8_t data) { + uint8_t tx[2] __attribute__((aligned(2))); + tx[0] = reg; + tx[1] = data; + write_page(g, page); + write_data(g, tx, 2); +} + +static GFXINLINE void write_ram(GDisplay *g, uint8_t page, uint16_t offset, uint16_t length) { + PRIV(g)->write_buffer_offset = offset; + write_page(g, page); + write_data(g, (uint8_t*)PRIV(g), length + 1); +} + +LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { + // The private area is the display surface. + g->priv = gfxAlloc(sizeof(PrivData)); + __builtin_memset(PRIV(g), 0, sizeof(PrivData)); + PRIV(g)->page = 0; + + // Initialise the board interface + init_board(g); + gfxSleepMilliseconds(10); + + // zero function page, all registers (assuming full_page is all zeroes) + write_ram(g, IS31_FUNCTIONREG, 0, IS31_FUNCTIONREG_SIZE); + set_hardware_shutdown(g, false); + gfxSleepMilliseconds(10); + // software shutdown + write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); + gfxSleepMilliseconds(10); + // zero function page, all registers + write_ram(g, IS31_FUNCTIONREG, 0, IS31_FUNCTIONREG_SIZE); + gfxSleepMilliseconds(10); + + + // zero all LED registers on all 8 pages, and enable the mask + __builtin_memcpy(PRIV(g)->write_buffer, get_led_mask(g), IS31_LED_MASK_SIZE); + for(uint8_t i=0; i<8; i++) { + write_ram(g, i, 0, IS31_FRAME_SIZE); + gfxSleepMilliseconds(1); + } + + // software shutdown disable (i.e. turn stuff on) + write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON); + gfxSleepMilliseconds(10); + + // Finish Init + post_init_board(g); + + /* Initialise the GDISP structure */ + g->g.Width = GDISP_SCREEN_WIDTH; + g->g.Height = GDISP_SCREEN_HEIGHT; + g->g.Orientation = GDISP_ROTATE_0; + g->g.Powermode = powerOn; + g->g.Backlight = GDISP_INITIAL_BACKLIGHT; + g->g.Contrast = GDISP_INITIAL_CONTRAST; + return TRUE; +} + +#if GDISP_HARDWARE_FLUSH + LLDSPEC void gdisp_lld_flush(GDisplay *g) { + // Don't flush if we don't need it. + if (!(g->flags & GDISP_FLG_NEEDFLUSH)) + return; + + PRIV(g)->page++; + PRIV(g)->page %= 2; + // TODO: some smarter algorithm for this + // We should run only one physical page at a time + // This way we don't need to send so much data, and + // we could use slightly less memory + uint8_t* src = PRIV(g)->frame_buffer; + for (int y=0;ywrite_buffer[get_led_address(g, x, y)]=cie[*src]; + ++src; + } + } + write_ram(g, PRIV(g)->page, IS31_PWM_REG, IS31_PWM_SIZE); + gfxSleepMilliseconds(1); + write_register(g, IS31_FUNCTIONREG, IS31_REG_PICTDISP, PRIV(g)->page); + + g->flags &= ~GDISP_FLG_NEEDFLUSH; + } +#endif + +#if GDISP_HARDWARE_DRAWPIXEL + LLDSPEC void gdisp_lld_draw_pixel(GDisplay *g) { + coord_t x, y; + + switch(g->g.Orientation) { + default: + case GDISP_ROTATE_0: + x = g->p.x; + y = g->p.y; + break; + case GDISP_ROTATE_180: + x = GDISP_SCREEN_WIDTH-1 - g->p.x; + y = g->p.y; + break; + } + PRIV(g)->frame_buffer[y * GDISP_SCREEN_WIDTH + x] = gdispColor2Native(g->p.color); + g->flags |= GDISP_FLG_NEEDFLUSH; + } +#endif + +#if GDISP_HARDWARE_PIXELREAD + LLDSPEC color_t gdisp_lld_get_pixel_color(GDisplay *g) { + coord_t x, y; + + switch(g->g.Orientation) { + default: + case GDISP_ROTATE_0: + x = g->p.x; + y = g->p.y; + break; + case GDISP_ROTATE_180: + x = GDISP_SCREEN_WIDTH-1 - g->p.x; + y = g->p.y; + break; + } + return gdispNative2Color(PRIV(g)->frame_buffer[y * GDISP_SCREEN_WIDTH + x]); + } +#endif + +#if GDISP_NEED_CONTROL && GDISP_HARDWARE_CONTROL + LLDSPEC void gdisp_lld_control(GDisplay *g) { + switch(g->p.x) { + case GDISP_CONTROL_POWER: + if (g->g.Powermode == (powermode_t)g->p.ptr) + return; + switch((powermode_t)g->p.ptr) { + case powerOff: + case powerSleep: + case powerDeepSleep: + write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); + break; + case powerOn: + write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON); + break; + default: + return; + } + g->g.Powermode = (powermode_t)g->p.ptr; + return; + + case GDISP_CONTROL_ORIENTATION: + if (g->g.Orientation == (orientation_t)g->p.ptr) + return; + switch((orientation_t)g->p.ptr) { + /* Rotation is handled by the drawing routines */ + case GDISP_ROTATE_0: + case GDISP_ROTATE_180: + g->g.Height = GDISP_SCREEN_HEIGHT; + g->g.Width = GDISP_SCREEN_WIDTH; + break; + case GDISP_ROTATE_90: + case GDISP_ROTATE_270: + g->g.Height = GDISP_SCREEN_WIDTH; + g->g.Width = GDISP_SCREEN_HEIGHT; + break; + default: + return; + } + g->g.Orientation = (orientation_t)g->p.ptr; + return; + + case GDISP_CONTROL_CONTRAST: + return; + } + } +#endif // GDISP_NEED_CONTROL + +#endif // GFX_USE_GDISP diff --git a/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h new file mode 100644 index 000000000..bb28ad775 --- /dev/null +++ b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h @@ -0,0 +1,36 @@ +/* +Copyright 2016 Fred Sundvik + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef _GDISP_LLD_CONFIG_H +#define _GDISP_LLD_CONFIG_H + +#if GFX_USE_GDISP + +/*===========================================================================*/ +/* Driver hardware support. */ +/*===========================================================================*/ + +#define GDISP_HARDWARE_FLUSH TRUE // This controller requires flushing +#define GDISP_HARDWARE_DRAWPIXEL TRUE +#define GDISP_HARDWARE_PIXELREAD TRUE +#define GDISP_HARDWARE_CONTROL TRUE + +#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_GRAY256 + +#endif /* GFX_USE_GDISP */ + +#endif /* _GDISP_LLD_CONFIG_H */ diff --git a/keyboards/ergodox/infinity/drivers/gdisp/emulator_lcd/driver.mk b/keyboards/ergodox/infinity/drivers/gdisp/emulator_lcd/driver.mk new file mode 100644 index 000000000..16c3f80f5 --- /dev/null +++ b/keyboards/ergodox/infinity/drivers/gdisp/emulator_lcd/driver.mk @@ -0,0 +1,2 @@ +GFXINC += drivers/gdisp/emulator_lcd +GFXSRC += drivers/gdisp/emulator_lcd/emulator_lcd.c diff --git a/keyboards/ergodox/infinity/drivers/gdisp/emulator_lcd/emulator_lcd.c b/keyboards/ergodox/infinity/drivers/gdisp/emulator_lcd/emulator_lcd.c new file mode 100644 index 000000000..babfe2b36 --- /dev/null +++ b/keyboards/ergodox/infinity/drivers/gdisp/emulator_lcd/emulator_lcd.c @@ -0,0 +1,10 @@ +#define GDISP_DRIVER_VMT GDISPVMT_EMULATOR_LCD_ERGODOX +#define GDISP_HARDWARE_DRAWPIXEL TRUE +#define GDISP_HARDWARE_PIXELREAD TRUE +#define GDISP_HARDWARE_CONTROL TRUE +#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_MONO +#define GDISP_SCREEN_WIDTH 128 +#define GDISP_SCREEN_HEIGHT 32 +#define ROTATE_180_IS_FLIP + +#include "emulator/emulator_driver_impl.h" diff --git a/keyboards/ergodox/infinity/drivers/gdisp/emulator_led/driver.mk b/keyboards/ergodox/infinity/drivers/gdisp/emulator_led/driver.mk new file mode 100644 index 000000000..255434432 --- /dev/null +++ b/keyboards/ergodox/infinity/drivers/gdisp/emulator_led/driver.mk @@ -0,0 +1,2 @@ +GFXINC += drivers/gdisp/emulator_led +GFXSRC += drivers/gdisp/emulator_led/emulator_led.c diff --git a/keyboards/ergodox/infinity/drivers/gdisp/emulator_led/emulator_led.c b/keyboards/ergodox/infinity/drivers/gdisp/emulator_led/emulator_led.c new file mode 100644 index 000000000..b0ebcdc47 --- /dev/null +++ b/keyboards/ergodox/infinity/drivers/gdisp/emulator_led/emulator_led.c @@ -0,0 +1,10 @@ +#define GDISP_DRIVER_VMT GDISPVMT_EMULATOR_LED_ERGODOX +#define GDISP_HARDWARE_DRAWPIXEL TRUE +#define GDISP_HARDWARE_PIXELREAD TRUE +#define GDISP_HARDWARE_CONTROL TRUE +#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_MONO +#define GDISP_SCREEN_WIDTH 7 +#define GDISP_SCREEN_HEIGHT 7 +#define ROTATE_180_IS_FLIP + +#include "emulator/emulator_driver_impl.h" diff --git a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h new file mode 100644 index 000000000..290571ce5 --- /dev/null +++ b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h @@ -0,0 +1,127 @@ +/* + * This file is subject to the terms of the GFX License. If a copy of + * the license was not distributed with this file, you can obtain one at: + * + * http://ugfx.org/license.html + */ + +#ifndef _GDISP_LLD_BOARD_H +#define _GDISP_LLD_BOARD_H + +#include "print.h" + +#define ST7565_LCD_BIAS ST7565_LCD_BIAS_9 // actually 6 +#define ST7565_ADC ST7565_ADC_NORMAL +#define ST7565_COM_SCAN ST7565_COM_SCAN_DEC +#define ST7565_PAGE_ORDER 0,1,2,3 +/* + * Custom page order for several LCD boards, e.g. HEM12864-99 + * #define ST7565_PAGE_ORDER 4,5,6,7,0,1,2,3 + */ + +#define ST7565_GPIOPORT GPIOC +#define ST7565_PORT PORTC +#define ST7565_A0_PIN 7 +#define ST7565_RST_PIN 8 +#define ST7565_MOSI_PIN 6 +#define ST7565_SLCK_PIN 5 +#define ST7565_SS_PIN 4 + +#define palSetPadModeRaw(portname, bits) \ + ST7565_PORT->PCR[ST7565_##portname##_PIN] = bits + +#define palSetPadModeNamed(portname, portmode) \ + palSetPadMode(ST7565_GPIOPORT, ST7565_##portname##_PIN, portmode) + +#define ST7565_SPI_MODE PORTx_PCRn_DSE | PORTx_PCRn_MUX(2) +// DSPI Clock and Transfer Attributes +// Frame Size: 8 bits +// MSB First +// CLK Low by default +static const SPIConfig spi1config = { + NULL, + /* HW dependent part.*/ + ST7565_GPIOPORT, + ST7565_SS_PIN, + SPIx_CTARn_FMSZ(7) + | SPIx_CTARn_ASC(7) + | SPIx_CTARn_DT(7) + | SPIx_CTARn_CSSCK(7) + | SPIx_CTARn_PBR(0) + | SPIx_CTARn_BR(7) + //SPI_CR1_BR_0 +}; + +static bool_t st7565_is_data_mode = 1; + +static GFXINLINE void init_board(GDisplay *g) { + (void) g; + palSetPadModeNamed(A0, PAL_MODE_OUTPUT_PUSHPULL); + palSetPad(ST7565_GPIOPORT, ST7565_A0_PIN); + st7565_is_data_mode = 1; + palSetPadModeNamed(RST, PAL_MODE_OUTPUT_PUSHPULL); + palSetPad(ST7565_GPIOPORT, ST7565_RST_PIN); + palSetPadModeRaw(MOSI, ST7565_SPI_MODE); + palSetPadModeRaw(SLCK, ST7565_SPI_MODE); + palSetPadModeRaw(SS, ST7565_SPI_MODE); + + spiInit(); + spiStart(&SPID1, &spi1config); + spiSelect(&SPID1); +} + +static GFXINLINE void post_init_board(GDisplay *g) { + (void) g; +} + +static GFXINLINE void setpin_reset(GDisplay *g, bool_t state) { + (void) g; + if (state) { + palClearPad(ST7565_GPIOPORT, ST7565_RST_PIN); + } + else { + palSetPad(ST7565_GPIOPORT, ST7565_RST_PIN); + } +} + +static GFXINLINE void acquire_bus(GDisplay *g) { + (void) g; + // Only the LCD is using the SPI bus, so no need to acquire + // spiAcquireBus(&SPID1); +} + +static GFXINLINE void release_bus(GDisplay *g) { + (void) g; + // Only the LCD is using the SPI bus, so no need to release + //spiReleaseBus(&SPID1); +} + +static GFXINLINE void write_cmd(GDisplay *g, uint8_t cmd) { + (void) g; + if (st7565_is_data_mode) { + // The sleeps need to be at lest 10 vs 25 ns respectively + // So let's sleep two ticks, one tick might not be enough + // if we are at the end of the tick + chThdSleep(2); + palClearPad(ST7565_GPIOPORT, ST7565_A0_PIN); + chThdSleep(2); + st7565_is_data_mode = 0; + } + spiSend(&SPID1, 1, &cmd); +} + +static GFXINLINE void write_data(GDisplay *g, uint8_t* data, uint16_t length) { + (void) g; + if (!st7565_is_data_mode) { + // The sleeps need to be at lest 10 vs 25 ns respectively + // So let's sleep two ticks, one tick might not be enough + // if we are at the end of the tick + chThdSleep(2); + palSetPad(ST7565_GPIOPORT, ST7565_A0_PIN); + chThdSleep(2); + st7565_is_data_mode = 1; + } + spiSend(&SPID1, length, data); +} + +#endif /* _GDISP_LLD_BOARD_H */ diff --git a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/driver.mk b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/driver.mk new file mode 100644 index 000000000..889a1a031 --- /dev/null +++ b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/driver.mk @@ -0,0 +1,2 @@ +GFXINC += drivers/gdisp/st7565ergodox +GFXSRC += drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c diff --git a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c new file mode 100644 index 000000000..c33aea81a --- /dev/null +++ b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c @@ -0,0 +1,292 @@ +/* + * This file is subject to the terms of the GFX License. If a copy of + * the license was not distributed with this file, you can obtain one at: + * + * http://ugfx.org/license.html + */ + +#include "gfx.h" + +#if GFX_USE_GDISP + +#define GDISP_DRIVER_VMT GDISPVMT_ST7565_ERGODOX +#include "drivers/gdisp/st7565ergodox/gdisp_lld_config.h" +#include "src/gdisp/gdisp_driver.h" + +#include "board_ST7565.h" + +/*===========================================================================*/ +/* Driver local definitions. */ +/*===========================================================================*/ + +#ifndef GDISP_SCREEN_HEIGHT + #define GDISP_SCREEN_HEIGHT 32 +#endif +#ifndef GDISP_SCREEN_WIDTH + #define GDISP_SCREEN_WIDTH 128 +#endif +#ifndef GDISP_INITIAL_CONTRAST + #define GDISP_INITIAL_CONTRAST 0 +#endif +#ifndef GDISP_INITIAL_BACKLIGHT + #define GDISP_INITIAL_BACKLIGHT 100 +#endif + +#define GDISP_FLG_NEEDFLUSH (GDISP_FLG_DRIVER<<0) + +#include "drivers/gdisp/st7565ergodox/st7565.h" + +/*===========================================================================*/ +/* Driver config defaults for backward compatibility. */ +/*===========================================================================*/ +#ifndef ST7565_LCD_BIAS + #define ST7565_LCD_BIAS ST7565_LCD_BIAS_7 +#endif +#ifndef ST7565_ADC + #define ST7565_ADC ST7565_ADC_NORMAL +#endif +#ifndef ST7565_COM_SCAN + #define ST7565_COM_SCAN ST7565_COM_SCAN_INC +#endif +#ifndef ST7565_PAGE_ORDER + #define ST7565_PAGE_ORDER 0,1,2,3 +#endif + +/*===========================================================================*/ +/* Driver local functions. */ +/*===========================================================================*/ + +typedef struct{ + bool_t buffer2; + uint8_t ram[GDISP_SCREEN_HEIGHT * GDISP_SCREEN_WIDTH / 8]; +}PrivData; + +// Some common routines and macros +#define PRIV(g) ((PrivData*)g->priv) +#define RAM(g) (PRIV(g)->ram) +#define write_cmd2(g, cmd1, cmd2) { write_cmd(g, cmd1); write_cmd(g, cmd2); } +#define write_cmd3(g, cmd1, cmd2, cmd3) { write_cmd(g, cmd1); write_cmd(g, cmd2); write_cmd(g, cmd3); } + +// Some common routines and macros +#define delay(us) gfxSleepMicroseconds(us) +#define delay_ms(ms) gfxSleepMilliseconds(ms) + +#define xyaddr(x, y) ((x) + ((y)>>3)*GDISP_SCREEN_WIDTH) +#define xybit(y) (1<<((y)&7)) + +/*===========================================================================*/ +/* Driver exported functions. */ +/*===========================================================================*/ + +/* + * As this controller can't update on a pixel boundary we need to maintain the + * the entire display surface in memory so that we can do the necessary bit + * operations. Fortunately it is a small display in monochrome. + * 64 * 128 / 8 = 1024 bytes. + */ + +LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { + // The private area is the display surface. + g->priv = gfxAlloc(sizeof(PrivData)); + PRIV(g)->buffer2 = false; + + // Initialise the board interface + init_board(g); + + // Hardware reset + setpin_reset(g, TRUE); + gfxSleepMilliseconds(20); + setpin_reset(g, FALSE); + gfxSleepMilliseconds(20); + + acquire_bus(g); + write_cmd(g, ST7565_DISPLAY_OFF); + write_cmd(g, ST7565_LCD_BIAS); + write_cmd(g, ST7565_ADC); + write_cmd(g, ST7565_COM_SCAN); + + write_cmd(g, ST7565_START_LINE | 0); + + write_cmd(g, ST7565_RESISTOR_RATIO | 0x6); + + // turn on voltage converter (VC=1, VR=0, VF=0) + write_cmd(g, ST7565_POWER_CONTROL | 0x04); + delay_ms(50); + + // turn on voltage regulator (VC=1, VR=1, VF=0) + write_cmd(g, ST7565_POWER_CONTROL | 0x06); + delay_ms(50); + + // turn on voltage follower (VC=1, VR=1, VF=1) + write_cmd(g, ST7565_POWER_CONTROL | 0x07); + delay_ms(50); + + write_cmd(g, 0xE2); + write_cmd(g, ST7565_COM_SCAN); + write_cmd2(g, ST7565_CONTRAST, GDISP_INITIAL_CONTRAST*64/101); + //write_cmd2(g, ST7565_CONTRAST, 0); + write_cmd(g, ST7565_DISPLAY_ON); + write_cmd(g, ST7565_ALLON_NORMAL); + write_cmd(g, ST7565_INVERT_DISPLAY); + + write_cmd(g, ST7565_RMW); + + // Finish Init + post_init_board(g); + + // Release the bus + release_bus(g); + + /* Initialise the GDISP structure */ + g->g.Width = GDISP_SCREEN_WIDTH; + g->g.Height = GDISP_SCREEN_HEIGHT; + g->g.Orientation = GDISP_ROTATE_0; + g->g.Powermode = powerOn; + g->g.Backlight = GDISP_INITIAL_BACKLIGHT; + g->g.Contrast = GDISP_INITIAL_CONTRAST; + return TRUE; +} + +#if GDISP_HARDWARE_FLUSH + LLDSPEC void gdisp_lld_flush(GDisplay *g) { + unsigned p; + + // Don't flush if we don't need it. + if (!(g->flags & GDISP_FLG_NEEDFLUSH)) + return; + + acquire_bus(g); + unsigned dstOffset = (PRIV(g)->buffer2 ? 4 : 0); + for (p = 0; p < 4; p++) { + write_cmd(g, ST7565_PAGE | (p + dstOffset)); + write_cmd(g, ST7565_COLUMN_MSB | 0); + write_cmd(g, ST7565_COLUMN_LSB | 0); + write_cmd(g, ST7565_RMW); + write_data(g, RAM(g) + (p*GDISP_SCREEN_WIDTH), GDISP_SCREEN_WIDTH); + } + unsigned line = (PRIV(g)->buffer2 ? 32 : 0); + write_cmd(g, ST7565_START_LINE | line); + PRIV(g)->buffer2 = !PRIV(g)->buffer2; + release_bus(g); + + g->flags &= ~GDISP_FLG_NEEDFLUSH; + } +#endif + +#if GDISP_HARDWARE_DRAWPIXEL + LLDSPEC void gdisp_lld_draw_pixel(GDisplay *g) { + coord_t x, y; + + switch(g->g.Orientation) { + default: + case GDISP_ROTATE_0: + x = g->p.x; + y = g->p.y; + break; + case GDISP_ROTATE_90: + x = g->p.y; + y = GDISP_SCREEN_HEIGHT-1 - g->p.x; + break; + case GDISP_ROTATE_180: + x = GDISP_SCREEN_WIDTH-1 - g->p.x; + y = GDISP_SCREEN_HEIGHT-1 - g->p.y; + break; + case GDISP_ROTATE_270: + x = GDISP_SCREEN_HEIGHT-1 - g->p.y; + y = g->p.x; + break; + } + if (gdispColor2Native(g->p.color) != Black) + RAM(g)[xyaddr(x, y)] |= xybit(y); + else + RAM(g)[xyaddr(x, y)] &= ~xybit(y); + g->flags |= GDISP_FLG_NEEDFLUSH; + } +#endif + +#if GDISP_HARDWARE_PIXELREAD + LLDSPEC color_t gdisp_lld_get_pixel_color(GDisplay *g) { + coord_t x, y; + + switch(g->g.Orientation) { + default: + case GDISP_ROTATE_0: + x = g->p.x; + y = g->p.y; + break; + case GDISP_ROTATE_90: + x = g->p.y; + y = GDISP_SCREEN_HEIGHT-1 - g->p.x; + break; + case GDISP_ROTATE_180: + x = GDISP_SCREEN_WIDTH-1 - g->p.x; + y = GDISP_SCREEN_HEIGHT-1 - g->p.y; + break; + case GDISP_ROTATE_270: + x = GDISP_SCREEN_HEIGHT-1 - g->p.y; + y = g->p.x; + break; + } + return (RAM(g)[xyaddr(x, y)] & xybit(y)) ? White : Black; + } +#endif + +#if GDISP_NEED_CONTROL && GDISP_HARDWARE_CONTROL + LLDSPEC void gdisp_lld_control(GDisplay *g) { + switch(g->p.x) { + case GDISP_CONTROL_POWER: + if (g->g.Powermode == (powermode_t)g->p.ptr) + return; + switch((powermode_t)g->p.ptr) { + case powerOff: + case powerSleep: + case powerDeepSleep: + acquire_bus(g); + write_cmd(g, ST7565_DISPLAY_OFF); + release_bus(g); + break; + case powerOn: + acquire_bus(g); + write_cmd(g, ST7565_DISPLAY_ON); + release_bus(g); + break; + default: + return; + } + g->g.Powermode = (powermode_t)g->p.ptr; + return; + + case GDISP_CONTROL_ORIENTATION: + if (g->g.Orientation == (orientation_t)g->p.ptr) + return; + switch((orientation_t)g->p.ptr) { + /* Rotation is handled by the drawing routines */ + case GDISP_ROTATE_0: + case GDISP_ROTATE_180: + g->g.Height = GDISP_SCREEN_HEIGHT; + g->g.Width = GDISP_SCREEN_WIDTH; + break; + case GDISP_ROTATE_90: + case GDISP_ROTATE_270: + g->g.Height = GDISP_SCREEN_WIDTH; + g->g.Width = GDISP_SCREEN_HEIGHT; + break; + default: + return; + } + g->g.Orientation = (orientation_t)g->p.ptr; + return; + + case GDISP_CONTROL_CONTRAST: + if ((unsigned)g->p.ptr > 100) + g->p.ptr = (void *)100; + acquire_bus(g); + write_cmd2(g, ST7565_CONTRAST, ((((unsigned)g->p.ptr)<<6)/101) & 0x3F); + release_bus(g); + g->g.Contrast = (unsigned)g->p.ptr; + return; + } + } +#endif // GDISP_NEED_CONTROL + +#endif // GFX_USE_GDISP diff --git a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_config.h b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_config.h new file mode 100644 index 000000000..48587b9e1 --- /dev/null +++ b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_config.h @@ -0,0 +1,26 @@ +/* + * This file is subject to the terms of the GFX License. If a copy of + * the license was not distributed with this file, you can obtain one at: + * + * http://ugfx.org/license.html + */ + +#ifndef _GDISP_LLD_CONFIG_H +#define _GDISP_LLD_CONFIG_H + +#if GFX_USE_GDISP + +/*===========================================================================*/ +/* Driver hardware support. */ +/*===========================================================================*/ + +#define GDISP_HARDWARE_FLUSH TRUE // This controller requires flushing +#define GDISP_HARDWARE_DRAWPIXEL TRUE +#define GDISP_HARDWARE_PIXELREAD TRUE +#define GDISP_HARDWARE_CONTROL TRUE + +#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_MONO + +#endif /* GFX_USE_GDISP */ + +#endif /* _GDISP_LLD_CONFIG_H */ diff --git a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/st7565.h b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/st7565.h new file mode 100644 index 000000000..48636b33d --- /dev/null +++ b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/st7565.h @@ -0,0 +1,37 @@ +/* + * This file is subject to the terms of the GFX License. If a copy of + * the license was not distributed with this file, you can obtain one at: + * + * http://ugfx.org/license.html + */ + +#ifndef _ST7565_H +#define _ST7565_H + +#define ST7565_CONTRAST 0x81 +#define ST7565_ALLON_NORMAL 0xA4 +#define ST7565_ALLON 0xA5 +#define ST7565_POSITIVE_DISPLAY 0xA6 +#define ST7565_INVERT_DISPLAY 0xA7 +#define ST7565_DISPLAY_OFF 0xAE +#define ST7565_DISPLAY_ON 0xAF + +#define ST7565_LCD_BIAS_7 0xA3 +#define ST7565_LCD_BIAS_9 0xA2 + +#define ST7565_ADC_NORMAL 0xA0 +#define ST7565_ADC_REVERSE 0xA1 + +#define ST7565_COM_SCAN_INC 0xC0 +#define ST7565_COM_SCAN_DEC 0xC8 + +#define ST7565_START_LINE 0x40 +#define ST7565_PAGE 0xB0 +#define ST7565_COLUMN_MSB 0x10 +#define ST7565_COLUMN_LSB 0x00 +#define ST7565_RMW 0xE0 + +#define ST7565_RESISTOR_RATIO 0x20 +#define ST7565_POWER_CONTROL 0x28 + +#endif /* _ST7565_H */ -- cgit v1.2.3 From ad416fb1a346ff5ff51ef16ef7aaa63115fe8272 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 10 Jul 2016 14:46:18 +0300 Subject: Include the main Makefile before including Ergodox infinity drivers --- keyboards/ergodox/infinity/Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/infinity/Makefile b/keyboards/ergodox/infinity/Makefile index d1ec266d0..ccb735a48 100644 --- a/keyboards/ergodox/infinity/Makefile +++ b/keyboards/ergodox/infinity/Makefile @@ -64,6 +64,10 @@ LCD_ENABLE ?= yes LED_ENABLE ?= yes LCD_BACKLIGHT_ENABLE ?= yes +ifndef QUANTUM_DIR + include ../../../Makefile +endif + ifdef LCD_ENABLE include $(SUBPROJECT_PATH)/drivers/gdisp/st7565ergodox/driver.mk endif @@ -71,7 +75,3 @@ endif ifdef LED_ENABLE include $(SUBPROJECT_PATH)/drivers/gdisp/IS31FL3731C/driver.mk endif - -ifndef QUANTUM_DIR - include ../../../Makefile -endif \ No newline at end of file -- cgit v1.2.3 From 349f189e83c39dc3387b9358d0d2f372a5bbdf2b Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 10 Jul 2016 21:49:48 +0300 Subject: Move Ergodox readme from ez subfolder to parent --- keyboards/ergodox/ez/readme.md | 44 ------------------------------------------ keyboards/ergodox/readme.md | 44 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 44 deletions(-) delete mode 100644 keyboards/ergodox/ez/readme.md create mode 100644 keyboards/ergodox/readme.md (limited to 'keyboards') diff --git a/keyboards/ergodox/ez/readme.md b/keyboards/ergodox/ez/readme.md deleted file mode 100644 index 67a5fb095..000000000 --- a/keyboards/ergodox/ez/readme.md +++ /dev/null @@ -1,44 +0,0 @@ -# Getting started - -There are two main ways you could customize the ErgoDox EZ. - -## The Easy Way: Use an existing firmware file and just flash it - -1. Download and install the [Teensy Loader](https://www.pjrc.com/teensy/loader.html). Some Linux distributions already provide a binary (may be called `teensy-loader-cli`), so you may prefer to use this. -2. Find a firmware file you like. You can find a few if these in the keymaps subdirectory right here. The file you need ends with .hex, and you can look at its .c counterpart (or its PNG image) to see what you'll be getting. You can also use the [Massdrop configurator](https://keyboard-configurator.massdrop.com/ext/ergodox) to create a firmware Hex file you like. -3. Download the firmware file -4. Connect the keyboard, press its Reset button (gently insert a paperclip into the hole in the top-right corner) and flash it using the Teensy loader you installed on step 1 and the firmware you downloaded. - -## More technical: create your own totally custom firmware by editing the source files. - -This requires a little bit of familiarity with coding. - -1. Go to https://github.com/jackhumbert/qmk_firmware and read the readme at the base of this repository, top to bottom. Then come back here :) -2. Clone the repository (download it) -3. Set up a build environment as per [the build guide](/doc/BUILD_GUIDE.md) - - Using a Mac and have homebrew? just run `brew tap osx-cross/avr && brew install avr-libc` -4. Copy `keyboards/ergodox_ez/keymaps/default/keymap.c` into `keymaps/your_name/keymap.c` (for example, `keymaps/german/keymap.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 keymap=your_name`. For example, `make keymap=german`. This will result in a hex file, which will be called `ergodox_ez_your_name.hex`, e.g. `ergodox_ez_german.hex`. -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. If you prefer you can automatically flash the hex file after successfull build by running `make teensy keymap=your_name`. -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. - -1. All work goes inside your keymap subdirectory (`keymaps/german` in this example). -2. `keymap.c` - this is your actual keymap file; please update the ASCII comments in the file so they correspond with what you did. -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`. - -That file contains a big list of all of the special, fancy keys (like, being able to send % on its own and whatnot). - -If you want to send a plain vanilla key, you can look up its code under `doc/keycode.txt`. That's where all the boring keys hang out. diff --git a/keyboards/ergodox/readme.md b/keyboards/ergodox/readme.md new file mode 100644 index 000000000..67a5fb095 --- /dev/null +++ b/keyboards/ergodox/readme.md @@ -0,0 +1,44 @@ +# Getting started + +There are two main ways you could customize the ErgoDox EZ. + +## The Easy Way: Use an existing firmware file and just flash it + +1. Download and install the [Teensy Loader](https://www.pjrc.com/teensy/loader.html). Some Linux distributions already provide a binary (may be called `teensy-loader-cli`), so you may prefer to use this. +2. Find a firmware file you like. You can find a few if these in the keymaps subdirectory right here. The file you need ends with .hex, and you can look at its .c counterpart (or its PNG image) to see what you'll be getting. You can also use the [Massdrop configurator](https://keyboard-configurator.massdrop.com/ext/ergodox) to create a firmware Hex file you like. +3. Download the firmware file +4. Connect the keyboard, press its Reset button (gently insert a paperclip into the hole in the top-right corner) and flash it using the Teensy loader you installed on step 1 and the firmware you downloaded. + +## More technical: create your own totally custom firmware by editing the source files. + +This requires a little bit of familiarity with coding. + +1. Go to https://github.com/jackhumbert/qmk_firmware and read the readme at the base of this repository, top to bottom. Then come back here :) +2. Clone the repository (download it) +3. Set up a build environment as per [the build guide](/doc/BUILD_GUIDE.md) + - Using a Mac and have homebrew? just run `brew tap osx-cross/avr && brew install avr-libc` +4. Copy `keyboards/ergodox_ez/keymaps/default/keymap.c` into `keymaps/your_name/keymap.c` (for example, `keymaps/german/keymap.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 keymap=your_name`. For example, `make keymap=german`. This will result in a hex file, which will be called `ergodox_ez_your_name.hex`, e.g. `ergodox_ez_german.hex`. +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. If you prefer you can automatically flash the hex file after successfull build by running `make teensy keymap=your_name`. +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. + +1. All work goes inside your keymap subdirectory (`keymaps/german` in this example). +2. `keymap.c` - this is your actual keymap file; please update the ASCII comments in the file so they correspond with what you did. +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`. + +That file contains a big list of all of the special, fancy keys (like, being able to send % on its own and whatnot). + +If you want to send a plain vanilla key, you can look up its code under `doc/keycode.txt`. That's where all the boring keys hang out. -- cgit v1.2.3 From 44cefcb40a8789d8d7965e645d5cd155b6d16370 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 10 Jul 2016 22:08:01 +0300 Subject: Refer to the right path in the readme --- keyboards/ergodox/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/readme.md b/keyboards/ergodox/readme.md index 67a5fb095..c99c8d82b 100644 --- a/keyboards/ergodox/readme.md +++ b/keyboards/ergodox/readme.md @@ -17,7 +17,7 @@ This requires a little bit of familiarity with coding. 2. Clone the repository (download it) 3. Set up a build environment as per [the build guide](/doc/BUILD_GUIDE.md) - Using a Mac and have homebrew? just run `brew tap osx-cross/avr && brew install avr-libc` -4. Copy `keyboards/ergodox_ez/keymaps/default/keymap.c` into `keymaps/your_name/keymap.c` (for example, `keymaps/german/keymap.c`) +4. Copy `keyboards/ergodox/keymaps/default/keymap.c` into `keymaps/your_name/keymap.c` (for example, `keymaps/german/keymap.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 keymap=your_name`. For example, `make keymap=german`. This will result in a hex file, which will be called `ergodox_ez_your_name.hex`, e.g. `ergodox_ez_german.hex`. 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. If you prefer you can automatically flash the hex file after successfull build by running `make teensy keymap=your_name`. -- cgit v1.2.3 From c65da1f2089e53b051cd10a240e14d2335c6d8e6 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 10 Jul 2016 22:52:26 +0300 Subject: Unify the ErgoDox EZ and Infinity documentation --- keyboards/ergodox/readme.md | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/readme.md b/keyboards/ergodox/readme.md index c99c8d82b..8cd553ee1 100644 --- a/keyboards/ergodox/readme.md +++ b/keyboards/ergodox/readme.md @@ -1,17 +1,20 @@ # Getting started -There are two main ways you could customize the ErgoDox EZ. +There are two main ways you could customize the ErgoDox (EZ and Infinity) ## The Easy Way: Use an existing firmware file and just flash it +This does not work for Infinity ErgoDox yet, you need to compile the firmware according to the instructions below + 1. Download and install the [Teensy Loader](https://www.pjrc.com/teensy/loader.html). Some Linux distributions already provide a binary (may be called `teensy-loader-cli`), so you may prefer to use this. -2. Find a firmware file you like. You can find a few if these in the keymaps subdirectory right here. The file you need ends with .hex, and you can look at its .c counterpart (or its PNG image) to see what you'll be getting. You can also use the [Massdrop configurator](https://keyboard-configurator.massdrop.com/ext/ergodox) to create a firmware Hex file you like. +2. Find a firmware file you like. You can find a few of these in the keymaps subdirectory right here. The file you need ends with .hex, and you can look at its .c counterpart (or its PNG image) to see what you'll be getting. You can also use the [Massdrop configurator](https://keyboard-configurator.massdrop.com/ext/ergodox) to create a firmware Hex file you like. 3. Download the firmware file 4. Connect the keyboard, press its Reset button (gently insert a paperclip into the hole in the top-right corner) and flash it using the Teensy loader you installed on step 1 and the firmware you downloaded. -## More technical: create your own totally custom firmware by editing the source files. +## More technical: compile an existing keymap, or create your own totally custom firmware by editing the source files. -This requires a little bit of familiarity with coding. +This requires a little bit of familiarity with coding. +If you are just compiling and existing keymap and don't want to create your own, you can skip step 4, 5 and 8. 1. Go to https://github.com/jackhumbert/qmk_firmware and read the readme at the base of this repository, top to bottom. Then come back here :) 2. Clone the repository (download it) @@ -19,15 +22,17 @@ This requires a little bit of familiarity with coding. - Using a Mac and have homebrew? just run `brew tap osx-cross/avr && brew install avr-libc` 4. Copy `keyboards/ergodox/keymaps/default/keymap.c` into `keymaps/your_name/keymap.c` (for example, `keymaps/german/keymap.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 keymap=your_name`. For example, `make keymap=german`. This will result in a hex file, which will be called `ergodox_ez_your_name.hex`, e.g. `ergodox_ez_german.hex`. -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. If you prefer you can automatically flash the hex file after successfull build by running `make teensy keymap=your_name`. -7. Submit your work as a pull request to this repository, so others can also use it. :) See below on specifics. +6. Compile your firmware by running `make keymap=keymap_name`. For example, `make keymap=german`. This will result in a hex file, which will be called `ergodox_ez_keymap_name.hex`, e.g. `ergodox_ez_german.hex`. For **Infinity ErgoDox** you need to add `subproject=infinity` to the make command. +7. **ErgoDox EZ** - 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. If you prefer you can automatically flash the hex file after successful build by running `make teensy keymap=your_name`. + + **Infinity ErgoDox** - Flash the firmware by running `make dfu-util keymap=your_name` +8. 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. +The ErgoDox 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. To make it easy for these people to use your layout, I recommend submitting your PR in the following format. 1. All work goes inside your keymap subdirectory (`keymaps/german` in this example). 2. `keymap.c` - this is your actual keymap file; please update the ASCII comments in the file so they correspond with what you did. -- cgit v1.2.3 From 401dd090772936a75667a5d1510ff580d6d568bd Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 10 Jul 2016 22:55:20 +0300 Subject: A couple of more Ergodox readme fixes --- keyboards/ergodox/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/readme.md b/keyboards/ergodox/readme.md index 8cd553ee1..983559c76 100644 --- a/keyboards/ergodox/readme.md +++ b/keyboards/ergodox/readme.md @@ -23,9 +23,9 @@ If you are just compiling and existing keymap and don't want to create your own, 4. Copy `keyboards/ergodox/keymaps/default/keymap.c` into `keymaps/your_name/keymap.c` (for example, `keymaps/german/keymap.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 keymap=keymap_name`. For example, `make keymap=german`. This will result in a hex file, which will be called `ergodox_ez_keymap_name.hex`, e.g. `ergodox_ez_german.hex`. For **Infinity ErgoDox** you need to add `subproject=infinity` to the make command. -7. **ErgoDox EZ** - 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. If you prefer you can automatically flash the hex file after successful build by running `make teensy keymap=your_name`. +7. **ErgoDox EZ** - 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. If you prefer you can automatically flash the hex file after successful build by running `make teensy keymap=keymap_name`. - **Infinity ErgoDox** - Flash the firmware by running `make dfu-util keymap=your_name` + **Infinity ErgoDox** - Flash the firmware by running `make dfu-util keymap=keymap_name subproject=infinity` 8. Submit your work as a pull request to this repository, so others can also use it. :) See below on specifics. Good luck! :) -- cgit v1.2.3 From 6e8a5aca9d7a955a6037a6db8a6e9068354db894 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 10 Jul 2016 23:07:00 +0300 Subject: Fix typo in the readme. --- keyboards/ergodox/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/readme.md b/keyboards/ergodox/readme.md index 983559c76..9afa47410 100644 --- a/keyboards/ergodox/readme.md +++ b/keyboards/ergodox/readme.md @@ -14,7 +14,7 @@ This does not work for Infinity ErgoDox yet, you need to compile the firmware ac ## More technical: compile an existing keymap, or create your own totally custom firmware by editing the source files. This requires a little bit of familiarity with coding. -If you are just compiling and existing keymap and don't want to create your own, you can skip step 4, 5 and 8. +If you are just compiling an existing keymap and don't want to create your own, you can skip step 4, 5 and 8. 1. Go to https://github.com/jackhumbert/qmk_firmware and read the readme at the base of this repository, top to bottom. Then come back here :) 2. Clone the repository (download it) -- cgit v1.2.3 From 566c79554ebd6e17d161ad488ce807ea7e8b24db Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Tue, 12 Jul 2016 17:50:06 +0300 Subject: Small fix for infinity include guard --- keyboards/ergodox/infinity/infinity.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/infinity/infinity.h b/keyboards/ergodox/infinity/infinity.h index 83ce6444c..fec9e565c 100644 --- a/keyboards/ergodox/infinity/infinity.h +++ b/keyboards/ergodox/infinity/infinity.h @@ -1,5 +1,5 @@ -#ifndef KEYBOARDS_INFINITY_ERGODOX_INFINITY_ERGODOX_H_ -#define KEYBOARDS_INFINITY_ERGODOX_INFINITY_ERGODOX_H_ +#ifndef KEYBOARDS_ERGODOX_INFINITY_INFINITY_H_ +#define KEYBOARDS_ERGODOX_INFINITY_INFINITY_H_ #include "quantum.h" @@ -107,4 +107,4 @@ inline void ergodox_led_all_set(uint8_t n) { { B80, B81, B82, B83, B84 } \ } -#endif /* KEYBOARDS_INFINITY_ERGODOX_INFINITY_ERGODOX_H_ */ +#endif /* KEYBOARDS_ERGODOX_INFINITY_INFINITY_H_ */ -- cgit v1.2.3 From 8a9bf1f1653a5029ffd8f1e1171cd0b16bc2bc71 Mon Sep 17 00:00:00 2001 From: Gergely Nagy Date: Sat, 30 Jul 2016 08:37:30 +0200 Subject: Update some obsolete references Some links were still pointing to `/keyboards/ergodox_ez`, while the directory is `/keyboards/erdogox` now. Not all references have been updated, and some of the text here and there may need updating to mention the ErgoDox Infinity too, but that's out of the scope for this quick fix. Signed-off-by: Gergely Nagy --- Dockerfile | 2 +- Vagrantfile | 2 +- doc/TMK_README.md | 2 +- doc/VAGRANT_GUIDE.md | 4 ++-- keyboards/ergodox/keymaps/supercoder/readme.md | 2 +- keyboards/readme.md | 2 +- readme.md | 4 ++-- 7 files changed, 9 insertions(+), 9 deletions(-) (limited to 'keyboards') diff --git a/Dockerfile b/Dockerfile index 96ace4ec6..578d009dc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,7 +20,7 @@ RUN apt-get install --no-install-recommends -y build-essential \ RUN apt-get clean RUN rm -rf /var/lib/apt/lists/* -ENV keyboard=ergodox_ez +ENV keyboard=ergodox ENV keymap=default VOLUME /qmk diff --git a/Vagrantfile b/Vagrantfile index 8cadeaddf..389b688ae 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -91,7 +91,7 @@ Vagrant.configure(2) do |config| Or you can copy and paste the example line below. - cd /vagrant; cd keyboards; cd ergodox_ez; make clean; make + cd /vagrant; cd keyboards; cd ergodox; make clean; make EOT diff --git a/doc/TMK_README.md b/doc/TMK_README.md index 6164dacd3..f3d96717a 100644 --- a/doc/TMK_README.md +++ b/doc/TMK_README.md @@ -34,7 +34,7 @@ You can find some keyboard specific projects under `converter` and `keyboard` di * [atomic](keyboards/atomic/) - [Atomic] Ortholinear 60% keyboard ### Ergodox EZ -* [ergodox_ez](keyboards/ergodox_ez) - [Ergodox_EZ] Assembled split keyboard +* [ergodox_ez](keyboards/ergodox/ez) - [Ergodox_EZ] Assembled split keyboard ## Other projects diff --git a/doc/VAGRANT_GUIDE.md b/doc/VAGRANT_GUIDE.md index 62044b7f7..c9958e16b 100644 --- a/doc/VAGRANT_GUIDE.md +++ b/doc/VAGRANT_GUIDE.md @@ -20,7 +20,7 @@ See [/doc/keymap.md](/doc/keymap.md). ## Flashing the firmware -The "easy" way to flash the firmware is using a tool from your host OS like the Teensy programming app. [ErgoDox EZ](/keyboards/ergodox_ez/readme.md) gives a great example. +The "easy" way to flash the firmware is using a tool from your host OS like the Teensy programming app. [ErgoDox EZ](/keyboards/ergodox/readme.md) gives a great example. If you want to program via the command line you can uncomment the ['modifyvm'] lines in the Vagrantfile to enable the USB passthrough into Linux and then program using the command line tools like dfu-util/dfu-programmer or you can install the Teensy CLI version. - \ No newline at end of file + diff --git a/keyboards/ergodox/keymaps/supercoder/readme.md b/keyboards/ergodox/keymaps/supercoder/readme.md index 97bf7f583..8ef96eddf 100644 --- a/keyboards/ergodox/keymaps/supercoder/readme.md +++ b/keyboards/ergodox/keymaps/supercoder/readme.md @@ -23,7 +23,7 @@ your own: ``` $ git clone https://github.com/jackhumbert/qmk_firmware.git -$ cd qmk_firmware/keyboards/ergodox_ez +$ cd qmk_firmware/keyboards/ergodox $ git clone https://github.com/algernon/ergodox-supercoder.git keymaps/supercoder $ make KEYMAP=supercoder ``` diff --git a/keyboards/readme.md b/keyboards/readme.md index e97986546..f6c90b1f6 100644 --- a/keyboards/readme.md +++ b/keyboards/readme.md @@ -17,7 +17,7 @@ What makes OLKB keyboards shine is a combo of lean aesthetics, compact size, and Made in Taiwan using advanced robotic manufacturing, the ErgoDox EZ is a fully-assembled, premium ergonomic keyboard. Its split design allows you to place both halves shoulder width, and its custom-made wrist rests and tilt/tent kit make for incredibly comfortable typing. Available on [ergodox-ez.com](https://ergodox-ez.com). -* [ErgoDox EZ](/keyboards/ergodox_ez/) - Our one and only product. Yes, it's that awesome. Comes with either printed or blank keycaps, and 7 different keyswitch types. +* [ErgoDox EZ](/keyboards/ergodox/) - Our one and only product. Yes, it's that awesome. Comes with either printed or blank keycaps, and 7 different keyswitch types. ### Clueboard - Zach White diff --git a/readme.md b/readme.md index 45af1b0c3..c3d866f36 100644 --- a/readme.md +++ b/readme.md @@ -82,9 +82,9 @@ If this is a bit complex for you, Docker might be the turn-key solution you need ```bash # You'll run this every time you want to build a keymap # modify the keymap and keyboard assigment to compile what you want -# defaults are ergodox_ez/default +# defaults are ergodox/default -docker run -e keymap=gwen -e keyboard=ergodox_ez --rm -v $('pwd'):/qmk:rw edasque/qmk_firmware +docker run -e keymap=gwen -e keyboard=ergodox --rm -v $('pwd'):/qmk:rw edasque/qmk_firmware ``` -- cgit v1.2.3 From f78a994355e2fb23555b018fa631778b1b117b7f Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Sat, 23 Jul 2016 19:06:19 -0700 Subject: Add "jeebak" keymap folder as a copy of the "default" folder --- keyboards/planck/keymaps/jeebak/Makefile | 25 +++ keyboards/planck/keymaps/jeebak/keymap.c | 314 ++++++++++++++++++++++++++++++ keyboards/planck/keymaps/jeebak/readme.md | 2 + 3 files changed, 341 insertions(+) create mode 100644 keyboards/planck/keymaps/jeebak/Makefile create mode 100644 keyboards/planck/keymaps/jeebak/keymap.c create mode 100644 keyboards/planck/keymaps/jeebak/readme.md (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/jeebak/Makefile b/keyboards/planck/keymaps/jeebak/Makefile new file mode 100644 index 000000000..581e08cd0 --- /dev/null +++ b/keyboards/planck/keymaps/jeebak/Makefile @@ -0,0 +1,25 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c new file mode 100644 index 000000000..5f71ae7d1 --- /dev/null +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -0,0 +1,314 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "planck.h" +#include "action_layer.h" +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _PLOVER 5 +#define _ADJUST 16 + +enum planck_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + PLOVER, + LOWER, + RAISE, + BACKLIT, + EXT_PLV +}; + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = { + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = { + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = { + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = { + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Plover layer (http://opensteno.org) + * ,-----------------------------------------------------------------------------------. + * | # | # | # | # | # | # | # | # | # | # | # | # | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | S | T | P | H | * | * | F | P | L | T | D | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * |TogOut| S | K | W | R | * | * | R | B | G | S | Z | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Exit | | | A | O | | E | U | | | | + * `-----------------------------------------------------------------------------------' + */ + +[_PLOVER] = { + {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, + {XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, + {XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX} +}, + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = { + {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, + {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +} + + +}; + +#ifdef AUDIO_ENABLE + +float tone_startup[][2] = SONG(STARTUP_SOUND); +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +float tone_plover[][2] = SONG(PLOVER_SOUND); +float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); + +float tone_goodbye[][2] = SONG(GOODBYE_SOUND); +#endif + + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_qwerty, false, 0); + #endif + persistant_default_layer_set(1UL<<_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_colemak, false, 0); + #endif + persistant_default_layer_set(1UL<<_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_dvorak, false, 0); + #endif + persistant_default_layer_set(1UL<<_DVORAK); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case BACKLIT: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + return false; + break; + case PLOVER: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + stop_all_notes(); + PLAY_NOTE_ARRAY(tone_plover, false, 0); + #endif + layer_off(_RAISE); + layer_off(_LOWER); + layer_off(_ADJUST); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + } + return false; + break; + case EXT_PLV: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_plover_gb, false, 0); + #endif + layer_off(_PLOVER); + } + return false; + break; + } + return true; +} + +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + startup_user(); + #endif +} + +#ifdef AUDIO_ENABLE + +void startup_user() +{ + _delay_ms(20); // gets rid of tick + PLAY_NOTE_ARRAY(tone_startup, false, 0); +} + +void shutdown_user() +{ + PLAY_NOTE_ARRAY(tone_goodbye, false, 0); + _delay_ms(150); + stop_all_notes(); +} + +void music_on_user(void) +{ + music_scale_user(); +} + +void music_scale_user(void) +{ + PLAY_NOTE_ARRAY(music_scale, false, 0); +} + +#endif diff --git a/keyboards/planck/keymaps/jeebak/readme.md b/keyboards/planck/keymaps/jeebak/readme.md new file mode 100644 index 000000000..de9680b49 --- /dev/null +++ b/keyboards/planck/keymaps/jeebak/readme.md @@ -0,0 +1,2 @@ +# The Default Planck Layout + -- cgit v1.2.3 From eb1a06d3ae585dfe0af2b2809a1b22400fc0387f Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Sat, 23 Jul 2016 19:59:22 -0700 Subject: Tap for Esc, hold for Control --- keyboards/planck/keymaps/jeebak/keymap.c | 63 +++++++++++++++++--------------- 1 file changed, 33 insertions(+), 30 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index 5f71ae7d1..01f102c71 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -37,58 +37,61 @@ enum planck_keycodes { #define _______ KC_TRNS #define XXXXXXX KC_NO +// Custom macros +#define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | S | D | F | G | H | J | K | L | ; | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' + * ,---------------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |----------+------+------+------+------+-------------+------+------+------+------+------| + * | Ctrl/Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |----------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift | Z | X | C | V | B | N | M | , | . | / |Enter | + * |----------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `---------------------------------------------------------------------------------------' */ [_QWERTY] = { {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Colemak - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | R | S | T | D | H | N | E | I | O | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' + * ,---------------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |----------+------+------+------+------+-------------+------+------+------+------+------| + * | Ctrl/Esc | A | R | S | T | D | H | N | E | I | O | " | + * |----------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift | Z | X | C | V | B | K | M | , | . | / |Enter | + * |----------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `---------------------------------------------------------------------------------------' */ [_COLEMAK] = { {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {CTL_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Dvorak - * ,-----------------------------------------------------------------------------------. - * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | O | E | U | I | D | H | T | N | S | / | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' + * ,---------------------------------------------------------------------------------------. + * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * |----------+------+------+------+------+-------------+------+------+------+------+------| + * | Ctrl/Esc | A | O | E | U | I | D | H | T | N | S | / | + * |----------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift | ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |----------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `---------------------------------------------------------------------------------------' */ [_DVORAK] = { {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, - {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {CTL_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, -- cgit v1.2.3 From b5d77440b632ecb637f880d5a7c4362c365fde0d Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Mon, 25 Jul 2016 20:25:03 -0700 Subject: Add personalized TouchCursor layer --- keyboards/planck/keymaps/jeebak/keymap.c | 34 ++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index 01f102c71..84fee8070 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -20,6 +20,7 @@ extern keymap_config_t keymap_config; #define _LOWER 3 #define _RAISE 4 #define _PLOVER 5 +#define _TOUCHCURSOR 6 #define _ADJUST 16 enum planck_keycodes { @@ -39,6 +40,8 @@ enum planck_keycodes { // Custom macros #define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl +#define LT_TC LT(_TOUCHCURSOR, KC_SPC) // L-ayer T-ap T-ouch C-ursor +// ^-- Requires KC_TRNS / _______ for the trigger key in the destination layer const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -50,14 +53,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |----------+------+------+------+------+------|------+------+------+------+------+------| * | Shift | Z | X | C | V | B | N | M | , | . | / |Enter | * |----------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * | Brite | Ctrl | Alt | GUI |Lower | TC/Space |Raise | Left | Down | Up |Right | * `---------------------------------------------------------------------------------------' */ [_QWERTY] = { {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, {CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Colemak @@ -68,14 +71,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |----------+------+------+------+------+------|------+------+------+------+------+------| * | Shift | Z | X | C | V | B | K | M | , | . | / |Enter | * |----------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * | Brite | Ctrl | Alt | GUI |Lower | TC/Space |Raise | Left | Down | Up |Right | * `---------------------------------------------------------------------------------------' */ [_COLEMAK] = { {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, {CTL_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Dvorak @@ -86,14 +89,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |----------+------+------+------+------+------|------+------+------+------+------+------| * | Shift | ; | Q | J | K | X | B | M | W | V | Z |Enter | * |----------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * | Brite | Ctrl | Alt | GUI |Lower | TC/Space |Raise | Left | Down | Up |Right | * `---------------------------------------------------------------------------------------' */ [_DVORAK] = { {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, {CTL_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, - {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Lower @@ -132,6 +135,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, +/* TouchCursor layer (http://martin-stone.github.io/touchcursor/) plus personal customizations + * ,-----------------------------------------------------------------------------------. + * | | | |Shift | GUI | ~ |Insert| Home | Up | End | Bksp | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + | | Alt |Space | | | | PgUp | Left | Down |Right | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + | | | | | | ` | PgDn | Del | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + +[_TOUCHCURSOR] = { + {_______, _______, _______, KC_LSFT, KC_LGUI, KC_TILD, KC_INS, KC_HOME, KC_UP, KC_END, KC_BSPC, _______}, + {_______, KC_LALT, KC_SPC, _______, _______, _______, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______}, + {_______, _______, _______, _______, _______, KC_GRV, KC_PGDN, KC_DEL, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +}, + /* Plover layer (http://opensteno.org) * ,-----------------------------------------------------------------------------------. * | # | # | # | # | # | # | # | # | # | # | # | # | -- cgit v1.2.3 From ad7e4af45c103866149e3a66096a1e46d72f1072 Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Tue, 26 Jul 2016 13:34:01 -0700 Subject: Tap for Enter, hold for Shift --- keyboards/planck/keymaps/jeebak/keymap.c | 61 ++++++++++++++++---------------- 1 file changed, 31 insertions(+), 30 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index 84fee8070..04bc57fa7 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -42,60 +42,61 @@ enum planck_keycodes { #define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl #define LT_TC LT(_TOUCHCURSOR, KC_SPC) // L-ayer T-ap T-ouch C-ursor // ^-- Requires KC_TRNS / _______ for the trigger key in the destination layer +#define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty - * ,---------------------------------------------------------------------------------------. - * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | - * |----------+------+------+------+------+-------------+------+------+------+------+------| - * | Ctrl/Esc | A | S | D | F | G | H | J | K | L | ; | " | - * |----------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift | Z | X | C | V | B | N | M | , | . | / |Enter | - * |----------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite | Ctrl | Alt | GUI |Lower | TC/Space |Raise | Left | Down | Up |Right | - * `---------------------------------------------------------------------------------------' + * ,-----------------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |----------+------+------+------+------+-------------+------+------+------+------+--------| + * | Ctrl/Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |----------+------+------+------+------+------|------+------+------+------+------+--------| + * | Shift | Z | X | C | V | B | N | M | , | . | / |Sft/Ent | + * |----------+------+------+------+------+------+------+------+------+------+------+--------| + * | Brite | Ctrl | Alt | GUI |Lower | TC/Space |Raise | Left | Down | Up | Right | + * `-----------------------------------------------------------------------------------------' */ [_QWERTY] = { {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, {CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT}, {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Colemak - * ,---------------------------------------------------------------------------------------. - * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | - * |----------+------+------+------+------+-------------+------+------+------+------+------| - * | Ctrl/Esc | A | R | S | T | D | H | N | E | I | O | " | - * |----------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift | Z | X | C | V | B | K | M | , | . | / |Enter | - * |----------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite | Ctrl | Alt | GUI |Lower | TC/Space |Raise | Left | Down | Up |Right | - * `---------------------------------------------------------------------------------------' + * ,-----------------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |----------+------+------+------+------+-------------+------+------+------+------+--------| + * | Ctrl/Esc | A | R | S | T | D | H | N | E | I | O | " | + * |----------+------+------+------+------+------|------+------+------+------+------+--------| + * | Shift | Z | X | C | V | B | K | M | , | . | / |Sft/Ent | + * |----------+------+------+------+------+------+------+------+------+------+------+--------| + * | Brite | Ctrl | Alt | GUI |Lower | TC/Space |Raise | Left | Down | Up | Right | + * `-----------------------------------------------------------------------------------------' */ [_COLEMAK] = { {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, {CTL_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT}, {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Dvorak - * ,---------------------------------------------------------------------------------------. - * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | - * |----------+------+------+------+------+-------------+------+------+------+------+------| - * | Ctrl/Esc | A | O | E | U | I | D | H | T | N | S | / | - * |----------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift | ; | Q | J | K | X | B | M | W | V | Z |Enter | - * |----------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite | Ctrl | Alt | GUI |Lower | TC/Space |Raise | Left | Down | Up |Right | - * `---------------------------------------------------------------------------------------' + * ,-----------------------------------------------------------------------------------------. + * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * |----------+------+------+------+------+-------------+------+------+------+------+--------| + * | Ctrl/Esc | A | O | E | U | I | D | H | T | N | S | / | + * |----------+------+------+------+------+------|------+------+------+------+------+--------| + * | Shift | ; | Q | J | K | X | B | M | W | V | Z |Sft/Ent | + * |----------+------+------+------+------+------+------+------+------+------+------+--------| + * | Brite | Ctrl | Alt | GUI |Lower | TC/Space |Raise | Left | Down | Up | Right | + * `-----------------------------------------------------------------------------------------' */ [_DVORAK] = { {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, {CTL_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, - {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_ENT}, {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, -- cgit v1.2.3 From 6baf77d8fbb479df09ab2b96a09d823c76d45b95 Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Tue, 26 Jul 2016 20:14:09 -0700 Subject: Move _RAISE symbols to _LOWER --- keyboards/planck/keymaps/jeebak/keymap.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index 04bc57fa7..d2ae4edb3 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -106,7 +106,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter | + * | | F7 | F8 | F9 | F10 | F11 | F12 | - | = | [ | ] | \ | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' @@ -114,7 +114,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LOWER] = { {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, @@ -122,17 +122,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | | | | | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter | + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ [_RAISE] = { {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, _______, _______, _______}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, -- cgit v1.2.3 From a6bae9fb078a35210a1b2eb3dda4db6d63e4c0a5 Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Tue, 26 Jul 2016 23:49:11 -0700 Subject: Add numbers to _RAISE --- keyboards/planck/keymaps/jeebak/keymap.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index d2ae4edb3..9058098c9 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -122,17 +122,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | | | | | | + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | 4 | 5 | 6 | | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | + * | | F7 | F8 | F9 | F10 | F11 | F12 | 1 | 2 | 3 | 0 |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ [_RAISE] = { {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, _______, _______, _______}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_4, KC_5, KC_6, _______, _______}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_1, KC_2, KC_3, KC_0, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, -- cgit v1.2.3 From 7209310d1b004de74412ad1806b6f29e90d285d6 Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Wed, 27 Jul 2016 22:48:27 -0700 Subject: Add mouse layer, and remove default arrow keys (touchcursor only, now) --- keyboards/planck/keymaps/jeebak/keymap.c | 51 ++++++++++++++++++++++---------- 1 file changed, 36 insertions(+), 15 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index 9058098c9..039a920fb 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -21,6 +21,7 @@ extern keymap_config_t keymap_config; #define _RAISE 4 #define _PLOVER 5 #define _TOUCHCURSOR 6 +#define _MOUSE 7 #define _ADJUST 16 enum planck_keycodes { @@ -43,6 +44,7 @@ enum planck_keycodes { #define LT_TC LT(_TOUCHCURSOR, KC_SPC) // L-ayer T-ap T-ouch C-ursor // ^-- Requires KC_TRNS / _______ for the trigger key in the destination layer #define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift +#define LT_ML LT(_MOUSE, KC_A) // L-ayer T-ap M-ouse C-ursor (on A) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -50,54 +52,54 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------------. * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | * |----------+------+------+------+------+-------------+------+------+------+------+--------| - * | Ctrl/Esc | A | S | D | F | G | H | J | K | L | ; | " | + * | Ctrl/Esc | ML/A | S | D | F | G | H | J | K | L | ; | " | * |----------+------+------+------+------+------|------+------+------+------+------+--------| * | Shift | Z | X | C | V | B | N | M | , | . | / |Sft/Ent | * |----------+------+------+------+------+------+------+------+------+------+------+--------| - * | Brite | Ctrl | Alt | GUI |Lower | TC/Space |Raise | Left | Down | Up | Right | + * | Brite | Ctrl | Alt | GUI |Lower | TC/Space |Raise | | | | | * `-----------------------------------------------------------------------------------------' */ [_QWERTY] = { {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {CTL_ESC, LT_ML, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT}, - {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, _______, _______, _______, _______} }, /* Colemak * ,-----------------------------------------------------------------------------------------. * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | * |----------+------+------+------+------+-------------+------+------+------+------+--------| - * | Ctrl/Esc | A | R | S | T | D | H | N | E | I | O | " | + * | Ctrl/Esc | ML/A | R | S | T | D | H | N | E | I | O | " | * |----------+------+------+------+------+------|------+------+------+------+------+--------| * | Shift | Z | X | C | V | B | K | M | , | . | / |Sft/Ent | * |----------+------+------+------+------+------+------+------+------+------+------+--------| - * | Brite | Ctrl | Alt | GUI |Lower | TC/Space |Raise | Left | Down | Up | Right | + * | Brite | Ctrl | Alt | GUI |Lower | TC/Space |Raise | | | | | * `-----------------------------------------------------------------------------------------' */ [_COLEMAK] = { {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {CTL_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {CTL_ESC, LT_ML, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT}, - {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, _______, _______, _______, _______} }, /* Dvorak * ,-----------------------------------------------------------------------------------------. * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | * |----------+------+------+------+------+-------------+------+------+------+------+--------| - * | Ctrl/Esc | A | O | E | U | I | D | H | T | N | S | / | + * | Ctrl/Esc | ML/A | O | E | U | I | D | H | T | N | S | / | * |----------+------+------+------+------+------|------+------+------+------+------+--------| * | Shift | ; | Q | J | K | X | B | M | W | V | Z |Sft/Ent | * |----------+------+------+------+------+------+------+------+------+------+------+--------| - * | Brite | Ctrl | Alt | GUI |Lower | TC/Space |Raise | Left | Down | Up | Right | + * | Brite | Ctrl | Alt | GUI |Lower | TC/Space |Raise | | | | | * `-----------------------------------------------------------------------------------------' */ [_DVORAK] = { {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, - {CTL_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {CTL_ESC, LT_ML, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_ENT}, - {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, _______, _______, _______, _______} }, /* Lower @@ -140,11 +142,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | | | |Shift | GUI | ~ |Insert| Home | Up | End | Bksp | | * |------+------+------+------+------+-------------+------+------+------+------+------| - | | Alt |Space | | | | PgUp | Left | Down |Right | | | + * | | Alt |Space | | | | PgUp | Left | Down |Right | | | * |------+------+------+------+------+------|------+------+------+------+------+------| - | | | | | | ` | PgDn | Del | | | | | + * | | | | | | ` | PgDn | Del | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| - | | | | | | | | | | | | + * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ @@ -155,6 +157,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} }, +/* Mouse Layer + * ,-----------------------------------------------------------------------------------. + * | | |ACCL0 |ACCL1 |ACCL2 |ACCL2 | |WHL_L | Up |WHL_R | BTN2 | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | BTN3 | BTN1 | BTN4 |WHL_Up| Left | Down |Right | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | BTN2 | BTN5 |WHL_Dn| BTN1 | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + +[_MOUSE] = { + {_______, _______, KC_ACL0, KC_ACL1, KC_ACL2, KC_ACL2, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_BTN2, _______}, + {_______, _______, _______, KC_BTN3, KC_BTN1, KC_BTN4, KC_WH_U, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______}, + {_______, _______, _______, _______, KC_BTN2, KC_BTN5, KC_WH_D, KC_BTN1, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +}, + /* Plover layer (http://opensteno.org) * ,-----------------------------------------------------------------------------------. * | # | # | # | # | # | # | # | # | # | # | # | # | -- cgit v1.2.3 From 984fc2b630aeb24a1104f2ec6de2a91febed81a9 Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Thu, 28 Jul 2016 12:29:06 -0700 Subject: Media keys for all the "regular" layers --- keyboards/planck/keymaps/jeebak/keymap.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index 039a920fb..8a04ea702 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -56,14 +56,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |----------+------+------+------+------+------|------+------+------+------+------+--------| * | Shift | Z | X | C | V | B | N | M | , | . | / |Sft/Ent | * |----------+------+------+------+------+------+------+------+------+------+------+--------| - * | Brite | Ctrl | Alt | GUI |Lower | TC/Space |Raise | | | | | + * | Brite | Ctrl | Alt | GUI |Lower | TC/Space |Raise | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------------' */ [_QWERTY] = { {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, {CTL_ESC, LT_ML, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT}, - {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, _______, _______, _______, _______} + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, /* Colemak @@ -74,14 +74,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |----------+------+------+------+------+------|------+------+------+------+------+--------| * | Shift | Z | X | C | V | B | K | M | , | . | / |Sft/Ent | * |----------+------+------+------+------+------+------+------+------+------+------+--------| - * | Brite | Ctrl | Alt | GUI |Lower | TC/Space |Raise | | | | | + * | Brite | Ctrl | Alt | GUI |Lower | TC/Space |Raise | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------------' */ [_COLEMAK] = { {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, {CTL_ESC, LT_ML, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT}, - {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, _______, _______, _______, _______} + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, /* Dvorak @@ -92,14 +92,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |----------+------+------+------+------+------|------+------+------+------+------+--------| * | Shift | ; | Q | J | K | X | B | M | W | V | Z |Sft/Ent | * |----------+------+------+------+------+------+------+------+------+------+------+--------| - * | Brite | Ctrl | Alt | GUI |Lower | TC/Space |Raise | | | | | + * | Brite | Ctrl | Alt | GUI |Lower | TC/Space |Raise | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------------' */ [_DVORAK] = { {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, {CTL_ESC, LT_ML, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_ENT}, - {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, _______, _______, _______, _______} + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, /* Lower @@ -110,14 +110,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | | F7 | F8 | F9 | F10 | F11 | F12 | - | = | [ | ] | \ | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | Next | Vol- | Vol+ | Play | + * | | | | | | | | Prev | Stop | Slct | Mute | * `-----------------------------------------------------------------------------------' */ [_LOWER] = { {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MSTP, KC_MSEL, KC_MUTE} }, /* Raise @@ -128,14 +128,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | | F7 | F8 | F9 | F10 | F11 | F12 | 1 | 2 | 3 | 0 |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | Next | Vol- | Vol+ | Play | + * | | | | | | | | Prev | Stop | Slct | Mute | * `-----------------------------------------------------------------------------------' */ [_RAISE] = { {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_4, KC_5, KC_6, _______, _______}, {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_1, KC_2, KC_3, KC_0, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MSTP, KC_MSEL, KC_MUTE} }, /* TouchCursor layer (http://martin-stone.github.io/touchcursor/) plus personal customizations -- cgit v1.2.3 From eb9416a67d0220bde6993ecb22fe611b312ad47c Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Thu, 28 Jul 2016 15:13:22 -0700 Subject: PrintScreen and RGUI replace BACKLIT and Ctrl. Move BACKLIT to LOWER/RAISE layers --- keyboards/planck/keymaps/jeebak/keymap.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index 8a04ea702..3a7384ca8 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -56,14 +56,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |----------+------+------+------+------+------|------+------+------+------+------+--------| * | Shift | Z | X | C | V | B | N | M | , | . | / |Sft/Ent | * |----------+------+------+------+------+------+------+------+------+------+------+--------| - * | Brite | Ctrl | Alt | GUI |Lower | TC/Space |Raise | Next | Vol- | Vol+ | Play | + * | PrntScrn | RGUI | Alt | GUI |Lower | TC/Space |Raise | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------------' */ [_QWERTY] = { {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, {CTL_ESC, LT_ML, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT}, - {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} + {KC_PSCR, KC_RGUI, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, /* Colemak @@ -74,14 +74,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |----------+------+------+------+------+------|------+------+------+------+------+--------| * | Shift | Z | X | C | V | B | K | M | , | . | / |Sft/Ent | * |----------+------+------+------+------+------+------+------+------+------+------+--------| - * | Brite | Ctrl | Alt | GUI |Lower | TC/Space |Raise | Next | Vol- | Vol+ | Play | + * | PrntScrn | RGUI | Alt | GUI |Lower | TC/Space |Raise | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------------' */ [_COLEMAK] = { {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, {CTL_ESC, LT_ML, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT}, - {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} + {KC_PSCR, KC_RGUI, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, /* Dvorak @@ -92,14 +92,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |----------+------+------+------+------+------|------+------+------+------+------+--------| * | Shift | ; | Q | J | K | X | B | M | W | V | Z |Sft/Ent | * |----------+------+------+------+------+------+------+------+------+------+------+--------| - * | Brite | Ctrl | Alt | GUI |Lower | TC/Space |Raise | Next | Vol- | Vol+ | Play | + * | PrntScrn | RGUI | Alt | GUI |Lower | TC/Space |Raise | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------------' */ [_DVORAK] = { {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, {CTL_ESC, LT_ML, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_ENT}, - {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} + {KC_PSCR, KC_RGUI, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, /* Lower @@ -110,14 +110,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | | F7 | F8 | F9 | F10 | F11 | F12 | - | = | [ | ] | \ | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | Prev | Stop | Slct | Mute | + * |Brite | | | | | | | Prev | Stop | Slct | Mute | * `-----------------------------------------------------------------------------------' */ [_LOWER] = { {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MSTP, KC_MSEL, KC_MUTE} + {BACKLIT, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MSTP, KC_MSEL, KC_MUTE} }, /* Raise @@ -128,14 +128,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | | F7 | F8 | F9 | F10 | F11 | F12 | 1 | 2 | 3 | 0 |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | Prev | Stop | Slct | Mute | + * |Brite | | | | | | | Prev | Stop | Slct | Mute | * `-----------------------------------------------------------------------------------' */ [_RAISE] = { {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_4, KC_5, KC_6, _______, _______}, {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_1, KC_2, KC_3, KC_0, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MSTP, KC_MSEL, KC_MUTE} + {BACKLIT, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MSTP, KC_MSEL, KC_MUTE} }, /* TouchCursor layer (http://martin-stone.github.io/touchcursor/) plus personal customizations -- cgit v1.2.3 From 6a2c681ae96dfdc9a61591a6f3ded8e7059756a9 Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Fri, 29 Jul 2016 10:43:59 -0700 Subject: Change calls from persistant_default_layer_set() to default_layer_set() --- keyboards/planck/keymaps/jeebak/keymap.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index 3a7384ca8..35a46e7bf 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -242,7 +242,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_qwerty, false, 0); #endif - persistant_default_layer_set(1UL<<_QWERTY); + default_layer_set(1UL<<_QWERTY); } return false; break; @@ -251,7 +251,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_colemak, false, 0); #endif - persistant_default_layer_set(1UL<<_COLEMAK); + default_layer_set(1UL<<_COLEMAK); } return false; break; @@ -260,7 +260,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_dvorak, false, 0); #endif - persistant_default_layer_set(1UL<<_DVORAK); + default_layer_set(1UL<<_DVORAK); } return false; break; -- cgit v1.2.3 From e0dd9d6af0dcf3732a7cd1ee6084a61960f015b0 Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Fri, 29 Jul 2016 11:21:43 -0700 Subject: Add -, +, and . to RAISE --- keyboards/planck/keymaps/jeebak/keymap.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index 35a46e7bf..976875e8a 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -124,17 +124,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | 4 | 5 | 6 | | | + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | 4 | 5 | 6 | - | + | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 | 1 | 2 | 3 | 0 |Enter | + * | | F7 | F8 | F9 | F10 | F11 | F12 | 1 | 2 | 3 | . |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| * |Brite | | | | | | | Prev | Stop | Slct | Mute | * `-----------------------------------------------------------------------------------' */ [_RAISE] = { {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_4, KC_5, KC_6, _______, _______}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_1, KC_2, KC_3, KC_0, _______}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_4, KC_5, KC_6, KC_MINS, KC_PLUS}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_1, KC_2, KC_3, KC_DOT, _______}, {BACKLIT, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MSTP, KC_MSEL, KC_MUTE} }, -- cgit v1.2.3 From 216efe6c994d8208481138384d432f7a3b9425f1 Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Fri, 29 Jul 2016 18:02:31 -0700 Subject: Move reset to a less accessible location --- keyboards/planck/keymaps/jeebak/keymap.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index 976875e8a..33e0d653a 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -197,20 +197,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. - * | | Reset| | | | | | | | | | Del | + * | | | | | | | | | | | | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | * |------+------+------+------+------+------|------+------+------+------+------+------| * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | + * | | | | | | | | | | |Reset | * `-----------------------------------------------------------------------------------' */ [_ADJUST] = { - {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET} } -- cgit v1.2.3 From b54a58859fa37bba78315f316af0bc2269000c1a Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Sat, 30 Jul 2016 12:21:04 -0700 Subject: Make RAISE layer an all numbers/arithmatic layer --- keyboards/planck/keymaps/jeebak/keymap.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index 33e0d653a..ae7305dab 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -122,19 +122,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Raise * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | 4 | 5 | 6 | - | + | + * | $ | 4 | 5 | 6 | . | + | * | 4 | 5 | 6 | - | | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 | 1 | 2 | 3 | . |Enter | + * | = | 7 | 8 | 9 | 0 | - | / | 1 | 2 | 3 | . | \ | * |------+------+------+------+------+------+------+------+------+------+------+------| * |Brite | | | | | | | Prev | Stop | Slct | Mute | * `-----------------------------------------------------------------------------------' */ [_RAISE] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_4, KC_5, KC_6, KC_MINS, KC_PLUS}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_1, KC_2, KC_3, KC_DOT, _______}, + {KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_DLR, KC_4, KC_5, KC_6, KC_DOT, KC_PLUS, KC_ASTR, KC_4, KC_5, KC_6, KC_MINS, KC_PIPE}, + {KC_EQL, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_SLSH, KC_1, KC_2, KC_3, KC_DOT, KC_BSLS}, {BACKLIT, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MSTP, KC_MSEL, KC_MUTE} }, -- cgit v1.2.3 From db8ad8204e66e3c00a74e0efed0b16b5e4a04500 Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Sat, 30 Jul 2016 12:26:51 -0700 Subject: Add additional maps for [, and ], to LOWER --- keyboards/planck/keymaps/jeebak/keymap.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index ae7305dab..3d6523b1e 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -106,17 +106,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * | [ | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 | - | = | [ | ] | \ | + * | ] | F7 | F8 | F9 | F10 | F11 | F12 | - | = | [ | ] | \ | * |------+------+------+------+------+------+------+------+------+------+------+------| * |Brite | | | | | | | Prev | Stop | Slct | Mute | * `-----------------------------------------------------------------------------------' */ [_LOWER] = { {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, - {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_LBRC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {KC_RBRC, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, {BACKLIT, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MSTP, KC_MSEL, KC_MUTE} }, -- cgit v1.2.3 From a2ed7ce795d85f48e5c16128d767f27f19835626 Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Sat, 30 Jul 2016 12:50:13 -0700 Subject: Add additional shortcut keymaps to TOUCHCURSOR layer --- keyboards/planck/keymaps/jeebak/keymap.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index 3d6523b1e..ec142ecbb 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -142,18 +142,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | | | |Shift | GUI | ~ |Insert| Home | Up | End | Bksp | | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | Alt |Space | | | | PgUp | Left | Down |Right | | | + * | | Alt |Space | | Find |Again | PgUp | Left | Down |Right | | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | | | | ` | PgDn | Del | | | | | + * | | Undo | Cut | Copy |Paste | ` | PgDn | Del | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' + * + * The KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_FIND, and KC_AGAIN keycodes don't + * seem to work on Mac. Presumably they'll work under Windows. */ [_TOUCHCURSOR] = { {_______, _______, _______, KC_LSFT, KC_LGUI, KC_TILD, KC_INS, KC_HOME, KC_UP, KC_END, KC_BSPC, _______}, - {_______, KC_LALT, KC_SPC, _______, _______, _______, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______}, - {_______, _______, _______, _______, _______, KC_GRV, KC_PGDN, KC_DEL, _______, _______, _______, _______}, + {_______, KC_LALT, KC_SPC, _______, KC_FIND,KC_AGAIN, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______}, + {_______, KC_UNDO, KC_CUT, KC_COPY, KC_PASTE,KC_GRV, KC_PGDN, KC_DEL, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} }, -- cgit v1.2.3 From 230d313dbd7f09593566ce4f20ea2db974a1fcc4 Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Sat, 30 Jul 2016 13:09:49 -0700 Subject: Update readme.md --- keyboards/planck/keymaps/jeebak/readme.md | 107 +++++++++++++++++++++++++++++- 1 file changed, 106 insertions(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/jeebak/readme.md b/keyboards/planck/keymaps/jeebak/readme.md index de9680b49..eb8104379 100644 --- a/keyboards/planck/keymaps/jeebak/readme.md +++ b/keyboards/planck/keymaps/jeebak/readme.md @@ -1,2 +1,107 @@ -# The Default Planck Layout +jeebak's layout +======================= +This WIP keymap attempts to minimize fingers straying away from the home row. +To aid in this endeavor, when additional modifyer keys to switch layers are +needed, they will be mapped to home row keys. The `keymap.c` file will contain +the exact changes. The diagrams in this README shows the highlights of the +changes from the default mappings. +I also decided to change all calls to `persistant_default_layer_set()` to +`update_tri_layer()` since this is my personal perference. + +## Base Layers (Qwerty/Colemak/Dvorak) +These base layers are mostly the same as the default mappings. The interesting +changes are shown below. The `Ctrl/Esc`, mapped using `CTL_T(KC_ESC)` will emit +an `Escape` when tapped, and act as a `Control` key when held. A `TODO` item is +to see if it can also act as a `CapsLock` when double-tapped. The right shift +key acts as `Enter` when tapped, and as a `Shift` key when held. The arrow +keys, which have been moved to the +[TouchCursor](http://martin-stone.github.io/touchcursor/) layer, have been +replaced with the Media keys as shown. The `ML/A` key activates the Mouse layer +when held, and emits an `A` when tapped. +``` + ,-----------------------------------------------------------------------------------------. + | | | | | | | | | | | | | + |----------+------+------+------+------+-------------+------+------+------+------+--------| + | Ctrl/Esc | ML/A | | | | | | | | | | | + |----------+------+------+------+------+------|------+------+------+------+------+--------| + | | | | | | | | | | | |Sft/Ent | + |----------+------+------+------+------+------+------+------+------+------+------+--------| + | PrntScrn | RGUI | Alt | GUI |Lower | TC/Space |Raise | Next | Vol- | Vol+ | Play | + `-----------------------------------------------------------------------------------------' +``` + +## Lower Layer (Symbols and Function Keys) +The symbols and functions keys are essentially the same as the default mapping. +The most notable changes are that the symbol keys from the `RAISE` layer have +been moved here. The remaining Media keys replace those that are now on the +base layers. The `BACKLIT` key has also been moved here. +``` + ,-----------------------------------------------------------------------------------. + | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + |------+------+------+------+------+-------------+------+------+------+------+------| + | [ | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + |------+------+------+------+------+------|------+------+------+------+------+------| + | ] | F7 | F8 | F9 | F10 | F11 | F12 | - | = | [ | ] | \ | + |------+------+------+------+------+------+------+------+------+------+------+------| + |Brite | | | | | | | Prev | Stop | Slct | Mute | + `-----------------------------------------------------------------------------------' +``` + +## Raise Layer (Numbers and Arithmetic Operators) +All of the numbers and arithmetic operators are available on this layer. Some +keys are duplicated for the convenience of their positions. The `0` and `$` +keys at the far left are for quick access to beginning and end of line in vim. +``` + ,-----------------------------------------------------------------------------------. + | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + |------+------+------+------+------+-------------+------+------+------+------+------| + | $ | 4 | 5 | 6 | . | + | * | 4 | 5 | 6 | - | | | + |------+------+------+------+------+------|------+------+------+------+------+------| + | = | 7 | 8 | 9 | 0 | - | / | 1 | 2 | 3 | . | \ | + |------+------+------+------+------+------+------+------+------+------+------+------| + |Brite | | | | | | | Prev | Stop | Slct | Mute | + `-----------------------------------------------------------------------------------' +``` + +## TouchCursor layer plus personal customizations +[TouchCursor](http://martin-stone.github.io/touchcursor/) uses the `Space` key +as the modifier, with the `IJKL` home row keys representing the inverted-T of +the arrow keys. All of the default TouchCursor keymappings for the right hand +are represented below. My personalizations include all of the keys shown for +the left hand. Having the `Alt` and `Shift` keys readily accessible from the +home row allows quick word jumps and highlighting when used in conjunction with +the arrow keys. The `KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_FIND,` and +`KC_AGAIN` keycodes have been mapped but they don't seem to work on Mac. +Presumably they'll work under Windows. +``` + ,-----------------------------------------------------------------------------------. + | | | |Shift | GUI | ~ |Insert| Home | Up | End | Bksp | | + |------+------+------+------+------+-------------+------+------+------+------+------| + | | Alt |Space | | Find |Again | PgUp | Left | Down |Right | | | + |------+------+------+------+------+------|------+------+------+------+------+------| + | | Undo | Cut | Copy |Paste | ` | PgDn | Del | | | | | + |------+------+------+------+------+------+------+------+------+------+------+------| + | | | | | | | | | | | | + `-----------------------------------------------------------------------------------' +``` + +## Mouse Layer +The Mouse layer, closely mimics the layout/behaviour of the TouchCursor layer. +The `A` key is used to activate this layer. All 16 keycodes for the mouse from +the `doc/keycode.txt` file are represented, and logically located, IMHO. The +left and right click buttons are duplicated; on the right hand side, for a +quick click here and there, and again on the left hand side for when the +buttons need to be held for dragging things or highlighting text, thus allowing +the right hand to be free to use the up/down/left/right actions. +``` + ,-----------------------------------------------------------------------------------. + | | |ACCL0 |ACCL1 |ACCL2 |ACCL2 | |WHL_L | Up |WHL_R | BTN2 | | + |------+------+------+------+------+-------------+------+------+------+------+------| + | | | | BTN3 | BTN1 | BTN4 |WHL_Up| Left | Down |Right | | | + |------+------+------+------+------+------|------+------+------+------+------+------| + | | | | | BTN2 | BTN5 |WHL_Dn| BTN1 | | | | | + |------+------+------+------+------+------+------+------+------+------+------+------| + | | | | | | | | | | | | + `-----------------------------------------------------------------------------------' +``` -- cgit v1.2.3